{"report_id":"9abbbeb2-5d88-44ea-a77b-91fa3632fc3d","version":0,"status":"done","tags":[],"date":"2026-07-27T10:27:47Z","url":{"schema":"https","addr":"digital-assettrade.com/","fqdn":"digital-assettrade.com","domain":"digital-assettrade.com","tld":"com"},"ip":{"addr":"5.182.208.207","port":0,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"final":{"url":{"schema":"https","addr":"digital-assettrade.com/","fqdn":"digital-assettrade.com","domain":"digital-assettrade.com","tld":"com"},"title":"Digital Asset Trade - Home","dom":{"size":174410,"mime_type":"text/html; charset=utf-8","magic":"HTML document, Unicode text, UTF-8 text, with very long lines (15895)","md5":"a5b3d83099eec6184161854067e3f661","sha1":"7b76a82cc4dd63b0e319367664e8c39656c65ba8","sha256":"63c854360780fa74d13a7c84f1f8aab4ff92ce482f2fd2447b428cf40d219200","sha512":"9e0ae7b35740d95e10c3634ae50dedaeb7b8502dbb3fe9e2d2ece61aa1aad413f5f49e59ad8277b4d8109026eafe614df77329207590cb5a39a49e1f2272a757","ssdeep":"1536:Ghna4H+2IjMrM24lJiCBIgbv/DpwwExuOGorz7hS1of+CCaCaCaCaCUbCaCaCaCB:GhL+FBQppppVppppCppppl8M77","tlshash":"e6049334a2a4193da497c2e1e77277391a7dd343d20b8598f6bc07f05f8bc59e823698","dom_hash":"domhash0f38e7d6c5007c16cf7ac78c3ec4d6b7","first_seen":"","last_seen":"","times_seen":0,"resource_available":false,"data":null}},"submit":{"url":{"schema":"https","addr":"digital-assettrade.com/","fqdn":"digital-assettrade.com","domain":"digital-assettrade.com","tld":"com"},"ip":{"addr":"5.182.208.207","port":0,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"tags":null,"meta":null},"settings":{"access":"public","device_type":"desktop","expires_at":"2027-08-31T10:27:47Z","useragent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0","referer":"","cookies":null,"exit_node":"qguvgzjxzsgb3vs"},"stats":{"alert_count":{"ids":0,"urlquery":0,"analyzer":1}},"detection":{"ids":null,"analyzer":[{"sensor_name":"dns4eu","sensor_type":"DNS","title":"DNS4EU","description":"DNS4EU","scan_date":"2026-07-27","alert":"Sinkholed","trigger":"digital-assettrade.com","verdict":"malicious","severity":"medium","comment":"","link":"https://www.joindns4.eu/","meta":null}],"urlquery":null},"summary":[{"fqdn":"websocket-visitors.smartsupp.com","ip":{"addr":"18.198.69.8","port":443,"asn":16509,"as":"AMAZON-02","country":"Germany","country_code":"DE"},"domain_registered":"2012-08-25","domain_rank":411464,"first_seen":"2021-07-12T07:42:32Z","last_seen":"2026-07-24T09:04:26.067381Z","alert_count":0,"request_count":1,"received_data":224,"sent_data":637,"comment":"","tags":null,"fingerprints":null},{"fqdn":"www.tradingview-widget.com","ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"domain_registered":"2020-06-05","domain_rank":196495,"first_seen":"2021-04-08T06:14:48Z","last_seen":"2026-07-24T15:28:31.440139Z","alert_count":0,"request_count":285,"received_data":8428987,"sent_data":151027,"comment":"","tags":null,"fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}]},{"fqdn":"s.tradingview.com","ip":{"addr":"3.164.240.120","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"domain_registered":"2010-03-20","domain_rank":416574,"first_seen":"2017-01-30T05:04:39Z","last_seen":"2026-07-22T06:09:51.826411Z","alert_count":0,"request_count":2,"received_data":79282,"sent_data":1285,"comment":"","tags":null,"fingerprints":[{"name":"Amazon Web Services","description":"Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.","website":"https://aws.amazon.com/","common_platform_enumeration":"","icon":"Amazon Web Services.svg","categories":["PaaS"]},{"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":"PayPal","description":"PayPal is an online payments system that supports online money transfers and serves as an electronic alternative to traditional paper methods like checks and money orders.","website":"https://paypal.com","common_platform_enumeration":"cpe:2.3:a:paypal:paypal:*:*:*:*:*:*:*:*","icon":"PayPal.svg","categories":["Payment processors"]},{"name":"Amazon CloudFront","description":"Amazon CloudFront is a fast content delivery network (CDN) service that securely delivers data, videos, applications, and APIs to customers globally with low latency, high transfer speeds.","website":"https://aws.amazon.com/cloudfront/","common_platform_enumeration":"","icon":"Amazon Cloudfront.svg","categories":["CDN"]}]},{"fqdn":"pushstream.tradingview.com","ip":{"addr":"93.123.102.211","port":443,"asn":199524,"as":"G-Core Labs S.A.","country":"United Kingdom","country_code":"GB"},"domain_registered":"2010-03-20","domain_rank":94515,"first_seen":"2016-09-22T12:08:22Z","last_seen":"2026-07-26T13:08:04.997239Z","alert_count":0,"request_count":1,"received_data":221,"sent_data":614,"comment":"","tags":null,"fingerprints":null},{"fqdn":"www.google.com","ip":{"addr":"142.251.151.119","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"domain_registered":"1997-09-15","domain_rank":22,"first_seen":"2015-05-10T13:11:19Z","last_seen":"2026-07-26T22:51:17.688286Z","alert_count":0,"request_count":1,"received_data":717,"sent_data":554,"comment":"","tags":null,"fingerprints":null},{"fqdn":"translate.google.com","ip":{"addr":"142.250.178.110","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"domain_registered":"1997-09-15","domain_rank":609,"first_seen":"2012-05-30T01:30:32Z","last_seen":"2026-07-20T21:58:05.03314Z","alert_count":0,"request_count":2,"received_data":77723,"sent_data":1102,"comment":"","tags":null,"fingerprints":null},{"fqdn":"www.smartsuppchat.com","ip":{"addr":"185.76.9.27","port":443,"asn":60068,"as":"Datacamp Limited","country":"Sweden","country_code":"SE"},"domain_registered":"2014-02-02","domain_rank":491650,"first_seen":"2017-01-30T05:24:57Z","last_seen":"2026-07-24T07:15:25.153212Z","alert_count":0,"request_count":1,"received_data":18547,"sent_data":469,"comment":"","tags":null,"fingerprints":[{"name":"CDN77","description":"CDN77 is a content delivery network (CDN).","website":"https://www.cdn77.com","common_platform_enumeration":"","icon":"CDN77.png","categories":["CDN"]}]},{"fqdn":"digital-assettrade.com","ip":{"addr":"5.182.208.207","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"domain_registered":"2026-04-20","domain_rank":0,"first_seen":"2026-07-27T07:37:29.276965Z","last_seen":"2026-07-27T07:37:29.276965Z","alert_count":7,"request_count":7,"received_data":1102233,"sent_data":7940,"comment":"","tags":null,"fingerprints":[{"name":"LiteSpeed","description":"LiteSpeed is a high-scalability web server.","website":"https://litespeedtech.com","common_platform_enumeration":"cpe:2.3:a:litespeedtech:litespeed_web_server:*:*:*:*:*:*:*:*","icon":"LiteSpeed.svg","categories":["Web servers"]},{"name":"Tailwind CSS","description":"Tailwind is a utility-first CSS framework.","website":"https://tailwindcss.com/","common_platform_enumeration":"","icon":"tailwindcss.svg","categories":["UI frameworks"]},{"name":"Unpkg","description":"Unpkg is a content delivery network for everything on npm.","website":"https://unpkg.com","common_platform_enumeration":"","icon":"Unpkg.png","categories":["CDN"]}]},{"fqdn":"widget-sheriff.tradingview-widget.com","ip":{"addr":"143.204.238.21","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"domain_registered":"2020-06-05","domain_rank":206730,"first_seen":"2024-02-01T14:12:53Z","last_seen":"2026-07-24T23:32:22.077351Z","alert_count":0,"request_count":1,"received_data":566,"sent_data":555,"comment":"","tags":null,"fingerprints":[{"name":"Amazon Web Services","description":"Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.","website":"https://aws.amazon.com/","common_platform_enumeration":"","icon":"Amazon Web Services.svg","categories":["PaaS"]},{"name":"Amazon CloudFront","description":"Amazon CloudFront is a fast content delivery network (CDN) service that securely delivers data, videos, applications, and APIs to customers globally with low latency, high transfer speeds.","website":"https://aws.amazon.com/cloudfront/","common_platform_enumeration":"","icon":"Amazon Cloudfront.svg","categories":["CDN"]}]},{"fqdn":"fonts.gstatic.com","ip":{"addr":"142.250.178.67","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"domain_registered":"2008-02-11","domain_rank":0,"first_seen":"2014-04-02T10:51:04Z","last_seen":"2026-07-26T22:19:52.505461Z","alert_count":0,"request_count":7,"received_data":194385,"sent_data":4051,"comment":"","tags":null,"fingerprints":null},{"fqdn":"www.gstatic.com","ip":{"addr":"142.250.178.67","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"domain_registered":"2008-02-11","domain_rank":146047,"first_seen":"2012-05-29T15:36:17Z","last_seen":"2026-07-26T23:06:30.068608Z","alert_count":0,"request_count":5,"received_data":48622,"sent_data":3105,"comment":"","tags":null,"fingerprints":null},{"fqdn":"fonts.googleapis.com","ip":{"addr":"142.250.178.74","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"domain_registered":"2005-01-25","domain_rank":313,"first_seen":"2012-05-23T12:41:44Z","last_seen":"2026-07-26T22:23:14.439231Z","alert_count":0,"request_count":1,"received_data":16616,"sent_data":641,"comment":"","tags":null,"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"]}]},{"fqdn":"scanner.tradingview.com","ip":{"addr":"143.204.238.100","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"domain_registered":"2010-03-20","domain_rank":111106,"first_seen":"2016-08-02T09:33:18Z","last_seen":"2026-07-22T10:20:45.048286Z","alert_count":0,"request_count":4,"received_data":3698,"sent_data":2970,"comment":"","tags":null,"fingerprints":[{"name":"Amazon CloudFront","description":"Amazon CloudFront is a fast content delivery network (CDN) service that securely delivers data, videos, applications, and APIs to customers globally with low latency, high transfer speeds.","website":"https://aws.amazon.com/cloudfront/","common_platform_enumeration":"","icon":"Amazon Cloudfront.svg","categories":["CDN"]},{"name":"Amazon Web Services","description":"Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.","website":"https://aws.amazon.com/","common_platform_enumeration":"","icon":"Amazon Web Services.svg","categories":["PaaS"]},{"name":"HSTS","description":"HTTP Strict Transport Security (HSTS) informs browsers that the site should only be accessed using HTTPS.","website":"https://www.rfc-editor.org/rfc/rfc6797#section-6.1","common_platform_enumeration":"","icon":"","categories":["Security"]}]},{"fqdn":"translate-pa.googleapis.com","ip":{"addr":"172.217.114.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"domain_registered":"2005-01-25","domain_rank":8472,"first_seen":"2021-11-04T06:37:42Z","last_seen":"2026-07-21T21:38:43.172366Z","alert_count":0,"request_count":1,"received_data":32351,"sent_data":578,"comment":"","tags":null,"fingerprints":null},{"fqdn":"widgetdata.tradingview.com","ip":{"addr":"5.101.223.86","port":443,"asn":199524,"as":"G-Core Labs S.A.","country":"The Netherlands","country_code":"NL"},"domain_registered":"2010-03-20","domain_rank":179381,"first_seen":"2015-02-20T09:47:36Z","last_seen":"2026-07-26T01:26:45.690501Z","alert_count":0,"request_count":1,"received_data":224,"sent_data":754,"comment":"","tags":null,"fingerprints":null},{"fqdn":"widget-v3.smartsuppcdn.com","ip":{"addr":"185.76.9.12","port":443,"asn":60068,"as":"Datacamp Limited","country":"Sweden","country_code":"SE"},"domain_registered":"2018-11-20","domain_rank":532262,"first_seen":"2022-10-03T13:48:45Z","last_seen":"2026-07-24T15:28:31.507831Z","alert_count":0,"request_count":4,"received_data":329036,"sent_data":1905,"comment":"","tags":null,"fingerprints":[{"name":"CDN77","description":"CDN77 is a content delivery network (CDN).","website":"https://www.cdn77.com","common_platform_enumeration":"","icon":"CDN77.png","categories":["CDN"]}]},{"fqdn":"cdn.tailwindcss.com","ip":{"addr":"104.26.3.143","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"domain_registered":"2017-07-20","domain_rank":117330,"first_seen":"2018-07-09T05:46:13Z","last_seen":"2026-07-27T08:40:23.885085Z","alert_count":0,"request_count":2,"received_data":408706,"sent_data":920,"comment":"","tags":null,"fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"Vercel","description":"Vercel is a cloud platform for static frontends and serverless functions.","website":"https://vercel.com","common_platform_enumeration":"","icon":"vercel.svg","categories":["PaaS"]},{"name":"HSTS","description":"HTTP Strict Transport Security (HSTS) informs browsers that the site should only be accessed using HTTPS.","website":"https://www.rfc-editor.org/rfc/rfc6797#section-6.1","common_platform_enumeration":"","icon":"","categories":["Security"]}]},{"fqdn":"s3.tradingview.com","ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"domain_registered":"2010-03-20","domain_rank":165395,"first_seen":"2018-06-24T04:06:00Z","last_seen":"2026-07-25T05:38:23.80932Z","alert_count":0,"request_count":2,"received_data":55425,"sent_data":944,"comment":"","tags":null,"fingerprints":[{"name":"Amazon Web Services","description":"Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.","website":"https://aws.amazon.com/","common_platform_enumeration":"","icon":"Amazon Web Services.svg","categories":["PaaS"]},{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}]},{"fqdn":"telemetry.tradingview.com","ip":{"addr":"","port":0,"asn":0,"as":"","country":"","country_code":"zz"},"domain_registered":"2010-03-20","domain_rank":64373,"first_seen":"2014-06-09T18:36:33Z","last_seen":"2026-07-24T05:20:52.484041Z","alert_count":0,"request_count":1,"received_data":0,"sent_data":547,"comment":"","tags":null,"fingerprints":null},{"fqdn":"bootstrap.smartsuppchat.com","ip":{"addr":"3.69.194.231","port":443,"asn":16509,"as":"AMAZON-02","country":"Germany","country_code":"DE"},"domain_registered":"2014-02-02","domain_rank":425291,"first_seen":"2018-01-29T06:10:36Z","last_seen":"2026-07-24T07:15:25.204838Z","alert_count":0,"request_count":1,"received_data":1579,"sent_data":547,"comment":"","tags":null,"fingerprints":null},{"fqdn":"unpkg.com","ip":{"addr":"104.18.0.22","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"domain_registered":"2016-01-06","domain_rank":1093,"first_seen":"2016-01-07T23:26:01Z","last_seen":"2026-07-27T07:50:35.491492Z","alert_count":0,"request_count":2,"received_data":619949,"sent_data":958,"comment":"","tags":null,"fingerprints":[{"name":"Fly.io","description":"Fly is a platform for running full stack apps and databases.","website":"https://fly.io","common_platform_enumeration":"","icon":"Fly.io.png","categories":["PaaS"]},{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"HSTS","description":"HTTP Strict Transport Security (HSTS) informs browsers that the site should only be accessed using HTTPS.","website":"https://www.rfc-editor.org/rfc/rfc6797#section-6.1","common_platform_enumeration":"","icon":"","categories":["Security"]}]},{"fqdn":"translate.googleapis.com","ip":{"addr":"142.250.178.106","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"domain_registered":"2005-01-25","domain_rank":6317,"first_seen":"2012-05-31T07:21:21Z","last_seen":"2026-07-20T14:48:05.930258Z","alert_count":0,"request_count":4,"received_data":5470,"sent_data":2378,"comment":"","tags":null,"fingerprints":null},{"fqdn":"s3-symbol-logo.tradingview.com","ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"domain_registered":"2010-03-20","domain_rank":110931,"first_seen":"2020-11-23T08:22:37Z","last_seen":"2026-07-25T00:19:15.629884Z","alert_count":0,"request_count":1,"received_data":1670,"sent_data":563,"comment":"","tags":null,"fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]},{"name":"Amazon Web Services","description":"Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.","website":"https://aws.amazon.com/","common_platform_enumeration":"","icon":"Amazon Web Services.svg","categories":["PaaS"]}]},{"fqdn":"www.tradingview.com","ip":{"addr":"52.84.50.119","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"domain_registered":"2010-03-20","domain_rank":1990,"first_seen":"2012-12-04T09:00:23Z","last_seen":"2026-07-27T07:32:46.047901Z","alert_count":0,"request_count":2,"received_data":3077,"sent_data":1169,"comment":"","tags":null,"fingerprints":[{"name":"Amazon CloudFront","description":"Amazon CloudFront is a fast content delivery network (CDN) service that securely delivers data, videos, applications, and APIs to customers globally with low latency, high transfer speeds.","website":"https://aws.amazon.com/cloudfront/","common_platform_enumeration":"","icon":"Amazon Cloudfront.svg","categories":["CDN"]},{"name":"Amazon Web Services","description":"Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.","website":"https://aws.amazon.com/","common_platform_enumeration":"","icon":"Amazon Web Services.svg","categories":["PaaS"]},{"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":"PayPal","description":"PayPal is an online payments system that supports online money transfers and serves as an electronic alternative to traditional paper methods like checks and money orders.","website":"https://paypal.com","common_platform_enumeration":"cpe:2.3:a:paypal:paypal:*:*:*:*:*:*:*:*","icon":"PayPal.svg","categories":["Payment processors"]}]},{"fqdn":"translations.smartsuppcdn.com","ip":{"addr":"185.76.9.27","port":443,"asn":60068,"as":"Datacamp Limited","country":"Sweden","country_code":"SE"},"domain_registered":"2018-11-20","domain_rank":560346,"first_seen":"2022-11-04T22:28:35Z","last_seen":"2026-07-24T15:28:31.911258Z","alert_count":0,"request_count":1,"received_data":7732,"sent_data":529,"comment":"","tags":null,"fingerprints":[{"name":"CDN77","description":"CDN77 is a content delivery network (CDN).","website":"https://www.cdn77.com","common_platform_enumeration":"","icon":"CDN77.png","categories":["CDN"]}]}],"files":null,"artifacts":{"windows_shortcuts":null,"files":null,"telegram":null,"pdfs":null,"clipboard":null},"sensors":{"ids":null,"analyzer":null,"urlquery":null},"javascript":{"script":[{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/69697.94f7a3c68e5b71e90ad0.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"introduction_type":"scriptElement","is_inline":false,"md5":"ea7468c239d76d650fad0348355c0723","sha1":"1679d20934fd0a870c0c4f6841783538386be8df","sha256":"ff8eafc7002dfc18017837f333b737baf6428680efa8976420f7545ba953bdfe","sha512":"cf2c6f55abd325793a9a4a962acfca9cea5a94ee011812cc1d100a66f9250a768e7d62a0c4d661cd711718cc67e00c4038f82d532a6daeebf8078a78b9d62c89","ssdeep":"768:FahKIrmNWI3Vn8gACkdBEECQrhuWfGwsGiaYOBzYJdncihxGddE/HAKZAPt+Z0Mn:45I3Vn8gK/NTeezYW91k2+","tlshash":"8f03d9d673b2b61587a64092f87d8503e36c1a8164cc253ef66c8cdf264de48b136bbd","size":40229,"data":"","first_seen":"2026-07-23T14:00:31.639092Z","last_seen":"2026-07-27T12:48:39.727295Z","times_seen":103,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/97558.94bb0c2643d74eb6f8a9.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"introduction_type":"scriptElement","is_inline":false,"md5":"d746cbb1cbb3033c0484bc6acc81a55f","sha1":"25835aa4b4538d7962fa37c481b6f7bfcda4defb","sha256":"32489cc5023595f6e286bacc217f9666840467c5cb7f6a71e6fb993778a0f9f6","sha512":"88e18428248f514fce026ba9332b9229d8c5a25977939e792b749ec42051dc847c18d6dcc6d9880fff271e42f1b5e048da19ecc06a555fd9b1e0b749752b605e","ssdeep":"768:ncRuzQtjfXqCO3EDR9kE9OO4f5B1i/RHUFLqhBRso7HiqZEFhSoO0JJyERE+wOjb:nPanOeH9TO+eFNrWJfeZP","tlshash":"83b29612655d58eb97f207a3ad70284bd2339da71b0fad54309d44df3cae821227eb71","size":24600,"data":"","first_seen":"2026-07-20T16:56:18.378997Z","last_seen":"2026-07-27T12:48:39.853984Z","times_seen":90,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/48652.9487148ca973a8ce4caa.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"introduction_type":"scriptElement","is_inline":false,"md5":"84e3cbc8f2cc7d16bc14251dee5f916d","sha1":"4515c758e4180ad4b3e4de054f1010b89337c5d3","sha256":"d71c6cd3abef8e38419d743ed4851ee893ff6bc105108ae88885f8524ac780a9","sha512":"166e2773f21cfcd6f793984bb2321a0513fe16cb22296e7f7a0e81915f6b387f2961404e6b1cad8c8fe209c02411ea7a4c468f0c7216b1327f2fa2ccde80acb8","ssdeep":"768:VHqwOWJaoTqN6riNXBxFRJLTiIjsxIU1azbsYttLhqpTLuvD/XV0xwk3LlEYZZBq:5qwOW0MmiMKCkLctYz3LauFKEP9mC7Oj","tlshash":"af13d68035a1b02887e6409ad07e4546f7792bd1b48a5579f0fcc8ce3e5898df136bbe","size":45019,"data":"","first_seen":"2026-07-23T14:00:31.480629Z","last_seen":"2026-07-27T12:48:39.650739Z","times_seen":57,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/37106.9faa0d59d3cf1bb8f978.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"introduction_type":"scriptElement","is_inline":false,"md5":"5072a3be558ae3431eca0dc65d0b8aa9","sha1":"69c9892df8b18cb2525f876b4085d3c6c8488cc8","sha256":"97ed37756bf7a0b297cf363e53c0080b657cf5cceba44c307325e1f8cde084b5","sha512":"a87268355b4cb9fdc6e5268a6bff6ce757e5772e6c2e3d091386dba7eb2f1d49451c209d26fbcb22612dbd22e1b7c39d07e000bd4131197de7f7489f78c30b0a","ssdeep":"1536:QYb00UoD7yRitQuD/4jZrj9cd2izLNiJU9f69flejDDVzS:QYOoD3T/4jos","tlshash":"2f532bb5f0c02468d2b305e984bf0199a62d3d4b3d5a44f4fd7e8c862c0a99d7639e7e","size":64777,"data":"","first_seen":"2026-07-27T03:26:08.839502Z","last_seen":"2026-07-27T10:53:39.238665Z","times_seen":8,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/26118.3f4b0e5de045d6bd8295.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"introduction_type":"scriptElement","is_inline":false,"md5":"1df37fb14b509991868640e93d196bed","sha1":"5f505db48850be97fd31188d307c0ca784a40dfa","sha256":"ed0d9ccffe67dd588b5c48ee432f2e2dd44b6cf6cfad2f9758b8301cd0d8520f","sha512":"912b321be9c0a010a1c7329216e9ab2c519ffc0ab565211c1eff82d6a9ad052dd9a608f210d4946ef10e20a2d65e45692b0f2ca44bdb5810354db30cd40ef97d","ssdeep":"768:iDUhaWDzyJMn6lh1lMAf0BokL0ZBWTvf4bAGUvS2w+Ntd87EKEV3GmXEKptPPFb4:iUnZVrXEKtql5suJ+m3SJaIKoCVmG","tlshash":"d1533b907354a29f53d3e1adc63d8496771a60b7b80f4a70b4eacee8116b47ff913908","size":62062,"data":"","first_seen":"2026-07-23T14:00:31.462637Z","last_seen":"2026-07-27T12:48:39.742998Z","times_seen":102,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/39609.8ce0d793b2b60be7a4d5.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"introduction_type":"scriptElement","is_inline":false,"md5":"1af372c8d2679eb4b4723ab88e601eef","sha1":"bdd83e7842c5a9012e55084e71cd31fdcd5f72d6","sha256":"7cd30257c9448f2910216296d47b421cb724c4657dd6b6da06196e9b6323451c","sha512":"2cbc64c079104c42314e0475923e68a449456822936c0c290ef608f65e01b8e76a18727eadf52df0f2fc73b20c0b817c4287d1b42ac30ce2cf06eaf5cb25079d","ssdeep":"384:533u26UHCVnsa67bSIVIZjgeWDGu2JL2qlSUOTeEX:peEwnsa67uIVEjHWDGj2QSUAeG","tlshash":"c572c6a5b1a9203a11e78667d1791743f231694db003479cb17e3cee1eae8893369f7c","size":16260,"data":"","first_seen":"2026-07-22T17:32:48.037533Z","last_seen":"2026-07-27T12:47:44.714012Z","times_seen":62,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/en.49677.098688b37f7855b4c79b.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"introduction_type":"scriptElement","is_inline":false,"md5":"0f6776037f5de9e4c3f9207486f0f7b2","sha1":"783fbc6385122ea3c305de021a71b08abbb0fe13","sha256":"dce110ca579172bc1139100317015723ce296c628363106c1f5f2f4567c0ee5b","sha512":"cd35bafd0f45ba936b47aafdca6062140e335ebd2f5af9fe5de62b033302b464c56fadcd87e9ecef463689aaece2f2c72b8da59c89c1700df22b99c4bd4721fe","ssdeep":"192:gYx48+UxlRhelpk8aH7usVSBzl97rUv1sSM5jyHw8BedM3Mj45shOAlJH2Ew+41q:7+UXRheQl5Kzl98tm5jdhj45kJHlzN","tlshash":"4a42e917d100c2f60fb0e662b749edd1b6f8b09893f1e0c673998f689207d65a92d778","size":13031,"data":"","first_seen":"2026-07-22T16:00:00.332154Z","last_seen":"2026-07-27T12:53:06.194945Z","times_seen":131,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","fqdn":"s.tradingview.com","domain":"tradingview.com","tld":"com"},"ip":{"addr":"3.164.240.120","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":true,"md5":"42e34d43963ba5c8f37c775b35258a3f","sha1":"77848caef3f422b34490fbcc9b420a2eae91e973","sha256":"4bca020551dc54855ef72cda3d88a25ac010c32345bebd8111e1d884f56b1dfb","sha512":"1d102717114d2322ba1fd3ec6fab0b9da9bc194793c340ce4efc56611ac5ea53860b13a04ec8c3e20da463da1c752b9254516dce5bc499934db40f301037ea5a","ssdeep":"","tlshash":"8690020da4210201206830c4fa8236426c9104a04f099c100101d81061c910bc8556df","size":46,"data":"","first_seen":"2026-05-25T20:24:44.282834Z","last_seen":"2026-07-27T13:00:41.457457Z","times_seen":3777,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","fqdn":"s.tradingview.com","domain":"tradingview.com","tld":"com"},"ip":{"addr":"3.164.240.120","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":true,"md5":"2d411354f21bb22b65f55d8bfad14f6e","sha1":"0a0a24845eb1cac5a48518e1bc5db6e3d5dce792","sha256":"cb1426008557b5894157468472242e22bb84d186d91063e50456abb38b79ed23","sha512":"f95f53d57cf6b8cd06137c700ea9f82b2342115f8ac40630b9fcd57322f6e4d42e6ed7ffe48e64c0dbe39388cfb9f76813d882fb40b9c5504cf0e670ab3b28fb","ssdeep":"","tlshash":"1d80002080a00000a28830c2e008002c3838c3320a8022c0838080028082ae082e02a3","size":27,"data":"","first_seen":"2026-07-16T11:36:17.999846Z","last_seen":"2026-07-27T13:00:41.457976Z","times_seen":2347,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","fqdn":"s.tradingview.com","domain":"tradingview.com","tld":"com"},"ip":{"addr":"3.164.240.120","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":true,"md5":"d344f1b758ab7e6019b609acc1b20af7","sha1":"84e5cf09c5acfadcbc61867e8bb92d760f7c3daf","sha256":"433d4f23f219357d081a5be007170e1e50e5681ccad88321be60fd9dc64c0055","sha512":"39d29cb29c2e5ffa79366a6b6a08595d7b88e915be65a04d062b9cf2d8e1e008dd2dccee04018f55d446e46d3d7e3a362e97b4c4018fbf9a706c452f1a38e46b","ssdeep":"384:LipOwuVkogCEowCWLg/JcVlRcHtmjpfbrtka4kh30:eNogFbLrPh30","tlshash":"83822067c80da32ac456de26bc7bb602fc2e075945b529646aecc86c04c7d53e30ba7d","size":18668,"data":"","first_seen":"2026-07-27T07:58:23.452703Z","last_seen":"2026-07-27T12:53:06.284506Z","times_seen":43,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","fqdn":"s.tradingview.com","domain":"tradingview.com","tld":"com"},"ip":{"addr":"3.164.240.120","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":true,"md5":"8062d232826eee4ffac1e152a5142514","sha1":"1b7f2090ebcfc1380f56c34dfc4f294c7301605d","sha256":"ace81cabed19b96885e6fec0ca99bfc73b71b6ad7df50664f92e68ca7281512c","sha512":"4e11703f66d5cb936d78dc2aca12c94504819135e1040189ba4675f1c0b5c1478ece5ca2f02d7c893a38b341f34dc318703d6d7a4c51307c031d5384676f2c01","ssdeep":"","tlshash":"78f02d7c1403dcf784fa1082c6b8e2c0c653856aef942ee123408ac2220ebaf02b1bd1","size":651,"data":"","first_seen":"2026-05-25T20:24:44.288837Z","last_seen":"2026-07-27T13:00:41.459061Z","times_seen":3917,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","fqdn":"s.tradingview.com","domain":"tradingview.com","tld":"com"},"ip":{"addr":"3.164.240.120","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":true,"md5":"ee67c287d030f52bd2b854999e8fc292","sha1":"ab22877af921b436152b801916972d30da5fd697","sha256":"2a433f86ea49264d4e7ed35bcf128a6a625d3dde0116faffe8e8fecda0107697","sha512":"072dc69913f8f66fa9ec8940794ca04fa7697658dc7eed4d44e93d96af935c8d8997ebb397598e170439ae6f2ebf3d2c3fc9c5a1edcab91cbee66cb2b4d3da98","ssdeep":"384:N40xN5M2HCSQipOwuVkogCEowCWLg/JcVlRcHtmjpfbrtka4tF:N40xfHCSdNogFbLrM","tlshash":"b0a29417c80c632ad9998d66bc3bb742fc2d075d45a129a46bac9c2c14c7d53f20bbbd","size":22652,"data":"","first_seen":"2026-07-27T07:58:23.455811Z","last_seen":"2026-07-27T12:53:06.285071Z","times_seen":47,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","fqdn":"s.tradingview.com","domain":"tradingview.com","tld":"com"},"ip":{"addr":"3.164.240.120","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":true,"md5":"a451bd95e420d24a151cb5a25660fc44","sha1":"de8b722786339662ff8f0f6a25cd85930eddfb6d","sha256":"c8f09d6bcd1db51b6c98a3f11c98e6af82972a8fbd80e72dd14822bdc7c8ca97","sha512":"80b4700545cf6047c2c0d3f4a2156c0bef71d9bb050e302185e1806abce0b043b96d282712e02494ca2472e027a0e018e825ef23fd7a8d5f2768342dd46f086a","ssdeep":"","tlshash":"25e0cd478124c410b2d65848e53919f53109b59ae64309f1f260bf0cb1567f394d5dfc","size":321,"data":"","first_seen":"2026-07-24T11:36:48.290535Z","last_seen":"2026-07-27T13:00:41.460149Z","times_seen":1480,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","fqdn":"s.tradingview.com","domain":"tradingview.com","tld":"com"},"ip":{"addr":"3.164.240.120","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":true,"md5":"9d9bc5ffab15aed4773d569d62c5ba8b","sha1":"0c8d1aaf4c47cdfcda045dab107ca532b1f79b2c","sha256":"46a2e650802f69388f056281de89811b65b26bbb94350a0e175c7c4c4368a483","sha512":"8a7e0f121165dd69fcc12c3e8c8fa5cc13a4459d091f1229d33efba3db5cbe6adbd703665df67609399e5adc89884506e7fd6abb61759b06e7abd565d01c79e9","ssdeep":"384:RMt9Rl8Do+vHgzH6wmrebszczwhH/p5lOrylk6uNFCSF5I3epMtK3/MWFei:RWvGDo+vHgzH6/8szcyzuvCSF56yMi","tlshash":"44a2648196270c052bea174a68325103b22446f8d647395cbd786dee6e2cbc671f37fb","size":21867,"data":"","first_seen":"2026-07-24T11:36:48.297592Z","last_seen":"2026-07-27T13:00:41.460656Z","times_seen":1480,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","fqdn":"s.tradingview.com","domain":"tradingview.com","tld":"com"},"ip":{"addr":"3.164.240.120","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":true,"md5":"569704bfe6c1be70bea96e62c95d10b2","sha1":"1ebe9e3483f15928d18af8367a993cc1fe6f95f6","sha256":"577136df8200adf35699ebd443ff95aff588911e5451a64e7249b954d496ab08","sha512":"27482e4bae245a82e789bd6bba1746bd03fc6d2916045062e35f6bd7d8496ff54720271e9b16bf9c72972f08d7d7aeed33e1c0e2d0ef905ea9253578b05d44f2","ssdeep":"","tlshash":"6c3150f9e42264750ad310d832b7c7aa3f333595f1c72552c4bcc08a15a6dca24a3eed","size":1547,"data":"","first_seen":"2026-07-20T15:50:49.068553Z","last_seen":"2026-07-27T13:00:41.461205Z","times_seen":2223,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","fqdn":"s.tradingview.com","domain":"tradingview.com","tld":"com"},"ip":{"addr":"3.164.240.120","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":true,"md5":"d080aef1e28b9ced897f549e49b13916","sha1":"75abf1173fad589cc5e35b388fa0a3067188e157","sha256":"cb914bbd5f3df056d111c04f26650d699d100920c24e13e5e50c67ecd1de4e93","sha512":"746fc099bb9ed96629e79d592c09b25bb38203a52cb1dced0a65325ff096b1ce9f508f5f2a26570312d75569a6b56be634501e6fa6a59c2fbde67af8418caa04","ssdeep":"","tlshash":"48d0a754212b612234dc3054d62ee6d1f5151a922fd310ebd7992018b665893a9547ed","size":245,"data":"","first_seen":"2026-05-25T20:24:44.292788Z","last_seen":"2026-07-27T13:00:41.461708Z","times_seen":3919,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/volume-footprint-study.9dc6760cb03ba41d68f1.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"introduction_type":"scriptElement","is_inline":false,"md5":"02705aa805bbac9bccc99b4d5b83d9f4","sha1":"78a6115784af9125bbdcffa02a4e496b8927e73b","sha256":"7ee5f3a19f5fe49954db3d9c732c7ec564831ce84b66ae61abcb67931f501f2a","sha512":"1ab4eee9064f0fd0b6970b0925fe5ba110fc2d334cb02d30864795e52bf9098a3d49ecd831402b6ad990e5f8c5a697078b2aecacaced188be7ee1e1d95a3f765","ssdeep":"384:Ab04y76xACAdQlDbTQ7ZiScKevr/0XV67P9kfZv/H6eS/Vns1Ln5Ind8ES:6y76xApdQRbTQHEj6xvyUGd8ES","tlshash":"3352a731b1a2bce623b410d6afe8069e856a5d50a45e6cf8f26cd0f71cd5509173db3c","size":14451,"data":"","first_seen":"2026-07-22T16:00:00.386345Z","last_seen":"2026-07-27T12:48:39.850653Z","times_seen":82,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/studies.c50f28eb9a346e093252.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"introduction_type":"scriptElement","is_inline":false,"md5":"7987bd9ad9ebf8cf88bfd546acda45a6","sha1":"9d7cd0f9c2870976e2d42691fcec9c54b559febe","sha256":"561baf84600f8c7de1b64b308c0ab5c5c64b4147787b87dc06b944c48ba625b6","sha512":"9b8f36f0dd7580b4de39537ae4436f51bc2c3209e74e6b6accddf56c1ae01b8f54a9b9c64310fd18ac27cc77a3823c6b038078c45fa7e8ecff7650e3008a8a9f","ssdeep":"3072:w9dsU/XupjW4Pz+u8HuG3x3TrbZ0jv8L2EChXqVIywmlgkOJGJcdbo5CgZPz4OyG:44PToPYEJYTgZPz4OyoczgJyylAt/W","tlshash":"19042a6172e178ea93eb10d949790543db1d2c86780984acf2bc4cee265dd4c723afbc","size":187317,"data":"","first_seen":"2026-07-24T11:36:47.85007Z","last_seen":"2026-07-27T12:47:44.713484Z","times_seen":72,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/48854.b073f4f59ce9ddc09df4.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"introduction_type":"scriptElement","is_inline":false,"md5":"b38c80e3104987e372bb13f9591e1f2e","sha1":"df5e28eac8e55d9c813a9e837bc75956fa0428a4","sha256":"d4082ec6bd550c0de95c330de24298f9f94e5105d1d676573dcf41cab3e90390","sha512":"cffe021e65e5b2185532f89a567bdbe3ac288c794b5f6c4ce14da7939902f6fa6be4ddecbe480ce4b57452ecb66aec9844c29b862b76670a4c7db8a7e61e6562","ssdeep":"1536:vwadSJcTiYHbSU6bHHgcwfO4EqeLlwinfz582vpT6EWS:vwGGY0xnfz582vLf","tlshash":"96a3c8e6572c828c6587db58dfaba891670fb0f8b16981d4b96ec77061477eef807c00","size":106035,"data":"","first_seen":"2026-07-27T03:26:08.958081Z","last_seen":"2026-07-27T10:28:13.975112Z","times_seen":7,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/87995.911b26181778fecc4b4e.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"introduction_type":"scriptElement","is_inline":false,"md5":"6a05d8171572287378e38e6964e02fe8","sha1":"63d026c77be2140ec887f9ff6d3f073098c753d7","sha256":"6c8f663aeaed79d462dc53895df9b7870b0e620a0dfe1116cb122d17391b60ed","sha512":"a4076a5db83f1d9f5054f7bcbcbb078c8881c79fcd79ea086d710a4a25568695a0fb17213a40d0b396482e293c7d980d411e5f128a7a040a765286cf92d3595e","ssdeep":"768:72RxBdTMf+AnnZv7+SVxp9QYQ2UYfzvEB7DU0M/Zm8FNpVwLY8jnEM//i7XeBFK8:7SEnnZv7+S9Un78F/VwLY8jnEM//i7XM","tlshash":"97e2a642e342606702f381ed0c354503a339ebd5784649acb6a98defb56cd0cb5bab7d","size":31267,"data":"","first_seen":"2026-07-24T18:44:55.949977Z","last_seen":"2026-07-27T12:57:37.012976Z","times_seen":294,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/en.58667.d15fc4b5c631bb5ece8d.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"introduction_type":"scriptElement","is_inline":false,"md5":"c37495f6ca72950f28ad5a6a79a0bab4","sha1":"b23429fd2dea7f2557a8a68545083949759c3ad4","sha256":"b4511e0c850bde295127e6af14148f016b9aea35ea705cdf3106a5a1edbd93b8","sha512":"ddee6e0c9cd60676d9195e2fb635982af76e72cf188acf0f42ba7ac648dbd5acc579a186a2c51fb5ac9d5e758c5289ab285ea4e80694b19f70a1715a5707b77c","ssdeep":"384:L+x0EMPsBRgXD2PTmdN2/5dQ1tHSJm/BtU:L7E2NJuJmI","tlshash":"2cc2c007cd96b099f3f6e24e0eb4d50c2cb453495270d702be868e289ae5ee69d2f315","size":27626,"data":"","first_seen":"2026-05-05T10:36:04.872376Z","last_seen":"2026-07-27T13:00:41.431568Z","times_seen":4081,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/34678.4a992aa150d8eda5f29c.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"introduction_type":"scriptElement","is_inline":false,"md5":"64083c0234bda2342afde952ad595ff1","sha1":"9de336bb851649fef34561583d096a3859314ba7","sha256":"c466ce31a3b07b166d26cf6a472c415df8a148dce9df6e232151349a72e1d8fc","sha512":"a269c9660021311bb08ba6849fe621cd4162f40400e6946e2623373ecbc7e741a5ef06b7b05041d0f49c0350603fbe5e6fa62ea47a82a5fcaef9a6270014c765","ssdeep":"192:AJfFriQ107DuXc1MatsfICpyxjb9yQaAKM2pRZPu+uFRMVIMLC:AJfFrF46cTmxygQaM2pRZP6FuqMLC","tlshash":"5622b68832f1f0e643e368e440ab0406f139690a544eb5a4e396e2d36d75fc5c1bbfe6","size":10099,"data":"","first_seen":"2026-07-23T13:54:09.149892Z","last_seen":"2026-07-27T12:53:06.215669Z","times_seen":293,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/51031.535f27b776f394c7e43a.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"introduction_type":"scriptElement","is_inline":false,"md5":"cd701b7197ef255d09501c8c91343508","sha1":"d84cab0e7c13c5801a0a2c6df4aba3f32e6b316d","sha256":"714cb61cc6924e6d1e8241ff191fc5aeb03baebbbaa81c15949838a09fb406f6","sha512":"ae8f1406dc1e5c9e8082d922e8a0d6257582733129c26617fefb99243013fa5f0bc9eb178dd69665786b8fb7fd0b7ccdd7ed719fe60676564b82598253efca75","ssdeep":"768:CcDTi4tT8YE9xSrNtzDcsIj/XWm9hIz4dp9VUZ+n5Vz2mpehIeVeLh9zoJZemINE:hryj/XWgGET5Vz2mp9emzoJZemINyKfS","tlshash":"7e131a35652af5f79ee941ea543754829bbc00523444042876bccdec278caf9f23aef9","size":43860,"data":"","first_seen":"2026-07-24T11:36:48.046407Z","last_seen":"2026-07-27T13:00:41.41546Z","times_seen":1468,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/35964.674ba7d263ba904a72fe.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"introduction_type":"scriptElement","is_inline":false,"md5":"1cfd30bb59f5d160aa58b0be41283ac1","sha1":"b94b3e1e784fd7bcd065da451b004964dfeb2491","sha256":"1284d9b4da104dbe61c8a92893637a46422b5e5260db64d790cccd623141498f","sha512":"9a3d3c37d120acb9760ed8e95106365aaf7a0a7ec50806f472536a523a6cbd869422e3133918092b0798d4fddfcd08b25a6564bf3794b61b542c07bc1f537d60","ssdeep":"192:PQyzfAdjCtF8IDtU7tkxG2TUtilPL1nUGCARx6e8umwGkZrMq/662pv2eh:IyzfAJCtF8ID2exjJLV/J89kZrMcmpRh","tlshash":"1d32f761317144a296fb91b9d127470ba33722ae38078aad705c6cec80cd7e67179bf8","size":10913,"data":"","first_seen":"2026-07-23T05:21:04.169717Z","last_seen":"2026-07-27T11:47:31.130589Z","times_seen":72,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/en.95114.3b57335a3d1cb4c80bdd.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"introduction_type":"scriptElement","is_inline":false,"md5":"b387ba60284a5ea232d8b146d9a92222","sha1":"b0e7409a69216356392ad22b0802cfb4f3264701","sha256":"ede33045a90b91e44e7924729039086ba1b6c0c80af85a0270d6bfbd73b16016","sha512":"edb4fe9a9cef5244ac53909f955bd5b705ae3d7c47b9b1f9a4324774d86b8c6bd769cc14e2ed495e65651937070330be7df4571f581c873e655b1782f152180d","ssdeep":"","tlshash":"b731f01bf01032e9aff2a232725aec70bc1474d810f3c5c95ab7b716da17e6c4976688","size":1786,"data":"","first_seen":"2026-07-23T13:54:09.147041Z","last_seen":"2026-07-27T12:53:06.239074Z","times_seen":289,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/12181.b65a58355ff7cc34950f.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"introduction_type":"scriptElement","is_inline":false,"md5":"90cd4a18a60bc908d0840ba4fec27dc6","sha1":"bb5de7eba54b0d9323f872960612df642a27716e","sha256":"ae043b44480c283e0e50b84e353fe3e98e560fb8f9bd14638f61a5dfadc231ba","sha512":"1ff83bc8bcac42839140d927da7b753dc51b3ab887327bf07fef3ca3b194425621ed7376ef404517f818a80b9f3d96955fd5c9239c1dc05e599503f7118edc99","ssdeep":"1536:U4ecrc2hMNlbPWqfxN+fUE44ld4e44IJmuJY7+fHfvWr05KNyhLcSbWd4+o:4CxdswjaWyn","tlshash":"10d345b217f406f473b80d5293f77e591b3c74a359882c52d2a4d9a0dd40fc2a96ba3e","size":138370,"data":"","first_seen":"2026-07-01T19:46:28.364877Z","last_seen":"2026-07-27T12:57:37.147083Z","times_seen":1122,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/53627.115195b72f2d92cecb9b.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"introduction_type":"scriptElement","is_inline":false,"md5":"83531bbbf4576c6e43672349a06b72b5","sha1":"139a361b632189e32c0dd137dfe2b2ed8e655fb5","sha256":"b661a00c1330d2de36b4e45530101c4718696a241c819c26e3676498ac5c95b8","sha512":"029891e11ed6d6c2beb544a4f09ba8d6ab21b208d9fb4ca7c20fa27c5b26386da421b9e8aefc6ee8eb01ee4e4d827ed115989275498a0a2fbf4ed847368cb3fd","ssdeep":"384:pXcabhDdLcMCAL5XlK525HvbEMSgjqfJXJ1YJjB4wrHfw/KN:pXZbhDxDCAL5Xl15DpMJXJ1YJjB4wrHx","tlshash":"b472d84d7201b46d56af76a61c3b164ae1326428358904bcb4e0f4f94879e8fb93bf37","size":16285,"data":"","first_seen":"2026-07-23T13:54:09.098812Z","last_seen":"2026-07-27T12:53:06.22086Z","times_seen":291,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/55969.43c3748014de2cd0bd1c.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"introduction_type":"scriptElement","is_inline":false,"md5":"2ffe3f8909cfa5c00f9356969ce56989","sha1":"25fb185c3e390ae4bd33c6395913b100e0a4f6d9","sha256":"7d1513778a61b869e05173da3d33c80b937eaf583aeb370b947947ddcdce4c84","sha512":"2022abb3649827fd1f39c901fc168d99ac273164699e1ca00d77e017ee71f51fb199aac7cb5eb214ba12fe7bfb88a65a777fee03d3f0318dbaa768e188f74d6d","ssdeep":"768:YmdyerAdxxaVWiG7s8trffJtzTrcSWJMAchHTdv5UC1gMgFwMA+Mv60F00rFLfLL:5dyHaZG73TAVFd+60S0RuGpriakk","tlshash":"62e296ca3286733693d1c7850c750903f339a1743c0a55acf6ac6acfbe1a942617ab7d","size":31210,"data":"","first_seen":"2026-07-16T13:40:49.785089Z","last_seen":"2026-07-27T12:57:37.062945Z","times_seen":601,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/80915.69404fda8aafc2742c55.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"introduction_type":"scriptElement","is_inline":false,"md5":"de2945c844b995a4434f72c9e9f10d55","sha1":"dfa0f41fd695f4ab2068af223864f90085590f09","sha256":"29df78da8b43b5048b57229594ed6f3ad79785773f63f3001a604d1a17a206e7","sha512":"e000d576b22c638622179b6cd5b5e72b9e95c90f191dce058a700842f4ab620ffa60fabfd70814866ae1686b778f1fb6384117e7bf0c4d1c66af5945324c2137","ssdeep":"192:zD6UcCbe+/OzNJUFPphLnY8P8hfJnubwbwShMj:SUcX+/OuPphLehfJnpMShMj","tlshash":"bd32a559b2a0b02595cf6760c02f150aa2752019f70d98d4f69ed9ea3db076f213be3d","size":11058,"data":"","first_seen":"2026-05-22T13:27:07.587764Z","last_seen":"2026-07-27T12:48:39.608917Z","times_seen":182,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/8946.0be20cf5b56838bd1cdd.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"introduction_type":"scriptElement","is_inline":false,"md5":"db8665d50bbb7613ae4d5ff6618efb3c","sha1":"72a0474595ec30ff0f5b29570e7d187a4fa34bf9","sha256":"fb3be873ebdfbe3bb4183024dae7c56fffbf7bea33c01b1f7e13d8881b2d73b9","sha512":"a6a8b9b47236538cc2a9b1b522fad8d83f2d3dc7bfbe876ca6cce7a11cb9e780846d3701f295f97ada93ab31796dc3f2300f38706cefc2b939261da5325e75ca","ssdeep":"768:3iSitKD8BRCVEvoJvvI2TWRe3/E05YFa9dOJiGHE9E1RInrGhbnFT8hu7tOq+CKX:bitKDeSEAJHj3f8hbWBp","tlshash":"a5e2f7513531714852fba5eb99da062ce334732ce8248e25a8f1dc8c7ae5ae0e377d4c","size":32955,"data":"","first_seen":"2026-07-22T17:32:48.084118Z","last_seen":"2026-07-27T12:48:39.778144Z","times_seen":60,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/1331.54fd2a5952c88f3555c1.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"introduction_type":"scriptElement","is_inline":false,"md5":"0501ef2557ab73aa0e242f1410552693","sha1":"e569c953f6e6c95a9d3cbba1ae1b93120b4e136d","sha256":"c76b72cbdcf6fee1dc0fd1903df2e2e2c90f846b942f16951116443d4f041177","sha512":"27a42e4490c90aff8af7a9c0804160d4efd88924878164391ac4442baa4c5faebd5f55f7f730976feb526d62386ba9a31ac50a3b568cac3216b0f60ecfee827b","ssdeep":"3072:COeUpW3gc3TJqv4ub7HlfzVV3Mze+wyQlmcnbmfH48J24NnUxsLIymKS:COeUpB42HlfzwAyEPbUH48Y4uxsLIyw","tlshash":"52045a61b440b67e92f304db94be1489e73d2b49e4044474f26dcc9e2ae9c88f17af79","size":185009,"data":"","first_seen":"2026-07-24T15:28:44.734426Z","last_seen":"2026-07-27T12:48:39.745493Z","times_seen":54,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/en.42167.c6e351b4175cf2f8868a.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"introduction_type":"scriptElement","is_inline":false,"md5":"5d18f68187ca431edc0cb80175647ebb","sha1":"4323245a8a25548ee968a6c9632eb1832651bf8b","sha256":"2aec8b1d1a51de2e0165ef92f9554a8b74d3c9b70345df554e6e8c34ee168cda","sha512":"44dab33ad3a493cb115b3c65ec6217a9a5150efc220ae982ed2c97be7e8329681295ccd7ca5956e36e1b2cdb3d3155744d6f45e00cbfdedbb9ab1e171090f3e1","ssdeep":"","tlshash":"8d41971bd000c4fa2f71db25b748eec079f8b26401f2e0d377951fa5c52bca85824a39","size":2171,"data":"","first_seen":"2026-07-27T03:26:08.781907Z","last_seen":"2026-07-27T10:28:13.822325Z","times_seen":7,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"digital-assettrade.com/","fqdn":"digital-assettrade.com","domain":"digital-assettrade.com","tld":"com"},"ip":{"addr":"5.182.208.207","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"introduction_type":"scriptElement","is_inline":true,"md5":"be6dc4bc5051e81a24ff9bf639061372","sha1":"52e460e77195394acec1bfb83120fd5c5481d655","sha256":"aafe1b8d562bf080d3bdea9ecc66ebfe1b33cf597bcae554abad403229fc4135","sha512":"f746fde3d5b15f121512af0a77634c252c7d4d66f5328427781a76f7e776ac993742fba2941fc55847aa3a700ad3b636fc77107409456ee37908ba8aed15b1ea","ssdeep":"","tlshash":"08c09247f5b1164b14dae20ae397488c72bc8509463e0e2823a5a0da3db3f9d030e5a8","size":135,"data":"","first_seen":"2026-07-19T11:27:24.904394Z","last_seen":"2026-07-27T11:19:06.19443Z","times_seen":6,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"digital-assettrade.com/","fqdn":"digital-assettrade.com","domain":"digital-assettrade.com","tld":"com"},"ip":{"addr":"5.182.208.207","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"introduction_type":"scriptElement","is_inline":true,"md5":"12ba20080d34ca2d95b914d9945c59c6","sha1":"9ac0512bc393753b4a36316ac1576129dd83a23b","sha256":"53b8e92616aac2bf7610cb759de1e2b01f039c8fe908309edf8818b2a787f5b2","sha512":"340cc54cf72bc79ef116e43a461ab8e48a63d864355c88233eb7f1ab69add020e2708ba050459ee33406fd469950fe0e0cc38ece309c801dbfc71d23e30e4367","ssdeep":"","tlshash":"89519ef50db24217258252e8699f01256c3821d7fd3e7ca97bdf1ac10f8d48c16b9619","size":2562,"data":"","first_seen":"2026-07-27T07:37:37.074502Z","last_seen":"2026-07-27T10:28:06.293277Z","times_seen":2,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"digital-assettrade.com/","fqdn":"digital-assettrade.com","domain":"digital-assettrade.com","tld":"com"},"ip":{"addr":"5.182.208.207","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"introduction_type":"scriptElement","is_inline":true,"md5":"9816066e865382568f9129570cbe94c7","sha1":"1311855c2a372f29622db4e616d7aff0ae68cee2","sha256":"4c77202623521497f157f0fc0edfed14a9bc122020a7af6c010dc60d008cf88c","sha512":"55f55b92b76d29660afc5b1069ecec9ea8d8d53b15162ee349f38b39e389b349915fd1f57d3701b43c8592beeca0c41f53653ab9092c8f89adc5655bd8feeb64","ssdeep":"","tlshash":"55019728da6a0c3b10a1a1a9889996591a1800870d033c8c77acb8ac5fcd72f75b27dc","size":833,"data":"","first_seen":"2026-07-27T07:37:37.076845Z","last_seen":"2026-07-27T10:28:06.295104Z","times_seen":2,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"digital-assettrade.com/","fqdn":"digital-assettrade.com","domain":"digital-assettrade.com","tld":"com"},"ip":{"addr":"5.182.208.207","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"introduction_type":"scriptElement","is_inline":true,"md5":"742f3c695d601a5b1189841b827334c4","sha1":"e81410250e614ab9a87f19f478a5025622762851","sha256":"ba16fa617dbbccef2738fbfe44702448b9b61f576f330170fd3c53530d90b6b1","sha512":"12aa25f666646d096e2a38b0d8ddd731a36872d0a0eafc753b09e2ba7c1358f7a18f9695d797e188a9b1db5ade1b392e333423b6ae1a7efa11dd43e312ffe76b","ssdeep":"","tlshash":"bce02b3e6c758095578611b4c1f7e21c3d1a30754494d91798a9a86928f0fca6d059a4","size":416,"data":"","first_seen":"2026-07-27T07:37:37.079084Z","last_seen":"2026-07-27T10:28:06.296927Z","times_seen":2,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"digital-assettrade.com/","fqdn":"digital-assettrade.com","domain":"digital-assettrade.com","tld":"com"},"ip":{"addr":"5.182.208.207","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"introduction_type":"scriptElement","is_inline":true,"md5":"cda1f048efcbb63289ea7bf9f94bb7d2","sha1":"614440e1c1a45617b026e30010632098e67dfd49","sha256":"b38d2e9c71367c9829e1c1da3b55f92d97016010d8220aa6cabd7476e69442d0","sha512":"01eae7916f9acc15511a6358d252326a0d863f6c4aecb6a27b105671e53b79489d31ab0cc091b3cebfbcc1a85fc2bb665223bc3cc643a02a9ea35cfb68268dd5","ssdeep":"","tlshash":"60f02c0e04e3545c0863709e388eb00648372903640ef8227ecd16100f880ace3a2bac","size":438,"data":"","first_seen":"2026-06-27T06:43:07.100218Z","last_seen":"2026-07-27T11:24:08.898194Z","times_seen":23,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"digital-assettrade.com/","fqdn":"digital-assettrade.com","domain":"digital-assettrade.com","tld":"com"},"ip":{"addr":"5.182.208.207","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"introduction_type":"scriptElement","is_inline":true,"md5":"628135453e24f93016d2e4a9e2b084c5","sha1":"b666b7fb3e3e0ee445c3007b6ad995af7303de94","sha256":"92678201e957bb0ed4f57769e409198d39ad8c2273de501c6127af7b4e27caee","sha512":"3efce993180810eb357cb49cb1ba37e557809533f60814abab7e6cc503a487dbe1f4537f9bc136843077c0c9bb813805ca6c780596580208e261912b3fb2904f","ssdeep":"","tlshash":"7561119ea9a2b4730e9360fa87af15041437410bbc87e8197fdf43804f6a665d7d3798","size":3193,"data":"","first_seen":"2026-07-27T10:28:06.29974Z","last_seen":"2026-07-27T10:28:06.29974Z","times_seen":1,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"digital-assettrade.com/","fqdn":"digital-assettrade.com","domain":"digital-assettrade.com","tld":"com"},"ip":{"addr":"5.182.208.207","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"introduction_type":"scriptElement","is_inline":true,"md5":"be989ed08084269bf66ded0927516219","sha1":"5ecdc37436bf75c9eb0fe476ab5e5be3d9a6bd46","sha256":"10e8a4ef0c2d711c1c6db34cf2fa25fa83935590e5048799345c67a0c31440e8","sha512":"b601b532382653b84d76b01c908452c824f3bd09f944d88486e83539169616056ae605628662b07a2172b1e4c4ddbb20e6338119087ab79c81b8273be8e14d8f","ssdeep":"","tlshash":"01510e4bb1b2117e48f76177539b17043f3150472009ce153fac9b844f9aa7669e2bdc","size":3074,"data":"","first_seen":"2026-07-27T07:37:37.086953Z","last_seen":"2026-07-27T10:28:06.302394Z","times_seen":2,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/en.52882.2898e638a68180ed6df4.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"introduction_type":"scriptElement","is_inline":false,"md5":"b54a95821effe8d59779b9fc14228d18","sha1":"d2cbd7229e17a9b12d18689129ee09b6de60c175","sha256":"53c37f95be948df4fe80d94d0776fd26af6bf0f13d683652b1b74990e6326179","sha512":"6d4050b13aa9f106f683468ed7c071d0c67770f818a35c0245fc7121b9e6e2f75868f44a9b53f7bb110810e921f039ad158392dc1e157e8972db02bb87797d39","ssdeep":"","tlshash":"1c31ec5be30095ea2f22d646374dddc03af431a111f7d0c937860e689267d85d05dbbc","size":1863,"data":"","first_seen":"2026-05-05T12:17:23.709286Z","last_seen":"2026-07-27T12:53:06.143017Z","times_seen":535,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/7491.781441738a6cd0618fdc.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"introduction_type":"scriptElement","is_inline":false,"md5":"aa6ac472786cc847c34f9facdcf68b82","sha1":"0078a243f124d1cad6e081e0ec41762894eee717","sha256":"fa9ef48e40cc4d9ef0a1407437c1f0f6789bac373529c4a2bbfe51b15cf28f9f","sha512":"5e032cd4b980542eebdb6e080d1958b6916910e791aa1c317479897765618cce2c6e7b98e716ed5621a5d4c3cf59b5b2176ebca6fad003c3d3a2d330bb92084d","ssdeep":"6144:EL9/Eau26kHR65+5ffnmbgOk5ayQ179c99v:ELmau21OCffmbgOk5aZ17Gvv","tlshash":"e1240994f040696892f700db90ba4504b36c3f9ae4610869f9bcdd9e295ded8b13df3e","size":228999,"data":"","first_seen":"2026-07-27T03:26:08.850225Z","last_seen":"2026-07-27T10:53:39.25622Z","times_seen":8,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/en.16193.ba075f895c6ed057c11c.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"introduction_type":"scriptElement","is_inline":false,"md5":"5ffc24a684cc802b7c100f2bd550db9f","sha1":"b566199860bd35dadee744f2ca93987c9fd7d81d","sha256":"c54bf8e5790bf29f7fdee0e7434ac170011edad6053be09f6b60d44ad7568e06","sha512":"f810b69576133f10a55ec59fee0e46a450731cbf26f01155ab1f66b2ed4b100bbef9e4d74b9d95d2032a5c84713b3dfc85f01c946ce927039e4c4c5645b70994","ssdeep":"","tlshash":"c5e0c203e160f8a17e7ade043b508de630f4b08114f2d0ceb3282f51c017c352810b6c","size":340,"data":"","first_seen":"2026-05-05T12:17:23.646279Z","last_seen":"2026-07-27T12:48:39.662941Z","times_seen":360,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/en.9555.6e45c7f028d4554ca725.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"introduction_type":"scriptElement","is_inline":false,"md5":"ebd79794f2b11ae229d72cb9c96ce6dd","sha1":"6fd910fa6d1a296c0a33f92bcd552c6bce09ee44","sha256":"98b98da7ea3183375b0fe349338207c5a08005703b9307de30bee72dfbbbe5ec","sha512":"612f8dd61e59f34d177369b82fc87118448b03a4c263c6fd4fbbfe7b3fff2678058a00d36d22f93954791f1f5aa018779d41676c9e531742c6c850b60264b65e","ssdeep":"","tlshash":"c111d027c100e1e92fb6de26b305dec0b4f5b14422f2e4c673968fbad213d6595386b2","size":1096,"data":"","first_seen":"2026-06-07T10:37:53.395043Z","last_seen":"2026-07-27T10:54:11.657717Z","times_seen":42,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/80207.3e5e7d68c875b367cad0.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"introduction_type":"scriptElement","is_inline":false,"md5":"efb45a2a5e9dedce76162279dc170b0e","sha1":"38843307f1bc14de893dfe253b89aa9ec4532bfa","sha256":"c4adc1700ca5f8538ca44843bf76da33e0bc360cdf11ff0ddafbd8856c5bad4d","sha512":"3ef5908b8c8ed8de392171a9c51bbea83f11fdb7542f8fb58439589ee43db4b6785bdb1a3e71993950d28351eb79c5548d8567cfb5f4a5991ab3488d323d675e","ssdeep":"1536:guE5AIu9J3vqcJNT6FuEckfLVnddIwc99EkRIWEEPk2SYHj28kxu:DGxu95vqcHT6gT8VnddPgTRCEgYDDkxu","tlshash":"7f33a56091880f44656183d0bcff24602d9c3d5b4ab665bcde9f0d5b4e99ac83e3bd3a","size":54012,"data":"","first_seen":"2026-06-24T00:20:51.960912Z","last_seen":"2026-07-27T12:53:42.460102Z","times_seen":397,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/67853.80fea23931bf469b1187.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"introduction_type":"scriptElement","is_inline":false,"md5":"f8344990775b2c2a5171bc2ad8f52ac0","sha1":"7c46b140f220b741fbc8a8a661683e6192bf10c8","sha256":"961c82f2020f89f91bf79ec000e28242371935bfd48a7cd4820592ef7de43835","sha512":"2a13778509f4ad27ffb8c369876aeccbd0b8a01505fbb11d048583b9a70caa3193b54fe64180782c33824fb04ba2fda710baadc3aed631f1bea1368b78e853b7","ssdeep":"1536:RB/H2wHd36c/qmPGro3meMIjhcBvvF6f8bqL9GzjTWOnhAlfDT:RBP2K36cS9roWMlvf9L0TWOnh0T","tlshash":"3f633c94b540b76963f301ebd0aa4045e3343a45b80e89a1f16ddcee39aec1c6275f7e","size":68374,"data":"","first_seen":"2026-07-27T03:26:08.714164Z","last_seen":"2026-07-27T10:53:39.236509Z","times_seen":8,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/99827.d3976dc0c5cfa2c2140e.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"introduction_type":"scriptElement","is_inline":false,"md5":"0af33a0629a4a15d05b8d21be003c0eb","sha1":"d61ed97048a72976c85785513a62b5e8590fb75a","sha256":"4dbdbd0c38d1d6468cbd0ec6b02411faaeffeddfc87c7b638be2e1263931cd14","sha512":"4350a5eab085a85477d149b1a91edb41a808bb070818e9d43e5e1147e4c71a0a5c3438616ab61efb6497365cb84e1f518343afd20431bb8612ba9f7a2165f814","ssdeep":"1536:wjugPsJO3KbxBvr1tBzoxvAgVIvrKfu2DNzmR5axsx5Eng/vc2JZu4+ej3aNOtHm:k0yKlvh/Z+839HMY74qBs","tlshash":"149309ddb2c5b06257e731b910af650ab237249d680d8440f139e8f6bc74b4aa13be7d","size":88966,"data":"","first_seen":"2026-05-05T10:36:04.846561Z","last_seen":"2026-07-27T12:54:15.358664Z","times_seen":2280,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/lightweight-minichart-study-data-source.b08f2aa28bf4069a8f4c.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"introduction_type":"scriptElement","is_inline":false,"md5":"589a4a272c03750c5c9e271c0d8d8291","sha1":"bf25be3d225156df83353c6a925a8d02f19b96c3","sha256":"fc37c616e40ee071b5fd544365a65830d9eccddfcd7b08b16a6a4fabccd9a84e","sha512":"62a033befa51909f5dfd5a65ae57dad2e77aa2a33ff65a11546ea70b0e726d4c20e722bcfa86ef09d661fced8370e156f0ddb0176ffbe7b533f011858be84fa3","ssdeep":"384:VHbBrSp3LKXyYYNANbm7k/mOWbEZeMfuY11GO4Jm62PKfyHu9WV:VHbB+J2XPYNAtm7gmOWIZeWuYvJEm7PN","tlshash":"2772b791b1a5b42e17c51094147b4213c72c5c973686849cf5ec2ceda82c79aa3bffbe","size":17059,"data":"","first_seen":"2026-07-27T03:26:09.048435Z","last_seen":"2026-07-27T10:28:13.955209Z","times_seen":6,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"digital-assettrade.com/_/translate_http/_/js/k=translate_http.tr.no.scrnY6Q2_yw.O/am=BIAABw/d=1/rs=AN8SPfq1KlUFqeiFvBMudduzGtb39QWXuw/m=el_conf","fqdn":"digital-assettrade.com","domain":"digital-assettrade.com","tld":"com"},"ip":{"addr":"5.182.208.207","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"introduction_type":"scriptElement","is_inline":false,"md5":"8168d5547327970ad5e2cb1926129f05","sha1":"f5d5f94f809e19b9d1980fbfcdbdaceeb996233b","sha256":"21ed61dfa3c93c68680af688fcd9bf4bc54be115307173ba7403378519551e90","sha512":"8ec33b614020869d352bf35f9e4353dbeb38aefe24bb7001664cbad75a4ca8716d0d9cba4412556fac6e977d71c6b581deec6ff7cce9ea56d0862903db9eaf43","ssdeep":"1536:XWjLpxIZnZzYOwRUSfl26KKZkXtmqR6Y06ECiXwNWF0:XDD4U6KKZgtBgtCiF0","tlshash":"0473b88cb6a5b4658363f4b5412f000eb23b58adf8484cadb288d8e1adf5949453bf7d","size":75428,"data":"","first_seen":"2026-07-27T10:01:12.784488Z","last_seen":"2026-07-27T11:00:42.074052Z","times_seen":113,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"translate.googleapis.com/_/translate_http/_/js/k=translate_http.tr.no.scrnY6Q2_yw.O/am=BIAABw/d=1/exm=el_conf/ed=1/rs=AN8SPfq1KlUFqeiFvBMudduzGtb39QWXuw/m=el_main","fqdn":"translate.googleapis.com","domain":"translate.googleapis.com","tld":"googleapis.com"},"ip":{"addr":"142.250.178.106","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":false,"md5":"cdf9309b56a4ff330627409baead2538","sha1":"e98eac16441e99c9512052eb0087f535b9a609b9","sha256":"310629c4e47d7960e5a89cbd6a9c1d24a4e4d7c5e18346a69a67d92355cf2cd4","sha512":"cafd13a201e26b9f94f9a636ca1f7c191ec3a9fc3f297d35ee51b1304962383e7147509932a759bd903e27e53fb251600ad6942739e472161f5a09367c3776c1","ssdeep":"3072:kjsNxt45eITHt28KRu9gKavNuBDHK0QppB0/I:osb0muBzg","tlshash":"dd14e8d9b26270679263f4a5403f004eb53b68a5f9484dacb28de8e26df4d19017bf7c","size":194344,"data":"","first_seen":"2026-07-22T18:30:16.180779Z","last_seen":"2026-07-27T13:00:41.396718Z","times_seen":2448,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/94825.8a90c0c3ebd413eb9c81.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"introduction_type":"scriptElement","is_inline":false,"md5":"321406610467d6dffd30c75b9184e9df","sha1":"eb120d6cc348265cbed0295dd3cfab7428c5425f","sha256":"3f94fcd41f3f37d9d46697679761c3bf1712a0f67a22b38bc5e3c44b47eb56b5","sha512":"8d1b1035b2fe029452f0a7de35ef2793e6da96377c589956a5e21eaf23f3b2ae7bcedfe568a74bb8ba9a46109cdc8876912e2d73814beca47bbfa286c3081136","ssdeep":"768:QmBTez9037WM2rFgD0Nm7YLSxeUf4DK4uA8JUJESLb/XW4xmmInIPxHgask+vvw4:Q4Ow7uxNVvpPpghBT4Uf","tlshash":"17e2b693b3f9a02966ded0dad8341403e31924447884046cf27dbdde6b5dd88b2b9b7e","size":33900,"data":"","first_seen":"2026-07-23T13:38:20.509185Z","last_seen":"2026-07-27T12:57:37.004414Z","times_seen":595,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/en.40528.289cbeb8632c78beb058.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"introduction_type":"scriptElement","is_inline":false,"md5":"9cc57475f4bc0e83551677f01ccb8326","sha1":"7788d2091a21e10ce4b20002d0875d298f78abdf","sha256":"aa7b0b72c05e6c30b63168c1ba891445e1f0b8805b81cb23935b9223f1388695","sha512":"441f0b713c7694da019960f7436a51911c9fed2b5b0175690d67e8ed7cee4263fa6e48b0b551d23792bf6a38cae5f76b7a06562338a3c793337c2d3eaaa09765","ssdeep":"","tlshash":"34f0a233c10959303f15639473c566518169714fe39280575123b1e053c3ca8e4ceedd","size":625,"data":"","first_seen":"2026-05-05T12:17:23.734679Z","last_seen":"2026-07-27T12:47:44.702755Z","times_seen":378,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/5355.2ea3c48a319ee0ff5b78.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"introduction_type":"scriptElement","is_inline":false,"md5":"2f4dd7b3db38bcef031ce7e36c367340","sha1":"ba2336e05b407794de4dbb6a0e18264c84b3dd51","sha256":"189cf3f450f313efd6f7415f9a052d86c632ae8d97729c459900ef09bcf4f3d1","sha512":"54d54a86d025a62386536e78f7c145ea7bb17f681a93d55091bf41897ec295fd1bbee56de09aecad350c4ca9c7df4668ec0da1f0052fa86b161ea8e9bd958c33","ssdeep":"192:9cNibKfRXUfFYt6Vn3WQt9Oh+yxiJdljjRxU3zty6psROhf0qV+9TrS3ZfEI9n:9cNlfRXUfFBV3Xt9Oh+MiJdljjRxwtyK","tlshash":"83329682312a39aa59e5209424703947920c3c9a375f907cf3b8a9fe755cc5cb2b9b78","size":11674,"data":"","first_seen":"2026-07-24T11:36:47.84256Z","last_seen":"2026-07-27T12:48:39.850071Z","times_seen":74,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/en.93745.9d991167ef6d8926b91e.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"introduction_type":"scriptElement","is_inline":false,"md5":"f1164acc9ed3899b8a4b1b577159b845","sha1":"4416e95077f563513facd8fa077e899e4f64e967","sha256":"67497756ffed52d3898e5c0efdaa047e1c34d6f0b235cc75bfc80022f567ae79","sha512":"cd5003d618b14d0db3acedbb7496bd8dcd3bf8ce9247c82c81c1f1302a38127ce2a1ae47025e12bd964f79147103e17b70d58f9231df18ecc69983d77ad5cc66","ssdeep":"1536:zf0MegJKpRpa/wQiVxO8iDjMJJ2X4ARN8uVXpzxGH5u5i+QLRjHcjd4w3Gc34W:z8MejpRpqwQiVxO3DjMJJ2X4ARN8uVXp","tlshash":"67733e23d100c0f69f72cb127b8aecc5b9f0b54101f1e4c6b7a99f2ac567d6925386b9","size":75853,"data":"","first_seen":"2026-07-27T03:26:08.677252Z","last_seen":"2026-07-27T10:28:13.912407Z","times_seen":7,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/94182.20dcc78c0e8481d43470.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"introduction_type":"scriptElement","is_inline":false,"md5":"5a2380075925f18578f9043511cb5b12","sha1":"a89076a99f906900ebf6a78bc305b7b2907d7794","sha256":"7f56a7ac4a4376433411c3cd6213d48206bb2ed08ba1b8ee1519620f3eb132cf","sha512":"d60a540c2abc402cab06057de531847ef6070b0c5ad402f1181bd89685f8be78a4d1815106dca4af25d9c113e462c9987a00ff0c9ce3f721e2e94a23594cfa78","ssdeep":"768:E2CI3hNueL6Qan+eNW3jLNL+eZvCB3vZGvWw8UlXyKbuCq:E2CMZEWv30AP6","tlshash":"f61319a17120a4ed43ebc5efd11e0948f36b7a1cf4425c21f1bdccdd66a4498b13aba9","size":45103,"data":"","first_seen":"2026-07-27T03:26:09.115016Z","last_seen":"2026-07-27T10:53:39.262308Z","times_seen":8,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/56258.282e6141fc02ac85d0d5.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"introduction_type":"scriptElement","is_inline":false,"md5":"a9563eafb41c9e6b519a29f0206f6b89","sha1":"43a8b417d99fe60c3d65ddae1e66d8cabd277000","sha256":"ba67ff82446ee411a3ef96ebe6abe55cf6cc1abfd78c841cd5d9a0a70804725a","sha512":"1e31a74cb24aeb33cac85e854608a21314f1416f3db595d14b0577305da06f72bf42b9dea2c36f570fcea9dbd7d88793bd8bc291d498ab58b1e2413f173b781d","ssdeep":"96:AaPctCCkctcSycQOchchctDOAXtC4C2GM0/CnXkMHsU3KEu9pJfmJuuImRBYkqMy:NcUrctcXc3chchc1OotC4ChMUCX1HFRM","tlshash":"d5c1118471c1f09513db9a82a4370606f27d5c5c704b79ece3d0d4d6aabba4db42bb36","size":5966,"data":"","first_seen":"2026-05-19T10:58:17.796011Z","last_seen":"2026-07-27T12:57:37.094006Z","times_seen":975,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/34929.404917e2512cfb8d127c.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"introduction_type":"scriptElement","is_inline":false,"md5":"cbd8279b6402501424da9ee1a2a31a28","sha1":"ac2c985c2805817fed31985e5e7597f0b9ace39b","sha256":"f2e5f67594fb6e7721c74604a6e5feb4f825ea66df866dc8be5c56dfc567e67e","sha512":"eb2a80e52b780c02d020ef4abb7512d06f7f8d5d4ef3a4e92ed3790a426f76c616fdabbdc7c430de98cd6604f44d59b0784247798b01256b935bb1d52e102fb6","ssdeep":"384:NMcwWj0FyWybsmbqnxNvSxxOHlPMNRBb3wzI0Bg2wF1kNkhy1+:icwWj0FyWybHbqnxNvSxxOHxMN7b3w8T","tlshash":"2b620a80b0e0e46496fb105ac33b011df7f1190df8675c6db119addc29eeba93229e78","size":14666,"data":"","first_seen":"2026-07-23T05:21:04.176375Z","last_seen":"2026-07-27T11:47:31.116199Z","times_seen":71,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/error-renderer.dc2ce717d0e5028b35fc.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"introduction_type":"scriptElement","is_inline":false,"md5":"1c7314ec5698d1269fcf3fe8e9d48648","sha1":"d1fb17b9e771bd250914284740cc34a81547b91d","sha256":"bd627f042740901d7be3db9685ce7831516e3f188779cc4a1ae7dbaa6fd32b74","sha512":"1b164cef2eadd5807eaaff6a71f636a4c6c0f4974124302f30b8eeb70e2bf37fee66589a465b1619919462a2a0c3d3c5336d900152e91200950f0205b73d7452","ssdeep":"384:iBaD9U0gstXMY5/BUFXXRn8XaTigVaft1nglXBxEiS1WCSELCg4N:iBaD20gst8Y5/BUj8XmV+tyLCsCSEM","tlshash":"4042f7a462dab965636201cae474b813b22c2d02348d86a8f72c9dcf371cd41f57d776","size":12295,"data":"","first_seen":"2026-07-22T16:00:00.456338Z","last_seen":"2026-07-27T12:53:06.174502Z","times_seen":138,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/widget-toptoolbar.d7ed7cde5eb35f0fe4b8.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"introduction_type":"scriptElement","is_inline":false,"md5":"b35e59efb0bd11483b985f2bd44f849a","sha1":"c6462f8d45b288692eefab16cfce1bde8633a682","sha256":"aa5adcee7d49a8b57e50e07d14931f3c5213ddbe82695bbab124f86371af9dfa","sha512":"ef350f2c4925c583157615f8d1dd4471e1f6fd1336c82a65652400776b43fba8fc75a96d410457e518e6a1dbd3f932f6386b6c178959ff9de6c112734a06ac42","ssdeep":"1536:q/H3qVRbkqWN+plfUCCCsHllfltQO45eQjF4ff1qcfTjD5NQcj1kfBZoBIgd6:q/H3qXkCp8R7Igd6","tlshash":"013308547175b0384ad720aed43b0407b36a68a9b41f51a8f2f49ddd35edd8cd22ab3c","size":52312,"data":"","first_seen":"2026-07-24T11:36:48.152611Z","last_seen":"2026-07-27T12:48:39.764568Z","times_seen":96,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/59649.92df5c6660570716c83b.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"introduction_type":"scriptElement","is_inline":false,"md5":"57159064a167c575b3f42cfe243c8b4a","sha1":"2fd63df6a6219555e07b7f46761a70335b041f7f","sha256":"9507b55a5faa7e958e1e3e4aee4b5f32e94cdbf494c098c8b09ec3d032f0d99f","sha512":"415cd8a87e36d006cfb494a437457d8cb15372dae8dba44d8672272bde5159c57db31fa519cbb62c5b5ae1fc709ed3d65e6fa3fcee70b0920f0b34a22e191089","ssdeep":"384:1n+y6T2SHX//Hz6v6eeR3otnEGIMLwqIhqK6EyHv+FxjLcyJao:9+y66SHX3WyeeR3I7Lw5hqK6pHv+FxjP","tlshash":"405286527293b8f6e1b581e358740503e66d1dcaa881958cf7bc0ccea74de48b274f7a","size":13775,"data":"","first_seen":"2026-07-22T16:00:00.524854Z","last_seen":"2026-07-27T12:48:39.854442Z","times_seen":81,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/66988.8458b6a0b6b6dab54ea4.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"introduction_type":"scriptElement","is_inline":false,"md5":"e8573dd152b6351a68d9431ffb61d357","sha1":"928cec3f4c876d4d701f3b8ae035b67e5e5bc22e","sha256":"02111defc5b8b61ff158655750e36cf18a318ecba45bd6410bd9397a5e380f2c","sha512":"21379f317449ebd372b6e4aed63443ec02937076567807d8da941855c0ae9b8b23c7fa923b3ac87cf6050146b69b4248aba05f8520df72587eb193f1b3010702","ssdeep":"192:Cm/zVycbWsCCMrRomnPpUeM+MYklUXFJmlp/aCiB86aECfSiRuve4w3qG9ytqv:Cew9CM1M+HZylQCiBTalfnuvBuqntqv","tlshash":"2df184a2b1a2a853677350fc5d75d823a5493809fc0846dcf1aeaadf284dd9c217ce7c","size":8151,"data":"","first_seen":"2026-07-20T16:56:18.385469Z","last_seen":"2026-07-27T12:48:39.849638Z","times_seen":90,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/77578.f6db460ed1e8ce31ea86.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"introduction_type":"scriptElement","is_inline":false,"md5":"2b6fab5d43180a44762a23007cc74818","sha1":"57a42431bd8f0021426278639e1480f60600ddbc","sha256":"4daa7f339a6ee290609f5a83e28d23ee34feaa429a33d7403cf4890502acabfd","sha512":"482fc0dcff39aea620d385e9ecbe90053b7ed726e6c51f9e14dddd7f150263071d648a4c7ba8c7eb4637bee7761d193c72638a4019a4214ae774a41f8a4d53b8","ssdeep":"768:8LZLvioqCZ0JL2sWfliPTkeX0dnor9s+htUQJXRl7m:8BwL2dIAYrC+DT53K","tlshash":"4ec23a913111a49d96fbe2eed02b428ef3323659790a0e75f02c9cec11cdb693175b7a","size":27070,"data":"","first_seen":"2026-07-23T14:00:31.442829Z","last_seen":"2026-07-27T12:48:39.796312Z","times_seen":58,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/63402.d30c1e003b054930d32c.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"introduction_type":"scriptElement","is_inline":false,"md5":"51f86891ee79dc28bdaa34f0c6cacb5f","sha1":"8e8c8d6a85f6ac78978e96ad933ef6300d1aef2b","sha256":"015f7b5bad17c7eaeb457105542f879215cd8f29f0a18185e5ab0d330b4db3aa","sha512":"29dec03ba8451463072b5661f375a9c6661cda7bd01c2929bffada338f4987ecb31d0526f7436b86b16de82236ebcdb159d3b2bf504006cf924283c2bb53ae83","ssdeep":"768:0ZUKYt1k9LsYxxHyqE58nvYoZUNIB8BSOfhOSEuE0fykah+kl7Y8HgJD/xpnwv/a:+5qUZEekx8oVS3rPlc9wfgxI+DcwDtgw","tlshash":"58232a297190b47ca2e7419ec02e480ce36a2488e8659cb5f9fcecdd33d598d31655fe","size":46028,"data":"","first_seen":"2026-07-23T14:00:31.469602Z","last_seen":"2026-07-27T12:48:39.736955Z","times_seen":57,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/39606.c93c765ef5c51a30d07d.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"introduction_type":"scriptElement","is_inline":false,"md5":"ac257b936a56bb611fab2de13599909b","sha1":"0526fbe795d12b14bfe2372aecabb69b3a63277a","sha256":"ef21e6f05e4786b0efdd30d99723cac4e0e46b8cd8be53a8fd61b8a6e20f0ef0","sha512":"173d0335a30dccbcf5494057b96410a489d19524d9db754a875787ad34fcc2b4c64e154f6e46c720b717e9edf56a2572ba1edb049953919098c73f1b48c58004","ssdeep":"768:MWj1Dxz3qmyDNZsAyiwOI2gYRNc04paSt9I3OJdmJd2bR5qKcMz5zz16wviVfhrn:MWplq1P6p8+5cMzXgr1dUMAngtgw","tlshash":"19033c9834c2b84df7fb16f880ab4406a67d0581745998f0effcdc8521a354bb262ead","size":40442,"data":"","first_seen":"2026-07-27T03:26:08.679942Z","last_seen":"2026-07-27T10:53:39.247464Z","times_seen":8,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.smartsuppchat.com/loader.js?","fqdn":"www.smartsuppchat.com","domain":"smartsuppchat.com","tld":"com"},"ip":{"addr":"185.76.9.27","port":443,"asn":60068,"as":"Datacamp Limited","country":"Sweden","country_code":"SE"},"introduction_type":"scriptElement","is_inline":false,"md5":"218d24439d4e2c0990f35338a7ac220c","sha1":"5a7b913584c1244bf61beab9dc644204d130101c","sha256":"efb497f7159de26ea5e0521d675d909dc063e36d0d23c2ad96fa9109b73ee263","sha512":"17af39bfdc350c9d1f8dd74652641d0c028881ecb3935d2d9fdb763d24136665d135d00219aabac57693112e2314d4fa91b802ba2662a1580aa35c5e0b6e624b","ssdeep":"384:2/xzy2A3wyxNeBWbEgl/EuVaBWbE0rIcvqSI/aQ/UpG:2/xzy2A3wXscuVaAxka05","tlshash":"4182b7cc7691b16543ab61b4843f620ff1376929740d8865b965eae13cb8c8ed037fb8","size":18024,"data":"","first_seen":"2026-03-30T19:01:55.527327Z","last_seen":"2026-07-27T13:00:53.912347Z","times_seen":7290,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/49265.c208ef8379e073f94d16.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"introduction_type":"scriptElement","is_inline":false,"md5":"7b82078f584e6803982971fd98e254ad","sha1":"68381b82a3c15fb84e25d74f902a92fd1de3a245","sha256":"e79b56277f3ab3f995df2d44c612a393858265d70e8d4151a858384901aaa5ae","sha512":"856120280da4d842117fb927a8dbab94215dfb803172d5217ef06b3e3160c27bfbc9fda244b20ac94ce02cebb4356d25c92927cb9292b29f658e377fca579fec","ssdeep":"384:j9PRJCURbRGehSowQ7pJIdRW5TejB6ScRTtDe1efLBHxe+Wl2XaKKTV28fRJmRDM:RPTCURbwehStQ7pJIdk5TejB6ScZtDeb","tlshash":"7e92de8679c2f0e962d55cd4c07b4846f01a0d3c704db8e9e7e6c8d2da7a14ed436bba","size":19935,"data":"","first_seen":"2026-06-30T14:35:40.41523Z","last_seen":"2026-07-27T13:00:41.442567Z","times_seen":2902,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/97472.e8195405f99055a83c6f.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"introduction_type":"scriptElement","is_inline":false,"md5":"0813d0ea841f3538f1f27a58a88cb1e2","sha1":"5d7c725abcc841d95866532c0d0d9d124f9138d3","sha256":"82ac84224db5ccb6f92b82013e4473a579ddf4e881af126a3359ef556f33df28","sha512":"668be712980917e4cc39f91fd0fe150ce81cfe2bb4b72aaca4cc455fe6da6d382006c963a1bfa288f628a3a80ba1e1fd9dc921af4b34cc205dd127cb231eec04","ssdeep":"768:OzYrfKPQhauyuhs+66SY4n3sWvt5r96tY9hu+3fHxx+TS4YLTnW3H5uVHevzBAEb:EzsWvl8Y9hxXa","tlshash":"095379d8c5bc1d8c75b7d2c4bced7655448c3f13986286b0f8bbb819501abd829b9cb8","size":63316,"data":"","first_seen":"2026-07-23T13:54:09.171546Z","last_seen":"2026-07-27T12:53:06.171899Z","times_seen":290,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/en.71709.ee05866730b168abd135.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"introduction_type":"scriptElement","is_inline":false,"md5":"b041c9cfb403e761e1474599c5cc992c","sha1":"1cf476944ece7d96d89351e5df8aed4c9a17d062","sha256":"9525b415ae001d37b76581cbd078e24a350b7871d62c9f3443e27b9d33dc37e2","sha512":"62ccfe5bf54ea59afdf4c12059b5552f888a84e448eca969ad2ae96f1adc7e638081e150333d3191fbc66b6e6048cf95b4e09685b881d259fb4e015e7f2a6076","ssdeep":"","tlshash":"83519e07f60166e9bff9a6347216ac313e14b0d610e3d0c503b676669b57e2c943aadc","size":2505,"data":"","first_seen":"2026-07-10T15:18:12.448704Z","last_seen":"2026-07-27T11:47:31.138492Z","times_seen":145,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/en.22510.c6272459a17c5398fd7b.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"introduction_type":"scriptElement","is_inline":false,"md5":"6c6c88b45a73669efaf42c1d23109bd6","sha1":"436efe5bac23cb6e61761f6ca2f625eb2bd05c43","sha256":"24f8d2b3db85b1adf9680eac2aecc1bdae2d614e4af27d8f1c977a97af861c18","sha512":"a1cae379741ea70a2f6d31f79de4a9ac3b5ef084207b06a5a6238b4dc5c8a38fe401c62c5b95f25478d60ed7a24806226720d381990de06e495774959d3cbe35","ssdeep":"","tlshash":"d0d01223f025e8e57a7a895473509ef07cb4a58411f2d4d373b48b18611692415b4e7c","size":221,"data":"","first_seen":"2026-05-05T12:17:23.617466Z","last_seen":"2026-07-27T12:48:39.842696Z","times_seen":382,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"widget-v3.smartsuppcdn.com/assets/shared-kb1yqHaA.js","fqdn":"widget-v3.smartsuppcdn.com","domain":"smartsuppcdn.com","tld":"com"},"ip":{"addr":"185.76.9.12","port":443,"asn":60068,"as":"Datacamp Limited","country":"Sweden","country_code":"SE"},"introduction_type":"scriptElement","is_inline":false,"md5":"4a99d6fd0e84ed566d578d0ed5dea128","sha1":"c729468068793db7ca783d243b2ec065b6e2f202","sha256":"99501ff83cea2d37fb29f4ff7e0bfc1a93655e56db91bce74171fe29f0821884","sha512":"fcab2b13f37fe49c7a500be1285445ec1dfb120ed4f6d909925ea5616ee9f62d999fe83c1f8210dcc1742528ee3469e5671b34191317836ab4ed3b020ade8608","ssdeep":"6144:mLjnOEIL18ad2jJKaQF+tRkYcuBa+y+mFJW:iOEIZRd29Uqj4r+mF4","tlshash":"b3443ad53294b03543db51e6906f1106b33e5c58580d812cf269ede638baec8a2f7fb8","size":272133,"data":"","first_seen":"2026-07-27T07:28:16.16312Z","last_seen":"2026-07-27T13:00:53.931658Z","times_seen":668,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/en.21784.3a87670ef41edfdc885c.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"introduction_type":"scriptElement","is_inline":false,"md5":"68b75b26be0b7fe9cba6ceddf63188df","sha1":"447c852987cb0e880df0376f8a8e0e27c60cd3d3","sha256":"0b29ce96df5aa6f662415605317e6649052164faa030d408343458926bfcf91c","sha512":"aed77643d5947482c1d0f7df00997cb11568215d6b283085e572ffc9ec7a62cb10f40e21a1b6f166ac471743f8af4969cdbc41eff7c9365696e28d08f21572dd","ssdeep":"","tlshash":"c851fe27d181c5e92f31da01b389ecc1baf0b54514f7e0cb778aaf2ac15bc512928b75","size":3144,"data":"","first_seen":"2026-07-03T16:22:04.594265Z","last_seen":"2026-07-27T12:48:39.849081Z","times_seen":179,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/52509.40659470e51b065d5139.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"introduction_type":"scriptElement","is_inline":false,"md5":"b7af9caf2d203689250c618a39d39029","sha1":"54e22965aaf8dd894b275b582cc30705d69821ad","sha256":"2600de068f623019889e62254b9834e05e70d376b307a4ad6b859f23cdcc8f8a","sha512":"3ef3adc84c046249eb8338da914e3af339fc2a92d8f0ae731d3b82dfc79a838b32bb4601581fb9d42f1ad5dece74230ddca8b9193f7acb1a023a1892cc8633eb","ssdeep":"1536:p5+ejeWbrN0Y4NT7JDMclwUYGZTw7yhLrLl1wrFMl:p5+ejDbrSY497JDMclwUYGZTw7yhLrL5","tlshash":"4833a36890d52d392df542f540ab2010e8ade8974d9610a6efef4dbf4940ac9b13ed3f","size":50917,"data":"","first_seen":"2026-07-23T14:00:31.718819Z","last_seen":"2026-07-27T12:48:39.669745Z","times_seen":57,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/44780.79d2051d3b84caeab4e6.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"introduction_type":"scriptElement","is_inline":false,"md5":"88a58e6cc844e88f7d0de6e7e139d713","sha1":"4edbad9be5d86d504d6d71cca4f4868d04246769","sha256":"563bd980b55bc509d2a955dbf095609be8562096e91a6a13a9174f512daedeeb","sha512":"cd3886500bba9f28852814c2ff53c83a2ba4b750cc8dd0366d599a672e4418f8039d6d6a35c31ac4946cba7024da71090595922cd970deb2e7e74c3249bc4682","ssdeep":"384:tgN+e7/k4PjlL5nUhv+sX/TWHYHn32z+VdflhNDMfpStwr:4gz/TW4H32z+vfJMBB","tlshash":"f1b2a5d9b1d1b0641be32461c23f200ef37b7889285f95a0b2a1e9d43cbda9e4167f5d","size":24335,"data":"","first_seen":"2026-07-27T03:26:08.921826Z","last_seen":"2026-07-27T10:28:13.951473Z","times_seen":7,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/symbol-details.d351fb87636122b00620.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"introduction_type":"scriptElement","is_inline":false,"md5":"d0db847560de8a32aee463a4a3a1c15b","sha1":"bd1983e113607ea206186ce398aa4bb9b3894d29","sha256":"03557555a41be3bd17dc5b05c00f99099aec866c27d6f06f1a043019de8bd848","sha512":"b7c20b4095c38730decb7636c95219209054c3c35905cb2148b3ccbf645493c6d3d871bdae82684201c8536f93c50149a67005e1f78fe35b6f6e30aedb85f29b","ssdeep":"768:Xi9KbDip8eV70Sg8QgtYV8U+h2z05BVqRdL0ICqSch9tLVdxEVRwEgvzZHrydM9V:YKbCZ5pB4rEszI2sZwnC94O6","tlshash":"9f633a60315074dc53eb89efe1ab0094a36e76a8b8948cb5f5bccd6c26d2984f177b1c","size":67031,"data":"","first_seen":"2026-07-27T03:26:09.013046Z","last_seen":"2026-07-27T10:53:39.259316Z","times_seen":8,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/study-pane-views.663c5d9b21dc5e618998.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"introduction_type":"scriptElement","is_inline":false,"md5":"5a9f63c99f9d5d568eb64759326caab4","sha1":"f30d6d870db604980bcccf56754fbd2b4a793d63","sha256":"495aa62cf17213bfa7fb11fea84b8a177d37180b0e424c8a4a20e73d4779c4c7","sha512":"e7b5c45bd3574d3ad6dd7d4faf79de3c2d68454439c5275a44af309c26968b86e399c6cdfb0a40091870ffaec3555511470b6bb6715e8b78034da4aeda759237","ssdeep":"1536:N9l5HPSFvpMa7EVaVxGbCjD+blIXkrza8u9BkrvDfG3Q9q+6Feg43qD:N96Fvph7EVa324Xkrza8I2DfG3Q9qtey","tlshash":"8b8308d2709134aa43b35ada6cb0440797252c56394f887c707d89ff18eec5436bdbba","size":86496,"data":"","first_seen":"2026-07-22T16:00:00.360345Z","last_seen":"2026-07-27T12:12:28.870353Z","times_seen":76,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/en.62351.b382da174f097a0d0e43.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"introduction_type":"scriptElement","is_inline":false,"md5":"592868958f083a645011c18526be50f6","sha1":"33a4aca0ed967d4c042777d21cfe064a9fe7621b","sha256":"9ac1b143f8bfa585ff4c79336d6e869e8236f9a663d1610bf4d1f2f452e5cf6c","sha512":"8a8bcd9d03298df1b5917f0bbe544ffe5779ee6ff2037cbab84cf0a15996a5208f3d75e6bb1d5f3a27bfd89ad8e3d452b3de058cdd314aeca07608d8c12a14b6","ssdeep":"1536:HcIavPJ0d2mzNQgTQ4yBoYSovc3fVfcD/WZz67dvUOPpguNd3mTdED:F2mzNhE4yFc3fVTudGu7D","tlshash":"e9d3cd07e140a4d66b71c15237cadcc9bdf4a88a43e0c685739adf38c52be2762b6d74","size":133378,"data":"","first_seen":"2026-07-24T15:28:44.72755Z","last_seen":"2026-07-27T12:53:06.218675Z","times_seen":188,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/93426.0083d163d728bff784d9.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"introduction_type":"scriptElement","is_inline":false,"md5":"2d347eb2f7b046ec91197c1181d0e178","sha1":"fa3f74deaffe52fd98be22519cbaf8bdaab25947","sha256":"fb7eabec75f8061e8b8fc70989b366069567cd7a0d2cd1a967ea3d6ca229cd65","sha512":"6dfe90357513672ec3cb8f8c8d0c67ae193c641e15eaeb723bf4a2748ee7b3d22bb3fdf28d26b845a0b94c9893fac86c325ec3b65c99d6c7edc47634f2033447","ssdeep":"1536:6J/J5J4hb3JAHbuOrju2mA83n6XAtKD/BHJMs3v5c1W0U9z51qKrDGwPzPAIF7Vg:vhb3JAHtVmAdDUgQlbF","tlshash":"c6430856b251246721da00eba077100bba3e55d5744484bdb13cdcce26aec8eb2b7fbd","size":57327,"data":"","first_seen":"2026-07-23T13:54:09.127319Z","last_seen":"2026-07-27T12:53:06.155981Z","times_seen":292,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/en.79667.38b400b7bcd71265de7e.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"introduction_type":"scriptElement","is_inline":false,"md5":"abdac933416adad2f1f0358c34e06d0c","sha1":"0dc05aeba8286a0334c027665641bcf478994d5d","sha256":"5f564c4503176b996145604c8e659d0a1c2128953899b2e776973f0a91e17e9d","sha512":"56050afbc169f102143e4d56c74c692b0bae5319724042b3417d8740d60592b7d74fb27d1863dce300e020f33f36498a00fd31af8f94b6d301558007054ee92b","ssdeep":"192:nzHO1epgwUCqXYyY0ltStvFnUkst1siHYFhftcmrEnpsMhRl2FlQ8oCe68ciDhvx:nzJWPs0ChspEkmEnptD2FlQ8/e6Axrn","tlshash":"6c72db17c105c0fa8fb5ca227359edc0b5f8b19410f1e8c6b3a95f69c623c656838b79","size":17471,"data":"","first_seen":"2026-07-24T15:28:44.838926Z","last_seen":"2026-07-27T12:48:39.705138Z","times_seen":56,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"s3.tradingview.com/tv.js","fqdn":"s3.tradingview.com","domain":"tradingview.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"introduction_type":"scriptElement","is_inline":false,"md5":"fd560649121156073923ce51d3f04348","sha1":"bf3bf0105aa9e01a4f453898da7131486e2d583b","sha256":"e6d5c0aef4b2cfe736dd64b0761aa2807a25f6f84018c33f02c00cf654e110ac","sha512":"127a919f82388dd09f1042abf42efe6108ccf2f63ba3527bdc84ab7d9692ce3e83fa7db3dcbe6f538c9ec159031aa8ff2c4b5f119a5ac104abe8be23b85db550","ssdeep":"384:EqhCtUi8k0pwkp8EpXWpvS2rfVujtkl2okhIuWea1pYp4t6YJjlWm0yoVymbLP:EqZi8k0pwkp8EpXWpvS2rYj9okhfWeWa","tlshash":"48a2d76db5807a3c028700ee306f320c753765a4e10149a4fa78abe59558e8ea277fbd","size":21309,"data":"","first_seen":"2026-02-24T18:19:55.948124Z","last_seen":"2026-07-27T13:09:40.011591Z","times_seen":1173,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/runtime-embed_advanced_chart.2adadf1cc0ec57097803.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"introduction_type":"scriptElement","is_inline":false,"md5":"14bf3ff2a3107514a76ce3b64ebfadc7","sha1":"cdbe48a268d7b51c28606b399cb8586afee97128","sha256":"99f49c837d9b9a85e81174053a80d5738c2d7c21a53faa30b396f377724df1ba","sha512":"e917564b665e35938d9d86ea200951191fa25a923f4012992d87c30408c3fe4188962849136025458fb8143a64842308d4783c9ae847f84f0720cd7f86a1301f","ssdeep":"1536:Hf6kU6QbwU/pS8wcbXbUFrGAMt6GYvlW1naSzKr1vhheth+47z:Hfy0yLBAK+v4nrD9z","tlshash":"32735cacd23c99b776f02e781c6bac52a33820537d6182ed4397736409b7ef4c666543","size":78581,"data":"","first_seen":"2026-07-24T11:36:48.051243Z","last_seen":"2026-07-27T12:53:06.180686Z","times_seen":189,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/6934.90edfef6ce98369ae04a.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"introduction_type":"scriptElement","is_inline":false,"md5":"e360111388c7ca7cc416b65a333c1c13","sha1":"e46ada551fc22f5bd35034c2bca095f54b635503","sha256":"fcaf403c75b1a585c7a07556cb65bc683ba6feecbe0399257d62a34f85d430bd","sha512":"60b615d8b0f61e9026e63070379bd94624842f181c1c1fc3ebd02da9ec8b0937f58c344459767399d75cd658ba805c0033a4d1e60d237c8bf2cfd20377f72aa6","ssdeep":"1536:Rw7HUzRyKUuj/NJd07iwH2Hwzp0q2f70lq4Gf7TtJiO:RJzRyluj/NJ6kMpc7N4Gf7Tz3","tlshash":"0273b638f9d0a4b7b2e784fe6741e6919a26b88276265fe17235c6c47804ccf3135e1e","size":80040,"data":"","first_seen":"2026-07-23T13:54:09.170539Z","last_seen":"2026-07-27T12:53:06.140383Z","times_seen":293,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/30699.1386dfaa78e6e5f6c87c.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"introduction_type":"scriptElement","is_inline":false,"md5":"4a29e78f7139204a8e4159e22b4457d8","sha1":"c9a58310328ae1ad0d2e0fcca742938bc1a98b9b","sha256":"6f44e98c09d8a5d97d1a874f53c5b793b1a574f733d209dad573911990ed412c","sha512":"6e07063f10462d08f62ed60257251c3083cbcf72fb69a4621dab4b090fe83d73e91ba23664e96011a1171b08aa2cd94984dbb7095b4d752d2da0f749f195715f","ssdeep":"384:DuiNnqiEZQep9G6Q+4DygstN2KZZL3Rj41wA1ggfJYXQWbyvItjIVnZKbVtO:DjheJQ+4DwN2YYpiXXuejQyo","tlshash":"3ec286c9b6d1f0a552a36561803f214bf13a3a65349ed090d722e5e0bcb95ae8137f3e","size":26560,"data":"","first_seen":"2026-07-23T14:00:31.735168Z","last_seen":"2026-07-27T12:52:15.437995Z","times_seen":114,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/68725.df46d140ffcce5cbedbf.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"introduction_type":"scriptElement","is_inline":false,"md5":"301a8f4008180f5ddc683901defaec4d","sha1":"892a96df9fffdbee70f8c3c701e4681b6c4466dc","sha256":"89111fb1ee14c800a44c510278977f64ce50a38e074b3bbaa2f494193ed42cf6","sha512":"86dc50bd47044f799fa90bbb6725d83f782e87021fb6097ab0304ab1db8cbcd8c660f107d780b2c01c6e18fa7d03b5cf55d686e28c12ee3c4fd4a25d406379db","ssdeep":"768:5CNMfr3mWAwSatuyEJEIVVij9+Dpo27SU21KP3:IQPA+wVojcDa27SUh","tlshash":"f5c20964b2a8343541d7825bd4794a03f2356c85b00352adf66e2cde1f9e88d33aaf39","size":28269,"data":"","first_seen":"2026-07-23T14:00:31.748932Z","last_seen":"2026-07-27T12:52:15.440001Z","times_seen":113,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/widget-sidetoolbar.8d6ca30c57bc66272666.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"introduction_type":"scriptElement","is_inline":false,"md5":"3e30d83b50d80a715810f40afbad45da","sha1":"91234b5b0c63048708c83be9a6b40604924f0904","sha256":"2ca92d5ab5ac87c4d523857fb8a7f786ec8295623621ef985bb5e7dba03b75a3","sha512":"2097f0bf3435fe24dd779bb344723a7cc7b99685deb461820a5e200a91ab445ae00c20930eff58fff21c95b0e510f864e8ff76c0599a577945b53f63769ff005","ssdeep":"3072:Egw33UPq9pbU/iE0bMnsHA2T+oFRzySNKNy5slIg3ePp/4lCBuZhRYzX:Ej3E3iE0bMsgwgXyo3ePB4lCcfQX","tlshash":"d5245c51f160686c02e740da893f5107f35e298ce86508acf6bddeed26dc984b279b3d","size":229890,"data":"","first_seen":"2026-07-25T03:24:57.114278Z","last_seen":"2026-07-27T12:07:26.374591Z","times_seen":19,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/9270.32910635bb39c686f5be.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"introduction_type":"scriptElement","is_inline":false,"md5":"5539ff4455921fad5c1cbaab2a5f3bce","sha1":"1073b48b55f2cd1b7d3fa453240d3a291dfd463b","sha256":"1f30073c128d18667a732ed75caf7f398da1accffcaa0a3f31bf098b68158c7d","sha512":"0c43ed53a7646dae59e40f446fe718b9737fd8e7a496ec59d228934369a1e38d90c3b9dd61a21fe12001706bad97b7bcd580f3b48b18b5626df44fc3632dfbdd","ssdeep":"192:TdqLHSioSpIwtLAZ9ZZmQSUMesX4decPvT4L27UXn4Tmdl6eFU3KT0:ToHSioVwtLAZ9JS8s8eYvT4L27UXLMeK","tlshash":"83120a85b3643caa91da1ad479b1088793137994a02bcde8742c65ff299cc27743cb7d","size":9675,"data":"","first_seen":"2026-07-17T03:30:51.183942Z","last_seen":"2026-07-27T12:48:39.851167Z","times_seen":101,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/57093.26600c93b6171d99b700.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"introduction_type":"scriptElement","is_inline":false,"md5":"4a5c4beebe509ac3027b79744b905303","sha1":"7eea8e87ac7a5ed1631873659a90a89e9a2cf256","sha256":"212519cc555451f5eb9173d72cf1b953de12bd91b643471be5673492e5fd4df0","sha512":"0c8c00ea4bf02423fb14f74c67dae3bb80ee82ec07ec85b67af6c9a158458956589e013607b8a608b44a881e754cd710e6ebfaf8a8037aab14d3877b9ba6d90f","ssdeep":"768:3KHYGd+QIbZ15yDJjyD272qzGJOeK6+ZJT:64fDbLoRT","tlshash":"5bc2fa867011b1ad92e789d681bf055de33f396c384d4d70f2b8d8cc69a7958e326e0e","size":27782,"data":"","first_seen":"2026-07-23T14:00:31.452652Z","last_seen":"2026-07-27T12:48:39.628805Z","times_seen":57,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/13148.32cc01dc01751b91682c.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"introduction_type":"scriptElement","is_inline":false,"md5":"9eb8a2729659cd900aee823198b62b43","sha1":"27c53602ca760b97d71eef345b01c1d537900aad","sha256":"3ac4b66b0a6823b837035a5dfdf7fe41b01ccf2a2ac115b143c12356080ebdac","sha512":"6c86fb2c2378e589f4353d32a048ae866196581fc0a8a7ed13c379eb47eab41fcbfc0ee44f3ffe77ff3800136be1da4fbfecfe3456524b96712a1e5cef42945f","ssdeep":"96:FRi/jMMHFeHojARuZi0DWss7UebYiWWD+WRdiaEBymSM0qRIv0nrWvW1HN6Fb0so:rEjMMlIeARmLWss77bJWWD+WRd8ymSM9","tlshash":"66a1e987b9c2f0a063d9aca5953b054ae23d6c1c711bf0e8e2e9d5d19c7b10b9112f36","size":4812,"data":"","first_seen":"2026-05-15T11:49:16.287975Z","last_seen":"2026-07-27T13:00:41.383243Z","times_seen":4460,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/59465.8e9c06b76c9d50bc242b.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"introduction_type":"scriptElement","is_inline":false,"md5":"5403fe454468d6f2c1e00620999f84e2","sha1":"44ca84eca9d191e429fa0494fea91df1178952c2","sha256":"5eef084cbffa2f09fa8bade6dc4fa1b128d9fff17b34ac96db26ffa98e512ee2","sha512":"f19deb366e02d700af9130cae13f4430c1bb342048b478f1e93635374c68bc7cb9b251bb3635385d8925ea5caa2b266d8cbbc1884de5efb3d620725a28177fd8","ssdeep":"49152:fzalHraWqtuj0CpRYjjpQ7EGAzOJV43rXOBBNrYqvlpRrslAf9qWka3vxS3+2lBv:mDQ","tlshash":"7b955ca2b2a134ab57e601e558b50403e35918867c07856cf67c9cef28adc4d32bef7d","size":1931549,"data":"","first_seen":"2026-07-24T11:36:48.310417Z","last_seen":"2026-07-27T12:53:06.274944Z","times_seen":184,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/32387.47ace83c61a884341cd6.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"introduction_type":"scriptElement","is_inline":false,"md5":"6ca36e244c390f41edaabac69e09f117","sha1":"8cfcf1d847ab9d43572b0f37ce475fca4bba1dbd","sha256":"fb8f00815532561e6403dfa828baaf51b380bfdf9f9c92754695c2cfe989db60","sha512":"9d1bd8f2293d36779a4c8cc18dd6650a7b35228b865226f0071eb07da8a810a5bc9aebd1cd29957a9fdd12cab5df40ab9fbbd7d68ac374e023c356b4178e4e3d","ssdeep":"1536:pvqY4wv/eXX5nEIk5JGA1SpxhDGougC6dZJUz3wA3ovSuHpL+:pyIscb61Uz3wGZML+","tlshash":"6bd3f7e83996f6526ab7126700ef1807733c1a1b280c4960a615fd8e75b842fb17bfdd","size":132552,"data":"","first_seen":"2026-05-05T10:36:04.869805Z","last_seen":"2026-07-27T12:57:37.154187Z","times_seen":2554,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/99309.ca4ac19b8ab37679f251.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"introduction_type":"scriptElement","is_inline":false,"md5":"07536e5ca803829ab657e62c61210dbc","sha1":"0d11d8bbefaca8f90cf1e077c6fa59dd3d64373b","sha256":"378146c5d601a41f6b19209c59c2a432275153ee70df8a706ba1ef83af1e43a5","sha512":"c85137ba985b9fc6ebe8e1027753279bacf049530b0ab2ea0eef73d83967d84a9ca4fdb32907e453f60678d15cea4dc76ef348e7aeb9b2609b88441ad1e984ae","ssdeep":"768:hsXBcQmT4krvwY0u+/z8SSV3WMODEDQKtGn72TCqXWmXMxpp0rf7eilfefe8LMsX:hsX1a0d/zESPqheft","tlshash":"2de21ad1309174d923ff4edba0ab0558e33a1764b85a8c60b0b8eddc25d3818b276dbd","size":32550,"data":"","first_seen":"2026-07-23T14:00:31.509299Z","last_seen":"2026-07-27T12:48:39.823238Z","times_seen":105,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/hip3-disclaimer.4f3e3bf9c345c3f3e07a.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"introduction_type":"scriptElement","is_inline":false,"md5":"ca16eedb4932efab6658de430f67af2a","sha1":"fce9eb628927ab71953c562e3a65fe13ca72be21","sha256":"14234f0a1c16909a4af2c7348f8265146e98794a1c52017555b2d96561ba5459","sha512":"40ed5707b4aab15ea10be9fe2d32430f9597821ea08af6d9bdfbaa33010702af2e601fdfc65223136d87284c27acb6ee7fdb3f1897206295648d507f3a43b779","ssdeep":"","tlshash":"bb31125030b2245c20ac9bea967b6637860091547645e33cb3ee3cec479de1cbeb167b","size":1538,"data":"","first_seen":"2026-06-30T14:35:40.516552Z","last_seen":"2026-07-27T12:53:06.200913Z","times_seen":318,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"digital-assettrade.com/assets/global/js/iziToast.min.js","fqdn":"digital-assettrade.com","domain":"digital-assettrade.com","tld":"com"},"ip":{"addr":"5.182.208.207","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"introduction_type":"scriptElement","is_inline":false,"md5":"a05a127c793145cec6b721f14fced3e5","sha1":"5d753b1c803de12f4d2217ab0d143d4dcf047010","sha256":"ac860be79a4cfe434ea68f002638f79371d9a85a3b045a1aaf10dc98df551497","sha512":"ee5a4c561a267f7a96635cb529a5e670aebe766289fe358e6b394585db4b76d5df215cad4b358a07425deaada36d4f4e42c06c2c44d9c192f03ac1afeb9bdc64","ssdeep":"384:ShKmhCPzlc5gVCPBpcG/0CEvXArKKpQi8VREgO3MrnHzxJBkHI4505P:+K5PzlcN8DXArhpQzRHO3M7TxfGIYUP","tlshash":"6a82c894722032374aa329a960ff534a3772156ca9c641a4243fcdad5b34f8939f77f8","size":18481,"data":"","first_seen":"2023-03-07T01:10:25Z","last_seen":"2026-07-27T13:07:58.151111Z","times_seen":3314,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/95244.9da889c136d2506a3d81.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"introduction_type":"scriptElement","is_inline":false,"md5":"b0a9dc3ad75e03716e75c6158c6665eb","sha1":"cc52478acf48fcf65d13e1af2f686a604445c191","sha256":"4c5253886cb97a3488ee3431d937a5bb8ba43a1d9e958f64a58c74058ee89d79","sha512":"40b53df94ba71d18618cbe094f77f3272fb81b6d85327e7180dc360e098dd978c5a43d011cd4d7d200c9e4960019921ca1ae6049edfcd9c72b60d66665a07806","ssdeep":"768:CY0sz5iGWN4Y9mdwv5ltpbE6n6GVfW5tXlGh2rIT1E1ab2IX73BMuLXggXUDvHLA:ZiwihpQehg5tXlGAS1E1yVzPIpsh","tlshash":"c203e775f2b2707122aa4093c8bb015387ae05fb5045112cf76dd5de2b6dc59fa3ab38","size":37849,"data":"","first_seen":"2026-07-23T13:54:09.077158Z","last_seen":"2026-07-27T12:53:06.191398Z","times_seen":292,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/en.99124.7129e057c7444df25994.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"introduction_type":"scriptElement","is_inline":false,"md5":"d49ebbbc471ca07bc848bb880bb26d84","sha1":"20f220b0289d31bbccf6998d62734c26918d3d03","sha256":"fc21b6b03e6cd84b3deb28a311ba60e13595285aed15bc3a42f677c2d120e278","sha512":"181c814b0478736fdd60bf6d9ac6b02c54c72831c9e577659b4e9594ff60606ffef4a36c8cc5c951778a81751afb88afb907d9ec91a872f926ffa2219ec7ae79","ssdeep":"96:vl1zur72uG7PtLkKke9KRIKWOgIQHWokY/CIXni:tZur7fGjxgRIKQBrXi","tlshash":"7bb16513e140e1e61f72eb21b349edc4b8f4b19162f2e4c673596f65c11bc646838b75","size":5444,"data":"","first_seen":"2026-07-23T14:37:54.495318Z","last_seen":"2026-07-27T12:52:15.518881Z","times_seen":107,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/widgetbar.db18e7c4c91daf691de2.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"introduction_type":"scriptElement","is_inline":false,"md5":"f6b8dd85a8212199d84687bff92a87d4","sha1":"3b9c0ba21866b3ea7df2516346f2e4a018f29ada","sha256":"bc267de973346b9ccc0d02da3630bc2363ade4e715ca983d2632b9d84c8ad024","sha512":"12f674de2dcb45bc7f69ab9ff8e211d2e6e054aea325863f80edda0b14c8a2492f25c87d6769322a5cc31e384c2a64ffd34b2f86712494ba6c69f49ff18f09fd","ssdeep":"3072:FFB5mL58W0ftIrc/wrK6ENLUrl5f7Gkh57k8mHQOO:QJrK6ENLKl5fD75","tlshash":"0dc329403155682e939650eae4361903a39a148cf447cb6cb9bcecff4a9d8c57239bfd","size":128001,"data":"","first_seen":"2026-07-27T03:26:08.955766Z","last_seen":"2026-07-27T10:54:11.73198Z","times_seen":13,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/42288.47ecaeca1012ee3e1d8c.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"introduction_type":"scriptElement","is_inline":false,"md5":"146c86b697d57edadedb79e577a2b819","sha1":"fac3ccefeac950dd75b09bf983e4db643acb17cf","sha256":"e7c1e85bb4c79e48526d268113263cbed1b8dc51caa0f7ece95022ce45c6426a","sha512":"0c8f76ba43c26ac96ac8ce77228656bc32000075828146c8e3f5f6c8d83aa1124958db4a287753456a136751fe65d9fc935c7e8efead69cb7bc5587e6f54cd75","ssdeep":"384:IPLZpvbUA+tmPj2DF4ciyLHBoIUEDHfKXqEVKtwAqXrNc2G/p5RuePAU32wDP7Fb:IT78mPj0FHLHevUfKa+EwBxnJePTr6Y","tlshash":"a29219c260053875dddf6eef405b45ade33e243538055499b238adec02a9a5873a7f2f","size":20221,"data":"","first_seen":"2026-07-22T11:33:41.962494Z","last_seen":"2026-07-27T12:54:15.402952Z","times_seen":250,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/20331.74035fe9297181a127db.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"introduction_type":"scriptElement","is_inline":false,"md5":"80fd73098bc3f1b62f5be21ba82ce7e3","sha1":"e95fd45c1982ac20337bb73d34102c2ff803d842","sha256":"7d2c5cf5a94d571f2fd90f67cb4fcd30385dd47b9d9ea5ae4a527728087badd6","sha512":"1b958675ed2ec6977c296824a443de3bce71b8529e3d1b2181148ae7e0d10caf03a35739d761f588f0e00eb39eb0bc96f147e083862702bcfd25b2107c46b411","ssdeep":"768:jj2btu57z2njmJ16zwExyPwtsQYxJ5rCBweiUgier6fA80OIbGy9gyRv:jj4c1O3T2+0U7fSQZC","tlshash":"270308507070e06896f240aad13f064be3b6354db859086df1b9acdc6aec98e717db78","size":39970,"data":"","first_seen":"2026-07-25T03:24:57.2429Z","last_seen":"2026-07-27T12:07:26.538599Z","times_seen":19,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/84265.4c6d8f772d538f528598.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"introduction_type":"scriptElement","is_inline":false,"md5":"aaa159536c7d981785f51eb8ba67db93","sha1":"5784ebe9400e2e22025fd79e968d64297da6cd0a","sha256":"ef93d4903275fc451f34833321771914711245c75400304160edb454f5cea2f6","sha512":"8251e335dab75314acec8c4fb0be5d55dcb1ba3f7875695b4234c7c902ce169087b041112ff620a936d0113202ccb19fb57930b21765a24faa342177cd37e569","ssdeep":"384:FrWj47HRZhjkj+bEvcxXXws4gNwVb86wxR2ViPzhvUel2HOU2s6nSSf05r:FBHRZhYjIHP4gNwVYXxR2QP9vUel2Hth","tlshash":"5972c624f2b4ac666bb352ed4ef543835d9c4c82de5109befaa908cf195c5083379b39","size":16073,"data":"","first_seen":"2026-07-23T14:00:31.621457Z","last_seen":"2026-07-27T12:48:39.851616Z","times_seen":78,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/change-interval-dialog.7a1e205ad9ad595dc28c.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"introduction_type":"scriptElement","is_inline":false,"md5":"012b19873ae550b0ac01861ba22c40d6","sha1":"d046baf7d21186590435643dfcaae010980cf02d","sha256":"ea8993b45e050b00b0c9f192820f9dd9d19b496d0915eab277f8a4e8d2855894","sha512":"c67cd6ee2ca902a6a5e4e6637b02a50d545bf653062bdad2b68810086db8adba534dfa065e2596c8c605ef0d40a451acd3bad6cf06580c05446349c8e9047841","ssdeep":"768:62g2dzQiBy1d8Xne9Rsdcr5n9caI3CqAUSfGEoZd69a8J13oTRcf:62g2dzQbXVIyGGGEoGZ2af","tlshash":"6ae22d9071d1b0e956f785eb807f0546f3372968780d4c24b279dccdbaec898a136fa9","size":32303,"data":"","first_seen":"2026-07-23T14:00:31.699735Z","last_seen":"2026-07-27T12:47:44.720463Z","times_seen":73,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/78312.090d8a002b943d28a826.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"introduction_type":"scriptElement","is_inline":false,"md5":"9ce6eb5fe532e253e8c7b1e3a3c61873","sha1":"1684b85509eb858e647f29a3960f26d46398556e","sha256":"9ef91ec500f44b8288e5280834f8a50ddf643f19f2769f20e8a7e1b4ffddfe17","sha512":"c5dfa84a4002f079bf546d18258b0ea583d40412d64e4e2d1f2564a9e1cbf8fc3881b26162b567eb2e60bcb5a4696b1c4fcd73e673aba1a1f39bc87ed020e511","ssdeep":"3072:vG9QdcjXTxjT85QKGifNae363TC53xn4akHg7WXYNWKzEf:v+Qdijxjo5QVMae363TC53xn4akHg7WP","tlshash":"b404e7923296e02213f186fa08750442f31a7989394b856cf5bd9dd73c9ac4e72bdf78","size":179291,"data":"","first_seen":"2026-05-22T16:34:28.663227Z","last_seen":"2026-07-27T10:28:13.882864Z","times_seen":219,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"digital-assettrade.com/assets/global/js/firebase/firebase-8.3.2.js","fqdn":"digital-assettrade.com","domain":"digital-assettrade.com","tld":"com"},"ip":{"addr":"5.182.208.207","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"introduction_type":"scriptElement","is_inline":false,"md5":"3aeb031c1d596281cfb0bc798ad68c35","sha1":"f3cbd0c473069e581705448366b33fcf71e0fdb9","sha256":"c6129ac86f15d92723bbb81e97f5ab4bcfd97f0744ea5898d2402087520c532b","sha512":"5fcc9700c5c7842dcd0f7c18a1028d6a6bc00536d03ced45d83c4ad7ed7b8530ddde45ec402f4fcb79c8ca87c4541af9786fed00817fb5437e08a4c75e9817ce","ssdeep":"6144:K8YqbosMLHtk4OLs/8wWaoFwApF+GzJXZaGQqdxQUdcujbva18nsLDMX4teWXs4v:nYqbrKOQ/YRQp18nl4sSG+z","tlshash":"5305b5ccb692b062439360b5507f410bf33b685da40e40acf669e9d67cb954e923bf78","size":859901,"data":"","first_seen":"2023-07-24T14:01:25Z","last_seen":"2026-07-27T13:07:58.216906Z","times_seen":168,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/18512.a3bcdc71c68601b7dbfc.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"introduction_type":"scriptElement","is_inline":false,"md5":"038623c38228a4865caf89b1ceed9af4","sha1":"fd2acb21c02b96c3c9c1f1081dab960c7031d783","sha256":"b8d3050d5622dc00f843f06bba75b96d7e07f17b7a71a3e5b77c9d30e3c91720","sha512":"dccd582f4658fc2f09410a5304dd63fe7d4e6420b4a961d737904968f4ca733ac1a0ece06f7a4e90ebf80305f0edcfd2a5fb95ea52ea369659b342075df8d55b","ssdeep":"384:he30HE+F6f00MWmgOsLEWioQLsiJrTNk20ptZTEjifF:hJEU6f00yzsYWxQLsiJrTT0ptPF","tlshash":"6282a5cdf5c0b0a75a93b8b040bf128bb23a6940bc5d9130d116f9d57d7a81ea163fad","size":18445,"data":"","first_seen":"2026-07-23T14:00:31.677621Z","last_seen":"2026-07-27T12:48:39.717188Z","times_seen":57,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/81750.0786fea607d007e76f0f.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"introduction_type":"scriptElement","is_inline":false,"md5":"114d8824b2e22145ea5dda6d9bde67b3","sha1":"ba3f19e904493f92d11892a8f0af11d8d4523c00","sha256":"2b5998a53779eac81388b175ba21e1e20b67d6a10d179f243ef6cf2ff28bb453","sha512":"7ac52cd946ce22c0e872dfa164e51f4beaad26498d92afc7dee5f8b14190e38afb10d7605e1c3a7c1dc85a3aa680b8d1067805dd31d52bab409ed731b1a4b45b","ssdeep":"384:9sKrtsrd3TykRQgngEfchXUqNtrM2v2ivWhUVZ:s2NEqHtLWCT","tlshash":"9b92d9c971d1b47a4ee364a1417f118bf27f2c893c9da050a261f8d47cb8a5e812bf6d","size":19409,"data":"","first_seen":"2026-07-04T06:34:19.890668Z","last_seen":"2026-07-27T10:54:11.672386Z","times_seen":38,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/65862.95764752c09f3f18f890.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"introduction_type":"scriptElement","is_inline":false,"md5":"d5f37343643dde0b01c1d10dbbdb91df","sha1":"acf466d1f2aaa1c4e577a663cc0c197647ff1b0c","sha256":"ad4421c24189dacdd5b62aa07485176e838543c7e572a23a90b2e5d70b28c982","sha512":"b6fba60ec4a7056bdda7602c545749c4b49d93c597e471e20f312b470a5c949b390f959900f2267b02646d6ce1c6f9fcd1ebddb7b4fbc2383344305b5179923d","ssdeep":"768:8HXyKsaOA/R4POygg6FUOaovTBa81zNh3h6kIRdnNy84MnxbDE3xZwDZscCDjvFR:OWgDagTBa0zNhRIRdnNy84y4BZw1FCHz","tlshash":"41e2e892aa135c331ed5176ad87b3902d1d80679f5863c68bdf858de0d8dac070f355e","size":34195,"data":"","first_seen":"2026-07-24T11:36:47.857631Z","last_seen":"2026-07-27T13:00:41.436108Z","times_seen":1553,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/63160.2a3a21185fbcc7079dae.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"introduction_type":"scriptElement","is_inline":false,"md5":"cfb4ec7bf74cebe56275390e404eea0f","sha1":"4252ecbde693198d544ad5f483339e8527626b7d","sha256":"6c3a092a58a55249537be71395c07358a4ff94120d96468eb32669c2405dbe89","sha512":"502ad261df8d3d31d8decf44c403084f175783156886850f601a8404bfedddb9baeedf09aae6727cc4d18f8b3d1d59e554cc357a494b93754a34a68a9f7eafda","ssdeep":"768:OdGn8wXtPTrG8Pz8ZQXllEu7x1zR2tDZTrQGikOjULp/BS53dCo15V1:OrtI","tlshash":"3cc2945631977136aba2c64644350703e33635683a4b699cf73cface6b1ec42913ea3d","size":27733,"data":"","first_seen":"2026-07-23T13:54:09.047216Z","last_seen":"2026-07-27T13:04:17.892016Z","times_seen":345,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/en.54852.7728cde9c01225945d10.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"introduction_type":"scriptElement","is_inline":false,"md5":"d81ff48f4fa8644025b1feee1ad169a8","sha1":"1694534c49abdcfb227e7ed96e939f620c16c3f3","sha256":"1f466c21d9b96a33877d9f52b95c41e238c9bce171330d53659bd6765e6e672b","sha512":"f213fb05c500cda8c326959061edf851e1c38d2b16b0bd06f19afad19050e6af59c78ae99306f0f7e85587920480b4587f85f861b4d14682d5c1f90a42be7546","ssdeep":"96:jDvuCulnHPdmbfGW4aU7mJTKtgeT+trVI/3FGPXn+tFiVWt8:jilnvMfGmU7mJXo+1VVPX+tMWq","tlshash":"24d1fc27c010c5e29f3aea2abb99edc0b8f4b09146f4e1c97359df68c117c2585387b8","size":6544,"data":"","first_seen":"2026-07-25T03:24:57.382724Z","last_seen":"2026-07-27T12:07:26.45647Z","times_seen":19,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/53297.a6f6547cdad8d37971fc.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"introduction_type":"scriptElement","is_inline":false,"md5":"c6a3f4550b8b4efa1a9ac0a26ab757a6","sha1":"376e5c7e4bf11c4c576ba0a644af8f841f17c662","sha256":"e673211228f9cec0ee6b36576c556da8959897ff56e4baa281606d9694f888fc","sha512":"fbe34869d39b17339388031748218f6816d1fe3b5a9dea653c536c49ea8fa574d3164227efd1dceb114737127e80c52c98fa1f254d7bbc7863dcf4fb37759723","ssdeep":"1536:QGwKmjvbKAmbj5HdO/Z8y+xp2PFg4PPNn42M:9XA299O/Z8DxpyFg4PP6b","tlshash":"ee535c40b160b0fc45e7809ad52f049ae33b1558b46648e8f53ddcec2a9adcdb267e7c","size":66470,"data":"","first_seen":"2026-07-24T11:36:48.185143Z","last_seen":"2026-07-27T12:48:39.791498Z","times_seen":97,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/chart-bottom-toolbar.8dc3860f5be5fed904fd.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"introduction_type":"scriptElement","is_inline":false,"md5":"2b7381f547b101d69e4c35046fe8b990","sha1":"7c5599e02326f7a0b64232e90de054cfccda3910","sha256":"9757b30408bef1dec0cb5c0435d97f1ab43f99cf4bd3024134cfb5757097f5c1","sha512":"13d835eeb8f96c996e51e4f7d93053dea2c5bac2776ecf1757b27047258bef11e96331fc3d66425e96c6f82a52e46eeff2883cd40daa1c948d0eb3428e18e646","ssdeep":"3072:1I25QBkqNPr+gN5Ys8AdPX5dzxBliYTD5vJE1AXqlSWNgQ:1ILkCr+gbL8AdPX5dzxBliYTD5vJE1AS","tlshash":"44a32a60b124b4a857db01ee926b0403b33626ccf8428879f6fc9edd26dd94d6179b3d","size":105707,"data":"","first_seen":"2026-07-25T05:41:09.230013Z","last_seen":"2026-07-27T11:47:31.086106Z","times_seen":47,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/76033.457fc6a9dea93abc64a6.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"introduction_type":"scriptElement","is_inline":false,"md5":"c69f1961d37147b82d11b8605cdce4dd","sha1":"9342b2a24a33e9b41a0bba4197f5c777eb67cf00","sha256":"e57251942151709b6ada30e3ba1fee757639e432120fddbed7bd8c4c42d3d93b","sha512":"06c28f14bd12a5ef6d148c96ed0ce634fabd0bb702ce56f9436973f0fecc593abb02e385a72af87d663a357492119bd2c0d62f4d3903327ba83fa7fae2a16937","ssdeep":"768:wcg20JYFQbn8Vsr1fF4zyW0TStwhxG9Sh3GQ/xkiUFk1Dm3wY2/X58JznuJfqS8D:5gx0srdk0+PYZmSf/X58cfWHBp","tlshash":"93a301b583a5d48cbc8ac5bcef68909fc67f9391a545029cda3ee63410c6cdbac4f524","size":102927,"data":"","first_seen":"2026-07-19T11:27:24.826695Z","last_seen":"2026-07-27T12:07:26.530206Z","times_seen":23,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/97647.64fa07ee74fd665d6e19.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"introduction_type":"scriptElement","is_inline":false,"md5":"377f21b2eb37b75910455b74b865c812","sha1":"53c2e8911b87850cfc16af04158dd57efecbe1a4","sha256":"baaaf9756a2a7fb4d2da73148463a614bfda643f0a50ac59978d8533b5469472","sha512":"2f87da9c9367bf2461dcc54bbf6a4aad4df6a508be15a9872ce605c0d5fae1b3f8c11c22b312be5951fd72c359ad908345c200fe33d922ea9da67f168422e263","ssdeep":"768:4hcXPPqeIIT9p9JGNrDlRWVRBO3Ev9MqoElUuL6i/U97JGWTv/FWhKZ/nNjFJpLF:4SXPPqeLT4XlRKBZpo813xSWhKhNh3UC","tlshash":"32f23a82f196b0d953e706ead07b0581f3662fd865894c31f1f5ddac3828c88b636b2d","size":35751,"data":"","first_seen":"2026-07-27T03:26:08.757469Z","last_seen":"2026-07-27T10:53:39.257837Z","times_seen":8,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/83935.2eed45a9cc6476afd035.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"introduction_type":"scriptElement","is_inline":false,"md5":"8f3254148a9c8ff8f3222ccd87573e1d","sha1":"13d2769de5f6ae325acdd2a2b4722cdd200a8ee0","sha256":"a48fe9aa33904b917d410534aa11b8b16bbd0ae2da93b2b2c9b1545f6bf042d1","sha512":"759896fddd24c7a4546e1c02bf82cfae06be88968943de298eae07f33db7520db25e2e81d6ffbbf93f947e7b205c39c3abfaa5ff7fc42eda54efb3d2809c35fd","ssdeep":"768:n+7JSbnYUTaeGUzb8IZ+4nQoxz6cQic+YygPrQURvQPuXG+kTD3Yi4J+HYz8D8CL:E8bFWexQKQz9/vJqLcs","tlshash":"03033951b05268eed3e689c7006e4615f3223255b4479c60f0fcdcdd6aaae5d23b8bac","size":39994,"data":"","first_seen":"2026-07-27T03:26:08.99198Z","last_seen":"2026-07-27T10:53:39.257043Z","times_seen":8,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"cdn.tailwindcss.com/","fqdn":"cdn.tailwindcss.com","domain":"tailwindcss.com","tld":"com"},"ip":{"addr":"104.26.3.143","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"scriptElement","is_inline":false,"md5":"7a614b9a197e532c00d09a23b0996b5f","sha1":"1ff1738a40f3716e30e9031b181b0955ae578955","sha256":"176e894661aa9cdc9a5cba6c720044cbbf7b8bd80d1c9a142a7c24b1b6c50d15","sha512":"a67bc26f52d938358471be5671ff4b79e11af4e68b486aaf73a35a4c9bf3777aab51101af81563b4e5b7ba4b04dd8971fcfa9ee2c41fb10a0c1ee5604a99abd6","ssdeep":"12288:fpgrZxSAoNbJb0Wie75aUXGuyQZhK4O0s:RCVoNB0Wie75aUWmnO0s","tlshash":"e8844aa57396702647eb51e850ea1042f2beaa38840c44bcf7edd4da39e5e4440fbf79","size":407279,"data":"","first_seen":"2025-07-28T16:58:08.903462Z","last_seen":"2026-07-27T12:55:14.821753Z","times_seen":46773,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/91944.cd51b48fa4d742a11726.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"introduction_type":"scriptElement","is_inline":false,"md5":"21603b1ea6d66be9e85aa0d9d193067c","sha1":"5dfac46409e281f3078e3af99e4bff3c1a5f0872","sha256":"9b43f56adbbeaa987486fbb6cacb11cabfc1b3f3a2dd72779653f53c856e5019","sha512":"cab7c1b47820cec2b3b2a91830c3ab740452d292f8365c4ddcbb24c933e951935088f8e65d6b05cf26971d02ca63b8ed69349566da982272c09dc14fad9cb99c","ssdeep":"384:lciP7w+YSd7NNsFs9s5QFdP4k3I+0rZnPb5X9D8Tq7dQYQBcOu7+sP5MgVzZtcip:lciPU+YSdHs0sJjFnPb5X9w+7dQ/SOub","tlshash":"b792a5913161697a53a622ed6cb11a03a749680af80e4d8cf1fd49ff685cc0e327db7c","size":19889,"data":"","first_seen":"2026-07-22T16:00:00.510452Z","last_seen":"2026-07-27T12:48:39.853479Z","times_seen":83,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/5808.f4800fa9246f404621ee.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"introduction_type":"scriptElement","is_inline":false,"md5":"a42e731f659fd23cc846fd90733fa22d","sha1":"a69e6df547aeb0964b5451ccfff0fec9703fbc6a","sha256":"fd721044f40446ca3ab1b478372b4b3034a3345ec03c626e1fe2f2b651cacdf0","sha512":"0364a69a0cf76f3925709f12c0a99bdbc8ad070fc9be0d8000eb0a227f26f4281051036b7118c8f8a747e61921f63669c785bb607f506ef1a1e602e472fb9dad","ssdeep":"3072:TTXg/EZYyk/ubQwm+HxiXEPx7CfJ3pVgk822xZgN9u7lUbjAvDWnSO8IMiL5K:TmEZYT/ubQwm+HxiXyx7CfJ3pVgk822F","tlshash":"71143a507318a44c59cb51aaca3a0956e39e629cf485407cf9fcddfc21e9d89e13e738","size":196197,"data":"","first_seen":"2026-07-24T11:36:48.024996Z","last_seen":"2026-07-27T12:48:39.653718Z","times_seen":95,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/price-scale-mode-buttons-renderer.3f61661793789559b605.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"introduction_type":"scriptElement","is_inline":false,"md5":"56b0517a2a0e43c0da91d29f067965d8","sha1":"cc29534e9373c38fabce93912d78c4f77387d041","sha256":"f05ba56fec95e4a8791aa9578861c23f07d46d60a98a78666a2670bfcdd0d2e5","sha512":"3eaec55d02c3544d9aa01a60122eac994af3c4f6ee9829185ce6c4ad79ee4a0e55932cbb67f11214a8e0021ca9cbfe4533a8e07a2af1fb1f2f7dd3b639f0966a","ssdeep":"192:/RR7jTjtKAbbSZcZ0hKoRAJ6LzcWagOzW0+CUc8BJ8Ij/cW20W90tcoMEd:n3Tjdb2hhfLMzP8z/bdzZ","tlshash":"f632c9ed70a1b0656aa328aa803f0406b2bd252d3c4e8874b695eddd35fc54c913bf6d","size":11334,"data":"","first_seen":"2026-07-20T16:56:18.262491Z","last_seen":"2026-07-27T12:48:39.852962Z","times_seen":90,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/44911.fa61d2a274d4224434ca.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"introduction_type":"scriptElement","is_inline":false,"md5":"05e4055151a861bff8e38a76d25fa21b","sha1":"9f8bab99df4104fde7e4ce7e47379db991ae53a9","sha256":"1b602280ac3b82058c7577fff06841ffe0b4fb035b22d4aa046119a37ba46376","sha512":"003001c6510b718a9e57af8daa9fcf322e0f91dc14aa8c1397abe4328d8dcc7c27ac342595f1acc141b47b471420a8e8bd64536cbc0cc762c0bb7aedbed00596","ssdeep":"384:KlWkb+CeVhEy3dhGQZ5mvjqnGilhLgvmRA7R6VTc6w6DwuRGijR0WwnhbR8L+lct:KlWkNUNhGbjqGilhsvme16VTc6w6Dwuv","tlshash":"faa2618877c2f09a02d665da943b040bf33d1c9d25187464b391d8d96ebe56eb23bf38","size":21512,"data":"","first_seen":"2026-07-23T13:54:09.044064Z","last_seen":"2026-07-27T12:53:06.231206Z","times_seen":292,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/42212.4754c2804ab9a979776b.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"introduction_type":"scriptElement","is_inline":false,"md5":"e76e3cc979825bc25c1aa111b75bd78b","sha1":"6113f71858e18e692dc20143a9c20e222a5cc559","sha256":"bddee1e8d256f7e1fad4922a61955b4edaf993c3c78d20ce8c5ebd04ad4a3c21","sha512":"0d629425dab529dffde41a65bf8dacd4d7bd38f868a631db502b2eac3cf58f53c08d489b94580f84b89263cda52fe48cb17f0d61d27f55132f6ee350a2b8d719","ssdeep":"768:XuCACOy5bi5yIx6nSiRUhAmhY1pQZ7U49dSH7Y9syV2zNRbMMUzGTvFr9t7bRkzm:vLbRIAS/AmY1pQakdSb0saNzkbPlgQHL","tlshash":"74f219e071d5b05163d740eb843f4402f1692e2578064961fa6d9cdebe6c889723bfbc","size":36705,"data":"","first_seen":"2026-07-23T14:00:31.440048Z","last_seen":"2026-07-27T12:52:15.473262Z","times_seen":113,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/42171.1c05d8147c230d86b4fa.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"introduction_type":"scriptElement","is_inline":false,"md5":"edddce8d1d6f604a250bcfbe9d7eb025","sha1":"253ca6c52edbd8045f2d7582a4cbe1d58aa63fb7","sha256":"5ce8d2d6a4b23546f3ef7e86e56e51c0dd33a1ed0a3cef47794f49bbaf49fd90","sha512":"8bea5dd5042c7cbb2e5672e14ea2d4734a6fec646472748c7fc97e3549559befc114de998d38beab5c5097dccc1d9db856c75c8b482946bb7276dc6c44fffb43","ssdeep":"384:BrqTqqPiwUF5A2XlUggtc6TPlrtRH/hIRgvFoPVAAg0dUDs3nRCvO3Ja7m8t51hv:FqTLPinvA2uggtc6TPlrtRH/hImvFoP8","tlshash":"fd92b424f382216105eb91ed1c760913b63bb7963c87466db92c9ace675c918f372b3c","size":20468,"data":"","first_seen":"2026-07-22T16:00:00.324158Z","last_seen":"2026-07-27T12:57:37.095825Z","times_seen":87,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/embed_advanced_chart.6d07e4fd8e3f2785cf25.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"introduction_type":"scriptElement","is_inline":false,"md5":"ff08c213214941a305e07e2e0aecf577","sha1":"cdefa4d26a111dfe184184912992dfdcfb77f002","sha256":"484233793afe63cd2f9df537c6819b1489f21625d4d0ee9ed41ad56b71117b59","sha512":"c787b5e2bdf2f3a3eb2d122f888029d3317c0a1366c56e6cd295c5e8cbb2a4ca7cb624ef86de5ce26f6f5ca73b2ec98c925506b5e39cd6c8e42424ca470e7ab1","ssdeep":"6144:eetdrmSRezirtVcbkZ0PVvoxvNvyc4441G8/BSGTees55hok0Otik21pcV:eetdrts+0PNofvB41G8/BSGieKhCOtiQ","tlshash":"68645d91b2957ca663e740e6947a0103a72918c67802536cf7bc8dce270dd8d7276fbe","size":307359,"data":"","first_seen":"2026-07-24T11:36:47.992194Z","last_seen":"2026-07-27T12:53:06.176632Z","times_seen":188,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/35390.241fb141acd655a5ddb0.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"introduction_type":"scriptElement","is_inline":false,"md5":"d04af10cb7b934f96922d211010fa647","sha1":"90e4cefe76d45bfee65c51cbe842dc30e8982711","sha256":"e1df7a1b17e8d4b49da381253394d4a46418e863db8410ab93612f71170a8941","sha512":"94759d474d0ab5ea3f8f4986c84217076e35ede171b9694b89f53d8d48025ae6ad62f90aee26bb625c1160829c6216144a5044698dacbd468dcd7d6113a88edf","ssdeep":"768:SEKRgP4jmN+0Z1r2ogUUUh3W//YWXgARQ:lramN+s1r35Z","tlshash":"8cd2768b72666dd6347f36e2cc6f8e4ee1ba189a3484e074d7e6f5c039e005e8131e65","size":28957,"data":"","first_seen":"2026-07-25T03:24:57.334067Z","last_seen":"2026-07-27T12:07:26.457245Z","times_seen":19,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/45277.ec6e36193d139c5c5f7b.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"introduction_type":"scriptElement","is_inline":false,"md5":"e18907ad974965570fff5fe138910b3e","sha1":"42a83b0c792ca4963052a4c61df2709d9d009ff6","sha256":"ec78fef0e90dea389a0c9b780256ce3c56ad02e3dc55e8821641c312af8f6f82","sha512":"e5ec15969c1036dbd81bb3f2cc8eee0c72ca47617098bacff7c655a4f45e4ecd8c7910ba484be4a0f780329316de5b0b67c8cbe7bb41d5f259e6dd3deeb1ddba","ssdeep":"192:j/f5hxzIhzOTre4LiZa6CWwvIe1ySWu3XXfBIrbgouzQBFivV+GRe2t6RufLKPXZ:j/f5Lz6zOTrMZcW62Sd3nfBIrbVu8BF1","tlshash":"7132c5a5328240ee53e617d53835464b9314bd5b39cb9ca8b16c58cf286e88e36fd738","size":11144,"data":"","first_seen":"2026-07-17T03:30:51.165572Z","last_seen":"2026-07-27T12:47:44.816988Z","times_seen":103,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/seasonals-chart.9719fe255d8c43484ff9.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"introduction_type":"scriptElement","is_inline":false,"md5":"ff74657f5cb3a59a49ec7f166c578d72","sha1":"c488955a50e171a49952ef2951703e1ad6ed9ea2","sha256":"259097959e286814b22a99ee16349aaf2adaf19bbeb1e1f48933b5cb453c77ad","sha512":"9a6f485dac35f779f8c255a2b7e822ce586b35ee649ffa53008de7b8919c6ae62291e94c2173d83353eb687ae9bab3e4ad1953e2f1be7ffddc368d123cb494d2","ssdeep":"384:SCIqDvRieyYUxq4YKv3accjKCK7OC8O/WokPnr1iRYXun+h1tKuwIN/XS5idp8+h:FMaTjKCK7OC8O/WokPnr16C1tKunOiMk","tlshash":"0aa2d992e640755b02eb81ea5c76420395b4a1873cc745acfea869ce934ce0cb376f7c","size":23112,"data":"","first_seen":"2026-07-27T03:26:08.829115Z","last_seen":"2026-07-27T10:28:13.876256Z","times_seen":6,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/23743.4733137af2f232a6a34a.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"introduction_type":"scriptElement","is_inline":false,"md5":"0662db7d4ac07059ef6d238a7fa48e27","sha1":"736ed22fb893e48eb48b0150ec68ee0e3c69c7b2","sha256":"af1154bdae13a0f96f45923150360a2e20a73f83a62d0d671a137604a1ffe7bd","sha512":"d0f916877c8757288f5d0a63c009b2a6c596c888960ca29b3ca6ac71f629591e473f08f48b89b10d13d074a78ffe51c1cee690861938863df5a0265605fd6df2","ssdeep":"384:9Xwl5lUwL/+MbKlpYZketvNCY7hbyc7KukFhX3ma3anayRwsix6udtd4MkiAN:9Xwl57/bYCPzCY7IgNWaayRD06u3SWAN","tlshash":"739208723591307133efebeb5096041cf330b418a94b88e4b1e9689d35e26b461b6fde","size":20578,"data":"","first_seen":"2026-07-23T14:00:31.578797Z","last_seen":"2026-07-27T12:57:37.098495Z","times_seen":208,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/14889.6210b1c56dc3b20c8ffb.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"introduction_type":"scriptElement","is_inline":false,"md5":"18f15990d846223cca396c3c761972f1","sha1":"8dede85b8e37373abbd001b14678c4421d37fe66","sha256":"6ebf58b388094ec25d3a4ce00e5bba7428699a6d2ed1cbc9d3d0173cde200293","sha512":"ed8e626b0b1517a097135fc060afb74f6b2ac796367fe82d704bc3ac76c4bc0077eaae8e0310851b25c711abf13380f522a22440b5e027de37de8fbcd5f41878","ssdeep":"384:hH0ZXXyspmgswwUCsoMJRWF3WW/N9MNuV62dv4xCFwUCBxDgQm7ibLeDglZnquTq:RkdmgswwrsJDWF3/N+NuVD14ECBxDgQg","tlshash":"75a2e9997199a12456eb50ee503f0406f33a7905b014ad36f2acccde3aec94cb139bb9","size":22613,"data":"","first_seen":"2026-07-23T14:00:31.727085Z","last_seen":"2026-07-27T12:52:15.506419Z","times_seen":113,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/branding-source.83b7dbcf32c4ccb466bc.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"introduction_type":"scriptElement","is_inline":false,"md5":"e07829b9c2f075e0d79539e09e8ef5c5","sha1":"c0ecb7b2378f8c8f6bb127ab7ce32a33f2867147","sha256":"de200e3269223b7eaed298c26e6c4f1aa89cfefab594c21c75d8fa254a074888","sha512":"6caeee99a9d13d9694e591f9382f08303b729630991f2a101d67c7c6e9ab1aa3679a35fe72b8511546c1ed034286f9ef93d5b2e8878aeb902fdbc675fef15d33","ssdeep":"768:35sPlyn1pNoHx1dy6DXt6MfuD92GrAhihIo0Z8Qa2L/aQmvYsYIlL7GL4EUdBkp4:KdFrbPfuD92G8mcZQ2L/BmRdBIJNWGHs","tlshash":"5103196ee220585d13c301b49c7f2957961b50e5350a4becb2bc9dee105e9dab633b3c","size":39300,"data":"","first_seen":"2026-07-23T14:00:31.655738Z","last_seen":"2026-07-27T12:52:15.532806Z","times_seen":110,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/chart-widget-gui.13468e69e04a805f97cf.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"introduction_type":"scriptElement","is_inline":false,"md5":"4e35d66fb21ba281ba6dbf987ed9ad19","sha1":"73e3a494f412a84503c6bf08675879d8208fc592","sha256":"5653a56b0c05a5fd05b5142656859a2b962fa133463b10bef556248e9a874170","sha512":"b0ca5d7daa35d7d3028dceb3b720db89c3490e605c24bd22a4111fb473cc03df4111967e85c15c04ee5b3f778d6fb4827935324ad61a06e9280ae18ddff4cc7f","ssdeep":"3072:0LfPZKIwNAHqBrRysvaCGj4Re79+op3zathZRSEaigHKBRnE:kZKIIyOatj4Ip+oJza7Z3gH6E","tlshash":"f0344b677264783a61bb51ee08bb0503e71a6445b442407cf1bc9dde296dcc9b23af3e","size":233096,"data":"","first_seen":"2026-07-23T14:00:31.388594Z","last_seen":"2026-07-27T12:52:15.440681Z","times_seen":110,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/39166.21343209d8750da3693a.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"introduction_type":"scriptElement","is_inline":false,"md5":"b68d046060944bd28bdaa7f0e942ac50","sha1":"d67bd155c5a81d6207a36c06d87e373a2d1274d9","sha256":"ddee550aa6471222ab57b074664f8cbb7c653a66cda78327bc070e5ec00115bf","sha512":"3cef94486ec2c6ca58ba870ecb861078fc7582080cab43eb1197124b05e744d9e7cd1d3fd61274210e0e79f3823865041f7ed106e3157d5d9965a576c67ce742","ssdeep":"96:xAWBjuVYfVYcU4pp0hv+CN8fhLV4QJF2KBzo3s/t7ooT9e+N0Q0ZsJgqGq/uA:qWBDUI0hv+1hjF2KzSwk340t2JrGqt","tlshash":"12b1f898b3a0780c2127507f91376f29bf1d7e98241d5871f43cecae309ea969335e26","size":5566,"data":"","first_seen":"2026-07-22T16:00:00.545232Z","last_seen":"2026-07-27T12:48:39.769648Z","times_seen":107,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/symbol-search-dialog.2bd5ad4a50f11c55181d.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"introduction_type":"scriptElement","is_inline":false,"md5":"a33d79b36d31bad99801ac951429ec12","sha1":"0132a8f4734c731690767f7346c30377761aed71","sha256":"42e14e00fdcb59805d9b1fc3225db0713e0a8ce22f25639326da817409380856","sha512":"b85e7f37730215e956573da5116e3901e2dc95b7c20bf9dba114b73817e363a0af560933b8f1193dae05ec6d87310bb3f73d9facec95f9521a846a4a0bacee6f","ssdeep":"768:1VZTM7OTm7FZkgTGJPrOvJ1UKxQcGhXEwpMALDw0Iv6CCVmXRfoUUUh3W//YWXgK:1MT2AbUKuXEgMPCVmpRK","tlshash":"0353f953b3045e4e75abe1e7ce2d8d49978e50a3304ac234f5efaed8229647fd623844","size":61870,"data":"","first_seen":"2026-07-24T15:28:44.934306Z","last_seen":"2026-07-27T12:48:39.654284Z","times_seen":55,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/13805.9a2029fb1a377f86c24d.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"introduction_type":"scriptElement","is_inline":false,"md5":"f4ce2fead000bf1ab79fbfa4a78ec7ac","sha1":"2e20b8d515d61f7fbee20c750fec9ecb4bc73376","sha256":"30cb098cce0def8b770e0b3bbe93565e871484e779ef4319c188dc64142883c4","sha512":"59eb87c733dd0aa4fa3b496782a6212b34d38d6811c216b1b0814c10eb0446c9234779ff6a11dde557fb81c2d97c8a45ea93df0179066673dbbff4af1d714674","ssdeep":"384:IGOEKLPryUSTe/9KOzuMuHpftbeooEDOFFxiJijn2/yCQ8WsgSjMGi:IGO9zryUSTe/cOzuMapftbeooEDOFPic","tlshash":"de42bae970d1b0a1dba70869c47f400af33a3c51380e9550f266dcca79b516ed177e6e","size":12538,"data":"","first_seen":"2026-07-27T03:26:09.120534Z","last_seen":"2026-07-27T10:28:13.81306Z","times_seen":7,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"unpkg.com/lucide@latest/dist/umd/lucide.js","fqdn":"unpkg.com","domain":"unpkg.com","tld":"com"},"ip":{"addr":"104.18.0.22","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"scriptElement","is_inline":false,"md5":"e60fa356972c13f43eb4c538d887cc21","sha1":"27dce26a019c5d401975c319dce40f1267516352","sha256":"e59578370dfa115b8d9119e68d0908198d00e2fe662b23f76be00d736f93adc0","sha512":"cdec9c6841fe1a8542f18cedfee514d66e6d01c72e1ae3ee9b9a2faad4717e6bcd4e41ace876e7650315a04e0afa5453f17180364200982fde7535798ce9a916","ssdeep":"6144:gWpE+79UeOhVn3Lb//96NuFS3yyxwqW19f:fWeUVn3Lb//96NIS3yyxwqW19f","tlshash":"33d42425cade2d9d1a127658062eb4470f7840b3394b7c307dbc4b2acf6e01ade675ad","size":618557,"data":"","first_seen":"2026-07-26T09:16:44.61207Z","last_seen":"2026-07-27T12:56:20.917621Z","times_seen":20,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/en.89618.e8db19d81376d486e288.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"introduction_type":"scriptElement","is_inline":false,"md5":"846e435a133db84eb03e3413f477fb59","sha1":"4a30726e0dd97d7970d29e186394d5084ce62280","sha256":"dbfb0a54a4ac5aa54a0627d7183320ac1e11932f45a1b9b0fd3eb045d961c53f","sha512":"81cd04d2cc3522d75b2ac97f95540e5709fcf6db3becfaa513ba65a28ad252ed5e7242ef81861ea33e752ade52444aaaee1028e949b893e4207a076e31064b0c","ssdeep":"","tlshash":"bee0861fd071e9bc3f36864436619cd2b4a435d601f0c2c773c4ed40e0229ec1c4465c","size":351,"data":"","first_seen":"2026-05-05T12:17:23.674052Z","last_seen":"2026-07-27T12:52:15.375972Z","times_seen":471,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/97272.3bfbfc8daabca040cf73.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"introduction_type":"scriptElement","is_inline":false,"md5":"8c50864d30ec134dd6dbf5614f6b0993","sha1":"e6f4e061c6b41ee25122eea9292ee1060bcbf290","sha256":"781e57f4504c7b485e77c0196c82978e6e2b63b503428b039f1ea86e3d3d8c6b","sha512":"4fa1d6e1afa37a9a925a9205354516db356d3db9d7d48297be0d7d04a262559ee656baf6c62318da568ad9c4278b2022f50b58265cfae5ed55c87373ef41a88c","ssdeep":"3072:AmXiQrx9XT2QQFJGUY/yORpn9VNpvNV7lzQQ3+EsCfEbNxYtyphoG:xlT2QQFJ1QVpn9VzvNV7lzQQ3kC8rSsz","tlshash":"d2e3e69272a5749683b901d54cf44503ab4d1c8bb84a888cf2bc1cef561de5d32befb9","size":145548,"data":"","first_seen":"2026-07-22T16:00:00.509283Z","last_seen":"2026-07-27T12:48:39.848534Z","times_seen":81,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/37259.c274906dca0ce793b9d0.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"introduction_type":"scriptElement","is_inline":false,"md5":"e697e6c0274d0ae1900218cea9e15896","sha1":"8845989f6167dae34251aadd37a5479ff51d5ded","sha256":"665cfc147a5679c937c7bd96b69a1a1cbb3d7ffeee53259023f220e87b63b8da","sha512":"8f0116d52275db82ecf930460a51437c18bd3adb79c95e4c35955b3d63defcb93cb59cc08ef3be9242e7adc711d7a426fe0480e14e32d2d6d4d46db3b723b8aa","ssdeep":"768:NkBZpRhz6Oi9blGI5edbeMwp+KNsn86cySO+2kE:qxjilewT+/pM2kE","tlshash":"61e2d8d8b467fa1a503b69dfa81e08c0663c569098db0cb1e99ecc9c3504959f37dbf8","size":33480,"data":"","first_seen":"2026-07-27T03:26:08.99451Z","last_seen":"2026-07-27T10:53:39.258553Z","times_seen":8,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"widget-v3.smartsuppcdn.com/assets/main-B-VHc1K4.js","fqdn":"widget-v3.smartsuppcdn.com","domain":"smartsuppcdn.com","tld":"com"},"ip":{"addr":"185.76.9.12","port":443,"asn":60068,"as":"Datacamp Limited","country":"Sweden","country_code":"SE"},"introduction_type":"scriptElement","is_inline":false,"md5":"44df6240c839beea4111582dddf02793","sha1":"4b4dd2241d5ff95eba46fb8893058404630825cd","sha256":"a4019ee0c737ef5d214e80e5a87a5a6e839ff2cf4e286cdad9ed6ff397eba250","sha512":"2f30c45b38eeb4a1900f295893fa30362dce2af015cb8eac6b997795ff4b72db55a92d8d38bb7a8cc8f529c612906aa9d2a2a41539c6a67052ae569733ff7e02","ssdeep":"384:Xrgi5RFMkSjJOE/0BW2rvZZ795P6nrnBOVmPCRkXQbpaIF2x:XEizlSjJOEiWYPR5P6rnBOVmycQbpaIi","tlshash":"6c72d7742700783f712f489e15ade546b232c29dd693892d8b2fec0976c5cc0a8b37b9","size":16281,"data":"","first_seen":"2026-07-27T07:28:16.135673Z","last_seen":"2026-07-27T13:00:53.941684Z","times_seen":673,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/en.1422.c561e45927c668838d3a.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"introduction_type":"scriptElement","is_inline":false,"md5":"d859a1e868a7661a8636c0fb8d7daec4","sha1":"2a37062909759ff05bd43bc89ce9df1458a86f72","sha256":"3bcc47e7b0a8f348a5e0e2958f57aacc0129c8971f88749a8fedd018ddff2bbd","sha512":"eb854bb5e04fb703a7587291cca2d99c57b30cef30c10aa45306bd2b5156830d6d7e2e714d1a8618b6919d9da8915f8c5696f5c531388f24cae57ad78d2f29fa","ssdeep":"","tlshash":"9211975bf12032e8bff2a5313354cc207d0834e400f3d1ca4b77bb668a0be2c1826a98","size":1075,"data":"","first_seen":"2026-06-07T10:37:53.410769Z","last_seen":"2026-07-27T10:28:13.704258Z","times_seen":12,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/36938.58456da0cdb4bb9bb485.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"introduction_type":"scriptElement","is_inline":false,"md5":"0b3a2f0bced3b2d13e2bc4271e8f8bec","sha1":"c8882777ff1ea1c0a44cd5abb3371658234b1ba7","sha256":"cc20688cf7733b705a8082a5cd27b28bfb7c5bf465b3b37a793cbb16845e2044","sha512":"79451e25e3c330b552f61617650652ad0fec3ca6846f09ab1abb2fee164ff668ea5b4bddc93377a87b16a14cbf8b793a074e8b00f7f1bb596ddb62211aae77cd","ssdeep":"768:1NuXCwjvbjs5+DLdgy+qR2UxNnoxErOw2f+gCrpZAKA6DQKG4JJZXKTmpcu9Chqj:aXPjvbQ+tI6XXoOow+H0","tlshash":"25f22c92b09170bc96f746ee943f0552f33a1a64b9854868f0bc8cec2d64d49e272f7d","size":34428,"data":"","first_seen":"2026-07-23T14:00:31.698766Z","last_seen":"2026-07-27T12:57:36.985324Z","times_seen":172,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/38086.990b013ae325a9b5099a.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"introduction_type":"scriptElement","is_inline":false,"md5":"12ee02cfd5ac5d5c313f3b01d8594d67","sha1":"9c5481266cf5613714714c6a1caf5e0a00d5a0fa","sha256":"e2c24b1c51c27795031a14e1f510e609acbee7e60d594e70c12b5bfe7331c5ea","sha512":"51808078a6bf5ec8b0ca47b4202cadc45f1ae8a112e67afadb66128b8145adb8f9cde349c93857081db86695e5c591f1407f80c3263466fcde7e098c4fdf3665","ssdeep":"768:/i1CR3M0b4wuYONncOogxxuaGy9yLsxtMgDA184HYtae6IkykW7FTSjtwgIlbSUr:CiM08weNcfgVmgxtMQu84HytLkyPTS5m","tlshash":"6ec23bd470a1a0ce12d206ddc17e9550e37b795cbc198e64f4a8ccee749e64a7338b6c","size":28047,"data":"","first_seen":"2026-07-23T14:00:31.722877Z","last_seen":"2026-07-27T12:48:39.614512Z","times_seen":102,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/3552.4c5535183b7a0330a89d.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"introduction_type":"scriptElement","is_inline":false,"md5":"8cb7d12d58618d9e9433db7cf169e678","sha1":"dd2e2830dd9f4f8c3e4000fb90c94712f7315f67","sha256":"e54bba4bdf7867aec664fc0c023a4e77650464bb7e2e1a2d80ef75500363cd92","sha512":"9c9ce4a19d03df706a0fb6495901a15dd961b87797e48e43669a130ec51d4d3788fcd9e251dd54f1560134509553e5c7a1cc17249ad1f6f562d104b6b10d9a66","ssdeep":"192:ETCSGJXJ6h4GX8tWKEN7Nbj61RO2g6OQLgwF8TEz5XnC/x6/v60KjBHAH4yiFbBw:EmSGehtqWNN7Nbj61ROQLRF8TkVNjaAj","tlshash":"ab42b53d719358a8666780e980390b7ba6283980a58741bcfb78dccf46cddd46277f38","size":12192,"data":"","first_seen":"2026-07-22T11:33:41.980937Z","last_seen":"2026-07-27T13:00:41.43535Z","times_seen":1683,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/67930.f0d77c1721dc8fa0d333.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"introduction_type":"scriptElement","is_inline":false,"md5":"990cf69851fde87b4493a4a244863db8","sha1":"ee7d5c61c67346c3d87c7e74c026bf4563383065","sha256":"6dfa7fc1e68a590ca27e08e6e6764259c28a0d7b39bb6971ab6383e8f246b6ac","sha512":"c819313da9003f50657bb1bc8de38b3e74208ac8407598c9755760b3b87d2ef157dbfebfaab0286f372c6586681bc19bca3e95ffcd2493326e2ae3b7c4947127","ssdeep":"3072:R0RDUtOcN3trUIjzAXK8ZrhLy6fXK6ZKubLBc4MO:ZZdTjsXK8ZVy0subLBcrO","tlshash":"66b33be3b1a0f0a9556601e984be0103971e6966bc47887cf6bc9cce155c9caf636f3c","size":113437,"data":"","first_seen":"2026-07-23T14:00:31.373835Z","last_seen":"2026-07-27T12:52:15.518079Z","times_seen":110,"alerts":{"ids":null,"analyzer":null,"urlquery":null}}],"eval":null,"write":null,"console":[{"level":"warn","text":"cdn.tailwindcss.com should not be used in production. To use Tailwind CSS in production, install it as a PostCSS plugin or use the Tailwind CLI: https://tailwindcss.com/docs/installation","filename":"https://cdn.tailwindcss.com/","line_number":64,"column_number":1711},{"level":"warn","text":"\nIt looks like you're using the development build of the Firebase JS SDK.\nWhen deploying Firebase apps to production, it is advisable to only import\nthe individual SDK components you intend to use.\n\nFor the CDN builds, these are available in the following manner\n(replace \u003cPACKAGE\u003e with the name of a component - i.e. auth, database, etc):\n\nhttps://www.gstatic.com/firebasejs/5.0.0/firebase-\u003cPACKAGE\u003e.js\n","filename":"https://digital-assettrade.com/assets/global/js/firebase/firebase-8.3.2.js","line_number":1,"column_number":859387}]},"http":[{"url":{"schema":"https","addr":"translate.googleapis.com/translate_static/img/te_ctrl3.gif","fqdn":"translate.googleapis.com","domain":"translate.googleapis.com","tld":"googleapis.com"},"ip":{"addr":"142.250.178.106","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://digital-assettrade.com/","date":"2026-07-27T10:27:14.666Z","timestamp":1785148034666,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_256_GCM_SHA384","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"upload.video.google.com","organization":""},"issuer":{"commonName":"WE2","organization":"Google Trust Services"},"validity":{"start":"Mon, 29 Jun 2026 08:39:27 GMT","end":"Mon, 21 Sep 2026 08:39:26 GMT"},"fingerprint":{"sha1":"50:37:CF:61:33:A1:EE:47:D9:3D:A6:5E:07:BA:4C:FF:F7:25:9F:76","sha256":"7D:4D:21:06:63:E2:5E:F0:8C:59:8E:EB:B7:94:2B:81:70:11:D3:F4:C0:A0:81:A6:1B:E7:27:FD:56:10:1A:11"}}},"request":{"raw":"GET /translate_static/img/te_ctrl3.gif HTTP/1.1\r\nHost: translate.googleapis.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-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://digital-assettrade.com/\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=6, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccept-ranges: bytes\r\ncross-origin-resource-policy: cross-origin\r\ncross-origin-opener-policy-report-only: same-origin; report-to=\"static-on-bigtable\"\r\nreport-to: {\"group\":\"static-on-bigtable\",\"max_age\":2592000,\"endpoints\":[{\"url\":\"https://csp.withgoogle.com/csp/report-to/static-on-bigtable\"}]}\r\ncontent-length: 1412\r\nx-content-type-options: nosniff\r\nserver: sffe\r\nx-xss-protection: 0\r\ndate: Thu, 23 Jul 2026 02:32:24 GMT\r\nexpires: Fri, 23 Jul 2027 02:32:24 GMT\r\ncache-control: public, max-age=31536000\r\nage: 374090\r\nlast-modified: Thu, 03 Oct 2019 10:15:00 GMT\r\ncontent-type: image/gif\r\nalt-svc: h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":null,"data":{"size":1412,"size_decoded":2072,"mime_type":"image/gif","magic":"GIF image data, version 89a, 84 x 19","md5":"9afe50090c0bc612953d081295eab5b1","sha1":"71a4da2a622879c29176ecfa5afe1bbe3e8cfa40","sha256":"d228d0256370863119c043f1e5ca8f3930f6999bd9f250434b6d8935f45dc171","sha512":"d7290b951cec51994f3480c32b70de0faeca433b5d99209b044e1d4c12327768de8c344b6bded806d993251e0ee6f98f0dd64f4480e999fbc06abfe3dd8056fa","ssdeep":"","tlshash":"042182b5cc99114a5be1bd27a334899da8b12c56c38d74595436bdb43470f098422812","first_seen":"2023-04-05T08:27:37Z","last_seen":"2026-07-27T13:00:41.414219Z","times_seen":15384,"resource_available":false,"data":"R0lGODlhVAATAOePAAAAyxZBmhdFrBhHrhpMyB1Uxh1Vzh5X0R9ZzR9awSFf1SNk2CYW0SZq2yZs4Cka2yt45TB9ITJ11TODHjODIDWKGzdgrDmUGjuaRTybGT1svj6hGUClGEF1tEGnFkGpGUKrFUNnrkWjYUWoUkZtskdww0dxy0l/EkmP5EqlLUtLS0uxFFCmLlGY6lON3la4E1e0GFhYD1uxRlu5EVyyU1+vLGW8FGef5mmTx22p7W6PEW+d32+e4XKa2Hp6en6p5H9lE4eHh4i06YurxYyqyYyufoy8iI29ho7AhpCz55DEhJW55ZaT15jClqGm9afE2KgeFavK7LDN47rV7b7J4cTa9cXi0MjX8Mrd9c0lGs3l/9QmGtbW1tfq/9jl9djl+NmcANns0dnt4NonG9otM9yGft4pG9/x4OCrIuG3I+Hv/+Lfz+Px4eRWTOSaAeSyNuUpHOWIgOalAOby/+c5P+egD+exAefJcOhYXuqjAOq3Tuq9YOtqbuvHG+vz++xYTOy8AO2sAe6xAO7x9+/Ecu/SaPDYaPD2//D47/KzAPS7APfpy/ng3fzp7P347f///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////yH5BAEKAP8ALAAAAABUABMAAAj+AP+pGEiw4MB//4goXMhQ4b8gECNKnIiwosWLGBE+2sjxkaNGIB115KjCB5eTKFP6UEEkypyXMGNGIRJkpM2NQSwO2bkzI8aRjOL8oUP0TxxGI1WkXIqSZcynMGnetJnz386OanpWxNGhKw6NHOMQHUs2jsiNSpkudQr1qVScI2vitLpRTZe7XdRoGYKQ65K/Hb5yxEO2MJ0/HdNyYQCgMQAGTYnAfOAYwIOociNy1Pwo55BHXZZ07XC3Ct9/HZZUFP1vo9ixfNYsWsOHDp6kKJlUZhIZppPKTjBvhtiZOM7PdlN34Xp3Ct/Uqzu0XjT2z5qRaxrhRsn4cUq2Lyn+W475FqfEjkE+4+0yhXkXKUNGy+/6yFAdotc7HrqpmItuALz15ltjwQmHnnGbqddcV3jBl9pfEIrmSB+KKILYVNtxB9l3ksX0wGXkyWUeZ8eBdheDDcY332iOVKiIIR0tgcKMNKKQwyP9+ReggL4VaGBxNZGYnl3r4TXFE/FFCGEHLVa4SEdR1EhjDofkqBZ4bb30lpDGeUYkiu89t2JXTb4Yo5Qz3mglU1hmWZ6IcM01hBZVrDeFFEiipiRgE1ZYREdzaCGoFi3MKASOJql10kotZfnSTHBiWNVOd0qBp1Zj0mdIGiOMYMVNVdAYxSMCGWQqQg2lSsRDGKKnE09jp/lU0SNhdDqCCJ929EWhKLTQBamyBuvTRMRKJKywGxlh6whGWOGsESLQeCiwx1Zr7bWyckTDstxi0MENHGEr7rjWdqQst7Ya0RG57LZ70UhWQGurCM2O5O697N6EyL773hQQADs="}},"time_used":16,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":16,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/45277.ec6e36193d139c5c5f7b.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:15.090Z","timestamp":1785148035090,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/45277.ec6e36193d139c5c5f7b.js HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:15 GMT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a58ab11-2b88\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Thu, 16 Jul 2026 09:57:37 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/16/2026 11:03:22\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: c0c2bcebab3a3babb473b365bd413f4a\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":11144,"size_decoded":5155,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (3068)","md5":"e18907ad974965570fff5fe138910b3e","sha1":"42a83b0c792ca4963052a4c61df2709d9d009ff6","sha256":"ec78fef0e90dea389a0c9b780256ce3c56ad02e3dc55e8821641c312af8f6f82","sha512":"e5ec15969c1036dbd81bb3f2cc8eee0c72ca47617098bacff7c655a4f45e4ecd8c7910ba484be4a0f780329316de5b0b67c8cbe7bb41d5f259e6dd3deeb1ddba","ssdeep":"192:j/f5hxzIhzOTre4LiZa6CWwvIe1ySWu3XXfBIrbgouzQBFivV+GRe2t6RufLKPXZ:j/f5Lz6zOTrMZcW62Sd3nfBIrbVu8BF1","tlshash":"7132c5a5328240ee53e617d53835464b9314bd5b39cb9ca8b16c58cf286e88e36fd738","first_seen":"2026-07-17T03:30:51.165572Z","last_seen":"2026-07-27T12:47:44.816988Z","times_seen":103,"resource_available":true,"data":"InVzZSBzdHJpY3QiOyhzZWxmLndlYnBhY2tDaHVua3RyYWRpbmd2aWV3PXNlbGYud2VicGFja0NodW5rdHJhZGluZ3ZpZXd8fFtdKS5wdXNoKFtbNDUyNzddLHsxMDAodCxlLG4pe24uZChlLHtjdWJpY0JlemllckhpdFRlc3Q6KCk9PnIsY3ViaWNCZXppZXJQb2ludDooKT0+bCxleHRlbmRRdWFkcm9CZXppZXI6KCk9PmgscXVhZHJvQmV6aWVySGl0VGVzdDooKT0+c30pO3ZhciBpLGE9big3MDA3NCksbz1uKDY0MDc0NCk7ZnVuY3Rpb24gcyh0LGUsbixpLG8pe2NvbnN0IHM9bi5zdWJ0cmFjdCh0KS5sZW5ndGgoKStuLnN1YnRyYWN0KGUpLmxlbmd0aCgpLGw9TWF0aC5tYXgoMy9zLC4wMik7bGV0IHI7Zm9yKGxldCBzPTA7O3MrPWwpe3M+MSYmKHM9MSk7Y29uc3QgbD10LnNjYWxlZCgoMS1zKSooMS1zKSksaD1uLnNjYWxlZCgyKnMqKDEtcykpLGQ9ZS5zY2FsZWQocypzKSx1PWwuYWRkKGgpLmFkZChkKTtpZih2b2lkIDAhPT1yKXtpZigoMCxhLmRpc3RhbmNlVG9TZWdtZW50KSh1LHIsaSkuZGlzdGFuY2U8bylyZXR1cm4hMH1lbHNlIGlmKHUuc3VidHJhY3QoaSkubGVuZ3RoKCk8bylyZXR1cm4hMDtpZihyPXUsMT09PXMpYnJlYWt9cmV0dXJuITF9ZnVuY3Rpb24gbCh0LGUsbixpLGEpe2E9KDAsby5jbGFtcCkoYSwwLDEpO2NvbnN0IHM9dC5zY2FsZWQoKDEtYSkqKDEtYSkqKDEtYSkpLGw9ZS5zY2FsZWQoMyooMS1hKSooMS1hKSphKSxyPW4uc2NhbGVkKDMqKDEtYSkqYSphKSxoPWkuc2NhbGVkKGEqYSphKTtyZXR1cm4gcy5hZGQobCkuYWRkKHIpLmFkZChoKX1mdW5jdGlvbiByKHQsZSxuLGksbyxzKXtjb25zdCByPWUuc3VidHJhY3QodCkubGVuZ3RoKCkrbi5zdWJ0cmFjdChlKS5sZW5ndGgoKStpLnN1YnRyYWN0KG4pLmxlbmd0aCgpLGg9TWF0aC5tYXgoMy9yLC4wMik7bGV0IGQ7Zm9yKGxldCByPTA7O3IrPWgpe2NvbnN0IGg9bCh0LGUsbixpLHIpO2lmKHZvaWQgMCE9PWQpe2lmKCgwLGEuZGlzdGFuY2VUb1NlZ21lbnQpKGgsZCxvKS5kaXN0YW5jZTxzKXJldHVybiEwfWVsc2UgaWYoaC5zdWJ0cmFjdChvKS5sZW5ndGgoKTxzKXJldHVybiEwO2lmKGQ9aCxyPj0xKWJyZWFrfXJldHVybiExfWZ1bmN0aW9uIGgodCxlLG4saSxhKXtjb25zdCBvPW4uc3VidHJhY3QodCkubGVuZ3RoKCkrbi5zdWJ0cmFjdChlKS5sZW5ndGgoKTtpZighbylyZXR1cm5bXTtjb25zdCBzPWZ1bmN0aW9uKHQsZSxuLGksYSl7Y29uc3Qgbz1bXSxzPWQodC55LGUueSxuLnksMCkuY29uY2F0KGQodC55LGUueSxuLnksYSkpO2ZvcihsZXQgYT0wO2E8cy5sZW5ndGg7YSsrKXtjb25zdCBsPXUodC54LGUueCxuLngsc1thXSk7bD49MCYmbDw9aSYmby5wdXNoKHNbYV0pfWNvbnN0IGw9ZCh0LngsZS54LG4ueCwwKS5jb25jYXQoZCh0LngsZS54LG4ueCxpKSk7Zm9yKGxldCBpPTA7aTxsLmxlbmd0aDtpKyspe2NvbnN0IHM9dSh0LnksZS55LG4ueSxsW2ldKTtzPj0wJiZzPD1hJiZvLnB1c2gobFtpXSl9cmV0dXJuIG99KHQsZSxuLGksYSkuZmlsdGVyKCh0PT50PjEpKS5zb3J0KCgodCxlKT0+dC1lKSk7ZS54Pj0wJiZlLng8PWkmJmUueT49MCYmZS55PD1hJiZzLnVuc2hpZnQoMSk7Y29uc3QgbD0zL28scj1bXTtmb3IobGV0IGk9MDtpPHMubGVuZ3RoLTE7aSs9Mil7bGV0IGE9bCxvPXNbaV0saD1zW2krMV0rYTtjb25zdCBkPVtdO2Zvcig7bzw9aDspe2NvbnN0IGk9dC5zY2FsZWQoKDEtbykqKDEtbykpLHM9bi5zY2FsZWQoMipvKigxLW8pKSxsPWUuc2NhbGVkKG8qbykscj1pLmFkZChzKS5hZGQobCk7aWYoZC5sZW5ndGg+MCl7ZFtkLmxlbmd0aC0xXS5zdWJ0cmFjdChyKS5sZW5ndGgoKTwyJiYoaCs9YSxhKj0yKX1kLnB1c2gociksbys9YX1kLmxlbmd0aD4wJiZyLnB1c2goZCl9cmV0dXJuIHJ9ZnVuY3Rpb24gZCh0LGUsbixpKXtjb25zdCBhPVtdLG89dC0yKm4rZSxzPTIqbi0yKnQsbD10LWk7aWYoTWF0aC5hYnMobyk+MWUtOCl7Y29uc3QgdD1zKnMtNCpvKmw7dD49MCYmKGEucHVzaCgoLXMrTWF0aC5zcXJ0KHQpKS8oMipvKSksYS5wdXNoKCgtcy1NYXRoLnNxcnQodCkpLygyKm8pKSl9ZWxzZSBhLnB1c2goLWwvcyk7cmV0dXJuIGF9ZnVuY3Rpb24gdSh0LGUsbixpKXtyZXR1cm4oMS1pKSooMS1pKSp0KzIqKDEtaSkqaSpuK2kqaSplfSFmdW5jdGlvbih0KXt0W3QuTWF4SGl0VGVzdFNlZ21lbnRzPTUwXT0iTWF4SGl0VGVzdFNlZ21lbnRzIn0oaXx8KGk9e30pKX0sNzE2MDIxKHQsZSxuKXtuLmQoZSx7aW50ZXJzZWN0TGluZVdpdGhWaWV3cG9ydDooKT0+c30pO3ZhciBpPW4oNzM2NTMxKTtmdW5jdGlvbiBhKHQsZSxuKXtyZXR1cm4gdD49ZSYmdDw9bj90Om51bGx9ZnVuY3Rpb24gbyh0LGUsbixpKXtyZXR1cm4gTWF0aC5zaWduKHQueC1lLngpPT09TWF0aC5zaWduKG4ueC1pLngpJiZNYXRoLnNpZ24odC55LWUueSk9PT1NYXRoLnNpZ24obi55LWkueSl9ZnVuY3Rpb24gcyh0LGUsbixzLGwscixoKXtjb25zdCBkPXQueD49MCYmdC54PD1sJiZ0Lnk+PTAmJnQueTw9cix1PWUueD49MCYmZS54PD1sJiZlLnk+PTAmJmUueTw9cjtpZihkJiZ1JiYhbiYmIXMpcmV0dXJuW3QsZV07aWYodC54PDAmJmUueDwwJiYodC54PGUueD8hczohbil8fHQueD5sJiZlLng+bCYmKHQueDxlLng/IW46IXMpfHx0Lnk8MCYmZS55PDAmJih0Lnk8ZS55PyFzOiFuKXx8dC55PnImJmUueT5yJiYodC55PGUueT8hbjohcykpcmV0dXJuIG51bGw7Y29uc3QgYz1bXTtpZih0Lng9PT1lLngpe2lmKHQueDwwfHx0Lng+bClyZXR1cm4gbnVsbDt0Lnk8ZS55P2MucHVzaChuZXcgaS5Qb2ludCh0LngsMD09PWg/MDp0Lnk8MD90LnklaDotKGgtdC55JWgpKSxuZXcgaS5Qb2ludChlLngscikpOmMucHVzaChuZXcgaS5Qb2ludCh0LngsMD09PWg/cjp0Lnk+cj9yKyh0LnktciklaDpyKyhoLShyLXQueSklaCkpLG5ldyBpLlBvaW50KGUueCwwKSl9ZWxzZSBpZih0Lnk9PT1lLnkpe2lmKHQueTwwfHx0Lnk+cilyZXR1cm4gbnVsbAo7dC54PGUueD9jLnB1c2gobmV3IGkuUG9pbnQoMD09PWg/MDp0Lng8MD90LnglaDotKGgtdC54JWgpLHQueSksbmV3IGkuUG9pbnQobCxlLnkpKTpjLnB1c2gobmV3IGkuUG9pbnQoMD09PWg/bDp0Lng+bD9sKyh0LngtbCklaDpsKyhoLShsLXQueCklaCksdC55KSxuZXcgaS5Qb2ludCgwLGUueSkpfWVsc2V7Y29uc3Qgbz0oZS55LXQueSkvKGUueC10LngpLHM9dC55LW8qdC54O2xldCBkPTAsdT0wO2NvbnN0IHg9YShzLDAscik7aWYobnVsbCE9PXgpaWYoaD4wJiYodC54PD0wfHxuJiZ0Lng8ZS54KSl7Y29uc3QgZT10Lng8PTA/TWF0aC5zcXJ0KE1hdGgucG93KDAtdC54LDIpK01hdGgucG93KHgtdC55LDIpKSVoOmgtTWF0aC5zcXJ0KE1hdGgucG93KDAtdC54LDIpK01hdGgucG93KHgtdC55LDIpKSVoO2Q9TWF0aC5jb3MoTWF0aC5hdGFuKG8pKSplLHU9bypkLGMucHVzaChuZXcgaS5Qb2ludCgtZCx4LXUpKX1lbHNlIGMucHVzaChuZXcgaS5Qb2ludCgwLHgpKTtjb25zdCBwPWEobypsK3MsMCxyKTtpZihudWxsIT09cClpZihoPjAmJih0Lng+PWx8fG4mJnQueD5lLngpKXtjb25zdCBlPXQueD49bD9NYXRoLnNxcnQoTWF0aC5wb3codC54LWwsMikrTWF0aC5wb3codC55LXAsMikpJWg6aC1NYXRoLnNxcnQoTWF0aC5wb3codC54LWwsMikrTWF0aC5wb3codC55LXAsMikpJWg7ZD1NYXRoLmNvcyhNYXRoLmF0YW4obykpKmUsdT1vKmQsYy5wdXNoKG5ldyBpLlBvaW50KGwrZCxwK3UpKX1lbHNlIGMucHVzaChuZXcgaS5Qb2ludChsLHApKTtjb25zdCB5PWEoLXMvbywwLGwpO2lmKG51bGwhPT15JiYoMCE9PXl8fDAhPT14KSlpZihoPjAmJih0Lnk8PTB8fG4mJnQueTxlLnkpKXtjb25zdCBlPXQueTw9MD9NYXRoLnNxcnQoTWF0aC5wb3codC54LXksMikrTWF0aC5wb3codC55LTAsMikpJWg6aC1NYXRoLnNxcnQoTWF0aC5wb3codC54LXksMikrTWF0aC5wb3codC55LTAsMikpJWg7ZD1NYXRoLmNvcyhNYXRoLmF0YW4obykpKmUsdT1vKmQsYy5wdXNoKG5ldyBpLlBvaW50KHktTWF0aC5zaWduKG8pKmQsLU1hdGguc2lnbihvKSp1KSl9ZWxzZSBjLnB1c2gobmV3IGkuUG9pbnQoeSwwKSk7Y29uc3QgZj1hKChyLXMpL28sMCxsKTtpZihudWxsIT09ZiYmKDAhPT1mfHxwIT09cikpaWYoaD4wJiYodC55Pj1yfHxuJiZ0Lnk+ZS55KSl7Y29uc3QgZT10Lnk+PXI/TWF0aC5zcXJ0KE1hdGgucG93KHQueC1mLDIpK01hdGgucG93KHQueS1yLDIpKSVoOmgtTWF0aC5zcXJ0KE1hdGgucG93KHQueC1mLDIpK01hdGgucG93KHQueS1yLDIpKSVoO2Q9TWF0aC5jb3MoTWF0aC5hdGFuKG8pKSplLHU9bypkLGMucHVzaChuZXcgaS5Qb2ludChmK01hdGguc2lnbihvKSpkLHIrTWF0aC5zaWduKG8pKnUpKX1lbHNlIGMucHVzaChuZXcgaS5Qb2ludChmLHIpKX1pZihjLmxlbmd0aDwxKXJldHVybiBudWxsO2lmKGMubGVuZ3RoPDImJmMucHVzaChjWzBdKSwhbiYmZCl7cmV0dXJuW3QsbyhjWzBdLGNbMV0sdCxlKT9jWzFdOmNbMF1dfWlmKCFzJiZ1KXtyZXR1cm5bbyhjWzBdLGNbMV0sdCxlKT9jWzBdOmNbMV0sZV19cmV0dXJuIG8oY1swXSxjWzFdLHQsZSk/W2NbMF0sY1sxXV06W2NbMV0sY1swXV19fSw1NzI3OTYodCxlLG4pe24uZChlLHtQYXJhbGxlbENoYW5uZWxSZW5kZXJlcjooKT0+eX0pO3ZhciBpPW4oNzM3MzcxKSxhPW4oNzY4MzA1KSxvPW4oNzM2NTMxKSxzPW4oNzAwNzQpLGw9bigzNTE5MDApLHI9bigyNjA2OSksaD1uKDc2MyksZD1uKDYwNDIxNCksdT1uKDc4NjQzNiksYz1uKDcxNjAyMSkseD1uKDE1MTIxKSxwPW4oOTM0MzA1KTtjbGFzcyB5IGV4dGVuZHMgcC5CaXRtYXBDb29yZGluYXRlc1BhbmVSZW5kZXJlcntjb25zdHJ1Y3Rvcih0LGUpe3N1cGVyKCksdGhpcy5fZGF0YT1udWxsLHRoaXMuX2JhY2tncm91bmRQb2x5Z29uPW51bGwsdGhpcy5fY2xpcHBlZExpbmVzPW5ldyBNYXAsdGhpcy5faGl0dGVzdFJlc3VsdD10fHxuZXcgaC5IaXRUZXN0UmVzdWx0KGguSGl0VGFyZ2V0Lk1vdmVQb2ludCksdGhpcy5fYmFja0hpdHRlc3RSZXN1bHQ9ZXx8bmV3IGguSGl0VGVzdFJlc3VsdChoLkhpdFRhcmdldC5Nb3ZlUG9pbnRCYWNrZ3JvdW5kKX1zZXREYXRhKHQpe3RoaXMuX2RhdGE9dCx0aGlzLl9iYWNrZ3JvdW5kUG9seWdvbj1udWxsLHRoaXMuX2NsaXBwZWRMaW5lcy5jbGVhcigpfWhpdFRlc3QodCxlKXtpZihudWxsPT09dGhpcy5fZGF0YSlyZXR1cm4gbnVsbDtjb25zdHtsaW5lMTpuLGxpbmUyOmksbWlkZGxlTGluZTpvfT10aGlzLl9kYXRhLGw9ZS5tZWRpYVNpemUscj0oMCxkLmludGVyYWN0aW9uVG9sZXJhbmNlKSgpLmxpbmU7Zm9yKGNvbnN0IGUgb2ZbbixpLG9dKXtpZighZSljb250aW51ZTtjb25zdCBuPXRoaXMuX2dldENsaXBwZWRMaW5lKGUsdGhpcy5fZGF0YSxsKTtpZihuKXtpZigoMCxzLmRpc3RhbmNlVG9TZWdtZW50KShuLnBvaW50c1swXSxuLnBvaW50c1sxXSx0KS5kaXN0YW5jZTw9cilyZXR1cm4gdGhpcy5faGl0dGVzdFJlc3VsdH19aWYodGhpcy5fZGF0YS5oaXR0ZXN0T25CYWNrZ3JvdW5kJiZ0aGlzLl9kYXRhLmZpbGxCYWNrZ3JvdW5kKXtjb25zdCBlPXRoaXMuX2dldEJhY2tncm91bmRQb2x5Z29uKHRoaXMuX2RhdGEsbCk7aWYoZS5sZW5ndGg+MCYmKDAsYS5wb2ludEluUG9seWdvbikodCxlKSlyZXR1cm4gdGhpcy5fYmFja0hpdHRlc3RSZXN1bHR9cmV0dXJuIG51bGx9X2RyYXdJbXBsKHQpe2lmKG51bGw9PT10aGlzLl9kYXRhKXJldHVybjtjb25zdHtsaW5lMTplLGxpbmUyOm4sbWlkZGxlTGluZTppLHNraXBMaW5lczphLHNraXBUb3BMaW5lOm8sZmlsbEJhY2tncm91bmQ6cyxiYWNrQ29sb3I6bH09dGhpcy5fZGF0YSxyPXQuY29udGV4dDtyLmxpbmVDYXA9InJvdW5kIjtjb25zdCBoPXRoaXMuX2RhdGE7aWYocyYmbil7Y29uc3QgZT10aGlzLl9nZXRCYWNrZ3JvdW5kUG9seWdvbih0aGlzLl9kYXRhLHQubWVkaWFTaXplKTtpZihlLmxlbmd0aD4wKXtyLmJlZ2luUGF0aCgpO3tjb25zdCBuPWVbMF0ueCp0Lmhvcml6b250YWxQaXhlbFJhdGlvLGk9ZVswXS55KnQudmVydGljYWxQaXhlbFJhdGlvO3IubW92ZVRvKG4saSl9Zm9yKGxldCBuPTE7bjxlLmxlbmd0aDtuKyspewpjb25zdCBpPWVbbl0ueCp0Lmhvcml6b250YWxQaXhlbFJhdGlvLGE9ZVtuXS55KnQudmVydGljYWxQaXhlbFJhdGlvO3IubGluZVRvKGksYSl9ci5maWxsU3R5bGU9bCxyLmZpbGwoKX19dm9pZCAwIT09aC5leGNsdWRlQm91bmRhcmllcyYmKHIuc2F2ZSgpLCgwLHguYWRkRXhjbHVzaW9uQXJlYSkocix0LGguZXhjbHVkZUJvdW5kYXJpZXMpKSxhfHx0aGlzLl9kcmF3TGluZSh0LGUsdGhpcy5fZGF0YSksYXx8b3x8IW58fHRoaXMuX2RyYXdMaW5lKHQsbix0aGlzLl9kYXRhKSxpJiYhdGhpcy5fZGF0YS5za2lwTGluZXMmJnRoaXMuX2RyYXdMaW5lKHQsaSx0aGlzLl9kYXRhKSx2b2lkIDAhPT1oLmV4Y2x1ZGVCb3VuZGFyaWVzJiZyLnJlc3RvcmUoKX1fZHJhd0xpbmUodCxlLG4pe2NvbnN0IGk9dGhpcy5fZ2V0Q2xpcHBlZExpbmUoZSxuLHQubWVkaWFTaXplKTtpZighaSlyZXR1cm47Y29uc3QgYT10LmNvbnRleHQ7YS5zdHJva2VTdHlsZT1pLmNvbG9yLGEubGluZVdpZHRoPWEubGluZVdpZHRoPU1hdGgubWF4KDEsTWF0aC5mbG9vcihpLmxpbmVXaWR0aCp0Lmhvcml6b250YWxQaXhlbFJhdGlvKSksYS5saW5lQ2FwPWkubGluZVN0eWxlPT09ci5MSU5FU1RZTEVfU09MSUQ/InJvdW5kIjoiYnV0dCIsKDAsdS5zZXRMaW5lU3R5bGUpKGEsaS5saW5lU3R5bGUpLGEuc3Ryb2tlU3R5bGU9aS5jb2xvcjtjb25zdFtvLHNdPWkucG9pbnRzLGw9by54KnQuaG9yaXpvbnRhbFBpeGVsUmF0aW8saD1vLnkqdC52ZXJ0aWNhbFBpeGVsUmF0aW8sZD1zLngqdC5ob3Jpem9udGFsUGl4ZWxSYXRpbyxjPXMueSp0LnZlcnRpY2FsUGl4ZWxSYXRpbzsoMCx1LmRyYXdQaXhlbFBlcmZlY3RMaW5lKShhLGwsaCxkLGMpfV9nZXRDbGlwcGVkTGluZSh0LGUsbil7bGV0IGE9dGhpcy5fY2xpcHBlZExpbmVzLmdldCh0KTtpZih2b2lkIDA9PT1hKXtjb25zdHtsaW5lV2lkdGg6byxsaW5lU3R5bGU6cyxwb2ludHM6W2wscl19PXQ7bGV0IGg9ITEsZD0hMTtsLnghPT1yLngmJih7ZXh0ZW5kTGVmdDpoLGV4dGVuZFJpZ2h0OmR9PWUpO2NvbnN0IHg9KDAsYy5pbnRlcnNlY3RMaW5lV2l0aFZpZXdwb3J0KShsLHIsaCxkLG4ud2lkdGgsbi5oZWlnaHQsKDAsaS5kZWZhdWx0KSgoMCx1LmNvbXB1dGVEYXNoUGF0dGVybikobyxzKSkpO2E9bnVsbD09eD9udWxsOnsuLi50LHBvaW50czp4fSx0aGlzLl9jbGlwcGVkTGluZXMuc2V0KHQsYSl9cmV0dXJuIGF9X2dldEJhY2tncm91bmRQb2x5Z29uKHQsZSl7cmV0dXJuIHRoaXMuX2JhY2tncm91bmRQb2x5Z29ufHwodGhpcy5fYmFja2dyb3VuZFBvbHlnb249dGhpcy5fZ2V0QmFja2dyb3VuZFBvbHlnb25JbXBsKHQsZSk/P1tdKSx0aGlzLl9iYWNrZ3JvdW5kUG9seWdvbn1fZ2V0QmFja2dyb3VuZFBvbHlnb25JbXBsKHQsZSl7aWYodm9pZCAwPT09dC5saW5lMilyZXR1cm4gbnVsbDtjb25zdFtuLGldPXQubGluZTEucG9pbnRzLFthLGxdPXQubGluZTIucG9pbnRzO2lmKCgwLG8uZXF1YWxQb2ludHMpKG4saSl8fCgwLG8uZXF1YWxQb2ludHMpKGEsbCl8fCgwLHMuZGlzdGFuY2VUb0xpbmUpKG4saSxhKS5kaXN0YW5jZTwxZS02fHwoMCxzLmRpc3RhbmNlVG9MaW5lKShuLGksbCkuZGlzdGFuY2U8MWUtNilyZXR1cm4gbnVsbDtpZihlLndpZHRoPD0wfHxlLmhlaWdodDw9MClyZXR1cm4gbnVsbDtsZXQgcj1bbmV3IG8uUG9pbnQoMCwwKSxuZXcgby5Qb2ludChlLndpZHRoLDApLG5ldyBvLlBvaW50KGUud2lkdGgsZS5oZWlnaHQpLG5ldyBvLlBvaW50KDAsZS5oZWlnaHQpXTtyZXR1cm4gcj1mKHIsbixpLGwpLHQuZXh0ZW5kUmlnaHR8fChyPWYocixpLGwsYSkpLHI9ZihyLGwsYSxuKSx0LmV4dGVuZExlZnR8fChyPWYocixhLG4saSkpLHJ9fWZ1bmN0aW9uIGYodCxlLG4saSl7cmV0dXJuIG51bGwhPT10PygwLGwuaW50ZXJzZWN0UG9seWdvbkFuZEhhbGZwbGFuZSkodCwoMCxvLmhhbGZwbGFuZVRocm91Z2hQb2ludCkoKDAsby5saW5lVGhyb3VnaFBvaW50cykoZSxuKSxpKSk6bnVsbH19LDU0MDg0NSh0LGUsbil7bi5kKGUse1ZlcnRpY2FsTGluZVJlbmRlcmVyOigpPT5yfSk7dmFyIGk9big3NjMpLGE9big3ODY0MzYpLG89big2MDQyMTQpLHM9bigxNTEyMSksbD1uKDkzNDMwNSk7Y2xhc3MgciBleHRlbmRzIGwuQml0bWFwQ29vcmRpbmF0ZXNQYW5lUmVuZGVyZXJ7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMuX2RhdGE9bnVsbCx0aGlzLl9oaXRUZXN0PW5ldyBpLkhpdFRlc3RSZXN1bHQoaS5IaXRUYXJnZXQuTW92ZVBvaW50KX1zZXREYXRhKHQpe3RoaXMuX2RhdGE9dH1zZXRIaXRUZXN0KHQpe3RoaXMuX2hpdFRlc3Q9dH1oaXRUZXN0KHQpe2lmKG51bGw9PT10aGlzLl9kYXRhfHxudWxsPT09dGhpcy5faGl0VGVzdClyZXR1cm4gbnVsbDtjb25zdCBlPSgwLG8uaW50ZXJhY3Rpb25Ub2xlcmFuY2UpKCkubGluZSxuPU1hdGguYWJzKHQueC10aGlzLl9kYXRhLngpPD1lK3RoaXMuX2RhdGEubGluZXdpZHRoLzIsaT12b2lkIDA9PT10aGlzLl9kYXRhLnRvcHx8dGhpcy5fZGF0YS50b3AtdC55PD1lLGE9dm9pZCAwPT09dGhpcy5fZGF0YS5ib3R0b218fHQueS10aGlzLl9kYXRhLmJvdHRvbTw9ZTtyZXR1cm4gbiYmaSYmYT90aGlzLl9oaXRUZXN0Om51bGx9X2RyYXdJbXBsKHQpe2lmKG51bGw9PT10aGlzLl9kYXRhfHx0aGlzLl9kYXRhLmxpbmV3aWR0aDw9MClyZXR1cm47Y29uc3R7Y29udGV4dDplLGhvcml6b250YWxQaXhlbFJhdGlvOm4sdmVydGljYWxQaXhlbFJhdGlvOmksbWVkaWFTaXplOm99PXQ7aWYodGhpcy5fZGF0YS54PC10aGlzLl9kYXRhLmxpbmV3aWR0aC8yfHx0aGlzLl9kYXRhLng+by53aWR0aCt0aGlzLl9kYXRhLmxpbmV3aWR0aC8yKXJldHVybjtlLmxpbmVDYXA9ImJ1dHQiLGUuc3Ryb2tlU3R5bGU9dGhpcy5fZGF0YS5jb2xvcixlLmxpbmVXaWR0aD1NYXRoLm1heCgxLE1hdGguZmxvb3IodGhpcy5fZGF0YS5saW5ld2lkdGgqbikpLHZvaWQgMCE9PXRoaXMuX2RhdGEubGluZXN0eWxlJiYoMCxhLnNldExpbmVTdHlsZSkoZSx0aGlzLl9kYXRhLmxpbmVzdHlsZSkKO2NvbnN0IGw9dm9pZCAwIT09dGhpcy5fZGF0YS50b3A/TWF0aC5tYXgodGhpcy5fZGF0YS50b3AsMCk6MCxyPXZvaWQgMCE9PXRoaXMuX2RhdGEuYm90dG9tP01hdGgubWluKHRoaXMuX2RhdGEuYm90dG9tLG8uaGVpZ2h0KTpvLmhlaWdodCxoPU1hdGgucm91bmQodGhpcy5fZGF0YS54Km4pLGQ9TWF0aC5mbG9vcihsKmkpLHU9TWF0aC5jZWlsKHIqaSksYz10aGlzLl9kYXRhLmV4Y2x1ZGVCb3VuZGFyaWVzO3ZvaWQgMCE9PWMmJigwLHMuYWRkRXhjbHVzaW9uQXJlYUJ5U2NvcGUpKHQsYyksKDAsYS5kcmF3VmVydGljYWxMaW5lKShlLGgsZCx1KX19fSw3NDIxNDIodCxlLG4pe24uZChlLHtwcmVwYXJlTGluZWFyUmVncmVzc2lvblJlbmRlcmVyc0RhdGE6KCk9Pmh9KTt2YXIgaT1uKDEzODYzOCksYT1uKDczNjUzMSksbz1uKDg4NDI4KSxzPW4oNjYwMTYxKSxsPW4oOTI2MTQ5KSxyPW4oMTY4MjU4KTtmdW5jdGlvbiBoKHQsZSl7Y29uc3Qgbj17bGluZXM6W10scGVhcnNvbnM6bnVsbH07aWYoIWUucHJvcGVydGllcygpLnZpc2libGUudmFsdWUoKSlyZXR1cm4gbjtjb25zdCBoPXQudGltZVNjYWxlKCksZD1lLnByaWNlU2NhbGUoKSx1PXQubWFpblNlcmllcygpLmZpcnN0QmFyKCk7aWYoIWR8fGQuaXNFbXB0eSgpfHxoLmlzRW1wdHkoKXx8IXUpcmV0dXJuIG47Y29uc3QgYz1lLnN0YXJ0SW5kZXgoKSx4PWUuZW5kSW5kZXgoKTtpZihudWxsPT09Y3x8bnVsbD09PXgpcmV0dXJuIG47Y29uc3QgcD1bZS5iYXNlTGluZSgpLGUuZG93bkxpbmUoKSxlLnVwTGluZSgpXSx5PU1hdGgucm91bmQoaC5pbmRleFRvQ29vcmRpbmF0ZShjKSksZj1NYXRoLnJvdW5kKGguaW5kZXhUb0Nvb3JkaW5hdGUoeCkpLGc9ZS5wcm9wZXJ0aWVzKCksXz1bZy5zdHlsZXMuYmFzZUxpbmUsZy5zdHlsZXMuZG93bkxpbmUsZy5zdHlsZXMudXBMaW5lXSx3PXVbNF07Zm9yKGxldCB0PTA7dDxwLmxlbmd0aDt0Kyspe2lmKChfW3RdLmRpc3BsYXkudmFsdWUoKSZyLlN0dWR5UGxvdERpc3BsYXlUYXJnZXQuUGFuZSkhPT1yLlN0dWR5UGxvdERpc3BsYXlUYXJnZXQuUGFuZSljb250aW51ZTtjb25zdCBlPSgwLGkuZW5zdXJlTm90TnVsbCkocFt0XSkuc3RhcnRQcmljZSxvPSgwLGkuZW5zdXJlTm90TnVsbCkocFt0XSkuZW5kUHJpY2U7aWYodm9pZCAwPT09ZXx8dm9pZCAwPT09byljb250aW51ZTtjb25zdCBsPWQucHJpY2VUb0Nvb3JkaW5hdGUoZSx3KSxoPWQucHJpY2VUb0Nvb3JkaW5hdGUobyx3KSx1PXtwb2ludHM6W25ldyBhLlBvaW50KHksbCksbmV3IGEuUG9pbnQoZixoKV0sY29sb3I6X1t0XS5jb2xvci52YWx1ZSgpLGxpbmV3aWR0aDpfW3RdLmxpbmV3aWR0aC52YWx1ZSgpLGxpbmVzdHlsZTpfW3RdLmxpbmVzdHlsZS52YWx1ZSgpLGV4dGVuZGxlZnQ6ITEsZXh0ZW5kcmlnaHQ6Zy5zdHlsZXMuZXh0ZW5kTGluZXMudmFsdWUoKSxsZWZ0ZW5kOnMuTGluZUVuZC5Ob3JtYWwscmlnaHRlbmQ6cy5MaW5lRW5kLk5vcm1hbH07bi5saW5lcy5wdXNoKHUpfWNvbnN0IFA9KDAsaS5lbnN1cmVOb3ROdWxsKShlLmRvd25MaW5lKCkpO2lmKGcuc3R5bGVzLnNob3dQZWFyc29ucy52YWx1ZSgpJiZ2b2lkIDAhPT1QLnN0YXJ0UHJpY2Upe2NvbnN0IHQ9ZC5wcmljZVRvQ29vcmRpbmF0ZShQLnN0YXJ0UHJpY2UsdyksaT1uZXcgYS5Qb2ludCh5LHQpO24ucGVhcnNvbnM9e3BvaW50czpbaV0sdGV4dDoiIitlLnBlYXJzb25zKCksY29sb3I6Zy5zdHlsZXMuZG93bkxpbmUuY29sb3IudmFsdWUoKSx2ZXJ0QWxpZ246by5WZXJ0aWNhbEFsaWduLlRvcCxob3J6QWxpZ246by5Ib3Jpem9udGFsQWxpZ24uQ2VudGVyLGZvbnQ6bC5DSEFSVF9GT05UX0ZBTUlMWV9XVi52YWx1ZSgpLG9mZnNldFg6MCxvZmZzZXRZOjQsZm9udHNpemU6MTJ9fXJldHVybiBufX0sNzM3MzcxKHQsZSxuKXtuLmQoZSx7ZGVmYXVsdDooKT0+b30pO2NvbnN0IGk9ZnVuY3Rpb24odCxlKXtmb3IodmFyIG4saT0tMSxhPXQubGVuZ3RoOysraTxhOyl7dmFyIG89ZSh0W2ldKTt2b2lkIDAhPT1vJiYobj12b2lkIDA9PT1uP286bitvKX1yZXR1cm4gbn07dmFyIGE9bigyMzI4NTQpO2NvbnN0IG89ZnVuY3Rpb24odCl7cmV0dXJuIHQmJnQubGVuZ3RoP2kodCxhLmRlZmF1bHQpOjB9fX1dKTs="}},"time_used":2,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/32387.47ace83c61a884341cd6.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:13.805Z","timestamp":1785148033805,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/32387.47ace83c61a884341cd6.js HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:13 GMT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding, Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\netag: W/\"69f98b73-205c8\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Tue, 05 May 2026 06:17:23 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.51\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 05/05/2026 10:16:23\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: c16fbad69384fea9eb110361d1e9a6d3\r\ncdn-cache: HIT\r\ncontent-encoding: br\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":132552,"size_decoded":45612,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (3072)","md5":"6ca36e244c390f41edaabac69e09f117","sha1":"8cfcf1d847ab9d43572b0f37ce475fca4bba1dbd","sha256":"fb8f00815532561e6403dfa828baaf51b380bfdf9f9c92754695c2cfe989db60","sha512":"9d1bd8f2293d36779a4c8cc18dd6650a7b35228b865226f0071eb07da8a810a5bc9aebd1cd29957a9fdd12cab5df40ab9fbbd7d68ac374e023c356b4178e4e3d","ssdeep":"1536:pvqY4wv/eXX5nEIk5JGA1SpxhDGougC6dZJUz3wA3ovSuHpL+:pyIscb61Uz3wGZML+","tlshash":"6bd3f7e83996f6526ab7126700ef1807733c1a1b280c4960a615fd8e75b842fb17bfdd","first_seen":"2026-05-05T10:36:04.869805Z","last_seen":"2026-07-27T12:57:37.154187Z","times_seen":2554,"resource_available":true,"data":"InVzZSBzdHJpY3QiOyhzZWxmLndlYnBhY2tDaHVua3RyYWRpbmd2aWV3PXNlbGYud2VicGFja0NodW5rdHJhZGluZ3ZpZXd8fFtdKS5wdXNoKFtbMzIzODddLHs1MzIzODcoZSxuLHQpe3ZhciByPXQoNzc5NDc0KSxsPXQoMTgyNjE0KTtmdW5jdGlvbiBhKGUpe2Zvcih2YXIgbj0iaHR0cHM6Ly9yZWFjdGpzLm9yZy9kb2NzL2Vycm9yLWRlY29kZXIuaHRtbD9pbnZhcmlhbnQ9IitlLHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKW4rPSImYXJnc1tdPSIrZW5jb2RlVVJJQ29tcG9uZW50KGFyZ3VtZW50c1t0XSk7cmV0dXJuIk1pbmlmaWVkIFJlYWN0IGVycm9yICMiK2UrIjsgdmlzaXQgIituKyIgZm9yIHRoZSBmdWxsIG1lc3NhZ2Ugb3IgdXNlIHRoZSBub24tbWluaWZpZWQgZGV2IGVudmlyb25tZW50IGZvciBmdWxsIGVycm9ycyBhbmQgYWRkaXRpb25hbCBoZWxwZnVsIHdhcm5pbmdzLiJ9dmFyIHU9bmV3IFNldCxvPXt9O2Z1bmN0aW9uIGkoZSxuKXtzKGUsbikscyhlKyJDYXB0dXJlIixuKX1mdW5jdGlvbiBzKGUsbil7Zm9yKG9bZV09bixlPTA7ZTxuLmxlbmd0aDtlKyspdS5hZGQobltlXSl9dmFyIGM9ISgidW5kZWZpbmVkIj09dHlwZW9mIHdpbmRvd3x8dm9pZCAwPT09d2luZG93LmRvY3VtZW50fHx2b2lkIDA9PT13aW5kb3cuZG9jdW1lbnQuY3JlYXRlRWxlbWVudCksZj1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LGQ9L15bOkEtWl9hLXpcdTAwQzAtXHUwMEQ2XHUwMEQ4LVx1MDBGNlx1MDBGOC1cdTAyRkZcdTAzNzAtXHUwMzdEXHUwMzdGLVx1MUZGRlx1MjAwQy1cdTIwMERcdTIwNzAtXHUyMThGXHUyQzAwLVx1MkZFRlx1MzAwMS1cdUQ3RkZcdUY5MDAtXHVGRENGXHVGREYwLVx1RkZGRF1bOkEtWl9hLXpcdTAwQzAtXHUwMEQ2XHUwMEQ4LVx1MDBGNlx1MDBGOC1cdTAyRkZcdTAzNzAtXHUwMzdEXHUwMzdGLVx1MUZGRlx1MjAwQy1cdTIwMERcdTIwNzAtXHUyMThGXHUyQzAwLVx1MkZFRlx1MzAwMS1cdUQ3RkZcdUY5MDAtXHVGRENGXHVGREYwLVx1RkZGRFwtLjAtOVx1MDBCN1x1MDMwMC1cdTAzNkZcdTIwM0YtXHUyMDQwXSokLyxwPXt9LG09e307ZnVuY3Rpb24gaChlLG4sdCxyLGwsYSx1KXt0aGlzLmFjY2VwdHNCb29sZWFucz0yPT09bnx8Mz09PW58fDQ9PT1uLHRoaXMuYXR0cmlidXRlTmFtZT1yLHRoaXMuYXR0cmlidXRlTmFtZXNwYWNlPWwsdGhpcy5tdXN0VXNlUHJvcGVydHk9dCx0aGlzLnByb3BlcnR5TmFtZT1lLHRoaXMudHlwZT1uLHRoaXMuc2FuaXRpemVVUkw9YSx0aGlzLnJlbW92ZUVtcHR5U3RyaW5nPXV9dmFyIGc9e307ImNoaWxkcmVuIGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MIGRlZmF1bHRWYWx1ZSBkZWZhdWx0Q2hlY2tlZCBpbm5lckhUTUwgc3VwcHJlc3NDb250ZW50RWRpdGFibGVXYXJuaW5nIHN1cHByZXNzSHlkcmF0aW9uV2FybmluZyBzdHlsZSIuc3BsaXQoIiAiKS5mb3JFYWNoKChmdW5jdGlvbihlKXtnW2VdPW5ldyBoKGUsMCwhMSxlLG51bGwsITEsITEpfSkpLFtbImFjY2VwdENoYXJzZXQiLCJhY2NlcHQtY2hhcnNldCJdLFsiY2xhc3NOYW1lIiwiY2xhc3MiXSxbImh0bWxGb3IiLCJmb3IiXSxbImh0dHBFcXVpdiIsImh0dHAtZXF1aXYiXV0uZm9yRWFjaCgoZnVuY3Rpb24oZSl7dmFyIG49ZVswXTtnW25dPW5ldyBoKG4sMSwhMSxlWzFdLG51bGwsITEsITEpfSkpLFsiY29udGVudEVkaXRhYmxlIiwiZHJhZ2dhYmxlIiwic3BlbGxDaGVjayIsInZhbHVlIl0uZm9yRWFjaCgoZnVuY3Rpb24oZSl7Z1tlXT1uZXcgaChlLDIsITEsZS50b0xvd2VyQ2FzZSgpLG51bGwsITEsITEpfSkpLFsiYXV0b1JldmVyc2UiLCJleHRlcm5hbFJlc291cmNlc1JlcXVpcmVkIiwiZm9jdXNhYmxlIiwicHJlc2VydmVBbHBoYSJdLmZvckVhY2goKGZ1bmN0aW9uKGUpe2dbZV09bmV3IGgoZSwyLCExLGUsbnVsbCwhMSwhMSl9KSksImFsbG93RnVsbFNjcmVlbiBhc3luYyBhdXRvRm9jdXMgYXV0b1BsYXkgY29udHJvbHMgZGVmYXVsdCBkZWZlciBkaXNhYmxlZCBkaXNhYmxlUGljdHVyZUluUGljdHVyZSBkaXNhYmxlUmVtb3RlUGxheWJhY2sgZm9ybU5vVmFsaWRhdGUgaGlkZGVuIGxvb3Agbm9Nb2R1bGUgbm9WYWxpZGF0ZSBvcGVuIHBsYXlzSW5saW5lIHJlYWRPbmx5IHJlcXVpcmVkIHJldmVyc2VkIHNjb3BlZCBzZWFtbGVzcyBpdGVtU2NvcGUiLnNwbGl0KCIgIikuZm9yRWFjaCgoZnVuY3Rpb24oZSl7Z1tlXT1uZXcgaChlLDMsITEsZS50b0xvd2VyQ2FzZSgpLG51bGwsITEsITEpfSkpLFsiY2hlY2tlZCIsIm11bHRpcGxlIiwibXV0ZWQiLCJzZWxlY3RlZCJdLmZvckVhY2goKGZ1bmN0aW9uKGUpe2dbZV09bmV3IGgoZSwzLCEwLGUsbnVsbCwhMSwhMSl9KSksWyJjYXB0dXJlIiwiZG93bmxvYWQiXS5mb3JFYWNoKChmdW5jdGlvbihlKXtnW2VdPW5ldyBoKGUsNCwhMSxlLG51bGwsITEsITEpfSkpLFsiY29scyIsInJvd3MiLCJzaXplIiwic3BhbiJdLmZvckVhY2goKGZ1bmN0aW9uKGUpe2dbZV09bmV3IGgoZSw2LCExLGUsbnVsbCwhMSwhMSl9KSksWyJyb3dTcGFuIiwic3RhcnQiXS5mb3JFYWNoKChmdW5jdGlvbihlKXtnW2VdPW5ldyBoKGUsNSwhMSxlLnRvTG93ZXJDYXNlKCksbnVsbCwhMSwhMSl9KSk7dmFyIHY9L1tcLTpdKFthLXpdKS9nO2Z1bmN0aW9uIHkoZSl7cmV0dXJuIGVbMV0udG9VcHBlckNhc2UoKX1mdW5jdGlvbiBiKGUsbix0LHIpe3ZhciBsPWcuaGFzT3duUHJvcGVydHkobik/Z1tuXTpudWxsOyhudWxsIT09bD8wIT09bC50eXBlOnJ8fCEoMjxuLmxlbmd0aCl8fCJvIiE9PW5bMF0mJiJPIiE9PW5bMF18fCJuIiE9PW5bMV0mJiJOIiE9PW5bMV0pJiYoZnVuY3Rpb24oZSxuLHQscil7aWYobnVsbD09bnx8ZnVuY3Rpb24oZSxuLHQscil7aWYobnVsbCE9PXQmJjA9PT10LnR5cGUpcmV0dXJuITE7c3dpdGNoKHR5cGVvZiBuKXtjYXNlImZ1bmN0aW9uIjpjYXNlInN5bWJvbCI6cmV0dXJuITA7Y2FzZSJib29sZWFuIjpyZXR1cm4hciYmKG51bGwhPT10PyF0LmFjY2VwdHNCb29sZWFuczoiZGF0YS0iIT09KGU9ZS50b0xvd2VyQ2FzZSgpLnNsaWNlKDAsNSkpJiYiYXJpYS0iIT09ZSk7ZGVmYXVsdDpyZXR1cm4hMX19KGUsbix0LHIpKXJldHVybiEwCjtpZihyKXJldHVybiExO2lmKG51bGwhPT10KXN3aXRjaCh0LnR5cGUpe2Nhc2UgMzpyZXR1cm4hbjtjYXNlIDQ6cmV0dXJuITE9PT1uO2Nhc2UgNTpyZXR1cm4gaXNOYU4obik7Y2FzZSA2OnJldHVybiBpc05hTihuKXx8MT5ufXJldHVybiExfShuLHQsbCxyKSYmKHQ9bnVsbCkscnx8bnVsbD09PWw/ZnVuY3Rpb24oZSl7cmV0dXJuISFmLmNhbGwobSxlKXx8IWYuY2FsbChwLGUpJiYoZC50ZXN0KGUpP21bZV09ITA6KHBbZV09ITAsITEpKX0obikmJihudWxsPT09dD9lLnJlbW92ZUF0dHJpYnV0ZShuKTplLnNldEF0dHJpYnV0ZShuLCIiK3QpKTpsLm11c3RVc2VQcm9wZXJ0eT9lW2wucHJvcGVydHlOYW1lXT1udWxsPT09dD8zIT09bC50eXBlJiYiIjp0OihuPWwuYXR0cmlidXRlTmFtZSxyPWwuYXR0cmlidXRlTmFtZXNwYWNlLG51bGw9PT10P2UucmVtb3ZlQXR0cmlidXRlKG4pOih0PTM9PT0obD1sLnR5cGUpfHw0PT09bCYmITA9PT10PyIiOiIiK3Qscj9lLnNldEF0dHJpYnV0ZU5TKHIsbix0KTplLnNldEF0dHJpYnV0ZShuLHQpKSkpfSJhY2NlbnQtaGVpZ2h0IGFsaWdubWVudC1iYXNlbGluZSBhcmFiaWMtZm9ybSBiYXNlbGluZS1zaGlmdCBjYXAtaGVpZ2h0IGNsaXAtcGF0aCBjbGlwLXJ1bGUgY29sb3ItaW50ZXJwb2xhdGlvbiBjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnMgY29sb3ItcHJvZmlsZSBjb2xvci1yZW5kZXJpbmcgZG9taW5hbnQtYmFzZWxpbmUgZW5hYmxlLWJhY2tncm91bmQgZmlsbC1vcGFjaXR5IGZpbGwtcnVsZSBmbG9vZC1jb2xvciBmbG9vZC1vcGFjaXR5IGZvbnQtZmFtaWx5IGZvbnQtc2l6ZSBmb250LXNpemUtYWRqdXN0IGZvbnQtc3RyZXRjaCBmb250LXN0eWxlIGZvbnQtdmFyaWFudCBmb250LXdlaWdodCBnbHlwaC1uYW1lIGdseXBoLW9yaWVudGF0aW9uLWhvcml6b250YWwgZ2x5cGgtb3JpZW50YXRpb24tdmVydGljYWwgaG9yaXotYWR2LXggaG9yaXotb3JpZ2luLXggaW1hZ2UtcmVuZGVyaW5nIGxldHRlci1zcGFjaW5nIGxpZ2h0aW5nLWNvbG9yIG1hcmtlci1lbmQgbWFya2VyLW1pZCBtYXJrZXItc3RhcnQgb3ZlcmxpbmUtcG9zaXRpb24gb3ZlcmxpbmUtdGhpY2tuZXNzIHBhaW50LW9yZGVyIHBhbm9zZS0xIHBvaW50ZXItZXZlbnRzIHJlbmRlcmluZy1pbnRlbnQgc2hhcGUtcmVuZGVyaW5nIHN0b3AtY29sb3Igc3RvcC1vcGFjaXR5IHN0cmlrZXRocm91Z2gtcG9zaXRpb24gc3RyaWtldGhyb3VnaC10aGlja25lc3Mgc3Ryb2tlLWRhc2hhcnJheSBzdHJva2UtZGFzaG9mZnNldCBzdHJva2UtbGluZWNhcCBzdHJva2UtbGluZWpvaW4gc3Ryb2tlLW1pdGVybGltaXQgc3Ryb2tlLW9wYWNpdHkgc3Ryb2tlLXdpZHRoIHRleHQtYW5jaG9yIHRleHQtZGVjb3JhdGlvbiB0ZXh0LXJlbmRlcmluZyB1bmRlcmxpbmUtcG9zaXRpb24gdW5kZXJsaW5lLXRoaWNrbmVzcyB1bmljb2RlLWJpZGkgdW5pY29kZS1yYW5nZSB1bml0cy1wZXItZW0gdi1hbHBoYWJldGljIHYtaGFuZ2luZyB2LWlkZW9ncmFwaGljIHYtbWF0aGVtYXRpY2FsIHZlY3Rvci1lZmZlY3QgdmVydC1hZHYteSB2ZXJ0LW9yaWdpbi14IHZlcnQtb3JpZ2luLXkgd29yZC1zcGFjaW5nIHdyaXRpbmctbW9kZSB4bWxuczp4bGluayB4LWhlaWdodCIuc3BsaXQoIiAiKS5mb3JFYWNoKChmdW5jdGlvbihlKXt2YXIgbj1lLnJlcGxhY2Uodix5KTtnW25dPW5ldyBoKG4sMSwhMSxlLG51bGwsITEsITEpfSkpLCJ4bGluazphY3R1YXRlIHhsaW5rOmFyY3JvbGUgeGxpbms6cm9sZSB4bGluazpzaG93IHhsaW5rOnRpdGxlIHhsaW5rOnR5cGUiLnNwbGl0KCIgIikuZm9yRWFjaCgoZnVuY3Rpb24oZSl7dmFyIG49ZS5yZXBsYWNlKHYseSk7Z1tuXT1uZXcgaChuLDEsITEsZSwiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIsITEsITEpfSkpLFsieG1sOmJhc2UiLCJ4bWw6bGFuZyIsInhtbDpzcGFjZSJdLmZvckVhY2goKGZ1bmN0aW9uKGUpe3ZhciBuPWUucmVwbGFjZSh2LHkpO2dbbl09bmV3IGgobiwxLCExLGUsImh0dHA6Ly93d3cudzMub3JnL1hNTC8xOTk4L25hbWVzcGFjZSIsITEsITEpfSkpLFsidGFiSW5kZXgiLCJjcm9zc09yaWdpbiJdLmZvckVhY2goKGZ1bmN0aW9uKGUpe2dbZV09bmV3IGgoZSwxLCExLGUudG9Mb3dlckNhc2UoKSxudWxsLCExLCExKX0pKSxnLnhsaW5rSHJlZj1uZXcgaCgieGxpbmtIcmVmIiwxLCExLCJ4bGluazpocmVmIiwiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIsITAsITEpLFsic3JjIiwiaHJlZiIsImFjdGlvbiIsImZvcm1BY3Rpb24iXS5mb3JFYWNoKChmdW5jdGlvbihlKXtnW2VdPW5ldyBoKGUsMSwhMSxlLnRvTG93ZXJDYXNlKCksbnVsbCwhMCwhMCl9KSk7dmFyIGs9ci5fX1NFQ1JFVF9JTlRFUk5BTFNfRE9fTk9UX1VTRV9PUl9ZT1VfV0lMTF9CRV9GSVJFRCx3PVN5bWJvbC5mb3IoInJlYWN0LmVsZW1lbnQiKSxTPVN5bWJvbC5mb3IoInJlYWN0LnBvcnRhbCIpLHg9U3ltYm9sLmZvcigicmVhY3QuZnJhZ21lbnQiKSxFPVN5bWJvbC5mb3IoInJlYWN0LnN0cmljdF9tb2RlIiksQz1TeW1ib2wuZm9yKCJyZWFjdC5wcm9maWxlciIpLHo9U3ltYm9sLmZvcigicmVhY3QucHJvdmlkZXIiKSxOPVN5bWJvbC5mb3IoInJlYWN0LmNvbnRleHQiKSxfPVN5bWJvbC5mb3IoInJlYWN0LmZvcndhcmRfcmVmIiksUD1TeW1ib2wuZm9yKCJyZWFjdC5zdXNwZW5zZSIpLFQ9U3ltYm9sLmZvcigicmVhY3Quc3VzcGVuc2VfbGlzdCIpLEw9U3ltYm9sLmZvcigicmVhY3QubWVtbyIpLE09U3ltYm9sLmZvcigicmVhY3QubGF6eSIpO1N5bWJvbC5mb3IoInJlYWN0LnNjb3BlIiksU3ltYm9sLmZvcigicmVhY3QuZGVidWdfdHJhY2VfbW9kZSIpO3ZhciBGPVN5bWJvbC5mb3IoInJlYWN0Lm9mZnNjcmVlbiIpO1N5bWJvbC5mb3IoInJlYWN0LmxlZ2FjeV9oaWRkZW4iKSxTeW1ib2wuZm9yKCJyZWFjdC5jYWNoZSIpLFN5bWJvbC5mb3IoInJlYWN0LnRyYWNpbmdfbWFya2VyIik7dmFyIFI9U3ltYm9sLml0ZXJhdG9yO2Z1bmN0aW9uIEQoZSl7CnJldHVybiBudWxsPT09ZXx8Im9iamVjdCIhPXR5cGVvZiBlP251bGw6ImZ1bmN0aW9uIj09dHlwZW9mKGU9UiYmZVtSXXx8ZVsiQEBpdGVyYXRvciJdKT9lOm51bGx9dmFyIEksTz1PYmplY3QuYXNzaWduO2Z1bmN0aW9uIFUoZSl7aWYodm9pZCAwPT09SSl0cnl7dGhyb3cgRXJyb3IoKX1jYXRjaChlKXt2YXIgbj1lLnN0YWNrLnRyaW0oKS5tYXRjaCgvXG4oICooYXQgKT8pLyk7ST1uJiZuWzFdfHwiIn1yZXR1cm4iXG4iK0krZX12YXIgVj0hMTtmdW5jdGlvbiBBKGUsbil7aWYoIWV8fFYpcmV0dXJuIiI7Vj0hMDt2YXIgdD1FcnJvci5wcmVwYXJlU3RhY2tUcmFjZTtFcnJvci5wcmVwYXJlU3RhY2tUcmFjZT12b2lkIDA7dHJ5e2lmKG4paWYobj1mdW5jdGlvbigpe3Rocm93IEVycm9yKCl9LE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLnByb3RvdHlwZSwicHJvcHMiLHtzZXQ6ZnVuY3Rpb24oKXt0aHJvdyBFcnJvcigpfX0pLCJvYmplY3QiPT10eXBlb2YgUmVmbGVjdCYmUmVmbGVjdC5jb25zdHJ1Y3Qpe3RyeXtSZWZsZWN0LmNvbnN0cnVjdChuLFtdKX1jYXRjaChlKXt2YXIgcj1lfVJlZmxlY3QuY29uc3RydWN0KGUsW10sbil9ZWxzZXt0cnl7bi5jYWxsKCl9Y2F0Y2goZSl7cj1lfWUuY2FsbChuLnByb3RvdHlwZSl9ZWxzZXt0cnl7dGhyb3cgRXJyb3IoKX1jYXRjaChlKXtyPWV9ZSgpfX1jYXRjaChuKXtpZihuJiZyJiYic3RyaW5nIj09dHlwZW9mIG4uc3RhY2spe2Zvcih2YXIgbD1uLnN0YWNrLnNwbGl0KCJcbiIpLGE9ci5zdGFjay5zcGxpdCgiXG4iKSx1PWwubGVuZ3RoLTEsbz1hLmxlbmd0aC0xOzE8PXUmJjA8PW8mJmxbdV0hPT1hW29dOylvLS07Zm9yKDsxPD11JiYwPD1vO3UtLSxvLS0paWYobFt1XSE9PWFbb10pe2lmKDEhPT11fHwxIT09bylkb3tpZih1LS0sMD4tLW98fGxbdV0hPT1hW29dKXt2YXIgaT0iXG4iK2xbdV0ucmVwbGFjZSgiIGF0IG5ldyAiLCIgYXQgIik7cmV0dXJuIGUuZGlzcGxheU5hbWUmJmkuaW5jbHVkZXMoIjxhbm9ueW1vdXM+IikmJihpPWkucmVwbGFjZSgiPGFub255bW91cz4iLGUuZGlzcGxheU5hbWUpKSxpfX13aGlsZSgxPD11JiYwPD1vKTticmVha319fWZpbmFsbHl7Vj0hMSxFcnJvci5wcmVwYXJlU3RhY2tUcmFjZT10fXJldHVybihlPWU/ZS5kaXNwbGF5TmFtZXx8ZS5uYW1lOiIiKT9VKGUpOiIifWZ1bmN0aW9uIEIoZSl7c3dpdGNoKGUudGFnKXtjYXNlIDU6cmV0dXJuIFUoZS50eXBlKTtjYXNlIDE2OnJldHVybiBVKCJMYXp5Iik7Y2FzZSAxMzpyZXR1cm4gVSgiU3VzcGVuc2UiKTtjYXNlIDE5OnJldHVybiBVKCJTdXNwZW5zZUxpc3QiKTtjYXNlIDA6Y2FzZSAyOmNhc2UgMTU6cmV0dXJuIGU9QShlLnR5cGUsITEpO2Nhc2UgMTE6cmV0dXJuIGU9QShlLnR5cGUucmVuZGVyLCExKTtjYXNlIDE6cmV0dXJuIGU9QShlLnR5cGUsITApO2RlZmF1bHQ6cmV0dXJuIiJ9fWZ1bmN0aW9uIFcoZSl7aWYobnVsbD09ZSlyZXR1cm4gbnVsbDtpZigiZnVuY3Rpb24iPT10eXBlb2YgZSlyZXR1cm4gZS5kaXNwbGF5TmFtZXx8ZS5uYW1lfHxudWxsO2lmKCJzdHJpbmciPT10eXBlb2YgZSlyZXR1cm4gZTtzd2l0Y2goZSl7Y2FzZSB4OnJldHVybiJGcmFnbWVudCI7Y2FzZSBTOnJldHVybiJQb3J0YWwiO2Nhc2UgQzpyZXR1cm4iUHJvZmlsZXIiO2Nhc2UgRTpyZXR1cm4iU3RyaWN0TW9kZSI7Y2FzZSBQOnJldHVybiJTdXNwZW5zZSI7Y2FzZSBUOnJldHVybiJTdXNwZW5zZUxpc3QifWlmKCJvYmplY3QiPT10eXBlb2YgZSlzd2l0Y2goZS4kJHR5cGVvZil7Y2FzZSBOOnJldHVybihlLmRpc3BsYXlOYW1lfHwiQ29udGV4dCIpKyIuQ29uc3VtZXIiO2Nhc2UgejpyZXR1cm4oZS5fY29udGV4dC5kaXNwbGF5TmFtZXx8IkNvbnRleHQiKSsiLlByb3ZpZGVyIjtjYXNlIF86dmFyIG49ZS5yZW5kZXI7cmV0dXJuKGU9ZS5kaXNwbGF5TmFtZSl8fChlPSIiIT09KGU9bi5kaXNwbGF5TmFtZXx8bi5uYW1lfHwiIik/IkZvcndhcmRSZWYoIitlKyIpIjoiRm9yd2FyZFJlZiIpLGU7Y2FzZSBMOnJldHVybiBudWxsIT09KG49ZS5kaXNwbGF5TmFtZXx8bnVsbCk/bjpXKGUudHlwZSl8fCJNZW1vIjtjYXNlIE06bj1lLl9wYXlsb2FkLGU9ZS5faW5pdDt0cnl7cmV0dXJuIFcoZShuKSl9Y2F0Y2goZSl7fX1yZXR1cm4gbnVsbH1mdW5jdGlvbiBIKGUpe3ZhciBuPWUudHlwZTtzd2l0Y2goZS50YWcpe2Nhc2UgMjQ6cmV0dXJuIkNhY2hlIjtjYXNlIDk6cmV0dXJuKG4uZGlzcGxheU5hbWV8fCJDb250ZXh0IikrIi5Db25zdW1lciI7Y2FzZSAxMDpyZXR1cm4obi5fY29udGV4dC5kaXNwbGF5TmFtZXx8IkNvbnRleHQiKSsiLlByb3ZpZGVyIjtjYXNlIDE4OnJldHVybiJEZWh5ZHJhdGVkRnJhZ21lbnQiO2Nhc2UgMTE6cmV0dXJuIGU9KGU9bi5yZW5kZXIpLmRpc3BsYXlOYW1lfHxlLm5hbWV8fCIiLG4uZGlzcGxheU5hbWV8fCgiIiE9PWU/IkZvcndhcmRSZWYoIitlKyIpIjoiRm9yd2FyZFJlZiIpO2Nhc2UgNzpyZXR1cm4iRnJhZ21lbnQiO2Nhc2UgNTpyZXR1cm4gbjtjYXNlIDQ6cmV0dXJuIlBvcnRhbCI7Y2FzZSAzOnJldHVybiJSb290IjtjYXNlIDY6cmV0dXJuIlRleHQiO2Nhc2UgMTY6cmV0dXJuIFcobik7Y2FzZSA4OnJldHVybiBuPT09RT8iU3RyaWN0TW9kZSI6Ik1vZGUiO2Nhc2UgMjI6cmV0dXJuIk9mZnNjcmVlbiI7Y2FzZSAxMjpyZXR1cm4iUHJvZmlsZXIiO2Nhc2UgMjE6cmV0dXJuIlNjb3BlIjtjYXNlIDEzOnJldHVybiJTdXNwZW5zZSI7Y2FzZSAxOTpyZXR1cm4iU3VzcGVuc2VMaXN0IjtjYXNlIDI1OnJldHVybiJUcmFjaW5nTWFya2VyIjtjYXNlIDE6Y2FzZSAwOmNhc2UgMTc6Y2FzZSAyOmNhc2UgMTQ6Y2FzZSAxNTppZigiZnVuY3Rpb24iPT10eXBlb2YgbilyZXR1cm4gbi5kaXNwbGF5TmFtZXx8bi5uYW1lfHxudWxsO2lmKCJzdHJpbmciPT10eXBlb2YgbilyZXR1cm4gbn1yZXR1cm4gbnVsbH1mdW5jdGlvbiBRKGUpe3N3aXRjaCh0eXBlb2YgZSl7Y2FzZSJib29sZWFuIjpjYXNlIm51bWJlciI6Y2FzZSJzdHJpbmciOmNhc2UidW5kZWZpbmVkIjpjYXNlIm9iamVjdCI6cmV0dXJuIGU7ZGVmYXVsdDpyZXR1cm4iIn19ZnVuY3Rpb24gaihlKXt2YXIgbj1lLnR5cGUKO3JldHVybihlPWUubm9kZU5hbWUpJiYiaW5wdXQiPT09ZS50b0xvd2VyQ2FzZSgpJiYoImNoZWNrYm94Ij09PW58fCJyYWRpbyI9PT1uKX1mdW5jdGlvbiAkKGUpe2UuX3ZhbHVlVHJhY2tlcnx8KGUuX3ZhbHVlVHJhY2tlcj1mdW5jdGlvbihlKXt2YXIgbj1qKGUpPyJjaGVja2VkIjoidmFsdWUiLHQ9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlLmNvbnN0cnVjdG9yLnByb3RvdHlwZSxuKSxyPSIiK2Vbbl07aWYoIWUuaGFzT3duUHJvcGVydHkobikmJnZvaWQgMCE9PXQmJiJmdW5jdGlvbiI9PXR5cGVvZiB0LmdldCYmImZ1bmN0aW9uIj09dHlwZW9mIHQuc2V0KXt2YXIgbD10LmdldCxhPXQuc2V0O3JldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxuLHtjb25maWd1cmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGwuY2FsbCh0aGlzKX0sc2V0OmZ1bmN0aW9uKGUpe3I9IiIrZSxhLmNhbGwodGhpcyxlKX19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxuLHtlbnVtZXJhYmxlOnQuZW51bWVyYWJsZX0pLHtnZXRWYWx1ZTpmdW5jdGlvbigpe3JldHVybiByfSxzZXRWYWx1ZTpmdW5jdGlvbihlKXtyPSIiK2V9LHN0b3BUcmFja2luZzpmdW5jdGlvbigpe2UuX3ZhbHVlVHJhY2tlcj1udWxsLGRlbGV0ZSBlW25dfX19fShlKSl9ZnVuY3Rpb24gcShlKXtpZighZSlyZXR1cm4hMTt2YXIgbj1lLl92YWx1ZVRyYWNrZXI7aWYoIW4pcmV0dXJuITA7dmFyIHQ9bi5nZXRWYWx1ZSgpLHI9IiI7cmV0dXJuIGUmJihyPWooZSk/ZS5jaGVja2VkPyJ0cnVlIjoiZmFsc2UiOmUudmFsdWUpLChlPXIpIT09dCYmKG4uc2V0VmFsdWUoZSksITApfWZ1bmN0aW9uIEsoZSl7aWYodm9pZCAwPT09KGU9ZXx8KCJ1bmRlZmluZWQiIT10eXBlb2YgZG9jdW1lbnQ/ZG9jdW1lbnQ6dm9pZCAwKSkpcmV0dXJuIG51bGw7dHJ5e3JldHVybiBlLmFjdGl2ZUVsZW1lbnR8fGUuYm9keX1jYXRjaChuKXtyZXR1cm4gZS5ib2R5fX1mdW5jdGlvbiBZKGUsbil7dmFyIHQ9bi5jaGVja2VkO3JldHVybiBPKHt9LG4se2RlZmF1bHRDaGVja2VkOnZvaWQgMCxkZWZhdWx0VmFsdWU6dm9pZCAwLHZhbHVlOnZvaWQgMCxjaGVja2VkOm51bGwhPXQ/dDplLl93cmFwcGVyU3RhdGUuaW5pdGlhbENoZWNrZWR9KX1mdW5jdGlvbiBYKGUsbil7dmFyIHQ9bnVsbD09bi5kZWZhdWx0VmFsdWU/IiI6bi5kZWZhdWx0VmFsdWUscj1udWxsIT1uLmNoZWNrZWQ/bi5jaGVja2VkOm4uZGVmYXVsdENoZWNrZWQ7dD1RKG51bGwhPW4udmFsdWU/bi52YWx1ZTp0KSxlLl93cmFwcGVyU3RhdGU9e2luaXRpYWxDaGVja2VkOnIsaW5pdGlhbFZhbHVlOnQsY29udHJvbGxlZDoiY2hlY2tib3giPT09bi50eXBlfHwicmFkaW8iPT09bi50eXBlP251bGwhPW4uY2hlY2tlZDpudWxsIT1uLnZhbHVlfX1mdW5jdGlvbiBHKGUsbil7bnVsbCE9KG49bi5jaGVja2VkKSYmYihlLCJjaGVja2VkIixuLCExKX1mdW5jdGlvbiBaKGUsbil7RyhlLG4pO3ZhciB0PVEobi52YWx1ZSkscj1uLnR5cGU7aWYobnVsbCE9dCkibnVtYmVyIj09PXI/KDA9PT10JiYiIj09PWUudmFsdWV8fGUudmFsdWUhPXQpJiYoZS52YWx1ZT0iIit0KTplLnZhbHVlIT09IiIrdCYmKGUudmFsdWU9IiIrdCk7ZWxzZSBpZigic3VibWl0Ij09PXJ8fCJyZXNldCI9PT1yKXJldHVybiB2b2lkIGUucmVtb3ZlQXR0cmlidXRlKCJ2YWx1ZSIpO24uaGFzT3duUHJvcGVydHkoInZhbHVlIik/ZWUoZSxuLnR5cGUsdCk6bi5oYXNPd25Qcm9wZXJ0eSgiZGVmYXVsdFZhbHVlIikmJmVlKGUsbi50eXBlLFEobi5kZWZhdWx0VmFsdWUpKSxudWxsPT1uLmNoZWNrZWQmJm51bGwhPW4uZGVmYXVsdENoZWNrZWQmJihlLmRlZmF1bHRDaGVja2VkPSEhbi5kZWZhdWx0Q2hlY2tlZCl9ZnVuY3Rpb24gSihlLG4sdCl7aWYobi5oYXNPd25Qcm9wZXJ0eSgidmFsdWUiKXx8bi5oYXNPd25Qcm9wZXJ0eSgiZGVmYXVsdFZhbHVlIikpe3ZhciByPW4udHlwZTtpZighKCJzdWJtaXQiIT09ciYmInJlc2V0IiE9PXJ8fHZvaWQgMCE9PW4udmFsdWUmJm51bGwhPT1uLnZhbHVlKSlyZXR1cm47bj0iIitlLl93cmFwcGVyU3RhdGUuaW5pdGlhbFZhbHVlLHR8fG49PT1lLnZhbHVlfHwoZS52YWx1ZT1uKSxlLmRlZmF1bHRWYWx1ZT1ufSIiIT09KHQ9ZS5uYW1lKSYmKGUubmFtZT0iIiksZS5kZWZhdWx0Q2hlY2tlZD0hIWUuX3dyYXBwZXJTdGF0ZS5pbml0aWFsQ2hlY2tlZCwiIiE9PXQmJihlLm5hbWU9dCl9ZnVuY3Rpb24gZWUoZSxuLHQpeyJudW1iZXIiPT09biYmSyhlLm93bmVyRG9jdW1lbnQpPT09ZXx8KG51bGw9PXQ/ZS5kZWZhdWx0VmFsdWU9IiIrZS5fd3JhcHBlclN0YXRlLmluaXRpYWxWYWx1ZTplLmRlZmF1bHRWYWx1ZSE9PSIiK3QmJihlLmRlZmF1bHRWYWx1ZT0iIit0KSl9dmFyIG5lPUFycmF5LmlzQXJyYXk7ZnVuY3Rpb24gdGUoZSxuLHQscil7aWYoZT1lLm9wdGlvbnMsbil7bj17fTtmb3IodmFyIGw9MDtsPHQubGVuZ3RoO2wrKyluWyIkIit0W2xdXT0hMDtmb3IodD0wO3Q8ZS5sZW5ndGg7dCsrKWw9bi5oYXNPd25Qcm9wZXJ0eSgiJCIrZVt0XS52YWx1ZSksZVt0XS5zZWxlY3RlZCE9PWwmJihlW3RdLnNlbGVjdGVkPWwpLGwmJnImJihlW3RdLmRlZmF1bHRTZWxlY3RlZD0hMCl9ZWxzZXtmb3IodD0iIitRKHQpLG49bnVsbCxsPTA7bDxlLmxlbmd0aDtsKyspe2lmKGVbbF0udmFsdWU9PT10KXJldHVybiBlW2xdLnNlbGVjdGVkPSEwLHZvaWQociYmKGVbbF0uZGVmYXVsdFNlbGVjdGVkPSEwKSk7bnVsbCE9PW58fGVbbF0uZGlzYWJsZWR8fChuPWVbbF0pfW51bGwhPT1uJiYobi5zZWxlY3RlZD0hMCl9fWZ1bmN0aW9uIHJlKGUsbil7aWYobnVsbCE9bi5kYW5nZXJvdXNseVNldElubmVySFRNTCl0aHJvdyBFcnJvcihhKDkxKSk7cmV0dXJuIE8oe30sbix7dmFsdWU6dm9pZCAwLGRlZmF1bHRWYWx1ZTp2b2lkIDAsY2hpbGRyZW46IiIrZS5fd3JhcHBlclN0YXRlLmluaXRpYWxWYWx1ZX0pfWZ1bmN0aW9uIGxlKGUsbil7dmFyIHQ9bi52YWx1ZTtpZihudWxsPT10KXtpZih0PW4uY2hpbGRyZW4sbj1uLmRlZmF1bHRWYWx1ZSxudWxsIT10KXtpZihudWxsIT1uKXRocm93IEVycm9yKGEoOTIpKTtpZihuZSh0KSl7CmlmKDE8dC5sZW5ndGgpdGhyb3cgRXJyb3IoYSg5MykpO3Q9dFswXX1uPXR9bnVsbD09biYmKG49IiIpLHQ9bn1lLl93cmFwcGVyU3RhdGU9e2luaXRpYWxWYWx1ZTpRKHQpfX1mdW5jdGlvbiBhZShlLG4pe3ZhciB0PVEobi52YWx1ZSkscj1RKG4uZGVmYXVsdFZhbHVlKTtudWxsIT10JiYoKHQ9IiIrdCkhPT1lLnZhbHVlJiYoZS52YWx1ZT10KSxudWxsPT1uLmRlZmF1bHRWYWx1ZSYmZS5kZWZhdWx0VmFsdWUhPT10JiYoZS5kZWZhdWx0VmFsdWU9dCkpLG51bGwhPXImJihlLmRlZmF1bHRWYWx1ZT0iIityKX1mdW5jdGlvbiB1ZShlKXt2YXIgbj1lLnRleHRDb250ZW50O249PT1lLl93cmFwcGVyU3RhdGUuaW5pdGlhbFZhbHVlJiYiIiE9PW4mJm51bGwhPT1uJiYoZS52YWx1ZT1uKX1mdW5jdGlvbiBvZShlKXtzd2l0Y2goZSl7Y2FzZSJzdmciOnJldHVybiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI7Y2FzZSJtYXRoIjpyZXR1cm4iaHR0cDovL3d3dy53My5vcmcvMTk5OC9NYXRoL01hdGhNTCI7ZGVmYXVsdDpyZXR1cm4iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCJ9fWZ1bmN0aW9uIGllKGUsbil7cmV0dXJuIG51bGw9PWV8fCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj09PWU/b2Uobik6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj09PWUmJiJmb3JlaWduT2JqZWN0Ij09PW4/Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiOmV9dmFyIHNlLGNlLGZlPShjZT1mdW5jdGlvbihlLG4pe2lmKCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIhPT1lLm5hbWVzcGFjZVVSSXx8ImlubmVySFRNTCJpbiBlKWUuaW5uZXJIVE1MPW47ZWxzZXtmb3IoKHNlPXNlfHxkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSkuaW5uZXJIVE1MPSI8c3ZnPiIrbi52YWx1ZU9mKCkudG9TdHJpbmcoKSsiPC9zdmc+IixuPXNlLmZpcnN0Q2hpbGQ7ZS5maXJzdENoaWxkOyllLnJlbW92ZUNoaWxkKGUuZmlyc3RDaGlsZCk7Zm9yKDtuLmZpcnN0Q2hpbGQ7KWUuYXBwZW5kQ2hpbGQobi5maXJzdENoaWxkKX19LCJ1bmRlZmluZWQiIT10eXBlb2YgTVNBcHAmJk1TQXBwLmV4ZWNVbnNhZmVMb2NhbEZ1bmN0aW9uP2Z1bmN0aW9uKGUsbix0LHIpe01TQXBwLmV4ZWNVbnNhZmVMb2NhbEZ1bmN0aW9uKChmdW5jdGlvbigpe3JldHVybiBjZShlLG4pfSkpfTpjZSk7ZnVuY3Rpb24gZGUoZSxuKXtpZihuKXt2YXIgdD1lLmZpcnN0Q2hpbGQ7aWYodCYmdD09PWUubGFzdENoaWxkJiYzPT09dC5ub2RlVHlwZSlyZXR1cm4gdm9pZCh0Lm5vZGVWYWx1ZT1uKX1lLnRleHRDb250ZW50PW59dmFyIHBlPXthbmltYXRpb25JdGVyYXRpb25Db3VudDohMCxhc3BlY3RSYXRpbzohMCxib3JkZXJJbWFnZU91dHNldDohMCxib3JkZXJJbWFnZVNsaWNlOiEwLGJvcmRlckltYWdlV2lkdGg6ITAsYm94RmxleDohMCxib3hGbGV4R3JvdXA6ITAsYm94T3JkaW5hbEdyb3VwOiEwLGNvbHVtbkNvdW50OiEwLGNvbHVtbnM6ITAsZmxleDohMCxmbGV4R3JvdzohMCxmbGV4UG9zaXRpdmU6ITAsZmxleFNocmluazohMCxmbGV4TmVnYXRpdmU6ITAsZmxleE9yZGVyOiEwLGdyaWRBcmVhOiEwLGdyaWRSb3c6ITAsZ3JpZFJvd0VuZDohMCxncmlkUm93U3BhbjohMCxncmlkUm93U3RhcnQ6ITAsZ3JpZENvbHVtbjohMCxncmlkQ29sdW1uRW5kOiEwLGdyaWRDb2x1bW5TcGFuOiEwLGdyaWRDb2x1bW5TdGFydDohMCxmb250V2VpZ2h0OiEwLGxpbmVDbGFtcDohMCxsaW5lSGVpZ2h0OiEwLG9wYWNpdHk6ITAsb3JkZXI6ITAsb3JwaGFuczohMCx0YWJTaXplOiEwLHdpZG93czohMCx6SW5kZXg6ITAsem9vbTohMCxmaWxsT3BhY2l0eTohMCxmbG9vZE9wYWNpdHk6ITAsc3RvcE9wYWNpdHk6ITAsc3Ryb2tlRGFzaGFycmF5OiEwLHN0cm9rZURhc2hvZmZzZXQ6ITAsc3Ryb2tlTWl0ZXJsaW1pdDohMCxzdHJva2VPcGFjaXR5OiEwLHN0cm9rZVdpZHRoOiEwfSxtZT1bIldlYmtpdCIsIm1zIiwiTW96IiwiTyJdO2Z1bmN0aW9uIGhlKGUsbix0KXtyZXR1cm4gbnVsbD09bnx8ImJvb2xlYW4iPT10eXBlb2Ygbnx8IiI9PT1uPyIiOnR8fCJudW1iZXIiIT10eXBlb2Ygbnx8MD09PW58fHBlLmhhc093blByb3BlcnR5KGUpJiZwZVtlXT8oIiIrbikudHJpbSgpOm4rInB4In1mdW5jdGlvbiBnZShlLG4pe2Zvcih2YXIgdCBpbiBlPWUuc3R5bGUsbilpZihuLmhhc093blByb3BlcnR5KHQpKXt2YXIgcj0wPT09dC5pbmRleE9mKCItLSIpLGw9aGUodCxuW3RdLHIpOyJmbG9hdCI9PT10JiYodD0iY3NzRmxvYXQiKSxyP2Uuc2V0UHJvcGVydHkodCxsKTplW3RdPWx9fU9iamVjdC5rZXlzKHBlKS5mb3JFYWNoKChmdW5jdGlvbihlKXttZS5mb3JFYWNoKChmdW5jdGlvbihuKXtuPW4rZS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKStlLnN1YnN0cmluZygxKSxwZVtuXT1wZVtlXX0pKX0pKTt2YXIgdmU9Tyh7bWVudWl0ZW06ITB9LHthcmVhOiEwLGJhc2U6ITAsYnI6ITAsY29sOiEwLGVtYmVkOiEwLGhyOiEwLGltZzohMCxpbnB1dDohMCxrZXlnZW46ITAsbGluazohMCxtZXRhOiEwLHBhcmFtOiEwLHNvdXJjZTohMCx0cmFjazohMCx3YnI6ITB9KTtmdW5jdGlvbiB5ZShlLG4pe2lmKG4pe2lmKHZlW2VdJiYobnVsbCE9bi5jaGlsZHJlbnx8bnVsbCE9bi5kYW5nZXJvdXNseVNldElubmVySFRNTCkpdGhyb3cgRXJyb3IoYSgxMzcsZSkpO2lmKG51bGwhPW4uZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwpe2lmKG51bGwhPW4uY2hpbGRyZW4pdGhyb3cgRXJyb3IoYSg2MCkpO2lmKCJvYmplY3QiIT10eXBlb2Ygbi5kYW5nZXJvdXNseVNldElubmVySFRNTHx8ISgiX19odG1sImluIG4uZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwpKXRocm93IEVycm9yKGEoNjEpKX1pZihudWxsIT1uLnN0eWxlJiYib2JqZWN0IiE9dHlwZW9mIG4uc3R5bGUpdGhyb3cgRXJyb3IoYSg2MikpfX1mdW5jdGlvbiBiZShlLG4pe2lmKC0xPT09ZS5pbmRleE9mKCItIikpcmV0dXJuInN0cmluZyI9PXR5cGVvZiBuLmlzO3N3aXRjaChlKXtjYXNlImFubm90YXRpb24teG1sIjpjYXNlImNvbG9yLXByb2ZpbGUiOmNhc2UiZm9udC1mYWNlIjpjYXNlImZvbnQtZmFjZS1zcmMiOgpjYXNlImZvbnQtZmFjZS11cmkiOmNhc2UiZm9udC1mYWNlLWZvcm1hdCI6Y2FzZSJmb250LWZhY2UtbmFtZSI6Y2FzZSJtaXNzaW5nLWdseXBoIjpyZXR1cm4hMTtkZWZhdWx0OnJldHVybiEwfX12YXIga2U9bnVsbDtmdW5jdGlvbiB3ZShlKXtyZXR1cm4oZT1lLnRhcmdldHx8ZS5zcmNFbGVtZW50fHx3aW5kb3cpLmNvcnJlc3BvbmRpbmdVc2VFbGVtZW50JiYoZT1lLmNvcnJlc3BvbmRpbmdVc2VFbGVtZW50KSwzPT09ZS5ub2RlVHlwZT9lLnBhcmVudE5vZGU6ZX12YXIgU2U9bnVsbCx4ZT1udWxsLEVlPW51bGw7ZnVuY3Rpb24gQ2UoZSl7aWYoZT1ibChlKSl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIFNlKXRocm93IEVycm9yKGEoMjgwKSk7dmFyIG49ZS5zdGF0ZU5vZGU7biYmKG49d2wobiksU2UoZS5zdGF0ZU5vZGUsZS50eXBlLG4pKX19ZnVuY3Rpb24gemUoZSl7eGU/RWU/RWUucHVzaChlKTpFZT1bZV06eGU9ZX1mdW5jdGlvbiBOZSgpe2lmKHhlKXt2YXIgZT14ZSxuPUVlO2lmKEVlPXhlPW51bGwsQ2UoZSksbilmb3IoZT0wO2U8bi5sZW5ndGg7ZSsrKUNlKG5bZV0pfX1mdW5jdGlvbiBfZShlLG4pe3JldHVybiBlKG4pfWZ1bmN0aW9uIFBlKCl7fXZhciBUZT0hMTtmdW5jdGlvbiBMZShlLG4sdCl7aWYoVGUpcmV0dXJuIGUobix0KTtUZT0hMDt0cnl7cmV0dXJuIF9lKGUsbix0KX1maW5hbGx5e1RlPSExLChudWxsIT09eGV8fG51bGwhPT1FZSkmJihQZSgpLE5lKCkpfX1mdW5jdGlvbiBNZShlLG4pe3ZhciB0PWUuc3RhdGVOb2RlO2lmKG51bGw9PT10KXJldHVybiBudWxsO3ZhciByPXdsKHQpO2lmKG51bGw9PT1yKXJldHVybiBudWxsO3Q9cltuXTtlOnN3aXRjaChuKXtjYXNlIm9uQ2xpY2siOmNhc2Uib25DbGlja0NhcHR1cmUiOmNhc2Uib25Eb3VibGVDbGljayI6Y2FzZSJvbkRvdWJsZUNsaWNrQ2FwdHVyZSI6Y2FzZSJvbk1vdXNlRG93biI6Y2FzZSJvbk1vdXNlRG93bkNhcHR1cmUiOmNhc2Uib25Nb3VzZU1vdmUiOmNhc2Uib25Nb3VzZU1vdmVDYXB0dXJlIjpjYXNlIm9uTW91c2VVcCI6Y2FzZSJvbk1vdXNlVXBDYXB0dXJlIjpjYXNlIm9uTW91c2VFbnRlciI6KHI9IXIuZGlzYWJsZWQpfHwocj0hKCJidXR0b24iPT09KGU9ZS50eXBlKXx8ImlucHV0Ij09PWV8fCJzZWxlY3QiPT09ZXx8InRleHRhcmVhIj09PWUpKSxlPSFyO2JyZWFrIGU7ZGVmYXVsdDplPSExfWlmKGUpcmV0dXJuIG51bGw7aWYodCYmImZ1bmN0aW9uIiE9dHlwZW9mIHQpdGhyb3cgRXJyb3IoYSgyMzEsbix0eXBlb2YgdCkpO3JldHVybiB0fXZhciBGZT0hMTtpZihjKXRyeXt2YXIgUmU9e307T2JqZWN0LmRlZmluZVByb3BlcnR5KFJlLCJwYXNzaXZlIix7Z2V0OmZ1bmN0aW9uKCl7RmU9ITB9fSksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInRlc3QiLFJlLFJlKSx3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigidGVzdCIsUmUsUmUpfWNhdGNoKGNlKXtGZT0hMX1mdW5jdGlvbiBEZShlLG4sdCxyLGwsYSx1LG8saSl7dmFyIHM9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLDMpO3RyeXtuLmFwcGx5KHQscyl9Y2F0Y2goZSl7dGhpcy5vbkVycm9yKGUpfX12YXIgSWU9ITEsT2U9bnVsbCxVZT0hMSxWZT1udWxsLEFlPXtvbkVycm9yOmZ1bmN0aW9uKGUpe0llPSEwLE9lPWV9fTtmdW5jdGlvbiBCZShlLG4sdCxyLGwsYSx1LG8saSl7SWU9ITEsT2U9bnVsbCxEZS5hcHBseShBZSxhcmd1bWVudHMpfWZ1bmN0aW9uIFdlKGUpe3ZhciBuPWUsdD1lO2lmKGUuYWx0ZXJuYXRlKWZvcig7bi5yZXR1cm47KW49bi5yZXR1cm47ZWxzZXtlPW47ZG97ISEoNDA5OCYobj1lKS5mbGFncykmJih0PW4ucmV0dXJuKSxlPW4ucmV0dXJufXdoaWxlKGUpfXJldHVybiAzPT09bi50YWc/dDpudWxsfWZ1bmN0aW9uIEhlKGUpe2lmKDEzPT09ZS50YWcpe3ZhciBuPWUubWVtb2l6ZWRTdGF0ZTtpZihudWxsPT09biYmKG51bGwhPT0oZT1lLmFsdGVybmF0ZSkmJihuPWUubWVtb2l6ZWRTdGF0ZSkpLG51bGwhPT1uKXJldHVybiBuLmRlaHlkcmF0ZWR9cmV0dXJuIG51bGx9ZnVuY3Rpb24gUWUoZSl7aWYoV2UoZSkhPT1lKXRocm93IEVycm9yKGEoMTg4KSl9ZnVuY3Rpb24gamUoZSl7cmV0dXJuIG51bGwhPT0oZT1mdW5jdGlvbihlKXt2YXIgbj1lLmFsdGVybmF0ZTtpZighbil7aWYobnVsbD09PShuPVdlKGUpKSl0aHJvdyBFcnJvcihhKDE4OCkpO3JldHVybiBuIT09ZT9udWxsOmV9Zm9yKHZhciB0PWUscj1uOzspe3ZhciBsPXQucmV0dXJuO2lmKG51bGw9PT1sKWJyZWFrO3ZhciB1PWwuYWx0ZXJuYXRlO2lmKG51bGw9PT11KXtpZihudWxsIT09KHI9bC5yZXR1cm4pKXt0PXI7Y29udGludWV9YnJlYWt9aWYobC5jaGlsZD09PXUuY2hpbGQpe2Zvcih1PWwuY2hpbGQ7dTspe2lmKHU9PT10KXJldHVybiBRZShsKSxlO2lmKHU9PT1yKXJldHVybiBRZShsKSxuO3U9dS5zaWJsaW5nfXRocm93IEVycm9yKGEoMTg4KSl9aWYodC5yZXR1cm4hPT1yLnJldHVybil0PWwscj11O2Vsc2V7Zm9yKHZhciBvPSExLGk9bC5jaGlsZDtpOyl7aWYoaT09PXQpe289ITAsdD1sLHI9dTticmVha31pZihpPT09cil7bz0hMCxyPWwsdD11O2JyZWFrfWk9aS5zaWJsaW5nfWlmKCFvKXtmb3IoaT11LmNoaWxkO2k7KXtpZihpPT09dCl7bz0hMCx0PXUscj1sO2JyZWFrfWlmKGk9PT1yKXtvPSEwLHI9dSx0PWw7YnJlYWt9aT1pLnNpYmxpbmd9aWYoIW8pdGhyb3cgRXJyb3IoYSgxODkpKX19aWYodC5hbHRlcm5hdGUhPT1yKXRocm93IEVycm9yKGEoMTkwKSl9aWYoMyE9PXQudGFnKXRocm93IEVycm9yKGEoMTg4KSk7cmV0dXJuIHQuc3RhdGVOb2RlLmN1cnJlbnQ9PT10P2U6bn0oZSkpPyRlKGUpOm51bGx9ZnVuY3Rpb24gJGUoZSl7aWYoNT09PWUudGFnfHw2PT09ZS50YWcpcmV0dXJuIGU7Zm9yKGU9ZS5jaGlsZDtudWxsIT09ZTspe3ZhciBuPSRlKGUpO2lmKG51bGwhPT1uKXJldHVybiBuO2U9ZS5zaWJsaW5nfXJldHVybiBudWxsfQp2YXIgcWU9bC51bnN0YWJsZV9zY2hlZHVsZUNhbGxiYWNrLEtlPWwudW5zdGFibGVfY2FuY2VsQ2FsbGJhY2ssWWU9bC51bnN0YWJsZV9zaG91bGRZaWVsZCxYZT1sLnVuc3RhYmxlX3JlcXVlc3RQYWludCxHZT1sLnVuc3RhYmxlX25vdyxaZT1sLnVuc3RhYmxlX2dldEN1cnJlbnRQcmlvcml0eUxldmVsLEplPWwudW5zdGFibGVfSW1tZWRpYXRlUHJpb3JpdHksZW49bC51bnN0YWJsZV9Vc2VyQmxvY2tpbmdQcmlvcml0eSxubj1sLnVuc3RhYmxlX05vcm1hbFByaW9yaXR5LHRuPWwudW5zdGFibGVfTG93UHJpb3JpdHkscm49bC51bnN0YWJsZV9JZGxlUHJpb3JpdHksbG49bnVsbCxhbj1udWxsO3ZhciB1bj1NYXRoLmNsejMyP01hdGguY2x6MzI6ZnVuY3Rpb24oZSl7cmV0dXJuIGU+Pj49MCwwPT09ZT8zMjozMS0ob24oZSkvc258MCl8MH0sb249TWF0aC5sb2csc249TWF0aC5MTjI7dmFyIGNuPTY0LGZuPTQxOTQzMDQ7ZnVuY3Rpb24gZG4oZSl7c3dpdGNoKGUmLWUpe2Nhc2UgMTpyZXR1cm4gMTtjYXNlIDI6cmV0dXJuIDI7Y2FzZSA0OnJldHVybiA0O2Nhc2UgODpyZXR1cm4gODtjYXNlIDE2OnJldHVybiAxNjtjYXNlIDMyOnJldHVybiAzMjtjYXNlIDY0OmNhc2UgMTI4OmNhc2UgMjU2OmNhc2UgNTEyOmNhc2UgMTAyNDpjYXNlIDIwNDg6Y2FzZSA0MDk2OmNhc2UgODE5MjpjYXNlIDE2Mzg0OmNhc2UgMzI3Njg6Y2FzZSA2NTUzNjpjYXNlIDEzMTA3MjpjYXNlIDI2MjE0NDpjYXNlIDUyNDI4ODpjYXNlIDEwNDg1NzY6Y2FzZSAyMDk3MTUyOnJldHVybiA0MTk0MjQwJmU7Y2FzZSA0MTk0MzA0OmNhc2UgODM4ODYwODpjYXNlIDE2Nzc3MjE2OmNhc2UgMzM1NTQ0MzI6Y2FzZSA2NzEwODg2NDpyZXR1cm4gMTMwMDIzNDI0JmU7Y2FzZSAxMzQyMTc3Mjg6cmV0dXJuIDEzNDIxNzcyODtjYXNlIDI2ODQzNTQ1NjpyZXR1cm4gMjY4NDM1NDU2O2Nhc2UgNTM2ODcwOTEyOnJldHVybiA1MzY4NzA5MTI7Y2FzZSAxMDczNzQxODI0OnJldHVybiAxMDczNzQxODI0O2RlZmF1bHQ6cmV0dXJuIGV9fWZ1bmN0aW9uIHBuKGUsbil7dmFyIHQ9ZS5wZW5kaW5nTGFuZXM7aWYoMD09PXQpcmV0dXJuIDA7dmFyIHI9MCxsPWUuc3VzcGVuZGVkTGFuZXMsYT1lLnBpbmdlZExhbmVzLHU9MjY4NDM1NDU1JnQ7aWYoMCE9PXUpe3ZhciBvPXUmfmw7MCE9PW8/cj1kbihvKTowIT09KGEmPXUpJiYocj1kbihhKSl9ZWxzZSAwIT09KHU9dCZ+bCk/cj1kbih1KTowIT09YSYmKHI9ZG4oYSkpO2lmKDA9PT1yKXJldHVybiAwO2lmKDAhPT1uJiZuIT09ciYmIShuJmwpJiYoKGw9ciYtcik+PShhPW4mLW4pfHwxNj09PWwmJjQxOTQyNDAmYSkpcmV0dXJuIG47aWYoNCZyJiYocnw9MTYmdCksMCE9PShuPWUuZW50YW5nbGVkTGFuZXMpKWZvcihlPWUuZW50YW5nbGVtZW50cyxuJj1yOzA8bjspbD0xPDwodD0zMS11bihuKSkscnw9ZVt0XSxuJj1+bDtyZXR1cm4gcn1mdW5jdGlvbiBtbihlLG4pe3N3aXRjaChlKXtjYXNlIDE6Y2FzZSAyOmNhc2UgNDpyZXR1cm4gbisyNTA7Y2FzZSA4OmNhc2UgMTY6Y2FzZSAzMjpjYXNlIDY0OmNhc2UgMTI4OmNhc2UgMjU2OmNhc2UgNTEyOmNhc2UgMTAyNDpjYXNlIDIwNDg6Y2FzZSA0MDk2OmNhc2UgODE5MjpjYXNlIDE2Mzg0OmNhc2UgMzI3Njg6Y2FzZSA2NTUzNjpjYXNlIDEzMTA3MjpjYXNlIDI2MjE0NDpjYXNlIDUyNDI4ODpjYXNlIDEwNDg1NzY6Y2FzZSAyMDk3MTUyOnJldHVybiBuKzVlMztkZWZhdWx0OnJldHVybi0xfX1mdW5jdGlvbiBobihlKXtyZXR1cm4gMCE9PShlPS0xMDczNzQxODI1JmUucGVuZGluZ0xhbmVzKT9lOjEwNzM3NDE4MjQmZT8xMDczNzQxODI0OjB9ZnVuY3Rpb24gZ24oKXt2YXIgZT1jbjtyZXR1cm4hKDQxOTQyNDAmKGNuPDw9MSkpJiYoY249NjQpLGV9ZnVuY3Rpb24gdm4oZSl7Zm9yKHZhciBuPVtdLHQ9MDszMT50O3QrKyluLnB1c2goZSk7cmV0dXJuIG59ZnVuY3Rpb24geW4oZSxuLHQpe2UucGVuZGluZ0xhbmVzfD1uLDUzNjg3MDkxMiE9PW4mJihlLnN1c3BlbmRlZExhbmVzPTAsZS5waW5nZWRMYW5lcz0wKSwoZT1lLmV2ZW50VGltZXMpW249MzEtdW4obildPXR9ZnVuY3Rpb24gYm4oZSxuKXt2YXIgdD1lLmVudGFuZ2xlZExhbmVzfD1uO2ZvcihlPWUuZW50YW5nbGVtZW50czt0Oyl7dmFyIHI9MzEtdW4odCksbD0xPDxyO2wmbnxlW3JdJm4mJihlW3JdfD1uKSx0Jj1+bH19dmFyIGtuPTA7ZnVuY3Rpb24gd24oZSl7cmV0dXJuIDE8KGUmPS1lKT80PGU/MjY4NDM1NDU1JmU/MTY6NTM2ODcwOTEyOjQ6MX12YXIgU24seG4sRW4sQ24sem4sTm49ITEsX249W10sUG49bnVsbCxUbj1udWxsLExuPW51bGwsTW49bmV3IE1hcCxGbj1uZXcgTWFwLFJuPVtdLERuPSJtb3VzZWRvd24gbW91c2V1cCB0b3VjaGNhbmNlbCB0b3VjaGVuZCB0b3VjaHN0YXJ0IGF1eGNsaWNrIGRibGNsaWNrIHBvaW50ZXJjYW5jZWwgcG9pbnRlcmRvd24gcG9pbnRlcnVwIGRyYWdlbmQgZHJhZ3N0YXJ0IGRyb3AgY29tcG9zaXRpb25lbmQgY29tcG9zaXRpb25zdGFydCBrZXlkb3duIGtleXByZXNzIGtleXVwIGlucHV0IHRleHRJbnB1dCBjb3B5IGN1dCBwYXN0ZSBjbGljayBjaGFuZ2UgY29udGV4dG1lbnUgcmVzZXQgc3VibWl0Ii5zcGxpdCgiICIpO2Z1bmN0aW9uIEluKGUsbil7c3dpdGNoKGUpe2Nhc2UiZm9jdXNpbiI6Y2FzZSJmb2N1c291dCI6UG49bnVsbDticmVhaztjYXNlImRyYWdlbnRlciI6Y2FzZSJkcmFnbGVhdmUiOlRuPW51bGw7YnJlYWs7Y2FzZSJtb3VzZW92ZXIiOmNhc2UibW91c2VvdXQiOkxuPW51bGw7YnJlYWs7Y2FzZSJwb2ludGVyb3ZlciI6Y2FzZSJwb2ludGVyb3V0IjpNbi5kZWxldGUobi5wb2ludGVySWQpO2JyZWFrO2Nhc2UiZ290cG9pbnRlcmNhcHR1cmUiOmNhc2UibG9zdHBvaW50ZXJjYXB0dXJlIjpGbi5kZWxldGUobi5wb2ludGVySWQpfX1mdW5jdGlvbiBPbihlLG4sdCxyLGwsYSl7cmV0dXJuIG51bGw9PT1lfHxlLm5hdGl2ZUV2ZW50IT09YT8oZT17YmxvY2tlZE9uOm4sZG9tRXZlbnROYW1lOnQsZXZlbnRTeXN0ZW1GbGFnczpyLG5hdGl2ZUV2ZW50OmEsdGFyZ2V0Q29udGFpbmVyczpbbF19LG51bGwhPT1uJiYobnVsbCE9PShuPWJsKG4pKSYmeG4obikpLAplKTooZS5ldmVudFN5c3RlbUZsYWdzfD1yLG49ZS50YXJnZXRDb250YWluZXJzLG51bGwhPT1sJiYtMT09PW4uaW5kZXhPZihsKSYmbi5wdXNoKGwpLGUpfWZ1bmN0aW9uIFVuKGUpe3ZhciBuPXlsKGUudGFyZ2V0KTtpZihudWxsIT09bil7dmFyIHQ9V2Uobik7aWYobnVsbCE9PXQpaWYoMTM9PT0obj10LnRhZykpe2lmKG51bGwhPT0obj1IZSh0KSkpcmV0dXJuIGUuYmxvY2tlZE9uPW4sdm9pZCB6bihlLnByaW9yaXR5LChmdW5jdGlvbigpe0VuKHQpfSkpfWVsc2UgaWYoMz09PW4mJnQuc3RhdGVOb2RlLmN1cnJlbnQubWVtb2l6ZWRTdGF0ZS5pc0RlaHlkcmF0ZWQpcmV0dXJuIHZvaWQoZS5ibG9ja2VkT249Mz09PXQudGFnP3Quc3RhdGVOb2RlLmNvbnRhaW5lckluZm86bnVsbCl9ZS5ibG9ja2VkT249bnVsbH1mdW5jdGlvbiBWbihlKXtpZihudWxsIT09ZS5ibG9ja2VkT24pcmV0dXJuITE7Zm9yKHZhciBuPWUudGFyZ2V0Q29udGFpbmVyczswPG4ubGVuZ3RoOyl7dmFyIHQ9WG4oZS5kb21FdmVudE5hbWUsZS5ldmVudFN5c3RlbUZsYWdzLG5bMF0sZS5uYXRpdmVFdmVudCk7aWYobnVsbCE9PXQpcmV0dXJuIG51bGwhPT0obj1ibCh0KSkmJnhuKG4pLGUuYmxvY2tlZE9uPXQsITE7dmFyIHI9bmV3KHQ9ZS5uYXRpdmVFdmVudCkuY29uc3RydWN0b3IodC50eXBlLHQpO2tlPXIsdC50YXJnZXQuZGlzcGF0Y2hFdmVudChyKSxrZT1udWxsLG4uc2hpZnQoKX1yZXR1cm4hMH1mdW5jdGlvbiBBbihlLG4sdCl7Vm4oZSkmJnQuZGVsZXRlKG4pfWZ1bmN0aW9uIEJuKCl7Tm49ITEsbnVsbCE9PVBuJiZWbihQbikmJihQbj1udWxsKSxudWxsIT09VG4mJlZuKFRuKSYmKFRuPW51bGwpLG51bGwhPT1MbiYmVm4oTG4pJiYoTG49bnVsbCksTW4uZm9yRWFjaChBbiksRm4uZm9yRWFjaChBbil9ZnVuY3Rpb24gV24oZSxuKXtlLmJsb2NrZWRPbj09PW4mJihlLmJsb2NrZWRPbj1udWxsLE5ufHwoTm49ITAsbC51bnN0YWJsZV9zY2hlZHVsZUNhbGxiYWNrKGwudW5zdGFibGVfTm9ybWFsUHJpb3JpdHksQm4pKSl9ZnVuY3Rpb24gSG4oZSl7ZnVuY3Rpb24gbihuKXtyZXR1cm4gV24obixlKX1pZigwPF9uLmxlbmd0aCl7V24oX25bMF0sZSk7Zm9yKHZhciB0PTE7dDxfbi5sZW5ndGg7dCsrKXt2YXIgcj1fblt0XTtyLmJsb2NrZWRPbj09PWUmJihyLmJsb2NrZWRPbj1udWxsKX19Zm9yKG51bGwhPT1QbiYmV24oUG4sZSksbnVsbCE9PVRuJiZXbihUbixlKSxudWxsIT09TG4mJlduKExuLGUpLE1uLmZvckVhY2gobiksRm4uZm9yRWFjaChuKSx0PTA7dDxSbi5sZW5ndGg7dCsrKShyPVJuW3RdKS5ibG9ja2VkT249PT1lJiYoci5ibG9ja2VkT249bnVsbCk7Zm9yKDswPFJuLmxlbmd0aCYmbnVsbD09PSh0PVJuWzBdKS5ibG9ja2VkT247KVVuKHQpLG51bGw9PT10LmJsb2NrZWRPbiYmUm4uc2hpZnQoKX12YXIgUW49ay5SZWFjdEN1cnJlbnRCYXRjaENvbmZpZyxqbj0hMDtmdW5jdGlvbiAkbihlLG4sdCxyKXt2YXIgbD1rbixhPVFuLnRyYW5zaXRpb247UW4udHJhbnNpdGlvbj1udWxsO3RyeXtrbj0xLEtuKGUsbix0LHIpfWZpbmFsbHl7a249bCxRbi50cmFuc2l0aW9uPWF9fWZ1bmN0aW9uIHFuKGUsbix0LHIpe3ZhciBsPWtuLGE9UW4udHJhbnNpdGlvbjtRbi50cmFuc2l0aW9uPW51bGw7dHJ5e2tuPTQsS24oZSxuLHQscil9ZmluYWxseXtrbj1sLFFuLnRyYW5zaXRpb249YX19ZnVuY3Rpb24gS24oZSxuLHQscil7aWYoam4pe3ZhciBsPVhuKGUsbix0LHIpO2lmKG51bGw9PT1sKVFyKGUsbixyLFluLHQpLEluKGUscik7ZWxzZSBpZihmdW5jdGlvbihlLG4sdCxyLGwpe3N3aXRjaChuKXtjYXNlImZvY3VzaW4iOnJldHVybiBQbj1PbihQbixlLG4sdCxyLGwpLCEwO2Nhc2UiZHJhZ2VudGVyIjpyZXR1cm4gVG49T24oVG4sZSxuLHQscixsKSwhMDtjYXNlIm1vdXNlb3ZlciI6cmV0dXJuIExuPU9uKExuLGUsbix0LHIsbCksITA7Y2FzZSJwb2ludGVyb3ZlciI6dmFyIGE9bC5wb2ludGVySWQ7cmV0dXJuIE1uLnNldChhLE9uKE1uLmdldChhKXx8bnVsbCxlLG4sdCxyLGwpKSwhMDtjYXNlImdvdHBvaW50ZXJjYXB0dXJlIjpyZXR1cm4gYT1sLnBvaW50ZXJJZCxGbi5zZXQoYSxPbihGbi5nZXQoYSl8fG51bGwsZSxuLHQscixsKSksITB9cmV0dXJuITF9KGwsZSxuLHQscikpci5zdG9wUHJvcGFnYXRpb24oKTtlbHNlIGlmKEluKGUsciksNCZuJiYtMTxEbi5pbmRleE9mKGUpKXtmb3IoO251bGwhPT1sOyl7dmFyIGE9YmwobCk7aWYobnVsbCE9PWEmJlNuKGEpLG51bGw9PT0oYT1YbihlLG4sdCxyKSkmJlFyKGUsbixyLFluLHQpLGE9PT1sKWJyZWFrO2w9YX1udWxsIT09bCYmci5zdG9wUHJvcGFnYXRpb24oKX1lbHNlIFFyKGUsbixyLG51bGwsdCl9fXZhciBZbj1udWxsO2Z1bmN0aW9uIFhuKGUsbix0LHIpe2lmKFluPW51bGwsbnVsbCE9PShlPXlsKGU9d2UocikpKSlpZihudWxsPT09KG49V2UoZSkpKWU9bnVsbDtlbHNlIGlmKDEzPT09KHQ9bi50YWcpKXtpZihudWxsIT09KGU9SGUobikpKXJldHVybiBlO2U9bnVsbH1lbHNlIGlmKDM9PT10KXtpZihuLnN0YXRlTm9kZS5jdXJyZW50Lm1lbW9pemVkU3RhdGUuaXNEZWh5ZHJhdGVkKXJldHVybiAzPT09bi50YWc/bi5zdGF0ZU5vZGUuY29udGFpbmVySW5mbzpudWxsO2U9bnVsbH1lbHNlIG4hPT1lJiYoZT1udWxsKTtyZXR1cm4gWW49ZSxudWxsfWZ1bmN0aW9uIEduKGUpe3N3aXRjaChlKXtjYXNlImNhbmNlbCI6Y2FzZSJjbGljayI6Y2FzZSJjbG9zZSI6Y2FzZSJjb250ZXh0bWVudSI6Y2FzZSJjb3B5IjpjYXNlImN1dCI6Y2FzZSJhdXhjbGljayI6Y2FzZSJkYmxjbGljayI6Y2FzZSJkcmFnZW5kIjpjYXNlImRyYWdzdGFydCI6Y2FzZSJkcm9wIjpjYXNlImZvY3VzaW4iOmNhc2UiZm9jdXNvdXQiOmNhc2UiaW5wdXQiOmNhc2UiaW52YWxpZCI6Y2FzZSJrZXlkb3duIjpjYXNlImtleXByZXNzIjpjYXNlImtleXVwIjpjYXNlIm1vdXNlZG93biI6Y2FzZSJtb3VzZXVwIjpjYXNlInBhc3RlIjpjYXNlInBhdXNlIjpjYXNlInBsYXkiOmNhc2UicG9pbnRlcmNhbmNlbCI6Y2FzZSJwb2ludGVyZG93biI6Y2FzZSJwb2ludGVydXAiOmNhc2UicmF0ZWNoYW5nZSI6CmNhc2UicmVzZXQiOmNhc2UicmVzaXplIjpjYXNlInNlZWtlZCI6Y2FzZSJzdWJtaXQiOmNhc2UidG91Y2hjYW5jZWwiOmNhc2UidG91Y2hlbmQiOmNhc2UidG91Y2hzdGFydCI6Y2FzZSJ2b2x1bWVjaGFuZ2UiOmNhc2UiY2hhbmdlIjpjYXNlInNlbGVjdGlvbmNoYW5nZSI6Y2FzZSJ0ZXh0SW5wdXQiOmNhc2UiY29tcG9zaXRpb25zdGFydCI6Y2FzZSJjb21wb3NpdGlvbmVuZCI6Y2FzZSJjb21wb3NpdGlvbnVwZGF0ZSI6Y2FzZSJiZWZvcmVibHVyIjpjYXNlImFmdGVyYmx1ciI6Y2FzZSJiZWZvcmVpbnB1dCI6Y2FzZSJibHVyIjpjYXNlImZ1bGxzY3JlZW5jaGFuZ2UiOmNhc2UiZm9jdXMiOmNhc2UiaGFzaGNoYW5nZSI6Y2FzZSJwb3BzdGF0ZSI6Y2FzZSJzZWxlY3QiOmNhc2Uic2VsZWN0c3RhcnQiOnJldHVybiAxO2Nhc2UiZHJhZyI6Y2FzZSJkcmFnZW50ZXIiOmNhc2UiZHJhZ2V4aXQiOmNhc2UiZHJhZ2xlYXZlIjpjYXNlImRyYWdvdmVyIjpjYXNlIm1vdXNlbW92ZSI6Y2FzZSJtb3VzZW91dCI6Y2FzZSJtb3VzZW92ZXIiOmNhc2UicG9pbnRlcm1vdmUiOmNhc2UicG9pbnRlcm91dCI6Y2FzZSJwb2ludGVyb3ZlciI6Y2FzZSJzY3JvbGwiOmNhc2UidG9nZ2xlIjpjYXNlInRvdWNobW92ZSI6Y2FzZSJ3aGVlbCI6Y2FzZSJtb3VzZWVudGVyIjpjYXNlIm1vdXNlbGVhdmUiOmNhc2UicG9pbnRlcmVudGVyIjpjYXNlInBvaW50ZXJsZWF2ZSI6cmV0dXJuIDQ7Y2FzZSJtZXNzYWdlIjpzd2l0Y2goWmUoKSl7Y2FzZSBKZTpyZXR1cm4gMTtjYXNlIGVuOnJldHVybiA0O2Nhc2Ugbm46Y2FzZSB0bjpyZXR1cm4gMTY7Y2FzZSBybjpyZXR1cm4gNTM2ODcwOTEyO2RlZmF1bHQ6cmV0dXJuIDE2fWRlZmF1bHQ6cmV0dXJuIDE2fX12YXIgWm49bnVsbCxKbj1udWxsLGV0PW51bGw7ZnVuY3Rpb24gbnQoKXtpZihldClyZXR1cm4gZXQ7dmFyIGUsbix0PUpuLHI9dC5sZW5ndGgsbD0idmFsdWUiaW4gWm4/Wm4udmFsdWU6Wm4udGV4dENvbnRlbnQsYT1sLmxlbmd0aDtmb3IoZT0wO2U8ciYmdFtlXT09PWxbZV07ZSsrKTt2YXIgdT1yLWU7Zm9yKG49MTtuPD11JiZ0W3Itbl09PT1sW2Etbl07bisrKTtyZXR1cm4gZXQ9bC5zbGljZShlLDE8bj8xLW46dm9pZCAwKX1mdW5jdGlvbiB0dChlKXt2YXIgbj1lLmtleUNvZGU7cmV0dXJuImNoYXJDb2RlImluIGU/MD09PShlPWUuY2hhckNvZGUpJiYxMz09PW4mJihlPTEzKTplPW4sMTA9PT1lJiYoZT0xMyksMzI8PWV8fDEzPT09ZT9lOjB9ZnVuY3Rpb24gcnQoKXtyZXR1cm4hMH1mdW5jdGlvbiBsdCgpe3JldHVybiExfWZ1bmN0aW9uIGF0KGUpe2Z1bmN0aW9uIG4obix0LHIsbCxhKXtmb3IodmFyIHUgaW4gdGhpcy5fcmVhY3ROYW1lPW4sdGhpcy5fdGFyZ2V0SW5zdD1yLHRoaXMudHlwZT10LHRoaXMubmF0aXZlRXZlbnQ9bCx0aGlzLnRhcmdldD1hLHRoaXMuY3VycmVudFRhcmdldD1udWxsLGUpZS5oYXNPd25Qcm9wZXJ0eSh1KSYmKG49ZVt1XSx0aGlzW3VdPW4/bihsKTpsW3VdKTtyZXR1cm4gdGhpcy5pc0RlZmF1bHRQcmV2ZW50ZWQ9KG51bGwhPWwuZGVmYXVsdFByZXZlbnRlZD9sLmRlZmF1bHRQcmV2ZW50ZWQ6ITE9PT1sLnJldHVyblZhbHVlKT9ydDpsdCx0aGlzLmlzUHJvcGFnYXRpb25TdG9wcGVkPWx0LHRoaXN9cmV0dXJuIE8obi5wcm90b3R5cGUse3ByZXZlbnREZWZhdWx0OmZ1bmN0aW9uKCl7dGhpcy5kZWZhdWx0UHJldmVudGVkPSEwO3ZhciBlPXRoaXMubmF0aXZlRXZlbnQ7ZSYmKGUucHJldmVudERlZmF1bHQ/ZS5wcmV2ZW50RGVmYXVsdCgpOiJ1bmtub3duIiE9dHlwZW9mIGUucmV0dXJuVmFsdWUmJihlLnJldHVyblZhbHVlPSExKSx0aGlzLmlzRGVmYXVsdFByZXZlbnRlZD1ydCl9LHN0b3BQcm9wYWdhdGlvbjpmdW5jdGlvbigpe3ZhciBlPXRoaXMubmF0aXZlRXZlbnQ7ZSYmKGUuc3RvcFByb3BhZ2F0aW9uP2Uuc3RvcFByb3BhZ2F0aW9uKCk6InVua25vd24iIT10eXBlb2YgZS5jYW5jZWxCdWJibGUmJihlLmNhbmNlbEJ1YmJsZT0hMCksdGhpcy5pc1Byb3BhZ2F0aW9uU3RvcHBlZD1ydCl9LHBlcnNpc3Q6ZnVuY3Rpb24oKXt9LGlzUGVyc2lzdGVudDpydH0pLG59dmFyIHV0LG90LGl0LHN0PXtldmVudFBoYXNlOjAsYnViYmxlczowLGNhbmNlbGFibGU6MCx0aW1lU3RhbXA6ZnVuY3Rpb24oZSl7cmV0dXJuIGUudGltZVN0YW1wfHxEYXRlLm5vdygpfSxkZWZhdWx0UHJldmVudGVkOjAsaXNUcnVzdGVkOjB9LGN0PWF0KHN0KSxmdD1PKHt9LHN0LHt2aWV3OjAsZGV0YWlsOjB9KSxkdD1hdChmdCkscHQ9Tyh7fSxmdCx7c2NyZWVuWDowLHNjcmVlblk6MCxjbGllbnRYOjAsY2xpZW50WTowLHBhZ2VYOjAscGFnZVk6MCxjdHJsS2V5OjAsc2hpZnRLZXk6MCxhbHRLZXk6MCxtZXRhS2V5OjAsZ2V0TW9kaWZpZXJTdGF0ZTpDdCxidXR0b246MCxidXR0b25zOjAscmVsYXRlZFRhcmdldDpmdW5jdGlvbihlKXtyZXR1cm4gdm9pZCAwPT09ZS5yZWxhdGVkVGFyZ2V0P2UuZnJvbUVsZW1lbnQ9PT1lLnNyY0VsZW1lbnQ/ZS50b0VsZW1lbnQ6ZS5mcm9tRWxlbWVudDplLnJlbGF0ZWRUYXJnZXR9LG1vdmVtZW50WDpmdW5jdGlvbihlKXtyZXR1cm4ibW92ZW1lbnRYImluIGU/ZS5tb3ZlbWVudFg6KGUhPT1pdCYmKGl0JiYibW91c2Vtb3ZlIj09PWUudHlwZT8odXQ9ZS5zY3JlZW5YLWl0LnNjcmVlblgsb3Q9ZS5zY3JlZW5ZLWl0LnNjcmVlblkpOm90PXV0PTAsaXQ9ZSksdXQpfSxtb3ZlbWVudFk6ZnVuY3Rpb24oZSl7cmV0dXJuIm1vdmVtZW50WSJpbiBlP2UubW92ZW1lbnRZOm90fX0pLG10PWF0KHB0KSxodD1hdChPKHt9LHB0LHtkYXRhVHJhbnNmZXI6MH0pKSxndD1hdChPKHt9LGZ0LHtyZWxhdGVkVGFyZ2V0OjB9KSksdnQ9YXQoTyh7fSxzdCx7YW5pbWF0aW9uTmFtZTowLGVsYXBzZWRUaW1lOjAscHNldWRvRWxlbWVudDowfSkpLHl0PU8oe30sc3Qse2NsaXBib2FyZERhdGE6ZnVuY3Rpb24oZSl7cmV0dXJuImNsaXBib2FyZERhdGEiaW4gZT9lLmNsaXBib2FyZERhdGE6d2luZG93LmNsaXBib2FyZERhdGF9fSksYnQ9YXQoeXQpLGt0PWF0KE8oe30sc3Qse2RhdGE6MH0pKSx3dD17RXNjOiJFc2NhcGUiLFNwYWNlYmFyOiIgIixMZWZ0OiJBcnJvd0xlZnQiLApVcDoiQXJyb3dVcCIsUmlnaHQ6IkFycm93UmlnaHQiLERvd246IkFycm93RG93biIsRGVsOiJEZWxldGUiLFdpbjoiT1MiLE1lbnU6IkNvbnRleHRNZW51IixBcHBzOiJDb250ZXh0TWVudSIsU2Nyb2xsOiJTY3JvbGxMb2NrIixNb3pQcmludGFibGVLZXk6IlVuaWRlbnRpZmllZCJ9LFN0PXs4OiJCYWNrc3BhY2UiLDk6IlRhYiIsMTI6IkNsZWFyIiwxMzoiRW50ZXIiLDE2OiJTaGlmdCIsMTc6IkNvbnRyb2wiLDE4OiJBbHQiLDE5OiJQYXVzZSIsMjA6IkNhcHNMb2NrIiwyNzoiRXNjYXBlIiwzMjoiICIsMzM6IlBhZ2VVcCIsMzQ6IlBhZ2VEb3duIiwzNToiRW5kIiwzNjoiSG9tZSIsMzc6IkFycm93TGVmdCIsMzg6IkFycm93VXAiLDM5OiJBcnJvd1JpZ2h0Iiw0MDoiQXJyb3dEb3duIiw0NToiSW5zZXJ0Iiw0NjoiRGVsZXRlIiwxMTI6IkYxIiwxMTM6IkYyIiwxMTQ6IkYzIiwxMTU6IkY0IiwxMTY6IkY1IiwxMTc6IkY2IiwxMTg6IkY3IiwxMTk6IkY4IiwxMjA6IkY5IiwxMjE6IkYxMCIsMTIyOiJGMTEiLDEyMzoiRjEyIiwxNDQ6Ik51bUxvY2siLDE0NToiU2Nyb2xsTG9jayIsMjI0OiJNZXRhIn0seHQ9e0FsdDoiYWx0S2V5IixDb250cm9sOiJjdHJsS2V5IixNZXRhOiJtZXRhS2V5IixTaGlmdDoic2hpZnRLZXkifTtmdW5jdGlvbiBFdChlKXt2YXIgbj10aGlzLm5hdGl2ZUV2ZW50O3JldHVybiBuLmdldE1vZGlmaWVyU3RhdGU/bi5nZXRNb2RpZmllclN0YXRlKGUpOiEhKGU9eHRbZV0pJiYhIW5bZV19ZnVuY3Rpb24gQ3QoKXtyZXR1cm4gRXR9dmFyIHp0PU8oe30sZnQse2tleTpmdW5jdGlvbihlKXtpZihlLmtleSl7dmFyIG49d3RbZS5rZXldfHxlLmtleTtpZigiVW5pZGVudGlmaWVkIiE9PW4pcmV0dXJuIG59cmV0dXJuImtleXByZXNzIj09PWUudHlwZT8xMz09PShlPXR0KGUpKT8iRW50ZXIiOlN0cmluZy5mcm9tQ2hhckNvZGUoZSk6ImtleWRvd24iPT09ZS50eXBlfHwia2V5dXAiPT09ZS50eXBlP1N0W2Uua2V5Q29kZV18fCJVbmlkZW50aWZpZWQiOiIifSxjb2RlOjAsbG9jYXRpb246MCxjdHJsS2V5OjAsc2hpZnRLZXk6MCxhbHRLZXk6MCxtZXRhS2V5OjAscmVwZWF0OjAsbG9jYWxlOjAsZ2V0TW9kaWZpZXJTdGF0ZTpDdCxjaGFyQ29kZTpmdW5jdGlvbihlKXtyZXR1cm4ia2V5cHJlc3MiPT09ZS50eXBlP3R0KGUpOjB9LGtleUNvZGU6ZnVuY3Rpb24oZSl7cmV0dXJuImtleWRvd24iPT09ZS50eXBlfHwia2V5dXAiPT09ZS50eXBlP2Uua2V5Q29kZTowfSx3aGljaDpmdW5jdGlvbihlKXtyZXR1cm4ia2V5cHJlc3MiPT09ZS50eXBlP3R0KGUpOiJrZXlkb3duIj09PWUudHlwZXx8ImtleXVwIj09PWUudHlwZT9lLmtleUNvZGU6MH19KSxOdD1hdCh6dCksX3Q9YXQoTyh7fSxwdCx7cG9pbnRlcklkOjAsd2lkdGg6MCxoZWlnaHQ6MCxwcmVzc3VyZTowLHRhbmdlbnRpYWxQcmVzc3VyZTowLHRpbHRYOjAsdGlsdFk6MCx0d2lzdDowLHBvaW50ZXJUeXBlOjAsaXNQcmltYXJ5OjB9KSksUHQ9YXQoTyh7fSxmdCx7dG91Y2hlczowLHRhcmdldFRvdWNoZXM6MCxjaGFuZ2VkVG91Y2hlczowLGFsdEtleTowLG1ldGFLZXk6MCxjdHJsS2V5OjAsc2hpZnRLZXk6MCxnZXRNb2RpZmllclN0YXRlOkN0fSkpLFR0PWF0KE8oe30sc3Qse3Byb3BlcnR5TmFtZTowLGVsYXBzZWRUaW1lOjAscHNldWRvRWxlbWVudDowfSkpLEx0PU8oe30scHQse2RlbHRhWDpmdW5jdGlvbihlKXtyZXR1cm4iZGVsdGFYImluIGU/ZS5kZWx0YVg6IndoZWVsRGVsdGFYImluIGU/LWUud2hlZWxEZWx0YVg6MH0sZGVsdGFZOmZ1bmN0aW9uKGUpe3JldHVybiJkZWx0YVkiaW4gZT9lLmRlbHRhWToid2hlZWxEZWx0YVkiaW4gZT8tZS53aGVlbERlbHRhWToid2hlZWxEZWx0YSJpbiBlPy1lLndoZWVsRGVsdGE6MH0sZGVsdGFaOjAsZGVsdGFNb2RlOjB9KSxNdD1hdChMdCksRnQ9WzksMTMsMjcsMzJdLFJ0PWMmJiJDb21wb3NpdGlvbkV2ZW50ImluIHdpbmRvdyxEdD1udWxsO2MmJiJkb2N1bWVudE1vZGUiaW4gZG9jdW1lbnQmJihEdD1kb2N1bWVudC5kb2N1bWVudE1vZGUpO3ZhciBJdD1jJiYiVGV4dEV2ZW50ImluIHdpbmRvdyYmIUR0LE90PWMmJighUnR8fER0JiY4PER0JiYxMT49RHQpLFV0PVN0cmluZy5mcm9tQ2hhckNvZGUoMzIpLFZ0PSExO2Z1bmN0aW9uIEF0KGUsbil7c3dpdGNoKGUpe2Nhc2Uia2V5dXAiOnJldHVybi0xIT09RnQuaW5kZXhPZihuLmtleUNvZGUpO2Nhc2Uia2V5ZG93biI6cmV0dXJuIDIyOSE9PW4ua2V5Q29kZTtjYXNlImtleXByZXNzIjpjYXNlIm1vdXNlZG93biI6Y2FzZSJmb2N1c291dCI6cmV0dXJuITA7ZGVmYXVsdDpyZXR1cm4hMX19ZnVuY3Rpb24gQnQoZSl7cmV0dXJuIm9iamVjdCI9PXR5cGVvZihlPWUuZGV0YWlsKSYmImRhdGEiaW4gZT9lLmRhdGE6bnVsbH12YXIgV3Q9ITE7dmFyIEh0PXtjb2xvcjohMCxkYXRlOiEwLGRhdGV0aW1lOiEwLCJkYXRldGltZS1sb2NhbCI6ITAsZW1haWw6ITAsbW9udGg6ITAsbnVtYmVyOiEwLHBhc3N3b3JkOiEwLHJhbmdlOiEwLHNlYXJjaDohMCx0ZWw6ITAsdGV4dDohMCx0aW1lOiEwLHVybDohMCx3ZWVrOiEwfTtmdW5jdGlvbiBRdChlKXt2YXIgbj1lJiZlLm5vZGVOYW1lJiZlLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7cmV0dXJuImlucHV0Ij09PW4/ISFIdFtlLnR5cGVdOiJ0ZXh0YXJlYSI9PT1ufWZ1bmN0aW9uIGp0KGUsbix0LHIpe3plKHIpLDA8KG49JHIobiwib25DaGFuZ2UiKSkubGVuZ3RoJiYodD1uZXcgY3QoIm9uQ2hhbmdlIiwiY2hhbmdlIixudWxsLHQsciksZS5wdXNoKHtldmVudDp0LGxpc3RlbmVyczpufSkpfXZhciAkdD1udWxsLHF0PW51bGw7ZnVuY3Rpb24gS3QoZSl7VXIoZSwwKX1mdW5jdGlvbiBZdChlKXtpZihxKGtsKGUpKSlyZXR1cm4gZX1mdW5jdGlvbiBYdChlLG4pe2lmKCJjaGFuZ2UiPT09ZSlyZXR1cm4gbn12YXIgR3Q9ITE7aWYoYyl7dmFyIFp0O2lmKGMpe3ZhciBKdD0ib25pbnB1dCJpbiBkb2N1bWVudDtpZighSnQpe3ZhciBlcj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtlci5zZXRBdHRyaWJ1dGUoIm9uaW5wdXQiLCJyZXR1cm47IiksSnQ9ImZ1bmN0aW9uIj09dHlwZW9mIGVyLm9uaW5wdXR9WnQ9SnQKfWVsc2UgWnQ9ITE7R3Q9WnQmJighZG9jdW1lbnQuZG9jdW1lbnRNb2RlfHw5PGRvY3VtZW50LmRvY3VtZW50TW9kZSl9ZnVuY3Rpb24gbnIoKXskdCYmKCR0LmRldGFjaEV2ZW50KCJvbnByb3BlcnR5Y2hhbmdlIix0cikscXQ9JHQ9bnVsbCl9ZnVuY3Rpb24gdHIoZSl7aWYoInZhbHVlIj09PWUucHJvcGVydHlOYW1lJiZZdChxdCkpe3ZhciBuPVtdO2p0KG4scXQsZSx3ZShlKSksTGUoS3Qsbil9fWZ1bmN0aW9uIHJyKGUsbix0KXsiZm9jdXNpbiI9PT1lPyhucigpLHF0PXQsKCR0PW4pLmF0dGFjaEV2ZW50KCJvbnByb3BlcnR5Y2hhbmdlIix0cikpOiJmb2N1c291dCI9PT1lJiZucigpfWZ1bmN0aW9uIGxyKGUpe2lmKCJzZWxlY3Rpb25jaGFuZ2UiPT09ZXx8ImtleXVwIj09PWV8fCJrZXlkb3duIj09PWUpcmV0dXJuIFl0KHF0KX1mdW5jdGlvbiBhcihlLG4pe2lmKCJjbGljayI9PT1lKXJldHVybiBZdChuKX1mdW5jdGlvbiB1cihlLG4pe2lmKCJpbnB1dCI9PT1lfHwiY2hhbmdlIj09PWUpcmV0dXJuIFl0KG4pfXZhciBvcj0iZnVuY3Rpb24iPT10eXBlb2YgT2JqZWN0LmlzP09iamVjdC5pczpmdW5jdGlvbihlLG4pe3JldHVybiBlPT09biYmKDAhPT1lfHwxL2U9PTEvbil8fGUhPWUmJm4hPW59O2Z1bmN0aW9uIGlyKGUsbil7aWYob3IoZSxuKSlyZXR1cm4hMDtpZigib2JqZWN0IiE9dHlwZW9mIGV8fG51bGw9PT1lfHwib2JqZWN0IiE9dHlwZW9mIG58fG51bGw9PT1uKXJldHVybiExO3ZhciB0PU9iamVjdC5rZXlzKGUpLHI9T2JqZWN0LmtleXMobik7aWYodC5sZW5ndGghPT1yLmxlbmd0aClyZXR1cm4hMTtmb3Iocj0wO3I8dC5sZW5ndGg7cisrKXt2YXIgbD10W3JdO2lmKCFmLmNhbGwobixsKXx8IW9yKGVbbF0sbltsXSkpcmV0dXJuITF9cmV0dXJuITB9ZnVuY3Rpb24gc3IoZSl7Zm9yKDtlJiZlLmZpcnN0Q2hpbGQ7KWU9ZS5maXJzdENoaWxkO3JldHVybiBlfWZ1bmN0aW9uIGNyKGUsbil7dmFyIHQscj1zcihlKTtmb3IoZT0wO3I7KXtpZigzPT09ci5ub2RlVHlwZSl7aWYodD1lK3IudGV4dENvbnRlbnQubGVuZ3RoLGU8PW4mJnQ+PW4pcmV0dXJue25vZGU6cixvZmZzZXQ6bi1lfTtlPXR9ZTp7Zm9yKDtyOyl7aWYoci5uZXh0U2libGluZyl7cj1yLm5leHRTaWJsaW5nO2JyZWFrIGV9cj1yLnBhcmVudE5vZGV9cj12b2lkIDB9cj1zcihyKX19ZnVuY3Rpb24gZnIoZSxuKXtyZXR1cm4hKCFlfHwhbikmJihlPT09bnx8KCFlfHwzIT09ZS5ub2RlVHlwZSkmJihuJiYzPT09bi5ub2RlVHlwZT9mcihlLG4ucGFyZW50Tm9kZSk6ImNvbnRhaW5zImluIGU/ZS5jb250YWlucyhuKTohIWUuY29tcGFyZURvY3VtZW50UG9zaXRpb24mJiEhKDE2JmUuY29tcGFyZURvY3VtZW50UG9zaXRpb24obikpKSl9ZnVuY3Rpb24gZHIoKXtmb3IodmFyIGU9d2luZG93LG49SygpO24gaW5zdGFuY2VvZiBlLkhUTUxJRnJhbWVFbGVtZW50Oyl7dHJ5e3ZhciB0PSJzdHJpbmciPT10eXBlb2Ygbi5jb250ZW50V2luZG93LmxvY2F0aW9uLmhyZWZ9Y2F0Y2goZSl7dD0hMX1pZighdClicmVhaztuPUsoKGU9bi5jb250ZW50V2luZG93KS5kb2N1bWVudCl9cmV0dXJuIG59ZnVuY3Rpb24gcHIoZSl7dmFyIG49ZSYmZS5ub2RlTmFtZSYmZS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpO3JldHVybiBuJiYoImlucHV0Ij09PW4mJigidGV4dCI9PT1lLnR5cGV8fCJzZWFyY2giPT09ZS50eXBlfHwidGVsIj09PWUudHlwZXx8InVybCI9PT1lLnR5cGV8fCJwYXNzd29yZCI9PT1lLnR5cGUpfHwidGV4dGFyZWEiPT09bnx8InRydWUiPT09ZS5jb250ZW50RWRpdGFibGUpfWZ1bmN0aW9uIG1yKGUpe3ZhciBuPWRyKCksdD1lLmZvY3VzZWRFbGVtLHI9ZS5zZWxlY3Rpb25SYW5nZTtpZihuIT09dCYmdCYmdC5vd25lckRvY3VtZW50JiZmcih0Lm93bmVyRG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LHQpKXtpZihudWxsIT09ciYmcHIodCkpaWYobj1yLnN0YXJ0LHZvaWQgMD09PShlPXIuZW5kKSYmKGU9biksInNlbGVjdGlvblN0YXJ0ImluIHQpdC5zZWxlY3Rpb25TdGFydD1uLHQuc2VsZWN0aW9uRW5kPU1hdGgubWluKGUsdC52YWx1ZS5sZW5ndGgpO2Vsc2UgaWYoKGU9KG49dC5vd25lckRvY3VtZW50fHxkb2N1bWVudCkmJm4uZGVmYXVsdFZpZXd8fHdpbmRvdykuZ2V0U2VsZWN0aW9uKXtlPWUuZ2V0U2VsZWN0aW9uKCk7dmFyIGw9dC50ZXh0Q29udGVudC5sZW5ndGgsYT1NYXRoLm1pbihyLnN0YXJ0LGwpO3I9dm9pZCAwPT09ci5lbmQ/YTpNYXRoLm1pbihyLmVuZCxsKSwhZS5leHRlbmQmJmE+ciYmKGw9cixyPWEsYT1sKSxsPWNyKHQsYSk7dmFyIHU9Y3IodCxyKTtsJiZ1JiYoMSE9PWUucmFuZ2VDb3VudHx8ZS5hbmNob3JOb2RlIT09bC5ub2RlfHxlLmFuY2hvck9mZnNldCE9PWwub2Zmc2V0fHxlLmZvY3VzTm9kZSE9PXUubm9kZXx8ZS5mb2N1c09mZnNldCE9PXUub2Zmc2V0KSYmKChuPW4uY3JlYXRlUmFuZ2UoKSkuc2V0U3RhcnQobC5ub2RlLGwub2Zmc2V0KSxlLnJlbW92ZUFsbFJhbmdlcygpLGE+cj8oZS5hZGRSYW5nZShuKSxlLmV4dGVuZCh1Lm5vZGUsdS5vZmZzZXQpKToobi5zZXRFbmQodS5ub2RlLHUub2Zmc2V0KSxlLmFkZFJhbmdlKG4pKSl9Zm9yKG49W10sZT10O2U9ZS5wYXJlbnROb2RlOykxPT09ZS5ub2RlVHlwZSYmbi5wdXNoKHtlbGVtZW50OmUsbGVmdDplLnNjcm9sbExlZnQsdG9wOmUuc2Nyb2xsVG9wfSk7Zm9yKCJmdW5jdGlvbiI9PXR5cGVvZiB0LmZvY3VzJiZ0LmZvY3VzKCksdD0wO3Q8bi5sZW5ndGg7dCsrKShlPW5bdF0pLmVsZW1lbnQuc2Nyb2xsTGVmdD1lLmxlZnQsZS5lbGVtZW50LnNjcm9sbFRvcD1lLnRvcH19dmFyIGhyPWMmJiJkb2N1bWVudE1vZGUiaW4gZG9jdW1lbnQmJjExPj1kb2N1bWVudC5kb2N1bWVudE1vZGUsZ3I9bnVsbCx2cj1udWxsLHlyPW51bGwsYnI9ITE7ZnVuY3Rpb24ga3IoZSxuLHQpe3ZhciByPXQud2luZG93PT09dD90LmRvY3VtZW50Ojk9PT10Lm5vZGVUeXBlP3Q6dC5vd25lckRvY3VtZW50O2JyfHxudWxsPT1ncnx8Z3IhPT1LKHIpfHwoInNlbGVjdGlvblN0YXJ0ImluKHI9Z3IpJiZwcihyKT9yPXtzdGFydDpyLnNlbGVjdGlvblN0YXJ0LGVuZDpyLnNlbGVjdGlvbkVuZAp9OnI9e2FuY2hvck5vZGU6KHI9KHIub3duZXJEb2N1bWVudCYmci5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3fHx3aW5kb3cpLmdldFNlbGVjdGlvbigpKS5hbmNob3JOb2RlLGFuY2hvck9mZnNldDpyLmFuY2hvck9mZnNldCxmb2N1c05vZGU6ci5mb2N1c05vZGUsZm9jdXNPZmZzZXQ6ci5mb2N1c09mZnNldH0seXImJmlyKHlyLHIpfHwoeXI9ciwwPChyPSRyKHZyLCJvblNlbGVjdCIpKS5sZW5ndGgmJihuPW5ldyBjdCgib25TZWxlY3QiLCJzZWxlY3QiLG51bGwsbix0KSxlLnB1c2goe2V2ZW50Om4sbGlzdGVuZXJzOnJ9KSxuLnRhcmdldD1ncikpKX1mdW5jdGlvbiB3cihlLG4pe3ZhciB0PXt9O3JldHVybiB0W2UudG9Mb3dlckNhc2UoKV09bi50b0xvd2VyQ2FzZSgpLHRbIldlYmtpdCIrZV09IndlYmtpdCIrbix0WyJNb3oiK2VdPSJtb3oiK24sdH12YXIgU3I9e2FuaW1hdGlvbmVuZDp3cigiQW5pbWF0aW9uIiwiQW5pbWF0aW9uRW5kIiksYW5pbWF0aW9uaXRlcmF0aW9uOndyKCJBbmltYXRpb24iLCJBbmltYXRpb25JdGVyYXRpb24iKSxhbmltYXRpb25zdGFydDp3cigiQW5pbWF0aW9uIiwiQW5pbWF0aW9uU3RhcnQiKSx0cmFuc2l0aW9uZW5kOndyKCJUcmFuc2l0aW9uIiwiVHJhbnNpdGlvbkVuZCIpfSx4cj17fSxFcj17fTtmdW5jdGlvbiBDcihlKXtpZih4cltlXSlyZXR1cm4geHJbZV07aWYoIVNyW2VdKXJldHVybiBlO3ZhciBuLHQ9U3JbZV07Zm9yKG4gaW4gdClpZih0Lmhhc093blByb3BlcnR5KG4pJiZuIGluIEVyKXJldHVybiB4cltlXT10W25dO3JldHVybiBlfWMmJihFcj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKS5zdHlsZSwiQW5pbWF0aW9uRXZlbnQiaW4gd2luZG93fHwoZGVsZXRlIFNyLmFuaW1hdGlvbmVuZC5hbmltYXRpb24sZGVsZXRlIFNyLmFuaW1hdGlvbml0ZXJhdGlvbi5hbmltYXRpb24sZGVsZXRlIFNyLmFuaW1hdGlvbnN0YXJ0LmFuaW1hdGlvbiksIlRyYW5zaXRpb25FdmVudCJpbiB3aW5kb3d8fGRlbGV0ZSBTci50cmFuc2l0aW9uZW5kLnRyYW5zaXRpb24pO3ZhciB6cj1DcigiYW5pbWF0aW9uZW5kIiksTnI9Q3IoImFuaW1hdGlvbml0ZXJhdGlvbiIpLF9yPUNyKCJhbmltYXRpb25zdGFydCIpLFByPUNyKCJ0cmFuc2l0aW9uZW5kIiksVHI9bmV3IE1hcCxMcj0iYWJvcnQgYXV4Q2xpY2sgY2FuY2VsIGNhblBsYXkgY2FuUGxheVRocm91Z2ggY2xpY2sgY2xvc2UgY29udGV4dE1lbnUgY29weSBjdXQgZHJhZyBkcmFnRW5kIGRyYWdFbnRlciBkcmFnRXhpdCBkcmFnTGVhdmUgZHJhZ092ZXIgZHJhZ1N0YXJ0IGRyb3AgZHVyYXRpb25DaGFuZ2UgZW1wdGllZCBlbmNyeXB0ZWQgZW5kZWQgZXJyb3IgZ290UG9pbnRlckNhcHR1cmUgaW5wdXQgaW52YWxpZCBrZXlEb3duIGtleVByZXNzIGtleVVwIGxvYWQgbG9hZGVkRGF0YSBsb2FkZWRNZXRhZGF0YSBsb2FkU3RhcnQgbG9zdFBvaW50ZXJDYXB0dXJlIG1vdXNlRG93biBtb3VzZU1vdmUgbW91c2VPdXQgbW91c2VPdmVyIG1vdXNlVXAgcGFzdGUgcGF1c2UgcGxheSBwbGF5aW5nIHBvaW50ZXJDYW5jZWwgcG9pbnRlckRvd24gcG9pbnRlck1vdmUgcG9pbnRlck91dCBwb2ludGVyT3ZlciBwb2ludGVyVXAgcHJvZ3Jlc3MgcmF0ZUNoYW5nZSByZXNldCByZXNpemUgc2Vla2VkIHNlZWtpbmcgc3RhbGxlZCBzdWJtaXQgc3VzcGVuZCB0aW1lVXBkYXRlIHRvdWNoQ2FuY2VsIHRvdWNoRW5kIHRvdWNoU3RhcnQgdm9sdW1lQ2hhbmdlIHNjcm9sbCB0b2dnbGUgdG91Y2hNb3ZlIHdhaXRpbmcgd2hlZWwiLnNwbGl0KCIgIik7ZnVuY3Rpb24gTXIoZSxuKXtUci5zZXQoZSxuKSxpKG4sW2VdKX1mb3IodmFyIEZyPTA7RnI8THIubGVuZ3RoO0ZyKyspe3ZhciBScj1McltGcl07TXIoUnIudG9Mb3dlckNhc2UoKSwib24iKyhSclswXS50b1VwcGVyQ2FzZSgpK1JyLnNsaWNlKDEpKSl9TXIoenIsIm9uQW5pbWF0aW9uRW5kIiksTXIoTnIsIm9uQW5pbWF0aW9uSXRlcmF0aW9uIiksTXIoX3IsIm9uQW5pbWF0aW9uU3RhcnQiKSxNcigiZGJsY2xpY2siLCJvbkRvdWJsZUNsaWNrIiksTXIoImZvY3VzaW4iLCJvbkZvY3VzIiksTXIoImZvY3Vzb3V0Iiwib25CbHVyIiksTXIoUHIsIm9uVHJhbnNpdGlvbkVuZCIpLHMoIm9uTW91c2VFbnRlciIsWyJtb3VzZW91dCIsIm1vdXNlb3ZlciJdKSxzKCJvbk1vdXNlTGVhdmUiLFsibW91c2VvdXQiLCJtb3VzZW92ZXIiXSkscygib25Qb2ludGVyRW50ZXIiLFsicG9pbnRlcm91dCIsInBvaW50ZXJvdmVyIl0pLHMoIm9uUG9pbnRlckxlYXZlIixbInBvaW50ZXJvdXQiLCJwb2ludGVyb3ZlciJdKSxpKCJvbkNoYW5nZSIsImNoYW5nZSBjbGljayBmb2N1c2luIGZvY3Vzb3V0IGlucHV0IGtleWRvd24ga2V5dXAgc2VsZWN0aW9uY2hhbmdlIi5zcGxpdCgiICIpKSxpKCJvblNlbGVjdCIsImZvY3Vzb3V0IGNvbnRleHRtZW51IGRyYWdlbmQgZm9jdXNpbiBrZXlkb3duIGtleXVwIG1vdXNlZG93biBtb3VzZXVwIHNlbGVjdGlvbmNoYW5nZSIuc3BsaXQoIiAiKSksaSgib25CZWZvcmVJbnB1dCIsWyJjb21wb3NpdGlvbmVuZCIsImtleXByZXNzIiwidGV4dElucHV0IiwicGFzdGUiXSksaSgib25Db21wb3NpdGlvbkVuZCIsImNvbXBvc2l0aW9uZW5kIGZvY3Vzb3V0IGtleWRvd24ga2V5cHJlc3Mga2V5dXAgbW91c2Vkb3duIi5zcGxpdCgiICIpKSxpKCJvbkNvbXBvc2l0aW9uU3RhcnQiLCJjb21wb3NpdGlvbnN0YXJ0IGZvY3Vzb3V0IGtleWRvd24ga2V5cHJlc3Mga2V5dXAgbW91c2Vkb3duIi5zcGxpdCgiICIpKSxpKCJvbkNvbXBvc2l0aW9uVXBkYXRlIiwiY29tcG9zaXRpb251cGRhdGUgZm9jdXNvdXQga2V5ZG93biBrZXlwcmVzcyBrZXl1cCBtb3VzZWRvd24iLnNwbGl0KCIgIikpCjt2YXIgRHI9ImFib3J0IGNhbnBsYXkgY2FucGxheXRocm91Z2ggZHVyYXRpb25jaGFuZ2UgZW1wdGllZCBlbmNyeXB0ZWQgZW5kZWQgZXJyb3IgbG9hZGVkZGF0YSBsb2FkZWRtZXRhZGF0YSBsb2Fkc3RhcnQgcGF1c2UgcGxheSBwbGF5aW5nIHByb2dyZXNzIHJhdGVjaGFuZ2UgcmVzaXplIHNlZWtlZCBzZWVraW5nIHN0YWxsZWQgc3VzcGVuZCB0aW1ldXBkYXRlIHZvbHVtZWNoYW5nZSB3YWl0aW5nIi5zcGxpdCgiICIpLElyPW5ldyBTZXQoImNhbmNlbCBjbG9zZSBpbnZhbGlkIGxvYWQgc2Nyb2xsIHRvZ2dsZSIuc3BsaXQoIiAiKS5jb25jYXQoRHIpKTtmdW5jdGlvbiBPcihlLG4sdCl7dmFyIHI9ZS50eXBlfHwidW5rbm93bi1ldmVudCI7ZS5jdXJyZW50VGFyZ2V0PXQsZnVuY3Rpb24oZSxuLHQscixsLHUsbyxpLHMpe2lmKEJlLmFwcGx5KHRoaXMsYXJndW1lbnRzKSxJZSl7aWYoIUllKXRocm93IEVycm9yKGEoMTk4KSk7dmFyIGM9T2U7SWU9ITEsT2U9bnVsbCxVZXx8KFVlPSEwLFZlPWMpfX0ocixuLHZvaWQgMCxlKSxlLmN1cnJlbnRUYXJnZXQ9bnVsbH1mdW5jdGlvbiBVcihlLG4pe249ISEoNCZuKTtmb3IodmFyIHQ9MDt0PGUubGVuZ3RoO3QrKyl7dmFyIHI9ZVt0XSxsPXIuZXZlbnQ7cj1yLmxpc3RlbmVycztlOnt2YXIgYT12b2lkIDA7aWYobilmb3IodmFyIHU9ci5sZW5ndGgtMTswPD11O3UtLSl7dmFyIG89clt1XSxpPW8uaW5zdGFuY2Uscz1vLmN1cnJlbnRUYXJnZXQ7aWYobz1vLmxpc3RlbmVyLGkhPT1hJiZsLmlzUHJvcGFnYXRpb25TdG9wcGVkKCkpYnJlYWsgZTtPcihsLG8scyksYT1pfWVsc2UgZm9yKHU9MDt1PHIubGVuZ3RoO3UrKyl7aWYoaT0obz1yW3VdKS5pbnN0YW5jZSxzPW8uY3VycmVudFRhcmdldCxvPW8ubGlzdGVuZXIsaSE9PWEmJmwuaXNQcm9wYWdhdGlvblN0b3BwZWQoKSlicmVhayBlO09yKGwsbyxzKSxhPWl9fX1pZihVZSl0aHJvdyBlPVZlLFVlPSExLFZlPW51bGwsZX1mdW5jdGlvbiBWcihlLG4pe3ZhciB0PW5baGxdO3ZvaWQgMD09PXQmJih0PW5baGxdPW5ldyBTZXQpO3ZhciByPWUrIl9fYnViYmxlIjt0LmhhcyhyKXx8KEhyKG4sZSwyLCExKSx0LmFkZChyKSl9ZnVuY3Rpb24gQXIoZSxuLHQpe3ZhciByPTA7biYmKHJ8PTQpLEhyKHQsZSxyLG4pfXZhciBCcj0iX3JlYWN0TGlzdGVuaW5nIitNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zbGljZSgyKTtmdW5jdGlvbiBXcihlKXtpZighZVtCcl0pe2VbQnJdPSEwLHUuZm9yRWFjaCgoZnVuY3Rpb24obil7InNlbGVjdGlvbmNoYW5nZSIhPT1uJiYoSXIuaGFzKG4pfHxBcihuLCExLGUpLEFyKG4sITAsZSkpfSkpO3ZhciBuPTk9PT1lLm5vZGVUeXBlP2U6ZS5vd25lckRvY3VtZW50O251bGw9PT1ufHxuW0JyXXx8KG5bQnJdPSEwLEFyKCJzZWxlY3Rpb25jaGFuZ2UiLCExLG4pKX19ZnVuY3Rpb24gSHIoZSxuLHQscil7c3dpdGNoKEduKG4pKXtjYXNlIDE6dmFyIGw9JG47YnJlYWs7Y2FzZSA0Omw9cW47YnJlYWs7ZGVmYXVsdDpsPUtufXQ9bC5iaW5kKG51bGwsbix0LGUpLGw9dm9pZCAwLCFGZXx8InRvdWNoc3RhcnQiIT09biYmInRvdWNobW92ZSIhPT1uJiYid2hlZWwiIT09bnx8KGw9ITApLHI/dm9pZCAwIT09bD9lLmFkZEV2ZW50TGlzdGVuZXIobix0LHtjYXB0dXJlOiEwLHBhc3NpdmU6bH0pOmUuYWRkRXZlbnRMaXN0ZW5lcihuLHQsITApOnZvaWQgMCE9PWw/ZS5hZGRFdmVudExpc3RlbmVyKG4sdCx7cGFzc2l2ZTpsfSk6ZS5hZGRFdmVudExpc3RlbmVyKG4sdCwhMSl9ZnVuY3Rpb24gUXIoZSxuLHQscixsKXt2YXIgYT1yO2lmKCEoMSZufHwyJm58fG51bGw9PT1yKSllOmZvcig7Oyl7aWYobnVsbD09PXIpcmV0dXJuO3ZhciB1PXIudGFnO2lmKDM9PT11fHw0PT09dSl7dmFyIG89ci5zdGF0ZU5vZGUuY29udGFpbmVySW5mbztpZihvPT09bHx8OD09PW8ubm9kZVR5cGUmJm8ucGFyZW50Tm9kZT09PWwpYnJlYWs7aWYoND09PXUpZm9yKHU9ci5yZXR1cm47bnVsbCE9PXU7KXt2YXIgaT11LnRhZztpZigoMz09PWl8fDQ9PT1pKSYmKChpPXUuc3RhdGVOb2RlLmNvbnRhaW5lckluZm8pPT09bHx8OD09PWkubm9kZVR5cGUmJmkucGFyZW50Tm9kZT09PWwpKXJldHVybjt1PXUucmV0dXJufWZvcig7bnVsbCE9PW87KXtpZihudWxsPT09KHU9eWwobykpKXJldHVybjtpZig1PT09KGk9dS50YWcpfHw2PT09aSl7cj1hPXU7Y29udGludWUgZX1vPW8ucGFyZW50Tm9kZX19cj1yLnJldHVybn1MZSgoZnVuY3Rpb24oKXt2YXIgcj1hLGw9d2UodCksdT1bXTtlOnt2YXIgbz1Uci5nZXQoZSk7aWYodm9pZCAwIT09byl7dmFyIGk9Y3Qscz1lO3N3aXRjaChlKXtjYXNlImtleXByZXNzIjppZigwPT09dHQodCkpYnJlYWsgZTtjYXNlImtleWRvd24iOmNhc2Uia2V5dXAiOmk9TnQ7YnJlYWs7Y2FzZSJmb2N1c2luIjpzPSJmb2N1cyIsaT1ndDticmVhaztjYXNlImZvY3Vzb3V0IjpzPSJibHVyIixpPWd0O2JyZWFrO2Nhc2UiYmVmb3JlYmx1ciI6Y2FzZSJhZnRlcmJsdXIiOmk9Z3Q7YnJlYWs7Y2FzZSJjbGljayI6aWYoMj09PXQuYnV0dG9uKWJyZWFrIGU7Y2FzZSJhdXhjbGljayI6Y2FzZSJkYmxjbGljayI6Y2FzZSJtb3VzZWRvd24iOmNhc2UibW91c2Vtb3ZlIjpjYXNlIm1vdXNldXAiOmNhc2UibW91c2VvdXQiOmNhc2UibW91c2VvdmVyIjpjYXNlImNvbnRleHRtZW51IjppPW10O2JyZWFrO2Nhc2UiZHJhZyI6Y2FzZSJkcmFnZW5kIjpjYXNlImRyYWdlbnRlciI6Y2FzZSJkcmFnZXhpdCI6Y2FzZSJkcmFnbGVhdmUiOmNhc2UiZHJhZ292ZXIiOmNhc2UiZHJhZ3N0YXJ0IjpjYXNlImRyb3AiOmk9aHQ7YnJlYWs7Y2FzZSJ0b3VjaGNhbmNlbCI6Y2FzZSJ0b3VjaGVuZCI6Y2FzZSJ0b3VjaG1vdmUiOmNhc2UidG91Y2hzdGFydCI6aT1QdDticmVhaztjYXNlIHpyOmNhc2UgTnI6Y2FzZSBfcjppPXZ0O2JyZWFrO2Nhc2UgUHI6aT1UdDticmVhaztjYXNlInNjcm9sbCI6aT1kdDticmVhaztjYXNlIndoZWVsIjppPU10O2JyZWFrO2Nhc2UiY29weSI6Y2FzZSJjdXQiOmNhc2UicGFzdGUiOmk9YnQ7YnJlYWs7Y2FzZSJnb3Rwb2ludGVyY2FwdHVyZSI6Y2FzZSJsb3N0cG9pbnRlcmNhcHR1cmUiOgpjYXNlInBvaW50ZXJjYW5jZWwiOmNhc2UicG9pbnRlcmRvd24iOmNhc2UicG9pbnRlcm1vdmUiOmNhc2UicG9pbnRlcm91dCI6Y2FzZSJwb2ludGVyb3ZlciI6Y2FzZSJwb2ludGVydXAiOmk9X3R9dmFyIGM9ISEoNCZuKSxmPSFjJiYic2Nyb2xsIj09PWUsZD1jP251bGwhPT1vP28rIkNhcHR1cmUiOm51bGw6bztjPVtdO2Zvcih2YXIgcCxtPXI7bnVsbCE9PW07KXt2YXIgaD0ocD1tKS5zdGF0ZU5vZGU7aWYoNT09PXAudGFnJiZudWxsIT09aCYmKHA9aCxudWxsIT09ZCYmKG51bGwhPShoPU1lKG0sZCkpJiZjLnB1c2goanIobSxoLHApKSkpLGYpYnJlYWs7bT1tLnJldHVybn0wPGMubGVuZ3RoJiYobz1uZXcgaShvLHMsbnVsbCx0LGwpLHUucHVzaCh7ZXZlbnQ6byxsaXN0ZW5lcnM6Y30pKX19aWYoISg3Jm4pKXtpZihpPSJtb3VzZW91dCI9PT1lfHwicG9pbnRlcm91dCI9PT1lLCghKG89Im1vdXNlb3ZlciI9PT1lfHwicG9pbnRlcm92ZXIiPT09ZSl8fHQ9PT1rZXx8IShzPXQucmVsYXRlZFRhcmdldHx8dC5mcm9tRWxlbWVudCl8fCF5bChzKSYmIXNbbWxdKSYmKGl8fG8pJiYobz1sLndpbmRvdz09PWw/bDoobz1sLm93bmVyRG9jdW1lbnQpP28uZGVmYXVsdFZpZXd8fG8ucGFyZW50V2luZG93OndpbmRvdyxpPyhpPXIsbnVsbCE9PShzPShzPXQucmVsYXRlZFRhcmdldHx8dC50b0VsZW1lbnQpP3lsKHMpOm51bGwpJiYocyE9PShmPVdlKHMpKXx8NSE9PXMudGFnJiY2IT09cy50YWcpJiYocz1udWxsKSk6KGk9bnVsbCxzPXIpLGkhPT1zKSl7aWYoYz1tdCxoPSJvbk1vdXNlTGVhdmUiLGQ9Im9uTW91c2VFbnRlciIsbT0ibW91c2UiLCJwb2ludGVyb3V0IiE9PWUmJiJwb2ludGVyb3ZlciIhPT1lfHwoYz1fdCxoPSJvblBvaW50ZXJMZWF2ZSIsZD0ib25Qb2ludGVyRW50ZXIiLG09InBvaW50ZXIiKSxmPW51bGw9PWk/bzprbChpKSxwPW51bGw9PXM/bzprbChzKSwobz1uZXcgYyhoLG0rImxlYXZlIixpLHQsbCkpLnRhcmdldD1mLG8ucmVsYXRlZFRhcmdldD1wLGg9bnVsbCx5bChsKT09PXImJigoYz1uZXcgYyhkLG0rImVudGVyIixzLHQsbCkpLnRhcmdldD1wLGMucmVsYXRlZFRhcmdldD1mLGg9YyksZj1oLGkmJnMpZTp7Zm9yKGQ9cyxtPTAscD1jPWk7cDtwPXFyKHApKW0rKztmb3IocD0wLGg9ZDtoO2g9cXIoaCkpcCsrO2Zvcig7MDxtLXA7KWM9cXIoYyksbS0tO2Zvcig7MDxwLW07KWQ9cXIoZCkscC0tO2Zvcig7bS0tOyl7aWYoYz09PWR8fG51bGwhPT1kJiZjPT09ZC5hbHRlcm5hdGUpYnJlYWsgZTtjPXFyKGMpLGQ9cXIoZCl9Yz1udWxsfWVsc2UgYz1udWxsO251bGwhPT1pJiZLcih1LG8saSxjLCExKSxudWxsIT09cyYmbnVsbCE9PWYmJktyKHUsZixzLGMsITApfWlmKCJzZWxlY3QiPT09KGk9KG89cj9rbChyKTp3aW5kb3cpLm5vZGVOYW1lJiZvLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkpfHwiaW5wdXQiPT09aSYmImZpbGUiPT09by50eXBlKXZhciBnPVh0O2Vsc2UgaWYoUXQobykpaWYoR3QpZz11cjtlbHNle2c9bHI7dmFyIHY9cnJ9ZWxzZShpPW8ubm9kZU5hbWUpJiYiaW5wdXQiPT09aS50b0xvd2VyQ2FzZSgpJiYoImNoZWNrYm94Ij09PW8udHlwZXx8InJhZGlvIj09PW8udHlwZSkmJihnPWFyKTtzd2l0Y2goZyYmKGc9ZyhlLHIpKT9qdCh1LGcsdCxsKToodiYmdihlLG8sciksImZvY3Vzb3V0Ij09PWUmJih2PW8uX3dyYXBwZXJTdGF0ZSkmJnYuY29udHJvbGxlZCYmIm51bWJlciI9PT1vLnR5cGUmJmVlKG8sIm51bWJlciIsby52YWx1ZSkpLHY9cj9rbChyKTp3aW5kb3csZSl7Y2FzZSJmb2N1c2luIjooUXQodil8fCJ0cnVlIj09PXYuY29udGVudEVkaXRhYmxlKSYmKGdyPXYsdnI9cix5cj1udWxsKTticmVhaztjYXNlImZvY3Vzb3V0Ijp5cj12cj1ncj1udWxsO2JyZWFrO2Nhc2UibW91c2Vkb3duIjpicj0hMDticmVhaztjYXNlImNvbnRleHRtZW51IjpjYXNlIm1vdXNldXAiOmNhc2UiZHJhZ2VuZCI6YnI9ITEsa3IodSx0LGwpO2JyZWFrO2Nhc2Uic2VsZWN0aW9uY2hhbmdlIjppZihocilicmVhaztjYXNlImtleWRvd24iOmNhc2Uia2V5dXAiOmtyKHUsdCxsKX12YXIgeTtpZihSdCllOntzd2l0Y2goZSl7Y2FzZSJjb21wb3NpdGlvbnN0YXJ0Ijp2YXIgYj0ib25Db21wb3NpdGlvblN0YXJ0IjticmVhayBlO2Nhc2UiY29tcG9zaXRpb25lbmQiOmI9Im9uQ29tcG9zaXRpb25FbmQiO2JyZWFrIGU7Y2FzZSJjb21wb3NpdGlvbnVwZGF0ZSI6Yj0ib25Db21wb3NpdGlvblVwZGF0ZSI7YnJlYWsgZX1iPXZvaWQgMH1lbHNlIFd0P0F0KGUsdCkmJihiPSJvbkNvbXBvc2l0aW9uRW5kIik6ImtleWRvd24iPT09ZSYmMjI5PT09dC5rZXlDb2RlJiYoYj0ib25Db21wb3NpdGlvblN0YXJ0Iik7YiYmKE90JiYia28iIT09dC5sb2NhbGUmJihXdHx8Im9uQ29tcG9zaXRpb25TdGFydCIhPT1iPyJvbkNvbXBvc2l0aW9uRW5kIj09PWImJld0JiYoeT1udCgpKTooSm49InZhbHVlImluKFpuPWwpP1puLnZhbHVlOlpuLnRleHRDb250ZW50LFd0PSEwKSksMDwodj0kcihyLGIpKS5sZW5ndGgmJihiPW5ldyBrdChiLGUsbnVsbCx0LGwpLHUucHVzaCh7ZXZlbnQ6YixsaXN0ZW5lcnM6dn0pLHk/Yi5kYXRhPXk6bnVsbCE9PSh5PUJ0KHQpKSYmKGIuZGF0YT15KSkpLCh5PUl0P2Z1bmN0aW9uKGUsbil7c3dpdGNoKGUpe2Nhc2UiY29tcG9zaXRpb25lbmQiOnJldHVybiBCdChuKTtjYXNlImtleXByZXNzIjpyZXR1cm4gMzIhPT1uLndoaWNoP251bGw6KFZ0PSEwLFV0KTtjYXNlInRleHRJbnB1dCI6cmV0dXJuKGU9bi5kYXRhKT09PVV0JiZWdD9udWxsOmU7ZGVmYXVsdDpyZXR1cm4gbnVsbH19KGUsdCk6ZnVuY3Rpb24oZSxuKXtpZihXdClyZXR1cm4iY29tcG9zaXRpb25lbmQiPT09ZXx8IVJ0JiZBdChlLG4pPyhlPW50KCksZXQ9Sm49Wm49bnVsbCxXdD0hMSxlKTpudWxsO3N3aXRjaChlKXtjYXNlInBhc3RlIjpkZWZhdWx0OnJldHVybiBudWxsO2Nhc2Uia2V5cHJlc3MiOmlmKCEobi5jdHJsS2V5fHxuLmFsdEtleXx8bi5tZXRhS2V5KXx8bi5jdHJsS2V5JiZuLmFsdEtleSl7aWYobi5jaGFyJiYxPG4uY2hhci5sZW5ndGgpcmV0dXJuIG4uY2hhcgo7aWYobi53aGljaClyZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZShuLndoaWNoKX1yZXR1cm4gbnVsbDtjYXNlImNvbXBvc2l0aW9uZW5kIjpyZXR1cm4gT3QmJiJrbyIhPT1uLmxvY2FsZT9udWxsOm4uZGF0YX19KGUsdCkpJiYoMDwocj0kcihyLCJvbkJlZm9yZUlucHV0IikpLmxlbmd0aCYmKGw9bmV3IGt0KCJvbkJlZm9yZUlucHV0IiwiYmVmb3JlaW5wdXQiLG51bGwsdCxsKSx1LnB1c2goe2V2ZW50OmwsbGlzdGVuZXJzOnJ9KSxsLmRhdGE9eSkpfVVyKHUsbil9KSl9ZnVuY3Rpb24ganIoZSxuLHQpe3JldHVybntpbnN0YW5jZTplLGxpc3RlbmVyOm4sY3VycmVudFRhcmdldDp0fX1mdW5jdGlvbiAkcihlLG4pe2Zvcih2YXIgdD1uKyJDYXB0dXJlIixyPVtdO251bGwhPT1lOyl7dmFyIGw9ZSxhPWwuc3RhdGVOb2RlOzU9PT1sLnRhZyYmbnVsbCE9PWEmJihsPWEsbnVsbCE9KGE9TWUoZSx0KSkmJnIudW5zaGlmdChqcihlLGEsbCkpLG51bGwhPShhPU1lKGUsbikpJiZyLnB1c2goanIoZSxhLGwpKSksZT1lLnJldHVybn1yZXR1cm4gcn1mdW5jdGlvbiBxcihlKXtpZihudWxsPT09ZSlyZXR1cm4gbnVsbDtkb3tlPWUucmV0dXJufXdoaWxlKGUmJjUhPT1lLnRhZyk7cmV0dXJuIGV8fG51bGx9ZnVuY3Rpb24gS3IoZSxuLHQscixsKXtmb3IodmFyIGE9bi5fcmVhY3ROYW1lLHU9W107bnVsbCE9PXQmJnQhPT1yOyl7dmFyIG89dCxpPW8uYWx0ZXJuYXRlLHM9by5zdGF0ZU5vZGU7aWYobnVsbCE9PWkmJmk9PT1yKWJyZWFrOzU9PT1vLnRhZyYmbnVsbCE9PXMmJihvPXMsbD9udWxsIT0oaT1NZSh0LGEpKSYmdS51bnNoaWZ0KGpyKHQsaSxvKSk6bHx8bnVsbCE9KGk9TWUodCxhKSkmJnUucHVzaChqcih0LGksbykpKSx0PXQucmV0dXJufTAhPT11Lmxlbmd0aCYmZS5wdXNoKHtldmVudDpuLGxpc3RlbmVyczp1fSl9dmFyIFlyPS9cclxuPy9nLFhyPS9cdTAwMDB8XHVGRkZEL2c7ZnVuY3Rpb24gR3IoZSl7cmV0dXJuKCJzdHJpbmciPT10eXBlb2YgZT9lOiIiK2UpLnJlcGxhY2UoWXIsIlxuIikucmVwbGFjZShYciwiIil9ZnVuY3Rpb24gWnIoZSxuLHQpe2lmKG49R3IobiksR3IoZSkhPT1uJiZ0KXRocm93IEVycm9yKGEoNDI1KSl9ZnVuY3Rpb24gSnIoKXt9dmFyIGVsPW51bGwsbmw9bnVsbDtmdW5jdGlvbiB0bChlLG4pe3JldHVybiJ0ZXh0YXJlYSI9PT1lfHwibm9zY3JpcHQiPT09ZXx8InN0cmluZyI9PXR5cGVvZiBuLmNoaWxkcmVufHwibnVtYmVyIj09dHlwZW9mIG4uY2hpbGRyZW58fCJvYmplY3QiPT10eXBlb2Ygbi5kYW5nZXJvdXNseVNldElubmVySFRNTCYmbnVsbCE9PW4uZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwmJm51bGwhPW4uZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwuX19odG1sfXZhciBybD0iZnVuY3Rpb24iPT10eXBlb2Ygc2V0VGltZW91dD9zZXRUaW1lb3V0OnZvaWQgMCxsbD0iZnVuY3Rpb24iPT10eXBlb2YgY2xlYXJUaW1lb3V0P2NsZWFyVGltZW91dDp2b2lkIDAsYWw9ImZ1bmN0aW9uIj09dHlwZW9mIFByb21pc2U/UHJvbWlzZTp2b2lkIDAsdWw9ImZ1bmN0aW9uIj09dHlwZW9mIHF1ZXVlTWljcm90YXNrP3F1ZXVlTWljcm90YXNrOnZvaWQgMCE9PWFsP2Z1bmN0aW9uKGUpe3JldHVybiBhbC5yZXNvbHZlKG51bGwpLnRoZW4oZSkuY2F0Y2gob2wpfTpybDtmdW5jdGlvbiBvbChlKXtzZXRUaW1lb3V0KChmdW5jdGlvbigpe3Rocm93IGV9KSl9ZnVuY3Rpb24gaWwoZSxuKXt2YXIgdD1uLHI9MDtkb3t2YXIgbD10Lm5leHRTaWJsaW5nO2lmKGUucmVtb3ZlQ2hpbGQodCksbCYmOD09PWwubm9kZVR5cGUpaWYoIi8kIj09PSh0PWwuZGF0YSkpe2lmKDA9PT1yKXJldHVybiBlLnJlbW92ZUNoaWxkKGwpLHZvaWQgSG4obik7ci0tfWVsc2UiJCIhPT10JiYiJD8iIT09dCYmIiQhIiE9PXR8fHIrKzt0PWx9d2hpbGUodCk7SG4obil9ZnVuY3Rpb24gc2woZSl7Zm9yKDtudWxsIT1lO2U9ZS5uZXh0U2libGluZyl7dmFyIG49ZS5ub2RlVHlwZTtpZigxPT09bnx8Mz09PW4pYnJlYWs7aWYoOD09PW4pe2lmKCIkIj09PShuPWUuZGF0YSl8fCIkISI9PT1ufHwiJD8iPT09bilicmVhaztpZigiLyQiPT09bilyZXR1cm4gbnVsbH19cmV0dXJuIGV9ZnVuY3Rpb24gY2woZSl7ZT1lLnByZXZpb3VzU2libGluZztmb3IodmFyIG49MDtlOyl7aWYoOD09PWUubm9kZVR5cGUpe3ZhciB0PWUuZGF0YTtpZigiJCI9PT10fHwiJCEiPT09dHx8IiQ/Ij09PXQpe2lmKDA9PT1uKXJldHVybiBlO24tLX1lbHNlIi8kIj09PXQmJm4rK31lPWUucHJldmlvdXNTaWJsaW5nfXJldHVybiBudWxsfXZhciBmbD1NYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zbGljZSgyKSxkbD0iX19yZWFjdEZpYmVyJCIrZmwscGw9Il9fcmVhY3RQcm9wcyQiK2ZsLG1sPSJfX3JlYWN0Q29udGFpbmVyJCIrZmwsaGw9Il9fcmVhY3RFdmVudHMkIitmbCxnbD0iX19yZWFjdExpc3RlbmVycyQiK2ZsLHZsPSJfX3JlYWN0SGFuZGxlcyQiK2ZsO2Z1bmN0aW9uIHlsKGUpe3ZhciBuPWVbZGxdO2lmKG4pcmV0dXJuIG47Zm9yKHZhciB0PWUucGFyZW50Tm9kZTt0Oyl7aWYobj10W21sXXx8dFtkbF0pe2lmKHQ9bi5hbHRlcm5hdGUsbnVsbCE9PW4uY2hpbGR8fG51bGwhPT10JiZudWxsIT09dC5jaGlsZClmb3IoZT1jbChlKTtudWxsIT09ZTspe2lmKHQ9ZVtkbF0pcmV0dXJuIHQ7ZT1jbChlKX1yZXR1cm4gbn10PShlPXQpLnBhcmVudE5vZGV9cmV0dXJuIG51bGx9ZnVuY3Rpb24gYmwoZSl7cmV0dXJuIShlPWVbZGxdfHxlW21sXSl8fDUhPT1lLnRhZyYmNiE9PWUudGFnJiYxMyE9PWUudGFnJiYzIT09ZS50YWc/bnVsbDplfWZ1bmN0aW9uIGtsKGUpe2lmKDU9PT1lLnRhZ3x8Nj09PWUudGFnKXJldHVybiBlLnN0YXRlTm9kZTt0aHJvdyBFcnJvcihhKDMzKSl9ZnVuY3Rpb24gd2woZSl7cmV0dXJuIGVbcGxdfHxudWxsfXZhciBTbD1bXSx4bD0tMTtmdW5jdGlvbiBFbChlKXtyZXR1cm57Y3VycmVudDplfX1mdW5jdGlvbiBDbChlKXswPnhsfHwoZS5jdXJyZW50PVNsW3hsXSxTbFt4bF09bnVsbCx4bC0tKX1mdW5jdGlvbiB6bChlLG4pe3hsKyssU2xbeGxdPWUuY3VycmVudCxlLmN1cnJlbnQ9bn0KdmFyIE5sPXt9LF9sPUVsKE5sKSxQbD1FbCghMSksVGw9Tmw7ZnVuY3Rpb24gTGwoZSxuKXt2YXIgdD1lLnR5cGUuY29udGV4dFR5cGVzO2lmKCF0KXJldHVybiBObDt2YXIgcj1lLnN0YXRlTm9kZTtpZihyJiZyLl9fcmVhY3RJbnRlcm5hbE1lbW9pemVkVW5tYXNrZWRDaGlsZENvbnRleHQ9PT1uKXJldHVybiByLl9fcmVhY3RJbnRlcm5hbE1lbW9pemVkTWFza2VkQ2hpbGRDb250ZXh0O3ZhciBsLGE9e307Zm9yKGwgaW4gdClhW2xdPW5bbF07cmV0dXJuIHImJigoZT1lLnN0YXRlTm9kZSkuX19yZWFjdEludGVybmFsTWVtb2l6ZWRVbm1hc2tlZENoaWxkQ29udGV4dD1uLGUuX19yZWFjdEludGVybmFsTWVtb2l6ZWRNYXNrZWRDaGlsZENvbnRleHQ9YSksYX1mdW5jdGlvbiBNbChlKXtyZXR1cm4gbnVsbCE9KGU9ZS5jaGlsZENvbnRleHRUeXBlcyl9ZnVuY3Rpb24gRmwoKXtDbChQbCksQ2woX2wpfWZ1bmN0aW9uIFJsKGUsbix0KXtpZihfbC5jdXJyZW50IT09TmwpdGhyb3cgRXJyb3IoYSgxNjgpKTt6bChfbCxuKSx6bChQbCx0KX1mdW5jdGlvbiBEbChlLG4sdCl7dmFyIHI9ZS5zdGF0ZU5vZGU7aWYobj1uLmNoaWxkQ29udGV4dFR5cGVzLCJmdW5jdGlvbiIhPXR5cGVvZiByLmdldENoaWxkQ29udGV4dClyZXR1cm4gdDtmb3IodmFyIGwgaW4gcj1yLmdldENoaWxkQ29udGV4dCgpKWlmKCEobCBpbiBuKSl0aHJvdyBFcnJvcihhKDEwOCxIKGUpfHwiVW5rbm93biIsbCkpO3JldHVybiBPKHt9LHQscil9ZnVuY3Rpb24gSWwoZSl7cmV0dXJuIGU9KGU9ZS5zdGF0ZU5vZGUpJiZlLl9fcmVhY3RJbnRlcm5hbE1lbW9pemVkTWVyZ2VkQ2hpbGRDb250ZXh0fHxObCxUbD1fbC5jdXJyZW50LHpsKF9sLGUpLHpsKFBsLFBsLmN1cnJlbnQpLCEwfWZ1bmN0aW9uIE9sKGUsbix0KXt2YXIgcj1lLnN0YXRlTm9kZTtpZighcil0aHJvdyBFcnJvcihhKDE2OSkpO3Q/KGU9RGwoZSxuLFRsKSxyLl9fcmVhY3RJbnRlcm5hbE1lbW9pemVkTWVyZ2VkQ2hpbGRDb250ZXh0PWUsQ2woUGwpLENsKF9sKSx6bChfbCxlKSk6Q2woUGwpLHpsKFBsLHQpfXZhciBVbD1udWxsLFZsPSExLEFsPSExO2Z1bmN0aW9uIEJsKGUpe251bGw9PT1VbD9VbD1bZV06VWwucHVzaChlKX1mdW5jdGlvbiBXbCgpe2lmKCFBbCYmbnVsbCE9PVVsKXtBbD0hMDt2YXIgZT0wLG49a247dHJ5e3ZhciB0PVVsO2Zvcihrbj0xO2U8dC5sZW5ndGg7ZSsrKXt2YXIgcj10W2VdO2Rve3I9cighMCl9d2hpbGUobnVsbCE9PXIpfVVsPW51bGwsVmw9ITF9Y2F0Y2gobil7dGhyb3cgbnVsbCE9PVVsJiYoVWw9VWwuc2xpY2UoZSsxKSkscWUoSmUsV2wpLG59ZmluYWxseXtrbj1uLEFsPSExfX1yZXR1cm4gbnVsbH12YXIgSGw9W10sUWw9MCxqbD1udWxsLCRsPTAscWw9W10sS2w9MCxZbD1udWxsLFhsPTEsR2w9IiI7ZnVuY3Rpb24gWmwoZSxuKXtIbFtRbCsrXT0kbCxIbFtRbCsrXT1qbCxqbD1lLCRsPW59ZnVuY3Rpb24gSmwoZSxuLHQpe3FsW0tsKytdPVhsLHFsW0tsKytdPUdsLHFsW0tsKytdPVlsLFlsPWU7dmFyIHI9WGw7ZT1HbDt2YXIgbD0zMi11bihyKS0xO3ImPX4oMTw8bCksdCs9MTt2YXIgYT0zMi11bihuKStsO2lmKDMwPGEpe3ZhciB1PWwtbCU1O2E9KHImKDE8PHUpLTEpLnRvU3RyaW5nKDMyKSxyPj49dSxsLT11LFhsPTE8PDMyLXVuKG4pK2x8dDw8bHxyLEdsPWErZX1lbHNlIFhsPTE8PGF8dDw8bHxyLEdsPWV9ZnVuY3Rpb24gZWEoZSl7bnVsbCE9PWUucmV0dXJuJiYoWmwoZSwxKSxKbChlLDEsMCkpfWZ1bmN0aW9uIG5hKGUpe2Zvcig7ZT09PWpsOylqbD1IbFstLVFsXSxIbFtRbF09bnVsbCwkbD1IbFstLVFsXSxIbFtRbF09bnVsbDtmb3IoO2U9PT1ZbDspWWw9cWxbLS1LbF0scWxbS2xdPW51bGwsR2w9cWxbLS1LbF0scWxbS2xdPW51bGwsWGw9cWxbLS1LbF0scWxbS2xdPW51bGx9dmFyIHRhPW51bGwscmE9bnVsbCxsYT0hMSxhYT1udWxsO2Z1bmN0aW9uIHVhKGUsbil7dmFyIHQ9THMoNSxudWxsLG51bGwsMCk7dC5lbGVtZW50VHlwZT0iREVMRVRFRCIsdC5zdGF0ZU5vZGU9bix0LnJldHVybj1lLG51bGw9PT0obj1lLmRlbGV0aW9ucyk/KGUuZGVsZXRpb25zPVt0XSxlLmZsYWdzfD0xNik6bi5wdXNoKHQpfWZ1bmN0aW9uIG9hKGUsbil7c3dpdGNoKGUudGFnKXtjYXNlIDU6dmFyIHQ9ZS50eXBlO3JldHVybiBudWxsIT09KG49MSE9PW4ubm9kZVR5cGV8fHQudG9Mb3dlckNhc2UoKSE9PW4ubm9kZU5hbWUudG9Mb3dlckNhc2UoKT9udWxsOm4pJiYoZS5zdGF0ZU5vZGU9bix0YT1lLHJhPXNsKG4uZmlyc3RDaGlsZCksITApO2Nhc2UgNjpyZXR1cm4gbnVsbCE9PShuPSIiPT09ZS5wZW5kaW5nUHJvcHN8fDMhPT1uLm5vZGVUeXBlP251bGw6bikmJihlLnN0YXRlTm9kZT1uLHRhPWUscmE9bnVsbCwhMCk7Y2FzZSAxMzpyZXR1cm4gbnVsbCE9PShuPTghPT1uLm5vZGVUeXBlP251bGw6bikmJih0PW51bGwhPT1ZbD97aWQ6WGwsb3ZlcmZsb3c6R2x9Om51bGwsZS5tZW1vaXplZFN0YXRlPXtkZWh5ZHJhdGVkOm4sdHJlZUNvbnRleHQ6dCxyZXRyeUxhbmU6MTA3Mzc0MTgyNH0sKHQ9THMoMTgsbnVsbCxudWxsLDApKS5zdGF0ZU5vZGU9bix0LnJldHVybj1lLGUuY2hpbGQ9dCx0YT1lLHJhPW51bGwsITApO2RlZmF1bHQ6cmV0dXJuITF9fWZ1bmN0aW9uIGlhKGUpe3JldHVybiEoISgxJmUubW9kZSl8fDEyOCZlLmZsYWdzKX1mdW5jdGlvbiBzYShlKXtpZihsYSl7dmFyIG49cmE7aWYobil7dmFyIHQ9bjtpZighb2EoZSxuKSl7aWYoaWEoZSkpdGhyb3cgRXJyb3IoYSg0MTgpKTtuPXNsKHQubmV4dFNpYmxpbmcpO3ZhciByPXRhO24mJm9hKGUsbik/dWEocix0KTooZS5mbGFncz0tNDA5NyZlLmZsYWdzfDIsbGE9ITEsdGE9ZSl9fWVsc2V7aWYoaWEoZSkpdGhyb3cgRXJyb3IoYSg0MTgpKTtlLmZsYWdzPS00MDk3JmUuZmxhZ3N8MixsYT0hMSx0YT1lfX19ZnVuY3Rpb24gY2EoZSl7Zm9yKGU9ZS5yZXR1cm47bnVsbCE9PWUmJjUhPT1lLnRhZyYmMyE9PWUudGFnJiYxMyE9PWUudGFnOyllPWUucmV0dXJuO3RhPWV9ZnVuY3Rpb24gZmEoZSl7aWYoZSE9PXRhKXJldHVybiExO2lmKCFsYSlyZXR1cm4gY2EoZSksbGE9ITAsITE7dmFyIG4KO2lmKChuPTMhPT1lLnRhZykmJiEobj01IT09ZS50YWcpJiYobj0iaGVhZCIhPT0obj1lLnR5cGUpJiYiYm9keSIhPT1uJiYhdGwoZS50eXBlLGUubWVtb2l6ZWRQcm9wcykpLG4mJihuPXJhKSl7aWYoaWEoZSkpdGhyb3cgZGEoKSxFcnJvcihhKDQxOCkpO2Zvcig7bjspdWEoZSxuKSxuPXNsKG4ubmV4dFNpYmxpbmcpfWlmKGNhKGUpLDEzPT09ZS50YWcpe2lmKCEoZT1udWxsIT09KGU9ZS5tZW1vaXplZFN0YXRlKT9lLmRlaHlkcmF0ZWQ6bnVsbCkpdGhyb3cgRXJyb3IoYSgzMTcpKTtlOntmb3IoZT1lLm5leHRTaWJsaW5nLG49MDtlOyl7aWYoOD09PWUubm9kZVR5cGUpe3ZhciB0PWUuZGF0YTtpZigiLyQiPT09dCl7aWYoMD09PW4pe3JhPXNsKGUubmV4dFNpYmxpbmcpO2JyZWFrIGV9bi0tfWVsc2UiJCIhPT10JiYiJCEiIT09dCYmIiQ/IiE9PXR8fG4rK31lPWUubmV4dFNpYmxpbmd9cmE9bnVsbH19ZWxzZSByYT10YT9zbChlLnN0YXRlTm9kZS5uZXh0U2libGluZyk6bnVsbDtyZXR1cm4hMH1mdW5jdGlvbiBkYSgpe2Zvcih2YXIgZT1yYTtlOyllPXNsKGUubmV4dFNpYmxpbmcpfWZ1bmN0aW9uIHBhKCl7cmE9dGE9bnVsbCxsYT0hMX1mdW5jdGlvbiBtYShlKXtudWxsPT09YWE/YWE9W2VdOmFhLnB1c2goZSl9dmFyIGhhPWsuUmVhY3RDdXJyZW50QmF0Y2hDb25maWc7ZnVuY3Rpb24gZ2EoZSxuKXtpZihlJiZlLmRlZmF1bHRQcm9wcyl7Zm9yKHZhciB0IGluIG49Tyh7fSxuKSxlPWUuZGVmYXVsdFByb3BzKXZvaWQgMD09PW5bdF0mJihuW3RdPWVbdF0pO3JldHVybiBufXJldHVybiBufXZhciB2YT1FbChudWxsKSx5YT1udWxsLGJhPW51bGwsa2E9bnVsbDtmdW5jdGlvbiB3YSgpe2thPWJhPXlhPW51bGx9ZnVuY3Rpb24gU2EoZSl7dmFyIG49dmEuY3VycmVudDtDbCh2YSksZS5fY3VycmVudFZhbHVlPW59ZnVuY3Rpb24geGEoZSxuLHQpe2Zvcig7bnVsbCE9PWU7KXt2YXIgcj1lLmFsdGVybmF0ZTtpZigoZS5jaGlsZExhbmVzJm4pIT09bj8oZS5jaGlsZExhbmVzfD1uLG51bGwhPT1yJiYoci5jaGlsZExhbmVzfD1uKSk6bnVsbCE9PXImJihyLmNoaWxkTGFuZXMmbikhPT1uJiYoci5jaGlsZExhbmVzfD1uKSxlPT09dClicmVhaztlPWUucmV0dXJufX1mdW5jdGlvbiBFYShlLG4pe3lhPWUsa2E9YmE9bnVsbCxudWxsIT09KGU9ZS5kZXBlbmRlbmNpZXMpJiZudWxsIT09ZS5maXJzdENvbnRleHQmJighIShlLmxhbmVzJm4pJiYoa289ITApLGUuZmlyc3RDb250ZXh0PW51bGwpfWZ1bmN0aW9uIENhKGUpe3ZhciBuPWUuX2N1cnJlbnRWYWx1ZTtpZihrYSE9PWUpaWYoZT17Y29udGV4dDplLG1lbW9pemVkVmFsdWU6bixuZXh0Om51bGx9LG51bGw9PT1iYSl7aWYobnVsbD09PXlhKXRocm93IEVycm9yKGEoMzA4KSk7YmE9ZSx5YS5kZXBlbmRlbmNpZXM9e2xhbmVzOjAsZmlyc3RDb250ZXh0OmV9fWVsc2UgYmE9YmEubmV4dD1lO3JldHVybiBufXZhciB6YT1udWxsO2Z1bmN0aW9uIE5hKGUpe251bGw9PT16YT96YT1bZV06emEucHVzaChlKX1mdW5jdGlvbiBfYShlLG4sdCxyKXt2YXIgbD1uLmludGVybGVhdmVkO3JldHVybiBudWxsPT09bD8odC5uZXh0PXQsTmEobikpOih0Lm5leHQ9bC5uZXh0LGwubmV4dD10KSxuLmludGVybGVhdmVkPXQsUGEoZSxyKX1mdW5jdGlvbiBQYShlLG4pe2UubGFuZXN8PW47dmFyIHQ9ZS5hbHRlcm5hdGU7Zm9yKG51bGwhPT10JiYodC5sYW5lc3w9biksdD1lLGU9ZS5yZXR1cm47bnVsbCE9PWU7KWUuY2hpbGRMYW5lc3w9bixudWxsIT09KHQ9ZS5hbHRlcm5hdGUpJiYodC5jaGlsZExhbmVzfD1uKSx0PWUsZT1lLnJldHVybjtyZXR1cm4gMz09PXQudGFnP3Quc3RhdGVOb2RlOm51bGx9dmFyIFRhPSExO2Z1bmN0aW9uIExhKGUpe2UudXBkYXRlUXVldWU9e2Jhc2VTdGF0ZTplLm1lbW9pemVkU3RhdGUsZmlyc3RCYXNlVXBkYXRlOm51bGwsbGFzdEJhc2VVcGRhdGU6bnVsbCxzaGFyZWQ6e3BlbmRpbmc6bnVsbCxpbnRlcmxlYXZlZDpudWxsLGxhbmVzOjB9LGVmZmVjdHM6bnVsbH19ZnVuY3Rpb24gTWEoZSxuKXtlPWUudXBkYXRlUXVldWUsbi51cGRhdGVRdWV1ZT09PWUmJihuLnVwZGF0ZVF1ZXVlPXtiYXNlU3RhdGU6ZS5iYXNlU3RhdGUsZmlyc3RCYXNlVXBkYXRlOmUuZmlyc3RCYXNlVXBkYXRlLGxhc3RCYXNlVXBkYXRlOmUubGFzdEJhc2VVcGRhdGUsc2hhcmVkOmUuc2hhcmVkLGVmZmVjdHM6ZS5lZmZlY3RzfSl9ZnVuY3Rpb24gRmEoZSxuKXtyZXR1cm57ZXZlbnRUaW1lOmUsbGFuZTpuLHRhZzowLHBheWxvYWQ6bnVsbCxjYWxsYmFjazpudWxsLG5leHQ6bnVsbH19ZnVuY3Rpb24gUmEoZSxuLHQpe3ZhciByPWUudXBkYXRlUXVldWU7aWYobnVsbD09PXIpcmV0dXJuIG51bGw7aWYocj1yLnNoYXJlZCwyJl9pKXt2YXIgbD1yLnBlbmRpbmc7cmV0dXJuIG51bGw9PT1sP24ubmV4dD1uOihuLm5leHQ9bC5uZXh0LGwubmV4dD1uKSxyLnBlbmRpbmc9bixQYShlLHQpfXJldHVybiBudWxsPT09KGw9ci5pbnRlcmxlYXZlZCk/KG4ubmV4dD1uLE5hKHIpKToobi5uZXh0PWwubmV4dCxsLm5leHQ9biksci5pbnRlcmxlYXZlZD1uLFBhKGUsdCl9ZnVuY3Rpb24gRGEoZSxuLHQpe2lmKG51bGwhPT0obj1uLnVwZGF0ZVF1ZXVlKSYmKG49bi5zaGFyZWQsNDE5NDI0MCZ0KSl7dmFyIHI9bi5sYW5lczt0fD1yJj1lLnBlbmRpbmdMYW5lcyxuLmxhbmVzPXQsYm4oZSx0KX19ZnVuY3Rpb24gSWEoZSxuKXt2YXIgdD1lLnVwZGF0ZVF1ZXVlLHI9ZS5hbHRlcm5hdGU7aWYobnVsbCE9PXImJnQ9PT0ocj1yLnVwZGF0ZVF1ZXVlKSl7dmFyIGw9bnVsbCxhPW51bGw7aWYobnVsbCE9PSh0PXQuZmlyc3RCYXNlVXBkYXRlKSl7ZG97dmFyIHU9e2V2ZW50VGltZTp0LmV2ZW50VGltZSxsYW5lOnQubGFuZSx0YWc6dC50YWcscGF5bG9hZDp0LnBheWxvYWQsY2FsbGJhY2s6dC5jYWxsYmFjayxuZXh0Om51bGx9O251bGw9PT1hP2w9YT11OmE9YS5uZXh0PXUsdD10Lm5leHR9d2hpbGUobnVsbCE9PXQpO251bGw9PT1hP2w9YT1uOmE9YS5uZXh0PW59ZWxzZSBsPWE9bjtyZXR1cm4gdD17YmFzZVN0YXRlOnIuYmFzZVN0YXRlLGZpcnN0QmFzZVVwZGF0ZTpsLGxhc3RCYXNlVXBkYXRlOmEsCnNoYXJlZDpyLnNoYXJlZCxlZmZlY3RzOnIuZWZmZWN0c30sdm9pZChlLnVwZGF0ZVF1ZXVlPXQpfW51bGw9PT0oZT10Lmxhc3RCYXNlVXBkYXRlKT90LmZpcnN0QmFzZVVwZGF0ZT1uOmUubmV4dD1uLHQubGFzdEJhc2VVcGRhdGU9bn1mdW5jdGlvbiBPYShlLG4sdCxyKXt2YXIgbD1lLnVwZGF0ZVF1ZXVlO1RhPSExO3ZhciBhPWwuZmlyc3RCYXNlVXBkYXRlLHU9bC5sYXN0QmFzZVVwZGF0ZSxvPWwuc2hhcmVkLnBlbmRpbmc7aWYobnVsbCE9PW8pe2wuc2hhcmVkLnBlbmRpbmc9bnVsbDt2YXIgaT1vLHM9aS5uZXh0O2kubmV4dD1udWxsLG51bGw9PT11P2E9czp1Lm5leHQ9cyx1PWk7dmFyIGM9ZS5hbHRlcm5hdGU7bnVsbCE9PWMmJigobz0oYz1jLnVwZGF0ZVF1ZXVlKS5sYXN0QmFzZVVwZGF0ZSkhPT11JiYobnVsbD09PW8/Yy5maXJzdEJhc2VVcGRhdGU9czpvLm5leHQ9cyxjLmxhc3RCYXNlVXBkYXRlPWkpKX1pZihudWxsIT09YSl7dmFyIGY9bC5iYXNlU3RhdGU7Zm9yKHU9MCxjPXM9aT1udWxsLG89YTs7KXt2YXIgZD1vLmxhbmUscD1vLmV2ZW50VGltZTtpZigociZkKT09PWQpe251bGwhPT1jJiYoYz1jLm5leHQ9e2V2ZW50VGltZTpwLGxhbmU6MCx0YWc6by50YWcscGF5bG9hZDpvLnBheWxvYWQsY2FsbGJhY2s6by5jYWxsYmFjayxuZXh0Om51bGx9KTtlOnt2YXIgbT1lLGg9bztzd2l0Y2goZD1uLHA9dCxoLnRhZyl7Y2FzZSAxOmlmKCJmdW5jdGlvbiI9PXR5cGVvZihtPWgucGF5bG9hZCkpe2Y9bS5jYWxsKHAsZixkKTticmVhayBlfWY9bTticmVhayBlO2Nhc2UgMzptLmZsYWdzPS02NTUzNyZtLmZsYWdzfDEyODtjYXNlIDA6aWYobnVsbD09KGQ9ImZ1bmN0aW9uIj09dHlwZW9mKG09aC5wYXlsb2FkKT9tLmNhbGwocCxmLGQpOm0pKWJyZWFrIGU7Zj1PKHt9LGYsZCk7YnJlYWsgZTtjYXNlIDI6VGE9ITB9fW51bGwhPT1vLmNhbGxiYWNrJiYwIT09by5sYW5lJiYoZS5mbGFnc3w9NjQsbnVsbD09PShkPWwuZWZmZWN0cyk/bC5lZmZlY3RzPVtvXTpkLnB1c2gobykpfWVsc2UgcD17ZXZlbnRUaW1lOnAsbGFuZTpkLHRhZzpvLnRhZyxwYXlsb2FkOm8ucGF5bG9hZCxjYWxsYmFjazpvLmNhbGxiYWNrLG5leHQ6bnVsbH0sbnVsbD09PWM/KHM9Yz1wLGk9Zik6Yz1jLm5leHQ9cCx1fD1kO2lmKG51bGw9PT0obz1vLm5leHQpKXtpZihudWxsPT09KG89bC5zaGFyZWQucGVuZGluZykpYnJlYWs7bz0oZD1vKS5uZXh0LGQubmV4dD1udWxsLGwubGFzdEJhc2VVcGRhdGU9ZCxsLnNoYXJlZC5wZW5kaW5nPW51bGx9fWlmKG51bGw9PT1jJiYoaT1mKSxsLmJhc2VTdGF0ZT1pLGwuZmlyc3RCYXNlVXBkYXRlPXMsbC5sYXN0QmFzZVVwZGF0ZT1jLG51bGwhPT0obj1sLnNoYXJlZC5pbnRlcmxlYXZlZCkpe2w9bjtkb3t1fD1sLmxhbmUsbD1sLm5leHR9d2hpbGUobCE9PW4pfWVsc2UgbnVsbD09PWEmJihsLnNoYXJlZC5sYW5lcz0wKTtJaXw9dSxlLmxhbmVzPXUsZS5tZW1vaXplZFN0YXRlPWZ9fWZ1bmN0aW9uIFVhKGUsbix0KXtpZihlPW4uZWZmZWN0cyxuLmVmZmVjdHM9bnVsbCxudWxsIT09ZSlmb3Iobj0wO248ZS5sZW5ndGg7bisrKXt2YXIgcj1lW25dLGw9ci5jYWxsYmFjaztpZihudWxsIT09bCl7aWYoci5jYWxsYmFjaz1udWxsLHI9dCwiZnVuY3Rpb24iIT10eXBlb2YgbCl0aHJvdyBFcnJvcihhKDE5MSxsKSk7bC5jYWxsKHIpfX19dmFyIFZhPShuZXcgci5Db21wb25lbnQpLnJlZnM7ZnVuY3Rpb24gQWEoZSxuLHQscil7dD1udWxsPT0odD10KHIsbj1lLm1lbW9pemVkU3RhdGUpKT9uOk8oe30sbix0KSxlLm1lbW9pemVkU3RhdGU9dCwwPT09ZS5sYW5lcyYmKGUudXBkYXRlUXVldWUuYmFzZVN0YXRlPXQpfXZhciBCYT17aXNNb3VudGVkOmZ1bmN0aW9uKGUpe3JldHVybiEhKGU9ZS5fcmVhY3RJbnRlcm5hbHMpJiZXZShlKT09PWV9LGVucXVldWVTZXRTdGF0ZTpmdW5jdGlvbihlLG4sdCl7ZT1lLl9yZWFjdEludGVybmFsczt2YXIgcj1lcygpLGw9bnMoZSksYT1GYShyLGwpO2EucGF5bG9hZD1uLG51bGwhPXQmJihhLmNhbGxiYWNrPXQpLG51bGwhPT0obj1SYShlLGEsbCkpJiYodHMobixlLGwsciksRGEobixlLGwpKX0sZW5xdWV1ZVJlcGxhY2VTdGF0ZTpmdW5jdGlvbihlLG4sdCl7ZT1lLl9yZWFjdEludGVybmFsczt2YXIgcj1lcygpLGw9bnMoZSksYT1GYShyLGwpO2EudGFnPTEsYS5wYXlsb2FkPW4sbnVsbCE9dCYmKGEuY2FsbGJhY2s9dCksbnVsbCE9PShuPVJhKGUsYSxsKSkmJih0cyhuLGUsbCxyKSxEYShuLGUsbCkpfSxlbnF1ZXVlRm9yY2VVcGRhdGU6ZnVuY3Rpb24oZSxuKXtlPWUuX3JlYWN0SW50ZXJuYWxzO3ZhciB0PWVzKCkscj1ucyhlKSxsPUZhKHQscik7bC50YWc9MixudWxsIT1uJiYobC5jYWxsYmFjaz1uKSxudWxsIT09KG49UmEoZSxsLHIpKSYmKHRzKG4sZSxyLHQpLERhKG4sZSxyKSl9fTtmdW5jdGlvbiBXYShlLG4sdCxyLGwsYSx1KXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YoZT1lLnN0YXRlTm9kZSkuc2hvdWxkQ29tcG9uZW50VXBkYXRlP2Uuc2hvdWxkQ29tcG9uZW50VXBkYXRlKHIsYSx1KTohbi5wcm90b3R5cGV8fCFuLnByb3RvdHlwZS5pc1B1cmVSZWFjdENvbXBvbmVudHx8KCFpcih0LHIpfHwhaXIobCxhKSl9ZnVuY3Rpb24gSGEoZSxuLHQpe3ZhciByPSExLGw9TmwsYT1uLmNvbnRleHRUeXBlO3JldHVybiJvYmplY3QiPT10eXBlb2YgYSYmbnVsbCE9PWE/YT1DYShhKToobD1NbChuKT9UbDpfbC5jdXJyZW50LGE9KHI9bnVsbCE9KHI9bi5jb250ZXh0VHlwZXMpKT9MbChlLGwpOk5sKSxuPW5ldyBuKHQsYSksZS5tZW1vaXplZFN0YXRlPW51bGwhPT1uLnN0YXRlJiZ2b2lkIDAhPT1uLnN0YXRlP24uc3RhdGU6bnVsbCxuLnVwZGF0ZXI9QmEsZS5zdGF0ZU5vZGU9bixuLl9yZWFjdEludGVybmFscz1lLHImJigoZT1lLnN0YXRlTm9kZSkuX19yZWFjdEludGVybmFsTWVtb2l6ZWRVbm1hc2tlZENoaWxkQ29udGV4dD1sLGUuX19yZWFjdEludGVybmFsTWVtb2l6ZWRNYXNrZWRDaGlsZENvbnRleHQ9YSksbn1mdW5jdGlvbiBRYShlLG4sdCxyKXtlPW4uc3RhdGUsCiJmdW5jdGlvbiI9PXR5cGVvZiBuLmNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMmJm4uY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyh0LHIpLCJmdW5jdGlvbiI9PXR5cGVvZiBuLlVOU0FGRV9jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzJiZuLlVOU0FGRV9jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzKHQsciksbi5zdGF0ZSE9PWUmJkJhLmVucXVldWVSZXBsYWNlU3RhdGUobixuLnN0YXRlLG51bGwpfWZ1bmN0aW9uIGphKGUsbix0LHIpe3ZhciBsPWUuc3RhdGVOb2RlO2wucHJvcHM9dCxsLnN0YXRlPWUubWVtb2l6ZWRTdGF0ZSxsLnJlZnM9VmEsTGEoZSk7dmFyIGE9bi5jb250ZXh0VHlwZTsib2JqZWN0Ij09dHlwZW9mIGEmJm51bGwhPT1hP2wuY29udGV4dD1DYShhKTooYT1NbChuKT9UbDpfbC5jdXJyZW50LGwuY29udGV4dD1MbChlLGEpKSxsLnN0YXRlPWUubWVtb2l6ZWRTdGF0ZSwiZnVuY3Rpb24iPT10eXBlb2YoYT1uLmdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcykmJihBYShlLG4sYSx0KSxsLnN0YXRlPWUubWVtb2l6ZWRTdGF0ZSksImZ1bmN0aW9uIj09dHlwZW9mIG4uZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzfHwiZnVuY3Rpb24iPT10eXBlb2YgbC5nZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZXx8ImZ1bmN0aW9uIiE9dHlwZW9mIGwuVU5TQUZFX2NvbXBvbmVudFdpbGxNb3VudCYmImZ1bmN0aW9uIiE9dHlwZW9mIGwuY29tcG9uZW50V2lsbE1vdW50fHwobj1sLnN0YXRlLCJmdW5jdGlvbiI9PXR5cGVvZiBsLmNvbXBvbmVudFdpbGxNb3VudCYmbC5jb21wb25lbnRXaWxsTW91bnQoKSwiZnVuY3Rpb24iPT10eXBlb2YgbC5VTlNBRkVfY29tcG9uZW50V2lsbE1vdW50JiZsLlVOU0FGRV9jb21wb25lbnRXaWxsTW91bnQoKSxuIT09bC5zdGF0ZSYmQmEuZW5xdWV1ZVJlcGxhY2VTdGF0ZShsLGwuc3RhdGUsbnVsbCksT2EoZSx0LGwsciksbC5zdGF0ZT1lLm1lbW9pemVkU3RhdGUpLCJmdW5jdGlvbiI9PXR5cGVvZiBsLmNvbXBvbmVudERpZE1vdW50JiYoZS5mbGFnc3w9NDE5NDMwOCl9ZnVuY3Rpb24gJGEoZSxuLHQpe2lmKG51bGwhPT0oZT10LnJlZikmJiJmdW5jdGlvbiIhPXR5cGVvZiBlJiYib2JqZWN0IiE9dHlwZW9mIGUpe2lmKHQuX293bmVyKXtpZih0PXQuX293bmVyKXtpZigxIT09dC50YWcpdGhyb3cgRXJyb3IoYSgzMDkpKTt2YXIgcj10LnN0YXRlTm9kZX1pZighcil0aHJvdyBFcnJvcihhKDE0NyxlKSk7dmFyIGw9cix1PSIiK2U7cmV0dXJuIG51bGwhPT1uJiZudWxsIT09bi5yZWYmJiJmdW5jdGlvbiI9PXR5cGVvZiBuLnJlZiYmbi5yZWYuX3N0cmluZ1JlZj09PXU/bi5yZWY6KG49ZnVuY3Rpb24oZSl7dmFyIG49bC5yZWZzO249PT1WYSYmKG49bC5yZWZzPXt9KSxudWxsPT09ZT9kZWxldGUgblt1XTpuW3VdPWV9LG4uX3N0cmluZ1JlZj11LG4pfWlmKCJzdHJpbmciIT10eXBlb2YgZSl0aHJvdyBFcnJvcihhKDI4NCkpO2lmKCF0Ll9vd25lcil0aHJvdyBFcnJvcihhKDI5MCxlKSl9cmV0dXJuIGV9ZnVuY3Rpb24gcWEoZSxuKXt0aHJvdyBlPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChuKSxFcnJvcihhKDMxLCJbb2JqZWN0IE9iamVjdF0iPT09ZT8ib2JqZWN0IHdpdGgga2V5cyB7IitPYmplY3Qua2V5cyhuKS5qb2luKCIsICIpKyJ9IjplKSl9ZnVuY3Rpb24gS2EoZSl7cmV0dXJuKDAsZS5faW5pdCkoZS5fcGF5bG9hZCl9ZnVuY3Rpb24gWWEoZSl7ZnVuY3Rpb24gbihuLHQpe2lmKGUpe3ZhciByPW4uZGVsZXRpb25zO251bGw9PT1yPyhuLmRlbGV0aW9ucz1bdF0sbi5mbGFnc3w9MTYpOnIucHVzaCh0KX19ZnVuY3Rpb24gdCh0LHIpe2lmKCFlKXJldHVybiBudWxsO2Zvcig7bnVsbCE9PXI7KW4odCxyKSxyPXIuc2libGluZztyZXR1cm4gbnVsbH1mdW5jdGlvbiByKGUsbil7Zm9yKGU9bmV3IE1hcDtudWxsIT09bjspbnVsbCE9PW4ua2V5P2Uuc2V0KG4ua2V5LG4pOmUuc2V0KG4uaW5kZXgsbiksbj1uLnNpYmxpbmc7cmV0dXJuIGV9ZnVuY3Rpb24gbChlLG4pe3JldHVybihlPUZzKGUsbikpLmluZGV4PTAsZS5zaWJsaW5nPW51bGwsZX1mdW5jdGlvbiB1KG4sdCxyKXtyZXR1cm4gbi5pbmRleD1yLGU/bnVsbCE9PShyPW4uYWx0ZXJuYXRlKT8ocj1yLmluZGV4KTx0PyhuLmZsYWdzfD0yLHQpOnI6KG4uZmxhZ3N8PTIsdCk6KG4uZmxhZ3N8PTEwNDg1NzYsdCl9ZnVuY3Rpb24gbyhuKXtyZXR1cm4gZSYmbnVsbD09PW4uYWx0ZXJuYXRlJiYobi5mbGFnc3w9Miksbn1mdW5jdGlvbiBpKGUsbix0LHIpe3JldHVybiBudWxsPT09bnx8NiE9PW4udGFnPygobj1Pcyh0LGUubW9kZSxyKSkucmV0dXJuPWUsbik6KChuPWwobix0KSkucmV0dXJuPWUsbil9ZnVuY3Rpb24gcyhlLG4sdCxyKXt2YXIgYT10LnR5cGU7cmV0dXJuIGE9PT14P2YoZSxuLHQucHJvcHMuY2hpbGRyZW4scix0LmtleSk6bnVsbCE9PW4mJihuLmVsZW1lbnRUeXBlPT09YXx8Im9iamVjdCI9PXR5cGVvZiBhJiZudWxsIT09YSYmYS4kJHR5cGVvZj09PU0mJkthKGEpPT09bi50eXBlKT8oKHI9bChuLHQucHJvcHMpKS5yZWY9JGEoZSxuLHQpLHIucmV0dXJuPWUscik6KChyPVJzKHQudHlwZSx0LmtleSx0LnByb3BzLG51bGwsZS5tb2RlLHIpKS5yZWY9JGEoZSxuLHQpLHIucmV0dXJuPWUscil9ZnVuY3Rpb24gYyhlLG4sdCxyKXtyZXR1cm4gbnVsbD09PW58fDQhPT1uLnRhZ3x8bi5zdGF0ZU5vZGUuY29udGFpbmVySW5mbyE9PXQuY29udGFpbmVySW5mb3x8bi5zdGF0ZU5vZGUuaW1wbGVtZW50YXRpb24hPT10LmltcGxlbWVudGF0aW9uPygobj1Vcyh0LGUubW9kZSxyKSkucmV0dXJuPWUsbik6KChuPWwobix0LmNoaWxkcmVufHxbXSkpLnJldHVybj1lLG4pfWZ1bmN0aW9uIGYoZSxuLHQscixhKXtyZXR1cm4gbnVsbD09PW58fDchPT1uLnRhZz8oKG49RHModCxlLm1vZGUscixhKSkucmV0dXJuPWUsbik6KChuPWwobix0KSkucmV0dXJuPWUsbil9ZnVuY3Rpb24gZChlLG4sdCl7aWYoInN0cmluZyI9PXR5cGVvZiBuJiYiIiE9PW58fCJudW1iZXIiPT10eXBlb2YgbilyZXR1cm4obj1PcygiIituLGUubW9kZSx0KSkucmV0dXJuPWUsbjtpZigib2JqZWN0Ij09dHlwZW9mIG4mJm51bGwhPT1uKXsKc3dpdGNoKG4uJCR0eXBlb2Ype2Nhc2UgdzpyZXR1cm4odD1ScyhuLnR5cGUsbi5rZXksbi5wcm9wcyxudWxsLGUubW9kZSx0KSkucmVmPSRhKGUsbnVsbCxuKSx0LnJldHVybj1lLHQ7Y2FzZSBTOnJldHVybihuPVVzKG4sZS5tb2RlLHQpKS5yZXR1cm49ZSxuO2Nhc2UgTTpyZXR1cm4gZChlLCgwLG4uX2luaXQpKG4uX3BheWxvYWQpLHQpfWlmKG5lKG4pfHxEKG4pKXJldHVybihuPURzKG4sZS5tb2RlLHQsbnVsbCkpLnJldHVybj1lLG47cWEoZSxuKX1yZXR1cm4gbnVsbH1mdW5jdGlvbiBwKGUsbix0LHIpe3ZhciBsPW51bGwhPT1uP24ua2V5Om51bGw7aWYoInN0cmluZyI9PXR5cGVvZiB0JiYiIiE9PXR8fCJudW1iZXIiPT10eXBlb2YgdClyZXR1cm4gbnVsbCE9PWw/bnVsbDppKGUsbiwiIit0LHIpO2lmKCJvYmplY3QiPT10eXBlb2YgdCYmbnVsbCE9PXQpe3N3aXRjaCh0LiQkdHlwZW9mKXtjYXNlIHc6cmV0dXJuIHQua2V5PT09bD9zKGUsbix0LHIpOm51bGw7Y2FzZSBTOnJldHVybiB0LmtleT09PWw/YyhlLG4sdCxyKTpudWxsO2Nhc2UgTTpyZXR1cm4gcChlLG4sKGw9dC5faW5pdCkodC5fcGF5bG9hZCkscil9aWYobmUodCl8fEQodCkpcmV0dXJuIG51bGwhPT1sP251bGw6ZihlLG4sdCxyLG51bGwpO3FhKGUsdCl9cmV0dXJuIG51bGx9ZnVuY3Rpb24gbShlLG4sdCxyLGwpe2lmKCJzdHJpbmciPT10eXBlb2YgciYmIiIhPT1yfHwibnVtYmVyIj09dHlwZW9mIHIpcmV0dXJuIGkobixlPWUuZ2V0KHQpfHxudWxsLCIiK3IsbCk7aWYoIm9iamVjdCI9PXR5cGVvZiByJiZudWxsIT09cil7c3dpdGNoKHIuJCR0eXBlb2Ype2Nhc2UgdzpyZXR1cm4gcyhuLGU9ZS5nZXQobnVsbD09PXIua2V5P3Q6ci5rZXkpfHxudWxsLHIsbCk7Y2FzZSBTOnJldHVybiBjKG4sZT1lLmdldChudWxsPT09ci5rZXk/dDpyLmtleSl8fG51bGwscixsKTtjYXNlIE06cmV0dXJuIG0oZSxuLHQsKDAsci5faW5pdCkoci5fcGF5bG9hZCksbCl9aWYobmUocil8fEQocikpcmV0dXJuIGYobixlPWUuZ2V0KHQpfHxudWxsLHIsbCxudWxsKTtxYShuLHIpfXJldHVybiBudWxsfWZ1bmN0aW9uIGgobCxhLG8saSl7Zm9yKHZhciBzPW51bGwsYz1udWxsLGY9YSxoPWE9MCxnPW51bGw7bnVsbCE9PWYmJmg8by5sZW5ndGg7aCsrKXtmLmluZGV4Pmg/KGc9ZixmPW51bGwpOmc9Zi5zaWJsaW5nO3ZhciB2PXAobCxmLG9baF0saSk7aWYobnVsbD09PXYpe251bGw9PT1mJiYoZj1nKTticmVha31lJiZmJiZudWxsPT09di5hbHRlcm5hdGUmJm4obCxmKSxhPXUodixhLGgpLG51bGw9PT1jP3M9djpjLnNpYmxpbmc9dixjPXYsZj1nfWlmKGg9PT1vLmxlbmd0aClyZXR1cm4gdChsLGYpLGxhJiZabChsLGgpLHM7aWYobnVsbD09PWYpe2Zvcig7aDxvLmxlbmd0aDtoKyspbnVsbCE9PShmPWQobCxvW2hdLGkpKSYmKGE9dShmLGEsaCksbnVsbD09PWM/cz1mOmMuc2libGluZz1mLGM9Zik7cmV0dXJuIGxhJiZabChsLGgpLHN9Zm9yKGY9cihsLGYpO2g8by5sZW5ndGg7aCsrKW51bGwhPT0oZz1tKGYsbCxoLG9baF0saSkpJiYoZSYmbnVsbCE9PWcuYWx0ZXJuYXRlJiZmLmRlbGV0ZShudWxsPT09Zy5rZXk/aDpnLmtleSksYT11KGcsYSxoKSxudWxsPT09Yz9zPWc6Yy5zaWJsaW5nPWcsYz1nKTtyZXR1cm4gZSYmZi5mb3JFYWNoKChmdW5jdGlvbihlKXtyZXR1cm4gbihsLGUpfSkpLGxhJiZabChsLGgpLHN9ZnVuY3Rpb24gZyhsLG8saSxzKXt2YXIgYz1EKGkpO2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBjKXRocm93IEVycm9yKGEoMTUwKSk7aWYobnVsbD09KGk9Yy5jYWxsKGkpKSl0aHJvdyBFcnJvcihhKDE1MSkpO2Zvcih2YXIgZj1jPW51bGwsaD1vLGc9bz0wLHY9bnVsbCx5PWkubmV4dCgpO251bGwhPT1oJiYheS5kb25lO2crKyx5PWkubmV4dCgpKXtoLmluZGV4Pmc/KHY9aCxoPW51bGwpOnY9aC5zaWJsaW5nO3ZhciBiPXAobCxoLHkudmFsdWUscyk7aWYobnVsbD09PWIpe251bGw9PT1oJiYoaD12KTticmVha31lJiZoJiZudWxsPT09Yi5hbHRlcm5hdGUmJm4obCxoKSxvPXUoYixvLGcpLG51bGw9PT1mP2M9YjpmLnNpYmxpbmc9YixmPWIsaD12fWlmKHkuZG9uZSlyZXR1cm4gdChsLGgpLGxhJiZabChsLGcpLGM7aWYobnVsbD09PWgpe2Zvcig7IXkuZG9uZTtnKysseT1pLm5leHQoKSludWxsIT09KHk9ZChsLHkudmFsdWUscykpJiYobz11KHksbyxnKSxudWxsPT09Zj9jPXk6Zi5zaWJsaW5nPXksZj15KTtyZXR1cm4gbGEmJlpsKGwsZyksY31mb3IoaD1yKGwsaCk7IXkuZG9uZTtnKysseT1pLm5leHQoKSludWxsIT09KHk9bShoLGwsZyx5LnZhbHVlLHMpKSYmKGUmJm51bGwhPT15LmFsdGVybmF0ZSYmaC5kZWxldGUobnVsbD09PXkua2V5P2c6eS5rZXkpLG89dSh5LG8sZyksbnVsbD09PWY/Yz15OmYuc2libGluZz15LGY9eSk7cmV0dXJuIGUmJmguZm9yRWFjaCgoZnVuY3Rpb24oZSl7cmV0dXJuIG4obCxlKX0pKSxsYSYmWmwobCxnKSxjfXJldHVybiBmdW5jdGlvbiBlKHIsYSx1LGkpe2lmKCJvYmplY3QiPT10eXBlb2YgdSYmbnVsbCE9PXUmJnUudHlwZT09PXgmJm51bGw9PT11LmtleSYmKHU9dS5wcm9wcy5jaGlsZHJlbiksIm9iamVjdCI9PXR5cGVvZiB1JiZudWxsIT09dSl7c3dpdGNoKHUuJCR0eXBlb2Ype2Nhc2UgdzplOntmb3IodmFyIHM9dS5rZXksYz1hO251bGwhPT1jOyl7aWYoYy5rZXk9PT1zKXtpZigocz11LnR5cGUpPT09eCl7aWYoNz09PWMudGFnKXt0KHIsYy5zaWJsaW5nKSwoYT1sKGMsdS5wcm9wcy5jaGlsZHJlbikpLnJldHVybj1yLHI9YTticmVhayBlfX1lbHNlIGlmKGMuZWxlbWVudFR5cGU9PT1zfHwib2JqZWN0Ij09dHlwZW9mIHMmJm51bGwhPT1zJiZzLiQkdHlwZW9mPT09TSYmS2Eocyk9PT1jLnR5cGUpe3QocixjLnNpYmxpbmcpLChhPWwoYyx1LnByb3BzKSkucmVmPSRhKHIsYyx1KSxhLnJldHVybj1yLHI9YTticmVhayBlfXQocixjKTticmVha31uKHIsYyksYz1jLnNpYmxpbmd9dS50eXBlPT09eD8oKGE9RHModS5wcm9wcy5jaGlsZHJlbixyLm1vZGUsaSx1LmtleSkpLnJldHVybj1yLHI9YSk6KChpPVJzKHUudHlwZSx1LmtleSx1LnByb3BzLG51bGwsci5tb2RlLGkpKS5yZWY9JGEocixhLHUpLAppLnJldHVybj1yLHI9aSl9cmV0dXJuIG8ocik7Y2FzZSBTOmU6e2ZvcihjPXUua2V5O251bGwhPT1hOyl7aWYoYS5rZXk9PT1jKXtpZig0PT09YS50YWcmJmEuc3RhdGVOb2RlLmNvbnRhaW5lckluZm89PT11LmNvbnRhaW5lckluZm8mJmEuc3RhdGVOb2RlLmltcGxlbWVudGF0aW9uPT09dS5pbXBsZW1lbnRhdGlvbil7dChyLGEuc2libGluZyksKGE9bChhLHUuY2hpbGRyZW58fFtdKSkucmV0dXJuPXIscj1hO2JyZWFrIGV9dChyLGEpO2JyZWFrfW4ocixhKSxhPWEuc2libGluZ30oYT1Vcyh1LHIubW9kZSxpKSkucmV0dXJuPXIscj1hfXJldHVybiBvKHIpO2Nhc2UgTTpyZXR1cm4gZShyLGEsKGM9dS5faW5pdCkodS5fcGF5bG9hZCksaSl9aWYobmUodSkpcmV0dXJuIGgocixhLHUsaSk7aWYoRCh1KSlyZXR1cm4gZyhyLGEsdSxpKTtxYShyLHUpfXJldHVybiJzdHJpbmciPT10eXBlb2YgdSYmIiIhPT11fHwibnVtYmVyIj09dHlwZW9mIHU/KHU9IiIrdSxudWxsIT09YSYmNj09PWEudGFnPyh0KHIsYS5zaWJsaW5nKSwoYT1sKGEsdSkpLnJldHVybj1yLHI9YSk6KHQocixhKSwoYT1Pcyh1LHIubW9kZSxpKSkucmV0dXJuPXIscj1hKSxvKHIpKTp0KHIsYSl9fXZhciBYYT1ZYSghMCksR2E9WWEoITEpLFphPXt9LEphPUVsKFphKSxldT1FbChaYSksbnU9RWwoWmEpO2Z1bmN0aW9uIHR1KGUpe2lmKGU9PT1aYSl0aHJvdyBFcnJvcihhKDE3NCkpO3JldHVybiBlfWZ1bmN0aW9uIHJ1KGUsbil7c3dpdGNoKHpsKG51LG4pLHpsKGV1LGUpLHpsKEphLFphKSxlPW4ubm9kZVR5cGUpe2Nhc2UgOTpjYXNlIDExOm49KG49bi5kb2N1bWVudEVsZW1lbnQpP24ubmFtZXNwYWNlVVJJOmllKG51bGwsIiIpO2JyZWFrO2RlZmF1bHQ6bj1pZShuPShlPTg9PT1lP24ucGFyZW50Tm9kZTpuKS5uYW1lc3BhY2VVUkl8fG51bGwsZT1lLnRhZ05hbWUpfUNsKEphKSx6bChKYSxuKX1mdW5jdGlvbiBsdSgpe0NsKEphKSxDbChldSksQ2wobnUpfWZ1bmN0aW9uIGF1KGUpe3R1KG51LmN1cnJlbnQpO3ZhciBuPXR1KEphLmN1cnJlbnQpLHQ9aWUobixlLnR5cGUpO24hPT10JiYoemwoZXUsZSksemwoSmEsdCkpfWZ1bmN0aW9uIHV1KGUpe2V1LmN1cnJlbnQ9PT1lJiYoQ2woSmEpLENsKGV1KSl9dmFyIG91PUVsKDApO2Z1bmN0aW9uIGl1KGUpe2Zvcih2YXIgbj1lO251bGwhPT1uOyl7aWYoMTM9PT1uLnRhZyl7dmFyIHQ9bi5tZW1vaXplZFN0YXRlO2lmKG51bGwhPT10JiYobnVsbD09PSh0PXQuZGVoeWRyYXRlZCl8fCIkPyI9PT10LmRhdGF8fCIkISI9PT10LmRhdGEpKXJldHVybiBufWVsc2UgaWYoMTk9PT1uLnRhZyYmdm9pZCAwIT09bi5tZW1vaXplZFByb3BzLnJldmVhbE9yZGVyKXtpZigxMjgmbi5mbGFncylyZXR1cm4gbn1lbHNlIGlmKG51bGwhPT1uLmNoaWxkKXtuLmNoaWxkLnJldHVybj1uLG49bi5jaGlsZDtjb250aW51ZX1pZihuPT09ZSlicmVhaztmb3IoO251bGw9PT1uLnNpYmxpbmc7KXtpZihudWxsPT09bi5yZXR1cm58fG4ucmV0dXJuPT09ZSlyZXR1cm4gbnVsbDtuPW4ucmV0dXJufW4uc2libGluZy5yZXR1cm49bi5yZXR1cm4sbj1uLnNpYmxpbmd9cmV0dXJuIG51bGx9dmFyIHN1PVtdO2Z1bmN0aW9uIGN1KCl7Zm9yKHZhciBlPTA7ZTxzdS5sZW5ndGg7ZSsrKXN1W2VdLl93b3JrSW5Qcm9ncmVzc1ZlcnNpb25QcmltYXJ5PW51bGw7c3UubGVuZ3RoPTB9dmFyIGZ1PWsuUmVhY3RDdXJyZW50RGlzcGF0Y2hlcixkdT1rLlJlYWN0Q3VycmVudEJhdGNoQ29uZmlnLHB1PTAsbXU9bnVsbCxodT1udWxsLGd1PW51bGwsdnU9ITEseXU9ITEsYnU9MCxrdT0wO2Z1bmN0aW9uIHd1KCl7dGhyb3cgRXJyb3IoYSgzMjEpKX1mdW5jdGlvbiBTdShlLG4pe2lmKG51bGw9PT1uKXJldHVybiExO2Zvcih2YXIgdD0wO3Q8bi5sZW5ndGgmJnQ8ZS5sZW5ndGg7dCsrKWlmKCFvcihlW3RdLG5bdF0pKXJldHVybiExO3JldHVybiEwfWZ1bmN0aW9uIHh1KGUsbix0LHIsbCx1KXtpZihwdT11LG11PW4sbi5tZW1vaXplZFN0YXRlPW51bGwsbi51cGRhdGVRdWV1ZT1udWxsLG4ubGFuZXM9MCxmdS5jdXJyZW50PW51bGw9PT1lfHxudWxsPT09ZS5tZW1vaXplZFN0YXRlP3VvOm9vLGU9dChyLGwpLHl1KXt1PTA7ZG97aWYoeXU9ITEsYnU9MCwyNTw9dSl0aHJvdyBFcnJvcihhKDMwMSkpO3UrPTEsZ3U9aHU9bnVsbCxuLnVwZGF0ZVF1ZXVlPW51bGwsZnUuY3VycmVudD1pbyxlPXQocixsKX13aGlsZSh5dSl9aWYoZnUuY3VycmVudD1hbyxuPW51bGwhPT1odSYmbnVsbCE9PWh1Lm5leHQscHU9MCxndT1odT1tdT1udWxsLHZ1PSExLG4pdGhyb3cgRXJyb3IoYSgzMDApKTtyZXR1cm4gZX1mdW5jdGlvbiBFdSgpe3ZhciBlPTAhPT1idTtyZXR1cm4gYnU9MCxlfWZ1bmN0aW9uIEN1KCl7dmFyIGU9e21lbW9pemVkU3RhdGU6bnVsbCxiYXNlU3RhdGU6bnVsbCxiYXNlUXVldWU6bnVsbCxxdWV1ZTpudWxsLG5leHQ6bnVsbH07cmV0dXJuIG51bGw9PT1ndT9tdS5tZW1vaXplZFN0YXRlPWd1PWU6Z3U9Z3UubmV4dD1lLGd1fWZ1bmN0aW9uIHp1KCl7aWYobnVsbD09PWh1KXt2YXIgZT1tdS5hbHRlcm5hdGU7ZT1udWxsIT09ZT9lLm1lbW9pemVkU3RhdGU6bnVsbH1lbHNlIGU9aHUubmV4dDt2YXIgbj1udWxsPT09Z3U/bXUubWVtb2l6ZWRTdGF0ZTpndS5uZXh0O2lmKG51bGwhPT1uKWd1PW4saHU9ZTtlbHNle2lmKG51bGw9PT1lKXRocm93IEVycm9yKGEoMzEwKSk7ZT17bWVtb2l6ZWRTdGF0ZTooaHU9ZSkubWVtb2l6ZWRTdGF0ZSxiYXNlU3RhdGU6aHUuYmFzZVN0YXRlLGJhc2VRdWV1ZTpodS5iYXNlUXVldWUscXVldWU6aHUucXVldWUsbmV4dDpudWxsfSxudWxsPT09Z3U/bXUubWVtb2l6ZWRTdGF0ZT1ndT1lOmd1PWd1Lm5leHQ9ZX1yZXR1cm4gZ3V9ZnVuY3Rpb24gTnUoZSxuKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2Ygbj9uKGUpOm59ZnVuY3Rpb24gX3UoZSl7dmFyIG49enUoKSx0PW4ucXVldWU7aWYobnVsbD09PXQpdGhyb3cgRXJyb3IoYSgzMTEpKTt0Lmxhc3RSZW5kZXJlZFJlZHVjZXI9ZTt2YXIgcj1odSxsPXIuYmFzZVF1ZXVlLHU9dC5wZW5kaW5nO2lmKG51bGwhPT11KXtpZihudWxsIT09bCl7dmFyIG89bC5uZXh0CjtsLm5leHQ9dS5uZXh0LHUubmV4dD1vfXIuYmFzZVF1ZXVlPWw9dSx0LnBlbmRpbmc9bnVsbH1pZihudWxsIT09bCl7dT1sLm5leHQscj1yLmJhc2VTdGF0ZTt2YXIgaT1vPW51bGwscz1udWxsLGM9dTtkb3t2YXIgZj1jLmxhbmU7aWYoKHB1JmYpPT09ZiludWxsIT09cyYmKHM9cy5uZXh0PXtsYW5lOjAsYWN0aW9uOmMuYWN0aW9uLGhhc0VhZ2VyU3RhdGU6Yy5oYXNFYWdlclN0YXRlLGVhZ2VyU3RhdGU6Yy5lYWdlclN0YXRlLG5leHQ6bnVsbH0pLHI9Yy5oYXNFYWdlclN0YXRlP2MuZWFnZXJTdGF0ZTplKHIsYy5hY3Rpb24pO2Vsc2V7dmFyIGQ9e2xhbmU6ZixhY3Rpb246Yy5hY3Rpb24saGFzRWFnZXJTdGF0ZTpjLmhhc0VhZ2VyU3RhdGUsZWFnZXJTdGF0ZTpjLmVhZ2VyU3RhdGUsbmV4dDpudWxsfTtudWxsPT09cz8oaT1zPWQsbz1yKTpzPXMubmV4dD1kLG11LmxhbmVzfD1mLElpfD1mfWM9Yy5uZXh0fXdoaWxlKG51bGwhPT1jJiZjIT09dSk7bnVsbD09PXM/bz1yOnMubmV4dD1pLG9yKHIsbi5tZW1vaXplZFN0YXRlKXx8KGtvPSEwKSxuLm1lbW9pemVkU3RhdGU9cixuLmJhc2VTdGF0ZT1vLG4uYmFzZVF1ZXVlPXMsdC5sYXN0UmVuZGVyZWRTdGF0ZT1yfWlmKG51bGwhPT0oZT10LmludGVybGVhdmVkKSl7bD1lO2Rve3U9bC5sYW5lLG11LmxhbmVzfD11LElpfD11LGw9bC5uZXh0fXdoaWxlKGwhPT1lKX1lbHNlIG51bGw9PT1sJiYodC5sYW5lcz0wKTtyZXR1cm5bbi5tZW1vaXplZFN0YXRlLHQuZGlzcGF0Y2hdfWZ1bmN0aW9uIFB1KGUpe3ZhciBuPXp1KCksdD1uLnF1ZXVlO2lmKG51bGw9PT10KXRocm93IEVycm9yKGEoMzExKSk7dC5sYXN0UmVuZGVyZWRSZWR1Y2VyPWU7dmFyIHI9dC5kaXNwYXRjaCxsPXQucGVuZGluZyx1PW4ubWVtb2l6ZWRTdGF0ZTtpZihudWxsIT09bCl7dC5wZW5kaW5nPW51bGw7dmFyIG89bD1sLm5leHQ7ZG97dT1lKHUsby5hY3Rpb24pLG89by5uZXh0fXdoaWxlKG8hPT1sKTtvcih1LG4ubWVtb2l6ZWRTdGF0ZSl8fChrbz0hMCksbi5tZW1vaXplZFN0YXRlPXUsbnVsbD09PW4uYmFzZVF1ZXVlJiYobi5iYXNlU3RhdGU9dSksdC5sYXN0UmVuZGVyZWRTdGF0ZT11fXJldHVyblt1LHJdfWZ1bmN0aW9uIFR1KCl7fWZ1bmN0aW9uIEx1KGUsbil7dmFyIHQ9bXUscj16dSgpLGw9bigpLHU9IW9yKHIubWVtb2l6ZWRTdGF0ZSxsKTtpZih1JiYoci5tZW1vaXplZFN0YXRlPWwsa289ITApLHI9ci5xdWV1ZSxIdShSdS5iaW5kKG51bGwsdCxyLGUpLFtlXSksci5nZXRTbmFwc2hvdCE9PW58fHV8fG51bGwhPT1ndSYmMSZndS5tZW1vaXplZFN0YXRlLnRhZyl7aWYodC5mbGFnc3w9MjA0OCxVdSg5LEZ1LmJpbmQobnVsbCx0LHIsbCxuKSx2b2lkIDAsbnVsbCksbnVsbD09PVBpKXRocm93IEVycm9yKGEoMzQ5KSk7MzAmcHV8fE11KHQsbixsKX1yZXR1cm4gbH1mdW5jdGlvbiBNdShlLG4sdCl7ZS5mbGFnc3w9MTYzODQsZT17Z2V0U25hcHNob3Q6bix2YWx1ZTp0fSxudWxsPT09KG49bXUudXBkYXRlUXVldWUpPyhuPXtsYXN0RWZmZWN0Om51bGwsc3RvcmVzOm51bGx9LG11LnVwZGF0ZVF1ZXVlPW4sbi5zdG9yZXM9W2VdKTpudWxsPT09KHQ9bi5zdG9yZXMpP24uc3RvcmVzPVtlXTp0LnB1c2goZSl9ZnVuY3Rpb24gRnUoZSxuLHQscil7bi52YWx1ZT10LG4uZ2V0U25hcHNob3Q9cixEdShuKSYmSXUoZSl9ZnVuY3Rpb24gUnUoZSxuLHQpe3JldHVybiB0KChmdW5jdGlvbigpe0R1KG4pJiZJdShlKX0pKX1mdW5jdGlvbiBEdShlKXt2YXIgbj1lLmdldFNuYXBzaG90O2U9ZS52YWx1ZTt0cnl7dmFyIHQ9bigpO3JldHVybiFvcihlLHQpfWNhdGNoKGUpe3JldHVybiEwfX1mdW5jdGlvbiBJdShlKXt2YXIgbj1QYShlLDEpO251bGwhPT1uJiZ0cyhuLGUsMSwtMSl9ZnVuY3Rpb24gT3UoZSl7dmFyIG49Q3UoKTtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgZSYmKGU9ZSgpKSxuLm1lbW9pemVkU3RhdGU9bi5iYXNlU3RhdGU9ZSxlPXtwZW5kaW5nOm51bGwsaW50ZXJsZWF2ZWQ6bnVsbCxsYW5lczowLGRpc3BhdGNoOm51bGwsbGFzdFJlbmRlcmVkUmVkdWNlcjpOdSxsYXN0UmVuZGVyZWRTdGF0ZTplfSxuLnF1ZXVlPWUsZT1lLmRpc3BhdGNoPW5vLmJpbmQobnVsbCxtdSxlKSxbbi5tZW1vaXplZFN0YXRlLGVdfWZ1bmN0aW9uIFV1KGUsbix0LHIpe3JldHVybiBlPXt0YWc6ZSxjcmVhdGU6bixkZXN0cm95OnQsZGVwczpyLG5leHQ6bnVsbH0sbnVsbD09PShuPW11LnVwZGF0ZVF1ZXVlKT8obj17bGFzdEVmZmVjdDpudWxsLHN0b3JlczpudWxsfSxtdS51cGRhdGVRdWV1ZT1uLG4ubGFzdEVmZmVjdD1lLm5leHQ9ZSk6bnVsbD09PSh0PW4ubGFzdEVmZmVjdCk/bi5sYXN0RWZmZWN0PWUubmV4dD1lOihyPXQubmV4dCx0Lm5leHQ9ZSxlLm5leHQ9cixuLmxhc3RFZmZlY3Q9ZSksZX1mdW5jdGlvbiBWdSgpe3JldHVybiB6dSgpLm1lbW9pemVkU3RhdGV9ZnVuY3Rpb24gQXUoZSxuLHQscil7dmFyIGw9Q3UoKTttdS5mbGFnc3w9ZSxsLm1lbW9pemVkU3RhdGU9VXUoMXxuLHQsdm9pZCAwLHZvaWQgMD09PXI/bnVsbDpyKX1mdW5jdGlvbiBCdShlLG4sdCxyKXt2YXIgbD16dSgpO3I9dm9pZCAwPT09cj9udWxsOnI7dmFyIGE9dm9pZCAwO2lmKG51bGwhPT1odSl7dmFyIHU9aHUubWVtb2l6ZWRTdGF0ZTtpZihhPXUuZGVzdHJveSxudWxsIT09ciYmU3Uocix1LmRlcHMpKXJldHVybiB2b2lkKGwubWVtb2l6ZWRTdGF0ZT1VdShuLHQsYSxyKSl9bXUuZmxhZ3N8PWUsbC5tZW1vaXplZFN0YXRlPVV1KDF8bix0LGEscil9ZnVuY3Rpb24gV3UoZSxuKXtyZXR1cm4gQXUoODM5MDY1Niw4LGUsbil9ZnVuY3Rpb24gSHUoZSxuKXtyZXR1cm4gQnUoMjA0OCw4LGUsbil9ZnVuY3Rpb24gUXUoZSxuKXtyZXR1cm4gQnUoNCwyLGUsbil9ZnVuY3Rpb24ganUoZSxuKXtyZXR1cm4gQnUoNCw0LGUsbil9ZnVuY3Rpb24gJHUoZSxuKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2Ygbj8oZT1lKCksbihlKSxmdW5jdGlvbigpe24obnVsbCl9KTpudWxsIT1uPyhlPWUoKSxuLmN1cnJlbnQ9ZSxmdW5jdGlvbigpe24uY3VycmVudD1udWxsfSk6dm9pZCAwfWZ1bmN0aW9uIHF1KGUsbix0KXsKcmV0dXJuIHQ9bnVsbCE9dD90LmNvbmNhdChbZV0pOm51bGwsQnUoNCw0LCR1LmJpbmQobnVsbCxuLGUpLHQpfWZ1bmN0aW9uIEt1KCl7fWZ1bmN0aW9uIFl1KGUsbil7dmFyIHQ9enUoKTtuPXZvaWQgMD09PW4/bnVsbDpuO3ZhciByPXQubWVtb2l6ZWRTdGF0ZTtyZXR1cm4gbnVsbCE9PXImJm51bGwhPT1uJiZTdShuLHJbMV0pP3JbMF06KHQubWVtb2l6ZWRTdGF0ZT1bZSxuXSxlKX1mdW5jdGlvbiBYdShlLG4pe3ZhciB0PXp1KCk7bj12b2lkIDA9PT1uP251bGw6bjt2YXIgcj10Lm1lbW9pemVkU3RhdGU7cmV0dXJuIG51bGwhPT1yJiZudWxsIT09biYmU3UobixyWzFdKT9yWzBdOihlPWUoKSx0Lm1lbW9pemVkU3RhdGU9W2Usbl0sZSl9ZnVuY3Rpb24gR3UoZSxuLHQpe3JldHVybiAyMSZwdT8ob3IodCxuKXx8KHQ9Z24oKSxtdS5sYW5lc3w9dCxJaXw9dCxlLmJhc2VTdGF0ZT0hMCksbik6KGUuYmFzZVN0YXRlJiYoZS5iYXNlU3RhdGU9ITEsa289ITApLGUubWVtb2l6ZWRTdGF0ZT10KX1mdW5jdGlvbiBadShlLG4pe3ZhciB0PWtuO2tuPTAhPT10JiY0PnQ/dDo0LGUoITApO3ZhciByPWR1LnRyYW5zaXRpb247ZHUudHJhbnNpdGlvbj17fTt0cnl7ZSghMSksbigpfWZpbmFsbHl7a249dCxkdS50cmFuc2l0aW9uPXJ9fWZ1bmN0aW9uIEp1KCl7cmV0dXJuIHp1KCkubWVtb2l6ZWRTdGF0ZX1mdW5jdGlvbiBlbyhlLG4sdCl7dmFyIHI9bnMoZSk7aWYodD17bGFuZTpyLGFjdGlvbjp0LGhhc0VhZ2VyU3RhdGU6ITEsZWFnZXJTdGF0ZTpudWxsLG5leHQ6bnVsbH0sdG8oZSkpcm8obix0KTtlbHNlIGlmKG51bGwhPT0odD1fYShlLG4sdCxyKSkpe3RzKHQsZSxyLGVzKCkpLGxvKHQsbixyKX19ZnVuY3Rpb24gbm8oZSxuLHQpe3ZhciByPW5zKGUpLGw9e2xhbmU6cixhY3Rpb246dCxoYXNFYWdlclN0YXRlOiExLGVhZ2VyU3RhdGU6bnVsbCxuZXh0Om51bGx9O2lmKHRvKGUpKXJvKG4sbCk7ZWxzZXt2YXIgYT1lLmFsdGVybmF0ZTtpZigwPT09ZS5sYW5lcyYmKG51bGw9PT1hfHwwPT09YS5sYW5lcykmJm51bGwhPT0oYT1uLmxhc3RSZW5kZXJlZFJlZHVjZXIpKXRyeXt2YXIgdT1uLmxhc3RSZW5kZXJlZFN0YXRlLG89YSh1LHQpO2lmKGwuaGFzRWFnZXJTdGF0ZT0hMCxsLmVhZ2VyU3RhdGU9byxvcihvLHUpKXt2YXIgaT1uLmludGVybGVhdmVkO3JldHVybiBudWxsPT09aT8obC5uZXh0PWwsTmEobikpOihsLm5leHQ9aS5uZXh0LGkubmV4dD1sKSx2b2lkKG4uaW50ZXJsZWF2ZWQ9bCl9fWNhdGNoKGUpe31udWxsIT09KHQ9X2EoZSxuLGwscikpJiYodHModCxlLHIsbD1lcygpKSxsbyh0LG4scikpfX1mdW5jdGlvbiB0byhlKXt2YXIgbj1lLmFsdGVybmF0ZTtyZXR1cm4gZT09PW11fHxudWxsIT09biYmbj09PW11fWZ1bmN0aW9uIHJvKGUsbil7eXU9dnU9ITA7dmFyIHQ9ZS5wZW5kaW5nO251bGw9PT10P24ubmV4dD1uOihuLm5leHQ9dC5uZXh0LHQubmV4dD1uKSxlLnBlbmRpbmc9bn1mdW5jdGlvbiBsbyhlLG4sdCl7aWYoNDE5NDI0MCZ0KXt2YXIgcj1uLmxhbmVzO3R8PXImPWUucGVuZGluZ0xhbmVzLG4ubGFuZXM9dCxibihlLHQpfX12YXIgYW89e3JlYWRDb250ZXh0OkNhLHVzZUNhbGxiYWNrOnd1LHVzZUNvbnRleHQ6d3UsdXNlRWZmZWN0Ond1LHVzZUltcGVyYXRpdmVIYW5kbGU6d3UsdXNlSW5zZXJ0aW9uRWZmZWN0Ond1LHVzZUxheW91dEVmZmVjdDp3dSx1c2VNZW1vOnd1LHVzZVJlZHVjZXI6d3UsdXNlUmVmOnd1LHVzZVN0YXRlOnd1LHVzZURlYnVnVmFsdWU6d3UsdXNlRGVmZXJyZWRWYWx1ZTp3dSx1c2VUcmFuc2l0aW9uOnd1LHVzZU11dGFibGVTb3VyY2U6d3UsdXNlU3luY0V4dGVybmFsU3RvcmU6d3UsdXNlSWQ6d3UsdW5zdGFibGVfaXNOZXdSZWNvbmNpbGVyOiExfSx1bz17cmVhZENvbnRleHQ6Q2EsdXNlQ2FsbGJhY2s6ZnVuY3Rpb24oZSxuKXtyZXR1cm4gQ3UoKS5tZW1vaXplZFN0YXRlPVtlLHZvaWQgMD09PW4/bnVsbDpuXSxlfSx1c2VDb250ZXh0OkNhLHVzZUVmZmVjdDpXdSx1c2VJbXBlcmF0aXZlSGFuZGxlOmZ1bmN0aW9uKGUsbix0KXtyZXR1cm4gdD1udWxsIT10P3QuY29uY2F0KFtlXSk6bnVsbCxBdSg0MTk0MzA4LDQsJHUuYmluZChudWxsLG4sZSksdCl9LHVzZUxheW91dEVmZmVjdDpmdW5jdGlvbihlLG4pe3JldHVybiBBdSg0MTk0MzA4LDQsZSxuKX0sdXNlSW5zZXJ0aW9uRWZmZWN0OmZ1bmN0aW9uKGUsbil7cmV0dXJuIEF1KDQsMixlLG4pfSx1c2VNZW1vOmZ1bmN0aW9uKGUsbil7dmFyIHQ9Q3UoKTtyZXR1cm4gbj12b2lkIDA9PT1uP251bGw6bixlPWUoKSx0Lm1lbW9pemVkU3RhdGU9W2Usbl0sZX0sdXNlUmVkdWNlcjpmdW5jdGlvbihlLG4sdCl7dmFyIHI9Q3UoKTtyZXR1cm4gbj12b2lkIDAhPT10P3Qobik6bixyLm1lbW9pemVkU3RhdGU9ci5iYXNlU3RhdGU9bixlPXtwZW5kaW5nOm51bGwsaW50ZXJsZWF2ZWQ6bnVsbCxsYW5lczowLGRpc3BhdGNoOm51bGwsbGFzdFJlbmRlcmVkUmVkdWNlcjplLGxhc3RSZW5kZXJlZFN0YXRlOm59LHIucXVldWU9ZSxlPWUuZGlzcGF0Y2g9ZW8uYmluZChudWxsLG11LGUpLFtyLm1lbW9pemVkU3RhdGUsZV19LHVzZVJlZjpmdW5jdGlvbihlKXtyZXR1cm4gZT17Y3VycmVudDplfSxDdSgpLm1lbW9pemVkU3RhdGU9ZX0sdXNlU3RhdGU6T3UsdXNlRGVidWdWYWx1ZTpLdSx1c2VEZWZlcnJlZFZhbHVlOmZ1bmN0aW9uKGUpe3JldHVybiBDdSgpLm1lbW9pemVkU3RhdGU9ZX0sdXNlVHJhbnNpdGlvbjpmdW5jdGlvbigpe3ZhciBlPU91KCExKSxuPWVbMF07cmV0dXJuIGU9WnUuYmluZChudWxsLGVbMV0pLEN1KCkubWVtb2l6ZWRTdGF0ZT1lLFtuLGVdfSx1c2VNdXRhYmxlU291cmNlOmZ1bmN0aW9uKCl7fSx1c2VTeW5jRXh0ZXJuYWxTdG9yZTpmdW5jdGlvbihlLG4sdCl7dmFyIHI9bXUsbD1DdSgpO2lmKGxhKXtpZih2b2lkIDA9PT10KXRocm93IEVycm9yKGEoNDA3KSk7dD10KCl9ZWxzZXtpZih0PW4oKSxudWxsPT09UGkpdGhyb3cgRXJyb3IoYSgzNDkpKTszMCZwdXx8TXUocixuLHQpfWwubWVtb2l6ZWRTdGF0ZT10O3ZhciB1PXt2YWx1ZTp0LGdldFNuYXBzaG90Om59O3JldHVybiBsLnF1ZXVlPXUsCld1KFJ1LmJpbmQobnVsbCxyLHUsZSksW2VdKSxyLmZsYWdzfD0yMDQ4LFV1KDksRnUuYmluZChudWxsLHIsdSx0LG4pLHZvaWQgMCxudWxsKSx0fSx1c2VJZDpmdW5jdGlvbigpe3ZhciBlPUN1KCksbj1QaS5pZGVudGlmaWVyUHJlZml4O2lmKGxhKXt2YXIgdD1HbDtuPSI6IituKyJSIisodD0oWGwmfigxPDwzMi11bihYbCktMSkpLnRvU3RyaW5nKDMyKSt0KSwwPCh0PWJ1KyspJiYobis9IkgiK3QudG9TdHJpbmcoMzIpKSxuKz0iOiJ9ZWxzZSBuPSI6IituKyJyIisodD1rdSsrKS50b1N0cmluZygzMikrIjoiO3JldHVybiBlLm1lbW9pemVkU3RhdGU9bn0sdW5zdGFibGVfaXNOZXdSZWNvbmNpbGVyOiExfSxvbz17cmVhZENvbnRleHQ6Q2EsdXNlQ2FsbGJhY2s6WXUsdXNlQ29udGV4dDpDYSx1c2VFZmZlY3Q6SHUsdXNlSW1wZXJhdGl2ZUhhbmRsZTpxdSx1c2VJbnNlcnRpb25FZmZlY3Q6UXUsdXNlTGF5b3V0RWZmZWN0Omp1LHVzZU1lbW86WHUsdXNlUmVkdWNlcjpfdSx1c2VSZWY6VnUsdXNlU3RhdGU6ZnVuY3Rpb24oKXtyZXR1cm4gX3UoTnUpfSx1c2VEZWJ1Z1ZhbHVlOkt1LHVzZURlZmVycmVkVmFsdWU6ZnVuY3Rpb24oZSl7cmV0dXJuIEd1KHp1KCksaHUubWVtb2l6ZWRTdGF0ZSxlKX0sdXNlVHJhbnNpdGlvbjpmdW5jdGlvbigpe3JldHVybltfdShOdSlbMF0senUoKS5tZW1vaXplZFN0YXRlXX0sdXNlTXV0YWJsZVNvdXJjZTpUdSx1c2VTeW5jRXh0ZXJuYWxTdG9yZTpMdSx1c2VJZDpKdSx1bnN0YWJsZV9pc05ld1JlY29uY2lsZXI6ITF9LGlvPXtyZWFkQ29udGV4dDpDYSx1c2VDYWxsYmFjazpZdSx1c2VDb250ZXh0OkNhLHVzZUVmZmVjdDpIdSx1c2VJbXBlcmF0aXZlSGFuZGxlOnF1LHVzZUluc2VydGlvbkVmZmVjdDpRdSx1c2VMYXlvdXRFZmZlY3Q6anUsdXNlTWVtbzpYdSx1c2VSZWR1Y2VyOlB1LHVzZVJlZjpWdSx1c2VTdGF0ZTpmdW5jdGlvbigpe3JldHVybiBQdShOdSl9LHVzZURlYnVnVmFsdWU6S3UsdXNlRGVmZXJyZWRWYWx1ZTpmdW5jdGlvbihlKXt2YXIgbj16dSgpO3JldHVybiBudWxsPT09aHU/bi5tZW1vaXplZFN0YXRlPWU6R3UobixodS5tZW1vaXplZFN0YXRlLGUpfSx1c2VUcmFuc2l0aW9uOmZ1bmN0aW9uKCl7cmV0dXJuW1B1KE51KVswXSx6dSgpLm1lbW9pemVkU3RhdGVdfSx1c2VNdXRhYmxlU291cmNlOlR1LHVzZVN5bmNFeHRlcm5hbFN0b3JlOkx1LHVzZUlkOkp1LHVuc3RhYmxlX2lzTmV3UmVjb25jaWxlcjohMX07ZnVuY3Rpb24gc28oZSxuKXt0cnl7dmFyIHQ9IiIscj1uO2Rve3QrPUIocikscj1yLnJldHVybn13aGlsZShyKTt2YXIgbD10fWNhdGNoKGUpe2w9IlxuRXJyb3IgZ2VuZXJhdGluZyBzdGFjazogIitlLm1lc3NhZ2UrIlxuIitlLnN0YWNrfXJldHVybnt2YWx1ZTplLHNvdXJjZTpuLHN0YWNrOmwsZGlnZXN0Om51bGx9fWZ1bmN0aW9uIGNvKGUsbix0KXtyZXR1cm57dmFsdWU6ZSxzb3VyY2U6bnVsbCxzdGFjazpudWxsIT10P3Q6bnVsbCxkaWdlc3Q6bnVsbCE9bj9uOm51bGx9fWZ1bmN0aW9uIGZvKGUsbil7dHJ5e2NvbnNvbGUuZXJyb3Iobi52YWx1ZSl9Y2F0Y2goZSl7c2V0VGltZW91dCgoZnVuY3Rpb24oKXt0aHJvdyBlfSkpfX12YXIgcG89ImZ1bmN0aW9uIj09dHlwZW9mIFdlYWtNYXA/V2Vha01hcDpNYXA7ZnVuY3Rpb24gbW8oZSxuLHQpeyh0PUZhKC0xLHQpKS50YWc9Myx0LnBheWxvYWQ9e2VsZW1lbnQ6bnVsbH07dmFyIHI9bi52YWx1ZTtyZXR1cm4gdC5jYWxsYmFjaz1mdW5jdGlvbigpe1FpfHwoUWk9ITAsamk9ciksZm8oMCxuKX0sdH1mdW5jdGlvbiBobyhlLG4sdCl7KHQ9RmEoLTEsdCkpLnRhZz0zO3ZhciByPWUudHlwZS5nZXREZXJpdmVkU3RhdGVGcm9tRXJyb3I7aWYoImZ1bmN0aW9uIj09dHlwZW9mIHIpe3ZhciBsPW4udmFsdWU7dC5wYXlsb2FkPWZ1bmN0aW9uKCl7cmV0dXJuIHIobCl9LHQuY2FsbGJhY2s9ZnVuY3Rpb24oKXtmbygwLG4pfX12YXIgYT1lLnN0YXRlTm9kZTtyZXR1cm4gbnVsbCE9PWEmJiJmdW5jdGlvbiI9PXR5cGVvZiBhLmNvbXBvbmVudERpZENhdGNoJiYodC5jYWxsYmFjaz1mdW5jdGlvbigpe2ZvKDAsbiksImZ1bmN0aW9uIiE9dHlwZW9mIHImJihudWxsPT09JGk/JGk9bmV3IFNldChbdGhpc10pOiRpLmFkZCh0aGlzKSk7dmFyIGU9bi5zdGFjazt0aGlzLmNvbXBvbmVudERpZENhdGNoKG4udmFsdWUse2NvbXBvbmVudFN0YWNrOm51bGwhPT1lP2U6IiJ9KX0pLHR9ZnVuY3Rpb24gZ28oZSxuLHQpe3ZhciByPWUucGluZ0NhY2hlO2lmKG51bGw9PT1yKXtyPWUucGluZ0NhY2hlPW5ldyBwbzt2YXIgbD1uZXcgU2V0O3Iuc2V0KG4sbCl9ZWxzZSB2b2lkIDA9PT0obD1yLmdldChuKSkmJihsPW5ldyBTZXQsci5zZXQobixsKSk7bC5oYXModCl8fChsLmFkZCh0KSxlPUNzLmJpbmQobnVsbCxlLG4sdCksbi50aGVuKGUsZSkpfWZ1bmN0aW9uIHZvKGUpe2Rve3ZhciBuO2lmKChuPTEzPT09ZS50YWcpJiYobj1udWxsPT09KG49ZS5tZW1vaXplZFN0YXRlKXx8bnVsbCE9PW4uZGVoeWRyYXRlZCksbilyZXR1cm4gZTtlPWUucmV0dXJufXdoaWxlKG51bGwhPT1lKTtyZXR1cm4gbnVsbH1mdW5jdGlvbiB5byhlLG4sdCxyLGwpe3JldHVybiAxJmUubW9kZT8oZS5mbGFnc3w9NjU1MzYsZS5sYW5lcz1sLGUpOihlPT09bj9lLmZsYWdzfD02NTUzNjooZS5mbGFnc3w9MTI4LHQuZmxhZ3N8PTEzMTA3Mix0LmZsYWdzJj0tNTI4MDUsMT09PXQudGFnJiYobnVsbD09PXQuYWx0ZXJuYXRlP3QudGFnPTE3Oigobj1GYSgtMSwxKSkudGFnPTIsUmEodCxuLDEpKSksdC5sYW5lc3w9MSksZSl9dmFyIGJvPWsuUmVhY3RDdXJyZW50T3duZXIsa289ITE7ZnVuY3Rpb24gd28oZSxuLHQscil7bi5jaGlsZD1udWxsPT09ZT9HYShuLG51bGwsdCxyKTpYYShuLGUuY2hpbGQsdCxyKX1mdW5jdGlvbiBTbyhlLG4sdCxyLGwpe3Q9dC5yZW5kZXI7dmFyIGE9bi5yZWY7cmV0dXJuIEVhKG4sbCkscj14dShlLG4sdCxyLGEsbCksdD1FdSgpLG51bGw9PT1lfHxrbz8obGEmJnQmJmVhKG4pLG4uZmxhZ3N8PTEsd28oZSxuLHIsbCksbi5jaGlsZCk6KG4udXBkYXRlUXVldWU9ZS51cGRhdGVRdWV1ZSxuLmZsYWdzJj0tMjA1MywKZS5sYW5lcyY9fmwsUW8oZSxuLGwpKX1mdW5jdGlvbiB4byhlLG4sdCxyLGwpe2lmKG51bGw9PT1lKXt2YXIgYT10LnR5cGU7cmV0dXJuImZ1bmN0aW9uIiE9dHlwZW9mIGF8fE1zKGEpfHx2b2lkIDAhPT1hLmRlZmF1bHRQcm9wc3x8bnVsbCE9PXQuY29tcGFyZXx8dm9pZCAwIT09dC5kZWZhdWx0UHJvcHM/KChlPVJzKHQudHlwZSxudWxsLHIsbixuLm1vZGUsbCkpLnJlZj1uLnJlZixlLnJldHVybj1uLG4uY2hpbGQ9ZSk6KG4udGFnPTE1LG4udHlwZT1hLEVvKGUsbixhLHIsbCkpfWlmKGE9ZS5jaGlsZCwhKGUubGFuZXMmbCkpe3ZhciB1PWEubWVtb2l6ZWRQcm9wcztpZigodD1udWxsIT09KHQ9dC5jb21wYXJlKT90OmlyKSh1LHIpJiZlLnJlZj09PW4ucmVmKXJldHVybiBRbyhlLG4sbCl9cmV0dXJuIG4uZmxhZ3N8PTEsKGU9RnMoYSxyKSkucmVmPW4ucmVmLGUucmV0dXJuPW4sbi5jaGlsZD1lfWZ1bmN0aW9uIEVvKGUsbix0LHIsbCl7aWYobnVsbCE9PWUpe3ZhciBhPWUubWVtb2l6ZWRQcm9wcztpZihpcihhLHIpJiZlLnJlZj09PW4ucmVmKXtpZihrbz0hMSxuLnBlbmRpbmdQcm9wcz1yPWEsIShlLmxhbmVzJmwpKXJldHVybiBuLmxhbmVzPWUubGFuZXMsUW8oZSxuLGwpOzEzMTA3MiZlLmZsYWdzJiYoa289ITApfX1yZXR1cm4gTm8oZSxuLHQscixsKX1mdW5jdGlvbiBDbyhlLG4sdCl7dmFyIHI9bi5wZW5kaW5nUHJvcHMsbD1yLmNoaWxkcmVuLGE9bnVsbCE9PWU/ZS5tZW1vaXplZFN0YXRlOm51bGw7aWYoImhpZGRlbiI9PT1yLm1vZGUpaWYoMSZuLm1vZGUpe2lmKCEoMTA3Mzc0MTgyNCZ0KSlyZXR1cm4gZT1udWxsIT09YT9hLmJhc2VMYW5lc3x0OnQsbi5sYW5lcz1uLmNoaWxkTGFuZXM9MTA3Mzc0MTgyNCxuLm1lbW9pemVkU3RhdGU9e2Jhc2VMYW5lczplLGNhY2hlUG9vbDpudWxsLHRyYW5zaXRpb25zOm51bGx9LG4udXBkYXRlUXVldWU9bnVsbCx6bChGaSxNaSksTWl8PWUsbnVsbDtuLm1lbW9pemVkU3RhdGU9e2Jhc2VMYW5lczowLGNhY2hlUG9vbDpudWxsLHRyYW5zaXRpb25zOm51bGx9LHI9bnVsbCE9PWE/YS5iYXNlTGFuZXM6dCx6bChGaSxNaSksTWl8PXJ9ZWxzZSBuLm1lbW9pemVkU3RhdGU9e2Jhc2VMYW5lczowLGNhY2hlUG9vbDpudWxsLHRyYW5zaXRpb25zOm51bGx9LHpsKEZpLE1pKSxNaXw9dDtlbHNlIG51bGwhPT1hPyhyPWEuYmFzZUxhbmVzfHQsbi5tZW1vaXplZFN0YXRlPW51bGwpOnI9dCx6bChGaSxNaSksTWl8PXI7cmV0dXJuIHdvKGUsbixsLHQpLG4uY2hpbGR9ZnVuY3Rpb24gem8oZSxuKXt2YXIgdD1uLnJlZjsobnVsbD09PWUmJm51bGwhPT10fHxudWxsIT09ZSYmZS5yZWYhPT10KSYmKG4uZmxhZ3N8PTUxMixuLmZsYWdzfD0yMDk3MTUyKX1mdW5jdGlvbiBObyhlLG4sdCxyLGwpe3ZhciBhPU1sKHQpP1RsOl9sLmN1cnJlbnQ7cmV0dXJuIGE9TGwobixhKSxFYShuLGwpLHQ9eHUoZSxuLHQscixhLGwpLHI9RXUoKSxudWxsPT09ZXx8a28/KGxhJiZyJiZlYShuKSxuLmZsYWdzfD0xLHdvKGUsbix0LGwpLG4uY2hpbGQpOihuLnVwZGF0ZVF1ZXVlPWUudXBkYXRlUXVldWUsbi5mbGFncyY9LTIwNTMsZS5sYW5lcyY9fmwsUW8oZSxuLGwpKX1mdW5jdGlvbiBfbyhlLG4sdCxyLGwpe2lmKE1sKHQpKXt2YXIgYT0hMDtJbChuKX1lbHNlIGE9ITE7aWYoRWEobixsKSxudWxsPT09bi5zdGF0ZU5vZGUpSG8oZSxuKSxIYShuLHQsciksamEobix0LHIsbCkscj0hMDtlbHNlIGlmKG51bGw9PT1lKXt2YXIgdT1uLnN0YXRlTm9kZSxvPW4ubWVtb2l6ZWRQcm9wczt1LnByb3BzPW87dmFyIGk9dS5jb250ZXh0LHM9dC5jb250ZXh0VHlwZTsib2JqZWN0Ij09dHlwZW9mIHMmJm51bGwhPT1zP3M9Q2Eocyk6cz1MbChuLHM9TWwodCk/VGw6X2wuY3VycmVudCk7dmFyIGM9dC5nZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMsZj0iZnVuY3Rpb24iPT10eXBlb2YgY3x8ImZ1bmN0aW9uIj09dHlwZW9mIHUuZ2V0U25hcHNob3RCZWZvcmVVcGRhdGU7Znx8ImZ1bmN0aW9uIiE9dHlwZW9mIHUuVU5TQUZFX2NvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMmJiJmdW5jdGlvbiIhPXR5cGVvZiB1LmNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHN8fChvIT09cnx8aSE9PXMpJiZRYShuLHUscixzKSxUYT0hMTt2YXIgZD1uLm1lbW9pemVkU3RhdGU7dS5zdGF0ZT1kLE9hKG4scix1LGwpLGk9bi5tZW1vaXplZFN0YXRlLG8hPT1yfHxkIT09aXx8UGwuY3VycmVudHx8VGE/KCJmdW5jdGlvbiI9PXR5cGVvZiBjJiYoQWEobix0LGMsciksaT1uLm1lbW9pemVkU3RhdGUpLChvPVRhfHxXYShuLHQsbyxyLGQsaSxzKSk/KGZ8fCJmdW5jdGlvbiIhPXR5cGVvZiB1LlVOU0FGRV9jb21wb25lbnRXaWxsTW91bnQmJiJmdW5jdGlvbiIhPXR5cGVvZiB1LmNvbXBvbmVudFdpbGxNb3VudHx8KCJmdW5jdGlvbiI9PXR5cGVvZiB1LmNvbXBvbmVudFdpbGxNb3VudCYmdS5jb21wb25lbnRXaWxsTW91bnQoKSwiZnVuY3Rpb24iPT10eXBlb2YgdS5VTlNBRkVfY29tcG9uZW50V2lsbE1vdW50JiZ1LlVOU0FGRV9jb21wb25lbnRXaWxsTW91bnQoKSksImZ1bmN0aW9uIj09dHlwZW9mIHUuY29tcG9uZW50RGlkTW91bnQmJihuLmZsYWdzfD00MTk0MzA4KSk6KCJmdW5jdGlvbiI9PXR5cGVvZiB1LmNvbXBvbmVudERpZE1vdW50JiYobi5mbGFnc3w9NDE5NDMwOCksbi5tZW1vaXplZFByb3BzPXIsbi5tZW1vaXplZFN0YXRlPWkpLHUucHJvcHM9cix1LnN0YXRlPWksdS5jb250ZXh0PXMscj1vKTooImZ1bmN0aW9uIj09dHlwZW9mIHUuY29tcG9uZW50RGlkTW91bnQmJihuLmZsYWdzfD00MTk0MzA4KSxyPSExKX1lbHNle3U9bi5zdGF0ZU5vZGUsTWEoZSxuKSxvPW4ubWVtb2l6ZWRQcm9wcyxzPW4udHlwZT09PW4uZWxlbWVudFR5cGU/bzpnYShuLnR5cGUsbyksdS5wcm9wcz1zLGY9bi5wZW5kaW5nUHJvcHMsZD11LmNvbnRleHQsIm9iamVjdCI9PXR5cGVvZihpPXQuY29udGV4dFR5cGUpJiZudWxsIT09aT9pPUNhKGkpOmk9TGwobixpPU1sKHQpP1RsOl9sLmN1cnJlbnQpO3ZhciBwPXQuZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzCjsoYz0iZnVuY3Rpb24iPT10eXBlb2YgcHx8ImZ1bmN0aW9uIj09dHlwZW9mIHUuZ2V0U25hcHNob3RCZWZvcmVVcGRhdGUpfHwiZnVuY3Rpb24iIT10eXBlb2YgdS5VTlNBRkVfY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyYmImZ1bmN0aW9uIiE9dHlwZW9mIHUuY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wc3x8KG8hPT1mfHxkIT09aSkmJlFhKG4sdSxyLGkpLFRhPSExLGQ9bi5tZW1vaXplZFN0YXRlLHUuc3RhdGU9ZCxPYShuLHIsdSxsKTt2YXIgbT1uLm1lbW9pemVkU3RhdGU7byE9PWZ8fGQhPT1tfHxQbC5jdXJyZW50fHxUYT8oImZ1bmN0aW9uIj09dHlwZW9mIHAmJihBYShuLHQscCxyKSxtPW4ubWVtb2l6ZWRTdGF0ZSksKHM9VGF8fFdhKG4sdCxzLHIsZCxtLGkpfHwhMSk/KGN8fCJmdW5jdGlvbiIhPXR5cGVvZiB1LlVOU0FGRV9jb21wb25lbnRXaWxsVXBkYXRlJiYiZnVuY3Rpb24iIT10eXBlb2YgdS5jb21wb25lbnRXaWxsVXBkYXRlfHwoImZ1bmN0aW9uIj09dHlwZW9mIHUuY29tcG9uZW50V2lsbFVwZGF0ZSYmdS5jb21wb25lbnRXaWxsVXBkYXRlKHIsbSxpKSwiZnVuY3Rpb24iPT10eXBlb2YgdS5VTlNBRkVfY29tcG9uZW50V2lsbFVwZGF0ZSYmdS5VTlNBRkVfY29tcG9uZW50V2lsbFVwZGF0ZShyLG0saSkpLCJmdW5jdGlvbiI9PXR5cGVvZiB1LmNvbXBvbmVudERpZFVwZGF0ZSYmKG4uZmxhZ3N8PTQpLCJmdW5jdGlvbiI9PXR5cGVvZiB1LmdldFNuYXBzaG90QmVmb3JlVXBkYXRlJiYobi5mbGFnc3w9MTAyNCkpOigiZnVuY3Rpb24iIT10eXBlb2YgdS5jb21wb25lbnREaWRVcGRhdGV8fG89PT1lLm1lbW9pemVkUHJvcHMmJmQ9PT1lLm1lbW9pemVkU3RhdGV8fChuLmZsYWdzfD00KSwiZnVuY3Rpb24iIT10eXBlb2YgdS5nZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZXx8bz09PWUubWVtb2l6ZWRQcm9wcyYmZD09PWUubWVtb2l6ZWRTdGF0ZXx8KG4uZmxhZ3N8PTEwMjQpLG4ubWVtb2l6ZWRQcm9wcz1yLG4ubWVtb2l6ZWRTdGF0ZT1tKSx1LnByb3BzPXIsdS5zdGF0ZT1tLHUuY29udGV4dD1pLHI9cyk6KCJmdW5jdGlvbiIhPXR5cGVvZiB1LmNvbXBvbmVudERpZFVwZGF0ZXx8bz09PWUubWVtb2l6ZWRQcm9wcyYmZD09PWUubWVtb2l6ZWRTdGF0ZXx8KG4uZmxhZ3N8PTQpLCJmdW5jdGlvbiIhPXR5cGVvZiB1LmdldFNuYXBzaG90QmVmb3JlVXBkYXRlfHxvPT09ZS5tZW1vaXplZFByb3BzJiZkPT09ZS5tZW1vaXplZFN0YXRlfHwobi5mbGFnc3w9MTAyNCkscj0hMSl9cmV0dXJuIFBvKGUsbix0LHIsYSxsKX1mdW5jdGlvbiBQbyhlLG4sdCxyLGwsYSl7em8oZSxuKTt2YXIgdT0hISgxMjgmbi5mbGFncyk7aWYoIXImJiF1KXJldHVybiBsJiZPbChuLHQsITEpLFFvKGUsbixhKTtyPW4uc3RhdGVOb2RlLGJvLmN1cnJlbnQ9bjt2YXIgbz11JiYiZnVuY3Rpb24iIT10eXBlb2YgdC5nZXREZXJpdmVkU3RhdGVGcm9tRXJyb3I/bnVsbDpyLnJlbmRlcigpO3JldHVybiBuLmZsYWdzfD0xLG51bGwhPT1lJiZ1PyhuLmNoaWxkPVhhKG4sZS5jaGlsZCxudWxsLGEpLG4uY2hpbGQ9WGEobixudWxsLG8sYSkpOndvKGUsbixvLGEpLG4ubWVtb2l6ZWRTdGF0ZT1yLnN0YXRlLGwmJk9sKG4sdCwhMCksbi5jaGlsZH1mdW5jdGlvbiBUbyhlKXt2YXIgbj1lLnN0YXRlTm9kZTtuLnBlbmRpbmdDb250ZXh0P1JsKDAsbi5wZW5kaW5nQ29udGV4dCxuLnBlbmRpbmdDb250ZXh0IT09bi5jb250ZXh0KTpuLmNvbnRleHQmJlJsKDAsbi5jb250ZXh0LCExKSxydShlLG4uY29udGFpbmVySW5mbyl9ZnVuY3Rpb24gTG8oZSxuLHQscixsKXtyZXR1cm4gcGEoKSxtYShsKSxuLmZsYWdzfD0yNTYsd28oZSxuLHQsciksbi5jaGlsZH12YXIgTW8sRm8sUm8sRG89e2RlaHlkcmF0ZWQ6bnVsbCx0cmVlQ29udGV4dDpudWxsLHJldHJ5TGFuZTowfTtmdW5jdGlvbiBJbyhlKXtyZXR1cm57YmFzZUxhbmVzOmUsY2FjaGVQb29sOm51bGwsdHJhbnNpdGlvbnM6bnVsbH19ZnVuY3Rpb24gT28oZSxuLHQpe3ZhciByLGw9bi5wZW5kaW5nUHJvcHMsdT1vdS5jdXJyZW50LG89ITEsaT0hISgxMjgmbi5mbGFncyk7aWYoKHI9aSl8fChyPShudWxsPT09ZXx8bnVsbCE9PWUubWVtb2l6ZWRTdGF0ZSkmJiEhKDImdSkpLHI/KG89ITAsbi5mbGFncyY9LTEyOSk6bnVsbCE9PWUmJm51bGw9PT1lLm1lbW9pemVkU3RhdGV8fCh1fD0xKSx6bChvdSwxJnUpLG51bGw9PT1lKXJldHVybiBzYShuKSxudWxsIT09KGU9bi5tZW1vaXplZFN0YXRlKSYmbnVsbCE9PShlPWUuZGVoeWRyYXRlZCk/KDEmbi5tb2RlPyIkISI9PT1lLmRhdGE/bi5sYW5lcz04Om4ubGFuZXM9MTA3Mzc0MTgyNDpuLmxhbmVzPTEsbnVsbCk6KGk9bC5jaGlsZHJlbixlPWwuZmFsbGJhY2ssbz8obD1uLm1vZGUsbz1uLmNoaWxkLGk9e21vZGU6ImhpZGRlbiIsY2hpbGRyZW46aX0sMSZsfHxudWxsPT09bz9vPUlzKGksbCwwLG51bGwpOihvLmNoaWxkTGFuZXM9MCxvLnBlbmRpbmdQcm9wcz1pKSxlPURzKGUsbCx0LG51bGwpLG8ucmV0dXJuPW4sZS5yZXR1cm49bixvLnNpYmxpbmc9ZSxuLmNoaWxkPW8sbi5jaGlsZC5tZW1vaXplZFN0YXRlPUlvKHQpLG4ubWVtb2l6ZWRTdGF0ZT1EbyxlKTpVbyhuLGkpKTtpZihudWxsIT09KHU9ZS5tZW1vaXplZFN0YXRlKSYmbnVsbCE9PShyPXUuZGVoeWRyYXRlZCkpcmV0dXJuIGZ1bmN0aW9uKGUsbix0LHIsbCx1LG8pe2lmKHQpcmV0dXJuIDI1NiZuLmZsYWdzPyhuLmZsYWdzJj0tMjU3LFZvKGUsbixvLHI9Y28oRXJyb3IoYSg0MjIpKSkpKTpudWxsIT09bi5tZW1vaXplZFN0YXRlPyhuLmNoaWxkPWUuY2hpbGQsbi5mbGFnc3w9MTI4LG51bGwpOih1PXIuZmFsbGJhY2ssbD1uLm1vZGUscj1Jcyh7bW9kZToidmlzaWJsZSIsY2hpbGRyZW46ci5jaGlsZHJlbn0sbCwwLG51bGwpLCh1PURzKHUsbCxvLG51bGwpKS5mbGFnc3w9MixyLnJldHVybj1uLHUucmV0dXJuPW4sci5zaWJsaW5nPXUsbi5jaGlsZD1yLDEmbi5tb2RlJiZYYShuLGUuY2hpbGQsbnVsbCxvKSxuLmNoaWxkLm1lbW9pemVkU3RhdGU9SW8obyksbi5tZW1vaXplZFN0YXRlPURvLHUpO2lmKCEoMSZuLm1vZGUpKXJldHVybiBWbyhlLG4sbyxudWxsKTtpZigiJCEiPT09bC5kYXRhKXsKaWYocj1sLm5leHRTaWJsaW5nJiZsLm5leHRTaWJsaW5nLmRhdGFzZXQpdmFyIGk9ci5kZ3N0O3JldHVybiByPWksVm8oZSxuLG8scj1jbyh1PUVycm9yKGEoNDE5KSkscix2b2lkIDApKX1pZihpPSEhKG8mZS5jaGlsZExhbmVzKSxrb3x8aSl7aWYobnVsbCE9PShyPVBpKSl7c3dpdGNoKG8mLW8pe2Nhc2UgNDpsPTI7YnJlYWs7Y2FzZSAxNjpsPTg7YnJlYWs7Y2FzZSA2NDpjYXNlIDEyODpjYXNlIDI1NjpjYXNlIDUxMjpjYXNlIDEwMjQ6Y2FzZSAyMDQ4OmNhc2UgNDA5NjpjYXNlIDgxOTI6Y2FzZSAxNjM4NDpjYXNlIDMyNzY4OmNhc2UgNjU1MzY6Y2FzZSAxMzEwNzI6Y2FzZSAyNjIxNDQ6Y2FzZSA1MjQyODg6Y2FzZSAxMDQ4NTc2OmNhc2UgMjA5NzE1MjpjYXNlIDQxOTQzMDQ6Y2FzZSA4Mzg4NjA4OmNhc2UgMTY3NzcyMTY6Y2FzZSAzMzU1NDQzMjpjYXNlIDY3MTA4ODY0Omw9MzI7YnJlYWs7Y2FzZSA1MzY4NzA5MTI6bD0yNjg0MzU0NTY7YnJlYWs7ZGVmYXVsdDpsPTB9MCE9PShsPWwmKHIuc3VzcGVuZGVkTGFuZXN8byk/MDpsKSYmbCE9PXUucmV0cnlMYW5lJiYodS5yZXRyeUxhbmU9bCxQYShlLGwpLHRzKHIsZSxsLC0xKSl9cmV0dXJuIGhzKCksVm8oZSxuLG8scj1jbyhFcnJvcihhKDQyMSkpKSl9cmV0dXJuIiQ/Ij09PWwuZGF0YT8obi5mbGFnc3w9MTI4LG4uY2hpbGQ9ZS5jaGlsZCxuPU5zLmJpbmQobnVsbCxlKSxsLl9yZWFjdFJldHJ5PW4sbnVsbCk6KGU9dS50cmVlQ29udGV4dCxyYT1zbChsLm5leHRTaWJsaW5nKSx0YT1uLGxhPSEwLGFhPW51bGwsbnVsbCE9PWUmJihxbFtLbCsrXT1YbCxxbFtLbCsrXT1HbCxxbFtLbCsrXT1ZbCxYbD1lLmlkLEdsPWUub3ZlcmZsb3csWWw9biksbj1VbyhuLHIuY2hpbGRyZW4pLG4uZmxhZ3N8PTQwOTYsbil9KGUsbixpLGwscix1LHQpO2lmKG8pe289bC5mYWxsYmFjayxpPW4ubW9kZSxyPSh1PWUuY2hpbGQpLnNpYmxpbmc7dmFyIHM9e21vZGU6ImhpZGRlbiIsY2hpbGRyZW46bC5jaGlsZHJlbn07cmV0dXJuIDEmaXx8bi5jaGlsZD09PXU/KGw9RnModSxzKSkuc3VidHJlZUZsYWdzPTE0NjgwMDY0JnUuc3VidHJlZUZsYWdzOigobD1uLmNoaWxkKS5jaGlsZExhbmVzPTAsbC5wZW5kaW5nUHJvcHM9cyxuLmRlbGV0aW9ucz1udWxsKSxudWxsIT09cj9vPUZzKHIsbyk6KG89RHMobyxpLHQsbnVsbCkpLmZsYWdzfD0yLG8ucmV0dXJuPW4sbC5yZXR1cm49bixsLnNpYmxpbmc9byxuLmNoaWxkPWwsbD1vLG89bi5jaGlsZCxpPW51bGw9PT0oaT1lLmNoaWxkLm1lbW9pemVkU3RhdGUpP0lvKHQpOntiYXNlTGFuZXM6aS5iYXNlTGFuZXN8dCxjYWNoZVBvb2w6bnVsbCx0cmFuc2l0aW9uczppLnRyYW5zaXRpb25zfSxvLm1lbW9pemVkU3RhdGU9aSxvLmNoaWxkTGFuZXM9ZS5jaGlsZExhbmVzJn50LG4ubWVtb2l6ZWRTdGF0ZT1EbyxsfXJldHVybiBlPShvPWUuY2hpbGQpLnNpYmxpbmcsbD1GcyhvLHttb2RlOiJ2aXNpYmxlIixjaGlsZHJlbjpsLmNoaWxkcmVufSksISgxJm4ubW9kZSkmJihsLmxhbmVzPXQpLGwucmV0dXJuPW4sbC5zaWJsaW5nPW51bGwsbnVsbCE9PWUmJihudWxsPT09KHQ9bi5kZWxldGlvbnMpPyhuLmRlbGV0aW9ucz1bZV0sbi5mbGFnc3w9MTYpOnQucHVzaChlKSksbi5jaGlsZD1sLG4ubWVtb2l6ZWRTdGF0ZT1udWxsLGx9ZnVuY3Rpb24gVW8oZSxuKXtyZXR1cm4obj1Jcyh7bW9kZToidmlzaWJsZSIsY2hpbGRyZW46bn0sZS5tb2RlLDAsbnVsbCkpLnJldHVybj1lLGUuY2hpbGQ9bn1mdW5jdGlvbiBWbyhlLG4sdCxyKXtyZXR1cm4gbnVsbCE9PXImJm1hKHIpLFhhKG4sZS5jaGlsZCxudWxsLHQpLChlPVVvKG4sbi5wZW5kaW5nUHJvcHMuY2hpbGRyZW4pKS5mbGFnc3w9MixuLm1lbW9pemVkU3RhdGU9bnVsbCxlfWZ1bmN0aW9uIEFvKGUsbix0KXtlLmxhbmVzfD1uO3ZhciByPWUuYWx0ZXJuYXRlO251bGwhPT1yJiYoci5sYW5lc3w9bikseGEoZS5yZXR1cm4sbix0KX1mdW5jdGlvbiBCbyhlLG4sdCxyLGwpe3ZhciBhPWUubWVtb2l6ZWRTdGF0ZTtudWxsPT09YT9lLm1lbW9pemVkU3RhdGU9e2lzQmFja3dhcmRzOm4scmVuZGVyaW5nOm51bGwscmVuZGVyaW5nU3RhcnRUaW1lOjAsbGFzdDpyLHRhaWw6dCx0YWlsTW9kZTpsfTooYS5pc0JhY2t3YXJkcz1uLGEucmVuZGVyaW5nPW51bGwsYS5yZW5kZXJpbmdTdGFydFRpbWU9MCxhLmxhc3Q9cixhLnRhaWw9dCxhLnRhaWxNb2RlPWwpfWZ1bmN0aW9uIFdvKGUsbix0KXt2YXIgcj1uLnBlbmRpbmdQcm9wcyxsPXIucmV2ZWFsT3JkZXIsYT1yLnRhaWw7aWYod28oZSxuLHIuY2hpbGRyZW4sdCksMiYocj1vdS5jdXJyZW50KSlyPTEmcnwyLG4uZmxhZ3N8PTEyODtlbHNle2lmKG51bGwhPT1lJiYxMjgmZS5mbGFncyllOmZvcihlPW4uY2hpbGQ7bnVsbCE9PWU7KXtpZigxMz09PWUudGFnKW51bGwhPT1lLm1lbW9pemVkU3RhdGUmJkFvKGUsdCxuKTtlbHNlIGlmKDE5PT09ZS50YWcpQW8oZSx0LG4pO2Vsc2UgaWYobnVsbCE9PWUuY2hpbGQpe2UuY2hpbGQucmV0dXJuPWUsZT1lLmNoaWxkO2NvbnRpbnVlfWlmKGU9PT1uKWJyZWFrIGU7Zm9yKDtudWxsPT09ZS5zaWJsaW5nOyl7aWYobnVsbD09PWUucmV0dXJufHxlLnJldHVybj09PW4pYnJlYWsgZTtlPWUucmV0dXJufWUuc2libGluZy5yZXR1cm49ZS5yZXR1cm4sZT1lLnNpYmxpbmd9ciY9MX1pZih6bChvdSxyKSwxJm4ubW9kZSlzd2l0Y2gobCl7Y2FzZSJmb3J3YXJkcyI6Zm9yKHQ9bi5jaGlsZCxsPW51bGw7bnVsbCE9PXQ7KW51bGwhPT0oZT10LmFsdGVybmF0ZSkmJm51bGw9PT1pdShlKSYmKGw9dCksdD10LnNpYmxpbmc7bnVsbD09PSh0PWwpPyhsPW4uY2hpbGQsbi5jaGlsZD1udWxsKToobD10LnNpYmxpbmcsdC5zaWJsaW5nPW51bGwpLEJvKG4sITEsbCx0LGEpO2JyZWFrO2Nhc2UiYmFja3dhcmRzIjpmb3IodD1udWxsLGw9bi5jaGlsZCxuLmNoaWxkPW51bGw7bnVsbCE9PWw7KXtpZihudWxsIT09KGU9bC5hbHRlcm5hdGUpJiZudWxsPT09aXUoZSkpe24uY2hpbGQ9bDticmVha31lPWwuc2libGluZyxsLnNpYmxpbmc9dCx0PWwsbD1lfUJvKG4sITAsdCxudWxsLGEpO2JyZWFrO2Nhc2UidG9nZXRoZXIiOgpCbyhuLCExLG51bGwsbnVsbCx2b2lkIDApO2JyZWFrO2RlZmF1bHQ6bi5tZW1vaXplZFN0YXRlPW51bGx9ZWxzZSBuLm1lbW9pemVkU3RhdGU9bnVsbDtyZXR1cm4gbi5jaGlsZH1mdW5jdGlvbiBIbyhlLG4peyEoMSZuLm1vZGUpJiZudWxsIT09ZSYmKGUuYWx0ZXJuYXRlPW51bGwsbi5hbHRlcm5hdGU9bnVsbCxuLmZsYWdzfD0yKX1mdW5jdGlvbiBRbyhlLG4sdCl7aWYobnVsbCE9PWUmJihuLmRlcGVuZGVuY2llcz1lLmRlcGVuZGVuY2llcyksSWl8PW4ubGFuZXMsISh0Jm4uY2hpbGRMYW5lcykpcmV0dXJuIG51bGw7aWYobnVsbCE9PWUmJm4uY2hpbGQhPT1lLmNoaWxkKXRocm93IEVycm9yKGEoMTUzKSk7aWYobnVsbCE9PW4uY2hpbGQpe2Zvcih0PUZzKGU9bi5jaGlsZCxlLnBlbmRpbmdQcm9wcyksbi5jaGlsZD10LHQucmV0dXJuPW47bnVsbCE9PWUuc2libGluZzspZT1lLnNpYmxpbmcsKHQ9dC5zaWJsaW5nPUZzKGUsZS5wZW5kaW5nUHJvcHMpKS5yZXR1cm49bjt0LnNpYmxpbmc9bnVsbH1yZXR1cm4gbi5jaGlsZH1mdW5jdGlvbiBqbyhlLG4pe2lmKCFsYSlzd2l0Y2goZS50YWlsTW9kZSl7Y2FzZSJoaWRkZW4iOm49ZS50YWlsO2Zvcih2YXIgdD1udWxsO251bGwhPT1uOyludWxsIT09bi5hbHRlcm5hdGUmJih0PW4pLG49bi5zaWJsaW5nO251bGw9PT10P2UudGFpbD1udWxsOnQuc2libGluZz1udWxsO2JyZWFrO2Nhc2UiY29sbGFwc2VkIjp0PWUudGFpbDtmb3IodmFyIHI9bnVsbDtudWxsIT09dDspbnVsbCE9PXQuYWx0ZXJuYXRlJiYocj10KSx0PXQuc2libGluZztudWxsPT09cj9ufHxudWxsPT09ZS50YWlsP2UudGFpbD1udWxsOmUudGFpbC5zaWJsaW5nPW51bGw6ci5zaWJsaW5nPW51bGx9fWZ1bmN0aW9uICRvKGUpe3ZhciBuPW51bGwhPT1lLmFsdGVybmF0ZSYmZS5hbHRlcm5hdGUuY2hpbGQ9PT1lLmNoaWxkLHQ9MCxyPTA7aWYobilmb3IodmFyIGw9ZS5jaGlsZDtudWxsIT09bDspdHw9bC5sYW5lc3xsLmNoaWxkTGFuZXMscnw9MTQ2ODAwNjQmbC5zdWJ0cmVlRmxhZ3Mscnw9MTQ2ODAwNjQmbC5mbGFncyxsLnJldHVybj1lLGw9bC5zaWJsaW5nO2Vsc2UgZm9yKGw9ZS5jaGlsZDtudWxsIT09bDspdHw9bC5sYW5lc3xsLmNoaWxkTGFuZXMscnw9bC5zdWJ0cmVlRmxhZ3Mscnw9bC5mbGFncyxsLnJldHVybj1lLGw9bC5zaWJsaW5nO3JldHVybiBlLnN1YnRyZWVGbGFnc3w9cixlLmNoaWxkTGFuZXM9dCxufWZ1bmN0aW9uIHFvKGUsbix0KXt2YXIgcj1uLnBlbmRpbmdQcm9wcztzd2l0Y2gobmEobiksbi50YWcpe2Nhc2UgMjpjYXNlIDE2OmNhc2UgMTU6Y2FzZSAwOmNhc2UgMTE6Y2FzZSA3OmNhc2UgODpjYXNlIDEyOmNhc2UgOTpjYXNlIDE0OnJldHVybiAkbyhuKSxudWxsO2Nhc2UgMTpjYXNlIDE3OnJldHVybiBNbChuLnR5cGUpJiZGbCgpLCRvKG4pLG51bGw7Y2FzZSAzOnJldHVybiByPW4uc3RhdGVOb2RlLGx1KCksQ2woUGwpLENsKF9sKSxjdSgpLHIucGVuZGluZ0NvbnRleHQmJihyLmNvbnRleHQ9ci5wZW5kaW5nQ29udGV4dCxyLnBlbmRpbmdDb250ZXh0PW51bGwpLG51bGwhPT1lJiZudWxsIT09ZS5jaGlsZHx8KGZhKG4pP24uZmxhZ3N8PTQ6bnVsbD09PWV8fGUubWVtb2l6ZWRTdGF0ZS5pc0RlaHlkcmF0ZWQmJiEoMjU2Jm4uZmxhZ3MpfHwobi5mbGFnc3w9MTAyNCxudWxsIT09YWEmJih1cyhhYSksYWE9bnVsbCkpKSwkbyhuKSxudWxsO2Nhc2UgNTp1dShuKTt2YXIgbD10dShudS5jdXJyZW50KTtpZih0PW4udHlwZSxudWxsIT09ZSYmbnVsbCE9bi5zdGF0ZU5vZGUpRm8oZSxuLHQsciksZS5yZWYhPT1uLnJlZiYmKG4uZmxhZ3N8PTUxMixuLmZsYWdzfD0yMDk3MTUyKTtlbHNle2lmKCFyKXtpZihudWxsPT09bi5zdGF0ZU5vZGUpdGhyb3cgRXJyb3IoYSgxNjYpKTtyZXR1cm4gJG8obiksbnVsbH1pZihlPXR1KEphLmN1cnJlbnQpLGZhKG4pKXtyPW4uc3RhdGVOb2RlLHQ9bi50eXBlO3ZhciB1PW4ubWVtb2l6ZWRQcm9wcztzd2l0Y2gocltkbF09bixyW3BsXT11LGU9ISEoMSZuLm1vZGUpLHQpe2Nhc2UiZGlhbG9nIjpWcigiY2FuY2VsIixyKSxWcigiY2xvc2UiLHIpO2JyZWFrO2Nhc2UiaWZyYW1lIjpjYXNlIm9iamVjdCI6Y2FzZSJlbWJlZCI6VnIoImxvYWQiLHIpO2JyZWFrO2Nhc2UidmlkZW8iOmNhc2UiYXVkaW8iOmZvcihsPTA7bDxEci5sZW5ndGg7bCsrKVZyKERyW2xdLHIpO2JyZWFrO2Nhc2Uic291cmNlIjpWcigiZXJyb3IiLHIpO2JyZWFrO2Nhc2UiaW1nIjpjYXNlImltYWdlIjpjYXNlImxpbmsiOlZyKCJlcnJvciIsciksVnIoImxvYWQiLHIpO2JyZWFrO2Nhc2UiZGV0YWlscyI6VnIoInRvZ2dsZSIscik7YnJlYWs7Y2FzZSJpbnB1dCI6WChyLHUpLFZyKCJpbnZhbGlkIixyKTticmVhaztjYXNlInNlbGVjdCI6ci5fd3JhcHBlclN0YXRlPXt3YXNNdWx0aXBsZTohIXUubXVsdGlwbGV9LFZyKCJpbnZhbGlkIixyKTticmVhaztjYXNlInRleHRhcmVhIjpsZShyLHUpLFZyKCJpbnZhbGlkIixyKX1mb3IodmFyIGkgaW4geWUodCx1KSxsPW51bGwsdSlpZih1Lmhhc093blByb3BlcnR5KGkpKXt2YXIgcz11W2ldOyJjaGlsZHJlbiI9PT1pPyJzdHJpbmciPT10eXBlb2Ygcz9yLnRleHRDb250ZW50IT09cyYmKCEwIT09dS5zdXBwcmVzc0h5ZHJhdGlvbldhcm5pbmcmJlpyKHIudGV4dENvbnRlbnQscyxlKSxsPVsiY2hpbGRyZW4iLHNdKToibnVtYmVyIj09dHlwZW9mIHMmJnIudGV4dENvbnRlbnQhPT0iIitzJiYoITAhPT11LnN1cHByZXNzSHlkcmF0aW9uV2FybmluZyYmWnIoci50ZXh0Q29udGVudCxzLGUpLGw9WyJjaGlsZHJlbiIsIiIrc10pOm8uaGFzT3duUHJvcGVydHkoaSkmJm51bGwhPXMmJiJvblNjcm9sbCI9PT1pJiZWcigic2Nyb2xsIixyKX1zd2l0Y2godCl7Y2FzZSJpbnB1dCI6JChyKSxKKHIsdSwhMCk7YnJlYWs7Y2FzZSJ0ZXh0YXJlYSI6JChyKSx1ZShyKTticmVhaztjYXNlInNlbGVjdCI6Y2FzZSJvcHRpb24iOmJyZWFrO2RlZmF1bHQ6ImZ1bmN0aW9uIj09dHlwZW9mIHUub25DbGljayYmKHIub25jbGljaz1Kcil9cj1sLG4udXBkYXRlUXVldWU9cixudWxsIT09ciYmKG4uZmxhZ3N8PTQpfWVsc2V7Cmk9OT09PWwubm9kZVR5cGU/bDpsLm93bmVyRG9jdW1lbnQsImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPT09ZSYmKGU9b2UodCkpLCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj09PWU/InNjcmlwdCI9PT10PygoZT1pLmNyZWF0ZUVsZW1lbnQoImRpdiIpKS5pbm5lckhUTUw9IjxzY3JpcHQ+PFwvc2NyaXB0PiIsZT1lLnJlbW92ZUNoaWxkKGUuZmlyc3RDaGlsZCkpOiJzdHJpbmciPT10eXBlb2Ygci5pcz9lPWkuY3JlYXRlRWxlbWVudCh0LHtpczpyLmlzfSk6KGU9aS5jcmVhdGVFbGVtZW50KHQpLCJzZWxlY3QiPT09dCYmKGk9ZSxyLm11bHRpcGxlP2kubXVsdGlwbGU9ITA6ci5zaXplJiYoaS5zaXplPXIuc2l6ZSkpKTplPWkuY3JlYXRlRWxlbWVudE5TKGUsdCksZVtkbF09bixlW3BsXT1yLE1vKGUsbiksbi5zdGF0ZU5vZGU9ZTtlOntzd2l0Y2goaT1iZSh0LHIpLHQpe2Nhc2UiZGlhbG9nIjpWcigiY2FuY2VsIixlKSxWcigiY2xvc2UiLGUpLGw9cjticmVhaztjYXNlImlmcmFtZSI6Y2FzZSJvYmplY3QiOmNhc2UiZW1iZWQiOlZyKCJsb2FkIixlKSxsPXI7YnJlYWs7Y2FzZSJ2aWRlbyI6Y2FzZSJhdWRpbyI6Zm9yKGw9MDtsPERyLmxlbmd0aDtsKyspVnIoRHJbbF0sZSk7bD1yO2JyZWFrO2Nhc2Uic291cmNlIjpWcigiZXJyb3IiLGUpLGw9cjticmVhaztjYXNlImltZyI6Y2FzZSJpbWFnZSI6Y2FzZSJsaW5rIjpWcigiZXJyb3IiLGUpLFZyKCJsb2FkIixlKSxsPXI7YnJlYWs7Y2FzZSJkZXRhaWxzIjpWcigidG9nZ2xlIixlKSxsPXI7YnJlYWs7Y2FzZSJpbnB1dCI6WChlLHIpLGw9WShlLHIpLFZyKCJpbnZhbGlkIixlKTticmVhaztjYXNlIm9wdGlvbiI6ZGVmYXVsdDpsPXI7YnJlYWs7Y2FzZSJzZWxlY3QiOmUuX3dyYXBwZXJTdGF0ZT17d2FzTXVsdGlwbGU6ISFyLm11bHRpcGxlfSxsPU8oe30scix7dmFsdWU6dm9pZCAwfSksVnIoImludmFsaWQiLGUpO2JyZWFrO2Nhc2UidGV4dGFyZWEiOmxlKGUsciksbD1yZShlLHIpLFZyKCJpbnZhbGlkIixlKX1mb3IodSBpbiB5ZSh0LGwpLHM9bClpZihzLmhhc093blByb3BlcnR5KHUpKXt2YXIgYz1zW3VdOyJzdHlsZSI9PT11P2dlKGUsYyk6ImRhbmdlcm91c2x5U2V0SW5uZXJIVE1MIj09PXU/bnVsbCE9KGM9Yz9jLl9faHRtbDp2b2lkIDApJiZmZShlLGMpOiJjaGlsZHJlbiI9PT11PyJzdHJpbmciPT10eXBlb2YgYz8oInRleHRhcmVhIiE9PXR8fCIiIT09YykmJmRlKGUsYyk6Im51bWJlciI9PXR5cGVvZiBjJiZkZShlLCIiK2MpOiJzdXBwcmVzc0NvbnRlbnRFZGl0YWJsZVdhcm5pbmciIT09dSYmInN1cHByZXNzSHlkcmF0aW9uV2FybmluZyIhPT11JiYiYXV0b0ZvY3VzIiE9PXUmJihvLmhhc093blByb3BlcnR5KHUpP251bGwhPWMmJiJvblNjcm9sbCI9PT11JiZWcigic2Nyb2xsIixlKTpudWxsIT1jJiZiKGUsdSxjLGkpKX1zd2l0Y2godCl7Y2FzZSJpbnB1dCI6JChlKSxKKGUsciwhMSk7YnJlYWs7Y2FzZSJ0ZXh0YXJlYSI6JChlKSx1ZShlKTticmVhaztjYXNlIm9wdGlvbiI6bnVsbCE9ci52YWx1ZSYmZS5zZXRBdHRyaWJ1dGUoInZhbHVlIiwiIitRKHIudmFsdWUpKTticmVhaztjYXNlInNlbGVjdCI6ZS5tdWx0aXBsZT0hIXIubXVsdGlwbGUsbnVsbCE9KHU9ci52YWx1ZSk/dGUoZSwhIXIubXVsdGlwbGUsdSwhMSk6bnVsbCE9ci5kZWZhdWx0VmFsdWUmJnRlKGUsISFyLm11bHRpcGxlLHIuZGVmYXVsdFZhbHVlLCEwKTticmVhaztkZWZhdWx0OiJmdW5jdGlvbiI9PXR5cGVvZiBsLm9uQ2xpY2smJihlLm9uY2xpY2s9SnIpfXN3aXRjaCh0KXtjYXNlImJ1dHRvbiI6Y2FzZSJpbnB1dCI6Y2FzZSJzZWxlY3QiOmNhc2UidGV4dGFyZWEiOnI9ISFyLmF1dG9Gb2N1czticmVhayBlO2Nhc2UiaW1nIjpyPSEwO2JyZWFrIGU7ZGVmYXVsdDpyPSExfX1yJiYobi5mbGFnc3w9NCl9bnVsbCE9PW4ucmVmJiYobi5mbGFnc3w9NTEyLG4uZmxhZ3N8PTIwOTcxNTIpfXJldHVybiAkbyhuKSxudWxsO2Nhc2UgNjppZihlJiZudWxsIT1uLnN0YXRlTm9kZSlSbygwLG4sZS5tZW1vaXplZFByb3BzLHIpO2Vsc2V7aWYoInN0cmluZyIhPXR5cGVvZiByJiZudWxsPT09bi5zdGF0ZU5vZGUpdGhyb3cgRXJyb3IoYSgxNjYpKTtpZih0PXR1KG51LmN1cnJlbnQpLHR1KEphLmN1cnJlbnQpLGZhKG4pKXtpZihyPW4uc3RhdGVOb2RlLHQ9bi5tZW1vaXplZFByb3BzLHJbZGxdPW4sKHU9ci5ub2RlVmFsdWUhPT10KSYmbnVsbCE9PShlPXRhKSlzd2l0Y2goZS50YWcpe2Nhc2UgMzpacihyLm5vZGVWYWx1ZSx0LCEhKDEmZS5tb2RlKSk7YnJlYWs7Y2FzZSA1OiEwIT09ZS5tZW1vaXplZFByb3BzLnN1cHByZXNzSHlkcmF0aW9uV2FybmluZyYmWnIoci5ub2RlVmFsdWUsdCwhISgxJmUubW9kZSkpfXUmJihuLmZsYWdzfD00KX1lbHNlKHI9KDk9PT10Lm5vZGVUeXBlP3Q6dC5vd25lckRvY3VtZW50KS5jcmVhdGVUZXh0Tm9kZShyKSlbZGxdPW4sbi5zdGF0ZU5vZGU9cn1yZXR1cm4gJG8obiksbnVsbDtjYXNlIDEzOmlmKENsKG91KSxyPW4ubWVtb2l6ZWRTdGF0ZSxudWxsPT09ZXx8bnVsbCE9PWUubWVtb2l6ZWRTdGF0ZSYmbnVsbCE9PWUubWVtb2l6ZWRTdGF0ZS5kZWh5ZHJhdGVkKXtpZihsYSYmbnVsbCE9PXJhJiYxJm4ubW9kZSYmISgxMjgmbi5mbGFncykpZGEoKSxwYSgpLG4uZmxhZ3N8PTk4NTYwLHU9ITE7ZWxzZSBpZih1PWZhKG4pLG51bGwhPT1yJiZudWxsIT09ci5kZWh5ZHJhdGVkKXtpZihudWxsPT09ZSl7aWYoIXUpdGhyb3cgRXJyb3IoYSgzMTgpKTtpZighKHU9bnVsbCE9PSh1PW4ubWVtb2l6ZWRTdGF0ZSk/dS5kZWh5ZHJhdGVkOm51bGwpKXRocm93IEVycm9yKGEoMzE3KSk7dVtkbF09bn1lbHNlIHBhKCksISgxMjgmbi5mbGFncykmJihuLm1lbW9pemVkU3RhdGU9bnVsbCksbi5mbGFnc3w9NDskbyhuKSx1PSExfWVsc2UgbnVsbCE9PWFhJiYodXMoYWEpLGFhPW51bGwpLHU9ITA7aWYoIXUpcmV0dXJuIDY1NTM2Jm4uZmxhZ3M/bjpudWxsfXJldHVybiAxMjgmbi5mbGFncz8obi5sYW5lcz10LG4pOigocj1udWxsIT09cikhPT0obnVsbCE9PWUmJm51bGwhPT1lLm1lbW9pemVkU3RhdGUpJiZyJiYobi5jaGlsZC5mbGFnc3w9ODE5MiwKMSZuLm1vZGUmJihudWxsPT09ZXx8MSZvdS5jdXJyZW50PzA9PT1SaSYmKFJpPTMpOmhzKCkpKSxudWxsIT09bi51cGRhdGVRdWV1ZSYmKG4uZmxhZ3N8PTQpLCRvKG4pLG51bGwpO2Nhc2UgNDpyZXR1cm4gbHUoKSxudWxsPT09ZSYmV3Iobi5zdGF0ZU5vZGUuY29udGFpbmVySW5mbyksJG8obiksbnVsbDtjYXNlIDEwOnJldHVybiBTYShuLnR5cGUuX2NvbnRleHQpLCRvKG4pLG51bGw7Y2FzZSAxOTppZihDbChvdSksbnVsbD09PSh1PW4ubWVtb2l6ZWRTdGF0ZSkpcmV0dXJuICRvKG4pLG51bGw7aWYocj0hISgxMjgmbi5mbGFncyksbnVsbD09PShpPXUucmVuZGVyaW5nKSlpZihyKWpvKHUsITEpO2Vsc2V7aWYoMCE9PVJpfHxudWxsIT09ZSYmMTI4JmUuZmxhZ3MpZm9yKGU9bi5jaGlsZDtudWxsIT09ZTspe2lmKG51bGwhPT0oaT1pdShlKSkpe2ZvcihuLmZsYWdzfD0xMjgsam8odSwhMSksbnVsbCE9PShyPWkudXBkYXRlUXVldWUpJiYobi51cGRhdGVRdWV1ZT1yLG4uZmxhZ3N8PTQpLG4uc3VidHJlZUZsYWdzPTAscj10LHQ9bi5jaGlsZDtudWxsIT09dDspZT1yLCh1PXQpLmZsYWdzJj0xNDY4MDA2NixudWxsPT09KGk9dS5hbHRlcm5hdGUpPyh1LmNoaWxkTGFuZXM9MCx1LmxhbmVzPWUsdS5jaGlsZD1udWxsLHUuc3VidHJlZUZsYWdzPTAsdS5tZW1vaXplZFByb3BzPW51bGwsdS5tZW1vaXplZFN0YXRlPW51bGwsdS51cGRhdGVRdWV1ZT1udWxsLHUuZGVwZW5kZW5jaWVzPW51bGwsdS5zdGF0ZU5vZGU9bnVsbCk6KHUuY2hpbGRMYW5lcz1pLmNoaWxkTGFuZXMsdS5sYW5lcz1pLmxhbmVzLHUuY2hpbGQ9aS5jaGlsZCx1LnN1YnRyZWVGbGFncz0wLHUuZGVsZXRpb25zPW51bGwsdS5tZW1vaXplZFByb3BzPWkubWVtb2l6ZWRQcm9wcyx1Lm1lbW9pemVkU3RhdGU9aS5tZW1vaXplZFN0YXRlLHUudXBkYXRlUXVldWU9aS51cGRhdGVRdWV1ZSx1LnR5cGU9aS50eXBlLGU9aS5kZXBlbmRlbmNpZXMsdS5kZXBlbmRlbmNpZXM9bnVsbD09PWU/bnVsbDp7bGFuZXM6ZS5sYW5lcyxmaXJzdENvbnRleHQ6ZS5maXJzdENvbnRleHR9KSx0PXQuc2libGluZztyZXR1cm4gemwob3UsMSZvdS5jdXJyZW50fDIpLG4uY2hpbGR9ZT1lLnNpYmxpbmd9bnVsbCE9PXUudGFpbCYmR2UoKT5XaSYmKG4uZmxhZ3N8PTEyOCxyPSEwLGpvKHUsITEpLG4ubGFuZXM9NDE5NDMwNCl9ZWxzZXtpZighcilpZihudWxsIT09KGU9aXUoaSkpKXtpZihuLmZsYWdzfD0xMjgscj0hMCxudWxsIT09KHQ9ZS51cGRhdGVRdWV1ZSkmJihuLnVwZGF0ZVF1ZXVlPXQsbi5mbGFnc3w9NCksam8odSwhMCksbnVsbD09PXUudGFpbCYmImhpZGRlbiI9PT11LnRhaWxNb2RlJiYhaS5hbHRlcm5hdGUmJiFsYSlyZXR1cm4gJG8obiksbnVsbH1lbHNlIDIqR2UoKS11LnJlbmRlcmluZ1N0YXJ0VGltZT5XaSYmMTA3Mzc0MTgyNCE9PXQmJihuLmZsYWdzfD0xMjgscj0hMCxqbyh1LCExKSxuLmxhbmVzPTQxOTQzMDQpO3UuaXNCYWNrd2FyZHM/KGkuc2libGluZz1uLmNoaWxkLG4uY2hpbGQ9aSk6KG51bGwhPT0odD11Lmxhc3QpP3Quc2libGluZz1pOm4uY2hpbGQ9aSx1Lmxhc3Q9aSl9cmV0dXJuIG51bGwhPT11LnRhaWw/KG49dS50YWlsLHUucmVuZGVyaW5nPW4sdS50YWlsPW4uc2libGluZyx1LnJlbmRlcmluZ1N0YXJ0VGltZT1HZSgpLG4uc2libGluZz1udWxsLHQ9b3UuY3VycmVudCx6bChvdSxyPzEmdHwyOjEmdCksbik6KCRvKG4pLG51bGwpO2Nhc2UgMjI6Y2FzZSAyMzpyZXR1cm4gZnMoKSxyPW51bGwhPT1uLm1lbW9pemVkU3RhdGUsbnVsbCE9PWUmJm51bGwhPT1lLm1lbW9pemVkU3RhdGUhPT1yJiYobi5mbGFnc3w9ODE5MiksciYmMSZuLm1vZGU/ISEoMTA3Mzc0MTgyNCZNaSkmJigkbyhuKSw2Jm4uc3VidHJlZUZsYWdzJiYobi5mbGFnc3w9ODE5MikpOiRvKG4pLG51bGw7Y2FzZSAyNDpjYXNlIDI1OnJldHVybiBudWxsfXRocm93IEVycm9yKGEoMTU2LG4udGFnKSl9ZnVuY3Rpb24gS28oZSxuKXtzd2l0Y2gobmEobiksbi50YWcpe2Nhc2UgMTpyZXR1cm4gTWwobi50eXBlKSYmRmwoKSw2NTUzNiYoZT1uLmZsYWdzKT8obi5mbGFncz0tNjU1MzcmZXwxMjgsbik6bnVsbDtjYXNlIDM6cmV0dXJuIGx1KCksQ2woUGwpLENsKF9sKSxjdSgpLDY1NTM2JihlPW4uZmxhZ3MpJiYhKDEyOCZlKT8obi5mbGFncz0tNjU1MzcmZXwxMjgsbik6bnVsbDtjYXNlIDU6cmV0dXJuIHV1KG4pLG51bGw7Y2FzZSAxMzppZihDbChvdSksbnVsbCE9PShlPW4ubWVtb2l6ZWRTdGF0ZSkmJm51bGwhPT1lLmRlaHlkcmF0ZWQpe2lmKG51bGw9PT1uLmFsdGVybmF0ZSl0aHJvdyBFcnJvcihhKDM0MCkpO3BhKCl9cmV0dXJuIDY1NTM2JihlPW4uZmxhZ3MpPyhuLmZsYWdzPS02NTUzNyZlfDEyOCxuKTpudWxsO2Nhc2UgMTk6cmV0dXJuIENsKG91KSxudWxsO2Nhc2UgNDpyZXR1cm4gbHUoKSxudWxsO2Nhc2UgMTA6cmV0dXJuIFNhKG4udHlwZS5fY29udGV4dCksbnVsbDtjYXNlIDIyOmNhc2UgMjM6cmV0dXJuIGZzKCksbnVsbDtkZWZhdWx0OnJldHVybiBudWxsfX1Nbz1mdW5jdGlvbihlLG4pe2Zvcih2YXIgdD1uLmNoaWxkO251bGwhPT10Oyl7aWYoNT09PXQudGFnfHw2PT09dC50YWcpZS5hcHBlbmRDaGlsZCh0LnN0YXRlTm9kZSk7ZWxzZSBpZig0IT09dC50YWcmJm51bGwhPT10LmNoaWxkKXt0LmNoaWxkLnJldHVybj10LHQ9dC5jaGlsZDtjb250aW51ZX1pZih0PT09bilicmVhaztmb3IoO251bGw9PT10LnNpYmxpbmc7KXtpZihudWxsPT09dC5yZXR1cm58fHQucmV0dXJuPT09bilyZXR1cm47dD10LnJldHVybn10LnNpYmxpbmcucmV0dXJuPXQucmV0dXJuLHQ9dC5zaWJsaW5nfX0sRm89ZnVuY3Rpb24oZSxuLHQscil7dmFyIGw9ZS5tZW1vaXplZFByb3BzO2lmKGwhPT1yKXtlPW4uc3RhdGVOb2RlLHR1KEphLmN1cnJlbnQpO3ZhciBhLHU9bnVsbDtzd2l0Y2godCl7Y2FzZSJpbnB1dCI6bD1ZKGUsbCkscj1ZKGUsciksdT1bXTticmVhaztjYXNlInNlbGVjdCI6bD1PKHt9LGwse3ZhbHVlOnZvaWQgMH0pLHI9Tyh7fSxyLHt2YWx1ZTp2b2lkIDB9KSx1PVtdO2JyZWFrO2Nhc2UidGV4dGFyZWEiOmw9cmUoZSxsKSxyPXJlKGUsciksdT1bXTticmVhawo7ZGVmYXVsdDoiZnVuY3Rpb24iIT10eXBlb2YgbC5vbkNsaWNrJiYiZnVuY3Rpb24iPT10eXBlb2Ygci5vbkNsaWNrJiYoZS5vbmNsaWNrPUpyKX1mb3IoYyBpbiB5ZSh0LHIpLHQ9bnVsbCxsKWlmKCFyLmhhc093blByb3BlcnR5KGMpJiZsLmhhc093blByb3BlcnR5KGMpJiZudWxsIT1sW2NdKWlmKCJzdHlsZSI9PT1jKXt2YXIgaT1sW2NdO2ZvcihhIGluIGkpaS5oYXNPd25Qcm9wZXJ0eShhKSYmKHR8fCh0PXt9KSx0W2FdPSIiKX1lbHNlImRhbmdlcm91c2x5U2V0SW5uZXJIVE1MIiE9PWMmJiJjaGlsZHJlbiIhPT1jJiYic3VwcHJlc3NDb250ZW50RWRpdGFibGVXYXJuaW5nIiE9PWMmJiJzdXBwcmVzc0h5ZHJhdGlvbldhcm5pbmciIT09YyYmImF1dG9Gb2N1cyIhPT1jJiYoby5oYXNPd25Qcm9wZXJ0eShjKT91fHwodT1bXSk6KHU9dXx8W10pLnB1c2goYyxudWxsKSk7Zm9yKGMgaW4gcil7dmFyIHM9cltjXTtpZihpPW51bGwhPWw/bFtjXTp2b2lkIDAsci5oYXNPd25Qcm9wZXJ0eShjKSYmcyE9PWkmJihudWxsIT1zfHxudWxsIT1pKSlpZigic3R5bGUiPT09YylpZihpKXtmb3IoYSBpbiBpKSFpLmhhc093blByb3BlcnR5KGEpfHxzJiZzLmhhc093blByb3BlcnR5KGEpfHwodHx8KHQ9e30pLHRbYV09IiIpO2ZvcihhIGluIHMpcy5oYXNPd25Qcm9wZXJ0eShhKSYmaVthXSE9PXNbYV0mJih0fHwodD17fSksdFthXT1zW2FdKX1lbHNlIHR8fCh1fHwodT1bXSksdS5wdXNoKGMsdCkpLHQ9cztlbHNlImRhbmdlcm91c2x5U2V0SW5uZXJIVE1MIj09PWM/KHM9cz9zLl9faHRtbDp2b2lkIDAsaT1pP2kuX19odG1sOnZvaWQgMCxudWxsIT1zJiZpIT09cyYmKHU9dXx8W10pLnB1c2goYyxzKSk6ImNoaWxkcmVuIj09PWM/InN0cmluZyIhPXR5cGVvZiBzJiYibnVtYmVyIiE9dHlwZW9mIHN8fCh1PXV8fFtdKS5wdXNoKGMsIiIrcyk6InN1cHByZXNzQ29udGVudEVkaXRhYmxlV2FybmluZyIhPT1jJiYic3VwcHJlc3NIeWRyYXRpb25XYXJuaW5nIiE9PWMmJihvLmhhc093blByb3BlcnR5KGMpPyhudWxsIT1zJiYib25TY3JvbGwiPT09YyYmVnIoInNjcm9sbCIsZSksdXx8aT09PXN8fCh1PVtdKSk6KHU9dXx8W10pLnB1c2goYyxzKSl9dCYmKHU9dXx8W10pLnB1c2goInN0eWxlIix0KTt2YXIgYz11OyhuLnVwZGF0ZVF1ZXVlPWMpJiYobi5mbGFnc3w9NCl9fSxSbz1mdW5jdGlvbihlLG4sdCxyKXt0IT09ciYmKG4uZmxhZ3N8PTQpfTt2YXIgWW89ITEsWG89ITEsR289ImZ1bmN0aW9uIj09dHlwZW9mIFdlYWtTZXQ/V2Vha1NldDpTZXQsWm89bnVsbDtmdW5jdGlvbiBKbyhlLG4pe3ZhciB0PWUucmVmO2lmKG51bGwhPT10KWlmKCJmdW5jdGlvbiI9PXR5cGVvZiB0KXRyeXt0KG51bGwpfWNhdGNoKHQpe0VzKGUsbix0KX1lbHNlIHQuY3VycmVudD1udWxsfWZ1bmN0aW9uIGVpKGUsbix0KXt0cnl7dCgpfWNhdGNoKHQpe0VzKGUsbix0KX19dmFyIG5pPSExO2Z1bmN0aW9uIHRpKGUsbix0KXt2YXIgcj1uLnVwZGF0ZVF1ZXVlO2lmKG51bGwhPT0ocj1udWxsIT09cj9yLmxhc3RFZmZlY3Q6bnVsbCkpe3ZhciBsPXI9ci5uZXh0O2Rve2lmKChsLnRhZyZlKT09PWUpe3ZhciBhPWwuZGVzdHJveTtsLmRlc3Ryb3k9dm9pZCAwLHZvaWQgMCE9PWEmJmVpKG4sdCxhKX1sPWwubmV4dH13aGlsZShsIT09cil9fWZ1bmN0aW9uIHJpKGUsbil7aWYobnVsbCE9PShuPW51bGwhPT0obj1uLnVwZGF0ZVF1ZXVlKT9uLmxhc3RFZmZlY3Q6bnVsbCkpe3ZhciB0PW49bi5uZXh0O2Rve2lmKCh0LnRhZyZlKT09PWUpe3ZhciByPXQuY3JlYXRlO3QuZGVzdHJveT1yKCl9dD10Lm5leHR9d2hpbGUodCE9PW4pfX1mdW5jdGlvbiBsaShlKXt2YXIgbj1lLnJlZjtpZihudWxsIT09bil7dmFyIHQ9ZS5zdGF0ZU5vZGU7ZS50YWcsZT10LCJmdW5jdGlvbiI9PXR5cGVvZiBuP24oZSk6bi5jdXJyZW50PWV9fWZ1bmN0aW9uIGFpKGUpe3ZhciBuPWUuYWx0ZXJuYXRlO251bGwhPT1uJiYoZS5hbHRlcm5hdGU9bnVsbCxhaShuKSksZS5jaGlsZD1udWxsLGUuZGVsZXRpb25zPW51bGwsZS5zaWJsaW5nPW51bGwsNT09PWUudGFnJiYobnVsbCE9PShuPWUuc3RhdGVOb2RlKSYmKGRlbGV0ZSBuW2RsXSxkZWxldGUgbltwbF0sZGVsZXRlIG5baGxdLGRlbGV0ZSBuW2dsXSxkZWxldGUgblt2bF0pKSxlLnN0YXRlTm9kZT1udWxsLGUucmV0dXJuPW51bGwsZS5kZXBlbmRlbmNpZXM9bnVsbCxlLm1lbW9pemVkUHJvcHM9bnVsbCxlLm1lbW9pemVkU3RhdGU9bnVsbCxlLnBlbmRpbmdQcm9wcz1udWxsLGUuc3RhdGVOb2RlPW51bGwsZS51cGRhdGVRdWV1ZT1udWxsfWZ1bmN0aW9uIHVpKGUpe3JldHVybiA1PT09ZS50YWd8fDM9PT1lLnRhZ3x8ND09PWUudGFnfWZ1bmN0aW9uIG9pKGUpe2U6Zm9yKDs7KXtmb3IoO251bGw9PT1lLnNpYmxpbmc7KXtpZihudWxsPT09ZS5yZXR1cm58fHVpKGUucmV0dXJuKSlyZXR1cm4gbnVsbDtlPWUucmV0dXJufWZvcihlLnNpYmxpbmcucmV0dXJuPWUucmV0dXJuLGU9ZS5zaWJsaW5nOzUhPT1lLnRhZyYmNiE9PWUudGFnJiYxOCE9PWUudGFnOyl7aWYoMiZlLmZsYWdzKWNvbnRpbnVlIGU7aWYobnVsbD09PWUuY2hpbGR8fDQ9PT1lLnRhZyljb250aW51ZSBlO2UuY2hpbGQucmV0dXJuPWUsZT1lLmNoaWxkfWlmKCEoMiZlLmZsYWdzKSlyZXR1cm4gZS5zdGF0ZU5vZGV9fWZ1bmN0aW9uIGlpKGUsbix0KXt2YXIgcj1lLnRhZztpZig1PT09cnx8Nj09PXIpZT1lLnN0YXRlTm9kZSxuPzg9PT10Lm5vZGVUeXBlP3QucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoZSxuKTp0Lmluc2VydEJlZm9yZShlLG4pOig4PT09dC5ub2RlVHlwZT8obj10LnBhcmVudE5vZGUpLmluc2VydEJlZm9yZShlLHQpOihuPXQpLmFwcGVuZENoaWxkKGUpLG51bGwhPSh0PXQuX3JlYWN0Um9vdENvbnRhaW5lcil8fG51bGwhPT1uLm9uY2xpY2t8fChuLm9uY2xpY2s9SnIpKTtlbHNlIGlmKDQhPT1yJiZudWxsIT09KGU9ZS5jaGlsZCkpZm9yKGlpKGUsbix0KSxlPWUuc2libGluZztudWxsIT09ZTspaWkoZSxuLHQpLGU9ZS5zaWJsaW5nfWZ1bmN0aW9uIHNpKGUsbix0KXt2YXIgcj1lLnRhZztpZig1PT09cnx8Nj09PXIpZT1lLnN0YXRlTm9kZSwKbj90Lmluc2VydEJlZm9yZShlLG4pOnQuYXBwZW5kQ2hpbGQoZSk7ZWxzZSBpZig0IT09ciYmbnVsbCE9PShlPWUuY2hpbGQpKWZvcihzaShlLG4sdCksZT1lLnNpYmxpbmc7bnVsbCE9PWU7KXNpKGUsbix0KSxlPWUuc2libGluZ312YXIgY2k9bnVsbCxmaT0hMTtmdW5jdGlvbiBkaShlLG4sdCl7Zm9yKHQ9dC5jaGlsZDtudWxsIT09dDspcGkoZSxuLHQpLHQ9dC5zaWJsaW5nfWZ1bmN0aW9uIHBpKGUsbix0KXtpZihhbiYmImZ1bmN0aW9uIj09dHlwZW9mIGFuLm9uQ29tbWl0RmliZXJVbm1vdW50KXRyeXthbi5vbkNvbW1pdEZpYmVyVW5tb3VudChsbix0KX1jYXRjaChlKXt9c3dpdGNoKHQudGFnKXtjYXNlIDU6WG98fEpvKHQsbik7Y2FzZSA2OnZhciByPWNpLGw9Zmk7Y2k9bnVsbCxkaShlLG4sdCksZmk9bCxudWxsIT09KGNpPXIpJiYoZmk/KGU9Y2ksdD10LnN0YXRlTm9kZSw4PT09ZS5ub2RlVHlwZT9lLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodCk6ZS5yZW1vdmVDaGlsZCh0KSk6Y2kucmVtb3ZlQ2hpbGQodC5zdGF0ZU5vZGUpKTticmVhaztjYXNlIDE4Om51bGwhPT1jaSYmKGZpPyhlPWNpLHQ9dC5zdGF0ZU5vZGUsOD09PWUubm9kZVR5cGU/aWwoZS5wYXJlbnROb2RlLHQpOjE9PT1lLm5vZGVUeXBlJiZpbChlLHQpLEhuKGUpKTppbChjaSx0LnN0YXRlTm9kZSkpO2JyZWFrO2Nhc2UgNDpyPWNpLGw9ZmksY2k9dC5zdGF0ZU5vZGUuY29udGFpbmVySW5mbyxmaT0hMCxkaShlLG4sdCksY2k9cixmaT1sO2JyZWFrO2Nhc2UgMDpjYXNlIDExOmNhc2UgMTQ6Y2FzZSAxNTppZighWG8mJihudWxsIT09KHI9dC51cGRhdGVRdWV1ZSkmJm51bGwhPT0ocj1yLmxhc3RFZmZlY3QpKSl7bD1yPXIubmV4dDtkb3t2YXIgYT1sLHU9YS5kZXN0cm95O2E9YS50YWcsdm9pZCAwIT09dSYmKDImYXx8NCZhKSYmZWkodCxuLHUpLGw9bC5uZXh0fXdoaWxlKGwhPT1yKX1kaShlLG4sdCk7YnJlYWs7Y2FzZSAxOmlmKCFYbyYmKEpvKHQsbiksImZ1bmN0aW9uIj09dHlwZW9mKHI9dC5zdGF0ZU5vZGUpLmNvbXBvbmVudFdpbGxVbm1vdW50KSl0cnl7ci5wcm9wcz10Lm1lbW9pemVkUHJvcHMsci5zdGF0ZT10Lm1lbW9pemVkU3RhdGUsci5jb21wb25lbnRXaWxsVW5tb3VudCgpfWNhdGNoKGUpe0VzKHQsbixlKX1kaShlLG4sdCk7YnJlYWs7Y2FzZSAyMTpkaShlLG4sdCk7YnJlYWs7Y2FzZSAyMjoxJnQubW9kZT8oWG89KHI9WG8pfHxudWxsIT09dC5tZW1vaXplZFN0YXRlLGRpKGUsbix0KSxYbz1yKTpkaShlLG4sdCk7YnJlYWs7ZGVmYXVsdDpkaShlLG4sdCl9fWZ1bmN0aW9uIG1pKGUpe3ZhciBuPWUudXBkYXRlUXVldWU7aWYobnVsbCE9PW4pe2UudXBkYXRlUXVldWU9bnVsbDt2YXIgdD1lLnN0YXRlTm9kZTtudWxsPT09dCYmKHQ9ZS5zdGF0ZU5vZGU9bmV3IEdvKSxuLmZvckVhY2goKGZ1bmN0aW9uKG4pe3ZhciByPV9zLmJpbmQobnVsbCxlLG4pO3QuaGFzKG4pfHwodC5hZGQobiksbi50aGVuKHIscikpfSkpfX1mdW5jdGlvbiBoaShlLG4pe3ZhciB0PW4uZGVsZXRpb25zO2lmKG51bGwhPT10KWZvcih2YXIgcj0wO3I8dC5sZW5ndGg7cisrKXt2YXIgbD10W3JdO3RyeXt2YXIgdT1lLG89bixpPW87ZTpmb3IoO251bGwhPT1pOyl7c3dpdGNoKGkudGFnKXtjYXNlIDU6Y2k9aS5zdGF0ZU5vZGUsZmk9ITE7YnJlYWsgZTtjYXNlIDM6Y2FzZSA0OmNpPWkuc3RhdGVOb2RlLmNvbnRhaW5lckluZm8sZmk9ITA7YnJlYWsgZX1pPWkucmV0dXJufWlmKG51bGw9PT1jaSl0aHJvdyBFcnJvcihhKDE2MCkpO3BpKHUsbyxsKSxjaT1udWxsLGZpPSExO3ZhciBzPWwuYWx0ZXJuYXRlO251bGwhPT1zJiYocy5yZXR1cm49bnVsbCksbC5yZXR1cm49bnVsbH1jYXRjaChlKXtFcyhsLG4sZSl9fWlmKDEyODU0Jm4uc3VidHJlZUZsYWdzKWZvcihuPW4uY2hpbGQ7bnVsbCE9PW47KWdpKG4sZSksbj1uLnNpYmxpbmd9ZnVuY3Rpb24gZ2koZSxuKXt2YXIgdD1lLmFsdGVybmF0ZSxyPWUuZmxhZ3M7c3dpdGNoKGUudGFnKXtjYXNlIDA6Y2FzZSAxMTpjYXNlIDE0OmNhc2UgMTU6aWYoaGkobixlKSx2aShlKSw0JnIpe3RyeXt0aSgzLGUsZS5yZXR1cm4pLHJpKDMsZSl9Y2F0Y2gobil7RXMoZSxlLnJldHVybixuKX10cnl7dGkoNSxlLGUucmV0dXJuKX1jYXRjaChuKXtFcyhlLGUucmV0dXJuLG4pfX1icmVhaztjYXNlIDE6aGkobixlKSx2aShlKSw1MTImciYmbnVsbCE9PXQmJkpvKHQsdC5yZXR1cm4pO2JyZWFrO2Nhc2UgNTppZihoaShuLGUpLHZpKGUpLDUxMiZyJiZudWxsIT09dCYmSm8odCx0LnJldHVybiksMzImZS5mbGFncyl7dmFyIGw9ZS5zdGF0ZU5vZGU7dHJ5e2RlKGwsIiIpfWNhdGNoKG4pe0VzKGUsZS5yZXR1cm4sbil9fWlmKDQmciYmbnVsbCE9KGw9ZS5zdGF0ZU5vZGUpKXt2YXIgdT1lLm1lbW9pemVkUHJvcHMsbz1udWxsIT09dD90Lm1lbW9pemVkUHJvcHM6dSxpPWUudHlwZSxzPWUudXBkYXRlUXVldWU7aWYoZS51cGRhdGVRdWV1ZT1udWxsLG51bGwhPT1zKXRyeXsiaW5wdXQiPT09aSYmInJhZGlvIj09PXUudHlwZSYmbnVsbCE9dS5uYW1lJiZHKGwsdSksYmUoaSxvKTt2YXIgYz1iZShpLHUpO2ZvcihvPTA7bzxzLmxlbmd0aDtvKz0yKXt2YXIgZj1zW29dLGQ9c1tvKzFdOyJzdHlsZSI9PT1mP2dlKGwsZCk6ImRhbmdlcm91c2x5U2V0SW5uZXJIVE1MIj09PWY/ZmUobCxkKToiY2hpbGRyZW4iPT09Zj9kZShsLGQpOmIobCxmLGQsYyl9c3dpdGNoKGkpe2Nhc2UiaW5wdXQiOloobCx1KTticmVhaztjYXNlInRleHRhcmVhIjphZShsLHUpO2JyZWFrO2Nhc2Uic2VsZWN0Ijp2YXIgcD1sLl93cmFwcGVyU3RhdGUud2FzTXVsdGlwbGU7bC5fd3JhcHBlclN0YXRlLndhc011bHRpcGxlPSEhdS5tdWx0aXBsZTt2YXIgbT11LnZhbHVlO251bGwhPW0/dGUobCwhIXUubXVsdGlwbGUsbSwhMSk6cCE9PSEhdS5tdWx0aXBsZSYmKG51bGwhPXUuZGVmYXVsdFZhbHVlP3RlKGwsISF1Lm11bHRpcGxlLHUuZGVmYXVsdFZhbHVlLCEwKTp0ZShsLCEhdS5tdWx0aXBsZSx1Lm11bHRpcGxlP1tdOiIiLCExKSl9bFtwbF09dX1jYXRjaChuKXtFcyhlLGUucmV0dXJuLG4pfX1icmVhaztjYXNlIDY6aWYoaGkobixlKSx2aShlKSw0JnIpewppZihudWxsPT09ZS5zdGF0ZU5vZGUpdGhyb3cgRXJyb3IoYSgxNjIpKTtsPWUuc3RhdGVOb2RlLHU9ZS5tZW1vaXplZFByb3BzO3RyeXtsLm5vZGVWYWx1ZT11fWNhdGNoKG4pe0VzKGUsZS5yZXR1cm4sbil9fWJyZWFrO2Nhc2UgMzppZihoaShuLGUpLHZpKGUpLDQmciYmbnVsbCE9PXQmJnQubWVtb2l6ZWRTdGF0ZS5pc0RlaHlkcmF0ZWQpdHJ5e0huKG4uY29udGFpbmVySW5mbyl9Y2F0Y2gobil7RXMoZSxlLnJldHVybixuKX1icmVhaztjYXNlIDQ6ZGVmYXVsdDpoaShuLGUpLHZpKGUpO2JyZWFrO2Nhc2UgMTM6aGkobixlKSx2aShlKSw4MTkyJihsPWUuY2hpbGQpLmZsYWdzJiYodT1udWxsIT09bC5tZW1vaXplZFN0YXRlLGwuc3RhdGVOb2RlLmlzSGlkZGVuPXUsIXV8fG51bGwhPT1sLmFsdGVybmF0ZSYmbnVsbCE9PWwuYWx0ZXJuYXRlLm1lbW9pemVkU3RhdGV8fChCaT1HZSgpKSksNCZyJiZtaShlKTticmVhaztjYXNlIDIyOmlmKGY9bnVsbCE9PXQmJm51bGwhPT10Lm1lbW9pemVkU3RhdGUsMSZlLm1vZGU/KFhvPShjPVhvKXx8ZixoaShuLGUpLFhvPWMpOmhpKG4sZSksdmkoZSksODE5MiZyKXtpZihjPW51bGwhPT1lLm1lbW9pemVkU3RhdGUsKGUuc3RhdGVOb2RlLmlzSGlkZGVuPWMpJiYhZiYmMSZlLm1vZGUpZm9yKFpvPWUsZj1lLmNoaWxkO251bGwhPT1mOyl7Zm9yKGQ9Wm89ZjtudWxsIT09Wm87KXtzd2l0Y2gobT0ocD1abykuY2hpbGQscC50YWcpe2Nhc2UgMDpjYXNlIDExOmNhc2UgMTQ6Y2FzZSAxNTp0aSg0LHAscC5yZXR1cm4pO2JyZWFrO2Nhc2UgMTpKbyhwLHAucmV0dXJuKTt2YXIgaD1wLnN0YXRlTm9kZTtpZigiZnVuY3Rpb24iPT10eXBlb2YgaC5jb21wb25lbnRXaWxsVW5tb3VudCl7cj1wLHQ9cC5yZXR1cm47dHJ5e249cixoLnByb3BzPW4ubWVtb2l6ZWRQcm9wcyxoLnN0YXRlPW4ubWVtb2l6ZWRTdGF0ZSxoLmNvbXBvbmVudFdpbGxVbm1vdW50KCl9Y2F0Y2goZSl7RXMocix0LGUpfX1icmVhaztjYXNlIDU6Sm8ocCxwLnJldHVybik7YnJlYWs7Y2FzZSAyMjppZihudWxsIT09cC5tZW1vaXplZFN0YXRlKXt3aShkKTtjb250aW51ZX19bnVsbCE9PW0/KG0ucmV0dXJuPXAsWm89bSk6d2koZCl9Zj1mLnNpYmxpbmd9ZTpmb3IoZj1udWxsLGQ9ZTs7KXtpZig1PT09ZC50YWcpe2lmKG51bGw9PT1mKXtmPWQ7dHJ5e2w9ZC5zdGF0ZU5vZGUsYz8iZnVuY3Rpb24iPT10eXBlb2YodT1sLnN0eWxlKS5zZXRQcm9wZXJ0eT91LnNldFByb3BlcnR5KCJkaXNwbGF5Iiwibm9uZSIsImltcG9ydGFudCIpOnUuZGlzcGxheT0ibm9uZSI6KGk9ZC5zdGF0ZU5vZGUsbz1udWxsIT0ocz1kLm1lbW9pemVkUHJvcHMuc3R5bGUpJiZzLmhhc093blByb3BlcnR5KCJkaXNwbGF5Iik/cy5kaXNwbGF5Om51bGwsaS5zdHlsZS5kaXNwbGF5PWhlKCJkaXNwbGF5IixvKSl9Y2F0Y2gobil7RXMoZSxlLnJldHVybixuKX19fWVsc2UgaWYoNj09PWQudGFnKXtpZihudWxsPT09Zil0cnl7ZC5zdGF0ZU5vZGUubm9kZVZhbHVlPWM/IiI6ZC5tZW1vaXplZFByb3BzfWNhdGNoKG4pe0VzKGUsZS5yZXR1cm4sbil9fWVsc2UgaWYoKDIyIT09ZC50YWcmJjIzIT09ZC50YWd8fG51bGw9PT1kLm1lbW9pemVkU3RhdGV8fGQ9PT1lKSYmbnVsbCE9PWQuY2hpbGQpe2QuY2hpbGQucmV0dXJuPWQsZD1kLmNoaWxkO2NvbnRpbnVlfWlmKGQ9PT1lKWJyZWFrIGU7Zm9yKDtudWxsPT09ZC5zaWJsaW5nOyl7aWYobnVsbD09PWQucmV0dXJufHxkLnJldHVybj09PWUpYnJlYWsgZTtmPT09ZCYmKGY9bnVsbCksZD1kLnJldHVybn1mPT09ZCYmKGY9bnVsbCksZC5zaWJsaW5nLnJldHVybj1kLnJldHVybixkPWQuc2libGluZ319YnJlYWs7Y2FzZSAxOTpoaShuLGUpLHZpKGUpLDQmciYmbWkoZSk7Y2FzZSAyMTp9fWZ1bmN0aW9uIHZpKGUpe3ZhciBuPWUuZmxhZ3M7aWYoMiZuKXt0cnl7ZTp7Zm9yKHZhciB0PWUucmV0dXJuO251bGwhPT10Oyl7aWYodWkodCkpe3ZhciByPXQ7YnJlYWsgZX10PXQucmV0dXJufXRocm93IEVycm9yKGEoMTYwKSl9c3dpdGNoKHIudGFnKXtjYXNlIDU6dmFyIGw9ci5zdGF0ZU5vZGU7MzImci5mbGFncyYmKGRlKGwsIiIpLHIuZmxhZ3MmPS0zMyksc2koZSxvaShlKSxsKTticmVhaztjYXNlIDM6Y2FzZSA0OnZhciB1PXIuc3RhdGVOb2RlLmNvbnRhaW5lckluZm87aWkoZSxvaShlKSx1KTticmVhaztkZWZhdWx0OnRocm93IEVycm9yKGEoMTYxKSl9fWNhdGNoKG4pe0VzKGUsZS5yZXR1cm4sbil9ZS5mbGFncyY9LTN9NDA5NiZuJiYoZS5mbGFncyY9LTQwOTcpfWZ1bmN0aW9uIHlpKGUsbix0KXtabz1lLGJpKGUsbix0KX1mdW5jdGlvbiBiaShlLG4sdCl7Zm9yKHZhciByPSEhKDEmZS5tb2RlKTtudWxsIT09Wm87KXt2YXIgbD1abyxhPWwuY2hpbGQ7aWYoMjI9PT1sLnRhZyYmcil7dmFyIHU9bnVsbCE9PWwubWVtb2l6ZWRTdGF0ZXx8WW87aWYoIXUpe3ZhciBvPWwuYWx0ZXJuYXRlLGk9bnVsbCE9PW8mJm51bGwhPT1vLm1lbW9pemVkU3RhdGV8fFhvO289WW87dmFyIHM9WG87aWYoWW89dSwoWG89aSkmJiFzKWZvcihabz1sO251bGwhPT1abzspaT0odT1abykuY2hpbGQsMjI9PT11LnRhZyYmbnVsbCE9PXUubWVtb2l6ZWRTdGF0ZT9TaShsKTpudWxsIT09aT8oaS5yZXR1cm49dSxabz1pKTpTaShsKTtmb3IoO251bGwhPT1hOylabz1hLGJpKGEsbix0KSxhPWEuc2libGluZztabz1sLFlvPW8sWG89c31raShlKX1lbHNlIDg3NzImbC5zdWJ0cmVlRmxhZ3MmJm51bGwhPT1hPyhhLnJldHVybj1sLFpvPWEpOmtpKGUpfX1mdW5jdGlvbiBraShlKXtmb3IoO251bGwhPT1abzspe3ZhciBuPVpvO2lmKDg3NzImbi5mbGFncyl7dmFyIHQ9bi5hbHRlcm5hdGU7dHJ5e2lmKDg3NzImbi5mbGFncylzd2l0Y2gobi50YWcpe2Nhc2UgMDpjYXNlIDExOmNhc2UgMTU6WG98fHJpKDUsbik7YnJlYWs7Y2FzZSAxOnZhciByPW4uc3RhdGVOb2RlO2lmKDQmbi5mbGFncyYmIVhvKWlmKG51bGw9PT10KXIuY29tcG9uZW50RGlkTW91bnQoKTtlbHNle3ZhciBsPW4uZWxlbWVudFR5cGU9PT1uLnR5cGU/dC5tZW1vaXplZFByb3BzOmdhKG4udHlwZSx0Lm1lbW9pemVkUHJvcHMpCjtyLmNvbXBvbmVudERpZFVwZGF0ZShsLHQubWVtb2l6ZWRTdGF0ZSxyLl9fcmVhY3RJbnRlcm5hbFNuYXBzaG90QmVmb3JlVXBkYXRlKX12YXIgdT1uLnVwZGF0ZVF1ZXVlO251bGwhPT11JiZVYShuLHUscik7YnJlYWs7Y2FzZSAzOnZhciBvPW4udXBkYXRlUXVldWU7aWYobnVsbCE9PW8pe2lmKHQ9bnVsbCxudWxsIT09bi5jaGlsZClzd2l0Y2gobi5jaGlsZC50YWcpe2Nhc2UgNTpjYXNlIDE6dD1uLmNoaWxkLnN0YXRlTm9kZX1VYShuLG8sdCl9YnJlYWs7Y2FzZSA1OnZhciBpPW4uc3RhdGVOb2RlO2lmKG51bGw9PT10JiY0Jm4uZmxhZ3Mpe3Q9aTt2YXIgcz1uLm1lbW9pemVkUHJvcHM7c3dpdGNoKG4udHlwZSl7Y2FzZSJidXR0b24iOmNhc2UiaW5wdXQiOmNhc2Uic2VsZWN0IjpjYXNlInRleHRhcmVhIjpzLmF1dG9Gb2N1cyYmdC5mb2N1cygpO2JyZWFrO2Nhc2UiaW1nIjpzLnNyYyYmKHQuc3JjPXMuc3JjKX19YnJlYWs7Y2FzZSA2OmNhc2UgNDpjYXNlIDEyOmNhc2UgMTk6Y2FzZSAxNzpjYXNlIDIxOmNhc2UgMjI6Y2FzZSAyMzpjYXNlIDI1OmJyZWFrO2Nhc2UgMTM6aWYobnVsbD09PW4ubWVtb2l6ZWRTdGF0ZSl7dmFyIGM9bi5hbHRlcm5hdGU7aWYobnVsbCE9PWMpe3ZhciBmPWMubWVtb2l6ZWRTdGF0ZTtpZihudWxsIT09Zil7dmFyIGQ9Zi5kZWh5ZHJhdGVkO251bGwhPT1kJiZIbihkKX19fWJyZWFrO2RlZmF1bHQ6dGhyb3cgRXJyb3IoYSgxNjMpKX1Yb3x8NTEyJm4uZmxhZ3MmJmxpKG4pfWNhdGNoKGUpe0VzKG4sbi5yZXR1cm4sZSl9fWlmKG49PT1lKXtabz1udWxsO2JyZWFrfWlmKG51bGwhPT0odD1uLnNpYmxpbmcpKXt0LnJldHVybj1uLnJldHVybixabz10O2JyZWFrfVpvPW4ucmV0dXJufX1mdW5jdGlvbiB3aShlKXtmb3IoO251bGwhPT1abzspe3ZhciBuPVpvO2lmKG49PT1lKXtabz1udWxsO2JyZWFrfXZhciB0PW4uc2libGluZztpZihudWxsIT09dCl7dC5yZXR1cm49bi5yZXR1cm4sWm89dDticmVha31abz1uLnJldHVybn19ZnVuY3Rpb24gU2koZSl7Zm9yKDtudWxsIT09Wm87KXt2YXIgbj1abzt0cnl7c3dpdGNoKG4udGFnKXtjYXNlIDA6Y2FzZSAxMTpjYXNlIDE1OnZhciB0PW4ucmV0dXJuO3RyeXtyaSg0LG4pfWNhdGNoKGUpe0VzKG4sdCxlKX1icmVhaztjYXNlIDE6dmFyIHI9bi5zdGF0ZU5vZGU7aWYoImZ1bmN0aW9uIj09dHlwZW9mIHIuY29tcG9uZW50RGlkTW91bnQpe3ZhciBsPW4ucmV0dXJuO3RyeXtyLmNvbXBvbmVudERpZE1vdW50KCl9Y2F0Y2goZSl7RXMobixsLGUpfX12YXIgYT1uLnJldHVybjt0cnl7bGkobil9Y2F0Y2goZSl7RXMobixhLGUpfWJyZWFrO2Nhc2UgNTp2YXIgdT1uLnJldHVybjt0cnl7bGkobil9Y2F0Y2goZSl7RXMobix1LGUpfX19Y2F0Y2goZSl7RXMobixuLnJldHVybixlKX1pZihuPT09ZSl7Wm89bnVsbDticmVha312YXIgbz1uLnNpYmxpbmc7aWYobnVsbCE9PW8pe28ucmV0dXJuPW4ucmV0dXJuLFpvPW87YnJlYWt9Wm89bi5yZXR1cm59fXZhciB4aSxFaT1NYXRoLmNlaWwsQ2k9ay5SZWFjdEN1cnJlbnREaXNwYXRjaGVyLHppPWsuUmVhY3RDdXJyZW50T3duZXIsTmk9ay5SZWFjdEN1cnJlbnRCYXRjaENvbmZpZyxfaT0wLFBpPW51bGwsVGk9bnVsbCxMaT0wLE1pPTAsRmk9RWwoMCksUmk9MCxEaT1udWxsLElpPTAsT2k9MCxVaT0wLFZpPW51bGwsQWk9bnVsbCxCaT0wLFdpPTEvMCxIaT1udWxsLFFpPSExLGppPW51bGwsJGk9bnVsbCxxaT0hMSxLaT1udWxsLFlpPTAsWGk9MCxHaT1udWxsLFppPS0xLEppPTA7ZnVuY3Rpb24gZXMoKXtyZXR1cm4gNiZfaT9HZSgpOi0xIT09Wmk/Wmk6Wmk9R2UoKX1mdW5jdGlvbiBucyhlKXtyZXR1cm4gMSZlLm1vZGU/MiZfaSYmMCE9PUxpP0xpJi1MaTpudWxsIT09aGEudHJhbnNpdGlvbj8oMD09PUppJiYoSmk9Z24oKSksSmkpOjAhPT0oZT1rbik/ZTplPXZvaWQgMD09PShlPXdpbmRvdy5ldmVudCk/MTY6R24oZS50eXBlKToxfWZ1bmN0aW9uIHRzKGUsbix0LHIpe2lmKDUwPFhpKXRocm93IFhpPTAsR2k9bnVsbCxFcnJvcihhKDE4NSkpO3luKGUsdCxyKSwyJl9pJiZlPT09UGl8fChlPT09UGkmJighKDImX2kpJiYoT2l8PXQpLDQ9PT1SaSYmb3MoZSxMaSkpLHJzKGUsciksMT09PXQmJjA9PT1faSYmISgxJm4ubW9kZSkmJihXaT1HZSgpKzUwMCxWbCYmV2woKSkpfWZ1bmN0aW9uIHJzKGUsbil7dmFyIHQ9ZS5jYWxsYmFja05vZGU7IWZ1bmN0aW9uKGUsbil7Zm9yKHZhciB0PWUuc3VzcGVuZGVkTGFuZXMscj1lLnBpbmdlZExhbmVzLGw9ZS5leHBpcmF0aW9uVGltZXMsYT1lLnBlbmRpbmdMYW5lczswPGE7KXt2YXIgdT0zMS11bihhKSxvPTE8PHUsaT1sW3VdOy0xPT09aT9vJnQmJiEobyZyKXx8KGxbdV09bW4obyxuKSk6aTw9biYmKGUuZXhwaXJlZExhbmVzfD1vKSxhJj1+b319KGUsbik7dmFyIHI9cG4oZSxlPT09UGk/TGk6MCk7aWYoMD09PXIpbnVsbCE9PXQmJktlKHQpLGUuY2FsbGJhY2tOb2RlPW51bGwsZS5jYWxsYmFja1ByaW9yaXR5PTA7ZWxzZSBpZihuPXImLXIsZS5jYWxsYmFja1ByaW9yaXR5IT09bil7aWYobnVsbCE9dCYmS2UodCksMT09PW4pMD09PWUudGFnP2Z1bmN0aW9uKGUpe1ZsPSEwLEJsKGUpfShpcy5iaW5kKG51bGwsZSkpOkJsKGlzLmJpbmQobnVsbCxlKSksdWwoKGZ1bmN0aW9uKCl7ISg2Jl9pKSYmV2woKX0pKSx0PW51bGw7ZWxzZXtzd2l0Y2god24ocikpe2Nhc2UgMTp0PUplO2JyZWFrO2Nhc2UgNDp0PWVuO2JyZWFrO2Nhc2UgMTY6ZGVmYXVsdDp0PW5uO2JyZWFrO2Nhc2UgNTM2ODcwOTEyOnQ9cm59dD1Qcyh0LGxzLmJpbmQobnVsbCxlKSl9ZS5jYWxsYmFja1ByaW9yaXR5PW4sZS5jYWxsYmFja05vZGU9dH19ZnVuY3Rpb24gbHMoZSxuKXtpZihaaT0tMSxKaT0wLDYmX2kpdGhyb3cgRXJyb3IoYSgzMjcpKTt2YXIgdD1lLmNhbGxiYWNrTm9kZTtpZihTcygpJiZlLmNhbGxiYWNrTm9kZSE9PXQpcmV0dXJuIG51bGw7dmFyIHI9cG4oZSxlPT09UGk/TGk6MCk7aWYoMD09PXIpcmV0dXJuIG51bGw7aWYoMzAmcnx8ciZlLmV4cGlyZWRMYW5lc3x8biluPWdzKGUscik7ZWxzZXtuPXI7dmFyIGw9X2k7X2l8PTI7dmFyIHU9bXMoKQo7Zm9yKFBpPT09ZSYmTGk9PT1ufHwoSGk9bnVsbCxXaT1HZSgpKzUwMCxkcyhlLG4pKTs7KXRyeXt5cygpO2JyZWFrfWNhdGNoKG4pe3BzKGUsbil9d2EoKSxDaS5jdXJyZW50PXUsX2k9bCxudWxsIT09VGk/bj0wOihQaT1udWxsLExpPTAsbj1SaSl9aWYoMCE9PW4pe2lmKDI9PT1uJiYoMCE9PShsPWhuKGUpKSYmKHI9bCxuPWFzKGUsbCkpKSwxPT09bil0aHJvdyB0PURpLGRzKGUsMCksb3MoZSxyKSxycyhlLEdlKCkpLHQ7aWYoNj09PW4pb3MoZSxyKTtlbHNle2lmKGw9ZS5jdXJyZW50LmFsdGVybmF0ZSwhKDMwJnJ8fGZ1bmN0aW9uKGUpe2Zvcih2YXIgbj1lOzspe2lmKDE2Mzg0Jm4uZmxhZ3Mpe3ZhciB0PW4udXBkYXRlUXVldWU7aWYobnVsbCE9PXQmJm51bGwhPT0odD10LnN0b3JlcykpZm9yKHZhciByPTA7cjx0Lmxlbmd0aDtyKyspe3ZhciBsPXRbcl0sYT1sLmdldFNuYXBzaG90O2w9bC52YWx1ZTt0cnl7aWYoIW9yKGEoKSxsKSlyZXR1cm4hMX1jYXRjaChlKXtyZXR1cm4hMX19fWlmKHQ9bi5jaGlsZCwxNjM4NCZuLnN1YnRyZWVGbGFncyYmbnVsbCE9PXQpdC5yZXR1cm49bixuPXQ7ZWxzZXtpZihuPT09ZSlicmVhaztmb3IoO251bGw9PT1uLnNpYmxpbmc7KXtpZihudWxsPT09bi5yZXR1cm58fG4ucmV0dXJuPT09ZSlyZXR1cm4hMDtuPW4ucmV0dXJufW4uc2libGluZy5yZXR1cm49bi5yZXR1cm4sbj1uLnNpYmxpbmd9fXJldHVybiEwfShsKXx8KG49Z3MoZSxyKSwyPT09biYmKHU9aG4oZSksMCE9PXUmJihyPXUsbj1hcyhlLHUpKSksMSE9PW4pKSl0aHJvdyB0PURpLGRzKGUsMCksb3MoZSxyKSxycyhlLEdlKCkpLHQ7c3dpdGNoKGUuZmluaXNoZWRXb3JrPWwsZS5maW5pc2hlZExhbmVzPXIsbil7Y2FzZSAwOmNhc2UgMTp0aHJvdyBFcnJvcihhKDM0NSkpO2Nhc2UgMjpjYXNlIDU6d3MoZSxBaSxIaSk7YnJlYWs7Y2FzZSAzOmlmKG9zKGUsciksKDEzMDAyMzQyNCZyKT09PXImJjEwPChuPUJpKzUwMC1HZSgpKSl7aWYoMCE9PXBuKGUsMCkpYnJlYWs7aWYoKChsPWUuc3VzcGVuZGVkTGFuZXMpJnIpIT09cil7ZXMoKSxlLnBpbmdlZExhbmVzfD1lLnN1c3BlbmRlZExhbmVzJmw7YnJlYWt9ZS50aW1lb3V0SGFuZGxlPXJsKHdzLmJpbmQobnVsbCxlLEFpLEhpKSxuKTticmVha313cyhlLEFpLEhpKTticmVhaztjYXNlIDQ6aWYob3MoZSxyKSwoNDE5NDI0MCZyKT09PXIpYnJlYWs7Zm9yKG49ZS5ldmVudFRpbWVzLGw9LTE7MDxyOyl7dmFyIG89MzEtdW4ocik7dT0xPDxvLChvPW5bb10pPmwmJihsPW8pLHImPX51fWlmKHI9bCwxMDwocj0oMTIwPihyPUdlKCktcik/MTIwOjQ4MD5yPzQ4MDoxMDgwPnI/MTA4MDoxOTIwPnI/MTkyMDozZTM+cj8zZTM6NDMyMD5yPzQzMjA6MTk2MCpFaShyLzE5NjApKS1yKSl7ZS50aW1lb3V0SGFuZGxlPXJsKHdzLmJpbmQobnVsbCxlLEFpLEhpKSxyKTticmVha313cyhlLEFpLEhpKTticmVhaztkZWZhdWx0OnRocm93IEVycm9yKGEoMzI5KSl9fX1yZXR1cm4gcnMoZSxHZSgpKSxlLmNhbGxiYWNrTm9kZT09PXQ/bHMuYmluZChudWxsLGUpOm51bGx9ZnVuY3Rpb24gYXMoZSxuKXt2YXIgdD1WaTtyZXR1cm4gZS5jdXJyZW50Lm1lbW9pemVkU3RhdGUuaXNEZWh5ZHJhdGVkJiYoZHMoZSxuKS5mbGFnc3w9MjU2KSwyIT09KGU9Z3MoZSxuKSkmJihuPUFpLEFpPXQsbnVsbCE9PW4mJnVzKG4pKSxlfWZ1bmN0aW9uIHVzKGUpe251bGw9PT1BaT9BaT1lOkFpLnB1c2guYXBwbHkoQWksZSl9ZnVuY3Rpb24gb3MoZSxuKXtmb3IobiY9flVpLG4mPX5PaSxlLnN1c3BlbmRlZExhbmVzfD1uLGUucGluZ2VkTGFuZXMmPX5uLGU9ZS5leHBpcmF0aW9uVGltZXM7MDxuOyl7dmFyIHQ9MzEtdW4obikscj0xPDx0O2VbdF09LTEsbiY9fnJ9fWZ1bmN0aW9uIGlzKGUpe2lmKDYmX2kpdGhyb3cgRXJyb3IoYSgzMjcpKTtTcygpO3ZhciBuPXBuKGUsMCk7aWYoISgxJm4pKXJldHVybiBycyhlLEdlKCkpLG51bGw7dmFyIHQ9Z3MoZSxuKTtpZigwIT09ZS50YWcmJjI9PT10KXt2YXIgcj1obihlKTswIT09ciYmKG49cix0PWFzKGUscikpfWlmKDE9PT10KXRocm93IHQ9RGksZHMoZSwwKSxvcyhlLG4pLHJzKGUsR2UoKSksdDtpZig2PT09dCl0aHJvdyBFcnJvcihhKDM0NSkpO3JldHVybiBlLmZpbmlzaGVkV29yaz1lLmN1cnJlbnQuYWx0ZXJuYXRlLGUuZmluaXNoZWRMYW5lcz1uLHdzKGUsQWksSGkpLHJzKGUsR2UoKSksbnVsbH1mdW5jdGlvbiBzcyhlLG4pe3ZhciB0PV9pO19pfD0xO3RyeXtyZXR1cm4gZShuKX1maW5hbGx5ezA9PT0oX2k9dCkmJihXaT1HZSgpKzUwMCxWbCYmV2woKSl9fWZ1bmN0aW9uIGNzKGUpe251bGwhPT1LaSYmMD09PUtpLnRhZyYmISg2Jl9pKSYmU3MoKTt2YXIgbj1faTtfaXw9MTt2YXIgdD1OaS50cmFuc2l0aW9uLHI9a247dHJ5e2lmKE5pLnRyYW5zaXRpb249bnVsbCxrbj0xLGUpcmV0dXJuIGUoKX1maW5hbGx5e2tuPXIsTmkudHJhbnNpdGlvbj10LCEoNiYoX2k9bikpJiZXbCgpfX1mdW5jdGlvbiBmcygpe01pPUZpLmN1cnJlbnQsQ2woRmkpfWZ1bmN0aW9uIGRzKGUsbil7ZS5maW5pc2hlZFdvcms9bnVsbCxlLmZpbmlzaGVkTGFuZXM9MDt2YXIgdD1lLnRpbWVvdXRIYW5kbGU7aWYoLTEhPT10JiYoZS50aW1lb3V0SGFuZGxlPS0xLGxsKHQpKSxudWxsIT09VGkpZm9yKHQ9VGkucmV0dXJuO251bGwhPT10Oyl7dmFyIHI9dDtzd2l0Y2gobmEociksci50YWcpe2Nhc2UgMTpudWxsIT0ocj1yLnR5cGUuY2hpbGRDb250ZXh0VHlwZXMpJiZGbCgpO2JyZWFrO2Nhc2UgMzpsdSgpLENsKFBsKSxDbChfbCksY3UoKTticmVhaztjYXNlIDU6dXUocik7YnJlYWs7Y2FzZSA0Omx1KCk7YnJlYWs7Y2FzZSAxMzpjYXNlIDE5OkNsKG91KTticmVhaztjYXNlIDEwOlNhKHIudHlwZS5fY29udGV4dCk7YnJlYWs7Y2FzZSAyMjpjYXNlIDIzOmZzKCl9dD10LnJldHVybn1pZihQaT1lLFRpPWU9RnMoZS5jdXJyZW50LG51bGwpLExpPU1pPW4sUmk9MCxEaT1udWxsLFVpPU9pPUlpPTAsQWk9Vmk9bnVsbCxudWxsIT09emEpe2ZvcihuPTA7bjx6YS5sZW5ndGg7bisrKWlmKG51bGwhPT0ocj0odD16YVtuXSkuaW50ZXJsZWF2ZWQpKXt0LmludGVybGVhdmVkPW51bGwKO3ZhciBsPXIubmV4dCxhPXQucGVuZGluZztpZihudWxsIT09YSl7dmFyIHU9YS5uZXh0O2EubmV4dD1sLHIubmV4dD11fXQucGVuZGluZz1yfXphPW51bGx9cmV0dXJuIGV9ZnVuY3Rpb24gcHMoZSxuKXtmb3IoOzspe3ZhciB0PVRpO3RyeXtpZih3YSgpLGZ1LmN1cnJlbnQ9YW8sdnUpe2Zvcih2YXIgcj1tdS5tZW1vaXplZFN0YXRlO251bGwhPT1yOyl7dmFyIGw9ci5xdWV1ZTtudWxsIT09bCYmKGwucGVuZGluZz1udWxsKSxyPXIubmV4dH12dT0hMX1pZihwdT0wLGd1PWh1PW11PW51bGwseXU9ITEsYnU9MCx6aS5jdXJyZW50PW51bGwsbnVsbD09PXR8fG51bGw9PT10LnJldHVybil7Umk9MSxEaT1uLFRpPW51bGw7YnJlYWt9ZTp7dmFyIHU9ZSxvPXQucmV0dXJuLGk9dCxzPW47aWYobj1MaSxpLmZsYWdzfD0zMjc2OCxudWxsIT09cyYmIm9iamVjdCI9PXR5cGVvZiBzJiYiZnVuY3Rpb24iPT10eXBlb2Ygcy50aGVuKXt2YXIgYz1zLGY9aSxkPWYudGFnO2lmKCEoMSZmLm1vZGV8fDAhPT1kJiYxMSE9PWQmJjE1IT09ZCkpe3ZhciBwPWYuYWx0ZXJuYXRlO3A/KGYudXBkYXRlUXVldWU9cC51cGRhdGVRdWV1ZSxmLm1lbW9pemVkU3RhdGU9cC5tZW1vaXplZFN0YXRlLGYubGFuZXM9cC5sYW5lcyk6KGYudXBkYXRlUXVldWU9bnVsbCxmLm1lbW9pemVkU3RhdGU9bnVsbCl9dmFyIG09dm8obyk7aWYobnVsbCE9PW0pe20uZmxhZ3MmPS0yNTcseW8obSxvLGksMCxuKSwxJm0ubW9kZSYmZ28odSxjLG4pLHM9Yzt2YXIgaD0obj1tKS51cGRhdGVRdWV1ZTtpZihudWxsPT09aCl7dmFyIGc9bmV3IFNldDtnLmFkZChzKSxuLnVwZGF0ZVF1ZXVlPWd9ZWxzZSBoLmFkZChzKTticmVhayBlfWlmKCEoMSZuKSl7Z28odSxjLG4pLGhzKCk7YnJlYWsgZX1zPUVycm9yKGEoNDI2KSl9ZWxzZSBpZihsYSYmMSZpLm1vZGUpe3ZhciB2PXZvKG8pO2lmKG51bGwhPT12KXshKDY1NTM2JnYuZmxhZ3MpJiYodi5mbGFnc3w9MjU2KSx5byh2LG8saSwwLG4pLG1hKHNvKHMsaSkpO2JyZWFrIGV9fXU9cz1zbyhzLGkpLDQhPT1SaSYmKFJpPTIpLG51bGw9PT1WaT9WaT1bdV06VmkucHVzaCh1KSx1PW87ZG97c3dpdGNoKHUudGFnKXtjYXNlIDM6dS5mbGFnc3w9NjU1MzYsbiY9LW4sdS5sYW5lc3w9bixJYSh1LG1vKDAscyxuKSk7YnJlYWsgZTtjYXNlIDE6aT1zO3ZhciB5PXUudHlwZSxiPXUuc3RhdGVOb2RlO2lmKCEoMTI4JnUuZmxhZ3N8fCJmdW5jdGlvbiIhPXR5cGVvZiB5LmdldERlcml2ZWRTdGF0ZUZyb21FcnJvciYmKG51bGw9PT1ifHwiZnVuY3Rpb24iIT10eXBlb2YgYi5jb21wb25lbnREaWRDYXRjaHx8bnVsbCE9PSRpJiYkaS5oYXMoYikpKSl7dS5mbGFnc3w9NjU1MzYsbiY9LW4sdS5sYW5lc3w9bixJYSh1LGhvKHUsaSxuKSk7YnJlYWsgZX19dT11LnJldHVybn13aGlsZShudWxsIT09dSl9a3ModCl9Y2F0Y2goZSl7bj1lLFRpPT09dCYmbnVsbCE9PXQmJihUaT10PXQucmV0dXJuKTtjb250aW51ZX1icmVha319ZnVuY3Rpb24gbXMoKXt2YXIgZT1DaS5jdXJyZW50O3JldHVybiBDaS5jdXJyZW50PWFvLG51bGw9PT1lP2FvOmV9ZnVuY3Rpb24gaHMoKXswIT09UmkmJjMhPT1SaSYmMiE9PVJpfHwoUmk9NCksbnVsbD09PVBpfHwhKDI2ODQzNTQ1NSZJaSkmJiEoMjY4NDM1NDU1Jk9pKXx8b3MoUGksTGkpfWZ1bmN0aW9uIGdzKGUsbil7dmFyIHQ9X2k7X2l8PTI7dmFyIHI9bXMoKTtmb3IoUGk9PT1lJiZMaT09PW58fChIaT1udWxsLGRzKGUsbikpOzspdHJ5e3ZzKCk7YnJlYWt9Y2F0Y2gobil7cHMoZSxuKX1pZih3YSgpLF9pPXQsQ2kuY3VycmVudD1yLG51bGwhPT1UaSl0aHJvdyBFcnJvcihhKDI2MSkpO3JldHVybiBQaT1udWxsLExpPTAsUml9ZnVuY3Rpb24gdnMoKXtmb3IoO251bGwhPT1UaTspYnMoVGkpfWZ1bmN0aW9uIHlzKCl7Zm9yKDtudWxsIT09VGkmJiFZZSgpOylicyhUaSl9ZnVuY3Rpb24gYnMoZSl7dmFyIG49eGkoZS5hbHRlcm5hdGUsZSxNaSk7ZS5tZW1vaXplZFByb3BzPWUucGVuZGluZ1Byb3BzLG51bGw9PT1uP2tzKGUpOlRpPW4semkuY3VycmVudD1udWxsfWZ1bmN0aW9uIGtzKGUpe3ZhciBuPWU7ZG97dmFyIHQ9bi5hbHRlcm5hdGU7aWYoZT1uLnJldHVybiwzMjc2OCZuLmZsYWdzKXtpZihudWxsIT09KHQ9S28odCxuKSkpcmV0dXJuIHQuZmxhZ3MmPTMyNzY3LHZvaWQoVGk9dCk7aWYobnVsbD09PWUpcmV0dXJuIFJpPTYsdm9pZChUaT1udWxsKTtlLmZsYWdzfD0zMjc2OCxlLnN1YnRyZWVGbGFncz0wLGUuZGVsZXRpb25zPW51bGx9ZWxzZSBpZihudWxsIT09KHQ9cW8odCxuLE1pKSkpcmV0dXJuIHZvaWQoVGk9dCk7aWYobnVsbCE9PShuPW4uc2libGluZykpcmV0dXJuIHZvaWQoVGk9bik7VGk9bj1lfXdoaWxlKG51bGwhPT1uKTswPT09UmkmJihSaT01KX1mdW5jdGlvbiB3cyhlLG4sdCl7dmFyIHI9a24sbD1OaS50cmFuc2l0aW9uO3RyeXtOaS50cmFuc2l0aW9uPW51bGwsa249MSxmdW5jdGlvbihlLG4sdCxyKXtkb3tTcygpfXdoaWxlKG51bGwhPT1LaSk7aWYoNiZfaSl0aHJvdyBFcnJvcihhKDMyNykpO3Q9ZS5maW5pc2hlZFdvcms7dmFyIGw9ZS5maW5pc2hlZExhbmVzO2lmKG51bGw9PT10KXJldHVybiBudWxsO2lmKGUuZmluaXNoZWRXb3JrPW51bGwsZS5maW5pc2hlZExhbmVzPTAsdD09PWUuY3VycmVudCl0aHJvdyBFcnJvcihhKDE3NykpO2UuY2FsbGJhY2tOb2RlPW51bGwsZS5jYWxsYmFja1ByaW9yaXR5PTA7dmFyIHU9dC5sYW5lc3x0LmNoaWxkTGFuZXM7aWYoZnVuY3Rpb24oZSxuKXt2YXIgdD1lLnBlbmRpbmdMYW5lcyZ+bjtlLnBlbmRpbmdMYW5lcz1uLGUuc3VzcGVuZGVkTGFuZXM9MCxlLnBpbmdlZExhbmVzPTAsZS5leHBpcmVkTGFuZXMmPW4sZS5tdXRhYmxlUmVhZExhbmVzJj1uLGUuZW50YW5nbGVkTGFuZXMmPW4sbj1lLmVudGFuZ2xlbWVudHM7dmFyIHI9ZS5ldmVudFRpbWVzO2ZvcihlPWUuZXhwaXJhdGlvblRpbWVzOzA8dDspe3ZhciBsPTMxLXVuKHQpLGE9MTw8bDtuW2xdPTAscltsXT0tMSxlW2xdPS0xLHQmPX5hfX0oZSx1KSxlPT09UGkmJihUaT1QaT1udWxsLExpPTApLAohKDIwNjQmdC5zdWJ0cmVlRmxhZ3MpJiYhKDIwNjQmdC5mbGFncyl8fHFpfHwocWk9ITAsUHMobm4sKGZ1bmN0aW9uKCl7cmV0dXJuIFNzKCksbnVsbH0pKSksdT0hISgxNTk5MCZ0LmZsYWdzKSwhISgxNTk5MCZ0LnN1YnRyZWVGbGFncyl8fHUpe3U9TmkudHJhbnNpdGlvbixOaS50cmFuc2l0aW9uPW51bGw7dmFyIG89a247a249MTt2YXIgaT1faTtfaXw9NCx6aS5jdXJyZW50PW51bGwsZnVuY3Rpb24oZSxuKXtpZihlbD1qbixwcihlPWRyKCkpKXtpZigic2VsZWN0aW9uU3RhcnQiaW4gZSl2YXIgdD17c3RhcnQ6ZS5zZWxlY3Rpb25TdGFydCxlbmQ6ZS5zZWxlY3Rpb25FbmR9O2Vsc2UgZTp7dmFyIHI9KHQ9KHQ9ZS5vd25lckRvY3VtZW50KSYmdC5kZWZhdWx0Vmlld3x8d2luZG93KS5nZXRTZWxlY3Rpb24mJnQuZ2V0U2VsZWN0aW9uKCk7aWYociYmMCE9PXIucmFuZ2VDb3VudCl7dD1yLmFuY2hvck5vZGU7dmFyIGw9ci5hbmNob3JPZmZzZXQsdT1yLmZvY3VzTm9kZTtyPXIuZm9jdXNPZmZzZXQ7dHJ5e3Qubm9kZVR5cGUsdS5ub2RlVHlwZX1jYXRjaChlKXt0PW51bGw7YnJlYWsgZX12YXIgbz0wLGk9LTEscz0tMSxjPTAsZj0wLGQ9ZSxwPW51bGw7bjpmb3IoOzspe2Zvcih2YXIgbTtkIT09dHx8MCE9PWwmJjMhPT1kLm5vZGVUeXBlfHwoaT1vK2wpLGQhPT11fHwwIT09ciYmMyE9PWQubm9kZVR5cGV8fChzPW8rciksMz09PWQubm9kZVR5cGUmJihvKz1kLm5vZGVWYWx1ZS5sZW5ndGgpLG51bGwhPT0obT1kLmZpcnN0Q2hpbGQpOylwPWQsZD1tO2Zvcig7Oyl7aWYoZD09PWUpYnJlYWsgbjtpZihwPT09dCYmKytjPT09bCYmKGk9bykscD09PXUmJisrZj09PXImJihzPW8pLG51bGwhPT0obT1kLm5leHRTaWJsaW5nKSlicmVhaztwPShkPXApLnBhcmVudE5vZGV9ZD1tfXQ9LTE9PT1pfHwtMT09PXM/bnVsbDp7c3RhcnQ6aSxlbmQ6c319ZWxzZSB0PW51bGx9dD10fHx7c3RhcnQ6MCxlbmQ6MH19ZWxzZSB0PW51bGw7Zm9yKG5sPXtmb2N1c2VkRWxlbTplLHNlbGVjdGlvblJhbmdlOnR9LGpuPSExLFpvPW47bnVsbCE9PVpvOylpZihlPShuPVpvKS5jaGlsZCwxMDI4Jm4uc3VidHJlZUZsYWdzJiZudWxsIT09ZSllLnJldHVybj1uLFpvPWU7ZWxzZSBmb3IoO251bGwhPT1abzspe249Wm87dHJ5e3ZhciBoPW4uYWx0ZXJuYXRlO2lmKDEwMjQmbi5mbGFncylzd2l0Y2gobi50YWcpe2Nhc2UgMDpjYXNlIDExOmNhc2UgMTU6Y2FzZSA1OmNhc2UgNjpjYXNlIDQ6Y2FzZSAxNzpicmVhaztjYXNlIDE6aWYobnVsbCE9PWgpe3ZhciBnPWgubWVtb2l6ZWRQcm9wcyx2PWgubWVtb2l6ZWRTdGF0ZSx5PW4uc3RhdGVOb2RlLGI9eS5nZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZShuLmVsZW1lbnRUeXBlPT09bi50eXBlP2c6Z2Eobi50eXBlLGcpLHYpO3kuX19yZWFjdEludGVybmFsU25hcHNob3RCZWZvcmVVcGRhdGU9Yn1icmVhaztjYXNlIDM6dmFyIGs9bi5zdGF0ZU5vZGUuY29udGFpbmVySW5mbzsxPT09ay5ub2RlVHlwZT9rLnRleHRDb250ZW50PSIiOjk9PT1rLm5vZGVUeXBlJiZrLmRvY3VtZW50RWxlbWVudCYmay5yZW1vdmVDaGlsZChrLmRvY3VtZW50RWxlbWVudCk7YnJlYWs7ZGVmYXVsdDp0aHJvdyBFcnJvcihhKDE2MykpfX1jYXRjaChlKXtFcyhuLG4ucmV0dXJuLGUpfWlmKG51bGwhPT0oZT1uLnNpYmxpbmcpKXtlLnJldHVybj1uLnJldHVybixabz1lO2JyZWFrfVpvPW4ucmV0dXJufWg9bmksbmk9ITF9KGUsdCksZ2kodCxlKSxtcihubCksam49ISFlbCxubD1lbD1udWxsLGUuY3VycmVudD10LHlpKHQsZSxsKSxYZSgpLF9pPWksa249byxOaS50cmFuc2l0aW9uPXV9ZWxzZSBlLmN1cnJlbnQ9dDtpZihxaSYmKHFpPSExLEtpPWUsWWk9bCksdT1lLnBlbmRpbmdMYW5lcywwPT09dSYmKCRpPW51bGwpLGZ1bmN0aW9uKGUpe2lmKGFuJiYiZnVuY3Rpb24iPT10eXBlb2YgYW4ub25Db21taXRGaWJlclJvb3QpdHJ5e2FuLm9uQ29tbWl0RmliZXJSb290KGxuLGUsdm9pZCAwLCEoMTI4Jn5lLmN1cnJlbnQuZmxhZ3MpKX1jYXRjaChlKXt9fSh0LnN0YXRlTm9kZSkscnMoZSxHZSgpKSxudWxsIT09bilmb3Iocj1lLm9uUmVjb3ZlcmFibGVFcnJvcix0PTA7dDxuLmxlbmd0aDt0KyspbD1uW3RdLHIobC52YWx1ZSx7Y29tcG9uZW50U3RhY2s6bC5zdGFjayxkaWdlc3Q6bC5kaWdlc3R9KTtpZihRaSl0aHJvdyBRaT0hMSxlPWppLGppPW51bGwsZTshISgxJllpKSYmMCE9PWUudGFnJiZTcygpLHU9ZS5wZW5kaW5nTGFuZXMsMSZ1P2U9PT1HaT9YaSsrOihYaT0wLEdpPWUpOlhpPTAsV2woKX0oZSxuLHQscil9ZmluYWxseXtOaS50cmFuc2l0aW9uPWwsa249cn1yZXR1cm4gbnVsbH1mdW5jdGlvbiBTcygpe2lmKG51bGwhPT1LaSl7dmFyIGU9d24oWWkpLG49TmkudHJhbnNpdGlvbix0PWtuO3RyeXtpZihOaS50cmFuc2l0aW9uPW51bGwsa249MTY+ZT8xNjplLG51bGw9PT1LaSl2YXIgcj0hMTtlbHNle2lmKGU9S2ksS2k9bnVsbCxZaT0wLDYmX2kpdGhyb3cgRXJyb3IoYSgzMzEpKTt2YXIgbD1faTtmb3IoX2l8PTQsWm89ZS5jdXJyZW50O251bGwhPT1abzspe3ZhciB1PVpvLG89dS5jaGlsZDtpZigxNiZaby5mbGFncyl7dmFyIGk9dS5kZWxldGlvbnM7aWYobnVsbCE9PWkpe2Zvcih2YXIgcz0wO3M8aS5sZW5ndGg7cysrKXt2YXIgYz1pW3NdO2Zvcihabz1jO251bGwhPT1abzspe3ZhciBmPVpvO3N3aXRjaChmLnRhZyl7Y2FzZSAwOmNhc2UgMTE6Y2FzZSAxNTp0aSg4LGYsdSl9dmFyIGQ9Zi5jaGlsZDtpZihudWxsIT09ZClkLnJldHVybj1mLFpvPWQ7ZWxzZSBmb3IoO251bGwhPT1abzspe3ZhciBwPShmPVpvKS5zaWJsaW5nLG09Zi5yZXR1cm47aWYoYWkoZiksZj09PWMpe1pvPW51bGw7YnJlYWt9aWYobnVsbCE9PXApe3AucmV0dXJuPW0sWm89cDticmVha31abz1tfX19dmFyIGg9dS5hbHRlcm5hdGU7aWYobnVsbCE9PWgpe3ZhciBnPWguY2hpbGQ7aWYobnVsbCE9PWcpe2guY2hpbGQ9bnVsbDtkb3t2YXIgdj1nLnNpYmxpbmc7Zy5zaWJsaW5nPW51bGwsZz12fXdoaWxlKG51bGwhPT1nKX19Wm89dX19aWYoMjA2NCZ1LnN1YnRyZWVGbGFncyYmbnVsbCE9PW8pby5yZXR1cm49dSwKWm89bztlbHNlIGU6Zm9yKDtudWxsIT09Wm87KXtpZigyMDQ4Jih1PVpvKS5mbGFncylzd2l0Y2godS50YWcpe2Nhc2UgMDpjYXNlIDExOmNhc2UgMTU6dGkoOSx1LHUucmV0dXJuKX12YXIgeT11LnNpYmxpbmc7aWYobnVsbCE9PXkpe3kucmV0dXJuPXUucmV0dXJuLFpvPXk7YnJlYWsgZX1abz11LnJldHVybn19dmFyIGI9ZS5jdXJyZW50O2Zvcihabz1iO251bGwhPT1abzspe3ZhciBrPShvPVpvKS5jaGlsZDtpZigyMDY0Jm8uc3VidHJlZUZsYWdzJiZudWxsIT09aylrLnJldHVybj1vLFpvPWs7ZWxzZSBlOmZvcihvPWI7bnVsbCE9PVpvOyl7aWYoMjA0OCYoaT1abykuZmxhZ3MpdHJ5e3N3aXRjaChpLnRhZyl7Y2FzZSAwOmNhc2UgMTE6Y2FzZSAxNTpyaSg5LGkpfX1jYXRjaChlKXtFcyhpLGkucmV0dXJuLGUpfWlmKGk9PT1vKXtabz1udWxsO2JyZWFrIGV9dmFyIHc9aS5zaWJsaW5nO2lmKG51bGwhPT13KXt3LnJldHVybj1pLnJldHVybixabz13O2JyZWFrIGV9Wm89aS5yZXR1cm59fWlmKF9pPWwsV2woKSxhbiYmImZ1bmN0aW9uIj09dHlwZW9mIGFuLm9uUG9zdENvbW1pdEZpYmVyUm9vdCl0cnl7YW4ub25Qb3N0Q29tbWl0RmliZXJSb290KGxuLGUpfWNhdGNoKGUpe31yPSEwfXJldHVybiByfWZpbmFsbHl7a249dCxOaS50cmFuc2l0aW9uPW59fXJldHVybiExfWZ1bmN0aW9uIHhzKGUsbix0KXtlPVJhKGUsbj1tbygwLG49c28odCxuKSwxKSwxKSxuPWVzKCksbnVsbCE9PWUmJih5bihlLDEsbikscnMoZSxuKSl9ZnVuY3Rpb24gRXMoZSxuLHQpe2lmKDM9PT1lLnRhZyl4cyhlLGUsdCk7ZWxzZSBmb3IoO251bGwhPT1uOyl7aWYoMz09PW4udGFnKXt4cyhuLGUsdCk7YnJlYWt9aWYoMT09PW4udGFnKXt2YXIgcj1uLnN0YXRlTm9kZTtpZigiZnVuY3Rpb24iPT10eXBlb2Ygbi50eXBlLmdldERlcml2ZWRTdGF0ZUZyb21FcnJvcnx8ImZ1bmN0aW9uIj09dHlwZW9mIHIuY29tcG9uZW50RGlkQ2F0Y2gmJihudWxsPT09JGl8fCEkaS5oYXMocikpKXtuPVJhKG4sZT1obyhuLGU9c28odCxlKSwxKSwxKSxlPWVzKCksbnVsbCE9PW4mJih5bihuLDEsZSkscnMobixlKSk7YnJlYWt9fW49bi5yZXR1cm59fWZ1bmN0aW9uIENzKGUsbix0KXt2YXIgcj1lLnBpbmdDYWNoZTtudWxsIT09ciYmci5kZWxldGUobiksbj1lcygpLGUucGluZ2VkTGFuZXN8PWUuc3VzcGVuZGVkTGFuZXMmdCxQaT09PWUmJihMaSZ0KT09PXQmJig0PT09Uml8fDM9PT1SaSYmKDEzMDAyMzQyNCZMaSk9PT1MaSYmNTAwPkdlKCktQmk/ZHMoZSwwKTpVaXw9dCkscnMoZSxuKX1mdW5jdGlvbiB6cyhlLG4pezA9PT1uJiYoMSZlLm1vZGU/KG49Zm4sISgxMzAwMjM0MjQmKGZuPDw9MSkpJiYoZm49NDE5NDMwNCkpOm49MSk7dmFyIHQ9ZXMoKTtudWxsIT09KGU9UGEoZSxuKSkmJih5bihlLG4sdCkscnMoZSx0KSl9ZnVuY3Rpb24gTnMoZSl7dmFyIG49ZS5tZW1vaXplZFN0YXRlLHQ9MDtudWxsIT09biYmKHQ9bi5yZXRyeUxhbmUpLHpzKGUsdCl9ZnVuY3Rpb24gX3MoZSxuKXt2YXIgdD0wO3N3aXRjaChlLnRhZyl7Y2FzZSAxMzp2YXIgcj1lLnN0YXRlTm9kZSxsPWUubWVtb2l6ZWRTdGF0ZTtudWxsIT09bCYmKHQ9bC5yZXRyeUxhbmUpO2JyZWFrO2Nhc2UgMTk6cj1lLnN0YXRlTm9kZTticmVhaztkZWZhdWx0OnRocm93IEVycm9yKGEoMzE0KSl9bnVsbCE9PXImJnIuZGVsZXRlKG4pLHpzKGUsdCl9ZnVuY3Rpb24gUHMoZSxuKXtyZXR1cm4gcWUoZSxuKX1mdW5jdGlvbiBUcyhlLG4sdCxyKXt0aGlzLnRhZz1lLHRoaXMua2V5PXQsdGhpcy5zaWJsaW5nPXRoaXMuY2hpbGQ9dGhpcy5yZXR1cm49dGhpcy5zdGF0ZU5vZGU9dGhpcy50eXBlPXRoaXMuZWxlbWVudFR5cGU9bnVsbCx0aGlzLmluZGV4PTAsdGhpcy5yZWY9bnVsbCx0aGlzLnBlbmRpbmdQcm9wcz1uLHRoaXMuZGVwZW5kZW5jaWVzPXRoaXMubWVtb2l6ZWRTdGF0ZT10aGlzLnVwZGF0ZVF1ZXVlPXRoaXMubWVtb2l6ZWRQcm9wcz1udWxsLHRoaXMubW9kZT1yLHRoaXMuc3VidHJlZUZsYWdzPXRoaXMuZmxhZ3M9MCx0aGlzLmRlbGV0aW9ucz1udWxsLHRoaXMuY2hpbGRMYW5lcz10aGlzLmxhbmVzPTAsdGhpcy5hbHRlcm5hdGU9bnVsbH1mdW5jdGlvbiBMcyhlLG4sdCxyKXtyZXR1cm4gbmV3IFRzKGUsbix0LHIpfWZ1bmN0aW9uIE1zKGUpe3JldHVybiEoIShlPWUucHJvdG90eXBlKXx8IWUuaXNSZWFjdENvbXBvbmVudCl9ZnVuY3Rpb24gRnMoZSxuKXt2YXIgdD1lLmFsdGVybmF0ZTtyZXR1cm4gbnVsbD09PXQ/KCh0PUxzKGUudGFnLG4sZS5rZXksZS5tb2RlKSkuZWxlbWVudFR5cGU9ZS5lbGVtZW50VHlwZSx0LnR5cGU9ZS50eXBlLHQuc3RhdGVOb2RlPWUuc3RhdGVOb2RlLHQuYWx0ZXJuYXRlPWUsZS5hbHRlcm5hdGU9dCk6KHQucGVuZGluZ1Byb3BzPW4sdC50eXBlPWUudHlwZSx0LmZsYWdzPTAsdC5zdWJ0cmVlRmxhZ3M9MCx0LmRlbGV0aW9ucz1udWxsKSx0LmZsYWdzPTE0NjgwMDY0JmUuZmxhZ3MsdC5jaGlsZExhbmVzPWUuY2hpbGRMYW5lcyx0LmxhbmVzPWUubGFuZXMsdC5jaGlsZD1lLmNoaWxkLHQubWVtb2l6ZWRQcm9wcz1lLm1lbW9pemVkUHJvcHMsdC5tZW1vaXplZFN0YXRlPWUubWVtb2l6ZWRTdGF0ZSx0LnVwZGF0ZVF1ZXVlPWUudXBkYXRlUXVldWUsbj1lLmRlcGVuZGVuY2llcyx0LmRlcGVuZGVuY2llcz1udWxsPT09bj9udWxsOntsYW5lczpuLmxhbmVzLGZpcnN0Q29udGV4dDpuLmZpcnN0Q29udGV4dH0sdC5zaWJsaW5nPWUuc2libGluZyx0LmluZGV4PWUuaW5kZXgsdC5yZWY9ZS5yZWYsdH1mdW5jdGlvbiBScyhlLG4sdCxyLGwsdSl7dmFyIG89MjtpZihyPWUsImZ1bmN0aW9uIj09dHlwZW9mIGUpTXMoZSkmJihvPTEpO2Vsc2UgaWYoInN0cmluZyI9PXR5cGVvZiBlKW89NTtlbHNlIGU6c3dpdGNoKGUpe2Nhc2UgeDpyZXR1cm4gRHModC5jaGlsZHJlbixsLHUsbik7Y2FzZSBFOm89OCxsfD04O2JyZWFrO2Nhc2UgQzpyZXR1cm4oZT1McygxMix0LG4sMnxsKSkuZWxlbWVudFR5cGU9QyxlLmxhbmVzPXUsZTtjYXNlIFA6cmV0dXJuKGU9THMoMTMsdCxuLGwpKS5lbGVtZW50VHlwZT1QLGUubGFuZXM9dSxlO2Nhc2UgVDoKcmV0dXJuKGU9THMoMTksdCxuLGwpKS5lbGVtZW50VHlwZT1ULGUubGFuZXM9dSxlO2Nhc2UgRjpyZXR1cm4gSXModCxsLHUsbik7ZGVmYXVsdDppZigib2JqZWN0Ij09dHlwZW9mIGUmJm51bGwhPT1lKXN3aXRjaChlLiQkdHlwZW9mKXtjYXNlIHo6bz0xMDticmVhayBlO2Nhc2UgTjpvPTk7YnJlYWsgZTtjYXNlIF86bz0xMTticmVhayBlO2Nhc2UgTDpvPTE0O2JyZWFrIGU7Y2FzZSBNOm89MTYscj1udWxsO2JyZWFrIGV9dGhyb3cgRXJyb3IoYSgxMzAsbnVsbD09ZT9lOnR5cGVvZiBlLCIiKSl9cmV0dXJuKG49THMobyx0LG4sbCkpLmVsZW1lbnRUeXBlPWUsbi50eXBlPXIsbi5sYW5lcz11LG59ZnVuY3Rpb24gRHMoZSxuLHQscil7cmV0dXJuKGU9THMoNyxlLHIsbikpLmxhbmVzPXQsZX1mdW5jdGlvbiBJcyhlLG4sdCxyKXtyZXR1cm4oZT1McygyMixlLHIsbikpLmVsZW1lbnRUeXBlPUYsZS5sYW5lcz10LGUuc3RhdGVOb2RlPXtpc0hpZGRlbjohMX0sZX1mdW5jdGlvbiBPcyhlLG4sdCl7cmV0dXJuKGU9THMoNixlLG51bGwsbikpLmxhbmVzPXQsZX1mdW5jdGlvbiBVcyhlLG4sdCl7cmV0dXJuKG49THMoNCxudWxsIT09ZS5jaGlsZHJlbj9lLmNoaWxkcmVuOltdLGUua2V5LG4pKS5sYW5lcz10LG4uc3RhdGVOb2RlPXtjb250YWluZXJJbmZvOmUuY29udGFpbmVySW5mbyxwZW5kaW5nQ2hpbGRyZW46bnVsbCxpbXBsZW1lbnRhdGlvbjplLmltcGxlbWVudGF0aW9ufSxufWZ1bmN0aW9uIFZzKGUsbix0LHIsbCl7dGhpcy50YWc9bix0aGlzLmNvbnRhaW5lckluZm89ZSx0aGlzLmZpbmlzaGVkV29yaz10aGlzLnBpbmdDYWNoZT10aGlzLmN1cnJlbnQ9dGhpcy5wZW5kaW5nQ2hpbGRyZW49bnVsbCx0aGlzLnRpbWVvdXRIYW5kbGU9LTEsdGhpcy5jYWxsYmFja05vZGU9dGhpcy5wZW5kaW5nQ29udGV4dD10aGlzLmNvbnRleHQ9bnVsbCx0aGlzLmNhbGxiYWNrUHJpb3JpdHk9MCx0aGlzLmV2ZW50VGltZXM9dm4oMCksdGhpcy5leHBpcmF0aW9uVGltZXM9dm4oLTEpLHRoaXMuZW50YW5nbGVkTGFuZXM9dGhpcy5maW5pc2hlZExhbmVzPXRoaXMubXV0YWJsZVJlYWRMYW5lcz10aGlzLmV4cGlyZWRMYW5lcz10aGlzLnBpbmdlZExhbmVzPXRoaXMuc3VzcGVuZGVkTGFuZXM9dGhpcy5wZW5kaW5nTGFuZXM9MCx0aGlzLmVudGFuZ2xlbWVudHM9dm4oMCksdGhpcy5pZGVudGlmaWVyUHJlZml4PXIsdGhpcy5vblJlY292ZXJhYmxlRXJyb3I9bCx0aGlzLm11dGFibGVTb3VyY2VFYWdlckh5ZHJhdGlvbkRhdGE9bnVsbH1mdW5jdGlvbiBBcyhlLG4sdCxyLGwsYSx1LG8saSl7cmV0dXJuIGU9bmV3IFZzKGUsbix0LG8saSksMT09PW4/KG49MSwhMD09PWEmJihufD04KSk6bj0wLGE9THMoMyxudWxsLG51bGwsbiksZS5jdXJyZW50PWEsYS5zdGF0ZU5vZGU9ZSxhLm1lbW9pemVkU3RhdGU9e2VsZW1lbnQ6cixpc0RlaHlkcmF0ZWQ6dCxjYWNoZTpudWxsLHRyYW5zaXRpb25zOm51bGwscGVuZGluZ1N1c3BlbnNlQm91bmRhcmllczpudWxsfSxMYShhKSxlfWZ1bmN0aW9uIEJzKGUpe2lmKCFlKXJldHVybiBObDtlOntpZihXZShlPWUuX3JlYWN0SW50ZXJuYWxzKSE9PWV8fDEhPT1lLnRhZyl0aHJvdyBFcnJvcihhKDE3MCkpO3ZhciBuPWU7ZG97c3dpdGNoKG4udGFnKXtjYXNlIDM6bj1uLnN0YXRlTm9kZS5jb250ZXh0O2JyZWFrIGU7Y2FzZSAxOmlmKE1sKG4udHlwZSkpe249bi5zdGF0ZU5vZGUuX19yZWFjdEludGVybmFsTWVtb2l6ZWRNZXJnZWRDaGlsZENvbnRleHQ7YnJlYWsgZX19bj1uLnJldHVybn13aGlsZShudWxsIT09bik7dGhyb3cgRXJyb3IoYSgxNzEpKX1pZigxPT09ZS50YWcpe3ZhciB0PWUudHlwZTtpZihNbCh0KSlyZXR1cm4gRGwoZSx0LG4pfXJldHVybiBufWZ1bmN0aW9uIFdzKGUsbix0LHIsbCxhLHUsbyxpKXtyZXR1cm4oZT1Bcyh0LHIsITAsZSwwLGEsMCxvLGkpKS5jb250ZXh0PUJzKG51bGwpLHQ9ZS5jdXJyZW50LChhPUZhKHI9ZXMoKSxsPW5zKHQpKSkuY2FsbGJhY2s9bnVsbCE9bj9uOm51bGwsUmEodCxhLGwpLGUuY3VycmVudC5sYW5lcz1sLHluKGUsbCxyKSxycyhlLHIpLGV9ZnVuY3Rpb24gSHMoZSxuLHQscil7dmFyIGw9bi5jdXJyZW50LGE9ZXMoKSx1PW5zKGwpO3JldHVybiB0PUJzKHQpLG51bGw9PT1uLmNvbnRleHQ/bi5jb250ZXh0PXQ6bi5wZW5kaW5nQ29udGV4dD10LChuPUZhKGEsdSkpLnBheWxvYWQ9e2VsZW1lbnQ6ZX0sbnVsbCE9PShyPXZvaWQgMD09PXI/bnVsbDpyKSYmKG4uY2FsbGJhY2s9ciksbnVsbCE9PShlPVJhKGwsbix1KSkmJih0cyhlLGwsdSxhKSxEYShlLGwsdSkpLHV9ZnVuY3Rpb24gUXMoZSl7cmV0dXJuKGU9ZS5jdXJyZW50KS5jaGlsZD8oZS5jaGlsZC50YWcsZS5jaGlsZC5zdGF0ZU5vZGUpOm51bGx9ZnVuY3Rpb24ganMoZSxuKXtpZihudWxsIT09KGU9ZS5tZW1vaXplZFN0YXRlKSYmbnVsbCE9PWUuZGVoeWRyYXRlZCl7dmFyIHQ9ZS5yZXRyeUxhbmU7ZS5yZXRyeUxhbmU9MCE9PXQmJnQ8bj90Om59fWZ1bmN0aW9uICRzKGUsbil7anMoZSxuKSwoZT1lLmFsdGVybmF0ZSkmJmpzKGUsbil9eGk9ZnVuY3Rpb24oZSxuLHQpe2lmKG51bGwhPT1lKWlmKGUubWVtb2l6ZWRQcm9wcyE9PW4ucGVuZGluZ1Byb3BzfHxQbC5jdXJyZW50KWtvPSEwO2Vsc2V7aWYoIShlLmxhbmVzJnR8fDEyOCZuLmZsYWdzKSlyZXR1cm4ga289ITEsZnVuY3Rpb24oZSxuLHQpe3N3aXRjaChuLnRhZyl7Y2FzZSAzOlRvKG4pLHBhKCk7YnJlYWs7Y2FzZSA1OmF1KG4pO2JyZWFrO2Nhc2UgMTpNbChuLnR5cGUpJiZJbChuKTticmVhaztjYXNlIDQ6cnUobixuLnN0YXRlTm9kZS5jb250YWluZXJJbmZvKTticmVhaztjYXNlIDEwOnZhciByPW4udHlwZS5fY29udGV4dCxsPW4ubWVtb2l6ZWRQcm9wcy52YWx1ZTt6bCh2YSxyLl9jdXJyZW50VmFsdWUpLHIuX2N1cnJlbnRWYWx1ZT1sO2JyZWFrO2Nhc2UgMTM6aWYobnVsbCE9PShyPW4ubWVtb2l6ZWRTdGF0ZSkpcmV0dXJuIG51bGwhPT1yLmRlaHlkcmF0ZWQ/KHpsKG91LDEmb3UuY3VycmVudCksbi5mbGFnc3w9MTI4LG51bGwpOnQmbi5jaGlsZC5jaGlsZExhbmVzP09vKGUsbix0KTooemwob3UsMSZvdS5jdXJyZW50KSwKbnVsbCE9PShlPVFvKGUsbix0KSk/ZS5zaWJsaW5nOm51bGwpO3psKG91LDEmb3UuY3VycmVudCk7YnJlYWs7Y2FzZSAxOTppZihyPSEhKHQmbi5jaGlsZExhbmVzKSwxMjgmZS5mbGFncyl7aWYocilyZXR1cm4gV28oZSxuLHQpO24uZmxhZ3N8PTEyOH1pZihudWxsIT09KGw9bi5tZW1vaXplZFN0YXRlKSYmKGwucmVuZGVyaW5nPW51bGwsbC50YWlsPW51bGwsbC5sYXN0RWZmZWN0PW51bGwpLHpsKG91LG91LmN1cnJlbnQpLHIpYnJlYWs7cmV0dXJuIG51bGw7Y2FzZSAyMjpjYXNlIDIzOnJldHVybiBuLmxhbmVzPTAsQ28oZSxuLHQpfXJldHVybiBRbyhlLG4sdCl9KGUsbix0KTtrbz0hISgxMzEwNzImZS5mbGFncyl9ZWxzZSBrbz0hMSxsYSYmMTA0ODU3NiZuLmZsYWdzJiZKbChuLCRsLG4uaW5kZXgpO3N3aXRjaChuLmxhbmVzPTAsbi50YWcpe2Nhc2UgMjp2YXIgcj1uLnR5cGU7SG8oZSxuKSxlPW4ucGVuZGluZ1Byb3BzO3ZhciBsPUxsKG4sX2wuY3VycmVudCk7RWEobix0KSxsPXh1KG51bGwsbixyLGUsbCx0KTt2YXIgdT1FdSgpO3JldHVybiBuLmZsYWdzfD0xLCJvYmplY3QiPT10eXBlb2YgbCYmbnVsbCE9PWwmJiJmdW5jdGlvbiI9PXR5cGVvZiBsLnJlbmRlciYmdm9pZCAwPT09bC4kJHR5cGVvZj8obi50YWc9MSxuLm1lbW9pemVkU3RhdGU9bnVsbCxuLnVwZGF0ZVF1ZXVlPW51bGwsTWwocik/KHU9ITAsSWwobikpOnU9ITEsbi5tZW1vaXplZFN0YXRlPW51bGwhPT1sLnN0YXRlJiZ2b2lkIDAhPT1sLnN0YXRlP2wuc3RhdGU6bnVsbCxMYShuKSxsLnVwZGF0ZXI9QmEsbi5zdGF0ZU5vZGU9bCxsLl9yZWFjdEludGVybmFscz1uLGphKG4scixlLHQpLG49UG8obnVsbCxuLHIsITAsdSx0KSk6KG4udGFnPTAsbGEmJnUmJmVhKG4pLHdvKG51bGwsbixsLHQpLG49bi5jaGlsZCksbjtjYXNlIDE2OnI9bi5lbGVtZW50VHlwZTtlOntzd2l0Y2goSG8oZSxuKSxlPW4ucGVuZGluZ1Byb3BzLHI9KGw9ci5faW5pdCkoci5fcGF5bG9hZCksbi50eXBlPXIsbD1uLnRhZz1mdW5jdGlvbihlKXtpZigiZnVuY3Rpb24iPT10eXBlb2YgZSlyZXR1cm4gTXMoZSk/MTowO2lmKG51bGwhPWUpe2lmKChlPWUuJCR0eXBlb2YpPT09XylyZXR1cm4gMTE7aWYoZT09PUwpcmV0dXJuIDE0fXJldHVybiAyfShyKSxlPWdhKHIsZSksbCl7Y2FzZSAwOm49Tm8obnVsbCxuLHIsZSx0KTticmVhayBlO2Nhc2UgMTpuPV9vKG51bGwsbixyLGUsdCk7YnJlYWsgZTtjYXNlIDExOm49U28obnVsbCxuLHIsZSx0KTticmVhayBlO2Nhc2UgMTQ6bj14byhudWxsLG4scixnYShyLnR5cGUsZSksdCk7YnJlYWsgZX10aHJvdyBFcnJvcihhKDMwNixyLCIiKSl9cmV0dXJuIG47Y2FzZSAwOnJldHVybiByPW4udHlwZSxsPW4ucGVuZGluZ1Byb3BzLE5vKGUsbixyLGw9bi5lbGVtZW50VHlwZT09PXI/bDpnYShyLGwpLHQpO2Nhc2UgMTpyZXR1cm4gcj1uLnR5cGUsbD1uLnBlbmRpbmdQcm9wcyxfbyhlLG4scixsPW4uZWxlbWVudFR5cGU9PT1yP2w6Z2EocixsKSx0KTtjYXNlIDM6ZTp7aWYoVG8obiksbnVsbD09PWUpdGhyb3cgRXJyb3IoYSgzODcpKTtyPW4ucGVuZGluZ1Byb3BzLGw9KHU9bi5tZW1vaXplZFN0YXRlKS5lbGVtZW50LE1hKGUsbiksT2EobixyLG51bGwsdCk7dmFyIG89bi5tZW1vaXplZFN0YXRlO2lmKHI9by5lbGVtZW50LHUuaXNEZWh5ZHJhdGVkKXtpZih1PXtlbGVtZW50OnIsaXNEZWh5ZHJhdGVkOiExLGNhY2hlOm8uY2FjaGUscGVuZGluZ1N1c3BlbnNlQm91bmRhcmllczpvLnBlbmRpbmdTdXNwZW5zZUJvdW5kYXJpZXMsdHJhbnNpdGlvbnM6by50cmFuc2l0aW9uc30sbi51cGRhdGVRdWV1ZS5iYXNlU3RhdGU9dSxuLm1lbW9pemVkU3RhdGU9dSwyNTYmbi5mbGFncyl7bj1MbyhlLG4scix0LGw9c28oRXJyb3IoYSg0MjMpKSxuKSk7YnJlYWsgZX1pZihyIT09bCl7bj1MbyhlLG4scix0LGw9c28oRXJyb3IoYSg0MjQpKSxuKSk7YnJlYWsgZX1mb3IocmE9c2wobi5zdGF0ZU5vZGUuY29udGFpbmVySW5mby5maXJzdENoaWxkKSx0YT1uLGxhPSEwLGFhPW51bGwsdD1HYShuLG51bGwscix0KSxuLmNoaWxkPXQ7dDspdC5mbGFncz0tMyZ0LmZsYWdzfDQwOTYsdD10LnNpYmxpbmd9ZWxzZXtpZihwYSgpLHI9PT1sKXtuPVFvKGUsbix0KTticmVhayBlfXdvKGUsbixyLHQpfW49bi5jaGlsZH1yZXR1cm4gbjtjYXNlIDU6cmV0dXJuIGF1KG4pLG51bGw9PT1lJiZzYShuKSxyPW4udHlwZSxsPW4ucGVuZGluZ1Byb3BzLHU9bnVsbCE9PWU/ZS5tZW1vaXplZFByb3BzOm51bGwsbz1sLmNoaWxkcmVuLHRsKHIsbCk/bz1udWxsOm51bGwhPT11JiZ0bChyLHUpJiYobi5mbGFnc3w9MzIpLHpvKGUsbiksd28oZSxuLG8sdCksbi5jaGlsZDtjYXNlIDY6cmV0dXJuIG51bGw9PT1lJiZzYShuKSxudWxsO2Nhc2UgMTM6cmV0dXJuIE9vKGUsbix0KTtjYXNlIDQ6cmV0dXJuIHJ1KG4sbi5zdGF0ZU5vZGUuY29udGFpbmVySW5mbykscj1uLnBlbmRpbmdQcm9wcyxudWxsPT09ZT9uLmNoaWxkPVhhKG4sbnVsbCxyLHQpOndvKGUsbixyLHQpLG4uY2hpbGQ7Y2FzZSAxMTpyZXR1cm4gcj1uLnR5cGUsbD1uLnBlbmRpbmdQcm9wcyxTbyhlLG4scixsPW4uZWxlbWVudFR5cGU9PT1yP2w6Z2EocixsKSx0KTtjYXNlIDc6cmV0dXJuIHdvKGUsbixuLnBlbmRpbmdQcm9wcyx0KSxuLmNoaWxkO2Nhc2UgODpjYXNlIDEyOnJldHVybiB3byhlLG4sbi5wZW5kaW5nUHJvcHMuY2hpbGRyZW4sdCksbi5jaGlsZDtjYXNlIDEwOmU6e2lmKHI9bi50eXBlLl9jb250ZXh0LGw9bi5wZW5kaW5nUHJvcHMsdT1uLm1lbW9pemVkUHJvcHMsbz1sLnZhbHVlLHpsKHZhLHIuX2N1cnJlbnRWYWx1ZSksci5fY3VycmVudFZhbHVlPW8sbnVsbCE9PXUpaWYob3IodS52YWx1ZSxvKSl7aWYodS5jaGlsZHJlbj09PWwuY2hpbGRyZW4mJiFQbC5jdXJyZW50KXtuPVFvKGUsbix0KTticmVhayBlfX1lbHNlIGZvcihudWxsIT09KHU9bi5jaGlsZCkmJih1LnJldHVybj1uKTtudWxsIT09dTspe3ZhciBpPXUuZGVwZW5kZW5jaWVzO2lmKG51bGwhPT1pKXtvPXUuY2hpbGQ7Zm9yKHZhciBzPWkuZmlyc3RDb250ZXh0O251bGwhPT1zOyl7aWYocy5jb250ZXh0PT09cil7CmlmKDE9PT11LnRhZyl7KHM9RmEoLTEsdCYtdCkpLnRhZz0yO3ZhciBjPXUudXBkYXRlUXVldWU7aWYobnVsbCE9PWMpe3ZhciBmPShjPWMuc2hhcmVkKS5wZW5kaW5nO251bGw9PT1mP3MubmV4dD1zOihzLm5leHQ9Zi5uZXh0LGYubmV4dD1zKSxjLnBlbmRpbmc9c319dS5sYW5lc3w9dCxudWxsIT09KHM9dS5hbHRlcm5hdGUpJiYocy5sYW5lc3w9dCkseGEodS5yZXR1cm4sdCxuKSxpLmxhbmVzfD10O2JyZWFrfXM9cy5uZXh0fX1lbHNlIGlmKDEwPT09dS50YWcpbz11LnR5cGU9PT1uLnR5cGU/bnVsbDp1LmNoaWxkO2Vsc2UgaWYoMTg9PT11LnRhZyl7aWYobnVsbD09PShvPXUucmV0dXJuKSl0aHJvdyBFcnJvcihhKDM0MSkpO28ubGFuZXN8PXQsbnVsbCE9PShpPW8uYWx0ZXJuYXRlKSYmKGkubGFuZXN8PXQpLHhhKG8sdCxuKSxvPXUuc2libGluZ31lbHNlIG89dS5jaGlsZDtpZihudWxsIT09bylvLnJldHVybj11O2Vsc2UgZm9yKG89dTtudWxsIT09bzspe2lmKG89PT1uKXtvPW51bGw7YnJlYWt9aWYobnVsbCE9PSh1PW8uc2libGluZykpe3UucmV0dXJuPW8ucmV0dXJuLG89dTticmVha31vPW8ucmV0dXJufXU9b313byhlLG4sbC5jaGlsZHJlbix0KSxuPW4uY2hpbGR9cmV0dXJuIG47Y2FzZSA5OnJldHVybiBsPW4udHlwZSxyPW4ucGVuZGluZ1Byb3BzLmNoaWxkcmVuLEVhKG4sdCkscj1yKGw9Q2EobCkpLG4uZmxhZ3N8PTEsd28oZSxuLHIsdCksbi5jaGlsZDtjYXNlIDE0OnJldHVybiBsPWdhKHI9bi50eXBlLG4ucGVuZGluZ1Byb3BzKSx4byhlLG4scixsPWdhKHIudHlwZSxsKSx0KTtjYXNlIDE1OnJldHVybiBFbyhlLG4sbi50eXBlLG4ucGVuZGluZ1Byb3BzLHQpO2Nhc2UgMTc6cmV0dXJuIHI9bi50eXBlLGw9bi5wZW5kaW5nUHJvcHMsbD1uLmVsZW1lbnRUeXBlPT09cj9sOmdhKHIsbCksSG8oZSxuKSxuLnRhZz0xLE1sKHIpPyhlPSEwLElsKG4pKTplPSExLEVhKG4sdCksSGEobixyLGwpLGphKG4scixsLHQpLFBvKG51bGwsbixyLCEwLGUsdCk7Y2FzZSAxOTpyZXR1cm4gV28oZSxuLHQpO2Nhc2UgMjI6cmV0dXJuIENvKGUsbix0KX10aHJvdyBFcnJvcihhKDE1NixuLnRhZykpfTt2YXIgcXM9ImZ1bmN0aW9uIj09dHlwZW9mIHJlcG9ydEVycm9yP3JlcG9ydEVycm9yOmZ1bmN0aW9uKGUpe2NvbnNvbGUuZXJyb3IoZSl9O2Z1bmN0aW9uIEtzKGUpe3RoaXMuX2ludGVybmFsUm9vdD1lfWZ1bmN0aW9uIFlzKGUpe3RoaXMuX2ludGVybmFsUm9vdD1lfWZ1bmN0aW9uIFhzKGUpe3JldHVybiEoIWV8fDEhPT1lLm5vZGVUeXBlJiY5IT09ZS5ub2RlVHlwZSYmMTEhPT1lLm5vZGVUeXBlKX1mdW5jdGlvbiBHcyhlKXtyZXR1cm4hKCFlfHwxIT09ZS5ub2RlVHlwZSYmOSE9PWUubm9kZVR5cGUmJjExIT09ZS5ub2RlVHlwZSYmKDghPT1lLm5vZGVUeXBlfHwiIHJlYWN0LW1vdW50LXBvaW50LXVuc3RhYmxlICIhPT1lLm5vZGVWYWx1ZSkpfWZ1bmN0aW9uIFpzKCl7fWZ1bmN0aW9uIEpzKGUsbix0LHIsbCl7dmFyIGE9dC5fcmVhY3RSb290Q29udGFpbmVyO2lmKGEpe3ZhciB1PWE7aWYoImZ1bmN0aW9uIj09dHlwZW9mIGwpe3ZhciBvPWw7bD1mdW5jdGlvbigpe3ZhciBlPVFzKHUpO28uY2FsbChlKX19SHMobix1LGUsbCl9ZWxzZSB1PWZ1bmN0aW9uKGUsbix0LHIsbCl7aWYobCl7aWYoImZ1bmN0aW9uIj09dHlwZW9mIHIpe3ZhciBhPXI7cj1mdW5jdGlvbigpe3ZhciBlPVFzKHUpO2EuY2FsbChlKX19dmFyIHU9V3MobixyLGUsMCxudWxsLCExLDAsIiIsWnMpO3JldHVybiBlLl9yZWFjdFJvb3RDb250YWluZXI9dSxlW21sXT11LmN1cnJlbnQsV3IoOD09PWUubm9kZVR5cGU/ZS5wYXJlbnROb2RlOmUpLGNzKCksdX1mb3IoO2w9ZS5sYXN0Q2hpbGQ7KWUucmVtb3ZlQ2hpbGQobCk7aWYoImZ1bmN0aW9uIj09dHlwZW9mIHIpe3ZhciBvPXI7cj1mdW5jdGlvbigpe3ZhciBlPVFzKGkpO28uY2FsbChlKX19dmFyIGk9QXMoZSwwLCExLG51bGwsMCwhMSwwLCIiLFpzKTtyZXR1cm4gZS5fcmVhY3RSb290Q29udGFpbmVyPWksZVttbF09aS5jdXJyZW50LFdyKDg9PT1lLm5vZGVUeXBlP2UucGFyZW50Tm9kZTplKSxjcygoZnVuY3Rpb24oKXtIcyhuLGksdCxyKX0pKSxpfSh0LG4sZSxsLHIpO3JldHVybiBRcyh1KX1Zcy5wcm90b3R5cGUucmVuZGVyPUtzLnByb3RvdHlwZS5yZW5kZXI9ZnVuY3Rpb24oZSl7dmFyIG49dGhpcy5faW50ZXJuYWxSb290O2lmKG51bGw9PT1uKXRocm93IEVycm9yKGEoNDA5KSk7SHMoZSxuLG51bGwsbnVsbCl9LFlzLnByb3RvdHlwZS51bm1vdW50PUtzLnByb3RvdHlwZS51bm1vdW50PWZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5faW50ZXJuYWxSb290O2lmKG51bGwhPT1lKXt0aGlzLl9pbnRlcm5hbFJvb3Q9bnVsbDt2YXIgbj1lLmNvbnRhaW5lckluZm87Y3MoKGZ1bmN0aW9uKCl7SHMobnVsbCxlLG51bGwsbnVsbCl9KSksblttbF09bnVsbH19LFlzLnByb3RvdHlwZS51bnN0YWJsZV9zY2hlZHVsZUh5ZHJhdGlvbj1mdW5jdGlvbihlKXtpZihlKXt2YXIgbj1DbigpO2U9e2Jsb2NrZWRPbjpudWxsLHRhcmdldDplLHByaW9yaXR5Om59O2Zvcih2YXIgdD0wO3Q8Um4ubGVuZ3RoJiYwIT09biYmbjxSblt0XS5wcmlvcml0eTt0KyspO1JuLnNwbGljZSh0LDAsZSksMD09PXQmJlVuKGUpfX0sU249ZnVuY3Rpb24oZSl7c3dpdGNoKGUudGFnKXtjYXNlIDM6dmFyIG49ZS5zdGF0ZU5vZGU7aWYobi5jdXJyZW50Lm1lbW9pemVkU3RhdGUuaXNEZWh5ZHJhdGVkKXt2YXIgdD1kbihuLnBlbmRpbmdMYW5lcyk7MCE9PXQmJihibihuLDF8dCkscnMobixHZSgpKSwhKDYmX2kpJiYoV2k9R2UoKSs1MDAsV2woKSkpfWJyZWFrO2Nhc2UgMTM6Y3MoKGZ1bmN0aW9uKCl7dmFyIG49UGEoZSwxKTtpZihudWxsIT09bil7dmFyIHQ9ZXMoKTt0cyhuLGUsMSx0KX19KSksJHMoZSwxKX19LHhuPWZ1bmN0aW9uKGUpe2lmKDEzPT09ZS50YWcpe3ZhciBuPVBhKGUsMTM0MjE3NzI4KTtpZihudWxsIT09bil0cyhuLGUsMTM0MjE3NzI4LGVzKCkpOyRzKGUsMTM0MjE3NzI4KX19LEVuPWZ1bmN0aW9uKGUpe2lmKDEzPT09ZS50YWcpe3ZhciBuPW5zKGUpLHQ9UGEoZSxuKQo7aWYobnVsbCE9PXQpdHModCxlLG4sZXMoKSk7JHMoZSxuKX19LENuPWZ1bmN0aW9uKCl7cmV0dXJuIGtufSx6bj1mdW5jdGlvbihlLG4pe3ZhciB0PWtuO3RyeXtyZXR1cm4ga249ZSxuKCl9ZmluYWxseXtrbj10fX0sU2U9ZnVuY3Rpb24oZSxuLHQpe3N3aXRjaChuKXtjYXNlImlucHV0IjppZihaKGUsdCksbj10Lm5hbWUsInJhZGlvIj09PXQudHlwZSYmbnVsbCE9bil7Zm9yKHQ9ZTt0LnBhcmVudE5vZGU7KXQ9dC5wYXJlbnROb2RlO2Zvcih0PXQucXVlcnlTZWxlY3RvckFsbCgiaW5wdXRbbmFtZT0iK0pTT04uc3RyaW5naWZ5KCIiK24pKyddW3R5cGU9InJhZGlvIl0nKSxuPTA7bjx0Lmxlbmd0aDtuKyspe3ZhciByPXRbbl07aWYociE9PWUmJnIuZm9ybT09PWUuZm9ybSl7dmFyIGw9d2wocik7aWYoIWwpdGhyb3cgRXJyb3IoYSg5MCkpO3EociksWihyLGwpfX19YnJlYWs7Y2FzZSJ0ZXh0YXJlYSI6YWUoZSx0KTticmVhaztjYXNlInNlbGVjdCI6bnVsbCE9KG49dC52YWx1ZSkmJnRlKGUsISF0Lm11bHRpcGxlLG4sITEpfX0sX2U9c3MsUGU9Y3M7dmFyIGVjPXt1c2luZ0NsaWVudEVudHJ5UG9pbnQ6ITEsRXZlbnRzOltibCxrbCx3bCx6ZSxOZSxzc119LG5jPXtmaW5kRmliZXJCeUhvc3RJbnN0YW5jZTp5bCxidW5kbGVUeXBlOjAsdmVyc2lvbjoiMTguMi4wIixyZW5kZXJlclBhY2thZ2VOYW1lOiJyZWFjdC1kb20ifSx0Yz17YnVuZGxlVHlwZTpuYy5idW5kbGVUeXBlLHZlcnNpb246bmMudmVyc2lvbixyZW5kZXJlclBhY2thZ2VOYW1lOm5jLnJlbmRlcmVyUGFja2FnZU5hbWUscmVuZGVyZXJDb25maWc6bmMucmVuZGVyZXJDb25maWcsb3ZlcnJpZGVIb29rU3RhdGU6bnVsbCxvdmVycmlkZUhvb2tTdGF0ZURlbGV0ZVBhdGg6bnVsbCxvdmVycmlkZUhvb2tTdGF0ZVJlbmFtZVBhdGg6bnVsbCxvdmVycmlkZVByb3BzOm51bGwsb3ZlcnJpZGVQcm9wc0RlbGV0ZVBhdGg6bnVsbCxvdmVycmlkZVByb3BzUmVuYW1lUGF0aDpudWxsLHNldEVycm9ySGFuZGxlcjpudWxsLHNldFN1c3BlbnNlSGFuZGxlcjpudWxsLHNjaGVkdWxlVXBkYXRlOm51bGwsY3VycmVudERpc3BhdGNoZXJSZWY6ay5SZWFjdEN1cnJlbnREaXNwYXRjaGVyLGZpbmRIb3N0SW5zdGFuY2VCeUZpYmVyOmZ1bmN0aW9uKGUpe3JldHVybiBudWxsPT09KGU9amUoZSkpP251bGw6ZS5zdGF0ZU5vZGV9LGZpbmRGaWJlckJ5SG9zdEluc3RhbmNlOm5jLmZpbmRGaWJlckJ5SG9zdEluc3RhbmNlfHxmdW5jdGlvbigpe3JldHVybiBudWxsfSxmaW5kSG9zdEluc3RhbmNlc0ZvclJlZnJlc2g6bnVsbCxzY2hlZHVsZVJlZnJlc2g6bnVsbCxzY2hlZHVsZVJvb3Q6bnVsbCxzZXRSZWZyZXNoSGFuZGxlcjpudWxsLGdldEN1cnJlbnRGaWJlcjpudWxsLHJlY29uY2lsZXJWZXJzaW9uOiIxOC4yLjAtbmV4dC05ZTNiNzcyYjgtMjAyMjA2MDgifTtpZigidW5kZWZpbmVkIiE9dHlwZW9mIF9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXyl7dmFyIHJjPV9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXztpZighcmMuaXNEaXNhYmxlZCYmcmMuc3VwcG9ydHNGaWJlcil0cnl7bG49cmMuaW5qZWN0KHRjKSxhbj1yY31jYXRjaChjZSl7fX1uLl9fU0VDUkVUX0lOVEVSTkFMU19ET19OT1RfVVNFX09SX1lPVV9XSUxMX0JFX0ZJUkVEPWVjLG4uY3JlYXRlUG9ydGFsPWZ1bmN0aW9uKGUsbil7dmFyIHQ9Mjxhcmd1bWVudHMubGVuZ3RoJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0/YXJndW1lbnRzWzJdOm51bGw7aWYoIVhzKG4pKXRocm93IEVycm9yKGEoMjAwKSk7cmV0dXJuIGZ1bmN0aW9uKGUsbix0KXt2YXIgcj0zPGFyZ3VtZW50cy5sZW5ndGgmJnZvaWQgMCE9PWFyZ3VtZW50c1szXT9hcmd1bWVudHNbM106bnVsbDtyZXR1cm57JCR0eXBlb2Y6UyxrZXk6bnVsbD09cj9udWxsOiIiK3IsY2hpbGRyZW46ZSxjb250YWluZXJJbmZvOm4saW1wbGVtZW50YXRpb246dH19KGUsbixudWxsLHQpfSxuLmNyZWF0ZVJvb3Q9ZnVuY3Rpb24oZSxuKXtpZighWHMoZSkpdGhyb3cgRXJyb3IoYSgyOTkpKTt2YXIgdD0hMSxyPSIiLGw9cXM7cmV0dXJuIG51bGwhPW4mJighMD09PW4udW5zdGFibGVfc3RyaWN0TW9kZSYmKHQ9ITApLHZvaWQgMCE9PW4uaWRlbnRpZmllclByZWZpeCYmKHI9bi5pZGVudGlmaWVyUHJlZml4KSx2b2lkIDAhPT1uLm9uUmVjb3ZlcmFibGVFcnJvciYmKGw9bi5vblJlY292ZXJhYmxlRXJyb3IpKSxuPUFzKGUsMSwhMSxudWxsLDAsdCwwLHIsbCksZVttbF09bi5jdXJyZW50LFdyKDg9PT1lLm5vZGVUeXBlP2UucGFyZW50Tm9kZTplKSxuZXcgS3Mobil9LG4uZmluZERPTU5vZGU9ZnVuY3Rpb24oZSl7aWYobnVsbD09ZSlyZXR1cm4gbnVsbDtpZigxPT09ZS5ub2RlVHlwZSlyZXR1cm4gZTt2YXIgbj1lLl9yZWFjdEludGVybmFscztpZih2b2lkIDA9PT1uKXtpZigiZnVuY3Rpb24iPT10eXBlb2YgZS5yZW5kZXIpdGhyb3cgRXJyb3IoYSgxODgpKTt0aHJvdyBlPU9iamVjdC5rZXlzKGUpLmpvaW4oIiwiKSxFcnJvcihhKDI2OCxlKSl9cmV0dXJuIGU9bnVsbD09PShlPWplKG4pKT9udWxsOmUuc3RhdGVOb2RlfSxuLmZsdXNoU3luYz1mdW5jdGlvbihlKXtyZXR1cm4gY3MoZSl9LG4uaHlkcmF0ZT1mdW5jdGlvbihlLG4sdCl7aWYoIUdzKG4pKXRocm93IEVycm9yKGEoMjAwKSk7cmV0dXJuIEpzKG51bGwsZSxuLCEwLHQpfSxuLmh5ZHJhdGVSb290PWZ1bmN0aW9uKGUsbix0KXtpZighWHMoZSkpdGhyb3cgRXJyb3IoYSg0MDUpKTt2YXIgcj1udWxsIT10JiZ0Lmh5ZHJhdGVkU291cmNlc3x8bnVsbCxsPSExLHU9IiIsbz1xcztpZihudWxsIT10JiYoITA9PT10LnVuc3RhYmxlX3N0cmljdE1vZGUmJihsPSEwKSx2b2lkIDAhPT10LmlkZW50aWZpZXJQcmVmaXgmJih1PXQuaWRlbnRpZmllclByZWZpeCksdm9pZCAwIT09dC5vblJlY292ZXJhYmxlRXJyb3ImJihvPXQub25SZWNvdmVyYWJsZUVycm9yKSksbj1XcyhuLG51bGwsZSwxLG51bGwhPXQ/dDpudWxsLGwsMCx1LG8pLGVbbWxdPW4uY3VycmVudCxXcihlKSxyKWZvcihlPTA7ZTxyLmxlbmd0aDtlKyspbD0obD0odD1yW2VdKS5fZ2V0VmVyc2lvbikodC5fc291cmNlKSwKbnVsbD09bi5tdXRhYmxlU291cmNlRWFnZXJIeWRyYXRpb25EYXRhP24ubXV0YWJsZVNvdXJjZUVhZ2VySHlkcmF0aW9uRGF0YT1bdCxsXTpuLm11dGFibGVTb3VyY2VFYWdlckh5ZHJhdGlvbkRhdGEucHVzaCh0LGwpO3JldHVybiBuZXcgWXMobil9LG4ucmVuZGVyPWZ1bmN0aW9uKGUsbix0KXtpZighR3MobikpdGhyb3cgRXJyb3IoYSgyMDApKTtyZXR1cm4gSnMobnVsbCxlLG4sITEsdCl9LG4udW5tb3VudENvbXBvbmVudEF0Tm9kZT1mdW5jdGlvbihlKXtpZighR3MoZSkpdGhyb3cgRXJyb3IoYSg0MCkpO3JldHVybiEhZS5fcmVhY3RSb290Q29udGFpbmVyJiYoY3MoKGZ1bmN0aW9uKCl7SnMobnVsbCxudWxsLGUsITEsKGZ1bmN0aW9uKCl7ZS5fcmVhY3RSb290Q29udGFpbmVyPW51bGwsZVttbF09bnVsbH0pKX0pKSwhMCl9LG4udW5zdGFibGVfYmF0Y2hlZFVwZGF0ZXM9c3Msbi51bnN0YWJsZV9yZW5kZXJTdWJ0cmVlSW50b0NvbnRhaW5lcj1mdW5jdGlvbihlLG4sdCxyKXtpZighR3ModCkpdGhyb3cgRXJyb3IoYSgyMDApKTtpZihudWxsPT1lfHx2b2lkIDA9PT1lLl9yZWFjdEludGVybmFscyl0aHJvdyBFcnJvcihhKDM4KSk7cmV0dXJuIEpzKGUsbix0LCExLHIpfSxuLnZlcnNpb249IjE4LjIuMC1uZXh0LTllM2I3NzJiOC0yMDIyMDYwOCJ9LDUwODIwNyhlLG4pe2Z1bmN0aW9uIHQoZSxuKXt2YXIgdD1lLmxlbmd0aDtlLnB1c2gobik7ZTpmb3IoOzA8dDspe3ZhciByPXQtMT4+PjEsbD1lW3JdO2lmKCEoMDxhKGwsbikpKWJyZWFrIGU7ZVtyXT1uLGVbdF09bCx0PXJ9fWZ1bmN0aW9uIHIoZSl7cmV0dXJuIDA9PT1lLmxlbmd0aD9udWxsOmVbMF19ZnVuY3Rpb24gbChlKXtpZigwPT09ZS5sZW5ndGgpcmV0dXJuIG51bGw7dmFyIG49ZVswXSx0PWUucG9wKCk7aWYodCE9PW4pe2VbMF09dDtlOmZvcih2YXIgcj0wLGw9ZS5sZW5ndGgsdT1sPj4+MTtyPHU7KXt2YXIgbz0yKihyKzEpLTEsaT1lW29dLHM9bysxLGM9ZVtzXTtpZigwPmEoaSx0KSlzPGwmJjA+YShjLGkpPyhlW3JdPWMsZVtzXT10LHI9cyk6KGVbcl09aSxlW29dPXQscj1vKTtlbHNle2lmKCEoczxsJiYwPmEoYyx0KSkpYnJlYWsgZTtlW3JdPWMsZVtzXT10LHI9c319fXJldHVybiBufWZ1bmN0aW9uIGEoZSxuKXt2YXIgdD1lLnNvcnRJbmRleC1uLnNvcnRJbmRleDtyZXR1cm4gMCE9PXQ/dDplLmlkLW4uaWR9aWYoIm9iamVjdCI9PXR5cGVvZiBwZXJmb3JtYW5jZSYmImZ1bmN0aW9uIj09dHlwZW9mIHBlcmZvcm1hbmNlLm5vdyl7dmFyIHU9cGVyZm9ybWFuY2U7bi51bnN0YWJsZV9ub3c9ZnVuY3Rpb24oKXtyZXR1cm4gdS5ub3coKX19ZWxzZXt2YXIgbz1EYXRlLGk9by5ub3coKTtuLnVuc3RhYmxlX25vdz1mdW5jdGlvbigpe3JldHVybiBvLm5vdygpLWl9fXZhciBzPVtdLGM9W10sZj0xLGQ9bnVsbCxwPTMsbT0hMSxoPSExLGc9ITEsdj0iZnVuY3Rpb24iPT10eXBlb2Ygc2V0VGltZW91dD9zZXRUaW1lb3V0Om51bGwseT0iZnVuY3Rpb24iPT10eXBlb2YgY2xlYXJUaW1lb3V0P2NsZWFyVGltZW91dDpudWxsLGI9InVuZGVmaW5lZCIhPXR5cGVvZiBzZXRJbW1lZGlhdGU/c2V0SW1tZWRpYXRlOm51bGw7ZnVuY3Rpb24gayhlKXtmb3IodmFyIG49cihjKTtudWxsIT09bjspe2lmKG51bGw9PT1uLmNhbGxiYWNrKWwoYyk7ZWxzZXtpZighKG4uc3RhcnRUaW1lPD1lKSlicmVhaztsKGMpLG4uc29ydEluZGV4PW4uZXhwaXJhdGlvblRpbWUsdChzLG4pfW49cihjKX19ZnVuY3Rpb24gdyhlKXtpZihnPSExLGsoZSksIWgpaWYobnVsbCE9PXIocykpaD0hMCxGKFMpO2Vsc2V7dmFyIG49cihjKTtudWxsIT09biYmUih3LG4uc3RhcnRUaW1lLWUpfX1mdW5jdGlvbiBTKGUsdCl7aD0hMSxnJiYoZz0hMSx5KHopLHo9LTEpLG09ITA7dmFyIGE9cDt0cnl7Zm9yKGsodCksZD1yKHMpO251bGwhPT1kJiYoIShkLmV4cGlyYXRpb25UaW1lPnQpfHxlJiYhUCgpKTspe3ZhciB1PWQuY2FsbGJhY2s7aWYoImZ1bmN0aW9uIj09dHlwZW9mIHUpe2QuY2FsbGJhY2s9bnVsbCxwPWQucHJpb3JpdHlMZXZlbDt2YXIgbz11KGQuZXhwaXJhdGlvblRpbWU8PXQpO3Q9bi51bnN0YWJsZV9ub3coKSwiZnVuY3Rpb24iPT10eXBlb2Ygbz9kLmNhbGxiYWNrPW86ZD09PXIocykmJmwocyksayh0KX1lbHNlIGwocyk7ZD1yKHMpfWlmKG51bGwhPT1kKXZhciBpPSEwO2Vsc2V7dmFyIGY9cihjKTtudWxsIT09ZiYmUih3LGYuc3RhcnRUaW1lLXQpLGk9ITF9cmV0dXJuIGl9ZmluYWxseXtkPW51bGwscD1hLG09ITF9fSJ1bmRlZmluZWQiIT10eXBlb2YgbmF2aWdhdG9yJiZ2b2lkIDAhPT1uYXZpZ2F0b3Iuc2NoZWR1bGluZyYmdm9pZCAwIT09bmF2aWdhdG9yLnNjaGVkdWxpbmcuaXNJbnB1dFBlbmRpbmcmJm5hdmlnYXRvci5zY2hlZHVsaW5nLmlzSW5wdXRQZW5kaW5nLmJpbmQobmF2aWdhdG9yLnNjaGVkdWxpbmcpO3ZhciB4LEU9ITEsQz1udWxsLHo9LTEsTj01LF89LTE7ZnVuY3Rpb24gUCgpe3JldHVybiEobi51bnN0YWJsZV9ub3coKS1fPE4pfWZ1bmN0aW9uIFQoKXtpZihudWxsIT09Qyl7dmFyIGU9bi51bnN0YWJsZV9ub3coKTtfPWU7dmFyIHQ9ITA7dHJ5e3Q9QyghMCxlKX1maW5hbGx5e3Q/eCgpOihFPSExLEM9bnVsbCl9fWVsc2UgRT0hMX1pZigiZnVuY3Rpb24iPT10eXBlb2YgYil4PWZ1bmN0aW9uKCl7YihUKX07ZWxzZSBpZigidW5kZWZpbmVkIiE9dHlwZW9mIE1lc3NhZ2VDaGFubmVsKXt2YXIgTD1uZXcgTWVzc2FnZUNoYW5uZWwsTT1MLnBvcnQyO0wucG9ydDEub25tZXNzYWdlPVQseD1mdW5jdGlvbigpe00ucG9zdE1lc3NhZ2UobnVsbCl9fWVsc2UgeD1mdW5jdGlvbigpe3YoVCwwKX07ZnVuY3Rpb24gRihlKXtDPWUsRXx8KEU9ITAseCgpKX1mdW5jdGlvbiBSKGUsdCl7ej12KChmdW5jdGlvbigpe2Uobi51bnN0YWJsZV9ub3coKSl9KSx0KX1uLnVuc3RhYmxlX0lkbGVQcmlvcml0eT01LG4udW5zdGFibGVfSW1tZWRpYXRlUHJpb3JpdHk9MSxuLnVuc3RhYmxlX0xvd1ByaW9yaXR5PTQsbi51bnN0YWJsZV9Ob3JtYWxQcmlvcml0eT0zLG4udW5zdGFibGVfUHJvZmlsaW5nPW51bGwsbi51bnN0YWJsZV9Vc2VyQmxvY2tpbmdQcmlvcml0eT0yLApuLnVuc3RhYmxlX2NhbmNlbENhbGxiYWNrPWZ1bmN0aW9uKGUpe2UuY2FsbGJhY2s9bnVsbH0sbi51bnN0YWJsZV9jb250aW51ZUV4ZWN1dGlvbj1mdW5jdGlvbigpe2h8fG18fChoPSEwLEYoUykpfSxuLnVuc3RhYmxlX2ZvcmNlRnJhbWVSYXRlPWZ1bmN0aW9uKGUpezA+ZXx8MTI1PGU/Y29uc29sZS5lcnJvcigiZm9yY2VGcmFtZVJhdGUgdGFrZXMgYSBwb3NpdGl2ZSBpbnQgYmV0d2VlbiAwIGFuZCAxMjUsIGZvcmNpbmcgZnJhbWUgcmF0ZXMgaGlnaGVyIHRoYW4gMTI1IGZwcyBpcyBub3Qgc3VwcG9ydGVkIik6Tj0wPGU/TWF0aC5mbG9vcigxZTMvZSk6NX0sbi51bnN0YWJsZV9nZXRDdXJyZW50UHJpb3JpdHlMZXZlbD1mdW5jdGlvbigpe3JldHVybiBwfSxuLnVuc3RhYmxlX2dldEZpcnN0Q2FsbGJhY2tOb2RlPWZ1bmN0aW9uKCl7cmV0dXJuIHIocyl9LG4udW5zdGFibGVfbmV4dD1mdW5jdGlvbihlKXtzd2l0Y2gocCl7Y2FzZSAxOmNhc2UgMjpjYXNlIDM6dmFyIG49MzticmVhaztkZWZhdWx0Om49cH12YXIgdD1wO3A9bjt0cnl7cmV0dXJuIGUoKX1maW5hbGx5e3A9dH19LG4udW5zdGFibGVfcGF1c2VFeGVjdXRpb249ZnVuY3Rpb24oKXt9LG4udW5zdGFibGVfcmVxdWVzdFBhaW50PWZ1bmN0aW9uKCl7fSxuLnVuc3RhYmxlX3J1bldpdGhQcmlvcml0eT1mdW5jdGlvbihlLG4pe3N3aXRjaChlKXtjYXNlIDE6Y2FzZSAyOmNhc2UgMzpjYXNlIDQ6Y2FzZSA1OmJyZWFrO2RlZmF1bHQ6ZT0zfXZhciB0PXA7cD1lO3RyeXtyZXR1cm4gbigpfWZpbmFsbHl7cD10fX0sbi51bnN0YWJsZV9zY2hlZHVsZUNhbGxiYWNrPWZ1bmN0aW9uKGUsbCxhKXt2YXIgdT1uLnVuc3RhYmxlX25vdygpO3N3aXRjaCgib2JqZWN0Ij09dHlwZW9mIGEmJm51bGwhPT1hP2E9Im51bWJlciI9PXR5cGVvZihhPWEuZGVsYXkpJiYwPGE/dSthOnU6YT11LGUpe2Nhc2UgMTp2YXIgbz0tMTticmVhaztjYXNlIDI6bz0yNTA7YnJlYWs7Y2FzZSA1Om89MTA3Mzc0MTgyMzticmVhaztjYXNlIDQ6bz0xZTQ7YnJlYWs7ZGVmYXVsdDpvPTVlM31yZXR1cm4gZT17aWQ6ZisrLGNhbGxiYWNrOmwscHJpb3JpdHlMZXZlbDplLHN0YXJ0VGltZTphLGV4cGlyYXRpb25UaW1lOm89YStvLHNvcnRJbmRleDotMX0sYT51PyhlLnNvcnRJbmRleD1hLHQoYyxlKSxudWxsPT09cihzKSYmZT09PXIoYykmJihnPyh5KHopLHo9LTEpOmc9ITAsUih3LGEtdSkpKTooZS5zb3J0SW5kZXg9byx0KHMsZSksaHx8bXx8KGg9ITAsRihTKSkpLGV9LG4udW5zdGFibGVfc2hvdWxkWWllbGQ9UCxuLnVuc3RhYmxlX3dyYXBDYWxsYmFjaz1mdW5jdGlvbihlKXt2YXIgbj1wO3JldHVybiBmdW5jdGlvbigpe3ZhciB0PXA7cD1uO3RyeXtyZXR1cm4gZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZmluYWxseXtwPXR9fX19LDE4MjYxNChlLG4sdCl7ZS5leHBvcnRzPXQoNTA4MjA3KX19XSk7"}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/38479.26e2d53c04100ea4016c.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:13.981Z","timestamp":1785148033981,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/38479.26e2d53c04100ea4016c.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:13 GMT\r\ncontent-type: text/css; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding, Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\netag: W/\"69f98b73-a27\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Tue, 05 May 2026 06:17:23 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.51\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 05/05/2026 10:16:50\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: f4d0bd2fb9fa0cf7920cff0da5ff4f3f\r\ncdn-cache: HIT\r\ncontent-encoding: br\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":2599,"size_decoded":1746,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with very long lines (2599), with no line terminators","md5":"2864438c102c068742e4b5c411ac9c23","sha1":"2aa8e46269a88be8e00fabd577dc1bde458ced2d","sha256":"4eb43a7af5fb7d64d320e0b92a1d7c13567e9f7b6a2697db1ebc008ee317295b","sha512":"96edfafe23de4d462c20fab11631ea38e59b72c8fcec0e06cb002f609671f2d123086d418792787a507b6bd0afa7024fee62b97d8ffa7aaad056cc6d0bf7b941","ssdeep":"","tlshash":"8f513f79dbc2203abe63d1393b40c78e87a468429d334fdfe9c1712181c36f90a69e61","first_seen":"2026-05-01T03:41:17.611043Z","last_seen":"2026-07-27T12:07:26.401378Z","times_seen":60,"resource_available":false,"data":"W2RhdGEtdGhlbWU9bGlnaHRdey0tXzAtQmszXzp2YXIoLS1jb2xvci13aGl0ZSk7LS1fMS1CazNfOnZhcigtLWNvbG9yLWNvbGQtZ3JheS05MDApOy0tXzItQmszXzp2YXIoLS1jb2xvci1jb2xkLWdyYXktMjAwKX1bZGF0YS10aGVtZT1kYXJrXXstLV8wLUJrM186dmFyKC0tY29sb3ItYmxhY2spOy0tXzEtQmszXzp2YXIoLS1jb2xvci1jb2xkLWdyYXktMjAwKTstLV8yLUJrM186dmFyKC0tY29sb3ItY29sZC1ncmF5LTY1MCl9Lm9wYWNpdHktRW5XdHM3WHV7YWxpZ24taXRlbXM6Y2VudGVyO2Rpc3BsYXk6ZmxleH0ub3BhY2l0eVNsaWRlci1Fbld0czdYdXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLV8wLUJrM18pO2JhY2tncm91bmQtaW1hZ2U6dXJsKG9wYWNpdHktcGF0dGVybi40ZDhmYmI1NTJkZGUzZGIyNmY0YS5zdmcpO2JhY2tncm91bmQtcG9zaXRpb246MXB4O2JvcmRlci1yYWRpdXM6NXB4O2ZsZXg6MSAwIGF1dG87aGVpZ2h0OjEwcHg7cG9zaXRpb246cmVsYXRpdmV9Lm9wYWNpdHlTbGlkZXItRW5XdHM3WHU6ZGlyKHJ0bCl7YmFja2dyb3VuZC1wb3NpdGlvbjpyaWdodCAxcHggdG9wIDUwJX0ub3BhY2l0eVNsaWRlckdyYWRpZW50LUVuV3RzN1h1e2JhY2tncm91bmQtY29sb3I6aW5pdGlhbDtiYWNrZ3JvdW5kLWltYWdlOmxpbmVhci1ncmFkaWVudCg5MGRlZywjMDAwMCxjdXJyZW50Q29sb3IpO2JvcmRlcjoxcHggc29saWQ7Ym9yZGVyLXJhZGl1czo0cHg7Ym94LXNpemluZzpib3JkZXItYm94O2NvbG9yOmluaGVyaXQ7ZGlzcGxheTpibG9jaztoZWlnaHQ6MTAwJTt3aWR0aDoxMDAlfS5vcGFjaXR5U2xpZGVyR3JhZGllbnQtRW5XdHM3WHU6ZGlyKHJ0bCl7YmFja2dyb3VuZC1pbWFnZTpsaW5lYXItZ3JhZGllbnQoMjcwZGVnLCMwMDAwLGN1cnJlbnRDb2xvcil9LnBvaW50ZXItRW5XdHM3WHV7YmFja2dyb3VuZC1jb2xvcjppbml0aWFsO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItY29udGFpbmVyLWZpbGwtcHJpbWFyeS1pbnZlcnNlKTtib3JkZXI6MnB4IHNvbGlkIHZhcigtLWNvbG9yLWJvcmRlci1wcmltYXJ5LW5ldXRyYWwtZXh0cmEtaGVhdnkpO2JvcmRlci1yYWRpdXM6NTAlO2JveC1zaGFkb3c6MCAxcHggMnB4ICMwMDAwMDA4MDtib3gtc2l6aW5nOmJvcmRlci1ib3g7aGVpZ2h0OjEycHg7bWFyZ2luLWJsb2NrOi0xcHggMDttYXJnaW4taW5saW5lOjAgMDtwb3NpdGlvbjphYnNvbHV0ZTt0cmFuc2l0aW9uOmluc2V0LWlubGluZS1zdGFydCAuMXMsaW5zZXQtaW5saW5lLXN0YXJ0IC4xcyx0b3AgLjFzO3dpZHRoOjEycHh9LnBvaW50ZXItRW5XdHM3WHUuZHJhZ2dlZC1Fbld0czdYdXt0cmFuc2l0aW9uOmluc2V0LWlubGluZS1zdGFydCAwc30ub3BhY2l0eVBvaW50ZXJXcmFwLUVuV3RzN1h1e2xlZnQ6MDtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDt3aWR0aDpjYWxjKDEwMCUgLSAxMnB4KX0ub3BhY2l0eUlucHV0V3JhcC1Fbld0czdYdXthbGlnbi1pdGVtczpjZW50ZXI7Y29sb3I6dmFyKC0tXzEtQmszXyk7ZGlzcGxheTpmbGV4O3Bvc2l0aW9uOnJlbGF0aXZlfS5vcGFjaXR5SW5wdXQtRW5XdHM3WHV7YmFja2dyb3VuZC1jb2xvcjppbml0aWFsO2JvcmRlcjoxcHggc29saWQgdmFyKC0tXzItQmszXyk7Ym9yZGVyLXJhZGl1czo0cHg7Ym94LXNpemluZzpib3JkZXItYm94O2Rpc3BsYXk6ZmxleDtoZWlnaHQ6MjZweDtsaW5lLWhlaWdodDoyNHB4O21hcmdpbi1pbmxpbmUtc3RhcnQ6OHB4O3BhZGRpbmc6MCA1cHg7cGFkZGluZy1pbmxpbmUtZW5kOjE0cHg7dGV4dC1hbGlnbjplbmQ7d2lkdGg6NDdweH0ub3BhY2l0eUlucHV0LUVuV3RzN1h1OmZvY3Vze2JvcmRlci1jb2xvcjp2YXIoLS1jb2xvci1icmFuZCl9Lm9wYWNpdHlJbnB1dFBlcmNlbnQtRW5XdHM3WHV7aW5zZXQtaW5saW5lLXN0YXJ0OjQwcHg7cG9pbnRlci1ldmVudHM6bm9uZTtwb3NpdGlvbjphYnNvbHV0ZTt0ZXh0LWFsaWduOmVuZDt0b3A6NXB4fS5hY2Nlc3NpYmxlLUVuV3RzN1h1e291dGxpbmU6bm9uZTtvdmVyZmxvdzp2aXNpYmxlO3Bvc2l0aW9uOnJlbGF0aXZlfS5hY2Nlc3NpYmxlLUVuV3RzN1h1OmZvY3Vze291dGxpbmU6bm9uZX0uYWNjZXNzaWJsZS1Fbld0czdYdTpmb2N1cy12aXNpYmxle291dGxpbmU6bm9uZX0uYWNjZXNzaWJsZS1Fbld0czdYdTphZnRlcntib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLXdpZHRoOjJweDtib3gtc2l6aW5nOmJvcmRlci1ib3g7Y29udGVudDoiIjtkaXNwbGF5Om5vbmU7aGVpZ2h0OmNhbGMoMTAwJSArIDhweCk7aW5zZXQtaW5saW5lLXN0YXJ0Oi00cHg7cG9pbnRlci1ldmVudHM6bm9uZTtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6LTRweDt3aWR0aDpjYWxjKDEwMCUgKyA4cHgpO3otaW5kZXg6MX0uYWNjZXNzaWJsZS1Fbld0czdYdTpmb2N1czphZnRlcntkaXNwbGF5OmJsb2NrfS5hY2Nlc3NpYmxlLUVuV3RzN1h1OmZvY3VzLXZpc2libGU6YWZ0ZXJ7ZGlzcGxheTpibG9ja30uYWNjZXNzaWJsZS1Fbld0czdYdTpmb2N1czpub3QoOmZvY3VzLXZpc2libGUpOmFmdGVye2Rpc3BsYXk6bm9uZX0uYWNjZXNzaWJsZS1Fbld0czdYdTphZnRlcntib3JkZXItY29sb3I6dmFyKC0tY29sb3ItdHYtYmx1ZS01MDApO2JvcmRlci1yYWRpdXM6NnB4fQ=="}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/86997.d9a1b2aca00a6209fe61.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.002Z","timestamp":1785148034002,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/86997.d9a1b2aca00a6209fe61.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\ncontent-type: text/css; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a58aaad-229\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Thu, 16 Jul 2026 09:55:57 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/16/2026 11:03:40\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: cc7cc553bfe31a95a36c3d1a0d9ce968\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":553,"size_decoded":1085,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with very long lines (553), with no line terminators","md5":"01a397ca6f9acffa389686fa8bb86be4","sha1":"06e6067f865293a83c510abc69e253c0868ca272","sha256":"cc0cb71fac3c2d852959883310750bfd8f5e3e8dcbcaab5d009c7ceaccf4f797","sha512":"b8c0bbfc3ea33cd0b2df4863ebbb4821e38a79be23bac72cf4442617ad69ba3c40c5d945c1504b74a56b3f05f88e8843c8b3f4a98be88430e925fa8b2b25e2fe","ssdeep":"","tlshash":"e7f04608a314687bf99f01b79f8136457800ca2fe44385aeee005e75d0c86d32394b96","first_seen":"2026-07-17T14:15:58.498815Z","last_seen":"2026-07-27T12:48:39.786084Z","times_seen":117,"resource_available":false,"data":"Lml0ZW0tZlNhVF9ERU17YWxpZ24taXRlbXM6ZmxleC1zdGFydDtmb250LXNpemU6MTZweDtwYWRkaW5nLWlubGluZS1lbmQ6MjBweDt3aGl0ZS1zcGFjZTpub3JtYWx9LmxhYmVsLWZTYVRfREVNe2xpbmUtaGVpZ2h0OjI0cHg7b3ZlcmZsb3c6dmlzaWJsZX0ubGFiZWxSb3ctZlNhVF9ERU17bWFyZ2luLWJvdHRvbToycHg7bWFyZ2luLXRvcDoycHh9LnRvb2xib3gtZlNhVF9ERU17bWFyZ2luLXRvcDozcHh9LmJhZGdlTmV3LWFfU2FnWlFBey0tdWktbGliLWJhZGdlLWNvbG9yLWNvbnRlbnQ6dmFyKC0tY29sb3Itd2hpdGUpOy0tdWktbGliLWJhZGdlLWJhY2tncm91bmQ6dmFyKC0tY29sb3ItdGFuLW9yYW5nZS01MDApfS53cmFwcGVyLUphN0lHRE9ne3BhZGRpbmc6MTBweCAyMHB4fS5sYWJlbFJvdy1KYTdJR0RPZ3tsaW5lLWhlaWdodDoyMHB4O3BhZGRpbmc6MH0ubGFiZWwtSmE3SUdET2d7Zm9udC1zaXplOjE2cHh9LmxhYmVsSGludC1KYTdJR0RPZ3tsaW5lLWhlaWdodDoxN3B4fS5sYWJlbE9uLUphN0lHRE9nKy5sYWJlbEhpbnQtSmE3SUdET2d7bWFyZ2luLXRvcDowfQ=="}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/98509.f8d6ac38558196800d81.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.074Z","timestamp":1785148034074,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/98509.f8d6ac38558196800d81.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\ncontent-type: text/css; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a4360b8-181\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Tue, 30 Jun 2026 06:22:48 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.57\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 06/30/2026 11:55:10\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 616f668c9d7169dc9cf387942c3756e0\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":385,"size_decoded":994,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with very long lines (385), with no line terminators","md5":"4133913207f831470f93a99259fc2199","sha1":"c85ac4b4dbb31362d3a803db2b1855a07a4432fc","sha256":"9a30cb5d3c50528598c10ec6bae54bbf4d41abaf88730d8b4b3bfacde808f6e2","sha512":"de719b99e4d591ec8c62d29bdcc5df5117829386ba6c1f8df9ccabcc679d0c237405c185c4cd9f4a9bce56a877b1bcdbc786c24ee8d22d20384bdf29bb5516ff","ssdeep":"","tlshash":"6ce061a1c294a1ddbb73d3218741f1d47225b5b6a8255e18f6c5319580c6447145843f","first_seen":"2026-06-30T21:57:43.334683Z","last_seen":"2026-07-27T12:48:39.721039Z","times_seen":222,"resource_available":false,"data":"LmJ1dHRvbi1yMHBvUnYwUnthbGw6dW5zZXQ7ZGlzcGxheTpmbGV4O3Bvc2l0aW9uOnJlbGF0aXZlfS5idXR0b24tcjBwb1J2MFI6YmVmb3Jle2JvcmRlci1yYWRpdXM6NHB4O2NvbnRlbnQ6bm9uZTtoZWlnaHQ6MTAwJTtpbnNldC1pbmxpbmUtc3RhcnQ6MDtvdXRsaW5lOnZhcigtLWNvbG9yLXR2LWJsdWUtNTAwKSBub25lIDJweDtvdXRsaW5lLW9mZnNldDotMnB4O3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO3dpZHRoOjEwMCV9LmJ1dHRvbi1yMHBvUnYwUjpmb2N1cy12aXNpYmxlOmJlZm9yZXtjb250ZW50OiIiO291dGxpbmUtc3R5bGU6c29saWR9LmJ1dHRvbi1yMHBvUnYwUi5hY3RpdmUtcjBwb1J2MFI6YmVmb3Jle291dGxpbmUtY29sb3I6dmFyKC0tY29sb3Itd2hpdGUpfQ=="}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/97272.3bfbfc8daabca040cf73.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.216Z","timestamp":1785148034216,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/97272.3bfbfc8daabca040cf73.js HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a608293-2388c\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Wed, 22 Jul 2026 08:42:59 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/22/2026 11:01:21\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 8f7e6f3f9002721d16bc57793deb98ac\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":145548,"size_decoded":44654,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (3072)","md5":"8c50864d30ec134dd6dbf5614f6b0993","sha1":"e6f4e061c6b41ee25122eea9292ee1060bcbf290","sha256":"781e57f4504c7b485e77c0196c82978e6e2b63b503428b039f1ea86e3d3d8c6b","sha512":"4fa1d6e1afa37a9a925a9205354516db356d3db9d7d48297be0d7d04a262559ee656baf6c62318da568ad9c4278b2022f50b58265cfae5ed55c87373ef41a88c","ssdeep":"3072:AmXiQrx9XT2QQFJGUY/yORpn9VNpvNV7lzQQ3+EsCfEbNxYtyphoG:xlT2QQFJ1QVpn9VzvNV7lzQQ3kC8rSsz","tlshash":"d2e3e69272a5749683b901d54cf44503ab4d1c8bb84a888cf2bc1cef561de5d32befb9","first_seen":"2026-07-22T16:00:00.509283Z","last_seen":"2026-07-27T12:48:39.848534Z","times_seen":81,"resource_available":true,"data":"InVzZSBzdHJpY3QiOyhzZWxmLndlYnBhY2tDaHVua3RyYWRpbmd2aWV3PXNlbGYud2VicGFja0NodW5rdHJhZGluZ3ZpZXd8fFtdKS5wdXNoKFtbOTcyNzJdLHsxNDUzODEoZSx0LHMpe3MuZCh0LHtleHRyYWN0VGl0bGVQYXJ0czooKT0+YSxzdHVkeUlkc0hpZGVJbnB1dHNNb2RlOigpPT5ufSk7dmFyIGkscj1zKDYzNDg2KTshZnVuY3Rpb24oZSl7ZVtlLkFsd2F5cz0wXT0iQWx3YXlzIixlW2UuQ2hhcnRTdHlsZT0xXT0iQ2hhcnRTdHlsZSJ9KGl8fChpPXt9KSk7Y29uc3Qgbj1uZXcgTWFwKFtbIlZvbHVtZUB0di1iYXNpY3N0dWRpZXMiLDBdLFsiQW5jaG9yZWRWV0FQQHR2LWJhc2ljc3R1ZGllcyIsMF0sWyJGb290cHJpbnRAdHYtdm9sdW1lYnlwcmljZSIsMF0sWyJUUE9QZXJpb2RpY0B0di12b2x1bWVieXByaWNlIiwxXSxbIlRQT1Nlc3Npb25zQHR2LXZvbHVtZWJ5cHJpY2UiLDFdXSk7ZnVuY3Rpb24gYSh7dGl0bGU6ZSxzdHVkeUlkOnQsaGFzSW5wdXRzOnMsZGVzY3JpcHRpb246aSx3aXRoTWFpblNlcmllc0NoYXJ0U3R5bGU6YSxpc0Z1bmRhbWVudGFsU3R1ZHk6b30pe2lmKCFzKXJldHVybltlXTtsZXQgbDtpP2w9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZS5yZXBsYWNlKHQsIiIpLnRyaW0oKXx8dm9pZCAwfShlLGkpOltpLGxdPWZ1bmN0aW9uKGUpe2lmKCIpIiE9PWVbZS5sZW5ndGgtMV0pcmV0dXJuW2VdO2xldCB0PTA7Zm9yKGxldCBzPWUubGVuZ3RoLTE7cz49MDtzLS0paWYoIikiPT09ZVtzXSl0Kys7ZWxzZSBpZigiKCI9PT1lW3NdJiYodC0tLDA9PT10JiZzPjEmJiIgIj09PWVbcy0xXSkpcmV0dXJuW2Uuc2xpY2UoMCxzLTEpLGUuc2xpY2UocyldO3JldHVybltlXX0oZSk7Y29uc3QgaD1mdW5jdGlvbihlLHQpe3JldHVybiB0PzA6bi5nZXQoZSl9KCgwLHIuZXh0cmFjdFN0dWR5SWQpKHQpLG8pO3JldHVybiFsfHwoMD09PWh8fDE9PT1oJiZhKT9baV06W2ksbF19fSwyMDU2MTEoZSx0LHMpe3MuZCh0LHtjcmVhdGVXVkZyb21HZXR0ZXJBbmRTdWJzY3JpcHRpb25zOigpPT5yfSk7dmFyIGk9cygyMzIzNjQpO2Z1bmN0aW9uIHIoZSx0KXtjb25zdCBzPW5ldyBpLldhdGNoZWRWYWx1ZShlKCkpLHI9e307dC5mb3JFYWNoKCh0PT50LnN1YnNjcmliZShyLCgoKT0+e3Muc2V0VmFsdWUoZSgpKX0pKSkpO3JldHVybiBzLnJlYWRvbmx5KCkuc3Bhd24oKCgpPT50LmZvckVhY2goKGU9PmUudW5zdWJzY3JpYmVBbGwocikpKSkpfX0sOTUzNjYwKGUpe2NvbnN0IHQ9NTUyOTYscz0xMjc5OTUsaT0xMjc5OTkscj1bNzc2LDIzNTksMjM1OSwyMzY3LDIzNjcsMjk4NCwzMDA3LDMwMjEsMzYzMywzNjM1LDM2NDgsMzY1Nyw0MzUyLDQ0NDksNDUyMF07ZnVuY3Rpb24gbihlKXtpZigic3RyaW5nIiE9dHlwZW9mIGUpdGhyb3cgbmV3IEVycm9yKCJzdHJpbmcgY2Fubm90IGJlIHVuZGVmaW5lZCBvciBudWxsIik7Y29uc3QgdD1bXTtsZXQgcz0wLGk9MDtmb3IoO3M8ZS5sZW5ndGg7KWkrPWEocytpLGUpLHUoZVtzK2ldKSYmaSsrLGwoZVtzK2ldKSYmaSsrLGgoZVtzK2ldKSYmaSsrLGMoZVtzK2ldKT9pKys6KHQucHVzaChlLnN1YnN0cmluZyhzLHMraSkpLHMrPWksaT0wKTtyZXR1cm4gdH1mdW5jdGlvbiBhKGUscil7Y29uc3Qgbj1yW2VdO2lmKCFmdW5jdGlvbihlKXtyZXR1cm4gZSYmcChlWzBdLmNoYXJDb2RlQXQoMCksdCw1NjMxOSl9KG4pfHxlPT09ci5sZW5ndGgtMSlyZXR1cm4gMTtjb25zdCBhPW4rcltlKzFdO2xldCBsPXIuc3Vic3RyaW5nKGUrMixlKzUpO3JldHVybiBvKGEpJiZvKGwpfHxmdW5jdGlvbihlKXtyZXR1cm4gcChkKGUpLHMsaSl9KGwpPzQ6Mn1mdW5jdGlvbiBvKGUpe3JldHVybiBwKGQoZSksMTI3NDYyLDEyNzQ4Nyl9ZnVuY3Rpb24gbChlKXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIGUmJnAoZS5jaGFyQ29kZUF0KDApLDY1MDI0LDY1MDM5KX1mdW5jdGlvbiBoKGUpe3JldHVybiJzdHJpbmciPT10eXBlb2YgZSYmcChlLmNoYXJDb2RlQXQoMCksODQwMCw4NDQ3KX1mdW5jdGlvbiB1KGUpe3JldHVybiJzdHJpbmciPT10eXBlb2YgZSYmLTEhPT1yLmluZGV4T2YoZS5jaGFyQ29kZUF0KDApKX1mdW5jdGlvbiBjKGUpe3JldHVybiJzdHJpbmciPT10eXBlb2YgZSYmODIwNT09PWUuY2hhckNvZGVBdCgwKX1mdW5jdGlvbiBkKGUpe3JldHVybihlLmNoYXJDb2RlQXQoMCktdDw8MTApKyhlLmNoYXJDb2RlQXQoMSktNTYzMjApKzY1NTM2fWZ1bmN0aW9uIHAoZSx0LHMpe3JldHVybiBlPj10JiZlPD1zfWUuZXhwb3J0cz1uLGUuZXhwb3J0cy5zdWJzdHI9ZnVuY3Rpb24oZSx0LHMpe2NvbnN0IGk9bihlKTtpZih2b2lkIDA9PT10KXJldHVybiBlO2lmKHQ+PWkubGVuZ3RoKXJldHVybiIiO2NvbnN0IHI9aS5sZW5ndGgtdDtsZXQgYT10Kyh2b2lkIDA9PT1zP3I6cyk7cmV0dXJuIGE+dCtyJiYoYT12b2lkIDApLGkuc2xpY2UodCxhKS5qb2luKCIiKX19LDUyMDM2MyhlLHQscyl7cy5kKHQse1N0dWR5QmFzZVdpbmRvd1ZpZXc6KCk9Pm59KTt2YXIgaT1zKDc3OTUxNikscj1zKDk0Mzk1KTtjbGFzcyBuIGV4dGVuZHMgaS5EYXRhV2luZG93Vmlld3tjb25zdHJ1Y3RvcihlLHQpe3N1cGVyKCksdGhpcy5faW52YWxpZGF0ZWQ9ITAsdGhpcy5fc3R1ZHk9ZSx0aGlzLl9tb2RlbD10LHRoaXMuX3ZhbHVlUHJvdmlkZXI9dGhpcy5fY3JlYXRlVmFsdWVzUHJvdmlkZXIoZSx0KSx0aGlzLl9pdGVtcz10aGlzLl92YWx1ZVByb3ZpZGVyLmdldEl0ZW1zKCkubWFwKChlPT5uZXcgaS5EYXRhV2luZG93SXRlbShlLmlkLGUudGl0bGUsIiIpKSl9dXBkYXRlKGUpeyJob3Zlci1jaGFuZ2UiIT09ZS50eXBlJiYodGhpcy5faW52YWxpZGF0ZWQ9ITApfWl0ZW1zKCl7cmV0dXJuIHRoaXMuX2ludmFsaWRhdGVkJiYodGhpcy5fdXBkYXRlSW1wbCgpLHRoaXMuX2ludmFsaWRhdGVkPSExKSx0aGlzLl9pdGVtc31zdHVkeSgpe3JldHVybiB0aGlzLl9zdHVkeX1fdXBkYXRlSW1wbCgpe3RoaXMuX2hlYWRlcj10aGlzLl9zdHVkeS50aXRsZShyLlRpdGxlRGlzcGxheVRhcmdldC5EYXRhV2luZG93KSx0aGlzLl90aXRsZT10aGlzLl9zdHVkeS50aXRsZShyLlRpdGxlRGlzcGxheVRhcmdldC5EYXRhV2luZG93LCExKQo7Y29uc3QgZT10aGlzLl92YWx1ZVByb3ZpZGVyLmdldFZhbHVlcyh0aGlzLl9jdXJyZW50SW5kZXgoKSk7Zm9yKGxldCB0PTA7dDxlLmxlbmd0aDsrK3Qpe2NvbnN0IHM9ZVt0XSxpPXRoaXMuX2l0ZW1zW3RdO2kuc2V0VmFsdWUocy52YWx1ZSksaS5zZXRWaXNpYmxlKHMudmlzaWJsZSksaS5zZXRDb2xvcihzLmNvbG9yKSxpLnNldFRpdGxlKHMudGl0bGUpfX1fY3VycmVudEluZGV4KCl7Y29uc3QgZT10aGlzLl9tb2RlbC5jcm9zc2hhaXJTb3VyY2UoKS5hcHBsaWVkSW5kZXgoKTtyZXR1cm4gaXNOYU4oZSk/bnVsbDplfX19LDg3MzYzKGUsdCxzKXtzLmQodCx7U3R1ZHlDaGFydEZsb2F0aW5nVG9vbHRpcFZhbHVlc1Byb3ZpZGVyOigpPT5hfSk7dmFyIGk9cygzMDk4MzcpLHI9cygxNjU1MCksbj1zKDE2ODI1OCk7Y2xhc3MgYXtjb25zdHJ1Y3RvcihlLHQscyl7dGhpcy5fc3R1ZHk9ZSx0aGlzLl9tb2RlbD10LHRoaXMuX2hoaXN0QmFzZWRTdHVkeT0hIWUubWV0YUluZm8oKS5ncmFwaGljcy5oaGlzdHMsdGhpcy5fdmFsdWVzUHJvdmlkZXI9dGhpcy5faGhpc3RCYXNlZFN0dWR5P25ldyByLkhIaXN0QmFzZWRWYWx1ZXNQcm92aWRlcihlLHQscyk6bmV3IGkuU3R1ZHlWYWx1ZXNQcm92aWRlcihlLHQscyl9Z2V0SXRlbXMoKXtyZXR1cm4gdGhpcy5fdmFsdWVzUHJvdmlkZXIuZ2V0SXRlbXMoKX1nZXRWYWx1ZXMoZSl7Y29uc3QgdD10aGlzLl92YWx1ZXNQcm92aWRlci5nZXRWYWx1ZXMoZSkscz1lPT50aGlzLl9zdHVkeS5pc1Bsb3RWaXNpYmxlQXQoZSxuLlN0dWR5UGxvdERpc3BsYXlUYXJnZXQuU3RhdHVzTGluZSl8fHRoaXMuX3N0dWR5LmlzUGxvdFZpc2libGVBdChlLG4uU3R1ZHlQbG90RGlzcGxheVRhcmdldC5QYW5lKTtmb3IoY29uc3QgZSBvZiB0KWUudmlzaWJsZT1lLnZpc2libGUmJih0aGlzLl9oaGlzdEJhc2VkU3R1ZHl8fHMoZS5pZCkpO3JldHVybiB0fX19LDE0MTM1MChlLHQscyl7cy5kKHQse1N0dWR5Q2hhcnRGbG9hdGluZ1Rvb2x0aXBWaWV3OigpPT5hfSk7dmFyIGk9cygxMzg2MzgpLHI9cyg2MDE4NDEpLG49cyg5NDM5NSk7Y2xhc3MgYXtjb25zdHJ1Y3RvcihlLHQscz0hMSl7dGhpcy5faXRlbXM9W10sdGhpcy5faW52YWxpZGF0ZWQ9ITAsdGhpcy5fc3R1ZHk9ZSx0aGlzLl9tb2RlbD10LHRoaXMuX3Nob3dBbGxQbG90c1RpdGxlPXN9ZGVzdHJveSgpe31pdGVtcygpe3JldHVybiB0aGlzLl9pbnZhbGlkYXRlZCYmKHRoaXMuX3VwZGF0ZUltcGwoKSx0aGlzLl9pbnZhbGlkYXRlZD0hMSksdGhpcy5faXRlbXN9dXBkYXRlKGUpe3RoaXMuX2ludmFsaWRhdGVkPSEwfV91cGRhdGVJbXBsKCl7Y29uc3QgZT10aGlzLl9zdHVkeS5jaGFydEZsb2F0aW5nVG9vbHRpcFZhbHVlc1Byb3ZpZGVyKCksdD10aGlzLl9tb2RlbC5jcm9zc2hhaXJTb3VyY2UoKS5hcHBsaWVkSW5kZXgoKSxzPSgwLGkuZW5zdXJlTm90TnVsbCkoZSkuZ2V0VmFsdWVzKHQpLGE9dGhpcy5fc3R1ZHkudGl0bGVJblBhcnRzKG4uVGl0bGVEaXNwbGF5VGFyZ2V0LlN0YXR1c0xpbmUpLG89YVswXTtsZXQgbD0iIjtpZihhLmxlbmd0aD4xKXtjb25zdCBlPWFbMV07ZS5sZW5ndGg+MCYmKGw9ZS5qb2luKCIgIikpfXRoaXMuX2l0ZW1zPXMuZmlsdGVyKHIubm90VW5kZWZpbmVkKS5maWx0ZXIoKGU9PmUudmlzaWJsZSkpLm1hcCgoKGUsdCk9Pih7dGl0bGVUZXh0OnRoaXMuX3Nob3dBbGxQbG90c1RpdGxlP2UudGl0bGU6MD09PXQ/bzoiIix0aXRsZUlucHV0czp0aGlzLl9zaG93QWxsUGxvdHNUaXRsZT8iIjowPT09dD9sOiIiLHZhbHVlOmUudmFsdWUsdmFsdWVDb2xvcjplLmNvbG9yfSkpKX19fSw1MzY3MTAoZSx0LHMpe3MuZCh0LHtTdHVkeURhdGFXaW5kb3dWaWV3OigpPT5ufSk7dmFyIGk9cyg1MjAzNjMpLHI9cyg2MzE0MDQpO2NsYXNzIG4gZXh0ZW5kcyBpLlN0dWR5QmFzZVdpbmRvd1ZpZXd7Y2FuU2hvd0l0ZW1zKCl7Y29uc3QgZT10aGlzLl9tb2RlbC5wYW5lRm9yU291cmNlKHRoaXMuX3N0dWR5KTtyZXR1cm4hIWU/Lm1heGltaXplZCgpLnZhbHVlKCl8fHRoaXMuX21vZGVsLnBhbmVzKCkuZXZlcnkoKGU9PiFlLm1heGltaXplZCgpLnZhbHVlKCkpKX1fY3JlYXRlVmFsdWVzUHJvdmlkZXIoZSx0KXtyZXR1cm4gbmV3IHIuU3R1ZHlEYXRhV2luZG93VmFsdWVzUHJvdmlkZXIoZSx0KX19fSwyNzU4NDkoZSx0LHMpe3MuZCh0LHtTdHVkeVN0YXR1c1Byb3ZpZGVyOigpPT5sfSk7dmFyIGk9cygxODUyNzEpLHI9cyg4Njc4MzEpLG49cyg2MzI0NDQpLGE9cygzMTQyNyk7Y29uc3Qgbz1pLnQobnVsbCx2b2lkIDAscygxNTU4NSkpO2NsYXNzIGwgZXh0ZW5kcyBhLlN0dWR5U3RhdHVzUHJvdmlkZXJCYXNle3NvdXJjZVN0YXR1c1RleHQoKXtjb25zdCBlPXRoaXMuX3NvdXJjZTtpZihlLnN0YXR1cygpLnR5cGU9PT1yLlN0dWR5U3RhdHVzVHlwZS5FcnJvcil7Y29uc3QgdD1lLm1ldGFJbmZvKCkscz0oMCxuLmV4dHJhY3RQaW5lSWQpKHQuZnVsbElkKTtpZih0LnNjcmlwdElkUGFydCYmKDAsbi5pc0VkZ3JQaW5lSWQpKHQuc2NyaXB0SWRQYXJ0KXx8cyYmKDAsbi5pc0VkZ3JQaW5lSWQpKHMpKXJldHVybiBvfXJldHVybiBzdXBlci5zb3VyY2VTdGF0dXNUZXh0KCl9fX0sNTcyMjUoZSx0LHMpe3MuZCh0LHtidWlsZFRyZWVGb3JTdHVkeTooKT0+byxidWlsZFR1cm5hcm91bmQ6KCk9PmEsY2FuQnVpbGRUdXJuYXJvdW5kOigpPT5sfSk7dmFyIGk9cygxMzg2MzgpO2Z1bmN0aW9uIHIoZSx0KXtyZXR1cm4gZS5zdHVkeUlkLmxvY2FsZUNvbXBhcmUodC5zdHVkeUlkKX1mdW5jdGlvbiBuKGUpe2NvbnN0IHQ9bmV3IFNldCxzPVtdO3JldHVybiBlLmZvckVhY2goKGU9Pnt0LmhhcyhlLnN0dWR5SWQpfHwodC5hZGQoZS5zdHVkeUlkKSxzLnB1c2goZSkpfSkpLHN9ZnVuY3Rpb24gYShlLHQpe2xldCBzPXQudHVybmFyb3VuZCxpPVt0XTtmb3IoO2kubGVuZ3RoPjA7KXtsZXQgZT1bXTtjb25zdCB0PVtdO2kuZm9yRWFjaCgocz0+e2NvbnN0IGk9bihzLnNvdXJjZVN0dWRpZXMpLnNvcnQocik7aWYoaS5sZW5ndGg+MCl7ZT1lLmNvbmNhdChpKTtjb25zdCBzPWkubWFwKChlPT5lLnR1cm5hcm91bmQpKS5qb2luKCJfIik7dC5wdXNoKHMpfQp9KSksdC5sZW5ndGgmJihzPXQuam9pbigiXyIpKyJfIitzKSxpPWV9cmV0dXJuIGUrIl8iK3N9ZnVuY3Rpb24gbyhlKXtjb25zdCB0PWUubW9kZWwoKS5tYWluU2VyaWVzKCk7cmV0dXJue3N0dWR5SWQ6KDAsaS5lbnN1cmVOb3ROdWxsKShlLnNvdXJjZUlkKCkpLHR1cm5hcm91bmQ6ZS50dXJuYXJvdW5kKCksc291cmNlU3R1ZGllczplLnBhcmVudFNvdXJjZXMoKS5maWx0ZXIoKGU9PmUhPT10KSkubWFwKChlPT5vKGUpKSl9fWZ1bmN0aW9uIGwoZSl7cmV0dXJuIG51bGwhPT1lLnNvdXJjZUlkKCkmJmUucGFyZW50U291cmNlcygpLmV2ZXJ5KChlPT5sKGUpKSl9fSwxOTcyNzIoZSx0LHMpe3MuZCh0LHtTdHVkeTooKT0+VXMsZW1wdHlQcmVjYWxjdWxhdGVkQXV0b3NjYWxlSW5mbzooKT0+d3N9KTt2YXIgaT1zKDU0Nzg1MSkscj1zKDE2NzUwMiksbj1zKDIwMzY4MSksYT1zKDc0MDE2Miksbz1zKDE0NDU1NSksbD1zKDkyMDQ3NSksaD1zKDEzODYzOCksdT1zKDYwMTg0MSksYz1zKDIyMTA2MSksZD1zKDY0MTU5MykscD1zKDE5ODkwMSksXz1zKDk1MjkwMCksZj1zKDIzMjM2NCksbT1zKDQwMjA0NSkseT1zKDk0ODM4MCksZz1zKDg1NzE1MSksUz1zKDkzNjMyNiksYj1zKDk2MDQ2NCksdj1zKDc5MTQyNyksUD1zKDE0NTM4MSksST1zKDkzMDIzMSksdz1zKDEwMDU5NSksQz1zLm4odyk7dmFyIFY9cygxODUyNzEpLHg9cyg4NTY1Nik7dmFyIEE9cyg4NzIzNDMpLFI9cyg0MDc4MTQpO3ZhciBNPXMoMTcyMzA0KSxUPXMoMjQxMyksRD1zKDYzNDg2KSxGPXMoNDk3Njc5KSxPPXMoNzcwNzU1KSxOPXMoNDg3ODIwKTtjbGFzcyBre2NvbnN0cnVjdG9yKGUsdCl7dGhpcy5fYWxlcnRzPW5ldyBtLldhdGNoZWRPYmplY3QoW10pLHRoaXMuX2FsZXJ0U2VyaWVzSWQ9dCx0aGlzLl9hbGVydHNDb2xsZWN0aW9uPWUuYWxlcnRzQ29sbGVjdGlvbigpLnNwYXduKCksdGhpcy5fYWxlcnRzQ29sbGVjdGlvbi5zdWJzY3JpYmUodGhpcy5fdXBkYXRlQWxlcnRzTGlzdC5iaW5kKHRoaXMpLHtjYWxsV2l0aExhc3Q6ITB9KSx0aGlzLl9hbGVydFNlcmllc0lkLnN1YnNjcmliZSh0aGlzLl91cGRhdGVBbGVydHMuYmluZCh0aGlzKSx7Y2FsbFdpdGhMYXN0OiEwfSl9ZGVzdHJveSgpe3RoaXMuX2FsZXJ0c0NvbGxlY3Rpb24uZGVzdHJveSgpLHRoaXMuX2Rlc3Ryb3lBbGVydHNMaXN0U3Vic2NyaXB0aW9ucz8uKCksdGhpcy5fYWxlcnRTZXJpZXNJZC5yZWxlYXNlKCl9YWxlcnRzKCl7cmV0dXJuIHRoaXMuX2FsZXJ0cy5yZWFkb25seSgpfV91cGRhdGVBbGVydHNMaXN0KGUpe2lmKHRoaXMuX2Rlc3Ryb3lBbGVydHNMaXN0U3Vic2NyaXB0aW9ucz8uKCksdGhpcy5fZGVzdHJveUFsZXJ0c0xpc3RTdWJzY3JpcHRpb25zPXZvaWQgMCxlKXtjb25zdCB0PXRoaXMuX3VwZGF0ZUFsZXJ0cy5iaW5kKHRoaXMpO2UuYWxlcnRzKCkuc3Vic2NyaWJlKHQpLHRoaXMuX2Rlc3Ryb3lBbGVydHNMaXN0U3Vic2NyaXB0aW9ucz0oKT0+ZS5hbGVydHMoKS51bnN1YnNjcmliZSh0KX10aGlzLl91cGRhdGVBbGVydHMoKX1fdXBkYXRlQWxlcnRzKCl7Y29uc3QgZT10aGlzLl9hbGVydHNDb2xsZWN0aW9uLnZhbHVlKCksdD10aGlzLl9hbGVydFNlcmllc0lkLnZhbHVlKCk7aWYoIWV8fCF0KXJldHVybiB2b2lkIHRoaXMuX2FsZXJ0cy5zZXRWYWx1ZShbXSk7Y29uc3Qgcz1lLmFsZXJ0cygpLnZhbHVlKCkuZmlsdGVyKChlPT5lLmFjdGl2ZSgpLnZhbHVlKCkmJmUuY2FuVXNlSW5TdHVkeVNvdXJjZU1vZGVsKHQpKSkubWFwKChlPT4oe3RpdGxlOmUuZGVzY3JpcHRpb24oKSxjYW5EaXNwbGF5T25TdGF0dXNWaWV3OigpPT5lLmlzQWxlcnRQcmVzZW50T25UYXJnZXQoTi5BbGVydENoYXJ0RGlzcGxheVRhcmdldC5TdGF0dXNWaWV3KX0pKSk7dGhpcy5fYWxlcnRzLnNldFZhbHVlKHMpfX12YXIgQj1zKDg4OTUxNSksRT1zKDIyNjkzNyksTD1zKDg3MzU3MyksSD1zKDQxNDczNCksVT1zKDU0MjM0OSksVz1zKDcwNDU3MiksRz1zKDk1NjQzNyksaj1zKDYzNTUwOSksej1zKDczMjA4MCksJD1zKDM4ODM2NyksSz1zKDIxODc2NSkscT1zKDUyMDM2MyksSj1zKDk2NjQwNCksWT1zKDkyODY2OSksWj1zKDE2ODI1OCk7Y2xhc3MgWCBleHRlbmRzIHEuU3R1ZHlCYXNlV2luZG93Vmlld3tjb25zdHJ1Y3RvcihlLHQpe3N1cGVyKGUsdCksdGhpcy5fc2hvd1N0dWR5VmFsdWVzPXQucHJvcGVydGllcygpLmNoaWxkcygpLnBhbmVQcm9wZXJ0aWVzLmNoaWxkcygpLmxlZ2VuZFByb3BlcnRpZXMuY2hpbGRzKCkuc2hvd1N0dWR5VmFsdWVzLHRoaXMuX3Nob3dTdHVkeVZhbHVlcy5zdWJzY3JpYmUodGhpcywoKCk9PnRoaXMudXBkYXRlKCgwLEouc291cmNlQ2hhbmdlRXZlbnQpKGUuaWQoKSkpKSk7Y29uc3Qgcz10aGlzLl9zdHVkeS5wcm9wZXJ0aWVzKCk7cy5jaGlsZHMoKS5zaG93TGVnZW5kVmFsdWVzLnN1YnNjcmliZSh0aGlzLCgoKT0+dGhpcy51cGRhdGUoKDAsSi5zb3VyY2VDaGFuZ2VFdmVudCkoZS5pZCgpKSkpKTtjb25zdCBpPXRoaXMuX3N0dWR5Lm1ldGFJbmZvKCkucGxvdHMscj1uZXcgU2V0O2kuZm9yRWFjaCgodD0+e2lmKCgwLFouaXNPaGxjUGxvdCkodCkpe2NvbnN0IGk9dC50YXJnZXQ7aWYoci5oYXMoaSkpcmV0dXJuO3IuYWRkKGkpLHMuY2hpbGRzKCkub2hsY1Bsb3RzLmNoaWxkcygpW2ldLmNoaWxkcygpLmRpc3BsYXkuc3Vic2NyaWJlKHRoaXMsKCgpPT50aGlzLnVwZGF0ZSgoMCxKLnNvdXJjZUNoYW5nZUV2ZW50KShlLmlkKCkpKSkpfWVsc2UoMCxaLmlzUGxvdFN1cHBvcnREaXNwbGF5KSh0KSYmcy5jaGlsZHMoKS5zdHlsZXMuY2hpbGRzKClbdC5pZF0/LmNoaWxkcygpLmRpc3BsYXkuc3Vic2NyaWJlKHRoaXMsKCgpPT50aGlzLnVwZGF0ZSgoMCxKLnNvdXJjZUNoYW5nZUV2ZW50KShlLmlkKCkpKSkpfSkpfWFyZVZhbHVlc1Zpc2libGUoKXtyZXR1cm4gdGhpcy5fc2hvd1N0dWR5VmFsdWVzLnZhbHVlKCl9YWRkaXRpb25hbCgpe3JldHVybiBudWxsfWRlc3Ryb3koKXt0aGlzLl9zaG93U3R1ZHlWYWx1ZXMudW5zdWJzY3JpYmVBbGwodGhpcyk7Y29uc3QgZT10aGlzLl9zdHVkeS5wcm9wZXJ0aWVzKCkKO2UuY2hpbGRzKCkuc2hvd0xlZ2VuZFZhbHVlcy51bnN1YnNjcmliZUFsbCh0aGlzKTtjb25zdCB0PXRoaXMuX3N0dWR5Lm1ldGFJbmZvKCkucGxvdHMscz1uZXcgU2V0O3QuZm9yRWFjaCgodD0+e2lmKCgwLFouaXNPaGxjUGxvdCkodCkpe2NvbnN0IGk9dC50YXJnZXQ7aWYocy5oYXMoaSkpcmV0dXJuO3MuYWRkKGkpLGUuY2hpbGRzKCkub2hsY1Bsb3RzLmNoaWxkcygpW2ldLmNoaWxkcygpLmRpc3BsYXkudW5zdWJzY3JpYmVBbGwodGhpcyl9ZWxzZSgwLFouaXNQbG90U3VwcG9ydERpc3BsYXkpKHQpJiZlLmNoaWxkcygpLnN0eWxlcy5jaGlsZHMoKVt0LmlkXT8uY2hpbGRzKCkuZGlzcGxheS51bnN1YnNjcmliZUFsbCh0aGlzKX0pKX1fY3JlYXRlVmFsdWVzUHJvdmlkZXIoZSx0KXtyZXR1cm4gbmV3IFkuU3R1ZHlMZWdlbmRWYWx1ZXNQcm92aWRlcihlLHQpfX12YXIgUT1zKDY3ODI4NSksZWU9cyg5MzI2OTMpLHRlPXMoNDA3Nzk5KSxzZT1zKDY0NTI4NSksaWU9cyg3OTE1MjEpLHJlPXMoMjc1ODQ5KSxuZT1zKDg3MzYzKSxhZT1zKDQ3NzM4OCk7Y2xhc3Mgb2V7Y29uc3RydWN0b3IoZSx0LHM9ITEpe3RoaXMucHJpY2U9dCx0aGlzLmluZGV4PWUsdGhpcy51c2VNYWluU2VyaWVzRm9yUHJpY2VSYW5nZT1zfX12YXIgbGU9cygyOTM0MTgpO2Z1bmN0aW9uIGhlKGUsdCxzLGkpe2lmKGUueTE9PT1lLnkyKXJldHVybiBmdW5jdGlvbihlLHQscyl7cmV0dXJuKDAsaC5hc3NlcnQpKGUueTE9PT1lLnkyKSwoMCxsZS5kb2VzSXRlbUFmZmVjdFZpc2libGVSYW5nZSkoZS54MSxlLngyLGUuZXh0ZW5kLHQscyk/W25ldyBvZSh0LGUueTEsITEpLG5ldyBvZShzLGUueTIsITEpXTpbXX0oZSxzLGkpO2NvbnN0IHI9W107cmV0dXJuIG51bGwhPT1lLngxJiZyLnB1c2gobmV3IG9lKGUueDEsZS55MSwhMSkpLG51bGwhPT1lLngyJiZyLnB1c2gobmV3IG9lKGUueDIsZS55MiwhMSkpLHJ9ZnVuY3Rpb24gdWUoZSx0LHMsaSl7cmV0dXJuIGUucG9pbnRzLmZpbHRlcigoZT0+ZS54Pj1zJiZlLng8PWkpKS5tYXAoKGU9Pm5ldyBvZShlLngsZS55LCExKSkpfWZ1bmN0aW9uIGNlKGUsdCxzLGkpe3JldHVybigwLGxlLmRvZXNJdGVtQWZmZWN0VmlzaWJsZVJhbmdlKShlLmxlZnQsZS5yaWdodCxlLmV4dGVuZCxzLGkpP1tuZXcgb2UocyxlLnRvcCwhMSksbmV3IG9lKGksZS5ib3R0b20sITEpXTpbXX12YXIgZGU9cyg1NDg1NjApO2Z1bmN0aW9uIHBlKGUsdCxzLGkpe2xldCByO2NvbnN0IG49ZS55bG9jIT09ZGUuRHdnTGFiZWxZbG9jLlByaWNlJiZlLnlsb2MhPT1kZS5Ed2dMYWJlbFlsb2MuQXV0bztpZihuKXtjb25zdCBzPWUueWxvYz09PWRlLkR3Z0xhYmVsWWxvYy5BYm92ZUJhcj8yOjMsaT10LnZhbHVlQXQoZS54KTtudWxsIT09aSYmKHI9aVtzXSl9ZWxzZSByPWUueTtyZXR1cm4gbnVsbD09cj9udWxsOltuZXcgb2UoZS54LHIsbildfXZhciBfZT1zKDE3OTY3NCk7ZnVuY3Rpb24gZmUoZSx0LHMsaSxyLG4pe2lmKCEoMCxsZS5kb2VzSXRlbUFmZmVjdFZpc2libGVSYW5nZSkoZS5maXJzdEJhclRpbWUsZS5sYXN0QmFyVGltZSxfZS5Ed2dFeHRlbmQuTm9uZSxzLGkpKXJldHVybltdO2xldCBhPTEvMCxvPS0xLzA7Zm9yKGNvbnN0W3Qsc11vZiByLnRwb0Jsb2NrU2V0cygpKWlmKG49PT10KWZvcihjb25zdCB0IG9mIHMuZ2V0KGUuaWQpfHxbXSlhPU1hdGgubWluKGEsdC5yb3dJbmRleCplLnByaWNlUmFuZ2UpLG89TWF0aC5tYXgobywodC5yb3dJbmRleCsxKSplLnByaWNlUmFuZ2UpO3JldHVybiBOdW1iZXIuaXNGaW5pdGUoYSk/W25ldyBvZShzLG8sITEpLG5ldyBvZShpLGEsITEpXTpbXX1jbGFzcyBtZXtjb25zdHJ1Y3RvcihlLHQscyxpLHIpe3RoaXMuX21hcEdldHRlcj1lLHRoaXMuX3N0dWR5PXQsdGhpcy5fYmFycz10LnNlcmllcygpLmJhcnMoKSx0aGlzLl92aXNpYmlsaXR5R2V0dGVyPXMsdGhpcy5fZ2V0UG9pbnRzPWksdGhpcy5fZ2V0TWFyZ2lucz1yfWdyb3VwUHJpY2VSYW5nZShlLHQscyl7bGV0IGk9bnVsbDtjb25zdCByPXRoaXMuX3N0dWR5LmdyYXBoaWNzKCk7Zm9yKGNvbnN0W24sYV1vZiB0aGlzLl9tYXBHZXR0ZXIocykpaWYodGhpcy5fdmlzaWJpbGl0eUdldHRlcihuKSlmb3IoY29uc3QgcyBvZiBhKXtjb25zdCBhPXRoaXMuX2dldFBvaW50cyhzLHRoaXMuX2JhcnMsZSx0LHIsbik7aWYobnVsbD09PWEpY29udGludWU7bGV0IG89MS8wLGw9LTEvMCxoPSExLHU9ITEsYz0hMTtmb3IoY29uc3QgcyBvZiBhKXtjb25zdCBpPXMuaW5kZXg8PXQscj1zLmluZGV4Pj1lO2g9aHx8aSx1PXV8fHIsYz1jfHxpJiZyO2xldCBuPXMucHJpY2UsYT1zLnByaWNlO2lmKHMudXNlTWFpblNlcmllc0ZvclByaWNlUmFuZ2Upe2NvbnN0IGU9dGhpcy5fYmFycy52YWx1ZUF0KHMuaW5kZXgpO2lmKG51bGw9PT1lKWNvbnRpbnVlO2NvbnN0IHQ9ZVsyXTtpZihudWxsPT10KWNvbnRpbnVlO2NvbnN0IGk9ZVszXTtpZihudWxsPT1pKWNvbnRpbnVlO249aSxhPXR9bjxvJiYobz1uKSxhPmwmJihsPWEpfWlmKCEoY3x8aCYmdSkpY29udGludWU7Y29uc3QgZD1uZXcgai5QcmljZVJhbmdlKG8sbCk7aT1udWxsPT09aT9kOmkubWVyZ2UoZCl9cmV0dXJuIGl9Zmlyc3RWYWx1ZShlLHQpe2xldCBzPTEvMCxpPTEvMCxyPS0xLzAsbj0xLzAsYT0xLzAsbz0xLzA7Y29uc3QgbD10aGlzLl9zdHVkeS5ncmFwaGljcygpO2Zvcihjb25zdFtoLHVdb2YgdGhpcy5fbWFwR2V0dGVyKCExKSlpZih0aGlzLl92aXNpYmlsaXR5R2V0dGVyKGgpKWZvcihjb25zdCBjIG9mIHUpe2NvbnN0IHU9dGhpcy5fZ2V0UG9pbnRzKGMsdGhpcy5fYmFycyxlLHQsbCxoKTtpZihudWxsIT09dSlmb3IoY29uc3QgbCBvZiB1KXtjb25zdCBoPWwuaW5kZXg7aD49ZSYmaDw9dCYmaDxzPyhzPWgsaT1sLnByaWNlKTpoPGUmJmg+cj8ocj1oLG49bC5wcmljZSk6aD50JiZoPGEmJihhPWgsbz1sLnByaWNlKX19cmV0dXJue2ZpcnN0VmlzaWJsZTpzPT09MS8wP251bGw6bmV3IG9lKHMsaSksbGVmdENsb3Nlc3Q6cj09PS0xLzA/bnVsbDpuZXcgb2UocixuKSxyaWdodENsb3Nlc3Q6YT09PTEvMD9udWxsOm5ldyBvZShhLG8pfX1ncm91cFBpeGVsTWFyZ2lucyhlLHQscyl7CmlmKCF0aGlzLl9nZXRNYXJnaW5zKXJldHVybiB5ZSgpO2NvbnN0IGk9eWUoKTtpZihudWxsPT09dGhpcy5fc3R1ZHkucHJpY2VTY2FsZSgpKXJldHVybiBpO2lmKG51bGw9PT10aGlzLl9zdHVkeS5maXJzdFZhbHVlKCkpcmV0dXJuIGk7Y29uc3Qgcj10aGlzLl9zdHVkeS5ncmFwaGljcygpO2Zvcihjb25zdFtuLGFdb2YgdGhpcy5fbWFwR2V0dGVyKHMpKWlmKHRoaXMuX3Zpc2liaWxpdHlHZXR0ZXIobikpZm9yKGNvbnN0IHMgb2YgYSl7Y29uc3QgYT10aGlzLl9nZXRQb2ludHMocyx0aGlzLl9iYXJzLGUsdCxyLG4pO2lmKG51bGw9PT1hKWNvbnRpbnVlO2lmKDA9PT1hLmZpbHRlcigocz0+e2NvbnN0IGk9cy5pbmRleDtyZXR1cm4gaT49ZSYmaTw9dH0pKS5sZW5ndGgpY29udGludWU7Y29uc3Qgbz10aGlzLl9nZXRNYXJnaW5zKHMsdGhpcy5fYmFycyk7aS5ib3R0b21QaXhlbE1hcmdpbj1NYXRoLm1heChpLmJvdHRvbVBpeGVsTWFyZ2luLG8uYm90dG9tUGl4ZWxNYXJnaW4pLGkudG9wUGl4ZWxNYXJnaW49TWF0aC5tYXgoaS50b3BQaXhlbE1hcmdpbixvLnRvcFBpeGVsTWFyZ2luKX1yZXR1cm4gaX19Y29uc3QgeWU9KCk9Pih7Ym90dG9tUGl4ZWxNYXJnaW46MCx0b3BQaXhlbE1hcmdpbjowfSk7ZnVuY3Rpb24gZ2UoZSl7Y29uc3QgdD0oMCxoLmVuc3VyZURlZmluZWQpKGUucHJvcGVydGllcygpLmNoaWxkcygpLmdyYXBoaWNzKS5jaGlsZHMoKTtyZXR1cm5bbmV3IG1lKCgoKT0+KDAscC5tYXBFbnRyaWVzR2VuZXJhdG9yKShlLmdyYXBoaWNzKCkudHBvcygpKSksZSwoZT0+e2NvbnN0IHM9KDAsaC5lbnN1cmVEZWZpbmVkKSh0LnRwb0Jsb2NrU2V0cykuY2hpbGRzKClbZV0uY2hpbGRzKCk7cmV0dXJuIHMuc2hvd0xldHRlcnMudmFsdWUoKXx8cy5zaG93QmxvY2tzLnZhbHVlKCl8fCgwLGguZW5zdXJlRGVmaW5lZCkodC50cG9Wb2x1bWVSb3dzKS5jaGlsZHMoKVtlXS5jaGlsZHMoKS52aXNpYmxlLnZhbHVlKCl9KSxmZSx5ZSksbmV3IG1lKCh0PT4oMCxwLm5lc3RlZE1hcEdlbmVyYXRvcikoZS5ncmFwaGljcygpLmR3Z2xhYmVscygpLHQpKSxlLChlPT4oMCxoLmVuc3VyZURlZmluZWQpKHQuZHdnbGFiZWxzKS5jaGlsZHMoKVtlXS5jaGlsZHMoKS52aXNpYmxlLnZhbHVlKCkpLHBlLGFlLmNhbGN1bGF0ZUR3Z0xhYmVsc01hcmdpbnMuYmluZChudWxsLGUpKSxuZXcgbWUoKHQ9PigwLHAubmVzdGVkTWFwR2VuZXJhdG9yKShlLmdyYXBoaWNzKCkuZHdnbGluZXMoKSx0KSksZSwoZT0+KDAsaC5lbnN1cmVEZWZpbmVkKSh0LmR3Z2xpbmVzKS5jaGlsZHMoKVtlXS5jaGlsZHMoKS52aXNpYmxlLnZhbHVlKCkpLGhlLHllKSxuZXcgbWUoKHQ9PigwLHAubmVzdGVkTWFwR2VuZXJhdG9yKShlLmdyYXBoaWNzKCkuZHdncG9seWxpbmVzKCksdCkpLGUsKGU9PigwLGguZW5zdXJlRGVmaW5lZCkodC5kd2dwb2x5bGluZXMpLmNoaWxkcygpW2VdLmNoaWxkcygpLnZpc2libGUudmFsdWUoKSksdWUseWUpLG5ldyBtZSgodD0+KDAscC5uZXN0ZWRNYXBHZW5lcmF0b3IpKGUuZ3JhcGhpY3MoKS5kd2dib3hlcygpLHQpKSxlLChlPT4oMCxoLmVuc3VyZURlZmluZWQpKHQuZHdnYm94ZXMpLmNoaWxkcygpW2VdLmNoaWxkcygpLnZpc2libGUudmFsdWUoKSksY2UseWUpLG5ldyBtZSgodD0+ZnVuY3Rpb24qKGUsdCl7Y29uc3Qgcz1lLmR3Z2xpbmVzKCksaT1lLmR3Z2xpbmVmaWxscygpLHI9bmV3IE1hcDtzLmZvckVhY2goKGU9PntpZih2b2lkIDA9PT10KWUuZm9yRWFjaCgoZT0+e2U/LmZvckVhY2goKGU9PntyLnNldChlLmlkLGUpfSkpfSkpO2Vsc2V7Y29uc3Qgcz1lLmdldCh0KTtzPy5mb3JFYWNoKChlPT57ci5zZXQoZS5pZCxlKX0pKX19KSk7Zm9yKGNvbnN0W2UsdF1vZiBpKXtjb25zdCBzPUFycmF5LmZyb20odCkuZmlsdGVyKChlPT5yLmhhcyhlLmxpbmUxKSkpO3MubGVuZ3RoJiYoeWllbGRbZSxuZXcgU2V0KHMpXSl9fShlLmdyYXBoaWNzKCksdCkpLGUsKGU9PigwLGguZW5zdXJlRGVmaW5lZCkodC5kd2dsaW5lZmlsbHMpLmNoaWxkcygpW2VdLmNoaWxkcygpLnZpc2libGUudmFsdWUoKSksKCh0LHMsaSxyKT0+e2NvbnN0IG49bmV3IE1hcDtmb3IoY29uc3RbLHRdb2YgZS5ncmFwaGljcygpLmR3Z2xpbmVzKCkpZm9yKGNvbnN0WyxlXW9mIHQpZm9yKGNvbnN0IHQgb2YgZSluLnNldCh0LmlkLHQpO3JldHVybiBmdW5jdGlvbihlLHQscyxpLHIpe2NvbnN0IG49ZS5nZXQodC5saW5lMSksYT1lLmdldCh0LmxpbmUyKTtyZXR1cm4gdm9pZCAwIT09biYmdm9pZCAwIT09YSYmKCgwLGxlLmRvZXNJdGVtQWZmZWN0VmlzaWJsZVJhbmdlKShuLngxLG4ueDIsbi5leHRlbmQsaSxyKXx8KDAsbGUuZG9lc0l0ZW1BZmZlY3RWaXNpYmxlUmFuZ2UpKGEueDEsYS54MixhLmV4dGVuZCxpLHIpKT9bbmV3IG9lKGksbi55MSwhMSksbmV3IG9lKHIsbi55MiwhMSksbmV3IG9lKGksYS55MSwhMSksbmV3IG9lKHIsYS55MiwhMSldOltdfShuLHQsMCxpLHIpfSkseWUpXX1mdW5jdGlvbiBTZShlLHQscyl7cmV0dXJuIG51bGw9PT10P2U6bnVsbD09PWU/dDplLmluZGV4PHQuaW5kZXg/cz90OmU6cz9lOnR9Y2xhc3MgYmV7Y29uc3RydWN0b3IoKXt0aGlzLmZpcnN0VmlzaWJsZT1udWxsLHRoaXMubGVmdENsb3Nlc3Q9bnVsbCx0aGlzLnJpZ2h0Q2xvc2VzdD1udWxsfWltcHJvdmUoZSl7dGhpcy5maXJzdFZpc2libGU9U2UodGhpcy5maXJzdFZpc2libGUsZS5maXJzdFZpc2libGUsITApLHRoaXMubGVmdENsb3Nlc3Q9U2UodGhpcy5sZWZ0Q2xvc2VzdCxlLmxlZnRDbG9zZXN0LCEwKSx0aGlzLnJpZ2h0Q2xvc2VzdD1TZSh0aGlzLnJpZ2h0Q2xvc2VzdCxlLnJpZ2h0Q2xvc2VzdCwhMSl9YmVzdFByaWNlKCl7cmV0dXJuIG51bGwhPT10aGlzLmZpcnN0VmlzaWJsZT90aGlzLmZpcnN0VmlzaWJsZS5wcmljZTpudWxsIT09dGhpcy5sZWZ0Q2xvc2VzdD90aGlzLmxlZnRDbG9zZXN0LnByaWNlOm51bGwhPT10aGlzLnJpZ2h0Q2xvc2VzdD90aGlzLnJpZ2h0Q2xvc2VzdC5wcmljZTpudWxsfX0KdmFyIHZlPXMoMTU2ODUwKSxQZT1zKDYzMjQ0NCksSWU9cyg0OTAzOTkpLHdlPXMoMTQzODA4KSxDZT1zKDk0MzEzMCksVmU9cyg3MjkxNjMpLHhlPXMoNzQxNjkwKSxBZT1zKDMxNDgwNiksUmU9cygyNDE5NTYpLE1lPXMoMjA1NjExKSxUZT1zKDU3MjI1KSxEZT1zKDYyODA2KSxGZT1zKDc4OTE5MCksT2U9cyg5MzQzMDUpO2NsYXNzIE5lIGV4dGVuZHMgT2UuQml0bWFwQ29vcmRpbmF0ZXNQYW5lUmVuZGVyZXJ7Y29uc3RydWN0b3IoZSl7c3VwZXIoKSx0aGlzLl9kYXRhPWV9aGl0VGVzdChlKXtyZXR1cm4gbnVsbH1fZHJhd0ltcGwoZSl7fV9kcmF3QmFja2dyb3VuZEltcGwoZSl7Y29uc3R7Y29udGV4dDp0LGhvcml6b250YWxQaXhlbFJhdGlvOnMsYml0bWFwU2l6ZTppfT1lLHI9dGhpcy5fZGF0YTtmb3IobGV0IGU9MDtlPHIuaXRlbXMubGVuZ3RoOysrZSl7Y29uc3Qgbj1yLml0ZW1zW2VdO2lmKG51bGw9PW4uY29sb3IpY29udGludWU7dC5maWxsU3R5bGU9bi5jb2xvcjtjb25zdCBhPU1hdGgucm91bmQobi5sZWZ0KnMpKzEsbz1NYXRoLnJvdW5kKG4ucmlnaHQqcyk7dC5maWxsUmVjdChhLDAsby1hKzEsaS5oZWlnaHQpfX19dmFyIGtlPXMoNjU1NTY5KSxCZT1zKDg0MDc3MSk7Y2xhc3MgRWUgZXh0ZW5kcyBCZS5TdHVkeUZvcmNlT3ZlcmxheVBsb3RWaWV3e2NvbnN0cnVjdG9yKGUsdCxzLGkpe3N1cGVyKHQscyxpKSx0aGlzLl9pdGVtcz1bXSx0aGlzLl9pbnZhbGlkYXRlZD0hMCx0aGlzLl9pc01hcmtlcnNFbmFibGVkPSgwLEkuaXNGZWF0dXJlc2V0RW5hYmxlZCkoInNvdXJjZV9zZWxlY3Rpb25fbWFya2VycyIpLHRoaXMuX3N0dWR5PWU7Y29uc3Qgcj10aGlzLl9zdHVkeS5tZXRhSW5mbygpLnBsb3RzO2ZvcihsZXQgZT0wO2U8ci5sZW5ndGg7ZSsrKXtjb25zdCB0PXJbZV07dC5pZD09PXRoaXMuX3Bsb3ROYW1lJiYodGhpcy5fcGxvdEluZGV4PWUsKDAsaC5hc3NlcnQpKCgwLFouaXNCZ0NvbG9yZXJQbG90KSh0KSwiUGxvdCAnIit0aGlzLl9wbG90TmFtZSsiJyBpcyBub3QgYSBiYWNrZ3JvdW5kIGNvbG9yZXIhIikpfXRoaXMuX2NvbG9yUHJvdmlkZXI9KDAsa2UuY3JlYXRlU3R1ZHlQbG90Q29sb3JQcm92aWRlcikoZS5tZXRhSW5mbygpLGUucHJvcGVydGllcygpLGkpfWl0ZW1zKCl7cmV0dXJuIHRoaXMuX2l0ZW1zfXVwZGF0ZShlKXsiaG92ZXItY2hhbmdlIiE9PWUudHlwZSYmKHRoaXMuX2ludmFsaWRhdGVkPSEwKX1yZW5kZXJlcigpe2lmKCgoMCxoLmVuc3VyZURlZmluZWQpKHRoaXMuX3N0dWR5LnByb3BlcnRpZXMoKS5jaGlsZHMoKS5zdHlsZXMuY2hpbGRzKClbdGhpcy5fcGxvdE5hbWVdKS5jaGlsZHMoKS5kaXNwbGF5LnZhbHVlKCkmWi5TdHVkeVBsb3REaXNwbGF5VGFyZ2V0LlBhbmUpIT09Wi5TdHVkeVBsb3REaXNwbGF5VGFyZ2V0LlBhbmUpcmV0dXJuIG51bGw7aWYoIXRoaXMuX3NjYWxlc1JlYWR5KCkpcmV0dXJuIG51bGw7dGhpcy5faW52YWxpZGF0ZWQmJih0aGlzLl91cGRhdGVJbXBsKCksdGhpcy5faW52YWxpZGF0ZWQ9ITEpO2NvbnN0IGU9e2l0ZW1zOnRoaXMuX2l0ZW1zfSx0PW5ldyBGZS5Db21wb3NpdGVSZW5kZXJlcjtyZXR1cm4gdC5hcHBlbmQobmV3IE5lKGUpKSx0fV9zY2FsZXNSZWFkeSgpe2NvbnN0IGU9dGhpcy5fbW9kZWwudGltZVNjYWxlKCksdD10aGlzLl9wcmljZVNjYWxlKCk7cmV0dXJuIWUuaXNFbXB0eSgpJiZudWxsIT09dCYmIXQuaXNFbXB0eSgpfV9nZXRUcmFuc3BWYWx1ZSgpe2NvbnN0IGU9KDAsaC5lbnN1cmVEZWZpbmVkKSh0aGlzLl9zdHVkeS5wcm9wZXJ0aWVzKCkuY2hpbGRzKCkuc3R5bGVzLmNoaWxkcygpW3RoaXMuX3Bsb3ROYW1lXSkuY2hpbGRzKCk7bGV0IHQ9MDtyZXR1cm4gZS50cmFuc3BhcmVuY3kmJih0PWUudHJhbnNwYXJlbmN5LnZhbHVlKCksdD0oMCx1LmlzTnVtYmVyKSh0KT90OjQwKSx0fV91cGRhdGVJbXBsKCl7dGhpcy5faXRlbXM9W10sKDAsaC5hc3NlcnQpKHRoaXMuX3NjYWxlc1JlYWR5KCksIlNjYWxlcyBtdXN0IGJlIHJlYWR5ISIpO2NvbnN0IGU9dGhpcy5fbW9kZWwudGltZVNjYWxlKCkudmlzaWJsZUJhcnNTdHJpY3RSYW5nZSgpO2lmKG51bGw9PT1lKXJldHVybjtjb25zdCB0PXRoaXMuX2dldFRyYW5zcFZhbHVlKCk7bGV0IHM9KDAsaC5lbnN1cmVEZWZpbmVkKSh0aGlzLl9zZXJpZXMubmVhcmVzdEluZGV4KGUuZmlyc3RCYXIoKSxTLlBsb3RSb3dTZWFyY2hNb2RlLk5lYXJlc3RSaWdodCkpLGk9KDAsaC5lbnN1cmVEZWZpbmVkKSh0aGlzLl9zZXJpZXMubmVhcmVzdEluZGV4KGUubGFzdEJhcigpLFMuUGxvdFJvd1NlYXJjaE1vZGUuTmVhcmVzdExlZnQpKTtjb25zdCByPXRoaXMuX3N0dWR5Lm9mZnNldCh0aGlzLl9wbG90TmFtZSk7cj4wPyhzLT1yLGkrPXIpOihzKz1yLGktPXIpO2NvbnN0IG49dGhpcy5fc3R1ZHkuZ2V0TWluRmlyc3RCYXJJbmRleEZvclBsb3QodGhpcy5fcGxvdE5hbWUpO2lmKG4+aSlyZXR1cm47cz1NYXRoLm1heChuLHMpO2NvbnN0IGE9dGhpcy5fc3R1ZHkuZGF0YSgpO2Zvcihjb25zdCBlIG9mIGEucmFuZ2VJdGVyYXRvcihzLGkpKXtsZXQgcz1lLmluZGV4O2NvbnN0IGk9ZS52YWx1ZTtzKz1yO2NvbnN0IG49e3RpbWVQb2ludEluZGV4Ok1hdGguZmxvb3IocyksbGVmdDpOYU4sY2VudGVyOk5hTixyaWdodDpOYU59O2xldCBhPSgwLHUuaXNOdW1iZXIpKHQpP3Q6NTA7YT1NYXRoLm1pbihhLDEwMCksYT1NYXRoLm1heChhLDApO2NvbnN0IG89dGhpcy5fY29sb3JQcm92aWRlci5nZXRQbG90UG9pbnRTdHlsZShpKTt2b2lkIDAhPT1vLmNvbG9yc1sxXSYmKG4uY29sb3I9KDAsTC5nZW5lcmF0ZUNvbG9yKSgoMCxoLmVuc3VyZURlZmluZWQpKG8uY29sb3JzWzFdKSxhKSksdGhpcy5faXRlbXMucHVzaChuKX10aGlzLl9tb2RlbC50aW1lU2NhbGUoKS5maWxsQmFyQm9yZGVycyh0aGlzLl9pdGVtcyl9fQp2YXIgTGU9cygyODQ4MzEpLEhlPXMoNTkwNDIzKSxVZT1zKDM3MDYyMiksV2U9cyg1ODk1MTEpLEdlPXMoNjE5MTY1KSxqZT1zKDI1MDQ2NyksemU9cyg2NDA3NDQpLCRlPXMoMTQzOTMyKSxLZT1zKDk3MDQzNCkscWU9cyg2NTE5NjYpLEplPXMoMzMwODYxKSxZZT1zKDMwMjQ2OSksWmU9cyg3NDc0NjUpLFhlPXMoNTQ0MjQzKSxRZT1zKDE2ODQ4NyksZXQ9cyg0MDc1ODQpLHR0PXMoMTE4NzUyKSxzdD1zKDM2MzMyNiksaXQ9cygzMDMyNzApO2NvbnN0IHJ0PW5ldyBNYXA7cnQuc2V0KCJQYW5lUmVuZGVyZXJBcnJvd1VwIixxZS5QYW5lUmVuZGVyZXJBcnJvd1VwKSxydC5zZXQoIlBhbmVSZW5kZXJlckFycm93RG93biIscWUuUGFuZVJlbmRlcmVyQXJyb3dEb3duKSxydC5zZXQoIlBhbmVSZW5kZXJlckNpcmNsZVNoYXBlIixKZS5QYW5lUmVuZGVyZXJDaXJjbGVTaGFwZSkscnQuc2V0KCJQYW5lUmVuZGVyZXJDcm9zc1NoYXBlIixZZS5QYW5lUmVuZGVyZXJDcm9zc1NoYXBlKSxydC5zZXQoIlBhbmVSZW5kZXJlckRpYW1vbmQiLFplLlBhbmVSZW5kZXJlckRpYW1vbmQpLHJ0LnNldCgiUGFuZVJlbmRlcmVyRmxhZ1NoYXBlIixYZS5QYW5lUmVuZGVyZXJGbGFnU2hhcGUpLHJ0LnNldCgiUGFuZVJlbmRlcmVyTGFiZWxVcCIsUWUuUGFuZVJlbmRlcmVyTGFiZWxVcCkscnQuc2V0KCJQYW5lUmVuZGVyZXJMYWJlbERvd24iLFFlLlBhbmVSZW5kZXJlckxhYmVsRG93bikscnQuc2V0KCJQYW5lUmVuZGVyZXJTcXVhcmUiLGV0LlBhbmVSZW5kZXJlclNxdWFyZSkscnQuc2V0KCJQYW5lUmVuZGVyZXJUcmlhbmdsZUFwZXhVcCIsdHQuUGFuZVJlbmRlcmVyVHJpYW5nbGVBcGV4VXApLHJ0LnNldCgiUGFuZVJlbmRlcmVyVHJpYW5nbGVBcGV4RG93biIsdHQuUGFuZVJlbmRlcmVyVHJpYW5nbGVBcGV4RG93bikscnQuc2V0KCJQYW5lUmVuZGVyZXJYQ3Jvc3MiLHN0LlBhbmVSZW5kZXJlclhDcm9zcyk7Y2xhc3MgbnQgZXh0ZW5kcyBpdC5TdHVkeVBhbmVWaWV3SW5wbGFjZVVwZGF0YWJsZXtjb25zdHJ1Y3RvcihlLHQscyxpKXtzdXBlcih0LHMsaSksdGhpcy5fcmVuZGVyZXI9bnVsbCx0aGlzLl9zaGFwZXNSZW5kZXJlcj1udWxsLHRoaXMuX3NlbGVjdGlvblJlbmRlcmVyPW51bGwsdGhpcy5faXNNYXJrZXJzRW5hYmxlZD0oMCxJLmlzRmVhdHVyZXNldEVuYWJsZWQpKCJzb3VyY2Vfc2VsZWN0aW9uX21hcmtlcnMiKSx0aGlzLl9zdHVkeT1lO2NvbnN0IHI9ZS5tZXRhSW5mbygpLnBsb3RzO2ZvcihsZXQgZT0wO2U8ci5sZW5ndGg7ZSsrKWlmKHJbZV0uaWQ9PT10aGlzLl9wbG90TmFtZSl7dGhpcy5fcGxvdEluZGV4PWU7YnJlYWt9dGhpcy5fcGxvdFN0eWxlSW5mbz0oMCxoLmVuc3VyZURlZmluZWQpKGUubWV0YUluZm8oKS5zdHlsZXM/Llt0aGlzLl9wbG90TmFtZV0pLHRoaXMuX2NvbG9yUHJvdmlkZXI9KDAsa2UuY3JlYXRlU3R1ZHlQbG90Q29sb3JQcm92aWRlcikoZS5tZXRhSW5mbygpLGUucHJvcGVydGllcygpLGkpLHRoaXMuX3NlbGVjdGlvbkluZGV4ZXI9bmV3ICRlLlNlbGVjdGlvbkluZGV4ZXMocy50aW1lU2NhbGUoKSl9aXRlbXMoKXtyZXR1cm4gdGhpcy5faXRlbXN9cmVuZGVyZXIoKXtyZXR1cm4gdGhpcy5faXNQbG90VmlzaWJsZSgpJiZ0aGlzLl9zY2FsZXNSZWFkeSgpPyh0aGlzLl9tYWtlU3VyZVJlbmRlcmVySXNWYWxpZCgpLHRoaXMuX3JlbmRlcmVyKTpudWxsfV9pc1Bsb3RWaXNpYmxlKCl7cmV0dXJuIHRoaXMuX3N0dWR5LmlzUGxvdFZpc2libGVBdCh0aGlzLl9wbG90TmFtZSxqZS5TdHVkeVBsb3REaXNwbGF5VGFyZ2V0LlBhbmUpfV9zY2FsZXNSZWFkeSgpe2NvbnN0IGU9dGhpcy5fbW9kZWwudGltZVNjYWxlKCksdD10aGlzLl9wcmljZVNjYWxlKCk7cmV0dXJuIG51bGwhPT10JiYhZS5pc0VtcHR5KCkmJiF0LmlzRW1wdHkoKX1fdXBkYXRlSW1wbEZ1bGwoZSl7aWYodGhpcy5fZGF0YUludmFsaWRhdGVkPy5jbGVhckRhdGEmJih0aGlzLl9pdGVtcz1bXSx0aGlzLl9yZW5kZXJlcj1udWxsKSwhdGhpcy5fc2NhbGVzUmVhZHkoKSlyZXR1cm4hMTtjb25zdCB0PXRoaXMuX21vZGVsLnRpbWVTY2FsZSgpLHM9dGhpcy5fcHJpY2VTY2FsZSgpLGk9dC52aXNpYmxlQmFyc1N0cmljdFJhbmdlKCk7aWYobnVsbD09PWl8fG51bGw9PT1zKXJldHVybiExO2NvbnN0IHI9dGhpcy5fc3R1ZHkucGxvdHMoKS5wbG90dGFibGVSYW5nZSghMSk7aWYoMD09PXIuc2l6ZSgpKXJldHVybiExO2NvbnN0IG49dGhpcy5fc3R1ZHkub2Zmc2V0KHRoaXMuX3Bsb3ROYW1lKSxhPXRoaXMuX3N0dWR5LmZpcnN0VmFsdWUodm9pZCAwLHRoaXMuaXNGb3JjZU92ZXJsYXkoKSk7aWYobnVsbD09PWEpcmV0dXJuITE7dGhpcy5fdXBkYXRlQWRkaXRpb25hbFByaWNlcyhzLGEpO2NvbnN0e2hpUGxvdDpvLGxvUGxvdDpsfT10aGlzLl9oaUxvUGxvdHMoKSx1PXRoaXMuX3ByZWFsbG9jYXRlSXRlbXMociwoKGUsdCk9PnRoaXMuX2NyZWF0ZUl0ZW0oZSx0Pz9udWxsLG8sbCxuKSkpO2xldCBjPXRoaXMuX3Nlcmllcy5uZWFyZXN0SW5kZXgoaS5maXJzdEJhcigpLFMuUGxvdFJvd1NlYXJjaE1vZGUuTmVhcmVzdFJpZ2h0KSxkPXRoaXMuX3Nlcmllcy5uZWFyZXN0SW5kZXgoaS5sYXN0QmFyKCksUy5QbG90Um93U2VhcmNoTW9kZS5OZWFyZXN0TGVmdCk7aWYodm9pZCAwPT09Y3x8dm9pZCAwPT09ZClyZXR1cm4hMTtuPjA/KGMtPW4sZCs9bik6KGMrPW4sZC09bik7Y29uc3QgXz10aGlzLl9zdHVkeS5nZXRNaW5GaXJzdEJhckluZGV4Rm9yUGxvdCh0aGlzLl9wbG90TmFtZSk7aWYoXz5kKXJldHVybiEwO2M9TWF0aC5tYXgoXyxjKTtjb25zdCBmPXRoaXMuX2dldFRyYW5zcFZhbHVlKCksbT10aGlzLl9zdHVkeS5wcm9wZXJ0aWVzKCkuY2hpbGRzKCkuc3R5bGVzLmNoaWxkcygpW3RoaXMuX3Bsb3ROYW1lXS5jaGlsZHMoKSx5PW0uY29sb3IudmFsdWUoKSxnPW0udGV4dENvbG9yP20udGV4dENvbG9yLnZhbHVlKCk6dm9pZCAwLGI9eSx2PXksUD12b2lkIDA9PT1nP3ZvaWQgMDpnLEk9KDAsaC5lbnN1cmVOb3ROdWxsKSh0aGlzLl9wbG90SW5kZXgpLHc9KDAsS2UuY3JlYXRlRW1wdHlTdHlsZSkoKSxDPXU/PygwLApoLmVuc3VyZU5vdE51bGwpKHIuZmlyc3RJbmRleCgpKSxWPXIucmFuZ2VJdGVyYXRvcihDLCgwLGguZW5zdXJlTm90TnVsbCkoci5sYXN0SW5kZXgoKSkrMSk7bGV0IHg9KDAscC5sb3dlcmJvdW5kKSh0aGlzLl9pdGVtcyxDK24sKChlLHQpPT5lLnRpbWVQb2ludEluZGV4PHQpKTtmb3IoY29uc3QgZSBvZiBWKXtjb25zdCB0PWUudmFsdWUscz10W0krMV07aWYobnVsbD09cyl7eCsrO2NvbnRpbnVlfWNvbnN0IGk9dGhpcy5faXRlbXNbeF07aWYoIWlzTmFOKGkucHJpY2UpKXtpZih0aGlzLl9jb2xvclByb3ZpZGVyLmlzQ29sb3JEZWZpbmVkKCkpe2kuc3R5bGU9e2NvbG9yOmIsYm9yZGVyQ29sb3I6dix0ZXh0Q29sb3I6UH07Y29uc3QgZT10aGlzLl9jb2xvclByb3ZpZGVyLmdldFBsb3RQb2ludFN0eWxlKHQsdyk7dGhpcy5fZmlsbEl0ZW1XaXRoUG9pbnRTdHlsZShpLGUsZil9fXgrK31yZXR1cm4gdGhpcy5fdXBkYXRlSW1wbExpZ2h0KCksITB9X2ZpbGxJdGVtV2l0aFBvaW50U3R5bGUoZSx0LHMpe2NvbnN0IGk9KDAsaC5lbnN1cmVEZWZpbmVkKShlLnN0eWxlKTtpZih2b2lkIDAhPT10LmNvbG9yc1swXSl7aS5jb2xvcj0oMCxMLmdlbmVyYXRlQ29sb3IpKCgwLGguZW5zdXJlRGVmaW5lZCkodC5jb2xvcnNbMF0pLHMpO2NvbnN0IGU9cz45P3MtMTA6MDtpLmJvcmRlckNvbG9yPSgwLEwuZ2VuZXJhdGVDb2xvcikoaS5jb2xvcixlKX12b2lkIDAhPT10LmNvbG9yc1syXSYmKGkudGV4dENvbG9yPSgwLEwuZ2VuZXJhdGVDb2xvcikoKDAsaC5lbnN1cmVEZWZpbmVkKSh0LmNvbG9yc1syXSkscykpfV91cGRhdGVSZW5kZXJlcihlLHQpe3RoaXMuX21ha2VTdXJlUmVuZGVyZXJJc1ZhbGlkKCk7Y29uc3Qgcz10aGlzLl9tb2RlbC50aW1lU2NhbGUoKSxpPXt9LHI9dGhpcy5fZ2V0VHJhbnNwVmFsdWUoKSxuPXMuYmFyU3BhY2luZygpLGE9dGhpcy5fY2FsY3VsYXRlU2hhcGVIZWlnaHQobiksbz10aGlzLl9zdHVkeS5wcm9wZXJ0aWVzKCkuY2hpbGRzKCkuc3R5bGVzLmNoaWxkcygpW3RoaXMuX3Bsb3ROYW1lXS5jaGlsZHMoKSxsPW8ubG9jYXRpb24udmFsdWUoKSxoPXRoaXMuX2NhbGN1bGF0ZVZlcnRpY2FsT2Zmc2V0KGwsYSthLzIpO2kuYmFyU3BhY2luZz1uLGkuaXRlbXM9dGhpcy5faXRlbXMsaS5jb2xvcj0oMCxMLmdlbmVyYXRlQ29sb3IpKG8uY29sb3IudmFsdWUoKSxyKSxpLmhlaWdodD1hLGkudmVydE9mZnNldD1oLGkudmlzaWJsZUl0ZW1zUmFuZ2U9e3N0YXJ0SXRlbUluZGV4OmUsZW5kSXRlbUluZGV4OnR9O2NvbnN0IHU9by5wbG90dHlwZS52YWx1ZSgpLGM9VWUucGxvdFNoYXBlc0RhdGFbdV0sZD1uZXcgRmUuQ29tcG9zaXRlUmVuZGVyZXI7YyYmKHRoaXMuX3NoYXBlc1JlbmRlcmVyP3RoaXMuX3NoYXBlc1JlbmRlcmVyLnNldERhdGEoaSk6KHRoaXMuX3NoYXBlc1JlbmRlcmVyPXRoaXMuX2NyZWF0ZVJlbmRlcmVyKGMucGFuZVJlbmRlcmVyQ2xhc3MsaSksZC5hcHBlbmQodGhpcy5fc2hhcGVzUmVuZGVyZXIpKSksdGhpcy5faXNNYXJrZXJzRW5hYmxlZCYmbnVsbCE9PXRoaXMuX3NlbGVjdGlvbkRhdGEmJih0aGlzLl9zZWxlY3Rpb25EYXRhLnZlcnRPZmZzZXQ9aCxkLmFwcGVuZChuZXcgSGUuU2VsZWN0aW9uUmVuZGVyZXIodGhpcy5fc2VsZWN0aW9uRGF0YSkpKSx0aGlzLl9yZW5kZXJlcj1kfV9jcmVhdGVSZW5kZXJlcihlLHQpe2NvbnN0IHM9cnQuZ2V0KGUpO3JldHVybiBuZXcoKDAsaC5lbnN1cmVEZWZpbmVkKShzKSkodCl9X2dldFNlcmllc1ZhbChlLHQpe2NvbnN0IHM9KDAsR2UuYmFyRnVuY3Rpb24pKGUpLGk9dGhpcy5fc2VyaWVzLmRhdGEoKS52YWx1ZUF0KHQpO3JldHVybiBudWxsPT09aT9udWxsOnMoaSl9X2dldFRyYW5zcFZhbHVlKCl7bGV0IGU9MDtjb25zdCB0PXRoaXMuX3N0dWR5LnByb3BlcnRpZXMoKS5jaGlsZHMoKTt0LnRyYW5zcGFyZW5jeSYmKGU9dC50cmFuc3BhcmVuY3kudmFsdWUoKSxlPSgwLHUuaXNOdW1iZXIpKGUpP2U6NTApO2NvbnN0IHM9dC5zdHlsZXMuY2hpbGRzKClbdGhpcy5fcGxvdE5hbWVdLmNoaWxkcygpO3JldHVybiBzLnRyYW5zcGFyZW5jeSYmKGU9cy50cmFuc3BhcmVuY3kudmFsdWUoKSxlPSgwLHUuaXNOdW1iZXIpKGUpP2U6NTApLCgwLHplLmNsYW1wKShlLDAsMTAwKX1fY3JlYXRlSXRlbShlLHQscyxpLHIpe2NvbnN0IG49dGhpcy5fc3R1ZHkucHJvcGVydGllcygpLmNoaWxkcygpLnN0eWxlcy5jaGlsZHMoKVt0aGlzLl9wbG90TmFtZV0uY2hpbGRzKCkubG9jYXRpb24udmFsdWUoKSxhPXtwcmljZTpOYU4sdGltZVBvaW50SW5kZXg6ZStyfTtpZigobnVsbD09PXR8fDA9PT10KSYmbiE9PWIuTWFya0xvY2F0aW9uLkFic29sdXRlKXJldHVybiBhO2lmKG51bGw9PXQpcmV0dXJuIGE7bGV0IG89TmFOO3N3aXRjaChuKXtjYXNlIGIuTWFya0xvY2F0aW9uLkFib3ZlQmFyOntjb25zdCB0PXRoaXMuX2dldExvY2F0aW9uUHJpY2UoZSxzLHIpO2lmKG51bGw9PT10KXJldHVybiBhO289dDticmVha31jYXNlIGIuTWFya0xvY2F0aW9uLkJlbG93QmFyOntjb25zdCB0PXRoaXMuX2dldExvY2F0aW9uUHJpY2UoZSxpLHIpO2lmKG51bGw9PT10KXJldHVybiBhO289dDticmVha31jYXNlIGIuTWFya0xvY2F0aW9uLkFic29sdXRlOm89KDAsaC5lbnN1cmVOb3ROdWxsKSh0KTticmVhaztjYXNlIGIuTWFya0xvY2F0aW9uLlRvcDpjYXNlIGIuTWFya0xvY2F0aW9uLkJvdHRvbTpvPTA7YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoIkJhZCB2YWx1ZTogIituKX1yZXR1cm57eTpOYU4scHJpY2U6byx0aW1lUG9pbnRJbmRleDplK3J9fV9kZXBlbmRzT25TZXJpZXNEYXRhKCl7Y29uc3QgZT10aGlzLl9zdHVkeS5wcm9wZXJ0aWVzKCkuY2hpbGRzKCkuc3R5bGVzLmNoaWxkcygpW3RoaXMuX3Bsb3ROYW1lXS5jaGlsZHMoKS5sb2NhdGlvbi52YWx1ZSgpO3JldHVybiBlPT09Yi5NYXJrTG9jYXRpb24uQWJvdmVCYXJ8fGU9PT1iLk1hcmtMb2NhdGlvbi5CZWxvd0Jhcn1fZ2V0VmFsdWVGb3JVcGRhdGluZyhlKXtjb25zdCB0PWUudmFsdWVbdGhpcy5fcGxvdEluZGV4KzFdO2lmKG51bGw9PXQpcmV0dXJuIG51bGwKO2NvbnN0IHM9dGhpcy5fc3R1ZHkucHJvcGVydGllcygpLmNoaWxkcygpLnN0eWxlcy5jaGlsZHMoKVt0aGlzLl9wbG90TmFtZV0uY2hpbGRzKCkubG9jYXRpb24udmFsdWUoKTtpZigwPT09dCYmcyE9PWIuTWFya0xvY2F0aW9uLkFic29sdXRlKXJldHVybiBudWxsO2NvbnN0IGk9dGhpcy5fc3R1ZHkub2Zmc2V0KHRoaXMuX3Bsb3ROYW1lKSx7aGlQbG90OnIsbG9QbG90Om59PXRoaXMuX2hpTG9QbG90cygpO3N3aXRjaChzKXtjYXNlIGIuTWFya0xvY2F0aW9uLkFib3ZlQmFyOnJldHVybiB0aGlzLl9nZXRMb2NhdGlvblByaWNlKGUuaW5kZXgscixpKTtjYXNlIGIuTWFya0xvY2F0aW9uLkJlbG93QmFyOnJldHVybiB0aGlzLl9nZXRMb2NhdGlvblByaWNlKGUuaW5kZXgsbixpKX1yZXR1cm4gc3VwZXIuX2dldFZhbHVlRm9yVXBkYXRpbmcoZSl9X2NvbnZlcnRJdGVtc1RvQ29vcmRpbmF0ZXMoZSx0LHMsaSl7dGhpcy5fbW9kZWwudGltZVNjYWxlKCkuZmlsbEJhckJvcmRlcnModGhpcy5faXRlbXMpO2NvbnN0IHI9dGhpcy5fc3R1ZHkucHJvcGVydGllcygpLmNoaWxkcygpLnN0eWxlcy5jaGlsZHMoKVt0aGlzLl9wbG90TmFtZV0uY2hpbGRzKCkubG9jYXRpb24udmFsdWUoKSxuPWUuaGVpZ2h0KCkqZS50b3BNYXJnaW4oKSxhPWUuaGVpZ2h0KCkqKDEtZS5ib3R0b21NYXJnaW4oKSksbz1lLmlzSW52ZXJ0ZWQoKSxsPW8/YTpuLGg9bz9uOmEsdT1lPT57Zm9yKGxldCB0PXM7dDxpO3QrKylpc05hTih0aGlzLl9pdGVtc1t0XS5wcmljZSl8fCh0aGlzLl9pdGVtc1t0XS55PWUpfTtzd2l0Y2gocil7Y2FzZSBiLk1hcmtMb2NhdGlvbi5Ub3A6dShsKTticmVhaztjYXNlIGIuTWFya0xvY2F0aW9uLkJvdHRvbTp1KGgpO2JyZWFrO2RlZmF1bHQ6ZS5maWxsWUNvb3JkaW5hdGVzKHRoaXMuX2l0ZW1zLHQse3N0YXJ0SXRlbUluZGV4OnMsZW5kSXRlbUluZGV4Oml9KX19X2NhbGN1bGF0ZVZlcnRpY2FsT2Zmc2V0KGUsdCl7bGV0IHM9MDtzd2l0Y2goZSl7Y2FzZSBiLk1hcmtMb2NhdGlvbi5BYm92ZUJhcjpjYXNlIGIuTWFya0xvY2F0aW9uLkJvdHRvbTpzPS10O2JyZWFrO2Nhc2UgYi5NYXJrTG9jYXRpb24uQmVsb3dCYXI6Y2FzZSBiLk1hcmtMb2NhdGlvbi5Ub3A6cz10fXJldHVybigwLGguZW5zdXJlTm90TnVsbCkodGhpcy5fcHJpY2VTY2FsZSgpKS5pc0ludmVydGVkKCkmJihzKj0tMSksc31fY2FsY3VsYXRlU2hhcGVIZWlnaHQoZSx0KXtsZXQgcz1lO3N3aXRjaCh0KXtjYXNlIFdlLlBsb3RTeW1ib2xTaXplLlRpbnk6cz0uMyplO2JyZWFrO2Nhc2UgV2UuUGxvdFN5bWJvbFNpemUuU21hbGw6cz0uNiplO2JyZWFrO2Nhc2UgV2UuUGxvdFN5bWJvbFNpemUuTm9ybWFsOnM9ZTticmVhaztjYXNlIFdlLlBsb3RTeW1ib2xTaXplLkxhcmdlOnM9MS41KmU7YnJlYWs7Y2FzZSBXZS5QbG90U3ltYm9sU2l6ZS5IdWdlOnM9MiplfXJldHVybiJudW1iZXIiPT10eXBlb2YgdCYmdD4wJiYocz10KSxzfV9oaUxvUGxvdHMoKXtsZXQgZSx0O2xldCBzPW51bGw7c3dpdGNoKHRoaXMuX3Nlcmllcy5wcm9wZXJ0aWVzKCkuY2hpbGRzKCkuc3R5bGUudmFsdWUoKSl7Y2FzZSAyOnM9ImxpbmVTdHlsZSI7YnJlYWs7Y2FzZSAxNDpzPSJsaW5lV2l0aE1hcmtlcnNTdHlsZSI7YnJlYWs7Y2FzZSAxNTpzPSJzdGVwbGluZVN0eWxlIjticmVhaztjYXNlIDM6cz0iYXJlYVN0eWxlIn1yZXR1cm4gcz8oZT10aGlzLl9zZXJpZXMucHJvcGVydGllcygpLmNoaWxkcygpW3NdLmNoaWxkcygpLnByaWNlU291cmNlLnZhbHVlKCksdD1lKTooZT0iaGlnaCIsdD0ibG93Iikse2hpUGxvdDplLGxvUGxvdDp0fX1fZ2V0TG9jYXRpb25QcmljZShlLHQscyl7Y29uc3QgaT1NYXRoLm1pbihlK3MsKDAsaC5lbnN1cmVOb3ROdWxsKSh0aGlzLl9zZXJpZXMuZGF0YSgpLmxhc3QoKSkuaW5kZXgpO3JldHVybiB0aGlzLl9nZXRTZXJpZXNWYWwodCxpKX19Y2xhc3MgYXQgZXh0ZW5kcyBudHtfdXBkYXRlUmVuZGVyZXIoZSx0KXtjb25zdCBzPXRoaXMuX3N0dWR5LnByb3BlcnRpZXMoKS5jaGlsZHMoKS5zdHlsZXMuY2hpbGRzKClbdGhpcy5fcGxvdE5hbWVdLmNoaWxkcygpLGk9dGhpcy5fbW9kZWwudGltZVNjYWxlKCkscj17fSxuPXRoaXMuX2dldFRyYW5zcFZhbHVlKCksYT1pLmJhclNwYWNpbmcoKTtsZXQgbztvPXRoaXMuX3Bsb3RTdHlsZUluZm8uc2l6ZT90aGlzLl9jYWxjdWxhdGVTaGFwZUhlaWdodCgyNSx0aGlzLl9wbG90U3R5bGVJbmZvLnNpemUpOk1hdGgucm91bmQoYS8yKSxvPU1hdGgubWF4KG8sMSk7Y29uc3QgbD1zLmxvY2F0aW9uLnZhbHVlKCksaD0oMCxMLmdlbmVyYXRlQ29sb3IpKHMuY29sb3IudmFsdWUoKSxuKSx1PW4+MTk/bi0xMDowLGM9dGhpcy5fY2FsY3VsYXRlVmVydGljYWxPZmZzZXQobCxNYXRoLnJvdW5kKDEuNSpvKSk7ci5iYXJTcGFjaW5nPWEsci5pdGVtcz10aGlzLml0ZW1zKCksci5jb2xvcj1oLHIuYm9yZGVyQ29sb3I9KDAsTC5nZW5lcmF0ZUNvbG9yKShzLmNvbG9yLnZhbHVlKCksdSksci5oZWlnaHQ9byxyLnZlcnRPZmZzZXQ9YyxyLnZpc2libGVJdGVtc1JhbmdlPXtzdGFydEl0ZW1JbmRleDplLGVuZEl0ZW1JbmRleDp0fTtjb25zdCBkPXMucGxvdHR5cGUudmFsdWUoKSxwPVVlLnBsb3RTaGFwZXNEYXRhW2RdLF89dGhpcy5fcGxvdFN0eWxlSW5mby50ZXh0O2lmKHZvaWQgMCE9PV8mJiIiIT09Xy50cmltKCkpe2xldCBlPV8ucmVwbGFjZSgvXFxuL2dtLCJcbiIpO2U9KDAsTGUuY2xlYW5CdXRBbXBlcnNhbmQpKGUsITApLHIudGV4dD1lLHIuZm9udFNpemU9MTI7Y29uc3QgdD1zLnRleHRDb2xvcj9zLnRleHRDb2xvci52YWx1ZSgpOnZvaWQgMDtyLnRleHRDb2xvcj10PygwLEwuZ2VuZXJhdGVDb2xvcikodCxuKTpofWlmKHRoaXMuX3JlbmRlcmVyJiZ0aGlzLl9zaGFwZXNSZW5kZXJlciYmdGhpcy5fc2VsZWN0aW9uUmVuZGVyZXIpdGhpcy5fc2hhcGVzUmVuZGVyZXIuc2V0RGF0YShyKSwKdGhpcy5fbW9kZWwuc2VsZWN0aW9uKCkuaXNTZWxlY3RlZCh0aGlzLl9zdHVkeSkmJnRoaXMuX2lzTWFya2Vyc0VuYWJsZWQmJm51bGwhPT10aGlzLl9zZWxlY3Rpb25EYXRhPyh0aGlzLl9zZWxlY3Rpb25EYXRhLnZlcnRPZmZzZXQ9Yyx0aGlzLl9zZWxlY3Rpb25SZW5kZXJlci5zZXREYXRhKHRoaXMuX3NlbGVjdGlvbkRhdGEpKTp0aGlzLl9zZWxlY3Rpb25SZW5kZXJlci5zZXREYXRhKG51bGwpO2Vsc2V7Y29uc3QgZT1uZXcgRmUuQ29tcG9zaXRlUmVuZGVyZXI7dGhpcy5fc2hhcGVzUmVuZGVyZXI9c3VwZXIuX2NyZWF0ZVJlbmRlcmVyKHAucGFuZVJlbmRlcmVyQ2xhc3MsciksZS5hcHBlbmQodGhpcy5fc2hhcGVzUmVuZGVyZXIpLHRoaXMuX3NlbGVjdGlvblJlbmRlcmVyPW5ldyBIZS5TZWxlY3Rpb25SZW5kZXJlcih0aGlzLl9zZWxlY3Rpb25EYXRhPz92b2lkIDApLHRoaXMuX2lzTWFya2Vyc0VuYWJsZWQmJm51bGwhPT10aGlzLl9zZWxlY3Rpb25EYXRhP3RoaXMuX3NlbGVjdGlvbkRhdGEudmVydE9mZnNldD1jOnRoaXMuX3NlbGVjdGlvblJlbmRlcmVyLnNldERhdGEobnVsbCksZS5hcHBlbmQodGhpcy5fc2VsZWN0aW9uUmVuZGVyZXIpLHRoaXMuX3JlbmRlcmVyPWV9fX12YXIgb3QsbHQ9cyg5NTM2NjApLGh0PXMubihsdCksdXQ9cyg3MzY1MzEpLGN0PXMoNTkwODk0KSxkdD1zKDg3NDEzNSkscHQ9cyg3NjMpLF90PXMoNjA0MjE0KSxmdD1zKDgyMjcyNiksbXQ9cyg5MjYxNDkpLHl0PXMoMTUxMjEpOyFmdW5jdGlvbihlKXtlW2UuU2ltcGxpZmllZFBhaW50aW5nTWF4Rm9udFNpemU9NF09IlNpbXBsaWZpZWRQYWludGluZ01heEZvbnRTaXplIn0ob3R8fChvdD17fSkpO2NsYXNzIGd0IGV4dGVuZHMgZHQuUGFuZVJlbmRlcmVyQWJzdHJhY3RTaGFwZXtjb25zdHJ1Y3RvcihlLHQpe3N1cGVyKG51bGwsdCksdGhpcy5fdGV4dFdpZHRoQ2FjaGU9bmV3IGZ0LlRleHRXaWR0aENhY2hlLHRoaXMuX2ZvbnRTaXplRW5zdXJlZD0wLHRoaXMuX2N1c3RvbUZvbnRGYW1pbHk9dm9pZCAwLHRoaXMuX2NoPSIiLG51bGwhPT1lJiZ0aGlzLnNldERhdGEoZSl9c2V0RGF0YShlKXtzdXBlci5zZXREYXRhKGUpLHRoaXMuX2ZvbnRTaXplRW5zdXJlZD0oMCxoLmVuc3VyZURlZmluZWQpKHRoaXMuX2hlaWdodCksdGhpcy5fY3VzdG9tRm9udEZhbWlseT1lLmZvbnRGYW1pbHk7Y29uc3QgdD1lLmNoYXIuc2xpY2UoMCw0MCk7dGhpcy5fY2g9aHQoKSh0KVswXXx8IiAifWhpdFRlc3QoZSl7Y29uc3QgdD0oMCxfdC5pbnRlcmFjdGlvblRvbGVyYW5jZSkoKS5zZXJpZXMrdGhpcy5fZm9udFNpemVFbnN1cmVkLzI7Zm9yKGNvbnN0IHMgb2YgdGhpcy5faXRlbXMpe2lmKG5ldyB1dC5Qb2ludChzLmNlbnRlcixzLnkrcy52ZXJ0T2Zmc2V0KS5zdWJ0cmFjdChlKS5sZW5ndGgoKTw9dClyZXR1cm4gbmV3IHB0LkhpdFRlc3RSZXN1bHQocHQuSGl0VGFyZ2V0LlJlZ3VsYXIpfXJldHVybiBudWxsfV9kcmF3SXRlbVNoYXBlKGUsdCl7Y29uc3Qgcz10LmNlbnRlcixpPXQudmVydE9mZnNldD4wPzE6LTEscj1NYXRoLnRydW5jKHRoaXMuX2ZvbnRTaXplRW5zdXJlZC82KSxuPXQueSt0LnZlcnRPZmZzZXQtaSpNYXRoLnJvdW5kKHRoaXMuX2ZvbnRTaXplRW5zdXJlZC8yKSsoaT4wP3I6LXRoaXMuX2ZvbnRTaXplRW5zdXJlZCk7bGV0IGE7YT10LnN0eWxlJiZ2b2lkIDAhPT10LnN0eWxlLmNvbG9yP3Quc3R5bGUuY29sb3I6dGhpcy5fY29sb3I7Y29uc3R7Y29udGV4dDpvLGhvcml6b250YWxQaXhlbFJhdGlvOmwsdmVydGljYWxQaXhlbFJhdGlvOmh9PWUsdT0oMCxjdC5tYWtlRm9udCkodGhpcy5fZm9udFNpemVFbnN1cmVkLHRoaXMuX2N1c3RvbUZvbnRGYW1pbHl8fG10LkNIQVJUX0ZPTlRfRkFNSUxZX1dWLnZhbHVlKCkpO28uZm9udCE9PXUmJihvLmZvbnQ9dSk7Y29uc3QgYz10aGlzLl90ZXh0V2lkdGhDYWNoZS5tZWFzdXJlVGV4dChvLHRoaXMuX2NoKTtpZih0aGlzLl9mb250U2l6ZUVuc3VyZWQ8PTQvbCl7by5zYXZlKCk7Y29uc3QgZT1NYXRoLm1heCgxLE1hdGguZmxvb3IobCkpO2xldCBpPU1hdGgubWF4KDEsTWF0aC5mbG9vcihjKmwpKTtpJTIhPWUlMiYmKGkrPWk+MT8tMToxKTtjb25zdCByPU1hdGgucm91bmQobipoKSsodC52ZXJ0T2Zmc2V0Pj0wPzA6LWkpO3JldHVybiBvLmZpbGxTdHlsZT1hLG8uZmlsbFJlY3QoTWF0aC5yb3VuZChzKmwpKyhsJTI/LjU6MCktaS8yLHIsaSxpKSx2b2lkIG8ucmVzdG9yZSgpfSgwLHl0LmRyYXdTY2FsZWQpKG8sbCxoLCgoKT0+e28uZmlsbFN0eWxlPWEsby50ZXh0QWxpZ249ImNlbnRlciIsby50ZXh0QmFzZWxpbmU9InRvcCIsby5maWxsVGV4dCh0aGlzLl9jaCxzLG4pfSkpfV9zdGFydFBhdGgoZSx0LHMpe31fZW5kUGF0aChlKXt9fWNsYXNzIFN0IGV4dGVuZHMgbnR7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMuX2NoYXJSZW5kZXJlcj1uZXcgZ3QobnVsbCl9X3VwZGF0ZVJlbmRlcmVyKGUsdCl7Y29uc3Qgcz10aGlzLl9nZXRUcmFuc3BWYWx1ZSgpLGk9dGhpcy5fbW9kZWwudGltZVNjYWxlKCkuYmFyU3BhY2luZygpO2xldCByO2NvbnN0IG49dGhpcy5fc3R1ZHkucHJvcGVydGllcygpLmNoaWxkcygpLnN0eWxlcy5jaGlsZHMoKVt0aGlzLl9wbG90TmFtZV0uY2hpbGRzKCk7cj10aGlzLl9wbG90U3R5bGVJbmZvLnNpemU/dGhpcy5fY2FsY3VsYXRlU2hhcGVIZWlnaHQoNTAsdGhpcy5fcGxvdFN0eWxlSW5mby5zaXplKTpNYXRoLnJvdW5kKGkpO2NvbnN0IGE9bi5sb2NhdGlvbi52YWx1ZSgpLG89KDAsTC5nZW5lcmF0ZUNvbG9yKShuLmNvbG9yLnZhbHVlKCkscyksbD10aGlzLl9jYWxjdWxhdGVWZXJ0aWNhbE9mZnNldChhLHIpLHU9e2l0ZW1zOnRoaXMuaXRlbXMoKSxiYXJTcGFjaW5nOmksY2hhcjooMCxoLmVuc3VyZURlZmluZWQpKG4uY2hhcj8udmFsdWUoKT8/dGhpcy5fcGxvdFN0eWxlSW5mby5jaGFyKSxoZWlnaHQ6cix2ZXJ0T2Zmc2V0OmwsY29sb3I6byx2aXNpYmxlSXRlbXNSYW5nZTp7c3RhcnRJdGVtSW5kZXg6ZSxlbmRJdGVtSW5kZXg6dH19LGM9dGhpcy5fcGxvdFN0eWxlSW5mby50ZXh0CjtpZih2b2lkIDAhPT1jJiYiIiE9PWMudHJpbSgpKXtsZXQgZT1jLnJlcGxhY2UoL1xcbi9nbSwiXG4iKTtlPSgwLExlLmNsZWFuQnV0QW1wZXJzYW5kKShlLCEwKSx1LnRleHQ9ZSx1LmZvbnRTaXplPTEyO2NvbnN0IHQ9bi50ZXh0Q29sb3I/bi50ZXh0Q29sb3IudmFsdWUoKTp2b2lkIDA7dS50ZXh0Q29sb3I9dD8oMCxMLmdlbmVyYXRlQ29sb3IpKHQscyk6b310aGlzLl9jaGFyUmVuZGVyZXIuc2V0RGF0YSh1KTtjb25zdCBkPW5ldyBGZS5Db21wb3NpdGVSZW5kZXJlcjtkLmFwcGVuZCh0aGlzLl9jaGFyUmVuZGVyZXIpLHRoaXMuX2lzTWFya2Vyc0VuYWJsZWQmJm51bGwhPT10aGlzLl9zZWxlY3Rpb25EYXRhJiYodGhpcy5fc2VsZWN0aW9uRGF0YS52ZXJ0T2Zmc2V0PWwsZC5hcHBlbmQobmV3IEhlLlNlbGVjdGlvblJlbmRlcmVyKHRoaXMuX3NlbGVjdGlvbkRhdGEpKSksdGhpcy5fcmVuZGVyZXI9ZH19dmFyIGJ0PXMoMTM0NjcpO2NsYXNzIHZ0e2NvbnN0cnVjdG9yKGUsdCxzLGkpe3RoaXMubGVmdD1OYU4sdGhpcy5jZW50ZXI9TmFOLHRoaXMucmlnaHQ9TmFOLHRoaXMueT1OYU4sdGhpcy5oZWlnaHQ9TmFOLHRoaXMudGltZVBvaW50SW5kZXg9ZSx0aGlzLnByaWNlPXQsdGhpcy5vcmlnSGVpZ2h0PXMsdGhpcy5pc1VwPWksdGhpcy5zdHlsZT17fX19ZnVuY3Rpb24gUHQoZSl7cmV0dXJuIE1hdGgucm91bmQoZS80KX1mdW5jdGlvbiBJdChlKXtyZXR1cm4gTWF0aC5yb3VuZChlLzIpfWNsYXNzIHd0IGV4dGVuZHMgT2UuQml0bWFwQ29vcmRpbmF0ZXNQYW5lUmVuZGVyZXJ7Y29uc3RydWN0b3IoZSl7c3VwZXIoKSx0aGlzLl9kYXRhPWV9aGl0VGVzdChlKXtjb25zdCB0PXRoaXMuX2RhdGEscz1JdCh0LmJhclNwYWNpbmcpLGk9TWF0aC5yb3VuZChzLzIpLHI9TWF0aC5yb3VuZChzKSxuPVB0KHQuYmFyU3BhY2luZyksYT10LnZpc2libGVJdGVtc1JhbmdlPy5zdGFydEl0ZW1JbmRleD8/MCxvPXQudmlzaWJsZUl0ZW1zUmFuZ2U/LmVuZEl0ZW1JbmRleD8/dC5pdGVtcy5sZW5ndGg7aWYoYT49bylyZXR1cm4gbnVsbDtmb3IoY29uc3QgcyBvZiB0Lml0ZW1zLnNsaWNlKGEsbykpe2lmKCFzKWNvbnRpbnVlO2lmKCFOdW1iZXIuaXNGaW5pdGUocy5jZW50ZXIpfHwhTnVtYmVyLmlzRmluaXRlKHMueSkpY29udGludWU7Y29uc3QgdD1NYXRoLmFicyhzLmhlaWdodCksYT1zLmlzVXA/LTE6MSxvPXQrcixsPXMueS1hKm4saD1sLWEqbyx1PXMuY2VudGVyLWksYz1zLmNlbnRlcitpO2lmKHU8ZS54JiZlLng8YyYmKHMuaXNVcD9sPGUueSYmZS55PGg6aDxlLnkmJmUueTxsKSlyZXR1cm4gbmV3IHB0LkhpdFRlc3RSZXN1bHQocHQuSGl0VGFyZ2V0LlJlZ3VsYXIpfXJldHVybiBudWxsfV9kcmF3SW1wbChlKXtjb25zdHtob3Jpem9udGFsUGl4ZWxSYXRpbzp0LHZlcnRpY2FsUGl4ZWxSYXRpbzpzLGNvbnRleHQ6aX09ZSxyPXRoaXMuX2RhdGEsbj1JdChyLmJhclNwYWNpbmcpLGE9UHQoci5iYXJTcGFjaW5nKSxvPW48NCxsPU1hdGgubWF4KG4vMiwxKSxoPSgwLHplLmNlaWxlZEV2ZW4pKG4qdCksdT1oLzIsYz1NYXRoLnJvdW5kKG4qcyk7aS5saW5lQ2FwPSJidXR0IixpLmxpbmVXaWR0aD1NYXRoLm1heCgxLE1hdGguZmxvb3IodCkpO2NvbnN0IGQ9aS5saW5lV2lkdGglMj8uNTowLHA9ci52aXNpYmxlSXRlbXNSYW5nZT8uc3RhcnRJdGVtSW5kZXg/PzAsXz1yLnZpc2libGVJdGVtc1JhbmdlPy5lbmRJdGVtSW5kZXg/P3IuaXRlbXMubGVuZ3RoO2lmKCEocD49XykpZm9yKGNvbnN0IGUgb2Ygci5pdGVtcy5zbGljZShwLF8pKXtpZighTnVtYmVyLmlzRmluaXRlKGUuY2VudGVyKXx8IU51bWJlci5pc0Zpbml0ZShlLnkpKWNvbnRpbnVlO2NvbnN0IG49ZS5pc1VwPy0xOjEscD1NYXRoLnJvdW5kKE1hdGguYWJzKGUuaGVpZ2h0KSpzKSxfPU1hdGgucm91bmQoZS5jZW50ZXIqdCkrZCxmPU1hdGgucm91bmQoKGUueS1uKmEpKnMpK2Q7aS5iZWdpblBhdGgoKSxpLnRyYW5zbGF0ZShfLGYpO2NvbnN0IG09KGUuc3R5bGUmJmUuc3R5bGUuY29sb3IpPz8oZS5pc1VwP3IuY29sb3J1cDpyLmNvbG9yZG93bik7bz8oaS5tb3ZlVG8oMCwwKSxpLmxpbmVUbygtdSwtdSpuKSxpLm1vdmVUbygwLDApLGkubGluZVRvKHUsLXUqbiksaS5tb3ZlVG8oMCwwKSxpLmxpbmVUbygwLC1wKm4pLGkubW92ZVRvKC11LC1wKm4pLGkubGluZVRvKHUsLXAqbiksaS5saW5lV2lkdGg9bCxpLnN0cm9rZVN0eWxlPW0saS5zdHJva2UoKSk6KGkubW92ZVRvKDAsMCkscDxjPyhpLmxpbmVUbyhoLC1wKm4pLGkubGluZVRvKC1oLC1wKm4pKTooaS5saW5lVG8oaCwtYypuKSxpLmxpbmVUbyh1LC1jKm4pLGkubGluZVRvKHUsLXAqbiksaS5saW5lVG8oLXUsLXAqbiksaS5saW5lVG8oLXUsLWMqbiksaS5saW5lVG8oLWgsLWMqbikpLGkubGluZVRvKDAsMCksaS5zdHJva2VTdHlsZT1lLmlzVXA/ci5jb2xvckJvcmRlclVwOnIuY29sb3JCb3JkZXJEb3duLGkuc3Ryb2tlKCksaS5maWxsU3R5bGU9bSxpLmZpbGwoKSksaS50cmFuc2xhdGUoLV8sLWYpfX19Y2xhc3MgQ3QgZXh0ZW5kcyBudHtfdXBkYXRlUmVuZGVyZXIoZSx0KXtjb25zdCBzPXRoaXMuX3N0dWR5LnByb3BlcnRpZXMoKS5jaGlsZHMoKS5zdHlsZXMuY2hpbGRzKClbdGhpcy5fcGxvdE5hbWVdLmNoaWxkcygpLGk9KDAsemUuY2xhbXApKHRoaXMuX2dldFRyYW5zcFZhbHVlKCksMCwxMDApLHI9dGhpcy5fbW9kZWwudGltZVNjYWxlKCkuYmFyU3BhY2luZygpLG49KDAsTC5nZW5lcmF0ZUNvbG9yKShzLmNvbG9ydXAudmFsdWUoKSxpKSxhPSgwLEwuZ2VuZXJhdGVDb2xvcikocy5jb2xvcmRvd24udmFsdWUoKSxpKSxvPSgwLGJ0LnBhcnNlUmdiYSkobiksbD1vPzEwMCooMS1vWzNdKTowLGg9KDAsYnQucGFyc2VSZ2JhKShhKSx1PWg/MTAwKigxLWhbM10pOjAsYz17aXRlbXM6dGhpcy5faXRlbXMsYmFyU3BhY2luZzpyLGNvbG9ydXA6bixjb2xvcmRvd246YSxjb2xvckJvcmRlclVwOigwLEwuZ2VuZXJhdGVDb2xvcikoIiMwMDAwMDAiLGwpLGNvbG9yQm9yZGVyRG93bjooMCxMLmdlbmVyYXRlQ29sb3IpKCIjMDAwMDAwIix1KSxtaW5IZWlnaHQ6dGhpcy5fcGxvdFN0eWxlSW5mby5taW5IZWlnaHQsCnZpc2libGVJdGVtc1JhbmdlOntzdGFydEl0ZW1JbmRleDplLGVuZEl0ZW1JbmRleDp0fX07dGhpcy5fdXBkYXRlSXRlbXNIZWlnaHRzKGMpO2NvbnN0IGQ9bmV3IEZlLkNvbXBvc2l0ZVJlbmRlcmVyO2QuYXBwZW5kKG5ldyB3dChjKSksdGhpcy5faXNNYXJrZXJzRW5hYmxlZCYmbnVsbCE9PXRoaXMuX3NlbGVjdGlvbkRhdGEmJmQuYXBwZW5kKG5ldyBIZS5TZWxlY3Rpb25SZW5kZXJlcih7Li4udGhpcy5fc2VsZWN0aW9uRGF0YSxiYXJTcGFjaW5nOnIsd2l0aE91dGxpbmU6ITF9KSksdGhpcy5fcmVuZGVyZXI9ZH1fZmlsbEl0ZW1XaXRoUG9pbnRTdHlsZShlLHQscyl7Y29uc3QgaT0oMCxoLmVuc3VyZURlZmluZWQpKGUuc3R5bGUpO2UuaXNVcD92b2lkIDAhPT10LmNvbG9yc1s1XT9pLmNvbG9yPSgwLEwuZ2VuZXJhdGVDb2xvcikoKDAsaC5lbnN1cmVEZWZpbmVkKSh0LmNvbG9yc1s1XSkscyk6aS5jb2xvcj0oMCxMLmdlbmVyYXRlQ29sb3IpKHRoaXMuX3N0dWR5LnByb3BlcnRpZXMoKS5jaGlsZHMoKS5zdHlsZXMuY2hpbGRzKClbdGhpcy5fcGxvdE5hbWVdLmNoaWxkcygpLmNvbG9ydXAudmFsdWUoKSxzKTp2b2lkIDAhPT10LmNvbG9yc1s2XT9pLmNvbG9yPSgwLEwuZ2VuZXJhdGVDb2xvcikoKDAsaC5lbnN1cmVEZWZpbmVkKSh0LmNvbG9yc1s2XSkscyk6aS5jb2xvcj0oMCxMLmdlbmVyYXRlQ29sb3IpKHRoaXMuX3N0dWR5LnByb3BlcnRpZXMoKS5jaGlsZHMoKS5zdHlsZXMuY2hpbGRzKClbdGhpcy5fcGxvdE5hbWVdLmNoaWxkcygpLmNvbG9yZG93bi52YWx1ZSgpLHMpfV9nZXRWYWx1ZUZvclVwZGF0aW5nKGUpe2NvbnN0IHQ9ZS52YWx1ZVt0aGlzLl9wbG90SW5kZXgrMV07aWYoIXQpcmV0dXJuIG51bGw7Y29uc3Qgcz1lLmluZGV4LGk9dD4wLHtoaVBsb3Q6cixsb1Bsb3Q6bn09dGhpcy5faGlMb1Bsb3RzKCksYT10aGlzLl9zdHVkeS5vZmZzZXQodGhpcy5fcGxvdE5hbWUpLG89TWF0aC5taW4ocythLCgwLGguZW5zdXJlTm90TnVsbCkodGhpcy5fc2VyaWVzLmRhdGEoKS5sYXN0KCkpLmluZGV4KTtpZihpKXtjb25zdCBlPXRoaXMuX2dldFNlcmllc1ZhbChuLG8pO2lmKG51bGwhPT1lKXJldHVybiBlfWVsc2V7Y29uc3QgZT10aGlzLl9nZXRTZXJpZXNWYWwocixvKTtpZihudWxsIT09ZSlyZXR1cm4gZX1yZXR1cm4gbnVsbH1fdXBkYXRlSXRlbShlLHQpe2NvbnN0IHM9dGhpcy5fZ2V0VmFsdWVGb3JVcGRhdGluZyhlKSxpPWUudmFsdWVbdGhpcy5fcGxvdEluZGV4KzFdPjA7cmV0dXJuIHRoaXMuX2l0ZW1zW3RdLnByaWNlPXM/P05hTix0aGlzLl9pdGVtc1t0XS5pc1VwPWksdCsxfV9jcmVhdGVJdGVtKGUsdCxzLGkscil7Y29uc3Qgbj17Y2VudGVyOk5hTixvcmlnSGVpZ2h0Ok5hTix0aW1lUG9pbnRJbmRleDplK3IsaXNVcDohMCxoZWlnaHQ6TmFOLHByaWNlOk5hTixsZWZ0Ok5hTixyaWdodDpOYU4seTpOYU59O2lmKCF0KXJldHVybiBuO2NvbnN0IGE9TWF0aC5taW4oZStyLCgwLGguZW5zdXJlTm90TnVsbCkodGhpcy5fc2VyaWVzLmRhdGEoKS5sYXN0KCkpLmluZGV4KSxvPXQ+MDtsZXQgbDtpZihvKXtjb25zdCBlPXRoaXMuX2dldFNlcmllc1ZhbChpLGEpO2lmKG51bGw9PT1lKXJldHVybiBuO2w9ZX1lbHNle2NvbnN0IGU9dGhpcy5fZ2V0U2VyaWVzVmFsKHMsYSk7aWYobnVsbD09PWUpcmV0dXJuIG47bD1lfXJldHVybiBuZXcgdnQoZStyLGwsdCxvKX1fZGVwZW5kc09uU2VyaWVzRGF0YSgpe3JldHVybiEwfV9jb252ZXJ0SXRlbXNUb0Nvb3JkaW5hdGVzKGUsdCxzLGkpe3RoaXMuX2NvbnZlcnRJdGVtc1RvQ29vcmRpbmF0ZXNJbXBsKGUsdCxzLGkpfV9jcmVhdGVTZWxlY3Rpb25EYXRhUG9pbnQoZSx0LHMsaSl7Y29uc3Qgcj10aGlzLl9tb2RlbC50aW1lU2NhbGUoKS5iYXJTcGFjaW5nKCksbj1QdChyKSxhPWZ1bmN0aW9uKGUpe3JldHVybiBJdChlKX0ociksbz1zdXBlci5fY3JlYXRlU2VsZWN0aW9uRGF0YVBvaW50KGUsdCxzLGkpLGw9dGhpcy5faXRlbXNbKDAscC5sb3dlcmJvdW5kKSh0aGlzLl9pdGVtcyx0LCgoZSx0KT0+ZS50aW1lUG9pbnRJbmRleDx0KSldO2lmKCFsKXJldHVybiBvO2NvbnN0IGg9bC5pc1VwPzE6LTE7cmV0dXJuey4uLm8scG9pbnQ6by5wb2ludC5hZGQoKDAsdXQucG9pbnQpKDAsaCoobithKSkpfX1fdXBkYXRlSXRlbXNIZWlnaHRzKGUpe2NvbnN0IHQ9dGhpcy5fc3R1ZHkucHJvcGVydGllcygpLmNoaWxkcygpLnN0eWxlcy5jaGlsZHMoKTtsZXQgcz1NYXRoLmFicygoMCxoLmVuc3VyZURlZmluZWQpKHRbdGhpcy5fcGxvdE5hbWVdLmNoaWxkcygpLm1pbkhlaWdodD8udmFsdWUoKT8/dGhpcy5fcGxvdFN0eWxlSW5mby5taW5IZWlnaHQpKSxpPU1hdGguYWJzKCgwLGguZW5zdXJlRGVmaW5lZCkodFt0aGlzLl9wbG90TmFtZV0uY2hpbGRzKCkubWF4SGVpZ2h0Py52YWx1ZSgpPz90aGlzLl9wbG90U3R5bGVJbmZvLm1heEhlaWdodCkpO2lmKHM+aSl7Y29uc3QgZT1zO3M9aSxpPWV9Y29uc3Qgcj10aGlzLl9pdGVtcyxuPWUudmlzaWJsZUl0ZW1zUmFuZ2U/LnN0YXJ0SXRlbUluZGV4Pz8wLGE9KGUudmlzaWJsZUl0ZW1zUmFuZ2U/LmVuZEl0ZW1JbmRleD8/ci5sZW5ndGgpLTE7bGV0IG89MDtmb3IobGV0IGU9bjtlPD1hO2UrKyl7Y29uc3QgdD1yW2VdLHM9TWF0aC5hYnModC5vcmlnSGVpZ2h0KTtzPm8mJihvPXMpfWNvbnN0IGw9KGktcykvbztmb3IobGV0IGU9bjtlPD1hO2UrKyl7Y29uc3QgdD1yW2VdLGk9TWF0aC5hYnModC5vcmlnSGVpZ2h0KTt0LmhlaWdodD1pKmwrc319fXZhciBWdD1zKDM0ODUxOCkseHQ9cyg1NDQ4NjQpO2NsYXNzIEF0IGV4dGVuZHMgQmUuU3R1ZHlGb3JjZU92ZXJsYXlQbG90Vmlld3tjb25zdHJ1Y3RvcihlLHQscyxpKXtzdXBlcih0LHMsaSksdGhpcy5fYmFycz1bXSx0aGlzLl9pbnZhbGlkYXRlZD0hMSx0aGlzLl9pc01hcmtlcnNFbmFibGVkPSgwLEkuaXNGZWF0dXJlc2V0RW5hYmxlZCkoInNvdXJjZV9zZWxlY3Rpb25fbWFya2VycyIpLHRoaXMuX3NlbGVjdGlvbkRhdGE9bnVsbCx0aGlzLl9vaGxjUGxvdEluZGV4ZXM9bmV3IE1hcCx0aGlzLl9zdHVkeT1lLHRoaXMuX2NvbG9yUHJvdmlkZXI9KDAsCmtlLmNyZWF0ZVN0dWR5UGxvdENvbG9yUHJvdmlkZXIpKGUubWV0YUluZm8oKSxlLnByb3BlcnRpZXMoKSxpKSx0aGlzLl9zZWxlY3Rpb25JbmRleGVyPW5ldyAkZS5TZWxlY3Rpb25JbmRleGVzKHMudGltZVNjYWxlKCkpO2NvbnN0IHI9dGhpcy5fc3R1ZHkubWV0YUluZm8oKS5wbG90cztmb3IobGV0IGU9MDtlPHIubGVuZ3RoO2UrKyl7Y29uc3QgdD1yW2VdOyJ0YXJnZXQiaW4gdCYmKHQudGFyZ2V0PT09dGhpcy5fcGxvdE5hbWUmJigoMCxaLmlzT2hsY09wZW5QbG90KSh0KSYmdGhpcy5fb2hsY1Bsb3RJbmRleGVzLnNldCgxLGUpLCgwLFouaXNPaGxjSGlnaFBsb3QpKHQpJiZ0aGlzLl9vaGxjUGxvdEluZGV4ZXMuc2V0KDIsZSksKDAsWi5pc09obGNMb3dQbG90KSh0KSYmdGhpcy5fb2hsY1Bsb3RJbmRleGVzLnNldCgzLGUpLCgwLFouaXNPaGxjQ2xvc2VQbG90KSh0KSYmdGhpcy5fb2hsY1Bsb3RJbmRleGVzLnNldCg0LGUpKSl9fXVwZGF0ZShlKXsiaG92ZXItY2hhbmdlIiE9PWUudHlwZSYmKHRoaXMuX2ludmFsaWRhdGVkPSEwKX1pdGVtcygpe3JldHVybiB0aGlzLl9iYXJzfWlzUGxvdEhpZ2hsaWdodGVkKCl7aWYoIXRoaXMuX3N0dWR5Lmhhc0hpZ2hsaWdodGVkUGxvdHMoKSlyZXR1cm4hMTtjb25zdCBlPXRoaXMuX3N0dWR5Lm1ldGFJbmZvKCkucGxvdHMuZmlsdGVyKChlPT4idGFyZ2V0ImluIGUmJmUudGFyZ2V0PT09dGhpcy5fcGxvdE5hbWUpKTtyZXR1cm4gQm9vbGVhbihlLmZpbmQoKGU9PigwLGguZW5zdXJlTm90TnVsbCkodGhpcy5fbW9kZWwuaGlnaGxpZ2h0ZWRQbG90SW5mbygpKS5wbG90SWQ9PT1lLmlkKSkpfV91cGRhdGVJbXBsKCl7dGhpcy5fYmFycy5sZW5ndGg9MDtjb25zdCBlPXRoaXMuX3ByaWNlU2NhbGUoKSx0PXRoaXMuX21vZGVsLnRpbWVTY2FsZSgpO2lmKHQuaXNFbXB0eSgpfHxudWxsPT09ZXx8ZS5pc0VtcHR5KCkpcmV0dXJuO2NvbnN0IHM9dC52aXNpYmxlQmFyc1N0cmljdFJhbmdlKCk7aWYobnVsbD09PXMpcmV0dXJuO2xldCBpPXRoaXMuX3Nlcmllcy5uZWFyZXN0SW5kZXgocy5maXJzdEJhcigpLFMuUGxvdFJvd1NlYXJjaE1vZGUuTmVhcmVzdFJpZ2h0KTtjb25zdCByPXRoaXMuX3Nlcmllcy5uZWFyZXN0SW5kZXgocy5sYXN0QmFyKCksUy5QbG90Um93U2VhcmNoTW9kZS5OZWFyZXN0TGVmdCk7aWYodm9pZCAwPT09aXx8dm9pZCAwPT09cilyZXR1cm47Y29uc3Qgbj10aGlzLl9zdHVkeS5nZXRNaW5GaXJzdEJhckluZGV4Rm9yUGxvdCh0aGlzLl9wbG90TmFtZSk7aWYobj5yKXJldHVybjtpPU1hdGgubWF4KG4saSk7Y29uc3QgYT10aGlzLl9zdHVkeS5kYXRhKCksbz10aGlzLl9zdHVkeS5maXJzdFZhbHVlKHZvaWQgMCx0aGlzLmlzRm9yY2VPdmVybGF5KCkpO2lmKG51bGw9PT1vKXJldHVybjtjb25zdCBsPWEucmFuZ2VJdGVyYXRvcihpLHIpLHU9KDAsaC5lbnN1cmVEZWZpbmVkKSh0aGlzLl9zdHVkeS5wcm9wZXJ0aWVzKCkuY2hpbGRzKCkub2hsY1Bsb3RzKS5jaGlsZHMoKVt0aGlzLl9wbG90TmFtZV0uY2hpbGRzKCksYz1uZXcgTWFwLGQ9KGUsdCk9Pntjb25zdCBzPWUrIkAiK3Q7aWYoIWMuaGFzKHMpKXtjb25zdCBpPSgwLEwuZ2VuZXJhdGVDb2xvcikoZSx0KTtyZXR1cm4gYy5zZXQocyxpKSxpfXJldHVybiBjLmdldChzKX0scD0oMCxLZS5jcmVhdGVFbXB0eVN0eWxlKSgpO2Zvcihjb25zdCBlIG9mIGwpe2xldCB0PWUuaW5kZXg7Y29uc3Qgcz1lLnZhbHVlO3Q9TWF0aC5mbG9vcih0KTtsZXQgaT0hMDtjb25zdCByPW5ldyBNYXA7Zm9yKGxldCBlPTE7ZTw9NDsrK2Upe2NvbnN0IHQ9dGhpcy5fb2hsY1Bsb3RJbmRleGVzLmdldChlKTtpZih2b2lkIDA9PT10KXtpPSExO2JyZWFrfWNvbnN0IG49c1t0KzFdO2lmKG51bGw9PW4pe2k9ITE7YnJlYWt9ci5zZXQoZSxuKX1pZighaSljb250aW51ZTtjb25zdCBuPSgwLGguZW5zdXJlRGVmaW5lZCkoci5nZXQoMSkpLGE9KDAsaC5lbnN1cmVEZWZpbmVkKShyLmdldCg0KSksbz0oMCxoLmVuc3VyZURlZmluZWQpKHIuZ2V0KDIpKSxsPSgwLGguZW5zdXJlRGVmaW5lZCkoci5nZXQoMykpLGM9TWF0aC5tYXgobixvLGwsYSksXz1NYXRoLm1pbihuLG8sbCxhKTtsZXQgZj0oMCxoLmVuc3VyZURlZmluZWQpKGQodS5jb2xvci52YWx1ZSgpLDApKTtjb25zdCBtPXRoaXMuX2NvbG9yUHJvdmlkZXIuZ2V0UGxvdFBvaW50U3R5bGUocyxwKTt2b2lkIDAhPT1tLmNvbG9yc1swXSYmKGY9KDAsaC5lbnN1cmVEZWZpbmVkKShtLmNvbG9yc1swXSkpO2NvbnN0IHk9e29wZW46bixoaWdoOmMsbG93Ol8sY2xvc2U6YSxjb2xvcjpmLHdpY2tDb2xvcjptLmNvbG9yc1s0XSxib3JkZXJDb2xvcjptLmNvbG9yc1szXSxob2xsb3c6bnVsbCxjZW50ZXI6TmFOLGxlZnQ6TmFOLHJpZ2h0Ok5hTix0aW1lUG9pbnRJbmRleDpNYXRoLnJvdW5kKHQpfTt0aGlzLl9iYXJzLnB1c2goeSl9ZS5iYXJQcmljZXNUb0Nvb3JkaW5hdGVzKHRoaXMuX2JhcnMsbyksdC5maWxsQmFyQm9yZGVycyh0aGlzLl9iYXJzKSx0aGlzLl9jcmVhdGVTZWxlY3Rpb24obyx0KX1fY3JlYXRlU2VsZWN0aW9uKGUsdCl7Y29uc3Qgcz10aGlzLl9wcmljZVNjYWxlKCk7aWYobnVsbD09PXMpcmV0dXJuO2lmKHRoaXMuX3NlbGVjdGlvbkRhdGE9e3BvaW50czpbXSxiZ0NvbG9yczpbXSx2aXNpYmxlOiEwLGhpdHRlc3RSZXN1bHQ6eHQuSGl0VGFyZ2V0LlJlZ3VsYXIsYmFyU3BhY2luZzp0aGlzLl9tb2RlbC50aW1lU2NhbGUoKS5iYXJTcGFjaW5nKCl9LCF0aGlzLmlzUGxvdEhpZ2hsaWdodGVkKCkmJighdGhpcy5fbW9kZWwuc2VsZWN0aW9uKCkuaXNTZWxlY3RlZCh0aGlzLl9zdHVkeSl8fHRoaXMuX3N0dWR5Lmhhc0hpZ2hsaWdodGVkUGxvdHMoKSkpcmV0dXJuIHZvaWQgdGhpcy5fc2VsZWN0aW9uSW5kZXhlci5jbGVhcigpO2NvbnN0IGk9KDAsaC5lbnN1cmVOb3ROdWxsKSh0aGlzLl9tb2RlbC5wYW5lRm9yU291cmNlKHRoaXMuX3N0dWR5KSkuaGVpZ2h0KCkscj0oMCxoLmVuc3VyZURlZmluZWQpKHRoaXMuX29obGNQbG90SW5kZXhlcy5nZXQoNCkpLG49dGhpcy5fc2VsZWN0aW9uSW5kZXhlci5pbmRleGVzKCk7Zm9yKGxldCBhPTA7YTxuLmxlbmd0aDthKyspewpjb25zdCBvPW5bYV0sbD10aGlzLl9zdHVkeS5kYXRhKCkudmFsdWVBdChvKTtpZihudWxsPT09bCljb250aW51ZTtjb25zdCBoPWxbcisxXTtpZihudWxsPT1oKWNvbnRpbnVlO2NvbnN0IHU9dC5pbmRleFRvQ29vcmRpbmF0ZShNYXRoLmZsb29yKG8pKSxjPXMucHJpY2VUb0Nvb3JkaW5hdGUoaCxlKTt0aGlzLl9zZWxlY3Rpb25EYXRhLnBvaW50cy5wdXNoKHtwb2ludDpuZXcgdXQuUG9pbnQodSxjKX0pLHRoaXMuX3NlbGVjdGlvbkRhdGEuYmdDb2xvcnMucHVzaCh0aGlzLl9tb2RlbC5iYWNrZ3JvdW5kQ29sb3JBdFlQZXJjZW50RnJvbVRvcChjL2kpKX19X2lzT0hMQ1Bsb3RWaXNpYmxlKCl7cmV0dXJuIHRoaXMuX3N0dWR5LmlzUGxvdFZpc2libGVBdCh0aGlzLl9wbG90TmFtZSxaLlN0dWR5UGxvdERpc3BsYXlUYXJnZXQuUGFuZSl9fWNsYXNzIFJ0IGV4dGVuZHMgQXR7cmVuZGVyZXIoKXtpZighdGhpcy5faXNPSExDUGxvdFZpc2libGUoKSlyZXR1cm4gbnVsbDt0aGlzLl9pbnZhbGlkYXRlZCYmKHRoaXMuX3VwZGF0ZUltcGwoKSx0aGlzLl9pbnZhbGlkYXRlZD0hMSk7Y29uc3QgZT17YmFyczp0aGlzLl9iYXJzLGRvbnREcmF3T3Blbjp0aGlzLl9zZXJpZXMucHJvcGVydGllcygpLmNoaWxkcygpLmJhclN0eWxlLmNoaWxkcygpLmRvbnREcmF3T3Blbi52YWx1ZSgpLHRoaW5CYXJzOnRoaXMuX3Nlcmllcy5wcm9wZXJ0aWVzKCkuY2hpbGRzKCkuYmFyU3R5bGUuY2hpbGRzKCkudGhpbkJhcnMudmFsdWUoKX0sdD1uZXcgRmUuQ29tcG9zaXRlUmVuZGVyZXI7cmV0dXJuIHQuYXBwZW5kKG5ldyBWdC5QYW5lUmVuZGVyZXJCYXJzKGUpKSx0aGlzLl9pc01hcmtlcnNFbmFibGVkJiZ0aGlzLl9zZWxlY3Rpb25EYXRhJiZ0LmFwcGVuZChuZXcgSGUuU2VsZWN0aW9uUmVuZGVyZXIodGhpcy5fc2VsZWN0aW9uRGF0YSkpLHR9fXZhciBNdD1zKDY4OTA4MCk7Y2xhc3MgVHQgZXh0ZW5kcyBBdHtyZW5kZXJlcigpe2lmKCF0aGlzLl9pc09ITENQbG90VmlzaWJsZSgpKXJldHVybiBudWxsO2NvbnN0IGU9dGhpcy5fcHJpY2VTY2FsZSgpO2lmKCFlfHxlLmlzRW1wdHkoKSlyZXR1cm4gbnVsbDt0aGlzLl9pbnZhbGlkYXRlZCYmKHRoaXMuX3VwZGF0ZUltcGwoKSx0aGlzLl9pbnZhbGlkYXRlZD0hMSk7Y29uc3QgdD0oMCxoLmVuc3VyZURlZmluZWQpKHRoaXMuX3N0dWR5LnByb3BlcnRpZXMoKS5jaGlsZHMoKS5vaGxjUGxvdHMpLmNoaWxkcygpW3RoaXMuX3Bsb3ROYW1lXS5jaGlsZHMoKSxzPXRoaXMuX21vZGVsLnRpbWVTY2FsZSgpLmJhclNwYWNpbmcoKSxpPXtiYXJzOnRoaXMuX2JhcnMsYmFyU3BhY2luZzpzLHdpY2tWaXNpYmxlOnQuZHJhd1dpY2sudmFsdWUoKSxib2R5VmlzaWJsZTohMCxib3JkZXJWaXNpYmxlOnQuZHJhd0JvcmRlci52YWx1ZSgpLGJhcldpZHRoOigwLF90Lm9wdGltYWxCYXJXaWR0aCkocyksYm9yZGVyQ29sb3I6dC5ib3JkZXJDb2xvci52YWx1ZSgpLHdpY2tDb2xvcjp0LndpY2tDb2xvci52YWx1ZSgpLGlzUHJpY2VTY2FsZUludmVydGVkOmUuaXNJbnZlcnRlZCgpfSxyPW5ldyBGZS5Db21wb3NpdGVSZW5kZXJlcjtyZXR1cm4gci5hcHBlbmQobmV3IE10LlBhbmVSZW5kZXJlckNhbmRsZXMoaSkpLHRoaXMuX2lzTWFya2Vyc0VuYWJsZWQmJnRoaXMuX3NlbGVjdGlvbkRhdGEmJnIuYXBwZW5kKG5ldyBIZS5TZWxlY3Rpb25SZW5kZXJlcih0aGlzLl9zZWxlY3Rpb25EYXRhKSkscn19dmFyIER0PXMoMzc2NjQ1KSxGdD1zKDMxNTY1NCksT3Q9cyg3NDM0NyksTnQ9cygyNjA2OSk7Y2xhc3Mga3QgZXh0ZW5kcyBPdC5Ib3Jpem9udGFsTGluZVBhbmVWaWV3e2NvbnN0cnVjdG9yKGUsdCl7c3VwZXIoKSx0aGlzLl9saW5lUmVuZGVyZXJEYXRhLmxpbmVzdHlsZT1OdC5MSU5FU1RZTEVfRE9UVEVELHRoaXMuX3N0dWR5PWUsdGhpcy5fcGxvdE5hbWU9dH1fdXBkYXRlSW1wbCgpe3RoaXMuX2xpbmVSZW5kZXJlckRhdGEudmlzaWJsZT0hMTtjb25zdCBlPXRoaXMuX3N0dWR5LnByb3BlcnRpZXMoKS5jaGlsZHMoKS5zdHlsZXMuY2hpbGRzKClbdGhpcy5fcGxvdE5hbWVdLmNoaWxkcygpO2lmKCFlLnRyYWNrUHJpY2UudmFsdWUoKXx8IXRoaXMuX3N0dWR5LmlzUGxvdFZpc2libGVBdCh0aGlzLl9wbG90TmFtZSxaLlN0dWR5UGxvdERpc3BsYXlUYXJnZXQuUGFuZSkpcmV0dXJuO2NvbnN0IHQ9dGhpcy5fc3R1ZHkubGFzdFZhbHVlRGF0YSh0aGlzLl9wbG90TmFtZSwhMCk7dC5ub0RhdGF8fCh0aGlzLl9saW5lUmVuZGVyZXJEYXRhLnZpc2libGU9ITAsdGhpcy5fbGluZVJlbmRlcmVyRGF0YS55PXQuY29vcmRpbmF0ZSx0aGlzLl9saW5lUmVuZGVyZXJEYXRhLmNvbG9yPXQuY29sb3IsdGhpcy5fbGluZVJlbmRlcmVyRGF0YS5saW5ld2lkdGg9ZS5saW5ld2lkdGgudmFsdWUoKSl9fXZhciBCdD1zKDE2Njk4OCksRXQ9cygyNTQ3MzEpLEx0PXMoODc3MjE3KSxIdD1zKDk5NTI0MCk7Y29uc3QgVXQ9e3R5cGU6MCxjb2xvcjoidHJhbnNwYXJlbnQifTtjbGFzcyBXdCBleHRlbmRzIEx0LkFic3RyYWN0RmlsbGVkQXJlYVBhbmVWaWV3e2NvbnN0cnVjdG9yKGUsdCxzLGkpe3N1cGVyKGUsdCxzKSx0aGlzLl9wYWxldHRlc0luZm89e30sdGhpcy5fZ3JhZGllbnRQcm9wc1N0YXRlQ2FjaGU9bnVsbCx0aGlzLl9yZ2JhRnJvbUludGVnZXI9KDAsRXQucmdiYUZyb21JbnRlZ2VyQ2FjaGVkKSgpO2NvbnN0IHI9dGhpcy5fc291cmNlLm1ldGFJbmZvKCk7dGhpcy5faXNSR0I9Qm9vbGVhbihyLmlzUkdCKSx0aGlzLl9pc0hsaW5lRmlsbD0iaGxpbmVfaGxpbmUiPT09cy50eXBlLCgwLGguYXNzZXJ0KSh0aGlzLl9pc0hsaW5lRmlsbHx8InBsb3RfcGxvdCI9PT1zLnR5cGUsIldyb25nIGZpbGxlZEFyZWEgdHlwZTogIitzLnR5cGUpLHRoaXMuX2lzSGxpbmVGaWxsJiZ0aGlzLl9pbml0QmFuZEluZGV4ZXMocy5vYmpBSWQscy5vYmpCSWQpLHRoaXMuX2ZpbGxNZXRhSW5mbz1zLHRoaXMuX2ZpbGxTdHlsZVByb3BzPWksdGhpcy5fZ3JhZGllbnRGaWxsVHlwZT1pLmhhc0NoaWxkKCJmaWxsVHlwZSIpJiYiZ3JhZGllbnQiPT09aS5jaGlsZHMoKS5maWxsVHlwZT8udmFsdWUoKSx0aGlzLl9ncmFkaWVudFN0YXRpY1N0YXRlPXsKY29sb3IxOnMudG9wQ29sb3IsY29sb3IyOnMuYm90dG9tQ29sb3IsdmFsdWUxOnMudG9wVmFsdWUsdmFsdWUyOnMuYm90dG9tVmFsdWV9LHRoaXMuX2hhc0FsbEdyYWRpZW50UmVxdWlyZWRQcm9wcz10aGlzLl9ncmFkaWVudEZpbGxUeXBlJiYodm9pZCAwIT09dGhpcy5fZ3JhZGllbnRTdGF0aWNTdGF0ZS5jb2xvcjF8fGkuaGFzQ2hpbGQoInRvcENvbG9yIil8fHZvaWQgMCE9PXRoaXMuX2dyYWRpZW50U3RhdGljU3RhdGUuY29sb3IyfHxpLmhhc0NoaWxkKCJib3R0b21Db2xvciIpKSYmKHZvaWQgMCE9PXRoaXMuX2dyYWRpZW50U3RhdGljU3RhdGUudmFsdWUxfHxpLmhhc0NoaWxkKCJ0b3BWYWx1ZSIpKSYmKHZvaWQgMCE9PXRoaXMuX2dyYWRpZW50U3RhdGljU3RhdGUudmFsdWUyfHxpLmhhc0NoaWxkKCJib3R0b21WYWx1ZSIpKTtjb25zdCBuPSgpPT50aGlzLl9jb2xvclBsb3RJbmRleD10aGlzLl9jb2xvclBsb3RJbmRleD8/e3R5cGU6MX07Zm9yKGxldCB0PTA7dDxyLnBsb3RzLmxlbmd0aDsrK3Qpe2NvbnN0IGk9ci5wbG90c1t0XTtpZigoKDAsWi5pc0NvbG9yZXJQbG90KShpKXx8KDAsWi5pc0RhdGFQbG90KShpKSkmJmkudGFyZ2V0PT09cy5pZCl7aWYoKDAsWi5pc0NvbG9yZXJQbG90KShpKSl7bGV0IHM7dm9pZCAwIT09aS50YXJnZXRGaWVsZD8idG9wQ29sb3IiPT09aS50YXJnZXRGaWVsZD8obigpLmNvbG9ySW5kZXhPclJnYmExPXQscz0iY29sb3IxIik6ImJvdHRvbUNvbG9yIj09PWkudGFyZ2V0RmllbGQmJihuKCkuY29sb3JJbmRleE9yUmdiYTI9dCxzPSJjb2xvcjIiKTp0aGlzLl9jb2xvclBsb3RJbmRleD17dHlwZTowLGNvbG9ySW5kZXhPclJnYmE6dH0sKDAsWi5pc1BhbGV0dGVDb2xvcmVyUGxvdCkoaSkmJih0aGlzLl9wYWxldHRlc0luZm9bcz8/ImNvbG9yIl09e21hcDooMCxoLmVuc3VyZURlZmluZWQpKCgwLGguZW5zdXJlRGVmaW5lZCkoci5wYWxldHRlcylbaS5wYWxldHRlXT8udmFsVG9JbmRleCksdmFsdWVzOmUucHJvcGVydGllcygpLnBhbGV0dGVzW2kucGFsZXR0ZV0uY29sb3JzfSl9ZWxzZSgwLFouaXNEYXRhUGxvdCkoaSkmJigidG9wVmFsdWUiPT09aS50YXJnZXRGaWVsZD9uKCkudmFsdWVJbmRleDE9dDoiYm90dG9tVmFsdWUiPT09aS50YXJnZXRGaWVsZCYmKG4oKS52YWx1ZUluZGV4Mj10KSk7aWYoMD09PXRoaXMuX2NvbG9yUGxvdEluZGV4Py50eXBlKWJyZWFrfX19dXBkYXRlKGUpe3N1cGVyLnVwZGF0ZShlKSx0aGlzLl9ncmFkaWVudFByb3BzU3RhdGVDYWNoZT1udWxsfWlzRm9yY2VPdmVybGF5KCl7cmV0dXJuISF0aGlzLl9zb3VyY2UubWV0YUluZm8oKS5pc1Bsb3RGb3JjZU92ZXJsYXkodGhpcy5fcGxvdEFJZCgpKX1fZmlyc3RWYWx1ZSgpe2NvbnN0IGU9dGhpcy5pc0ZvcmNlT3ZlcmxheSgpO3JldHVybiB0aGlzLl9zb3VyY2UuZmlyc3RWYWx1ZSh2b2lkIDAsZSl9X21pbkZpcnN0QmFySW5kZXgoKXtyZXR1cm4gdGhpcy5fc291cmNlLmdldE1pbkZpcnN0QmFySW5kZXhGb3JQbG90KHRoaXMuX2ZpbGxNZXRhSW5mby5pZCl9X2dldENvbG9yQnlQbG90VmFsdWUoZSl7aWYoMD09PWUudHlwZSl7bGV0IHQ7aWYobnVsbD09ZS5jb2xvckluZGV4T3JSZ2JhKXJldHVybiBudWxsO2lmKHRoaXMuX2lzUkdCKXQ9dGhpcy5fcmdiYUZyb21JbnRlZ2VyKGUuY29sb3JJbmRleE9yUmdiYSk7ZWxzZXtjb25zdCBzPSgwLGguZW5zdXJlRGVmaW5lZCkodGhpcy5fcGFsZXR0ZXNJbmZvLmNvbG9yKSxpPSgwLGguZW5zdXJlRGVmaW5lZCkocy5tYXBbZS5jb2xvckluZGV4T3JSZ2JhXSk7dD1zLnZhbHVlc1tpXT8uY2hpbGRzKCkuY29sb3IudmFsdWUoKX1yZXR1cm57dHlwZTowLGNvbG9yOnR9fWNvbnN0IHQ9dGhpcy5fZ3JhZGllbnRDb2xvclByb3BzU3RhdGUoKTtsZXQgcyxpO2lmKHRoaXMuX2lzUkdCKW51bGwhPWUuY29sb3JJbmRleE9yUmdiYTEmJihzPXRoaXMuX3JnYmFGcm9tSW50ZWdlcihlLmNvbG9ySW5kZXhPclJnYmExKSksbnVsbCE9ZS5jb2xvckluZGV4T3JSZ2JhMiYmKGk9dGhpcy5fcmdiYUZyb21JbnRlZ2VyKGUuY29sb3JJbmRleE9yUmdiYTIpKTtlbHNle2lmKG51bGwhPWUuY29sb3JJbmRleE9yUmdiYTEpe2NvbnN0IHQ9KDAsaC5lbnN1cmVEZWZpbmVkKSh0aGlzLl9wYWxldHRlc0luZm8uY29sb3IxKTtzPXQudmFsdWVzWygwLGguZW5zdXJlRGVmaW5lZCkodC5tYXBbZS5jb2xvckluZGV4T3JSZ2JhMV0pXS5jaGlsZHMoKS5jb2xvci52YWx1ZSgpfWlmKG51bGwhPWUuY29sb3JJbmRleE9yUmdiYTIpe2NvbnN0IHQ9KDAsaC5lbnN1cmVEZWZpbmVkKSh0aGlzLl9wYWxldHRlc0luZm8uY29sb3IyKTtpPXQudmFsdWVzWygwLGguZW5zdXJlRGVmaW5lZCkodC5tYXBbZS5jb2xvckluZGV4T3JSZ2JhMl0pXS5jaGlsZHMoKS5jb2xvci52YWx1ZSgpfX1jb25zdCByPWUudmFsdWUxPz90LnZhbHVlMSxuPWUudmFsdWUyPz90LnZhbHVlMjtyZXR1cm4gcz1zPz90LmNvbG9yMSxpPWk/P3QuY29sb3IyLHZvaWQgMD09PXJ8fHZvaWQgMD09PW58fHZvaWQgMD09PXMmJnZvaWQgMD09PWk/bnVsbDp7dHlwZToxLGNvbG9yMTpzLGNvbG9yMjppLHZhbHVlMTpyLHZhbHVlMjpuLGNvb3JkaW5hdGUxOk5hTixjb29yZGluYXRlMjpOYU59fV9wbG90QUlkKCl7cmV0dXJuIHRoaXMuX2ZpbGxNZXRhSW5mby5vYmpBSWR9X3Bsb3RCSWQoKXtyZXR1cm4gdGhpcy5fZmlsbE1ldGFJbmZvLm9iakJJZH1fY29tbW9uQ29sb3IoKXtjb25zdCBlPXRoaXMuX2ZpbGxTdHlsZVByb3BzLmNoaWxkcygpO2lmKHRoaXMuX2dyYWRpZW50RmlsbFR5cGUpe2lmKCF0aGlzLl9oYXNBbGxHcmFkaWVudFJlcXVpcmVkUHJvcHMpcmV0dXJuIFV0O2NvbnN0IGU9dGhpcy5fZ3JhZGllbnRDb2xvclByb3BzU3RhdGUoKTtyZXR1cm57dHlwZToxLGNvbG9yMTplLmNvbG9yMSxjb2xvcjI6ZS5jb2xvcjIsdmFsdWUxOmUudmFsdWUxLHZhbHVlMjplLnZhbHVlMixjb29yZGluYXRlMTpOYU4sY29vcmRpbmF0ZTI6TmFOfX1yZXR1cm57dHlwZTowLGNvbG9yOmUuY29sb3IudmFsdWUoKX19X3RyYW5zcGFyZW5jeSgpewpyZXR1cm4gdGhpcy5fZmlsbFN0eWxlUHJvcHMuY2hpbGRzKCkudHJhbnNwYXJlbmN5Py52YWx1ZSgpPz8wfV92aXNpYmxlKCl7cmV0dXJuIHRoaXMuX2ZpbGxTdHlsZVByb3BzLmNoaWxkcygpLnZpc2libGUudmFsdWUoKX1fcHJpY2VTY2FsZSgpe3JldHVybiB0aGlzLmlzRm9yY2VPdmVybGF5KCk/dGhpcy5fbW9kZWwubWFpblNlcmllcygpLnByaWNlU2NhbGUoKTp0aGlzLl9zb3VyY2UucHJpY2VTY2FsZSgpfV9jcmVhdGVBcmVhQmFja2dyb3VuZEl0ZW0oKXtyZXR1cm4gdGhpcy5faXNIbGluZUZpbGw/bmV3IEh0LkFyZWFCYWNrZ3JvdW5kSXRlbSghMSwhMSk6c3VwZXIuX2NyZWF0ZUFyZWFCYWNrZ3JvdW5kSXRlbSgpfV9pbml0QmFuZEluZGV4ZXMoZSx0KXt0aGlzLl9iYW5kQUtleT1udWxsLHRoaXMuX2JhbmRCS2V5PW51bGw7Y29uc3Qgcz10aGlzLl9zb3VyY2UubWV0YUluZm8oKS5iYW5kcztpZih2b2lkIDAhPT1zKWZvcihsZXQgaT0wO2k8cy5sZW5ndGg7KytpKXtjb25zdCByPXNbaV07bnVsbCE9PXRoaXMuX2JhbmRBS2V5fHxyLmlkIT09ZT9udWxsPT09dGhpcy5fYmFuZEJLZXkmJnIuaWQ9PT10JiYodGhpcy5fYmFuZEJLZXk9aSk6dGhpcy5fYmFuZEFLZXk9aX19X2dyYWRpZW50Q29sb3JQcm9wc1N0YXRlKCl7aWYobnVsbD09PXRoaXMuX2dyYWRpZW50UHJvcHNTdGF0ZUNhY2hlKXtjb25zdCBlPXRoaXMuX2ZpbGxTdHlsZVByb3BzLnN0YXRlKCk7dGhpcy5fZ3JhZGllbnRQcm9wc1N0YXRlQ2FjaGU9e2NvbG9yMTp0aGlzLl9ncmFkaWVudFN0YXRpY1N0YXRlLmNvbG9yMT8/ZS50b3BDb2xvcixjb2xvcjI6dGhpcy5fZ3JhZGllbnRTdGF0aWNTdGF0ZS5jb2xvcjI/P2UuYm90dG9tQ29sb3IsdmFsdWUxOnRoaXMuX2dyYWRpZW50U3RhdGljU3RhdGUudmFsdWUxPz9lLnRvcFZhbHVlLHZhbHVlMjp0aGlzLl9ncmFkaWVudFN0YXRpY1N0YXRlLnZhbHVlMj8/ZS5ib3R0b21WYWx1ZX19cmV0dXJuIHRoaXMuX2dyYWRpZW50UHJvcHNTdGF0ZUNhY2hlfX12YXIgR3Q9cyg1MzY3MTApLGp0PXMoMTQxMzUwKSx6dD1zKDY1MDQ4MCk7Y2xhc3MgJHR7Y29uc3RydWN0b3IoZSx0KXt0aGlzLl9pbnZhbGlkYXRlZD0hMCx0aGlzLl9saW5lUmVuZGVyZXI9bmV3IHp0Lkhvcml6b250YWxMaW5lUmVuZGVyZXIsdGhpcy5fc291cmNlPXQsdGhpcy5fcG9pbnRzPVtuZXcgdXQuUG9pbnQoLTEsLTEpXSx0aGlzLl9pbnZhbGlkYXRlZD0hMCx0aGlzLl9wcm9wZXJ0aWVzPWV9dXBkYXRlKGUpeyJob3Zlci1jaGFuZ2UiIT09ZS50eXBlJiYodGhpcy5faW52YWxpZGF0ZWQ9ITApfXJlbmRlcmVyKCl7dGhpcy5faW52YWxpZGF0ZWQmJih0aGlzLl91cGRhdGVJbXBsKCksdGhpcy5faW52YWxpZGF0ZWQ9ITEpO2NvbnN0IGU9e3k6dGhpcy5fcG9pbnRzWzBdLnksY29sb3I6dGhpcy5fcHJvcGVydGllcy5jaGlsZHMoKS5jb2xvci52YWx1ZSgpLGxpbmV3aWR0aDp0aGlzLl9wcm9wZXJ0aWVzLmNoaWxkcygpLmxpbmV3aWR0aC52YWx1ZSgpLGxpbmVzdHlsZTp0aGlzLl9wcm9wZXJ0aWVzLmNoaWxkcygpLmxpbmVzdHlsZS52YWx1ZSgpfTtyZXR1cm4gdGhpcy5fbGluZVJlbmRlcmVyLnNldERhdGEoZSksdGhpcy5fbGluZVJlbmRlcmVyfV91cGRhdGVJbXBsKCl7Y29uc3QgZT10aGlzLl9zb3VyY2UucHJpY2VTY2FsZSgpO2lmKCFlfHxlLmlzRW1wdHkoKSlyZXR1cm4gdm9pZCh0aGlzLl9wb2ludHNbMF09bmV3IHV0LlBvaW50KC0xLC0xKSk7Y29uc3QgdD10aGlzLl9wcm9wZXJ0aWVzLmNoaWxkcygpLnZhbHVlLnZhbHVlKCkscz10aGlzLl9zb3VyY2UuZmlyc3RWYWx1ZSgpLGk9KDAsdS5pc051bWJlcikodCkmJm51bGwhPT1zP2UucHJpY2VUb0Nvb3JkaW5hdGUodCxzKTpOYU47dGhpcy5fcG9pbnRzWzBdPW5ldyB1dC5Qb2ludCgtMSxpKX19dmFyIEt0PXMoNTczMDU0KTtjbGFzcyBxdCBleHRlbmRzIEt0Lk1lZGlhQ29vcmRpbmF0ZXNQYW5lUmVuZGVyZXJ7Y29uc3RydWN0b3IoKXtzdXBlcigpLHRoaXMuX2RhdGE9bnVsbCx0aGlzLl9kYXRhPW51bGx9c2V0RGF0YShlPW51bGwpe3RoaXMuX2RhdGE9ZX1oaXRUZXN0KCl7cmV0dXJuIG51bGx9X2RyYXdJbXBsKGUpe2lmKG51bGw9PT10aGlzLl9kYXRhfHwwPT09dGhpcy5fZGF0YS5wb2ludHMubGVuZ3RoKXJldHVybjtjb25zdCB0PWUuY29udGV4dCxzPWUubWVkaWFTaXplLndpZHRoO2lmKHRoaXMuX2RhdGEuZ3JhZGllbnQpe2NvbnN0IGU9dC5jcmVhdGVMaW5lYXJHcmFkaWVudCgwLHRoaXMuX2RhdGEuY29vcmRpbmF0ZTEsMCx0aGlzLl9kYXRhLmNvb3JkaW5hdGUyKTtlLmFkZENvbG9yU3RvcCgwLHRoaXMuX2RhdGEuYmFja0NvbG9yMT8/InRyYW5zcGFyZW50IiksZS5hZGRDb2xvclN0b3AoMSx0aGlzLl9kYXRhLmJhY2tDb2xvcjI/PyJ0cmFuc3BhcmVudCIpLHQuZmlsbFN0eWxlPWV9ZWxzZSB0LmZpbGxTdHlsZT10aGlzLl9kYXRhLmJhY2tjb2xvcjtjb25zdCBpPU1hdGgubWluKHRoaXMuX2RhdGEucG9pbnRzWzBdLHRoaXMuX2RhdGEucG9pbnRzWzFdKSxyPU1hdGgubWF4KHRoaXMuX2RhdGEucG9pbnRzWzBdLHRoaXMuX2RhdGEucG9pbnRzWzFdKTt0LmZpbGxSZWN0KDAsaSxzLHItaSl9fWNsYXNzIEp0e2NvbnN0cnVjdG9yKGUpe3RoaXMuX2JhbmRCZ1JlbmRlcmVyPW5ldyBxdCx0aGlzLl9pbnZhbGlkYXRlZD0hMCx0aGlzLl9zb3VyY2U9ZX11cGRhdGUoZSl7ImhvdmVyLWNoYW5nZSIhPT1lLnR5cGUmJih0aGlzLl9pbnZhbGlkYXRlZD0hMCl9cmVuZGVyZXIoKXtyZXR1cm4gdGhpcy5faW52YWxpZGF0ZWQmJih0aGlzLl91cGRhdGVJbXBsKCksdGhpcy5faW52YWxpZGF0ZWQ9ITEpLHRoaXMuX2JhbmRCZ1JlbmRlcmVyfV91cGRhdGVJbXBsKCl7dGhpcy5fYmFuZEJnUmVuZGVyZXIuc2V0RGF0YShudWxsKTtjb25zdCBlPXRoaXMuX3NvdXJjZS5wcm9wZXJ0aWVzKCkuY2hpbGRzKCksdD1lLmJhbmRzO2lmKHQuY2hpbGRDb3VudCgpPDIpcmV0dXJuO2NvbnN0IHM9ZS5iYW5kc0JhY2tncm91bmQ7aWYoIXM/LmNoaWxkcygpLmZpbGxCYWNrZ3JvdW5kLnZhbHVlKCkpcmV0dXJuCjtjb25zdCBpPXRbMF0uY2hpbGRzKCkscj10WzFdLmNoaWxkcygpLG49dGhpcy5fc291cmNlLnByaWNlU2NhbGUoKSxhPXRoaXMuX3NvdXJjZS5maXJzdFZhbHVlKCk7aWYoIW58fG4uaXNFbXB0eSgpfHxudWxsPT09YSlyZXR1cm47Y29uc3Qgbz1bbi5wcmljZVRvQ29vcmRpbmF0ZShpLnZhbHVlLnZhbHVlKCksYSksbi5wcmljZVRvQ29vcmRpbmF0ZShyLnZhbHVlLnZhbHVlKCksYSldLGw9KDAsaC5lbnN1cmVEZWZpbmVkKShlLmJhbmRzQmFja2dyb3VuZCkuY2hpbGRzKCksdT0oMCx6ZS5jbGFtcCkobC50cmFuc3BhcmVuY3k/LnZhbHVlKCk/PzAsMCwxMDApO3RoaXMuX2JhbmRCZ1JlbmRlcmVyLnNldERhdGEoe2dyYWRpZW50OiExLHBvaW50czpvLGJhY2tjb2xvcjooMCxMLmdlbmVyYXRlQ29sb3IpKGwuYmFja2dyb3VuZENvbG9yLnZhbHVlKCksdSl9KX19Y2xhc3MgWXR7Y29uc3RydWN0b3IoZSx0LHMpe3RoaXMuX2JhbmRCZ1JlbmRlcmVyPW5ldyBxdCx0aGlzLl9iYW5kQUtleT1udWxsLHRoaXMuX2JhbmRCS2V5PW51bGwsdGhpcy5faW52YWxpZGF0ZWQ9ITAsdGhpcy5fc291cmNlPWUsKDAsaC5hc3NlcnQpKCJobGluZV9obGluZSI9PT10LnR5cGUsIldyb25nIGZpbGxlZEFyZWEgdHlwZTogIit0LnR5cGUpLHRoaXMuX2luaXRCYW5kSW5kZXhlcyh0Lm9iakFJZCx0Lm9iakJJZCksdGhpcy5fZmlsbFN0eWxlUHJvcHM9cyx0aGlzLl9iYW5kQmdSZW5kZXJlcj1uZXcgcXQsdGhpcy5fZ3JhZGllbnRGaWxsVHlwZT1zLmhhc0NoaWxkKCJmaWxsVHlwZSIpJiYiZ3JhZGllbnQiPT09cy5jaGlsZHMoKS5maWxsVHlwZT8udmFsdWUoKSx0aGlzLl9ncmFkaWVudFN0YXRpY1N0YXRlPXtjb2xvcjE6dC50b3BDb2xvcixjb2xvcjI6dC5ib3R0b21Db2xvcix2YWx1ZTE6dC50b3BWYWx1ZSx2YWx1ZTI6dC5ib3R0b21WYWx1ZX19dXBkYXRlKCl7dGhpcy5faW52YWxpZGF0ZWQ9ITB9cmVuZGVyZXIoKXtyZXR1cm4gdGhpcy5faW52YWxpZGF0ZWQmJih0aGlzLl91cGRhdGVJbXBsKCksdGhpcy5faW52YWxpZGF0ZWQ9ITEpLHRoaXMuX2JhbmRCZ1JlbmRlcmVyfV91cGRhdGVJbXBsKCl7aWYodGhpcy5fYmFuZEJnUmVuZGVyZXIuc2V0RGF0YShudWxsKSwhdGhpcy5fZmlsbFN0eWxlUHJvcHMuY2hpbGRzKCkudmlzaWJsZS52YWx1ZSgpKXJldHVybjtpZihudWxsPT09dGhpcy5fYmFuZEFLZXl8fG51bGw9PT10aGlzLl9iYW5kQktleSlyZXR1cm47Y29uc3QgZT0oMCxoLmVuc3VyZURlZmluZWQpKHRoaXMuX3NvdXJjZS5wcm9wZXJ0aWVzKCkuY2hpbGRzKCkuYmFuZHMpLHQ9ZS5jaGlsZHMoKVt0aGlzLl9iYW5kQUtleV0uY2hpbGRzKCkscz1lLmNoaWxkcygpW3RoaXMuX2JhbmRCS2V5XS5jaGlsZHMoKSxpPXRoaXMuX3NvdXJjZS5wcmljZVNjYWxlKCkscj10aGlzLl9zb3VyY2UuZmlyc3RWYWx1ZSgpO2lmKCFpfHxpLmlzRW1wdHkoKXx8bnVsbD09PXIpcmV0dXJuO2NvbnN0IG49W2kucHJpY2VUb0Nvb3JkaW5hdGUodC52YWx1ZS52YWx1ZSgpLHIpLGkucHJpY2VUb0Nvb3JkaW5hdGUocy52YWx1ZS52YWx1ZSgpLHIpXSxhPSgwLHplLmNsYW1wKSh0aGlzLl9maWxsU3R5bGVQcm9wcy5jaGlsZHMoKS50cmFuc3BhcmVuY3k/LnZhbHVlKCk/PzAsMCwxMDApO2xldCBvO2NvbnN0IGw9dGhpcy5fZmlsbFN0eWxlUHJvcHMuY2hpbGRzKCk7aWYodGhpcy5fZ3JhZGllbnRGaWxsVHlwZSl7Y29uc3QgZT10aGlzLl9ncmFkaWVudFN0YXRpY1N0YXRlLHQ9bCxzPWUudmFsdWUxPz90LnRvcFZhbHVlPy52YWx1ZSgpLGg9ZS52YWx1ZTI/P3QuYm90dG9tVmFsdWU/LnZhbHVlKCk7aWYodm9pZCAwPT09c3x8dm9pZCAwPT09aClyZXR1cm47Y29uc3QgdT1lLmNvbG9yMT8/dC50b3BDb2xvcj8udmFsdWUoKSxjPWUuY29sb3IyPz90LmJvdHRvbUNvbG9yPy52YWx1ZSgpO2lmKHZvaWQgMD09PXUmJnZvaWQgMD09PWMpcmV0dXJuO289e2dyYWRpZW50OiEwLHBvaW50czpuLGJhY2tDb2xvcjE6dSYmKDAsTC5nZW5lcmF0ZUNvbG9yKSh1LGEpLGJhY2tDb2xvcjI6YyYmKDAsTC5nZW5lcmF0ZUNvbG9yKShjLGEpLGNvb3JkaW5hdGUxOmkucHJpY2VUb0Nvb3JkaW5hdGUocyxyKSxjb29yZGluYXRlMjppLnByaWNlVG9Db29yZGluYXRlKGgscil9fWVsc2Ugbz17Z3JhZGllbnQ6ITEscG9pbnRzOm4sYmFja2NvbG9yOigwLEwuZ2VuZXJhdGVDb2xvcikobC5jb2xvci52YWx1ZSgpLGEpfTt0aGlzLl9iYW5kQmdSZW5kZXJlci5zZXREYXRhKG8pfV9pbml0QmFuZEluZGV4ZXMoZSx0KXt0aGlzLl9iYW5kQUtleT1udWxsLHRoaXMuX2JhbmRCS2V5PW51bGw7KDAsaC5lbnN1cmVEZWZpbmVkKSh0aGlzLl9zb3VyY2UubWV0YUluZm8oKS5iYW5kcykuZm9yRWFjaCgoKHMsaSk9PntudWxsPT09dGhpcy5fYmFuZEFLZXkmJnMuaWQ9PT1lJiYodGhpcy5fYmFuZEFLZXk9aSksbnVsbD09PXRoaXMuX2JhbmRCS2V5JiZzLmlkPT09dCYmKHRoaXMuX2JhbmRCS2V5PWkpfSkpfX12YXIgWnQ9cyg4Njc4MzEpLFh0PXMoNDc3MyksUXQ9cyg3NjgyOTIpLGVzPXMoNDkwNDQ2KSx0cz1zKDEyODk5OCksc3M9cygxNTI3NjYpLGlzPXMoNjgwMTI2KTtjbGFzcyBycyBleHRlbmRzIGlzLlN0dWR5UHJpY2VBeGlzVmlld3tpc1Bsb3RIaWdobGlnaHRlZCgpe2lmKCF0aGlzLl9zb3VyY2UuaGFzSGlnaGxpZ2h0ZWRQbG90cygpKXJldHVybiExO2NvbnN0IGU9dGhpcy5fc291cmNlLm1ldGFJbmZvKCkucGxvdHMuZmlsdGVyKChlPT4idGFyZ2V0ImluIGUmJmUudGFyZ2V0PT09dGhpcy5fZGF0YT8ucGxvdE5hbWUpKTtyZXR1cm4gQm9vbGVhbihlLmZpbmQoKGU9PigwLGguZW5zdXJlTm90TnVsbCkodGhpcy5fbW9kZWwuaGlnaGxpZ2h0ZWRQbG90SW5mbygpKS5wbG90SWQ9PT1lLmlkKSkpfX12YXIgbnM9cyg5Njk0KSxhcz1zKDQ4MzE2MCk7Y2xhc3Mgb3MgZXh0ZW5kcyBhcy5BYnN0cmFjdEJhckNvbG9yZXJ7Y29uc3RydWN0b3IoZSx0KXtzdXBlcigpLHRoaXMuX3JnYmFGcm9tSW50ZWdlcj0oMCxFdC5yZ2JhRnJvbUludGVnZXJDYWNoZWQpKCksdGhpcy5fc3R1ZHk9ZSx0aGlzLl9wbG90SW5kZXg9dH1hcHBseUJhclN0eWxlKGUsdCxzLGkpe2lmKHQpcmV0dXJuIHMKO2NvbnN0IHI9dGhpcy5fc3R1ZHkucHJvcGVydGllcygpLmNoaWxkcygpO2lmKCFyLnZpc2libGUudmFsdWUoKSlyZXR1cm4gcztjb25zdCBuPXRoaXMuX3N0dWR5Lm1ldGFJbmZvKCksYT10aGlzLl9zdHVkeS5kYXRhKCk7aWYoIWF8fDA9PT1hLnNpemUoKSlyZXR1cm4gcztjb25zdCBvPW4ucGxvdHNbdGhpcy5fcGxvdEluZGV4XSxsPXRoaXMuX2dldE9mZnNldCgpO2lmKHRoaXMuX3N0dWR5LmdldE1pbkZpcnN0QmFySW5kZXhGb3JQbG90KG8uaWQpPmUrbClyZXR1cm4gcztpZihyLnN0eWxlcy5jaGlsZHMoKVtvLmlkXS5jaGlsZHMoKS5kaXNwbGF5LnZhbHVlKCk9PT1aLlN0dWR5UGxvdERpc3BsYXlUYXJnZXQuTm9uZSlyZXR1cm4gcztjb25zdCB1PWEudmFsdWVBdChlLWwpO2lmKG51bGw9PT11KXJldHVybiBzO2xldCBjPXVbdGhpcy5fcGxvdEluZGV4KzFdO2lmKG51bGw9PWMpcmV0dXJuIHM7aWYoYz1NYXRoLnJvdW5kKGMpLG4uaXNSR0Ipcy5iYXJDb2xvcj10aGlzLl9yZ2JhRnJvbUludGVnZXIoYykscy51cENvbG9yPXMuYmFyQ29sb3Iscy5kb3duQ29sb3I9cy5iYXJDb2xvcjtlbHNle2NvbnN0IGU9bi5wbG90c1t0aGlzLl9wbG90SW5kZXhdO2lmKCJwYWxldHRlImluIGUpe2NvbnN0IHQ9ZS5wYWxldHRlLGk9ci5wYWxldHRlcy5jaGlsZHMoKVt0XSxhPSgwLGguZW5zdXJlRGVmaW5lZCkobi5wYWxldHRlcz8uW3RdKSxvPWEudmFsVG9JbmRleD8oMCxoLmVuc3VyZURlZmluZWQpKGEudmFsVG9JbmRleFtjXSk6YyxsPWkuY2hpbGRzKCkuY29sb3JzLmNoaWxkcygpW29dLmNoaWxkcygpLmNvbG9yLnZhbHVlKCk7cy5iYXJDb2xvcj1sLHMudXBDb2xvcj1sLHMuZG93bkNvbG9yPWx9fXJldHVybiBzfWZpcnN0Q29sb3JlZEJhcihlKXtsZXQgdD1lO2Zvcihjb25zdCBzIG9mIHRoaXMuX2JhY2tDb2xvcmVycyl0PU1hdGgubWluKHQscy5maXJzdENvbG9yZWRCYXIoZSk/PzEvMCk7Y29uc3Qgcz10aGlzLl9nZXRPZmZzZXQoKTt0PU1hdGgubWluKHQsZStzKTtjb25zdCBpPXRoaXMuX2dldEJhcnMoKS5maXJzdEluZGV4KCkscj1NYXRoLm1heCh0LGk/Py0xLzApLG49dGhpcy5fc3R1ZHkubWV0YUluZm8oKS5wbG90c1t0aGlzLl9wbG90SW5kZXhdO3JldHVybiBNYXRoLm1heCh0aGlzLl9zdHVkeS5nZXRNaW5GaXJzdEJhckluZGV4Rm9yUGxvdChuLmlkKSxyKX1fZ2V0QmFycygpe3JldHVybiB0aGlzLl9zdHVkeS5zZXJpZXMoKS5iYXJzKCl9X2dldE9mZnNldCgpe2NvbnN0IGU9dGhpcy5fc3R1ZHkubWV0YUluZm8oKS5wbG90c1t0aGlzLl9wbG90SW5kZXhdO3JldHVybiB0aGlzLl9zdHVkeS5vZmZzZXQoZS5pZCl9fXZhciBscz1zKDE3OTc3MSksaHM9cygzMDk4MzcpLHVzPXMoNzU1NjI3KSxjcz1zKDUwNDQzMSk7Y2xhc3MgZHMgZXh0ZW5kcyBEdC5QYW5lUHJpY2VBeGlzVmlld3tjb25zdHJ1Y3RvcihlLHQscyxpKXtzdXBlcihlLHQscyksdGhpcy5fZGF0YVNvdXJjZT10LHRoaXMuX2lzRm9yY2VPdmVybGF5PXQubWV0YUluZm8oKS5pc1Bsb3RGb3JjZU92ZXJsYXkoaSl9X3Bvc2l0aW9uKCl7Y29uc3QgZT10aGlzLl9pc0ZvcmNlT3ZlcmxheT90aGlzLl9jaGFydE1vZGVsLm1haW5QYW5lKCk6dGhpcy5fY2hhcnRNb2RlbC5wYW5lRm9yU291cmNlKHRoaXMuX2RhdGFTb3VyY2UpO2lmKG51bGw9PT1lKXJldHVybiBudWxsO2NvbnN0IHQ9dGhpcy5faXNGb3JjZU92ZXJsYXk/dGhpcy5fY2hhcnRNb2RlbC5tYWluU2VyaWVzKCkucHJpY2VTY2FsZSgpOnRoaXMuX2RhdGFTb3VyY2UucHJpY2VTY2FsZSgpO2lmKG51bGw9PT10KXJldHVybiBudWxsO2xldCBzPWUucHJpY2VTY2FsZVBvc2l0aW9uKHQpO3JldHVybiJvdmVybGF5Ij09PXMmJihzPWUucHJpY2VTY2FsZVBvc2l0aW9uKGUuZGVmYXVsdFByaWNlU2NhbGUoKSkpLCJvdmVybGF5Ij09PXM/bnVsbDpzfX12YXIgcHM9cygyMzMyNDcpLF9zPXMoNDM3NzQ5KSxmcz1zKDQxMzY2KSxtcz1zKDMxNjY1NSkseXM9cyg3NzU4NjkpLGdzPXMoODM1Mjc4KTtjb25zdCBTcz0oMCxjLmdldExvZ2dlcikoIkNoYXJ0LlN0dWR5IiksYnM9Vi50KG51bGwse2NvbnRleHQ6InN0dWR5IHN0YXR1cyBkZXNjcmlwdGlvbiJ9LHMoOTI5MDY2KSksdnM9L14oW15cJF0rKVwkXGQrJC87dmFyIFBzLElzO2Z1bmN0aW9uIHdzKCl7cmV0dXJue2ZpZWxkczpbXSx1c2VNYWluU2VyaWVzUmFuZ2U6ITEsYmFzZVZhbHVlTWluTWF4Om51bGx9fSFmdW5jdGlvbihlKXtlLlBhbmVWaWV3cz0ic3R1ZHktcGFuZS12aWV3cyJ9KFBzfHwoUHM9e30pKSxmdW5jdGlvbihlKXtlW2UuRGVmYXVsdFByaWNlU2NhbGU9MTAwXT0iRGVmYXVsdFByaWNlU2NhbGUifShJc3x8KElzPXt9KSk7Y29uc3QgQ3M9e3N5bWJvbHNGb3JEaXNwbGF5OiExLHN5bWJvbHNGb3JDaGFydEFwaTohMCxza2lwSGlkZGVuSW5wdXRzOiExLHNraXBGYWtlSW5wdXRzOiExLHNraXBCb29sZWFuSW5wdXRzOiExLGFzT2JqZWN0OiEwLHNraXBwZWRHcm91cHM6W10sc2tpcHBlZElucHV0czpbXSxub0V4Y2hhbmdlczohMSxub1Jlc29sdXRpb246ITEsa2VlcE9wdGlvbmFsU3ltYm9sc0VtcHR5OiExLHNraXBDb2xvcklucHV0czohMSxza2lwVGltZUlucHV0czohMSxza2lwT3B0aW9uYWxFbXB0eVN5bWJvbElucHV0czohMSxza2lwVGV4dGFyZWFJbnB1dHM6ITEscHJpY2VJbnB1dHNGb3JEaXNwbGF5OiExfSxWcz17c3ltYm9sc0ZvckRpc3BsYXk6ITEsc3ltYm9sc0ZvckNoYXJ0QXBpOiEwLHNraXBIaWRkZW5JbnB1dHM6ITAsc2tpcEZha2VJbnB1dHM6ITEsc2tpcEJvb2xlYW5JbnB1dHM6ITEsc2tpcHBlZEdyb3VwczpbXSxza2lwcGVkSW5wdXRzOltdLG5vRXhjaGFuZ2VzOiExLG5vUmVzb2x1dGlvbjohMSxrZWVwT3B0aW9uYWxTeW1ib2xzRW1wdHk6ITEsc2tpcENvbG9ySW5wdXRzOiExLHNraXBUaW1lSW5wdXRzOiExLHNraXBPcHRpb25hbEVtcHR5U3ltYm9sSW5wdXRzOiExLHNraXBUZXh0YXJlYUlucHV0czohMSxwcmljZUlucHV0c0ZvckRpc3BsYXk6ITEsZmFrZUlucHV0c0ZvckRpc3BsYXk6ITEsZG9Ob3RTa2lwSGlkZGVuV2l0aE1pZ3JhdGU6ITEsb25seUF0b21WYWx1ZXM6ITB9LHhzPSgwLApJLmlzRmVhdHVyZXNldEVuYWJsZWQpKCJzdHVkeV9zeW1ib2xfdGlja2VyX2Rlc2NyaXB0aW9uIiksQXM9KDAsSS5pc0ZlYXR1cmVzZXRFbmFibGVkKSgiaGlkZV9tYWluX3Nlcmllc19zeW1ib2xfZnJvbV9pbmRpY2F0b3JfbGVnZW5kIiksUnM9KDAsSS5pc0ZlYXR1cmVzZXRFbmFibGVkKSgiZGF0YXNvdXJjZV9jb3B5cGFzdGUiKSxNcz0oMCxJLmlzRmVhdHVyZXNldEVuYWJsZWQpKCJoaWRlX3VucmVzb2x2ZWRfc3ltYm9sc19pbl9sZWdlbmQiKTtmdW5jdGlvbiBUcyhlLHQpe2NvbnN0IHM9ZS5wbG90c1t0XTtpZighc3x8ISgwLFouaXNPaGxjUGxvdCkocykpcmV0dXJuITE7Y29uc3QgaT1zLnRhcmdldCxyPWUuZGVmYXVsdHMuc3R5bGVzJiZlLmRlZmF1bHRzLnN0eWxlc1tpXSxuPWUuZGVmYXVsdHMub2hsY1Bsb3RzJiZlLmRlZmF1bHRzLm9obGNQbG90c1tpXSxhPWUub2hsY1Bsb3RzJiZlLm9obGNQbG90c1tpXTtyZXR1cm4gciYmKDAsWi5pc09obGNQbG90U3R5bGVCYXJzKShyKXx8biYmKDAsWi5pc09obGNQbG90U3R5bGVCYXJzKShuKXx8ISFhJiYoMCxaLmlzT2hsY1Bsb3RTdHlsZUJhcnMpKGEpfWZ1bmN0aW9uIERzKGUsdCl7Y29uc3Qgcz1lLnBsb3RzW3RdO2lmKCFzfHwhKDAsWi5pc09obGNQbG90KShzKSlyZXR1cm4hMTtjb25zdCBpPXMudGFyZ2V0LHI9ZS5kZWZhdWx0cy5zdHlsZXMmJmUuZGVmYXVsdHMuc3R5bGVzW2ldLG49ZS5kZWZhdWx0cy5vaGxjUGxvdHMmJmUuZGVmYXVsdHMub2hsY1Bsb3RzW2ldLGE9ZS5vaGxjUGxvdHMmJmUub2hsY1Bsb3RzW2ldO3JldHVybiByJiYoMCxaLmlzT2hsY1Bsb3RTdHlsZUNhbmRsZXMpKHIpfHxuJiYoMCxaLmlzT2hsY1Bsb3RTdHlsZUNhbmRsZXMpKG4pfHwhIWEmJigwLFouaXNPaGxjUGxvdFN0eWxlQ2FuZGxlcykoYSl9ZnVuY3Rpb24gRnMoZSx0KXsoMCxoLmFzc2VydCkodm9pZCAwIT09ZSwiek9yZGVyIG11c3QgYmUgZGVmaW5lZCIpLCgwLGguYXNzZXJ0KSghdC5oYXMoZSksInpPcmRlciBtdXN0IGJlIHVuaXF1ZSIpfWZ1bmN0aW9uIE9zKGUpe2lmKCFlLm1ldGFJbmZvKXJldHVybjtjb25zdCB0PWUubWV0YUluZm8uc2NyaXB0SWRQYXJ0O2lmKCF0KXJldHVybjtjb25zdCBzPShpPUMoKSh0KSxidG9hKFN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkobnVsbCxuZXcgVWludDhBcnJheShpKSkpKTt2YXIgaTtjb25zdCByPWUubWV0YUluZm87ci5pZD0oci5pZHx8IiIpLnJlcGxhY2UodCxzKSxyLmZ1bGxJZD0oci5mdWxsSWR8fCIiKS5yZXBsYWNlKHQscyksci5uYW1lPShyLm5hbWV8fCIiKS5yZXBsYWNlKHQscyksci5zaG9ydElkPShyLnNob3J0SWR8fCIiKS5yZXBsYWNlKHQscyksci5zY3JpcHRJZFBhcnQ9KHIuc2NyaXB0SWRQYXJ0fHwiIikucmVwbGFjZSh0LHMpLGUuc3RhdGUmJihlLnN0YXRlLmlkPShlLnN0YXRlLmlkfHwiIikucmVwbGFjZSh0LHMpLGUuc3RhdGUubmFtZT0oZS5zdGF0ZS5uYW1lfHwiIikucmVwbGFjZSh0LHMpLGUuc3RhdGUuc2NyaXB0SWRQYXJ0PShlLnN0YXRlLnNjcmlwdElkUGFydHx8IiIpLnJlcGxhY2UodCxzKSl9ZnVuY3Rpb24gTnMoZSx0KXtyZXR1cm4gZS5wbG90cy5zb21lKChlPT4oKDAsWi5pc0NvbG9yZXJQbG90KShlKXx8KDAsWi5pc0RhdGFQbG90KShlKSkmJmUudGFyZ2V0PT09dCkpfWZ1bmN0aW9uIGtzKGUsdCxzKXtsZXQgaT0wLHI9MDtyZXR1cm4gZS5pbnB1dHMuZmlsdGVyKChlPT4ic291cmNlIj09PWUudHlwZSkpLmZvckVhY2goKGU9PnsoMCxEZS5nZXRJbnB1dFZhbHVlKShzW2UuaWRdKS5pbmNsdWRlcygiJCIpJiZpKyssKDAsRGUuZ2V0SW5wdXRWYWx1ZSkodFtlLmlkXSkuaW5jbHVkZXMoIiQiKSYmcisrfSkpLE1hdGguc2lnbihyKS1NYXRoLnNpZ24oaSl9ZnVuY3Rpb24gQnMoZSl7Y29uc3QgdD0oMCxfLmNvbWJpbmUpKChlPT5lLm1hcCgoZT0+QnMoZS5wYXJlbnRTb3VyY2VzVlcoKS53ZWFrUmVmZXJlbmNlKCkpKSkpLGUpO3JldHVybigwLF8uYWNjdW11bGF0ZSkoKChlLHQpPT5BcnJheS5mcm9tKG5ldyBTZXQodC5jb25jYXQoZS5mbGF0KDIwKSkpKSksdC5vd25lcnNoaXAoKSxlKS5vd25lcnNoaXAoKX1mdW5jdGlvbiBFcyhlKXtyZXR1cm4iaW5oZXJpdCI9PT1lLnR5cGUmJihlLnR5cGU9InByaWNlIiksZX1mdW5jdGlvbiBMcyhlLHQscyxpKXtpZihudWxsIT09dClzd2l0Y2goZS50eXBlKXtjYXNlImluaGVyaXQiOmNhc2UicHJpY2UiOnJldHVybiBuZXcgdXMuUHJpY2VGb3JtYXR0ZXIoe3ByaWNlU2NhbGU6dH0pO2Nhc2Uidm9sdW1lIjpyZXR1cm4oMCxwcy5nZXRWb2x1bWVGb3JtYXR0ZXIpKE1hdGgubG9nMTAodCkpO2Nhc2UicGVyY2VudCI6cmV0dXJuKDAscHMuZ2V0UGVyY2VudGFnZUZvcm1hdHRlcikoTWF0aC5sb2cxMCh0KSl9aWYoImluaGVyaXQiPT09ZS50eXBlKXJldHVybiBudWxsO2NvbnN0IHI9KDAsdS5pc051bWJlcikoZS5wcmVjaXNpb24pP01hdGgucG93KDEwLGUucHJlY2lzaW9uKTp2b2lkIDA7c3dpdGNoKGUudHlwZSl7Y2FzZSJwcmljZSI6cmV0dXJuIG5ldyB1cy5QcmljZUZvcm1hdHRlcih7cHJpY2VTY2FsZTpyfSk7Y2FzZSJ2b2x1bWUiOntsZXQgdD1lLnByZWNpc2lvbjtyZXR1cm4gdm9pZCAwPT09dCYmKHQ9cyYmKDAsdS5pc051bWJlcikocy52b2x1bWVfcHJlY2lzaW9uKT9zLnZvbHVtZV9wcmVjaXNpb246MCksKDAscHMuZ2V0Vm9sdW1lRm9ybWF0dGVyKSh0KX1jYXNlInBlcmNlbnQiOnJldHVybigwLHBzLmdldFBlcmNlbnRhZ2VGb3JtYXR0ZXIpKHZvaWQgMD09PXI/dm9pZCAwOk1hdGgubG9nMTAocikpO2RlZmF1bHQ6cmV0dXJuIFNzLmxvZ1dhcm4oYFVuc3VwcG9ydGVkIGZvcm1hdCB0eXBlOiAke2UudHlwZX1gKSxudWxsfX1jb25zdCBIcz1uZXcgU2V0KERlLnJhbmdlRGVwZW5kZW50U3R1ZHlJbnB1dE5hbWVzTGlzdCk7Y2xhc3MgVXMgZXh0ZW5kcyBVLlByaWNlRGF0YVNvdXJjZXtjb25zdHJ1Y3RvcihlLHQscyxyLG4sYSxvKXtzdXBlcihlKSx0aGlzLl9vblN0YXJ0PW5ldyB5LkRlbGVnYXRlLHRoaXMuX3Jlc3RhcnRpbmc9ITEsdGhpcy5fcGFuZVZpZXdzPVtdLHRoaXMuX2ZvcmNlT3ZlcmxheXNQYW5lVmlld3M9W10sCnRoaXMuX2xlZ2VuZFZpZXc9bnVsbCx0aGlzLl9mbG9hdGluZ1Rvb2x0aXBWaWV3PW51bGwsdGhpcy5fcHJpY2VBeGlzVmlld3M9W10sdGhpcy5fZm9yY2VPdmVybGF5UHJpY2VBeGlzVmlld3M9W10sdGhpcy5fcHJpY2VBeGlzVmlld3NCYXNlPVtdLHRoaXMuX3Jlc29sdmVkU3ltYm9scz17fSx0aGlzLl9yZXNvbHZlZFN5bWJvbHNCeUlucHV0PXt9LHRoaXMuX3ByaWNlTGluZXNBeGlzVmlld3M9W10sdGhpcy5fbGFiZWxQYW5lVmlld3M9W10sdGhpcy5fZm9yY2VPdmVybGF5TGFiZWxQYW5lVmlld3M9W10sdGhpcy5fY3VycmVuY3lJbnB1dFByb3BlcnR5PW51bGwsdGhpcy5fdW5pdElucHV0UHJvcGVydHk9bnVsbCx0aGlzLl9jdXJyZW5jeVVuaXRTb3VyY2VTeW1ib2xJbmZvPW5ldyBmLldhdGNoZWRWYWx1ZShudWxsKSx0aGlzLl9vd25GaXJzdFZhbHVlPW51bGwsdGhpcy5fZm9ybWF0dGVyPW51bGwsdGhpcy5fZGVmYXVsdEZvcm1hdHRlcj1udWxsLHRoaXMuX2RhdGFVcGRhdGVkPW5ldyB5LkRlbGVnYXRlLHRoaXMuX2N1cnJlbmN5U291cmNlU3ltYm9sSW5wdXRQcm9wZXJ0eT1udWxsLHRoaXMuX3BpbmVTb3VyY2VDb2RlTW9kZWw9bnVsbCx0aGlzLl9hbGVydFNvdXJjZU1vZGVsPW51bGwsdGhpcy5fb25IaWJlcm5hdGlvblN0YXRlQ2hhbmdlPW5ldyB5LkRlbGVnYXRlLHRoaXMuX3N5bWJvbHNSZXNvbHZlZD1uZXcgeS5EZWxlZ2F0ZSx0aGlzLl9zdGF0dXNDaGFuZ2VkPW5ldyB5LkRlbGVnYXRlLHRoaXMuX2lucHV0c0FuY2hvcnNQYW5lVmlldz1udWxsLHRoaXMuX2lucHV0c0xpbmVzUGFuZVZpZXc9bnVsbCx0aGlzLl9pbnB1dHNUaW1lQXhpc1BhbmVWaWV3cz1bXSx0aGlzLl9pbnB1dHNQcmljZUF4aXNQYW5lVmlld3M9W10sdGhpcy5fc291cmNlcz1uZXcgbS5XYXRjaGVkT2JqZWN0KFtdLHAuY29tcGFyZVR3b0NvbGxlY3Rpb25zQnlJZHMpLHRoaXMuX3N0YXR1cz1uZXcgZi5XYXRjaGVkVmFsdWUoe3R5cGU6WnQuU3R1ZHlTdGF0dXNUeXBlLlVuZGVmaW5lZH0pLHRoaXMuX2NvbXBpbGVBY3RpdmVTdGF0dXM9bmV3IG0uV2F0Y2hlZE9iamVjdChudWxsKSx0aGlzLl9jb21waWxlRXJyb3JTdGF0dXM9bmV3IG0uV2F0Y2hlZE9iamVjdChudWxsKSx0aGlzLl93YXNDb21wbGV0ZWRCZWZvcmU9ITEsdGhpcy5faXNTdGFydGVkPSExLHRoaXMuX2lzU3Vic2NyaWJlZFRvU2Vzc2lvbklkPSExLHRoaXMuX3RpdGxlU3RyQ2FjaGU9e30sdGhpcy5fdGl0bGVJblBhcnRzQ2FjaGU9e30sdGhpcy5fc3BsaXRUaXRsZUNhY2hlPXt9LHRoaXMuX2lucHV0c0luUGFydHNDYWNoZT17fSx0aGlzLl9jaGlsZHJlbj1bXSx0aGlzLl9ncmFwaGljc1ByaWNlQXhpc1ZpZXdzPVtdLHRoaXMuX3NlcnZlclBsb3RPZmZzZXRzPW5ldyBtLldhdGNoZWRPYmplY3Qoe30pLHRoaXMuX29uZ29pbmdEYXRhVXBkYXRlPVByb21pc2UucmVzb2x2ZSgpLHRoaXMuX3N0dWR5TW9kaWZpZWQ9ITEsdGhpcy5fdGFnc0NoYW5nZWQ9bmV3IHkuRGVsZWdhdGUsdGhpcy5fdHVybmFyb3VuZD0ic3QwIix0aGlzLl9wZW5kaW5nUmVzb2x2ZVN5bWJvbHM9bmV3IE1hcCx0aGlzLl9vbklzQWN0dWFsSW50ZXJ2YWxDaGFuZ2U9bmV3IHkuRGVsZWdhdGUsdGhpcy5fY2hpbGRTdHVkeUJ5UmViaW5kPW5ldyB5LkRlbGVnYXRlLHRoaXMuX2xhc3ROb25FbXB0eVBsb3RSb3dDYWNoZT17fSx0aGlzLl9zdGFydE1vdmluZ1BvaW50PW51bGwsdGhpcy5fcHJvY2Vzc0hpYmVybmF0ZUJvdW5kPXRoaXMucHJvY2Vzc0hpYmVybmF0ZS5iaW5kKHRoaXMsMSksdGhpcy5fbWF4T2Zmc2V0PW5ldyBmLldhdGNoZWRWYWx1ZSgwKSx0aGlzLl9ncmFwaGljc1ByaWNlUmFuZ2VHcm91cHM9bnVsbCx0aGlzLl9ncmFwaGljc1ZpZXdzUmVhZHk9ITEsdGhpcy5fdmlzaWJsZVRpbWVSYW5nZUlucHV0cz1udWxsLHRoaXMuX3R1cm5hcm91bmRDb3VudGVyPTAsdGhpcy5fZGVmZXJyZWRQaW5lUGF0Y2hQcm9wcz0hMSx0aGlzLl9wcm9wZXJ0aWVzUGF0Y2hlZD1Qcm9taXNlLnJlc29sdmUoKSx0aGlzLl9yZXNldFByb3BlcnRpZXNQYXRjaGVkPVByb21pc2UucmVzb2x2ZSgpLHRoaXMuX2Fib3J0UGF0Y2hQcm9wc0NvbnRyb2xsZXI9bmV3IEFib3J0Q29udHJvbGxlcix0aGlzLl9hYm9ydFJlc2V0UGF0Y2hQcm9wc0NvbnRyb2xsZXI9bmV3IEFib3J0Q29udHJvbGxlcix0aGlzLl9hYm91dFRvQmVEZXN0cm95ZWQ9bmV3IHkuRGVsZWdhdGUsdGhpcy5fZGVmaW5pdGlvbnNWaWV3TW9kZWw9bnVsbCx0aGlzLl9wbG90Rm9ybWF0dGVycz1uZXcgTWFwLHRoaXMuX3Nob3dQaW5lVmVyc2lvbkluU3RhdHVzTGluZT1uZXcgZi5XYXRjaGVkVmFsdWUoITEpLnNwYXduKCksdGhpcy5fb25QYXJlbnRTb3VyY2VzQ2hhbmdlcz1uZXcgeS5EZWxlZ2F0ZSx0aGlzLl9zdGF0dXNDaGFuZ2VzU3Vic2NyaWJlcj17fSx0aGlzLl9jYWxjdWxhdGlvblRpbWU9bmV3IGYuV2F0Y2hlZFZhbHVlKDApLHRoaXMuX3N0YXRlRm9yQWxlcnRDYWNoZT1udWxsLHRoaXMuX2lkRm9yQWxlcnRDYWNoZT1udWxsLHRoaXMuX2lkRm9yQWxlcnRXVj1uZXcgZi5XYXRjaGVkVmFsdWUoIiIpLHRoaXMuX2NoYXJ0QXBpPWUuY2hhcnRBcGkoKSx0aGlzLl9wcm9wZXJ0aWVzPXQsdGhpcy5fb3JpZ2luYWxNZXRhSW5mbz1uLHRoaXMuX21ldGFJbmZvPW5ldyBmLldhdGNoZWRWYWx1ZShyKSx0aGlzLl9zdHVkeU5hbWU9KDAsXy5jb21iaW5lKSgoZT0+ZS51c2VWZXJzaW9uRnJvbU1ldGFJbmZvPygwLHYuZ2V0U3R1ZHlJZFdpdGhWZXJzaW9uKShlKTp0aGlzLl9nZXRTdHVkeUlkV2l0aExhdGVzdFZlcnNpb24oKSksdGhpcy5fbWV0YUluZm8ud2Vha1JlZmVyZW5jZSgpKSx0aGlzLl9jb21wb3VuZFN0YXR1cz0oMCxfLmNvbWJpbmUpKCgoZSx0LHMpPT5lPz90Pz9zKSx0aGlzLl9jb21waWxlQWN0aXZlU3RhdHVzLndlYWtSZWZlcmVuY2UoKSx0aGlzLl9jb21waWxlRXJyb3JTdGF0dXMud2Vha1JlZmVyZW5jZSgpLHRoaXMuX3N0YXR1cy53ZWFrUmVmZXJlbmNlKCkpLHRoaXMuX2hpZGVNYXRjaGVzPXIuaW5wdXRzLmZpbHRlcigoZT0+ZS5oaWRlV2hlblBsb3RzSGlkZGVuKSkubWFwKChlPT4oe2lkOmUuaWQsCnBsb3RJZHM6ZS5oaWRlV2hlblBsb3RzSGlkZGVufHxbXX0pKSksdGhpcy5fc2VyaWVzPXRoaXMuX21vZGVsLm1haW5TZXJpZXMoKSx0aGlzLl9zZXJpZXMub25JbnRlcnZhbENoYW5nZWQoKS5zdWJzY3JpYmUodGhpcyx0aGlzLl9jYWxjSXNBY3R1YWxJbnRlcnZhbCksdGhpcy5fc2VyaWVzLmFsZXJ0Q3JlYXRpb25BdmFpbGFibGUoKS5zdWJzY3JpYmUodGhpcy5fdXBkYXRlQWxlcnRDcmVhdGlvbkF2YWlsYWJsZUJvdW5kKSx0aGlzLl9zaG93U3R1ZHlBcmd1bWVudHNQcm9wZXJ0eT0oMCx4ZS5jb21iaW5lUHJvcGVydHkpKCgoZSx0KT0+ZSYmdCksZS5wcm9wZXJ0aWVzKCkuY2hpbGRzKCkucGFuZVByb3BlcnRpZXMuY2hpbGRzKCkubGVnZW5kUHJvcGVydGllcy5jaGlsZHMoKS5zaG93U3R1ZHlBcmd1bWVudHMud2Vha1JlZmVyZW5jZSgpLHRoaXMuX3Byb3BlcnRpZXMuY2hpbGRzKCkuc2hvd0xlZ2VuZElucHV0cy53ZWFrUmVmZXJlbmNlKCkpLHRoaXMuX21vZGVsLnN5bWJvbEFsaWFzU2VydmljZSgpPy5vbkFsaWFzQ2hhbmdlZCgpLnN1YnNjcmliZSh0aGlzLCgoKT0+e3RoaXMuX29uRm9ybWF0dGVyUHJvcHNDaGFuZ2VkKCksdGhpcy5pbnZhbGlkYXRlVGl0bGVDYWNoZSgpfSkpLGUuY29sbGFwc2VkKCkuc3Vic2NyaWJlKHRoaXMuX3Byb2Nlc3NIaWJlcm5hdGVCb3VuZCksdGhpcy5fc291cmNlcy5zZXRWYWx1ZShzKSxmdW5jdGlvbihlLHQscyl7Zm9yKGNvbnN0IGkgb2YgZS5pbnB1dHMpe2lmKCF2LlN0dWR5TWV0YUluZm8uaXNTb3VyY2VJbnB1dChpKSljb250aW51ZTtjb25zdCBlPXMuY2hpbGRzKCkuaW5wdXRzJiZzLmNoaWxkcygpLmlucHV0cy5jaGlsZHMoKVtpLmlkXTtpZihlKXtjb25zdCBzPWUudmFsdWUoKSxpPXZzLmV4ZWMocyk7aWYoMj09PWk/Lmxlbmd0aCYmIntwaWR9Ij09PWlbMV0pe2NvbnN0IGk9cy5yZXBsYWNlKC9eW15cJF0rLyx0KTtlLnNldFZhbHVlKGkpfX19fShyLHNbMF0/LmlkKCksdCkscy5mb3JFYWNoKChlPT57ZS5zZXRDaGlsZCh0aGlzKX0pKSxbdGhpcy5fc2VyaWVzLC4uLnNdLmZvckVhY2goKGU9PntlLmN1cnJlbmN5Q2hhbmdlZCgpLnN1YnNjcmliZSh0aGlzLHRoaXMuX29uU291cmNlQ3VycmVuY3lDaGFuZ2VkKSxlLnVuaXRDaGFuZ2VkKCkuc3Vic2NyaWJlKHRoaXMsdGhpcy5fb25Tb3VyY2VVbml0Q2hhbmdlZCksZS5tZXRyaWNDaGFuZ2VkKCkuc3Vic2NyaWJlKHRoaXMsdGhpcy5fb25Tb3VyY2VNZXRyaWNDaGFuZ2VkKSxlLnByaWNlUmFuZ2VSZWFkeUNoYW5nZWQoKS5zdWJzY3JpYmUodGhpcyx0aGlzLl9vblNvdXJjZVByaWNlUmFuZ2VSZWFkeUNoYW5nZWQpLGUuZm9ybWF0dGVyQ2hhbmdlZCgpLnN1YnNjcmliZSh0aGlzLHRoaXMuX29uU291cmNlRm9ybWF0dGVyQ2hhbmdlZCksZS5wcmljZVN0ZXBDaGFuZ2VkKCkuc3Vic2NyaWJlKHRoaXMsdGhpcy5fb25Tb3VyY2VQcmljZVN0ZXBDaGFuZ2VkKX0pKSx4cyYmdGhpcy5fbW9kZWwubWFpblNlcmllcygpLnByb3BlcnRpZXMoKS5jaGlsZHMoKS5zdGF0dXNWaWV3U3R5bGUuY2hpbGRzKCkuc3ltYm9sVGV4dFNvdXJjZS5zdWJzY3JpYmUodGhpcywoKCk9Pnt0aGlzLmludmFsaWRhdGVUaXRsZUNhY2hlKCEwKX0pKTtjb25zdCBsPXRoaXMuX3Byb3BlcnRpZXMuY2hpbGRzKCk7Zm9yKGNvbnN0IGUgb2Ygdi5TdHVkeU1ldGFJbmZvLmdldFNvdXJjZUlucHV0SWRzKHIpKWwuaW5wdXRzLmNoaWxkcygpW2VdPy5zdWJzY3JpYmUodGhpcyx0aGlzLl9vblNvdXJjZUlucHV0Q2hhbmdlZCk7dGhpcy5fcGxvdE9mZnNldHM9KDAsXy5jb21iaW5lKSgoKGUsdCxzLGkpPT4oaS5wbG90cz8/W10pLnJlZHVjZSgoKGkscik9Pntjb25zdCBuPXIuaWQsYT0oZVtuXT8/MCkrKHM/LmNoaWxkcygpW25dPy5jaGlsZHMoKS52YWwudmFsdWUoKT8/MCkrKHQ/PzApO3JldHVybiBpW25dPWEsaX0pLHt9KSksdGhpcy5fc2VydmVyUGxvdE9mZnNldHMud2Vha1JlZmVyZW5jZSgpLCgwLFJlLmNyZWF0ZVdWRnJvbUdldHRlckFuZFN1YnNjcmlwdGlvbikoKCgpPT50aGlzLnByb3BlcnRpZXMoKS5jaGlsZHMoKS5vZmZzZXQ/LmNoaWxkcygpLnZhbC52YWx1ZSgpKSx0aGlzLnByb3BlcnRpZXMoKS5jaGlsZHMoKS5vZmZzZXQ/P25ldyB5LkRlbGVnYXRlKS5vd25lcnNoaXAoKSwoMCxSZS5jcmVhdGVXVkZyb21HZXR0ZXJBbmRTdWJzY3JpcHRpb24pKCgoKT0+dGhpcy5wcm9wZXJ0aWVzKCkuY2hpbGRzKCkub2Zmc2V0cyksdGhpcy5wcm9wZXJ0aWVzKCkuY2hpbGRzKCkub2Zmc2V0cz8/bmV3IHkuRGVsZWdhdGUpLm93bmVyc2hpcCgpLHRoaXMuX21ldGFJbmZvLndlYWtSZWZlcmVuY2UoKSksdGhpcy5fcHJvcGVydGllcy5zdWJzY3JpYmUodGhpcyx0aGlzLl9vblByb3BlcnRpZXNDaGFuZ2VkKSxsLnZpc2libGUuc3Vic2NyaWJlKHRoaXMsdGhpcy5fdmlzaWJsZUNoYW5nZWQpLGwudmlzaWJsZS5zdWJzY3JpYmUodGhpcywoKCk9PnRoaXMucHJvY2Vzc0hpYmVybmF0ZSgpKSksbC5pbnRlcnZhbHNWaXNpYmlsaXRpZXMuc3Vic2NyaWJlKHRoaXMsdGhpcy5fY2FsY0lzQWN0dWFsSW50ZXJ2YWwpLGwuaW5wdXRzLnN1YnNjcmliZSh0aGlzLHRoaXMuX3VwZGF0ZU1heE9mZnNldFZhbHVlKSx2b2lkIDAhPT1sLm9mZnNldHMmJmwub2Zmc2V0cy5zdWJzY3JpYmUodGhpcyx0aGlzLl91cGRhdGVNYXhPZmZzZXRWYWx1ZSksdm9pZCAwIT09bC5vZmZzZXQmJmwub2Zmc2V0LnN1YnNjcmliZSh0aGlzLHRoaXMuX3VwZGF0ZU1heE9mZnNldFZhbHVlKSxRLmhpZGVBbGxJbmRpY2F0b3JzKCkuc3Vic2NyaWJlKHRoaXMsdGhpcy5fdmlzaWJsZUNoYW5nZWQpO2ZvcihsZXQgZT0wO2U8ci5wbG90cy5sZW5ndGg7ZSsrKXtjb25zdCB0PXIucGxvdHNbZV0scz10LmlkLGk9bC5zdHlsZXMuY2hpbGRzKClbc10sbj0oMCxaLmlzQmFyQ29sb3JlclBsb3QpKHQpO2kmJiFpLmhhc0NoaWxkKCJkaXNwbGF5IikmJmkubWVyZ2Uoe2Rpc3BsYXk6Wi5TdHVkeVBsb3REaXNwbGF5VGFyZ2V0LkFsbH0pLGk/LmNoaWxkcygpLmRpc3BsYXkuc3Vic2NyaWJlKHRoaXMsKCgpPT57dGhpcy5wcm9jZXNzSGliZXJuYXRlKCksdGhpcy5pbnZhbGlkYXRlVGl0bGVDYWNoZSgpLApuJiZ0aGlzLl9zZXJpZXMuaW52YWxpZGF0ZUJhckNvbG9yZXJDYWNoZSgpfSkpfWZvcihjb25zdCBlIG9mIE9iamVjdC5rZXlzKHIuZ3JhcGhpY3MpKWZvcihjb25zdCB0IG9mIE9iamVjdC5rZXlzKHIuZ3JhcGhpY3NbZV0pKXtjb25zdCBzPWwuZ3JhcGhpY3MuY2hpbGRzKClbZV0/LmNoaWxkcygpW3RdO3MmJnMuY2hpbGRzKCkudmlzaWJsZSYmKDAsaC5lbnN1cmVEZWZpbmVkKShzLmNoaWxkcygpLnZpc2libGUpLnN1YnNjcmliZSh0aGlzLCgoKT0+dGhpcy5wcm9jZXNzSGliZXJuYXRlKCkpKX10aGlzLl9pc0FjdHVhbEludGVydmFsPSgwLFh0LmlzQWN0dWFsSW50ZXJ2YWwpKHRoaXMuX3Nlcmllcy5pbnRlcnZhbE9iaigpLnZhbHVlKCksbC5pbnRlcnZhbHNWaXNpYmlsaXRpZXMpLHRoaXMuX2luaXRpYWxpemVTdHVkeUlucHV0c1BhbmVWaWV3cygpLHRoaXMuX2hhbmRsZXI9ZT0+dGhpcy5fb25EYXRhKGUpLHRoaXMuX3ZhbHVlc1Byb3ZpZGVyPW5ldyBocy5TdHVkeVZhbHVlc1Byb3ZpZGVyKHRoaXMsZSksdGhpcy5fdGFibGVWaWV3VmFsdWVzUHJvdmlkZXI9bmV3IGZzLlN0dWR5VGFibGVWaWV3VmFsdWVzUHJvdmlkZXIodGhpcyxlKSx0aGlzLl9ncmFwaGljc1ByaWNlUmFuZ2VHcm91cHM9Z2UodGhpcyksdGhpcy5fZ3JhcGhpY3M9bmV3IEsuTGl2ZVN0dWR5R3JhcGhpY3Moci5ncmFwaGljcyksdGhpcy5fc2lnbmxlUGVyZm9ybWFuY2VWYWx1ZT0oMCxNZS5jcmVhdGVXVkZyb21HZXR0ZXJBbmRTdWJzY3JpcHRpb25zKSgoKCk9PkFycmF5LmZyb20oKDAsaC5lbnN1cmVEZWZpbmVkKSh0aGlzLl9ncmFwaGljcy5wZXJmb3JtYW5jZSgpLmdldCgicGVyZm9ybWFuY2UiKSkpWzBdPz9udWxsKSxbKDAsaC5lbnN1cmVEZWZpbmVkKSh0aGlzLl9ncmFwaGljcy5vYnNlcnZhYmxlUGVyZm9ybWFuY2UoKS5nZXQoInBlcmZvcm1hbmNlIikpLmNoYW5nZWQoKSwoMCxoLmVuc3VyZURlZmluZWQpKHRoaXMuX2dyYXBoaWNzLm9ic2VydmFibGVQZXJmb3JtYW5jZSgpLmdldCgicGVyZm9ybWFuY2UiKSkuY2xlYXJlZCgpXSksdGhpcy5fY2hhcnRBcGk9ZS5jaGFydEFwaSgpLHRoaXMuX2ludmFsaWRhdGVMYXN0Tm9uRW1wdHlQbG90Um93Q2FjaGUoKSx0aGlzLl9kYXRhPW5ldyBnLlBsb3RMaXN0KCgwLGNzLnN0dWR5UGxvdEZ1bmN0aW9uTWFwKShyKSxjcy5zdHVkeUVtcHR5UGxvdFZhbHVlUHJlZGljYXRlKSx0aGlzLl9jcmVhdGVWaWV3cygpLHRoaXMuX3JlY3JlYXRlUHJpY2VGb3JtYXR0aW5nRGVwZW5kZW5jaWVzKHRoaXMuX3Nlcmllcy5zeW1ib2xJbmZvKCkpLGwucHJlY2lzaW9uLnN1YnNjcmliZSh0aGlzLHRoaXMuX29uRm9ybWF0dGVyUHJvcHNDaGFuZ2VkKSx0aGlzLl9tZXRhSW5mby5zdWJzY3JpYmUoKCgpPT50aGlzLl9vbkZvcm1hdHRlclByb3BzQ2hhbmdlZCgpKSksdGhpcy5fc2hvd1N0dWR5QXJndW1lbnRzUHJvcGVydHkuc3Vic2NyaWJlKHRoaXMsKCgpPT50aGlzLmludmFsaWRhdGVUaXRsZUNhY2hlKCEwKSkpLGwuaW5wdXRzLnN1YnNjcmliZSh0aGlzLCgoKT0+dGhpcy5pbnZhbGlkYXRlVGl0bGVDYWNoZSghMCkpKSwoMCxJLmlzRmVhdHVyZXNldEVuYWJsZWQpKCJ1cGRhdGVfc3R1ZHlfZm9ybWF0dGVyX29uX3N5bWJvbF9yZXNvbHZlIikmJmUubWFpblNlcmllcygpLmRhdGFFdmVudHMoKS5zeW1ib2xSZXNvbHZlZCgpLnN1YnNjcmliZSh0aGlzLHRoaXMuX3JlY3JlYXRlUHJpY2VGb3JtYXR0aW5nRGVwZW5kZW5jaWVzKSxlLm1haW5TZXJpZXMoKS5kYXRhRXZlbnRzKCkuc3ltYm9sUmVzb2x2ZWQoKS5zdWJzY3JpYmUodGhpcywoKCk9PnRoaXMuaW52YWxpZGF0ZVRpdGxlQ2FjaGUoITApKSk7Y29uc3QgdT1uZXcgU2V0O2lmKHRoaXMuX3NpbXBsZVBsb3RzQ291bnQ9ci5wbG90cy5maWx0ZXIoKChlLHQpPT57aWYoKDAsWi5pc0xpbmVQbG90KShlKSlyZXR1cm4hMDtpZigoMCxaLmlzT2hsY1Bsb3QpKGUpKXtjb25zdCB0PWUudGFyZ2V0O3JldHVybiF1Lmhhcyh0KSYmKHUuYWRkKHQpLCEwKX1yZXR1cm4hMX0pKS5sZW5ndGgsdGhpcy5oYXNCYXJDb2xvcmVyKCkmJmwudmlzaWJsZS5zdWJzY3JpYmUodGhpcywoKCk9PmUubWFpblNlcmllcygpLmludmFsaWRhdGVCYXJTdHlsZXNDYWNoZSkpLHRoaXMuX2RlZmluaXRpb25zVmlld01vZGVsPW51bGwsdGhpcy5fdXBkYXRlTWF4T2Zmc2V0VmFsdWUoKSxyLmlucHV0cy5zb21lKChlPT5Icy5oYXMoZS5pZCkpKSl7dGhpcy5fdmlzaWJsZVRpbWVSYW5nZUlucHV0cz1lLnZpc2libGVSYW5nZVN0dWRpZXNJbnB1dHMoKS5zcGF3bigpO2NvbnN0IHQ9dGhpcy5fdmlzaWJsZVRpbWVSYW5nZUlucHV0cy52YWx1ZSgpO2xldCBzPW51bGwhPT10O3RoaXMuX3Zpc2libGVUaW1lUmFuZ2VJbnB1dHMuc3Vic2NyaWJlKChlPT57Y29uc3QgdD0oKT0+e3RoaXMuX29uVmlzaWJsZVRpbWVSYW5nZUlucHV0c0NoYW5nZWQoZSkscyE9PShudWxsIT09ZSkmJihzPW51bGwhPT1lLCFzfHx0aGlzLl9yZXN0YXJ0aW5nfHx0aGlzLmlzU3RhcnRlZCgpfHx0aGlzLnN0YXJ0KCEwKSl9O3RoaXMuX3N0YXR1c0NoYW5nZWQudW5zdWJzY3JpYmVBbGwodGhpcy5fc3RhdHVzQ2hhbmdlc1N1YnNjcmliZXIpLHRoaXMuX3N0YXR1cy52YWx1ZSgpLnR5cGU9PT1adC5TdHVkeVN0YXR1c1R5cGUuTG9hZGluZz90aGlzLl9zdGF0dXNDaGFuZ2VkLnN1YnNjcmliZSh0aGlzLl9zdGF0dXNDaGFuZ2VzU3Vic2NyaWJlcix0LCEwKTp0KCl9KSksdCYmdGhpcy5fdXBkYXRlVmlzaWJsZVRpbWVSYW5nZUlucHV0cyh0LCExKX0oMCxDZS5pc0NvdW50ZWRVc2VyU2NyaXB0KShyKSYmKHRoaXMuX3Nob3dQaW5lVmVyc2lvbkluU3RhdHVzTGluZT0oMCxfLmNvbWJpbmUpKChlPT4oMCxDZS51c2VyU2NyaXB0VmVyc2lvbnNDb3VudCkoci5zY3JpcHRJZFBhcnQpPjEpLCgwLENlLnVzZXJTY3JpcHRzT25MYXlvdXQpKCkud2Vha1JlZmVyZW5jZSgpKSx0aGlzLl9zaG93UGluZVZlcnNpb25JblN0YXR1c0xpbmUuc3Vic2NyaWJlKCgoKT0+e3RoaXMuaW52YWxpZGF0ZVRpdGxlQ2FjaGUoKSxlLnVwZGF0ZVNvdXJjZSh0aGlzKX0pKSksdGhpcy5fcHJvcGVydGllcy5zZXROYW1lSW5Pd25lcigoMCwKbXMucHJvcGVydHlQYXRoRm9yU291cmNlKSh0aGlzKSksbyYmdGhpcy5fcGluZVBhdGNoUHJvcHMoKTtjb25zdCBjPUJzKHRoaXMucGFyZW50U291cmNlc1ZXKCkud2Vha1JlZmVyZW5jZSgpKTtpZih0aGlzLl9hbGxPd25lclNvdXJjZXM9KDAsXy5jb21iaW5lKSgoKGUsdCk9PmUpLGMsKDAsUmUuY3JlYXRlV1ZGcm9tR2V0dGVyQW5kU3Vic2NyaXB0aW9uKSgoKCk9PnRoaXMub3duZXJTb3VyY2UoKSksdGhpcy5vd25lclNvdXJjZUNoYW5nZWQoKSkub3duZXJzaGlwKCkpLHRoaXMuX2F2YWlsYWJsZUN1cnJlbmNpZXM9ZS5hdmFpbGFibGVDdXJyZW5jaWVzKCkuc3Bhd24oKSx0aGlzLl9jdXJyZW5jeU9yaWdpblNvdXJjZT0oMCxfLmNvbWJpbmUpKCgoZSx0KT0+ZT90aGlzOnQpLHRoaXMuX2lzQ3VycmVuY3lPcmlnaW4ud2Vha1JlZmVyZW5jZSgpLCgwLF8uYWNjdW11bGF0ZSkoKGU9PmVbMF0pLCgwLF8uY29tYmluZSkoKCgpPT5bdGhpcy5fZmlyc3RTb3VyY2VPclNlcmllcygpLmN1cnJlbmN5T3JpZ2luU291cmNlKCkud2Vha1JlZmVyZW5jZSgpXSksdGhpcy5fYWxsT3duZXJTb3VyY2VzLndlYWtSZWZlcmVuY2UoKSkub3duZXJzaGlwKCkpLm93bmVyc2hpcCgpKSx0aGlzLl9hdmFpbGFibGVVbml0cz1lLmF2YWlsYWJsZVVuaXRzKCkuc3Bhd24oKSx0aGlzLl91bml0T3JpZ2luU291cmNlPSgwLF8uY29tYmluZSkoKChlLHQpPT5lP3RoaXM6dCksdGhpcy5faXNVbml0T3JpZ2luLndlYWtSZWZlcmVuY2UoKSwoMCxfLmFjY3VtdWxhdGUpKChlPT5lWzBdKSwoMCxfLmNvbWJpbmUpKCgoKT0+W3RoaXMuX2ZpcnN0U291cmNlT3JTZXJpZXMoKS51bml0T3JpZ2luU291cmNlKCkud2Vha1JlZmVyZW5jZSgpXSksdGhpcy5fYWxsT3duZXJTb3VyY2VzLndlYWtSZWZlcmVuY2UoKSkub3duZXJzaGlwKCkpLm93bmVyc2hpcCgpKSx0aGlzLl9zeW1ib2xTb3VyY2U9KDAsXy5jb21iaW5lKSgoKCk9PnRoaXMuX2dldFN5bWJvbFNvdXJjZSgpKSx0aGlzLl9hbGxPd25lclNvdXJjZXMud2Vha1JlZmVyZW5jZSgpKSx0aGlzLl9zeW1ib2xTb3VyY2VTeW1ib2xJbmZvPSgwLF8uYWNjdW11bGF0ZSkoKGU9PmVbMF0pLCgwLF8uY29tYmluZSkoKGU9PltlLnN5bWJvbEluZm9XVigpLndlYWtSZWZlcmVuY2UoKV0pLHRoaXMuX3N5bWJvbFNvdXJjZS53ZWFrUmVmZXJlbmNlKCkpLndlYWtSZWZlcmVuY2UoKSksIWEmJnIuVFZTY3JpcHRNZXRhSW5mb0V4cHJzJiZyLmRlZmF1bHRzLmlucHV0cyl7Y29uc3QgZT10aGlzLmlucHV0cygpO2Zvcihjb25zdCB0IG9mIHIuaW5wdXRzKXQuaXNIaWRkZW58fCgwLERlLmlzU3R1ZHlJbnB1dERlcGVuZHNPbkNoYXJ0KSh0KXx8ci5kZWZhdWx0cy5pbnB1dHNbdC5pZF0hPT1lW3QuaWRdJiYodGhpcy5fZGVmZXJyZWRQaW5lUGF0Y2hQcm9wcz0hMCx0aGlzLl9vbGRTdHVkeUlucHV0cz10aGlzLl9vbGRTdHVkeUlucHV0cz8/dGhpcy5fcHJlcGFyZUlucHV0cyhWcyksdGhpcy5fb2xkU3R1ZHlJbnB1dHNbdC5pZF09ci5kZWZhdWx0cy5pbnB1dHNbdC5pZF0pfWlmKHIuVFZTY3JpcHRNZXRhSW5mb0V4cHJzKXt0aGlzLl9wcmV2aW91c1BhdGNoTWFwPXt9O2NvbnN0IGU9ci5UVlNjcmlwdE1ldGFJbmZvRXhwcnMucGF0Y2hNYXB8fHt9LHQ9bmV3IHYuU3R1ZHlNZXRhSW5mbyh0aGlzLl9tZXRhSW5mby52YWx1ZSgpLnN0YXRlKCksdGhpcy5fbWV0YUluZm8udmFsdWUoKS51c2VWZXJzaW9uRnJvbU1ldGFJbmZvKTsoMCxGLml0ZXJhdGVBbmRQYXRjaE9iamVjdHNCeU1hcCkoW3RoaXMuX3Byb3BlcnRpZXMsdC5kZWZhdWx0cyx0XSxlLCgoZSx0LHMpPT57Y29uc3QgaT1lWzBdLHI9ZVsxXSxuPWVbMl07cj8uaGFzT3duUHJvcGVydHkodCk/KDAsaC5lbnN1cmVEZWZpbmVkKSh0aGlzLl9wcmV2aW91c1BhdGNoTWFwKVtzXT1pW3RdLnZhbHVlKCk6KDAsaC5lbnN1cmVEZWZpbmVkKSh0aGlzLl9wcmV2aW91c1BhdGNoTWFwKVtzXT1uW3RdfSkpLHRoaXMuX21ldGFJbmZvLnNldFZhbHVlKHQpfXtjb25zdCB0PSgwLF8uY29tYmluZSkoKGU9PmUubWFwKChlPT4oMCxHLmlzU3R1ZHkpKGUpPygwLFJlLmNyZWF0ZVdWRnJvbUdldHRlckFuZFN1YnNjcmlwdGlvbikoKCgpPT5lLmlucHV0cygpKSxlLnByb3BlcnRpZXMoKS5jaGlsZHMoKS5pbnB1dHMpLm93bmVyc2hpcCgpOm5ldyBmLldhdGNoZWRWYWx1ZSgwKS5vd25lcnNoaXAoKSkpKSx0aGlzLl9hbGxPd25lclNvdXJjZXMud2Vha1JlZmVyZW5jZSgpKSxzPSgwLF8uYWNjdW11bGF0ZSkoKChlLHQpPT4odD8/MCkrMSksdC5vd25lcnNoaXAoKSkscj0oMCxfLmNvbWJpbmUpKCgoZSx0LHMpPT4ocz8/MCkrMSksKDAsUmUuY3JlYXRlV1ZGcm9tR2V0dGVyQW5kU3Vic2NyaXB0aW9uKSgoKCk9PnRoaXMuZm9ybWF0dGVyKCkpLHRoaXMuZm9ybWF0dGVyQ2hhbmdlZCgpKS5vd25lcnNoaXAoKSwoMCxSZS5jcmVhdGVXVkZyb21HZXR0ZXJBbmRTdWJzY3JpcHRpb24pKCgoKT0+dGhpcy5pbnB1dHMoKSksdGhpcy5wcm9wZXJ0aWVzKCkuY2hpbGRzKCkuaW5wdXRzKS5vd25lcnNoaXAoKSk7dGhpcy5fYWxlcnRTdGF0ZVZlcnNpb249KDAsXy5jb21iaW5lKSgoKGUsdCxzLGkscik9PihyPz8wKSsxKSx0aGlzLl9tZXRhSW5mby53ZWFrUmVmZXJlbmNlKCksdGhpcy5fcGxvdE9mZnNldHMud2Vha1JlZmVyZW5jZSgpLHMub3duZXJzaGlwKCksci5vd25lcnNoaXAoKSk7Y29uc3Qgbj0oMCxpLmRlZmF1bHQpKCgoKT0+dGhpcy5faWRGb3JBbGVydFdWLnNldFZhbHVlKHRoaXMuaWRGb3JBbGVydCgpKSksNTAwKTt0aGlzLl9hbGVydFN0YXRlVmVyc2lvbi5zdWJzY3JpYmUoKCgpPT57dGhpcy5fc3RhdGVGb3JBbGVydENhY2hlPW51bGwsdGhpcy5faWRGb3JBbGVydENhY2hlPW51bGwsbigpfSkpLG4oKSx0aGlzLl9hbGVydFNvdXJjZU1vZGVsPW5ldyBrKGUsdGhpcy5faWRGb3JBbGVydFdWLndlYWtSZWZlcmVuY2UoKSk7Y29uc3QgYT0oKT0+e3RoaXMuX3NpZ25hdHVyZS5zZXRWYWx1ZSgoMCxWZS5zdHVkeVNpZ25hdHVyZSkodGhpcy5tZXRhSW5mbygpLnNjcmlwdElkUGFydCx0aGlzLm1ldGFJbmZvKCkuaW5wdXRzLHRoaXMuaW5wdXRzKHtvbmx5QXRvbVZhbHVlczohMCwKYXNPYmplY3Q6ITB9KSkpfTt0aGlzLl9wcm9wZXJ0aWVzLmNoaWxkcygpLmlucHV0cy5zdWJzY3JpYmUodGhpcyxhKSxhKCl9dGhpcy5fcHJvcGVydGllcy5vblJlc3RvcmVGYWN0b3J5RGVmYXVsdHMoKS5zdWJzY3JpYmUodGhpcyx0aGlzLl9oYW5kbGVSZXN0b3JpbmdGYWN0b3J5RGVmYXVsdHMpLHRoaXMuX2N1cnJlbmN5SW5wdXRQcm9wZXJ0eT10aGlzLl9nZXRDdXJyZW5jeUlucHV0UHJvcGVydHkoKSx0aGlzLl9jdXJyZW5jeUlucHV0UHJvcGVydHkmJih0aGlzLl9pc0N1cnJlbmN5T3JpZ2luLnNldFZhbHVlKCEwKSx0aGlzLl9jdXJyZW5jeUlucHV0UHJvcGVydHkuc3Vic2NyaWJlKHRoaXMsKCgpPT57dGhpcy5fY3VycmVuY3lDaGFuZ2VkLmZpcmUoKX0pKSksdGhpcy5fdW5pdElucHV0UHJvcGVydHk9dGhpcy5fZ2V0VW5pdElucHV0UHJvcGVydHkoKSx0aGlzLl91bml0SW5wdXRQcm9wZXJ0eSYmKHRoaXMuX2lzVW5pdE9yaWdpbi5zZXRWYWx1ZSghMCksdGhpcy5fdW5pdElucHV0UHJvcGVydHkuc3Vic2NyaWJlKHRoaXMsKCgpPT57dGhpcy5fdW5pdENoYW5nZWQuZmlyZSgpfSkpKSx0aGlzLl9pbml0Q3VycmVuY3lNZXRhRGF0YSgpLHRoaXMuX2luaXRVbml0TWV0YURhdGEoKTtjb25zdCBkPSgpPT5lLnJlYWxpZ25MaW5lVG9vbHModGhpcyk7dGhpcy5faXNDdXJyZW5jeU9yaWdpbi5zdWJzY3JpYmUoZCksdGhpcy5faXNVbml0T3JpZ2luLnN1YnNjcmliZShkKSx0aGlzLl9jdXJyZW5jeU1ldGFEYXRhLnN1YnNjcmliZSgoKCk9Pnt0aGlzLl9pc0N1cnJlbmN5T3JpZ2luLnZhbHVlKCkmJmUucmVhbGlnbkxpbmVUb29scyh0aGlzKX0pKSx0aGlzLl91bml0TWV0YURhdGEuc3Vic2NyaWJlKCgoKT0+e3RoaXMuX2lzVW5pdE9yaWdpbi52YWx1ZSgpJiZlLnJlYWxpZ25MaW5lVG9vbHModGhpcyl9KSl9ZGVzdHJveSgpe3RoaXMuX3NpZ25sZVBlcmZvcm1hbmNlVmFsdWU/LmRlc3Ryb3koKSx0aGlzLl9hYm91dFRvQmVEZXN0cm95ZWQuZmlyZSgpLG51bGwhPT10aGlzLl9kZWZpbml0aW9uc1ZpZXdNb2RlbCYmKHRoaXMuX2RlZmluaXRpb25zVmlld01vZGVsLmRlc3Ryb3koKSx0aGlzLl9kZWZpbml0aW9uc1ZpZXdNb2RlbD1udWxsKSx0aGlzLl9zaG93U3R1ZHlBcmd1bWVudHNQcm9wZXJ0eS51bnN1YnNjcmliZUFsbCh0aGlzKSx0aGlzLl9tb2RlbC5tYWluU2VyaWVzKCkuZGF0YUV2ZW50cygpLnN5bWJvbFJlc29sdmVkKCkudW5zdWJzY3JpYmVBbGwodGhpcyksdGhpcy5fbW9kZWwuc3ltYm9sQWxpYXNTZXJ2aWNlKCk/Lm9uQWxpYXNDaGFuZ2VkKCkudW5zdWJzY3JpYmVBbGwodGhpcyk7dGhpcy5wYXJlbnRTb3VyY2VzKCkuZm9yRWFjaCgoZT0+e2UuY3VycmVuY3lDaGFuZ2VkKCkudW5zdWJzY3JpYmVBbGwodGhpcyksZS51bml0Q2hhbmdlZCgpLnVuc3Vic2NyaWJlQWxsKHRoaXMpLGUubWV0cmljQ2hhbmdlZCgpLnVuc3Vic2NyaWJlQWxsKHRoaXMpLGUucHJpY2VSYW5nZVJlYWR5Q2hhbmdlZCgpLnVuc3Vic2NyaWJlQWxsKHRoaXMpLGUuZm9ybWF0dGVyQ2hhbmdlZCgpLnVuc3Vic2NyaWJlQWxsKHRoaXMpLGUucHJpY2VTdGVwQ2hhbmdlZCgpLnVuc3Vic2NyaWJlQWxsKHRoaXMpfSkpLHRoaXMuX3Nlcmllcy5wcm9wZXJ0aWVzKCkuY2hpbGRzKCkuc3RhdHVzVmlld1N0eWxlLmNoaWxkcygpLnN5bWJvbFRleHRTb3VyY2UudW5zdWJzY3JpYmVBbGwodGhpcyksdGhpcy5fc2VyaWVzLm9uSW50ZXJ2YWxDaGFuZ2VkKCkudW5zdWJzY3JpYmVBbGwodGhpcyksdGhpcy5fc2VyaWVzLmFsZXJ0Q3JlYXRpb25BdmFpbGFibGUoKS51bnN1YnNjcmliZSh0aGlzLl91cGRhdGVBbGVydENyZWF0aW9uQXZhaWxhYmxlQm91bmQpLHRoaXMuZm9ybWF0dGVyQ2hhbmdlZCgpLnVuc3Vic2NyaWJlKHRoaXMsdGhpcy5pbnZhbGlkYXRlVGl0bGVDYWNoZSksUS5oaWRlQWxsSW5kaWNhdG9ycygpLnVuc3Vic2NyaWJlKHRoaXMsdGhpcy5fdmlzaWJsZUNoYW5nZWQpLHRoaXMuX21vZGVsLmNvbGxhcHNlZCgpLnVuc3Vic2NyaWJlKHRoaXMuX3Byb2Nlc3NIaWJlcm5hdGVCb3VuZCksbnVsbCE9PXRoaXMuX2N1cnJlbmN5U291cmNlU3ltYm9sSW5wdXRQcm9wZXJ0eSYmdGhpcy5fY3VycmVuY3lTb3VyY2VTeW1ib2xJbnB1dFByb3BlcnR5LnVuc3Vic2NyaWJlQWxsKHRoaXMpLHRoaXMuX2xlZ2VuZFZpZXc/LmRlc3Ryb3koKSx0aGlzLl9mbG9hdGluZ1Rvb2x0aXBWaWV3Py5kZXN0cm95KCksdGhpcy5fcGluZVNvdXJjZUNvZGVNb2RlbD8uZ2V0KCk/LmRlc3Ryb3koKSx0aGlzLl92aXNpYmxlVGltZVJhbmdlSW5wdXRzPy5kZXN0cm95KCksdGhpcy5fc2hvd1BpbmVWZXJzaW9uSW5TdGF0dXNMaW5lLmRlc3Ryb3koKSx0aGlzLl9hbGVydFN0YXRlVmVyc2lvbj8uZGVzdHJveSgpLHRoaXMuX2FsZXJ0U291cmNlTW9kZWw/LmRlc3Ryb3koKSx0aGlzLl9tZXRhSW5mby5kZXN0cm95KCksdGhpcy5fc3R1ZHlOYW1lLmRlc3Ryb3koKSx0aGlzLl9hbGxPd25lclNvdXJjZXMuZGVzdHJveSgpLHRoaXMuX3NvdXJjZXMuZGVzdHJveSgpLHRoaXMuX3N5bWJvbFNvdXJjZS5kZXN0cm95KCksdGhpcy5fc3ltYm9sU291cmNlU3ltYm9sSW5mby5kZXN0cm95KCksdGhpcy5fc3RhdHVzLmRlc3Ryb3koKSx0aGlzLl9jb21waWxlQWN0aXZlU3RhdHVzLmRlc3Ryb3koKSx0aGlzLl9jb21waWxlRXJyb3JTdGF0dXMuZGVzdHJveSgpLHRoaXMuX3Bsb3RPZmZzZXRzLmRlc3Ryb3koKSx0aGlzLl9zZXJ2ZXJQbG90T2Zmc2V0cy5kZXN0cm95KCksdGhpcy5fcHJvcGVydGllcy5vblJlc3RvcmVGYWN0b3J5RGVmYXVsdHMoKS51bnN1YnNjcmliZSh0aGlzLHRoaXMuX2hhbmRsZVJlc3RvcmluZ0ZhY3RvcnlEZWZhdWx0cyksdGhpcy5fcHJvcGVydGllcy5kZXN0cm95KCksdGhpcy5fYXZhaWxhYmxlQ3VycmVuY2llcy5kZXN0cm95KCksdGhpcy5fYXZhaWxhYmxlVW5pdHMuZGVzdHJveSgpLHN1cGVyLmRlc3Ryb3koKX1zZXRJZChlKXtzdXBlci5zZXRJZChlKSx0aGlzLl9wcm9wZXJ0aWVzLnNldE5hbWVJbk93bmVyKCgwLG1zLnByb3BlcnR5UGF0aEZvclNvdXJjZSkodGhpcykpfXByb3BlcnRpZXMoKXtyZXR1cm4gdGhpcy5fcHJvcGVydGllc30KcHJvcGVydGllc1BhdGNoZWQoKXtyZXR1cm4gdGhpcy5fcHJvcGVydGllc1BhdGNoZWR9aXNEcmFnZ2FibGUoKXtyZXR1cm4hdGhpcy5fbWV0YUluZm8udmFsdWUoKS5saW5rZWRUb1Nlcmllc31sb2dzKCl7cmV0dXJuIHRoaXMuX21ldGFJbmZvLnZhbHVlKCkuZ3JhcGhpY3MubG9ncyYmdGhpcy5fZ3JhcGhpY3MgaW5zdGFuY2VvZiBLLkxpdmVTdHVkeUdyYXBoaWNzPygwLGguZW5zdXJlRGVmaW5lZCkodGhpcy5fZ3JhcGhpY3Mub2JzZXJ2YWJsZUxvZ3MoKS5nZXQoImxvZ3MiKSk6bnVsbH1sb2dMZXZlbE1hc2soKXtjb25zdCBlPXRoaXMuX3Byb3BlcnRpZXMuY2hpbGRzKCkuaW5wdXRzLmNoaWxkcygpLl9fbG9nX2xldmVsLnZhbHVlKCk7aWYoISgwLHUuaXNOdW1iZXIpKGUpfHxlPDB8fGU+Nyl0aHJvdyBuZXcgRXJyb3IoYFZhbHVlIG9mIGxvZyBsZXZlbCBpcyB1bmV4cGVjdGVkLCBjdXJyZW50IHZhbHVlIGlzICR7ZX0sIGJ1dCBleHBlY3RlZCB2YWx1ZXMgZnJvbSAwIHRvIDdgKTtyZXR1cm57ZXJyb3I6Qm9vbGVhbigxJmUpLHdhcm5pbmc6Qm9vbGVhbigyJmUpLGluZm86Qm9vbGVhbig0JmUpfX1zZXRMb2dMZXZlbE1hc2soZSl7Y29uc3QgdD0oTnVtYmVyKGUuZXJyb3IpJiYxKXwoTnVtYmVyKGUud2FybmluZykmJjIpfChOdW1iZXIoZS5pbmZvKSYmNCk7dGhpcy5fcHJvcGVydGllcy5jaGlsZHMoKS5pbnB1dHMuY2hpbGRzKCkuX19sb2dfbGV2ZWwuc2V0VmFsdWUodCl9cGVyZm9ybWFuY2UoKXtyZXR1cm4gdGhpcy5fZ3JhcGhpY3MgaW5zdGFuY2VvZiBLLkxpdmVTdHVkeUdyYXBoaWNzP3RoaXMuX3NpZ25sZVBlcmZvcm1hbmNlVmFsdWU6bmV3IGYuV2F0Y2hlZFZhbHVlKG51bGwpfXByb2ZpbGluZ0VuYWJsZWQoKXtyZXR1cm4hIXRoaXMuX3Byb3BlcnRpZXMuY2hpbGRzKCkuaW5wdXRzLmNoaWxkcygpLl9fcHJvZmlsZT8udmFsdWUoKX1lbmFibGVQcm9maWxpbmcoZSl7dGhpcy5fcHJvcGVydGllcy5jaGlsZHMoKS5pbnB1dHMuY2hpbGRzKCkuX19wcm9maWxlPy5zZXRWYWx1ZShlKX1vbkFib3V0VG9CZURlc3Ryb3llZCgpe3JldHVybiB0aGlzLl9hYm91dFRvQmVEZXN0cm95ZWR9cHJpY2VTY2FsZShlKXtyZXR1cm4gZT90aGlzLl9tb2RlbC5tYWluU2VyaWVzKCkucHJpY2VTY2FsZSgpOnN1cGVyLnByaWNlU2NhbGUoKX1sYXN0VmFsdWVEYXRhKGUsdCxzKXtjb25zdCBpPXtub0RhdGE6ITB9LHI9dGhpcy5tZXRhSW5mbygpLmlzUGxvdEZvcmNlT3ZlcmxheShlKSxuPXI/dGhpcy5fbW9kZWwubWFpblNlcmllcygpLnByaWNlU2NhbGUoKTp0aGlzLnByaWNlU2NhbGUoKTtpZih0aGlzLl9tb2RlbC50aW1lU2NhbGUoKS5pc0VtcHR5KCl8fG51bGw9PT1ufHxuLmlzRW1wdHkoKXx8dGhpcy5kYXRhKCkuaXNFbXB0eSgpKXJldHVybiBpO2NvbnN0IGE9dGhpcy5fbW9kZWwudGltZVNjYWxlKCkudmlzaWJsZUJhcnNTdHJpY3RSYW5nZSgpLG89dGhpcy5maXJzdFZhbHVlKCEwLHIpO2lmKG51bGw9PT1hfHxudWxsPT09bylyZXR1cm4gaTtpZighdGhpcy5fcHJvcGVydGllcy5jaGlsZHMoKS52aXNpYmxlLnZhbHVlKCkpcmV0dXJuIGk7Y29uc3QgbD10aGlzLl9wcm9wZXJ0aWVzLmNoaWxkcygpLnN0eWxlcyxoPXRoaXMuX3Byb3BlcnRpZXMuY2hpbGRzKCkub2hsY1Bsb3RzO2xldCBjLGQ7aWYobCYmbC5jaGlsZHMoKVtlXSYmKGM9bC5jaGlsZHMoKVtlXSksaCYmaC5jaGlsZHMoKVtlXSYmKGM9aC5jaGlsZHMoKVtlXSksIWN8fGMuY2hpbGRzKCkuZGlzcGxheS52YWx1ZSgpPT09Wi5TdHVkeVBsb3REaXNwbGF5VGFyZ2V0Lk5vbmUpcmV0dXJuIGk7Y29uc3QgcD10aGlzLm1ldGFJbmZvKCkucGxvdHM7Zm9yKGQ9MDtkPHAubGVuZ3RoO2QrKyl7Y29uc3QgdD1wW2RdO2lmKHQuaWQ9PT1lfHwoMCxaLmlzT2hsY0Nsb3NlUGxvdCkodCkmJnQudGFyZ2V0PT09ZSlicmVha31jb25zdCBfPWQrMSxmPXRoaXMub2Zmc2V0KGUpLG09dGhpcy5uZWFyZXN0SW5kZXgoYS5sYXN0QmFyKCktZixTLlBsb3RSb3dTZWFyY2hNb2RlLk5lYXJlc3RMZWZ0LF8pO2lmKHZvaWQgMD09PW0pcmV0dXJuIGk7Y29uc3QgeT10aGlzLl9sYXN0Tm9uRW1wdHlQbG90Um93KF8pLGc9bnVsbCE9PXkmJmEuY29udGFpbnMoeS5pbmRleCksYj1udWxsIT09eT95LnZhbHVlOm51bGwsdj10fHxnP2I6dGhpcy5kYXRhKCkudmFsdWVBdChtKTtpZighdnx8ISgwLHUuaXNOdW1iZXIpKHZbX10pKXJldHVybiBpO2NvbnN0IFA9dltfXSxJPXRoaXMuX3ZhbHVlc1Byb3ZpZGVyLmdldFBsb3RDb2xvcihkLHYpLHc9bi5wcmljZVRvQ29vcmRpbmF0ZShQLG8pLEM9dGhpcy5wbG90Rm9ybWF0dGVyKGUpLmZvcm1hdChQKSxWPXsuLi5uLmdldEZvcm1hdHRlZFZhbHVlcyhQLG8sdm9pZCAwLEMpLG5vRGF0YTohMSxjb2xvcjpJLGNvb3JkaW5hdGU6d307cmV0dXJuIHMmJihWLnByaWNlPVApLFZ9aXNGYWlsZWQoKXtyZXR1cm4gdGhpcy5zdGF0dXMoKS50eXBlPT09WnQuU3R1ZHlTdGF0dXNUeXBlLkVycm9yfWlzTG9hZGluZygpe3JldHVybiB0aGlzLnN0YXR1cygpLnR5cGU9PT1adC5TdHVkeVN0YXR1c1R5cGUuTG9hZGluZ31pc0NvbXBsZXRlZCgpe3JldHVybiB0aGlzLnN0YXR1cygpLnR5cGU9PT1adC5TdHVkeVN0YXR1c1R5cGUuQ29tcGxldGVkfWlzU3ltYm9sSW52YWxpZCgpe2NvbnN0IGU9dGhpcy5fc3RhdHVzLnZhbHVlKCk7cmV0dXJuIGUudHlwZT09PVp0LlN0dWR5U3RhdHVzVHlwZS5FcnJvciYmZS5lcnJvckRlc2NyaXB0aW9uLmVycm9yPT09YnN9c2VyaWVzKCl7cmV0dXJuIHRoaXMuX3Nlcmllc31tb2RlbCgpe3JldHVybiB0aGlzLl9tb2RlbH1zdGF0ZShlLHQpe2NvbnN0IHM9KDAsaC5lbnN1cmVOb3ROdWxsKSgoMCxBLmdldFN0dWR5Q2xhc3NOYW1lKSh0aGlzLmNvbnN0cnVjdG9yKSksaT10aGlzLm1ldGFJbmZvKCkscj10aGlzLnByb3BlcnRpZXMoKS5zdGF0ZSgpLG49e3R5cGU6cyxpZDp0aGlzLmlkKCksc3RhdGU6cix6b3JkZXI6dGhpcy56b3JkZXIoKSxvd25GaXJzdFZhbHVlOnRoaXMuaXNWaXNpYmxlKCk/bnVsbDp0aGlzLl9vd25GaXJzdFZhbHVlLG1ldGFJbmZvOnRoaXMuX29yaWdpbmFsTWV0YUluZm8uc3RhdGUoKX0sYT0oMCwKbC5kZWZhdWx0KShuLm1ldGFJbmZvLHRoaXMuX21ldGFJbmZvLnZhbHVlKCkuc3RhdGUoKSk7KDAsby5kZWZhdWx0KShhKXx8KG4ubWV0YUluZm9QYXRjaD1hKTtjb25zdCB1PXRoaXMuX3NvdXJjZXMudmFsdWUoKS5tYXAoKGU9PmUuaWQoKSkpO2lmKHUubGVuZ3RoJiYobi5wYXJlbnRTb3VyY2VzPXUpLGUpe2xldCBlPXRoaXMuZGF0YSgpO2NvbnN0IHQ9dGhpcy5fbW9kZWwudGltZVNjYWxlKCkscz10aGlzLl9zZXJpZXNEYXRhUmFuZ2VUb1NhdmUoZSk7bnVsbCE9PXMmJihlPWUucmFuZ2Uocy5maXJzdEJhcigpLHMubGFzdEJhcigpKSksbi5kYXRhPWUuc3RhdGUoKSxuLmRhdGEuc3ltYm9scz10aGlzLl9yZXNvbHZlZFN5bWJvbHMsbi5kYXRhLmdyYXBoaWNzPSgwLEsuc2F2ZVN0dWR5R3JhcGhpY3MpKHRoaXMuZ3JhcGhpY3MoKSx0LnZpc2libGVCYXJzU3RyaWN0UmFuZ2UoKSksbi5kYXRhLnBsb3RPZmZzZXRzPXRoaXMuX3NlcnZlclBsb3RPZmZzZXRzLnZhbHVlKCl9dGhpcy5vd25lclNvdXJjZSgpJiYobi5vd25lclNvdXJjZT10aGlzLm93bmVyU291cmNlKCk/LmlkKCkpO2ZvcihsZXQgZT0wO2U8aS5pbnB1dHMubGVuZ3RoO2UrKylpZigiYmFyX3RpbWUiPT09aS5pbnB1dHNbZV0udHlwZSl7Y29uc3QgdD1pLmlucHV0c1tlXS5pZCxzPW4uc3RhdGUuaW5wdXRzW3RdO2lmKHM8MCl7Y29uc3QgZT10aGlzLl9yaWdodE9mZnNldFRvVW5peFRpbWUoLXMpO24uc3RhdGUuaW5wdXRzW3RdPWUmJmU+PTA/ZTowfX1pZihuLnN0YXRlPy5pbnB1dHMpe2NvbnN0IGU9bi5tZXRhSW5mby5pbnB1dHMuZmluZCgoZT0+IklMU2NyaXB0Ij09PWUubmFtZSkpO2UmJmRlbGV0ZSBuLnN0YXRlLmlucHV0c1tlLmlkXSxkZWxldGUgbi5zdGF0ZS5pbnB1dHMuX19sb2dfbGV2ZWwsZGVsZXRlIG4uc3RhdGUuaW5wdXRzLl9fcHJvZmlsZX1jb25zdCBjPXRoaXMuc3RhdGVDdXN0b21GaWVsZHMoKTt2YXIgZDtyZXR1cm4gYyYmKG4uY3VzdG9tRmllbGRzPWMpLHQmJihkPW4pLm1ldGFJbmZvJiZkLm1ldGFJbmZvLnNjcmlwdElkUGFydCYmZC5tZXRhSW5mby5zY3JpcHRJZFBhcnQuc3RhcnRzV2l0aCgiVVNFUjsiKSYmKE9zKGQpLGZ1bmN0aW9uKGUpe2NvbnN0IHQ9KGUubWV0YUluZm8mJmUubWV0YUluZm8uaW5wdXRzfHxbXSkuZmluZCgoZT0+IklMU2NyaXB0Ij09PWUubmFtZSkpO3QmJih0LmRlZnZhbD0iIixlLnN0YXRlJiZlLnN0YXRlLmlucHV0cyYmKGUuc3RhdGUuaW5wdXRzW3QuaWRdPSIiKSxlLm1ldGFJbmZvLmRlZmF1bHRzLmlucHV0cyYmKGUubWV0YUluZm8uZGVmYXVsdHMuaW5wdXRzW3QuaWRdPSIiKSl9KGQpKSxufXN0YXRlQ3VzdG9tRmllbGRzKCl7Y29uc3QgZT10aGlzLl9jb21waWxlRXJyb3JTdGF0dXMudmFsdWUoKTtpZihlKXJldHVybntjb21waWxlRXJyb3JEZXNjcmlwdGlvbjplLmVycm9yRGVzY3JpcHRpb259fXJlc3RvcmVTdGF0ZUN1c3RvbUZpZWxkcyhlKXtjb25zdCB0PWUuY29tcGlsZUVycm9yRGVzY3JpcHRpb247dCYmdGhpcy5zZXRFcnJvckNvbXBpbGF0aW9uKFsoMCxoLmVuc3VyZURlZmluZWQpKHQuZWRpdG9yRXJyb3IpXSl9cmVzdG9yZURhdGEoZSl7dGhpcy5faW52YWxpZGF0ZUxhc3ROb25FbXB0eVBsb3RSb3dDYWNoZSgpLHRoaXMuZGF0YSgpLnJlc3RvcmVTdGF0ZShlKSx0aGlzLl9yZXNvbHZlZFN5bWJvbHM9ZS5zeW1ib2xzPz97fSx0aGlzLl9ncmFwaGljcz1lLmdyYXBoaWNzPygwLEsubG9hZFN0dWR5R3JhcGhpY3MpKGUuZ3JhcGhpY3MpOigwLEsuZW1wdHlTdHVkeUdyYXBoaWNzKSgpLHRoaXMuX3Bvc3RQcm9jZXNzR3JhcGhpY3MoKSx0aGlzLl9zZXJ2ZXJQbG90T2Zmc2V0cy5zZXRWYWx1ZShlLnBsb3RPZmZzZXRzPz97fSksdGhpcy5fc2V0U3RhdHVzKHt0eXBlOlp0LlN0dWR5U3RhdHVzVHlwZS5Db21wbGV0ZWR9LCEwKX1oYXNTdGF0ZUZvckFsZXJ0KCl7cmV0dXJuIEllLmFsZXJ0c0F2YWlsYWJsZSYmIXRoaXMuaXNGYWlsZWQoKSYmIXRoaXMuX21ldGFJbmZvLnZhbHVlKCkuaXNUVkxpYnJhcnkmJnRoaXMuX3Nlcmllcy5hbGVydENyZWF0aW9uQXZhaWxhYmxlKCkudmFsdWUoKSYmKHRoaXMuX2hhc0FsZXJ0Q29uZGl0aW9ucygpfHx0aGlzLl9oYXNBdmFpbGFibGVBbGVydFBsb3RzKCl8fHRoaXMuX2hhc0FsZXJ0RnVuY3Rpb24oKSl9c3RhdGVGb3JBbGVydCgpe2lmKHRoaXMuX3N0YXRlRm9yQWxlcnRDYWNoZSlyZXR1cm4gdGhpcy5fc3RhdGVGb3JBbGVydENhY2hlO2NvbnN0IGU9KDAsaC5lbnN1cmVOb3ROdWxsKSh0aGlzLl9hbGVydE1ldGFJbmZvKCkpLHQ9dGhpcy5fcGxvdHNGb3JBbGVydCgpLHM9dGhpcy5fY29sbGVjdERlcHNGb3JBbGVydCgpLGk9cy5pZEZvckFsZXJ0LHI9cy5zdHVkeURlcGVuZGVuY2llcyxuPXMuaW5wdXRzRm9yQWxlcnQsYT10aGlzLl9mb3JtYXR0ZXJTdGF0ZUZvckFsZXJ0KCksbz1QLnN0dWR5SWRzSGlkZUlucHV0c01vZGUuaGFzKCgwLEQuZXh0cmFjdFN0dWR5SWQpKGUuZnVsbElkKSksbD17aWQ6aSx0eXBlOigwLGguZW5zdXJlTm90TnVsbCkoKDAsQS5nZXRTdHVkeUNsYXNzTmFtZSkodGhpcy5jb25zdHJ1Y3RvcikpLHRpdGxlOnRoaXMuX3RpdGxlKFcuVGl0bGVEaXNwbGF5VGFyZ2V0LkFsZXJ0cywhMSx7fSxvLCExLCEwKSxzaG9ydFRpdGxlOnRoaXMuX3RpdGxlKFcuVGl0bGVEaXNwbGF5VGFyZ2V0LkFsZXJ0cywhMCx7fSxvLCExLCEwKSxzaG9ydERlc2NyaXB0aW9uOigwLGQuZGVjb2RlSFRNTEVudGl0aWVzKShlLnNob3J0RGVzY3JpcHRpb258fCJTdHVkeSIpLGZ1bGxJZDplLmZ1bGxJZCxpc1RWU2NyaXB0OkJvb2xlYW4oZS5pc1RWU2NyaXB0KSxoYXNBbGVydEZ1bmN0aW9uOkJvb2xlYW4oZS5oYXNBbGVydEZ1bmN0aW9uKSxwbG90czp0LGlucHV0czpuLGFsZXJ0czplLmFsZXJ0cyxzY3JpcHRJZFBhcnQ6ZS5zY3JpcHRJZFBhcnQsc2NyaXB0VmVyc2lvbjplLnBpbmU/ZS5waW5lLnZlcnNpb246Ii0xIixzdHVkeURlcGVuZGVuY2llczpyLGZvcm1hdHRlcjphLGlzRnVuZGFtZW50YWxTdHVkeTplLmlzRnVuZGFtZW50YWxTdHVkeX0sdT1lLmRlZmF1bHRTdHJhdGVneUFsZXJ0TWVzc2FnZQo7cmV0dXJuIHUmJihsLmRlZmF1bHRTdHJhdGVneUFsZXJ0TWVzc2FnZT0oMCxkLmRlY29kZUhUTUxFbnRpdGllcykodSkpLHRoaXMuX3N0YXRlRm9yQWxlcnRDYWNoZT1sLGx9YXN5bmMgc3RhdGVGb3JBbGVydEFzeW5jKCl7cmV0dXJuIHRoaXMuX2FsZXJ0TWV0YUluZm8oKXx8YXdhaXQgdGhpcy5fYXdhaXRGb3JNZXRhSW5mbygpLHRoaXMuc3RhdGVGb3JBbGVydCgpfWlkRm9yQWxlcnQoKXtyZXR1cm4gbnVsbD09PXRoaXMuX2lkRm9yQWxlcnRDYWNoZSYmKHRoaXMuX2lkRm9yQWxlcnRDYWNoZT10aGlzLl9jb2xsZWN0RGVwc0ZvckFsZXJ0KCkuaWRGb3JBbGVydCksdGhpcy5faWRGb3JBbGVydENhY2hlfWhhc0JhckNvbG9yZXIoKXtyZXR1cm4gdGhpcy5fbWV0YUluZm8udmFsdWUoKS5wbG90cy5zb21lKFouaXNCYXJDb2xvcmVyUGxvdCl9YmFyQ29sb3Jlcigpe2NvbnN0IGU9dGhpcy5fbWV0YUluZm8udmFsdWUoKS5wbG90cztsZXQgdD1udWxsO2ZvcihsZXQgcz1lLmxlbmd0aC0xO3M+PTA7cy0tKWlmKCgwLFouaXNCYXJDb2xvcmVyUGxvdCkoZVtzXSkpe2NvbnN0IGU9bmV3IG9zKHRoaXMscyk7bnVsbD09PXQ/dD1lOnQucHVzaEJhY2tCYXJDb2xvcmVyKGUpfXJldHVybiB0fWlzU2F2ZWRJblN0dWR5VGVtcGxhdGVzKCl7cmV0dXJuIHRoaXMuX21ldGFJbmZvLnZhbHVlKCkuaW5wdXRzLmV2ZXJ5KChlPT4iYmFyX3RpbWUiIT09ZS50eXBlKSl9cmVzdGFydChlKXt0aGlzLl9yZXN0YXJ0aW5nPSEwLHRoaXMuY2xlYXJEYXRhKCksKGV8fCgwLEkuaXNGZWF0dXJlc2V0RW5hYmxlZCkoInN0b3Bfc3R1ZHlfb25fcmVzdGFydCIpKSYmdGhpcy5zdG9wKCksc2V0VGltZW91dCh0aGlzLnN0YXJ0LmJpbmQodGhpcyksMCl9c3RvcChlLHQpe2lmKCEwPT09ZSYmdGhpcy5fY2hpbGRyZW4pZm9yKGNvbnN0IGUgb2YgdGhpcy5fY2hpbGRyZW4pZS5zdG9wKCEwKTt0aGlzLl9zdG9wU3R1ZHlPblNlcnZlcigpLHRoaXMuY2xlYXJEYXRhKCksdGhpcy5fdW5zdWJzY3JpYmVUb1Nlc3Npb25JZCgpLHRoaXMucmVjYWxjdWxhdGUoKX1kaXNjb25uZWN0KCl7dGhpcy5faXNTdGFydGVkPSExLHRoaXMuX21vZGVsLmlzU25hcHNob3QoKXx8KHRoaXMuX3Jlc29sdmVkU3ltYm9scz17fSx0aGlzLl9yZXNvbHZlZFN5bWJvbHNCeUlucHV0PXt9KX1zb3VyY2VJZCgpe3JldHVybiB0aGlzLl9pZC52YWx1ZSgpfXBhcmVudFNvdXJjZXMoKXtyZXR1cm4gdGhpcy5fc291cmNlcy52YWx1ZSgpfXBhcmVudFNvdXJjZXNWVygpe3JldHVybiB0aGlzLl9zb3VyY2VzfXN5bWJvbFNvdXJjZSgpe3JldHVybiB0aGlzLl9zeW1ib2xTb3VyY2UudmFsdWUoKX1zeW1ib2xTb3VyY2VXVigpe3JldHVybiB0aGlzLl9zeW1ib2xTb3VyY2UucmVhZG9ubHkoKX12YWx1ZUF0KGUsdCl7cmV0dXJuIHRoaXMuc3ltYm9sU291cmNlKCkudmFsdWVBdChlLHQpfWJhcnNQcm92aWRlcigpe3JldHVybiB0aGlzLl9maXJzdFNvdXJjZU9yU2VyaWVzKCkuYmFyc1Byb3ZpZGVyKCl9b3duZXJTb3VyY2UoKXtyZXR1cm4gdGhpcy5pc0NoaWxkU3R1ZHkoKT90aGlzLl9zb3VyY2VzLnZhbHVlKClbMF06c3VwZXIub3duZXJTb3VyY2UoKX1pc0NoaWxkU3R1ZHkoKXtyZXR1cm4gdGhpcy5fc291cmNlcy52YWx1ZSgpLmxlbmd0aD4wfWhhc0NoaWxkcmVuKCl7cmV0dXJuIHRoaXMuX2NoaWxkcmVuLmxlbmd0aD4wfWlzU3RhcnRlZCgpe3JldHVybiB0aGlzLl9pc1N0YXJ0ZWR9aXNSZXN0YXJ0aW5nKCl7cmV0dXJuIHRoaXMuX3Jlc3RhcnRpbmd9aXNBY3R1YWxJbnRlcnZhbCgpe3JldHVybiB0aGlzLl9pc0FjdHVhbEludGVydmFsfW9uSXNBY3R1YWxJbnRlcnZhbENoYW5nZSgpe3JldHVybiB0aGlzLl9vbklzQWN0dWFsSW50ZXJ2YWxDaGFuZ2V9aXNWaXNpYmxlKCl7Y29uc3QgZT10aGlzLl9wcm9wZXJ0aWVzLmNoaWxkcygpO2lmKHRoaXMuX21vZGVsLmNvbGxhcHNlZCgpLnZhbHVlKCl8fCFlLnZpc2libGUudmFsdWUoKXx8IXRoaXMuaXNBY3R1YWxJbnRlcnZhbCgpKXJldHVybiExO2NvbnN0IHQ9dGhpcy5tZXRhSW5mbygpO2lmKHQucGxvdHMubGVuZ3RoPjApZm9yKGxldCBzPTA7czx0LnBsb3RzLmxlbmd0aDtzKyspe2NvbnN0IGk9dC5wbG90c1tzXS5pZCxyPWUuc3R5bGVzLmNoaWxkcygpW2ldO2lmKHZvaWQgMD09PXIpY29udGludWU7aWYoci5jaGlsZHMoKS5kaXNwbGF5LnZhbHVlKCkhPT1aLlN0dWR5UGxvdERpc3BsYXlUYXJnZXQuTm9uZSlyZXR1cm4hMH1pZih0LmJhbmRzKWZvcihsZXQgcz0wO3M8dC5iYW5kcy5sZW5ndGg7cysrKWlmKGUuYmFuZHMuY2hpbGRzKClbc10uY2hpbGRzKCkudmlzaWJsZS52YWx1ZSgpKXJldHVybiEwO2Zvcihjb25zdCBzIG9mIE9iamVjdC5rZXlzKHQuZ3JhcGhpY3MpKWZvcihjb25zdCBpIG9mIE9iamVjdC5rZXlzKHQuZ3JhcGhpY3Nbc10pKXtjb25zdCB0PWUuZ3JhcGhpY3MuY2hpbGRzKClbc10/LmNoaWxkcygpW2ldO2lmKHZvaWQgMCE9PXQmJih0LmNoaWxkKCJ2aXNpYmxlIik/LnZhbHVlKCk/PzEpKXJldHVybiEwfWlmKHQuZmlsbGVkQXJlYXMpZm9yKGxldCBzPTA7czx0LmZpbGxlZEFyZWFzLmxlbmd0aDtzKyspaWYoZS5maWxsZWRBcmVhc1N0eWxlLmNoaWxkcygpW3QuZmlsbGVkQXJlYXNbc10uaWRdLmNoaWxkcygpLnZpc2libGUudmFsdWUoKSlyZXR1cm4hMDtyZXR1cm4hKCF0LmlzVFZTY3JpcHRTdHJhdGVneSYmIXQuaGFzQWxlcnRGdW5jdGlvbil9YXN5bmMgc3RhcnQoZSx0LHMpe2NvbnN0IGk9dGhpcy5fbW9kZWwubWFpblNlcmllcygpO2F3YWl0IGkuc2VyaWVzQ3JlYXRlZCgpLGF3YWl0IFByb21pc2UuYWxsKHRoaXMuX3NvdXJjZXMudmFsdWUoKS5maWx0ZXIoKGU9PmUuaXNIaWJlcm5hdGVkKCkpKS5tYXAoKGU9PmUuc3RhcnQoKSkpKTtjb25zdCByPSEodGhpcy5pc0hpYmVybmF0aW9uQWxsb3dlZCgpJiYhdGhpcy5pc1Zpc2libGUoKSl8fCEwPT09dDtpZih0aGlzLl9jaGFydEFwaSYmdGhpcy5fY2hhcnRBcGkuaXNDb25uZWN0ZWQoKS52YWx1ZSgpJiZyKXRyeXthd2FpdCB0aGlzLl9hbGxTeW1ib2xzQXJlUmVzb2x2ZWQoKSxhd2FpdCB0aGlzLl9zdGFydEFmdGVyU3ltYm9sc1Jlc29sdmVkKGUsdCkKfWNhdGNoKGUpe2NvbnN0IHQ9YEVSUk9SOiAke3RoaXMuX2RlYnVnSWQoKX0gc3RhcnQgZmFpbGVkLCAke2V9YDtTcy5sb2dFcnJvcih0KSx0aGlzLl9yZXN0YXJ0aW5nPSExLCJUb29NYW55U3R1ZGllcyI9PT1lPy5jYXVzZSYmKDAsQi5zaG93VG9vTWFueVN0dWRpZXNOb3RpY2UpKHRoaXMuX2NoYXJ0QXBpLmdldFN0dWR5Q291bnRlcigpKX1yfHx2b2lkIDAhPT10aGlzLl9pbnB1dHN8fCh0aGlzLl9pbnB1dHM9dGhpcy5fYXBpSW5wdXRzKCkpfXJlcGxhY2VEYXRhKGUsdCxzKXt0aGlzLl9pbnZhbGlkYXRlTGFzdE5vbkVtcHR5UGxvdFJvd0NhY2hlKCksdGhpcy5kYXRhKCkucmVtb3ZlKGUrMSksdGhpcy5kYXRhKCkuYWRkVGFpbChzLHQpfWlucHV0cyhlKXtjb25zdCB0PSgwLGEuZGVmYXVsdCkoKDAsdS5jbG9uZSkoQ3MpLGV8fHt9KTt0LnNraXBPcHRpb25hbEVtcHR5U3ltYm9sSW5wdXRzJiYodC5rZWVwT3B0aW9uYWxTeW1ib2xzRW1wdHk9ITApO3JldHVybiB0aGlzLl9idWlsZElucHV0cyh0KX1kYXRhKCl7cmV0dXJuIHRoaXMuX2RhdGF9bW92ZURhdGEoZSl7dGhpcy5fb25nb2luZ0RhdGFVcGRhdGU9dGhpcy5fb25nb2luZ0RhdGFVcGRhdGUudGhlbigoKCk9Pnt0aGlzLl9pbnZhbGlkYXRlTGFzdE5vbkVtcHR5UGxvdFJvd0NhY2hlKCksdGhpcy5fbW92ZURhdGEoZSksdGhpcy5kYXRhKCkuaXNFbXB0eSgpfHx0aGlzLl9vbkluZGV4RGlmZnNBcHBsaWVkKGUpfSkpfXBsb3RzKCl7cmV0dXJuIHRoaXMuZGF0YSgpfW1ldGFJbmZvKCl7cmV0dXJuIHRoaXMuX21ldGFJbmZvLnZhbHVlKCl9b3JpZ2luYWxNZXRhSW5mbygpe3JldHVybiB0aGlzLl9vcmlnaW5hbE1ldGFJbmZvfXN0YXR1cygpe3JldHVybiB0aGlzLl9jb21wb3VuZFN0YXR1cy52YWx1ZSgpfW5hbWUoZSl7Y29uc3QgdD10aGlzLm1ldGFJbmZvKCk7cmV0dXJuIGU/dC5zaG9ydERlc2NyaXB0aW9uPygwLGQuZGVjb2RlSFRNTEVudGl0aWVzKSh0LnNob3J0RGVzY3JpcHRpb24pOiJTdHVkeSI6dC5kZXNjcmlwdGlvbj8oMCxkLmRlY29kZUhUTUxFbnRpdGllcykodC5kZXNjcmlwdGlvbik6IlN0dWR5In10aXRsZShlLHQscyxpLHIsbil7aT12b2lkIDA9PT1pPyF0aGlzLl9zaG93U3R1ZHlBcmd1bWVudHNQcm9wZXJ0eS52YWx1ZSgpOmk7Y29uc3QgYT1KU09OLnN0cmluZ2lmeShbZSx0LHMsaSxyLG5dKTtpZih0aGlzLl90aXRsZVN0ckNhY2hlW2FdKXJldHVybiB0aGlzLl90aXRsZVN0ckNhY2hlW2FdO2lmKHRoaXMuX3RpdGxlSW5QYXJ0c0NhY2hlW2FdKXJldHVybiB0aGlzLl9qb2luVGl0bGVzUGFydHModGhpcy5fdGl0bGVJblBhcnRzQ2FjaGVbYV0pO2NvbnN0IG89dGhpcy5fdGl0bGUoZSx0LHMsaSxyLG4pO3JldHVybiB0aGlzLl90aXRsZVN0ckNhY2hlW2FdPW8sb310aXRsZUluUGFydHMoZSx0LHMsaSxyKXtpPXZvaWQgMD09PWk/IXRoaXMuX3Nob3dTdHVkeUFyZ3VtZW50c1Byb3BlcnR5LnZhbHVlKCk6aTtjb25zdCBuPUpTT04uc3RyaW5naWZ5KFtlLHQscyxpLHJdKTtpZih0aGlzLl90aXRsZUluUGFydHNDYWNoZVtuXSlyZXR1cm4gdGhpcy5fdGl0bGVJblBhcnRzQ2FjaGVbbl07Y29uc3QgYT10aGlzLl90aXRsZUluUGFydHMoZSx0LHMsaSxyKTtyZXR1cm4gdGhpcy5fdGl0bGVJblBhcnRzQ2FjaGVbbl09YSxhfWdldFNwbGl0VGl0bGUoZSl7Y29uc3QgdD1gZ2V0U3BsaXRUaXRsZToke2U/PyExfWAscz10aGlzLl9zcGxpdFRpdGxlQ2FjaGVbdF07aWYocylyZXR1cm4gcztjb25zdCBpPXRoaXMuX2dldFNwbGl0VGl0bGUoZSk7cmV0dXJuIHRoaXMuX3NwbGl0VGl0bGVDYWNoZVt0XT1pLGl9aW5wdXRzSW5QYXJ0cyhlLHQ9ITAscyxpLHIpe2NvbnN0IG49IXRoaXMuX3Nob3dTdHVkeUFyZ3VtZW50c1Byb3BlcnR5LnZhbHVlKCksYT0oMCxJLmlzRmVhdHVyZXNldEVuYWJsZWQpKCJhbHdheXNfc2hvd19zdHVkeV9zeW1ib2xfaW5wdXRfdmFsdWVzX2luX2xlZ2VuZCIpLG89biYmYTtpZihuJiYhYSYmZT09PVcuVGl0bGVEaXNwbGF5VGFyZ2V0LlN0YXR1c0xpbmUpcmV0dXJuIG51bGw7Y29uc3QgbD1KU09OLnN0cmluZ2lmeShbZSx0LHMsaSxyXSk7aWYodGhpcy5faW5wdXRzSW5QYXJ0c0NhY2hlW2xdKXJldHVybiB0aGlzLl9pbnB1dHNJblBhcnRzQ2FjaGVbbF07Y29uc3QgYz1bXSxkPXRoaXMubWV0YUluZm8oKSxwPXRoaXMuX3RpdGxlSW5wdXRzKCgwLHlzLnRvSW5wdXREaXNwbGF5RmxhZ3MpKGUpLGksITApLF89ZC5pbnB1dHMuZmlsdGVyKChlPT5wLmhhc093blByb3BlcnR5KGUuaWQpJiYoIW98fCJzeW1ib2wiPT09ZS50eXBlfHxlPy5pc0Fsd2F5c1Nob3duSW5MZWdlbmQpKSkubWFwKChlPT57bGV0IHQ9cFtlLmlkXTtpZigic3ltYm9sIj09PWUudHlwZSl7Y29uc3Qgcz10aGlzLl9wcm9wZXJ0aWVzLmNoaWxkcygpLmlucHV0cy5jaGlsZChlLmlkKT8udmFsdWUoKTtpZihzKXtjb25zdCBlPXRoaXMuX3Jlc29sdmVkU3ltYm9sc0J5SW5wdXRbc107ZSYmKHQ9dGhpcy5fbW9kZWwuc3ltYm9sQWxpYXNTZXJ2aWNlKCk/LmdldEFsaWFzQnlQcm9OYW1lKGUucHJvX25hbWUpPy5hbGlhc05hbWU/P3QpfX1yZXR1cm57bWV0YTplLHZhbHVlOnR9fSkpLGY9e307aWYoXy5sZW5ndGg+MCl7aWYodGhpcy5pc0NoaWxkU3R1ZHkoKSlmb3IobGV0IHM9MDtzPGQuaW5wdXRzLmxlbmd0aDsrK3Mpe2NvbnN0IG49ZC5pbnB1dHNbc107aWYoIXYuU3R1ZHlNZXRhSW5mby5pc1NvdXJjZUlucHV0KG4pKWNvbnRpbnVlO2NvbnN0IGE9bi5pZCxvPSgwLGguZW5zdXJlRGVmaW5lZCkodGhpcy5fcHJvcGVydGllcy5jaGlsZHMoKS5pbnB1dHMuY2hpbGQoYSkpLnZhbHVlKCk7aWYoby5pbmRleE9mKCIkIik+PTApe2NvbnN0IHM9dGhpcy5wYXJlbnRTb3VyY2VGb3JJbnB1dChvKTtpZihzIGluc3RhbmNlb2YgVXMpe2NvbnN0IG49cy5tZXRhSW5mbygpLGE9cy50aXRsZShlLHQse30sITAsaSxyKTtpZigxPT09bi5wbG90cy5sZW5ndGgpZltvXT1hO2Vsc2V7Y29uc3QgZT1vLnNwbGl0KCIkIilbMV0sdD1uLnBsb3RzW3BhcnNlSW50KGUpXT8uaWQscz1uLnN0eWxlcyYmbi5zdHlsZXNbdF0saT1zJiZzLnRpdGxlfHx0O2Zbb109YSsiOuKAiSIraX19fX0KXy5mb3JFYWNoKCgoe21ldGE6ZSx2YWx1ZTp0fSk9PntsZXQgaTtpPSJ0aW1lIj09PWUudHlwZT9uZXcgRGF0ZSh0KS50b0lTT1N0cmluZygpOigwLHUuaXNOdW1iZXIpKHQpPygwLHBzLmdldE51bWVyaWNGb3JtYXR0ZXIpKCkuZm9ybWF0KHQpOmYmJmZbdC50b1N0cmluZygpXXx8dC50b1N0cmluZygpLHMmJnNbaS50b1N0cmluZygpXSYmKGk9c1tpLnRvU3RyaW5nKCldKSxjLnB1c2goe3RpdGxlOigwLGdzLmdldFRyYW5zbGF0ZWRJbnB1dFRpdGxlKShlLm5hbWUpLHZhbHVlOml9KX0pKX1yZXR1cm4gdGhpcy5faW5wdXRzSW5QYXJ0c0NhY2hlW2xdPWMsY31pbnZhbGlkYXRlVGl0bGVDYWNoZShlKXtpZih0aGlzLl90aXRsZVN0ckNhY2hlPXt9LHRoaXMuX3RpdGxlSW5QYXJ0c0NhY2hlPXt9LHRoaXMuX3NwbGl0VGl0bGVDYWNoZT17fSx0aGlzLl9pbnB1dHNJblBhcnRzQ2FjaGU9e30sITA9PT1lJiZ0aGlzLl9jaGlsZHJlbilmb3IobGV0IHQ9MDt0PHRoaXMuX2NoaWxkcmVuLmxlbmd0aDsrK3QpdGhpcy5fY2hpbGRyZW5bdF0uaW52YWxpZGF0ZVRpdGxlQ2FjaGUoZSl9Z3JhcGhpY3MoKXtyZXR1cm4gdGhpcy5fZ3JhcGhpY3N9Z3JhcGhpY3NJbmZvKCl7cmV0dXJuIHRoaXMuX21ldGFJbmZvLnZhbHVlKCkuZ3JhcGhpY3N9cHJpY2VMYWJlbFRleHQoZSl7Y29uc3QgdD10aGlzLl9tZXRhSW5mby52YWx1ZSgpLHM9dC5zdHlsZXMsaT10Lm9obGNQbG90cztsZXQgcjtzJiZzW2VdJiYocj1zW2VdKSxpJiZpW2VdJiYocj1pW2VdKTtjb25zdCBuPSgwLGguZW5zdXJlRGVmaW5lZCkocikudGl0bGU7bGV0IGE7cmV0dXJuIGE9MSE9PXRoaXMuX3NpbXBsZVBsb3RzQ291bnR8fCgwLFouaXNQbG90VGl0bGVEZWZpbmVkKShuKT90LmlzX3ByaWNlX3N0dWR5JiZuIT09dC5zaG9ydERlc2NyaXB0aW9uPyIiPT09bj90LnNob3J0RGVzY3JpcHRpb246dC5zaG9ydERlc2NyaXB0aW9uKyI6IituOm46dC5zaG9ydERlc2NyaXB0aW9uLCgwLGQuZGVjb2RlSFRNTEVudGl0aWVzKShhKX1zZXRPd25GaXJzdFZhbHVlKGUpe3RoaXMuX293bkZpcnN0VmFsdWU9ZX1maXJzdFZhbHVlKGUsdCl7aWYodClyZXR1cm4gdGhpcy5fc2VyaWVzLmZpcnN0VmFsdWUoKTtjb25zdCBzPXRoaXMuX21ldGFJbmZvLnZhbHVlKCk7aWYoIXRoaXMuaXNDaGlsZFN0dWR5KCkmJiJDb21wYXJlQHR2LWJhc2ljc3R1ZGllcyI9PT1zLmlkfHwhcy5pc19wcmljZV9zdHVkeSl7Y29uc3QgdD10aGlzLl9tb2RlbC50aW1lU2NhbGUoKS52aXNpYmxlQmFyc1N0cmljdFJhbmdlKCk7aWYobnVsbD09PXQpcmV0dXJuIG51bGw7Y29uc3QgaT10aGlzLnByb3BlcnRpZXMoKS5jaGlsZHMoKTtpZighaS52aXNpYmxlLnZhbHVlKCl8fCF0aGlzLmlzQWN0dWFsSW50ZXJ2YWwoKXx8bnVsbCE9PXRoaXMuX3N0YXJ0TW92aW5nUG9pbnQpcmV0dXJuIHRoaXMuX293bkZpcnN0VmFsdWU7Y29uc3Qgcj10LmZpcnN0QmFyKCksbj10Lmxhc3RCYXIoKTtsZXQgYT10aGlzLl9ncmFwaGljc1ByaWNlUmFuZ2VHcm91cHM/ZnVuY3Rpb24oZSx0KXtjb25zdCBzPWUubW9kZWwoKS50aW1lU2NhbGUoKTtpZihzLmlzRW1wdHkoKSlyZXR1cm4gbnVsbDtjb25zdCBpPXMudmlzaWJsZUJhcnNTdHJpY3RSYW5nZSgpO2lmKG51bGw9PT1pKXJldHVybiBudWxsO2NvbnN0IHI9aS5maXJzdEJhcigpLG49aS5sYXN0QmFyKCksYT1uZXcgYmU7Zm9yKGNvbnN0IGUgb2YgdCl7Y29uc3QgdD1lLmZpcnN0VmFsdWUocixuKTthLmltcHJvdmUodCl9cmV0dXJuIGEuYmVzdFByaWNlKCl9KHRoaXMsdGhpcy5fZ3JhcGhpY3NQcmljZVJhbmdlR3JvdXBzKTpudWxsO2lmKG51bGw9PT1hKXtjb25zdCB0PW5ldyBTZXQsbz1zLmZpbGxlZEFyZWFzfHxbXTtmb3IobGV0IGU9MDtlPG8ubGVuZ3RoO2UrKyl7Y29uc3Qgcz1vW2VdO2kuZmlsbGVkQXJlYXNTdHlsZS5jaGlsZHMoKVtzLmlkXS5jaGlsZHMoKS52aXNpYmxlLnZhbHVlKCkmJih0LmFkZChzLm9iakFJZCksdC5hZGQocy5vYmpCSWQpKX1jb25zdCBsPXMucGxvdHN8fFtdLHU9W10sYz1bXTtmb3IobGV0IGU9MDtlPGwubGVuZ3RoOysrZSl7Y29uc3Qgcj1sW2VdLG49ci5pZDtpZigoMCxaLmlzQ29sb3JlclBsb3QpKHIpfHxzLmlzUGxvdEZvcmNlT3ZlcmxheShuKSljb250aW51ZTtpZigoMCxoLmVuc3VyZURlZmluZWQpKGkuc3R5bGVzLmNoaWxkcygpW25dKS5jaGlsZHMoKS5kaXNwbGF5LnZhbHVlKCkhPT1aLlN0dWR5UGxvdERpc3BsYXlUYXJnZXQuTm9uZXx8dC5oYXMobikpe2lmKCgwLFouaXNMaW5lUGxvdCkocikpe2NvbnN0IHQ9aS5zdHlsZXMuY2hpbGRzKClbbl0uY2hpbGRzKCkucGxvdHR5cGUudmFsdWUoKTsoMCxaLmRvZXNMaW5lUGxvdFN0eWxlU3VwcG9ydEZpbGxCcmVha3MpKHQpJiZjLnB1c2goZSl9dS5wdXNoKGUpfX1pZihjLmxlbmd0aCl7Y29uc3QgdD0oMCxoLmVuc3VyZU5vdE51bGwpKHRoaXMuX21vZGVsLnRpbWVTY2FsZSgpLmxvZ2ljYWxSYW5nZSgpKSxzPU1hdGguZmxvb3IodC5sZWZ0KCkpO2ZvcihsZXQgdD0wO3Q8Yy5sZW5ndGg7dCsrKXtjb25zdCBpPWNbdF0scj10aGlzLl9nZXRGaXJzdFZhbEZvclBsb3RUaGF0U3VwcG9ydEZpbGxCcmVha3MoaSxzKTtpZighKG51bGw9PT1yfHxlJiZNYXRoLmFicyhyKTwxZS0xMCkpe2E9cjticmVha319fWlmKG51bGw9PT1hJiYwIT09dS5sZW5ndGgpZm9yKGNvbnN0IHQgb2YgdGhpcy5kYXRhKCkucmFuZ2VJdGVyYXRvcihyLG4pKXtjb25zdCBzPXQudmFsdWU7Zm9yKGxldCB0PTA7dDx1Lmxlbmd0aDsrK3Qpe2NvbnN0IGk9c1t1W3RdKzFdO2lmKCEobnVsbD09aXx8ZSYmTWF0aC5hYnMoaSk8MWUtMTApKXthPWk7YnJlYWt9fWlmKG51bGwhPT1hKWJyZWFrfX1yZXR1cm4gdGhpcy5fb3duRmlyc3RWYWx1ZT1hLG51bGwhPT1hP2E6dGhpcy5fYmFuZHNGaXJzdFZhbHVlKGUpfWlmKHRoaXMuaXNDaGlsZFN0dWR5KCkpe2NvbnN0IGU9dGhpcy5fZ2V0Tm9uUHJpY2VQYXJlbnQoKTtpZihlJiZ0aGlzLnByaWNlU2NhbGUoKT09PWUucHJpY2VTY2FsZSgpKXJldHVybiBudWxsIT09ZS5fb3duRmlyc3RWYWx1ZT9lLl9vd25GaXJzdFZhbHVlOmUuZmlyc3RWYWx1ZSgpfQpyZXR1cm4gdGhpcy5fc2VyaWVzLmZpcnN0VmFsdWUoKX1kZXNpcmVkUHJpY2VTY2FsZVBvc2l0aW9uKCl7aWYodGhpcy5tZXRhSW5mbygpLmlzVFZTY3JpcHRTdHViKXJldHVybiJvdmVybGF5IjtpZih0aGlzLm1ldGFJbmZvKCkubGlua2VkVG9TZXJpZXMpcmV0dXJuImFzLXNlcmllcyI7c3dpdGNoKHRoaXMubWV0YUluZm8oKS5wcmljZVNjYWxlKXtjYXNlIDE6cmV0dXJuImxlZnQiO2Nhc2UgMDpyZXR1cm4icmlnaHQiO2Nhc2UgMjpyZXR1cm4ib3ZlcmxheSI7ZGVmYXVsdDpyZXR1cm4gbnVsbH19b2Zmc2V0KGUpe3JldHVybiB0aGlzLl9wbG90T2Zmc2V0cy52YWx1ZSgpPy5bZV0/PzB9dGFncygpe2NvbnN0IGU9dGhpcy5fbWV0YUluZm8udmFsdWUoKTtyZXR1cm4hZS5kZXNjcmlwdGlvbnx8ZS5pc1RWU2NyaXB0U3R1Ynx8ZS5pc19oaWRkZW5fc3R1ZHl8fGUuaXNUVlNjcmlwdCYmInR2LXNjcmlwdGluZyI9PT1lLnByb2R1Y3RJZD9bXTpbZS5kZXNjcmlwdGlvbl19Y29waWFibGUoKXtyZXR1cm4gUnMmJiF0aGlzLmlzQ2hpbGRTdHVkeSgpfXNldFByaWNlU2NhbGUoZSl7c3VwZXIuc2V0UHJpY2VTY2FsZShlKSwoMCxscy5lbWl0KSgic3R1ZHlfZXZlbnQiLHRoaXMuaWQoKSwicHJpY2Vfc2NhbGVfY2hhbmdlZCIpfXByaWNlUmFuZ2UoZSl7bGV0IHQ9bnVsbDtjb25zdCBzPXRoaXMuX21ldGFJbmZvLnZhbHVlKCkse3N0YXJ0VGltZVBvaW50OmksZW5kVGltZVBvaW50OnJ9PWUsbj10aGlzLl9maWxsUHJlY2FsY3VsYXRlZEF1dG9zY2FsZUluZm8oZSk7bGV0IGE9dGhpcy5kYXRhKCkubWluTWF4T25SYW5nZUNhY2hlZChpLHIsbi5maWVsZHMpO2lmKGE9KDAsZy5tZXJnZU1pbk1heCkobi5iYXNlVmFsdWVNaW5NYXgsYSksbi51c2VNYWluU2VyaWVzUmFuZ2Upe2NvbnN0IGU9W3tuYW1lOiJsb3ciLG9mZnNldDowfSx7bmFtZToiaGlnaCIsb2Zmc2V0OjB9XSx0PXRoaXMuc2VyaWVzKCkuZGF0YSgpLmJhcnMoKS5taW5NYXhPblJhbmdlQ2FjaGVkKGkscixlKTthPSgwLGcubWVyZ2VNaW5NYXgpKGEsdCl9aWYobnVsbCE9PWEmJih0PW5ldyBqLlByaWNlUmFuZ2UoYS5taW4sYS5tYXgpKSxzLmJhbmRzJiZlLnRhcmdldFByaWNlU2NhbGU9PT10aGlzLnByaWNlU2NhbGUoKSlmb3IobGV0IGU9MDtlPHMuYmFuZHMubGVuZ3RoO2UrKyl7Y29uc3Qgcz0oMCxoLmVuc3VyZURlZmluZWQpKHRoaXMuX3Byb3BlcnRpZXMuY2hpbGRzKCkuYmFuZHMuY2hpbGRzKClbZV0pLmNoaWxkcygpO2lmKHMudmlzaWJsZS52YWx1ZSgpKXtjb25zdCBlPXMudmFsdWUudmFsdWUoKTtpZighKDAsdS5pc051bWJlcikoZSkpY29udGludWU7dD90LmFwcGx5KGUsZSk6dD1uZXcgai5QcmljZVJhbmdlKGUsZSl9fWlmKHRoaXMuX2dyYXBoaWNzUHJpY2VSYW5nZUdyb3Vwcyl7Y29uc3Qgcz10aGlzLnByaWNlU2NhbGUoKT09PXRoaXMuX3Nlcmllcy5wcmljZVNjYWxlKCk/dm9pZCAwOnRoaXMucHJpY2VTY2FsZSgpIT09ZS50YXJnZXRQcmljZVNjYWxlLG49ZnVuY3Rpb24oZSx0LHMsaSl7bGV0IHI9bnVsbDtmb3IoY29uc3QgbiBvZiBlKXtjb25zdCBlPW4uZ3JvdXBQcmljZVJhbmdlKHQscyxpKTtudWxsIT09ZSYmKHI9bnVsbD09PXI/ZTpyLm1lcmdlKGUpKX1yZXR1cm4gcn0odGhpcy5fZ3JhcGhpY3NQcmljZVJhbmdlR3JvdXBzLGksciwhIWUuZm9yY2VPdmVybGF5T25seXx8cyk7biYmKHQ9dD90Lm1lcmdlKG4pOm4pfXJldHVybiB0aGlzLl9wb3N0UHJvY2Vzc1ByaWNlUmFuZ2UodCxlKX1hdXRvU2NhbGVJbmZvKGUpe2NvbnN0IHQ9dGhpcy5wcmljZVJhbmdlKGUpLHM9dGhpcy5wcmljZVNjYWxlKCk9PT10aGlzLl9zZXJpZXMucHJpY2VTY2FsZSgpP3ZvaWQgMDp0aGlzLnByaWNlU2NhbGUoKSE9PWUudGFyZ2V0UHJpY2VTY2FsZSxpPXRoaXMuX2dyYXBoaWNzUHJpY2VSYW5nZUdyb3Vwcz9mdW5jdGlvbihlLHQscyxpKXtjb25zdCByPXllKCk7Zm9yKGNvbnN0IG4gb2YgZSl7Y29uc3QgZT1uLmdyb3VwUGl4ZWxNYXJnaW5zKHQscyxpKTtyLmJvdHRvbVBpeGVsTWFyZ2luPU1hdGgubWF4KHIuYm90dG9tUGl4ZWxNYXJnaW4sZS5ib3R0b21QaXhlbE1hcmdpbiksci50b3BQaXhlbE1hcmdpbj1NYXRoLm1heChyLnRvcFBpeGVsTWFyZ2luLGUudG9wUGl4ZWxNYXJnaW4pfXJldHVybiByfSh0aGlzLl9ncmFwaGljc1ByaWNlUmFuZ2VHcm91cHMsZS5zdGFydFRpbWVQb2ludCxlLmVuZFRpbWVQb2ludCwhIWUuZm9yY2VPdmVybGF5T25seXx8cyk6e3RvcFBpeGVsTWFyZ2luOjAsYm90dG9tUGl4ZWxNYXJnaW46MH07cmV0dXJue3JhbmdlOnQsdG9wUGl4ZWxNYXJnaW46aS50b3BQaXhlbE1hcmdpbixib3R0b21QaXhlbE1hcmdpbjppLmJvdHRvbVBpeGVsTWFyZ2lufX1mb3JtYXR0ZXIoZSl7cmV0dXJuIHRoaXMuX2Zvcm1hdHRlcj8/dGhpcy5fZmlyc3RTb3VyY2VPclNlcmllcygpLmZvcm1hdHRlcighMSl9ZGVmYXVsdEZvcm1hdHRlcigpe2NvbnN0IGU9dGhpcy5fZmlyc3RTb3VyY2VPclNlcmllcygpO3JldHVybiB0aGlzLl9kZWZhdWx0Rm9ybWF0dGVyPz9lLmRlZmF1bHRGb3JtYXR0ZXI/LigpPz9lLmZvcm1hdHRlcigpfXBsb3RGb3JtYXR0ZXIoZSl7cmV0dXJuIHRoaXMuX3Bsb3RGb3JtYXR0ZXJzLmdldChlKT8/dGhpcy5mb3JtYXR0ZXIoKX1pc011bHRpUGFuZUF2YWlsYWJsZSgpe3JldHVybiB0aGlzLl9tZXRhSW5mby52YWx1ZSgpLmhhc0ZvcmNlT3ZlcmxheVBsb3RzKCl8fCgwLEguaGFzRm9yY2VPdmVybGF5UHJpbWl0aXZlcykodGhpcy5fbWV0YUluZm8udmFsdWUoKSl9aXNNdWx0aVBhbmVFbmFibGVkKCl7cmV0dXJuIHRoaXMuX21ldGFJbmZvLnZhbHVlKCkuaGFzRm9yY2VPdmVybGF5UGxvdHMoKX11cGRhdGVBbGxWaWV3cyhlKXtjb25zdCB0PXRoaXMuX21vZGVsLnBhbmVGb3JTb3VyY2UodGhpcykscz10aGlzLl9tb2RlbC5tYWluUGFuZSgpLGk9InZpZXdwb3J0LWNoYW5nZSI9PT1lLnR5cGUmJmUucGFuZSYmZS5wYW5lIT09czsidmlld3BvcnQtY2hhbmdlIj09PWUudHlwZSYmZS5wYW5lJiZlLnBhbmUhPT10fHwodGhpcy5fcGFuZVZpZXdzLmZvckVhY2goKHQ9PnQudXBkYXRlKGUpKSksCnRoaXMuX2xhYmVsUGFuZVZpZXdzLmZvckVhY2goKHQ9PnQudXBkYXRlKGUpKSksdGhpcy5fZGF0YVdpbmRvd1ZpZXc/LnVwZGF0ZShlKSx0aGlzLl9sZWdlbmRWaWV3Py51cGRhdGUoZSksdGhpcy5fc3RhdHVzVmlldz8udXBkYXRlKGUpLHRoaXMuX2Zsb2F0aW5nVG9vbHRpcFZpZXc/LnVwZGF0ZShlKSx0aGlzLl9wcmljZUF4aXNWaWV3cy5mb3JFYWNoKCh0PT50LnVwZGF0ZShlKSkpLHRoaXMuX3ByaWNlTGluZXNBeGlzVmlld3MuZm9yRWFjaCgodD0+dC51cGRhdGUoZSkpKSx0aGlzLl9pbnB1dHNMaW5lc1BhbmVWaWV3Py51cGRhdGUoZSksdGhpcy5faW5wdXRzQW5jaG9yc1BhbmVWaWV3Py51cGRhdGUoZSksdGhpcy5faW5wdXRzVGltZUF4aXNQYW5lVmlld3MuZm9yRWFjaCgodD0+dC51cGRhdGUoZSkpKSx0aGlzLl9pbnB1dHNQcmljZUF4aXNQYW5lVmlld3MuZm9yRWFjaCgodD0+dC51cGRhdGUoZSkpKSksaXx8KHRoaXMuX2ZvcmNlT3ZlcmxheXNQYW5lVmlld3MuZm9yRWFjaCgodD0+dC51cGRhdGUoZSkpKSx0aGlzLl9mb3JjZU92ZXJsYXlMYWJlbFBhbmVWaWV3cy5mb3JFYWNoKCh0PT50LnVwZGF0ZShlKSkpLHRoaXMuX2ZvcmNlT3ZlcmxheVByaWNlQXhpc1ZpZXdzLmZvckVhY2goKHQ9PnQudXBkYXRlKGUpKSkpLCJkYXRhLXNvdXJjZS1jaGFuZ2UiPT09ZS50eXBlJiZlLnNvdXJjZUlkPT09dGhpcy5pZCgpJiZlLmNsZWFyRGF0YSYmdGhpcy5fY2hpbGRyZW4uZm9yRWFjaCgoZT0+ZS51cGRhdGVBbGxWaWV3cyh7dHlwZToiZGF0YS1zb3VyY2UtY2hhbmdlIixzb3VyY2VJZDplLmlkKCksY2xlYXJEYXRhOiEwfSkpKX1yZW1vdmVCeVJlbW92ZUFsbFN0dWRpZXMoKXtyZXR1cm4hMH1zdHVkeU5hbWUoKXtyZXR1cm4gdGhpcy5fc3R1ZHlOYW1lfW5lYXJlc3RJbmRleChlLHQscyl7cmV0dXJuIHRoaXMuZGF0YSgpLnNlYXJjaChlLHQscyk/LmluZGV4fWdldE1pbkZpcnN0QmFySW5kZXhGb3JQbG90KGUpe2NvbnN0IHQ9dGhpcy5fcHJvcGVydGllcy5jaGlsZHMoKSxzPXRoaXMuX21ldGFJbmZvLGk9dC5zdHlsZXMuY2hpbGRzKClbZV0/LmNoaWxkKCJzaG93TGFzdCIpPy52YWx1ZSgpPz90LmZpbGxlZEFyZWFzU3R5bGUuY2hpbGRzKClbZV0/LmNoaWxkKCJzaG93TGFzdCIpPy52YWx1ZSgpPz9zLnZhbHVlKCkuc3R5bGVzPy5bZV0/LnNob3dMYXN0Pz90Lm9obGNQbG90cy5jaGlsZHMoKVtlXT8uY2hpbGQoInNob3dMYXN0Iik/LnZhbHVlKCk/P3MudmFsdWUoKS5vaGxjUGxvdHM/LltlXT8uc2hvd0xhc3Q/P251bGw7aWYobnVsbD09PWkpcmV0dXJuLTEvMDtjb25zdCByPXRoaXMuZGF0YSgpLmxhc3RJbmRleCgpO3JldHVybiBudWxsPT09cj8tMS8wOnItaSsxfWd1aVBsb3ROYW1lKGUsdCl7Y29uc3Qgcz10aGlzLl9tZXRhSW5mby52YWx1ZSgpLGk9cy5wbG90cy5maW5kKChlPT5lLmlkPT09dCkpO2lmKHZvaWQgMCE9PWkpe2NvbnN0IHI9KDAsWi5pc09obGNQbG90KShpKT9zLm9obGNQbG90cz8uW2kudGFyZ2V0XT8udGl0bGU6cy5zdHlsZXM/Llt0XT8udGl0bGU7cmV0dXJuIHI/KDAsZC5kZWNvZGVIVE1MRW50aXRpZXMpKHIpOnRoaXMudGl0bGUoZSl9cmV0dXJuIHRoaXMudGl0bGUoZSl9Y2hpbGRTdHVkeUJ5UmViaW5kKCl7cmV0dXJuIHRoaXMuX2NoaWxkU3R1ZHlCeVJlYmluZH1pc1BpbmUoKXtyZXR1cm4gdGhpcy5fbWV0YUluZm8udmFsdWUoKS5pc1BpbmUoKX1pc1N0YW5kYXJkUGluZSgpe3JldHVybiB0aGlzLl9tZXRhSW5mby52YWx1ZSgpLmlzU3RhbmRhcmRQaW5lKCl9aXNMaW5rZWRUb1Nlcmllcygpe3JldHVybiEwPT09dGhpcy5fbWV0YUluZm8udmFsdWUoKS5saW5rZWRUb1Nlcmllc31wcmVmZXJyZWRaT3JkZXIoKXtyZXR1cm4hMT09PXRoaXMuX21ldGFJbmZvLnZhbHVlKCkuYmVoaW5kX2NoYXJ0PzA6bnVsbH1kZWZhdWx0UGxvdElkRm9yQWxlcnQoKXtyZXR1cm4gdGhpcy5fbWV0YUluZm8udmFsdWUoKS5wbG90cz8uWzBdPy5pZD8/bnVsbH1yZXNvbHZlZFN5bWJvbEluZm9CeVN5bWJvbChlKXtyZXR1cm4gdGhpcy5fcmVzb2x2ZWRTeW1ib2xzJiZlJiZ0aGlzLl9yZXNvbHZlZFN5bWJvbHNbdGhpcy5fZ2V0U3ltYm9sRm9yUmVzb2x2ZShlKV18fG51bGx9aGFzUGVuZGluZ1VucmVzb2x2ZWRTeW1ib2xzKCl7cmV0dXJuIHRoaXMuX3BlbmRpbmdSZXNvbHZlU3ltYm9scy5zaXplPjB9aGFzU3ltYm9sSW5wdXRzKCl7cmV0dXJuIHRoaXMuX21ldGFJbmZvLnZhbHVlKCkuaW5wdXRzLnNvbWUoKGU9PiJzeW1ib2wiPT09ZS50eXBlKSl9Y3VycmVuY3koKXtjb25zdCBlPXRoaXMuX2N1cnJlbmN5VW5pdFNvdXJjZVN5bWJvbEluZm8udmFsdWUoKTtpZihlKXJldHVybigwLHRzLnN5bWJvbEN1cnJlbmN5KShlKTtjb25zdCB0PXRoaXMubWV0YUluZm8oKTtyZXR1cm4gQm9vbGVhbih0KSYmdC5pc19wcmljZV9zdHVkeT90aGlzLl9maXJzdFNvdXJjZU9yU2VyaWVzKCkuY3VycmVuY3lNZXRhZGF0YSgpLnZhbHVlKCk/LmN1cnJlbnRDdXJyZW5jeT8/bnVsbDpudWxsfWN1cnJlbmN5T3JpZ2luU291cmNlKCl7cmV0dXJuIHRoaXMuX2N1cnJlbmN5T3JpZ2luU291cmNlfWN1cnJlbmN5U291cmNlU3ltYm9sSW5mbygpe3JldHVybiB0aGlzLl9jdXJyZW5jeVVuaXRTb3VyY2VTeW1ib2xJbmZvLnZhbHVlKCk/P3RoaXMuc3ltYm9sU291cmNlKCk/LnN5bWJvbEluZm8oKT8/bnVsbH11bml0KCl7Y29uc3QgZT10aGlzLm1ldGFJbmZvKCk7cmV0dXJuIEJvb2xlYW4oZSkmJmUuaXNfcHJpY2Vfc3R1ZHk/dGhpcy5fZmlyc3RTb3VyY2VPclNlcmllcygpLnVuaXQoKTpudWxsfXVuaXRPcmlnaW5Tb3VyY2UoKXtyZXR1cm4gdGhpcy5fdW5pdE9yaWdpblNvdXJjZX1jYW5PdmVycmlkZU1pblRpY2soKXtyZXR1cm4hMX1kYXRhV2luZG93Vmlldygpe3JldHVybiB0aGlzLl9kYXRhV2luZG93Vmlld31zdGF0dXNWaWV3KCl7cmV0dXJuIHRoaXMuX3N0YXR1c1ZpZXd9bGVnZW5kVmlldygpe3JldHVybiB0aGlzLl9sZWdlbmRWaWV3fWNoYXJ0RmxvYXRpbmdUb29sdGlwVmlldygpe3JldHVybiB0aGlzLl9mbG9hdGluZ1Rvb2x0aXBWaWV3fXBpbmVTb3VyY2VDb2RlTW9kZWwoKXsKcmV0dXJuIHRoaXMubWV0YUluZm8oKS5waW5lPyh0aGlzLl9waW5lU291cmNlQ29kZU1vZGVsfHwodGhpcy5fcGluZVNvdXJjZUNvZGVNb2RlbD1uZXcgRS5Bc3luY1Jlc291cmNlV3JhcHBlcihQcm9taXNlLmFsbChbcy5lKDQyMDk2KSxzLmUoMjQxMDgpXSkudGhlbihzLmJpbmQocyw4MzQzNjgpKS50aGVuKChlPT50aGlzLl9pc0Rlc3Ryb3llZD9udWxsOm5ldyBlLlBpbmVTb3VyY2VDb2RlTW9kZWwodGhpcykpKSwoZT0+e2U/LmRlc3Ryb3koKX0pKSksdGhpcy5fcGluZVNvdXJjZUNvZGVNb2RlbC5wcm9taXNlKCkpOlByb21pc2UucmVzb2x2ZShudWxsKX1hbGVydFNvdXJjZU1vZGVsKCl7cmV0dXJuIHRoaXMuX2FsZXJ0U291cmNlTW9kZWx9aW5wdXRzRm9yQWxlcnRTdGF0ZSgpe3JldHVybiB0aGlzLmlucHV0cyh7Zm9yY2VUcmVhdFNvdXJjZUlucHV0c0FzRmFrZTohMH0pfXNlc3Npb25JZCgpe3JldHVybiB0aGlzLl9maXJzdFNvdXJjZU9yU2VyaWVzKCkuc2Vzc2lvbklkKCl9c2Vzc2lvbklkQ2hhbmdlZCgpe3JldHVybiB0aGlzLl9maXJzdFNvdXJjZU9yU2VyaWVzKCkuc2Vzc2lvbklkQ2hhbmdlZCgpfWdldFN5bWJvbFN0cmluZyhlLHQpe3JldHVybiIiPT09ZT8iIjooMCx0ZS5lbmNvZGVFeHRlbmRlZFN5bWJvbE9yR2V0U2ltcGxlU3ltYm9sU3RyaW5nKSh0aGlzLl9nZXRTeW1ib2xPYmplY3QoZSx0KSl9b25TdGF0dXNDaGFuZ2VkKCl7cmV0dXJuIHRoaXMuX3N0YXR1c0NoYW5nZWR9b25EYXRhVXBkYXRlZCgpe3JldHVybiB0aGlzLl9kYXRhVXBkYXRlZH1zeW1ib2xzUmVzb2x2ZWQoKXtyZXR1cm4gdGhpcy5fc3ltYm9sc1Jlc29sdmVkfW9uSGliZXJuYXRpb25TdGF0ZUNoYW5nZSgpe3JldHVybiB0aGlzLl9vbkhpYmVybmF0aW9uU3RhdGVDaGFuZ2V9dmFsdWVzUHJvdmlkZXIoKXtyZXR1cm4gdGhpcy5fdmFsdWVzUHJvdmlkZXJ9bGVnZW5kVmFsdWVzUHJvdmlkZXIoKXtyZXR1cm4gbmV3IFkuU3R1ZHlMZWdlbmRWYWx1ZXNQcm92aWRlcih0aGlzLHRoaXMubW9kZWwoKSl9dGFibGVWaWV3VmFsdWVzUHJvdmlkZXIoKXtyZXR1cm4gdGhpcy5fdGFibGVWaWV3VmFsdWVzUHJvdmlkZXJ9c3RhdHVzUHJvdmlkZXIoZSl7cmV0dXJuIG5ldyByZS5TdHVkeVN0YXR1c1Byb3ZpZGVyKHRoaXMpfWNoYXJ0RmxvYXRpbmdUb29sdGlwVmFsdWVzUHJvdmlkZXIoKXtyZXR1cm4gbmV3IG5lLlN0dWR5Q2hhcnRGbG9hdGluZ1Rvb2x0aXBWYWx1ZXNQcm92aWRlcih0aGlzLHRoaXMubW9kZWwoKSl9Y29ycmVjdFNjYWxlTWFyZ2lucyhlKXtpZigiVm9sdW1lIj09PXRoaXMubWV0YUluZm8oKS5zaG9ydElkKXtjb25zdCB0PXRoaXMubW9kZWwoKS5wYW5lRm9yU291cmNlKHRoaXMpO3JldHVybiBudWxsIT09dCYmdC5pc092ZXJsYXkodGhpcykmJnQuY29udGFpbnNNYWluU2VyaWVzKCk/e3RvcDouNzUsYm90dG9tOjB9Ont0b3A6ZS50b3AsYm90dG9tOjB9fXJldHVybiBlfWNhbkJlSGlkZGVuQnlHbG9iYWxGbGFnKCl7cmV0dXJuITB9aXNTb3VyY2VIaWRkZW4oKXtyZXR1cm4hdGhpcy5pc1Zpc2libGUoKXx8dGhpcy5jYW5CZUhpZGRlbkJ5R2xvYmFsRmxhZygpJiZRLmhpZGVBbGxJbmRpY2F0b3JzKCkudmFsdWUoKX13YXNDb21wbGV0ZWRCZWZvcmUoKXtyZXR1cm4gdGhpcy5fd2FzQ29tcGxldGVkQmVmb3JlfXBhbmVWaWV3cyhlKXtjb25zdCB0PXRoaXMuX21vZGVsLm1haW5QYW5lKCk7aWYodGhpcy5pc1NvdXJjZUhpZGRlbigpKXJldHVybiBudWxsO2lmKCFlLmhhc1ByaWNlRGF0YVNvdXJjZSh0aGlzKSlyZXR1cm4gZSE9PXQ/bnVsbDp0aGlzLl9mb3JjZU92ZXJsYXlzUGFuZVZpZXdzO2NvbnN0IHM9W10saT10aGlzLl9wYW5lVmlld3MuZmluZCgoZT0+e3JldHVybiB0PWUsKDAsdS5pc09iamVjdCkodCkmJiJpc1Bsb3RIaWdobGlnaHRlZCJpbiB0JiZlLmlzUGxvdEhpZ2hsaWdodGVkKCk7dmFyIHR9KSk/P251bGw7cmV0dXJuIXRoaXMuX3N0YXJ0TW92aW5nUG9pbnQmJnRoaXMuX3dhc0NvbXBsZXRlZEJlZm9yZSYmcy5wdXNoKC4uLnRoaXMuX3BhbmVWaWV3cy5maWx0ZXIoKGU9PiFlLmlzRm9yY2VPdmVybGF5Py4oKSYmZSE9PWkpKSksdGhpcy5faW5wdXRzTGluZXNQYW5lVmlldyYmKHRoaXMuX3N0YXJ0TW92aW5nUG9pbnR8fHRoaXMuX21vZGVsLnNlbGVjdGlvbigpLmlzU2VsZWN0ZWQodGhpcykpJiZzLnB1c2godGhpcy5faW5wdXRzTGluZXNQYW5lVmlldyksdGhpcy5faW5wdXRzQW5jaG9yc1BhbmVWaWV3JiZzLnB1c2godGhpcy5faW5wdXRzQW5jaG9yc1BhbmVWaWV3KSxlPT09dCYmcy5wdXNoKC4uLnRoaXMuX2ZvcmNlT3ZlcmxheXNQYW5lVmlld3MpLGkmJnMucHVzaChpKSxzfWxhYmVsUGFuZVZpZXdzKGUpe2NvbnN0IHQ9dGhpcy5fbW9kZWwubWFpblBhbmUoKTtpZih0aGlzLmlzU291cmNlSGlkZGVuKCl8fCFlLmhhc1ByaWNlRGF0YVNvdXJjZSh0aGlzKSlyZXR1cm4gdGhpcy5fbWV0YUluZm8udmFsdWUoKS5oYXNGb3JjZU92ZXJsYXlQbG90cygpP2UhPT10P251bGw6dGhpcy5fZm9yY2VPdmVybGF5TGFiZWxQYW5lVmlld3M6bnVsbDtjb25zdCBzPVsuLi50aGlzLl9sYWJlbFBhbmVWaWV3c107cmV0dXJuIGU9PT10JiZzLnB1c2goLi4udGhpcy5fZm9yY2VPdmVybGF5TGFiZWxQYW5lVmlld3MpLHN9dGltZUF4aXNWaWV3cygpe3JldHVybiB0aGlzLl9tb2RlbC5zZWxlY3Rpb24oKS5pc1NlbGVjdGVkKHRoaXMpP3RoaXMuX2lucHV0c1RpbWVBeGlzUGFuZVZpZXdzOm51bGx9cHJpY2VBeGlzVmlld3MoZSx0KXtpZih0IT09dGhpcy5wcmljZVNjYWxlKCkmJnQ9PT10aGlzLl9tb2RlbC5tYWluU2VyaWVzKCkucHJpY2VTY2FsZSgpJiYhZS5oYXNEYXRhU291cmNlKHRoaXMpKXJldHVybiB0aGlzLl9mb3JjZU92ZXJsYXlQcmljZUF4aXNWaWV3cztjb25zdCBzPXRoaXMuX3Byb3BlcnRpZXMuY2hpbGRzKCkub2xkU2hvd0xhc3RWYWx1ZTtpZihzJiYhcy52YWx1ZSgpKXJldHVybiBudWxsO2xldCBpPXRoaXMuX3ByaWNlQXhpc1ZpZXdzLnNsaWNlKCkKO3JldHVybiB0aGlzLl9tb2RlbC5zZWxlY3Rpb24oKS5pc1NlbGVjdGVkKHRoaXMpJiYoaT1pLmNvbmNhdCh0aGlzLl9pbnB1dHNQcmljZUF4aXNQYW5lVmlld3MpKSx0PT09dGhpcy5fbW9kZWwubWFpblNlcmllcygpLnByaWNlU2NhbGUoKSYmKGk9aS5jb25jYXQodGhpcy5fZm9yY2VPdmVybGF5UHJpY2VBeGlzVmlld3MpKSxlLmZpbmRUYXJnZXRQcmljZUF4aXNWaWV3cyh0aGlzLHQsaSx0aGlzLl9wcmljZUxpbmVzQXhpc1ZpZXdzKX1tb3ZhYmxlKCl7cmV0dXJuIG51bGwhPT10aGlzLl9pbnB1dHNBbmNob3JzUGFuZVZpZXd9c3RhcnRNb3ZpbmcoZSx0LHMsaSl7dGhpcy5fc3RhcnRNb3ZpbmdQb2ludD1lfW1vdmUoZSx0LHMsaSl7aWYodm9pZCAwIT09ZS5sb2dpY2FsJiZudWxsIT09dGhpcy5fc3RhcnRNb3ZpbmdQb2ludCl7aWYoQXJyYXkuaXNBcnJheSh0KSl7Y29uc3Qgcz10O3RoaXMuX3VwZGF0ZUlucHV0VmFsdWUoZS5sb2dpY2FsLHNbMF0pLHRoaXMuX3VwZGF0ZUlucHV0VmFsdWUoZS5sb2dpY2FsLHNbMV0pfWVsc2UgdGhpcy5fdXBkYXRlSW5wdXRWYWx1ZShlLmxvZ2ljYWwsdCk7dGhpcy51cGRhdGVBbGxWaWV3cygoMCxKLnNvdXJjZUNoYW5nZUV2ZW50KSh0aGlzLmlkKCkpKX19ZW5kTW92aW5nKGUsdCl7cmV0dXJuIHRoaXMuX3N0YXJ0TW92aW5nUG9pbnQ9bnVsbCx7aW5kZXhlc0NoYW5nZWQ6ITEscHJpY2VzQ2hhbmdlZDohMX19Y2xlYXJEYXRhKCl7dGhpcy5faW52YWxpZGF0ZUxhc3ROb25FbXB0eVBsb3RSb3dDYWNoZSgpLHRoaXMuX29uZ29pbmdEYXRhVXBkYXRlPXRoaXMuX29uZ29pbmdEYXRhVXBkYXRlLnRoZW4oKCgpPT57dGhpcy5fY2xlYXJEYXRhKCksdGhpcy5fZ3JhcGhpY3MgaW5zdGFuY2VvZiBLLkxpdmVTdHVkeUdyYXBoaWNzJiZ0aGlzLl9ncmFwaGljcz8uY2xlYXIoKSx0aGlzLl9zZXJ2ZXJQbG90T2Zmc2V0cy5zZXRWYWx1ZSh7fSl9KSksdGhpcy5oYXNCYXJDb2xvcmVyKCkmJnRoaXMuX21vZGVsLm1haW5TZXJpZXMoKS5pbnZhbGlkYXRlQmFyU3R5bGVzQ2FjaGUoKSx0aGlzLnVwZGF0ZUFsbFZpZXdzKCgwLEouc291cmNlQ2hhbmdlRXZlbnQpKHtzb3VyY2VJZDp0aGlzLmlkKCksY2xlYXJEYXRhOiEwfSkpfWNvbnZlcnRZQ29vcmRpbmF0ZVRvUHJpY2VGb3JNb3ZpbmcoZSx0KXtjb25zdCBzPXRoaXMucHJpY2VTY2FsZSgpO2lmKCF0fHwhc3x8cy5pc0VtcHR5KCkpcmV0dXJuIG51bGw7Y29uc3QgaT10LmZpcnN0VmFsdWUoKTtyZXR1cm4gbnVsbD09PWk/bnVsbDpzLmNvb3JkaW5hdGVUb1ByaWNlKGUsaSl9cHJvY2Vzc0hpYmVybmF0ZShlKXtjb25zdCB0PXRoaXMuaXNWaXNpYmxlKCk7aWYoIXRoaXMuaXNTdGFydGVkKCkmJnQmJih0aGlzLl9zb3VyY2VzLnZhbHVlKCkuZm9yRWFjaCgoZT0+e2UucHJvY2Vzc0hpYmVybmF0ZSgpfSkpLHRoaXMuc3RhcnQodm9pZCAwLHZvaWQgMCxlKSx0aGlzLl9vbkhpYmVybmF0aW9uU3RhdGVDaGFuZ2UuZmlyZSghMSkpLHRoaXMuaXNIaWJlcm5hdGlvbkFsbG93ZWQoKSYmdGhpcy5pc1N0YXJ0ZWQoKSYmIXQpe2Zvcihjb25zdCBlIG9mIHRoaXMuX2NoaWxkcmVuKWUucHJvY2Vzc0hpYmVybmF0ZSgpO3RoaXMuc3RvcCh2b2lkIDAsZSksdGhpcy5fb25IaWJlcm5hdGlvblN0YXRlQ2hhbmdlLmZpcmUoITApfX1pc0hpYmVybmF0aW9uQWxsb3dlZCgpe3JldHVybighdGhpcy5tZXRhSW5mbygpLmhpc3RvcnlDYWxjdWxhdGlvbk1heUNoYW5nZXx8IXRoaXMucHJvcGVydGllcygpLmNoaWxkcygpLnZpc2libGUudmFsdWUoKSkmJighdGhpcy5oYXNDaGlsZHJlbigpfHwhIXRoaXMuX21vZGVsLmNvbGxhcHNlZCgpLnZhbHVlKCkmJnRoaXMuX2NoaWxkcmVuLmV2ZXJ5KChlPT5lLmlzSGliZXJuYXRpb25BbGxvd2VkKCkpKSl9aXNQbG90VmlzaWJsZUF0KGUsdCl7bGV0IHM7Y29uc3QgaT10aGlzLm1ldGFJbmZvKCkucGxvdHMuZmluZCgodD0+dC5pZD09PWUpKTtpZihzPXZvaWQgMCE9PWk/KDAsWi5pc09obGNQbG90KShpKT90aGlzLl9wcm9wZXJ0aWVzLmNoaWxkcygpLm9obGNQbG90cy5jaGlsZHMoKVtpLnRhcmdldF06dGhpcy5fcHJvcGVydGllcy5jaGlsZHMoKS5zdHlsZXMuY2hpbGRzKClbZV06dGhpcy5fcHJvcGVydGllcy5jaGlsZHMoKS5vaGxjUGxvdHMuY2hpbGRzKClbZV0sdm9pZCAwPT09cyl0aHJvdyBuZXcgRXJyb3IoYFN0dWR5IGRvZXMgbm90IGNvbnRhaW4gJHtlfSBwbG90YCk7Y29uc3Qgcj1zLmNoaWxkcygpLmRpc3BsYXkudmFsdWUoKTtyZXR1cm4gbnVsbCE9PXImJigwLHouaXNQbG90VmlzaWJsZSkocix0KX1yZWNhbGN1bGF0ZSgpe2NvbnN0IGU9dGhpcy5fbW9kZWwucGFuZUZvclNvdXJjZSh0aGlzKTt0aGlzLl9tb2RlbC5yZWNhbGN1bGF0ZVBhbmUoZSwoMCxKLnNvdXJjZUNoYW5nZUV2ZW50KSh0aGlzLmlkKCkpKSx0aGlzLl9tb2RlbC51cGRhdGVTb3VyY2UodGhpcyl9bWF4T2Zmc2V0KCl7cmV0dXJuIHRoaXMuX21heE9mZnNldH1vblN0YXJ0KCl7cmV0dXJuIHRoaXMuX29uU3RhcnR9b25QYXJlbnRTb3VyY2VzQ2hhbmdlcygpe3JldHVybiB0aGlzLl9vblBhcmVudFNvdXJjZXNDaGFuZ2VzfWlzSGliZXJuYXRlZCgpe3JldHVybiF0aGlzLmlzVmlzaWJsZSgpJiYhdGhpcy5pc1N0YXJ0ZWQoKX1ncmFwaGljc1ZpZXdzUmVhZHkoKXtyZXR1cm4gdGhpcy5fZ3JhcGhpY3NWaWV3c1JlYWR5fXNldExvYWRpbmdDb21waWxhdGlvbkFjdGl2ZShlKXt0aGlzLl9jb21waWxlQWN0aXZlU3RhdHVzLnNldFZhbHVlKGU/e3R5cGU6WnQuU3R1ZHlTdGF0dXNUeXBlLkxvYWRpbmcsc3RhcnRUaW1lOkRhdGUubm93KCl9Om51bGwpLHRoaXMuX3N0YXR1c1ZpZXc/LnVwZGF0ZSgoMCxKLnNvdXJjZUNoYW5nZUV2ZW50KSh0aGlzLmlkKCkpKSx0aGlzLl9tb2RlbC51cGRhdGVTb3VyY2UodGhpcyksdGhpcy5fc3RhdHVzQ2hhbmdlZC5maXJlKHRoaXMuc3RhdHVzKCkpfXNldEVycm9yQ29tcGlsYXRpb24oZSl7e2NvbnN0IHQ9KDAsUGUuZXh0cmFjdFBpbmVJZCkodGhpcy5fbWV0YUluZm8udmFsdWUoKS5pZCkKO2lmKG51bGw9PT1lfHwwPT09ZS5sZW5ndGh8fG51bGw9PT10KXJldHVybiB0aGlzLl9jb21waWxlRXJyb3JTdGF0dXMuc2V0VmFsdWUobnVsbCksdm9pZCB0aGlzLl9zZXRTdGF0dXMoe3R5cGU6WnQuU3R1ZHlTdGF0dXNUeXBlLlVuZGVmaW5lZH0pO2NvbnN0IHM9ZVswXTt0aGlzLl9jb21waWxlRXJyb3JTdGF0dXMuc2V0VmFsdWUoe3R5cGU6WnQuU3R1ZHlTdGF0dXNUeXBlLkVycm9yLGVycm9yRGVzY3JpcHRpb246e2Vycm9yOnMubWVzc2FnZSxlZGl0b3JFcnJvcjp7Li4ucyxpZDp0fSx0aXRsZToiQ29tcGlsYXRpb24gZXJyb3IifX0pLHRoaXMuX3N0YXR1c1ZpZXc/LnVwZGF0ZSgoMCxKLnNvdXJjZUNoYW5nZUV2ZW50KSh0aGlzLmlkKCkpKSx0aGlzLl9tb2RlbC51cGRhdGVTb3VyY2UodGhpcyksdGhpcy5fc3RhdHVzQ2hhbmdlZC5maXJlKHRoaXMuc3RhdHVzKCkpfX1oYXNDb21waWxlRXJyb3IoKXtyZXR1cm4gbnVsbCE9PXRoaXMuX2NvbXBpbGVFcnJvclN0YXR1cy52YWx1ZSgpfXR1cm5hcm91bmQoZSl7aWYoIWUpcmV0dXJuIHRoaXMuX3R1cm5hcm91bmQ7Y29uc3QgdD10aGlzLl9zZXJpZXMuc2VyaWVzU291cmNlKCkudHVybmFyb3VuZCgpLHM9KDAsVGUuYnVpbGRUcmVlRm9yU3R1ZHkpKHRoaXMpO3JldHVybigwLFRlLmJ1aWxkVHVybmFyb3VuZCkodCxzKX1jYW5IYXZlQ2hpbGRyZW4oKXtyZXR1cm4gdGhpcy5fY2FuSGF2ZUNoaWxkcmVuPXRoaXMuX2NhbkhhdmVDaGlsZHJlbj8/di5TdHVkeU1ldGFJbmZvLmNhbkhhdmVDaGlsZHJlbih0aGlzLl9tZXRhSW5mby52YWx1ZSgpKSx0aGlzLl9jYW5IYXZlQ2hpbGRyZW59c2V0Q2hpbGQoZSl7LTE9PT10aGlzLl9jaGlsZHJlbi5pbmRleE9mKGUpJiZ0aGlzLl9jaGlsZHJlbi5wdXNoKGUpfXVuc2V0Q2hpbGQoZSl7Y29uc3QgdD10aGlzLl9jaGlsZHJlbi5pbmRleE9mKGUpO350JiZ0aGlzLl9jaGlsZHJlbi5zcGxpY2UodCwxKX1jaGlsZHJlbigpe3JldHVybiB0aGlzLl9jaGlsZHJlbn1nZXRBbGxDaGlsZHJlbigpe2NvbnN0IGU9dGhpcy5fY2hpbGRyZW4uc2xpY2UoKTtmb3IobGV0IHQ9MDt0PGUubGVuZ3RoOysrdCl7Y29uc3Qgcz1lW3RdLmdldEFsbENoaWxkcmVuKCk7Zm9yKGxldCB0PTA7dDxzLmxlbmd0aDsrK3QpfmUuaW5kZXhPZihzW3RdKXx8ZS5wdXNoKHNbdF0pfXJldHVybiBlfXBhcmVudFNvdXJjZUZvcklucHV0KGUpe2lmKGUuaW5jbHVkZXMoIiQiKSl7Y29uc3QgdD1lLnNwbGl0KCIkIilbMF07cmV0dXJuIHRoaXMuX3NvdXJjZXMudmFsdWUoKS5maW5kKChlPT5lLmlkKCk9PT10KSk/P251bGx9cmV0dXJuIHRoaXMuX3Nlcmllc31wcmljZVN0ZXAoKXtyZXR1cm4gdGhpcy5fcHJpY2VTdGVwfHx0aGlzLl9maXJzdFNvdXJjZU9yU2VyaWVzKCkucHJpY2VTdGVwKCExKX1yZWNyZWF0ZVByaWNlRm9ybWF0dGVyKCl7dGhpcy5fcmVjcmVhdGVQcmljZUZvcm1hdHRpbmdEZXBlbmRlbmNpZXMoKX1zZXRPd25lclNvdXJjZShlKXtzdXBlci5zZXRPd25lclNvdXJjZShlKSx0aGlzLl9yZWNyZWF0ZVByaWNlRm9ybWF0dGluZ0RlcGVuZGVuY2llcygpfW9uVGFnc0NoYW5nZWQoKXtyZXR1cm4gdGhpcy5fdGFnc0NoYW5nZWR9aGFzSGlnaGxpZ2h0ZWRQbG90cygpe3JldHVybigwLCQuaGlnaGxpZ2h0Q29udGFpbnNTb3VyY2UpKHRoaXMuX21vZGVsLmhpZ2hsaWdodGVkUGxvdEluZm8oKSx0aGlzLmlkKCkpfWdldFByb3BlcnR5RGVmaW5pdGlvbnNWaWV3TW9kZWwoKXtyZXR1cm4gbnVsbD09PXRoaXMuX2RlZmluaXRpb25zVmlld01vZGVsP3RoaXMuX2dldFByb3BlcnR5RGVmaW5pdGlvbnNWaWV3TW9kZWxDbGFzcygpLnRoZW4oKGU9Pm51bGw9PT1lfHx0aGlzLl9pc0Rlc3Ryb3llZD9udWxsOihudWxsPT09dGhpcy5fZGVmaW5pdGlvbnNWaWV3TW9kZWwmJih0aGlzLl9kZWZpbml0aW9uc1ZpZXdNb2RlbD1uZXcgZSh0aGlzLl9tb2RlbC51bmRvTW9kZWwoKSx0aGlzKSksdGhpcy5fZGVmaW5pdGlvbnNWaWV3TW9kZWwpKSk6UHJvbWlzZS5yZXNvbHZlKHRoaXMuX2RlZmluaXRpb25zVmlld01vZGVsKX1jYWxjdWxhdGlvblRpbWUoKXtyZXR1cm4gdGhpcy5fY2FsY3VsYXRpb25UaW1lLnJlYWRvbmx5KCl9Y29udGV4dE1lbnVTdGF0TmFtZSgpe3JldHVybiJJbmRpY2F0b3JDb250ZXh0TWVudSJ9bWV0YUluZm9XVigpe3JldHVybiB0aGlzLl9tZXRhSW5mby5yZWFkb25seSgpfWFzeW5jIHBhdGNoUHJvcGVydGllc0FmdGVyUmVzZXREZWZhdWx0cygpe2NvbnN0IGU9dGhpcy5pbnB1dHMoKTtpZihPYmplY3Qua2V5cyhlKS5zb21lKChlPT4oMCxEZS5pc1N0dWR5SW5wdXREZXBlbmRzT25DaGFydCkoe2lkOmV9KSkpKXt0aGlzLl9hYm9ydFBhdGNoUHJvcHNDb250cm9sbGVyLmFib3J0KCksdGhpcy5fYWJvcnRSZXNldFBhdGNoUHJvcHNDb250cm9sbGVyLmFib3J0KCksdGhpcy5fYWJvcnRSZXNldFBhdGNoUHJvcHNDb250cm9sbGVyPW5ldyBBYm9ydENvbnRyb2xsZXI7Y29uc3QgdD1uZXcgdi5TdHVkeU1ldGFJbmZvKHRoaXMuX21ldGFJbmZvLnZhbHVlKCkuc3RhdGUoKSk7dGhpcy5fcHJldmlvdXNQYXRjaE1hcD17fSx0aGlzLl9yZXNldFByb3BlcnRpZXNQYXRjaGVkPW5ldyBQcm9taXNlKChhc3luYyBzPT57YXdhaXQoMCxGLnBhdGNoUHJvcGVydGllc0FzeW5jKSh0aGlzLl9wcm9wZXJ0aWVzLHQsZSx0aGlzLl9hYm9ydFJlc2V0UGF0Y2hQcm9wc0NvbnRyb2xsZXIuc2lnbmFsLHRoaXMuX3ByZXZpb3VzUGF0Y2hNYXAsITApLHRoaXMuX21ldGFJbmZvLnNldFZhbHVlKHQpLHMoKX0pKX19X2dldFByb3BlcnR5RGVmaW5pdGlvbnNWaWV3TW9kZWxDbGFzcygpe3JldHVybiBQcm9taXNlLnJlc29sdmUobnVsbCl9X2FsZXJ0TWV0YUluZm8oKXtyZXR1cm4gdGhpcy5tZXRhSW5mbygpfV9jcmVhdGVTdHVkeU9uU2VydmVyKCl7aWYodGhpcy5faXNEZXN0cm95ZWQpcmV0dXJuITE7dGhpcy5faXNTdGFydGVkPSEwLHRoaXMuX2luY3JlbWVudFR1cm5hcm91bmQoKTtjb25zdCBlPSgwLGguZW5zdXJlRGVmaW5lZCkodGhpcy5faW5wdXRzKTtsZXQgdAo7aWYodD10aGlzLl9jaGFydEFwaS5jcmVhdGVTdHVkeSh0aGlzLnNvdXJjZUlkKCksdGhpcy5fdHVybmFyb3VuZCwoMCxoLmVuc3VyZU5vdE51bGwpKHRoaXMuX3Nlcmllcy5zZXJpZXNTb3VyY2UoKS5pbnN0YW5jZUlkKCkpLHRoaXMuX3N0dWR5TmFtZS52YWx1ZSgpLGUsdGhpcy5faGFuZGxlcix0aGlzLl9zdHVkeVNwZWMoKSksIXQpcmV0dXJuIHRoaXMuX2lzU3RhcnRlZD0hMSx0O2lmKHBlcmZvcm1hbmNlLm1hcmsoYGNhbGN1bGF0ZV9zdHVkeV8ke3RoaXMuX2lkLnZhbHVlKCl9YCksdm9pZCAwPT09dGhpcy5fb2xkU3R1ZHlJbnB1dHMpe2NvbnN0IGU9dGhpcy5fcHJlcGFyZUlucHV0cyhWcyk7T2JqZWN0LmtleXMoZSkuc29tZSgoZT0+KDAsRGUuaXNTdHVkeUlucHV0RGVwZW5kc09uQ2hhcnQpKHtpZDplfSkpKXx8KHRoaXMuX29sZFN0dWR5SW5wdXRzPWUpfXJldHVybiB0aGlzLl9kZWZlcnJlZFBpbmVQYXRjaFByb3BzJiYhdGhpcy5fcmVzdGFydGluZyYmdGhpcy5fcGluZVBhdGNoUHJvcHMoKSwhMH1fc3RvcFN0dWR5T25TZXJ2ZXIoKXt0aGlzLl9jaGFydEFwaSYmdGhpcy5fY2hhcnRBcGkuaXNDb25uZWN0ZWQoKS52YWx1ZSgpJiZ0aGlzLmlzU3RhcnRlZCgpJiYodGhpcy5fY2hhcnRBcGkucmVtb3ZlU3R1ZHkodGhpcy5zb3VyY2VJZCgpKSx0aGlzLl9zZXRTdGF0dXMoe3R5cGU6WnQuU3R1ZHlTdGF0dXNUeXBlLlVuZGVmaW5lZH0pKSxwZXJmb3JtYW5jZS5jbGVhck1hcmtzKGBjYWxjdWxhdGVfc3R1ZHlfJHt0aGlzLnNvdXJjZUlkKCl9YCksdGhpcy5faXNTdGFydGVkPSExfV9tb2RpZnlTdHVkeU9uU2VydmVyKGUsdCl7dGhpcy5fY2hhcnRBcGkubW9kaWZ5U3R1ZHkodGhpcy5zb3VyY2VJZCgpLHRoaXMuX3R1cm5hcm91bmQsZSx0aGlzLl9oYW5kbGVyLHQpLHBlcmZvcm1hbmNlLm1hcmsoYGNhbGN1bGF0ZV9zdHVkeV8ke3RoaXMuc291cmNlSWQoKX1gKX1fc2VuZE5vdGlmeUNvbW1hbmQoZSx0KXt0aGlzLl9jaGFydEFwaS5ub3RpZnlTdHVkeSh0aGlzLnNvdXJjZUlkKCksZSx0KX1fdHJhbnNmb3JtRGF0YShlKXt9X3Bsb3RzRGF0YVJhbmdlKCl7Y29uc3QgZT10aGlzLnBsb3RzKCkuZmlyc3RJbmRleCgpLHQ9dGhpcy5wbG90cygpLmxhc3RJbmRleCgpO3JldHVybiBudWxsIT09ZSYmbnVsbCE9PXQ/W2UsdF06bnVsbH1faW52YWxpZGF0ZUxhc3ROb25FbXB0eVBsb3RSb3dDYWNoZSgpe3RoaXMuX2xhc3ROb25FbXB0eVBsb3RSb3dDYWNoZT17fX1fY29sbGVjdERlcHNGb3JBbGVydCgpe2NvbnN0IGU9W3RoaXMsLi4udGhpcy5fYWxsT3duZXJTb3VyY2VzLnZhbHVlKCkuZmlsdGVyKChlPT5lIGluc3RhbmNlb2YgVXMpKV07cmV0dXJuKDAsVC5jb2xsZWN0RGVwc0ZvckFsZXJ0KShlKX1fYWxsSW5wdXRzQXJlVmFsaWQoKXtpZihudWxsPT09dGhpcy5fdmlzaWJsZVRpbWVSYW5nZUlucHV0cz8udmFsdWUoKSlyZXR1cm4hMTtmb3IoY29uc3QgZSBvZiB0aGlzLl9tZXRhSW5mby52YWx1ZSgpLmlucHV0cylpZigiYmFyX3RpbWUiPT09ZS50eXBlKXtjb25zdCB0PWUuaWQ7aWYobnVsbD09dGhpcy5fcHJvcGVydGllcy5jaGlsZHMoKS5pbnB1dHMuY2hpbGRzKClbdF0udmFsdWUoKSlyZXR1cm4hMX1yZXR1cm4hMH1hc3luYyBfc3RhcnRBZnRlclN5bWJvbHNSZXNvbHZlZChlLHQpe2F3YWl0IFByb21pc2UuYWxsKHRoaXMuX3NvdXJjZXMudmFsdWUoKS5tYXAoKGU9PiFlLmlzU3RhcnRlZCgpfHxlLmlzUmVzdGFydGluZygpP25ldyBQcm9taXNlKCh0PT57ZS5vblN0YXJ0KCkuc3Vic2NyaWJlKHRoaXMsdCwhMCl9KSk6UHJvbWlzZS5yZXNvbHZlKCkpKSksdGhpcy5pc1N0YXJ0ZWQoKSYmIXRoaXMuX3Jlc3RhcnRpbmd8fCh0aGlzLl9yZXN0YXJ0aW5nPSExLHRoaXMuX2FsbElucHV0c0FyZVZhbGlkKCkmJiF0aGlzLm1ldGFJbmZvKCkuaXNUVlNjcmlwdFN0dWImJih0aGlzLl9pbnB1dHM9dGhpcy5fYXBpSW5wdXRzKCksdGhpcy5fY3JlYXRlU3R1ZHlPblNlcnZlcigpJiYodGhpcy5fc3Vic2NyaWJlVG9TZXNzaW9uSWQoKSx0aGlzLl9vblN0YXJ0LmZpcmUoKSwhMD09PWUmJnRoaXMuX2NoaWxkcmVuJiZhd2FpdCB0aGlzLl9jaGlsZHJlbi5tYXAoKGU9PmUuc3RhcnQoITAsdCkpKSkpKX1hc3luYyBfY2hhbmdlSW5wdXRzSW1wbChlLHQpe2NvbnN0IHM9dGhpcy5fY2FsY1NvdXJjZXMoKSxpPXRoaXMuX21ldGFJbmZvLnZhbHVlKCkscj1rcyhpLGUsdCksbj0oKT0+e2Zvcihjb25zdCBzIG9mIGkuaW5wdXRzKXtpZigic291cmNlIiE9PXMudHlwZSljb250aW51ZTtjb25zdCBpPWVbcy5pZF0udixyPXRbcy5pZF0udjtpZihpIT09cil7KDAsaC5lbnN1cmVEZWZpbmVkKSh0aGlzLl9wcm9wZXJ0aWVzLmNoaWxkcygpLmlucHV0cy5jaGlsZChzLmlkKSkuc2V0VmFsdWUocil9fX07aWYodGhpcy5pc1N0YXJ0ZWQoKSYmdGhpcy5fY2hhcnRBcGkuaXNDb25uZWN0ZWQoKS52YWx1ZSgpJiZyPjAmJiF0aGlzLl9jaGFydEFwaS5jYW5DcmVhdGVTdHVkeSh0aGlzLl9zdHVkeVNwZWMoITApLCEwKS5zdWNjZXNzKXtjb25zdCBlPXdpbmRvdy51c2VyLnByb19wbGFuLHQ9InByb19wcmVtaXVtX2V4cGVydCI9PT1lfHwicHJvX3ByZW1pdW1fZXhwZXJ0X3RyaWFsIj09PWU7cmV0dXJuKDAsTy5vcGVuUGF5d2FsbCkoe2ZlYXR1cmU6InN0dWR5T25TdHVkeSIsaXNNYXhQbGFuOnR9KSx2b2lkIG4oKX10aGlzLl9pbnB1dHM9ZTtsZXQgYT0hMTtjb25zdCBvPU9iamVjdC52YWx1ZXMoRGUuUmFuZ2VEZXBlbmRlbnRTdHVkeUlucHV0TmFtZXMpO2Zvcihjb25zdCBzIG9mIE9iamVjdC5rZXlzKGUpKWlmKEpTT04uc3RyaW5naWZ5KGVbc10pIT09SlNPTi5zdHJpbmdpZnkodFtzXSkmJiFvLmluY2x1ZGVzKHMpKXthPSEwO2JyZWFrfXRoaXMuX2luY3JlbWVudFR1cm5hcm91bmQoKSxhJiZ0aGlzLmRpc2FibGVQcmljZVJhbmdlUmVhZHkoKTt0cnl7YXdhaXQgdGhpcy5fdXBkYXRlUGFyZW50U291cmNlcyhzLHIsITApLHRoaXMuX21vZGlmeVN0dWR5T25TZXJ2ZXIoZSxyKSx0aGlzLl9zdHVkeU1vZGlmaWVkPSEwfWNhdGNoKGUpe1NzLmxvZ0Vycm9yKGBFcnJvciBhcHBseWluZyBwYXJlbnQgc291cmNlczogJHtlfWApLG4oKX0KdGhpcy5pbnZhbGlkYXRlVGl0bGVDYWNoZSgpfV9nZXRTeW1ib2xTb3VyY2UoKXtyZXR1cm4gdGhpcy5fZmlyc3RTb3VyY2VPclNlcmllcygpLnN5bWJvbFNvdXJjZSgpfV9nZXRDdXJyZW5jeUlucHV0UHJvcGVydHkoKXtyZXR1cm4gbnVsbH1fZ2V0VW5pdElucHV0UHJvcGVydHkoKXtyZXR1cm4gbnVsbH1fY3JlYXRlUHJpY2VBeGlzVmlldyhlKXtjb25zdCB0PXRoaXMubWV0YUluZm8oKS5wbG90cy5maW5kKCh0PT4idGFyZ2V0ImluIHQmJnQudGFyZ2V0PT09ZSkpO3JldHVybiB2b2lkIDAhPT10JiYoMCxaLmlzT2hsY1Bsb3QpKHQpP25ldyBycyh0aGlzLHtwbG90TmFtZTplfSk6bmV3IGlzLlN0dWR5UHJpY2VBeGlzVmlldyh0aGlzLHtwbG90TmFtZTplfSl9X2NyZWF0ZVByaWNlTGluZUF4aXNWaWV3KGUpe3JldHVybiBuZXcgbnMuU3R1ZHlQcmljZUxpbmVBeGlzVmlldyh0aGlzLGUpfV9jcmVhdGVTdHVkeVBsb3RQYW5lVmlldyhlKXtyZXR1cm4gbmV3IEZ0LlN0dWR5UGxvdFBhbmVWaWV3KHRoaXMsdGhpcy5fc2VyaWVzLHRoaXMuX21vZGVsLGUpfV9jcmVhdGVWaWV3cygpe3RoaXMuX3ByaWNlQXhpc1ZpZXdzQmFzZT1bXSx0aGlzLl9mb3JjZU92ZXJsYXlQcmljZUF4aXNWaWV3cz1bXSx0aGlzLl9wcmljZUxpbmVzQXhpc1ZpZXdzPVtdLHRoaXMuX3BhbmVWaWV3cz1bXSx0aGlzLl9mb3JjZU92ZXJsYXlzUGFuZVZpZXdzPVtdLHRoaXMuX2xhYmVsUGFuZVZpZXdzPVtdLHRoaXMuX2ZvcmNlT3ZlcmxheUxhYmVsUGFuZVZpZXdzPVtdO2NvbnN0IGU9bmV3IFNldCx0PXRoaXMubWV0YUluZm8oKSxzPUJvb2xlYW4odC51c2VQbG90c1pPcmRlciksaT1uZXcgTWFwLHI9dGhpcy5fcHJvcGVydGllcy5jaGlsZHMoKTtpZihyLmZpbGxlZEFyZWFzU3R5bGUmJnQuZmlsbGVkQXJlYXMpZm9yKGxldCBlPTA7ZTx0LmZpbGxlZEFyZWFzLmxlbmd0aDsrK2Upe2NvbnN0IG49dC5maWxsZWRBcmVhc1tlXSxhPSgwLGguZW5zdXJlRGVmaW5lZCkoci5maWxsZWRBcmVhc1N0eWxlLmNoaWxkcygpW24uaWRdKSxvPU5zKHQsbi5pZCk7bGV0IGw7aWYoInBsb3RfcGxvdCI9PT1uLnR5cGV8fG8/bD1uZXcgV3QodGhpcyx0aGlzLm1vZGVsKCksbixhKToiaGxpbmVfaGxpbmUiPT09bi50eXBlP2w9bmV3IFl0KHRoaXMsbixhKTpTcy5sb2dXYXJuKCJVbnN1cHBvcnRlZCBmaWxsZWRBcmVhIHR5cGU6ICIrbi50eXBlKSx2b2lkIDAhPT1sKXtsZXQgZT0hMTtpZigicGxvdF9wbG90Ij09PW4udHlwZSYmKGU9dC5pc1Bsb3RGb3JjZU92ZXJsYXkobi5vYmpBSWQpKSxlKXRoaXMuX2ZvcmNlT3ZlcmxheXNQYW5lVmlld3MucHVzaChsKTtlbHNle2NvbnN0IGU9cz8oMCxoLmVuc3VyZURlZmluZWQpKG4uem9yZGVyKTppLnNpemU7RnMoZSxpKSxpLnNldChlLHtwYW5lVmlld3M6W2xdfSl9fX17bGV0IHI9LTFlNTtmb3IobGV0IG49MDtuPHQucGxvdHMubGVuZ3RoO24rKyl7Y29uc3QgYT10LnBsb3RzW25dO2xldCBvLGwsdSxjLGQscD10LmlzUGxvdEZvcmNlT3ZlcmxheShhLmlkKTtpZigoMCxaLmlzTm9uVmlzdWFsUGxvdCkoYSkpY29udGludWU7bGV0IF89YS5pZCxmPXQuc3R5bGVzO2NvbnN0IG09KDAsWi5pc0JnQ29sb3JlclBsb3QpKGEpO2lmKG0pbz1uZXcgRWUodGhpcyx0aGlzLl9zZXJpZXMsdGhpcy5fbW9kZWwsXyk7ZWxzZSBpZigoMCxaLmlzU2hhcGVzUGxvdCkoYSkpbz1uZXcgYXQodGhpcyx0aGlzLl9zZXJpZXMsdGhpcy5fbW9kZWwsXyk7ZWxzZSBpZigoMCxaLmlzQ2hhcnNQbG90KShhKSlvPW5ldyBTdCh0aGlzLHRoaXMuX3Nlcmllcyx0aGlzLl9tb2RlbCxfKTtlbHNlIGlmKCgwLFouaXNBcnJvd3NQbG90KShhKSlvPW5ldyBDdCh0aGlzLHRoaXMuX3Nlcmllcyx0aGlzLl9tb2RlbCxfKTtlbHNlIGlmKCgwLFouaXNPaGxjUGxvdCkoYSkpe2NvbnN0IHM9YS50YXJnZXQ7aWYoZS5oYXMocykpY29udGludWU7aWYocD10LmlzUGxvdEZvcmNlT3ZlcmxheShzKSxlLmFkZChzKSxUcyh0LG4pKW89bmV3IFJ0KHRoaXMsdGhpcy5fc2VyaWVzLHRoaXMuX21vZGVsLHMpO2Vsc2V7aWYoIURzKHQsbikpe1NzLmxvZ0Vycm9yKGBwbG90ICR7YS5pZH0gbG9va3MgdG8gYmUgaW52YWxpZGApO2NvbnRpbnVlfW89bmV3IFR0KHRoaXMsdGhpcy5fc2VyaWVzLHRoaXMuX21vZGVsLHMpfWM9dGhpcy5fY3JlYXRlUHJpY2VBeGlzVmlldyhzKSx1PW5ldyBEdC5QYW5lUHJpY2VBeGlzVmlldyhjLHRoaXMsdGhpcy5fbW9kZWwpLF89cyxmPXQub2hsY1Bsb3RzfWVsc2UoMCxaLmlzRGF0YVBsb3QpKGEpfHwoYz10aGlzLl9jcmVhdGVQcmljZUF4aXNWaWV3KF8pLGQ9dGhpcy5fY3JlYXRlUHJpY2VMaW5lQXhpc1ZpZXcoXyksbz10aGlzLl9jcmVhdGVTdHVkeVBsb3RQYW5lVmlldyhfKSx0aGlzLl9wcm9wZXJ0aWVzLmNoaWxkcygpLnN0eWxlcy5jaGlsZHMoKVtfXT8uY2hpbGQoInRyYWNrUHJpY2UiKT8udmFsdWUoKSYmKGw9bmV3IGt0KHRoaXMsXykpLHU9bmV3IGRzKGMsdGhpcyx0aGlzLl9tb2RlbCxfKSk7Y29uc3QgeT1zP20/cisrOigwLGguZW5zdXJlRGVmaW5lZCkoZj8uW19dPy56b3JkZXIpOmkuc2l6ZTtpZihGcyh5LGkpLHApYyYmdGhpcy5fZm9yY2VPdmVybGF5UHJpY2VBeGlzVmlld3MucHVzaChjKSxvJiZ0aGlzLl9mb3JjZU92ZXJsYXlzUGFuZVZpZXdzLnB1c2gobyksdSYmdGhpcy5fZm9yY2VPdmVybGF5TGFiZWxQYW5lVmlld3MucHVzaCh1KTtlbHNle2NvbnN0IGU9e3BhbmVWaWV3czp2b2lkIDAhPT1vP1tvXTpbXSxsYWJlbFZpZXc6dSxwcmljZUF4aXNWaWV3OmMscHJpY2VMaW5lQXhpc1ZpZXc6ZH07dm9pZCAwIT09bCYmZS5wYW5lVmlld3MucHVzaChsKSxpLnNldCh5LGUpfX19KHRoaXMuX21ldGFJbmZvLnZhbHVlKCkuYmFuZHM/P1tdKS5mb3JFYWNoKCgoZSx0KT0+e2NvbnN0IG49ci5iYW5kcy5jaGlsZHMoKVt0XTtpZihuJiZuLmNoaWxkcygpLnZpc2libGUudmFsdWUoKSl7Y29uc3QgdD1uZXcgJHQobix0aGlzKSxyPXM/KDAsaC5lbnN1cmVEZWZpbmVkKShlLnpvcmRlcik6aS5zaXplO0ZzKHIsaSksaS5zZXQocix7cGFuZVZpZXdzOlt0XX0pfX0pKSxyLmJhbmRzQmFja2dyb3VuZCYmKCgwLApoLmFzc2VydCkoIXMsIid1c2VQbG90c1pPcmRlcicgZmxhZyBkb2VzIG5vdCBzdXBwb3J0ZWQiKSxpLnNldChpLnNpemUse3BhbmVWaWV3czpbbmV3IEp0KHRoaXMpXX0pKTtjb25zdCBuPXRoaXMuX3BhbmVWaWV3cyxhPXRoaXMuX2ZvcmNlT3ZlcmxheXNQYW5lVmlld3M7dGhpcy5fY3JlYXRlR3JhcGhpY3NQYW5lVmlld3MoKS50aGVuKChlPT57Zm9yKGxldCB0PTA7dDxlLnJlZ3VsYXJQYW5lVmlld3MubGVuZ3RoO3QrKyluLnB1c2goZS5yZWd1bGFyUGFuZVZpZXdzW3RdKTtmb3IobGV0IHQ9MDt0PGUuZm9yY2VPdmVybGF5UGFuZVZpZXdzLmxlbmd0aDt0KyspYS5wdXNoKGUuZm9yY2VPdmVybGF5UGFuZVZpZXdzW3RdKTt0aGlzLl9tb2RlbC5saWdodFVwZGF0ZSgpLHRoaXMuX2dyYXBoaWNzVmlld3NSZWFkeT0hMH0pKSxyLmFyZWFCYWNrZ3JvdW5kJiYoKDAsaC5hc3NlcnQpKCFzLCIndXNlUGxvdHNaT3JkZXInIGZsYWcgZG9lcyBub3Qgc3VwcG9ydGVkIiksaS5zZXQoaS5zaXplLHtwYW5lVmlld3M6W25ldyBCdC5BcmVhQmFja2dyb3VuZFBhbmVWaWV3KHRoaXMsdGhpcy5tb2RlbCgpKV19KSk7Y29uc3Qgbz1BcnJheS5mcm9tKGkua2V5cygpKS5zb3J0KCgoZSx0KT0+ZS10KSk7Zm9yKGxldCBlPTA7ZTxvLmxlbmd0aDtlKyspe2NvbnN0IHQ9KDAsaC5lbnN1cmVEZWZpbmVkKShpLmdldChvW2VdKSk7dGhpcy5fcGFuZVZpZXdzLnB1c2goLi4udC5wYW5lVmlld3MpLHQubGFiZWxWaWV3JiZ0aGlzLl9sYWJlbFBhbmVWaWV3cy5wdXNoKHQubGFiZWxWaWV3KSx0LnByaWNlQXhpc1ZpZXcmJnRoaXMuX3ByaWNlQXhpc1ZpZXdzQmFzZS5wdXNoKHQucHJpY2VBeGlzVmlldyksdC5wcmljZUxpbmVBeGlzVmlldyYmdGhpcy5fcHJpY2VMaW5lc0F4aXNWaWV3cy5wdXNoKHQucHJpY2VMaW5lQXhpc1ZpZXcpfXRoaXMuX2RhdGFXaW5kb3dWaWV3fHwodGhpcy5fZGF0YVdpbmRvd1ZpZXc9bmV3IEd0LlN0dWR5RGF0YVdpbmRvd1ZpZXcodGhpcyx0aGlzLl9tb2RlbCkpLHRoaXMuX2xlZ2VuZFZpZXd8fCh0aGlzLl9sZWdlbmRWaWV3PW5ldyBYKHRoaXMsdGhpcy5fbW9kZWwpKSx0aGlzLl9zdGF0dXNWaWV3fHwodGhpcy5fc3RhdHVzVmlldz1uZXcgZWUuU3R1ZHlTdGF0dXNWaWV3KHRoaXMpKSx0aGlzLl9mbG9hdGluZ1Rvb2x0aXBWaWV3fHwodGhpcy5fZmxvYXRpbmdUb29sdGlwVmlldz10aGlzLl9jcmVhdGVkQ2hhcnRGbG9hdGluZ1Rvb2x0aXBWaWV3KCkpLHRoaXMuX2NvbmNhdFByaWNlQXhpc1ZpZXdzKCl9X2NyZWF0ZWRDaGFydEZsb2F0aW5nVG9vbHRpcFZpZXcoKXtyZXR1cm4gbmV3IGp0LlN0dWR5Q2hhcnRGbG9hdGluZ1Rvb2x0aXBWaWV3KHRoaXMsdGhpcy5fbW9kZWwpfV9vbkRhdGEoZSl7c3dpdGNoKGUubWV0aG9kKXtjYXNlInN0dWR5X2xvYWRpbmciOnRoaXMuX29uU3R1ZHlMb2FkaW5nKGUudGltZSk7YnJlYWs7Y2FzZSJzdHVkeV9lcnJvciI6dGhpcy5fb25TdHVkeUVycm9yKGUucGFyYW1zWzJdKTticmVhaztjYXNlInN0dWR5X2NvbXBsZXRlZCI6aWYoIXRoaXMuX2NoZWNrVHVybmFyb3VuZChlLnBhcmFtc1sxXSkpcmV0dXJuO3RoaXMuX29uU3R1ZHlDb21wbGV0ZWQoZS50aW1lKTticmVhaztjYXNlImRhdGFfdXBkYXRlIjppZihlLnBhcmFtcy5jdXN0b21JZCE9PXRoaXMuc291cmNlSWQoKXx8IXRoaXMuX2NoZWNrVHVybmFyb3VuZChlLnBhcmFtcy50dXJuYXJvdW5kKSlyZXR1cm47KDAsaC5hc3NlcnQpKCEhZS5wYXJhbXMubm9uc2VyaWVzLCJkYXRhLnBhcmFtcy5ub25zZXJpZXMgaXMgbWlzc2luZyIpLHRoaXMuX29uRGF0YVVwZGF0ZShlLnBhcmFtcy5wbG90cywoMCxoLmVuc3VyZURlZmluZWQpKGUucGFyYW1zLm5vbnNlcmllcyksZS5wYXJhbXMubGFzdEJhcik7YnJlYWs7Y2FzZSJjbGVhcl9kYXRhIjp0aGlzLl9jaGVja1R1cm5hcm91bmQoZS5wYXJhbXMudHVybmFyb3VuZCkmJnRoaXMuY2xlYXJEYXRhKCl9fV9nZXRUZWxlbWV0cnlPYmplY3ROYW1lKCl7cmV0dXJuInN0dWR5In1fb25EYXRhVXBkYXRlZChlLHQscyxpKXtpZih0aGlzLmhhc0JhckNvbG9yZXIoKSYmZS5sZW5ndGg+MCl7Y29uc3QgdD0oMCxoLmVuc3VyZU5vdE51bGwpKHRoaXMuYmFyQ29sb3JlcigpKS5maXJzdENvbG9yZWRCYXIoZVswXS5pbmRleCk7bnVsbCE9PXQmJnRoaXMuX21vZGVsLm1haW5TZXJpZXMoKS5pbnZhbGlkYXRlQmFyU3R5bGVzQ2FjaGUodCl9bnVsbCE9PXQmJnRoaXMuX3Bvc3RQcm9jZXNzR3JhcGhpY3MoKTtjb25zdCByPXRoaXMuX21vZGVsLnBhbmVGb3JTb3VyY2UodGhpcyk7aWYodGhpcy5fbW9kZWwucmVjYWxjdWxhdGVQYW5lKHIsKDAsSi5zb3VyY2VDaGFuZ2VFdmVudCkoe3NvdXJjZUlkOnRoaXMuaWQoKSxmaXJzdFVwZGF0ZWRUaW1lUG9pbnRJbmRleDppPz92b2lkIDAsbm9uU2VyaWVzT25seTowPT09ZS5sZW5ndGh9KSksdGhpcy5fdXBkYXRlU291cmNlcygpLGUubGVuZ3RoKXtjb25zdCB0PWVbZS5sZW5ndGgtMV0uaW5kZXgscz1lWzBdLmluZGV4O3RoaXMuX2RhdGFSYW5nZVVwZGF0ZWQuZmlyZSh7dHlwZToicGFydGlhbCIsc3RhcnRJbmRleDpzLGVuZEluZGV4OnR9KX1lbHNlIHRoaXMuZGF0YSgpLmlzRW1wdHkoKSYmdGhpcy5fZGF0YVJhbmdlVXBkYXRlZC5maXJlKHt0eXBlOiJmdWxsIn0pfV90aXRsZUlucHV0cyhlLHQscyl7cmV0dXJuIHRoaXMuaW5wdXRzKHRoaXMuX3RpdGxlSW5wdXRzT3B0aW9ucyhlLHQscykpfV90aXRsZUlucHV0c09wdGlvbnMoZSx0LHMpe3JldHVybntzeW1ib2xzRm9yRGlzcGxheTohMCxza2lwSGlkZGVuSW5wdXRzOiEwLHNraXBGYWtlSW5wdXRzOiExLGZha2VJbnB1dHNGb3JEaXNwbGF5OiEwLGFzT2JqZWN0OiEwLHNraXBwZWRHcm91cHM6W10sc2tpcHBlZElucHV0czp0aGlzLl9za2lwcGVkVGl0bGVJbnB1dHMoKSxub0V4Y2hhbmdlczp0LG5vUmVzb2x1dGlvbjpzLHByaWNlSW5wdXRzRm9yRGlzcGxheTohMCxza2lwT3B0aW9uYWxFbXB0eVN5bWJvbElucHV0czpBcyxkaXNwbGF5TWFzazplfX1fcG9zdFByb2Nlc3NHcmFwaGljcygpewp0aGlzLl9ncmFwaGljc1ByaWNlQXhpc1ZpZXdzPXRoaXMuX2NyZWF0ZUdyYXBoaWNzUHJpY2VBeGlzVmlld3MoKSx0aGlzLl9jb25jYXRQcmljZUF4aXNWaWV3cygpfWFzeW5jIF9jcmVhdGVHcmFwaGljc1BhbmVWaWV3cygpe3JldHVybigwLEsuY3JlYXRlR3JhcGhpY3NQYW5lVmlld3MpKHRoaXMsdGhpcy5tb2RlbCgpKX1fY3JlYXRlR3JhcGhpY3NQcmljZUF4aXNWaWV3cygpe3JldHVybigwLEsuY3JlYXRlR3JhcGhpY3NQcmljZUF4aXNWaWV3cykodGhpcyl9X3N1YnNjcmliZVRvU2Vzc2lvbklkKCl7IXRoaXMuX2lzU3Vic2NyaWJlZFRvU2Vzc2lvbklkJiZ0aGlzLmhhc1N5bWJvbElucHV0cygpJiYodGhpcy5zZXNzaW9uSWRDaGFuZ2VkKCkuc3Vic2NyaWJlKHRoaXMsdGhpcy5fb25TZXNzaW9uSWRDaGFuZ2VkKSx0aGlzLl9pc1N1YnNjcmliZWRUb1Nlc3Npb25JZD0hMCl9X3JlY3JlYXRlRm9ybWF0dGVyKGUpe2xldCB0PWU7aWYodCl7Y29uc3QgZT10aGlzLl9tb2RlbC5zeW1ib2xBbGlhc1NlcnZpY2UoKT8uZ2V0QWxpYXNCeVByb05hbWUodC5wcm9fbmFtZSk7ZSYmKHQ9KDAsbi5kZWZhdWx0KSh0KSwoMCxhLmRlZmF1bHQpKHQsZS5mb3JtYXR0aW5nT3B0aW9ucz8/e30pKX10aGlzLl9yZWNyZWF0ZVBsb3RzRm9ybWF0dGVycyh0KSx0aGlzLl9mb3JtYXR0ZXI9dGhpcy5fdHJ5Q3JlYXRlRm9ybWF0dGVyKHQpLHRoaXMuX2RlZmF1bHRGb3JtYXR0ZXI9dGhpcy5fdHJ5Q3JlYXRlRGVmYXVsdEZvcm1hdHRlcih0KSx0aGlzLl9mb3JtYXR0ZXJDaGFuZ2VkLmZpcmUoKTtjb25zdCBzPXRoaXMucHJpY2VTY2FsZSgpO251bGwhPT1zJiZzLnVwZGF0ZUZvcm1hdHRlcigpLHRoaXMuZ2V0QWxsQ2hpbGRyZW4oKS5mb3JFYWNoKChlPT57ZS5yZWNyZWF0ZVByaWNlRm9ybWF0dGVyKCl9KSksdGhpcy5fbW9kZWwuZnVsbFVwZGF0ZSgpfV9yZWNyZWF0ZVByaWNlRm9ybWF0dGluZ0RlcGVuZGVuY2llcyhlKXt0aGlzLl9yZWNyZWF0ZUZvcm1hdHRlcihlKSx0aGlzLl9yZWNyZWF0ZVByaWNlU3RlcCgpfV90aXRsZShlLHQscyxpLHIsbil7Y29uc3QgYT10aGlzLl90aXRsZUluUGFydHMoZSx0LHMsaSxyLG4pO3JldHVybiB0aGlzLl9qb2luVGl0bGVzUGFydHMoYSl9X2dldFNwbGl0VGl0bGUoZSl7dGhyb3cgbmV3IEVycm9yKCJnZXRTcGxpdFRpdGxlIGlzIG9ubHkgZGVmaW5lZCBmb3Igc3ltYm9sIHNvdXJjZXMgKGNvbXBhcmUvb3ZlcmxheSBzdHVkaWVzKSIpfV9wb3N0UHJvY2Vzc1ByaWNlUmFuZ2UoZSx0KXtpZihlJiZlLm1pblZhbHVlKCk9PT1lLm1heFZhbHVlKCkmJiF0aGlzLm1ldGFJbmZvKCkuaXNfcHJpY2Vfc3R1ZHkpe2NvbnN0IHQ9LjAwNSplLm1pblZhbHVlKCk7ZT1uZXcgai5QcmljZVJhbmdlKGUubWluVmFsdWUoKS10LGUubWF4VmFsdWUoKSt0KX1jb25zdCBzPXQudGFyZ2V0UHJpY2VTY2FsZTtyZXR1cm4gcyYmcy5pc0xvZygpJiZlP25ldyBqLlByaWNlUmFuZ2Uocy5wcmljZVRvTG9naWNhbChlLm1pblZhbHVlKCkpLHMucHJpY2VUb0xvZ2ljYWwoZS5tYXhWYWx1ZSgpKSk6ZX1fdGl0bGVJblBhcnRzKGUsdD0hMCxpLHIsbixhKXtjb25zdCBvPVtWLnQodGhpcy5uYW1lKHQpLHtjb250ZXh0OiJzdHVkeSJ9LHMoODg0NjkzKSldO2xldCBsPVtdO2lmKCFyfHwoMCxJLmlzRmVhdHVyZXNldEVuYWJsZWQpKCJhbHdheXNfc2hvd19zdHVkeV9zeW1ib2xfaW5wdXRfdmFsdWVzX2luX2xlZ2VuZCIpKXtjb25zdCBzPXRoaXMuX2dldE1URlJlc29sdXRpb25JbnB1dFRpdGxlKCk7bnVsbCE9PXMmJnMubGVuZ3RoPjAmJm8ucHVzaChzKTtsPSh0aGlzLmlucHV0c0luUGFydHMoZSx0LGksbixhKT8/W10pLm1hcCgoZT0+ZS52YWx1ZSkpfXJldHVybiBlPT09Vy5UaXRsZURpc3BsYXlUYXJnZXQuU3RhdHVzTGluZSYmdGhpcy5fc2hvd1BpbmVWZXJzaW9uSW5TdGF0dXNMaW5lLnZhbHVlKCkmJm8ucHVzaCgoMCxoLmVuc3VyZURlZmluZWQpKHRoaXMuX21ldGFJbmZvLnZhbHVlKCkucGluZSkudmVyc2lvbiksW28uam9pbigiIMK3ICIpLGxdfV9zZXJpZXNEYXRhUmFuZ2VUb1NhdmUoZSl7cmV0dXJuIHRoaXMuX21vZGVsLnRpbWVTY2FsZSgpLnZpc2libGVFeHRlbmRlZERhdGFSYW5nZShlLDApfV9nZXRTeW1ib2xGb3JSZXNvbHZlKGUpe3JldHVybiB0aGlzLmdldFN5bWJvbFN0cmluZyh0aGlzLl9nZXRTeW1ib2xGb3JBcGkoZSkpfV9nZXRTeW1ib2xGb3JBcGkoZSl7cmV0dXJuIGV9X2dldFN5bWJvbE9iamVjdChlLHQpe2NvbnN0IHM9e3N5bWJvbDplfSxpPXRoaXMuY3VycmVuY3koKTtyZXR1cm4gbnVsbCE9PXRoaXMuX2N1cnJlbmN5U291cmNlU3ltYm9sSW5wdXRQcm9wZXJ0eSYmbnVsbCE9PXRoaXMuX2N1cnJlbmN5VW5pdFNvdXJjZVN5bWJvbEluZm8udmFsdWUoKSYmdGhpcy5fZ2V0U3ltYm9sRm9yQXBpKHRoaXMuX2N1cnJlbmN5U291cmNlU3ltYm9sSW5wdXRQcm9wZXJ0eS52YWx1ZSgpKT09PWUmJihzWyJjdXJyZW5jeS1pZCJdPWkpLHMuc2Vzc2lvbj10aGlzLnNlc3Npb25JZCgpLHN9X29uU3ltYm9sUmVzb2x2ZWQoZSx0LHMpe3tjb25zdCBlPSgwLGguZW5zdXJlTm90TnVsbCkodGhpcy5fbW9kZWwuYWxlcnRzV2F0Y2hlcigpKTtlLnN5bmNTb3VyY2VBbGVydExhYmVscyh0aGlzKTtjb25zdCB0PXRoaXMuZ2V0QWxsQ2hpbGRyZW4oKTtmb3IoY29uc3QgcyBvZiB0KWUuc3luY1NvdXJjZUFsZXJ0TGFiZWxzKHMpfXRoaXMuX29uQ3VycmVuY3lNYXlDaGFuZ2UoKX1fb25TeW1ib2xSZXNvbHZpbmdTdGFydChlLHQpe31fb25TeW1ib2xFcnJvcigpe31fc2V0U3RhdHVzKGUsdCl7Y29uc3Qgcz10aGlzLmlzRmFpbGVkKCk7dGhpcy5fc3RhdHVzLnNldFZhbHVlKGUpLGUudHlwZT09PVp0LlN0dWR5U3RhdHVzVHlwZS5Db21wbGV0ZWQ/dGhpcy5fd2FzQ29tcGxldGVkQmVmb3JlPSEwOmUudHlwZSE9PVp0LlN0dWR5U3RhdHVzVHlwZS5FcnJvciYmZS50eXBlIT09WnQuU3R1ZHlTdGF0dXNUeXBlLlVuZGVmaW5lZHx8KHRoaXMuX3dhc0NvbXBsZXRlZEJlZm9yZT0hMSksdHx8KHRoaXMuX3N0YXR1c1ZpZXc/LnVwZGF0ZSgoMCxKLnNvdXJjZUNoYW5nZUV2ZW50KSh0aGlzLmlkKCkpKSwKdGhpcy5fbW9kZWwudXBkYXRlU291cmNlKHRoaXMpLHRoaXMuX3N0YXR1c0NoYW5nZWQuZmlyZSh0aGlzLnN0YXR1cygpKSkscyE9PXRoaXMuaXNGYWlsZWQoKSYmdGhpcy5fdXBkYXRlQWxlcnRDcmVhdGlvbkF2YWlsYWJsZSgpfV9vblByb3BlcnRpZXNDaGFuZ2VkKCl7dGhpcy5fcmVzdGFydGluZ3x8KHRoaXMuX2lucHV0cz90aGlzLl90cnlDaGFuZ2VJbnB1dHMoKTp0aGlzLl9jaGFydEFwaSYmdGhpcy5fY2hhcnRBcGkuaXNDb25uZWN0ZWQoKS52YWx1ZSgpJiZ0aGlzLnJlc3RhcnQoKSk7Y29uc3QgZT10aGlzLl9tZXRhSW5mby52YWx1ZSgpO2UuaXNUVlNjcmlwdCYmZS5UVlNjcmlwdE1ldGFJbmZvRXhwcnMmJiF0aGlzLl9tb2RlbC5pc1NuYXBzaG90KCkmJih0aGlzLl9yZXN0YXJ0aW5nP3RoaXMuX2RlZmVycmVkUGluZVBhdGNoUHJvcHM9ITA6dGhpcy5fcGluZVBhdGNoUHJvcHMoKSksdGhpcy5fcmVjcmVhdGVQYW5lVmlld3MoKSwoMCxscy5lbWl0KSgic3R1ZHlfcHJvcGVydGllc19jaGFuZ2VkIix0aGlzLl9pZC52YWx1ZSgpKX1fbGFzdE5vbkVtcHR5UGxvdFJvdyhlKXtpZighKDAsdS5pc0ludGVnZXIpKGUpKXJldHVybiBTcy5sb2dEZWJ1ZygiX2xhc3ROb25FbXB0eVBsb3RSb3c6IGluY29ycmVjdCBwbG90SW5kZXgiKSxudWxsO2xldCB0PXRoaXMuX2xhc3ROb25FbXB0eVBsb3RSb3dDYWNoZVtlXT8/bnVsbDtpZihudWxsIT09dClyZXR1cm4gdDtyZXR1cm4gdD10aGlzLmRhdGEoKS5maW5kTGFzdCgoKHQscyk9PnZvaWQgMCE9PXNbZV0pLDFlMyksbnVsbD09PXQ/bnVsbDoodGhpcy5fbGFzdE5vbkVtcHR5UGxvdFJvd0NhY2hlW2VdPXQsdCl9X29uQ3VycmVuY3lDaGFuZ2VkKCl7ImFsd2F5c09mZiIhPT0oMCxzcy5jdXJyZW5jeVVuaXRNZXRyaWNWaXNpYmlsaXR5UHJvcGVydHkpKCkudmFsdWUoKSYmdGhpcy5fbW9kZWwuZnVsbFVwZGF0ZSgpLHRoaXMuaXNTdGFydGVkKCkmJnRoaXMuX3RyeUNoYW5nZUlucHV0cygpLHRoaXMuX2N1cnJlbmN5Q2hhbmdlZC5maXJlKCl9X2FwaUlucHV0cygpe3JldHVybiB0aGlzLmlucHV0cyh7a2VlcE9wdGlvbmFsU3ltYm9sc0VtcHR5OiEwfSl9YXN5bmMgX3RyeUNoYW5nZUlucHV0cygpe2NvbnN0IGU9dGhpcy5pc1N0YXJ0ZWQoKSYmdGhpcy5fY2hhcnRBcGkuaXNDb25uZWN0ZWQoKS52YWx1ZSgpLHQ9dGhpcy5fYWxsSW5wdXRzQXJlVmFsaWQoKSxzPSgwLGguZW5zdXJlRGVmaW5lZCkoKDAsdS5jbG9uZSkodGhpcy5faW5wdXRzKSksaT10aGlzLl9hcGlJbnB1dHMoKSxyPUpTT04uc3RyaW5naWZ5KGkpLG49ciE9PUpTT04uc3RyaW5naWZ5KHRoaXMuX2lucHV0cyk7aWYoZSYmdCl0cnl7aWYoYXdhaXQgdGhpcy5fYWxsU3ltYm9sc0FyZVJlc29sdmVkKCksciE9PUpTT04uc3RyaW5naWZ5KHRoaXMuX2FwaUlucHV0cygpKSlyZXR1cm4gdGhpcy5fdHJ5Q2hhbmdlSW5wdXRzKCk7aWYodGhpcy5faXNTdG9wcGVkKCkpcmV0dXJuIHZvaWQobiYmdGhpcy5kaXNhYmxlUHJpY2VSYW5nZVJlYWR5KCkpO24mJihhd2FpdCB0aGlzLl9jaGFuZ2VJbnB1dHNJbXBsKGksKDAsaC5lbnN1cmVEZWZpbmVkKSgoMCx1LmNsb25lKSh0aGlzLl9pbnB1dHMpKSksKDAsaC5lbnN1cmVOb3ROdWxsKSh0aGlzLm1vZGVsKCkuYWxlcnRzV2F0Y2hlcigpKS5zeW5jU291cmNlQWxlcnRMYWJlbHModGhpcykpfWNhdGNoKGUpe1NzLmxvZ0Vycm9yKGBFUlJPUjogJHt0aGlzLl9kZWJ1Z0lkKCl9IF90cnlDaGFuZ2VJbnB1dHM6IGNhbm5vdCBtb2RpZnkgc3R1ZHksICR7ZX1gKX1lbHNlIGlmKGUmJiF0JiZ0aGlzLnN0b3AoITApLCFlJiZ0JiZ0aGlzLnN0YXJ0KCEwKSxuKXtjb25zdCBlPXRoaXMuX2NhbGNTb3VyY2VzKCksdD1rcyh0aGlzLl9tZXRhSW5mby52YWx1ZSgpLGkscyk7dGhpcy5fdXBkYXRlUGFyZW50U291cmNlcyhlLHQsITApLHRoaXMuX2lucHV0cz1pfXRoaXMuX3RhZ3NDaGFuZ2VkLmZpcmUoKX1fb25DdXJyZW5jeU1heUNoYW5nZSgpe2lmKG51bGwhPT10aGlzLl9jdXJyZW5jeVNvdXJjZVN5bWJvbElucHV0UHJvcGVydHkpe2NvbnN0IGU9dGhpcy5jdXJyZW5jeSgpO3RoaXMuX3VwZGF0ZUN1cnJlbmN5U291cmNlU3ltYm9sSW5mbygpLGUhPT10aGlzLmN1cnJlbmN5KCkmJnRoaXMuX29uQ3VycmVuY3lDaGFuZ2VkKCl9fV9maWxsUHJlY2FsY3VsYXRlZEF1dG9zY2FsZUluZm8oZSl7Y29uc3QgdD10aGlzLl9tZXRhSW5mby52YWx1ZSgpLHM9dGhpcy5wcm9wZXJ0aWVzKCkuY2hpbGRzKCksaT1uZXcgU2V0LHI9dC5maWxsZWRBcmVhc3x8W107Zm9yKGxldCBlPTA7ZTxyLmxlbmd0aDtlKyspe2NvbnN0IHQ9cltlXTtzLmZpbGxlZEFyZWFzU3R5bGUuY2hpbGRzKClbdC5pZF0uY2hpbGRzKCkudmlzaWJsZS52YWx1ZSgpJiYoaS5hZGQodC5vYmpBSWQpLGkuYWRkKHQub2JqQklkKSl9cmV0dXJuIHQucGxvdHMuZmlsdGVyKChlPT4hKDAsWi5pc1Bsb3RXaXRoVGVjaG5pY2FsVmFsdWVzKShlKSkpLmZpbHRlcigocz0+dC5pc1Bsb3RGb3JjZU92ZXJsYXkocy5pZCk/ZS50YXJnZXRQcmljZVNjYWxlPT09dGhpcy5fbW9kZWwubWFpblNlcmllcygpLnByaWNlU2NhbGUoKTplLnRhcmdldFByaWNlU2NhbGU9PT10aGlzLnByaWNlU2NhbGUoKSYmIWUuZm9yY2VPdmVybGF5T25seSkpLmZpbHRlcigoZT0+aS5oYXMoZS5pZCl8fHRoaXMuaXNQbG90VmlzaWJsZUF0KGUuaWQsWi5TdHVkeVBsb3REaXNwbGF5VGFyZ2V0LlBhbmUpKSkucmVkdWNlKCgodCxzKT0+dGhpcy5fYXBwbHlQbG90VG9QcmVjYWxjdWxhdGVkQXV0b3NjYWxlSW5mbyhlLHQscykpLHtmaWVsZHM6W10sdXNlTWFpblNlcmllc1JhbmdlOiExLGJhc2VWYWx1ZU1pbk1heDpudWxsfSl9X2ZpcnN0U291cmNlT3JTZXJpZXMoKXtyZXR1cm4gdGhpcy5fc291cmNlcy52YWx1ZSgpWzBdPz90aGlzLl9zZXJpZXN9X3NraXBIaXN0b2dyYW1CYXNlT25BdXRvU2NhbGUoKXtyZXR1cm4hMX1fdHJ5Q3JlYXRlRm9ybWF0dGVyKGUpe2NvbnN0IHQ9dm9pZCAwPT09ZT90aGlzLnN5bWJvbFNvdXJjZSgpLnN5bWJvbEluZm8oKTplCjtyZXR1cm4gTHModGhpcy5fbWV0YUluZm8udmFsdWUoKS5mb3JtYXQsdGhpcy5fcHJpY2VTY2FsZUJ5UHJvcGVydGllcygpLHQsdGhpcy5wcm9wZXJ0aWVzKCkuY2hpbGRzKCkucHJlY2lzaW9uLnZhbHVlKCkpfV90cnlDcmVhdGVEZWZhdWx0Rm9ybWF0dGVyKGUpe3JldHVybiB0aGlzLl90cnlDcmVhdGVGb3JtYXR0ZXIoZSl9X21lcmdlRGF0YShlKXtyZXR1cm4gdGhpcy5faW52YWxpZGF0ZUxhc3ROb25FbXB0eVBsb3RSb3dDYWNoZSgpLHRoaXMuZGF0YSgpLm1lcmdlKGUpfV9za2lwcGVkVGl0bGVJbnB1dHMoKXtyZXR1cm4gdGhpcy5faGlkZU1hdGNoZXMuZmlsdGVyKChlPT5lLnBsb3RJZHMuZXZlcnkoKGU9PnRoaXMuX2dldFBsb3REaXNwbGF5VmFsdWUoZSk9PT1aLlN0dWR5UGxvdERpc3BsYXlUYXJnZXQuTm9uZSkpKSkubWFwKChlPT5lLmlkKSl9X2dldFBsb3REaXNwbGF5VmFsdWUoZSl7cmV0dXJuIHRoaXMucHJvcGVydGllcygpPy5jaGlsZHMoKT8uc3R5bGVzPy5jaGlsZHMoKT8uW2VdPy5jaGlsZHMoKT8uZGlzcGxheT8udmFsdWUoKX1fb25TdHVkeUVycm9yKGUpe3BlcmZvcm1hbmNlLmNsZWFyTWFya3MoYGNhbGN1bGF0ZV9zdHVkeV8ke3RoaXMuc291cmNlSWQoKX1gKSx0aGlzLl9oYW5kbGVTdHVkeUVycm9yKHRoaXMuX2NyZWF0ZVN0dWR5RXJyb3IoZSkpLHRoaXMuX2VuYWJsZVByaWNlUmFuZ2VSZWFkeSgpfV9vblN0dWR5Q29tcGxldGVkKGUpe2lmKHBlcmZvcm1hbmNlLmdldEVudHJpZXNCeU5hbWUoYGNhbGN1bGF0ZV9zdHVkeV8ke3RoaXMuc291cmNlSWQoKX1gKS5sZW5ndGgpe3RyeXtjb25zdCBlPXBlcmZvcm1hbmNlLm1lYXN1cmUoYG1lYXN1cmVfc3R1ZHlfJHt0aGlzLnNvdXJjZUlkKCl9YCxgY2FsY3VsYXRlX3N0dWR5XyR7dGhpcy5zb3VyY2VJZCgpfWApO3RoaXMuX2NhbGN1bGF0aW9uVGltZS5zZXRWYWx1ZShlLmR1cmF0aW9uKX1jYXRjaChlKXtTcy5sb2dFcnJvcigiRXJyb3IgZHVyaW5nIG1lYXN1cmluZyBzdHVkeSBjYWxjdWxhdGlvbiB0aW1lIil9cGVyZm9ybWFuY2UuY2xlYXJNYXJrcyhgY2FsY3VsYXRlX3N0dWR5XyR7dGhpcy5zb3VyY2VJZCgpfWApLHBlcmZvcm1hbmNlLmNsZWFyTWVhc3VyZXMoYG1lYXN1cmVfc3R1ZHlfJHt0aGlzLnNvdXJjZUlkKCl9YCl9dGhpcy5fc3R1ZHlNb2RpZmllZCYmKHRoaXMuY2xlYXJEYXRhKCksdGhpcy5fc3R1ZHlNb2RpZmllZD0hMSksdGhpcy5fc2VuZFRlbGVtZXRyeUNvdW50ZXIodGhpcy5fZ2V0VGVsZW1ldHJ5T2JqZWN0TmFtZSgpKyJfbG9hZGVkIiksdGhpcy5fc2V0U3RhdHVzKHt0eXBlOlp0LlN0dWR5U3RhdHVzVHlwZS5Db21wbGV0ZWR9KSx0aGlzLl9zdGF0dXNWaWV3Py51cGRhdGUoKDAsSi5zb3VyY2VDaGFuZ2VFdmVudCkodGhpcy5pZCgpKSk7Y29uc3QgdD10aGlzLl9tb2RlbC5wYW5lRm9yU291cmNlKHRoaXMpO3RoaXMuX21vZGVsLnJlY2FsY3VsYXRlUGFuZSh0LCgwLEouc291cmNlQ2hhbmdlRXZlbnQpKHRoaXMuaWQoKSkpLHRoaXMuX3VwZGF0ZVNvdXJjZXMoKTtjb25zdCBzPWVzLkludmFsaWRhdGlvbk1hc2suZnVsbCgpO251bGwhPT10aGlzLl9tb2RlbC5hcHBsaWVkVGltZUZyYW1lKCkudmFsdWUoKSYmcy5sb2NrVmlzaWJsZVRpbWVSYW5nZU9uUmVzaXplKCksdGhpcy5fbW9kZWwuaW52YWxpZGF0ZShzKX1fY2xlYXJEYXRhKCl7dGhpcy5fZGF0YS5jbGVhcigpLHRoaXMuX2RhdGFSYW5nZVVwZGF0ZWQuZmlyZSh7dHlwZToiZnVsbCJ9KX1fbW92ZURhdGEoZSl7dGhpcy5kYXRhKCkubW92ZShlKX1fZGVmYXVsdEVycm9yVGl0bGUoKXtyZXR1cm4iUnVudGltZSBlcnJvciJ9X2hhbmRsZVJlc3RvcmluZ0ZhY3RvcnlEZWZhdWx0cygpe2NvbnN0IGU9dGhpcy5fcHJvcGVydGllcy5zdGF0ZSgpOygwLF9zLmFwcGx5RGVmYXVsdENvbG9yc1RvUHJvcHNTdGF0ZSkoZSx0aGlzLl9tZXRhSW5mby52YWx1ZSgpKSx0aGlzLl9wcm9wZXJ0aWVzLm1lcmdlKGUpfV9pbml0Q3VycmVuY3lNZXRhRGF0YSgpeygwLF8uY29tYmluZSkoKChlLHQscyk9Pntjb25zdCBpPXRoaXMuY3VycmVuY3koKTtpZihudWxsPT09aXx8dC50eXBlPT09WnQuU3R1ZHlTdGF0dXNUeXBlLkVycm9yKXJldHVybiB2b2lkIHRoaXMuX2N1cnJlbmN5TWV0YURhdGEuc2V0VmFsdWUobnVsbCk7aWYoIWV8fG51bGw9PT1zKXJldHVybiB2b2lkIHRoaXMuX2N1cnJlbmN5TWV0YURhdGEuc2V0VmFsdWUocyk7Y29uc3Qgcj1zLm9yaWdpbmFsQ3VycmVuY3k7dGhpcy5fY3VycmVuY3lNZXRhRGF0YS5zZXRWYWx1ZSh7aXNDb252ZXJ0ZWRUb090aGVyQ3VycmVuY3k6aSE9PXIsb3JpZ2luYWxDdXJyZW5jeTpyLGN1cnJlbnRDdXJyZW5jeTppLGlzQ3VycmVuY3lDb252ZXJ0aWJsZTohMCxiYXNlQ3VycmVuY3k6bnVsbCxjdXJyZW5jeU9yaWdpbk5hbWU6dGhpcy50aXRsZShXLlRpdGxlRGlzcGxheVRhcmdldC5TdGF0dXNMaW5lLCEwKX0pfSksdGhpcy5faXNDdXJyZW5jeU9yaWdpbi53ZWFrUmVmZXJlbmNlKCksdGhpcy5fY29tcG91bmRTdGF0dXMud2Vha1JlZmVyZW5jZSgpLCgwLF8uYWNjdW11bGF0ZSkoKGU9PmVbMF0pLCgwLF8uY29tYmluZSkoKCgpPT5bdGhpcy5fZmlyc3RTb3VyY2VPclNlcmllcygpLmN1cnJlbmN5TWV0YWRhdGEoKS53ZWFrUmVmZXJlbmNlKCldKSx0aGlzLl9hbGxPd25lclNvdXJjZXMud2Vha1JlZmVyZW5jZSgpKS5vd25lcnNoaXAoKSkub3duZXJzaGlwKCksKDAsQWUuY3JlYXRlV1ZGcm9tUHJvcGVydHkpKHRoaXMuX2N1cnJlbmN5SW5wdXRQcm9wZXJ0eT8/bmV3IFF0LlByb3BlcnR5KG51bGwpKS5vd25lcnNoaXAoKSl9X2luaXRVbml0TWV0YURhdGEoKXsoMCxfLmNvbWJpbmUpKCgoZSx0LHMpPT57Y29uc3QgaT10aGlzLnVuaXQoKTtpZihudWxsPT09aXx8dC50eXBlPT09WnQuU3R1ZHlTdGF0dXNUeXBlLkVycm9yKXJldHVybiB2b2lkIHRoaXMuX3VuaXRNZXRhRGF0YS5zZXRWYWx1ZShudWxsKTtpZighZXx8bnVsbD09PXMpcmV0dXJuIHZvaWQgdGhpcy5fdW5pdE1ldGFEYXRhLnNldFZhbHVlKHMpO2NvbnN0IHI9cy5vcmlnaW5hbFVuaXQ7dGhpcy5fdW5pdE1ldGFEYXRhLnNldFZhbHVlKHsKaXNDb252ZXJ0ZWRUb090aGVyVW5pdDppIT09cixjdXJyZW50VW5pdDppLG9yaWdpbmFsVW5pdDpyLGNvbnZlcnRpYmxlR3JvdXBzOnMuY29udmVydGlibGVHcm91cHMsdW5pdE9yaWdpbk5hbWU6dGhpcy50aXRsZShXLlRpdGxlRGlzcGxheVRhcmdldC5TdGF0dXNMaW5lLCEwKX0pfSksdGhpcy5faXNVbml0T3JpZ2luLndlYWtSZWZlcmVuY2UoKSx0aGlzLl9jb21wb3VuZFN0YXR1cy53ZWFrUmVmZXJlbmNlKCksKDAsXy5hY2N1bXVsYXRlKSgoZT0+ZVswXSksKDAsXy5jb21iaW5lKSgoKCk9Plt0aGlzLl9maXJzdFNvdXJjZU9yU2VyaWVzKCkudW5pdE1ldGFkYXRhKCkud2Vha1JlZmVyZW5jZSgpXSksdGhpcy5fYWxsT3duZXJTb3VyY2VzLndlYWtSZWZlcmVuY2UoKSkub3duZXJzaGlwKCkpLm93bmVyc2hpcCgpLCgwLEFlLmNyZWF0ZVdWRnJvbVByb3BlcnR5KSh0aGlzLl91bml0SW5wdXRQcm9wZXJ0eT8/bmV3IFF0LlByb3BlcnR5KG51bGwpKS5vd25lcnNoaXAoKSl9X2NyZWF0ZVN0dWR5RXJyb3IoZSl7bGV0IHQ7cmV0dXJuIHQ9KDAsdS5pc1N0cmluZykoZSk/e2Vycm9yOnRoaXMuX2dldFN0dWR5RXJyb3JUZXh0KGUpLHRpdGxlOmUuaW5jbHVkZXMoInN0dWR5X25vdF9hdXRoIik/IkFjY2VzcyBlcnJvciI6dGhpcy5fZGVmYXVsdEVycm9yVGl0bGUoKX06ey4uLmUsdGl0bGU6ZS50aXRsZT8/dGhpcy5fZGVmYXVsdEVycm9yVGl0bGUoKX0sKDAsWnQuY3JlYXRlU3R1ZHlFcnJvcikodCx0aGlzLnN5bWJvbFNvdXJjZSgpLnN5bWJvbEluZm8oKT8uZXhjaGFuZ2UpfV9pbmNyZW1lbnRUdXJuYXJvdW5kKCl7dGhpcy5fdHVybmFyb3VuZD0ic3QiKyArK3RoaXMuX3R1cm5hcm91bmRDb3VudGVyfV9jaGVja1R1cm5hcm91bmQoZSl7cmV0dXJuIGU9PT10aGlzLl90dXJuYXJvdW5kfHxlPT09dGhpcy5fbW9kZWwubWFpblNlcmllcygpLnNlcmllc1NvdXJjZSgpLnR1cm5hcm91bmQoKXx8ZT09PXRoaXMudHVybmFyb3VuZCghMCl9X3VwZGF0ZU1heE9mZnNldFZhbHVlKCl7bGV0IGU9LTEvMDtmb3IoY29uc3QgdCBvZiB0aGlzLl9tZXRhSW5mby52YWx1ZSgpLnBsb3RzKWU9TWF0aC5tYXgodGhpcy5vZmZzZXQodC5pZCksZSk7dGhpcy5fbWF4T2Zmc2V0LnNldFZhbHVlKGUpfV9yaWdodE9mZnNldFRvVW5peFRpbWUoZSl7aWYodGhpcy5fc2VyaWVzLmJhcnMoKS5zaXplKCk+PWUpe2NvbnN0IHQ9KDAsaC5lbnN1cmVOb3ROdWxsKSh0aGlzLl9zZXJpZXMuYmFycygpLmxhc3RJbmRleCgpKS1lO3JldHVybigwLGguZW5zdXJlTm90TnVsbCkodGhpcy5fc2VyaWVzLmJhcnMoKS52YWx1ZUF0KHQpKVswXX1yZXR1cm4gbnVsbH1fY29uY2F0UHJpY2VBeGlzVmlld3MoKXt0aGlzLl9wcmljZUF4aXNWaWV3cz1bLi4udGhpcy5fcHJpY2VBeGlzVmlld3NCYXNlLC4uLnRoaXMuX2dyYXBoaWNzUHJpY2VBeGlzVmlld3NdfV9vblN0dWR5TG9hZGluZyhlKXt0aGlzLl9zZXRTdGF0dXMoe3R5cGU6WnQuU3R1ZHlTdGF0dXNUeXBlLkxvYWRpbmcsc3RhcnRUaW1lOkRhdGUubm93KCl9KSx0aGlzLl9zdGF0dXNWaWV3Py51cGRhdGUoKDAsSi5zb3VyY2VDaGFuZ2VFdmVudCkodGhpcy5pZCgpKSksdGhpcy5fbW9kZWwudXBkYXRlU291cmNlKHRoaXMpfV9oYW5kbGVTdHVkeUVycm9yKGUpe3RoaXMuY2xlYXJEYXRhKCksdGhpcy5fc2V0U3RhdHVzKGUpO3tjb25zdCB0PSgwLFp0LmNvbnZlcnRTdHVkeVN0YXR1c1RvU3RyaW5nKShlKSxzPXRoaXMuX2dldFRlbGVtZXRyeUFkZGl0aW9uYWxEYXRhKCksaT10LmluZGV4T2YoIkNvbW1hbmQgaW5mbyIpO3MucmVhc29uPWk+PTA/dC5zbGljZSgwLGkpLnRyaW0oKTp0O2lmKCEvc3R1ZHkgaW4gZXJyb3Igc3RhdGV8dGhlIGRhdGEgdmVuZG9yIGRvZXNuXCd0IHByb3ZpZGUgdm9sdW1lIGRhdGEgZm9yIHRoaXMgc3ltYm9sLnxlcnJvciBpbiBzZXJpZXN8dW5zdXBwb3J0ZWQgcmVzb2x1dGlvbi9naS50ZXN0KHMucmVhc29uPy50b0xvd2VyQ2FzZSgpPz8iIikpe2NvbnN0IGU9dGhpcy5fZ2V0VGVsZW1ldHJ5T2JqZWN0TmFtZSgpO3RoaXMuX3NlbmRUZWxlbWV0cnlDb3VudGVyKGUrIl9lcnJvciIscyl9fXRoaXMuX3N0YXR1c1ZpZXc/LnVwZGF0ZSgoMCxKLnNvdXJjZUNoYW5nZUV2ZW50KSh0aGlzLmlkKCkpKSx0aGlzLl9tb2RlbC51cGRhdGVTb3VyY2UodGhpcyl9X3VwZGF0ZVNvdXJjZXMoKXt0aGlzLl9tb2RlbC51cGRhdGVTb3VyY2UodGhpcyksdGhpcy5oYXNCYXJDb2xvcmVyKCkmJnRoaXMuX21vZGVsLnVwZGF0ZVNvdXJjZSh0aGlzLl9tb2RlbC5tYWluU2VyaWVzKCkpfV91bnN1YnNjcmliZVRvU2Vzc2lvbklkKCl7dGhpcy5faXNTdWJzY3JpYmVkVG9TZXNzaW9uSWQmJih0aGlzLnNlc3Npb25JZENoYW5nZWQoKS51bnN1YnNjcmliZSh0aGlzLHRoaXMuX29uU2Vzc2lvbklkQ2hhbmdlZCksdGhpcy5faXNTdWJzY3JpYmVkVG9TZXNzaW9uSWQ9ITEpfV9vblNlc3Npb25JZENoYW5nZWQoKXt0aGlzLnJlc3RhcnQoITApfV9yZWNyZWF0ZVByaWNlU3RlcCgpe2xldCBlPW51bGw7Y29uc3QgdD10aGlzLl9wcmljZVNjYWxlQnlQcm9wZXJ0aWVzKCk/P3RoaXMuX3ByaWNlU2NhbGVCeU1ldGFJbmZvKCk7bnVsbCE9PXQmJihlPTEvdCksdGhpcy5fcHJpY2VTdGVwIT09ZSYmKHRoaXMuX3ByaWNlU3RlcD1lLHRoaXMuX3ByaWNlU3RlcENoYW5nZWQuZmlyZSgpKX1fcmVjcmVhdGVQbG90c0Zvcm1hdHRlcnMoZSl7dGhpcy5fcGxvdEZvcm1hdHRlcnMuY2xlYXIoKTtjb25zdCB0PXRoaXMuX21ldGFJbmZvLnZhbHVlKCkscz10LmZvcm1hdCxpPXRoaXMuX3ByaWNlU2NhbGVCeVByb3BlcnRpZXMoKSxyPXZvaWQgMD09PWU/dGhpcy5zeW1ib2xTb3VyY2UoKS5zeW1ib2xJbmZvKCk6ZTtmb3IoY29uc3RbZSxuXW9mIE9iamVjdC5lbnRyaWVzKHQub2hsY1Bsb3RzPz97fSkpaWYobj8uZm9ybWF0KXtjb25zdCB0PUxzKEVzKHsuLi5zLC4uLm4/LmZvcm1hdH0pLGkscix0aGlzLnByb3BlcnRpZXMoKS5jaGlsZHMoKS5wcmVjaXNpb24udmFsdWUoKSk7dCYmdGhpcy5fcGxvdEZvcm1hdHRlcnMuc2V0KGUsdCl9CmZvcihjb25zdFtlLG5db2YgT2JqZWN0LmVudHJpZXModC5zdHlsZXM/P3t9KSlpZihuPy5mb3JtYXQpe2NvbnN0IHQ9THMoRXMoey4uLnMsLi4ubj8uZm9ybWF0fSksaSxyLHRoaXMucHJvcGVydGllcygpLmNoaWxkcygpLnByZWNpc2lvbi52YWx1ZSgpKTt0JiZ0aGlzLl9wbG90Rm9ybWF0dGVycy5zZXQoZSx0KX1mb3IoY29uc3QgZSBvZiB0LnBsb3RzKWlmKCgwLFouaXNPaGxjUGxvdCkoZSkpe2NvbnN0IHQ9dGhpcy5fcGxvdEZvcm1hdHRlcnMuZ2V0KGUudGFyZ2V0KTt0JiZ0aGlzLl9wbG90Rm9ybWF0dGVycy5zZXQoZS5pZCx0KX19X2pvaW5UaXRsZXNQYXJ0cyhlKXtjb25zdCB0PWVbMV0/ZVsxXS5qb2luKCIsICIpOiIiO3JldHVybiBlWzBdKyh0Lmxlbmd0aD4wPyIgKCIrdCsiKSI6IiIpfV9nZXRNVEZSZXNvbHV0aW9uSW5wdXRUaXRsZSgpe2NvbnN0IGU9dGhpcy5tZXRhSW5mbygpO2ZvcihsZXQgdD0wO3Q8ZS5pbnB1dHMubGVuZ3RoO3QrKyl7Y29uc3Qgcz1lLmlucHV0c1t0XTtpZigicmVzb2x1dGlvbiI9PT1zLnR5cGUmJnMuaXNNVEZSZXNvbHV0aW9uKXJldHVybigwLGguZW5zdXJlRGVmaW5lZCkodGhpcy5fcHJvcGVydGllcy5jaGlsZHMoKS5pbnB1dHMuY2hpbGQocy5pZCkpLnZhbHVlKCl9cmV0dXJuIG51bGx9X29uRGF0YVVwZGF0ZShlLHQscyl7dGhpcy5fc3R1ZHlNb2RpZmllZCYmKHRoaXMuY2xlYXJEYXRhKCksdGhpcy5fc3R1ZHlNb2RpZmllZD0hMSk7Y29uc3QgaT0ocj10LmQsKDAseC51bnBhY2tOb25TZXJpZXNEYXRhQ29tcHJlc3NlZCkocikpO3ZhciByO3JldHVybiB0aGlzLl9vbmdvaW5nRGF0YVVwZGF0ZT10aGlzLl9vbmdvaW5nRGF0YVVwZGF0ZS50aGVuKCgoKT0+aSksKCgpPT5pKSkudGhlbih0aGlzLl9vbkRhdGFVbnBhY2tlZC5iaW5kKHRoaXMsZSx0LmluZGV4ZXMscykpLHRoaXMuX29uZ29pbmdEYXRhVXBkYXRlfV9hbGxTeW1ib2xzQXJlUmVzb2x2ZWQoKXtjb25zdCBlPXRoaXMuX2lucHV0U3ltYm9scygpLHQ9W107bGV0IHM9ITE7Zm9yKGNvbnN0IGkgb2YgZSl7Y29uc3QgZT10aGlzLl9nZXRTeW1ib2xGb3JSZXNvbHZlKGkpO2lmKCIiIT09ZSlpZih0aGlzLl9yZXNvbHZlZFN5bWJvbHNbZV0pcz0hMDtlbHNle2NvbnN0IHM9dGhpcy5fcmVzb2x2ZVN5bWJvbChlLGkpO3QucHVzaChzKX19aWYoMD09PXQubGVuZ3RoKXtjb25zdCBlPVByb21pc2UucmVzb2x2ZSgpO3JldHVybiBzP2UudGhlbigoKCk9PnRoaXMuX3N5bWJvbHNSZXNvbHZlZC5maXJlKCkpKTplfXJldHVybiBQcm9taXNlLmFsbCh0KS5jYXRjaCgoZT0+KHRoaXMuX2lucHV0U3ltYm9scygpLmluY2x1ZGVzKGUpJiZ0aGlzLnN0b3AoITApLHRoaXMuX3NldFN0YXR1cyh7dHlwZTpadC5TdHVkeVN0YXR1c1R5cGUuRXJyb3IsZXJyb3JEZXNjcmlwdGlvbjp7ZXJyb3I6YnN9fSksdGhpcy5fbW9kZWwudXBkYXRlU291cmNlKHRoaXMpLFByb21pc2UucmVqZWN0KCJJbnZhbGlkIHN5bWJvbCwgIitlKSkpKS50aGVuKCgoKT0+e3RoaXMuX3N5bWJvbHNSZXNvbHZlZC5maXJlKCksdGhpcy5fcmVjaGVja0xpbmVUb29sc0FjdHVhbGl0eSgpfSkpfV9yZXNvbHZlU3ltYm9sKGUsdCl7aWYoIiI9PT1lKXJldHVybiBQcm9taXNlLnJlc29sdmUoKTtsZXQgcz10aGlzLl9wZW5kaW5nUmVzb2x2ZVN5bWJvbHMuZ2V0KGUpO3JldHVybiB2b2lkIDAhPT1zfHwocz1uZXcgUHJvbWlzZSgoKHMsaSk9Pnt0aGlzLl9vblN5bWJvbFJlc29sdmluZ1N0YXJ0KGUsdCksdGhpcy5fY2hhcnRBcGkucmVzb2x2ZVN5bWJvbCgoMCxzZS5tYWtlTmV4dFN5bWJvbElkKSgpLGUsKHI9PntpZih0aGlzLl9pc0Rlc3Ryb3llZClpKCJTdHVkeSBpcyBkZXN0cm95ZWQiKTtlbHNlIHN3aXRjaCh0aGlzLl9wZW5kaW5nUmVzb2x2ZVN5bWJvbHMuZGVsZXRlKGUpLHIubWV0aG9kKXtjYXNlInN5bWJvbF9yZXNvbHZlZCI6e3RoaXMuX3NldFN0YXR1cyh7dHlwZTpadC5TdHVkeVN0YXR1c1R5cGUuVW5kZWZpbmVkfSk7Y29uc3QgaT1yLnBhcmFtc1sxXTt0aGlzLl9yZXNvbHZlZFN5bWJvbHNbZV09aSx0aGlzLl9yZXNvbHZlZFN5bWJvbHNCeUlucHV0W3RdPWksdGhpcy5pbnZhbGlkYXRlVGl0bGVDYWNoZSghMCksdGhpcy5fb25TeW1ib2xSZXNvbHZlZChlLHQsaSkscygpO2JyZWFrfWNhc2Uic3ltYm9sX2Vycm9yIjppZih0aGlzLl9zZXRTdGF0dXMoe3R5cGU6WnQuU3R1ZHlTdGF0dXNUeXBlLkVycm9yLGVycm9yRGVzY3JpcHRpb246e2Vycm9yOnIucGFyYW1zWzFdfX0pLHRoaXMuX29uU3ltYm9sRXJyb3IoKSxyLnBhcmFtc1sxXT09PWllLnBlcm1pc3Npb25EZW5pZWQmJnIucGFyYW1zWzJdKXtpZihyLnBhcmFtc1syXSE9PWllLlN5bWJvbEVycm9yUGVybWlzc2lvbkRlbmllZFJlYXNvbi5TeW1ib2wpcmV0dXJuIHZvaWQgdGhpcy5fcmVzb2x2ZVN5bWJvbChyLnBhcmFtc1syXSx0KS50aGVuKHMpO2lmKHIucGFyYW1zWzNdKXJldHVybiB2b2lkIHRoaXMuX3Jlc29sdmVTeW1ib2woci5wYXJhbXNbM10sdCkudGhlbihzKX10aGlzLl9zZW5kVGVsZW1ldHJ5Q291bnRlcigic3ltYm9sX2Vycm9yIixPYmplY3QuYXNzaWduKHRoaXMuX2dldFRlbGVtZXRyeUFkZGl0aW9uYWxEYXRhKCkse3N5bWJvbDplLHJlYXNvbjpyLnBhcmFtc1sxXX0pKSxpKHQpfX0pKX0pKSx0aGlzLl9wZW5kaW5nUmVzb2x2ZVN5bWJvbHMuc2V0KGUscykpLHN9X3JlY2hlY2tMaW5lVG9vbHNBY3R1YWxpdHkoKXtjb25zdCBlPXRoaXMuX21vZGVsLnBhbmVGb3JTb3VyY2UodGhpcyk7bnVsbCE9PWUmJmUuc291cmNlc0J5R3JvdXAoKS5saW5lU291cmNlc0ZvckFsbFN5bWJvbHMoKS5mb3JFYWNoKChlPT57ZS5vd25lclNvdXJjZSgpPT09dGhpcyYmZS5jYWxjSXNBY3R1YWxTeW1ib2woKX0pKX1fc2VuZFRlbGVtZXRyeUNvdW50ZXIoZSx0KXt2b2lkIDA9PT10JiYodD10aGlzLl9nZXRUZWxlbWV0cnlBZGRpdGlvbmFsRGF0YSgpKTtjb25zdCBzPXtjb3VudDoxLGFkZGl0aW9uYWw6dH07dmUudGVsZW1ldHJ5LnNlbmRDaGFydFJlcG9ydChlLHMpfV9nZXRUZWxlbWV0cnlBZGRpdGlvbmFsRGF0YSgpe2xldCBlPSIiO2NvbnN0IHQ9dGhpcy5fbWV0YUluZm8udmFsdWUoKQo7cmV0dXJuIHQucGluZSYmdC5waW5lLnZlcnNpb24mJnQuc2hvcnRJZC5pbmRleE9mKCJVU0VSIik+PTAmJihlPSJfdiIrdC5waW5lLnZlcnNpb24pLHtzeW1ib2w6dGhpcy5zZXJpZXMoKS5hY3R1YWxTeW1ib2woKSxyZXNvbHV0aW9uOnRoaXMuc2VyaWVzKCkuaW50ZXJ2YWwoKSxzdHVkeTp0LnNob3J0SWQrZX19X29uU291cmNlRm9ybWF0dGVyQ2hhbmdlZCgpe251bGw9PT10aGlzLl9mb3JtYXR0ZXImJihudWxsIT09dGhpcy5fcHJpY2VTY2FsZSYmdGhpcy5fcHJpY2VTY2FsZS51cGRhdGVGb3JtYXR0ZXIoKSx0aGlzLl9mb3JtYXR0ZXJDaGFuZ2VkLmZpcmUoKSl9X29uU291cmNlUHJpY2VTdGVwQ2hhbmdlZCgpe251bGw9PT10aGlzLl9wcmljZVN0ZXAmJnRoaXMuX3ByaWNlU3RlcENoYW5nZWQuZmlyZSgpfV9iYW5kc0ZpcnN0VmFsdWUoZSl7Y29uc3QgdD10aGlzLl9tZXRhSW5mby52YWx1ZSgpO2lmKCF0LmJhbmRzKXJldHVybiBudWxsO2ZvcihsZXQgcz0wO3M8dC5iYW5kcy5sZW5ndGg7cysrKXtjb25zdCB0PSgwLGguZW5zdXJlRGVmaW5lZCkodGhpcy5fcHJvcGVydGllcy5jaGlsZHMoKS5iYW5kcykuY2hpbGRzKClbc107aWYodC5jaGlsZHMoKS52aXNpYmxlLnZhbHVlKCkpe2NvbnN0IHM9dC5jaGlsZHMoKS52YWx1ZS52YWx1ZSgpO2lmKGUmJjA9PT1zKWNvbnRpbnVlO2lmKG51bGwhPT1zKXJldHVybiBzfX1yZXR1cm4gbnVsbH1fcHJlcGFyZUlucHV0cyhlKXsoMCxoLmFzc2VydCkoISFlLCJvcHRpb25zIG5vdCBzZXQiKTtjb25zdCB0PXRoaXMubWV0YUluZm8oKSxzPXt9LGk9ZS5hbGxvd2VkSW5wdXRUeXBlcz9uZXcgU2V0KGUuYWxsb3dlZElucHV0VHlwZXMpOm51bGwscj0hKCFlLmFzT2JqZWN0fHwhZS51c2VOYW1lQW5kR3JvdXBBc0tleSk7Zm9yKGxldCBuPTA7bjx0LmlucHV0cy5sZW5ndGg7bisrKXtjb25zdCBhPXQuaW5wdXRzW25dO2lmKG51bGwhPT1pJiYhaS5oYXMoYS50eXBlKSljb250aW51ZTtpZihhLmlzRmFrZSYmZS5za2lwRmFrZUlucHV0cyljb250aW51ZTtpZihhLmlzTVRGUmVzb2x1dGlvbiYmZS5ub1Jlc29sdXRpb24pY29udGludWU7aWYodm9pZCAwIT09ZS5kaXNwbGF5TWFzayYmISgoMCxoLmVuc3VyZURlZmluZWQpKGEuZGlzcGxheSkmZS5kaXNwbGF5TWFzaykpY29udGludWU7aWYoZS5za2lwSGlkZGVuSW5wdXRzJiYoIWUuZG9Ob3RTa2lwSGlkZGVuV2l0aE1pZ3JhdGV8fCFhLm1pZ3JhdGUpKXtsZXQgdD0hMTtzd2l0Y2goYS50eXBlKXtjYXNlImJvb2wiOnQ9ZS5za2lwQm9vbGVhbklucHV0czticmVhaztjYXNlImNvbG9yIjp0PWUuc2tpcENvbG9ySW5wdXRzO2JyZWFrO2Nhc2UidGltZSI6dD1lLnNraXBUaW1lSW5wdXRzO2JyZWFrO2Nhc2UidGV4dF9hcmVhIjp0PWUuc2tpcFRleHRhcmVhSW5wdXRzO2JyZWFrO2RlZmF1bHQ6dD1Cb29sZWFuKGEuaXNIaWRkZW4pfWlmKHQpY29udGludWV9aWYodm9pZCAwIT09YS5ncm91cElkJiYtMSE9PWUuc2tpcHBlZEdyb3Vwcy5pbmRleE9mKGEuZ3JvdXBJZCkpY29udGludWU7aWYoLTEhPT1lLnNraXBwZWRJbnB1dHMuaW5kZXhPZihhLmlkKSljb250aW51ZTtjb25zdCBvPXRoaXMuX3ByZXBhcmVJbnB1dChhLGUpO2lmKCJzeW1ib2wiPT09YS50eXBlJiZlLnNraXBPcHRpb25hbEVtcHR5U3ltYm9sSW5wdXRzJiYiIj09PW8pY29udGludWU7bGV0IGw7ciYmKGw9KDAsUi5nZXRTdHVkeUlucHV0TmFtZSkoYSksdm9pZCAwIT09bCYmbCBpbiBzJiYobD12b2lkIDApKSxzW2x8fGEuaWRdPSgwLHUuY2xvbmUpKG8pfXJldHVybiBzfV9wcmVwYXJlSW5wdXRWYWx1ZShlLHQpe2NvbnN0IHM9ZS5pZCxpPXRoaXMuX3Byb3BlcnRpZXMuY2hpbGRzKCk7aWYodC52YWx1ZXNBc0lzRnJvbVByb3BlcnRpZXMpcmV0dXJuIGkuaW5wdXRzLmNoaWxkcygpW3NdLnZhbHVlKCk7Y29uc3Qgcj10aGlzLl9tZXRhSW5mby52YWx1ZSgpO2lmKCJzeW1ib2wiPT09ZS50eXBlKXtjb25zdCByPXQmJnQuc3ltYm9sc0ZvckRpc3BsYXksbj1pLmlucHV0cy5jaGlsZHMoKVtzXS52YWx1ZSgpO2xldCBhPXI/bjp0aGlzLl9nZXRTeW1ib2xGb3JBcGkobiksbz10aGlzLl9yZXNvbHZlZFN5bWJvbHM/Llt0aGlzLl9nZXRTeW1ib2xGb3JSZXNvbHZlKGEpXT8/bnVsbDtpZigiIj09PWEmJmUub3B0aW9uYWwpe2lmKHQmJnQua2VlcE9wdGlvbmFsU3ltYm9sc0VtcHR5KXJldHVybiBhO2E9dGhpcy5fbW9kZWwubWFpblNlcmllcygpLnN5bWJvbCgpLG89dGhpcy5fbW9kZWwubWFpblNlcmllcygpLnN5bWJvbEluZm8oKX1pZihyKWlmKG8paWYoeHMpe3N3aXRjaCh0aGlzLl9tb2RlbC5tYWluU2VyaWVzKCkuc3ltYm9sVGV4dFNvdXJjZVByb3h5UHJvcGVydHkoKS52YWx1ZSgpKXtjYXNlImRlc2NyaXB0aW9uIjphPW8uZGVzY3JpcHRpb247YnJlYWs7Y2FzZSJ0aWNrZXItYW5kLWRlc2NyaXB0aW9uIjphPWAke28ubmFtZX0sICR7by5kZXNjcmlwdGlvbn1gO2JyZWFrO2Nhc2UidGlja2VyIjphPW8ubmFtZX19ZWxzZSBhPSgwLHRzLnN5bWJvbFRpdGxlKShvLHQubm9FeGNoYW5nZXMpO2Vsc2UgTXMmJihhPSIiKTtlbHNlIG8mJihhPW8udGlja2VyfHxvLmZ1bGxfbmFtZSksIXRoaXMuaXNQaW5lKCkmJnQmJnQuc3ltYm9sc0ZvckNoYXJ0QXBpJiYoYT10aGlzLmdldFN5bWJvbFN0cmluZyhhKSk7cmV0dXJuIGF9aWYoImJhcl90aW1lIj09PWUudHlwZSl7bGV0IGU9aS5pbnB1dHMuY2hpbGRzKClbc10udmFsdWUoKTtpZihlPDApe2NvbnN0IHQ9dGhpcy5fcmlnaHRPZmZzZXRUb1VuaXhUaW1lKC1lKTtlPXQmJnQ+PTA/dDplfXJldHVybiBlfWlmKHIuaXNUVlNjcmlwdHx8ci5waW5lKXtpZigidGV4dCI9PT1zKXJldHVybiByLmRlZmF1bHRzLmlucHV0cz8udGV4dD8/IiI7aWYoInBpbmVJZCI9PT1zKXJldHVybiByLnNjcmlwdElkUGFydDtpZigicGluZVZlcnNpb24iPT09cylyZXR1cm4gci5waW5lP3IucGluZS52ZXJzaW9uOiItMSI7aWYoImNvbG9yIj09PWUudHlwZSYmci5pc1JHQil7Y29uc3QgZT1pLmlucHV0cy5jaGlsZHMoKVtzXS52YWx1ZSgpO3JldHVybigwLEwuY29sb3JUb0ludGVnZXIpKGUpfWlmKCJwcmljZSI9PT1lLnR5cGUpewpjb25zdCBlPWkuaW5wdXRzLmNoaWxkcygpW3NdLnZhbHVlKCk7cmV0dXJuIHQucHJpY2VJbnB1dHNGb3JEaXNwbGF5P3RoaXMuZm9ybWF0dGVyKCkuZm9ybWF0KGUpOmV9fXJldHVybiBpLmlucHV0cy5jaGlsZHMoKVtzXS52YWx1ZSgpfV9nZXRTdHVkeUlkV2l0aExhdGVzdFZlcnNpb24oKXtyZXR1cm4gdi5TdHVkeU1ldGFJbmZvLmdldFN0dWR5SWRXaXRoTGF0ZXN0VmVyc2lvbih0aGlzLm1ldGFJbmZvKCkpfV9kZWJ1Z0lkKCl7Y29uc3QgZT1bXTtlLnB1c2godGhpcy5faWQudmFsdWUoKSk7Y29uc3QgdD10aGlzLl9tZXRhSW5mby52YWx1ZSgpO3JldHVybiBlLnB1c2godC5mdWxsSWQpLGUucHVzaCh0LmRlc2NyaXB0aW9uKSxKU09OLnN0cmluZ2lmeSh7c3R1ZHk6ZX0pfV9oYXNBdmFpbGFibGVBbGVydFBsb3RzKCl7aWYobnVsbD09PXRoaXMuX2FsZXJ0TWV0YUluZm8oKSlyZXR1cm4hMTtyZXR1cm4gdGhpcy5zdGF0ZUZvckFsZXJ0KCkucGxvdHMubGVuZ3RoPjB9X2hhc0FsZXJ0Q29uZGl0aW9ucygpe2NvbnN0IGU9dGhpcy5fYWxlcnRNZXRhSW5mbygpO2lmKG51bGw9PT1lKXJldHVybiExO2lmKGUucGxvdHMuc29tZShaLmlzQWxlcnRDb25kaXRpb25QbG90KSlyZXR1cm4hMDtjb25zdCB0PXRoaXMuc3RhdGVGb3JBbGVydCgpO3JldHVybiBCb29sZWFuKHQuYWxlcnRzJiZ0LmFsZXJ0cy5jb25kaXRpb25zKX1faGFzQWxlcnRGdW5jdGlvbigpe2NvbnN0IGU9dGhpcy5fYWxlcnRNZXRhSW5mbygpO3JldHVybiBCb29sZWFuKG51bGwhPT1lJiZlLmhhc0FsZXJ0RnVuY3Rpb24pfWFzeW5jIF91cGRhdGVQYXJlbnRTb3VyY2VzKGUsdCxzKXtpZih0aGlzLl9zb3VyY2VzLnZhbHVlKCkuZm9yRWFjaCgoZT0+ZS51bnNldENoaWxkKHRoaXMpKSkscyYmYXdhaXQgUHJvbWlzZS5hbGwoZS5tYXAoKGU9PmUuaXNTdGFydGVkKCk/UHJvbWlzZS5yZXNvbHZlKCk6ZS5zdGFydCghMSwhMCkpKSksZS5mb3JFYWNoKChlPT5lLnNldENoaWxkKHRoaXMpKSksdGhpcy5fc2V0U291cmNlcyhlKSx0aGlzLl9yZWNyZWF0ZVByaWNlRm9ybWF0dGluZ0RlcGVuZGVuY2llcygpLDAhPT10JiZ0aGlzLl9zb3VyY2VzLnZhbHVlKCkubGVuZ3RoPD0xKXtjb25zdCBlPXRoaXMuX2ZpcnN0U291cmNlT3JTZXJpZXMoKSx0PXRoaXMuX3ByaWNlU2NhbGUscz0oMCxoLmVuc3VyZU5vdE51bGwpKGUucHJpY2VTY2FsZSgpKTtpZih0IT09cyl7Y29uc3QgdD10aGlzLl9tb2RlbC5wYW5lRm9yU291cmNlKHRoaXMpLGk9KDAsaC5lbnN1cmVOb3ROdWxsKSh0aGlzLl9tb2RlbC5wYW5lRm9yU291cmNlKGUpKTt0PT09aSYmaS5tb3ZlKHRoaXMscywhMCl9fX1fY2FsY1NvdXJjZXMoKXtjb25zdCBlPXRoaXMuX3Byb3BlcnRpZXMuY2hpbGRzKCkuaW5wdXRzLnN0YXRlKCk7cmV0dXJuIHYuU3R1ZHlNZXRhSW5mby5nZXRTb3VyY2VJZHNCeUlucHV0cyh0aGlzLl9tZXRhSW5mby52YWx1ZSgpLmlucHV0cyxlKS5tYXAoKGU9PntpZigiaGlnaCI9PT1lfHwib3BlbiI9PT1lfHwibG93Ij09PWV8fCJjbG9zZSI9PT1lfHwiaGwyIj09PWV8fCJvaGwzIj09PWV8fCJvaGxjNCI9PT1lKXJldHVybiBudWxsO3JldHVybiB0aGlzLl9tb2RlbC5hbGxTdHVkaWVzKCkuZmluZCgodD0+dC5jYW5IYXZlQ2hpbGRyZW4oKSYmdC5pZCgpPT09ZSkpPz9udWxsfSkpLmZpbHRlcih1Lm5vdE51bGwpfV9pc1N0b3BwZWQoKXtyZXR1cm4hdGhpcy5pc1N0YXJ0ZWQoKX1fb25EYXRhVW5wYWNrZWQoZSx0LHMsaSl7aWYodGhpcy5faXNEZXN0cm95ZWQpcmV0dXJuOyJub2NoYW5nZSIhPT10JiZ0aGlzLl9wcm9jZXNzUGxvdE9mZnNldHMoaSksdGhpcy5fdHJhbnNmb3JtRGF0YShlKTtjb25zdCByPXRoaXMuX21lcmdlRGF0YShlKTtudWxsIT09aSYmKGkuaW5kZXhlc19yZXBsYWNlPygoMCxoLmFzc2VydCkoIm5vY2hhbmdlIiE9PXQpLHRoaXMuX2dyYXBoaWNzLnJlcGxhY2VJbmRleGVzVG8odCkpOigibm9jaGFuZ2UiIT09dCYmdGhpcy5fZ3JhcGhpY3MucmVwbGFjZUluZGV4ZXNUbyh0KSx2b2lkIDAhPT1pLmdyYXBoaWNzQ21kcyYmdGhpcy5fZ3JhcGhpY3MucHJvY2Vzc0NvbW1hbmRzKGkuZ3JhcGhpY3NDbWRzKSkpLHRoaXMuX29uRGF0YVVwZGF0ZWQoZSxpLHQsciYmci5pbmRleCksdGhpcy5wcmljZVJhbmdlUmVhZHkoKXx8dGhpcy5fZW5hYmxlUHJpY2VSYW5nZVJlYWR5KCksdGhpcy5fZGF0YVVwZGF0ZWQuZmlyZSgpfV9wcm9jZXNzUGxvdE9mZnNldHMoZSl7aWYoZSYmZS5pbmRleGVzX3JlcGxhY2UpcmV0dXJuO2NvbnN0IHQ9dGhpcy5fc2VydmVyUGxvdE9mZnNldHMudmFsdWUoKTt0aGlzLl9zZXJ2ZXJQbG90T2Zmc2V0cy5zZXRWYWx1ZShlJiZlLm9mZnNldHN8fHt9KSwoMCxyLmRlZmF1bHQpKHQsdGhpcy5fc2VydmVyUGxvdE9mZnNldHMudmFsdWUoKSl8fHRoaXMudXBkYXRlQWxsVmlld3MoKDAsSi5zb3VyY2VDaGFuZ2VFdmVudCkoe3NvdXJjZUlkOnRoaXMuaWQoKSxjbGVhckRhdGE6ITB9KSksdGhpcy5fdXBkYXRlTWF4T2Zmc2V0VmFsdWUoKX1fYXBwbHlQbG90VG9QcmVjYWxjdWxhdGVkQXV0b3NjYWxlSW5mbyhlLHQscyl7Y29uc3QgaT1zLmlkLHI9dGhpcy5fcHJvcGVydGllcy5jaGlsZHMoKS5zdHlsZXMuY2hpbGRzKClbaV0sbj0oMCxaLmlzU2hhcGVzUGxvdCkocyl8fCgwLFouaXNDaGFyc1Bsb3QpKHMpO3QudXNlTWFpblNlcmllc1JhbmdlPXQudXNlTWFpblNlcmllc1JhbmdlfHwoMCxaLmlzQXJyb3dzUGxvdCkocyk7bGV0IGE9KDAsWi5pc0xpbmVQbG90KShzKXx8KDAsWi5pc09obGNQbG90KShzKTtpZihuKXtjb25zdCBlPSgwLGguZW5zdXJlRGVmaW5lZCkocikuY2hpbGRzKCkubG9jYXRpb24udmFsdWUoKSxzPVtiLk1hcmtMb2NhdGlvbi5BYnNvbHV0ZSxiLk1hcmtMb2NhdGlvbi5Ub3AsYi5NYXJrTG9jYXRpb24uQm90dG9tXS5pbmRleE9mKGUpPDA7dC51c2VNYWluU2VyaWVzUmFuZ2U9dC51c2VNYWluU2VyaWVzUmFuZ2V8fG4mJnMsYT1hfHxlPT09Yi5NYXJrTG9jYXRpb24uQWJzb2x1dGV9aWYoIWEpcmV0dXJuIHQ7Y29uc3Qgbz17bmFtZTppLG9mZnNldDp0aGlzLm9mZnNldChpKX0sbD1yLmNoaWxkcygpLnBsb3R0eXBlLnZhbHVlKCkKO2lmKCgwLFouZG9lc0xpbmVQbG90U3R5bGVTdXBwb3J0RmlsbEJyZWFrcykobCkpe2NvbnN0IGk9dGhpcy5fbWV0YUluZm8udmFsdWUoKS5wbG90cy5pbmRleE9mKHMpLHI9dGhpcy5fZ2V0TWluTWF4Rm9yUGxvdFRoYXRTdXBwb3J0RmlsbEJyZWFrcyhpLGwsZSk7dC5iYXNlVmFsdWVNaW5NYXg9KDAsZy5tZXJnZU1pbk1heCkodC5iYXNlVmFsdWVNaW5NYXgscil9aWYoIXRoaXMuX3NraXBIaXN0b2dyYW1CYXNlT25BdXRvU2NhbGUoKSYmW1ouTGluZVN0dWR5UGxvdFN0eWxlLkhpc3RvZ3JhbSxaLkxpbmVTdHVkeVBsb3RTdHlsZS5Db2x1bW5zLFouTGluZVN0dWR5UGxvdFN0eWxlLkFyZWFdLmluZGV4T2YobCk+PTApe2NvbnN0IHM9KHRoaXMuX21ldGFJbmZvLnZhbHVlKCkuc3R5bGVzPz97fSk/LltpXT8uaGlzdG9ncmFtQmFzZTtpZih2b2lkIDA9PT1zKXJldHVybiB0O2NvbnN0e3N0YXJ0VGltZVBvaW50OnIsZW5kVGltZVBvaW50Om59PWUsYT10aGlzLmRhdGEoKS5taW5NYXhPblJhbmdlQ2FjaGVkKHIsbixbb10pO3JldHVybigwLHUuaXNOdW1iZXIpKHMpJiZudWxsIT09YSYmKHQuYmFzZVZhbHVlTWluTWF4PSgwLGcubWVyZ2VNaW5NYXgpKHQuYmFzZVZhbHVlTWluTWF4LHttaW46cyxtYXg6c30pLHQuYmFzZVZhbHVlTWluTWF4PSgwLGcubWVyZ2VNaW5NYXgpKHQuYmFzZVZhbHVlTWluTWF4LGEpKSx0fXJldHVybiB0LmZpZWxkcy5wdXNoKG8pLHR9X2dldEZpcnN0VmFsRm9yUGxvdFRoYXRTdXBwb3J0RmlsbEJyZWFrcyhlLHQpe2NvbnN0IHM9dGhpcy5kYXRhKCkucGxvdHRhYmxlUmFuZ2UoKSxpPWUrMSxyPXMuc2VhcmNoKHQsUy5QbG90Um93U2VhcmNoTW9kZS5OZWFyZXN0TGVmdCxpKTtpZihyKXtpZihzLnNlYXJjaCh0LFMuUGxvdFJvd1NlYXJjaE1vZGUuTmVhcmVzdFJpZ2h0LGkpKXJldHVybiByLnZhbHVlW2ldfXJldHVybiBudWxsfV9nZXRNaW5NYXhGb3JQbG90VGhhdFN1cHBvcnRGaWxsQnJlYWtzKGUsdCxzKXtjb25zdCBpPXRoaXMuZGF0YSgpLnBsb3R0YWJsZVJhbmdlKCkscj1lKzEsbj10PT09Wi5MaW5lU3R1ZHlQbG90U3R5bGUuU3RlcExpbmV8fHQ9PT1aLkxpbmVTdHVkeVBsb3RTdHlsZS5TdGVwTGluZVdpdGhEaWFtb25kcyxhPWU9Pntjb25zdCB0PWkuc2VhcmNoKGUsUy5QbG90Um93U2VhcmNoTW9kZS5OZWFyZXN0TGVmdCxyKTtpZih0KXtjb25zdCBzPWkuc2VhcmNoKGUsUy5QbG90Um93U2VhcmNoTW9kZS5OZWFyZXN0UmlnaHQscik7aWYocyl7Y29uc3QgZT10LnZhbHVlW3JdO2lmKG4pcmV0dXJue21pbjplLG1heDplfTt7Y29uc3QgdD1zLnZhbHVlW3JdO3JldHVybnttaW46TWF0aC5taW4oZSx0KSxtYXg6TWF0aC5tYXgoZSx0KX19fX1yZXR1cm4gbnVsbH0sbz1NYXRoLmZsb29yKHMubG9naWNTdGFydFBvaW50KSxsPU1hdGguY2VpbChzLmxvZ2ljRW5kUG9pbnQpLGg9YShvKSx1PWEobCk7cmV0dXJuKDAsZy5tZXJnZU1pbk1heCkoaCx1KX1hc3luYyBfb25Tb3VyY2VJbnB1dENoYW5nZWQoKXtpZighdGhpcy5pc1N0YXJ0ZWQoKSl7Y29uc3QgZT10aGlzLl9jYWxjU291cmNlcygpO3tjb25zdCB0PTE9PT1lLmxlbmd0aCYmZVswXSE9PXRoaXMuX3NvdXJjZXMudmFsdWUoKVswXT8xOjA7dGhpcy5fdXBkYXRlUGFyZW50U291cmNlcyhlLHQsITEpfX19X2J1aWxkSW5wdXRzKGUpeygwLGguYXNzZXJ0KSghIWUsIm9wdGlvbnMgbm90IHNldCIpO2xldCB0PXt9O3RyeXt0PXRoaXMuX3ByZXBhcmVJbnB1dHMoZSl9Y2F0Y2goZSl7U3MubG9nV2FybigiRmFpbGVkIHRvIHByZXBhcmUgc3R1ZHkgaW5wdXRzOiAiK2UpfWlmKGUuYXNPYmplY3Qpe2NvbnN0IGU9e307cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goKHM9PntudWxsIT10W3NdJiYoZVtzXT10W3NdKX0pKSxlfXtjb25zdCBlPVtdO3JldHVybiBPYmplY3Qua2V5cyh0KS5mb3JFYWNoKChzPT57bnVsbCE9dFtzXSYmZS5wdXNoKHRbc10pfSkpLGV9fV9wcmVwYXJlSW5wdXQoZSx0KXtjb25zdCBzPXRoaXMuX3ByZXBhcmVJbnB1dFZhbHVlKGUsdCk7cmV0dXJuIShlLmlzRmFrZXx8dC5mb3JjZVRyZWF0U291cmNlSW5wdXRzQXNGYWtlJiYic291cmNlIj09PWUudHlwZSl8fHQuZmFrZUlucHV0c0ZvckRpc3BsYXl8fHQub25seUF0b21WYWx1ZXM/czp0aGlzLl9jcmVhdGVFeHRlbmRlZElucHV0KHMsZS50eXBlKX1fY3JlYXRlRXh0ZW5kZWRJbnB1dChlLHQpe3JldHVybnt2OmUsZjohMCx0fX1fcGxvdHNGb3JBbGVydCgpe3JldHVybigwLFQucGxvdHNGb3JBbGVydCkodGhpcy5tZXRhSW5mbygpLHRoaXMub2Zmc2V0LmJpbmQodGhpcykpfV9mb3JtYXR0ZXJTdGF0ZUZvckFsZXJ0KCl7dHJ5e2NvbnN0IGU9dGhpcy5mb3JtYXR0ZXIoKTtyZXR1cm4gTS5Gb3JtYXR0ZXJzU2VyaWFsaXplci5pc1NlcmlhbGl6YWJsZShlKT9NLkZvcm1hdHRlcnNTZXJpYWxpemVyLnNlcmlhbGl6ZShlKTpudWxsfWNhdGNoe3JldHVybiBudWxsfX1fY2FsY0lzQWN0dWFsSW50ZXJ2YWwoKXtjb25zdCBlPXRoaXMuX2lzQWN0dWFsSW50ZXJ2YWw7dGhpcy5faXNBY3R1YWxJbnRlcnZhbD0oMCxYdC5pc0FjdHVhbEludGVydmFsKSh0aGlzLl9zZXJpZXMuaW50ZXJ2YWxPYmooKS52YWx1ZSgpLHRoaXMuX3Byb3BlcnRpZXMuY2hpbGRzKCkuaW50ZXJ2YWxzVmlzaWJpbGl0aWVzKSxlIT09dGhpcy5faXNBY3R1YWxJbnRlcnZhbCYmKHRoaXMuX29uSXNBY3R1YWxJbnRlcnZhbENoYW5nZS5maXJlKCksdGhpcy5fdmlzaWJsZUNoYW5nZWQoKSx0aGlzLnByb2Nlc3NIaWJlcm5hdGUoKSl9X3Zpc2libGVDaGFuZ2VkKCl7dGhpcy5fc2VyaWVzLmludmFsaWRhdGVCYXJDb2xvcmVyQ2FjaGUoKX1fZ2V0Tm9uUHJpY2VQYXJlbnQoKXtjb25zdCBlPXRoaXMuX3NvdXJjZXMudmFsdWUoKTtmb3IoY29uc3QgdCBvZiBlKWlmKHQgaW5zdGFuY2VvZiBVcyl7Y29uc3QgZT10Lm1ldGFJbmZvKCk7cmV0dXJuIGUuaXNfcHJpY2Vfc3R1ZHkmJiJDb21wYXJlQHR2LWJhc2ljc3R1ZGllcyIhPT1lLmlkP3QuX2dldE5vblByaWNlUGFyZW50KCk6dH1yZXR1cm4gbnVsbH1fdXBkYXRlSW5wdXRWYWx1ZShlLHQpewpjb25zdCBzPXRoaXMuX3Byb3BlcnRpZXMuY2hpbGRzKCkuaW5wdXRzLmNoaWxkcygpO2lmKHNbdC5pZF0paWYoInByaWNlIj09PXQudHlwZSlzW3QuaWRdLnNldFZhbHVlKGUucHJpY2UpO2Vsc2UgaWYoInRpbWUiPT09dC50eXBlKXtjb25zdCBpPXRoaXMuX21vZGVsLnRpbWVTY2FsZSgpLmluZGV4VG9UaW1lUG9pbnQoZS5pbmRleCk7bnVsbCE9PWkmJnNbdC5pZF0uc2V0VmFsdWUoMWUzKmkpfX1faW5pdGlhbGl6ZVN0dWR5SW5wdXRzUGFuZVZpZXdzKCl7Y29uc3QgZT0oMCxEZS5lZGl0YWJsZVN0dWR5SW5wdXRzKSh0aGlzLl9tZXRhSW5mby52YWx1ZSgpLmlucHV0cyk7aWYoMD09PWUubGVuZ3RoKXJldHVybjtjb25zdCB0PXtjb252ZXJ0UHJpY2VUb0Nvb3JkaW5hdGU6ZT0+e2NvbnN0IHQ9dGhpcy5wcmljZVNjYWxlKCk7aWYobnVsbCE9PXQmJiF0LmlzRW1wdHkoKSl7Y29uc3Qgcz10aGlzLmZpcnN0VmFsdWUoKTtpZihudWxsIT09cylyZXR1cm4gdC5wcmljZVRvQ29vcmRpbmF0ZShlLHMpfXJldHVybiBudWxsfSxmb3JtYXRQcmljZTplPT57Y29uc3QgdD10aGlzLnByaWNlU2NhbGUoKTtpZihudWxsIT09dCYmIXQuaXNFbXB0eSgpKXtjb25zdCBzPXRoaXMuZmlyc3RWYWx1ZSgpO2lmKG51bGwhPT1zKXJldHVybiB0LmZvcm1hdFByaWNlKGUscyl9cmV0dXJuIiJ9LGdldElucHV0VmFsdWU6ZT0+dGhpcy5fcHJvcGVydGllcy5jaGlsZHMoKS5pbnB1dHMuY2hpbGQoZSk/LnZhbHVlKCk/P251bGwsaXNTZWxlY3RlZDooKT0+dGhpcy5fbW9kZWwuc2VsZWN0aW9uKCkuaXNTZWxlY3RlZCh0aGlzKSxpc0hvdmVyZWQ6KCk9PnRoaXM9PT10aGlzLl9tb2RlbC5ob3ZlcmVkU291cmNlKCl9O1Byb21pc2UuYWxsKFtzLmUoNzMyMzQpLnRoZW4ocy5iaW5kKHMsODUyMjQ2KSkscy5lKDczMjM0KS50aGVuKHMuYmluZChzLDcyNDAwNykpLHMuZSg3MzIzNCkudGhlbihzLmJpbmQocyw1MTgwMjApKSxzLmUoNzMyMzQpLnRoZW4ocy5iaW5kKHMsNzY4OTg2KSldKS50aGVuKChzPT57Y29uc3RbaSxyLG4sYV09czt0aGlzLl9pbnB1dHNBbmNob3JzUGFuZVZpZXc9bmV3IGkuU3R1ZHlJbnB1dHNBbmNob3JzUGFuZVZpZXcoZSx0aGlzLl9tb2RlbCx0KTtjb25zdCBvPWUuZmlsdGVyKChlPT4hQXJyYXkuaXNBcnJheShlKSkpO3RoaXMuX2lucHV0c0xpbmVzUGFuZVZpZXc9bmV3IHIuU3R1ZHlJbnB1dHNMaW5lc1BhbmVWaWV3KG8sdGhpcy5fbW9kZWwsdCk7bGV0IGw9ITE7ZS5mb3JFYWNoKChlPT57aWYoQXJyYXkuaXNBcnJheShlKSl7Y29uc3Qgcz0idGltZSI9PT1lWzBdLnR5cGU/ZVswXTplWzFdLGk9InByaWNlIj09PWVbMF0udHlwZT9lWzBdOmVbMV07dGhpcy5faW5wdXRzVGltZUF4aXNQYW5lVmlld3MucHVzaChuZXcgbi5TdHVkeUlucHV0VGltZUF4aXNQYW5lVmlldyhzLHRoaXMuX21vZGVsLHQuZ2V0SW5wdXRWYWx1ZSkpLHRoaXMuX2lucHV0c1ByaWNlQXhpc1BhbmVWaWV3cy5wdXNoKG5ldyBhLlN0dWR5SW5wdXRQcmljZUF4aXNQYW5lVmlldyhpLHQpKSxsPSEwfWVsc2UidGltZSI9PT1lLnR5cGU/dGhpcy5faW5wdXRzVGltZUF4aXNQYW5lVmlld3MucHVzaChuZXcgbi5TdHVkeUlucHV0VGltZUF4aXNQYW5lVmlldyhlLHRoaXMuX21vZGVsLHQuZ2V0SW5wdXRWYWx1ZSkpOih0aGlzLl9pbnB1dHNQcmljZUF4aXNQYW5lVmlld3MucHVzaChuZXcgYS5TdHVkeUlucHV0UHJpY2VBeGlzUGFuZVZpZXcoZSx0KSksbD0hMCl9KSksbCYmdGhpcy5mb3JtYXR0ZXJDaGFuZ2VkKCkuc3Vic2NyaWJlKHRoaXMsdGhpcy5pbnZhbGlkYXRlVGl0bGVDYWNoZSl9KSl9X3VwZGF0ZUN1cnJlbmN5U291cmNlU3ltYm9sSW5mbygpe31faW5pdGlhbGl6ZUN1cnJlbmN5U291cmNlKCl7Y29uc3QgZT10aGlzLm1ldGFJbmZvKCksdD0ic3ltYm9sSW5wdXRTeW1ib2xTb3VyY2UiPT09ZS5zeW1ib2xTb3VyY2U/LnR5cGUmJmUuc3ltYm9sU291cmNlPy5pbnB1dElkLHM9ZS5pbnB1dHMuZmluZCgoZT0+ZS5pZD09PXQpKTtpZigic3RyaW5nIj09dHlwZW9mIHQmJiJzeW1ib2wiPT09cz8udHlwZSYmZS5pc19wcmljZV9zdHVkeSl7Y29uc3QgZT10aGlzLl9wcm9wZXJ0aWVzLmNoaWxkcygpLmlucHV0cy5jaGlsZHMoKVt0XTt2b2lkIDAhPT1lJiYoZS5zdWJzY3JpYmUodGhpcyx0aGlzLl9vbkN1cnJlbmN5TWF5Q2hhbmdlKSx0aGlzLl9jdXJyZW5jeVNvdXJjZVN5bWJvbElucHV0UHJvcGVydHk9ZSl9fV9yZWNyZWF0ZVBhbmVWaWV3cygpe3RoaXMuaGFzQmFyQ29sb3JlcigpJiZ0aGlzLl9tb2RlbC5tYWluU2VyaWVzKCkuaW52YWxpZGF0ZUJhclN0eWxlc0NhY2hlKCksdGhpcy5fY3JlYXRlVmlld3MoKSx0aGlzLnJlY2FsY3VsYXRlKCksdGhpcy51cGRhdGVBbGxWaWV3cygoMCxKLnNvdXJjZUNoYW5nZUV2ZW50KSh0aGlzLmlkKCkpKX1hc3luYyBfcGluZVBhdGNoUHJvcHMoKXt0aGlzLl9kZWZlcnJlZFBpbmVQYXRjaFByb3BzPSExO2NvbnN0IGU9dGhpcy5fcHJlcGFyZUlucHV0cyhWcyk7dGhpcy5fYXJlU3R1ZHlJbnB1dHNNb2RpZmllZChlKSYmKHRoaXMuX2Fib3J0UGF0Y2hQcm9wc0NvbnRyb2xsZXIuYWJvcnQoKSx0aGlzLl9wcm9wZXJ0aWVzUGF0Y2hlZD1uZXcgUHJvbWlzZSgoYXN5bmMgdD0+e3RyeXthd2FpdCB0aGlzLl9yZXNldFByb3BlcnRpZXNQYXRjaGVkfWNhdGNoKGUpe3JldHVybiB2b2lkIFNzLmxvZ0Vycm9yKGBFUlJPUjogJHt0aGlzLl9kZWJ1Z0lkKCl9IHBpbmUgaW5wdXRzIHBhdGNoaW5nIGFmdGVyIHJlc2V0IHRvIGRlZmF1bHRzIGZhaWxlZCwgcmVhc29uOiAke2V9YCl9dGhpcy5fYWJvcnRQYXRjaFByb3BzQ29udHJvbGxlcj1uZXcgQWJvcnRDb250cm9sbGVyLHRoaXMuX29sZFN0dWR5SW5wdXRzPWU7Y29uc3Qgcz1uZXcgdi5TdHVkeU1ldGFJbmZvKHRoaXMuX21ldGFJbmZvLnZhbHVlKCkuc3RhdGUoKSksaT0oMCxGLnBhdGNoUHJvcGVydGllc0FzeW5jKSh0aGlzLl9wcm9wZXJ0aWVzLHMsZSx0aGlzLl9hYm9ydFBhdGNoUHJvcHNDb250cm9sbGVyLnNpZ25hbCx0aGlzLl9wcmV2aW91c1BhdGNoTWFwKSxyPXRoaXMuX2FsbFN5bWJvbHNBcmVSZXNvbHZlZCgpCjthd2FpdCBQcm9taXNlLmFsbChbaSxyXSkudGhlbigoKCk9Pnt0aGlzLl9tZXRhSW5mby5zZXRWYWx1ZShzKSx0aGlzLl9pc0Rlc3Ryb3llZHx8KHQoKSx0aGlzLl9jcmVhdGVWaWV3cygpLHRoaXMucmVjYWxjdWxhdGUoKSx0aGlzLnVwZGF0ZUFsbFZpZXdzKCgwLEouc291cmNlQ2hhbmdlRXZlbnQpKHRoaXMuaWQoKSkpLHRoaXMuaW52YWxpZGF0ZVRpdGxlQ2FjaGUoKSl9KSkuY2F0Y2goKGU9Pnt0KCksU3MubG9nRXJyb3IoYEVSUk9SOiAke3RoaXMuX2RlYnVnSWQoKX0gcGluZSBpbnB1dHMgcGF0Y2hpbmcgZmFpbGVkLCByZWFzb246ICR7ZX1gKX0pKX0pKSl9X2FyZVN0dWR5SW5wdXRzTW9kaWZpZWQoZSl7aWYoMD09PU9iamVjdC5rZXlzKGUpLmxlbmd0aClyZXR1cm4hMTtpZih2b2lkIDA9PT10aGlzLl9vbGRTdHVkeUlucHV0cylyZXR1cm4hMDtjb25zdCB0PU9iamVjdC5rZXlzKHRoaXMuX29sZFN0dWR5SW5wdXRzKTsoMCxoLmFzc2VydCkodC5sZW5ndGg9PT1PYmplY3Qua2V5cyhlKS5sZW5ndGgsImtleXMgcXVhbnRpdHkgc2hvdWxkIGJlIGVxdWFsIik7Zm9yKGNvbnN0IHMgb2YgdClpZigoMCxoLmFzc2VydCkoZS5oYXNPd25Qcm9wZXJ0eShzKSxga2V5ICcke3N9JyBzaG91bGQgZXhpc3QgaW4gc3R1ZHkgaW5wdXRzYCksKDAsaC5lbnN1cmVEZWZpbmVkKSh0aGlzLl9vbGRTdHVkeUlucHV0cylbc10hPT1lW3NdKXJldHVybiEwO3JldHVybiExfV9vblZpc2libGVUaW1lUmFuZ2VJbnB1dHNDaGFuZ2VkKGUpe251bGwhPT1lP3RoaXMuX3VwZGF0ZVZpc2libGVUaW1lUmFuZ2VJbnB1dHMoZSk6dGhpcy5pc1N0YXJ0ZWQoKSYmdGhpcy5fY2hhcnRBcGkuaXNDb25uZWN0ZWQoKS52YWx1ZSgpJiZ0aGlzLnN0b3AoITApfV91cGRhdGVWaXNpYmxlVGltZVJhbmdlSW5wdXRzKGUsdD0hMCl7Y29uc3Qgcz17Zmlyc3RfdmlzaWJsZV9iYXJfdGltZTplLmZpcnN0VmlzaWJsZUJhclRpbWUsbGFzdF92aXNpYmxlX2Jhcl90aW1lOmUubGFzdFZpc2libGVCYXJUaW1lLHN1YnNjcmliZVJlYWx0aW1lOmUuc3Vic2NyaWJlUmVhbHRpbWV9LGk9dGhpcy5tZXRhSW5mbygpLmlucHV0cyxyPVtdO2Zvcihjb25zdCBlIG9mIGkpcy5oYXNPd25Qcm9wZXJ0eShlLmlkKSYmci5wdXNoKGUuaWQpO2NvbnN0IG49dGhpcy5wcm9wZXJ0aWVzKCkuY2hpbGRzKCkuaW5wdXRzO2Zvcihjb25zdCBlIG9mIHIpbi5jaGlsZHMoKVtlXS5zZXRWYWx1ZVNpbGVudGx5KHNbZV0pO3QmJnIubGVuZ3RoPjAmJm4uZmlyZUNoYW5nZWQoKX1fZ2V0U3R1ZHlFcnJvclRleHQoZSl7c3dpdGNoKGUubWF0Y2goL15zdHVkeV9ub3RfYXV0aDooLiopP0AuKi8pPy5bMV0pe2Nhc2UiU2NyaXB0IjpjYXNlIlN0cmF0ZWd5U2NyaXB0IjpyZXR1cm4iVGhpcyBzY3JpcHQgaXMgaW52aXRlLW9ubHkuIFRvIHJlcXVlc3QgYWNjZXNzLCBwbGVhc2UgY29udGFjdCBpdHMgYXV0aG9yLiI7Y2FzZSJWYlBTZXNzaW9ucyI6Y2FzZSJWYlBQZXJpb2RpYyI6Y2FzZSJWYlBWaXNpYmxlIjpyZXR1cm4iVm9sdW1lIFByb2ZpbGUgaW5kaWNhdG9yIGF2YWlsYWJsZSBvbmx5IG9uIG91ciB1cGdyYWRlZCBwbGFucy4ifXJldHVybiBlLnNwbGl0KCI6IiwyKVswXX1fcHJpY2VTY2FsZUJ5UHJvcGVydGllcygpe2lmKCJkZWZhdWx0Ij09PXRoaXMucHJvcGVydGllcygpLmNoaWxkcygpLnByZWNpc2lvbi52YWx1ZSgpKXJldHVybiBudWxsO2NvbnN0IGU9cGFyc2VJbnQodGhpcy5wcm9wZXJ0aWVzKCkuY2hpbGRzKCkucHJlY2lzaW9uLnZhbHVlKCkpO3JldHVybiBpc0Zpbml0ZShlKT9NYXRoLnBvdygxMCxlKTpudWxsfV9wcmljZVNjYWxlQnlNZXRhSW5mbygpe2NvbnN0IGU9dGhpcy5tZXRhSW5mbygpLmZvcm1hdCx0PSJpbmhlcml0IiE9PWUudHlwZT9lLnByZWNpc2lvbjp2b2lkIDAscz0oMCx1LmlzTnVtYmVyKSh0KT9NYXRoLnBvdygxMCx0KTp2b2lkIDA7aWYoInByaWNlIj09PWUudHlwZXx8InBlcmNlbnQiPT09ZS50eXBlKXJldHVybiBzfHwxMDA7aWYoInZvbHVtZSI9PT1lLnR5cGUpe2lmKHZvaWQgMD09PWUucHJlY2lzaW9uKXtjb25zdCBlPXRoaXMuc2VyaWVzKCkuc3ltYm9sSW5mbygpO2lmKG51bGwhPT1lJiYoMCx1LmlzTnVtYmVyKShlLnZvbHVtZV9wcmVjaXNpb24pKXJldHVybiBNYXRoLnBvdygxMCxlLnZvbHVtZV9wcmVjaXNpb24pfXJldHVybiAxfXJldHVybiJpbmhlcml0Ij09PWUudHlwZXx8U3MubG9nV2FybigiVW5zdXBwb3J0ZWQgZm9ybWF0IHR5cGU6ICIrZS50eXBlKSxudWxsfV9pbnB1dFN5bWJvbHMoKXtyZXR1cm4gdGhpcy5tZXRhSW5mbygpLmlucHV0cy5maWx0ZXIoKGU9PiJzeW1ib2wiPT09ZS50eXBlKSkubWFwKChlPT4oMCxoLmVuc3VyZURlZmluZWQpKHRoaXMuX3Byb3BlcnRpZXMuY2hpbGRzKCkuaW5wdXRzLmNoaWxkKGUuaWQpKS52YWx1ZSgpKSl9X3N0dWR5U3BlYyhlKXtjb25zdCB0PXRoaXMuX21ldGFJbmZvLnZhbHVlKCk7cmV0dXJue2lkOnQuaWQsY2hpbGQ6ZT8/dGhpcy5pc0NoaWxkU3R1ZHkoKSxmdW5kYW1lbnRhbDooMCx3ZS5pc0Z1bmRhbWVudGFsU3R1ZHlNZXRhSW5mbykodCksZm9yZWNhc3Q6KDAsd2UuaXNGb3JlY2FzdFN0dWR5TWV0YUluZm8pKHQpLHN0dWJUaXRsZTp0LmRlc2NyaXB0aW9ufHx0LnNob3J0RGVzY3JpcHRpb259fV9vbkZvcm1hdHRlclByb3BzQ2hhbmdlZCgpe3RoaXMuX3JlY3JlYXRlUHJpY2VGb3JtYXR0aW5nRGVwZW5kZW5jaWVzKCl9X3NldFNvdXJjZXMoZSl7dGhpcy5pbnZhbGlkYXRlVGl0bGVDYWNoZSgpLHRoaXMuX3NvdXJjZXMuc2V0VmFsdWUoZSksdGhpcy5fb25QYXJlbnRTb3VyY2VzQ2hhbmdlcy5maXJlKCl9YXN5bmMgX2F3YWl0Rm9yTWV0YUluZm8oKXtjb25zdCBlPXtyZXNvbHZlcjooKT0+e319LHQ9KCk9PmUucmVzb2x2ZXIoKTt0cnl7YXdhaXQgUHJvbWlzZS5yYWNlKFtuZXcgUHJvbWlzZSgoKGUsdCk9PntzZXRUaW1lb3V0KCgoKT0+dChuZXcgRXJyb3IoIlRpbWVvdXQiKSkpLDNlMyl9KSksbmV3IFByb21pc2UoKHM9PntlLnJlc29sdmVyPXMsdGhpcy5tZXRhSW5mb1dWKCkuc3Vic2NyaWJlKHQpfSkpXSl9Y2F0Y2goZSl7dGhyb3cgZX1maW5hbGx5ewp0aGlzLm1ldGFJbmZvV1YoKS51bnN1YnNjcmliZSh0KX19fX0sMzcwNjIyKGUsdCxzKXtzLmQodCx7cGxvdFNoYXBlc0RhdGE6KCk9PnJ9KTt2YXIgaT1zKDE4NTI3MSk7Y29uc3Qgcj17c2hhcGVfYXJyb3dfZG93bjp7Z3VpTmFtZTppLnQobnVsbCx2b2lkIDAscyg3MDQ0NTgpKSxpZDoic2hhcGVfYXJyb3dfZG93biIscGFuZVJlbmRlcmVyQ2xhc3M6IlBhbmVSZW5kZXJlckFycm93RG93biIscGluZU5hbWU6InNoYXBlLmFycm93ZG93biIsaWNvbjoiYXJyb3dfZG93biJ9LHNoYXBlX2Fycm93X3VwOntndWlOYW1lOmkudChudWxsLHZvaWQgMCxzKDYyMDYxKSksaWQ6InNoYXBlX2Fycm93X3VwIixwYW5lUmVuZGVyZXJDbGFzczoiUGFuZVJlbmRlcmVyQXJyb3dVcCIscGluZU5hbWU6InNoYXBlLmFycm93dXAiLGljb246ImFycm93X3VwIn0sc2hhcGVfY2lyY2xlOntndWlOYW1lOmkudChudWxsLHZvaWQgMCxzKDc5NDQwOCkpLGlkOiJzaGFwZV9jaXJjbGUiLHBhbmVSZW5kZXJlckNsYXNzOiJQYW5lUmVuZGVyZXJDaXJjbGVTaGFwZSIscGluZU5hbWU6InNoYXBlLmNpcmNsZSIsaWNvbjoiY2lyY2xlIn0sc2hhcGVfY3Jvc3M6e2d1aU5hbWU6aS50KG51bGwsdm9pZCAwLHMoNDg4MTgwKSksaWQ6InNoYXBlX2Nyb3NzIixwYW5lUmVuZGVyZXJDbGFzczoiUGFuZVJlbmRlcmVyQ3Jvc3NTaGFwZSIscGluZU5hbWU6InNoYXBlLmNyb3NzIixpY29uOiJjcm9zcyJ9LHNoYXBlX2RpYW1vbmQ6e2d1aU5hbWU6aS50KG51bGwsdm9pZCAwLHMoMjgxMjQ4KSksaWQ6InNoYXBlX2RpYW1vbmQiLHBhbmVSZW5kZXJlckNsYXNzOiJQYW5lUmVuZGVyZXJEaWFtb25kIixwaW5lTmFtZToic2hhcGUuZGlhbW9uZCIsaWNvbjoiZGlhbW9uZCJ9LHNoYXBlX2ZsYWc6e2d1aU5hbWU6aS50KG51bGwsdm9pZCAwLHMoOTcxNTI3KSksaWQ6InNoYXBlX2ZsYWciLHBhbmVSZW5kZXJlckNsYXNzOiJQYW5lUmVuZGVyZXJGbGFnU2hhcGUiLHBpbmVOYW1lOiJzaGFwZS5mbGFnIixpY29uOiJmbGFnIn0sc2hhcGVfbGFiZWxfZG93bjp7Z3VpTmFtZTppLnQobnVsbCx2b2lkIDAscygyNjI0NTgpKSxpZDoic2hhcGVfbGFiZWxfZG93biIscGFuZVJlbmRlcmVyQ2xhc3M6IlBhbmVSZW5kZXJlckxhYmVsRG93biIscGluZU5hbWU6InNoYXBlLmxhYmVsZG93biIsaWNvbjoibGFiZWxfZG93biJ9LHNoYXBlX2xhYmVsX3VwOntndWlOYW1lOmkudChudWxsLHZvaWQgMCxzKDQ2NDE1NykpLGlkOiJzaGFwZV9sYWJlbF91cCIscGFuZVJlbmRlcmVyQ2xhc3M6IlBhbmVSZW5kZXJlckxhYmVsVXAiLHBpbmVOYW1lOiJzaGFwZS5sYWJlbHVwIixpY29uOiJsYWJlbF91cCJ9LHNoYXBlX3NxdWFyZTp7Z3VpTmFtZTppLnQobnVsbCx2b2lkIDAscyg5MTYyMTUpKSxpZDoic2hhcGVfc3F1YXJlIixwYW5lUmVuZGVyZXJDbGFzczoiUGFuZVJlbmRlcmVyU3F1YXJlIixwaW5lTmFtZToic2hhcGUuc3F1YXJlIixpY29uOiJzcXVhcmUifSxzaGFwZV90cmlhbmdsZV9kb3duOntndWlOYW1lOmkudChudWxsLHZvaWQgMCxzKDQ3MTc0NSkpLGlkOiJzaGFwZV90cmlhbmdsZV9kb3duIixwYW5lUmVuZGVyZXJDbGFzczoiUGFuZVJlbmRlcmVyVHJpYW5nbGVBcGV4RG93biIscGluZU5hbWU6InNoYXBlLnRyaWFuZ2xlZG93biIsaWNvbjoidHJpYW5nbGVfZG93biJ9LHNoYXBlX3RyaWFuZ2xlX3VwOntndWlOYW1lOmkudChudWxsLHZvaWQgMCxzKDM5OTY4OCkpLGlkOiJzaGFwZV90cmlhbmdsZV91cCIscGFuZVJlbmRlcmVyQ2xhc3M6IlBhbmVSZW5kZXJlclRyaWFuZ2xlQXBleFVwIixwaW5lTmFtZToic2hhcGUudHJpYW5nbGV1cCIsaWNvbjoidHJpYW5nbGVfdXAifSxzaGFwZV94Y3Jvc3M6e2d1aU5hbWU6aS50KG51bGwsdm9pZCAwLHMoODEwMjIyKSksaWQ6InNoYXBlX3hjcm9zcyIscGFuZVJlbmRlcmVyQ2xhc3M6IlBhbmVSZW5kZXJlclhDcm9zcyIscGluZU5hbWU6InNoYXBlLnhjcm9zcyIsaWNvbjoieF9jcm9zcyJ9fX0sOTIwNDc1KGUsdCxzKXtzLmQodCx7ZGVmYXVsdDooKT0+bH0pO2NvbnN0IGk9ZT0+ZSBpbnN0YW5jZW9mIERhdGUscj1lPT5udWxsIT1lJiYib2JqZWN0Ij09dHlwZW9mIGUsbj0oZSwuLi50KT0+T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUsLi4udCksYT1lPT5yKGUpJiYoZT0+MD09PU9iamVjdC5rZXlzKGUpLmxlbmd0aCkoZSksbz0oZSx0KT0+e2lmKGU9PT10KXJldHVybnt9O2lmKCFyKGUpfHwhcih0KSlyZXR1cm4gdDtjb25zdCBzPU9iamVjdC5rZXlzKGUpLnJlZHVjZSgoKGUscyk9PihuKHQscyl8fChlW3NdPXZvaWQgMCksZSkpLE9iamVjdC5jcmVhdGUobnVsbCkpO3JldHVybiBpKGUpfHxpKHQpP2UudmFsdWVPZigpPT10LnZhbHVlT2YoKT97fTp0Ok9iamVjdC5rZXlzKHQpLnJlZHVjZSgoKHMscik9PntpZighbihlLHIpKXJldHVybiBzW3JdPXRbcl0scztjb25zdCBsPW8oZVtyXSx0W3JdKTtyZXR1cm4hYShsKXx8aShsKXx8IWEoZVtyXSkmJmEodFtyXSk/KHNbcl09bCxzKTpzfSkscyl9LGw9b319XSk7"}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/65675.b22e86384da95a427485.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:13.919Z","timestamp":1785148033919,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/65675.b22e86384da95a427485.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:13 GMT\r\ncontent-type: text/css; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding, Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\netag: W/\"69f98b72-cb7\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Tue, 05 May 2026 06:17:22 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.51\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 05/05/2026 10:16:42\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: fb4bba6185281e53e8a24bf0ca030720\r\ncdn-cache: HIT\r\ncontent-encoding: br\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":3255,"size_decoded":1611,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with very long lines (3255), with no line terminators","md5":"f53f02dd7b4726c0d3cb6dbbcfda7b87","sha1":"6862ca4abf23f4e0d6d8c01dd12160efe41a999d","sha256":"1007096185878202bece4ab281245577c9113dc3cc5d4071a5f58d2fd93407d5","sha512":"c72632fd3de5ba7a36701249d3475f260bafa4a1aa0fa9dbcf41a258300ec01af5288523af2efcd28a2301aa3a06827eacd95a80482ecbfe68fb7f636f7ac066","ssdeep":"","tlshash":"b861e3ae075e9cd934dc1f915763fc08377ad18e33222dbc618525f20bd2d3ae5a906a","first_seen":"2025-07-09T18:19:43.538072Z","last_seen":"2026-07-27T12:57:37.067831Z","times_seen":1258,"resource_available":false,"data":"W2RhdGEtdGhlbWU9bGlnaHRdey0tXzAtazh4MDp2YXIoLS1jb2xvci1jb2xkLWdyYXktMTUwKX1bZGF0YS10aGVtZT1kYXJrXXstLV8wLWs4eDA6dmFyKC0tY29sb3ItY29sZC1ncmF5LTgwMCl9LnR2LWNpcmNsZS1sb2dvLXBhaXJ7ZGlzcGxheTppbmxpbmUtYmxvY2s7cG9zaXRpb246cmVsYXRpdmV9LnR2LWNpcmNsZS1sb2dvLXBhaXItLXh4eHNtYWxse2hlaWdodDoxOHB4O3dpZHRoOjE4cHh9LnR2LWNpcmNsZS1sb2dvLXBhaXItLXh4c21hbGx7aGVpZ2h0OjIwcHg7d2lkdGg6MjBweH0udHYtY2lyY2xlLWxvZ28tcGFpci0teHNtYWxse2hlaWdodDoyNHB4O3dpZHRoOjI0cHh9LnR2LWNpcmNsZS1sb2dvLXBhaXItLXNtYWxse2hlaWdodDoyOHB4O3dpZHRoOjI4cHh9LnR2LWNpcmNsZS1sb2dvLXBhaXItLW1lZGl1bXtoZWlnaHQ6MzZweDt3aWR0aDozNnB4fS50di1jaXJjbGUtbG9nby1wYWlyLS1sYXJnZXtoZWlnaHQ6NDhweDt3aWR0aDo0OHB4fS50di1jaXJjbGUtbG9nby1wYWlyLS14bGFyZ2V7aGVpZ2h0OjU2cHg7d2lkdGg6NTZweH0udHYtY2lyY2xlLWxvZ28tcGFpci0teHhsYXJnZXtoZWlnaHQ6MTEycHg7d2lkdGg6MTEycHh9LnR2LWNpcmNsZS1sb2dvLXBhaXItLXh4eGxhcmdle2hlaWdodDoxNjhweDt3aWR0aDoxNjhweH0udHYtY2lyY2xlLWxvZ28tcGFpcl9fbG9nb3tib3JkZXItcmFkaXVzOjUwJX0udHYtY2lyY2xlLWxvZ28tcGFpcl9fbG9nbzpub3QoaW1nKXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLV8wLWs4eDApfS50di1jaXJjbGUtbG9nby1wYWlyX19sb2dvOmZpcnN0LWNoaWxkLC50di1jaXJjbGUtbG9nby1wYWlyX19sb2dvOmxhc3QtY2hpbGR7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6MDt0b3A6MH0udHYtY2lyY2xlLWxvZ28tcGFpcl9fbG9nby0teHh4c21hbGx7aGVpZ2h0OjEycHg7d2lkdGg6MTJweH0udHYtY2lyY2xlLWxvZ28tcGFpcl9fbG9nby0teHh4c21hbGw6Zmlyc3QtY2hpbGR7Y2xpcC1wYXRoOnBhdGgoIk0xMiAwSDB2NGE4IDggMCAwIDEgOCA4aDRWMFoiKX0udHYtY2lyY2xlLWxvZ28tcGFpcl9fbG9nby0teHh4c21hbGw6bGFzdC1jaGlsZHt0cmFuc2Zvcm06dHJhbnNsYXRlKC02cHgsNnB4KX0udHYtY2lyY2xlLWxvZ28tcGFpcl9fbG9nby0teHhzbWFsbHtoZWlnaHQ6MTJweDt3aWR0aDoxMnB4fS50di1jaXJjbGUtbG9nby1wYWlyX19sb2dvLS14eHNtYWxsOmZpcnN0LWNoaWxke2NsaXAtcGF0aDpwYXRoKCJNMTIgMEgwdjYuMjU0QTggOCAwIDAgMSA1Ljc0NiAxMkgxMloiKX0udHYtY2lyY2xlLWxvZ28tcGFpcl9fbG9nby0teHhzbWFsbDpsYXN0LWNoaWxke3RyYW5zZm9ybTp0cmFuc2xhdGUoLThweCw4cHgpfS50di1jaXJjbGUtbG9nby1wYWlyX19sb2dvLS14c21hbGx7aGVpZ2h0OjE4cHg7d2lkdGg6MThweH0udHYtY2lyY2xlLWxvZ28tcGFpcl9fbG9nby0teHNtYWxsOmZpcnN0LWNoaWxke2NsaXAtcGF0aDpwYXRoKCJNMTggMEgwdjQuNDFBMTEgMTEgMCAwIDEgMTMuNTkgMThIMThWMFoiKX0udHYtY2lyY2xlLWxvZ28tcGFpcl9fbG9nby0teHNtYWxsOmxhc3QtY2hpbGR7dHJhbnNmb3JtOnRyYW5zbGF0ZSgtNnB4LDZweCl9LnR2LWNpcmNsZS1sb2dvLXBhaXJfX2xvZ28tLXNtYWxse2hlaWdodDoxOHB4O3dpZHRoOjE4cHh9LnR2LWNpcmNsZS1sb2dvLXBhaXJfX2xvZ28tLXNtYWxsOmZpcnN0LWNoaWxke2NsaXAtcGF0aDpwYXRoKCJNMTggMEgwdjguMDRBMTEgMTEgMCAwIDEgOS45NiAxOEgxOFYwWiIpfS50di1jaXJjbGUtbG9nby1wYWlyX19sb2dvLS1zbWFsbDpsYXN0LWNoaWxke3RyYW5zZm9ybTp0cmFuc2xhdGUoLTEwcHgsMTBweCl9LnR2LWNpcmNsZS1sb2dvLXBhaXJfX2xvZ28tLW1lZGl1bXtoZWlnaHQ6MjRweDt3aWR0aDoyNHB4fS50di1jaXJjbGUtbG9nby1wYWlyX19sb2dvLS1tZWRpdW06Zmlyc3QtY2hpbGR7Y2xpcC1wYXRoOnBhdGgoIk0yNCAwSDB2MTBjOCAwIDE0IDYgMTQgMTRoMTBWMFoiKX0udHYtY2lyY2xlLWxvZ28tcGFpcl9fbG9nby0tbWVkaXVtOmxhc3QtY2hpbGR7dHJhbnNmb3JtOnRyYW5zbGF0ZSgtMTJweCwxMnB4KX0udHYtY2lyY2xlLWxvZ28tcGFpcl9fbG9nby0tbGFyZ2V7aGVpZ2h0OjMycHg7d2lkdGg6MzJweH0udHYtY2lyY2xlLWxvZ28tcGFpcl9fbG9nby0tbGFyZ2U6Zmlyc3QtY2hpbGR7Y2xpcC1wYXRoOnBhdGgoIk0zMiAwSDB2MTRhMTggMTggMCAwIDEgMTggMThoMTRWMFoiKX0udHYtY2lyY2xlLWxvZ28tcGFpcl9fbG9nby0tbGFyZ2U6bGFzdC1jaGlsZHt0cmFuc2Zvcm06dHJhbnNsYXRlKC0xNnB4LDE2cHgpfS50di1jaXJjbGUtbG9nby1wYWlyX19sb2dvLS14bGFyZ2V7aGVpZ2h0OjM4cHg7d2lkdGg6MzhweH0udHYtY2lyY2xlLWxvZ28tcGFpcl9fbG9nby0teGxhcmdlOmZpcnN0LWNoaWxke2NsaXAtcGF0aDpwYXRoKCJNMzggMEgwdjE2LjAyTDEgMTZhMjEgMjEgMCAwIDEgMjAuOTggMjJIMzhWMFoiKX0udHYtY2lyY2xlLWxvZ28tcGFpcl9fbG9nby0teGxhcmdlOmxhc3QtY2hpbGR7dHJhbnNmb3JtOnRyYW5zbGF0ZSgtMThweCwxOHB4KX0udHYtY2lyY2xlLWxvZ28tcGFpcl9fbG9nby0teHhsYXJnZXtoZWlnaHQ6NzZweDt3aWR0aDo3NnB4fS50di1jaXJjbGUtbG9nby1wYWlyX19sb2dvLS14eGxhcmdlOmZpcnN0LWNoaWxke2NsaXAtcGF0aDpwYXRoKCJNNzYgMEgwdjMyLjA1QTQyIDQyIDAgMCAxIDQzLjk1IDc2SDc2VjBaIil9LnR2LWNpcmNsZS1sb2dvLXBhaXJfX2xvZ28tLXh4bGFyZ2U6bGFzdC1jaGlsZHt0cmFuc2Zvcm06dHJhbnNsYXRlKC0zNnB4LDM2cHgpfS50di1jaXJjbGUtbG9nby1wYWlyX19sb2dvLS14eHhsYXJnZXtoZWlnaHQ6MTE0cHg7d2lkdGg6MTE0cHh9LnR2LWNpcmNsZS1sb2dvLXBhaXJfX2xvZ28tLXh4eGxhcmdlOmZpcnN0LWNoaWxke2NsaXAtcGF0aDpwYXRoKCJNMTEzIDBIMFY0OGMzNS0xIDY2IDI2IDY2IDY2djBoNDhWMFoiKX0udHYtY2lyY2xlLWxvZ28tcGFpcl9fbG9nby0teHh4bGFyZ2U6bGFzdC1jaGlsZHt0cmFuc2Zvcm06dHJhbnNsYXRlKC01NHB4LDU0cHgpfS50di1jaXJjbGUtbG9nby1wYWlyX19sb2dvLWVtcHR5e2JhY2tncm91bmQtaW1hZ2U6dXJsKGVtcHR5LWNvaW4tbGlnaHQuNmQwYjczMWFjNmY0ODlmMDZlNjUuc3ZnKTtiYWNrZ3JvdW5kLXNpemU6Y29udGFpbn1odG1sLnRoZW1lLWRhcmsgLnR2LWNpcmNsZS1sb2dvLXBhaXJfX2xvZ28tZW1wdHl7YmFja2dyb3VuZC1pbWFnZTp1cmwoZW1wdHktY29pbi1kYXJrLmQ2ZDA3YmZmOTJkN2U0ZGZmNWFkLnN2Zyl9"}},"time_used":4,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":4,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/branding-source.83b7dbcf32c4ccb466bc.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:13.942Z","timestamp":1785148033942,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/branding-source.83b7dbcf32c4ccb466bc.js HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:13 GMT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a61b1a8-9984\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Thu, 23 Jul 2026 06:16:08 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/23/2026 10:17:28\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 8530633f8756e5add21367d54c235529\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":39300,"size_decoded":15763,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (3429)","md5":"e07829b9c2f075e0d79539e09e8ef5c5","sha1":"c0ecb7b2378f8c8f6bb127ab7ce32a33f2867147","sha256":"de200e3269223b7eaed298c26e6c4f1aa89cfefab594c21c75d8fa254a074888","sha512":"6caeee99a9d13d9694e591f9382f08303b729630991f2a101d67c7c6e9ab1aa3679a35fe72b8511546c1ed034286f9ef93d5b2e8878aeb902fdbc675fef15d33","ssdeep":"768:35sPlyn1pNoHx1dy6DXt6MfuD92GrAhihIo0Z8Qa2L/aQmvYsYIlL7GL4EUdBkp4:KdFrbPfuD92G8mcZQ2L/BmRdBIJNWGHs","tlshash":"5103196ee220585d13c301b49c7f2957961b50e5350a4becb2bc9dee105e9dab633b3c","first_seen":"2026-07-23T14:00:31.655738Z","last_seen":"2026-07-27T12:52:15.532806Z","times_seen":110,"resource_available":true,"data":"KHNlbGYud2VicGFja0NodW5rdHJhZGluZ3ZpZXc9c2VsZi53ZWJwYWNrQ2h1bmt0cmFkaW5ndmlld3x8W10pLnB1c2goW1s0OTg4M10sezc0NTgwOCh0KXt0LmV4cG9ydHM9e319LDIwNTYxMSh0LGUsaSl7InVzZSBzdHJpY3QiO2kuZChlLHtjcmVhdGVXVkZyb21HZXR0ZXJBbmRTdWJzY3JpcHRpb25zOigpPT5zfSk7dmFyIG89aSgyMzIzNjQpO2Z1bmN0aW9uIHModCxlKXtjb25zdCBpPW5ldyBvLldhdGNoZWRWYWx1ZSh0KCkpLHM9e307ZS5mb3JFYWNoKChlPT5lLnN1YnNjcmliZShzLCgoKT0+e2kuc2V0VmFsdWUodCgpKX0pKSkpO3JldHVybiBpLnJlYWRvbmx5KCkuc3Bhd24oKCgpPT5lLmZvckVhY2goKHQ9PnQudW5zdWJzY3JpYmVBbGwocykpKSkpfX0sNDkyNjc3KHQsZSxpKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbyh0KXtyZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KHQucmVwbGFjZSgvXCsvZywiICIpKS5yZXBsYWNlKC88XC8/W14+XSsoPnwkKS9nLCIiKX1mdW5jdGlvbiBzKHQpe2NvbnN0IGU9LyhbXiY9XSspPT8oW14mXSopL2csaT17fTtpZighdClyZXR1cm4gaTtsZXQgcz1lLmV4ZWModCk7Zm9yKDtzOylpW28oc1sxXSldPW8oc1syXSkscz1lLmV4ZWModCk7cmV0dXJuIGl9ZnVuY3Rpb24gYSgpe3JldHVybiBzKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2guc3Vic3RyaW5nKDEpKX1mdW5jdGlvbiBuKCl7Y29uc3QgdD13aW5kb3cubG9jYXRpb24uaHJlZi5zcGxpdCgiIyIpWzBdO3dpbmRvdy5oaXN0b3J5LnJlcGxhY2VTdGF0ZSgiIixkb2N1bWVudC50aXRsZSx0KX1mdW5jdGlvbiByKHQpe2NvbnN0IGU9W107Zm9yKGNvbnN0IGkgaW4gdClpZih0Lmhhc093blByb3BlcnR5KGkpJiZudWxsIT10W2ldKXtjb25zdCBvPXRbaV0scz0ib2JqZWN0Ij09dHlwZW9mIG8/SlNPTi5zdHJpbmdpZnkobyk6U3RyaW5nKG8pO2UucHVzaCh7a2V5OmkscGFpcjplbmNvZGVVUklDb21wb25lbnQoaSkrIj0iK2VuY29kZVVSSUNvbXBvbmVudChzKX0pfXJldHVybiBlLnNvcnQoKCh0LGUpPT50LmtleT5lLmtleT8xOnQua2V5PGUua2V5Py0xOjApKS5tYXAoKHQ9PnQucGFpcikpLmpvaW4oIiYiKX1pLmQoZSx7Y3JlYXRlVXJsUGFyYW1zOigpPT5yLGdldFVybFBhcmFtczooKT0+YSxyZW1vdmVIYXNoRnJvbVVybDooKT0+bn0pfSw1Mjg4NjQodCxlLGkpeyJ1c2Ugc3RyaWN0Ijt2YXIgbztpLmQoZSx7S25vd25BY3Rpb246KCk9Pm8sd2lkZ2V0U2hlcmlmZkFjdGlvbnM6KCk9PnN9KSxmdW5jdGlvbih0KXt0LkV4cGFuZD0iZXhwYW5kLWxvZ28iLHQuTGFyZ2VUcmFkZUxvZ289ImxhcmdlLXRyYWRlLWxvZ28ifShvfHwobz17fSkpO2NvbnN0IHM9bmV3IFNldChbby5FeHBhbmQsby5MYXJnZVRyYWRlTG9nb10pfSw0MDAxODEodCxlLGkpeyJ1c2Ugc3RyaWN0Ijthc3luYyBmdW5jdGlvbiBvKCl7Y29uc3R7Z2V0VHJhY2tlckluc3RhbmNlOnR9PWF3YWl0IFByb21pc2UuYWxsKFtpLmUoNzA2NDQpLGkuZSg5NTIwNyldKS50aGVuKGkuYmluZChpLDQ3NzE1MCkpO3JldHVybiB0KCl9aS5kKGUse2dldFRyYWNrZXI6KCk9Pm99KX0sOTA4NDU0KHQsZSxpKXsidXNlIHN0cmljdCI7aS5kKGUse2FkZEJyYW5kaW5nU291cmNlOigpPT5QdH0pO3ZhciBvPWkoOTUyOTAwKSxzPWkoMjA1NjExKSxhPWkoOTMwNTA2KSxuPWkoOTE4Nzc5KSxyPWkoNTQ3ODUxKSxoPWkoNzM2NTMxKSxsPWkoNzY4MzA1KSxkPWkoNTA1NTYpLGM9aSgxMzg2MzgpLGc9aSgxODUyNzEpLF89aSgzMTg5NzQpLG09aSg5MzAyMzEpLHU9aSg1OTYyNzIpLHc9aSg3NjMpLHA9aSgyMTg4MTQpLGY9aSg4NzM1NzMpLHY9aSgzNDI3OCkseD1pKDE1MTIxKSx5PWkoNDM5ODc5KSxiPWkoMzY0MTg4KSxBPWkoODM5NDEyKSxTPWkoNDAwMTgxKSxMPWkoNjAxNTg3KTthc3luYyBmdW5jdGlvbiBUKHQsZSl7Y29uc3QgaT1mdW5jdGlvbigpe2NvbnN0IHQ9d2luZG93LmluaXREYXRhLmhhc2hTZXR0aW5ncztpZihPYmplY3Qua2V5cyh0KS5sZW5ndGg+MClyZXR1cm4oMCxMLmZpbHRlclV0bUluZm8pKHQpO2NvbnN0IGU9bmV3IFVSTFNlYXJjaFBhcmFtcyhsb2NhdGlvbi5ocmVmKTtyZXR1cm57dXRtX2NhbXBhaWduOmUuZ2V0KCJ1dG1fY2FtcGFpZ24iKXx8dm9pZCAwLHV0bV9zb3VyY2U6ZS5nZXQoInV0bV9zb3VyY2UiKXx8dm9pZCAwfX0oKTsoYXdhaXQoMCxTLmdldFRyYWNrZXIpKCkpPy50cmFja1NlbGZEZXNjKCJpZ2x1OmNvbS50cmFkaW5ndmlldy93aWRnZXRfdHZfbGlua19jbGljay9qc29uc2NoZW1hLzEtMC0wIix7d2lkZ2V0X3R5cGU6ayhpKSxkb21haW46QyhpKSxsaW5rOnQsdGFyZ2V0X3R5cGU6ZX0pfWZ1bmN0aW9uIEModCl7Y29uc3QgZT1sb2NhdGlvbi5hbmNlc3Rvck9yaWdpbnM/LlswXXx8ZG9jdW1lbnQucmVmZXJyZXI7cmV0dXJuIHQudXRtX3NvdXJjZXx8ZnVuY3Rpb24odCl7dHJ5e3JldHVybiBuZXcgVVJMKHQpLmhvc3R9Y2F0Y2godCl7cmV0dXJuIiJ9fShlKX1mdW5jdGlvbiBrKHQpe2lmKHQudXRtX2NhbXBhaWduKXJldHVybiB0LnV0bV9jYW1wYWlnbjtjb25zdCBlPWxvY2F0aW9uLnBhdGhuYW1lO3JldHVybiBlLmluY2x1ZGVzKCJlbWJlZC13aWRnZXQiKT9lLnNwbGl0KCIvIilbMl06ZX12YXIgQj1pKDIyMTA2MSksUD1pKDM4NDAxNyksTT1pKDUyODg2NCk7Y29uc3QgVz13aW5kb3cuV0lER0VUX1NIRVJJRkZfSE9TVHx8Imh0dHBzOi8vd2lkZ2V0LXNoZXJpZmYueHN0YWdpbmctd2lkZ2V0LnR2IixWPSgwLEIuZ2V0TG9nZ2VyKSgiV2lkZ2V0U2hlcmlmZi5XaWRnZXQiKTtsZXQgej1udWxsO2FzeW5jIGZ1bmN0aW9uIFooKXtyZXR1cm4gbnVsbD09PXomJih6PWF3YWl0IGFzeW5jIGZ1bmN0aW9uKCl7Y29uc3QgdD1mdW5jdGlvbigpe2lmKGRvY3VtZW50LmxvY2F0aW9uLmFuY2VzdG9yT3JpZ2lucyYmZG9jdW1lbnQubG9jYXRpb24uYW5jZXN0b3JPcmlnaW5zLmxlbmd0aClyZXR1cm4gZG9jdW1lbnQubG9jYXRpb24uYW5jZXN0b3JPcmlnaW5zW2RvY3VtZW50LmxvY2F0aW9uLmFuY2VzdG9yT3JpZ2lucy5sZW5ndGgtMV07dHJ5e3JldHVybiBuZXcgVVJMKGRvY3VtZW50LnJlZmVycmVyKS5vcmlnaW59Y2F0Y2godCl7CnJldHVybiBkb2N1bWVudC5sb2NhdGlvbi5vcmlnaW58fG51bGx9fSgpO2lmKG51bGw9PT10KXJldHVybiBWLmxvZ1dhcm4oImFuY2VzdG9yT3JpZ2luIGlzIHVuZGVmaW5lZCIpLFByb21pc2UucmVzb2x2ZShbXSk7Y29uc3QgZT1uZXcgVVJMKCIvc2hlcmlmZi9hcGkvdjEvcnVsZXMvc2VhcmNoIixXKTtlLnNlYXJjaFBhcmFtcy5hcHBlbmQoIm9yaWdpbiIsdCk7cmV0dXJuKGF3YWl0KDAsUC5mZXRjaCkoZS50b0pTT04oKSkudGhlbigodD0+e2lmKCF0Lm9rKXRocm93IG5ldyBFcnJvcigiR3VhcmQgcmVxdWVzdCBlcnJvciBvY2N1cmVkIik7cmV0dXJuIDIwND09PXQuc3RhdHVzP1Byb21pc2UucmVzb2x2ZSh7YWN0aW9uczpbXX0pOnQuanNvbigpfSkpLmNhdGNoKCh0PT4oVi5sb2dXYXJuKHQubWVzc2FnZSksUHJvbWlzZS5yZXNvbHZlKHthY3Rpb25zOltdfSkpKSkpLmFjdGlvbnMuZmlsdGVyKCh0PT5NLndpZGdldFNoZXJpZmZBY3Rpb25zLmhhcyh0KSkpfSgpKSxQcm9taXNlLnJlc29sdmUoeil9dmFyIEk9aSg0NzkzNCksSD1pKDc3NDUwNyksRj1pKDc4NjQzNiksTz1pKDgyMjcyNiksRD1pKDUxNTkyKSxSPWkoOTI2MTQ5KSxFPWkoOTc2ODEzKSxVPWkoNTk1ODAwKSxOPWkoMzkyMjIzKSwkPWkoODc3OTc5KSxqPWkoNzIxNjQ2KSxHPWkoMzMzMzE4KSxxPWkoNDIyNzExKSxLPWkoNTkyMTU1KTtpKDc0NTgwOCk7Y29uc3QgUT17Y3VzdG9tQnJhbmRpbmdUcmFkaW5nVmlld1RleHQ6ZC5jb2xvcnNQYWxldHRlWyJjb2xvci1icmFuZCJdLGN1c3RvbUJyYW5kaW5nVGV4dDpkLmNvbG9yc1BhbGV0dGVbImNvbG9yLWNvbGQtZ3JheS04NTAiXSxiYWNrZ3JvdW5kOmQuY29sb3JzUGFsZXR0ZVsiY29sb3ItY29sZC1ncmF5LTkwMCJdLHNoYWRvdzpkLmNvbG9yc1BhbGV0dGVbImNvbG9yLWNvbGQtZ3JheS03MDAiXSx0ZXh0OmQuY29sb3JzUGFsZXR0ZVsiY29sb3Itd2hpdGUiXSxzdGF0aWNUZXh0QmFja2dyb3VuZDooMCxmLmdlbmVyYXRlQ29sb3IpKGQuY29sb3JzUGFsZXR0ZVsiY29sb3ItY29sZC1ncmF5LTgwMCJdLDIwKSxsb2dvOmQuY29sb3JzUGFsZXR0ZVsiY29sb3Itd2hpdGUiXSxwbGF0Zm9ybUJnQ29sb3I6ZC5jb2xvcnNQYWxldHRlWyJjb2xvci1jb2xkLWdyYXktOTAwIl0scGxhdGZvcm1GZ0NvbG9yOmQuY29sb3JzUGFsZXR0ZVsiY29sb3ItY29sZC1ncmF5LTIwMCJdfSxKPXtjdXN0b21CcmFuZGluZ1RyYWRpbmdWaWV3VGV4dDpkLmNvbG9yc1BhbGV0dGVbImNvbG9yLWJyYW5kIl0sY3VzdG9tQnJhbmRpbmdUZXh0OmQuY29sb3JzUGFsZXR0ZVsiY29sb3ItY29sZC1ncmF5LTg1MCJdLGJhY2tncm91bmQ6ZC5jb2xvcnNQYWxldHRlWyJjb2xvci13aGl0ZSJdLHNoYWRvdzpkLmNvbG9yc1BhbGV0dGVbImNvbG9yLWNvbGQtZ3JheS0xNTAiXSx0ZXh0OmQuY29sb3JzUGFsZXR0ZVsiY29sb3ItY29sZC1ncmF5LTkwMCJdLHN0YXRpY1RleHRCYWNrZ3JvdW5kOigwLGYuZ2VuZXJhdGVDb2xvcikoZC5jb2xvcnNQYWxldHRlWyJjb2xvci13aGl0ZSJdLDIwKSxsb2dvOmQuY29sb3JzUGFsZXR0ZVsiY29sb3ItY29sZC1ncmF5LTkwMCJdLHBsYXRmb3JtQmdDb2xvcjpkLmNvbG9yc1BhbGV0dGVbImNvbG9yLXdoaXRlIl0scGxhdGZvcm1GZ0NvbG9yOmQuY29sb3JzUGFsZXR0ZVsiY29sb3ItY29sZC1ncmF5LTkwMCJdfTtmdW5jdGlvbiBZKHQsZSl7cmV0dXJuIHQucmVwbGFjZSgvYmxhY2svZyxlLnBsYXRmb3JtQmdDb2xvcikucmVwbGFjZSgvbGlnaHRncmF5L2csZS5wbGF0Zm9ybUZnQ29sb3IpfWNvbnN0IFg9W1sibG9nby1saWdodCIsWSgkLEopXSxbImxvZ28tZGFyayIsWSgkLFEpXSxbInByby1iYWRnZS1saWdodCIsWShqLEopXSxbInByby1iYWRnZS1kYXJrIixZKGosUSldLFsidHJhZGluZ3ZpZXctbGlnaHQiLFkoRyxKKV0sWyJ0cmFkaW5ndmlldy1kYXJrIixZKEcsUSldLFsibG9nby1vbGQtc3R5bGUiLFVdLFsidHJhZGluZ3ZpZXctb2xkLXN0eWxlIixOXSxbImxvZ28tdHJhZGUtd2l0aCIscV0sWyJ0cmFkaW5ndmlldy10cmFkZS13aXRoIixLXV0sdHQ9bmV3IE1hcChYKSxldD0ic2l0ZV9icmFuZGluZyIsaXQ9IndpZGdldF9icmFuZGluZyIsb3Q9IndpZGdldF9yZWZlcnJhbF9icmFuZGluZyIsc3Q9IndpZGdldF9jdXN0b21fYnJhbmRpbmciLGF0PSJ3aWRnZXRfY3VzdG9tX25vX3Bvd2VyZWRfYnJhbmRpbmciLG50PSJmdW5kYW1lbnRhbF9icmFuZGluZyIscnQ9ImZ1bmRhbWVudGFsX2N1c3RvbV9icmFuZGluZyIsaHQ9ImZ1bmRhbWVudGFsX2N1c3RvbV9ub19wb3dlcmVkX2JyYW5kaW5nIixsdD0ibGlicmFyeV9icmFuZGluZyIsZHQ9ImxpYnJhcnlfY3VzdG9tX2JyYW5kaW5nIixjdD0ibGlicmFyeV9jdXN0b21fbm9fcG93ZXJlZF9icmFuZGluZyIsZ3Q9bmF2aWdhdG9yLnVzZXJBZ2VudC50b0xvd2VyQ2FzZSgpLmluZGV4T2YoImNocm9tZSIpPi0xJiYtMT09PW5hdmlnYXRvci51c2VyQWdlbnQudG9Mb3dlckNhc2UoKS5pbmRleE9mKCJlZGdlIiksX3Q9d2luZG93LnVybFBhcmFtc3x8e30sbXQ9d2luZG93LmluaXREYXRhfHx7fTtmdW5jdGlvbiB1dCh0KXtyZXR1cm4gX3RbdF18fG10Lmhhc2hTZXR0aW5nc1t0XXx8IiJ9KF90LnJlZmVycmFsX2lkfHxfdC5ub19yZWZlcnJhbF9pZCkmJigwLEEuZW5hYmxlKShfdC5yZWZlcnJhbF9pZHx8IiIsImFnZ3Jlc3NpdmUiKTtnLnQobnVsbCx2b2lkIDAsaSg0MTQwMTgpKSxnLnQobnVsbCx2b2lkIDAsaSg2MzM5MDYpKTtjb25zdCB3dD1nLnQobnVsbCx2b2lkIDAsaSgzMDA3ODgpKSxwdD1nLnQobnVsbCx2b2lkIDAsaSgyOTc5NDgpKSxmdD1nLnQobnVsbCx2b2lkIDAsaSg2MTgzNTkpKSsiICI7dmFyIHZ0OyFmdW5jdGlvbih0KXt0W3QuT2xkRm9udEFkZGl0aW9uYWxWZXJ0aWNhbE9mZnNldD0wXT0iT2xkRm9udEFkZGl0aW9uYWxWZXJ0aWNhbE9mZnNldCIsdFt0Lk5ld0ZvbnRBZGRpdGlvbmFsVmVydGljYWxPZmZzZXQ9LjFdPSJOZXdGb250QWRkaXRpb25hbFZlcnRpY2FsT2Zmc2V0Iix0W3QuU3Ryb2tlV2lkdGg9NF09IlN0cm9rZVdpZHRoIiwKdFt0LlN0YXRpY0xvZ29Ib3Jpem9udGFsVGV4dE9mZnNldD01XT0iU3RhdGljTG9nb0hvcml6b250YWxUZXh0T2Zmc2V0Iix0W3QuVGV4dFdpZHRoQ29tcGVuc2F0aW9uPTJdPSJUZXh0V2lkdGhDb21wZW5zYXRpb24iLHRbdC5BZGFwdGl2ZVdpZHRoVG9IaWRlVGV4dD01MDBdPSJBZGFwdGl2ZVdpZHRoVG9IaWRlVGV4dCIsdFt0LldpZHRoVG9IaWRlTG9nb0lmU21hbGxOb0Rpc3BsYXlFbmFibGVkPTQ4MF09IldpZHRoVG9IaWRlTG9nb0lmU21hbGxOb0Rpc3BsYXlFbmFibGVkIix0W3QuVGV4dEFkZGl0aW9uYWxDcm9wV2lkdGg9MTFdPSJUZXh0QWRkaXRpb25hbENyb3BXaWR0aCIsdFt0LkJhZGdlTG9nb01hcmdpbj0tMTFdPSJCYWRnZUxvZ29NYXJnaW4iLHRbdC5CYWRnZVRleHRNYXJnaW49LThdPSJCYWRnZVRleHRNYXJnaW4iLHRbdC5UZXh0QW5pbWF0ZWRBbHBoYVN0YXJ0PS4zXT0iVGV4dEFuaW1hdGVkQWxwaGFTdGFydCIsdFt0LlRleHRBbmltYXRlZEFscGhhRW5kPTFdPSJUZXh0QW5pbWF0ZWRBbHBoYUVuZCIsdFt0LkFuaW1hdGlvbkR1cmF0aW9uPTIwMF09IkFuaW1hdGlvbkR1cmF0aW9uIn0odnR8fCh2dD17fSkpO2NvbnN0IHh0PSgwLF8ub25XaWRnZXQpKCkseXQ9eHQ7Y2xhc3MgYnQgZXh0ZW5kcyB1LkN1c3RvbVNvdXJjZUJhc2V7Y29uc3RydWN0b3IodCxlLGkpe3N1cGVyKHQsZSksdGhpcy5fY2FudmFzV2lkdGg9MCx0aGlzLl9wYW5lSGVpZ2h0PTAsdGhpcy5fbGVmdD0xMyx0aGlzLl9ib3R0b209MzYsdGhpcy5fbGF5b3V0PWV0LHRoaXMuX25lZWRUb1Nob3c9ITAsdGhpcy5fc2hvd0JyYW5kaW5nPSExLHRoaXMuX2N1c3RvbUxvZ29TcmM9IiIsdGhpcy5fY3VzdG9tTG9nb0xpbms9IiIsdGhpcy5fdHJhZGluZ3ZpZXdMb2dvTGlua1RvUGF0aD0iIix0aGlzLl9jdWJpY0Jlemllcj1uZXcgcC5DdWJpY0JlemllciguNCwuMDEsLjIyLDEpLHRoaXMuX29wZW5BbmltYXRpb249bnVsbCx0aGlzLl9jbG9zZUFuaW1hdGlvbj1udWxsLHRoaXMuX3Bvd0J5PW51bGwsdGhpcy5fY3VzdG9tPW51bGwsdGhpcy5fZGVzdHJveWVkPSExLHRoaXMuX21haW5TZXJpZXM9dGhpcy5fbW9kZWwubWFpblNlcmllcygpLHRoaXMuX3Zpc2libGU9aSx0aGlzLl9zaG93Rm9yUHJvPSFlLm9uV2lkZ2V0KCk7Y29uc3Qgbz0oKT0+dGhpcy5fbW9kZWwudXBkYXRlU291cmNlKHRoaXMpO3RoaXMuX3Zpc2libGUuc3Vic2NyaWJlKG8pLHRoaXMuX2Rhcms9ZS5kYXJrKCkuc3Bhd24oKSx0aGlzLl9kYXJrLnN1YnNjcmliZShvKSx0aGlzLl9jaGVja0xheW91dCgpLHRoaXMuX2xheW91dCE9PXN0JiZ0aGlzLl9sYXlvdXQhPT1ydHx8KHRoaXMuX2xlZnQ9OCx0aGlzLl9ib3R0b209NSk7Y29uc3Qgcz0oKT0+e3RoaXMuX25lZWRUb1Nob3c/dGhpcy5fc2hvd0JyYW5kaW5nPSEwOnRoaXMuX3Nob3dCcmFuZGluZz0hMX07dGhpcy5fcmVzaXplSGFuZGxlckRlbGF5ZWQ9KDAsci5kZWZhdWx0KShzLDIwMCkscygpLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJyZXNpemUiLHRoaXMuX3Jlc2l6ZUhhbmRsZXJEZWxheWVkKSx0aGlzLl9tb2RlbC5pc1NuYXBzaG90KCk/dGhpcy5faW5pdCgpOih0aGlzLl9tYWluU2VyaWVzLmRhdGFFdmVudHMoKS5zeW1ib2xSZXNvbHZlZCgpLnN1YnNjcmliZSh0aGlzLHRoaXMuX2luaXQpLG51bGwhPT10aGlzLl9tYWluU2VyaWVzLnN5bWJvbEluZm8oKSYmdGhpcy5faW5pdCgpKSx0aGlzLl9yZW5kZXJlcj17ZHJhdzp0aGlzLmRyYXcuYmluZCh0aGlzKSxoaXRUZXN0OnRoaXMuaGl0VGVzdC5iaW5kKHRoaXMpfSxlLm9uV2lkZ2V0KCl8fHdpbmRvdy5sb2dpblN0YXRlQ2hhbmdlLnN1YnNjcmliZSh0aGlzLHRoaXMuX2luaXQpfWRlc3Ryb3koKXt3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigicmVzaXplIix0aGlzLl9yZXNpemVIYW5kbGVyRGVsYXllZCksdGhpcy5fbWFpblNlcmllcy5kYXRhRXZlbnRzKCkuc3ltYm9sUmVzb2x2ZWQoKS51bnN1YnNjcmliZUFsbCh0aGlzKSx0aGlzLl9wb3dCeSYmdGhpcy5fcG93QnkuZGVzdHJveSgpLHRoaXMuX21vZGVsLm9uV2lkZ2V0KCl8fHdpbmRvdy5sb2dpblN0YXRlQ2hhbmdlLnVuc3Vic2NyaWJlQWxsKHRoaXMpLHRoaXMuX3Zpc2libGUucmVsZWFzZSgpLHRoaXMuX2RhcmsuZGVzdHJveSgpLHRoaXMuX2Rlc3Ryb3llZD0hMH1wYW5lVmlld3ModCl7aWYod2luZG93LlRyYWRpbmdWaWV3LnByaW50aW5nJiZ0aGlzLl9sYXlvdXQhPT1hdCYmdGhpcy5fbGF5b3V0IT09aHQpcmV0dXJuW107aWYoIXRoaXMuX3Zpc2libGUudmFsdWUoKSlyZXR1cm5bXTtpZih0aGlzLl9sYXlvdXQ9PT1ldCYmIXRoaXMuX3Nob3dGb3JQcm8mJndpbmRvdy51c2VyJiZ3aW5kb3cudXNlci5pc19wcm8pcmV0dXJuW107Y29uc3QgZT10aGlzLl9tb2RlbC5tYWluUGFuZSgpO2lmKCFlKXJldHVybltdO2NvbnN0IGk9KDAsbS5pc0ZlYXR1cmVzZXRFbmFibGVkKSgibW92ZV9sb2dvX3RvX21haW5fcGFuZSIpO2xldCBvPSExO2lmKHQubWF4aW1pemVkKCkudmFsdWUoKSlvPSEwO2Vsc2UgaWYoaSlvPWUuY29sbGFwc2VkKCkudmFsdWUoKT90PT09dGhpcy5fbW9kZWwucGFuZXMoKS5maW5kKCh0PT4hdC5jb2xsYXBzZWQoKS52YWx1ZSgpKSk6dC5pc01haW5QYW5lKCkudmFsdWUoKTtlbHNlIGlmKHRoaXMuX21vZGVsLmxhc3RQYW5lKCkuY29sbGFwc2VkKCkudmFsdWUoKSl7Y29uc3QgZT10aGlzLl9tb2RlbC5wYW5lcygpO2ZvcihsZXQgaT1lLmxlbmd0aC0xO2k+PTA7LS1pKXtjb25zdCBzPWVbaV07aWYoIXMuY29sbGFwc2VkKCkudmFsdWUoKSl7bz1zPT09dDticmVha319fWVsc2Ugbz10LmlzTGFzdCgpO3JldHVybiBvP1t7cmVuZGVyZXI6dGhpcy5yZW5kZXJlci5iaW5kKHRoaXMpfV06W119bGFiZWxQYW5lVmlld3ModCl7cmV0dXJuW119cHJpY2VBeGlzVmlld3ModCxlKXtyZXR1cm5bXX11cGRhdGVBbGxWaWV3cygpe311cGRhdGVWaWV3c0ZvclBhbmUodCl7fXByaWNlU2NhbGUoKXtyZXR1cm4gbnVsbH1yZW5kZXJlcih0KXtyZXR1cm4gdGhpcy5fcGFuZUhlaWdodD10Lm1lZGlhU2l6ZS5oZWlnaHQsdGhpcy5fY2FudmFzV2lkdGg9dC5tZWRpYVNpemUud2lkdGgsCnRoaXMuX3JlbmRlcmVyfWhhc0NvbnRleHRNZW51KCl7cmV0dXJuITF9b25DbGlja091dHNpZGUoKXt0aGlzLl9oYXNBbmltYXRpb24oKSYmdGhpcy5fc3RhcnRDbG9zZUFuaW1hdGlvbigpfWhpdFRlc3QodCl7aWYoIXRoaXMuX3Nob3dCcmFuZGluZ3x8KDAsbS5pc0ZlYXR1cmVzZXRFbmFibGVkKSgibG9nb193aXRob3V0X2xpbmsiKSlyZXR1cm4gbnVsbDtpZih0aGlzLl9wb3dCeSYmdGhpcy5fbGF5b3V0IT09YXQmJnRoaXMuX2xheW91dCE9PWh0JiYodGhpcy5fcG93QnkuaGl0VGVzdCh0KXx8dGhpcy5fY3VzdG9tJiZ0aGlzLl9jdXN0b20uaGl0VGVzdCh0KSkpe2NvbnN0IHQ9dGhpcy5fbGF5b3V0IT09ZXR8fCF0aGlzLl9tb2RlbC5pc1NuYXBzaG90KCkmJighd2luZG93LmlzX2F1dGhlbnRpY2F0ZWR8fCgwLEkuY2FuVXBncmFkZVBsYW4pKCkpO3JldHVybiBuZXcgdy5IaXRUZXN0UmVzdWx0KHcuSGl0VGFyZ2V0LkN1c3RvbSx7aGlkZUNyb3NzaGFpckxpbmVzT25Ib3ZlcjohMCxjdXJzb3JUeXBlOnQ/RS5QYW5lQ3Vyc29yVHlwZS5Qb2ludGVyOkUuUGFuZUN1cnNvclR5cGUuRGVmYXVsdCxjbGlja0hhbmRsZXI6KCk9Pnt0aGlzLl9vcGVuTGluaygpLHRoaXMuX3Bvd0J5JiYodGhpcy5fcG93QnkuYWN0aXZlPSExKX0sdGFwSGFuZGxlcjooKT0+e3RoaXMuX2hhc0FuaW1hdGlvbigpP3RoaXMuX3RvZ2dsZU9wZW5BbmltYXRlZE9yT3BlbkxpbmsoKTp0aGlzLl9vcGVuTGluaygpfSxtb3VzZUVudGVySGFuZGxlcjooKT0+e3RoaXMuX3Bvd0J5JiYodGhpcy5fcG93QnkuaG92ZXJlZD0hMCksdGhpcy5faGFzQW5pbWF0aW9uKCkmJnRoaXMuX3N0YXJ0T3BlbkFuaW1hdGlvbigpfSxtb3VzZUxlYXZlSGFuZGxlcjooKT0+e3RoaXMuX3Bvd0J5JiYodGhpcy5fcG93QnkuaG92ZXJlZD0hMSx0aGlzLl9wb3dCeS5hY3RpdmU9ITEpLHRoaXMuX2hhc0FuaW1hdGlvbigpJiZ0aGlzLl9zdGFydENsb3NlQW5pbWF0aW9uKCl9LG1vdXNlRG93bkhhbmRsZXI6KCk9Pnt0aGlzLl9wb3dCeSYmKHRoaXMuX3Bvd0J5LmFjdGl2ZT0hMCl9LG1vdXNlVXBIYW5kbGVyOigpPT57dGhpcy5fcG93QnkmJih0aGlzLl9wb3dCeS5hY3RpdmU9ITEpfX0pfXJldHVybiBudWxsfXR2VXJsKCl7Y29uc3QgdD1tdC5xdWVyeVNldHRpbmdzPy5sb2NhbGU/P210LmN1cnJlbnRMb2NhbGVJbmZvPy5sYW5ndWFnZSxlPSJodHRwczovLyIrKDAsYi5nZXRUVkhvc3RGcm9tTG9jYWxlKSh0fHwiZW4iKTtsZXQgaT1uZXcgVVJMKGUpO3tjb25zdCB0PXRoaXMuX21haW5TZXJpZXMucHJvU3ltYm9sKCksZT1tdC5jdXN0b21lcj8/bXQud2lkZ2V0RGVmYXVsdHM/LmN1c3RvbWVyO2lmKCgwLG0uaXNGZWF0dXJlc2V0RW5hYmxlZCkoInJlZmVycmFsX3Byb2dyYW1fZm9yX3dpZGdldF9vd25lcnMiKSl7Y29uc3QgdD0oMCxBLnJlZmVyZW5jZVRvVHJhZGluZ1ZpZXcpKCksZT10LmluZGV4T2YoInV0bV9zb3VyY2UiKTstMSE9PWUmJihpPW5ldyBVUkwodC5zbGljZSgwLGUpKSl9ZWxzZSBpZihlKXtpZigidHdpdHRlciI9PT1lJiYiL3R3aXR0ZXItY2hhcnQvIj09PXdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSlyZXR1cm4gaS5wYXRobmFtZT0iY2hhcnQiLGkuc2VhcmNoUGFyYW1zLmFwcGVuZCgic3ltYm9sIix0KSxpLnNlYXJjaFBhcmFtcy5hcHBlbmQoInV0bV9zb3VyY2UiLCJ3d3cudHdpdHRlci5jb20iKSxpLnNlYXJjaFBhcmFtcy5hcHBlbmQoInV0bV9jYW1wYWlnbiIsInR3aXR0ZXItY2hhcnQiKSxpLnRvU3RyaW5nKCk7aWYoInRlbGVncmFtIj09PWUmJiIvdGVsZWdyYW0vY2hhcnQvIj09PXdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSlyZXR1cm4gaS5wYXRobmFtZT0iY2hhcnQiLGkuc2VhcmNoUGFyYW1zLmFwcGVuZCgic3ltYm9sIix0KSxpLnNlYXJjaFBhcmFtcy5hcHBlbmQoInV0bV9zb3VyY2UiLCJ0ZWxlZ3JhbS5vcmciKSxpLnNlYXJjaFBhcmFtcy5hcHBlbmQoInV0bV9tZWRpdW0iLCJ0ZWxlZ3JhbS1taW5pLWFwcCIpLGkuc2VhcmNoUGFyYW1zLmFwcGVuZCgidXRtX2NhbXBhaWduIiwidGVsZWdyYW0tbWluaS1hcHAtbG9nbyIpLGkudG9TdHJpbmcoKX1lbHNlIGkucGF0aG5hbWU9ImNoYXJ0IixpLnNlYXJjaFBhcmFtcy5hcHBlbmQoInN5bWJvbCIsdCk7Y29uc3Qgbz11dCgidXRtX2NhbXBhaWduIik7aS5zZWFyY2hQYXJhbXMuYXBwZW5kKCJ1dG1fc291cmNlIix1dCgidXRtX3NvdXJjZSIpKSxpLnNlYXJjaFBhcmFtcy5hcHBlbmQoInV0bV9tZWRpdW0iLHV0KCJ1dG1fbWVkaXVtIikpLGkuc2VhcmNoUGFyYW1zLmFwcGVuZCgidXRtX2NhbXBhaWduIixvP2Ake299LWxvZ29gOiIiKSxpLnNlYXJjaFBhcmFtcy5hcHBlbmQoInV0bV90ZXJtIix0KX1yZXR1cm4gaS50b1N0cmluZygpfWRyYXcodCxlKXtpZighdGhpcy5fc2hvd0JyYW5kaW5nKXJldHVybjtsZXQgaT0wO190LnV0bT0hMCwoMCx4LmRyYXdTY2FsZWQpKHQsZS5ob3Jpem9udGFsUGl4ZWxSYXRpbyxlLnZlcnRpY2FsUGl4ZWxSYXRpbywoKCk9PntpZih0aGlzLl9wb3dCeSYmdGhpcy5fcG93Qnkuc2hvdyl7aT10aGlzLl9wb3dCeS5oZWlnaHQsdC5zYXZlKCk7Y29uc3Qgbz1uZXcgaC5Qb2ludCh0aGlzLl9sZWZ0LHRoaXMuX3BhbmVIZWlnaHQtdGhpcy5fYm90dG9tLWkpO3RoaXMuX3Bvd0J5LmRyYXcobyx0LGUsdGhpcy5fY2FudmFzV2lkdGgpLHQucmVzdG9yZSgpfWlmKHRoaXMuX2N1c3RvbSYmdGhpcy5fY3VzdG9tLnNob3cpe3Quc2F2ZSgpO2NvbnN0IG89bmV3IGguUG9pbnQodGhpcy5fbGVmdCx0aGlzLl9wYW5lSGVpZ2h0LXRoaXMuX2JvdHRvbS1pLXRoaXMuX2N1c3RvbS5oZWlnaHQpO3RoaXMuX2N1c3RvbS5kcmF3KG8sdCxlKSx0LnJlc3RvcmUoKX19KSl9X2luaXQoKXt0aGlzLl9jaGVja0xheW91dCgpO2NvbnN0IHQ9dGhpcy5fbWFpblNlcmllcy5zeW1ib2xJbmZvKCk7dGhpcy5fcG93QnkmJnRoaXMuX3Bvd0J5LmRlc3Ryb3koKSx0aGlzLl9wb3dCeT1uZXcgQ3QodGhpcy5fbGF5b3V0LHQ/Lm5hbWV8fCIiLHRoaXMuX21vZGVsLCgoKT0+dGhpcy5fbW9kZWwuZnVsbFVwZGF0ZSgpKSksCnRoaXMuX2N1c3RvbT1uZXcga3QodGhpcy5fbGF5b3V0LHRoaXMuX2N1c3RvbUxvZ29TcmMsKCgpPT50aGlzLl9tb2RlbC5mdWxsVXBkYXRlKCkpKSx0aGlzLl9vcGVuQW5pbWF0aW9uPW51bGwsdGhpcy5fY2xvc2VBbmltYXRpb249bnVsbCwoMCxfLm9uV2lkZ2V0KSgpJiZaKCkudGhlbigodD0+e3QuaW5jbHVkZXMoTS5Lbm93bkFjdGlvbi5MYXJnZVRyYWRlTG9nbykmJnRoaXMuX3Bvd0J5JiZ0aGlzLl9wb3dCeS5zaG93VHJhZGVXaXRoTG9nbyghMCksKHQuaW5jbHVkZXMoTS5Lbm93bkFjdGlvbi5FeHBhbmQpfHx0LmluY2x1ZGVzKE0uS25vd25BY3Rpb24uTGFyZ2VUcmFkZUxvZ28pKSYmKHRoaXMuX3N0YXJ0T3BlbkFuaW1hdGlvbigpLHRoaXMuX2Nsb3NlQW5pbWF0aW9uPXtzdG9wOigpPT57fSxjb21wbGV0ZWQ6KCk9PiExfSl9KSksdGhpcy5fbW9kZWwubGlnaHRVcGRhdGUoKX1fY2hlY2tMYXlvdXQoKXtpZigoMCxtLmlzRmVhdHVyZXNldEVuYWJsZWQpKCJ3aWRnZXQiKSl7Y29uc3QgdD1tdC53aWRnZXREZWZhdWx0cy5sb2dvfHx7fSxlPSgwLG0uaXNGZWF0dXJlc2V0RW5hYmxlZCkoImZ1bmRhbWVudGFsX3dpZGdldCIpO3RoaXMuX25lZWRUb1Nob3c9IXQud2hpdGVsYWJlbCx0LmltYWdlPyh0aGlzLl9jdXN0b21Mb2dvU3JjPSIvc3RhdGljL2ltYWdlcy93aWRnZXQtZW1iZWQtbG9nby8iK3QuaW1hZ2UsdC5ub19wb3dlcmVkX2J5P3RoaXMuX2xheW91dD1lP2h0OmF0OnRoaXMuX2xheW91dD1lP3J0OnN0KTpfdC5yZWZlcnJhbF9pZHx8X3Qubm9fcmVmZXJyYWxfaWQ/dGhpcy5fbGF5b3V0PW90OnRoaXMuX2xheW91dD1lP250Oml0fWVsc2UgdGhpcy5fbGF5b3V0PWV0fV9zdGFydE9wZW5BbmltYXRpb24oKXtpZihudWxsIT09dGhpcy5fb3BlbkFuaW1hdGlvbilyZXR1cm47bnVsbCE9PXRoaXMuX2Nsb3NlQW5pbWF0aW9uJiYodGhpcy5fY2xvc2VBbmltYXRpb24uc3RvcCgpLHRoaXMuX2Nsb3NlQW5pbWF0aW9uPW51bGwpO2NvbnN0IHQ9KDAsYy5lbnN1cmVOb3ROdWxsKSh0aGlzLl9wb3dCeSkuYW5pbWF0aW9uU3RlcCgpO3RoaXMuX29wZW5BbmltYXRpb249KDAsdi5kb0FuaW1hdGUpKHtmcm9tOnQsdG86MSxkdXJhdGlvbjoyMDAqKDEtdCksZWFzaW5nOnRoaXMuX2N1YmljQmV6aWVyLmVhc2luZ0Z1bmMsb25TdGVwOnRoaXMuX2FuaW1hdGVkRHJhd1N0ZXAuYmluZCh0aGlzKX0pfV9zdGFydENsb3NlQW5pbWF0aW9uKCl7aWYobnVsbCE9PXRoaXMuX2Nsb3NlQW5pbWF0aW9uKXJldHVybjtudWxsIT09dGhpcy5fb3BlbkFuaW1hdGlvbiYmKHRoaXMuX29wZW5BbmltYXRpb24uc3RvcCgpLHRoaXMuX29wZW5BbmltYXRpb249bnVsbCk7Y29uc3QgdD0oMCxjLmVuc3VyZU5vdE51bGwpKHRoaXMuX3Bvd0J5KS5hbmltYXRpb25TdGVwKCk7dGhpcy5fY2xvc2VBbmltYXRpb249KDAsdi5kb0FuaW1hdGUpKHtmcm9tOnQsdG86MCxkdXJhdGlvbjoyMDAqdCxlYXNpbmc6dGhpcy5fY3ViaWNCZXppZXIuZWFzaW5nRnVuYyxvblN0ZXA6dGhpcy5fYW5pbWF0ZWREcmF3U3RlcC5iaW5kKHRoaXMpfSl9X2FuaW1hdGVkRHJhd1N0ZXAodCxlKXsoMCxjLmVuc3VyZU5vdE51bGwpKHRoaXMuX3Bvd0J5KS5hbmltYXRlZERyYXdTdGVwKGUpLHRoaXMuX21vZGVsLmxpZ2h0VXBkYXRlKCl9X2hhc0FuaW1hdGlvbigpe3JldHVybiBudWxsIT09dGhpcy5fcG93QnkmJnRoaXMuX3Bvd0J5Lmhhc0FuaW1hdGlvbigpfV9vcGVuR29Qcm8oKXt3aW5kb3cucnVuT3JTaWduSW4oKGFzeW5jKCk9PntpZighKDAsSS5jYW5VcGdyYWRlUGxhbikoKSlyZXR1cm47Y29uc3R7b3BlbkdvUHJvOnR9PWF3YWl0IFByb21pc2UuYWxsKFtpLmUoMzk4MyksaS5lKDMzMjIxKSxpLmUoMTc5OTEpLGkuZSgyMjU0NyldKS50aGVuKGkuYmluZChpLDUxNzk5MSkpO3RoaXMuX2Rlc3Ryb3llZHx8dCh7Z29wcm9Tb3VyY2U6ImJyYWRpbmcifSwoKCk9Pnt9KSl9KSx7c291cmNlOiJicmFuZGluZyJ9KX1fb3BlbkxpbmsoKXtpZigoMCxfLmlzU3ltcGhvbnlFbWJlZCkoKSlyZXR1cm4hMTtpZih0aGlzLl9sYXlvdXQ9PT1ldClyZXR1cm4gdGhpcy5fbW9kZWwuaXNTbmFwc2hvdCgpfHx0aGlzLl9vcGVuR29Qcm8oKSwhMTsoMCxtLmlzRmVhdHVyZXNldEVuYWJsZWQpKCJ3aWRnZXQiKSYmVCh0aGlzLnR2VXJsKCksImNvcHlyaWdodCIpO3JldHVybigwLGMuZW5zdXJlTm90TnVsbCkod2luZG93Lm9wZW4odGhpcy50dlVybCgpLCJfYmxhbmsiKSkub3BlbmVyPW51bGwsITB9X3RvZ2dsZU9wZW5BbmltYXRlZE9yT3BlbkxpbmsoKXtudWxsIT09dGhpcy5fb3BlbkFuaW1hdGlvbiYmdGhpcy5fb3BlbkFuaW1hdGlvbi5jb21wbGV0ZWQoKT90aGlzLl9vcGVuTGluaygpfHx0aGlzLl9zdGFydENsb3NlQW5pbWF0aW9uKCk6dGhpcy5fc3RhcnRPcGVuQW5pbWF0aW9uKCl9fWxldCBBdD17fSxTdD17fTtmdW5jdGlvbiBMdCh0LGUsaSxvLHMpe2NvbnN0IGE9eXQ/U3Q6QXQsbj1bZSx5dCYmaSxzJiYidHJhZGVXaXRoIl0uZmlsdGVyKEJvb2xlYW4pLmpvaW4oIi0iKSxyPWFbbl07aWYodm9pZCAwIT09cilyZXR1cm4gcjtjb25zdFtoLGwsZF09ZnVuY3Rpb24odCxlLGkpe3JldHVybiBpP1sibG9nby10cmFkZS13aXRoIiwidHJhZGluZ3ZpZXctdHJhZGUtd2l0aCJdOlt5dD8ibG9nby1vbGQtc3R5bGUiOmBsb2dvLSR7dH1gLHl0PyJ0cmFkaW5ndmlldy1vbGQtc3R5bGUiOmB0cmFkaW5ndmlldy0ke3R9YCx5dHx8IWU/dm9pZCAwOmBwcm8tYmFkZ2UtJHt0fWBdfShlLG8scyksZz10PT55dD90LnJlcGxhY2UoL2ZpbGw9IiNbXGRhLWZdezZ9Ii9naSxgZmlsbD0iJHtpfSJgKTp0LF89e2xvZ29JbWFnZTp0KGcoKDAsYy5lbnN1cmVEZWZpbmVkKSh0dC5nZXQoaCkpKSksdGV4dEltYWdlOnQoZygoMCxjLmVuc3VyZURlZmluZWQpKHR0LmdldChsKSkpKSxwcm9CYWRnZUltYWdlOmQ/dChnKCgwLGMuZW5zdXJlRGVmaW5lZCkodHQuZ2V0KGQpKSkpOnZvaWQgMH07cmV0dXJuIGFbbl09XyxffWNsYXNzIFR0e2NvbnN0cnVjdG9yKCl7dGhpcy5fdG9wTGVmdFBvaW50PW51bGwsdGhpcy5faGl0VGVzdEhlaWdodD1udWxsfWhpdFRlc3QodCl7CmNvbnN0IGU9dGhpcy5fZ2V0SGl0VGVzdEJveCgpO2lmKGUpcmV0dXJuKDAsbC5wb2ludEluQm94KSh0LGUpfV9nZXRIaXRUZXN0Qm94KCl7Y29uc3QgdD10aGlzLl90b3BMZWZ0UG9pbnQ7aWYodCl7Y29uc3R7eDplLHk6aX09dDtyZXR1cm4oMCxoLmJveCkodCxuZXcgaC5Qb2ludChlK3RoaXMud2lkdGgsaSsodGhpcy5faGl0VGVzdEhlaWdodD8/dGhpcy5oZWlnaHQpKSl9fX1jbGFzcyBDdCBleHRlbmRzIFR0e2NvbnN0cnVjdG9yKHQsZSxpLG8pe3N1cGVyKCksdGhpcy5zaG93PSEwLHRoaXMuaG92ZXJlZD0hMSx0aGlzLmFjdGl2ZT0hMSx0aGlzLl9uZWVkRGlzcGxheUltYWdlPSExLHRoaXMuX3RleHRBbmltYXRlZEFscGhhPTEsdGhpcy5fdGV4dEFuaW1hdGVkQWxwaGFTdGFydD0xLHRoaXMuX3RleHRBZGRpdGlvbmFsQ3JvcFdpZHRoPTAsdGhpcy5fdGV4dEFuaW1hdGVkQWxwaGFFbmQ9MSx0aGlzLl9iYWRnZURhdGE9e2xvZ29NYXJnaW46MCx0ZXh0TWFyZ2luOjAsd2lkdGg6MH0sdGhpcy5faW52ZXJ0VGV4dENyb3BEaXJlY3Rpb249ITEsdGhpcy5fZXVjbGlkRm9udEF2YWlsYWJsZT0hMSx0aGlzLl90eHQ9IlRyYWRpbmdWaWV3Iix0aGlzLl9tYXhpbWl6ZWRBbmltYXRpb25UZXh0V2lkdGg9MCx0aGlzLl9sb2dvV2lkdGg9MCx0aGlzLl90ZXh0V2lkdGhDYWNoZT1uZXcgTy5UZXh0V2lkdGhDYWNoZSx0aGlzLl9waXhlbFJhdGlvPXtob3Jpem9udGFsUGl4ZWxSYXRpbzpOYU4sdmVydGljYWxQaXhlbFJhdGlvOk5hTn0sdGhpcy5fbW9kZWw9aSx0aGlzLl9sYXlvdXQ9dCx0aGlzLl9zeW1ib2w9ZSx0aGlzLl9zaG93VHJhZGVXaXRoTG9nbz0hMSx0aGlzLl9zaG93QW5pbWF0ZWRCcmFuZGluZz0oMCxtLmlzRmVhdHVyZXNldEVuYWJsZWQpKCJzaG93X2FuaW1hdGVkX2xvZ28iKXx8dD09PWl0LHRoaXMuX2Fsd2F5c01heGltaXplZD0oMCxtLmlzRmVhdHVyZXNldEVuYWJsZWQpKCJsb2dvX2Fsd2F5c19tYXhpbWl6ZWQiKXx8dGhpcy5fbW9kZWwuaXNTbmFwc2hvdCgpJiYhXy5DaGVja01vYmlsZS5hbnkoKXx8IV8uQ2hlY2tNb2JpbGUuYW55KCkmJiF0aGlzLl9tb2RlbC5vbldpZGdldCgpJiYoIXdpbmRvdy51c2VyfHwhd2luZG93LnVzZXIuaXNfcHJvKSx0aGlzLl9mb250U2l6ZT10aGlzLl9zaG93QW5pbWF0ZWRCcmFuZGluZ3x8dGhpcy5fbGF5b3V0PT09b3Q/MTE6MTQsdGhpcy5fc2hvd0FuaW1hdGVkQnJhbmRpbmd8fHRoaXMuX2xheW91dCE9PXN0JiZ0aGlzLl9sYXlvdXQhPT1ydHx8KHRoaXMuX2ZvbnRTaXplPTEyKSx0aGlzLl9zaXplQ29uc3RhbnRzPWZ1bmN0aW9uKHQpe3tpZih4dClyZXR1cm57YnJhbmRDaXJjbGVTaXplOjMyLHRleHRBc0ltYWdlV2lkdGhDb21wZW5zYXRpb246MixsZWZ0T2Zmc2V0OjEsYm90dG9tT2Zmc2V0Oi0yMCxsb2dvTGVmdE9mZnNldDoxLGxvZ29UZXh0T2Zmc2V0OjR9O2NvbnN0IGU9e2JyYW5kQ2lyY2xlU2l6ZTo0OCx0ZXh0QXNJbWFnZVdpZHRoQ29tcGVuc2F0aW9uOjAsbGVmdE9mZnNldDotMTcsYm90dG9tT2Zmc2V0Oi0xNCxsb2dvTGVmdE9mZnNldDo4LGxvZ29UZXh0T2Zmc2V0OjF9O3JldHVybiB0P18uQ2hlY2tNb2JpbGUuYW55KCk/ey4uLmUsbGVmdE9mZnNldDotMjEsYm90dG9tT2Zmc2V0Oi0yMH06ey4uLmUsbGVmdE9mZnNldDotMTcsYm90dG9tT2Zmc2V0Oi0xNn06ZX19KHRoaXMuX21vZGVsLmlzU25hcHNob3QoKSksdGhpcy53aWR0aD10aGlzLl9taW5pbWl6ZWRBbmltYXRpb25XaWR0aCgpLHRoaXMuX2FuaW1hdGVkV2lkdGg9dGhpcy53aWR0aCx0aGlzLmhlaWdodD10aGlzLl9mb250U2l6ZSsyLHRoaXMuX3JlcXVlc3RSZXBhaW50PW8sdGhpcy5faW5pdCgpLHRoaXMuX2NoZWNrRm9udExvYWRlZCgpLHRoaXMuX3JlY2FsY3VsYXRlTWV0cmljcygpfWRlc3Ryb3koKXt0aGlzLl9tb2RlbC5wcm9wZXJ0aWVzKCkuY2hpbGRzKCkucGFuZVByb3BlcnRpZXMuY2hpbGRzKCkuYmFja2dyb3VuZC51bnN1YnNjcmliZUFsbCh0aGlzKSx0aGlzLl9tb2RlbC5vbkNoYXJ0VGhlbWVMb2FkZWQoKS51bnN1YnNjcmliZUFsbCh0aGlzKX1oYXNBbmltYXRpb24oKXtyZXR1cm4gdGhpcy5fc2hvd0FuaW1hdGVkQnJhbmRpbmcmJiF0aGlzLl9hbHdheXNNYXhpbWl6ZWR9YW5pbWF0aW9uU3RlcCgpe2NvbnN0IHQ9dGhpcy5fbWluaW1pemVkQW5pbWF0aW9uV2lkdGgoKSxlPXRoaXMuX21heGltaXplZEFuaW1hdGlvbldpZHRoKCk7cmV0dXJuKHRoaXMuX2FuaW1hdGVkV2lkdGgtdCkvKGUtdCl9YW5pbWF0ZWREcmF3U3RlcCh0KXtjb25zdCBlPXRoaXMuX21pbmltaXplZEFuaW1hdGlvbldpZHRoKCksaT10aGlzLl9tYXhpbWl6ZWRBbmltYXRpb25XaWR0aCgpO3RoaXMuX2FuaW1hdGVkV2lkdGg9ZSt0KihpLWUpLHRoaXMuX3RleHRBbmltYXRlZEFscGhhPXRoaXMuX3RleHRBbmltYXRlZEFscGhhU3RhcnQrdCoodGhpcy5fdGV4dEFuaW1hdGVkQWxwaGFFbmQtdGhpcy5fdGV4dEFuaW1hdGVkQWxwaGFTdGFydCl9ZHJhdyh0LGUsaSxvKXtjb25zdHticmFuZENpcmNsZVNpemU6cyxsb2dvTGVmdE9mZnNldDphLGxlZnRPZmZzZXQ6bixib3R0b21PZmZzZXQ6cn09dGhpcy5fc2l6ZUNvbnN0YW50czt0aGlzLl9uZWVkRGlzcGxheUltYWdlJiYodD1uZXcgaC5Qb2ludCh0Lngrbix0LnktcikpLHRoaXMuX3RvcExlZnRQb2ludD10LGUudHJhbnNsYXRlKHQueCx0LnkpO2NvbnN0e2hvcml6b250YWxQaXhlbFJhdGlvOmwsdmVydGljYWxQaXhlbFJhdGlvOmR9PWk7KDAsRC5lcXVhbFBpeGVsUmF0aW9zKShpLHRoaXMuX3BpeGVsUmF0aW8pfHwodGhpcy5fdGV4dFdpZHRoQ2FjaGUucmVzZXQoKSx0aGlzLl9waXhlbFJhdGlvPXtob3Jpem9udGFsUGl4ZWxSYXRpbzpsLHZlcnRpY2FsUGl4ZWxSYXRpbzpkfSk7Y29uc3QgYz10aGlzLl9jb2xvcnM7aWYodGhpcy5fc2hvd1RyYWRlV2l0aExvZ28pe2NvbnN0IHQ9dGhpcy5fZ2V0TG9nb0ltYWdlKGMubG9nbyksaT10aGlzLl9tYXhpbWl6ZWRBbmltYXRpb25XaWR0aCgpO3RoaXMuX2RyYXdUcmFkZVdpdGhMb2dvKGUsdCxpKX1lbHNlIGlmKHRoaXMuX3Nob3dBbmltYXRlZEJyYW5kaW5nKXtpZih0aGlzLl9uZWVkRGlzcGxheUltYWdlKXsKY29uc3QgdD10aGlzLl9nZXRMb2dvSW1hZ2UoYy5sb2dvKTt0aGlzLndpZHRoPXRoaXMuX2FuaW1hdGVkV2lkdGgsdGhpcy5fZHJhd0xvZ28oZSx0LHRoaXMuX2FuaW1hdGVkV2lkdGgsdGhpcy5fYW5pbWF0ZWRXaWR0aCx0aGlzLl9hbmltYXRlZFdpZHRoPih5dD90aGlzLl9zaXplQ29uc3RhbnRzLmJyYW5kQ2lyY2xlU2l6ZTp0LmxvZ29JbWFnZS52aWV3Qm94KCkud2lkdGgrdGhpcy5fc2l6ZUNvbnN0YW50cy5sb2dvVGV4dE9mZnNldCt0aGlzLl9iYWRnZURhdGEubG9nb01hcmdpbit0aGlzLl9iYWRnZURhdGEud2lkdGgrdGhpcy5fYmFkZ2VEYXRhLnRleHRNYXJnaW4pKX19ZWxzZSBpZih0aGlzLl9sYXlvdXQ9PT1zdHx8dGhpcy5fbGF5b3V0PT09cnQpe2UuZm9udD10aGlzLl9mb250U2l6ZSt0aGlzLl9nZXRGb250RmFtaWx5KCk7Y29uc3QgdD1lLm1lYXN1cmVUZXh0KHRoaXMuX3R4dCkud2lkdGgrMjt0aGlzLndpZHRoPXQrZS5tZWFzdXJlVGV4dCgiVHJhZGluZ1ZpZXciKS53aWR0aCsyLGUuc2F2ZSgpLGUuZ2xvYmFsQWxwaGE9LjcsZS5maWxsU3R5bGU9dGhpcy5fY29sb3JzLmN1c3RvbUJyYW5kaW5nVGV4dCxlLmZpbGxUZXh0KHRoaXMuX3R4dCwwLDEyKSxlLmZpbGxTdHlsZT10aGlzLl9jb2xvcnMuY3VzdG9tQnJhbmRpbmdUcmFkaW5nVmlld1RleHQsZS5maWxsVGV4dCgiVHJhZGluZ1ZpZXciLHQsMTIpLGUucmVzdG9yZSgpfWVsc2UgaWYodGhpcy5fbGF5b3V0PT09b3Qpe2NvbnN0IHQ9dGhpcy5fZ2V0TG9nb0ltYWdlKGMubG9nbyksaT10aGlzLl9tYXhpbWl6ZWRBbmltYXRpb25XaWR0aCgpO3RoaXMuX2RyYXdMb2dvKGUsdCxpLGksITApfWVsc2UgaWYodGhpcy5fbmVlZERpc3BsYXlJbWFnZSl7Y29uc3QgdD10aGlzLl9nZXRMb2dvSW1hZ2UoYy5sb2dvKTtlLnNhdmUoKSx5dCYmdGhpcy5fZHJhd0JnQ2lyY2xlKGUscy8yKTtjb25zdHt3aWR0aDppLGhlaWdodDpvfT10LmxvZ29JbWFnZS52aWV3Qm94KCksbj1uZXcgaC5Qb2ludChNYXRoLnJvdW5kKChzLWkpLzIpLTErYSxNYXRoLmZsb29yKChzLW8pLzIpKzEpO3RoaXMuX2RyYXdMb2dvSW1hZ2UoZSxuLHQubG9nb0ltYWdlKTtjb25zdCByPSEwO3ImJihlLnRyYW5zbGF0ZShzKzUsTWF0aC5yb3VuZCh0aGlzLl9mb250U2l6ZSooInB4IEV1Y2xpZENpcmN1bGFyIj09PXRoaXMuX2dldEZvbnRGYW1pbHkoKT8uMTowKSkpLHRoaXMuX2RyYXdUZXh0U3Ryb2tlKGUpLHRoaXMuX2RyYXdUZXh0RmlsbChlKSksZS5yZXN0b3JlKCksdGhpcy53aWR0aD1zLHImJih0aGlzLndpZHRoKz10aGlzLl9tYXhpbWl6ZWRBbmltYXRpb25UZXh0V2lkdGgpfWVsc2V7Y29uc3QgdD0hMDt0JiYoZS5zYXZlKCksZS50cmFuc2xhdGUoZ3Q/LS41OjAsLS41KSx0aGlzLl9kcmF3VGV4dFN0cm9rZShlKSx0aGlzLl9kcmF3VGV4dEZpbGwoZSksZS5yZXN0b3JlKCkpLHQmJih0aGlzLndpZHRoPXRoaXMuX21heGltaXplZEFuaW1hdGlvblRleHRXaWR0aCl9fXNob3dUcmFkZVdpdGhMb2dvKHQpe3RoaXMuX3Nob3dUcmFkZVdpdGhMb2dvPXR9X21pbmltaXplZEFuaW1hdGlvbldpZHRoKCl7cmV0dXJuKHl0P3RoaXMuX3NpemVDb25zdGFudHMuYnJhbmRDaXJjbGVTaXplOnRoaXMuX2xvZ29XaWR0aCkrdGhpcy5fYmFkZ2VEYXRhLmxvZ29NYXJnaW4rdGhpcy5fYmFkZ2VEYXRhLndpZHRofV9tYXhpbWl6ZWRBbmltYXRpb25XaWR0aCgpe3JldHVybih5dD90aGlzLl9zaXplQ29uc3RhbnRzLmJyYW5kQ2lyY2xlU2l6ZTp0aGlzLl9sb2dvV2lkdGgpK3RoaXMuX3NpemVDb25zdGFudHMubG9nb1RleHRPZmZzZXQrdGhpcy5fbWF4aW1pemVkQW5pbWF0aW9uVGV4dFdpZHRoK3RoaXMuX2JhZGdlRGF0YS53aWR0aCt0aGlzLl9iYWRnZURhdGEudGV4dE1hcmdpbn1fZHJhd1RyYWRlV2l0aExvZ28odCxlLGkpe3t0LnNhdmUoKSx0aGlzLl9kcmF3RmlsbFJlY3RXaXRoUm91bmRlZENvcm5lcih0LC01LDEsMTQxLDM4LDgsNyk7Y29uc3R7d2lkdGg6byxoZWlnaHQ6c309ZS5sb2dvSW1hZ2Uudmlld0JveCgpLGE9bmV3IGguUG9pbnQoTWF0aC5yb3VuZChvLzIpLTE5LE1hdGguZmxvb3Iocy8yKS0xMik7dGhpcy5fZHJhd0xvZ29JbWFnZSh0LGEsZS5sb2dvSW1hZ2UpO2NvbnN0IG49bmV3IGguUG9pbnQoYS54K28sYS55KTt0aGlzLl9kcmF3SW1hZ2VDcm9wV2lkdGgodCxuLGUudGV4dEltYWdlLGkpLHRoaXMud2lkdGg9bytNYXRoLm1pbihlLnRleHRJbWFnZS52aWV3Qm94KCkud2lkdGgsaSksdC5yZXN0b3JlKCl9fV9kcmF3TG9nbyh0LGUsaSxvLHMpe2NvbnN0e2JyYW5kQ2lyY2xlU2l6ZTphLGxvZ29MZWZ0T2Zmc2V0Om4sbG9nb1RleHRPZmZzZXQ6cn09dGhpcy5fc2l6ZUNvbnN0YW50czt0LnNhdmUoKSx5dCYmdGhpcy5fZHJhd0ZpbGxSZWN0V2l0aFJvdW5kZWRDb3JuZXIodCwtLjUsMCxpLGEsYS8yKTtjb25zdHtsb2dvSW1hZ2U6bCx0ZXh0SW1hZ2U6ZCxwcm9CYWRnZUltYWdlOmN9PWUse3dpZHRoOmcsaGVpZ2h0Ol99PWwudmlld0JveCgpLG09bmV3IGguUG9pbnQoTWF0aC5yb3VuZCgoYS1nKS8yKS0xK24sTWF0aC5mbG9vcigoYS1fKS8yKSsxKTtpZihzKXtjb25zdCBlPW5ldyBoLlBvaW50KG0ueCtnK3IsbS55KSxpPXQuZ2xvYmFsQWxwaGE7dC5nbG9iYWxBbHBoYSo9dGhpcy5fdGV4dEFuaW1hdGVkQWxwaGE7Y29uc3Qgcz1vLSh5dD90aGlzLl9zaXplQ29uc3RhbnRzLmJyYW5kQ2lyY2xlU2l6ZTp0aGlzLl9sb2dvV2lkdGgpLXItdGhpcy5fYmFkZ2VEYXRhLmxvZ29NYXJnaW4tdGhpcy5fYmFkZ2VEYXRhLndpZHRoO3RoaXMuX2RyYXdJbWFnZUNyb3BXaWR0aCh0LGUsZCxzKSx0Lmdsb2JhbEFscGhhPWl9aWYoYyl7Y29uc3R7d2lkdGg6ZSxoZWlnaHQ6aX09Yy52aWV3Qm94KCk7Yy5yZW5kZXIodCx7dGFyZ2V0Vmlld0JveDp7eDptLngrdGhpcy53aWR0aC1lLHk6TWF0aC5mbG9vcigoYS1pKS8yKSsxLHdpZHRoOmUsaGVpZ2h0Oml9fSl9dGhpcy5fZHJhd0xvZ29JbWFnZSh0LG0sbCksdC5yZXN0b3JlKCl9X2luaXQoKXtTdD17fSxBdD17fSx0aGlzLl9jaGVja0xheW91dCgpLHRoaXMuc2hvdyYmKHRoaXMuX3VwZGF0ZUNvbG9ycygpLHRoaXMuX3VwZGF0ZUhlaWdodCgpLAp0aGlzLl9tb2RlbC5wcm9wZXJ0aWVzKCkuY2hpbGRzKCkucGFuZVByb3BlcnRpZXMuY2hpbGRzKCkuYmFja2dyb3VuZC5zdWJzY3JpYmUodGhpcyx0aGlzLl91cGRhdGVDb2xvcnMpLHRoaXMuX21vZGVsLm9uQ2hhcnRUaGVtZUxvYWRlZCgpLnN1YnNjcmliZSh0aGlzLHRoaXMuX3VwZGF0ZUNvbG9ycykpfV91cGRhdGVIZWlnaHQoKXtpZih0aGlzLl9uZWVkRGlzcGxheUltYWdlKWlmKHl0KXRoaXMuaGVpZ2h0PXRoaXMuX3NpemVDb25zdGFudHMuYnJhbmRDaXJjbGVTaXplO2Vsc2V7Y29uc3QgdD10aGlzLl9nZXRMb2dvSW1hZ2UodGhpcy5fY29sb3JzLmxvZ28pO2lmKG51bGwhPT10KXtjb25zdCBlPXQubG9nb0ltYWdlLnZpZXdCb3goKS5oZWlnaHQ7dGhpcy5oZWlnaHQ9TWF0aC5tYXgoZSx0LnRleHRJbWFnZS52aWV3Qm94KCkuaGVpZ2h0KSx0aGlzLl9oaXRUZXN0SGVpZ2h0PWV9fWVsc2UgdGhpcy5oZWlnaHQ9dGhpcy5fZm9udFNpemUrMn1fY2hlY2tGb250TG9hZGVkKCl7aWYoIXRoaXMuX3Nob3dBbmltYXRlZEJyYW5kaW5nJiZkb2N1bWVudC5mb250cyYmZG9jdW1lbnQuZm9udHMuY2hlY2smJmRvY3VtZW50LmZvbnRzLmxvYWQpe2RvY3VtZW50LmZvbnRzLmNoZWNrKGAke3RoaXMuX2ZvbnRTaXplfXB4IEV1Y2xpZENpcmN1bGFyYCk/dGhpcy5fZXVjbGlkRm9udEF2YWlsYWJsZT0hMDpkb2N1bWVudC5mb250cy5sb2FkKGAke3RoaXMuX2ZvbnRTaXplfXB4IEV1Y2xpZENpcmN1bGFyYCx0aGlzLl90eHQpLnRoZW4oKCgpPT57dGhpcy5fZXVjbGlkRm9udEF2YWlsYWJsZT0hMCx0aGlzLl9yZWNhbGN1bGF0ZU1ldHJpY3MoKSx0aGlzLl9yZXF1ZXN0UmVwYWludCgpfSkpfX1fZ2V0Rm9udEZhbWlseSgpe3JldHVybiB0aGlzLl9ldWNsaWRGb250QXZhaWxhYmxlPyJweCBFdWNsaWRDaXJjdWxhciI6YHB4ICR7Ui5DSEFSVF9GT05UX0ZBTUlMWV9XVi52YWx1ZSgpfWB9X3JlY2FsY3VsYXRlTWV0cmljcygpe2NvbnN0IHQ9KDAseC5jcmVhdGVEaXNjb25uZWN0ZWRDYW52YXMpKGRvY3VtZW50LCgwLG4uc2l6ZSkoe3dpZHRoOjAsaGVpZ2h0OjB9KSksZT0oMCx4LmdldFByZXNjYWxlZENvbnRleHQyRCkodCk7ZS5mb250PXRoaXMuX2ZvbnRTaXplK3RoaXMuX2dldEZvbnRGYW1pbHkoKTtjb25zdCBpPXRoaXMuX25lZWREaXNwbGF5SW1hZ2U/dGhpcy5fZ2V0TG9nb0ltYWdlKHRoaXMuX2NvbG9ycy5sb2dvKTpudWxsO2xldCBvPWk/aS50ZXh0SW1hZ2Uudmlld0JveCgpLndpZHRoK3RoaXMuX3NpemVDb25zdGFudHMudGV4dEFzSW1hZ2VXaWR0aENvbXBlbnNhdGlvbjpNYXRoLmNlaWwoZS5tZWFzdXJlVGV4dCh0aGlzLl90eHQpLndpZHRoKSsyKzg7byUyPT0wJiYobys9MSksdGhpcy5fbWF4aW1pemVkQW5pbWF0aW9uVGV4dFdpZHRoPW8sdGhpcy5fdGV4dFdpZHRoQ2FjaGUucmVzZXQoKSx0aGlzLl9sb2dvV2lkdGg9aT8ubG9nb0ltYWdlLnZpZXdCb3goKS53aWR0aD8/MCx0aGlzLl9hbmltYXRlZFdpZHRoPXRoaXMuX2Fsd2F5c01heGltaXplZD90aGlzLl9tYXhpbWl6ZWRBbmltYXRpb25XaWR0aCgpOnRoaXMuX21pbmltaXplZEFuaW1hdGlvbldpZHRoKCl9X3VwZGF0ZUNvbG9ycygpe3RoaXMuX2NvbG9ycz10aGlzLl9tb2RlbC5kYXJrKCkudmFsdWUoKT9ROkp9X2dldExvZ29JbWFnZSh0KXtyZXR1cm4gTHQoeS5zdmdSZW5kZXJlcix0aGlzLl9tb2RlbC5kYXJrKCkudmFsdWUoKT8iZGFyayI6ImxpZ2h0Iix0LCF0aGlzLl9tb2RlbC5pc1NuYXBzaG90KCkmJkJvb2xlYW4od2luZG93LnVzZXI/LmlzX2V4cGVydCkmJndpbmRvdy51c2VyPy5kZWNsYXJlZF9zdGF0dXM9PT1ILlVzZXJTdGF0dXMuUHJvLHRoaXMuX3Nob3dUcmFkZVdpdGhMb2dvKX1fY2hlY2tMYXlvdXQoKXtzd2l0Y2godGhpcy5fbGF5b3V0KXtjYXNlIGl0OmNhc2Ugb3Q6Y2FzZSBzdDpjYXNlIG50OmNhc2UgcnQ6Y2FzZSBkdDpjYXNlIGx0OmNhc2UgZXQ6dGhpcy5zaG93PSEwO2JyZWFrO2Nhc2UgYXQ6Y2FzZSBodDpjYXNlIGN0OnRoaXMuc2hvdz0hMX1zd2l0Y2godGhpcy5fbGF5b3V0KXtjYXNlIGl0OnRoaXMuX25lZWREaXNwbGF5SW1hZ2U9ITAsdGhpcy5fdHh0PXd0O2JyZWFrO2Nhc2UgbnQ6dGhpcy5fdHh0PXB0LmZvcm1hdCh7c3ltYm9sOnRoaXMuX3N5bWJvbH0pO2JyZWFrO2Nhc2Ugb3Q6dGhpcy5fbmVlZERpc3BsYXlJbWFnZT0hMDticmVhaztjYXNlIHN0OmNhc2UgcnQ6dGhpcy5fdHh0PWZ0O2JyZWFrO2Nhc2UgZXQ6dGhpcy5fbmVlZERpc3BsYXlJbWFnZT0hMDtjb25zdCB0PXRoaXMuX2dldExvZ29JbWFnZSgiIikucHJvQmFkZ2VJbWFnZTt0JiYhdGhpcy5fbW9kZWwuaXNTbmFwc2hvdCgpJiYodGhpcy5fYmFkZ2VEYXRhPXtsb2dvTWFyZ2luOi0xMSx0ZXh0TWFyZ2luOi04LHdpZHRoOnQudmlld0JveCgpLndpZHRofSksdGhpcy5faW52ZXJ0VGV4dENyb3BEaXJlY3Rpb249ITAsdGhpcy5fdGV4dEFkZGl0aW9uYWxDcm9wV2lkdGg9MTEsdGhpcy5fdGV4dEFuaW1hdGVkQWxwaGFTdGFydD0uMyx0aGlzLl90ZXh0QW5pbWF0ZWRBbHBoYUVuZD0xfX1fZHJhd1RleHRTdHJva2UodCl7dC5zYXZlKCksdC50ZXh0QmFzZWxpbmU9Im1pZGRsZSIsdC50ZXh0QWxpZ249InN0YXJ0Iix0LmZvbnQ9dGhpcy5fZm9udFNpemUrdGhpcy5fZ2V0Rm9udEZhbWlseSgpLHQuc3Ryb2tlU3R5bGU9dGhpcy5fY29sb3JzLnN0YXRpY1RleHRCYWNrZ3JvdW5kLHQubGluZVdpZHRoPTQsdC5saW5lSm9pbj0icm91bmQiLHQuc3Ryb2tlVGV4dCh0aGlzLl90eHQsMCx0aGlzLl9zaXplQ29uc3RhbnRzLmJyYW5kQ2lyY2xlU2l6ZS8yK3RoaXMuX3RleHRXaWR0aENhY2hlLnlNaWRDb3JyZWN0aW9uKHQsdGhpcy5fdHh0KSksdC5yZXN0b3JlKCl9X2RyYXdUZXh0RmlsbCh0KXt0LnNhdmUoKSx0LnRleHRCYXNlbGluZT0ibWlkZGxlIix0LnRleHRBbGlnbj0ic3RhcnQiLHQuZm9udD10aGlzLl9mb250U2l6ZSt0aGlzLl9nZXRGb250RmFtaWx5KCksdC5maWxsU3R5bGU9dGhpcy5fY29sb3JzLnRleHQsCnQuZmlsbFRleHQodGhpcy5fdHh0LDAsdGhpcy5fc2l6ZUNvbnN0YW50cy5icmFuZENpcmNsZVNpemUvMit0aGlzLl90ZXh0V2lkdGhDYWNoZS55TWlkQ29ycmVjdGlvbih0LHRoaXMuX3R4dCkpLHQucmVzdG9yZSgpfV9kcmF3SW1hZ2VDcm9wV2lkdGgodCxlLGksbyl7dC5zYXZlKCk7Y29uc3R7bG9nb01hcmdpbjpzLHRleHRNYXJnaW46YX09dGhpcy5fYmFkZ2VEYXRhO3QuYmVnaW5QYXRoKCk7Y29uc3R7d2lkdGg6bixoZWlnaHQ6cn09aS52aWV3Qm94KCk7dC5yZWN0KGUueC10aGlzLl90ZXh0QWRkaXRpb25hbENyb3BXaWR0aCxlLnksbyt0aGlzLl90ZXh0QWRkaXRpb25hbENyb3BXaWR0aCxyKSx0LmNsaXAoKSxpLnJlbmRlcih0LHt0YXJnZXRWaWV3Qm94Ont4OmUueC0odGhpcy5faW52ZXJ0VGV4dENyb3BEaXJlY3Rpb24/bi1vLXMrYTowKSx5OmUueSx3aWR0aDpuLGhlaWdodDpyfX0pLHQucmVzdG9yZSgpfV9kcmF3QmdDaXJjbGUodCxlKXtjb25zdCBpPTIqTWF0aC5QSTt0LnNhdmUoKSx0LmJlZ2luUGF0aCgpLHQuZmlsbFN0eWxlPXRoaXMuX2NvbG9ycy5zaGFkb3csdC5hcmMoZSxlLGUrMSwwLGkpLHQuZmlsbCgpLHQuY2xvc2VQYXRoKCksdC5yZXN0b3JlKCksdC5zYXZlKCksdC5iZWdpblBhdGgoKSx0LmZpbGxTdHlsZT10aGlzLl9jb2xvcnMuYmFja2dyb3VuZCx0LmFyYyhlLGUsZSwwLGksITEpLHQuZmlsbCgpLHQuY2xvc2VQYXRoKCksdC5yZXN0b3JlKCl9X2RyYXdGaWxsUmVjdFdpdGhSb3VuZGVkQ29ybmVyKHQsZSxpLG8scyxhLG4pe3Quc2F2ZSgpLCgwLEYuZHJhd1JvdW5kUmVjdCkodCxlLTEsaS0xLG8rMixzKzIsYSksdC5maWxsU3R5bGU9dGhpcy5fYmFja2dyb3VuZFNoYWRvd0ZpbGxTdHlsZSgpLHQuZmlsbCgpLHQuY2xvc2VQYXRoKCksdC5yZXN0b3JlKCksdC5zYXZlKCksKDAsRi5kcmF3Um91bmRSZWN0KSh0LGUsaSxvLHMsbj8/YSksdC5maWxsU3R5bGU9dGhpcy5fYmFja2dyb3VuZEZpbGxTdHlsZSgpLHQuZmlsbCgpLHQuY2xvc2VQYXRoKCksdC5yZXN0b3JlKCl9X3RyYWRlV2l0aExvZ29CYWNrZ3JvdW5kQ29sb3IoKXtyZXR1cm4gdGhpcy5hY3RpdmU/dGhpcy5fbW9kZWwuZGFyaygpLnZhbHVlKCk/InJnYmEoNTQsIDU4LCA2OSkiOiJyZ2JhKDIyNCwgMjI3LCAyMzUpIjp0aGlzLl9tb2RlbC5kYXJrKCkudmFsdWUoKT8icmdiKDQyLCA0NiwgNTcpIjoicmdiKDI0MCwgMjQzLCAyNTApIn1fYmFja2dyb3VuZFNoYWRvd0ZpbGxTdHlsZSgpe3JldHVybiB0aGlzLl9zaG93VHJhZGVXaXRoTG9nbyYmKHRoaXMuYWN0aXZlfHx0aGlzLmhvdmVyZWQpP3RoaXMuX3RyYWRlV2l0aExvZ29CYWNrZ3JvdW5kQ29sb3IoKTp0aGlzLl9jb2xvcnMuc2hhZG93fV9iYWNrZ3JvdW5kRmlsbFN0eWxlKCl7cmV0dXJuIHRoaXMuX3Nob3dUcmFkZVdpdGhMb2dvJiYodGhpcy5hY3RpdmV8fHRoaXMuaG92ZXJlZCk/dGhpcy5fdHJhZGVXaXRoTG9nb0JhY2tncm91bmRDb2xvcigpOnRoaXMuX2NvbG9ycy5iYWNrZ3JvdW5kfV9kcmF3TG9nb0ltYWdlKHQsZSxpKXt5dHx8KHRoaXMuX3RvcExlZnRQb2ludD0oMCxjLmVuc3VyZU5vdE51bGwpKHRoaXMuX3RvcExlZnRQb2ludCkuYWRkKGUpKTtjb25zdHt3aWR0aDpvLGhlaWdodDpzfT1pLnZpZXdCb3goKTtpLnJlbmRlcih0LHt0YXJnZXRWaWV3Qm94Ont4OmUueCx5OmUueSx3aWR0aDpvLGhlaWdodDpzfX0pfX1jbGFzcyBrdCBleHRlbmRzIFR0e2NvbnN0cnVjdG9yKHQsZSxpKXtzdXBlcigpLHRoaXMuc2hvdz0hMSx0aGlzLndpZHRoPTAsdGhpcy5oZWlnaHQ9MCx0aGlzLl9yZWFkeT0hMSx0aGlzLl9sYXlvdXQ9dCx0aGlzLl9zcmM9ZSx0aGlzLl9vblJlYWR5Q2FsbGJhY2s9aSx0aGlzLl9jaGVja0xheW91dCgpO2NvbnN0IG89bmV3IEltYWdlO3RoaXMuX2ltZz1vLHRoaXMuc2hvdyYmKG8uYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsKCgpPT57dGhpcy53aWR0aD1NYXRoLnJvdW5kKG8ud2lkdGgpLHRoaXMuaGVpZ2h0PU1hdGgucm91bmQoby5oZWlnaHQpLHRoaXMuX3JlYWR5PSEwLHRoaXMuX29uUmVhZHlDYWxsYmFjayYmdGhpcy5fb25SZWFkeUNhbGxiYWNrKCl9KSksby5jcm9zc09yaWdpbj0iYW5vbnltb3VzIixvLnNyYz10aGlzLl9zcmMpfWRyYXcodCxlLGkpe3RoaXMuX3RvcExlZnRQb2ludD10LHRoaXMuX3JlYWR5JiYoZS50cmFuc2xhdGUodC54LHQueSksZS5kcmF3SW1hZ2UodGhpcy5faW1nLC0uNSwtLjUsdGhpcy53aWR0aCx0aGlzLmhlaWdodCkpfV9jaGVja0xheW91dCgpe3N3aXRjaCh0aGlzLl9sYXlvdXQpe2Nhc2Ugc3Q6Y2FzZSBhdDpjYXNlIHJ0OmNhc2UgaHQ6Y2FzZSBkdDpjYXNlIGN0OnRoaXMuc2hvdz0hMDticmVhaztjYXNlIGV0OmNhc2UgaXQ6Y2FzZSBvdDpjYXNlIG50OmNhc2UgbHQ6dGhpcy5zaG93PSExfX19Y29uc3QgQnQ9e3M6MCwiMmgiOjAsIjJ2IjoxLCIzaCI6MCwiM3YiOjIsIjNzIjowLCIzciI6MSwiMi0xIjoxLCIxLTIiOjEsNDoxLCI0diI6MywiNGgiOjAsIjRzIjowLCI0cy1sIjowLCIxLTMiOjEsIjMtMSI6MywiMi0yLWwiOjAsIjItMi1yIjoxLCIyLTIiOjMsIjEtNCI6MSwiNWgiOjAsIjV2IjowLCI1cyI6MCwiNXMtbCI6MCwiMi0zIjoyLCIzLTIiOjMsIjQtMSI6NCwiMi0zLWwiOjAsIjItMy1yIjoyLDY6MSwiNmgiOjAsIjZ2IjowLCI2YyI6NCwiMi00IjoyLCI0LTIiOjQsIjQtMyI6NCwiN2giOjAsIjdzIjowLDg6MSwiOGMiOjYsIjhoIjowLCI4diI6MCwiOXMiOjYsIjUtNCI6NSwiOWgiOjAsIjl2IjowLCIxMGM1IjoxLCIxMGgiOjAsIjEwdiI6MCwiMTJjNiI6MSwiMTJjNCI6MywiMTJoIjowLCIxNGM3IjoxLCIxNmM4IjoxLCIxNmM0IjozfTtmdW5jdGlvbiBQdCh0KXtjb25zdCBlPWZ1bmN0aW9uKHQsZSxpLGEpe2xldCBuPTA7Y29uc3Qgcj0oMCxzLmNyZWF0ZVdWRnJvbUdldHRlckFuZFN1YnNjcmlwdGlvbnMpKCgoKT0+KytuKSxbaSxhXSk7cmV0dXJuKDAsby5jb21iaW5lKSgoKGUsaSk9PnQoKVtCdFtlXV0/P251bGwpLGUud2Vha1JlZmVyZW5jZSgpLHIub3duZXJzaGlwKCkpCn0odC5nZXRBbGwuYmluZCh0KSx0LmxheW91dCx0LmNoYXJ0c1N3YXBwZWQoKSx0LmNoYXJ0V2lkZ2V0Q3JlYXRlZCgpKTt0LmFkZEN1c3RvbVNvdXJjZSgiYnJhbmRpbmciLCgoaSxzKT0+e2NvbnN0IGE9KDAsby5jb21iaW5lKSgoKHQsZSk9Pntjb25zdCBpPXQ/P2U7cmV0dXJuIG51bGwhPT1pJiZpLmhhc01vZGVsKCkmJmkubW9kZWwoKS5tb2RlbCgpPT09c30pLHQubWF4aW1pemVkQ2hhcnRXaWRnZXQoKS53ZWFrUmVmZXJlbmNlKCksZS5vd25lcnNoaXAoKSk7cmV0dXJuIG5ldyBidChpLHMsYS5vd25lcnNoaXAoKSl9KSxhLkN1c3RvbVNvdXJjZUxheWVyLlRvcG1vc3QpfX0sODM5NDEyKHQsZSxpKXsidXNlIHN0cmljdCI7aS5kKGUse2VuYWJsZTooKT0+cixyZWZlcmVuY2VUb1RyYWRpbmdWaWV3OigpPT5ofSk7dmFyIG89aSgzODY5MzEpLHM9aSg2MDE1ODcpLGE9aSg5MzAyMzEpO2xldCBuO2Z1bmN0aW9uIHIodCxlKXtuPXQsZT1lfHwiYWdncmVzc2l2ZSIsKDAsYS5pc0ZlYXR1cmVzZXRFbmFibGVkKSgicmVmZXJyYWxfcHJvZ3JhbV9mb3Jfd2lkZ2V0X293bmVycyIpLCgwLGEuaXNGZWF0dXJlc2V0RW5hYmxlZCkoInJlZmVycmFsX3Byb2dyYW1fcG9saWN5XyIrZSksKDAsby50cmFja0V2ZW50KSgiUmVmZXJyYWwgcHJvZ3JhbSBlbmFibGVkIixlKX1mdW5jdGlvbiBoKCl7Y29uc3QgdD0iaHR0cHM6Ly93d3cudHJhZGluZ3ZpZXcuY29tIjtyZXR1cm4gbj90KyI/YWZmX2lkPSIrbisiJiIrKDAscy5idWlsZFV0bVF1ZXJ5U3RyaW5nRnJvbVVybFBhcmFtcykoITEpOnQrKDAscy5idWlsZFV0bVF1ZXJ5U3RyaW5nRnJvbVVybFBhcmFtcykoITApfX0sMzE5ODcyKHQsZSxpKXsidXNlIHN0cmljdCI7aS5kKGUse2dldExvY2FsaXplZERvbWFpbjooKT0+cyxnZXRMb2NhbGl6ZWREb21haW5Vcmw6KCk9PmF9KTtjb25zdCBvPXthcl9BRToiYXIiLGRlX0RFOiJkZSIsZW46Ind3dyIsZXM6ImVzIixjYV9FUzoiZXMiLGZhX0lSOiJ3d3ciLGZyOiJmciIsaGVfSUw6ImlsIixpZDoiaWQiLGluOiJpbiIsaXQ6Iml0IixqYToianAiLGtyOiJrciIsbXNfTVk6Im15IixwbDoicGwiLGJyOiJiciIscnU6InJ1Iixzdl9TRToic2UiLHRoX1RIOiJ0aCIsdHI6InRyIix1azoidWsiLHZpX1ZOOiJ2biIsemhfQ046ImNuIix6aF9UVzoidHcifTtmdW5jdGlvbiBzKHQpe3JldHVybiBvW3RdfHwid3d3In1mdW5jdGlvbiBhKHQsZSl7Y29uc3QgaT1zKGUpLG89dC50b1N0cmluZygpLGE9YCR7dC5wYXRobmFtZX0ke3Quc2VhcmNofSR7dC5oYXNofWAsbj0vXmh0dHBzOlwvXC8oW1x3LV0rKVwueHN0YWdpbmcoLXdpZGdldCk/XC50di87cmV0dXJuL15odHRwczpcL1wvKChcdyotKT8oYmV0YXxiZXRhMCkpXC50cmFkaW5ndmlld1wuY29tLy50ZXN0KG8pPyJ3d3ciPT09aT9gaHR0cHM6Ly9iZXRhLnRyYWRpbmd2aWV3LmNvbSR7YX1gOmBodHRwczovLyR7aX0tYmV0YS50cmFkaW5ndmlldy5jb20ke2F9YDpuLnRlc3Qobyk/by5yZXBsYWNlKG4sImh0dHBzOi8vJDEueHN0YWdpbmcudHYiKTovXC9sb2NhbGhvc3QvLnRlc3Qobyk/bzovXmh0dHBzOlwvXC8oXHcrXC4pP3RyYWRpbmd2aWV3XC5jb20vLnRlc3Qobyk/YGh0dHBzOi8vJHtpfS50cmFkaW5ndmlldy5jb20ke2F9YDpvfX0sMzY0MTg4KHQsZSxpKXsidXNlIHN0cmljdCI7aS5kKGUse2dldFRWSG9zdEZyb21Mb2NhbGU6KCk9PnN9KTt2YXIgbz1pKDMxOTg3Mik7ZnVuY3Rpb24gcyh0KXtyZXR1cm4oMCxvLmdldExvY2FsaXplZERvbWFpbikodCkrIi50cmFkaW5ndmlldy5jb20ifX0sNjAxNTg3KHQsZSxpKXsidXNlIHN0cmljdCI7aS5kKGUse2J1aWxkVXRtUXVlcnlTdHJpbmc6KCk9PnIsYnVpbGRVdG1RdWVyeVN0cmluZ0Zyb21VcmxQYXJhbXM6KCk9PmgsZmlsdGVyVXRtSW5mbzooKT0+bn0pO3ZhciBvPWkoNDkyNjc3KSxzPWkoNjQxNTkzKTtjb25zdCBhPVsidXRtX3NvdXJjZSIsInV0bV9tZWRpdW0iLCJ1dG1fY2FtcGFpZ24iXTtmdW5jdGlvbiBuKHQpe2NvbnN0IGU9e307cmV0dXJuIGEuZm9yRWFjaCgoaT0+e2NvbnN0IG89dFtpXTsic3RyaW5nIj09dHlwZW9mIG8mJiIiIT09byYmKGVbaV09KDAscy5odG1sRXNjYXBlKShvKSl9KSksZX1mdW5jdGlvbiByKHQsZT0hMSl7Y29uc3QgaT0oMCxvLmNyZWF0ZVVybFBhcmFtcykodCk7cmV0dXJuIGkmJmU/Ij8iK2k6aX1mdW5jdGlvbiBoKHQpe3JldHVybiByKG4oKDAsby5nZXRVcmxQYXJhbXMpKCkpLHQpfX0sNTk1ODAwKHQpe3QuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMiAxOSIgd2lkdGg9IjIyIiBoZWlnaHQ9IjE5Ij48cGF0aCBmaWxsPSIjMTMxNzIyIiBkPSJNOSA0SDB2NGg1djdoNFY0Wm04IDExaC01bDQuNS0xMWg1TDE3IDE1Wm0tNS03YTIgMiAwIDEgMCAwLTQgMiAyIDAgMCAwIDAgNFoiLz48L3N2Zz4nfSw4Nzc5NzkodCl7dC5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDM1IDE5IiB3aWR0aD0iMzUiIGhlaWdodD0iMTkiPjxwYXRoIGZpbGw9ImJsYWNrIiBkPSJNMCAwaDE2djFhNC45OCA0Ljk4IDAgMCAxIDYuOS44N0wyMy42NSAwaDExLjNsLTcuNiAxOUg2di05SDBWMFoiLz48cGF0aCBmaWxsPSJsaWdodGdyYXkiIGQ9Ik0xNCAySDJ2Nmg2djloNlYyWk0yNiAxN2gtN2w2LTE1aDdsLTYgMTVaTTE5IDhhMyAzIDAgMSAwIDAtNiAzIDMgMCAwIDAgMCA2WiIvPjwvc3ZnPid9LDcyMTY0Nih0KXsKdC5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDUwIDE5IiB3aWR0aD0iNTAiIGhlaWdodD0iMTkiPjxwYXRoIGZpbGw9ImJsYWNrIiBkPSJNMTAuNjUgMGgzOS4zbC03LjYgMTlILjA1TDYgNGgzLjA1bDEuNi00WiIvPjxwYXRoIGZpbGw9ImxpZ2h0Z3JheSIgZD0ibTYgMTcgNi0xNWgzNWwtNiAxNUg2WiIvPjxwYXRoIGZpbGw9ImJsYWNrIiBkPSJNMTkuMTUgNS45YzEuNDQgMCAyLjQ5IDEuMDQgMi40OSAyLjM5cy0xLjA1IDIuMzktMi40OSAyLjM5aC0uOTFWMTNoLTEuNDVWNS45aDIuMzZabS0uMDIgMy40MmMuNjYgMCAxLjEtLjQ1IDEuMS0xLjAzIDAtLjU4LS40NC0xLjAzLTEuMS0xLjAzaC0uODl2Mi4wNmguODlaTTIzLjQgMTNWNS45aDIuNzJjMS4zMyAwIDIuMTguOTIgMi4xOCAyLjEgMCAuOTUtLjUyIDEuNTUtMS40NiAxLjg1TDI5LjM5IDEzaC0xLjc1bC0yLjQzLTIuOTloLS4zNlYxM0gyMy40Wm0xLjQ1LTQuMjNoMS4xYy41NCAwIC45LS4yOS45LS43NyAwLS40OS0uMzYtLjc3LS45LS43N2gtMS4xdjEuNTRabTEyLjUuNjhhMy42NyAzLjY3IDAgMSAxLTcuMzQgMCAzLjY3IDMuNjcgMCAwIDEgNy4zNCAwWm0tNS44OCAwYzAgMS4yNC45NyAyLjI3IDIuMiAyLjI3YTIuMjQgMi4yNCAwIDAgMCAyLjIyLTIuMjdjMC0xLjI0LS45Ny0yLjI3LTIuMjEtMi4yN2EyLjI0IDIuMjQgMCAwIDAtMi4yMSAyLjI3WiIvPjwvc3ZnPid9LDM5MjIyMyh0KXt0LmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgODkgMTkiIHdpZHRoPSI4OSIgaGVpZ2h0PSIxOSI+PHBhdGggZmlsbD0iIzEzMTcyMiIgZD0iTTY3LjI1IDQuOWMwIC43My0uNiAxLjMyLTEuMzcgMS4zMi0uNzMgMC0xLjM2LS41OS0xLjM2LTEuMzEgMC0uNzIuNjMtMS4zMSAxLjM2LTEuMzEuNzYgMCAxLjM3LjU5IDEuMzcgMS4zWk02Ni45OCAxNWgtMi4yVjYuOTZoMi4yVjE1Wk0zMy41MiA2LjI0Yy43NyAwIDEuMzctLjU5IDEuMzctMS4zIDAtLjczLS42LTEuMzItMS4zNy0xLjMyLS43MyAwLTEuMzUuNTktMS4zNSAxLjMxIDAgLjcyLjYyIDEuMzEgMS4zNSAxLjMxWk0zMi4zOSAxNWgyLjJWNi45NmgtMi4yVjE1Wk01LjE1IDE1aC0yLjJWNi4yMkgwdi0yLjJoOC4xdjIuMkg1LjE1VjE1Wk0xMC4zIDE1bC0yLjIuMDFWNi45NmgyLjJ2MS4zOWMuMjctLjc0IDEtMS4zIDEuODYtMS4zaC4wM2MuMjIgMCAuNDQgMCAuNy4wN3YyLjFjLS4zNC0uMS0uNjItLjE1LS45OC0uMTUtMSAwLTEuNi43NC0xLjYgMS45OVYxNVpNMzguMjcgMTVoLTIuMlY2Ljk3bDIuMi0uMDF2LjczYy40My0uNiAxLjEzLS44OSAyLjE0LS44OSAxLjg5IDAgMy4wMSAxLjMzIDMuMDEgMy4yOFYxNWgtMi4ydi00LjM2YzAtMS4wOS0uNDItMS45Ni0xLjMtMS45Ni0xIDAtMS42NS42OC0xLjY1IDIuMTNWMTVaTTU5LjQ3IDE1bDQuNTctMTAuOTloLTIuNThsLTIuOTQgNy43My0zLjMyLTcuNzNoLTIuNTdMNTcuMjYgMTVoMi4yMVpNODYuNDUgMTVoLTIuMTZsLTEuNDgtNC41NEw4MS4zMyAxNWgtMi4xNWwtMi42My04LjA0aDIuMzFsMS41IDUuMTggMS42LTUuMThoMS42N2wxLjYyIDUuMTggMS40OC01LjE4aDIuMzNMODYuNDUgMTVaTTE2Ljg3IDE1LjIzYzEuMTIgMCAxLjktLjU2IDIuMjctMS4wOHYuOWgyLjJ2LTguMWgtMi4ydi45MmEyLjc4IDIuNzggMCAwIDAtMi4yNy0xLjA5Yy0yLjE1IDAtMy44IDEuOTQtMy44IDQuMjMgMCAyLjI4IDEuNjUgNC4yMiAzLjggNC4yMlptLjQ3LTIuMDJjLTEuMjMgMC0yLjA0LS45Mi0yLjA0LTIuMiAwLTEuMjguOC0yLjIgMi4wNC0yLjIgMS4yMyAwIDIuMDQuOTIgMi4wNCAyLjIgMCAxLjI4LS44MSAyLjItMi4wNCAyLjJaTTI4LjcgMTQuMTVhMi43OCAyLjc4IDAgMCAxLTIuMjYgMS4wOGMtMi4xNiAwLTMuOC0xLjk0LTMuOC00LjIyIDAtMi4yOSAxLjY0LTQuMjMgMy44LTQuMjMgMS4xMSAwIDEuOS41NyAyLjI3IDEuMDlWNC4wMmgyLjJ2MTEuMDNoLTIuMnYtLjlaTTI0Ljg4IDExYzAgMS4yOC44IDIuMiAyLjA0IDIuMiAxLjIzIDAgMi4wNC0uOTIgMi4wNC0yLjIgMC0xLjI4LS44MS0yLjItMi4wNC0yLjJzLTIuMDQuOTItMi4wNCAyLjJaTTQ4Ljc1IDE4LjZjMi40NyAwIDQuMjUtMS4yNiA0LjI1LTQuMThWNi45NmgtMi4yMXYuOWEyLjY1IDIuNjUgMCAwIDAtMi4yNS0xLjA4Yy0yLjEzIDAtMy44MyAxLjgxLTMuODMgNC4xIDAgMi4yNiAxLjcgNC4xNyAzLjgzIDQuMTdhMi44IDIuOCAwIDAgMCAyLjI1LTEuMTZ2LjU1YzAgMS4zLS43NiAyLjIyLTIuMDggMi4yMi0uOSAwLTEuODEtLjMxLTIuNTItMWwtMS4yMiAxLjY0Yy45My45IDIuMzcgMS4zIDMuNzggMS4zWm0uMjYtNS42NWEyLjAyIDIuMDIgMCAwIDEtMi4wNi0yLjA3YzAtMS4yNS45NC0yLjA4IDIuMDUtMi4wOCAxLjEyIDAgMi4wNi44MyAyLjA2IDIuMDggMCAxLjIzLS45NCAyLjA3LTIuMDUgMi4wN1pNNzYuMzkgMTMuMzhhNC40IDQuNCAwIDAgMS0zLjc2IDEuODFjLTIuNDEgMC00LjI5LTEuNjctNC4yOS00LjIyIDAtMi40IDEuOC00LjIzIDQuMjYtNC4yMyAyLjEyIDAgMy45OCAxLjM0IDMuOTggMy45OHYuMTJjMCAuMTkuMDEuNDQtLjAzLjcySDcwLjVjLjEzIDEuMDggMS4wOSAxLjYgMi4xNiAxLjZhMi40IDIuNCAwIDAgMCAyLjA5LTEuMDFsMS42NSAxLjIzWm0tMy44Ni00LjhjLS44MiAwLTEuNzQuNDEtMS45NSAxLjRoMy43OGMtLjE5LS45Ny0xLTEuNC0xLjgzLTEuNFoiLz48L3N2Zz4nfSwzMzMzMTgodCl7CnQuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMSAxMjYgMjQiIHdpZHRoPSIxMjYiIGhlaWdodD0iMjQiPjxwYXRoIGZpbGw9ImJsYWNrIiBkPSJNNzYgMTMuOHYzLjM0YzAgMi40LS43NCA0LjQyLTIuMjggNS44YTguMDIgOC4wMiAwIDAgMS01LjUgMS44OGMtMi4yMSAwLTQuNzUtLjYzLTYuNS0yLjMybC0xLjI3LTEuMjIuOTUtMS4yOEgzOS42NEE2Ljc3IDYuNzcgMCAwIDEgMzMgMTguMTRWMjBoLTYuMzZjLS41Mi4xNS0xLjEuMjQtMS43Mi4yNC0zLjUyIDAtNi4xMy0yLjU4LTYuOTItNS43MlYyMEg0VjhIMFYxaDE1djRoM3YuMTZjLjE3LS4wMi4zNS0uMDMuNTItLjAzaC4wOGMuMyAwIC44MyAwIDEuNDUuMTdsMS40LjRhNi43IDYuNyAwIDAgMSA1LjItLjdIMzN2MS44NmE2Ljc3IDYuNzcgMCAwIDEgNi0yVjFoNi41OWEzLjg4IDMuODggMCAwIDEgMS45NS0uNTNBMy44MiAzLjgyIDAgMCAxIDUxLjMzIDVsMy44LS4wMWMuNTctLjE1IDEuMTctLjIxIDEuNzgtLjIxYTUuODggNS44OCAwIDAgMSA1LjI2IDNBNy4wMSA3LjAxIDAgMCAxIDY5LjcgNWgyLjVsLTEuNzQtNGg3Ljg3bDMuMDcgNy4xN0w4NC4xMiAxaDUuMzhjLjYtLjM2IDEuMjktLjU2IDItLjU2YTMuODIgMy44MiAwIDAgMSAzLjg3IDMuNzdBMy43IDMuNyAwIDAgMSA5NSA1LjgzdjEuMThhNy43NiA3Ljc2IDAgMCAxIDUuNjMtMi4zYy45IDAgMS44LjEzIDIuNjYuNDNsLS4wNC0uMTRoNy40bC42IDIuMDcuNjMtMi4wN2g1LjIxbC42NSAyLjA3LjU5LTIuMDdoNy40MmwtNC44NCAxNWgtNS44NGwtLjU2LTEuNzItLjU1IDEuNzJoLTUuODRsLS45Mi0yLjgzYTggOCAwIDAgMS02LjUyIDMuMDJBNy45MiA3LjkyIDAgMCAxIDk1IDE3LjkyVjIwaC03di05LjEyTDg0LjM1IDIwSDc4LjdMNzYgMTMuOFoiLz48cGF0aCBmaWxsPSJsaWdodGdyYXkiIGQ9Ik05My4zNyA0LjIxYzAgLjk5LS44MyAxLjc4LTEuODcgMS43OC0xIDAtMS44NC0uOC0xLjg0LTEuNzhzLjg1LTEuNzcgMS44NC0xLjc3YzEuMDQgMCAxLjg3LjggMS44NyAxLjc3Wk05MyAxOGgtM1Y3aDN2MTFaTTQ3LjU0IDYuMDJjMS4wNCAwIDEuODctLjggMS44Ny0xLjc3IDAtLjk5LS44My0xLjc4LTEuODctMS43OC0xIDAtMS44NC44LTEuODQgMS43OHMuODUgMS43NyAxLjg0IDEuNzdaTTQ2IDE4aDNWN2gtM3YxMVpNOSAxOEg2VjZIMlYzaDExdjNIOXYxMlpNMTYgMThsLTMgLjAyVjdoM3YxLjg5Yy4zNi0xIDEuMzQtMS43NiAyLjUzLTEuNzZoLjAzYy4zIDAgLjYgMCAuOTQuMXYyLjg0YTQgNCAwIDAgMC0xLjMxLS4yYy0xLjM4IDAtMi4xOSAxLTIuMTkgMi43VjE4Wk01NCAxOGgtM1Y3LjAxTDU0IDd2MWMuNTctLjgyIDEuNTMtMS4yMSAyLjktMS4yMSAyLjU3IDAgNC4xIDEuOCA0LjEgNC40NVYxOGgtM3YtNmMwLTEuNDctLjU2LTIuNjYtMS43Ny0yLjY2LTEuMzYgMC0yLjIzLjkzLTIuMjMgMi44OVYxOFpNODMgMThsNi0xNWgtMy41bC00IDEwLjVMNzcgM2gtMy41TDgwIDE4aDNaTTExOS40NSAxOGgtMi45M2wtMi4wMi02LjI1LTIgNi4yNWgtMi45M0wxMDYgN2gzLjE0bDIuMDUgNy4wNEwxMTMuMzYgN2gyLjI2bDIuMiA3LjA0TDExOS44MyA3SDEyM2wtMy41NSAxMVpNMjQuOTIgMTguMjRjMS41MiAwIDIuNTctLjc3IDMuMDgtMS40N1YxOGgzVjdoLTN2MS4yM2EzLjc4IDMuNzggMCAwIDAtMy4wOC0xLjQ3Yy0yLjkzIDAtNS4xNyAyLjY0LTUuMTcgNS43NHMyLjI0IDUuNzQgNS4xNyA1Ljc0Wm0uNjQtMi43NWMtMS42OCAwLTIuNzgtMS4yNS0yLjc4LTIuOTkgMC0xLjc0IDEuMS0zIDIuNzgtMyAxLjY3IDAgMi43NyAxLjI2IDIuNzcgM3MtMS4xIDMtMi43NyAzWk00MSAxNi43N2MtLjUuNy0xLjU2IDEuNDctMy4wOCAxLjQ3LTIuOTMgMC01LjE3LTIuNjQtNS4xNy01Ljc0czIuMjQtNS43NCA1LjE3LTUuNzRjMS41MiAwIDIuNTcuNzcgMy4wOCAxLjQ3VjNoM3YxNWgtM3YtMS4yM1ptLTUuMjItNC4yN2MwIDEuNzQgMS4xIDMgMi43OCAzIDEuNjcgMCAyLjc3LTEuMjYgMi43Ny0zcy0xLjEtMy0yLjc3LTNjLTEuNjggMC0yLjc4IDEuMjYtMi43OCAzWk02OC4yMyAyMi44MmMzLjM2IDAgNS43Ny0xLjcyIDUuNzctNS42OFY3aC0zdjEuMjNhMy42IDMuNiAwIDAgMC0zLjA2LTEuNDdjLTIuODggMC01LjIgMi40Ni01LjIgNS41NiAwIDMuMDggMi4zMiA1LjY4IDUuMiA1LjY4QTMuOCAzLjggMCAwIDAgNzEgMTYuNDJ2Ljc0YzAgMS43Ni0xLjA0IDMuMDItMi44MiAzLjAyYTQuODQgNC44NCAwIDAgMS0zLjQzLTEuMzdsLTEuNjUgMi4yNWMxLjI1IDEuMiAzLjIxIDEuNzYgNS4xMyAxLjc2Wm0uMzUtNy42OGEyLjc1IDIuNzUgMCAwIDEtMi44LTIuODJjMC0xLjY5IDEuMjgtMi44MSAyLjgtMi44MSAxLjUyIDAgMi44IDEuMTIgMi44IDIuODFhMi43NSAyLjc1IDAgMCAxLTIuOCAyLjgyWk0xMDUuNzggMTUuNzJhNS45NiA1Ljk2IDAgMCAxLTUuMSAyLjQ3Yy0zLjI4IDAtNS44My0yLjI3LTUuODMtNS43NGE1LjYyIDUuNjIgMCAwIDEgNS43OC01Ljc1YzIuODkgMCA1LjQyIDEuODMgNS40MiA1LjQyYTYuMDEgNi4wMSAwIDAgMS0uMDQgMS4xM2gtOC4yNGMuMTggMS40NyAxLjQ4IDIuMTkgMi45MyAyLjE5IDEuMzkgMCAyLjMzLS42MiAyLjg0LTEuMzlsMi4yNCAxLjY3Wm0tNS4yMy02LjUzYy0xLjEzIDAtMi4zOC41Ny0yLjY3IDEuOTFoNS4xNWMtLjI2LTEuMzItMS4zNi0xLjkxLTIuNDgtMS45MVoiLz48L3N2Zz4nfSw0MjI3MTEodCl7dC5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDQwIDMyIiB3aWR0aD0iNDAiIGhlaWdodD0iMzIiIGZpbGw9Im5vbmUiPjxwYXRoIGZpbGw9IiMxMzE3MjIiIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMTYgMjVIOVYxNEgyVjdoMTR2MThaTTM3LjUgNyAzMCAyNWgtOGw3LjUtMThoOFpNMjIgMTVhNCA0IDAgMSAwIDAtOCA0IDQgMCAwIDAgMCA4WiIvPjwvc3ZnPid9LDU5MjE1NSh0KXsKdC5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDg5IDMyIiB3aWR0aD0iODkiIGhlaWdodD0iMzIiIGZpbGw9Im5vbmUiPjxnIGZpbGw9IiMxMzE3MjIiIGNsaXAtcGF0aD0idXJsKCNhKSI+PHBhdGggZD0iTTcuNDg1IDI1Ljk0N0g5LjR2LTcuNTA1aDIuNTA2di0xLjgxSDUuMDA1djEuODFoMi40OHY3LjUwNVpNMTEuOTEgMjUuOTQ3aDEuNzk3di0zLjEzNmMwLTEuMDg5LjU2NC0xLjc0NSAxLjQxNy0xLjc0NS4zMDIgMCAuNTM4LjA1My44MTMuMTQ1di0xLjgyNGEyLjAxMSAyLjAxMSAwIDAgMC0uNjAzLS4wNzljLS43MzUgMC0xLjQwNC40ODYtMS42MjcgMS4xMjl2LTEuMDVoLTEuNzk4djYuNTZaTTE5LjM4OCAyNi4wOTJjLjkwNSAwIDEuNTg3LS40NiAxLjg4OS0uODh2LjczNWgxLjc5OHYtNi41NmgtMS43OTh2LjczNWMtLjMwMi0uNDItLjk4NC0uODgtMS44OS0uODgtMS43NDUgMC0zLjA4MyAxLjU3NS0zLjA4MyAzLjQyNSAwIDEuODUgMS4zMzggMy40MjUgMy4wODQgMy40MjVabS4zOC0xLjY0Yy0uOTk3IDAtMS42NTMtLjc0OC0xLjY1My0xLjc4NSAwLTEuMDM2LjY1Ni0xLjc4NCAxLjY1My0xLjc4NHMxLjY1My43NDggMS42NTMgMS43ODRjMCAxLjAzNy0uNjU2IDEuNzg1LTEuNjUzIDEuNzg1Wk0yNy4zNTQgMjYuMDkyYy45MDYgMCAxLjU4OC0uNDYgMS44OS0uODh2LjczNWgxLjc5N3YtOS44NGgtMS43OTd2NC4wMTVjLS4zMDItLjQyLS45ODQtLjg4LTEuODktLjg4LTEuNzQ1IDAtMy4wODMgMS41NzUtMy4wODMgMy40MjUgMCAxLjg1IDEuMzM4IDMuNDI1IDMuMDgzIDMuNDI1Wm0uMzgtMS42NGMtLjk5NiAwLTEuNjUyLS43NDgtMS42NTItMS43ODUgMC0xLjAzNi42NTYtMS43ODQgMS42NTMtMS43ODRzMS42NTMuNzQ4IDEuNjUzIDEuNzg0YzAgMS4wMzctLjY1NiAxLjc4NS0xLjY1MyAxLjc4NVpNMzMuNTUgMTguMzExYy42NDMgMCAxLjE1NS0uNTEyIDEuMTU1LTEuMTQyIDAtLjYzLS41MTItMS4xNDEtMS4xNTUtMS4xNDFhMS4xNSAxLjE1IDAgMCAwLTEuMTQyIDEuMTQyYzAgLjYzLjUyNSAxLjE0MSAxLjE0MiAxLjE0MVptLS44OTIgNy42MzZoMS43OTd2LTYuNTZoLTEuNzk3djYuNTZaTTM2LjA1IDI1Ljk0N2gxLjc5OHYtMy4yMDFjMC0xLjI2LjYxNy0xLjg2MyAxLjQ1Ni0xLjg2My43NDggMCAxLjE1NS41NzcgMS4xNTUgMS41MjJ2My41NDJoMS43OTd2LTMuODQ0YzAtMS43MDYtLjk0NC0yLjg2LTIuNTMyLTIuODYtLjg1MyAwLTEuNTIyLjM2Ny0xLjg3Ni44OTJ2LS43NDhIMzYuMDV2Ni41NlpNNDYuODMgMjQuMjQyYy0uOTA0IDAtMS42NjYtLjY4My0xLjY2Ni0xLjY4IDAtMS4wMS43NjEtMS42OCAxLjY2Ny0xLjY4LjkwNSAwIDEuNjY2LjY3IDEuNjY2IDEuNjggMCAuOTk3LS43NiAxLjY4LTEuNjY2IDEuNjhabS0uMjEgNC41NzljMi4wMDggMCAzLjUzLTEuMDI0IDMuNTMtMy4zODV2LTYuMDVoLTEuNzk3di43MzZjLS4zNTQtLjUxMi0xLjA2My0uODgtMS45MDMtLjg4LTEuNzE5IDAtMy4wOTYgMS40Ny0zLjA5NiAzLjMyIDAgMS44MzcgMS4zNzcgMy4zMDcgMy4wOTYgMy4zMDcuODQgMCAxLjU0OS0uMzggMS45MDMtLjg2NnYuNDQ2YzAgMS4wNS0uNjk2IDEuNzk3LTEuNzU4IDEuNzk3LS43MzUgMC0xLjQ3LS4yNDktMi4wNDctLjgxM2wtLjk4NCAxLjMzOGMuNzQ4LjcyMiAxLjkxNSAxLjA1IDMuMDU3IDEuMDVaTTUzLjk1MSAyNS45NDdoMS42OTNsMy44NTctOS4zMTZoLTIuMWwtMi41OTcgNi40Ny0yLjYzNy02LjQ3aC0yLjA2bDMuODQ0IDkuMzE2Wk02MS4xNSAxOC4zMTFjLjY0NCAwIDEuMTU1LS41MTIgMS4xNTUtMS4xNDIgMC0uNjMtLjUxMS0xLjE0MS0xLjE1NC0xLjE0MWExLjE1IDEuMTUgMCAwIDAtMS4xNDIgMS4xNDJjMCAuNjMuNTI1IDEuMTQxIDEuMTQyIDEuMTQxWm0tLjg5MiA3LjYzNmgxLjc5OHYtNi41NmgtMS43OTh2Ni41NlpNNjYuNzA4IDI2LjA5MmMxLjM3OCAwIDIuNDI3LS41NzggMy4wNDQtMS40N2wtMS4zMzgtLjk5N2MtLjMwMi40Ni0uODY2LjgyNy0xLjY5My44MjctLjg2NiAwLTEuNjQtLjQ4Ni0xLjc0NS0xLjM2NWg0LjkwN2MuMDQtLjI3Ni4wMjYtLjQ2LjAyNi0uNjE3IDAtMi4xMzgtMS41MDgtMy4yMjctMy4yMjctMy4yMjctMS45OTUgMC0zLjQ1MSAxLjQ4Mi0zLjQ1MSAzLjQyNCAwIDIuMDczIDEuNTIyIDMuNDI1IDMuNDc3IDMuNDI1Wm0tMS42NjYtNC4yMjVjLjE3LS44LjkxOC0xLjE0MiAxLjU4Ny0xLjE0Mi42NyAwIDEuMzI1LjM1NCAxLjQ4MyAxLjE0MmgtMy4wN1pNNzYuNjQ0IDI1Ljk0N2gxLjc4NGwyLjE2NS02LjU2aC0xLjkyOGwtMS4yMzQgNC4xOTktMS4zMzgtNC4yaC0xLjM3OGwtMS4zMjUgNC4yLTEuMjQ2LTQuMmgtMS45MTZsMi4xNzggNi41NjFoMS43ODRsMS4yMi0zLjcyNiAxLjIzNCAzLjcyNlpNNi45MjQgMTJWNi44ODZINS4xNjJ2LS45NThoNC41MzN2Ljk1OGgtMS43N1YxMmgtMVptMy4zMyAwVjUuOTI4aDIuMTljMS4xMjkgMCAxLjgzOS43MjcgMS44MzkgMS43MjcgMCAuODU2LS41MDUgMS40MTItMS4zNzcgMS42MTdMMTUuMTY0IDEyaC0xLjIzMmwtMi4yMjQtMi42NjhoLS40NTNWMTJoLTFabTEuMDAxLTMuNTRoMS4wN2MuNTkgMCAuOTU3LS4yODMuOTU3LS44MDUgMC0uNTIxLS4zNjgtLjgwNC0uOTU4LS44MDRoLTEuMDY5VjguNDZabTMuNDYgMy41NCAyLjY1MS02LjA3MmguODcyTDIwLjg5IDEyaC0xLjA0NGwtLjY5Mi0xLjU5aC0yLjcyTDE1Ljc1IDEyaC0xLjAzNVptMi4xMDQtMi40OGgxLjk1bC0uOTc1LTIuMjUtLjk3NSAyLjI1Wm00LjUxIDIuNDhWNS45MjhoMS44NjVjMS44MDUgMCAzLjE4MiAxLjMxNyAzLjE4MiAzLjAzNlMyNC45OTkgMTIgMjMuMTk0IDEySDIxLjMzWm0xLjAwMi0uOTMyaC44NjNjMS4zIDAgMi4xNjQtLjkxNSAyLjE2NC0yLjEwNHMtLjg2NC0yLjEwNC0yLjE2NC0yLjEwNGgtLjg2M3Y0LjIwOFptNC44MDQuOTMyVjUuOTI4aDMuNjUydi45NThoLTIuNjUydjEuNTU2aDIuMTM4VjkuNGgtMi4xMzh2MS42NDJoMi42NTJWMTJoLTMuNjUyWm0xMi4wMjMtMy4wMzZhMy4xMjQgMy4xMjQgMCAwIDEtMy4xMzggMy4xMzkgMy4xMiAzLjEyIDAgMCAxLTMuMTM5LTMuMTQgMy4xMiAzLjEyIDAgMCAxIDMuMTM5LTMuMTM4IDMuMTI0IDMuMTI0IDAgMCAxIDMuMTM4IDMuMTM5Wm0tNS4yNjggMGMwIDEuMjA2LjkyNCAyLjE3MiAyLjEzIDIuMTcyIDEuMTk3IDAgMi4xMi0uOTY2IDIuMTItMi4xNzIgMC0xLjIwNi0uOTIzLTIuMTcyLTIuMTItMi4xNzItMS4yMDYgMC0yLjEzLjk2Ni0yLjEzIDIuMTcyWk00NS4yMDggMTJoLS44NzJsLTMuNDIxLTQuMzdWMTJoLTFWNS45MjhoLjg3MmwzLjQxMiA0LjM1M1Y1LjkyOGgxLjAxVjEyWiIvPjwvZz48ZGVmcz48Y2xpcFBhdGggaWQ9ImEiPjxwYXRoIGZpbGw9IiNmZmYiIGQ9Ik0wIDBoODl2MzJIMHoiLz48L2NsaXBQYXRoPjwvZGVmcz48L3N2Zz4nCn19XSk7"}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/39606.c93c765ef5c51a30d07d.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.864Z","timestamp":1785148034864,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/39606.c93c765ef5c51a30d07d.js HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a632877-9dfa\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Fri, 24 Jul 2026 08:55:19 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/24/2026 10:32:20\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 2fde0b5c8171ef21411dc14a47520756\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":40442,"size_decoded":15216,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, Unicode text, UTF-8 text, with very long lines (3927)","md5":"ac257b936a56bb611fab2de13599909b","sha1":"0526fbe795d12b14bfe2372aecabb69b3a63277a","sha256":"ef21e6f05e4786b0efdd30d99723cac4e0e46b8cd8be53a8fd61b8a6e20f0ef0","sha512":"173d0335a30dccbcf5494057b96410a489d19524d9db754a875787ad34fcc2b4c64e154f6e46c720b717e9edf56a2572ba1edb049953919098c73f1b48c58004","ssdeep":"768:MWj1Dxz3qmyDNZsAyiwOI2gYRNc04paSt9I3OJdmJd2bR5qKcMz5zz16wviVfhrn:MWplq1P6p8+5cMzXgr1dUMAngtgw","tlshash":"19033c9834c2b84df7fb16f880ab4406a67d0581745998f0effcdc8521a354bb262ead","first_seen":"2026-07-27T03:26:08.679942Z","last_seen":"2026-07-27T10:53:39.247464Z","times_seen":8,"resource_available":true,"data":"KHNlbGYud2VicGFja0NodW5rdHJhZGluZ3ZpZXc9c2VsZi53ZWJwYWNrQ2h1bmt0cmFkaW5ndmlld3x8W10pLnB1c2goW1szOTYwNl0sezYxNjY0MyhlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHt1c2VUaGVtZTooKT0+YX0pO3ZhciByPW4oMTA2OTAwKSxpPW4oMjAwNjY2KTtmdW5jdGlvbiBhKCl7cmV0dXJuKDAsci51c2VXYXRjaGVkVmFsdWVSZWFkb25seSkoe3dhdGNoZWRWYWx1ZTppLndhdGNoZWRUaGVtZX0pfX0sNjA1MTQxKGUsdCxuKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gcihlKXtsZXQgdD0wO3JldHVybiBlLmlzVG9wJiZlLmlzTGVmdHx8KHQrPTEpLGUuaXNUb3AmJmUuaXNSaWdodHx8KHQrPTIpLGUuaXNCb3R0b20mJmUuaXNMZWZ0fHwodCs9OCksZS5pc0JvdHRvbSYmZS5pc1JpZ2h0fHwodCs9NCksdH1uLmQodCx7Z2V0R3JvdXBDZWxsUmVtb3ZlUm91bmRCb3JkZXJzOigpPT5yfSl9LDUyOTQxMShlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHt1c2VJc0ZpcnN0UmVuZGVyOigpPT5pLHVzZUlzTm9uRmlyc3RSZW5kZXI6KCk9PmF9KTt2YXIgcj1uKDc3OTQ3NCk7ZnVuY3Rpb24gaSgpe2NvbnN0W2UsdF09KDAsci51c2VTdGF0ZSkoITApO3JldHVybigwLHIudXNlRWZmZWN0KSgoKCk9Pnt0KCExKX0pLFtdKSxlfWZ1bmN0aW9uIGEoKXtyZXR1cm4haSgpfX0sMTQ1OTg0KGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse3VzZUZvY3VzOigpPT5pfSk7dmFyIHI9big3Nzk0NzQpO2Z1bmN0aW9uIGkoZSx0KXtjb25zdFtuLGldPSgwLHIudXNlU3RhdGUpKCExKTsoMCxyLnVzZUVmZmVjdCkoKCgpPT57dCYmbiYmaSghMSl9KSxbdCxuXSk7Y29uc3QgYT17b25Gb2N1czooMCxyLnVzZUNhbGxiYWNrKSgoZnVuY3Rpb24odCl7dm9pZCAwIT09ZSYmZS5jdXJyZW50IT09dC50YXJnZXR8fGkoITApfSksW2VdKSxvbkJsdXI6KDAsci51c2VDYWxsYmFjaykoKGZ1bmN0aW9uKHQpe3ZvaWQgMCE9PWUmJmUuY3VycmVudCE9PXQudGFyZ2V0fHxpKCExKX0pLFtlXSl9O3JldHVybltuLGFdfX0sMjg0NTgoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7dXNlSW50ZXJzZWN0aW9uT2JzZXJ2ZXI6KCk9Pm99KTt2YXIgcj1uKDc3OTQ3NCksaT1uKDE2NzUwMiksYT1uKDc4Nzg5NSk7ZnVuY3Rpb24gbyhlLHQ9e30sbj1bXSl7Y29uc3Qgbz0oMCxyLnVzZVJlZikobnVsbCkscz0oMCxyLnVzZVJlZikoZSk7cy5jdXJyZW50PWU7Y29uc3R7cmVmOmw9bnVsbCwuLi5jfT10LHU9KDAsci51c2VSZWYpKGMpOygwLGkuZGVmYXVsdCkodCx1LmN1cnJlbnQpfHwodS5jdXJyZW50PXQpO2NvbnN0IGQ9KDAsYS51c2VGdW5jdGlvbmFsUmVmT2JqZWN0KShsKSxmPSgwLHIudXNlQ2FsbGJhY2spKChlPT57ZChlKSxudWxsIT09by5jdXJyZW50JiYoby5jdXJyZW50LmRpc2Nvbm5lY3QoKSxudWxsIT09ZSYmby5jdXJyZW50Lm9ic2VydmUoZSkpfSksW2Qsb10pO3JldHVybigwLHIudXNlRWZmZWN0KSgoKCk9PihvLmN1cnJlbnQ9bmV3IEludGVyc2VjdGlvbk9ic2VydmVyKCgoZSx0KT0+cy5jdXJyZW50KGUsdCkpLHsuLi51LmN1cnJlbnQscm9vdDp1LmN1cnJlbnQ/LnJvb3Q/LmN1cnJlbnR9KSxkLmN1cnJlbnQmJmYoZC5jdXJyZW50KSwoKT0+e28uY3VycmVudD8uZGlzY29ubmVjdCgpfSkpLFtkLHUuY3VycmVudCwuLi5uXSksZn19LDcxNzkzMihlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHt1c2VNYXRjaE1lZGlhOigpPT5hLHVzZVNhZmVNYXRjaE1lZGlhOigpPT5pfSk7dmFyIHI9big3Nzk0NzQpO2Z1bmN0aW9uIGkoZSx0PSExKXtjb25zdFtuLGldPSgwLHIudXNlU3RhdGUpKHQpO3JldHVybigwLHIudXNlRWZmZWN0KSgoKCk9Pntjb25zdCB0PXdpbmRvdy5tYXRjaE1lZGlhKGUpO2Z1bmN0aW9uIG4oKXtpKHQubWF0Y2hlcyl9cmV0dXJuIG4oKSx0LmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsbiksKCk9Pnt0LnJlbW92ZUV2ZW50TGlzdGVuZXIoImNoYW5nZSIsbil9fSksW2VdKSxufWZ1bmN0aW9uIGEoZSl7Y29uc3QgdD0oMCxyLnVzZU1lbW8pKCgoKT0+d2luZG93Lm1hdGNoTWVkaWEoZSkubWF0Y2hlcyksW10pO3JldHVybiBpKGUsdCl9fSwzMDYyODcoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7dXNlV2luZG93UmVzaXplVHJpZ2dlcjooKT0+cyx1c2VXaW5kb3dTY3JvbGxUcmlnZ2VyOigpPT5sfSk7dmFyIHI9big3Nzk0NzQpLGk9big3MDY5NDMpLGE9bigxNTkyNTYpO2Z1bmN0aW9uIG8oZSx0LG4pe2NvbnN0IG89KDAsci51c2VNZW1vKSgoKCk9PigwLGkuY3JlYXRlU2lnbmFsKSgpKSxbXSk7cmV0dXJuKDAsYS51c2VDb25kaXRpb25hbEVmZmVjdCkoZSwoKCk9Pih3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcih0LG8uZmlyZSxuKSwoKT0+e3dpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKHQsby5maXJlLG4pfSkpLFtvXSksb31jb25zdCBzPShlPSEwKT0+byhlLCJyZXNpemUiLCEwKSxsPShlPSEwKT0+byhlLCJzY3JvbGwiLCEwKX0sMjc4MjYzKGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse2Zvcm1hdFRpbWU6KCk9Pl8saXNWYWxpZFRpbWVPcHRpb25zRGF0ZVN0eWxlOigpPT5mLGlzVmFsaWRUaW1lT3B0aW9uc1JhbmdlOigpPT5kfSk7Y29uc3Qgcj17Y2FsZW5kYXI6ImdyZWdvcnkiLG51bWJlcmluZ1N5c3RlbToibGF0biIsaG91cjEyOiExfSxpPXt5ZWFyOiJudW1lcmljIixtb250aDoic2hvcnQiLGRheToibnVtZXJpYyJ9LGE9e3llYXI6Im51bWVyaWMiLG1vbnRoOiIyLWRpZ2l0IixkYXk6IjItZGlnaXQifSxvPXtob3VyOiIyLWRpZ2l0IixtaW51dGU6IjItZGlnaXQiLHNlY29uZDoiMi1kaWdpdCJ9LHM9InNob3J0T2Zmc2V0IixsPSJzaG9ydCIsYz17eWVhcjowLG1vbnRoOjEsZGF5OjIsaG91cjozLG1pbnV0ZTo0LHNlY29uZDo1fTtjb25zdCB1PVsieWVhciIsIm1vbnRoIiwiZGF5IiwiaG91ciIsIm1pbnV0ZSIsInNlY29uZCJdO2Z1bmN0aW9uIGQoZSl7cmV0dXJuIHUuaW5jbHVkZXMoZSl9ZnVuY3Rpb24gZihlKXtyZXR1cm4ibnVtZXJpYyI9PT1lfHwic2hvcnQiPT09ZX1mdW5jdGlvbiBfKGUsdCxuPSJ5ZWFyIix1PSJkYXkiLGQpewpjb25zdCBmPWZ1bmN0aW9uKGU9InllYXIiLHQ9ImRheSIsbj17fSl7W2UsdF09Y1t0XT5jW2VdP1tlLHRdOlt0LGVdO2NvbnN0IHU9ey4uLiJudW1lcmljIj09PW4uZGF0ZVN0eWxlP2E6aSwuLi5vfSxkPW4uZnJhY3Rpb25hbFNlY29uZERpZ2l0cyxmPXsuLi5yLGZyYWN0aW9uYWxTZWNvbmREaWdpdHM6dm9pZCAwPT09ZD92b2lkIDA6TWF0aC5mbG9vcihNYXRoLm1pbihNYXRoLm1heCgxLGQpLDMpKSx0aW1lWm9uZTpuLnRpbWVab25lLHdlZWtkYXk6bi53ZWVrZGF5P2w6dm9pZCAwLHRpbWVab25lTmFtZTpuLnRpbWVab25lTmFtZT9zOnZvaWQgMH07cmV0dXJuIE9iamVjdC5rZXlzKHUpLmZvckVhY2goKG49PntjW25dPj1jW2VdJiZjW25dPD1jW3RdJiYoZltuXT11W25dKX0pKSxmfShuLHUsZCksXz1uZXcgSW50bC5EYXRlVGltZUZvcm1hdCh0LGYpLGc9bmV3IERhdGUoZSk7cmV0dXJuIF8uZm9ybWF0KGcpfX0sOTI0OTc1KGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse1Rvb2x0aXBCb2R5OigpPT51LFRvb2x0aXBDb250ZW50OigpPT5jfSk7dmFyIHIsaT1uKDc3OTQ3NCksYT1uKDkxNDQ4Nyksbz1uLm4oYSkscz1uKDcwMDU2MSksbD1uKDQxNzM3NCk7IWZ1bmN0aW9uKGUpe2UuQ29sb3JlZFRleHQ9ImNvbG9yZWQtdGV4dCIsZS5Db2xvclBhbGV0dGU9ImNvbG9yLXBhbGV0dGUifShyfHwocj17fSkpO2NvbnN0IGM9aS5mb3J3YXJkUmVmKCgoZSx0KT0+e2NvbnN0e3Rvb2x0aXBWYWx1ZXM6bixjbGFzc05hbWU6cixzdHlsZTphfT1lO3JldHVybiBpLmNyZWF0ZUVsZW1lbnQoInRhYmxlIix7cmVmOnQsY2xhc3NOYW1lOnIsc3R5bGU6YX0saS5jcmVhdGVFbGVtZW50KCJ0Ym9keSIse2NsYXNzTmFtZTpsLmJvZHl9LG4ubWFwKCgoZSx0KT0+e2NvbnN0e2NvbG9yQ2xhc3NOYW1lOm4sdmFsdWVDbGFzc05hbWU6cixjb2xvcjphLHRpdGxlOmMsdmFsdWU6dSxtb2RlOmQ9ImNvbG9yLXBhbGV0dGUiLHVuaXQ6ZixlbmRTbG90Ol8sZnVsbFdpZHRoOmd9PWU7cmV0dXJuImNvbG9yZWQtdGV4dCI9PT1kP2kuY3JlYXRlRWxlbWVudCgidHIiLHtrZXk6dH0saS5jcmVhdGVFbGVtZW50KCJ0ZCIse2NsYXNzTmFtZTpvKCkobixsLnRpdGxlV2l0aFZhbHVlKSxzdHlsZTp7Y29sb3I6YX19LGAke2N9ICR7dX1gLGYmJmkuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZTpsLnVuaXR9LGYpLF8mJmkuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZTpsLmVuZFNsb3R9LF8pKSk6Zz9pLmNyZWF0ZUVsZW1lbnQoInRyIix7a2V5OnR9LGkuY3JlYXRlRWxlbWVudCgidGQiLHtjb2xTcGFuOjIsY2xhc3NOYW1lOmwuZnVsbFdpZHRoQ2VsbH0sYykpOmkuY3JlYXRlRWxlbWVudCgidHIiLHtrZXk6dH0saS5jcmVhdGVFbGVtZW50KCJ0ZCIse2NsYXNzTmFtZTpsLmxhYmVsfSwobnx8YSkmJmkuY3JlYXRlRWxlbWVudChzLkxlZ2VuZENvbG9yU3dhdGNoLHtjbGFzc05hbWU6bygpKG4sbC5zd2F0Y2gpLHN0eWxlOntiYWNrZ3JvdW5kQ29sb3I6YX19KSxpLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6bC50aXRsZX0sYykpLHZvaWQgMCE9PXUmJmkuY3JlYXRlRWxlbWVudCgidGQiLHtjbGFzc05hbWU6bygpKHIsbC52YWx1ZSl9LHUsZiYmaS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOmwudW5pdH0sZiksXyYmaS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOmwuZW5kU2xvdH0sXykpKX0pKSkpfSkpO2Z1bmN0aW9uIHUoZSl7Y29uc3R7dG9vbHRpcFZhbHVlczp0LHJldmVyc2U6bn09ZSxbcixhXT0oMCxpLnVzZVN0YXRlKSgwKSxbcyx1XT0oMCxpLnVzZVN0YXRlKSghMSksZD0oMCxpLnVzZVJlZikobnVsbCk7KDAsaS51c2VFZmZlY3QpKCgoKT0+e2lmKCFkLmN1cnJlbnQpcmV0dXJuO2NvbnN0e3g6ZSx3aWR0aDp0fT1kLmN1cnJlbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7ZTwxMCYmYSgxMC1lKSxlK3Q+d2luZG93LmlubmVyV2lkdGgtMTAmJmEoLWUtdCt3aW5kb3cuaW5uZXJXaWR0aC0xMCksdSghMCl9KSxbZF0pO2NvbnN0IGY9YHRyYW5zbGF0ZSgke3J9cHgpYCxfPXt0cmFuc2Zvcm06ZixXZWJraXRUcmFuc2Zvcm06Zn07cmV0dXJuIGkuY3JlYXRlRWxlbWVudChpLkZyYWdtZW50LG51bGwscyYmbiYmaS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6bygpKGwuYXJyb3csbC5yZXZlcnNlZCl9KSxpLmNyZWF0ZUVsZW1lbnQoYyx7dG9vbHRpcFZhbHVlczp0LHJlZjpkLGNsYXNzTmFtZTpvKCkobC50b29sdGlwLHMmJmwudmFsaWRhdGVkKSxzdHlsZTpffSkscyYmIW4mJmkuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOmwuYXJyb3d9KSl9fSw4Njc3MzIoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7T0xEX1NFUklFU19DT0xPUlM6KCk9PmEsU0VSSUVTX0NPTE9SUzooKT0+aSxnZXRDb2xvckJ5SW5kZXg6KCk9PnMsZ2V0SXRlbUJ5SW5kZXg6KCk9Pm99KTt2YXIgcj1uKDUwNTU2KQo7Y29uc3QgaT1bci5jb2xvcnNQYWxldHRlWyJjb2xvci10di1ibHVlLTQwMCJdLHIuY29sb3JzUGFsZXR0ZVsiY29sb3ItaWd1YW5hLWdyZWVuLWE3MDAiXSxyLmNvbG9yc1BhbGV0dGVbImNvbG9yLXRhbi1vcmFuZ2UtNTAwIl0sci5jb2xvcnNQYWxldHRlWyJjb2xvci1za3ktYmx1ZS00MDAiXSxyLmNvbG9yc1BhbGV0dGVbImNvbG9yLWJlcnJ5LXBpbmstYTcwMCJdLHIuY29sb3JzUGFsZXR0ZVsiY29sb3ItYmFuYW5hLXllbGxvdy03MDAiXSxyLmNvbG9yc1BhbGV0dGVbImNvbG9yLW1pbnR5LWdyZWVuLWE0MDAiXSxyLmNvbG9yc1BhbGV0dGVbImNvbG9yLWJlcnJ5LXBpbmstYTIwMCJdLHIuY29sb3JzUGFsZXR0ZVsiY29sb3ItdHYtYmx1ZS1hMTAwIl0sci5jb2xvcnNQYWxldHRlWyJjb2xvci1ncmFwZXMtcHVycGxlLWE3MDAiXSxyLmNvbG9yc1BhbGV0dGVbImNvbG9yLXJpcGUtcmVkLWE0MDAiXSxyLmNvbG9yc1BhbGV0dGVbImNvbG9yLW1pbnR5LWdyZWVuLTUwMCJdLHIuY29sb3JzUGFsZXR0ZVsiY29sb3ItZ3JhcGVzLXB1cnBsZS1hMTAwIl0sci5jb2xvcnNQYWxldHRlWyJjb2xvci1kZWVwLWJsdWUtYTIwMCJdLHIuY29sb3JzUGFsZXR0ZVsiY29sb3ItdGFuLW9yYW5nZS04MDAiXV0sYT1bci5jb2xvcnNQYWxldHRlWyJjb2xvci10di1ibHVlLWEyMDAiXSxyLmNvbG9yc1BhbGV0dGVbImNvbG9yLXNreS1ibHVlLTMwMCJdLHIuY29sb3JzUGFsZXR0ZVsiY29sb3ItYmFuYW5hLXllbGxvdy05MDAiXSxyLmNvbG9yc1BhbGV0dGVbImNvbG9yLWRlZXAtYmx1ZS1hMTAwIl0sci5jb2xvcnNQYWxldHRlWyJjb2xvci1iYW5hbmEteWVsbG93LTcwMCJdLHIuY29sb3JzUGFsZXR0ZVsiY29sb3ItdHYtYmx1ZS0zMDAiXSxyLmNvbG9yc1BhbGV0dGVbImNvbG9yLWdyYXBlcy1wdXJwbGUtYTEwMCJdLHIuY29sb3JzUGFsZXR0ZVsiY29sb3ItdHYtYmx1ZS00MDAiXSxyLmNvbG9yc1BhbGV0dGVbImNvbG9yLW1pbnR5LWdyZWVuLTMwMCJdLHIuY29sb3JzUGFsZXR0ZVsiY29sb3ItYmVycnktcGluay0zMDAiXSxyLmNvbG9yc1BhbGV0dGVbImNvbG9yLXR2LWJsdWUtYTEwMCJdLHIuY29sb3JzUGFsZXR0ZVsiY29sb3ItdGFuLW9yYW5nZS1hMjAwIl0sci5jb2xvcnNQYWxldHRlWyJjb2xvci1pZ3VhbmEtZ3JlZW4tNDAwIl0sci5jb2xvcnNQYWxldHRlWyJjb2xvci1yaXBlLXJlZC00MDAiXSxyLmNvbG9yc1BhbGV0dGVbImNvbG9yLXNreS1ibHVlLTMwMCJdLHIuY29sb3JzUGFsZXR0ZVsiY29sb3ItYmFuYW5hLXllbGxvdy02MDAiXSxyLmNvbG9yc1BhbGV0dGVbImNvbG9yLWJlcnJ5LXBpbmstYTIwMCJdLHIuY29sb3JzUGFsZXR0ZVsiY29sb3ItdHYtYmx1ZS0yMDAiXSxyLmNvbG9yc1BhbGV0dGVbImNvbG9yLWJhbmFuYS15ZWxsb3ctOTAwIl1dO2Z1bmN0aW9uIG8oZSx0KXtjb25zdCBuPWVbdCVlLmxlbmd0aF07cmV0dXJuIG58fGVbMF19ZnVuY3Rpb24gcyhlLHQ9aSl7cmV0dXJuIG8odCxlKX19LDQ0NzQyMShlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHt1c2VHZXRWZXJ0aWNhbFNjYWxlT3B0aW9uczooKT0+YX0pO3ZhciByPW4oNzc5NDc0KSxpPW4oNzE5NDI1KTtmdW5jdGlvbiBhKGUpe2NvbnN0IHQ9KDAsci51c2VNZW1vKSgoKCk9Pntjb25zdCB0PWUuZXZlcnkoKGU9PiJwZXJjZW50cyI9PT1lLnZhbHVlVHlwZSkpPyJwZXJjZW50cyI6Im51bWJlcnMiO3JldHVybnt2aXNpYmxlOiEwLGNvbnNpZGVyWmVybzoibnVtYmVycyI9PT10LHZhbHVlVHlwZTp0fX0pLFtlXSksW24sYV09KDAsci51c2VTdGF0ZSkoInBlcmNlbnRzIiE9PXQudmFsdWVUeXBlKSxvPSgwLGkudXNlUmVzaXplT2JzZXJ2ZXIpKCgoW2VdKT0+e2NvbnN0e3dpZHRoOnR9PWUuY29udGVudFJlY3Q7YSh0Pj0zMDEpfSkpO3JldHVybntsZWZ0VmVydGljYWxTY2FsZU9wdGlvbnM6KDAsci51c2VNZW1vKSgoKCk9Pih7dmlzaWJsZTpuJiYicGVyY2VudHMiIT09dC52YWx1ZVR5cGUsY29uc2lkZXJaZXJvOiExLHZhbHVlVHlwZToicGVyY2VudHMifSkpLFtlLHQudmFsdWVUeXBlLG5dKSxyaWdodFZlcnRpY2FsU2NhbGVPcHRpb25zOnQsY2hhcnRSZWY6b319fSw4NDc1MjkoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7Y29udmVydFNlcmllc1RvQm91bmRpbmdQYXJhbXM6KCk9PmwsZm9ybWF0UGVyaW9kOigpPT5vLGdldERpc3BsYXlHcm91cElkOigpPT5kLGdldERpc3BsYXlHcm91cE1hcDooKT0+dSxnZXRWZXJ0aWNhbFNjYWxlUGFyYW1zOigpPT5mLHByZXBhcmVGbGF0RGF0YTooKT0+Yyxzb3J0QnlQcmlvcml0eVZpZXdJbmRleDooKT0+c30pO3ZhciByPW4oNjAxODQxKSxpPW4oMTkwMDg1KSxhPW4oMjAwNTU2KTtmdW5jdGlvbiBvKGUsdD17fSl7Y29uc3R7c2hvcnRlblllYXI6bixmdWxsWWVhcjpyLHNwbGl0dGVyOmk9IiAnIn09dDtpZighZSlyZXR1cm4iIjtjb25zdFthLG9dPWUudG9TdHJpbmcoKS5zcGxpdCgiLSIpO3JldHVybiBvJiZyP2Ake299JHtpfSR7YX1gOm8/YCR7b30ke2l9JHthLnN1YnN0cmluZyhhLmxlbmd0aC0yKX1gOm4/YCcke2Euc3Vic3RyaW5nKGEubGVuZ3RoLTIpfWA6YX1jb25zdCBzPWU9PmUuc2xpY2UoKS5zb3J0KCgoe3ByaW9yaXR5Vmlld0luZGV4OmV9LHtwcmlvcml0eVZpZXdJbmRleDp0fSk9PnZvaWQgMCE9PWUmJnZvaWQgMCE9PXQ/dC1lOjApKTtmdW5jdGlvbiBsKGUsdD0hMCxuPWkuREVGQVVMVF9IT1JJWk9OVEFMX0xJTkVTX0NPVU5UKXtjb25zdCBvPWUubWFwKChlPT5lLnZhbHVlcy5maWx0ZXIoci5ub3ROdWxsKSkpLHM9YyhlKS5maWx0ZXIoKGU9PiJzdGFja2VkIGJhciI9PT1lLnR5cGUpKS5tYXAoKGU9PmUudmFsdWVzKSk7aWYocy5sZW5ndGgpe2NvbnN0IGU9KDAsYS5nZXRTdGFja2VkU2VyaWVzQm91bmRhcnlWYWx1ZXMpKHMpO28ucHVzaChbZS5tYXhQb3NpdGl2ZVRvdGFsLGUubWluTmVnYXRpdmVUb3RhbF0pfXJldHVybigwLGEuZ2V0Qm91bmRpbmdQYXJhbXMpKCgwLGEuZ2V0TWF4TWluVmFsdWVzKShvKSxuLHQpfWZ1bmN0aW9uIGMoZSl7cmV0dXJuIGUuZmlsdGVyKChlPT5lLnZhbHVlcy5ldmVyeSgoZT0+IUFycmF5LmlzQXJyYXkoZSkpKSkpfWZ1bmN0aW9uIHUoZSl7CmNvbnN0IHQ9bmV3IE1hcDtyZXR1cm4gZS5mb3JFYWNoKChlPT57Y29uc3Qgbj1kKGUpLHI9dC5nZXQobil8fFtdO3IucHVzaChlKSx0LnNldChuLHIpfSkpLHR9ZnVuY3Rpb24gZChlKXtjb25zdHt2YWx1ZVR5cGU6dCxib3VuZGluZ0dyb3VwOm49IiJ9PWU7cmV0dXJuYCR7dH1fJHtufWB9ZnVuY3Rpb24gZihlLHQsbixyKXtjb25zdCBhPWZ1bmN0aW9uKGUsdD1pLkRFRkFVTFRfSE9SSVpPTlRBTF9MSU5FU19DT1VOVCl7aWYoIWUpcmV0dXJuIG51bGw7Y29uc3RbLG4scl09ZTtpZigwPT09bilyZXR1cm5bcl07Y29uc3QgYT1bXTtmb3IobGV0IGU9MDtlPHQ7ZSsrKWEucHVzaChyK24qZSk7cmV0dXJuIGF9KHQsciksbz1uZXcgU2V0O3JldHVybiBuJiZhJiZhLmZvckVhY2goKChlLHQpPT57bihlLHQsYSkmJm8uYWRkKHQpfSkpLHt2YWx1ZVR5cGU6ZSxzY2FsZVZhbHVlczphLGhpZ2hsaWdodEluZGV4U2V0Om99fX0sOTYwMDA2KGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse01BWF9WQUw6KCk9PmQsZm9ybWF0OigpPT5mLGdldEZyYWN0aW9uYWxEaWdpdHNOdW1iZXI6KCk9PmcsZ2V0TWV0cmljUHJlZml4OigpPT5ffSk7dmFyIHI9big3MTI3NDUpLGk9bigxMzg2MzgpLGE9bigxMDcwNDUpLG89big5ODQzNzYpLHM9big0NDQzODYpLGw9big5NjkxNjgpO2NvbnN0IGM9bmV3IE1hcDtsZXQgdT1udWxsO2NvbnN0IGQ9MWUxMDA7ZnVuY3Rpb24gZihlLHQsbj0yKXtyZXR1cm4gTWF0aC5hYnMoZSk+PWQ/IuKAlCI6InZvbHVtZSI9PT10P2Z1bmN0aW9uKGUpe3V8fCh1PW5ldyBvLlZvbHVtZUZvcm1hdHRlcik7cmV0dXJuIHUuZm9ybWF0KGUpfShlKToicGVyY2VudHMiPT09dD8oMCxsLmZvcmNlTFRSU3RyU3NyKShmdW5jdGlvbihlLHQpe2xldCBuPSIiO2U8MCYmKG49IuKIkiIsZT0tZSk7cmV0dXJuIG4rZnVuY3Rpb24oZSl7aWYoYy5oYXMoZSkpcmV0dXJuKDAsaS5lbnN1cmVEZWZpbmVkKShjLmdldChlKSk7Y29uc3QgdD1uZXcgYS5OdW1lcmljRm9ybWF0dGVyKHtwcmVjaXNpb246ZX0pO3JldHVybiBjLnNldChlLHQpLHR9KHQpLmZvcm1hdChlKX0oZSxuKSsiJSIpOigwLGwuZm9yY2VMVFJTdHJTc3IpKGZ1bmN0aW9uKGUpe3JldHVybihuZXcgcy5GaW5hbmNpYWxzRm9ybWF0dGVyKS5mb3JtYXQoZSl9KGUpKX1mdW5jdGlvbiBfKGUpe2NvbnN0IHQ9TWF0aC5hYnMoZSk7cmV0dXJuIHQ8OTk1P3tzeW1ib2w6IiIsbXVsdGlwbGllcjoxfTp0PDk5OTk5NT97c3ltYm9sOiJLIixtdWx0aXBsaWVyOjFlM306dDw5OTk5OTk5OTU/e3N5bWJvbDoiTSIsbXVsdGlwbGllcjoxZTZ9OnQ8OTk5OTk5OTk5OTk1P3tzeW1ib2w6IkIiLG11bHRpcGxpZXI6MWU5fTp7c3ltYm9sOiJUIixtdWx0aXBsaWVyOjFlMTJ9fWZ1bmN0aW9uIGcoZSl7Y29uc3QgdD0oMCxyLkJpZykoZSk7cmV0dXJuIE1hdGgubWF4KHQuYy5sZW5ndGgtdC5lLTEsMCl9fSwzMzc0MjgoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7REVGQVVMVF9NQVhfREFUQV9BUlJBWV9MRU5HVEg6KCk9PnJ9KTtjb25zdCByPTV9LDMzMzMxNShlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtQZXJpb2RJZDooKT0+bCxjb252ZXJ0RnJlcXVlbmN5VG9QZXJpb2Q6KCk9PmIsZ2VuZXJhdGVUb29sdGlwVmFsdWVzOigpPT5ELGdldENoYXJ0U2VyaWVzQXJyYXk6KCk9Pk4sZ2V0RGF0YUZyb21RdW90ZXM6KCk9PkMsZ2V0RmluYW5jaWFsc0RhdGFGcm9tUXVvdGVzOigpPT5ILGdldEZpbmFuY2lhbHNTZXRzOigpPT5QLGdldEZvcm1hdHRlZFBlcmlvZHNFbmRzOigpPT5rLGdldEhpc3RvcmljUGVyaW9kc0RhdGFGcm9tUXVvdGVzOigpPT5GLGdldE1heERhdGFMZW5ndGhCeVBlcmlvZDooKT0+QixnZXRQZXJmb3JtYW5jZVNldDooKT0+dyxnZXRQZXJpb2REYXRhOigpPT5JLGdldFBlcmlvZERhdGFGcm9tRmluYW5jaWFsczooKT0+TSxnZXRQZXJpb2RzRGF0YUZyb21RdW90ZXM6KCk9PlIsZ2V0VG9vbHRpcFZhbHVlc0dlbmVyYXRvcldpdGhPcHRpb25zOigpPT5BLGlzUXVvdGVWYWx1ZXNOdWxsOigpPT5WLHBhc3RQZXJmb3JtYW5jZUNvbG9yczooKT0+dix1c2VIaXN0b3JpY1BlcmlvZHNEYXRhRnJvbVF1b3RlczooKT0+eCx1c2VQZXJpb2RzRGF0YUZyb21RdW90ZXM6KCk9Pk99KTt2YXIgcj1uKDc3OTQ3NCksaT1uKDEzODYzOCk7aWYoNzk3OTU9PW4uail2YXIgYT1uKDI3ODI2Myk7dmFyIG8scyxsLGM9big1MDU1NiksdT1uKDE1NTM3MCksZD1uKDc4MzI1NCksZj1uKDE3NTM5NSksXz1uKDg5MzExNSksZz1uKDk2OTE2OCksaD1uKDg2NzczMiksbT1uKDk2MDAwNikscD1uKDMzNzQyOCk7IWZ1bmN0aW9uKGUpe2UuQ29tcGFyZT0iY29tcGFyZSIsZS5MaW5lcz0ibGluZXMifShvfHwobz17fSkpLGZ1bmN0aW9uKGUpe2UuTmV0UmV2ZW51ZT0ibmV0X3JldmVudWUiLGUuVG90YWxSZXZlbnVlPSJ0b3RhbF9yZXZlbnVlIixlLk5ldEluY29tZT0ibmV0X2luY29tZSIsZS5Ub3RhbEFzc2V0cz0idG90YWxfYXNzZXRzIixlLlRvdGFsTGlhYmlsaXRpZXM9InRvdGFsX2xpYWJpbGl0aWVzIixlLkNhc2hPcGVyYXRpbmc9ImNhc2hfZl9vcGVyYXRpbmdfYWN0aXZpdGllcyIsZS5DYXNoSW52ZXN0aW5nPSJjYXNoX2ZfaW52ZXN0aW5nX2FjdGl2aXRpZXMiLGUuQ2FzaEZpbmFuY2luZz0iY2FzaF9mX2ZpbmFuY2luZ19hY3Rpdml0aWVzIixlLkZpc2NhbFBlcmlvZD0iZmlzY2FsX3BlcmlvZCIsZS5JbnRlcmVzdEluY29tZT0iaW50ZXJlc3RfaW5jb21lIixlLk5vbkludGVyZXN0SW5jb21lPSJub25faW50ZXJlc3RfaW5jb21lIixlLk5ldE1hcmdpbj0ibmV0X21hcmdpbiJ9KHN8fChzPXt9KSksZnVuY3Rpb24oZSl7ZS5ZZWFyPSJGWSIsZS5RdWFydGVyPSJGUSIsZS5IYWxmWWVhcj0iRkgifShsfHwobD17fSkpO2NvbnN0IHY9W2MuY29sb3JzUGFsZXR0ZVsiY29sb3ItdHYtYmx1ZS1hMjAwIl0sYy5jb2xvcnNQYWxldHRlWyJjb2xvci1za3ktYmx1ZS0zMDAiXV07ZnVuY3Rpb24gYihlKXtyZXR1cm4gZSYmMj09PWU/bC5IYWxmWWVhcjpsLlF1YXJ0ZXJ9ZnVuY3Rpb24geShlKXsKaWYoZSlyZXR1cm5bImJhbmtpbmciPT09ZT8ibmV0X3JldmVudWUiOiJ0b3RhbF9yZXZlbnVlIiwibmV0X2luY29tZSIsIm5ldF9tYXJnaW4iXX1mdW5jdGlvbiB3KGUsdCl7cmV0dXJue2lkOiJpbmNvbWUgc3RhdGVtZW50cyIsdGl0bGU6ZC50KG51bGwsdm9pZCAwLG4oMTExMzQxKSksY2hhcnRUeXBlOiJjb21wYXJlIixmaWVsZHM6eShlKSxjdXJyZW5jeTp0fX1mdW5jdGlvbiBQKGUsdCl7cmV0dXJuW3tpZDoiaW5jb21lIHN0YXRlbWVudHMiLHRpdGxlOmQudChudWxsLHZvaWQgMCxuKDU4MzgyNikpLGNoYXJ0VHlwZToiY29tcGFyZSIsZmllbGRzOnkoZSksY3VycmVuY3k6dH0se2lkOiJiYWxhbmNlIHNoZWV0Iix0aXRsZTpkLnQobnVsbCx2b2lkIDAsbig4NjYzMykpLGNoYXJ0VHlwZToiY29tcGFyZSIsbWFyZ2luVGl0bGU6ZC50KG51bGwsdm9pZCAwLG4oNTIxNTUzKSksZmllbGRzOlsidG90YWxfYXNzZXRzIiwidG90YWxfbGlhYmlsaXRpZXMiXSxjdXJyZW5jeTp0fSx7aWQ6ImNhc2ggZmxvdyIsdGl0bGU6ZC50KG51bGwsdm9pZCAwLG4oMzM0NDYpKSxjaGFydFR5cGU6ImxpbmVzIixmaWVsZHM6WyJjYXNoX2Zfb3BlcmF0aW5nX2FjdGl2aXRpZXMiLCJjYXNoX2ZfaW52ZXN0aW5nX2FjdGl2aXRpZXMiLCJjYXNoX2ZfZmluYW5jaW5nX2FjdGl2aXRpZXMiXSxjdXJyZW5jeTp0fV19ZnVuY3Rpb24gRShlKXtyZXR1cm4gZS5oYXNPd25Qcm9wZXJ0eSgidGl0bGUiKX1mdW5jdGlvbiBTKGUpe3JldHVybiBFKGUpP2UudGl0bGU6KDAsaS5lbnN1cmVEZWZpbmVkKSh7bmV0X3JldmVudWU6ZC50KG51bGwse2NvbnRleHQ6ImZpbmFuY2lhbHNfZGF0YSJ9LG4oMjMwNjA4KSksdG90YWxfcmV2ZW51ZTpkLnQobnVsbCx7Y29udGV4dDoiZmluYW5jaWFsc19kYXRhIn0sbig4MTcyNikpLG5ldF9pbmNvbWU6ZC50KG51bGwse2NvbnRleHQ6ImZpbmFuY2lhbHNfZGF0YSJ9LG4oNTYzMDU1KSksdG90YWxfYXNzZXRzOmQudChudWxsLHtjb250ZXh0OiJmaW5hbmNpYWxzX2RhdGEifSxuKDkzOTk4NSkpLHRvdGFsX2xpYWJpbGl0aWVzOmQudChudWxsLHtjb250ZXh0OiJmaW5hbmNpYWxzX2RhdGEifSxuKDYxNTM4NCkpLGNhc2hfZl9vcGVyYXRpbmdfYWN0aXZpdGllczpkLnQobnVsbCx7Y29udGV4dDoiZmluYW5jaWFsc19kYXRhIn0sbig1NDUyODYpKSxjYXNoX2ZfaW52ZXN0aW5nX2FjdGl2aXRpZXM6ZC50KG51bGwse2NvbnRleHQ6ImZpbmFuY2lhbHNfZGF0YSJ9LG4oNDQ3MTE4KSksY2FzaF9mX2ZpbmFuY2luZ19hY3Rpdml0aWVzOmQudChudWxsLHtjb250ZXh0OiJmaW5hbmNpYWxzX2RhdGEifSxuKDQ5NzU5OCkpLG5ldF9tYXJnaW46ZC50KG51bGwse2NvbnRleHQ6ImZpbmFuY2lhbHNfZGF0YSJ9LG4oNDcxNjI1KSl9W2VdKX1mdW5jdGlvbiBUKGUsdCxuLHI9cC5ERUZBVUxUX01BWF9EQVRBX0FSUkFZX0xFTkdUSCl7aWYoIUUoZSkpcmV0dXJuIEMoZSx0LG4scik7Y29uc3QgaT1lLmZpZWxkcy5tYXAoKGU9PkMoZSx0LG4scikpKSxhPVtdO2ZvcihsZXQgZT0wO2U8aVswXS5sZW5ndGg7ZSsrKXtjb25zdCB0PWkubWFwKCh0PT50W2VdKSk7YS5wdXNoKHQuZXZlcnkoKGU9Pm51bGw9PT1lKSk/bnVsbDp0LnJlZHVjZSgoKGUsdCk9PmUrKHR8fDApKSwwKSl9cmV0dXJuIGF9ZnVuY3Rpb24gQyhlLHQsbixyPXAuREVGQVVMVF9NQVhfREFUQV9BUlJBWV9MRU5HVEgpe2NvbnN0IGk9blt0XTtpZighaSlyZXR1cm5bXTtyZXR1cm4gaVtlXS5zbGljZSgwLHIpLnJldmVyc2UoKX1mdW5jdGlvbiBJKGUsdCxuPXAuREVGQVVMVF9NQVhfREFUQV9BUlJBWV9MRU5HVEgpe2NvbnN0IHI9ZVt0XTtpZihyKXJldHVybiByLnNsaWNlKDAsbikucmV2ZXJzZSgpfWZ1bmN0aW9uIE4oZSx0LG4scj0wLGEpe2lmKCFlLmZpZWxkcylyZXR1cm5bXTtzd2l0Y2goZS5jaGFydFR5cGUpe2Nhc2UiY29tcGFyZSI6Y29uc3Qgbz1bZS5maWVsZHNbMF0sZS5maWVsZHNbMV1dLm1hcCgoKG8scyk9Pih7dHlwZToiYmFyIixuYW1lOlMoKDAsaS5lbnN1cmVEZWZpbmVkKShvKSksdmFsdWVUeXBlOiJudW1iZXJzIix2YWx1ZXM6TChUKCgwLGkuZW5zdXJlRGVmaW5lZCkobyksdCwoMCxpLmVuc3VyZURlZmluZWQpKG4pKSksZGVmYXVsdENvbG9yOigwLGguZ2V0Q29sb3JCeUluZGV4KShzK3IsYSksc2hvd0luTGVnZW5kOiEwLGJ1aWxkVG9vbHRpcDpBKHt1bml0OmUuY3VycmVuY3l9KX0pKSk7bGV0IHM7Y29uc3QgbD1lLmZpZWxkc1syXTtzPWw/VChsLHQsKDAsaS5lbnN1cmVEZWZpbmVkKShuKSk6b1swXS52YWx1ZXMubWFwKCgoZSx0KT0+e2NvbnN0IG49b1sxXS52YWx1ZXNbdF07cmV0dXJuIG51bGw9PT1lfHxudWxsPT09bj9udWxsOjA9PT1lPzA6bi9lKjEwMH0pKTtjb25zdCBjPXt0eXBlOiJsaW5lIixuYW1lOmUubWFyZ2luVGl0bGU/P1MoKDAsaS5lbnN1cmVEZWZpbmVkKShsKSksdmFsdWVUeXBlOiJwZXJjZW50cyIsdmFsdWVzOkwocyksZGVmYXVsdENvbG9yOigwLGguZ2V0Q29sb3JCeUluZGV4KShvLmxlbmd0aCtyLGguT0xEX1NFUklFU19DT0xPUlMpLHNob3dJbkxlZ2VuZDohMCxidWlsZFRvb2x0aXA6RH07cmV0dXJuWy4uLm8sY107Y2FzZSJsaW5lcyI6cmV0dXJuIGUuZmllbGRzLm1hcCgoKG8scyk9Pih7dHlwZToibGluZSIsbmFtZTpTKCgwLGkuZW5zdXJlRGVmaW5lZCkobykpLHZhbHVlVHlwZToibnVtYmVycyIsdmFsdWVzOkwoVCgoMCxpLmVuc3VyZURlZmluZWQpKG8pLHQsKDAsaS5lbnN1cmVEZWZpbmVkKShuKSkpLGRlZmF1bHRDb2xvcjooMCxoLmdldENvbG9yQnlJbmRleCkocytyLGEpLHNob3dJbkxlZ2VuZDohMCxidWlsZFRvb2x0aXA6QSh7dW5pdDplLmN1cnJlbmN5fSl9KSkpO2RlZmF1bHQ6cmV0dXJuW119fWZ1bmN0aW9uIEwoZSl7cmV0dXJuIGUubWFwKChlPT5udWxsIT09ZSYmaXNOYU4oZSk/bnVsbDplKSl9ZnVuY3Rpb24gRChlLHQsbixyKXtjb25zdCBhPWUudmFsdWVzW25dO2lmKG51bGw9PWEpcmV0dXJuIG51bGw7Y29uc3Qgbz0oMCxtLmZvcm1hdCkoYSxlLnZhbHVlVHlwZSk7cmV0dXJuW3t0aXRsZTpyPy5jYXBpdGFsaXplRmlyc3RMZXR0ZXI/PyEwPygwLApmLmNhcGl0YWxpemVGaXJzdExldHRlcikoZS5uYW1lLnRvTG93ZXJDYXNlKCkpOmUubmFtZSxjb2xvcjpyPy5jb2xvcj8/KDAsaS5lbnN1cmVEZWZpbmVkKShlLmRlZmF1bHRDb2xvciksdmFsdWU6cj8ud2l0aEZvcmNlTHRyPygwLGcuZm9yY2VMVFJTdHIpKG8pOm8sdW5pdDpyPy51bml0LGVuZFNsb3Q6cj8uZW5kU2xvdH1dfWZ1bmN0aW9uIEEoZSl7cmV0dXJuKHQsbixyKT0+RCh0LDAscixlKX1mdW5jdGlvbiBGKGUpe2NvbnN0e2Zpc2NhbF9wZXJpb2RfZnlfaDp0LGZpc2NhbF9wZXJpb2RfZnFfaDpuLGZpc2NhbF9wZXJpb2RfZmhfaDpyfT1lO2lmKHR8fG58fHIpcmV0dXJue1tsLlllYXJdOnQsW2wuUXVhcnRlcl06bixbbC5IYWxmWWVhcl06cn19ZnVuY3Rpb24gUihlKXtjb25zdHtmaXNjYWxfcGVyaW9kX2Z5OnQsZmlzY2FsX3BlcmlvZF9mcTpuLGZpc2NhbF9wZXJpb2RfZmg6cn09ZTtpZih0fHxufHxyKXJldHVybntbbC5ZZWFyXTp0LFtsLlF1YXJ0ZXJdOm4sW2wuSGFsZlllYXJdOnJ9fWZ1bmN0aW9uIHgoZSl7Y29uc3R7ZmlzY2FsX3BlcmlvZF9meV9oOnQsZmlzY2FsX3BlcmlvZF9mcV9oOm4sZmlzY2FsX3BlcmlvZF9maF9oOml9PWV8fHt9O3JldHVybigwLHIudXNlTWVtbykoKCgpPT5lP0YoZSk6dm9pZCAwKSxbdCxuLGldKX1mdW5jdGlvbiBPKGUpe2NvbnN0e2Zpc2NhbF9wZXJpb2RfZnk6dCxmaXNjYWxfcGVyaW9kX2ZxOm4sZmlzY2FsX3BlcmlvZF9maDppfT1lfHx7fTtyZXR1cm4oMCxyLnVzZU1lbW8pKCgoKT0+ZT9SKGUpOnZvaWQgMCksW3QsbixpXSl9ZnVuY3Rpb24gTShlKXtpZighZSlyZXR1cm47Y29uc3QgdD1lW2wuWWVhcl0/LmZpc2NhbF9wZXJpb2Qsbj1lW2wuUXVhcnRlcl0/LmZpc2NhbF9wZXJpb2Qscj1lW2wuSGFsZlllYXJdPy5maXNjYWxfcGVyaW9kO3JldHVybiB0fHxufHxyP3tbbC5ZZWFyXTp0LFtsLlF1YXJ0ZXJdOm4sW2wuSGFsZlllYXJdOnJ9OnZvaWQgMH1mdW5jdGlvbiBrKGUsdCxuKXtpZighZSlyZXR1cm5bXTtjb25zdCByPWZ1bmN0aW9uKGUpe2NvbnN0e2Zpc2NhbF9wZXJpb2RfZW5kX2Z5X2g6dCxmaXNjYWxfcGVyaW9kX2VuZF9mcV9oOm4sZmlzY2FsX3BlcmlvZF9lbmRfZmhfaDpyfT1lO2lmKHR8fG58fHIpcmV0dXJue1tsLlllYXJdOnQsW2wuUXVhcnRlcl06bixbbC5IYWxmWWVhcl06cn19KGUpO2lmKCFyKXJldHVybjtjb25zdCBpPXJbdF07cmV0dXJuIGk/aS5zbGljZSgwLG4pLnJldmVyc2UoKS5tYXAoKGU9PmU/KDAsYS5mb3JtYXRUaW1lKSgxZTMqZSwoMCxfLmdldExvY2FsZUlzbykoKSwieWVhciIsIm1vbnRoIik6IiIpKTpbXX1mdW5jdGlvbiBIKGUpe2NvbnN0e25ldF9yZXZlbnVlX2Z5X2g6dCxuZXRfcmV2ZW51ZV9mcV9oOm4sbmV0X3JldmVudWVfZmhfaDpyLHRvdGFsX3JldmVudWVfZnlfaDppLHRvdGFsX3JldmVudWVfZnFfaDphLHRvdGFsX3JldmVudWVfZmhfaDpvLG5ldF9pbmNvbWVfZnlfaDpzLG5ldF9pbmNvbWVfZnFfaDpjLG5ldF9pbmNvbWVfZmhfaDpkLHRvdGFsX2Fzc2V0c19meV9oOmYsdG90YWxfYXNzZXRzX2ZxX2g6Xyx0b3RhbF9hc3NldHNfZmhfaDpnLHRvdGFsX2xpYWJpbGl0aWVzX2Z5X2g6aCx0b3RhbF9saWFiaWxpdGllc19mcV9oOm0sdG90YWxfbGlhYmlsaXRpZXNfZmhfaDpwLGNhc2hfZl9vcGVyYXRpbmdfYWN0aXZpdGllc19meV9oOnYsY2FzaF9mX29wZXJhdGluZ19hY3Rpdml0aWVzX2ZxX2g6YixjYXNoX2Zfb3BlcmF0aW5nX2FjdGl2aXRpZXNfZmhfaDp5LGNhc2hfZl9pbnZlc3RpbmdfYWN0aXZpdGllc19meV9oOncsY2FzaF9mX2ludmVzdGluZ19hY3Rpdml0aWVzX2ZxX2g6UCxjYXNoX2ZfaW52ZXN0aW5nX2FjdGl2aXRpZXNfZmhfaDpFLGNhc2hfZl9maW5hbmNpbmdfYWN0aXZpdGllc19meV9oOlMsY2FzaF9mX2ZpbmFuY2luZ19hY3Rpdml0aWVzX2ZxX2g6VCxjYXNoX2ZfZmluYW5jaW5nX2FjdGl2aXRpZXNfZmhfaDpDLGZpc2NhbF9wZXJpb2RfZnlfaDpJLGZpc2NhbF9wZXJpb2RfZnFfaDpOLGZpc2NhbF9wZXJpb2RfZmhfaDpMLGludGVyZXN0X2luY29tZV9meV9oOkQsaW50ZXJlc3RfaW5jb21lX2ZxX2g6QSxpbnRlcmVzdF9pbmNvbWVfZmhfaDpSLG5vbl9pbnRlcmVzdF9pbmNvbWVfZnlfaDp4LG5vbl9pbnRlcmVzdF9pbmNvbWVfZnFfaDpPLG5vbl9pbnRlcmVzdF9pbmNvbWVfZmhfaDpNLG5ldF9tYXJnaW5fZnlfaDprLG5ldF9tYXJnaW5fZnFfaDpILG5ldF9tYXJnaW5fZmhfaDpCfT1lLFk9KDAsdS5leHRyYWN0VHJhZGl0aW9uYWxGdW5kVmlld01vZGUpKGUpLFc9RihlKTtpZihXKXtjb25zdHtbbC5ZZWFyXTplLFtsLlF1YXJ0ZXJdOnUsW2wuSGFsZlllYXJdOkZ9PVcsVT0hZXx8ImluZHVzdHJpYWwiPT09WSYmVihpKSxRPSF1fHwiaW5kdXN0cmlhbCI9PT1ZJiZWKGEpLHE9IUY7cmV0dXJue1tsLlllYXJdOlU/dm9pZCAwOntuZXRfcmV2ZW51ZTp0LHRvdGFsX3JldmVudWU6aSxuZXRfaW5jb21lOnMsdG90YWxfYXNzZXRzOmYsdG90YWxfbGlhYmlsaXRpZXM6aCxjYXNoX2Zfb3BlcmF0aW5nX2FjdGl2aXRpZXM6dixjYXNoX2ZfaW52ZXN0aW5nX2FjdGl2aXRpZXM6dyxjYXNoX2ZfZmluYW5jaW5nX2FjdGl2aXRpZXM6UyxmaXNjYWxfcGVyaW9kOkksaW50ZXJlc3RfaW5jb21lOkQsbm9uX2ludGVyZXN0X2luY29tZTp4LG5ldF9tYXJnaW46a30sW2wuUXVhcnRlcl06UT92b2lkIDA6e25ldF9yZXZlbnVlOm4sdG90YWxfcmV2ZW51ZTphLG5ldF9pbmNvbWU6Yyx0b3RhbF9hc3NldHM6Xyx0b3RhbF9saWFiaWxpdGllczptLGNhc2hfZl9vcGVyYXRpbmdfYWN0aXZpdGllczpiLGNhc2hfZl9pbnZlc3RpbmdfYWN0aXZpdGllczpQLGNhc2hfZl9maW5hbmNpbmdfYWN0aXZpdGllczpULGZpc2NhbF9wZXJpb2Q6TixpbnRlcmVzdF9pbmNvbWU6QSxub25faW50ZXJlc3RfaW5jb21lOk8sbmV0X21hcmdpbjpIfSxbbC5IYWxmWWVhcl06cT92b2lkIDA6e25ldF9yZXZlbnVlOnIsdG90YWxfcmV2ZW51ZTpvLG5ldF9pbmNvbWU6ZCx0b3RhbF9hc3NldHM6Zyx0b3RhbF9saWFiaWxpdGllczpwLGNhc2hfZl9vcGVyYXRpbmdfYWN0aXZpdGllczp5LGNhc2hfZl9pbnZlc3RpbmdfYWN0aXZpdGllczpFLApjYXNoX2ZfZmluYW5jaW5nX2FjdGl2aXRpZXM6QyxmaXNjYWxfcGVyaW9kOkwsaW50ZXJlc3RfaW5jb21lOlIsbm9uX2ludGVyZXN0X2luY29tZTpNLG5ldF9tYXJnaW46Qn19fX1mdW5jdGlvbiBWKGUpe3JldHVybiFlfHxlLmV2ZXJ5KChlPT5udWxsPT09ZSkpfWZ1bmN0aW9uIEIoZSl7c3dpdGNoKGUpe2Nhc2UgbC5ZZWFyOnJldHVybiAyMDtjYXNlIGwuUXVhcnRlcjpyZXR1cm4gMzI7Y2FzZSBsLkhhbGZZZWFyOnJldHVybiAxNn19fSw3ODc2MihlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtERUZBVUxUX1BFUklPRDooKT0+bCxQRVJJT0RTOigpPT5zLGdldEZpbmFuY2lhbHNQYWdlczooKT0+YSxnZXRTdGF0ZW1lbnRzQ2F0ZWdvcmllczooKT0+b30pO3ZhciByPW4oMTg1MjcxKSxpPW4oMzMzMzE1KTtmdW5jdGlvbiBhKCl7cmV0dXJuW3tpZDoib3ZlcnZpZXciLGNoaWxkcmVuOnIudChudWxsLHtjb250ZXh0OiJmaW5hbmNpYWxzX3RhYiJ9LG4oNDE2MzM2KSl9LHtpZDoic3RhdGVtZW50cyIsY2hpbGRyZW46ci50KG51bGwse2NvbnRleHQ6ImZpbmFuY2lhbHNfdGFiIn0sbig5OTg4OTIpKX0se2lkOiJzdGF0aXN0aWNzIixjaGlsZHJlbjpyLnQobnVsbCx7Y29udGV4dDoiZmluYW5jaWFsc190YWIifSxuKDMxNjk4MykpfSx7aWQ6ImRpdmlkZW5kcyIsY2hpbGRyZW46ci50KG51bGwse2NvbnRleHQ6ImZpbmFuY2lhbHNfdGFiIn0sbig3NzM5NzcpKX0se2lkOiJlYXJuaW5ncyIsY2hpbGRyZW46ci50KG51bGwse2NvbnRleHQ6ImZpbmFuY2lhbHNfdGFiIn0sbigzNjk1MzUpKX0se2lkOiJyZXZlbnVlIixjaGlsZHJlbjpyLnQobnVsbCx7Y29udGV4dDoiZmluYW5jaWFsc190YWIifSxuKDYzNzU2NSkpfV19ZnVuY3Rpb24gbygpe3JldHVyblt7aWQ6ImluY29tZSBzdGF0ZW1lbnRzIixjaGlsZHJlbjpyLnQobnVsbCx2b2lkIDAsbig1ODM4MjYpKX0se2lkOiJiYWxhbmNlIHNoZWV0IixjaGlsZHJlbjpyLnQobnVsbCx2b2lkIDAsbig4NjYzMykpfSx7aWQ6ImNhc2ggZmxvdyIsY2hpbGRyZW46ci50KG51bGwsdm9pZCAwLG4oMzM0NDYpKX1dfWNvbnN0IHM9KGU9aS5QZXJpb2RJZC5RdWFydGVyKT0+W3tpZDppLlBlcmlvZElkLlllYXIsdGl0bGU6ci50KG51bGwsdm9pZCAwLG4oNzMyODEzKSl9LHtpZDplLHRpdGxlOmU9PT1pLlBlcmlvZElkLkhhbGZZZWFyP3IudChudWxsLHZvaWQgMCxuKDc3MzU1MikpOnIudChudWxsLHZvaWQgMCxuKDU0NjcxMikpfV0sbD1lPT5zKGUpWzBdLmlkfSwyMzc3NDUoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7YWRkT3JSZW1vdmVJZEZyb21TZXQ6KCk9Pk8sY3JlYXRlU29ydGVkQ2F0ZWdvcnlMaXN0OigpPT5FLGZpbHRlckNhdGVnb3J5TGlzdDooKT0+UyxmaWx0ZXJDb25maWc6KCk9PmgsZmlsdGVySGlkZGVuSXRlbXM6KCk9PnAsZmluZFBhcmVudHNTZXQ6KCk9Pk0sZmxhdHRlblRyZWU6KCk9PncsZ2V0QWRkaXRpb25hbEZpZWxkUG9zdGZpeDooKT0+UixnZXRBZGRpdGlvbmFsRmllbGRWYWx1ZTooKT0+ayxnZXRGaWVsZHNCeVBlcmlvZERhdGE6KCk9PlEsZ2V0RmluYW5jaWFsc0RhdGFWMjooKT0+XyxnZXRJZFdpdGhvdXRQZXJpb2Q6KCk9PngsZ2V0SW5kaWNhdG9yUGFnZVBhdGg6KCk9PkIsZ2V0SXRlbVZhbHVlRnJvbVF1b3RlczooKT0+cSxnZXRJdGVtVmFsdWVzRnJvbVF1b3RlczooKT0+VCxnZXRPdGhlckF2YWlsYWJsZVBlcmlvZDooKT0+WSxnZXRQZXJjZW50Q2hhbmdlOigpPT5GLGlzRWFybmluZ3NWYWx1ZXNLaW5kOigpPT5VLGlzUGVyaW9kQXZhaWxhYmxlOigpPT5XLGlzU3RhdGVtZW50c0NhdGVnb3J5SWQ6KCk9PmcscHJlcGFyZUVhcm5pbmdzRGF0YTooKT0+QSxzb3J0QnlHcm91cEFuZE9yZGluYWw6KCk9Pnksc3BsaXRCeUNhdGVnb3J5OigpPT5QLHRvVHJlZTooKT0+dix0cmFuc2xhdGVDb25maWc6KCk9Pm0sdmFsdWVGb3JtYXR0ZXI6KCk9PkgsdmFsdWVGb3JtYXR0ZXJXaXRoWmVyb1ByZWNpc2lvbjooKT0+Vn0pO3ZhciByPW4oMTM4NjM4KSxpPW4oMTg1MjcxKSxhPW4oMzg0MDE3KSxvPW4oNzg5MDMzKTtpZig3OTc5NT09bi5qKXZhciBzPW4oMzM3NDI4KTtpZig3OTc5NT09bi5qKXZhciBsPW4oOTYwMDA2KTt2YXIgYz1uKDMzMzMxNSksdT1uKDY4NDI1MyksZD1uKDc4NzYyKSxmPW4oMTUxNjU5KTtmdW5jdGlvbiBfKCl7cmV0dXJuKDAsYS5mZXRjaCkoIi9maW5hbmNpYWwvZnVuZGFtZW50YWxzX2NvbmZpZ192Mi8iLHtjcmVkZW50aWFsczoic2FtZS1vcmlnaW4iLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sbWV0aG9kOiJHRVQifSkudGhlbigoZT0+ZS5qc29uKCkpKX1mdW5jdGlvbiBnKGUpe3JldHVybiJiYWxhbmNlIHNoZWV0Ij09PWV8fCJpbmNvbWUgc3RhdGVtZW50cyI9PT1lfHwiY2FzaCBmbG93Ij09PWV9ZnVuY3Rpb24gaChlLHQpe3JldHVybiBlLmZpbHRlcigoZT0+e2NvbnN0IG49IWUuaGlkZGVuJiZlLmZpbmFuY2lhbFZpc2libGUscj1lLmZ1bmRWaWV3TW9kZT09PXQ7cmV0dXJuIG4mJnJ9KSl9ZnVuY3Rpb24gbShlKXtyZXR1cm4gZS5tYXAoKGU9Pih7Li4uZSxuYW1lOmkudChlLm5hbWUse2NvbnRleHQ6InN0dWR5In0sbig4ODQ2OTMpKSxncm91cDppLnQoZS5ncm91cCx7Y29udGV4dDoic3R1ZHkifSxuKDg4NDY5MykpfSkpKX1mdW5jdGlvbiBwKGUpe3JldHVybiBlLmZpbHRlcigoZT0+IWUuaGlkZGVuKSl9ZnVuY3Rpb24gdihlKXtpZighZS5sZW5ndGgpcmV0dXJuW107Y29uc3QgdD1TeW1ib2woKSxuPXt9LGk9e30sYT1bXTtmb3IoY29uc3QgbyBvZiBlKXtjb25zdCBlPSgwLHIuZW5zdXJlRGVmaW5lZCkoeChvLmlkKSkscz1lLGw9eChvLnBhcmVudCksYz1sPz90O2M9PT10JiZhLnB1c2gocyk7Y29uc3QgdT1uW3NdPXsuLi5vLG5lc3RpbmdMZXZlbDotMSxpZFdpdGhvdXRQZXJpb2Q6ZSxwYXJlbnRJZFdpdGhvdXRQZXJpb2Q6bCxwZXJpb2REYXRhOm8ucGVyaW9kRGF0YXx8W10sc2hvcnRUaXRsZTpvLnNob3J0VGl0bGV8fCIifTsoaVtjXT1pW2NdPz9bXSkucHVzaCh1KX1mb3IoY29uc3QgdCBvZiBlKXtjb25zdCBlPSgwLHIuZW5zdXJlRGVmaW5lZCkoeCh0LmlkKSkKO25bZV0uY2hpbGRyZW49aVtlXSxkZWxldGUgaVtlXX0oMCxyLmFzc2VydCkoMD09PU9iamVjdC5rZXlzKGkpLmxlbmd0aCk7bGV0IG89MDtmb3IoO2EubGVuZ3RoPjAmJm88ZS5sZW5ndGg7KXtvKys7Y29uc3QgZT1uWygwLHIuZW5zdXJlRGVmaW5lZCkoYS5zaGlmdCgpKV0sdD1lLnBhcmVudElkV2l0aG91dFBlcmlvZDtlLm5lc3RpbmdMZXZlbD10P25bdF0ubmVzdGluZ0xldmVsKzE6MCxlLmNoaWxkcmVuPy5mb3JFYWNoKChlPT57YS5wdXNoKGUuaWRXaXRob3V0UGVyaW9kKX0pKX1yZXR1cm4gaVt0XX1mdW5jdGlvbiBiKGUpe2NvbnN0IHQ9Wy4uLmVdO3JldHVybiB0LnNvcnQoKChlLHQpPT5lLm9yZGluYWwtdC5vcmRpbmFsKSksdC5mb3JFYWNoKChlPT57ZS5jaGlsZHJlbiYmKGUuY2hpbGRyZW49YihlLmNoaWxkcmVuKSl9KSksdH1mdW5jdGlvbiB5KGUpe2NvbnN0IHQ9YihlKSxuPW5ldyBNYXA7dC5mb3JFYWNoKChlPT57Y29uc3R7Z3JvdXA6dCxvcmRpbmFsOnJ9PWUsaT1uLmdldCh0KTsodm9pZCAwPT09aXx8aT5yKSYmbi5zZXQodCxyKX0pKTtyZXR1cm4gdC5zb3J0KCgoZSx0KT0+KDAsci5lbnN1cmVEZWZpbmVkKShuLmdldChlLmdyb3VwKSktKDAsci5lbnN1cmVEZWZpbmVkKShuLmdldCh0Lmdyb3VwKSl8fGUub3JkaW5hbC10Lm9yZGluYWwpKSx0fWZ1bmN0aW9uIHcoZSx0LG4pe2xldCByPVtdO3JldHVybiBlLmZvckVhY2goKGU9PntpZighZS5jaGlsZHJlbnx8IWUuY2hpbGRyZW4ubGVuZ3RoKXJldHVybiB2b2lkKHI9Wy4uLnIsZV0pO2NvbnN0IGk9bj9lLmNoaWxkcmVuLmZpbHRlcihuKTplLmNoaWxkcmVuO2lmKCFpLmxlbmd0aClyZXR1cm4gdm9pZChyPVsuLi5yLHsuLi5lLGNoaWxkcmVuOnZvaWQgMH1dKTtpZighIXQmJnQoZSkpcmV0dXJuIHZvaWQocj1bLi4ucixlXSk7Y29uc3QgYT13KGksdCxuKTtyPVsuLi5yLGUsLi4uYV19KSkscn1mdW5jdGlvbiBQKGUpe2NvbnN0IHQ9Wy4uLmVdLG49e2RpdmlkZW5kczpbXX07cmV0dXJuIHQuZm9yRWFjaCgoZT0+e2NvbnN0IHQ9ZS5jYXRlZ29yeS50b0xvd2VyQ2FzZSgpO25bdF0/blt0XS5wdXNoKGUpOm5bdF09W2VdfSkpLG59ZnVuY3Rpb24gRShlKXtpZighZS5sZW5ndGgpcmV0dXJue307Y29uc3QgdD1QKHYoZnVuY3Rpb24oZSl7Y29uc3QgdD1uZXcgTWFwO2Zvcihjb25zdCBuIG9mIGUpe2NvbnN0IGU9KDAsci5lbnN1cmVEZWZpbmVkKSh4KG4uaWQpKSxpPWUmJnQuZ2V0KGUpO2lmKGkpKDAsci5lbnN1cmVEZWZpbmVkKShpLnBlcmlvZERhdGEpLnB1c2goe3BlcmlvZDpuLnBlcmlvZH0pO2Vsc2V7Y29uc3QgaT17Li4ubixpZFdpdGhvdXRQZXJpb2Q6KDAsci5lbnN1cmVEZWZpbmVkKSh4KG4uaWQpKSxuZXN0aW5nTGV2ZWw6LTEscGVyaW9kRGF0YTpbXSxzaG9ydFRpdGxlOiIifTtpLnBlcmlvZERhdGE9W3twZXJpb2Q6bi5wZXJpb2R9XSx0LnNldChlLGkpfX1yZXR1cm4gQXJyYXkuZnJvbSh0LnZhbHVlcygpKX0oZSkpKSxuPXt9O3JldHVybiBPYmplY3QuZW50cmllcyh0KS5mb3JFYWNoKCgoW2UsdF0pPT57bltlXT15KHQpfSkpLG59ZnVuY3Rpb24gUyhlLHQsbil7ZnVuY3Rpb24gcihlLHQpe2NvbnN0e2NoaWxkcmVuOmksLi4uYX09ZTtpZihpKXtjb25zdCBlPWkubWFwKChlPT5yKGUsdCkpKS5maWx0ZXIoQm9vbGVhbik7aWYoZS5sZW5ndGgpcmV0dXJuey4uLmEsY2hpbGRyZW46ZX19cmV0dXJuIGUubmFtZS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHQudG9Mb3dlckNhc2UoKSkmJmUucGVyaW9kRGF0YS5maW5kKChlPT5lLnBlcmlvZD09PW4pKT97Li4uYSxjaGlsZHJlbjp2b2lkIDB9Om51bGx9cmV0dXJuIGUubWFwKChlPT5yKGUsdCkpKS5maWx0ZXIoQm9vbGVhbil9ZnVuY3Rpb24gVChlLHQsbj0wLHIsaSxhPXMuREVGQVVMVF9NQVhfREFUQV9BUlJBWV9MRU5HVEgpe2NvbnN0IG89YCR7eChlKX1fJHtyLnRvTG93ZXJDYXNlKCl9YDtsZXQgbD1uZXcgQXJyYXkoYSkuZmlsbChudWxsKSxkPVtdO2lmKHQpe2NvbnN0IGU9dFtvK3UuSElTVE9SSUNfVkFMVUVTX1BPU1RGSVhdO2lmKGUpe2NvbnN0IHQ9ZnVuY3Rpb24oZSx0LG4scil7Y29uc3QgaT1lLmxlbmd0aD5uLGE9ZS5zbGljZSgwLG4pLnJldmVyc2UoKSxvPVtdO2lmKHIpe2NvbnN0IG49ZS5zbGljZSgwLGUubGVuZ3RoKS5yZXZlcnNlKCk7bi5mb3JFYWNoKCgoZSxyKT0+e2lmKDA9PT1yJiZpKXJldHVybjtpZigwPT09cilyZXR1cm4gdm9pZCBvLnB1c2goTmFOKTtsZXQgYTtpZih0IT09Yy5QZXJpb2RJZC5ZZWFyKXtjb25zdCBpPXItKHQ9PT1jLlBlcmlvZElkLlF1YXJ0ZXI/NDoyKTthPW5baV0/RihOdW1iZXIobltpXSksTnVtYmVyKGUpKTpOYU59ZWxzZSBhPUYoTnVtYmVyKG5bci0xXSksTnVtYmVyKGUpKTtvLnB1c2goYSl9KSl9cmV0dXJue3ZhbHVlczphLGNoYW5nZXM6by5zbGljZSgtbil9fShlLHIsYSxpKTtsPXQudmFsdWVzLHQuY2hhbmdlcyYmKGQ9dC5jaGFuZ2VzKX1pZigwIT09biYmMyE9PW4pe2NvbnN0IGU9dFt4KG8pK1IobildPz9udWxsLHI9by5lbmRzV2l0aCgiX2ZxIik7cmV0dXJue3ZhbHVlczpsLGNoYW5nZXM6aT9kOnZvaWQgMCxhZGRpdGlvbmFsOmUsYWRkaXRpb25hbENoYW5nZTohaXx8MT09PW4mJnI/dm9pZCAwOkYoTnVtYmVyKGxbbC5sZW5ndGgtMV0pLE51bWJlcihlKSl9fX1yZXR1cm57dmFsdWVzOmwsY2hhbmdlczppP2Q6dm9pZCAwLGFkZGl0aW9uYWw6MD09PW4/dm9pZCAwOm51bGx9fWZ1bmN0aW9uIEMoZSl7cmV0dXJuIG51bGw9PT1lLkVzdGltYXRlJiZudWxsPT09ZS5BY3R1YWx9ZnVuY3Rpb24gSShlLHQpe2NvbnN0IG49ZS5sZW5ndGgtMTtsZXQgcj10P246MDtjb25zdCBpPXQ/Wy4uLmVdLnJldmVyc2UoKS5lbnRyaWVzKCk6ZS5lbnRyaWVzKCk7Zm9yKGNvbnN0W2UsdF1vZiBpKWlmKCFDKHQpKXtyPWU7YnJlYWt9cmV0dXJuIHQ/bi1yOnJ9ZnVuY3Rpb24gTihlLHQpe2lmKCF0fHwhdC5sZW5ndGgpcmV0dXJue2VzdGltYXRlU3RhcnRJbmRleDotMSxpdGVtczpbXX07aWYoIWZ1bmN0aW9uKGUpe3JldHVybiBlLmV2ZXJ5KChlPT5udWxsIT09ZS5GaXNjYWxQZXJpb2QpKX0odCl8fHQuZXZlcnkoQykpcmV0dXJuewplc3RpbWF0ZVN0YXJ0SW5kZXg6LTEsaXRlbXM6W119O2NvbnN0IG49Wy4uLnRdLnNvcnQoKChlLHQpPT5lLkZpc2NhbFBlcmlvZD50LkZpc2NhbFBlcmlvZD8xOi0xKSk7bGV0IHI9bnVsbDtmb3IobGV0IGU9bi5sZW5ndGgtMTtlLS07ZT49MCl7aWYobltlXS5Jc1JlcG9ydGVkKXtyPWU7YnJlYWt9fWNvbnN0IGk9bnVsbCE9PXI/cisxOkkobiwhMCktNCxhPU1hdGgubWF4KDAsaS1lKSxvPU1hdGgubWluKG4ubGVuZ3RoLGkrNCkscz1uLnNsaWNlKGEsbyksbD1JKHMsITEpO3JldHVybntlc3RpbWF0ZVN0YXJ0SW5kZXg6aTxlP2ktbDplLWwsaXRlbXM6cy5zbGljZShsKX19ZnVuY3Rpb24gTChlLHQpe2lmKGUucmVwb3J0ZWQucHVzaCh0LkFjdHVhbCksZS5lc3RpbWF0ZS5wdXNoKHQuRXN0aW1hdGUpLG51bGwhPT10LkFjdHVhbCYmbnVsbCE9PXQuRXN0aW1hdGUpe2NvbnN0IG49KHQuQWN0dWFsLXQuRXN0aW1hdGUpL01hdGguYWJzKHQuRXN0aW1hdGUpKjEwMDtlLnN1cnByaXNlLnB1c2goaXNGaW5pdGUobik/bjpudWxsKX1lbHNlIGUuc3VycHJpc2UucHVzaChudWxsKTtyZXR1cm4gZS5wZXJpb2RzLnB1c2godC5GaXNjYWxQZXJpb2QpLGV9Y29uc3QgRD17W2MuUGVyaW9kSWQuWWVhcl06Il9meSIsW2MuUGVyaW9kSWQuSGFsZlllYXJdOiJfZmgiLFtjLlBlcmlvZElkLlF1YXJ0ZXJdOiJfZnEifTtmdW5jdGlvbiBBKGUsdCxuKXtpZighZSlyZXR1cm4gbnVsbDtjb25zdCByPURbdF0saT0iZWFybmluZ3MiK3IrdS5ISVNUT1JJQ19WQUxVRVNfUE9TVEZJWCxhPSJyZXZlbnVlcyIrcit1LkhJU1RPUklDX1ZBTFVFU19QT1NURklYLG89bj8/KDAsYy5nZXRNYXhEYXRhTGVuZ3RoQnlQZXJpb2QpKHQpLHtpdGVtczpzLGVzdGltYXRlU3RhcnRJbmRleDpsfT1OKG8sZVtpXSksZD1zLnJlZHVjZShMLHtyZXBvcnRlZDpbXSxlc3RpbWF0ZTpbXSxzdXJwcmlzZTpbXSxwZXJpb2RzOltdfSkse2l0ZW1zOmZ9PU4obyxlW2FdKSxfPWYucmVkdWNlKEwse3JlcG9ydGVkOltdLGVzdGltYXRlOltdLHN1cnByaXNlOltdLHBlcmlvZHM6W119KSxnPWU9PiFlLnJlcG9ydGVkLmxlbmd0aCYmIWUuZXN0aW1hdGUubGVuZ3RoO3JldHVybntlYXJuaW5nczpnKGQpP251bGw6ZCxyZXZlbnVlczpnKF8pP251bGw6Xyxlc3RpbWF0ZVN0YXJ0SW5kZXg6bH19ZnVuY3Rpb24gRihlLHQsbil7aWYoMD09PWV8fGU8MCYmdD4wKXJldHVybiBOYU47Y29uc3Qgcj0odC1lKS9NYXRoLmFicyhlKSoxMDA7cmV0dXJuIG4/cjpOdW1iZXIoci50b0ZpeGVkKDIpKX1mdW5jdGlvbiBSKGUpe3N3aXRjaChlKXtjYXNlIDI6cmV0dXJuIl9jdXJyZW50IjtjYXNlIDE6cmV0dXJuIl90dG0ifXJldHVybiIifWZ1bmN0aW9uIHgoZSl7aWYoZSlmb3IobGV0IHQ9MDt0PHUuUEVSSU9EX1BPU1RGSVhFUy5sZW5ndGg7dCsrKXtjb25zdCBuPXUuUEVSSU9EX1BPU1RGSVhFU1t0XTtpZihlLmVuZHNXaXRoKG4pKXJldHVybiBlLnNsaWNlKDAsLW4ubGVuZ3RoKX1yZXR1cm4gZX1mdW5jdGlvbiBPKGUsdCl7Y29uc3Qgbj1uZXcgU2V0KHQpO3JldHVybiBuLmhhcyhlKT9uLmRlbGV0ZShlKTpuLmFkZChlKSxufWZ1bmN0aW9uIE0oZSx0KXtsZXQgbj1uZXcgU2V0O2NvbnN0IHI9U3ltYm9sKCk7Zm9yKGxldCBpPTA7aTxlLmxlbmd0aDtpKyspe2NvbnN0e2lkV2l0aG91dFBlcmlvZDphLHBhcmVudElkV2l0aG91dFBlcmlvZDpvPXIsY2hpbGRyZW46c309ZVtpXTtpZihzPy5sZW5ndGgpe2NvbnN0IGU9TShzLHQpO249bmV3IFNldChbLi4uQXJyYXkuZnJvbShuKSwuLi5BcnJheS5mcm9tKGUpXSl9KHQuaGFzKGEpfHxuLnNpemU+MCkmJm8hPT1yJiZuLmFkZChvKX1yZXR1cm4gbn1mdW5jdGlvbiBrKGUpe3N3aXRjaChlKXtjYXNlIDI6cmV0dXJuIGkudChudWxsLHZvaWQgMCxuKDY3ODE2OCkpO2Nhc2UgMTpyZXR1cm4gaS50KG51bGwsdm9pZCAwLG4oODQ3MTQxKSk7Y2FzZSAzOnJldHVybiIiO2Nhc2UgMDpyZXR1cm59fWZ1bmN0aW9uIEgoZSl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiBlP2U6bnVsbD09PWU/IuKAlCI6KDAsbC5mb3JtYXQpKGUsIm51bWJlcnMiKX1mdW5jdGlvbiBWKGUsdCl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiBlP2U6dCYmdS5QRU9QTEVfQ09VTlRfUVVPVEVTLmluY2x1ZGVzKHQpPygwLGYuZm9ybWF0RmluYW5jaWFsc1dpdGhaZXJvUHJlY2lzaW9uQW5kUGxhY2Vob2xkZXIpKGUpPz8i4oCUIjpIKGUpfWZ1bmN0aW9uIEIoZSx0KXtjb25zdCBuPWUudG9Mb3dlckNhc2UoKTtpZighZyhuKSYmInN0YXRpc3RpY3MiIT09bil0aHJvdyBuZXcgRXJyb3IoIkJhZCBpdGVtIGNhdGVnb3J5IGlkIik7cmV0dXJuYCR7by5wYXRoc0J5Q2F0ZWdvcnlJZFtuXX0ke3QucmVwbGFjZSgvXy9nLCItIil9L2B9ZnVuY3Rpb24gWShlLHQpe2NvbnN0IG49KDAsZC5QRVJJT0RTKSh0KTtyZXR1cm4gZSYmVyhlLHQpPygwLHIuZW5zdXJlRGVmaW5lZCkobi5maW5kKCh0PT50LmlkIT09ZSkpKS5pZDooMCxkLkRFRkFVTFRfUEVSSU9EKSh0KX1mdW5jdGlvbiBXKGUsdCl7cmV0dXJuKDAsZC5QRVJJT0RTKSh0KS5zb21lKCh0PT50LmlkPT09ZSkpfWZ1bmN0aW9uIFUoZSl7cmV0dXJuWyJyZXBvcnRlZCIsImVzdGltYXRlIiwic3VycHJpc2UiXS5pbmNsdWRlcyhlKX1mdW5jdGlvbiBRKGUsdCxuKXtjb25zdCByPXtbYy5QZXJpb2RJZC5ZZWFyXTpbXSxbYy5QZXJpb2RJZC5RdWFydGVyXTpbXSxbYy5QZXJpb2RJZC5IYWxmWWVhcl06W119O3JldHVybiBPYmplY3Qua2V5cyhyKS5mb3JFYWNoKChpPT57dC5mb3JFYWNoKCh0PT57Y29uc3QgYT1xKHQsZSxpLG4pO3JbaV0ucHVzaChhKX0pKX0pKSxyfWZ1bmN0aW9uIHEoZSx0LG4scil7Y29uc3QgaT1gJHt4KGUpfV8ke24udG9Mb3dlckNhc2UoKX1gO3JldHVybiByP3RbaSt1LkhJU1RPUklDX1ZBTFVFU19QT1NURklYXTp0W2ldfX0sMzgzMTcoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7U3Vic2NyaXB0aW9uRXZlbnRUeXBlOigpPT5kLHN1YnNjcmlwdGlvbk5vdGlmaWNhdGlvbjooKT0+X30pO3ZhciByPW4oMTg1MjcxKSxpPW4oMTUyNjk5KSxhPW4oOTQ4MzgwKSxvPW4oMjIxMDYxKSxzPW4oODk2MzgwKSxsPW4ubihzKQo7Y29uc3QgYz0oMCxvLmdldExvZ2dlcikoIlN1YnNjcmlwdGlvbk5vdGlmaWNhdGlvbiIpLHU9InN1YnNjcmlwdGlvblBlcm1pc3Npb25IYXNDaGFuZ2VkIjt2YXIgZDshZnVuY3Rpb24oZSl7ZS5TdWJzY3JpYmU9InN1YnNjcmliZSIsZS5VbnN1YnNjcmliZT0idW5zdWJzY3JpYmUiLGUuRG93bmdyYWRlPSJkb3duZ3JhZGUiLGUuVXBncmFkZT0idXBncmFkZSIsZS5DaGFuZ2U9ImNoYW5nZSIsZS5QYXltZW50TWV0aG9kQ2hhbmdlZD0icGF5bWVudG1ldGhvZENoYW5nZWQiLGUuQWdyZWVtZW50U2lnbmVkPSJhZ3JlZW1lbnRTaWduZWQiLGUuTWFya2V0UHJvZmlsZURhdGFVcGRhdGVkPSJtYXJrZXRQcm9maWxlRGF0YVVwZGF0ZWQiLGUuQnJva2VyR2lmdD0iYnJva2VyR2lmdCJ9KGR8fChkPXt9KSk7Y2xhc3MgZntjb25zdHJ1Y3Rvcigpe3RoaXMuc3RhdGVDaGFuZ2VkPW5ldyBhLkRlbGVnYXRlLHRoaXMuX2hhbmRsZXJzPVtdLHRoaXMuX3dpbmRvd0V2ZW50c0hhbmRsZXJzPVtdLHRoaXMuX3N0YXRlQ2hhbmdlSGFuZGxlcnM9W119b24oZSx0KXtjb25zdCBuPW49PntsZXQgcj1udWxsO3RyeXtyPUpTT04ucGFyc2Uobil9Y2F0Y2h7cmV0dXJuIHZvaWQgYy5sb2dXYXJuKGBGYWlsZWQgdG8gcGFyc2UgSlNPTjogJHtufWApfWUhPT1kLkNoYW5nZSYmZSE9PXIudHlwZXx8dChyLHtjdXJyZW50VGFiOiExfSl9LHI9bj0+e2UhPT1kLkNoYW5nZSYmZSE9PW4udHlwZXx8dChuLHtjdXJyZW50VGFiOiEwfSl9O2kuVFZYV2luZG93RXZlbnRzLm9uKHUsbiksdGhpcy5zdGF0ZUNoYW5nZWQuc3Vic2NyaWJlKG51bGwsciksdGhpcy5faGFuZGxlcnMucHVzaCh0KSx0aGlzLl93aW5kb3dFdmVudHNIYW5kbGVycy5wdXNoKG4pLHRoaXMuX3N0YXRlQ2hhbmdlSGFuZGxlcnMucHVzaChyKX1vZmYoZSl7bGV0IHQ7Zm9yKDstMSE9PXQ7KXQ9dGhpcy5faGFuZGxlcnMuaW5kZXhPZihlKSx0Pi0xJiYoaS5UVlhXaW5kb3dFdmVudHMub2ZmKHUsdGhpcy5fd2luZG93RXZlbnRzSGFuZGxlcnNbdF0pLHRoaXMuc3RhdGVDaGFuZ2VkLnVuc3Vic2NyaWJlKG51bGwsdGhpcy5fc3RhdGVDaGFuZ2VIYW5kbGVyc1t0XSksdGhpcy5faGFuZGxlcnMuc3BsaWNlKHQsMSksdGhpcy5fd2luZG93RXZlbnRzSGFuZGxlcnM9dGhpcy5fd2luZG93RXZlbnRzSGFuZGxlcnMuc3BsaWNlKHQsMSksdGhpcy5fc3RhdGVDaGFuZ2VIYW5kbGVycz10aGlzLl9zdGF0ZUNoYW5nZUhhbmRsZXJzLnNwbGljZSh0LDEpKX1zaG93Tm90aWZpY2F0aW9uKCl7UHJvbWlzZS5hbGwoW24uZSgxOTkxNiksbi5lKDI5Mjk2KSxuLmUoNTIzOTYpLG4uZSg2MDA2Miksbi5lKDIwMzU0KSxuLmUoMjk1MzYpLG4uZSg1MTg0KSxuLmUoNTYyNTIpLG4uZSg3NDgzMCksbi5lKDUwNjIyKSxuLmUoMzMyMjEpLG4uZSgxMTcyNSksbi5lKDUxMzA5KSxuLmUoMTk1OTgpLG4uZSgzMjM4Nyksbi5lKDE3OTkxKSxuLmUoNjg3NDEpLG4uZSg4Mzc4MSksbi5lKDE5NzY5KV0pLnRoZW4obi5iaW5kKG4sNzg2NzMxKSkudGhlbigoKHtzaG93U3Vic2NyaXB0aW9uSGFzQmVlbkNoYW5nZWREaWFsb2c6ZX0pPT57ZSh7cHVzaFJlbG9hZDohMH0pfSkpfXNob3dDaGFydE5vdGlmaWNhdGlvbigpe1Byb21pc2UuYWxsKFtuLmUoMTk5MTYpLG4uZSgyOTI5Niksbi5lKDUyMzk2KSxuLmUoNjAwNjIpLG4uZSgyMDM1NCksbi5lKDI5NTM2KSxuLmUoNTE4NCksbi5lKDU2MjUyKSxuLmUoNzQ4MzApLG4uZSg1MDYyMiksbi5lKDMzMjIxKSxuLmUoMTE3MjUpLG4uZSg1MTMwOSksbi5lKDE5NTk4KSxuLmUoMzIzODcpLG4uZSgxNzk5MSksbi5lKDY4NzQxKSxuLmUoODM3ODEpLG4uZSgxOTc2OSldKS50aGVuKG4uYmluZChuLDc4NjczMSkpLnRoZW4oKCh7c2hvd1N1YnNjcmlwdGlvbkhhc0JlZW5DaGFuZ2VkRGlhbG9nOmV9KT0+e2Uoe2NvbnRlbnQ6ci50KG51bGwsdm9pZCAwLG4oMjEwNSkpfSl9KSl9c2hvd0NoYXJ0QWdyZWVtZW50Tm90aWZpY2F0aW9uKCl7UHJvbWlzZS5hbGwoW24uZSgxOTkxNiksbi5lKDI5Mjk2KSxuLmUoNTIzOTYpLG4uZSg2MDA2Miksbi5lKDIwMzU0KSxuLmUoMjk1MzYpLG4uZSg1MTg0KSxuLmUoNTYyNTIpLG4uZSg3NDgzMCksbi5lKDUwNjIyKSxuLmUoMzMyMjEpLG4uZSgxMTcyNSksbi5lKDUxMzA5KSxuLmUoMTk1OTgpLG4uZSgzMjM4Nyksbi5lKDE3OTkxKSxuLmUoNjg3NDEpLG4uZSg4Mzc4MSksbi5lKDE5NzY5KV0pLnRoZW4obi5iaW5kKG4sNzg2NzMxKSkudGhlbigoKHtzaG93U3Vic2NyaXB0aW9uSGFzQmVlbkNoYW5nZWREaWFsb2c6ZX0pPT57ZSh7dGl0bGU6ci50KG51bGwsdm9pZCAwLG4oMTIxNDk4KSksY29udGVudDpyLnQobnVsbCx2b2lkIDAsbigyNzQzOCkpfSl9KSl9c2hvd0JpbGxpbmdUaW1lb3V0Tm90aWZpY2F0aW9uKCl7UHJvbWlzZS5hbGwoW24uZSgxOTkxNiksbi5lKDI5Mjk2KSxuLmUoNTIzOTYpLG4uZSg2MDA2Miksbi5lKDIwMzU0KSxuLmUoMjk1MzYpLG4uZSg1MTg0KSxuLmUoNTYyNTIpLG4uZSg3NDgzMCksbi5lKDUwNjIyKSxuLmUoMzMyMjEpLG4uZSgxMTcyNSksbi5lKDUxMzA5KSxuLmUoMTk1OTgpLG4uZSgzMjM4Nyksbi5lKDE3OTkxKSxuLmUoNjg3NDEpLG4uZSg4Mzc4MSksbi5lKDE5NzY5KV0pLnRoZW4obi5iaW5kKG4sNzg2NzMxKSkudGhlbigoKHtzaG93U3Vic2NyaXB0aW9uSGFzQmVlbkNoYW5nZWREaWFsb2c6ZX0pPT57ZSh7dGl0bGU6ci50KG51bGwsdm9pZCAwLG4oNjY1OTQpKSxjb250ZW50OnIudChudWxsLHZvaWQgMCxuKDU1NDIyNykpLHB1c2hSZWxvYWQ6ITAsaWNvbjpsKCl9KX0pKX1hc3luYyBzaG93QnJva2VyR2lmdE5vdGlmaWNhdGlvbih7YnJva2VyTGFiZWw6ZSxwbGFuTmFtZTp0LGRheXNMZWZ0Oml9KXsKY29uc3R7c2hvd1N1YnNjcmlwdGlvbkhhc0JlZW5DaGFuZ2VkRGlhbG9nOmF9PWF3YWl0IFByb21pc2UuYWxsKFtuLmUoMTk5MTYpLG4uZSgyOTI5Niksbi5lKDUyMzk2KSxuLmUoNjAwNjIpLG4uZSgyMDM1NCksbi5lKDI5NTM2KSxuLmUoNTE4NCksbi5lKDU2MjUyKSxuLmUoNzQ4MzApLG4uZSg1MDYyMiksbi5lKDMzMjIxKSxuLmUoMTE3MjUpLG4uZSg1MTMwOSksbi5lKDE5NTk4KSxuLmUoMzIzODcpLG4uZSgxNzk5MSksbi5lKDY4NzQxKSxuLmUoODM3ODEpLG4uZSgxOTc2OSldKS50aGVuKG4uYmluZChuLDc4NjczMSkpO2Eoe3RpdGxlOnIudChudWxsLHZvaWQgMCxuKDUyODE3MSkpLGNvbnRlbnQ6ci50KG51bGwse3BsdXJhbDoie2Jyb2tlckxhYmVsfSBoYXMgdXBncmFkZWQgeW91ciBzdWJzY3JpcHRpb24gdG8ge3BsYW5OYW1lfSBmb3Ige2RheXNMZWZ0fSBkYXlzLiBQbGVhc2UgcmVsb2FkIHRoZSBjaGFydCB0byBmaXJlIHVwIHRoZSBuZXcgY2hhbmdlcy4iLGNvdW50Ok51bWJlcihpKSxyZXBsYWNlOnticm9rZXJMYWJlbDplLHBsYW5OYW1lOnQsZGF5c0xlZnQ6aX19LG4oNjI0OTA5KSl9KX14V2luZG93RXZlbnRzRW1pdChlKXtpLlRWWFdpbmRvd0V2ZW50cy5lbWl0KHUsSlNPTi5zdHJpbmdpZnkoZSkpfWN1cnJlbnRUYWJFbWl0KGUpe3RoaXMuc3RhdGVDaGFuZ2VkLmZpcmUoZSl9ZW1pdChlKXt0aGlzLmN1cnJlbnRUYWJFbWl0KGUpLHRoaXMueFdpbmRvd0V2ZW50c0VtaXQoZSl9c3RhdGljIGdldEluc3RhbmNlKCl7cmV0dXJuIGYuX2luc3RhbmNlfHwoZi5faW5zdGFuY2U9bmV3IGYpLGYuX2luc3RhbmNlfX1mdW5jdGlvbiBfKCl7cmV0dXJuIGYuZ2V0SW5zdGFuY2UoKX19LDEwNjkwMChlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHt1c2VXYXRjaGVkVmFsdWVSZWFkb25seTooKT0+YX0pO3ZhciByPW4oNzc5NDc0KSxpPW4oNjE2MzExKTtjb25zdCBhPShlLHQ9ITEsbj1bXSk9Pntjb25zdCBhPSJ3YXRjaGVkVmFsdWUiaW4gZT9lLndhdGNoZWRWYWx1ZTp2b2lkIDAsbz0iZGVmYXVsdFZhbHVlImluIGU/ZS5kZWZhdWx0VmFsdWU6ZS53YXRjaGVkVmFsdWUudmFsdWUoKSxbcyxsXT0oMCxyLnVzZVN0YXRlKShhP2EudmFsdWUoKTpvKTtyZXR1cm4odD9pLnVzZUlzb21vcnBoaWNMYXlvdXRFZmZlY3Q6ci51c2VFZmZlY3QpKCgoKT0+e2lmKGEpe2woYS52YWx1ZSgpKTtjb25zdCBlPWU9PmwoZSk7cmV0dXJuIGEuc3Vic2NyaWJlKGUpLCgpPT5hLnVuc3Vic2NyaWJlKGUpfXJldHVybigpPT57fX0pLFthLC4uLm5dKSxzfX0sNDQ0Mzg2KGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse0ZJTkFOQ0lBTFNfRk9STUFUVEVSX01BWF9WQUxVRTooKT0+byxGaW5hbmNpYWxzRm9ybWF0dGVyOigpPT5zfSk7dmFyIHI9big3ODMyNTQpLGk9bigxMTUyOTMpLGE9big5ODQzNzYpO2NvbnN0IG89MWUxMDA7Y2xhc3MgcyBleHRlbmRzIGEuVm9sdW1lRm9ybWF0dGVye2NvbnN0cnVjdG9yKGU9Mix0KXtzdXBlcih7cHJlY2lzaW9uOmUsbWluUHJlY2lzaW9uOnQ/P2UsZGltZW5zaW9uUHJlY2lzaW9uOmUsZGltZW5zaW9uTWluUHJlY2lzaW9uOnQ/P2V9KX1mb3JtYXQoZSx0KXtpZihNYXRoLmFicyhlKT49bylyZXR1cm4gci50KG51bGwse2NvbnRleHQ6InZvbHVtZS1mb3JtYXR0ZXIifSxuKDU3MDYyKSk7Y29uc3QgYT1zdXBlci5mb3JtYXQoZSx0KTtpZihhLmxlbmd0aD4wKXtjb25zdCBlPWEuc2xpY2UoLTEpO2lmKCJLIj09PWV8fCJNIj09PWV8fCJCIj09PWV8fCJUIj09PWUpcmV0dXJuKDAsaS5mb3JjZUxUUlN0clNzcikoYSl9cmV0dXJuIGF9cGFyc2UoZSx0KXtyZXR1cm4gc3VwZXIucGFyc2UoKDAsaS5zdHJpcExUUlN0clNzcikoZSksdCl9fX0sMTU1MzcwKGUsdCxuKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gcihlKXtyZXR1cm4gZT8uZnVuZF92aWV3X21vZGVzPy50cmFkaXRpb25hbD8uWzBdfW4uZCh0LHtleHRyYWN0VHJhZGl0aW9uYWxGdW5kVmlld01vZGU6KCk9PnJ9KX0sMTUxNjU5KGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse2Zvcm1hdEZpbmFuY2lhbHNXaXRoWmVyb1ByZWNpc2lvbkFuZFBsYWNlaG9sZGVyOigpPT5vfSk7dmFyIHI9big0NDQzODYpLGk9big0NTM5NjMpO2NvbnN0IGE9bmV3IHIuRmluYW5jaWFsc0Zvcm1hdHRlcigyLDApO2Z1bmN0aW9uIG8oZSx0KXtjb25zdCBuPSgwLGkuZ2V0TnVtYmVyT3JVbmRlZmluZWQpKGUpO2lmKHZvaWQgMCE9PW4mJk1hdGguYWJzKG4pPHIuRklOQU5DSUFMU19GT1JNQVRURVJfTUFYX1ZBTFVFKXJldHVybiBhLmZvcm1hdChuLHQpfX0sODkzMTE1KGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse2dldExvY2FsZTooKT0+YSxnZXRMb2NhbGVJc286KCk9Pm99KTt2YXIgcj1uKDg0NDIyNSk7Y29uc3QgaT1mdW5jdGlvbigpe2NvbnN0IGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBhZ2UtbG9jYWxlLWxpbmtzIik/LnRleHRDb250ZW50LHQ9ZT9KU09OLnBhcnNlKGUpOltdO2lmKDA9PT10Lmxlbmd0aClyZXR1cm4gcjtjb25zdCBuPXt9O3JldHVybiB0LmZvckVhY2goKCh7bG9jYWxlOmUsdXJsOnR9KT0+e25bZV09ey4uLnJbZV0saHJlZjp0fX0pKSxufSgpO2Z1bmN0aW9uIGEoZSl7cmV0dXJuIGU9ZXx8d2luZG93LmxvY2FsZSxpW2VdfWZ1bmN0aW9uIG8oZSl7cmV0dXJuIGU9ZXx8d2luZG93LmxvY2FsZSxpW2VdPy5pc299fSw4ODgxMDgoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7dXNlQ2hhbmdlVXNlclN0YXRlOigpPT5vfSk7dmFyIHI9big3Nzk0NzQpLGk9bigzODMxNyk7bGV0IGE9bnVsbDtmdW5jdGlvbiBvKGUpe2NvbnN0W3Qsbl09KDAsci51c2VTdGF0ZSkoZSk7cmV0dXJuKDAsci51c2VFZmZlY3QpKCgoKT0+KHdpbmRvdy5sb2dpblN0YXRlQ2hhbmdlLnN1YnNjcmliZShudWxsLGkpLGE/LnN0YXRlQ2hhbmdlZC5zdWJzY3JpYmUobnVsbCxpKSwoKT0+e3dpbmRvdy5sb2dpblN0YXRlQ2hhbmdlLnVuc3Vic2NyaWJlKG51bGwsaSksYT8uc3RhdGVDaGFuZ2VkLnVuc3Vic2NyaWJlKG51bGwsaSl9KSksW10pLHQ7ZnVuY3Rpb24gaSgpe24oe2lzUHJvOkJvb2xlYW4od2luZG93LnVzZXIuaXNfcHJvKSwKaXNBdXRoZW50aWNhdGVkOndpbmRvdy5pc19hdXRoZW50aWNhdGVkfSl9fWE9KDAsaS5zdWJzY3JpcHRpb25Ob3RpZmljYXRpb24pKCl9LDQ5NDMxNyhlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtMaW5rOigpPT5ofSk7dmFyIHI9big5NDQ3ODApLGk9bigzMTAyMTEpLGE9big3Nzk0NzQpLG89big4MTk1OTEpLHM9KG4oMjIxODk2KSxuKDY0NDMyMCkpLGw9big3ODg5MTUpLGM9bigyNTM4NSk7YS5Db21wb25lbnQ7YS5Db21wb25lbnQ7dmFyIHU9ZnVuY3Rpb24oZSx0KXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgZT9lKHQpOmV9LGQ9ZnVuY3Rpb24oZSx0KXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIGU/KDAsby5jcmVhdGVMb2NhdGlvbikoZSxudWxsLG51bGwsdCk6ZX0sZj1mdW5jdGlvbihlKXtyZXR1cm4gZX0sXz1hLmZvcndhcmRSZWY7dm9pZCAwPT09XyYmKF89Zik7dmFyIGc9XygoZnVuY3Rpb24oZSx0KXt2YXIgbj1lLmlubmVyUmVmLHI9ZS5uYXZpZ2F0ZSxpPWUub25DbGljayxvPSgwLGwuZGVmYXVsdCkoZSxbImlubmVyUmVmIiwibmF2aWdhdGUiLCJvbkNsaWNrIl0pLGM9by50YXJnZXQsdT0oMCxzLmRlZmF1bHQpKHt9LG8se29uQ2xpY2s6ZnVuY3Rpb24oZSl7dHJ5e2kmJmkoZSl9Y2F0Y2godCl7dGhyb3cgZS5wcmV2ZW50RGVmYXVsdCgpLHR9ZS5kZWZhdWx0UHJldmVudGVkfHwwIT09ZS5idXR0b258fGMmJiJfc2VsZiIhPT1jfHxmdW5jdGlvbihlKXtyZXR1cm4hIShlLm1ldGFLZXl8fGUuYWx0S2V5fHxlLmN0cmxLZXl8fGUuc2hpZnRLZXkpfShlKXx8KGUucHJldmVudERlZmF1bHQoKSxyKCkpfX0pO3JldHVybiB1LnJlZj1mIT09XyYmdHx8bixhLmNyZWF0ZUVsZW1lbnQoImEiLHUpfSkpO3ZhciBoPV8oKGZ1bmN0aW9uKGUsdCl7dmFyIG49ZS5jb21wb25lbnQsaT12b2lkIDA9PT1uP2c6bixvPWUucmVwbGFjZSxoPWUudG8sbT1lLmlubmVyUmVmLHA9KDAsbC5kZWZhdWx0KShlLFsiY29tcG9uZW50IiwicmVwbGFjZSIsInRvIiwiaW5uZXJSZWYiXSk7cmV0dXJuIGEuY3JlYXRlRWxlbWVudChyLl9fUm91dGVyQ29udGV4dC5Db25zdW1lcixudWxsLChmdW5jdGlvbihlKXtlfHwoMCxjLmRlZmF1bHQpKCExKTt2YXIgbj1lLmhpc3Rvcnkscj1kKHUoaCxlLmxvY2F0aW9uKSxlLmxvY2F0aW9uKSxsPXI/bi5jcmVhdGVIcmVmKHIpOiIiLGc9KDAscy5kZWZhdWx0KSh7fSxwLHtocmVmOmwsbmF2aWdhdGU6ZnVuY3Rpb24oKXt2YXIgdD11KGgsZS5sb2NhdGlvbik7KG8/bi5yZXBsYWNlOm4ucHVzaCkodCl9fSk7cmV0dXJuIGYhPT1fP2cucmVmPXR8fG06Zy5pbm5lclJlZj1tLGEuY3JlYXRlRWxlbWVudChpLGcpfSkpfSkpLG09ZnVuY3Rpb24oZSl7cmV0dXJuIGV9LHA9YS5mb3J3YXJkUmVmO3ZvaWQgMD09PXAmJihwPW0pO3AoKGZ1bmN0aW9uKGUsdCl7dmFyIG49ZVsiYXJpYS1jdXJyZW50Il0saT12b2lkIDA9PT1uPyJwYWdlIjpuLG89ZS5hY3RpdmVDbGFzc05hbWUsZj12b2lkIDA9PT1vPyJhY3RpdmUiOm8sXz1lLmFjdGl2ZVN0eWxlLGc9ZS5jbGFzc05hbWUsdj1lLmV4YWN0LGI9ZS5pc0FjdGl2ZSx5PWUubG9jYXRpb24sdz1lLnNlbnNpdGl2ZSxQPWUuc3RyaWN0LEU9ZS5zdHlsZSxTPWUudG8sVD1lLmlubmVyUmVmLEM9KDAsbC5kZWZhdWx0KShlLFsiYXJpYS1jdXJyZW50IiwiYWN0aXZlQ2xhc3NOYW1lIiwiYWN0aXZlU3R5bGUiLCJjbGFzc05hbWUiLCJleGFjdCIsImlzQWN0aXZlIiwibG9jYXRpb24iLCJzZW5zaXRpdmUiLCJzdHJpY3QiLCJzdHlsZSIsInRvIiwiaW5uZXJSZWYiXSk7cmV0dXJuIGEuY3JlYXRlRWxlbWVudChyLl9fUm91dGVyQ29udGV4dC5Db25zdW1lcixudWxsLChmdW5jdGlvbihlKXtlfHwoMCxjLmRlZmF1bHQpKCExKTt2YXIgbj15fHxlLmxvY2F0aW9uLG89ZCh1KFMsbiksbiksbD1vLnBhdGhuYW1lLEk9bCYmbC5yZXBsYWNlKC8oWy4rKj89XiE6JHt9KClbXF18L1xcXSkvZywiXFwkMSIpLE49ST8oMCxyLm1hdGNoUGF0aCkobi5wYXRobmFtZSx7cGF0aDpJLGV4YWN0OnYsc2Vuc2l0aXZlOncsc3RyaWN0OlB9KTpudWxsLEw9ISEoYj9iKE4sbik6TiksRD1MP2Z1bmN0aW9uKCl7Zm9yKHZhciBlPWFyZ3VtZW50cy5sZW5ndGgsdD1uZXcgQXJyYXkoZSksbj0wO248ZTtuKyspdFtuXT1hcmd1bWVudHNbbl07cmV0dXJuIHQuZmlsdGVyKChmdW5jdGlvbihlKXtyZXR1cm4gZX0pKS5qb2luKCIgIil9KGcsZik6ZyxBPUw/KDAscy5kZWZhdWx0KSh7fSxFLHt9LF8pOkUsRj0oMCxzLmRlZmF1bHQpKHsiYXJpYS1jdXJyZW50IjpMJiZpfHxudWxsLGNsYXNzTmFtZTpELHN0eWxlOkEsdG86b30sQyk7cmV0dXJuIG0hPT1wP0YucmVmPXR8fFQ6Ri5pbm5lclJlZj1ULGEuY3JlYXRlRWxlbWVudChoLEYpfSkpfSkpfSw0NTM5NjMoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7Z2V0TnVtYmVyT3JVbmRlZmluZWQ6KCk9Pml9KTt2YXIgcj1uKDk2MDk2Mik7ZnVuY3Rpb24gaShlKXtpZihmdW5jdGlvbihlKXtpZigoMCxyLmhhc051bWJlcikoZSkpcmV0dXJuITA7aWYoInN0cmluZyI9PXR5cGVvZiBlJiZlLmxlbmd0aCYmIWlzTmFOKE51bWJlcihlKSkpcmV0dXJuITA7cmV0dXJuITF9KGUpKXJldHVybiBOdW1iZXIoZSl9fSw5NjA5NjIoZSx0LG4peyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiByKGUpe3JldHVybiJudW1iZXIiPT10eXBlb2YgZSYmaXNGaW5pdGUoZSl9bi5kKHQse2hhc051bWJlcjooKT0+cn0pfSwyMzYxNDYoZSl7ZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDE4IDE4IiB3aWR0aD0iMTgiIGhlaWdodD0iMTgiPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZD0iTTkuODQgOSA2LjYyIDUuMzNsLjc2LS42NkwxMS4xNiA5bC0zLjc4IDQuMzMtLjc2LS42Nkw5Ljg0IDlaIi8+PC9zdmc+J30sODk2MzgwKGUpewplLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMTIwIDEyMCIgd2lkdGg9IjEyMCIgaGVpZ2h0PSIxMjAiPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZD0iTTgzLjEyIDU5LjVjMC01LjEzLTEuNjctOS44Ni00LjQ5LTEzLjY5bDMuMjItMi4zN0EyNy4xIDI3LjEgMCAwIDEgNjAuMDIgODYuNmgtLjA1bC0uNTMtLjAyIDcuMTIgNy4xMi0yLjgzIDIuODMtMTIuMi0xMi4yTDYyLjUgNzMuMzZsMi44MyAyLjgyLTYuMzYgNi4zNiAxLjEuMDVhMjMuMSAyMy4xIDAgMCAwIDIzLjA1LTIzLjFaTTQyLjg1IDczLjkyYTIzLjEgMjMuMSAwIDAgMSAxOC41Ni0zNi43OGwxLjEuMDUtNi4zNiA2LjM1IDIuODMgMi44MyAxMC45Ny0xMC45Ni0xMi4yLTEyLjItMi44MyAyLjgzIDcuMTMgNy4xMi0uNTQtLjAyaC0uMDVhMjcuMSAyNy4xIDAgMCAwLTIxLjgzIDQzLjE1bDMuMjItMi4zN1oiLz48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGQ9Ik04IDMwQTIyIDIyIDAgMCAxIDMwIDhoNjBhMjIgMjIgMCAwIDEgMjIgMjJ2NjBhMjIgMjIgMCAwIDEtMjIgMjJIMzBBMjIgMjIgMCAwIDEgOCA5MFYzMFptMjItMThhMTggMTggMCAwIDAtMTggMTh2NjBhMTggMTggMCAwIDAgMTggMThoNjBhMTggMTggMCAwIDAgMTgtMThWMzBhMTggMTggMCAwIDAtMTgtMThIMzBaIi8+PC9zdmc+J30sODQ0MjI1KGUpeyJ1c2Ugc3RyaWN0Igo7ZS5leHBvcnRzPUpTT04ucGFyc2UoJ3siZW4iOnsibGFuZ3VhZ2UiOiJlbiIsImxhbmd1YWdlX25hbWUiOiJFbmdsaXNoIiwiZmxhZyI6InVzIiwiZ2VvaXBfY29kZSI6InVzIiwiaXNvIjoiZW4iLCJpc29fNjM5XzMiOiJlbmciLCJnbG9iYWxfbmFtZSI6IkVuZ2xpc2giLCJpc19vbmx5X3JlY29tbWVuZGVkX3R3X2F1dG9yZXBvc3QiOnRydWV9LCJpbiI6eyJsYW5ndWFnZSI6ImVuIiwibGFuZ3VhZ2VfbmFtZSI6IkVuZ2xpc2gg4oCOKEluZGlhKeKAjiIsImZsYWciOiJpbiIsImdlb2lwX2NvZGUiOiJpbiIsImlzbyI6ImVuIiwiaXNvXzYzOV8zIjoiZW5nIiwiZ2xvYmFsX25hbWUiOiJJbmRpYW4ifSwiZGVfREUiOnsibGFuZ3VhZ2UiOiJkZSIsImxhbmd1YWdlX25hbWUiOiJEZXV0c2NoIiwiZmxhZyI6ImRlIiwiZ2VvaXBfY29kZSI6ImRlIiwiY291bnRyaWVzX3dpdGhfdGhpc19sYW5ndWFnZSI6WyJhdCIsImNoIl0sImlzbyI6ImRlIiwiaXNvXzYzOV8zIjoiZGV1IiwiZ2xvYmFsX25hbWUiOiJHZXJtYW4iLCJpc19pbl9ldXJvcGVhbl91bmlvbiI6dHJ1ZX0sImZyIjp7Imxhbmd1YWdlIjoiZnIiLCJsYW5ndWFnZV9uYW1lIjoiRnJhbsOnYWlzIiwiZmxhZyI6ImZyIiwiZ2VvaXBfY29kZSI6ImZyIiwiaXNvIjoiZnIiLCJpc29fNjM5XzMiOiJmcmEiLCJnbG9iYWxfbmFtZSI6IkZyZW5jaCIsImlzX2luX2V1cm9wZWFuX3VuaW9uIjp0cnVlfSwiY2FfRVMiOnsibGFuZ3VhZ2UiOiJjYV9FUyIsImxhbmd1YWdlX25hbWUiOiJDYXRhbMOgIiwiZmxhZyI6ImVzIiwiZ2VvaXBfY29kZSI6ImVzIiwiaXNvIjoiY2EiLCJpc29fNjM5XzMiOiJjYXQiLCJnbG9iYWxfbmFtZSI6IkNhdGFsYW4ifSwiZXMiOnsibGFuZ3VhZ2UiOiJlcyIsImxhbmd1YWdlX25hbWUiOiJFc3Bhw7FvbCIsImZsYWciOiJlcyIsImdlb2lwX2NvZGUiOiJlcyIsImNvdW50cmllc193aXRoX3RoaXNfbGFuZ3VhZ2UiOlsibXgiLCJhciIsInZlIiwiY2wiLCJjbyIsInBlIiwidXkiLCJweSIsImNyIiwiZ3QiLCJjIiwiYm8iLCJwYSIsInByIl0sImlzbyI6ImVzIiwiaXNvXzYzOV8zIjoic3BhIiwiZ2xvYmFsX25hbWUiOiJTcGFuaXNoIiwiaXNfaW5fZXVyb3BlYW5fdW5pb24iOnRydWV9LCJpdCI6eyJsYW5ndWFnZSI6Iml0IiwibGFuZ3VhZ2VfbmFtZSI6Ikl0YWxpYW5vIiwiZmxhZyI6Iml0IiwiZ2VvaXBfY29kZSI6Iml0IiwiaXNvIjoiaXQiLCJpc29fNjM5XzMiOiJpdGEiLCJnbG9iYWxfbmFtZSI6Ikl0YWxpYW4iLCJpc19pbl9ldXJvcGVhbl91bmlvbiI6dHJ1ZX0sInBsIjp7Imxhbmd1YWdlIjoicGwiLCJsYW5ndWFnZV9uYW1lIjoiUG9sc2tpIiwiZmxhZyI6InBsIiwiZ2VvaXBfY29kZSI6InBsIiwiaXNvIjoicGwiLCJpc29fNjM5XzMiOiJwb2wiLCJnbG9iYWxfbmFtZSI6IlBvbGlzaCIsImlzX2luX2V1cm9wZWFuX3VuaW9uIjp0cnVlfSwiaHVfSFUiOnsibGFuZ3VhZ2UiOiJodV9IVSIsImxhbmd1YWdlX25hbWUiOiJNYWd5YXIiLCJmbGFnIjoiaHUiLCJnZW9pcF9jb2RlIjoiaHUiLCJpc28iOiJodSIsImlzb182MzlfMyI6Imh1biIsImdsb2JhbF9uYW1lIjoiSHVuZ2FyaWFuIiwiaXNfaW5fZXVyb3BlYW5fdW5pb24iOnRydWV9LCJzdl9TRSI6eyJsYW5ndWFnZSI6InN2IiwibGFuZ3VhZ2VfbmFtZSI6IlN2ZW5za2EiLCJmbGFnIjoic2UiLCJnZW9pcF9jb2RlIjoic2UiLCJpc28iOiJzdiIsImlzb182MzlfMyI6InN3ZSIsImdsb2JhbF9uYW1lIjoiU3dlZGlzaCIsImlzX2luX2V1cm9wZWFuX3VuaW9uIjp0cnVlfSwidHIiOnsibGFuZ3VhZ2UiOiJ0ciIsImxhbmd1YWdlX25hbWUiOiJUw7xya8OnZSIsImZsYWciOiJ0ciIsImdlb2lwX2NvZGUiOiJ0ciIsImlzbyI6InRyIiwiaXNvXzYzOV8zIjoidHVyIiwiZ2xvYmFsX25hbWUiOiJUdXJraXNoIiwiaXNfb25seV9yZWNvbW1lbmRlZF90d19hdXRvcmVwb3N0Ijp0cnVlfSwicnUiOnsibGFuZ3VhZ2UiOiJydSIsImxhbmd1YWdlX25hbWUiOiLQoNGD0YHRgdC60LjQuSIsImZsYWciOiJydSIsImdlb2lwX2NvZGUiOiJydSIsImNvdW50cmllc193aXRoX3RoaXNfbGFuZ3VhZ2UiOlsiYW0iLCJieSIsImtnIiwia3oiLCJtZCIsInRqIiwidG0iLCJ1eiJdLCJpc28iOiJydSIsImlzb182MzlfMyI6InJ1cyIsImdsb2JhbF9uYW1lIjoiUnVzc2lhbiIsImlzX29ubHlfcmVjb21tZW5kZWRfdHdfYXV0b3JlcG9zdCI6dHJ1ZX0sImJyIjp7Imxhbmd1YWdlIjoicHQiLCJsYW5ndWFnZV9uYW1lIjoiUG9ydHVndcOqcyIsImZsYWciOiJiciIsImdlb2lwX2NvZGUiOiJiciIsImlzbyI6InB0IiwiaXNvXzYzOV8zIjoicG9yIiwiZ2xvYmFsX25hbWUiOiJQb3J0dWd1ZXNlIn0sImlkIjp7Imxhbmd1YWdlIjoiaWRfSUQiLCJsYW5ndWFnZV9uYW1lIjoiQmFoYXNhIEluZG9uZXNpYSIsImZsYWciOiJpZCIsImdlb2lwX2NvZGUiOiJpZCIsImlzbyI6ImlkIiwiaXNvXzYzOV8zIjoiaW5kIiwiZ2xvYmFsX25hbWUiOiJJbmRvbmVzaWFuIn0sIm1zX01ZIjp7Imxhbmd1YWdlIjoibXNfTVkiLCJsYW5ndWFnZV9uYW1lIjoiQmFoYXNhIE1lbGF5dSIsImZsYWciOiJteSIsImdlb2lwX2NvZGUiOiJteSIsImlzbyI6Im1zIiwiaXNvXzYzOV8zIjoiemxtIiwiZ2xvYmFsX25hbWUiOiJNYWxheXNpYW4ifSwidGhfVEgiOnsibGFuZ3VhZ2UiOiJ0aCIsImxhbmd1YWdlX25hbWUiOiLguKDguLLguKnguLLguYTguJfguKIiLCJmbGFnIjoidGgiLCJnZW9pcF9jb2RlIjoidGgiLCJpc28iOiJ0aCIsImlzb182MzlfMyI6InRoYSIsImdsb2JhbF9uYW1lIjoiVGhhaSJ9LCJ2aV9WTiI6eyJsYW5ndWFnZSI6InZpIiwibGFuZ3VhZ2VfbmFtZSI6IlRp4bq/bmcgVmnhu4d0IiwiZmxhZyI6InZuIiwiZ2VvaXBfY29kZSI6InZuIiwiaXNvIjoidmkiLCJpc29fNjM5XzMiOiJ2aWUiLCJnbG9iYWxfbmFtZSI6IlZpZXRuYW1lc2UifSwiamEiOnsibGFuZ3VhZ2UiOiJqYSIsImxhbmd1YWdlX25hbWUiOiLml6XmnKzoqp4iLCJmbGFnIjoianAiLCJnZW9pcF9jb2RlIjoianAiLCJpc28iOiJqYSIsImlzb182MzlfMyI6ImpwbiIsImdsb2JhbF9uYW1lIjoiSmFwYW5lc2UifSwia3IiOnsibGFuZ3VhZ2UiOiJrbyIsImxhbmd1YWdlX25hbWUiOiLtlZzqta3slrQiLCJmbGFnIjoia3IiLCJnZW9pcF9jb2RlIjoia3IiLCJpc28iOiJrbyIsImlzb182MzlfMyI6ImtvciIsImdsb2JhbF9uYW1lIjoiS29yZWFuIn0sInpoX0NOIjp7Imxhbmd1YWdlIjoiemgiLCJsYW5ndWFnZV9uYW1lIjoi566A5L2T5Lit5paHIiwiZmxhZyI6ImNuIiwiZ2VvaXBfY29kZSI6ImNuIiwiY291bnRyaWVzX3dpdGhfdGhpc19sYW5ndWFnZSI6WyJ6aCJdLCJpc28iOiJ6aC1IYW5zIiwiaXNvXzYzOV8zIjoiY21uIiwiZ2xvYmFsX25hbWUiOiJDaGluZXNlIn0sInpoX1RXIjp7Imxhbmd1YWdlIjoiemhfVFciLCJsYW5ndWFnZV9uYW1lIjoi57mB6auU5Lit5paHIiwiZmxhZyI6InR3IiwiZ2VvaXBfY29kZSI6InR3IiwiY291bnRyaWVzX3dpdGhfdGhpc19sYW5ndWFnZSI6WyJoayJdLCJpc28iOiJ6aC1IYW50IiwiaXNvXzYzOV8zIjoiY21uIiwiZ2xvYmFsX25hbWUiOiJUYWl3YW5lc2UifSwiYXJfQUUiOnsibGFuZ3VhZ2UiOiJhciIsImxhbmd1YWdlX25hbWUiOiLYp9mE2LnYsdio2YrYqSIsImZsYWciOiJzYSIsImdlb2lwX2NvZGUiOiJzYSIsImNvdW50cmllc193aXRoX3RoaXNfbGFuZ3VhZ2UiOlsiYWUiLCJiaCIsImRqIiwiZHoiLCJlZyIsImVyIiwiaXEiLCJqbyIsImttIiwia3ciLCJsYiIsImx5IiwibWEiLCJtciIsIm9tIiwicWEiLCJzYSIsInNkIiwic28iLCJzeSIsInRkIiwidG4iLCJ5ZSJdLCJkaXIiOiJydGwiLCJpc28iOiJhciIsImlzb182MzlfMyI6ImFyYiIsImdsb2JhbF9uYW1lIjoiQXJhYmljIn0sImhlX0lMIjp7Imxhbmd1YWdlIjoiaGVfSUwiLCJsYW5ndWFnZV9uYW1lIjoi16LXkdeo15nXqiIsImZsYWciOiJpbCIsImdlb2lwX2NvZGUiOiJpbCIsImRpciI6InJ0bCIsImlzbyI6ImhlIiwiaXNvXzYzOV8zIjoiaGViIiwiZ2xvYmFsX25hbWUiOiJJc3JhZWxpIn19JykKfX1dKTs="}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/84265.4c6d8f772d538f528598.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.226Z","timestamp":1785148034226,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/84265.4c6d8f772d538f528598.js HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a61b1a9-3ec9\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Thu, 23 Jul 2026 06:16:09 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/23/2026 10:17:28\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 5f2813f0878d65c9625687eaca44c68f\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":16073,"size_decoded":6405,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, Unicode text, UTF-8 text, with very long lines (3072)","md5":"aaa159536c7d981785f51eb8ba67db93","sha1":"5784ebe9400e2e22025fd79e968d64297da6cd0a","sha256":"ef93d4903275fc451f34833321771914711245c75400304160edb454f5cea2f6","sha512":"8251e335dab75314acec8c4fb0be5d55dcb1ba3f7875695b4234c7c902ce169087b041112ff620a936d0113202ccb19fb57930b21765a24faa342177cd37e569","ssdeep":"384:FrWj47HRZhjkj+bEvcxXXws4gNwVb86wxR2ViPzhvUel2HOU2s6nSSf05r:FBHRZhYjIHP4gNwVYXxR2QP9vUel2Hth","tlshash":"5972c624f2b4ac666bb352ed4ef543835d9c4c82de5109befaa908cf195c5083379b39","first_seen":"2026-07-23T14:00:31.621457Z","last_seen":"2026-07-27T12:48:39.851616Z","times_seen":78,"resource_available":true,"data":"InVzZSBzdHJpY3QiOyhzZWxmLndlYnBhY2tDaHVua3RyYWRpbmd2aWV3PXNlbGYud2VicGFja0NodW5rdHJhZGluZ3ZpZXd8fFtdKS5wdXNoKFtbODQyNjVdLHs5OTAwNjAoZSx0LHMpe2Z1bmN0aW9uIGkoZSx0KXtyZXR1cm57c3RhcnQ6TWF0aC5taW4oZS5zdGFydCx0LnN0YXJ0KSxlbmQ6TWF0aC5tYXgoZS5lbmQsdC5lbmQpfX1mdW5jdGlvbiByKGUpe3JldHVybiB2b2lkIDA9PT1lP2U6QXJyYXkuZnJvbShlKX1zLmQodCx7YXJyYXlGcm9tU2V0OigpPT5yLG1lcmdlVHBvUHJpY2VSYW5nZXM6KCk9Pml9KX0sNjg0MjY1KGUsdCxzKXt2YXIgaTtzLmQodCx7VHBvU3R1ZHlCYXNlOigpPT5VLGV4dGVuZGluZ0lucHV0SWRzOigpPT5FfSksZnVuY3Rpb24oZSl7ZVtlLlYxPTFdPSJWMSIsZVtlLlYyPTJdPSJWMiJ9KGl8fChpPXt9KSk7dmFyIHI9cygzMDQyMjEpLG89cygxMzg2MzgpLGE9cyg5NTI5MDApLGw9cygyMjEwNjEpLG49cygxNDUzODEpLGM9cygxODUyNzEpLGQ9cyg1NzA2MDMpLHU9cyg3NjUxNzMpLHA9cygyMDU2MTEpLGg9cyg5NDM5NSksbT1zKDE5NzI3MiksZz1zKDc2ODI5MiksXz1zKDc5ODM4KSxTPXMoMTI4OTk4KSx3PXMoNTA3NjA0KTtjb25zdHtjb2xvckNvbGRHcmF5MjAwOnksY29sb3JDb2xkR3JheTkwMDpQLGNvbG9yRGVlcEJsdWVBMjAwOlQsY29sb3JEZWVwQmx1ZUE3MDA6Yixjb2xvckdyYXBlc1B1cnBsZUEyMDBBbHBoYTE1OkEsY29sb3JTa3lCbHVlNDAwQWxwaGE1MDp2LGNvbG9yU2t5Qmx1ZTQwMEFscGhhNzU6Q309dy5jb2xvcnMsUj17cG9jOltQLHldLHBvb3JIaWdoOltiLFRdLHBvb3JMb3c6W2IsVF0sc2luZ2xlcHJpbnRzOltBLEFdLHZhaDpbUCx5XSx2YWw6W1AseV0sdmFsdWVzOltQLHldLHZwVmFoOltQLHldLHZwVmFsOltQLHldLHZwUG9jOltQLHldLHZvbHVtZUNvbG9yOlt2LHZdLHZhbHVlQXJlYUNvbG9yOltDLENdfTtsZXQgZj1udWxsO3ZhciBNPXMoOTg0Mzc2KSxWPXMoNDAzODE3KSxrPXMoOTkwMDYwKSx4PXMoNTg4ODcwKSxJPXMoODc0NjApLEI9cyg1NDIxOTIpO2NsYXNzIE8gZXh0ZW5kcyB4LlN1bW1hcnlQYW5lVmlld3tjb25zdHJ1Y3RvcihlLHQpe3N1cGVyKGUsdCl9X2N1dE9mZkxhc3RDb2x1bW4oKXtyZXR1cm4hMX1fZ2V0RGF0YVNvdXJjZUZvclN1bW1hcnkoKXtyZXR1cm4gdGhpcy5fbW9kZWwuZGF0YVNvdXJjZUZvcklkKEIudHBvU3VtbWFyeURhdGFTb3VyY2VJZCl9X2dldFN1bW1hcnlDb2x1bW5SZW5kZXJlckRhdGEoZSx0KXtjb25zdCBzPXRoaXMuX3N0dWR5LmdyYXBoaWNzKCksaT10aGlzLl9tb2RlbC50aW1lU2NhbGUoKSxyPXRoaXMuX3N0dWR5LG89dGhpcy5fbW9kZWwubWFpblNlcmllcygpLnByb3BlcnRpZXMoKS5jaGlsZHMoKS50cG9TdHlsZS5jaGlsZHMoKSxhPW8uc3VtbWFyeS5jaGlsZHMoKS5pbmZvQmxvY2tzLmNoaWxkcygpLGw9by5sZXZlbHMuY2hpbGRzKCkuaW5pdGlhbEJhbGFuY2VSYW5nZS5jaGlsZHMoKSxuPW5ldyBNLlZvbHVtZUZvcm1hdHRlcixjPXRoaXMuX21vZGVsLm1haW5TZXJpZXMoKS5mb3JtYXR0ZXIoKSxkPWU9PmMuZm9ybWF0KGUpLHU9bmV3IFYuTG9naWNhbFJhbmdlKHQubGVmdCgpLTUsdC5yaWdodCgpKzUpLHA9W10saD0uNSppLmJhclNwYWNpbmcoKTtmb3IoY29uc3RbdCxvXW9mIHMudHBvcygpKXtjb25zdCBjPXMudHBvU3VtbWFyeUluZm8oKS5nZXQodCk7QXJyYXkuZnJvbShvKS5zb3J0KCgoZSx0KT0+ZS5maXJzdEJhclRpbWUtdC5maXJzdEJhclRpbWUpKS5mb3JFYWNoKChvPT57aWYoIXUuY29udGFpbnMoby5maXJzdEJhclRpbWUpJiYhdS5jb250YWlucyhvLmxhc3RCYXJUaW1lKSlyZXR1cm47Y29uc3QgbT1BcnJheS5mcm9tKGM/LmdldChvLmlkKT8/W10pLGc9bVttLmxlbmd0aC0xXTtpZighZylyZXR1cm47Y29uc3R7aW5pdGlhbEJhbGFuY2VIaWdoOl8saW5pdGlhbEJhbGFuY2VMb3c6Uyxpbml0aWFsQmFsYW5jZVJhbmdlOnd9PWEseT17dmFoUHJpY2U6ZChnLnZhaFByaWNlKSx2YWxQcmljZTpkKGcudmFsUHJpY2UpLHBvY1ByaWNlOmQoZy5wb2NQcmljZSl9LFA9Xy5jaGlsZHMoKS52aXNpYmxlLnZhbHVlKCksVD1TLmNoaWxkcygpLnZpc2libGUudmFsdWUoKSxiPXcuY2hpbGRzKCkudmlzaWJsZS52YWx1ZSgpO2lmKFB8fFR8fGIpe2NvbnN0IGU9KDAsay5hcnJheUZyb21TZXQpKHMudHBvQmxvY2tTZXRzKCkuZ2V0KHQpPy5nZXQoby5pZCkpO2lmKHZvaWQgMCE9PWUpe2NvbnN0IHQ9ci5jYWxjdWxhdGVJbml0aWFsQmFsYW5jZVByaWNlUmFuZ2UoZSxvLnByaWNlUmFuZ2UsbCk7eS5pbml0aWFsQmFsYW5jZUhpZ2g9dD9kKHQuZW5kKToi4oCUIix5LmluaXRpYWxCYWxhbmNlTG93PXQ/ZCh0LnN0YXJ0KToi4oCUIix5LmluaXRpYWxCYWxhbmNlUmFuZ2U9dD9kKHQuZW5kLXQuc3RhcnQpOiLigJQifX15LnJvdGF0aW9uRmFjdG9yPWcucm90YXRpb25GYWN0b3IudG9TdHJpbmcoKSx5LmhsUmFuZ2U9ZChnLmhsUmFuZ2UpLHkudmFSYW5nZT1kKGcudmFSYW5nZSkseS50b3RhbFZvbHVtZT1uLmZvcm1hdChnLnRvdGFsVm9sdW1lKSx5LnRwb0NvdW50VG90YWw9Zy50cG9Db3VudFRvdGFsLnRvU3RyaW5nKCkseS50cG9Db3VudEFib3ZlUG9jPWcudHBvQ291bnRBYm92ZVBvYy50b1N0cmluZygpLHkudHBvQ291bnRCZWxvd1BvYz1nLnRwb0NvdW50QmVsb3dQb2MudG9TdHJpbmcoKTtjb25zdCBBPUkudHBvUm93VGl0bGVzLm1hcCgoZT0+ZS5wcm9wTmFtZSkpLmZpbHRlcigoZT0+YVtlXS5jaGlsZHMoKS52aXNpYmxlLnZhbHVlKCkpKS5tYXAoKGU9Pih7dGV4dDp5W2VdfSkpKSx2PWkuaW5kZXhUb0Nvb3JkaW5hdGUoby5maXJzdEJhclRpbWUpLWgsQz1NYXRoLnJvdW5kKHYqZS5ob3Jpem9udGFsUGl4ZWxSYXRpbyksUj1pLmluZGV4VG9Db29yZGluYXRlKG8ubGFzdEJhclRpbWUpK2gsZj1NYXRoLnJvdW5kKFIqZS5ob3Jpem9udGFsUGl4ZWxSYXRpbyk7cC5wdXNoKHtsZWZ0OkMscmlnaHQ6Zixyb3dzOkF9KX0pKX1yZXR1cm4gcH19dmFyIE49cyg3NDU1NjkpO2NsYXNzIEYgZXh0ZW5kcyBOLlN1bW1hcnlXaWRnZXRTaWRlQXJlYVZpZXd7X2dldERhdGFTb3VyY2VGb3JTdW1tYXJ5KCl7CnJldHVybiB0aGlzLl9tb2RlbC5kYXRhU291cmNlRm9ySWQoQi50cG9TdW1tYXJ5RGF0YVNvdXJjZUlkKX1fdmlzaWJsZVRpdGxlcygpe2NvbnN0IGU9dGhpcy5fbW9kZWwubWFpblNlcmllcygpLnByb3BlcnRpZXMoKS5jaGlsZHMoKS50cG9TdHlsZS5jaGlsZHMoKS5zdW1tYXJ5LmNoaWxkcygpLmluZm9CbG9ja3MuY2hpbGRzKCk7cmV0dXJuIEkudHBvUm93VGl0bGVzLmZpbHRlcigodD0+ZVt0LnByb3BOYW1lXS5jaGlsZHMoKS52aXNpYmxlLnZhbHVlKCkpKS5tYXAoKGU9PmUudHJhbnNsYXRlZFN0cmluZy50cmFuc2xhdGVkVGV4dCgpKSl9fXZhciBELEw9cyg2MzQ4Nik7IWZ1bmN0aW9uKGUpe2VbZS5IaXN0c0NvdW50PTgwXT0iSGlzdHNDb3VudCIsZVtlLlRpY2tzUGVyUm93TWluVmFsdWU9MV09IlRpY2tzUGVyUm93TWluVmFsdWUiLGVbZS5UaWNrc1BlclJvd01heFZhbHVlPTFlNl09IlRpY2tzUGVyUm93TWF4VmFsdWUiLGVbZS5CYXJzRGVwdGhGb3JUaWNrcGVyUm93PTMwMF09IkJhcnNEZXB0aEZvclRpY2twZXJSb3ciLGVbZS5yZXRyeVRpY2tzUGVyUm93Q29lZmY9MS40XT0icmV0cnlUaWNrc1BlclJvd0NvZWZmIixlW2UubWF4VGlja3NQZXJSb3dSZXRyaWVzPTEwXT0ibWF4VGlja3NQZXJSb3dSZXRyaWVzIixlW2UubWF4VGlja3NJblByaWNlUmFuZ2U9MWUzXT0ibWF4VGlja3NJblByaWNlUmFuZ2UiLGVbZS50aWNrc1BlclJvd1JvdW5kRmFjdG9yPTVdPSJ0aWNrc1BlclJvd1JvdW5kRmFjdG9yIn0oRHx8KEQ9e30pKTtjb25zdCAkPVsiZXh0ZW5kUG9vckxvdyIsImV4dGVuZFBvb3JIaWdoIiwiZXh0ZW5kUE9DIiwiZXh0ZW5kVHBvVmFoIiwiZXh0ZW5kVHBvVmFsIiwiZXh0ZW5kU2luZ2xlcHJpbnRzIl0sRT1bLi4uJCwiZXh0ZW5kVm9sdW1lUG9jIiwiZXh0ZW5kVm9sdW1lVmFoIiwiZXh0ZW5kVm9sdW1lVmFsIl0sSD0oMCxsLmdldExvZ2dlcikoIkNoYXJ0LlRwb1N0dWR5QmFzZSIpO2NsYXNzIHogZXh0ZW5kcyB1LlVuZG9Db21tYW5ke2NvbnN0cnVjdG9yKGUsdCxpLHIpe3N1cGVyKG5ldyBkLlRyYW5zbGF0ZWRTdHJpbmcoIlRQTyBSZXNldCBhbGwgc3BsaXRzIGFuZCBtZXJnZXMiLGMudChudWxsLHZvaWQgMCxzKDQyOTczMykpKSksdGhpcy5fbW9kZWw9ZSx0aGlzLl9pZD10LHRoaXMuX3NwbGl0c0FuZE1lcmdlcz1pLHRoaXMuX2tleUZpbHRlcj1yfXJlZG8oKXtjb25zdCBlPXN0cnVjdHVyZWRDbG9uZSh0aGlzLl9zcGxpdHNBbmRNZXJnZXMpO09iamVjdC5rZXlzKGUpLmZpbHRlcih0aGlzLl9rZXlGaWx0ZXIpLmZvckVhY2goKHQ9PntkZWxldGUgZVt0XX0pKSx0aGlzLl9zdHVkeSgpLnNldFNwbGl0c0FuZE1lcmdlcyhlKX11bmRvKCl7dGhpcy5fc3R1ZHkoKS5zZXRTcGxpdHNBbmRNZXJnZXModGhpcy5fc3BsaXRzQW5kTWVyZ2VzKX1fc3R1ZHkoKXtyZXR1cm4oMCxvLmVuc3VyZU5vdE51bGwpKHRoaXMuX21vZGVsLmRhdGFTb3VyY2VGb3JJZCh0aGlzLl9pZCkpfX1mdW5jdGlvbiBLKGUsdCl7cmV0dXJuIHQ8ZX1jbGFzcyBVIGV4dGVuZHMgbS5TdHVkeXtjb25zdHJ1Y3RvcihlLHQscyxpLHIsbyxsLG49eil7RS5mb3JFYWNoKChlPT50LnJlbW92ZUV4Y2x1ZGVkS2V5KGBpbnB1dHMuJHtlfWAsMSkpKSxzdXBlcihlLHQscyxpLHIsbyksdGhpcy5fYXV0b1RpY2tQZXJSb3dEYXRhPW51bGwsdGhpcy5fc3BsaXRzQW5kTWVyZ2VzPXt9LHRoaXMuX2hpc3RvZ3JhbUlzVG9vTGFyZ2VDb3VudGVyPTAsdGhpcy5fbGFzdFJlc29sdmVkUHJvTmFtZT1udWxsLHRoaXMuX29uU2VyaWVzQ29tcGxldGVkQ2hhbmdlZD1lPT57ZSYmKHRoaXMuX3Nlcmllc0NvbXBsZXRlZC51bnN1YnNjcmliZSh0aGlzLl9vblNlcmllc0NvbXBsZXRlZENoYW5nZWQpLHRoaXMuX3RyeUNhbGN1bGF0ZVRpY2tQZXJSb3coKSl9LHRoaXMuX3N1bW1hcnlQYW5lVmlldz1uZXcgTyh0aGlzLGUpLHRoaXMuX3dpZGdldFNpZGVBcmVhVmlldz1uZXcgRihlKSx0aGlzLl9zZXJpZXNDb21wbGV0ZWQ9KDAsYS5jb21iaW5lKSgoZT0+Xy5zZXJpZXNSZWFkeVN0YXR1c2VzLmhhcyhlLnNlcmllc1N0YXR1cykpLGUubWFpblNlcmllcygpLmNvbXBvc2l0ZVN0YXR1c1ZXKCkud2Vha1JlZmVyZW5jZSgpKSx0aGlzLl9jaGFydFN0eWxlTW9kZT0hIWwsbCYmdGhpcy5fcHJvcGVydGllcy5zZXROYW1lSW5Pd25lcigiIiksdGhpcy5fcmVzZXRBbGxTcGxpdHNVbmRvQ29tbWFuZEN0b3I9bix0LmNoaWxkcygpLnN0eWxlcy5oYXNDaGlsZCgic3BsaXRCeUJsb2NrcyIpfHx0LmNoaWxkcygpLnN0eWxlcy5hZGRDaGlsZCgic3BsaXRCeUJsb2NrcyIsbmV3IGcuUHJvcGVydHkoITEpKSx0LmNoaWxkcygpLnN0eWxlcy5oYXNDaGlsZCgic3BsaXRCeUJsb2Nrc01vZGUiKXx8dC5jaGlsZHMoKS5zdHlsZXMuYWRkQ2hpbGQoInNwbGl0QnlCbG9ja3NNb2RlIixuZXcgZy5Qcm9wZXJ0eSgwKSksdC5zZXRUaGVtZWRDb2xvcnMoZnVuY3Rpb24oKXtpZighZil7Y29uc3QgZT0iZ3JhcGhpY3MudHBvTGV2ZWxzLnRwbyIsdD0iZ3JhcGhpY3MudHBvVm9sdW1lUm93cy50cG8iO2Y9W3twYXRoOmAke2V9LnRwb1BvYy5jb2xvcmAsY29sb3JzOlIucG9jfSx7cGF0aDpgJHtlfS50cG9Qb29ySGlnaC5jb2xvcmAsY29sb3JzOlIucG9vckhpZ2h9LHtwYXRoOmAke2V9LnRwb1Bvb3JMb3cuY29sb3JgLGNvbG9yczpSLnBvb3JMb3d9LHtwYXRoOmAke2V9LnRwb1NpbmdsZXByaW50cy5jb2xvcmAsY29sb3JzOlIuc2luZ2xlcHJpbnRzfSx7cGF0aDpgJHtlfS50cG9WYWguY29sb3JgLGNvbG9yczpSLnZhaH0se3BhdGg6YCR7ZX0udHBvVmFsLmNvbG9yYCxjb2xvcnM6Ui52YWx9LHtwYXRoOmAke2V9LnZvbHVtZVZhaC5jb2xvcmAsY29sb3JzOlIudnBWYWh9LHtwYXRoOmAke2V9LnZvbHVtZVZhbC5jb2xvcmAsY29sb3JzOlIudnBWYWx9LHtwYXRoOmAke2V9LnZvbHVtZVBvYy5jb2xvcmAsY29sb3JzOlIudnBQb2N9LHtwYXRoOmAke3R9LnZhbHVlc0NvbG9yYCxjb2xvcnM6Ui52YWx1ZXN9LHtwYXRoOmAke3R9LmNvbG9ycy5ub25WYWAsY29sb3JzOlIudm9sdW1lQ29sb3J9LHtwYXRoOmAke3R9LmNvbG9ycy52YWAsY29sb3JzOlIudmFsdWVBcmVhQ29sb3J9XX0KcmV0dXJuIGZ9KCkpO2NvbnN0IGM9ZS5tYWluU2VyaWVzKCksZD10aGlzLl9wcm9wZXJ0aWVzLmNoaWxkcygpLmlucHV0cy5jaGlsZHMoKTtjLnN5bWJvbFJlc29sdmVkKCkuc3Vic2NyaWJlKHRoaXMsdGhpcy5fYXBwbHlTcGxpdEFuZE1lcmdlcyksYy5wcm9wZXJ0aWVzKCkuY2hpbGRzKCkuc3ltYm9sLnN1YnNjcmliZSh0aGlzLHRoaXMuX2FwcGx5U3BsaXRBbmRNZXJnZXMpO2NvbnN0IHU9ZC5tZXJnZVBvaW50czt0aGlzLl91cGRhdGVTcGxpdHNBbmRNZXJnZXNBY3Rpb25zVmFsdWUodS52YWx1ZSgpKSx0aGlzLl9zcGxpdHNBbmRNZXJnZXNJbnB1dHNEZXBzKCkuZm9yRWFjaCgoZT0+e2RbZV0/LnN1YnNjcmliZSh0aGlzLHRoaXMuX2FwcGx5U3BsaXRBbmRNZXJnZXMpfSkpLHRoaXMuX2V4dGVuZGVkSW5wdXRzRW5hYmxlZD0oMCxwLmNyZWF0ZVdWRnJvbUdldHRlckFuZFN1YnNjcmlwdGlvbnMpKCgoKT0+dGhpcy5fYXJlVFBPUGxvdHNFeHRlbmRlZCgpKSwkLm1hcCgoZT0+ZFtlXSkpLmZpbHRlcihCb29sZWFuKSksdS5zdWJzY3JpYmUodGhpcywoKCk9Pntjb25zdCBlPXUudmFsdWUoKT8/IltdIjsiW10iPT09ZT90aGlzLl9yZW1vdmVTcGxpdHNBbmRNZXJnZXNBY3Rpb25zVmFsdWUoKTp0aGlzLl91cGRhdGVTcGxpdHNBbmRNZXJnZXNBY3Rpb25zVmFsdWUoZSl9KSk7Y29uc3QgaD0oKT0+e3RoaXMuX2F1dG9UaWNrUGVyUm93RGF0YT1udWxsLHRoaXMuX3RyeUNhbGN1bGF0ZVRpY2tQZXJSb3coKX0sbT0oKT0+e2NvbnN0IGU9dGhpcy5wcm9wZXJ0aWVzKCkuY2hpbGRzKCkuaW5wdXRzLmNoaWxkcygpOyJBdXRvIj09PWUucm93U2l6ZS52YWx1ZSgpJiZlLnRpY2tzUGVyUm93LnNldFZhbHVlKE5hTiksdGhpcy5fYXV0b1RpY2tQZXJSb3dEYXRhPW51bGwsdGhpcy5fc2VyaWVzQ29tcGxldGVkLnVuc3Vic2NyaWJlKHRoaXMuX29uU2VyaWVzQ29tcGxldGVkQ2hhbmdlZCksdGhpcy5fc2VyaWVzQ29tcGxldGVkLnN1YnNjcmliZSh0aGlzLl9vblNlcmllc0NvbXBsZXRlZENoYW5nZWQse29uY2U6ITB9KSx0aGlzLl9oaXN0b2dyYW1Jc1Rvb0xhcmdlQ291bnRlcj0wfTtkLnJvd1NpemUuc3Vic2NyaWJlKHRoaXMsaCksdGhpcy5wcm9wZXJ0aWVzKCkub25SZXN0b3JlRmFjdG9yeURlZmF1bHRzKCkuc3Vic2NyaWJlKHRoaXMsaCksYy5zeW1ib2xSZXNvbHZlZCgpLnN1YnNjcmliZSh0aGlzLCgoKT0+e2NvbnN0IGU9Yy5zeW1ib2xJbmZvKCk/LnByb19uYW1lPz9udWxsO3RoaXMuX2xhc3RSZXNvbHZlZFByb05hbWUhPT1lJiYodGhpcy5fbGFzdFJlc29sdmVkUHJvTmFtZT1lLG0oKSl9KSksYy5wcm9wZXJ0aWVzKCkuY2hpbGRzKCkuc3ltYm9sLnN1YnNjcmliZSh0aGlzLG0pLGMub25JbnRlcnZhbENoYW5nZWQoKS5zdWJzY3JpYmUodGhpcyxtKSx0aGlzLl90cnlDYWxjdWxhdGVUaWNrUGVyUm93KCksdGhpcy5fcHJvcGVydGllcy5hZGRFeGNsdWRlZEtleSgiaW5wdXRzLm1lcmdlUG9pbnRzIiwxKX1zdGF0ZUZvckFsZXJ0KCl7Y29uc3QgZT1zdXBlci5zdGF0ZUZvckFsZXJ0KCksdD0oMCxvLmVuc3VyZU5vdE51bGwpKHRoaXMuX2FsZXJ0TWV0YUluZm8oKSkscz10aGlzLl9jaGFydFN0eWxlTW9kZSYmbi5zdHVkeUlkc0hpZGVJbnB1dHNNb2RlLmhhcygoMCxMLmV4dHJhY3RTdHVkeUlkKSh0LmZ1bGxJZCkpO3JldHVybnsuLi5lLHRpdGxlOnRoaXMuX3RpdGxlKGguVGl0bGVEaXNwbGF5VGFyZ2V0LkFsZXJ0cywhMSx7fSxzLCExLCEwKSxzaG9ydFRpdGxlOnRoaXMuX3RpdGxlKGguVGl0bGVEaXNwbGF5VGFyZ2V0LkFsZXJ0cywhMCx7fSxzLCExLCEwKX19YWxlcnRDcmVhdGlvbkF2YWlsYWJsZSgpe3JldHVybiB0aGlzLl9hbGVydENyZWF0aW9uQXZhaWxhYmxlQ29tYmluZWR8fCh0aGlzLl9hbGVydENyZWF0aW9uQXZhaWxhYmxlQ29tYmluZWQ9KDAsYS5jb21iaW5lKSgoKGUsdCk9PnQmJmUpLHN1cGVyLmFsZXJ0Q3JlYXRpb25BdmFpbGFibGUoKS5zcGF3bk93bmVyc2hpcCgpLHRoaXMuX2V4dGVuZGVkSW5wdXRzRW5hYmxlZC5zcGF3bk93bmVyc2hpcCgpKSksdGhpcy5fYWxlcnRDcmVhdGlvbkF2YWlsYWJsZUNvbWJpbmVkfWRlc3Ryb3koKXtjb25zdCBlPXRoaXMuX21vZGVsLm1haW5TZXJpZXMoKTt0aGlzLl9zZXJpZXNDb21wbGV0ZWQudW5zdWJzY3JpYmUodGhpcy5fb25TZXJpZXNDb21wbGV0ZWRDaGFuZ2VkKSx0aGlzLl9zZXJpZXNDb21wbGV0ZWQuZGVzdHJveSgpLGUuc3ltYm9sUmVzb2x2ZWQoKS51bnN1YnNjcmliZUFsbCh0aGlzKSxlLnByb3BlcnRpZXMoKS5jaGlsZHMoKS5zeW1ib2wudW5zdWJzY3JpYmVBbGwodGhpcyksZS5vbkludGVydmFsQ2hhbmdlZCgpLnVuc3Vic2NyaWJlQWxsKHRoaXMpLHRoaXMuX3dpZGdldFNpZGVBcmVhVmlldy5kZXN0cm95KCksdGhpcy5fcHJvcGVydGllcy5kZXN0cm95KCksdGhpcy5fYWxlcnRDcmVhdGlvbkF2YWlsYWJsZUNvbWJpbmVkJiYodGhpcy5fYWxlcnRDcmVhdGlvbkF2YWlsYWJsZUNvbWJpbmVkLmRlc3Ryb3koKSx0aGlzLl9hbGVydENyZWF0aW9uQXZhaWxhYmxlQ29tYmluZWQ9dm9pZCAwKSx0aGlzLl9leHRlbmRlZElucHV0c0VuYWJsZWQuZGVzdHJveSgpLHN1cGVyLmRlc3Ryb3koKX11cGRhdGVBbGxWaWV3cyhlKXtzdXBlci51cGRhdGVBbGxWaWV3cyhlKSx0aGlzLl9zdW1tYXJ5UGFuZVZpZXcudXBkYXRlKCksdGhpcy5fd2lkZ2V0U2lkZUFyZWFWaWV3LnVwZGF0ZSgpfXByZWZlcnJlZFpPcmRlcigpe3JldHVybiAwfXN0YXRlQ3VzdG9tRmllbGRzKCl7cmV0dXJue2F1dG9UaWNrUGVyUm93RGF0YTp0aGlzLl9hdXRvVGlja1BlclJvd0RhdGE/P3ZvaWQgMCxzcGxpdHNBbmRNZXJnZXM6dGhpcy5fc3BsaXRzQW5kTWVyZ2VzfX1yZXN0b3JlU3RhdGVDdXN0b21GaWVsZHMoZSl7dGhpcy5fYXV0b1RpY2tQZXJSb3dEYXRhPWUuYXV0b1RpY2tQZXJSb3dEYXRhPz9udWxsLHRoaXMuX3NwbGl0c0FuZE1lcmdlcz1lLnNwbGl0c0FuZE1lcmdlcz8/e30sdGhpcy5fYXBwbHlTcGxpdEFuZE1lcmdlcygpfXJlc2V0QWxsU3BsaXRzQW5kTWVyZ2VzKCl7CmNvbnN0IGU9dGhpcy5fbW9kZWwudW5kb01vZGVsKCksdD1uZXcgdGhpcy5fcmVzZXRBbGxTcGxpdHNVbmRvQ29tbWFuZEN0b3IodGhpcy5fbW9kZWwsdGhpcy5pZCgpLHN0cnVjdHVyZWRDbG9uZSh0aGlzLl9zcGxpdHNBbmRNZXJnZXMpLHRoaXMuX3Jlc2V0U3BsaXRzQW5kTWVyZ2VzS2V5RmlsdGVyLmJpbmQodGhpcykpO2UudW5kb0hpc3RvcnkoKS5wdXNoVW5kb0NvbW1hbmQodCl9c2V0U3BsaXRzQW5kTWVyZ2VzKGUpe3RoaXMuX3NwbGl0c0FuZE1lcmdlcz1lLHRoaXMuX2FwcGx5U3BsaXRBbmRNZXJnZXMoKX1zcGxpdEJsb2NrKGUpe3RoaXMuX2FwcGVuZE1lcmdlU3BsaXRBY3Rpb24oZSwic3BsaXQiLG5ldyBkLlRyYW5zbGF0ZWRTdHJpbmcoIlRQTyBzcGxpdCBibG9jayIsYy50KG51bGwsdm9pZCAwLHMoNjE5NjA5KSkpKX1tZXJnZVByb2ZpbGUoZSl7dGhpcy5fYXBwZW5kTWVyZ2VTcGxpdEFjdGlvbihlLCJtZXJnZSIsbmV3IGQuVHJhbnNsYXRlZFN0cmluZygiVFBPIG1lcmdlIGJsb2NrIixjLnQobnVsbCx2b2lkIDAscyg4NzA0MDkpKSkpfWNhbGN1bGF0ZUluaXRpYWxCYWxhbmNlUHJpY2VSYW5nZShlLHQscyl7bGV0IGk9bnVsbDtjb25zdCByPXMubGV2ZWxzLnZhbHVlKCksbz1LLmJpbmQobnVsbCxyKTtmb3IoY29uc3QgcyBvZiBlKXtjb25zdCBlPXtzdGFydDpzLnJvd0luZGV4KnQsZW5kOihzLnJvd0luZGV4KzEpKnR9O3MuYmxvY2tzLnNvbWUobykmJihpPW51bGw9PT1pP2U6KDAsay5tZXJnZVRwb1ByaWNlUmFuZ2VzKShpLGUpKX1yZXR1cm4gaX1wYW5lVmlld3MoZSl7cmV0dXJuIHRoaXMuX2NoYXJ0U3R5bGVNb2RlP2UhPT10aGlzLl9tb2RlbC5tYWluUGFuZSgpP1t0aGlzLl9zdW1tYXJ5UGFuZVZpZXddOnRoaXMuX3BhbmVWaWV3czpzdXBlci5wYW5lVmlld3MoZSl9Y2hhcnRGbG9hdGluZ1Rvb2x0aXBWaWV3KCl7cmV0dXJuIG51bGx9Y2hhcnRGbG9hdGluZ1Rvb2x0aXBWYWx1ZXNQcm92aWRlcigpe3JldHVybiBudWxsfXdpZGdldFNpZGVBcmVhVmlld3MoZSl7Y29uc3QgdD10aGlzLl9tb2RlbC5tYWluU2VyaWVzKCkucHJpY2VTY2FsZSgpO2lmKCF0KXJldHVybiBudWxsO2NvbnN0IHM9dGhpcy5fbW9kZWwubWFpblBhbmUoKTtpZighcylyZXR1cm4gbnVsbDtjb25zdCBpPXMucHJpY2VTY2FsZVBvc2l0aW9uKHQpO3JldHVybiB0aGlzLl9jaGFydFN0eWxlTW9kZSYmZT09PWk/W3RoaXMuX3dpZGdldFNpZGVBcmVhVmlld106bnVsbH1wcmljZVNjYWxlKCl7cmV0dXJuIHRoaXMuX2NoYXJ0U3R5bGVNb2RlP3RoaXMuX21vZGVsLm1haW5TZXJpZXMoKS5wcmljZVNjYWxlKCk6c3VwZXIucHJpY2VTY2FsZSgpfWRhdGFVcGRhdGVkKCl7cmV0dXJuIHRoaXMuX2RhdGFVcGRhdGVkfV9yZXNldFNwbGl0c0FuZE1lcmdlc0tleUZpbHRlcihlKXtjb25zdCB0PXRoaXMuX21vZGVsLm1haW5TZXJpZXMoKSxzPXQucHJvU3ltYm9sKCksaT10aGlzLl9jaGFydFN0eWxlTW9kZXx8KDAsUy5pc1RpbWVCYXNlZFN0eWxlKSh0LnN0eWxlKCkpPyJjb21tb24iOnQuc3R5bGUoKSxyPWUuc3BsaXQoIjsiKTtyZXR1cm4gclswXT09PXMmJnJbMV09PT1pfV9zcGxpdHNBbmRNZXJnZXNBY3Rpb25zVmFsdWUoKXtyZXR1cm4gdGhpcy5fc3BsaXRzQW5kTWVyZ2VzW3RoaXMuX3NwbGl0c0FuZE1lcmdlc0FjdGlvbnNLZXkoMildPz90aGlzLl9zcGxpdHNBbmRNZXJnZXNbdGhpcy5fc3BsaXRzQW5kTWVyZ2VzQWN0aW9uc0tleSgxKV0/P251bGx9X3VwZGF0ZVNwbGl0c0FuZE1lcmdlc0FjdGlvbnNWYWx1ZShlKXt0aGlzLl9zcGxpdHNBbmRNZXJnZXNbdGhpcy5fc3BsaXRzQW5kTWVyZ2VzQWN0aW9uc0tleSgyKV09ZSx0aGlzLl9yZW1vdmVTcGxpdHNBbmRNZXJnZXNBY3Rpb25zVmFsdWUoMSl9X3JlbW92ZVNwbGl0c0FuZE1lcmdlc0FjdGlvbnNWYWx1ZShlPTIpe2RlbGV0ZSB0aGlzLl9zcGxpdHNBbmRNZXJnZXNbdGhpcy5fc3BsaXRzQW5kTWVyZ2VzQWN0aW9uc0tleShlKV0sMj09PWUmJnRoaXMuX3JlbW92ZVNwbGl0c0FuZE1lcmdlc0FjdGlvbnNWYWx1ZSgxKX1fYXBpSW5wdXRzKCl7Y29uc3R7cm93U2l6ZTplLC4uLnR9PXN1cGVyLl9hcGlJbnB1dHMoKTtyZXR1cm4gdH1fYWxsSW5wdXRzQXJlVmFsaWQoKXtjb25zdCBlPXRoaXMucHJvcGVydGllcygpLmNoaWxkcygpLmlucHV0cy5jaGlsZHMoKS50aWNrc1BlclJvdy52YWx1ZSgpO3JldHVybiFpc05hTihlKSYmc3VwZXIuX2FsbElucHV0c0FyZVZhbGlkKCl9X2F1dG9Sb3dTaXplTW9kZUVuYWJsZWQoKXtyZXR1cm4iQXV0byI9PT10aGlzLnByb3BlcnRpZXMoKS5jaGlsZHMoKS5pbnB1dHMuY2hpbGRzKCkucm93U2l6ZS52YWx1ZSgpfV90cnlDYWxjdWxhdGVUaWNrUGVyUm93KCl7aWYodGhpcy5fYXV0b1Jvd1NpemVNb2RlRW5hYmxlZCgpJiYoZT10aGlzLl9hdXRvVGlja1BlclJvd0RhdGEsdD10aGlzLl9jdXJyZW50QXV0b1RpY2tQZXJSb3dEYXRhKCksbnVsbD09PWV8fGUuc3ltYm9sIT09dC5zeW1ib2x8fGUuaW50ZXJ2YWwhPT10LmludGVydmFsKSl7dGhpcy5fY2FsY3VsYXRlVGlja1BlclJvdygpP3RoaXMuX2F1dG9UaWNrUGVyUm93RGF0YT10aGlzLl9jdXJyZW50QXV0b1RpY2tQZXJSb3dEYXRhKCk6KHRoaXMuX3Nlcmllc0NvbXBsZXRlZC51bnN1YnNjcmliZSh0aGlzLl9vblNlcmllc0NvbXBsZXRlZENoYW5nZWQpLHRoaXMuX3Nlcmllc0NvbXBsZXRlZC5zdWJzY3JpYmUodGhpcy5fb25TZXJpZXNDb21wbGV0ZWRDaGFuZ2VkLHtvbmNlOiEwfSkpfXZhciBlLHR9X2NhbGN1bGF0ZVRpY2tQZXJSb3coKXtjb25zdCBlPXRoaXMuX21vZGVsLm1haW5TZXJpZXMoKSx0PWUuc3ltYm9sSW5mbygpLHM9ZS5kYXRhKCkuYmFycygpO2lmKCFzLnNpemUoKXx8IXQpcmV0dXJuITE7Y29uc3QgaT10aGlzLl9tb2RlbC50aW1lU2NhbGUoKS52aXNpYmxlQmFyc1N0cmljdFJhbmdlKCk7aWYobnVsbD09PWkpcmV0dXJuITE7Y29uc3Qgcj1zLnJhbmdlQ291bnRiYWNrKGkubGFzdEJhcigpLDMwMCksYT1yLm1pbk1heE9uUmFuZ2VDYWNoZWQoKDAsby5lbnN1cmVOb3ROdWxsKShyLmZpcnN0SW5kZXgoKSksKDAsby5lbnN1cmVOb3ROdWxsKShyLmxhc3RJbmRleCgpKSxbewpuYW1lOiJsb3ciLG9mZnNldDowfSx7bmFtZToiaGlnaCIsb2Zmc2V0OjB9XSk7aWYobnVsbD09PWEpcmV0dXJuITE7Y29uc3QgbD10Lm1pbm1vdi90LnByaWNlc2NhbGUsbj0oYS5tYXgtYS5taW4pL2wsYz1NYXRoLm1heChuLzgwLG4vMWUzKSxkPU1hdGgucG93KDEuNCx0aGlzLl9oaXN0b2dyYW1Jc1Rvb0xhcmdlQ291bnRlcikqYys1KnRoaXMuX2hpc3RvZ3JhbUlzVG9vTGFyZ2VDb3VudGVyLHU9TWF0aC5mbG9vcihNYXRoLmxvZzEwKGMpKSxwPTUqTWF0aC5tYXgoMSxNYXRoLnBvdygxMCx1LTEpKSxoPU1hdGgucm91bmQoZC9wKSpwLG09TWF0aC5taW4oMWU2LE1hdGgubWF4KDEsaCkpO3JldHVybiB0aGlzLnByb3BlcnRpZXMoKS5jaGlsZHMoKS5pbnB1dHMuY2hpbGRzKCkudGlja3NQZXJSb3cuc2V0VmFsdWUobSksSC5sb2dJbmZvKGBBdXRvY2FsY3VsYXRlIFRpY2tzUGVyUm93LlxuXHRcdFx0c3ltYm9sOiAke3RoaXMuX3Nlcmllcy5zeW1ib2woKX1cblx0XHRcdGludGVydmFsOiAke3RoaXMuX3Nlcmllcy5pbnRlcnZhbCgpfVxuXHRcdFx0bWluVGljazogJHtsfVxuXHRcdFx0aGlnaDogJHthLm1heH1cblx0XHRcdGxvdzogJHthLm1pbn1cblx0XHRcdGhpc3RvZ3JhbUlzVG9vTGFyZ2VDb3VudGVyOiAke3RoaXMuX2hpc3RvZ3JhbUlzVG9vTGFyZ2VDb3VudGVyfVxuXHRcdFx0cmVzdWx0OiAke219YCksITB9X2N1cnJlbnRBdXRvVGlja1BlclJvd0RhdGEoKXtjb25zdCBlPXRoaXMuX21vZGVsLm1haW5TZXJpZXMoKTtyZXR1cm57c3ltYm9sOmUuZ2V0U3ltYm9sU3RyaW5nKCksaW50ZXJ2YWw6ZS5pbnRlcnZhbCgpfX1fb25TdHVkeUVycm9yKGUpe2NvbnN0IHQ9KDAsci5kZWZhdWx0KShlKT9lOmUuZXJyb3I7aWYodGhpcy5fYXV0b1Jvd1NpemVNb2RlRW5hYmxlZCgpJiZ0LnN0YXJ0c1dpdGgoIkhpc3RvZ3JhbSBpcyB0b28gbGFyZ2UiKSl7aWYoKyt0aGlzLl9oaXN0b2dyYW1Jc1Rvb0xhcmdlQ291bnRlcjwxMClyZXR1cm4gSC5sb2dJbmZvKCJSZWNhbGN1bGF0ZSB0aWNrc1BlclJvdyB3aXRoIG11bHRpcGxpY2F0b3IiKSx2b2lkIHRoaXMuX2NhbGN1bGF0ZVRpY2tQZXJSb3coKTtILmxvZ1dhcm4oIlJlY2FsY3VsYXRpbmcgdGlja3NQZXJSb3cgbGltaXQgaGFzIGJlZW4gZXhjZWVkZWQiKX1zdXBlci5fb25TdHVkeUVycm9yKGUpfV9vblN0dWR5Q29tcGxldGVkKGUpe0gubG9nSW5mbygiUmVzZXQgaGlzdG9ncmFtSXNUb29MYXJnZUNvdW50ZXIgYmVjYXVzZSBvZiBjb21wbGV0ZSBtZXNzYWdlIiksdGhpcy5faGlzdG9ncmFtSXNUb29MYXJnZUNvdW50ZXI9MCxzdXBlci5fb25TdHVkeUNvbXBsZXRlZChlKX1fYXBwZW5kTWVyZ2VTcGxpdEFjdGlvbihlLHQscyl7Y29uc3QgaT10aGlzLl9wcm9wZXJ0aWVzLmNoaWxkcygpLmlucHV0cy5jaGlsZHMoKS5tZXJnZVBvaW50cy52YWx1ZSgpLHI9IiI9PT1pfHxudWxsPT09aT9bXTpKU09OLnBhcnNlKGkpO3IucHVzaCh7YWN0aW9uOnQsdGltZTplfSksdGhpcy5fbW9kZWwudW5kb01vZGVsKCkuc2V0UHJvcGVydHkodGhpcy5fcHJvcGVydGllcy5jaGlsZHMoKS5pbnB1dHMuY2hpbGRzKCkubWVyZ2VQb2ludHMsSlNPTi5zdHJpbmdpZnkocikscyl9X2FwcGx5U3BsaXRBbmRNZXJnZXMoKXtjb25zdCBlPXRoaXMuX3NwbGl0c0FuZE1lcmdlc0FjdGlvbnNWYWx1ZSgpPz8iW10iO3RoaXMuX3Byb3BlcnRpZXMuY2hpbGRzKCkuaW5wdXRzLmNoaWxkcygpLm1lcmdlUG9pbnRzLnNldFZhbHVlKGUpfV9hcmVUUE9QbG90c0V4dGVuZGVkKCl7Y29uc3QgZT10aGlzLl9hcGlJbnB1dHMoKTtyZXR1cm4gJC5zb21lKCh0PT5lW3RdKSl9fX0sODc0NjAoZSx0LHMpe3MuZCh0LHt0cG9Sb3dUaXRsZXM6KCk9Pnd9KTt2YXIgaT1zKDc4MzI1NCkscj1zKDU3MDYwMyk7Y29uc3Qgbz1pLnQobnVsbCx7Y29udGV4dDoiVFBPIFN1bW1hcnkgcm93IHRpdGxlLCBoaWdoLWxvdyByYW5nZSJ9LHMoOTMxNDg4KSksYT1pLnQobnVsbCx7Y29udGV4dDoiVFBPIFN1bW1hcnkgcm93IHRpdGxlLCB2YWx1ZSBhcmVhIHJhbmdlIn0scyg1MDUwMTApKSxsPWkudChudWxsLHtjb250ZXh0OiJUUE8gU3VtbWFyeSByb3cgdGl0bGUsIGFiYnIgVm9sdW1lIGFyZWEgaGlnaCJ9LHMoODY5MjgzKSksbj1pLnQobnVsbCx7Y29udGV4dDoiVFBPIFN1bW1hcnkgcm93IHRpdGxlLCBhYmJyIFZvbHVtZSBhcmVhIGxvdyJ9LHMoOTI4NjY1KSksYz1pLnQobnVsbCx7Y29udGV4dDoiVFBPIFN1bW1hcnkgcm93IHRpdGxlLCBhYmJyIFBvaW50IG9mIGNvbnRyb2wifSxzKDk0OTYxNykpLGQ9aS50KG51bGwse2NvbnRleHQ6IlRQTyBTdW1tYXJ5IHJvdyB0aXRsZSJ9LHMoNzI5MjAzKSksdT1pLnQobnVsbCx7Y29udGV4dDoiVFBPIFN1bW1hcnkgcm93IHRpdGxlIn0scyg4NTYwMjgpKSxwPWkudChudWxsLHtjb250ZXh0OiJUUE8gU3VtbWFyeSByb3cgdGl0bGUifSxzKDI2ODg5MSkpLGg9aS50KG51bGwse2NvbnRleHQ6IlRQTyBTdW1tYXJ5IHJvdyB0aXRsZSJ9LHMoMTEyNzQ4KSksbT1pLnQobnVsbCx7Y29udGV4dDoiVFBPIFN1bW1hcnkgcm93IHRpdGxlIn0scyg0Mjg3MjMpKSxnPWkudChudWxsLHtjb250ZXh0OiJUUE8gU3VtbWFyeSByb3cgdGl0bGUsIGFiYnIgSW5pdGlhbCBCYWxhbmNlIEhpZ2gifSxzKDI3NjEzNykpLF89aS50KG51bGwse2NvbnRleHQ6IlRQTyBTdW1tYXJ5IHJvdyB0aXRsZSwgYWJiciBJbml0aWFsIEJhbGFuY2UgTG93In0scygxNDgzMzUpKSxTPWkudChudWxsLHtjb250ZXh0OiJUUE8gU3VtbWFyeSByb3cgdGl0bGUsIGFiYnIgSW5pdGlhbCBCYWxhbmNlIFJhbmdlIn0scyg1MTQ3NjIpKSx3PVt7dHJhbnNsYXRlZFN0cmluZzpuZXcgci5UcmFuc2xhdGVkU3RyaW5nKCJITCBSYW5nZSIsbykscHJvcE5hbWU6ImhsUmFuZ2UifSx7dHJhbnNsYXRlZFN0cmluZzpuZXcgci5UcmFuc2xhdGVkU3RyaW5nKCJWQSByYW5nZSIsYSkscHJvcE5hbWU6InZhUmFuZ2UifSx7dHJhbnNsYXRlZFN0cmluZzpuZXcgci5UcmFuc2xhdGVkU3RyaW5nKCJWQUgiLGwpLHByb3BOYW1lOiJ2YWhQcmljZSJ9LHt0cmFuc2xhdGVkU3RyaW5nOm5ldyByLlRyYW5zbGF0ZWRTdHJpbmcoIlZBTCIsbiksCnByb3BOYW1lOiJ2YWxQcmljZSJ9LHt0cmFuc2xhdGVkU3RyaW5nOm5ldyByLlRyYW5zbGF0ZWRTdHJpbmcoIlBPQyIsYykscHJvcE5hbWU6InBvY1ByaWNlIn0se3RyYW5zbGF0ZWRTdHJpbmc6bmV3IHIuVHJhbnNsYXRlZFN0cmluZygiVG90YWwgdm9sdW1lIixkKSxwcm9wTmFtZToidG90YWxWb2x1bWUifSx7dHJhbnNsYXRlZFN0cmluZzpuZXcgci5UcmFuc2xhdGVkU3RyaW5nKCJUb3RhbCBUUE8iLHUpLHByb3BOYW1lOiJ0cG9Db3VudFRvdGFsIn0se3RyYW5zbGF0ZWRTdHJpbmc6bmV3IHIuVHJhbnNsYXRlZFN0cmluZygiVFBPIEFib3ZlIFBPQyIscCkscHJvcE5hbWU6InRwb0NvdW50QWJvdmVQb2MifSx7dHJhbnNsYXRlZFN0cmluZzpuZXcgci5UcmFuc2xhdGVkU3RyaW5nKCJUUE8gQmVsb3cgUE9DIixoKSxwcm9wTmFtZToidHBvQ291bnRCZWxvd1BvYyJ9LHt0cmFuc2xhdGVkU3RyaW5nOm5ldyByLlRyYW5zbGF0ZWRTdHJpbmcoIlJvdGF0aW9uIGZhY3RvciIsbSkscHJvcE5hbWU6InJvdGF0aW9uRmFjdG9yIn0se3RyYW5zbGF0ZWRTdHJpbmc6bmV3IHIuVHJhbnNsYXRlZFN0cmluZygiSUIgaGlnaCIsZykscHJvcE5hbWU6ImluaXRpYWxCYWxhbmNlSGlnaCJ9LHt0cmFuc2xhdGVkU3RyaW5nOm5ldyByLlRyYW5zbGF0ZWRTdHJpbmcoIklCIGxvdyIsXykscHJvcE5hbWU6ImluaXRpYWxCYWxhbmNlTG93In0se3RyYW5zbGF0ZWRTdHJpbmc6bmV3IHIuVHJhbnNsYXRlZFN0cmluZygiSUIgcmFuZ2UiLFMpLHByb3BOYW1lOiJpbml0aWFsQmFsYW5jZVJhbmdlIn1dfX1dKTs="}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"digital-assettrade.com/assets/images/logoIcon/logo.png","fqdn":"digital-assettrade.com","domain":"digital-assettrade.com","tld":"com"},"ip":{"addr":"5.182.208.207","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://digital-assettrade.com/","date":"2026-07-27T10:27:13.433Z","timestamp":1785148033433,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"digital-assettrade.com","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Sat, 20 Jun 2026 16:59:16 GMT","end":"Fri, 18 Sep 2026 16:59:15 GMT"},"fingerprint":{"sha1":"01:E1:B4:F9:5D:C1:12:F0:96:4A:57:43:D3:BB:2D:2B:F2:BE:B0:FC","sha256":"A8:D5:A6:4E:32:4D:7C:DD:DA:A5:73:54:3A:4A:4B:A5:0E:50:6F:09:0E:F5:B9:74:AC:9A:03:38:4D:A3:42:85"}}},"request":{"raw":"GET /assets/images/logoIcon/logo.png HTTP/1.1\r\nHost: digital-assettrade.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://digital-assettrade.com/\r\nCookie: XSRF-TOKEN=eyJpdiI6IlBJZ3lRZTB2d214bVhnZk5JbmtvaWc9PSIsInZhbHVlIjoiOWllUUw0S1NpMERaV0d2c2FYTDF0YndkRm5iSHg5RGJOMTVmNEltV2lONmQ5RlhjdjhvR0syQVZyZGdYanU1OEMwUkhQVVdndjRJelQzdWxmQldFejlZc2c4K1RKbktYZ2NySWpkQkdLTEV3czBrQyt5RE9TTHRSQk5BYkRvZEMiLCJtYWMiOiJkZDhhNjRlM2IzMGU1NTc4NDFkOGUyNGM0M2IyYTFkYjk3MDUxYTIwOGM5OTUwNDM2MmNhNjYzNjUwMTliN2EyIiwidGFnIjoiIn0%3D; digitalassettrade_session=eyJpdiI6InppdHd5OXFTcGhzM0xrUzhKN0NmQ2c9PSIsInZhbHVlIjoiNytzaTJ2ekZZSE9MTU9oYTdHZWwxeWl5YUl6ZDJSZ2UxSDhBZ0FCUmoxbFlrYU5kNXpTZnRqMTNTNERMaEpGM0srWk1KZ2YrcFNUalloQVkrTGEvSXBCVFU2blExUlgyTDFhckFkdlg0bHNjSVYrQWltRENjeDJ5QWNnQUk3RGciLCJtYWMiOiJhZDEzNWUwOGYyMzcwOGNkYjRlMGY4NmJhMDBlY2Y5OTdjYmUyMjRkNWY1N2NmODMwNWE1MDUxNjg1ZDMxOWE2IiwidGFnIjoiIn0%3D\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/3 200 \r\ncache-control: public, max-age=604800\r\nexpires: Mon, 03 Aug 2026 10:27:13 GMT\r\ncontent-type: image/png\r\nlast-modified: Tue, 21 Apr 2026 01:31:54 GMT\r\naccept-ranges: bytes\r\ncontent-length: 32263\r\ndate: Mon, 27 Jul 2026 10:27:13 GMT\r\nserver: LiteSpeed\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"LiteSpeed","description":"LiteSpeed is a high-scalability web server.","website":"https://litespeedtech.com","common_platform_enumeration":"cpe:2.3:a:litespeedtech:litespeed_web_server:*:*:*:*:*:*:*:*","icon":"LiteSpeed.svg","categories":["Web servers"]}],"data":{"size":32263,"size_decoded":32529,"mime_type":"image/png","magic":"PNG image data, 1318 x 369, 8-bit/color RGBA, non-interlaced","md5":"f458e999314410db42a0f19e6afc3c4b","sha1":"c0c2f2120cf89ada36291b7a01885e642ece7bc2","sha256":"f138ab483fab3df90d583cbc64ec0924b54fde52f2f485b05d3a05edf8b681a0","sha512":"31b0730d4dabff877e360a9455f0f8aff684a1c685193ef8a90be84d46428ada1ab9a7d30ae040c9c1ea8bcd8c66fb6823d1e390dac7d1640a064f49fc811c03","ssdeep":"768:l8hxx2ZiUVhoFK6B5c9QiL6SkAwM0uKIqXXTO:l8Hx2ZiriLYAwcKImO","tlshash":"62e2e088fba22788d4d5043eaed56ff837fc6569c1422763775788a46acf3ddc820a10","first_seen":"2026-07-27T07:37:36.925555Z","last_seen":"2026-07-27T10:28:13.723555Z","times_seen":3,"resource_available":false,"data":"iVBORw0KGgoAAAANSUhEUgAABSYAAAFxCAYAAABulnYXAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAgAElEQVR4nOzdeZxU9Z3v//dZamuaommgaZpVRERAJIiIBBEJwTVq1CRqzDLZzPJLHCeTmZuZn5NHbn6Z3Mzc3MRkMvklxiRmcZJxX6LGfcENURERERHZaRpomkPTp7qW871/nEKJYNPdVNWp7n49H/YDbKq/59Onqvt8z7u+i2WMEQAAAAAAAABUkh11AQAAAAAAAAAGHoJJAAAAAAAAABVHMAkAAAAAAACg4ggmAQAAAAAAAFQcwSQAAAAAAACAiiOYBAAAAAAAAFBxBJMAAAAAAAAAKo5gEgAAAAAAAEDFEUwCAAAAAAAAqDiCSQAAAAAAAAAVRzAJAAAAAAAAoOIIJgEAAAAAAABUHMEkAAAAAAAAgIojmAQAAAAAAABQcQSTAAAAAAAAACqOYBIAAAAAAABAxRFMAgAAAAAAAKg4gkkAAAAAAAAAFUcwCQAAAAAAAKDiCCYBAAAAAAAAVBzBJAAAAAAAAICKI5gEAAAAAAAAUHEEkwAAAAAAAAAqjmASAAAAAAAAQMURTAIAAAAAAACoOIJJAAAAAAAAABVHMAkAAAAAAACg4ggmAQAAAAAAAFQcwSQAAAAAAACAiiOYBAAAAAAAAFBxBJMAAAAAAAAAKo5gEgAAAAAAAEDFEUwCAAAAAAAAqDiCSQAAAAAAAAAVRzAJAAAAAAAAoOIIJgEAAAAAAABUHMEkAAAAAAAAgIojmAQAAAAAAABQcQSTAAAAAAAAACqOYBIAAAAAAABAxRFMAgAAAAAAAKg4gkkAAAAAAAAAFUcwCQAAAAAAAKDiCCYBAAAAAAAAVBzBJAAAAAAAAICKI5gEAAAAAAAAUHEEkwAAAAAAAAAqjmASAAAAAAAAQMURTAIAAAAAAACoOIJJAAAAAAAAABVHMAkAAAAAAACg4ggmAQAAAAAAAFQcwSQAAAAAAACAiiOYBAAAAAAAAFBxBJMAAAAAAAAAKo5gEgAAAAAAAEDFEUwCAAAAAAAAqDiCSQAAAAAAAAAVRzAJAAAAAAAAoOIIJgEAAAAAAABUHMEkAAAAAAAAgIojmAQAAAAAAABQcQSTAAAAAAAAACqOYBIAAAAAAABAxRFMAgAAAAAAAKg4gkkAAAAAAAAAFUcwCQAAAAAAAKDiCCYBAAAAAAAAVBzBJAAAAAAAAICKI5gEAAAAAAAAUHEEkwAAAAAAAAAqjmASAAAAAAAAQMURTAIAAAAAAACoOIJJAAAAAAAAABVHMAkAAAAAAACg4ggmAQAAAAAAAFQcwSQAAAAAAACAiiOYBAAAAAAAAFBxBJMAAAAAAAAAKo5gEgAAAAAAAEDFEUwCAAAAAAAAqDiCSQAAAAAAAAAVRzAJAAAAAAAAoOIIJgEAAAAAAABUHMEkAAAAAAAAgIojmAQAAAAAAABQcQSTAAAAAAAAACqOYBIAAAAAAABAxRFMAgAAAAAAAKg4gskBJjDb5+Z33zY56joAAAAAAAAwsFnGmKhrQJnt2/tEPLn1lqlWTtMzGvwVy8qtSzjez63GyVucYX+3Ier6AAAAAAAAMPAQTPZj+x84bZwZunBi3o5/yLxx08VWx4ZxKuRtWa4Uq/U0/KTV8SmfusHN7r0tfsLftkZdLwAAAAAAAAYOgsl+qP3Bn8TtqfULgxU/vTq/7YX5Rtm0FZOsmCRLkgk/TEaSlcq4Q054xJl27sPWkFOeSDZdsDza6gEAAAAAADAQEEz2J/t+Wpt97vb5fov5RBBrXWh3vtEks19yiv/+7qfakhRIJi8p2ZSxYsdvcO2aG5NTxt7iTLlgi7GmZC0dE1T2mwAAAAAAAMBAQDDZD3SuvaE+O37SZbknf/RhZ/ujU6W9TSaQLEdh+NgdBckEkhVzs0Fs8ipNv/L2mqZTf5SoW9ReztoBAAAAAAAwMBFM9lXmtdpCfve4zif+5dzc1lWfNW5+ogp745YVdD+MfK+mjSQl87LHrI6PnnBrbPYVj5j2wSvjIy/1SlE6AAAAAAAAQDDZx2Tbf2c77XvqC/sS3+x44/5zg51Pj3OclhpJRx1IHiKQgkJNYFLHtsQaZ98Tj02529Rmnk3O+JeWEh8JAAAAAAAAAwzBZB+RufEcV2d9ekmhY+upeu2OufnmFxbJ7XDlVqiAnGTyjuymRfcnTv3a7bG47rEHn7+tQkcHAAAAAABAP0Mw2QfkNv5weueDP/5srqbzCmNiDba/SVYqgkIsKeiQ7BHz2uOp2nti4465XsdeuMaNnUNACQAAAAAAgB4hmKxi2bd+19i5/YUvBLtevETeszNkcuF0bVuH7rBdKZakvCRjy6k7fkNQM31NcvSpN8QnTr5NyQ+xgzcAAAAAAAC6hWCyyniPfdkNZn9yrv3aby/UW0/NL3Ssmi0TuHY86soOZXLhTt52vK7VqZu+LJh20YPOsDPvGJSetT7q2gAAAAAAAFDdCCarRM572i68+C+f6dz06uWF2JgpVufrTba9T3KirqwbjGQKkrFH5e34uLVWZv3y5ILPXhc/5nsvRl0aAAAAAAAAqhPBZMRyj18Zz8XHzijEB10SvHb9lSpsHiPHlH6H7Uo48FIq1GRVd9Ly2PFX/C5eO+J+d8zHNkRZFgAAAAAAAKoPwWREOoMXmsy6B+eY1+8+I7Nj2Scl1VvJvKy+GEgehslLJheTO+x998ePnfsXq2nOCjvW8LQ75IPZqGsDAAAAAABA9AgmK23ff9Tuf/CmuZ0jpnzJbH74bKdzW40Vy0e7oU25WJKyUhCkpFGnr3cs+8ZEct9NiYVL10VdGgAAAAAAAKJFMFkhpmNVo7992WeCzX8+2TQ/uzBo31avpPpnIHk4OUmBJXvI8cvtMeesdI+98O7E8DPuiLosAAAAAAAARINgsswyemRC8NpdCwqvPf/5QmbdXNO507VdEwaSA5DJSUZx2bUzdrmDR/3KmXzan+2mU9fGE4uao64NAAAAAAAAlUMwWQbZTf/fhI77rr1B6frGwuCFu6z252c6/ua0XA3YQPIQBcmYeGBSJzRbqcZV2v1AZtDUT3zJmXH+Ljv5EdahBAAAAAAA6OfcqAvoV7w/2zmNmJXbs+/DViwxV4XWGnfPbeFai/Goi6syjmSZrG1lX25S9uUmaXA227rherdl591m3x8eSE77+PqoSwQAAAAAAED5MGKyBNr1Yjq25bbhZuOmJf72DV8v7F09KZbYHQaS6DZTkHK5UUo2nvxAbNTx3y6Mn7160LDL2qKuCwAAAAAAAKVHMHkUcs9e1JgzJ1yUH1J/ZrD+lulqWTbVikmWI3Fae8eyJNMpKTnGc6Z+9oH8upufrEklbomf++K2qGsDAAAAAABA6RBM9kKQX+dmd704r/DSddfkt664wASdttyCrETUlfUTlqS8ZDKSbEtu/bT7YzM//jMz/IyHkunTOqIuDwAAAAAAAEePYLIHCp1/qC2sfWpSriV7VXbPqxepfXmj7ebDIM2SxKksreI5NQVbxhrd6oycf0d81HE/t1LJDR2J8R21DRMyscS8fNRlAgAAAAAAoOcIJrsht+Zf4/mxH5yceeln37S3PjbX+G9NlCTLFetIVogpSDKSFRu7zQw6doOZcNbammNO/bO17c5741N+xChKAAAAAACAPoZgsgtB9pEx2vHUjMyqBz+S3f3m2dKORksFwsgoBZIsS0ZJyR7Tkjh2+i8TUz5wuzV47lrLPtmLujwAAAAAAAB0D8Hku3QUHnC17PfpwG6c1dm+/Rva/OAC12pJyuU8VZ1AKuTiKsTGtsYmXXxT7aT3X1/wN22wxp3UHteCIOryAAAAAAAA8N4IJg/SvuWGhUHW/6C17s8zg61PLpS1v0axqKtCl6xwAGvgS5ZT3+KMX/SIc/xFL2n72sdSJ397WdTlAQAAAAAA4PAGfDBZyK+2rd3Pj8mtuul8v3ndNUHBn2Rlt8tOiinbfYklqSAFnZKVmpi1OndtShyz5Nr4wo8/ZFsX7Yq6PAAAAAAAAPy1AR1MmtZlNe3r7v9yftszH3H2PTvVBG21OrChzcA9LX2bpXAdSiMZu6EtGDb/2cTEc38+aPJn74i6NAAAAAAAALxjwAWTHU99M25O+uB888ZtH9Rby+fn2lfOVsFP2q4kRwSS/YgpSEFeshINu9wh05Y5J539pHGn3z9o1Lkroq4NAAAAAABgoBswwaQxD9vZF//34szLy74eJBpmq7ClzlK7bdliynZ/F0gmkIzbmLdMusXKbF5ee/ql37Unf2qFZX0gG3V5AAAAAAAAA1G/DyYLLb+18+6YqZk37/qsWXv7RVZuywS5xQ2bCSQHFqPwOc/FAis1fr018bJlds2kP9gttz+ROvOO9qjLAwAAAAAAGEj6bTCZNS+OC7Y9NtfasmZa57qHLi74b023E5LsqCtDVTBS0OnIdoa1uiOn3mvPuPK/zOubnq1Z9O3WqEsDAAAAAAAYCPpfMNl5UzK3fvvizj1vfja//bEFanut3oqL9SNxqOImRyaIS6lJLZZn7h00ZeF33Hn/uT7q0gAAAAAAAPq7fhNMBnpjeMeWFz6nt+45Odhw98Ig4w23kmKEJLqnIJnAkj1k+ov2xPPujB338V8laqZvibosAAAAAACA/qpPB5OZ9T+2Nf6Eidar98zPbVl7ec57bbE6Ntp2TASS6JUgJxmnRm56xnIrXnu7c+rFS409evWgugt2RV0bAAAAAABAf9Jng8lg2UfH7PeCC/L+/s/be5ZNVqG1Ro7CKdvA0TAKd/JWMggGzdxkOTVrnX1Pra495ePX2lNuYJMcAAAAAACAEuhbwaR3n521hs7Nb7p/YWHVb84LMlvnys7bssQO2yg9o3d28s7XtdoN0x6wpl/1YGLEtCdiqVnrIq4OAAAAAACgT+sTwWS2sDRpNj810WzfuCTT/MZVhd0rpjjx3bKc6q+9qhjJFCTZksVU954xUiHjKueMV3zMrHsHDWm4oTD8xOWpiVdtiro0AAAAAACAvqjqg8nONd+fnrN0eWHdnReYHc9Mt2Jih+2eMpLJSla8LuvEB7eazvZ0kNtTI1dMfe8JS7KMFGQly6rJW2POetodd9YNNUOH3KURl7VFXR4AAAAAAEBfUpXBZCZY52bWP7wkvvW+D+W3vbSw4G2aYsUkKxF1ZX2MpXC3aQ2TNezk1fGG036XcLatMe7who695sLcxlvPtnMbbcvNhpsFVd9LoXoZKchIMnY2PvYD91gT5j5uH3PhI8nEyauiLg0AAAAAAKAvqLpgMrf2R5P8TS9cm9/9wvnW/tfqbVeSW/zH6iq1elnhCEmTjStWO2atM23hUmfSR2+29nU+FGu8IC9JnR3rxpmWBy8O1tz+gdz2F+ebQludlSywVmdPWHp7NGrg1gX28MWrnEF1N1j1s39VO/0qNskBAAAAAADoQlUFk4UNv27Y/8KP/xB4KxZbtt4JJNE9B3aTLgzJF8Z+cEPipCtvcV+76wZ77KBt8WN+3HG4L/EfPD+dHz53Zt6tuVqrb1xod6ytUywTrkBJSNl9gWTykjGD290TrvpRaspHr3eHnsL6kwAAAAAAAO+hqqK/IJeYEngrFlvxqCvpY4wkY8vY4zJ2YtiLNSNH3O2e8uF7CoOmrXVHXJjt6ktTH7zHk/REPr9slTM0PdNf98J5me3LLlLmrYlObE/4IALKI7MlKy4pv682v/npSwsj3/c8wSQAAAAAAMB7q6pg0hTy9RabsXSPJZmcZIwjOzV0l5uY3BI/85o/OZ2DfmE3nNMs9ezJdd05rRoz5xGnLbZ00MmX311Yc/dVwYaH5+S81RMst9O2quqVUsUsydaepJ3dnY66FAAAAAAAgGpWVXGT6dxVE3UNfUIQfhh7TIfGXPiQlev4SWJEfI0TL+yyhpyTOZqmE9M/lZX0mIa//GwucUVj3tvzlWDH0590vKca5OTYxbsbbOVcK5tl3C8AAAAAAEAXqiqYDPZvqJUddRVVqrihTZBLyqoZ1ZwaPGypPfm0R+2pX7zH1dTSTxk+5quZmLQh5b/2Tbv1+Mdzz2Wv6ty/ZaHJeLW23RbukF49y5NWDcuSpIKtPMEkAAAAAABAV6oqmJRhMcNDWJKVl0xGio2Y3modf8HT9tCF1yd3PfqEpv5rW7kPn0idkNfoE+4p1Ny6PDZx4SJ36IgP51+7Y15hy+NNVkIyjggoD2GkKtpUCgAAAAAAoBpVVTBpLAVR11BVClKQr1W+cfHqwTM//e24tX1FIeXuitV9sFWjPljRUpJn39ks6aZAj95rtjw/3Dr9V4s61t31j9aOZyfG7GYpLgLKt1mBjMNrGQAAAAAAoAtVFUwSbBUFUhDUB27dsatqR894zBx/8a3u4HOfkBT5THdbZ7al3n9mWyG3cVNiZOOaYPsp8zvfeuYD+Z3PzbHs3bWWguiLrAqM/gUAAAAAAOhKdQWTA5mRlCvOZh88c1fslL+/KVmbvsHZ9fAWDT63Nery3s2Jjc+qbvwTpmPDi8HkS37pTvvynNyG278ZbLpvpjq31FiuBuRGOUYKn0SrcsGk52uvpGrcBbxV0i5JLZI2SHpD0kpJy9MpbYmwrsPyfL0saUaJm/2f6ZS+VeI2oYH1fHm+hku6XtLfpFMq+xIe+Guer42SxpW42ap6rXm+zpX05wocakM6pWMqcBwAfUSpr3Ger+skfe2oC+u/rkmn9KOoiwA8X3dKuqDEzW5KpzS+xG2iAqoqmLRMoarqKTtL4XKEBckEtTJ1J7Ul6qffE58w9dfBuGNWupq3S/UfirrKLllNX2pPSu25vc/fm5x74apc09h5/tZNn81ve2yBnXnLtWOFMKAcaKNhGTApSfXFj8mS5h/8D56vTZIeknSzpIfSKeUrXx5Q/TxfF0v6uaThkv4m4nLQf51ToeNM8HxNSqe0rkLHA1DFuMYBAKQqCyY1kIJJIwUdkgJH8SGj11mTljxmT/vEg8nUMXdJYzNRl9dTsSGnBJI2xI87b4N93JtP5zbNvEybl52efevhJcG+ra5VI1kDaor3QEtie2ycpM8UP1o9X7+U9JNqHEkJRMHzVSfpp5KuiLoWDAhLKniscyX9uILHA1BluMYBAA5WVUGgCfr5fiGWZBnJ5CWZQbImnrUtNnbhb1KFlpvtxtq1Si3oiLrEUnB17AZ33Ff+l4YM+o09eu5XO1teuTRYe+tk5VpkuZLsfr9ptS1jBlQMe5TqJf2DpL/zfP2HpO+kU6q65QuASvF8nS3pBklNUdeC/s/zNUHhyPZKOUsEk8CAxTUOAPBu1RVMFjLxqGsoG0sKOh3lTWMQH3fmf6caJj/ujD5mtYbNWW5rcr8IJA8x5NPNTu0T3081Nd1uLDM9s/21Szr9whJr78p4LOmFr75+FlBaUjF97mffWGW4kv5W0pWer6+kU/rvqAsCKsnzVSvph5I+F3UtGFDOrvDxFnm+4umUshU+LoAIcY0DALyXqgomZZn+F0weyKeyiXysYc6qxAmX3ew2LbopnpyyIcqyKsV1FnhytFynXLjc2X7zE7FE3aJgy9LTzBsPnF/wljfIzYdpXr9ak9FI6uejf8truKQ/eb7Ok/SldEr9M7gHDuL5WiDpRkkTIi4FA0+l1pc8IClpgcJ1hgEMAFzjAABdqa5g0nb7T5pTUJhP2UNkDTljdaxu3M+So2uXWhOOWyt7yoAMWpxRH1mfktarZs8thRHHPu6/9cpX85sfnm51vpaUychyiruS93mBFARM5T56n5Q0w/P1IdaeRH/l+UpK+r7YQRQR8Hy5khZFcOhzRDAJ9Htc4wAA3VFVwaSl/rEun8nZsgZPyLiJiSvdholPOKd87lbXOuXZqOuqGsmPtll199yUmPfR1fEdE2aaN184NdO6bX627fkpTmer7KT6+hRvWwqq6merD5sp6TnP1xns4or+xvM1R9LvVNn1/YCDzZNUG8FxK7nZDoAIcI0DAHRXdYUnQb7PB5NWPqnYqLMy9klf+a2bnPBNt+44NvE4DDt1ft6WlmvkKcs1Ur/s8FbPdrY88cPYtjvmFbY+asvty0tPGZs1JkuqSdJTnq/3E06iP/B8xSV9S9L/kNTnr3vo0yo9jfuA6Z6vMYyGB/ofrnEAgJ6qrotFX9/J2EhWaopSS77cnGysv5NQsvuGpqcur5t6/n3JGZd0WL7bt9ecNGIqd+k1SHrQ89nBEX2b52umpOcl/ZOq7RqMgajSG98cjFGTQD/DNQ4A0BvVNWKyL4dRkmRJJtisjsd/XR9vmvTh2Pi7PCUuXSOduCvq0qqWWVGrtidnZF/+r9lZ96TzCjufSarG79tTua1AMgSTZTBB0u2er9PZzRV9TXEtv39QOIqk/230hj7H89WgcLmMqJwj6VcRHh9AiXCNAwAcjeoKJvvBG2smv1v59X9MF7bWf9pfN+NsZ9Kou1JjvJ/ZNe9fFXVt1SRo/a0te/SYzp3rL8utu+9vzO7NE1V4Jm4kWTH18WBS/eGlXK3mSLpO0peiLgToLs/XFIW7kc6JuhbgIFGOlpSkxZ4vO51S/9n4EBiAuMYBAI5WdQWTxvT9zqklKSEZ0+qa3Y+PCXa/8sXCmpmz45NOvdOdsOAJu2b6s7ZG56MuMyrB/qdq8mqfrz3bZ+TeuP2DuR1PLpDdmrQsIx2Ywd2XQ0kp3Fq8f2wvXq2+6Pm6L53SXVEXAnTF82Ur3In0e5KSEZcDvNtZER+/TtJcSU9HXAeAXuAaBwAoleoKJi2r7weTB1iSZRnJ2m0Hux+e09H62hx7+8Y1yQlLfuB2blxpNx6/wa7/aEvUZVaK8e+pN82vj8tm40v2b17+FWvrQ+McbZNVXa/A0giDyf7zWq5O13u+nkin1BZ1IcDheL4mKBxBsiDiUoBDFAOFaljj8RwRTAJ9Dtc4AEApVVcsZMf630hCI1lxydE2adsfpnSuv+n6QtOCbU5gHnOcpb+L5bY+oOEf69chVq718cmF3eu+VHjrzxfltz01wTVZKaG+PzLyvTCVuxIaFL5Dz5RuVJ3itLYXJNVEXQvwHmZJGh51EQrD0WujLgJA93GNAwCUWnUFk+rn6wzZkgYZZXc83hRsX36Fs+6ROamRx91h+1ufdMZ+ZKmtsf1qF+9c/rEZ5s1nlmRef/zC3M5n51lmr+2kiv/YX0NJSeE318d3mO8bvuD5+mk6JdZvRbVpFDdsqG5Rry95wBzPV306pX7V/wH6Oa5xAICSqq5g0nb6dzApSUayk5Jt9svseXxSx55n/15bT/xcrNm/w8msuzUxPLXaPuGqDdJJffRc3Ffb8fINEwu5qXPze9Z/3t5x3yzlWm03qXAkYb8OJA+w+v4O832DLenfFU4FBAB0X9TrSx5siaQ/Rl0EAAAAolFVwaSx7IExyqwYzllxyTKdMvuW1+VXv/xp4zZcoPz7VzoNO250rMfuceoX7oq20B545dtubsJZU3PtWz+S27brArPzR5Oswr4auZLixccMiFCyyHb637IE1elsz9fcdErPRl0IAPQFnq+0pHlR13GQc0QwCQAAMGBVVTCpQjZ+5Af1M1YYUEo5Bdpa37npzoXBttdnxYaMPi8+6Pt/cU/53BMy49c7g2dXZdDVaV6uj225e0rnxgcW+2uevDC/f/2MuLXZtdy85ERdXVSsgCGTFXWtpPOiLgIA+ojFqq6VkKthEx4AAABEpKqCSbuQq6aOciQst1OOeTkdtL18acfesRcEK+57MTZ2yXWx529+InXKac0afFF1TPH2fpwsbN83NVs3+er9ry5d6OxaMc5xO+S4IpOTFIaTqJBzPV9T0imtOcp23q/S/07MlLg9vIPnC+idalv+otHzNTOd0oqoCwEAAEDlVVUwaewBO8TurxWDPVub4/YbN8wtvPrruVb9cWuyrcf/zBr8+i0xHb8tyvJy+x5dqO0bL8ytfuT8wq7XJ9lxX4pFWVG1sSTLJpisrK9K+srRNJBOqb1EtaACeL6AXquWjW8OtkQimAQAABiIqiqYlFVVU4uqQ1yyE4EKHa9P8ZZ+/9/dbRedMaix4XoNHb4yVvepigSUGa2sCTpW1sbfeGZibr+zONO6/uNm51NTbLXJGqSBtXZkd1nsyl1hV3q+vpFOqSPqQgCgWnm+pkgaE3Udh3GOpH+LuggAAABUXnUFkyaXiLqEqmQkKybF8mvjwSv/dnH7W8fPV9Np62InzfxuYv+aR1xvRd4aeqwy1jQlG0/r8VqUG7ZutieMHvtXI/yy22+xncLmGnv4OXMCf9952XUvTM+tf2iq2bd2jG0r3NDGFqHk4ViBZOWr62er/0tLukjSTVEXAgBVrBpHS0rSfM9XLSOhAQAABp6qCk+M5eZkxBqFh2MkuZJdI5ns6w3BxvUNnS2rfqbhx6x0Gk98Jm/Smbzl1uza+uodw0dPW9WTpg+Ekls2bHQHq70uYe9tshLpecH+wqmdD319cS6zrsn4W20V9stKKXx+jAglD8MYyQTxwLjJbNS1DECXi2ASALpSbetLHuBKWiTprqgLAQAAQGVVVTBpDTlxi8kf2KUahyiGtlZMcpST8ZePy295adzeLc8t0aDjs/FxZydjTae/39v2/FXpplM29bT5QfH2OXZu/w/zLc/XZTf9pdHqWJW2C5slSbard/bwJJB8b0YySniKpVqiLqVEtkg6sYt/r5XUIGmipPdJWihprqLZ8fVsz1ddOqW2CI4NAFXN85WUtCDqOrpwlggmARy9f5T0rTK2/0VJ3ytj+x+XdG8Z22fZIwBVp6qCSTPsxGeDmhnLbP+VOZZjook2+hDLlaSCLLMpLn9TPL9mqbRx1iJNWPjz/aZlWTY1cXdHYVBbIessGzd69CE7Fu/c9kLc16g5aWfH7Lj/1gi39c3ZwaZ755i9q+Q4u8IHVdUrpIoVJBlLJnXiGmfMGd+X5T4WdUklEhwh6GtTGF6+KOkWSfJ8NUn6tKSvS6ovd+VpovcAACAASURBVIEHcRVOU/xjBY8JAH3FAknJqIvowrlRFwCg70unlJGUKVf7nl++tos6eJMdwEBTVbHToLFnrbbnbPp8fu09V2W3Lb3CVmudZUuWI6Z3d+XAubF8yX8qXlix4uzc2rsXm7FneDX1M9qdIdPvbd+y64eeldyWCVILXfle0mleEXecs93sii9p3V9mdm56KK3MettOZIqBJ47IklSQgrwjq2Zye2LEtHvsE5Z8z64dvyo2eMmA3ZU7ndI2Sf/q+foPSd+V9P9U8PDnaQAHk8VQ+AJJp0qaIWmcpDqFv+vzkjxJrZLWS1op6UlJD7FpEI6W52ucpFmSpkg6TuFrr1HScIVrwNYc5ss6FL4u2xW+LtuKf26T9KakDZLWSVqVTqnH6yfjENU6jfuACZ6vSemU1kVdyJF4vmxJkxW+5k8o/n2MwhkEtQpf77X667fY2yUFxT9bJDUrfGNvm6TXJK1Mp7S6Qt9CSXAeDq94XmZKmq13zstkhb8LD5yXA7IKr80txY8NCs/DaknL0in1lxk4wF/xfE2U9DcKl/GYqrC/KoX9gJWSHpX03+mUDhlcU+a66M+8S3HjvPMlnaLw/qJR7zxfHQq/3zWSVih83h5IpzRglzXjGtA7ljHVNy83u/NuO7NlxaXOnpUfDlpfnlnY++YUywoktsbpHktSXgpytixnhNyR53pm9OIX/WHTm7NWcrZV2N+hfW+st5uXTU+0PjPJ3veCLLdTcsQ07e7KSyYrOfHaFk0455HY1K/+OZnuvEeJxRV/h9PztVfhL7py2JROafzRNOD5uljSn1SZN0K2pFMaW4HjVBXP10WSviFpXi++PCPpNknXpVNaVtLCBijP10KFHbNSG1otoyiKHffzJX1Q0nyFHfZyySq8SVku6T6FHd5yj1h5m+dro8Ibk1L6n+lUWacaHsLz9ZrCG61SeVq9+53Tla+mU/qPErdZEp6vWoWbrF2o8Ea6HDMCWiU9IulmSXdU440d5+HwPF9xhb8TP6Jw9G+p+mXrJD0g6U5Jj1RDqDEQrnFd8Xz9raQflvEQH06ndEcZ24+U56te0g8Uzq7qjickfTed0gNlqmfA9Gd6wvPlSrpS0tUKQ7ae6FA4UOT76ZTWdnGMOxUOqCilo7537Y2BdA0ol6oMJt+25/qk/9yvJmdrT7gq6Nhxqdn0QIOTzDN6srsOjOjL2rJTx8nUz5ZxB8lk9yjvvSW7fZVcOyOLwLd7iuezkK9RYfhJzclR8/8Y3/vSnYmTz1umur+NbMRZtQeTkuT5WqLwAlyJBRqOSae0oadf5Pl6WeG7gKVU1vDB8zVf0s8VvtNcCncoDAa2dHHMkl400qne/UaP8vnyfE2Q9FaJj11qK9MpnVTKBoudrisVjnCYX8q2e1qKpN9K+vd0Sj1eT7nHB+sHwWTxxmtjiZv9sKTbS9zmvemUzitxm0fF8zVJ4Rs/V+rwI2XKZZfCm/cfVcONK+fh8DxfDQpv3L+g8gYaUjia5leSflbO330D9RrXXf0xmPR8fVrSr0vY5I/TKV19mONMl/Rn9e6a+oikL3UVdHXXQO3PdJfn61JJ31e4h8DR+q2kr6dT2nWY4/T5YLI/XgOiUt2rOA79fCZ19jMra0+95tqhS665vP6cb389kZi0yjV2YBFOHpmRZEt2KpByr8tq/oOcrdfL3XGzkpnliqcysqp5talqYqQg40pB7epE0+z/NXjeNZcnZ3/l64kPPPhYlKFkX1F8l/MbFTpclB2MivB8xT1f1ymcil2qUFIKR8G84vkl7ySgj/N8fUHhdKQbFP3PWFrhEhFver5+UBzBha4tKXF77Qo3qmkucbsLizeMkfN81Xm+firpdYU3HJUM46TwBud7kl73fJ1d4WO/jfNweJ6vGs/XdxQGeP+k8t+QSuEU+f+h8HffdZ5fkWMCJeH5mqpwpG1v3+hbpLCP+g/FqbK9rYP+zHvwfKU9XzcrHK1eilBSkj4p6bX+dm/BNaD0qjuYLHJiJ7ZKix/R6H/6P0/rs9c9um5aptNvlHIJ2RYDKI/IKJxEG5OMa2TikokVZ21X8YDZyJniRyA5NdNWOZO+8L9iIy66JDVm+rXJYR95LKbxA3Ydyd5Ip/R/pIpMFT69AseITPEi9Likr5XpEHWSbvf8iq4Niirl+Rrn+XpS4cjcMVHX8y6upL+T9LLna1bUxVS5Uo9CXJZOKZC0tMTt1ij6G0V5vhYrXOPpy4q+rzxO0n3Fm9aK1sJ5OLziLJDXJf2/qnxQK4W/+76mMKz9ZATHB3qkGLjdrqMPb+IKR/It7EUN9Ge6UFzz83lJl5ah+eGS7vR8/VMZ2q44rgHl0We2ObGd2uTw0RMnTjvxuON2bFVyxthRmtE0VFeclNGw2p1ynP0qyMhYImzD0QkkGcnYI7N27NisM/x9y+OzFl1jq329M/STXtTl9XFfVzjKr5zmlrn9yBRDyUclTS/zoWxJP/F8uemUflTmY6FKeb7mKbyRaIi6liOYKOkpz9fl/Xldrt4qrhO1qMTNPl388xmV/ibmPIVT9iLh+fp7Sf8e1fG78HeSJnq+PlaJNRc5D4cq/ix9T9LfV/K4XaiXdKPn6yxJn2cjO1Sx7yvc/KMU2hSuO9lt9Ge6Vpxi/6DCTW3K6buer7HplL5U5uOUBdeA8qr6YHLQkDHDA2MmDW0cvcTbu+eMxx9ZOiUWr7HXrJUeHT1Cr7ZP0NymBp0+aqsmNbTJsTuUN4EYyoaeMoGknGS5IwN36PRHdNxZt8fHzW8z8WPXxNyGFVHX1x+kU1rq+XpRKuu7gVOLgVq/WhzY85WW9LDKH0oe7Ieer+Z0auDudD5QFafc3Ko+0E8oSkq6tdiZ/++oi6kyc1X6dYifKv5Z6hGTUumnnXeb5+v7kv4hquN3w0UKX+cXFkeslgXn4VDFa/CtkhZX4ng9dIWk6Z6vs9Kpki+vABwVz9dshaOuS+W2nvTx6c90rbim7F9U/lDygC96vrx0Sv9YoeOVBNeA8qvqH9DkoIaJQ4YNv7qQzy8yQTB1cG3KNiYlqzgk0nS06a4Hdusu19ap08brc/OP18zhW9U0dJNipkMFOxz8xghKHNaBNQACSVnJTqTljj5zrdX04XuSYyf+xKo7fcOBh+7f/YY9aNhx5N2l8TNJ15exfVfSJElryniMKNyo0m/20h2/9nytSadEOD9AFKdv9qVO/AG2pD8Uw/Qejabo584pQ5vPFv9cISmj8EaqVKZ7vprSKW0rYZtHVJxiVs1h3AHnS/qJpK+Uo3HOw6GKsxUeVjTX4O6aoXCk1Qd6swEgUEY/KHF7N3f3gfRnulacYn+fpKZyHeM9/IPn66UKH7PXuAZURtTrxRzWH2+9acrY0VO+0JnJ/CxfKHzNGDNdkh0ERsYYBUYKjJTNB5IxynUU9NwrrfrW3R362m01umX1LLXm3ydbjUqZpOKWJasqv1NExpKUlYIOyXKOld14kRc78V9/m1rw9Y/Fjz31mweHkpLUnVAyr7Z0PmipikX7q9xdFThGJUcVlp3n6+8UjhCJQlLSzVEvyI3K8HxNVjjdqa914g9wFb5e+9WC4Eep1BuGrE6n1CZJxam0L5a4fan0NXfJ83WRpO9W8phH6cuer8tK3Sjn4VDFUTKPqrpvSA+YKOnh4i6xQOSKU6gXlLJJdXOpD/oz3fIzSVPK2H5XblA4kKSqcQ2onKr6Qe3Y8Fg8l909J9/61rWJpL3EjadkGckYHXaHG8e25NiOEnEpKGS1+a3tWtuR15Y9x+iFmeM1cfBwNaV2aubIFo0ZtktWLKuA0ZOQJD8hZ/BxHXbDwvudodNW2U2nbcwnx99rpeqanV40F/gvTLAsfb5j3958Z+vmGwfbmZbEcVe1l7zufiCdUovna5mkOWU8zImSbilj+xVTXPfl+xGXMUnhmipfjbgOlJHnK6mwE9/XQ+gGSddJ+njUhUSteENT6qUznn7X/y+VNK/ExzhH0q9K3OZheb6aJP26EscqsZ96vh5Kp7SrFI1xHg5V3CH+bvWtNzsnKtwk6P3plDJRF4MB71slbu+u7qwtS3/myDxfV0q6stTt9kCNpKkRHv+IuAZUVlUFk0EhO3Hvhmf+sclsWvKZS47T46+M1Auv7lTbnn2qSbhKxh0ZGRX/e5sxkmVbSsYcJYY42rR5q36zZbtSqYRqU5YmNY7Up+aM1gXTNsm1d6tg58NNcjCwGMnkkjKJ8c2J6Revc8effqdqGm8qtG1pTo44qVfTtE3Hq/M7961tLGxYep5pXn5ZZn+rrfrpkzVh/g2SHirxd9CfPKbyBpOlWmC7GvxU1fG7+suer99FXQTK6p9V5Z3EHrjC8/WDdKoso/n6knKs1/jUEf6/FBZ7vuwKrR/4U0l1FThOqdUrfNPqsyVqj/NwqOtU2tFelTJL4ZI5n4i6EAxcxTfWS30N+lM3H0d/pgvFNy1/Uqr2+jGuARVUDTe7b7M790yydrw0d2qsTXPOGKP3jarRr51Ber05qR2tOXmeL8sEcl3JtizZ1l+ni5ZtybYkySgf5LV/X167W6WtO5PavHewXmw+UZ+c6+u4IZslNUtWTpJRgVGU/deB5zaIy4pPUeykS5c6o2d8J5ZoWhvYiS1uakZe6fd1u7mstyHuOvtqC/tXxU0+NibYve2H/ht3Tzd7n0s6zj7FCpK1p7DAHjP7cRFMduW5Mrc/rsztV4Tn6wpVzwXRVnnXBkWEPF8T1TfWleuJ7yjc4XkgK8f6ku8eMfnsYR91dOoUvnlVjrbf5vlaoOiWySiFz3i+fnK0awBzHg5VvP5+sVTtReBKz9df0in9PupCMGBdVeL2PEkPHPFB/bM/812V9nr+PfXNN6IqhmtA5VVVMOm0LmtKdz5br0JO2v6q5g+xNf2Cer26d4r+tCzQvct2aH+HUWAC2Zalt3PJg0ZQGiPZtq24bSvuSoNSkjF5rV+3Xb/Z7mln50k64/jRaoptUmNyh0YMbtew9F4ZZVWwxEY5/YWRTEGS3SCrblZ7bPzi++2m92/rjDc9ngvcxxKDmrK9WXbUsjsXBZ17PpDdvrYp/+bdM0zbmqm2u99WcWVJy5Jsp1NW/oizDAa65WVuv88Hk54vW9K1UdfxLn1hfRX0zjck9bc1cs/1fE1Mp7Q+6kIiVOrRKq3plNYe/Ini8hzrVPq1os5RmYNJheF1X3etpEuOsg3Ow0E8X+MUrr3W1/3U8/VIpTeSAhSuT/7RErfZrWnc6p/9mbNL1Z/xfM2U9LkS1NRvcQ2IRlUFkypkXKU6bFlSofipIdqqM1LNmvD+YXrfyHqt29WgNbtq9PL6VrW27pFjjOIxS/G4I8uyZIwJ16QsOvD3IemUTBDo/ide0OPPJVRbE9OQmrTeN61Jnzst0ORB6xV3digXSObAIoOElH3LgWA5J1lOIlDNrF3W5I9nrNGzljqW9dXEsLmtvdk2NNe6Om2blkn5vW+OMfu2fKOz+bn5hc1PynbbZSV16OvESCoEbLfUhXRKmzxfHQrXFymHJs+Xm04pX6b2K+ECRbcgNQaQ4pSeT0ddR5lcJekfoy4iCp6vWVLJF0B/92jJgz9f6mDybJV+fbK3FW/OqmVE+tG42PM1NZ3S6t58MefhsH4mKV2CdqKWVrgj8uVRF4IB5yKVfkTeEadx05/pln8uQRv9HdeACFRVMGlsHRLyGElZu6CxI1v0uXpP7Wa/3to3Vr9fGtPdK2u1r9PI9wvK+TnZVkGOE26KYx08ovIAyyhbCJRp79BOT8obW+vbpE17Rmh+42jNmzhY0xra5BR2S66RnajQN46SML4ku1ZO+iQ5Y+f/0R5x0p9y6ZPafA3eNHjY2Naethe0P2EHrS/XBZp00f5ND383t/W+GnvfG2nHyslJ6p0g9NBKCLW7Z53KNwLPljRG0oYytV8J34i6AAwYlykc3dAfXaYBGkyqMutLHvz5T5b4WLM9X/XplHp8/e6mvylTu1G4Wr2fNsl5OEhxZ/JzS1NOVbjM8/XTdEpLoy4EA0qp3xTr1jRu0Z/pUnGa+8WlKad/4hoQnaoKJu1BE9r1Hjtw5wPJcjOqsTbrpKGbNf7MIfrQ9CZtyDRp6RsJ3fXERrXvb1fcctSZzSsWs5WIOW9nR6Y4dDLmujJOoJixZAIjb/de/eXRnXqg4Ouzn7lY3zp/odzsFgVb/qJg59Oy49nwLBE0VR+rmA1mJZnBgT3yzGc14vRtZtQpbZ2DjvnJ0GHjViYlDe5F0/kdD0/Jt7xxcb556SlB2y9nmn2rG+NOXkqpi0DywKftQIr15ZF6lVLOYFIKO0Ubyth+2Xi+Jqn0u9wC7+VjURdQRuM8XzNLufZcH1KJ9SWP9PmjYSsMV/9YhrYl6dIytRuFKzxf16RT6ujF13IeijxfrsLRJf3NdyWdEXURwFG4t5vTuOnPdO0ahddWHAbXgGhVVTAp5bv8QTFGKhipYEmDB+/VgsH7dVqwTUtGDdH7R8S0dFO9drQntas90I7d+7VvX0YygRzHklMcPmmMkWUkYwJJgeKuUSqR1ND6UZo1d5GGn3iFHGUUTFms/Lbn5a/8b5nW5+Sk/MMGpoiIkYJOV3mrKXBHzFg+uHHMjYXk5LtyQ2d5+UHjgqF149p70lx262O2kxrUWOjcUhfs2zap8MZj1+T3LJ1n8i1xKfjr0bNHDKmtQI5diZ1E+7qWMrdfX+b2y6lP7aKGvsvz1ShpftR1lNkF0sAKJj1ftSr9mxt5vff6wKsVjmgp9dSnc1SGYLK4W2xTiZvNSPq9pLslrZLUqrCf3aDwubhE4fT0cqhVGDD+tidfxHk4xOckTSxdOVVjgedrYTqlx6IuBOilm4/0AM9Xk+jPvKdi6HZZacvpd7gGRKi6gkmz3+1W+GfC3nHBysuy96qhfq8uPyWhs08YppbsSO1PTtR/PePrnqXrtd8vyLFtFQoFWTIKCoECY+S6jmoG1er4ycdqZEODPrDodF107lmKSfJl5A6aofhxU+WMPkWFzY+rsOpPyvsvySgflkhIGQ0jSbYsM7ItMebkldaEj92XTzXd645dtNKV1JvZ9x3r/9N2ndFTOze9de3+9bctsttXua7ZVCc7kBXrZZ2WCCaPbHOZ2+/LwWSpFwwH3sviChyjWdJdkp5T2KHepTDEciUNlzRb0oUKpxeV4538qn+XuAwWq/R9vBXvNRItnVLg+XpWpZ8+Xo7p6FLpb15XSzovnTrsKP1dxX//ZTEIvFHSrBIfX5I+pZ4HcpyHouKGc+VeQmWNpJ9LekzSJkmB9HaY8imVd6bE14vHBfqaDkn3duNxi8pdiPp2f2aJwhpxGFwDolddwaScHv0Am+JSfoGRrFin6oduU722y8qv1dh5IzR7zFitbBmsFW+2a+lL2+QWckoPSihdm9Lk447VqbNP1vEnTNKZC07XqMYRctycsoEnOwhkLFsyVj6WOG6DO37MtkLdQje/4dHa/OaHGtx9L9bL2hm3HEmOmOZdCYGkwFUQm95uhkxbFaut+U5yyIQncm4iO3zsol5vgZ3f+fACE+TnZF75t6tM64uTYvGMLFu9D56NZGTZxjJV9rNVlRgxeRjFneDY9AaV8oEytr1L4XpIv+1iI6pdCjtqv/d8zZN0p0rfcZ7XDzbD6qmzytDmkaZrP6XSB4mNnq8Z6ZRWlrjdk0vYlifpQ+8Rxv2VdEqrPF+nSbpV0vklrEEKR0TUpVNq68HXcB7ecYHKN1Imq/Cm8D/TqUPeuG5TGNj+wvN1gaRfqzz9l/M9XxO68/wAVeaedEqZbjyO/kzXmI3VNa4BEauu8MRxez3KzLy934iRnP0akd6vj05q1UXH1OmVUXHd4AzWi3tTmnjsFJ23aIGOPeYYnTzrRNUOqlEyGZcUyASWXDkysqWCZAK7TbJ/YtmJW5Ssk9M0060Z1TjGbJ64oKN55ccL7W9OtQrNtk1AWXqWpEAyeUl2TNKYjNsw697aplP+lEtNWZeXu8aefF7HkB40WWh7zXaSNWm/fZXr5v1as3vdYv+NR7+Z371iguPstK1EOM3/qEbDWhKb33RbT28aeqpPBpOqzAi2dkn/qfCmcF3xc1MlfUTSFyXFK1ADqsPCMrW7XtKZ6ZQ2dfcL0ik97fm6XNKDJa4lKWmm3nsacn9Ujqmy77XxzQHlWGdSCr+XUgeTk0vY1o/TKa3v7oPTKWU9Xx+T9LJKu5O5q3DB/pt68DWch3dcU8IaDpaRdE53ptClU7rL83WqpMdV+in2kvR5sSMv+p4j7sZdtLBMx+/z/ZniaMByzUDoL7gGRKyqgslw3cdStSUp6SlpeXr/VGn6uOF6qWOe6k45VzPmXajUQd96YPKyCgVZJhwqZwXhxjiWUY2R1W4lB21z40NVO+RYSdokf+MyM+n8hzJtGz9h3rx7gWl5ZoaVbbOVUDhom1Dq6GUlq2DLrZ2xzql73xZ/2Jy/aMiwXznHfaTFkdS+9s89Hh5vudasYPfGbxS2Pz/cb36pxt715CxpT9xNFR9QoufNkmQFvAi6oUfrgPZCb/Y9qgblGOl0sOWSPpxOacu7Pr9U0lLP108UBpbl3JgIVcDzVSdpQhmazkg6qyed+APSKT3k+XpC0oIS1zRDAySY9HxNVnme1yMFj88qnN9Q6ulr50j6txK3Oa6Ebd3e0y9Ip9Th+fqmurFuWg99SD0L5DgPevtnptS/cw64vCfreqVTWuf5Ok/hVNFSv0l4mar4phQ4jG5N46Y/c0Qz1XcHbJQd14DqUF3BZL6ztJ1ZE07zzljSoJpdWljzkKw9e2ReWaXOMUsUGzJJtl0ry8QVKKYgMDIqtFgyzbZl1coKdhkFnnzfdlKpd1LT4/85n5CWa+SKNQWzvck0zL8627r6IrPjkSYr0yw7YbrcuRmHcWCUYl4KgiEq1M1pDYad8Z91Cev2+NARzf6gU1tqm2a8PWy9dvJ5R0yxMy0r4jl35MSk2dxU2P96fbD1xcuDLU9dnNu7Spbly0qo5M9T+G0Etkyuqn62qpRX5vb76qi/2WVse4WkD6RT733uixfE0yU9qvKs/4XqMbNM7f7vdOrtkbi9cbtK30E8scTtVbNyjJbccpg3M/5KOqV2z9cqlf5Njfmer5re7rT8HhpK2NbaXn7dbZK2qfujIjqKj28u/rlN0nZJWw76XHMPa+A8hMq1rvMv0ind0dMvSqe0wvP1LUnfK3E9Ez1fc9IpLStxu0C5dHcaN/2ZrlVitGRG0n8oHOG6TuF92EyFU8ivUHXvBs41oApUV3gSBOV5wRY3y8lbHdLOJxXsfFqFV29XvG62ak44T27jDNlOnYydDCT9QrJvVMF1Zdl5qbPFSdYeNgRLaGa7psxca/a+8s+J3Pz/CrZMnJHd+NAluT1vzrdMS9xKiHCym4KMLRPEFasZvrJm1AV/Koycv9pLTn0gPvGkDkka2os27WD/Amvv8mv9DQ9MCJqfrFHnquFSQXZKZQ6OjWRMNf/yrRalvMnsFzxfaZVvfZOMpEu6CiUPSKfkeb4uVDjFjndY+69ydOQzkn5wlG08UopC3mUgrdsaxfqSBz+u1MGkq3CJi7tK2GZNidvq8QyA4oZB9yi8YTsQsB0I1t4dtG1Lp8oyy4DzEPpYGdpsVbgmXW/9SNLVkhpLU87bzpOq86YUA0qzpB8qHA25RVKtpLmSLlG4ccyBwQW3drM9+jNdO73kVfy19Qo3Plvzrs8/IOkBz9cPFIa0E8pcR29xDagCVRVMmkKJR0wecgBJMck2BVmZlxU0r9S+XY8qP+pMJWd8QrUjTpSl9FbJXae3d2M+8rbM1pAT21xpqdpeetqd+unHMlb6Y9k3/3SxaXlxohVsr5GbK+d31XcZSQUpiI3vCEacuD4/8vxfJ3Ysvz8Wr1sbm3p5PtnLZjtfv7mu4CavzL3+my+ZPaummuwmWXZGlqt3RmaWMzC2jCR25a4C6agL6IVyjpb8tx6u/7XF83W1pN+Vsaa+apO6fr9kvqS7y3Dc8er+SOPuLIz+C4Wd5snFj+MP+ntvA+mberHpxLv1duRVV8aUoc2q4/lKqjw7kx5pfcmDH/fFMhz/LJU2mCylWZLu780XplO6StJVpS0nMn3yPHi+JkmaXoam//+j+V2YTinj+fqFpH8pYU1SOKL6W0d4TH+5xqE63atweuvBz3WbpFsk3eL5alC4UcgX1L3duCX6M0dSzhlQ2ySd0dWsiuIIwNMVrp1YrgEYvcI1oHpUVzAZ5CtTjyVZMSmc671e7ta31LnlEZlJi+3U1LOutmob5cYm3qNCa7Ocad2/8E26OrCl1c7+l38YT178B+fYCxdktyy/NrfxL2Ns85ZtOYXqHsRcKUYyubhy1jFtdip+f83IE39nNc7btK9myoZBc67q1Tvh/rrbbCtdO1crr/twdsfr5wamdbKlPa5lis/10Wxo01PGqvAB+6xyh7d98adtapna7VD4znSPpFP6fTGcLGdg2ucUd9R7z86G55dt/VSvBJ3ktxWnxq7UYTYWKa7XNEVhp/644t8nFf+/q1FWR71WXLEz1qzSvktcjkXEq9F8hYvjl1pPRkyWQzmmp5fKNeplINfP9NXzUI4N54L/297dx2lV1/kff59z3cycYTiOIwIiIiIhASG6iIiGZKR4l3eV5U2t3axrbdtW27r7a/u1bj9rN7e1rXZrs7Y7yzJ1zTRJEdFVVCKWDBWRAHHEkZthPMCcubmu6/z+ONcEIjBzzXW+55xrrtfz8ZiHFDPf75cz13V9v+dzvt/PR9LXI2jnB4r+pnS258sdIKXLsJjjkEpLFeY57z3YN7iOtkq63vP1hcHukGY9c3Cer7ER97+/KwdK9SL9ccPDhZJ+KzPrlKFiDkiJVAUmZecO+iFlimVLlgLZwUYV1/6XXnth8VTriJNubJy08OrGo6f9Qi9uewAAIABJREFUqNC79icNoy+r6BfXMOLETo04sbOv/cE256STNuXGTJxbbHv41OL29XNK3RtHy+p7/e69OhH0SUGQlbJj2jMt45+1J1zxs2DkpO87Uy7olSr/hOp68eFsvrCx0e54dmxh6/oL+vZsu9byX5xiZ162rf5rm9Q1ti12TA4sdR+IKXCcoXbvrmKx/yUN/igNhony6+XJ8tfreL7G6cC7EsZKg0/wPYCoUz3US0qCcw202a0wP+2AXEcbPF9bFW3uQinMizS5ylxf+yooujXw2eVjap8pB3RqCddBepuBNh9znYrzXL5B+f20RtHu5rEVHpl9IMI2gcHoVBjEGtT9flRpG1jPGN0t+ZMKC7s86/n6nKSbzA2pYswBKZGuwKQiLMtdKUuynaJsvSTteKm1t/2Beb2jTptgHzXn9KDHebxh5MSfWC3TKgqk5Ma+o0vSkuxhJy7R4Var33X5eX1tq65Vx28ma9eqsUGhO8ygMdzzUJYkBY0Kmo7f3Xv4mcvtke43R+b9ZaXDx3q7+4Z2zH3bi0+Pb/Q7ruva8eKE4OVl04Jdq2Zl8oGdtlc0DqlWi9OYZOp4Q8XVUvdxj6TtkkZFNBbUONf5Yx64ZQa7iXxHjoECKmlkIsH9Ctep6NjkckkXGxjHIoWJ9aOwXdHuIPmUpPM8XzcqfBBkakdZ1LgO0gIDbd4XYVvLFP0xw1TelGLYuzGKYE2U6mQ9MyXq/vcxlCPBX1OYOzEtKXYWGGiTOWAIUhXGsexsskcv+wOEecnOdivoeHh8Yfvyq0pbll1cOvzk03WE84uGiResybhv2z+x68DGfrrDkW7NjH/zk5nNx48vvjJtbveWlR8rdr0w3srsCXdQDrcAZUkqFppk5UZszuXyDzhTzr8vGHvhqtaxZ2zu/5ZKH/l0tD08sdF7dkZmx0uX9736+FWlXc8pE+zcWwk9DSwrPWNJtyiT7h9ILdwQ7c9UYHLIybddRwXP192SPhzheIAD8nzNknSDoi+gIoUPQ4ZtYNLzNV5m8iRVejz7cZkJTJ6j6AKTmxX90bapCnPy9nq+lkp6WNJjklYNsqpsEur6Oni+Jin63b2S9GiEbT0u6S8ibE+STom4PWAguyV9K+lBxClF65njDfQvScuGcorBddTr+bpZ1RcWqhpzQLqkKzBppWQ4gcI8lI6UU4+CPU8193Y+dVWwbdZ5Pdt7VzeNXXtTg9X7gN78iYp3eObzp6zX5FPWZyZrmfXcHZsLLz9wWaH9vvmlvvZRytbSyZdDswqSZY/qzI+78NHukVN/rtIf7srP+ueuSgKRW9c9ao+eMr8kSaUXbrI7d5Uu7unY9XF1Lp9s735qvGV1KdtQjuemJKhbHsbw+UXWtlpMjG5ictzkOuqoso1fi8AkDPJ8nazwyfs7kx5LDTOxW1IafOGbfo8ZGYV0lucrP9hjgANYJ2lOBO0cSF7h7s7+vJglz9d6hbnPflf+79Ouo02G+q9EvV8HE4F86QB57lLSVj9T/27gYG6tkR3UVUvhemaioXarycH5Q4XHuZOuB8AckCIpiQSWlQxX5a5UUA402ZLVIAV7VrcGe545q6ttzOTe0W99TMFdTzSMmr0sP3rCmqE0nzv82Ntz1vSlBfeoOV07268NdjyxUL3r88r6tbnjriSp0KSSM6Wr0Dz+7sMd97bsmDet6W2YvrV56t9UvEvFUVu24+XlC/Pe6tNKr6ycbLWvPqOhr228FXTJykjKSEFKApKvF6TrdZxe6fr8SQcTefCimNBMFbRAHfN85SVdKuljCou2oDom8ktKB8jLNYBVknoVfbqOJoWvkyHvAN/HbyVdFUE7g2Frb96yd/X/n+UCIk8rvF6PKNx9sj2mMfWr9+tgouDcuohTRkSVV3VfEz1fzfUSKEIqVF1IJs1Svp6ZaKjdIR8Fdh1t93w9Jml+hOMZCuaAFElXYMBO13D2Z+clqU8qtU0otN99RfDqyveUDpu+pthc+EHumKkrsmPO2xxo4har5bjB7Zgbe0pBY09pz0r3NLz05LPqO3Vm8aUnLul96alLreILTbK6wwBlmoOUQfhVKjkKrGN2N0w87XZ7zOxf72ycvjQ76W3bJemwCprbuvEh28nuHj9yz/KJuY7X3t635sfv7931/AQreMW2M12vf8WmMiipP14TDKjZcPs1VdnR89UkM3k3q57QXEdbPJ88k4iG52uupMskvV9mdgnXHc+XLTOVJddVGiQqH9NapTCHUdTOVTSByTQ8bGmWNK/89ReS5PlaJ2mJpF9KWhrR7tBDqffrMN1AmxuibKz8fjJRUGqyBlnUCqhSp6I92poaNbKeMVGRuzOCYnQPKfnAJHNAiqQrEpjmANy+bMm2fUkvZIPOF2b1vnbEzN7dnRvyu45emR+l/870rLlDYy6s6DhvwzFz10tz13c1jF1uT7zmt5mXfnF+8OojE0t71k4ISq/llVHym533VQq/LMvttRombuk7YtHa3qPe+aO8teYuZ9q13c4Qmty94bt5q9t9f1/HC+fv2vbYLHnPT8hoRw0WtLGkUq28mBOVpld0GpiqGvxiRO2sVfqeAqMGeL6yCheflyncUWBikVzv5kpqMdDuUANXj8lMYHKRpM9E0M5KSR1KX7X2/h2FH5Xkeb5ul/Rd16l41+pg1ft1mBxxe5LUZqDNzYr+pnSiUnZTimHryQoLqKVWja5nTHy+r4qgjTQ8GGMOSJF0hXzSkmOyAlZOknbYpc7HJndv/93kUuvMubljT5ts7dqyxW45ZUOhz1recNRJg/4wbjr6vHZJX1Ww6dbgyFETvY49Z5deeeLj8n831ipulWUFspI4wlyu5xIUpEAZlexR6muevbZh9MQft4wY+UAmN33dqOmnd0qnV9z09nVPuA2FjWcF/qaZ2Rd+/WntWe8WMztl1UPF8vpm+kZoaCXfk2OqGNDWiNrZPPC3ACHP12iFQaRzJJ0nM0Ez7HWOoXYrzS/Z74lIR7HXDM/XuHIl1SFzHZU8X3dI+rOIxmWCqzC374c9Xyslfc51tDjSDrgOJoIKLxlos03S7IjbnBhxe8DBDHUeSYVaXs94vlpkZiNI5YWA38hE7sRKMQekSKoigbbsmn2aYuck5Xepb9fjE3vXPHOj1Tq9N3vEpnXZEeO+qczye+X8yRaNnDv4f9/EK7Zb0vbDpJUdLy5Z27jlwVNKry6f1bfzmYVBr5e1c8VYK3kHvVKhNEKW3dCZcWcsU8vMdd2jz79/zIxFy6ShRVR6Xrm11dq6ZorltVzWu2v5B+3XVrXa3S9Ljmr8OHQgBdS/GQTTgUnPcPtRMxWYrLbwTb+4c5+hhpR3EczT3oX7rGRHVHcWDfwtQ1LNjklTFkn6rwja+YHSHZDb12xJ95erXF8bwRG6fdXzdRgXwZj2d4Pn6wYD7UbtmKQHgLqxIukBVGKYrWdM3WttrLYB19FWz1enkg30MgekSKoCkyoVajuaE4SbPi11SjsfzxdefXxG4Bx1U3H7me/LjG+5P9NS+FpuzBkVJxltPXbhXTp24V09q/9pdPeYSz5pb1+7UK89OCXobnPtfCEstWIgiGdZkgpSqdigYv7Ezd0jF6wrtRx522GZHT9tPf1LFVXY3t/2dT+fb+/4/bW5LQ/Oy+1aMzEI+qScpAbVcECynI3AKtmyKIAzCKYDkzWVY9KgqHJzcT3xOp6vCQorQZ8v6SyFO5sQM89Xq6J/ki6F7/kh7Yoo33BskDQp2iFJCm8Wqw5Muo6Wl3Nhnlz9kGJzlqTfeb4+5jr6fhQN1ut18Hy5MpPXuVbUwhFUDA9R7K4zahivZ0z9O6o6tbCPNiUUmGQOSN8ckKrAZBAUUjWeqmQkq0kqFl5pKrTdeYb1ym9n58bOOb6448n77COmbe3JTl4z8ogpFd3oN8z6263dm5ff2Dx6zJ2ll3qn7Nnx+/N7u7xFGb+t1W7ojjZHZ1Hq6xut0ojx6xqbGu/Nt5x+n1pOXX/EzEuHfJxz64sPzWj2VkwJdqyZam1dd3ngb5hZCHbKzu0TiazhoOR+CEwO7HDD7ddaIM3UjsmoKq75EbWDGub5OllhbqULJM1MeDgInS0zc86TrqNqHhgvl5nA5NmeL7vKsfX7vMICK7WkSdL3PF9vcR19OqI26/E6pC2vZtwoZoc47HaddKYCYj1TlajSRLVJmhFRW5ViDkiZVAUCS0FxeAVzAsnKSJb6pNILjX0vbfpgz9ZnLs0cdUaHdezZ3+3rWHJXLpttL+SndWWPPmNQu5oOmzBvtzRvZeb4K1fqt/9xr9Vw+MXZbb95R6l98fxS7ysT7Ew5FjOUIGV/ULCkQpCfur5v2kd+VQiC25pevfvppvlf7q00avLK80vtw4IX3OyOR1t3FUedXPStj3dte/zkTO+GxqzdkVVuCGOsGcMnwmqQ6Sc1UR1hjoupz+OoUmR0R9QOakw5R9EHJX1I0rSEh4M3OtdQu9XmBXtc0lVRDGQ/LZLmSNUXQnEd3ev5WiZpQbVtJeBTnq9G19HHqm2oTq9DzeSJMyR1N6UYlqJMO1G1OlzPmPqci2rzR1dE7QwFc0DKpCowadkNtX2U+1Bsycr3KVNa3RK8+EyL2hd/ru/ImecER575WNC8+6W+jcuWOMctqOjDu+VPPupJ+uHup16+tTT9M/N7Ozd8vuHlB2dZvS80y+7Iygr7HShGZgXhtxR7R5V6m2atyTX2fNMZMen2ltmfKgd2hvhAvnvPwr5u723FnS8tyHQ+PM0pbHWtXDHcND2ci1YHSqA6UU0yUQltX7WWE9FUTsyodkxG1Q5qRPmI8GcV5p9rTng4OLizDbVbbcVMkxU3z1UEgcmy6yT9TrV5pOujnq+XXUdfjKAtrkN9GS5HVZFuJioUV4z1TOSi2vTAvUVyUjcHpCowKVnDNzDZz5KsXJ9UXN/Y/eKL80sv/e/87JjZyh05+/u93u9usZvGbOm2Rm9unnzWoK9F86l/Xep8+rYn86PmfcxtPnJKccf/nrSr4/fvDLrXz8oUXwtjgPv+pi2VI5FSKcgoyLV2WwVtybe8aXHmuPfd5meOWHXEzIuG9ARj64ZHR7duf2Byb09xUn7HM5/r3fnclGypTXZjt/64Q3I4ByVRCdOByXbD7deKqI6Is5CrE54vW9JfSPqCUrhwwV6er5kyt/v8IS+9CRwWKTx+XDXX0VrP1/WSbo6ivQR8wfP1pOtoaTWN1OF1qPfPNuZ0xCHRwCTrGWOiCigmuWOy3l8PqZsDUhWYtIKaLcpdOUvKOH3KBhtV2rZRhfZ7/7TQdPR7gqPftTLTdNh/as2dizViuqfjPjqoi9Iy833dkp6Vzn3Wlu7e9fQvf9649ZG/szuemKXda6eq2GFbOUl2WGHbKkp29qgtQdPstl1HX/jLxo6fLmkoHbGq+aQP9h42hH9Oz1OfaN3pNy4Isq3X7tq6dLbt/a41Z3VJeSnoD4TWk4Do66F4vpoljTbYRa/r1FyOSVMPZqLa/ZK6CQzR83yNk/QzSWckPRYMiqlq3Gk32/PV6jrRpOxwHX3V83W6pHdF0V7MbEk/8HxNd53qdt7X2XUYXumjKsecjji8mFTHrGeMiipoE1WBzqFgDkiZVAUmg2Jffb1AykeorayknC/1rG8KXvjK/FL2iJn+mFlL7DEznujesHR1r3LLjpz01oqCFsfOvHBNx5pt12Vaxk3o6fM+GWxde7b92mPjrL5uu9gwubM46tRbRwaF25zcqM27jjl56+h5HxnSB0P72idbR3Stfq86XjyzoWPNAvmbR1t2n9SwTyyy3oKSliS7VF+v5cqZzuuSykTbAzAVSI1q4mmIqB2klOdrtsICGKmr1IeDMpVfMu1sSQsl3R5hm1crzLm0IMI24zJe4THF6yNoi+tQH1J3U4phKZF876xnjOMIdu1L3RyQqsCkMvnhf5T7YAJJWcnO9Ul97S3d7Y+8K9i6bZE1csrW/JixNxX3PP5Ad3ZKR6c92Tv6hJmDuk6tMz7oSVqzdd39n284bOp9DV0nTCwV/Hx37rhNfc1v/lXzCQs8STqmwqFuff7OllZ/3ehSV8fo7M5XPtCzc+N7M32/a7aze/YeGq23YOQbsGNyAHMNt7/JcPsmmFq8RXWUu96r1w1rnq8Zkh5S8kdb1kq6SWFy43pITD9knq8m1fdOkHMVYWDSddTt+Tpf4Q6bC6JqN0Z/6fm62XWqS2NSR9ehfu85gPjEHphkPfM6pgpXRnVvkeRGHuaAlElVYNKyrVSNJxH9AcrAV1D8bbP12qrmUueom3a1zv5EadxhT9sjx/+g53//dWnDSZ8a9AfN6CnntklqK/3hP+1SoUdNJ1xX8Rtx+7qf2qOmvLe07Yl/m1DMZa/d3f6bS+3ONaNyPZtag1xfeEy8Ho9sH5BVkuw6ykswJO8w3P4mw+1HznW02/NVUvSTdFRH5nnqPEx5vkZJul/JLuKXS/qS6+je8pg+keBYasVCpWwdF7PIj7G7jro8XxdJ+ltJN6i2rm+jpE8qgt2CdXIdTBWcA7BXrIFJ1jNvYCowGdW9SpK/J+aAlEnVQiOgkvFeVvmItwLZwbbmoHPx1KDj6akNR82bZo867u7i0195Znf2hPVdwdg1R02fPagPHfv4a4d0vnjnqm/ng+bDZ+955PJz8i/95tJsqWOaMrvsQCWpQbLYHPh65Jc8JM+Xq/CG2qTnDLdvSofCI3RRGh9RO5Miagfpc4uie51UwpP0E0nfdR2tTKD/WndO0gNI2FjP10zX0dNRNuo6Kkn6oufrLkk3SrpYtZOL6sOer8+5TvV5u+rgOiRZdCEVPF9Z14ksVxxwIHHvmGQ983qmjly3RNROkrGoup8D0iZVgUnZBHQOyJKsTKBs5mUFr9wxY1fbYdOCpmO7g/GXbm1sPfFLvWvX/iQ/9arIP3hee+ZLLY2d691sV/cZfW2vfdr3nj85W9ooO7N3XMAQvFfhjgaTnjXcviltij4w+eZqGyhXNZwawViQMp6v8xQGHOK0TNJ3Jd3hOsae5teDei18s6+zpWgDk/1cR2slXeb5mqhwB94Viv7zOWqtCq/JvVE1OIyvQ60VyDOhWVwHmBXbHM965oBMBYajiiElmeeQz76USVlgMpf0CFLPygXK5DttFTubghfWTbQPm3tD4cg5f9L30od+Udpxz+aR7922pto+dv/w4vxrU+dd0ei3nd/X8btppZ2rpzVkiuGrJTPgj0NiG+mhfSSGPqp+HySkTdKsiNucGUEbU2U+mIxk3BhTP52Svi/pm66jdTH1OWx5viaJXcySdL6kfzHZgetok6RPeL4+rXC3//sU3vwmnb/sYN6tCAOT/YbhdUikKAdQZ+IM1rGe2Y/rqMPzzTQdUTtJ5q9nDkiZVAUmg6CY9BBqQ6BwF2XeV+A9PLb3taf+THbpPVbuiA2Fx679ulrnP7bbHtPRMnVhRW+47b+/d1LjjhUzStaWdzSuvfmKoK+rtWDvktUYkDuyIpYUBLVy3ClWnq+FkmYb7mar66jNcB+mmKgmPs3z5bpOVblU5kc2GqSG5+ssRR8I31+7pH+W9K2U7iaoVeclPYCUmOf5anId80eyykdeF0ta7PnKSpqnsADPeYrmAVBUzjbZ+HC5Dq6jgudrq6LLwwzgjWLJ48d65pA6Fd3R635RfW4m9vnLHJA+qQpMWkUCkxWxFOZ4DLokqSUodpy8e+MDX9dWb32x5YT1u3o3XT9y5oc3DKapl5/4t/OsbS9+Tt6KCTmtHpez+ySnHI8kKFk5y6LS137KNzBfiaGrJ2Pow5TnDbRpK9zdclcVbVwU0ViQLtcabLtX0hck/csQF/BJHu+pBfWeX7JfXtJZMrBD8FDKwblHy19/5/kaK2mBpLeV/zslzvHsZ6zna5zraIvpjobBdWhT9Deln5f0tYjbNMJ1OMoI4+K6H2I9c3BbFH1gMqo8nhMiameo6noOSJtUBSaDUh+7zCq1T9DQyvgKipuag91tszLeyFnaPWt8V7Htyd6maS90liYtnvjm2a8LUj733GPzRvb8/ozGHU9Mb3xl+VlW8ZXxtrqkLAHJ6nDhDuLzimc3xeMx9GGKqSPo79YQA5Oer9EyX6wIMfN8NUq6wFDzmyVdWGVRkqaoBjPceP4fg3EInauYA5P7cx21S/pp+UspCNBNk8wHJvdXg9dhs6STI+5zDAE/4I+MByZZzwxok8LPwiidUG0Dnq/xSj5NFHNAiqQrMElV7qpZGclSQbJ3qvTaw3OLO5+ZG4x8y+6Rx559avHpe39pB70d6u3K7yw2TWrctevy3MsPz7O1MZvJdKXs1VCb/vgK5rX8Op6vKyT9fUzdPRBTPyaYKtpzqedrbPmmsVIfE58Ow9F8mVksd0g6s5yPbkjKxZY4WnNwZyj5G500SV0RoIME6M5WmBNzkcznZZwhaYnhPgZUA9fBRH64pHcAAalRZRqhwWI9c2ibDLQZRUHMGRG0US3mgBRJ1c2mZdkcf42KFX5Z1lZZux9qtn7/v1ftzrVcIKuhW+rLWn27m1uCnU12tofq2pHjgvYrT8h/JemmmLrc6jpaHVNfkXMdtXu+2iWNjbjpvKTPSvp4JT9Uvon8VMRjQTqcaajdT1eziC8brTAFAQ7s3KQHkDKTPF+TXEeDSl2ThHKA7oeSflje8bpIYSE4U7t8jjbUblVSeB2eMdBnFDfsAAaP9cyhbTTQ5smeL9t1qtoROyey0Qwdc0CKJP1GeZ3AzhOYjJolKSNZuQ5b2tCq4nPjVFo/2s62N9k5gpJRCy8nxYI8X3nP16WSnlKYVzKuz5q7Y+rHpMcMtftRz9fcCn/mFiWfGwd75SNsy0QRqk0Kgw7VSsNT9DQzWtykRtVMMSDXUa/r6B7X0YWSTpGMBFRT/7mdkutg4kHmZM9PtNJsLYtyjkP9YD1zaCbSRDWp+iPQb4tiIFViDkiRVAUmFRTSNZ7hyBbBSOMCDffIZDnw2OL5Gu/5muT5muf5er/n6wbP132Sdki6U+YrcO/vzpj7M+EJQ+3akv67nNNlQJ6vG2RuF8twVzDUbpRHlUw80f1JlU/P+5murFmzPF/jlK7Kx2lRk8WAXEcrFe722R510xG3Z1SC12GNZKSiexp2AplUC3Mc6gfrmUMzlb9+yA8EPV+uwrQ0SWMOSJFUBQLtwNQ8B8TICmxZQareW1WY4PkK9v+S1CNpp6SXJP1BYcGZH0j6vwonqiR2a2yVtDSBfqNmMkfmWElPeP7BJ8xy0Plmhb9LDM1uQ+1GspvE85WVmRw4URWeekdE7QxH7JY8sLPKR4NrjuuoTdINSY8jaUlch3LgYaWBps830GaapHqOQ/1gPTOw8meriWIsV1bxs+9VClIKMgekS6qCJ0HKxgMMjVWSyJeagFtdx9hT/Ni4jtYorBJnynhJT3m+fuz5Os/zNba8+3WK5+svFOZb+SuD/WPoWiJqZ1RE7eyvrdoGPF/NCqv34sDIL3lgTTK0+8LzlS2fDFjk+foLz9e/eb7u83y94Pl6rVwRtlo/jaCNfUVecGIYX4dlEfcpSe8q59hGZaKa41A/WM8Mjong2xTP11mV/lD5s/GTBsYzVMsMtMkcMASJR6pfb9jsMgMQv1uSHkCE7pX0UcN9XFH+QvR6DbU7XtKKCNoxtZCP4oHMh8WumQMqL3IXJj2OFDtXQ9w1X951M1HSFEmTJb2p/N/J5f//UOvl8yTdNZR++7mOtnu+OhVdYGZIgck6vQ73K/oTAv3VxxdX25Dn668lfV7S+vLXOkkv9P/vckGhuKV9jkP9YD0zOP8jM+uHGyWdVuHPvF/pKhDDHJASKQtMAsNAICkgyB6zJa6jtUkPIkI/lvnAJMzpMNTuDFV5419mau6vKtm356tJ0qcjGstwNFtVXuNhbpGkzxzsLw8SdOv/80QN/dTO1YrmfRnljv9XD/YXXIc3WKHwMzvq99YNqvKm1PM1QeENabPCXHVvyFfn+fJ04BvWda4Tec7Ofmmf41A/WM8MzqOG2p3r+fpz19G3BvPN5TzZXzE0lqFiDkgJApMAhoO0TXJVcR0t93ytV3ijiNpjIpePJF0m6R8NtR2Fmapu8XujNLjiTHVqUdIDSLkZnq9xrqMtB/n7eZIeMdDvxZ6vSa4z9KrSnq8WRbvz51DFDrgO+3AdlTxfd0j6swj7laQ5nq+Puo7+Yyg/XN4h/SMNnLPbVVgd9w0Vcg3esNbrHIf6MdzWMysU7nQ2sYPzZs/XKtc59G7ncsGbXyhlD1iZA9IjXbu6giKBUgwHtkqldL23hrfVrlP9VvkU+s+kB4ChcR11S+o20PRMzz/4wqmcA+5dnq9HPN/Y8aZDGXJlZM/Xu0Ru04GQX3JghyoOtMpgv1+o8uffGcko9jpUQI7r8EY/i7jffl/xfM0e6s9Kml9l//03rO+R9PcKixQ+Lunmqhqt3zkO9WNYrWdcR10yk0tRkhol/fpQ+SbLO/8elob8eWgac0AKpCp4EpSoFwKgYp9PegCGfFsGChggNqaOun3T83Wj52tquWjRZM/Xez1f35O0TdLPFS5kRh+iDVOvq/M8X5Mq/SHP19kKnwrjIMo7yeYkPY4acNDgretotwYfqKrUFZ4/tB2t5SN/Uc5j2w+xa5TrcGDLJG2KsO9+jZLu9/w37mQ5GM+X7fn6kswGNm6KoI00z3GoH6xnBu8XBttukfRQubDmAs/XKM9Xq+drrufrZknP6QA7+lJkmZgDEpeqwCQwPATkmIzPctfRPUkPwgTXkScNLmcLUsnUEQlb0v9RuMjbqfBYxm2S/lSvLxhxqJs2U4mybVW407e8O+Y+KZKKvsPZQplbs3mSDo/p6xhD/4Z+CweohDmk4jiD9GPP14xKfsDzlVeYU7jiG+BDGMzxQ67DPlxHJUnfjLDvfY2S9D+erz8bqEqr52szz86rAAAdlUlEQVSawmP2f2toLJL0gOvo6QjaSfMch/rBembw4rhfukLhzshtknZIekJhgK0phr6HjDkgHVIVPAmKBY5yY3iwrKRHUC8+kfQADPuSzO1KgFmbEu7/oDdt5SM9pl5XCz1f3y0HGg7K8zXF83WfwoV/XHN/WqpjDsX5Btte4TrqjOmrTeZ260lh7qpDHZu633DfT3i+/nSgmw9J8nxNlvSgpIsjHsd9g/gersMb/ZfMHE+Wwpvy/5T0jOfrbzxfs/fZUTTF8/V+z9cvJT0j6QxDY+gX1a7UTRG1M1QEJsF6pgLl+Xe5gbEMF8wBCUtVIDAo9dXyTQNQZpVkZ6KsKokD+5braGXSgzDJddTp+fqszD3FgznrE+5/oPxbz8rc4ueDkhZ4vv5d0hLpj8cpR0uaK+kSSRcY6vtQUv3EfgCHyp1YrScNtn0gy6XKdtRVaJF00CT8SxUW7mg5yN9Xq1nS9yR9vnz09FFJGxTuSm1U+B6Yo/DI+TsV/Tq8IOnuQXwf12E/rqPtnq9vS/rLiMeyr6mS/tlg+wNZ7DqRvd/TPsehfiS5nrlI0efGHYyhrme+q7AAGvbDHJC8VAUmLSvTm/QYgOpZkmwCk2a1Sbo+6UHE5DuSPiazN/KDYaqa33D1h4T7HzPA36+S2aeykxQm7kaVysdixxns4gmDbR/I44q++uW+ztVBKvu6jno9X7cb7l+SJkq6wXAfB3Kv6wy8e4jrcFD/rPCapPUoZjVKinbdlPY5DvWD9czg3S7p66rtB7UmMQckKFVHua1Sgeo3GAaskjjJbVJJ0tXlHIzDnuuoIOkjCv/dSVkr6fsJ9l+L1iXc/0DH3B6OZRTpYmp3mGkmd0tK8e+YNN3fnHKxoIP5ruH+k1RJTjSuw37KxXK+FvFY0uLbEecVS/sch/rBemaQysXPbo14LMMGc0CyUhWYlJ0hMImaFvT/gRyTJn3edbQs6UHEqbzt/p8S6r4g6UqZy7syXK1OuP+BjrktUbgLtp6ka80zeCbzS64f4s6yIXMdrZO5whlS+Hs+aDDXdbRC0mMG+0/Ks66jxYP9Zq7DQX1JZl+fSdgu6bMRt5n2OQ71g/VMZVJZkTlFmAMSkqpFemDlCExiGCAoadDdkr6Y9CAS8jkpkYDsx11HqxLot6a5jrYr2Rxch9xNUn5qfm9MY0mLmtth4/lqktkjaknlGjLd77kD/P0XDPefhKEktOc67Md11Cnp0xGNJS2ui/oBRNrnONQP1jOVcR2tl3RXhGMZVpgDkpOqwKSlUqpyXgJDEchSYOfIMRm9FZKudJ1EjzQnpvzvvkzx3gh823X0rRj7G26q2bVTrcEsWm8xPop0GZ/0AIZggczmdo07v2S//zHc/iGPv7uOHpD0gOExxGm56+iOSn+I63BgrqMfavhclzuiuCYHkfY5DvWD9Uxl0vRQalPSA9gfc0AyUhWYVL7V23sWFqhBgRQoX1JDY70dKTBtjaRzXUddSQ8kSeWnXW/T3qqAJv1E0nUx9DOc/TzBvgc85lY+7pj0cbyD6VT0T/RNFpAxZaCdf9Uarjsmx3m+Zg7wPZ/U8Dj+16swD/FQcR0O7BrV/nG+9ZI+ZLD9VM9xqB+sZyrjOlot6acRjaUa3ZKuTXoQB8EcELNUBSbtw45vC/okFcVpWNSmkmRZdpflNHcmPZRhZIWkt9XCFvQ4uI7aJJ2qsCCNKd9WWGCoLnenRugxJfckeJTnD2qOr+rYoyElSe+W9OuI2z0u4vbiYLLwTbeUWCL0FQrz15o00K7JZyX9neExxOHT5X/LkHAdDqxcBOFKJVt4rhpdki4zXCiwFuY41A/WM5X5tKTdEbRTjc8o+UJaB8QcEL9UfaDnjnrTquCoS3/ap6N2B0U7DE4SoETa9b9G+6SSfcTu0lELfizHXZHomIaPeyS9vZzLCGX7BCfvibjpboV5SK4lKFm98jW8OcEhDGbX5D2SfhXDWCrxSdfREkkbIm53dsTtGeX5mihpisEuVrqO8eDgAbmOumV+d8tgdpt+VdF/jsbpO66jb0TQDtfhAMpH3Wsx11hB0iWmK7DWwhyH+sF6pjLlwNtnIhjLUP3KxOd2lJgD4pWqwGTm8AXt+QXXX9s466qP2WpZUfIzKnoKLy0BSqRUsEcKCk5vZuTMJU0nXvOZprdc9LXs2Evbkx5XjStI+jvX0UXlpNbYj+vIcx1dpOiOGtwraTo5JSP3bUlJfR4M9qbtWoVHjdLgs66jr5X/vCbitqd5vlojbtOkRYbbT+oYd7/lhts/o1w86KDKgZX3Kb1HAA/lbkWUboPrcHCuo69K+rKp9g0oSPpA+YY6DrUwx6F+sJ6pQHnNn0ThoA0KdyOmHnNAfFIVmJSkEc4cr3nml3+YbTj2yuzk6z9jnfzZu0uNU9pL3baskghQInmWZFmSeiT1NffaM/50sTX2Qx/KjpnygcYTb/pWvmVhzWyZTqknJf2J6+ifkh5ILXAdfV/S8ZI+q8pzT/ZKukPSqa6jC10n8ie6da+8Myypp62DKg5Q3oF7teGxDMaXXUdf7P8frqN2RXvDa0uaH2F7ppnOL5lU4Zt+jxtuPy/prIG+qZy7+B2K/sbRpO8rPKIV2Y5XrsPBuY6ul/T/TPYRkV6F1+MncXVYC3Mc6gfrmSG5WvEep94t6aJy9euawBwQj9QFJvs1vWfV+pFn3vgvmcnzP5Ydu/BCa9Rb/7HLPnFzwW9MemioY5akYret7r5p0gl//sMRMz90YX7aomsPO+frtzae8fM4CpIMZ08q3HZ+Wq1tPU9aeffkFyUdI+ntkv5F0qN64yKoQ9IqSd9RuBA5ynX0btcRqQcMKi8Qbk+g60HftLmO7pX0cYNjGchnygu//UV9LOuSiNszwvOV1SCCalUa7jsmJemcwXxTOV3I6Qo/N9OsIOl619E1JtJtcB0OznX0OYW7sdJaKGizpNPKx1ljVQtzHOoH65nKlAOE5yiewpr9R4xr6QGYJOaAOGSTHsBA3Nazt+jMs7f0bPjO05nGI/4nWPlvHwk6fnOBsl3h8Rx2UCIOgcLUt1br1vyks+5tmPruR/Kjpi7JZmduSf2bKN3WKtyx97NanKTSpnyDtrT89UeeL5uckYm7RtJESXNi7LOiY26uo2+UiwncrPgeXHYoLLR0sAX7nZI+GGF/7/R8ZZPKrViBeZKaDbbfVs4vlRjXUZvnq03SeIPdnKdB3qC6jjzP19sVFlD4G4U7LtNkrcLjWUYfJHEdDs519G3P10pJt8ls/tdK3SrpEwkXCUz9HIf6wXqmMq6jTZ6vMyXdL2ly9UM7oC6FOyWXGGrfOOYAs1K7Y3J/DZM+3Dty3CVLRk5c8BHLGfeNYPSHFwfWm7aqYJmv64j6VZCCoqPAelN7cOS773Zm/8PlzvS3f3zE2Pf8MJedyQ7Jyu2W9ICk6yW92XX0ZtfR5whKmhVRUNJkkGTY2+eY5GMxdjum0h8o50M6X9LW6IfzBndJesshFvGStFjRPsVvkfmdiFEwfYw76d2S/Uzvmpzk+Zo02G92HRXKuyKmK8xdmAaewjnzxLiCcVyHg3MdrZL0FoXpU7qSGkfZCoUFAq9O+oa0VuY41A/WM5VxHa1XWFhzcVRt7mODpLfWclCyH3OAOTUTmOxnzfwHz738hesbz/7MNZkTLvyA1XzyN4IRM9YViw0KyEGJKFhSUJSKhQYVm05eZTe96YvO7A9cmT/9fdfl3vzxZZkj/zzpD6G061ZYjGW9wsntqwq3vp8i6TDX0Tmuoy+7jtYmOEZULm27ZmqO68hTeNT+n6RYdrAOKZjsOlos6c0Kj/ybePS3WOFxk8sG2rVXDqr/V8T9XxZxeyaYLnyTdH7JfqbzTEpDuJauo/Wuo0sknSDpG0qmmMImhYG4Y8tzZuzHx7gOB+Y66i2nTzlW4c7SOB9UFxQGQd7hOjrVdV5/QiJJtTLHoX6wnqmM66jDdXSuwvu2KAJd3QrTS51YDugNC8wBZlhBECQ9hqp1d/5mas9T//ppbbvv4qB71ygrpxo4pI5UKkhBr2TZje3Wm6643Z724ZuaR53WlvSwDsXz5So9Dxl218ARyQPyfDUr+k+O7nJi+Jrn+fqlpAsibrbbdeQMcTw1/fsq7+L6hKSrpMgqRa9TuBPuYUnLXEebqm3Q8zVB4TivkDS2yrHdIekHrlNZkvVyvsUob0ALrqPdFfRv4jP2kK+1GD7XU/FZbeB3eyBVv6/L45wv6SJJZ0iaJTO/n6clLVF45O/JtKXg4DocWPnI6EKFOd/OkzQh4i62Slom6T5J99bCzphameOGwvOVl9RksIvYP59N/ZvSVOCE9UxlPF8tkj4q6TpVnnKlQ2EQ9uaBArblz093SIM8sFL5IUlsmAOiMSwCk5Kkl/6zsefJX5zV7Y67rFTYNF/bnphs2117b1uHyT8TBliSSlJQzKrUevq6/OhTFjdau36ZnXzKY2r90LAIKqF2eL6+p/BoxnqFubRe2OfPm5IKJni+/lfhTWikzbqODou4zZpSXszMVZhT8CSFuX3GKlykNWnvTtVehU+eOxQ+mW1TmOj6eYU38WvKR+lMjnO2wmDEqeVxTiiPc9/dtJ0KF1CbFL5mn5K0PKkbSMAEz1eTws/DKZLepL3v21Hlr0Yd+EarS+F7pEPhe3iT9r6HV6XpJn4wuA4H5vkapzDX4kxJx0uapLBQyyiFxy/3D+Z2KTyq3qG9n58vKPwMXVXLn5+1MsehfrCeqUz5es1TmKphjqSpksZp77UqKHzPrlNYYPPXkh5Nw8PPpDAHDM3wCUyW7Wl/rLm35+U5ua2/nVna+OtLiq+9MF+ZHtmNJYKTeKOiVOrJl+z8EWtz42f9qjTjff+dO2L+yobssYkfFUJ98nz9t6SLD/LXJYWT1bry175By80md5V4vnYp+p1NG1xHx0fcJgAAAACgRgy7wOS+it6j4/e8svqqwvpfXZLpWD1RpVdHc8QbfwxQ943oDg6fucae9qFv5np7l1g7l7Y3vvXnBCSRKM/XLyS9cwg/WlCYXHrfoOU6SetcR1WlIyg/+Xu5mjYO4lHX0ZkG2gUAAAAA1IBhHabLuPPbckHXl0ce3fT90osnTuva+Pw1fTt/f4EVtLXY6pUySY8QsQoklSyVrDHdduNxa7P5V3/VdPq7b7GO/NCm8BuuS3J0QL+h7krMKjxON2X/v/B8neY6VVXhnVfFzx7KJkPtAgAAAABqwLAOTEqSc9iikqT2zHS156a/tNzaunx+8MydlxXbV88r9bw41Qp6sza1Zoe1oCiVSrbsojqz7qQVDfP+6s7M0Wf+KqcZqS5qg7plIq/puVJVgcmLohrIfjYZahcAAAAAUAOG9VHuQ9m1/nsTu19efV3m1Sffae9ZMdXKau8Oyvq8JMOHpfLuyPAryE3YHow5/9Fstuu2EQ27F9tz7zBSvQyIQhVHuQ9lk+vouCGOZ5SkF2WmAuUlrqO7DbQLAAAAAKgBdRuYlKRC6ckmvfzEtN4Nv393b/vy9wS7/jDRyhRk5RQGt1CTgoKkQk5qmtSRzTrLGyfMucWec+2jtnVyTVd5RH3wfP1I0lUGmr7adXTrEMbz75I+amA8knS062iLobYBAAAAAClX14HJfsXCBrtr62/OCjb8+hJtWTmv9NrvZ9kNUpAVuydrhSVZgVTqlezMmLbguHOX2m+68MFG31ucO+5Ptyc9PGCwPF83SfprA013SDrddbS2grFcJelHBsYiSVtcR0cbahsAAAAAUAOGfY7JwchkJ5VGjpu0ZI/37GN289GjuzNXXu+vX/Ke3M7ftGRyr2VlJz1CDKgno67Gt3TkJ5z6HyOnzr+tq3vL5pFjL+XINmrRS4babZX0hOfrY66jnxzqGz1feUl/I+kGQ2ORpGUG2wYAAAAA1AB2TB5Ab3FlU6bQPr60+qcLuv+w/OOlYOs0BV22LK5VqgRSUBohZY/eMmL8lO/Y0y/5hd/e83Tz9OsKSQ8NGCrP1zsl/cJwN2sk/UBhcLBNYcGdRoUVvd8u6YOSxhsew+Wuo9sN9wEAAAAASDECkwMo9K6d2PXS/7y39Nuvf8DqeWZyUCxlrYzCQjlcuvgFYQ5JK7BKQcPxm4Npf7a0YdKCHzRs/OmKzIlfMVHNGIiV52uCwmIzw1lB0hGuIy/pgQAAAAAAkkNgchC6Ou9uzDx759Q+z17U528+R97Tc+3Ma42yinsrQMOc/kJExZyCUq5UyBy/xTn2tB/mjj7xR37DUW3ZlmO6RoyYXUp0jECEPF/bJI1KehwG/cp1dH7SgwAAAAAAJIvAZIV2v7p0bGbTT95feO62awuF7kkKSrIbJfJQGmJJgV/+Y37Muobj3nF7MGnRQ864K5clOi7AIM/XzyS9J+lxGHSJ6+jupAcBAAAAAEgWxW8q1DzmrPagsOxfu/4wfll2xjUnF3o2XRasv2OOVdzhWjkpYAdlJCxJQUlSwVIw8aLlQWnUj7Kdy1Y2TpqxSuOuZHckhrv7NXwDk1sl3Zv0IAAAAAAAyWPHZJV6/MWjMy8/O7l78+qzuresvs7q3jAu6+xJelg1rVSwVQyOacuOcJc1NR3+UM+M9z4w8tjrtiQ9LiAunq9WSa9Iyic9FgM+7zr6x6QHAQAAAABIHoHJiBS8p7KFnm0LtPEXby9uXHpxofvlqcr2hLsnrQF/vL7t+xIsZUv2Eacvzc/7yxtLbbtXO295f2di4wIS5Pm6TdJ7kx5HxDxJx7qOeF8DAAAAAAhMRi148f81l/zcjG57/DW9T9+yyNqzptUq7WhWTmEeSi736xUk2SMLpdykrfYRb1meazzmR1l3z5r8if+2IemhAUnyfM2X9EjS44jYZ11HX0x6EAAAAACAdCAwaYivTWMLG+4Zl9v29NSeV565pvDa82fZwU7bzoodlJYU9EklNZayzbOW5w476k7ruLmrrLEz1jWMOK896eEBaeH5elDSwqTHEZE2SSe4jrqSHggAAAAAIB0ITMbAb/+vcX3b2j+sDfedW9r+xGzLCrJqSHpUCQgk9YRFbeyWSet03OU/zk04/9vO6NMJRgIH4PmaLekphfuta92FrkPRGwAAAADAXgQmY9S74sqJ3dakub2vrb3aennJ2Rl1Zq2chv/xbktSSSrYx5SsiWeuyu8p/TKfL9yTP/Nnq5MeGpB2nq+vSPpU0uOo0ndcRx9JehAAAAAAgHQhMJmA7s7Fk4K25Qt7n/75lcXdG+db+R7ZeQ3LAGVQkIK+bCGbH/Gkffyin9vz/n6JY814NulxAbXC89Uk6TeSpiU9liFaKemtrqPupAcCAAAAAEgXApMJ6n35vkk9rz53RWnT7ZcE3vNTZHnNVjbpUUWg/JKyCiO7g9Fzn8wd/+5bcq/9blluzje2JDswoDZ5viZK+q2k1oSHUqkNkk5zHW1NeiAAAAAAgPQhMJmwUmFlvrThnknFzl0nd3fuuK6v/bdzMsHGvG37tZdVrhTmjyxZx3Rn3RlPZoqbHsud+oEf58dfvzbpoQG1zvM1R9KDktykxzJIayW9w3XUlvRAAAAAAADpRGAyRXZr84zuF5fOzm/89UnBKysWlLpfnGHZRTvtuyiDYviVaRzTbh8+Y3lp2oUPNkx43+0NGt2R9NiA4cTzdbKk+ySNTXosA1gi6d2uo86kBwIAAAAASC8CkynlP/dPU/1tbR/JvPLQu7Rn7QTllK4dlJakoqSSZDVNbi+MOHlF/rC3fL359L9fkvTQgOHM8zVa0i2S3pn0WA6gW9LnJP2r66iU9GAAAAAAAOlGYDLFevueaNbz987t3bHtnN5XHrlUXZsnZXLdUkbJFcopBySLvRlp5AmdmVzDY/nDW5/KnPjXX80fvmh3QqMC6o7n6zxJX5I0M+mxSCpJ+qmkz7qONiU8FgAAAABAjSAwWSO62u9YWHz2x1eXNj1wgeyuVmUV7qCM+dcX9GVkZ0dvyhx79qPWcec+bJd67y6u+Yf8iPP+QHELIAGer7MlfUjhDsrGmLtvl3SrpG+6jjbE3DcAAAAAoMYRmKwhhT/8Q7M2bp/RVcpeV/CeWmjtemaUnduVl2W446KlYvHw7uCw6VvsoLSieeLb/l1HjFqVm/iJLsM9Axgkz1ezpAskvU3SAklTDHW1WtJSSfdLWsqRbQAAAADAUBGYrEG9bQ+32Ef0TOp58PrLCx0vXVzKWhMtdeQtSZEFKQMpUEaWRnZb3f663NRF38vO+dTS7qd+sGnkW7/rRdQLAEM8X6MkTZM0VdJ0SeMkjd7nK6s3VvjuVZgn0pO0ReGOyDZJv5e0RtLTriPe/wAAAACASBCYrHHda7/b3H34UVfpNzdfY3esnFwqdbbKlqzM0NoLygVtlMl3aexFy3Ozrr058/xdDzSe8e+FKMcNAAAAAACA+kZgcjjY85At77lRPa+8NM/f8sLVgff0AjvY1CoVwx2UA/2Ky99jqVkl68it1sjpj+YzjQ8600+9Q8f+dUcM/wIAAAAAAADUGQKTw0x33/rm0rq7zyutueUjha4tC4I+P2s5xXAH5f6/aksKClLQk5VlFXqzjePW2Cd94isas/COplEn9yYxfgAAAAAAANQHApPDVNdtJ40vHnf62UU1XK6Nd8yyureMVr4gq5yDMihJ6ssqsFs7Neldy/Ijx/84WPfNDbn5/7A6P/aDFLMAAAAAAACAUQQmh7ldr9w6umH3xil9zz9yUU9n2xU93YVRlqVSQ06bGkcff3v+uNN+3XvUSWsd9yKObAMAAAAAACA2BCbrRNdD78nr2PMW9B42YoqKDbszf3hqVa77mWcb3343RW0AAAAAAAAQOwKTAAAAAAAAAGJnJz0AAAAAAAAAAPWHwCQAAAAAAACA2BGYBAAAAAAAABA7ApMAAAAAAAAAYkdgEgAAAAAAAEDsCEwCAAAAAAAAiB2BSQAAAAAAAACxIzAJAAAAAAAAIHYEJgEAAAAAAADEjsAkAAAAAAAAgNgRmAQAAAAAAAAQOwKTAAAAAAAAAGJHYBIAAAAAAABA7AhMAgAAAAAAAIgdgUkAAAAAAAAAsSMwCQAAAAAAACB2BCYBAAAAAAAAxI7AJAAAAAAAAIDYEZgEAAAAAAAAEDsCkwAAAAAAAABiR2ASAAAAAAAAQOwITAIAAAAAAACIHYFJAAAAAAAAALEjMAkAAAAAAAAgdgQmAQAAAAAAAMSOwCQAAAAAAACA2BGYBAAAAAAAABA7ApMAAAAAAAAAYkdgEgAAAAAAAEDsCEwCAAAAAAAAiB2BSQAAAAAAAACxIzAJAAAAAAAAIHYEJgEAAAAAAADEjsAkAAAAAAAAgNgRmAQAAAAAAAAQOwKTAAAAAAAAAGJHYBIAAAAAAABA7AhMAgAAAAAAAIgdgUkAAAAAAAAAsSMwCQAAAAAAACB2BCYBAAAAAAAAxI7AJAAAAAAAAIDYEZgEAAAAAAAAEDsCkwAAAAAAAABiR2ASAAAAAAAAQOwITAIAAAAAAACIHYFJAAAAAAAAALEjMAkAAAAAAAAgdgQmAQAAAAAAAMSOwCQAAAAAAACA2BGYBAAAAAAAABA7ApMAAAAAAAAAYkdgEgAAAAAAAEDsCEwCAAAAAAAAiB2BSQAAAAAAAACxIzAJAAAAAAAAIHYEJgEAAAAAAADEjsAkAAAAAAAAgNgRmAQAAAAAAAAQOwKTAAAAAAAAAGJHYBIAAAAAAABA7AhMAgAAAAAAAIgdgUkAAAAAAAAAsSMwCQAAAAAAACB2BCYBAAAAAAAAxI7AJAAAAAAAAIDYEZgEAAAAAAAAEDsCkwAAAAAAAABiR2ASAAAAAAAAQOwITAIAAAAAAACIHYFJAAAAAAAAALEjMAkAAAAAAAAgdgQmAQAAAAAAAMSOwCQAAAAAAACA2BGYBAAAAAAAABA7ApMAAAAAAAAAYkdgEgAAAAAAAEDsCEwCAAAAAAAAiB2BSQAAAAAAAACxIzAJAAAAAAAAIHYEJgEAAAAAAADEjsAkAAAAAAAAgNgRmAQAAAAAAAAQOwKTAAAAAAAAAGJHYBIAAAAAAABA7AhMAgAAAAAAAIgdgUkAAAAAAAAAsSMwCQAAAAAAACB2/x/Aoxd+oJXu7QAAAABJRU5ErkJggg=="}},"time_used":20,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":19,"receive":1,"ssl":0},"alerts":{"ids":null,"analyzer":[{"sensor_name":"dns4eu","sensor_type":"DNS","title":"DNS4EU","description":"DNS4EU","scan_date":"2026-07-27","alert":"Sinkholed","trigger":"digital-assettrade.com","verdict":"malicious","severity":"medium","comment":"","link":"https://www.joindns4.eu/","meta":null}],"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/13492.2c77730d1125a4985bdc.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:13.877Z","timestamp":1785148033877,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/13492.2c77730d1125a4985bdc.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:13 GMT\r\ncontent-type: text/css; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding, Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\netag: W/\"69f98b74-576\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Tue, 05 May 2026 06:17:24 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.51\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 05/05/2026 10:16:42\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 917f7a05764b7d98aab53bc0d9c387aa\r\ncdn-cache: HIT\r\ncontent-encoding: br\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":1398,"size_decoded":1347,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with very long lines (1398), with no line terminators","md5":"88088354fa104e0cdaa0351d0833f141","sha1":"674bbd4045db55c1c49a9f3af542cd275937376a","sha256":"c42ecd718858fd3cceedecc55ab1cf73c0ccdb74827944445c7c052992794a35","sha512":"4053448b9df28fb4c2a0b6b1789292a442298ab528e1048e9bb0152879454c993e76ea915c66ca4b0cbfcd35b123a8733dfc67fd7b9ee87d99ddc0bcfb60a2a6","ssdeep":"","tlshash":"8d217d9afbd91169a713f1355100bfc9ed5a7f60c7532395f6caf210c0caae85c75888","first_seen":"2026-04-09T17:47:32.54555Z","last_seen":"2026-07-27T12:53:06.186058Z","times_seen":621,"resource_available":false,"data":"W2RhdGEtdGhlbWU9ZGFya10sW2RhdGEtdGhlbWU9bGlnaHRdey0tXzAtYldRMjp2YXIoLS1jb2xvci10di1ibHVlLTUwMCk7LS1fMS1iV1EyOiMwMDAwfS5jb250YWluZXItekxWbTZCNHR7YWxpZ24taXRlbXM6ZmxleC1zdGFydDtiYWNrZ3JvdW5kOnZhcigtLV8wLWJXUTIpO2JvcmRlci1yYWRpdXM6NHB4O2N1cnNvcjpkZWZhdWx0O2Rpc3BsYXk6ZmxleDtvdmVyZmxvdzphdXRvO3BhZGRpbmc6OHB4fS5jb250ZW50LXpMVm02QjR0e3BhZGRpbmc6NHB4IDhweH0uYXJyb3dIb2xkZXItekxWbTZCNHR7cG9zaXRpb246YWJzb2x1dGV9LmFycm93SG9sZGVyLXpMVm02QjR0OmFmdGVye2JvcmRlcjowIHNvbGlkO2JvcmRlci1jb2xvcjp2YXIoLS1fMC1iV1EyKTtib3gtc2l6aW5nOmJvcmRlci1ib3g7Y29udGVudDoiIjtkaXNwbGF5OmJsb2NrO2hlaWdodDowO3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjB9LmFycm93SG9sZGVyLS1hYm92ZS16TFZtNkI0dDphZnRlciwuYXJyb3dIb2xkZXItLWJlbG93LXpMVm02QjR0OmFmdGVye2JvcmRlci1sZWZ0OjZweCBzb2xpZDtib3JkZXItbGVmdC1jb2xvcjp2YXIoLS1fMS1iV1EyKTtib3JkZXItcmlnaHQ6NnB4IHNvbGlkO2JvcmRlci1yaWdodC1jb2xvcjp2YXIoLS1fMS1iV1EyKTtsZWZ0OjUwJTttYXJnaW4tbGVmdDotNnB4fS5hcnJvd0hvbGRlci0tYmVsb3ctekxWbTZCNHQ6YWZ0ZXJ7Ym9yZGVyLWJvdHRvbS13aWR0aDo0cHg7Ym90dG9tOjEwMCV9LmFycm93SG9sZGVyLS1hYm92ZS16TFZtNkI0dDphZnRlcntib3JkZXItdG9wLXdpZHRoOjRweDt0b3A6MTAwJX0uYXJyb3dIb2xkZXItLWFmdGVyLXpMVm02QjR0OmFmdGVyLC5hcnJvd0hvbGRlci0tYmVmb3JlLXpMVm02QjR0OmFmdGVye2JvcmRlci1ib3R0b206NnB4IHNvbGlkO2JvcmRlci1ib3R0b20tY29sb3I6dmFyKC0tXzEtYldRMik7Ym9yZGVyLXRvcDo2cHggc29saWQ7Ym9yZGVyLXRvcC1jb2xvcjp2YXIoLS1fMS1iV1EyKTttYXJnaW4tdG9wOi02cHg7dG9wOjUwJX0uYXJyb3dIb2xkZXItLWJlZm9yZS16TFZtNkI0dDphZnRlcntib3JkZXItcmlnaHQtd2lkdGg6NHB4O3JpZ2h0OjEwMCV9LmFycm93SG9sZGVyLS1hZnRlci16TFZtNkI0dDphZnRlcntib3JkZXItbGVmdC13aWR0aDo0cHg7bGVmdDoxMDAlfS5hcnJvd0hvbGRlci0tYWJvdmUtZml4LXpMVm02QjR0e2JvdHRvbTowfS5hcnJvd0hvbGRlci0tYmVmb3JlLXJ0bC1maXgtekxWbTZCNHQ6ZGlyKHJ0bCl7bGVmdDowfS5hcnJvd0hvbGRlci0tYWZ0ZXItbHRyLWZpeC16TFZtNkI0dHtyaWdodDowfS5sYWJlbC16TFZtNkI0dHtkaXNwbGF5OmZsZXg7ZmxleDoxIDEgYXV0bzttYXJnaW4taW5saW5lLWVuZDoyNHB4fS5jbG9zZUJ1dHRvbi16TFZtNkI0dHtjb2xvcjp2YXIoLS1jb2xvci13aGl0ZSl9"}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/70656.ce4fb4dfd959eefc84c7.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:13.969Z","timestamp":1785148033969,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/70656.ce4fb4dfd959eefc84c7.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:13 GMT\r\ncontent-type: text/css; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a5dbd8a-9de\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Mon, 20 Jul 2026 06:17:46 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/20/2026 11:21:48\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 44cc0c20bdc304dabb787dc39c460ef5\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":2526,"size_decoded":1471,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with very long lines (2526), with no line terminators","md5":"b42a9e7d525b085dd6a8b47f0de67234","sha1":"3f0eec62020fc6a548ca79f106d4977314a8c1fe","sha256":"9dcf914fe1e67e14d06fe012bbdf425fcf085e0e703d42d1f360e3b840a4fc8c","sha512":"c899b211a18c733fd09e7fe54459d19a86b71efb75553f219188672793ad1aba396df2fb87b1e4fafb0dedd93bd4341004cdeb0a9a6339c3183e5a08237c2e3f","ssdeep":"","tlshash":"b8513c88f161b43f2e4f71290318c16c73267591ef820bb9f826f5d401d6feba6a6715","first_seen":"2026-07-20T16:56:18.412108Z","last_seen":"2026-07-27T12:48:39.706259Z","times_seen":109,"resource_available":false,"data":"W2RhdGEtdGhlbWU9bGlnaHRdey0tXzAtZzctcjp2YXIoLS1jb2xvci1iYW5hbmEteWVsbG93LTcwMCk7LS1fMS1nNy1yOiMwMDAwfVtkYXRhLXRoZW1lPWRhcmtdey0tXzAtZzctcjp2YXIoLS1jb2xvci1iYW5hbmEteWVsbG93LTgwMCk7LS1fMS1nNy1yOiMwMDAwfS5mYXZvcml0ZS1Rd0tXU1VtYXthbGlnbi1pdGVtczpjZW50ZXI7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS10di1saXN0LWl0ZW0tYnV0dG9uLWJhY2tncm91bmQtY29sb3IpO2JvcmRlci1yYWRpdXM6NHB4O2NvbG9yOnZhcigtLXR2LWNvbG9yLXBvcHVwLWVsZW1lbnQtdG9vbGJveC10ZXh0LHZhcigtLWNvbG9yLXBvcHVwLWVsZW1lbnQtdG9vbGJveC10ZXh0KSk7ZGlzcGxheTppbmxpbmUtZmxleDtmb250LXNpemU6MDtoZWlnaHQ6MjJweDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO21pbi13aWR0aDoyMnB4O3dpZHRoOjIycHh9LmZhdm9yaXRlLVF3S1dTVW1hLmhvdmVyZWQtUXdLV1NVbWEsLmZhdm9yaXRlLVF3S1dTVW1hOmFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXR2LWNvbG9yLXBvcHVwLWVsZW1lbnQtdG9vbGJveC1iYWNrZ3JvdW5kLWhvdmVyLHZhcigtLXR2LWxpc3QtaXRlbS1idXR0b24tYmFja2dyb3VuZC1ob3Zlci1jb2xvcix2YXIoLS1jb2xvci1jb250YWluZXItZmlsbC1wcmltYXJ5LW5ldXRyYWwtbm9ybWFsKSkpO2NvbG9yOnZhcigtLXR2LWNvbG9yLXBvcHVwLWVsZW1lbnQtdG9vbGJveC10ZXh0LWhvdmVyLHZhcigtLWNvbG9yLXBvcHVwLWVsZW1lbnQtdG9vbGJveC10ZXh0LWhvdmVyKSl9QG1lZGlhIChhbnktaG92ZXI6aG92ZXIpey5mYXZvcml0ZS1Rd0tXU1VtYTpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXR2LWNvbG9yLXBvcHVwLWVsZW1lbnQtdG9vbGJveC1iYWNrZ3JvdW5kLWhvdmVyLHZhcigtLXR2LWxpc3QtaXRlbS1idXR0b24tYmFja2dyb3VuZC1ob3Zlci1jb2xvcix2YXIoLS1jb2xvci1jb250YWluZXItZmlsbC1wcmltYXJ5LW5ldXRyYWwtbm9ybWFsKSkpO2NvbG9yOnZhcigtLXR2LWNvbG9yLXBvcHVwLWVsZW1lbnQtdG9vbGJveC10ZXh0LWhvdmVyLHZhcigtLWNvbG9yLXBvcHVwLWVsZW1lbnQtdG9vbGJveC10ZXh0LWhvdmVyKSl9fS5mYXZvcml0ZS1Rd0tXU1VtYS5kaXNhYmxlZC1Rd0tXU1VtYSwuZmF2b3JpdGUtUXdLV1NVbWEuZGlzYWJsZWQtUXdLV1NVbWE6YWN0aXZle2JhY2tncm91bmQtY29sb3I6dmFyKC0tdHYtbGlzdC1pdGVtLWJ1dHRvbi1kaXNhYmxlZC1iYWNrZ3JvdW5kLWNvbG9yLHZhcigtLV8xLWc3LXIpKX1AbWVkaWEgKGFueS1ob3Zlcjpob3Zlcil7LmZhdm9yaXRlLVF3S1dTVW1hLmRpc2FibGVkLVF3S1dTVW1hOmhvdmVye2JhY2tncm91bmQtY29sb3I6dmFyKC0tdHYtbGlzdC1pdGVtLWJ1dHRvbi1kaXNhYmxlZC1iYWNrZ3JvdW5kLWNvbG9yLHZhcigtLV8xLWc3LXIpKX19LmZhdm9yaXRlLVF3S1dTVW1he291dGxpbmU6bm9uZTtvdmVyZmxvdzp2aXNpYmxlO3Bvc2l0aW9uOnJlbGF0aXZlfS5mYXZvcml0ZS1Rd0tXU1VtYTpmb2N1c3tvdXRsaW5lOm5vbmV9LmZhdm9yaXRlLVF3S1dTVW1hOmZvY3VzLXZpc2libGV7b3V0bGluZTpub25lfS5mYXZvcml0ZS1Rd0tXU1VtYTphZnRlcntib3JkZXItY29sb3I6dmFyKC0tY29sb3ItZm9jdXMtb3V0bGluZS1jb2xvci1ibHVlKTtib3JkZXItcmFkaXVzOjRweDtib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLXdpZHRoOjJweDtib3gtc2l6aW5nOmJvcmRlci1ib3g7Y29udGVudDoiIjtkaXNwbGF5Om5vbmU7aGVpZ2h0OmNhbGMoMTAwJSArIDRweCk7aW5zZXQtaW5saW5lLXN0YXJ0Oi0ycHg7cG9pbnRlci1ldmVudHM6bm9uZTtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6LTJweDt3aWR0aDpjYWxjKDEwMCUgKyA0cHgpO3otaW5kZXg6MX0uZmF2b3JpdGUtUXdLV1NVbWEuZm9jdXNlZC1Rd0tXU1VtYTphZnRlcntkaXNwbGF5OmJsb2NrfS5mYXZvcml0ZS1Rd0tXU1VtYS5hY3RpdmUtUXdLV1NVbWF7Y29sb3I6dmFyKC0tdHYtY29sb3ItcG9wdXAtZWxlbWVudC10b29sYm94LXRleHQtYWN0aXZlLWhvdmVyLHZhcigtLWNvbG9yLWNvbnRlbnQtc2Vjb25kYXJ5LWludmVyc2UpKX0uZmF2b3JpdGUtUXdLV1NVbWEuYWN0aXZlLVF3S1dTVW1hLmhvdmVyZWQtUXdLV1NVbWEsLmZhdm9yaXRlLVF3S1dTVW1hLmFjdGl2ZS1Rd0tXU1VtYTphY3RpdmV7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS10di1jb2xvci1wb3B1cC1lbGVtZW50LXRvb2xib3gtYmFja2dyb3VuZC1hY3RpdmUtaG92ZXIsdmFyKC0tY29sb3Itb3ZlcmxheS1uZXV0cmFsLTEtYm9sZCkpfUBtZWRpYSAoYW55LWhvdmVyOmhvdmVyKXsuZmF2b3JpdGUtUXdLV1NVbWEuYWN0aXZlLVF3S1dTVW1hOmhvdmVye2JhY2tncm91bmQtY29sb3I6dmFyKC0tdHYtY29sb3ItcG9wdXAtZWxlbWVudC10b29sYm94LWJhY2tncm91bmQtYWN0aXZlLWhvdmVyLHZhcigtLWNvbG9yLW92ZXJsYXktbmV1dHJhbC0xLWJvbGQpKX19LmZhdm9yaXRlLVF3S1dTVW1hLmNoZWNrZWQtUXdLV1NVbWF7Y29sb3I6dmFyKC0tXzAtZzctcil9"}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/92393.fbb8c271bc4a0b751269.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.536Z","timestamp":1785148034536,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/92393.fbb8c271bc4a0b751269.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\ncontent-type: text/css; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a58ab11-4e2\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Thu, 16 Jul 2026 09:57:37 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/16/2026 11:03:22\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 14976f48d1a9df10ae7526bc80276090\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":1250,"size_decoded":1281,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with very long lines (1250), with no line terminators","md5":"44a088ea878be9ce5aba8c7f81e9689f","sha1":"ada9e67c39474bb0afa4cca99f793d6fa037703d","sha256":"9c6e69b8a3f0eeb5446efa6b4454704151bdfd2b988224abf442ff34c21a12b3","sha512":"eb51b789ac77ae0a0fd05bbb7fab8d16a1474adefa9ffb58c0cb76e42f9436f216d665f04b87d63e4b75867d4720e5c36eb0e85fe6d4a7f29b3ce134846d5298","ssdeep":"","tlshash":"042142d2533421b9f3f3c51b360af7865b02aa1be472368ce3d9aca450c32d216c8c02","first_seen":"2026-07-19T21:33:34.07639Z","last_seen":"2026-07-27T12:48:39.775442Z","times_seen":56,"resource_available":false,"data":"LmJ1dHRvbi1Pd2JHVnlhM3std2Via2l0LWFwcGVhcmFuY2U6bm9uZTthcHBlYXJhbmNlOm5vbmU7YmFja2dyb3VuZDpub25lO2JvcmRlcjpub25lO2NvbG9yOmluaGVyaXQ7Y29sb3I6dmFyKC0tY29sb3ItY29udGVudC1wcmltYXJ5LWFjY2VudCk7Zm9udC1mYW1pbHk6aW5oZXJpdDtmb250LXNpemU6aW5oZXJpdDtmb250LXdlaWdodDo0MDA7bGluZS1oZWlnaHQ6aW5oZXJpdDtvdXRsaW5lOm5vbmU7b3ZlcmZsb3c6dmlzaWJsZTtwYWRkaW5nOjA7cG9zaXRpb246cmVsYXRpdmU7dGV4dC1hbGlnbjpzdGFydDt0ZXh0LXRyYW5zZm9ybTppbmhlcml0fS5idXR0b24tT3diR1Z5YTM6Zm9jdXN7b3V0bGluZTpub25lfS5idXR0b24tT3diR1Z5YTM6Zm9jdXMtdmlzaWJsZXtvdXRsaW5lOm5vbmV9LmJ1dHRvbi1Pd2JHVnlhMzphZnRlcntib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLXdpZHRoOjJweDtib3gtc2l6aW5nOmJvcmRlci1ib3g7Y29udGVudDoiIjtkaXNwbGF5Om5vbmU7aGVpZ2h0OmNhbGMoMTAwJSArIDhweCk7aW5zZXQtaW5saW5lLXN0YXJ0Oi00cHg7cG9pbnRlci1ldmVudHM6bm9uZTtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6LTRweDt3aWR0aDpjYWxjKDEwMCUgKyA4cHgpO3otaW5kZXg6MX0uYnV0dG9uLU93YkdWeWEzOmZvY3VzOmFmdGVye2Rpc3BsYXk6YmxvY2t9LmJ1dHRvbi1Pd2JHVnlhMzpmb2N1cy12aXNpYmxlOmFmdGVye2Rpc3BsYXk6YmxvY2t9LmJ1dHRvbi1Pd2JHVnlhMzpmb2N1czpub3QoOmZvY3VzLXZpc2libGUpOmFmdGVye2Rpc3BsYXk6bm9uZX0uYnV0dG9uLU93YkdWeWEzOmFmdGVye2JvcmRlci1jb2xvcjp2YXIoLS1jb2xvci1mb2N1cy1vdXRsaW5lLWNvbG9yLWJsdWUpO2JvcmRlci1yYWRpdXM6OHB4fUBtZWRpYSAoYW55LWhvdmVyOmhvdmVyKXsuYnV0dG9uLU93YkdWeWEzOmhvdmVyOmJlZm9yZXtiYWNrZ3JvdW5kOnZhcigtLWNvbG9yLWNvbnRhaW5lci1maWxsLXNlY29uZGFyeS1hY2NlbnQtZXh0cmEtbGlnaHQpO2JvcmRlci1yYWRpdXM6NnB4O2NvbnRlbnQ6IiAiO2hlaWdodDpjYWxjKDEwMCUgKyA4cHgpO2luc2V0LWlubGluZS1zdGFydDotNHB4O3Bvc2l0aW9uOmFic29sdXRlO3RvcDotNHB4O3dpZHRoOmNhbGMoMTAwJSArIDhweCl9fS5idXR0b24tT3diR1Z5YTM6YWN0aXZle2NvbG9yOnZhcigtLWNvbG9yLWNvbnRlbnQtdGVydGlhcnktYWNjZW50LWJvbGQpfS50ZXh0LU93YkdWeWEze3Bvc2l0aW9uOnJlbGF0aXZlO3doaXRlLXNwYWNlOm5vd3JhcH0="}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/66270.00f7e02730b456abf26d.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.767Z","timestamp":1785148034767,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/66270.00f7e02730b456abf26d.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\ncontent-type: text/css; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding, Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\netag: W/\"69f98b77-a4\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Tue, 05 May 2026 06:17:27 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.51\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 05/05/2026 10:18:38\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 683e55d10b1a8946bae3031e2c94b02a\r\ncdn-cache: HIT\r\ncontent-encoding: br\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":164,"size_decoded":893,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with no line terminators","md5":"67e3d5231c9f9baf431b06f0405af3e8","sha1":"edd6719ffba01d7ded084bd3932ff80d223c1498","sha256":"61a2055dd3f3b5d07ccc1d53754b9ad33cfbc395eb0f205588f949312b3fe65b","sha512":"500db2874025c65340ce2eee5076ca6c76e7fc98b9c63304777bb7c0b3c8885784e14dd952f64b3088502042ddbb297974319bfa3f38667422131dcb7ff2b2ea","ssdeep":"","tlshash":"87c04c73ed25680dd4972fdb4dc9468400d93e004bcf1091e11397982b5a17d557c366","first_seen":"2025-10-21T03:35:36.087855Z","last_seen":"2026-07-27T10:28:13.874762Z","times_seen":27,"resource_available":false,"data":"LmZvcm1UZXh0YXJlYS1NNFJRZGJtTS5mb3JtVGV4dGFyZWEtTTRSUWRibU17YWxpZ24taXRlbXM6c3RyZXRjaH0uZm9ybVRleHRhcmVhLU00UlFkYm1NLmZvcm1UZXh0YXJlYS1NNFJRZGJtTSAuZW5kLXNsb3QtTTRSUWRibU17YWxpZ24taXRlbXM6ZmxleC1zdGFydDtoZWlnaHQ6YXV0b30="}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/67925.cdd77a6972787789a616.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:13.985Z","timestamp":1785148033985,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/67925.cdd77a6972787789a616.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:13 GMT\r\ncontent-type: text/css; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a4360b8-364\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Tue, 30 Jun 2026 06:22:48 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.57\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 06/30/2026 11:55:10\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 5bfba5c97d2fee503768296c15e3a23e\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":868,"size_decoded":1139,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with very long lines (868), with no line terminators","md5":"5edf808790562884db5fdf9a651e2c6b","sha1":"364ae71139050bae7ec40dc7bca05608a6e0a6c3","sha256":"7aa320556bada28195947d3777837009a4c4a5cbcd0ba6412ec4649351997aa3","sha512":"20ca4cbeb3d8d8ca78780490a1023af097a10fbdbeec82d3cc26bd10019f432db48b26cee41dddc68e04a24a4e81a2fd6be1f9910bbb710538b06279e2cea860","ssdeep":"","tlshash":"4511cc59940633ba6772951c2ec657c1ab217dac4873374cf8e1e09f40db785a0097c6","first_seen":"2026-06-30T21:57:43.476727Z","last_seen":"2026-07-27T12:48:39.820849Z","times_seen":222,"resource_available":false,"data":"LmJ1dHRvbi1HYXdwQjBwZnthbGw6dW5zZXQ7ZGlzcGxheTpmbGV4O291dGxpbmU6bm9uZTtvdmVyZmxvdzp2aXNpYmxlO3Bvc2l0aW9uOnJlbGF0aXZlfS5idXR0b24tR2F3cEIwcGY6Zm9jdXN7b3V0bGluZTpub25lfS5idXR0b24tR2F3cEIwcGY6Zm9jdXMtdmlzaWJsZXtvdXRsaW5lOm5vbmV9LmJ1dHRvbi1HYXdwQjBwZjphZnRlcntib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLXdpZHRoOjJweDtib3gtc2l6aW5nOmJvcmRlci1ib3g7Y29udGVudDoiIjtkaXNwbGF5Om5vbmU7aGVpZ2h0OjEwMCU7aW5zZXQtaW5saW5lLXN0YXJ0OjA7cG9pbnRlci1ldmVudHM6bm9uZTtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDt3aWR0aDoxMDAlO3otaW5kZXg6MX0uYnV0dG9uLUdhd3BCMHBmOmZvY3VzOmFmdGVye2Rpc3BsYXk6YmxvY2t9LmJ1dHRvbi1HYXdwQjBwZjpmb2N1cy12aXNpYmxlOmFmdGVye2Rpc3BsYXk6YmxvY2t9LmJ1dHRvbi1HYXdwQjBwZjpmb2N1czpub3QoOmZvY3VzLXZpc2libGUpOmFmdGVye2Rpc3BsYXk6bm9uZX0uYnV0dG9uLUdhd3BCMHBmOmFmdGVye2JvcmRlci1jb2xvcjp2YXIoLS1jb2xvci10di1ibHVlLTUwMCk7Ym9yZGVyLXJhZGl1czo0cHh9LmJ1dHRvbi1HYXdwQjBwZi5hY3RpdmUtR2F3cEIwcGY6YWZ0ZXJ7Ym9yZGVyLWNvbG9yOnZhcigtLWNvbG9yLWJvcmRlci1wcmltYXJ5LWludmVyc2UpfS5mYXZvcml0ZS1HYXdwQjBwZi5maWxsZWQtR2F3cEIwcGZ7Y29sb3I6dmFyKC0tY29sb3ItY29udGFpbmVyLWZpbGwtcHJpbWFyeS1uZXV0cmFsLWV4dHJhLWJvbGQpfS5mYXZvcml0ZS1HYXdwQjBwZi5hY3RpdmUtR2F3cEIwcGZ7Y29sb3I6dmFyKC0tY29sb3ItY29udGVudC1wcmltYXJ5LWludmVyc2UpfQ=="}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","fqdn":"s.tradingview.com","domain":"tradingview.com","tld":"com"},"ip":{"addr":"3.164.240.120","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"subdocument","requested_by":"https://digital-assettrade.com/","date":"2026-07-27T10:27:12.724Z","timestamp":1785148032724,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"tradingview.com","organization":""},"issuer":{"commonName":"Amazon RSA 2048 M04","organization":"Amazon"},"validity":{"start":"Fri, 12 Dec 2025 00:00:00 GMT","end":"Sun, 10 Jan 2027 23:59:59 GMT"},"fingerprint":{"sha1":"93:7A:32:54:9B:07:78:A4:C2:12:01:FE:F8:01:86:4E:F4:B0:E5:88","sha256":"DC:6B:BC:C2:10:66:1A:99:2E:BE:17:BD:A9:27:49:E3:D8:CA:EB:13:B6:95:9C:BF:68:76:22:17:62:D1:05:57"}}},"request":{"raw":"GET /widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en HTTP/1.1\r\nHost: s.tradingview.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-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://digital-assettrade.com/\r\nUpgrade-Insecure-Requests: 1\r\nSec-Fetch-Dest: iframe\r\nSec-Fetch-Mode: navigate\r\nSec-Fetch-Site: cross-site\r\nPriority: u=4\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\ncontent-type: text/html; charset=utf-8\r\ndate: Mon, 27 Jul 2026 10:26:44 GMT\r\nserver: tv\r\nstrict-transport-security: max-age=63072000; includeSubDomains; preload\r\nexpires: Mon, 27 Jul 2026 10:28:44 GMT\r\ncache-control: max-age=120\r\ncontent-security-policy: base-uri 'none'; default-src 'self' https: data: blob: wss: 'unsafe-inline'; script-src https://static.tradingview.com/static/ blob: https://*.ampproject.org/ https://*.paypal.com/ https://platform.twitter.com https://platform.x.com https://songbird.cardinalcommerce.com/edge/v1/ https://checkout.razorpay.com/ https://cdn.razorpay.com/static/cx/ https://*.checkout.com/ https://*.revolut.com/ https://*.cardinaltrusted.com https://pay.google.com/gp/p/js/ https://applepay.cdn-apple.com/jsapi/ https://tradingview-gateway.com/ https://www.tradingview-widget.com/static/bundles/embed/ 'nonce-GfNeMbI3jwYKETOrmO7A9g=='; object-src 'none'\r\ncross-origin-opener-policy: same-origin-allow-popups\r\nreferrer-policy: origin-when-cross-origin, origin-when-cross-origin\r\nx-content-type-options: nosniff, nosniff\r\ncontent-encoding: gzip\r\nvary: Accept-Encoding,Accept-Encoding\r\nx-cache: Hit from cloudfront\r\nvia: 1.1 ef1a163d3b3baf700954cad038895428.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: ARN53-P2\r\nalt-svc: h3=\":443\"; ma=86400\r\nx-amz-cf-id: fzUqcXvJ6unS8Lehbx5a1HElF8eB09CpvQAzMp-0AMzJV_I2fkuRQw==\r\nage: 28\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Amazon Web Services","description":"Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.","website":"https://aws.amazon.com/","common_platform_enumeration":"","icon":"Amazon Web Services.svg","categories":["PaaS"]},{"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":"PayPal","description":"PayPal is an online payments system that supports online money transfers and serves as an electronic alternative to traditional paper methods like checks and money orders.","website":"https://paypal.com","common_platform_enumeration":"cpe:2.3:a:paypal:paypal:*:*:*:*:*:*:*:*","icon":"PayPal.svg","categories":["Payment processors"]},{"name":"Amazon CloudFront","description":"Amazon CloudFront is a fast content delivery network (CDN) service that securely delivers data, videos, applications, and APIs to customers globally with low latency, high transfer speeds.","website":"https://aws.amazon.com/cloudfront/","common_platform_enumeration":"","icon":"Amazon Cloudfront.svg","categories":["CDN"]}],"data":{"size":76549,"size_decoded":18287,"mime_type":"text/html; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (17729)","md5":"befc5183101413f86efc83a488679469","sha1":"fa46ccea4a7653ed1aab7fa77ce915a612e6974e","sha256":"2a19e839beeeaca7de2a80d337e7259180dd1cd230b5992fa63f3544f1f4788a","sha512":"6a21e96f3f4234f3ecc3593996fb13ecc670312d857528de6adcd6c60356e6feebc5ae2bb7bf5e2e1e47bce24e8aa6ce5885ae7f9b7e27195a8e99a222eb0f5a","ssdeep":"1536:T8DCteAQTe8NzMob3e9c/1f+NogdZ324UNogd3Wn+66ceuvRM8:T8DCteAQTe8NzMob3e9c/1f+NlmNl3W7","tlshash":"8173f757d80d8705d9968a157c33b202fd29036c859268947aecdcec149bec3f15bbbe","first_seen":"2026-07-27T10:28:05.937896Z","last_seen":"2026-07-27T10:28:13.981355Z","times_seen":2,"resource_available":false,"data":"Cgo8IURPQ1RZUEUgaHRtbD4KPGh0bWwgbGFuZz0iZW4iIGRpcj0ibHRyIj4KPGhlYWQ+Cgk8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEsIG1pbmltdW0tc2NhbGU9MSwgbWF4aW11bS1zY2FsZT0xIj4KCTx0aXRsZT5UcmFkaW5nVmlldyBDaGFydCBXaWRnZXQ8L3RpdGxlPgoKCjxsaW5rCglyZWw9ImNvbnZlcnNpb25zLWNvbmZpZyBwcmVmZXRjaCIKYXM9ImZldGNoIiBjcm9zc29yaWdpbglocmVmPSJodHRwczovL3MzLnRyYWRpbmd2aWV3LmNvbS9jb252ZXJzaW9uc19lbi5qc29uIgo+CjxsaW5rCglyZWw9Im1ldHJpY3MtY29uZmlnIHByZWZldGNoIgphcz0iZmV0Y2giCWhyZWY9Imh0dHBzOi8vc2Nhbm5lci1iYWNrZW5kLnRyYWRpbmd2aWV3LmNvbS9lbnVtL29yZGVyZWQ/aWQ9bWV0cmljc19mdWxsX25hbWUsbWV0cmljcyZsYW5nPWVuJmxhYmVsLXByb2R1Y3Q9eXRtLW1ldHJpY3MtcGxhbi5qc29uIgoJY3Jvc3NvcmlnaW4KPjxsaW5rIHJlbD0icHJlY29ubmVjdCIgaHJlZj0iaHR0cHM6Ly9zMy1zeW1ib2wtbG9nby50cmFkaW5ndmlldy5jb20vIiBjcm9zc29yaWdpbj4KPGxpbmsgcmVsPSJwcmVjb25uZWN0IiBocmVmPSJodHRwczovL3BpbmUtZmFjYWRlLnRyYWRpbmd2aWV3LmNvbS9waW5lLWZhY2FkZSIgY3Jvc3NvcmlnaW49InVzZS1jcmVkZW50aWFscyI+CjxsaW5rIGNyb3Nzb3JpZ2luPSJhbm9ueW1vdXMiIGhyZWY9Imh0dHBzOi8vd3d3LnRyYWRpbmd2aWV3LXdpZGdldC5jb20vc3RhdGljL2J1bmRsZXMvZW1iZWQvMzkwNS42ODJlODllZjJkYzRjNzA0MjNjNi5jc3MiIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiLz4KPGxpbmsgY3Jvc3NvcmlnaW49ImFub255bW91cyIgaHJlZj0iaHR0cHM6Ly93d3cudHJhZGluZ3ZpZXctd2lkZ2V0LmNvbS9zdGF0aWMvYnVuZGxlcy9lbWJlZC81NDY4MS5hNzE3MTEwZTY3NDlmMzA3ZWQ2ZC5jc3MiIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiLz4KPGxpbmsgY3Jvc3NvcmlnaW49ImFub255bW91cyIgaHJlZj0iaHR0cHM6Ly93d3cudHJhZGluZ3ZpZXctd2lkZ2V0LmNvbS9zdGF0aWMvYnVuZGxlcy9lbWJlZC8zMTgzNy5kMzY4Y2FhNjRkNDk0YTQwODdjYy5jc3MiIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiLz4KPGxpbmsgY3Jvc3NvcmlnaW49ImFub255bW91cyIgaHJlZj0iaHR0cHM6Ly93d3cudHJhZGluZ3ZpZXctd2lkZ2V0LmNvbS9zdGF0aWMvYnVuZGxlcy9lbWJlZC81MTUwOC43NjcyMTkyODNjNjVmNGQ0Y2E2ZS5jc3MiIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiLz4KPGxpbmsgY3Jvc3NvcmlnaW49ImFub255bW91cyIgaHJlZj0iaHR0cHM6Ly93d3cudHJhZGluZ3ZpZXctd2lkZ2V0LmNvbS9zdGF0aWMvYnVuZGxlcy9lbWJlZC80OTUxOC4wODFmOTYzN2I5NGVlNjJhNmU2Zi5jc3MiIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiLz4KPGxpbmsgY3Jvc3NvcmlnaW49ImFub255bW91cyIgaHJlZj0iaHR0cHM6Ly93d3cudHJhZGluZ3ZpZXctd2lkZ2V0LmNvbS9zdGF0aWMvYnVuZGxlcy9lbWJlZC8zMjYzMi41OTZlNTM0OGExNTM4YTE4ZmQ0ZS5jc3MiIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiLz4KPGxpbmsgY3Jvc3NvcmlnaW49ImFub255bW91cyIgaHJlZj0iaHR0cHM6Ly93d3cudHJhZGluZ3ZpZXctd2lkZ2V0LmNvbS9zdGF0aWMvYnVuZGxlcy9lbWJlZC84NDA4LmRlNTM0NjYzZTA1MjA3NWJhMTJmLmNzcyIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIvPgo8bGluayBjcm9zc29yaWdpbj0iYW5vbnltb3VzIiBocmVmPSJodHRwczovL3d3dy50cmFkaW5ndmlldy13aWRnZXQuY29tL3N0YXRpYy9idW5kbGVzL2VtYmVkLzk5NTI3LjE1YzVjMjVkMjdhNTZhMGRmNzcyLmNzcyIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIvPgo8bGluayBjcm9zc29yaWdpbj0iYW5vbnltb3VzIiBocmVmPSJodHRwczovL3d3dy50cmFkaW5ndmlldy13aWRnZXQuY29tL3N0YXRpYy9idW5kbGVzL2VtYmVkLzExNDA5LmZmODRjZTRkNTIzZDM1NDBjN2IyLmNzcyIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIvPgo8bGluayBjcm9zc29yaWdpbj0iYW5vbnltb3VzIiBocmVmPSJodHRwczovL3d3dy50cmFkaW5ndmlldy13aWRnZXQuY29tL3N0YXRpYy9idW5kbGVzL2VtYmVkLzMwMjAwLjcxZGEwNzZmYjAxOTdlNGQ1OTUzLmNzcyIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIvPgo8bGluayBjcm9zc29yaWdpbj0iYW5vbnltb3VzIiBocmVmPSJodHRwczovL3d3dy50cmFkaW5ndmlldy13aWRnZXQuY29tL3N0YXRpYy9idW5kbGVzL2VtYmVkLzg4OTA2LjBkNjUwNDY5YzljODQzNTc3YjQ3LmNzcyIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIvPgo8bGluayBjcm9zc29yaWdpbj0iYW5vbnltb3VzIiBocmVmPSJodHRwczovL3d3dy50cmFkaW5ndmlldy13aWRnZXQuY29tL3N0YXRpYy9idW5kbGVzL2VtYmVkLzEzODA5LmMyYmIxNjIzY2VkNzdhZDA3ZjljLmNzcyIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIvPgo8bGluayBjcm9zc29yaWdpbj0iYW5vbnltb3VzIiBocmVmPSJodHRwczovL3d3dy50cmFkaW5ndmlldy13aWRnZXQuY29tL3N0YXRpYy9idW5kbGVzL2VtYmVkLzg1NTEwLmRlODYyZjlkMjZkYjdjZjNjZDA4LmNzcyIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIvPgo8bGluayBjcm9zc29yaWdpbj0iYW5vbnltb3VzIiBocmVmPSJodHRwczovL3d3dy50cmFkaW5ndmlldy13aWRnZXQuY29tL3N0YXRpYy9idW5kbGVzL2VtYmVkLzMzNzM1LjJjYjg0NGFkMmIwZjNjODkyMTYyLmNzcyIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIvPgoKPHNjcmlwdCBub25jZT0iR2ZOZU1iSTNqd1lLRVRPcm1PN0E5Zz09Ij4KCXdpbmRvdy5sb2NhbGUgPSAnZW4nOwoJd2luZG93Lmxhbmd1YWdlID0gJ2VuJzsKPC9zY3JpcHQ+Cgk8c2NyaXB0IG5vbmNlPSJHZk5lTWJJM2p3WUtFVE9ybU83QTlnPT0iPnZhciBlbnZpcm9ubWVudCA9ICJiYXR0bGUiOzwvc2NyaXB0PgoKPGxpbmsgY3Jvc3NvcmlnaW49ImFub255bW91cyIgaHJlZj0iaHR0cHM6Ly93d3cudHJhZGluZ3ZpZXctd2lkZ2V0LmNvbS9zdGF0aWMvYnVuZGxlcy9lbWJlZC9ydW50aW1lLWVtYmVkX2FkdmFuY2VkX2NoYXJ0LjJhZGFkZjFjYzBlYzU3MDk3ODAzLmpzIiByZWw9InByZWxvYWQiIGFzPSJzY3JpcHQiLz4KPGxpbmsgY3Jvc3NvcmlnaW49ImFub255bW91cyIgaHJlZj0iaHR0cHM6Ly93d3cudHJhZGluZ3ZpZXctd2lkZ2V0LmNvbS9zdGF0aWMvYnVuZGxlcy9lbWJlZC9lbi41ODY2Ny5kMTVmYzRiNWM2MzFiYjVlY2U4ZC5qcyIgcmVsPSJwcmVsb2FkIiBhcz0ic2NyaXB0Ii8+CjxsaW5rIGNyb3Nzb3JpZ2luPSJhbm9ueW1vdXMiIGhyZWY9Imh0dHBzOi8vd3d3LnRyYWRpbmd2aWV3LXdpZGdldC5jb20vc3RhdGljL2J1bmRsZXMvZW1iZWQvZW4uNjIzNTEuYjM4MmRhMTc0ZjA5N2EwZDBlNDMuanMiIHJlbD0icHJlbG9hZCIgYXM9InNjcmlwdCIvPgo8bGluayBjcm9zc29yaWdpbj0iYW5vbnltb3VzIiBocmVmPSJodHRwczovL3d3dy50cmFkaW5ndmlldy13aWRnZXQuY29tL3N0YXRpYy9idW5kbGVzL2VtYmVkL2VuLjk1MTE0LjNiNTczMzVhM2QxY2I0YzgwYmRkLmpzIiByZWw9InByZWxvYWQiIGFzPSJzY3JpcHQiLz4KPGxpbmsgY3Jvc3NvcmlnaW49ImFub255bW91cyIgaHJlZj0iaHR0cHM6Ly93d3cudHJhZGluZ3ZpZXctd2lkZ2V0LmNvbS9zdGF0aWMvYnVuZGxlcy9lbWJlZC8xMzE0OC4zMmNjMDFkYzAxNzUxYjkxNjgyYy5qcyIgcmVsPSJwcmVsb2FkIiBhcz0ic2NyaXB0Ii8+CjxsaW5rIGNyb3Nzb3JpZ2luPSJhbm9ueW1vdXMiIGhyZWY9Imh0dHBzOi8vd3d3LnRyYWRpbmd2aWV3LXdpZGdldC5jb20vc3RhdGljL2J1bmRsZXMvZW1iZWQvNDkyNjUuYzIwOGVmODM3OWUwNzNmOTRkMTYuanMiIHJlbD0icHJlbG9hZCIgYXM9InNjcmlwdCIvPgo8bGluayBjcm9zc29yaWdpbj0iYW5vbnltb3VzIiBocmVmPSJodHRwczovL3d3dy50cmFkaW5ndmlldy13aWRnZXQuY29tL3N0YXRpYy9idW5kbGVzL2VtYmVkLzk5ODI3LmQzOTc2ZGMwYzVjZmEyYzIxNDBlLmpzIiByZWw9InByZWxvYWQiIGFzPSJzY3JpcHQiLz4KPGxpbmsgY3Jvc3NvcmlnaW49ImFub255bW91cyIgaHJlZj0iaHR0cHM6Ly93d3cudHJhZGluZ3ZpZXctd2lkZ2V0LmNvbS9zdGF0aWMvYnVuZGxlcy9lbWJlZC81NjI1OC4yODJlNjE0MWZjMDJhYzg1ZDBkNS5qcyIgcmVsPSJwcmVsb2FkIiBhcz0ic2NyaXB0Ii8+CjxsaW5rIGNyb3Nzb3JpZ2luPSJhbm9ueW1vdXMiIGhyZWY9Imh0dHBzOi8vd3d3LnRyYWRpbmd2aWV3LXdpZGdldC5jb20vc3RhdGljL2J1bmRsZXMvZW1iZWQvNTM2MjcuMTE1MTk1YjcyZjJkOTJjZWNiOWIuanMiIHJlbD0icHJlbG9hZCIgYXM9InNjcmlwdCIvPgo8bGluayBjcm9zc29yaWdpbj0iYW5vbnltb3VzIiBocmVmPSJodHRwczovL3d3dy50cmFkaW5ndmlldy13aWRnZXQuY29tL3N0YXRpYy9idW5kbGVzL2VtYmVkLzM0Njc4LjRhOTkyYWExNTBkOGVkYTVmMjljLmpzIiByZWw9InByZWxvYWQiIGFzPSJzY3JpcHQiLz4KPGxpbmsgY3Jvc3NvcmlnaW49ImFub255bW91cyIgaHJlZj0iaHR0cHM6Ly93d3cudHJhZGluZ3ZpZXctd2lkZ2V0LmNvbS9zdGF0aWMvYnVuZGxlcy9lbWJlZC80NDkxMS5mYTYxZDJhMjc0ZDQyMjQ0MzRjYS5qcyIgcmVsPSJwcmVsb2FkIiBhcz0ic2NyaXB0Ii8+CjxsaW5rIGNyb3Nzb3JpZ2luPSJhbm9ueW1vdXMiIGhyZWY9Imh0dHBzOi8vd3d3LnRyYWRpbmd2aWV3LXdpZGdldC5jb20vc3RhdGljL2J1bmRsZXMvZW1iZWQvNjU4NjIuOTU3NjQ3NTJjMDlmM2YxOGY4OTAuanMiIHJlbD0icHJlbG9hZCIgYXM9InNjcmlwdCIvPgo8bGluayBjcm9zc29yaWdpbj0iYW5vbnltb3VzIiBocmVmPSJodHRwczovL3d3dy50cmFkaW5ndmlldy13aWRnZXQuY29tL3N0YXRpYy9idW5kbGVzL2VtYmVkLzUxMDMxLjUzNWYyN2I3NzZmMzk0YzdlNDNhLmpzIiByZWw9InByZWxvYWQiIGFzPSJzY3JpcHQiLz4KPGxpbmsgY3Jvc3NvcmlnaW49ImFub255bW91cyIgaHJlZj0iaHR0cHM6Ly93d3cudHJhZGluZ3ZpZXctd2lkZ2V0LmNvbS9zdGF0aWMvYnVuZGxlcy9lbWJlZC8zNTUyLjRjNTUzNTE4M2I3YTAzMzBhODlkLmpzIiByZWw9InByZWxvYWQiIGFzPSJzY3JpcHQiLz4KPGxpbmsgY3Jvc3NvcmlnaW49ImFub255bW91cyIgaHJlZj0iaHR0cHM6Ly93d3cudHJhZGluZ3ZpZXctd2lkZ2V0LmNvbS9zdGF0aWMvYnVuZGxlcy9lbWJlZC85NDgyNS44YTkwYzBjM2ViZDQxM2ViOWM4MS5qcyIgcmVsPSJwcmVsb2FkIiBhcz0ic2NyaXB0Ii8+CjxsaW5rIGNyb3Nzb3JpZ2luPSJhbm9ueW1vdXMiIGhyZWY9Imh0dHBzOi8vd3d3LnRyYWRpbmd2aWV3LXdpZGdldC5jb20vc3RhdGljL2J1bmRsZXMvZW1iZWQvMTIxODEuYjY1YTU4MzU1ZmY3Y2MzNDk1MGYuanMiIHJlbD0icHJlbG9hZCIgYXM9InNjcmlwdCIvPgo8bGluayBjcm9zc29yaWdpbj0iYW5vbnltb3VzIiBocmVmPSJodHRwczovL3d3dy50cmFkaW5ndmlldy13aWRnZXQuY29tL3N0YXRpYy9idW5kbGVzL2VtYmVkLzY5MzQuOTBlZGZlZjZjZTk4MzY5YWUwNGEuanMiIHJlbD0icHJlbG9hZCIgYXM9InNjcmlwdCIvPgo8bGluayBjcm9zc29yaWdpbj0iYW5vbnltb3VzIiBocmVmPSJodHRwczovL3d3dy50cmFkaW5ndmlldy13aWRnZXQuY29tL3N0YXRpYy9idW5kbGVzL2VtYmVkLzk1MjQ0LjlkYTg4OWMxMzZkMjUwNmEzZDgxLmpzIiByZWw9InByZWxvYWQiIGFzPSJzY3JpcHQiLz4KPGxpbmsgY3Jvc3NvcmlnaW49ImFub255bW91cyIgaHJlZj0iaHR0cHM6Ly93d3cudHJhZGluZ3ZpZXctd2lkZ2V0LmNvbS9zdGF0aWMvYnVuZGxlcy9lbWJlZC81NTk2OS40M2MzNzQ4MDE0ZGUyY2QwYmQxYy5qcyIgcmVsPSJwcmVsb2FkIiBhcz0ic2NyaXB0Ii8+CjxsaW5rIGNyb3Nzb3JpZ2luPSJhbm9ueW1vdXMiIGhyZWY9Imh0dHBzOi8vd3d3LnRyYWRpbmd2aWV3LXdpZGdldC5jb20vc3RhdGljL2J1bmRsZXMvZW1iZWQvOTM0MjYuMDA4M2QxNjNkNzI4YmZmNzg0ZDkuanMiIHJlbD0icHJlbG9hZCIgYXM9InNjcmlwdCIvPgo8bGluayBjcm9zc29yaWdpbj0iYW5vbnltb3VzIiBocmVmPSJodHRwczovL3d3dy50cmFkaW5ndmlldy13aWRnZXQuY29tL3N0YXRpYy9idW5kbGVzL2VtYmVkLzYzMTYwLjJhM2EyMTE4NWZiY2M3MDc5ZGFlLmpzIiByZWw9InByZWxvYWQiIGFzPSJzY3JpcHQiLz4KPGxpbmsgY3Jvc3NvcmlnaW49ImFub255bW91cyIgaHJlZj0iaHR0cHM6Ly93d3cudHJhZGluZ3ZpZXctd2lkZ2V0LmNvbS9zdGF0aWMvYnVuZGxlcy9lbWJlZC85NzQ3Mi5lODE5NTQwNWY5OTA1NWE4M2M2Zi5qcyIgcmVsPSJwcmVsb2FkIiBhcz0ic2NyaXB0Ii8+CjxsaW5rIGNyb3Nzb3JpZ2luPSJhbm9ueW1vdXMiIGhyZWY9Imh0dHBzOi8vd3d3LnRyYWRpbmd2aWV3LXdpZGdldC5jb20vc3RhdGljL2J1bmRsZXMvZW1iZWQvNTk0NjUuOGU5YzA2Yjc2YzlkNTBiYzI0MmIuanMiIHJlbD0icHJlbG9hZCIgYXM9InNjcmlwdCIvPgo8bGluayBjcm9zc29yaWdpbj0iYW5vbnltb3VzIiBocmVmPSJodHRwczovL3d3dy50cmFkaW5ndmlldy13aWRnZXQuY29tL3N0YXRpYy9idW5kbGVzL2VtYmVkL2VtYmVkX2FkdmFuY2VkX2NoYXJ0LjZkMDdlNGZkOGUzZjI3ODVjZjI1LmpzIiByZWw9InByZWxvYWQiIGFzPSJzY3JpcHQiLz48c2NyaXB0IGNyb3Nzb3JpZ2luPSJhbm9ueW1vdXMiIHNyYz0iaHR0cHM6Ly93d3cudHJhZGluZ3ZpZXctd2lkZ2V0LmNvbS9zdGF0aWMvYnVuZGxlcy9lbWJlZC9ydW50aW1lLWVtYmVkX2FkdmFuY2VkX2NoYXJ0LjJhZGFkZjFjYzBlYzU3MDk3ODAzLmpzIiBkZWZlcj48L3NjcmlwdD4KPHNjcmlwdCBjcm9zc29yaWdpbj0iYW5vbnltb3VzIiBzcmM9Imh0dHBzOi8vd3d3LnRyYWRpbmd2aWV3LXdpZGdldC5jb20vc3RhdGljL2J1bmRsZXMvZW1iZWQvZW4uNTg2NjcuZDE1ZmM0YjVjNjMxYmI1ZWNlOGQuanMiIGRlZmVyPjwvc2NyaXB0Pgo8c2NyaXB0IGNyb3Nzb3JpZ2luPSJhbm9ueW1vdXMiIHNyYz0iaHR0cHM6Ly93d3cudHJhZGluZ3ZpZXctd2lkZ2V0LmNvbS9zdGF0aWMvYnVuZGxlcy9lbWJlZC9lbi42MjM1MS5iMzgyZGExNzRmMDk3YTBkMGU0My5qcyIgZGVmZXI+PC9zY3JpcHQ+CjxzY3JpcHQgY3Jvc3NvcmlnaW49ImFub255bW91cyIgc3JjPSJodHRwczovL3d3dy50cmFkaW5ndmlldy13aWRnZXQuY29tL3N0YXRpYy9idW5kbGVzL2VtYmVkL2VuLjk1MTE0LjNiNTczMzVhM2QxY2I0YzgwYmRkLmpzIiBkZWZlcj48L3NjcmlwdD4KPHNjcmlwdCBjcm9zc29yaWdpbj0iYW5vbnltb3VzIiBzcmM9Imh0dHBzOi8vd3d3LnRyYWRpbmd2aWV3LXdpZGdldC5jb20vc3RhdGljL2J1bmRsZXMvZW1iZWQvMTMxNDguMzJjYzAxZGMwMTc1MWI5MTY4MmMuanMiIGRlZmVyPjwvc2NyaXB0Pgo8c2NyaXB0IGNyb3Nzb3JpZ2luPSJhbm9ueW1vdXMiIHNyYz0iaHR0cHM6Ly93d3cudHJhZGluZ3ZpZXctd2lkZ2V0LmNvbS9zdGF0aWMvYnVuZGxlcy9lbWJlZC80OTI2NS5jMjA4ZWY4Mzc5ZTA3M2Y5NGQxNi5qcyIgZGVmZXI+PC9zY3JpcHQ+CjxzY3JpcHQgY3Jvc3NvcmlnaW49ImFub255bW91cyIgc3JjPSJodHRwczovL3d3dy50cmFkaW5ndmlldy13aWRnZXQuY29tL3N0YXRpYy9idW5kbGVzL2VtYmVkLzk5ODI3LmQzOTc2ZGMwYzVjZmEyYzIxNDBlLmpzIiBkZWZlcj48L3NjcmlwdD4KPHNjcmlwdCBjcm9zc29yaWdpbj0iYW5vbnltb3VzIiBzcmM9Imh0dHBzOi8vd3d3LnRyYWRpbmd2aWV3LXdpZGdldC5jb20vc3RhdGljL2J1bmRsZXMvZW1iZWQvNTYyNTguMjgyZTYxNDFmYzAyYWM4NWQwZDUuanMiIGRlZmVyPjwvc2NyaXB0Pgo8c2NyaXB0IGNyb3Nzb3JpZ2luPSJhbm9ueW1vdXMiIHNyYz0iaHR0cHM6Ly93d3cudHJhZGluZ3ZpZXctd2lkZ2V0LmNvbS9zdGF0aWMvYnVuZGxlcy9lbWJlZC81MzYyNy4xMTUxOTViNzJmMmQ5MmNlY2I5Yi5qcyIgZGVmZXI+PC9zY3JpcHQ+CjxzY3JpcHQgY3Jvc3NvcmlnaW49ImFub255bW91cyIgc3JjPSJodHRwczovL3d3dy50cmFkaW5ndmlldy13aWRnZXQuY29tL3N0YXRpYy9idW5kbGVzL2VtYmVkLzM0Njc4LjRhOTkyYWExNTBkOGVkYTVmMjljLmpzIiBkZWZlcj48L3NjcmlwdD4KPHNjcmlwdCBjcm9zc29yaWdpbj0iYW5vbnltb3VzIiBzcmM9Imh0dHBzOi8vd3d3LnRyYWRpbmd2aWV3LXdpZGdldC5jb20vc3RhdGljL2J1bmRsZXMvZW1iZWQvNDQ5MTEuZmE2MWQyYTI3NGQ0MjI0NDM0Y2EuanMiIGRlZmVyPjwvc2NyaXB0Pgo8c2NyaXB0IGNyb3Nzb3JpZ2luPSJhbm9ueW1vdXMiIHNyYz0iaHR0cHM6Ly93d3cudHJhZGluZ3ZpZXctd2lkZ2V0LmNvbS9zdGF0aWMvYnVuZGxlcy9lbWJlZC82NTg2Mi45NTc2NDc1MmMwOWYzZjE4Zjg5MC5qcyIgZGVmZXI+PC9zY3JpcHQ+CjxzY3JpcHQgY3Jvc3NvcmlnaW49ImFub255bW91cyIgc3JjPSJodHRwczovL3d3dy50cmFkaW5ndmlldy13aWRnZXQuY29tL3N0YXRpYy9idW5kbGVzL2VtYmVkLzUxMDMxLjUzNWYyN2I3NzZmMzk0YzdlNDNhLmpzIiBkZWZlcj48L3NjcmlwdD4KPHNjcmlwdCBjcm9zc29yaWdpbj0iYW5vbnltb3VzIiBzcmM9Imh0dHBzOi8vd3d3LnRyYWRpbmd2aWV3LXdpZGdldC5jb20vc3RhdGljL2J1bmRsZXMvZW1iZWQvMzU1Mi40YzU1MzUxODNiN2EwMzMwYTg5ZC5qcyIgZGVmZXI+PC9zY3JpcHQ+CjxzY3JpcHQgY3Jvc3NvcmlnaW49ImFub255bW91cyIgc3JjPSJodHRwczovL3d3dy50cmFkaW5ndmlldy13aWRnZXQuY29tL3N0YXRpYy9idW5kbGVzL2VtYmVkLzk0ODI1LjhhOTBjMGMzZWJkNDEzZWI5YzgxLmpzIiBkZWZlcj48L3NjcmlwdD4KPHNjcmlwdCBjcm9zc29yaWdpbj0iYW5vbnltb3VzIiBzcmM9Imh0dHBzOi8vd3d3LnRyYWRpbmd2aWV3LXdpZGdldC5jb20vc3RhdGljL2J1bmRsZXMvZW1iZWQvMTIxODEuYjY1YTU4MzU1ZmY3Y2MzNDk1MGYuanMiIGRlZmVyPjwvc2NyaXB0Pgo8c2NyaXB0IGNyb3Nzb3JpZ2luPSJhbm9ueW1vdXMiIHNyYz0iaHR0cHM6Ly93d3cudHJhZGluZ3ZpZXctd2lkZ2V0LmNvbS9zdGF0aWMvYnVuZGxlcy9lbWJlZC82OTM0LjkwZWRmZWY2Y2U5ODM2OWFlMDRhLmpzIiBkZWZlcj48L3NjcmlwdD4KPHNjcmlwdCBjcm9zc29yaWdpbj0iYW5vbnltb3VzIiBzcmM9Imh0dHBzOi8vd3d3LnRyYWRpbmd2aWV3LXdpZGdldC5jb20vc3RhdGljL2J1bmRsZXMvZW1iZWQvOTUyNDQuOWRhODg5YzEzNmQyNTA2YTNkODEuanMiIGRlZmVyPjwvc2NyaXB0Pgo8c2NyaXB0IGNyb3Nzb3JpZ2luPSJhbm9ueW1vdXMiIHNyYz0iaHR0cHM6Ly93d3cudHJhZGluZ3ZpZXctd2lkZ2V0LmNvbS9zdGF0aWMvYnVuZGxlcy9lbWJlZC81NTk2OS40M2MzNzQ4MDE0ZGUyY2QwYmQxYy5qcyIgZGVmZXI+PC9zY3JpcHQ+CjxzY3JpcHQgY3Jvc3NvcmlnaW49ImFub255bW91cyIgc3JjPSJodHRwczovL3d3dy50cmFkaW5ndmlldy13aWRnZXQuY29tL3N0YXRpYy9idW5kbGVzL2VtYmVkLzkzNDI2LjAwODNkMTYzZDcyOGJmZjc4NGQ5LmpzIiBkZWZlcj48L3NjcmlwdD4KPHNjcmlwdCBjcm9zc29yaWdpbj0iYW5vbnltb3VzIiBzcmM9Imh0dHBzOi8vd3d3LnRyYWRpbmd2aWV3LXdpZGdldC5jb20vc3RhdGljL2J1bmRsZXMvZW1iZWQvNjMxNjAuMmEzYTIxMTg1ZmJjYzcwNzlkYWUuanMiIGRlZmVyPjwvc2NyaXB0Pgo8c2NyaXB0IGNyb3Nzb3JpZ2luPSJhbm9ueW1vdXMiIHNyYz0iaHR0cHM6Ly93d3cudHJhZGluZ3ZpZXctd2lkZ2V0LmNvbS9zdGF0aWMvYnVuZGxlcy9lbWJlZC85NzQ3Mi5lODE5NTQwNWY5OTA1NWE4M2M2Zi5qcyIgZGVmZXI+PC9zY3JpcHQ+CjxzY3JpcHQgY3Jvc3NvcmlnaW49ImFub255bW91cyIgc3JjPSJodHRwczovL3d3dy50cmFkaW5ndmlldy13aWRnZXQuY29tL3N0YXRpYy9idW5kbGVzL2VtYmVkLzU5NDY1LjhlOWMwNmI3NmM5ZDUwYmMyNDJiLmpzIiBkZWZlcj48L3NjcmlwdD4KPHNjcmlwdCBjcm9zc29yaWdpbj0iYW5vbnltb3VzIiBzcmM9Imh0dHBzOi8vd3d3LnRyYWRpbmd2aWV3LXdpZGdldC5jb20vc3RhdGljL2J1bmRsZXMvZW1iZWQvZW1iZWRfYWR2YW5jZWRfY2hhcnQuNmQwN2U0ZmQ4ZTNmMjc4NWNmMjUuanMiIGRlZmVyPjwvc2NyaXB0PgoKCTxzY3JpcHQgbm9uY2U9IkdmTmVNYkkzandZS0VUT3JtTzdBOWc9PSI+d2luZG93LmZlYXR1cmVUb2dnbGVTdGF0ZSA9IHsic2hvd19mZWF0dXJlZF9pcG8iOjEuMCwiYmxhY2tfZnJpZGF5X3BvcHVwIjoxLjAsImJsYWNrX2ZyaWRheV9tYWlucGFnZSI6MS4wLCJibGFja19mcmlkYXlfZXh0ZW5kX2xpbWl0YXRpb24iOjEuMCwiZW5hYmxlX3RyYWRpbmdfcmVwbGF5X2Zvcl9wb2ludF9pbmRleGVzIjoxLjAsImluY3JlYXNlX21ldGFpbmZvX3ZlcnNpb24iOjAuMzUsImNoYXJ0X2F1dG9zYXZlXzVtaW4iOjEuMCwiY2hhcnRfYXV0b3NhdmVfMzBtaW4iOjEuMCwicGVyZm9ybWFuY2VfdGVzdF9tb2RlIjoxLjAsImNoZWNrX2F1dGhfdG9rZW5fZXhwaXJhdGlvbl9vbl9ldmVyeV9yZXF1ZXN0IjoxLjAsImNoYXJ0X3N0b3JhZ2VfaGliZXJuYXRpb25fZGVsYXlfNjBtaW4iOjEuMCwic3VwcG9ydF9wZXJzaXN0ZW50X2xvZ3MiOjEuMCwibmV3X3N0b3JhZ2Vfc3Vic2NyaXB0aW9uX3VybCI6MS4wLCJyZW1vdmVfYW5jaG9yZWRfdGV4dCI6MS4wLCJlbmFibGVfc3RlcF9ieV9zdGVwX2hpbnRzX2Zvcl9kcmF3aW5ncyI6MS4wLCJwdXNoc3RyZWFtX2Jhc2ljX3RlbGVtZXRyeSI6MS4wLCJhbGxvd19icmFja2V0c19wcm9maXRfbG9zcyI6MS4wLCJlbmFibGVfdHJhZGVkX2NvbnRleHRfbGlua2luZyI6MS4wLCJvcmRlcl9jb250ZXh0X3ZhbGlkYXRpb25faW5faW5zdGFudF9tb2RlIjoxLjAsImFsZXJ0cy1vbi1mdW5kYW1lbnRhbC1tZXRyaWNzIjoxLjAsImFsZXJ0cy1ub3RpZmljYXRpb24tc2NoZWR1bGUiOjEuMCwiYWxlcnRzLXdhdGNobGlzdC1leHRlbmRlZC1ob3VycyI6MS4wLCJlbmFibGVfc3ltYm9sX2NoYW5nZV9yZXN0cmljdGlvbl9vbl93aWRnZXRzIjoxLjAsImVuYWJsZV9hc3hfc3ltYm9sX3Jlc3RyaWN0aW9uIjoxLjAsInN5bXBob255X2FsbG93X25vbl9wYXJ0aXRpb25lZF9jb29raWVfb25fb2xkX3N5bXBob255IjoxLjAsInN5bXBob255X25vdGlmaWNhdGlvbl9iYWRnZXMiOjEuMCwic3ltcGhvbnlfdXNlX2Fka19mb3JfdXBncmFkZV9yZXF1ZXN0IjoxLjAsInN5bXBob255X2VuYWJsZV90aW1lb3V0X3RyYWNraW5nIjoxLjAsInN5bXBob255X2VuYWJsZV90aW1lb3V0X3NvZnRfbGltaXQiOjEuMCwic3ltcGhvbnlfZW5hYmxlX3RpbWVvdXRfaGFyZF9saW1pdCI6MS4wLCJ0ZWxlZ3JhbV9taW5pX2FwcF9yZWR1Y2Vfc25hcHNob3RfcXVhbGl0eSI6MS4wLCJuZXdzX3N5bWJvbF9vdmVydmlld19rZXlfZmFjdHMiOjEuMCwidGltZW91dF9kamFuZ29fZGIiOjAuMTUsInRpbWVvdXRfZGphbmdvX3VzZXJzZXR0aW5nc19kYiI6MC4xNSwidGltZW91dF9kamFuZ29fY2hhcnRzX2RiIjowLjI1LCJ0aW1lb3V0X2RqYW5nb19zeW1ib2xzX2xpc3RzX2RiIjowLjI1LCJ0aW1lb3V0X2RqYW5nb19taW5kc19kYiI6MC4wNSwidGltZW91dF9kamFuZ29fbG9nZ2luZ19kYiI6MC4yNSwiZGlzYWJsZV9zZXJ2aWNlc19tb25pdG9yX21ldHJpY3MiOjEuMCwiZW5hYmxlX3NpZ25pbl9yZWNhcHRjaGEiOjEuMCwiZW5hYmxlX2lkZWFfc3BhbWRldGVjdG9ybWwiOjEuMCwiZW5hYmxlX2lkZWFfc3BhbWRldGVjdG9ybWxfY29tbWVudHMiOjEuMCwiZW5hYmxlX3NwYW1kZXRlY3Rvcm1sX2NoYXQiOjEuMCwiZW5hYmxlX21pbmRzX3NwYW1kZXRlY3Rvcm1sIjoxLjAsImJhY2tlbmQtY29ubmVjdGlvbnMtaW4tdG9rZW4iOjEuMCwib25lX2Nvbm5lY3Rpb25fd2l0aF9leGNoYW5nZXMiOjEuMCwibW9iaWxlLWFkcy1pb3MiOjEuMCwibW9iaWxlLWFkcy1hbmRyb2lkIjoxLjAsImdvb2dsZS1vbmUtdGFwLXNpZ25pbiI6MS4wLCJicmFpbnRyZWUtZ29wcm8taW4tb3JkZXItZGlhbG9nIjoxLjAsImJyYWludHJlZS1hcHBsZS1wYXkiOjEuMCwiYnJhaW50cmVlLWdvb2dsZS1wYXkiOjEuMCwiYnJhaW50cmVlLWFwcGxlLXBheS1mcm9tLWlvcy1hcHAiOjEuMCwiYnJhaW50cmVlLWFwcGxlLXBheS10cmlhbCI6MS4wLCJ0cmlwbGVhLXBheW1lbnRzIjoxLjAsImJyYWludHJlZS1nb29nbGUtcGF5LXRyaWFsIjoxLjAsImJyYWludHJlZS1vbmUtdXNkLXZlcmlmaWNhdGlvbiI6MS4wLCJicmFpbnRyZWUtM2RzLWVuYWJsZWQiOjEuMCwiYnJhaW50cmVlLTNkcy1zdGF0dXMtY2hlY2siOjEuMCwiYnJhaW50cmVlLWFkZGl0aW9uYWwtY2FyZC1jaGVja3MtZm9yLXRyaWFsIjoxLjAsImJyYWludHJlZS1pbnN0YW50LXNldHRsZW1lbnQiOjEuMCwiYnJhaW50cmVlX3JlY3VycmluZ19iaWxsaW5nX3NjaGVkdWxlcl9zdWJzY3JpcHRpb24iOjEuMCwiY2hlY2tvdXRfbWFudWFsX2NhcHR1cmVfcmVxdWlyZWQiOjEuMCwiY2hlY2tvdXQtc3Vic2NyaXB0aW9ucyI6MS4wLCJjaGVja291dF9hZGRpdGlvbmFsX2NhcmRfY2hlY2tzX2Zvcl90cmlhbCI6MS4wLCJjaGVja291dF9mYWlsX29uX2R1cGxpY2F0ZV9wYXltZW50X21ldGhvZHNfZm9yX3RyaWFsIjoxLjAsImNoZWNrb3V0X2ZhaWxfb25fYmFubmVkX2NvdW50cmllc19mb3JfdHJpYWwiOjEuMCwiY2hlY2tvdXRfZmFpbF9vbl9iYW5uZWRfYmFua19mb3JfdHJpYWwiOjEuMCwiY2hlY2tvdXRfZmFpbF9vbl9iYW5uZWRfYmFua19mb3JfcHJlbWl1bV90cmlhbCI6MS4wLCJjaGVja291dF9mYWlsX29uX2Nsb3NlX3RvX2V4cGlyYXRpb25fY2FyZF90cmlhbCI6MS4wLCJjaGVja291dF9mYWlsX29uX3ByZXBhaWRfY2FyZF90cmlhbCI6MS4wLCJyZXZvbHV0X2FkZGl0aW9uYWxfY2FyZF9jaGVja3NfZm9yX3RyaWFsIjoxLjAsInJldm9sdXRfZmFpbF9vbl9kdXBsaWNhdGVfcGF5bWVudF9tZXRob2RzX2Zvcl90cmlhbCI6MS4wLCJyZXZvbHV0X2ZhaWxfb25fYmFubmVkX2NvdW50cmllc19mb3JfdHJpYWwiOjEuMCwicmV2b2x1dF9mYWlsX29uX2Jhbm5lZF9iYW5rX2Zvcl90cmlhbCI6MS4wLCJyZXZvbHV0X2ZhaWxfb25fYmFubmVkX2JhbmtfZm9yX3ByZW1pdW1fdHJpYWwiOjEuMCwicmV2b2x1dF9mYWlsX29uX2Nsb3NlX3RvX2V4cGlyYXRpb25fY2FyZF90cmlhbCI6MS4wLCJyZXZvbHV0X2ZhaWxfb25fcHJlcGFpZF9jYXJkX3RyaWFsIjoxLjAsInJldm9sdXRfZmFpbF9vbl9jb21tZXJjaWFsX2NhcmRfdHJpYWwiOjEuMCwiZW5hYmxlX3BheW1lbnRzXzNkc19vcHRpbWl6YXRpb24iOjEuMCwiY291bnRyeV9vZl9pc3N1YW5jZV92c19iaWxsaW5nX2NvdW50cnkiOjEuMCwiY2hlY2tvdXRfc2hvd19pbnN0ZWFkX29mX2JyYWludHJlZSI6MS4wLCJjaGVja291dC0zZHMiOjEuMCwiY2hlY2tvdXQtcGF5cGFsIjoxLjAsImNoZWNrb3V0X2luY2x1ZGVfYWNjb3VudF9ob2xkZXIiOjEuMCwiY2hlY2tvdXQtcGF5cGFsLXRyaWFsIjoxLjAsImFubnVhbF90b19tb250aGx5X2Rvd25ncmFkZV9hdHRlbXB0IjoxLjAsInJhem9ycGF5X3RyaWFsXzEwX2luciI6MS4wLCJyYXpvcnBheS1jYXJkLW9yZGVyLXRva2VuLXNlY3Rpb24iOjEuMCwicmF6b3JwYXktY2FyZC1zdWJzY3JpcHRpb25zIjoxLjAsInJhem9ycGF5LXVwaS1zdWJzY3JpcHRpb25zIjoxLjAsInJhem9ycGF5LXMzLWludm9pY2UtdXBsb2FkIjoxLjAsInJhem9ycGF5X2luY2x1ZGVfZGF0ZV9vZl9iaXJ0aCI6MS4wLCJkbG9jYWwtcGF5bWVudHMiOjEuMCwicmV2b2x1dC1wYXktcGF5bWVudHMiOjEuMCwicmV2b2x1dC1jYXJkLXBheW1lbnRzIjowLjUsImRsb2NhbC1waXgtYXV0b21hdGljbyI6MS4wLCJicmFpbnRyZWVfdHJhbnNhY3Rpb25fc291cmNlIjoxLjAsInZlcnRleC10YXgiOjEuMCwidmVydGV4LXRheC1maXgiOjEuMCwicmVjZWlwdF9pbl9lbWFpbHMiOjEuMCwiYWR3b3Jkcy1hbmFseXRpY3MiOjEuMCwiY20zNjAtYW5hbHl0aWNzIjoxLjAsImRpc2FibGVfbW9iaWxlX3Vwc2VsbF9pb3MiOjEuMCwiZGlzYWJsZV9tb2JpbGVfdXBzZWxsX2FuZHJvaWQiOjEuMCwicmVxdWlyZWRfYWdyZWVtZW50X2Zvcl9ydCI6MS4wLCJjaGVja19tYXJrZXRfZGF0YV9saW1pdHMiOjEuMCwiZm9yY2VfdG9fY29tcGxldGVfZGF0YSI6MS4wLCJmb3JjZV90b191cGdyYWRlX3RvX2V4cGVydCI6MS4wLCJzZW5kX3RyYWRldmFuX2ludm9pY2UiOjEuMCwic2hvd19wZXBlX2FuaW1hdGlvbiI6MS4wLCJzZW5kX25leHRfcGF5bWVudF9pbmZvX3JlY2VpcHQiOjEuMCwic3VwcG9ydF9vdmVybmlnaHRfc2Vzc2lvbiI6MS4wLCJzY3JlZW5lci1hbGVydHMtcmVhZC1vbmx5IjoxLjAsInNjcmVlbmVyX2JvbmRfcmVzdHJpY3Rpb25fYnlfYXV0aF9lbmFibGVkIjoxLjAsInNjcmVlbmVyX3N0b2NrX2FpX2ZpbHRlcnNfZW5hYmxlZCI6MS4wLCJzY3JlZW5lcl9pc19hbGxvd2VkX3RvX2NyZWF0ZV9lbmFibGVkIjoxLjAsInNjcmVlbmVyX2JvbmRfcmF0aW5nX2NvbHVtbnNfcmVzdHJpY3Rpb25fYnlfYXV0aF9lbmFibGVkIjoxLjAsInNjcmVlbmVyX2JvbmRfc29ydGluZ19yZXN0cmljdGlvbl9ieV9hdXRoX2VuYWJsZWQiOjEuMCwic2NyZWVuZXJfYm9uZF9ncm91cF9ieV9pc2luX3Jlc3RyaWN0aW9uX2J5X2F1dGhfZW5hYmxlZCI6MS4wLCJzY3JlZW5lcl9ib25kX3N5bWJvbF9zZWFyY2hfcmVzdHJpY3Rpb25fYnlfYXV0aF9lbmFibGVkIjoxLjAsInNjcmVlbmVyX2JvbmRfcmVnaXN0cmF0aW9uX2Jhbm5lcl9yZXN0cmljdGlvbl9ieV9hdXRoX2VuYWJsZWQiOjEuMCwic2VzX3RyYWNraW5nIjoxLjAsInNlbmRfZmluYW5jaWFsX25vdGlmaWNhdGlvbnMiOjEuMCwic3BhcmtfdHJhbnNsYXRpb25zIjoxLjAsInNwYXJrX2NhdGVnb3J5X3RyYW5zbGF0aW9ucyI6MS4wLCJzcGFya190YWdzX3RyYW5zbGF0aW9ucyI6MS4wLCJwcm9fcGxhbl9pbml0aWFsX3JlZnVuZHNfZGlzYWJsZWQiOjEuMCwicHJldmlvdXNfbW9ub3Byb2R1Y3RfcHVyY2hhc2VzX3JlZnVuZHNfZW5hYmxlZCI6MS4wLCJlbmFibGVfaWRlYXNfcmVjb21tZW5kYXRpb25zIjoxLjAsImVuYWJsZV9pZGVhc19yZWNvbW1lbmRhdGlvbnNfZmVlZCI6MS4wLCJmYWlsX29uX2R1cGxpY2F0ZV9wYXltZW50X21ldGhvZHNfZm9yX3RyaWFsIjoxLjAsImV0aG9jYV9hbGVydF9ub3RpZmljYXRpb25fd2ViaG9vayI6MS4wLCJoaWRlX3N1c3BpY2lvdXNfdXNlcnNfaWRlYXMiOjEuMCwiZGlzYWJsZV9wdWJsaXNoX3N0cmF0ZWd5X3JhbmdlX2Jhc2VkX2NoYXJ0IjoxLjAsInJlc3RyaWN0X3NpbXVsdGFuZW91c19yZXF1ZXN0cyI6MS4wLCJsb2dpbl9mcm9tX25ld19kZXZpY2VfZW1haWwiOjEuMCwic3NyX3dvcmtlcl9ub3dhaXQiOjEuMCwiYnJva2VyX0ExQ0FQSVRBTCI6MS4wLCJicm9rZXJfQUNUSVZUUkFERVMiOjEuMCwiYnJva2VyX0FMQ0hFTVlNQVJLRVRTIjoxLjAsImJyb2tlcl9BTElDRUJMVUUiOjEuMCwiaGlkZV9BTE9SX29uX2lvcyI6MS4wLCJoaWRlX0FMT1Jfb25fYW5kcm9pZCI6MS4wLCJoaWRlX0FMT1Jfb25fbW9iaWxlX3dlYiI6MS4wLCJhbG9yLWJyb2tlcnMtc2lkZS1tYWludGVuYW5jZSI6MS4wLCJicm9rZXJfQUxQQUNBIjoxLjAsImJyb2tlcl9BTFJBTVoiOjEuMCwiYnJva2VyX0FNUCI6MS4wLCJicm9rZXJfQU5HRUxPTkUiOjEuMCwiYnJva2VyX0FWQV9GVVRVUkVTIjoxLjAsIkFWQV9GVVRVUkVTX29hdXRoX2F1dGhvcml6YXRpb24iOjEuMCwiYnJva2VyX0IyUFJJTUUiOjEuMCwiYnJva2VyX0JBSkFKIjoxLjAsImJyb2tlcl9CRVlPTkQiOjEuMCwiYnJva2VyX0JJTkFOQ0UiOjEuMCwiZW5hYmxlX2JpbmFuY2VhcGlzX2Jhc2VfdXJsIjoxLjAsImJyb2tlcl9CSU5HQk9OIjoxLjAsImJyb2tlcl9CSVRBWlpBIjoxLjAsImJyb2tlcl9CSVRHRVQiOjEuMCwiYnJva2VyX0JJVE1FWCI6MS4wLCJicm9rZXJfQklUU1RBTVAiOjEuMCwiYnJva2VyX0JMQUNLQlVMTCI6MS4wLCJicm9rZXJfQkxVRUJFUlJZTUFSS0VUUyI6MS4wLCJicm9rZXJfQlRDQyI6MS4wLCJicm9rZXJfQllCSVQiOjEuMCwiYnJva2VyX0NBUElUQUxDT00iOjEuMCwiYnJva2VyX0NBUFRSQURFUiI6MS4wLCJDQVBUUkFERVJfc2VwYXJhdGVfaW50ZWdyYXRpb25fbWlncmF0aW9uX3dhcm5pbmciOjEuMCwiYnJva2VyX0NGSSI6MS4wLCJicm9rZXJfQ0dTSSI6MS4wLCJicm9rZXJfQ0lUWUlOREVYIjoxLjAsImNpdHlpbmRleF9zcHJlYWRiZXR0aW5nIjoxLjAsIkNMRUFSU1RSRUVUX2JldGEiOjEuMCwiYnJva2VyX0NNQ01BUktFVFMiOjEuMCwiYnJva2VyX0NPQlJBVFJBRElORyI6MS4wLCJicm9rZXJfQ09JTkJBU0UiOjEuMCwiY29pbmJhc2VfcmVxdWVzdF9zZXJ2ZXJfbG9nZ2VyIjoxLjAsImNvaW5iYXNlX2NhbmNlbF9wb3NpdGlvbl9icmFja2V0cyI6MS4wLCJicm9rZXJfQ09JTkpBUiI6MS4wLCJDT0lOSkFSX2JldGEiOjEuMCwiYnJva2VyX0NPSU5TV0lUQ0giOjEuMCwiYnJva2VyX0NPSU5XIjoxLjAsImJyb2tlcl9DT0xNRVgiOjEuMCwiaGlkZV9DUUdfb25faW9zIjoxLjAsImhpZGVfQ1FHX29uX2FuZHJvaWQiOjEuMCwiaGlkZV9DUUdfb25fbW9iaWxlX3dlYiI6MS4wLCJjcWctcmVhbHRpbWUtYmFuZHdpZHRoLWxpbWl0IjoxLjAsImJyb2tlcl9DUllQVE9DT00iOjEuMCwiaGlkZV9DVVJSRU5DWUNPTV9vbl9pb3MiOjEuMCwiaGlkZV9DVVJSRU5DWUNPTV9vbl9hbmRyb2lkIjoxLjAsImhpZGVfQ1VSUkVOQ1lDT01fb25fbW9iaWxlX3dlYiI6MS4wLCJicm9rZXJfQ1hNIjoxLjAsImJyb2tlcl9EQU9MIjoxLjAsImJyb2tlcl9EQVJXSU5FWCI6MS4wLCJEQVJXSU5FWF9iZXRhIjoxLjAsImJyb2tlcl9ERUxUQSI6MS4wLCJicm9rZXJfREVSQVlBSCI6MS4wLCJicm9rZXJfREVSSVYiOjEuMCwiYnJva2VyX0RIQU4iOjEuMCwiYnJva2VyX0ROU0UiOjEuMCwiYnJva2VyX0RPUk1BTiI6MS4wLCJoaWRlX0RVTU1ZX29uX2lvcyI6MS4wLCJoaWRlX0RVTU1ZX29uX2FuZHJvaWQiOjEuMCwiaGlkZV9EVU1NWV9vbl9tb2JpbGVfd2ViIjoxLjAsImJyb2tlcl9FQVNZTUFSS0VUUyI6MS4wLCJicm9rZXJfRUNPVkFMT1JFUyI6MS4wLCJicm9rZXJfRURHRUNMRUFSIjoxLjAsImVkZ2VjbGVhcl9vYXV0aF9hdXRob3JpemF0aW9uIjoxLjAsImJyb2tlcl9FSUdIVENBUCI6MS4wLCJicm9rZXJfRVJSQU5URSI6MS4wLCJicm9rZXJfRVNBRlgiOjEuMCwiRklERUxJVFlfYmV0YSI6MS4wLCJGSURFTElUWV91c19yZWxlYXNlIjowLjI1LCJmaWRlbGl0eV9zZWN1cml0eV90b2tlbiI6MS4wLCJicm9rZXJfRk9SRVhDT00iOjEuMCwiZm9yZXhjb21fc2Vzc2lvbl92MiI6MS4wLCJicm9rZXJfRlBNQVJLRVRTIjoxLjAsImhpZGVfRlRYX29uX2lvcyI6MS4wLCJoaWRlX0ZUWF9vbl9hbmRyb2lkIjoxLjAsImhpZGVfRlRYX29uX21vYmlsZV93ZWIiOjEuMCwiZnR4X3JlcXVlc3Rfc2VydmVyX2xvZ2dlciI6MS4wLCJicm9rZXJfRlVTSU9OTUFSS0VUUyI6MS4wLCJmeGNtX3NlcnZlcl9sb2dnZXIiOjEuMCwiYnJva2VyX0ZYQ00iOjEuMCwiaGlkZV9GWE9QRU5fb25faW9zIjoxLjAsImhpZGVfRlhPUEVOX29uX2FuZHJvaWQiOjEuMCwiaGlkZV9GWE9QRU5fb25fbW9iaWxlX3dlYiI6MS4wLCJicm9rZXJfRlhQUk8iOjEuMCwiYnJva2VyX0ZYVEYiOjEuMCwiYnJva2VyX0ZZRVJTIjoxLjAsImJyb2tlcl9HQVRFIjoxLjAsImJyb2tlcl9HQkVCUk9LRVJTIjoxLjAsImdlbWluaS1icm9rZXJzLXNpZGUtbWFpbnRlbmFuY2UiOjEuMCwiYnJva2VyX0dFTklBTElOVkVTVElNRU5UT1MiOjEuMCwiaGlkZV9HTE9CQUxQUklNRV9vbl9pb3MiOjEuMCwiaGlkZV9HTE9CQUxQUklNRV9vbl9hbmRyb2lkIjoxLjAsImhpZGVfR0xPQkFMUFJJTUVfb25fbW9iaWxlX3dlYiI6MS4wLCJnbG9iYWxwcmltZS1icm9rZXJzLXNpZGUtbWFpbnRlbmFuY2UiOjEuMCwiYnJva2VyX0dPTUFSS0VUUyI6MS4wLCJicm9rZXJfR09UUkFERSI6MS4wLCJnb3RyYWRlX2VuYWJsZV9zdHJlYW1pbmdfZW5kcG9pbnRzIjoxLjAsImJyb2tlcl9IRVJFTllBIjoxLjAsImhpZGVfSFRYX29uX2lvcyI6MS4wLCJoaWRlX0hUWF9vbl9hbmRyb2lkIjoxLjAsImhpZGVfSFRYX29uX21vYmlsZV93ZWIiOjEuMCwiYnJva2VyX0lCS1IiOjEuMCwiY2hlY2tfaWJrcl9zaWRlX21haW50ZW5hbmNlIjoxLjAsImlia3JfcmVxdWVzdF9zZXJ2ZXJfbG9nZ2VyIjoxLjAsImlia3JfcGFyYWxsZWxfcHJvdmlkZXJfaW5pdGlhbGl6YXRpb24iOjEuMCwiaWJrcl93c19hY2NvdW50X3N1bW1hcnkiOjEuMCwiaWJrcl93c19zZXJ2ZXJfbG9nZ2VyIjoxLjAsImlia3Jfc3Vic2NyaWJlX3RvX29yZGVyX3VwZGF0ZXNfZmlyc3QiOjEuMCwiaWJrcl93c19hY2NvdW50X2xlZGdlciI6MS4wLCJicm9rZXJfSUJST0tFUiI6MS4wLCJicm9rZXJfSUNNQVJLRVRTIjoxLjAsImJyb2tlcl9JQ01BUktFVFNfQVNJQyI6MS4wLCJicm9rZXJfSUNNQVJLRVRTX0VVIjoxLjAsImJyb2tlcl9JRyI6MS4wLCJicm9rZXJfSU5EU1RPQ0tTIjoxLjAsImJyb2tlcl9JTkZPWUFUSVJJTSI6MS4wLCJicm9rZXJfSU5OT1ZFU1RYIjoxLjAsImJyb2tlcl9JTlRFUkFDVElWRUlMIjoxLjAsImJyb2tlcl9JTlZFU1RSQURFIjoxLjAsIklOVkVTVFJBREVfYmV0YSI6MS4wLCJicm9rZXJfSVJPTkJFQU0iOjEuMCwiaGlkZV9JUk9OQkVBTV9DUUdfb25faW9zIjoxLjAsImhpZGVfSVJPTkJFQU1fQ1FHX29uX2FuZHJvaWQiOjEuMCwiaGlkZV9JUk9OQkVBTV9DUUdfb25fbW9iaWxlX3dlYiI6MS4wLCJicm9rZXJfS0lXT09NIjoxLjAsImtpd29vbV91c2Vfc2VwYXJhdGVfc3RyZWFtaW5nX3VybCI6MS4wLCJicm9rZXJfS09UQUsiOjEuMCwiaGlkZV9LT1RBS19vbl9pb3MiOjEuMCwiaGlkZV9LT1RBS19vbl9hbmRyb2lkIjoxLjAsImhpZGVfS09UQUtfb25fbW9iaWxlX3dlYiI6MS4wLCJicm9rZXJfS1JBS0VOIjoxLjAsImhpZGVfS1JBS0VOX29uX2lvcyI6MS4wLCJoaWRlX0tSQUtFTl9vbl9hbmRyb2lkIjoxLjAsIktSQUtFTl9iZXRhIjoxLjAsImtyYWtlbl9yZXF1ZXN0X3NlcnZlcl9sb2dnZXIiOjEuMCwiYnJva2VyX0tTRUNVUklUSUVTIjoxLjAsImJyb2tlcl9MSUJFUkFUT1IiOjEuMCwiYnJva2VyX01FWEMiOjEuMCwiYnJva2VyX01FWEVNIjoxLjAsImJyb2tlcl9NSURBUyI6MS4wLCJoaWRlX01PQ0tCUk9LRVJfb25faW9zIjoxLjAsImhpZGVfTU9DS0JST0tFUl9vbl9hbmRyb2lkIjoxLjAsImhpZGVfTU9DS0JST0tFUl9vbl9tb2JpbGVfd2ViIjoxLjAsImhpZGVfTU9DS0JST0tFUl9JTVBMSUNJVF9vbl9pb3MiOjEuMCwiaGlkZV9NT0NLQlJPS0VSX0lNUExJQ0lUX29uX2FuZHJvaWQiOjEuMCwiaGlkZV9NT0NLQlJPS0VSX0lNUExJQ0lUX29uX21vYmlsZV93ZWIiOjEuMCwiaGlkZV9NT0NLQlJPS0VSX0NPREVfb25faW9zIjoxLjAsImhpZGVfTU9DS0JST0tFUl9DT0RFX29uX2FuZHJvaWQiOjEuMCwiaGlkZV9NT0NLQlJPS0VSX0NPREVfb25fbW9iaWxlX3dlYiI6MS4wLCJicm9rZXJfTU9PTU9PIjoxLjAsImJyb2tlcl9NT1RJTEFMT1NXQUwiOjEuMCwiYnJva2VyX05JTkpBVFJBREVSIjoxLjAsImJyb2tlcl9PQU5EQSI6MS4wLCJvYW5kYV9zZXJ2ZXJfbG9nZ2luZyI6MS4wLCJvYW5kYV9vYXV0aF9tdWx0aXBsZXhpbmciOjEuMCwiYnJva2VyX09LWCI6MS4wLCJicm9rZXJfT1BPRklOQU5DRSI6MS4wLCJicm9rZXJfT1BUSU1VUyI6MS4wLCJicm9rZXJfT1NNQU5MSSI6MS4wLCJicm9rZXJfT1NNQU5MSUZYIjoxLjAsInBhcGVyX2ZvcmNlX2Nvbm5lY3RfcHVzaHN0cmVhbSI6MS4wLCJwYXBlcl9zdWJhY2NvdW50X2N1c3RvbV9jdXJyZW5jeSI6MS4wLCJwYXBlcl9vdXRzaWRlX3J0aCI6MS4wLCJicm9rZXJfUEFZVE0iOjEuMCwiYnJva2VyX1BFUFBFUlNUT05FIjoxLjAsImJyb2tlcl9QSEVNRVgiOjEuMCwiYnJva2VyX1BISUxMSVBDQVBJVEFMX1RSIjoxLjAsImJyb2tlcl9QSElMTElQTk9WQSI6MS4wLCJicm9rZXJfUExVUzUwMCI6MS4wLCJwbHVzNTAwX29hdXRoX2F1dGhvcml6YXRpb24iOjEuMCwiUExVUzUwMFVTX2JldGEiOjEuMCwiYnJva2VyX1BVUlBMRVRSQURJTkciOjEuMCwiYnJva2VyX1FVRVNUUkFERSI6MS4wLCJicm9rZXJfUkFWQUJVUlNBVElMIjoxLjAsIlJBVkFCVVJTQVRJTF9iZXRhIjoxLjAsImJyb2tlcl9SSVlBRENBUElUQUwiOjEuMCwiYnJva2VyX1JPQk9NQVJLRVRTIjoxLjAsImJyb2tlcl9SRVBMQVlCUk9LRVIiOjEuMCwiYnJva2VyX1NBTVVFTCI6MS4wLCJicm9rZXJfU0FYT0JBTksiOjEuMCwiYnJva2VyX1NIQVJFTUFSS0VUIjoxLjAsImJyb2tlcl9TS0lMTElORyI6MS4wLCJicm9rZXJfU1BSRUFERVgiOjEuMCwiYnJva2VyX1NXSVNTUVVPVEUiOjEuMCwiYnJva2VyX1NUT05FWCI6MS4wLCJicm9rZXJfVEFTVFlGWCI6MS4wLCJicm9rZXJfVEFTVFlUUkFERSI6MS4wLCJicm9rZXJfVEhJTktNQVJLRVRTIjoxLjAsInRoaW5rbWFya2V0c19hY2NvdW50X2RhdGFfc3RyZWFtaW5nIjoxLjAsImJyb2tlcl9USUNLTUlMTCI6MS4wLCJoaWRlX1RJR0VSX29uX2lvcyI6MS4wLCJoaWRlX1RJR0VSX29uX2FuZHJvaWQiOjEuMCwiaGlkZV9USUdFUl9vbl9tb2JpbGVfd2ViIjoxLjAsImJyb2tlcl9UUkFERU5BVElPTiI6MS4wLCJicm9rZXJfVFJBREVTVEFUSU9OIjoxLjAsInRyYWRlc3RhdGlvbl9yZXF1ZXN0X3NlcnZlcl9sb2dnZXIiOjEuMCwidHJhZGVzdGF0aW9uX2FjY291bnRfZGF0YV9zdHJlYW1pbmciOjEuMCwidHJhZGVzdGF0aW9uX3N0cmVhbWluZ19zZXJ2ZXJfbG9nZ2luZyI6MS4wLCJicm9rZXJfVFJBREVaRVJPIjoxLjAsImJyb2tlcl9UUkFESUVSIjoxLjAsImJyb2tlcl9UUkFESUVSX0ZVVFVSRVMiOjEuMCwidHJhZGllcl9mdXR1cmVzX29hdXRoX2F1dGhvcml6YXRpb24iOjEuMCwiYnJva2VyX1RSQURPVkFURSI6MS4wLCJoaWRlX1RSQURVX29uX2lvcyI6MS4wLCJoaWRlX1RSQURVX29uX2FuZHJvaWQiOjEuMCwiaGlkZV9UUkFEVV9vbl9tb2JpbGVfd2ViIjoxLjAsInRyYWR1X3NwcmVhZF9iZXQiOjEuMCwiYnJva2VyX1RSSVZFIjoxLjAsImJyb2tlcl9WQU5UQUdFIjoxLjAsImJyb2tlcl9WRUxPQ0lUWSI6MS4wLCJicm9rZXJfV0VCVUxMIjoxLjAsImJyb2tlcl9XRUJVTExKQVBBTiI6MS4wLCJicm9rZXJfV0VCVUxMUEFZIjoxLjAsImJyb2tlcl9XRUJVTExVSyI6MS4wLCJicm9rZXJfV0hJVEVCSVQiOjEuMCwiYnJva2VyX1dIU0VMRklOVkVTVCI6MS4wLCJicm9rZXJfV0hTRUxGSU5WRVNUX0ZVVFVSRVMiOjEuMCwiV0hTRUxGSU5WRVNUX0ZVVFVSRVNfb2F1dGhfYXV0aG9yaXphdGlvbiI6MS4wLCJicm9rZXJfWENVQkUiOjEuMCwiYnJva2VyX1lMRyI6MS4wLCJicm9rZXJfaWRfc2Vzc2lvbiI6MS4wLCJkaXNhbGxvd19jb25jdXJyZW50X3Nlc3Npb25zIjoxLjAsInVzZV9jb2RlX2Zsb3dfdjJfcHJvdmlkZXIiOjEuMCwidXNlX2NvZGVfZmxvd192Ml9wcm92aWRlcl9mb3JfdW50ZXN0ZWRfYnJva2VycyI6MS4wLCJtb2JpbGVfdHJhZGluZ193ZWIiOjEuMCwibW9iaWxlX3RyYWRpbmdfaW9zIjoxLjAsIm1vYmlsZV90cmFkaW5nX2FuZHJvaWQiOjEuMCwiY29udGludW91c19mcm9udF9jb250cmFjdF90cmFkaW5nIjoxLjAsInRyYWRpbmdfcmVxdWVzdF9zZXJ2ZXJfbG9nZ2VyIjoxLjAsInJlc3RfcmVxdWVzdF9zZXJ2ZXJfbG9nZ2VyIjoxLjAsIm9hdXRoMl9jb2RlX2Zsb3dfcHJvdmlkZXJfc2VydmVyX2xvZ2dlciI6MS4wLCJyZXN0X29hdXRoMl9jb2RlX2Zsb3dfbXVsdGlwbGV4aW5nIjoxLjAsInJlc3RfbG9nb3V0X29uXzQyOSI6MS4wLCJyZXZpZXdfcG9wdXBfb25fY2hhcnQiOjEuMCwic2hvd19jb25jdXJyZW50X2Nvbm5lY3Rpb25fd2FybmluZyI6MS4wLCJlbmFibGVfdHJhZGluZ19zZXJ2ZXJfbG9nZ2VyIjoxLjAsIm9yZGVyX3ByZXNldHMiOjEuMCwib3JkZXJfdGlja2V0X3Jlc2l6YWJsZV9kcmF3ZXJfb24iOjEuMCwicmVzdF91c2VfYXN5bmNfbWFwcGVyIjoxLjAsInBhcGVyX2NvbXBldGl0aW9uX2Jhbm5lcl9zaG93X3BybyI6MS4wLCJwYXBlcl9jb21wZXRpdGlvbl9zdGFydGVkX2RpYWxvZyI6MS4wLCJwYXBlcl9jb21wZXRpdGlvbl9zdGFydGVkX2RpYWxvZ19zaG93X3BybyI6MS4wLCJwYXBlcl9jb21wZXRpdGlvbl9sZWFkZXJib2FyZCI6MS4wLCJwYXBlcl9jb21wZXRpdGlvbl9wcmV2aW91c19jb21wZXRpdGlvbnMiOjEuMCwiYW1wX29hdXRoX2F1dGhvcml6YXRpb24iOjEuMCwiYmx1ZWxpbmVfb2F1dGhfYXV0aG9yaXphdGlvbiI6MS4wLCJkb3JtYW5fb2F1dGhfYXV0aG9yaXphdGlvbiI6MS4wLCJpcm9uYmVhbV9vYXV0aF9hdXRob3JpemF0aW9uIjoxLjAsIm9wdGltdXNfb2F1dGhfYXV0aG9yaXphdGlvbiI6MS4wLCJzdG9uZXhfb2F1dGhfYXV0aG9yaXphdGlvbiI6MS4wLCJ5bGdfb2F1dGhfYXV0aG9yaXphdGlvbiI6MS4wLCJ0cmFkaW5nX2dlbmVyYWxfZXZlbnRzX2dhX3RyYWNraW5nIjoxLjAsInJlcGxheV9yZXN1bHRfc2hhcmluZyI6MS4wLCJyZXBsYXlfdHJhZGluZ19icmFja2V0cyI6MS4wLCJoaWRlX2FsbF9icm9rZXJzX2J1dHRvbl9pbl9pb3NfYXBwIjoxLjAsImZvcmNlX21heF9hbGxvd2VkX3B1bGxpbmdfaW50ZXJ2YWxzIjoxLjAsInBhcGVyX2RlbGF5X3RyYWRpbmciOjEuMCwiZW5hYmxlX2ZpcnN0X3RvdWNoX2lzX3NlbGVjdGlvbiI6MS4wLCJjbGVhcl9wcm9qZWN0X29yZGVyX29uX29yZGVyX3RpY2tldF9jbG9zZSI6MS4wLCJlbmFibGVfbmV3X2JlaGF2aW9yX29mX2NvbmZpcm1fYnV0dG9uc19vbl9tb2JpbGUiOjEuMCwicmVuZXdfdG9rZW5fcHJlZW1wdGlvbl8zMCI6MS4wLCJkb19ub3Rfb3Blbl9vdF9mcm9tX3BsdXNfYnV0dG9uIjoxLjAsImJyb2tlcl9zaWRlX3Byb21vdGlvbiI6MS4wLCJlbmFibGVfbmV3X3RyYWRpbmdfbWVudV9zdHJ1Y3R1cmUiOjEuMCwicXVpY2tfdHJhZGluZ19wYW5lbCI6MS4wLCJwYXBlcl9vcmRlcl9jb25maXJtYXRpb25fZGlhbG9nIjoxLjAsInBhcGVyX211bHRpcGxlX2xldmVsc19lbmFibGVkIjoxLjAsInBhcGVyX21hcmdpbl9jb250cm9sIjoxLjAsImVuYWJsZV9zZWdtZW50YXRpb25fcGFwZXJfdHJhZGluZyI6MS4wLCJlbmFibGVfY2hhcnRfYWRhcHRpdmVfdHBzbF9idXR0b25zX29uX21vYmlsZSI6MS4wLCJlbmFibGVfbWFya2V0X3Byb2plY3Rfb3JkZXIiOjEuMCwiZW5hYmxlX3N5bWJvbHNfcG9wdWxhcml0eV9zaG93aW5nIjoxLjAsImVuYWJsZV90cmFuc2xhdGlvbnNfczNfdXBsb2FkIjoxLjAsImV0Zl9mdW5kX2Zsb3dzX29ubHlfZGF5c19yZXNvbHV0aW9ucyI6MS4wLCJkaXNhYmxlX3Nub3dwbG93X3BsYXRmb3JtX2V2ZW50cyI6MS4wLCJub3RpZnlfaWRlYV9tb2RzX2Fib3V0X2ZpcnN0X3B1YmxpY2F0aW9uIjoxLjAsImVuYWJsZV93YWZfdHJhY2tpbmciOjEuMCwibmV3X2Vycm9yc19mbG93IjoxLjAsInF1b3RlLXRva2VuLWZpbHRlci1vd24tc2NyaXB0cy1ieS1hY2Nlc3MiOjEuMCwia2VlcF9pbmRpY2F0b3JzX3NlYXJjaF9zdGF0ZSI6MS4wLCJrZWVwX2luZGljYXRvcnNfdGFiX3Njcm9sbF9zdGF0ZSI6MS4wLCJjb25maWd1cmFibGVfc2VhcmNoX2FuZF9maWx0cmF0aW9uIjoxLjAsInBpbmVfZWRpdG9yX3dyYXBfb25fbGluZV9zcGxpdCI6MS4wLCJzeW1ib2xfc2VhcmNoX2NvdW50cnlfc291cmNlcyI6MS4wLCJ3YXRjaGxpc3RzX2RpYWxvZ19zY3JvbGxfdG9fYWN0aXZlIjoxLjAsImJvdHRvbV9wYW5lbF90cmFja19ldmVudHMiOjEuMCwic25vd3Bsb3dfYmVhY29uX2ZlYXR1cmUiOjEuMCwic2hvd19kYXRhX3Byb2JsZW1zX2luX2hlbHBfY2VudGVyIjoxLjAsImVuYWJsZV9hcHBsZV9kZXZpY2VfY2hlY2siOjEuMCwiZW5hYmxlX2FwcGxlX2ludHJvX29mZmVyX3NpZ25hdHVyZSI6MS4wLCJlbmFibGVfYXBwbGVfcHJvbW9fb2ZmZXJfc2lnbmF0dXJlX3YyIjoxLjAsImVuYWJsZV9hcHBsZV9wcm9tb19zaWduYXR1cmUiOjEuMCwiZW5hYmxlX3B1c2hfbm90aWZpY2F0aW9uc19hbmRyb2lkIjoxLjAsImVuYWJsZV9wdXNoX25vdGlmaWNhdGlvbnNfaW9zIjoxLjAsImVuYWJsZV9tYW50aWNvcmVfY2x1c3RlciI6MS4wLCJlbmFibGVfcHVzaHN0cmVhbV9hdXRoIjoxLjAsImVuYWJsZV9lbnZveV9wcm94eSI6MS4wLCJlbmFibGVfZW52b3lfcHJveHlfcGFwZXJ0cmFkaW5nIjoxLjAsImVuYWJsZV9lbnZveV9wcm94eV9zY3JlZW5lciI6MS4wLCJvcHRpb25zX3JlZHVjZV9wb2xsaW5nX2ludGVydmFsIjoxLjAsIm9wdGlvbnNfYnVpbGRlcl9ncm91cF9hY3Rpb25zIjoxLjAsIm9wdGlvbnNfY2hhaW5fc2lnbWFfZmlsdGVyIjoxLjAsIm9wdGlvbnNfYnJva2VyX3N0cmF0ZWdpZXMiOjEuMCwic2hvd190b2FzdF9hYm91dF91bnJlYWRfbWVzc2FnZSI6MS4wLCJlbmFibGVfcGFydG5lcl9wYXlvdXQiOjEuMCwiZW5hYmxlX2VtYWlsX2NoYW5nZV9sb2dnaW5nIjoxLjAsImVuYWJsZV9lbWFpbF9vbl9wYXJ0bmVyX3N0YXR1c19jaGFuZ2UiOjEuMCwiZW5hYmxlX3BhcnRuZXJfcHJvZ3JhbV9hcHBseSI6MS4wLCJlbmFibGVfcGFydG5lcl9wcm9ncmFtIjoxLjAsImNvbXByZXNzX2NhY2hlX2RhdGEiOjEuMCwibmV3c19lbmFibGVfc3RyZWFtaW5nIjoxLjAsIm5ld3Nfc2NyZWVuZXJfcGFnZV9jbGllbnQiOjEuMCwiZW5hYmxlX2RlY2xhcmF0aW9uX3BvcHVwX29uX2xvYWQiOjEuMCwic2hvd19kYXRhX2JvbmRzX2ZyZWVfdXNlcnMiOjEuMCwiZW5hYmxlX21vZGVybl9yZW5kZXJfbW9kZSI6MS4wLCJlbmFibGVfcHJvZl9wb3B1cF9mcmVlIjoxLjAsImlvc19hcHBfbmV3c19hbmRfbWluZHMiOjEuMCwiZG9fbm90X2Rpc2Nsb3NlX3Bob25lX29jY3VwYW5jeSI6MS4wLCJlbmFibGVfcmVkaXJlY3RfdG9fd2lkZ2V0X2RvY3VtZW50YXRpb25fb2ZfYW55X2xvY2FsaXphdGlvbiI6MS4wLCJuZXdzX2VuYWJsZV9zdHJlYW1pbmdfaGliZXJuYXRpb24iOjEuMCwibmV3c19zdHJlYW1pbmdfaGliZXJuYXRpb25fZGVsYXlfMTBtaW4iOjEuMCwicGFzc19yZWNvdmVyeV9zZWFyY2hfaGlkZV9pbmZvIjoxLjAsIm5ld3NfZW5hYmxlX3N0cmVhbWluZ19vbl9zY3JlZW5lciI6MS4wLCJlbmFibGVfZm9yY2VkX2VtYWlsX2NvbmZpcm1hdGlvbiI6MS4wLCJzaG93X2dpZnRfYnV0dG9uIjoxLjAsImFkZHJlc3NfdmFsaWRhdGlvbl9lbmFibGVkIjoxLjAsImRpc2FibGVfdW52ZXJpZmllZF9hZGRyZXNzIjoxLjAsImdlbmVyYXRlX2ludm9pY2VfbnVtYmVyX2J5X2NvdW50cnkiOjEuMCwic2hvd19mYXZvcml0ZV9sYXlvdXRzIjoxLjAsImVuYWJsZV9zb2NpYWxfYXV0aF9jb25maXJtYXRpb24iOjEuMCwiZW5hYmxlX2FkX2Jsb2NrX2RldGVjdCI6MS4wLCJ0dmRfbmV3X3RhYl9saW5raW5nIjoxLjAsInR2ZF90aW1lX2FuZF9kYXRlX3JhbmdlX2xpbmtpbmciOjEuMCwidXNlX2Jyb3dzZXJfc2Vzc2lvbl9zdG9yYWdlIjoxLjAsInVzZV9kZXNrdG9wX3Nlc3Npb25fc3RvcmFnZSI6MS4wLCJ3cm9uZ19hY2NvdW50X2RpYWxvZ19wcmltYXJ5X3N3aXRjaCI6MS4wLCJlbmFibGVfbGluZ3VhX2xhbmdfY2hlY2siOjEuMCwiZ2V0X3NhdmVkX2FjdGl2ZV9saXN0X2JlZm9yZV9nZXR0aW5nX2FsbF9saXN0cyI6MS4wLCJ3YXRjaGxpc3RfYWRkX3NvdXJjZV9wYXJhbSI6MS4wLCJzaG93X3JlZmVycmFsX25vdGlmaWNhdGlvbl9kaWFsb2ciOjEuMCwic2V0X25ld19ibGFja19jb2xvciI6MS4wLCJuZXdzX3VzZV9uZXdzX21lZGlhdG9yIjoxLjAsImFsbG93X3RyYWlsaW5nX3doaXRlc3BhY2VfaW5fbnVtYmVyX3Rva2VuIjoxLjAsInJlc3RyaWN0X3B3bmVkX3Bhc3N3b3JkX3NldCI6MS4wLCJub3RpZl9zZXR0aW5nc19lbmFibGVfbmV3X3N0b3JlIjoxLjAsIm5vdGlmX3NldHRpbmdzX2Rpc2FibGVfb2xkX3N0b3JlX3dyaXRlIjoxLjAsIm5vdGlmX3NldHRpbmdzX2Rpc2FibGVfb2xkX3N0b3JlX3JlYWQiOjEuMCwiY2hlY2tvdXQtZW5hYmxlLXJpc2tzZGsiOjEuMCwiY2hlY2tvdXQtZW5hYmxlLXJpc2tzZGstZm9yLWluaXRpYWwtcHVyY2hhc2UiOjEuMCwiZW5hYmxlX21ldGFkZWZlbmRlcl9jaGVja19mb3JfYWdyZWVtZW50IjoxLjAsInNob3dfZG93bmxvYWRfeWllbGRfY3VydmVzX2RhdGEiOjEuMCwibW92ZV9rZXlfdGVub3JzX3RvX3NldHRpbmdzIjoxLjAsInNob3dfeWllbGRfY3VydmVzX21hcCI6MS4wLCJkaXNhYmxlX3dpZGdldGJhcl9pbl9hcHBzIjoxLjAsImhpZGVfcHVibGljYXRpb25zX29mX2Jhbm5lZF91c2VycyI6MS4wLCJlbmFibGVfc3VtbWFyeV91cGRhdGVzX2Zyb21fY2hhcnRfc2Vzc2lvbiI6MS4wLCJzaG93X25ld3NfZmxvd190b29sX3JpZ2h0X2JhciI6MS4wLCJlbmFibGVfY2hhcnRfc2F2aW5nX3N0YXRzIjoxLjAsImVuYWJsZV9zYXZpbmdfc2FtZV9jaGFydF9yYXRlX2xpbWl0IjoxLjAsIm5ld3NfYWxlcnRzX2VuYWJsZWQiOjEuMCwibmV3c19tdWx0aXBsZV9hbGVydHNfZW5hYmxlZCI6MS4wLCJyZWZ1bmRfdW52b2lkYWJsZV9jb3Vwb25zX2VuYWJsZWQiOjEuMCwiZW5hYmxlX3Nub3dwbG93X2VtYWlsX3RyYWNraW5nIjoxLjAsIm5ld3NfZW5hYmxlX3NlbnRpbWVudCI6MS4wLCJ1c2VfaW5fc3ltYm9sX3NlYXJjaF9vcHRpb25zX21jeF9leGNoYW5nZSI6MS4wLCJlbmFibGVfdXNlcnNldHRpbmdzX3N5bWJvbHNfcGVyX3Jvd19zb2Z0X2xpbWl0IjowLjEsImZvcmJpZF9sb2dpbl93aXRoX3B3bmVkX3Bhc3N3b3JkcyI6MS4wLCJkZWJ1Z19nZXRfdGVzdF9iYXJzX2RhdGEiOjEuMCwibmV3c191c2VfbWVkaWF0b3Jfc3RvcnkiOjEuMCwibmV3c19mbG93X3JlY29uZmlndXJlX2ZpbHRlcnMiOjEuMCwiYmxhY2tfZnJpZGF5X2VuYWJsZV9za2lwX3RvX3BheW1lbnQiOjEuMCwiaGlkZV90cmFkaW5nX2J1dHRvbl9vbl9ib3R0b21fcGFuZWxfYW5kX3JlcGxheV90YWIiOjEuMCwiaGlkZV90cmFkZV9idXR0b25faGludF9pbl9oZWFkZXJfdG9vbGJhciI6MS4wLCJoaWRlX3NlZV9vbl9zdXBlcl9jaGFydHNfYnV0dG9uIjoxLjAsImhpZGVfc3ltYm9sX3BhZ2VfY2hhcnRfdHlwZV9zd2l0Y2hlciI6MS4wLCJkaXNhYmxlX2NoYXRfc3BhbV9wcm90ZWN0aW9uX2Zvcl9wcmVtaXVtX3VzZXJzIjoxLjAsImRpc2FibGVfcHVibGljX3BpbmVfc2NyaXB0X3B1Ymxpc2hfbGltaXRzIjoxLjAsIm1ha2VfdHJhZGluZ19wYW5lbF9jb250ZXh0dWFsX3RhYiI6MS4wLCJyZWNvbm5lY3RfZ2Fpbl9zZXNzaW9uX29uX2xzX2Vycm9yIjoxLjAsImNoZWNrb3V0LWZsb3ctcGF5bWVudHMiOjEuMCwiZm9yY2VfdG9fY29tcGxldGVfa3ljIjoxLjAsImluZGlhX2V4Y2x1ZGVfYnJhaW50cmVlX3RhYiI6MS4wLCJtYWNyb19tYXBzX2hpZGVfdG9vbHRpcF9jaGFydF9idXR0b24iOjEuMCwiZm9yY2Vfa3ljX2Zvcl9ub25wcm9fcHVyY2hhc2VfYnlfY29tbWVyY2lhbCI6MS4wLCJzaG93X3NwbGl0X3BhbmVsX2Z1bGxzY3JlZW5fYnV0dG9uIjoxLjAsInNob3dfc3BsaXRfcGFuZWxfbW92ZV9idXR0b25fdG9fdGl0bGUiOjEuMCwib3JkZXJfcHJlc2V0c19jcnVkX3N0b3JhZ2UiOjEuMCwib3JkZXJfcHJlc2V0c19yZW1vdmVfZnJvbV90dl9zZXR0aW5ncyI6MS4wLCJjaGVja291dC1mbG93LXRyaWFsIjoxLjAsImNoZWNrb3V0LWZsb3ctZ29vZ2xlcGF5IjoxLjAsImNoZWNrb3V0LWZsb3ctYXBwbGVwYXkiOjEuMCwiY2hlY2tvdXQtZmxvdy1wYXlwYWwiOjEuMCwiZm9yYmlkX3NpZ251cF93aXRoX2Zha2VfZ21haWxfZG9tYWlucyI6MS4wLCJzaG93X2ltcG9ydF9mcm9tX3BhcGVyX3RyYWRpbmdfYnV0dG9uIjoxLjAsInN5bWJvbF9zZWFyY2hfZ3JvdXBpbmciOjEuMCwiY2hlY2tvdXQtZmxvdy1nb29nbGVwYXktdHJpYWwiOjEuMCwiY2hlY2tvdXQtZmxvdy1hcHBsZXBheS10cmlhbCI6MS4wLCJjaGVja291dC1mbG93LXBheXBhbC10cmlhbCI6MS4wLCJ2b2lkX25vdF9mb3VuZF9ja29fcGF5bWVudF9pbl9hcHByb3ZlZF93ZWJob29rIjoxLjAsInNob3dfcGFuZWxfY29sbGFwc2VfYnV0dG9uIjoxLjAsImRlbGF5X3N0YXR1c19vbl9sYXN0X2JhciI6MC41fTsKd2luZG93LmluaXREYXRhID0ge307CgkJd2luZG93LlMzX0xPR09fU0VSVklDRV9CQVNFX1VSTCA9ICJodHRwczovL3MzLXN5bWJvbC1sb2dvLnRyYWRpbmd2aWV3LmNvbS8iOwoKd2luZG93LmluaXREYXRhID0geyJ3aWRnZXREZWZhdWx0cyI6eyJkZWZfaGlkZV9zeW1ib2xfZWRpdCI6dHJ1ZSwid2lkZ2V0RmVhdHVyZXNldCI6IndpZGdldCIsImJvZHlJZCI6IndpZGdldC1jb250YWluZXIiLCJib2R5Q2xhc3NlcyI6WyJjaGFydC1wYWdlIiwidW5zZWxlY3RhYmxlIiwib24td2lkZ2V0Il0sImNvbG9yVGhlbWUiOiJsaWdodCIsImxvY2FsZSI6ImVuIn19OwoJCXdpbmRvdy5pbml0RGF0YS5jdXJyZW50TG9jYWxlSW5mbyA9IHsibGFuZ3VhZ2UiOiJlbiIsImxhbmd1YWdlX25hbWUiOiJFbmdsaXNoIiwiZmxhZyI6InVzIiwiZ2VvaXBfY29kZSI6InVzIiwiaXNvIjoiZW4iLCJpc29fNjM5XzMiOiJlbmciLCJnbG9iYWxfbmFtZSI6IkVuZ2xpc2giLCJpc19vbmx5X3JlY29tbWVuZGVkX3R3X2F1dG9yZXBvc3QiOnRydWV9OwoJCXdpbmRvdy5pbml0RGF0YS5zZXR0aW5ncyA9IHsnUzNfTE9HT19TRVJWSUNFX0JBU0VfVVJMJzogJ2h0dHBzOi8vczMtc3ltYm9sLWxvZ28udHJhZGluZ3ZpZXcuY29tLycsICdTM19ORVdTX0lNQUdFX1NFUlZJQ0VfQkFTRV9VUkwnOiAnaHR0cHM6Ly9zMy50cmFkaW5ndmlldy5jb20vbmV3cy8nLCAnV0VCUEFDS19TVEFUSUNfUEFUSCc6ICdodHRwczovL3N0YXRpYy50cmFkaW5ndmlldy5jb20vc3RhdGljL2J1bmRsZXMvJywgJ1RSQURJTkdfVVJMUyc6IHsnZnJlZSc6ICdodHRwczovL3BhcGVydHJhZGluZy1mcmVlLnRyYWRpbmd2aWV3LmNvbScsICdwcm8nOiAnaHR0cHM6Ly9wYXBlcnRyYWRpbmcudHJhZGluZ3ZpZXcuY29tJ30sICdDT05URVNUU19VUkwnOiAnL3BhcGVyLXRyYWRpbmcnLCAnQ1JVRF9TVE9SQUdFX1VSTCc6ICdodHRwczovL2NydWQtc3RvcmFnZS50cmFkaW5ndmlldy5jb20nfTs8L3NjcmlwdD4KCgk8c2NyaXB0IG5vbmNlPSJHZk5lTWJJM2p3WUtFVE9ybU83QTlnPT0iPgoJCSgoKT0+eyJ1c2Ugc3RyaWN0Ijtjb25zdCBlPXt3aGl0ZWxhYmVsOiEwLHBlcm1pc3Npb25PdmVycmlkZXM6ITAsbGlua0NhcHR1cmluZ0FsbG93ZWQ6ITAsc3ltYm9sX3NlYXJjaF9kZWZhdWx0X2V4Y2hhbmdlOiEwLHN5bWJvbF9zZWFyY2hfYWxsb3dlZF9leGNoYW5nZXM6ITB9O2NvbnN0IHQ9d2luZG93O3QuaW5pdERhdGE9dC5pbml0RGF0YXx8e307Y29uc3QgYT0vXCsvZyxuPS88XC8/W14+XSsoPnwkKS9nLHM9ZT0+ZGVjb2RlVVJJQ29tcG9uZW50KGUucmVwbGFjZShhLCIgIikpLnJlcGxhY2UobiwiIiksbz10LmxvY2F0aW9uLnNlYXJjaC5zdWJzdHJpbmcoMSksYz0vKFteJj1dKyk9PyhbXiZdKikvZyxpPXt9O2xldCBsLHI9Yy5leGVjKG8pO2Zvcig7bnVsbCE9PXI7KWlbcyhyWzFdKV09cyhyWzJdKSxyPWMuZXhlYyhvKTt0cnl7bD1KU09OLnBhcnNlKGRlY29kZVVSSUNvbXBvbmVudCh0LmxvY2F0aW9uLmhhc2guc3Vic3RyaW5nKDEpKSksIm9iamVjdCI9PXR5cGVvZiBsJiZudWxsIT09bHx8KGw9e30pfWNhdGNoKGUpe2w9e319dmFyIGg7dC5pbml0RGF0YS5xdWVyeVNldHRpbmdzPWksdC5pbml0RGF0YS5oYXNoU2V0dGluZ3M9KGg9bCxPYmplY3Qua2V5cyhoKS5mb3JFYWNoKCh0PT57ZVt0XSYmZGVsZXRlIGhbdF19KSksaCl9KSgpOwoJPC9zY3JpcHQ+CgoJPHNjcmlwdCBub25jZT0iR2ZOZU1iSTNqd1lLRVRPcm1PN0E5Zz09Ij53aW5kb3cuU1NfSE9TVCA9ICJzeW1ib2wtc2VhcmNoLnRyYWRpbmd2aWV3LmNvbSI7CgkJd2luZG93LldJREdFVF9TSEVSSUZGX0hPU1QgPSAiaHR0cHM6Ly93aWRnZXQtc2hlcmlmZi50cmFkaW5ndmlldy13aWRnZXQuY29tIjsKCQl3aW5kb3cuaXNfYXV0aGVudGljYXRlZCA9IGZhbHNlOwoKd2luZG93LlBJTkVfVVJMID0gImh0dHBzOi8vcGluZS1mYWNhZGUudHJhZGluZ3ZpZXcuY29tL3BpbmUtZmFjYWRlIjsKCgl3aW5kb3cuX19pbml0aWFsRW5hYmxlZEZlYXR1cmVzZXRzID0gW3dpbmRvdy5pbml0RGF0YS53aWRnZXREZWZhdWx0cy53aWRnZXRGZWF0dXJlc2V0XQoJCS5jb25jYXQoSlNPTi5wYXJzZSh3aW5kb3cuaW5pdERhdGEucXVlcnlTZXR0aW5ncy5lbmFibGVkX2ZlYXR1cmVzIHx8ICJbXSIpKQoJCS5jb25jYXQoSlNPTi5wYXJzZSh3aW5kb3cuaW5pdERhdGEud2lkZ2V0RGVmYXVsdHMuZW5hYmxlZF9mZWF0dXJlcyB8fCAiW10iKSkKCTsKCgl3aW5kb3cuX19pbml0aWFsRGlzYWJsZWRGZWF0dXJlc2V0cyA9IEpTT04ucGFyc2Uod2luZG93LmluaXREYXRhLnF1ZXJ5U2V0dGluZ3MuZGlzYWJsZWRfZmVhdHVyZXMgfHwgIltdIikKCQkuY29uY2F0KEpTT04ucGFyc2Uod2luZG93LmluaXREYXRhLndpZGdldERlZmF1bHRzLmRpc2FibGVkX2ZlYXR1cmVzIHx8ICJbXSIpKQoJOwoKCXdpbmRvdy5fX2RlZmF1bHRzT3ZlcnJpZGVzID0gSlNPTi5wYXJzZSh3aW5kb3cuaW5pdERhdGEucXVlcnlTZXR0aW5ncy5vdmVycmlkZXMgfHwgd2luZG93LmluaXREYXRhLndpZGdldERlZmF1bHRzLm92ZXJyaWRlcyB8fCAie30iKTsKCgl3aW5kb3cuU1NfSE9TVCA9ICJzeW1ib2wtc2VhcmNoLnRyYWRpbmd2aWV3LmNvbSI7Cgl3aW5kb3cuU1NfRE9NQUlOX1BBUkFNRVRFUiA9ICJwcm9kdWN0aW9uIjsKCXdpbmRvdy5XSURHRVRfU0hFUklGRl9IT1NUID0gImh0dHBzOi8vd2lkZ2V0LXNoZXJpZmYudHJhZGluZ3ZpZXctd2lkZ2V0LmNvbSI7Cgl3aW5kb3cuVEVMRU1FVFJZX1dTX0VSUk9SX0xPR1NfVEhSRVNIT0xEID0gMTAwOwoJd2luZG93LlBVU0hTVFJFQU1fVVJMID0gIndzczovL3B1c2hzdHJlYW0udHJhZGluZ3ZpZXcuY29tIjsKCXdpbmRvdy5DSEFSVEVWRU5UU19VUkwgPSAiaHR0cHM6Ly9jaGFydGV2ZW50cy1yZXV0ZXJzLnRyYWRpbmd2aWV3LmNvbS8iOwoJd2luZG93LkVDT05PTUlDX0NBTEVOREFSX1VSTCA9ICJodHRwczovL2Vjb25vbWljLWNhbGVuZGFyLnRyYWRpbmd2aWV3LmNvbS8iOwoJd2luZG93LkVBUk5JTkdTX0NBTEVOREFSX1VSTCA9ICJodHRwczovL3NjYW5uZXIudHJhZGluZ3ZpZXcuY29tIjsKCXdpbmRvdy5ORVdTX1NFUlZJQ0VfVVJMID0gImh0dHBzOi8vbmV3cy1oZWFkbGluZXMudHJhZGluZ3ZpZXcuY29tIjsKCXdpbmRvdy5ORVdTX01FRElBVE9SX1VSTCA9ICJodHRwczovL25ld3MtbWVkaWF0b3IudHJhZGluZ3ZpZXcuY29tIjsKCXdpbmRvdy5ORVdTX1NUUkVBTUlOR19VUkwgPSAiaHR0cHM6Ly9ub3RpZmljYXRpb25zLnRyYWRpbmd2aWV3LmNvbS9uZXdzL2NoYW5uZWwiOwoJd2luZG93LlNDUkVFTkVSX0hPU1QgPSAiaHR0cHM6Ly9zY2FubmVyLnRyYWRpbmd2aWV3LmNvbSI7Cgl3aW5kb3cuQ09VTlRSWV9DT0RFX1RPX0RFRkFVTFRfRVhDSEFOR0UgPSB7ImVuIjoiVVMiLCJ1cyI6IlVTIiwiYWUiOiJBRFgiLCJhciI6IkJDQkEiLCJhdCI6IlZJRSIsImF1IjoiQVNYIiwiYmQiOiJEU0VCRCIsImJlIjoiRVVST05FWFRfQlJVIiwiYmciOiJCU0VTT0YiLCJiaCI6IkJBSFJBSU4iLCJiciI6IkJNRkJPVkVTUEEiLCJjYSI6IlRTWCIsImNoIjoiU0lYIiwiY2wiOiJCQ1MiLCJ6aF9DTiI6IlNTRSIsImNvIjoiQlZDIiwiaHIiOiJaU0UiLCJjeSI6IkNTRUNZIiwiY3oiOiJQU0VDWiIsImRlX0RFIjoiWEVUUiIsImRrIjoiT01YQ09QIiwiZWUiOiJPTVhUU0UiLCJlZyI6IkVHWCIsImVzIjoiQk1FIiwiZmkiOiJPTVhIRVgiLCJmciI6IkVVUk9ORVhUX1BBUiIsImdyIjoiQVRIRVgiLCJoayI6IkhLRVgiLCJodSI6IkJFVCIsImlkIjoiSURYIiwiaWUiOiJFVVJPTkVYVERVQiIsImhlX0lMIjoiVEFTRSIsImluIjoiQlNFIiwiaXMiOiJPTVhJQ0UiLCJpdCI6Ik1JTCIsImphIjoiVFNFIiwia2UiOiJOU0VLRSIsImtyIjoiS1JYIiwia3ciOiJLU0UiLCJsayI6IkNTRUxLIiwibHQiOiJPTVhWU0UiLCJsdiI6Ik9NWFJTRSIsImx1IjoiTFVYU0UiLCJteCI6IkJNViIsIm1hIjoiQ1NFTUEiLCJtc19NWSI6Ik1ZWCIsIm5nIjoiTlNFTkciLCJubCI6IkVVUk9ORVhUX0FNUyIsIm5vIjoiT1NMIiwibnoiOiJOWlgiLCJwZSI6IkJWTCIsInBoIjoiUFNFIiwicGsiOiJQU1giLCJwbCI6IkdQVyIsInB0IjoiRVVST05FWFRfTElTIiwicWEiOiJRU0UiLCJycyI6IkJFTEVYIiwicnUiOiJSVVMiLCJybyI6IkJWQiIsImFyX0FFIjoiVEFEQVdVTCIsInNlIjoiTkdNIiwic2ciOiJTR1giLCJzaSI6IkxKU0UiLCJzayI6IkJTU0UiLCJ0aF9USCI6IlNFVCIsInRuIjoiQlZNVCIsInRyIjoiQklTVCIsInpoX1RXIjoiVFdTRSIsImdiIjoiTFNFIiwidmUiOiJCVkNWIiwidmlfVk4iOiJIT1NFIiwiemEiOiJKU0UifTsKCXdpbmRvdy5QSU5FX1VSTCA9ICJodHRwczovL3BpbmUtZmFjYWRlLnRyYWRpbmd2aWV3LmNvbS9waW5lLWZhY2FkZSI7Cgl3aW5kb3cuVEVMRU1FVFJZX0hPU1RTID0geyJjaGFydHMiOnsiZnJlZSI6Imh0dHBzOi8vdGVsZW1ldHJ5LnRyYWRpbmd2aWV3LmNvbS9mcmVlIiwicHJvIjoiaHR0cHM6Ly90ZWxlbWV0cnkudHJhZGluZ3ZpZXcuY29tL3BybyIsIndpZGdldCI6Imh0dHBzOi8vdGVsZW1ldHJ5LnRyYWRpbmd2aWV3LmNvbS93aWRnZXQiLCJpb3NfZnJlZSI6Imh0dHBzOi8vdGVsZW1ldHJ5LnRyYWRpbmd2aWV3LmNvbS9jaGFydHMtaW9zLWZyZWUiLCJpb3NfcHJvIjoiaHR0cHM6Ly90ZWxlbWV0cnkudHJhZGluZ3ZpZXcuY29tL2NoYXJ0cy1pb3MtcHJvIiwiYW5kcm9pZF9mcmVlIjoiaHR0cHM6Ly90ZWxlbWV0cnkudHJhZGluZ3ZpZXcuY29tL2NoYXJ0cy1hbmRyb2lkLWZyZWUiLCJhbmRyb2lkX3BybyI6Imh0dHBzOi8vdGVsZW1ldHJ5LnRyYWRpbmd2aWV3LmNvbS9jaGFydHMtYW5kcm9pZC1wcm8ifSwiYWxlcnRzIjp7ImFsbCI6Imh0dHBzOi8vdGVsZW1ldHJ5LnRyYWRpbmd2aWV3LmNvbS9hbGVydHMifSwibGluZV90b29sc19zdG9yYWdlIjp7ImFsbCI6Imh0dHBzOi8vdGVsZW1ldHJ5LnRyYWRpbmd2aWV3LmNvbS9saW5lLXRvb2xzLXN0b3JhZ2UifSwibmV3cyI6eyJhbGwiOiJodHRwczovL3RlbGVtZXRyeS50cmFkaW5ndmlldy5jb20vbmV3cyJ9LCJwaW5lIjp7ImFsbCI6Imh0dHBzOi8vdGVsZW1ldHJ5LnRyYWRpbmd2aWV3LmNvbS9waW5lIn0sImNhbGVuZGFycyI6eyJhbGwiOiJodHRwczovL3RlbGVtZXRyeS50cmFkaW5ndmlldy5jb20vY2FsZW5kYXJzIn0sInNpdGUiOnsiZnJlZSI6Imh0dHBzOi8vdGVsZW1ldHJ5LnRyYWRpbmd2aWV3LmNvbS9zaXRlLWZyZWUiLCJwcm8iOiJodHRwczovL3RlbGVtZXRyeS50cmFkaW5ndmlldy5jb20vc2l0ZS1wcm8iLCJ3aWRnZXQiOiJodHRwczovL3RlbGVtZXRyeS50cmFkaW5ndmlldy5jb20vc2l0ZS13aWRnZXQifSwidHJhZGluZyI6eyJhbGwiOiJodHRwczovL3RlbGVtZXRyeS50cmFkaW5ndmlldy5jb20vdHJhZGluZyJ9fTsKCgkvLyBSRUNBUFRDSEFfU0lURV9LRVkgaXMgTk9UIHVudXNlZCEgU2VlIFRWLTEyNjk5LCBUVi0xMzAwMSBhbmQgc3RhdGljL2pzL2RpYWxvZ3Mvc2lnbi1tb2RhbC9zaWduLW1vZGFsLWltcGwuZXM2Cgl3aW5kb3cuUkVDQVBUQ0hBX1NJVEVfS0VZID0gIjZMY3F2MjRVQUFBQUFJdmtFbER2d1B4RDBSOHNjRG5NcGl6YUJjSFEiOwoJd2luZG93LlJFQ0FQVENIQV9TSVRFX0tFWV9WMyA9ICI2TGVRTUhnVUFBQUFBS0NZY3RpQkdXWXJYTl90dnJPRFNaN2k5ZExBIjsKCgl3aW5kb3cuaXNfYXV0aGVudGljYXRlZCA9IGZhbHNlOwoKCXdpbmRvdy5mZWF0dXJlVG9nZ2xlU3RhdGUgPSB7InNob3dfZmVhdHVyZWRfaXBvIjoxLjAsImJsYWNrX2ZyaWRheV9wb3B1cCI6MS4wLCJibGFja19mcmlkYXlfbWFpbnBhZ2UiOjEuMCwiYmxhY2tfZnJpZGF5X2V4dGVuZF9saW1pdGF0aW9uIjoxLjAsImVuYWJsZV90cmFkaW5nX3JlcGxheV9mb3JfcG9pbnRfaW5kZXhlcyI6MS4wLCJpbmNyZWFzZV9tZXRhaW5mb192ZXJzaW9uIjowLjM1LCJjaGFydF9hdXRvc2F2ZV81bWluIjoxLjAsImNoYXJ0X2F1dG9zYXZlXzMwbWluIjoxLjAsInBlcmZvcm1hbmNlX3Rlc3RfbW9kZSI6MS4wLCJjaGVja19hdXRoX3Rva2VuX2V4cGlyYXRpb25fb25fZXZlcnlfcmVxdWVzdCI6MS4wLCJjaGFydF9zdG9yYWdlX2hpYmVybmF0aW9uX2RlbGF5XzYwbWluIjoxLjAsInN1cHBvcnRfcGVyc2lzdGVudF9sb2dzIjoxLjAsIm5ld19zdG9yYWdlX3N1YnNjcmlwdGlvbl91cmwiOjEuMCwicmVtb3ZlX2FuY2hvcmVkX3RleHQiOjEuMCwiZW5hYmxlX3N0ZXBfYnlfc3RlcF9oaW50c19mb3JfZHJhd2luZ3MiOjEuMCwicHVzaHN0cmVhbV9iYXNpY190ZWxlbWV0cnkiOjEuMCwiYWxsb3dfYnJhY2tldHNfcHJvZml0X2xvc3MiOjEuMCwiZW5hYmxlX3RyYWRlZF9jb250ZXh0X2xpbmtpbmciOjEuMCwib3JkZXJfY29udGV4dF92YWxpZGF0aW9uX2luX2luc3RhbnRfbW9kZSI6MS4wLCJhbGVydHMtb24tZnVuZGFtZW50YWwtbWV0cmljcyI6MS4wLCJhbGVydHMtbm90aWZpY2F0aW9uLXNjaGVkdWxlIjoxLjAsImFsZXJ0cy13YXRjaGxpc3QtZXh0ZW5kZWQtaG91cnMiOjEuMCwiZW5hYmxlX3N5bWJvbF9jaGFuZ2VfcmVzdHJpY3Rpb25fb25fd2lkZ2V0cyI6MS4wLCJlbmFibGVfYXN4X3N5bWJvbF9yZXN0cmljdGlvbiI6MS4wLCJzeW1waG9ueV9hbGxvd19ub25fcGFydGl0aW9uZWRfY29va2llX29uX29sZF9zeW1waG9ueSI6MS4wLCJzeW1waG9ueV9ub3RpZmljYXRpb25fYmFkZ2VzIjoxLjAsInN5bXBob255X3VzZV9hZGtfZm9yX3VwZ3JhZGVfcmVxdWVzdCI6MS4wLCJzeW1waG9ueV9lbmFibGVfdGltZW91dF90cmFja2luZyI6MS4wLCJzeW1waG9ueV9lbmFibGVfdGltZW91dF9zb2Z0X2xpbWl0IjoxLjAsInN5bXBob255X2VuYWJsZV90aW1lb3V0X2hhcmRfbGltaXQiOjEuMCwidGVsZWdyYW1fbWluaV9hcHBfcmVkdWNlX3NuYXBzaG90X3F1YWxpdHkiOjEuMCwibmV3c19zeW1ib2xfb3ZlcnZpZXdfa2V5X2ZhY3RzIjoxLjAsInRpbWVvdXRfZGphbmdvX2RiIjowLjE1LCJ0aW1lb3V0X2RqYW5nb191c2Vyc2V0dGluZ3NfZGIiOjAuMTUsInRpbWVvdXRfZGphbmdvX2NoYXJ0c19kYiI6MC4yNSwidGltZW91dF9kamFuZ29fc3ltYm9sc19saXN0c19kYiI6MC4yNSwidGltZW91dF9kamFuZ29fbWluZHNfZGIiOjAuMDUsInRpbWVvdXRfZGphbmdvX2xvZ2dpbmdfZGIiOjAuMjUsImRpc2FibGVfc2VydmljZXNfbW9uaXRvcl9tZXRyaWNzIjoxLjAsImVuYWJsZV9zaWduaW5fcmVjYXB0Y2hhIjoxLjAsImVuYWJsZV9pZGVhX3NwYW1kZXRlY3Rvcm1sIjoxLjAsImVuYWJsZV9pZGVhX3NwYW1kZXRlY3Rvcm1sX2NvbW1lbnRzIjoxLjAsImVuYWJsZV9zcGFtZGV0ZWN0b3JtbF9jaGF0IjoxLjAsImVuYWJsZV9taW5kc19zcGFtZGV0ZWN0b3JtbCI6MS4wLCJiYWNrZW5kLWNvbm5lY3Rpb25zLWluLXRva2VuIjoxLjAsIm9uZV9jb25uZWN0aW9uX3dpdGhfZXhjaGFuZ2VzIjoxLjAsIm1vYmlsZS1hZHMtaW9zIjoxLjAsIm1vYmlsZS1hZHMtYW5kcm9pZCI6MS4wLCJnb29nbGUtb25lLXRhcC1zaWduaW4iOjEuMCwiYnJhaW50cmVlLWdvcHJvLWluLW9yZGVyLWRpYWxvZyI6MS4wLCJicmFpbnRyZWUtYXBwbGUtcGF5IjoxLjAsImJyYWludHJlZS1nb29nbGUtcGF5IjoxLjAsImJyYWludHJlZS1hcHBsZS1wYXktZnJvbS1pb3MtYXBwIjoxLjAsImJyYWludHJlZS1hcHBsZS1wYXktdHJpYWwiOjEuMCwidHJpcGxlYS1wYXltZW50cyI6MS4wLCJicmFpbnRyZWUtZ29vZ2xlLXBheS10cmlhbCI6MS4wLCJicmFpbnRyZWUtb25lLXVzZC12ZXJpZmljYXRpb24iOjEuMCwiYnJhaW50cmVlLTNkcy1lbmFibGVkIjoxLjAsImJyYWludHJlZS0zZHMtc3RhdHVzLWNoZWNrIjoxLjAsImJyYWludHJlZS1hZGRpdGlvbmFsLWNhcmQtY2hlY2tzLWZvci10cmlhbCI6MS4wLCJicmFpbnRyZWUtaW5zdGFudC1zZXR0bGVtZW50IjoxLjAsImJyYWludHJlZV9yZWN1cnJpbmdfYmlsbGluZ19zY2hlZHVsZXJfc3Vic2NyaXB0aW9uIjoxLjAsImNoZWNrb3V0X21hbnVhbF9jYXB0dXJlX3JlcXVpcmVkIjoxLjAsImNoZWNrb3V0LXN1YnNjcmlwdGlvbnMiOjEuMCwiY2hlY2tvdXRfYWRkaXRpb25hbF9jYXJkX2NoZWNrc19mb3JfdHJpYWwiOjEuMCwiY2hlY2tvdXRfZmFpbF9vbl9kdXBsaWNhdGVfcGF5bWVudF9tZXRob2RzX2Zvcl90cmlhbCI6MS4wLCJjaGVja291dF9mYWlsX29uX2Jhbm5lZF9jb3VudHJpZXNfZm9yX3RyaWFsIjoxLjAsImNoZWNrb3V0X2ZhaWxfb25fYmFubmVkX2JhbmtfZm9yX3RyaWFsIjoxLjAsImNoZWNrb3V0X2ZhaWxfb25fYmFubmVkX2JhbmtfZm9yX3ByZW1pdW1fdHJpYWwiOjEuMCwiY2hlY2tvdXRfZmFpbF9vbl9jbG9zZV90b19leHBpcmF0aW9uX2NhcmRfdHJpYWwiOjEuMCwiY2hlY2tvdXRfZmFpbF9vbl9wcmVwYWlkX2NhcmRfdHJpYWwiOjEuMCwicmV2b2x1dF9hZGRpdGlvbmFsX2NhcmRfY2hlY2tzX2Zvcl90cmlhbCI6MS4wLCJyZXZvbHV0X2ZhaWxfb25fZHVwbGljYXRlX3BheW1lbnRfbWV0aG9kc19mb3JfdHJpYWwiOjEuMCwicmV2b2x1dF9mYWlsX29uX2Jhbm5lZF9jb3VudHJpZXNfZm9yX3RyaWFsIjoxLjAsInJldm9sdXRfZmFpbF9vbl9iYW5uZWRfYmFua19mb3JfdHJpYWwiOjEuMCwicmV2b2x1dF9mYWlsX29uX2Jhbm5lZF9iYW5rX2Zvcl9wcmVtaXVtX3RyaWFsIjoxLjAsInJldm9sdXRfZmFpbF9vbl9jbG9zZV90b19leHBpcmF0aW9uX2NhcmRfdHJpYWwiOjEuMCwicmV2b2x1dF9mYWlsX29uX3ByZXBhaWRfY2FyZF90cmlhbCI6MS4wLCJyZXZvbHV0X2ZhaWxfb25fY29tbWVyY2lhbF9jYXJkX3RyaWFsIjoxLjAsImVuYWJsZV9wYXltZW50c18zZHNfb3B0aW1pemF0aW9uIjoxLjAsImNvdW50cnlfb2ZfaXNzdWFuY2VfdnNfYmlsbGluZ19jb3VudHJ5IjoxLjAsImNoZWNrb3V0X3Nob3dfaW5zdGVhZF9vZl9icmFpbnRyZWUiOjEuMCwiY2hlY2tvdXQtM2RzIjoxLjAsImNoZWNrb3V0LXBheXBhbCI6MS4wLCJjaGVja291dF9pbmNsdWRlX2FjY291bnRfaG9sZGVyIjoxLjAsImNoZWNrb3V0LXBheXBhbC10cmlhbCI6MS4wLCJhbm51YWxfdG9fbW9udGhseV9kb3duZ3JhZGVfYXR0ZW1wdCI6MS4wLCJyYXpvcnBheV90cmlhbF8xMF9pbnIiOjEuMCwicmF6b3JwYXktY2FyZC1vcmRlci10b2tlbi1zZWN0aW9uIjoxLjAsInJhem9ycGF5LWNhcmQtc3Vic2NyaXB0aW9ucyI6MS4wLCJyYXpvcnBheS11cGktc3Vic2NyaXB0aW9ucyI6MS4wLCJyYXpvcnBheS1zMy1pbnZvaWNlLXVwbG9hZCI6MS4wLCJyYXpvcnBheV9pbmNsdWRlX2RhdGVfb2ZfYmlydGgiOjEuMCwiZGxvY2FsLXBheW1lbnRzIjoxLjAsInJldm9sdXQtcGF5LXBheW1lbnRzIjoxLjAsInJldm9sdXQtY2FyZC1wYXltZW50cyI6MC41LCJkbG9jYWwtcGl4LWF1dG9tYXRpY28iOjEuMCwiYnJhaW50cmVlX3RyYW5zYWN0aW9uX3NvdXJjZSI6MS4wLCJ2ZXJ0ZXgtdGF4IjoxLjAsInZlcnRleC10YXgtZml4IjoxLjAsInJlY2VpcHRfaW5fZW1haWxzIjoxLjAsImFkd29yZHMtYW5hbHl0aWNzIjoxLjAsImNtMzYwLWFuYWx5dGljcyI6MS4wLCJkaXNhYmxlX21vYmlsZV91cHNlbGxfaW9zIjoxLjAsImRpc2FibGVfbW9iaWxlX3Vwc2VsbF9hbmRyb2lkIjoxLjAsInJlcXVpcmVkX2FncmVlbWVudF9mb3JfcnQiOjEuMCwiY2hlY2tfbWFya2V0X2RhdGFfbGltaXRzIjoxLjAsImZvcmNlX3RvX2NvbXBsZXRlX2RhdGEiOjEuMCwiZm9yY2VfdG9fdXBncmFkZV90b19leHBlcnQiOjEuMCwic2VuZF90cmFkZXZhbl9pbnZvaWNlIjoxLjAsInNob3dfcGVwZV9hbmltYXRpb24iOjEuMCwic2VuZF9uZXh0X3BheW1lbnRfaW5mb19yZWNlaXB0IjoxLjAsInN1cHBvcnRfb3Zlcm5pZ2h0X3Nlc3Npb24iOjEuMCwic2NyZWVuZXItYWxlcnRzLXJlYWQtb25seSI6MS4wLCJzY3JlZW5lcl9ib25kX3Jlc3RyaWN0aW9uX2J5X2F1dGhfZW5hYmxlZCI6MS4wLCJzY3JlZW5lcl9zdG9ja19haV9maWx0ZXJzX2VuYWJsZWQiOjEuMCwic2NyZWVuZXJfaXNfYWxsb3dlZF90b19jcmVhdGVfZW5hYmxlZCI6MS4wLCJzY3JlZW5lcl9ib25kX3JhdGluZ19jb2x1bW5zX3Jlc3RyaWN0aW9uX2J5X2F1dGhfZW5hYmxlZCI6MS4wLCJzY3JlZW5lcl9ib25kX3NvcnRpbmdfcmVzdHJpY3Rpb25fYnlfYXV0aF9lbmFibGVkIjoxLjAsInNjcmVlbmVyX2JvbmRfZ3JvdXBfYnlfaXNpbl9yZXN0cmljdGlvbl9ieV9hdXRoX2VuYWJsZWQiOjEuMCwic2NyZWVuZXJfYm9uZF9zeW1ib2xfc2VhcmNoX3Jlc3RyaWN0aW9uX2J5X2F1dGhfZW5hYmxlZCI6MS4wLCJzY3JlZW5lcl9ib25kX3JlZ2lzdHJhdGlvbl9iYW5uZXJfcmVzdHJpY3Rpb25fYnlfYXV0aF9lbmFibGVkIjoxLjAsInNlc190cmFja2luZyI6MS4wLCJzZW5kX2ZpbmFuY2lhbF9ub3RpZmljYXRpb25zIjoxLjAsInNwYXJrX3RyYW5zbGF0aW9ucyI6MS4wLCJzcGFya19jYXRlZ29yeV90cmFuc2xhdGlvbnMiOjEuMCwic3BhcmtfdGFnc190cmFuc2xhdGlvbnMiOjEuMCwicHJvX3BsYW5faW5pdGlhbF9yZWZ1bmRzX2Rpc2FibGVkIjoxLjAsInByZXZpb3VzX21vbm9wcm9kdWN0X3B1cmNoYXNlc19yZWZ1bmRzX2VuYWJsZWQiOjEuMCwiZW5hYmxlX2lkZWFzX3JlY29tbWVuZGF0aW9ucyI6MS4wLCJlbmFibGVfaWRlYXNfcmVjb21tZW5kYXRpb25zX2ZlZWQiOjEuMCwiZmFpbF9vbl9kdXBsaWNhdGVfcGF5bWVudF9tZXRob2RzX2Zvcl90cmlhbCI6MS4wLCJldGhvY2FfYWxlcnRfbm90aWZpY2F0aW9uX3dlYmhvb2siOjEuMCwiaGlkZV9zdXNwaWNpb3VzX3VzZXJzX2lkZWFzIjoxLjAsImRpc2FibGVfcHVibGlzaF9zdHJhdGVneV9yYW5nZV9iYXNlZF9jaGFydCI6MS4wLCJyZXN0cmljdF9zaW11bHRhbmVvdXNfcmVxdWVzdHMiOjEuMCwibG9naW5fZnJvbV9uZXdfZGV2aWNlX2VtYWlsIjoxLjAsInNzcl93b3JrZXJfbm93YWl0IjoxLjAsImJyb2tlcl9BMUNBUElUQUwiOjEuMCwiYnJva2VyX0FDVElWVFJBREVTIjoxLjAsImJyb2tlcl9BTENIRU1ZTUFSS0VUUyI6MS4wLCJicm9rZXJfQUxJQ0VCTFVFIjoxLjAsImhpZGVfQUxPUl9vbl9pb3MiOjEuMCwiaGlkZV9BTE9SX29uX2FuZHJvaWQiOjEuMCwiaGlkZV9BTE9SX29uX21vYmlsZV93ZWIiOjEuMCwiYWxvci1icm9rZXJzLXNpZGUtbWFpbnRlbmFuY2UiOjEuMCwiYnJva2VyX0FMUEFDQSI6MS4wLCJicm9rZXJfQUxSQU1aIjoxLjAsImJyb2tlcl9BTVAiOjEuMCwiYnJva2VyX0FOR0VMT05FIjoxLjAsImJyb2tlcl9BVkFfRlVUVVJFUyI6MS4wLCJBVkFfRlVUVVJFU19vYXV0aF9hdXRob3JpemF0aW9uIjoxLjAsImJyb2tlcl9CMlBSSU1FIjoxLjAsImJyb2tlcl9CQUpBSiI6MS4wLCJicm9rZXJfQkVZT05EIjoxLjAsImJyb2tlcl9CSU5BTkNFIjoxLjAsImVuYWJsZV9iaW5hbmNlYXBpc19iYXNlX3VybCI6MS4wLCJicm9rZXJfQklOR0JPTiI6MS4wLCJicm9rZXJfQklUQVpaQSI6MS4wLCJicm9rZXJfQklUR0VUIjoxLjAsImJyb2tlcl9CSVRNRVgiOjEuMCwiYnJva2VyX0JJVFNUQU1QIjoxLjAsImJyb2tlcl9CTEFDS0JVTEwiOjEuMCwiYnJva2VyX0JMVUVCRVJSWU1BUktFVFMiOjEuMCwiYnJva2VyX0JUQ0MiOjEuMCwiYnJva2VyX0JZQklUIjoxLjAsImJyb2tlcl9DQVBJVEFMQ09NIjoxLjAsImJyb2tlcl9DQVBUUkFERVIiOjEuMCwiQ0FQVFJBREVSX3NlcGFyYXRlX2ludGVncmF0aW9uX21pZ3JhdGlvbl93YXJuaW5nIjoxLjAsImJyb2tlcl9DRkkiOjEuMCwiYnJva2VyX0NHU0kiOjEuMCwiYnJva2VyX0NJVFlJTkRFWCI6MS4wLCJjaXR5aW5kZXhfc3ByZWFkYmV0dGluZyI6MS4wLCJDTEVBUlNUUkVFVF9iZXRhIjoxLjAsImJyb2tlcl9DTUNNQVJLRVRTIjoxLjAsImJyb2tlcl9DT0JSQVRSQURJTkciOjEuMCwiYnJva2VyX0NPSU5CQVNFIjoxLjAsImNvaW5iYXNlX3JlcXVlc3Rfc2VydmVyX2xvZ2dlciI6MS4wLCJjb2luYmFzZV9jYW5jZWxfcG9zaXRpb25fYnJhY2tldHMiOjEuMCwiYnJva2VyX0NPSU5KQVIiOjEuMCwiQ09JTkpBUl9iZXRhIjoxLjAsImJyb2tlcl9DT0lOU1dJVENIIjoxLjAsImJyb2tlcl9DT0lOVyI6MS4wLCJicm9rZXJfQ09MTUVYIjoxLjAsImhpZGVfQ1FHX29uX2lvcyI6MS4wLCJoaWRlX0NRR19vbl9hbmRyb2lkIjoxLjAsImhpZGVfQ1FHX29uX21vYmlsZV93ZWIiOjEuMCwiY3FnLXJlYWx0aW1lLWJhbmR3aWR0aC1saW1pdCI6MS4wLCJicm9rZXJfQ1JZUFRPQ09NIjoxLjAsImhpZGVfQ1VSUkVOQ1lDT01fb25faW9zIjoxLjAsImhpZGVfQ1VSUkVOQ1lDT01fb25fYW5kcm9pZCI6MS4wLCJoaWRlX0NVUlJFTkNZQ09NX29uX21vYmlsZV93ZWIiOjEuMCwiYnJva2VyX0NYTSI6MS4wLCJicm9rZXJfREFPTCI6MS4wLCJicm9rZXJfREFSV0lORVgiOjEuMCwiREFSV0lORVhfYmV0YSI6MS4wLCJicm9rZXJfREVMVEEiOjEuMCwiYnJva2VyX0RFUkFZQUgiOjEuMCwiYnJva2VyX0RFUklWIjoxLjAsImJyb2tlcl9ESEFOIjoxLjAsImJyb2tlcl9ETlNFIjoxLjAsImJyb2tlcl9ET1JNQU4iOjEuMCwiaGlkZV9EVU1NWV9vbl9pb3MiOjEuMCwiaGlkZV9EVU1NWV9vbl9hbmRyb2lkIjoxLjAsImhpZGVfRFVNTVlfb25fbW9iaWxlX3dlYiI6MS4wLCJicm9rZXJfRUFTWU1BUktFVFMiOjEuMCwiYnJva2VyX0VDT1ZBTE9SRVMiOjEuMCwiYnJva2VyX0VER0VDTEVBUiI6MS4wLCJlZGdlY2xlYXJfb2F1dGhfYXV0aG9yaXphdGlvbiI6MS4wLCJicm9rZXJfRUlHSFRDQVAiOjEuMCwiYnJva2VyX0VSUkFOVEUiOjEuMCwiYnJva2VyX0VTQUZYIjoxLjAsIkZJREVMSVRZX2JldGEiOjEuMCwiRklERUxJVFlfdXNfcmVsZWFzZSI6MC4yNSwiZmlkZWxpdHlfc2VjdXJpdHlfdG9rZW4iOjEuMCwiYnJva2VyX0ZPUkVYQ09NIjoxLjAsImZvcmV4Y29tX3Nlc3Npb25fdjIiOjEuMCwiYnJva2VyX0ZQTUFSS0VUUyI6MS4wLCJoaWRlX0ZUWF9vbl9pb3MiOjEuMCwiaGlkZV9GVFhfb25fYW5kcm9pZCI6MS4wLCJoaWRlX0ZUWF9vbl9tb2JpbGVfd2ViIjoxLjAsImZ0eF9yZXF1ZXN0X3NlcnZlcl9sb2dnZXIiOjEuMCwiYnJva2VyX0ZVU0lPTk1BUktFVFMiOjEuMCwiZnhjbV9zZXJ2ZXJfbG9nZ2VyIjoxLjAsImJyb2tlcl9GWENNIjoxLjAsImhpZGVfRlhPUEVOX29uX2lvcyI6MS4wLCJoaWRlX0ZYT1BFTl9vbl9hbmRyb2lkIjoxLjAsImhpZGVfRlhPUEVOX29uX21vYmlsZV93ZWIiOjEuMCwiYnJva2VyX0ZYUFJPIjoxLjAsImJyb2tlcl9GWFRGIjoxLjAsImJyb2tlcl9GWUVSUyI6MS4wLCJicm9rZXJfR0FURSI6MS4wLCJicm9rZXJfR0JFQlJPS0VSUyI6MS4wLCJnZW1pbmktYnJva2Vycy1zaWRlLW1haW50ZW5hbmNlIjoxLjAsImJyb2tlcl9HRU5JQUxJTlZFU1RJTUVOVE9TIjoxLjAsImhpZGVfR0xPQkFMUFJJTUVfb25faW9zIjoxLjAsImhpZGVfR0xPQkFMUFJJTUVfb25fYW5kcm9pZCI6MS4wLCJoaWRlX0dMT0JBTFBSSU1FX29uX21vYmlsZV93ZWIiOjEuMCwiZ2xvYmFscHJpbWUtYnJva2Vycy1zaWRlLW1haW50ZW5hbmNlIjoxLjAsImJyb2tlcl9HT01BUktFVFMiOjEuMCwiYnJva2VyX0dPVFJBREUiOjEuMCwiZ290cmFkZV9lbmFibGVfc3RyZWFtaW5nX2VuZHBvaW50cyI6MS4wLCJicm9rZXJfSEVSRU5ZQSI6MS4wLCJoaWRlX0hUWF9vbl9pb3MiOjEuMCwiaGlkZV9IVFhfb25fYW5kcm9pZCI6MS4wLCJoaWRlX0hUWF9vbl9tb2JpbGVfd2ViIjoxLjAsImJyb2tlcl9JQktSIjoxLjAsImNoZWNrX2lia3Jfc2lkZV9tYWludGVuYW5jZSI6MS4wLCJpYmtyX3JlcXVlc3Rfc2VydmVyX2xvZ2dlciI6MS4wLCJpYmtyX3BhcmFsbGVsX3Byb3ZpZGVyX2luaXRpYWxpemF0aW9uIjoxLjAsImlia3Jfd3NfYWNjb3VudF9zdW1tYXJ5IjoxLjAsImlia3Jfd3Nfc2VydmVyX2xvZ2dlciI6MS4wLCJpYmtyX3N1YnNjcmliZV90b19vcmRlcl91cGRhdGVzX2ZpcnN0IjoxLjAsImlia3Jfd3NfYWNjb3VudF9sZWRnZXIiOjEuMCwiYnJva2VyX0lCUk9LRVIiOjEuMCwiYnJva2VyX0lDTUFSS0VUUyI6MS4wLCJicm9rZXJfSUNNQVJLRVRTX0FTSUMiOjEuMCwiYnJva2VyX0lDTUFSS0VUU19FVSI6MS4wLCJicm9rZXJfSUciOjEuMCwiYnJva2VyX0lORFNUT0NLUyI6MS4wLCJicm9rZXJfSU5GT1lBVElSSU0iOjEuMCwiYnJva2VyX0lOTk9WRVNUWCI6MS4wLCJicm9rZXJfSU5URVJBQ1RJVkVJTCI6MS4wLCJicm9rZXJfSU5WRVNUUkFERSI6MS4wLCJJTlZFU1RSQURFX2JldGEiOjEuMCwiYnJva2VyX0lST05CRUFNIjoxLjAsImhpZGVfSVJPTkJFQU1fQ1FHX29uX2lvcyI6MS4wLCJoaWRlX0lST05CRUFNX0NRR19vbl9hbmRyb2lkIjoxLjAsImhpZGVfSVJPTkJFQU1fQ1FHX29uX21vYmlsZV93ZWIiOjEuMCwiYnJva2VyX0tJV09PTSI6MS4wLCJraXdvb21fdXNlX3NlcGFyYXRlX3N0cmVhbWluZ191cmwiOjEuMCwiYnJva2VyX0tPVEFLIjoxLjAsImhpZGVfS09UQUtfb25faW9zIjoxLjAsImhpZGVfS09UQUtfb25fYW5kcm9pZCI6MS4wLCJoaWRlX0tPVEFLX29uX21vYmlsZV93ZWIiOjEuMCwiYnJva2VyX0tSQUtFTiI6MS4wLCJoaWRlX0tSQUtFTl9vbl9pb3MiOjEuMCwiaGlkZV9LUkFLRU5fb25fYW5kcm9pZCI6MS4wLCJLUkFLRU5fYmV0YSI6MS4wLCJrcmFrZW5fcmVxdWVzdF9zZXJ2ZXJfbG9nZ2VyIjoxLjAsImJyb2tlcl9LU0VDVVJJVElFUyI6MS4wLCJicm9rZXJfTElCRVJBVE9SIjoxLjAsImJyb2tlcl9NRVhDIjoxLjAsImJyb2tlcl9NRVhFTSI6MS4wLCJicm9rZXJfTUlEQVMiOjEuMCwiaGlkZV9NT0NLQlJPS0VSX29uX2lvcyI6MS4wLCJoaWRlX01PQ0tCUk9LRVJfb25fYW5kcm9pZCI6MS4wLCJoaWRlX01PQ0tCUk9LRVJfb25fbW9iaWxlX3dlYiI6MS4wLCJoaWRlX01PQ0tCUk9LRVJfSU1QTElDSVRfb25faW9zIjoxLjAsImhpZGVfTU9DS0JST0tFUl9JTVBMSUNJVF9vbl9hbmRyb2lkIjoxLjAsImhpZGVfTU9DS0JST0tFUl9JTVBMSUNJVF9vbl9tb2JpbGVfd2ViIjoxLjAsImhpZGVfTU9DS0JST0tFUl9DT0RFX29uX2lvcyI6MS4wLCJoaWRlX01PQ0tCUk9LRVJfQ09ERV9vbl9hbmRyb2lkIjoxLjAsImhpZGVfTU9DS0JST0tFUl9DT0RFX29uX21vYmlsZV93ZWIiOjEuMCwiYnJva2VyX01PT01PTyI6MS4wLCJicm9rZXJfTU9USUxBTE9TV0FMIjoxLjAsImJyb2tlcl9OSU5KQVRSQURFUiI6MS4wLCJicm9rZXJfT0FOREEiOjEuMCwib2FuZGFfc2VydmVyX2xvZ2dpbmciOjEuMCwib2FuZGFfb2F1dGhfbXVsdGlwbGV4aW5nIjoxLjAsImJyb2tlcl9PS1giOjEuMCwiYnJva2VyX09QT0ZJTkFOQ0UiOjEuMCwiYnJva2VyX09QVElNVVMiOjEuMCwiYnJva2VyX09TTUFOTEkiOjEuMCwiYnJva2VyX09TTUFOTElGWCI6MS4wLCJwYXBlcl9mb3JjZV9jb25uZWN0X3B1c2hzdHJlYW0iOjEuMCwicGFwZXJfc3ViYWNjb3VudF9jdXN0b21fY3VycmVuY3kiOjEuMCwicGFwZXJfb3V0c2lkZV9ydGgiOjEuMCwiYnJva2VyX1BBWVRNIjoxLjAsImJyb2tlcl9QRVBQRVJTVE9ORSI6MS4wLCJicm9rZXJfUEhFTUVYIjoxLjAsImJyb2tlcl9QSElMTElQQ0FQSVRBTF9UUiI6MS4wLCJicm9rZXJfUEhJTExJUE5PVkEiOjEuMCwiYnJva2VyX1BMVVM1MDAiOjEuMCwicGx1czUwMF9vYXV0aF9hdXRob3JpemF0aW9uIjoxLjAsIlBMVVM1MDBVU19iZXRhIjoxLjAsImJyb2tlcl9QVVJQTEVUUkFESU5HIjoxLjAsImJyb2tlcl9RVUVTVFJBREUiOjEuMCwiYnJva2VyX1JBVkFCVVJTQVRJTCI6MS4wLCJSQVZBQlVSU0FUSUxfYmV0YSI6MS4wLCJicm9rZXJfUklZQURDQVBJVEFMIjoxLjAsImJyb2tlcl9ST0JPTUFSS0VUUyI6MS4wLCJicm9rZXJfUkVQTEFZQlJPS0VSIjoxLjAsImJyb2tlcl9TQU1VRUwiOjEuMCwiYnJva2VyX1NBWE9CQU5LIjoxLjAsImJyb2tlcl9TSEFSRU1BUktFVCI6MS4wLCJicm9rZXJfU0tJTExJTkciOjEuMCwiYnJva2VyX1NQUkVBREVYIjoxLjAsImJyb2tlcl9TV0lTU1FVT1RFIjoxLjAsImJyb2tlcl9TVE9ORVgiOjEuMCwiYnJva2VyX1RBU1RZRlgiOjEuMCwiYnJva2VyX1RBU1RZVFJBREUiOjEuMCwiYnJva2VyX1RISU5LTUFSS0VUUyI6MS4wLCJ0aGlua21hcmtldHNfYWNjb3VudF9kYXRhX3N0cmVhbWluZyI6MS4wLCJicm9rZXJfVElDS01JTEwiOjEuMCwiaGlkZV9USUdFUl9vbl9pb3MiOjEuMCwiaGlkZV9USUdFUl9vbl9hbmRyb2lkIjoxLjAsImhpZGVfVElHRVJfb25fbW9iaWxlX3dlYiI6MS4wLCJicm9rZXJfVFJBREVOQVRJT04iOjEuMCwiYnJva2VyX1RSQURFU1RBVElPTiI6MS4wLCJ0cmFkZXN0YXRpb25fcmVxdWVzdF9zZXJ2ZXJfbG9nZ2VyIjoxLjAsInRyYWRlc3RhdGlvbl9hY2NvdW50X2RhdGFfc3RyZWFtaW5nIjoxLjAsInRyYWRlc3RhdGlvbl9zdHJlYW1pbmdfc2VydmVyX2xvZ2dpbmciOjEuMCwiYnJva2VyX1RSQURFWkVSTyI6MS4wLCJicm9rZXJfVFJBRElFUiI6MS4wLCJicm9rZXJfVFJBRElFUl9GVVRVUkVTIjoxLjAsInRyYWRpZXJfZnV0dXJlc19vYXV0aF9hdXRob3JpemF0aW9uIjoxLjAsImJyb2tlcl9UUkFET1ZBVEUiOjEuMCwiaGlkZV9UUkFEVV9vbl9pb3MiOjEuMCwiaGlkZV9UUkFEVV9vbl9hbmRyb2lkIjoxLjAsImhpZGVfVFJBRFVfb25fbW9iaWxlX3dlYiI6MS4wLCJ0cmFkdV9zcHJlYWRfYmV0IjoxLjAsImJyb2tlcl9UUklWRSI6MS4wLCJicm9rZXJfVkFOVEFHRSI6MS4wLCJicm9rZXJfVkVMT0NJVFkiOjEuMCwiYnJva2VyX1dFQlVMTCI6MS4wLCJicm9rZXJfV0VCVUxMSkFQQU4iOjEuMCwiYnJva2VyX1dFQlVMTFBBWSI6MS4wLCJicm9rZXJfV0VCVUxMVUsiOjEuMCwiYnJva2VyX1dISVRFQklUIjoxLjAsImJyb2tlcl9XSFNFTEZJTlZFU1QiOjEuMCwiYnJva2VyX1dIU0VMRklOVkVTVF9GVVRVUkVTIjoxLjAsIldIU0VMRklOVkVTVF9GVVRVUkVTX29hdXRoX2F1dGhvcml6YXRpb24iOjEuMCwiYnJva2VyX1hDVUJFIjoxLjAsImJyb2tlcl9ZTEciOjEuMCwiYnJva2VyX2lkX3Nlc3Npb24iOjEuMCwiZGlzYWxsb3dfY29uY3VycmVudF9zZXNzaW9ucyI6MS4wLCJ1c2VfY29kZV9mbG93X3YyX3Byb3ZpZGVyIjoxLjAsInVzZV9jb2RlX2Zsb3dfdjJfcHJvdmlkZXJfZm9yX3VudGVzdGVkX2Jyb2tlcnMiOjEuMCwibW9iaWxlX3RyYWRpbmdfd2ViIjoxLjAsIm1vYmlsZV90cmFkaW5nX2lvcyI6MS4wLCJtb2JpbGVfdHJhZGluZ19hbmRyb2lkIjoxLjAsImNvbnRpbnVvdXNfZnJvbnRfY29udHJhY3RfdHJhZGluZyI6MS4wLCJ0cmFkaW5nX3JlcXVlc3Rfc2VydmVyX2xvZ2dlciI6MS4wLCJyZXN0X3JlcXVlc3Rfc2VydmVyX2xvZ2dlciI6MS4wLCJvYXV0aDJfY29kZV9mbG93X3Byb3ZpZGVyX3NlcnZlcl9sb2dnZXIiOjEuMCwicmVzdF9vYXV0aDJfY29kZV9mbG93X211bHRpcGxleGluZyI6MS4wLCJyZXN0X2xvZ291dF9vbl80MjkiOjEuMCwicmV2aWV3X3BvcHVwX29uX2NoYXJ0IjoxLjAsInNob3dfY29uY3VycmVudF9jb25uZWN0aW9uX3dhcm5pbmciOjEuMCwiZW5hYmxlX3RyYWRpbmdfc2VydmVyX2xvZ2dlciI6MS4wLCJvcmRlcl9wcmVzZXRzIjoxLjAsIm9yZGVyX3RpY2tldF9yZXNpemFibGVfZHJhd2VyX29uIjoxLjAsInJlc3RfdXNlX2FzeW5jX21hcHBlciI6MS4wLCJwYXBlcl9jb21wZXRpdGlvbl9iYW5uZXJfc2hvd19wcm8iOjEuMCwicGFwZXJfY29tcGV0aXRpb25fc3RhcnRlZF9kaWFsb2ciOjEuMCwicGFwZXJfY29tcGV0aXRpb25fc3RhcnRlZF9kaWFsb2dfc2hvd19wcm8iOjEuMCwicGFwZXJfY29tcGV0aXRpb25fbGVhZGVyYm9hcmQiOjEuMCwicGFwZXJfY29tcGV0aXRpb25fcHJldmlvdXNfY29tcGV0aXRpb25zIjoxLjAsImFtcF9vYXV0aF9hdXRob3JpemF0aW9uIjoxLjAsImJsdWVsaW5lX29hdXRoX2F1dGhvcml6YXRpb24iOjEuMCwiZG9ybWFuX29hdXRoX2F1dGhvcml6YXRpb24iOjEuMCwiaXJvbmJlYW1fb2F1dGhfYXV0aG9yaXphdGlvbiI6MS4wLCJvcHRpbXVzX29hdXRoX2F1dGhvcml6YXRpb24iOjEuMCwic3RvbmV4X29hdXRoX2F1dGhvcml6YXRpb24iOjEuMCwieWxnX29hdXRoX2F1dGhvcml6YXRpb24iOjEuMCwidHJhZGluZ19nZW5lcmFsX2V2ZW50c19nYV90cmFja2luZyI6MS4wLCJyZXBsYXlfcmVzdWx0X3NoYXJpbmciOjEuMCwicmVwbGF5X3RyYWRpbmdfYnJhY2tldHMiOjEuMCwiaGlkZV9hbGxfYnJva2Vyc19idXR0b25faW5faW9zX2FwcCI6MS4wLCJmb3JjZV9tYXhfYWxsb3dlZF9wdWxsaW5nX2ludGVydmFscyI6MS4wLCJwYXBlcl9kZWxheV90cmFkaW5nIjoxLjAsImVuYWJsZV9maXJzdF90b3VjaF9pc19zZWxlY3Rpb24iOjEuMCwiY2xlYXJfcHJvamVjdF9vcmRlcl9vbl9vcmRlcl90aWNrZXRfY2xvc2UiOjEuMCwiZW5hYmxlX25ld19iZWhhdmlvcl9vZl9jb25maXJtX2J1dHRvbnNfb25fbW9iaWxlIjoxLjAsInJlbmV3X3Rva2VuX3ByZWVtcHRpb25fMzAiOjEuMCwiZG9fbm90X29wZW5fb3RfZnJvbV9wbHVzX2J1dHRvbiI6MS4wLCJicm9rZXJfc2lkZV9wcm9tb3Rpb24iOjEuMCwiZW5hYmxlX25ld190cmFkaW5nX21lbnVfc3RydWN0dXJlIjoxLjAsInF1aWNrX3RyYWRpbmdfcGFuZWwiOjEuMCwicGFwZXJfb3JkZXJfY29uZmlybWF0aW9uX2RpYWxvZyI6MS4wLCJwYXBlcl9tdWx0aXBsZV9sZXZlbHNfZW5hYmxlZCI6MS4wLCJwYXBlcl9tYXJnaW5fY29udHJvbCI6MS4wLCJlbmFibGVfc2VnbWVudGF0aW9uX3BhcGVyX3RyYWRpbmciOjEuMCwiZW5hYmxlX2NoYXJ0X2FkYXB0aXZlX3Rwc2xfYnV0dG9uc19vbl9tb2JpbGUiOjEuMCwiZW5hYmxlX21hcmtldF9wcm9qZWN0X29yZGVyIjoxLjAsImVuYWJsZV9zeW1ib2xzX3BvcHVsYXJpdHlfc2hvd2luZyI6MS4wLCJlbmFibGVfdHJhbnNsYXRpb25zX3MzX3VwbG9hZCI6MS4wLCJldGZfZnVuZF9mbG93c19vbmx5X2RheXNfcmVzb2x1dGlvbnMiOjEuMCwiZGlzYWJsZV9zbm93cGxvd19wbGF0Zm9ybV9ldmVudHMiOjEuMCwibm90aWZ5X2lkZWFfbW9kc19hYm91dF9maXJzdF9wdWJsaWNhdGlvbiI6MS4wLCJlbmFibGVfd2FmX3RyYWNraW5nIjoxLjAsIm5ld19lcnJvcnNfZmxvdyI6MS4wLCJxdW90ZS10b2tlbi1maWx0ZXItb3duLXNjcmlwdHMtYnktYWNjZXNzIjoxLjAsImtlZXBfaW5kaWNhdG9yc19zZWFyY2hfc3RhdGUiOjEuMCwia2VlcF9pbmRpY2F0b3JzX3RhYl9zY3JvbGxfc3RhdGUiOjEuMCwiY29uZmlndXJhYmxlX3NlYXJjaF9hbmRfZmlsdHJhdGlvbiI6MS4wLCJwaW5lX2VkaXRvcl93cmFwX29uX2xpbmVfc3BsaXQiOjEuMCwic3ltYm9sX3NlYXJjaF9jb3VudHJ5X3NvdXJjZXMiOjEuMCwid2F0Y2hsaXN0c19kaWFsb2dfc2Nyb2xsX3RvX2FjdGl2ZSI6MS4wLCJib3R0b21fcGFuZWxfdHJhY2tfZXZlbnRzIjoxLjAsInNub3dwbG93X2JlYWNvbl9mZWF0dXJlIjoxLjAsInNob3dfZGF0YV9wcm9ibGVtc19pbl9oZWxwX2NlbnRlciI6MS4wLCJlbmFibGVfYXBwbGVfZGV2aWNlX2NoZWNrIjoxLjAsImVuYWJsZV9hcHBsZV9pbnRyb19vZmZlcl9zaWduYXR1cmUiOjEuMCwiZW5hYmxlX2FwcGxlX3Byb21vX29mZmVyX3NpZ25hdHVyZV92MiI6MS4wLCJlbmFibGVfYXBwbGVfcHJvbW9fc2lnbmF0dXJlIjoxLjAsImVuYWJsZV9wdXNoX25vdGlmaWNhdGlvbnNfYW5kcm9pZCI6MS4wLCJlbmFibGVfcHVzaF9ub3RpZmljYXRpb25zX2lvcyI6MS4wLCJlbmFibGVfbWFudGljb3JlX2NsdXN0ZXIiOjEuMCwiZW5hYmxlX3B1c2hzdHJlYW1fYXV0aCI6MS4wLCJlbmFibGVfZW52b3lfcHJveHkiOjEuMCwiZW5hYmxlX2Vudm95X3Byb3h5X3BhcGVydHJhZGluZyI6MS4wLCJlbmFibGVfZW52b3lfcHJveHlfc2NyZWVuZXIiOjEuMCwib3B0aW9uc19yZWR1Y2VfcG9sbGluZ19pbnRlcnZhbCI6MS4wLCJvcHRpb25zX2J1aWxkZXJfZ3JvdXBfYWN0aW9ucyI6MS4wLCJvcHRpb25zX2NoYWluX3NpZ21hX2ZpbHRlciI6MS4wLCJvcHRpb25zX2Jyb2tlcl9zdHJhdGVnaWVzIjoxLjAsInNob3dfdG9hc3RfYWJvdXRfdW5yZWFkX21lc3NhZ2UiOjEuMCwiZW5hYmxlX3BhcnRuZXJfcGF5b3V0IjoxLjAsImVuYWJsZV9lbWFpbF9jaGFuZ2VfbG9nZ2luZyI6MS4wLCJlbmFibGVfZW1haWxfb25fcGFydG5lcl9zdGF0dXNfY2hhbmdlIjoxLjAsImVuYWJsZV9wYXJ0bmVyX3Byb2dyYW1fYXBwbHkiOjEuMCwiZW5hYmxlX3BhcnRuZXJfcHJvZ3JhbSI6MS4wLCJjb21wcmVzc19jYWNoZV9kYXRhIjoxLjAsIm5ld3NfZW5hYmxlX3N0cmVhbWluZyI6MS4wLCJuZXdzX3NjcmVlbmVyX3BhZ2VfY2xpZW50IjoxLjAsImVuYWJsZV9kZWNsYXJhdGlvbl9wb3B1cF9vbl9sb2FkIjoxLjAsInNob3dfZGF0YV9ib25kc19mcmVlX3VzZXJzIjoxLjAsImVuYWJsZV9tb2Rlcm5fcmVuZGVyX21vZGUiOjEuMCwiZW5hYmxlX3Byb2ZfcG9wdXBfZnJlZSI6MS4wLCJpb3NfYXBwX25ld3NfYW5kX21pbmRzIjoxLjAsImRvX25vdF9kaXNjbG9zZV9waG9uZV9vY2N1cGFuY3kiOjEuMCwiZW5hYmxlX3JlZGlyZWN0X3RvX3dpZGdldF9kb2N1bWVudGF0aW9uX29mX2FueV9sb2NhbGl6YXRpb24iOjEuMCwibmV3c19lbmFibGVfc3RyZWFtaW5nX2hpYmVybmF0aW9uIjoxLjAsIm5ld3Nfc3RyZWFtaW5nX2hpYmVybmF0aW9uX2RlbGF5XzEwbWluIjoxLjAsInBhc3NfcmVjb3Zlcnlfc2VhcmNoX2hpZGVfaW5mbyI6MS4wLCJuZXdzX2VuYWJsZV9zdHJlYW1pbmdfb25fc2NyZWVuZXIiOjEuMCwiZW5hYmxlX2ZvcmNlZF9lbWFpbF9jb25maXJtYXRpb24iOjEuMCwic2hvd19naWZ0X2J1dHRvbiI6MS4wLCJhZGRyZXNzX3ZhbGlkYXRpb25fZW5hYmxlZCI6MS4wLCJkaXNhYmxlX3VudmVyaWZpZWRfYWRkcmVzcyI6MS4wLCJnZW5lcmF0ZV9pbnZvaWNlX251bWJlcl9ieV9jb3VudHJ5IjoxLjAsInNob3dfZmF2b3JpdGVfbGF5b3V0cyI6MS4wLCJlbmFibGVfc29jaWFsX2F1dGhfY29uZmlybWF0aW9uIjoxLjAsImVuYWJsZV9hZF9ibG9ja19kZXRlY3QiOjEuMCwidHZkX25ld190YWJfbGlua2luZyI6MS4wLCJ0dmRfdGltZV9hbmRfZGF0ZV9yYW5nZV9saW5raW5nIjoxLjAsInVzZV9icm93c2VyX3Nlc3Npb25fc3RvcmFnZSI6MS4wLCJ1c2VfZGVza3RvcF9zZXNzaW9uX3N0b3JhZ2UiOjEuMCwid3JvbmdfYWNjb3VudF9kaWFsb2dfcHJpbWFyeV9zd2l0Y2giOjEuMCwiZW5hYmxlX2xpbmd1YV9sYW5nX2NoZWNrIjoxLjAsImdldF9zYXZlZF9hY3RpdmVfbGlzdF9iZWZvcmVfZ2V0dGluZ19hbGxfbGlzdHMiOjEuMCwid2F0Y2hsaXN0X2FkZF9zb3VyY2VfcGFyYW0iOjEuMCwic2hvd19yZWZlcnJhbF9ub3RpZmljYXRpb25fZGlhbG9nIjoxLjAsInNldF9uZXdfYmxhY2tfY29sb3IiOjEuMCwibmV3c191c2VfbmV3c19tZWRpYXRvciI6MS4wLCJhbGxvd190cmFpbGluZ193aGl0ZXNwYWNlX2luX251bWJlcl90b2tlbiI6MS4wLCJyZXN0cmljdF9wd25lZF9wYXNzd29yZF9zZXQiOjEuMCwibm90aWZfc2V0dGluZ3NfZW5hYmxlX25ld19zdG9yZSI6MS4wLCJub3RpZl9zZXR0aW5nc19kaXNhYmxlX29sZF9zdG9yZV93cml0ZSI6MS4wLCJub3RpZl9zZXR0aW5nc19kaXNhYmxlX29sZF9zdG9yZV9yZWFkIjoxLjAsImNoZWNrb3V0LWVuYWJsZS1yaXNrc2RrIjoxLjAsImNoZWNrb3V0LWVuYWJsZS1yaXNrc2RrLWZvci1pbml0aWFsLXB1cmNoYXNlIjoxLjAsImVuYWJsZV9tZXRhZGVmZW5kZXJfY2hlY2tfZm9yX2FncmVlbWVudCI6MS4wLCJzaG93X2Rvd25sb2FkX3lpZWxkX2N1cnZlc19kYXRhIjoxLjAsIm1vdmVfa2V5X3Rlbm9yc190b19zZXR0aW5ncyI6MS4wLCJzaG93X3lpZWxkX2N1cnZlc19tYXAiOjEuMCwiZGlzYWJsZV93aWRnZXRiYXJfaW5fYXBwcyI6MS4wLCJoaWRlX3B1YmxpY2F0aW9uc19vZl9iYW5uZWRfdXNlcnMiOjEuMCwiZW5hYmxlX3N1bW1hcnlfdXBkYXRlc19mcm9tX2NoYXJ0X3Nlc3Npb24iOjEuMCwic2hvd19uZXdzX2Zsb3dfdG9vbF9yaWdodF9iYXIiOjEuMCwiZW5hYmxlX2NoYXJ0X3NhdmluZ19zdGF0cyI6MS4wLCJlbmFibGVfc2F2aW5nX3NhbWVfY2hhcnRfcmF0ZV9saW1pdCI6MS4wLCJuZXdzX2FsZXJ0c19lbmFibGVkIjoxLjAsIm5ld3NfbXVsdGlwbGVfYWxlcnRzX2VuYWJsZWQiOjEuMCwicmVmdW5kX3Vudm9pZGFibGVfY291cG9uc19lbmFibGVkIjoxLjAsImVuYWJsZV9zbm93cGxvd19lbWFpbF90cmFja2luZyI6MS4wLCJuZXdzX2VuYWJsZV9zZW50aW1lbnQiOjEuMCwidXNlX2luX3N5bWJvbF9zZWFyY2hfb3B0aW9uc19tY3hfZXhjaGFuZ2UiOjEuMCwiZW5hYmxlX3VzZXJzZXR0aW5nc19zeW1ib2xzX3Blcl9yb3dfc29mdF9saW1pdCI6MC4xLCJmb3JiaWRfbG9naW5fd2l0aF9wd25lZF9wYXNzd29yZHMiOjEuMCwiZGVidWdfZ2V0X3Rlc3RfYmFyc19kYXRhIjoxLjAsIm5ld3NfdXNlX21lZGlhdG9yX3N0b3J5IjoxLjAsIm5ld3NfZmxvd19yZWNvbmZpZ3VyZV9maWx0ZXJzIjoxLjAsImJsYWNrX2ZyaWRheV9lbmFibGVfc2tpcF90b19wYXltZW50IjoxLjAsImhpZGVfdHJhZGluZ19idXR0b25fb25fYm90dG9tX3BhbmVsX2FuZF9yZXBsYXlfdGFiIjoxLjAsImhpZGVfdHJhZGVfYnV0dG9uX2hpbnRfaW5faGVhZGVyX3Rvb2xiYXIiOjEuMCwiaGlkZV9zZWVfb25fc3VwZXJfY2hhcnRzX2J1dHRvbiI6MS4wLCJoaWRlX3N5bWJvbF9wYWdlX2NoYXJ0X3R5cGVfc3dpdGNoZXIiOjEuMCwiZGlzYWJsZV9jaGF0X3NwYW1fcHJvdGVjdGlvbl9mb3JfcHJlbWl1bV91c2VycyI6MS4wLCJkaXNhYmxlX3B1YmxpY19waW5lX3NjcmlwdF9wdWJsaXNoX2xpbWl0cyI6MS4wLCJtYWtlX3RyYWRpbmdfcGFuZWxfY29udGV4dHVhbF90YWIiOjEuMCwicmVjb25uZWN0X2dhaW5fc2Vzc2lvbl9vbl9sc19lcnJvciI6MS4wLCJjaGVja291dC1mbG93LXBheW1lbnRzIjoxLjAsImZvcmNlX3RvX2NvbXBsZXRlX2t5YyI6MS4wLCJpbmRpYV9leGNsdWRlX2JyYWludHJlZV90YWIiOjEuMCwibWFjcm9fbWFwc19oaWRlX3Rvb2x0aXBfY2hhcnRfYnV0dG9uIjoxLjAsImZvcmNlX2t5Y19mb3Jfbm9ucHJvX3B1cmNoYXNlX2J5X2NvbW1lcmNpYWwiOjEuMCwic2hvd19zcGxpdF9wYW5lbF9mdWxsc2NyZWVuX2J1dHRvbiI6MS4wLCJzaG93X3NwbGl0X3BhbmVsX21vdmVfYnV0dG9uX3RvX3RpdGxlIjoxLjAsIm9yZGVyX3ByZXNldHNfY3J1ZF9zdG9yYWdlIjoxLjAsIm9yZGVyX3ByZXNldHNfcmVtb3ZlX2Zyb21fdHZfc2V0dGluZ3MiOjEuMCwiY2hlY2tvdXQtZmxvdy10cmlhbCI6MS4wLCJjaGVja291dC1mbG93LWdvb2dsZXBheSI6MS4wLCJjaGVja291dC1mbG93LWFwcGxlcGF5IjoxLjAsImNoZWNrb3V0LWZsb3ctcGF5cGFsIjoxLjAsImZvcmJpZF9zaWdudXBfd2l0aF9mYWtlX2dtYWlsX2RvbWFpbnMiOjEuMCwic2hvd19pbXBvcnRfZnJvbV9wYXBlcl90cmFkaW5nX2J1dHRvbiI6MS4wLCJzeW1ib2xfc2VhcmNoX2dyb3VwaW5nIjoxLjAsImNoZWNrb3V0LWZsb3ctZ29vZ2xlcGF5LXRyaWFsIjoxLjAsImNoZWNrb3V0LWZsb3ctYXBwbGVwYXktdHJpYWwiOjEuMCwiY2hlY2tvdXQtZmxvdy1wYXlwYWwtdHJpYWwiOjEuMCwidm9pZF9ub3RfZm91bmRfY2tvX3BheW1lbnRfaW5fYXBwcm92ZWRfd2ViaG9vayI6MS4wLCJzaG93X3BhbmVsX2NvbGxhcHNlX2J1dHRvbiI6MS4wLCJkZWxheV9zdGF0dXNfb25fbGFzdF9iYXIiOjAuNX07CgoJd2luZG93LlRyYWRpbmdWaWV3ID0gd2luZG93LlRyYWRpbmdWaWV3IHx8IHt9OwoKCXdpbmRvdy5pbml0RGF0YS5pZGNfZXhjaGFuZ2VzX2xpc3QgPSBbIm56eCIsImJtZSIsImJtZV9zdG9ja3MiLCJzaGZlIiwic3pzZSIsIm5hZyIsInRmeCIsInR3c2UiLCJidmMiLCJidmN2IiwiYm12IiwiYnZtdCIsImJ2bCIsImJjcyIsInNpeCIsImJzc2UiLCJiYWhyYWluIiwiYmVsZXgiLCJuc2VrZSIsInFzZSJdOwoKCQl3aW5kb3cubG9jYWxlX2RvbWFpbnMgPSB7ImVuIjoid3d3LnRyYWRpbmd2aWV3LmNvbSIsImFyX0FFIjoiYXIudHJhZGluZ3ZpZXcuY29tIiwiYnIiOiJici50cmFkaW5ndmlldy5jb20iLCJkZV9ERSI6ImRlLnRyYWRpbmd2aWV3LmNvbSIsImVzIjoiZXMudHJhZGluZ3ZpZXcuY29tIiwiZnIiOiJmci50cmFkaW5ndmlldy5jb20iLCJoZV9JTCI6ImlsLnRyYWRpbmd2aWV3LmNvbSIsImlkIjoiaWQudHJhZGluZ3ZpZXcuY29tIiwiaW4iOiJpbi50cmFkaW5ndmlldy5jb20iLCJpdCI6Iml0LnRyYWRpbmd2aWV3LmNvbSIsImphIjoianAudHJhZGluZ3ZpZXcuY29tIiwia3IiOiJrci50cmFkaW5ndmlldy5jb20iLCJtc19NWSI6Im15LnRyYWRpbmd2aWV3LmNvbSIsInBsIjoicGwudHJhZGluZ3ZpZXcuY29tIiwicnUiOiJydS50cmFkaW5ndmlldy5jb20iLCJ0aF9USCI6InRoLnRyYWRpbmd2aWV3LmNvbSIsInRyIjoidHIudHJhZGluZ3ZpZXcuY29tIiwidmlfVk4iOiJ2bi50cmFkaW5ndmlldy5jb20iLCJ6aF9DTiI6ImNuLnRyYWRpbmd2aWV3LmNvbSIsInpoX1RXIjoidHcudHJhZGluZ3ZpZXcuY29tIiwiY2FfRVMiOiJlcy50cmFkaW5ndmlldy5jb20ifTsKCgkJCXdpbmRvdy5fX2luaXRpYWxFbmFibGVkRmVhdHVyZXNldHMgPSB3aW5kb3cuX19pbml0aWFsRW5hYmxlZEZlYXR1cmVzZXRzIHx8IFtdOwoJCQkJd2luZG93Ll9faW5pdGlhbEVuYWJsZWRGZWF0dXJlc2V0cy5wdXNoKCd3aWRnZXQnKTsKCgkJd2luZG93LlRyYWRpbmdWaWV3ID0gd2luZG93LlRyYWRpbmdWaWV3IHx8IHt9Owo8L3NjcmlwdD4KCgk8c2NyaXB0IG5vbmNlPSJHZk5lTWJJM2p3WUtFVE9ybU83QTlnPT0iPnZhciBlbnZpcm9ubWVudCA9ICJiYXR0bGUiOwoJCXdpbmRvdy5CVUlMRF9USU1FID0gIjIwMjYtMDctMjRUMTE6NDA6MDgiOwoJCXdpbmRvdy5XRUJTT0NLRVRfSE9TVCA9ICJ3aWRnZXRkYXRhLnRyYWRpbmd2aWV3LmNvbSI7CgkJd2luZG93LldFQlNPQ0tFVF9IT1NUX0ZPUl9SRUNPTk5FQ1QgPSAid2lkZ2V0ZGF0YS1iYWNrdXAudHJhZGluZ3ZpZXcuY29tIjsKCQl3aW5kb3cudXNlciA9IHsndXNlcm5hbWUnOiAnR3Vlc3QnLCAnZm9sbG93aW5nJzogJzAnLCAnZm9sbG93ZXJzJzogJzAnLCAnaWdub3JlX2xpc3QnOiB7fSwgJ2RvX25vdF90cmFjayc6IHRydWV9Ozwvc2NyaXB0PgoJPHNjcmlwdCBub25jZT0iR2ZOZU1iSTNqd1lLRVRPcm1PN0E5Zz09Ij5sZXQgcGFyYW1zID0ge307CgkJCWNvbnN0IGh0dHBSZWcgPSBuZXcgUmVnRXhwKCdeaHR0cChzKT86Ly8nKTsKCgkJCXRyeSB7CgkJCQlwYXJhbXMgPSBKU09OLnBhcnNlKGRlY29kZVVSSUNvbXBvbmVudChsb2NhdGlvbi5oYXNoLnN1YnN0cmluZygxKSkpOwoJCQl9IGNhdGNoIChlKSB7CgkJCQlwYXJhbXMgPSB7fTsKCQkJfQoKCQkJd2luZG93LldFQlNPQ0tFVF9QQVJBTVNfQU5BTFlUSUNTID0gewoJCQkJJ3dzX2FuY2VzdG9yX29yaWdpbic6IHdpbmRvdy5sb2NhdGlvbi5hbmNlc3Rvck9yaWdpbnMgJiYgd2luZG93LmxvY2F0aW9uLmFuY2VzdG9yT3JpZ2lucy5sZW5ndGggPyB3aW5kb3cubG9jYXRpb24uYW5jZXN0b3JPcmlnaW5zW3dpbmRvdy5sb2NhdGlvbi5hbmNlc3Rvck9yaWdpbnMubGVuZ3RoIC0gMV0ucmVwbGFjZShodHRwUmVnLCAnJykgOiBudWxsLAoJCQkJJ3dzX3BhZ2VfdXJpJzogcGFyYW1zWydwYWdlLXVyaSddLAoJCQl9OygoKT0+eyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBlKGUsdD0hMSl7Y29uc3R7c2VhcmNoUGFyYW1zOm59PW5ldyBVUkwoU3RyaW5nKGxvY2F0aW9uKSk7bGV0IHM9InRydWUiPT09bi5nZXQoIm1vYmlsZWFwcF9uZXciKSxvPSJ0cnVlIj09PW4uZ2V0KCJtb2JpbGVhcHAiKTtpZighdCl7Y29uc3QgZT1mdW5jdGlvbihlKXtjb25zdCB0PWUrIj0iLG49ZG9jdW1lbnQuY29va2llLnNwbGl0KCI7Iik7Zm9yKGxldCBlPTA7ZTxuLmxlbmd0aDtlKyspe2xldCBzPW5bZV07Zm9yKDsiICI9PT1zLmNoYXJBdCgwKTspcz1zLnN1YnN0cmluZygxLHMubGVuZ3RoKTtpZigwPT09cy5pbmRleE9mKHQpKXJldHVybiBzLnN1YnN0cmluZyh0Lmxlbmd0aCxzLmxlbmd0aCl9cmV0dXJuIG51bGx9KCJ0dl9hcHAiKXx8IiI7c3x8PVsiYW5kcm9pZCIsImFuZHJvaWRfbnBzIl0uaW5jbHVkZXMoZSksb3x8PSJpb3MiPT09ZX1yZXR1cm4hKCJuZXciIT09ZSYmImFueSIhPT1lfHwhcyl8fCEoIm5ldyI9PT1lfHwhbyl9Y29uc3QgdD0idW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdyYmInVuZGVmaW5lZCIhPXR5cGVvZiBuYXZpZ2F0b3Isbj10JiYib250b3VjaHN0YXJ0ImluIHdpbmRvdyxzPSh0JiZuJiZ3aW5kb3csdCYmKG58fG5hdmlnYXRvci5tYXhUb3VjaFBvaW50cyksdCYmd2luZG93LmNocm9tZSYmd2luZG93LmNocm9tZS5ydW50aW1lLHQmJndpbmRvdy5uYXZpZ2F0b3IudXNlckFnZW50LnRvTG93ZXJDYXNlKCkuaW5kZXhPZigiZmlyZWZveCIpLHQmJi9cc0VkZ2VcL1xkXGRcYi8udGVzdChuYXZpZ2F0b3IudXNlckFnZW50KSx0JiZCb29sZWFuKG5hdmlnYXRvci52ZW5kb3IpJiZuYXZpZ2F0b3IudmVuZG9yLmluZGV4T2YoIkFwcGxlIik+LTEmJi0xPT09bmF2aWdhdG9yLnVzZXJBZ2VudC5pbmRleE9mKCJDcmlPUyIpJiZuYXZpZ2F0b3IudXNlckFnZW50LmluZGV4T2YoIkZ4aU9TIiksdCYmL21hYy9pLnRlc3QobmF2aWdhdG9yLnBsYXRmb3JtKSx0JiYvV2luMzJ8V2luNjQvaS50ZXN0KG5hdmlnYXRvci5wbGF0Zm9ybSksdCYmL0xpbnV4L2kudGVzdChuYXZpZ2F0b3IucGxhdGZvcm0pLHQmJi9BbmRyb2lkL2kudGVzdChuYXZpZ2F0b3IudXNlckFnZW50KSksbz10JiYvQmxhY2tCZXJyeS9pLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCksaT10JiYvaVBob25lfGlQYWR8aVBvZC8udGVzdChuYXZpZ2F0b3IucGxhdGZvcm0pLHI9dCYmL09wZXJhIE1pbmkvaS50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpLGM9dCYmKCJNYWNJbnRlbCI9PT1uYXZpZ2F0b3IucGxhdGZvcm0mJm5hdmlnYXRvci5tYXhUb3VjaFBvaW50cz4xfHwvaVBhZC8udGVzdChuYXZpZ2F0b3IucGxhdGZvcm0pKSxhPXN8fG98fGl8fHI7Y29uc3QgXz1uZXcgTWFwO2Z1bmN0aW9uIGQoKXtjb25zdCBlPXdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSx0PXdpbmRvdy5sb2NhdGlvbi5ob3N0LG49YCR7dH0ke2V9YDtyZXR1cm4gXy5oYXMobil8fF8uc2V0KG4sZnVuY3Rpb24oZSx0KXtjb25zdCBuPVsiXndpZGdldC1kb2NzIl07Zm9yKGNvbnN0IGUgb2YgbilpZihuZXcgUmVnRXhwKGUpLnRlc3QodCkpcmV0dXJuITA7Y29uc3Qgcz1bIl53aWRnZXRlbWJlZC8/JCIsIl5jbWV3aWRnZXRlbWJlZC8/JCIsIl4oWzAtOWEtekEtWi1dKykvd2lkZ2V0ZW1iZWQvPyQiLCJeKFswLTlhLXpBLVotXSspL3dpZGdldHN0YXRpYy8/JCIsIl4oWzAtOWEtekEtWi1dKyk/Lz9tZWRpdW13aWRnZXRlbWJlZC8/JCIsIl50d2l0dGVyLWNoYXJ0Lz8kIiwiXnRlbGVncmFtL2NoYXJ0Lz8kIiwiXmVtYmVkLyhbMC05YS16QS1aXXs4fSkvPyQiLCJed2lkZ2V0cG9wdXAvPyQiLCJeZXh0ZW5zaW9uLz8kIiwiXmlkZWEtcG9wdXAvPyQiLCJeaG90bGlzdHN3aWRnZXRlbWJlZC8/JCIsIl4oWzAtOWEtekEtWi1dKykvaG90bGlzdHN3aWRnZXRlbWJlZC8/JCIsIl5tYXJrZXRvdmVydmlld3dpZGdldGVtYmVkLz8kIiwiXihbMC05YS16QS1aLV0rKS9tYXJrZXRvdmVydmlld3dpZGdldGVtYmVkLz8kIiwiXmV2ZW50c3dpZGdldGVtYmVkLz8kIiwiXnRpY2tlcnN3aWRnZXRlbWJlZC8/JCIsIl5mb3JleGNyb3NzcmF0ZXN3aWRnZXRlbWJlZC8/JCIsIl5mb3JleGhlYXRtYXB3aWRnZXRlbWJlZC8/JCIsIl5tYXJrZXRxdW90ZXN3aWRnZXRlbWJlZC8/JCIsIl5zY3JlZW5lcndpZGdldC8/JCIsIl5jcnlwdG9ta3RzY3JlZW5lcndpZGdldC8/JCIsIl4oWzAtOWEtekEtWi1dKykvY3J5cHRvbWt0c2NyZWVuZXJ3aWRnZXQvPyQiLCJeKFswLTlhLXpBLVotXSspL21hcmtldHF1b3Rlc3dpZGdldGVtYmVkLz8kIiwiXnRlY2huaWNhbC1hbmFseXNpcy13aWRnZXQtZW1iZWQvJCIsIl5zaW5nbGVxdW90ZXdpZGdldGVtYmVkLz8kIiwiXihbMC05YS16QS1aLV0rKS9zaW5nbGVxdW90ZXdpZGdldGVtYmVkLz8kIiwiXmVtYmVkLXdpZGdldC8oWzAtOWEtekEtWi1dKykvKChbMC05YS16QS1aLV0rKS8pPyQiLCJed2lkZ2V0LWRvY3MvKFswLTlhLXpBLVotXSspLyhbMC05YS16QS1aLS9dKyk/JCJdLG89ZS5yZXBsYWNlKC9eXC8vLCIiKTtsZXQgaTtmb3IobGV0IGU9cy5sZW5ndGgtMTtlPj0wO2UtLSlpZihpPW5ldyBSZWdFeHAoc1tlXSksaS50ZXN0KG8pKXJldHVybiEwO3JldHVybiExfShlLHQpKSxfLmdldChuKT8/ITF9Y29uc3QgaD13aW5kb3cuVHJhZGluZ1ZpZXc9d2luZG93LlRyYWRpbmdWaWV3fHx7fTtjb25zdCBsPXtBbmRyb2lkOigpPT5zLEJsYWNrQmVycnk6KCk9Pm8saU9TOigpPT5pLE9wZXJhOigpPT5yLGlzSVBhZDooKT0+Yyxhbnk6KCk9PmF9O2guaXNNb2JpbGU9bCxoLm9uV2lkZ2V0PWQ7Y29uc3QgdT0oKT0+e30sZz0ifm1+IjtjbGFzcyBte2NvbnN0cnVjdG9yKGUsdD17fSl7dGhpcy5zZXNzaW9uaWQ9bnVsbCx0aGlzLmNvbm5lY3RlZD0hMSx0aGlzLl90aW1lb3V0PW51bGwsdGhpcy5fYmFzZT1lLHRoaXMuX29wdGlvbnM9e3RpbWVvdXQ6dC50aW1lb3V0fHwyZTQsY29ubmVjdGlvblR5cGU6dC5jb25uZWN0aW9uVHlwZSxhcGlLZXk6dC5hcGlLZXl9fWNvbm5lY3QoKXt0aGlzLl9zb2NrZXQ9bmV3IFdlYlNvY2tldCh0aGlzLl9wcmVwYXJlVXJsKCkpLAp0aGlzLl9zb2NrZXQub25tZXNzYWdlPWU9PntpZigic3RyaW5nIiE9dHlwZW9mIGUuZGF0YSl0aHJvdyBuZXcgVHlwZUVycm9yKGBUaGUgV2ViU29ja2V0IG1lc3NhZ2Ugc2hvdWxkIGJlIGEgc3RyaW5nLiBSZWNpZXZlZCAke09iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChlLmRhdGEpfWApO3RoaXMuX29uRGF0YShlLmRhdGEpfSx0aGlzLl9zb2NrZXQub25jbG9zZT10aGlzLl9vbkNsb3NlLmJpbmQodGhpcyksdGhpcy5fc29ja2V0Lm9uZXJyb3I9dGhpcy5fb25FcnJvci5iaW5kKHRoaXMpfXNlbmQoZSl7dGhpcy5fc29ja2V0JiZ0aGlzLl9zb2NrZXQuc2VuZCh0aGlzLl9lbmNvZGUoZSkpfWRpc2Nvbm5lY3QoKXt0aGlzLl9jbGVhcklkbGVUaW1lb3V0KCksdGhpcy5fc29ja2V0JiYodGhpcy5fc29ja2V0Lm9ubWVzc2FnZT11LHRoaXMuX3NvY2tldC5vbmNsb3NlPXUsdGhpcy5fc29ja2V0Lm9uZXJyb3I9dSx0aGlzLl9zb2NrZXQuY2xvc2UoKSl9X2NsZWFySWRsZVRpbWVvdXQoKXtudWxsIT09dGhpcy5fdGltZW91dCYmKGNsZWFyVGltZW91dCh0aGlzLl90aW1lb3V0KSx0aGlzLl90aW1lb3V0PW51bGwpfV9lbmNvZGUoZSl7bGV0IHQsbj0iIjtjb25zdCBzPUFycmF5LmlzQXJyYXkoZSk/ZTpbZV0sbz1zLmxlbmd0aDtmb3IobGV0IGU9MDtlPG87ZSsrKXQ9bnVsbD09PXNbZV18fHZvaWQgMD09PXNbZV0/IiI6bS5fc3RyaW5naWZ5KHNbZV0pLG4rPWcrdC5sZW5ndGgrZyt0O3JldHVybiBufV9kZWNvZGUoZSl7Y29uc3QgdD1bXTtsZXQgbixzO2Rve2lmKGUuc3Vic3RyaW5nKDAsMykhPT1nKXJldHVybiB0O249IiIscz0iIjtjb25zdCBvPShlPWUuc3Vic3RyaW5nKDMpKS5sZW5ndGg7Zm9yKGxldCB0PTA7dDxvO3QrKyl7aWYocz1OdW1iZXIoZS5zdWJzdHJpbmcodCx0KzEpKSxOdW1iZXIoZS5zdWJzdHJpbmcodCx0KzEpKSE9PXMpe2U9ZS5zdWJzdHJpbmcobi5sZW5ndGgrMyksbj1OdW1iZXIobik7YnJlYWt9bis9c310LnB1c2goZS5zdWJzdHJpbmcoMCxuKSksZT1lLnN1YnN0cmluZyhuKX13aGlsZSgiIiE9PWUpO3JldHVybiB0fV9vbkRhdGEoZSl7dGhpcy5fc2V0VGltZW91dCgpO2NvbnN0IHQ9dGhpcy5fZGVjb2RlKGUpLG49dC5sZW5ndGg7Zm9yKGxldCBlPTA7ZTxuO2UrKyl0aGlzLl9vbk1lc3NhZ2UodFtlXSl9X3NldFRpbWVvdXQoKXt0aGlzLl9jbGVhcklkbGVUaW1lb3V0KCksdGhpcy5fdGltZW91dD1zZXRUaW1lb3V0KHRoaXMuX29uVGltZW91dC5iaW5kKHRoaXMpLHRoaXMuX29wdGlvbnMudGltZW91dCl9X29uVGltZW91dCgpe3RoaXMuZGlzY29ubmVjdCgpLHRoaXMuX29uRGlzY29ubmVjdCh7Y29kZTo0ZTMscmVhc29uOiJzb2NrZXQuaW8gdGltZW91dCIsd2FzQ2xlYW46ITF9KX1fb25NZXNzYWdlKGUpe3RoaXMuc2Vzc2lvbmlkP3RoaXMuX2NoZWNrSWZIZWFydGJlYXQoZSk/dGhpcy5fb25IZWFydGJlYXQoZS5zbGljZSgzKSk6dGhpcy5fY2hlY2tJZkpzb24oZSk/dGhpcy5fYmFzZS5vbk1lc3NhZ2UoSlNPTi5wYXJzZShlLnNsaWNlKDMpKSk6dGhpcy5fYmFzZS5vbk1lc3NhZ2UoZSk6KHRoaXMuc2Vzc2lvbmlkPWUsdGhpcy5fb25Db25uZWN0KCkpfV9jaGVja0lmSGVhcnRiZWF0KGUpe3JldHVybiB0aGlzLl9jaGVja01lc3NhZ2VUeXBlKGUsImgiKX1fY2hlY2tJZkpzb24oZSl7cmV0dXJuIHRoaXMuX2NoZWNrTWVzc2FnZVR5cGUoZSwiaiIpfV9jaGVja01lc3NhZ2VUeXBlKGUsdCl7cmV0dXJuIGUuc3Vic3RyaW5nKDAsMyk9PT0ifiIrdCsifiJ9X29uSGVhcnRiZWF0KGUpe3RoaXMuc2VuZCgifmh+IitlKX1fb25Db25uZWN0KCl7dGhpcy5jb25uZWN0ZWQ9ITAsdGhpcy5fYmFzZS5vbkNvbm5lY3QoKX1fb25EaXNjb25uZWN0KGUpe3RoaXMuX2NsZWFyKCksdGhpcy5fYmFzZS5vbkRpc2Nvbm5lY3QoZSksdGhpcy5zZXNzaW9uaWQ9bnVsbH1fY2xlYXIoKXt0aGlzLmNvbm5lY3RlZD0hMX1fcHJlcGFyZVVybCgpe2NvbnN0IHQ9ayh0aGlzLl9iYXNlLmhvc3QpO2lmKHQucGF0aG5hbWUrPSJzb2NrZXQuaW8vd2Vic29ja2V0Iix0LnByb3RvY29sPSJ3c3M6Iix0LnNlYXJjaFBhcmFtcy5hcHBlbmQoImZyb20iLHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZS5zbGljZSgxLDUwKSksdC5zZWFyY2hQYXJhbXMuYXBwZW5kKCJkYXRlIix3aW5kb3cuQlVJTERfVElNRXx8IiIpLGUoImFueSIpJiZ0LnNlYXJjaFBhcmFtcy5hcHBlbmQoImNsaWVudCIsIm1vYmlsZSIpLHRoaXMuX29wdGlvbnMuY29ubmVjdGlvblR5cGUmJnQuc2VhcmNoUGFyYW1zLmFwcGVuZCgidHlwZSIsdGhpcy5fb3B0aW9ucy5jb25uZWN0aW9uVHlwZSksd2luZG93LldFQlNPQ0tFVF9QQVJBTVNfQU5BTFlUSUNTKXtjb25zdHt3c19wYWdlX3VyaTplLHdzX2FuY2VzdG9yX29yaWdpbjpufT13aW5kb3cuV0VCU09DS0VUX1BBUkFNU19BTkFMWVRJQ1M7ZSYmdC5zZWFyY2hQYXJhbXMuYXBwZW5kKCJwYWdlLXVyaSIsZSksbiYmdC5zZWFyY2hQYXJhbXMuYXBwZW5kKCJhbmNlc3Rvci1vcmlnaW4iLG4pfWNvbnN0IG49d2luZG93LmxvY2F0aW9uLnNlYXJjaC5pbmNsdWRlcygid2lkZ2V0X3Rva2VuIil8fHdpbmRvdy5sb2NhdGlvbi5oYXNoLmluY2x1ZGVzKCJ3aWRnZXRfdG9rZW4iKTtyZXR1cm4gZCgpfHxufHx0LnNlYXJjaFBhcmFtcy5hcHBlbmQoImF1dGgiLCJzZXNzaW9uaWQiKSx2b2lkIDAhPT10aGlzLl9vcHRpb25zLmFwaUtleSYmdC5zZWFyY2hQYXJhbXMuYXBwZW5kKCJhcGlfa2V5Iix0aGlzLl9vcHRpb25zLmFwaUtleSksdC5ocmVmfV9vbkNsb3NlKGUpe3RoaXMuX2NsZWFySWRsZVRpbWVvdXQoKSx0aGlzLl9vbkRpc2Nvbm5lY3QoZSl9X29uRXJyb3IoZSl7dGhpcy5fY2xlYXJJZGxlVGltZW91dCgpLHRoaXMuX2NsZWFyKCksdGhpcy5fYmFzZS5lbWl0KCJlcnJvciIsW2VdKSx0aGlzLnNlc3Npb25pZD1udWxsfXN0YXRpYyBfc3RyaW5naWZ5KGUpe3JldHVybiJbb2JqZWN0IE9iamVjdF0iPT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGUpPyJ+an4iK0pTT04uc3RyaW5naWZ5KGUpOlN0cmluZyhlKX19Y2xhc3Mgd3tjb25zdHJ1Y3RvcihlLHQpe3RoaXMuaG9zdD1lLAp0aGlzLl9jb25uZWN0aW5nPSExLHRoaXMuX2V2ZW50cz17fSx0aGlzLnRyYW5zcG9ydD10aGlzLl9nZXRUcmFuc3BvcnQodCl9aXNDb25uZWN0ZWQoKXtyZXR1cm4hIXRoaXMudHJhbnNwb3J0JiZ0aGlzLnRyYW5zcG9ydC5jb25uZWN0ZWR9aXNDb25uZWN0aW5nKCl7cmV0dXJuIHRoaXMuX2Nvbm5lY3Rpbmd9Y29ubmVjdCgpe3RoaXMuaXNDb25uZWN0ZWQoKXx8KHRoaXMuX2Nvbm5lY3RpbmcmJnRoaXMuZGlzY29ubmVjdCgpLHRoaXMuX2Nvbm5lY3Rpbmc9ITAsdGhpcy50cmFuc3BvcnQuY29ubmVjdCgpKX1zZW5kKGUpe3RoaXMudHJhbnNwb3J0JiZ0aGlzLnRyYW5zcG9ydC5jb25uZWN0ZWQmJnRoaXMudHJhbnNwb3J0LnNlbmQoZSl9ZGlzY29ubmVjdCgpe3RoaXMudHJhbnNwb3J0JiZ0aGlzLnRyYW5zcG9ydC5kaXNjb25uZWN0KCl9b24oZSx0KXtlIGluIHRoaXMuX2V2ZW50c3x8KHRoaXMuX2V2ZW50c1tlXT1bXSksdGhpcy5fZXZlbnRzW2VdLnB1c2godCl9b2ZmQWxsKCl7dGhpcy5fZXZlbnRzPXt9fW9uTWVzc2FnZShlKXt0aGlzLmVtaXQoIm1lc3NhZ2UiLFtlXSl9ZW1pdChlLHQ9W10pe2lmKGUgaW4gdGhpcy5fZXZlbnRzKXtjb25zdCBuPXRoaXMuX2V2ZW50c1tlXS5jb25jYXQoKSxzPW4ubGVuZ3RoO2ZvcihsZXQgZT0wO2U8cztlKyspbltlXS5hcHBseSh0aGlzLHQpfX1vbkNvbm5lY3QoKXt0aGlzLmNsZWFyKCksdGhpcy5lbWl0KCJjb25uZWN0Iil9b25EaXNjb25uZWN0KGUpe3RoaXMuZW1pdCgiZGlzY29ubmVjdCIsW2VdKX1jbGVhcigpe3RoaXMuX2Nvbm5lY3Rpbmc9ITF9X2dldFRyYW5zcG9ydChlKXtyZXR1cm4gbmV3IG0odGhpcyxlKX19ZnVuY3Rpb24gayhlKXtjb25zdCB0PS0xIT09ZS5pbmRleE9mKCIvIik/bmV3IFVSTChlKTpuZXcgVVJMKCJ3c3M6Ly8iK2UpO2lmKCJ3c3M6IiE9PXQucHJvdG9jb2wmJiJodHRwczoiIT09dC5wcm90b2NvbCl0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgd2Vic29ja2V0IGJhc2UgIitlKTtyZXR1cm4gdC5wYXRobmFtZS5lbmRzV2l0aCgiLyIpfHwodC5wYXRobmFtZSs9Ii8iKSx0LnNlYXJjaD0iIix0LnVzZXJuYW1lPSIiLHQucGFzc3dvcmQ9IiIsdH12YXIgcCxiOyFmdW5jdGlvbihlKXtlW2UuTm9ybWFsPTMwMF09Ik5vcm1hbCIsZVtlLkFmdGVyQ2xvc2VFdmVudD01ZTNdPSJBZnRlckNsb3NlRXZlbnQifShwfHwocD17fSkpLGZ1bmN0aW9uKGUpe2VbZS5JbmZvPTBdPSJJbmZvIixlW2UuTm9ybWFsPTFdPSJOb3JtYWwiLGVbZS5EZWJ1Zz0yXT0iRGVidWciLGVbZS5FcnJvcj0zXT0iRXJyb3IifShifHwoYj17fSkpO2NvbnN0IGY9InVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3cmJk51bWJlcih3aW5kb3cuVEVMRU1FVFJZX1dTX0VSUk9SX0xPR1NfVEhSRVNIT0xEKXx8MDt2YXIgeTshZnVuY3Rpb24oZSl7ZVtlLlBpbmdJbnRlcnZhbD0xZTRdPSJQaW5nSW50ZXJ2YWwiLGVbZS5NYXhQaW5nc0NvdW50PTEwXT0iTWF4UGluZ3NDb3VudCIsZVtlLk1heFJlZGlyZWN0cz0yMF09Ik1heFJlZGlyZWN0cyIsZVtlLk1heFJlY29ubmVjdHM9MjBdPSJNYXhSZWNvbm5lY3RzIn0oeXx8KHk9e30pKTtjbGFzcyBUe2NvbnN0cnVjdG9yKGUsdD17fSl7dGhpcy5fcXVldWVTdGFjaz1bXSx0aGlzLl9sb2dzUXVldWU9W10sdGhpcy5fdGVsZW1ldHJ5T2JqZWN0c1F1ZXVlPVtdLHRoaXMuX3JlY29ubmVjdENvdW50PTAsdGhpcy5fcmVkaXJlY3RDb3VudD0wLHRoaXMuX2Vycm9yc0NvdW50PTAsdGhpcy5fZXJyb3JzSW5mb1NlbnQ9ITEsdGhpcy5fY29ubmVjdGlvblN0YXJ0PW51bGwsdGhpcy5fY29ubmVjdGlvbkVzdGFibGlzaGVkPW51bGwsdGhpcy5fcmVjb25uZWN0VGltZW91dD1udWxsLHRoaXMuX29ubGluZUNhbmNlbGxhdGlvblRva2VuPW51bGwsdGhpcy5faXNDb25uZWN0aW9uRm9yYmlkZGVuPSExLHRoaXMuX2luaXRpYWxIb3N0PXQuaW5pdGlhbEhvc3R8fG51bGwsdGhpcy5fc3VnZ2VzdGVkSG9zdD1lLHRoaXMuX3Byb0hvc3Q9dC5wcm9Ib3N0LHRoaXMuX3JlY29ubmVjdEhvc3Q9dC5yZWNvbm5lY3RIb3N0LHRoaXMuX25vUmVjb25uZWN0QWZ0ZXJUaW1lb3V0PSEwPT09dC5ub1JlY29ubmVjdEFmdGVyVGltZW91dCx0aGlzLl9kYXRhUmVxdWVzdFRpbWVvdXQ9dC5kYXRhUmVxdWVzdFRpbWVvdXQsdGhpcy5fY29ubmVjdGlvblR5cGU9dC5jb25uZWN0aW9uVHlwZSx0aGlzLl9hcGlLZXk9dC5hcGlLZXksdGhpcy5fZG9Db25uZWN0KCksdC5waW5nUmVxdWlyZWQmJi0xPT09d2luZG93LmxvY2F0aW9uLnNlYXJjaC5pbmRleE9mKCJub3BpbmciKSYmdGhpcy5fc3RhcnRQaW5nKCl9Y29ubmVjdCgpe3RoaXMuX3RyeUNvbm5lY3QoKX1yZXNldENvdW50ZXJzKCl7dGhpcy5fcmVjb25uZWN0Q291bnQ9MCx0aGlzLl9yZWRpcmVjdENvdW50PTB9c2V0TG9nZ2VyKGUsdCl7dGhpcy5fbG9nZ2VyPWUsdGhpcy5fZ2V0TG9nSGlzdG9yeT10LHRoaXMuX2ZsdXNoTG9ncygpfXNldFRlbGVtZXRyeShlKXt0aGlzLl90ZWxlbWV0cnk9ZSx0aGlzLl90ZWxlbWV0cnkucmVwb3J0U2VudC5zdWJzY3JpYmUodGhpcyx0aGlzLl9vblRlbGVtZXRyeVNlbnQpLHRoaXMuX2ZsdXNoVGVsZW1ldHJ5KCl9b25SZWNvbm5lY3QoZSl7dGhpcy5fb25SZWNvbm5lY3Q9ZX1pc0Nvbm5lY3RlZCgpe3JldHVybiEhdGhpcy5fc29ja2V0JiZ0aGlzLl9zb2NrZXQuaXNDb25uZWN0ZWQoKX1pc0Nvbm5lY3RpbmcoKXtyZXR1cm4hIXRoaXMuX3NvY2tldCYmdGhpcy5fc29ja2V0LmlzQ29ubmVjdGluZygpfW9uKGUsdCl7cmV0dXJuISF0aGlzLl9zb2NrZXQmJigiY29ubmVjdCI9PT1lJiZ0aGlzLl9zb2NrZXQuaXNDb25uZWN0ZWQoKT90KCk6ImRpc2Nvbm5lY3QiPT09ZT90aGlzLl9kaXNjb25uZWN0Q2FsbGJhY2tzLnB1c2godCk6dGhpcy5fc29ja2V0Lm9uKGUsdCksITApfWdldFNlc3Npb25JZCgpe3JldHVybiB0aGlzLl9zb2NrZXQmJnRoaXMuX3NvY2tldC50cmFuc3BvcnQ/dGhpcy5fc29ja2V0LnRyYW5zcG9ydC5zZXNzaW9uaWQ6bnVsbH1zZW5kKGUpe3JldHVybiB0aGlzLmlzQ29ubmVjdGVkKCk/KHRoaXMuX3NvY2tldC5zZW5kKGUpLCEwKToodGhpcy5fcXVldWVNZXNzYWdlKGUpLCExKX0KZ2V0Q29ubmVjdGlvbkVzdGFibGlzaGVkKCl7cmV0dXJuIHRoaXMuX2Nvbm5lY3Rpb25Fc3RhYmxpc2hlZH1nZXRIb3N0KCl7Y29uc3QgZT10aGlzLl90cnlHZXRQcm9Ib3N0KCk7cmV0dXJuIG51bGwhPT1lP2U6dGhpcy5fcmVjb25uZWN0SG9zdCYmdGhpcy5fcmVjb25uZWN0Q291bnQ+Mz90aGlzLl9yZWNvbm5lY3RIb3N0OnRoaXMuX3N1Z2dlc3RlZEhvc3R9Z2V0UmVjb25uZWN0Q291bnQoKXtyZXR1cm4gdGhpcy5fcmVjb25uZWN0Q291bnR9Z2V0UmVkaXJlY3RDb3VudCgpe3JldHVybiB0aGlzLl9yZWRpcmVjdENvdW50fWdldENvbm5lY3Rpb25TdGFydCgpe3JldHVybiB0aGlzLl9jb25uZWN0aW9uU3RhcnR9ZGlzY29ubmVjdCgpe3RoaXMuX2NsZWFyUmVjb25uZWN0VGltZW91dCgpLCh0aGlzLmlzQ29ubmVjdGVkKCl8fHRoaXMuaXNDb25uZWN0aW5nKCkpJiYodGhpcy5fcHJvcGFnYXRlRGlzY29ubmVjdCgpLHRoaXMuX2Rpc2Nvbm5lY3RDYWxsYmFja3M9W10sdGhpcy5fY2xvc2VTb2NrZXQoKSl9Zm9yYmlkQ29ubmVjdGlvbigpe3RoaXMuX2lzQ29ubmVjdGlvbkZvcmJpZGRlbj0hMCx0aGlzLmRpc2Nvbm5lY3QoKX1hbGxvd0Nvbm5lY3Rpb24oKXt0aGlzLl9pc0Nvbm5lY3Rpb25Gb3JiaWRkZW49ITEsdGhpcy5jb25uZWN0KCl9aXNNYXhSZWRpcmVjdHMoKXtyZXR1cm4gdGhpcy5fcmVkaXJlY3RDb3VudD49MjB9aXNNYXhSZWNvbm5lY3RzKCl7cmV0dXJuIHRoaXMuX3JlY29ubmVjdENvdW50Pj0yMH1nZXRQaW5nSW5mbygpe3JldHVybiB0aGlzLl9waW5nSW5mb3x8bnVsbH1nZXRBcGlLZXkoKXtyZXR1cm4gdGhpcy5fYXBpS2V5fV90cnlHZXRQcm9Ib3N0KCl7cmV0dXJuIHdpbmRvdy5UcmFkaW5nVmlldyYmd2luZG93LlRyYWRpbmdWaWV3Lm9uQ2hhcnRQYWdlJiYiYmF0dGxlIj09PXdpbmRvdy5lbnZpcm9ubWVudCYmIXRoaXMuX3JlZGlyZWN0Q291bnQmJi0xPT09d2luZG93LmxvY2F0aW9uLmhyZWYuaW5kZXhPZigid3NfaG9zdCIpP3RoaXMuX2luaXRpYWxIb3N0P3RoaXMuX2luaXRpYWxIb3N0OnZvaWQgMCE9PXdpbmRvdy51c2VyJiZ3aW5kb3cudXNlci5wcm9fcGxhbj90aGlzLl9wcm9Ib3N0fHx0aGlzLl9zdWdnZXN0ZWRIb3N0Om51bGw6bnVsbH1fcXVldWVNZXNzYWdlKGUpezA9PT10aGlzLl9xdWV1ZVN0YWNrLmxlbmd0aCYmdGhpcy5fbG9nTWVzc2FnZSgwLCJTb2NrZXQgaXMgbm90IGNvbm5lY3RlZC4gUXVldWVkIGEgbWVzc2FnZSIpLHRoaXMuX3F1ZXVlU3RhY2sucHVzaChlKX1fcHJvY2Vzc01lc3NhZ2VRdWV1ZSgpezAhPT10aGlzLl9xdWV1ZVN0YWNrLmxlbmd0aCYmKHRoaXMuX2xvZ01lc3NhZ2UoMCwiUHJvY2Vzc2luZyBxdWV1ZWQgbWVzc2FnZXMiKSx0aGlzLl9xdWV1ZVN0YWNrLmZvckVhY2godGhpcy5zZW5kLmJpbmQodGhpcykpLHRoaXMuX2xvZ01lc3NhZ2UoMCwiUHJvY2Vzc2VkICIrdGhpcy5fcXVldWVTdGFjay5sZW5ndGgrIiBtZXNzYWdlcyIpLHRoaXMuX3F1ZXVlU3RhY2s9W10pfV9vbkRpc2Nvbm5lY3QoZSl7dGhpcy5fbm9SZWNvbm5lY3RBZnRlclRpbWVvdXR8fG51bGwhPT10aGlzLl9yZWNvbm5lY3RUaW1lb3V0fHwodGhpcy5fcmVjb25uZWN0VGltZW91dD1zZXRUaW1lb3V0KHRoaXMuX3RyeVJlY29ubmVjdC5iaW5kKHRoaXMpLDVlMykpLHRoaXMuX2NsZWFyT25saW5lQ2FuY2VsbGF0aW9uVG9rZW4oKTtsZXQgdD0iZGlzY29ubmVjdCBzZXNzaW9uOiIrdGhpcy5nZXRTZXNzaW9uSWQoKTtlJiYodCs9IiwgY29kZToiK2UuY29kZSsiLCByZWFzb246IitlLnJlYXNvbiwxMDA1PT09ZS5jb2RlJiZ0aGlzLl9zZW5kVGVsZW1ldHJ5KCJ3ZWJzb2NrZXRfY29kZV8xMDA1IikpLHRoaXMuX2xvZ01lc3NhZ2UoMCx0KSx0aGlzLl9wcm9wYWdhdGVEaXNjb25uZWN0KGUpLHRoaXMuX2Nsb3NlU29ja2V0KCksdGhpcy5fcXVldWVTdGFjaz1bXX1fY2xvc2VTb2NrZXQoKXtudWxsIT09dGhpcy5fc29ja2V0JiYodGhpcy5fc29ja2V0Lm9mZkFsbCgpLHRoaXMuX3NvY2tldC5kaXNjb25uZWN0KCksdGhpcy5fc29ja2V0PW51bGwpfV9sb2dNZXNzYWdlKGUsdCl7Y29uc3Qgbj17bWV0aG9kOmUsbWVzc2FnZTp0fTt0aGlzLl9sb2dnZXI/dGhpcy5fZmx1c2hMb2dNZXNzYWdlKG4pOihuLm1lc3NhZ2U9YFskeyhuZXcgRGF0ZSkudG9JU09TdHJpbmcoKX1dICR7bi5tZXNzYWdlfWAsdGhpcy5fbG9nc1F1ZXVlLnB1c2gobikpfV9mbHVzaExvZ01lc3NhZ2UoZSl7c3dpdGNoKGUubWV0aG9kKXtjYXNlIDI6dGhpcy5fbG9nZ2VyLmxvZ0RlYnVnKGUubWVzc2FnZSk7YnJlYWs7Y2FzZSAzOnRoaXMuX2xvZ2dlci5sb2dFcnJvcihlLm1lc3NhZ2UpO2JyZWFrO2Nhc2UgMDp0aGlzLl9sb2dnZXIubG9nSW5mbyhlLm1lc3NhZ2UpO2JyZWFrO2Nhc2UgMTp0aGlzLl9sb2dnZXIubG9nTm9ybWFsKGUubWVzc2FnZSl9fV9mbHVzaExvZ3MoKXt0aGlzLl9mbHVzaExvZ01lc3NhZ2Uoe21ldGhvZDoxLG1lc3NhZ2U6Im1lc3NhZ2VzIGZyb20gcXVldWUuIFN0YXJ0LiJ9KSx0aGlzLl9sb2dzUXVldWUuZm9yRWFjaCgoZT0+e3RoaXMuX2ZsdXNoTG9nTWVzc2FnZShlKX0pKSx0aGlzLl9mbHVzaExvZ01lc3NhZ2Uoe21ldGhvZDoxLG1lc3NhZ2U6Im1lc3NhZ2VzIGZyb20gcXVldWUuIEVuZC4ifSksdGhpcy5fbG9nc1F1ZXVlPVtdfV9zZW5kVGVsZW1ldHJ5KGUsdCl7Y29uc3Qgbj17ZXZlbnQ6ZSxwYXJhbXM6dH07dGhpcy5fdGVsZW1ldHJ5P3RoaXMuX2ZsdXNoVGVsZW1ldHJ5T2JqZWN0KG4pOnRoaXMuX3RlbGVtZXRyeU9iamVjdHNRdWV1ZS5wdXNoKG4pfV9mbHVzaFRlbGVtZXRyeU9iamVjdChlKXt0aGlzLl90ZWxlbWV0cnkuc2VuZENoYXJ0UmVwb3J0KGUuZXZlbnQsZS5wYXJhbXMsITEpfV9mbHVzaFRlbGVtZXRyeSgpe3RoaXMuX3RlbGVtZXRyeU9iamVjdHNRdWV1ZS5mb3JFYWNoKChlPT57dGhpcy5fZmx1c2hUZWxlbWV0cnlPYmplY3QoZSl9KSksdGhpcy5fdGVsZW1ldHJ5T2JqZWN0c1F1ZXVlPVtdfV9kb0Nvbm5lY3QoKXsKdGhpcy5fc29ja2V0JiYodGhpcy5fc29ja2V0LmlzQ29ubmVjdGVkKCl8fHRoaXMuX3NvY2tldC5pc0Nvbm5lY3RpbmcoKSl8fCh0aGlzLl9jbGVhck9ubGluZUNhbmNlbGxhdGlvblRva2VuKCksdGhpcy5faG9zdD10aGlzLmdldEhvc3QoKSx0aGlzLl9zb2NrZXQ9bmV3IHcodGhpcy5faG9zdCx7dGltZW91dDp0aGlzLl9kYXRhUmVxdWVzdFRpbWVvdXQsY29ubmVjdGlvblR5cGU6dGhpcy5fY29ubmVjdGlvblR5cGUsYXBpS2V5OnRoaXMuX2FwaUtleX0pLHRoaXMuX2xvZ01lc3NhZ2UoMCwiQ29ubmVjdGluZyB0byAiK3RoaXMuX2hvc3QpLHRoaXMuX2JpbmRFdmVudHMoKSx0aGlzLl9kaXNjb25uZWN0Q2FsbGJhY2tzPVtdLHRoaXMuX2Nvbm5lY3Rpb25TdGFydD1wZXJmb3JtYW5jZS5ub3coKSx0aGlzLl9jb25uZWN0aW9uRXN0YWJsaXNoZWQ9bnVsbCx0aGlzLl9zb2NrZXQuY29ubmVjdCgpLHBlcmZvcm1hbmNlLm1hcmsoIlNXU0MiLHtkZXRhaWw6IlN0YXJ0IFdlYlNvY2tldCBjb25uZWN0aW9uIn0pLHRoaXMuX3NvY2tldC5vbigiY29ubmVjdCIsKCgpPT57cGVyZm9ybWFuY2UubWFyaygiRVdTQyIse2RldGFpbDoiRW5kIFdlYlNvY2tldCBjb25uZWN0aW9uIn0pLHBlcmZvcm1hbmNlLm1lYXN1cmUoIldlYlNvY2tldCBjb25uZWN0aW9uIGRlbGF5IiwiU1dTQyIsIkVXU0MiKX0pKSl9X3Byb3BhZ2F0ZURpc2Nvbm5lY3QoZSl7Y29uc3QgdD10aGlzLl9kaXNjb25uZWN0Q2FsbGJhY2tzLmxlbmd0aDtmb3IobGV0IG49MDtuPHQ7bisrKXRoaXMuX2Rpc2Nvbm5lY3RDYWxsYmFja3Nbbl0oZXx8e30pfV9iaW5kRXZlbnRzKCl7dGhpcy5fc29ja2V0JiYodGhpcy5fc29ja2V0Lm9uKCJjb25uZWN0IiwoKCk9Pntjb25zdCBlPXRoaXMuZ2V0U2Vzc2lvbklkKCk7aWYoInN0cmluZyI9PXR5cGVvZiBlKXtjb25zdCB0PUpTT04ucGFyc2UoZSk7aWYodC5yZWRpcmVjdClyZXR1cm4gdGhpcy5fcmVkaXJlY3RDb3VudCs9MSx0aGlzLl9zdWdnZXN0ZWRIb3N0PXQucmVkaXJlY3QsdGhpcy5pc01heFJlZGlyZWN0cygpJiZ0aGlzLl9zZW5kVGVsZW1ldHJ5KCJyZWRpcmVjdF9iYWlsb3V0Iiksdm9pZCB0aGlzLl9yZWRpcmVjdCgpfXRoaXMuX2Nvbm5lY3Rpb25Fc3RhYmxpc2hlZD1wZXJmb3JtYW5jZS5ub3coKSx0aGlzLl9wcm9jZXNzTWVzc2FnZVF1ZXVlKCksdGhpcy5fbG9nTWVzc2FnZSgwLCJjb25uZWN0IHNlc3Npb246IitlKX0pKSx0aGlzLl9zb2NrZXQub24oImRpc2Nvbm5lY3QiLHRoaXMuX29uRGlzY29ubmVjdC5iaW5kKHRoaXMpKSx0aGlzLl9zb2NrZXQub24oImNsb3NlIix0aGlzLl9vbkRpc2Nvbm5lY3QuYmluZCh0aGlzKSksdGhpcy5fc29ja2V0Lm9uKCJlcnJvciIsKGU9Pnt0aGlzLl9sb2dNZXNzYWdlKDAsbmV3IERhdGUrIiBzZXNzaW9uOiIrdGhpcy5nZXRTZXNzaW9uSWQoKSsiIHdlYnNvY2tldCBlcnJvcjoiK0pTT04uc3RyaW5naWZ5KGUpKSx0aGlzLl9zZW5kVGVsZW1ldHJ5KCJ3ZWJzb2NrZXRfZXJyb3IiKSx0aGlzLl9lcnJvcnNDb3VudCsrLCF0aGlzLl9lcnJvcnNJbmZvU2VudCYmdGhpcy5fZXJyb3JzQ291bnQ+PWYmJih2b2lkIDAhPT10aGlzLl9sYXN0Q29ubmVjdENhbGxTdGFjayYmKHRoaXMuX3NlbmRUZWxlbWV0cnkoIndlYnNvY2tldF9lcnJvcl9jb25uZWN0X3N0YWNrIix7dGV4dDp0aGlzLl9sYXN0Q29ubmVjdENhbGxTdGFja30pLGRlbGV0ZSB0aGlzLl9sYXN0Q29ubmVjdENhbGxTdGFjayksdm9pZCAwIT09dGhpcy5fZ2V0TG9nSGlzdG9yeSYmdGhpcy5fc2VuZFRlbGVtZXRyeSgid2Vic29ja2V0X2Vycm9yX2xvZyIse3RleHQ6dGhpcy5fZ2V0TG9nSGlzdG9yeSg1MCkuam9pbigiXG4iKX0pLHRoaXMuX2Vycm9yc0luZm9TZW50PSEwKX0pKSl9X3JlZGlyZWN0KCl7dGhpcy5kaXNjb25uZWN0KCksdGhpcy5fcmVjb25uZWN0V2hlbk9ubGluZSgpfV90cnlSZWNvbm5lY3QoKXt0aGlzLl90cnlDb25uZWN0KCkmJih0aGlzLl9yZWNvbm5lY3RDb3VudCs9MSl9X3RyeUNvbm5lY3QoKXtyZXR1cm4hdGhpcy5faXNDb25uZWN0aW9uRm9yYmlkZGVuJiYodGhpcy5fY2xlYXJSZWNvbm5lY3RUaW1lb3V0KCksdGhpcy5fbGFzdENvbm5lY3RDYWxsU3RhY2s9bmV3IEVycm9yKGBXZWJTb2NrZXQgY29ubmVjdCBzdGFjay4gSXMgY29ubmVjdGVkOiAke3RoaXMuaXNDb25uZWN0ZWQoKX0uYCkuc3RhY2t8fCIiLCF0aGlzLmlzQ29ubmVjdGVkKCkmJih0aGlzLmRpc2Nvbm5lY3QoKSx0aGlzLl9yZWNvbm5lY3RXaGVuT25saW5lKCksITApKX1fY2xlYXJPbmxpbmVDYW5jZWxsYXRpb25Ub2tlbigpe3RoaXMuX29ubGluZUNhbmNlbGxhdGlvblRva2VuJiYodGhpcy5fb25saW5lQ2FuY2VsbGF0aW9uVG9rZW4oKSx0aGlzLl9vbmxpbmVDYW5jZWxsYXRpb25Ub2tlbj1udWxsKX1fY2xlYXJSZWNvbm5lY3RUaW1lb3V0KCl7bnVsbCE9PXRoaXMuX3JlY29ubmVjdFRpbWVvdXQmJihjbGVhclRpbWVvdXQodGhpcy5fcmVjb25uZWN0VGltZW91dCksdGhpcy5fcmVjb25uZWN0VGltZW91dD1udWxsKX1fcmVjb25uZWN0V2hlbk9ubGluZSgpe2lmKG5hdmlnYXRvci5vbkxpbmUpcmV0dXJuIHRoaXMuX2xvZ01lc3NhZ2UoMCwiTmV0d29yayBzdGF0dXM6IG9ubGluZSAtIHRyeWluZyB0byBjb25uZWN0IiksdGhpcy5fZG9Db25uZWN0KCksdm9pZCh0aGlzLl9vblJlY29ubmVjdCYmdGhpcy5fb25SZWNvbm5lY3QoKSk7dGhpcy5fbG9nTWVzc2FnZSgwLCJOZXR3b3JrIHN0YXR1czogb2ZmbGluZSAtIHdhaXQgdW50aWwgb25saW5lIiksdGhpcy5fb25saW5lQ2FuY2VsbGF0aW9uVG9rZW49ZnVuY3Rpb24oZSl7bGV0IHQ9ZTtjb25zdCBuPSgpPT57d2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm9ubGluZSIsbiksdCYmdCgpfTtyZXR1cm4gd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm9ubGluZSIsbiksKCk9Pnt0PW51bGx9fSgoKCk9Pnt0aGlzLl9sb2dNZXNzYWdlKDAsIk5ldHdvcmsgc3RhdHVzIGNoYW5nZWQgdG8gb25saW5lIC0gdHJ5aW5nIHRvIGNvbm5lY3QiKSx0aGlzLl9kb0Nvbm5lY3QoKSx0aGlzLl9vblJlY29ubmVjdCYmdGhpcy5fb25SZWNvbm5lY3QoKX0pKX0KX29uVGVsZW1ldHJ5U2VudChlKXsid2Vic29ja2V0X2Vycm9yImluIGUmJih0aGlzLl9lcnJvcnNDb3VudD0wLHRoaXMuX2Vycm9yc0luZm9TZW50PSExKX1fc3RhcnRQaW5nKCl7aWYodGhpcy5fcGluZ0ludGVydmFsSWQpcmV0dXJuO2NvbnN0IGU9ayh0aGlzLmdldEhvc3QoKSk7ZS5wYXRobmFtZSs9InBpbmciLGUucHJvdG9jb2w9Imh0dHBzOiI7bGV0IHQ9MCxuPTA7Y29uc3Qgcz1lPT57dGhpcy5fcGluZ0luZm89dGhpcy5fcGluZ0luZm98fHttYXg6MCxtaW46MS8wLGF2ZzowfTtjb25zdCBzPShuZXcgRGF0ZSkuZ2V0VGltZSgpLWU7cz50aGlzLl9waW5nSW5mby5tYXgmJih0aGlzLl9waW5nSW5mby5tYXg9cyksczx0aGlzLl9waW5nSW5mby5taW4mJih0aGlzLl9waW5nSW5mby5taW49cyksdCs9cyxuKyssdGhpcy5fcGluZ0luZm8uYXZnPXQvbixuPj0xMCYmdGhpcy5fcGluZ0ludGVydmFsSWQmJihjbGVhckludGVydmFsKHRoaXMuX3BpbmdJbnRlcnZhbElkKSxkZWxldGUgdGhpcy5fcGluZ0ludGVydmFsSWQpfTt0aGlzLl9waW5nSW50ZXJ2YWxJZD1zZXRJbnRlcnZhbCgoKCk9Pntjb25zdCB0PShuZXcgRGF0ZSkuZ2V0VGltZSgpLG49bmV3IFhNTEh0dHBSZXF1ZXN0O24ub3BlbigiR0VUIixlLCEwKSxuLnNlbmQoKSxuLm9ucmVhZHlzdGF0ZWNoYW5nZT0oKT0+e24ucmVhZHlTdGF0ZT09PVhNTEh0dHBSZXF1ZXN0LkRPTkUmJjIwMD09PW4uc3RhdHVzJiZzKHQpfX0pLDFlNCl9fQpjb25zdCBDPSJ3aWRnZXRfdXNlcl90b2tlbi0iLHY9SlNPTi5wYXJzZSgneyJhZHgiOiJ3aWRnZXRfdXNlcl90b2tlbi1hZHgiLCJhZHhEIjoid2lkZ2V0X3VzZXJfdG9rZW4tYWR4RCIsImFnZW5jaWFsYm1jb21iciI6IndpZGdldF91c2VyX3Rva2VuLWFnZW5jaWFsYm1jb21iciIsImFsamF6aXJhY2FwaXRhbEQiOiJ3aWRnZXRfdXNlcl90b2tlbi1hbGphemlyYWNhcGl0YWxEIiwiYWxqYXppcmFjYXBpdGFsUlQiOiJ3aWRnZXRfdXNlcl90b2tlbi1hbGphemlyYWNhcGl0YWxSVCIsImFscmFqaGljYXBpdGFsY29tRCI6IndpZGdldF91c2VyX3Rva2VuLWFscmFqaGljYXBpdGFsY29tRCIsImFscmFqaGljYXBpdGFsY29tUlQiOiJ3aWRnZXRfdXNlcl90b2tlbi1hbHJhamhpY2FwaXRhbGNvbVJUIiwiYW1iaXRvIjoid2lkZ2V0X3VzZXJfdG9rZW4tYW1iaXRvIiwiYXJlbmF4dHJvIjoid2lkZ2V0X3VzZXJfdG9rZW4tYXJlbmF4dHJvIiwiYXJ0ZWNoZWNvbSI6IndpZGdldF91c2VyX3Rva2VuLUFydGVjaGVEIiwiYXRsY2FwaXRhbCI6IndpZGdldF91c2VyX3Rva2VuLWF0bGNhcGl0YWwiLCJiYW5raXJvc3J1Ijoid2lkZ2V0X3VzZXJfdG9rZW4tYmFua2lyb3NydSIsImJidmFjaCI6IndpZGdldF91c2VyX3Rva2VuLWJidmFjaCIsImJlZWtzZ3JvdXAiOiJ3aWRnZXRfdXNlcl90b2tlbi1iZWVrc2dyb3VwIiwiYmVsdWdhZ3JvdXBydSI6IndpZGdldF91c2VyX3Rva2VuLWJlbHVnYWdyb3VwcnUiLCJiaXZhY29tIjoid2lkZ2V0X3VzZXJfdG9rZW4tYml2YWNvbSIsImJsdWVmaWVsZCI6IndpZGdldF91c2VyX3Rva2VuLWJsdWVmaWVsZCIsImJsdWVsaW5lZnV0dXJlcyI6IndpZGdldF91c2VyX3Rva2VuLWJsdWVsaW5lZnV0dXJlcyIsImJvdmVzcGEiOiJ3aWRnZXRfdXNlcl90b2tlbi1ibWZib3Zlc3BhY29tYnIiLCJidmJybyI6IndpZGdldF91c2VyX3Rva2VuLWJ2YnJvIiwiYnl0ZXRyYXZlbCI6IndpZGdldF91c2VyX3Rva2VuLWJ5dGV0cmF2ZWwiLCJjYm9lY2FuYWRhIjoid2lkZ2V0X3VzZXJfdG9rZW4tY2JvZWNhbmFkYSIsImNoYW1waW9ubmF0Ym91cnNlIjoid2lkZ2V0X3VzZXJfdG9rZW4tY2hhbXBpb25uYXRib3Vyc2UiLCJjaW5jb2RpYXMiOiJ3aWRnZXRfdXNlcl90b2tlbi1jaW5jb2RpYXMiLCJjZW9jYUQiOiJ3aWRnZXRfdXNlcl90b2tlbi1jZW9jYUQiLCJjZW9jYVJUIjoid2lkZ2V0X3VzZXJfdG9rZW4tY2VvY2FSVCIsImNtY21hcmtldHMiOiJ3aWRnZXRfdXNlcl90b2tlbi1jbWNtYXJrZXRzIiwiY29wZWVzIjoid2lkZ2V0X3VzZXJfdG9rZW4tY29wZWVzIiwiY3NlbGsiOiJ3aWRnZXRfdXNlcl90b2tlbi1jc2VsayIsImRhaWx5ZngiOiJ3aWRnZXRfdXNlcl90b2tlbi1kYWlseWZ4IiwiZGVlcHNlYXJjaCI6IndpZGdldF91c2VyX3Rva2VuLWRlZXBzZWFyY2giLCJkZXJheWFoY29tIjoid2lkZ2V0X3VzZXJfdG9rZW4tZGVyYXlhaGNvbSIsImRmbWFlRCI6IndpZGdldF91c2VyX3Rva2VuLWRmbWFlRCIsImRmbWFlUlQiOiJ3aWRnZXRfdXNlcl90b2tlbi1kZm1hZVJUIiwiZGluYXJzYUQiOiJ3aWRnZXRfdXNlcl90b2tlbi1kaW5hcnNhRCIsImRpbmFyc2FSVCI6IndpZGdldF91c2VyX3Rva2VuLWRpbmFyc2FSVCIsImRvbGFyaG95Ijoid2lkZ2V0X3VzZXJfdG9rZW4tZG9sYXJob3kiLCJlYXN5bnZlc3Rjb21iciI6IndpZGdldF91c2VyX3Rva2VuLWVhc3ludmVzdGNvbWJyIiwiZWRhaWx5Ijoid2lkZ2V0X3VzZXJfdG9rZW4tZWRhaWx5IiwiZWxlc3Bhbm9sY29tIjoid2lkZ2V0X3VzZXJfdG9rZW4tZWxlc3Bhbm9sY29tIiwiZWxvYnJlcm9lcyI6IndpZGdldF91c2VyX3Rva2VuLWVsb2JyZXJvZXMiLCJlbG5hY2lvbmFsRCI6IndpZGdldF91c2VyX3Rva2VuLUVsTmFjaW9uYWxEIiwiZWxwYWlzZmluYW5jaWVybyI6IndpZGdldF91c2VyX3Rva2VuLWVscGFpc2ZpbmFuY2llcm8iLCJlbHBlcmlvZGljb2RlbGFlbmVyZ2lhIjoid2lkZ2V0X3VzZXJfdG9rZW4tZWxwZXJpb2RpY29kZWxhZW5lcmdpYSIsImV1cXVlcm9pbnZlc3RpciI6IndpZGdldF91c2VyX3Rva2VuLWV1cXVlcm9pbnZlc3RpcmNvbSIsImV1cmV4Ijoid2lkZ2V0X3VzZXJfdG9rZW4tZXVyZXgiLCJldXJvZmlucyI6IndpZGdldF91c2VyX3Rva2VuLWV1cm9maW5zIiwiZXBlIjoid2lkZ2V0X3VzZXJfdG9rZW4tZXBlIiwiZXVyb3BhcHJlc3NlcyI6IndpZGdldF91c2VyX3Rva2VuLWV1cm9wYXByZXNzZXMiLCJmaW5hbnphc0QiOiJ3aWRnZXRfdXNlcl90b2tlbi1GaW5hbnphc0QiLCJmb3JiZXNjb21iciI6IndpZGdldF91c2VyX3Rva2VuLWZvcmJlc2NvbWJyIiwiZ2VuaWFsaW52ZXN0aW1lbnRvcyI6IndpZGdldF91c2VyX3Rva2VuLWdlbmlhbGludmVzdGltZW50b3MiLCJoZWFsdGhpdGFsaWEiOiJ3aWRnZXRfdXNlcl90b2tlbi1oZWFsdGhpdGFsaWEiLCJoZWduYXJubyI6IndpZGdldF91c2VyX3Rva2VuLWhlZ25hcm5vIiwiaGlwb3RlY2FyaW9jb21hciI6IndpZGdldF91c2VyX3Rva2VuLWhpcG90ZWNhcmlvY29tYXIiLCJpZ2NvbSI6IndpZGdldF91c2VyX3Rva2VuLWlnY29tIiwiaW52ZXN0ZWdhdGVjb3VrIjoid2lkZ2V0X3VzZXJfdG9rZW4taW52ZXN0ZWdhdGVjb3VrIiwiaW52ZXN0b3BlZGlhIjoid2lkZ2V0X3VzZXJfdG9rZW4taW52ZXN0b3BlZGlhIiwiaW50ZWdyYWx5YXRpcmltIjoid2lkZ2V0X3VzZXJfdG9rZW4taW50ZWdyYWx5YXRpcmltIiwiaXZzZ3JvdXAiOiJ3aWRnZXRfdXNlcl90b2tlbi1pdnNncm91cCIsImpzZWNvemEiOiJ3aWRnZXRfdXNlcl90b2tlbi1qc2Vjb3phIiwiYm9lcnNlbnplaXR1bmciOiJ3aWRnZXRfdXNlcl90b2tlbi1ib2Vyc2VuemVpdHVuZyIsImxhaW5mb3JtYWNpb25jb20iOiJ3aWRnZXRfdXNlcl90b2tlbi1sYWluZm9ybWFjaW9uY29tIiwibWFyY29wb2xvY29tYnIiOiJ3aWRnZXRfdXNlcl90b2tlbi1tYXJjb3BvbG9jb21iciIsIm1lcmNhZG9maW5hbmNpZXJvY29tIjoid2lkZ2V0X3VzZXJfdG9rZW4tbWVyY2Fkb2ZpbmFuY2llcm9jb20iLCJtb2V4Ijoid2lkZ2V0X3VzZXJfdG9rZW4tbW9leCIsIm1vbmV5dGltZXNjb21iciI6IndpZGdldF91c2VyX3Rva2VuLW1vbmV5dGltZXNjb21iciIsIm1vbml0b3Jkb21lcmNhZG9EIjoid2lkZ2V0X3VzZXJfdG9rZW4tbW9uaXRvcmRvbWVyY2Fkb0QiLCJteW5ldGNvbSI6IndpZGdldF91c2VyX3Rva2VuLW15bmV0Y29tIiwibmVnb2Npb3MiOiJ3aWRnZXRfdXNlcl90b2tlbi1uZWdvY2lvcyIsIk5HWCI6IndpZGdldF91c2VyX3Rva2VuLU5HWCIsIk5vdGljaWFzYWdyaWNvbGFEIjoid2lkZ2V0X3VzZXJfdG9rZW4tbm90aWNpYXNhZ3JpY29sYUQiLCJub21tb21hIjoid2lkZ2V0X3VzZXJfdG9rZW4tbm9tbW9tYSIsIm5zZWNva3IiOiJ3aWRnZXRfdXNlcl90b2tlbi1uc2Vjb2tyIiwib2tkaWFyaW8iOiJ3aWRnZXRfdXNlcl90b2tlbi1va2RpYXJpbyIsInBhbmFmcmljYW5yZXNvdXJjZXNjb20iOiJ3aWRnZXRfdXNlcl90b2tlbi1wYW5hZnJpY2FucmVzb3VyY2VzY29tIiwicHNlIjoid2lkZ2V0X3VzZXJfdG9rZW4tcHNlIiwicG9kZXIzNjAiOiJ3aWRnZXRfdXNlcl90b2tlbi1wb2RlcjM2MCIsInBzZUQiOiJ3aWRnZXRfdXNlcl90b2tlbi1wc2VEIiwicml5YWRoY2FwaXRhbEQiOiJ3aWRnZXRfdXNlcl90b2tlbi1yaXlhZGhjYXBpdGFsRCIsInJpeWFkaGNhcGl0YWxSVCI6IndpZGdldF91c2VyX3Rva2VuLXJpeWFkaGNhcGl0YWxSVCIsInFlY29tcWEiOiJ3aWRnZXRfdXNlcl90b2tlbi1xZWNvbXFhIiwic2Ftb2xldCI6IndpZGdldF91c2VyX3Rva2VuLXNhbW9sZXQiLCJzZWVpbmdtYWNoaW5lc2NvbSI6IndpZGdldF91c2VyX3Rva2VuLXNlZWluZ21hY2hpbmVzY29tIiwic2V1ZGluaGVpcm8iOiJ3aWRnZXRfdXNlcl90b2tlbi1zZXVkaW5oZWlybyIsInNvZnR3YXJlYWciOiJ3aWRnZXRfdXNlcl90b2tlbi1zb2Z0d2FyZWFnIiwic29nZWNsYWlyIjoid2lkZ2V0X3VzZXJfdG9rZW4tc29nZWNsYWlyIiwic2djb21wYW55aXQiOiJ3aWRnZXRfdXNlcl90b2tlbi1zZ2NvbXBhbnlpdCIsInNoYXJlanVuY3Rpb24iOiJ3aWRnZXRfdXNlcl90b2tlbi1zaGFyZWp1bmN0aW9uIiwic21hcnRsYWItY3VzdG9tIjoid2lkZ2V0X3VzZXJfdG9rZW4tc21hcnRsYWIiLCJzbWFydGxhYiI6IndpZGdldF91c2VyX3Rva2VuLXNtYXJ0bGFiIiwic3BhY2Vtb25leWNvbWJyIjoid2lkZ2V0X3VzZXJfdG9rZW4tc3BhY2Vtb25leWNvbWJyIiwic3RvbmV4d2RnIjoid2lkZ2V0X3VzZXJfdG9rZW4tc3RvbmV4wqMtIXd3dy5zdG9uZXguY29tIiwic3RveGlvIjoid2lkZ2V0X3VzZXJfdG9rZW4tc3RveGlvIiwic3RvbmV4Ijoid2lkZ2V0X3VzZXJfdG9rZW4tc3RvbmV4IiwidG9yb2ludmVzdGltZW50b3Njb20iOiJ3aWRnZXRfdXNlcl90b2tlbi10b3JvaW52ZXN0aW1lbnRvc2NvbSIsInRoZWNzZWNvbSI6IndpZGdldF91c2VyX3Rva2VuLXRoZWNzZWNvbSIsInRyYWRlcnNjbHViYnJhc2lsIjoid2lkZ2V0X3VzZXJfdG9rZW4tdHJhZGVyc2NsdWJicmFzaWwiLCJ0cmFkZXJzY2x1YmJyYXNpbEQiOiJ3aWRnZXRfdXNlcl90b2tlbi10cmFkZXJzY2x1YmJyYXNpbEQiLCJ0cmFkaW5ndmlldyI6IndpZGdldF91c2VyX3Rva2VuLXRyYWRpbmd2aWV3IiwieHRvb2xzIjoid2lkZ2V0X3VzZXJfdG9rZW4teHRvb2xzIiwidHdpdHRlciI6IndpZGdldF91c2VyX3Rva2VuLXR3aXR0ZXIiLCJ2ZWxvY2l0eWNvbXBvc2l0ZXNjb20iOiJ3aWRnZXRfdXNlcl90b2tlbi12ZWxvY2l0eWNvbXBvc2l0ZXNjb20iLCJ2b2Nlc2FhYnJpbGNvbWJyIjoid2lkZ2V0X3VzZXJfdG9rZW4tdm9jZXNhYWJyaWxjb21iciIsIndlYWx0aHNpbXBsZSI6IndpZGdldF91c2VyX3Rva2VuLXdlYWx0aHNpbXBsZcKjLSFteS53ZWFsdGhzaW1wbGUuY29tIiwid29ybGRjaGVzc2NvbSI6IndpZGdldF91c2VyX3Rva2VuLXdvcmxkY2hlc3Njb20iLCJ4Q3J0eUprc3AiOiJ3aWRnZXRfdXNlcl90b2tlbi14Q3J0eUprc3AiLCJ4cGljb21iciI6IndpZGdldF91c2VyX3Rva2VuLXhwaWNvbWJyIn0nKVt3aW5kb3cuVHJhZGluZ1ZpZXcmJndpbmRvdy5UcmFkaW5nVmlldy53aWRnZXRDdXN0b21lcnx8IiJdfHwiIixTPXYuc3RhcnRzV2l0aChDKT92LnN1YnN0cmluZygxOCk6InRyYWRpbmd2aWV3Igo7d2luZG93LldTQmFja2VuZENvbm5lY3Rpb249bmV3IFQod2luZG93LldFQlNPQ0tFVF9IT1NULHtwaW5nUmVxdWlyZWQ6d2luZG93LldTX0hPU1RfUElOR19SRVFVSVJFRCxwcm9Ib3N0OndpbmRvdy5XRUJTT0NLRVRfUFJPX0hPU1QscmVjb25uZWN0SG9zdDp3aW5kb3cuV0VCU09DS0VUX0hPU1RfRk9SX1JFQ09OTkVDVCxpbml0aWFsSG9zdDp3aW5kb3cuV0VCU09DS0VUX0lOSVRJQUxfSE9TVCxjb25uZWN0aW9uVHlwZTp3aW5kb3cuV0VCU09DS0VUX0NPTk5FQ1RJT05fVFlQRSxhcGlLZXk6U30pLHdpbmRvdy5XU0JhY2tlbmRDb25uZWN0aW9uQ3Rvcj1UfSkoKTsKCTwvc2NyaXB0Pgo8L2hlYWQ+Cjxib2R5PgoJPHNjcmlwdCBub25jZT0iR2ZOZU1iSTNqd1lLRVRPcm1PN0E5Zz09Ij4KCQkoKCk9PnsidXNlIHN0cmljdCI7Y29uc3QgdD0xMDE5O3ZhciBlLHMsbyxhLGQ7IWZ1bmN0aW9uKHQpe3QuQWRhcHRpdmU9ImFkYXB0aXZlIix0LlJlZ3VsYXI9InJlZ3VsYXIiLHQuQ29tcGFjdD0iY29tcGFjdCJ9KGV8fChlPXt9KSksZnVuY3Rpb24odCl7dC5BbGxTeW1ib2xzPSJhbGxfc3ltYm9scyIsdC5NYXJrZXQ9Im1hcmtldCIsdC5TeW1ib2w9InN5bWJvbCJ9KHN8fChzPXt9KSksZnVuY3Rpb24odCl7dC5DcnlwdG9jdXJyZW5jaWVzPSJjcnlwdG8iLHQuQ3VycmVuY2llcz0iZm9yZXgiLHQuU3RvY2tzPSJzdG9jayIsdC5JbmRpY2VzPSJpbmRleCIsdC5GdXR1cmVzPSJmdXR1cmVzIix0LkJvbmRzPSJjZmQifShvfHwobz17fSkpLGZ1bmN0aW9uKHQpe3QuSFRNTD0iaHRtbCIsdC5SZWFjdD0icmVhY3QifShhfHwoYT17fSkpLGZ1bmN0aW9uKHQpe3QuVGhlbWVDbGFzc1ByZWZpeD0idGhlbWUtIn0oZHx8KGQ9e30pKTtjb25zdCBjPXdpbmRvdztjLmluaXREYXRhPWMuaW5pdERhdGF8fHt9O2xldCBpPWMuaW5pdERhdGEuaGFzaFNldHRpbmdzO2lmKGMuaW5pdERhdGEud2lkZ2V0RGVmYXVsdHMmJihpPXsuLi5jLmluaXREYXRhLndpZGdldERlZmF1bHRzLC4uLml9KSx2b2lkIDAhPT1pKXtpZih2b2lkIDAhPT1pLmNvbG9yVGhlbWUmJmZ1bmN0aW9uKHQsZT13aW5kb3cpe2NvbnN0IHM9InRoZW1lLSIrdCxvPWUuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsYXNzTGlzdDtmb3IoY29uc3QgdCBvZiBBcnJheS5mcm9tKG8pKXQuc3RhcnRzV2l0aCgidGhlbWUtIikmJnQhPT1zJiZvLnJlbW92ZSh0KTtvLmFkZChzKSxlLmRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5kYXRhc2V0LnRoZW1lPXR9KGkuY29sb3JUaGVtZSksKGkuaXNUcmFuc3BhcmVudHx8aS50cmFuc3BhcmVuY3kpJiZkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xhc3NMaXN0LmFkZCgiaXMtdHJhbnNwYXJlbnQiKSx2b2lkIDAhPT1pLmRpc3BsYXlNb2RlJiZmdW5jdGlvbihzLG8pe2lmKG89PT1lLkFkYXB0aXZlKXtjb25zdCBlPXdpbmRvdy5tYXRjaE1lZGlhKGAobWF4LXdpZHRoOiAke3R9cHgpYCksbz0oKT0+e3MuY2xhc3NMaXN0LnRvZ2dsZSgidHYtZGlzcGxheS1tb2RlLXJlZ3VsYXIiLCFlLm1hdGNoZXMpLHMuY2xhc3NMaXN0LnRvZ2dsZSgidHYtZGlzcGxheS1tb2RlLWNvbXBhY3QiLGUubWF0Y2hlcyl9O28oKSxlLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsbyl9ZWxzZSBzLmNsYXNzTGlzdC50b2dnbGUoInR2LWRpc3BsYXktbW9kZS1yZWd1bGFyIixvPT09ZS5SZWd1bGFyKSxzLmNsYXNzTGlzdC50b2dnbGUoInR2LWRpc3BsYXktbW9kZS1jb21wYWN0IixvPT09ZS5Db21wYWN0KX0oZG9jdW1lbnQuYm9keSxpLmRpc3BsYXlNb2RlKSxpLmJvZHlDbGFzc2VzKWZvcihjb25zdCB0IG9mIGkuYm9keUNsYXNzZXMpZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QuYWRkKHQpO2kuYm9keV9jbGFzcyYmZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QuYWRkKGkuYm9keV9jbGFzcyksaS5ib2R5SWQmJihkb2N1bWVudC5ib2R5LmlkPWkuYm9keUlkKX19KSgpOwoJPC9zY3JpcHQ+CgoKPHNjcmlwdCBub25jZT0iR2ZOZU1iSTNqd1lLRVRPcm1PN0E5Zz09Ij4KCXdpbmRvdy5pbml0RGF0YSA9IHdpbmRvdy5pbml0RGF0YSB8fCB7fTsKCgl3aW5kb3cuaW5pdERhdGEuc25vd3Bsb3dTZXR0aW5ncyA9IHsKCQljb2xsZWN0b3JJZDogJ3R2X2NmJywKCQl1cmw6ICdzbm93cGxvdy1waXhlbC50cmFkaW5ndmlldy5jb20nLAoJCXBhcmFtczogewoJCQlhcHBJZDogJ3RyYWRpbmd2aWV3JywKCQkJcG9zdFBhdGg6ICcvY29tLnRyYWRpbmd2aWV3L3RyYWNrJywKCQl9LAoJCWVuYWJsZWQ6IHRydWUsCgl9Cjwvc2NyaXB0PjwvYm9keT4KPC9odG1sPg=="}},"time_used":77,"timings":{"blocked":0,"dns":2,"connect":8,"send":0,"wait":50,"receive":0,"ssl":17},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/85510.de862f9d26db7cf3cd08.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:12.972Z","timestamp":1785148032972,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/85510.de862f9d26db7cf3cd08.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:12 GMT\r\ncontent-type: text/css; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding, Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\netag: W/\"69f98b73-2a9\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Tue, 05 May 2026 06:17:23 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.51\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 05/05/2026 10:16:40\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: bdc74597ebfaeaea016beab2b7bd3c23\r\ncdn-cache: HIT\r\ncontent-encoding: br\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":681,"size_decoded":1162,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with very long lines (681), with no line terminators","md5":"7cce80372e7f07843410b6d3a692a4f6","sha1":"3cc8e6874df4c8b769ce175f1cf67a8b1fa114d4","sha256":"9e6faf03deaf6681c70ad58cacf7014b703268bb2e6f9326ac6a9ab19327c194","sha512":"a5bec448adb1e1a1ed9c61badc3c8fb561d66ed8e50d2df941272a9b32b1ca7ef284b0b57331f216ac91538d5cf440a39338d472034d87083cdc909c5e11b446","ssdeep":"","tlshash":"c501cb55704e9069b80be13e1b6cb28ce551f009ce438facf934f4108ac6aec1061ace","first_seen":"2026-03-24T10:46:27.25807Z","last_seen":"2026-07-27T12:53:06.234622Z","times_seen":1097,"resource_available":false,"data":"W2RhdGEtdGhlbWU9bGlnaHRdey0tXzAtVFdVdDp2YXIoLS1jb2xvci13aGl0ZSl9W2RhdGEtdGhlbWU9ZGFya117LS1fMC1UV1V0OnZhcigtLWNvbG9yLWNvbGQtZ3JheS05MDApfWJvZHl7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1ib2R5LWJnKX1ib2R5LmV4dGVuc2lvbnttaW4td2lkdGg6MDtvdmVyZmxvdzpoaWRkZW59aW1ne2JvcmRlcjpub25lfXRleHRhcmVhe3Jlc2l6ZTpub25lfTpmb2N1c3tvdXRsaW5lOm5vbmV9aW5wdXQsdGV4dGFyZWF7Ym9yZGVyLXJhZGl1czowfS51bnNlbGVjdGFibGV7LXdlYmtpdC11c2VyLXNlbGVjdDpub25lO3VzZXItc2VsZWN0Om5vbmV9LnNlbGVjdGFibGUsaW5wdXQsdGV4dGFyZWF7LXdlYmtpdC11c2VyLXNlbGVjdDp0ZXh0O3VzZXItc2VsZWN0OnRleHR9LnRleHQtY2VudGVye3RleHQtYWxpZ246Y2VudGVyfS5sb2FkaW5nLWluZGljYXRvcntiYWNrZ3JvdW5kOnZhcigtLV8wLVRXVXQpO2hlaWdodDoxMDAlO2luc2V0LWlubGluZS1zdGFydDowO3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO3dpZHRoOjEwMCU7ei1pbmRleDoxNTB9LmZhbGxpbmcsLmdyb3dpbmd7Y29sb3I6I2ZmZn0uZ3Jvd2luZ3tiYWNrZ3JvdW5kOnZhcigtLWNvbG9yLWxlZ2FjeS1zdWNjZXNzKX0uZmFsbGluZ3tiYWNrZ3JvdW5kOnZhcigtLWNvbG9yLXJpcGUtcmVkLTQwMCl9"}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/59465.8e9c06b76c9d50bc242b.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:13.083Z","timestamp":1785148033083,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/59465.8e9c06b76c9d50bc242b.js HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:13 GMT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a632877-1d791d\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Fri, 24 Jul 2026 08:55:19 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/24/2026 10:31:23\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 31a8c7ddfb33038fd3a4c1ebd55721aa\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":1931549,"size_decoded":548405,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, Unicode text, UTF-8 text, with very long lines (3072)","md5":"f8f27d4db01cfe50f3ffd3e990484148","sha1":"3c973ba80b7fd6d45633690af7aa0e4a3fba0645","sha256":"69c8983025d395ad464d6230d65cd7d0ff85eb063c00d6e250e809031f6e7aa0","sha512":"84aea9bbd1ac9e512fd30e2455d1ff25a9bdc2481f66a344af5bbe5e63d47fc51227ca65a24c8a36729c47e027201f6ebe950514126974b22312c1586671f9ed","ssdeep":"24576:fzalYAraWBQ4zQtuj0doGOpRYjjpQ78tGAzOJR/n43dFXOBmrmVUBsYdxS:fzalHraWqtuj0CpRYjjpQ7EGAzOJV43O","tlshash":"f1254ba3b36024ab97e911e548b51503e35818867807c66cf17c6cef25adc4932fafbd","first_seen":"2026-07-24T11:36:47.876406Z","last_seen":"2026-07-27T12:53:06.146085Z","times_seen":188,"resource_available":false,"data":"KHNlbGYud2VicGFja0NodW5rdHJhZGluZ3ZpZXc9c2VsZi53ZWJwYWNrQ2h1bmt0cmFkaW5ndmlld3x8W10pLnB1c2goW1s3Mjg1LDU5NDY1XSx7NTA2NDQ2KGUpe2UuZXhwb3J0cz17c2NyZWVuOiJzY3JlZW4taXdyOU90cHMiLGZhZGU6ImZhZGUtaXdyOU90cHMiLHNjcmVlbmZhZGU6InNjcmVlbmZhZGUtaXdyOU90cHMifX0sMjU5MTMyKGUpe2UuZXhwb3J0cz17fX0sODU2MTYoZSl7ZS5leHBvcnRzPXtjc3NfdmFsdWVfY3VycmVuY3lfbGFiZWxfcmFkaXVzOiI0Iixjc3Nfd3JhcHBlcl9tYXJnaW46IjQiLGNzc19yb3dfbGVmdF9yaWdodF9wYWRkaW5nOiIzIixjc3NfZmFkZV9oZWlnaHQ6IjEwIiwicHJpY2UtYXhpcy1jdXJyZW5jeS1sYWJlbC13cmFwcGVyIjoicHJpY2UtYXhpcy1jdXJyZW5jeS1sYWJlbC13cmFwcGVyLWJUQ1RSQ1RqIixoaWRkZW46ImhpZGRlbi1iVENUUkNUaiIsInByaWNlLWF4aXMtY3VycmVuY3ktbGFiZWwiOiJwcmljZS1heGlzLWN1cnJlbmN5LWxhYmVsLWJUQ1RSQ1RqIixyb3c6InJvdy1iVENUUkNUaiIsZXhwYW5kZWQ6ImV4cGFuZGVkLWJUQ1RSQ1RqIiwicHJpY2UtYXhpcy1jdXJyZW5jeS1sYWJlbC1hcnJvdy1kb3duIjoicHJpY2UtYXhpcy1jdXJyZW5jeS1sYWJlbC1hcnJvdy1kb3duLWJUQ1RSQ1RqIiwicHJpY2UtYXhpcy1jdXJyZW5jeS1sYWJlbC10ZXh0IjoicHJpY2UtYXhpcy1jdXJyZW5jeS1sYWJlbC10ZXh0LWJUQ1RSQ1RqIn19LDE0NDExMihlKXtlLmV4cG9ydHM9e319LDYxNTUyNihlKXtlLmV4cG9ydHM9e319LDI3OTg0KGUpe2UuZXhwb3J0cz17ImNzcy12YWx1ZS1jaGFydC1jb250cm9scy1iYXItaGVpZ2h0LXdpdGgtYm9yZGVyIjoiMzlweCIsImNzcy12YWx1ZS1jaGFydC1jb250cm9scy1iYXItYm9yZGVyIjoiMXB4In19LDI4MjcxMChlKXtlLmV4cG9ydHM9e2Nzc192YWx1ZV9jaGFydF9ndWlfd3JhcHBlcl9jb2x1bW5fZ2FwOiI0In19LDQwMjQzKGUpe2UuZXhwb3J0cz17Y2hhcnRzU3BsaXR0ZXI6ImNoYXJ0c1NwbGl0dGVyLXhxc2FPeDlDIixob3ZlcmVkOiJob3ZlcmVkLXhxc2FPeDlDIn19LDI5MDMyNChlKXtlLmV4cG9ydHM9e2ljb246Imljb24taXJBMG9hSDgifX0sMTI0MzM2KGUpe2UuZXhwb3J0cz17cGFuZVNlcGFyYXRvcjoicGFuZVNlcGFyYXRvci1haTlNWEo5ayIsaGFuZGxlOiJoYW5kbGUtYWk5TVhKOWsiLG1vYmlsZToibW9iaWxlLWFpOU1YSjlrIixob3ZlcmVkOiJob3ZlcmVkLWFpOU1YSjlrIixzZWxlY3RlZDoic2VsZWN0ZWQtYWk5TVhKOWsiLGFjdGl2ZToiYWN0aXZlLWFpOU1YSjlrIn19LDY5MjY0KGUsdCxpKXsidXNlIHN0cmljdCI7aS5kKHQse0ZlYXR1cmVUb2dnbGVXYXRjaGVkVmFsdWU6KCk9PnJ9KTt2YXIgcz1pKDIzMjM2NCksbj1pKDU2OTM5OCk7Y2xhc3MgciBleHRlbmRzIHMuV2F0Y2hlZFZhbHVle2NvbnN0cnVjdG9yKGUsdCl7c3VwZXIoZnVuY3Rpb24oZSl7cmV0dXJuKDAsbi5pc0ZlYXR1cmVFbmFibGVkKShlKX0oZSkpLCgwLG4ub25GZWF0dXJlc1N0YXRlQ2hhbmdlZCkoKS5zdWJzY3JpYmUodGhpcywodD0+e2U9PT10JiZ0aGlzLnNldFZhbHVlKCgwLG4uaXNGZWF0dXJlRW5hYmxlZCkoZSkpfSkpfWRlc3Ryb3koKXsoMCxuLm9uRmVhdHVyZXNTdGF0ZUNoYW5nZWQpKCkudW5zdWJzY3JpYmVBbGwodGhpcyksc3VwZXIuZGVzdHJveSgpfX19LDE3OTc3MShlLHQsaSl7InVzZSBzdHJpY3QiO2kuZCh0LHtlbWl0OigpPT5oLGVtaXRPbmNlOigpPT5kLG9uOigpPT5sLHN1YnNjcmliZTooKT0+Yyx1bnN1YnNjcmliZTooKT0+YX0pO3ZhciBzPWkoOTQ4MzgwKTtjb25zdCBuPXt9LHI9W10sbz17fTtmdW5jdGlvbiBhKGUsdCxpKXtuW2VdLnVuc3Vic2NyaWJlKGksdCl9ZnVuY3Rpb24gbChlLHQsaSl7YyhlLHQsaSl9ZnVuY3Rpb24gYyhlLHQsaSxyKXtuLmhhc093blByb3BlcnR5KGUpfHwobltlXT1uZXcgcy5EZWxlZ2F0ZSksb1tlXT90LmNhbGwoaSk6bltlXS5zdWJzY3JpYmUoaSx0LHIpfWZ1bmN0aW9uIGgoZSwuLi50KXtjb25zdCBpPVtlXS5jb25jYXQodCk7ci5mb3JFYWNoKChlPT57ZS5hcHBseShudWxsLGkpfSkpLG4uaGFzT3duUHJvcGVydHkoZSkmJm5bZV0uZmlyZS5hcHBseShuW2VdLHQpfWZ1bmN0aW9uIGQoZSl7b1tlXSYmY29uc29sZS53YXJuKGBTb21ldGhpbmcgd2VudCB3cm9uZzogZW1pdE9uY2UgY2FsbGVkIG11bHRpcGxlIHRpbWVzIHdpdGggc2FtZSBldmVudCAoJHtlfSlgKSxvW2VdPSEwLGguYXBwbHkobnVsbCxhcmd1bWVudHMpfX0sNTA3Mjg1KGUsdCxpKXsidXNlIHN0cmljdCI7aS5kKHQse3B1c2hTdHJlYW1NdWx0aXBsZXhlcjooKT0+Yn0pO3ZhciBzPWkoMjIxMDYxKSxuPWkoNjMyNjg2KSxyPWkoNzY4NzYwKSxvPWkoMTUwMTUwKSxhPWkoMzg2OTMxKSxsPWkoNTY5Mzk4KSxjPWkoMTUyNjk5KSxoPWkoOTMyMzY1KSxkPWkoMTU2ODUwKSx1PShpKDMwMDI4NiksaSgxMTczMTMpKSxwPWkoMjI0NDAwKSxfPWkoMjY5NTMxKSxtPWkoNjE1NzY5KSxnPWkoODQ4ODU1KTtjb25zdCBmPSgwLHMuZ2V0TG9nZ2VyKShwLmxvZ2dlclN1YnN5c3RlbUlkKSxTPXt1cmw6d2luZG93LlBVU0hTVFJFQU1fVVJMLHVybFBhdGg6Im1lc3NhZ2UtcGlwZS13cyIsdHJhbnNwb3J0VHlwZTpwLlRyYW5zcG9ydFR5cGUuV2ViU29ja2V0fSx2PXt1cmw6d2luZG93LlBVU0hTVFJFQU1fVVJMLnJlcGxhY2UoIndzczovLyIsImh0dHBzOi8vIiksdXJsUGF0aDoibWVzc2FnZS1waXBlLWVzIix0cmFuc3BvcnRUeXBlOnAuVHJhbnNwb3J0VHlwZS5FdmVudFNvdXJjZX07Y2xhc3MgeXtjb25zdHJ1Y3Rvcigpe3ZhciBlO3RoaXMuZ3VpZD0oMCxvLmd1aWQpKCksdGhpcy5fcHVzaFN0cmVhbVB1YmxpYz1udWxsLHRoaXMuX3B1c2hTdHJlYW1Qcml2YXRlPW51bGwsdGhpcy5fc3RhdHVzSGFuZGxlcnM9W10sdGhpcy5fcmVjb25uZWN0SGFuZGxlcnM9W10sdGhpcy5fdXNlclByaXZhdGVDaGFubmVsPW51bGwsdGhpcy5fY2hhbm5lbE11bHRpcGxleGVyPW5ldyBfLkNoYW5uZWxNdWx0aXBsZXhlcix0aGlzLl94RXZlbnRQcmVmaXg9Im11bHRpcGxleGVyLWJjLSIsCnRoaXMuX3N0b3JhZ2VQcmVmaXg9InB1c2hTdHJlYW1NdWx0aXBsZXhlclN0YXRlLiIsdGhpcy5fdXNlckNoYW5uZWxQcmVmaXg9InByaXZhdGVfIix0aGlzLl9zdGF0dXNQdWJsaWM9bi5Db25uZWN0aW9uU3RhdHVzLkNsb3NlZCx0aGlzLl9zdGF0dXNQcml2YXRlPW4uQ29ubmVjdGlvblN0YXR1cy5DbG9zZWQsdGhpcy5feEV2ZW50U2VuZD10aGlzLl94RXZlbnRQcmVmaXgrInNlbmQiLHRoaXMuX3hFdmVudENvbm5lY3Rpb25TdGF0dXM9dGhpcy5feEV2ZW50UHJlZml4KyJjb25uZWN0aW9uU3RhdHVzIix0aGlzLl94RXZlbnRSZWNvbm5lY3RDb21tYW5kPXRoaXMuX3hFdmVudFByZWZpeCsicmVjb25uZWN0Q29tbWFuZCIsdGhpcy5feEV2ZW50UmVjb25uZWN0U3VjY2Vzcz10aGlzLl94RXZlbnRQcmVmaXgrInJlY29ubmVjdFN1Y2Nlc3MiLHRoaXMuX3hFdmVudFJlcXVlc3RMb2dzPXRoaXMuX3hFdmVudFByZWZpeCsicmVxdWVzdExvZ3MiLHRoaXMuX3hFdmVudFNoYXJlTG9ncz10aGlzLl94RXZlbnRQcmVmaXgrInNoYXJlTG9ncyIsdGhpcy5fc3RhdGU9bmV3IG0uTXVsdGlwbGV4ZXJTdGF0ZSx0aGlzLl9zaGFyZUxvZ3NLZXk9dGhpcy5fc3RvcmFnZVByZWZpeCsic2hhcmVMb2dzIix0aGlzLl9sb2NrTmFtZT0icHVzaHN0cmVhbSIsdGhpcy5fbG9ja1Byb21pc2U9KDAsci5jcmVhdGVEZWZlcnJlZFByb21pc2UpKCksdGhpcy5fZGlzcGF0Y2hSZWNvbm5lY3RTdWNjZXNzQ29tbWFuZEZyb21PdGhlcj1lPT57aWYodGhpcy5vd25QdXNoU3RyZWFtKCkpcmV0dXJuO2NvbnN0W3RdPXRoaXMuX2RlY29kZVBhcmFtcyhlKTt0aGlzLl9jYWxsUmVjb25uZWN0SGFuZGxlcnModCl9LHRoaXMuX2Rpc3BhdGNoTWVzc2FnZT0oZSx0LGkpPT57dGhpcy5fZGlzcGF0Y2hNZXNzYWdlVG9PdGhlcnMoZSx0LGkpLHRoaXMuX2Rpc3BhdGNoTWVzc2FnZVRvU2VsZihlLHQsaSwhMSl9LHRoaXMuX2Rpc3BhdGNoTWVzc2FnZUZyb21PdGhlcj1lPT57aWYodGhpcy5vd25QdXNoU3RyZWFtKCkpcmV0dXJuO2NvbnN0W3QsaSxzXT10aGlzLl9kZWNvZGVQYXJhbXMoZSk7dGhpcy5fZGlzcGF0Y2hNZXNzYWdlVG9TZWxmKHQsaSxzLCEwKX0sdGhpcy5fZGlzcGF0Y2hTdGF0dXNDaGFuZ2VGcm9tT3RoZXI9ZT0+e2NvbnN0IHQ9dGhpcy5fZGVjb2RlQ29ubmVjdGlvblN0YXR1cyhlKSxpPXRbMF0scz10WzFdO3RoaXMub3duUHVzaFN0cmVhbSgpfHx0aGlzLl9kaXNwYXRjaFN0YXR1c0NoYW5nZVRvU2VsZihpLHMpfSx0aGlzLl9kaXNwYXRjaFJlY29ubmVjdENvbW1hbmRGcm9tT3RoZXI9KCk9Pnt0aGlzLm93blB1c2hTdHJlYW0oKSYmdGhpcy5mb3JjZUNvbm5lY3QoKX0sdGhpcy5fb25SZXF1ZXN0TG9ncz0oKT0+e2lmKHRoaXMub3duUHVzaFN0cmVhbSgpKXtjb25zdCBlPXRoaXMuX2dldE93bkxvZ3MoKTtsZXQgdD0iIjt0cnl7dD1KU09OLnN0cmluZ2lmeShlKX1jYXRjaChlKXtmLmxvZ0Vycm9yKCJGYWlsZWQgdG8gc3RyaW5naWZ5IG93biBwdXNoc3RyZWFtIGxvZ3MiKX1oLlRWTG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5fc2hhcmVMb2dzS2V5LHQpLGMuVFZYV2luZG93RXZlbnRzLmVtaXQodGhpcy5feEV2ZW50U2hhcmVMb2dzLHQpfX0sdGhpcy5fb25TdGF0ZUNoYW5nZT0oZSx0LGkpPT57Y29uc3Qgcz0icHJpdmF0ZSI9PT10P3RoaXMuX3B1c2hTdHJlYW1Qcml2YXRlOnRoaXMuX3B1c2hTdHJlYW1QdWJsaWM7ImFkZCI9PT1lP3M/LmFkZENoYW5uZWwoaSk6cz8ucmVtb3ZlQ2hhbm5lbChpKX0sdGhpcy5fb25OZXdUYWJDcmVhdGU9KCk9Pnt0aGlzLl9kaXNwYXRjaFN0YXR1c0NoYW5nZVRvT3RoZXJzKHRoaXMuX3N0YXR1c1B1YmxpYyx0aGlzLl9zdGF0dXNQcml2YXRlKX0sKDAsZy53ZWJMb2NrRW5hYmxlZCkoKT9uYXZpZ2F0b3IubG9ja3MucmVxdWVzdCh0aGlzLl9sb2NrTmFtZSwoYXN5bmMoKT0+KHRoaXMuX3N0YXRlLm9uU3RhdGVDaGFuZ2UodGhpcy5fb25TdGF0ZUNoYW5nZSksdGhpcy5fc3RhdGUub25UYWJDcmVhdGUodGhpcy5fb25OZXdUYWJDcmVhdGUpLHRoaXMuX2luc3RhbnRpYXRlUHVzaFN0cmVhbSgpLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJiZWZvcmV1bmxvYWQiLCgoKT0+dGhpcy5fbG9ja1Byb21pc2UucmVzb2x2ZSgpKSksdGhpcy5fbG9ja1Byb21pc2UucHJvbWlzZSkpKToodGhpcy5fc3RhdGUub25TdGF0ZUNoYW5nZSh0aGlzLl9vblN0YXRlQ2hhbmdlKSx0aGlzLl9pbnN0YW50aWF0ZVB1c2hTdHJlYW0oKSksYy5UVlhXaW5kb3dFdmVudHMub24odGhpcy5feEV2ZW50U2VuZCx0aGlzLl9kaXNwYXRjaE1lc3NhZ2VGcm9tT3RoZXIpLGMuVFZYV2luZG93RXZlbnRzLm9uKHRoaXMuX3hFdmVudENvbm5lY3Rpb25TdGF0dXMsdGhpcy5fZGlzcGF0Y2hTdGF0dXNDaGFuZ2VGcm9tT3RoZXIpLGMuVFZYV2luZG93RXZlbnRzLm9uKHRoaXMuX3hFdmVudFJlY29ubmVjdENvbW1hbmQsdGhpcy5fZGlzcGF0Y2hSZWNvbm5lY3RDb21tYW5kRnJvbU90aGVyKSxjLlRWWFdpbmRvd0V2ZW50cy5vbih0aGlzLl94RXZlbnRSZWNvbm5lY3RTdWNjZXNzLHRoaXMuX2Rpc3BhdGNoUmVjb25uZWN0U3VjY2Vzc0NvbW1hbmRGcm9tT3RoZXIpLGMuVFZYV2luZG93RXZlbnRzLm9uKHRoaXMuX3hFdmVudFJlcXVlc3RMb2dzLHRoaXMuX29uUmVxdWVzdExvZ3MpLGU9KCk9Pnt3aW5kb3cubG9naW5TdGF0ZUNoYW5nZSYmd2luZG93LmxvZ2luU3RhdGVDaGFuZ2Uuc3Vic2NyaWJlKHRoaXMsdGhpcy5fY2hhbmdlTG9naW5TdGF0ZSl9LCJsb2FkaW5nIiE9PWRvY3VtZW50LnJlYWR5U3RhdGU/ZSgpOmRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIkRPTUNvbnRlbnRMb2FkZWQiLGUpfW9uKGUsdCl7dGhpcy5fY2hhbm5lbE11bHRpcGxleGVyLm9uKGUsdCl9b2ZmKGUsdCl7dGhpcy5fY2hhbm5lbE11bHRpcGxleGVyLm9mZihlLHQpfW9uU3RhdHVzKGUpe3RoaXMuX3N0YXR1c0hhbmRsZXJzLnB1c2goe2hhbmRsZXI6ZSxpc1ByaXZhdGU6ITF9KSxzZXRUaW1lb3V0KCgoKT0+ZSh0aGlzLl9zdGF0dXNQdWJsaWMpKSwwKX1vblByaXZhdGVTdGF0dXMoZSl7dGhpcy5fc3RhdHVzSGFuZGxlcnMucHVzaCh7aGFuZGxlcjplLAppc1ByaXZhdGU6ITB9KSxzZXRUaW1lb3V0KCgoKT0+ZSh0aGlzLl9zdGF0dXNQcml2YXRlKSksMCl9b25SZWNvbm5lY3QoZSx0PSExKXt0aGlzLl9yZWNvbm5lY3RIYW5kbGVycy5wdXNoKHtoYW5kbGVyOmUsaXNQcml2YXRlOnR9KX1vZmZSZWNvbm5lY3QoZSl7dGhpcy5fcmVjb25uZWN0SGFuZGxlcnM9dGhpcy5fcmVjb25uZWN0SGFuZGxlcnMuZmlsdGVyKCh0PT50LmhhbmRsZXIhPT1lKSl9b2ZmU3RhdHVzKGUpe3RoaXMuX3N0YXR1c0hhbmRsZXJzPXRoaXMuX3N0YXR1c0hhbmRsZXJzLmZpbHRlcigodD0+dC5oYW5kbGVyIT09ZSkpfWZvcmNlQ29ubmVjdCgpe2YubG9nTm9ybWFsKGBDcmVhdGluZyBwdXNoc3RyZWFtIGNvbm5lY3Rpb24gYWZ0ZXIgZm9yY2UgY29ubmVjdC4gTWFpbiB0YWI6ICR7dGhpcy5vd25QdXNoU3RyZWFtKCl9YCksdGhpcy5vd25QdXNoU3RyZWFtKCk/KHRoaXMuX3B1c2hTdHJlYW1QdWJsaWM/LmRpc2Nvbm5lY3QoKSx0aGlzLl9wdXNoU3RyZWFtUHJpdmF0ZT8uZGlzY29ubmVjdCgpLHRoaXMuX2luc3RhbnRpYXRlUHVzaFN0cmVhbSgpKTpjLlRWWFdpbmRvd0V2ZW50cy5lbWl0KHRoaXMuX3hFdmVudFJlY29ubmVjdENvbW1hbmQpfWRpc2Nvbm5lY3QoKXt0aGlzLm93blB1c2hTdHJlYW0oKSYmdGhpcy5fZGVzdHJ1Y3RQdXNoU3RyZWFtKCl9Z2V0TG9ncyhlKXtyZXR1cm4gbmV3IFByb21pc2UoKHQ9Pntjb25zdCBpPXNldFRpbWVvdXQoKCgpPT57Y29uc3QgZT1oLlRWTG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5fc2hhcmVMb2dzS2V5KTt0KG51bGwhPT1lP0pTT04ucGFyc2UoZSk6W10pfSksMWUzKSxzPWU9PntsZXQgbjtjLlRWWFdpbmRvd0V2ZW50cy5vZmYodGhpcy5feEV2ZW50U2hhcmVMb2dzLHMpLGMuVFZYV2luZG93RXZlbnRzLmVtaXQodGhpcy5feEV2ZW50U2hhcmVMb2dzLCIiKSxjbGVhclRpbWVvdXQoaSk7dHJ5e249SlNPTi5wYXJzZShlKX1jYXRjaChlKXtuPVtdLGYubG9nRXJyb3IoIkZhaWxlZCB0byBwYXJzZSBsb2dzIHJlY2VpdmVkIGZyb20gbWFzdGVyIHRhYiIpfXQobil9O3RoaXMub3duUHVzaFN0cmVhbSgpP3QodGhpcy5fZ2V0T3duTG9ncyhlKSk6KGMuVFZYV2luZG93RXZlbnRzLm9uKHRoaXMuX3hFdmVudFNoYXJlTG9ncyxzKSxjLlRWWFdpbmRvd0V2ZW50cy5lbWl0KHRoaXMuX3hFdmVudFJlcXVlc3RMb2dzKSl9KSl9b3duUHVzaFN0cmVhbSgpe3JldHVybiEhdGhpcy5fcHVzaFN0cmVhbVB1YmxpY3x8ISF0aGlzLl9wdXNoU3RyZWFtUHJpdmF0ZX1wdXNoU3RyZWFtKCl7aWYoIXRoaXMub3duUHVzaFN0cmVhbSgpKXRocm93IG5ldyBFcnJvcigiTm90IG93biBQdXNoU3RyZWFtIik7cmV0dXJuIHRoaXMuX3B1c2hTdHJlYW1QdWJsaWN9aXNDb25uZWN0ZWQoKXtyZXR1cm4gdGhpcy5fc3RhdHVzUHVibGljPjB9c3RhdHVzKCl7cmV0dXJuIHRoaXMuX3N0YXR1c1B1YmxpYz8/bi5Db25uZWN0aW9uU3RhdHVzLkNsb3NlZH1zdGF0dXNQcml2YXRlKCl7cmV0dXJuIHRoaXMuX3N0YXR1c1ByaXZhdGU/P24uQ29ubmVjdGlvblN0YXR1cy5DbG9zZWR9dXNlckNoYW5uZWwoKXtpZighdGhpcy5fdXNlclByaXZhdGVDaGFubmVsKXRocm93IG5ldyBFcnJvcigiTm8gdXNlciBjaGFubmVsIik7cmV0dXJuIHRoaXMuX3VzZXJDaGFubmVsKHRoaXMuX3VzZXJQcml2YXRlQ2hhbm5lbCl9YWRkQ2hhbm5lbChlKXt0aGlzLl9zdGF0ZS5hZGRDaGFubmVsKGUuc3RhcnRzV2l0aCh0aGlzLl91c2VyQ2hhbm5lbFByZWZpeCk/InByaXZhdGUiOiJwdWJsaWMiLGUpfXJlbW92ZUNoYW5uZWwoZSl7dGhpcy5fc3RhdGUucmVtb3ZlQ2hhbm5lbChlLnN0YXJ0c1dpdGgodGhpcy5fdXNlckNoYW5uZWxQcmVmaXgpPyJwcml2YXRlIjoicHVibGljIixlKX1zdGF0aWMgZ2V0SW5zdGFuY2UoKXtyZXR1cm4gbnVsbD09PXRoaXMuX2luc3RhbmNlJiYodGhpcy5faW5zdGFuY2U9bmV3IHkpLHRoaXMuX2luc3RhbmNlfV91c2VyQ2hhbm5lbChlKXtyZXR1cm4gdGhpcy5fdXNlckNoYW5uZWxQcmVmaXgrZX1fY29kZVBhcmFtcyhlKXtjb25zdCB0PVsuLi5lXTtyZXR1cm4gdC5wdXNoKChuZXcgRGF0ZSkuZ2V0VGltZSgpKSxKU09OLnN0cmluZ2lmeSh0KX1fZGVjb2RlUGFyYW1zKGUpe2NvbnN0IHQ9SlNPTi5wYXJzZShlKTtyZXR1cm4gdC5wb3AoKSx0fV9pbnN0YW50aWF0ZVB1c2hTdHJlYW0oKXt0aGlzLl9wdXNoU3RyZWFtUHVibGljJiYoKDAsYS50cmFja0V2ZW50KSgiUHVzaHN0cmVhbURvdWJsZVB1YmxpYyIsd2luZG93LnVzZXImJndpbmRvdy51c2VyLnVzZXJuYW1lfHwiR3Vlc3QiLG5hdmlnYXRvci51c2VyQWdlbnQpLHRoaXMuX3B1c2hTdHJlYW1QdWJsaWMuZGlzY29ubmVjdCgpKTtjb25zdCBlPXsuLi50aGlzLl9nZXRQdXNoU3RyZWFtU2V0dGluZ3MoKSx0ZWxlbWV0cnlFbmFibGVkOigpPT4oMCxsLmlzRmVhdHVyZUVuYWJsZWQpKCJwdXNoc3RyZWFtX2Jhc2ljX3RlbGVtZXRyeSIpfTt0aGlzLl9wdXNoU3RyZWFtUHVibGljPW5ldyBwLlB1c2hTdHJlYW0odGhpcy5fZGlzcGF0Y2hNZXNzYWdlLGUpLHRoaXMuX3B1c2hTdHJlYW1QdWJsaWMuY29ubmVjdGlvblN0YXR1cygpLnN1YnNjcmliZSgoZT0+e3RoaXMuX2Rpc3BhdGNoU3RhdHVzQ2hhbmdlKGUsdGhpcy5fc3RhdHVzUHJpdmF0ZSl9KSksdGhpcy5fcHVzaFN0cmVhbVB1YmxpYy5yZWNvbm5lY3RFdmVudCgpLnN1YnNjcmliZShudWxsLCgoKT0+e3RoaXMuX2Rpc3BhdGNoUmVjb25uZWN0U3VjY2Vzc0NvbW1hbmQoKX0pKSx0aGlzLl9wdXNoU3RyZWFtUHJpdmF0ZSYmKCgwLGEudHJhY2tFdmVudCkoIlB1c2hzdHJlYW1Eb3VibGVQcml2YXRlIix3aW5kb3cudXNlciYmd2luZG93LnVzZXIudXNlcm5hbWV8fCJHdWVzdCIsbmF2aWdhdG9yLnVzZXJBZ2VudCksdGhpcy5fcHVzaFN0cmVhbVByaXZhdGUuZGlzY29ubmVjdCgpKSx0aGlzLl9wdXNoU3RyZWFtUHJpdmF0ZT1uZXcgcC5QdXNoU3RyZWFtKHRoaXMuX2Rpc3BhdGNoTWVzc2FnZSx7Li4uZSxtYXhTaXplOjF9KSx0aGlzLl9wdXNoU3RyZWFtUHJpdmF0ZS5jb25uZWN0aW9uU3RhdHVzKCkuc3Vic2NyaWJlKChlPT57CnRoaXMuX2Rpc3BhdGNoU3RhdHVzQ2hhbmdlKHRoaXMuX3N0YXR1c1B1YmxpYyxlKX0pKSx0aGlzLl9wdXNoU3RyZWFtUHJpdmF0ZS5yZWNvbm5lY3RFdmVudCgpLnN1YnNjcmliZShudWxsLCgoKT0+e3RoaXMuX2Rpc3BhdGNoUmVjb25uZWN0U3VjY2Vzc0NvbW1hbmQoITApfSkpLHRoaXMub24oInB1c2hzdHJlYW1fc2V0X3VzZXJfY2hhbm5lbCIsKGU9Pnt0aGlzLl9zZXRVc2VyQ2hhbm5lbChlKX0pKSx0aGlzLl9jb25uZWN0Q2hhbm5lbHMoKX1fZGVzdHJ1Y3RQdXNoU3RyZWFtKCl7Y29uc3QgZT10aGlzLl9wdXNoU3RyZWFtUHVibGljO3RoaXMuX3B1c2hTdHJlYW1QdWJsaWM9bnVsbCxlPy5kaXNjb25uZWN0KCk7Y29uc3QgdD10aGlzLl9wdXNoU3RyZWFtUHJpdmF0ZTt0aGlzLl9wdXNoU3RyZWFtUHJpdmF0ZT1udWxsLHQ/LmRpc2Nvbm5lY3QoKSx0aGlzLl9kaXNwYXRjaFN0YXR1c0NoYW5nZUZyb21PdGhlcih0aGlzLl9jb2RlUGFyYW1zKFtuLkNvbm5lY3Rpb25TdGF0dXMuQ2xvc2VkLG4uQ29ubmVjdGlvblN0YXR1cy5DbG9zZWRdKSl9X2Nvbm5lY3RDaGFubmVscygpe3RoaXMuX3B1c2hTdHJlYW1QdWJsaWM/LmFkZENoYW5uZWwoInB1YmxpYyIpO2NvbnN0IGU9dGhpcy5fc3RhdGUuY29sbGVjdFB1c2hTdHJlYW1DaGFubmVscygicHVibGljIik7dm9pZCAwIT09ZSYmZS5sZW5ndGg+MCYmZS5tYXAoKGU9PnRoaXMuX3B1c2hTdHJlYW1QdWJsaWM/LmFkZENoYW5uZWwoZSkpKSwiaXNfYXV0aGVudGljYXRlZCJpbiB3aW5kb3c/dGhpcy5fY29ubmVjdFVzZXJDaGFubmVsSW5pdGlhbCghMCk6d2luZG93LmxvZ2luU3RhdGVDaGFuZ2UmJndpbmRvdy5sb2dpblN0YXRlQ2hhbmdlLnN1YnNjcmliZSh0aGlzLHRoaXMuX2Nvbm5lY3RVc2VyQ2hhbm5lbEluaXRpYWwpLHRoaXMuX2lzUHVibGljUHVzaHN0cmVhbUVuYWJsZWQoKSYmdGhpcy5fcHVzaFN0cmVhbVB1YmxpYz8uY29ubmVjdCgpfV9nZXRQdXNoU3RyZWFtU2V0dGluZ3MoKXtyZXR1cm4oMCx1LmlzT25Nb2JpbGVBcHBQYWdlKSgiYW55Iik/KDAsbC5pc0ZlYXR1cmVFbmFibGVkKSgiZW5hYmxlX2V2ZW50c291cmNlX3B1c2hzdHJlYW1fbW9iaWxlIik/djpTOigwLGwuaXNGZWF0dXJlRW5hYmxlZCkoImVuYWJsZV9ldmVudHNvdXJjZV9wdXNoc3RyZWFtX3RyYW5zcG9ydCIpP3Y6U31faXNQdWJsaWNQdXNoc3RyZWFtRW5hYmxlZCgpe3JldHVybigwLHUuaXNPbk1vYmlsZUFwcFBhZ2UpKCJhbnkiKXx8ISgwLGwuaXNGZWF0dXJlRW5hYmxlZCkoImRpc2FibGVfcHVzaHN0cmVhbV9jb25uZWN0aW9uc19mb3JfYW5vbnltb3VzX3VzZXJzIil8fHdpbmRvdy5pc19hdXRoZW50aWNhdGVkfHx3aW5kb3cuVHJhZGluZ1ZpZXc/Lm9uQ2hhcnRQYWdlfV9jb25uZWN0VXNlckNoYW5uZWxJbml0aWFsKGUpe2UmJih3aW5kb3cuaXNfYXV0aGVudGljYXRlZD8odGhpcy5fdXNlclByaXZhdGVDaGFubmVsPXdpbmRvdy51c2VyLnByaXZhdGVfY2hhbm5lbD8/bnVsbCx0aGlzLl9wdXNoU3RyZWFtUHJpdmF0ZT8uYWRkQ2hhbm5lbCh0aGlzLnVzZXJDaGFubmVsKCkpLHRoaXMuX3B1c2hTdHJlYW1Qcml2YXRlPy5jb25uZWN0KCkpOnRoaXMuX3VzZXJQcml2YXRlQ2hhbm5lbD1udWxsKX1fY2hhbmdlTG9naW5TdGF0ZShlKXtlfHwodGhpcy5faXNQdWJsaWNQdXNoc3RyZWFtRW5hYmxlZCgpJiZ0aGlzLl9wdXNoU3RyZWFtUHVibGljPy5jb25uZWN0KCksd2luZG93LmlzX2F1dGhlbnRpY2F0ZWQ/KHRoaXMuX3VzZXJQcml2YXRlQ2hhbm5lbD13aW5kb3cudXNlci5wcml2YXRlX2NoYW5uZWw/P251bGwsdGhpcy5vd25QdXNoU3RyZWFtKCkmJih0aGlzLl9wdXNoU3RyZWFtUHJpdmF0ZT8uYWRkQ2hhbm5lbCh0aGlzLnVzZXJDaGFubmVsKCkpLHRoaXMuX3B1c2hTdHJlYW1Qcml2YXRlPy5jb25uZWN0KCkpKToodGhpcy5vd25QdXNoU3RyZWFtKCkmJih0aGlzLl9wdXNoU3RyZWFtUHJpdmF0ZT8ucmVtb3ZlQ2hhbm5lbCh0aGlzLnVzZXJDaGFubmVsKCkpLHRoaXMuX3B1c2hTdHJlYW1Qcml2YXRlPy5kaXNjb25uZWN0KCkpLHRoaXMuX3VzZXJQcml2YXRlQ2hhbm5lbD1udWxsKSl9X3NldFVzZXJDaGFubmVsKGUpe2YubG9nTm9ybWFsKCJTZXQgdXNlciBjaGFubmVsICIrZSksZSE9PXRoaXMuX3VzZXJQcml2YXRlQ2hhbm5lbCYmKHRoaXMub3duUHVzaFN0cmVhbSgpJiZ0aGlzLl91c2VyUHJpdmF0ZUNoYW5uZWwmJnRoaXMuX3B1c2hTdHJlYW1Qcml2YXRlPy5yZW1vdmVDaGFubmVsKHRoaXMudXNlckNoYW5uZWwoKSksdGhpcy5fdXNlclByaXZhdGVDaGFubmVsPWUsdGhpcy5vd25QdXNoU3RyZWFtKCkmJnRoaXMuX3VzZXJQcml2YXRlQ2hhbm5lbCYmdGhpcy5fcHVzaFN0cmVhbVByaXZhdGU/LmFkZENoYW5uZWwodGhpcy51c2VyQ2hhbm5lbCgpKSl9X2Rpc3BhdGNoU3RhdHVzQ2hhbmdlKGUsdCl7dGhpcy5fZGlzcGF0Y2hTdGF0dXNDaGFuZ2VUb090aGVycyhlLHQpLHRoaXMuX2Rpc3BhdGNoU3RhdHVzQ2hhbmdlVG9TZWxmKGUsdCl9X2Rpc3BhdGNoU3RhdHVzQ2hhbmdlVG9TZWxmKGUsdCl7ZSE9PXRoaXMuX3N0YXR1c1B1YmxpYyYmKHRoaXMuX3N0YXR1c1B1YmxpYz1lLHRoaXMuX2NhbGxTdGF0dXNIYW5kbGVycyhlLCExKSksdCE9PXRoaXMuX3N0YXR1c1ByaXZhdGUmJih0aGlzLl9zdGF0dXNQcml2YXRlPXQsdGhpcy5fY2FsbFN0YXR1c0hhbmRsZXJzKHQsITApKX1fY2FsbFN0YXR1c0hhbmRsZXJzKGUsdCl7Zi5sb2dOb3JtYWwoIkNvbm5lY3Rpb24gc3RhdHVzIGNoYW5nZTogIitlKyIsIHByaXZhdGUgIit0KyIsIGlzIG1haW4gdGFiICIrdGhpcy5vd25QdXNoU3RyZWFtKCkpLGQudGVsZW1ldHJ5LnNlbmRSZXBvcnQoInNpdGUiLCJwdXNoc3RyZWFtX3N0YXR1c19jaGFuZ2UiKSx0aGlzLl9zdGF0dXNIYW5kbGVycy5mb3JFYWNoKChpPT57aS5pc1ByaXZhdGU9PT10JiZpLmhhbmRsZXIoZSl9KSl9X2NhbGxSZWNvbm5lY3RIYW5kbGVycyhlKXtmLmxvZ05vcm1hbCgiUmVjb25uZWN0aW9uIGhhcyBiZWVuIG1hZGUiKSx0aGlzLl9yZWNvbm5lY3RIYW5kbGVycy5mb3JFYWNoKCh0PT57dC5pc1ByaXZhdGU9PT1lJiZ0LmhhbmRsZXIoKX0pKX0KX2Rpc3BhdGNoUmVjb25uZWN0U3VjY2Vzc0NvbW1hbmQoZT0hMSl7aWYodGhpcy5vd25QdXNoU3RyZWFtKCkpe3RoaXMuX2NhbGxSZWNvbm5lY3RIYW5kbGVycyhlKTtjb25zdCB0PXRoaXMuX2NvZGVQYXJhbXMoW2VdKTtjLlRWWFdpbmRvd0V2ZW50cy5lbWl0KHRoaXMuX3hFdmVudFJlY29ubmVjdFN1Y2Nlc3MsdCl9fV9kZWNvZGVDb25uZWN0aW9uU3RhdHVzKGUpe2NvbnN0IHQ9cGFyc2VJbnQoZSwxMCk7cmV0dXJuIGlzTmFOKHQpP3RoaXMuX2RlY29kZVBhcmFtcyhlKTpbdCx0XX1fZGlzcGF0Y2hTdGF0dXNDaGFuZ2VUb090aGVycyhlLHQpe2lmKHRoaXMub3duUHVzaFN0cmVhbSgpKXtjb25zdCBpPXRoaXMuX2NvZGVQYXJhbXMoW2UsdF0pO2MuVFZYV2luZG93RXZlbnRzLmVtaXQodGhpcy5feEV2ZW50Q29ubmVjdGlvblN0YXR1cyxpKX19X2Rpc3BhdGNoTWVzc2FnZVRvU2VsZihlLHQsaSxzKXtjb25zdCBuPWUuY2hhbm5lbCxyPWUuY29udGVudDt0aGlzLl9lbWl0KHIsdCxuLHMpfV9kaXNwYXRjaE1lc3NhZ2VUb090aGVycyhlLHQsaSl7Y29uc3Qgcz1bZSx0LGldO2MuVFZYV2luZG93RXZlbnRzLmVtaXQodGhpcy5feEV2ZW50U2VuZCx0aGlzLl9jb2RlUGFyYW1zKHMpKX1fZW1pdChlLHQsaSxzKXt0aGlzLl9jaGFubmVsTXVsdGlwbGV4ZXIuZW1pdChlLHQsaSxzKX1fZ2V0T3duTG9ncyhlKXtpZih0aGlzLm93blB1c2hTdHJlYW0oKSl7Y29uc3QgdD0oMCxzLmdldFJhd0xvZ0hpc3RvcnkpKGUscC5sb2dnZXJTdWJzeXN0ZW1JZCksaT10aGlzLnB1c2hTdHJlYW0oKT8uZ2V0TG9ncygpO3JldHVybltdLmNvbmNhdCh0LGk/P1tdKX1yZXR1cm5bXX19eS5faW5zdGFuY2U9bnVsbDtjb25zdCBiPXkuZ2V0SW5zdGFuY2UoKX0sODU2MTk2KGUsdCxpKXsidXNlIHN0cmljdCI7aS5kKHQse3Nob3VsZEFmZmVjdFVzZXI6KCk9Pmx9KTt2YXIgcz1pKDEwMDU5NSksbj1pLm4ocykscj1pKDkzMjM2NSk7Y29uc3Qgbz0iZmVhdHVyZXRvZ2dsZV9zZWVkIjtmdW5jdGlvbiBhKGUpe3RyeXtjb25zdCB0PW4oKShlK2Z1bmN0aW9uKCl7aWYod2luZG93LnVzZXImJndpbmRvdy51c2VyLmlkKXJldHVybiB3aW5kb3cudXNlci5pZDtjb25zdCBlPXIuVFZMb2NhbFN0b3JhZ2UuZ2V0SXRlbShvKTtpZihudWxsIT09ZSlyZXR1cm4gZTtjb25zdCB0PU1hdGguZmxvb3IoMWU2Kk1hdGgucmFuZG9tKCkpO3JldHVybiByLlRWTG9jYWxTdG9yYWdlLnNldEl0ZW0obyxgJHt0fWApLHR9KCkpLGk9bmV3IERhdGFWaWV3KHQpO3JldHVybiBpLmdldFVpbnQzMigwLCEwKS80Mjk0OTY3Mjk2fWNhdGNoKGUpe3JldHVybi41fX1mdW5jdGlvbiBsKGUsdCl7cmV0dXJuIGEoZSk8PXR9fSwxNTI2OTkoZSx0LGkpeyJ1c2Ugc3RyaWN0IjtpLmQodCx7VFZYV2luZG93RXZlbnRzOigpPT5vLGdldFNjb3BlZFRWWFdpbmRvd0V2ZW50czooKT0+YX0pO3ZhciBzPWkoMjIxMDYxKSxuPWkoOTMyMzY1KTtjb25zdCByPSgwLHMuZ2V0TG9nZ2VyKSgiWFdpbmRvd0V2ZW50cyIpO3ZhciBvO2Z1bmN0aW9uIGEoZSl7cmV0dXJue29uOih0LGkpPT5vLm9uKGAke2V9LiR7dH1gLGkpLG9mZjoodCxpKT0+by5vZmYoYCR7ZX0uJHt0fWAsaSksZW1pdDoodCxpKT0+by5lbWl0KGAke2V9LiR7dH1gLGkpfX0hZnVuY3Rpb24oZSl7Y29uc3QgdD0idHZ4d2V2ZW50cy4iLGk9e307bGV0IHM7d2luZG93LkJyb2FkY2FzdENoYW5uZWw/KHM9bmV3IEJyb2FkY2FzdENoYW5uZWwoInR2eHdldmVudHMiKSxzLmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLChmdW5jdGlvbihlKXtjb25zdHtkYXRhOntldmVudDp0LHZhbHVlOnN9fT1lO2lbdF0mJmlbdF0uZm9yRWFjaCgoZT0+e2Uocyl9KSl9KSksZnVuY3Rpb24oKXtjb25zdCBlPVtdLGk9cGVyZm9ybWFuY2Uubm93KCk7Zm9yKGxldCBpPTA7aTxuLlRWTG9jYWxTdG9yYWdlLmxlbmd0aDtpKyspe2NvbnN0IHM9bi5UVkxvY2FsU3RvcmFnZS5rZXkoaSk7cy5zdGFydHNXaXRoKHQpJiZlLnB1c2gocyl9Y29uc3Qgcz1uLlRWTG9jYWxTdG9yYWdlLmxlbmd0aDtmb3IoY29uc3QgdCBvZiBlKW4uVFZMb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSh0KTtjb25zdCBvPXBlcmZvcm1hbmNlLm5vdygpLWk7ci5sb2dOb3JtYWwoYFRvdGFsIGtleXMgYW1vdW50IGluIGxvY2FsIHN0b3JhZ2Ugb24gb3BlcmF0aW9uIHN0YXJ0OiAke3N9YCksci5sb2dOb3JtYWwoYEtleXMgYW1vdW50IGluIGxvY2FsIHN0b3JhZ2UgdG8gYmUgZGVsZXRlZDogJHtlLmxlbmd0aH1gKSxyLmxvZ05vcm1hbChgS2V5cyB0byBiZSBkZWxldGVkIGZyb20gbG9jYWwgc3RvcmFnZTogJHtKU09OLnN0cmluZ2lmeShlKX1gKSxyLmxvZ05vcm1hbChgUmVtb3Zpbmcga2V5cyBmcm9tIGxvY2FsIHN0b3JhZ2UgdG9vayAke299IG1zYCl9KCkpOndpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJzdG9yYWdlIiwoZnVuY3Rpb24oZSl7Y29uc3R7bmV3VmFsdWU6cyxrZXk6cn09ZTtpZihudWxsPT09c3x8IXJ8fCFyLnN0YXJ0c1dpdGgodCkpcmV0dXJuO2NvbnN0IG89ci5zdWJzdHJpbmcoMTEpO2lbb10mJmlbb10uZm9yRWFjaCgodD0+e3QoZS5uZXdWYWx1ZSl9KSk7bi5UVkxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKHIpfSkpLGUub249ZnVuY3Rpb24oZSx0KXtpW2VdfHwoaVtlXT1bXSksaVtlXS5wdXNoKHQpfSxlLm9mZj1mdW5jdGlvbihlLHQpe2lmKCFpW2VdKXJldHVybjtjb25zdCBzPWlbZV0uaW5kZXhPZih0KTstMSE9PXMmJigxPT09aVtlXS5sZW5ndGg/ZGVsZXRlIGlbZV06aVtlXS5zcGxpY2UocywxKSl9LGUuZW1pdD1mdW5jdGlvbihlLGk9RGF0ZS5ub3coKSl7dHJ5e3M/cy5wb3N0TWVzc2FnZSh7ZXZlbnQ6ZSx2YWx1ZTppfSk6bi5UVkxvY2FsU3RvcmFnZS5zZXRJdGVtKHQrZSxpLnRvU3RyaW5nKCkpfWNhdGNoKGUpe3IubG9nRXJyb3IoZS5tZXNzYWdlKX19fShvfHwobz17fSkpfSw3NjgzMDUoZSx0LGkpeyJ1c2Ugc3RyaWN0IjtpLmQodCx7cG9pbnRJbkJveDooKT0+cixwb2ludEluQ2lyY2xlOigpPT5hLHBvaW50SW5Qb2x5Z29uOigpPT5vLHBvaW50SW5UcmlhbmdsZTooKT0+bn0pO3ZhciBzPWkoMzUxOTAwKTtmdW5jdGlvbiBuKGUsdCxpLG4pewpjb25zdCByPXQuYWRkKGkpLnNjYWxlZCguNSkuYWRkKG4pLnNjYWxlZCguNSk7bGV0IG89KDAscy5pbnRlcnNlY3RMaW5lU2VnbWVudHMpKHQsaSxyLGUpO3JldHVybiBudWxsPT09byYmKG89KDAscy5pbnRlcnNlY3RMaW5lU2VnbWVudHMpKGksbixyLGUpLG51bGw9PT1vJiYobz0oMCxzLmludGVyc2VjdExpbmVTZWdtZW50cykobix0LHIsZSksbnVsbD09PW8pKX1mdW5jdGlvbiByKGUsdCl7cmV0dXJuIGUueD49dC5taW4ueCYmZS54PD10Lm1heC54JiZlLnk+PXQubWluLnkmJmUueTw9dC5tYXgueX1mdW5jdGlvbiBvKGUsdCl7bGV0IGk9dC5sZW5ndGgtMSxzPSExO2NvbnN0IG49ZS54LHI9ZS55O2ZvcihsZXQgZT0wO2U8dC5sZW5ndGg7ZSsrKXtjb25zdCBvPXRbZV0sYT10W2ldOyhvLnk8ciYmYS55Pj1yfHxhLnk8ciYmby55Pj1yKSYmby54KyhyLW8ueSkvKGEueS1vLnkpKihhLngtby54KTxuJiYocz0hcyksaT1lfXJldHVybiBzfWZ1bmN0aW9uIGEoZSx0LGkpe3JldHVybihlLngtdC54KSooZS54LXQueCkrKGUueS10LnkpKihlLnktdC55KTw9aSppfX0sNzAwNzQoZSx0LGkpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBzKGUsdCxpKXtjb25zdCBzPXQuc3VidHJhY3QoZSksbj1pLnN1YnRyYWN0KGUpLmRvdFByb2R1Y3Qocykvcy5kb3RQcm9kdWN0KHMpO3JldHVybntjb2VmZjpuLGRpc3RhbmNlOmUuYWRkU2NhbGVkKHMsbikuc3VidHJhY3QoaSkubGVuZ3RoKCl9fWZ1bmN0aW9uIG4oZSx0LGkpe2NvbnN0IG49cyhlLHQsaSk7aWYoMDw9bi5jb2VmZiYmbi5jb2VmZjw9MSlyZXR1cm4gbjt7Y29uc3Qgcz1lLnN1YnRyYWN0KGkpLmxlbmd0aCgpLG49dC5zdWJ0cmFjdChpKS5sZW5ndGgoKTtyZXR1cm4gczxuP3tjb2VmZjowLGRpc3RhbmNlOnN9Ontjb2VmZjoxLGRpc3RhbmNlOm59fX1pLmQodCx7ZGlzdGFuY2VUb0xpbmU6KCk9PnMsZGlzdGFuY2VUb1NlZ21lbnQ6KCk9Pm59KX0sMzUxOTAwKGUsdCxpKXsidXNlIHN0cmljdCI7aS5kKHQse2ludGVyc2VjdExpbmVBbmRCb3g6KCk9PmgsaW50ZXJzZWN0TGluZVNlZ21lbnRBbmRCb3g6KCk9Pm8saW50ZXJzZWN0TGluZVNlZ21lbnRzOigpPT5sLGludGVyc2VjdExpbmVzOigpPT5hLGludGVyc2VjdFBvbHlnb25BbmRIYWxmcGxhbmU6KCk9PnAsaW50ZXJzZWN0UmF5QW5kQm94OigpPT5kfSk7dmFyIHM9aSgxMzg2MzgpLG49aSg3MzY1MzEpLHI9aSg3MDA3NCk7ZnVuY3Rpb24gbyhlLHQpe2xldCBpPWVbMF0ueCxzPWVbMF0ueSxyPWVbMV0ueCxvPWVbMV0ueTtjb25zdCBhPXQubWluLngsbD10Lm1pbi55LGM9dC5tYXgueCxoPXQubWF4Lnk7bGV0IGQ7ZnVuY3Rpb24gdShlLHQsaSxzLG4scil7bGV0IG89ZC5JbnNpZGU7cmV0dXJuIGU8aT9vfD1kLkxlZnQ6ZT5uJiYob3w9ZC5SaWdodCksdDxzP298PWQuQm90dG9tOnQ+ciYmKG98PWQuVG9wKSxvfSFmdW5jdGlvbihlKXtlW2UuSW5zaWRlPTBdPSJJbnNpZGUiLGVbZS5MZWZ0PTFdPSJMZWZ0IixlW2UuUmlnaHQ9Ml09IlJpZ2h0IixlW2UuQm90dG9tPTRdPSJCb3R0b20iLGVbZS5Ub3A9OF09IlRvcCJ9KGR8fChkPXt9KSk7bGV0IHA9dShpLHMsYSxsLGMsaCksXz11KHIsbyxhLGwsYyxoKSxtPSExLGc9MDtmb3IoOzspe2lmKGc+MWUzKXRocm93IG5ldyBFcnJvcigiQ29oZW4gLSBTdXRoZXJsYW5kIGFsZ29yaXRobTogaW5maW5pdHkgbG9vcCIpO2lmKGcrKywhKHB8Xykpe209ITA7YnJlYWt9aWYocCZfKWJyZWFrO3tjb25zdCBlPXB8fF87bGV0IHQsbjtlJmQuVG9wPyh0PWkrKHItaSkqKGgtcykvKG8tcyksbj1oKTplJmQuQm90dG9tPyh0PWkrKHItaSkqKGwtcykvKG8tcyksbj1sKTplJmQuUmlnaHQ/KG49cysoby1zKSooYy1pKS8oci1pKSx0PWMpOihuPXMrKG8tcykqKGEtaSkvKHItaSksdD1hKSxlPT09cD8oaT10LHM9bixwPXUoaSxzLGEsbCxjLGgpKToocj10LG89bixfPXUocixvLGEsbCxjLGgpKX19cmV0dXJuIG0/KDAsbi5lcXVhbFBvaW50cykoKDAsbi5wb2ludCkoaSxzKSwoMCxuLnBvaW50KShyLG8pKT8oMCxuLnBvaW50KShpLHMpOigwLG4ubGluZVNlZ21lbnQpKCgwLG4ucG9pbnQpKGkscyksKDAsbi5wb2ludCkocixvKSk6bnVsbH1mdW5jdGlvbiBhKGUsdCl7Y29uc3QgaT1lLkEscz10LkEscj1lLkIsbz10LkIsYT1lLkMsbD10LkMsYz1pKm8tcypyO2lmKE1hdGguYWJzKGMpPDFlLTYpcmV0dXJuIG51bGw7Y29uc3QgaD0ocipsLW8qYSkvYyxkPShzKmEtaSpsKS9jO3JldHVybiBuZXcgbi5Qb2ludChoLGQpfWZ1bmN0aW9uIGwoZSx0LGkscyl7Y29uc3Qgbj1mdW5jdGlvbihlLHQsaSxzKXtjb25zdCBuPXQuc3VidHJhY3QoZSkscj1zLnN1YnRyYWN0KGkpLG89bi54KnIueS1uLnkqci54O2lmKE1hdGguYWJzKG8pPDFlLTYpcmV0dXJuIG51bGw7Y29uc3QgYT1lLnN1YnRyYWN0KGkpO3JldHVybihhLnkqci54LWEueCpyLnkpL299KGUsdCxpLHMpO2lmKG51bGw9PT1uKXJldHVybiBudWxsO2NvbnN0IG89dC5zdWJ0cmFjdChlKS5zY2FsZWQobikuYWRkKGUpLGE9KDAsci5kaXN0YW5jZVRvU2VnbWVudCkoaSxzLG8pO3JldHVybiBNYXRoLmFicyhhLmRpc3RhbmNlKTwxZS02P246bnVsbH1mdW5jdGlvbiBjKGUsdCl7Zm9yKGNvbnN0IGkgb2YgZSlpZigoMCxuLmVxdWFsUG9pbnRzKShpLHQpKXJldHVybiExO3JldHVybiBlLnB1c2godCksITB9ZnVuY3Rpb24gaChlLHQpe2NvbnN0IGk9dC5taW4ueCxyPXQubWluLnksbz10Lm1heC54LGE9dC5tYXgueTtpZigwPT09ZS5BKXtjb25zdCB0PS1lLkMvZS5CO3JldHVybiByPD10JiZ0PD1hPygwLG4ubGluZVNlZ21lbnQpKCgwLG4ucG9pbnQpKGksdCksKDAsbi5wb2ludCkobyx0KSk6bnVsbH1pZigwPT09ZS5CKXtjb25zdCB0PS1lLkMvZS5BO3JldHVybiBpPD10JiZ0PD1vPygwLG4ubGluZVNlZ21lbnQpKCgwLG4ucG9pbnQpKHQsciksKDAsbi5wb2ludCkodCxhKSk6bnVsbH17Y29uc3QgdD1bXSxsPWk9Pntjb25zdCBzPWZ1bmN0aW9uKGUsdCl7cmV0dXJuLShlLkMrZS5BKnQpL2UuQn0oZSxpKTtyPD1zJiZzPD1hJiZjKHQsbmV3IG4uUG9pbnQoaSxzKSl9LGg9cz0+e2NvbnN0IHI9ZnVuY3Rpb24oZSx0KXsKcmV0dXJuLShlLkMrZS5CKnQpL2UuQX0oZSxzKTtpPD1yJiZyPD1vJiZjKHQsbmV3IG4uUG9pbnQocixzKSl9O3N3aXRjaChsKGkpLGgociksbChvKSxoKGEpLHQubGVuZ3RoKXtjYXNlIDA6cmV0dXJuIG51bGw7Y2FzZSAxOnJldHVybiB0WzBdO2Nhc2UgMjpyZXR1cm4oMCxuLmVxdWFsUG9pbnRzKSh0WzBdLHRbMV0pP3RbMF06KDAsbi5saW5lU2VnbWVudCkodFswXSx0WzFdKX1yZXR1cm4oMCxzLmFzc2VydCkoITEsIldlIHNob3VsZCBoYXZlIGF0IG1vc3QgdHdvIGludGVyc2VjdGlvbiBwb2ludHMiKSxudWxsfX1mdW5jdGlvbiBkKGUsdCxpKXtjb25zdCBzPWwoZSx0LGkubWluLG5ldyBuLlBvaW50KGkubWF4LngsaS5taW4ueSkpLHI9bChlLHQsbmV3IG4uUG9pbnQoaS5tYXgueCxpLm1pbi55KSxpLm1heCksbz1sKGUsdCxpLm1heCxuZXcgbi5Qb2ludChpLm1pbi54LGkubWF4LnkpKSxhPWwoZSx0LG5ldyBuLlBvaW50KGkubWluLngsaS5tYXgueSksaS5taW4pLGM9W107aWYobnVsbCE9PXMmJnM+PTAmJmMucHVzaChzKSxudWxsIT09ciYmcj49MCYmYy5wdXNoKHIpLG51bGwhPT1vJiZvPj0wJiZjLnB1c2gobyksbnVsbCE9PWEmJmE+PTAmJmMucHVzaChhKSwwPT09Yy5sZW5ndGgpcmV0dXJuIG51bGw7Y29uc3QgaD1NYXRoLm1heCguLi5jKTtyZXR1cm4gZS5hZGRTY2FsZWQodC5zdWJ0cmFjdChlKSxoKX1mdW5jdGlvbiB1KGUsdCl7cmV0dXJuIShlLmxlbmd0aD4wJiYoKDAsbi5lcXVhbFBvaW50cykoZVtlLmxlbmd0aC0xXSx0KXx8KDAsbi5lcXVhbFBvaW50cykoZVswXSx0KSkpJiYoZS5wdXNoKHQpLCEwKX1mdW5jdGlvbiBwKGUsdCl7Y29uc3QgaT1bXTtmb3IobGV0IHM9MDtzPGUubGVuZ3RoOysrcyl7Y29uc3Qgcj1lW3NdLG89ZVsocysxKSVlLmxlbmd0aF0sbD0oMCxuLmxpbmVUaHJvdWdoUG9pbnRzKShyLG8pO2lmKCgwLG4ucG9pbnRJbkhhbGZwbGFuZSkocix0KSl7aWYodShpLHIpLCEoMCxuLnBvaW50SW5IYWxmcGxhbmUpKG8sdCkpe2NvbnN0IGU9YShsLHQuZWRnZSk7bnVsbCE9PWUmJnUoaSxlKX19ZWxzZSBpZigoMCxuLnBvaW50SW5IYWxmcGxhbmUpKG8sdCkpe2NvbnN0IGU9YShsLHQuZWRnZSk7bnVsbCE9PWUmJnUoaSxlKX19cmV0dXJuIGkubGVuZ3RoPj0zP2k6bnVsbH19LDczNjUzMShlLHQsaSl7InVzZSBzdHJpY3QiO2kuZCh0LHtQb2ludDooKT0+cyxib3g6KCk9PmQsZXF1YWxQb2ludHM6KCk9PnIsaGFsZnBsYW5lVGhyb3VnaFBvaW50OigpPT5jLGxpbmU6KCk9Pm8sbGluZVNlZ21lbnQ6KCk9PmwsbGluZVRocm91Z2hQb2ludHM6KCk9PmEscG9pbnQ6KCk9Pm4scG9pbnRJbkhhbGZwbGFuZTooKT0+aH0pO2NsYXNzIHN7Y29uc3RydWN0b3IoZSx0KXt0aGlzLng9ZSx0aGlzLnk9dH1hZGQoZSl7cmV0dXJuIG5ldyBzKHRoaXMueCtlLngsdGhpcy55K2UueSl9YWRkU2NhbGVkKGUsdCl7cmV0dXJuIG5ldyBzKHRoaXMueCt0KmUueCx0aGlzLnkrdCplLnkpfXN1YnRyYWN0KGUpe3JldHVybiBuZXcgcyh0aGlzLngtZS54LHRoaXMueS1lLnkpfWRvdFByb2R1Y3QoZSl7cmV0dXJuIHRoaXMueCplLngrdGhpcy55KmUueX1jcm9zc1Byb2R1Y3QoZSl7cmV0dXJuIHRoaXMueCplLnktdGhpcy55KmUueH1zaWduZWRBbmdsZShlKXtyZXR1cm4gTWF0aC5hdGFuMih0aGlzLmNyb3NzUHJvZHVjdChlKSx0aGlzLmRvdFByb2R1Y3QoZSkpfWFuZ2xlKGUpe3JldHVybiBNYXRoLmFjb3ModGhpcy5kb3RQcm9kdWN0KGUpLyh0aGlzLmxlbmd0aCgpKmUubGVuZ3RoKCkpKX1sZW5ndGgoKXtyZXR1cm4gTWF0aC5zcXJ0KHRoaXMueCp0aGlzLngrdGhpcy55KnRoaXMueSl9c2NhbGVkKGUpe3JldHVybiBuZXcgcyh0aGlzLngqZSx0aGlzLnkqZSl9bm9ybWFsaXplZCgpe3JldHVybiB0aGlzLnNjYWxlZCgxL3RoaXMubGVuZ3RoKCkpfXRyYW5zcG9zZWQoKXtyZXR1cm4gbmV3IHMoLXRoaXMueSx0aGlzLngpfWNsb25lKCl7cmV0dXJuIG5ldyBzKHRoaXMueCx0aGlzLnkpfX1mdW5jdGlvbiBuKGUsdCl7cmV0dXJuIG5ldyBzKGUsdCl9ZnVuY3Rpb24gcihlLHQpe3JldHVybiBlLng9PT10LngmJmUueT09PXQueX1mdW5jdGlvbiBvKGUsdCxpKXtpZigwPT09ZSYmMD09PXQpdGhyb3cgbmV3IEVycm9yKCJBIGFuZCBCIGNhbiBub3QgYmUgYm90aCBlcXVhbCB0byB6ZXJvLiIpO3JldHVybntBOmUsQjp0LEM6aX19ZnVuY3Rpb24gYShlLHQpe2lmKHIoZSx0KSl0aHJvdyBuZXcgRXJyb3IoIlBvaW50cyBzaG91bGQgYmUgZGlzdGluY3QiKTtyZXR1cm4gbyhlLnktdC55LHQueC1lLngsZS54KnQueS10LngqZS55KX1mdW5jdGlvbiBsKGUsdCl7aWYocihlLHQpKXRocm93IG5ldyBFcnJvcigiUG9pbnRzIG9mIGEgc2VnbWVudCBzaG91bGQgYmUgZGlzdGluY3QiKTtyZXR1cm5bZSx0XX1mdW5jdGlvbiBjKGUsdCl7cmV0dXJuIGZ1bmN0aW9uKGUsdCl7cmV0dXJue2VkZ2U6ZSxpc1Bvc2l0aXZlOnR9fShlLGUuQSp0LngrZS5CKnQueStlLkM+MCl9ZnVuY3Rpb24gaChlLHQpe2NvbnN0IGk9dC5lZGdlO3JldHVybiBpLkEqZS54K2kuQiplLnkraS5DPjA9PT10LmlzUG9zaXRpdmV9ZnVuY3Rpb24gZChlLHQpe3JldHVybnttaW46bihNYXRoLm1pbihlLngsdC54KSxNYXRoLm1pbihlLnksdC55KSksbWF4Om4oTWF0aC5tYXgoZS54LHQueCksTWF0aC5tYXgoZS55LHQueSkpfX19LDEzNDY3KGUsdCxpKXsidXNlIHN0cmljdCI7aS5kKHQse2FyZUVxdWFsUmdiOigpPT51LGFyZUVxdWFsUmdiYTooKT0+XyxibGVuZFJnYmE6KCk9PncsZGlzdGFuY2VSZ2I6KCk9PnksaHNsVG9SZ2I6KCk9PlMsaW52ZXJ0UmdiOigpPT5iLG5vcm1hbGl6ZUFscGhhQ29tcG9uZW50OigpPT5oLHBhcnNlUmdiOigpPT5PLHBhcnNlUmdiYTooKT0+RixyZ2I6KCk9PmQscmdiVG9CbGFja1doaXRlU3RyaW5nOigpPT5CLHJnYlRvSGV4U3RyaW5nOigpPT5ELHJnYlRvSHNsOigpPT5nLHJnYmE6KCk9PnAscmdiYVRvU3RyaW5nOigpPT5WLHNoaWZ0Q29sb3I6KCk9PlQsc2hpZnRSZ2I6KCk9PkMsc2hpZnRSZ2JhOigpPT5QLHRyeVBhcnNlUmdiOigpPT5OLHRyeVBhcnNlUmdiYTooKT0+V30pO3ZhciBzPWkoNjAxODQxKSxuPWkoODMwNzgzKQo7ZnVuY3Rpb24gcihlLHQsaSl7cmV0dXJuKDAscy5pc05hTikodCl8fHQ8ZT9lOnQ+aT9pOk1hdGgucm91bmQodCl9ZnVuY3Rpb24gbyhlLHQsaSl7cmV0dXJuKDAscy5pc05hTikodCl8fHQ8ZT9lOnQ+aT9pOk1hdGgucm91bmQoMWU0KnQpLzFlNH1mdW5jdGlvbiBhKGUpe3JldHVybiByKDAsZSwyNTUpfWZ1bmN0aW9uIGwoZSl7cmV0dXJuIHIoMCxlLDI1NSl9ZnVuY3Rpb24gYyhlKXtyZXR1cm4gcigwLGUsMjU1KX1mdW5jdGlvbiBoKGUpe3JldHVybiBvKDAsZSwxKX1mdW5jdGlvbiBkKGUsdCxpKXtyZXR1cm5bYShlKSxsKHQpLGMoaSldfWZ1bmN0aW9uIHUoZSx0KXtyZXR1cm4gZVswXT09PXRbMF0mJmVbMV09PT10WzFdJiZlWzJdPT09dFsyXX1mdW5jdGlvbiBwKGUsdCxpLHMpe2lmKEFycmF5LmlzQXJyYXkoZSkpe2NvbnN0IGk9ZTtyZXR1cm4gcz10LFtpWzBdLGlbMV0saVsyXSxoKHMpXX17Y29uc3Qgbj10O3JldHVybiBpPWl8fDAscz1zfHwwLFthKGUpLGwobiksYyhpKSxoKHMpXX19ZnVuY3Rpb24gXyhlLHQpe3JldHVybiBlWzBdPT09dFswXSYmZVsxXT09PXRbMV0mJmVbMl09PT10WzJdJiZlWzNdPT09dFszXX1mdW5jdGlvbiBtKGUpe3JldHVybiBvKDAsZSwxKX1mdW5jdGlvbiBnKGUpe2NvbnN0W3QsaSxzXT1lLG49dC8yNTUscj1pLzI1NSxvPXMvMjU1LGE9TWF0aC5taW4obixyLG8pLGw9TWF0aC5tYXgobixyLG8pO2xldCBjPTAsaD0wO2NvbnN0IGQ9KGErbCkvMjtpZihhPT09bCljPTAsaD0wO2Vsc2V7Y29uc3QgZT1sLWE7c3dpdGNoKGg9ZD4uNT9lLygyLWwtYSk6ZS8obCthKSxsKXtjYXNlIG46Yz0oKHItbykvZSsocjxvPzY6MCkpLzY7YnJlYWs7Y2FzZSByOmM9KChvLW4pL2UrMikvNjticmVhaztjYXNlIG86Yz0oKG4tcikvZSs0KS82fX1yZXR1cm5bYyxoLGRdfWZ1bmN0aW9uIGYoZSx0LGkpe3JldHVybiBpPDAmJihpKz0xKSxpPjEmJihpLT0xKSxpPDEvNj9lKzYqKHQtZSkqaTppPC41P3Q6aTwyLzM/ZSsodC1lKSooMi8zLWkpKjY6ZX1mdW5jdGlvbiBTKGUpe2NvbnN0W3QsaSxzXT1lO2xldCBuLHIsbztpZigwPT09aSluPXI9bz1zO2Vsc2V7Y29uc3QgZT1zPC41P3MqKDEraSk6cytpLXMqaSxhPTIqcy1lO249ZihhLGUsdCsxLzMpLHI9ZihhLGUsdCksbz1mKGEsZSx0LTEvMyl9cmV0dXJuW2EoMjU1Km4pLGwoMjU1KnIpLGMoMjU1Km8pXX1jb25zdCB2PVsuMTk5LC42ODcsLjExNF07ZnVuY3Rpb24geShlLHQpe2NvbnN0W2kscyxuXT1lLFtyLG8sYV09dCxsPXItaSxjPW8tcyxoPWEtbjtyZXR1cm4gTWF0aC5zcXJ0KGwqbCtjKmMraCpoKX1mdW5jdGlvbiBiKGUpe2NvbnN0W3QsaSxzXT1lO3JldHVyblsyNTUtdCwyNTUtaSwyNTUtc119ZnVuY3Rpb24gdyhlLHQpe2NvbnN0W2kscyxuLHJdPWUsW28sZCx1LHBdPXQsXz1oKDEtKDEtcCkqKDEtcikpO3JldHVyblthKG8qcC9fK2kqciooMS1wKS9fKSxsKGQqcC9fK3MqciooMS1wKS9fKSxjKHUqcC9fK24qciooMS1wKS9fKSxfXX1mdW5jdGlvbiBDKGUsdCxpPS4wNSl7Y29uc3Qgcz1nKGUpLG49c1swXSt0Kmk7cmV0dXJuIHNbMF09bShuLU1hdGguZmxvb3IobikpLFMocyl9ZnVuY3Rpb24gUChlLHQsaT0uMDUpe2NvbnN0W3MsbixyLG9dPWUsW2EsbCxjXT1DKFtzLG4scl0sdCxpKTtyZXR1cm5bYSxsLGMsb119ZnVuY3Rpb24gVChlLHQsaT0uMDUpe3JldHVybiBWKFAoRihlKSx0LGkpKX12YXIgeCxNLEksTDtmdW5jdGlvbiBBKGUpe2NvbnN0IHQ9eC5yZS5leGVjKGUpO3JldHVybiBudWxsIT09dD94LnBhcnNlKHQpOm51bGx9ZnVuY3Rpb24gayhlKXtjb25zdCB0PU0ucmUuZXhlYyhlKTtyZXR1cm4gbnVsbCE9PXQ/TS5wYXJzZSh0KTpudWxsfWZ1bmN0aW9uIEQoZSl7Y29uc3RbdCxpLHNdPWUsbj10LnRvU3RyaW5nKDE2KSxyPWkudG9TdHJpbmcoMTYpLG89cy50b1N0cmluZygxNik7cmV0dXJuIiMiKygxPT09bi5sZW5ndGg/IjAiOiIiKStuKygxPT09ci5sZW5ndGg/IjAiOiIiKStyKygxPT09by5sZW5ndGg/IjAiOiIiKStvfWZ1bmN0aW9uIEUoZSl7Y29uc3QgdD1JLnJlLmV4ZWMoZSk7cmV0dXJuIG51bGwhPT10P0kucGFyc2UodCk6bnVsbH1mdW5jdGlvbiBSKGUpe2NvbnN0IHQ9TC5yZS5leGVjKGUpO3JldHVybiBudWxsIT09dD9MLnBhcnNlKHQpOm51bGx9ZnVuY3Rpb24gVihlKXtjb25zdFt0LGkscyxuXT1lO3JldHVybmByZ2JhKCR7dH0sICR7aX0sICR7c30sICR7bn0pYH1mdW5jdGlvbiBCKGUsdCl7aWYodDwwfHx0PjI1NSl0aHJvdyBuZXcgRXJyb3IoImludmFsaWQgdGhyZXNob2xkIHZhbHVlLCB2YWxpZCB2YWx1ZXMgYXJlIFswLCAyNTVdIik7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiB2WzBdKmVbMF0rdlsxXSplWzFdK3ZbMl0qZVsyXX0oZSk+PXQ/IndoaXRlIjoiYmxhY2sifWZ1bmN0aW9uIE4oZSl7ZT1lLnRvTG93ZXJDYXNlKCk7Y29uc3QgdD0oMCxuLnRyeVBhcnNlTmFtZWRSZ2JhKShlKTtpZihudWxsIT09dCl7Y29uc3RbZSxpLHNdPXQ7cmV0dXJuW2UsaSxzXX1jb25zdCBpPUEoZSk7aWYobnVsbCE9PWkpcmV0dXJuIGk7Y29uc3Qgcz1rKGUpO2lmKG51bGwhPT1zKXJldHVybiBzO2NvbnN0IHI9RShlKTtpZihudWxsIT09cilyZXR1cm4gcjtjb25zdCBvPVIoZSk7aWYobnVsbCE9PW8pe2NvbnN0W2UsdCxpXT1vO3JldHVybltlLHQsaV19cmV0dXJuIG51bGx9ZnVuY3Rpb24gTyhlKXtjb25zdCB0PU4oZSk7aWYobnVsbCE9PXQpcmV0dXJuIHQ7dGhyb3cgbmV3IEVycm9yKCJQYXNzZWQgY29sb3Igc3RyaW5nIGRvZXMgbm90IG1hdGNoIGFueSBvZiB0aGUga25vd24gY29sb3IgcmVwcmVzZW50YXRpb25zIil9ZnVuY3Rpb24gVyhlKXtlPWUudG9Mb3dlckNhc2UoKTtjb25zdCB0PSgwLG4udHJ5UGFyc2VOYW1lZFJnYmEpKGUpO2lmKG51bGwhPT10KXJldHVybiB0O2NvbnN0IGk9QShlKTtpZihudWxsIT09aSl7Y29uc3RbZSx0LHNdPWk7cmV0dXJuW2UsdCxzLDFdfWNvbnN0IHM9ayhlKTtpZihudWxsIT09cyl7Y29uc3RbZSx0LGldPXM7cmV0dXJuW2UsdCxpLDFdfWNvbnN0IHI9RShlKTtpZihudWxsIT09cil7Y29uc3RbZSx0LGldPXI7cmV0dXJuW2UsdCxpLDFdfWNvbnN0IG89UihlKQo7cmV0dXJuIG51bGwhPT1vP286bnVsbH1mdW5jdGlvbiBGKGUpe2NvbnN0IHQ9VyhlKTtpZihudWxsIT09dClyZXR1cm4gdDt0aHJvdyBuZXcgRXJyb3IoIlBhc3NlZCBjb2xvciBzdHJpbmcgZG9lcyBub3QgbWF0Y2ggYW55IG9mIHRoZSBrbm93biBjb2xvciByZXByZXNlbnRhdGlvbnMiKX0hZnVuY3Rpb24oZSl7ZS5yZT0vXnJnYlwoXHMqKC0/XGR7MSwxMH0pXHMqLFxzKigtP1xkezEsMTB9KVxzKixccyooLT9cZHsxLDEwfSlccypcKSQvLGUucGFyc2U9ZnVuY3Rpb24oZSl7cmV0dXJuW2EocGFyc2VJbnQoZVsxXSwxMCkpLGwocGFyc2VJbnQoZVsyXSwxMCkpLGMocGFyc2VJbnQoZVszXSwxMCkpXX19KHh8fCh4PXt9KSksZnVuY3Rpb24oZSl7ZS5yZT0vXiMoWzAtOWEtZkEtRl17Mn0pKFswLTlhLWZBLUZdezJ9KShbMC05YS1mQS1GXXsyfSkkLyxlLnBhcnNlPWZ1bmN0aW9uKGUpe3JldHVyblthKHBhcnNlSW50KGVbMV0sMTYpKSxsKHBhcnNlSW50KGVbMl0sMTYpKSxjKHBhcnNlSW50KGVbM10sMTYpKV19fShNfHwoTT17fSkpLGZ1bmN0aW9uKGUpe2UucmU9L14jKFswLTlhLWZBLUZdKShbMC05YS1mQS1GXSkoWzAtOWEtZkEtRl0pJC8sZS5wYXJzZT1mdW5jdGlvbihlKXtyZXR1cm5bYShwYXJzZUludChlWzFdK2VbMV0sMTYpKSxsKHBhcnNlSW50KGVbMl0rZVsyXSwxNikpLGMocGFyc2VJbnQoZVszXStlWzNdLDE2KSldfX0oSXx8KEk9e30pKSxmdW5jdGlvbihlKXtlLnJlPS9ecmdiYVwoXHMqKC0/XGR7MSwxMH0pXHMqLFxzKigtP1xkezEsMTB9KVxzKixccyooLT9cZHsxLDEwfSlccyosXHMqKC0/W1xkXXswLDEwfSg/OlwuXGQrKT8pXHMqXCkkLyxlLnBhcnNlPWZ1bmN0aW9uKGUpe3JldHVyblthKHBhcnNlSW50KGVbMV0sMTApKSxsKHBhcnNlSW50KGVbMl0sMTApKSxjKHBhcnNlSW50KGVbM10sMTApKSxoKHBhcnNlRmxvYXQoZVs0XSkpXX19KEx8fChMPXt9KSl9LDcyNzA5KGUsdCxpKXsidXNlIHN0cmljdCI7aS5kKHQse2NyZWF0ZUdyb3VwOigpPT5sLGtleWJvYXJkUHJlc3NlZEtleXNTdGF0ZTooKT0+YSxwcmVzc2VkS2V5czooKT0+byxyZWdpc3RlcldpbmRvdzooKT0+Y30pO3ZhciBzPWkoMjkxMzQxKSxuPWkoNzc5Mzg5KTtjb25zdCByPW5ldyBzLkFjdGlvbk1hbmFnZXIsbz1yLnByZXNzZWRLZXlzKCksYT1yLmtleWJvYXJkUHJlc3NlZEtleXNTdGF0ZSgpO2Z1bmN0aW9uIGwoZSl7cmV0dXJuIG5ldyBuLkFjdGlvbkdyb3VwKHIsZSl9ZnVuY3Rpb24gYyhlKXtyLmxpc3RlbihlKX19LDM0Mjc4KGUsdCxpKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gcyhlLHQsaSl7cmV0dXJuIGUqKDEtaSkrdCppfWkuZCh0LHtkb0FuaW1hdGU6KCk9Pm8sbGVycDooKT0+c30pO2NvbnN0IG49e2Zyb206MCxkdXJhdGlvbjoyNTAsZWFzaW5nOmkoMjE4ODE0KS5lYXNpbmdGdW5jLmVhc2VPdXRDdWJpY307Y2xhc3Mgcntjb25zdHJ1Y3RvcihlKXt0aGlzLl9kb2luZz0hMCx0aGlzLl9jb21wbGV0ZWQ9ITEsdGhpcy5fb3B0aW9ucz17Li4ubiwuLi5lfTtjb25zdCB0PXBlcmZvcm1hbmNlLm5vdygpO3dpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKGU9Pnt0aGlzLl9hbmltYXRpb24odCx0aGlzLl9vcHRpb25zLmZyb20sZSl9KSl9c3RvcCgpe3RoaXMuX2RvaW5nPSExfWNvbXBsZXRlZCgpe3JldHVybiB0aGlzLl9jb21wbGV0ZWR9X2FuaW1hdGlvbihlLHQsaSl7aWYoIXRoaXMuX2RvaW5nKXJldHVybiB2b2lkIHRoaXMuX2ZpbmlzaEFuaW1hdGlvbigpO2NvbnN0IG49KGk9IWl8fGk8MWUxMj9wZXJmb3JtYW5jZS5ub3coKTppKS1lLHI9bj49dGhpcy5fb3B0aW9ucy5kdXJhdGlvbnx8dD09PXRoaXMuX29wdGlvbnMudG8sbz1zKHRoaXMuX29wdGlvbnMuZnJvbSx0aGlzLl9vcHRpb25zLnRvLHRoaXMuX29wdGlvbnMuZWFzaW5nKG4vdGhpcy5fb3B0aW9ucy5kdXJhdGlvbikpLGE9cj90aGlzLl9vcHRpb25zLnRvOm8sbD1hLXQ7dGhpcy5fb3B0aW9ucy5vblN0ZXAobCxhKSxyP3RoaXMuX2ZpbmlzaEFuaW1hdGlvbigpOndpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKHQ9Pnt0aGlzLl9hbmltYXRpb24oZSxhLHQpfSkpfV9maW5pc2hBbmltYXRpb24oKXt0aGlzLl9vcHRpb25zLm9uQ29tcGxldGUmJnRoaXMuX29wdGlvbnMub25Db21wbGV0ZSgpLHRoaXMuX2NvbXBsZXRlZD0hMH19ZnVuY3Rpb24gbyhlKXtyZXR1cm4gbmV3IHIoZSl9fSwxMTU2NDQoZSx0LGkpeyJ1c2Ugc3RyaWN0IjtpLmQodCx7VE9BU1RfQU5JTUFUSU9OX0RVUkFUSU9OOigpPT5zfSk7Y29uc3Qgcz01MDB9LDc4MzU5MyhlLHQsaSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHMoZSx0KXtjb25zdCBzPW5ldyBVUkwoZSksbj0iYmxvYjoiPT09bG9jYXRpb24ucHJvdG9jb2w/bmV3IFVSTChsb2NhdGlvbi5ocmVmLnNsaWNlKDUpKS5vcmlnaW4rIi8iOmxvY2F0aW9uLmhyZWYscj1uZXcgQmxvYihbInNlbGYuV0VCUEFDS19QVUJMSUNfUEFUSD0iLEpTT04uc3RyaW5naWZ5KG5ldyBVUkwoaS5wLG4pLmhyZWYpLCI7XG4iLCJzZWxmLmxvY2FsZT0iLEpTT04uc3RyaW5naWZ5KGkuZy5sb2NhbGUpLCI7XG4iLHQ/YHNlbGYubGFuZ3VhZ2U9JHtKU09OLnN0cmluZ2lmeSh0KX07XG5gOiIiLCJpbXBvcnRTY3JpcHRzKCIsSlNPTi5zdHJpbmdpZnkocy5ocmVmKSwiKTsiXSx7dHlwZToiYXBwbGljYXRpb24vamF2YXNjcmlwdCJ9KTtyZXR1cm4gVVJMLmNyZWF0ZU9iamVjdFVSTChyKX1pLmQodCx7V29ya2VyOigpPT5ufSk7Y2xhc3MgbiBleHRlbmRzIFdvcmtlcntjb25zdHJ1Y3RvcihlLHQpe2NvbnN0e2xhbmd1YWdlOmksLi4ubn09dD8/e307c3VwZXIocyhlLGkpLG4pfX19LDQxODI4MihlLHQsaSl7InVzZSBzdHJpY3QiO2kuZCh0LHtnZXRBbGVydFByZXNlbnRhdGlvbjooKT0+cn0pO3ZhciBzPWkoMTM4NjM4KSxuPWkoODQ0MzAxKTtmdW5jdGlvbiByKGUpe3JldHVybiBlLm5hbWV8fGUubWVzc2FnZXx8ZnVuY3Rpb24oZSl7Y29uc3R7cmVzb2x1dGlvbjp0LGNyb3NzSW50ZXJ2YWw6aX09ZnVuY3Rpb24oZSl7Y29uc3QgdD1lLmZpbmQoKGU9PiFlLmNyb3NzSW50ZXJ2YWwpKTtyZXR1cm4gdD97cmVzb2x1dGlvbjp0LnJlc29sdXRpb24sCmNyb3NzSW50ZXJ2YWw6ITF9OntyZXNvbHV0aW9uOm51bGwsY3Jvc3NJbnRlcnZhbDohMH19KGUuY29uZGl0aW9ucyk7cmV0dXJuIGZ1bmN0aW9uKHtzeW1ib2w6ZSx3YXRjaGxpc3ROYW1lOnQscmVzb2x1dGlvbjppLGNyb3NzSW50ZXJ2YWw6cixpbmNsdWRlRXhjaGFuZ2U6b30pe3JldHVybiB0PygwLG4uZm9ybWF0V2F0Y2hsaXN0VGl0bGUpKHt3YXRjaGxpc3ROYW1lOnQscmVzb2x1dGlvbjppLGNyb3NzSW50ZXJ2YWw6cn0pOigwLG4uZm9ybWF0U3ltYm9sQW5kUmVzb2x1dGlvbikoe3N5bWJvbDooMCxzLmVuc3VyZU5vdE51bGwpKGUpLHJlc29sdXRpb246aSxjcm9zc0ludGVydmFsOnJ9LG8pfSh7c3ltYm9sOigwLHMuZW5zdXJlTm90TnVsbCkoZS5zeW1ib2wpLHdhdGNobGlzdE5hbWU6ZS5pc1dhdGNobGlzdEFsZXJ0P2Uud2F0Y2hsaXN0TmFtZTpudWxsLHJlc29sdXRpb246dCxjcm9zc0ludGVydmFsOml9KX0oZSl9fSwxMTM3MTgoZSx0LGkpeyJ1c2Ugc3RyaWN0IjtpLmQodCx7dHJhY2tBbGVydENyZWF0aW9uQXR0ZW1wdDooKT0+b30pO3ZhciBzPWkoMzYyMjM5KSxuPWkoODM2MDgxKSxyPWkoNzc4OTQ2KTthc3luYyBmdW5jdGlvbiBvKGUsdCxpKXtjb25zdCBvPWF3YWl0KDAscy5nZXRUcmFja2VyKSgpO28/LnRyYWNrU2VsZkRlc2MoImlnbHU6Y29tLnRyYWRpbmd2aWV3L2FsZXJ0c19jcmVhdGlvbi9qc29uc2NoZW1hLzEtMC01Iix7YWN0aW9uOiJjcmVhdGlvbl9hdHRlbXB0IixzeW1ib2w6ZSxtZXRob2Q6dCxzb3VyY2U6aSxwbGF0Zm9ybTooMCxyLmdldFBsYXRmb3JtKSgpLHVzZXJfaWQ6KDAsbi5nZXRVc2VySWQpKCksdXNlcl9wbGFuOigwLG4uZ2V0VXNlclBsYW4pKCksbG9jYWxlOigwLG4uZ2V0VXNlckxvY2FsZSkoKX0pfX0sNzM2MjgoZSx0LGkpeyJ1c2Ugc3RyaWN0IjtpLmQodCx7Z2V0QWxlcnRzQ2hhcnRBY3Rpb25DcmVhdG9yczooKT0+c30pO2NvbnN0IHM9KDAsaSg4Mzk0MjYpLmRlZmF1bHQpKChhc3luYygpPT57Y29uc3R7Z2V0Q3JlYXRlQWxlcnRBY3Rpb246ZX09YXdhaXQgUHJvbWlzZS5hbGwoW2kuZSgyNDQxKSxpLmUoNTc2NzQpXSkudGhlbihpLmJpbmQoaSwyNzQ1MzYpKSx7Z2V0RWRpdEFsZXJ0T25MaW5lRGF0YVNvdXJjZUFjdGlvbjp0fT1hd2FpdCBQcm9taXNlLmFsbChbaS5lKDI0NDEpLGkuZSg1NzY3NCldKS50aGVuKGkuYmluZChpLDg2MDkyNCkpO3JldHVybntjcmVhdGVBbGVydDplLGVkaXRBbGVydE9uTGluZURhdGFTb3VyY2U6dH19KSl9LDU1ODQ1NShlLHQsaSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHMoZSx0KXtjb25zdCBpPWUuZm9ybWF0dGVyKCk7aWYoaS5wYXJzZSl7Y29uc3QgZT1pLnBhcnNlKGkuZm9ybWF0KHQpKTtpZihlLnJlcylyZXR1cm4gZS52YWx1ZX1yZXR1cm4gdH1pLmQodCx7cm91bmRBbGVydFZhbHVlVXNpbmdQcmVjaXNpb246KCk9PnN9KX0sNDg3ODIwKGUsdCxpKXsidXNlIHN0cmljdCI7dmFyIHMsbjtpLmQodCx7QWxlcnRDaGFydERpc3BsYXlUYXJnZXQ6KCk9Pm4sQWxlcnRTdG9wUmVhc29uOigpPT5zfSksZnVuY3Rpb24oZSl7ZVtlLkF1dG89MF09IkF1dG8iLGVbZS5NYW51YWw9MV09Ik1hbnVhbCIsZVtlLkV4cGlyZWQ9Ml09IkV4cGlyZWQiLGVbZS5DcmVhdGVkPTNdPSJDcmVhdGVkIn0oc3x8KHM9e30pKSxmdW5jdGlvbihlKXtlW2UuTGFiZWw9MF09IkxhYmVsIixlW2UuU3RhdHVzVmlldz0xXT0iU3RhdHVzVmlldyJ9KG58fChuPXt9KSl9LDE0NDUzNChlLHQsaSl7InVzZSBzdHJpY3QiO2kuZCh0LHtnZXRDaGFydEFsZXJ0c0ZhY2FkZTooKT0+byxnZXRDaGFydEFsZXJ0c0ZhY2FkZUlmQ3JlYXRlZEJlZm9yZTooKT0+YX0pO3ZhciBzPWkoNTk2ODA0KTtsZXQgbixyO2FzeW5jIGZ1bmN0aW9uIG8oKXtyZXR1cm4gbnx8KG49YXN5bmMgZnVuY3Rpb24oKXtjb25zdFtlLHtnZXRBbGVydHNDb2xsZWN0aW9uOnR9LG5dPWF3YWl0IFByb21pc2UuYWxsKFtQcm9taXNlLmFsbChbaS5lKDkyNDE5KSxpLmUoMzA2OTkpLGkuZSg0NjIxNyksaS5lKDY2OTMzKSxpLmUoNDM4MjcpLGkuZSg2MzI5MCksaS5lKDM4NDQyKV0pLnRoZW4oaS5iaW5kKGksNDc3MzE4KSksUHJvbWlzZS5hbGwoW2kuZSg4NDY5MyksaS5lKDg4OTk3KSxpLmUoMzA2OTkpLGkuZSg0NjIxNyksaS5lKDY2OTMzKSxpLmUoNzEzMTkpXSkudGhlbihpLmJpbmQoaSwxNDMyNjYpKSwoMCxzLmdldENoYXJ0U291cmNlSWRzR2V0dGVyKSgpXSk7cmV0dXJuIG5ldyBlLkNoYXJ0QWxlcnRzRmFjYWRlKHQoKSxuKX0oKSkscnx8KHI9YXdhaXQgbikscn1mdW5jdGlvbiBhKCl7cmV0dXJuIHI/P251bGx9fSwxNzU4MTUoZSx0LGkpeyJ1c2Ugc3RyaWN0IjtpLmQodCx7Z2V0Q2hhcnRBbGVydHNGYWNhZGU6KCk9PnMuZ2V0Q2hhcnRBbGVydHNGYWNhZGV9KTt2YXIgcz1pKDE0NDUzNCl9LDk3NjQ5OShlLHQsaSl7InVzZSBzdHJpY3QiO2kuZCh0LHtjb25maXJtRGF0YXNvdXJjZVJlbW92aW5nOigpPT5vfSk7dmFyIHM9aSgxODUyNzEpLG49aSgyMzQ5NjQpO2NvbnN0IHI9cy50KG51bGwsdm9pZCAwLGkoMTE2NzY4KSk7ZnVuY3Rpb24gbyhlLHQpe2NvbnN0e2hhc0xvY2tlZFNvdXJjZXM6byx0ZXh0OmE9cixvbkNvbmZpcm06bCxvbkNsb3NlOmN9PWUsaD1vP3MudChudWxsLHZvaWQgMCxpKDQwOTIxKSk6cy50KG51bGwsdm9pZCAwLGkoMTQwNDA3KSk7cmV0dXJuIG5ldyBQcm9taXNlKChyPT4oMCxuLnNob3dDb25maXJtKSh7Li4uZSx0aXRsZTpoLHRleHQ6YSxtYWluQnV0dG9uVGV4dDpzLnQobnVsbCx7Y29udGV4dDoiQnV0dG9uIGluIGEgY29uZmlybWF0aW9uIGRpYWxvZyJ9LGkoMzE4NzM0KSksbWFpbkJ1dHRvbkludGVudDoiZGFuZ2VyIixjYW5jZWxCdXR0b25UZXh0OnMudChudWxsLHtjb250ZXh0OiJCdXR0b24gaW4gYSBjb25maXJtYXRpb24gZGlhbG9nIn0saSgyNjQ3MzkpKSxvbkNvbmZpcm06ZT0+e2w/LihlKSxyKCEwKSxlLmRpYWxvZ0Nsb3NlKCl9LG9uQ2xvc2U6KCk9PntjPy4oKSxyKCExKX19LHQpKSl9fSw2MTA0NjQoZSx0LGkpeyJ1c2Ugc3RyaWN0Ijt2YXIgcztpLmQodCx7Q29uc3RhbnRzOigpPT5zfSksZnVuY3Rpb24oZSl7CmUuRHJhd2luZ0ljb25Db2xvcj0icmdiYSggMTcwLCAxNzAsIDE3MCwgMSkifShzfHwocz17fSkpfSw1ODYxNjUoZSx0LGkpeyJ1c2Ugc3RyaWN0IjtpLmQodCx7aGFzVXN1YWxBbGVydFBsb3RzOigpPT5sLGlzRmlyc3RBbGVydFBsb3RVc3VhbDooKT0+YX0pO3ZhciBzPWkoMjI0MTgzKSxuPWkoOTU2NDM3KSxyPWkoMjQxMyksbz1pKDI1MDQ2Nyk7ZnVuY3Rpb24gYShlKXtpZigoMCxzLmlzU2VyaWVzKShlKSlyZXR1cm4hMDtpZigoMCxuLmlzU3R1ZHkpKGUpJiYhKDAsbi5pc1N0dWR5U3RyYXRlZ3kpKGUpKXtjb25zdCB0PSgwLHIucGxvdHNGb3JBbGVydCkoZS5tZXRhSW5mbygpLGUub2Zmc2V0LmJpbmQoZSkpO3JldHVybiFlLm1ldGFJbmZvKCkuaGFzQWxlcnRGdW5jdGlvbiYmdC5ldmVyeSgoZT0+ZS50eXBlIT09by5JbnRlcm5hbFN0dWR5UGxvdFR5cGUuQWxlcnRDb25kaXRpb24pKX1yZXR1cm4hMX1mdW5jdGlvbiBsKGUpe2lmKCgwLHMuaXNTZXJpZXMpKGUpKXJldHVybiEwO2lmKCgwLG4uaXNTdHVkeSkoZSkmJiEoMCxuLmlzU3R1ZHlTdHJhdGVneSkoZSkpe3JldHVybigwLHIucGxvdHNGb3JBbGVydCkoZS5tZXRhSW5mbygpLGUub2Zmc2V0LmJpbmQoZSkpLnNvbWUoKGU9PmUudHlwZSE9PW8uSW50ZXJuYWxTdHVkeVBsb3RUeXBlLkFsZXJ0Q29uZGl0aW9uKSl9cmV0dXJuITF9fSw2ODM5MDIoZSx0LGkpeyJ1c2Ugc3RyaWN0IjtpLmQodCx7Z2V0U2VyaWVzSWRGb3JBbGVydDooKT0+byxnZXRTdHVkeUlkRm9yQWxlcnQ6KCk9PmF9KTt2YXIgcz1pKDE2NzkxMCksbj1pKDc0OTgxNCkscj1pKDI1NDY3Myk7ZnVuY3Rpb24gbyhlLHQpe3JldHVybigwLHMuaGFzaCkoZStyLkludGVydmFsLm5vcm1hbGl6ZSh0KSkudG9TdHJpbmcoKX1mdW5jdGlvbiBhKGUsdCxpKXtyZXR1cm4oMCxzLmhhc2gpKGUrKDAsbi5zb3J0ZWRTdHJpbmdpZnkpKHQpKyhpPz8iIikpLnRvU3RyaW5nKCl9fSw1OTY4MDQoZSx0LGkpeyJ1c2Ugc3RyaWN0IjtpLmQodCx7Z2V0Q2hhcnRTb3VyY2VJZHNHZXR0ZXI6KCk9PnN9KTtjb25zdCBzPSgwLGkoODM5NDI2KS5kZWZhdWx0KSgoYXN5bmMoKT0+e2NvbnN0e0NoYXJ0U291cmNlSWRzR2V0dGVyOmV9PWF3YWl0IFByb21pc2UuYWxsKFtpLmUoMTEzNzgpLGkuZSgzMDY5OSksaS5lKDQ2MjE3KSxpLmUoNjY5MzMpLGkuZSg0MzgyNyksaS5lKDIyNTMyKV0pLnRoZW4oaS5iaW5kKGksODc4ODA5KSk7cmV0dXJuIG5ldyBlfSkpfSwzNTMwNDAoZSx0LGkpeyJ1c2Ugc3RyaWN0IjtpLmQodCx7Y2FuUGxhY2VBbGVydE9uUmVzb2x1dGlvbjooKT0+cn0pO3ZhciBzPWkoMjU0NjczKSxuPWkoNDc5MzQpO2Z1bmN0aW9uIHIoZSx0KXtjb25zdCBpPXMuSW50ZXJ2YWwuaXNTZWNvbmRzKGUpLHI9dD90Py5hbGVydHNPblNlY29uZHM6KDAsbi5lbmFibGVkKSgiQUxFUlRTX09OX1NFQ09ORFMiKTtyZXR1cm4haXx8cn19LDE2MjU4KGUsdCxpKXsidXNlIHN0cmljdCI7aS5kKHQse2Zvcm1hdEFwcGVuZGluZ1Jlc29sdXRpb25TdHJpbmc6KCk9Pm59KTt2YXIgcz1pKDQ2NTEzNyk7ZnVuY3Rpb24gbihlKXtjb25zdCB0PSgwLHMuZ2V0VHJhbnNsYXRlZFJlc29sdXRpb24pKGUpO3JldHVybigwLHMuZm9ybWF0RGlyZWN0aW9uYWxSZXNvbHV0aW9uKSh0KX19LDI2MTE1NChlLHQsaSl7InVzZSBzdHJpY3QiO2kuZCh0LHtmb3JtYXRTeW1ib2xBbmRSZXNvbHV0aW9uOigpPT5hLGZvcm1hdFN5bWJvbFN0cmluZzooKT0+bH0pO3ZhciBzPWkoMzQ0MTAzKSxuPWkubihzKSxyPWkoMTExOTUzKSxvPWkoMTYyNTgpO2Z1bmN0aW9uIGEoZSx0KXtjb25zdCBpPWwoZS5zeW1ib2wsdCk7aWYoZS5jcm9zc0ludGVydmFsfHwhZS5yZXNvbHV0aW9uKXJldHVybiBpO3JldHVybiBpKygwLG8uZm9ybWF0QXBwZW5kaW5nUmVzb2x1dGlvblN0cmluZykoZS5yZXNvbHV0aW9uKX1mdW5jdGlvbiBsKGUsdCl7bGV0IGk9KDAsci51bndyYXBTaW1wbGVTeW1ib2wpKGUpO3JldHVybiB0fHwoaT1uKCkuc2hvcnROYW1lKGkpKSxpfX0sNDg1MTc5KGUsdCxpKXsidXNlIHN0cmljdCI7aS5kKHQse2Zvcm1hdFdhdGNobGlzdFRpdGxlOigpPT5ufSk7dmFyIHM9aSgxNjI1OCk7ZnVuY3Rpb24gbihlKXtjb25zdCB0PWUud2F0Y2hsaXN0TmFtZTtpZihlLmNyb3NzSW50ZXJ2YWx8fCFlLnJlc29sdXRpb24pcmV0dXJuIHQ7cmV0dXJuIHQrKDAscy5mb3JtYXRBcHBlbmRpbmdSZXNvbHV0aW9uU3RyaW5nKShlLnJlc29sdXRpb24pfX0sODYyOTUxKGUsdCxpKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gcyhlKXtyZXR1cm4gcigpLnRoZW4oKHQ9PnQuaGFzVXNlckFjY2Vzc1RvRGF0YVNvdXJjZShlKSkpfWZ1bmN0aW9uIG4oZSl7cmV0dXJuIHIoKS50aGVuKCh0PT50LmZpbHRlckFjY2Vzc2libGVEYXRhU291cmNlcyhlKSkpfWkuZCh0LHtmaWx0ZXJBY2Nlc3NpYmxlRGF0YVNvdXJjZXM6KCk9Pm4saGFzVXNlckFjY2Vzc1RvRGF0YVNvdXJjZTooKT0+c30pO2NvbnN0IHI9KCk9PmkuZSg0MzQ1OCkudGhlbihpLmJpbmQoaSw0NzkxNDYpKX0sNDU2MDIzKGUsdCxpKXsidXNlIHN0cmljdCI7aS5kKHQse3Nob3dHb1Byb0FsZXJ0c09uU2Vjb25kc0RpYWxvZzooKT0+bn0pO3ZhciBzPWkoNzcwNzU1KTtpKDMwMDI4Nik7ZnVuY3Rpb24gbigpeygwLHMub3BlblBheXdhbGwpKHtmZWF0dXJlOiJhbGVydHNPblNlY29uZHMifSl9fSwxNTMzNDcoZSx0LGkpeyJ1c2Ugc3RyaWN0IjtpLmQodCx7Z2V0QWxlcnRzQWN0aW9uQ3JlYXRvcnM6KCk9Pm59KTt2YXIgcz1pKDgzOTQyNik7Y29uc3Qgbj0oMCxzLmRlZmF1bHQpKChhc3luYygpPT5uZXcoKGF3YWl0IFByb21pc2UuYWxsKFtpLmUoNTU4MDEpLGkuZSgzMDY5OSksaS5lKDQ2MjE3KSxpLmUoNjY5MzMpLGkuZSg0MzgyNyksaS5lKDkyMjI5KV0pLnRoZW4oaS5iaW5kKGksNjM1MDgxKSkpLkFsZXJ0c0FjdGlvbkNyZWF0b3JzKSkpOygwLHMuZGVmYXVsdCkoKGFzeW5jKCk9PnsKY29uc3RbZSx7Z2V0QWxlcnRTZXNzaW9uOnR9XT1hd2FpdCBQcm9taXNlLmFsbChbUHJvbWlzZS5hbGwoW2kuZSgxMDc3NiksaS5lKDE1MTczKV0pLnRoZW4oaS5iaW5kKGksOTA5MDExKSksUHJvbWlzZS5hbGwoW2kuZSg3ODAzNCksaS5lKDg1MDU3KV0pLnRoZW4oaS5iaW5kKGksNjE0OTU3KSldKTtyZXR1cm4gbmV3IGUuRmlyZXNBY3Rpb25DcmVhdG9ycyh0KCkpfSkpfSwzODY0NjYoZSx0LGkpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBzKGUsdCl7aWYoZS5sZW5ndGg+dCl7Y29uc3QgaT0vW1xXXSskL2cscz1lLnN1YnN0cmluZygwLHQpLG49cy5yZXBsYWNlKGksIiIpO3JldHVybmAke24ubGVuZ3RoP246cy5zdWJzdHJpbmcoMCx0LTEpfeKApmB9cmV0dXJuIGV9aS5kKHQse2N1dFN0cmluZzooKT0+c30pfSw0MDAwNihlLHQsaSl7InVzZSBzdHJpY3QiO3ZhciBzO2kuZCh0LHtBbGVydEVkaXRvckFib3J0UmVhc29uOigpPT5zfSksZnVuY3Rpb24oZSl7ZS5BbGVydElzSW52YWxpZD0iYWxlcnQtaXMtaW52YWxpZCIsZS5BbGVydHNNYWludGVuYW5jZT0iYWxlcnRzLW1haW50ZW5hbmNlIixlLkNoYXJ0TW9kZWxOb3RGb3VuZD0iY2hhcnQtbW9kZWwtbm90LWZvdW5kIixlLklzQWxyZWFkeVByZXNlbnQ9ImlzLWFscmVhZHktcHJlc2VudCIsZS5NYWluU2VyaWVzSXNBVFI9Im1haW4tc2VyaWVzLWlzLWF0ciIsZS5NYWluU2VyaWVzSXNQZXJjZW50YWdlTFRQPSJtYWluLXNlcmllcy1pcy1wZXJjZW50YWdlLWx0cCIsZS5NYWluU2VyaWVzSXNJblJlcGxheT0ibWFpbi1zZXJpZXMtaXMtaW4tcmVwbGF5IixlLk1haW5TZXJpZXNJc09mZmxpbmU9Im1haW4tc2VyaWVzLWlzLW9mZmxpbmUiLGUuU291cmNlSXNEYW5nZXJvdXM9InNvdXJjZS1pcy1kYW5nZXJvdXMiLGUuU3ltYm9sSW5mb1RpbWVvdXQ9InN5bWJvbC1pbmZvLXRpbWVvdXQiLGUuU3ltYm9sSXNJbnZhbGlkPSJzeW1ib2wtaXMtaW52YWxpZCIsZS5TeW1ib2xDdXJyZW5jeUNvbnZlcnRlZD0ic3ltYm9sLWN1cnJlbmN5LWNvbnZlcnRlZCIsZS5TeW1ib2xVbml0Q29udmVydGVkPSJzeW1ib2wtdW5pdC1jb252ZXJ0ZWQiLGUuU3ltYm9sQ3VycmVuY3lBbmRVbml0Q29udmVydGVkPSJzeW1ib2wtY3VycmVuY3ktYW5kLXVuaXQtY29udmVydGVkIixlLlN5bWJvbElzRWNvbm9taWNzPSJzeW1ib2wtaXMtZWNvbm9taWNzIixlLlN5bWJvbFdpdGhNZXRyaWNzPSJzeW1ib2wtd2l0aC1tZXRyaWNzIixlLlVuc3VwcG9ydGVkUmVzb2x1dGlvbj0idW5zdXBwb3J0ZWQtcmVzb2x1dGlvbiIsZS5NYW51YWxBYm9ydD0ibWFudWFsLWFib3J0IixlLk1pc2xlYWRpbmdQcmljZVNjYWxlPSJtaXNsZWFkaW5nLXByaWNlLXNjYWxlIixlLlJlc29sdXRpb25Jc1RpY2tzPSJyZXNvbHV0aW9uLWlzLXRpY2tzIn0oc3x8KHM9e30pKX0sNzIxMDQyKGUsdCxpKXsidXNlIHN0cmljdCI7aS5kKHQse3RyYWNrQWxlcnRDcmVhdGlvbkF0dGVtcHQ6KCk9PnMudHJhY2tBbGVydENyZWF0aW9uQXR0ZW1wdH0pO3ZhciBzPWkoMTEzNzE4KX0sODIyNzk1KGUsdCxpKXsidXNlIHN0cmljdCI7aS5kKHQse0FsZXJ0RWRpdG9ySW52b2NhdGlvbk1vZGU6KCk9PmEuQWxlcnRFZGl0b3JJbnZvY2F0aW9uTW9kZSxpbnZva2VBbGVydEVkaXRvcjooKT0+Y30pO3ZhciBzPWkoMTM4NjM4KSxuPWkoMjIxMDYxKSxyPWkoODYyOTUxKSxvPWkoNDAwMDYpLGE9aSg0MjM3NDUpO2NvbnN0IGw9KDAsbi5nZXRMb2dnZXIpKCJBbGVydHMuUHJpY2UuSW52b2tlQWxlcnRFZGl0b3IiKTthc3luYyBmdW5jdGlvbiBjKGUpewpjb25zdFt7Z2V0QWxlcnRzVHJhY2tlcnM6dH0se2dldEludm9jYXRpb25Nb2RlOm4sc2hvdWxkQWJvcnRBbGVydEVkaXRvcjpyLHNob3dBYm9ydEV4cGxhaW5pbmdEaWFsb2c6YX0se2xvY2tFZGl0b3JJbnZvY2F0aW9uOmN9XT1hd2FpdCBQcm9taXNlLmFsbChbaS5lKDc5NDc2KS50aGVuKGkuYmluZChpLDQzNjgzNikpLFByb21pc2UuYWxsKFtpLmUoNzg0NCksaS5lKDg0MzA2KSxpLmUoMjkyOTYpLGkuZSg1MjM5NiksaS5lKDYwMDYyKSxpLmUoNDY5MDcpLGkuZSgyMDM1NCksaS5lKDEzNDkyKSxpLmUoMzc3NDYpLGkuZSgxMjM4NSksaS5lKDgxMDcyKSxpLmUoOTQ5NDgpLGkuZSgyMzYyNCksaS5lKDM2MjIyKSxpLmUoMjk1MzYpLGkuZSgzMjgxNiksaS5lKDU2MjUyKSxpLmUoODM0ODgpLGkuZSgxOTU5NSksaS5lKDE5Nzg3KSxpLmUoNjc3OTkpLGkuZSgxMTQ2MSksaS5lKDI0NTgxKSxpLmUoOTY1ODcpLGkuZSgxMTIxOCksaS5lKDg2NDIzKSxpLmUoMzc1MTMpLGkuZSg4NTc5KSxpLmUoOTUwNCksaS5lKDQwODM1KSxpLmUoOTM0MjEpLGkuZSg3ODY1MiksaS5lKDQ5NTg4KSxpLmUoMTAzODUpLGkuZSg1MjA2NSksaS5lKDcwODE1KSxpLmUoNzQzODEpLGkuZSg5MzQxNiksaS5lKDYxODIxKSxpLmUoNTczMDApLGkuZSg1MjY4MCksaS5lKDMyNzQ4KSxpLmUoODk1NTgpLGkuZSg2NjI3MCksaS5lKDEwMzY2KSxpLmUoNTE2ODIpLGkuZSgzNzc2NyksaS5lKDIwMiksaS5lKDk3NjYwKSxpLmUoNzI1MTIpLGkuZSg5NDA1NCksaS5lKDQwODY3KSxpLmUoMzk3ODYpLGkuZSg1MDgwMCksaS5lKDYwODIpLGkuZSg5MDk2MCksaS5lKDY3NTQzKSxpLmUoOTAzMzApLGkuZSg5NjE4MSksaS5lKDczODcpLGkuZSg2ODU3OSksaS5lKDQxOTgwKSxpLmUoMjc0NDYpLGkuZSg3OTg5MiksaS5lKDMyMzg3KSxpLmUoMzA2OTkpLGkuZSgyMzc0MyksaS5lKDcyMTEpLGkuZSg0NjIxNyksaS5lKDY2OTMzKSxpLmUoNzM1MzUpLGkuZSg1NzA5MyksaS5lKDY5MDMyKSxpLmUoMTYwMzEpLGkuZSg2MzI5MCksaS5lKDcwNTMyKV0pLnRoZW4oaS5iaW5kKGksNDA0NTg5KSksUHJvbWlzZS5hbGwoW2kuZSg3ODQ0KSxpLmUoODQzMDYpLGkuZSgyOTI5NiksaS5lKDUyMzk2KSxpLmUoNjAwNjIpLGkuZSg0NjkwNyksaS5lKDIwMzU0KSxpLmUoMTM0OTIpLGkuZSgzNzc0NiksaS5lKDEyMzg1KSxpLmUoODEwNzIpLGkuZSg5NDk0OCksaS5lKDIzNjI0KSxpLmUoMzYyMjIpLGkuZSgyOTUzNiksaS5lKDMyODE2KSxpLmUoNTYyNTIpLGkuZSg4MzQ4OCksaS5lKDE5NTk1KSxpLmUoMTk3ODcpLGkuZSg2Nzc5OSksaS5lKDExNDYxKSxpLmUoMjQ1ODEpLGkuZSg5NjU4NyksaS5lKDExMjE4KSxpLmUoODY0MjMpLGkuZSgzNzUxMyksaS5lKDg1NzkpLGkuZSg5NTA0KSxpLmUoNDA4MzUpLGkuZSg5MzQyMSksaS5lKDc4NjUyKSxpLmUoNDk1ODgpLGkuZSgxMDM4NSksaS5lKDUyMDY1KSxpLmUoNzA4MTUpLGkuZSg3NDM4MSksaS5lKDkzNDE2KSxpLmUoNjE4MjEpLGkuZSg1NzMwMCksaS5lKDUyNjgwKSxpLmUoMzI3NDgpLGkuZSg4OTU1OCksaS5lKDY2MjcwKSxpLmUoMTAzNjYpLGkuZSg1MTY4MiksaS5lKDM3NzY3KSxpLmUoMjAyKSxpLmUoOTc2NjApLGkuZSg3MjUxMiksaS5lKDk0MDU0KSxpLmUoNDA4NjcpLGkuZSgzOTc4NiksaS5lKDUwODAwKSxpLmUoNjA4MiksaS5lKDkwOTYwKSxpLmUoNjc1NDMpLGkuZSg5MDMzMCksaS5lKDk2MTgxKSxpLmUoNzM4NyksaS5lKDY4NTc5KSxpLmUoNDE5ODApLGkuZSgyNzQ0NiksaS5lKDc5ODkyKSxpLmUoMzIzODcpLGkuZSgzMDY5OSksaS5lKDIzNzQzKSxpLmUoNzIxMSksaS5lKDQ2MjE3KSxpLmUoNjY5MzMpLGkuZSg3MzUzNSksaS5lKDU3MDkzKSxpLmUoNjkwMzIpLGkuZSgxNjAzMSksaS5lKDYzMjkwKSxpLmUoNzA1MzIpXSkudGhlbihpLmJpbmQoaSw3NzYyNTYpKV0pLGQ9dCgpLm1haW50ZW5hbmNlO2Quc3luY09uVXNlckFjdGlvbigpO2NvbnN0IHU9cihlLGQpO2lmKG51bGwhPT11KXJldHVybiB1IT09by5BbGVydEVkaXRvckFib3J0UmVhc29uLklzQWxyZWFkeVByZXNlbnQmJmEodSxuKGUpKSxsLmxvZ1dhcm4oYEFib3J0ZWQ6ICR7dX1gKSx2b2lkIGUub25BYm9ydGVkPy4odSk7Y29uc3RbcCxfXT1jKGUpO3RyeXsKY29uc3Rbe2dldEFsZXJ0U2Vzc2lvbjp0fSx7aW52b2tlRGlhbG9nQWxlcnRFZGl0b3I6bixpbnZva2VTaWxlbnRBbGVydEVkaXRvcjpyLGNvbnZlcnRPcHRpb25zRm9yU2lsZW50SW52b2tlcjpvLGNvbnZlcnRPcHRpb25zRm9yRGlhbG9nSW52b2tlcjphfSxsXT1hd2FpdCBQcm9taXNlLmFsbChbUHJvbWlzZS5hbGwoW2kuZSg3ODAzNCksaS5lKDg1MDU3KV0pLnRoZW4oaS5iaW5kKGksNjE0OTU3KSksUHJvbWlzZS5hbGwoW2kuZSg3ODQ0KSxpLmUoODQzMDYpLGkuZSgyOTI5NiksaS5lKDUyMzk2KSxpLmUoNjAwNjIpLGkuZSg0NjkwNyksaS5lKDIwMzU0KSxpLmUoMTM0OTIpLGkuZSgzNzc0NiksaS5lKDEyMzg1KSxpLmUoODEwNzIpLGkuZSg5NDk0OCksaS5lKDIzNjI0KSxpLmUoMzYyMjIpLGkuZSgyOTUzNiksaS5lKDMyODE2KSxpLmUoNTYyNTIpLGkuZSg4MzQ4OCksaS5lKDE5NTk1KSxpLmUoMTk3ODcpLGkuZSg2Nzc5OSksaS5lKDExNDYxKSxpLmUoMjQ1ODEpLGkuZSg5NjU4NyksaS5lKDExMjE4KSxpLmUoODY0MjMpLGkuZSgzNzUxMyksaS5lKDg1NzkpLGkuZSg5NTA0KSxpLmUoNDA4MzUpLGkuZSg5MzQyMSksaS5lKDc4NjUyKSxpLmUoNDk1ODgpLGkuZSgxMDM4NSksaS5lKDUyMDY1KSxpLmUoNzA4MTUpLGkuZSg3NDM4MSksaS5lKDkzNDE2KSxpLmUoNjE4MjEpLGkuZSg1NzMwMCksaS5lKDUyNjgwKSxpLmUoMzI3NDgpLGkuZSg4OTU1OCksaS5lKDY2MjcwKSxpLmUoMTAzNjYpLGkuZSg1MTY4MiksaS5lKDM3NzY3KSxpLmUoMjAyKSxpLmUoOTc2NjApLGkuZSg3MjUxMiksaS5lKDk0MDU0KSxpLmUoNDA4NjcpLGkuZSgzOTc4NiksaS5lKDUwODAwKSxpLmUoNjA4MiksaS5lKDkwOTYwKSxpLmUoNjc1NDMpLGkuZSg5MDMzMCksaS5lKDk2MTgxKSxpLmUoNzM4NyksaS5lKDY4NTc5KSxpLmUoNDE5ODApLGkuZSgyNzQ0NiksaS5lKDc5ODkyKSxpLmUoMzIzODcpLGkuZSgzMDY5OSksaS5lKDIzNzQzKSxpLmUoNzIxMSksaS5lKDQ2MjE3KSxpLmUoNjY5MzMpLGkuZSg3MzUzNSksaS5lKDU3MDkzKSxpLmUoNjkwMzIpLGkuZSgxNjAzMSksaS5lKDYzMjkwKSxpLmUoNzA1MzIpXSkudGhlbihpLmJpbmQoaSwxNTQyOTYpKSxoKF8pXSksYz0oMCxzLmVuc3VyZU5vdE51bGwpKHQoKS51c2VyLnZhbHVlKCkpO2Uuc2lsZW50P3IobyhsKSxjKTpuKGEobCksYyl9Y2F0Y2goZSl7cCgpfX1hc3luYyBmdW5jdGlvbiBoKGUpe2NvbnN0IHQ9ey4uLmV9O3JldHVybiB0LnNlcmllcyYmIWF3YWl0KDAsci5oYXNVc2VyQWNjZXNzVG9EYXRhU291cmNlKSh0LnNlcmllcykmJihkZWxldGUgdC5zZXJpZXMsZGVsZXRlIHQudmFsdWUpLHR9fSw0MjM3NDUoZSx0LGkpeyJ1c2Ugc3RyaWN0Ijt2YXIgcyxuO2kuZCh0LHtBbGVydEVkaXRvckludm9jYXRpb25Nb2RlOigpPT5uLEV4cGlyYXRpb25QcmVzZXRUeXBlOigpPT5zfSksZnVuY3Rpb24oZSl7ZS5PcGVuRW5kZWQ9Im9wZW4tZW5kZWQiLGUuRml4ZWQ9ImZpeGVkIixlLk5leHRSZXBvcnQ9Im5leHQtcmVwb3J0In0oc3x8KHM9e30pKSxmdW5jdGlvbihlKXtlLkNyZWF0ZUFsZXJ0PSJjcmVhdGVfYWxlcnQiLGUuRWRpdEFsZXJ0PSJlZGl0X2FsZXJ0IixlLlNob3dSZWFkb25seUFsZXJ0PSJzaG93X2FsZXJ0In0obnx8KG49e30pKX0sNDkwMzk5KGUsdCxpKXsidXNlIHN0cmljdCI7aS5kKHQse2FsZXJ0c0F2YWlsYWJsZTooKT0+c30pO2NvbnN0IHM9KDAsaSg5MzAyMzEpLmlzRmVhdHVyZXNldEVuYWJsZWQpKCJhbGVydHMiKX0sNjEzODcwKGUsdCxpKXsidXNlIHN0cmljdCI7aS5kKHQse2lzU2lnbk1vZGFsT3BlbjooKT0+aCxzaG93U2lnbk1vZGFsOigpPT5jfSk7dmFyIHM9aSg4NDIxMDIpLG49aSg5Nzg1NCkscj1pKDcxOTE5NCksbz1pKDc1NjI3MSksYT1pKDkzNDA4MSk7bGV0IGw9KCk9PiExO2FzeW5jIGZ1bmN0aW9uIGMoZSl7Y29uc3QgdD0oMCxzLmlzU2hvd1Byb21vVmlkZW8pKCksbj1PYmplY3QuYXNzaWduKHt9LGUse2lzU2hvd1ZpZGVvOnR9KTtpZih3aW5kb3cuVFZEJiZ3aW5kb3cuVFZELnNpZ25JbilyZXR1cm4gd2luZG93LlRWRC5zaWduSW4obik7e3QmJmZ1bmN0aW9uKCl7Y29uc3R7cG9zdGVyOmV9PWEuU1RPUllfUE9TVEVSU1soMCxyLnBpY2tTdG9yeUluZGV4KShvLlNUT1JZX05BTUVTKV0sdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJsaW5rIik7dC5yZWw9InByZWxvYWQiLHQuYXM9ImltYWdlIix0LmhyZWY9ZSxkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKHQpfSgpO2NvbnN0IGU9YXdhaXQgUHJvbWlzZS5hbGwoW2kuZSg4NTUzNyksaS5lKDg0MzA2KSxpLmUoMjkyOTYpLGkuZSg1MjM5NiksaS5lKDYwMDYyKSxpLmUoMjAzNTQpLGkuZSgxMzQ5MiksaS5lKDM3NzQ2KSxpLmUoMTIzODUpLGkuZSg5NDk0OCksaS5lKDk0MjMyKSxpLmUoMTk1OTUpLGkuZSgxOTc4NyksaS5lKDI0NTgxKSxpLmUoMTEyMTgpLGkuZSg4NTc5KSxpLmUoNzI2NjYpLGkuZSg3MDgxNSksaS5lKDc0MzgxKSxpLmUoMTU1MjYpLGkuZSg5MzQxNiksaS5lKDM3NzY3KSxpLmUoMzI2MzIpLGkuZSgzNTE5OCksaS5lKDQ2NTkxKSxpLmUoOTQwNTQpLGkuZSg1MDYyMiksaS5lKDM4ODY4KSxpLmUoNTkzNTApLGkuZSgyMDk4NiksaS5lKDMyMzg3KSxpLmUoNDQ3ODApLGkuZSg3NTkzMCksaS5lKDg1OTc0KV0pLnRoZW4oaS5iaW5kKGksNzMwODQxKSk7cmV0dXJuIGw9ZS5pc1NpZ25Nb2RhbE9wZW4sZS5zaG93U2lnbk1vZGFsKG4pfX1mdW5jdGlvbiBoKCl7cmV0dXJuIGwoKX1uLm9uZVRhcFNpZ25Nb2RhbERlbGVnYXRlLnN1YnNjcmliZShudWxsLGMpfSwxNDE2NShlLHQsaSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHMoZSx0LGkpe2NvbnN0IHM9ZS5nZXQodCk7cmV0dXJuIHZvaWQgMCE9PXM/czooZS5zZXQodCxpKSxpKX1mdW5jdGlvbiBuKGUsdCxpKXtjb25zdCBzPWUuZ2V0KHQpO2lmKHZvaWQgMCE9PXMpcmV0dXJuIHM7Y29uc3Qgbj1pKCk7cmV0dXJuIGUuc2V0KHQsbiksbn1mdW5jdGlvbiByKGUsdCxpLG4pe2NvbnN0IHI9cyhlLHQsbmV3IE1hcCk7cmV0dXJuIHMocixpLG4pfWZ1bmN0aW9uIG8oZSx0LGkscil7cmV0dXJuIG4ocyhlLHQsbmV3IE1hcCksaSxyKX0KZnVuY3Rpb24gYShlLHQsaSxuLHIpe2NvbnN0IG89cyhlLHQsbmV3IE1hcCksYT1zKG8saSxuZXcgTWFwKTtyZXR1cm4gcyhhLG4scil9aS5kKHQse0Fic3RyYWN0TWFwQ29udGFpbmVyOigpPT5sLGdldERlZmF1bHQyOigpPT5yLGdldERlZmF1bHQyTGF6eTooKT0+byxnZXREZWZhdWx0MzooKT0+YX0pO2NsYXNzIGx7Y29uc3RydWN0b3IoKXt0aGlzLl9tYXA9bmV3IE1hcCx0aGlzLl9zaXplPTB9c2l6ZSgpe3JldHVybiB0aGlzLl9zaXplfWNsZWFyKCl7dGhpcy5fbWFwLmNsZWFyKCksdGhpcy5fc2l6ZT0wfX19LDI2MDY5KGUsdCxpKXsidXNlIHN0cmljdCI7aS5kKHQse0xJTkVTVFlMRV9EQVNIRUQ6KCk9PnIsTElORVNUWUxFX0RPVFRFRDooKT0+bixMSU5FU1RZTEVfU09MSUQ6KCk9PnMsTElORVNUWUxFX1NQQVJTRV9ET1RURUQ6KCk9Pm99KTtjb25zdCBzPTAsbj0xLHI9MixvPTR9LDUxNzI5MyhlLHQsaSl7InVzZSBzdHJpY3QiO2kuZCh0LHtDaXJjdWxhckNhY2hlQnVmZmVyOigpPT5vfSk7dmFyIHMsbj1pKDEzODYzOCk7ZnVuY3Rpb24gcihlKXtjb25zdHtwcmV2SXRlbTp0LG5leHRJdGVtOml9PWU7bnVsbCE9PXQmJih0Lm5leHRJdGVtPWkpLG51bGwhPT1pJiYoaS5wcmV2SXRlbT10KX0hZnVuY3Rpb24oZSl7ZVtlLkNhcGFjaXR5RmFjdG9yPTEuM109IkNhcGFjaXR5RmFjdG9yIn0oc3x8KHM9e30pKTtjbGFzcyBve2NvbnN0cnVjdG9yKGU9MCx0PTEuMyl7dGhpcy5fY2FjaGU9bmV3IE1hcCx0aGlzLl9sYXN0SXRlbT1udWxsLHRoaXMuX2ZpcnN0SXRlbT1udWxsLHRoaXMuX3NpemU9ZSx0aGlzLl9zaXplTGltaXRlZD1lPjAsdGhpcy5fY2FwYWNpdHlGYWN0b3I9dH1zZXQoZSx0KXtjb25zdCBpPXtrZXk6ZSx2YWx1ZTp0LHByZXZJdGVtOnRoaXMuX2xhc3RJdGVtLG5leHRJdGVtOm51bGx9O251bGwhPT10aGlzLl9sYXN0SXRlbSYmKHRoaXMuX2xhc3RJdGVtLm5leHRJdGVtPWkpO2NvbnN0IHM9dGhpcy5fY2FjaGUuZ2V0KGUpO3JldHVybiB2b2lkIDAhPT1zJiYocihzKSxzPT09dGhpcy5fZmlyc3RJdGVtJiYodGhpcy5fZmlyc3RJdGVtPXMubmV4dEl0ZW0pKSx0aGlzLl9jYWNoZS5zZXQoZSxpKSx0aGlzLl9sYXN0SXRlbT1pLG51bGw9PT10aGlzLl9maXJzdEl0ZW0mJih0aGlzLl9maXJzdEl0ZW09aSksdGhpcy5fc2l6ZUxpbWl0ZWQmJnRoaXMuX2NhY2hlLnNpemU+dGhpcy5fc2l6ZSp0aGlzLl9jYXBhY2l0eUZhY3RvciYmdGhpcy5fcmVtb3ZlRXh0cmFJdGVtcygpLHRoaXN9aGFzKGUpe3JldHVybiB0aGlzLl9jYWNoZS5oYXMoZSl9Z2V0KGUpe2NvbnN0IHQ9dGhpcy5fY2FjaGUuZ2V0KGUpO2lmKHZvaWQgMD09PXQpcmV0dXJuIHQ7aWYodD09PXRoaXMuX2ZpcnN0SXRlbSYmKHRoaXMuX2ZpcnN0SXRlbT10Lm5leHRJdGVtPz90KSx0IT09dGhpcy5fbGFzdEl0ZW0pe3IodCk7Y29uc3QgZT0oMCxuLmVuc3VyZU5vdE51bGwpKHRoaXMuX2xhc3RJdGVtKTtlLm5leHRJdGVtPXQsdC5wcmV2SXRlbT1lLHQubmV4dEl0ZW09bnVsbCx0aGlzLl9sYXN0SXRlbT10fXJldHVybiB0LnZhbHVlfWNsZWFyKCl7dGhpcy5fY2FjaGUuY2xlYXIoKSx0aGlzLl9maXJzdEl0ZW09bnVsbCx0aGlzLl9sYXN0SXRlbT1udWxsfWRlbGV0ZShlKXtjb25zdCB0PXRoaXMuX2NhY2hlLmdldChlKTtyZXR1cm4gdm9pZCAwIT09dCYmKHIodCksdD09PXRoaXMuX2xhc3RJdGVtJiYodGhpcy5fbGFzdEl0ZW09dC5wcmV2SXRlbSksdD09PXRoaXMuX2ZpcnN0SXRlbSYmKHRoaXMuX2ZpcnN0SXRlbT10Lm5leHRJdGVtKSksdGhpcy5fY2FjaGUuZGVsZXRlKGUpfSplbnRyaWVzKCl7aWYobnVsbCE9PXRoaXMuX2ZpcnN0SXRlbSlmb3IobGV0IGU9dGhpcy5fZmlyc3RJdGVtO251bGwhPT1lO2U9ZS5uZXh0SXRlbSl5aWVsZFtlLmtleSxlLnZhbHVlXX1zdGF0ZSgpe2NvbnN0IGU9W107Zm9yKGNvbnN0W3QsaV1vZiB0aGlzLmVudHJpZXMoKSllLnB1c2goW3QsaV0pO3JldHVybiBlfXJlc3RvcmVTdGF0ZShlKXtmb3IoY29uc3QgdCBvZiBlKXRoaXMuc2V0KHRbMF0sdFsxXSl9X3JlbW92ZUV4dHJhSXRlbXMoKXtjb25zdCBlPXRoaXMuX2NhY2hlLnNpemUtdGhpcy5fc2l6ZTtsZXQgdD0oMCxuLmVuc3VyZU5vdE51bGwpKHRoaXMuX2ZpcnN0SXRlbSk7Zm9yKGxldCBpPTA7aTxlO2krPTEpdGhpcy5fY2FjaGUuZGVsZXRlKHQua2V5KSx0PSgwLG4uZW5zdXJlTm90TnVsbCkodC5uZXh0SXRlbSk7dC5wcmV2SXRlbT1udWxsLHRoaXMuX2ZpcnN0SXRlbT10fX19LDIyMzU1NihlLHQsaSl7InVzZSBzdHJpY3QiO2kuZCh0LHthdmFpbGFibGVUaW1lem9uZXM6KCk9PmwsdGltZXpvbmVJc0F2YWlsYWJsZTooKT0+ZCx0aW1lem9uZVRpdGxlOigpPT51fSk7dmFyIHM9aSg5MTQ3NzUpLG49aSgxODUyNzEpO2NvbnN0IHI9W3tpZDoiRXRjL1VUQyIsZ2V0IHRpdGxlKCl7cmV0dXJuIG4udChudWxsLHZvaWQgMCxpKDkxMjI1NSkpfX0se2lkOiJleGNoYW5nZSIsZ2V0IHRpdGxlKCl7cmV0dXJuIG4udChudWxsLHZvaWQgMCxpKDgyNjYwNykpfX1dLG89W3tpZDoiQWZyaWNhL0NhaXJvIixnZXQgdGl0bGUoKXtyZXR1cm4gbi50KG51bGwsdm9pZCAwLGkoMzUxODQyKSl9LG9mZnNldDowfSx7aWQ6IkFmcmljYS9DYXNhYmxhbmNhIixnZXQgdGl0bGUoKXtyZXR1cm4gbi50KG51bGwsdm9pZCAwLGkoMjUyNDIyKSl9LG9mZnNldDowfSx7aWQ6IkFmcmljYS9Kb2hhbm5lc2J1cmciLGdldCB0aXRsZSgpe3JldHVybiBuLnQobnVsbCx2b2lkIDAsaSgyNzAzMzApKX0sb2Zmc2V0OjB9LHtpZDoiQWZyaWNhL0xhZ29zIixnZXQgdGl0bGUoKXtyZXR1cm4gbi50KG51bGwsdm9pZCAwLGkoOTUwNTE2KSl9LG9mZnNldDowfSx7aWQ6IkFmcmljYS9OYWlyb2JpIixnZXQgdGl0bGUoKXtyZXR1cm4gbi50KG51bGwsdm9pZCAwLGkoMTI0OTM0KSl9LG9mZnNldDowfSx7aWQ6IkFmcmljYS9UdW5pcyIsZ2V0IHRpdGxlKCl7cmV0dXJuIG4udChudWxsLHZvaWQgMCxpKDMwNzI0OCkpfSxvZmZzZXQ6MH0se2lkOiJBbWVyaWNhL0FuY2hvcmFnZSIsZ2V0IHRpdGxlKCl7cmV0dXJuIG4udChudWxsLHZvaWQgMCxpKDgyNzkwMikpfSxvZmZzZXQ6MH0sewppZDoiQW1lcmljYS9BcmdlbnRpbmEvQnVlbm9zX0FpcmVzIixnZXQgdGl0bGUoKXtyZXR1cm4gbi50KG51bGwsdm9pZCAwLGkoMjE0MTQ0KSl9LG9mZnNldDowfSx7aWQ6IkFtZXJpY2EvQm9nb3RhIixnZXQgdGl0bGUoKXtyZXR1cm4gbi50KG51bGwsdm9pZCAwLGkoNTAzMzUzKSl9LG9mZnNldDowfSx7aWQ6IkFtZXJpY2EvQ2FyYWNhcyIsZ2V0IHRpdGxlKCl7cmV0dXJuIG4udChudWxsLHZvaWQgMCxpKDU3MjQyNykpfSxvZmZzZXQ6MH0se2lkOiJBbWVyaWNhL0NoaWNhZ28iLGdldCB0aXRsZSgpe3JldHVybiBuLnQobnVsbCx2b2lkIDAsaSg4MjE0NDgpKX0sb2Zmc2V0OjB9LHtpZDoiQW1lcmljYS9FbF9TYWx2YWRvciIsZ2V0IHRpdGxlKCl7cmV0dXJuIG4udChudWxsLHZvaWQgMCxpKDQ1MTQ0NykpfSxvZmZzZXQ6MH0se2lkOiJBbWVyaWNhL0hhbGlmYXgiLGdldCB0aXRsZSgpe3JldHVybiBuLnQobnVsbCx2b2lkIDAsaSg1ODIzODYpKX0sb2Zmc2V0OjB9LHtpZDoiQW1lcmljYS9KdW5lYXUiLGdldCB0aXRsZSgpe3JldHVybiBuLnQobnVsbCx2b2lkIDAsaSgyMDI2MzEpKX0sb2Zmc2V0OjB9LHtpZDoiQW1lcmljYS9MaW1hIixnZXQgdGl0bGUoKXtyZXR1cm4gbi50KG51bGwsdm9pZCAwLGkoMTU3NTAwKSl9LG9mZnNldDowfSx7aWQ6IkFtZXJpY2EvTG9zX0FuZ2VsZXMiLGdldCB0aXRsZSgpe3JldHVybiBuLnQobnVsbCx2b2lkIDAsaSg0MDg0MjYpKX0sb2Zmc2V0OjB9LHtpZDoiQW1lcmljYS9NZXhpY29fQ2l0eSIsZ2V0IHRpdGxlKCl7cmV0dXJuIG4udChudWxsLHZvaWQgMCxpKDg3NDYwNykpfSxvZmZzZXQ6MH0se2lkOiJBbWVyaWNhL05ld19Zb3JrIixnZXQgdGl0bGUoKXtyZXR1cm4gbi50KG51bGwsdm9pZCAwLGkoMjU4MTE3KSl9LG9mZnNldDowfSx7aWQ6IkFtZXJpY2EvUGhvZW5peCIsZ2V0IHRpdGxlKCl7cmV0dXJuIG4udChudWxsLHZvaWQgMCxpKDMzMTk1OSkpfSxvZmZzZXQ6MH0se2lkOiJBbWVyaWNhL1NhbnRpYWdvIixnZXQgdGl0bGUoKXtyZXR1cm4gbi50KG51bGwsdm9pZCAwLGkoNTE0MTU2KSl9LG9mZnNldDowfSx7aWQ6IkFtZXJpY2EvU2FvX1BhdWxvIixnZXQgdGl0bGUoKXtyZXR1cm4gbi50KG51bGwsdm9pZCAwLGkoOTU1NDMwKSl9LG9mZnNldDowfSx7aWQ6IkFtZXJpY2EvVG9yb250byIsZ2V0IHRpdGxlKCl7cmV0dXJuIG4udChudWxsLHZvaWQgMCxpKDE2MzY3MikpfSxvZmZzZXQ6MH0se2lkOiJBbWVyaWNhL1ZhbmNvdXZlciIsZ2V0IHRpdGxlKCl7cmV0dXJuIG4udChudWxsLHZvaWQgMCxpKDU5MTMyKSl9LG9mZnNldDowfSx7aWQ6IlVTL01vdW50YWluIixnZXQgdGl0bGUoKXtyZXR1cm4gbi50KG51bGwsdm9pZCAwLGkoODg5NTI5KSl9LG9mZnNldDowfSx7aWQ6IkFzaWEvQWxtYXR5IixnZXQgdGl0bGUoKXtyZXR1cm4gbi50KG51bGwsdm9pZCAwLGkoNDk1NzAzKSl9LG9mZnNldDowfSx7aWQ6IkFzaWEvQXNoa2hhYmFkIixnZXQgdGl0bGUoKXtyZXR1cm4gbi50KG51bGwsdm9pZCAwLGkoMzE5MDQ0KSl9LG9mZnNldDowfSx7aWQ6IkFzaWEvQmFocmFpbiIsZ2V0IHRpdGxlKCl7cmV0dXJuIG4udChudWxsLHZvaWQgMCxpKDU3ODY2NSkpfSxvZmZzZXQ6MH0se2lkOiJBc2lhL0Jhbmdrb2siLGdldCB0aXRsZSgpe3JldHVybiBuLnQobnVsbCx2b2lkIDAsaSg5NzM1NzQpKX0sb2Zmc2V0OjB9LHtpZDoiQXNpYS9DaG9uZ3FpbmciLGdldCB0aXRsZSgpe3JldHVybiBuLnQobnVsbCx2b2lkIDAsaSgyMDk2MzIpKX0sb2Zmc2V0OjB9LHtpZDoiQXNpYS9Db2xvbWJvIixnZXQgdGl0bGUoKXtyZXR1cm4gbi50KG51bGwsdm9pZCAwLGkoMjA1MDkxKSl9LG9mZnNldDowfSx7aWQ6IkFzaWEvRGhha2EiLGdldCB0aXRsZSgpe3JldHVybiBuLnQobnVsbCx2b2lkIDAsaSgzNjA2OTApKX0sb2Zmc2V0OjB9LHtpZDoiQXNpYS9EdWJhaSIsZ2V0IHRpdGxlKCl7cmV0dXJuIG4udChudWxsLHZvaWQgMCxpKDQ3MzI3NSkpfSxvZmZzZXQ6MH0se2lkOiJBc2lhL0hvX0NoaV9NaW5oIixnZXQgdGl0bGUoKXtyZXR1cm4gbi50KG51bGwsdm9pZCAwLGkoNDYyNzAyKSl9LG9mZnNldDowfSx7aWQ6IkFzaWEvSG9uZ19Lb25nIixnZXQgdGl0bGUoKXtyZXR1cm4gbi50KG51bGwsdm9pZCAwLGkoOTgyMTk3KSl9LG9mZnNldDowfSx7aWQ6IkFzaWEvSmFrYXJ0YSIsZ2V0IHRpdGxlKCl7cmV0dXJuIG4udChudWxsLHZvaWQgMCxpKDMzMTMwKSl9LG9mZnNldDowfSx7aWQ6IkFzaWEvSmVydXNhbGVtIixnZXQgdGl0bGUoKXtyZXR1cm4gbi50KG51bGwsdm9pZCAwLGkoNzA0ODMxKSl9LG9mZnNldDowfSx7aWQ6IkFzaWEvS2FyYWNoaSIsZ2V0IHRpdGxlKCl7cmV0dXJuIG4udChudWxsLHZvaWQgMCxpKDU4NTQ0MikpfSxvZmZzZXQ6MH0se2lkOiJBc2lhL0thYnVsIixnZXQgdGl0bGUoKXtyZXR1cm4gbi50KG51bGwsdm9pZCAwLGkoNDgwNTUzKSl9LG9mZnNldDowfSx7aWQ6IkFzaWEvS2F0aG1hbmR1IixnZXQgdGl0bGUoKXtyZXR1cm4gbi50KG51bGwsdm9pZCAwLGkoMjgyNDcpKX0sb2Zmc2V0OjB9LHtpZDoiQXNpYS9Lb2xrYXRhIixnZXQgdGl0bGUoKXtyZXR1cm4gbi50KG51bGwsdm9pZCAwLGkoMjg4NjUxKSl9LG9mZnNldDowfSx7aWQ6IkFzaWEvS3VhbGFfTHVtcHVyIixnZXQgdGl0bGUoKXtyZXR1cm4gbi50KG51bGwsdm9pZCAwLGkoMzQ3MDY0KSl9LG9mZnNldDowfSx7aWQ6IkFzaWEvS3V3YWl0IixnZXQgdGl0bGUoKXtyZXR1cm4gbi50KG51bGwsdm9pZCAwLGkoMzk1MTMwKSl9LG9mZnNldDowfSx7aWQ6IkFzaWEvTWFuaWxhIixnZXQgdGl0bGUoKXtyZXR1cm4gbi50KG51bGwsdm9pZCAwLGkoMzYxNDQ1KSl9LG9mZnNldDowfSx7aWQ6IkFzaWEvTXVzY2F0IixnZXQgdGl0bGUoKXtyZXR1cm4gbi50KG51bGwsdm9pZCAwLGkoODI1NDE0KSl9LG9mZnNldDowfSx7aWQ6IkFzaWEvTmljb3NpYSIsZ2V0IHRpdGxlKCl7cmV0dXJuIG4udChudWxsLHZvaWQgMCxpKDI3NjU0NykpfSxvZmZzZXQ6MH0se2lkOiJBc2lhL1FhdGFyIixnZXQgdGl0bGUoKXtyZXR1cm4gbi50KG51bGwsdm9pZCAwLGkoOTMzNzUzKSl9LG9mZnNldDowfSx7aWQ6IkFzaWEvUml5YWRoIixnZXQgdGl0bGUoKXsKcmV0dXJuIG4udChudWxsLHZvaWQgMCxpKDc4MDk1KSl9LG9mZnNldDowfSx7aWQ6IkFzaWEvU2VvdWwiLGdldCB0aXRsZSgpe3JldHVybiBuLnQobnVsbCx2b2lkIDAsaSg0NDQ0MTgpKX0sb2Zmc2V0OjB9LHtpZDoiQXNpYS9TaGFuZ2hhaSIsZ2V0IHRpdGxlKCl7cmV0dXJuIG4udChudWxsLHZvaWQgMCxpKDU3ODgzMSkpfSxvZmZzZXQ6MH0se2lkOiJBc2lhL1NpbmdhcG9yZSIsZ2V0IHRpdGxlKCl7cmV0dXJuIG4udChudWxsLHZvaWQgMCxpKDY0Mzc5NSkpfSxvZmZzZXQ6MH0se2lkOiJBc2lhL1RhaXBlaSIsZ2V0IHRpdGxlKCl7cmV0dXJuIG4udChudWxsLHZvaWQgMCxpKDQ3NjAyNikpfSxvZmZzZXQ6MH0se2lkOiJBc2lhL1RlaHJhbiIsZ2V0IHRpdGxlKCl7cmV0dXJuIG4udChudWxsLHZvaWQgMCxpKDc0Mjk4KSl9LG9mZnNldDowfSx7aWQ6IkFzaWEvVG9reW8iLGdldCB0aXRsZSgpe3JldHVybiBuLnQobnVsbCx2b2lkIDAsaSg3OTgxOTkpKX0sb2Zmc2V0OjB9LHtpZDoiQXNpYS9ZYW5nb24iLGdldCB0aXRsZSgpe3JldHVybiBuLnQobnVsbCx2b2lkIDAsaSgxNzczNTQpKX0sb2Zmc2V0OjB9LHtpZDoiQXRsYW50aWMvQXpvcmVzIixnZXQgdGl0bGUoKXtyZXR1cm4gbi50KG51bGwsdm9pZCAwLGkoMzg0OTY0KSl9LG9mZnNldDowfSx7aWQ6IkF0bGFudGljL1JleWtqYXZpayIsZ2V0IHRpdGxlKCl7cmV0dXJuIG4udChudWxsLHZvaWQgMCxpKDc1Mzg1OCkpfSxvZmZzZXQ6MH0se2lkOiJBdXN0cmFsaWEvQWRlbGFpZGUiLGdldCB0aXRsZSgpe3JldHVybiBuLnQobnVsbCx2b2lkIDAsaSg1MDE1MDIpKX0sb2Zmc2V0OjB9LHtpZDoiQXVzdHJhbGlhL0JyaXNiYW5lIixnZXQgdGl0bGUoKXtyZXR1cm4gbi50KG51bGwsdm9pZCAwLGkoODkwNjg5KSl9LG9mZnNldDowfSx7aWQ6IkF1c3RyYWxpYS9QZXJ0aCIsZ2V0IHRpdGxlKCl7cmV0dXJuIG4udChudWxsLHZvaWQgMCxpKDM1MDEwOCkpfSxvZmZzZXQ6MH0se2lkOiJBdXN0cmFsaWEvU3lkbmV5IixnZXQgdGl0bGUoKXtyZXR1cm4gbi50KG51bGwsdm9pZCAwLGkoMTc5OTM0KSl9LG9mZnNldDowfSx7aWQ6IkV1cm9wZS9BbXN0ZXJkYW0iLGdldCB0aXRsZSgpe3JldHVybiBuLnQobnVsbCx2b2lkIDAsaSgyMTM0NykpfSxvZmZzZXQ6MH0se2lkOiJFdXJvcGUvQXRoZW5zIixnZXQgdGl0bGUoKXtyZXR1cm4gbi50KG51bGwsdm9pZCAwLGkoOTg0MTcxKSl9LG9mZnNldDowfSx7aWQ6IkV1cm9wZS9CZWxncmFkZSIsZ2V0IHRpdGxlKCl7cmV0dXJuIG4udChudWxsLHZvaWQgMCxpKDgwODM3NykpfSxvZmZzZXQ6MH0se2lkOiJFdXJvcGUvQmVybGluIixnZXQgdGl0bGUoKXtyZXR1cm4gbi50KG51bGwsdm9pZCAwLGkoNTIzMTI0KSl9LG9mZnNldDowfSx7aWQ6IkV1cm9wZS9CcmF0aXNsYXZhIixnZXQgdGl0bGUoKXtyZXR1cm4gbi50KG51bGwsdm9pZCAwLGkoOTQ4ODI0KSl9LG9mZnNldDowfSx7aWQ6IkV1cm9wZS9CcnVzc2VscyIsZ2V0IHRpdGxlKCl7cmV0dXJuIG4udChudWxsLHZvaWQgMCxpKDM4NTkyNikpfSxvZmZzZXQ6MH0se2lkOiJFdXJvcGUvQnVjaGFyZXN0IixnZXQgdGl0bGUoKXtyZXR1cm4gbi50KG51bGwsdm9pZCAwLGkoNjY0NTMxKSl9LG9mZnNldDowfSx7aWQ6IkV1cm9wZS9CdWRhcGVzdCIsZ2V0IHRpdGxlKCl7cmV0dXJuIG4udChudWxsLHZvaWQgMCxpKDU5MDI0MykpfSxvZmZzZXQ6MH0se2lkOiJFdXJvcGUvQ29wZW5oYWdlbiIsZ2V0IHRpdGxlKCl7cmV0dXJuIG4udChudWxsLHZvaWQgMCxpKDM2Njk1MikpfSxvZmZzZXQ6MH0se2lkOiJFdXJvcGUvRHVibGluIixnZXQgdGl0bGUoKXtyZXR1cm4gbi50KG51bGwsdm9pZCAwLGkoNDMwODY4KSl9LG9mZnNldDowfSx7aWQ6IkV1cm9wZS9IZWxzaW5raSIsZ2V0IHRpdGxlKCl7cmV0dXJuIG4udChudWxsLHZvaWQgMCxpKDYxNTE0MCkpfSxvZmZzZXQ6MH0se2lkOiJFdXJvcGUvSXN0YW5idWwiLGdldCB0aXRsZSgpe3JldHVybiBuLnQobnVsbCx2b2lkIDAsaSgyMDc3OTgpKX0sb2Zmc2V0OjB9LHtpZDoiRXVyb3BlL0xpc2JvbiIsZ2V0IHRpdGxlKCl7cmV0dXJuIG4udChudWxsLHZvaWQgMCxpKDUwNzIpKX0sb2Zmc2V0OjB9LHtpZDoiRXVyb3BlL0xqdWJsamFuYSIsZ2V0IHRpdGxlKCl7cmV0dXJuIG4udChudWxsLHZvaWQgMCxpKDQyMjAwNykpfSxvZmZzZXQ6MH0se2lkOiJFdXJvcGUvTG9uZG9uIixnZXQgdGl0bGUoKXtyZXR1cm4gbi50KG51bGwsdm9pZCAwLGkoMjQ2NTA3KSl9LG9mZnNldDowfSx7aWQ6IkV1cm9wZS9MdXhlbWJvdXJnIixnZXQgdGl0bGUoKXtyZXR1cm4gbi50KG51bGwsdm9pZCAwLGkoOTc1NDQ3KSl9LG9mZnNldDowfSx7aWQ6IkV1cm9wZS9NYWRyaWQiLGdldCB0aXRsZSgpe3JldHVybiBuLnQobnVsbCx2b2lkIDAsaSg0MzE4OTIpKX0sb2Zmc2V0OjB9LHtpZDoiRXVyb3BlL01hbHRhIixnZXQgdGl0bGUoKXtyZXR1cm4gbi50KG51bGwsdm9pZCAwLGkoNTYzMjM3KSl9LG9mZnNldDowfSx7aWQ6IkV1cm9wZS9Nb3Njb3ciLGdldCB0aXRsZSgpe3JldHVybiBuLnQobnVsbCx2b2lkIDAsaSg0NDYwNzQpKX0sb2Zmc2V0OjB9LHtpZDoiRXVyb3BlL09zbG8iLGdldCB0aXRsZSgpe3JldHVybiBuLnQobnVsbCx2b2lkIDAsaSg4NDk3MzgpKX0sb2Zmc2V0OjB9LHtpZDoiRXVyb3BlL1BhcmlzIixnZXQgdGl0bGUoKXtyZXR1cm4gbi50KG51bGwsdm9pZCAwLGkoNjE3ODc0KSl9LG9mZnNldDowfSx7aWQ6IkV1cm9wZS9QcmFndWUiLGdldCB0aXRsZSgpe3JldHVybiBuLnQobnVsbCx2b2lkIDAsaSg1NDQ0MDMpKX0sb2Zmc2V0OjB9LHtpZDoiRXVyb3BlL1JpZ2EiLGdldCB0aXRsZSgpe3JldHVybiBuLnQobnVsbCx2b2lkIDAsaSgyMjk2NDMpKX0sb2Zmc2V0OjB9LHtpZDoiRXVyb3BlL1JvbWUiLGdldCB0aXRsZSgpe3JldHVybiBuLnQobnVsbCx2b2lkIDAsaSgyMjU5OTEpKX0sb2Zmc2V0OjB9LHtpZDoiRXVyb3BlL1NvZmlhIixnZXQgdGl0bGUoKXtyZXR1cm4gbi50KG51bGwsdm9pZCAwLGkoNTA0MzEpKX0sb2Zmc2V0OjB9LHtpZDoiRXVyb3BlL1N0b2NraG9sbSIsZ2V0IHRpdGxlKCl7cmV0dXJuIG4udChudWxsLHZvaWQgMCxpKDI1NTUxMSkpfSwKb2Zmc2V0OjB9LHtpZDoiRXVyb3BlL1RhbGxpbm4iLGdldCB0aXRsZSgpe3JldHVybiBuLnQobnVsbCx2b2lkIDAsaSg2NTIxNzYpKX0sb2Zmc2V0OjB9LHtpZDoiRXVyb3BlL1ZpZW5uYSIsZ2V0IHRpdGxlKCl7cmV0dXJuIG4udChudWxsLHZvaWQgMCxpKDYxNDQyKSl9LG9mZnNldDowfSx7aWQ6IkV1cm9wZS9WaWxuaXVzIixnZXQgdGl0bGUoKXtyZXR1cm4gbi50KG51bGwsdm9pZCAwLGkoMTAwMzAxKSl9LG9mZnNldDowfSx7aWQ6IkV1cm9wZS9XYXJzYXciLGdldCB0aXRsZSgpe3JldHVybiBuLnQobnVsbCx2b2lkIDAsaSgxNjQ3MzYpKX0sb2Zmc2V0OjB9LHtpZDoiRXVyb3BlL1phZ3JlYiIsZ2V0IHRpdGxlKCl7cmV0dXJuIG4udChudWxsLHZvaWQgMCxpKDc5MjM4NikpfSxvZmZzZXQ6MH0se2lkOiJFdXJvcGUvWnVyaWNoIixnZXQgdGl0bGUoKXtyZXR1cm4gbi50KG51bGwsdm9pZCAwLGkoNDczNDk2KSl9LG9mZnNldDowfSx7aWQ6IlBhY2lmaWMvQXVja2xhbmQiLGdldCB0aXRsZSgpe3JldHVybiBuLnQobnVsbCx2b2lkIDAsaSg0MjE2KSl9LG9mZnNldDowfSx7aWQ6IlBhY2lmaWMvQ2hhdGhhbSIsZ2V0IHRpdGxlKCl7cmV0dXJuIG4udChudWxsLHZvaWQgMCxpKDgxODg0NikpfSxvZmZzZXQ6MH0se2lkOiJQYWNpZmljL0Zha2FvZm8iLGdldCB0aXRsZSgpe3JldHVybiBuLnQobnVsbCx2b2lkIDAsaSgxMDQxNzcpKX0sb2Zmc2V0OjB9LHtpZDoiUGFjaWZpYy9Ib25vbHVsdSIsZ2V0IHRpdGxlKCl7cmV0dXJuIG4udChudWxsLHZvaWQgMCxpKDg5OTc5MSkpfSxvZmZzZXQ6MH0se2lkOiJQYWNpZmljL05vcmZvbGsiLGdldCB0aXRsZSgpe3JldHVybiBuLnQobnVsbCx2b2lkIDAsaSg5Njc0MTIpKX0sb2Zmc2V0OjB9XTtmdW5jdGlvbiBhKGUsdCxpKXtjb25zdCBuPWZ1bmN0aW9uKGUpe3JldHVybiBlLm1hcCgoZT0+e2NvbnN0e2lkOnR9PWUse3N0cmluZzppLG9mZnNldDpufT0oMCxzLnBhcnNlVHpPZmZzZXQpKHQpO3JldHVybntpZDp0LG9mZnNldDpuLGdldCB0aXRsZSgpe3JldHVybmAoJHtpfSkgJHtlLnRpdGxlfWB9fX0pKX0oZSkscj1pLmZpbHRlcigoKHthbGlhczplfSk9PkJvb2xlYW4oZSkpKS5tYXAoKGU9Pntjb25zdHthbGlhczp0LGlkOml9PWUse3N0cmluZzpuLG9mZnNldDpyfT0oMCxzLnBhcnNlVHpPZmZzZXQpKHQpO3JldHVybntpZDppLG9mZnNldDpyLGdldCB0aXRsZSgpe3JldHVybmAoJHtufSkgJHtlLnRpdGxlfWB9LGFsaWFzOnR9fSkpLG89ZnVuY3Rpb24oZSl7cmV0dXJuIGUuc29ydCgoKGUsdCk9Pntjb25zdCBpPWUub2Zmc2V0LXQub2Zmc2V0O3JldHVybiAwIT09aT9pOmUudGl0bGUubG9jYWxlQ29tcGFyZSh0LnRpdGxlKX0pKX0obi5jb25jYXQocikpO3JldHVybiB0LmNvbmNhdChvKX1jb25zdCBsPWEobyxyLFtdKSxjPW5ldyBNYXA7bC5mb3JFYWNoKChlPT57Yy5zZXQoZS5pZCwhMCl9KSk7Y29uc3QgaD1uZXcgTWFwO3IuY29uY2F0KG8pLmZvckVhY2goKGU9PntoLnNldChlLmlkLCEwKX0pKTtmdW5jdGlvbiBkKGUpe3JldHVybiBjLmhhcyhlKX1mdW5jdGlvbiB1KGUpe2Zvcihjb25zdHtpZDp0LHRpdGxlOml9b2YgbylpZih0PT09ZSl7cmV0dXJuYCR7aX0gKCR7KDAscy5wYXJzZVR6T2Zmc2V0KShlKS5zdHJpbmd9KWB9Zm9yKGNvbnN0e2lkOnQsdGl0bGU6aX1vZiBsKWlmKHQ9PT1lKXJldHVybmAke2l9YDtyZXR1cm4gZX19LDg4NDI4KGUsdCxpKXsidXNlIHN0cmljdCI7dmFyIHMsbjtpLmQodCx7SG9yaXpvbnRhbEFsaWduOigpPT5zLFZlcnRpY2FsQWxpZ246KCk9Pm59KSxmdW5jdGlvbihlKXtlLkxlZnQ9ImxlZnQiLGUuUmlnaHQ9InJpZ2h0IixlLkNlbnRlcj0iY2VudGVyIn0oc3x8KHM9e30pKSxmdW5jdGlvbihlKXtlLlRvcD0idG9wIixlLkJvdHRvbT0iYm90dG9tIixlLk1pZGRsZT0ibWlkZGxlIn0obnx8KG49e30pKX0sOTM3MDk4KGUsdCxpKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gcyhlKXtyZXR1cm4iZWNvbm9taWMiPT09ZX1pLmQodCx7aXNOb25UcmFkYWJsZVN5bWJvbFR5cGU6KCk9PnN9KX0sMzQ0MTAzKGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgdD1be2Q6IkUtTWluaSBTJlAgNTAwIix0OiJFUyJ9LHtkOiJFLU1pbmkgTmFzZGFxIDEwMCIsdDoiTlEifSx7ZDoiR29sZCIsdDoiR0MifSx7ZDoiU2lsdmVyIix0OiJTSSJ9LHtkOiJDcnVkZSBPaWwgV1RJIix0OiJDTCJ9LHtkOiJOYXR1cmFsIEdhcyIsdDoiTkcifSx7ZDoiQXVzdHJhbGlhbiBEb2xsYXIiLHQ6IjZBIn0se2Q6IkF1c3RyYWxpYW4gRG9sbGFyIChGbG9vcikiLHQ6IkFEIn0se2Q6IkV1cm8gRlgiLHQ6IjZFIn0se2Q6IkV1cm8gRlggKEZsb29yKSIsdDoiRUMifSx7ZDoiQ29ybiIsdDoiWkMifSx7ZDoiQ29ybiAoRmxvb3IpIix0OiJDIn0se2Q6IkV1cm9kb2xsYXIiLHQ6IkdFIn0se2Q6IkV1cm9kb2xsYXIgKEZsb29yKSIsdDoiRUQifV0saT1mdW5jdGlvbigpe3ZhciBlPVt7cGF0dGVybjoiKCIsY3RvcjpyfSx7cGF0dGVybjoiKSIsY3RvcjpvfSx7cGF0dGVybjoiKyIsY3RvcjpsfSx7cGF0dGVybjoiLSIsY3RvcjpjfSx7cGF0dGVybjoiKiIsY3RvcjpofSx7cGF0dGVybjoiLyIsY3RvcjpkfSx7cGF0dGVybjoiXiIsY3Rvcjp1fSx7cGF0dGVybjovXGQrKD86XC5cZCp8KD8hW2EtekEtWjAtOV8hOi4mXSkpfFwuXGQrLyxjdG9yOmd9LHtwYXR0ZXJuOi9cLi8sY3Rvcjp2fSx7cGF0dGVybjovW2EtekEtWjAtOV9cdTAzNzAtXHUxRkZGX1x1MkU4MC1cdUZGRkZdW2EtekEtWjAtOV9cdTAwMjBcdTAzNzAtXHUxRkZGX1x1MkU4MC1cdUZGRkZfIXw6LiZdKnwnLis/Jy8sY3RvcjptfSx7cGF0dGVybjovJ1teJ10qLyxjdG9yOlN9LHtwYXR0ZXJuOi9bXDAtXHgyMFxzXSsvLGN0b3I6bn1dO2Z1bmN0aW9uIGkoZSx0KXt2YXIgaT1mdW5jdGlvbigpe307cmV0dXJuIGkucHJvdG90eXBlPXQucHJvdG90eXBlLGUucHJvdG90eXBlPW5ldyBpLGV9ZnVuY3Rpb24gcygpe31mdW5jdGlvbiBuKGUpe3RoaXMudmFsdWU9ZX1mdW5jdGlvbiByKCl7fWZ1bmN0aW9uIG8oKXt9ZnVuY3Rpb24gYSgpe31mdW5jdGlvbiBsKCl7fWZ1bmN0aW9uIGMoKXt9ZnVuY3Rpb24gaCgpe31mdW5jdGlvbiBkKCl7fQpmdW5jdGlvbiB1KCl7fXMucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudmFsdWV9LGkobixzKSxpKHIscyksci5wcm90b3R5cGUudmFsdWU9IigiLGkobyxzKSxvLnByb3RvdHlwZS52YWx1ZT0iKSIsaShhLHMpLGkobCxhKSxsLnByb3RvdHlwZS52YWx1ZT0iKyIsbC5wcm90b3R5cGUucHJlY2VkZW5jZT0wLGwucHJvdG90eXBlLmNvbW11dGF0aXZlPSEwLGkoYyxhKSxjLnByb3RvdHlwZS52YWx1ZT0iLSIsYy5wcm90b3R5cGUucHJlY2VkZW5jZT0wLGMucHJvdG90eXBlLmNvbW11dGF0aXZlPSExLGkoaCxhKSxoLnByb3RvdHlwZS52YWx1ZT0iKiIsaC5wcm90b3R5cGUucHJlY2VkZW5jZT0xLGgucHJvdG90eXBlLmNvbW11dGF0aXZlPSEwLGkoZCxhKSxkLnByb3RvdHlwZS52YWx1ZT0iLyIsZC5wcm90b3R5cGUucHJlY2VkZW5jZT0xLGQucHJvdG90eXBlLmNvbW11dGF0aXZlPSExLGkodSxhKSx1LnByb3RvdHlwZS52YWx1ZT0iXiIsdS5wcm90b3R5cGUucHJlY2VkZW5jZT0yLHUucHJvdG90eXBlLmNvbW11dGF0aXZlPSExO3ZhciBwPS9eJz8oPzooW0EtWjAtOV9dKyk6KT8oLio/KSc/JC9pLF89L1srXC0vKl0vO2Z1bmN0aW9uIG0oZSl7dGhpcy52YWx1ZT1lfWZ1bmN0aW9uIGcoZSl7dGhpcy52YWx1ZT1lfWZ1bmN0aW9uIGYoZSl7dGhpcy52YWx1ZT1lfWZ1bmN0aW9uIFMoKXttLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiB2KCl7Zy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9aShtLHMpLG0ucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7aWYodGhpcy5oYXNPd25Qcm9wZXJ0eSgiX3RpY2tlciIpKXt2YXIgZT1fLnRlc3QodGhpcy5fdGlja2VyKT8iJyI6IiI7cmV0dXJuIGUrKHRoaXMuX2V4Y2hhbmdlP3RoaXMuX2V4Y2hhbmdlKyI6IjoiIikrdGhpcy5fdGlja2VyK2V9cmV0dXJuIHRoaXMudmFsdWV9LG0ucHJvdG90eXBlLnBhcnNlPWZ1bmN0aW9uKCl7dmFyIGU9cC5leGVjKHRoaXMudmFsdWUpO2VbMV0mJih0aGlzLl9leGNoYW5nZT1lWzFdKSx0aGlzLl90aWNrZXI9ZVsyXX0sbS5wcm90b3R5cGUucGFyc2VBc0Z1dHVyZXM9ZnVuY3Rpb24oKXt0aGlzLmhhc093blByb3BlcnR5KCJfdGlja2VyIil8fHRoaXMucGFyc2UoKTtmb3IodmFyIGU9ZnVuY3Rpb24oZSl7cmV0dXJuIHQuc29tZSgoZnVuY3Rpb24odCl7cmV0dXJuIHQudD09PWV9KSl9LGk9MjtpPj0xOy0taSl7dmFyIHM9dGhpcy5fdGlja2VyLnNsaWNlKDAsaSk7aWYoZShzKSl7dGhpcy5fcm9vdD1zLHRoaXMuX2NvbnRyYWN0PXRoaXMuX3RpY2tlci5zbGljZShpKTticmVha319fSxtLnByb3RvdHlwZS5leGNoYW5nZT1mdW5jdGlvbihlKXtpZih0aGlzLmhhc093blByb3BlcnR5KCJfdGlja2VyIil8fHRoaXMucGFyc2UoKSwhKGFyZ3VtZW50cy5sZW5ndGg+MCkpcmV0dXJuIHRoaXMuX2V4Y2hhbmdlO251bGw9PWU/ZGVsZXRlIHRoaXMuX2V4Y2hhbmdlOnRoaXMuX2V4Y2hhbmdlPWUrIiJ9LG0ucHJvdG90eXBlLnRpY2tlcj1mdW5jdGlvbihlKXtpZih0aGlzLmhhc093blByb3BlcnR5KCJfdGlja2VyIil8fHRoaXMucGFyc2UoKSwhKGFyZ3VtZW50cy5sZW5ndGg+MCkpcmV0dXJuIHRoaXMuX3RpY2tlcjtudWxsPT1lP2RlbGV0ZSB0aGlzLl90aWNrZXI6dGhpcy5fdGlja2VyPWUrIiIsZGVsZXRlIHRoaXMuX3Jvb3QsZGVsZXRlIHRoaXMuX2NvbnRyYWN0fSxtLnByb3RvdHlwZS5yb290PWZ1bmN0aW9uKGUpe2lmKHRoaXMuaGFzT3duUHJvcGVydHkoIl9yb290Iil8fHRoaXMucGFyc2VBc0Z1dHVyZXMoKSwhKGFyZ3VtZW50cy5sZW5ndGg+MCkpcmV0dXJuIHRoaXMuX3Jvb3Q7bnVsbD09ZT9kZWxldGUgdGhpcy5fcm9vdDoodGhpcy5fcm9vdD1lKyIiLHRoaXMuX3Jvb3QmJih0aGlzLl90aWNrZXI9dGhpcy5fcm9vdCsodGhpcy5fY29udHJhY3R8fCIiKSkpfSxtLnByb3RvdHlwZS5jb250cmFjdD1mdW5jdGlvbihlKXtpZih0aGlzLmhhc093blByb3BlcnR5KCJfY29udHJhY3QiKXx8dGhpcy5wYXJzZUFzRnV0dXJlcygpLCEoYXJndW1lbnRzLmxlbmd0aD4wKSlyZXR1cm4gdGhpcy5fcm9vdDtudWxsPT1lP2RlbGV0ZSB0aGlzLl9jb250cmFjdDoodGhpcy5fY29udHJhY3Q9ZSsiIix0aGlzLl9yb290JiYodGhpcy5fdGlja2VyPXRoaXMuX3Jvb3QrdGhpcy5fY29udHJhY3QpKX0saShnLHMpLGcucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaGFzT3duUHJvcGVydHkoIl9ub3JtYWxpemVkVmFsdWUiKT90aGlzLl9ub3JtYWxpemVkVmFsdWU6dGhpcy52YWx1ZX0sZy5wcm90b3R5cGUucGFyc2U9ZnVuY3Rpb24oKXt0aGlzLl9ub3JtYWxpemVkVmFsdWU9dGhpcy52YWx1ZS5yZXBsYWNlKC9eMCt8XC4wKiQvZywiIikucmVwbGFjZSgvKFwuXGQqPykwKyQvLCIkMSIpLnJlcGxhY2UoL14oXC58JCkvLCIwJDEiKX0sZi5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy52YWx1ZX0saShTLG0pLFMucHJvdG90eXBlLmlzSW5jb21wbGV0ZT0hMCxTLnByb3RvdHlwZS5pbmNvbXBsZXRlU3VnZ2VzdD1mdW5jdGlvbigpe2lmKCInIiE9PXRoaXMudmFsdWUpcmV0dXJuIFN0cmluZygiJyIpfSxpKHYsZyksdi5wcm90b3R5cGUuaXNJbmNvbXBsZXRlPSEwO3ZhciB5PW5ldyBSZWdFeHAoZS5tYXAoKGZ1bmN0aW9uKGUpe3JldHVybiIoIisoInN0cmluZyI9PXR5cGVvZiBlLnBhdHRlcm4/ZS5wYXR0ZXJuLnJlcGxhY2UoL1tcXiQoKVtcXXt9Kis/fFxcXS9nLCJcXCQmIik6ZS5wYXR0ZXJuLnNvdXJjZSkrIikifSkpLmNvbmNhdCgiLiIpLmpvaW4oInwiKSwiZyIpO2Z1bmN0aW9uIGIodCxpKXt2YXIgcyxyPVtdO2U6Zm9yKDtzPXkuZXhlYyh0KTspe2Zvcih2YXIgbz1lLmxlbmd0aDtvLS07KWlmKHNbbysxXSl7aWYoZVtvXS5jdG9yKXt2YXIgYT1uZXcgZVtvXS5jdG9yKHNbbysxXSk7YS5fb2Zmc2V0PXMuaW5kZXgsci5wdXNoKGEpfWNvbnRpbnVlIGV9dmFyIGw9bmV3IGYoc1swXSk7bC5fb2Zmc2V0PXMuaW5kZXgsci5wdXNoKGwpfWlmKGkmJmkucmVjb3Zlcil7dmFyIGM7Zm9yKG89ci5sZW5ndGg7by0tOyl7dmFyIGg9cltvXQo7aWYoaCBpbnN0YW5jZW9mIGd8fGggaW5zdGFuY2VvZiBtKXtpZih2b2lkIDAhPT1jKXt2YXIgZD1uZXcgbSgiIiksdT1yLnNwbGljZShvLGMtbysxLGQpO2QudmFsdWU9dS5tYXAoKGZ1bmN0aW9uKGUpe3JldHVybiBlLnZhbHVlfSkpLmpvaW4oIiIpfWM9b31lbHNlIGggaW5zdGFuY2VvZiBufHwoYz12b2lkIDApfX1yZXR1cm4gcn1mdW5jdGlvbiB3KGUpe2Zvcih2YXIgdD1bXSxpPTA7aTxlLmxlbmd0aDtpKyspZVtpXWluc3RhbmNlb2Ygbnx8dC5wdXNoKGVbaV0pO3JldHVybiB0fWZ1bmN0aW9uIEMoZSl7ZT13KGUpO2Zvcih2YXIgdCxpPVtdLHM9W10sbj0wO248ZS5sZW5ndGg7bisrKXt2YXIgbD1lW25dO2lmKGwgaW5zdGFuY2VvZiBhKXMubGVuZ3RoJiZzW3MubGVuZ3RoLTFdLm1pblByZWNlZGVuY2U+bC5wcmVjZWRlbmNlJiYoc1tzLmxlbmd0aC0xXS5taW5QcmVjZWRlbmNlPWwucHJlY2VkZW5jZSk7ZWxzZSBpZihsIGluc3RhbmNlb2YgcilzLnB1c2godD17bWluUHJlY2VkZW5jZToxLzAsb3BlbkJyYWNlSW5kZXg6bn0pO2Vsc2UgaWYobCBpbnN0YW5jZW9mIG8pe3ZhciBjPWVbKHQ9cy5wb3AoKSkub3BlbkJyYWNlSW5kZXgtMV0saD1lW24rMV07aCBpbnN0YW5jZW9mIGEmJiEoaC5wcmVjZWRlbmNlPD10Lm1pblByZWNlZGVuY2UpfHwhKCEoYyBpbnN0YW5jZW9mIGEpfHxjLnByZWNlZGVuY2U8dC5taW5QcmVjZWRlbmNlfHxjLnByZWNlZGVuY2U9PT10Lm1pblByZWNlZGVuY2UmJmMuY29tbXV0YXRpdmUpfHwoaS51bnNoaWZ0KHQub3BlbkJyYWNlSW5kZXgpLGkucHVzaChuKSxzLmxlbmd0aCYmc1tzLmxlbmd0aC0xXS5taW5QcmVjZWRlbmNlPnQubWluUHJlY2VkZW5jZSYmKHNbcy5sZW5ndGgtMV0ubWluUHJlY2VkZW5jZT10Lm1pblByZWNlZGVuY2UpKX19Zm9yKG49aS5sZW5ndGg7bi0tOyllLnNwbGljZShpW25dLDEpO3JldHVybiBlfWZ1bmN0aW9uIFAoZSl7aWYoInN0cmluZyIhPXR5cGVvZiBlKXRocm93IG5ldyBUeXBlRXJyb3IoImV4cHJlc3Npb24gbXVzdCBiZSBhIHN0cmluZyIpO3JldHVybihlPWIoZSkpLmZpbHRlcigoZnVuY3Rpb24oZSl7cmV0dXJuIGUgaW5zdGFuY2VvZiBtfSkpLm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuIGUuZXhjaGFuZ2UoKX0pKS5maWx0ZXIoKGZ1bmN0aW9uKGUpe3JldHVybiBlfSkpfWZ1bmN0aW9uIFQoZSl7cmV0dXJuIDEhPT0oZT1QKGUpKS5sZW5ndGg/bnVsbDplWzBdfWZ1bmN0aW9uIHgoZSx0KXtyZXR1cm4oZT1QKGUpKS5zb21lKChmdW5jdGlvbihlKXtyZXR1cm4gdC5pbmNsdWRlcygoZXx8IiIpLnRvVXBwZXJDYXNlKCkpfSkpfWZ1bmN0aW9uIE0oZSl7cmV0dXJuIGUuam9pbigiIil9cmV0dXJue3Rva2VuaXplOmIsdmFsaWRhdGU6ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PSJpbml0IixpPSJ2YXIiLHM9dCxsPXt3YXJuaW5nczpbXSxlcnJvcnM6W10saXNFbXB0eTohMH0sYz1bXSxoPTA7aDxlLmxlbmd0aDtoKyspe2lmKCEoKHU9ZVtoXSlpbnN0YW5jZW9mIG4pKXtpZihkZWxldGUgbC5pc0VtcHR5LHUuaXNJbmNvbXBsZXRlKXt2YXIgZD17c3RhdHVzOiJpbmNvbXBsZXRlIixyZWFzb246ImluY29tcGxldGVfdG9rZW4iLG9mZnNldDp1Ll9vZmZzZXQsdG9rZW46dX07aWYodS5pbmNvbXBsZXRlU3VnZ2VzdCYmKGQucmVjb3Zlcj17YXBwZW5kOnUuaW5jb21wbGV0ZVN1Z2dlc3QoKX0pLGwud2FybmluZ3MucHVzaChkKSxoIT09ZS5sZW5ndGgtMSl7ZC5zdGF0dXM9ImVycm9yIjtjb250aW51ZX19aWYodSBpbnN0YW5jZW9mIG18fHUgaW5zdGFuY2VvZiBnKXtpZihzPT09aSl7bC5lcnJvcnMucHVzaCh7c3RhdHVzOiJlcnJvciIscmVhc29uOiJ1bmV4cGVjdGVkX3Rva2VuIixvZmZzZXQ6dS5fb2Zmc2V0LHRva2VuOnV9KTtjb250aW51ZX1zPWl9ZWxzZSBpZih1IGluc3RhbmNlb2YgYSl7aWYocyE9PWkpe2wuZXJyb3JzLnB1c2goe3N0YXR1czoiZXJyb3IiLHJlYXNvbjoidW5leHBlY3RlZF90b2tlbiIsb2Zmc2V0OnUuX29mZnNldCx0b2tlbjp1fSk7Y29udGludWV9cz0ib3BlcmF0b3IifWVsc2UgaWYodSBpbnN0YW5jZW9mIHIpe2lmKHM9PT1pKXtsLmVycm9ycy5wdXNoKHtzdGF0dXM6ImVycm9yIixyZWFzb246InVuZXhwZWN0ZWRfdG9rZW4iLG9mZnNldDp1Ll9vZmZzZXQsdG9rZW46dX0pO2NvbnRpbnVlfWMucHVzaCh1KSxzPXR9ZWxzZSBpZih1IGluc3RhbmNlb2Ygbyl7aWYocyE9PWkpe2wuZXJyb3JzLnB1c2goe3N0YXR1czoiZXJyb3IiLHJlYXNvbjoidW5leHBlY3RlZF90b2tlbiIsb2Zmc2V0OnUuX29mZnNldCx0b2tlbjp1fSk7Y29udGludWV9Yy5wb3AoKXx8bC5lcnJvcnMucHVzaCh7c3RhdHVzOiJlcnJvciIscmVhc29uOiJ1bmJhbGFuY2VkX2JyYWNlIixvZmZzZXQ6dS5fb2Zmc2V0LHRva2VuOnUscmVjb3Zlcjp7cHJlcGVuZDpuZXcgcn19KSxzPWl9ZWxzZSB1IGluc3RhbmNlb2YgZiYmbC5lcnJvcnMucHVzaCh7c3RhdHVzOiJlcnJvciIscmVhc29uOiJ1bnBhcnNlZF9lbnRpdHkiLG9mZnNldDp1Ll9vZmZzZXQsdG9rZW46dX0pfX1mb3IobC5icmFjZUJhbGFuY2U9Yy5sZW5ndGgscyE9PWkmJmwud2FybmluZ3MucHVzaCh7c3RhdHVzOiJpbmNvbXBsZXRlIn0pO2MubGVuZ3RoOyl7dmFyIHU7ZD17c3RhdHVzOiJpbmNvbXBsZXRlIixyZWFzb246InVuYmFsYW5jZWRfYnJhY2UiLG9mZnNldDoodT1jLnBvcCgpKS5fb2Zmc2V0LHRva2VuOnV9O3M9PT1pJiYoZC5yZWNvdmVyPXthcHBlbmQ6bmV3IG99KSxsLndhcm5pbmdzLnB1c2goZCl9cmV0dXJuIGwuY3VycmVudFN0YXRlPXMsMD09PWwud2FybmluZ3MubGVuZ3RoJiZkZWxldGUgbC53YXJuaW5ncywwPT09bC5lcnJvcnMubGVuZ3RoJiZkZWxldGUgbC5lcnJvcnMsbH0sZmFjdG9yT3V0QnJhY2VzOkMsbm9ybWFsaXplVG9rZW5zOmZ1bmN0aW9uKGUpe2Zvcih2YXIgdD0wO3Q8ZS5sZW5ndGg7dCsrKWVbdF0ucGFyc2UmJmVbdF0ucGFyc2UoKTtyZXR1cm4gZX0sZmxpcDpmdW5jdGlvbihlKXt2YXIgdD1mdW5jdGlvbihlKXtmb3IodmFyIHQsaT0wLHM9MSxsPTIsYz0zLGg9aSx1PTAscD0wO3A8ZS5sZW5ndGg7cCsrKXt2YXIgXz1lW3BdCjtpZighKF8gaW5zdGFuY2VvZiBuKSlzd2l0Y2goaCl7Y2FzZSBpOmlmKCEoXyBpbnN0YW5jZW9mIGcmJjE9PStfLnZhbHVlKSlyZXR1cm4hMTtoPXM7YnJlYWs7Y2FzZSBzOmlmKCEoaD09PXMmJl8gaW5zdGFuY2VvZiBkKSlyZXR1cm4hMTtoPWwsdD1wKzE7YnJlYWs7Y2FzZSBsOmlmKF8gaW5zdGFuY2VvZiByKWg9Yyx1PTE7ZWxzZSBpZihfIGluc3RhbmNlb2YgYSlyZXR1cm4hMTticmVhaztjYXNlIGM6XyBpbnN0YW5jZW9mIHI/dSsrOl8gaW5zdGFuY2VvZiBvJiYtLXU8PTAmJihoPWwpfX1yZXR1cm4gZS5zbGljZSh0KX0oZSk7cmV0dXJuIEModHx8W25ldyBnKCIxIiksbmV3IGQsbmV3IHJdLmNvbmNhdChlKS5jb25jYXQobmV3IG8pKX0saGFzQmF0c1N5bWJvbHM6ZnVuY3Rpb24oZSl7cmV0dXJuIHgoZSxbIkJBVFMiXSl9LGhhc0VvZFN5bWJvbHM6ZnVuY3Rpb24oZSl7cmV0dXJuKGU9VChlKSkmJi0xIT09ZS50b1VwcGVyQ2FzZSgpLmluZGV4T2YoIl9FT0QiKX0saGFzQ2h4anB5U3ltYm9sczpmdW5jdGlvbihlKXtyZXR1cm4geChlLFsiQ0hYSlBZIl0pfSxoYXNGcmVlRGVsYXlTeW1ib2xzOmZ1bmN0aW9uKGUpe3JldHVybiB4KGUscHJvLmdldFByb2R1Y3RzQnlUeXBlKHByby5QUk9EVUNUX1RZUEVTLmV4Y2hhbmdlKS5tYXAoKGZ1bmN0aW9uKGUpe3JldHVybiBlLmV4Y2hhbmdlLnRvVXBwZXJDYXNlKCkrIl9ETFkifSkpKX0sZ2V0RXhjaGFuZ2U6VCxnZXRFeGNoYW5nZXM6UCxpc0V4Y2hhbmdlOmZ1bmN0aW9uKGUsdCl7cmV0dXJuISEoZT1UKGUpKSYmZS5zdWJzdHJpbmcoMCx0Lmxlbmd0aCk9PT10fSxTeW1ib2xUb2tlbjptLEluY29tcGxldGVTeW1ib2xUb2tlbjpTLE51bWJlclRva2VuOmcsQmluYXJ5T3BlcmF0b3JUb2tlbjphLE9wZW5CcmFjZVRva2VuOnIsQ2xvc2VCcmFjZVRva2VuOm8sdGlja2VyOmZ1bmN0aW9uKGUpe3JldHVybiBuZXcgbShlKS50aWNrZXIoKX0sc2hvcnROYW1lOmZ1bmN0aW9uKGUpe2lmKCJzdHJpbmciIT10eXBlb2YgZSl0aHJvdyBuZXcgVHlwZUVycm9yKCJleHByZXNzaW9uIG11c3QgYmUgYSBzdHJpbmciKTt2YXIgdD1DKHcoYihlKSkpO3JldHVybiB0LmZvckVhY2goKGZ1bmN0aW9uKGUpe2UgaW5zdGFuY2VvZiBtJiZlLmV4Y2hhbmdlKG51bGwpfSkpLE0odCl9LG5vcm1hbGl6ZTpmdW5jdGlvbihlKXtpZigic3RyaW5nIiE9dHlwZW9mIGUpdGhyb3cgbmV3IFR5cGVFcnJvcigiZXhwcmVzc2lvbiBtdXN0IGJlIGEgc3RyaW5nIik7cmV0dXJuIE0oQyh3KGIoZSkpKSl9fX0oKTtlLmV4cG9ydHM9aX0sODc0MzA2KGUsdCxpKXsidXNlIHN0cmljdCI7aS5kKHQse1ZlcnNpb246KCk9Pm59KTt2YXIgcz1pKDEzODYzOCk7Y2xhc3Mgbntjb25zdHJ1Y3RvcihlLHQpe3RoaXMuX21ham9yPWUsdGhpcy5fbWlub3I9dH1tYWpvcigpe3JldHVybiB0aGlzLl9tYWpvcn1taW5vcigpe3JldHVybiB0aGlzLl9taW5vcn1pc1plcm8oKXtyZXR1cm4gMD09PXRoaXMuX21ham9yJiYwPT09dGhpcy5fbWlub3J9dG9TdHJpbmcoKXtyZXR1cm4gdGhpcy5fbWFqb3IrIi4iK3RoaXMuX21pbm9yfWNvbXBhcmVUbyhlKXtyZXR1cm4gdGhpcy5fbWFqb3I8ZS5fbWFqb3I/LTE6dGhpcy5fbWFqb3I+ZS5fbWFqb3I/MTp0aGlzLl9taW5vcjxlLl9taW5vcj8tMTp0aGlzLl9taW5vcj5lLl9taW5vcj8xOjB9aXNMZXNzKGUpe3JldHVybiB0aGlzLmNvbXBhcmVUbyhlKTwwfWlzTGVzc09yRXF1YWwoZSl7cmV0dXJuIHRoaXMuY29tcGFyZVRvKGUpPD0wfWlzRXF1YWwoZSl7cmV0dXJuIDA9PT10aGlzLmNvbXBhcmVUbyhlKX1pc0dyZWF0ZXIoZSl7cmV0dXJuIHRoaXMuY29tcGFyZVRvKGUpPjB9aXNHcmVhdGVyT3JFcXVhbChlKXtyZXR1cm4gdGhpcy5jb21wYXJlVG8oZSk+PTB9c3RhdGljIHBhcnNlKGUpe2lmKGUgaW5zdGFuY2VvZiBuKXJldHVybiBuZXcgbihlLm1ham9yKCksZS5taW5vcigpKTtpZigibnVtYmVyIj09dHlwZW9mIGUpcmV0dXJuKDAscy5hc3NlcnQpKE1hdGguZmxvb3IoZSk9PT1lLCJWZXJzaW9uIHNob3VsZCBub3QgYmUgYSBmbG9hdCBudW1iZXIiKSxuZXcgbihlLDApO2lmKCJzdHJpbmciPT10eXBlb2YgZSl7Y29uc3QgdD1lLnNwbGl0KCIuIik7aWYoMT09PXQubGVuZ3RoKXtjb25zdCBpPXBhcnNlSW50KHRbMF0sMTApO3JldHVybigwLHMuYXNzZXJ0KSghaXNOYU4oaSksIkJhZCB2ZXJzaW9uIHN0cmluZzogIitlKSxuZXcgbihpLDApfWlmKDI9PT10Lmxlbmd0aCl7Y29uc3QgaT1wYXJzZUludCh0WzBdLDEwKTsoMCxzLmFzc2VydCkoIWlzTmFOKGkpLCJCYWQgdmVyc2lvbiBzdHJpbmc6ICIrZSk7Y29uc3Qgcj1wYXJzZUludCh0WzFdLDEwKTtyZXR1cm4oMCxzLmFzc2VydCkoIWlzTmFOKHIpLCJCYWQgdmVyc2lvbiBzdHJpbmc6ICIrZSksbmV3IG4oaSxyKX10aHJvdyBuZXcgRXJyb3IoIkJhZCB2ZXJzaW9uIHN0cmluZyAob25lIGRvdCBleHBlY3RlZCk6ICIrZSl9dGhyb3cgbmV3IEVycm9yKCJCYWQgdmVyc2lvbjogIitlKX19bi5aRVJPPW5ldyBuKDAsMCl9LDE1OTUxMyhlLHQsaSl7InVzZSBzdHJpY3QiO2kuZCh0LHtnZXRRdW90ZVNlc3Npb25JbnN0YW5jZTooKT0+YX0pO3ZhciBzPWkoOTI3NTkzKSxuPWkoNzU1NjI3KSxyPWkoMTUwMTUwKTtjb25zdCBvPXt9O2Z1bmN0aW9uIGEoZT0iZnVsbCIpe3JldHVybiBvW2VdfHxmdW5jdGlvbihlPSJmdWxsIix0KXtvW2VdPXR9KGUsbmV3IHMuUXVvdGVTZXNzaW9uTXVsdGlwbGV4ZXIoe25hbWU6ZSxhcGk6d2luZG93LkNoYXJ0QXBpSW5zdGFuY2UsZmllbGRzOmxbZV0sZXh0ZW5zaW9uczp7Zm9ybWF0dGVyOmU9Pm5ldyBjKGUpLmZvcm1hdHRlcixzbmFwc2hvdDplPT5uZXcgaChlKS5zbmFwc2hvdH19KSksb1tlXX1jb25zdCBsPXsKc2ltcGxlOlsiYmFzZS1jdXJyZW5jeS1sb2dvaWQiLCJsb2dvIiwiY2giLCJjaHAiLCJjdXJyZW5jeS1sb2dvaWQiLCJjdXJyZW5jeV9jb2RlIiwiY3VycmVuY3lfaWQiLCJiYXNlX2N1cnJlbmN5X2lkIiwiY3VycmVudF9zZXNzaW9uIiwiZGVzY3JpcHRpb24iLCJleGNoYW5nZSIsImZvcm1hdCIsImZyYWN0aW9uYWwiLCJpc190cmFkYWJsZSIsImxhbmd1YWdlIiwibG9jYWxfZGVzY3JpcHRpb24iLCJsaXN0ZWRfZXhjaGFuZ2UiLCJsb2dvaWQiLCJscCIsImxwX3RpbWUiLCJtaW5tb3YiLCJtaW5tb3ZlMiIsIm9yaWdpbmFsX25hbWUiLCJwcmljZXNjYWxlIiwicHJvX25hbWUiLCJzaG9ydF9uYW1lIiwidHlwZSIsInR5cGVzcGVjcyIsInVwZGF0ZV9tb2RlIiwidm9sdW1lIiwidmFyaWFibGVfdGlja19zaXplIiwidmFsdWVfdW5pdF9pZCIsInVuaXRfaWQiLCJtZWFzdXJlIl19O2wuc2ltcGxlRGV0YWlsZWQ9Wy4uLmwuc2ltcGxlLCJhc2siLCJiaWQiLCJmdW5kYW1lbnRhbHMiLCJoaWdoX3ByaWNlIiwiaXNfdHJhZGFibGUiLCJsb3dfcHJpY2UiLCJvcGVuX3ByaWNlIiwicHJldl9jbG9zZV9wcmljZSIsInJjaCIsInJjaHAiLCJydGMiLCJydGNfdGltZSIsInN0YXR1cyIsImJhc2ljX2Vwc19uZXRfaW5jb21lIiwiYmV0YV8xX3llYXIiLCJlYXJuaW5nc19wZXJfc2hhcmVfYmFzaWNfdHRtIiwiaW5kdXN0cnkiLCJtYXJrZXRfY2FwX2Jhc2ljIiwicHJpY2VfZWFybmluZ3NfdHRtIiwic2VjdG9yIiwidm9sdW1lIiwiZGl2aWRlbmRzX3lpZWxkIiwidGltZXpvbmUiXSxsLmZ1bGw9W10sbC53YXRjaGxpc3Q9Wy4uLmwuc2ltcGxlLCJyY2hwIiwibmNocCIsInJ0YyIsImNvdW50cnlfY29kZSIsInByb3ZpZGVyX2lkIiwiZGl2aWRlbmRzX2F2YWlsYWJpbGl0eSIsImZpbmFuY2lhbHNfYXZhaWxhYmlsaXR5IiwiZWFybmluZ3NfYXZhaWxhYmlsaXR5Il0sbC5wb3J0Zm9saW89WyJwcm9fbmFtZSIsInNob3J0X25hbWUiLCJleGNoYW5nZSIsImxpc3RlZF9leGNoYW5nZSIsImRlc2NyaXB0aW9uIiwibG9jYWxfZGVzY3JpcHRpb24iLCJsYW5ndWFnZSIsInNlY3RvciIsInR5cGUiLCJ0eXBlc3BlY3MiLCJpbmR1c3RyeSIsImN1cnJlbmN5X2NvZGUiLCJjdXJyZW5jeV9pZCIsImNoIiwiY2hwIiwibG9nbyIsImxvZ29pZCIsImN1cnJlbmN5LWxvZ29pZCIsImJhc2UtY3VycmVuY3ktbG9nb2lkIiwiZWFybmluZ3NfcGVyX3NoYXJlX2ZvcmVjYXN0X25leHRfZnEiLCJlYXJuaW5nc19yZWxlYXNlX25leHRfZGF0ZSIsImVhcm5pbmdzX3JlbGVhc2VfZGF0ZSIsImVhcm5pbmdzX3Blcl9zaGFyZV9mcSIsImxwIiwiZnJhY3Rpb25hbCIsIm1pbm1vdiIsIm1pbm1vdmUyIiwicHJpY2VzY2FsZSIsInZvbHVtZSIsImF2ZXJhZ2Vfdm9sdW1lIiwibWFya2V0X2NhcF9jYWxjIiwibWFya2V0X2NhcF9iYXNpYyIsInRvdGFsX3JldmVudWUiLCJlYXJuaW5nc19wZXJfc2hhcmVfYmFzaWNfdHRtIiwicHJpY2VfZWFybmluZ3NfdHRtIiwiYmV0YV8xX3llYXIiLCJkcHNfY29tbW9uX3N0b2NrX3ByaW1faXNzdWVfZnkiLCJkaXZpZGVuZHNfeWllbGQiLCJmdW5kYW1lbnRhbF9jdXJyZW5jeV9jb2RlIiwicmF0ZXNfbWMiLCJyYXRlc19meSIsInJhdGVzX3R0bSIsImZvcm1hdCIsInZhbHVlX3VuaXRfaWQiLCJ1bml0X2lkIiwibWVhc3VyZSJdLGwubm90ZXM9WyJzaG9ydF9uYW1lIiwicHJvX25hbWUiLCJsb2dvaWQiLCJjdXJyZW5jeS1sb2dvaWQiLCJiYXNlLWN1cnJlbmN5LWxvZ29pZCIsImxvZ28iLCJzeW1ib2wtcHJpbWFyeW5hbWUiLCJ0eXBlIiwidHlwZXNwZWNzIl0sbC5lc3RpbWF0ZXM9WyJmdW5kYW1lbnRhbF9kYXRhIiwidHlwZSIsInR5cGVzcGVjcyIsImVhcm5pbmdzX3Blcl9zaGFyZV9mb3JlY2FzdF9uZXh0X3N5bWJvbF9jdXJyZW5jeV9mcSIsImVhcm5pbmdzX3JlbGVhc2VfbmV4dF9hbGlnbmVkX2RhdGUiLCJlYXJuaW5nc19yZWxlYXNlX25leHRfY2FsZW5kYXJfZGF0ZSIsImVhcm5pbmdzX3JlbGVhc2VfbmV4dF9kYXRlIl0sbC5lY29ub21pYz1bInJlZmVyZW5jZS1sYXN0LXBlcmlvZCIsImxwIiwiY3VycmVuY3lfY29kZSIsInZhbHVlX3VuaXRfaWQiLCJ1bml0X2lkIiwibWVhc3VyZSJdLGwub3B0aW9ucz1bImFzayIsImJpZCIsImxwIiwidm9sdW1lIiwiY2giLCJjaHAiXTtjbGFzcyBje2NvbnN0cnVjdG9yKGUpe3RoaXMuX2Zvcm1hdHRlclZhbHVlc0NhY2hlPXt9LHRoaXMuX3dhaXRpbmdGb3JGb3JtYXR0ZXJzPXt9LHRoaXMuZm9ybWF0dGVyPShlLHQpPT57aWYodGhpcy5fd2FpdGluZ0ZvckZvcm1hdHRlcnNbZV0pcmV0dXJuIHRoaXMuX3dhaXRpbmdGb3JGb3JtYXR0ZXJzW2VdO2Z1bmN0aW9uIGkoZSl7Y29uc3QgaT10JiYhZS5mcmFjdGlvbmFsPzE6ZS5taW5tb3Y7cmV0dXJuIG5ldyBuLlByaWNlRm9ybWF0dGVyKHtwcmljZVNjYWxlOmUucHJpY2VzY2FsZSxtaW5Nb3ZlOmksZnJhY3Rpb25hbDplLmZyYWN0aW9uYWwsbWluTW92ZTI6ZS5taW5tb3ZlMn0pfWNvbnN0IHM9bmV3IFByb21pc2UoKCh0LHMpPT57aWYodGhpcy5fZm9ybWF0dGVyVmFsdWVzQ2FjaGVbZV0pdChpKHRoaXMuX2Zvcm1hdHRlclZhbHVlc0NhY2hlW2VdKSk7ZWxzZXtjb25zdCBuPSgwLHIuZ3VpZCkoKTt0aGlzLl9tdWx0aXBsZXhlci5zdWJzY3JpYmUobixbZV0sKHI9PnsiZXJyb3IiPT09ci5zdGF0dXMmJih0aGlzLl93YWl0aW5nRm9yRm9ybWF0dGVyc1tlXT1udWxsLHMoIlF1b3RlcyBzbmFwc2hvdCBpcyBub3QgcmVjZWl2ZWQiKSksZnVuY3Rpb24oZSl7cmV0dXJuIGUmJm51bGwhPWUucHJpY2VzY2FsZSYmbnVsbCE9ZS5taW5tb3Z9KHIudmFsdWVzKSYmKHRoaXMuX3dhaXRpbmdGb3JGb3JtYXR0ZXJzW2VdPW51bGwsdGhpcy5fZm9ybWF0dGVyVmFsdWVzQ2FjaGVbZV09ci52YWx1ZXMsdChpKHIudmFsdWVzKSksdGhpcy5fbXVsdGlwbGV4ZXIudW5zdWJzY3JpYmUobixlKSl9KSl9fSkpO3JldHVybiB0aGlzLl93YWl0aW5nRm9yRm9ybWF0dGVyc1tlXT1zLHN9LHRoaXMuX211bHRpcGxleGVyPWV9fWNsYXNzIGh7Y29uc3RydWN0b3IoZSl7dGhpcy5fc25hcHNob3RWYWx1ZXNDYWNoZT17fSwKdGhpcy5fd2FpdGluZ0ZvclNuYXBzaG90PXt9LHRoaXMuc25hcHNob3Q9ZT0+e2lmKHRoaXMuX3dhaXRpbmdGb3JTbmFwc2hvdFtlXSlyZXR1cm4gdGhpcy5fd2FpdGluZ0ZvclNuYXBzaG90W2VdO2NvbnN0IHQ9bmV3IFByb21pc2UoKCh0LGkpPT57aWYodGhpcy5fc25hcHNob3RWYWx1ZXNDYWNoZVtlXSl0KHRoaXMuX3NuYXBzaG90VmFsdWVzQ2FjaGVbZV0pO2Vsc2V7Y29uc3Qgcz0oMCxyLmd1aWQpKCk7dGhpcy5fbXVsdGlwbGV4ZXIuc3Vic2NyaWJlKHMsW2VdLChuPT57ImVycm9yIj09PW4uc3RhdHVzJiYodGhpcy5fd2FpdGluZ0ZvclNuYXBzaG90W2VdPW51bGwsaSgiUXVvdGVzIHNuYXBzaG90IGlzIG5vdCByZWNlaXZlZCIpKTtjb25zdCByPW4udmFsdWVzO3ImJnIubWlubW92JiZyLnByaWNlc2NhbGUmJnIuZGVzY3JpcHRpb24mJih0aGlzLl93YWl0aW5nRm9yU25hcHNob3RbZV09bnVsbCx0aGlzLl9zbmFwc2hvdFZhbHVlc0NhY2hlW2VdPXIsdChyKSx0aGlzLl9tdWx0aXBsZXhlci51bnN1YnNjcmliZShzLGUpKX0pKX19KSk7cmV0dXJuIHRoaXMuX3dhaXRpbmdGb3JTbmFwc2hvdFtlXT10LHR9LHRoaXMuX211bHRpcGxleGVyPWV9fSJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93JiYod2luZG93LmdldFF1b3RlU2Vzc2lvbkluc3RhbmNlPWEpfSw1Njk4NDYoZSx0LGkpeyJ1c2Ugc3RyaWN0IjtpLmQodCx7Y3JlYXRlQWxpYXNTeW1ib2xJbmZvV1Y6KCk9PnUsY3JlYXRlU3ltYm9sT3JBbGlhc1dWOigpPT5wLGdldFN5bWJvbEFsaWFzU2VydmljZTooKT0+ZH0pO3ZhciBzPWkoNjAxODQxKSxuPWkoOTMwNTY2KSxyPWkoOTQ4MzgwKSxvPWkoOTUyOTAwKSxhPWkoMjQxOTU2KTtmdW5jdGlvbiBsKGUpe3JldHVybiJTeW1ib2xBbGlhc1NlcnZpY2UiKyhlP2BfJHtlfWA6IiIpfWNsYXNzIGN7Y29uc3RydWN0b3IoZSl7dGhpcy5fb25DaGFuZ2VkPW5ldyByLkRlbGVnYXRlO2NvbnN0IHQ9ZS5zdGF0ZT8/bi5nZXRKU09OKGwoZT8uaWQpKT8/W107dGhpcy5fYWxpYXNlc0J5UHJvTmFtZT1uZXcgTWFwKHQpLHRoaXMuX2FsaWFzZXNCeU5hbWU9bmV3IE1hcChBcnJheS5mcm9tKHRoaXMuX2FsaWFzZXNCeVByb05hbWUudmFsdWVzKCkpLm1hcCgoZT0+W2UuYWxpYXNOYW1lLGVdKSkpLHRoaXMuX2NvbnRleHQ9ZX1nZXRBbGxBbGlhc2VzKCl7cmV0dXJuIEFycmF5LmZyb20odGhpcy5fYWxpYXNlc0J5UHJvTmFtZS52YWx1ZXMoKSl9Z2V0QWxpYXNCeVByb05hbWUoZSl7cmV0dXJuIHRoaXMuX2FsaWFzZXNCeVByb05hbWUuZ2V0KGUpPz9udWxsfWdldEFsaWFzQnlOYW1lKGUpe3JldHVybiB0aGlzLl9hbGlhc2VzQnlOYW1lLmdldChlKT8/bnVsbH1hZGRBbGlhcyhlKXtpZih0aGlzLl9hbGlhc2VzQnlOYW1lLmhhcyhlLmFsaWFzTmFtZSkpdGhyb3cgbmV3IEVycm9yKGBBbGlhcyAke2UuYWxpYXNOYW1lfSBhbHJlYWR5IGV4aXN0c2ApO2lmKHRoaXMuX2FsaWFzZXNCeVByb05hbWUuaGFzKGUuc3ltYm9sUHJvTmFtZSkpdGhyb3cgbmV3IEVycm9yKGBBbGlhcyBmb3Igc3ltYm9sICR7ZS5zeW1ib2xQcm9OYW1lfSBhbHJlYWR5IGV4aXN0c2ApO3RoaXMuX2FsaWFzZXNCeVByb05hbWUuc2V0KGUuc3ltYm9sUHJvTmFtZSxlKSx0aGlzLl9hbGlhc2VzQnlOYW1lLnNldChlLmFsaWFzTmFtZSxlKSx0aGlzLl9vbkNoYW5nZWQuZmlyZShlLnN5bWJvbFByb05hbWUsZS5hbGlhc05hbWUsZSksdGhpcy5fc2F2ZSgpfXVwZGF0ZUFsaWFzKGUpe2NvbnN0IHQ9dGhpcy5fYWxpYXNlc0J5TmFtZS5nZXQoZS5hbGlhc05hbWUpO2lmKCF0KXRocm93IG5ldyBFcnJvcihgQWxpYXMgJHtlLmFsaWFzTmFtZX0gZG9lcyBub3QgZXhpc3RgKTtpZigic3ltYm9sUHJvTmFtZSJpbiBlKXRocm93IG5ldyBFcnJvcigiQ2Fubm90IHVwZGF0ZSBhbGlhcyBwcm8gbmFtZSIpOygwLHMubWVyZ2UpKHQsZSksdGhpcy5fYWxpYXNlc0J5UHJvTmFtZS5zZXQodC5zeW1ib2xQcm9OYW1lLHQpLHRoaXMuX2FsaWFzZXNCeU5hbWUuc2V0KHQuYWxpYXNOYW1lLHQpLHRoaXMuX29uQ2hhbmdlZC5maXJlKHQuc3ltYm9sUHJvTmFtZSx0LmFsaWFzTmFtZSx0KSx0aGlzLl9zYXZlKCl9cmVtb3ZlQWxpYXMoZSl7Y29uc3QgdD10aGlzLl9hbGlhc2VzQnlOYW1lLmdldChlKTtpZighdCl0aHJvdyBuZXcgRXJyb3IoYEFsaWFzICR7ZX0gbm90IGZvdW5kYCk7dGhpcy5fYWxpYXNlc0J5UHJvTmFtZS5kZWxldGUodC5zeW1ib2xQcm9OYW1lKSx0aGlzLl9hbGlhc2VzQnlOYW1lLmRlbGV0ZShlKSx0aGlzLl9vbkNoYW5nZWQuZmlyZShlLHQuc3ltYm9sUHJvTmFtZSxudWxsKSx0aGlzLl9zYXZlKCl9b25BbGlhc0NoYW5nZWQoKXtyZXR1cm4gdGhpcy5fb25DaGFuZ2VkfXN0YXRlKGUpe2NvbnN0IHQ9bmV3IFNldChlPz9bXSk7cmV0dXJuIEFycmF5LmZyb20odGhpcy5fYWxpYXNlc0J5UHJvTmFtZS5lbnRyaWVzKCkpLmZpbHRlcigoKFtpXSk9PiFlfHx0LmhhcyhpKSkpfV9zYXZlKCl7bi5zZXRKU09OKGwodGhpcy5fY29udGV4dD8uaWQpLEFycmF5LmZyb20odGhpcy5fYWxpYXNlc0J5UHJvTmFtZS5lbnRyaWVzKCkpKX19Y29uc3QgaD1uZXcgTWFwO2Z1bmN0aW9uIGQoZSl7Y29uc3QgdD1lPz97aWQ6IiJ9O2xldCBpPWguZ2V0KHQuaWQpO3JldHVybiBpfHwoaT1uZXcgYyh0KSksaC5zZXQodC5pZCxpKSxpfWZ1bmN0aW9uIHUoZSx0KXtyZXR1cm4gdD8oMCxvLmNvbWJpbmUpKCgoZSxpKT0+e2lmKCFlKXJldHVybiBudWxsO2NvbnN0IHM9dC5nZXRBbGlhc0J5UHJvTmFtZShlLnByb19uYW1lKTtyZXR1cm57Li4uZSxuYW1lOnM/LmFsaWFzTmFtZT8/ZS5uYW1lLGRlc2NyaXB0aW9uOnM/LmRlc2NyaXB0aW9uPz9lLmRlc2NyaXB0aW9uLGxvY2FsX2Rlc2NyaXB0aW9uOnM/LmRlc2NyaXB0aW9uPz9lLmxvY2FsX2Rlc2NyaXB0aW9uLC4uLnM/LmZvcm1hdHRpbmdPcHRpb25zfX0pLGUsKDAsYS5jcmVhdGVXVkZyb21HZXR0ZXJBbmRTdWJzY3JpcHRpb24pKChlPT4oZT8/MCkrMSksdC5vbkFsaWFzQ2hhbmdlZCgpKS5vd25lcnNoaXAoKSkub3duZXJzaGlwKCk6ZX1mdW5jdGlvbiBwKGUsdCxpKXtyZXR1cm4gaT8oMCxvLmNvbWJpbmUpKCgoZSx0LHMpPT57CmlmKCF0KXJldHVybiBlO2NvbnN0IG49aS5nZXRBbGlhc0J5UHJvTmFtZSh0LnByb19uYW1lKTtyZXR1cm4gbj8uYWxpYXNOYW1lPz9lfSksZSx0LCgwLGEuY3JlYXRlV1ZGcm9tR2V0dGVyQW5kU3Vic2NyaXB0aW9uKSgoZT0+KGU/PzApKzEpLGkub25BbGlhc0NoYW5nZWQoKSkub3duZXJzaGlwKCkpLm93bmVyc2hpcCgpOmV9fSw1ODU5MjcoZSx0LGkpeyJ1c2Ugc3RyaWN0Ijt2YXIgcztpLmQodCx7U2NyaXB0VHlwZTooKT0+c30pLGZ1bmN0aW9uKGUpe2VbZS5JbmRpY2F0b3I9MV09IkluZGljYXRvciIsZVtlLlN0cmF0ZWd5PTJdPSJTdHJhdGVneSIsZVtlLkxpYnJhcnk9M109IkxpYnJhcnkifShzfHwocz17fSkpfSw2ODY1MTMoZSx0LGkpeyJ1c2Ugc3RyaWN0IjtpLmQodCx7Z2V0UHVibGljYXRpb25UeXBlOigpPT5vLGltcG9ydEVudHJ5Q29tcG9uZW50OigpPT5hfSk7dmFyIHM9aSg1ODU5MjcpO2NvbnN0IG49bmV3IFNldChbcy5TY3JpcHRUeXBlLkluZGljYXRvcixzLlNjcmlwdFR5cGUuTGlicmFyeSxzLlNjcmlwdFR5cGUuU3RyYXRlZ3ksImluZGljYXRvciIsImxpYnJhcnkiLCJzdHJhdGVneSJdKTt2YXIgcjtmdW5jdGlvbiBvKHtpc1ZpZGVvOmUsaXNTY3JpcHQ6dCxzY3JpcHRUeXBlOml9KXtzd2l0Y2goITApe2Nhc2UgZTpyZXR1cm4idmlkZW8iO2Nhc2UgdDpjYXNlIG4uaGFzKGl8fCIiKTpyZXR1cm4ic2NyaXB0IjtkZWZhdWx0OnJldHVybiJpZGVhIn19YXN5bmMgZnVuY3Rpb24gYShlKXtzd2l0Y2goZSl7Y2FzZSJ2aWRlbyI6cmV0dXJuIFByb21pc2UuYWxsKFtpLmUoMzE2NjEpLGkuZSg2MDA2MiksaS5lKDQ2OTA3KSxpLmUoMjAzNTQpLGkuZSgxMjM4NSksaS5lKDk0OTQ4KSxpLmUoMzYyMjIpLGkuZSgyOTUzNiksaS5lKDk0MjMyKSxpLmUoMzI4MTYpLGkuZSg1MTg0KSxpLmUoNTYyNTIpLGkuZSg4MzQ4OCksaS5lKDE5NTk1KSxpLmUoMTk3ODcpLGkuZSg2Nzc5OSksaS5lKDExNDYxKSxpLmUoMjQ1ODEpLGkuZSg5NjU4NyksaS5lKDExMjE4KSxpLmUoODY0MjMpLGkuZSgzNzUxMyksaS5lKDQwODM1KSxpLmUoOTgwODQpLGkuZSg5MzQyMSksaS5lKDc4NjUyKSxpLmUoNDk1ODgpLGkuZSg3NDM4MSksaS5lKDUwMjIxKSxpLmUoMTU1MjYpLGkuZSg2MTgyMSksaS5lKDU3MzAwKSxpLmUoNTI2ODApLGkuZSgzNTc5NCksaS5lKDMyNzQ4KSxpLmUoMTY3NiksaS5lKDY2MjcwKSxpLmUoODMwNDEpLGkuZSg1MTY4MiksaS5lKDcxNDgyKSxpLmUoMzc3NjcpLGkuZSg5NzY2MCksaS5lKDQ2NTkxKSxpLmUoNzE1MjgpLGkuZSgzMzEyMCksaS5lKDQ0NzcpLGkuZSgxNTA5KSxpLmUoNTUzMzYpLGkuZSg5MjM5MyksaS5lKDIwMjcxKSxpLmUoOTE2NzgpLGkuZSgyNzczNiksaS5lKDgwNzMxKSxpLmUoNzYzMjkpLGkuZSg2OTc0NyksaS5lKDI3NTQ5KSxpLmUoNjI4MDYpLGkuZSg1MjkyMCksaS5lKDM4ODY4KSxpLmUoMTY0MjEpLGkuZSgxNDY0MCksaS5lKDQwNDIpLGkuZSgzNjM1NiksaS5lKDIyMTQ0KSxpLmUoODM1MjkpLGkuZSg1OTgzMCksaS5lKDU5NDM3KSxpLmUoNzA3NTYpLGkuZSg3NDU2KSxpLmUoMjk5NDMpLGkuZSg2Mjg5MiksaS5lKDIyNDY0KSxpLmUoODQzMzUpLGkuZSgyMDEzKSxpLmUoMzMxMCksaS5lKDU3NTYpLGkuZSg3NDQ2MSksaS5lKDgzMjYxKSxpLmUoMzIzODcpLGkuZSg3MDcxMiksaS5lKDg3ODU4KSxpLmUoNTk2MTkpLGkuZSg4MTg2OCksaS5lKDIzNzQzKSxpLmUoODk0NiksaS5lKDQ4ODU0KSxpLmUoNjExODMpLGkuZSgxOTQ2MyksaS5lKDMwNDIxKSxpLmUoMjc5MTMpLGkuZSgyOTg0NCksaS5lKDk2MDc4KSxpLmUoMzM2NyksaS5lKDM4MDE2KSxpLmUoODY0MTMpXSkudGhlbihpLmJpbmQoaSwzMzYyMzgpKS50aGVuKChlPT5lLlB1YmxpY2F0aW9uVmlld1ZpZGVvKSk7Y2FzZSJzY3JpcHQiOgpyZXR1cm4gUHJvbWlzZS5hbGwoW2kuZSgxNDY5MyksaS5lKDg0MzA2KSxpLmUoNjAwNjIpLGkuZSg0NjkwNyksaS5lKDIwMzU0KSxpLmUoMTIzODUpLGkuZSg4MTA3MiksaS5lKDk0OTQ4KSxpLmUoMjM2MjQpLGkuZSgzNjIyMiksaS5lKDI5NTM2KSxpLmUoOTQyMzIpLGkuZSgzMjgxNiksaS5lKDUxODQpLGkuZSg1NjI1MiksaS5lKDgzNDg4KSxpLmUoMTk1OTUpLGkuZSgxOTc4NyksaS5lKDY3Nzk5KSxpLmUoMTE0NjEpLGkuZSgyNDU4MSksaS5lKDk2NTg3KSxpLmUoMTEyMTgpLGkuZSg4NjQyMyksaS5lKDM3NTEzKSxpLmUoODU3OSksaS5lKDk1MDQpLGkuZSg0MDgzNSksaS5lKDk4MDg0KSxpLmUoOTM0MjEpLGkuZSg3ODY1MiksaS5lKDQ5NTg4KSxpLmUoNDc2MzIpLGkuZSg3NDM4MSksaS5lKDUwMjIxKSxpLmUoMTU1MjYpLGkuZSg3MTQxNCksaS5lKDYxODIxKSxpLmUoNTczMDApLGkuZSg1MjY4MCksaS5lKDM1Nzk0KSxpLmUoMzI3NDgpLGkuZSgxNjc2KSxpLmUoNjYyNzApLGkuZSg5NzQ0KSxpLmUoODMwNDEpLGkuZSg1MTY4MiksaS5lKDcxNDgyKSxpLmUoMzc3NjcpLGkuZSgxOTUxMyksaS5lKDk3NjYwKSxpLmUoNDY1OTEpLGkuZSg3MTUyOCksaS5lKDMzMTIwKSxpLmUoNDQ3NyksaS5lKDE1MDkpLGkuZSg1NTMzNiksaS5lKDkyMzkzKSxpLmUoMjAyNzEpLGkuZSg5MTY3OCksaS5lKDI3NzM2KSxpLmUoODA3MzEpLGkuZSg3NjMyOSksaS5lKDY5NzQ3KSxpLmUoMjc1NDkpLGkuZSg2MjgwNiksaS5lKDUyOTIwKSxpLmUoMzg4NjgpLGkuZSgxNjQyMSksaS5lKDE0NjQwKSxpLmUoNDA0MiksaS5lKDM2MzU2KSxpLmUoMjIxNDQpLGkuZSg4MzUyOSksaS5lKDU5ODMwKSxpLmUoNTk0MzcpLGkuZSg3MDc1NiksaS5lKDc0NTYpLGkuZSgyOTk0MyksaS5lKDYyODkyKSxpLmUoMjI0NjQpLGkuZSg4NDMzNSksaS5lKDIwMTMpLGkuZSgzMzEwKSxpLmUoNTc1NiksaS5lKDI3NTEzKSxpLmUoMzIzODcpLGkuZSg3MDcxMiksaS5lKDg3ODU4KSxpLmUoNTk2MTkpLGkuZSg4MTg2OCksaS5lKDIzNzQzKSxpLmUoNDIyODgpLGkuZSg3NzU3OCksaS5lKDg5NDYpLGkuZSg0ODg1NCksaS5lKDYxMTgzKSxpLmUoMTk0NjMpLGkuZSgzMDQyMSksaS5lKDI3OTEzKSxpLmUoMjk4NDQpLGkuZSg5NjA3OCksaS5lKDMzNjcpLGkuZSgzODAxNiksaS5lKDcxNTY1KV0pLnRoZW4oaS5iaW5kKGksOTc5NDEzKSkudGhlbigoZT0+ZS5QdWJsaWNhdGlvblZpZXdTY3JpcHQpKTtjYXNlImlkZWEiOnJldHVybiBQcm9taXNlLmFsbChbaS5lKDE0NjkzKSxpLmUoODQzMDYpLGkuZSg2MDA2MiksaS5lKDQ2OTA3KSxpLmUoMjAzNTQpLGkuZSgxMjM4NSksaS5lKDgxMDcyKSxpLmUoOTQ5NDgpLGkuZSgyMzYyNCksaS5lKDM2MjIyKSxpLmUoMjk1MzYpLGkuZSg5NDIzMiksaS5lKDMyODE2KSxpLmUoNTE4NCksaS5lKDU2MjUyKSxpLmUoODM0ODgpLGkuZSgxOTU5NSksaS5lKDE5Nzg3KSxpLmUoNjc3OTkpLGkuZSgxMTQ2MSksaS5lKDI0NTgxKSxpLmUoOTY1ODcpLGkuZSgxMTIxOCksaS5lKDg2NDIzKSxpLmUoMzc1MTMpLGkuZSg4NTc5KSxpLmUoOTUwNCksaS5lKDQwODM1KSxpLmUoOTgwODQpLGkuZSg5MzQyMSksaS5lKDc4NjUyKSxpLmUoNDk1ODgpLGkuZSg0NzYzMiksaS5lKDc0MzgxKSxpLmUoNTAyMjEpLGkuZSgxNTUyNiksaS5lKDcxNDE0KSxpLmUoNjE4MjEpLGkuZSg1NzMwMCksaS5lKDUyNjgwKSxpLmUoMzU3OTQpLGkuZSgzMjc0OCksaS5lKDE2NzYpLGkuZSg2NjI3MCksaS5lKDk3NDQpLGkuZSg4MzA0MSksaS5lKDUxNjgyKSxpLmUoNzE0ODIpLGkuZSgzNzc2NyksaS5lKDE5NTEzKSxpLmUoOTc2NjApLGkuZSg0NjU5MSksaS5lKDcxNTI4KSxpLmUoMzMxMjApLGkuZSg0NDc3KSxpLmUoMTUwOSksaS5lKDU1MzM2KSxpLmUoOTIzOTMpLGkuZSgyMDI3MSksaS5lKDkxNjc4KSxpLmUoMjc3MzYpLGkuZSg4MDczMSksaS5lKDc2MzI5KSxpLmUoNjk3NDcpLGkuZSgyNzU0OSksaS5lKDYyODA2KSxpLmUoNTI5MjApLGkuZSgzODg2OCksaS5lKDE2NDIxKSxpLmUoMTQ2NDApLGkuZSg0MDQyKSxpLmUoMzYzNTYpLGkuZSgyMjE0NCksaS5lKDgzNTI5KSxpLmUoNTk4MzApLGkuZSg1OTQzNyksaS5lKDcwNzU2KSxpLmUoNzQ1NiksaS5lKDI5OTQzKSxpLmUoNjI4OTIpLGkuZSgyMjQ2NCksaS5lKDg0MzM1KSxpLmUoMjAxMyksaS5lKDMzMTApLGkuZSg1NzU2KSxpLmUoMjc1MTMpLGkuZSgzMjM4NyksaS5lKDcwNzEyKSxpLmUoODc4NTgpLGkuZSg1OTYxOSksaS5lKDgxODY4KSxpLmUoMjM3NDMpLGkuZSg0MjI4OCksaS5lKDc3NTc4KSxpLmUoODk0NiksaS5lKDQ4ODU0KSxpLmUoNjExODMpLGkuZSgxOTQ2MyksaS5lKDMwNDIxKSxpLmUoMjc5MTMpLGkuZSgyOTg0NCksaS5lKDk2MDc4KSxpLmUoMzM2NyksaS5lKDM4MDE2KSxpLmUoMTkyMTMpXSkudGhlbihpLmJpbmQoaSw0OTA2NjkpKS50aGVuKChlPT5lLlB1YmxpY2F0aW9uVmlld0lkZWEpKX19IWZ1bmN0aW9uKGUpe2UuSWRlYT0iaWRlYSIsZS5TY3JpcHQ9InNjcmlwdCIsZS5WaWRlbz0idmlkZW8ifShyfHwocj17fSkpfSwzODcxMDEoZSx0LGkpeyJ1c2Ugc3RyaWN0IjtpLmQodCx7c2hvd0RldGFpbHNEaWFsb2c6KCk9Pm99KTt2YXIgcz1pKDI5NjI2Mik7bGV0IG47Y2xhc3MgciBleHRlbmRzIHMuRGlhbG9nUmVuZGVyZXJ7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMuX2RpYWxvZz1udWxsLHRoaXMuX3Byb21pc2U9bnVsbCx0aGlzLl9zdWJzY3JpYmU9ZT0+e3RoaXMuX3NldFZpc2liaWxpdHkoZSl9fXNob3coZSl7CmNvbnN0IHQ9dGhpcy5fcHJvbWlzZT1Qcm9taXNlLmFsbChbaS5lKDkzNzQ1KSxpLmUoNjYwMDIpLGkuZSg4NDMwNiksaS5lKDI5Mjk2KSxpLmUoNTIzOTYpLGkuZSg2MDA2MiksaS5lKDQ2OTA3KSxpLmUoMjAzNTQpLGkuZSgxMzQ5MiksaS5lKDM3NzQ2KSxpLmUoMTIzODUpLGkuZSg4MTA3MiksaS5lKDIzNjI0KSxpLmUoMzYyMjIpLGkuZSgyOTUzNiksaS5lKDMyODE2KSxpLmUoNTE4NCksaS5lKDU2MjUyKSxpLmUoODM0ODgpLGkuZSgyNzUxNyksaS5lKDk1MDQpLGkuZSgxNzA4NyksaS5lKDk4MDg0KSxpLmUoNDk1ODgpLGkuZSgxMDM4NSksaS5lKDUyMDY1KSxpLmUoNDc2MzIpLGkuZSg2NjA1KSxpLmUoMzM1MTUpLGkuZSgxNDYyNSksaS5lKDcxNDE0KSxpLmUoNjU3KSxpLmUoODkyMDQpLGkuZSg5MTg1NSksaS5lKDQzNjQ0KSxpLmUoNTgwNTEpLGkuZSg2OTg2MSksaS5lKDU1MDExKSxpLmUoNDUzNjgpLGkuZSgzMDM3MyksaS5lKDIxNTgxKSxpLmUoNTE4ODApLGkuZSgxODQ3MiksaS5lKDQ3MDkyKSxpLmUoMjU4MDkpLGkuZSgxNzY5MyksaS5lKDIxMjQ1KSxpLmUoNTY4OSksaS5lKDI1NTYyKSxpLmUoMjYxMDApLGkuZSgyOTM0OCksaS5lKDM2OTg2KSxpLmUoNjMwMzMpLGkuZSgyODkzNiksaS5lKDQ3NTUxKSxpLmUoNzM5NjApLGkuZSgyNTExKSxpLmUoNjM3MjMpLGkuZSgyMDA4NSksaS5lKDM2NTIxKSxpLmUoMjcyMTcpLGkuZSgyMjQwNSksaS5lKDMyMzg3KSxpLmUoMzA2OTkpLGkuZSg3ODMxMiksaS5lKDQ0NzgwKSxpLmUoMTM4MDUpLGkuZSg0MjI4OCksaS5lKDY5Njk3KSxpLmUoODAyMDcpLGkuZSg5NzY0NyksaS5lKDgzOTM1KSxpLmUoNTMyOTcpLGkuZSgzOTYwNiksaS5lKDY3ODUzKSxpLmUoMzcxMDYpLGkuZSgzNzI1OSksaS5lKDc0OTEpLGkuZSg4MDkxMildKS50aGVuKGkuYmluZChpLDgyOTA5NykpLnRoZW4oKGk9Pnt0aGlzLl9wcm9taXNlPT09dCYmKHRoaXMuX2RpYWxvZyYmKHRoaXMuX2RpYWxvZy5oaWRlKCksdGhpcy5fZGlhbG9nLnZpc2libGUoKS51bnN1YnNjcmliZSh0aGlzLl9zdWJzY3JpYmUpKSx0aGlzLl9kaWFsb2c9bmV3IGkuRGV0YWlsc0RpYWxvZ1JlbmRlcmVyLHRoaXMuX2RpYWxvZy52aXNpYmxlKCkuc3Vic2NyaWJlKHRoaXMuX3N1YnNjcmliZSksdGhpcy5fZGlhbG9nLnNob3coZSkpfSkpfWhpZGUoKXt0aGlzLl9kaWFsb2c/LmhpZGUoKSx0aGlzLl9kaWFsb2c/LnZpc2libGUoKS51bnN1YnNjcmliZSh0aGlzLl9zdWJzY3JpYmUpfXN0YXRpYyBnZXRJbnN0YW5jZSgpe3JldHVybiBufHwobj1uZXcgciksbn19ZnVuY3Rpb24gbyhlKXtyLmdldEluc3RhbmNlKCkuc2hvdyhlKX19LDY1OTY0NyhlLHQsaSl7InVzZSBzdHJpY3QiO2kuZCh0LHtpc0RldGFpbHNSZWFkeTooKT0+c30pO2NvbnN0IHM9bmV3KGkoMjMyMzY0KS5XYXRjaGVkVmFsdWUpKCExKX0sNzI4NjM5KGUsdCxpKXsidXNlIHN0cmljdCI7aS5kKHQse2NyZWF0ZVN5bWJvbE5vdGU6KCk9PmMsc2hvd1N5bWJvbE5vdGVzOigpPT5sfSk7dmFyIHM9aSg1NTExOTMpLG49aSg2NTk2NDcpLHI9aSg5NzEwNTEpO2xldCBvPW51bGw7ZnVuY3Rpb24gYShlLHQpe2lmKG8mJm4uaXNEZXRhaWxzUmVhZHkudW5zdWJzY3JpYmUobyksbz0oKT0+e2NvbnN0IGk9d2luZG93Py53aWRnZXRiYXI/LmxheW91dD8uZ2V0V2lkZ2V0QnlUeXBlKCJkZXRhaWwiKT8ud2lkZ2V0T2JqZWN0O2kubmF2aWdhdGUoZSx0KX0sbi5pc0RldGFpbHNSZWFkeS52YWx1ZSgpKXJldHVybiBvKCksdm9pZChvPW51bGwpO24uaXNEZXRhaWxzUmVhZHkuc3Vic2NyaWJlKG8se29uY2U6ITB9KX1mdW5jdGlvbiBsKGU9bnVsbCx0KXtjb25zdCBpPSgwLHIucGF0aFRvR3JvdXApKGU/PyIiKTt0PygwLHMuc2hvd05vdGVzRGlhbG9nKShpKTphKGkpfWZ1bmN0aW9uIGMoZT1udWxsLHQpe2NvbnN0IGk9KDAsci5wYXRoVG9Hcm91cCkoZT8/IiIpKyI/bmV3PSIrcGVyZm9ybWFuY2Uubm93KCk7dCYmKDAscy5zaG93Tm90ZXNEaWFsb2cpKGkpLGEoaSl9fSw5NzEwNTEoZSx0LGkpeyJ1c2Ugc3RyaWN0IjtpLmQodCx7R1JPVVBfUEFUSF9QQVRURVJOOigpPT5uLE5PVEVTX1BBVEhfUEFUVEVSTjooKT0+cyxVTkFUVEVOREVEX1BBVEhfUEFUVEVSTjooKT0+cixwYXRoVG9Hcm91cDooKT0+b30pO2NvbnN0IHM9Ii9ub3Rlcy8iLG49Ii9ub3Rlcy9ncm91cHMvOnN5bWJvbC8iLHI9Ii9ub3Rlcy91bmF0dGVuZGVkLyI7ZnVuY3Rpb24gbyhlKXtyZXR1cm4gZT9uLnJlcGxhY2UoIjpzeW1ib2wiLGVuY29kZVVSSUNvbXBvbmVudChlKSk6cn19LDgyNzAxKGUsdCxpKXsidXNlIHN0cmljdCI7aS5kKHQse2F2YWlsYWJsZU9mZmVyczooKT0+bn0pO3ZhciBzPWkoMzg0MDE3KTtjb25zdCBuPW5ldyBjbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMuX2lzSW52YWxpZD0hMCx0aGlzLl9vZmZlcnM9e319cnVuT3JVcGRhdGUoZSl7dGhpcy5faXNJbnZhbGlkP3dpbmRvdy5yZXF1ZXN0SWRsZUNhbGxiYWNrP3dpbmRvdy5yZXF1ZXN0SWRsZUNhbGxiYWNrKCgoKT0+dGhpcy5fdXBkYXRlT2ZmZXJzKCkudGhlbihlKSkpOnNldFRpbWVvdXQoKCgpPT50aGlzLl91cGRhdGVPZmZlcnMoKS50aGVuKGUpKSwwKTplKHRoaXMuX29mZmVycyl9Z2V0RGF0YSgpe3JldHVybiB0aGlzLl9vZmZlcnN9aW52YWxpZGF0ZShlKXt0aGlzLl9pc0ludmFsaWQ9ITAsd2luZG93LnVzZXIuYXZhaWxhYmxlX29mZmVycz17fSx0aGlzLnJ1bk9yVXBkYXRlKGU/PygoKT0+e30pKX1zZXRJbml0aWFsKGUpe3RoaXMuX2lzSW52YWxpZD0hMSx0aGlzLl9vZmZlcnM9ZSx3aW5kb3cudXNlci5hdmFpbGFibGVfb2ZmZXJzPXRoaXMuX29mZmVyc31lbnN1cmVPZmZlcnMoKXtyZXR1cm4gbmV3IFByb21pc2UoKGU9PnRoaXMucnVuT3JVcGRhdGUoZSkpKX13aXRoQXZhaWxhYmxlT2ZmZXJzKGUpe3JldHVybiBhc3luYyguLi50KT0+KGF3YWl0IHRoaXMuZW5zdXJlT2ZmZXJzKCksZSguLi50KSl9YXN5bmMgX3VwZGF0ZU9mZmVycygpe3JldHVybiB3aW5kb3cudXNlci5hdmFpbGFibGVfb2ZmZXJzfHwod2luZG93LnVzZXIuYXZhaWxhYmxlX29mZmVycz17fSksCnRoaXMuX3VwZGF0ZU9mZmVyc1Byb21pc2U/dGhpcy5fdXBkYXRlT2ZmZXJzUHJvbWlzZTp0aGlzLl9pc0ludmFsaWQ/KHRoaXMuX3VwZGF0ZU9mZmVyc1Byb21pc2U9KDAscy5mZXRjaCkoIi9hcGkvdjEvb2ZmZXJzLyIse21ldGhvZDoiR0VUIixjcmVkZW50aWFsczoiaW5jbHVkZSJ9KS50aGVuKChhc3luYyBlPT57Y29uc3QgdD1hd2FpdCBlLmpzb24oKTtyZXR1cm4gZGVsZXRlIHRoaXMuX3VwZGF0ZU9mZmVyc1Byb21pc2UsdGhpcy5faXNJbnZhbGlkPSExLHRoaXMuX29mZmVycz1PYmplY3QuZW50cmllcyh0KS5yZWR1Y2UoKChlLFt0LGldKT0+KGkmJihlW3RdPWkpLGUpKSx7fSksd2luZG93LnVzZXIuYXZhaWxhYmxlX29mZmVycz10aGlzLl9vZmZlcnMsdH0pKS5jYXRjaCgoKCk9Pih7fSkpKSx0aGlzLl91cGRhdGVPZmZlcnNQcm9taXNlKTp0aGlzLl9vZmZlcnN9fX0sMjMyOTQ4KGUsdCxpKXsidXNlIHN0cmljdCI7aS5kKHQse2dldFByb2R1Y3RJZDooKT0+aCxpc0V4Y2hhbmdlOigpPT5jLGlzUGFpZFBybzooKT0+YSxpc1BsYW46KCk9PmwsaXNQcm86KCk9Pm8saXNQcm9kdWN0RGVmaW5lZDooKT0+bixpc1RyaWFsOigpPT5yfSk7dmFyIHM9aSg1ODE4OTMpO2Z1bmN0aW9uIG4oZSl7cmV0dXJuISghZXx8IU9iamVjdC5rZXlzKGUpLmxlbmd0aCl9ZnVuY3Rpb24gcihlKXtyZXR1cm4hIWUuaXNfdHJpYWx9ZnVuY3Rpb24gbyhlKXtyZXR1cm4hIWU/LnByb19wbGFufWZ1bmN0aW9uIGEoZSl7cmV0dXJuIG8oZSkmJiFyKGUpfWZ1bmN0aW9uIGwoZSl7cmV0dXJuIGUudHlwZT09PXMuUHJvZHVjdFR5cGUuUHJvUGxhbn1mdW5jdGlvbiBjKGUpe3JldHVybiBlLnR5cGU9PT1zLlByb2R1Y3RUeXBlLkV4Y2hhbmdlfWZ1bmN0aW9uIGgoZSl7cmV0dXJuIGU/YyhlKXx8ZnVuY3Rpb24oZSl7cmV0dXJuIGUudHlwZT09PXMuUHJvZHVjdFR5cGUuQ29pbnN9KGUpP2UudGV4dF9pZD8/IiI6ZS5kaXNjb3VudF90ZXh0X2lkPz9lLnRleHRfaWQ/PyIiOiIifX0sNTgxODkzKGUsdCxpKXsidXNlIHN0cmljdCI7dmFyIHM7aS5kKHQse1Byb2R1Y3RUeXBlOigpPT5zfSksZnVuY3Rpb24oZSl7ZVtlLlByb1BsYW49MV09IlByb1BsYW4iLGVbZS5OZXdzRmVlZD0zXT0iTmV3c0ZlZWQiLGVbZS5FeGNoYW5nZT00XT0iRXhjaGFuZ2UiLGVbZS5Db25uZWN0aW9uPTZdPSJDb25uZWN0aW9uIixlW2UuQ29pbnM9OF09IkNvaW5zIixlW2UuU2NyaXB0UGFja2FnZT05XT0iU2NyaXB0UGFja2FnZSJ9KHN8fChzPXt9KSl9LDc3NDUwNyhlLHQsaSl7InVzZSBzdHJpY3QiO2kuZCh0LHtVc2VyU3RhdHVzOigpPT5zfSk7dmFyIHMsbj1pKDg2NDAzNCkscj1pKDYzODU3MSk7IWZ1bmN0aW9uKGUpe2UuTm9uUHJvPSJub25fcHJvIixlLlBybz0icHJvIn0oc3x8KHM9e30pKTsoMCxyLm1lbW9pemUpKCgoKT0+d2luZG93LnVzZXIuaXNfdHJpYWwmJndpbmRvdy51c2VyLnByb19wbGFuP3dpbmRvdy51c2VyLmlzX2V4cGVydHx8d2luZG93LnVzZXIuZGVjbGFyZWRfc3RhdHVzIT09cy5Qcm8/bi5XRUVLTFlfU1VCU0NSSVBUSU9OX0RBWVNfTEVOOm4uTU9OVEhMWV9TVUJTQ1JJUFRJT05fREFZU19MRU46bi5XRUVLTFlfU1VCU0NSSVBUSU9OX0RBWVNfTEVOKSl9LDYwMjM4NihlLHQsaSl7InVzZSBzdHJpY3QiO2FzeW5jIGZ1bmN0aW9uIHMoKXtyZXR1cm4oYXdhaXQgaS5lKDg1MjI3KS50aGVuKGkuYmluZChpLDUwMzE4NSkpKS5vcGVuZWRQaW5lU2NyaXB0c31pLmQodCx7Z2V0T3BlbmVkUGluZVNjcmlwdHM6KCk9PnN9KX0sMjQ2OTg2KGUsdCxpKXsidXNlIHN0cmljdCI7aS5kKHQse2VkaXRvclRlbGVtZXRyeTooKT0+bn0pO3ZhciBzPWkoMTU2ODUwKTtjb25zdCBuPW5ldyBjbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMuX29wZW5TdGFydFRpbWU9bnVsbH1zdGFydE9wZW5pbmcoKXt0aGlzLl9vcGVuU3RhcnRUaW1lPXBlcmZvcm1hbmNlLm5vdygpfWZpbmlzaE9wZW5pbmcoKXtudWxsIT09dGhpcy5fb3BlblN0YXJ0VGltZSYmKHMudGVsZW1ldHJ5LnNlbmRSZXBvcnQoInBpbmUiLCJvcGVuX2VkaXRvcl90aW1lX2ZyYW1lIix7dmFsdWU6TWF0aC5yb3VuZChwZXJmb3JtYW5jZS5ub3coKS10aGlzLl9vcGVuU3RhcnRUaW1lKX0pLHRoaXMuX29wZW5TdGFydFRpbWU9bnVsbCl9fX0sNTQyMTY0KGUsdCxpKXsidXNlIHN0cmljdCI7aS5kKHQse3NlbmRFZGl0b3JTbm93cGxvd0V2ZW50OigpPT5vfSk7dmFyIHM9aSgzNjIyMzkpO2NvbnN0IG49W107dmFyIHI7YXN5bmMgZnVuY3Rpb24gbyhlLHQpe2NvbnN0IGk9YXdhaXQoMCxzLmdldFRyYWNrZXIpKCkscj17ZXZlbnRfbmFtZTplLGV2ZW50X3BhcmFtOnQ/SlNPTi5zdHJpbmdpZnkodCk6bnVsbCx1c2VyX3BsYW46d2luZG93LnVzZXIucHJvX3BsYW58fCh3aW5kb3cuaXNfYXV0aGVudGljYXRlZD8iZnJlZSI6InZpc2l0b3IiKX07aWYoaSl7aWYobi5sZW5ndGg+MCl7Zm9yKGNvbnN0IGUgb2YgbilpLnRyYWNrRWRpdG9yRXZlbnQoZSk7bi5sZW5ndGg9MH1pLnRyYWNrRWRpdG9yRXZlbnQocil9ZWxzZSBuLnB1c2gocil9IWZ1bmN0aW9uKGUpe2UuVmlldz0idmlldyIsZS5WaWV3UGluZT0idmlld19waW5lIixlLkV4cGVyaW1lbnQ9ImV4cGVyaW1lbnQiLGUuQXV0b2NvbXBsZXRlPSJhdXRvY29tcGxldGUiLGUuRmlyc3RFZGl0aW5nPSJmaXJzdF9lZGl0aW5nIixlLlRvcFBhbmVsQWN0aW9uPSJ0b3BfcGFuZWxfY2xpY2siLGUuSG92ZXJBbmNob3JMaW5rPSJob3Zlcl9hbmNob3JfbGluayIsZS5PcGVuUmVmZXJlbmNlRG9jPSJvcGVuX3JlZmVyZW5jZV9kb2MiLGUuT3BlblJlZmVyZW5jZUltcG9ydD0ib3Blbl9yZWZlcmVuY2VfaW1wb3J0IixlLkNsaWNrQWR2YW5jZWRNZW51PSJjbGlja19hZHZhbmNlZF9tZW51IixlLlN0YXR1c0Jhcj0ic3RhdHVzX2JhciIsZS5PdmVybG9hZE9wZXJhdGlvbj0ib3ZlcmxvYWRfb3BlcmF0aW9uIixlLkNoYXJ0Rmxvdz0iY2hhcnRfZmxvdyIsZS5JbnBsYWNlRGlmZkVkaXRvcj0iaW5wbGFjZV9kaWZmX2VkaXRvciIsZS5Db21waWxhdGlvblRpbWU9ImNvbXBpbGF0aW9uX3RpbWUiLGUuUHJvZmlsZXI9InByb2ZpbGVyIiwKZS5FZGl0b3JVc2VyRnVubmVsPSJlZGl0b3JfdXNlcl9mdW5uZWwiLGUuVmVyc2lvbkhpc3Rvcnk9InZlcnNpb25faGlzdG9yeSIsZS5TaG9ydFRpdGxlTGVuZ3RoV2FybmluZ0ZpeGVkPSJzaG9ydF90aXRsZV9sZW5ndGhfd2FybmluZ19maXhlZCIsZS5FZGl0b3JFcnJvcj0iZWRpdG9yX2Vycm9yIixlLlBhc3RlPSJwYXN0ZSIsZS5Cb3R0b21EdXBsaWNhdGVQb3B1cD0iYm90dG9tX2R1cGxpY2F0ZV9wb3B1cCIsZS5TZXR0aW5ncz0iZWRpdG9yX3NldHRpbmdzIn0ocnx8KHI9e30pKX0sMzQyMjAoZSx0LGkpeyJ1c2Ugc3RyaWN0IjtpLmQodCx7YWN0aXZhdGVQaW5lRWRpdG9yRGlhbG9nOigpPT5vfSk7dmFyIHM9aSgyNDY5ODYpLG49aSg2MDIzODYpO2FzeW5jIGZ1bmN0aW9uIHIoZSl7Y29uc3R7c2NyaXB0OnQscGFyYW1zOml9PWUuc2NyaXB0SW5mbztpZihudWxsPT09dHx8dm9pZCAwPT09dC52ZXJzaW9uKXJldHVybiExO2NvbnN0IHM9d2luZG93LlRyYWRpbmdWaWV3Py5ib3R0b21XaWRnZXRCYXI7aWYodm9pZCAwPT09c3x8IXMuaXNXaWRnZXRFbmFibGVkKCJzY3JpcHRlZGl0b3IiKSlyZXR1cm4hMTtjb25zdCByPShhd2FpdCgwLG4uZ2V0T3BlbmVkUGluZVNjcmlwdHMpKCkpLmdldFNjcmlwdEluZm8oe3NjcmlwdElkUGFydDp0LnNjcmlwdElkUGFydCxzY3JpcHRWZXJzaW9uOnQudmVyc2lvbn0pO3JldHVybiEobnVsbD09PXJ8fHIuYm90dG9tQ291bnQ8PTApJiYocy5hY3RpdmF0ZVNjcmlwdEVkaXRvclRhYihudWxsLGkpLCEwKX1hc3luYyBmdW5jdGlvbiBvKGUpe2lmKGUub3BlblNvdXJjZUlkJiZzLmVkaXRvclRlbGVtZXRyeS5zdGFydE9wZW5pbmcoKSxhd2FpdCByKGUpKXJldHVybjtjb25zdCB0PXdpbmRvdy53aWRnZXRiYXI7aWYoIWUuZm9yY2VPcGVuKXtjb25zdCBlPXQ/Lm1vZGVsKCJwaW5lLWRpYWxvZy1idXR0b24iKSxpPWU/LnZpc2libGUudmFsdWUoKTtpZighKHQ/LmlzVmlzaWJsZSgpJiZpJiZlKSlyZXR1cm59Y29uc3Qgbj1pLmUoNTQxNjApLnRoZW4oaS5iaW5kKGksMTQ2MTUzKSk7YXdhaXQoYXdhaXQgbikuc2hvd1BpbmVEaWFsb2coe2NoYXJ0UGFnZUdyaWQ6ZS5jaGFydFBhZ2VHcmlkPz90Py5jaGFydFBhZ2VHcmlkLGNoYXJ0V2lkZ2V0Q29sbGVjdGlvbjplLmNoYXJ0V2lkZ2V0Q29sbGVjdGlvbj8/dD8uY2hhcnRXaWRnZXRDb2xsZWN0aW9uLHNjcmlwdEluZm86ZS5zY3JpcHRJbmZvLG9wZW5Tb3VyY2VJZDplLm9wZW5Tb3VyY2VJZH0pfX0sODkxNTgxKGUsdCxpKXsidXNlIHN0cmljdCI7aS5kKHQse3NlbmRFZGl0b3JTbm93cGxvd0V2ZW50OigpPT5zLnNlbmRFZGl0b3JTbm93cGxvd0V2ZW50fSk7dmFyIHM9aSg1NDIxNjQpfSw1Nzc3MTMoZSx0LGkpeyJ1c2Ugc3RyaWN0Ijthc3luYyBmdW5jdGlvbiBzKCl7cmV0dXJuKGF3YWl0IFByb21pc2UuYWxsKFtpLmUoMjAzNTQpLGkuZSg5ODA4NCksaS5lKDc0NjM2KSxpLmUoMzIzODcpLGkuZSgyODUwNyldKS50aGVuKGkuYmluZChpLDYwOTY4MikpKS5FcnJvckNhcmRSZW5kZXJlcn1pLmQodCx7Z2V0RXJyb3JDYXJkUmVuZGVyZXI6KCk9PnN9KX0sOTI2OTk1KGUsdCxpKXsidXNlIHN0cmljdCI7aS5kKHQse3Nob3dTdXBwb3J0RGlhbG9nOigpPT5ufSk7aSgzMDAyODYpO3ZhciBzPWkoODI3MDEpO2FzeW5jIGZ1bmN0aW9uIG4oZSl7Y29uc3QgdD1hd2FpdCBQcm9taXNlLmFsbChbaS5lKDI2OTczKSxpLmUoODQzMDYpLGkuZSgyOTI5NiksaS5lKDYwMDYyKSxpLmUoNDY5MDcpLGkuZSgyMDM1NCksaS5lKDEyMzg1KSxpLmUoODEwNzIpLGkuZSg5NDk0OCksaS5lKDIzNjI0KSxpLmUoMzYyMjIpLGkuZSg5NDIzMiksaS5lKDgzNDg4KSxpLmUoMTk1OTUpLGkuZSgxOTc4NyksaS5lKDY3Nzk5KSxpLmUoMTE0NjEpLGkuZSg5NjU4NyksaS5lKDExMjE4KSxpLmUoODY0MjMpLGkuZSgzNzUxMyksaS5lKDg1NzkpLGkuZSg5NTA0KSxpLmUoNDA4MzUpLGkuZSg3MjY2NiksaS5lKDkzNDIxKSxpLmUoNDk1ODgpLGkuZSg0NzYzMiksaS5lKDc0MzgxKSxpLmUoMTU1MjYpLGkuZSg3MTQxNCksaS5lKDYxODIxKSxpLmUoNTQ2ODEpLGkuZSg2NjI3MCksaS5lKDMxODM3KSxpLmUoOTc0NCksaS5lKDIwOTcxKSxpLmUoNDk1MTgpLGkuZSgzNzc2NyksaS5lKDE5NTEzKSxpLmUoMzI2MzIpLGkuZSgzNTE5OCksaS5lKDQ2NTkxKSxpLmUoOTQwNTQpLGkuZSgxNTA5KSxpLmUoNzY2NSksaS5lKDgwNzMxKSxpLmUoNTQzMTApLGkuZSgzNjM1NiksaS5lKDc4NDcxKSxpLmUoMjU2OTgpLGkuZSgzMzM2OCksaS5lKDk1MTU4KSxpLmUoMzIzODcpLGkuZSg3NTA0KSxpLmUoNDQ3ODApLGkuZSg3MDcxMiksaS5lKDg3ODU4KSxpLmUoNTk2MTkpLGkuZSg5OTgyNyksaS5lKDgxODY4KSxpLmUoMjMzNjQpLGkuZSgyMzc0MyksaS5lKDQyMjg4KSxpLmUoNzc1NzgpLGkuZSg0ODg1NCksaS5lKDE5NDYzKSxpLmUoODYwOCldKS50aGVuKGkuYmluZChpLDkxMjI5OSkpO2F3YWl0IHMuYXZhaWxhYmxlT2ZmZXJzLmVuc3VyZU9mZmVycygpLG5ldyB0LlN1cHBvcnREaWFsb2coZSkub3BlbigpfX0sMzU3NTQ0KGUsdCxpKXsidXNlIHN0cmljdCI7aS5kKHQse1N1cHBvcnRJbmNpZGVudHNTZXJ2aWNlOigpPT5jLGlzU3VwcG9ydEluY2lkZW50VmlzaWJsZU9uQ2hhcnQ6KCk9Pmx9KTt2YXIgcz1pKDIyMTA2MSksbj1pKDM4NDAxNykscj1pKDYzOTExMyksbz1pKDUwNzI4NSk7Y29uc3QgYT0oMCxzLmdldExvZ2dlcikoIlN1cHBvcnQuSW5jaWRlbnRzTW9kZWwiKTtmdW5jdGlvbiBsKGUsdD13aW5kb3cubG9jYWxlKXtyZXR1cm4gZS5zaG93X29uX2NoYXJ0JiYhMSE9PWUuaXNfYWN0aXZlJiYodm9pZCAwPT09ZS5sYW5ndWFnZXx8ZS5sYW5ndWFnZS5zb21lKChlPT5lPT09dHx8ImFsbCI9PT1lKSkpfWNsYXNzIGN7Y29uc3RydWN0b3IoZT13aW5kb3cubG9jYWxlKXt0aGlzLl9pbmNpZGVudHM9W10sdGhpcy5fbGlzdGVuZXJzPW5ldyBTZXQsdGhpcy5fcHVzaFN0cmVhbUhhbmRsZXI9bnVsbCx0aGlzLl9kZXN0cm95ZWQ9ITEsdGhpcy5fbGFuZ3VhZ2U9ZX1pbmNpZGVudHMoKXtyZXR1cm4gdGhpcy5faW5jaWRlbnRzfXN1YnNjcmliZShlKXsKcmV0dXJuIHRoaXMuX2xpc3RlbmVycy5hZGQoZSksZSh0aGlzLl9pbmNpZGVudHMpLCgpPT57dGhpcy5fbGlzdGVuZXJzLmRlbGV0ZShlKX19YXN5bmMgbG9hZChlPXt9KXtjb25zdHtzdWJzY3JpYmVUb1B1c2hTdHJlYW06dD0hMX09ZTt0cnl7Y29uc3QgZT1hd2FpdCgwLG4uZmV0Y2gpKGAke3Iuc3VwcG9ydFBvcnRhbFByb2JsZW1zSG9zdH0vc3VwcG9ydC9zdXBwb3J0LXBvcnRhbC1wcm9ibGVtcy8/bGFuZ3VhZ2U9JHt0aGlzLl9sYW5ndWFnZX1gKTtpZih0aGlzLl9kZXN0cm95ZWQpcmV0dXJuO2lmKCFlLm9rKXJldHVybiB2b2lkIGEubG9nV2FybigiQ291bGRuJ3QgbG9hZCBzdXBwb3J0IHBvcnRhbCBwcm9ibGVtcyIpO2NvbnN0IGk9KGF3YWl0IGUuanNvbigpKS5pc3N1ZXM7aWYodGhpcy5fZGVzdHJveWVkKXJldHVybjt0aGlzLl9zZXRJbmNpZGVudHMoaSksdCYmdGhpcy5fc3Vic2NyaWJlVG9QdXNoU3RyZWFtKCl9Y2F0Y2goZSl7dGhpcy5fZGVzdHJveWVkfHxhLmxvZ1dhcm4oYENvdWxkbid0IGxvYWQgc3VwcG9ydCBwb3J0YWwgcHJvYmxlbXM6ICR7U3RyaW5nKGUpfWApfX1kZXN0cm95KCl7bnVsbCE9PXRoaXMuX3B1c2hTdHJlYW1IYW5kbGVyJiZvLnB1c2hTdHJlYW1NdWx0aXBsZXhlci5vZmYoInN1cHBvcnQtcG9ydGFsLXByb2JsZW0iLHRoaXMuX3B1c2hTdHJlYW1IYW5kbGVyKSx0aGlzLl9saXN0ZW5lcnMuY2xlYXIoKSx0aGlzLl9kZXN0cm95ZWQ9ITB9X3NldEluY2lkZW50cyhlKXt0aGlzLl9pbmNpZGVudHM9ZSx0aGlzLl9ub3RpZnlMaXN0ZW5lcnMoKX1fbm90aWZ5TGlzdGVuZXJzKCl7Zm9yKGNvbnN0IGUgb2YgdGhpcy5fbGlzdGVuZXJzKWUodGhpcy5faW5jaWRlbnRzKX1fc3Vic2NyaWJlVG9QdXNoU3RyZWFtKCl7bnVsbD09PXRoaXMuX3B1c2hTdHJlYW1IYW5kbGVyJiYodGhpcy5fcHVzaFN0cmVhbUhhbmRsZXI9ZT0+e2NvbnN0IHQ9dGhpcy5faW5jaWRlbnRzLnNsaWNlKCk7c3dpdGNoKGUuYWN0aW9uKXtjYXNlImNyZWF0ZWQiOnQucHVzaChlLmRhdGEpO2JyZWFrO2Nhc2UibW9kaWZpZWQiOntjb25zdCBpPXQuZmluZEluZGV4KCh0PT50LmlkPT09ZS5kYXRhLmlkKSk7LTEhPT1pP3RbaV09ey4uLnRbaV0sLi4uZS5kYXRhfTp0LnB1c2goZS5kYXRhKTticmVha31jYXNlImRlbGV0ZWQiOntjb25zdCBpPXQuZmluZEluZGV4KCh0PT50LmlkPT09ZS5kYXRhLmlkKSk7LTEhPT1pJiZ0LnNwbGljZShpLDEpO2JyZWFrfX10aGlzLl9zZXRJbmNpZGVudHModCl9LG8ucHVzaFN0cmVhbU11bHRpcGxleGVyLm9uKCJzdXBwb3J0LXBvcnRhbC1wcm9ibGVtIix0aGlzLl9wdXNoU3RyZWFtSGFuZGxlcikpfX19LDkyMjI0OChlLHQsaSl7InVzZSBzdHJpY3QiO2kuZCh0LHtTWU1CT0xfTElTVF9TRVJWSUNFOigpPT5zfSk7Y29uc3Qgcz0oMCxpKDQ3MzA2OCkuY3JlYXRlU2VydmljZURlc2NyaXB0b3IpKCJTeW1ib2xMaXN0U2VydmljZSIpfSw3NjAzOTAoZSx0LGkpeyJ1c2Ugc3RyaWN0IjtpLnIodCksaS5kKHQse0RFTEVURURfU1lNQk9MU19MSVNUX0lEOigpPT5hLERlbGV0ZWRTeW1ib2xzTGlzdDooKT0+aCxpc0RlbGV0ZWRTeW1ib2xzTGlzdDooKT0+Y30pO3ZhciBzPWkoOTMyMzY1KSxuPWkoMzQ5MDMwKTtjb25zdCByPSJkZWxldGVkX3N5bWJvbHNfbGlzdCIsbz0iaXNfZGVsZXRlZF9zeW1ib2xzX2xpc3RfYWN0aXZlIixhPSJkZWxldGVkX3N5bWJvbHNfbGlzdF9pZCIsbD0iVGhlcmUgd2FzIGFuIGVycm9yIGR1cmluZyBhdHRlbXB0IHRvIHNldCBsb2NhbCBzdG9yYWdlIHZhbHVlIixjPWU9PmU9PT1hO2NsYXNzIGh7Y29uc3RydWN0b3IoKXt0aGlzLl9sb2dFcnJvcj0oZSx0KT0+e2UgaW5zdGFuY2VvZiBFcnJvcj9uLmxvZ2dlci5sb2dFcnJvcihlLm1lc3NhZ2UpOm4ubG9nZ2VyLmxvZ0Vycm9yKHQpfX1jcmVhdGVMaXN0KGUpe3RoaXMuX3NldExpc3QoZSl9cmVtb3ZlTGlzdCgpe3RyeXtzLlRWTG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0ocil9Y2F0Y2goZSl7dGhpcy5fbG9nRXJyb3IoZSwiVGhlcmUgd2FzIGFuIGVycm9yIGR1cmluZyBsb2NhbCBzdG9yYWdlIGl0ZW0gcmVtb3ZhbCIpfX1hZGRTeW1ib2xzKGUpe2NvbnN0IHQ9dGhpcy5nZXRMaXN0KCk7aWYoIXQpcmV0dXJuO2NvbnN0IGk9bmV3IFNldCh0LnN5bWJvbHMpO2Zvcihjb25zdCB0IG9mIGUpaS5hZGQodCk7Y29uc3Qgcz1BcnJheS5mcm9tKGkpO3MubGVuZ3RoPjEwMD90LnN5bWJvbHM9cy5yZXZlcnNlKCkuc2xpY2UoMCwxMDApLnJldmVyc2UoKTp0LnN5bWJvbHM9cyx0aGlzLl9zZXRMaXN0KHQpfXJlbW92ZVN5bWJvbHMoZSl7Y29uc3QgdD10aGlzLmdldExpc3QoKTtpZighdClyZXR1cm47Y29uc3QgaT1uZXcgU2V0KHQuc3ltYm9scyk7Zm9yKGNvbnN0IHQgb2YgZSlpLmRlbGV0ZSh0KTt0LnN5bWJvbHM9QXJyYXkuZnJvbShpKSx0aGlzLl9zZXRMaXN0KHQpfXJlcGxhY2VTeW1ib2xzKGUpe2NvbnN0IHQ9dGhpcy5nZXRMaXN0KCk7dCYmKHQuc3ltYm9scz1lLHRoaXMuX3NldExpc3QodCkpfWdldElzQWN0aXZlKCl7dHJ5e3JldHVybiJ0cnVlIj09PXMuVFZMb2NhbFN0b3JhZ2UuZ2V0SXRlbShvKX1jYXRjaChlKXtyZXR1cm4gdGhpcy5fbG9nRXJyb3IoZSxsKSwhMX19c2V0SXNBY3RpdmUoZSl7dHJ5e3MuVFZMb2NhbFN0b3JhZ2Uuc2V0SXRlbShvLFN0cmluZyhlKSl9Y2F0Y2goZSl7dGhpcy5fbG9nRXJyb3IoZSxsKX19Z2V0TGlzdCgpe3RyeXtjb25zdCBlPXMuVFZMb2NhbFN0b3JhZ2UuZ2V0SXRlbShyKTtyZXR1cm4gZT9KU09OLnBhcnNlKGUpOm51bGx9Y2F0Y2goZSl7cmV0dXJuIHRoaXMuX2xvZ0Vycm9yKGUsIlRoZXJlIHdhcyBhbiBlcnJvciBkdXJpbmcgYXR0ZW1wdCB0byBnZXQgbG9jYWwgc3RvcmFnZSB2YWx1ZSIpLG51bGx9fV9zZXRMaXN0KGUpe3RyeXtzLlRWTG9jYWxTdG9yYWdlLnNldEl0ZW0ocixKU09OLnN0cmluZ2lmeShlKSl9Y2F0Y2goZSl7dGhpcy5fbG9nRXJyb3IoZSxsKX19fX0sMzQ5MDMwKGUsdCxpKXsidXNlIHN0cmljdCI7aS5kKHQse2xvZ2dlcjooKT0+c30pO2NvbnN0IHM9KDAsaSgyMjEwNjEpLmdldExvZ2dlcikoIlBsYXRmb3JtLk1vZGVsLldhdGNobGlzdCIpfSwKNDU2NzA1KGUsdCxpKXsidXNlIHN0cmljdCI7aS5kKHQse2luaXRTeW1ib2xMaXN0U2VydmljZTooKT0+b30pO3ZhciBzPWkoOTMwMjMxKSxuPWkoNzA1MDEyKSxyPWkoOTIyMjQ4KTtmdW5jdGlvbiBvKCl7cmV0dXJuIFByb21pc2UuYWxsKFtQcm9taXNlLmFsbChbaS5lKDczNzcpLGkuZSg4NDMwNiksaS5lKDI5Mjk2KSxpLmUoNTIzOTYpLGkuZSg2MDA2MiksaS5lKDIwMzU0KSxpLmUoMTM0OTIpLGkuZSgzNzc0NiksaS5lKDk0MjMyKSxpLmUoMTIwNTEpLGkuZSgzMjM4NyksaS5lKDMwNjk5KSxpLmUoMTg1MTIpLGkuZSg0MjQ1NyksaS5lKDM5NjA5KSxpLmUoMTQ4ODkpLGkuZSg0MjIxMiksaS5lKDUyNTA5KSxpLmUoODU0MzQpLGkuZSg3Mjg1KSxpLmUoMjg1MSksaS5lKDE5OTM4KV0pLnRoZW4oaS5iaW5kKGksODA0MzQzKSksUHJvbWlzZS5hbGwoW2kuZSg3Mzc3KSxpLmUoODQzMDYpLGkuZSgyOTI5NiksaS5lKDUyMzk2KSxpLmUoNjAwNjIpLGkuZSgyMDM1NCksaS5lKDEzNDkyKSxpLmUoMzc3NDYpLGkuZSg5NDIzMiksaS5lKDEyMDUxKSxpLmUoMzIzODcpLGkuZSgzMDY5OSksaS5lKDE4NTEyKSxpLmUoNDI0NTcpLGkuZSgzOTYwOSksaS5lKDE0ODg5KSxpLmUoNDIyMTIpLGkuZSg1MjUwOSksaS5lKDg1NDM0KSxpLmUoNzI4NSksaS5lKDI4NTEpLGkuZSgxOTkzOCldKS50aGVuKGkuYmluZChpLDc3OTkzOSkpLFByb21pc2UuYWxsKFtpLmUoNzM3NyksaS5lKDg0MzA2KSxpLmUoMjkyOTYpLGkuZSg1MjM5NiksaS5lKDYwMDYyKSxpLmUoMjAzNTQpLGkuZSgxMzQ5MiksaS5lKDM3NzQ2KSxpLmUoOTQyMzIpLGkuZSgxMjA1MSksaS5lKDMyMzg3KSxpLmUoMzA2OTkpLGkuZSgxODUxMiksaS5lKDQyNDU3KSxpLmUoMzk2MDkpLGkuZSgxNDg4OSksaS5lKDQyMjEyKSxpLmUoNTI1MDkpLGkuZSg4NTQzNCksaS5lKDcyODUpLGkuZSgyODUxKSxpLmUoMTk5MzgpXSkudGhlbihpLmJpbmQoaSwxMjIzMDcpKSxQcm9taXNlLmFsbChbaS5lKDczNzcpLGkuZSg4NDMwNiksaS5lKDI5Mjk2KSxpLmUoNTIzOTYpLGkuZSg2MDA2MiksaS5lKDIwMzU0KSxpLmUoMTM0OTIpLGkuZSgzNzc0NiksaS5lKDk0MjMyKSxpLmUoMTIwNTEpLGkuZSgzMjM4NyksaS5lKDMwNjk5KSxpLmUoMTg1MTIpLGkuZSg0MjQ1NyksaS5lKDM5NjA5KSxpLmUoMTQ4ODkpLGkuZSg0MjIxMiksaS5lKDUyNTA5KSxpLmUoODU0MzQpLGkuZSg3Mjg1KSxpLmUoMjg1MSksaS5lKDE5OTM4KV0pLnRoZW4oaS5iaW5kKGksNjMyMDM1KSksKDAscy5pc0ZlYXR1cmVzZXRFbmFibGVkKSgid2lkZ2V0Iik/bnVsbDpQcm9taXNlLmFsbChbaS5lKDczNzcpLGkuZSg4NDMwNiksaS5lKDI5Mjk2KSxpLmUoNTIzOTYpLGkuZSg2MDA2MiksaS5lKDIwMzU0KSxpLmUoMTM0OTIpLGkuZSgzNzc0NiksaS5lKDk0MjMyKSxpLmUoMTIwNTEpLGkuZSgzMjM4NyksaS5lKDMwNjk5KSxpLmUoMTg1MTIpLGkuZSg0MjQ1NyksaS5lKDM5NjA5KSxpLmUoMTQ4ODkpLGkuZSg0MjIxMiksaS5lKDUyNTA5KSxpLmUoODU0MzQpLGkuZSg3Mjg1KSxpLmUoMjg1MSksaS5lKDE5OTM4KV0pLnRoZW4oaS5iaW5kKGksMTc5NjEwKSldKS50aGVuKCgoW2UsdCxpLHMsb10pPT57aWYoKDAsbi5oYXNTZXJ2aWNlKShyLlNZTUJPTF9MSVNUX1NFUlZJQ0UpKXJldHVybigwLG4uc2VydmljZSkoci5TWU1CT0xfTElTVF9TRVJWSUNFKTtjb25zdHtzdG9yZTphLHJ1bm5lcjpsfT1lLmNvbmZpZ3VyZVN0b3JlKCksYz1sLnJ1bih0LnN5bWJvbExpc3RSZXBvc2l0b3J5U2FnYSk7KDAsbi5yZWdpc3RlclNlcnZpY2UpKHIuU1lNQk9MX0xJU1RfU0VSVklDRSx7c3RvcmU6YSxydW5uZXI6bCxhY3Rpb25zOnthZGRTeW1ib2xzOnMuYWRkU3ltYm9sc1RodW5rLGluaXRXaWRnZXQ6aS5pbml0V2lkZ2V0LHNhdmVMaXN0QXM6cy5zYXZlTGlzdEFzVGh1bmssY3JlYXRlTmV3V2F0Y2hMaXN0OnMudXNlckNyZWF0ZVdhdGNobGlzdFRodW5rfSx0YXNrOmN9KTtjb25zdCBoPSgwLG4uc2VydmljZSkoci5TWU1CT0xfTElTVF9TRVJWSUNFKTtyZXR1cm4gbnVsbCE9PW8mJm8uZ2V0Q3VzdG9tU3ltYm9sTGlzdFN5bmNocm9uaXphdGlvblNlcnZpY2VJbnN0YW5jZShoKSxofSkpfX0sNTE5NTE1KGUsdCxpKXsidXNlIHN0cmljdCI7aS5kKHQse1dBVENITElTVF9XSURHRVRfSUQ6KCk9PnN9KTtjb25zdCBzPSJ3YXRjaGxpc3Qtd2lkZ2V0In0sODI0NDc4KGUsdCxpKXsidXNlIHN0cmljdCI7aS5kKHQse3Nob3dXYXRjaExpc3RzRGlhbG9nOigpPT5vfSk7dmFyIHM9aSgyOTYyNjIpO2xldCBuO2NsYXNzIHIgZXh0ZW5kcyBzLkRpYWxvZ1JlbmRlcmVye2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLl9kaWFsb2c9bnVsbCx0aGlzLl9zdWJzY3JpYmU9ZT0+e3RoaXMuX3NldFZpc2liaWxpdHkoZSl9fXNob3coZSl7dGhpcy5fbG9hZCgpLnRoZW4oKHQ9PnQuc2hvdyhlKSkpfWhpZGUoKXt0aGlzLl9kaWFsb2c/LmhpZGUoKSx0aGlzLl9kaWFsb2c/LnZpc2libGUoKS51bnN1YnNjcmliZSh0aGlzLl9zdWJzY3JpYmUpfXN0YXRpYyBnZXRJbnN0YW5jZSgpe3JldHVybiBufHwobj1uZXcgciksbn1hc3luYyBfbG9hZCgpewpjb25zdCBlPWF3YWl0IFByb21pc2UuYWxsKFtpLmUoODUwMTQpLGkuZSg4NDMwNiksaS5lKDI5Mjk2KSxpLmUoNTIzOTYpLGkuZSg2MDA2MiksaS5lKDQ2OTA3KSxpLmUoMjAzNTQpLGkuZSgxMzQ5MiksaS5lKDM3NzQ2KSxpLmUoMTIzODUpLGkuZSg4MTA3MiksaS5lKDk0OTQ4KSxpLmUoMjM2MjQpLGkuZSg5NDIzMiksaS5lKDgzNDg4KSxpLmUoMTk1OTUpLGkuZSgxOTc4NyksaS5lKDI0NTgxKSxpLmUoODU3OSksaS5lKDk1MDQpLGkuZSgxNzA4NyksaS5lKDcyNjY2KSxpLmUoMTAzODUpLGkuZSg1MjA2NSksaS5lKDQ3NjMyKSxpLmUoNjYwNSksaS5lKDcxNDE0KSxpLmUoNTI2ODApLGkuZSgzNTc5NCksaS5lKDMyNzQ4KSxpLmUoMTY3NiksaS5lKDg5MjA0KSxpLmUoOTE4NTUpLGkuZSgxMjA1MSksaS5lKDg5NTU4KSxpLmUoMzIxNzYpLGkuZSg5NzQ0KSxpLmUoMTAzNjYpLGkuZSg2OTg2MSksaS5lKDE5NTEzKSxpLmUoNzI1MTIpLGkuZSgxNTYzNCksaS5lKDg4NjQxKSxpLmUoNzA2NTYpLGkuZSg4OTA0NCksaS5lKDQwOTE0KSxpLmUoOTA5NjApLGkuZSg4Nzc0MCksaS5lKDU2MjEzKSxpLmUoNjg5NjQpLGkuZSgyMzY2OSksaS5lKDUwMDM1KSxpLmUoNzg4OTkpLGkuZSg0MjcyMSksaS5lKDQ3MjAxKSxpLmUoNTA1ODgpLGkuZSg2NDUpLGkuZSg5MTY3MCksaS5lKDU1MzkpLGkuZSgxNDY1NyksaS5lKDcxNDM3KSxpLmUoMzIzODcpLGkuZSgzMDY5OSksaS5lKDgwOTE1KSxpLmUoMTg1MTIpLGkuZSg2NzIwOCksaS5lKDQyMjg4KSxpLmUoNzc1NzgpLGkuZSgxNDg4OSksaS5lKDQyMjEyKSxpLmUoNTUyMjkpLGkuZSg0NjIxNyksaS5lKDY4NzI1KSxpLmUoNjY5MzMpLGkuZSg1MjUwOSksaS5lKDcyNjc0KSxpLmUoMzUyNTIpLGkuZSg5MzI3NyksaS5lKDEzODM0KV0pLnRoZW4oaS5iaW5kKGksMjYzNjg4KSk7cmV0dXJuIHRoaXMuX2RpYWxvZz8uaGlkZSgpLHRoaXMuX2RpYWxvZz8udmlzaWJsZSgpLnVuc3Vic2NyaWJlKHRoaXMuX3N1YnNjcmliZSksdGhpcy5fZGlhbG9nPWUud2F0Y2hsaXN0c0RpYWxvZ1JlbmRlcmVyKCksdGhpcy5fZGlhbG9nLnZpc2libGUoKS5zdWJzY3JpYmUodGhpcy5fc3Vic2NyaWJlKSx0aGlzLl9kaWFsb2d9fWZ1bmN0aW9uIG8oZSl7ci5nZXRJbnN0YW5jZSgpLnNob3coZSl9fSw5OTQ1NDAoZSx0LGkpeyJ1c2Ugc3RyaWN0IjtpLmQodCx7YWN0aXZhdGVLZXlQcmVzc0hhbmRsZXI6KCk9Pl8sc2hvd0RpYWxvZzooKT0+bX0pO3ZhciBzPWkoOTMwMjMxKSxuPWkoMjIxMDYxKSxyPWkoMjIxNzAwKSxvPWkoMjQzOTM4KSxhPWkoODYyNTcyKSxsPWkoOTQzODQyKSxjPWkoMzg2OTMxKSxoPWkoMjM3MzY5KSxkPWkoNjE0MzgwKTtjb25zdCB1PSgwLG4uZ2V0TG9nZ2VyKSgiU3ltYm9sU2VhcmNoRGlhbG9nIik7ZnVuY3Rpb24gcChlKXtpZighKDAsby5nbG9iYWxLZXlwcmVzc01hdGNoZXMpKGUpKXJldHVybiExO2UucHJldmVudERlZmF1bHQoKTtjb25zdCB0PVN0cmluZy5mcm9tQ2hhckNvZGUoZS5jaGFyQ29kZSk7cmV0dXJuKDAscy5pc0ZlYXR1cmVzZXRFbmFibGVkKSgic2hvd19pbnRlcnZhbF9kaWFsb2dfb25fa2V5X3ByZXNzIikmJmZ1bmN0aW9uKGUpe3JldHVybi9bMS05XS8udGVzdChlKX0odCk/KDAsYS5zaG93Q2hhbmdlSW50ZXJ2YWxEaWFsb2dBc3luYykoe2luaXRWYWw6dH0pOigwLHMuaXNGZWF0dXJlc2V0RW5hYmxlZCkoInN5bWJvbF9zZWFyY2hfaG90X2tleSIpJiYobSh7ZGVmYXVsdFZhbHVlOnQsc2VsZWN0U2VhcmNoT25Jbml0OiExLHNvdXJjZToia2V5Ym9hcmQiLHNlYXJjaFR5cGU6InN1cGVyY2hhcnRzIix0cmFja1Jlc3VsdHNPcHRpb25zOnt0cmFja1Jlc3VsdHM6ISgwLHMuaXNGZWF0dXJlc2V0RW5hYmxlZCkoIndpZGdldCIpLGVtcHR5U2VhcmNoVHlwZToiZW1wdHlfcmVzdWx0X19zdXBlcmNoYXJ0cyJ9LGVuYWJsZU9wdGlvbnNDaGFpbjooMCxzLmlzRmVhdHVyZXNldEVuYWJsZWQpKCJzeW1ib2xfc2VhcmNoX29wdGlvbl9jaGFpbl9zZWxlY3RvciIpfSksKDAsYy50cmFja0V2ZW50KSgiR1VJIiwiU1MiLCJob3RrZXkiKSksITB9ZnVuY3Rpb24gXygpeygwLGwubG9hZENoYW5nZUludGVydmFsRGlhbG9nKSgpLHIucHVzaEJhY2tMaXN0ZW5lcigic3ltYm9sRWRpdCIscCl9YXN5bmMgZnVuY3Rpb24gbShlKXt0cnl7YXdhaXQobmV3IGQuU3ltYm9sU2VhcmNoVUkpLnNob3coZSl9Y2F0Y2goZSl7dS5sb2dFcnJvcihgQW5vdGhlciBTeW1ib2xTZWFyY2hVSSBpcyBhbHJlYWR5IG9wZW5lZCBvciBDdXN0b21VSSByZWplY3RlZCBzeW1ib2wgc2VsZWN0aW9uICR7KDAsaC5nZXRFcnJvck1lc3NhZ2UpKGUpfWApfX19LDQxMTQwNyhlLHQsaSl7InVzZSBzdHJpY3QiO2kuZCh0LHt0cmFkaW5nU2VydmljZTooKT0+cix3YWl0VHJhZGluZ1NlcnZpY2U6KCk9Pm99KTt2YXIgcz1pKDcwNTAxMik7Y29uc3Qgbj0oMCxpKDQ3MzA2OCkuY3JlYXRlU2VydmljZURlc2NyaXB0b3IpKCJUcmFkaW5nU2VydmljZSIpO2Z1bmN0aW9uIHIoKXtyZXR1cm4oMCxzLmhhc1NlcnZpY2UpKG4pPygwLHMuc2VydmljZSkobik6bnVsbH1mdW5jdGlvbiBvKCl7cmV0dXJuKDAscy53YWl0U2VydmljZVJlZ2lzdGVyZWQpKG4pfX0sMjE2MDgzKGUsdCxpKXsidXNlIHN0cmljdCI7aS5kKHQse3RyYWNrQnV0dG9uQ2xpY2s6KCk9Pm59KTt2YXIgcz1pKDM2MjIzOSk7ZnVuY3Rpb24gbihlLHQsaSxuKXsoMCxzLmdldFRyYWNrZXIpKCkudGhlbigocz0+e251bGwhPT1zJiZzLnRyYWNrVG9vbGJhckJ1dHRvbkNsaWNrKGUsaT9gJHt0fSAke2l9YDp0LG4pfSkpfX0sMjUwNDM5KGUsdCxpKXsidXNlIHN0cmljdCI7aS5kKHQse0NvbnRleHRNZW51TWFuYWdlcjooKT0+c30pO3ZhciBzLG49aSgxOTg5MDEpLHI9aSg1MDkwNCksbz1pKDI3NjAxOSk7IWZ1bmN0aW9uKGUpe2xldCB0PW51bGwscz1udWxsO2NvbnN0IGE9W10sbD17Y3JlYXRlQWN0aW9uOmU9Pm5ldyByLkFjdGlvbih7YWN0aW9uSWQ6IkNoYXJ0LkN1c3RvbUFjdGlvbklkIixvcHRpb25zOmV9KSxjcmVhdGVBc3luY0FjdGlvbjplPT5uZXcgci5BY3Rpb24oe2FjdGlvbklkOiJDaGFydC5DdXN0b21BY3Rpb25JZCIsb3B0aW9uczp7fSwKb3B0aW9uc0xvYWRlcjplfSksY3JlYXRlU2VwYXJhdG9yOigpPT5uZXcgci5TZXBhcmF0b3J9O2FzeW5jIGZ1bmN0aW9uIGMoZSxyPXt9LG89e21lbnVOYW1lOiIifSxjKXtudWxsIT09dCYmKGU9YXdhaXQgdChlLGwsbykpO2xldCBkPW51bGw7Y29uc3QgdT0oKT0+e2NvbnN0IGU9KDAsbi5pbmRleE9mKShhLChlPT5lLnJlbmRlcmVyPT09ZCkpOy0xIT09ZSYmYS5zcGxpY2UoZSwxKSx2b2lkIDAhPT1jJiZjKCl9O2xldCBwPSExO2lmKG51bGwhPT1zJiYoZD1hd2FpdCBzKGUsbyx1KSksZClwPSEwLGgoKTtlbHNle2NvbnN0IHQ9YXdhaXQgUHJvbWlzZS5hbGwoW2kuZSg3NTUyKSxpLmUoODEwNzIpLGkuZSg5NDk0OCksaS5lKDk0MjMyKSxpLmUoMjQ1ODEpLGkuZSgxNzA4NyksaS5lKDcwODE1KSxpLmUoNzI1MTIpLGkuZSg1MjA5NSksaS5lKDcwNjU2KSxpLmUoNDQwMzEpLGkuZSgzNTA3MyksaS5lKDMyMzg3KSxpLmUoMjAzMzEpLGkuZSg3NDM2NCldKS50aGVuKGkuYmluZChpLDEwMjIzNykpO2Q9bmV3IHQuQ29udGV4dE1lbnVSZW5kZXJlcihlLHIsdSxoKX1yZXR1cm4gYS5wdXNoKHtyZW5kZXJlcjpkLGlzRXh0ZXJuYWw6cH0pLGR9ZnVuY3Rpb24gaCgpeygwLG8uZ2xvYmFsQ2xvc2VNZW51KSgpLGEuZm9yRWFjaCgoZT0+e2UuaXNFeHRlcm5hbCYmZS5yZW5kZXJlci5pc1Nob3duKCkmJmUucmVuZGVyZXIuaGlkZSgpfSkpfWUuY3JlYXRlTWVudT1jLGUuc2hvd01lbnU9ZnVuY3Rpb24oZSx0LGk9e30scyxuKXtyZXR1cm4gYyhlLGkscyxuKS50aGVuKChlPT5lLnNob3codCkpKX0sZS5zZXRDdXN0b21SZW5kZXJlckZhY3Rvcnk9ZnVuY3Rpb24oZSl7cz1lfSxlLnNldEN1c3RvbUl0ZW1zUHJvY2Vzc29yPWZ1bmN0aW9uKGUpe3Q9ZX0sZS5oaWRlQWxsPWgsZS5nZXRTaG93bj1mdW5jdGlvbigpe2ZvcihsZXQgZT0wO2U8YS5sZW5ndGg7ZSsrKWlmKGFbZV0ucmVuZGVyZXIuaXNTaG93bigpKXJldHVybiBhW2VdLnJlbmRlcmVyO3JldHVybiBudWxsfX0oc3x8KHM9e30pKX0sMzc5NzkzKGUsdCxpKXsidXNlIHN0cmljdCI7dmFyIHM7aS5kKHQse1Rvb2xib3hUeXBlOigpPT5zfSksZnVuY3Rpb24oZSl7ZVtlLkRlbGV0ZT0wXT0iRGVsZXRlIn0oc3x8KHM9e30pKX0sOTU4NTAwKGUsdCxpKXsidXNlIHN0cmljdCI7aS5kKHQse1Jlc2l6ZXJEZXRhY2hlclN0YXRlOigpPT5yfSk7dmFyIHM9aSgxMzg2MzgpLG49aSgyMzIzNjQpO2NsYXNzIHJ7Y29uc3RydWN0b3IoZSl7dGhpcy5fYWxpdmU9bmV3IG4uV2F0Y2hlZFZhbHVlLHRoaXMuX2NvbnRhaW5lcj1uZXcgbi5XYXRjaGVkVmFsdWUsdGhpcy5fd2lkdGg9bmV3IG4uV2F0Y2hlZFZhbHVlLHRoaXMuX2hlaWdodD1uZXcgbi5XYXRjaGVkVmFsdWUsdGhpcy5fZnVsbHNjcmVlbj1uZXcgbi5XYXRjaGVkVmFsdWUsdGhpcy5fZGV0YWNoYWJsZT1uZXcgbi5XYXRjaGVkVmFsdWUsdGhpcy5fZnVsbHNjcmVlbmFibGU9bmV3IG4uV2F0Y2hlZFZhbHVlLHRoaXMuX3Zpc2libGU9bmV3IG4uV2F0Y2hlZFZhbHVlLHRoaXMuX2F2YWlsV2lkdGg9bmV3IG4uV2F0Y2hlZFZhbHVlLHRoaXMuX2F2YWlsSGVpZ2h0PW5ldyBuLldhdGNoZWRWYWx1ZSx0aGlzLl9vd25lcj1uZXcgbi5XYXRjaGVkVmFsdWUsdGhpcy5fb3duZXJzU3RhY2s9W10sdGhpcy5vd25lcj10aGlzLl9vd25lci5yZWFkb25seSgpLHRoaXMuX2JyaWRnZT17YWxpdmU6dGhpcy5fYWxpdmUucmVhZG9ubHkoKSxjb250YWluZXI6dGhpcy5fY29udGFpbmVyLnJlYWRvbmx5KCksd2lkdGg6dGhpcy5fd2lkdGgucmVhZG9ubHkoKSxoZWlnaHQ6dGhpcy5faGVpZ2h0LnJlYWRvbmx5KCksZnVsbHNjcmVlbjp0aGlzLl9mdWxsc2NyZWVuLnJlYWRvbmx5KCksZGV0YWNoYWJsZTp0aGlzLl9kZXRhY2hhYmxlLnJlYWRvbmx5KCksZnVsbHNjcmVlbmFibGU6dGhpcy5fZnVsbHNjcmVlbmFibGUucmVhZG9ubHkoKSx2aXNpYmxlOnRoaXMuX3Zpc2libGUucmVhZG9ubHkoKSxhdmFpbFdpZHRoOnRoaXMuX2F2YWlsV2lkdGgucmVhZG9ubHkoKSxhdmFpbEhlaWdodDp0aGlzLl9hdmFpbEhlaWdodC5yZWFkb25seSgpLHJlbW92ZTooKT0+e2NvbnN0IGU9dGhpcy5fb3duZXIudmFsdWUoKTtlJiZlLnJlbW92ZSYmZS5yZW1vdmUoKX0sbmVnb3RpYXRlV2lkdGg6ZT0+e2NvbnN0IHQ9dGhpcy5fb3duZXIudmFsdWUoKTt0JiZ0Lm5lZ290aWF0ZVdpZHRoJiZ0Lm5lZ290aWF0ZVdpZHRoKGUpfSxuZWdvdGlhdGVIZWlnaHQ6ZT0+e2NvbnN0IHQ9dGhpcy5fb3duZXIudmFsdWUoKTt0JiZ0Lm5lZ290aWF0ZUhlaWdodCYmdC5uZWdvdGlhdGVIZWlnaHQoZSl9LHJlcXVlc3RGdWxsc2NyZWVuOigpPT57Y29uc3QgZT10aGlzLl9vd25lci52YWx1ZSgpO2UmJmUucmVxdWVzdEZ1bGxzY3JlZW4mJmUucmVxdWVzdEZ1bGxzY3JlZW4oKX0sZXhpdEZ1bGxzY3JlZW46KCk9Pntjb25zdCBlPXRoaXMuX293bmVyLnZhbHVlKCk7ZSYmZS5leGl0RnVsbHNjcmVlbiYmZS5leGl0RnVsbHNjcmVlbigpfSxkZXRhY2g6ZT0+e2NvbnN0IHQ9dGhpcy5fb3duZXIudmFsdWUoKTt0JiZ0LmRldGFjaCYmdC5kZXRhY2goZSl9LGF0dGFjaDooKT0+e2NvbnN0IGU9dGhpcy5fb3duZXIudmFsdWUoKTtlJiZlLmF0dGFjaCYmZS5hdHRhY2goKX19LGUmJnRoaXMucHVzaE93bmVyKGUpfWRlc3Ryb3koKXtmb3IoY29uc3QgZSBvZiB0aGlzLl9vd25lcnNTdGFjayl0aGlzLl91bnN1YnNjcmliZU93bmVyKGUpfWJyaWRnZSgpe3JldHVybiB0aGlzLl9icmlkZ2V9cHVzaE93bmVyKGUpe2lmKCFlLmFsaXZlLnZhbHVlKCkpcmV0dXJuO2Zvcihjb25zdCBlIG9mIHRoaXMuX293bmVyc1N0YWNrKXRoaXMuX3Vuc3Vic2NyaWJlT3duZXIoZSk7Y29uc3QgdD17b3duZXI6ZX07dGhpcy5fb3duZXJzU3RhY2sucHVzaCh0KSx0aGlzLl9zdWJzY3JpYmVPd25lcih0KX1fc3Vic2NyaWJlT3duZXIoZSl7Y29uc3QgdD1lLm93bmVyO2lmKGUuZGVhdGhXYXRjaGVyfHwodGhpcy5fYWxpdmUuc2V0VmFsdWUoITApLGUuZGVhdGhXYXRjaGVyPXQuYWxpdmUuc3Bhd24oKSxlLmRlYXRoV2F0Y2hlci5zdWJzY3JpYmUoKHQ9Pnt0fHx0aGlzLl9kZWFkSGFuZGxlcihlKX0pKSksCnRoaXMuX293bmVyLnNldFZhbHVlKHQpLCFlLnN1YnNjcmlwdGlvbnMpe2NvbnN0IGk9ZS5zdWJzY3JpcHRpb25zPVtdO3RoaXMuX3Zpc2libGUuc2V0VmFsdWUoITEpO2NvbnN0IHM9KGUsdCk9PntpZihlKXtjb25zdCBzPWUuc3Bhd24oKTtpLnB1c2gocykscy5zdWJzY3JpYmUoKGU9Pnt0LnNldFZhbHVlKGUpfSkse2NhbGxXaXRoTGFzdDohMH0pfWVsc2UgdC5kZWxldGVWYWx1ZSgpfTtzKHQuY29udGFpbmVyLHRoaXMuX2NvbnRhaW5lcikscyh0LndpZHRoLHRoaXMuX3dpZHRoKSxzKHQuaGVpZ2h0LHRoaXMuX2hlaWdodCkscyh0LmZ1bGxzY3JlZW4sdGhpcy5fZnVsbHNjcmVlbikscyh0LmRldGFjaGFibGUsdGhpcy5fZGV0YWNoYWJsZSkscyh0LmZ1bGxzY3JlZW5hYmxlLHRoaXMuX2Z1bGxzY3JlZW5hYmxlKSxzKHQuYXZhaWxXaWR0aCx0aGlzLl9hdmFpbFdpZHRoKSxzKHQuYXZhaWxIZWlnaHQsdGhpcy5fYXZhaWxIZWlnaHQpLHModC52aXNpYmxlLHRoaXMuX3Zpc2libGUpfX1fdW5zdWJzY3JpYmVPd25lcihlLHQpe2lmKGUuc3Vic2NyaXB0aW9ucyl7Zm9yKGNvbnN0IHQgb2YgZS5zdWJzY3JpcHRpb25zKXQudW5zdWJzY3JpYmUoKTtlLnN1YnNjcmlwdGlvbnM9bnVsbH10JiZlLmRlYXRoV2F0Y2hlciYmKGUuZGVhdGhXYXRjaGVyLnVuc3Vic2NyaWJlKCksZS5kZWF0aFdhdGNoZXI9bnVsbCl9X2RlYWRIYW5kbGVyKGUpe2NvbnN0IHQ9dGhpcy5fb3duZXJzU3RhY2suaW5kZXhPZihlKTsoMCxzLmFzc2VydCkoLTEhPT10LCJzYW5pdGl6ZWQgb3duZXIgc2hvdWxkIGJlIGluIHN0YWNrIik7Zm9yKGxldCBlPXRoaXMuX293bmVyc1N0YWNrLmxlbmd0aC0xO2U+PXQ7ZS0tKXRoaXMuX3Vuc3Vic2NyaWJlT3duZXIodGhpcy5fb3duZXJzU3RhY2tbZV0sITApO3RoaXMuX293bmVyc1N0YWNrLmxlbmd0aD10LHQ+MD90aGlzLl9zdWJzY3JpYmVPd25lcih0aGlzLl9vd25lcnNTdGFja1t0LTFdKToodGhpcy5fYWxpdmUuc2V0VmFsdWUoITEpLHRoaXMuX293bmVyLmRlbGV0ZVZhbHVlKCkpfX19LDMxNzQ2MihlLHQsaSl7InVzZSBzdHJpY3QiO2kuZCh0LHtWaXNpYmlsaXR5QXBpOigpPT5ufSk7dmFyIHM9aSgyMzIzNjQpO2NsYXNzIG57Y29uc3RydWN0b3IoZSl7bGV0IHQ7dGhpcy5pc1Zpc2libGU9bmV3IHMuV2F0Y2hlZFZhbHVlKCEwKTtsZXQgaT1udWxsO2Zvcihjb25zdCBzIG9mWyIiLCJtb3oiLCJtcyIsIndlYmtpdCJdKXtjb25zdCBuPXM/YCR7c31IaWRkZW5gOiJoaWRkZW4iO2lmKG4gaW4gZSl7dD1gJHtzfXZpc2liaWxpdHljaGFuZ2VgLGk9KCk9Pnt0aGlzLmlzVmlzaWJsZS5zZXRWYWx1ZSghZVtuXSl9LGkoKSxlLmFkZEV2ZW50TGlzdGVuZXIodCxpLCExKTticmVha319dGhpcy5kZXN0cm95PSgpPT57aSYmKGUucmVtb3ZlRXZlbnRMaXN0ZW5lcih0LGksITEpLGk9bnVsbCl9fX19LDI5NjI2MihlLHQsaSl7InVzZSBzdHJpY3QiO2kuZCh0LHtEaWFsb2dSZW5kZXJlcjooKT0+bn0pO3ZhciBzPWkoMjMyMzY0KTtjbGFzcyBue2NvbnN0cnVjdG9yKCl7dGhpcy5fY29udGFpbmVyPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLHRoaXMuX3Zpc2liaWxpdHk9bmV3IHMuV2F0Y2hlZFZhbHVlKCExKSx0aGlzLl9yb290SW5zdGFuY2U9bnVsbH12aXNpYmxlKCl7cmV0dXJuIHRoaXMuX3Zpc2liaWxpdHkucmVhZG9ubHkoKX1fc2V0VmlzaWJpbGl0eShlKXt0aGlzLl92aXNpYmlsaXR5LnNldFZhbHVlKGUpfX19LDEzODYzOChlLHQsaSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHMoZSx0KXtpZighZSl0aHJvdyBuZXcgRXJyb3IoIkFzc2VydGlvbiBmYWlsZWQiKyh0P2A6ICR7dH1gOiIiKSl9ZnVuY3Rpb24gbihlLHQpe2lmKHZvaWQgMD09PWUpdGhyb3cgbmV3IEVycm9yKGAke3Q/PyJWYWx1ZSJ9IGlzIHVuZGVmaW5lZGApO3JldHVybiBlfWZ1bmN0aW9uIHIoZSx0KXtpZihudWxsPT09ZSl0aHJvdyBuZXcgRXJyb3IoYCR7dD8/IlZhbHVlIn0gaXMgbnVsbGApO3JldHVybiBlfWZ1bmN0aW9uIG8oZSx0KXtyZXR1cm4gcihuKGUsdCksdCl9ZnVuY3Rpb24gYShlKXt9aS5kKHQse2Fzc2VydDooKT0+cyxlbnN1cmU6KCk9Pm8sZW5zdXJlRGVmaW5lZDooKT0+bixlbnN1cmVOZXZlcjooKT0+YSxlbnN1cmVOb3ROdWxsOigpPT5yfSl9LDIxNDk4NyhlLHQsaSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHMoZSl7bGV0IHQ9bnVsbDtyZXR1cm4oaSwuLi5zKT0+KHQ/LmFib3J0KCksdD1uZXcgQWJvcnRDb250cm9sbGVyLGk/LmFib3J0ZWQ/dC5hYm9ydCgpOmk/LmFkZEV2ZW50TGlzdGVuZXIoImFib3J0IiwoKCk9PnQ/LmFib3J0KCkpLHtvbmNlOiEwfSksZSh0LnNpZ25hbCwuLi5zKSl9ZnVuY3Rpb24gbihlKXtpZighbChlKSl0aHJvdyBlfWZ1bmN0aW9uIHIoZSl7aWYobChlKSl0aHJvdyBlfWZ1bmN0aW9uIG8oZSl7cmV0dXJuIGU/LmFib3J0ZWQ/UHJvbWlzZS5yZWplY3QoYSgpKTpuZXcgUHJvbWlzZSgoKHQsaSk9PntlPy5hZGRFdmVudExpc3RlbmVyKCJhYm9ydCIsKCgpPT5pKGEoKSkpLHtvbmNlOiEwfSl9KSl9ZnVuY3Rpb24gYSgpe3JldHVybiBuZXcgRE9NRXhjZXB0aW9uKCJBYm9ydGVkIiwiQWJvcnRFcnJvciIpfWZ1bmN0aW9uIGwoZSl7cmV0dXJuIGUgaW5zdGFuY2VvZiBFcnJvciYmIkFib3J0RXJyb3IiPT09ZS5uYW1lfHwib2JqZWN0Ij09dHlwZW9mIGUmJm51bGwhPT1lJiYibmFtZSJpbiBlJiYiQWJvcnRFcnJvciI9PT1lLm5hbWV9ZnVuY3Rpb24gYyhlLHQpe3JldHVybiBQcm9taXNlLnJhY2UoW28oZSksdF0pfWFzeW5jIGZ1bmN0aW9uIGgoZSx0KXtsZXQgaTt0cnl7YXdhaXQgYyhlLG5ldyBQcm9taXNlKChlPT57aT1zZXRUaW1lb3V0KGUsdCl9KSkpfWZpbmFsbHl7Y2xlYXJUaW1lb3V0KGkpfX1pLmQodCx7Y3JlYXRlQWJvcnRFcnJvcjooKT0+YSxkZWxheTooKT0+aCxpc0Fib3J0RXJyb3I6KCk9PmwscmVzcGVjdEFib3J0OigpPT5jLHJlc3BlY3RMYXRlc3Q6KCk9PnMscmV0aHJvd0Fib3J0RXJyb3I6KCk9PnIsc2tpcEFib3J0RXJyb3I6KCk9Pm59KX0sNTU3NTEzKGUsdCxpKXsidXNlIHN0cmljdCI7aS5kKHQse2lzQ2FuY2VsbGVkOigpPT5yLAptYWtlQ2FuY2VsYWJsZTooKT0+bn0pO2NsYXNzIHMgZXh0ZW5kcyBFcnJvcntjb25zdHJ1Y3Rvcigpe3N1cGVyKCJDYW5jZWxUb2tlbiIpfX1mdW5jdGlvbiBuKGUpe2xldCB0PSExO3JldHVybntwcm9taXNlOm5ldyBQcm9taXNlKCgoaSxuKT0+e2UudGhlbigoZT0+dD9uKG5ldyBzKTppKGUpKSksZS5jYXRjaCgoZT0+bih0P25ldyBzOmUpKSl9KSksY2FuY2VsKCl7dD0hMH19fWZ1bmN0aW9uIHIoZSl7cmV0dXJuIGUgaW5zdGFuY2VvZiBzfX0sMTc1Mzk1KGUsdCxpKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gcyhlKXtyZXR1cm4gZS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKStlLnN1YnN0cmluZygxKX1pLmQodCx7Y2FwaXRhbGl6ZUZpcnN0TGV0dGVyOigpPT5zfSl9LDU1NjkxMShlLHQsaSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHMoZSl7bGV0IHQ7aWYoIm9iamVjdCIhPXR5cGVvZiBlfHxudWxsPT1lfHwibnVtYmVyIj09dHlwZW9mIGUubm9kZVR5cGUpdD1lO2Vsc2UgaWYoZSBpbnN0YW5jZW9mIERhdGUpdD1uZXcgRGF0ZShlLnZhbHVlT2YoKSk7ZWxzZSBpZihBcnJheS5pc0FycmF5KGUpKXt0PVtdO2xldCBpPTA7Y29uc3Qgbj1lLmxlbmd0aDtmb3IoO2k8bjtpKyspT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUsaSkmJih0W2ldPXMoZVtpXSkpfWVsc2V7dD17fTtmb3IoY29uc3QgaSBpbiBlKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLGkpJiYodFtpXT1zKGVbaV0pKX1yZXR1cm4gdH1pLmQodCx7ZGVlcENvcHk6KCk9PnN9KX0sMTMxMjk0KGUsdCxpKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gcyhlKXtjb25zdCB0PU9iamVjdC5jcmVhdGUoZSk7cmV0dXJuIHQucmVsZWFzZT0oKT0+e30sdC5vd25lcnNoaXA9KCk9PnQsdH1mdW5jdGlvbiBuKGUpe2NvbnN0IHQ9ZTtyZXR1cm4gdC5yZWxlYXNlPSgpPT50LmRlc3Ryb3koKSx0Lm93bmVyc2hpcD0oKT0+dCx0fWkuZCh0LHtvd25lcnNoaXA6KCk9Pm4sd2Vha1JlZmVyZW5jZTooKT0+c30pfSw2NDA3NDQoZSx0LGkpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBzKGUsdCxpKXtyZXR1cm4gTWF0aC5taW4oTWF0aC5tYXgoZSx0KSxpKX1mdW5jdGlvbiBuKGUpe3JldHVybiBlPDA/LTE6ZT4wPzE6MH1mdW5jdGlvbiByKGUpe2lmKGU8MClyZXR1cm4hMTtpZihlPjFlMTgpcmV0dXJuITA7Zm9yKGxldCB0PWU7dD4xO3QvPTEwKWlmKHQlMTAhPTApcmV0dXJuITE7cmV0dXJuITB9ZnVuY3Rpb24gbyhlLHQsaSl7cmV0dXJuIHQtZTw9aX1mdW5jdGlvbiBhKGUsdCxpKXtyZXR1cm4gTWF0aC5hYnMoZS10KTxpfWZ1bmN0aW9uIGwoZSl7cmV0dXJuIGU8PTA/TmFOOk1hdGgubG9nKGUpL01hdGgubG9nKDEwKX1mdW5jdGlvbiBjKGUsdCl7cmV0dXJuIGU8dD8tMTplPnQ/MTowfWZ1bmN0aW9uIGgoZSx0PWMpe2lmKGUubGVuZ3RoPDEpdGhyb3cgRXJyb3IoImFycmF5IGlzIGVtcHR5Iik7bGV0IGk9ZVswXTtmb3IobGV0IHM9MDtzPGUubGVuZ3RoOysrcyl0KGVbc10saSk8MCYmKGk9ZVtzXSk7cmV0dXJuIGl9ZnVuY3Rpb24gZChlLHQ9Yyl7aWYoZS5sZW5ndGg8MSl0aHJvdyBFcnJvcigiYXJyYXkgaXMgZW1wdHkiKTtsZXQgaT1lWzBdO2ZvcihsZXQgcz0wO3M8ZS5sZW5ndGg7KytzKXQoZVtzXSxpKT4wJiYoaT1lW3NdKTtyZXR1cm4gaX1mdW5jdGlvbiB1KGUpe2NvbnN0IHQ9TWF0aC5jZWlsKGUpO3JldHVybiB0JTIhPTA/dC0xOnR9ZnVuY3Rpb24gcChlKXtjb25zdCB0PU1hdGguY2VpbChlKTtyZXR1cm4gdCUyPT0wP3QtMTp0fWZ1bmN0aW9uIF8oZSl7cmV0dXJuIGU+MD9NYXRoLmZsb29yKGUpOk1hdGguY2VpbChlKX1mdW5jdGlvbiBtKGUpe3JldHVybiBlJTI9PTB9ZnVuY3Rpb24gZyhlKXtyZXR1cm4gTWF0aC5yb3VuZCgxZTEwKmUpLzFlMTB9aS5kKHQse2NlaWxlZEV2ZW46KCk9PnUsY2VpbGVkT2RkOigpPT5wLGNsYW1wOigpPT5zLGVxdWFsOigpPT5hLGZpeENvbXB1dGF0aW9uRXJyb3I6KCk9PmcsZ3JlYXRlck9yRXF1YWw6KCk9Pm8saXNCYXNlRGVjaW1hbDooKT0+cixpc0V2ZW46KCk9Pm0sbG9nMTA6KCk9PmwsbWF4OigpPT5kLG1pbjooKT0+aCxzaWduOigpPT5uLHRvSW50OigpPT5ffSl9LDYzODU3MShlLHQsaSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHMoZSx0KXtjb25zdCBpPW5ldyBNYXA7cmV0dXJuIGZ1bmN0aW9uKC4uLnMpe2NvbnN0IG49IiIrKHQ/dC5hcHBseShudWxsLHMpOnNbMF0pO2lmKCFpLmhhcyhuKSl7Y29uc3QgdD1lLmFwcGx5KHRoaXMscyk7cmV0dXJuIGkuc2V0KG4sdCksdH1yZXR1cm4gaS5nZXQobil9fWkuZCh0LHttZW1vaXplOigpPT5zfSl9LDkxNDc3NShlLHQsaSl7InVzZSBzdHJpY3QiO2kuZCh0LHtwYXJzZVR6T2Zmc2V0OigpPT5ufSk7dmFyIHM9aSg3MDA4MDkpO2Z1bmN0aW9uIG4oZSx0PURhdGUubm93KCkpe2NvbnN0IGk9KDAscy5nZXRfdGltZXpvbmUpKGUpLm9mZnNldF91dGModCk7bGV0IG49IiI7Y29uc3Qgcj1pLzFlMy82MC82MDtyJTEmJihuPSI6IitNYXRoLnJvdW5kKE1hdGguYWJzKHIlMSo2MCkpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwiMCIpKTtsZXQgbz0iIjtyZXR1cm4gbz1yPjA/IisiKyhyLXIlMSkrbjowPT09cj8iIjpTdHJpbmcoci1yJTErbikse29mZnNldDppLHN0cmluZzoiVVRDIitvfX19LDM3ODA4KGUsdCxpKXsidXNlIHN0cmljdCI7aS5kKHQse2NyZWF0ZVByaW1pdGl2ZVByb3BlcnR5OigpPT5ufSk7dmFyIHM9aSg3NjgyOTIpO2Z1bmN0aW9uIG4oZSl7cmV0dXJuIG5ldyBzLlByb3BlcnR5KGUpfX0sNjM2OTEyKGUsdCxpKXsidXNlIHN0cmljdCI7aS5kKHQse1Byb3BlcnR5QmFzZTooKT0+cn0pO3ZhciBzPWkoMTM4NjM4KSxuPWkoOTQ4MzgwKTtjbGFzcyBye2NvbnN0cnVjdG9yKCl7dGhpcy5fbGlzdGVuZXJzPW5ldyBuLkRlbGVnYXRlLHRoaXMuX211dGVDaGlsZENoYW5nZXM9ITEsdGhpcy5fb3duZXI9bnVsbCx0aGlzLl9uYW1lPSIifW5hbWVJbk93bmVyKCl7cmV0dXJuIHRoaXMuX25hbWV9c2V0TmFtZUluT3duZXIoZSl7dGhpcy5fbmFtZT1lfW93bmVyKCl7cmV0dXJuIHRoaXMuX293bmVyfXNldE93bmVyKGUpewp0aGlzLl9vd25lcj1lfXBhdGhUb1Jvb3QoKXtjb25zdCBlPXRoaXMuX293bmVyPy5wYXRoVG9Sb290KCk7cmV0dXJuIGU/YCR7ZX0uJHt0aGlzLl9uYW1lfWA6dGhpcy5fbmFtZX1wYXRoVG9Sb290UHJvcGVydHkoKXtpZighdGhpcy5fb3duZXIpcmV0dXJuIiI7Y29uc3QgZT10aGlzLl9vd25lci5wYXRoVG9Sb290UHJvcGVydHk/LigpO3JldHVybiBlP2Ake2V9LiR7dGhpcy5fbmFtZX1gOnRoaXMuX25hbWV9cmVtb3ZlUHJvcGVydHkoZSl7KDAscy5hc3NlcnQpKCExLGBUcnlpbmcgdG8gY2FsbCAicmVtb3ZlUHJvcGVydHkiIG9uIHByb3BlcnR5ICR7dGhpcy5wYXRoVG9Sb290KCl9YCl9YWRkQ2hpbGQoZSx0KXsoMCxzLmFzc2VydCkoITEsYFRyeWluZyB0byBjYWxsICJhZGRDaGlsZCIgb24gcHJvcGVydHkgJHt0aGlzLnBhdGhUb1Jvb3QoKX1gKX1oYXNDaGlsZChlKXtyZXR1cm4hMX1jaGlsZENvdW50KCl7cmV0dXJuIDB9Y2hpbGROYW1lcygpe3JldHVybltdfWNoaWxkcygpeygwLHMuYXNzZXJ0KSghMSxgVHJ5aW5nIHRvIGNhbGwgImNoaWxkcyIgb24gcHJvcGVydHkgJHt0aGlzLnBhdGhUb1Jvb3QoKX1gKX1zdGF0ZShlLHQpe3JldHVybiB0aGlzLnZhbHVlKCl9bWVyZ2UoZSx0KXsoMCxzLmFzc2VydCkoITEsYFRyeWluZyB0byBjYWxsICJtZXJnZSIgb24gcHJvcGVydHkgJHt0aGlzLnBhdGhUb1Jvb3QoKX1gKX1tZXJnZUFuZEZpcmUoZSl7KDAscy5hc3NlcnQpKCExLGBUcnlpbmcgdG8gY2FsbCAibWVyZ2VBbmRGaXJlIiBvbiBwcm9wZXJ0eSAke3RoaXMucGF0aFRvUm9vdCgpfWApfWNoaWxkKGUpe2lmKHRoaXMuaGFzQ2hpbGQoZSkpcmV0dXJuIHRoaXMuY2hpbGRzKClbZV19bXV0ZUNoaWxkQ2hhbmdlcyhlKXt0aGlzLl9tdXRlQ2hpbGRDaGFuZ2VzPWV9ZmlyZUNoYW5nZWQoKXt0aGlzLl9saXN0ZW5lcnMuZmlyZSh0aGlzLHRoaXMucGF0aFRvUm9vdFByb3BlcnR5KCkpfWxpc3RlbmVycygpe3JldHVybiB0aGlzLl9saXN0ZW5lcnN9c3Vic2NyaWJlKGUsdCl7dGhpcy5saXN0ZW5lcnMoKS5zdWJzY3JpYmUoZSx0LCExKX11bnN1YnNjcmliZShlLHQpe3RoaXMubGlzdGVuZXJzKCkudW5zdWJzY3JpYmUoZSx0KX11bnN1YnNjcmliZUFsbChlKXt0aGlzLmxpc3RlbmVycygpLnVuc3Vic2NyaWJlQWxsKGUpfX19LDkyNTI4MihlLHQsaSl7InVzZSBzdHJpY3QiO2kuZCh0LHtEYXRhVHlwZXM6KCk9PnMsY3JlYXRlUHJvcGVydHlTY2hlbWE6KCk9Pm0sZGF0YVR5cGU6KCk9PmQsZXh0cmFjdFN0YXRlV2l0aFNjaGVtYTooKT0+Zyxpc0FycmF5U2NoZW1hOigpPT5fLHZhbGlkYXRlU2NoZW1hOigpPT5wfSk7dmFyIHMsbj1pKDIwNjY3Mykscj1pKDMwNDIyMSksbz1pKDgxNzM1MCksYT1pKDI5NTYzNSksbD1pKDg4MDExNSksYz1pKDkxNzM3MSksaD1pKDEzODYzOCk7ZnVuY3Rpb24gZChlKXtyZXR1cm4oMCxuLmRlZmF1bHQpKGUpP3MuTlVNQkVSOigwLHIuZGVmYXVsdCkoZSk/cy5TVFJJTkc6KDAsby5kZWZhdWx0KShlKT9zLkJPT0xFQU46KDAsYS5kZWZhdWx0KShlKT9zLkFSUkFZOm51bGw9PT1lP3MuTlVMTDoib2JqZWN0Ij09dHlwZW9mIGU/cy5PQkpFQ1Q6cy5VTktOT1dOfSFmdW5jdGlvbihlKXtlLlNUUklORz0ic3RyaW5nIixlLk5VTUJFUj0ibnVtYmVyIixlLkJPT0xFQU49ImJvb2xlYW4iLGUuT0JKRUNUPSJvYmplY3QiLGUuQVJSQVk9ImFycmF5IixlLk5VTEw9Im51bGwiLGUuVU5LTk9XTj0idW5rbm93biJ9KHN8fChzPXt9KSk7Y29uc3QgdT1bcy5BUlJBWSxzLk9CSkVDVF07ZnVuY3Rpb24gcChlLHQpe3RyeXtjb25zdCBpPWQoZSk7aWYoKDAsaC5hc3NlcnQpKGk9PT10LnR5cGV8fGk9PT1zLk5VTEwmJnQubnVsbGFibGV8fHQudHlwZT09PXMuVU5LTk9XTiksdS5pbmNsdWRlcyhpKSlzd2l0Y2godC50eXBlKXtjYXNlIHMuQVJSQVk6KDAsaC5hc3NlcnQpKGUuZXZlcnkoKGU9PnAoZSx0LnN1YnNjaGVtYSkpKSk7YnJlYWs7Y2FzZSBzLk9CSkVDVDpmb3IoY29uc3RbaSxzXW9mIE9iamVjdC5lbnRyaWVzKHQuc3Vic2NoZW1hKSkoMCxoLmFzc2VydCkocChlW2ldLHMpKX1yZXR1cm4hMH1jYXRjaHtyZXR1cm4hMX19ZnVuY3Rpb24gXyhlKXtyZXR1cm4gZS50eXBlPT09cy5BUlJBWX1mdW5jdGlvbiBtKGUsdCl7bGV0IGk7Y29uc3Qgbj1kKGUpO3N3aXRjaChuKXtjYXNlIHMuTlVNQkVSOmNhc2Ugcy5TVFJJTkc6Y2FzZSBzLkJPT0xFQU46aT17dHlwZTpuLHNhdmVGbGFnczp0fTticmVhaztjYXNlIHMuQVJSQVk6aT17dHlwZTpzLkFSUkFZLHNhdmVGbGFnczp0LHN1YnNjaGVtYTptKGVbMF0sdCl9O2JyZWFrO2Nhc2Ugcy5PQkpFQ1Q6e2NvbnN0IG49e307Zm9yKGNvbnN0W2ksc11vZiBPYmplY3QuZW50cmllcyhlKSluW2ldPW0ocyx0KTtpPXt0eXBlOnMuT0JKRUNULHNhdmVGbGFnczp0LHN1YnNjaGVtYTpufTticmVha31kZWZhdWx0Omk9e3R5cGU6cy5VTktOT1dOLHNhdmVGbGFnczp0fX1yZXR1cm4gaX1mdW5jdGlvbiBnKGUsdCxpKXtpZighZnVuY3Rpb24oZSl7cmV0dXJuIGUudHlwZT09PXMuT0JKRUNUfSh0KXx8ISgwLGwuZGVmYXVsdCkoZSkpcmV0dXJuIGU7Y29uc3Qgbj1PYmplY3Qua2V5cyhlKTtmb3IoY29uc3QgcyBvZiBuKXtjb25zdCBuPXQuc3Vic2NoZW1hW3NdO3ZvaWQgMD09PXQuc2F2ZUZsYWdzfHxufHwoMCxjLmRlZmF1bHQpKGUscyk7Y29uc3Qgcj1uPy5zYXZlRmxhZ3M7dm9pZCAwPT09cnx8ciZpfHwoMCxjLmRlZmF1bHQpKGUscyksbiYmZyhlW3NdLG4saSl9cmV0dXJuIGV9fSw3NjgyOTIoZSx0LGkpeyJ1c2Ugc3RyaWN0IjtpLmQodCx7UHJvcGVydHk6KCk9Pm0saXNQcmltaXRpdmVUeXBlOigpPT5ffSk7dmFyIHM9aSgyMDY2NzMpLG49aSgzMDQyMjEpLHI9aSg4MTczNTApLG89aSg5MjgxMzIpLGE9aSgyOTU2MzUpLGw9aSgxMzg2MzgpLGM9aSgyMjEwNjEpLGg9aSgxMzEyOTQpLGQ9aSg2MzY5MTIpLHU9aSg5MjUyODIpO2NvbnN0IHA9KDAsYy5nZXRMb2dnZXIpKCJQcm9wZXJ0eSIpO2Z1bmN0aW9uIF8oZSl7cmV0dXJuIG51bGw9PT1lfHwoMCxzLmRlZmF1bHQpKGUpJiZOdW1iZXIuaXNGaW5pdGUoZSl8fCgwLG4uZGVmYXVsdCkoZSl8fCgwLHIuZGVmYXVsdCkoZSkKfWNsYXNzIG0gZXh0ZW5kcyBkLlByb3BlcnR5QmFzZXtjb25zdHJ1Y3RvcihlLHQpe2lmKHN1cGVyKCksdGhpcy5fY2hpbGRzPVtdLHRoaXMuX2RlcGVuZGVudHM9W10sdGhpcy5fc2NoZW1hPXR8fCgwLHUuY3JlYXRlUHJvcGVydHlTY2hlbWEpKGUpLHZvaWQgMCE9PWUpaWYoKDAsdS52YWxpZGF0ZVNjaGVtYSkoZSx0aGlzLl9zY2hlbWEpfHxwLmxvZ1dhcm4oYFRoZSBzdGF0ZSB3aXRoIGEgZGF0YSB0eXBlOiAkeygwLHUuZGF0YVR5cGUpKGUpfSBkb2VzIG5vdCBtYXRjaCBhIHNjaGVtYWApLF8oZSkpdGhpcy5fdmFsdWU9ZTtlbHNle2xldCB0PU9iamVjdC5lbnRyaWVzKGUpOygwLHUuaXNBcnJheVNjaGVtYSkodGhpcy5fc2NoZW1hKSYmKHQ9dC5maWx0ZXIoKChbZV0pPT4hTnVtYmVyLmlzTmFOKCtlKSkpKTtmb3IoY29uc3RbZSxpXW9mIHQpdGhpcy5hZGRQcm9wZXJ0eShlLGkpfX1kZXN0cm95KCl7dGhpcy5saXN0ZW5lcnMoKS5kZXN0cm95KCk7Zm9yKGNvbnN0IGUgb2YgdGhpcy5fY2hpbGRzKXRoaXMuY2hpbGQoZSk/LmRlc3Ryb3k/LigpfW1lcmdlKGUsdCl7bGV0IGk9bnVsbCxzPTA7aWYodCYmKGk9W10scz1pLmxlbmd0aCksdm9pZCAwPT09ZSlyZXR1cm4gaTtpZihfKGUpKXJldHVybiB0aGlzLl92YWx1ZSE9PWUmJmk/LnB1c2godGhpcyksdGhpcy5fdmFsdWU9ZSxpO2lmKCgwLGEuZGVmYXVsdCkoZSkpeygwLHUuaXNBcnJheVNjaGVtYSkodGhpcy5fc2NoZW1hKXx8cC5sb2dXYXJuKCJQcm9wZXJ0eSBpcyBub3QgYW4gYXJyYXkiKTtmb3IobGV0IHM9MDtzPGUubGVuZ3RoO3MrKyl7Y29uc3Qgbj10aGlzLmNoaWxkcygpW3NdO2lmKG4pe2NvbnN0IHI9bi5tZXJnZShlW3NdLHQpO2k/LnB1c2goLi4ucil9ZWxzZXtjb25zdCB0PXRoaXMuYWRkUHJvcGVydHkoYCR7c31gLGVbc10pO2k/LnB1c2godCl9fX1lbHNle2xldCBzPU9iamVjdC5lbnRyaWVzKGUpOygwLHUuaXNBcnJheVNjaGVtYSkodGhpcy5fc2NoZW1hKSYmKHM9cy5maWx0ZXIoKChbZV0pPT4hTnVtYmVyLmlzTmFOKCtlKSkpKTtmb3IoY29uc3RbZSxuXW9mIHMpe2NvbnN0IHM9dGhpcy5jaGlsZHMoKVtlXTtpZihzKXtjb25zdCBlPXMubWVyZ2Uobix0KTtpPy5wdXNoKC4uLmUpfWVsc2V7Y29uc3QgdD10aGlzLmFkZFByb3BlcnR5KGUsbik7aT8ucHVzaCh0KX19fXJldHVybiBpJiZpLmxlbmd0aD5zJiZpLnB1c2godGhpcyksaX1tZXJnZUFuZEZpcmUoZSl7Y29uc3QgdD0oMCxsLmVuc3VyZU5vdE51bGwpKHRoaXMubWVyZ2UoZSwhMCkpO3RoaXMuX2ZpcmVNZXJnZUFuZEZpcmVDaGFuZ2VkUHJvcHModCl9c3RhdGUoZSx0KXtjb25zdCBpPSgwLG8uZGVmYXVsdCkodGhpcy52YWx1ZSk/dGhpcy52YWx1ZSgpOnZvaWQgMDtpZih2b2lkIDAhPT1pKXJldHVybiBpO2NvbnN0IHM9KDAsdS5pc0FycmF5U2NoZW1hKSh0aGlzLl9zY2hlbWEpP1tdOnt9O2Zvcihjb25zdCBpIG9mIHRoaXMuX2NoaWxkcyl7aWYoZSYmLTEhPT1lLmluZGV4T2YoaSkpY29udGludWU7aWYoKDAsdS5pc0FycmF5U2NoZW1hKSh0aGlzLl9zY2hlbWEpJiZOdW1iZXIuaXNOYU4oK2kpKWNvbnRpbnVlO2lmKHZvaWQgMCE9PXQmJiJzdWJzY2hlbWEiaW4gdGhpcy5fc2NoZW1hKXtjb25zdCBlPSgwLHUuaXNBcnJheVNjaGVtYSkodGhpcy5fc2NoZW1hKT90aGlzLl9zY2hlbWEuc3Vic2NoZW1hOnRoaXMuX3NjaGVtYS5zdWJzY2hlbWFbaV07aWYodm9pZCAwIT09dGhpcy5fc2NoZW1hLnNhdmVGbGFncyYmIWUpY29udGludWU7aWYodm9pZCAwIT09ZT8uc2F2ZUZsYWdzJiYhKGUuc2F2ZUZsYWdzJnQpKWNvbnRpbnVlfWNvbnN0IG49dGhpcy5jaGlsZHMoKVtpXTtsZXQgcjtpZihlKXtjb25zdCBzPVtdO2Zvcihjb25zdCB0IG9mIGUpdC5zdGFydHNXaXRoKGkrIi4iKSYmcy5wdXNoKHQuc3Vic3RyaW5nKGkubGVuZ3RoKzEpKTtyPW4/LnN0YXRlKHMsdCl9ZWxzZSByPW4/LnN0YXRlKCk7KHZvaWQgMCE9PXJ8fG4/LnN0b3JlU3RhdGVJZlVuZGVmaW5lZCgpKSYmKCgwLGEuZGVmYXVsdCkocyk/c1sraV09cjpzW2ldPXIpfXJldHVybiBzfWNsb25lKCl7cmV0dXJuIG5ldyBtKHRoaXMuc3RhdGUoKSl9dmFsdWUoKXtyZXR1cm4gdGhpcy5fdmFsdWV9Y2hpbGRDb3VudCgpe3JldHVybiB0aGlzLl9jaGlsZHMubGVuZ3RofWNoaWxkTmFtZXMoKXtyZXR1cm4gdGhpcy5fY2hpbGRzfWNoaWxkQnlQYXRoKGUpe2xldCB0PXRoaXM7Zm9yKGNvbnN0IGkgb2YgZS5zcGxpdCgiLiIpKXtpZih2b2lkIDA9PT10KWJyZWFrO3Q9dC5jaGlsZChpKX1yZXR1cm4gdH1oYXNDaGlsZChlKXtyZXR1cm4gdGhpcy5fY2hpbGRzLmluY2x1ZGVzKGUpfXNldFZhbHVlKGUsdCl7KHRoaXMuX3ZhbHVlIT09ZXx8dCkmJih0aGlzLl92YWx1ZT1lLHRoaXMuZmlyZUNoYW5nZWQoKSl9c2V0VmFsdWVTaWxlbnRseShlKXt0aGlzLl92YWx1ZT1lfWFkZFByb3BlcnR5KGUsdCl7bGV0IGk7KDAsdS5pc0FycmF5U2NoZW1hKSh0aGlzLl9zY2hlbWEpJiZOdW1iZXIuaXNOYU4oK2UpJiZwLmxvZ1dhcm4oIlByb3BlcnR5IGlzIGFuIGFycmF5IiksdGhpcy5yZW1vdmVQcm9wZXJ0eShlKSx0aGlzLl9zY2hlbWEudHlwZT09PXUuRGF0YVR5cGVzLk9CSkVDVD9pPXRoaXMuX3NjaGVtYS5zdWJzY2hlbWFbZV06dGhpcy5fc2NoZW1hLnR5cGU9PT11LkRhdGFUeXBlcy5BUlJBWSYmKGk9dGhpcy5fc2NoZW1hLnN1YnNjaGVtYSk7Y29uc3Qgcz1uZXcgbSh0LGkpO3JldHVybiB0aGlzW2VdPXMsdGhpcy5fY2hpbGRzLnB1c2goZSkscy5zdWJzY3JpYmUodGhpcywoKGUsdCk9Pnt0aGlzLl9jaGlsZENoYW5nZWQoZSx0KX0pKSxzLnNldE93bmVyKHRoaXMpLHMuc2V0TmFtZUluT3duZXIoZSksc31yZW1vdmVQcm9wZXJ0eShlKXtjb25zdCB0PXRoaXMuY2hpbGQoZSk7dCYmKHQuc2V0TmFtZUluT3duZXIoIiIpLHQuc2V0T3duZXIobnVsbCksdC51bnN1YnNjcmliZUFsbCh0aGlzKSxkZWxldGUgdGhpc1tlXSx0aGlzLl9jaGlsZHM9dGhpcy5fY2hpbGRzLmZpbHRlcigodD0+dCE9PWUpKSl9YWRkQ2hpbGQoZSx0KXtpZigoMCwKdS5pc0FycmF5U2NoZW1hKSh0aGlzLl9zY2hlbWEpJiZOdW1iZXIuaXNOYU4oK2UpKXRocm93IG5ldyBFcnJvcigiUHJvcGVydHkgaXMgYW4gYXJyYXkiKTt0aGlzW2VdJiZ0aGlzLnJlbW92ZVByb3BlcnR5KGUpLHRoaXNbZV09dCwtMT09PXRoaXMuX2NoaWxkcy5pbmRleE9mKGUpJiZ0aGlzLl9jaGlsZHMucHVzaChlKSx0LnN1YnNjcmliZSh0aGlzLCgoZSx0KT0+dGhpcy5fY2hpbGRDaGFuZ2VkKGUsdCkpKSx0LnNldE93bmVyKHRoaXMpLHQuc2V0TmFtZUluT3duZXIoZSl9Y2hpbGRzKCl7cmV0dXJuIHRoaXN9c3RvcmVTdGF0ZUlmVW5kZWZpbmVkKCl7cmV0dXJuITB9b3duZXJzaGlwKCl7cmV0dXJuKDAsaC5vd25lcnNoaXApKHRoaXMpfXdlYWtSZWZlcmVuY2UoKXtyZXR1cm4oMCxoLndlYWtSZWZlcmVuY2UpKHRoaXMpfWFkZERlcGVuZGVudChlKXt0aGlzLl9kZXBlbmRlbnRzLnB1c2goZSl9cmVtb3ZlRGVwZW5kZW50KGUpe2NvbnN0IHQ9dGhpcy5fZGVwZW5kZW50cy5pbmRleE9mKGUpO3Q+PTAmJnRoaXMuX2RlcGVuZGVudHMuc3BsaWNlKHQsMSl9ZGVwZW5kZW50cygpe3JldHVybiB0aGlzLl9kZXBlbmRlbnRzfXN0YXRpYyppdGVyYXRlUHJvcGVydGllcyhlLHQpe2Zvcihjb25zdCBpIG9mIHQpeWllbGRbZS5jaGlsZHMoKVtpXSxpXX1fY2hpbGRDaGFuZ2VkKGUsdCl7dGhpcy5fbXV0ZUNoaWxkQ2hhbmdlc3x8dGhpcy5fbGlzdGVuZXJzLmZpcmUodGhpcyx0KX1fZmlyZU1lcmdlQW5kRmlyZUNoYW5nZWRQcm9wcyhlKXt0aGlzLm11dGVDaGlsZENoYW5nZXMoITApO2Zvcihjb25zdCB0IG9mIGUpdC5tdXRlQ2hpbGRDaGFuZ2VzKCEwKTtmb3IoY29uc3QgdCBvZiBlKXQubXV0ZUNoaWxkQ2hhbmdlcyghMSksdC5maXJlQ2hhbmdlZCgpO3RoaXMubXV0ZUNoaWxkQ2hhbmdlcyghMSl9fX0sNzQxNjkwKGUsdCxpKXsidXNlIHN0cmljdCI7aS5kKHQse2NvbWJpbmVQcm9wZXJ0eTooKT0+bn0pO3ZhciBzPWkoMzc4MDgpO2Z1bmN0aW9uIG4oZSwuLi50KXtjb25zdCBpPSgpPT5lKC4uLnQubWFwKChlPT5lLnZhbHVlKCkpKSksbj0oMCxzLmNyZWF0ZVByaW1pdGl2ZVByb3BlcnR5KShpKCkpLHI9KCk9Pm4uc2V0VmFsdWUoaSgpKSxvPXt9O2Zvcihjb25zdCBlIG9mIHQpZS5zdWJzY3JpYmUobyxyKTtyZXR1cm4gbi5kZXN0cm95PSgpPT57dC5mb3JFYWNoKChlPT5lLnVuc3Vic2NyaWJlQWxsKG8pKSksdC5mb3JFYWNoKChlPT5lLnJlbGVhc2UoKSkpfSxufX0sNTUyMTQ1KGUsdCxpKXsidXNlIHN0cmljdCI7aS5kKHQse2NvbnZlcnRQcm9wZXJ0eVRvV2F0Y2hlZFZhbHVlOigpPT5ufSk7dmFyIHM9aSgyMzIzNjQpO2Z1bmN0aW9uIG4oZSl7Y29uc3QgdD1uZXcgcy5XYXRjaGVkVmFsdWUoZS52YWx1ZSgpKTtsZXQgaT0hMTtlLnN1YnNjcmliZSh0LCgoKT0+e2l8fChpPSEwLHQuc2V0VmFsdWUoZS52YWx1ZSgpKSxpPSExKX0pKTtjb25zdCBuPSgpPT57aXx8KGk9ITAsZS5zZXRWYWx1ZSh0LnZhbHVlKCkpLGk9ITEpfTtyZXR1cm4gdC5zdWJzY3JpYmUobiksdC5zcGF3bigoKCk9PntlLnVuc3Vic2NyaWJlQWxsKHQpLHQudW5zdWJzY3JpYmUobil9KSl9fSwzMTQ4MDYoZSx0LGkpeyJ1c2Ugc3RyaWN0IjtpLmQodCx7Y3JlYXRlV1ZGcm9tUHJvcGVydHk6KCk9Pm59KTt2YXIgcz1pKDI0MTk1Nik7ZnVuY3Rpb24gbihlKXtyZXR1cm4oMCxzLmNyZWF0ZVdWRnJvbUdldHRlckFuZFN1YnNjcmlwdGlvbikoKCgpPT5lLnZhbHVlKCkpLGUpfX0sNDczMDY4KGUsdCxpKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gcyhlKXtyZXR1cm4gZX1pLmQodCx7Y3JlYXRlU2VydmljZURlc2NyaXB0b3I6KCk9PnN9KX0sNTgzMDM4KGUsdCxpKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gcyhlKXtyZXR1cm4gZS5pbmNsdWRlcygiOiIpP2Uuc3BsaXQoIjoiKTpbIiIsZV19aS5kKHQse3NwbGl0U3ltYm9sTmFtZTooKT0+c30pfSw2MDE4NDEoZSx0LGkpeyJ1c2Ugc3RyaWN0IjtpLmQodCx7Y2xvbmU6KCk9Pm8sZGVlcEVxdWFsczooKT0+ZCxoYXNQcm9wZXJ0eTooKT0+Yyxpc0Fic2VudDooKT0+Xyxpc0FycmF5OigpPT51LGlzRXhpc3RlbnQ6KCk9Pm0saXNJbnRlZ2VyOigpPT5mLGlzTmFOOigpPT5wLGlzTnVtYmVyOigpPT5yLGlzT2JqZWN0OigpPT5sLGlzUHJvbWlzZTooKT0+dixpc1NhbWVUeXBlOigpPT5nLGlzU3RyaW5nOigpPT5TLG1lcmdlOigpPT5hLG5vdE51bGw6KCk9Pnksbm90VW5kZWZpbmVkOigpPT5ifSk7Y29uc3Qgcz1uZXcgU2V0KFsiX19wcm90b19fIiwicHJvdG90eXBlIiwiY29uc3RydWN0b3IiXSk7ZnVuY3Rpb24gbihlKXtyZXR1cm4gcy5oYXMoZSl9ZnVuY3Rpb24gcihlKXtyZXR1cm4ibnVtYmVyIj09dHlwZW9mIGUmJmlzRmluaXRlKGUpfWZ1bmN0aW9uIG8oZSl7aWYoIWV8fCJvYmplY3QiIT10eXBlb2YgZSlyZXR1cm4gZTtsZXQgdDt0PUFycmF5LmlzQXJyYXkoZSk/W106e307Zm9yKGNvbnN0IGkgaW4gZSlpZihlLmhhc093blByb3BlcnR5KGkpKXtjb25zdCBzPWVbaV07dFtpXT1zJiYib2JqZWN0Ij09dHlwZW9mIHM/byhzKTpzfXJldHVybiB0fWZ1bmN0aW9uIGEoZSx0KXtpZighbChlKXx8IWwodCkpcmV0dXJuIGU7Zm9yKGNvbnN0W2ksc11vZiBPYmplY3QuZW50cmllcyh0KSluKGkpfHwocyYmKGgocyl8fCF1KHMpJiZPYmplY3QuZ2V0UHJvdG90eXBlT2YocykhPT1PYmplY3QucHJvdG90eXBlKT9lW2ldPXM6KGUuaGFzT3duUHJvcGVydHkoaSkmJmwoZVtpXSl8fCFsKHMpfHwoZVtpXT1BcnJheS5pc0FycmF5KHMpP1tdOnt9KSxsKHMpJiZsKGVbaV0pP2EoZVtpXSxzKTplW2ldPXMpKTtyZXR1cm4gZX1mdW5jdGlvbiBsKGUpe3JldHVybiJvYmplY3QiPT10eXBlb2YgZSYmbnVsbCE9PWV9ZnVuY3Rpb24gYyhlLHQpe3JldHVybiB0IGluIGV9ZnVuY3Rpb24gaChlKXtyZXR1cm4gbnVsbCE9ZSYmKGUuY29uc3RydWN0b3I9PT1GdW5jdGlvbnx8IltvYmplY3QgRnVuY3Rpb25dIj09PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChlKSl9ZnVuY3Rpb24gZChlLHQsaT0iIil7aWYoZT09PXQpcmV0dXJuWyEwLGldO2lmKGgoZSkmJihlPXZvaWQgMCksaCh0KSYmKHQ9dm9pZCAwKSwKbnVsbD09ZXx8bnVsbD09dClyZXR1cm5bZT09PXQsaV07aWYoIm9iamVjdCIhPXR5cGVvZiBlJiYib2JqZWN0IiE9dHlwZW9mIHQpcmV0dXJuW2U9PT10LGldO2lmKEFycmF5LmlzQXJyYXkoZSkmJkFycmF5LmlzQXJyYXkodCkpe2NvbnN0IHM9ZS5sZW5ndGg7aWYocyE9PXQubGVuZ3RoKXJldHVyblshMSxpXTtmb3IobGV0IG49MDtuPHM7bisrKXtjb25zdCBzPWQoZVtuXSx0W25dLGkrIlsiK24rIl0iKTtpZighc1swXSlyZXR1cm4gc31yZXR1cm5bITAsaV19aWYoQXJyYXkuaXNBcnJheShlKXx8QXJyYXkuaXNBcnJheSh0KSlyZXR1cm5bITEsaV07aWYoT2JqZWN0LmtleXMoZSkubGVuZ3RoIT09T2JqZWN0LmtleXModCkubGVuZ3RoKXJldHVyblshMSxpXTtmb3IoY29uc3QgcyBpbiBlKXtjb25zdCBuPWQoZVtzXSx0W3NdLGkrIlsiK3MrIl0iKTtpZighblswXSlyZXR1cm4gbn1yZXR1cm5bITAsaV19Y29uc3QgdT1BcnJheS5pc0FycmF5fHxmdW5jdGlvbihlKXtyZXR1cm4iW29iamVjdCBBcnJheV0iPT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGUpfTtmdW5jdGlvbiBwKGUpe3JldHVybiEoZTw9MHx8ZT4wKX1mdW5jdGlvbiBfKGUpe3JldHVybiBudWxsPT1lfWZ1bmN0aW9uIG0oZSl7cmV0dXJuIG51bGwhPWV9ZnVuY3Rpb24gZyhlLHQpe3JldHVybiBOdW1iZXIuaXNOYU4oZSl8fE51bWJlci5pc05hTih0KT9OdW1iZXIuaXNOYU4oZSk9PT1OdW1iZXIuaXNOYU4odCk6e30udG9TdHJpbmcuY2FsbChlKT09PXt9LnRvU3RyaW5nLmNhbGwodCl9ZnVuY3Rpb24gZihlKXtyZXR1cm4ibnVtYmVyIj09dHlwZW9mIGUmJmUlMT09MH1mdW5jdGlvbiBTKGUpe3JldHVybiBudWxsIT1lJiZlLmNvbnN0cnVjdG9yPT09U3RyaW5nfWZ1bmN0aW9uIHYoZSl7cmV0dXJuIGwoZSkmJiJ0aGVuImluIGUmJmgoZS50aGVuKX1mdW5jdGlvbiB5KGUpe3JldHVybiBudWxsIT09ZX1mdW5jdGlvbiBiKGUpe3JldHVybiB2b2lkIDAhPT1lfU51bWJlci5pc05hTj1OdW1iZXIuaXNOYU58fGZ1bmN0aW9uKGUpe3JldHVybiBlIT1lfX0sNTcwNjAzKGUsdCxpKXsidXNlIHN0cmljdCI7aS5kKHQse1RyYW5zbGF0ZWRTdHJpbmc6KCk9PnJ9KTtjb25zdCBzPS97KFx3Kyl9L2c7ZnVuY3Rpb24gbihlLHQpe3JldHVybiBlLnJlcGxhY2UocywoKGUsaSk9PnZvaWQgMCE9PXRbaV0/dFtpXTplKSl9Y2xhc3Mgcntjb25zdHJ1Y3RvcihlLHQpe3RoaXMuX29yaWdpbmFsVGV4dD1lLHRoaXMuX3RyYW5zbGF0ZWRUZXh0PXR9b3JpZ2luYWxUZXh0KCl7cmV0dXJuIHRoaXMuX29yaWdpbmFsVGV4dH10cmFuc2xhdGVkVGV4dCgpe3JldHVybiB0aGlzLl90cmFuc2xhdGVkVGV4dH1mb3JtYXQoZSl7Y29uc3QgdD17fSxpPXt9O2Zvcihjb25zdCBzIG9mIE9iamVjdC5rZXlzKGUpKXtjb25zdCBuPWVbc107biBpbnN0YW5jZW9mIHI/KHRbc109bi5vcmlnaW5hbFRleHQoKSxpW3NdPW4udHJhbnNsYXRlZFRleHQoKSk6KHRbc109bi50b1N0cmluZygpLGlbc109bi50b1N0cmluZygpKX1jb25zdCBzPW4odGhpcy5fb3JpZ2luYWxUZXh0LHQpLG89bih0aGlzLl90cmFuc2xhdGVkVGV4dCxpKTtyZXR1cm4gbmV3IHIocyxvKX19fSwyMzczNjkoZSx0LGkpeyJ1c2Ugc3RyaWN0IjtpLmQodCx7Z2V0RXJyb3JNZXNzYWdlOigpPT5hLGdldExvZ2dlck1lc3NhZ2U6KCk9Pm99KTt2YXIgcz1pKDc4MzI1NCksbj1pKDY0MTU5Myk7Y2xhc3MgciBleHRlbmRzIEVycm9ye2NvbnN0cnVjdG9yKHtkZXRhaWxlZEVycm9yTWVzc2FnZTplLHVzZXJGcmllbmRseU1lc3NhZ2U6dCxjYXVzZTppfSl7c3VwZXIodCksdGhpcy5uYW1lPSJVc2VyRnJpZW5kbHlFcnJvciIsdGhpcy5kZXRhaWxlZEVycm9yTWVzc2FnZT1lLHRoaXMuY2F1c2U9aX19ZnVuY3Rpb24gbyhlKXtyZXR1cm4gZSBpbnN0YW5jZW9mIHI/KDAsbi5yZW1vdmVUYWdzKShlLmRldGFpbGVkRXJyb3JNZXNzYWdlKTphKGUpfWZ1bmN0aW9uIGEoZSl7aWYodm9pZCAwPT09ZSlyZXR1cm4gcy50KG51bGwsdm9pZCAwLGkoOTkxMjU4KSk7bGV0IHQ7cmV0dXJuIHQ9ZSBpbnN0YW5jZW9mIEVycm9yP2UubWVzc2FnZToib2JqZWN0Ij09dHlwZW9mIGU/ImVycm9yImluIGU/ZS5lcnJvcjpKU09OLnN0cmluZ2lmeShlKTplLnRvU3RyaW5nKCksKDAsbi5yZW1vdmVUYWdzKSh0KX19LDUzNTMwKGUsdCxpKXsidXNlIHN0cmljdCI7aS5kKHQse2dldE1pblRpY2s6KCk9PmMsZ2V0TWluVGlja0RhdGE6KCk9PmwsbWFrZVZhcmlhYmxlTWluVGlja0RhdGE6KCk9PmR9KTt2YXIgcz1pKDcxMjc0NSksbj1pKDYwMTg0MSkscj1pKDUzNDQ0MCksbz1pKDY0MDc0NCk7ZnVuY3Rpb24gYShlKXtyZXR1cm4gZT8oMCxzLkJpZykoZS5taW5Nb3ZlKS5kaXYoZS5wcmljZVNjYWxlKS50b051bWJlcigpOk5hTn1mdW5jdGlvbiBsKGUpe2NvbnN0e21pblRpY2s6dCxwcmljZTppLHZhcmlhYmxlTWluVGlja0RhdGE6cyxzaG91bGRDaGVja0ZvckVxdWFsaXR5OnJ9PWUsbz0oMCxuLmlzTnVtYmVyKSh0KT9oKHQpOnQ7cmV0dXJuIHZvaWQgMD09PXM/bzpmdW5jdGlvbihlLHQsaT0hMSl7Zm9yKGxldCBzPTA7czx0Lmxlbmd0aDtzKyspe2lmKGU8dFtzXS5wcmljZSlyZXR1cm4gdFtzXS5taW5UaWNrO2lmKGkmJmU9PT10W3NdLnByaWNlKXJldHVybiB0W3NdLm1pblRpY2t9cmV0dXJuIHRbdC5sZW5ndGgtMV0ubWluVGlja30oaSxzLHIpfWZ1bmN0aW9uIGMoZSl7cmV0dXJuIGEobChlKSl9ZnVuY3Rpb24gaChlKXtjb25zdCB0PSgwLHIubnVtT2ZEZWNpbWFsUGxhY2VzKShlKSxpPU1hdGgucG93KDEwLHQpO3JldHVybntwcmljZVNjYWxlOmksbWluTW92ZTooMCxzLkJpZykoZSkubXVsKGkpLnRvTnVtYmVyKCl9fWZ1bmN0aW9uIGQoZSx0KXtjb25zdCBpPVt7bWluVGljazooMCxuLmlzTnVtYmVyKShlKT9oKGUpOmUscHJpY2U6MS8wLG1heEluZGV4OjEvMH1dO3RyeXtjb25zdCBlPXQuc3BsaXQoIiAiKS5tYXAoKChlLHQpPT4oMCxvLmlzRXZlbikodCk/ZnVuY3Rpb24oZSl7Y29uc3QgdD1OdW1iZXIoZSk7aWYoTnVtYmVyLmlzRmluaXRlKHQpKXJldHVybiBoKHQpO3tjb25zdCB0PWUuc3BsaXQoIi8iKQo7aWYodC5sZW5ndGg8Mnx8dC5sZW5ndGg+Myl0aHJvdyBuZXcgRXJyb3IoYFVuZXhwZWN0ZWQgbWludGljazogJHtlfWApO2NvbnN0IGk9TnVtYmVyKHRbMV0pLHM9TnVtYmVyKHRbMF0pO2lmKCFOdW1iZXIuaXNGaW5pdGUoaSl8fCFOdW1iZXIuaXNGaW5pdGUocykpdGhyb3cgbmV3IEVycm9yKGBVbmV4cGVjdGVkIG1pbnRpY2s6ICR7ZX1gKTtjb25zdCBuPTM9PT10Lmxlbmd0aD9OdW1iZXIodFsyXSk6dm9pZCAwO2lmKHZvaWQgMCE9PW4mJiFOdW1iZXIuaXNGaW5pdGUobikpdGhyb3cgbmV3IEVycm9yKGBVbmV4cGVjdGVkIG1pbnRpY2s6ICR7ZX1gKTtjb25zdCByPXtwcmljZVNjYWxlOmksbWluTW92ZTpzfTtyZXR1cm4gdm9pZCAwIT09biYmKHIubWluTW92ZTI9bikscn19KGUpOmZ1bmN0aW9uKGUpe2NvbnN0IHQ9TnVtYmVyKGUpO2lmKE51bWJlci5pc05hTih0KSl0aHJvdyBuZXcgRXJyb3IoYFVuZXhwZWN0ZWQgcHJpY2UgbGltaXQ6ICR7ZX1gKTtyZXR1cm4gdH0oZSkpKTtpZigoMCxvLmlzRXZlbikoZS5sZW5ndGgpKXRocm93IG5ldyBFcnJvcigiVGhlbWUgbXVzdCBub3QgYmUgZXZlbnQgbnVtYmVyIG9mIGVsZW1lbnRzIik7Y29uc3QgaT1bXTtmb3IobGV0IHQ9MDt0PGUubGVuZ3RoO3QrPTIpe2NvbnN0IG49ZVt0KzFdPz8xLzAscj1pW2kubGVuZ3RoLTFdPy5wcmljZT8/MCxvPWlbaS5sZW5ndGgtMV0/Lm1heEluZGV4Pz8wLGw9bj09PTEvMD8xLzA6bmV3IHMuQmlnKG4pLm1pbnVzKHIpLmRpdihhKGVbdF0pKS5wbHVzKG8pLnRvTnVtYmVyKCk7aS5wdXNoKHttaW5UaWNrOmVbdF0scHJpY2U6bixtYXhJbmRleDpsfSl9cmV0dXJuIGl9Y2F0Y2h7cmV0dXJuIGl9fX0sNzU0ODY0KGUsdCxpKXsidXNlIHN0cmljdCI7aS5kKHQse0RhdGVUaW1lV2l0aFR6Rm9ybWF0dGVyOigpPT5ofSk7dmFyIHM9aSg3MDA4MDkpLG49aSg5MTQ3NzUpLHI9aSgyOTcxMTEpLG89aSgyMzgxMDMpLGE9aSg2MjQ2NzgpLGw9aSg4MjYxNTYpO2NvbnN0IGM9e2RhdGVGb3JtYXQ6Ik1NTSBkZCIsdGltZUZvcm1hdDpvLmhvdXJNaW51dGVGb3JtYXR9O2NsYXNzIGh7Y29uc3RydWN0b3IoZT17fSl7Y29uc3R7ZGF0ZUZvcm1hdDp0LHRpbWVGb3JtYXQ6aSx0aW1lem9uZTpufT17Li4uYywuLi5lfTt0JiZpP3RoaXMuX2RhdGVGb3JtYXR0ZXI9bmV3IGwuRGF0ZVRpbWVGb3JtYXR0ZXIoe2RhdGVGb3JtYXQ6dCx0aW1lRm9ybWF0Oml9KTp0P3RoaXMuX2RhdGVGb3JtYXR0ZXI9bmV3IGEuRGF0ZUZvcm1hdHRlcih0KTppJiYodGhpcy5fZGF0ZUZvcm1hdHRlcj1uZXcgci5UaW1lRm9ybWF0dGVyKGkpKSx0aGlzLl90aW1lem9uZT0oMCxzLmdldF90aW1lem9uZSkobj8/IkV0Yy9VVEMiKX1mb3JtYXQoZSl7Y29uc3QgdD0xZTMqZSxpPSgwLG4ucGFyc2VUek9mZnNldCkodGhpcy5fdGltZXpvbmUubmFtZSgpLHQpLnN0cmluZztyZXR1cm4gdm9pZCAwPT09dGhpcy5fZGF0ZUZvcm1hdHRlcj9pOmAke3RoaXMuX2RhdGVGb3JtYXR0ZXIuZm9ybWF0KCgwLHMudXRjX3RvX2NhbCkodGhpcy5fdGltZXpvbmUsdCkpfSAke2l9YH1zZXRUaW1lem9uZShlKXt0aGlzLl90aW1lem9uZT0oMCxzLmdldF90aW1lem9uZSkoZSl9fX0sODIyNDMxKGUsdCxpKXsidXNlIHN0cmljdCI7aS5kKHQse251bURlcGVuZGVuY3lGb3JtYXR0ZXI6KCk9PnIsbnVtYmVyVG9TdHJpbmdXaXRoTGVhZGluZ1plcm86KCk9Pm4seWllbGRDdXJ2ZVRpY2ttYXJrc1ByaWNlRm9ybWF0dGVyOigpPT5vfSk7dmFyIHM9aSg2MDE4NDEpO2Z1bmN0aW9uIG4oZSx0KXtpZighKDAscy5pc051bWJlcikoZSkpcmV0dXJuIm4vYSI7aWYoISgwLHMuaXNJbnRlZ2VyKSh0KSl0aHJvdyBuZXcgVHlwZUVycm9yKCJpbnZhbGlkIGxlbmd0aCIpO2lmKHQ8MHx8dD4yNCl0aHJvdyBuZXcgVHlwZUVycm9yKCJpbnZhbGlkIGxlbmd0aCIpO2lmKDA9PT10KXJldHVybiBlLnRvU3RyaW5nKCk7cmV0dXJuKCIwMDAwMDAwMDAwMDAwMDAwMDAwMCIrZS50b1N0cmluZygpKS5zbGljZSgtdCl9ZnVuY3Rpb24gcihlKXtjb25zdCB0PW5ldyBNYXA7cmV0dXJuIGk9Pntjb25zdCBzPWk/Py0xO2xldCBuPXQuZ2V0KHMpO3JldHVybiBufHwobj1lKGkpLHQuc2V0KHMsbikpLG59fWZ1bmN0aW9uIG8oZSl7Y29uc3QgdD1mdW5jdGlvbihlLHQpe2xldCBpPXQ7Zm9yKDtpPjA7aS0tKXtjb25zdCB0PU1hdGgucG93KDEwLGkpO2lmKGUubWFwKChlPT5NYXRoLnJvdW5kKGUqdCkpKS5zb21lKChlPT5lJTEwKSkpYnJlYWt9cmV0dXJuIGl9KGUsNCk7cmV0dXJuIGUubWFwKChlPT5gJHtlLnRvRml4ZWQodCl9JWApKX19LDE3MjMwNChlLHQsaSl7InVzZSBzdHJpY3QiO2kuZCh0LHtGb3JtYXR0ZXJzU2VyaWFsaXplcjooKT0+Y30pO3ZhciBzPWkoMTM4NjM4KSxuPWkoOTg0Mzc2KSxyPWkoNzU1NjI3KSxvPWkoMTI1MjE4KTtjbGFzcyBhe2NvbnN0cnVjdG9yKGUpe3RoaXMudHlwZT0icXVvdGVTZXNzaW9uUHJpY2UiLHRoaXMucmVzZXQoZSl9c3RhdGUoKXtyZXR1cm4gdGhpcy5fcHJpY2VGb3JtYXR0ZXIuc3RhdGUoKX1yZXNldChlKXt0aGlzLl9wcmljZUZvcm1hdHRlcj1lfHxuZXcgci5QcmljZUZvcm1hdHRlcih7cHJpY2VTY2FsZToxMDAsbWluTW92ZToxLGZyYWN0aW9uYWw6ITF9KX11cGRhdGUoZSx0KXtjb25zdCBpPW51bGwhPXQucHJpY2VzY2FsZXx8bnVsbCE9dC5taW5tb3Z8fG51bGwhPXQuZnJhY3Rpb25hbHx8bnVsbCE9dC5taW5tb3ZlMixzPW51bGwhPWUucHJpY2VzY2FsZSYmbnVsbCE9ZS5taW5tb3YmJm51bGwhPWUuZnJhY3Rpb25hbCYmbnVsbCE9ZS5taW5tb3ZlMjtpJiZzJiYodGhpcy5fcHJpY2VGb3JtYXR0ZXI9bmV3IHIuUHJpY2VGb3JtYXR0ZXIoe3ByaWNlU2NhbGU6ZS5wcmljZXNjYWxlLG1pbk1vdmU6ZS5taW5tb3YsZnJhY3Rpb25hbDplLmZyYWN0aW9uYWx8fCExLG1pbk1vdmUyOmUubWlubW92ZTJ9KSl9Zm9ybWF0KGUsdCl7cmV0dXJuIHRoaXMuX3ByaWNlRm9ybWF0dGVyLmZvcm1hdChlLHQpfWhhc0ZvcmV4QWRkaXRpb25hbFByZWNpc2lvbigpe3JldHVybiB0aGlzLl9wcmljZUZvcm1hdHRlci5oYXNGb3JleEFkZGl0aW9uYWxQcmVjaXNpb24oKX0Kc3RhdGljIHNlcmlhbGl6ZShlKXtyZXR1cm4gZS5zdGF0ZSgpfXN0YXRpYyBkZXNlcmlhbGl6ZShlKXtjb25zdCB0PW5ldyByLlByaWNlRm9ybWF0dGVyKGUpO3JldHVybiBuZXcgYSh0KX19Y29uc3QgbD17cHJpY2U6ci5QcmljZUZvcm1hdHRlcix2b2x1bWU6bi5Wb2x1bWVGb3JtYXR0ZXIscGVyY2VudGFnZTpvLlBlcmNlbnRhZ2VGb3JtYXR0ZXIscXVvdGVTZXNzaW9uUHJpY2U6YX07dmFyIGM7IWZ1bmN0aW9uKGUpe2Z1bmN0aW9uIHQoZSl7cmV0dXJuKDAscy5lbnN1cmVEZWZpbmVkKShsW2UudHlwZV0pLmRlc2VyaWFsaXplKGUuc3RhdGUpfWUuc2VyaWFsaXplPWZ1bmN0aW9uKGUpe2NvbnN0IHQ9KDAscy5lbnN1cmVEZWZpbmVkKShsW2UudHlwZV0pO3JldHVybnt0eXBlOmUudHlwZSxzdGF0ZTp0LnNlcmlhbGl6ZShlKX19LGUuaXNTZXJpYWxpemFibGU9ZnVuY3Rpb24oZSl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiBlLnR5cGUmJmUudHlwZSBpbiBsfSxlLmRlc2VyaWFsaXplPXQsZS5zYWZlRGVzZXJpYWxpemU9ZnVuY3Rpb24oZSl7dHJ5e3JldHVybiB0KGUpfWNhdGNoKGUpe3JldHVybiBudWxsfX19KGN8fChjPXt9KSl9LDI1MjQyNyhlLHQsaSl7InVzZSBzdHJpY3QiO2kuZCh0LHtMaW1pdGVkUHJlY2lzaW9uTnVtZXJpY0Zvcm1hdHRlcjooKT0+cn0pO3ZhciBzLG49aSgxMDcwNDUpOyFmdW5jdGlvbihlKXtlW2UuRGVmYXVsdFByZWNpc2lvbj0xXT0iRGVmYXVsdFByZWNpc2lvbiJ9KHN8fChzPXt9KSk7Y2xhc3Mgcntjb25zdHJ1Y3RvcihlPXMuRGVmYXVsdFByZWNpc2lvbix0KXt0aGlzLl9wcmVjaXNpb249ZSx0aGlzLl9udW1lcmljRm9ybWF0dGVyPW5ldyBuLk51bWVyaWNGb3JtYXR0ZXIoe3ByZWNpc2lvbjp0aGlzLl9wcmVjaXNpb24saWdub3JlTG9jYWxlTnVtYmVyRm9ybWF0OnR9KX1mb3JtYXQoZSx0KXtjb25zdCBpPWUudG9GaXhlZCh0aGlzLl9wcmVjaXNpb24pLHM9TWF0aC5wb3coMTAsLXRoaXMuX3ByZWNpc2lvbik7cmV0dXJuIHRoaXMuX251bWVyaWNGb3JtYXR0ZXIuZm9ybWF0KE1hdGgubWF4KHBhcnNlRmxvYXQoaSkscyksdCl9cGFyc2UoZSx0KXtjb25zdCBpPXRoaXMuX251bWVyaWNGb3JtYXR0ZXIucGFyc2UoZSx0KTtyZXR1cm4gaS5yZXM/e3JlczohMCx2YWx1ZTppLnZhbHVlLHN1Z2dlc3Q6dGhpcy5mb3JtYXQoaS52YWx1ZSl9Oml9fX0sMjEyMzQ2KGUsdCxpKXsidXNlIHN0cmljdCI7aS5kKHQse1RpbWVTcGFuRm9ybWF0dGVyOigpPT5vfSk7dmFyIHM9aSg3ODMyNTQpLG49aSg1OTg5MjIpLHI9aSg1NDY0ODUpO2NsYXNzIG97Zm9ybWF0KGUsdCl7Y29uc3Qgbz1lPDA7ZT1NYXRoLmFicyhlKTtjb25zdCBhPU1hdGguZmxvb3IoZS84NjQwMCk7ZS09ODY0MDAqYTtjb25zdCBsPU1hdGguZmxvb3IoZS8zNjAwKTtlLT0zNjAwKmw7Y29uc3QgYz1NYXRoLmZsb29yKGUvNjApO2UtPTYwKmM7bGV0IGg9IiI7aWYoYSl7Y29uc3QgZT0oMCxyLmdldE51bWJlckZvcm1hdCkodD8uaWdub3JlTG9jYWxlTnVtYmVyRm9ybWF0KTtoKz0oMCxuLmZvcm1hdE51bWJlcikoYSxlKStzLnQobnVsbCx7Y29udGV4dDoiZGF0ZXMifSxpKDIzMDQ5MikpKyIgIn1yZXR1cm4gbCYmKGgrPWwrcy50KG51bGwse2NvbnRleHQ6ImRhdGVzIn0saSgxMjIwNTMpKSsiICIpLGMmJihoKz1jK3MudChudWxsLHtjb250ZXh0OiJkYXRlcyJ9LGkoMTY0NTE2KSkrIiAiKSxlJiYoaCs9ZStzLnQobnVsbCx7Y29udGV4dDoiZGF0ZXMifSxpKDI2MjIwNSkpKyIgIiksbyYmKGg9Ii0iK2gpLGgudHJpbSgpfX19LDg1NjU2KGUsdCxpKXsidXNlIHN0cmljdCI7aS5yKHQpLGkuZCh0LHt1bnBhY2tOb25TZXJpZXNEYXRhQ29tcHJlc3NlZDooKT0+YX0pO3ZhciBzPWkoNjAxODQxKSxuPWkoOTk1NjU1KSxyPWkoODY2NzQ4KSxvPWkoODQ4NjAxKTthc3luYyBmdW5jdGlvbiBhKGUpe2NvbnN0IHQ9KDAsby5wYXJzZU5vblNlcmllc0VudmVsb3BlKShlKTtpZihudWxsPT09dClyZXR1cm4gbnVsbDtjb25zdHtuc0RhdGE6aSxwYXJzZWREYXRhOmF9PXQ7cmV0dXJuIGkuaW5kZXhlc19yZXBsYWNlfHwoKDAscy5oYXNQcm9wZXJ0eSkoYSwiZGF0YUNvbXByZXNzZWQiKSYmKGkuZGF0YT1hd2FpdCgwLHIudW5wYWNrKShhLmRhdGFDb21wcmVzc2VkKSksKDAscy5oYXNQcm9wZXJ0eSkoYSwiZ3JhcGhpY3NDbWRzQ29tcHJlc3NlZCIpJiYoaS5ncmFwaGljc0NtZHM9KDAsbi52YWxpZGF0ZUdyYXBoaWNzQ29tbWFuZHMpKGF3YWl0KDAsci51bnBhY2spKGEuZ3JhcGhpY3NDbWRzQ29tcHJlc3NlZCkpKSksaX19LDg1NzE1MShlLHQsaSl7InVzZSBzdHJpY3QiO2kuZCh0LHtQbG90TGlzdDooKT0+dSxtZXJnZU1pbk1heDooKT0+cH0pO3ZhciBzPWkoMTM4NjM4KSxuPWkoMjIxMDYxKSxyPWkoMTk4OTAxKSxvPWkoODE0NTg5KSxhPWkoOTM2MzI2KTtjb25zdCBsPSgwLG4uZ2V0TG9nZ2VyKSgiQ2hhcnQuUGxvdExpc3QiKSxjPTMwO2Z1bmN0aW9uIGgoZSl7cmV0dXJuIGUuaW5kZXh9ZnVuY3Rpb24gZChlKXtyZXR1cm4gZS52YWx1ZVswXX1jbGFzcyB1e2NvbnN0cnVjdG9yKGU9bnVsbCx0PW51bGwpe3RoaXMuX2l0ZW1zPVtdLHRoaXMuX3N0YXJ0PTAsdGhpcy5fZW5kPTAsdGhpcy5fc2hhcmVSZWFkPSExLHRoaXMuX21pbk1heENhY2hlPW5ldyBNYXAsdGhpcy5fcm93U2VhcmNoQ2FjaGVCeUluZGV4PW5ldyBNYXAsdGhpcy5fcm93U2VhcmNoQ2FjaGVCeUluZGV4V2l0aG91dEVtcHR5VmFsdWVzPW5ldyBNYXAsdGhpcy5fcm93U2VhcmNoQ2FjaGVCeVRpbWU9bmV3IE1hcCx0aGlzLl9yb3dTZWFyY2hDYWNoZUJ5VGltZVdpdGhvdXRFbXB0eVZhbHVlcz1uZXcgTWFwLHRoaXMuX3Bsb3RGdW5jdGlvbnM9ZXx8bmV3IE1hcCx0aGlzLl9lbXB0eVZhbHVlUHJlZGljYXRlPXR9Y2xlYXIoKXt0aGlzLl9pdGVtcz1bXSx0aGlzLl9zdGFydD0wLHRoaXMuX2VuZD0wLHRoaXMuX3NoYXJlUmVhZD0hMSx0aGlzLl9taW5NYXhDYWNoZS5jbGVhcigpLHRoaXMuX2ludmFsaWRhdGVTZWFyY2hDYWNoZXMoKX1maXJzdCgpe3JldHVybiB0aGlzLnNpemUoKT4wP3RoaXMuX2l0ZW1zW3RoaXMuX3N0YXJ0XTpudWxsfWxhc3QoKXsKcmV0dXJuIHRoaXMuc2l6ZSgpPjA/dGhpcy5faXRlbXNbdGhpcy5fZW5kLTFdOm51bGx9Zmlyc3RJbmRleCgpe3JldHVybiB0aGlzLnNpemUoKT4wP3RoaXMuX2luZGV4QXQodGhpcy5fc3RhcnQpOm51bGx9Zmlyc3RQbG90dGFibGVJbmRleCgpe2lmKHRoaXMuaXNFbXB0eSgpKXJldHVybiBudWxsO2ZvcihsZXQgZT10aGlzLl9zdGFydDtlPHRoaXMuX2VuZDsrK2Upe2NvbnN0IHQ9dGhpcy5faW5kZXhBdChlKTtpZih0Pm8uVU5QTE9UVEFCTEVfVElNRV9QT0lOVF9JTkRFWClyZXR1cm4gdH1yZXR1cm4gbnVsbH1sYXN0SW5kZXgoKXtyZXR1cm4gdGhpcy5zaXplKCk+MD90aGlzLl9pbmRleEF0KHRoaXMuX2VuZC0xKTpudWxsfWNsb25lKCl7Y29uc3QgZT10aGlzLmZpcnN0SW5kZXgoKSx0PXRoaXMubGFzdEluZGV4KCk7cmV0dXJuIG51bGw9PT1lfHxudWxsPT09dD9uZXcgdTp0aGlzLnJhbmdlKGUsdCl9c2l6ZSgpe3JldHVybiB0aGlzLl9lbmQtdGhpcy5fc3RhcnR9aXNFbXB0eSgpe3JldHVybiAwPT09dGhpcy5zaXplKCl9Y29udGFpbnMoZSl7cmV0dXJuIG51bGwhPT10aGlzLnNlYXJjaChlLGEuUGxvdFJvd1NlYXJjaE1vZGUuRXhhY3QpfXZhbHVlQXQoZSl7Y29uc3QgdD10aGlzLnNlYXJjaChlKTtyZXR1cm4gbnVsbCE9PXQ/dC52YWx1ZTpudWxsfWFkZChlLHQpe2lmKHRoaXMuX3NoYXJlUmVhZClyZXR1cm4gbC5sb2dEZWJ1ZygiYWRkOiByZWFkb25seSBjb2xsZWN0aW9uIG1vZGlmaWNhdGlvbiBhdHRlbXB0IiksITE7Y29uc3QgaT17aW5kZXg6ZSx2YWx1ZTp0fSxzPXRoaXMuX25vbkNhY2hlZFNlYXJjaChlLGEuUGxvdFJvd1NlYXJjaE1vZGUuRXhhY3QsaCk7cmV0dXJuIHRoaXMuX2ludmFsaWRhdGVTZWFyY2hDYWNoZXMoKSxudWxsPT09cz8odGhpcy5faXRlbXMuc3BsaWNlKHRoaXMuX2xvd2VyYm91bmQoZSxoKSwwLGkpLHRoaXMuX3N0YXJ0PTAsdGhpcy5fZW5kPXRoaXMuX2l0ZW1zLmxlbmd0aCwhMCk6KHRoaXMuX2l0ZW1zW3NdPWksITEpfXNlYXJjaChlLHQ9YS5QbG90Um93U2VhcmNoTW9kZS5FeGFjdCxpKXtyZXR1cm4gdGhpcy5fc2VhcmNoSW1wbChlLHQsdGhpcy5fcm93U2VhcmNoQ2FjaGVCeUluZGV4LHRoaXMuX3Jvd1NlYXJjaENhY2hlQnlJbmRleFdpdGhvdXRFbXB0eVZhbHVlcyxoLGkpfXNlYXJjaEJ5VGltZShlLHQ9YS5QbG90Um93U2VhcmNoTW9kZS5FeGFjdCxpKXtyZXR1cm4gdGhpcy5fc2VhcmNoSW1wbChlLHQsdGhpcy5fcm93U2VhcmNoQ2FjaGVCeVRpbWUsdGhpcy5fcm93U2VhcmNoQ2FjaGVCeVRpbWVXaXRob3V0RW1wdHlWYWx1ZXMsZCxpKX1mb2xkKGUsdCl7bGV0IGk9dDtmb3IobGV0IHQ9dGhpcy5fc3RhcnQ7dDx0aGlzLl9lbmQ7Kyt0KXtpPWUodGhpcy5faW5kZXhBdCh0KSx0aGlzLl92YWx1ZUF0KHQpLGkpfXJldHVybiBpfWZpbmRGaXJzdChlLHQpe2NvbnN0IGk9dm9pZCAwIT09dCYmTWF0aC5taW4odGhpcy5fc3RhcnQrdCx0aGlzLl9lbmQpfHx0aGlzLl9lbmQ7Zm9yKGxldCB0PXRoaXMuX3N0YXJ0O3Q8aTsrK3Qpe2NvbnN0IGk9dGhpcy5faW5kZXhBdCh0KSxzPXRoaXMuX3ZhbHVlQXQodCk7aWYoZShpLHMpKXJldHVybntpbmRleDppLHZhbHVlOnN9fXJldHVybiBudWxsfWZpbmRMYXN0KGUsdCl7Y29uc3QgaT12b2lkIDAhPT10JiZNYXRoLm1heCh0aGlzLl9lbmQtdCx0aGlzLl9zdGFydCl8fHRoaXMuX3N0YXJ0O2ZvcihsZXQgdD10aGlzLl9lbmQtMTt0Pj1pOy0tdCl7Y29uc3QgaT10aGlzLl9pbmRleEF0KHQpLHM9dGhpcy5fdmFsdWVBdCh0KTtpZihlKGkscykpcmV0dXJue2luZGV4OmksdmFsdWU6c319cmV0dXJuIG51bGx9ZWFjaChlKXtmb3IobGV0IHQ9dGhpcy5fc3RhcnQ7dDx0aGlzLl9lbmQ7Kyt0KXtpZihlKHRoaXMuX2luZGV4QXQodCksdGhpcy5fdmFsdWVBdCh0KSkpYnJlYWt9fXJlZHVjZShlLHQpe2xldCBpPXQ7Zm9yKGxldCB0PXRoaXMuX3N0YXJ0O3Q8dGhpcy5fZW5kOysrdCl7aT1lKGksdGhpcy5faW5kZXhBdCh0KSx0aGlzLl92YWx1ZUF0KHQpKX1yZXR1cm4gaX1yYW5nZShlLHQpe2NvbnN0IGk9bmV3IHUodGhpcy5fcGxvdEZ1bmN0aW9ucyx0aGlzLl9lbXB0eVZhbHVlUHJlZGljYXRlKTtyZXR1cm4gaS5faXRlbXM9dGhpcy5faXRlbXMsaS5fc3RhcnQ9dGhpcy5fbG93ZXJib3VuZChlLGgpLGkuX2VuZD10aGlzLl91cHBlcmJvdW5kKHQpLGkuX3NoYXJlUmVhZD0hMCxpfXBsb3R0YWJsZVJhbmdlKGUpe2NvbnN0IHQ9bmV3IHUodGhpcy5fcGxvdEZ1bmN0aW9ucyx0aGlzLl9lbXB0eVZhbHVlUHJlZGljYXRlKTtyZXR1cm4gdC5faXRlbXM9dGhpcy5faXRlbXMsdC5fc3RhcnQ9dGhpcy5fdXBwZXJib3VuZChvLlVOUExPVFRBQkxFX1RJTUVfUE9JTlRfSU5ERVgpLHQuX2VuZD10aGlzLl9lbmQsdC5fc2hhcmVSZWFkPSEwLCEwPT09ZSYmdC5fc3RhcnQ+dGhpcy5fc3RhcnQmJih0Ll9zdGFydC09MSksdH1yYW5nZUNvdW50YmFjayhlLHQpe2lmKG51bGw9PT10aGlzLmZpcnN0SW5kZXgoKSlyZXR1cm4gbmV3IHU7Y29uc3QgaT1uZXcgdSh0aGlzLl9wbG90RnVuY3Rpb25zLHRoaXMuX2VtcHR5VmFsdWVQcmVkaWNhdGUpO3JldHVybiBpLl9pdGVtcz10aGlzLl9pdGVtcyxpLl9lbmQ9dGhpcy5fdXBwZXJib3VuZChlKSxpLl9zdGFydD1NYXRoLm1heCh0aGlzLl9zdGFydCxpLl9lbmQtdCksaS5fc2hhcmVSZWFkPSEwLGl9cmFuZ2VJdGVyYXRvcihlLHQpe2NvbnN0IGk9dGhpcy5fbG93ZXJib3VuZChlLGgpLHM9dGhpcy5fdXBwZXJib3VuZCh0KTtyZXR1cm4gdGhpcy5fcmFuZ2VJdGVyYXRvckltcGwoaSxzKX1mdWxsUmFuZ2VJdGVyYXRvcigpe3JldHVybiB0aGlzLl9yYW5nZUl0ZXJhdG9ySW1wbCh0aGlzLl9zdGFydCx0aGlzLl9lbmQpfW1pbk1heE9uUmFuZ2VDYWNoZWQoZSx0LGkpe2lmKHRoaXMuaXNFbXB0eSgpKXJldHVybiBudWxsO2xldCBzPW51bGw7Zm9yKGNvbnN0IG4gb2YgaSl7cz1wKHMsdGhpcy5fbWluTWF4T25SYW5nZUNhY2hlZEltcGwoZS1uLm9mZnNldCx0LW4ub2Zmc2V0LG4ubmFtZSkpfXJldHVybiBzfW1pbk1heE9uUmFuZ2UoZSx0LGkpe2lmKHRoaXMuaXNFbXB0eSgpKXJldHVybiBudWxsO2xldCBzPW51bGwKO2Zvcihjb25zdCBuIG9mIGkpe3M9cChzLHRoaXMuX21pbk1heE9uUmFuZ2UoZS1uLm9mZnNldCx0LW4ub2Zmc2V0LG4ubmFtZSkpfXJldHVybiBzfW1lcmdlKGUpe3JldHVybiB0aGlzLl9zaGFyZVJlYWQ/KGwubG9nRGVidWcoIm1lcmdlOiByZWFkb25seSBjb2xsZWN0aW9uIG1vZGlmaWNhdGlvbiBhdHRlbXB0IiksbnVsbCk6MD09PWUubGVuZ3RoP251bGw6dGhpcy5pc0VtcHR5KCl8fGVbZS5sZW5ndGgtMV0uaW5kZXg8dGhpcy5faXRlbXNbMF0uaW5kZXg/dGhpcy5fcHJlcGVuZChlKTplWzBdLmluZGV4PnRoaXMuX2l0ZW1zW3RoaXMuX2l0ZW1zLmxlbmd0aC0xXS5pbmRleD90aGlzLl9hcHBlbmQoZSk6MT09PWUubGVuZ3RoJiZlWzBdLmluZGV4PT09dGhpcy5faXRlbXNbdGhpcy5faXRlbXMubGVuZ3RoLTFdLmluZGV4Pyh0aGlzLl91cGRhdGVMYXN0KGVbMF0pLGVbMF0pOnRoaXMuX21lcmdlKGUpfWFkZFRhaWwoZSx0PSExKXtpZigwPT09ZS5sZW5ndGgpcmV0dXJuO2xldCBpPTA7dCYmdGhpcy5fZW5kLXRoaXMuX3N0YXJ0PjAmJihpPTEsdGhpcy5faXRlbXNbdGhpcy5fZW5kLXRoaXMuX3N0YXJ0LTFdLnZhbHVlPWVbMF0udmFsdWUpO2ZvcihsZXQgdD1pO3Q8ZS5sZW5ndGg7Kyt0KXtjb25zdCBpPWVbdF0scz10aGlzLmxhc3RJbmRleCgpO2lmKG51bGw9PT1zKXtsLmxvZ0Vycm9yKCJDYW4ndCBhZGQgdGFpbCB0byB0aGUgZW1wdHkgcGxvdGxpc3QiKTticmVha310aGlzLmFkZChzKzEsaS52YWx1ZSl9dGhpcy5faW52YWxpZGF0ZVNlYXJjaENhY2hlcygpfW1vdmUoZSl7aWYodGhpcy5fc2hhcmVSZWFkKXJldHVybiB2b2lkIGwubG9nRGVidWcoIm1vdmU6IHJlYWRvbmx5IGNvbGxlY3Rpb24gbW9kaWZpY2F0aW9uIGF0dGVtcHQiKTtpZigwPT09ZS5sZW5ndGgpcmV0dXJuO2NvbnN0IHQ9dGhpcy5faXRlbXMuc2xpY2UoKTtmb3IoY29uc3QgaSBvZiBlKXtjb25zdCBlPXRoaXMuX2JzZWFyY2goaS5vbGQsaCk7aWYobnVsbCE9PWUmJnZvaWQgMCE9PXRbZV0paWYoaS5uZXc9PT1vLklOVkFMSURfVElNRV9QT0lOVF9JTkRFWCl0W2VdPXZvaWQgMDtlbHNle3RbZV09e2luZGV4OmkubmV3LHZhbHVlOnRbZV0udmFsdWV9O2NvbnN0IHM9dGhpcy5fYnNlYXJjaChpLm5ldyxoKTtpZihudWxsIT09cyl7Y29uc3QgZT10W3NdO3ZvaWQgMCE9PWUmJmUuaW5kZXg9PT1pLm5ldyYmKHRbc109dm9pZCAwKX19fXRoaXMuX2l0ZW1zPXQuZmlsdGVyKChlPT52b2lkIDAhPT1lKSkuc29ydCgoKGUsdCk9PmUuaW5kZXgtdC5pbmRleCkpLHRoaXMuX2ludmFsaWRhdGVTZWFyY2hDYWNoZXMoKSx0aGlzLl9taW5NYXhDYWNoZS5jbGVhcigpLHRoaXMuX3N0YXJ0PTAsdGhpcy5fZW5kPXRoaXMuX2l0ZW1zLmxlbmd0aH1yZW1vdmUoZSl7aWYodGhpcy5fc2hhcmVSZWFkKXJldHVybiBsLmxvZ0RlYnVnKCJyZW1vdmU6IHJlYWRvbmx5IGNvbGxlY3Rpb24gbW9kaWZpY2F0aW9uIGF0dGVtcHQiKSxudWxsO2NvbnN0IHQ9dGhpcy5fbm9uQ2FjaGVkU2VhcmNoKGUsYS5QbG90Um93U2VhcmNoTW9kZS5OZWFyZXN0UmlnaHQsaCk7aWYobnVsbD09PXQpcmV0dXJuIG51bGw7Y29uc3QgaT10aGlzLl9pdGVtcy5zcGxpY2UodCk7cmV0dXJuIHRoaXMuX2VuZD10aGlzLl9pdGVtcy5sZW5ndGgsdGhpcy5fbWluTWF4Q2FjaGUuY2xlYXIoKSx0aGlzLl9pbnZhbGlkYXRlU2VhcmNoQ2FjaGVzKCksaS5sZW5ndGg+MD9pWzBdOm51bGx9c3RhdGUoKXtjb25zdCBlPXRoaXMuX2l0ZW1zLnNsaWNlKHRoaXMuX3N0YXJ0LHRoaXMuX2VuZCk7cmV0dXJue3N0YXJ0OjAsZW5kOmUubGVuZ3RoLGRhdGE6ZX19cmVzdG9yZVN0YXRlKGUpe2U/KHRoaXMuX3N0YXJ0PWUuc3RhcnQsdGhpcy5fZW5kPWUuZW5kLHRoaXMuX3NoYXJlUmVhZD0hMSx0aGlzLl9pdGVtcz1lLmRhdGEsdGhpcy5fbWluTWF4Q2FjaGUuY2xlYXIoKSx0aGlzLl9pbnZhbGlkYXRlU2VhcmNoQ2FjaGVzKCkpOnRoaXMuY2xlYXIoKX1faW5kZXhBdChlKXtyZXR1cm4gdGhpcy5faXRlbXNbZV0uaW5kZXh9X3ZhbHVlQXQoZSl7cmV0dXJuIHRoaXMuX2l0ZW1zW2VdLnZhbHVlfV9sZW5ndGgoKXtyZXR1cm4gdGhpcy5faXRlbXMubGVuZ3RofV9zZWFyY2hJbXBsKGUsdCxpLHMsbixyKXtjb25zdCBvPXZvaWQgMCE9PXI/aTpzLGE9dm9pZCAwIT09cj8xZTQqKHQrMSkrcjp0O2xldCBsPW8uZ2V0KGUpO2lmKHZvaWQgMCE9PWwpe2NvbnN0IGU9bC5nZXQoYSk7aWYodm9pZCAwIT09ZSlyZXR1cm4gZX1jb25zdCBjPXRoaXMuX25vbkNhY2hlZFNlYXJjaChlLHQsbixyKTtpZihudWxsPT09YylyZXR1cm4gbnVsbDtjb25zdCBoPXtpbmRleDp0aGlzLl9pbmRleEF0KGMpLHZhbHVlOnRoaXMuX3ZhbHVlQXQoYyl9O3JldHVybiB2b2lkIDA9PT1sJiYobD1uZXcgTWFwLG8uc2V0KGUsbCkpLGwuc2V0KGEsaCksaH1fbm9uQ2FjaGVkU2VhcmNoKGUsdCxpLHMpe2NvbnN0IG49dGhpcy5fbG93ZXJib3VuZChlLGkpLHI9bj09PXRoaXMuX2VuZHx8ZSE9PWkodGhpcy5faXRlbXNbbl0pO2lmKHImJnQhPT1hLlBsb3RSb3dTZWFyY2hNb2RlLkV4YWN0KXN3aXRjaCh0KXtjYXNlIGEuUGxvdFJvd1NlYXJjaE1vZGUuTmVhcmVzdExlZnQ6cmV0dXJuIHRoaXMuX3NlYXJjaE5lYXJlc3RMZWZ0KG4scyk7Y2FzZSBhLlBsb3RSb3dTZWFyY2hNb2RlLk5lYXJlc3RSaWdodDpyZXR1cm4gdGhpcy5fc2VhcmNoTmVhcmVzdFJpZ2h0KG4scyk7ZGVmYXVsdDp0aHJvdyBuZXcgVHlwZUVycm9yKCJVbmtub3duIHNlYXJjaCBtb2RlIil9aWYodm9pZCAwPT09c3x8cnx8dD09PWEuUGxvdFJvd1NlYXJjaE1vZGUuRXhhY3QpcmV0dXJuIHI/bnVsbDpuO3N3aXRjaCh0KXtjYXNlIGEuUGxvdFJvd1NlYXJjaE1vZGUuTmVhcmVzdExlZnQ6cmV0dXJuIHRoaXMuX25vbkVtcHR5TmVhcmVzdExlZnQobixzKTtjYXNlIGEuUGxvdFJvd1NlYXJjaE1vZGUuTmVhcmVzdFJpZ2h0OnJldHVybiB0aGlzLl9ub25FbXB0eU5lYXJlc3RSaWdodChuLHMpO2RlZmF1bHQ6dGhyb3cgbmV3IFR5cGVFcnJvcigiVW5rbm93biBzZWFyY2ggbW9kZSIpfX1fbm9uRW1wdHlOZWFyZXN0UmlnaHQoZSx0KXtjb25zdCBpPSgwLApzLmVuc3VyZSkodGhpcy5fZW1wdHlWYWx1ZVByZWRpY2F0ZSksbj0oMCxzLmVuc3VyZSkodCk7Zm9yKDtlPHRoaXMuX2VuZCYmaSh0aGlzLl92YWx1ZUF0KGUpLG4pOyllKz0xO3JldHVybiBlPT09dGhpcy5fZW5kP251bGw6ZX1fbm9uRW1wdHlOZWFyZXN0TGVmdChlLHQpe2NvbnN0IGk9KDAscy5lbnN1cmVOb3ROdWxsKSh0aGlzLl9lbXB0eVZhbHVlUHJlZGljYXRlKSxuPSgwLHMuZW5zdXJlKSh0KTtmb3IoO2U+PXRoaXMuX3N0YXJ0JiZpKHRoaXMuX3ZhbHVlQXQoZSksbik7KWUtPTE7cmV0dXJuIGU8dGhpcy5fc3RhcnQ/bnVsbDplfV9zZWFyY2hOZWFyZXN0TGVmdChlLHQpe2lmKGU9PT10aGlzLl9zdGFydClyZXR1cm4gbnVsbDtjb25zdCBpPWUtMSxzPWkhPT10aGlzLl9lbmQ/aTpudWxsO3JldHVybiB2b2lkIDAhPT10JiZudWxsIT09cz90aGlzLl9ub25FbXB0eU5lYXJlc3RMZWZ0KHMsdCk6c31fc2VhcmNoTmVhcmVzdFJpZ2h0KGUsdCl7Y29uc3QgaT1lLHM9aSE9PXRoaXMuX2VuZD9pOm51bGw7cmV0dXJuIHZvaWQgMCE9PXQmJm51bGwhPT1zP3RoaXMuX25vbkVtcHR5TmVhcmVzdFJpZ2h0KHMsdCk6c31fYnNlYXJjaChlLHQpe2NvbnN0IGk9dGhpcy5fbG93ZXJib3VuZChlLHQpO3JldHVybiBpIT09dGhpcy5fZW5kJiZlPT09dCh0aGlzLl9pdGVtc1tpXSk/aTpudWxsfV9sb3dlcmJvdW5kKGUsdCl7cmV0dXJuKDAsci5sb3dlcmJvdW5kKSh0aGlzLl9pdGVtcyxlLCgoZSxpKT0+dChlKTxpKSx0aGlzLl9zdGFydCx0aGlzLl9lbmQpfV91cHBlcmJvdW5kKGUpe3JldHVybigwLHIudXBwZXJib3VuZCkodGhpcy5faXRlbXMsZSwoKGUsdCk9PnQuaW5kZXg+ZSksdGhpcy5fc3RhcnQsdGhpcy5fZW5kKX1fcGxvdE1pbk1heChlLHQsaSl7bGV0IHM9bnVsbDtjb25zdCBuPXRoaXMuX3Bsb3RGdW5jdGlvbnMuZ2V0KGkpO2lmKHZvaWQgMD09PW4pdGhyb3cgbmV3IEVycm9yKGBQbG90ICIke2l9IiBpcyBub3QgcmVnaXN0ZXJlZGApO2ZvcihsZXQgaT1lO2k8dDtpKyspe2NvbnN0IGU9bih0aGlzLl9pdGVtc1tpXS52YWx1ZSk7bnVsbD09ZXx8TnVtYmVyLmlzTmFOKGUpfHwobnVsbD09PXM/cz17bWluOmUsbWF4OmV9OihlPHMubWluJiYocy5taW49ZSksZT5zLm1heCYmKHMubWF4PWUpKSl9cmV0dXJuIHN9X2ludmFsaWRhdGVDYWNoZUZvclJvdyhlKXtjb25zdCB0PU1hdGguZmxvb3IoZS5pbmRleC9jKTt0aGlzLl9taW5NYXhDYWNoZS5mb3JFYWNoKChlPT5lLmRlbGV0ZSh0KSkpfV9wcmVwZW5kKGUpe3JldHVybigwLHMuYXNzZXJ0KSghdGhpcy5fc2hhcmVSZWFkLCJjb2xsZWN0aW9uIHNob3VsZCBub3QgYmUgcmVhZG9ubHkiKSwoMCxzLmFzc2VydCkoMCE9PWUubGVuZ3RoLCJwbG90Um93cyBzaG91bGQgbm90IGJlIGVtcHR5IiksdGhpcy5faW52YWxpZGF0ZVNlYXJjaENhY2hlcygpLHRoaXMuX21pbk1heENhY2hlLmNsZWFyKCksdGhpcy5faXRlbXM9ZS5jb25jYXQodGhpcy5faXRlbXMpLHRoaXMuX3N0YXJ0PTAsdGhpcy5fZW5kPXRoaXMuX2l0ZW1zLmxlbmd0aCxlWzBdfV9hcHBlbmQoZSl7cmV0dXJuKDAscy5hc3NlcnQpKCF0aGlzLl9zaGFyZVJlYWQsImNvbGxlY3Rpb24gc2hvdWxkIG5vdCBiZSByZWFkb25seSIpLCgwLHMuYXNzZXJ0KSgwIT09ZS5sZW5ndGgsInBsb3RSb3dzIHNob3VsZCBub3QgYmUgZW1wdHkiKSx0aGlzLl9pbnZhbGlkYXRlU2VhcmNoQ2FjaGVzKCksdGhpcy5fbWluTWF4Q2FjaGUuY2xlYXIoKSx0aGlzLl9pdGVtcz10aGlzLl9pdGVtcy5jb25jYXQoZSksdGhpcy5fc3RhcnQ9MCx0aGlzLl9lbmQ9dGhpcy5faXRlbXMubGVuZ3RoLGVbMF19X3VwZGF0ZUxhc3QoZSl7KDAscy5hc3NlcnQpKCF0aGlzLmlzRW1wdHkoKSwicGxvdCBsaXN0IHNob3VsZCBub3QgYmUgZW1wdHkiKTtjb25zdCB0PXRoaXMuX2l0ZW1zW3RoaXMuX2VuZC0xXTsoMCxzLmFzc2VydCkodC5pbmRleD09PWUuaW5kZXgsImxhc3Qgcm93IGluZGV4IHNob3VsZCBtYXRjaCBuZXcgcm93IGluZGV4IiksdGhpcy5faW52YWxpZGF0ZUNhY2hlRm9yUm93KGUpLHRoaXMuX2ludmFsaWRhdGVTZWFyY2hDYWNoZXMoKSx0aGlzLl9pdGVtc1t0aGlzLl9lbmQtMV09ZX1fbWVyZ2UoZSl7cmV0dXJuKDAscy5hc3NlcnQpKDAhPT1lLmxlbmd0aCwicGxvdCByb3dzIHNob3VsZCBub3QgYmUgZW1wdHkiKSx0aGlzLl9pbnZhbGlkYXRlU2VhcmNoQ2FjaGVzKCksdGhpcy5fbWluTWF4Q2FjaGUuY2xlYXIoKSx0aGlzLl9pdGVtcz1mdW5jdGlvbihlLHQpe2NvbnN0IGk9ZnVuY3Rpb24oZSx0KXtjb25zdCBpPWUubGVuZ3RoLHM9dC5sZW5ndGg7bGV0IG49aStzLHI9MCxvPTA7Zm9yKDtyPGkmJm88czspZVtyXS5pbmRleDx0W29dLmluZGV4P3IrKzplW3JdLmluZGV4PnRbb10uaW5kZXg/bysrOihyKyssbysrLG4tLSk7cmV0dXJuIG59KGUsdCkscz1uZXcgQXJyYXkoaSk7bGV0IG49MCxyPTA7Y29uc3Qgbz1lLmxlbmd0aCxhPXQubGVuZ3RoO2xldCBsPTA7Zm9yKDtuPG8mJnI8YTspZVtuXS5pbmRleDx0W3JdLmluZGV4PyhzW2xdPWVbbl0sbisrKTplW25dLmluZGV4PnRbcl0uaW5kZXg/KHNbbF09dFtyXSxyKyspOihzW2xdPXRbcl0sbisrLHIrKyksbCsrO2Zvcig7bjxvOylzW2xdPWVbbl0sbisrLGwrKztmb3IoO3I8YTspc1tsXT10W3JdLHIrKyxsKys7cmV0dXJuIHN9KHRoaXMuX2l0ZW1zLGUpLHRoaXMuX3N0YXJ0PTAsdGhpcy5fZW5kPXRoaXMuX2l0ZW1zLmxlbmd0aCxlWzBdfV9taW5NYXhPblJhbmdlQ2FjaGVkSW1wbChlLHQsaSl7aWYodGhpcy5pc0VtcHR5KCkpcmV0dXJuIG51bGw7bGV0IG49bnVsbDtjb25zdCByPSgwLHMuZW5zdXJlTm90TnVsbCkodGhpcy5maXJzdEluZGV4KCkpLG89KDAscy5lbnN1cmVOb3ROdWxsKSh0aGlzLmxhc3RJbmRleCgpKSxhPU1hdGgubWF4KGUsciksbD1NYXRoLm1pbih0LG8pLGg9TWF0aC5jZWlsKGEvYykqYyxkPU1hdGgubWF4KGgsTWF0aC5mbG9vcihsL2MpKmMpO249cChuLHRoaXMuX21pbk1heE9uUmFuZ2UoYSxNYXRoLm1pbihoLHQsbCksaSkpO2xldCB1PXRoaXMuX21pbk1heENhY2hlLmdldChpKTt2b2lkIDA9PT11JiYodT1uZXcgTWFwLAp0aGlzLl9taW5NYXhDYWNoZS5zZXQoaSx1KSk7Zm9yKGxldCBlPU1hdGgubWF4KGgrMSxhKTtlPGQ7ZSs9Yyl7Y29uc3QgdD1NYXRoLmZsb29yKGUvYyk7bGV0IHM9dS5nZXQodCk7aWYodm9pZCAwPT09cyl7Y29uc3QgZT10KmMsbj0odCsxKSpjLTE7cz10aGlzLl9taW5NYXhPblJhbmdlKGUsbixpKSx1LnNldCh0LHMpfW49cChuLHMpfW49cChuLHRoaXMuX21pbk1heE9uUmFuZ2UoZCxsLGkpKTtyZXR1cm4gbn1fbWluTWF4T25SYW5nZShlLHQsaSl7cmV0dXJuIHRoaXMuX3Bsb3RNaW5NYXgodGhpcy5fbG93ZXJib3VuZChlLGgpLHRoaXMuX3VwcGVyYm91bmQodCksaSl9X3JhbmdlSXRlcmF0b3JJbXBsKGUsdCl7bGV0IGk9ZS0xO3JldHVybntbU3ltYm9sLml0ZXJhdG9yXSgpe3JldHVybiB0aGlzfSxuZXh0OigpPT4oaSs9MSxpPj10P3tkb25lOiEwLHZhbHVlOnZvaWQgMH06e2RvbmU6ITEsdmFsdWU6dGhpcy5faXRlbXNbaV19KX19X2ludmFsaWRhdGVTZWFyY2hDYWNoZXMoKXt0aGlzLl9yb3dTZWFyY2hDYWNoZUJ5SW5kZXguY2xlYXIoKSx0aGlzLl9yb3dTZWFyY2hDYWNoZUJ5SW5kZXhXaXRob3V0RW1wdHlWYWx1ZXMuY2xlYXIoKSx0aGlzLl9yb3dTZWFyY2hDYWNoZUJ5VGltZS5jbGVhcigpLHRoaXMuX3Jvd1NlYXJjaENhY2hlQnlUaW1lV2l0aG91dEVtcHR5VmFsdWVzLmNsZWFyKCl9fWZ1bmN0aW9uIHAoZSx0KXtpZihudWxsPT09ZSlyZXR1cm4gdDtpZihudWxsPT09dClyZXR1cm4gZTtyZXR1cm57bWluOk1hdGgubWluKGUubWluLHQubWluKSxtYXg6TWF0aC5tYXgoZS5tYXgsdC5tYXgpfX19LDYxOTE2NShlLHQsaSl7InVzZSBzdHJpY3QiO2kuZCh0LHtTZXJpZXNEYXRhOigpPT5fLGJhckZ1bmN0aW9uOigpPT51LGJhckZ1bmN0aW9uczooKT0+aCxzZXJpZXNQbG90RnVuY3Rpb25NYXA6KCk9PmR9KTt2YXIgcyxuLHI9aSgxMzg2MzgpLG89aSg4NTcxNTEpLGE9aSg0NzU0NzgpOyFmdW5jdGlvbihlKXtlW2UuRnJvbUxlZnQ9LTFdPSJGcm9tTGVmdCIsZVtlLkZyb21SaWdodD0xXT0iRnJvbVJpZ2h0In0oc3x8KHM9e30pKSxmdW5jdGlvbihlKXtlW2UuVGltZT0wXT0iVGltZSIsZVtlLk9wZW49MV09Ik9wZW4iLGVbZS5IaWdoPTJdPSJIaWdoIixlW2UuTG93PTNdPSJMb3ciLGVbZS5DbG9zZT00XT0iQ2xvc2UiLGVbZS5Wb2x1bWU9NV09IlZvbHVtZSIsZVtlLkFkdD02XT0iQWR0In0obnx8KG49e30pKTtjb25zdCBsPVsib3BlbiIsImhpZ2giLCJsb3ciLCJjbG9zZSIsImhsMiIsImhsYzMiLCJvaGxjNCJdO3ZhciBjOyFmdW5jdGlvbihlKXtlW2UuRmlyc3RQcmljZT0wXT0iRmlyc3RQcmljZSIsZVtlLkxhc3RQcmljZT0xXT0iTGFzdFByaWNlIixlW2UuTGFzdFZhbHVlUHJpY2U9Ml09Ikxhc3RWYWx1ZVByaWNlIn0oY3x8KGM9e30pKTtjb25zdCBoPXtvcGVuOmU9PmVbMV0saGlnaDplPT5lWzJdLGxvdzplPT5lWzNdLGNsb3NlOmU9PmVbNF0saGwyOmU9PihlWzJdK2VbM10pLzIsaGxjMzplPT4oZVsyXStlWzNdK2VbNF0pLzMsb2hsYzQ6ZT0+KGVbMV0rZVsyXStlWzNdK2VbNF0pLzR9O2Z1bmN0aW9uIGQoKXtjb25zdCBlPW5ldyBNYXA7cmV0dXJuIGwuZm9yRWFjaCgoKHQsaSk9PntlLnNldCh0LHUodCkpfSkpLGV9ZnVuY3Rpb24gdShlLHQsaSl7Y29uc3Qgcz1oW3Q/P2VdLG49aFtlXSxyPWhbaT8/ZV07cmV0dXJuKGUsdCk9Pntzd2l0Y2godCl7Y2FzZSAwOnJldHVybiBzKGUpO2Nhc2UgMjpyZXR1cm4gcihlKTtkZWZhdWx0OnJldHVybiBuKGUpfX19ZnVuY3Rpb24gcChlLHQpe3JldHVybiBudWxsPT1lW3RdfWNsYXNzIF97Y29uc3RydWN0b3IoKXt0aGlzLm1fYmFycz1uZXcgby5QbG90TGlzdChkKCkscCksdGhpcy5tX25zQmFycz1uZXcgby5QbG90TGlzdChkKCkscCksdGhpcy5fY29uZmxhdGVkQ2h1bmtzQnVpbGRlcj1uZXcgYS5Db25mbGF0ZWRDaHVua3NCdWlsZGVyKHRoaXMubV9iYXJzLChlPT5oW2VdKSl9YmFycygpe3JldHVybiB0aGlzLm1fYmFyc31uc0JhcnMoKXtyZXR1cm4gdGhpcy5tX25zQmFyc31jb25mbGF0ZWRDaHVua3MoZSx0KXtyZXR1cm4gdGhpcy5fY29uZmxhdGVkQ2h1bmtzQnVpbGRlci5jb25mbGF0ZWRDaHVua3MoZSx0KX1tZXJnZVJlZ3VsYXJCYXJzKGUpe3JldHVybiB0aGlzLl9jb25mbGF0ZWRDaHVua3NCdWlsZGVyLm1lcmdlRGF0YShlKX1zaXplKCl7cmV0dXJuIHRoaXMubV9iYXJzLnNpemUoKSt0aGlzLm1fbnNCYXJzLnNpemUoKX1lYWNoKGUpe3RoaXMubV9iYXJzLmVhY2goZSksdGhpcy5tX25zQmFycy5lYWNoKGUpfWNsZWFyKCl7dGhpcy5tX25zQmFycy5jbGVhcigpLHRoaXMubGFzdFByb2plY3Rpb25QcmljZT12b2lkIDAsdGhpcy5fY29uZmxhdGVkQ2h1bmtzQnVpbGRlci5jbGVhckRhdGEoKX1jbG9uZSgpe2NvbnN0IGU9bmV3IF87cmV0dXJuIGUubGFzdFByb2plY3Rpb25QcmljZT10aGlzLmxhc3RQcm9qZWN0aW9uUHJpY2UsZS5ib3hTaXplPXRoaXMuYm94U2l6ZSxlLnJldmVyc2FsQW1vdW50PXRoaXMucmV2ZXJzYWxBbW91bnQsZS5tX2JhcnM9dGhpcy5tX2JhcnMuY2xvbmUoKSxlLm1fbnNCYXJzPXRoaXMubV9iYXJzLmNsb25lKCksZX1pc0VtcHR5KCl7cmV0dXJuIHRoaXMubV9iYXJzLmlzRW1wdHkoKSYmdGhpcy5tX25zQmFycy5pc0VtcHR5KCl9Zmlyc3QoKXtyZXR1cm4gdGhpcy5tX2JhcnMuaXNFbXB0eSgpP3RoaXMubV9uc0JhcnMuZmlyc3QoKTp0aGlzLm1fYmFycy5maXJzdCgpfWxhc3QoKXtyZXR1cm4gdGhpcy5tX25zQmFycy5pc0VtcHR5KCk/dGhpcy5tX2JhcnMubGFzdCgpOnRoaXMubV9uc0JhcnMubGFzdCgpfXNlYXJjaChlLHQsaSl7cmV0dXJuIHRoaXMubnNCYXJzKCkuaXNFbXB0eSgpP3RoaXMuYmFycygpLnNlYXJjaChlLHQsaSk6dGhpcy5iYXJzKCkuaXNFbXB0eSgpfHwoMCxyLmVuc3VyZU5vdE51bGwpKHRoaXMubnNCYXJzKCkuZmlyc3RJbmRleCgpKTw9ZT90aGlzLm5zQmFycygpLnNlYXJjaChlLHQsaSk6dGhpcy5iYXJzKCkuc2VhcmNoKGUsdCxpKX12YWx1ZUF0KGUpe2NvbnN0IHQ9dGhpcy5zZWFyY2goZSk7cmV0dXJuIG51bGwhPT10P3QudmFsdWU6bnVsbH0KcGxvdFZhbHVlVG9UaW1lUG9pbnRJbmRleChlLHQsaSl7aWYoaT09PXMuRnJvbVJpZ2h0KXtjb25zdCBpPShpLHMpPT57Y29uc3Qgbj1zW3RdO3JldHVybiBudWxsIT1uJiZlPj1ufSxzPXRoaXMubV9iYXJzLmZpbmRMYXN0KGkpO2lmKG51bGwhPT1zKXJldHVybiBzLmluZGV4O2NvbnN0IG49dGhpcy5tX25zQmFycy5maW5kTGFzdChpKTtyZXR1cm4gbnVsbCE9PW4/bi5pbmRleDp0aGlzLm1fYmFycy5maXJzdEluZGV4KCl9aWYoaT09PXMuRnJvbUxlZnQpe2NvbnN0IGk9KGkscyk9Pntjb25zdCBuPXNbdF07cmV0dXJuIG51bGwhPW4mJmU8PW59LHM9dGhpcy5tX2JhcnMuZmluZEZpcnN0KGkpO2lmKG51bGwhPT1zKXJldHVybiBzLmluZGV4O2NvbnN0IG49dGhpcy5tX25zQmFycy5maW5kRmlyc3QoaSk7cmV0dXJuIG51bGwhPT1uP24uaW5kZXg6dGhpcy5tX2JhcnMubGFzdEluZGV4KCl9dGhyb3cgbmV3IEVycm9yKCJwbG90VmFsdWVUb1RpbWVQb2ludEluZGV4OiB1bnN1cHBvcnRlZCBzZWFyY2ggbW9kZSIpfW1vdmVEYXRhKGUpe3RoaXMuX2NvbmZsYXRlZENodW5rc0J1aWxkZXIubW92ZURhdGEoZSksdGhpcy5tX25zQmFycy5tb3ZlKGUpfX19LDE3OTY3NChlLHQsaSl7InVzZSBzdHJpY3QiO3ZhciBzO2kuZCh0LHtEd2dFeHRlbmQ6KCk9PnN9KSxmdW5jdGlvbihlKXtlLk5vbmU9Im4iLGUuTGVmdD0ibCIsZS5SaWdodD0iciIsZS5Cb3RoPSJiIn0oc3x8KHM9e30pKX0sNTQ4NTYwKGUsdCxpKXsidXNlIHN0cmljdCI7dmFyIHMsbixyLG87aS5kKHQse0R3Z0xhYmVsU3R5bGU6KCk9PnIsRHdnTGFiZWxUZXh0QWxpZ246KCk9PnMsRHdnTGFiZWxZbG9jOigpPT5ufSksZnVuY3Rpb24oZSl7ZS5MZWZ0PSJsZWZ0IixlLkNlbnRlcj0iY2VudGVyIixlLlJpZ2h0PSJyaWdodCJ9KHN8fChzPXt9KSksZnVuY3Rpb24oZSl7ZS5BYm92ZUJhcj0iYWIiLGUuQmVsb3dCYXI9ImJsIixlLlByaWNlPSJwciIsZS5BdXRvPSJhdXRvIn0obnx8KG49e30pKSxmdW5jdGlvbihlKXtlLlhjcm9zcz0ieGNyIixlLkNyb3NzPSJjciIsZS5UcmlhbmdsZXVwPSJ0dXAiLGUuVHJpYW5nbGVkb3duPSJ0ZG4iLGUuRmxhZz0iZmxnIixlLkNpcmNsZT0iY2lyIixlLkFycm93dXA9ImF1cCIsZS5BcnJvd2Rvd249ImFkbiIsZS5MYWJlbFVwPSJsdXAiLGUuTGFiZWxEb3duPSJsZG4iLGUuTGFiZWxMZWZ0PSJsbGYiLGUuTGFiZWxSaWdodD0ibHJnIixlLkxhYmVsQ2VudGVyPSJsY24iLGUuTGFiZWxMZWZ0VXA9Imx1cGxmIixlLkxhYmVsTGVmdERvd249Imxsd2xmIixlLkxhYmVsUmlnaHRVcD0ibHVwcmciLGUuTGFiZWxSaWdodERvd249Imxsd3JnIixlLlNxdWFyZT0ic3EiLGUuRGlhbW9uZD0iZGlhIixlLlRleHRPdXRsaW5lPSJ0byIsZS5Ob25lPSJuIn0ocnx8KHI9e30pKSxmdW5jdGlvbihlKXtlLk1vbm9zcGFjZT0ibW9ub3NwYWNlIn0ob3x8KG89e30pKX0sMzk0OTYzKGUsdCxpKXsidXNlIHN0cmljdCI7dmFyIHMsbjtpLmQodCx7SEhpc3REaXJlY3Rpb246KCk9PnMsSEhpc3RMb2NhdGlvbjooKT0+bn0pLGZ1bmN0aW9uKGUpe2UuTGVmdFRvUmlnaHQ9ImxlZnRfdG9fcmlnaHQiLGUuUmlnaHRUb0xlZnQ9InJpZ2h0X3RvX2xlZnQifShzfHwocz17fSkpLGZ1bmN0aW9uKGUpe2UuUmVsYXRpdmU9InJlbGF0aXZlIixlLkFic29sdXRlPSJhYnNvbHV0ZSJ9KG58fChuPXt9KSl9LDIyMzg2OShlLHQsaSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHMoZSl7cmV0dXJuL15ccypzdHJhdGVneVxzKlwoL20udGVzdChlKX1pLmQodCx7aXNTdHJhdGVneTooKT0+c30pfSw5NjU3OTUoZSx0LGkpeyJ1c2Ugc3RyaWN0IjtpLmQodCx7bWFrZU5leHRTdHVkeUlkOigpPT5ufSk7bGV0IHM9MDtmdW5jdGlvbiBuKCl7cmV0dXJuIHMrKywic3QiK3N9fSwxNjQxNTYoZSx0LGkpeyJ1c2Ugc3RyaWN0Ijt2YXIgcztpLmQodCx7UGluZUtpbmQ6KCk9PnN9KSxmdW5jdGlvbihlKXtlLlN0dWR5PSJzdHVkeSIsZS5TdHJhdGVneT0ic3RyYXRlZ3kiLGUuTGlicmFyeT0ibGlicmFyeSJ9KHN8fChzPXt9KSl9LDU4OTUxMShlLHQsaSl7InVzZSBzdHJpY3QiO3ZhciBzO2kuZCh0LHtQbG90U3ltYm9sU2l6ZTooKT0+c30pLGZ1bmN0aW9uKGUpe2UuQXV0bz0iYXV0byIsZS5UaW55PSJ0aW55IixlLlNtYWxsPSJzbWFsbCIsZS5Ob3JtYWw9Im5vcm1hbCIsZS5MYXJnZT0ibGFyZ2UiLGUuSHVnZT0iaHVnZSJ9KHN8fChzPXt9KSl9LDY2Njk0NyhlLHQsaSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHMoZSl7aWYoZTwwKXRocm93IG5ldyBFcnJvcigiVGltZVBvaW50SW5kZXhJbmRleCBzaG91bGQgYmUgbm9uLW5lZ2F0aXZlIGludGVnZXIiKTtyZXR1cm4gZX1pLmQodCx7ZW5zdXJlVGltZVBvaW50SW5kZXhJbmRleDooKT0+c30pfSwxOTg1NDEoZSx0LGkpeyJ1c2Ugc3RyaWN0IjtpLnIodCksaS5kKHQse1N0dWR5RGF0YVNvdXJjZTooKT0+X30pO3ZhciBzPWkoMTM4NjM4KSxuPWkoOTQ4MzgwKSxyPWkoMjIxMDYxKSxvPWkoNTUwOTA0KSxhPWkoODU3MTUxKSxsPWkoNzkxNDI3KSxjPWkoMTQyMzg5KSxoPWkoOTY1Nzk1KSxkPWkoNTA0NDMxKTtjb25zdCB1PSgwLHIuZ2V0TG9nZ2VyKSgiQ2hhcnQuU3R1ZHlEYXRhU291cmNlIik7dmFyIHA7IWZ1bmN0aW9uKGUpe2VbZS5JZGxlPTBdPSJJZGxlIixlW2UuQXdhaXRpbmdDb25uZWN0aW9uPTFdPSJBd2FpdGluZ0Nvbm5lY3Rpb24iLGVbZS5Bd2FpdGluZ1BhcmVudD0yXT0iQXdhaXRpbmdQYXJlbnQiLGVbZS5Bd2FpdGluZ0ZpcnN0RGF0YVVwZGF0ZT0zXT0iQXdhaXRpbmdGaXJzdERhdGFVcGRhdGUiLGVbZS5BY3RpdmU9NF09IkFjdGl2ZSJ9KHB8fChwPXt9KSk7Y2xhc3MgX3tjb25zdHJ1Y3RvcihlLHQsaSxzLHI9ITEpe3RoaXMuX2lucHV0cz1udWxsLHRoaXMuX3N0YXR1cz1wLklkbGUsdGhpcy5fc3R1ZHlJZD1udWxsLHRoaXMuX3R1cm5hcm91bmRDb3VudGVyPTEsdGhpcy5fc3R1ZHlTdGF0dXM9e3R5cGU6Yy5TdHVkeVN0YXR1c1R5cGUuVW5kZWZpbmVkfSx0aGlzLl9zdHVkeVN0YXR1c0NoYW5nZWQ9bmV3IG4uRGVsZWdhdGUsdGhpcy5fZGF0YUNsZWFyZWQ9bmV3IG4uRGVsZWdhdGUsCnRoaXMuX2RhdGFVcGRhdGVkPW5ldyBuLkRlbGVnYXRlLHRoaXMuX2JvdW5kT25HYXRld2F5SXNDb25uZWN0ZWRDaGFuZ2VkPXRoaXMuX29uR2F0ZXdheUlzQ29ubmVjdGVkQ2hhbmdlZC5iaW5kKHRoaXMpLHRoaXMuX29uZ29pbmdEYXRhVXBkYXRlPVByb21pc2UucmVzb2x2ZSgpLHRoaXMuX2dhdGV3YXk9ZSx0aGlzLl9tZXRhSW5mbz1zLHRoaXMuX2ZvcmNlVXNlRXhjbGFtYXRpb25NYXJrPXIsdGhpcy5fc2VyaWVzU291cmNlPXQsdGhpcy5fdHVybmFyb3VuZFByZWZpeD1pLHRoaXMuX2NyZWF0ZVBsb3RzKCksdGhpcy5fZ2F0ZXdheS5pc0Nvbm5lY3RlZCgpLnN1YnNjcmliZSh0aGlzLl9ib3VuZE9uR2F0ZXdheUlzQ29ubmVjdGVkQ2hhbmdlZCl9ZGVzdHJveSgpe3RoaXMuc3RvcCgpLHRoaXMuX2dhdGV3YXkuaXNDb25uZWN0ZWQoKS51bnN1YnNjcmliZSh0aGlzLl9ib3VuZE9uR2F0ZXdheUlzQ29ubmVjdGVkQ2hhbmdlZCksdGhpcy5fc2VyaWVzU291cmNlLmRhdGFFdmVudHMoKS5jcmVhdGVkKCkudW5zdWJzY3JpYmVBbGwodGhpcyl9bWV0YUluZm8oKXtyZXR1cm4gdGhpcy5fbWV0YUluZm99aW5wdXRzKCl7cmV0dXJuIHRoaXMuX2lucHV0c31zZXRJbnB1dHMoZSl7dGhpcy5faW5wdXRzPWUsbnVsbCE9PXRoaXMuX3N0dWR5SWQmJih0aGlzLl90dXJuYXJvdW5kQ291bnRlcisrLHRoaXMuX29uU3R1ZHlTdGF0dXNDaGFuZ2VkVG8oe3R5cGU6Yy5TdHVkeVN0YXR1c1R5cGUuVW5kZWZpbmVkfSksdGhpcy5fZ2F0ZXdheS5tb2RpZnlTdHVkeSh0aGlzLl9zdHVkeUlkLHRoaXMuX3R1cm5hcm91bmQoKSxlLHRoaXMuX29uTWVzc2FnZS5iaW5kKHRoaXMpKSx0aGlzLl9zdGF0dXM9PT1wLkFjdGl2ZSYmdGhpcy5fY2hhbmdlU3RhdHVzVG8ocC5Bd2FpdGluZ0ZpcnN0RGF0YVVwZGF0ZSkpfWlzU3RhcnRlZCgpe3JldHVybiB0aGlzLl9zdGF0dXMhPT1wLklkbGV9aXNBY3RpdmUoKXtyZXR1cm4gdGhpcy5fc3RhdHVzPT09cC5BY3RpdmV9c3RhcnQoKXt0aGlzLmlzU3RhcnRlZCgpP3UubG9nTm9ybWFsKCJzdGFydDogZGF0YSBzb3VyY2UgaXMgYWxyZWFkeSBzdGFydGVkLCBub3RoaW5nIHRvIGRvIik6KCgwLHMuYXNzZXJ0KShudWxsIT09dGhpcy5faW5wdXRzLCJJbnB1dHMgc2hvdWxkIGJlIGRlZmluZWQgd2hlbiBzdGFydGluZyBhIHN0dWR5IGRhdGEgc291cmNlIiksdGhpcy5fZ2F0ZXdheS5pc0Nvbm5lY3RlZCgpLnZhbHVlKCk/dGhpcy5fY3JlYXRlU3R1ZHkoKTp0aGlzLl9jaGFuZ2VTdGF0dXNUbyhwLkF3YWl0aW5nQ29ubmVjdGlvbikpfXN0b3AoKXt0aGlzLmlzU3RhcnRlZCgpPyhudWxsIT09dGhpcy5fc3R1ZHlJZCYmKHRoaXMuX2dhdGV3YXkuaXNDb25uZWN0ZWQoKS52YWx1ZSgpJiZ0aGlzLl9nYXRld2F5LnJlbW92ZVN0dWR5KHRoaXMuX3N0dWR5SWQpLHRoaXMuX3N0dWR5SWQ9bnVsbCx0aGlzLl9vblN0dWR5U3RhdHVzQ2hhbmdlZFRvKHt0eXBlOmMuU3R1ZHlTdGF0dXNUeXBlLlVuZGVmaW5lZH0pKSx0aGlzLl9jaGFuZ2VTdGF0dXNUbyhwLklkbGUpKTp1LmxvZ05vcm1hbCgic3RvcDogZGF0YSBzb3VyY2UgaXMgYWxyZWFkeSBzdG9wcGVkLCBub3RoaW5nIHRvIGRvIil9c3R1ZHlJZCgpe3JldHVybiB0aGlzLl9zdHVkeUlkfXN0dWR5U3RhdHVzKCl7cmV0dXJuIHRoaXMuX3N0dWR5U3RhdHVzfXN0dWR5U3RhdHVzQ2hhbmdlZCgpe3JldHVybiB0aGlzLl9zdHVkeVN0YXR1c0NoYW5nZWR9cGxvdHMoKXtyZXR1cm4gdGhpcy5fcGxvdHN9Y2xlYXJEYXRhKCl7dGhpcy5fcGxvdHMuY2xlYXIoKSx0aGlzLl9kYXRhQ2xlYXJlZC5maXJlKCl9ZGF0YUNsZWFyZWQoKXtyZXR1cm4gdGhpcy5fZGF0YUNsZWFyZWR9ZGF0YVVwZGF0ZWQoKXtyZXR1cm4gdGhpcy5fZGF0YVVwZGF0ZWR9bW92ZURhdGEoZSl7dGhpcy5fb25nb2luZ0RhdGFVcGRhdGU9dGhpcy5fb25nb2luZ0RhdGFVcGRhdGUudGhlbigoKCk9Pnt0aGlzLl9wbG90cy5tb3ZlKGUpfSkpfXBlbmRpbmdVcGRhdGVzUmVhZHkoKXtyZXR1cm4gdGhpcy5fb25nb2luZ0RhdGFVcGRhdGV9c3RhdGljIHNldE5vblNlcmllc0RhdGFVbnBhY2tlcihlKXtfLl9ub25TZXJpZXNEYXRhVW5wYWNrZXI9ZX1fY3JlYXRlU3R1ZHlFcnJvcihlKXtyZXR1cm57dHlwZTpjLlN0dWR5U3RhdHVzVHlwZS5FcnJvcixlcnJvckRlc2NyaXB0aW9uOnRoaXMuX2dldFN0dWR5RXJyb3JEZXNjcmlwdGlvbihlKX19X2dldFN0dWR5RXJyb3JEZXNjcmlwdGlvbihlKXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIGU/e2Vycm9yOmUuc3BsaXQoIjoiLDIpWzBdfTplfV9jcmVhdGVQbG90cygpe3RoaXMuX3Bsb3RzPW5ldyBhLlBsb3RMaXN0KCgwLGQuc3R1ZHlQbG90RnVuY3Rpb25NYXApKHRoaXMubWV0YUluZm8oKSksZC5zdHVkeUVtcHR5UGxvdFZhbHVlUHJlZGljYXRlKX1fY2hhbmdlU3RhdHVzVG8oZSl7KDAscy5hc3NlcnQpKHRoaXMuX3N0YXR1cyE9PWUsIlNvdXJjZSBhbmQgZGVzdGluYXRpb24gc3RhdHVzIHNob3VsZCBiZSBkaXN0aW5jdCIpLHUubG9nTm9ybWFsKGBTdGF0dXMgY2hhbmdlZCBmcm9tICR7cFt0aGlzLl9zdGF0dXNdfSB0byAke3BbZV19YCksdGhpcy5fc3RhdHVzPWV9X2NyZWF0ZVN0dWR5KCl7Y29uc3QgZT10aGlzLl9zZXJpZXNTb3VyY2UuaW5zdGFuY2VJZCgpO251bGwhPT1lP3RoaXMuX2NyZWF0ZVN0dWR5VXNpbmdQYXJlbnRJZChlKToodGhpcy5fY2hhbmdlU3RhdHVzVG8ocC5Bd2FpdGluZ1BhcmVudCksdGhpcy5fc2VyaWVzU291cmNlLmRhdGFFdmVudHMoKS5jcmVhdGVkKCkuc3Vic2NyaWJlKHRoaXMsdGhpcy5fb25TZXJpZXNDcmVhdGVkLCEwKSl9X2NyZWF0ZVN0dWR5VXNpbmdQYXJlbnRJZChlKXsoMCxzLmFzc2VydCkodGhpcy5fc3RhdHVzIT09cC5BY3RpdmUsJ1N0YXR1cyBzaG91bGQgbm90IGJlICJBY3RpdmUiIHdoZW4gY3JlYXRpbmcgYSBzdHVkeScpLCgwLHMuYXNzZXJ0KSh0aGlzLl9zdHVkeVN0YXR1cy50eXBlPT09Yy5TdHVkeVN0YXR1c1R5cGUuVW5kZWZpbmVkLCdTdHVkeSBzdGF0dXMgc2hvdWxkIGJlICJVbmRlZmluZWQiIHdoZW4gY3JlYXRpbmcgYSBzdHVkeScpLCgwLApzLmFzc2VydCkobnVsbD09PXRoaXMuX3N0dWR5SWQsIlN0dWR5IGlkIHNob3VsZCBiZSBlbXB0eSB3aGVuIGNyZWF0aW5nIGEgc3R1ZHkiKSx0aGlzLl9zdHVkeUlkPSgwLGgubWFrZU5leHRTdHVkeUlkKSgpLHRoaXMuX2dhdGV3YXkuY3JlYXRlU3R1ZHkodGhpcy5fc3R1ZHlJZCx0aGlzLl90dXJuYXJvdW5kKCksZSxsLlN0dWR5TWV0YUluZm8uZ2V0U3R1ZHlJZFdpdGhMYXRlc3RWZXJzaW9uKHRoaXMubWV0YUluZm8oKSx0aGlzLl9mb3JjZVVzZUV4Y2xhbWF0aW9uTWFyayksKDAscy5lbnN1cmVOb3ROdWxsKSh0aGlzLl9pbnB1dHMpLHRoaXMuX29uTWVzc2FnZS5iaW5kKHRoaXMpLHtpZDp0aGlzLl9tZXRhSW5mby5pZH0pLHRoaXMuX2NoYW5nZVN0YXR1c1RvKHAuQXdhaXRpbmdGaXJzdERhdGFVcGRhdGUpfV9vbkdhdGV3YXlJc0Nvbm5lY3RlZENoYW5nZWQoZSl7ZT90aGlzLl9vbkdhdGV3YXlDb25uZWN0ZWQoKTp0aGlzLl9vbkdhdGV3YXlEaXNjb25uZWN0ZWQoKX1fb25HYXRld2F5Q29ubmVjdGVkKCl7dGhpcy5fc3RhdHVzPT09cC5Bd2FpdGluZ0Nvbm5lY3Rpb24mJnRoaXMuX2NyZWF0ZVN0dWR5KCl9X29uR2F0ZXdheURpc2Nvbm5lY3RlZCgpe3RoaXMuX3N0YXR1cyE9PXAuSWRsZSYmdGhpcy5fc3RhdHVzIT09cC5Bd2FpdGluZ0Nvbm5lY3Rpb24mJih0aGlzLl9zdHVkeUlkPW51bGwsdGhpcy5fY2hhbmdlU3RhdHVzVG8ocC5Bd2FpdGluZ0Nvbm5lY3Rpb24pLHRoaXMuX3N0dWR5U3RhdHVzLnR5cGUhPT1jLlN0dWR5U3RhdHVzVHlwZS5VbmRlZmluZWQmJnRoaXMuX29uU3R1ZHlTdGF0dXNDaGFuZ2VkVG8oe3R5cGU6Yy5TdHVkeVN0YXR1c1R5cGUuVW5kZWZpbmVkfSkpLHRoaXMuX3R1cm5hcm91bmRDb3VudGVyPTF9X29uU2VyaWVzQ3JlYXRlZCgpe3RoaXMuX3N0YXR1cz09PXAuQXdhaXRpbmdQYXJlbnQmJnRoaXMuX2NyZWF0ZVN0dWR5VXNpbmdQYXJlbnRJZCgoMCxzLmVuc3VyZSkodGhpcy5fc2VyaWVzU291cmNlLmluc3RhbmNlSWQoKSkpfV9vblN0dWR5U3RhdHVzQ2hhbmdlZFRvKGUpe2NvbnN0IHQ9dGhpcy5fc3R1ZHlTdGF0dXM7dGhpcy5fc3R1ZHlTdGF0dXM9ZSx1LmxvZ05vcm1hbChgU3R1ZHkgc3RhdHVzIHR5cGUgY2hhbmdlZCBmcm9tICR7Yy5TdHVkeVN0YXR1c1R5cGVbdC50eXBlXX0gdG8gJHtjLlN0dWR5U3RhdHVzVHlwZVtlLnR5cGVdfWApLHRoaXMuX3N0dWR5U3RhdHVzQ2hhbmdlZC5maXJlKHQsZSl9X29uTWVzc2FnZShlKXtpZigiZGF0YV91cGRhdGUiPT09ZS5tZXRob2Qpe2NvbnN0e2N1c3RvbUlkOnQsdHVybmFyb3VuZDppLHBsb3RzOm4sbm9uc2VyaWVzOnJ9PWUucGFyYW1zO3Q9PT10aGlzLl9zdHVkeUlkJiZ0aGlzLl9jaGVja1R1cm5hcm91bmQoaSkmJnRoaXMuX29uRGF0YVVwZGF0ZShuLCgwLHMuZW5zdXJlRGVmaW5lZCkocikpfWVsc2UgaWYoInN0dWR5X2xvYWRpbmciPT09ZS5tZXRob2Qpe2NvbnN0W3QsaV09ZS5wYXJhbXM7dD09PXRoaXMuX3N0dWR5SWQmJnRoaXMuX2NoZWNrVHVybmFyb3VuZChpKSYmdGhpcy5fb25TdHVkeUxvYWRpbmcoZS50aW1lKX1lbHNlIGlmKCJzdHVkeV9jb21wbGV0ZWQiPT09ZS5tZXRob2Qpe2NvbnN0W3QsaV09ZS5wYXJhbXM7dD09PXRoaXMuX3N0dWR5SWQmJnRoaXMuX2NoZWNrVHVybmFyb3VuZChpKSYmdGhpcy5fb25TdHVkeUNvbXBsZXRlZChlLnRpbWUpfWVsc2UgaWYoInN0dWR5X2Vycm9yIj09PWUubWV0aG9kKXtjb25zdFt0LGkscyxuXT1lLnBhcmFtczt0PT09dGhpcy5fc3R1ZHlJZCYmdGhpcy5fY2hlY2tUdXJuYXJvdW5kKGkpJiZ0aGlzLl9vblN0dWR5RXJyb3IocyxuLGUudGltZSl9ZWxzZSJjbGVhcl9kYXRhIj09PWUubWV0aG9kJiZ0aGlzLl9jaGVja1R1cm5hcm91bmQoZS5wYXJhbXMudHVybmFyb3VuZCkmJnRoaXMuY2xlYXJEYXRhKCl9X29uRGF0YVVwZGF0ZShlLHQpe2NvbnN0IGk9Xy5fbm9uU2VyaWVzRGF0YVVucGFja2VyKHQuZCk7cmV0dXJuIHRoaXMuX29uZ29pbmdEYXRhVXBkYXRlPXRoaXMuX29uZ29pbmdEYXRhVXBkYXRlLnRoZW4oKCgpPT5pKSwoKCk9PmkpKS50aGVuKHRoaXMuX29uRGF0YVVucGFja2VkLmJpbmQodGhpcyxlLHQuaW5kZXhlcykpLHRoaXMuX29uZ29pbmdEYXRhVXBkYXRlfV9vbkRhdGFVbnBhY2tlZChlLHQsaSl7dGhpcy5fc3RhdHVzIT09cC5JZGxlJiYodGhpcy5fc3RhdHVzPT09cC5Bd2FpdGluZ0ZpcnN0RGF0YVVwZGF0ZSYmKHRoaXMuX2NoYW5nZVN0YXR1c1RvKHAuQWN0aXZlKSx0aGlzLmNsZWFyRGF0YSgpKSx0aGlzLl9tZXJnZVBsb3RzKGUpLHRoaXMuX2RhdGFVcGRhdGVkLmZpcmUoZSxpLHQpKX1fb25TdHVkeUxvYWRpbmcoZSl7dGhpcy5fb25TdHVkeVN0YXR1c0NoYW5nZWRUbyh7dHlwZTpjLlN0dWR5U3RhdHVzVHlwZS5Mb2FkaW5nLHN0YXJ0VGltZTpEYXRlLm5vdygpfSl9X29uU3R1ZHlFcnJvcihlLHQsaSl7dGhpcy5jbGVhckRhdGEoKSx0aGlzLl9vblN0dWR5U3RhdHVzQ2hhbmdlZFRvKHRoaXMuX2NyZWF0ZVN0dWR5RXJyb3IoZSkpfV9vblN0dWR5Q29tcGxldGVkKGUpe3RoaXMuX29uU3R1ZHlTdGF0dXNDaGFuZ2VkVG8oe3R5cGU6Yy5TdHVkeVN0YXR1c1R5cGUuQ29tcGxldGVkfSl9X21lcmdlUGxvdHMoZSl7dGhpcy5fcGxvdHMubWVyZ2UoZSl9X3R1cm5hcm91bmQoKXtyZXR1cm5gJHt0aGlzLl90dXJuYXJvdW5kUHJlZml4fSR7dGhpcy5fdHVybmFyb3VuZENvdW50ZXJ9YH1fY2hlY2tUdXJuYXJvdW5kKGUpe2NvbnN0IHQ9dGhpcy5fdHVybmFyb3VuZCgpO3JldHVybiBlPT09dHx8ZT09PXRoaXMuX3Nlcmllc1NvdXJjZS50dXJuYXJvdW5kKCl8fGU9PT1gJHt0aGlzLl9zZXJpZXNTb3VyY2UudHVybmFyb3VuZCgpfV8ke3R9YH19Xy5fbm9uU2VyaWVzRGF0YVVucGFja2VyPW8udW5wYWNrTm9uU2VyaWVzRGF0YX0sNTA0NDMxKGUsdCxpKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gcyhlKXtjb25zdCB0PW5ldyBNYXA7cmV0dXJuIGUucGxvdHMuZm9yRWFjaCgoKGUsaSk9Pnt0LnNldChlLmlkLChlPT5lW2krMV0pKX0pKSx0fWZ1bmN0aW9uIG4oZSx0KXtyZXR1cm4gbnVsbD09ZVt0XX1pLmQodCx7c3R1ZHlFbXB0eVBsb3RWYWx1ZVByZWRpY2F0ZTooKT0+biwKc3R1ZHlQbG90RnVuY3Rpb25NYXA6KCk9PnN9KX0sNjM0ODYoZSx0LGkpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBzKGUsdCl7cmV0dXJuYCR7ZX1AJHt0fWB9ZnVuY3Rpb24gbihlKXtyZXR1cm4gZS5yZXBsYWNlKC8oQFteLV0rLVteLV0rKS4qJC8sIiQxIil9aS5kKHQse2V4dHJhY3RTdHVkeUlkOigpPT5uLHN0dWR5SWRTdHJpbmc6KCk9PnN9KX0sNjI4MDYoZSx0LGkpeyJ1c2Ugc3RyaWN0IjtpLmQodCx7Q2hhcnRDb2xvckRlcGVuZGVudFN0dWR5SW5wdXROYW1lczooKT0+ZyxJbnB1dERpc3BsYXlGbGFnczooKT0+bixSYW5nZURlcGVuZGVudFN0dWR5SW5wdXROYW1lczooKT0+bCxTdHVkeVN0cmF0ZWd5SW5wdXRJbnRlcm5hbElEOigpPT5yLFN0dWR5U3RyYXRlZ3lRdHlUeXBlSW5wdXRWYWx1ZTooKT0+byxhcmVTdHVkeUlucHV0c0VxdWFsOigpPT5fLGVkaXRhYmxlU3R1ZHlJbnB1dHM6KCk9PnYsZ2V0SW5wdXRWYWx1ZTooKT0+dSxpc0V4dGVuZGVkSW5wdXQ6KCk9PmgsaXNFeHRlbmRlZElucHV0Qm9vbDooKT0+dyxpc0V4dGVuZGVkSW5wdXRTb3VyY2U6KCk9PmQsaXNTdHJhdGVneUlucHV0OigpPT5DLGlzU3R1ZHlJbnB1dERlcGVuZHNPbkNoYXJ0OigpPT5iLGlzU3R1ZHlJbnB1dERlcGVuZHNPbkNoYXJ0Q29sb3JzOigpPT55LGlzU3R1ZHlJbnB1dE9wdGlvbnNJbmZvOigpPT5wLGlzVGltZU9yUHJpY2VOb3RIaWRkZW5JbnB1dDooKT0+UyxyYW5nZURlcGVuZGVudFN0dWR5SW5wdXROYW1lc0xpc3Q6KCk9Pm0scmFuZ2VEZXBlbmRlbnRTdHVkeUlucHV0c1RvVGltZVJhbmdlOigpPT5mLHVzZXJFZGl0YWJsZUlucHV0RmlsdGVyOigpPT5QfSk7dmFyIHMsbixyLG8sYSxsLGM9aSg4ODAxMTUpO2Z1bmN0aW9uIGgoZSl7cmV0dXJuKDAsYy5kZWZhdWx0KShlKX1mdW5jdGlvbiBkKGUpe3JldHVybiJzb3VyY2UiPT09ZS50fWZ1bmN0aW9uIHUoZSl7cmV0dXJuIGgoZSk/ZS52OmV9ZnVuY3Rpb24gcChlKXtyZXR1cm5bInRleHQiLCJpbnRlZ2VyIiwiZmxvYXQiLCJwcmljZSIsInNlc3Npb24iLCJyZXNvbHV0aW9uIl0uaW5jbHVkZXMoZS50eXBlKSYmZS5oYXNPd25Qcm9wZXJ0eSgib3B0aW9ucyIpfWZ1bmN0aW9uIF8oZSx0LGkpe2Zvcihjb25zdCBzIG9mIGUpaWYodFtzLmlkXSE9PWlbcy5pZF0pcmV0dXJuITE7cmV0dXJuITB9IWZ1bmN0aW9uKGUpe2UuSW50ZWdlcj0iaW50ZWdlciIsZS5GbG9hdD0iZmxvYXQiLGUuUHJpY2U9InByaWNlIixlLkJvb2w9ImJvb2wiLGUuVGV4dD0idGV4dCIsZS5TeW1ib2w9InN5bWJvbCIsZS5TZXNzaW9uPSJzZXNzaW9uIixlLlNvdXJjZT0ic291cmNlIixlLlJlc29sdXRpb249InJlc29sdXRpb24iLGUuVGltZT0idGltZSIsZS5CYXJUaW1lPSJiYXJfdGltZSIsZS5Db2xvcj0iY29sb3IiLGUuVGV4dGFyZWE9InRleHRfYXJlYSJ9KHN8fChzPXt9KSksZnVuY3Rpb24oZSl7ZVtlLk5vbmU9MF09Ik5vbmUiLGVbZS5EYXRhV2luZG93PTJdPSJEYXRhV2luZG93IixlW2UuU3RhdHVzTGluZT04XT0iU3RhdHVzTGluZSIsZVtlLkFsbD0xNV09IkFsbCJ9KG58fChuPXt9KSksZnVuY3Rpb24oZSl7ZS5Jbml0aWFsQ2FwaXRhbD0iaW5pdGlhbF9jYXBpdGFsIixlLkN1cnJlbmN5PSJjdXJyZW5jeSIsZS5EZWZhdWx0UVRZVmFsdWU9ImRlZmF1bHRfcXR5X3ZhbHVlIixlLkRlZmF1bHRRVFlUeXBlPSJkZWZhdWx0X3F0eV90eXBlIixlLlB5cmFtaWRpbmc9InB5cmFtaWRpbmciLGUuQ29taXNzaW9uVmFsdWU9ImNvbW1pc3Npb25fdmFsdWUiLGUuQ29taXNzaW9uVHlwZT0iY29tbWlzc2lvbl90eXBlIixlLkJhY2t0ZXN0RmlsbExpbWl0c0Fzc3VtdGlvbj0iYmFja3Rlc3RfZmlsbF9saW1pdHNfYXNzdW1wdGlvbiIsZS5TbGlwcGFnZT0ic2xpcHBhZ2UiLGUuQ2FsY09uT3JkZXJGaWxscz0iY2FsY19vbl9vcmRlcl9maWxscyIsZS5DYWxjT25FdmVyeVRpY2s9ImNhbGNfb25fZXZlcnlfdGljayIsZS5DYWxjT25IaXN0b3J5QmFyPSJjYWxjX29uX2V2ZXJ5X2hpc3RvcnlfdGljayIsZS5NYXJnaW5Mb25nPSJtYXJnaW5fbG9uZyIsZS5NYXJnaW5TaG9ydD0ibWFyZ2luX3Nob3J0IixlLkJhckRldGFsaXphdGlvbj0idXNlX2Jhcl9tYWduaWZpZXIiLGUuUHJvY2Vzc09yZGVyc09uQ2xvc2U9InByb2Nlc3Nfb3JkZXJzX29uX2Nsb3NlIixlLkZpbGxPcmRlcnNPblN0YW5kYXJkT0hMQz0iZmlsbF9vcmRlcnNfb25fc3RhbmRhcmRfb2hsYyJ9KHJ8fChyPXt9KSksZnVuY3Rpb24oZSl7ZS5GaXhlZD0iZml4ZWQiLGUuQ2FzaFBlck9yZGVyPSJjYXNoX3Blcl9vcmRlciIsZS5QZXJjZW50T2ZFcXVpdHk9InBlcmNlbnRfb2ZfZXF1aXR5In0ob3x8KG89e30pKSxmdW5jdGlvbihlKXtlLlBlcmNlbnQ9InBlcmNlbnQiLGUuQ2FzaFBlckNvbnRyYWN0PSJjYXNoX3Blcl9jb250cmFjdCIsZS5DYXNoUGVyT3JkZXI9ImNhc2hfcGVyX29yZGVyIn0oYXx8KGE9e30pKSxmdW5jdGlvbihlKXtlLkZpcnN0QmFyPSJmaXJzdF92aXNpYmxlX2Jhcl90aW1lIixlLkxhc3RCYXI9Imxhc3RfdmlzaWJsZV9iYXJfdGltZSIsZS5SZWFsdGltZT0ic3Vic2NyaWJlUmVhbHRpbWUifShsfHwobD17fSkpO2NvbnN0IG09T2JqZWN0LnZhbHVlcyhsKTt2YXIgZztmdW5jdGlvbiBmKGUpe3JldHVybntmcm9tOk1hdGgucm91bmQoZS5maXJzdF92aXNpYmxlX2Jhcl90aW1lLzFlMyksdG86TWF0aC5yb3VuZChlLmxhc3RfdmlzaWJsZV9iYXJfdGltZS8xZTMpfX1mdW5jdGlvbiBTKGUpe3JldHVybigidGltZSI9PT1lLnR5cGV8fCJwcmljZSI9PT1lLnR5cGUpJiYhMCE9PWUuaXNIaWRkZW59ZnVuY3Rpb24gdihlKXtjb25zdCB0PWUuZmlsdGVyKFMpO2lmKDA9PT10Lmxlbmd0aClyZXR1cm5bXTtjb25zdCBpPW5ldyBNYXAscz1bXTt0LmZvckVhY2goKGU9Pntjb25zdHtncm91cDp0LGlubGluZTpufT1lO2lmKHZvaWQgMD09PW4pcmV0dXJuIHZvaWQgcy5wdXNoKGUpO2NvbnN0IHI9bisodHx8IiIpO2lmKGkuaGFzKHIpKWkuZ2V0KHIpPy5wdXNoKGUpO2Vsc2V7Y29uc3QgdD1bZV07aS5zZXQocix0KSxzLnB1c2godCl9fSkpO2NvbnN0IG49W107Zm9yKGxldCBlPTA7ZTxzLmxlbmd0aDtlKyspe2NvbnN0IHQ9c1tlXQo7QXJyYXkuaXNBcnJheSh0KT8yPT09dC5sZW5ndGgmJnRbMF0udHlwZSE9PXRbMV0udHlwZT9uLnB1c2godCk6bi5wdXNoKC4uLnQpOm4ucHVzaCh0KX1yZXR1cm4gbn1mdW5jdGlvbiB5KGUpe3JldHVybiBPYmplY3QudmFsdWVzKGcpLm1hcCgoZT0+ZSkpLmluY2x1ZGVzKGUuaWQpfWZ1bmN0aW9uIGIoZSl7cmV0dXJuISF5KGUpfHxtLmluY2x1ZGVzKGUuaWQpfWZ1bmN0aW9uIHcoZSl7cmV0dXJuKDAsYy5kZWZhdWx0KShlKSYmInQiaW4gZSYmImJvb2wiPT09ZS50JiYidiJpbiBlJiYiYm9vbGVhbiI9PXR5cGVvZiBlLnZ9ZnVuY3Rpb24gQyhlKXtyZXR1cm4ic3RyYXRlZ3lfcHJvcHMiPT09ZS5ncm91cElkfWZ1bmN0aW9uIFAoZSl7cmV0dXJuIWUuZ3JvdXBJZCYmIWUuaXNIaWRkZW4mJmUuaWQhPT1sLkZpcnN0QmFyJiZlLmlkIT09bC5MYXN0QmFyfSFmdW5jdGlvbihlKXtlLkZnQ29sb3I9Il9fY2hhcnRfZmdjb2xvciIsZS5CZ0NvbG9yPSJfX2NoYXJ0X2JnY29sb3IifShnfHwoZz17fSkpfSw3OTE0MjcoZSx0LGkpeyJ1c2Ugc3RyaWN0IjtpLmQodCx7U3R1ZHlNZXRhSW5mbzooKT0+QyxnZXRTdHVkeUlkV2l0aFZlcnNpb246KCk9PnkscmVwbGF5U3RyYXRlZ3lTdHVkeUlkOigpPT5ifSk7dmFyIHM9aSgzMDQyMjEpLG49aSgyMDM2ODEpLHI9aSgxMzg2MzgpLG89aSg2MDE4NDEpLGE9aSgyMjEwNjEpLGw9aSgxNjQxNTYpLGM9aSgyNTA0NjcpLGg9aSg2MjgwNiksZD1pKDQwMzYpLHU9aSgyMjM4NjkpO2NvbnN0IHA9KDAsYS5nZXRMb2dnZXIpKCJDaGFydC5TdHVkeS5NZXRhSW5mbyIpLF89bmV3IFNldChbIkNvcnJlbGF0aW9uQ29lZmZpY2llbnRAdHYtYmFzaWNzdHVkaWVzIiwiQ29ycmVsYXRpb24gLSBMb2dAdHYtYmFzaWNzdHVkaWVzLTEiXSksbT1uZXcgU2V0KFtdKSxnPW5ldyBTZXQoWyJsaW5lIiwic2hhcGVzIiwiY2hhcnMiLCJhcnJvd3MiLCJhbGVydGNvbmRpdGlvbiJdKSxmPW5ldyBNYXAoW1siQW5jaG9yZWRWV0FQQHR2LWJhc2ljc3R1ZGllcyIsImxpbmV0b29sYW5jaG9yZWR2d2FwIl0sWyJSZWdyZXNzaW9uVHJlbmRAdHYtYmFzaWNzdHVkaWVzIiwibGluZXRvb2xyZWdyZXNzaW9udHJlbmQiXSxbIlZiUEFuY2hvcmVkQHR2LWJhc2ljc3R1ZGllcyIsImxpbmV0b29sYW5jaG9yZWR2cCJdXSksUz1bImZvcmVjYXN0cyIsImVzdGltYXRlcyJdLHY9WyJib29sIiwiY29sb3IiLCJ0aW1lIiwidGV4dF9hcmVhIl07ZnVuY3Rpb24geShlKXtyZXR1cm4gQy5jdXREb2xsYXJIYXNoKGUuaWQpKyItIitlLnZlcnNpb259Y29uc3QgYj0iUmVwbGF5U3RyYXRlZ3lAdHYtc2NyaXB0aW5nIix3PVsidXNlVmVyc2lvbkZyb21NZXRhSW5mbyIsIl9mb3JjZU92ZXJsYXlQbG90SWRzIl07Y2xhc3MgQ3tjb25zdHJ1Y3RvcihlLHQ9ITEpe3RoaXMuX2ZvcmNlT3ZlcmxheVBsb3RJZHM9bmV3IFNldCwoMCxvLm1lcmdlKSh0aGlzLHtwYWxldHRlczp7fSxpbnB1dHM6W10scGxvdHM6W10sZ3JhcGhpY3M6e30sZGVmYXVsdHM6e319KSwoMCxvLm1lcmdlKSh0aGlzLGUpO2NvbnN0IGk9ZS5mdWxsSWR8fGUuaWQ7KDAsby5tZXJnZSkodGhpcyxDLnBhcnNlSWRTdHJpbmcoaSkpLHRoaXMuX3VwZGF0ZUlucHV0RGlzcGxheURlZmF1bHRzKCksdGhpcy51c2VWZXJzaW9uRnJvbU1ldGFJbmZvPXQsdGhpcy5wbG90cy5mb3JFYWNoKChlPT57Y29uc3QgdD1lLmlkLGk9dGhpcy5zdHlsZXM/Llt0XTtsZXQgcz0hIWk/LmZvcmNlT3ZlcmxheTshcyYmKDAsYy5pc09obGNQbG90KShlKSYmKHM9dGhpcy5vaGxjUGxvdHM/LltlLnRhcmdldF0/LmZvcmNlT3ZlcmxheT8/ITEscyYmdGhpcy5fZm9yY2VPdmVybGF5UGxvdElkcy5hZGQoZS50YXJnZXQpKSxzJiZ0aGlzLl9mb3JjZU92ZXJsYXlQbG90SWRzLmFkZCh0KX0pKX1kZWZhdWx0SW5wdXRzKCl7cmV0dXJuIHRoaXMuaW5wdXRzLm1hcCgoZT0+ZS5kZWZ2YWwpKS5maWx0ZXIoby5pc0V4aXN0ZW50KX1zdGF0ZSgpe2NvbnN0IGU9e307Zm9yKGNvbnN0W3QsaV1vZiBPYmplY3QuZW50cmllcyh0aGlzKSl3LmluY2x1ZGVzKHQpfHx0aGlzLmhhc093blByb3BlcnR5KHQpJiYoZVt0XT0oMCxuLmRlZmF1bHQpKGkpLCJpZCI9PT10JiYoZVt0XSs9Ii0iK3RoaXMudmVyc2lvbikpO3JldHVybiBlfWlzUGluZSgpe3JldHVybiB2b2lkIDAhPT10aGlzLnBpbmV9aXNTdGFuZGFyZFBpbmUoKXtyZXR1cm4gdGhpcy5pc1BpbmUoKSYmQy5pc1N0YW5kYXJkUGluZSh0aGlzLmlkKX1pc0ZvcmVjYXN0KCl7cmV0dXJuIFMuaW5jbHVkZXModGhpcy5mdW5kYW1lbnRhbENhdGVnb3J5Py50b0xvd2VyQ2FzZSgpPz8iIil9c3ltYm9sSW5wdXRJZCgpe3JldHVybiB0aGlzLmlucHV0cy5maW5kKChlPT4ic3ltYm9sIj09PWUudHlwZSkpPy5pZHx8bnVsbH1pbnB1dEJ5SWQoZSl7cmV0dXJuKDAsci5lbnN1cmVEZWZpbmVkKSh0aGlzLmlucHV0cy5maW5kKCh0PT50LmlkPT09ZSkpKX1pc1Bsb3RGb3JjZU92ZXJsYXkoZSl7cmV0dXJuIHRoaXMuX2ZvcmNlT3ZlcmxheVBsb3RJZHMuaGFzKGUpfWhhc0ZvcmNlT3ZlcmxheVBsb3RzKCl7cmV0dXJuIDAhPT10aGlzLl9mb3JjZU92ZXJsYXlQbG90SWRzLnNpemV9c3RhdGljIGdldFNvdXJjZUlkc0J5SW5wdXRzKGUsdCl7aWYoIUFycmF5LmlzQXJyYXkoZSl8fCF0KXJldHVybltdO2NvbnN0IGk9W107Zm9yKGNvbnN0IG4gb2YgZSlpZihDLmlzU291cmNlSW5wdXQobikmJigwLHMuZGVmYXVsdCkodFtuLmlkXSkpe2NvbnN0IGU9dFtuLmlkXTtlLmluY2x1ZGVzKCIkIikmJmkucHVzaChlLnNwbGl0KCIkIilbMF0pfXJldHVybiBpfXN0YXRpYyBpc1NvdXJjZUlucHV0KGUpe3JldHVybiBCb29sZWFuKGUuaWQmJigoInNvdXJjZSI9PT1lLmlkfHwic3JjIj09PWUuaWQpJiYoInRleHQiPT09ZS50eXBlfHwic291cmNlIj09PWUudHlwZSl8fCJzb3VyY2UiPT09ZS50eXBlKSl9c3RhdGljIGdldFNvdXJjZUlucHV0SWRzKGUpe2NvbnN0IHQ9W107Zm9yKGNvbnN0IGkgb2YgZS5pbnB1dHMpQy5pc1NvdXJjZUlucHV0KGkpJiZ0LnB1c2goaS5pZCk7cmV0dXJuIHR9c3RhdGljIGNhbkJlQ2hpbGQoZSx0KXtpZigoMCxzLmRlZmF1bHQpKGUpKXJldHVybiEwCjtpZighZSlyZXR1cm4hMTtpZihlLmV4dHJhJiYhQy5pc0FsbG93ZWRTb3VyY2VJbnB1dHNDb3VudChlLmV4dHJhLnNvdXJjZUlucHV0c0NvdW50LHQpfHwhMD09PWUuY2FuTm90QmVDaGlsZHx8ITE9PT1lLmNhbkJlQ2hpbGR8fF8uaGFzKGUuaWQpKXJldHVybiExO2xldCBpPTA7Zm9yKGNvbnN0IHQgb2YgZS5pbnB1dHMpQy5pc1NvdXJjZUlucHV0KHQpJiYoaSs9MSk7cmV0dXJuIEMuaXNBbGxvd2VkU291cmNlSW5wdXRzQ291bnQoaSx0KX1zdGF0aWMgaXNBbGxvd2VkU291cmNlSW5wdXRzQ291bnQoZSx0KXtyZXR1cm4gdCYmZT4wfHwxPT09ZX1zdGF0aWMgY2FuSGF2ZUNoaWxkcmVuKGUpe2lmKGUpe2lmKGUuaXNUVlNjcmlwdFN0cmF0ZWd5fHxlLlRWU2NyaXB0U291cmNlQ29kZSYmKDAsdS5pc1N0cmF0ZWd5KShlLlRWU2NyaXB0U291cmNlQ29kZSkpcmV0dXJuITE7aWYoZS5pZCYmIW0uaGFzKGUuaWQpJiZBcnJheS5pc0FycmF5KGUucGxvdHMpKWZvcihjb25zdCB0IG9mIGUucGxvdHMpaWYoZy5oYXModC50eXBlKSlyZXR1cm4hMH1yZXR1cm4hMX1zdGF0aWMgZ2V0Q2hpbGRTb3VyY2VJbnB1dFRpdGxlcyhlLHQsaSl7Y29uc3Qgcz17fTtpZih0LnBsb3RzJiZ0LnBsb3RzLmxlbmd0aCYmZS5vcHRpb25zJiZlLm9wdGlvbnMubGVuZ3RoKWZvcihjb25zdCBuIG9mIGUub3B0aW9ucyl7Y29uc3QgZT1uPytuLnNwbGl0KCIkIilbMV06TmFOLHI9aXNGaW5pdGUoZSkmJnQucGxvdHNbZV07ciYmZy5oYXMoci50eXBlKSYmKHNbbl09dC5zdHlsZXMmJnQuc3R5bGVzW3IuaWRdJiZ0LnN0eWxlc1tyLmlkXT8udGl0bGV8fHIuaWQsaSYmKHNbbl09aSsiOuKAiSIrc1tuXSkpfXJldHVybiBzfXN0YXRpYyBjYW5QbG90QmVTb3VyY2VPZkNoaWxkU3R1ZHkoZSl7cmV0dXJuIGcuaGFzKGUpfXN0YXRpYyBnZXRTdHVkeVByb3BlcnR5Um9vdE5hbWUoZSl7Y29uc3QgdD1mLmdldChlLmlkKTtpZih2b2lkIDAhPT10KXJldHVybiB0O2xldCBpPSJzdHVkeV8iK2UuaWQ7cmV0dXJuIGUucGluZSYmZS5waW5lLnZlcnNpb24mJihpKz0iXyIrZS5waW5lLnZlcnNpb24ucmVwbGFjZSgiLiIsIl8iKSksaX1zdGF0aWMgZ2V0U3R1ZHlQcm9wZXJ0eVJvb3ROYW1lQnlJZChlKXtjb25zdCB0PWYuZ2V0KGUpO3JldHVybiB2b2lkIDAhPT10P3Q6InN0dWR5XyIrZX1zdGF0aWMgaXNTY3JpcHRTdHJhdGVneShlKXtpZihlLmV4dHJhJiZlLmV4dHJhLmtpbmQpcmV0dXJuIGUuZXh0cmEua2luZD09PWwuUGluZUtpbmQuU3RyYXRlZ3k7aWYoITA9PT1lLmlzVFZTY3JpcHRTdHJhdGVneSlyZXR1cm4hMDtjb25zdCB0PWUuVFZTY3JpcHRTb3VyY2VDb2RlfHxlLnNjcmlwdFNvdXJjZTtyZXR1cm4hIXQmJigwLHUuaXNTdHJhdGVneSkodCl9c3RhdGljIGlzUmVwbGF5U3RyYXRlZ3koZSl7cmV0dXJuIGUuaWQ9PT1ifXN0YXRpYyBwYXJzZUlkU3RyaW5nKGUpe3JldHVybigwLGQucGFyc2VJZFN0cmluZykoZSl9c3RhdGljIHZlcnNpb25PZihlKXtjb25zdCB0PSJfbWV0YWluZm9WZXJzaW9uImluIGUmJigwLG8uaXNOdW1iZXIpKGUuX21ldGFpbmZvVmVyc2lvbik/ZS5fbWV0YWluZm9WZXJzaW9uOjA7cmV0dXJuIHQ8MCYmcC5sb2dFcnJvcigiTWV0YWluZm8gZm9ybWF0IHZlcnNpb24gY2Fubm90IGJlIG5lZ2F0aXZlOiAiK3QpLHR9c3RhdGljIGdldFBhY2thZ2VOYW1lKGUpe2NvbnN0IHQ9L15bXkBdK0AoW14tXSstW14tXSspLy5leGVjKGV8fCIiKSxbLGk9InR2LWJhc2ljc3R1ZGllcyJdPXR8fFtdO3JldHVybiBpfXN0YXRpYyBjdXRCZWZvcmVEb2xsYXIoZSl7Y29uc3QgdD1lLmluZGV4T2YoIiQiKTtyZXR1cm4tMT09PXQ/ZTplLnN1YnN0cmluZyh0KzEpfXN0YXRpYyBjdXREb2xsYXJIYXNoKGUpe2NvbnN0IHQ9ZS5pbmRleE9mKCIkIik7aWYoLTE9PT10KXJldHVybiBlO2NvbnN0IGk9ZS5pbmRleE9mKCJAIikscz1pPj0wP2Uuc3Vic3RyaW5nKGkpOiIiO3JldHVybiBlLnN1YnN0cmluZygwLHQpK3N9c3RhdGljIGhhc1B1YlN1ZmZpeChlKXtyZXR1cm4vXlBVQjsuKyQvLnRlc3QoZSl9c3RhdGljIGhhc1N0ZFN1ZmZpeChlKXtyZXR1cm4vXlNURDsuKyQvLnRlc3QoZSl9c3RhdGljIGlzU3RhbmRhcmRQaW5lKGUpe3JldHVybi9eKFN0cmF0ZWd5KT9TY3JpcHRcJFNURDsuKkB0di1zY3JpcHRpbmckLy50ZXN0KGUpfXN0YXRpYyBnZXRTdHVkeUlkV2l0aExhdGVzdFZlcnNpb24oZSx0KXtjb25zdCBpPUMuY3V0RG9sbGFySGFzaChlLmlkKTtsZXQgcz1pO3JldHVybiBpLmluZGV4T2YoIlBvcnRmb2xpb0B0di1zY3JpcHRpbmciKT49MD9zKz10PyIhIjoiIjoiUmVwbGF5U3RyYXRlZ3lAdHYtc2NyaXB0aW5nIj09PXM/cys9Ii01ODEhIjppLmluZGV4T2YoIkB0di1zY3JpcHRpbmciKT49MD9zKz0iLTEwMSEiOmkuZW5kc1dpdGgoIkNQQHR2LWJhc2ljc3R1ZGllcyIpP3MrPSItIitNYXRoLm1pbihlLnZlcnNpb24sMjA3KTppLmVuZHNXaXRoKCJDUEB0di1jaGFydHBhdHRlcm5zIik/cys9Ii0iK01hdGgubWluKGUudmVyc2lvbiw5KTppLmVuZHNXaXRoKCJAdHYtdm9sdW1lYnlwcmljZSIpfHx0P3MrPSItIitlLnZlcnNpb24rIiEiOnMrPSItIitlLnZlcnNpb24sc31zdGF0aWMgc2F2ZWRTdHVkaWVzT3ZlcnJpZGVzKCl7cmV0dXJuIHRoaXMuX3NhdmVkU3R1ZGllc092ZXJyaWRlc31zdGF0aWMgbWVyZ2VEZWZhdWx0c092ZXJyaWRlcyhlKXsoMCxvLm1lcmdlKSh0aGlzLl9zYXZlZFN0dWRpZXNPdmVycmlkZXMsZSl9c3RhdGljIGZpbmRTdHVkeU1ldGFJbmZvQnlEZXNjcmlwdGlvbihlLHQpe2lmKGUpe2NvbnN0IGk9dC50b0xvd2VyQ2FzZSgpO2Zvcihjb25zdCB0IG9mIGUpaWYodC5kZXNjcmlwdGlvbi50b0xvd2VyQ2FzZSgpPT09aSlyZXR1cm4gdDt0aHJvdyBuZXcgRXJyb3IoInVuZXhwZWN0ZWQgc3R1ZHkgaWQ6Iit0KX10aHJvdyBuZXcgRXJyb3IoIlRoZXJlIGlzIG5vIHN0dWRpZXMgbWV0YWluZm8iKX1fdXBkYXRlSW5wdXREaXNwbGF5RGVmYXVsdHMoKXt0aGlzLmlucHV0cy5maWx0ZXIoKGU9PnZvaWQgMD09PWUuZGlzcGxheSkpLmZvckVhY2goKGU9PnsKdi5pbmNsdWRlcyhlLnR5cGUpP2UuZGlzcGxheT1oLklucHV0RGlzcGxheUZsYWdzLk5vbmU6ZS5kaXNwbGF5PWguSW5wdXREaXNwbGF5RmxhZ3MuQWxsfSkpfX1DLl9zYXZlZFN0dWRpZXNPdmVycmlkZXM9e319LDI1MDQ2NyhlLHQsaSl7InVzZSBzdHJpY3QiO2kuZCh0LHtJbnRlcm5hbFN0dWR5UGxvdFR5cGU6KCk9PnIsTGluZVN0dWR5UGxvdFN0eWxlOigpPT5zLE9obGNTdHVkeVBsb3RTdHlsZTooKT0+YSxQbG90U3ltYm9sU2l6ZTooKT0+bC5QbG90U3ltYm9sU2l6ZSxTdHVkeVBsb3REaXNwbGF5VGFyZ2V0OigpPT5vLFN0dWR5UGxvdFR5cGU6KCk9Pm4sZG9lc0xpbmVQbG90U3R5bGVTdXBwb3J0RmlsbEJyZWFrczooKT0+Vyxkb2VzTGluZVBsb3RTdHlsZVN1cHBvcnRMaW5lU3R5bGU6KCk9Pk8saXNBbGVydENvbmRpdGlvblBsb3Q6KCk9PmssaXNBcnJvd3NQbG90OigpPT51LGlzQmFyQ29sb3JlclBsb3Q6KCk9PkMsaXNCZ0NvbG9yZXJQbG90OigpPT5QLGlzQ2FuZGxlQm9yZGVyQ29sb3JlclBsb3Q6KCk9PkksaXNDYW5kbGVXaWNrQ29sb3JlclBsb3Q6KCk9Pk0saXNDaGFyc1Bsb3Q6KCk9PmQsaXNDb2xvcmVyUGxvdDooKT0+dyxpc0RhdGFPZmZzZXRQbG90OigpPT5fLGlzRGF0YVBsb3Q6KCk9PnAsaXNEb3duQ29sb3JlclBsb3Q6KCk9PkEsaXNMaW5lUGxvdDooKT0+Yyxpc05vblZpc3VhbFBsb3Q6KCk9Pk4saXNPaGxjQ2xvc2VQbG90OigpPT5TLGlzT2hsY0NvbG9yZXJQbG90OigpPT54LGlzT2hsY0hpZ2hQbG90OigpPT5nLGlzT2hsY0xvd1Bsb3Q6KCk9PmYsaXNPaGxjT3BlblBsb3Q6KCk9Pm0saXNPaGxjUGxvdDooKT0+dixpc09obGNQbG90U3R5bGVCYXJzOigpPT5SLGlzT2hsY1Bsb3RTdHlsZUNhbmRsZXM6KCk9PlYsaXNQYWxldHRlQ29sb3JlclBsb3Q6KCk9PnksaXNQbG90U3VwcG9ydERpc3BsYXk6KCk9PkQsaXNQbG90VGl0bGVEZWZpbmVkOigpPT5FLGlzUGxvdFdpdGhUZWNobmljYWxWYWx1ZXM6KCk9PkIsaXNSZ2JhQ29sb3JlclBsb3Q6KCk9PmIsaXNTaGFwZXNQbG90OigpPT5oLGlzVGV4dENvbG9yZXJQbG90OigpPT5ULGlzVXBDb2xvcmVyUGxvdDooKT0+TH0pO3ZhciBzLG4scixvLGEsbD1pKDU4OTUxMSk7ZnVuY3Rpb24gYyhlKXtyZXR1cm4ibGluZSI9PT1lLnR5cGV9ZnVuY3Rpb24gaChlKXtyZXR1cm4ic2hhcGVzIj09PWUudHlwZX1mdW5jdGlvbiBkKGUpe3JldHVybiJjaGFycyI9PT1lLnR5cGV9ZnVuY3Rpb24gdShlKXtyZXR1cm4iYXJyb3dzIj09PWUudHlwZX1mdW5jdGlvbiBwKGUpe3JldHVybiJkYXRhIj09PWUudHlwZX1mdW5jdGlvbiBfKGUpe3JldHVybiJkYXRhb2Zmc2V0Ij09PWUudHlwZX1mdW5jdGlvbiBtKGUpe3JldHVybiJvaGxjX29wZW4iPT09ZS50eXBlfWZ1bmN0aW9uIGcoZSl7cmV0dXJuIm9obGNfaGlnaCI9PT1lLnR5cGV9ZnVuY3Rpb24gZihlKXtyZXR1cm4ib2hsY19sb3ciPT09ZS50eXBlfWZ1bmN0aW9uIFMoZSl7cmV0dXJuIm9obGNfY2xvc2UiPT09ZS50eXBlfWZ1bmN0aW9uIHYoZSl7cmV0dXJuIG0oZSl8fGcoZSl8fGYoZSl8fFMoZSl9ZnVuY3Rpb24geShlKXtyZXR1cm4iY29sb3JlciI9PT1lLnR5cGUmJiJwYWxldHRlImluIGV9ZnVuY3Rpb24gYihlKXtyZXR1cm4iY29sb3JlciI9PT1lLnR5cGUmJiEoInBhbGV0dGUiaW4gZSl9ZnVuY3Rpb24gdyhlKXtyZXR1cm4iY29sb3JlciI9PT1lLnR5cGV9ZnVuY3Rpb24gQyhlKXtyZXR1cm4iYmFyX2NvbG9yZXIiPT09ZS50eXBlfWZ1bmN0aW9uIFAoZSl7cmV0dXJuImJnX2NvbG9yZXIiPT09ZS50eXBlfWZ1bmN0aW9uIFQoZSl7cmV0dXJuInRleHRfY29sb3JlciI9PT1lLnR5cGV9ZnVuY3Rpb24geChlKXtyZXR1cm4ib2hsY19jb2xvcmVyIj09PWUudHlwZX1mdW5jdGlvbiBNKGUpe3JldHVybiJ3aWNrX2NvbG9yZXIiPT09ZS50eXBlfWZ1bmN0aW9uIEkoZSl7cmV0dXJuImJvcmRlcl9jb2xvcmVyIj09PWUudHlwZX1mdW5jdGlvbiBMKGUpe3JldHVybiJ1cF9jb2xvcmVyIj09PWUudHlwZX1mdW5jdGlvbiBBKGUpe3JldHVybiJkb3duX2NvbG9yZXIiPT09ZS50eXBlfWZ1bmN0aW9uIGsoZSl7cmV0dXJuIGUudHlwZT09PXIuQWxlcnRDb25kaXRpb259ZnVuY3Rpb24gRChlKXtyZXR1cm4gYyhlKXx8aChlKXx8ZChlKXx8dShlKX1mdW5jdGlvbiBFKGUpe3JldHVybiJQbG90IiE9PWV9ZnVuY3Rpb24gUihlKXtyZXR1cm4gZS5wbG90dHlwZT09PWEuT2hsY0JhcnN9ZnVuY3Rpb24gVihlKXtyZXR1cm4gZS5wbG90dHlwZT09PWEuT2hsY0NhbmRsZXN9ZnVuY3Rpb24gQihlKXtyZXR1cm4gdyhlKXx8QyhlKXx8UChlKXx8cChlKXx8XyhlKXx8eChlKXx8ayhlKXx8TChlKXx8QShlKXx8SShlKXx8TShlKXx8VChlKX1mdW5jdGlvbiBOKGUpe3JldHVybiB3KGUpfHxUKGUpfHxDKGUpfHxwKGUpfHxfKGUpfHx4KGUpfHxNKGUpfHxJKGUpfHxMKGUpfHxBKGUpfHxrKGUpfWZ1bmN0aW9uIE8oZSl7cmV0dXJuW3MuTGluZSxzLkxpbmVXaXRoQnJlYWtzLHMuU3RlcExpbmUscy5TdGVwTGluZVdpdGhCcmVha3Mscy5TdGVwTGluZVdpdGhEaWFtb25kcyxzLkFyZWEscy5BcmVhV2l0aEJyZWFrc10uaW5jbHVkZXMoZSl9ZnVuY3Rpb24gVyhlKXtyZXR1cm5bcy5MaW5lLHMuQXJlYSxzLlN0ZXBMaW5lLHMuU3RlcExpbmVXaXRoRGlhbW9uZHNdLmluY2x1ZGVzKGUpfSFmdW5jdGlvbihlKXtlW2UuTGluZT0wXT0iTGluZSIsZVtlLkhpc3RvZ3JhbT0xXT0iSGlzdG9ncmFtIixlW2UuQ3Jvc3M9M109IkNyb3NzIixlW2UuQXJlYT00XT0iQXJlYSIsZVtlLkNvbHVtbnM9NV09IkNvbHVtbnMiLGVbZS5DaXJjbGVzPTZdPSJDaXJjbGVzIixlW2UuTGluZVdpdGhCcmVha3M9N109IkxpbmVXaXRoQnJlYWtzIixlW2UuQXJlYVdpdGhCcmVha3M9OF09IkFyZWFXaXRoQnJlYWtzIixlW2UuU3RlcExpbmU9OV09IlN0ZXBMaW5lIixlW2UuU3RlcExpbmVXaXRoRGlhbW9uZHM9MTBdPSJTdGVwTGluZVdpdGhEaWFtb25kcyIsZVtlLlN0ZXBMaW5lV2l0aEJyZWFrcz0xMV09IlN0ZXBMaW5lV2l0aEJyZWFrcyJ9KHN8fChzPXt9KSksZnVuY3Rpb24oZSl7ZS5MaW5lPSJsaW5lIixlLkNvbG9yZXI9ImNvbG9yZXIiLAplLkJhckNvbG9yZXI9ImJhcl9jb2xvcmVyIixlLkJnQ29sb3Jlcj0iYmdfY29sb3JlciIsZS5UZXh0Q29sb3Jlcj0idGV4dF9jb2xvcmVyIixlLk9obGNDb2xvcmVyPSJvaGxjX2NvbG9yZXIiLGUuQ2FuZGxlV2lja0NvbG9yZXI9IndpY2tfY29sb3JlciIsZS5DYW5kbGVCb3JkZXJDb2xvcmVyPSJib3JkZXJfY29sb3JlciIsZS5VcENvbG9yZXI9InVwX2NvbG9yZXIiLGUuRG93bkNvbG9yZXI9ImRvd25fY29sb3JlciIsZS5TaGFwZXM9InNoYXBlcyIsZS5DaGFycz0iY2hhcnMiLGUuQXJyb3dzPSJhcnJvd3MiLGUuRGF0YT0iZGF0YSIsZS5EYXRhT2Zmc2V0PSJkYXRhb2Zmc2V0IixlLk9obGNPcGVuPSJvaGxjX29wZW4iLGUuT2hsY0hpZ2g9Im9obGNfaGlnaCIsZS5PaGxjTG93PSJvaGxjX2xvdyIsZS5PaGxjQ2xvc2U9Im9obGNfY2xvc2UifShufHwobj17fSkpLGZ1bmN0aW9uKGUpe2UuQWxlcnRDb25kaXRpb249ImFsZXJ0Y29uZGl0aW9uIn0ocnx8KHI9e30pKSxmdW5jdGlvbihlKXtlW2UuTm9uZT0wXT0iTm9uZSIsZVtlLlBhbmU9MV09IlBhbmUiLGVbZS5EYXRhV2luZG93PTJdPSJEYXRhV2luZG93IixlW2UuUHJpY2VTY2FsZT00XT0iUHJpY2VTY2FsZSIsZVtlLlN0YXR1c0xpbmU9OF09IlN0YXR1c0xpbmUiLGVbZS5QaW5lU2NyZWVuZXI9MTZdPSJQaW5lU2NyZWVuZXIiLGVbZS5BbGw9NDI5NDk2NzI5NV09IkFsbCJ9KG98fChvPXt9KSksZnVuY3Rpb24oZSl7ZS5PaGxjQmFycz0ib2hsY19iYXJzIixlLk9obGNDYW5kbGVzPSJvaGxjX2NhbmRsZXMifShhfHwoYT17fSkpfSwyMDI2MzcoZSx0LGkpeyJ1c2Ugc3RyaWN0IjtpLmQodCx7c3R1ZHlBdmFpbGFibGVQcmljZVNvdXJjZXM6KCk9PnN9KTtjb25zdCBzPVsib3BlbiIsImhpZ2giLCJsb3ciLCJjbG9zZSIsImhsMiIsImhsYzMiLCJvaGxjNCIsImhsY2M0Il19LDE0MjM4OShlLHQsaSl7InVzZSBzdHJpY3QiO3ZhciBzO2kuZCh0LHtTdHVkeVN0YXR1c1R5cGU6KCk9PnN9KSxmdW5jdGlvbihlKXtlW2UuVW5kZWZpbmVkPTBdPSJVbmRlZmluZWQiLGVbZS5Mb2FkaW5nPTFdPSJMb2FkaW5nIixlW2UuQ29tcGxldGVkPTJdPSJDb21wbGV0ZWQiLGVbZS5FcnJvcj0zXT0iRXJyb3IifShzfHwocz17fSkpfSwxNzQzNDIoZSx0LGkpeyJ1c2Ugc3RyaWN0Ijt2YXIgcyxuLHI7aS5kKHQse1ZvbHVtZUZvb3RwcmludFN1bW1hcnlNb2RlOigpPT5zLFZvbHVtZUZvb3RwcmludFR5cGVWYWx1ZXM6KCk9Pm59KSxmdW5jdGlvbihlKXtlW2UuSW5mb0JveD0wXT0iSW5mb0JveCIsZVtlLlRhYmxlPTFdPSJUYWJsZSJ9KHN8fChzPXt9KSksZnVuY3Rpb24oZSl7ZS5CdXlBbmRTZWxsPSJCdXkgYW5kIHNlbGwiLGUuRGVsdGE9IkRlbHRhIixlLlRvdGFsPSJUb3RhbCIsZS5MYWRkZXI9IkxhZGRlciJ9KG58fChuPXt9KSksZnVuY3Rpb24oZSl7ZVtlLkNsdXN0ZXI9MF09IkNsdXN0ZXIiLGVbZS5Qcm9maWxlPTFdPSJQcm9maWxlIn0ocnx8KHI9e30pKX0sMzQ0Nzg1KGUsdCxpKXsidXNlIHN0cmljdCI7aS5yKHQpLGkuZCh0LHtoaWRlOigpPT5iLHNob3c6KCk9Pl8sc2hvd09uRWxlbWVudDooKT0+cCx0ZW1wRm9yY2VIaWRlOigpPT55LHRvb2x0aXBDbGlja0hhbmRsZXI6KCk9PmYsdXBkYXRlVG9vbHRpcFRleHQ6KCk9Pm19KTt2YXIgcz1pKDM2MzI2OSksbj1pKDEzODYzOCkscj1pKDcyNzA5KSxvPWkoNjU4OTk1KSxhPWkoMTY3ODk2KSxsPWkoNDkwMzc4KTtsZXQgYz0hMSxoPW51bGwsZD1udWxsO3MubW9iaWxldG91Y2h8fChkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZW92ZXIiLGcsITApLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIiwoZnVuY3Rpb24oZSl7Y29uc3QgdD1lLnRhcmdldDtpZighKHQgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCYmdC5jbG9zZXN0KCdbZGF0YS10b29sdGlwLXNob3ctb24tZm9jdXM9InRydWUiXScpJiZ0Lm1hdGNoZXMoIjpmb2N1cy12aXNpYmxlIikpKXJldHVybjtnKGUsITApfSkse2NhcHR1cmU6ITB9KSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJhY3RpdmUtZGVzY2VuZGFudC1mb2N1cyIsKGZ1bmN0aW9uKGUpe2UudGFyZ2V0IGluc3RhbmNlb2YgSFRNTEVsZW1lbnQmJmcoZSwhMCl9KSx7Y2FwdHVyZTohMH0pKTtjb25zdCB1PW5ldyBNdXRhdGlvbk9ic2VydmVyKCgoKT0+e2lmKGgmJmgub3B0aW9ucy50YXJnZXQpe2xldCBlO2U9ImlzQ29ubmVjdGVkImluIGgub3B0aW9ucy50YXJnZXQ/aC5vcHRpb25zLnRhcmdldC5pc0Nvbm5lY3RlZDpkb2N1bWVudC5ib2R5LmNvbnRhaW5zKGgub3B0aW9ucy50YXJnZXQpLGV8fGIoKX19KSkscD0oZSx0PXt9KT0+e2NvbnN0e2NvbnRlbnQ6aSwuLi5zfT1QKHQpLG49bC5nZXREYXRhRnJvbVRhcmdldChlKSxyPU9iamVjdC5hc3NpZ24obixzKTtyZXR1cm4ibm9uZSIhPT1pLnR5cGUmJihyLmNvbnRlbnQ9aSksISgibm9uZSI9PT1yLmNvbnRlbnQudHlwZSYmIXIuaG90a2V5KSYmKHIudGFyZ2V0PWUsXyhyKSwhMCl9LF89ZT0+e2NvbnN0IHQ9UChlKSxpPWwuZ2V0VG9vbHRpcCh0KTtpZihoPXtvcHRpb25zOnQsZWxlbWVudDppfSwoMCxhLnNldFRvb2x0aXApKGkpLCgwLG8uY2xlYXJTY2hlZHVsZSkoKSwhYylyZXR1cm4gbC5oaWRlVG9vbHRpcChpKSx2b2lkKDAsby5zY2hlZHVsZVJlbmRlcikoKCgpPT53KGkpKSxmdW5jdGlvbihlKXtyZXR1cm4ibnVtYmVyIiE9dHlwZW9mIGUudG9vbHRpcERlbGF5fHxpc05hTihlLnRvb2x0aXBEZWxheSk/NTAwOmUudG9vbHRpcERlbGF5fSh0KSk7Y29uc3R7dG9vbHRpcERlYm91bmNlOnN9PWU7Im51bWJlciIhPXR5cGVvZiBzfHxpc05hTihzKT93KGkpOigwLG8uc2NoZWR1bGVSZW5kZXIpKCgoKT0+dyhpKSkscyl9LG09ZT0+bC51cGRhdGVUb29sdGlwVGV4dEZyb21UYXJnZXQoZSk7ZnVuY3Rpb24gZyhlLHQpe2lmKCJzb3VyY2VDYXBhYmlsaXRpZXMiaW4gZSYmZS5zb3VyY2VDYXBhYmlsaXRpZXM/LmZpcmVzVG91Y2hFdmVudHMpcmV0dXJuO2NvbnN0IGk9ZnVuY3Rpb24oZSx0LGkpe2NvbnN0IHM9W107Zm9yKDtlJiZlIT09dDspZS5jbGFzc0xpc3QmJmUuY2xhc3NMaXN0LmNvbnRhaW5zKGkpJiZzLnB1c2goZSksCmU9ZS5wYXJlbnRFbGVtZW50fHxDKGUucGFyZW50Tm9kZSk7cmV0dXJuIHN9KGUudGFyZ2V0LGUuY3VycmVudFRhcmdldCwiYXBwbHktY29tbW9uLXRvb2x0aXAiKTtmb3IoY29uc3QgcyBvZiBpKXtpZihlIGluc3RhbmNlb2YgTW91c2VFdmVudClpZigiYnV0dG9ucyJpbiBlKXtpZigxJmUuYnV0dG9ucyljb250aW51ZX1lbHNlIGlmKDE9PT1lLndoaWNoKWNvbnRpbnVlO2NvbnN0IGk9KCk9PnAocyk7aWYoaSgpKXtjb25zdCBlPWU9Pm4obnVsbCwhMCksbj0ocixvPSExKT0+e3MucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY29tbW9uLXRvb2x0aXAtdXBkYXRlIixpKSxzLnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlbGVhdmUiLG4pLHMucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2Vkb3duIixuKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJzY3JvbGwiLGUse2NhcHR1cmU6ITB9KSx0JiYocy5yZW1vdmVFdmVudExpc3RlbmVyKCJibHVyIixuKSxzLnJlbW92ZUV2ZW50TGlzdGVuZXIoImFjdGl2ZS1kZXNjZW5kYW50LWJsdXIiLG4pKSxkJiYoZC5kZXN0cm95KCksZD1udWxsKSxiKG8pfTtzLmFkZEV2ZW50TGlzdGVuZXIoImNvbW1vbi10b29sdGlwLXVwZGF0ZSIsaSkscy5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWxlYXZlIixuKSxzLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsbiksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigic2Nyb2xsIixlLHtjYXB0dXJlOiEwfSksdCYmKHMuYWRkRXZlbnRMaXN0ZW5lcigiYmx1ciIsbikscy5hZGRFdmVudExpc3RlbmVyKCJhY3RpdmUtZGVzY2VuZGFudC1ibHVyIixuKSksbnVsbD09PWQmJihkPSgwLHIuY3JlYXRlR3JvdXApKHtkZXNjOiJUb29sdGlwIn0pLGQuYWRkKHtkZXNjOiJIaWRlIixob3RrZXk6MjcsaGFuZGxlcjpufSkpO2JyZWFrfX19ZnVuY3Rpb24gZihlKXtzLm1vYmlsZXRvdWNoJiYocChlLmN1cnJlbnRUYXJnZXQse3Rvb2x0aXBEZWxheTowfSksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigic2Nyb2xsIixTKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaHN0YXJ0IixTKSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigib3JpZW50YXRpb25jaGFuZ2UiLFMpLHdpbmRvdy5zY3JlZW4ub3JpZW50YXRpb24/LmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsUykpfWZ1bmN0aW9uIFMoKXtkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJzY3JvbGwiLFMpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInRvdWNoc3RhcnQiLFMpLHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJvcmllbnRhdGlvbmNoYW5nZSIsUyksd2luZG93LnNjcmVlbi5vcmllbnRhdGlvbj8ucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY2hhbmdlIixTKSxiKCl9ZnVuY3Rpb24gdigpeygwLGEuZW1wdHkpKCksYz0hMSxoPW51bGx9Y29uc3QgeT0oKT0+e2lmKCgwLG8uY2xlYXJTY2hlZHVsZSkoKSwoMCxuLmVuc3VyZU5vdE51bGwpKHUpLmRpc2Nvbm5lY3QoKSwhaHx8IWMpcmV0dXJuO2NvbnN0e2VsZW1lbnQ6ZX09aDtsLmhpZGVUb29sdGlwKGUpLHYoKX0sYj0oZSx0KT0+e2lmKCgwLG8uY2xlYXJTY2hlZHVsZSkoKSwoMCxuLmVuc3VyZU5vdE51bGwpKHUpLmRpc2Nvbm5lY3QoKSwhaClyZXR1cm47aWYoIWUmJiFjKXJldHVybjtjb25zdHtlbGVtZW50Omksb3B0aW9uczpzfT1oLHI9KCk9PntpLnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlbGVhdmUiLHIpLGwuaGlkZVRvb2x0aXAoaSksZT92KCk6KDAsby5zY2hlZHVsZVJlbW92ZSkoKCgpPT57digpfSksMjUwKSx0Py4oKX07cy50b29sdGlwSGlkZURlbGF5PygwLG8uc2NoZWR1bGVIaWRlKSgoKCk9PntpLnF1ZXJ5U2VsZWN0b3IoIjpob3ZlciIpP2kuYWRkRXZlbnRMaXN0ZW5lcigibW91c2VsZWF2ZSIscik6cigpfSkscy50b29sdGlwSGlkZURlbGF5KTpyKCl9O2Z1bmN0aW9uIHcoZSl7Y29uc3R7b3B0aW9uczp0fT0oMCxuLmVuc3VyZU5vdE51bGwpKGgpO2lmKGwuc2V0U3R5bGUoZSx0KSxsLnNob3dUb29sdGlwKGUpLCgwLG4uZW5zdXJlTm90TnVsbCkodSkub2JzZXJ2ZShkb2N1bWVudCx7Y2hpbGRMaXN0OiEwLHN1YnRyZWU6ITB9KSxjPSEwLHQuZm9yY2VIaWRlT25Nb3ZlKXtjb25zdCBlPSgpPT57ZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIixlKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJ0b3VjaG1vdmUiLGUpLGIoKX07ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIixlKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaG1vdmUiLGUpfX1mdW5jdGlvbiBDKGUpe3JldHVybiBlJiYoZS5ub2RlVHlwZT09PU5vZGUuRUxFTUVOVF9OT0RFP2U6bnVsbCl9ZnVuY3Rpb24gUChlKXtpZihmdW5jdGlvbihlKXtyZXR1cm4iY29udGVudCJpbiBlfShlKSlyZXR1cm4gZTtjb25zdHtpbm5lcjp0LGh0bWw6aSx0ZXh0OnMsLi4ubn09ZTtsZXQgcj17dHlwZToibm9uZSJ9O3JldHVybiB0JiYocj17dHlwZToiZWxlbWVudCIsZGF0YTp0fSkscyYmKHI9e3R5cGU6aT8iaHRtbCI6InRleHQiLGRhdGE6c30pLHtjb250ZW50OnIsLi4ubn19fSw0MDE1MjMoZSx0LGkpeyJ1c2Ugc3RyaWN0IjtpLmQodCx7Q0hBUlRfV0FSTklOSUdfR1JPVVBfSUQ6KCk9Pm8sc2hvd0NoYXJ0V2FybmluZ05vdGlmaWNhdGlvbjooKT0+YX0pO3ZhciBzPWkoNjU3NTczKSxuPWkoNjUyMTE0KSxyPWkoNjEzMDQzKTtjb25zdCBvPSJjaGFydF93YXJuaW5nIjtmdW5jdGlvbiBhKGUsdCl7cmV0dXJuIG5ldyBQcm9taXNlKChpPT57bi50b2FzdE1hbmFnZXIuYWRkVG9hc3QoZSxvLHQpLCgwLHIuc2V0VG9hc3RVc2VyQWN0aXZpdHlCYXNlZFJlbW92YWxUaW1lb3V0KShlLDFlNCk7Y29uc3QgYT0oMCxzLnN1YnNjcmliZU9uVG9hc3QpKGUsKGU9PnsiUmVtb3ZlIiE9PWUudHlwZSYmZS5kZXRhaWxzIT09ci5DTE9TRV9EVUVfVE9fSU5BQ1RJVklUWV9FVkVOVF9ERVRBSUxTfHwoaSgpLGEoKSl9KSl9KSl9fSw2NTc1NzMoZSx0LGkpeyJ1c2Ugc3RyaWN0IjtpLmQodCx7c3Vic2NyaWJlT25Ub2FzdDooKT0+c30pCjtjb25zdCBzPWkoNjUyMTE0KS50b2FzdE1hbmFnZXIuc3Vic2NyaWJlT25Ub2FzdH0sNjEzMDQzKGUsdCxpKXsidXNlIHN0cmljdCI7aS5kKHQse0NMT1NFX0RVRV9UT19JTkFDVElWSVRZX0VWRU5UX0RFVEFJTFM6KCk9PmEsc2V0VG9hc3RVc2VyQWN0aXZpdHlCYXNlZFJlbW92YWxUaW1lb3V0OigpPT5sfSk7dmFyIHM9aSg2NTIxMTQpLG49aSgyMzIzNjQpO2Z1bmN0aW9uIHIoZSx0KXtjb25zdCBpPW5ldyBTZXQscz1uZXcgbi5XYXRjaGVkVmFsdWUoImhpZGRlbiIhPT1kb2N1bWVudC52aXNpYmlsaXR5U3RhdGUpLHI9dD8udGltZXJzfHx7c2V0VGltZW91dCxjbGVhclRpbWVvdXR9LG89ci5zZXRUaW1lb3V0LGE9ci5jbGVhclRpbWVvdXQ7bGV0IGw7Y29uc3QgYz10Py5pZ25vcmVWaXNpYmlsaXR5Q2hhbmdlO3Muc3Vic2NyaWJlKChlPT57aS5mb3JFYWNoKCh0PT50KCEhZSkpKX0pLHtjYWxsV2l0aExhc3Q6ITB9KTtjb25zdCBoPSgpPT57cy5zZXRWYWx1ZSghMCksYShsKSxsPW8oKCgpPT57cy5zZXRWYWx1ZSghMSl9KSxlKX0sZD0oKT0+eyJoaWRkZW4iPT09ZG9jdW1lbnQudmlzaWJpbGl0eVN0YXRlP3Muc2V0VmFsdWUoITEpOmgoKX07cmV0dXJue3N1YnNjcmliZTp0PT57aS5zaXplPjB8fChhKGwpLGw9bygoKCk9PntzLnNldFZhbHVlKCExKX0pLGUpLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixoLHtwYXNzaXZlOiEwfSksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIixoLHtwYXNzaXZlOiEwfSksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsaCx7cGFzc2l2ZTohMH0pLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoc3RhcnQiLGgse3Bhc3NpdmU6ITB9KSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJ3aGVlbCIsaCx7cGFzc2l2ZTohMH0pLGN8fGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoInZpc2liaWxpdHljaGFuZ2UiLGQse3Bhc3NpdmU6ITB9KSksaS5hZGQodCl9LHVuc3Vic2NyaWJlOmU9PntpLmRlbGV0ZShlKSwwPT09aS5zaXplJiYoZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY2xpY2siLGgpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIsaCksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsaCksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigidG91Y2hzdGFydCIsaCksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigid2hlZWwiLGgpLGN8fGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInZpc2liaWxpdHljaGFuZ2UiLGQpLGEobCkpfSx2YWx1ZTooKT0+ISFzLnZhbHVlKCl9fXZhciBvPWkoMTIxMzEpO2NvbnN0IGE9InVzZXJBY3Rpdml0eVRpbWVvdXQiLGw9ZnVuY3Rpb24oZSx0LGkscyl7Y29uc3Qgbj1yKGkpO3JldHVybiBmdW5jdGlvbihpLHI9MmU0KXtjb25zdHtzdGFydDphLHJlc2V0Omx9PSgwLG8uY3JlYXRlVGltZXIpKCgoKT0+e2UucmVtb3ZlVG9hc3QoaSxzKX0pLHIpLGM9KCk9Pntjb25zdCBlPW4udmFsdWUoKSxpPXQudmFsdWU7ZSYmIWk/YSgpOmwoKX07bi5zdWJzY3JpYmUoYyksYygpO2NvbnN0IGg9dC5zdWJzY3JpYmUoYyksZD1lLnN1YnNjcmliZU9uVG9hc3QoaSwoZT0+eyJSZW1vdmVBbmltYXRpb25TdGFydCI9PT1lLnR5cGUmJihsKCksZCgpLG4udW5zdWJzY3JpYmUoYyksaCgpKX0pKX19KHMudG9hc3RNYW5hZ2VyLHMudG9hc3RVc2VySW50ZXJhY3Rpb25TdGF0dXMsMTVlMyxhKX0sNjUyMTE0KGUsdCxpKXsidXNlIHN0cmljdCI7aS5kKHQse3RvYXN0TWFuYWdlcjooKT0+cix0b2FzdFVzZXJJbnRlcmFjdGlvblN0YXR1czooKT0+b30pO3ZhciBzPWkoMTE1NjQ0KTt2YXIgbj1pKDcxMDExMik7Y29uc3Qgcj1mdW5jdGlvbigpe2NvbnN0IGU9bmV3IFNldCx0PW5ldyBNYXAsaT17Z3JvdXBzOm5ldyBNYXB9O2Z1bmN0aW9uIG4oZSl7Y29uc3QgdD1pLmdyb3Vwcy5nZXQoZSk7aWYodClyZXR1cm4gdDtjb25zdCBzPXtpZDplLGxpc3Q6bmV3IE1hcCxhZGRlZDpuZXcgU2V0LHJlbW92ZWQ6bmV3IFNldH07cmV0dXJuIGkuZ3JvdXBzLnNldChlLHMpLHN9ZnVuY3Rpb24gcihlLHMpe3QuZGVsZXRlKGUpLHMuYWRkZWQuZGVsZXRlKGUpLHMucmVtb3ZlZC5kZWxldGUoZSkscy5saXN0LmRlbGV0ZShlKSwwPT09cy5saXN0LnNpemU/aS5ncm91cHMuZGVsZXRlKHMuaWQpOmkuZ3JvdXBzLnNldChzLmlkLHsuLi5zfSksbyh7dHlwZToiUmVtb3ZlIix0b2FzdElkOmUsZ3JvdXBJZDpzLmlkfSl9ZnVuY3Rpb24gbyh0KXtpLmdyb3Vwcz1uZXcgTWFwKGkuZ3JvdXBzKSxlLmZvckVhY2goKGU9PntlKHQpfSkpO2NvbnN0IHM9YS5nZXQodC50b2FzdElkKTtzJiZzLmZvckVhY2goKGU9PntlKHQpfSkpfWNvbnN0IGE9bmV3IE1hcDtyZXR1cm57YWRkVG9hc3Q6ZnVuY3Rpb24oZSxzLHIsYSxsKXtpZih0LmdldChlKSlyZXR1cm47Y29uc3QgYz1uKHMpO2MuYWRkZWQuYWRkKGUpO2NvbnN0IGg9e2lkOmUsLi4ucixtYW51YWxBbmltYXRpb25TdGFydDpsfTtjLmxpc3Quc2V0KGUsaCksdC5zZXQoZSxzKSxpLmdyb3Vwcy5zZXQocyx7Li4uY30pLG8oe3R5cGU6IkFkZCIsdG9hc3RJZDplLGdyb3VwSWQ6cyxkYXRhOnIsZGV0YWlsczphfSl9LHJlbW92ZVRvYXN0OmZ1bmN0aW9uKGUsbil7Y29uc3QgYT10LmdldChlKTtpZighYSlyZXR1cm47Y29uc3QgbD1pLmdyb3Vwcy5nZXQoYSk7bCYmKGwucmVtb3ZlZC5oYXMoZSl8fChsLnJlbW92ZWQuYWRkKGUpLGkuZ3JvdXBzLnNldChhLHsuLi5sfSksbyh7dHlwZToiUmVtb3ZlQW5pbWF0aW9uU3RhcnQiLHRvYXN0SWQ6ZSxncm91cElkOmEsZGV0YWlsczpufSksc2V0VGltZW91dCgoKCk9PntyKGUsbCl9KSxzLlRPQVNUX0FOSU1BVElPTl9EVVJBVElPTikpKX0scmVtb3ZlR3JvdXA6ZnVuY3Rpb24oZSx0KXtjb25zdCBuPWkuZ3JvdXBzLmdldChlKTtpZighbilyZXR1cm47Y29uc3QgYT1bXTtuLmxpc3QuZm9yRWFjaCgoaT0+e2NvbnN0IHM9aS5pZDtuLnJlbW92ZWQuaGFzKHMpfHwoYS5wdXNoKHMpLG4ucmVtb3ZlZC5hZGQocyksbyh7dHlwZToiUmVtb3ZlQW5pbWF0aW9uU3RhcnQiLAp0b2FzdElkOnMsZ3JvdXBJZDplLGRldGFpbHM6dH0pKX0pKSxpLmdyb3Vwcy5zZXQoZSx7Li4ubn0pLHNldFRpbWVvdXQoKCgpPT57YS5mb3JFYWNoKChlPT57cihlLG4pfSkpfSkscy5UT0FTVF9BTklNQVRJT05fRFVSQVRJT04pfSxzdGFydEFkZEFuaW1hdGlvbjpmdW5jdGlvbihlKXtjb25zdCBzPXQuZ2V0KGUpO2lmKCFzKXJldHVybjtjb25zdCBuPWkuZ3JvdXBzLmdldChzKTtuJiZuLmFkZGVkLmRlbGV0ZShlKSYmKGkuZ3JvdXBzLnNldChzLHsuLi5ufSksbyh7dHlwZToiQWRkQW5pbWF0aW9uU3RhcnQiLHRvYXN0SWQ6ZSxncm91cElkOnN9KSl9LHN1YnNjcmliZU9uVG9hc3Q6ZnVuY3Rpb24oZSx0KXtjb25zdCBpPWZ1bmN0aW9uKGUpe2NvbnN0IHQ9YS5nZXQoZSk7aWYodClyZXR1cm4gdDtjb25zdCBpPW5ldyBTZXQ7cmV0dXJuIGEuc2V0KGUsaSksaX0oZSk7cmV0dXJuIGkuYWRkKHQpLCgpPT57aS5kZWxldGUodCksMD09PWkuc2l6ZSYmYS5kZWxldGUoZSl9fSxzdGF0ZTppLHN1YnNjcmliZTpmdW5jdGlvbih0KXtyZXR1cm4gZS5hZGQodCksKCk9PntlLmRlbGV0ZSh0KX19fX0oKSxvPSgwLG4uY3JlYXRlVXNlckludGVyYWN0aW9uU3RhdHVzKSgpfSw3NjAwOTgoZSx0LGkpeyJ1c2Ugc3RyaWN0IjtpLmQodCx7dHJhY2tUaW1pbmc6KCk9Pmh9KTt2YXIgcz1pKDE3OTc3MSksbj1pKDY4MDg0Mikscj1pKDYzMTYzNCksbz1pKDMxODk3NCksYT1pKDQ0OTUwOCk7bGV0IGw9ITE7ZnVuY3Rpb24gYygpe2lmKGx8fCgwLG8uaXNTeW1waG9ueUVtYmVkKSgpfHwoMCxvLmlzRGVza3RvcEFwcCkoKSlyZXR1cm47KDAsci51cGRhdGVJbml0RGF0YSkoKTtjb25zdCBlPSgwLHIuZ2V0SW5pdERhdGEpKCk7aWYoIWUuZ2FJZClyZXR1cm4gdm9pZCh3aW5kb3cuZ3RhZz13aW5kb3cuZ3RhZ3x8KCgpPT57fSkpO2w9ITAsKDAsYS5lbnN1cmVHdGFnQm9vdHN0cmFwKShlLmdhSWQpO2NvbnN0IHQ9e2Fub255bWl6ZV9pcDohMH07d2luZG93LlRWRCYmKHQuYXBwX25hbWU9IlRWRCIsdC5hcHBfdmVyc2lvbj0oMCxvLmRlc2t0b3BBcHBWZXJzaW9uKSgpKSxlLmdhVmFycyYmd2luZG93Lmd0YWcoInNldCIsZS5nYVZhcnMpLHdpbmRvdy5ndGFnKCJjb25zZW50IiwiZGVmYXVsdCIse2FuYWx5dGljc19zdG9yYWdlOigwLG4uZ2V0Q29va2llU2V0dGluZykobi5Db29raWVTZXR0aW5ncy5BbmFseXRpY3MpPyJncmFudGVkIjoiZGVuaWVkIn0pLHdpbmRvdy5ndGFnKCJjb25maWciLGUuZ2FJZCx0KSxzLnN1YnNjcmliZShuLmNvb2tpZVNldHRpbmdzQ2hhbmdlRXZlbnQsKChlLHQpPT57ZT09PW4uQ29va2llU2V0dGluZ3MuQW5hbHl0aWNzJiZ3aW5kb3cuZ3RhZygiY29uc2VudCIsInVwZGF0ZSIse2FuYWx5dGljc19zdG9yYWdlOnQ/ImdyYW50ZWQiOiJkZW5pZWQifSl9KSxudWxsKX1mdW5jdGlvbiBoKGUsdCxpLHMpeygwLG8uaXNTeW1waG9ueUVtYmVkKSgpfHwoMCxvLmlzRGVza3RvcEFwcCkoKXx8KGMoKSxsJiZ3aW5kb3cuZ3RhZygiZXZlbnQiLCJ0aW1pbmdfY29tcGxldGUiLHtuYW1lOnQsdmFsdWU6aSxldmVudF9jYXRlZ29yeTplLGV2ZW50X2xhYmVsOnN9KSl9fSw4NzMzODYoZSx0LGkpeyJ1c2Ugc3RyaWN0IjtpLmQodCx7ZGVza3RvcFZlcnNpb25Jc0xlc3M6KCk9Pm8sbGVzc1RoYW46KCk9PnJ9KTt2YXIgcz1pKDMxODk3NCk7ZnVuY3Rpb24gbihlKXtjb25zdCB0PWUubWF0Y2goL14oXGQrKS4oXGQrKS4oXGQrKS8pO2lmKCF0KXJldHVybiBudWxsO2NvbnN0WyxpLHMsbl09dDtyZXR1cm5bcGFyc2VJbnQoaSkscGFyc2VJbnQocykscGFyc2VJbnQobildfWZ1bmN0aW9uIHIoZSx0KXtjb25zdCBpPW4oZSkscz1uKHQpO2lmKCFpfHwhcylyZXR1cm4hMTtjb25zdFtyLG8sYV09aSxbbCxjLGhdPXM7cmV0dXJuIHIhPT1sP3I8bDpvIT09Yz9vPGM6YSE9PWgmJmE8aH1mdW5jdGlvbiBvKGUpe2NvbnN0IHQ9KDAscy5kZXNrdG9wQXBwVmVyc2lvbikoKTtyZXR1cm4hIXQmJnIodCxlKX19LDQxNTIzNyhlLHQsaSl7InVzZSBzdHJpY3QiO3ZhciBzLG47aS5yKHQpLGkuZCh0LHtNb250aHM6KCk9Pm4sV2Vla0RheXM6KCk9PnN9KSxmdW5jdGlvbihlKXtlW2UuU1VOREFZPTFdPSJTVU5EQVkiLGVbZS5NT05EQVk9Ml09Ik1PTkRBWSIsZVtlLlRVRVNEQVk9M109IlRVRVNEQVkiLGVbZS5XRURORVNEQVk9NF09IldFRE5FU0RBWSIsZVtlLlRIVVJTREFZPTVdPSJUSFVSU0RBWSIsZVtlLkZSSURBWT02XT0iRlJJREFZIixlW2UuU0FUVVJEQVk9N109IlNBVFVSREFZIn0oc3x8KHM9e30pKSxmdW5jdGlvbihlKXtlW2UuSkFOVUFSWT0wXT0iSkFOVUFSWSIsZVtlLkZFQlJVQVJZPTFdPSJGRUJSVUFSWSIsZVtlLk1BUkNIPTJdPSJNQVJDSCIsZVtlLkFQUklMPTNdPSJBUFJJTCIsZVtlLk1BWT00XT0iTUFZIixlW2UuSlVORT01XT0iSlVORSIsZVtlLkpVTFk9Nl09IkpVTFkiLGVbZS5BVUdVU1Q9N109IkFVR1VTVCIsZVtlLlNFUFRFTUJFUj04XT0iU0VQVEVNQkVSIixlW2UuT0NUT0JFUj05XT0iT0NUT0JFUiIsZVtlLk5PVkVNQkVSPTEwXT0iTk9WRU1CRVIiLGVbZS5ERUNFTUJFUj0xMV09IkRFQ0VNQkVSIn0obnx8KG49e30pKX0sMzgwNTQwKGUsdCxpKXsidXNlIHN0cmljdCI7aS5yKHQpLGkuZCh0LHttb250aHNGdWxsTmFtZXM6KCk9PnIsbW9udGhzU2hvcnROYW1lczooKT0+byx3ZWVrRGF5c0Z1bGxOYW1lczooKT0+YSx3ZWVrRGF5c01pbmlOYW1lczooKT0+Yyx3ZWVrRGF5c1Nob3J0TmFtZXM6KCk9Pmx9KTt2YXIgcz1pKDE4NTI3MSksbj1pKDQxNTIzNyk7Y29uc3Qgcj17W24uTW9udGhzLkpBTlVBUlldOnMudChudWxsLHZvaWQgMCxpKDk0NDc4NCkpLFtuLk1vbnRocy5GRUJSVUFSWV06cy50KG51bGwsdm9pZCAwLGkoMzM2MzApKSxbbi5Nb250aHMuTUFSQ0hdOnMudChudWxsLHZvaWQgMCxpKDYzNTY0MykpLFtuLk1vbnRocy5BUFJJTF06cy50KG51bGwsdm9pZCAwLGkoMTU1ODUyKSksW24uTW9udGhzLk1BWV06cy50KG51bGwsdm9pZCAwLGkoODQ5OTczKSksW24uTW9udGhzLkpVTkVdOnMudChudWxsLHZvaWQgMCxpKDQwMjQ4MikpLFtuLk1vbnRocy5KVUxZXTpzLnQobnVsbCx2b2lkIDAsaSg5MjQ2ODkpKSwKW24uTW9udGhzLkFVR1VTVF06cy50KG51bGwsdm9pZCAwLGkoOTU5NzcyKSksW24uTW9udGhzLlNFUFRFTUJFUl06cy50KG51bGwsdm9pZCAwLGkoNDE1MjYxKSksW24uTW9udGhzLk9DVE9CRVJdOnMudChudWxsLHZvaWQgMCxpKDgxNDUwMSkpLFtuLk1vbnRocy5OT1ZFTUJFUl06cy50KG51bGwsdm9pZCAwLGkoOTcxNTYxKSksW24uTW9udGhzLkRFQ0VNQkVSXTpzLnQobnVsbCx2b2lkIDAsaSgzMDk2NjYpKX0sbz17W24uTW9udGhzLkpBTlVBUlldOnMudChudWxsLHZvaWQgMCxpKDY1NzM3NCkpLFtuLk1vbnRocy5GRUJSVUFSWV06cy50KG51bGwsdm9pZCAwLGkoNjE3MzQxKSksW24uTW9udGhzLk1BUkNIXTpzLnQobnVsbCx2b2lkIDAsaSgxMDMzMDUpKSxbbi5Nb250aHMuQVBSSUxdOnMudChudWxsLHZvaWQgMCxpKDUyNjc4NSkpLFtuLk1vbnRocy5NQVldOnMudChudWxsLHtjb250ZXh0OiJzaG9ydCJ9LGkoNzM0NzUwKSksW24uTW9udGhzLkpVTkVdOnMudChudWxsLHZvaWQgMCxpKDg3NzQ1KSksW24uTW9udGhzLkpVTFldOnMudChudWxsLHZvaWQgMCxpKDE4Mzk1OSkpLFtuLk1vbnRocy5BVUdVU1RdOnMudChudWxsLHZvaWQgMCxpKDkzNzYyKSksW24uTW9udGhzLlNFUFRFTUJFUl06cy50KG51bGwsdm9pZCAwLGkoMTc4NDY5KSksW24uTW9udGhzLk9DVE9CRVJdOnMudChudWxsLHZvaWQgMCxpKDcyODMzNykpLFtuLk1vbnRocy5OT1ZFTUJFUl06cy50KG51bGwsdm9pZCAwLGkoNjQ2NTQ1KSksW24uTW9udGhzLkRFQ0VNQkVSXTpzLnQobnVsbCx2b2lkIDAsaSg3NjkwMzYpKX0sYT17W24uV2Vla0RheXMuU1VOREFZXTpzLnQobnVsbCx2b2lkIDAsaSg5MDkzMDQpKSxbbi5XZWVrRGF5cy5NT05EQVldOnMudChudWxsLHZvaWQgMCxpKDg4OTM5NCkpLFtuLldlZWtEYXlzLlRVRVNEQVldOnMudChudWxsLHZvaWQgMCxpKDQ1NjMzNCkpLFtuLldlZWtEYXlzLldFRE5FU0RBWV06cy50KG51bGwsdm9pZCAwLGkoNzcyNzY1KSksW24uV2Vla0RheXMuVEhVUlNEQVldOnMudChudWxsLHZvaWQgMCxpKDgzNDY3MSkpLFtuLldlZWtEYXlzLkZSSURBWV06cy50KG51bGwsdm9pZCAwLGkoMzE4NTI1KSksW24uV2Vla0RheXMuU0FUVVJEQVldOnMudChudWxsLHZvaWQgMCxpKDM4Nzk1KSl9LGw9e1tuLldlZWtEYXlzLlNVTkRBWV06cy50KG51bGwsdm9pZCAwLGkoNTA3NDU4KSksW24uV2Vla0RheXMuTU9OREFZXTpzLnQobnVsbCx2b2lkIDAsaSg5NDc5MzYpKSxbbi5XZWVrRGF5cy5UVUVTREFZXTpzLnQobnVsbCx2b2lkIDAsaSg0NzQ5MykpLFtuLldlZWtEYXlzLldFRE5FU0RBWV06cy50KG51bGwsdm9pZCAwLGkoNDcwNDgwKSksW24uV2Vla0RheXMuVEhVUlNEQVldOnMudChudWxsLHZvaWQgMCxpKDMwMTQ4OSkpLFtuLldlZWtEYXlzLkZSSURBWV06cy50KG51bGwsdm9pZCAwLGkoNDI5OTkxKSksW24uV2Vla0RheXMuU0FUVVJEQVldOnMudChudWxsLHZvaWQgMCxpKDU5MTQxOCkpfSxjPXtbbi5XZWVrRGF5cy5TVU5EQVldOnMudChudWxsLHtjb250ZXh0OiJkYXlfb2Zfd2VlayJ9LGkoNjY5MTk5KSksW24uV2Vla0RheXMuTU9OREFZXTpzLnQobnVsbCx7Y29udGV4dDoiZGF5X29mX3dlZWsifSxpKDM2NTUzNSkpLFtuLldlZWtEYXlzLlRVRVNEQVldOnMudChudWxsLHtjb250ZXh0OiJkYXlfb2Zfd2VlayJ9LGkoOTM5MzI5KSksW24uV2Vla0RheXMuV0VETkVTREFZXTpzLnQobnVsbCx7Y29udGV4dDoiZGF5X29mX3dlZWsifSxpKDQ1MTI3MSkpLFtuLldlZWtEYXlzLlRIVVJTREFZXTpzLnQobnVsbCx7Y29udGV4dDoiZGF5X29mX3dlZWsifSxpKDYyODU4MikpLFtuLldlZWtEYXlzLkZSSURBWV06cy50KG51bGwse2NvbnRleHQ6ImRheV9vZl93ZWVrIn0saSgzOTg0NTkpKSxbbi5XZWVrRGF5cy5TQVRVUkRBWV06cy50KG51bGwse2NvbnRleHQ6ImRheV9vZl93ZWVrIn0saSgyNjA0OTYpKX19LDU4MjQ3NihlLHQsaSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHMoZSl7ZS5jYW5jZWxhYmxlJiZlLnByZXZlbnREZWZhdWx0KCl9ZnVuY3Rpb24gbihlKXtyZXR1cm4gdD0+e3ModCksZSh0KX19aS5kKHQse3ByZXZlbnREZWZhdWx0OigpPT5zLHdyYXBIYW5kbGVyV2l0aFByZXZlbnRFdmVudDooKT0+bn0pfSwxOTcwMzQoZSx0LGkpeyJ1c2Ugc3RyaWN0IjtpLmQodCx7ZmVhdHVyZUNoZWNrOigpPT5yfSk7dmFyIHM9aSg0NzkzNCk7ZnVuY3Rpb24gbihlLHQsaSl7cmV0dXJuIHQudmFsdWV8fCgwLHMuZW5hYmxlZCkoZSxpKX1mdW5jdGlvbiByKGUsdCxpKXtzd2l0Y2goZSl7Y2FzZSJTQ1JFRU5FUl9JTlRFUlZBTFMiOnJldHVybiBmdW5jdGlvbihlLHQpe2NvbnN0IGk9KDAscy5nZXRDb25maWcpKCJTQ1JFRU5FUl9JTlRFUlZBTFMiLHQpO3JldHVybiEoIWl8fCFpLmludGVydmFsKSYmaS5pbnRlcnZhbC5pbmNsdWRlcyhlLmludGVydmFsKX0odCxpKTtjYXNlIlNDUkVFTkVSX0FVVE9fUkVGUkVTSCI6cmV0dXJuIG4oIlNDUkVFTkVSX0FVVE9fUkVGUkVTSCIsdCxpKTtjYXNlIkFMRVJUU19OT19FWFBJUkFUSU9OIjpyZXR1cm4gbigiQUxFUlRTX05PX0VYUElSQVRJT04iLHQsaSk7ZGVmYXVsdDpyZXR1cm4oMCxzLmVuYWJsZWQpKGUsaSl9fX0sNjU1NTg0KGUsdCxpKXsidXNlIHN0cmljdCI7aS5kKHQse3JlbG9naW5PckdvUHJvOigpPT5jLHJ1bk9yR29Qcm86KCk9PmwscnVuT3JHb1Byb1dpdGhvdXRTeW5jOigpPT5hfSk7dmFyIHM9aSgxNTI3MTcpLG49aSgxOTcwMzQpLHI9aSg2MTM4NzApLG89aSg3NzA3NTUpO2Z1bmN0aW9uIGEoZSx0LGkscyxyKXsoMCxuLmZlYXR1cmVDaGVjaykodCxzKT9lKCk6KDAsby5vcGVuUGF5d2FsbCkoey4uLmkscnVuT3JHb3Byb1dpdGhGZWF0dXJlQ2hlY2tPcHRpb25zOntmZWF0dXJlQ2hlY2s6KCk9PigwLG4uZmVhdHVyZUNoZWNrKSh0LHMpLHNpZ25JblN1Y2Nlc3M6ZX19LHIpfWFzeW5jIGZ1bmN0aW9uIGwoZSx0LGksbj17fSxvKXtjb25zdCBsPXdpbmRvdy5pc19hdXRoZW50aWNhdGVkO3dpbmRvdy5pc19hdXRoZW50aWNhdGVkJiZ3aW5kb3cudXNlci5pc19wcm8mJmF3YWl0KDAscy5zeW5jVXNlckRhdGEpKCJnb3BybyIpLApsPT09d2luZG93LmlzX2F1dGhlbnRpY2F0ZWQ/YShlLHQsaSxuLG8pOigwLHIuc2hvd1NpZ25Nb2RhbCkoe3NvdXJjZTppLmdvcHJvU291cmNlLGZlYXR1cmU6aS5mZWF0dXJlLHNpZ25pblN1Y2Nlc3M6ZX0pfWFzeW5jIGZ1bmN0aW9uIGMoZSx0KXtjb25zdCBpPXdpbmRvdy5pc19hdXRoZW50aWNhdGVkO3dpbmRvdy5pc19hdXRoZW50aWNhdGVkJiZ3aW5kb3cudXNlci5pc19wcm8mJmF3YWl0KDAscy5zeW5jVXNlckRhdGEpKCJnb3BybyIpLGk9PT13aW5kb3cuaXNfYXV0aGVudGljYXRlZD8oMCxvLm9wZW5QYXl3YWxsKShlLHQpOigwLHIuc2hvd1NpZ25Nb2RhbCkoe3NvdXJjZTplLmdvcHJvU291cmNlLGZlYXR1cmU6ZS5mZWF0dXJlfSl9fSwxNjE0KGUsdCxpKXsidXNlIHN0cmljdCI7aS5kKHQse2lzVG91Y2hFdmVudDooKT0+bn0pO3ZhciBzPWkoMzYzMjY5KTtmdW5jdGlvbiBuKGUpe2NvbnN0IHQ9ZS5zb3VyY2VDYXBhYmlsaXRpZXM7bGV0IGk9dCYmdC5maXJlc1RvdWNoRXZlbnRzO3JldHVybiB2b2lkIDA9PT1pJiYoaT1zLnRvdWNoKSxpfX0sODYyMjEzKGUsdCxpKXsidXNlIHN0cmljdCI7aS5kKHQse0xvZ29TaXplOigpPT5zLkxvZ29TaXplLGdldExvZ29VcmxSZXNvbHZlcjooKT0+aH0pO3ZhciBzPWkoNjIwMzU0KSxuPWkoMTM4NjM4KSxyPWkoNjMxNjM0KSxvPWkoODEwNDEpO2NvbnN0IGE9KDAsaSgyMjEwNjEpLmdldExvZ2dlcikoIkxvZ29VcmxSZXNvbHZlciIpO2NsYXNzIGx7Y29uc3RydWN0b3IoZSl7KDAsbi5hc3NlcnQpKCIiIT09ZSwiUzMgYmFzZSB1cmwgbXVzdCBiZSBhIG5vbi1lbXB0eSBzdHJpbmciKSx0aGlzLl9iYXNlVXJsPWV9Z2V0U3ltYm9sTG9nb1VybChlLHQpe2lmKCIiPT09ZSlyZXR1cm4gYS5sb2dXYXJuKCJsb2dvIGlkIG11c3QgYmUgYSBub24tZW1wdHkgc3RyaW5nIiksIiI7c3dpdGNoKHQpe2Nhc2Ugcy5Mb2dvU2l6ZS5NZWRpdW06cmV0dXJuIHRoaXMuX2Jhc2VVcmwrYCR7ZX0uc3ZnYDtjYXNlIHMuTG9nb1NpemUuTGFyZ2U6cmV0dXJuIHRoaXMuX2Jhc2VVcmwrYCR7ZX0tLWJpZy5zdmdgfX1nZXRDb3VudHJ5RmxhZ1VybChlLHQpe3JldHVybiB0aGlzLmdldFN5bWJvbExvZ29VcmwoImNvdW50cnkvIitlLHQpfWdldFByb3ZpZGVyTG9nb1VybChlLHQpe3JldHVybiB0aGlzLmdldFN5bWJvbExvZ29VcmwoInByb3ZpZGVyLyIrZSx0KX1nZXRTb3VyY2VMb2dvVXJsKGUsdCl7cmV0dXJuIHRoaXMuZ2V0U3ltYm9sTG9nb1VybCgic291cmNlLyIrZSx0KX1nZXRCbG9ja2NoYWluQ29udHJhY3RMb2dvVXJsKGUsdCl7cmV0dXJuIHRoaXMuZ2V0U3ltYm9sTG9nb1VybCgiYmxvY2tjaGFpbi8iK2UsdCl9Z2V0Q2FuZGxlc3RpY2tQYXR0ZXJuTG9nb1VybChlLHQ9by5TdGRUaGVtZS5MaWdodCl7cmV0dXJuIHRoaXMuZ2V0U3ltYm9sTG9nb1VybChgY2FuZGxlcGF0dGVybi8ke2V9LSR7dH1gLHMuTG9nb1NpemUuTWVkaXVtKX19bGV0IGM7ZnVuY3Rpb24gaCgpe3JldHVybiBmdW5jdGlvbigpe2lmKCFjKXtjb25zdCBlPSgwLHIuZ2V0SW5pdERhdGEpKCksdD1lLnNldHRpbmdzP2Uuc2V0dGluZ3MuUzNfTE9HT19TRVJWSUNFX0JBU0VfVVJMOiIiO2M9bmV3IGwodCl9cmV0dXJuIGN9KCl9fSw0OTcwMTgoZSx0LGkpeyJ1c2Ugc3RyaWN0IjtpLmQodCx7bWVkaWFTdGF0ZTooKT0+Y30pO3ZhciBzPWkoNTI3MzIzKSxuPWkubihzKSxyPWkoNzQ5NjQ4KSxvPWkoNzc4NDU4KSxhPWkoMTEyNTQyKTtjbGFzcyBsIGV4dGVuZHMobigpKXtjb25zdHJ1Y3Rvcigpe3N1cGVyKCksdGhpcy53aWR0aD0wLHRoaXMuaGVpZ2h0PTAsdGhpcy5kZXZpY2U9bnVsbCx0aGlzLmJyZWFrcG9pbnRzPW8uYnJlYWtwb2ludHMsdGhpcy5fY2hlY2tEZXZpY2UoKSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicmVzaXplIix0aGlzLl9jaGVja0RldmljZSksT2JqZWN0LmVudHJpZXMoby5icmVha3BvaW50cykuc29ydCgoKFtlLHRdLFtpLHNdKT0+dC1zKSkuZm9yRWFjaCgoKFtlLHRdLGkscyk9PntsZXQgbjtpZigwIT09aSl7Y29uc3RbLGVdPXNbaS0xXTtuPWUrMX1lbHNlIG49MDtjb25zdCByPSgwLGEubWF0Y2hNZWRpYU1pbk1heCkobix0KTtyLm1hdGNoZXMmJnRoaXMuX3NldE5ld0RldmljZShlKSxyLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsKHQ9Pnt0Lm1hdGNoZXMmJih0aGlzLl9jaGVja0RldmljZSgpLHRoaXMuX3NldE5ld0RldmljZShlKSl9KSl9KSksKDAsci53aGVuRG9jdW1lbnRSZWFkeSkodGhpcy5fY2hlY2tEZXZpY2UuYmluZCh0aGlzKSksdGhpcy5pc1Bob25lU2l6ZURldmljZS5iaW5kKHRoaXMpfWlzUGhvbmVTaXplRGV2aWNlKCl7cmV0dXJuInBob25lIj09PXRoaXMuZGV2aWNlfHwicGhvbmUtdmVydGljYWwiPT09dGhpcy5kZXZpY2V9X2NoZWNrRGV2aWNlKCl7dGhpcy53aWR0aD13aW5kb3cuaW5uZXJXaWR0aCx0aGlzLmhlaWdodD13aW5kb3cuaW5uZXJIZWlnaHR9X3NldE5ld0RldmljZShlKXtjb25zdCB0PXRoaXMuZGV2aWNlO3RoaXMuZGV2aWNlPWUsdGhpcy50cmlnZ2VyKCJjaGFuZ2VEZXZpY2UiLFtlLHRdKX19Y29uc3QgYz1uZXcgbH0sMzIyNjAxKGUsdCxpKXsidXNlIHN0cmljdCI7aS5kKHQse2FkZFBlcmZNYXJrOigpPT5jLHBlcmZNZWFzdXJlT3BlcmF0aW9uOigpPT5ofSk7dmFyIHM9aSgxNTAxNTApO2Z1bmN0aW9uIG4oKXt9Y29uc3Qgcj1jb25zb2xlLnRpbWVTdGFtcD9jb25zb2xlLnRpbWVTdGFtcC5iaW5kKGNvbnNvbGUpOm4sbz13aW5kb3cucGVyZm9ybWFuY2UmJnBlcmZvcm1hbmNlLm1hcms/cGVyZm9ybWFuY2UubWFyay5iaW5kKHBlcmZvcm1hbmNlKTpuLGE9d2luZG93LnBlcmZvcm1hbmNlJiZwZXJmb3JtYW5jZS5tZWFzdXJlP3BlcmZvcm1hbmNlLm1lYXN1cmUuYmluZChwZXJmb3JtYW5jZSk6bixsPXdpbmRvdy5wZXJmb3JtYW5jZSYmcGVyZm9ybWFuY2UuY2xlYXJNYXJrcz9wZXJmb3JtYW5jZS5jbGVhck1hcmtzLmJpbmQocGVyZm9ybWFuY2UpOm47ZnVuY3Rpb24gYyhlKXtyKGUpLG8oZSl9YXN5bmMgZnVuY3Rpb24gaChlLHQpe2NvbnN0IGk9YG1lYXN1cmUtJHtlfS0keygwLHMucmFuZG9tSGFzaCkoKX1gO28oaSk7dHJ5ewpyZXR1cm4gYXdhaXQgdCgpfWZpbmFsbHl7YShlLGkpLGwoaSl9fX0sODMyODQ1KGUsdCxpKXsidXNlIHN0cmljdCI7aS5kKHQse3Jlc291cmNlTWV0cmljc09ic2VydmVyOigpPT5ufSk7Y29uc3Qgcz1uZXcgU2V0KFsiZmV0Y2giLCJ4bWxodHRwcmVxdWVzdCJdKTtjb25zdCBuPW5ldyBjbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMuX2dyb3Vwcz1uZXcgTWFwLHRoaXMuX29ic2VydmVyU3RhcnRlZD0hMX1yZWdpc3RlcihlLHQpe2Zvcihjb25zdCB0IG9mIHRoaXMuX2dyb3Vwcy52YWx1ZXMoKSlpZih0LnBhdHRlcm5OYW1lPT09ZSl0aHJvdyBuZXcgRXJyb3IoYFBhdHRlcm4gIiR7ZX0iIGlzIGFscmVhZHkgcmVnaXN0ZXJlZGApO3RoaXMuX2dyb3Vwcy5zZXQodCx7cGF0dGVybk5hbWU6ZSxwYXR0ZXJuOnQsdG90YWxEdXJhdGlvbjowLGNvdW50OjAsdG9wRW50cmllczpbXX0pLHRoaXMuX3N0YXJ0T2JzZXJ2ZXIoKX1nZXRTdGF0cygpe2NvbnN0IGU9W107Zm9yKGNvbnN0IHQgb2YgdGhpcy5fZ3JvdXBzLnZhbHVlcygpKXQuY291bnQmJmUucHVzaCh7cGF0dGVybk5hbWU6dC5wYXR0ZXJuTmFtZSxhdmVyYWdlRHVyYXRpb246dC50b3RhbER1cmF0aW9uL3QuY291bnQsY291bnQ6dC5jb3VudCx0b3BFbnRyaWVzOnQudG9wRW50cmllc30pO3JldHVybiBlfV9zdGFydE9ic2VydmVyKCl7aWYoIXRoaXMuX29ic2VydmVyU3RhcnRlZCYmInVuZGVmaW5lZCIhPXR5cGVvZiBQZXJmb3JtYW5jZU9ic2VydmVyKXRyeXtuZXcgUGVyZm9ybWFuY2VPYnNlcnZlcigoZT0+e2Zvcihjb25zdCB0IG9mIGUuZ2V0RW50cmllcygpKXRoaXMuX3Byb2Nlc3NFbnRyeSh0KX0pKS5vYnNlcnZlKHt0eXBlOiJyZXNvdXJjZSIsYnVmZmVyZWQ6ITB9KSx0aGlzLl9vYnNlcnZlclN0YXJ0ZWQ9ITB9Y2F0Y2h7fX1fcHJvY2Vzc0VudHJ5KGUpe2lmKCFzLmhhcyhlLmluaXRpYXRvclR5cGUpKXJldHVybjtjb25zdCB0PXt1cmw6ZS5uYW1lLHN0YXJ0VGltZTplLnN0YXJ0VGltZSxkdXJhdGlvbjplLmR1cmF0aW9ufTtmb3IoY29uc3QgaSBvZiB0aGlzLl9ncm91cHMudmFsdWVzKCkpe2lmKCFpLnBhdHRlcm4udGVzdChlLm5hbWUpKWNvbnRpbnVlO2kudG90YWxEdXJhdGlvbis9ZS5kdXJhdGlvbixpLmNvdW50Kys7Y29uc3Qgcz1pLnRvcEVudHJpZXM7cy5sZW5ndGg8NT8ocy5wdXNoKHQpLHMuc29ydCgoKGUsdCk9PnQuZHVyYXRpb24tZS5kdXJhdGlvbikpKTplLmR1cmF0aW9uPnNbcy5sZW5ndGgtMV0uZHVyYXRpb24mJihzW3MubGVuZ3RoLTFdPXQscy5zb3J0KCgoZSx0KT0+dC5kdXJhdGlvbi1lLmR1cmF0aW9uKSkpfX19fSw5NTY2ODcoZSx0LGkpeyJ1c2Ugc3RyaWN0Ijt2YXIgcztpLmQodCx7VGVsZW1ldHJ5R3JvdXA6KCk9PnN9KSxmdW5jdGlvbihlKXtlLkZhc3Q9ImZhc3QiLGUuTWVkaXVtPSJtZWRpdW0iLGUuU2xvdz0ic2xvdyJ9KHN8fChzPXt9KSl9LDU2MzYyNChlLHQsaSl7InVzZSBzdHJpY3QiO2kuZCh0LHtoYXNNZXRhSW5mbzooKT0+cyxpc0Fic2VudFBhcmFtOigpPT5ufSk7aSg5NTY2ODcpO2Z1bmN0aW9uIHMoZSl7cmV0dXJuIm9iamVjdCI9PXR5cGVvZiBlJiYibWV0YUluZm8iaW4gZX1mdW5jdGlvbiBuKGUpe3JldHVybiBudWxsPT1lfX0sNjk3NzA1KGUsdCxpKXsidXNlIHN0cmljdCI7aS5kKHQse2xvZ1BpbmVNZXRhSW5mb0lzc3VlczooKT0+b30pO3ZhciBzPWkoMjIxMDYxKSxuPWkoMjc1NzQyKTtmdW5jdGlvbiByKGUsdCxpKXsoMCxuLmdldFBlcnNpc3RlbnRMb2dnZXIpKCk/LmFkZFBlcnNpc3RlbnRMb2dFbnRyeShgRGV0ZWN0ZWQgbWV0YSBpbmZvIChpZDogJHtlLmlkfSkgaXNzdWU6ICR7dH0uIFNvdXJjZTogJHtpfWAscy5MT0dMRVZFTC5FUlJPUiwiUGluZU1ldGFJbmZvVmFsaWRhdGlvbiIpfWZ1bmN0aW9uIG8oZSx0KXt0JiZ0LmRlZmF1bHRzJiZ0LmRlZmF1bHRzLmlucHV0cyYmIXQuZGVmYXVsdHMuaW5wdXRzLnRleHQmJnIodCwnbm8gImRlZmF1bHRzLmlucHV0cy50ZXh0IiB2YWx1ZScsZSksdCYmdC5pbnB1dHMmJih0LmlucHV0cy5maW5kKChlPT4idGV4dCI9PT1lLmlkKSl8fHIodCwnbm8gaW5wdXQgd2l0aCBpZCAidGV4dCInLGUpKX19LDYxMjMxKGUsdCxpKXsidXNlIHN0cmljdCI7dmFyIHMsbjtpLmQodCx7U2V2ZXJpdHk6KCk9PnN9KSxmdW5jdGlvbihlKXtlLkVSUk9SPSJlcnJvciIsZS5XQVJOSU5HPSJ3YXJuaW5nIn0oc3x8KHM9e30pKSxmdW5jdGlvbihlKXtlLk9wZW5Ob0F1dGg9Im9wZW5fbm9fYXV0aCIsZS5DbG9zZWROb0F1dGg9ImNsb3NlZF9ub19hdXRoIixlLkNsb3NlZE5lZWRzQXV0aD0iY2xvc2VkX25lZWRzX2F1dGgifShufHwobj17fSkpfSw1Nzc5OTYoZSx0LGkpeyJ1c2Ugc3RyaWN0IjtpLmQodCx7RU1QVFlfU09VUkNFX0NPREU6KCk9PmMsUElORV9TQ1JJUFRfTU9ESUZJRURfTE9DSzooKT0+aCxSRV9NRVNTQUdFX0xJTkVfV0lUSF9ESUdJVFM6KCk9PmQsVFZfU0NSSVBUX0RFTEVURUQ6KCk9Pm8sVFZfU0NSSVBUX0xFR0FDWV9QSU5FX1BST0NFU1NFRDooKT0+bCxUVl9TQ1JJUFRfTU9ESUZJQ0FUSU9OX0FDVElWRTooKT0+bixUVl9TQ1JJUFRfTU9ESUZJRUQ6KCk9PnIsVFZfU0NSSVBUX1JFTkFNRUQ6KCk9PmEscGluZVRlbGVtZXRyeUdyb3VwczooKT0+dX0pO3ZhciBzPWkoOTU2Njg3KQo7Y29uc3Qgbj0iVFZTY3JpcHRNb2RpZmljYXRpb25BY3RpdmUiLHI9IlRWU2NyaXB0TW9kaWZpZWQiLG89IlRWU2NyaXB0RGVsZXRlZCIsYT0iVFZTY3JpcHRSZW5hbWVkIixsPSJUVlNjcmlwdExlZ2FjeVBpbmVQcm9jZXNzZWQiLGM9IkNhbm5vdCBzYXZlIGVtcHR5IHNvdXJjZSBjb2RlIixoPSJwaW5lX3NjcmlwdF9tb2RpZmllZF9sb2NrIixkPS9bbHxMXWluZXM/IChcZCopLyx1PW5ldyBNYXAoW1siZGVsZXRlIixzLlRlbGVtZXRyeUdyb3VwLkZhc3RdLFsiZ2V0IixzLlRlbGVtZXRyeUdyb3VwLkZhc3RdLFsiaXNfYXV0aF90b19nZXQiLHMuVGVsZW1ldHJ5R3JvdXAuRmFzdF0sWyJpc19hdXRoX3RvX3dyaXRlIixzLlRlbGVtZXRyeUdyb3VwLkZhc3RdLFsicGFyc2VfdGl0bGUiLHMuVGVsZW1ldHJ5R3JvdXAuRmFzdF0sWyJyZW5hbWUiLHMuVGVsZW1ldHJ5R3JvdXAuRmFzdF0sWyJsaWJfbGlzdCIscy5UZWxlbWV0cnlHcm91cC5GYXN0XSxbInZlcnNpb25zIixzLlRlbGVtZXRyeUdyb3VwLkZhc3RdLFsibmFtZSIscy5UZWxlbWV0cnlHcm91cC5GYXN0XSxbImxpc3QiLHMuVGVsZW1ldHJ5R3JvdXAuTWVkaXVtXSxbImV2YWxfcGluZV9leCIscy5UZWxlbWV0cnlHcm91cC5NZWRpdW1dLFsidHJhbnNsYXRlX2xpZ2h0IixzLlRlbGVtZXRyeUdyb3VwLk1lZGl1bV0sWyJwcm9jZXNzX2xlZ2FjeSIscy5UZWxlbWV0cnlHcm91cC5TbG93XSxbInB1Ymxpc2giLHMuVGVsZW1ldHJ5R3JvdXAuU2xvd10sWyJzYXZlIixzLlRlbGVtZXRyeUdyb3VwLlNsb3ddLFsidHJhbnNsYXRlIixzLlRlbGVtZXRyeUdyb3VwLlNsb3ddLFsidHJhbnNsYXRlX3NvdXJjZSIscy5UZWxlbWV0cnlHcm91cC5TbG93XSxbImdlbl9hbGVydCIscy5UZWxlbWV0cnlHcm91cC5TbG93XSxbImNvbnZlcnQiLHMuVGVsZW1ldHJ5R3JvdXAuU2xvd11dKX0sNjcxMDE5KGUsdCxpKXsidXNlIHN0cmljdCI7aS5kKHQse3BpbmVGYWNhZGVGZXRjaDooKT0+cH0pO3ZhciBzPWkoMjIxMDYxKSxuPWkoMzg0MDE3KSxyPWkoMzcxMDcpLG89aSg1NjM2MjQpLGE9aSgxNTY4NTApLGw9aSg4MzI4NDUpLGM9aSg1Nzc5OTYpO2NvbnN0IGg9KDAscy5nZXRMb2dnZXIpKCJDaGFydC5TdHVkeS5WZXJzaW9uaW5nIik7ZnVuY3Rpb24gZChlLHQpe2NvbnN0IGk9bmV3IFVSTChmdW5jdGlvbihlKXtyZXR1cm4gZS5zcGxpdCgiLyIpLm1hcCgoZT0+ZW5jb2RlVVJJQ29tcG9uZW50KGUpKSkuam9pbigiLyIpfShlKSwoMCxyLmdldFBpbmVGYWNhZGVVcmwpKCkpO2Zvcihjb25zdCBlIGluIHQpe2NvbnN0IHM9dFtlXTsoMCxvLmlzQWJzZW50UGFyYW0pKHMpfHxpLnNlYXJjaFBhcmFtcy5zZXQoZSxTdHJpbmcocykpfXJldHVybiBpLnRvU3RyaW5nKCl9ZnVuY3Rpb24gdShlLHQpe2NvbnN0IGk9e21ldGhvZDplLG1vZGU6ImNvcnMiLGNyZWRlbnRpYWxzOiJpbmNsdWRlIn07cmV0dXJuIlBPU1QiPT09ZSYmdCYmKGkuYm9keT1mdW5jdGlvbihlKXtjb25zdCB0PW5ldyBGb3JtRGF0YTtmb3IoY29uc3QgaSBvZiBPYmplY3Qua2V5cyhlKSl0LmFwcGVuZChpLGVbaV0pO3JldHVybiB0fSh0KSksaX1hc3luYyBmdW5jdGlvbiBwKHt1cmxQYXRoOmUsdXJsUGFyYW1zOnQsZGF0YTppLG1ldGhvZDpzPSJHRVQifSl7Y29uc3Qgcj1kKGUsdCksbz11KHMsaSksbD1mdW5jdGlvbihlKXtoLmxvZ05vcm1hbChgUmVxdWVzdGluZyBwaW5lIGZhY2FkZSBzY3JpcHRzLCB1cmw6ICR7ZX1gKTtjb25zdCB0PWUuc3BsaXQoIi8iKVswXSxpPWMucGluZVRlbGVtZXRyeUdyb3Vwcy5nZXQodCkscz1EYXRlLm5vdygpO3JldHVybiB0PT57Y29uc3Qgbj1EYXRlLm5vdygpLXM7aWYoYS50ZWxlbWV0cnkuc2VuZFJlcG9ydCgicGluZSIsYCR7aX1fZ3JvdXBfdGltZV9mcmFtZWAse3ZhbHVlOm59KSx0KXJldHVybiBhLnRlbGVtZXRyeS5zZW5kUmVwb3J0KCJwaW5lIixgJHtpfV9ncm91cF9va2ApLHZvaWQgaC5sb2dOb3JtYWwoYFJlcXVlc3RpbmcgcGluZSBmYWNhZGUgc2NyaXB0cyBmaW5pc2hlZCwgdXJsOiAke2V9YCk7YS50ZWxlbWV0cnkuc2VuZFJlcG9ydCgicGluZSIsYCR7aX1fZ3JvdXBfZXJyb3JgKSxoLmxvZ0Vycm9yKGBSZXF1ZXN0aW5nIHBpbmUgZmFjYWRlIHNjcmlwdHMgZmFpbGVkLCB1cmw6ICR7ZX1gKX19KGUpO3RyeXtjb25zdCBlPWF3YWl0KDAsbi5mZXRjaCkocixvKTtpZighZS5vayl0aHJvdyBmdW5jdGlvbihlKXtyZXR1cm4gZS5zdGF0dXM+PTUwMD8iU2VydmVyIGVycm9yLCB0cnkgYWdhaW4gb3IgY29udGFjdCBzdXBwb3J0LiI6NDEzPT09ZS5zdGF0dXM/IlRoZSBzaXplIG9mIHRoZSBzY3JpcHQgY29tcGlsYXRpb24gcmVxdWVzdCBpcyB0b28gbGFyZ2UuIjo0MjA9PT1lLnN0YXR1cz8iU2NyaXB0IHRpdGxlIGlzIHRvbyBsb25nLiBNYXggYWxsb3dlZCBsZW5ndGggaXMgMTI4IGNoYXJhY3RlcnMuIjo0MDM9PT1lLnN0YXR1cz8iVG8gdXNlIGl0LCBhc2sgdGhlIGF1dGhvciB0byBwdWJsaXNoIHRoZSBzY3JpcHQuIjplLnN0YXR1cz49NDAwPyJSZXF1ZXN0IGVycm9yLCB0cnkgYWdhaW4gb3IgY29udGFjdCBzdXBwb3J0LiI6IlNvbWV0aGluZyB3ZW50IHdyb25nLCB0cnkgYWdhaW4gb3IgY29udGFjdCBzdXBwb3J0LiJ9KGUpO2NvbnN0IHQ9YXdhaXQgZS5qc29uKCk7cmV0dXJuIGwoITApLHR9Y2F0Y2goZSl7dGhyb3cgbCghMSksZX19bC5yZXNvdXJjZU1ldHJpY3NPYnNlcnZlci5yZWdpc3RlcigicGluZV9mYWNhZGVfZmV0Y2giLC9waW5lLWZhY2FkZS8pfSwzNzEwNyhlLHQsaSl7InVzZSBzdHJpY3QiO2kuZCh0LHthcHBseUdsb2JhbFNjcmlwdExpc3RlbmVyczooKT0+dixnZXRPbmx5UGluZVN0dWRpZXM6KCk9PnksZ2V0UGluZUZhY2FkZVVybDooKT0+YyxoYW5kbGVSZXN1bHQ6KCk9PmQsaGFuZGxlU2F2ZVJlc3VsdDooKT0+cCxoYW5kbGVUcmFuc2xhdGVSZXN1bHQ6KCk9PnUsaXNQaW5lUmVhc29uRGF0YTooKT0+YixvbkRlbGV0ZVNjcmlwdDooKT0+ZyxvbkxlZ2FjeVNjcmlwdFByb2NlZWQ6KCk9PlMsb25Nb2RpZnlTY3JpcHQ6KCk9Pm0sb25Nb2RpZnlTY3JpcHRBY3RpdmVDaGFuZ2VkOigpPT5fLG9uUmVuYW1lU2NyaXB0OigpPT5mfSkKO3ZhciBzPWkoMTc5NzcxKSxuPWkoMTUyNjk5KSxyPWkoNjMyNDQ0KSxvPWkoNTc3OTk2KSxhPWkoMzA5MzYwKSxsPWkoNTYzNjI0KTtmdW5jdGlvbiBjKCl7Y29uc3QgZT1uZXcgVVJMKHdpbmRvdy5QSU5FX1VSTCxsb2NhdGlvbi5vcmlnaW4pO3JldHVybiBlLnBhdGhuYW1lLmVuZHNXaXRoKCIvIil8fChlLnBhdGhuYW1lKz0iLyIpLGUuaHJlZn1mdW5jdGlvbiBoKGUpe2lmKCJvYmplY3QiPT10eXBlb2YgZS5yZWFzb24pcmV0dXJuIGUucmVhc29uO2lmKGUucmVhc29uMilyZXR1cm57ZXJyb3JzOmUucmVhc29uMi5lcnJvcnM/P1tdLHdhcm5pbmdzOmUucmVhc29uMi53YXJuaW5ncz8/W119O2NvbnN0IHQ9e2Vycm9yczpbXSx3YXJuaW5nczpbXX07aWYoKDAsbC5oYXNNZXRhSW5mbykoZS5yZXN1bHQpKXtjb25zdCBpPWUucmVzdWx0JiZlLnJlc3VsdC5tZXRhSW5mbztpJiZ2b2lkIDAhPT1pLndhcm5pbmdzJiZpLndhcm5pbmdzLmZvckVhY2goKGU9PnQud2FybmluZ3MucHVzaCh7bWVzc2FnZTplfSkpKX1pZihlLnJlYXNvbil7KEFycmF5LmlzQXJyYXkoZS5yZWFzb24pP2UucmVhc29uOmUucmVhc29uLnNwbGl0KCJcbiIpKS5mb3JFYWNoKChlPT57Y29uc3QgaT1lLm1hdGNoKG8uUkVfTUVTU0FHRV9MSU5FX1dJVEhfRElHSVRTKSxzPWkmJmkubGVuZ3RoJiZOdW1iZXIoaVsxXSksbj17bWVzc2FnZTplfTtpZigibnVtYmVyIj09dHlwZW9mIHMpe24uc3RhcnQ9e2xpbmU6cyxjb2x1bW46MH07Y29uc3QgZT1uLm1lc3NhZ2Uuc3BsaXQoIjogIik7ZS5zaGlmdCgpLG4ubWVzc2FnZT1lLmpvaW4oIjogIil9dC5lcnJvcnMucHVzaChuKX0pKX1yZXR1cm4gdH1mdW5jdGlvbiBkKGUpe2lmKGUuc3VjY2VzcylyZXR1cm4gZS5yZXN1bHQ7aWYoZS5lcnJvcil0aHJvdyBlLmVycm9yO3Rocm93IGgoZSl9ZnVuY3Rpb24gdShlKXtpZihlLnN1Y2Nlc3MpcmV0dXJue3N1Y2Nlc3M6ZS5zdWNjZXNzLG1ldGFJbmZvOmUucmVzdWx0Lm1ldGFJbmZvLGNvbXBpbGVFcnJvcnM6aChlKX07dGhyb3cgbmV3IGEuUGluZUNvbXBpbGVGYWlsRXJyb3JJbXBsKGgoZSksZS5yZXN1bHQubWV0YUluZm8pfWZ1bmN0aW9uIHAoZSl7aWYoZS5lcnJvcil0aHJvdyBlLmVycm9yO3JldHVybntzdWNjZXNzOmUuc3VjY2VzcyxtZXRhSW5mbzplLnJlc3VsdC5tZXRhSW5mbyxjb21waWxlRXJyb3JzOmgoZSl9fWZ1bmN0aW9uIF8oZSx0LGkpe2NvbnN0IHI9e3NjcmlwdElkUGFydDplLHNjcmlwdFZlcnNpb25Ub1VwZGF0ZTp0LGFjdGl2ZTppfTtuLlRWWFdpbmRvd0V2ZW50cy5lbWl0KG8uVFZfU0NSSVBUX01PRElGSUNBVElPTl9BQ1RJVkUsSlNPTi5zdHJpbmdpZnkocikpLHMuZW1pdChvLlRWX1NDUklQVF9NT0RJRklDQVRJT05fQUNUSVZFLHIpLHNldFRpbWVvdXQoKGFzeW5jKCk9Pntjb25zdCBlPWF3YWl0KHdpbmRvdy5zY3JpcHRVcGRhdGVyPy4oKSk7ZT8ub25Nb2RpZnlTY3JpcHRBY3RpdmVDaGFuZ2VkKHIpfSkpfWZ1bmN0aW9uIG0oZSx0LGkscil7Y29uc3QgYT17c2NyaXB0TWV0YUluZm86ZSxzY3JpcHRWZXJzaW9uVG9VcGRhdGU6dCxjb21waWxhdGlvbkZhaWxlZDppLGNvbXBpbGVFcnJvcnM6cn07bi5UVlhXaW5kb3dFdmVudHMuZW1pdChvLlRWX1NDUklQVF9NT0RJRklFRCxKU09OLnN0cmluZ2lmeShhKSkscy5lbWl0KG8uVFZfU0NSSVBUX01PRElGSUVELGEpLHdpbmRvdy5zY3JpcHRVcGRhdGVyPy4oKT8udGhlbigoZT0+ZS5vblRWU2NyaXB0TW9kaWZpZWQoey4uLmEsaXNTZWxmQ2FsbDohMH0pKSl9ZnVuY3Rpb24gZyhlKXtjb25zdCB0PXtzY3JpcHRJZFBhcnQ6ZX07bi5UVlhXaW5kb3dFdmVudHMuZW1pdChvLlRWX1NDUklQVF9ERUxFVEVELEpTT04uc3RyaW5naWZ5KHQpKSxzLmVtaXQoby5UVl9TQ1JJUFRfREVMRVRFRCx0KSxzZXRUaW1lb3V0KChhc3luYygpPT57Y29uc3QgZT1hd2FpdCh3aW5kb3cuc2NyaXB0VXBkYXRlcj8uKCkpO2F3YWl0KGU/Lm9uVFZTY3JpcHREZWxldGVkKHsuLi50LGlzU2VsZkNhbGw6ITB9KSl9KSl9ZnVuY3Rpb24gZihlLHQpe2NvbnN0IGk9e3NjcmlwdElkUGFydDplLHNjcmlwdE5hbWU6dH07bi5UVlhXaW5kb3dFdmVudHMuZW1pdChvLlRWX1NDUklQVF9SRU5BTUVELEpTT04uc3RyaW5naWZ5KGkpKSxzLmVtaXQoby5UVl9TQ1JJUFRfUkVOQU1FRCxpKX1mdW5jdGlvbiBTKGUpe2NvbnN0IHQ9e3NjcmlwdE1ldGFJbmZvOmV9O24uVFZYV2luZG93RXZlbnRzLmVtaXQoby5UVl9TQ1JJUFRfTEVHQUNZX1BJTkVfUFJPQ0VTU0VELEpTT04uc3RyaW5naWZ5KHQpKSxzLmVtaXQoby5UVl9TQ1JJUFRfTEVHQUNZX1BJTkVfUFJPQ0VTU0VELHQpLHNldFRpbWVvdXQoKGFzeW5jKCk9Pntjb25zdCBlPWF3YWl0KHdpbmRvdy5zY3JpcHRVcGRhdGVyPy4oKSk7ZT8ub25UVlNjcmlwdExlZ2FjeVBpbmVQcm9jZXNzZWQodCl9KSl9ZnVuY3Rpb24gdihlLHQsaSl7bi5UVlhXaW5kb3dFdmVudHMub24oby5UVl9TQ1JJUFRfTU9ESUZJQ0FUSU9OX0FDVElWRSwoYXN5bmMgZT0+e2NvbnN0IHQ9YXdhaXQod2luZG93LnNjcmlwdFVwZGF0ZXI/LigpKTt0Py5vbk1vZGlmeVNjcmlwdEFjdGl2ZUNoYW5nZWQoSlNPTi5wYXJzZShlKSl9KSksbi5UVlhXaW5kb3dFdmVudHMub24oby5UVl9TQ1JJUFRfTU9ESUZJRUQsKGFzeW5jIGU9PntpLmNsZWFyKCk7Y29uc3QgdD1hd2FpdCh3aW5kb3cuc2NyaXB0VXBkYXRlcj8uKCkpO3Q/Lm9uVFZTY3JpcHRNb2RpZmllZChKU09OLnBhcnNlKGUpKX0pKSxuLlRWWFdpbmRvd0V2ZW50cy5vbihvLlRWX1NDUklQVF9ERUxFVEVELChhc3luYyBzPT57ZS5jbGVhcigpLHQuY2xlYXIoKSxpLmNsZWFyKCk7Y29uc3Qgbj1hd2FpdCh3aW5kb3cuc2NyaXB0VXBkYXRlcj8uKCkpO2F3YWl0KG4/Lm9uVFZTY3JpcHREZWxldGVkKEpTT04ucGFyc2UocykpKX0pKSxuLlRWWFdpbmRvd0V2ZW50cy5vbihvLlRWX1NDUklQVF9SRU5BTUVELChhc3luYyBlPT57aS5jbGVhcigpfSkpLG4uVFZYV2luZG93RXZlbnRzLm9uKG8uVFZfU0NSSVBUX0xFR0FDWV9QSU5FX1BST0NFU1NFRCwoYXN5bmMgZT0+e2kuY2xlYXIoKTtjb25zdCB0PWF3YWl0KHdpbmRvdy5zY3JpcHRVcGRhdGVyPy4oKSkKO3Q/Lm9uVFZTY3JpcHRMZWdhY3lQaW5lUHJvY2Vzc2VkKEpTT04ucGFyc2UoZSkpfSkpfWZ1bmN0aW9uIHkoZSl7cmV0dXJuIGUuZmlsdGVyKChlPT57Y29uc3QgdD0oMCxyLmV4dHJhY3RQaW5lSWQpKGUubWV0YUluZm8oKS5pZCk7cmV0dXJuIHQmJigwLHIuaXNDdXN0b21QaW5lSWQpKHQpfSkpfWZ1bmN0aW9uIGIoZSl7cmV0dXJuIm9iamVjdCI9PXR5cGVvZiBlJiZudWxsIT09ZSYmKCJlcnJvcnMiaW4gZXx8Indhcm5pbmdzImluIGUpfX0sMzA5MzYwKGUsdCxpKXsidXNlIHN0cmljdCI7aS5kKHQse1BpbmVDb21waWxlRmFpbEVycm9ySW1wbDooKT0+c30pO2NsYXNzIHMgZXh0ZW5kcyBFcnJvcntjb25zdHJ1Y3RvcihlLHQpe3N1cGVyKCJQaW5lIHRyYW5zbGF0aW9uIGZhaWxlZCIpLHRoaXMucmVhc29uPWUsdGhpcy5tZXRhSW5mbz10fX19LDQwNjg5MihlLHQsaSl7InVzZSBzdHJpY3QiO2kuZCh0LHtSZXF1ZXN0Q2FjaGU6KCk9Pm4sU2luZ2xlUmVxdWVzdENhY2hlOigpPT5yfSk7dmFyIHM9aSgxNTAxNTApO2NsYXNzIG57Y29uc3RydWN0b3IoKXt0aGlzLl9jYWNoZT1uZXcgTWFwLHdpbmRvdy5sb2dpblN0YXRlQ2hhbmdlJiZ3aW5kb3cubG9naW5TdGF0ZUNoYW5nZS5zdWJzY3JpYmUodGhpcyx0aGlzLmNsZWFyKX1nZXQoZSl7cmV0dXJuIHRoaXMuX2NhY2hlLmdldChlKX1zZXQoZSx0KXt0aGlzLl9jYWNoZS5zZXQoZSx0KX1kZWxldGUoZSl7cmV0dXJuIHRoaXMuX2NhY2hlLmRlbGV0ZShlKX1jbGVhcigpe3RoaXMuX2NhY2hlLmNsZWFyKCl9fWNsYXNzIHIgZXh0ZW5kcyBue2NvbnN0cnVjdG9yKCl7c3VwZXIoKSx0aGlzLl9rZXk9KDAscy5ndWlkKSgpfXJlc2V0KGUpe3N1cGVyLnNldCh0aGlzLl9rZXksZSl9Z2V0KCl7cmV0dXJuIHN1cGVyLmdldCh0aGlzLl9rZXkpfWNsZWFyKCl7c3VwZXIuY2xlYXIoKX19fSwzNjIyMzkoZSx0LGkpeyJ1c2Ugc3RyaWN0Ijthc3luYyBmdW5jdGlvbiBzKCl7aWYoIXdpbmRvdy51c2VyfHx3aW5kb3cudXNlci5kb19ub3RfdHJhY2spcmV0dXJuIG51bGw7Y29uc3R7Z2V0VHJhY2tlckluc3RhbmNlOmV9PWF3YWl0IFByb21pc2UuYWxsKFtpLmUoNzA2NDQpLGkuZSg2NjM5OSldKS50aGVuKGkuYmluZChpLDE1ODMzMikpO3JldHVybiBlKCl9aS5kKHQse2dldFRyYWNrZXI6KCk9PnN9KX0sNDU2ODYyKGUsdCxpKXsidXNlIHN0cmljdCI7aS5kKHQse3RyYWNrQ2hhcnREcmF3aW5nQ3JlYXRpb246KCk9Pm59KTt2YXIgcz1pKDM2MjIzOSk7ZnVuY3Rpb24gbihlLHQpeygwLHMuZ2V0VHJhY2tlcikoKS50aGVuKChpPT57aSYmaS50cmFja0NoYXJ0RHJhd2luZ0NyZWF0aW9uKGUsdCl9KSl9fSwzMjMwNzkoZSx0LGkpeyJ1c2Ugc3RyaWN0IjtpLmQodCx7dHJhY2tEcmF3aW5nVG9vbFNlbGVjdGVkOigpPT5sfSk7dmFyIHM9aSg4NjA0NDIpLG49aSg2NzgyODUpLHI9aSgzNjIyMzkpLG89aSg4NTYxOTYpLGE9aSgzNTUxMjMpO2Z1bmN0aW9uIGwoZSx0KXt2b2lkIDAhPT10JiZmdW5jdGlvbihlKXtyZXR1cm4oMCxzLmlzU3R1ZHlMaW5lVG9vbE5hbWUpKGUpfHwoMCxzLmlzTGluZVRvb2xOYW1lKShlKXx8KDAsbi50b29sSXNDdXJzb3IpKGUpfHwoMCxuLnRvb2xJc0VyYXNlcikoZSl8fCgwLG4udG9vbElzTWVhc3VyZSkoZSl9KGUpJiYoMCxvLnNob3VsZEFmZmVjdFVzZXIpKCJEcmF3aW5nVG9vbFNlbGVjdGVkIixhLnNwYXJzZVVzZXJzVHJhY2tpbmdDb2VmZmljaWVudCkmJigwLHIuZ2V0VHJhY2tlcikoKS50aGVuKChpPT57aSYmKGU9InBlcmZvcm1hbmNlIj09PWU/Im1hZ2ljIjplLGkudHJhY2tEcmF3aW5nVG9vbFNlbGVjdGVkKGUsdCkpfSkpfX0sNTQ0ODg1KGUsdCxpKXsidXNlIHN0cmljdCI7aS5kKHQse3RyYWNrU3R1ZGllczooKT0+b30pO3ZhciBzPWkoMzIyNDE5KSxuPWkoNzkxNDI3KSxyPWkoMzYyMjM5KTtmdW5jdGlvbiBvKGUsdCxpLG8sYSl7Y29uc3QgbD0hZS5pc1BpbmUoKXx8ZS5pc1N0YW5kYXJkUGluZSgpP2UuZGVzY3JpcHRpb24/P2UubmFtZTplLnNjcmlwdElkUGFydCxjPWUucHJvZHVjdElkLGg9bi5TdHVkeU1ldGFJbmZvLmlzU2NyaXB0U3RyYXRlZ3koZSksZD13aW5kb3cudXNlciYmd2luZG93LnVzZXIucHJvX3BsYW58fCIiLHU9dC5zdHVkaWVzV1YoKS52YWx1ZSgpLmxlbmd0aCt0LmFsbExpbmVUb29scygpLmZpbHRlcihzLmlzU3R1ZHlMaW5lVG9vbCkubGVuZ3RoLHA9dC5jaGFydEFwaSgpLmdldFN0dWR5Q291bnRlcigpLF89ZS5pc1BpbmUoKT9lLnNjcmlwdElkUGFydDplLmlkOygwLHIuZ2V0VHJhY2tlcikoKS50aGVuKChlPT57ZSYmZS50cmFja1N0dWRpZXNBbmFseXRpY3MobCxjLGksaCx1LHAsbz8/bnVsbCxfLGQsSlNPTi5zdHJpbmdpZnkoYSkpfSkpfX0sODM2MDgxKGUsdCxpKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gcygpe3JldHVybiB3aW5kb3cuaXNfYXV0aGVudGljYXRlZD93aW5kb3cudXNlci5wcm9fcGxhbnx8ImZyZWUiOiJ2aXNpdG9yIn1mdW5jdGlvbiBuKCl7cmV0dXJuIHdpbmRvdy5sb2NhbGV9ZnVuY3Rpb24gcigpe3JldHVybiB3aW5kb3cudXNlci5pZD93aW5kb3cudXNlci5pZC50b1N0cmluZygpOm51bGx9ZnVuY3Rpb24gbygpe3JldHVybiBCb29sZWFuKHdpbmRvdy51c2VyLmlzX3Bybyl9ZnVuY3Rpb24gYSgpe3JldHVybiBCb29sZWFuKHdpbmRvdy51c2VyLmlzX3RyaWFsKX1pLmQodCx7Z2V0VXNlcklkOigpPT5yLGdldFVzZXJMb2NhbGU6KCk9Pm4sZ2V0VXNlclBsYW46KCk9PnMsZ2V0VXNlclByb1N0YXR1czooKT0+byxnZXRVc2VyVHJpYWxTdGF0dXM6KCk9PmF9KX0sOTY0MDEyKGUsdCxpKXsidXNlIHN0cmljdCI7aS5kKHQse2RlZmF1bHQ6KCk9PnJ9KTt2YXIgcz1pKDM4NjkzMSk7Y29uc3Qgbj17ZmlsdGVyTmFtZXNNYXA6e3NjcmlwdF90eXBlOiJJbmRpY2F0b3JzIGFuZCBTdHJhdGVnaWVzIiwic2NyaXB0X3R5cGUtaW5kaWNhdG9ycyI6IkluZGljYXRvcnMiLCJzY3JpcHRfdHlwZS1zdHJhdGVnaWVzIjoiU3RyYXRlZ2llcyIsc3RyZWFtOiJBbGwgTWFya2V0cyIsInN0cmVhbS1zdG9ja3MiOiJTdG9ja3MiLCJzdHJlYW0taW5kaWNlcyI6IkluZGljZXMiLAoic3RyZWFtLWNvbW1vZGl0aWVzIjoiQ29tbW9kaXRpZXMiLCJzdHJlYW0tY3VycmVuY2llcyI6IkN1cnJlbmNpZXMiLCJzdHJlYW0tYml0Y29pbiI6IkJpdGNvaW4iLCJpbnRlcnZhbC1hbGwiOiJBbGwgSW50ZXJ2YWxzIiwiaW50ZXJ2YWwtbSI6IlNob3J0IFRlcm0iLCJpbnRlcnZhbC1oIjoiTWVkaXVtIFRlcm0iLCJpbnRlcnZhbC1kd20iOiJMb25nIFRlcm0iLCJzb3J0LXVubW9kZXJhdGVkIjoiVW5tb2RlcmF0ZWQiLCJzb3J0LXRyZW5kaW5nIjoiVHJlbmRpbmciLCJzb3J0LWRpc2N1c3NlZCI6Ik1vc3QgRGlzY3Vzc2VkIiwic29ydC12aWV3ZWQiOiJNb3N0IFZpZXdlZCIsInNvcnQtYWdyZWVkIjoiTW9zdCBBZ3JlZWQiLCJzb3J0LXN1Z2dlc3RlZCI6IlN1Z2dlc3RlZCIsInNvcnQtcmVjZW50IjoiQWxsIElkZWFzIiwidGltZS1kYXkiOiJUb2RheSIsInRpbWUtd2VlayI6IlRoaXMgV2VlayIsInRpbWUtbW9udGgiOiJUaGlzIE1vbnRoIiwidGltZS1hbGwiOiJBbGwgVGltZSIsImJ5LWV2ZXJ5b25lIjoiRXZlcnlvbmUiLCJieS1mb2xsb3dpbmciOiJGb2xsb3dpbmciLCJieS1tZSI6Ik15IElkZWFzIn0sZ29Qcm9GZWF0dXJlc01hcDp7Y3VzdG9tSW50ZXJ2YWxzOiJBZGQgQ3VzdG9tIEludGVydmFsIixpbnRyYWRheVNwcmVhZDoiSW5yYWRheSBTcHJlYWQiLGthZ2lSZW5rbzoiSmFwYW5lc2UgSW50cmFkYXkgQ2hhcnQiLGFsZXJ0czp7cHJlZml4OiJOZXcgQWxlcnRzIExpbWl0Iix3aWRnZXQ6IldpZGdldCIsY2hhcnQ6IkNoYXJ0IEhlYWRlciJ9LG11bHRpcGxlQ2hhcnRzOiJNdWx0aXBsZSBDaGFydHMgTGF5b3V0IixzYXZlZENoYXJ0c0xpbWl0OiJTYXZlIENoYXJ0IExpbWl0IixzdHVkeUxpbWl0OiJTdHVkaWVzIExpbWl0IixtdWx0aXBsZVdhdGNoTGlzdHM6e3ByZWZpeDoiV2F0Y2hsaXN0cyIsbmV3OiJDcmVhdGUgTmV3IExpc3QiLHJlbmFtZToiUmVuYW1lIExpc3QiLHNhdmVBczoiU2F2ZSBMaXN0IEFzIn0saW1wb3J0V2F0Y2hsaXN0OiJXYXRjaGxpc3RzIEltcG9ydCBXYXRjaGxpc3QiLGV4cG9ydFdhdGNobGlzdDoiV2F0Y2hsaXN0cyBFeHBvcnQgV2F0Y2hsaXN0IixCQVRTRXhjaGFuZ2VQb3B1cDoiQkFUUyBFeGNoYW5nZSBQb3B1cCIsRGF0YVF1YWxpdHlQb3B1cDoiRGF0YSBRdWFsaXR5IFBvcHVwIixGcmVlRGVsYXlQb3B1cDoiRnJlZSBEZWxheSBQb3B1cCIscHJvUlRQcm9kdWN0OiJWb2x1bWUgUHJvZmlsZSIsc3R1ZHlPblN0dWR5OiJVbmxpbWl0ZWQgU3R1ZHkgb24gU3R1ZHkifSx0cmFja0ZlYXR1cmU6e3NhdmVkQ2hhcnRzTGltaXQ6ITAsQkFUU0V4Y2hhbmdlUG9wdXA6ITAsRnJlZURlbGF5UG9wdXA6ITAsRGF0YVF1YWxpdHlQb3B1cDohMCxpbnRyYWRheVNwcmVhZDohMCxzdHVkeU9uU3R1ZHk6ITB9LHRyYWNrR29Qcm86ZnVuY3Rpb24oZSx0LGkpe2kmJiF0JiYodD1pLGk9bnVsbCk7dmFyIHI9bi5nb1Byb0ZlYXR1cmVzTWFwW3RdO2lmKHIpe2lmKGkpe2lmKCJzdHJpbmciPT10eXBlb2YgcilyZXR1cm47cj0iezB9IHsxfSIuZm9ybWF0KHIucHJlZml4LHJbaV0pfSgwLHMudHJhY2tFdmVudCkoZSxyKX19fSxyPW59LDczNjA2MyhlLHQsaSl7InVzZSBzdHJpY3QiO2kuZCh0LHt0cmFja0dvUHJvRmVhdHVyZTooKT0+bn0pO3ZhciBzPWkoOTY0MDEyKTtmdW5jdGlvbiBuKGUsdCl7cy5kZWZhdWx0LnRyYWNrR29Qcm8oIkdvcHJvIEZlYXR1cmVzIixlLHQpfX0sNTUxMTkzKGUsdCxpKXsidXNlIHN0cmljdCI7YXN5bmMgZnVuY3Rpb24gcyhlKXtQcm9taXNlLmFsbChbaS5lKDIxODcwKSxpLmUoODQzMDYpLGkuZSgyOTI5NiksaS5lKDUyMzk2KSxpLmUoNjAwNjIpLGkuZSg0NjkwNyksaS5lKDIwMzU0KSxpLmUoMTM0OTIpLGkuZSgzNzc0NiksaS5lKDIzNjI0KSxpLmUoMzI4MTYpLGkuZSgxOTU5NSksaS5lKDE5Nzg3KSxpLmUoMTcwODcpLGkuZSg3MjY2NiksaS5lKDEwMzg1KSxpLmUoNTIwNjUpLGkuZSg2NjA1KSxpLmUoNzQzODEpLGkuZSgxNDYyNSksaS5lKDY1NyksaS5lKDYxODIxKSxpLmUoNjYyNzApLGkuZSg1NTAxMSksaS5lKDcxOTAxKSxpLmUoODA3MzEpLGkuZSg2ODk2NCksaS5lKDI5MTMzKSxpLmUoMTk4MzMpLGkuZSgzMjM4NyksaS5lKDMwNjk5KSxpLmUoNDQ3ODApLGkuZSg4MjIzNyksaS5lKDQ4ODU0KSxpLmUoOTQxODIpLGkuZSgxMTQzNSldKS50aGVuKGkuYmluZChpLDk5NTIxMykpLnRoZW4oKHQ9Pnt0LnJlbmRlck5vdGVzRGlhbG9nKGUpfSkpfWkuZCh0LHtzaG93Tm90ZXNEaWFsb2c6KCk9PnN9KX0sMjM0OTY0KGUsdCxpKXsidXNlIHN0cmljdCI7YXN5bmMgZnVuY3Rpb24gcyhlLHQpe2NvbnN0IHM9YXdhaXQgUHJvbWlzZS5hbGwoW2kuZSgyODgzMSksaS5lKDg0MzA2KSxpLmUoMjkyOTYpLGkuZSg1MjM5NiksaS5lKDYwMDYyKSxpLmUoMjAzNTQpLGkuZSgxMzQ5MiksaS5lKDM3NzQ2KSxpLmUoMTIzODUpLGkuZSg4MTA3MiksaS5lKDk0MjMyKSxpLmUoMTk1OTUpLGkuZSgxOTc4NyksaS5lKDg1NzkpLGkuZSgxNzA4NyksaS5lKDU3MzAwKSxpLmUoMTIwNTEpLGkuZSg4OTU1OCksaS5lKDEwMzY2KSxpLmUoNDA5MTQpLGkuZSg5MDk2MCksaS5lKDg3NzQwKSxpLmUoNzg4OTkpLGkuZSg2NzIxMiksaS5lKDgwOTE1KSxpLmUoMTUzNCksaS5lKDI4MTc2KSxpLmUoMzk2MDkpLGkuZSg1NTIyOSksaS5lKDY1MTAwKSxpLmUoNDI3MDYpXSkudGhlbihpLmJpbmQoaSw1MDYyNzUpKTtyZXR1cm4gcy5zaG93U2ltcGxlRGlhbG9nKGUscy5yZW5hbWVNb2R1bGUsdCl9YXN5bmMgZnVuY3Rpb24gbihlLHQpewpjb25zdCBzPWF3YWl0IFByb21pc2UuYWxsKFtpLmUoMjg4MzEpLGkuZSg4NDMwNiksaS5lKDI5Mjk2KSxpLmUoNTIzOTYpLGkuZSg2MDA2MiksaS5lKDIwMzU0KSxpLmUoMTM0OTIpLGkuZSgzNzc0NiksaS5lKDEyMzg1KSxpLmUoODEwNzIpLGkuZSg5NDIzMiksaS5lKDE5NTk1KSxpLmUoMTk3ODcpLGkuZSg4NTc5KSxpLmUoMTcwODcpLGkuZSg1NzMwMCksaS5lKDEyMDUxKSxpLmUoODk1NTgpLGkuZSgxMDM2NiksaS5lKDQwOTE0KSxpLmUoOTA5NjApLGkuZSg4Nzc0MCksaS5lKDc4ODk5KSxpLmUoNjcyMTIpLGkuZSg4MDkxNSksaS5lKDE1MzQpLGkuZSgyODE3NiksaS5lKDM5NjA5KSxpLmUoNTUyMjkpLGkuZSg2NTEwMCksaS5lKDQyNzA2KV0pLnRoZW4oaS5iaW5kKGksNTA2Mjc1KSk7cmV0dXJuIHMuc2hvd1NpbXBsZURpYWxvZyhlLHMuY29uZmlybU1vZHVsZSx0KX1hc3luYyBmdW5jdGlvbiByKGUsdCl7Y29uc3Qgcz1hd2FpdCBQcm9taXNlLmFsbChbaS5lKDI4ODMxKSxpLmUoODQzMDYpLGkuZSgyOTI5NiksaS5lKDUyMzk2KSxpLmUoNjAwNjIpLGkuZSgyMDM1NCksaS5lKDEzNDkyKSxpLmUoMzc3NDYpLGkuZSgxMjM4NSksaS5lKDgxMDcyKSxpLmUoOTQyMzIpLGkuZSgxOTU5NSksaS5lKDE5Nzg3KSxpLmUoODU3OSksaS5lKDE3MDg3KSxpLmUoNTczMDApLGkuZSgxMjA1MSksaS5lKDg5NTU4KSxpLmUoMTAzNjYpLGkuZSg0MDkxNCksaS5lKDkwOTYwKSxpLmUoODc3NDApLGkuZSg3ODg5OSksaS5lKDY3MjEyKSxpLmUoODA5MTUpLGkuZSgxNTM0KSxpLmUoMjgxNzYpLGkuZSgzOTYwOSksaS5lKDU1MjI5KSxpLmUoNjUxMDApLGkuZSg0MjcwNildKS50aGVuKGkuYmluZChpLDUwNjI3NSkpO3JldHVybiBzLnNob3dTaW1wbGVEaWFsb2coZSxzLndhcm5pbmdNb2R1bGUsdCl9aS5yKHQpLGkuZCh0LHtzaG93Q29uZmlybTooKT0+bixzaG93UmVuYW1lOigpPT5zLHNob3dXYXJuaW5nOigpPT5yfSl9LDg0NDM0NChlLHQsaSl7InVzZSBzdHJpY3QiO2kuZCh0LHtoaWRlU3RhdGVDaGFuZ2U6KCk9PnJ9KTt2YXIgcyxuPWkoOTQ4MzgwKTshZnVuY3Rpb24oZSl7ZS5EcmF3aW5ncz0iZHJhd2luZ3MiLGUuSW5kaWNhdG9ycz0iaW5kaWNhdG9ycyIsZS5Qb3NpdGlvbnM9InBvc2l0aW9ucyIsZS5BbGw9ImFsbCJ9KHN8fChzPXt9KSk7Y29uc3Qgcj1uZXcgbi5EZWxlZ2F0ZX0sNjE0MzgwKGUsdCxpKXsidXNlIHN0cmljdCI7aS5kKHQse1N5bWJvbFNlYXJjaFVJOigpPT5hfSk7dmFyIHM9aSgxMzg2MzgpLG49aSgzNzI5MSkscj1pKDIyNTI5OCksbz1pKDI3OTQwNSk7Y2xhc3MgYXthc3luYyBzaG93KGUpe2lmKG51bGwhPT1hLl9wcm92aWRlcil7Y29uc3QgdD1hd2FpdCBhLl9wcm92aWRlci5nZXRTeW1ib2woKSxpPSgwLG8uZ2V0U3ltYm9sU2VhcmNoQ29tcGxldGVPdmVycmlkZUZ1bmN0aW9uKSgpLHM9YXdhaXQgaSh0LnN5bWJvbCk7cmV0dXJuIGUuc2V0U3ltYm9sP2Uuc2V0U3ltYm9sKHMsInN5bWJvbCBzZWFyY2ggVUkiKTpyLmxpbmtpbmcuc2V0U3ltYm9sQW5kTG9nSW5pdGlhdG9yKHMuc3ltYm9sLCJzeW1ib2wgc2VhcmNoIFVJIikse3N5bWJvbDpzLnN5bWJvbH19aWYoYS5fY3VycmVudFNob3dpbmdJbnN0YW5jZSl0aHJvdyBuZXcgRE9NRXhjZXB0aW9uKCJTeW1ib2xTZWFyY2hVSSBpcyBhbHJlYWR5IHNob3duIiwiSW52YWxpZFN0YXRlRXJyb3IiKTt0cnl7YS5fY3VycmVudFNob3dpbmdJbnN0YW5jZT10aGlzLGEucHJlbG9hZCgpO2NvbnN0IHQ9YXdhaXQgYS5faW1wbGVtZW50YXRpb247cmV0dXJuKDAscy5hc3NlcnQpKG51bGwhPT10KSxuZXcgUHJvbWlzZSgoaT0+e3Quc2hvd0RlZmF1bHRTZWFyY2hEaWFsb2coey4uLmUsb25TZWFyY2hDb21wbGV0ZTplPT57aSh7c3ltYm9sOmUuc3ltYm9sfSl9fSl9KSl9ZmluYWxseXthLl9jdXJyZW50U2hvd2luZ0luc3RhbmNlPW51bGx9fXN0YXRpYyBzZXRQcm92aWRlcihlKXt0aGlzLl9wcm92aWRlcj1lfXN0YXRpYyBwcmVsb2FkKCl7bnVsbD09PXRoaXMuX3Byb3ZpZGVyJiZudWxsPT09dGhpcy5faW1wbGVtZW50YXRpb24mJih0aGlzLl9pbXBsZW1lbnRhdGlvbj0oMCxuLmxvYWROZXdTeW1ib2xTZWFyY2gpKCkpfX1hLl9jdXJyZW50U2hvd2luZ0luc3RhbmNlPW51bGwsYS5fcHJvdmlkZXI9bnVsbCxhLl9pbXBsZW1lbnRhdGlvbj1udWxsfSw2NTQ2MzYoZSx0LGkpeyJ1c2Ugc3RyaWN0IjtpLmQodCx7cnVuT3JTaWduSW46KCk9Pm8scnVuT3JTaWduSW5XaXRoUHJvbW86KCk9PmF9KTt2YXIgcz1pKDkzMDIzMSksbj1pKDYyMTkyNik7Y29uc3Qgcj0oMCxzLmlzRmVhdHVyZXNldEVuYWJsZWQpKCJ3aWRnZXQiKTtmdW5jdGlvbiBvKGUsdCl7cj9lKCk6d2luZG93LnJ1bk9yU2lnbkluKGUsdCl9ZnVuY3Rpb24gYShlLHQsaSl7cj9pKCk6KDAsbi5ydW5PclNpZ25pbldpdGhGZWF0dXJlKShpLHsuLi50LGZlYXR1cmU6ZX0pfX0sNjQzOTAzKGUsdCxpKXsidXNlIHN0cmljdCI7aS5kKHQse3NhZmVTaG9ydE5hbWU6KCk9Pm59KTt2YXIgcz1pKDM0NDEwMyk7ZnVuY3Rpb24gbihlKXt0cnl7cmV0dXJuKDAscy5zaG9ydE5hbWUpKGUpfWNhdGNoKHQpe3JldHVybiBlfX19LDg1MjE0OChlLHQsaSl7InVzZSBzdHJpY3QiO2kuZCh0LHtnZXRDaGFydFN0b3JhZ2U6KCk9Pmd9KTt2YXIgcz1pKDM4NDAxNyksbj1pKDIxNDk4Nykscj1pKDMyMjYwMSksbz1pKDE1Njg1MCksYT1pKDEwMjY1NiksbD1pKDY4OTAyMSksYz1pKDMzOTUxKTtmdW5jdGlvbiBoKCl7Y29uc3QgZT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdsaW5rW3JlbH49ImNoYXJ0LXN0b3JhZ2UiXScpLHQ9bmV3IFVSTChlPy5ocmVmfHwiL2NoYXJ0cy1zdG9yYWdlLyIsbG9jYXRpb24uaHJlZik7cmV0dXJuIHQucGF0aG5hbWUuZW5kc1dpdGgoIi8iKXx8KHQucGF0aG5hbWUrPSIvIiksdH1mdW5jdGlvbiBkKGUpe2NvbnN0e2NoYXJ0czp0PXt9LGNvdW50U291cmNlc1RvdGFsOmk9MCxsaW1pdEJ5dGVzVG90YWw6cz0wLHNpemVCeXRlc1RvdGFsOm49MH09ZSxyPW5ldyBNYXA7Zm9yKGNvbnN0W2UsaV1vZiBPYmplY3QuZW50cmllcyh0KSl7Y29uc3R7c3ltYm9sczp0PXt9fT1pLHM9bmV3IE1hcAo7Zm9yKGNvbnN0W2Use2NvdW50U291cmNlczppLHNpemVCeXRlczpuLGlkczpyfV1vZiBPYmplY3QuZW50cmllcyh0KSlzLnNldChlLHtjb3VudFNvdXJjZXM6aSxzaXplQnl0ZXM6bixpZHM6cn0pO3Iuc2V0KGUscyl9cmV0dXJue2NoYXJ0czpyLGNvdW50U291cmNlc1RvdGFsOmksbGltaXRCeXRlc1RvdGFsOnMsc2l6ZUJ5dGVzVG90YWw6bn19Y29uc3QgdT17c291cmNlczpuZXcgTWFwLGdyb3VwczpuZXcgTWFwfTtjbGFzcyBwe2NvbnN0cnVjdG9yKCl7dGhpcy5fbGFzdFNhdmVSZXF1ZXN0PW51bGwsdGhpcy5fbGFzdFNoYXJlZFRvb2xzTG9hZGluZ1JlcXVlc3Q9bnVsbCx0aGlzLl9sYXN0U2l6ZXNSZXF1ZXN0cz1uZXcgTWFwLHRoaXMuX2FjdGl2ZVNpemVzUmVxdWVzdHM9bmV3IE1hcCx0aGlzLl9yZXF1ZXN0c0NvdW50ZXI9MCx0aGlzLl9sYXlvdXRJZD12b2lkIDB9YXN5bmMgc2F2ZUxpbmVUb29sc0FuZEdyb3VwcyhlLHQsaSxzLGQpe2lmKCFwLl9jaGVja0xheW91dElkKGUpKXRocm93IG5ldyBFcnJvcigiVW5uYW1lZCBjaGFydCBjYW5ub3QgYmUgc2F2ZWQiKTt0aGlzLl9jbGVhblN0YXRlSWZMYXlvdXRJZENoYW5nZWQoZSk7Y29uc3QgdT1gJHtlfS4ke3R9LiR7dGhpcy5fcmVxdWVzdHNDb3VudGVyKyt9YCxtPWBDaGFydFN0b3JhZ2UuU2F2ZS5Ub3RhbGx5UHJvY2Vzc2luZy4ke3V9YCxnPSgwLHIucGVyZk1lYXN1cmVPcGVyYXRpb24pKG0sKGFzeW5jKCk9Pnt0cnl7YXdhaXQgdGhpcy5fbGFzdFNhdmVSZXF1ZXN0fWNhdGNoKGUpe31pZihkPy5hYm9ydGVkKXRocm93KDAsbi5jcmVhdGVBYm9ydEVycm9yKSgpO2NvbnN0IHA9YENoYXJ0U3RvcmFnZS5TYXZlLkdldHRpbmdUb2tlbi4ke3V9YCxtPWF3YWl0KDAsci5wZXJmTWVhc3VyZU9wZXJhdGlvbikocCwoKCk9PigwLGMuZ2V0U3RvcmFnZVRhcmdldCkoZSx0LHMsZCkpKSxnPW5ldyBVUkwobS5wYXRoLGgoKSk7bS5jaGFydElkJiZnLnNlYXJjaFBhcmFtcy5hcHBlbmQoImNoYXJ0X2lkIixtLmNoYXJ0SWQpLGcuc2VhcmNoUGFyYW1zLmFwcGVuZCgibGF5b3V0X2lkIixlKSxnLnNlYXJjaFBhcmFtcy5hcHBlbmQoImp3dCIsbS50b2tlbik7Y29uc3QgZj1gQ2hhcnRTdG9yYWdlLlNhdmUuR2V0dGluZ1Jlc3BvbnNlLiR7dX1gO3RyeXtjb25zdCByPWF3YWl0IHRoaXMuX2ZldGNoKGYsZyx7bWV0aG9kOiJQVVQiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIiwiWC1CVUlMRC1USU1FIjp3aW5kb3cuQlVJTERfVElNRX0sY3JlZGVudGlhbHM6ImluY2x1ZGUiLHNpZ25hbDpkLGJvZHk6KDAsbC5zdHJpbmdpZnlMaW5lVG9vbHNBbmRHcm91cHNEVE8pKGkpfSk7aWYoIXIub2spe2NvbnN0IGU9NDI5PT09ci5zdGF0dXM7dGhyb3cgbmV3IGEuU2F2aW5nTGluZVRvb2xzRXJyb3IoZSxgUmVzcG9uc2Ugc3RhdHVzIGlzIG5vdCBzdWNjZXNzOiAke3Iuc3RhdHVzfWApfWNvbnN0IGM9YXdhaXQgXyhyKTtpZihkPy5hYm9ydGVkKXRocm93KDAsbi5jcmVhdGVBYm9ydEVycm9yKSgpO3JldHVybiBvLnRlbGVtZXRyeS5zZW5kTGluZVRvb2xzU3RvcmFnZVJlcG9ydCgibGluZV90b29sc19zYXZlX3N1Y2Nlc3MiKSx7Y29udGVudDpjLHNhdmVkRHRvOmksbGF5b3V0SWQ6ZSxjaGFydElkOnQsc2hhcmluZ01vZGU6cyxzZXJ2ZXJVcGRhdGVUaW1lOjFlMypjLnNlcnZlclVwZGF0ZVRpbWV9fWNhdGNoKGUpe3Rocm93KDAsbi5pc0Fib3J0RXJyb3IpKGUpfHxvLnRlbGVtZXRyeS5zZW5kTGluZVRvb2xzU3RvcmFnZVJlcG9ydCgibGluZV90b29sc19zYXZlX2Vycm9yIiksZX19KSk7cmV0dXJuIHRoaXMuX2xhc3RTYXZlUmVxdWVzdD1nfWFzeW5jIGxvYWRMaW5lVG9vbHNBbmRHcm91cHMoZSx0LGkpe2lmKCFwLl9jaGVja0xheW91dElkKGUpKXJldHVybiB1O3RoaXMuX2NsZWFuU3RhdGVJZkxheW91dElkQ2hhbmdlZChlKTtjb25zdCBzPWAke2V9LiR7dH0uJHtpLnJlcXVlc3RUeXBlfS4ke3RoaXMuX3JlcXVlc3RzQ291bnRlcisrfWAsbj1gQ2hhcnRTdG9yYWdlLkxvYWQuR2V0dGluZ1Rva2VuLiR7c31gLGE9YXdhaXQoMCxyLnBlcmZNZWFzdXJlT3BlcmF0aW9uKShuLCgoKT0+KDAsYy5nZXRTdG9yYWdlVGFyZ2V0KShlLHQsaS5zaGFyaW5nTW9kZSkpKSxkPW5ldyBVUkwoYGdldC8ke2EucGF0aH1gLGgoKSk7c3dpdGNoKGEuY2hhcnRJZCYmZC5zZWFyY2hQYXJhbXMuYXBwZW5kKCJjaGFydF9pZCIsYS5jaGFydElkKSxkLnNlYXJjaFBhcmFtcy5hcHBlbmQoImxheW91dF9pZCIsZSksZC5zZWFyY2hQYXJhbXMuYXBwZW5kKCJqd3QiLGEudG9rZW4pLGkucmVxdWVzdFR5cGUpe2Nhc2UibWFpblNlcmllc0xpbmVUb29scyI6ZC5zZWFyY2hQYXJhbXMuYXBwZW5kKCJzeW1ib2wiLGkuc3ltYm9sKSwwPT09aS5zaGFyaW5nTW9kZSYmZC5zZWFyY2hQYXJhbXMuYXBwZW5kKCJpbmNsdWRlT3duZXJTb3VyY2UiLGkuc2VyaWVzU291cmNlSWQpLGQuc2VhcmNoUGFyYW1zLmFwcGVuZCgiYnJva2VyTmFtZSIsaS5icm9rZXJOYW1lKTticmVhaztjYXNlInN0dWRpZXNMaW5lVG9vbHMiOmQuc2VhcmNoUGFyYW1zLmFwcGVuZCgiZXhjbHVkZU93bmVyU291cmNlIixpLnNlcmllc1NvdXJjZUlkKTticmVhaztjYXNlImxpbmVUb29sc1dpdGhvdXRTeW1ib2wiOmQuc2VhcmNoUGFyYW1zLmFwcGVuZCgic3ltYm9sIiwiIiksMD09PWkuc2hhcmluZ01vZGUmJmQuc2VhcmNoUGFyYW1zLmFwcGVuZCgiaW5jbHVkZU93bmVyU291cmNlIixpLnNlcmllc1NvdXJjZUlkKX1jb25zdCBfPTAhPT1pLnNoYXJpbmdNb2RlJiYhZC5zZWFyY2hQYXJhbXMuZ2V0KCJzeW1ib2wiKSxtPWFzeW5jKCk9PntpZihfKXRyeXthd2FpdCB0aGlzLl9sYXN0U2hhcmVkVG9vbHNMb2FkaW5nUmVxdWVzdH1jYXRjaChlKXt9cmV0dXJuIHRoaXMuX2ZldGNoRGF0YShgQ2hhcnRTdG9yYWdlLkxvYWQuR2V0dGluZ1Jlc3BvbnNlLiR7c31gLGQse2NyZWRlbnRpYWxzOiJpbmNsdWRlIn0pfTt0cnl7Y29uc3RbZSx0XT1hd2FpdChfP3RoaXMuX2xhc3RTaGFyZWRUb29sc0xvYWRpbmdSZXF1ZXN0PW0oKTptKCkpCjtyZXR1cm4gby50ZWxlbWV0cnkuc2VuZExpbmVUb29sc1N0b3JhZ2VSZXBvcnQoImxpbmVfdG9vbHNfbG9hZF9zdWNjZXNzIiksKDAsbC5wYXJzZUxpbmVUb29sc0FuZEdyb3Vwc0RUTykoZXx8e30sdCl9Y2F0Y2goZSl7dGhyb3cgby50ZWxlbWV0cnkuc2VuZExpbmVUb29sc1N0b3JhZ2VSZXBvcnQoImxpbmVfdG9vbHNfbG9hZF9lcnJvciIpLGV9fWFzeW5jIHJlbW92ZUxpbmVUb29scyhlLHQsaSxzKXtpZighcC5fY2hlY2tMYXlvdXRJZChlKSlyZXR1cm4hMTt0aGlzLl9jbGVhblN0YXRlSWZMYXlvdXRJZENoYW5nZWQoZSk7Y29uc3Qgbj1gJHtlfS4ke3R9LiR7dGhpcy5fcmVxdWVzdHNDb3VudGVyKyt9YCxhPWBDaGFydFN0b3JhZ2UuUmVtb3ZlLkdldHRpbmdUb2tlbi4ke259YCxsPWF3YWl0KDAsci5wZXJmTWVhc3VyZU9wZXJhdGlvbikoYSwoKCk9PigwLGMuZ2V0U3RvcmFnZVRhcmdldCkoZSx0LGkpKSksZD1uZXcgVVJMKGwucGF0aCxoKCkpO2wuY2hhcnRJZCYmZC5zZWFyY2hQYXJhbXMuYXBwZW5kKCJjaGFydF9pZCIsbC5jaGFydElkKSxkLnNlYXJjaFBhcmFtcy5hcHBlbmQoImxheW91dF9pZCIsZSksZC5zZWFyY2hQYXJhbXMuYXBwZW5kKCJzeW1ib2wiLHMpLGQuc2VhcmNoUGFyYW1zLmFwcGVuZCgiand0IixsLnRva2VuKTt0cnl7cmV0dXJuIGF3YWl0IHRoaXMuX2ZldGNoRGF0YShgQ2hhcnRTdG9yYWdlLlJlbW92ZS5HZXR0aW5nUmVzcG9uc2UuJHtufWAsZCx7bWV0aG9kOiJERUxFVEUiLGNyZWRlbnRpYWxzOiJpbmNsdWRlIn0pLG8udGVsZW1ldHJ5LnNlbmRMaW5lVG9vbHNTdG9yYWdlUmVwb3J0KCJsaW5lX3Rvb2xzX3JlbW92ZV9ieV9zeW1ib2xfc3VjY2VzcyIpLCEwfWNhdGNoKGUpe3Rocm93IG8udGVsZW1ldHJ5LnNlbmRMaW5lVG9vbHNTdG9yYWdlUmVwb3J0KCJsaW5lX3Rvb2xzX3JlbW92ZV9ieV9zeW1ib2xfZXJyb3IiKSxlfX1hc3luYyBnZXRMYXlvdXREcmF3aW5nc1NpemVJbmZvKGUsdCl7cmV0dXJuIHAuX2NoZWNrTGF5b3V0SWQoZSk/KHRoaXMuX2NsZWFuU3RhdGVJZkxheW91dElkQ2hhbmdlZChlKSx0aGlzLl9lbnF1ZXVlU2l6ZXNSZXF1ZXN0KCJsYXlvdXQiLGBsYXlvdXQuJHtlfS4ke3R9YCwoYXN5bmMoKT0+e2NvbnN0IGk9YCR7ZX0uJHt0fS4ke3RoaXMuX3JlcXVlc3RzQ291bnRlcisrfWAscz1gQ2hhcnRTdG9yYWdlLkdldFNpemVzLkdldHRpbmdUb2tlbi4ke2l9YCxuPWF3YWl0KDAsci5wZXJmTWVhc3VyZU9wZXJhdGlvbikocywoKCk9PigwLGMuZ2V0U3RvcmFnZVRhcmdldCkoZSx0LDApKSksYT1uZXcgVVJMKGBsYXlvdXQvJHtlfS9zaXplc2AsaCgpKTthLnNlYXJjaFBhcmFtcy5hcHBlbmQoImxheW91dF9pZCIsZSksYS5zZWFyY2hQYXJhbXMuYXBwZW5kKCJqd3QiLG4udG9rZW4pO3RyeXtjb25zdFtlXT1hd2FpdCB0aGlzLl9mZXRjaERhdGEoYENoYXJ0U3RvcmFnZS5HZXRTaXplcy5HZXR0aW5nUmVzcG9uc2UuJHtpfWAsYSx7Y3JlZGVudGlhbHM6ImluY2x1ZGUifSk7cmV0dXJuIG8udGVsZW1ldHJ5LnNlbmRMaW5lVG9vbHNTdG9yYWdlUmVwb3J0KCJsaW5lX3Rvb2xzX3NpemVfaW5mb19zdWNjZXNzIiksZChlfHx7fSl9Y2F0Y2goZSl7dGhyb3cgby50ZWxlbWV0cnkuc2VuZExpbmVUb29sc1N0b3JhZ2VSZXBvcnQoImxpbmVfdG9vbHNfc2l6ZV9pbmZvX2Vycm9yIiksZX19KSkpOntjaGFydHM6bmV3IE1hcCxjb3VudFNvdXJjZXNUb3RhbDowLGxpbWl0Qnl0ZXNUb3RhbDowLHNpemVCeXRlc1RvdGFsOjB9fWFzeW5jIGdldFVzZXJHbG9iYWxEcmF3aW5nc1NpemVJbmZvKGUpe3JldHVybiBwLl9jaGVja0xheW91dElkKGUpPyh0aGlzLl9jbGVhblN0YXRlSWZMYXlvdXRJZENoYW5nZWQoZSksdGhpcy5fZW5xdWV1ZVNpemVzUmVxdWVzdCgidXNlciIsYHVzZXIuJHtlfWAsKGFzeW5jKCk9Pntjb25zdCB0PXRoaXMuX3JlcXVlc3RzQ291bnRlcisrLGk9YXdhaXQoMCxyLnBlcmZNZWFzdXJlT3BlcmF0aW9uKShgQ2hhcnRTdG9yYWdlLkdldEdsb2JhbFNpemVzLkdldHRpbmdUb2tlbi4ke3R9YCwoKCk9PigwLGMuZ2V0U3RvcmFnZVRhcmdldCkoZSwiIiwyKSkpLHM9bmV3IFVSTCgidXNlci9zaXplcyIsaCgpKTtzLnNlYXJjaFBhcmFtcy5hcHBlbmQoImxheW91dF9pZCIsZSkscy5zZWFyY2hQYXJhbXMuYXBwZW5kKCJqd3QiLGkudG9rZW4pO3RyeXtjb25zdFtlXT1hd2FpdCB0aGlzLl9mZXRjaERhdGEoYENoYXJ0U3RvcmFnZS5HZXRHbG9iYWxTaXplcy5HZXR0aW5nUmVzcG9uc2UuJHt0fWAscyx7Y3JlZGVudGlhbHM6ImluY2x1ZGUifSk7cmV0dXJuIG8udGVsZW1ldHJ5LnNlbmRMaW5lVG9vbHNTdG9yYWdlUmVwb3J0KCJnbG9iYWxfbGluZV90b29sc19zaXplX2luZm9fc3VjY2VzcyIpLGQoZXx8e30pfWNhdGNoKGUpe3Rocm93IG8udGVsZW1ldHJ5LnNlbmRMaW5lVG9vbHNTdG9yYWdlUmVwb3J0KCJnbG9iYWxfbGluZV90b29sc19zaXplX2luZm9fZXJyb3IiKSxlfX0pKSk6e2NoYXJ0czpuZXcgTWFwLGNvdW50U291cmNlc1RvdGFsOjAsbGltaXRCeXRlc1RvdGFsOjAsc2l6ZUJ5dGVzVG90YWw6MH19YXN5bmMgX2ZldGNoRGF0YShlLHQsaSl7Y29uc3Qgcz1hd2FpdCB0aGlzLl9mZXRjaChlLHQsaSk7aWYoIXMub2spdGhyb3cgbmV3IEVycm9yKCJSZXNwb25zZSBzdGF0dXMgaXMgbm90IHN1Y2Nlc3MiKTtyZXR1cm5bYXdhaXQgXyhzKSxzLmhlYWRlcnMuZ2V0KCJYLVJlcXVlc3QtSWQiKV19X2ZldGNoKGUsdCxpKXtyZXR1cm4oMCxyLnBlcmZNZWFzdXJlT3BlcmF0aW9uKShlLCgoKT0+KDAscy5mZXRjaCkodC50b1N0cmluZygpLGkpKSl9X2VucXVldWVTaXplc1JlcXVlc3QoZSx0LGkpe2NvbnN0IHM9dGhpcy5fYWN0aXZlU2l6ZXNSZXF1ZXN0cy5nZXQodCk7aWYodm9pZCAwIT09cylyZXR1cm4gcztjb25zdCBuPXRoaXMuX2xhc3RTaXplc1JlcXVlc3RzLmdldChlKSxyPShhc3luYygpPT57dHJ5e2F3YWl0IG59Y2F0Y2goZSl7fXJldHVybiBpKCl9KSgpO3RoaXMuX2xhc3RTaXplc1JlcXVlc3RzLnNldChlLHIpLHRoaXMuX2FjdGl2ZVNpemVzUmVxdWVzdHMuc2V0KHQscik7Y29uc3Qgbz0oKT0+ewp0aGlzLl9hY3RpdmVTaXplc1JlcXVlc3RzLmdldCh0KT09PXImJnRoaXMuX2FjdGl2ZVNpemVzUmVxdWVzdHMuZGVsZXRlKHQpfTtyZXR1cm4gci50aGVuKG8sbykscn1fY2xlYW5TdGF0ZUlmTGF5b3V0SWRDaGFuZ2VkKGUpe3RoaXMuX2xheW91dElkIT09ZSYmKHRoaXMuX2xheW91dElkPWUsdGhpcy5fbGFzdFNhdmVSZXF1ZXN0PW51bGwsdGhpcy5fbGFzdFNoYXJlZFRvb2xzTG9hZGluZ1JlcXVlc3Q9bnVsbCx0aGlzLl9sYXN0U2l6ZXNSZXF1ZXN0cy5jbGVhcigpLHRoaXMuX2FjdGl2ZVNpemVzUmVxdWVzdHMuY2xlYXIoKSl9c3RhdGljIF9jaGVja0xheW91dElkKGUpe3JldHVybiB2b2lkIDAhPT1lJiZlLmxlbmd0aD4wfX1hc3luYyBmdW5jdGlvbiBfKGUpe2NvbnN0IHQ9YXdhaXQgZS5qc29uKCk7aWYobnVsbD09PXQpdGhyb3cgbmV3IEVycm9yKCJCb2R5IGlzIG51bGwiKTtpZighdC5zdWNjZXNzKXRocm93IG5ldyBFcnJvcigiUmVzcG9uc2UgaXMgbm90IHN1Y2Nlc3MiKTtyZXR1cm4gdC5wYXlsb2FkfWxldCBtPW51bGw7YXN5bmMgZnVuY3Rpb24gZygpe3JldHVybiBudWxsPT09bSYmKG09bmV3IHApLG19fSw2ODkwMjEoZSx0LGkpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBzKGUpe2NvbnN0IHQ9e307cmV0dXJuIGUuc291cmNlcyYmKHQuc291cmNlcz17fSxlLnNvdXJjZXMuZm9yRWFjaCgoKGUsaSk9Pnt0LnNvdXJjZXNbaV09ZX0pKSksdC5kcmF3aW5nX2dyb3Vwcz17fSxlLmdyb3Vwcy5mb3JFYWNoKCgoZSxpKT0+e3QuZHJhd2luZ19ncm91cHNbaV09ZX0pKSx0LmNsaWVudElkPWUuY2xpZW50SWQsSlNPTi5zdHJpbmdpZnkodCl9ZnVuY3Rpb24gbihlLHQpe2NvbnN0IGk9e3NvdXJjZXM6bnVsbCxncm91cHM6bmV3IE1hcH07aWYobnVsbCE9PWUuc291cmNlcyl7aS5zb3VyY2VzPW5ldyBNYXA7Zm9yKGNvbnN0IHQgaW4gZS5zb3VyY2VzfHx7fSl7Y29uc3Qgcz1lLnNvdXJjZXNbdF07aS5zb3VyY2VzLnNldCh0LHMpfX1mb3IoY29uc3QgdCBpbiBlLmRyYXdpbmdfZ3JvdXBzfHx7fSl7Y29uc3Qgcz1lLmRyYXdpbmdfZ3JvdXBzW3RdO2kuZ3JvdXBzLnNldCh0LHMpfXJldHVybiBudWxsIT09dCYmKGkuc2VydmVyUmVxdWVzdElkPXQpLGkuY2xpZW50SWQ9ZS5jbGllbnRJZCxpLnN5bWJvbD1lLnN5bWJvbCxpfWkuZCh0LHtwYXJzZUxpbmVUb29sc0FuZEdyb3Vwc0RUTzooKT0+bixzdHJpbmdpZnlMaW5lVG9vbHNBbmRHcm91cHNEVE86KCk9PnN9KX0sMTAyNjU2KGUsdCxpKXsidXNlIHN0cmljdCI7aS5kKHQse1NhdmluZ0xpbmVUb29sc0Vycm9yOigpPT5zfSk7Y2xhc3MgcyBleHRlbmRzIEVycm9ye2NvbnN0cnVjdG9yKGUsdCl7c3VwZXIodCksdGhpcy5zaG91bGRCZUNvb2xlZD1lfX1FcnJvcn0sMzM5NTEoZSx0LGkpeyJ1c2Ugc3RyaWN0IjtpLmQodCx7Z2V0U3RvcmFnZVRhcmdldDooKT0+bCxnbG9iYWxseVNoYXJlZENoYXJ0SWQ6KCk9PmEsc2hhcmVkQ2hhcnRJZDooKT0+b30pO3ZhciBzPWkoMzg0MDE3KSxuPWkoMTU2ODUwKSxyPWkoMjE0OTg3KTtjb25zdCBvPSJfc2hhcmVkIixhPSJVc2VyU3luYyI7YXN5bmMgZnVuY3Rpb24gbChlLHQsaSxhKXt0cnl7Y29uc3QgbD1uZXcgVVJMKCIvY2hhcnQtdG9rZW4vIixsb2NhdGlvbi5ocmVmKTtsLnNlYXJjaFBhcmFtcy5hcHBlbmQoImltYWdlX3VybCIsZSksbC5zZWFyY2hQYXJhbXMuYXBwZW5kKCJ1c2VyX2lkIixTdHJpbmcod2luZG93LnVzZXIuaWR8fC0xKSk7Y29uc3QgYz1hd2FpdCgwLHMuZmV0Y2gpKGwudG9TdHJpbmcoKSx7c2lnbmFsOmF9KTtpZighYy5vayl0aHJvdyBuZXcgRXJyb3IoYEh0dHAgcmVzcG9uc2UgaXMgbm90IG9rOiAke2Muc3RhdHVzfX1gKTtjb25zdCBoPWF3YWl0IGMuanNvbigpO2lmKG4udGVsZW1ldHJ5LnNlbmRMaW5lVG9vbHNTdG9yYWdlUmVwb3J0KCJsaW5lX3Rvb2xzX3Rva2VuX3JlcXVlc3Rfc3VjY2VzcyIpLGE/LmFib3J0ZWQpdGhyb3coMCxyLmNyZWF0ZUFib3J0RXJyb3IpKCk7Y29uc3QgZD0yPT09aT92b2lkIDA6MT09PWk/bzp0O3JldHVybnt0b2tlbjpoLnRva2VuLGNoYXJ0SWQ6ZCxwYXRoOjI9PT1pPyJ1c2VyL3NvdXJjZXMiOmBsYXlvdXQvJHtlfS9zb3VyY2VzYH19Y2F0Y2goZSl7dGhyb3coMCxyLmlzQWJvcnRFcnJvcikoZSl8fG4udGVsZW1ldHJ5LnNlbmRMaW5lVG9vbHNTdG9yYWdlUmVwb3J0KCJsaW5lX3Rvb2xzX3Rva2VuX3JlcXVlc3RfZXJyb3IiKSxlfX19LDMwNzYxMChlLHQsaSl7InVzZSBzdHJpY3QiO2kuZCh0LHtMaW5lVG9vbHNTeW5jaHJvbml6ZXI6KCk9PlIsbGluZVRvb2xEVE86KCk9Pkl9KTt2YXIgcz1pKDU0Nzg1MSksbj1pKDQ3NjY0KSxyPWkoMTM4NjM4KSxvPWkoMjIxMDYxKSxhPWkoMTc5NzcxKSxsPWkoMzIyNjAxKSxjPWkoMzY4MTEwKSxoPWkoMTAyNjU2KSxkPWkoMzE4OTc0KSx1PWkoODUyMTQ4KSxwPWkoNjAxODQxKSxfPWkoNzY4NzYwKTtjb25zdCBtPSgwLG8uZ2V0TG9nZ2VyKSgiQ2hhcnQuTGlua0tleVJlc29sdmVyIik7Y2xhc3MgZ3tjb25zdHJ1Y3RvcihlLHQsaSl7dGhpcy5fcGVuZGluZ1JlcXVlc3RzPW5ldyBNYXAsdGhpcy5fc3RhcnRSZXF1ZXN0aW5nRGVib3VuY2VkPSgwLHMuZGVmYXVsdCkoKCgpPT50aGlzLl9zdGFydE5leHRSZXF1ZXN0KCkpLDUwMCksdGhpcy5fbGF5b3V0SWQ9ZSx0aGlzLl9jaGFydElkPXQsdGhpcy5fb3duZXJTb3VyY2VJZD1pfXJlc29sdmVMaW5rS2V5KGUsdCxpKXtjb25zdCBzPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIEpTT04uc3RyaW5naWZ5KFtlLHRdKX0oZSxpKSxuPXRoaXMuX3BlbmRpbmdSZXF1ZXN0cy5nZXQocyk/P25ldyBNYXA7aWYobi5oYXModCkpcmV0dXJuIG4uZ2V0KHQpLnByb21pc2U7Y29uc3Qgcj0oMCxfLmNyZWF0ZURlZmVycmVkUHJvbWlzZSkoKTtyZXR1cm4gbi5zZXQodCxyKSx0aGlzLl9wZW5kaW5nUmVxdWVzdHMuc2V0KHMsbiksdGhpcy5fc3RhcnRSZXF1ZXN0aW5nRGVib3VuY2VkKCksci5wcm9taXNlfWFzeW5jIF9zdGFydE5leHRSZXF1ZXN0KCl7aWYoMD09PXRoaXMuX3BlbmRpbmdSZXF1ZXN0cy5zaXplKXJldHVybjtjb25zdCBlPWF3YWl0KDAsCnUuZ2V0Q2hhcnRTdG9yYWdlKSgpLHQ9dGhpcy5fcGVuZGluZ1JlcXVlc3RzLmVudHJpZXMoKS5uZXh0KCkudmFsdWUse3N5bWJvbDppLGJyb2tlck5hbWU6c309ZnVuY3Rpb24oZSl7Y29uc3QgdD1KU09OLnBhcnNlKGUpO3JldHVybntzeW1ib2w6dFswXSxicm9rZXJOYW1lOnRbMV19fSh0WzBdKSxuPXRbMV0scj17cmVxdWVzdFR5cGU6Im1haW5TZXJpZXNMaW5lVG9vbHMiLHNlcmllc1NvdXJjZUlkOnRoaXMuX293bmVyU291cmNlSWQsc3ltYm9sOmksYnJva2VyTmFtZTpzLHNoYXJpbmdNb2RlOjB9O3RyeXtjb25zdCB0PWF3YWl0IGUubG9hZExpbmVUb29sc0FuZEdyb3Vwcyh0aGlzLl9sYXlvdXRJZCx0aGlzLl9jaGFydElkLHIsaSk7bnVsbCE9PXQmJm51bGwhPT10LnNvdXJjZXMmJih0LnNvdXJjZXMuZm9yRWFjaCgoKGUsdCk9PntpZihudWxsPT09ZSlyZXR1cm47Y29uc3QgaT1lLnN0YXRlLmxpbmtLZXk7aWYoIWkpcmV0dXJuO2NvbnN0IHM9bi5nZXQoaSk7cz8ucmVzb2x2ZShlLmlkKSxuLmRlbGV0ZShpKX0pKSx0LnNlcnZlclJlcXVlc3RJZCYmY29uc29sZS5sb2coYFBST0NFU1NFRDoke3Quc2VydmVyUmVxdWVzdElkfWApKX1jYXRjaChlKXttLmxvZ0Vycm9yKGBFcnJvciByZXF1ZXN0aW5nIGxpbmUgdG9vbHM6ICR7ZX1gKX1uLmZvckVhY2goKGU9PntlLnJlc29sdmUobnVsbCl9KSksdGhpcy5fcGVuZGluZ1JlcXVlc3RzLmRlbGV0ZSh0WzBdKSxhd2FpdCB0aGlzLl9zdGFydE5leHRSZXF1ZXN0KCl9fXZhciBmPWkoNDY3NTM5KSxTPWkoMjU0ODM1KSx2PWkoNjkyNjQpLHk9aSgyMTQ5ODcpLGI9aSg4NjA0NDIpLHc9aSg2MDU4NzcpLEM9aSgzMDUyNzcpO2NvbnN0IFA9WzAsMSwyXSxUPSgwLG8uZ2V0TG9nZ2VyKSgiTGluZVRvb2xzU3luY2hyb25pemVyIik7ZnVuY3Rpb24geChlKXtyZXR1cm57bGluZXM6ZS5zb3VyY2VzQnlHcm91cCgpLmxpbmVTb3VyY2VzRm9yQWxsU3ltYm9scygpLm1hcCgoZT0+KHtpZDplLmlkKCksek9yZGVyOmUuem9yZGVyKCl9KSkpfX1mdW5jdGlvbiBNKGUpe3JldHVybntpZDplLmlkLHRvb2xzOmUubGluZVRvb2xzKCkubWFwKChlPT5lLmlkKCkpKX19ZnVuY3Rpb24gSShlLHQpe2NvbnN0IGk9dC5saW5lVG9vbHNHcm91cE1vZGVsKCkuZ3JvdXBGb3JMaW5lVG9vbChlKSxzPXtpZDplLmlkKCksb3duZXJTb3VyY2U6KDAsci5lbnN1cmVOb3ROdWxsKShlLm93bmVyU291cmNlKCkpLmlkKCksc3RhdGU6ZS5zdGF0ZSghMSl9O3JldHVybiBlLmJvdW5kVG9TeW1ib2woKSYmKHMuc3ltYm9sPWUuc3ltYm9sKCkpLHMuc2VydmVyVXBkYXRlVGltZT1lLnNlcnZlclVwZGF0ZVRpbWUoKT8/dm9pZCAwLHMuY3VycmVuY3lJZD1lLnByb3BlcnRpZXMoKS5jaGlsZHMoKS5jdXJyZW5jeUlkLnZhbHVlKCkscy51bml0SWQ9ZS5wcm9wZXJ0aWVzKCkuY2hpbGRzKCkudW5pdElkLnZhbHVlKCksbnVsbCE9PWkmJihzLmdyb3VwSWQ9aS5pZCksc31mdW5jdGlvbiBMKGUsdCl7cmV0dXJue2lkOmUuaWQsbmFtZTplLm5hbWUoKS52YWx1ZSgpLHN5bWJvbDplLnN5bWJvbCgpLGN1cnJlbmN5SWQ6ZS5jdXJyZW5jeUlkKCksdW5pdElkOmUudW5pdElkKCl9fWZ1bmN0aW9uIEEoZSx0LGkpe2xldCBzPSExO2NvbnN0IG49bmV3IE1hcCxyPW5ldyBTZXQoaT8ua2V5cygpKTtyZXR1cm4gZS5mb3JFYWNoKCgoZSxvKT0+e2NvbnN0IGE9IWl8fGkuaGFzKG8pO2UudGltZXN0YW1wPnR8fCFhPyhuLnNldChvLGUpLHIuZGVsZXRlKG8pKTpzfHw9ISFlLnNhdmVkVG9DaGFydENvbnRlbnR9KSkse3N0aWxsSW52YWxpZGF0ZWQ6bix2YWxpZGF0ZWQ6QXJyYXkuZnJvbShyKSxjb250YWluUmVzYXZlZEZyb21Db250ZW50OnN9fXZhciBrO2Z1bmN0aW9uIEQoZSl7cmV0dXJuKDAsYy5pc0xpbmVUb29sKShlKXx8KDAsUy5pc1N0dWR5TGluZVRvb2xTdHViKShlKX0hZnVuY3Rpb24oZSl7ZVtlLkF1dG9zYXZlRGVib3VuY2U9NTAwXT0iQXV0b3NhdmVEZWJvdW5jZSIsZVtlLkJhbkNvb2xpbmdUaW1lb3V0PTNlNV09IkJhbkNvb2xpbmdUaW1lb3V0In0oa3x8KGs9e30pKTtjb25zdCBFPS8oXHcrKVwvKFx3KylcLyhcdyspLztjbGFzcyBSe2NvbnN0cnVjdG9yKGUsdCxpLG4pe3RoaXMuX2ludmFsaWRhdGVkTGluZVRvb2xzQW5kU3R1ZHlTdHVicz1uZXcgTWFwLHRoaXMuX21pZ3JhdGVkU2hhcmVkTGluZVRvb2xzRHVwbGljYXRlcz1uZXcgU2V0LHRoaXMuX2FsbExpbmVUb29sc0FuZFN0dWR5U3R1YnM9bmV3IE1hcCx0aGlzLl9vcmlnaW5hbExpbmVUb29sU2hhcmluZ01vZGU9bmV3IE1hcCx0aGlzLl9pbnZhbGlkYXRlZExpbmVUb29sR3JvdXBzPW5ldyBNYXAsdGhpcy5fb3JpZ2luYWxMaW5lVG9vbEdyb3Vwc1NoYXJpbmdNb2RlPW5ldyBNYXAsdGhpcy5faWdub3JlSW52YWxpZGF0aW5nRXZlbnRzRGVwdGg9MCx0aGlzLl9zYXZlQ2hhcnRTZXJ2aWNlPW51bGwsdGhpcy5fZGVib3VuY2VkU2F2ZT0oMCxzLmRlZmF1bHQpKCgoKT0+dGhpcy5fc2F2ZUludmFsaWRhdGVkSWZSZXF1aXJlZCghMSkpLDUwMCksdGhpcy5fY3VycmVudGx5TG9hZGVkU3ltYm9sPW5ldyBNYXAsdGhpcy5fbGlua0tleVJlc29sdmVyPW51bGwsdGhpcy5fYnJva2VyTmFtZT0iIix0aGlzLl9sYXN0QmFuVGltZT1udWxsLHRoaXMuX2ludmFsaWRhdGVWaWFTeW5jPTAsdGhpcy5fc2F2aW5nQWJvcnRDb250cm9sbGVyc0J5U2hhcmluZ01vZGU9bmV3IE1hcCx0aGlzLl90cnlUb1NhdmVDaGFydFN0YXRlTWlncmF0aW9uc09uY2U9ITAsdGhpcy5fcGVuZGluZ0xvYWRSZXF1ZXN0c0NvdW50ZXI9MCx0aGlzLl9wZW5kaW5nU2F2ZVJlcXVlc3RzQ291bnRlcj0wLHRoaXMuX21haW5TZXJpZXNEcmF3aW5nc1JlYWR5PVsiIixQcm9taXNlLnJlc29sdmUoKV0sdGhpcy5fbmV4dFJlc29sdmVkU3ltYm9sRGVmZXJyZWRQcm9taXNlcz1bXSx0aGlzLl9kZXN0cm95ZWQ9ITEsdGhpcy5fb25DaGFuZ2VBdXRvc2F2ZT1lPT57ZSYmdGhpcy5fZGVib3VuY2VkU2F2ZSgpfSx0aGlzLl9vcmlnaW49ZSx0aGlzLl9jaGFydE1vZGVsPXQsdGhpcy5fb3B0aW9ucz1pLHRoaXMuX2hhc0NoYW5nZXM9biwKdGhpcy5fYXNzaWduQWxsTGluZVRvb2xzKHRoaXMuX2NoYXJ0TW9kZWwucGFuZXMoKSksdGhpcy5fY2hhcnRNb2RlbC5wYW5lc0NvbGxlY3Rpb25DaGFuZ2VkKCkuc3Vic2NyaWJlKHRoaXMsdGhpcy5fcHJvY2Vzc1BhbmVzQ29sbGVjdGlvbkNoYW5nZWQuYmluZCh0aGlzKSksdGhpcy5fY2hhcnRNb2RlbC5kYXRhU291cmNlQ29sbGVjdGlvbkNoYW5nZWQoKS5zdWJzY3JpYmUodGhpcyx0aGlzLl9wcm9jZXNzRGF0YVNvdXJjZUNvbGxlY3Rpb25DaGFuZ2VkLmJpbmQodGhpcykpLHRoaXMuX2NoYXJ0TW9kZWwubGluZVRvb2xzR3JvdXBNb2RlbCgpLm9uQ2hhbmdlZCgpLnN1YnNjcmliZSh0aGlzLHRoaXMuX3Byb2Nlc3NMaW5lVG9vbHNHcm91cE1vZGVsQ2hhbmdlZC5iaW5kKHRoaXMpKSx0aGlzLl9jaGFydE1vZGVsLm1haW5TZXJpZXMoKS5kYXRhRXZlbnRzKCkuc3ltYm9sUmVzb2x2ZWQoKS5zdWJzY3JpYmUodGhpcyx0aGlzLl9vblN5bWJvbFJlc29sdmVkLmJpbmQodGhpcykpLHRoaXMuX2NoYXJ0TW9kZWwuc291cmNlUHJvcGVydGllc0NoYW5nZWQoKS5zdWJzY3JpYmUodGhpcyx0aGlzLl9wcm9jZXNzUHJvcGVydGllc0NoYW5nZWQuYmluZCh0aGlzKSksdGhpcy5fY2hhcnRNb2RlbC5zb3VyY2VaT3JkZXJDaGFuZ2VkKCkuc3Vic2NyaWJlKHRoaXMsdGhpcy5fcHJvY2Vzc1Byb3BlcnRpZXNDaGFuZ2VkLmJpbmQodGhpcykpLHRoaXMuX2xpbmtLZXlSZXNvbHZlcj1uZXcgZyhlLmxheW91dElkLGUuY2hhcnRJZCx0Lm1haW5TZXJpZXMoKS5pZCgpKSx0aGlzLl9icm9rZXJJZFNlc3Npb249bmV3IHYuRmVhdHVyZVRvZ2dsZVdhdGNoZWRWYWx1ZSgiYnJva2VyX2lkX3Nlc3Npb24iLCExKSx0aGlzLl9hdXRvZml4Wk9yZGVyPW5ldyB2LkZlYXR1cmVUb2dnbGVXYXRjaGVkVmFsdWUoImF1dG9maXhfbGluZV90b29sc196b3JkZXIiLCExKTtjb25zdCByPXRoaXMuX2xvYWRBbmRNZXJnZUxpbmVUb29sc1dpdGhvdXRTeW1ib2woMiwhMSksbz10aGlzLl9sb2FkQW5kTWVyZ2VMaW5lVG9vbHNXaXRob3V0U3ltYm9sKDEsITEpO3RoaXMuX2xvYWRBbmRNZXJnZUxpbmVUb29sc1dpdGhvdXRTeW1ib2woMCwhMSxbcixvXSksdGhpcy5fbG9hZEFuZE1lcmdlTGluZVRvb2xzT25TdHVkaWVzKDAsITEpLCgwLGQub25XaWRnZXQpKCl8fHdpbmRvdy5sb2dpblN0YXRlQ2hhbmdlLnN1YnNjcmliZSh0aGlzLCgoKT0+e3dpbmRvdy5pc19hdXRoZW50aWNhdGVkJiZ0aGlzLnJlbG9hZEFsbExpbmVUb29scygpfSkpfWRlc3Ryb3koKXt0aGlzLl9kZWJvdW5jZWRTYXZlLmNhbmNlbCgpLCgwLGQub25XaWRnZXQpKCl8fHdpbmRvdy5sb2dpblN0YXRlQ2hhbmdlLnVuc3Vic2NyaWJlQWxsKHRoaXMpLHRoaXMuX2Jyb2tlcklkU2Vzc2lvbi5kZXN0cm95KCksdGhpcy5fY2hhcnRNb2RlbC5tYWluU2VyaWVzKCkuZGF0YUV2ZW50cygpLnN5bWJvbFJlc29sdmVkKCkudW5zdWJzY3JpYmVBbGwodGhpcyksdGhpcy5fY2hhcnRNb2RlbC5zb3VyY2VQcm9wZXJ0aWVzQ2hhbmdlZCgpLnVuc3Vic2NyaWJlQWxsKHRoaXMpLHRoaXMuX2NoYXJ0TW9kZWwuc291cmNlWk9yZGVyQ2hhbmdlZCgpLnVuc3Vic2NyaWJlQWxsKHRoaXMpLHRoaXMuX2NoYXJ0TW9kZWwucGFuZXNDb2xsZWN0aW9uQ2hhbmdlZCgpLnVuc3Vic2NyaWJlQWxsKHRoaXMpLHRoaXMuX2NoYXJ0TW9kZWwuZGF0YVNvdXJjZUNvbGxlY3Rpb25DaGFuZ2VkKCkudW5zdWJzY3JpYmVBbGwodGhpcyksdGhpcy5fY2hhcnRNb2RlbC5saW5lVG9vbHNHcm91cE1vZGVsKCkub25DaGFuZ2VkKCkudW5zdWJzY3JpYmVBbGwodGhpcyksdGhpcy5fc2F2ZUNoYXJ0U2VydmljZT8uYXV0b1NhdmVFbmFibGVkKCkudW5zdWJzY3JpYmUodGhpcy5fb25DaGFuZ2VBdXRvc2F2ZSksdGhpcy5fc2F2ZUNoYXJ0U2VydmljZT8uY2hhcnRTYXZlZCgpLnVuc3Vic2NyaWJlQWxsKHRoaXMpLHRoaXMuX2Rlc3Ryb3llZD0hMH1yZWxvYWRBbGxMaW5lVG9vbHMoKXt0aGlzLl9jdXJyZW50bHlMb2FkZWRTeW1ib2wuY2xlYXIoKSxQLmZvckVhY2goKGU9PnswPT09ZSYmdGhpcy5fbG9hZEFuZE1lcmdlTGluZVRvb2xzT25TdHVkaWVzKGUsITApLHRoaXMuX2xvYWRBbmRNZXJnZUxpbmVUb29sc1dpdGhvdXRTeW1ib2woZSwhMCl9KSk7Y29uc3QgZT10aGlzLl9jaGFydE1vZGVsLm1haW5TZXJpZXMoKS5zeW1ib2xJbmZvKCk7ZSYmdGhpcy5fb25TeW1ib2xSZXNvbHZlZChlKX1oYXNDaGFuZ2VzKCl7cmV0dXJuIHRoaXMuX2hhc0NoYW5nZXN9aGFzVW5zYXZlZE1pZ3JhdGlvbnNGcm9tQ2hhcnRTdGF0ZSgpe3JldHVybiBOKHRoaXMuX2ludmFsaWRhdGVkTGluZVRvb2xzQW5kU3R1ZHlTdHVicyl8fE4odGhpcy5faW52YWxpZGF0ZWRMaW5lVG9vbEdyb3Vwcyl9c2V0U2F2ZUNoYXJ0U2VydmljZShlKXt0aGlzLl9zYXZlQ2hhcnRTZXJ2aWNlJiYodGhpcy5fc2F2ZUNoYXJ0U2VydmljZS5hdXRvU2F2ZUVuYWJsZWQoKS51bnN1YnNjcmliZSh0aGlzLl9vbkNoYW5nZUF1dG9zYXZlKSx0aGlzLl9zYXZlQ2hhcnRTZXJ2aWNlLmNoYXJ0U2F2ZWQoKS51bnN1YnNjcmliZUFsbCh0aGlzKSksdGhpcy5fc2F2ZUNoYXJ0U2VydmljZT1lLHRoaXMuX3NhdmVDaGFydFNlcnZpY2UuYXV0b1NhdmVFbmFibGVkKCkuc3Vic2NyaWJlKHRoaXMuX29uQ2hhbmdlQXV0b3NhdmUpLHRoaXMuX3NhdmVDaGFydFNlcnZpY2UuY2hhcnRTYXZlZCgpLnN1YnNjcmliZSh0aGlzLCgoKT0+e3RoaXMuX3RyeVRvU2F2ZUNoYXJ0U3RhdGVNaWdyYXRpb25zT25jZT0hMSx0aGlzLl9yZWNhbGN1bGF0ZUhhc0NoYW5nZXMoKX0pLCEwKX1wcmVwYXJlRFRPKGU9ITEpe2NvbnN0IHQ9bmV3IE1hcDtyZXR1cm4gUC5mb3JFYWNoKChpPT57dC5zZXQoaSx0aGlzLl9wcmVwYXJlRFRPSXRlbShlLGkpKX0pKSx0fWdldERUTyhlPTAsdD0hMSxpPSExKXtyZXR1cm4gaSYmdGhpcy5pbnZhbGlkYXRlQWxsKCksdGhpcy5fcHJlcGFyZURUT0l0ZW0odCxlLGkpfWFzeW5jIGFwcGx5RFRPKGUsdD0wKXt0aGlzLnJlc2V0SW52YWxpZGF0ZWQoRGF0ZS5ub3coKS52YWx1ZU9mKCksZSx0KSxhd2FpdCB0aGlzLl9hcHBseUxpbmVUb29sc0FuZEdyb3Vwc0RUTyhlLHQpfQptYXJrQXNWYWxpZGF0ZWRCZWNhdXNlT2ZTYXZpbmdUb0NvbnRlbnQoKXtWKHRoaXMuX2ludmFsaWRhdGVkTGluZVRvb2xzQW5kU3R1ZHlTdHVicyksVih0aGlzLl9pbnZhbGlkYXRlZExpbmVUb29sR3JvdXBzKSx0aGlzLl9yZWNhbGN1bGF0ZUhhc0NoYW5nZXMoKX1yZXNldEludmFsaWRhdGVkKGUsdCxpLHMpe2NvbnN0IG49KGUsdCxzLG4pPT57aWYoIXMuaGFzKG4pfHxzLmdldChuKSlzLmhhcyhuKSYmdChuLGkpO2Vsc2V7Y29uc3Qgcz1lLmdldChuKTtzJiYocz09PWk/dChuLG51bGwpOjA9PT1pJiZ0KG4scykpfX07aWYobnVsbD09PXQuc291cmNlcylyZXR1cm47Y29uc3R7Z3JvdXBzOnIsc291cmNlczpvLGxpbmVUb29sc1RvVmFsaWRhdGU6bCxncm91cHNUb1ZhbGlkYXRlOmN9PXQsaD1BKHRoaXMuX2ludmFsaWRhdGVkTGluZVRvb2xzQW5kU3R1ZHlTdHVicyxlLG5ldyBTZXQobD8/by5rZXlzKCkpKTt0aGlzLl9pbnZhbGlkYXRlZExpbmVUb29sc0FuZFN0dWR5U3R1YnM9aC5zdGlsbEludmFsaWRhdGVkLGgudmFsaWRhdGVkLmZvckVhY2gobi5iaW5kKHRoaXMsdGhpcy5fb3JpZ2luYWxMaW5lVG9vbFNoYXJpbmdNb2RlLHRoaXMuX3NldE9yaWdpbmFsTGluZVRvb2xTaGFyaW5nTW9kZS5iaW5kKHRoaXMpLG8pKTtjb25zdCBkPUEodGhpcy5faW52YWxpZGF0ZWRMaW5lVG9vbEdyb3VwcyxlLG5ldyBTZXQoYz8/ci5rZXlzKCkpKTtpZihoLnZhbGlkYXRlZC5mb3JFYWNoKG4uYmluZCh0aGlzLHRoaXMuX29yaWdpbmFsTGluZVRvb2xHcm91cHNTaGFyaW5nTW9kZSx0aGlzLl9zZXRPcmlnaW5hbExpbmVUb29sR3JvdXBzU2hhcmluZ01vZGUuYmluZCh0aGlzKSxyKSksdGhpcy5faW52YWxpZGF0ZWRMaW5lVG9vbEdyb3Vwcz1kLnN0aWxsSW52YWxpZGF0ZWQsQXJyYXkuZnJvbShvLmtleXMoKSkuZm9yRWFjaCgoZT0+e2NvbnN0IHQ9dGhpcy5fY2hhcnRNb2RlbC5kYXRhU291cmNlRm9ySWQoZSk7dCYmKHZvaWQgMCE9PXM/dC5zZXRTZXJ2ZXJVcGRhdGVUaW1lKHMpOm51bGw9PT10LnNlcnZlclVwZGF0ZVRpbWUoKSYmdC5zZXRTZXJ2ZXJVcGRhdGVUaW1lKChuZXcgRGF0ZSkudmFsdWVPZigpKSl9KSksMD09PWkpZm9yKGNvbnN0IGUgb2YgQXJyYXkuZnJvbSh0aGlzLl9taWdyYXRlZFNoYXJlZExpbmVUb29sc0R1cGxpY2F0ZXMpKW51bGw9PT1vLmdldChlKSYmdGhpcy5fbWlncmF0ZWRTaGFyZWRMaW5lVG9vbHNEdXBsaWNhdGVzLmRlbGV0ZShlKTsoaC5jb250YWluUmVzYXZlZEZyb21Db250ZW50fHxkLmNvbnRhaW5SZXNhdmVkRnJvbUNvbnRlbnQpJiZhLmVtaXQoImxpbmVUb29sc1Jlc2F2ZWRGcm9tQ29udGVudCIpLHRoaXMuX3JlY2FsY3VsYXRlSGFzQ2hhbmdlcygpfWFzeW5jIGFwcGx5TGluZVRvb2xVcGRhdGVOb3RpZmljYXRpb24oZSx0KXtjb25zdCBpPWZ1bmN0aW9uKGUpe2NvbnN0IHQ9RS5leGVjKGUpO3JldHVybiA0PT09dD8ubGVuZ3RoP3tsYXlvdXRJZDp0WzFdLGNoYXJ0SWQ6dFsyXSxjbGllbnRJZDp0WzNdfTp7bGF5b3V0SWQ6IiIsY2hhcnRJZDoiIixjbGllbnRJZDplfX0oZS5jbGllbnRJZD8/IiIpO2lmKGkuY2xpZW50SWQhPT10aGlzLl9vcmlnaW4uY2xpZW50SWR8fGkuY2hhcnRJZCE9PXRoaXMuX29yaWdpbi5jaGFydElkKXJldHVybiB2b2lkIDA9PT1lLnN5bWJvbHx8bnVsbCE9PWUuc291cmNlcz90aGlzLl9hcHBseUxpbmVUb29sc0FuZEdyb3Vwc0RUTyhlLHQsaSk6dm9pZCB0aGlzLl93aXRob3V0SW52YWxpZGF0aW5nKCgoKT0+e2NvbnN0IGk9dGhpcy5fY2hhcnRNb2RlbC5kYXRhU291cmNlcygpLmZpbHRlcihjLmlzTGluZVRvb2wpLmZpbHRlcigoaT0+aS5zaGFyaW5nTW9kZSgpLnZhbHVlKCk9PT10JiZpLnN5bWJvbCgpPT09ZS5zeW1ib2wpKTtpLmxlbmd0aD4wJiZ0aGlzLl9jaGFydE1vZGVsLnVuZG9Nb2RlbCgpLnJlbW92ZVNvdXJjZXMoaSwhMCxudWxsKX0pKX1zdGFydEFwcGx5aW5nTGluZVRvb2xVcGRhdGVOb3RpZmljYXRpb24oKXt0aGlzLl9pZ25vcmVJbnZhbGlkYXRpbmdFdmVudHNEZXB0aCsrfWVuZEFwcGx5aW5nTGluZVRvb2xVcGRhdGVOb3RpZmljYXRpb24oKXt0aGlzLl9pZ25vcmVJbnZhbGlkYXRpbmdFdmVudHNEZXB0aC0tLHRoaXMuX2lnbm9yZUludmFsaWRhdGluZ0V2ZW50c0RlcHRoPDAmJihULmxvZ0Vycm9yKCJMb2dpYyBlcnJvciwgc3RhcnRBcHBseWluZ0xpbmVUb29sVXBkYXRlTm90aWZpY2F0aW9uL2VuZEFwcGx5aW5nTGluZVRvb2xVcGRhdGVOb3RpZmljYXRpb24gbWlzbWF0Y2gsIGF1dG9maXhpbmciKSx0aGlzLl9pZ25vcmVJbnZhbGlkYXRpbmdFdmVudHNEZXB0aD0wKX1hcHBseUFsZXJ0SWRCeUV4dGVybmFsU291cmNlKGUsdCl7dGhpcy5fd2l0aG91dEludmFsaWRhdGluZygoKCk9Pntjb25zdCBpPXRoaXMuX2NoYXJ0TW9kZWwuZGF0YVNvdXJjZUZvcklkKGUpO2kmJigwLGMuaXNMaW5lVG9vbCkoaSkmJmkuc2V0QWxlcnQodCl9KSl9ZGVsZXRlQWxlcnRCeUV4dGVybmFsU291cmNlKGUpe3RoaXMuX3dpdGhvdXRJbnZhbGlkYXRpbmcoKCgpPT57Y29uc3QgdD10aGlzLl9jaGFydE1vZGVsLmRhdGFTb3VyY2VGb3JJZChlKTt0JiYoMCxjLmlzTGluZVRvb2wpKHQpJiZ0LnJlbW92ZUFsZXJ0KCl9KSl9YXN5bmMgbWFya1N5bmNlZExpbmVUb29sQXNEZWxldGVkKGUsdCl7aWYodGhpcy5fbGlua0tleVJlc29sdmVyKXtjb25zdCBpPWF3YWl0IHRoaXMuX2xpbmtLZXlSZXNvbHZlci5yZXNvbHZlTGlua0tleSh0LGUsdGhpcy5fYnJva2VyTmFtZSk7aWYodGhpcy5fZGVzdHJveWVkKXJldHVybiBudWxsO2lmKG51bGwhPT1pKXtjb25zdCB0PXRoaXMuX2NoYXJ0TW9kZWwubGluZVRvb2xCeUxpbmtLZXkoZSk7bnVsbD09PXQ/dGhpcy5faW52YWxpZGF0ZUxpbmVUb29sT3JTdHVkeVN0dWIoaSxwZXJmb3JtYW5jZS5ub3coKSk6dGhpcy5fd2l0aG91dEludmFsaWRhdGluZygoKCk9Pntjb25zdCBlPSgwLHIuZW5zdXJlTm90TnVsbCkodGhpcy5fY2hhcnRNb2RlbC5wYW5lRm9yU291cmNlKHQpKSxpPXRoaXMuX2FsbExpbmVUb29sc0FuZFN0dWR5U3R1YnMuZ2V0KGUuaWQoKSl8fG5ldyBNYXA7dC5kZXRhY2hBbGVydCgpLAp0aGlzLl9jaGFydE1vZGVsLnJlbW92ZVNvdXJjZSh0KSxpLmRlbGV0ZSh0LmlkKCkpfSkpLHRoaXMuX2RlYm91bmNlZFNhdmUoKX1yZXR1cm4gaX1yZXR1cm4gbnVsbH1pbnZhbGlkYXRlQWxsKGU9ITEpe2NvbnN0IHQ9cGVyZm9ybWFuY2Uubm93KCk7dGhpcy5fYWxsTGluZVRvb2xzQW5kU3R1ZHlTdHVicy5mb3JFYWNoKChlPT57ZS5mb3JFYWNoKCgoZSxpKT0+e3RoaXMuX2ludmFsaWRhdGVMaW5lVG9vbE9yU3R1ZHlTdHViKGksdCl9KSl9KSksdGhpcy5fY2hhcnRNb2RlbC5saW5lVG9vbHNHcm91cE1vZGVsKCkuZ3JvdXBzRm9yQWxsU3ltYm9scygpLmZvckVhY2goKGU9Pnt0aGlzLl9pbnZhbGlkYXRlTGluZVRvb2xHcm91cChlLmlkLHQpfSkpLGUmJnRoaXMubWFya0FzVmFsaWRhdGVkQmVjYXVzZU9mU2F2aW5nVG9Db250ZW50KCl9ZXhlY3V0ZVN5bmNocm9uaXphdGlvbkluTGF5b3V0QWN0aW9uKGUpe3RoaXMuX2ludmFsaWRhdGVWaWFTeW5jKz0xO3RyeXtlKCl9ZmluYWxseXt0aGlzLl9pbnZhbGlkYXRlVmlhU3luYy09MX19aW52YWxpZGF0ZVZpYVN5bmMoKXtyZXR1cm4gdGhpcy5faW52YWxpZGF0ZVZpYVN5bmM+MH1mbHVzaFBlbmRpbmdTYXZpbmdzKCl7cmV0dXJuIHRoaXMuX2ludmFsaWRhdGVkTGluZVRvb2xHcm91cHMuc2l6ZXx8dGhpcy5faW52YWxpZGF0ZWRMaW5lVG9vbHNBbmRTdHVkeVN0dWJzLnNpemV8fHRoaXMuX21pZ3JhdGVkU2hhcmVkTGluZVRvb2xzRHVwbGljYXRlcy5zaXplP3RoaXMuX3NhdmVJbnZhbGlkYXRlZElmUmVxdWlyZWQoITEsITApOm51bGx9aGFzUGVuZGluZ0xvYWRSZXF1ZXN0cygpe2NvbnN0IGU9dGhpcy5fY2hhcnRNb2RlbC5tYWluU2VyaWVzKCk7Zm9yKGNvbnN0IHQgb2YgUCl7Y29uc3QgaT10aGlzLl9jdXJyZW50bHlMb2FkZWRTeW1ib2wuZ2V0KHQpPz8iIjtpZighZS5zeW1ib2xTYW1lQXNDdXJyZW50KGkpKXJldHVybiEwfXJldHVybiB0aGlzLl9wZW5kaW5nTG9hZFJlcXVlc3RzQ291bnRlcj4wfWhhc1BlbmRpbmdTYXZlUmVxdWVzdHMoKXtyZXR1cm4gdGhpcy5fcGVuZGluZ1NhdmVSZXF1ZXN0c0NvdW50ZXI+MHx8dGhpcy5oYXNDaGFuZ2VzKCkudmFsdWUoKSYmdGhpcy5faXNBdXRvc2F2ZUVuYWJsZWQoKX1hc3luYyBtYWluU2VyaWVzRHJhd2luZ3NSZWFkeShlKXtsZXRbdCxpXT10aGlzLl9tYWluU2VyaWVzRHJhd2luZ3NSZWFkeTtpZih0PT09ZSlyZXR1cm4gaTtjb25zdCBzPSgwLF8uY3JlYXRlRGVmZXJyZWRQcm9taXNlKSgpO3JldHVybiB0aGlzLl9uZXh0UmVzb2x2ZWRTeW1ib2xEZWZlcnJlZFByb21pc2VzLnB1c2goW2Usc10pLGF3YWl0IHMucHJvbWlzZSxbdCxpXT10aGlzLl9tYWluU2VyaWVzRHJhd2luZ3NSZWFkeSwoMCxyLmFzc2VydCkodD09PWUsIlVuZXhwZWN0ZWQgc3ltYm9sIHByb19uYW1lIiksaX1fYXNzaWduQWxsTGluZVRvb2xzKGUpe2UuZm9yRWFjaCgoZT0+e2NvbnN0IHQ9ZS5kYXRhU291cmNlcygpLmZpbHRlcihEKS5tYXAoKGU9PltlLmlkKCksZS5saW5rS2V5KCkudmFsdWUoKV0pKSxpPW5ldyBNYXAodCk7dGhpcy5fYWxsTGluZVRvb2xzQW5kU3R1ZHlTdHVicy5zZXQoZS5pZCgpLGkpfSkpfV9wcm9jZXNzUHJvcGVydGllc0NoYW5nZWQoZSx0KXtEKHQpJiZ0aGlzLl9pbnZhbGlkYXRlTGluZVRvb2xPclN0dWR5U3R1Yih0LmlkKCkscGVyZm9ybWFuY2Uubm93KCkpfV9wcm9jZXNzTGluZVRvb2xzR3JvdXBNb2RlbENoYW5nZWQoZSx0KXtjb25zdCBpPXBlcmZvcm1hbmNlLm5vdygpO3RoaXMuX2ludmFsaWRhdGVMaW5lVG9vbEdyb3VwKGUsaSk7Y29uc3Qgcz10aGlzLl9jaGFydE1vZGVsLmxpbmVUb29sc0dyb3VwTW9kZWwoKS5ncm91cEZvcklkKGUpO2xldCBuPXM/LmxpbmVUb29scygpLmxlbmd0aD9zLnNoYXJpbmdNb2RlKCkudmFsdWUoKTp2b2lkIDA7dCYmKCh0LmFmZmVjdGVkTGluZVRvb2xzfHxbXSkuZm9yRWFjaCgoZT0+dGhpcy5faW52YWxpZGF0ZUxpbmVUb29sT3JTdHVkeVN0dWIoZSxpKSkpLHQuYWZmZWN0ZWRMaW5lVG9vbHM/Lmxlbmd0aD4wJiZ2b2lkIDA9PT1uJiYobj10aGlzLl9vcmlnaW5hbExpbmVUb29sU2hhcmluZ01vZGUuZ2V0KHQuYWZmZWN0ZWRMaW5lVG9vbHNbMF0pKSksdGhpcy5fb3JpZ2luYWxMaW5lVG9vbEdyb3Vwc1NoYXJpbmdNb2RlLmhhcyhlKXx8dGhpcy5fc2V0T3JpZ2luYWxMaW5lVG9vbEdyb3Vwc1NoYXJpbmdNb2RlKGUsbj8/MCl9X3Byb2Nlc3NQYW5lc0NvbGxlY3Rpb25DaGFuZ2VkKGUpe2NvbnN0IHQ9ZS5tYXAoKGU9PmUuaWQoKSkpLGk9bmV3IFNldCh0KSxzPXBlcmZvcm1hbmNlLm5vdygpO0FycmF5LmZyb20odGhpcy5fYWxsTGluZVRvb2xzQW5kU3R1ZHlTdHVicy5rZXlzKCkpLmZpbHRlcigoZT0+IWkuaGFzKGUpKSkuZm9yRWFjaCgoZT0+e0FycmF5LmZyb20oKDAsci5lbnN1cmVEZWZpbmVkKSh0aGlzLl9hbGxMaW5lVG9vbHNBbmRTdHVkeVN0dWJzLmdldChlKSkua2V5cygpKS5mb3JFYWNoKChlPT57dGhpcy5faW52YWxpZGF0ZUxpbmVUb29sT3JTdHVkeVN0dWIoZSxzKX0pKX0pKSxlLmZpbHRlcigoZT0+IXRoaXMuX2FsbExpbmVUb29sc0FuZFN0dWR5U3R1YnMuaGFzKGUuaWQoKSkpKS5mb3JFYWNoKChlPT57ZS5kYXRhU291cmNlcygpLmZpbHRlcihEKS5mb3JFYWNoKChlPT50aGlzLl9pbnZhbGlkYXRlTGluZVRvb2xPclN0dWR5U3R1YihlLmlkKCkscykpKX0pKSx0aGlzLl9hc3NpZ25BbGxMaW5lVG9vbHMoZSl9X3Byb2Nlc3NEYXRhU291cmNlQ29sbGVjdGlvbkNoYW5nZWQoZSl7Y29uc3QgdD1lLmRhdGFTb3VyY2VzKCkuZmlsdGVyKEQpLGk9dC5tYXAoKGU9PltlLmlkKCksZS5saW5rS2V5KCkudmFsdWUoKV0pKSxzPW5ldyBNYXAoaSk7bGV0IG47Y29uc3Qgbz1wZXJmb3JtYW5jZS5ub3coKTtpZih0aGlzLl9hbGxMaW5lVG9vbHNBbmRTdHVkeVN0dWJzLmhhcyhlLmlkKCkpKXtjb25zdCBpPSgwLHIuZW5zdXJlRGVmaW5lZCkodGhpcy5fYWxsTGluZVRvb2xzQW5kU3R1ZHlTdHVicy5nZXQoZS5pZCgpKSk7bj10LmZpbHRlcigoZT0+IWkuaGFzKGUuaWQoKSkpKSwKbi5mb3JFYWNoKChlPT50aGlzLl9pbnZhbGlkYXRlTGluZVRvb2xPclN0dWR5U3R1YihlLmlkKCksbykpKSxBcnJheS5mcm9tKGkuZW50cmllcygpKS5maWx0ZXIoKGU9PiFzLmhhcyhlWzBdKSkpLmZvckVhY2goKGU9PntudWxsIT09ZVsxXSYmdGhpcy5fZGVib3VuY2VkU2F2ZSgpLHRoaXMuX2ludmFsaWRhdGVMaW5lVG9vbE9yU3R1ZHlTdHViKGVbMF0sbyl9KSl9ZWxzZSBuPXQsdC5mb3JFYWNoKChlPT50aGlzLl9pbnZhbGlkYXRlTGluZVRvb2xPclN0dWR5U3R1YihlLmlkKCksbykpKTtuLmZvckVhY2goKGU9PntpZigoMCxjLmlzTGluZVRvb2wpKGUpKXt0aGlzLl9zZXRPcmlnaW5hbExpbmVUb29sU2hhcmluZ01vZGUoZS5pZCgpLGUuc2hhcmluZ01vZGUoKS52YWx1ZSgpKTtjb25zdCB0PXRoaXMuX2NoYXJ0TW9kZWwubGluZVRvb2xzR3JvdXBNb2RlbCgpLmdyb3VwRm9yTGluZVRvb2woZSk7dCYmdGhpcy5fc2V0T3JpZ2luYWxMaW5lVG9vbEdyb3Vwc1NoYXJpbmdNb2RlKHQuaWQsZS5zaGFyaW5nTW9kZSgpLnZhbHVlKCkpfX0pKSx0aGlzLl9hbGxMaW5lVG9vbHNBbmRTdHVkeVN0dWJzLnNldChlLmlkKCkscyl9X3VubG9hZExpbmVUb29scyhlLHQsaSl7Y29uc3Qgcz1lLmZpbHRlcigoZT0+IXRoaXMuX2ludmFsaWRhdGVkTGluZVRvb2xzQW5kU3R1ZHlTdHVicy5oYXMoZSkpKS5tYXAoKGU9PnRoaXMuX2NoYXJ0TW9kZWwuZGF0YVNvdXJjZUZvcklkKGUpKSkuZmlsdGVyKGMuaXNMaW5lVG9vbCkuZmlsdGVyKHAubm90TnVsbCkuZmlsdGVyKChlPT5lLnNoYXJpbmdNb2RlKCkudmFsdWUoKT09PWkpKS5maWx0ZXIodCkuZmlsdGVyKChlPT57Y29uc3QgdD10aGlzLl9jaGFydE1vZGVsLmxpbmVUb29sc0dyb3VwTW9kZWwoKS5ncm91cEZvckxpbmVUb29sKGUpO3JldHVybiBudWxsPT09dHx8IXRoaXMuX2ludmFsaWRhdGVkTGluZVRvb2xHcm91cHMuaGFzKHQuaWQpfSkpO3RoaXMuX3dpdGhvdXRJbnZhbGlkYXRpbmcoKCgpPT57dGhpcy5fY2hhcnRNb2RlbC5idWxrQWN0aW9uTWFjcm8oKCgpPT57cy5mb3JFYWNoKChlPT57ZS5oYXNBbGVydCgpLnZhbHVlKCkmJmUuZGV0YWNoQWxlcnQoKTtjb25zdCB0PSgwLHIuZW5zdXJlTm90TnVsbCkodGhpcy5fY2hhcnRNb2RlbC5wYW5lRm9yU291cmNlKGUpKTt0aGlzLl9jaGFydE1vZGVsLnJlbW92ZVNvdXJjZShlKTsodGhpcy5fYWxsTGluZVRvb2xzQW5kU3R1ZHlTdHVicy5nZXQodC5pZCgpKT8/bmV3IE1hcCkuZGVsZXRlKGUuaWQoKSl9KSksdGhpcy5fY2hhcnRNb2RlbC5saW5lVG9vbHNHcm91cE1vZGVsKCkucmVtb3ZlTGluZVRvb2xzKHMpfSkpfSkpfV91bmxvYWRMaW5lc09uU2VyaWVzKGUsdCxpKXtjb25zdCBzPXRoaXMuX2NoYXJ0TW9kZWwubWFpblNlcmllcygpO2lmKCFpPy5zaXplKXJldHVybjtjb25zdCBuPUFycmF5LmZyb20oaS5rZXlzKCkpLmZpbHRlcigodD0+IWUodCkpKTt0aGlzLl91bmxvYWRMaW5lVG9vbHMobiwoZT0+ZS5ib3VuZFRvU3ltYm9sKCkmJmUub3duZXJTb3VyY2UoKT09PXMpLHQpfV9pc0F1dG9zYXZlRW5hYmxlZCgpe3JldHVybiBCb29sZWFuKHRoaXMuX3NhdmVDaGFydFNlcnZpY2UmJnRoaXMuX3NhdmVDaGFydFNlcnZpY2UuYXV0b1NhdmVFbmFibGVkKCkudmFsdWUoKSl9YXN5bmMgX3NhdmVJbnZhbGlkYXRlZElmUmVxdWlyZWQoZSx0KXtpZihudWxsIT09dGhpcy5fbGFzdEJhblRpbWUpe2lmKCEocGVyZm9ybWFuY2Uubm93KCktdGhpcy5fbGFzdEJhblRpbWU+PTNlNSkpcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO3RoaXMuX2xhc3RCYW5UaW1lPW51bGx9aWYoIXRoaXMuX2lzQXV0b3NhdmVFbmFibGVkKCkmJiF0fHx0aGlzLl9vcHRpb25zLnJlYWRPbmx5TW9kZXx8IXdpbmRvdy5pc19hdXRoZW50aWNhdGVkfHwiIj09PXRoaXMuX29yaWdpbi5sYXlvdXRJZClyZXR1cm47Y29uc3QgaT10aGlzLnByZXBhcmVEVE8oZSkscz1QLm1hcCgoZT0+e2NvbnN0IHQ9aS5nZXQoZSk7aWYoIXR8fG51bGw9PT10LnNvdXJjZXMpcmV0dXJuIG51bGw7Y29uc3Qgcz10LmxpbmVUb29sc1RvVmFsaWRhdGU/P0FycmF5LmZyb20odC5zb3VyY2VzLmtleXMoKSksbj10Lmdyb3Vwc1RvVmFsaWRhdGU/P0FycmF5LmZyb20odC5ncm91cHMua2V5cygpKTtpZigwPT09cy5sZW5ndGgmJjA9PT1uLmxlbmd0aClyZXR1cm4gbnVsbDtjb25zdCBvPXBlcmZvcm1hbmNlLm5vdygpO2lmKHQuc291cmNlcy5zaXplfHx0Lmdyb3Vwcy5zaXplKXtjb25zdCBpPXRoaXMuX3NhdmluZ0Fib3J0Q29udHJvbGxlcnNCeVNoYXJpbmdNb2RlLmdldChlKTtpJiZpLmFib3J0KCk7Y29uc3Qgcz1uZXcgQWJvcnRDb250cm9sbGVyO3JldHVybiB0aGlzLl9zYXZpbmdBYm9ydENvbnRyb2xsZXJzQnlTaGFyaW5nTW9kZS5zZXQoZSxzKSx0LnNvdXJjZXMuZm9yRWFjaCgoKHQsaSk9Pnt0JiZ0aGlzLl9zZXRPcmlnaW5hbExpbmVUb29sU2hhcmluZ01vZGUoaSxlKX0pKSx0Lmdyb3Vwcy5mb3JFYWNoKCgodCxpKT0+e3QmJnRoaXMuX3NldE9yaWdpbmFsTGluZVRvb2xHcm91cHNTaGFyaW5nTW9kZShpLGUpfSkpLHRoaXMuX3BlbmRpbmdTYXZlUmVxdWVzdHNDb3VudGVyKz0xLCgwLHIuZW5zdXJlTm90TnVsbCkodGhpcy5fc2F2ZUNoYXJ0U2VydmljZSkuc2F2ZUNoYXJ0TGluZVRvb2xzKHRoaXMuX29yaWdpbi5jaGFydElkLHQsZSxzLnNpZ25hbCkudGhlbigoKHtzZXJ2ZXJVcGRhdGVUaW1lOml9KT0+e3RoaXMuX2Rlc3Ryb3llZHx8dGhpcy5yZXNldEludmFsaWRhdGVkKG8sdCxlLGkpfSkpLmNhdGNoKChhc3luYyB0PT57aWYoIXRoaXMuX2Rlc3Ryb3llZCl7aWYodCBpbnN0YW5jZW9mIGguU2F2aW5nTGluZVRvb2xzRXJyb3ImJnQuc2hvdWxkQmVDb29sZWQmJih0aGlzLl9sYXN0QmFuVGltZT1wZXJmb3JtYW5jZS5ub3coKSksISgwLHkuaXNBYm9ydEVycm9yKSh0KSl0aHJvdyB0O1QubG9nRGVidWcoYFNhdmUgcmVxdWVzdCBoYXMgYmVlbiBhYm9ydGVkLiBDaGFydElkOiAke3RoaXMuX29yaWdpbi5jaGFydElkfSBzaGFyaW5nTW9kZTogJHtlfWApfX0pKS5maW5hbGx5KCgoKT0+e3RoaXMuX3BlbmRpbmdTYXZlUmVxdWVzdHNDb3VudGVyLT0xfSkpfQpyZXR1cm4gdGhpcy5yZXNldEludmFsaWRhdGVkKG8sdCxlKSxudWxsfSkpLmZpbHRlcihwLm5vdE51bGwpO3JldHVybiBzLmxlbmd0aD9Qcm9taXNlLmFsbChzKS50aGVuKCgoKT0+e30pKTp2b2lkIDB9YXN5bmMgX3NhdmVQcm9taXNlKGUsdCl7cmV0dXJuIHRoaXMuX2lzQXV0b3NhdmVFbmFibGVkKCk/dGhpcy5fZGVib3VuY2VkU2F2ZT8uZmx1c2goKT8/UHJvbWlzZS5yZXNvbHZlKCk6dGhpcy5fc2F2ZUludmFsaWRhdGVkSWZSZXF1aXJlZChlLHQpfV9zZXJpZXNMaW5lVG9vbHNVbmxvYWRlcihlLHQsaSl7Y29uc3Qgcz10aGlzLl9jaGFydE1vZGVsLm1haW5TZXJpZXMoKTsibWFpblNlcmllc0xpbmVUb29scyI9PT1lLnJlcXVlc3RUeXBlJiZzLnN5bWJvbFNhbWVBc0N1cnJlbnQoZS5zeW1ib2wpJiYodGhpcy5fdW5sb2FkTGluZXNPblNlcmllcyhpLGUuc2hhcmluZ01vZGUsdCksdGhpcy5fY3VycmVudGx5TG9hZGVkU3ltYm9sLnNldChlLnNoYXJpbmdNb2RlLGUuc3ltYm9sKSl9X21haW5QYW5lTGluZVRvb2xzQW5kU3R1YnMoKXtjb25zdCBlPXRoaXMuX2NoYXJ0TW9kZWwubWFpblNlcmllcygpLHQ9KDAsci5lbnN1cmVOb3ROdWxsKSh0aGlzLl9jaGFydE1vZGVsLnBhbmVGb3JTb3VyY2UoZSkpO3JldHVybiBuZXcgTWFwKHRoaXMuX2FsbExpbmVUb29sc0FuZFN0dWR5U3R1YnMuZ2V0KHQuaWQoKSkpfV9vblN5bWJvbFJlc29sdmVkKGUpe2NvbnN0IHQ9KHQsaSk9Pntjb25zdCBzPXtyZXF1ZXN0VHlwZToibWFpblNlcmllc0xpbmVUb29scyIsc2VyaWVzU291cmNlSWQ6dGhpcy5fY2hhcnRNb2RlbC5tYWluU2VyaWVzKCkuaWQoKSxzeW1ib2w6ZS5wcm9fbmFtZSxicm9rZXJOYW1lOiIiLHNoYXJpbmdNb2RlOnR9O3JldHVybiB0aGlzLl9tYWtlTG9hZFJlcXVlc3RBbmRNZXJnZShzLHRoaXMuX3Nlcmllc0xpbmVUb29sc1VubG9hZGVyLmJpbmQodGhpcyxzLHRoaXMuX21haW5QYW5lTGluZVRvb2xzQW5kU3R1YnMoKSksZS5wcm9fbmFtZXx8ZS50aWNrZXJ8fGUuZnVsbF9uYW1lLGkpfSxpPXQoMikscz10KDEpLG49W2kscyx0KDAsW2ksc10pXSxyPVByb21pc2UuYWxsKG4pLnRoZW4oKCgpPT57dmFyIGU7aWYoIXRoaXMuX2Rlc3Ryb3llZCYmKHRoaXMuX3dpdGhvdXRJbnZhbGlkYXRpbmcoKCgpPT57dGhpcy5fY2hhcnRNb2RlbC5kYXRhU291cmNlcygpLmZpbHRlcihjLmlzTGluZVRvb2wpLmZpbHRlcigoZT0+MD09PWUuc2hhcmluZ01vZGUoKS52YWx1ZSgpJiZlLmxpbmtLZXkoKS52YWx1ZSgpKSkuZm9yRWFjaCgoZT0+e2lmKGUuc2hhcmUoMSksdGhpcy5fb3B0aW9ucy5taWdyYXRlU3luY2VkTGluZVRvb2xzKXt0aGlzLl9pbnZhbGlkYXRlTGluZVRvb2xPclN0dWR5U3R1YihlLmlkKCkscGVyZm9ybWFuY2Uubm93KCksITApO2NvbnN0IHQ9dGhpcy5fY2hhcnRNb2RlbC5saW5lVG9vbHNHcm91cE1vZGVsKCkuZ3JvdXBGb3JMaW5lVG9vbChlKTt0JiZ0aGlzLl9pbnZhbGlkYXRlTGluZVRvb2xHcm91cCh0LmlkLHBlcmZvcm1hbmNlLm5vdygpLCEwKX19KSl9KSksdGhpcy5fYXV0b2ZpeFpPcmRlci52YWx1ZSgpJiZ0aGlzLl9jaGFydE1vZGVsLmxpbmVUb29sc0dyb3VwTW9kZWwoKS5ncm91cHNGb3JBbGxTeW1ib2xzKCkubGVuZ3RoKSl7Y29uc3QgdD17cGFuZXM6KGU9dGhpcy5fY2hhcnRNb2RlbCkucGFuZXMoKS5tYXAoeCksZ3JvdXBzOmUubGluZVRvb2xzR3JvdXBNb2RlbCgpLmdyb3Vwc0ZvckFsbFN5bWJvbHMoKS5tYXAoTSl9LGk9KDAsQy5wcmVwYXJlWk9yZGVyRml4SWZSZXF1aXJlZCkodCk7dGhpcy5fY2hhcnRNb2RlbC5idWxrQWN0aW9uTWFjcm8oKCgpPT57aS5mb3JFYWNoKCgoZSx0KT0+e2NvbnN0IGk9dGhpcy5fY2hhcnRNb2RlbC5kYXRhU291cmNlRm9ySWQodCk7aT8uc2V0Wm9yZGVyKGUpfSkpfSkpfX0pKTt0aGlzLl9tYWluU2VyaWVzRHJhd2luZ3NSZWFkeT1bZS5wcm9fbmFtZSxyXTtmb3IoY29uc3RbdCxpXW9mIHRoaXMuX25leHRSZXNvbHZlZFN5bWJvbERlZmVycmVkUHJvbWlzZXMpdD09PWUucHJvX25hbWU/aS5yZXNvbHZlKCk6aS5yZWplY3QobmV3IEVycm9yKCJTeW1ib2wgbWlzbWF0Y2giKSk7dGhpcy5fbmV4dFJlc29sdmVkU3ltYm9sRGVmZXJyZWRQcm9taXNlcz1bXX1hc3luYyBfbWFrZUxvYWRSZXF1ZXN0QW5kTWVyZ2UoZSx0LGkscyl7Y29uc3Qgbj10aGlzLl9jaGFydE1vZGVsLm1haW5TZXJpZXMoKSxyPXRoaXMuX2N1cnJlbnRseUxvYWRlZFN5bWJvbC5nZXQoZS5zaGFyaW5nTW9kZSk/PyIiO2lmKCEhbi5zeW1ib2xTYW1lQXNDdXJyZW50KHIpKXJldHVybjt0aGlzLl9jdXJyZW50bHlMb2FkZWRTeW1ib2wuZGVsZXRlKGUuc2hhcmluZ01vZGUpO2NvbnN0IG89YXdhaXQoMCx1LmdldENoYXJ0U3RvcmFnZSkoKTtyZXR1cm4gdGhpcy5fZGVzdHJveWVkP3ZvaWQgMDp0aGlzLl9zYXZlUHJvbWlzZSgibWFpblNlcmllc0xpbmVUb29scyI9PT1lLnJlcXVlc3RUeXBlKS5jYXRjaCgoKCk9Pnt9KSkudGhlbigoKCk9PnRoaXMuX2Rlc3Ryb3llZD9udWxsOih0aGlzLl9wZW5kaW5nTG9hZFJlcXVlc3RzQ291bnRlcis9MSxvLmxvYWRMaW5lVG9vbHNBbmRHcm91cHModGhpcy5fb3JpZ2luLmxheW91dElkLHRoaXMuX29yaWdpbi5jaGFydElkLGUsaSkpKSkuY2F0Y2goKCgpPT5udWxsKSkudGhlbigoYXN5bmMgaT0+e2lmKCF0aGlzLl9kZXN0cm95ZWQpe2lmKHMpdHJ5e2lmKGF3YWl0IFByb21pc2UuYWxsKHMpLHRoaXMuX2Rlc3Ryb3llZClyZXR1cm59Y2F0Y2goZSl7fWlmKHRoaXMuX3BlbmRpbmdMb2FkUmVxdWVzdHNDb3VudGVyLT0xLG51bGwhPT1pKXtjb25zdCBzPWkuc291cmNlcztzJiYodCgoZT0+cy5oYXMoZSkpKSxhd2FpdCB0aGlzLl9hcHBseUxpbmVUb29sc0FuZEdyb3Vwc0RUTyhpLGUuc2hhcmluZ01vZGUpKSxpLnNlcnZlclJlcXVlc3RJZCYmY29uc29sZS5sb2coYFBST0NFU1NFRDoke2kuc2VydmVyUmVxdWVzdElkfWApfX19KSl9X3Jlc3RvcmVHcm91cHMoZSx0LGkscyl7Y29uc3Qgbj1uZXcgTWFwO3JldHVybih0Lmdyb3Vwc3x8bmV3IE1hcCkuZm9yRWFjaCgoKHQsbyk9PnsKY29uc3QgYT10aGlzLl9jaGFydE1vZGVsLmxpbmVUb29sc0dyb3VwTW9kZWwoKS5ncm91cEZvcklkKG8pO2lmKG51bGw9PT10KXtpZihhKXtjb25zdCBlPXMmJnMubGF5b3V0SWQ9PT10aGlzLl9vcmlnaW4ubGF5b3V0SWQmJnMuY2hhcnRJZD09PXRoaXMuX29yaWdpbi5jaGFydElkO2EubGluZVRvb2xzKClbMF0uc2hhcmluZ01vZGUoKS52YWx1ZSgpPT09aSYmKGUmJjAhPT1pfHwobmV3IGYuRXhjbHVkZUxpbmVUb29sc0Zyb21Hcm91cFVuZG9Db21tYW5kKHRoaXMuX2NoYXJ0TW9kZWwsYSxhLmxpbmVUb29scygpKS5yZWRvKCksdGhpcy5fc2V0T3JpZ2luYWxMaW5lVG9vbEdyb3Vwc1NoYXJpbmdNb2RlKG8sbnVsbCkpKX19ZWxzZXtpZihhJiZ0LnNlcnZlclVwZGF0ZVRpbWUpe2NvbnN0IGk9KDAsci5lbnN1cmVEZWZpbmVkKSh0LnNlcnZlclVwZGF0ZVRpbWUpO2lmKG51bGwhPT1lJiZlPj1pKXJldHVybjthLnNldE5hbWUodC5uYW1lKX1lbHNlIG4uc2V0KG8sdCk7dGhpcy5fc2V0T3JpZ2luYWxMaW5lVG9vbEdyb3Vwc1NoYXJpbmdNb2RlKG8saSl9fSkpLG59X2NyZWF0ZU5ld0xpbmVUb29sKGUpe2NvbnN0IHQ9dGhpcy5fY2hhcnRNb2RlbC5kYXRhU291cmNlRm9ySWQoZS5vd25lclNvdXJjZSk7aWYobnVsbD09PXQpcmV0dXJuIG51bGw7Y29uc3QgaT0oMCxyLmVuc3VyZU5vdE51bGwpKHRoaXMuX2NoYXJ0TW9kZWwucGFuZUZvclNvdXJjZSh0KSkscz10aGlzLl9jaGFydE1vZGVsLnBhbmVzKCkuaW5kZXhPZihpKSxuPXRoaXMuX2NoYXJ0TW9kZWwucmVzdG9yZVNvdXJjZSghMSxzLG51bGwsZS5zdGF0ZSxudWxsKTtpZihudWxsIT09bil7Y29uc3QgZT10aGlzLl9hbGxMaW5lVG9vbHNBbmRTdHVkeVN0dWJzLmdldChpLmlkKCkpfHxuZXcgTWFwO2Uuc2V0KG4uaWQoKSxuLmxpbmtLZXkoKS52YWx1ZSgpKSx0aGlzLl9hbGxMaW5lVG9vbHNBbmRTdHVkeVN0dWJzLnNldChpLmlkKCksZSl9cmV0dXJuIG59X21pZ3JhdGVTdGF0ZUZyb21NZXRhaW5mbyhlKXtjb25zdCB0PXZvaWQgMCE9PWUuc3ltYm9sJiZlLnN5bWJvbCE9PWUuc3RhdGUuc3RhdGUuc3ltYm9sO3QmJihlLnN0YXRlLnN0YXRlLnN5bWJvbD1lLnN5bWJvbCk7Y29uc3QgaT12b2lkIDAhPT1lLmN1cnJlbmN5SWQmJmUuY3VycmVuY3lJZCE9PWUuc3RhdGUuc3RhdGUuY3VycmVuY3lJZDtpJiYoZS5zdGF0ZS5zdGF0ZS5jdXJyZW5jeUlkPWUuY3VycmVuY3lJZCk7Y29uc3Qgcz12b2lkIDAhPT1lLnVuaXRJZCYmZS51bml0SWQhPT1lLnN0YXRlLnN0YXRlLnVuaXRJZDtyZXR1cm4gcyYmKGUuc3RhdGUuc3RhdGUudW5pdElkPWUudW5pdElkKSx0fHxpfHxzfV9yZXN0b3JlTGluZVRvb2woZSx0LGkscyl7aWYoKHQuc3RhdGUucG9pbnRzPz9bXSkuc29tZSgoZT0+ISgwLHAuaXNOdW1iZXIpKGUudGltZV90KSkpKXJldHVybiBudWxsO2xldCBuPXRoaXMuX2NoYXJ0TW9kZWwuZGF0YVNvdXJjZUZvcklkKHQuaWQpO2lmKG51bGw9PT1uJiZ0LnN0YXRlLmxpbmtLZXkmJihuPXRoaXMuX2NoYXJ0TW9kZWwubGluZVRvb2xCeUxpbmtLZXkodC5zdGF0ZS5saW5rS2V5KSksbnVsbCE9PW4mJiEoMCxjLmlzTGluZVRvb2wpKG4pKXJldHVybiBudWxsO2lmKHRoaXMuX29yaWdpbi5jbGllbnRJZD09PXM/LmNsaWVudElkJiYhbilyZXR1cm4gbnVsbDtpZihuJiZ0LnNlcnZlclVwZGF0ZVRpbWUpe2NvbnN0IHI9dC5zZXJ2ZXJVcGRhdGVUaW1lLG89bi5zZXJ2ZXJVcGRhdGVUaW1lKCk7aWYobnVsbCE9PWUmJmU+PXJ8fG51bGwhPT1vJiZvPj1yKXJldHVybiAwIT09aSYmKG4uc2hhcmUoaSksdGhpcy5fc2V0T3JpZ2luYWxMaW5lVG9vbFNoYXJpbmdNb2RlKG4uaWQoKSxpKSksdGhpcy5fcmVzdG9yZUxpbmVUb29sQWxlcnQobix0LnN0YXRlLmFsZXJ0SWQpLG51bGw7dGhpcy5fb3JpZ2luLmNsaWVudElkIT09cz8uY2xpZW50SWQmJih0aGlzLl9jaGFydE1vZGVsLnJlc3RvcmVMaW5lVG9vbFN0YXRlKG4sdC5zdGF0ZSwhMSksbi5zaGFyaW5nTW9kZSgpLnZhbHVlKCkhPT1pJiYobi5zaGFyZShpKSx0aGlzLl9zZXRPcmlnaW5hbExpbmVUb29sU2hhcmluZ01vZGUobi5pZCgpLGkpKSxuLmNhbGNJc0FjdHVhbFN5bWJvbCgpKX0wIT09aSYmKHQub3duZXJTb3VyY2U9dGhpcy5fY2hhcnRNb2RlbC5tYWluU2VyaWVzKCkuaWQoKSx0LnN0YXRlLm93bmVyU291cmNlPXRoaXMuX2NoYXJ0TW9kZWwubWFpblNlcmllcygpLmlkKCkpLDA9PT1pJiZ0LnN0YXRlLmxpbmtLZXkmJih0LnN0YXRlLnNoYXJpbmdNb2RlPz89MSk7Y29uc3Qgcj10aGlzLl9taWdyYXRlU3RhdGVGcm9tTWV0YWluZm8odCk7bGV0IG89bnx8dGhpcy5fY3JlYXRlTmV3TGluZVRvb2wodCk7aWYobyYmKHImJnRoaXMuX2ludmFsaWRhdGVMaW5lVG9vbE9yU3R1ZHlTdHViKHQuaWQscGVyZm9ybWFuY2Uubm93KCksITApLHQuc2VydmVyVXBkYXRlVGltZSYmby5zZXRTZXJ2ZXJVcGRhdGVUaW1lKHQuc2VydmVyVXBkYXRlVGltZSksdGhpcy5fcmVzdG9yZUxpbmVUb29sQWxlcnQobyx0LnN0YXRlLmFsZXJ0SWQpLDAhPT1pJiZvLnNoYXJlKGkpLHZvaWQgMD09PXMmJigwLGMuaXNFZGl0YWJsZVRleHRMaW5lVG9vbCkobykpKXt0aGlzLl9yZW1vdmVUZXh0TGluZVRvb2xJZkVtcHR5KG8pJiYobz1udWxsKX1yZXR1cm4gb31fcmVzdG9yZUxpbmVUb29sQWxlcnQoZSx0KXt0P2UucmVzdG9yZUFsZXJ0KCt0KS5jYXRjaCgoZT0+e1QubG9nRXJyb3IoYEZhaWxlZCB0byByZXN0b3JlIGxpbmVUb29sIGFsZXJ0OiAke0Vycm9yLGV9YCl9KSk6ZS5kZXRhY2hBbGVydCgpfV9yZW1vdmVMaW5lVG9vbChlKXtjb25zdCB0PXRoaXMuX2NoYXJ0TW9kZWwuZGF0YVNvdXJjZUZvcklkKGUpO251bGwhPT10JiZ0aGlzLl9jaGFydE1vZGVsLnJlbW92ZVNvdXJjZSh0KX1fcmVtb3ZlVGV4dExpbmVUb29sSWZFbXB0eShlKXtyZXR1cm4hKCFlLnJlbW92ZUlmRWRpdGFibGVUZXh0SXNFbXB0eSgpfHwwIT09ZS5lZGl0YWJsZVRleHRQcm9wZXJ0aWVzKCkudGV4dC52YWx1ZSgpLmxlbmd0aCkmJih0aGlzLl9jaGFydE1vZGVsLnJlbW92ZVNvdXJjZShlKSwKdGhpcy5faW52YWxpZGF0ZUxpbmVUb29sT3JTdHVkeVN0dWIoZS5pZCgpLHBlcmZvcm1hbmNlLm5vdygpLCEwKSwhMCl9X3Jlc3RvcmVMaW5lRFRPKGUsdCxpLHMsbixvKXtpZighdGhpcy5faW52YWxpZGF0ZWRMaW5lVG9vbHNBbmRTdHVkeVN0dWJzLmdldCh0KSlpZihudWxsPT09ZSl7Y29uc3QgZT10aGlzLl9jaGFydE1vZGVsLmRhdGFTb3VyY2VGb3JJZCh0KTtpZighZSlyZXR1cm47aWYoISgwLGMuaXNMaW5lVG9vbCkoZSkpcmV0dXJuO2lmKGUuc2hhcmluZ01vZGUoKS52YWx1ZSgpPT09biYmdGhpcy5fb3JpZ2luLmNsaWVudElkIT09bz8uY2xpZW50SWQpe2NvbnN0IGk9dGhpcy5fY2hhcnRNb2RlbC5saW5lVG9vbHNHcm91cE1vZGVsKCkuZ3JvdXBGb3JMaW5lVG9vbChlKTtudWxsIT09aSYmbmV3IGYuRXhjbHVkZUxpbmVUb29sc0Zyb21Hcm91cFVuZG9Db21tYW5kKHRoaXMuX2NoYXJ0TW9kZWwsaSxbZV0pLnJlZG8oKSx0aGlzLl9yZW1vdmVMaW5lVG9vbCh0KSx0aGlzLl9zZXRPcmlnaW5hbExpbmVUb29sU2hhcmluZ01vZGUodCxudWxsKX19ZWxzZXtpZigwPT09biYmbnVsbCE9ZS5zdGF0ZS5saW5rS2V5KXtpZih0aGlzLl9jaGFydE1vZGVsLmRhdGFTb3VyY2VGb3JJZCh0KSlyZXR1cm4gdm9pZCB0aGlzLl9taWdyYXRlZFNoYXJlZExpbmVUb29sc0R1cGxpY2F0ZXMuYWRkKGUuaWQpO3RoaXMuX2ludmFsaWRhdGVMaW5lVG9vbE9yU3R1ZHlTdHViKGUuaWQscGVyZm9ybWFuY2Uubm93KCksITApfWlmKDA9PT1lLnN0YXRlLnBvaW50cz8ubGVuZ3RoJiZbIkxpbmVUb29sUmlza1Jld2FyZExvbmciLCJMaW5lVG9vbFJpc2tSZXdhcmRTaG9ydCJdLmluY2x1ZGVzKGUuc3RhdGUudHlwZSkpcmV0dXJuIHRoaXMuX2ludmFsaWRhdGVMaW5lVG9vbE9yU3R1ZHlTdHViKHQscGVyZm9ybWFuY2Uubm93KCksITApLHZvaWQgdGhpcy5fc2V0T3JpZ2luYWxMaW5lVG9vbFNoYXJpbmdNb2RlKHQsbik7Y29uc3QgYT10aGlzLl9yZXN0b3JlTGluZVRvb2wocyxlLG4sbyk7aWYoYSlpZihlLmdyb3VwSWQpe2NvbnN0IHQ9dGhpcy5fY2hhcnRNb2RlbC5saW5lVG9vbHNHcm91cE1vZGVsKCkuZ3JvdXBGb3JMaW5lVG9vbChhKSxzPXRoaXMuX2NoYXJ0TW9kZWwubGluZVRvb2xzR3JvdXBNb2RlbCgpLmdyb3VwRm9ySWQoZS5ncm91cElkKTtpZihudWxsIT09dCYmcz09PXQpcmV0dXJuO2lmKG51bGwhPT10JiYodC5leGNsdWRlSXRlbShhKSwwPT09dC5saW5lVG9vbHMoKS5sZW5ndGgmJjA9PT10LnN1Ymdyb3VwcygpLmxlbmd0aCYmdGhpcy5fY2hhcnRNb2RlbC5saW5lVG9vbHNHcm91cE1vZGVsKCkucmVtb3ZlR3JvdXAodCkpLHMmJiFzLmNvbnRhaW5zSXRlbShhKSlzLmFkZEl0ZW1zKFthXSk7ZWxzZSBpZighcyYmaS5oYXMoZS5ncm91cElkKSl7Y29uc3QgdD0oMCxyLmVuc3VyZURlZmluZWQpKGkuZ2V0KGUuZ3JvdXBJZCkpO3RoaXMuX2NoYXJ0TW9kZWwubGluZVRvb2xzR3JvdXBNb2RlbCgpLmNyZWF0ZUdyb3VwKFthXSx0Lm5hbWUsdC5pZCl9fWVsc2V7dGhpcy5fY2hhcnRNb2RlbC5saW5lVG9vbHNHcm91cE1vZGVsKCkucmVtb3ZlTGluZVRvb2xzKFthXSkuZm9yRWFjaCgoZT0+e3RoaXMuX2ludmFsaWRhdGVMaW5lVG9vbEdyb3VwKGUscGVyZm9ybWFuY2Uubm93KCksITApfSkpfXRoaXMuX3NldE9yaWdpbmFsTGluZVRvb2xTaGFyaW5nTW9kZSh0LG4pfX1hc3luYyBfYXBwbHlMaW5lVG9vbHNBbmRHcm91cHNEVE8oZSx0LGkpe2NvbnN0IHM9dGhpcy5fY2hhcnRNb2RlbC5jaGFydFNhdmVUaW1lKCksbj10aGlzLl93aXRob3V0SW52YWxpZGF0aW5nKCgoKT0+dGhpcy5fcmVzdG9yZUdyb3VwcyhzLGUsdCxpKSkpLHI9YENoYXJ0U3RvcmFnZS5TeW5jaHJvbml6ZXIuQXBwbHlpbmdEVE8uJHtgJHt0aGlzLl9vcmlnaW4ubGF5b3V0SWR9LiR7dGhpcy5fb3JpZ2luLmNoYXJ0SWR9YH1gLG89bmV3IFNldDtpZigoZS5zb3VyY2VzfHxuZXcgTWFwKS5mb3JFYWNoKChlPT57ZSYmby5hZGQoKDAsdy5nZXRMaW5lVG9vbFR5cGVGcm9tU3RhdGUpKGUuc3RhdGUpKX0pKSxhd2FpdCBQcm9taXNlLmFsbChBcnJheS5mcm9tKG8pLm1hcCgoZT0+KDAsYy5pbml0TGluZVRvb2wpKGUpKSkpLCF0aGlzLl9kZXN0cm95ZWQpcmV0dXJuKDAsbC5wZXJmTWVhc3VyZU9wZXJhdGlvbikociwoKCk9PnRoaXMuX3dpdGhvdXRJbnZhbGlkYXRpbmcoKCgpPT57dGhpcy5fY2hhcnRNb2RlbC5idWxrQWN0aW9uTWFjcm8oKCgpPT57KGUuc291cmNlc3x8bmV3IE1hcCkuZm9yRWFjaCgoKGUscik9Pnt0cnl7aWYoZSYmKDAsYi5pc010cFByZWRpY3RvclRvb2xOYW1lKShlLnN0YXRlLnR5cGUpKXJldHVybiB2b2lkIFQubG9nV2FybihgTm8gbG9uZ2VyIHN1cHBvcnRlZCB0b29sICR7ZS5zdGF0ZS50eXBlfSBpcyBza2lwcGVkIHdoaWxlIHJlc3RvcmluZyBzdGF0ZWApO3RoaXMuX3Jlc3RvcmVMaW5lRFRPKGUscixuLHMsdCxpKX1jYXRjaCh0KXtULmxvZ0Vycm9yKGBFcnJvciByZXN0b3JpbmcgbGluZSB0b29sICR7cn0gKCR7ZT8uc3RhdGUudHlwZX0pOiAke3R9YCksZT8uc3RhdGUudHlwZSYmIW8uaGFzKGUuc3RhdGUudHlwZSkmJlQubG9nRXJyb3IoYExpbmUgdG9vbCAke2Uuc3RhdGUudHlwZX0gbWF5IG5lZWQgdG8gYmUgaW5pdGlhbGlzZWQgZmlyc3RgKX19KSksKGUuZ3JvdXBzfHxuZXcgTWFwKS5mb3JFYWNoKCgoZSx0KT0+e3RoaXMuX2ludmFsaWRhdGVkTGluZVRvb2xHcm91cHMuZGVsZXRlKHQpfSkpLHRoaXMuX3JlY2FsY3VsYXRlSGFzQ2hhbmdlcygpfSkpfSkpKSl9X3dpdGhvdXRJbnZhbGlkYXRpbmcoZSl7dHJ5e3JldHVybiB0aGlzLl9pZ25vcmVJbnZhbGlkYXRpbmdFdmVudHNEZXB0aCsrLGUoKX1maW5hbGx5e3RoaXMuX2lnbm9yZUludmFsaWRhdGluZ0V2ZW50c0RlcHRoLS19fV9pbnZhbGlkYXRlTGluZVRvb2xPclN0dWR5U3R1YihlLHQsaSl7aWYodGhpcy5faWdub3JlSW52YWxpZGF0aW5nRXZlbnRzRGVwdGg+MCYmIWkpcmV0dXJuCjtjb25zdHtpbnZhbGlkYXRlZFZpYVN5bmNPbmx5OnMsc2F2ZWRUb0NoYXJ0Q29udGVudDpufT10aGlzLl9pbnZhbGlkYXRlZExpbmVUb29sc0FuZFN0dWR5U3R1YnMuZ2V0KGUpfHx7fSxyPSh2b2lkIDA9PT1zfHxzKSYmdGhpcy5pbnZhbGlkYXRlVmlhU3luYygpO3RoaXMuX2ludmFsaWRhdGVkTGluZVRvb2xzQW5kU3R1ZHlTdHVicy5zZXQoZSx7dGltZXN0YW1wOnQsaW52YWxpZGF0ZWRWaWFTeW5jT25seTpyLHNhdmVkVG9DaGFydENvbnRlbnQ6bn0pLHRoaXMuX2hhc0NoYW5nZXMuc2V0VmFsdWUoITApLHRoaXMuX2RlYm91bmNlZFNhdmUoKX1faW52YWxpZGF0ZUxpbmVUb29sR3JvdXAoZSx0LGkpe2lmKHRoaXMuX2lnbm9yZUludmFsaWRhdGluZ0V2ZW50c0RlcHRoPjAmJiFpKXJldHVybjtjb25zdHtzYXZlZFRvQ2hhcnRDb250ZW50OnN9PXRoaXMuX2ludmFsaWRhdGVkTGluZVRvb2xHcm91cHMuZ2V0KGUpfHx7fTt0aGlzLl9pbnZhbGlkYXRlZExpbmVUb29sR3JvdXBzLnNldChlLHt0aW1lc3RhbXA6dCxpbnZhbGlkYXRlZFZpYVN5bmNPbmx5OnRoaXMuaW52YWxpZGF0ZVZpYVN5bmMoKSxzYXZlZFRvQ2hhcnRDb250ZW50OnN9KSx0aGlzLl9oYXNDaGFuZ2VzLnNldFZhbHVlKCEwKSx0aGlzLl9kZWJvdW5jZWRTYXZlKCl9X3ByZXBhcmVEVE9JdGVtKGUsdCxpPSExKXtjb25zdCBzPW5ldyBNYXAsbj1uZXcgTWFwLHI9W10sbz1bXTtpZih0aGlzLl9pbnZhbGlkYXRlZExpbmVUb29sc0FuZFN0dWR5U3R1YnMuZm9yRWFjaCgoKG8sYSk9PntpZigwIT09dCYmby5pbnZhbGlkYXRlZFZpYVN5bmNPbmx5KXJldHVybiB2b2lkIHIucHVzaChhKTtjb25zdCBsPXRoaXMuX2NoYXJ0TW9kZWwuZGF0YVNvdXJjZUZvcklkKGEpO2lmKCEoMCxTLmlzU3R1ZHlMaW5lVG9vbFN0dWIpKGwpKWlmKG51bGw9PT1sKXsodGhpcy5fb3JpZ2luYWxMaW5lVG9vbFNoYXJpbmdNb2RlLmdldChhKT09PXR8fGkpJiZzLnNldChhLG51bGwpfWVsc2V7aWYobD09PXRoaXMuX2NoYXJ0TW9kZWwubGluZUJlaW5nQ3JlYXRlZCgpfHxsPT09dGhpcy5fY2hhcnRNb2RlbC5saW5lQmVpbmdFZGl0ZWQoKXx8IWwuaXNTYXZlZEluQ2hhcnQoKSlyZXR1cm47Y29uc3Qgcj1sLm93bmVyU291cmNlKCk9PT10aGlzLl9jaGFydE1vZGVsLm1haW5TZXJpZXMoKSxvPSFlfHxyLGM9bC5zaGFyaW5nTW9kZSgpLnZhbHVlKCk9PT10fHxpO2lmKG8pe2NvbnN0IGU9dGhpcy5fY2hhcnRNb2RlbC5saW5lVG9vbHNHcm91cE1vZGVsKCkuZ3JvdXBGb3JMaW5lVG9vbChsKTtpZihjKXMuc2V0KGEsSShsLHRoaXMuX2NoYXJ0TW9kZWwpKSxudWxsIT09ZSYmbi5zZXQoZS5pZCxMKGUsdGhpcy5fY2hhcnRNb2RlbCkpO2Vsc2V7Y29uc3QgaT10aGlzLl9vcmlnaW5hbExpbmVUb29sU2hhcmluZ01vZGUuZ2V0KGEpO2k9PT10JiZzLnNldChhLG51bGwpLG51bGwhPT1lJiZpPT09dCYmbi5zZXQoZS5pZCxudWxsKX19fX0pKSwwPT09dClmb3IoY29uc3QgZSBvZiB0aGlzLl9taWdyYXRlZFNoYXJlZExpbmVUb29sc0R1cGxpY2F0ZXMpcy5oYXMoZSl8fHMuc2V0KGUsbnVsbCk7cmV0dXJuIHRoaXMuX2ludmFsaWRhdGVkTGluZVRvb2xHcm91cHMuZm9yRWFjaCgoKGUsaSk9PntpZigwIT09dCYmZS5pbnZhbGlkYXRlZFZpYVN5bmNPbmx5KW8ucHVzaChpKTtlbHNlIGlmKCFuLmhhcyhpKSl7Y29uc3QgZT10aGlzLl9jaGFydE1vZGVsLmxpbmVUb29sc0dyb3VwTW9kZWwoKS5ncm91cEZvcklkKGkpO2lmKG51bGw9PT1lKXt0aGlzLl9vcmlnaW5hbExpbmVUb29sR3JvdXBzU2hhcmluZ01vZGUuZ2V0KGkpPT09dCYmbi5zZXQoaSxudWxsKX1lbHNlIGUuc2hhcmluZ01vZGUoKS52YWx1ZSgpPT09dCYmbi5zZXQoaSxMKGUsdGhpcy5fY2hhcnRNb2RlbCkpfX0pKSx7c291cmNlczpzLGdyb3VwczpuLGNsaWVudElkOnRoaXMuX2dlbmVyYXRlT3JpZ2luKCksbGluZVRvb2xzVG9WYWxpZGF0ZTpBcnJheS5mcm9tKHMua2V5cygpKS5jb25jYXQociksZ3JvdXBzVG9WYWxpZGF0ZTpBcnJheS5mcm9tKG4ua2V5cygpKS5jb25jYXQobyl9fV9zZXRPcmlnaW5hbExpbmVUb29sU2hhcmluZ01vZGUoZSx0KXtudWxsIT09dD90aGlzLl9vcmlnaW5hbExpbmVUb29sU2hhcmluZ01vZGUuc2V0KGUsdCk6dGhpcy5fb3JpZ2luYWxMaW5lVG9vbFNoYXJpbmdNb2RlLmRlbGV0ZShlKX1fc2V0T3JpZ2luYWxMaW5lVG9vbEdyb3Vwc1NoYXJpbmdNb2RlKGUsdCl7bnVsbCE9PXQ/dGhpcy5fb3JpZ2luYWxMaW5lVG9vbEdyb3Vwc1NoYXJpbmdNb2RlLnNldChlLHQpOnRoaXMuX29yaWdpbmFsTGluZVRvb2xHcm91cHNTaGFyaW5nTW9kZS5kZWxldGUoZSl9X2xvYWRBbmRNZXJnZUxpbmVUb29sc09uU3R1ZGllcyhlLHQpe2NvbnN0IGk9e3JlcXVlc3RUeXBlOiJzdHVkaWVzTGluZVRvb2xzIixzZXJpZXNTb3VyY2VJZDp0aGlzLl9jaGFydE1vZGVsLm1haW5TZXJpZXMoKS5pZCgpLHNoYXJpbmdNb2RlOmV9LHM9dGhpcy5fY2hhcnRNb2RlbC5tYWluU2VyaWVzKCk7dGhpcy5fbWFrZUxvYWRSZXF1ZXN0QW5kTWVyZ2UoaSwoaT0+e2NvbnN0IHI9dD8oMCxuLmRlZmF1bHQpKEFycmF5LmZyb20odGhpcy5fYWxsTGluZVRvb2xzQW5kU3R1ZHlTdHVicy52YWx1ZXMoKSkubWFwKChlPT5BcnJheS5mcm9tKGUua2V5cygpKSkpKS5maWx0ZXIoKGU9PiFpKGUpKSk6W107dGhpcy5fdW5sb2FkTGluZVRvb2xzKHIsKGU9PmUub3duZXJTb3VyY2UoKSE9PXMpLGUpfSkpfV9sb2FkQW5kTWVyZ2VMaW5lVG9vbHNXaXRob3V0U3ltYm9sKGUsdCxpKXtjb25zdCBzPXtyZXF1ZXN0VHlwZToibGluZVRvb2xzV2l0aG91dFN5bWJvbCIsc2VyaWVzU291cmNlSWQ6dGhpcy5fY2hhcnRNb2RlbC5tYWluU2VyaWVzKCkuaWQoKSxzaGFyaW5nTW9kZTplfSxuPXRoaXMuX2NoYXJ0TW9kZWwubWFpblNlcmllcygpLG89KDAsci5lbnN1cmVOb3ROdWxsKSh0aGlzLl9jaGFydE1vZGVsLnBhbmVGb3JTb3VyY2UobikpLGE9dGhpcy5fYWxsTGluZVRvb2xzQW5kU3R1ZHlTdHVicy5nZXQoby5pZCgpKTtyZXR1cm4gdGhpcy5fbWFrZUxvYWRSZXF1ZXN0QW5kTWVyZ2UocywoaT0+ewpjb25zdCBzPXQmJmE/QXJyYXkuZnJvbShhLmtleXMoKSkuZmlsdGVyKChlPT4haShlKSkpOltdO3RoaXMuX3VubG9hZExpbmVUb29scyhzLChlPT4hZS5ib3VuZFRvU3ltYm9sKCkmJmUub3duZXJTb3VyY2UoKT09PW4pLGUpfSksdm9pZCAwLGkpfV9yZWNhbGN1bGF0ZUhhc0NoYW5nZXMoKXt0aGlzLl9oYXNDaGFuZ2VzLnNldFZhbHVlKHRoaXMuX3RyeVRvU2F2ZUNoYXJ0U3RhdGVNaWdyYXRpb25zT25jZT90aGlzLl9pbnZhbGlkYXRlZExpbmVUb29sc0FuZFN0dWR5U3R1YnMuc2l6ZT4wfHx0aGlzLl9pbnZhbGlkYXRlZExpbmVUb29sR3JvdXBzLnNpemU+MHx8dGhpcy5fbWlncmF0ZWRTaGFyZWRMaW5lVG9vbHNEdXBsaWNhdGVzLnNpemU+MDpCKHRoaXMuX2ludmFsaWRhdGVkTGluZVRvb2xzQW5kU3R1ZHlTdHVicyl8fEIodGhpcy5faW52YWxpZGF0ZWRMaW5lVG9vbEdyb3Vwcyl8fHRoaXMuX21pZ3JhdGVkU2hhcmVkTGluZVRvb2xzRHVwbGljYXRlcy5zaXplPjApfV9nZW5lcmF0ZU9yaWdpbigpe3JldHVybmAke3RoaXMuX29yaWdpbi5sYXlvdXRJZH0vJHt0aGlzLl9vcmlnaW4uY2hhcnRJZH0vJHt0aGlzLl9vcmlnaW4uY2xpZW50SWR9YH19ZnVuY3Rpb24gVihlKXtmb3IoY29uc3RbLHRdb2YgZSl0LnNhdmVkVG9DaGFydENvbnRlbnQ9ITB9ZnVuY3Rpb24gQihlKXtmb3IoY29uc3RbLHRdb2YgZSlpZighdC5zYXZlZFRvQ2hhcnRDb250ZW50KXJldHVybiEwO3JldHVybiExfWZ1bmN0aW9uIE4oZSl7Zm9yKGNvbnN0Wyx0XW9mIGUpaWYodC5zYXZlZFRvQ2hhcnRDb250ZW50KXJldHVybiEwO3JldHVybiExfX0sMjkxODQzKGUsdCxpKXsidXNlIHN0cmljdCI7aS5kKHQse2lzVGFibGVWaWV3QWxsb3dlZEZvclN5bWJvbDooKT0+bn0pO3ZhciBzPWkoNTgzMDM4KTtmdW5jdGlvbiBuKGUpe3JldHVybiFlfHwiRUNPTk9NSUNTIiE9PSgwLHMuc3BsaXRTeW1ib2xOYW1lKShlLmZ1bGxfbmFtZSlbMF19fSw3MjI1NzEoZSx0LGkpeyJ1c2Ugc3RyaWN0IjtpLmQodCx7VFZDaGFydEFwaTooKT0+bGV9KTt2YXIgcz1pKDIwMzY4MSksbj1pKDU0Nzg1MSkscj1pKDIwNjY3Myksbz1pKDMwNDIyMSksYT1pKDgxNzM1MCksbD1pKDEzODYzOCksYz1pKDYwMTg0MSksaD1pKDIzMjM2NCksZD1pKDIyMTA2MSksdT1pKDc4MDk3NSkscD1pKDc3MzA4OCksXz1pKDkzMDIzMSksbT1pKDYwNjEwKSxnPWkoNDAzNiksZj1pKDUyMTMzMyksUz1pKDIxNzUyNyksdj1pKDc0Njk0OSkseT1pKDY2MTg1OCksYj1pKDM4NDAxNyksdz1pKDg4OTUxNSksQz1pKDc2ODc2MCksUD1pKDU4OTc0OSksVD1pKDExNjMxMCkseD1pKDQ3OTM0KSxNPWkoNTY5Mzk4KSxJPWkoODYyMjEzKSxMPWkoMTE3MzEzKSxBPWkoMTU2ODUwKSxrPWkoNjQwNzQ0KSxEPWkoNzgzMzQwKSxFPWkoOTMwMDQ1KSxSPWkoNDYzNDQ3KTtjb25zdCBWPSgwLGQuZ2V0TG9nZ2VyKSgiQ2hhcnQuU3R1ZGllcy5TdHVkeU1ldGFJbmZvUmVwb3NpdG9yeSIse2NvbG9yOiIjNjA2In0pLEI9KDAsZC5nZXRMb2dnZXIpKCJDaGFydEFwaS5UcmFmZmljTWV0ZXIiLHttYXhDb3VudDoyMCxjb2xvcjoiIzI2OCJ9KSxOPSgwLGQuZ2V0TG9nZ2VyKSgiQ2hhcnRBcGkuQ29yZSIse2NvbG9yOiIjNzA2In0pLE89KDAsZC5nZXRMb2dnZXIpKCJDaGFydEFwaS5DaGFydFNlc3Npb24iLHtjb2xvcjoiIzcwNiJ9KSxXPSgwLGQuZ2V0TG9nZ2VyKSgiQ2hhcnRBcGkuQ2hhcnRTZXNzaW9uIix7aGlnaFJhdGU6ITAsbWF4Q291bnQ6MTAwLGNvbG9yOiIjNzA2In0pLEY9KDAsZC5nZXRMb2dnZXIpKCJDaGFydEFwaS5DaGFydFNlc3Npb24iLHttYXhDb3VudDowLGNvbG9yOiIjNzA2In0pLEg9KDAsZC5nZXRMb2dnZXIpKCJDaGFydEFwaS5DaGFydFNlc3Npb24iLHttYXhDb3VudDo1MCxjb2xvcjoiIzcwNiJ9KSx6PSgwLGQuZ2V0TG9nZ2VyKSgiQ2hhcnRBcGkuUXVvdGVTZXNzaW9uIix7bWF4Q291bnQ6NTAsY29sb3I6IiM2NjAifSksVT0oMCxkLmdldExvZ2dlcikoIkNoYXJ0QXBpLlF1b3RlU2Vzc2lvbiIse2hpZ2hSYXRlOiEwLG1heENvdW50OjEwLGNvbG9yOiIjNjYwIn0pLEc9ISgwLEwuaXNPbk1vYmlsZUFwcFBhZ2UpKCJhbnkiKSxqPSgwLE0uaXNGZWF0dXJlRW5hYmxlZCkoImJyb2tlcl9pZF9zZXNzaW9uIikscT0oMCxNLmlzRmVhdHVyZUVuYWJsZWQpKCJjaGVja19hdXRoX3Rva2VuX2V4cGlyYXRpb25fb25fZXZlcnlfcmVxdWVzdCIpO2xldCAkPSExLFk9ITEsSz0hMTtjb25zdCBYPVsiIiwiS0IiLCJNQiIsIkdCIiwiVEIiXTtmdW5jdGlvbiBaKGUpe2lmKDA9PT1lKXJldHVybiIwIjtjb25zdCB0PSgwLGsudG9JbnQpKE1hdGguZmxvb3IoTWF0aC5sb2coZSkvTWF0aC5sb2coMTAyNCkpKTtyZXR1cm4oZS9NYXRoLnBvdygxMDI0LHQpKS50b0ZpeGVkKDIpK1hbdF19ZnVuY3Rpb24gSihlLHQpe3JldHVybmAke2V9X18ke3R9YH1mdW5jdGlvbiBRKGUsdCxpKXtjb25zdCBzPXRbaV0/PzA7dFtpXT1zK2V9Y29uc3QgZWU9US5iaW5kKG51bGwsMSksdGU9US5iaW5kKG51bGwsLTEpLGllPSgwLF8uaXNGZWF0dXJlc2V0RW5hYmxlZCkoIndpZGdldCIpPyJzdHVkaWVzX21ldGFkYXRhX3dpZGdldCI6InN0dWRpZXNfbWV0YWRhdGEiLHNlPSIvY2hhcnQtYXBpL3Byb19oYXNoIixuZT0oMCxfLmlzRmVhdHVyZXNldEVuYWJsZWQpKCJ3aWRnZXQiKT8iL2NoYXJ0LWFwaS9zdHVkaWVzX21ldGFkYXRhX3dpZGdldCI6Ii9jaGFydC1hcGkvc3R1ZGllc19tZXRhZGF0YSI7bGV0IHJlPW51bGw7ZnVuY3Rpb24gb2UoKXtpZihudWxsPT09cmUpe2NvbnN0IGU9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcignbGlua1tyZWx+PSJjb252ZXJzaW9ucy1jb25maWciXScpLHQ9bmV3IFVSTCgoMCxsLmVuc3VyZU5vdE51bGwpKGUpLmhyZWYpO3JlPSgwLGIuZmV0Y2gpKHQudG9TdHJpbmcoKSx7bWV0aG9kOiJHRVQifSkudGhlbigoZT0+e2lmKCFlLm9rKXRocm93IG5ldyBFcnJvcihgRmFpbGVkIHRvIGxvYWQgY29udmVyc2lvbnMgY29uZmlnIGZyb20gJHtlLnVybH0gd2l0aCBzdGF0dXMgJHtlLnN0YXR1c30gYW5kIHN0YXR1c1RleHQgJHtlLnN0YXR1c1RleHR9LmApO3JldHVybiBlLmpzb24oKQp9KSkudGhlbigoZT0+e2NvbnN0IHQ9KDAsSS5nZXRMb2dvVXJsUmVzb2x2ZXIpKCk7cmV0dXJuIGUuY3VycmVuY2llcy5mb3JFYWNoKChlPT57dm9pZCAwIT09ZS5sb2dvaWQmJihlLmxvZ29Vcmw9dC5nZXRTeW1ib2xMb2dvVXJsKGUubG9nb2lkLEkuTG9nb1NpemUuTWVkaXVtKSl9KSksZX0pKX1yZXR1cm4gcmV9bGV0IGFlPW51bGw7Y2xhc3MgbGV7Y29uc3RydWN0b3IoZSl7dGhpcy5zZXNzaW9uaWQ9bnVsbCx0aGlzLl9iYW5JbmZvPW5ldyBoLldhdGNoZWRWYWx1ZShudWxsKSx0aGlzLl9pc0F1dGhUb2tlbkxvYWRlZD0hMSx0aGlzLl9hdXRoVG9rZW5EZmQ9bnVsbCx0aGlzLl9zZXJ2ZXJUaW1lQmFzZVBvaW50PURhdGUubm93KCktcGVyZm9ybWFuY2Uubm93KCksdGhpcy5faW5pdENhY2hlUHJvbWlzZT0oMCxULmNyZWF0ZUpzb25TZXJpYWxpemFibGVDYWNoZSkoIlRWQ2hhcnRBcGkiKSx0aGlzLl90cmFmZmljU3RhdHM9e3RvdGFsOjAsc2luY2VDb25uZWN0OjAsbGFzdENodW5rOjB9LHRoaXMuX2xvd1F1YWxpdHlFbmFibGVkPSExLHRoaXMuX2Jyb2tlcklkPSIiLHRoaXMuX3NlbmRpbmdRdWV1ZWRSZXF1ZXN0c0NvdW50PTAsdGhpcy5fbW9kaWZ5U3R1ZHlNYXA9bmV3IE1hcCx0aGlzLl9kaXNjb25uZWN0Q291bnQ9MCx0aGlzLl9pc0Nvbm5lY3RlZD0hMSx0aGlzLl9tZXRhZGF0YURlZmVycmVkUHJvbWlzZT1udWxsLHRoaXMuX2RhdGFIYW5kbGVNb2R1bGU9bmV3IEUuSlNPTkRhdGFIYW5kbGVyLHRoaXMuX3Nlc3Npb25zPXt9LHRoaXMuX25vdGlmaWNhdGlvbkhhbmRsZXJzPXt9LHRoaXMuX3BlbmRpbmdNZXNzYWdlc1F1ZXVlPVtdLHRoaXMuX2xvYWROZXdCYXJzPSExLHRoaXMuX21ldGFkYXRhUmVxdWVzdE5leHROdW1iZXI9MSx0aGlzLl9mdW5kYW1lbnRhbENvdW50ZXI9e30sdGhpcy5fc3R1ZHlDb3VudGVyPXt9LHRoaXMuX2NoaWxkU3R1ZHlDb3VudGVyPXt9LHRoaXMuX3N0dWR5U3BlY3M9bmV3IE1hcCx0aGlzLl9jb25uZWN0aW9uc0xpbWl0UmVhY2hlZD1uZXcgaC5XYXRjaGVkVmFsdWUoITEpLHRoaXMuX3NlbnRNZXRob2RzQ291bnRlcnM9bmV3IE1hcCx0aGlzLl9yZWNlaXZlZE1ldGhvZHNDb3VudGVycz1uZXcgTWFwLHRoaXMuX3JlcXVlc3REYXRhUHJvYmxlbXNQcm9taXNlPW51bGwsdGhpcy5fd3NCYWNrZW5kQ29ubmVjdGlvbj1lLHRoaXMuX3dzQmFja2VuZENvbm5lY3Rpb24ub25SZWNvbm5lY3QodGhpcy5fYmluZFNvY2tldEV2ZW50cy5iaW5kKHRoaXMpKSx0aGlzLl93c0JhY2tlbmRDb25uZWN0aW9uLnNldExvZ2dlcihOLGQuZ2V0TG9nSGlzdG9yeSksdGhpcy5fd3NCYWNrZW5kQ29ubmVjdGlvbi5zZXRUZWxlbWV0cnkoQS50ZWxlbWV0cnkpLHRoaXMuX2JpbmRTb2NrZXRFdmVudHMoKSx0aGlzLl9pc05vbkNvdW50ZWRTdHVkeT0oKT0+ITAsd2luZG93Py5UcmFkaW5nVmlldz8ub25DaGFydFBhZ2V8fHRoaXMuX2VuYWJsZUxvd1F1YWxpdHlNb2RlKCksc2V0SW50ZXJ2YWwoKCgpPT57Qi5sb2dOb3JtYWwoIkxhc3QgMzAgc2Vjb25kczoiK1oodGhpcy5fdHJhZmZpY1N0YXRzLmxhc3RDaHVuaykrIiBTaW5jZSBsYXN0IGNvbm5lY3Q6IitaKHRoaXMuX3RyYWZmaWNTdGF0cy5zaW5jZUNvbm5lY3QpKyIgVG90YWwgdHJhZmZpYzoiK1oodGhpcy5fdHJhZmZpY1N0YXRzLnRvdGFsKSksdGhpcy5fdHJhZmZpY1N0YXRzLmxhc3RDaHVuaz0wfSksM2U0KSx0aGlzLl9jb25uZWN0aW9uc0xpbWl0UmVhY2hlZC5zdWJzY3JpYmUoKGU9PntlJiZ0aGlzLmRpc2Nvbm5lY3QoKX0pKX1jb25uZWN0KGUpe3RoaXMuX2Nvbm5lY3RPbmx5T3B0aW9ucz1lLHRoaXMuX3dzQmFja2VuZENvbm5lY3Rpb24uaXNDb25uZWN0ZWQoKXx8dGhpcy5fd3NCYWNrZW5kQ29ubmVjdGlvbi5pc0Nvbm5lY3RpbmcoKXx8dGhpcy5fd3NCYWNrZW5kQ29ubmVjdGlvbi5jb25uZWN0KCl9ZGlzY29ubmVjdCgpe3RoaXMuX3dzQmFja2VuZENvbm5lY3Rpb24uZGlzY29ubmVjdCgpfXNlbnRNZXRob2RzQ291bnRlcnMoKXtyZXR1cm4gdGhpcy5fc2VudE1ldGhvZHNDb3VudGVyc31yZWNlaXZlZE1ldGhvZHNDb3VudGVycygpe3JldHVybiB0aGlzLl9yZWNlaXZlZE1ldGhvZHNDb3VudGVyc31kZWZhdWx0UmVzb2x1dGlvbnMoKXtyZXR1cm4oMCxmLmdldERlZmF1bHRSZXNvbHV0aW9ucykoKX1hdmFpbGFibGVDdXJyZW5jaWVzKCl7cmV0dXJuIG9lKCkudGhlbigoZT0+ZS5jdXJyZW5jaWVzKSl9YXZhaWxhYmxlVW5pdHMoKXtyZXR1cm4gb2UoKS50aGVuKChlPT57Y29uc3QgdD17fTtmb3IoY29uc3QgaSBvZiBlLnVuaXRzKXRbaS50eXBlXXx8KHRbaS50eXBlXT1bXSksdFtpLnR5cGVdLnB1c2goaSk7cmV0dXJuIHR9KSl9YXN5bmMgYXZhaWxhYmxlTWV0cmljcygpe3JldHVybiBmdW5jdGlvbigpe2lmKG51bGw9PT1hZSl7Y29uc3QgZT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdsaW5rW3JlbH49Im1ldHJpY3MtY29uZmlnIl0nKSx0PW5ldyBVUkwoKDAsbC5lbnN1cmVOb3ROdWxsKShlKS5ocmVmKTthZT0oMCxiLmZldGNoKSh0LnRvU3RyaW5nKCkse21ldGhvZDoiR0VUIn0pLnRoZW4oKGFzeW5jIGU9PntpZighZS5vayl0aHJvdyBuZXcgRXJyb3IoYEZhaWxlZCB0byBsb2FkIG1ldHJpY3MgY29uZmlnIGZyb20gJHtlLnVybH0gd2l0aCBzdGF0dXMgJHtlLnN0YXR1c30gYW5kIHN0YXR1c1RleHQgJHtlLnN0YXR1c1RleHR9LmApO2NvbnN0IHQ9YXdhaXQgZS5qc29uKCk7cmV0dXJuIHQubWV0cmljc19mdWxsX25hbWU/LmZvckVhY2goKGU9Pntjb25zdCBpPXQubWV0cmljcy5maW5kKCh0PT50LmlkPT09ZS5pZCkpO2kmJihpLmRlc2NyaXB0aW9uPWUubmFtZSl9KSksdH0pKX1yZXR1cm4gYWV9KCkudGhlbigoZT0+ZS5tZXRyaWNzKSl9YXZhaWxhYmxlUHJpY2VTb3VyY2VzKCl7cmV0dXJuIFByb21pc2UucmVzb2x2ZShbXSl9c3VwcG9ydGVkU3ltYm9sc1R5cGVzKCl7Y29uc3QgZT13aW5kb3cuVHJhZGluZ1ZpZXc/LndpZGdldEN1c3RvbWVyPz8iIgo7cmV0dXJuImJvdmVzcGEiPT09ZT95LmZpbHRlcigoZT0+WyIiLCJzdG9jayIsImZ1dHVyZXMiLCJpbmRleCJdLmluY2x1ZGVzKGUudmFsdWUpKSk6ImNtZSI9PT1lP3kuZmlsdGVyKChlPT5lLnZhbHVlIT09Uy50eXBlcy5RVUFOREwpKTp5fXN5bWJvbHNHcm91cGluZygpe3JldHVybntmdXR1cmVzOi9eKC4rPykoWzEyXSF8XHdcZHs0fSk/JC99fWNvbm5lY3RlZCgpe3JldHVybiEhdGhpcy5faXNDb25uZWN0ZWR9YXV0aFRva2VuTWFuYWdlcigpe3JldHVybigwLGwuZW5zdXJlRGVmaW5lZCkodGhpcy5fYXV0aFRva2VuTWFuYWdlcil9Y3JlYXRlU2Vzc2lvbihlLHQpe3RoaXMuX3Nlc3Npb25zW2VdPXQsdGhpcy5fbm90aWZpY2F0aW9uSGFuZGxlcnNbZV09e30sdGhpcy5jb25uZWN0ZWQoKSYmdGhpcy5faXNBdXRoVG9rZW5Mb2FkZWQmJnQub25NZXNzYWdlKHttZXRob2Q6dS5DaGFydEFwaU1lc3NhZ2VNZXRob2QuQ29ubmVjdGVkLHBhcmFtczpbXX0pfXJlbW92ZVNlc3Npb24oZSl7ZGVsZXRlIHRoaXMuX3Nlc3Npb25zW2VdLGRlbGV0ZSB0aGlzLl9ub3RpZmljYXRpb25IYW5kbGVyc1tlXX1kaXNjb25uZWN0Q291bnQoKXtyZXR1cm4gdGhpcy5fZGlzY29ubmVjdENvdW50fHwwfWdldFBpbmdJbmZvKCl7cmV0dXJuIHRoaXMuX3dzQmFja2VuZENvbm5lY3Rpb24uZ2V0UGluZ0luZm8oKX1jb25uZWN0aW9uQmFuSW5mbygpe3JldHVybiB0aGlzLl9iYW5JbmZvLnJlYWRvbmx5KCl9Y29ubmVjdGlvbnNMaW1pdFJlYWNoZWQoKXtyZXR1cm4gdGhpcy5fY29ubmVjdGlvbnNMaW1pdFJlYWNoZWQucmVhZG9ubHkoKX1zZXJ2ZXJUaW1lKCl7cmV0dXJuIE1hdGgucm91bmQodGhpcy5fc2VydmVyVGltZUJhc2VQb2ludCtwZXJmb3JtYW5jZS5ub3coKSl9Y29tcGVuc2F0ZUNvbm5lY3Rpb25MYWcoZSl7Y29uc3QgdD10aGlzLnNlcnZlclRpbWUoKSxpPU1hdGguZmxvb3IoZS10KTtpPjAmJih0aGlzLl9zZXJ2ZXJUaW1lQmFzZVBvaW50Kz1pKX1zZXRCcm9rZXIoZSl7cmV0dXJuIGU9PT10aGlzLl9icm9rZXJJZHx8KHRoaXMuX2Jyb2tlcklkPWUsdGhpcy5fc2VuZEJyb2tlcklkVG9TZXNzaW9uKHRoaXMuX2Jyb2tlcklkKSl9Y2hhcnRDcmVhdGVTZXNzaW9uKGUsdCl7cmV0dXJuIHRoaXMuX3NlbmRSZXF1ZXN0KCJjaGFydF9jcmVhdGVfc2Vzc2lvbiIsW2UsdF0pfWNoYXJ0RGVsZXRlU2Vzc2lvbihlKXtyZXR1cm4gdGhpcy5fc2VuZFJlcXVlc3QoImNoYXJ0X2RlbGV0ZV9zZXNzaW9uIixbZV0pfXN3aXRjaFRpbWV6b25lKGUsdCl7cmV0dXJuIHRoaXMuX3NlbmRSZXF1ZXN0KCJzd2l0Y2hfdGltZXpvbmUiLFtlLHRdKX1yZXNvbHZlU3ltYm9sKGUsdCxpLHMpe3JldHVybiBBLnRlbGVtZXRyeS50aW1lQ291bnRlcnMuc2VyaWVzWyJyZXNvbHZlX3N5bWJvbF8iK2VdPXdpbmRvdy5wZXJmb3JtYW5jZS5ub3coKSx0aGlzLl9ub3RpZmljYXRpb25IYW5kbGVyc1tlXVt0XT1uZXcgUi5IYW5kbGVySW5mbyhzLHQsITApLHRoaXMuX3NlbmRSZXF1ZXN0KCJyZXNvbHZlX3N5bWJvbCIsW2UsdCxpXSl9cmVxdWVzdEZpcnN0QmFyVGltZShlLHQsaSxzKXtyZXR1cm4gdGhpcy5fbm90aWZpY2F0aW9uSGFuZGxlcnNbZV1bdF09bmV3IFIuSGFuZGxlckluZm8ocyx0LCEwKSx0aGlzLl9zZW5kUmVxdWVzdCgiZ2V0X2ZpcnN0X2Jhcl90aW1lIixbZSx0LGldKX1jcmVhdGVTZXJpZXMoZSx0LGkscyxuLHIsbyxhKXtBLnRlbGVtZXRyeS50aW1lQ291bnRlcnMuc2VyaWVzLm1hcmtzLnB1c2goImNyZWF0ZV9zZXJpZXNfIitlKSx0aGlzLl9ub3RpZmljYXRpb25IYW5kbGVyc1tlXVt0XT1uZXcgUi5IYW5kbGVySW5mbyhhLHQpO2NvbnN0IGw9bnVsbD09PW8/IiI6KDAscC5jb252ZXJ0VGltZUZyYW1lVG9TdHIpKG8sITApO3JldHVybiB0aGlzLl9zZW5kUmVxdWVzdCgiY3JlYXRlX3NlcmllcyIsW2UsdCxpLHMsbixyLGxdKX1yZW1vdmVTZXJpZXMoZSx0KXtyZXR1cm4gZGVsZXRlIHRoaXMuX25vdGlmaWNhdGlvbkhhbmRsZXJzW2VdW3RdLHRoaXMuX3NlbmRSZXF1ZXN0KCJyZW1vdmVfc2VyaWVzIixbZSx0XSl9bW9kaWZ5U2VyaWVzKGUsdCxpLHMsbixyLG8sYSl7dGhpcy5fbm90aWZpY2F0aW9uSGFuZGxlcnNbZV1bdF09bmV3IFIuSGFuZGxlckluZm8oYSx0KTtjb25zdCBsPW51bGw9PT1vPyIiOigwLHAuY29udmVydFRpbWVGcmFtZVRvU3RyKShvLCEwKTtyZXR1cm4gdGhpcy5fc2VuZFJlcXVlc3QoIm1vZGlmeV9zZXJpZXMiLFtlLHQsaSxzLG4sbF0pfWdldFN0dWR5Q291bnRlcihlKXtyZXR1cm4gdGhpcy5fc3R1ZHlDb3VudGVyW2VdPz8wfWdldEZ1bmRhbWVudGFsQ291bnRlcihlKXtyZXR1cm4gdGhpcy5fZnVuZGFtZW50YWxDb3VudGVyW2VdPz8wfWdldENoaWxkU3R1ZHlDb3VudGVyKGUpe3JldHVybiB0aGlzLl9jaGlsZFN0dWR5Q291bnRlcltlXT8/MH1yZXF1ZXN0TW9yZURhdGEoZSx0LGkscyl7aWYodm9pZCAwPT09aXx8dm9pZCAwPT09cyl0aHJvdyBuZXcgRXJyb3IoInVuc3VwcG9ydGVkIHJlcXVlc3QgdG8gbG9hZCBtb3JlIGRhdGEsIGJhcnM9IitpKTtjb25zdCBuPXQ7cmV0dXJuIHRoaXMuX25vdGlmaWNhdGlvbkhhbmRsZXJzW2VdW25dPW5ldyBSLkhhbmRsZXJJbmZvKHMsbiksdGhpcy5fc2VuZFJlcXVlc3QoInJlcXVlc3RfbW9yZV9kYXRhIixbZSxuLGldKX1yZXF1ZXN0TW9yZVRpY2ttYXJrcyhlLHQsaSxzKXtyZXR1cm4gcyYmKHRoaXMuX25vdGlmaWNhdGlvbkhhbmRsZXJzW2VdW3RdPW5ldyBSLkhhbmRsZXJJbmZvKHMsdCkpLHRoaXMuX3NlbmRSZXF1ZXN0KCJyZXF1ZXN0X21vcmVfdGlja21hcmtzIixbZSx0LGldKX1zZXRGdXR1cmVUaWNrbWFya3NNb2RlKGUsdCl7dGhpcy5fc2VuZFJlcXVlc3QoInNldF9mdXR1cmVfdGlja21hcmtzX21vZGUiLFtlLHRdKX1yZXF1ZXN0RGF0YVByb2JsZW1zKCl7cmV0dXJuIHRoaXMuX3JlcXVlc3REYXRhUHJvYmxlbXNQcm9taXNlfHwodGhpcy5fcmVxdWVzdERhdGFQcm9ibGVtc1Byb21pc2U9dGhpcy5jb25uZWN0RGZkLnRoZW4oKCgpPT5uZXcgUHJvbWlzZSgoKGUsdCk9Pnt0aGlzLl9vbkRhdGFQcm9ibGVtc1Byb21pc2VFcnJiYWNrPXQsCnRoaXMuX3NlbmRSZXF1ZXN0KCJyZXF1ZXN0X2RhdGFfcHJvYmxlbXMiLFtdKT90aGlzLl9vbkRhdGFQcm9ibGVtc1Byb21pc2VDYj1lOnQoKX0pKSkpLmZpbmFsbHkoKCgpPT57dGhpcy5fcmVxdWVzdERhdGFQcm9ibGVtc1Byb21pc2U9bnVsbH0pKSksdGhpcy5fcmVxdWVzdERhdGFQcm9ibGVtc1Byb21pc2V9YXN5bmMgcmVxdWVzdE1ldGFkYXRhKCl7cmV0dXJuIG51bGw9PT10aGlzLl9tZXRhZGF0YURlZmVycmVkUHJvbWlzZSYmKHRoaXMuX21ldGFkYXRhRGVmZXJyZWRQcm9taXNlPSgwLEMuY3JlYXRlRGVmZXJyZWRQcm9taXNlKSgpLHRoaXMuX21ldGFkYXRhRGVmZXJyZWRQcm9taXNlLnByb21pc2UuZmluYWxseSgoKCk9Pnt0aGlzLl9tZXRhZGF0YURlZmVycmVkUHJvbWlzZT1udWxsfSkpLHRoaXMuX3JlcXVlc3RNZXRhZGF0YSgpKSx0aGlzLl9tZXRhZGF0YURlZmVycmVkUHJvbWlzZS5wcm9taXNlfWFsbFN0dWRpZXNNZXRhZGF0YSgpe3Rocm93IG5ldyBFcnJvcigiVGhpcyBtZXRob2QgaXMgbm90IGltcGxlbWVudGVkIil9c2V0TG9hZE5ldyhlKXt0aGlzLl9sb2FkTmV3QmFycz0hIWV9c2V0SXNOb25Db3VudGVkU3R1ZHlGbihlKXt0aGlzLl9pc05vbkNvdW50ZWRTdHVkeT1lfWNhbkNyZWF0ZVN0dWR5KGUsdCxpKXtjb25zdHtpZDpzLGNoaWxkOm4sZnVuZGFtZW50YWw6cixmb3JlY2FzdDpvLHN0dWJUaXRsZTphfT10LGM9KDAsbC5lbnN1cmVOb3ROdWxsKSgoMCx4LmdldENvbmZpZykoIlNUVURZX09OX1NUVURZIikpLmNoaWxkX2xpbWl0O2lmKG4mJighKDAseC5lbmFibGVkKSgiU1RVRFlfT05fU1RVRFkiKXx8KHRoaXMuX2NoaWxkU3R1ZHlDb3VudGVyW2VdPz8wKT49YykpcmV0dXJue3N1Y2Nlc3M6ITEscmVhc29uOiJjaGlsZCIsbGltaXRWYWx1ZTpjfTtpZihpKXJldHVybntzdWNjZXNzOiEwfTtpZihvJiYhKDAseC5lbmFibGVkKSgiRlVOREFNRU5UQUxTX0ZPUkVDQVNUIikpcmV0dXJue3N1Y2Nlc3M6ITEscmVhc29uOiJmb3JlY2FzdCIsc2NyaXB0TmFtZTphfTtjb25zdCBoPSgwLGwuZW5zdXJlTm90TnVsbCkoKDAseC5nZXRDb25maWcpKCJGVU5EQU1FTlRBTFNfT05fQ0hBUlQiKSkubGltaXQ7aWYociYmKCEoMCx4LmVuYWJsZWQpKCJGVU5EQU1FTlRBTFNfT05fQ0hBUlQiKXx8dGhpcy5nZXRGdW5kYW1lbnRhbENvdW50ZXIoZSk+PWgpKXJldHVybntzdWNjZXNzOiExLHJlYXNvbjoiZnVuZGFtZW50YWwiLGxpbWl0VmFsdWU6aH07Y29uc3QgZD0oMCxsLmVuc3VyZU5vdE51bGwpKCgwLHguZ2V0Q29uZmlnKSgiSU5ESUNBVE9SU19PTl9DSEFSVCIpKS5saW1pdDtyZXR1cm4gcnx8dGhpcy5faXNOb25Db3VudGVkU3R1ZHkocyl8fCgwLHguZW5hYmxlZCkoIklORElDQVRPUlNfT05fQ0hBUlQiKSYmISh0aGlzLmdldFN0dWR5Q291bnRlcihlKT49ZCk/e3N1Y2Nlc3M6ITB9OntzdWNjZXNzOiExLHJlYXNvbjoiZ2VuZXJhbCIsbGltaXRWYWx1ZTpkfX1jcmVhdGVTdHVkeShlLHQsaSxzLG4scixvLGEpe2NvbnN0IGw9dGhpcy5jYW5DcmVhdGVTdHVkeShlLGEpO3JldHVybiBsLnN1Y2Nlc3N8fCJjaGlsZCIhPT1sLnJlYXNvbj8odGhpcy5fbm90aWZpY2F0aW9uSGFuZGxlcnNbZV1bdF09bmV3IFIuSGFuZGxlckluZm8obyx0KSx0aGlzLl9zZW5kUmVxdWVzdCgiY3JlYXRlX3N0dWR5IixbZSx0LGkscyxuLHJdKSxhLmZ1bmRhbWVudGFsP2VlKHRoaXMuX2Z1bmRhbWVudGFsQ291bnRlcixlKTp0aGlzLl9pc05vbkNvdW50ZWRTdHVkeShhLmlkKXx8ZWUodGhpcy5fc3R1ZHlDb3VudGVyLGUpLGEuY2hpbGQmJmVlKHRoaXMuX2NoaWxkU3R1ZHlDb3VudGVyLGUpLHRoaXMuX3N0dWR5U3BlY3Muc2V0KEooZSx0KSxhKSwhMCk6KCgwLHcuc2hvd1Rvb01hbnlTdHVkaWVzTm90aWNlKShsLmxpbWl0VmFsdWUpLCExKX1tb2RpZnlTdHVkeShlLHQsaSxzLHIsbyl7UShvPW8/PzAsdGhpcy5fY2hpbGRTdHVkeUNvdW50ZXIsZSksMCE9PW8mJigoMCxsLmVuc3VyZURlZmluZWQpKHRoaXMuX3N0dWR5U3BlY3MuZ2V0KEooZSx0KSkpLmNoaWxkPW8+MCksdGhpcy5fbm90aWZpY2F0aW9uSGFuZGxlcnNbZV1bdF09bmV3IFIuSGFuZGxlckluZm8ocix0KTtjb25zdCBhPWUrdDtpZih0aGlzLl9tb2RpZnlTdHVkeU1hcC5oYXMoYSkpe3JldHVybigwLGwuZW5zdXJlRGVmaW5lZCkodGhpcy5fbW9kaWZ5U3R1ZHlNYXAuZ2V0KGEpKShlLHQsaSxzKT8/ITB9e2NvbnN0IHI9KDAsbi5kZWZhdWx0KSgoKGUsdCxpLHMpPT50aGlzLl9zZW5kUmVxdWVzdCgibW9kaWZ5X3N0dWR5IixbZSx0LGksc10pKSw1MDAse21heFdhaXQ6NTUwfSk7cmV0dXJuIHRoaXMuX21vZGlmeVN0dWR5TWFwLnNldChhLHIpLHIoZSx0LGkscyk/PyEwfX1ub3RpZnlTdHVkeShlLHQsaSxzKXtyZXR1cm4gTi5sb2dOb3JtYWwoYFNlbmQgbm90aWZ5X3N0dWR5LCBbJHtlfSwgJHt0fSwgJHtpfSwgJHtKU09OLnN0cmluZ2lmeShzKX1dYCksdGhpcy5fc2VuZFJlcXVlc3QoIm5vdGlmeV9zdHVkeSIsW2UsdCxpLEpTT04uc3RyaW5naWZ5KHMpXSl9cmVtb3ZlU3R1ZHkoZSx0KXtjb25zdCBpPWUrdDtkZWxldGUgdGhpcy5fbm90aWZpY2F0aW9uSGFuZGxlcnNbZV1bdF0sdGhpcy5fbW9kaWZ5U3R1ZHlNYXAuZ2V0KGkpPy5mbHVzaCgpO2NvbnN0IHM9dGhpcy5fc2VuZFJlcXVlc3QoInJlbW92ZV9zdHVkeSIsW2UsdF0pO2lmKCExPT09cylyZXR1cm4hMTt0aGlzLl9tb2RpZnlTdHVkeU1hcC5kZWxldGUoaSk7Y29uc3Qgbj1KKGUsdCkscj0oMCxsLmVuc3VyZURlZmluZWQpKHRoaXMuX3N0dWR5U3BlY3MuZ2V0KG4pKTtyZXR1cm4gdGhpcy5fc3R1ZHlTcGVjcy5kZWxldGUobiksci5mdW5kYW1lbnRhbD90ZSh0aGlzLl9mdW5kYW1lbnRhbENvdW50ZXIsZSk6dGhpcy5faXNOb25Db3VudGVkU3R1ZHkoci5pZCl8fHRlKHRoaXMuX3N0dWR5Q291bnRlcixlKSxyLmNoaWxkJiZ0ZSh0aGlzLl9jaGlsZFN0dWR5Q291bnRlcixlKSxzfWNyZWF0ZVBvaW50c2V0KGUsdCxpLHMsbixyLG8pe3JldHVybiB0aGlzLl9ub3RpZmljYXRpb25IYW5kbGVyc1tlXVt0XT1uZXcgUi5IYW5kbGVySW5mbyhvLHQpLAp0aGlzLl9zZW5kUmVxdWVzdCgiY3JlYXRlX3BvaW50c2V0IixbZSx0LGkscyxuLHJdKX1tb2RpZnlQb2ludHNldChlLHQsaSxzLG4pe3JldHVybiB0aGlzLl9ub3RpZmljYXRpb25IYW5kbGVyc1tlXVt0XT1uZXcgUi5IYW5kbGVySW5mbyhuLHQpLHRoaXMuX3NlbmRSZXF1ZXN0KCJtb2RpZnlfcG9pbnRzZXQiLFtlLHQsaSxzXSl9cmVtb3ZlUG9pbnRzZXQoZSx0KXtyZXR1cm4gZGVsZXRlIHRoaXMuX25vdGlmaWNhdGlvbkhhbmRsZXJzW2VdW3RdLHRoaXMuX3NlbmRSZXF1ZXN0KCJyZW1vdmVfcG9pbnRzZXQiLFtlLHRdKX1nZXRNYXJrcyhlLHQsaSxzLG4pe3Rocm93IEVycm9yKCJUaGlzIG1ldGhvZCBpcyBub3QgaW1wbGVtZW50ZWQiKX1nZXRUaW1lc2NhbGVNYXJrcyhlLHQsaSxzLG4pe3Rocm93IEVycm9yKCJUaGlzIG1ldGhvZCBpcyBub3QgaW1wbGVtZW50ZWQiKX1xdW90ZUNyZWF0ZVNlc3Npb24oZSl7cmV0dXJuIHRoaXMuX3NlbmRSZXF1ZXN0KCJxdW90ZV9jcmVhdGVfc2Vzc2lvbiIsW2VdKX1xdW90ZURlbGV0ZVNlc3Npb24oZSl7cmV0dXJuIHRoaXMuX3NlbmRSZXF1ZXN0KCJxdW90ZV9kZWxldGVfc2Vzc2lvbiIsW2VdKX1xdW90ZUFkZFN5bWJvbHMoZSx0KXtyZXR1cm4gdGhpcy5fc2VuZFJlcXVlc3QoInF1b3RlX2FkZF9zeW1ib2xzIixbZSx0XSl9cXVvdGVSZW1vdmVTeW1ib2xzKGUsdCl7cmV0dXJuIHRoaXMuX3NlbmRSZXF1ZXN0KCJxdW90ZV9yZW1vdmVfc3ltYm9scyIsW2UsdF0pfXF1b3RlRmFzdFN5bWJvbHMoZSx0KXtyZXR1cm4gdGhpcy5fc2VuZFJlcXVlc3QoInF1b3RlX2Zhc3Rfc3ltYm9scyIsW2UsdF0pfXF1b3RlU2V0RmllbGRzKGUsdCl7cmV0dXJuIHRoaXMuX3NlbmRSZXF1ZXN0KCJxdW90ZV9zZXRfZmllbGRzIixbZSx0XSl9cXVvdGVIaWJlcm5hdGVBbGwoZSl7cmV0dXJuIHRoaXMuX3NlbmRSZXF1ZXN0KCJxdW90ZV9oaWJlcm5hdGVfYWxsIixbZV0pfWRlcHRoQ3JlYXRlU2Vzc2lvbihlLHQsaSl7cmV0dXJuIHRoaXMuX3NlbmRSZXF1ZXN0KCJkZXB0aF9jcmVhdGVfc2Vzc2lvbiIsW2UsdCxpXSl9ZGVwdGhEZWxldGVTZXNzaW9uKGUpe3JldHVybiB0aGlzLl9zZW5kUmVxdWVzdCgiZGVwdGhfZGVsZXRlX3Nlc3Npb24iLFtlXSl9ZGVwdGhTZXRTeW1ib2woZSx0KXtyZXR1cm4gdGhpcy5fc2VuZFJlcXVlc3QoImRlcHRoX3NldF9zeW1ib2wiLFtlLHRdKX1kZXB0aENsZWFyU3ltYm9sKGUpe3JldHVybiB0aGlzLl9zZW5kUmVxdWVzdCgiZGVwdGhfY2xlYXJfc3ltYm9sIixbZV0pfWRlcHRoU2V0U2NhbGUoZSx0KXtyZXR1cm4gdGhpcy5fc2VuZFJlcXVlc3QoImRlcHRoX3NldF9zY2FsZSIsW2UsdF0pfXVucGFjayhlKXtyZXR1cm4gdGhpcy5fZGF0YUhhbmRsZU1vZHVsZS51bnBhY2soZSl9c2VuZFJlcXVlc3QoZSx0KXtyZXR1cm4gdGhpcy5fc2VuZFJlcXVlc3QoZSx0KX1zZXRWaXNpYmxlVGltZVJhbmdlKCl7dGhyb3cgbmV3IEVycm9yKCJzZXRWaXNpYmxlVGltZVJhbmdlIGlzIGRlcHJlY2F0ZWQgYW5kIHNob3VsZCBub3QgYmUgdXNlZCIpfV9pbml0KCl7dGhpcy5fbm90aWZpY2F0aW9uSGFuZGxlcnM9e30sdGhpcy5fc3R1ZHlDb3VudGVyPXt9LHRoaXMuX2NoaWxkU3R1ZHlDb3VudGVyPXt9LHRoaXMuX2Z1bmRhbWVudGFsQ291bnRlcj17fSx0aGlzLl9tb2RpZnlTdHVkeU1hcD1uZXcgTWFwfV9jaGVja0F1dGhUb2tlbkV4cGlyYXRpb24oZSl7MD09PXRoaXMuX3NlbmRpbmdRdWV1ZWRSZXF1ZXN0c0NvdW50JiZ0aGlzLl9hdXRoVG9rZW5NYW5hZ2VyJiYhdGhpcy5fYXV0aFRva2VuTWFuYWdlci5jdXJyZW50VG9rZW5Jc1ZhbGlkKCkmJihOLmxvZ0luZm8oZSksdGhpcy5fYXV0aFRva2VuTWFuYWdlci5yZXNldCgpKX1fc2VuZFJlcXVlc3QoZSx0KXtyZXR1cm4gcSYmdGhpcy5fY2hlY2tBdXRoVG9rZW5FeHBpcmF0aW9uKCJBdXRoVG9rZW4gaW52YWxpZGF0aW9uIGRldGVjdGVkIG9uIHNlbmRpbmcgYSBtZXNzYWdlLCByZXF1ZXN0aW5nIG5ldyB0b2tlbiIpLDAhPT10aGlzLl9zZW5kaW5nUXVldWVkUmVxdWVzdHNDb3VudD8odGhpcy5fcGVuZGluZ01lc3NhZ2VzUXVldWUucHVzaCh7bWV0aG9kOmUsYXJnczp0fSksITApOnRoaXMuX3NlbmRSZXF1ZXN0SW1wbChlLHQpfV9zZW5kUmVxdWVzdEltcGwoZSx0KXtjb25zdCBpPXRoaXMuX3NlbnRNZXRob2RzQ291bnRlcnMuZ2V0KGUpPz8wO3RoaXMuX3NlbnRNZXRob2RzQ291bnRlcnMuc2V0KGUsaSsxKTtjb25zdCBuPXRoaXMuX2RhdGFIYW5kbGVNb2R1bGVbZV0uYXBwbHkodGhpcy5fZGF0YUhhbmRsZU1vZHVsZSx0KSxsPXttOmUscDooMCxzLmRlZmF1bHQpKG4pfSxoPWwubS5pbmNsdWRlcygic3R1ZHkiKSYmbC5wWzVdO2gmJmZ1bmN0aW9uKGUpe2lmKCEoMCxjLmlzT2JqZWN0KShlKSlyZXR1cm4hMTtmb3IoY29uc3QgdCBvZiBPYmplY3Qua2V5cyhlKSl7Y29uc3QgaT1lW3RdO2lmKCEoKDAsYy5pc09iamVjdCkoaSl8fCgwLG8uZGVmYXVsdCkoaSl8fCgwLHIuZGVmYXVsdCkoaSl8fCgwLGEuZGVmYXVsdCkoaSkpKXJldHVybiExfXJldHVybiEwfShoKSYmInRleHQiaW4gaCYmKGgudGV4dD1oLnRleHQuc2xpY2UoMCwxMCkpO2NvbnN0IGQ9SlNPTi5zdHJpbmdpZnkobCk7aWYobi5sZW5ndGg+MCl7Y29uc3QgZT1uWzBdO2Uuc3RhcnRzV2l0aCgicXNfIik/ei5sb2dOb3JtYWwoInNlbmQ6ICIrZCk6ZS5zdGFydHNXaXRoKCJjc18iKSYmTy5sb2dOb3JtYWwoInNlbmQ6ICIrZCw0MDk2KX1lbHNlIE4ubG9nTm9ybWFsKCJzZW5kOiAiK2QpO2NvbnN0IHU9dGhpcy5fZGF0YUhhbmRsZU1vZHVsZS5wcmVwYXJlRW5jb2RlTWVzc2FnZShlLG4pO3JldHVybiB0aGlzLl93c0JhY2tlbmRDb25uZWN0aW9uLnNlbmQodSl9X29uQ29ubmVjdCgpe2lmKHRoaXMuY29ubmVjdGVkKCkpcmV0dXJuO2lmKHRoaXMuX3RyYWZmaWNTdGF0cy5zaW5jZUNvbm5lY3Q9MCx0aGlzLl9pc0F1dGhUb2tlbkxvYWRlZD0hMSx0aGlzLl9jb25uZWN0T25seU9wdGlvbnM9dGhpcy5fY29ubmVjdE9ubHlPcHRpb25zfHx7fSwKdGhpcy5fYXV0aFRva2VuRGZkPXRoaXMuX2dldEF1dGhUb2tlbkRmZCh0aGlzLl9jb25uZWN0T25seU9wdGlvbnMudG9rZW5HcmFiU2Vzc2lvbiksdGhpcy5fY29ubmVjdE9ubHlPcHRpb25zPXt9LHRoaXMuc2Vzc2lvbmlkPXRoaXMuX3dzQmFja2VuZENvbm5lY3Rpb24uZ2V0U2Vzc2lvbklkKCksIXRoaXMuc2Vzc2lvbmlkfHx0aGlzLl9pc0Nvbm5lY3RlZClyZXR1cm47dGhpcy5fcGVuZGluZ01lc3NhZ2VzUXVldWU9W10sdGhpcy5fc2VuZGluZ1F1ZXVlZFJlcXVlc3RzQ291bnQ9MCx0aGlzLl9zdHVkeUNvdW50ZXI9e30sdGhpcy5fY2hpbGRTdHVkeUNvdW50ZXI9e30sdGhpcy5fZnVuZGFtZW50YWxDb3VudGVyPXt9LHRoaXMuX3N0dWR5U3BlY3MuY2xlYXIoKSx0aGlzLl9pc0Nvbm5lY3RlZD0hMCx0aGlzLl9iYW5JbmZvLnNldFZhbHVlKG51bGwpLHRoaXMuX2Nvbm5lY3Rpb25zTGltaXRSZWFjaGVkLnNldFZhbHVlKCExKTtjb25zdCBlPUpTT04ucGFyc2UodGhpcy5zZXNzaW9uaWQpO3RoaXMuX3NlbmRMb3dRdWFsaXR5TW9kZUlmRW5hYmxlZCgpLHRoaXMuX21ldGFkYXRhU2VydmVySGFzaD1lLnN0dWRpZXNfbWV0YWRhdGFfaGFzaHx8bnVsbDtjb25zdCB0PXRoaXMuX3dzQmFja2VuZENvbm5lY3Rpb24uZ2V0Q29ubmVjdGlvbkVzdGFibGlzaGVkKCk7dHJ5e3RoaXMuX3NlcnZlclRpbWVCYXNlUG9pbnQ9TWF0aC5yb3VuZChlLnRpbWVzdGFtcE1zLXQpfWNhdGNoKGUpe3RoaXMuX3NlcnZlclRpbWVCYXNlUG9pbnQ9RGF0ZS5ub3coKS1wZXJmb3JtYW5jZS5ub3coKX1pZihOLmxvZ0luZm8oIlRpbWUgc2hpZnQgd2l0aCBzZXJ2ZXI6ICIrdGhpcy5fZm9ybWF0VGltZSh0aGlzLnNlcnZlclRpbWUoKS1EYXRlLm5vdygpKSksdGhpcy5fYXV0aFRva2VuRGZkKXt0aGlzLl9zZW5kaW5nUXVldWVkUmVxdWVzdHNDb3VudCs9MSxOLmxvZ0luZm8oIldhaXQgZm9yIGF1dGggdG9rZW4gYmVmb3JlIHNlbmQgbWVzc2FnZXMiKTtjb25zdCBlPXRoaXMuX2F1dGhUb2tlbkRmZDtlLnRoZW4oKHQ9PntpZihudWxsIT09dGhpcy5fYXV0aFRva2VuRGZkJiZ0aGlzLl9hdXRoVG9rZW5EZmQ9PT1lKXtpZihOLmxvZ05vcm1hbCgiQXV0aCB0b2tlbiByZXF1ZXN0IGlzIGZpbmlzaGVkLCB0b2tlbjogIitCb29sZWFuKHQpKSx0aGlzLl9hdXRoVG9rZW5EZmQ9bnVsbCx0KXtjb25zdCBlPVt7bWV0aG9kOiJzZXRfYXV0aF90b2tlbiIsYXJnczpbdF19XTtpZihHKXtjb25zdCB0PXdpbmRvdy5pbml0RGF0YSYmd2luZG93LmluaXREYXRhLmN1cnJlbnRMb2NhbGVJbmZvO3QmJmUucHVzaCh7bWV0aG9kOiJzZXRfbG9jYWxlIixhcmdzOlt0Lmlzbyx0LmZsYWcudG9VcHBlckNhc2UoKV19KX10aGlzLl9wZW5kaW5nTWVzc2FnZXNRdWV1ZS51bnNoaWZ0KC4uLmUpfXRoaXMuX29uU2VuZGluZ1F1ZXVlUmVxdWVzdEZpbmlzaGVkKCksdGhpcy5faXNBdXRoVG9rZW5Mb2FkZWQ9ITAsdGhpcy5fbm90aWZ5U2Vzc2lvbnMoe21ldGhvZDp1LkNoYXJ0QXBpTWVzc2FnZU1ldGhvZC5Db25uZWN0ZWQscGFyYW1zOltdfSl9ZWxzZSBOLmxvZ05vcm1hbCgiQ29tZXMgYXV0aCB0b2tlbiBhZnRlciByZXF1ZXN0aW5nIG5ldyB0b2tlbiBvciBhZnRlciBzb2NrZXQgZGlzY29ubmVjdGVkIil9KSkuY2F0Y2goKGU9PntOLmxvZ05vcm1hbCgoMCxQLmVycm9yVG9TdHJpbmcpKGUpKX0pKX1lbHNlIE4ubG9nV2FybigiRGVmZXJyZWQgYXV0aCB0b2tlbiBvYmplY3QgaXMgbm90IHZhbGlkIiksdGhpcy5faXNBdXRoVG9rZW5Mb2FkZWQ9ITA7IiIhPT10aGlzLl9icm9rZXJJZCYmdGhpcy5fc2VuZEJyb2tlcklkVG9TZXNzaW9uKHRoaXMuX2Jyb2tlcklkKTtjb25zdCBpPXRoaXMuX3dzQmFja2VuZENvbm5lY3Rpb24uZ2V0Q29ubmVjdGlvblN0YXJ0KCk7QS50ZWxlbWV0cnkuc2V0U2Vzc2lvbkluZm8odGhpcy5zZXNzaW9uaWQpLEEudGVsZW1ldHJ5LnNlbmRDaGFydFJlcG9ydCgid2Vic29ja2V0X2Nvbm5lY3RlZCIpLEEudGVsZW1ldHJ5LnNlbmRDaGFydFJlcG9ydCgid2Vic29ja2V0X2Nvbm5lY3Rpb25fdGltZV9mcmFtZSIse3ZhbHVlOnQtaX0pLEEudGVsZW1ldHJ5LnNlbmRDaGFydFJlcG9ydCgicmVjb25uZWN0X2NvdW50X2ZyYW1lIix7dmFsdWU6dGhpcy5fd3NCYWNrZW5kQ29ubmVjdGlvbi5nZXRSZWNvbm5lY3RDb3VudCgpfSksQS50ZWxlbWV0cnkuc2VuZENoYXJ0UmVwb3J0KCJyZWRpcmVjdF9jb3VudF9mcmFtZSIse3ZhbHVlOnRoaXMuX3dzQmFja2VuZENvbm5lY3Rpb24uZ2V0UmVkaXJlY3RDb3VudCgpfSksJHx8KCQ9ITAsQS50ZWxlbWV0cnkuc2VuZENoYXJ0UmVwb3J0KCJiZWZvcmVfd2Vic29ja2V0X2Nvbm5lY3Rpb25fdGltZV9mcmFtZSIse3ZhbHVlOml9KSksdGhpcy5fd3NCYWNrZW5kQ29ubmVjdGlvbi5yZXNldENvdW50ZXJzKCksY2xlYXJUaW1lb3V0KHRoaXMuX3RlbGVtZXRyeURpc2Nvbm5lY3RUaW1lb3V0KX1fZm9ybWF0VGltZShlKXtyZXR1cm5gJHsoZS8xZTMpLnRvRml4ZWQoMil9IHNlY29uZHMuYH1fZGlzcGF0Y2hOb3RpZmljYXRpb24oZSx0KXtpZigicmVxdWVzdF9kYXRhX3Byb2JsZW1zIj09PWUubWV0aG9kJiZ0aGlzLl9vbkRhdGFQcm9ibGVtc1Byb21pc2VDYilyZXR1cm4gdm9pZCB0aGlzLl9vbkRhdGFQcm9ibGVtc1Byb21pc2VDYihlLnBhcmFtcyk7aWYoZS5tZXRob2Q9PT1ELldlYmNoYXJ0Q2hhcnRTZXNzaW9uUmVzcG9uc2VNZXRob2QuU3R1ZGllc01ldGFkYXRhJiZudWxsIT09dGhpcy5fbWV0YWRhdGFEZWZlcnJlZFByb21pc2UpcmV0dXJuIHZvaWQgdGhpcy5fcHJvY2Vzc2VkTWV0YWRhdGEoZSk7Y29uc3QgaT1lLnBhcmFtcy5zaGlmdCgpO2lmKCF0aGlzLl9ub3RpZmljYXRpb25IYW5kbGVyc1tpXSlyZXR1cm47aWYoInN5bWJvbF9yZXNvbHZlZCI9PT1lLm1ldGhvZCl7Y29uc3QgdD1lLnBhcmFtc1sxXS5mdWxsX25hbWU7QS50ZWxlbWV0cnkuc2VuZENoYXJ0UmVwb3J0KCJzeW1ib2xfcmVzb2x2ZWQiLHtjb3VudDoxLGFkZGl0aW9uYWw6e3N5bWJvbDp0fX0pO2NvbnN0IHM9QS50ZWxlbWV0cnkudGltZUNvdW50ZXJzLnNlcmllc1sicmVzb2x2ZV9zeW1ib2xfIitpXQo7Im51bWJlciI9PXR5cGVvZiBzJiZBLnRlbGVtZXRyeS5zZW5kQ2hhcnRSZXBvcnQoInN5bWJvbF9yZXNvbHZlX3RpbWVfZnJhbWUiLHt2YWx1ZTp3aW5kb3cucGVyZm9ybWFuY2Uubm93KCktcyxhZGRpdGlvbmFsOntzeW1ib2w6dH19KX1pZihbInNlcmllc19lcnJvciIsInNlcmllc19jb21wbGV0ZWQiXS5pbmNsdWRlcyhlLm1ldGhvZCkmJkEudGVsZW1ldHJ5LnRpbWVDb3VudGVycy5zZXJpZXMubWFya3MubGVuZ3RoPjApe2NvbnN0IGU9ImNyZWF0ZV9zZXJpZXNfIitpLHQ9QS50ZWxlbWV0cnkudGltZUNvdW50ZXJzLnNlcmllcy5tYXJrcy5pbmRleE9mKGUpO3Q+PTAmJkEudGVsZW1ldHJ5LnRpbWVDb3VudGVycy5zZXJpZXMubWFya3Muc3BsaWNlKHQsMSl9S3x8InNlcmllc19lcnJvciIhPT1lLm1ldGhvZHx8KEs9ITApO2NvbnN0IHM9dGhpcy5fd3NCYWNrZW5kQ29ubmVjdGlvbi5nZXRDb25uZWN0aW9uRXN0YWJsaXNoZWQoKTtpZihudWxsIT09cyYmInNlcmllc19jb21wbGV0ZWQiPT09ZS5tZXRob2QmJihLfHwoSz0hMCxBLnRlbGVtZXRyeS5zZW5kQ2hhcnRSZXBvcnQoImZpcnN0X3Nlcmllc19mdWxsX3RpbWVfZnJhbWUiLHt2YWx1ZTp3aW5kb3cucGVyZm9ybWFuY2Uubm93KCktc30pLEEudGVsZW1ldHJ5LnRpbWVDb3VudGVycy5zZXJpZXMubWFya3M9W10pLFl8fChZPSEwLEEudGVsZW1ldHJ5LnNlbmRDaGFydFJlcG9ydCgicGFnZV9mdWxsX2xvYWRfdGltZV9mcmFtZSIse3ZhbHVlOndpbmRvdy5wZXJmb3JtYW5jZS5ub3coKX0pKSksaS5zdGFydHNXaXRoKCJjc18iKSl7bGV0IGk9InJlY3Y6ICIrdDsiZGF0YV91cGRhdGUiPT09ZS5tZXRob2Q/KGk9KDAsZC5pc0hpZ2hSYXRlRW5hYmxlZCkoKT9pOmkuc2xpY2UoMCw1MDApLFcubG9nTm9ybWFsKHRoaXMuX2FwcGVuZER1cmF0aW9uKGksZS50aW1lKSkpOiJzdHVkeV9sb2FkaW5nIj09PWUubWV0aG9kP0YubG9nTm9ybWFsKHRoaXMuX2FwcGVuZER1cmF0aW9uKGksZS50aW1lKSk6InRpY2ttYXJrX3VwZGF0ZSI9PT1lLm1ldGhvZD9ILmxvZ05vcm1hbCh0aGlzLl9hcHBlbmREdXJhdGlvbihpLGUudGltZSkpOk8ubG9nTm9ybWFsKHRoaXMuX2FwcGVuZER1cmF0aW9uKGksZS50aW1lKSl9aWYoaS5zdGFydHNXaXRoKCJxc18iKSl7KCJxdW90ZV9zeW1ib2xfZGF0YSI9PT1lLm1ldGhvZD9VLmxvZ05vcm1hbDp6LmxvZ05vcm1hbCkoInJlY3Y6ICIrdCl9c3dpdGNoKGUubWV0aG9kKXtjYXNlIEQuV2ViY2hhcnRDaGFydFNlc3Npb25SZXNwb25zZU1ldGhvZC5UaW1lU2NhbGVVcGRhdGU6e2NvbnN0IHQ9dGhpcy5fZGF0YUhhbmRsZU1vZHVsZS5nZXRUaW1lc2NhbGVPYmplY3RzKGUpLHM9dGhpcy5fZGF0YUhhbmRsZU1vZHVsZS5nZXRUaW1lc2NhbGVDaGFuZ2VzZXQoZSksbj10aGlzLl9jb252ZXJ0VGltZXNjYWxlUmVzcG9uc2Uocyk7dGhpcy5fc2Vzc2lvbnNbaV0ub25NZXNzYWdlKHttZXRob2Q6RC5XZWJjaGFydENoYXJ0U2Vzc2lvblJlc3BvbnNlTWV0aG9kLlRpbWVTY2FsZVVwZGF0ZSxwYXJhbXM6bn0pLHRoaXMuX2RhdGFIYW5kbGVNb2R1bGUucHJlcGFyZURhdGFVcGRhdGVPYmplY3RzKGksdCwoKGUsdCxpKT0+e3RoaXMuX2ludm9rZU5vdGlmaWNhdGlvbkhhbmRsZXIoZSx0LGkpfSkpO2JyZWFrfWNhc2UidGlja21hcmtfdXBkYXRlIjpjb25zdCB0PXsuLi50aGlzLl9jb252ZXJ0VGltZXNjYWxlUmVzcG9uc2UoZS5wYXJhbXNbMF0pLGNoYW5nZXM6W119O3RoaXMuX3Nlc3Npb25zW2ldLm9uTWVzc2FnZSh7bWV0aG9kOkQuV2ViY2hhcnRDaGFydFNlc3Npb25SZXNwb25zZU1ldGhvZC5UaW1lU2NhbGVVcGRhdGUscGFyYW1zOnR9KTticmVhaztjYXNlIEQuV2ViY2hhcnRDaGFydFNlc3Npb25SZXNwb25zZU1ldGhvZC5EYXRhVXBkYXRlOntjb25zdCB0PXRoaXMuX2RhdGFIYW5kbGVNb2R1bGUuZ2V0RGF0YVVwZGF0ZU9iamVjdHMoZSk7dGhpcy5fZGF0YUhhbmRsZU1vZHVsZS5wcmVwYXJlRGF0YVVwZGF0ZU9iamVjdHMoaSx0LCgoZSx0LGkpPT57dGhpcy5faW52b2tlTm90aWZpY2F0aW9uSGFuZGxlcihlLHQsaSl9KSk7YnJlYWt9Y2FzZSJpbmRleF91cGRhdGUiOmZvcihjb25zdCB0IGluIGUucGFyYW1zWzBdKWlmKGUucGFyYW1zWzBdLmhhc093blByb3BlcnR5KHQpKXtjb25zdCBzPXttZXRob2Q6ImluZGV4X3VwZGF0ZSIscGFyYW1zOmUucGFyYW1zWzBdW3RdfTt0aGlzLl9pbnZva2VOb3RpZmljYXRpb25IYW5kbGVyKGksdCxzKX1icmVhaztjYXNlIEQuV2ViY2hhcnRSZXNwb25zZU1ldGhvZC5Dcml0aWNhbEVycm9yOk4ubG9nSW5mbyhuZXcgRGF0ZSsiIGNyaXRpY2FsX2Vycm9yIHNlc3Npb246Iit0aGlzLnNlc3Npb25pZCsiIHJlYXNvbjoiK2UucGFyYW1zWzBdKSxBLnRlbGVtZXRyeS5zZW5kQ2hhcnRSZXBvcnQoImNyaXRpY2FsX2Vycm9yIiksdGhpcy5fc2Vzc2lvbnNbaV0ub25NZXNzYWdlKHttZXRob2Q6RC5XZWJjaGFydFJlc3BvbnNlTWV0aG9kLkNyaXRpY2FsRXJyb3IscGFyYW1zOmUucGFyYW1zfSk7YnJlYWs7Y2FzZSJ0aW1lc2NhbGVfY29tcGxldGVkIjpjYXNlInF1b3RlX3N5bWJvbF9kYXRhIjpjYXNlInF1b3RlX2xpc3RfZmllbGRzIjpjYXNlInF1b3RlX2NvbXBsZXRlZCI6Y2FzZSJkZXB0aF9zeW1ib2xfZXJyb3IiOmNhc2UiZGVwdGhfc3ltYm9sX3N1Y2Nlc3MiOmNhc2UiZGQiOmNhc2UiZHB1IjpjYXNlImRlcHRoX2Jhcl9sYXN0X3ZhbHVlIjp0aGlzLl9zZXNzaW9uc1tpXS5vbk1lc3NhZ2Uoe21ldGhvZDplLm1ldGhvZCxwYXJhbXM6ZS5wYXJhbXN9KTticmVhaztjYXNlImNsZWFyX2RhdGEiOmZvcihjb25zdCB0IGluIGUucGFyYW1zWzBdKWUucGFyYW1zWzBdLmhhc093blByb3BlcnR5KHQpJiZ0aGlzLl9pbnZva2VOb3RpZmljYXRpb25IYW5kbGVyKGksdCx7bWV0aG9kOkQuV2ViY2hhcnRDaGFydFNlc3Npb25SZXNwb25zZU1ldGhvZC5DbGVhckRhdGEscGFyYW1zOmUucGFyYW1zWzBdW3RdfSk7YnJlYWs7Y2FzZSBELldlYmNoYXJ0UmVwbGF5U2Vzc2lvblJlc3BvbnNlTWV0aG9kLlJlcGxheVBvaW50OmNhc2UgRC5XZWJjaGFydFJlcGxheVNlc3Npb25SZXNwb25zZU1ldGhvZC5SZXBsYXlSZXNvbHV0aW9uczoKY2FzZSBELldlYmNoYXJ0UmVwbGF5U2Vzc2lvblJlc3BvbnNlTWV0aG9kLlJlcGxheURhdGFFbmQ6Y2FzZSBELldlYmNoYXJ0UmVwbGF5U2Vzc2lvblJlc3BvbnNlTWV0aG9kLlJlcGxheUluc3RhbmNlSWQ6Y2FzZSBELldlYmNoYXJ0UmVwbGF5U2Vzc2lvblJlc3BvbnNlTWV0aG9kLlJlcGxheURlcHRoOmNhc2UgRC5XZWJjaGFydFJlcGxheVNlc3Npb25SZXNwb25zZU1ldGhvZC5SZXBsYXlFcnJvcjpjYXNlIEQuV2ViY2hhcnRSZXBsYXlTZXNzaW9uUmVzcG9uc2VNZXRob2QuUmVwbGF5T2s6dGhpcy5fc2Vzc2lvbnNbaV0ub25NZXNzYWdlKGUpO2JyZWFrO2Nhc2Uic2VyaWVzX3RpbWVmcmFtZSI6Y29uc3Qgcz1lLnBhcmFtc1s0XTtlLnBhcmFtc1s0XT1udWxsPT1zP251bGw6KDAscC5jb252ZXJ0U3RyVG9UaW1lRnJhbWUpKHMpLHRoaXMuX2ludm9rZU5vdGlmaWNhdGlvbkhhbmRsZXIoaSxlLnBhcmFtc1swXSxlKTticmVhaztjYXNlInN5bWJvbF9yZXNvbHZlZCI6IWZ1bmN0aW9uKGUpe2lmKHZvaWQgMD09PWUuY29ycmVjdGlvbnMpe2NvbnN0IHQ9KGUuc3Vic2Vzc2lvbnM/P1tdKS5maW5kKCh0PT50LmlkPT09ZS5zdWJzZXNzaW9uX2lkKSk7dm9pZCAwIT09dCYmKGUuY29ycmVjdGlvbnM9dFsic2Vzc2lvbi1jb3JyZWN0aW9uIl0pfX0oZS5wYXJhbXNbMV0pLHRoaXMuX2ludm9rZU5vdGlmaWNhdGlvbkhhbmRsZXIoaSxlLnBhcmFtc1swXSxlKTticmVhaztkZWZhdWx0OnRoaXMuX2ludm9rZU5vdGlmaWNhdGlvbkhhbmRsZXIoaSxlLnBhcmFtc1swXSxlKX19X25vdGlmeVNlc3Npb25zKGUpe2Zvcihjb25zdCB0IGluIHRoaXMuX3Nlc3Npb25zKWlmKHRoaXMuX3Nlc3Npb25zLmhhc093blByb3BlcnR5KHQpKXtjb25zdCBpPXRoaXMuX3Nlc3Npb25zW3RdOyJmdW5jdGlvbiI9PXR5cGVvZiBpLm9uTWVzc2FnZSYmaS5vbk1lc3NhZ2UoZSl9fV9vbk1lc3NhZ2UoZSl7cSYmdGhpcy5fY2hlY2tBdXRoVG9rZW5FeHBpcmF0aW9uKCJBdXRoVG9rZW4gaW52YWxpZGF0aW9uIGRldGVjdGVkIG9uIHJlY2VpdmluZyBhIG1lc3NhZ2UsIHJlcXVlc3RpbmcgbmV3IHRva2VuIiksdGhpcy5fY2FsY1RyYWZmaWNTdGF0cyhlKTtjb25zdCB0PXRoaXMudW5wYWNrKGUpO3RoaXMuX3JlY2VpdmVkTWV0aG9kc0NvdW50ZXJzLnNldCh0Lm1ldGhvZCwodGhpcy5fcmVjZWl2ZWRNZXRob2RzQ291bnRlcnMuZ2V0KHQubWV0aG9kKT8/MCkrMSksInRfbXMiaW4gdCYmKDAsci5kZWZhdWx0KSh0LnRfbXMpJiZ3aW5kb3cuQ2hhcnRBcGlJbnN0YW5jZS5jb21wZW5zYXRlQ29ubmVjdGlvbkxhZyh0LnRfbXMpLCJwcm90b2NvbF9zd2l0Y2hlZCIhPT10Lm1ldGhvZD8icHJvdG9jb2xfZXJyb3IiIT09dC5tZXRob2Q/dGhpcy5fZGlzcGF0Y2hOb3RpZmljYXRpb24odCxlKTp0aGlzLl9wcm9jZXNzUHJvdG9jb2xFcnJvcih0KTpOLmxvZ0Vycm9yKCJVbmV4cGVjdGVkIHByb3RvY29sIGNoYW5naW5nIHJlcXVlc3QsIHRyeSBza2lwcGluZy4gUmVxdWVzdGVkIHByb3RvY29sOiIrdC5wYXJhbXNbMF0pfWFzeW5jIF9wcm9jZXNzZWRNZXRhZGF0YShlKXtjb25zdCB0PSgwLGwuZW5zdXJlTm90TnVsbCkodGhpcy5fbWV0YWRhdGFEZWZlcnJlZFByb21pc2UpLGk9YXdhaXQgdGhpcy5faW5pdENhY2hlUHJvbWlzZSxuPXdpbmRvdy5wcm8uaGFzaCgpLHI9KDAsXy5pc0ZlYXR1cmVzZXRFbmFibGVkKSgid2lkZ2V0Iik7dHJ5e2F3YWl0IGkuc2V0VmFsdWUobmUsKDAscy5kZWZhdWx0KShlKSk7Y29uc3Qgbz1BcnJheS5mcm9tKG5ldyBTZXQoZS5wYXJhbXNbMV0ubWV0YWluZm8ubWFwKChlPT57cmV0dXJuYCR7KHQ9KDAsZy5wYXJzZUlkU3RyaW5nKShlLmlkKSkucGFja2FnZUlkfS0ke3QudmVyc2lvbn1gO3ZhciB0fSkpKSk7aWYoTi5sb2dOb3JtYWwoYFVwZGF0ZWQgc3R1ZGllc19tZXRhZGF0YSBjYWNoZSwgdW5pcXVlIHBhY2thZ2UgaWRzOiAke28uam9pbigiLCAiKX1gKSwhcil0cnl7YXdhaXQgaS5zZXRWYWx1ZShzZSwoMCxzLmRlZmF1bHQpKG4pKSxOLmxvZ05vcm1hbCgiVXBkYXRlZCBwcm9faGFzaCBjYWNoZSIpfWNhdGNoKGUpe3QucmVqZWN0KCksTi5sb2dFcnJvcigiQ2Fubm90IHVwZGF0ZSBwcm9faGFzaCBjYWNoZSwgcmVhc29uOiAiK2UpfX1jYXRjaChlKXt0LnJlamVjdCgpLE4ubG9nRXJyb3IoIkNhbm5vdCB1cGRhdGUgc3R1ZGllc19tZXRhZGF0YSBjYWNoZSwgcmVhc29uOiAiK2UpfXQucmVzb2x2ZSgoMCxzLmRlZmF1bHQpKGUpKX1faW52b2tlTm90aWZpY2F0aW9uSGFuZGxlcihlLHQsaSl7aWYodm9pZCAwPT09dClyZXR1cm47Y29uc3Qgcz10aGlzLl9ub3RpZmljYXRpb25IYW5kbGVyc1tlXVt0XTt2b2lkIDAhPT1zJiYocy5zaW5nbGVTaG90JiZkZWxldGUgdGhpcy5fbm90aWZpY2F0aW9uSGFuZGxlcnNbZV1bdF0scy5oYW5kbGVyPy4oaSkpfV9jb252ZXJ0VGltZXNjYWxlUmVzcG9uc2UoZSl7cmV0dXJuIHRoaXMuX2RhdGFIYW5kbGVNb2R1bGUuY29udmVydFRpbWVzY2FsZVJlc3BvbnNlKGUpfV9hcHBlbmREdXJhdGlvbihlLHQpe3JldHVybiB0P2Ake2V9LCBkdXJhdGlvbjogJHt0aGlzLl9mb3JtYXRUaW1lKHRoaXMuc2VydmVyVGltZSgpLTFlMyp0KX1gOmV9YXN5bmMgX3JlcXVlc3RNZXRhZGF0YSgpe2NvbnN0IGU9dGhpcy5fbWFrZU5leHRSZXF1ZXN0SWQoKTtWLmxvZ05vcm1hbChgUmVxdWVzdGluZyBtZXRhaW5mbyAjJHtlfWApO2NvbnN0IHQ9KDAsbC5lbnN1cmVOb3ROdWxsKSh0aGlzLl9tZXRhZGF0YURlZmVycmVkUHJvbWlzZSksaT13aW5kb3cucHJvLG49aS5oYXNoKCkscj0oMCxfLmlzRmVhdHVyZXNldEVuYWJsZWQpKCJ3aWRnZXQiKTtOLmxvZ05vcm1hbCgiUmVxdWVzdGluZyBwcm8gaGFzaCIpO3RyeXtjb25zdCBvPWF3YWl0IHRoaXMuX2luaXRDYWNoZVByb21pc2U7YXdhaXQgby5taWdyYXRlVmFsdWUoInByb19oYXNoIixzZSksYXdhaXQgby5taWdyYXRlVmFsdWUoaWUsbmUpO2NvbnN0IGE9YXdhaXQgby5nZXRWYWx1ZShzZSk7aWYobnVsbCE9PWEmJmE9PT1ufHxyKXtOLmxvZ05vcm1hbCgiUHJvIGhhc2ggaGFzIG5vdCBjaGFuZ2VkLCByZXF1ZXN0aW5nIGZyb20gbG9jYWwiKQo7Y29uc3Qgcj1hd2FpdCBvLmdldFZhbHVlKG5lKSxhPW51bGwhPT1yJiZyLnBhcmFtc1sxXS5oYXNofHxudWxsO2lmKG51bGw9PT1hfHxudWxsPT09dGhpcy5fbWV0YWRhdGFTZXJ2ZXJIYXNofHx0aGlzLl9tZXRhZGF0YVNlcnZlckhhc2ghPT1hKU4ubG9nTm9ybWFsKGBNZXRhZGF0YSBoYXNoIGhhcyBjaGFuZ2VkIChjYWNoZWQ6ICcke2F9Jywgc2VydmVyOiAnJHt0aGlzLl9tZXRhZGF0YVNlcnZlckhhc2h9JylgKSx0aGlzLl9yZXF1ZXN0TWV0YWRhdGFGcm9tU2VydmVyKGUpO2Vsc2V7aWYoIWkuaGFzUGFja2FnZSgidHYtdm9sdW1lYnlwcmljZSIpfHx2b2lkIDAhPT1yLnBhcmFtc1sxXS5tZXRhaW5mby5maW5kKChlPT5lLmlkLmluY2x1ZGVzKCJAdHYtdm9sdW1lYnlwcmljZSIpKSkpcmV0dXJuIE4ubG9nTm9ybWFsKCJVc2luZyBzdHVkaWVzX21ldGFkYXRhIGZyb20gYnJvd3NlciBjYWNoZSIpLHZvaWQgdC5yZXNvbHZlKCgwLHMuZGVmYXVsdCkocikpO04ubG9nTm9ybWFsKGBEZS1zeW5jIGRldGVjdGVkISBwcm8uaGFzaCBjb250YWlucyBWYlBSIHN0dWRpZXMsIGJ1dCBkYXRhIGZyb20gY2FjaGUgZG9lc24ndCBhbmQgcHJvLmhhc2ggaXNuJ3QgY2hhbmdlZCwgcHJvLmhhc2g9JHtufWApLHRoaXMuX3JlcXVlc3RNZXRhZGF0YUZyb21TZXJ2ZXIoZSl9fWVsc2UgTi5sb2dOb3JtYWwoYFBybyBoYXNoIGhhcyBjaGFuZ2VkIChjYWNoZWQ6ICcke2F9JywgY3VycmVudDogJyR7bn0nKWApLHRoaXMuX3JlcXVlc3RNZXRhZGF0YUZyb21TZXJ2ZXIoZSl9Y2F0Y2godCl7Ti5sb2dFcnJvcigiQ2Fubm90IGdldCBzdHVkaWVzX21ldGFkYXRhLCByZWFzb246ICIrdCksdGhpcy5fcmVxdWVzdE1ldGFkYXRhRnJvbVNlcnZlcihlKX1maW5hbGx5e1YubG9nTm9ybWFsKGBSZXF1ZXN0aW5nIHN0dWRpZXMgbWV0YWRhdGEgIyR7ZX0gZmluaXNoZWRgKX19X21ha2VOZXh0UmVxdWVzdElkKCl7cmV0dXJuIm1ldGFkYXRhXyIrdGhpcy5fbWV0YWRhdGFSZXF1ZXN0TmV4dE51bWJlcisrfV9wcm9jZXNzUHJvdG9jb2xFcnJvcihlKXtjb25zdCB0PWUucGFyYW1zWzBdO04ubG9nRXJyb3IoYFByb3RvY29sIGVycm9yLiBSZWFzb249JHt0fS5gKSwiYmFubmVkIiE9PXQmJiJiYW5uZWQgYnkgdXNlcl9pZCIhPT10JiYiYmFubmVkIGJ5IGlwIiE9PXR8fCh0aGlzLl9iYW5JbmZvLnNldFZhbHVlKHtyZWFzb246dH0pLHRoaXMuZGlzY29ubmVjdCgpKSx0aGlzLl9jb25uZWN0aW9uc0xpbWl0UmVhY2hlZC5zZXRWYWx1ZSgidXNlciBjb25uZWN0aW9ucyBsaW1pdCByZWFjaGVkIj09PXQpfV9yZXF1ZXN0TWV0YWRhdGFGcm9tU2VydmVyKGUpe3JldHVybiBOLmxvZ05vcm1hbCgiUmVxdWVzdCBzdHVkaWVzX21ldGFkYXRhIGZyb20gc2VydmVyIiksdGhpcy5fc2VuZFJlcXVlc3QoInJlcXVlc3Rfc3R1ZGllc19tZXRhZGF0YSIsW2VdKX1fYmluZFNvY2tldEV2ZW50cygpe3RoaXMuY29ubmVjdERmZD1uZXcgUHJvbWlzZSgoKGUsdCk9Pnt0aGlzLl93c0JhY2tlbmRDb25uZWN0aW9uLm9uKCJjb25uZWN0IiwoKCk9Pnt0aGlzLl9vbkNvbm5lY3QoKSxlKCl9KSksdGhpcy5fd3NCYWNrZW5kQ29ubmVjdGlvbi5vbigibWVzc2FnZSIsdGhpcy5fb25NZXNzYWdlLmJpbmQodGhpcykpLHRoaXMuX3dzQmFja2VuZENvbm5lY3Rpb24ub24oImRpc2Nvbm5lY3QiLCgoKT0+e3RoaXMuX2F1dGhUb2tlbkRmZCYmKHRoaXMuX2F1dGhUb2tlbkRmZD1udWxsKSx0aGlzLl9vbkRhdGFQcm9ibGVtc1Byb21pc2VFcnJiYWNrJiZ0aGlzLl9vbkRhdGFQcm9ibGVtc1Byb21pc2VFcnJiYWNrKCksdGhpcy5faXNDb25uZWN0ZWQ9ITEsdGhpcy5fbm90aWZ5U2Vzc2lvbnMoe21ldGhvZDp1LkNoYXJ0QXBpTWVzc2FnZU1ldGhvZC5EaXNjb25uZWN0ZWQscGFyYW1zOltdfSksdGhpcy5fYmFuSW5mby52YWx1ZSgpfHwodGhpcy5fbWV0YWRhdGFEZWZlcnJlZFByb21pc2U9bnVsbCksdGhpcy5fZGlzY29ubmVjdENvdW50PSh0aGlzLl9kaXNjb25uZWN0Q291bnR8fDApKzEsdGhpcy5fd3NCYWNrZW5kQ29ubmVjdGlvbi5pc0Nvbm5lY3RlZCgpJiYodGhpcy5fdGVsZW1ldHJ5RGlzY29ubmVjdFRpbWVvdXQ9c2V0VGltZW91dCgoKCk9PntBLnRlbGVtZXRyeS5zZW5kQ2hhcnRSZXBvcnQoImRpc2Nvbm5lY3QiKX0pLDVlMyksdGhpcy5fd3NCYWNrZW5kQ29ubmVjdGlvbi5pc01heFJlY29ubmVjdHMoKSYmKHRoaXMuX25vdGlmeVNlc3Npb25zKHttZXRob2Q6dS5DaGFydEFwaU1lc3NhZ2VNZXRob2QuUmVjb25uZWN0QmFpbG91dCxwYXJhbXM6W119KSx0KCksQS50ZWxlbWV0cnkuc2VuZENoYXJ0UmVwb3J0KCJyZWNvbm5lY3RfYmFpbG91dCIpKSl9KSl9KSl9X2NhbGNUcmFmZmljU3RhdHMoZSl7Y29uc3QgdD1lLmxlbmd0aDt0aGlzLl90cmFmZmljU3RhdHMudG90YWwrPXQsdGhpcy5fdHJhZmZpY1N0YXRzLnNpbmNlQ29ubmVjdCs9dCx0aGlzLl90cmFmZmljU3RhdHMubGFzdENodW5rKz10fV9zZW5kQnJva2VySWRUb1Nlc3Npb24oZSl7cmV0dXJuIWp8fHRoaXMuX3NlbmRSZXF1ZXN0KCJzZXRfYnJva2VyIixbZV0pfV9lbmFibGVMb3dRdWFsaXR5TW9kZSgpe04ubG9nTm9ybWFsKCJsb3cgcXVhbGl0eSBtb2RlIGlzIGVuYWJsZWQiKSx0aGlzLl9sb3dRdWFsaXR5RW5hYmxlZD0hMCx0aGlzLl9zZW5kTG93UXVhbGl0eU1vZGVJZkVuYWJsZWQoKX1fc2VuZExvd1F1YWxpdHlNb2RlSWZFbmFibGVkKCl7dGhpcy5fbG93UXVhbGl0eUVuYWJsZWQmJnRoaXMuY29ubmVjdGVkKCkmJnRoaXMuX3NlbmRSZXF1ZXN0KCJzZXRfZGF0YV9xdWFsaXR5IixbXSl9X2dldEF1dGhUb2tlbkRmZChlKXtpZih0aGlzLl9sb2FkTmV3QmFycylyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCJsb2FkX25ld190b2tlbiIpO2lmKCgwLF8uaXNGZWF0dXJlc2V0RW5hYmxlZCkoIndpZGdldCIpfHwtMSE9PXdpbmRvdy5sb2NhdGlvbi5zZWFyY2guaW5kZXhPZigid2lkZ2V0X3Rva2VuIil8fC0xIT09d2luZG93LmxvY2F0aW9uLmhhc2guaW5kZXhPZigid2lkZ2V0X3Rva2VuIikpe2NvbnN0IGU9d2luZG93LlRyYWRpbmdWaWV3JiZ3aW5kb3cuVHJhZGluZ1ZpZXcud2lkZ2V0Q3VzdG9tZXJ8fCIiCjtyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHZbZV18fCJ3aWRnZXRfdXNlcl90b2tlbiIpfWlmKCF3aW5kb3cuaXNfYXV0aGVudGljYXRlZClyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCJ1bmF1dGhvcml6ZWRfdXNlcl90b2tlbiIpO2lmKCF0aGlzLl9hdXRoVG9rZW5NYW5hZ2VyKXtjb25zdCBlPXRoaXMuX2F1dGhUb2tlbk1hbmFnZXI9bmV3IG0uQXV0aFRva2VuO2UuaW52YWxpZGF0ZWQuc3Vic2NyaWJlKG51bGwsKGFzeW5jKCk9Pnt0cnl7dGhpcy5fc2VuZGluZ1F1ZXVlZFJlcXVlc3RzQ291bnQrPTE7Y29uc3QgdD1hd2FpdCBlLmdldCgpO2lmKCF0KXJldHVybiB2b2lkIE4ubG9nSW5mbygiQXV0aFRva2VuIGludmFsaWRhdGVkLCBidXQgbmV3IHRva2VuIGlzIGVtcHR5Iik7aWYoIXRoaXMuY29ubmVjdGVkKCkpcmV0dXJuIHZvaWQgTi5sb2dJbmZvKGBBdXRoVG9rZW4gaW52YWxpZGF0ZWQsIGJ1dCBzb2NrZXQgaXMgbm90IGNvbm5lY3RlZC4gVG9rZW46ICR7dH1gKTtOLmxvZ0luZm8oIkF1dGhUb2tlbiBpbnZhbGlkYXRlZCwgcmVmcmVzaGluZyB0b2tlbiBhbmQgcmVzZW5kaW5nIHRvIHNlc3Npb24iKSx0aGlzLl9zZW5kUmVxdWVzdEltcGwoInNldF9hdXRoX3Rva2VuIixbdF0pfWNhdGNoKGUpe3Rocm93IE4ubG9nRXJyb3IoYEZhaWxlZCB0byByZWZyZXNoIGF1dGggdG9rZW4gYWZ0ZXIgaW52YWxpZGF0aW9uOiAkeygwLFAuZXJyb3JUb1N0cmluZykoZSl9YCksZX1maW5hbGx5e3RoaXMuX3NlbmRpbmdRdWV1ZWRSZXF1ZXN0c0NvdW50LT0xLDA9PT10aGlzLl9zZW5kaW5nUXVldWVkUmVxdWVzdHNDb3VudCYmZS5jdXJyZW50VG9rZW5Jc1ZhbGlkKCkmJnRoaXMuX2ZsdXNoUGVuZGluZ01lc3NhZ2VzKCl9fSkpfXJldHVybiB0aGlzLl9hdXRoVG9rZW5NYW5hZ2VyLmdldChlKX1fb25TZW5kaW5nUXVldWVSZXF1ZXN0RmluaXNoZWQoKXt0aGlzLl9zZW5kaW5nUXVldWVkUmVxdWVzdHNDb3VudC09MSxOLmxvZ0luZm8oYFNlbmRpbmcgcXVldWUgcmVxdWVzdCBmaW5pc2hlZC4gUmVtYWluaW5nIHBlbmRpbmcgcmVxdWVzdHM9JHt0aGlzLl9zZW5kaW5nUXVldWVkUmVxdWVzdHNDb3VudH1gKSx0aGlzLl9zZW5kaW5nUXVldWVkUmVxdWVzdHNDb3VudDwwJiZOLmxvZ0Vycm9yKGBJbnZhbGlkIHF1ZXVlIHN0YXRlPSR7dGhpcy5fc2VuZGluZ1F1ZXVlZFJlcXVlc3RzQ291bnR9YCksMD09PXRoaXMuX3NlbmRpbmdRdWV1ZWRSZXF1ZXN0c0NvdW50JiZ0aGlzLl9mbHVzaFBlbmRpbmdNZXNzYWdlcygpfV9mbHVzaFBlbmRpbmdNZXNzYWdlcygpe04ubG9nSW5mbyhgRmx1c2ggcGVuZGluZyBtZXNzYWdlcy4gQ291bnQ9JHt0aGlzLl9wZW5kaW5nTWVzc2FnZXNRdWV1ZS5sZW5ndGh9YCksdGhpcy5fcGVuZGluZ01lc3NhZ2VzUXVldWUuZm9yRWFjaCgoZT0+dGhpcy5fc2VuZFJlcXVlc3QoZS5tZXRob2QsZS5hcmdzKSkpLHRoaXMuX3BlbmRpbmdNZXNzYWdlc1F1ZXVlPVtdfX0idW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdyYmKHdpbmRvdy5DaGFydEFwaUluc3RhbmNlPW5ldyBsZSh3aW5kb3cuV1NCYWNrZW5kQ29ubmVjdGlvbikpfSw2ODI4MjIoZSx0LGkpeyJ1c2Ugc3RyaWN0Ijt2YXIgcztpLmQodCx7U3Vic2Vzc2lvbklkOigpPT5zfSksZnVuY3Rpb24oZSl7ZS5SZWd1bGFyPSJyZWd1bGFyIixlLkV4dGVuZGVkPSJleHRlbmRlZCIsZS5QcmVNYXJrZXQ9InByZW1hcmtldCIsZS5Qb3N0TWFya2V0PSJwb3N0bWFya2V0IixlLlR3ZW50eUZvdXJIb3VyPSIyNGgiLGUuTmlnaHQ9Im5pZ2h0In0oc3x8KHM9e30pKX0sNDc3MTU1KGUsdCxpKXsidXNlIHN0cmljdCI7aS5kKHQse0FjdGlvbldpdGhTdGFuZGFyZEljb246KCk9PnJ9KTt2YXIgcz1pKDUwOTA0KSxuPWkoNjEzODgxKTtjbGFzcyByIGV4dGVuZHMgcy5BY3Rpb257Y29uc3RydWN0b3IoZSl7Y29uc3R7b3B0aW9uczp0LGN1c3RvbUFjdGlvbk9wdGlvbnM6aX09ZTt0Lmljb25JZCYmKHQuaWNvbj10Lmljb24/P24uaWNvbnMuZ2V0KHQuaWNvbklkKSksaSYmaS5pY29uSWQmJihpLmljb249aS5pY29uPz9uLmljb25zLmdldChpLmljb25JZCkpLHN1cGVyKGUpfX19LDUwOTA0KGUsdCxpKXsidXNlIHN0cmljdCI7dmFyIHM7aS5kKHQse0FjdGlvbjooKT0+YyxMb2FkZXI6KCk9PmQsU2VwYXJhdG9yOigpPT5ofSksZnVuY3Rpb24oZSl7ZS5Ob3JtYWw9Im5vcm1hbCIsZS5CaWc9ImJpZyJ9KHN8fChzPXt9KSk7dmFyIG49aSgxMzg2MzgpLHI9aSgyMzU3MjQpLG89aSgxNTAxNTApLGE9aSg5NDgzODApO2NsYXNzIGwgZXh0ZW5kcyBhLkRlbGVnYXRle2NvbnN0cnVjdG9yKGUpe3N1cGVyKCksdGhpcy5fb25TdGFydExpc3RlbmluZz1udWxsLHRoaXMuX29uU3RvcExpc3RlbmluZz1udWxsLHRoaXMuX29uU3RhcnRMaXN0ZW5pbmc9ZXx8bnVsbH1zdWJzY3JpYmUoZSx0LGkpe2NvbnN0IHM9MD09PXRoaXMuX2xpc3RlbmVycy5sZW5ndGg7c3VwZXIuc3Vic2NyaWJlKGUsdCxpKSxzJiZ0aGlzLl9saXN0ZW5lcnMubGVuZ3RoPjAmJnRoaXMuX29uU3RhcnRMaXN0ZW5pbmcmJih0aGlzLl9vblN0b3BMaXN0ZW5pbmc9dGhpcy5fb25TdGFydExpc3RlbmluZygpKX11bnN1YnNjcmliZShlLHQpe2NvbnN0IGk9MD09PXRoaXMuX2xpc3RlbmVycy5sZW5ndGg7c3VwZXIudW5zdWJzY3JpYmUoZSx0KSwhaSYmMD09PXRoaXMuX2xpc3RlbmVycy5sZW5ndGgmJnRoaXMuX29uU3RvcExpc3RlbmluZyYmKHRoaXMuX29uU3RvcExpc3RlbmluZygpLHRoaXMuX29uU3RvcExpc3RlbmluZz1udWxsKX11bnN1YnNjcmliZUFsbChlKXtjb25zdCB0PTA9PT10aGlzLl9saXN0ZW5lcnMubGVuZ3RoO3N1cGVyLnVuc3Vic2NyaWJlQWxsKGUpLCF0JiYwPT09dGhpcy5fbGlzdGVuZXJzLmxlbmd0aCYmdGhpcy5fb25TdG9wTGlzdGVuaW5nJiYodGhpcy5fb25TdG9wTGlzdGVuaW5nKCksdGhpcy5fb25TdG9wTGlzdGVuaW5nPW51bGwpfWRlc3Ryb3koKXt0aGlzLl9vblN0b3BMaXN0ZW5pbmcmJih0aGlzLl9vblN0b3BMaXN0ZW5pbmcoKSx0aGlzLl9vblN0b3BMaXN0ZW5pbmc9bnVsbCksc3VwZXIuZGVzdHJveSgpfX1jbGFzcyBje2NvbnN0cnVjdG9yKGUpe3RoaXMudHlwZT0iYWN0aW9uIiwKdGhpcy5fZGVzdHJveWVkPSExLHRoaXMuX2xvYWRPcHRpb25zUHJvbWlzZT1udWxsLHRoaXMuX2N1c3RvbUFjdGlvbj1udWxsO2NvbnN0e2FjdGlvbklkOnQsb3B0aW9uczppLG9wdGlvbnNMb2FkZXI6cyxjdXN0b21BY3Rpb25PcHRpb25zOnIsY3VzdG9tQWN0aW9uT3B0aW9uc0xvYWRlcjphLGlkOmg9by5ndWlkKCksb25TdGFydExpc3RlbmluZzpkfT1lOygwLG4uYXNzZXJ0KSh2b2lkIDAhPT10LCJhY3Rpb25JZCBtdXN0IGJlIGRlZmluZWQiKSx0aGlzLmlkPWgsdGhpcy5fb25VcGRhdGU9bmV3IGwoZCksdGhpcy5fb3B0aW9ucz17YWN0aW9uSWQ6dCwuLi5pfSx0aGlzLnVwZGF0ZShpKSx0aGlzLl9sb2FkT3B0aW9uc0dldHRlcj1zPz9udWxsLHRoaXMuX2xvYWRPcHRpb25zR2V0dGVyJiYodGhpcy5fb3B0aW9ucy5sb2FkaW5nPSEwKSxyJiYodGhpcy5fY3VzdG9tQWN0aW9uPW5ldyBjKHthY3Rpb25JZDp0LG9wdGlvbnM6cixvcHRpb25zTG9hZGVyOmEsaWQ6aH0pKX1jdXN0b20oKXtyZXR1cm4gdGhpcy5fY3VzdG9tQWN0aW9ufWV4ZWN1dGUoKXt0aGlzLl9vcHRpb25zLmNoZWNrYWJsZSYmdGhpcy51cGRhdGUoe2NoZWNrZWQ6IXRoaXMuX29wdGlvbnMuY2hlY2tlZH0pLHRoaXMuX29wdGlvbnMub25FeGVjdXRlJiZ0aGlzLl9vcHRpb25zLm9uRXhlY3V0ZSh0aGlzKX1nZXRMYWJlbCgpe3JldHVybiB0aGlzLl9vcHRpb25zLmxhYmVsfHwiIn1nZXRTdWJJdGVtcygpe3JldHVybiB0aGlzLl9vcHRpb25zLnN1Ykl0ZW1zfHxbXX1pc0Rpc2FibGVkKCl7cmV0dXJuITA9PT10aGlzLl9vcHRpb25zLmRpc2FibGVkfWlzQWN0aXZlKCl7cmV0dXJuITA9PT10aGlzLl9vcHRpb25zLmFjdGl2ZX1pc0NoZWNrYWJsZSgpe3JldHVybiEwPT09dGhpcy5fb3B0aW9ucy5jaGVja2FibGV9aXNDaGVja2VkKCl7cmV0dXJuITA9PT10aGlzLl9vcHRpb25zLmNoZWNrZWR9aXNMb2FkaW5nKCl7cmV0dXJuITA9PT10aGlzLl9vcHRpb25zLmxvYWRpbmd9bG9hZE9wdGlvbnMoKXtyZXR1cm4gdGhpcy5fbG9hZE9wdGlvbnNQcm9taXNlP3RoaXMuX2xvYWRPcHRpb25zUHJvbWlzZTp0aGlzLl9sb2FkT3B0aW9uc0dldHRlcj8odGhpcy5fbG9hZE9wdGlvbnNQcm9taXNlPXRoaXMuX2xvYWRPcHRpb25zR2V0dGVyKCkudGhlbigoZT0+dGhpcy51cGRhdGUoey4uLmUsbG9hZGluZzohMX0pKSksdGhpcy5fbG9hZE9wdGlvbnNQcm9taXNlKTpudWxsfWdldFNpemUoKXtyZXR1cm4gdGhpcy5fb3B0aW9ucy5zaXplPz8ibm9ybWFsIn1nZXRQYXlsb2FkKCl7cmV0dXJuIHRoaXMuX29wdGlvbnMucGF5bG9hZH11cGRhdGUoZSl7dGhpcy5fZGVzdHJveWVkfHwodGhpcy5fdW5iaW5kU2hvcnRjdXQoKSxlLmhvdGtleUhhc2gmJih0aGlzLl9vcHRpb25zLnNob3J0Y3V0SGludD0oMCxyLmh1bWFuUmVhZGFibGVIYXNoKShlLmhvdGtleUhhc2gpKSx0aGlzLl9vcHRpb25zPU9iamVjdC5hc3NpZ24odGhpcy5fb3B0aW9ucyxlKSx0aGlzLl9iaW5kU2hvcnRjdXQoKSx0aGlzLl9vblVwZGF0ZS5maXJlKHRoaXMpKX1vblVwZGF0ZSgpe3JldHVybiB0aGlzLl9vblVwZGF0ZX1nZXRTdGF0ZSgpe3JldHVybiB0aGlzLmxvYWRPcHRpb25zKCkse2FjdGlvbklkOnRoaXMuX29wdGlvbnMuYWN0aW9uSWQsbGFiZWw6dGhpcy5nZXRMYWJlbCgpLHN0eWxlZExhYmVsOnRoaXMuX29wdGlvbnMuc3R5bGVkTGFiZWwsZGlzYWJsZWQ6dGhpcy5pc0Rpc2FibGVkKCksYWN0aXZlOnRoaXMuaXNBY3RpdmUoKSxzdWJJdGVtczp0aGlzLmdldFN1Ykl0ZW1zKCksY2hlY2thYmxlOnRoaXMuaXNDaGVja2FibGUoKSxjaGVja2VkOnRoaXMuaXNDaGVja2VkKCksbG9hZGluZzp0aGlzLmlzTG9hZGluZygpLHNpemU6dGhpcy5nZXRTaXplKCksZG9Ob3RDbG9zZU9uQ2xpY2s6dGhpcy5fb3B0aW9ucy5kb05vdENsb3NlT25DbGlja3x8ITEsc2hvcnRjdXRIaW50OnRoaXMuX29wdGlvbnMuc2hvcnRjdXRIaW50LGhpbnQ6dGhpcy5fb3B0aW9ucy5oaW50LGljb246dGhpcy5fb3B0aW9ucy5pY29uLGljb25JZDp0aGlzLl9vcHRpb25zLmljb25JZCxpY29uQ2hlY2tlZDp0aGlzLl9vcHRpb25zLmljb25DaGVja2VkLHRvb2xib3g6dGhpcy5fb3B0aW9ucy50b29sYm94LHNob3dUb29sYm94T25Ib3Zlcjp0aGlzLl9vcHRpb25zLnNob3dUb29sYm94T25Ib3Zlcnx8ITEsc3RhdE5hbWU6dGhpcy5fb3B0aW9ucy5zdGF0TmFtZSxuYW1lOnRoaXMuX29wdGlvbnMubmFtZSxpbnZpc2libGVIb3RrZXk6dGhpcy5fb3B0aW9ucy5pbnZpc2libGVIb3RrZXksbm9JbnRlcmFjdGl2ZTp0aGlzLl9vcHRpb25zLm5vSW50ZXJhY3RpdmUsanN4TGFiZWw6ImpzeExhYmVsImluIHRoaXMuX29wdGlvbnM/dGhpcy5fb3B0aW9ucy5qc3hMYWJlbDp2b2lkIDAsaXNSZXBlYXRBY2NlcHRlZDp0aGlzLl9vcHRpb25zLmlzUmVwZWF0QWNjZXB0ZWR9fWRlc3Ryb3koKXt0aGlzLl9kZXN0cm95ZWQ9ITAsdGhpcy5fb25VcGRhdGUuZGVzdHJveSgpLHRoaXMuX3VuYmluZFNob3J0Y3V0KCksdGhpcy5fb3B0aW9ucy5vbkRlc3Ryb3k/LigpLHRoaXMuX2N1c3RvbUFjdGlvbj8uZGVzdHJveSgpfW9wdGlvbnMoKXtyZXR1cm4gdGhpcy5fb3B0aW9uc31fYmluZFNob3J0Y3V0KCl7aWYoIXRoaXMuX29wdGlvbnMuaG90a2V5R3JvdXB8fCF0aGlzLl9vcHRpb25zLmhvdGtleUhhc2gpcmV0dXJuO2NvbnN0IGU9InN0cmluZyI9PXR5cGVvZiB0aGlzLl9vcHRpb25zLmxhYmVsP3RoaXMuX29wdGlvbnMubGFiZWw6dGhpcy5fb3B0aW9ucy5uYW1lO3RoaXMuX2hvdGtleUFjdGlvbj10aGlzLl9vcHRpb25zLmhvdGtleUdyb3VwLmFkZCh7aG90a2V5OnRoaXMuX29wdGlvbnMuaG90a2V5SGFzaCxpc1JlcGVhdEFjY2VwdGVkOnRoaXMuX29wdGlvbnMuaXNSZXBlYXRBY2NlcHRlZCxkZXNjOmUsaGFuZGxlcjooKT0+dGhpcy5leGVjdXRlKCksaXNEaXNhYmxlZDooKT0+dGhpcy5pc0Rpc2FibGVkKCl9KX1fdW5iaW5kU2hvcnRjdXQoKXt0aGlzLl9ob3RrZXlBY3Rpb24mJih0aGlzLl9ob3RrZXlBY3Rpb24uZGVzdHJveSgpLGRlbGV0ZSB0aGlzLl9ob3RrZXlBY3Rpb24pfX1jbGFzcyBoe2NvbnN0cnVjdG9yKGUpewp0aGlzLnR5cGU9InNlcGFyYXRvciIsdGhpcy5pZD1vLmd1aWQoKSx0aGlzLl9oaW50PWV9Z2V0SGludCgpe3JldHVybiB0aGlzLl9oaW50fX1jbGFzcyBkIGV4dGVuZHMgY3tjb25zdHJ1Y3RvcihlKXtzdXBlcih7YWN0aW9uSWQ6ZSxvcHRpb25zOnt9fSl9aXNMb2FkaW5nKCl7cmV0dXJuITB9Z2V0U2l6ZSgpe3JldHVybiJiaWcifX19LDYxMzg4MShlLHQsaSl7InVzZSBzdHJpY3QiO3ZhciBzO2kuZCh0LHtpY29uczooKT0+eH0pLGZ1bmN0aW9uKGUpe2UuQ2hhcnRTaG93RGF0YVdpbmRvdz0iQ2hhcnQuU2hvd0RhdGFXaW5kb3ciLGUuQ2hhcnRSZXNldD0iQ2hhcnQuUmVzZXQiLGUuQ2hhcnRSZW1vdmVTZWxlY3RlZE9iamVjdD0iQ2hhcnQuUmVtb3ZlU2VsZWN0ZWRPYmplY3QiLGUuU2V0dGluZ3M9IlNldHRpbmdzIixlLkNoYXJ0SGlkZT0iQ2hhcnQuSGlkZSIsZS5DaGFydFN5bWJvbEluZm89IkNoYXJ0LlN5bWJvbEluZm8iLGUuQ2hhcnRGaW5hbmNpYWxzPSJDaGFydC5GaW5hbmNpYWxzIixlLkNoYXJ0VGVjaG5pY2Fscz0iQ2hhcnQuVGVjaG5pY2FscyIsZS5DaGFydERldGFpbHNNZXRyaWNzPSJDaGFydC5EZXRhaWxzTWV0cmljcyIsZS5DaGFydFNlYXNvbmFscz0iQ2hhcnQuU2Vhc29uYWxzIixlLkNoYXJ0QW5hbHlzaXM9IkNoYXJ0LkFuYWx5c2lzIixlLkNoYXJ0U3RvY2tCb25kcz0iQ2hhcnQuU3RvY2tCb25kcyIsZS5DaGFydEZvcndhcmRDdXJ2ZT0iQ2hhcnQuRm9yd2FyZEN1cnZlIixlLkNoYXJ0RGVyaXZhdGl2ZXM9IkNoYXJ0LkRlcml2YXRpdmVzIixlLkNoYXJ0TmV3c0RpYWxvZz0iQ2hhcnQuTmV3c0RpYWxvZyIsZS5DaGFydENvbnRyYWN0cz0iQ2hhcnQuQ29udHJhY3RzIixlLkNoYXJ0Rm9yZWNhc3Q9IkNoYXJ0LkZvcmVjYXN0IixlLkNoYXJ0T3B0aW9ucz0iQ2hhcnQuT3B0aW9ucyIsZS5DaGFydERvY3VtZW50cz0iQ2hhcnQuRG9jdW1lbnRzIixlLkNoYXJ0RXRmcz0iQ2hhcnQuRXRmcyIsZS5DaGFydEVjb25vbXlJZGljYXRvcnM9IkNoYXJ0LkVjb25vbXlJbmRpY2F0b3JzIixlLkFsZXJ0QWRkPSJBbGVydC5BZGQiLGUuQWxlcnRFZGl0PSJBbGVydC5FZGl0IixlLkFsZXJ0UmVzdGFydD0iQWxlcnQuUmVzdGFydCIsZS5BbGVydFN0b3A9IkFsZXJ0LlN0b3AiLGUuQWxlcnRGaXJlc0Rvd25sb2FkPSJBbGVydC5GaXJlc0Rvd25sb2FkIixlLkNsZWFyQWxsPSJBbGVydC5DbGVhciIsZS5DaGFydFZpc3VhbE9yZGVyPSJDaGFydC5WaXN1YWxPcmRlciIsZS5DaGFydFNob3dPYmplY3Q9IkNoYXJ0LlNob3dPYmplY3QiLGUuQ2hhcnRQcmljZVNjYWxlPSJDaGFydC5QcmljZVNjYWxlIixlLkNoYXJ0TW92ZT0iQ2hhcnQuTW92ZSIsZS5DaGFydEFwcGx5SW5kaWNhdG9yPSJDaGFydC5BcHBseUluZGljYXRvciIsZS5DaGFydFVubG9ja09iamVjdD0iQ2hhcnQuVW5sb2NrT2JqZWN0IixlLkNoYXJ0TG9ja09iamVjdD0iQ2hhcnQuTG9ja09iamVjdCIsZS5DaGFydEFuY2hvckxpbmVUb29sPSJDaGFydC5BbmNob3JMaW5lVG9vbCIsZS5DaGFydEluc2VydFJvd1RhYmxlPSJDaGFydC5JbnNlcnRSb3dUYWJsZSIsZS5DaGFydEluc2VydENvbHVtblRhYmxlPSJDaGFydC5JbnNlcnRDb2x1bW5UYWJsZSIsZS5DaGFydFJlbW92ZVJvd1RhYmxlPSJDaGFydC5SZW1vdmVSb3dUYWJsZSIsZS5DaGFydFJlbW92ZUNvbHVtblRhYmxlPSJDaGFydC5SZW1vdmVDb2x1bW5UYWJsZSIsZS5DaGFydENsb25lPSJDaGFydC5DbG9uZSIsZS5DaGFydEFkZEhvcnpMaW5lPSJDaGFydC5BZGRIb3J6TGluZSIsZS5XYXRjaGxpc3RBZGRTeW1ib2w9IldhdGNobGlzdC5BZGRTeW1ib2wiLGUuV2F0Y2hsaXN0Q3JlYXRlTmV3PSJXYXRjaGxpc3QuQ3JlYXRlTmV3IixlLlRleHROb3RlQWRkPSJUZXh0Tm90ZS5BZGQiLGUuVHJhZGluZ1NlbGw9IlRyYWRpbmcuU2VsbCIsZS5UcmFkaW5nQnV5PSJUcmFkaW5nLkJ1eSIsZS5UcmFkaW5nQWRkT3JkZXI9IlRyYWRpbmcuQWRkT3JkZXIiLGUuT2JqZWN0c1RyZWVDcmVhdGVHcm91cD0iT2JqZWN0c1RyZWUuQ3JlYXRlR3JvdXAiLGUuT2JqZWN0c1RyZWVSZW5hbWVJdGVtPSJPYmplY3RzVHJlZS5SZW5hbWVJdGVtIixlLkluZGljYXRvckFkZFRvRmF2b3JpdGVzPSJJbmRpY2F0b3IuQWRkVG9GYXZvcml0ZXMifShzfHwocz17fSkpO3ZhciBuPWkoMTkwMzU1KSxyPWkoNjA5MDk2KSxvPWkoODEyMDg0KSxhPWkoNTE0MjE2KSxsPWkoMzc0MTYpLGM9aSgyMTUyOTIpLGg9aSg3NTYyODgpLGQ9aSg1NzYxMDMpLHU9aSg1NzAzNjIpLHA9aSg5NTc4NDYpLF89aSgzMTIzMDYpLG09aSgzNjk5MjQpLGc9aSg4NTQzOTkpLGY9aSg1OTE5NjkpLFM9aSg1MjI4ODkpLHY9aSg3MDkwMDkpLHk9aSgxMDE2MyksYj1pKDYzNTE3OSksdz1pKDk0Njk0MiksQz1pKDgwNzU2MyksUD1pKDU1ODk3OSk7bGV0IFQ9W1siQ2hhcnQuUmVzZXQiLENdLFsiQ2hhcnQuUmVtb3ZlU2VsZWN0ZWRPYmplY3QiLFBdLFsiU2V0dGluZ3MiLHddLFsiQ2hhcnQuSGlkZSIsaSgyMzAyNTIpXSxbIkNoYXJ0LlN5bWJvbEluZm8iLGkoNzY5NzUyKV0sWyJDaGFydC5WaXN1YWxPcmRlciIsaSg3NjMzMTYpXSxbIkNoYXJ0LlNob3dPYmplY3QiLGkoNTE4NjcpXSxbIkNoYXJ0LlByaWNlU2NhbGUiLGkoMjE0MTg2KV0sWyJDaGFydC5Nb3ZlIixpKDYzMTk2MyldLFsiQ2hhcnQuQXBwbHlJbmRpY2F0b3IiLGkoMjkwMDQ0KV0sWyJDaGFydC5VbmxvY2tPYmplY3QiLGkoODY3MTc0KV0sWyJDaGFydC5Mb2NrT2JqZWN0IixpKDc2NTM1MyldLFsiQ2hhcnQuQW5jaG9yTGluZVRvb2wiLGkoNjk3MDg1KV0sWyJDaGFydC5JbnNlcnRSb3dUYWJsZSIsaSg3MTMxNDApXSxbIkNoYXJ0Lkluc2VydENvbHVtblRhYmxlIixpKDM4NzYzOCldLFsiQ2hhcnQuUmVtb3ZlUm93VGFibGUiLFBdLFsiQ2hhcnQuUmVtb3ZlQ29sdW1uVGFibGUiLFBdLFsiQ2hhcnQuQ2xvbmUiLGkoOTM3MjEpXSxbIkNoYXJ0LkFkZEhvcnpMaW5lIixpKDgxNjk1MyldLFsiSW5kaWNhdG9yLkFkZFRvRmF2b3JpdGVzIixiXV0KO1Q9VC5jb25jYXQoW1siVGV4dE5vdGUuQWRkIixkXSxbIldhdGNobGlzdC5BZGRTeW1ib2wiLGhdLFsiV2F0Y2hsaXN0LkNyZWF0ZU5ldyIsaF0sWyJDaGFydC5GaW5hbmNpYWxzIix1XSxbIkNoYXJ0LlRlY2huaWNhbHMiLHBdLFsiQWxlcnQuQWRkIixfXSxbIkFsZXJ0LkVkaXQiLG1dLFsiQWxlcnQuUmVzdGFydCIsZl0sWyJBbGVydC5TdG9wIixTXSxbIkFsZXJ0LkZpcmVzRG93bmxvYWQiLGddLFsiQWxlcnQuQ2xlYXIiLHZdLFsiQ2hhcnQuRGV0YWlsc01ldHJpY3MiLHldXSksVD1ULmNvbmNhdChbWyJDaGFydC5TaG93RGF0YVdpbmRvdyIsbl0sWyJUcmFkaW5nLlNlbGwiLHJdLFsiVHJhZGluZy5CdXkiLG9dLFsiVHJhZGluZy5BZGRPcmRlciIsYV0sWyJPYmplY3RzVHJlZS5DcmVhdGVHcm91cCIsbF0sWyJPYmplY3RzVHJlZS5SZW5hbWVJdGVtIixjXSxbIldhdGNobGlzdC5BZGRTeW1ib2wiLGhdXSk7Y29uc3QgeD1uZXcgTWFwKFQpfSwzNTY0MzQoZSx0LGkpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBzKCl7cmV0dXJuIFByb21pc2UuYWxsKFtpLmUoMzkxODIpLGkuZSg5MTk0NCksaS5lKDk3NTU4KSxpLmUoNjY5ODgpLGkuZSg5NzI3MiksaS5lKDg4NDgzKSxpLmUoNjc3OSksaS5lKDU5NjQ5KSxpLmUoNDc3MjMpXSkudGhlbihpLmJpbmQoaSw1NzUyNjIpKX1pLmQodCx7YWN0aW9uc1Byb3ZpZGVyTW9kdWxlOigpPT5zfSl9LDQ4MzAxNihlLHQsaSl7InVzZSBzdHJpY3QiO3ZhciBzO2kuZCh0LHtkZWZhdWx0Q2hhcnRXaWRnZXRBY3Rpb25zT3B0aW9uczooKT0+bn0pLGZ1bmN0aW9uKGUpe2UuQ29weT0iQ29weSJ9KHN8fChzPXt9KSk7Y29uc3Qgbj17Z2VuZXJhbDohMCxtYWluU2VyaWVzOiEwLG1haW5TZXJpZXNUcmFkZTohMSxlc2RTdHVkaWVzOiEwLHN0dWRpZXM6ITAsZnVuZGFtZW50YWxzOiEwLGxpbmVUb29sczohMCxwdWJsaXNoZWRDaGFydHM6ITAsb3JkZXJzQW5kUG9zaXRpb25zOiEwLGFsZXJ0czohMCxjaGFydEV2ZW50czohMCxvYmplY3RUcmVlOiEwLGdvdG9MaW5lVG9vbDohMX19LDI4MmUzKGUsdCxpKXsidXNlIHN0cmljdCI7aS5kKHQse2NsaXBib2FyZERhdGFGb3JTb3VyY2VzOigpPT5sLGlzTGluZVRvb2xDbGlwYm9hcmREYXRhOigpPT5hfSk7dmFyIHM9aSgxMzg2MzgpLG49aSg3MDQ1NzIpLHI9aSg5NTY0MzcpLG89aSg4ODE5Mik7ZnVuY3Rpb24gYShlKXtyZXR1cm4iZHJhd2luZyI9PT1lLnR5cGV9ZnVuY3Rpb24gbChlLHQpe2lmKDE9PT10Lmxlbmd0aCYmKDAsci5pc1N0dWR5KSh0WzBdKSl7Y29uc3QgZT10WzBdO3JldHVybnt0aXRsZTplLnRpdGxlKG4uVGl0bGVEaXNwbGF5VGFyZ2V0LlN0YXR1c0xpbmUpLHNvdXJjZXM6W3tzb3VyY2U6KDAscy5lbnN1cmVOb3ROdWxsKShlLnN0YXRlKCkpLHR5cGU6InN0dWR5In1dfX1jb25zdCBpPXtzb3VyY2VzOltdLHRpdGxlOiIifTtyZXR1cm4gaS5zb3VyY2VzPXQuZmlsdGVyKChlPT5lLmNvcGlhYmxlKCkmJigwLG8uaXNMaW5lVG9vbCkoZSkpKS5tYXAoKHQ9Pntjb25zdCBpPXt0eXBlOiJkcmF3aW5nIixnZW9tZXRyeTp0Lmdlb21ldHJ5KCksc291cmNlOnsuLi50LnN0YXRlKCExKSxwb2ludHM6dC5ub3JtYWxpemVkUG9pbnRzKCl9LG1vZGVsSWQ6ZX07cmV0dXJuIGRlbGV0ZSBpLnNvdXJjZS5hbGVydElkLGl9KSksaS5zb3VyY2VzLmxlbmd0aD4wPygxPT09aS5zb3VyY2VzLmxlbmd0aD9pLnRpdGxlPXRbMF0udGl0bGUobi5UaXRsZURpc3BsYXlUYXJnZXQuU3RhdHVzTGluZSk6aS50aXRsZT0iRHJhd2luZ3MiLGkpOm51bGx9fSwxNTEyMShlLHQsaSl7InVzZSBzdHJpY3QiO2kuZCh0LHthZGRFeGNsdXNpb25BcmVhOigpPT5QLGFkZEV4Y2x1c2lvbkFyZWFCeVNjb3BlOigpPT5DLGNhbGNUZXh0SG9yaXpvbnRhbFNoaWZ0OigpPT5iLGNsZWFyUmVjdDooKT0+XyxjcmVhdGVCb3VuZENhbnZhczooKT0+dixjcmVhdGVEaXNjb25uZWN0ZWRDYW52YXM6KCk9PmcsY3JlYXRlRGlzY29ubmVjdGVkQ2FudmFzQnlSZW5kZXJpbmdJbmZvOigpPT5mLGRpc2FibGVTZWxlY3Rpb246KCk9PncsZHJhd1NjYWxlZDooKT0+bSxkcmF3V2l0aEV4Y2x1c2lvbkFyZWFCeVNjb3BlOigpPT5ULGZpbGxSZWN0OigpPT5wLGdldEJpbmRpbmdSZW5kZXJpbmdJbmZvOigpPT5oLGdldENvbnRleHQyRDooKT0+ZCxnZXRQcmVzY2FsZWRDb250ZXh0MkQ6KCk9PnUsbWVhc3VyZVRleHQ6KCk9Pk0sdHJ5QXBwbHlTdWdnZXN0ZWRDYW52YXNCaXRtYXBTaXplOigpPT55fSk7dmFyIHM9aSg5MTg3NzkpLG49aSgxMzg2MzgpLHI9aSg4NzE3MCksbz1pKDgyMjcyNiksYT1pKDk2OTE2OCksbD1pKDMxODk3NCk7ZnVuY3Rpb24gYyhlKXtyZXR1cm57aG9yaXpvbnRhbFBpeGVsUmF0aW86TWF0aC5tYXgoMSxlLmJpdG1hcFNpemUud2lkdGgvZS5jYW52YXNFbGVtZW50Q2xpZW50U2l6ZS53aWR0aCksdmVydGljYWxQaXhlbFJhdGlvOk1hdGgubWF4KDEsZS5iaXRtYXBTaXplLmhlaWdodC9lLmNhbnZhc0VsZW1lbnRDbGllbnRTaXplLmhlaWdodCl9fWZ1bmN0aW9uIGgoZSl7cmV0dXJuey4uLmMoZSksYml0bWFwU2l6ZTplLmJpdG1hcFNpemUsbWVkaWFTaXplOmUuY2FudmFzRWxlbWVudENsaWVudFNpemV9fWZ1bmN0aW9uIGQoZSl7Y29uc3QgdD0oMCxuLmVuc3VyZU5vdE51bGwpKGUuZ2V0Q29udGV4dCgiMmQiKSk7cmV0dXJuIHQuc2V0VHJhbnNmb3JtKDEsMCwwLDEsMCwwKSx0fWZ1bmN0aW9uIHUoZSl7Y29uc3QgdD0oMCxuLmVuc3VyZU5vdE51bGwpKGUuZ2V0Q29udGV4dCgiMmQiKSksaT0oMCxyLmdldENhbnZhc0RldmljZVBpeGVsUmF0aW8pKGUpO3JldHVybiB0LnNldFRyYW5zZm9ybShpLDAsMCxpLDAsMCksdH1mdW5jdGlvbiBwKGUsdCxpLHMsbixyKXtlLnNhdmUoKSxlLmZpbGxTdHlsZT1yLGUuZmlsbFJlY3QodCxpLHMsbiksZS5yZXN0b3JlKCl9ZnVuY3Rpb24gXyhlLHQsaSxzLG4scil7ZS5zYXZlKCksZS5nbG9iYWxDb21wb3NpdGVPcGVyYXRpb249ImNvcHkiLGUuZmlsbFN0eWxlPXIsZS5maWxsUmVjdCh0LGkscyxuKSxlLnJlc3RvcmUoKX1mdW5jdGlvbiBtKGUsdCxpLHMpe2Uuc2F2ZSgpLGUuc2NhbGUodCxpKSxzKCksZS5yZXN0b3JlKCl9CmZ1bmN0aW9uIGcoZSx0LGkpe2NvbnN0IHM9UyhlKTtyZXR1cm4gdm9pZCAwPT09aSYmKGk9KDAsci5nZXRDYW52YXNEZXZpY2VQaXhlbFJhdGlvKShzKSkscy53aWR0aD10LndpZHRoKmkscy5oZWlnaHQ9dC5oZWlnaHQqaSxzfWZ1bmN0aW9uIGYoZSx0KXtjb25zdHtiaXRtYXBTaXplOmksbWVkaWFTaXplOnN9PXQsbj1TKGUpO3JldHVybiBuLnN0eWxlLndpZHRoPWAke3Mud2lkdGh9cHhgLG4uc3R5bGUuaGVpZ2h0PWAke3MuaGVpZ2h0fXB4YCxuLndpZHRoPWkud2lkdGgsbi5oZWlnaHQ9aS5oZWlnaHQsbn1mdW5jdGlvbiBTKGUpe2NvbnN0IHQ9ZS5jcmVhdGVFbGVtZW50KCJjYW52YXMiKTtyZXR1cm4gdyh0KSx0fWZ1bmN0aW9uIHYoZSx0KXtjb25zdCBpPVMoKDAsbi5lbnN1cmVOb3ROdWxsKShlLm93bmVyRG9jdW1lbnQpKTtlLmFwcGVuZENoaWxkKGkpO2NvbnN0IHI9KDAscy5iaW5kQ2FudmFzRWxlbWVudEJpdG1hcFNpemVUbykoaSx7dHlwZToiZGV2aWNlLXBpeGVsLWNvbnRlbnQtYm94Iix0cmFuc2Zvcm06KGUsdCk9PjA9PT1lLndpZHRofHwwPT09ZS5oZWlnaHQ/ZTp7d2lkdGg6TWF0aC5tYXgoZS53aWR0aCx0LndpZHRoKSxoZWlnaHQ6TWF0aC5tYXgoZS5oZWlnaHQsdC5oZWlnaHQpfX0pO3JldHVybiByLnJlc2l6ZUNhbnZhc0VsZW1lbnQodCkscn1mdW5jdGlvbiB5KGUpe2NvbnN0IHQ9ZS5zdWdnZXN0ZWRCaXRtYXBTaXplO3JldHVybiBudWxsIT09dCYmdC53aWR0aD4wJiZ0LmhlaWdodD4wJiYoZS5hcHBseVN1Z2dlc3RlZEJpdG1hcFNpemUoKSwhMCl9ZnVuY3Rpb24gYihlLHQpe3JldHVybiJjZW50ZXIiPT09ZS50ZXh0QWxpZ24/MDooMCxhLmlzUnRsKSgpPyJzdGFydCI9PT1lLnRleHRBbGlnbnx8InJpZ2h0Ij09PWUudGV4dEFsaWduP3Q6MDoic3RhcnQiPT09ZS50ZXh0QWxpZ258fCJsZWZ0Ij09PWUudGV4dEFsaWduPzA6dH1mdW5jdGlvbiB3KGUpe2Uuc3R5bGUudXNlclNlbGVjdD0ibm9uZSIsZS5zdHlsZS53ZWJraXRVc2VyU2VsZWN0PSJub25lIixlLnN0eWxlLm1zVXNlclNlbGVjdD0ibm9uZSIsZS5zdHlsZS5Nb3pVc2VyU2VsZWN0PSJub25lIixlLnN0eWxlLndlYmtpdFRhcEhpZ2hsaWdodENvbG9yPSJ0cmFuc3BhcmVudCJ9ZnVuY3Rpb24gQyhlLHQpe2NvbnN0e2NvbnRleHQ6aSxob3Jpem9udGFsUGl4ZWxSYXRpbzpzLHZlcnRpY2FsUGl4ZWxSYXRpbzpuLGJpdG1hcFNpemU6cn09ZTtpLmJlZ2luUGF0aCgpLGkucmVjdCgwLDAsci53aWR0aCxyLmhlaWdodCk7Zm9yKGxldCBlPTA7ZTx0Lmxlbmd0aDtlKyspe2xldHt4OnIseTpvfT10W2VdO3IqPXMsbyo9biwwIT09ZT9pLmxpbmVUbyhyLG8pOmkubW92ZVRvKHIsbyl9aS5jbG9zZVBhdGgoKSxpLmNsaXAoImV2ZW5vZGQiKX1mdW5jdGlvbiBQKGUsdCxpKXtDKHtjb250ZXh0OmUsLi4udH0saSl9ZnVuY3Rpb24gVChlLHQsaSl7ZS5jb250ZXh0LnNhdmUoKSxDKGUsdCksaSgpLGUuY29udGV4dC5yZXN0b3JlKCl9bGV0IHg7ZnVuY3Rpb24gTShlLHQsaSl7cmV0dXJuIHh8fGZ1bmN0aW9uKCl7Y29uc3QgZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKTtlLndpZHRoPTAsZS5oZWlnaHQ9MCwoMCxsLmlzTWFjKSgpJiYoZS5zdHlsZS5kaXNwbGF5PSJub25lIixkb2N1bWVudC5ib2R5LmFwcGVuZChlKSkseD0oMCxuLmVuc3VyZU5vdE51bGwpKGUuZ2V0Q29udGV4dCgiMmQiKSkseC50ZXh0QmFzZWxpbmU9ImFscGhhYmV0aWMiLHgudGV4dEFsaWduPSJjZW50ZXIifSgpLHQmJnguZm9udCE9PXQmJih4LmZvbnQ9dCksaT9pLmdldE1ldHJpY3MoeCxlKTooMCxvLmdldE1pblRleHRNZXRyaWNzKSh4Lm1lYXN1cmVUZXh0KGUpKX19LDU3MDY1NChlLHQsaSl7InVzZSBzdHJpY3QiO2kuZCh0LHtjaGFydEZsb2F0aW5nVG9vbHRpcEVuYWJsZWRXVjooKT0+YX0pO3ZhciBzPWkoOTMwNTY2KSxuPWkoMjMyMzY0KTtjb25zdCByPSJjaGFydF9mbG9hdGluZ190b29sdGlwX2VuYWJsZWQiO2Z1bmN0aW9uIG8oKXtyZXR1cm4gcy5nZXRKU09OKHIsdHJ1ZSl9Y29uc3QgYT1uZXcgbi5XYXRjaGVkVmFsdWUobygpKTthLnN1YnNjcmliZSgoKCk9PnMuc2V0VmFsdWUocixhLnZhbHVlKCkpKSkscy5vblN5bmMuc3Vic2NyaWJlKG51bGwsKCgpPT5hLnNldFZhbHVlKG8oKSkpKX0sNDY0ODM1KGUsdCxpKXsidXNlIHN0cmljdCI7aS5kKHQse0NoYXJ0SG90a2V5c0xpc3RlbmVyOigpPT5nLGdsb2JhbEVudmlyb25tZW50U3RhdGU6KCk9Pm0sbW9kaWZpZXJQcmVzc2VkOigpPT5fLHNoaWZ0UHJlc3NlZDooKT0+cH0pO3ZhciBzPWkoNzI3MDkpLG49aSgyMzU3MjQpLHI9aSg3MjEzNjkpLG89aSgzNjgxMTApO3ZhciBhPWkoMjMyMzY0KSxsPWkoOTAxMzcwKTtjb25zdCBjPW5ldyBhLldhdGNoZWRWYWx1ZShCb29sZWFuKChzLnByZXNzZWRLZXlzLnZhbHVlKCk/PzApJm4uTW9kaWZpZXJzLlNoaWZ0KSksaD1uZXcgYS5XYXRjaGVkVmFsdWUoQm9vbGVhbigocy5wcmVzc2VkS2V5cy52YWx1ZSgpPz8wKSZuLk1vZGlmaWVycy5Nb2QpKSxkPW5ldyBhLldhdGNoZWRWYWx1ZShCb29sZWFuKChzLnByZXNzZWRLZXlzLnZhbHVlKCk/PzApJm4uTW9kaWZpZXJzLkFsdCkpLHU9W24uTW9kaWZpZXJzLk5vbmUsbi5Nb2RpZmllcnMuQWx0LG4uTW9kaWZpZXJzLk1vZCxuLk1vZGlmaWVycy5BbHQrbi5Nb2RpZmllcnMuU2hpZnRdO2Z1bmN0aW9uIHAoKXtyZXR1cm4gY31mdW5jdGlvbiBfKCl7cmV0dXJuIGh9ZnVuY3Rpb24gbSgpe3JldHVybiBuZXcgbC5FbnZpcm9ubWVudFN0YXRlKHthbHRLZXk6ZC52YWx1ZSgpLGN0cmxLZXk6XygpLnZhbHVlKCksbWV0YUtleTpfKCkudmFsdWUoKSxzaGlmdEtleTpwKCkudmFsdWUoKX0pfXMucHJlc3NlZEtleXMuc3Vic2NyaWJlKCgoZT0wKT0+e2Muc2V0VmFsdWUoQm9vbGVhbihlJm4uTW9kaWZpZXJzLlNoaWZ0KSksaC5zZXRWYWx1ZShCb29sZWFuKGUmbi5Nb2RpZmllcnMuTW9kKSksZC5zZXRWYWx1ZShCb29sZWFuKGUmbi5Nb2RpZmllcnMuQWx0KSl9KSk7Y2xhc3MgZ3tjb25zdHJ1Y3RvcihlLHQpe3RoaXMuX3ByZXNzZWRLZXlDb2RlPW51bGwsdGhpcy5fYm91bmRLZXlkb3duSGFuZGxlcj1udWxsLAp0aGlzLl9ib3VuZEtleXVwSGFuZGxlcj1udWxsLHRoaXMuX2NoYXJ0V2lkZ2V0PWUsdGhpcy5fcGFyZW50PXQsdGhpcy5fYm91bmRLZXlkb3duSGFuZGxlcj10aGlzLl9rZXlkb3duSGFuZGxlci5iaW5kKHRoaXMpLHRoaXMuX2JvdW5kS2V5dXBIYW5kbGVyPXRoaXMuX2tleXVwSGFuZGxlci5iaW5kKHRoaXMpLHRoaXMuX3BhcmVudC5vd25lckRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLHRoaXMuX2JvdW5kS2V5ZG93bkhhbmRsZXIpLHRoaXMuX3BhcmVudC5vd25lckRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImtleXVwIix0aGlzLl9ib3VuZEtleXVwSGFuZGxlcil9ZGVzdHJveSgpe251bGwhPT10aGlzLl9ib3VuZEtleWRvd25IYW5kbGVyJiYodGhpcy5fcGFyZW50Lm93bmVyRG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsdGhpcy5fYm91bmRLZXlkb3duSGFuZGxlciksdGhpcy5fYm91bmRLZXlkb3duSGFuZGxlcj1udWxsKSxudWxsIT09dGhpcy5fYm91bmRLZXl1cEhhbmRsZXImJih0aGlzLl9wYXJlbnQub3duZXJEb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJrZXl1cCIsdGhpcy5fYm91bmRLZXl1cEhhbmRsZXIpLHRoaXMuX2JvdW5kS2V5dXBIYW5kbGVyPW51bGwpfV9rZXlkb3duSGFuZGxlcihlKXt0aGlzLl9jaGFydFdpZGdldC5oYXNNb2RlbCgpJiZ0aGlzLl9jaGFydFdpZGdldC5pc0FjdGl2ZSgpLnZhbHVlKCkmJihlLmRlZmF1bHRQcmV2ZW50ZWR8fCgidGV4dC1lZGl0b3IiPT09d2luZG93LmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ/LmdldEF0dHJpYnV0ZSgiZGF0YS1uYW1lIikmJnRoaXMuX2hhbmRsZVRhYktleURvd24oZSl8fHdpbmRvdy5kb2N1bWVudC5hY3RpdmVFbGVtZW50PT09d2luZG93LmRvY3VtZW50LmJvZHkmJih0aGlzLl9oYW5kbGVNb3ZlRHJhd2luZ3NLZXlEb3duKGUpfHx0aGlzLl9oYW5kbGVTY3JvbGxLZXlEb3duKGUpfHx0aGlzLl9oYW5kbGVab29tS2V5RG93bihlKSkpJiZlLnByZXZlbnREZWZhdWx0KCkpfV9rZXl1cEhhbmRsZXIoZSl7dGhpcy5fY2hhcnRXaWRnZXQuaGFzTW9kZWwoKSYmdGhpcy5faGFuZGxlU2Nyb2xsS2V5VXAoZSl9X2hhbmRsZVRhYktleURvd24oZSl7Y29uc3QgdD0yNTUmKDAsbi5oYXNoRnJvbUV2ZW50KShlKSxpPXRoaXMuX2NoYXJ0V2lkZ2V0Lm1vZGVsKCk7aWYoOT09PXQpe2NvbnN0IHQ9aS5zZWxlY3Rpb24oKS5kYXRhU291cmNlcygpWzBdO2lmKHZvaWQgMCE9PXQmJihzPXQsKDAsby5pc0xpbmVUb29sKShzKSYmIkxpbmVUb29sVGFibGUiPT09cy5zdGF0ZSgpLnR5cGUpKXtjb25zdCBpPSgwLG4ubW9kaWZpZXJzRnJvbUV2ZW50KShlKTtyZXR1cm4gdC5zd2l0Y2hBY3RpdmVDZWxsKGk9PT1uLk1vZGlmaWVycy5TaGlmdCl9cmV0dXJuITF9dmFyIHM7cmV0dXJuITF9X2hhbmRsZU1vdmVEcmF3aW5nc0tleURvd24oZSl7Y29uc3QgdD0yNTUmKDAsbi5oYXNoRnJvbUV2ZW50KShlKSxpPXRoaXMuX2NoYXJ0V2lkZ2V0Lm1vZGVsKCk7c3dpdGNoKHQpe2Nhc2UgMzc6cmV0dXJuIGkubW92ZVNlbGVjdGVkVG9vbHNMZWZ0KCk7Y2FzZSAzOTpyZXR1cm4gaS5tb3ZlU2VsZWN0ZWRUb29sc1JpZ2h0KCk7Y2FzZSAzODpyZXR1cm4gaS5tb3ZlU2VsZWN0ZWRUb29sc1VwKCk7Y2FzZSA0MDpyZXR1cm4gaS5tb3ZlU2VsZWN0ZWRUb29sc0Rvd24oKX1yZXR1cm4hMX1faGFuZGxlU2Nyb2xsS2V5RG93bihlKXtpZihudWxsIT09dGhpcy5fcHJlc3NlZEtleUNvZGUpcmV0dXJuITE7Y29uc3QgdD0oMCxuLmhhc2hGcm9tRXZlbnQpKGUpLGk9MjU1JnQscz0oMCxuLm1vZGlmaWVyc0Zyb21FdmVudCkoZSk7bGV0IG87aWYoMzc9PT1pKW89MTtlbHNle2lmKDM5IT09aSlyZXR1cm4hMTtvPS0xfWlmKG4uaXNNYWNLZXlib2FyZCYmcz09PW4uTW9kaWZpZXJzLk1vZHx8IXUuaW5jbHVkZXMocykpcmV0dXJuITE7aWYoKDAsci5pc05hdGl2ZVVJSW50ZXJhY3Rpb24pKHQsZS50YXJnZXQpKXJldHVybiExO3RoaXMuX3ByZXNzZWRLZXlDb2RlPWk7Y29uc3QgYT10aGlzLl9jaGFydFdpZGdldC5zY3JvbGxIZWxwZXIoKTtyZXR1cm4gcz09PW4uTW9kaWZpZXJzLk5vbmU/YS5tb3ZlQnlCYXIobyk6cz09PW4uTW9kaWZpZXJzLkFsdHx8cz09PW4uTW9kaWZpZXJzLk1vZD9hLm1vdmUobyk6LTE9PT1vP2Euc2Nyb2xsVG9SZWFsdGltZSghMCk6YS5zY3JvbGxUb0ZpcnN0QmFyKCksITB9X2hhbmRsZVNjcm9sbEtleVVwKGUpe2lmKG51bGw9PT10aGlzLl9wcmVzc2VkS2V5Q29kZSlyZXR1cm4hMTtjb25zdCB0PSgwLG4uaGFzaEZyb21FdmVudCkoZSk7aWYoKDAsci5pc05hdGl2ZVVJSW50ZXJhY3Rpb24pKHQsZS50YXJnZXQpKXJldHVybiExO3JldHVybigyNTUmdCk9PT10aGlzLl9wcmVzc2VkS2V5Q29kZSYmKHRoaXMuX3ByZXNzZWRLZXlDb2RlPW51bGwsdGhpcy5fY2hhcnRXaWRnZXQuc2Nyb2xsSGVscGVyKCkuc3RvcE1vdmUoKSwhMCl9X2hhbmRsZVpvb21LZXlEb3duKGUpe2NvbnN0IHQ9KDAsbi5oYXNoRnJvbUV2ZW50KShlKSxpPTI1NSZ0O2lmKCgwLG4ubW9kaWZpZXJzRnJvbUV2ZW50KShlKSE9PW4uTW9kaWZpZXJzLk1vZHx8KDAsci5pc05hdGl2ZVVJSW50ZXJhY3Rpb24pKHQsZS50YXJnZXQpKXJldHVybiExO2NvbnN0IHM9dGhpcy5fY2hhcnRXaWRnZXQubW9kZWwoKTtpZigzOD09PWkpcy56b29tSW4oKTtlbHNle2lmKDQwIT09aSlyZXR1cm4hMTtzLnpvb21PdXQoKX1yZXR1cm4hMH19fSw5ODg3NzYoZSx0LGkpeyJ1c2Ugc3RyaWN0IjtpLmQodCx7Q2hhcnRXaWRnZXRDb2xsZWN0aW9uOigpPT5hZn0pO3ZhciBzPWkoMTY3NTAyKSxuPWkoMzA0MjIxKSxyPWkoNzQwMTYyKSxvPWkoNzAwODA5KSxhPWkoNjAxODQxKSxsPWkoMTM4NjM4KSxjPWkoMjIxMDYxKSxoPWkoMjMyMzY0KSxkPWkoNDAyMDQ1KSx1PWkoOTUyOTAwKSxwPWkoMTg1MjcxKSxfPWkoOTU4NTAwKSxtPWkoODYwNDQyKTt2YXIgZz1pKDE5ODkwMSksZj1pKDk0ODM4MCk7ZnVuY3Rpb24gUyhlKXtjb25zdCB0PXt9O3JldHVybntwcm9taXNlOm5ldyBQcm9taXNlKCgoaSxzKT0+e2Uuc3Vic2NyaWJlKHQsaSwhMCl9KSksZGVzdHJveTooKT0+ewplLnVuc3Vic2NyaWJlQWxsKHQpfX19dmFyIHY9aSgzNjIyODkpLHk9aSg1NzA2MDMpO2NvbnN0IGI9KCk9PlByb21pc2UuYWxsKFtpLmUoMTExNTEpLGkuZSg5MzUyOCldKS50aGVuKGkuYmluZChpLDIwNTY1NikpO2Z1bmN0aW9uIHcoZSx0PXt9KXtyZXR1cm4gYigpLnRoZW4oKGk9PmkuY29weVRvQ2xpcGJvYXJkSW1hZ2VPZkNoYXJ0KGUsdCkpKX1mdW5jdGlvbiBDKGUsdD17fSl7cmV0dXJuIGIoKS50aGVuKChpPT5pLmdldEltYWdlT2ZDaGFydFNpbGVudGx5KGUsdCkpKX12YXIgUD1pKDg4MzA1MyksVD1pKDY3ODI4NSkseD1pKDI1NDY3MyksTT1pKDg4MjA3OCksST1pKDQ2NTEzNyksTD1pKDc5ODM4KSxBPWkoMTI4OTk4KSxrPWkoNjY1MTg3KSxEPWkoMjAwNjY2KSxFPWkoNzY1MTczKTtjb25zdCBSPW5ldyB5LlRyYW5zbGF0ZWRTdHJpbmcoImFwcGx5IHRvb2xiYXJzIHRoZW1lIixwLnQobnVsbCx2b2lkIDAsaSg2NjMxMjgpKSk7Y2xhc3MgViBleHRlbmRzIEUuVW5kb0NvbW1hbmR7Y29uc3RydWN0b3IoZSx0LGk9ITApe3N1cGVyKFIpLHRoaXMuX3ByZXZUaGVtZU5hbWU9ZSx0aGlzLl90aGVtZU5hbWU9dCx0aGlzLl9zeW5jU3RhdGU9aX11bmRvKCl7KDAsay5pc1N0ZFRoZW1lTmFtZSkodGhpcy5fcHJldlRoZW1lTmFtZSkmJigoMCxELnNldFRoZW1lKSh0aGlzLl9wcmV2VGhlbWVOYW1lKSx0aGlzLl9zeW5jU3RhdGUmJigwLGsuc3luY1RoZW1lKSgpKX1yZWRvKCl7KDAsay5pc1N0ZFRoZW1lTmFtZSkodGhpcy5fdGhlbWVOYW1lLnRvTG93ZXJDYXNlKCkpJiYoKDAsRC5zZXRUaGVtZSkodGhpcy5fdGhlbWVOYW1lLnRvTG93ZXJDYXNlKCkpLHRoaXMuX3N5bmNTdGF0ZSYmKDAsay5zeW5jVGhlbWUpKCkpfX1jbGFzcyBCIGV4dGVuZHMgRS5VbmRvQ29tbWFuZHtjb25zdHJ1Y3RvcihlLHQsaSxzLG49ITApe3N1cGVyKHMsdm9pZCAwLG4pLHRoaXMuX3NldHRlcj1lLHRoaXMuX29sZFZhbHVlPXQsdGhpcy5fbmV3VmFsdWU9aX1yZWRvKCl7dGhpcy5fc2V0dGVyKHRoaXMuX25ld1ZhbHVlKX11bmRvKCl7dGhpcy5fc2V0dGVyKHRoaXMuX29sZFZhbHVlKX19Y2xhc3MgTiBleHRlbmRzIEJ7Y29uc3RydWN0b3IoZSx0LGkscyxuPSEwKXtzdXBlcigoZT0+dGhpcy5fdndTdGF0ZS5zZXRWYWx1ZShlKSksdCxpLHMsbiksdGhpcy5fdndTdGF0ZT1lfX12YXIgTz1pKDcyMDA3Mik7Y29uc3QgVz1uZXcgeS5UcmFuc2xhdGVkU3RyaW5nKCJjaGFuZ2UgY2hhcnQgbGF5b3V0IHRvIHt0aXRsZX0iLHAudChudWxsLHZvaWQgMCxpKDk5MzkpKSk7Y2xhc3MgRiBleHRlbmRzIEUuVW5kb0NvbW1hbmR7Y29uc3RydWN0b3IoZSx0KXtzdXBlcihXLmZvcm1hdCh7dGl0bGU6Ty5sYXlvdXRzW3RdLnRpdGxlfSkpLHRoaXMuX2NoYXJ0V2lkZ2V0Q29sbGVjdGlvbj1lLHRoaXMuX25ld0xheW91dFR5cGU9dCx0aGlzLl9vbGRMYXlvdXRUeXBlPWUubGF5b3V0LnZhbHVlKCl9cmVkbygpe3RoaXMuX2NoYXJ0V2lkZ2V0Q29sbGVjdGlvbi5zZXRMYXlvdXQodGhpcy5fbmV3TGF5b3V0VHlwZSl9dW5kbygpe3RoaXMuX2NoYXJ0V2lkZ2V0Q29sbGVjdGlvbi5zZXRMYXlvdXQodGhpcy5fb2xkTGF5b3V0VHlwZSl9fWNvbnN0IEg9KDAsYy5nZXRMb2dnZXIpKCJDb21tb24uVW5kb1N0YWNrIik7Y2xhc3Mgentjb25zdHJ1Y3Rvcigpe3RoaXMuX2NvbW1hbmRzPVtdLHRoaXMuX29uQ2hhbmdlPW5ldyBmLkRlbGVnYXRlfW9uQ2hhbmdlKCl7cmV0dXJuIHRoaXMuX29uQ2hhbmdlfWlzRW1wdHkoKXtyZXR1cm4gMD09PXRoaXMuX2NvbW1hbmRzLmxlbmd0aH1zaXplKCl7cmV0dXJuIHRoaXMuX2NvbW1hbmRzLmxlbmd0aH1jbGVhcigpe3RoaXMuaXNFbXB0eSgpfHwodGhpcy5fY29tbWFuZHMubGVuZ3RoPTAsdGhpcy5fb25DaGFuZ2UuZmlyZSgpKX1wdXNoKGUpe2lmKCEoZSBpbnN0YW5jZW9mIEUuVW5kb0NvbW1hbmQpKXRocm93IG5ldyBUeXBlRXJyb3IoImFyZ3VtZW50IG11c3QgYmUgYW4gaW5zdGFuY2Ugb2YgVW5kb0NvbW1hbmQiKTt0aGlzLl9jb21tYW5kcy5wdXNoKGUpLHRoaXMuX29uQ2hhbmdlLmZpcmUoZSl9cG9wKCl7aWYodGhpcy5pc0VtcHR5KCkpcmV0dXJuIHZvaWQgSC5sb2dEZWJ1ZygicG9wOiB1bmRvIHN0YWNrIGlzIGVtcHR5Iik7Y29uc3QgZT10aGlzLl9jb21tYW5kcy5wb3AoKTtyZXR1cm4gdGhpcy5fb25DaGFuZ2UuZmlyZShlKSxlfWhlYWQoKXtpZighdGhpcy5pc0VtcHR5KCkpcmV0dXJuIHRoaXMuX2NvbW1hbmRzW3RoaXMuX2NvbW1hbmRzLmxlbmd0aC0xXX19Y2xhc3MgVSBleHRlbmRzIEUuVW5kb0NvbW1hbmR7Y29uc3RydWN0b3IoZSl7c3VwZXIoZSwhMSksdGhpcy5fc3ViY29tbWFuZHM9W119YWRkQ29tbWFuZChlKXt0aGlzLl9zdWJjb21tYW5kcy5wdXNoKGUpfWlzRW1wdHkoKXtyZXR1cm4gMD09PXRoaXMuX3N1YmNvbW1hbmRzLmxlbmd0aH1yZWRvKGUpe2ZvcihsZXQgdD0wO3Q8dGhpcy5fc3ViY29tbWFuZHMubGVuZ3RoO3QrKyl0aGlzLl9zdWJjb21tYW5kc1t0XS5yZWRvKGUpfXVuZG8oZSl7Zm9yKGxldCB0PXRoaXMuX3N1YmNvbW1hbmRzLmxlbmd0aC0xO3Q+PTA7dC0tKXRoaXMuX3N1YmNvbW1hbmRzW3RdLnVuZG8oZSl9Y29tbWFuZHMoKXtyZXR1cm4gdGhpcy5fc3ViY29tbWFuZHN9YWZmZWN0c1N0YXRlKCl7cmV0dXJuIHRoaXMuX3N1YmNvbW1hbmRzLnNvbWUoKGU9PmUuYWZmZWN0c1N0YXRlKCkpKX19Y29uc3QgRz0oMCxjLmdldExvZ2dlcikoIkNvbW1vbi5VbmRvSGlzdG9yeSIpO3ZhciBqPWkoNTE4NzUpLHE9aSg5MzAyMzEpLCQ9aSgxNzk3NzEpLFk9aSg3MjcwOSksSz1pKDIzNTcyNCksWD1pKDExNzMxMyksWj1pKDIwOTM5KSxKPWkoMzE4OTc0KSxRPWkoOTMwNTY2KSxlZT1pKDI5NjI2Mik7Y2xhc3MgdGUgZXh0ZW5kcyBlZS5EaWFsb2dSZW5kZXJlcntjb25zdHJ1Y3RvcihlKXtzdXBlcigpLHRoaXMuX2RpYWxvZz1udWxsLHRoaXMuX3N1YnNjcmliZT1lPT57dGhpcy5fc2V0VmlzaWJpbGl0eShlKX0sdGhpcy5fY2hhcnRXaWRnZXRDb2xsZWN0aW9uPWV9c2hvdyhlKXt0aGlzLl9sb2FkKCkudGhlbigodD0+e3RoaXMuX2RpYWxvZz8uaGlkZSgpLAp0aGlzLl9kaWFsb2c/LnZpc2libGUoKS51bnN1YnNjcmliZSh0aGlzLl9zdWJzY3JpYmUpLHRoaXMuX2RpYWxvZz10LHQudmlzaWJsZSgpLnN1YnNjcmliZSh0aGlzLl9zdWJzY3JpYmUpLHQuc2hvdyhlKSwkLmVtaXQoImNvbXBhcmVfYWRkIil9KSl9aGlkZSgpe3RoaXMuX2RpYWxvZz8uaGlkZSgpfV9sb2FkKCl7cmV0dXJuIFByb21pc2UuYWxsKFtQcm9taXNlLmFsbChbaS5lKDMyNzgpLGkuZSgxNzMzNildKS50aGVuKGkuYmluZChpLDU0NzU3NykpLFByb21pc2UuYWxsKFtpLmUoMzMyMjUpLGkuZSg4NDMwNiksaS5lKDI5Mjk2KSxpLmUoNTIzOTYpLGkuZSg2MDA2MiksaS5lKDQ2OTA3KSxpLmUoMjAzNTQpLGkuZSgxMzQ5MiksaS5lKDM3NzQ2KSxpLmUoMTIzODUpLGkuZSg4MTA3MiksaS5lKDk0OTQ4KSxpLmUoMjM2MjQpLGkuZSgzNjIyMiksaS5lKDI5NTM2KSxpLmUoOTQyMzIpLGkuZSgzMjgxNiksaS5lKDUxODQpLGkuZSg1NjI1MiksaS5lKDgzNDg4KSxpLmUoNjc3OTkpLGkuZSgxMTQ2MSksaS5lKDI0NTgxKSxpLmUoOTY1ODcpLGkuZSgyNzUxNyksaS5lKDg2NDIzKSxpLmUoMzc1MTMpLGkuZSg5NTA0KSxpLmUoNDA4MzUpLGkuZSgxNzA4NyksaS5lKDcyNjY2KSxpLmUoOTgwODQpLGkuZSg5MzQyMSksaS5lKDc4NjUyKSxpLmUoNDk1ODgpLGkuZSgxMDM4NSksaS5lKDUyMDY1KSxpLmUoNDc2MzIpLGkuZSg2NjA1KSxpLmUoNzA4MTUpLGkuZSg1MDIyMSksaS5lKDMzNTE1KSxpLmUoMTQ2MjUpLGkuZSgxNTUyNiksaS5lKDcxNDE0KSxpLmUoNjU3KSxpLmUoNTI2ODApLGkuZSgzNTc5NCksaS5lKDE2NzYpLGkuZSg4OTIwNCksaS5lKDEyMDUxKSxpLmUoMzIxNzYpLGkuZSg5NzQ0KSxpLmUoODMwNDEpLGkuZSgxOTUxMyksaS5lKDcxNTI4KSxpLmUoODg2NDEpLGkuZSg1MjA5NSksaS5lKDU1MzM2KSxpLmUoOTIzOTMpLGkuZSg0NDAzMSksaS5lKDg5MDQ0KSxpLmUoNDcwOTIpLGkuZSg0Mzc5MiksaS5lKDc4NDA0KSxpLmUoNTAwMzUpLGkuZSg4MTEwNyksaS5lKDY4NTc5KSxpLmUoNjY0NyksaS5lKDQ3MjAxKSxpLmUoODAwNDEpLGkuZSg4NzY3MyksaS5lKDQzODA4KSxpLmUoNDYwNTUpLGkuZSgzMjM4NyksaS5lKDMwNjk5KSxpLmUoODA5MTUpLGkuZSgyMzc0MyksaS5lKDQyMjg4KSxpLmUoNzc1NzgpLGkuZSg4OTQ2KSxpLmUoMTQ4ODkpLGkuZSg0MjIxMiksaS5lKDk5MzA5KSxpLmUoNjg3MjUpLGkuZSg2MzQwMiksaS5lKDU3MDkzKSxpLmUoNDg2NTIpLGkuZSgxMzMxKSxpLmUoMjIzNDcpXSkudGhlbihpLmJpbmQoaSw1NzMxNjMpKV0pLnRoZW4oKChbZSx0XSk9Pntjb25zdCBpPW5ldyBlLkNvbXBhcmVNb2RlbCh0aGlzLl9jaGFydFdpZGdldENvbGxlY3Rpb24pO3JldHVybiB0LmdldENvbXBhcmVEaWFsb2dSZW5kZXJlcihpKX0pKX19Y2xhc3MgaWUgZXh0ZW5kcyBlZS5EaWFsb2dSZW5kZXJlcntjb25zdHJ1Y3RvcihlKXtzdXBlcigpLHRoaXMuX2RpYWxvZz1udWxsLHRoaXMuX3N1YnNjcmliZT1lPT57dGhpcy5fc2V0VmlzaWJpbGl0eShlKX0sdGhpcy5fY2hhcnRXaWRnZXRDb2xsZWN0aW9uPWV9c2hvdyhlKXtjb25zdCB0PXRoaXMuX2NoYXJ0V2lkZ2V0Q29sbGVjdGlvbixzPXQuYWN0aXZlQ2hhcnRXaWRnZXQudmFsdWUoKTtyZXR1cm4gcy5nZW5lcmFsUHJvcGVydGllc0RlZmluaXRpb25zKCkudGhlbigobj0+UHJvbWlzZS5hbGwoW2kuZSgyNzA0MCksaS5lKDg0MzA2KSxpLmUoMjkyOTYpLGkuZSg1MjM5NiksaS5lKDYwMDYyKSxpLmUoNDY5MDcpLGkuZSgyMDM1NCksaS5lKDEzNDkyKSxpLmUoMzc3NDYpLGkuZSgxMjM4NSksaS5lKDgxMDcyKSxpLmUoOTQ5NDgpLGkuZSgyMzYyNCksaS5lKDM2MjIyKSxpLmUoMjk1MzYpLGkuZSg1NjI1MiksaS5lKDgzNDg4KSxpLmUoMTk1OTUpLGkuZSgxOTc4NyksaS5lKDY3Nzk5KSxpLmUoMTE0NjEpLGkuZSgyNDU4MSksaS5lKDk2NTg3KSxpLmUoMTEyMTgpLGkuZSg4NjQyMyksaS5lKDM3NTEzKSxpLmUoODU3OSksaS5lKDk1MDQpLGkuZSg0MDgzNSksaS5lKDE3MDg3KSxpLmUoNzI2NjYpLGkuZSg5MzQyMSksaS5lKDc4NjUyKSxpLmUoMTAzODUpLGkuZSg1MjA2NSksaS5lKDQ3NjMyKSxpLmUoNjYwNSksaS5lKDcwODE1KSxpLmUoNzQzODEpLGkuZSgxNTUyNiksaS5lKDkzNDE2KSxpLmUoNjE4MjEpLGkuZSg1NzMwMCksaS5lKDkxODU1KSxpLmUoODk1NTgpLGkuZSgxMDM2NiksaS5lKDUxNjgyKSxpLmUoMjAyKSxpLmUoOTc2NjApLGkuZSg3MjUxMiksaS5lKDM1MTk4KSxpLmUoMzMxMjApLGkuZSg0MDg2NyksaS5lKDM5Nzg2KSxpLmUoNTA4MDApLGkuZSg1MDYyMiksaS5lKDYwODIpLGkuZSgyNzMzNyksaS5lKDQwOTE0KSxpLmUoODEyNDcpLGkuZSgyNzczNiksaS5lKDg3NzQwKSxpLmUoMzg0NzkpLGkuZSg5MDMzMCksaS5lKDk2MTgxKSxpLmUoMjA1NjQpLGkuZSg1MTI1NiksaS5lKDQ1MzMxKSxpLmUoNDI3MjEpLGkuZSg0NTI0MiksaS5lKDc4NjMpLGkuZSg0NjI0NSksaS5lKDk4NTA5KSxpLmUoNTUyOTApLGkuZSg5MTY3MCksaS5lKDg2NTQ0KSxpLmUoMzIzODcpLGkuZSg4MDkxNSksaS5lKDQwNzU0KSxpLmUoMjM3NDMpLGkuZSg0MjI4OCksaS5lKDcyMTEpLGkuZSg5OTMwOSksaS5lKDU1MjI5KSxpLmUoNzM1MzUpLGkuZSgyNjUwMSksaS5lKDEwOTk5KSxpLmUoMzg5NzMpLGkuZSg1MDYyNSldKS50aGVuKGkuYmluZChpLDc2ODM4OCkpLnRoZW4oKGk9Pntjb25zdCByPW5ldyBpLkdlbmVyYWxDaGFydFByb3BlcnRpZXNEaWFsb2dSZW5kZXJlcih7Y2hhcnRXaWRnZXRDb2xsZWN0aW9uOnQscHJvcGVydHlQYWdlczpuLGFjdGl2ZVBhZ2VJZDp0aGlzLl9hY3RpdmVQYWdlSWQsbW9kZWw6cy5tb2RlbCgpfSk7cmV0dXJuIHRoaXMuX2RpYWxvZz8uaGlkZSgpLHRoaXMuX2RpYWxvZz8udmlzaWJsZSgpLnVuc3Vic2NyaWJlKHRoaXMuX3N1YnNjcmliZSksdGhpcy5fZGlhbG9nPXIsci52aXNpYmxlKCkuc3Vic2NyaWJlKHRoaXMuX3N1YnNjcmliZSksci5zaG93KGUpLHRoaXMuX2FjdGl2ZVBhZ2VJZD12b2lkIDAscn0pKSkpfWhpZGUoKXt0aGlzLl9kaWFsb2c/LmhpZGUoKX1pc1Zpc2libGUoKXtyZXR1cm4gdGhpcy52aXNpYmxlKCkudmFsdWUoKX0KZm9jdXNPblRleHQoKXt9c2V0QWN0aXZlUGFnZShlKXt0aGlzLl9hY3RpdmVQYWdlSWQ9ZX19Y2xhc3Mgc2UgZXh0ZW5kcyBFLlVuZG9Db21tYW5ke2NvbnN0cnVjdG9yKGUsdCl7c3VwZXIobnVsbCksdGhpcy5fY2hhcnRNb2RlbD1lLHRoaXMuX3RhcmdldEluZGV4PXR9cmVkbygpe2NvbnN0IGU9dGhpcy5fY2hhcnRNb2RlbC5jcmVhdGVQYW5lKHRoaXMuX3RhcmdldEluZGV4LHZvaWQgMCx0aGlzLl9wYW5lSWQpO3RoaXMuX3BhbmVJZD1lLmlkKCl9dW5kbygpe2NvbnN0IGU9KDAsbC5lbnN1cmVEZWZpbmVkKSh0aGlzLl9wYW5lSWQpLHQ9dGhpcy5fY2hhcnRNb2RlbC5wYW5lcygpLmZpbmQoKHQ9PnQuaWQoKT09PWUpKTt2b2lkIDAhPT10JiZ0aGlzLl9jaGFydE1vZGVsLnJlbW92ZVBhbmUodCl9Y3JlYXRlZFBhbmVJZCgpe3JldHVybiB0aGlzLl9wYW5lSWR9fXZhciBuZT1pKDQwMTUyMykscmU9aSg0MDg3NzUpO2NvbnN0IG9lPW5ldyB5LlRyYW5zbGF0ZWRTdHJpbmcoInN3YXAgY2hhcnRzIGluIHRoZSBMYXlvdXQiLHAudChudWxsLHZvaWQgMCxpKDIwOTU5OSkpKTtjbGFzcyBhZSBleHRlbmRzIEUuVW5kb0NvbW1hbmR7Y29uc3RydWN0b3IoZSx0LGkpe3N1cGVyKG9lKSx0aGlzLl9zd2FwcGVyPWUsdGhpcy5fZnJvbT10LHRoaXMuX3RvPWl9cmVkbygpe3RoaXMuX3N3YXBwZXIodGhpcy5fZnJvbSx0aGlzLl90byl9dW5kbygpe3RoaXMuX3N3YXBwZXIodGhpcy5fZnJvbSx0aGlzLl90byl9fXZhciBsZT1pKDQ5NzAxOCksY2U9aSgxNDc4MDUpLGhlPWkoMjM0OTY0KSxkZT1pKDU1NDY1NCk7aSg3MjI1NzEpO3ZhciB1ZT1pKDUyODg3Mik7dmFyIHBlPWkoNzU0ODY0KSxfZT1pKDU5MjM3MCksbWU9aSgzNzgwOCk7Y29uc3QgZ2U9InJlcGxheV9tb2RlIjtmdW5jdGlvbiBmZSgpe3JldHVybiBKLkNoZWNrTW9iaWxlLmFueSgpPyJBY3RpdmVDaGFydCI6US5nZXRWYWx1ZShnZSwiQWN0aXZlQ2hhcnQiKX1jb25zdCBTZT0oMCxtZS5jcmVhdGVQcmltaXRpdmVQcm9wZXJ0eSkoZmUoKSk7ZnVuY3Rpb24gdmUoZSl7Y29uc3R7ZnVsbElkOnQscGluZTppfT1lO3JldHVybmAke3R9JHtpP2Bbdi4ke2kudmVyc2lvbn1dYDoiIn1gfVEub25TeW5jLnN1YnNjcmliZShudWxsLCgoKT0+U2Uuc2V0VmFsdWUoZmUoKSkpKSxTZS5zdWJzY3JpYmUobnVsbCwoKCk9PlEuc2V0VmFsdWUoZ2UsU2UudmFsdWUoKSkpKTtjb25zdCB5ZT0vKFtcdywlLCQsOyxALC1dKilcW3YuKFtcdywuLC1dKilcXS87ZnVuY3Rpb24gYmUoZSl7Y29uc3QgdD15ZS5leGVjKGUpO3JldHVybiB0P3tmdWxsSWQ6dFsxXSxwaW5lOnt2ZXJzaW9uOnRbMl19fTp7ZnVsbElkOmV9fXZhciB3ZT1pKDc3MDc1NSksQ2U9aSg0NzkzNCksUGU9aSg1NjkzOTgpLFRlPWkoNjMxNjM0KSx4ZT1pKDU2OTg0NiksTWU9aSg3MzYwNjMpLEllPWkoMTU2ODUwKSxMZT1pKDQ5MDQ0Nik7Y29uc3QgQWU9KDAsYy5nZXRMb2dnZXIpKCJUaW1pbmdzTWV0ZXIuU2VydmljZSIpLGtlPSgwLGMuZ2V0TG9nZ2VyKSgiVGltaW5nc01ldGVyLlN0YXRzIix7bWF4Q291bnQ6MTYwfSk7dmFyIERlOyFmdW5jdGlvbihlKXtlW2UuSW52YWxpZFRpbWU9LTFdPSJJbnZhbGlkVGltZSIsZVtlLkxvZ2dlckR1bXBUaW1pbmdzU3RhdHNJbnRlcnZhbD0xNWUzXT0iTG9nZ2VyRHVtcFRpbWluZ3NTdGF0c0ludGVydmFsIixlW2UuVGVsZW1ldHJ5RHVtcFRpbWluZ3NTdGF0c0ludGVydmFsPTZlNV09IlRlbGVtZXRyeUR1bXBUaW1pbmdzU3RhdHNJbnRlcnZhbCJ9KERlfHwoRGU9e30pKTtjb25zdCBFZT17W0xlLkludmFsaWRhdGlvbkxldmVsLk5vbmVdOiJub25lIixbTGUuSW52YWxpZGF0aW9uTGV2ZWwuQ3Vyc29yXToiY3Vyc29yIixbTGUuSW52YWxpZGF0aW9uTGV2ZWwuTGlnaHRdOiJsaWdodCIsW0xlLkludmFsaWRhdGlvbkxldmVsLkZ1bGxdOiJmdWxsIn07ZnVuY3Rpb24gUmUoZSx0KXtyZXR1cm4gZS5sYXN0VGltZT10LGUudG90YWxUaW1lKz10LCsrZS5jb3VudCx0PmUubWF4VGltZSYmKGUubWF4VGltZT10KSxlfWZ1bmN0aW9uIFZlKGUpe3JldHVybiBlLnRvRml4ZWQoMil9ZnVuY3Rpb24gQmUoZSl7Y29uc3QgdD1lLmNvdW50O2lmKDA9PT10KXJldHVybiJubyBldmVudHMiO2NvbnN0IGk9ZS50b3RhbFRpbWUvdCxzPVZlKGUubWF4VGltZSk7cmV0dXJuYGNvdW50PSR7dH0sIGxhc3Q9JHtWZShlLmxhc3RUaW1lKX0sIG1heD0ke3N9LCBhdmc9JHtWZShpKX1gfWNsYXNzIE5le2NvbnN0cnVjdG9yKGUsdCl7dGhpcy5fY3VycmVudERyYXdJdGVtcz17fSx0aGlzLl9jdXJyZW50V2FpdGluZ0l0ZW09e2NvdW50OjAsbGFzdFRpbWU6MCxtYXhUaW1lOjAsdG90YWxUaW1lOjB9LHRoaXMuX2R1bXBUaW1pbmdzU3RhdHNJbnRlcnZhbD0wLHRoaXMuX2xvZ1ByZWZpeD1gWyR7ZX1dYCx0aGlzLl9kdW1wVGltdG91dD10fXN0YXJ0Q29sbGVjdCgpezAhPT10aGlzLl9kdW1wVGltaW5nc1N0YXRzSW50ZXJ2YWwmJihBZS5sb2dXYXJuKGAke3RoaXMuX2xvZ1ByZWZpeH0gTXVsdGlwbGUgc3RhcnQgZGV0ZWN0ZWRgKSx0aGlzLnN0b3BDb2xsZWN0KCkpLHRoaXMuX2NsZWFyQ3VycmVudFN0YXRlKCksdGhpcy5fZHVtcFRpbWluZ3NTdGF0c0ludGVydmFsPXNldEludGVydmFsKHRoaXMuX2R1bXBUaW1pbmdzU3RhdHMuYmluZCh0aGlzKSx0aGlzLl9kdW1wVGltdG91dCksQWUubG9nTm9ybWFsKGAke3RoaXMuX2xvZ1ByZWZpeH0gQ29sbGVjdGluZyBzdGFydGVkYCl9c3RvcENvbGxlY3QoKXswIT09dGhpcy5fZHVtcFRpbWluZ3NTdGF0c0ludGVydmFsJiYoY2xlYXJJbnRlcnZhbCh0aGlzLl9kdW1wVGltaW5nc1N0YXRzSW50ZXJ2YWwpLHRoaXMuX2R1bXBUaW1pbmdzU3RhdHNJbnRlcnZhbD0wLEFlLmxvZ05vcm1hbChgJHt0aGlzLl9sb2dQcmVmaXh9IENvbGxlY3Rpbmcgc3RvcHBlZC4gRHVtcGluZyBsYXN0IHN0YXRlLi4uYCksdGhpcy5fZHVtcFRpbWluZ3NTdGF0cygpKX11cGRhdGVUaW1pbmdzKGUsdCxpKXt0aGlzLl9jdXJyZW50RHJhd0l0ZW1zW2VdPVJlKHRoaXMuX2N1cnJlbnREcmF3SXRlbXNbZV0/P3tjb3VudDowLGxhc3RUaW1lOjAsbWF4VGltZTowLHRvdGFsVGltZTowfSxpKSwKUmUodGhpcy5fY3VycmVudFdhaXRpbmdJdGVtLHQpfV9kdW1wVGltaW5nc1N0YXRzKCl7dGhpcy5fY2xlYXJDdXJyZW50U3RhdGUoKX1fY2xlYXJDdXJyZW50U3RhdGUoKXt0aGlzLl9jdXJyZW50RHJhd0l0ZW1zPXt9LHRoaXMuX2N1cnJlbnRXYWl0aW5nSXRlbT17Y291bnQ6MCxsYXN0VGltZTowLG1heFRpbWU6MCx0b3RhbFRpbWU6MH19fWNsYXNzIE9lIGV4dGVuZHMgTmV7Y29uc3RydWN0b3IoZSl7c3VwZXIoZSwxNWUzKX1fZHVtcFRpbWluZ3NTdGF0cygpe2NvbnN0IGU9W3RoaXMuX2xvZ1ByZWZpeCwiIGF3YWl0aW5nOiIsQmUodGhpcy5fY3VycmVudFdhaXRpbmdJdGVtKSwuLi5PYmplY3Qua2V5cyh0aGlzLl9jdXJyZW50RHJhd0l0ZW1zKS5tYXAoKGU9PmA7ICR7ZX06ICR7QmUodGhpcy5fY3VycmVudERyYXdJdGVtc1tlXSl9YCkpXS5qb2luKCIiKTtrZS5sb2dOb3JtYWwoZSksc3VwZXIuX2R1bXBUaW1pbmdzU3RhdHMoKX19Y2xhc3MgV2UgZXh0ZW5kcyBOZXtjb25zdHJ1Y3RvcihlKXtzdXBlcihlLDZlNSl9X2R1bXBUaW1pbmdzU3RhdHMoKXtPYmplY3Qua2V5cyh0aGlzLl9jdXJyZW50RHJhd0l0ZW1zKS5mb3JFYWNoKChlPT57Y29uc3QgdD10aGlzLl9jdXJyZW50RHJhd0l0ZW1zW2VdLGk9YGNoYXJ0X3JlbmRlcmluZ190aW1lXyR7ZX1fYXZnX3RpbWVgO0llLnRlbGVtZXRyeS5zZW5kQ2hhcnRSZXBvcnQoaSx7dmFsdWU6dC50b3RhbFRpbWUvdC5jb3VudH0pfSkpLHN1cGVyLl9kdW1wVGltaW5nc1N0YXRzKCl9fWNsYXNzIEZle2NvbnN0cnVjdG9yKGUpe3RoaXMuX3dhaXREcmF3U3RhcnRUaW1lPS0xLHRoaXMuX3N0YXJ0RHJhd1RpbWU9LTEsdGhpcy5fY3VycmVudERyYXdMZXZlbD1MZS5JbnZhbGlkYXRpb25MZXZlbC5GdWxsLHRoaXMuX2N1cnJlbnRDaGFydFN0eWxlPTEsdGhpcy5fYWdncmVnYXRvcnM9W10sdGhpcy5fYWdncmVnYXRvcnMucHVzaChuZXcgT2UoZSkpLHRoaXMuX2FnZ3JlZ2F0b3JzLnB1c2gobmV3IFdlKGUpKX1kZXN0cm95KCl7dGhpcy5zdG9wQ29sbGVjdCgpfXN0YXJ0Q29sbGVjdCgpe3RoaXMuX2FnZ3JlZ2F0b3JzLmZvckVhY2goKGU9PntlLnN0YXJ0Q29sbGVjdCgpfSkpfXN0b3BDb2xsZWN0KCl7dGhpcy5fYWdncmVnYXRvcnMuZm9yRWFjaCgoZT0+e2Uuc3RvcENvbGxlY3QoKX0pKX1zdGFydFdhaXRpbmdEcmF3KCl7dGhpcy5fd2FpdERyYXdTdGFydFRpbWU9d2luZG93LnBlcmZvcm1hbmNlLm5vdygpfXN0YXJ0RHJhdyhlLHQpe3RoaXMuX3N0YXJ0RHJhd1RpbWU9d2luZG93LnBlcmZvcm1hbmNlLm5vdygpLHRoaXMuX2N1cnJlbnREcmF3TGV2ZWw9ZSx0aGlzLl9jdXJyZW50Q2hhcnRTdHlsZT10fXN0b3BEcmF3KCl7Y29uc3QgZT13aW5kb3cucGVyZm9ybWFuY2Uubm93KCk7aWYoLTE9PT10aGlzLl9zdGFydERyYXdUaW1lfHwtMT09PXRoaXMuX3dhaXREcmF3U3RhcnRUaW1lKXJldHVybjtjb25zdCB0PXRoaXMuX3N0YXJ0RHJhd1RpbWUtdGhpcy5fd2FpdERyYXdTdGFydFRpbWU7dGhpcy5fd2FpdERyYXdTdGFydFRpbWU9LTE7Y29uc3QgaT1lLXRoaXMuX3N0YXJ0RHJhd1RpbWUscz0obj10aGlzLl9jdXJyZW50RHJhd0xldmVsLHI9dGhpcy5fY3VycmVudENoYXJ0U3R5bGUsbj09PUxlLkludmFsaWRhdGlvbkxldmVsLkxpZ2h0P2Ake0VlW25dfV8ke0wuU1RZTEVfU0hPUlRfTkFNRVNbcl19YDpFZVtuXSk7dmFyIG4scjt0aGlzLl9hZ2dyZWdhdG9ycy5mb3JFYWNoKChlPT57ZS51cGRhdGVUaW1pbmdzKHMsdCxpKX0pKSx0aGlzLl9zdGFydERyYXdUaW1lPS0xfX12YXIgSGU9aSgzODMzNTEpLHplPWkoODA5OTkzKSxVZT1pKDYzMjY4NiksR2U9aSgzMzk1MSksamU9aSg2ODkwMjEpLHFlPWkoMjE0OTg3KSwkZT1pKDc4MzU5Myk7Y29uc3QgWWU9bmV3IGNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5fdGltZXJXb3JrZXI9bnVsbCx0aGlzLl90aW1lcklkQ291bnRlcj0xLHRoaXMuX3RpbWVyc01hcD1uZXcgTWFwLHRoaXMuX3JlamVjdHNUb0NhbGw9bmV3IFNldCx0aGlzLl9wcm9jZXNzTWVzc2FnZT1lPT57Y29uc3QgdD10aGlzLl90aW1lcnNNYXAuZ2V0KGUuZGF0YS50dXJuYXJvdW5kKTtzd2l0Y2goZS5kYXRhLnR5cGUpe2Nhc2UidGltZXJDcmVhdGVkIjp0JiYodC5zY2hlZHVsZWRGb3JSZW1vdmluZz8oImludGVydmFsIj09PXQudHlwZT90aGlzLl9nZXRUaW1lcldvcmtlcigpLnBvc3RNZXNzYWdlKHt0eXBlOiJjbGVhckludGVydmFsIixpZDplLmRhdGEuaWR9KTp0aGlzLl9nZXRUaW1lcldvcmtlcigpLnBvc3RNZXNzYWdlKHt0eXBlOiJjbGVhclRpbWVvdXQiLGlkOmUuZGF0YS5pZH0pLHRoaXMuX2RlbGV0ZVRpbWVyRnJvbU1hcChlLmRhdGEudHVybmFyb3VuZCkpOnQud29ya2VyVGltZXJJZD1lLmRhdGEuaWQpO2JyZWFrO2Nhc2UidGltZXJGaXJlZCI6dCYmKHQuY2FsbGJhY2soKSwidGltZW91dCI9PT10LnR5cGUmJnRoaXMuX2RlbGV0ZVRpbWVyRnJvbU1hcChlLmRhdGEudHVybmFyb3VuZCkpfX19ZGVzdHJveSgpe3RoaXMuX3JlamVjdHNUb0NhbGwuZm9yRWFjaCgoZT0+ZSgoMCxxZS5jcmVhdGVBYm9ydEVycm9yKSgpKSkpLHRoaXMuX3RpbWVyV29ya2VyPy50ZXJtaW5hdGUoKSx0aGlzLl90aW1lcldvcmtlcj1udWxsLHRoaXMuX3RpbWVyc01hcC5jbGVhcigpfXNldFRpbWVvdXQoZSx0KXtyZXR1cm4gdGhpcy5fc2V0VGltZW91dEltcGwoZSx0LCJ0aW1lb3V0Iil9Y2xlYXJUaW1lb3V0KGUpe2NvbnN0IHQ9dGhpcy5fdGltZXJzTWFwLmdldChlKTt0JiYodC53b3JrZXJUaW1lcklkPyh0aGlzLl9nZXRUaW1lcldvcmtlcigpLnBvc3RNZXNzYWdlKHt0eXBlOiJjbGVhclRpbWVvdXQiLGlkOnQud29ya2VyVGltZXJJZH0pLHRoaXMuX2RlbGV0ZVRpbWVyRnJvbU1hcChlKSk6dC5zY2hlZHVsZWRGb3JSZW1vdmluZz0hMCl9c2V0SW50ZXJ2YWwoZSx0KXtjb25zdCBpPXRoaXMuX25leHRUaW1lcklkKCk7cmV0dXJuIHRoaXMuX3RpbWVyc01hcC5zZXQoaSx7Y2FsbGJhY2s6ZSx0eXBlOiJpbnRlcnZhbCJ9KSx0aGlzLl9nZXRUaW1lcldvcmtlcigpLnBvc3RNZXNzYWdlKHt0eXBlOiJzZXRJbnRlcnZhbCIsZGVsYXk6dCx0dXJuYXJvdW5kOml9KSxpfQpjbGVhckludGVydmFsKGUpe2NvbnN0IHQ9dGhpcy5fdGltZXJzTWFwLmdldChlKTt0JiYodC53b3JrZXJUaW1lcklkPyh0aGlzLl9nZXRUaW1lcldvcmtlcigpLnBvc3RNZXNzYWdlKHt0eXBlOiJjbGVhckludGVydmFsIixpZDp0LndvcmtlclRpbWVySWR9KSx0aGlzLl9kZWxldGVUaW1lckZyb21NYXAoZSkpOnQuc2NoZWR1bGVkRm9yUmVtb3Zpbmc9ITApfWFzeW5jIGNyZWF0ZVRpbWVvdXQoZSx0KXtsZXQgaTtyZXR1cm4gbmV3IFByb21pc2UoKChzLG4pPT57aT1uLHRoaXMuX3JlamVjdHNUb0NhbGwuYWRkKGkpO2NvbnN0IHI9dGhpcy5zZXRUaW1lb3V0KHMsZSk7dD8uc2lnbmFsPy5hZGRFdmVudExpc3RlbmVyKCJhYm9ydCIsKCgpPT57dGhpcy5jbGVhclRpbWVvdXQociksbigoMCxxZS5jcmVhdGVBYm9ydEVycm9yKSgpKX0pKX0pKS5maW5hbGx5KCgoKT0+e3RoaXMuX3JlamVjdHNUb0NhbGwuZGVsZXRlKGkpfSkpfWFzeW5jKmNyZWF0ZUludGVydmFsKGUsdCl7bGV0IGk9KCk9Pnt9LHM9ZT0+e307Y29uc3Qgbj10aGlzLnNldEludGVydmFsKCgoKT0+e2koKX0pLGUpO3Quc2lnbmFsLmFkZEV2ZW50TGlzdGVuZXIoImFib3J0IiwoKCk9Pnt0aGlzLmNsZWFySW50ZXJ2YWwobikscygoMCxxZS5jcmVhdGVBYm9ydEVycm9yKSgpKX0pKTt0cnl7Zm9yKDs7KWF3YWl0IG5ldyBQcm9taXNlKCgoZSx0KT0+e2k9ZSx0aGlzLl9yZWplY3RzVG9DYWxsLmRlbGV0ZShzKSxzPXQsdGhpcy5fcmVqZWN0c1RvQ2FsbC5hZGQocyl9KSkseWllbGR9Y2F0Y2goZSl7aWYoISgwLHFlLmlzQWJvcnRFcnJvcikoZSkpdGhyb3cgZX19X2dldFRpbWVyV29ya2VyKCl7cmV0dXJuIG51bGw9PT10aGlzLl90aW1lcldvcmtlciYmKHRoaXMuX3RpbWVyV29ya2VyPW5ldyAkZS5Xb3JrZXIobmV3IFVSTChpLnAraS51KDg0MjA2KSxpLmIpLHtuYW1lOiJUaW1lciB3b3JrZXIiLGxhbmd1YWdlOndpbmRvdy5sYW5ndWFnZX0pLHRoaXMuX3RpbWVyV29ya2VyLm9ubWVzc2FnZT10aGlzLl9wcm9jZXNzTWVzc2FnZSksdGhpcy5fdGltZXJXb3JrZXJ9X3NldFRpbWVvdXRJbXBsKGUsdCxpKXtjb25zdCBzPXRoaXMuX25leHRUaW1lcklkKCk7cmV0dXJuIHRoaXMuX3RpbWVyc01hcC5zZXQocyx7Y2FsbGJhY2s6ZSx0eXBlOml9KSx0aGlzLl9nZXRUaW1lcldvcmtlcigpLnBvc3RNZXNzYWdlKHt0eXBlOiJzZXRUaW1lb3V0IixkZWxheTp0LHR1cm5hcm91bmQ6c30pLHN9X2RlbGV0ZVRpbWVyRnJvbU1hcChlKXtpZih0aGlzLl90aW1lcnNNYXAuZGVsZXRlKGUpLDA9PT10aGlzLl90aW1lcnNNYXAuc2l6ZSl7Y29uc3QgZT10aGlzLl9zZXRUaW1lb3V0SW1wbCgoKCk9PnsxPT09dGhpcy5fdGltZXJzTWFwLnNpemUmJnRoaXMuX3RpbWVyc01hcC5oYXMoZSkmJih0aGlzLl90aW1lcnNNYXAuZGVsZXRlKGUpLHRoaXMuX3RpbWVyV29ya2VyPy50ZXJtaW5hdGUoKSx0aGlzLl90aW1lcldvcmtlcj1udWxsKX0pLDZlNCwidGVybWluYWxfdGltZXIiKX19X25leHRUaW1lcklkKCl7cmV0dXJuIHRoaXMuX3RpbWVySWRDb3VudGVyKyt9fSxLZT1uZXcgU2V0KFsiY2hhcnRfc3RvcmFnZV9oaWJlcm5hdGlvbl9kZWxheV82MG1pbiIsImNoYXJ0X3N0b3JhZ2VfaGliZXJuYXRpb25fZGVsYXlfMTBtaW4iLCJjaGFydF9zdG9yYWdlX2hpYmVybmF0aW9uX2RlbGF5XzVtaW4iXSk7dmFyIFhlOyFmdW5jdGlvbihlKXtlW2UuT25lTWludXRlPTZlNF09Ik9uZU1pbnV0ZSIsZVtlLkZpdmVNaW51dGVzPTNlNV09IkZpdmVNaW51dGVzIixlW2UuVGVuTWludXRlcz02ZTVdPSJUZW5NaW51dGVzIixlW2UuU2l4dHlNaW51dGVzPTM2ZTVdPSJTaXh0eU1pbnV0ZXMifShYZXx8KFhlPXt9KSk7Y29uc3QgWmU9bmV3IGguV2F0Y2hlZFZhbHVlKEplKCkpO2Z1bmN0aW9uIEplKCl7cmV0dXJuKDAsUGUuaXNGZWF0dXJlRW5hYmxlZCkoImNoYXJ0X3N0b3JhZ2VfaGliZXJuYXRpb25fZGVsYXlfNjBtaW4iKT8zNmU1OigwLFBlLmlzRmVhdHVyZUVuYWJsZWQpKCJjaGFydF9zdG9yYWdlX2hpYmVybmF0aW9uX2RlbGF5XzEwbWluIik/NmU1OigwLFBlLmlzRmVhdHVyZUVuYWJsZWQpKCJjaGFydF9zdG9yYWdlX2hpYmVybmF0aW9uX2RlbGF5XzVtaW4iKT8zZTU6NmU0fSgwLFBlLm9uRmVhdHVyZXNTdGF0ZUNoYW5nZWQpKCkuc3Vic2NyaWJlKG51bGwsKGU9PntpZighZnVuY3Rpb24oZSl7cmV0dXJuIEtlLmhhcyhlKX0oZSkpcmV0dXJuO2NvbnN0IHQ9SmUoKTtaZS5zZXRWYWx1ZSh0LCExKX0pKTtjb25zdCBRZT1aZS5yZWFkb25seSgpLGV0PSgwLFBlLmlzRmVhdHVyZUVuYWJsZWQpKCJuZXdfc3RvcmFnZV9zdWJzY3JpcHRpb25fdXJsIik7ZnVuY3Rpb24gdHQoZSl7Y29uc3QgdD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdsaW5rW3JlbH49ImNoYXJ0LXN0b3JhZ2Utbm90aWZpY2F0aW9ucyJdJyk7cmV0dXJuIHQ/LmhyZWY/ZT9uZXcgVVJMKGUsdC5ocmVmKTpuZXcgVVJMKHQuaHJlZik6bnVsbH12YXIgaXQ7ZnVuY3Rpb24gc3QoZSx0KXtyZXR1cm4gQm9vbGVhbihlLm1ldGFJbmZvLnVpZC52YWx1ZSgpKSYmIXQuY29udGFpbnNEYXRhJiYhdC5vbldpZGdldCYmZnVuY3Rpb24oKXtpZighKDAsWC5pc09uTW9iaWxlQXBwUGFnZSkoIm5ldyIpKXJldHVybiEwO2NvbnN0IGU9L1RyYWRpbmdWaWV3XC8oXGQrKVwuKFxkKylcLihcZCspXC4/Ly5leGVjKG5hdmlnYXRvci51c2VyQWdlbnQpO2lmKG51bGw9PT1lKXJldHVybiEwO2NvbnN0IHQ9TnVtYmVyKGVbMV0pLTEsaT1OdW1iZXIoZVsyXSktMTUscz1OdW1iZXIoZVszXSktMDtpZih0PjB8fDA9PT10JiZpPjB8fDA9PT10JiYwPT09aSYmcz4wKXJldHVybiEwO3JldHVybiExfSgpJiZudWxsIT09dHQoKX0hZnVuY3Rpb24oZSl7ZVtlLk1pbk1ham9yVmVyc2lvbj0xXT0iTWluTWFqb3JWZXJzaW9uIixlW2UuTWluTWlub3JWZXJzaW9uPTE1XT0iTWluTWlub3JWZXJzaW9uIixlW2UuTWluUGF0Y2hWZXJzaW9uPTBdPSJNaW5QYXRjaFZlcnNpb24ifShpdHx8KGl0PXt9KSk7Y29uc3QgbnQ9KDAsYy5nZXRMb2dnZXIpKCJDaGFydFN0b3JhZ2VDaGFuZ2VzU3Vic2NyaXB0aW9uIikKO2NsYXNzIHJ0IGV4dGVuZHMgemUuUGVyc2lzdGVudEV2ZW50U291cmNlVHJhbnNwb3J0e2NvbnN0cnVjdG9yKGUsdCl7c3VwZXIoKGU9PnRoaXMuX29uTWVzc2FnZShlKSkpLHRoaXMuX2Rlc3Ryb3llZD0hMSx0aGlzLl9vbkNoYW5nZVZpc2liaWxpdHlCb3VuZD10aGlzLl9vbkNoYW5nZVZpc2liaWxpdHkuYmluZCh0aGlzKSx0aGlzLl9oaWJlcm5hdGVUaW1lcklkPW51bGwsdGhpcy5faGliZXJuYXRlRGVsYXk9UWUuc3Bhd24oKSx0aGlzLl9iZWZvcmVVbmhpYmVybmF0aW5nPW5ldyBmLkRlbGVnYXRlLHRoaXMuX29uQ2hhbmdlc0NhbGxiYWNrcz1uZXcgU2V0LHRoaXMuX2hhdmVFdmVyQmVlbkhpYmVybmF0ZWQ9ITEsdGhpcy5fZmlyZUJlZm9yZVVuaGliZXJuYXRpbmdPblJlY29ubmVjdD0hMSx0aGlzLl9maXJlQmVmb3JlVW5oaWJlcm5hdGluZ09uUmVjb25uZWN0VGltZXJJZD0wLHRoaXMuX3JlY29ubmVjdD0oKT0+e3RoaXMuX3RyeVJlY29ubmVjdCgpfSx0aGlzLl9jaGFydFdpZGdldHNDb2xsZWN0aW9uPWUsdGhpcy5fbGF5b3V0VmlzaWJpbGl0eT1lLnJlc2l6ZXJCcmlkZ2UoKS52aXNpYmxlLnNwYXduKCksdGhpcy5fbGF5b3V0VmlzaWJpbGl0eS5zdWJzY3JpYmUodGhpcy5fb25DaGFuZ2VWaXNpYmlsaXR5Qm91bmQse2NhbGxXaXRoTGFzdDohMH0pLEllLnRlbGVtZXRyeS5zZW5kTGluZVRvb2xzU3RvcmFnZVJlcG9ydCgibGluZV90b29sc19zdWJzY3JpcHRpb25faW5pdGlhbF9jb25uZWN0IiksdGhpcy5fY29ubmVjdGlvblN0YXR1cy5zdWJzY3JpYmUoKGU9PntlPT09VWUuQ29ubmVjdGlvblN0YXR1cy5DbG9zZWQmJkllLnRlbGVtZXRyeS5zZW5kTGluZVRvb2xzU3RvcmFnZVJlcG9ydCgibGluZV90b29sc19zdWJzY3JpcHRpb25fZGlzY29ubmVjdGVkIil9KSksdGhpcy5fc3Vic2NyaWJlRm9yU2hhcmluZ0xheW91dD10LHRoaXMuY29ubmVjdCgpLHRoaXMuX2hpYmVybmF0ZURlbGF5LnN1YnNjcmliZSgoZT0+e251bGwhPT10aGlzLl9oaWJlcm5hdGVUaW1lcklkJiZ0aGlzLl9zY2hlZHVsZUhpYmVybmF0aW9uKGUpfSkpLHRoaXMuX2NoYXJ0V2lkZ2V0c0NvbGxlY3Rpb24ubWV0YUluZm8udWlkLnN1YnNjcmliZSh0aGlzLl9yZWNvbm5lY3QpfWRlc3Ryb3koKXt0aGlzLl9sYXlvdXRWaXNpYmlsaXR5LmRlc3Ryb3koKSx0aGlzLl9oaWJlcm5hdGVEZWxheS5kZXN0cm95KCksdGhpcy5fY2hhcnRXaWRnZXRzQ29sbGVjdGlvbi5tZXRhSW5mby51aWQudW5zdWJzY3JpYmUodGhpcy5fcmVjb25uZWN0KSx0aGlzLmRpc2Nvbm5lY3QoKSx0aGlzLl9kZXN0cm95ZWQ9ITB9c3Vic2NyaWJlT25DaGFuZ2VzKGUpe3RoaXMuX29uQ2hhbmdlc0NhbGxiYWNrcy5hZGQoZSl9dW5zdWJzY3JpYmVPbkNoYW5nZXMoZSl7dGhpcy5fb25DaGFuZ2VzQ2FsbGJhY2tzLmRlbGV0ZShlKX1iZWZvcmVVbmhpYmVybmF0aW5nKCl7cmV0dXJuIHRoaXMuX2JlZm9yZVVuaGliZXJuYXRpbmd9YXN5bmMgX3ByZXBhcmVQYXJhbXNGb3JDb25uZWN0aW9uKGUpe2NvbnN0IHQ9dGhpcy5fY2hhcnRXaWRnZXRzQ29sbGVjdGlvbi5tZXRhSW5mby51aWQudmFsdWUoKTtpZih0aGlzLl9kZXN0cm95ZWQpcmV0dXJuIFByb21pc2UucmVqZWN0KCJTdWJzY3JpcHRpb24gaXMgYmVpbmcgZGVzdHJveWVkIik7Y29uc3QgaT1hd2FpdCgwLEdlLmdldFN0b3JhZ2VUYXJnZXQpKHQsIiIsMCkscz10dChldD9gL2F1dGgvY2hhcnRzLXN0b3JhZ2UvbGF5b3V0LyR7dH0vc3Vic2NyaWJlYDpgL2NoYXJ0cy1zdG9yYWdlL2xheW91dC8ke3R9L3N1YnNjcmliZWApO251bGwhPT1zPyhzLnNlYXJjaFBhcmFtcy5kZWxldGUoImp3dCIpLGV0fHxzLnNlYXJjaFBhcmFtcy5hcHBlbmQoImp3dCIsaS50b2tlbiksZXQ/cy5zZWFyY2hQYXJhbXMuYXBwZW5kKCJpZCIsInByaXZhdGUiKTp0aGlzLl9zdWJzY3JpYmVGb3JTaGFyaW5nTGF5b3V0JiZ3aW5kb3cudXNlci5pZCYmd2luZG93LnVzZXIuaXNfcHJvJiZzLnNlYXJjaFBhcmFtcy5hcHBlbmQoImlkIiwiIit3aW5kb3cudXNlci5pZCksdGhpcy5fdXJsPXMudG9TdHJpbmcoKSk6dGhpcy5fdXJsPSIifV90cnlSZWNvbm5lY3RJbXBsKCl7c3VwZXIuX3RyeVJlY29ubmVjdEltcGwoKSxJZS50ZWxlbWV0cnkuc2VuZExpbmVUb29sc1N0b3JhZ2VSZXBvcnQoImxpbmVfdG9vbHNfc3Vic2NyaXB0aW9uX3JlY29ubmVjdGluZyIpfV9vbk9wZW5DYWxsYmFjaygpe3N1cGVyLl9vbk9wZW5DYWxsYmFjaygpLHRoaXMuX2ZpcmVCZWZvcmVVbmhpYmVybmF0aW5nT25SZWNvbm5lY3QmJihudC5sb2dOb3JtYWwoIlVuaGliZXJuYXRpbmcgb24gcmVjb25uZWN0IiksdGhpcy5fYmVmb3JlVW5oaWJlcm5hdGluZy5maXJlKCksdGhpcy5fZmlyZUJlZm9yZVVuaGliZXJuYXRpbmdPblJlY29ubmVjdD0hMSxjbGVhclRpbWVvdXQodGhpcy5fZmlyZUJlZm9yZVVuaGliZXJuYXRpbmdPblJlY29ubmVjdFRpbWVySWQpLHRoaXMuX2ZpcmVCZWZvcmVVbmhpYmVybmF0aW5nT25SZWNvbm5lY3RUaW1lcklkPTApfV9vbk1lc3NhZ2UoZSl7aWYoInN0cmluZyIhPXR5cGVvZiBlKXRocm93IG5ldyBFcnJvcigiV3JvbmcgbWVzc2FnZSB0eXBlLCBleHBlY3RlZCBzdHJpbmciKTtjb25zdCB0PUpTT04ucGFyc2UoZSk7T2JqZWN0LmVudHJpZXModCkuZm9yRWFjaCgoZT0+e2NvbnN0IHQ9KDAsamUucGFyc2VMaW5lVG9vbHNBbmRHcm91cHNEVE8pKGVbMV0sIiIpLGk9ZVswXTtsZXQgcz0wO2k9PT1HZS5zaGFyZWRDaGFydElkP3M9MTppPT09R2UuZ2xvYmFsbHlTaGFyZWRDaGFydElkJiYocz0yKSx0aGlzLl9jaGFydFdpZGdldHNDb2xsZWN0aW9uLmFwcGx5TGluZVRvb2xVcGRhdGVOb3RpZmljYXRpb24oaSx0LHMpfSkpLHRoaXMuX29uQ2hhbmdlc0NhbGxiYWNrcy5mb3JFYWNoKCh0PT50KGUpKSl9X29uQ2hhbmdlVmlzaWJpbGl0eSgpe2NvbnN0IGU9dGhpcy5fbGF5b3V0VmlzaWJpbGl0eS52YWx1ZSgpO250LmxvZ05vcm1hbChgVmlzaWJpbGl0eSBjaGFuZ2VkIHRvICR7ZX0sIGNvbm5lY3Rpb24gc3RhdHVzOiAke3RoaXMuY29ubmVjdGlvblN0YXR1cygpLnZhbHVlKCl9YCksCmU/dGhpcy5jb25uZWN0aW9uU3RhdHVzKCkudmFsdWUoKSE9PVVlLkNvbm5lY3Rpb25TdGF0dXMuT3Blbj8odGhpcy5jb25uZWN0aW9uU3RhdHVzKCkudmFsdWUoKT09PVVlLkNvbm5lY3Rpb25TdGF0dXMuQ2xvc2VkJiZ0aGlzLmNvbm5lY3QoKSx0aGlzLl9iZWZvcmVVbmhpYmVybmF0aW5nLmZpcmUoKSx0aGlzLl9oYXZlRXZlckJlZW5IaWJlcm5hdGVkJiYobnQubG9nTm9ybWFsKCJDb25uZWN0IGR1ZSB0byBiZWNvbWluZyB2aXNpYmxlIiksSWUudGVsZW1ldHJ5LnNlbmRMaW5lVG9vbHNTdG9yYWdlUmVwb3J0KCJsaW5lX3Rvb2xzX3VuaGliZW5hdGVfc3Vic2NyaXB0aW9uIikpKTooKDAsWC5pc09uTW9iaWxlQXBwUGFnZSkoImFueSIpfHxKLkNoZWNrTW9iaWxlLmlPUygpfHxKLkNoZWNrTW9iaWxlLkFuZHJvaWQoKSkmJihudC5sb2dOb3JtYWwoIlNjaGVkdWxlIHVuaGliZXJuYXRpbmcgb24gcmVjb25uZWN0IiksdGhpcy5fZmlyZUJlZm9yZVVuaGliZXJuYXRpbmdPblJlY29ubmVjdD0hMCxjbGVhclRpbWVvdXQodGhpcy5fZmlyZUJlZm9yZVVuaGliZXJuYXRpbmdPblJlY29ubmVjdFRpbWVySWQpLHRoaXMuX2ZpcmVCZWZvcmVVbmhpYmVybmF0aW5nT25SZWNvbm5lY3RUaW1lcklkPXNldFRpbWVvdXQoKCgpPT57bnQubG9nTm9ybWFsKCJDYW5jZWwgU2NoZWR1bGVkIHVuaGliZXJuYXRpbmcgb24gcmVjb25uZWN0IiksdGhpcy5fZmlyZUJlZm9yZVVuaGliZXJuYXRpbmdPblJlY29ubmVjdD0hMX0pLDVlMykpOmV8fHRoaXMuX3NjaGVkdWxlSGliZXJuYXRpb24oUWUudmFsdWUoKSl9X3NjaGVkdWxlSGliZXJuYXRpb24oZSl7bnVsbCE9PXRoaXMuX2hpYmVybmF0ZVRpbWVySWQmJlllLmNsZWFyVGltZW91dCh0aGlzLl9oaWJlcm5hdGVUaW1lcklkKSx0aGlzLl9oaWJlcm5hdGVUaW1lcklkPVllLnNldFRpbWVvdXQoKCgpPT50aGlzLl9kaXNjb25uZWN0SWZJbnZpc2libGUoKSksZSl9X2Rpc2Nvbm5lY3RJZkludmlzaWJsZSgpe3RoaXMuX2hpYmVybmF0ZVRpbWVySWQ9bnVsbCx0aGlzLl9sYXlvdXRWaXNpYmlsaXR5LnZhbHVlKCl8fChudC5sb2dOb3JtYWwoIkRpc2Nvbm5lY3QgZHVlIHRvIGJlY29taW5nIGludmlzaWJsZSIpLHRoaXMuZGlzY29ubmVjdCgpLEllLnRlbGVtZXRyeS5zZW5kTGluZVRvb2xzU3RvcmFnZVJlcG9ydCgibGluZV90b29sc19oaWJlbmF0ZV9zdWJzY3JpcHRpb24iKSx0aGlzLl9oYXZlRXZlckJlZW5IaWJlcm5hdGVkPSEwKX19dmFyIG90PWkoNzkxNDI3KSxhdD1pKDYwNTI1NyksbHQ9aSgxNTAxNTApLGN0PWkoNjQxNTkzKSxodD1pKDU1NzA2NSk7Y29uc3QgZHQ9KDAsYy5nZXRMb2dnZXIpKCJDbGlwYm9hcmQiKTt2YXIgdXQ7IWZ1bmN0aW9uKGUpe2UuTWFnaWNBdHRyTmFtZT0iZGF0YS10cmFkaW5ndmlldy1jbGlwIn0odXR8fCh1dD17fSkpO2NsYXNzIHB0e2NvbnN0cnVjdG9yKGUpe3RoaXMuX2U9ZX13cml0ZShlKXtyZXR1cm4oMCxodC53cml0ZUltcGwpKHRoaXMuX3RvUmF3KGUpLHRoaXMuX2UpfV90b1JhdyhlKXtjb25zdCB0PXtmaWxlczpbXX07dC50ZXh0PWUudGV4dCx2b2lkIDAhPT1lLmFwcD90Lmh0bWw9dGhpcy5fc2VyaWFsaXplQXBwRGF0YShlLmFwcCxlLnRleHQpOmUuaHRtbCYmKHQuaHRtbD1lLmh0bWwpO2Zvcihjb25zdCBpIG9mIGUuZmlsZXN8fFtdKXQuZmlsZXMucHVzaChpKTtyZXR1cm4gdH1fc2VyaWFsaXplQXBwRGF0YShlLHQpe2NvbnN0IGk9KDAsY3QuaHRtbEVzY2FwZSkoZSkscz10PygwLGN0Lmh0bWxFc2NhcGUpKHQuc2xpY2UoMCwyNTYpKToiJiMxMjgyMDA7IjtyZXR1cm5gPG1ldGEgY2hhcnNldD0idXRmLTgiPjxzcGFuICR7dXQuTWFnaWNBdHRyTmFtZX09IiR7aX0iPiR7c308L3NwYW4+YH19Y2xhc3MgX3R7Y29uc3RydWN0b3IoZSl7dGhpcy5fZT1lfWFzeW5jIHJlYWQoKXt0aGlzLl9lJiYwPT09dGhpcy5fZS5ldmVudFBoYXNlJiYoZHQubG9nV2FybigiQ2Fubm90IHVzZSBhbiBhbHJlYWR5IGRpc3BhdGNoZWQgQ2xpcGJvYXJkRXZlbnQgZm9yIHJlYWRpbmciKSx0aGlzLl9lPW51bGwpO2NvbnN0IGU9dGhpcy5fZT90aGlzLl9yZWFkVXNpbmdFdmVudCh0aGlzLl9lKTphd2FpdCB0aGlzLl9yZWFkVXNpbmdBcGkoKTtyZXR1cm4gdGhpcy5fZnJvbVJhdyhlKX1fcmVhZFVzaW5nRXZlbnQoZSl7Y29uc3QgdD0oMCxsLmVuc3VyZSkoZS5jbGlwYm9hcmREYXRhKTtlLnByZXZlbnREZWZhdWx0KCk7Y29uc3QgaT17ZmlsZXM6W119O2ZvcihsZXQgZT0wO2U8dC5maWxlcy5sZW5ndGg7ZSsrKWkuZmlsZXMucHVzaCh0LmZpbGVzW2VdKTtmb3IobGV0IGU9MDtlPHQuaXRlbXMubGVuZ3RoO2UrKyl7Y29uc3Qgcz10Lml0ZW1zW2VdOyJzdHJpbmciPT09cy5raW5kJiYoInRleHQvcGxhaW4iPT09cy50eXBlP2kudGV4dD10LmdldERhdGEocy50eXBlKToidGV4dC9odG1sIj09PXMudHlwZT9pLmh0bWw9dC5nZXREYXRhKHMudHlwZSk6aS5maWxlcy5wdXNoKG5ldyBCbG9iKFt0LmdldERhdGEocy50eXBlKV0se3R5cGU6cy50eXBlfSkpKX1yZXR1cm4gaX1hc3luYyBfcmVhZFVzaW5nQXBpKCl7Y29uc3QgZT0oMCxodC5nZXRDbGlwYm9hcmQpKCk7aWYoIWV8fCFlLnJlYWQpdGhyb3cgbmV3IERPTUV4Y2VwdGlvbigiQ2xpcGJvYXJkQXBpIGlzIG5vdCBzdXBwb3J0ZWQiLCJOb3RTdXBwb3J0ZWRFcnJvciIpO2xldCB0LGk7Y29uc3Qgcz1bXSxuPWF3YWl0IGUucmVhZCgpO2Zvcihjb25zdCBlIG9mIG4pZm9yKGNvbnN0IG4gb2YgZS50eXBlcykidGV4dC9odG1sIj09PW4/dD1lLmdldFR5cGUobikudGhlbih0aGlzLl9yZWFkQmxvYkFzVGV4dCk6InRleHQvcGxhaW4iPT09bj9pPWUuZ2V0VHlwZShuKS50aGVuKHRoaXMuX3JlYWRCbG9iQXNUZXh0KTpzLnB1c2goZS5nZXRUeXBlKG4pKTtyZXR1cm57dGV4dDphd2FpdCBpLGh0bWw6YXdhaXQgdCxmaWxlczphd2FpdCBQcm9taXNlLmFsbChzKX19X2Zyb21SYXcoZSl7Y29uc3QgdD17fTtpZih2b2lkIDAhPT1lLnRleHQmJih0LnRleHQ9ZS50ZXh0KSx2b2lkIDAhPT1lLmh0bWwpe2NvbnN0IGk9dGhpcy5fcGFyc2VBcHBEYXRhKGUuaHRtbCk7aT90LmFwcD1pOnQuaHRtbD1lLmh0bWx9CnJldHVybiBlLmZpbGVzLmxlbmd0aD4wJiYodC5maWxlcz1lLmZpbGVzKSx0fV9wYXJzZUFwcERhdGEoZSl7aWYoLTE9PT1lLnNsaWNlKDAsMTAyNCkuaW5kZXhPZih1dC5NYWdpY0F0dHJOYW1lKSlyZXR1cm47Y29uc3QgdD0obmV3IERPTVBhcnNlcikucGFyc2VGcm9tU3RyaW5nKGUsInRleHQvaHRtbCIpLnF1ZXJ5U2VsZWN0b3IoYFske3V0Lk1hZ2ljQXR0ck5hbWV9XWApO3JldHVybiB0P3QuZ2V0QXR0cmlidXRlKHV0Lk1hZ2ljQXR0ck5hbWUpfHwiIjp2b2lkIDB9X3JlYWRCbG9iQXNUZXh0KGUpe3JldHVybiBuZXcgUHJvbWlzZSgoKHQsaSk9Pntjb25zdCBzPW5ldyBGaWxlUmVhZGVyO3Mub25sb2FkZW5kPSgpPT57dChzLnJlc3VsdCl9LHMub25lcnJvcj0oKT0+e2kocy5lcnJvcil9LHMucmVhZEFzVGV4dChlKX0pKX19Y2xhc3MgbXR7Y29uc3RydWN0b3IoZSl7dGhpcy5fY2FsbGJhY2tzPU9iamVjdC5hc3NpZ24oe30sZSksdGhpcy5fYm91bmRPbkNvcHk9dGhpcy5fb25Db3B5RXYuYmluZCh0aGlzKSx0aGlzLl9ib3VuZE9uQ3V0PXRoaXMuX29uQ3V0RXYuYmluZCh0aGlzKSx0aGlzLl9ib3VuZE9uUGFzdGU9dGhpcy5fb25QYXN0ZUV2LmJpbmQodGhpcyl9bGlzdGVuKCl7ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY29weSIsdGhpcy5fYm91bmRPbkNvcHkpLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImN1dCIsdGhpcy5fYm91bmRPbkN1dCksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigicGFzdGUiLHRoaXMuX2JvdW5kT25QYXN0ZSl9YXN5bmMgcGVlaygpe2lmKCJncmFudGVkIiE9PShhd2FpdCBuYXZpZ2F0b3IucGVybWlzc2lvbnMucXVlcnkoe25hbWU6ImNsaXBib2FyZC1yZWFkIn0pKS5zdGF0ZSl0aHJvdyBuZXcgRXJyb3IoImNsaXBib2FyZC1yZWFkIGlzIG5vdCBncmFudGVkIik7cmV0dXJuIG5ldyBfdChudWxsKS5yZWFkKCl9dWlSZXF1ZXN0Q29weShlKXt0aGlzLl9jYWxsYmFja3MuY29weVJlcXVlc3RlZCYmdGhpcy5fY2FsbGJhY2tzLmNvcHlSZXF1ZXN0ZWQobmV3IHB0KG51bGwpLGUpfXVpUmVxdWVzdEN1dChlKXt0aGlzLl9jYWxsYmFja3MuY3V0UmVxdWVzdGVkJiZ0aGlzLl9jYWxsYmFja3MuY3V0UmVxdWVzdGVkKG5ldyBwdChudWxsKSxlKX11aVJlcXVlc3RQYXN0ZShlKXt0aGlzLl9jYWxsYmFja3MucGFzdGVSZXF1ZXN0ZWQmJnRoaXMuX2NhbGxiYWNrcy5wYXN0ZVJlcXVlc3RlZChuZXcgX3QobnVsbCksZSl9ZGVzdHJveSgpe2RvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoImNvcHkiLHRoaXMuX2JvdW5kT25Db3B5KSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJjdXQiLHRoaXMuX2JvdW5kT25DdXQpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInBhc3RlIix0aGlzLl9ib3VuZE9uUGFzdGUpfV9vbkNvcHlFdihlKXtlLmRlZmF1bHRQcmV2ZW50ZWR8fHRoaXMuX2NhbGxiYWNrcy5jb3B5UmVxdWVzdGVkJiZ0aGlzLl9jYWxsYmFja3MuY29weVJlcXVlc3RlZChuZXcgcHQoZSkpfV9vbkN1dEV2KGUpe2UuZGVmYXVsdFByZXZlbnRlZHx8dGhpcy5fY2FsbGJhY2tzLmN1dFJlcXVlc3RlZCYmdGhpcy5fY2FsbGJhY2tzLmN1dFJlcXVlc3RlZChuZXcgcHQoZSkpfV9vblBhc3RlRXYoZSl7ZS5kZWZhdWx0UHJldmVudGVkfHx0aGlzLl9jYWxsYmFja3MucGFzdGVSZXF1ZXN0ZWQmJnRoaXMuX2NhbGxiYWNrcy5wYXN0ZVJlcXVlc3RlZChuZXcgX3QoZSkpfX12YXIgZ3Q9aSg3MjEzNjkpO2Z1bmN0aW9uIGZ0KGUpe2NvbnN0IHQ9ZS50YXJnZXQ7cmV0dXJuIG51bGwhPT10JiYxPT09dC5ub2RlVHlwZSYmKDAsZ3QuaXNUZXh0RWRpdGluZ0ZpZWxkKSh0KX1mdW5jdGlvbiBTdChlKXtjb25zdCB0PWUudGFyZ2V0O2lmKG51bGw9PT10KXJldHVybiExO2NvbnN0IGk9KHQub3duZXJEb2N1bWVudHx8dCkuZ2V0U2VsZWN0aW9uKCk7cmV0dXJuIG51bGwhPT1pJiYhaS5pc0NvbGxhcHNlZH1jbGFzcyB2dCBleHRlbmRzIG10e19vbkNvcHlFdihlKXtpZighZnQoZSkmJiFTdChlKSlyZXR1cm4gc3VwZXIuX29uQ29weUV2KGUpfV9vbkN1dEV2KGUpe2lmKCFmdChlKSYmIVN0KGUpKXJldHVybiBzdXBlci5fb25DdXRFdihlKX1fb25QYXN0ZUV2KGUpe2lmKCFmdChlKSlyZXR1cm4gc3VwZXIuX29uUGFzdGVFdihlKX19dmFyIHl0PWkoOTE4Nzc5KSxidD1pKDgzOTQyNiksd3Q9aSgxNDQ1NTUpLEN0PWkoNjM5Nzg4KSxQdD1pKDczNjUzMSksVHQ9aSg0NTk5OTQpLHh0PWkoNzI4NTQpLE10PWkoMzg2OTMxKSxJdD1pKDQyNTY1OSksTHQ9aSgyOTExMjkpLEF0PWkoNzY4NzYwKSxrdD1pKDEwMjUzKSxEdD1pKDY4Mjc3OSksRXQ9aSg5OTQ1NDApLFJ0PWkoNzQ0NTM0KTtsZXQgVnQ7Y2xhc3MgQnQgZXh0ZW5kcyBlZS5EaWFsb2dSZW5kZXJlcntjb25zdHJ1Y3Rvcigpe3N1cGVyKCksdGhpcy5fZGlhbG9nPW51bGwsdGhpcy5fc3Vic2NyaWJlPWU9Pnt0aGlzLl9zZXRWaXNpYmlsaXR5KGUpfX1zaG93KCl7dGhpcy5fbG9hZCgpLnRoZW4oKGU9PmUuc2hvdygpKSl9aGlkZSgpe3RoaXMuX2RpYWxvZz8uaGlkZSgpfXN0YXRpYyBnZXRJbnN0YW5jZSgpe3JldHVybiBWdHx8KFZ0PW5ldyBCdCksVnR9X2xvYWQoKXsKcmV0dXJuIFByb21pc2UuYWxsKFtpLmUoNjIyNyksaS5lKDg0MzA2KSxpLmUoMjkyOTYpLGkuZSg1MjM5NiksaS5lKDYwMDYyKSxpLmUoNDY5MDcpLGkuZSgxMzQ5MiksaS5lKDM3NzQ2KSxpLmUoODEwNzIpLGkuZSgyMzYyNCksaS5lKDM2MjIyKSxpLmUoMTk1OTUpLGkuZSgxOTc4NyksaS5lKDY3Nzk5KSxpLmUoMTE0NjEpLGkuZSg5NjU4NyksaS5lKDI3NTE3KSxpLmUoODY0MjMpLGkuZSgzNzUxMyksaS5lKDg1NzkpLGkuZSg5NTA0KSxpLmUoMTcwODcpLGkuZSg3MjY2NiksaS5lKDk4MDg0KSxpLmUoOTM0MjEpLGkuZSgxMDM4NSksaS5lKDUyMDY1KSxpLmUoNDc2MzIpLGkuZSg2NjA1KSxpLmUoNzE0MTQpLGkuZSg4OTIwNCksaS5lKDg5NTU4KSxpLmUoOTc0NCksaS5lKDY5ODYxKSxpLmUoMTk1MTMpLGkuZSg3MjUxMiksaS5lKDU1MDExKSxpLmUoNzA2NTYpLGkuZSg3MTkwMSksaS5lKDgxMjQ3KSxpLmUoMzkxNiksaS5lKDkwMzc4KSxpLmUoNzkyNyksaS5lKDY2MjI5KSxpLmUoNzkzOTgpLGkuZSgzMjM4NyksaS5lKDgwOTE1KSxpLmUoMTg1MTIpLGkuZSg0ODYyMCksaS5lKDUwMDQ5KSxpLmUoMjM3NDMpLGkuZSg0MjI4OCksaS5lKDc3NTc4KSxpLmUoOTkzMDkpLGkuZSg3NjAzMyksaS5lKDI0ODc5KSxpLmUoNTc2MzgpLGkuZSg4NDk1MildKS50aGVuKGkuYmluZChpLDkyMDY0KSkudGhlbigoZT0+KHRoaXMuX2RpYWxvZz8uaGlkZSgpLHRoaXMuX2RpYWxvZz8udmlzaWJsZSgpLnVuc3Vic2NyaWJlKHRoaXMuX3N1YnNjcmliZSksdGhpcy5fZGlhbG9nPW5ldyBlLk9iamVjdFRyZWVEaWFsb2dSZW5kZXJlcix0aGlzLl9kaWFsb2cudmlzaWJsZSgpLnN1YnNjcmliZSh0aGlzLl9zdWJzY3JpYmUpLHRoaXMuX2RpYWxvZykpKX19dmFyIE50PWkoNjI4MDYpLE90PWkoNzY4MjkyKTt2YXIgV3QsRnQ9aSg4OTkyMzUpO2FzeW5jIGZ1bmN0aW9uIEh0KGUsdCxzLG4scixvPSJkZWZhdWx0Iil7bGV0IGwsYz1bXTtjb25zdCBoPWUubW9kZWwoKS5tb2RlbCgpLGQ9KDAsYS5jbG9uZSkodCksdT1uZXcgT3QuUHJvcGVydHkoe2lucHV0czpkfSksXz1mdW5jdGlvbihlLHQpe3JldHVybiJzeW1ib2wiPT09dD9lLmlucHV0cy5maWx0ZXIoKHQ9PnQuaWQ9PT1lLnN5bWJvbElucHV0SWQoKSkpOmUuaW5wdXRzLmZpbHRlcigoZT0+ZS5jb25maXJtKSl9KHMsbyksbT0oKT0+e2wmJmgucmVtb3ZlQ3VzdG9tU291cmNlKGwpfSxnPSgpPT57bSgpLHIoKX0sZj1lPT57bih7aW5wdXRzOmUscGFyZW50U291cmNlczpjfSksbSgpfSxTPV8uZmlsdGVyKE50LmlzVGltZU9yUHJpY2VOb3RIaWRkZW5JbnB1dCk7aWYoUy5sZW5ndGg+MCl0cnl7Y29uc3QgdD1hd2FpdCBQcm9taXNlLmFsbChbaS5lKDU1MDc5KSxpLmUoODQzMDYpLGkuZSgyOTI5NiksaS5lKDUyMzk2KSxpLmUoNjAwNjIpLGkuZSg0NjkwNyksaS5lKDIwMzU0KSxpLmUoMTM0OTIpLGkuZSgzNzc0NiksaS5lKDEyMzg1KSxpLmUoODEwNzIpLGkuZSg5NDk0OCksaS5lKDIzNjI0KSxpLmUoMzYyMjIpLGkuZSgyOTUzNiksaS5lKDU2MjUyKSxpLmUoMTk1OTUpLGkuZSgxOTc4NyksaS5lKDY3Nzk5KSxpLmUoMTE0NjEpLGkuZSgyNDU4MSksaS5lKDk2NTg3KSxpLmUoMTEyMTgpLGkuZSg4NjQyMyksaS5lKDM3NTEzKSxpLmUoODU3OSksaS5lKDQwODM1KSxpLmUoOTM0MjEpLGkuZSg3ODY1MiksaS5lKDEwMzg1KSxpLmUoNTIwNjUpLGkuZSg2NjA1KSxpLmUoNzA4MTUpLGkuZSg3NDM4MSksaS5lKDE1NTI2KSxpLmUoOTM0MTYpLGkuZSg2MTgyMSksaS5lKDU3MzAwKSxpLmUoNTE2ODIpLGkuZSg5NzY2MCksaS5lKDM1MTk4KSxpLmUoMzMxMjApLGkuZSgzOTc4NiksaS5lKDUwNjIyKSxpLmUoNjA4MiksaS5lKDI3MzM3KSxpLmUoMjc3MzYpLGkuZSgzODQ3OSksaS5lKDkwMzMwKSxpLmUoOTYxODEpLGkuZSgyMDU2NCksaS5lKDQ1MzMxKSxpLmUoNDYyNDUpLGkuZSg2OTgwMyksaS5lKDMyMzg3KSxpLmUoMjM3NDMpLGkuZSg3MjExKSxpLmUoNzM1MzUpLGkuZSgyNjUwMSksaS5lKDEwOTk5KSxpLmUoMzAzOSldKS50aGVuKGkuYmluZChpLDU0MTY4NikpLG49YXdhaXQgdC5zZWxlY3RJbnB1dFZhbHVlc09uQ2hhcnQoZSxTLHUscy5zaG9ydERlc2NyaXB0aW9uLHMuaW5wdXRzKTtpZihsPW4uY3VzdG9tU291cmNlSWQsbi5kZXN0UGFuZSYmb3QuU3R1ZHlNZXRhSW5mby5nZXRTb3VyY2VJbnB1dElkcyhzKS5sZW5ndGg+MCl7Y29uc3QgZT1uLmRlc3RQYW5lLm1haW5EYXRhU291cmNlKCk7Yz1lPT09aC5tYWluU2VyaWVzKCk/W106W2VdfWVsc2UgYz1bXX1jYXRjaChlKXtyZXR1cm4gdm9pZCBnKCl9Uy5sZW5ndGghPT1fLmxlbmd0aD9Qcm9taXNlLmFsbChbaS5lKDU1MDc5KSxpLmUoODQzMDYpLGkuZSgyOTI5NiksaS5lKDUyMzk2KSxpLmUoNjAwNjIpLGkuZSg0NjkwNyksaS5lKDIwMzU0KSxpLmUoMTM0OTIpLGkuZSgzNzc0NiksaS5lKDEyMzg1KSxpLmUoODEwNzIpLGkuZSg5NDk0OCksaS5lKDIzNjI0KSxpLmUoMzYyMjIpLGkuZSgyOTUzNiksaS5lKDU2MjUyKSxpLmUoMTk1OTUpLGkuZSgxOTc4NyksaS5lKDY3Nzk5KSxpLmUoMTE0NjEpLGkuZSgyNDU4MSksaS5lKDk2NTg3KSxpLmUoMTEyMTgpLGkuZSg4NjQyMyksaS5lKDM3NTEzKSxpLmUoODU3OSksaS5lKDQwODM1KSxpLmUoOTM0MjEpLGkuZSg3ODY1MiksaS5lKDEwMzg1KSxpLmUoNTIwNjUpLGkuZSg2NjA1KSxpLmUoNzA4MTUpLGkuZSg3NDM4MSksaS5lKDE1NTI2KSxpLmUoOTM0MTYpLGkuZSg2MTgyMSksaS5lKDU3MzAwKSxpLmUoNTE2ODIpLGkuZSg5NzY2MCksaS5lKDM1MTk4KSxpLmUoMzMxMjApLGkuZSgzOTc4NiksaS5lKDUwNjIyKSxpLmUoNjA4MiksaS5lKDI3MzM3KSxpLmUoMjc3MzYpLGkuZSgzODQ3OSksaS5lKDkwMzMwKSxpLmUoOTYxODEpLGkuZSgyMDU2NCksaS5lKDQ1MzMxKSxpLmUoNDYyNDUpLGkuZSg2OTgwMyksaS5lKDMyMzg3KSxpLmUoMjM3NDMpLGkuZSg3MjExKSxpLmUoNzM1MzUpLGkuZSgyNjUwMSksaS5lKDEwOTk5KSxpLmUoMzAzOSldKS50aGVuKGkuYmluZChpLDQyMTIwNSkpLnRoZW4oKHQ9PnsKY29uc3Qgbj1uZXcgdC5Db25maXJtSW5wdXRzRGlhbG9nUmVuZGVyZXIoZnVuY3Rpb24oZSl7aWYoInN5bWJvbCI9PT1lKXJldHVybiBwLnQobnVsbCx2b2lkIDAsaSgzNDQzMjApKTtyZXR1cm4gcC50KG51bGwsdm9pZCAwLGkoNzQ3MjU5KSl9KG8pLF8sdSxvLHMsZixnLCgwLEZ0LmdldFRpbWV6b25lTmFtZSkoZS5tb2RlbCgpKSk7cmV0dXJuIG4uc2hvdygpLG59KSk6Zih1LnN0YXRlKCkuaW5wdXRzfHx7fSl9IWZ1bmN0aW9uKGUpe2UuRGVmYXVsdD0iZGVmYXVsdCIsZS5TeW1ib2w9InN5bWJvbCJ9KFd0fHwoV3Q9e30pKTtsZXQgenQ9bnVsbDt2YXIgVXQ9aSg2NTQ2MzYpLEd0PWkoMTg5ODYzKSxqdD1pKDIyMzU1Nik7ZnVuY3Rpb24gcXQoZSx0KXtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUsdCl9ZnVuY3Rpb24gJHQoZSl7cmV0dXJuIGUucmVkdWNlKCgoZSx0KT0+e2Zvcihjb25zdCBpIGluIHQpaWYocXQodCxpKSl7Y29uc3Qgcz10W2ldLG49ZVtpXTtuP24ucHVzaChzKTplW2ldPVtzXX1yZXR1cm4gZX0pLHt9KX12YXIgWXQsS3Q9aSgxNTEyMSksWHQ9aSg0NjQ4MzUpOyFmdW5jdGlvbihlKXtlW2UuQWNjZWxlcmF0aW9uUGVyTVNlY1BpeGVscz0uMDAzXT0iQWNjZWxlcmF0aW9uUGVyTVNlY1BpeGVscyIsZVtlLk1heFNwZWVkUGVyTVNlY1BpeGVscz0xLjFdPSJNYXhTcGVlZFBlck1TZWNQaXhlbHMifShZdHx8KFl0PXt9KSk7Y2xhc3MgWnR7Y29uc3RydWN0b3IoZSl7dGhpcy5fY2hhcnRNb2RlbD1udWxsLHRoaXMuX2FuaW1hdGlvbj1udWxsLHRoaXMuX2NoYXJ0PWUsdGhpcy5fY2hhcnQud2l0aE1vZGVsKHRoaXMsKCgpPT57dGhpcy5fY2hhcnRNb2RlbD10aGlzLl9jaGFydC5tb2RlbCgpfSkpfWRlc3Ryb3koKXt0aGlzLl9hbmltYXRpb24/LnN0b3AoKX1tb3ZlKGUpe2lmKG51bGwhPT10aGlzLl9jaGFydE1vZGVsKXtpZih0aGlzLl9jaGFydE1vZGVsLnRpbWVTY2FsZSgpLmlzRW1wdHkoKSlyZXR1cm47Y29uc3QgdD0uMDAzLGk9MS4xLHM9TWF0aC5yb3VuZChpL3QpO3RoaXMuX21vdmVJbXBsKCgobixyLG8pPT57Y29uc3QgYT1NYXRoLm1pbihyLHMpLGw9ZSp0Kk1hdGgucG93KGEsMikvMjtpZihyPD1zKXJldHVybiBuK2w7Y29uc3QgYz1OdW1iZXIuaXNGaW5pdGUobyk/TWF0aC5tYXgoMCxzLW8pOjA7cmV0dXJuIG4rbCtlKihyLWEtYykqaStlKihpKmMtdCpNYXRoLnBvdyhjLDIpLzIpfSksKGU9Pk1hdGgubWF4KDAscy1lKStzKSl9fW1vdmVCeUJhcihlKXtpZihudWxsIT09dGhpcy5fY2hhcnRNb2RlbCl7Y29uc3QgdD10aGlzLl9jaGFydE1vZGVsLnRpbWVTY2FsZSgpLGk9dC52aXNpYmxlQmFyc1N0cmljdFJhbmdlKCk7aWYodC5pc0VtcHR5KCl8fG51bGw9PT1pKXJldHVybjtjb25zdCBzPTMwMCxuPWkubGFzdEJhcigpO3RoaXMuX21vdmVJbXBsKCgoaSxyKT0+e2NvbnN0IG89TWF0aC5mbG9vcihNYXRoLm1heCgwLHItcykvMTAwKSsxLGE9bitlKm8sbD10LmluZGV4VG9Db29yZGluYXRlKG4pO3JldHVybiBpKyh0LmluZGV4VG9Db29yZGluYXRlKGEpLWwpfSksKCgpPT4wKSwhMCl9fXN0b3BNb3ZlKCl7dGhpcy5fYW5pbWF0aW9uPy5zdG9wKCksdGhpcy5fYW5pbWF0aW9uPW51bGx9c2Nyb2xsVG9SZWFsdGltZShlLHQpe2lmKG51bGw9PT10aGlzLl9jaGFydE1vZGVsKXJldHVybjt0aGlzLl9jaGFydE1vZGVsLnRpbWVTY2FsZSgpLnNjcm9sbFRvUmVhbHRpbWUoZSx0KTtjb25zdCBpPXRoaXMuX2NoYXJ0LmNoYXJ0V2lkZ2V0Q29sbGVjdGlvbigpOyFpLmxvY2suZGF0ZVJhbmdlLnZhbHVlKCkmJmkubG9jay50cmFja1RpbWUudmFsdWUoKSYmaS5jaGFydE1vZGVscygpLnZhbHVlKCkuZm9yRWFjaCgodD0+e3QhPT10aGlzLl9jaGFydE1vZGVsJiZ0LnRpbWVTY2FsZSgpLnNjcm9sbFRvUmVhbHRpbWUoZSl9KSl9c2Nyb2xsVG9GaXJzdEJhcigpe3RoaXMuX2NoYXJ0TW9kZWw/LnRpbWVTY2FsZSgpLnNjcm9sbFRvRmlyc3RCYXIoKX1fbW92ZUltcGwoZSx0LGkpe2lmKG51bGw9PT10aGlzLl9jaGFydE1vZGVsKXJldHVybjtjb25zdCBzPXRoaXMuX2NoYXJ0TW9kZWwudGltZVNjYWxlKCk7aWYocy5pc0VtcHR5KCkpcmV0dXJuO2lmKGkmJm51bGwhPT1zLnZpc2libGVCYXJzU3RyaWN0UmFuZ2UoKSl7Y29uc3QgZT1zLmluZGV4VG9Db29yZGluYXRlKHMudmlzaWJsZUJhcnNTdHJpY3RSYW5nZSgpLmxhc3RCYXIoKSkrcy5iYXJTcGFjaW5nKCkvMjtNYXRoLmFicyhzLndpZHRoKCktZSk+cy5iYXJTcGFjaW5nKCkvNiYmcy5zZXRSaWdodE9mZnNldChNYXRoLnJvdW5kKHMucmlnaHRPZmZzZXQoKSkpfWNvbnN0IG49cGVyZm9ybWFuY2Uubm93KCk7bGV0IHI9MS8wO3RoaXMuX2FuaW1hdGlvbj17Z2V0U3RhcnRQb3NpdGlvbjooKT0+MCxnZXRQb3NpdGlvbjp0PT4odD1NYXRoLm1pbihyLHQpLGUoMCx0LW4sci10KSksZmluaXNoZWQ6ZT0+ZT49cixzdG9wOigpPT57Y29uc3QgZT1wZXJmb3JtYW5jZS5ub3coKS1uO3I9cGVyZm9ybWFuY2Uubm93KCkrdChlKX19LHRoaXMuX2NoYXJ0TW9kZWwubW9kZWwoKS5zdG9wVGltZVNjYWxlQW5pbWF0aW9uKCksdGhpcy5fY2hhcnRNb2RlbC5tb2RlbCgpLnNldFRpbWVTY2FsZUFuaW1hdGlvbih0aGlzLl9hbmltYXRpb24pfX12YXIgSnQ9aSgxODcwNjIpO2xldCBRdD1udWxsO2Z1bmN0aW9uIGVpKGUsdCxzLG4scixvKXsKcmV0dXJuIFByb21pc2UuYWxsKFtpLmUoMjk0MzkpLGkuZSg4NDMwNiksaS5lKDI5Mjk2KSxpLmUoNTIzOTYpLGkuZSg2MDA2MiksaS5lKDQ2OTA3KSxpLmUoMjAzNTQpLGkuZSgxMzQ5MiksaS5lKDM3NzQ2KSxpLmUoMTIzODUpLGkuZSg4MTA3MiksaS5lKDk0OTQ4KSxpLmUoMjM2MjQpLGkuZSgzNjIyMiksaS5lKDI5NTM2KSxpLmUoNTYyNTIpLGkuZSgxOTU5NSksaS5lKDE5Nzg3KSxpLmUoNjc3OTkpLGkuZSgxMTQ2MSksaS5lKDI0NTgxKSxpLmUoOTY1ODcpLGkuZSgxMTIxOCksaS5lKDg2NDIzKSxpLmUoMzc1MTMpLGkuZSg4NTc5KSxpLmUoNDA4MzUpLGkuZSgxNzA4NyksaS5lKDcyNjY2KSxpLmUoOTM0MjEpLGkuZSg3ODY1MiksaS5lKDEwMzg1KSxpLmUoNTIwNjUpLGkuZSg2NjA1KSxpLmUoNzA4MTUpLGkuZSg3NDM4MSksaS5lKDE1NTI2KSxpLmUoOTM0MTYpLGkuZSg2MTgyMSksaS5lKDU3MzAwKSxpLmUoMzU3OTQpLGkuZSgxNjc2KSxpLmUoODk1NTgpLGkuZSgxMDM2NiksaS5lKDgzMDQxKSxpLmUoNTE2ODIpLGkuZSgyMDIpLGkuZSg5NzY2MCksaS5lKDcyNTEyKSxpLmUoMzUxOTgpLGkuZSgxNTYzNCksaS5lKDMzMTIwKSxpLmUoNDA4NjcpLGkuZSgzOTc4NiksaS5lKDUwODAwKSxpLmUoNTA2MjIpLGkuZSg2MDgyKSxpLmUoMjczMzcpLGkuZSg0MDkxNCksaS5lKDI3NzM2KSxpLmUoODc3NDApLGkuZSg2NzU0MyksaS5lKDIzNjY5KSxpLmUoMzg0NzkpLGkuZSg5MDMzMCksaS5lKDk2MTgxKSxpLmUoMjA1NjQpLGkuZSg1MTI1NiksaS5lKDQ1MzMxKSxpLmUoNDUyNDIpLGkuZSg3ODYzKSxpLmUoNDYyNDUpLGkuZSg1NTI5MCksaS5lKDc0NDcxKSxpLmUoMjAzNzApLGkuZSg3NTYwMyksaS5lKDMyMzg3KSxpLmUoODA5MTUpLGkuZSgxODUxMiksaS5lKDQwNzU0KSxpLmUoOTU1NTQpLGkuZSgyMzc0MyksaS5lKDcyMTEpLGkuZSg5OTMwOSksaS5lKDU1MjI5KSxpLmUoNzM1MzUpLGkuZSgyNjUwMSksaS5lKDEwOTk5KSxpLmUoMzg5NzMpLGkuZSg5Njk3MCksaS5lKDI1MjM3KV0pLnRoZW4oaS5iaW5kKGksNDg4OTQ4KSkudGhlbigoaT0+e1F0Py5oaWRlKCk7Y29uc3QgYT1pLkVkaXRPYmplY3REaWFsb2dSZW5kZXJlcjtyZXR1cm4gUXQ9bmV3IGEoZSx0LHMscixvKSxRdC5zaG93KG4pLFF0fSkpfXZhciB0aT1pKDk1NjQzNyk7bGV0IGlpPW51bGw7ZnVuY3Rpb24gc2koZSl7cmV0dXJuIGUmJmUubG9sbGlwb3BzQXRJbmRleH12YXIgbmk9aSg5MjY5OTUpLHJpPWkoMzY4MTEwKSxvaT1pKDMyMjQxOSk7Y29uc3QgYWk9e1tKdC5UYWJOYW1lcy5zeW1ib2xdOiJzeW1ib2wiLFtKdC5UYWJOYW1lcy5sZWdlbmRdOiJsZWdlbmQiLFtKdC5UYWJOYW1lcy5zY2FsZXNdOiJzY2FsZXMiLFtKdC5UYWJOYW1lcy50cmFkaW5nXToidHJhZGluZyIsW0p0LlRhYk5hbWVzLmV2ZW50c106ImV2ZW50cyIsW0p0LlRhYk5hbWVzLmFsZXJ0c106ImFsZXJ0cyIsW0p0LlRhYk5hbWVzLnRpbWV6b25lU2Vzc2lvbnNdOiJjYW52YXMiLFtKdC5UYWJOYW1lcy50ZXh0XToidGV4dCIsW0p0LlRhYk5hbWVzLnN0eWxlXToic3R5bGUiLFtKdC5UYWJOYW1lcy52aXNpYmlsaXR5XToidmlzaWJpbGl0eSJ9LGxpPXtbSnQuVGFiTmFtZXMuc3R5bGVdOiJzdHlsZSIsW0p0LlRhYk5hbWVzLnZpc2liaWxpdHldOiJ2aXNpYmlsaXRpZXMifTthc3luYyBmdW5jdGlvbiBjaShlLHQscz17fSxuLHIpe2NvbnN0IG89bi5hY3RpdmVDaGFydFdpZGdldC52YWx1ZSgpLHtpbml0aWFsVGFiOmwsdGFiTmFtZTpjfT1zO2lmKGMmJiFsJiYocy5pbml0aWFsVGFiPWxpW2NdKSwoMCxvaS5pc1N0dWR5TGluZVRvb2wpKGUpJiZmdW5jdGlvbihlKXtpZighKDAsb2kuaXNTdHVkeUxpbmVUb29sKShlKSlyZXR1cm4hMTtyZXR1cm5bIkxpbmVUb29sRml4ZWRSYW5nZVZvbHVtZVByb2ZpbGUiLCJMaW5lVG9vbFZiUEZpeGVkIiwiTGluZVRvb2xBbmNob3JlZFZvbHVtZVByb2ZpbGUiXS5maWx0ZXIoYS5ub3ROdWxsKS5zb21lKCh0PT5lLnRvb2xuYW1lPT09dCkpfShlKSlyZXR1cm4gby5wcm9wZXJ0aWVzRGVmaW5pdGlvbnNGb3JTb3VyY2UoZSkudGhlbigoaT0+bnVsbCE9PWk/ZWkoZSx0LG5pLnNob3dTdXBwb3J0RGlhbG9nLHMscixpKTpudWxsKSk7aWYoKDAsdGkuaXNTdHVkeSkoZSkmJmZ1bmN0aW9uKGUpe2NvbnN0e3Nob3J0SWQ6dH09ZS5tZXRhSW5mbygpO3JldHVybiJPdmVybGF5Ij09PXR9KGUpfHwoMCxyaS5pc0xpbmVUb29sKShlKSlyZXR1cm4gby5wcm9wZXJ0aWVzRGVmaW5pdGlvbnNGb3JTb3VyY2UoZSkudGhlbigobj0+e2lmKG51bGwhPT1uKXtyZXR1cm4gZnVuY3Rpb24oZSl7CnJldHVybiBQcm9taXNlLmFsbChbaS5lKDM3MDEyKSxpLmUoODQzMDYpLGkuZSgyOTI5NiksaS5lKDUyMzk2KSxpLmUoNjAwNjIpLGkuZSg0NjkwNyksaS5lKDIwMzU0KSxpLmUoMTM0OTIpLGkuZSgzNzc0NiksaS5lKDEyMzg1KSxpLmUoODEwNzIpLGkuZSg5NDk0OCksaS5lKDIzNjI0KSxpLmUoMzYyMjIpLGkuZSgyOTUzNiksaS5lKDU2MjUyKSxpLmUoMTk1OTUpLGkuZSgxOTc4NyksaS5lKDY3Nzk5KSxpLmUoMTE0NjEpLGkuZSgyNDU4MSksaS5lKDk2NTg3KSxpLmUoMTEyMTgpLGkuZSg4NjQyMyksaS5lKDM3NTEzKSxpLmUoODU3OSksaS5lKDQwODM1KSxpLmUoMTcwODcpLGkuZSg3MjY2NiksaS5lKDkzNDIxKSxpLmUoNzg2NTIpLGkuZSgxMDM4NSksaS5lKDUyMDY1KSxpLmUoNjYwNSksaS5lKDcwODE1KSxpLmUoNzQzODEpLGkuZSgxNTUyNiksaS5lKDkzNDE2KSxpLmUoNjE4MjEpLGkuZSg1NzMwMCksaS5lKDg5NTU4KSxpLmUoMTAzNjYpLGkuZSg1MTY4MiksaS5lKDIwMiksaS5lKDk3NjYwKSxpLmUoNzI1MTIpLGkuZSgzNTE5OCksaS5lKDMzMTIwKSxpLmUoNDA4NjcpLGkuZSgzOTc4NiksaS5lKDUwODAwKSxpLmUoNTA2MjIpLGkuZSg2MDgyKSxpLmUoMjczMzcpLGkuZSg0MDkxNCksaS5lKDI3NzM2KSxpLmUoODc3NDApLGkuZSg2NzU0MyksaS5lKDM4NDc5KSxpLmUoOTAzMzApLGkuZSg5NjE4MSksaS5lKDIwNTY0KSxpLmUoNTEyNTYpLGkuZSg0NTMzMSksaS5lKDQ1MjQyKSxpLmUoNzg2MyksaS5lKDQ2MjQ1KSxpLmUoNTUyOTApLGkuZSg3NDQ3MSksaS5lKDIwMzcwKSxpLmUoMTc4NjEpLGkuZSgzMjM4NyksaS5lKDgwOTE1KSxpLmUoMTg1MTIpLGkuZSg0MDc1NCksaS5lKDk1NTU0KSxpLmUoMjM3NDMpLGkuZSg3MjExKSxpLmUoOTkzMDkpLGkuZSg1NTIyOSksaS5lKDczNTM1KSxpLmUoMjY1MDEpLGkuZSgxMDk5OSksaS5lKDM4OTczKSxpLmUoOTY5NzApLGkuZSgxMjA2MCldKS50aGVuKGkuYmluZChpLDI3NzU5NykpLnRoZW4oKHQ9PntpaT8uaGlkZSgpO2NvbnN0IGk9dC5Tb3VyY2VQcm9wZXJ0aWVzRWRpdG9yUmVuZGVyZXI7cmV0dXJuIGlpPW5ldyBpKGUpLGlpLnNob3coe3Nob3VsZFJldHVybkZvY3VzOmUuc2hvdWxkUmV0dXJuRm9jdXN9KSxpaX0pKX0oe3Byb3BlcnR5UGFnZXM6bixtb2RlbDp0LHNvdXJjZTplLGFjdGl2ZVBhZ2VJZDpjJiZhaVtjXSxzaG91bGRSZXR1cm5Gb2N1czpzLnNob3VsZFJldHVybkZvY3VzfSl9cmV0dXJuIG51bGx9KSk7aWYoKDAsdGkuaXNTdHVkeVN0dWIpKGUpKXJldHVybiBudWxsO2lmKCgwLHRpLmlzU3R1ZHkpKGUpJiYhc2koZSkpcmV0dXJuIGVpKGUsdCxuaS5zaG93U3VwcG9ydERpYWxvZyxzLHIpO3tjb25zdCB0PXNpKGUpPyJldmVudHMiOmMmJmFpW2NdLGk9bi5nZXRDaGFydFByb3BlcnRpZXNEaWFsb2dSZW5kZXJlcigpO3JldHVybiBpLnNldEFjdGl2ZVBhZ2UodCksaS5zaG93KHMpfX12YXIgaGksZGk9aSg4NzE3MCksdWk9aSg2NzAyMTQpLHBpPWkoMjI3ODI1KSxfaT1pKDc5MTUyMSksbWk9aSg1MDY0NDYpO2NsYXNzIGdpe2NvbnN0cnVjdG9yKGUsdCl7dGhpcy5fc2hvd2VkPSExLHRoaXMuX2FkZGl0aW9uYWxSZWFkeVByb21pc2U9bnVsbCx0aGlzLl9jdz1lLHRoaXMuX2VsZW1lbnQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksdGhpcy5fZWxlbWVudC5jbGFzc0xpc3QuYWRkKG1pLnNjcmVlbiksdC5hcHBlbmRDaGlsZCh0aGlzLl9lbGVtZW50KSx0aGlzLl9jdy53aXRoTW9kZWwodGhpcyx0aGlzLl9jb25uZWN0VG9Nb2RlbCl9ZGVzdHJveSgpe3RoaXMuaGlkZSgpLHRoaXMuX2VsZW1lbnQucmVtb3ZlKCl9c2hvdyhlLHQpe2lmKGUpe2NvbnN0IGU9dGhpcy5fY3cubW9kZWwoKS5tYWluU2VyaWVzKCkuc3RhdHVzKCk7aWYoMSE9PWUmJjIhPT1lKXJldHVybn10aGlzLl9hZGRpdGlvbmFsUmVhZHlQcm9taXNlPXQsdGhpcy5fY3cuc2V0SW5Mb2FkaW5nU3RhdGUoITApLHRoaXMuX3Nob3dlZHx8KHRoaXMuX3Nob3dlZD0hMCx0aGlzLl9zaG93KCkpfWhpZGUoKXt0aGlzLl9jdy5zZXRJbkxvYWRpbmdTdGF0ZSghMSksdGhpcy5fc2hvd2VkJiZ0aGlzLl9oaWRlKCl9aXNTaG93bigpe3JldHVybiB0aGlzLl9zaG93ZWR9X2Nvbm5lY3RUb01vZGVsKCl7Y29uc3QgZT10aGlzLl9jdy5tb2RlbCgpLm1haW5TZXJpZXMoKSx0PWUuZGF0YUV2ZW50cygpO3Quc3ltYm9sRXJyb3IoKS5zdWJzY3JpYmUodGhpcywoZT0+e2UhPT1faS5wZXJtaXNzaW9uRGVuaWVkJiZ0aGlzLmhpZGUoKX0pKSx0LnNlcmllc0Vycm9yKCkuc3Vic2NyaWJlKHRoaXMsKCgpPT57KDAscS5pc0ZlYXR1cmVzZXRFbmFibGVkKSgiaGlkZV9sb2FkaW5nX3NjcmVlbl9vbl9zZXJpZXNfZXJyb3IiKSYmdGhpcy5oaWRlKCl9KSksZS5zdGF0dXNXVigpLnN1YnNjcmliZSgoZT0+e2lmKDQhPT1lJiYxMiE9PWUmJjEzIT09ZSYmMTQhPT1lfHx0aGlzLmhpZGUoKSxMLnNlcmllc1JlYWR5U3RhdHVzZXMuaGFzKGUpKXtjb25zdCBlPXRoaXMuX2FkZGl0aW9uYWxSZWFkeVByb21pc2U7ZT9lLnRoZW4oKCgpPT57dGhpcy5oaWRlKCl9KSk6dGhpcy5oaWRlKCl9fSkpfV9zaG93KCl7Y29uc3QgZT10aGlzLl9jdy5wcm9wZXJ0aWVzKCkuY2hpbGRzKCkucGFuZVByb3BlcnRpZXMuY2hpbGRzKCk7bGV0IHQ7aWYoZS5iYWNrZ3JvdW5kVHlwZS52YWx1ZSgpPT09cGkuQ29sb3JUeXBlLlNvbGlkKXQ9ZS5iYWNrZ3JvdW5kLnZhbHVlKCk7ZWxzZXt0PWBsaW5lYXItZ3JhZGllbnQoJHtlLmJhY2tncm91bmRHcmFkaWVudFN0YXJ0Q29sb3IudmFsdWUoKX0sJHtlLmJhY2tncm91bmRHcmFkaWVudEVuZENvbG9yLnZhbHVlKCl9KWB9dGhpcy5fZWxlbWVudC5zdHlsZS5iYWNrZ3JvdW5kPXQsdGhpcy5fZWxlbWVudC5jbGFzc0xpc3QuYWRkKG1pLmZhZGUpfV9oaWRlKCl7dGhpcy5fc2hvd2VkPSExLHRoaXMuX2VsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZShtaS5mYWRlKX19ZnVuY3Rpb24gZmkoZSx0KXtsZXR7ZGVsdGFYOmksZGVsdGFZOnN9PWU7c3dpdGNoKGkvPTEwMCxzLz0xMDAsdC5kZWx0YU1vZGUpe2Nhc2UgdC5ET01fREVMVEFfUEFHRTppKj0xMjAscyo9MTIwO2JyZWFrCjtjYXNlIHQuRE9NX0RFTFRBX0xJTkU6aSo9MzIscyo9MzJ9cmV0dXJue2RlbHRhWDppLGRlbHRhWTpzfX0hZnVuY3Rpb24oZSl7ZVtlLk1heE5leHRFdmVudERlbGF5PTEwMF09Ik1heE5leHRFdmVudERlbGF5IixlW2UuSWdub3JlU21hbGxlckRlbHRhQ29lZmY9M109Iklnbm9yZVNtYWxsZXJEZWx0YUNvZWZmIn0oaGl8fChoaT17fSkpO2NsYXNzIFNpe2NvbnN0cnVjdG9yKCl7dGhpcy5fdG90YWxEZWx0YVg9MCx0aGlzLl90b3RhbERlbHRhWT0wLHRoaXMuX3ByZXZXaGVlbFRpbWU9MH1wcm9jZXNzV2hlZWwoZSl7ZS50aW1lU3RhbXAtdGhpcy5fcHJldldoZWVsVGltZT4xMDAmJnRoaXMuX3Jlc2V0KCk7Y29uc3QgdD0hKDAsSi5pc01hYykoKSYmZS5zaGlmdEtleSxpPXQ/LWUuZGVsdGFZOmUuZGVsdGFYLHM9dD9lLmRlbHRhWDplLmRlbHRhWTt0aGlzLl90b3RhbERlbHRhWCs9aSx0aGlzLl90b3RhbERlbHRhWSs9cyx0aGlzLl9wcmV2V2hlZWxUaW1lPWUudGltZVN0YW1wO2NvbnN0IG49e2RlbHRhWDppLGRlbHRhWTpzfTtyZXR1cm4gMD09PXRoaXMuX3RvdGFsRGVsdGFYfHwwPT09dGhpcy5fdG90YWxEZWx0YVl8fChNYXRoLmFicyh0aGlzLl90b3RhbERlbHRhWCk+PU1hdGguYWJzKDMqdGhpcy5fdG90YWxEZWx0YVkpJiYobi5kZWx0YVk9MCksTWF0aC5hYnModGhpcy5fdG90YWxEZWx0YVkpPj1NYXRoLmFicygzKnRoaXMuX3RvdGFsRGVsdGFYKSYmKG4uZGVsdGFYPTApKSxmaShuLGUpfV9yZXNldCgpe3RoaXMuX3RvdGFsRGVsdGFYPTAsdGhpcy5fdG90YWxEZWx0YVk9MH19dmFyIHZpLHlpPWkoMTM0NjcpLGJpPWkoNjQwNzQ0KSx3aT1pKDY2MzQpLENpPWkoMTI0MzM2KTshZnVuY3Rpb24oZSl7ZVtlLkhlaWdodD0xXT0iSGVpZ2h0IixlW2UuTWluUGFuZUhlaWdodD0zMF09Ik1pblBhbmVIZWlnaHQifSh2aXx8KHZpPXt9KSk7Y2xhc3MgUGl7Y29uc3RydWN0b3IoZSx0LGkpe3RoaXMuX2hhbmRsZUVsPW51bGwsdGhpcy5fcmVzaXplSW5mbz1udWxsLHRoaXMuX2NvbG9yQ2FjaGU9e2xpbmVDb2xvcjoiIixiYWNrZ3JvdW5kQ29sb3I6IiIsY29sb3I6IiJ9LHRoaXMuX3NlbGVjdGVkPW5ldyBoLldhdGNoZWRWYWx1ZSx0aGlzLl9jaGFydD1lLHRoaXMuX3RvcFBhbmVJbmRleD10LHRoaXMuX2JvdHRvbVBhbmVJbmRleD1pLHRoaXMuX2VsZW1lbnQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksdGhpcy5fZWxlbWVudC5jbGFzc0xpc3QuYWRkKENpLnBhbmVTZXBhcmF0b3IpLHRoaXMuX2VsZW1lbnQuc3R5bGUuYmFja2dyb3VuZD10aGlzLl9jb2xvcigpLHRoaXMuYWRqdXN0U2l6ZSgpLHRoaXMuX2VsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgoKT0+e30pKTtjb25zdCBzPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3MuY2xhc3NMaXN0LmFkZChDaS5oYW5kbGUpLHRoaXMuX2VsZW1lbnQuYXBwZW5kQ2hpbGQocyksdGhpcy5fbW91c2VFdmVudEhhbmRsZXI9bmV3IHdpLk1vdXNlRXZlbnRIYW5kbGVyKHMsdGhpcyx7dHJlYXRWZXJ0VG91Y2hEcmFnQXNQYWdlU2Nyb2xsOiExLHRyZWF0SG9yelRvdWNoRHJhZ0FzUGFnZVNjcm9sbDohMH0pLHRoaXMuX2hhbmRsZUVsPXMsdGhpcy5faGFuZGxlRWwuY2xhc3NMaXN0LnRvZ2dsZShDaS5tb2JpbGUsSi5DaGVja01vYmlsZS5hbnkoKSksdGhpcy5fZWxlbWVudC5zZXRBdHRyaWJ1dGUoImFyaWEtaGlkZGVuIiwidHJ1ZSIpLHRoaXMuX3NlbGVjdGVkLnN1YnNjcmliZSgoZT0+dGhpcy5faGFuZGxlRWw/LmNsYXNzTGlzdC50b2dnbGUoQ2kuc2VsZWN0ZWQsZSkpKX1kZXN0cm95KCl7dGhpcy5fbW91c2VFdmVudEhhbmRsZXIuZGVzdHJveSgpLHRoaXMuX2VsZW1lbnQucGFyZW50RWxlbWVudCYmdGhpcy5fZWxlbWVudC5wYXJlbnRFbGVtZW50LnJlbW92ZUNoaWxkKHRoaXMuX2VsZW1lbnQpfXRvcFBhbmVJbmRleCgpe3JldHVybiB0aGlzLl90b3BQYW5lSW5kZXh9Ym90dG9tUGFuZUluZGV4KCl7cmV0dXJuIHRoaXMuX2JvdHRvbVBhbmVJbmRleH1nZXRFbGVtZW50KCl7cmV0dXJuIHRoaXMuX2VsZW1lbnR9aGlkZSgpe3RoaXMuX2VsZW1lbnQuY2xhc3NMaXN0LmFkZCgianMtaGlkZGVuIil9c2hvdygpe3RoaXMuX2VsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZSgianMtaGlkZGVuIil9c2VsZWN0ZWQoKXtyZXR1cm4gdGhpcy5fc2VsZWN0ZWQucmVhZG9ubHkoKX1hZGp1c3RTaXplKCl7dGhpcy5fZWxlbWVudC5zdHlsZS5oZWlnaHQ9UGkuaGVpZ2h0KCkrInB4In1tb3VzZUVudGVyRXZlbnQoZSl7Y29uc3R7dG9wUGFuZTp0LGJvdHRvbVBhbmU6aX09dGhpcy5fdG9wQm90dG9tUGFuZSghMCk7bnVsbCE9PXQmJm51bGwhPT1pJiYoMCxsLmVuc3VyZU5vdE51bGwpKHRoaXMuX2hhbmRsZUVsKS5jbGFzc0xpc3QuYWRkKENpLmhvdmVyZWQpfW1vdXNlTGVhdmVFdmVudChlKXsoMCxsLmVuc3VyZU5vdE51bGwpKHRoaXMuX2hhbmRsZUVsKS5jbGFzc0xpc3QucmVtb3ZlKENpLmhvdmVyZWQpfW1vdXNlRG93bkV2ZW50KGUpe3RoaXMuX21vdXNlRG93bk9yVG91Y2hTdGFydEV2ZW50KGUpfXRhcEV2ZW50KCl7dGhpcy5fc2VsZWN0ZWQuc2V0VmFsdWUoIXRoaXMuX3NlbGVjdGVkLnZhbHVlKCkpfXRvdWNoU3RhcnRFdmVudChlKXt0aGlzLl9zZWxlY3RlZC52YWx1ZSgpJiZ0aGlzLl9tb3VzZURvd25PclRvdWNoU3RhcnRFdmVudChlKX1wcmVzc2VkTW91c2VNb3ZlRXZlbnQoZSl7dGhpcy5fcHJlc3NlZE1vdXNlT3JUb3VjaE1vdmVFdmVudChlKX10b3VjaE1vdmVFdmVudChlKXt0aGlzLl9zZWxlY3RlZC52YWx1ZSgpJiZ0aGlzLl9wcmVzc2VkTW91c2VPclRvdWNoTW92ZUV2ZW50KGUpfW1vdXNlVXBFdmVudChlKXt0aGlzLl9tb3VzZVVwT3JUb3VjaEVuZEV2ZW50KGUpfXRvdWNoRW5kRXZlbnQoZSl7dGhpcy5fc2VsZWN0ZWQudmFsdWUoKSYmdGhpcy5fbW91c2VVcE9yVG91Y2hFbmRFdmVudChlKX10b3VjaFN0YXJ0T3V0c2lkZUV2ZW50KCl7dGhpcy5fc2VsZWN0ZWQuc2V0VmFsdWUoITEpfXVwZGF0ZSgpe3RoaXMuX2VsZW1lbnQuc3R5bGUuYmFja2dyb3VuZD10aGlzLl9jb2xvcigpLnRvU3RyaW5nKCl9cGFpbnQoKXt9aW1hZ2UoKXsKY29uc3R7dG9wUGFuZTplfT10aGlzLl90b3BCb3R0b21QYW5lKCExKSx0PWUubGVmdFByaWNlQXhpc2VzQ29udGFpbmVyKCkuZ2V0V2lkdGgoKSxpPWUud2lkdGgoKSxzPWUucmlnaHRQcmljZUF4aXNlc0NvbnRhaW5lcigpLmdldFdpZHRoKCksbj10aGlzLl9jb2xvcigpLHI9KDAsS3QuY3JlYXRlRGlzY29ubmVjdGVkQ2FudmFzKShkb2N1bWVudCwoMCx5dC5zaXplKSh7d2lkdGg6dCxoZWlnaHQ6MX0pKSxvPSgwLEt0LmdldFByZXNjYWxlZENvbnRleHQyRCkocik7by5maWxsU3R5bGU9bixvLmZpbGxSZWN0KDAsMCx0LDEpO2NvbnN0IGE9KDAsS3QuY3JlYXRlRGlzY29ubmVjdGVkQ2FudmFzKShkb2N1bWVudCwoMCx5dC5zaXplKSh7d2lkdGg6aSxoZWlnaHQ6MX0pKSxsPSgwLEt0LmdldFByZXNjYWxlZENvbnRleHQyRCkoYSk7bC5maWxsU3R5bGU9bixsLmZpbGxSZWN0KDAsMCxpLDEpO2NvbnN0IGM9KDAsS3QuY3JlYXRlRGlzY29ubmVjdGVkQ2FudmFzKShkb2N1bWVudCwoMCx5dC5zaXplKSh7d2lkdGg6cyxoZWlnaHQ6MX0pKSxoPSgwLEt0LmdldFByZXNjYWxlZENvbnRleHQyRCkoYyk7cmV0dXJuIGguZmlsbFN0eWxlPW4saC5maWxsUmVjdCgwLDAscywxKSx7dHlwZToic2VwYXJhdG9yIixsZWZ0QXhpczp7Y29udGVudDpyLnRvRGF0YVVSTCgpLGNhbnZhczpyLGNvbnRlbnRXaWR0aDp0LGNvbnRlbnRIZWlnaHQ6MX0scmlnaHRBeGlzOntjb250ZW50OmMudG9EYXRhVVJMKCksY2FudmFzOmMsY29udGVudFdpZHRoOnMsY29udGVudEhlaWdodDoxfSxjb250ZW50OmEudG9EYXRhVVJMKCksY2FudmFzOmEsY29udGVudFdpZHRoOmksY29udGVudEhlaWdodDoxfX1zdGF0aWMgaGVpZ2h0KCl7Y29uc3QgZT13aW5kb3cuZGV2aWNlUGl4ZWxSYXRpb3x8MTtyZXR1cm4gZT49MT8xOjEvZX1fbW91c2VEb3duT3JUb3VjaFN0YXJ0RXZlbnQoZSl7Y29uc3R7dG9wUGFuZTp0LGJvdHRvbVBhbmU6aX09dGhpcy5fdG9wQm90dG9tUGFuZSghMCk7aWYobnVsbD09PXR8fG51bGw9PT1pKXJldHVybjtjb25zdCBzPXQuc3RhdGUoKS5zdHJldGNoRmFjdG9yKCkraS5zdGF0ZSgpLnN0cmV0Y2hGYWN0b3IoKSxuPXMvKHQuaGVpZ2h0KCkraS5oZWlnaHQoKSkscj0zMCpuO3M8PTIqcnx8KHRoaXMuX3Jlc2l6ZUluZm89e3N0YXJ0WTplLnBhZ2VZLHByZXZTdHJldGNoVG9wUGFuZTp0LnN0YXRlKCkuc3RyZXRjaEZhY3RvcigpLG1heFBhbmVTdHJldGNoOnMtcix0b3RhbFN0cmV0Y2g6cyxwaXhlbFN0cmV0Y2hGYWN0b3I6bixtaW5QYW5lU3RyZXRjaDpyfSwoMCxsLmVuc3VyZU5vdE51bGwpKHRoaXMuX2hhbmRsZUVsKS5jbGFzc0xpc3QuYWRkKENpLmFjdGl2ZSkpfV9wcmVzc2VkTW91c2VPclRvdWNoTW92ZUV2ZW50KGUpe2NvbnN0e3RvcFBhbmU6dCxib3R0b21QYW5lOml9PXRoaXMuX3RvcEJvdHRvbVBhbmUoITApLHM9dGhpcy5fcmVzaXplSW5mbztpZihudWxsPT09c3x8bnVsbD09PXR8fG51bGw9PT1pKXJldHVybjtjb25zdCBuPShlLnBhZ2VZLXMuc3RhcnRZKSpzLnBpeGVsU3RyZXRjaEZhY3RvcixyPSgwLGJpLmNsYW1wKShzLnByZXZTdHJldGNoVG9wUGFuZStuLHMubWluUGFuZVN0cmV0Y2gscy5tYXhQYW5lU3RyZXRjaCk7dC5zdGF0ZSgpLnNldFN0cmV0Y2hGYWN0b3IociksaS5zdGF0ZSgpLnNldFN0cmV0Y2hGYWN0b3Iocy50b3RhbFN0cmV0Y2gtciksdGhpcy5fY2hhcnQubW9kZWwoKS5tb2RlbCgpLmZ1bGxVcGRhdGUoKX1fbW91c2VVcE9yVG91Y2hFbmRFdmVudChlKXtjb25zdHt0b3BQYW5lOnQsYm90dG9tUGFuZTppfT10aGlzLl90b3BCb3R0b21QYW5lKCEwKSxzPXRoaXMuX3Jlc2l6ZUluZm87bnVsbCE9PXMmJm51bGwhPT10JiZudWxsIT09aSYmKHRoaXMuX2NoYXJ0Lm1vZGVsKCkuYWRkUGFuZVN0cmV0Y2hGYWN0b3JVbmRvQ29tbWFuZCh0LnN0YXRlKCksaS5zdGF0ZSgpLHMucHJldlN0cmV0Y2hUb3BQYW5lLHQuc3RhdGUoKS5zdHJldGNoRmFjdG9yKCkpLHRoaXMuX3Jlc2l6ZUluZm89bnVsbCwoMCxsLmVuc3VyZU5vdE51bGwpKHRoaXMuX2hhbmRsZUVsKS5jbGFzc0xpc3QucmVtb3ZlKENpLmFjdGl2ZSkpfV9jb2xvcigpe2NvbnN0IGU9dGhpcy5fY2hhcnQucHJvcGVydGllcygpLmNoaWxkcygpLnBhbmVQcm9wZXJ0aWVzLmNoaWxkcygpLnNlcGFyYXRvckNvbG9yLnZhbHVlKCksdD10aGlzLl9jaGFydC5tb2RlbCgpLm1vZGVsKCkuYmFja2dyb3VuZENvbG9yKCkudmFsdWUoKTtpZih0aGlzLl9jb2xvckNhY2hlLmxpbmVDb2xvciE9PWV8fHRoaXMuX2NvbG9yQ2FjaGUuYmFja2dyb3VuZENvbG9yIT09dCl7Y29uc3QgaT0oMCx5aS5wYXJzZVJnYmEpKHQpLHM9KDAseWkucGFyc2VSZ2JhKShlKSxuPTA9PT1pWzNdJiYwPT09c1szXT8icmdiYSgwLDAsMCwwKSI6KDAseWkucmdiYVRvU3RyaW5nKSgoMCx5aS5ibGVuZFJnYmEpKGkscykpO3RoaXMuX2NvbG9yQ2FjaGU9e2xpbmVDb2xvcjplLGJhY2tncm91bmRDb2xvcjp0LGNvbG9yOm59fXJldHVybiB0aGlzLl9jb2xvckNhY2hlLmNvbG9yfV90b3BCb3R0b21QYW5lKGUpe2NvbnN0IHQ9dGhpcy5fY2hhcnQucGFuZVdpZGdldHMoKTtsZXQgaT1udWxsLHM9bnVsbDtmb3IobGV0IHM9dGhpcy5fdG9wUGFuZUluZGV4O3M+PTA7LS1zKXtjb25zdCBuPXRbc107aWYoIWV8fCFuLnN0YXRlKCkuY29sbGFwc2VkKCkudmFsdWUoKSl7aT1uO2JyZWFrfX1mb3IobGV0IGk9dGhpcy5fYm90dG9tUGFuZUluZGV4O2k8dC5sZW5ndGg7KytpKXtjb25zdCBuPXRbaV07aWYoIWV8fCFuLnN0YXRlKCkuY29sbGFwc2VkKCkudmFsdWUoKSl7cz1uO2JyZWFrfX1yZXR1cm57dG9wUGFuZTppLGJvdHRvbVBhbmU6c319fXZhciBUaSx4aT1pKDk2NDQ4NiksTWk9aSg3NjMpLElpPWkoOTMwNTA2KSxMaT1pKDkwMTM3MCksQWk9aSgxODQ2MTYpLGtpPWkoMzI5NjY2KSxEaT1pKDc4NjQzNik7IWZ1bmN0aW9uKGUpe2VbZS5HZWFyPTBdPSJHZWFyIixlW2UuU3ltYm9sPTFdPSJTeW1ib2wiLGVbZS5BdXRvPTJdPSJBdXRvIn0oVGl8fChUaT17fSkpCjt2YXIgRWksUmk9aSg1OTA4OTQpLFZpPWkoNDM5ODc5KSxCaT1pKDgyMjcyNiksTmk9aSgyNTA0MzkpLE9pPWkoMzU2MzgwKSxXaT1pKDkyNjE0OSksRmk9aSg0NjYzNDEpOyFmdW5jdGlvbihlKXtlW2UuTGFiZWxSYWRpdXM9OS41XT0iTGFiZWxSYWRpdXMiLGVbZS5MYWJlbEZvbnRTaXplPTExXT0iTGFiZWxGb250U2l6ZSJ9KEVpfHwoRWk9e30pKTtjb25zdCBIaT17ZW5hYmxlVG9vbHRpcDohMCxzaG93TGFiZWxzOiEwLGVuYWJsZU1lbnU6ITAsZW5hYmxlSGlnaGxpZ2h0OiEwfTtmdW5jdGlvbiB6aShlLHQpe3JldHVybiBNYXRoLm1heCgxLE1hdGguZmxvb3IoZS5ib3JkZXJTaXplKnQpKX1jbGFzcyBVaXtjb25zdHJ1Y3RvcihlLHQsaSxzLG4scj1udWxsKXt0aGlzLl9zaXplPSgwLHl0LnNpemUpKHt3aWR0aDowLGhlaWdodDowfSksdGhpcy5fb2Zmc2V0PTAsdGhpcy5fYXhpc0luZm89bnVsbCx0aGlzLl9vbkxhYmVsSG92ZXJlZD1uZXcgZi5EZWxlZ2F0ZSx0aGlzLl9oaWdobGlnaHRlZD0hMSx0aGlzLl9pc0NvbnRleHRNZW51T3BlbmVkPSExLHRoaXMuX2lzTW91c2VPdmVyU3R1Yj0hMSx0aGlzLl9sYWJlbE1vZGU9Mix0aGlzLl9maXhlZExhYmVsTW9kZT1udWxsLHRoaXMuX3RleHRXaWR0aENhY2hlPW5ldyBCaS5UZXh0V2lkdGhDYWNoZSg1KSx0aGlzLl9nZWFyUmVuZGVyZXI9KDAsVmkuc3ZnUmVuZGVyZXIpKEZpKSx0aGlzLl9jYW52YXNDb25maWd1cmVkSGFuZGxlcj0oKT0+e3RoaXMudXBkYXRlKCksdGhpcy5fdGV4dFdpZHRoQ2FjaGUucmVzZXQoKX0sdGhpcy5fdGltZUF4aXNXaWRnZXQ9cix0aGlzLl9pc0xlZnQ9ImxlZnQiPT09ZTtjb25zdHtyZW5kZXJlck9wdGlvbnNQcm92aWRlcjpvLHNvdXJjZXNUaXRsZXNQcm92aWRlcjphLGNvbnRleHRNZW51SXRlbXNQcm92aWRlcjpsLGJhY2tncm91bmRCYXNlZFRoZW1lOmMsb25BY3RpdmVPckhvdmVyZWRDaGFydDpkPW5ldyBoLldhdGNoZWRWYWx1ZSghMSkub3duZXJzaGlwKCkscmVxdWVzdFJlcGFpbnQ6dSxnZXRCYWNrZ3JvdW5kVG9wQ29sb3I6cCxnZXRCYWNrZ3JvdW5kQm90dG9tQ29sb3I6XyxzaG93SG9yaXpvbnRhbEJvcmRlcjptfT1zO3RoaXMuX3JlbmRlcmVyT3B0aW9uc1Byb3ZpZGVyPW8sdGhpcy5fc291cmNlc1RpdGxlc1Byb3ZpZGVyPWEsdGhpcy5fY29udGV4dE1lbnVJdGVtc1Byb3ZpZGVyPWwsdGhpcy5fYmFja2dyb3VuZEJhc2VkVGhlbWU9Yyx0aGlzLl9vbkFjdGl2ZU9ySG92ZXJlZENoYXJ0PWQsdGhpcy5fcmVxdWVzdFJlcGFpbnQ9dSx0aGlzLl9nZXRCYWNrZ3JvdW5kVG9wQ29sb3I9cCx0aGlzLl9nZXRCYWNrZ3JvdW5kQm90dG9tQ29sb3I9Xyx0aGlzLl9zaG93SG9yaXpvbnRhbEJvcmRlcj1Cb29sZWFuKG0pLHRoaXMuX3Byb3BlcnRpZXM9dCx0aGlzLl9heGlzSW5mbz1pLHRoaXMuX2xhYmVsT3B0aW9ucz17Li4uSGksLi4ubn0sdGhpcy5fY2VsbD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSx0aGlzLl9sYWJlbE9wdGlvbnMuZW5hYmxlVG9vbHRpcCYmdGhpcy5fY2VsbC5jbGFzc0xpc3QuYWRkKCJhcHBseS1jb21tb24tdG9vbHRpcCIpLHRoaXMuX2NlbGwuc3R5bGUud2lkdGg9IjI1cHgiLHRoaXMuX2NlbGwuc3R5bGUuaGVpZ2h0PSIxMDAlIix0aGlzLl9jZWxsLnN0eWxlLnBvc2l0aW9uPSJhYnNvbHV0ZSIsdGhpcy5fY2VsbC5zdHlsZS5sZWZ0PSIwIix0aGlzLl9jZWxsLnN0eWxlLm92ZXJmbG93PSJoaWRkZW4iLHRoaXMuX2xhYmVsT3B0aW9ucy5zaG93TGFiZWxzJiYodGhpcy5fbGFiZWxPcHRpb25zLmVuYWJsZVRvb2x0aXAmJigwLE9pLnNldFRvb2x0aXBEYXRhKSh0aGlzLl9jZWxsLCJ0ZXh0IiwoZT0+dGhpcy5fdG9vbHRpcENvbnRlbnQoKSkpLHRoaXMuX29uQWN0aXZlT3JIb3ZlcmVkQ2hhcnQuc3Vic2NyaWJlKHUpKSx0aGlzLl9wcm9wZXJ0aWVzLmxpbmVDb2xvci5zdWJzY3JpYmUodGhpcywoKCk9PnRoaXMuX3JlcXVlc3RSZXBhaW50KCkpKSx0aGlzLl9tb3VzZUV2ZW50SGFuZGxlcj1uZXcgd2kuTW91c2VFdmVudEhhbmRsZXIodGhpcy5fY2VsbCx0aGlzLHt0cmVhdEhvcnpUb3VjaERyYWdBc1BhZ2VTY3JvbGw6ITAsdHJlYXRWZXJ0VG91Y2hEcmFnQXNQYWdlU2Nyb2xsOiEwfSksdGhpcy5fY2FudmFzQmluZGluZz0oMCxLdC5jcmVhdGVCb3VuZENhbnZhcykodGhpcy5fY2VsbCwoMCx5dC5zaXplKSh7d2lkdGg6MTYsaGVpZ2h0OjE2fSkpLHRoaXMuX2NhbnZhc0JpbmRpbmcuc3Vic2NyaWJlU3VnZ2VzdGVkQml0bWFwU2l6ZUNoYW5nZWQodGhpcy5fY2FudmFzQ29uZmlndXJlZEhhbmRsZXIpO2NvbnN0IGc9dGhpcy5fY2FudmFzQmluZGluZy5jYW52YXNFbGVtZW50O2cuc3R5bGUucG9zaXRpb249ImFic29sdXRlIixnLnN0eWxlLmxlZnQ9IjAiLGcuc3R5bGUudG9wPSIwIix0aGlzLl9jZWxsLnNldEF0dHJpYnV0ZSgiYXJpYS1oaWRkZW4iLCJ0cnVlIil9ZGVzdHJveSgpe3RoaXMuX2NhbnZhc0JpbmRpbmcudW5zdWJzY3JpYmVTdWdnZXN0ZWRCaXRtYXBTaXplQ2hhbmdlZCh0aGlzLl9jYW52YXNDb25maWd1cmVkSGFuZGxlciksdGhpcy5fY2FudmFzQmluZGluZy5kaXNwb3NlKCksdGhpcy5fcHJvcGVydGllcy5saW5lQ29sb3IudW5zdWJzY3JpYmVBbGwodGhpcyksdGhpcy5fbW91c2VFdmVudEhhbmRsZXIuZGVzdHJveSgpLHRoaXMuX2JhY2tncm91bmRCYXNlZFRoZW1lLnJlbGVhc2UoKSx0aGlzLl9vbkFjdGl2ZU9ySG92ZXJlZENoYXJ0LnVuc3Vic2NyaWJlKHRoaXMuX3JlcXVlc3RSZXBhaW50KSx0aGlzLl9vbkFjdGl2ZU9ySG92ZXJlZENoYXJ0LnJlbGVhc2UoKX1tb3VzZUVudGVyRXZlbnQoZSl7dGhpcy5fbW91c2VPclRvdWNoRW50ZXJFdmVudChlKX10b3VjaFN0YXJ0RXZlbnQoZSl7dGhpcy5fbW91c2VPclRvdWNoRW50ZXJFdmVudChlKX1tb3VzZUxlYXZlRXZlbnQoZSl7dGhpcy5fbW91c2VPclRvdWNoTGVhdmVFdmVudChlKX10b3VjaEVuZEV2ZW50KGUpe3RoaXMuX21vdXNlT3JUb3VjaExlYXZlRXZlbnQoZSl9bW91c2VDbGlja0V2ZW50KGUpe3RoaXMuX21vdXNlQ2xpY2tPclRhcEV2ZW50KGUpfXRhcEV2ZW50KGUpe3RoaXMuX21vdXNlQ2xpY2tPclRhcEV2ZW50KGUpfQp1cGRhdGUoKXt9Z2V0RWxlbWVudCgpe3JldHVybiB0aGlzLl9jZWxsfW9uTGFiZWxIb3ZlcmVkKCl7cmV0dXJuIHRoaXMuX29uTGFiZWxIb3ZlcmVkfXNldFNpemVBbmRPZmZzZXQoZSx0KXsoMCx5dC5lcXVhbFNpemVzKSh0aGlzLl9zaXplLGUpfHwodGhpcy5fc2l6ZT1lLHRoaXMuX2NhbnZhc0JpbmRpbmcucmVzaXplQ2FudmFzRWxlbWVudChlKSx0aGlzLl9jZWxsLnN0eWxlLndpZHRoPWAke2Uud2lkdGh9cHhgLHRoaXMuX2NlbGwuc3R5bGUubWluV2lkdGg9YCR7ZS53aWR0aH1weGAsdGhpcy5fY2VsbC5zdHlsZS5oZWlnaHQ9YCR7ZS5oZWlnaHR9cHhgKSx0aGlzLl9vZmZzZXQhPT10JiYodGhpcy5fb2Zmc2V0PXQsdGhpcy5fY2VsbC5zdHlsZS5sZWZ0PWAke3R9cHhgKX1wYWludChlKXswIT09dGhpcy5fc2l6ZS53aWR0aCYmMCE9PXRoaXMuX3NpemUuaGVpZ2h0JiYoZS5sZXZlbD09PUxlLkludmFsaWRhdGlvbkxldmVsLkZ1bGx8fGUuaW52YWxpZGF0ZVN0dWJzKSYmKCgwLEt0LnRyeUFwcGx5U3VnZ2VzdGVkQ2FudmFzQml0bWFwU2l6ZSkodGhpcy5fY2FudmFzQmluZGluZyksdGhpcy5fcGFpbnRJbXBsKCgwLEt0LmdldENvbnRleHQyRCkodGhpcy5fY2FudmFzQmluZGluZy5jYW52YXNFbGVtZW50KSwoMCxLdC5nZXRCaW5kaW5nUmVuZGVyaW5nSW5mbykodGhpcy5fY2FudmFzQmluZGluZykpKX1nZXRXaWR0aCgpe3JldHVybiB0aGlzLl9zaXplLndpZHRofWdldEltYWdlKCl7Y29uc3QgZT0oMCxLdC5nZXRCaW5kaW5nUmVuZGVyaW5nSW5mbykodGhpcy5fY2FudmFzQmluZGluZyksdD0oMCxLdC5jcmVhdGVEaXNjb25uZWN0ZWRDYW52YXNCeVJlbmRlcmluZ0luZm8pKGRvY3VtZW50LGUpO3JldHVybiB0aGlzLl9wYWludEltcGwoKDAsS3QuZ2V0Q29udGV4dDJEKSh0KSxlLCEwKSx0fXNldExhYmVsTW9kZShlKXtlIT09dGhpcy5fbGFiZWxNb2RlJiYodGhpcy5fbGFiZWxNb2RlPWUsdGhpcy5fY2VsbC5jbGFzc0xpc3QudG9nZ2xlKCJhcHBseS1jb21tb24tdG9vbHRpcCIsMSE9PWUmJnRoaXMuX2xhYmVsT3B0aW9ucy5lbmFibGVUb29sdGlwKSl9X3BhaW50SW1wbChlLHQsaSl7dGhpcy5fZHJhd0JhY2tncm91bmQoZSx0KSx0aGlzLl9kcmF3VmVydGljYWxCb3JkZXIoZSx0KSx0aGlzLl9zaG93SG9yaXpvbnRhbEJvcmRlciYmdGhpcy5fZHJhd0hvcml6b250YWxCb3JkZXIoZSx0KSx0aGlzLl9sYWJlbE9wdGlvbnMuc2hvd0xhYmVscyYmdGhpcy5fZHJhd0xhYmVsKGUsdCxpKX1fc2V0SGlnaGxpZ2h0ZWQoZSl7dGhpcy5fbGFiZWxPcHRpb25zLmVuYWJsZUhpZ2hsaWdodCYmKHRoaXMuX29uTGFiZWxIb3ZlcmVkLmZpcmUoInN0dWJCdXR0b24iLGUpLHRoaXMuX2hpZ2hsaWdodGVkIT09ZSYmKHRoaXMuX2hpZ2hsaWdodGVkPWUpLHRoaXMuX3JlcXVlc3RSZXBhaW50KCkpfV9kcmF3VmVydGljYWxCb3JkZXIoZSx0KXtlLnNhdmUoKSxlLmZpbGxTdHlsZT10aGlzLl92ZXJ0Qm9yZGVyQ29sb3IoKTtjb25zdCBpPXppKHRoaXMuX3JlbmRlcmVyT3B0aW9uc1Byb3ZpZGVyLm9wdGlvbnMoKSx0Lmhvcml6b250YWxQaXhlbFJhdGlvKSxzPXRoaXMuX2lzTGVmdD90LmJpdG1hcFNpemUud2lkdGgtaTowO2UuZmlsbFJlY3QocywwLGksdC5iaXRtYXBTaXplLmhlaWdodCksZS5yZXN0b3JlKCl9X2RyYXdIb3Jpem9udGFsQm9yZGVyKGUsdCl7ZS5zYXZlKCksZS5maWxsU3R5bGU9dGhpcy5faG9yekJvcmRlckNvbG9yKCk7Y29uc3QgaT16aSh0aGlzLl9yZW5kZXJlck9wdGlvbnNQcm92aWRlci5vcHRpb25zKCksdC52ZXJ0aWNhbFBpeGVsUmF0aW8pLHM9dGhpcy5faXNMZWZ0PzA6aTtlLmZpbGxSZWN0KHMsMCx0LmJpdG1hcFNpemUud2lkdGgtaSxpKSxlLnJlc3RvcmUoKX1fZHJhd0JhY2tncm91bmQoZSx0KXtjb25zdCBpPXRoaXMuX2dldEJhY2tncm91bmRUb3BDb2xvcigpLHM9dGhpcy5fZ2V0QmFja2dyb3VuZEJvdHRvbUNvbG9yKCkse2JpdG1hcFNpemU6bn09dDtpZihpPT09cz8oMCxLdC5jbGVhclJlY3QpKGUsMCwwLG4ud2lkdGgsbi5oZWlnaHQsaSk6KDAsRGkuY2xlYXJSZWN0V2l0aEdyYWRpZW50KShlLDAsMCxuLndpZHRoLG4uaGVpZ2h0LGkscyksdGhpcy5faGlnaGxpZ2h0ZWQpe2NvbnN0IHQ9ay50aGVtZXNbdGhpcy5fYmFja2dyb3VuZEJhc2VkVGhlbWUudmFsdWUoKV0uZ2V0VGhlbWVkQ29sb3IoImNvbG9yLXByaWNlLWF4aXMtaGlnaGxpZ2h0Iik7KDAsS3QuZmlsbFJlY3QpKGUsMCwwLG4ud2lkdGgsbi5oZWlnaHQsdCksZS5nbG9iYWxBbHBoYT0xfX1fZHJhd0xhYmVsKGUsdCxpKXtjb25zdCBzPXRoaXMuX2JhY2tncm91bmRCYXNlZFRoZW1lLnZhbHVlKCksbj10aGlzLl9heGlzSW5mbztpZihudWxsPT09bnx8IWkmJiF0aGlzLl9vbkFjdGl2ZU9ySG92ZXJlZENoYXJ0LnZhbHVlKCkpcmV0dXJuO2NvbnN0e2JpdG1hcFNpemU6cixob3Jpem9udGFsUGl4ZWxSYXRpbzpvLHZlcnRpY2FsUGl4ZWxSYXRpbzphfT10LGw9emkodGhpcy5fcmVuZGVyZXJPcHRpb25zUHJvdmlkZXIub3B0aW9ucygpLG8pLGM9TWF0aC5yb3VuZChyLndpZHRoKS1sLGg9emkodGhpcy5fcmVuZGVyZXJPcHRpb25zUHJvdmlkZXIub3B0aW9ucygpLGEpLGQ9TWF0aC5yb3VuZChyLmhlaWdodCktaCx1PSgwLFB0LnBvaW50KShsK2MvMixoK2QvMik7aWYoMT09PXRoaXMuX2xhYmVsTW9kZXx8Mj09PXRoaXMuX2xhYmVsTW9kZSYmKCF0aGlzLl9oaWdobGlnaHRlZHx8aSkpe2UuZmlsbFN0eWxlPWsudGhlbWVzW3NdLmdldFRoZW1lZENvbG9yKCJjb2xvci1wcmljZS1heGlzLWxhYmVsLWJhY2siKSxlLmdsb2JhbEFscGhhPS41LGUuYmVnaW5QYXRoKCksZS5hcmModS54LHUueSw5LjUqbywwLDIqTWF0aC5QSSwhMCksZS5maWxsKCksZS5nbG9iYWxBbHBoYT0xLGUuZmlsbFN0eWxlPWsudGhlbWVzW3NdLmdldFRoZW1lZENvbG9yKCJjb2xvci1wcmljZS1heGlzLWxhYmVsLXRleHQiKSxlLmZvbnQ9KDAsUmkubWFrZUZvbnQpKDExLFdpLkNIQVJUX0ZPTlRfRkFNSUxZX1dWLnZhbHVlKCkpLGUudGV4dEFsaWduPSJjZW50ZXIiLGUudGV4dEJhc2VsaW5lPSJtaWRkbGUiCjtjb25zdCB0PXRoaXMuX3RleHRXaWR0aENhY2hlLnlNaWRDb3JyZWN0aW9uKGUsbi5sYWJlbCk7KDAsS3QuZHJhd1NjYWxlZCkoZSxvLGEsKCgpPT57ZS5maWxsVGV4dChuLmxhYmVsLHUueC9vLHUueS9hK3QpfSkpfWVsc2UgaWYoIWkmJnRoaXMuX29uQWN0aXZlT3JIb3ZlcmVkQ2hhcnQudmFsdWUoKSl7Y29uc3QgdD10aGlzLl9nZWFyUmVuZGVyZXIudmlld0JveCgpLGk9TWF0aC5yb3VuZCh1LngtdC53aWR0aCpvLzIpLG49TWF0aC5yb3VuZCh1LnktdC5oZWlnaHQqYS8yKTtlLmZpbGxTdHlsZT1rLnRoZW1lc1tzXS5nZXRUaGVtZWRDb2xvcigiY29sb3ItdGV4dC1wcmltYXJ5IiksZS5pbWFnZVNtb290aGluZ1F1YWxpdHk9ImhpZ2giLHRoaXMuX2dlYXJSZW5kZXJlci5yZW5kZXIoZSx7dGFyZ2V0Vmlld0JveDp7eDppLHk6bix3aWR0aDp0LndpZHRoKm8saGVpZ2h0OnQuaGVpZ2h0KmF9LGRvTm90QXBwbHlDb2xvcnM6ITB9KX19X3ZlcnRCb3JkZXJDb2xvcigpe3JldHVybiB0aGlzLl9wcm9wZXJ0aWVzLmxpbmVDb2xvci52YWx1ZSgpfV9ob3J6Qm9yZGVyQ29sb3IoKXtyZXR1cm4gdGhpcy5fdGltZUF4aXNXaWRnZXQ/LmxpbmVDb2xvcigpPz90aGlzLl92ZXJ0Qm9yZGVyQ29sb3IoKX1fdG9vbHRpcENvbnRlbnQoKXtyZXR1cm4gdGhpcy5fc291cmNlc1RpdGxlc1Byb3ZpZGVyKCkuam9pbigiXG4iKX1fbW91c2VPclRvdWNoRW50ZXJFdmVudChlKXt0aGlzLl9pc01vdXNlT3ZlclN0dWI9ITAsdGhpcy5fbGFiZWxPcHRpb25zLnNob3dMYWJlbHMmJnRoaXMuX2xhYmVsT3B0aW9ucy5lbmFibGVIaWdobGlnaHQmJiF0aGlzLl90aW1lQXhpc1dpZGdldD8uY2hhcnQuY2hhcnRGbG9hdGluZ1Rvb2x0aXBWaXNpYmxlKCkmJnRoaXMuX3NldEhpZ2hsaWdodGVkKCEwKX1fbW91c2VPclRvdWNoTGVhdmVFdmVudChlKXt0aGlzLl9pc01vdXNlT3ZlclN0dWI9ITEsdGhpcy5fbGFiZWxPcHRpb25zLnNob3dMYWJlbHMmJnRoaXMuX2xhYmVsT3B0aW9ucy5lbmFibGVIaWdobGlnaHQmJiF0aGlzLl9pc0NvbnRleHRNZW51T3BlbmVkJiZ0aGlzLl9zZXRIaWdobGlnaHRlZCghMSl9YXN5bmMgX21vdXNlQ2xpY2tPclRhcEV2ZW50KGUpe2lmKGUucHJldmVudERlZmF1bHQoKSxudWxsIT09dGhpcy5fZml4ZWRMYWJlbE1vZGV8fDE9PT10aGlzLl9sYWJlbE1vZGV8fCF0aGlzLl9sYWJlbE9wdGlvbnMuZW5hYmxlTWVudXx8IXRoaXMuX2xhYmVsT3B0aW9ucy5zaG93TGFiZWxzKXJldHVybiB2b2lkIE5pLkNvbnRleHRNZW51TWFuYWdlci5oaWRlQWxsKCk7dGhpcy5fZml4ZWRMYWJlbE1vZGU9dGhpcy5fbGFiZWxNb2RlLHRoaXMuc2V0TGFiZWxNb2RlKDApO2NvbnN0IHQ9dGhpcy5fY2VsbC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxpPWF3YWl0IHRoaXMuX2NvbnRleHRNZW51SXRlbXNQcm92aWRlcigpO3RoaXMuX2lzQ29udGV4dE1lbnVPcGVuZWQ9ITAsdGhpcy5fbGFiZWxPcHRpb25zLnNob3dMYWJlbHMmJnRoaXMuX2xhYmVsT3B0aW9ucy5lbmFibGVIaWdobGlnaHQmJnRoaXMuX3NldEhpZ2hsaWdodGVkKCEwKSxOaS5Db250ZXh0TWVudU1hbmFnZXIuc2hvd01lbnUoaSx7Y2xpZW50WDp0aGlzLl9pc0xlZnQ/dC5sZWZ0OnQucmlnaHQsY2xpZW50WTp0LnRvcCxhdHRhY2hUb1hCeTp0aGlzLl9pc0xlZnQ/ImxlZnQiOiJyaWdodCIsYXR0YWNoVG9ZQnk6ImJvdHRvbSJ9LHtzdGF0TmFtZToiUHJpY2VTY2FsZUxhYmVsQ29udGV4dE1lbnUiLGRvTm90Q2xvc2VPbjp0aGlzLmdldEVsZW1lbnQoKX0se21lbnVOYW1lOiJQcmljZVNjYWxlTGFiZWxDb250ZXh0TWVudSJ9LCgoKT0+e3RoaXMuX2lzTW91c2VPdmVyU3R1Ynx8dGhpcy5fc2V0SGlnaGxpZ2h0ZWQoITEpLHRoaXMuX2lzQ29udGV4dE1lbnVPcGVuZWQ9ITEsdGhpcy5zZXRMYWJlbE1vZGUoKDAsbC5lbnN1cmVOb3ROdWxsKSh0aGlzLl9maXhlZExhYmVsTW9kZSkpLHRoaXMuX2ZpeGVkTGFiZWxNb2RlPW51bGx9KSl9fXZhciBHaT1pKDM0MjcxMik7Y2xhc3Mgaml7Y29uc3RydWN0b3IoZSx0LGkscyxuLHI9bnVsbCl7dGhpcy5fYXhpc2VzPVtdLHRoaXMuX3N0dWJzPVtdLHRoaXMuX3NpemU9KDAseXQuc2l6ZSkoe3dpZHRoOjAsaGVpZ2h0OjB9KSx0aGlzLl9vbkxhYmVsSG92ZXJlZD1uZXcgZi5EZWxlZ2F0ZSx0aGlzLl9zY2FsZXNQcm9wZXJ0aWVzPWUsdGhpcy5fcHJpY2VBeGlzV2lkZ2V0RmFjdG9yeT1pLHRoaXMuX3RpbWVBeGlzV2lkZ2V0PXIsdGhpcy5fcmVuZGVyZXJPcHRpb25zUHJvdmlkZXI9cy5yZW5kZXJlck9wdGlvbnNQcm92aWRlcix0aGlzLl90aXRsZXNQcm92aWRlcj1zLnRpdGxlc1Byb3ZpZGVyLHRoaXMuX3N0dWJDb250ZXh0TWVudVByb3ZpZGVyPXMuc3R1YkNvbnRleHRNZW51UHJvdmlkZXIsdGhpcy5fYmFja2dyb3VuZEJhc2VkVGhlbWU9cy5iYWNrZ3JvdW5kQmFzZWRUaGVtZSx0aGlzLl9vbkFjdGl2ZU9ySG92ZXJlZENoYXJ0PXMub25BY3RpdmVPckhvdmVyZWRDaGFydCx0aGlzLl9nZXRCYWNrZ3JvdW5kVG9wQ29sb3I9cy5nZXRCYWNrZ3JvdW5kVG9wQ29sb3IsdGhpcy5fZ2V0QmFja2dyb3VuZEJvdHRvbUNvbG9yPXMuZ2V0QmFja2dyb3VuZEJvdHRvbUNvbG9yLHRoaXMuX3JlcXVlc3RSZXBhaW50PXMucmVxdWVzdFJlcGFpbnQsdGhpcy5fc2hvd0hvcmlzb250YWxCb3JkZXI9Qm9vbGVhbihzLnNob3dIb3Jpem9udGFsQm9yZGVyKSx0aGlzLl9sYWJlbHNPcHRpb25zPXsuLi5IaSwuLi5ufTtjb25zdCBvPXRoaXMuX3NjYWxlc1Byb3BlcnRpZXMuY2hpbGRzKCk7dGhpcy5fc3R1YlByb3BlcnRpZXM9e2xpbmVDb2xvcjpvLmxpbmVDb2xvcixmb250U2l6ZTpvLmZvbnRTaXplfSx0aGlzLl9zaWRlPXQsdGhpcy5fY2VsbD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSx0aGlzLl9jZWxsLmNsYXNzTGlzdC5hZGQoImNoYXJ0LW1hcmt1cC10YWJsZSIsInByaWNlLWF4aXMtY29udGFpbmVyIiksdGhpcy5fY2VsbC5zdHlsZS53aWR0aD0iMjVweCIsdGhpcy5fY2VsbC5zdHlsZS5wb3NpdGlvbj0icmVsYXRpdmUifWRlc3Ryb3koKXt0aGlzLnNldFNjYWxlcyhbXSwwLDAsMCksdGhpcy5fYmFja2dyb3VuZEJhc2VkVGhlbWUucmVsZWFzZSgpLAp0aGlzLl9vbkFjdGl2ZU9ySG92ZXJlZENoYXJ0Py5yZWxlYXNlKCl9b25MYWJlbEhvdmVyZWQoKXtyZXR1cm4gdGhpcy5fb25MYWJlbEhvdmVyZWR9c2V0U2NhbGVzKGUsdCxpLHMpe2Zvcig7ZS5sZW5ndGg+dGhpcy5fYXhpc2VzLmxlbmd0aCYmdGhpcy5fYXhpc2VzLmxlbmd0aDx0Oyl7Y29uc3QgZT0oMCxHaS5nZXRQcmljZUF4aXNOYW1lSW5mbykodGhpcy5fc2lkZSx0aGlzLl9heGlzZXMubGVuZ3RoKSx0PXRoaXMuX3ByaWNlQXhpc1dpZGdldEZhY3RvcnkodGhpcy5fc2lkZSx0aGlzLl9yZW5kZXJlck9wdGlvbnNQcm92aWRlcix0aGlzLl9zY2FsZXNQcm9wZXJ0aWVzLGUsdGhpcy5fYmFja2dyb3VuZEJhc2VkVGhlbWUpO3RoaXMuX2F4aXNlcy5wdXNoKHQpLHRoaXMuX2NlbGwuYXBwZW5kQ2hpbGQodC5nZXRFbGVtZW50KCkpfWZvcig7ZS5sZW5ndGg8dGhpcy5fYXhpc2VzLmxlbmd0aDspe2NvbnN0IGU9KDAsbC5lbnN1cmVEZWZpbmVkKSh0aGlzLl9heGlzZXMucG9wKCkpO3RoaXMuX2NlbGwucmVtb3ZlQ2hpbGQoZS5nZXRFbGVtZW50KCkpLGUuZGVzdHJveSgpfWZvcihsZXQgdD0wO3Q8dGhpcy5fYXhpc2VzLmxlbmd0aDsrK3QpdGhpcy5fYXhpc2VzW3RdLnNldFByaWNlU2NhbGUoZVt0XSk7Y29uc3Qgbj10LWUubGVuZ3RoLHI9TWF0aC5tYXgoMCxuKTtmb3IoO3RoaXMuX3N0dWJzLmxlbmd0aD5yOyl7Y29uc3QgZT0oMCxsLmVuc3VyZURlZmluZWQpKHRoaXMuX3N0dWJzLnBvcCgpKTtlLm9uTGFiZWxIb3ZlcmVkKCkudW5zdWJzY3JpYmVBbGwodGhpcyksdGhpcy5fY2VsbC5yZW1vdmVDaGlsZChlLmdldEVsZW1lbnQoKSksZS5kZXN0cm95KCl9Zm9yKDt0aGlzLl9zdHVicy5sZW5ndGg8bjspe2NvbnN0IGU9dGhpcy5fbGFiZWxzT3B0aW9ucy5zaG93TGFiZWxzPygwLEdpLmdldFByaWNlQXhpc05hbWVJbmZvKSh0aGlzLl9zaWRlLHRoaXMuX3N0dWJzLmxlbmd0aCk6bnVsbCx0PW5ldyBVaSh0aGlzLl9zaWRlLHRoaXMuX3N0dWJQcm9wZXJ0aWVzLGUsdGhpcy5fc3R1YlBhcmFtcyh0aGlzLl9zdHVicy5sZW5ndGgpLHRoaXMuX2xhYmVsc09wdGlvbnMsdGhpcy5fdGltZUF4aXNXaWRnZXQpO3Qub25MYWJlbEhvdmVyZWQoKS5zdWJzY3JpYmUodGhpcywoKHQsaSk9Pnt0aGlzLl9sYWJlbHNPcHRpb25zLnNob3dMYWJlbHMmJnRoaXMuX2xhYmVsc09wdGlvbnMuZW5hYmxlSGlnaGxpZ2h0JiZ0aGlzLl9vbkxhYmVsSG92ZXJlZC5maXJlKHtvd25lcjp0LGF4aXM6KDAsbC5lbnN1cmVOb3ROdWxsKShlKX0saSl9KSksdGhpcy5fc3R1YnMucHVzaCh0KSx0aGlzLl9jZWxsLmFwcGVuZENoaWxkKHQuZ2V0RWxlbWVudCgpKX1jb25zdCBvPXRoaXMuX2xhYmVsc09wdGlvbnMuZW5hYmxlTWVudTsxPT09cz90aGlzLl9zdHVicy5mb3JFYWNoKCgoZSx0KT0+ZS5zZXRMYWJlbE1vZGUobz8wOjEpKSk6dGhpcy5fc3R1YnMuZm9yRWFjaCgoKGUsdCk9PmUuc2V0TGFiZWxNb2RlKHQ8aSYmbz8yOjEpKSl9Z2V0RWxlbWVudCgpe3JldHVybiB0aGlzLl9jZWxsfXVwZGF0ZUN1cnJlbmN5TGFiZWxzKCl7cmV0dXJuIHRoaXMuX2F4aXNlcy5mb3JFYWNoKChlPT5lLnVwZGF0ZUN1cnJlbmN5TGFiZWwoKSkpfW9wdGltYWxXaWR0aHMoKXtyZXR1cm4gdGhpcy5fYXhpc2VzLm1hcCgoZT0+ZS5vcHRpbWFsV2lkdGgoKSkpfXNldFNpemVzKGUsdCl7dGhpcy5fc2l6ZT0oMCx5dC5zaXplKSh7d2lkdGg6dC5yZWR1Y2UoKChlLHQpPT5lK3QpLDApLGhlaWdodDplfSksdGhpcy5fY2VsbC5zdHlsZS53aWR0aD10aGlzLl9zaXplLndpZHRoKyJweCIsdGhpcy5fY2VsbC5zdHlsZS5taW5XaWR0aD10aGlzLl9zaXplLndpZHRoKyJweCIsdGhpcy5fY2VsbC5zdHlsZS5oZWlnaHQ9dGhpcy5fc2l6ZS5oZWlnaHQrInB4Iix0Lmxlbmd0aCE9PXRoaXMuX2F4aXNlcy5sZW5ndGgrdGhpcy5fc3R1YnMubGVuZ3RoJiYoMCxsLmFzc2VydCkodC5sZW5ndGg9PT10aGlzLl9heGlzZXMubGVuZ3RoK3RoaXMuX3N0dWJzLmxlbmd0aCwiV2lkZ2V0cyBjb3VudCBzaG91bGQgYmUgdGhlIHNhbWUgYXMgd2lkdGhzIG9uZSIpO2xldCBpPTA7dGhpcy5fZm9yRWFjaFdpZGdldEZyb21MZWZ0KCgocyxuKT0+e2NvbnN0IHI9dFtuXTtzLnNldFNpemVBbmRPZmZzZXQoKDAseXQuc2l6ZSkoe3dpZHRoOnIsaGVpZ2h0OmV9KSxpKSxpKz1yfSkpfXVwZGF0ZSgpe3RoaXMuX2F4aXNlcy5mb3JFYWNoKChlPT5lLnVwZGF0ZSgpKSksdGhpcy5fc3R1YnMuZm9yRWFjaCgoZT0+ZS51cGRhdGUoKSkpfXBhaW50KGUsdCl7dGhpcy5fYXhpc2VzLmZvckVhY2goKCh0LGkpPT50LnBhaW50KGUoaSkpKSksdGhpcy5fc3R1YnMuZm9yRWFjaCgoKGUsaSk9PmUucGFpbnQodCkpKX1wYWludFN0dWJzKGUpe3RoaXMuX3N0dWJzLmZvckVhY2goKHQ9PnQucGFpbnQoZSkpKX1yZXN0b3JlRGVmYXVsdEN1cnNvcigpe3RoaXMuX2F4aXNlcy5mb3JFYWNoKChlPT5lLnJlc3RvcmVEZWZhdWx0Q3Vyc29yKCkpKX1nZXRXaWR0aCgpe3JldHVybiB0aGlzLl9zaXplLndpZHRofWZpbmRBeGlzV2lkZ2V0Rm9yU2NhbGUoZSl7Y29uc3QgdD10aGlzLl9heGlzZXMuZmluZCgodD0+dC5wcmljZVNjYWxlKCk9PT1lKSk7cmV0dXJuIHZvaWQgMD09PXQ/bnVsbDp0fWdldFNjcmVlbnNob3REYXRhKCl7Y29uc3QgZT10aGlzLl9nZXRJbWFnZSgpO3JldHVybntjYW52YXM6ZSxjb250ZW50OmUudG9EYXRhVVJMKCksY29udGVudEhlaWdodDp0aGlzLl9zaXplLmhlaWdodCxjb250ZW50V2lkdGg6dGhpcy5fc2l6ZS53aWR0aH19Z2V0SW1hZ2UoKXtyZXR1cm4gdGhpcy5fZ2V0SW1hZ2UoKX1zbG90c0NvdW50KCl7cmV0dXJuIHRoaXMuX2F4aXNlcy5sZW5ndGgrdGhpcy5fc3R1YnMubGVuZ3RofXNldEhpZ2hsaWdodGVkUHJpY2VBeGlzZXMoZSl7dGhpcy5fYXhpc2VzLmZvckVhY2goKHQ9Pntjb25zdCBpPXQuYXhpc0luZm8oKSxzPWUuZmluZCgoZT0+ZS5sYWJlbD09PWk/LmxhYmVsKSk7dC5zZXRIaWdobGlnaHRlZCh2b2lkIDAhPT1zKX0pKX1heGVzKCl7cmV0dXJuIHRoaXMuX2F4aXNlc31fc3R1YlBhcmFtcyhlKXtyZXR1cm57CnJlbmRlcmVyT3B0aW9uc1Byb3ZpZGVyOnRoaXMuX3JlbmRlcmVyT3B0aW9uc1Byb3ZpZGVyLGJhY2tncm91bmRCYXNlZFRoZW1lOnRoaXMuX2JhY2tncm91bmRCYXNlZFRoZW1lLnNwYXduT3duZXJzaGlwKCksb25BY3RpdmVPckhvdmVyZWRDaGFydDp0aGlzLl9vbkFjdGl2ZU9ySG92ZXJlZENoYXJ0Py5zcGF3bk93bmVyc2hpcCgpLHNvdXJjZXNUaXRsZXNQcm92aWRlcjooKT0+dGhpcy5fdGl0bGVzUHJvdmlkZXIodGhpcy5fc2lkZSxlKSxjb250ZXh0TWVudUl0ZW1zUHJvdmlkZXI6KCk9PnRoaXMuX3N0dWJDb250ZXh0TWVudVByb3ZpZGVyKHRoaXMuX3NpZGUsZSksZ2V0QmFja2dyb3VuZFRvcENvbG9yOnRoaXMuX2dldEJhY2tncm91bmRUb3BDb2xvcixnZXRCYWNrZ3JvdW5kQm90dG9tQ29sb3I6dGhpcy5fZ2V0QmFja2dyb3VuZEJvdHRvbUNvbG9yLHJlcXVlc3RSZXBhaW50OnRoaXMuX3JlcXVlc3RSZXBhaW50LHNob3dIb3Jpem9udGFsQm9yZGVyOnRoaXMuX3Nob3dIb3Jpc29udGFsQm9yZGVyfX1fZ2V0SW1hZ2UoKXtjb25zdCBlPSgwLEt0LmNyZWF0ZURpc2Nvbm5lY3RlZENhbnZhcykoZG9jdW1lbnQsdGhpcy5fc2l6ZSksdD0oMCxLdC5nZXRQcmVzY2FsZWRDb250ZXh0MkQpKGUpO2xldCBpPTA7cmV0dXJuIHRoaXMuX2ZvckVhY2hXaWRnZXRGcm9tTGVmdCgoKGUscyk9Pntjb25zdCBuPWUuZ2V0V2lkdGgoKTswIT09biYmMCE9PXRoaXMuX3NpemUuaGVpZ2h0JiYodC5kcmF3SW1hZ2UoZS5nZXRJbWFnZSgpLGksMCxuLHRoaXMuX3NpemUuaGVpZ2h0KSxpKz1uKX0pKSxlfV9mb3JFYWNoV2lkZ2V0RnJvbUxlZnQoZSl7Y29uc3QgdD1bLi4udGhpcy5fYXhpc2VzLC4uLnRoaXMuX3N0dWJzXSxpPSJsZWZ0Ij09PXRoaXMuX3NpZGUscz1pPy0xOnQubGVuZ3RoLG49aT8tMToxO2ZvcihsZXQgcj1pP3QubGVuZ3RoLTE6MDtyIT09cztyKz1uKWUodFtyXSxyLHQpfX12YXIgcWk9aSg2MzcyNTgpLCRpPWkoODczNTczKSxZaT1pKDE5Mjc1MSksS2k9aSg4NTYxNik7ZnVuY3Rpb24gWGkoZSx0LGkscz0hMSl7cmV0dXJuIGUuY2xhc3NMaXN0LmNvbnRhaW5zKCJyZWFkb25seSIpIT09aSYmKGUuY2xhc3NMaXN0LnRvZ2dsZSgicmVhZG9ubHkiLGkpLGUuY2xhc3NMaXN0LnRvZ2dsZSgianMtaGlkZGVuIixzJiZpKSx0Py5jbGFzc0xpc3QudG9nZ2xlKCJqcy1oaWRkZW4iLGkpLCEwKX1jbGFzcyBaaXtjb25zdHJ1Y3RvcihlPTApe3RoaXMuX3dpZHRoPW51bGwsdGhpcy5fbGFiZWxCb3R0b209bnVsbCx0aGlzLl9jdXJyZW5jeUluZm89bnVsbCx0aGlzLl91bml0SW5mbz1udWxsLHRoaXMuX21lYXN1cmVVbml0SWRJbmZvPW51bGwsdGhpcy5fbWV0cmljSW5mbz1udWxsLHRoaXMuX2N1cnJlbmN5QW5kVW5pdExhYmVsc1dyYXBwZXI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksdGhpcy5fY3VycmVuY3lBbmRVbml0TGFiZWxzV3JhcHBlci5jbGFzc05hbWU9S2lbInByaWNlLWF4aXMtY3VycmVuY3ktbGFiZWwtd3JhcHBlciJdLHRoaXMuX2N1cnJlbmN5QW5kVW5pdExhYmVsc1dyYXBwZXIuc2V0QXR0cmlidXRlKCJkYXRhLW5hbWUiLCJjdXJyZW5jeS11bml0LWxhYmVsLXdyYXBwZXIiKSx0aGlzLl9jb250cm9sc0NvbnRhaW5lcj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSx0aGlzLl9jb250cm9sc0NvbnRhaW5lci5jbGFzc05hbWU9S2lbInByaWNlLWF4aXMtY3VycmVuY3ktbGFiZWwiXSx0aGlzLl9jdXJyZW5jeUFuZFVuaXRMYWJlbHNXcmFwcGVyLmFwcGVuZENoaWxkKHRoaXMuX2NvbnRyb2xzQ29udGFpbmVyKSx0aGlzLl9jdXJyZW5jeUxhYmVsRGl2PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLHRoaXMuX2N1cnJlbmN5TGFiZWxEaXYuY2xhc3NMaXN0LmFkZChLaS5yb3csImFwcGx5LWNvbW1vbi10b29sdGlwIiksdGhpcy5fY3VycmVuY3lMYWJlbERpdi5kYXRhc2V0Lm5hbWU9ImN1cnJlbmN5LWxhYmVsLXNlbGVjdG9yIiwoMCxPaS5zZXRUb29sdGlwRGF0YSkodGhpcy5fY3VycmVuY3lMYWJlbERpdiwidGV4dCIsKGU9PnRoaXMuX2N1cnJlbmN5VG9vbHRpcENvbnRlbnQoKSkpLHRoaXMuX2N1cnJlbmN5VGV4dD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSx0aGlzLl9jdXJyZW5jeVRleHQuY2xhc3NOYW1lPUtpWyJwcmljZS1heGlzLWN1cnJlbmN5LWxhYmVsLXRleHQiXSx0aGlzLl9jdXJyZW5jeUxhYmVsRGl2LmFwcGVuZENoaWxkKHRoaXMuX2N1cnJlbmN5VGV4dCksdGhpcy5fY3VycmVuY3lBcnJvd0Rvd249ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksdGhpcy5fY3VycmVuY3lBcnJvd0Rvd24uY2xhc3NOYW1lPUtpWyJwcmljZS1heGlzLWN1cnJlbmN5LWxhYmVsLWFycm93LWRvd24iXSx0aGlzLl9jdXJyZW5jeUFycm93RG93bi5pbm5lckhUTUw9WWksdGhpcy5fY3VycmVuY3lMYWJlbERpdi5hcHBlbmRDaGlsZCh0aGlzLl9jdXJyZW5jeUFycm93RG93biksdGhpcy5fbWVhc3VyZVVuaXRJZExhYmVsRGl2PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLHRoaXMuX21lYXN1cmVVbml0SWRMYWJlbERpdi5jbGFzc05hbWU9S2kucm93LHRoaXMuX21lYXN1cmVVbml0SWRMYWJlbERpdi5jbGFzc0xpc3QuYWRkKCJhcHBseS1jb21tb24tdG9vbHRpcCIpLHRoaXMuX21lYXN1cmVVbml0SWRMYWJlbERpdi5jbGFzc0xpc3QuYWRkKCJyZWFkb25seSIpLCgwLE9pLnNldFRvb2x0aXBEYXRhKSh0aGlzLl9tZWFzdXJlVW5pdElkTGFiZWxEaXYsInRleHQiLChlPT50aGlzLl9tZWFzdXJlVW5pdElkVG9vbHRpcENvbnRlbnQoKSkpLHRoaXMuX21lYXN1cmVVbml0SWRUZXh0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLHRoaXMuX21lYXN1cmVVbml0SWRUZXh0LmNsYXNzTmFtZT1LaVsicHJpY2UtYXhpcy1jdXJyZW5jeS1sYWJlbC10ZXh0Il0sdGhpcy5fbWVhc3VyZVVuaXRJZExhYmVsRGl2LmFwcGVuZENoaWxkKHRoaXMuX21lYXN1cmVVbml0SWRUZXh0KSx0aGlzLl91bml0TGFiZWxEaXY9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksdGhpcy5fdW5pdExhYmVsRGl2LmNsYXNzTGlzdC5hZGQoS2kucm93LCJhcHBseS1jb21tb24tdG9vbHRpcCIpLAp0aGlzLl91bml0TGFiZWxEaXYuZGF0YXNldC5uYW1lPSJ1bml0LWxhYmVsLXNlbGVjdG9yIiwoMCxPaS5zZXRUb29sdGlwRGF0YSkodGhpcy5fdW5pdExhYmVsRGl2LCJ0ZXh0IiwoZT0+dGhpcy5fdW5pdFRvb2x0aXBDb250ZW50KCkpKSx0aGlzLl91bml0VGV4dD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSx0aGlzLl91bml0VGV4dC5jbGFzc05hbWU9S2lbInByaWNlLWF4aXMtY3VycmVuY3ktbGFiZWwtdGV4dCJdLHRoaXMuX3VuaXRMYWJlbERpdi5hcHBlbmRDaGlsZCh0aGlzLl91bml0VGV4dCksdGhpcy5fdW5pdEFycm93RG93bj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSx0aGlzLl91bml0QXJyb3dEb3duLmNsYXNzTmFtZT1LaVsicHJpY2UtYXhpcy1jdXJyZW5jeS1sYWJlbC1hcnJvdy1kb3duIl0sdGhpcy5fdW5pdEFycm93RG93bi5pbm5lckhUTUw9WWksdGhpcy5fdW5pdExhYmVsRGl2LmFwcGVuZENoaWxkKHRoaXMuX3VuaXRBcnJvd0Rvd24pLHRoaXMuX21ldHJpY0xhYmVsRGl2PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLHRoaXMuX21ldHJpY0xhYmVsRGl2LmNsYXNzTGlzdC5hZGQoS2kucm93LCJhcHBseS1jb21tb24tdG9vbHRpcCIpLHRoaXMuX21ldHJpY0xhYmVsRGl2LmRhdGFzZXQubmFtZT0ibWV0cmljLWxhYmVsLXNlbGVjdG9yIiwoMCxPaS5zZXRUb29sdGlwRGF0YSkodGhpcy5fbWV0cmljTGFiZWxEaXYsInRleHQiLChlPT50aGlzLl9tZXRyaWNUb29sdGlwQ29udGVudCgpKSksdGhpcy5fbWV0cmljVGV4dD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSx0aGlzLl9tZXRyaWNUZXh0LmNsYXNzTmFtZT1LaVsicHJpY2UtYXhpcy1jdXJyZW5jeS1sYWJlbC10ZXh0Il0sdGhpcy5fbWV0cmljTGFiZWxEaXYuYXBwZW5kQ2hpbGQodGhpcy5fbWV0cmljVGV4dCksdGhpcy5fbWV0cmljQXJyb3dEb3duPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLHRoaXMuX21ldHJpY0Fycm93RG93bi5jbGFzc05hbWU9S2lbInByaWNlLWF4aXMtY3VycmVuY3ktbGFiZWwtYXJyb3ctZG93biJdLHRoaXMuX21ldHJpY0Fycm93RG93bi5pbm5lckhUTUw9WWksdGhpcy5fbWV0cmljTGFiZWxEaXYuYXBwZW5kQ2hpbGQodGhpcy5fbWV0cmljQXJyb3dEb3duKSx0aGlzLl9jb250cm9sc0NvbnRhaW5lci5hcHBlbmRDaGlsZCh0aGlzLl9jdXJyZW5jeUxhYmVsRGl2KSx0aGlzLl9jb250cm9sc0NvbnRhaW5lci5hcHBlbmRDaGlsZCh0aGlzLl9tZWFzdXJlVW5pdElkTGFiZWxEaXYpLHRoaXMuX2NvbnRyb2xzQ29udGFpbmVyLmFwcGVuZENoaWxkKHRoaXMuX3VuaXRMYWJlbERpdiksdGhpcy5fY29udHJvbHNDb250YWluZXIuYXBwZW5kQ2hpbGQodGhpcy5fbWV0cmljTGFiZWxEaXYpLHRoaXMuZGlzYWJsZUN1cnJlbmN5KCksdGhpcy5kaXNhYmxlVW5pdCgpLHRoaXMuZGlzYWJsZU1ldHJpYygpLHRoaXMuc2V0Rm9udFNpemUoZSl9ZWxlbWVudCgpe3JldHVybiB0aGlzLl9jdXJyZW5jeUFuZFVuaXRMYWJlbHNXcmFwcGVyfWN1cnJlbmN5TGFiZWxFbGVtZW50KCl7cmV0dXJuIHRoaXMuX2N1cnJlbmN5TGFiZWxEaXZ9dW5pdExhYmVsRWxlbWVudCgpe3JldHVybiB0aGlzLl91bml0TGFiZWxEaXZ9bWV0cmljTGFiZWxFbGVtZW50KCl7cmV0dXJuIHRoaXMuX21ldHJpY0xhYmVsRGl2fWlzRW5hYmxlZCgpe3JldHVybiB0aGlzLmN1cnJlbmN5TGFiZWxFbmFibGVkKCl8fHRoaXMudW5pdExhYmVsRW5hYmxlZCgpfHx0aGlzLm1lYXN1cmVVbml0SWRMYWJsZUVuYWJsZWQoKXx8dGhpcy5tZXRyaWNMYWJlbEVuYWJsZWQoKX1pc0hpZGRlbigpe3JldHVybiB0aGlzLl9jdXJyZW5jeUFuZFVuaXRMYWJlbHNXcmFwcGVyLmNsYXNzTGlzdC5jb250YWlucyhLaS5oaWRkZW4pfXNldEN1cnJlbmN5RXhwYW5kZWQoZSl7dGhpcy5fY3VycmVuY3lMYWJlbERpdi5jbGFzc0xpc3QudG9nZ2xlKEtpLmV4cGFuZGVkLGUpfXNldFVuaXRFeHBhbmRlZChlKXt0aGlzLl91bml0TGFiZWxEaXYuY2xhc3NMaXN0LnRvZ2dsZShLaS5leHBhbmRlZCxlKX1zZXRNZXRyaWNFeHBhbmRlZChlKXt0aGlzLl9tZXRyaWNMYWJlbERpdi5jbGFzc0xpc3QudG9nZ2xlKEtpLmV4cGFuZGVkLGUpfXdpZHRoKCl7aWYobnVsbCE9PXRoaXMuX3dpZHRoKXJldHVybiB0aGlzLl93aWR0aDtsZXQgZT0wO2lmKHRoaXMuY3VycmVuY3lMYWJlbEVuYWJsZWQoKSl7Y29uc3QgdD10aGlzLl9jdXJyZW5jeVRleHQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksaT10aGlzLl9jdXJyZW5jeUFycm93RG93bi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtlPU1hdGgubWF4KGUsdC53aWR0aCtpLndpZHRoKzIqdGhpcy5fdGV4dE1hcmdpbkFuZFBhZGRpbmcoKSl9aWYodGhpcy5tZWFzdXJlVW5pdElkTGFibGVFbmFibGVkKCkpe2NvbnN0IHQ9dGhpcy5fbWVhc3VyZVVuaXRJZFRleHQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7ZT1NYXRoLm1heChlLHQud2lkdGgrMip0aGlzLl90ZXh0TWFyZ2luQW5kUGFkZGluZygpKX1pZih0aGlzLnVuaXRMYWJlbEVuYWJsZWQoKSl7Y29uc3QgdD10aGlzLl91bml0VGV4dC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxpPXRoaXMuX3VuaXRBcnJvd0Rvd24uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7ZT1NYXRoLm1heChlLHQud2lkdGgraS53aWR0aCsyKnRoaXMuX3RleHRNYXJnaW5BbmRQYWRkaW5nKCkpfWlmKHRoaXMubWV0cmljTGFiZWxFbmFibGVkKCkpe2NvbnN0IHQ9dGhpcy5fbWV0cmljVGV4dC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxpPXRoaXMuX21ldHJpY0Fycm93RG93bi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtlPU1hdGgubWF4KGUsdC53aWR0aCtpLndpZHRoKzIqdGhpcy5fdGV4dE1hcmdpbkFuZFBhZGRpbmcoKSl9cmV0dXJuIHRoaXMuX3dpZHRoPWV9ZHJhd0xhYmVsKGUsdCxpKXtpZighdGhpcy5pc0VuYWJsZWQoKSlyZXR1cm47Y29uc3Qgcz1NYXRoLnJvdW5kKE51bWJlcihLaS5jc3Nfd3JhcHBlcl9tYXJnaW4pKmkpLG49KDAsCmJpLmNlaWxlZEV2ZW4pKHQqaSktMipzLHI9TWF0aC5yb3VuZCh0aGlzLmxhYmVsQm90dG9tKCkqaSksbz1yLTIqcyxhPU1hdGgucm91bmQoTnVtYmVyKEtpLmNzc192YWx1ZV9jdXJyZW5jeV9sYWJlbF9yYWRpdXMpKmkpO2UuZmlsbFN0eWxlPWdldENvbXB1dGVkU3R5bGUodGhpcy5fY3VycmVuY3lBbmRVbml0TGFiZWxzV3JhcHBlcikuYmFja2dyb3VuZENvbG9yLGUuZmlsbFJlY3QoMCwwLE1hdGguY2VpbCh0KmkpLHIpO2NvbnN0IGw9W107bC5wdXNoKHRoaXMuY3VycmVuY3lMYWJlbEVuYWJsZWQoKT90aGlzLl9jdXJyZW5jeVRleHQudGV4dENvbnRlbnQ/PyIiOiIiKSxsLnB1c2godGhpcy5tZWFzdXJlVW5pdElkTGFibGVFbmFibGVkKCk/dGhpcy5fbWVhc3VyZVVuaXRJZFRleHQudGV4dENvbnRlbnQ/PyIiOiIiKSxsLnB1c2godGhpcy51bml0TGFiZWxFbmFibGVkKCk/dGhpcy5fdW5pdFRleHQudGV4dENvbnRlbnQ/PyIiOiIiKSxlLmZvbnQ9KDAsUmkubWFrZUZvbnQpKHRoaXMuX2ZvbnRTaXplLFdpLkNIQVJUX0ZPTlRfRkFNSUxZX1dWLnZhbHVlKCkpO2NvbnN0IGM9bmV3IEJpLlRleHRXaWR0aENhY2hlO2xldCBoPTA7Y29uc3QgZD1bXTtsLmZvckVhY2goKHQ9PntsZXQgaT0wOyIiIT09dCYmKGk9Yy55TWlkQ29ycmVjdGlvbihlLHQpLGgrKyksZC5wdXNoKGkpfSkpO2NvbnN0IHU9by9oO2UuYmVnaW5QYXRoKCk7Y29uc3QgcD1nZXRDb21wdXRlZFN0eWxlKHRoaXMuX2NvbnRyb2xzQ29udGFpbmVyKTtlLmZpbGxTdHlsZT1wLmJhY2tncm91bmRDb2xvcixlLnN0cm9rZVN0eWxlPXAuYm9yZGVyQ29sb3IsKDAsRGkuZHJhd1JvdW5kUmVjdCkoZSxzLHMsbixvLGEpLGUuZmlsbCgpLGUuc3Ryb2tlKCksZS5maWxsU3R5bGU9Z2V0Q29tcHV0ZWRTdHlsZSh0aGlzLl9jdXJyZW5jeUxhYmVsRGl2KS5jb2xvcixlLnRleHRCYXNlbGluZT0ibWlkZGxlIixlLnRleHRBbGlnbj0ibGVmdCI7Y29uc3QgXz1NYXRoLnJvdW5kKHRoaXMuX3RleHRNYXJnaW5BbmRQYWRkaW5nKCkqaSkrcyxtPXUvMjtsZXQgZz1zK207bC5mb3JFYWNoKCgodCxzKT0+eyIiIT09dCYmKCgwLEt0LmRyYXdTY2FsZWQpKGUsaSxpLCgoKT0+e2UuZmlsbFRleHQodCxfL2ksKGcrZFtzXSkvaSl9KSksZz1NYXRoLmNlaWwoZysyKm0pKX0pKX1zZXRIaWRkZW4oZSl7dGhpcy5fY3VycmVuY3lBbmRVbml0TGFiZWxzV3JhcHBlci5jbGFzc0xpc3QudG9nZ2xlKEtpLmhpZGRlbixlKX1lbmFibGVDdXJyZW5jeSgpe3RoaXMuX2N1cnJlbmN5TGFiZWxEaXYuY2xhc3NMaXN0LnJlbW92ZSgianMtaGlkZGVuIiksdGhpcy5fcmVzZXRTaXplc0FuZFZpc2liaWxpdHkoKX1kaXNhYmxlQ3VycmVuY3koKXt0aGlzLl9jdXJyZW5jeUxhYmVsRGl2LmNsYXNzTGlzdC5hZGQoImpzLWhpZGRlbiIpLHRoaXMuX3Jlc2V0U2l6ZXNBbmRWaXNpYmlsaXR5KCl9ZW5hYmxlVW5pdCgpe3RoaXMuX3VuaXRMYWJlbERpdi5jbGFzc0xpc3QucmVtb3ZlKCJqcy1oaWRkZW4iKSx0aGlzLl9yZXNldFNpemVzQW5kVmlzaWJpbGl0eSgpfWRpc2FibGVVbml0KCl7dGhpcy5fdW5pdExhYmVsRGl2LmNsYXNzTGlzdC5hZGQoImpzLWhpZGRlbiIpLHRoaXMuX3Jlc2V0U2l6ZXNBbmRWaXNpYmlsaXR5KCl9ZW5hYmxlTWVhc3VyZVVuaXRJZCgpe3RoaXMuX21lYXN1cmVVbml0SWRMYWJlbERpdi5jbGFzc0xpc3QucmVtb3ZlKCJqcy1oaWRkZW4iKSx0aGlzLl9yZXNldFNpemVzQW5kVmlzaWJpbGl0eSgpfWRpc2FibGVNZWFzdXJlVW5pdElkKCl7dGhpcy5fbWVhc3VyZVVuaXRJZExhYmVsRGl2LmNsYXNzTGlzdC5hZGQoImpzLWhpZGRlbiIpLHRoaXMuX3Jlc2V0U2l6ZXNBbmRWaXNpYmlsaXR5KCl9ZW5hYmxlTWV0cmljKCl7dGhpcy5fbWV0cmljTGFiZWxEaXYuY2xhc3NMaXN0LnJlbW92ZSgianMtaGlkZGVuIiksdGhpcy5fcmVzZXRTaXplc0FuZFZpc2liaWxpdHkoKX1kaXNhYmxlTWV0cmljKCl7dGhpcy5fbWV0cmljTGFiZWxEaXYuY2xhc3NMaXN0LmFkZCgianMtaGlkZGVuIiksdGhpcy5fcmVzZXRTaXplc0FuZFZpc2liaWxpdHkoKX1jdXJyZW5jeUxhYmVsRW5hYmxlZCgpe3JldHVybiF0aGlzLl9jdXJyZW5jeUxhYmVsRGl2LmNsYXNzTGlzdC5jb250YWlucygianMtaGlkZGVuIil9dW5pdExhYmVsRW5hYmxlZCgpe3JldHVybiF0aGlzLl91bml0TGFiZWxEaXYuY2xhc3NMaXN0LmNvbnRhaW5zKCJqcy1oaWRkZW4iKX1tZWFzdXJlVW5pdElkTGFibGVFbmFibGVkKCl7cmV0dXJuIXRoaXMuX21lYXN1cmVVbml0SWRMYWJlbERpdi5jbGFzc0xpc3QuY29udGFpbnMoImpzLWhpZGRlbiIpfW1ldHJpY0xhYmVsRW5hYmxlZCgpe3JldHVybiF0aGlzLl9tZXRyaWNMYWJlbERpdi5jbGFzc0xpc3QuY29udGFpbnMoImpzLWhpZGRlbiIpfWN1cnJlbmN5Q29udmVyc2lvbkF2YWlsYWJsZSgpe3JldHVybiF0aGlzLl9jdXJyZW5jeUxhYmVsRGl2LmNsYXNzTGlzdC5jb250YWlucygicmVhZG9ubHkiKX11bml0Q29udmVyc2lvbkF2YWlsYWJsZSgpe3JldHVybiF0aGlzLl91bml0TGFiZWxEaXYuY2xhc3NMaXN0LmNvbnRhaW5zKCJyZWFkb25seSIpfW1ldHJpY0NvbnZlcnNpb25BdmFpbGFibGUoKXtyZXR1cm4hdGhpcy5fbWV0cmljTGFiZWxEaXYuY2xhc3NMaXN0LmNvbnRhaW5zKCJyZWFkb25seSIpfXNldEN1cnJlbmN5SW5mbyhlKXtpZih0aGlzLl9jdXJyZW5jeUluZm89PT1lKXJldHVybiExO3RoaXMuX2N1cnJlbmN5SW5mbz1lO2NvbnN0IHQ9bnVsbD09PWUuc2VsZWN0ZWRDdXJyZW5jeT9wLnQobnVsbCx7Y29udGV4dDoicHJpY2UgY29udmVyc2lvbiBsYWJlbCJ9LGkoMjE3MTYxKSk6KDAsbC5lbnN1cmVEZWZpbmVkKShlLmRpc3BsYXllZFZhbHVlcy5nZXQoZS5zZWxlY3RlZEN1cnJlbmN5KSk7cmV0dXJuIHRoaXMuX2N1cnJlbmN5VGV4dC50ZXh0Q29udGVudCE9PXQmJih0aGlzLl9jdXJyZW5jeVRleHQudGV4dENvbnRlbnQ9dCx0aGlzLl93aWR0aD1udWxsKSxYaSh0aGlzLl9jdXJyZW5jeUxhYmVsRGl2LHRoaXMuX2N1cnJlbmN5QXJyb3dEb3duLGUucmVhZE9ubHkpJiYodGhpcy5fd2lkdGg9bnVsbCksITB9c2V0VW5pdEluZm8oZSl7CmlmKG51bGwhPT10aGlzLl91bml0SW5mbyYmdGhpcy5fdW5pdEluZm8uc2VsZWN0ZWRVbml0PT09ZS5zZWxlY3RlZFVuaXQmJjA9PT10aGlzLl91bml0SW5mby5hdmFpbGFibGVHcm91cHMuc2l6ZT09KDA9PT1lLmF2YWlsYWJsZUdyb3Vwcy5zaXplKSYmdGhpcy5fdW5pdEluZm8ub3JpZ2luYWxVbml0cy5zaXplPT09ZS5vcmlnaW5hbFVuaXRzLnNpemUpcmV0dXJuIHRoaXMuX3VuaXRJbmZvPWUsITE7dGhpcy5fdW5pdEluZm89ZTtjb25zdCB0PW51bGw9PT1lLnNlbGVjdGVkVW5pdD9wLnQobnVsbCx7Y29udGV4dDoicHJpY2UgY29udmVyc2lvbiBsYWJlbCJ9LGkoMjE3MTYxKSk6KDAsbC5lbnN1cmVEZWZpbmVkKShlLm5hbWVzLmdldChlLnNlbGVjdGVkVW5pdCkpO3JldHVybiB0aGlzLl91bml0VGV4dC50ZXh0Q29udGVudCE9PXQmJih0aGlzLl91bml0VGV4dC50ZXh0Q29udGVudD10LHRoaXMuX3dpZHRoPW51bGwpLFhpKHRoaXMuX3VuaXRMYWJlbERpdix0aGlzLl91bml0QXJyb3dEb3duLDA9PT1lLmF2YWlsYWJsZUdyb3Vwcy5zaXplKSYmKHRoaXMuX3dpZHRoPW51bGwpLCEwfXNldE1lYXN1cmVVbml0SWRJbmZvKGUpe2lmKHRoaXMuX21lYXN1cmVVbml0SWRJbmZvPT09ZSlyZXR1cm4hMTt0aGlzLl9tZWFzdXJlVW5pdElkSW5mbz1lO2NvbnN0IHQ9bnVsbD09PWUuc2VsZWN0ZWRNZWFzdXJlVW5pdElkP3AudChudWxsLHtjb250ZXh0OiJwcmljZSBjb252ZXJzaW9uIGxhYmVsIn0saSgyMTcxNjEpKTooMCxsLmVuc3VyZURlZmluZWQpKGUubmFtZXMuZ2V0KGUuc2VsZWN0ZWRNZWFzdXJlVW5pdElkKSk7cmV0dXJuIHRoaXMuX21lYXN1cmVVbml0SWRUZXh0LnRleHRDb250ZW50IT09dCYmKHRoaXMuX21lYXN1cmVVbml0SWRUZXh0LnRleHRDb250ZW50PXQsdGhpcy5fd2lkdGg9bnVsbCksWGkodGhpcy5fbWVhc3VyZVVuaXRJZExhYmVsRGl2LG51bGwsMD09PWUubmFtZXMuc2l6ZSwhMCkmJih0aGlzLl93aWR0aD1udWxsKSwhMH1zZXRNZXRyaWNJbmZvKGUpe2lmKHRoaXMuX21ldHJpY0luZm89PT1lKXJldHVybiExO3RoaXMuX21ldHJpY0luZm89ZTtjb25zdCB0PW51bGw9PT1lLnNlbGVjdGVkTWV0cmljSWQ/cC50KG51bGwse2NvbnRleHQ6InByaWNlIGNvbnZlcnNpb24gbGFiZWwifSxpKDIxNzE2MSkpOigwLGwuZW5zdXJlRGVmaW5lZCkoZS5uYW1lcy5nZXQoZS5zZWxlY3RlZE1ldHJpY0lkKSk7cmV0dXJuIHRoaXMuX21ldHJpY1RleHQudGV4dENvbnRlbnQhPT10JiYodGhpcy5fbWV0cmljVGV4dC50ZXh0Q29udGVudD10LHRoaXMuX3dpZHRoPW51bGwpLFhpKHRoaXMuX21ldHJpY0xhYmVsRGl2LHRoaXMuX21ldHJpY0Fycm93RG93bixlLnJlYWRPbmx5KSYmKHRoaXMuX3dpZHRoPW51bGwpLCEwfWN1cnJlbmN5SW5mbygpe3JldHVybiB0aGlzLl9jdXJyZW5jeUluZm99dW5pdEluZm8oKXtyZXR1cm4gdGhpcy5fdW5pdEluZm99bWVhc3VyZVVuaXRJZEluZm8oKXtyZXR1cm4gdGhpcy5fbWVhc3VyZVVuaXRJZEluZm99bWV0cmljSW5mbygpe3JldHVybiB0aGlzLl9tZXRyaWNJbmZvfXNldEZvbnRTaXplKGUpe3RoaXMuX2ZvbnRTaXplIT09ZSYmKHRoaXMuX2ZvbnRTaXplPWUsdGhpcy5fY3VycmVuY3lMYWJlbERpdi5zdHlsZS5mb250U2l6ZT1lKyJweCIsdGhpcy5fbWVhc3VyZVVuaXRJZExhYmVsRGl2LnN0eWxlLmZvbnRTaXplPWUrInB4Iix0aGlzLl91bml0TGFiZWxEaXYuc3R5bGUuZm9udFNpemU9ZSsicHgiLHRoaXMuX21ldHJpY0xhYmVsRGl2LnN0eWxlLmZvbnRTaXplPWUrInB4Iix0aGlzLl93aWR0aD1udWxsLHRoaXMuX2xhYmVsQm90dG9tPW51bGwpfWxhYmVsQm90dG9tKCl7aWYobnVsbCE9PXRoaXMuX2xhYmVsQm90dG9tKXJldHVybiB0aGlzLl9sYWJlbEJvdHRvbTtjb25zdCBlPXRoaXMuX2NvbnRyb2xzQ29udGFpbmVyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLHQ9dGhpcy5fY3VycmVuY3lBbmRVbml0TGFiZWxzV3JhcHBlci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxpPWUueS10Lnk7cmV0dXJuIHRoaXMuX2xhYmVsQm90dG9tPWUuaGVpZ2h0KzIqaX1fcmVzZXRTaXplc0FuZFZpc2liaWxpdHkoKXt0aGlzLl93aWR0aD1udWxsLHRoaXMuX2xhYmVsQm90dG9tPW51bGwsdGhpcy5fdXBkYXRlVmlzaWJpbGl0eSgpfV90ZXh0TWFyZ2luQW5kUGFkZGluZygpe3JldHVybiBOdW1iZXIoS2kuY3NzX3dyYXBwZXJfbWFyZ2luKStOdW1iZXIoS2kuY3NzX3Jvd19sZWZ0X3JpZ2h0X3BhZGRpbmcpKzJ9X2N1cnJlbmN5VG9vbHRpcENvbnRlbnQoKXtjb25zdCBlPXRoaXMuX2N1cnJlbmN5SW5mbztyZXR1cm4gbnVsbD09PWU/IiI6bnVsbD09PWUuc2VsZWN0ZWRDdXJyZW5jeT9BcnJheS5mcm9tKGUuY3VycmVuY2llcykubWFwKCh0PT4oMCxsLmVuc3VyZURlZmluZWQpKGUuZGlzcGxheWVkVmFsdWVzLmdldCh0KSkpKS5qb2luKCIsICIpOmUucmVhZE9ubHk/cC50KG51bGwse2NvbnRleHQ6InByaWNlIGNvbnZlcnNpb24gbGFiZWwifSxpKDE5MTQ1NSkpOnAudChudWxsLHtjb250ZXh0OiJwcmljZSBjb252ZXJzaW9uIGxhYmVsIn0saSg3ODkwNDkpKX1fdW5pdFRvb2x0aXBDb250ZW50KCl7Y29uc3QgZT10aGlzLl91bml0SW5mbztyZXR1cm4gbnVsbD09PWU/IiI6bnVsbD09PWUuc2VsZWN0ZWRVbml0P0FycmF5LmZyb20oZS51bml0cykubWFwKCh0PT4oMCxsLmVuc3VyZURlZmluZWQpKGUubmFtZXMuZ2V0KHQpKSkpLmpvaW4oIiwgIik6MD09PWUuYXZhaWxhYmxlR3JvdXBzLnNpemU/cC50KG51bGwse2NvbnRleHQ6InByaWNlIGNvbnZlcnNpb24gbGFiZWwifSxpKDU1Njc2NSkpOnAudChudWxsLHtjb250ZXh0OiJwcmljZSBjb252ZXJzaW9uIGxhYmVsIn0saSg0MDUwMTMpKX1fbWVhc3VyZVVuaXRJZFRvb2x0aXBDb250ZW50KCl7Y29uc3QgZT10aGlzLl9tZWFzdXJlVW5pdElkSW5mbztyZXR1cm4gbnVsbD09PWU/IiI6bnVsbD09PWUuc2VsZWN0ZWRNZWFzdXJlVW5pdElkP0FycmF5LmZyb20oZS5tZWFzdXJlVW5pdElkcykubWFwKCh0PT4oMCwKbC5lbnN1cmVEZWZpbmVkKShlLm5hbWVzLmdldCh0KSkpKS5qb2luKCIsICIpOmUuZGVzY3JpcHRpb25zLmdldChlLnNlbGVjdGVkTWVhc3VyZVVuaXRJZCl8fCIifV9tZXRyaWNUb29sdGlwQ29udGVudCgpe2NvbnN0IGU9dGhpcy5fbWV0cmljSW5mbztyZXR1cm4gbnVsbD09PWU/IiI6bnVsbD09PWUuc2VsZWN0ZWRNZXRyaWNJZD9BcnJheS5mcm9tKGUubWV0cmljcykubWFwKCh0PT4oMCxsLmVuc3VyZURlZmluZWQpKGUubmFtZXMuZ2V0KHQpKSkpLmpvaW4oIiwgIik6ZS5yZWFkT25seT9wLnQobnVsbCx7Y29udGV4dDoicHJpY2UgY29udmVyc2lvbiBsYWJlbCJ9LGkoOTk0ODQ1KSk6cC50KG51bGwse2NvbnRleHQ6InByaWNlIGNvbnZlcnNpb24gbGFiZWwifSxpKDgzMzc0NikpfV91cGRhdGVWaXNpYmlsaXR5KCl7Y29uc3QgZT10aGlzLmlzRW5hYmxlZCgpO3RoaXMuX2N1cnJlbmN5QW5kVW5pdExhYmVsc1dyYXBwZXIuY2xhc3NMaXN0LnRvZ2dsZSgianMtaGlkZGVuIiwhZSl9fWFzeW5jIGZ1bmN0aW9uIEppKGUsdCxzLG4scil7Y29uc3R7VW5pdENvbnZlcnNpb25SZW5kZXJlcjpvfT1hd2FpdCBQcm9taXNlLmFsbChbaS5lKDE2NTk4KSxpLmUoODQzMDYpLGkuZSgyOTI5NiksaS5lKDUyMzk2KSxpLmUoNjAwNjIpLGkuZSg0NjkwNyksaS5lKDEzNDkyKSxpLmUoMzc3NDYpLGkuZSg4MTA3MiksaS5lKDEwMzg1KSxpLmUoNTIwNjUpLGkuZSg2NjA1KSxpLmUoODkyMDQpLGkuZSgzMjE3NiksaS5lKDIwMiksaS5lKDg4NjQxKSxpLmUoNzA2NTYpLGkuZSgzMjg1NyksaS5lKDUyOTYxKSxpLmUoMzIzODcpLGkuZSgzOTYwOSksaS5lKDM1OTY0KSxpLmUoODI5NyldKS50aGVuKGkuYmluZChpLDc2MzgwMikpO3JldHVybiBuZXcgbyhlLHMsdCxuLHIpfWFzeW5jIGZ1bmN0aW9uIFFpKGUsdCxzKXtjb25zdHtDdXJyZW5jeU1lbnVSZXN1bHRFdmVudHM6bn09YXdhaXQgaS5lKDYzODg1KS50aGVuKGkuYmluZChpLDIyMDM5KSk7cmV0dXJuIG5ldyBuKGUsdCxzKX12YXIgZXM9aSg1MDkwNCk7Y2xhc3MgdHN7Y29uc3RydWN0b3IoZSl7Y29uc3R7YWN0aW9uOnQscHJvcGVydHk6aSx1bmRvTW9kZWw6cyx1bmRvVGV4dDpuLGNhbGxiYWNrOnI9bnVsbH09ZTt0aGlzLl9wcm9wZXJ0eT1pLHRoaXMuX3VuZG9Nb2RlbD1zLHRoaXMuX3VuZG9UZXh0PW4sdGhpcy5fYWN0aW9uPXQsdGhpcy5zZXRWYWx1ZShpLnZhbHVlKCkpLGkuc3Vic2NyaWJlKHRoaXMsdGhpcy5fcHJvcGVydHlDaGFuZ2VkKSxudWxsIT09cj90LnVwZGF0ZSh7b25FeGVjdXRlOnIuYmluZCh0aGlzKX0pOnQudXBkYXRlKHtvbkV4ZWN1dGU6dGhpcy5fb25BY3Rpb25DYWxsYmFjay5iaW5kKHRoaXMpfSl9ZGVzdHJveSgpe3RoaXMuX3Byb3BlcnR5LnVuc3Vic2NyaWJlKHRoaXMsdGhpcy5fcHJvcGVydHlDaGFuZ2VkKX12YWx1ZSgpe3JldHVybiB0aGlzLl9hY3Rpb24uaXNDaGVja2VkKCl9c2V0VmFsdWUoZSl7dGhpcy5fYWN0aW9uLnVwZGF0ZSh7Y2hlY2tlZDpCb29sZWFuKGUpfSl9X29uQWN0aW9uQ2FsbGJhY2soKXt0aGlzLl91bmRvTW9kZWwuc2V0UHJvcGVydHkodGhpcy5fcHJvcGVydHksdGhpcy52YWx1ZSgpLHRoaXMuX3VuZG9UZXh0KX1fcHJvcGVydHlDaGFuZ2VkKGUpe3RoaXMuc2V0VmFsdWUoZS52YWx1ZSgpKX19Y2xhc3MgaXMgZXh0ZW5kcyBlcy5BY3Rpb257Y29uc3RydWN0b3IoZSx0KXtzdXBlcihlKSx0aGlzLl9iaW5kaW5nPW5ldyB0cyh7YWN0aW9uOnRoaXMsLi4udH0pfWRlc3Ryb3koKXt0aGlzLl9iaW5kaW5nLmRlc3Ryb3koKSxzdXBlci5kZXN0cm95KCl9fXZhciBzcz1pKDM1NjQzNCksbnM9aSgyNTI0MjcpLHJzPWkoMTUyNzY2KSxvcz1pKDE2OTg0NSksYXM9aSg0NzcxNTUpO2Z1bmN0aW9uIGxzKGUsdCxpKXtyZXR1cm4gbnVsbD09PWk/W106aS5maWx0ZXIoKGk9PntpZighaS5pc1Zpc2libGUoKXx8aS5pZ25vcmVBbGlnbm1lbnQoKSlyZXR1cm4hMTtjb25zdHt0b3RhbDpzfT1pLnRvcEJvdHRvbVRvdGFsSGVpZ2h0KGUpLG49aS5jb29yZGluYXRlKCk7cmV0dXJuIG4+LXMmJm48dCtzfSkpfWkoMTQ0MTEyKTtjb25zdCBjcz1uZXcgeS5UcmFuc2xhdGVkU3RyaW5nKCJjaGFuZ2Ugbm8gb3ZlcmxhcHBpbmcgbGFiZWxzIixwLnQobnVsbCx2b2lkIDAsaSg5MTc1OTApKSksaHM9bmV3IHkuVHJhbnNsYXRlZFN0cmluZygidG9nZ2xlIGF1dG8gc2NhbGUiLHAudChudWxsLHZvaWQgMCxpKDU5OTE0MSkpKSxkcz1uZXcgeS5UcmFuc2xhdGVkU3RyaW5nKCJ0b2dnbGUgbG9nIHNjYWxlIixwLnQobnVsbCx2b2lkIDAsaSg3Nzc0ODUpKSksdXM9cC50KG51bGwse2NvbnRleHQ6InNjYWxlX21lbnUifSxpKDI3ODc1MSkpLHBzPXAudChudWxsLHtjb250ZXh0OiJzY2FsZV9tZW51In0saSg5MTE3MTEpKSxfcz1wLnQobnVsbCx7Y29udGV4dDoic2NhbGVfbWVudSJ9LGkoODQ2NzkpKSxtcz1wLnQobnVsbCx7Y29udGV4dDoic2NhbGVfbWVudSJ9LGkoMjEzMDc1KSksZ3M9cC50KG51bGwse2NvbnRleHQ6InNjYWxlX21lbnUifSxpKDkxNjI3NykpLGZzPXAudChudWxsLHtjb250ZXh0OiJzY2FsZV9tZW51In0saSgzNDI5MTUpKSxTcz1wLnQobnVsbCx7Y29udGV4dDoic2NhbGVfbWVudSJ9LGkoNjQyODQzKSksdnM9cC50KG51bGwse2NvbnRleHQ6InNjYWxlX21lbnUifSxpKDY0MDA5NikpLHlzPXAudChudWxsLHtjb250ZXh0OiJzY2FsZV9tZW51In0saSgxOTcxMDUpKSxicz1wLnQobnVsbCx7Y29udGV4dDoic2NhbGVfbWVudSJ9LGkoODg2MDEzKSksd3M9cC50KG51bGwse2NvbnRleHQ6InNjYWxlX21lbnUifSxpKDc0OTE3OSkpLENzPXAudChudWxsLHtjb250ZXh0OiJzY2FsZV9tZW51In0saSg4NDc4MzQpKSxQcz1wLnQobnVsbCx7Y29udGV4dDoic2NhbGVfbWVudSJ9LGkoNDcxOTgwKSk7Y29uc3QgVHM9ZnVuY3Rpb24oZSl7Y29uc3QgdD1uZXcgbnMuTGltaXRlZFByZWNpc2lvbk51bWVyaWNGb3JtYXR0ZXIoZSk7cmV0dXJuKGUsaSk9PigwLGEuaXNOdW1iZXIpKGkpJiYhZS5pc0xvZygpP3QuZm9ybWF0KGkpOiIifSg0KSx4cz0oMCxxLmlzRmVhdHVyZXNldEVuYWJsZWQpKCJjdXJyZW5jeV9tZW51X2Rpc2FibGVkIiksTXM9KDAsCnEuaXNGZWF0dXJlc2V0RW5hYmxlZCkoInVuaXRfbWVudV9kaXNhYmxlZCIpLElzPSgwLHEuaXNGZWF0dXJlc2V0RW5hYmxlZCkoIm1ldHJpY19tZW51X2Rpc2FibGVkIiksTHM9e2NvbnRleHRNZW51RW5hYmxlZDohMCxjdXJyZW5jeUNvbnZlcnNpb25FbmFibGVkOiExLHVuaXRDb252ZXJzaW9uRW5hYmxlZDohMSxtZXRyaWNDb252ZXJzaW9uRW5hYmxlZDohMSxjb3VudGRvd25FbmFibGVkOiEwLGNvbnRleHRNZW51OntnZW5lcmFsOiEwLHNvdXJjZTohMH0scHJlc3NlZE1vdXNlTW92ZVNjYWxlOiEwLG1vdXNlV2hlZWxTY2FsZTohMCxwaW5jaFNjYWxlOiEwLGNyb3BwZWRUaWNrTWFya3M6ITB9O3ZhciBBcyxrczshZnVuY3Rpb24oZSl7ZVtlLkxhYmVsT2Zmc2V0PTRdPSJMYWJlbE9mZnNldCIsZVtlLkRlZmF1bHRPcHRpbWFsV2lkdGg9MzRdPSJEZWZhdWx0T3B0aW1hbFdpZHRoIixlW2UuV2hlZWxTY2FsZUNvZWZmPTE1XT0iV2hlZWxTY2FsZUNvZWZmIixlW2UuQ3VycmVuY3lMYWJlbEZvbnRTaXplPTEyXT0iQ3VycmVuY3lMYWJlbEZvbnRTaXplIn0oQXN8fChBcz17fSkpLGZ1bmN0aW9uKGUpe2VbZS5CYWNrPTBdPSJCYWNrIixlW2UuVG9wPTFdPSJUb3AiLGVbZS5BbGw9Ml09IkFsbCJ9KGtzfHwoa3M9e30pKTtjbGFzcyBEc3tjb25zdHJ1Y3RvcihlLHQsaSxzLG4scixvLGwsYyl7dGhpcy5fYWN0aW9ucz1udWxsLHRoaXMuX3ByaWNlU2NhbGU9bnVsbCx0aGlzLl9zY2FsZU1vZGVCdXR0b25zPW51bGwsdGhpcy5fc2NhbGVNb2RlQnV0dG9uc1Byb21pc2U9bnVsbCx0aGlzLl93aWR0aENhY2hlPW5ldyBCaS5UZXh0V2lkdGhDYWNoZSgxZTMpLHRoaXMuX2NvbG9yPW51bGwsdGhpcy5fZm9udFNpemU9bnVsbCx0aGlzLl9pc1Zpc2libGU9ITAsdGhpcy5fY3VycmVuY3lNZW51PW51bGwsdGhpcy5fdW5pdE1lbnU9bnVsbCx0aGlzLl9tZXRyaWNNZW51PW51bGwsdGhpcy5fc2l6ZT0oMCx5dC5zaXplKSh7d2lkdGg6MCxoZWlnaHQ6MH0pLHRoaXMuX2N1cnJlbnRDdXJzb3JDbGFzc05hbWU9IiIsdGhpcy5fZGVzdHJveWVkPSExLHRoaXMuX2hpZ2hsaWdodGVkPSExLHRoaXMuX2hpZ2hsaWdodENvbG9yQ2FjaGU9bnVsbCx0aGlzLl9tb3VzZVdoZWVsSGVscGVyPW51bGwsdGhpcy5fZHJhZ1NjYWxlQWN0aXZlPSExLHRoaXMuX29mZnNldD1OYU4sdGhpcy5fcGluY2hpbmc9ITEsdGhpcy5fbGFzdEhpdHRlc3RSZXN1bHQ9bnVsbCx0aGlzLl9pc0hvdmVyZWQ9bmV3IGguV2F0Y2hlZFZhbHVlKCExKSx0aGlzLl9zZWxlY3RlZFZpYVRhcD1uZXcgaC5XYXRjaGVkVmFsdWUoITEpLHRoaXMuX3JlY2FsY0N1cnJlbmN5VW5pdEFuZE1ldHJpY1Zpc2liaWxpdHk9KCk9PntpZihudWxsPT09dGhpcy5fY3VycmVuY3lMYWJlbClyZXR1cm47Y29uc3QgZT0oMCxycy5hY3R1YWxDdXJyZW5jeVVuaXRNZXRyaWNWaXNpYmlsaXR5KSgpLnZhbHVlKCk7bGV0IHQ9IXRoaXMuX3BhbmUudmlzdWFsbHlDb2xsYXBzZWQoKS52YWx1ZSgpO2lmKHQpc3dpdGNoKGUpe2Nhc2UiYWx3YXlzT2ZmIjp0PSExO2JyZWFrO2Nhc2UidmlzaWJsZU9uTW91c2VPdmVyIjpjb25zdCBlPXRoaXMuX2NoYXJ0LmFueVByaWNlQXhpc0hvdmVyZWQoKS52YWx1ZSgpLGk9ISF0aGlzLl9jdXJyZW5jeU1lbnUscz0hIXRoaXMuX3VuaXRNZW51O3Q9ZXx8aXx8czticmVhaztjYXNlInZpc2libGVPblRhcFNlbGVjdGlvbiI6dD10aGlzLl9zZWxlY3RlZFZpYVRhcC52YWx1ZSgpfXRoaXMuX2N1cnJlbmN5TGFiZWwuc2V0SGlkZGVuKCF0KX0sdGhpcy5faGFuZGxlQWN0dWFsQXV0b0xvZ0J1dHRvbnNWaXNpYmlsaXR5PWFzeW5jIGU9Pntjb25zdCB0PWUudmFsdWUoKTtpZigiYWx3YXlzT2ZmIj09PXQpdGhpcy5fc2NhbGVNb2RlQnV0dG9ucyYmdGhpcy5fZGVzdHJveVNjYWxlTW9kZUJ1dHRvbnMoKTtlbHNle2lmKCF0aGlzLl9zY2FsZU1vZGVCdXR0b25zKXt0aGlzLl9zY2FsZU1vZGVCdXR0b25zUHJvbWlzZT10aGlzLl9zY2FsZU1vZGVCdXR0b25zUHJvbWlzZT8/dGhpcy5fY3JlYXRlU2NhbGVNb2RlQnV0dG9ucygpO3RyeXt0aGlzLl9zY2FsZU1vZGVCdXR0b25zPWF3YWl0IHRoaXMuX3NjYWxlTW9kZUJ1dHRvbnNQcm9taXNlfWNhdGNoKGUpe2lmKCgwLHFlLmlzQWJvcnRFcnJvcikoZSkpcmV0dXJufXRoaXMuX3BhbmUudmlzdWFsbHlDb2xsYXBzZWQoKS5zdWJzY3JpYmUodGhpcy5fdXBkYXRlUHJpY2VTY2FsZU1vZGVCdXR0b25zVmlzaWJpbGl0eSl9ImFsd2F5c09uIj09PXQ/KHRoaXMuX2lzSG92ZXJlZC51bnN1YnNjcmliZSh0aGlzLl91cGRhdGVQcmljZVNjYWxlTW9kZUJ1dHRvbnNWaXNpYmlsaXR5KSx0aGlzLl9zZWxlY3RlZFZpYVRhcC51bnN1YnNjcmliZSh0aGlzLl91cGRhdGVQcmljZVNjYWxlTW9kZUJ1dHRvbnNWaXNpYmlsaXR5KSk6InZpc2libGVPbk1vdXNlT3ZlciI9PT10Pyh0aGlzLl9zZWxlY3RlZFZpYVRhcC51bnN1YnNjcmliZSh0aGlzLl91cGRhdGVQcmljZVNjYWxlTW9kZUJ1dHRvbnNWaXNpYmlsaXR5KSx0aGlzLl9pc0hvdmVyZWQuc3Vic2NyaWJlKHRoaXMuX3VwZGF0ZVByaWNlU2NhbGVNb2RlQnV0dG9uc1Zpc2liaWxpdHkpKToodGhpcy5faXNIb3ZlcmVkLnVuc3Vic2NyaWJlKHRoaXMuX3VwZGF0ZVByaWNlU2NhbGVNb2RlQnV0dG9uc1Zpc2liaWxpdHkpLHRoaXMuX3NlbGVjdGVkVmlhVGFwLnN1YnNjcmliZSh0aGlzLl91cGRhdGVQcmljZVNjYWxlTW9kZUJ1dHRvbnNWaXNpYmlsaXR5KSksdGhpcy5fdXBkYXRlUHJpY2VTY2FsZU1vZGVCdXR0b25zVmlzaWJpbGl0eSgpfXRoaXMub25PcHRpbWFsV2lkdGhOZWVkVG9CZVJlY2FsY3VsYXRlZCgpfSx0aGlzLl91cGRhdGVQcmljZVNjYWxlTW9kZUJ1dHRvbnNWaXNpYmlsaXR5PSgpPT57Y29uc3QgZT10aGlzLl9pc0hvdmVyZWQudmFsdWUoKSx0PXRoaXMuX3NlbGVjdGVkVmlhVGFwLnZhbHVlKCk7bGV0IGk9ITE7aWYoIXRoaXMuX3BhbmUudmlzdWFsbHlDb2xsYXBzZWQoKS52YWx1ZSgpJiYhdGhpcy5fY2hhcnQuY2hhcnRGbG9hdGluZ1Rvb2x0aXBWaXNpYmxlKCkpc3dpdGNoKCgwLG9zLmFjdHVhbEF1dG9Mb2dCdXR0b25zVmlzaWJpbGl0eSkoKS52YWx1ZSgpKXsKY2FzZSJ2aXNpYmxlT25Nb3VzZU92ZXIiOmk9ZTticmVhaztjYXNlInZpc2libGVPblRhcFNlbGVjdGlvbiI6aT10O2JyZWFrO2Nhc2UiYWx3YXlzT24iOmk9ITB9dGhpcy5fc2NhbGVNb2RlQnV0dG9ucz8uZWxlbWVudCgpLmNsYXNzTGlzdC50b2dnbGUoInByaWNlLWF4aXNfX21vZGVCdXR0b25zX2hpZGRlbiIsIWkpfSx0aGlzLl91cGRhdGVTY2FsZU1vZGVCdXR0b25zPSgpPT57dGhpcy5fc2NhbGVNb2RlQnV0dG9ucz8udXBkYXRlKCl9LHRoaXMuX2NoYXJ0PWUsdGhpcy5fcGFuZT10LHRoaXMuX3VuZG9Nb2RlbD1pLHRoaXMuX3Byb3BlcnRpZXM9cyx0aGlzLl9pc0xlZnQ9ImxlZnQiPT09cix0aGlzLl9vcHRpb25zPSgwLGEubWVyZ2UpKCgwLGEuY2xvbmUpKExzKSxvKSx0aGlzLl9yZW5kZXJlck9wdGlvbnNQcm92aWRlcj1uLHRoaXMuX2JhY2tncm91bmRCYXNlZFRoZW1lPWMsdGhpcy5fY2VsbD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSx0aGlzLl9jZWxsLmNsYXNzTmFtZT0icHJpY2UtYXhpcyIsdGhpcy5fY2VsbC5kYXRhc2V0Lm5hbWU9YHByaWNlLWF4aXMtJHtsLmxhYmVsfWAsdGhpcy5fY2VsbC5zdHlsZS53aWR0aD0iMjVweCIsdGhpcy5fY2VsbC5zdHlsZS5sZWZ0PSIwIix0aGlzLl9jYW52YXNDb25maWd1cmVkSGFuZGxlcj0oKT0+e3RoaXMuX3VuZG9Nb2RlbC5tb2RlbCgpLmxpZ2h0VXBkYXRlKCl9LHRoaXMuX2NhbnZhc0JpbmRpbmc9KDAsS3QuY3JlYXRlQm91bmRDYW52YXMpKHRoaXMuX2NlbGwsKDAseXQuc2l6ZSkoe3dpZHRoOjE2LGhlaWdodDoxNn0pKSx0aGlzLl9jYW52YXNCaW5kaW5nLnN1YnNjcmliZVN1Z2dlc3RlZEJpdG1hcFNpemVDaGFuZ2VkKHRoaXMuX2NhbnZhc0NvbmZpZ3VyZWRIYW5kbGVyKTtjb25zdCBkPXRoaXMuX2NhbnZhc0JpbmRpbmcuY2FudmFzRWxlbWVudDtkLnN0eWxlLnBvc2l0aW9uPSJhYnNvbHV0ZSIsZC5zdHlsZS56SW5kZXg9IjEiLGQuc3R5bGUubGVmdD0iMCIsZC5zdHlsZS50b3A9IjAiLHRoaXMuX3RvcENhbnZhc0JpbmRpbmc9KDAsS3QuY3JlYXRlQm91bmRDYW52YXMpKHRoaXMuX2NlbGwsKDAseXQuc2l6ZSkoe3dpZHRoOjE2LGhlaWdodDoxNn0pKSx0aGlzLl90b3BDYW52YXNCaW5kaW5nLnN1YnNjcmliZVN1Z2dlc3RlZEJpdG1hcFNpemVDaGFuZ2VkKHRoaXMuX2NhbnZhc0NvbmZpZ3VyZWRIYW5kbGVyKTtjb25zdCB1PXRoaXMuX3RvcENhbnZhc0JpbmRpbmcuY2FudmFzRWxlbWVudDt1LnN0eWxlLnBvc2l0aW9uPSJhYnNvbHV0ZSIsdS5zdHlsZS56SW5kZXg9IjIiLHUuc3R5bGUubGVmdD0iMCIsdS5zdHlsZS50b3A9IjAiLHRoaXMuX2NlbGwuc2V0QXR0cmlidXRlKCJhcmlhLWhpZGRlbiIsInRydWUiKSx0aGlzLl9tb3VzZUV2ZW50SGFuZGxlcj1uZXcgd2kuTW91c2VFdmVudEhhbmRsZXIodGhpcy5fY2VsbCx0aGlzLHt0cmVhdFZlcnRUb3VjaERyYWdBc1BhZ2VTY3JvbGw6ITEsdHJlYXRIb3J6VG91Y2hEcmFnQXNQYWdlU2Nyb2xsOiEwfSksdGhpcy5fb3B0aW9ucy5jdXJyZW5jeUNvbnZlcnNpb25FbmFibGVkfHx0aGlzLl9vcHRpb25zLnVuaXRDb252ZXJzaW9uRW5hYmxlZD8odGhpcy5fY3VycmVuY3lMYWJlbD1uZXcgWmkoMTIpLHRoaXMuX2NlbGwuYXBwZW5kQ2hpbGQodGhpcy5fY3VycmVuY3lMYWJlbC5lbGVtZW50KCkpKTp0aGlzLl9jdXJyZW5jeUxhYmVsPW51bGwsdGhpcy5fcHJvcGVydGllcy5jaGlsZHMoKS5mb250U2l6ZS5zdWJzY3JpYmUodGhpcyx0aGlzLl9vbkZvbnRTaXplQ2hhbmdlZCksdGhpcy5fb3B0aW9ucy5tb3VzZVdoZWVsU2NhbGUmJih0aGlzLl9tb3VzZVdoZWVsSGVscGVyPW5ldyBTaSx0aGlzLl9jZWxsLmFkZEV2ZW50TGlzdGVuZXIoIndoZWVsIix0aGlzLl9vbk1vdXNld2hlZWwuYmluZCh0aGlzKSx7cGFzc2l2ZTohMX0pKSx0aGlzLl9heGlzSW5mbz1sLHRoaXMuX29mZnNldD0wLHRoaXMucmVzdG9yZURlZmF1bHRDdXJzb3IoKSwoMCxycy5hY3R1YWxDdXJyZW5jeVVuaXRNZXRyaWNWaXNpYmlsaXR5KSgpLnN1YnNjcmliZSh0aGlzLHRoaXMuX3JlY2FsY0N1cnJlbmN5VW5pdEFuZE1ldHJpY1Zpc2liaWxpdHkpLHRoaXMuX3NlbGVjdGVkVmlhVGFwLnN1YnNjcmliZSh0aGlzLl9yZWNhbGNDdXJyZW5jeVVuaXRBbmRNZXRyaWNWaXNpYmlsaXR5LmJpbmQodGhpcykpLCgwLG9zLmFjdHVhbEF1dG9Mb2dCdXR0b25zVmlzaWJpbGl0eSkoKS5zdWJzY3JpYmUodGhpcyx0aGlzLl9oYW5kbGVBY3R1YWxBdXRvTG9nQnV0dG9uc1Zpc2liaWxpdHkpLHRoaXMuX2hhbmRsZUFjdHVhbEF1dG9Mb2dCdXR0b25zVmlzaWJpbGl0eSgoMCxvcy5hY3R1YWxBdXRvTG9nQnV0dG9uc1Zpc2liaWxpdHkpKCkpLmNhdGNoKCgoKT0+e30pKSx0aGlzLl9jaGFydC5hbnlQcmljZUF4aXNIb3ZlcmVkKCkuc3Vic2NyaWJlKHRoaXMuX3JlY2FsY0N1cnJlbmN5VW5pdEFuZE1ldHJpY1Zpc2liaWxpdHkse2NhbGxXaXRoTGFzdDohMH0pLHRoaXMuX3BhbmUudmlzdWFsbHlDb2xsYXBzZWQoKS5zdWJzY3JpYmUodGhpcy5fcmVjYWxjQ3VycmVuY3lVbml0QW5kTWV0cmljVmlzaWJpbGl0eSx7Y2FsbFdpdGhMYXN0OiEwfSksdGhpcy51cGRhdGUoKX1hc3luYyBnZXRDb250ZXh0TWVudUFjdGlvbnMoZSl7dGhpcy5faW5pdEFjdGlvbnMoKTtjb25zdCB0PSgwLGwuZW5zdXJlTm90TnVsbCkodGhpcy5fYWN0aW9ucyksaT10aGlzLl9jaGFydC5hY3Rpb25zKCkscz1bXTtpZih0aGlzLl9wcmljZVNjYWxlPy5yZXNldFNjYWxlQXZhaWxhYmxlKCkudmFsdWUoKSYmcy5wdXNoKHQucmVzZXQsbmV3IGVzLlNlcGFyYXRvcikscy5wdXNoKHRoaXMuX2F1dG9TY2FsZUFjdGlvbigpKSx0aGlzLl9pc01haW5TZXJpZXNBeGlzKCkmJnMucHVzaCh0aGlzLl9sb2NrU2NhbGVBY3Rpb24oKSksCnMucHVzaChpLnNjYWxlU2VyaWVzT25seSx0aGlzLl9pbnZlcnRBY3Rpb24oKSxuZXcgZXMuU2VwYXJhdG9yLHRoaXMuX3JlZ3VsYXJTY2FsZUFjdGlvbigpLHRoaXMuX3BlcmNlbnRhZ2VBY3Rpb24oKSx0aGlzLl9pbmRleGVkVG8xMDBBY3Rpb24oKSx0aGlzLl9sb2dBY3Rpb24oKSxuZXcgZXMuU2VwYXJhdG9yLHRoaXMuX2NyZWF0ZU1lcmdlU2NhbGVzQWN0aW9uKCksbmV3IGVzLlNlcGFyYXRvciksISgwLHEuaXNGZWF0dXJlc2V0RW5hYmxlZCkoImZ1bmRhbWVudGFsX3dpZGdldCIpKXtjb25zdCBlPVtpLnNob3dTeW1ib2xMYWJlbHNBY3Rpb24saS5zaG93U2VyaWVzTGFzdFZhbHVlLGkuc2hvd1Nlcmllc1ByZXZDbG9zZVZhbHVlLGkuc2hvd1ByZVBvc3RNYXJrZXRQcmljZUxhYmVsLGkuc2hvd0hpZ2hMb3dQcmljZUxhYmVscywoMCxxLmlzRmVhdHVyZXNldEVuYWJsZWQpKCJzaG93X2F2ZXJhZ2VfY2xvc2VfcHJpY2VfbGluZV9hbmRfbGFiZWwiKT9pLnNob3dBdmVyYWdlQ2xvc2VQcmljZUxhYmVsOm51bGwsdGhpcy5fdW5kb01vZGVsLm1vZGVsKCkuaGFzQ3VzdG9tU291cmNlKCJiaWRhc2siKT9pLnNob3dCaWRBc2tMYWJlbHM6bnVsbCxpLnNob3dTdHVkeVBsb3ROYW1lc0FjdGlvbixpLnNob3dTdHVkeUxhc3RWYWx1ZSx0aGlzLl9vcHRpb25zLmNvdW50ZG93bkVuYWJsZWQ/aS5zaG93Q291bnRkb3duOm51bGwsbmV3IGVzLlNlcGFyYXRvcix0LmFsaWduTGFiZWxzXS5maWx0ZXIoYS5ub3ROdWxsKTtzLnB1c2gobmV3IGVzLkFjdGlvbih7YWN0aW9uSWQ6IkNoYXJ0LlByaWNlU2NhbGUuTGFiZWxzIixvcHRpb25zOntsYWJlbDpwcyxzdWJJdGVtczplfX0pKX1jb25zdHtjcmVhdGVMaW5lc0FjdGlvbjpufT1hd2FpdCgwLHNzLmFjdGlvbnNQcm92aWRlck1vZHVsZSkoKTtyZXR1cm4gcy5wdXNoKG4odGhpcy5fY2hhcnQpKSx0aGlzLl91bmRvTW9kZWwuY3Jvc3NoYWlyU291cmNlKCkuaXNNZW51RW5hYmxlZCgpJiZzLnB1c2goaS5hZGRQbHVzQnV0dG9uKSxlJiYhdGhpcy5fY2hhcnQub25XaWRnZXQoKSYmKDAscS5pc0ZlYXR1cmVzZXRFbmFibGVkKSgic2hvd19jaGFydF9wcm9wZXJ0eV9wYWdlIikmJigwLHEuaXNGZWF0dXJlc2V0RW5hYmxlZCkoImNoYXJ0X3Byb3BlcnR5X3BhZ2Vfc2NhbGVzIikmJmkuc2NhbGVzUHJvcGVydGllcyYmcy5wdXNoKG5ldyBlcy5TZXBhcmF0b3IsaS5zY2FsZXNQcm9wZXJ0aWVzKSxzfWdldEVsZW1lbnQoKXtyZXR1cm4gdGhpcy5fY2VsbH1vbk9wdGltYWxXaWR0aE5lZWRUb0JlUmVjYWxjdWxhdGVkKGUpeyh0aGlzLl9zaXplLndpZHRoPHRoaXMub3B0aW1hbFdpZHRoKCl8fGUpJiZ0aGlzLl91bmRvTW9kZWwubW9kZWwoKS5mdWxsVXBkYXRlKCl9b3B0aW1hbFdpZHRoKCl7aWYoIXRoaXMuaXNWaXNpYmxlKCkpcmV0dXJuIDA7bGV0IGU9MDtjb25zdCB0PXRoaXMucmVuZGVyZXJPcHRpb25zKCk7aWYodGhpcy5fcGFuZS5oYXNTdGF0ZSgpKXtjb25zdCB0PSgwLEt0LmdldENvbnRleHQyRCkodGhpcy5fY2FudmFzQmluZGluZy5jYW52YXNFbGVtZW50KTt0LmZvbnQ9dGhpcy5iYXNlRm9udCgpO2NvbnN0IGk9dGhpcy5fdmlld3MoMix0aGlzLl9ncm91cGVkU291cmNlcygpKTtmb3IoY29uc3QgcyBvZiBpKXtpZighcy5pc0F4aXNMYWJlbFZpc2libGUoKXx8cy5pc091dHNpZGVPZlZpc2libGVQcmljZVJhbmdlPy4oKSljb250aW51ZTtjb25zdCBpPXRoaXMuX3dpZHRoQ2FjaGUubWVhc3VyZVRleHQodCxzLnRleHQoKSk7ZT1NYXRoLm1heChlLGkpO2NvbnN0IG49cy5zZWNvbmRMaW5lVGV4dCgpO24mJihlPU1hdGgubWF4KGUsdGhpcy5fd2lkdGhDYWNoZS5tZWFzdXJlVGV4dCh0LG4pKSk7Y29uc3Qgcj1zLnRoaXJkTGluZVRleHQoKTtyJiYoZT1NYXRoLm1heChlLHRoaXMuX3dpZHRoQ2FjaGUubWVhc3VyZVRleHQodCxyKSkpfWNvbnN0IHM9dGhpcy5wcmljZVNjYWxlKCk7Zm9yKGNvbnN0IGkgb2Ygcy5tYXJrcygpKWU9TWF0aC5tYXgoZSx0aGlzLl93aWR0aENhY2hlLm1lYXN1cmVUZXh0KHQsaS5sYWJlbCkpO2NvbnN0IG49cy5tYWluU291cmNlKCk/LmZpcnN0VmFsdWUoKXx8bnVsbDtpZihudWxsIT09biYmIXMuaXNQZXJjZW50YWdlKCkmJiFzLmlzSW5kZXhlZFRvMTAwKCkpe2NvbnN0IGk9cy5jb29yZGluYXRlVG9QcmljZSgxLG4pLHI9cy5jb29yZGluYXRlVG9QcmljZSh0aGlzLl9zaXplLmhlaWdodC0yLG4pO2lmKE1hdGguYWJzKGktcik+MWUtMTQpe2NvbnN0IG89TWF0aC5tYXgoMCwtTWF0aC5sb2cxMChNYXRoLm1heChNYXRoLmFicyhpKSxNYXRoLmFicyhyKSkpKSxhPS4xMTExMTExMTExMTExMS9NYXRoLnBvdygxMCxNYXRoLmZsb29yKG8pKSxsPXMuZm9ybWF0UHJpY2UoTWF0aC5taW4oaSxyKS1hLG4pLGM9cy5mb3JtYXRQcmljZShNYXRoLm1heChpLHIpK2Esbik7ZT1NYXRoLm1heChlLHRoaXMuX3dpZHRoQ2FjaGUubWVhc3VyZVRleHQodCxsKSx0aGlzLl93aWR0aENhY2hlLm1lYXN1cmVUZXh0KHQsYykpfX19Y29uc3QgaT10aGlzLl9pc0N1cnJlbmN5TGFiZWxFbmFibGVkKCk/TWF0aC5yb3VuZCgoMCxsLmVuc3VyZU5vdE51bGwpKHRoaXMuX2N1cnJlbmN5TGFiZWwpLndpZHRoKCkpOjAscz1lfHwzNDtsZXQgbj1NYXRoLm1heChpLHRoaXMuX3NjYWxlTW9kZUJ1dHRvbnM/LndpZHRoKCk/PzAsTWF0aC5jZWlsKHQuYm9yZGVyU2l6ZSt0LmFkZGl0aW9uYWxQYWRkaW5nSW5uZXIrdC5wYWRkaW5nSW5uZXIrdC5wYWRkaW5nT3V0ZXIrcys0KSk7cmV0dXJuIG4rPW4lMixufXNldFNpemVBbmRPZmZzZXQoZSx0KXsoMCx5dC5lcXVhbFNpemVzKSh0aGlzLl9zaXplLGUpfHwodGhpcy5fc2l6ZT1lLHRoaXMuX2NhbnZhc0JpbmRpbmcucmVzaXplQ2FudmFzRWxlbWVudChlKSx0aGlzLl90b3BDYW52YXNCaW5kaW5nLnJlc2l6ZUNhbnZhc0VsZW1lbnQoZSksdGhpcy5fY2VsbC5zdHlsZS53aWR0aD1lLndpZHRoKyJweCIsdGhpcy5fY2VsbC5zdHlsZS5oZWlnaHQ9ZS5oZWlnaHQrInB4Iix0aGlzLl9jZWxsLnN0eWxlLm1pbldpZHRoPWUud2lkdGgrInB4IiksdGhpcy5fb2Zmc2V0IT09dCYmKHRoaXMuX29mZnNldD10LAp0aGlzLl9jZWxsLnN0eWxlLmxlZnQ9dCsicHgiKX1nZXRXaWR0aCgpe3JldHVybiB0aGlzLl9zaXplLndpZHRofWdldEltYWdlKCl7Y29uc3QgZT10aGlzLl9zaXplLHQ9KDAsS3QuY3JlYXRlRGlzY29ubmVjdGVkQ2FudmFzKShkb2N1bWVudCxlKTtyZXR1cm4oMCxLdC5nZXRQcmVzY2FsZWRDb250ZXh0MkQpKHQpLmRyYXdJbWFnZSh0aGlzLl9jYW52YXNCaW5kaW5nLmNhbnZhc0VsZW1lbnQsMCwwLGUud2lkdGgsZS5oZWlnaHQpLG51bGw9PT10aGlzLl9jdXJyZW5jeUxhYmVsfHx0aGlzLl9jdXJyZW5jeUxhYmVsLmlzSGlkZGVuKCl8fHRoaXMuX2N1cnJlbmN5TGFiZWwuZHJhd0xhYmVsKCgwLEt0LmdldENvbnRleHQyRCkodCksZS53aWR0aCwoMCxkaS5nZXRDYW52YXNEZXZpY2VQaXhlbFJhdGlvKSh0KSksdH11cGRhdGUoKXtudWxsIT09dGhpcy5fcHJpY2VTY2FsZSYmKHRoaXMuX3ByaWNlU2NhbGUubWFya3MoKSx0aGlzLnJlbmRlcmVyT3B0aW9ucygpKX1wYWludChlKXtpZighdGhpcy5faXNWaXNpYmxlfHwwPT09dGhpcy5fc2l6ZS53aWR0aHx8MD09PXRoaXMuX3NpemUuaGVpZ2h0KXJldHVybjtpZihlPT09TGUuSW52YWxpZGF0aW9uTGV2ZWwuTm9uZSlyZXR1cm47Y29uc3QgdD10aGlzLl9wYW5lLnN0YXRlKCksaT0hdC5tYXhpbWl6ZWQoKS52YWx1ZSgpJiZ0LmNvbGxhcHNlZCgpLnZhbHVlKCk7aWYoaSYmZTxMZS5JbnZhbGlkYXRpb25MZXZlbC5GdWxsKXJldHVybjtjb25zdCBzPXRoaXMuX3BhbmUuaGFzU3RhdGUoKTsoMCxLdC50cnlBcHBseVN1Z2dlc3RlZENhbnZhc0JpdG1hcFNpemUpKHRoaXMuX2NhbnZhc0JpbmRpbmcpLCgwLEt0LnRyeUFwcGx5U3VnZ2VzdGVkQ2FudmFzQml0bWFwU2l6ZSkodGhpcy5fdG9wQ2FudmFzQmluZGluZyk7Y29uc3Qgbj1udWxsIT09dGhpcy5fY3VycmVuY3lMYWJlbCYmIXRoaXMuX2N1cnJlbmN5TGFiZWwuaXNIaWRkZW4oKSxyPShlLHQsaSk9PntpZihuKXtlLnNhdmUoKSxlLmJlZ2luUGF0aCgpO2NvbnN0IGk9KDAsbC5lbnN1cmVOb3ROdWxsKSh0aGlzLl9jdXJyZW5jeUxhYmVsKS5sYWJlbEJvdHRvbSgpO2UucmVjdCgwLGkqdC52ZXJ0aWNhbFBpeGVsUmF0aW8sdC5iaXRtYXBTaXplLndpZHRoLHQuYml0bWFwU2l6ZS5oZWlnaHQpLGUuY2xpcCgpfWkoKSxuJiZlLnJlc3RvcmUoKX0sbz0oMCxidC5kZWZhdWx0KSgoKCk9PnRoaXMuX2dyb3VwZWRTb3VyY2VzKCkpKSxhPSgwLGJ0LmRlZmF1bHQpKCgoKT0+dGhpcy5fdmlld3MoMSxvKCkpKSksYz0oMCxidC5kZWZhdWx0KSgoKCk9PnRoaXMuX3ZpZXdzKDAsbygpKSkpO2lmKGU+TGUuSW52YWxpZGF0aW9uTGV2ZWwuQ3Vyc29yKXtjb25zdCBlPSgwLEt0LmdldENvbnRleHQyRCkodGhpcy5fY2FudmFzQmluZGluZy5jYW52YXNFbGVtZW50KSx0PSgwLEt0LmdldEJpbmRpbmdSZW5kZXJpbmdJbmZvKSh0aGlzLl9jYW52YXNCaW5kaW5nKTtpfHwodGhpcy5fYWxpZ25MYWJlbHMoWy4uLmEoKSwuLi5jKCldKSxzJiZ0aGlzLnVwZGF0ZUN1cnJlbmN5TGFiZWwoKSksdGhpcy5fZHJhd0JhY2tncm91bmQoZSx0KSxpfHxyKGUsdCwoKCk9Pnt0aGlzLl9kcmF3RHJhd2luZ3NIaWdobGlnaHQoZSx0KX0pKSx0aGlzLl9kcmF3Qm9yZGVyKGUsdCkscyYmIWkmJih0aGlzLl9zY2FsZU1vZGVCdXR0b25zJiYodGhpcy5fc2NhbGVNb2RlQnV0dG9ucy5lbGVtZW50KCkuc3R5bGUuYmFja2dyb3VuZD10aGlzLl9oaWdobGlnaHRlZD90aGlzLl9oaWdobGlnaHRDb2xvcigpOnRoaXMuYmFja2dyb3VuZENvbG9yKCkpLHIoZSx0LCgoKT0+e3RoaXMuX2RyYXdUaWNrTWFya3MoZSx0KSx0aGlzLl9kcmF3TGFiZWxzKGMoKSxlLHQpfSkpKX1pZihzJiYhaSl7Y29uc3QgZT0oMCxLdC5nZXRDb250ZXh0MkQpKHRoaXMuX3RvcENhbnZhc0JpbmRpbmcuY2FudmFzRWxlbWVudCksdD0oMCxLdC5nZXRCaW5kaW5nUmVuZGVyaW5nSW5mbykodGhpcy5fdG9wQ2FudmFzQmluZGluZyk7ZS5jbGVhclJlY3QoMCwwLHQuYml0bWFwU2l6ZS53aWR0aCx0LmJpdG1hcFNpemUuaGVpZ2h0KSxyKGUsdCwoKCk9Pnt0aGlzLl9kcmF3TGFiZWxzKGEoKSxlLHQpLHRoaXMuX2RyYXdDcm9zc0hhaXJMYWJlbChlLHQpfSkpfX1yZXN0b3JlRGVmYXVsdEN1cnNvcigpe3RoaXMuX3NldEN1cnNvcigiIil9cHJpY2VTY2FsZSgpe3JldHVybigwLGwuZW5zdXJlTm90TnVsbCkodGhpcy5fcHJpY2VTY2FsZSl9c2V0UHJpY2VTY2FsZShlKXt0aGlzLl9wcmljZVNjYWxlIT09ZSYmKG51bGwhPT10aGlzLl9wcmljZVNjYWxlJiYodGhpcy5fcHJpY2VTY2FsZS5vbk1hcmtzQ2hhbmdlZCgpLnVuc3Vic2NyaWJlKHRoaXMsdGhpcy5vbk9wdGltYWxXaWR0aE5lZWRUb0JlUmVjYWxjdWxhdGVkKSx0aGlzLl9wcmljZVNjYWxlLm1vZGVDaGFuZ2VkKCkudW5zdWJzY3JpYmVBbGwodGhpcykpLHRoaXMuX3ByaWNlU2NhbGU9ZSxudWxsIT09ZSYmKGUub25NYXJrc0NoYW5nZWQoKS5zdWJzY3JpYmUodGhpcyx0aGlzLm9uT3B0aW1hbFdpZHRoTmVlZFRvQmVSZWNhbGN1bGF0ZWQpLGUubW9kZUNoYW5nZWQoKS5zdWJzY3JpYmUodGhpcywoKCk9PnRoaXMub25PcHRpbWFsV2lkdGhOZWVkVG9CZVJlY2FsY3VsYXRlZCghMCkpKSx0aGlzLm9uT3B0aW1hbFdpZHRoTmVlZFRvQmVSZWNhbGN1bGF0ZWQoKSx0aGlzLl9zY2FsZU1vZGVCdXR0b25zJiYoZS5tb2RlQ2hhbmdlZCgpLnN1YnNjcmliZSh0aGlzLHRoaXMuX3VwZGF0ZVNjYWxlTW9kZUJ1dHRvbnMpLHRoaXMuX3VwZGF0ZVNjYWxlTW9kZUJ1dHRvbnMoKSkpKX1pc1Zpc2libGUoKXtyZXR1cm4gdGhpcy5faXNWaXNpYmxlfXNldFZpc2libGUoZSl7KGU9ISFlKSE9PXRoaXMuX2lzVmlzaWJsZSYmKHRoaXMuX2NlbGwuc3R5bGUuZGlzcGxheT1lPyJ0YWJsZS1jZWxsIjoibm9uZSIsdGhpcy5faXNWaXNpYmxlPWUpfWRlc3Ryb3koKXtudWxsIT09dGhpcy5fY3VycmVuY3lNZW51JiYodGhpcy5fY3VycmVuY3lNZW51LmRlc3Ryb3koKSx0aGlzLl9jdXJyZW5jeU1lbnU9bnVsbCksbnVsbCE9PXRoaXMuX3VuaXRNZW51JiYodGhpcy5fdW5pdE1lbnUuZGVzdHJveSgpLHRoaXMuX3VuaXRNZW51PW51bGwpLApudWxsIT09dGhpcy5fbWV0cmljTWVudSYmKHRoaXMuX21ldHJpY01lbnUuZGVzdHJveSgpLHRoaXMuX21ldHJpY01lbnU9bnVsbCksdGhpcy5fcGFuZS52aXN1YWxseUNvbGxhcHNlZCgpLnVuc3Vic2NyaWJlKHRoaXMuX3JlY2FsY0N1cnJlbmN5VW5pdEFuZE1ldHJpY1Zpc2liaWxpdHkpLHRoaXMuX3RvcENhbnZhc0JpbmRpbmcudW5zdWJzY3JpYmVTdWdnZXN0ZWRCaXRtYXBTaXplQ2hhbmdlZCh0aGlzLl9jYW52YXNDb25maWd1cmVkSGFuZGxlciksdGhpcy5fdG9wQ2FudmFzQmluZGluZy5kaXNwb3NlKCksdGhpcy5fY2FudmFzQmluZGluZy51bnN1YnNjcmliZVN1Z2dlc3RlZEJpdG1hcFNpemVDaGFuZ2VkKHRoaXMuX2NhbnZhc0NvbmZpZ3VyZWRIYW5kbGVyKSx0aGlzLl9jYW52YXNCaW5kaW5nLmRpc3Bvc2UoKSxudWxsIT09dGhpcy5fcHJpY2VTY2FsZSYmKHRoaXMuX3ByaWNlU2NhbGUub25NYXJrc0NoYW5nZWQoKS51bnN1YnNjcmliZSh0aGlzLHRoaXMub25PcHRpbWFsV2lkdGhOZWVkVG9CZVJlY2FsY3VsYXRlZCksdGhpcy5fcHJpY2VTY2FsZS5tb2RlQ2hhbmdlZCgpLnVuc3Vic2NyaWJlQWxsKHRoaXMpKSx0aGlzLl9wcmljZVNjYWxlPW51bGwsdGhpcy5fbW91c2VFdmVudEhhbmRsZXIuZGVzdHJveSgpLHRoaXMuX3Byb3BlcnRpZXMuY2hpbGRzKCkuZm9udFNpemUudW5zdWJzY3JpYmUodGhpcyx0aGlzLl9vbkZvbnRTaXplQ2hhbmdlZCksbnVsbCE9PXRoaXMuX2FjdGlvbnMmJihPYmplY3QudmFsdWVzKHRoaXMuX2FjdGlvbnMpLmZvckVhY2goKGU9PntlLmRlc3Ryb3koKX0pKSx0aGlzLl9hY3Rpb25zPW51bGwpLCgwLHJzLmFjdHVhbEN1cnJlbmN5VW5pdE1ldHJpY1Zpc2liaWxpdHkpKCkudW5zdWJzY3JpYmVBbGwodGhpcyksdGhpcy5fY2hhcnQuYW55UHJpY2VBeGlzSG92ZXJlZCgpLnVuc3Vic2NyaWJlKHRoaXMuX3JlY2FsY0N1cnJlbmN5VW5pdEFuZE1ldHJpY1Zpc2liaWxpdHkpLCgwLG9zLmFjdHVhbEF1dG9Mb2dCdXR0b25zVmlzaWJpbGl0eSkoKS51bnN1YnNjcmliZUFsbCh0aGlzKSx0aGlzLl9jaGFydC5zZXRQcmljZUF4aXNIb3ZlcmVkKHRoaXMsITEpLHRoaXMuX2Rlc3Ryb3lTY2FsZU1vZGVCdXR0b25zKCksdGhpcy5fZGVzdHJveWVkPSEwfWF4aXNJbmZvKCl7cmV0dXJuIHRoaXMuX2F4aXNJbmZvfXNldEhpZ2hsaWdodGVkKGUpe3RoaXMuX2hpZ2hsaWdodGVkPWV9YmFja2dyb3VuZENvbG9yKCl7cmV0dXJuIHRoaXMuX3BhbmUuc3RhdGUoKS5tb2RlbCgpLmJhY2tncm91bmRDb2xvcigpLnZhbHVlKCl9YmFja2dyb3VuZFRvcENvbG9yKCl7cmV0dXJuIHRoaXMuX3BhbmUuc3RhdGUoKS5tb2RlbCgpLmJhY2tncm91bmRUb3BDb2xvcigpLnZhbHVlKCl9bGluZUNvbG9yKCl7cmV0dXJuIHRoaXMuX3Byb3BlcnRpZXMuY2hpbGRzKCkubGluZUNvbG9yLnZhbHVlKCl9dGV4dENvbG9yKCl7cmV0dXJuIHRoaXMuX3Byb3BlcnRpZXMuY2hpbGRzKCkudGV4dENvbG9yLnZhbHVlKCl9Zm9udFNpemUoKXtyZXR1cm4gdGhpcy5fcHJvcGVydGllcy5jaGlsZHMoKS5mb250U2l6ZS52YWx1ZSgpfWJhc2VGb250KGU9ITEpe3JldHVybigwLFJpLm1ha2VGb250KSh0aGlzLmZvbnRTaXplKCksV2kuQ0hBUlRfRk9OVF9GQU1JTFlfV1YudmFsdWUoKSxlPyJib2xkIjoiIil9cmVuZGVyZXJPcHRpb25zKCl7bGV0IGU9dGhpcy5fcmVuZGVyZXJPcHRpb25zUHJvdmlkZXIub3B0aW9ucygpO3JldHVybiB0aGlzLl9jb2xvcj09PWUuY29sb3ImJnRoaXMuX2ZvbnRTaXplPT09ZS5mb250U2l6ZXx8KHRoaXMuX2NvbG9yPWUuY29sb3IpLHRoaXMuX2ZvbnRTaXplIT09ZS5mb250U2l6ZSYmKHRoaXMuX3dpZHRoQ2FjaGUucmVzZXQoKSx0aGlzLl9mb250U2l6ZT1lLmZvbnRTaXplLHRoaXMub25PcHRpbWFsV2lkdGhOZWVkVG9CZVJlY2FsY3VsYXRlZCgpKSx0aGlzLl9jaGFydC5vbldpZGdldCgpfHwoZT1PYmplY3QuYXNzaWduKHt9LGUse3BhZGRpbmdJbm5lcjpNYXRoLm1heChlLnBhZGRpbmdJbm5lcixxaS5BTEVSVF9MQUJFTF9XSURUSCl9KSksZX1tb3VzZUVudGVyRXZlbnQoZSl7dGhpcy5fY2hhcnQuY2hhcnRGbG9hdGluZ1Rvb2x0aXBWaXNpYmxlKCl8fCh0aGlzLl9jaGFydC5zZXRQcmljZUF4aXNIb3ZlcmVkKHRoaXMsITApLHRoaXMuX2lzSG92ZXJlZC5zZXRWYWx1ZSghMCksdGhpcy5fYXBwbHlMaWdodFVwZGF0ZUlmUmVxdWlyZWQoKSx0aGlzLl9tb3VzZUVudGVyT3JUb3VjaFN0YXJ0RXZlbnQoZSkpfW1vdXNlTW92ZUV2ZW50KGUpe3RoaXMuX21vdXNlT3JUb3VjaE1vdmVFdmVudChlKX1tb3VzZURvd25FdmVudChlKXt0aGlzLl9tb3VzZURvd25PclRvdWNoU3RhcnRFdmVudChlKX10b3VjaFN0YXJ0RXZlbnQoZSl7dGhpcy5fbW91c2VPclRvdWNoTW92ZUV2ZW50KGUpLHRoaXMuX21vdXNlRW50ZXJPclRvdWNoU3RhcnRFdmVudChlKSx0aGlzLl9tb3VzZURvd25PclRvdWNoU3RhcnRFdmVudChlKX1wcmVzc2VkTW91c2VNb3ZlRXZlbnQoZSl7dGhpcy5fcHJlc3NlZE1vdXNlT3JUb3VjaE1vdmVFdmVudChlKX10b3VjaE1vdmVFdmVudChlKXt0aGlzLl9wcmVzc2VkTW91c2VPclRvdWNoTW92ZUV2ZW50KGUpfXBpbmNoU3RhcnRFdmVudChlLHQsaSxzKXtyZXR1cm4gcy5ib3RoUG9pbnRzT25UYXJnZXRFbGVtZW50fXBpbmNoRXZlbnQoZSx0LGkpe2lmKHRoaXMuX3pvb21BdmFpbGFibGUoKSYmdGhpcy5fb3B0aW9ucy5waW5jaFNjYWxlKXtpZih0aGlzLl9kcmFnU2NhbGVBY3RpdmUmJnRoaXMuX2ZpbmlzaFNjYWxlKCksIXRoaXMuX3BpbmNoaW5nKXJldHVybiB0aGlzLl9waW5jaGluZz0hMCx2b2lkIHRoaXMuX3VuZG9Nb2RlbC5zdGFydFR3b1BvaW50c1NjYWxlUHJpY2UodGhpcy5fcGFuZS5zdGF0ZSgpLHRoaXMucHJpY2VTY2FsZSgpLHQueSxpLnkpO3RoaXMuX3VuZG9Nb2RlbC50d29Qb2ludHNTY2FsZVByaWNlVG8odGhpcy5fcGFuZS5zdGF0ZSgpLHRoaXMucHJpY2VTY2FsZSgpLHQueSxpLnkpfX1waW5jaEVuZEV2ZW50KCl7dGhpcy5fcGluY2hpbmc9ITEsCnRoaXMuX3VuZG9Nb2RlbC5lbmRUd29Qb2ludHNTY2FsZVByaWNlKHRoaXMuX3BhbmUuc3RhdGUoKSx0aGlzLnByaWNlU2NhbGUoKSl9bW91c2VEb3duT3V0c2lkZUV2ZW50KCl7dGhpcy5fZmluaXNoU2NhbGUoKX10b3VjaFN0YXJ0T3V0c2lkZUV2ZW50KCl7dGhpcy5fZmluaXNoU2NhbGUoKSx0aGlzLl9zZWxlY3RlZFZpYVRhcC5zZXRWYWx1ZSghMSl9bW91c2VVcEV2ZW50KGUpe3RoaXMuX21vdXNlVXBPclRvdWNoRW5kRXZlbnQoZSl9dG91Y2hFbmRFdmVudChlKXt0aGlzLl9tb3VzZUxlYXZlT3JUb3VjaEVuZEV2ZW50KGUpLHRoaXMuX21vdXNlVXBPclRvdWNoRW5kRXZlbnQoZSl9bW91c2VDbGlja0V2ZW50KGUpe3RoaXMuX21vdXNlQ2xpY2tPclRhcEV2ZW50KGUpfXRhcEV2ZW50KGUpe3RoaXMuX21vdXNlQ2xpY2tPclRhcEV2ZW50KGUpfW1vdXNlTGVhdmVFdmVudChlKXt0aGlzLl9jaGFydC5zZXRQcmljZUF4aXNIb3ZlcmVkKHRoaXMsITEpLHRoaXMuX2lzSG92ZXJlZC5zZXRWYWx1ZSghMSksdGhpcy5fYXBwbHlMaWdodFVwZGF0ZUlmUmVxdWlyZWQoKSx0aGlzLl9tb3VzZUxlYXZlT3JUb3VjaEVuZEV2ZW50KGUpfW1vdXNlRG91YmxlQ2xpY2tFdmVudChlKXt0aGlzLl9tb3VzZURvdWJsZUNsaWNrT3JEb3VibGVUYXBFdmVudChlKX1kb3VibGVUYXBFdmVudChlKXt0aGlzLl9tb3VzZURvdWJsZUNsaWNrT3JEb3VibGVUYXBFdmVudChlKX1jb250ZXh0TWVudUV2ZW50KGUpe3RoaXMuX2NvbnRleHRNZW51T3JUb3VjaENvbnRleHRNZW51RXZlbnQoZSl9dG91Y2hDb250ZXh0TWVudUV2ZW50KGUpe3RoaXMuX2NvbnRleHRNZW51T3JUb3VjaENvbnRleHRNZW51RXZlbnQoZSl9ZGF0YVNvdXJjZUF0UG9pbnQoZSx0KXtpZighdGhpcy5fcGFuZS5oYXNTdGF0ZSgpKXJldHVybiBudWxsO2NvbnN0IGk9dGhpcy5fcGFuZS5zdGF0ZSgpO2lmKCFpLm1heGltaXplZCgpLnZhbHVlKCkmJmkuY29sbGFwc2VkKCkudmFsdWUoKSlyZXR1cm4gbnVsbDtjb25zdCBzPXRoaXMuX2dyb3VwZWRTb3VyY2VzKCksbj1bLi4ucy5zb3VyY2VzLC4uLnMudG9wTGV2ZWxTb3VyY2VzLC4uLmkuY3VzdG9tU291cmNlcygpLC4uLmkuc291cmNlc0J5R3JvdXAoKS5tdWx0aXBhbmVTb3VyY2VzKCldO2xldCByPW51bGwsbz1udWxsO2lmKCF0aGlzLl9wcmljZVNjYWxlKXJldHVybiBudWxsO2NvbnN0IGE9KGUsdCk9Pntjb25zdCBpPW8/LnRhcmdldCgpPz8wO2UudGFyZ2V0KCk+aSYmKG89ZSxyPXQpfSxsPW5ldyBQdC5Qb2ludChlLHQpLGM9KDAsS3QuZ2V0QmluZGluZ1JlbmRlcmluZ0luZm8pKHRoaXMuX2NhbnZhc0JpbmRpbmcpO2ZvcihsZXQgZT1uLmxlbmd0aC0xO2U+PTA7LS1lKXtjb25zdCB0PW5bZV0scz10LnByaWNlQXhpc1ZpZXdzKGksdGhpcy5fcHJpY2VTY2FsZSk7aWYocyYmMCE9PXMubGVuZ3RoKWZvcihsZXQgZT1zLmxlbmd0aC0xO2U+PTA7LS1lKXtjb25zdCBpPXNbZV0ucmVuZGVyZXIoKTtpZih2b2lkIDAhPT1pLmhpdFRlc3Qpe2NvbnN0IGU9aS5oaXRUZXN0KGwsYyx0aGlzLl9pc0xlZnQ/ImxlZnQiOiJyaWdodCIpO251bGwhPT1lJiZhKGUsdCl9fX1yZXR1cm4gdGhpcy5fbGFzdEhpdHRlc3RSZXN1bHQ9byxyfXJlc2V0KCl7Y29uc3QgZT10aGlzLl9wYW5lLnN0YXRlKCksdD10aGlzLnByaWNlU2NhbGUoKTt0aGlzLl91bmRvTW9kZWwucmVzZXRQcmljZVNjYWxlKGUsdCksdGhpcy5vbk9wdGltYWxXaWR0aE5lZWRUb0JlUmVjYWxjdWxhdGVkKCEwKX11cGRhdGVDdXJyZW5jeUxhYmVsKCl7dGhpcy5fdXBkYXRlQ3VycmVuY3lMYWJlbEN1cnJlbmN5KCksdGhpcy5fdXBkYXRlQ3VycmVuY3lMYWJlbFVuaXQoKSx0aGlzLl91cGRhdGVDdXJyZW5jeUxhYmVsTWV0cmljKCl9X3VwZGF0ZUN1cnJlbmN5TGFiZWxDdXJyZW5jeSgpe2lmKG51bGwhPT10aGlzLl9jdXJyZW5jeUxhYmVsKWlmKHRoaXMuX29wdGlvbnMuY3VycmVuY3lDb252ZXJzaW9uRW5hYmxlZCl7Y29uc3QgZT10aGlzLnByaWNlU2NhbGUoKS5jdXJyZW5jeSh0aGlzLl91bmRvTW9kZWwubW9kZWwoKS5hdmFpbGFibGVDdXJyZW5jaWVzKCkudmFsdWUoKSk7bnVsbD09PWV8fCJhbHdheXNPZmYiPT09KDAscnMuYWN0dWFsQ3VycmVuY3lVbml0TWV0cmljVmlzaWJpbGl0eSkoKS52YWx1ZSgpP3RoaXMuX2N1cnJlbmN5TGFiZWwuZGlzYWJsZUN1cnJlbmN5KCk6KHRoaXMuX2N1cnJlbmN5TGFiZWwuZW5hYmxlQ3VycmVuY3koKSx0aGlzLl9jdXJyZW5jeUxhYmVsLnNldEN1cnJlbmN5SW5mbyhlKSl9ZWxzZSB0aGlzLl9jdXJyZW5jeUxhYmVsLmRpc2FibGVDdXJyZW5jeSgpfV91cGRhdGVDdXJyZW5jeUxhYmVsVW5pdCgpe2lmKG51bGwhPT10aGlzLl9jdXJyZW5jeUxhYmVsJiZ0aGlzLl9vcHRpb25zLnVuaXRDb252ZXJzaW9uRW5hYmxlZCl7Y29uc3QgZT0iYWx3YXlzT2ZmIj09PSgwLHJzLmFjdHVhbEN1cnJlbmN5VW5pdE1ldHJpY1Zpc2liaWxpdHkpKCkudmFsdWUoKSx0PXRoaXMuX3VuZG9Nb2RlbC5tb2RlbCgpLmF2YWlsYWJsZVVuaXRzKCkudmFsdWUoKSxpPXRoaXMucHJpY2VTY2FsZSgpLnVuaXQodCk7bnVsbD09PWl8fGU/dGhpcy5fY3VycmVuY3lMYWJlbC5kaXNhYmxlVW5pdCgpOih0aGlzLl9jdXJyZW5jeUxhYmVsLmVuYWJsZVVuaXQoKSx0aGlzLl9jdXJyZW5jeUxhYmVsLnNldFVuaXRJbmZvKGkpKTtjb25zdCBzPXRoaXMucHJpY2VTY2FsZSgpLm1lYXN1cmVVbml0SWQodCk7bnVsbD09PXN8fGU/dGhpcy5fY3VycmVuY3lMYWJlbC5kaXNhYmxlTWVhc3VyZVVuaXRJZCgpOih0aGlzLl9jdXJyZW5jeUxhYmVsLmVuYWJsZU1lYXN1cmVVbml0SWQoKSx0aGlzLl9jdXJyZW5jeUxhYmVsLnNldE1lYXN1cmVVbml0SWRJbmZvKHMpKX19X3VwZGF0ZUN1cnJlbmN5TGFiZWxNZXRyaWMoKXtpZihudWxsIT09dGhpcy5fY3VycmVuY3lMYWJlbCYmdGhpcy5fb3B0aW9ucy5tZXRyaWNDb252ZXJzaW9uRW5hYmxlZCl7Y29uc3QgZT0iYWx3YXlzT2ZmIj09PSgwLApycy5hY3R1YWxDdXJyZW5jeVVuaXRNZXRyaWNWaXNpYmlsaXR5KSgpLnZhbHVlKCksdD10aGlzLl91bmRvTW9kZWwubW9kZWwoKS5hdmFpbGFibGVNZXRyaWNzKCksaT10aGlzLnByaWNlU2NhbGUoKS5tZXRyaWModCk7bnVsbD09PWl8fGU/dGhpcy5fY3VycmVuY3lMYWJlbC5kaXNhYmxlTWV0cmljKCk6KHRoaXMuX2N1cnJlbmN5TGFiZWwuZW5hYmxlTWV0cmljKCksdGhpcy5fY3VycmVuY3lMYWJlbC5zZXRNZXRyaWNJbmZvKGkpKX19X2dyb3VwZWRTb3VyY2VzKCl7Y29uc3QgZT10aGlzLl9wYW5lLnN0YXRlKCksdD1lLm1vZGVsKCksaT10aGlzLl9wYW5lLnN0YXRlKCkuc291cmNlc0J5R3JvdXAoKSxzPXRoaXMuX2lzTGVmdD9pLmxlZnRQcmljZVNjYWxlc1NvdXJjZXMoKTppLnJpZ2h0UHJpY2VTY2FsZXNTb3VyY2VzKCksbj10aGlzLl9wcmljZVNjYWxlPT09ZS5kZWZhdWx0UHJpY2VTY2FsZSgpLHI9bmV3IFNldChlLmN1c3RvbVNvdXJjZXMoKSksbz10PT4hIXIuaGFzKHQpfHwodC5wcmljZVNjYWxlKCk9PT10aGlzLl9wcmljZVNjYWxlfHxuJiZlLmlzT3ZlcmxheSh0KSksYT17c291cmNlczpbLi4ucy5maWx0ZXIobyksLi4uZS5jdXN0b21Tb3VyY2VzKCldLHRvcExldmVsU291cmNlczpuZXcgU2V0fTtpZihuKXtjb25zdCB0PXRoaXMuX3BhbmUuc3RhdGUoKS5kYXRhU291cmNlcygpO2Zvcihjb25zdCBpIG9mIHQpZS5pc092ZXJsYXkoaSkmJmEuc291cmNlcy5wdXNoKGkpfWNvbnN0IGw9dC5saW5lQmVpbmdFZGl0ZWQoKT8/dC5saW5lQmVpbmdDcmVhdGVkKCk7bCYmbyhsKSYmKGEudG9wTGV2ZWxTb3VyY2VzLmFkZChsKSxhLmxpbmVCZWluZ0VkaXRlZE9yQ3JlYXRlZD1sKTtjb25zdCBjPXQuY3VzdG9tU291cmNlQmVpbmdNb3ZlZCgpO2MmJm8oYykmJihhLnRvcExldmVsU291cmNlcy5hZGQoYyksYS5jdXN0b21Tb3VyY2VCZWluZ01vdmVkPWMpO2NvbnN0IGg9dC5zb3VyY2VzQmVpbmdNb3ZlZCgpLmZpbHRlcihvKTtoLmxlbmd0aD4wJiYodC5zb3VyY2VzQmVpbmdNb3ZlZCgpLmZvckVhY2goKGU9PmEudG9wTGV2ZWxTb3VyY2VzLmFkZChlKSkpLGEuc291cmNlc0JlaW5nTW92ZWQ9aCk7Y29uc3QgZD10LnNlbGVjdGlvbigpLmFsbFNvdXJjZXMoKS5maWx0ZXIobyk7ZC5sZW5ndGg+MCYmKGQuZm9yRWFjaCgoZT0+YS50b3BMZXZlbFNvdXJjZXMuYWRkKGUpKSksYS5zZWxlY3RlZFNvdXJjZXM9ZCk7Y29uc3QgdT10LmhvdmVyZWRTb3VyY2UoKTtyZXR1cm4gdSYmbyh1KSYmKGEudG9wTGV2ZWxTb3VyY2VzLmFkZCh1KSxhLmhvdmVyZWRTb3VyY2U9dSksYX1faXNDdXJyZW5jeUxhYmVsRW5hYmxlZCgpe3JldHVybiBudWxsIT09dGhpcy5fY3VycmVuY3lMYWJlbCYmdGhpcy5fY3VycmVuY3lMYWJlbC5pc0VuYWJsZWQoKX1fYWxpZ25MYWJlbHMoZSl7Y29uc3QgdD10aGlzLnByaWNlU2NhbGUoKSxpPXQubWFpblNvdXJjZSgpLHM9dGhpcy5fcGFuZS5zdGF0ZSgpLG49aT97bGFiZWxzOigpPT5pLnByaWNlQXhpc1ZpZXdzKHMsdCl9Om51bGw7IWZ1bmN0aW9uKGUpe2NvbnN0e3Zpc2libGVWaWV3czp0LGhlaWdodDppLHNjYWxlOnMscmVuZGVyZXJPcHRpb25zOm59PWU7bGV0IHI9aS8yO2NvbnN0IG89bHMobixpLHQpLGE9cy5tYWluU291cmNlKCk7bGV0IGw9W107bnVsbCE9PWEmJihsPWxzKG4saSxhLmxhYmVscygpKSxsLmxlbmd0aCYmKHI9bFswXS5jb29yZGluYXRlKCkpKTtjb25zdCBjPW8uZmlsdGVyKChlPT5lLmNvb3JkaW5hdGUoKTw9cikpLGg9by5maWx0ZXIoKGU9PmUuY29vcmRpbmF0ZSgpPnIpKTtjLnNvcnQoKChlLHQpPT57Y29uc3QgaT10LmNvb3JkaW5hdGUoKS1lLmNvb3JkaW5hdGUoKTtpZihpKXJldHVybiBpO2NvbnN0IHM9bC5pbmNsdWRlcyhlKT8xOjA7cmV0dXJuKGwuaW5jbHVkZXModCk/MTowKS1zfSkpLGMubGVuZ3RoPjAmJmgubGVuZ3RoPjAmJmgucHVzaChjWzBdKSxoLnNvcnQoKChlLHQpPT5lLmNvb3JkaW5hdGUoKS10LmNvb3JkaW5hdGUoKSkpO2Zvcihjb25zdCBlIG9mIG8pZS5zZXRGaXhlZENvb3JkaW5hdGUoZS5jb29yZGluYXRlKCkpO2lmKHMubGFiZWxzQWxpZ25pbmdFbmFibGVkKCkpe2lmKGgubGVuZ3RoPjB8fGMubGVuZ3RoPjApe3tjb25zdCBlPWNbMF0/P2hbMF0sdD1lLmZpeGVkT3JSZWd1bGFyQ29vcmRpbmF0ZSgpLHt0b3A6cyxib3R0b206cix0b3RhbDpvfT1lLnRvcEJvdHRvbVRvdGFsSGVpZ2h0KG4pO288aSYmdC1zPDAmJnQrcj4wJiZlLnNldEZpeGVkQ29vcmRpbmF0ZShzKX17Y29uc3QgZT1oWzBdPz9jWzBdLHQ9ZS5maXhlZE9yUmVndWxhckNvb3JkaW5hdGUoKSx7dG9wOnMsYm90dG9tOnIsdG90YWw6b309ZS50b3BCb3R0b21Ub3RhbEhlaWdodChuKTtvPGkmJnQtczxpJiZ0K3I+aSYmZS5zZXRGaXhlZENvb3JkaW5hdGUoaS1yKX19Zm9yKGxldCBlPTE7ZTxjLmxlbmd0aDtlKyspe2NvbnN0IHQ9Y1tlXSxpPWNbZS0xXSx7dG9wOnMsYm90dG9tOnIsdG90YWw6b309dC50b3BCb3R0b21Ub3RhbEhlaWdodChuKSxhPXQuZml4ZWRPclJlZ3VsYXJDb29yZGluYXRlKCksbD1pLmZpeGVkT3JSZWd1bGFyQ29vcmRpbmF0ZSgpO2lmKGE+bC1vKXQuc2V0Rml4ZWRDb29yZGluYXRlKGwtbyk7ZWxzZSBpZihsPjAmJmEtczwwJiZhK3I+MCl7Y29uc3R7dG9wOmV9PWkudG9wQm90dG9tVG90YWxIZWlnaHQobik7dC5zZXRGaXhlZENvb3JkaW5hdGUoTWF0aC5taW4obC1lLXIscykpfX1mb3IobGV0IGU9MTtlPGgubGVuZ3RoO2UrKyl7Y29uc3QgdD1oW2VdLHM9aFtlLTFdLHtib3R0b206cix0b3RhbDpvfT1zLnRvcEJvdHRvbVRvdGFsSGVpZ2h0KG4pLGE9dC5maXhlZE9yUmVndWxhckNvb3JkaW5hdGUoKSxsPXMuZml4ZWRPclJlZ3VsYXJDb29yZGluYXRlKCk7aWYoYTxsK28pdC5zZXRGaXhlZENvb3JkaW5hdGUobCtvKTtlbHNlIGlmKGw8aSl7Y29uc3R7dG9wOmUsYm90dG9tOnN9PXQudG9wQm90dG9tVG90YWxIZWlnaHQobik7YS1lPGkmJmErcz5pJiZ0LnNldEZpeGVkQ29vcmRpbmF0ZShNYXRoLm1heChsK3IrZSxpLXMpKX19fX0oe3Zpc2libGVWaWV3czplLGhlaWdodDp0aGlzLl9zaXplLmhlaWdodCxzY2FsZTp7CmxhYmVsc0FsaWduaW5nRW5hYmxlZDooKT0+dGhpcy5wcmljZVNjYWxlKCkucHJvcGVydGllcygpLmNoaWxkcygpLmFsaWduTGFiZWxzLnZhbHVlKCksbWFpblNvdXJjZTooKT0+bn0scmVuZGVyZXJPcHRpb25zOnRoaXMucmVuZGVyZXJPcHRpb25zKCl9KX1fZHJhd1RpY2tNYXJrcyhlLHQpe2NvbnN0IGk9dGhpcy5wcmljZVNjYWxlKCkubWFya3MoKTtlLnNhdmUoKTtjb25zdCBzPXRoaXMucmVuZGVyZXJPcHRpb25zKCkse2hvcml6b250YWxQaXhlbFJhdGlvOm4sdmVydGljYWxQaXhlbFJhdGlvOnJ9PXQsbz10aGlzLl9pc0xlZnQ/TWF0aC5mbG9vcigodGhpcy5fc2l6ZS53aWR0aC1zLmFkZGl0aW9uYWxQYWRkaW5nSW5uZXIpKm4pOjAsYT10aGlzLl9pc0xlZnQ/TWF0aC5yb3VuZChvLXMucGFkZGluZ0lubmVyKm4pOk1hdGgucm91bmQobysocy5hZGRpdGlvbmFsUGFkZGluZ0lubmVyK3MucGFkZGluZ0lubmVyKSpuKSxjPXRoaXMuZm9udFNpemUoKSxoPXRoaXMuX2lzQ3VycmVuY3lMYWJlbEVuYWJsZWQoKT8oMCxsLmVuc3VyZU5vdE51bGwpKHRoaXMuX2N1cnJlbmN5TGFiZWwpLmxhYmVsQm90dG9tKCk6MCxkPWkubWFwKCh0PT57aWYodGhpcy5fb3B0aW9ucy5jcm9wcGVkVGlja01hcmtzKXJldHVybnt2aXNpYmxlOiEwLHlDb3JyZWN0aW9uOnRoaXMuX3dpZHRoQ2FjaGUueU1pZENvcnJlY3Rpb24oZSx0LmxhYmVsKX07Y29uc3QgaT10LmNvb3JkLWMvMixzPXQuY29vcmQrYy8yLG49IShzPnRoaXMuX3NpemUuaGVpZ2h0fHxpPGgpO3JldHVybnt2aXNpYmxlOiEocz50aGlzLl9zaXplLmhlaWdodHx8aTxoKSx5Q29ycmVjdGlvbjpuP3RoaXMuX3dpZHRoQ2FjaGUueU1pZENvcnJlY3Rpb24oZSx0LmxhYmVsKTowfX0pKTtlLmZpbGxTdHlsZT10aGlzLnRleHRDb2xvcigpLGUudGV4dEFsaWduPXRoaXMuX2lzTGVmdD8icmlnaHQiOiJsZWZ0IixlLnRleHRCYXNlbGluZT0ibWlkZGxlIjtjb25zdCB1PSF0aGlzLnByaWNlU2NhbGUoKS5pc0xvZygpLHA9dGhpcy5iYXNlRm9udCgpLF89dGhpcy5iYXNlRm9udCghMCk7KDAsS3QuZHJhd1NjYWxlZCkoZSxuLHIsKCgpPT57Zm9yKGxldCB0PWkubGVuZ3RoO3QtLTspe2lmKCFkW3RdLnZpc2libGUpY29udGludWU7Y29uc3Qgcz1pW3RdO2UuZm9udD11JiZzLmJvbGQ/XzpwLGUuZmlsbFRleHQocy5sYWJlbCxhL24scy5jb29yZCtkW3RdLnlDb3JyZWN0aW9uKX19KSksZS5yZXN0b3JlKCl9YXN5bmMgX3Nob3dDdXJyZW5jaWVzQ29udGV4dE1lbnUoKXtpZih0aGlzLl9jdXJyZW5jeU1lbnUpcmV0dXJuIHRoaXMuX2N1cnJlbmN5TWVudS5kZXN0cm95KCksdm9pZCh0aGlzLl9jdXJyZW5jeU1lbnU9bnVsbCk7bGV0IGU7KDAsTXQudHJhY2tFdmVudCkoIkdVSSIsIkN1cnJlbmN5IGNvbnZlcnNpb24iKTtjb25zdCB0PSgpPT57dGhpcy5fY3VycmVuY3lNZW51PW51bGwsdGhpcy5fcmVjYWxjQ3VycmVuY3lVbml0QW5kTWV0cmljVmlzaWJpbGl0eSgpLHRoaXMuX2N1cnJlbmN5TGFiZWw/LnNldEN1cnJlbmN5RXhwYW5kZWQoITEpfTtpZih4cyllPWF3YWl0IFFpKCgwLGwuZW5zdXJlTm90TnVsbCkodGhpcy5fY3VycmVuY3lMYWJlbCkuY3VycmVuY3lMYWJlbEVsZW1lbnQoKSxbInRvZ2dsZV9jdXJyZW5jeV9tZW51X2lubmVyIix0aGlzLl91bmRvTW9kZWwubW9kZWwoKS5pZCgpLHRoaXMuX3BhbmUuc3RhdGUoKS5pZCgpLHRoaXMucHJpY2VTY2FsZSgpLmlkKCldLHQpO2Vsc2V7Y29uc3R7Y3VycmVuY3lBY3Rpb25zOnN9PWF3YWl0IFByb21pc2UuYWxsKFtpLmUoMTY1OTgpLGkuZSg4NDMwNiksaS5lKDI5Mjk2KSxpLmUoNTIzOTYpLGkuZSg2MDA2MiksaS5lKDQ2OTA3KSxpLmUoMTM0OTIpLGkuZSgzNzc0NiksaS5lKDgxMDcyKSxpLmUoMTAzODUpLGkuZSg1MjA2NSksaS5lKDY2MDUpLGkuZSg4OTIwNCksaS5lKDMyMTc2KSxpLmUoMjAyKSxpLmUoODg2NDEpLGkuZSg3MDY1NiksaS5lKDMyODU3KSxpLmUoNTI5NjEpLGkuZSgzMjM4NyksaS5lKDM5NjA5KSxpLmUoMzU5NjQpLGkuZSg4Mjk3KV0pLnRoZW4oaS5iaW5kKGksNzM2MTY5KSk7ZT1hd2FpdCBKaShfcywoKCk9PnModGhpcy5fdW5kb01vZGVsLCgwLGwuZW5zdXJlTm90TnVsbCkodGhpcy5fY3VycmVuY3lMYWJlbCkuY3VycmVuY3lJbmZvKCksdGhpcy5wcmljZVNjYWxlKCkpKSwoMCxsLmVuc3VyZU5vdE51bGwpKHRoaXMuX2N1cnJlbmN5TGFiZWwpLmN1cnJlbmN5TGFiZWxFbGVtZW50KCksdCl9dGhpcy5fZGVzdHJveWVkP2UuZGVzdHJveSgpOih0aGlzLl9jdXJyZW5jeUxhYmVsPy5zZXRDdXJyZW5jeUV4cGFuZGVkKCEwKSx0aGlzLl9jdXJyZW5jeU1lbnU9ZSl9YXN5bmMgX3Nob3dVbml0c0NvbnRleHRNZW51KCl7aWYodGhpcy5fdW5pdE1lbnUpcmV0dXJuIHRoaXMuX3VuaXRNZW51LmRlc3Ryb3koKSx2b2lkKHRoaXMuX3VuaXRNZW51PW51bGwpO2xldCBlOygwLE10LnRyYWNrRXZlbnQpKCJHVUkiLCJVbml0IGNvbnZlcnNpb24iKTtjb25zdCB0PSgpPT57dGhpcy5fdW5pdE1lbnU9bnVsbCx0aGlzLl9yZWNhbGNDdXJyZW5jeVVuaXRBbmRNZXRyaWNWaXNpYmlsaXR5KCksdGhpcy5fY3VycmVuY3lMYWJlbD8uc2V0VW5pdEV4cGFuZGVkKCExKX07aWYoTXMpZT1hd2FpdCBRaSgoMCxsLmVuc3VyZU5vdE51bGwpKHRoaXMuX2N1cnJlbmN5TGFiZWwpLnVuaXRMYWJlbEVsZW1lbnQoKSxbInRvZ2dsZV91bml0X21lbnVfaW5uZXIiLHRoaXMuX3VuZG9Nb2RlbC5tb2RlbCgpLmlkKCksdGhpcy5fcGFuZS5zdGF0ZSgpLmlkKCksdGhpcy5wcmljZVNjYWxlKCkuaWQoKV0sdCk7ZWxzZXsKY29uc3R7dW5pdEFjdGlvbnM6c309YXdhaXQgUHJvbWlzZS5hbGwoW2kuZSgxNjU5OCksaS5lKDg0MzA2KSxpLmUoMjkyOTYpLGkuZSg1MjM5NiksaS5lKDYwMDYyKSxpLmUoNDY5MDcpLGkuZSgxMzQ5MiksaS5lKDM3NzQ2KSxpLmUoODEwNzIpLGkuZSgxMDM4NSksaS5lKDUyMDY1KSxpLmUoNjYwNSksaS5lKDg5MjA0KSxpLmUoMzIxNzYpLGkuZSgyMDIpLGkuZSg4ODY0MSksaS5lKDcwNjU2KSxpLmUoMzI4NTcpLGkuZSg1Mjk2MSksaS5lKDMyMzg3KSxpLmUoMzk2MDkpLGkuZSgzNTk2NCksaS5lKDgyOTcpXSkudGhlbihpLmJpbmQoaSwxODYwNDApKTtlPWF3YWl0IEppKG1zLCgoKT0+cyh0aGlzLl91bmRvTW9kZWwsKDAsbC5lbnN1cmVOb3ROdWxsKSh0aGlzLl9jdXJyZW5jeUxhYmVsKS51bml0SW5mbygpLHRoaXMucHJpY2VTY2FsZSgpKSksKDAsbC5lbnN1cmVOb3ROdWxsKSh0aGlzLl9jdXJyZW5jeUxhYmVsKS51bml0TGFiZWxFbGVtZW50KCksdCl9dGhpcy5fZGVzdHJveWVkP2UuZGVzdHJveSgpOih0aGlzLl9jdXJyZW5jeUxhYmVsPy5zZXRVbml0RXhwYW5kZWQoITApLHRoaXMuX3VuaXRNZW51PWUpfWFzeW5jIF9zaG93TWV0cmljc0NvbnRleHRNZW51KCl7aWYodGhpcy5fbWV0cmljTWVudSlyZXR1cm4gdGhpcy5fbWV0cmljTWVudS5kZXN0cm95KCksdm9pZCh0aGlzLl9tZXRyaWNNZW51PW51bGwpO2xldCBlOygwLE10LnRyYWNrRXZlbnQpKCJHVUkiLCJNZXRyaWMgc3dpdGNoZXIiKTtjb25zdCB0PSgpPT57dGhpcy5fbWV0cmljTWVudT1udWxsLHRoaXMuX3JlY2FsY0N1cnJlbmN5VW5pdEFuZE1ldHJpY1Zpc2liaWxpdHkoKSx0aGlzLl9jdXJyZW5jeUxhYmVsPy5zZXRNZXRyaWNFeHBhbmRlZCghMSl9O2lmKElzKWU9YXdhaXQgUWkoKDAsbC5lbnN1cmVOb3ROdWxsKSh0aGlzLl9jdXJyZW5jeUxhYmVsKS5tZXRyaWNMYWJlbEVsZW1lbnQoKSxbInRvZ2dsZV9tZXRyaWNfbWVudV9pbm5lciIsdGhpcy5fdW5kb01vZGVsLm1vZGVsKCkuaWQoKSx0aGlzLl9wYW5lLnN0YXRlKCkuaWQoKSx0aGlzLnByaWNlU2NhbGUoKS5pZCgpXSx0KTtlbHNle2NvbnN0e21ldHJpY0FjdGlvbnM6c309YXdhaXQgUHJvbWlzZS5hbGwoW2kuZSgxNjU5OCksaS5lKDg0MzA2KSxpLmUoMjkyOTYpLGkuZSg1MjM5NiksaS5lKDYwMDYyKSxpLmUoNDY5MDcpLGkuZSgxMzQ5MiksaS5lKDM3NzQ2KSxpLmUoODEwNzIpLGkuZSgxMDM4NSksaS5lKDUyMDY1KSxpLmUoNjYwNSksaS5lKDg5MjA0KSxpLmUoMzIxNzYpLGkuZSgyMDIpLGkuZSg4ODY0MSksaS5lKDcwNjU2KSxpLmUoMzI4NTcpLGkuZSg1Mjk2MSksaS5lKDMyMzg3KSxpLmUoMzk2MDkpLGkuZSgzNTk2NCksaS5lKDgyOTcpXSkudGhlbihpLmJpbmQoaSw0Mzk5MTQpKTtlPWF3YWl0IEppKGdzLCgoKT0+cyh0aGlzLl91bmRvTW9kZWwsKDAsbC5lbnN1cmVOb3ROdWxsKSh0aGlzLl9jdXJyZW5jeUxhYmVsKS5tZXRyaWNJbmZvKCksdGhpcy5wcmljZVNjYWxlKCkpKSwoMCxsLmVuc3VyZU5vdE51bGwpKHRoaXMuX2N1cnJlbmN5TGFiZWwpLm1ldHJpY0xhYmVsRWxlbWVudCgpLHQsITApfXRoaXMuX2Rlc3Ryb3llZD9lLmRlc3Ryb3koKToodGhpcy5fY3VycmVuY3lMYWJlbD8uc2V0TWV0cmljRXhwYW5kZWQoITApLHRoaXMuX21ldHJpY01lbnU9ZSl9X29uRm9udFNpemVDaGFuZ2VkKCl7dGhpcy5vbk9wdGltYWxXaWR0aE5lZWRUb0JlUmVjYWxjdWxhdGVkKCl9X21vdXNlT3JUb3VjaE1vdmVFdmVudChlKXtpZighdGhpcy5fcHJpY2VTY2FsZSlyZXR1cm47aWYodGhpcy5fY2hhcnQuY2hhcnRGbG9hdGluZ1Rvb2x0aXBWaXNpYmxlKCkpcmV0dXJuIHZvaWQgdGhpcy5fc2V0Q3Vyc29yQ2xhc3NOYW1lKCJkZWZhdWx0Iik7aWYoZS5sb2NhbFg8MHx8ZS5sb2NhbFk8MHx8ZS5sb2NhbFg+PXRoaXMuX3NpemUud2lkdGh8fGUubG9jYWxZPj10aGlzLl9zaXplLmhlaWdodClyZXR1cm47bGV0IHQ9ITA7Y29uc3QgaT10aGlzLmRhdGFTb3VyY2VBdFBvaW50KGUubG9jYWxYLGUubG9jYWxZKTtpPygoMCxxaS5pc0FsZXJ0TGFiZWwpKGkpP3RoaXMuX3NldEN1cnNvckNsYXNzTmFtZSgiZGVmYXVsdCIpOnRoaXMuX3NldEN1cnNvckNsYXNzTmFtZSgicG9pbnRlciIpLHRoaXMuX2xhc3RIaXR0ZXN0UmVzdWx0Py5kYXRhKCk/LmhvdmVyTW9kZWxGcm9tQXhpcyYmKHRoaXMuX3VuZG9Nb2RlbC5tb2RlbCgpLnNldEhvdmVyZWRTb3VyY2UoaSx0aGlzLl9sYXN0SGl0dGVzdFJlc3VsdD8uZGF0YSgpPz9udWxsLDApLHQ9ITEpKTp0aGlzLl9zZXRSZXNpemVDdXJzb3IoKSx0JiZ0aGlzLl91bmRvTW9kZWwubW9kZWwoKS5zZXRIb3ZlcmVkU291cmNlKG51bGwsbnVsbCl9X21vdXNlRG93bk9yVG91Y2hTdGFydEV2ZW50KGUpe3RoaXMuX3pvb21BdmFpbGFibGUoKSYmdGhpcy5fb3B0aW9ucy5wcmVzc2VkTW91c2VNb3ZlU2NhbGUmJiF0aGlzLl9waW5jaGluZyYmKHRoaXMuX2RyYWdTY2FsZUFjdGl2ZT0hMCx0aGlzLl91bmRvTW9kZWwuc3RhcnRTY2FsZVByaWNlKHRoaXMuX3BhbmUuc3RhdGUoKSx0aGlzLnByaWNlU2NhbGUoKSxlLmxvY2FsWSkpfV9tb3VzZUVudGVyT3JUb3VjaFN0YXJ0RXZlbnQoZSl7dGhpcy5fc2V0UmVzaXplQ3Vyc29yKCl9X3ByZXNzZWRNb3VzZU9yVG91Y2hNb3ZlRXZlbnQoZSl7aWYodGhpcy5fZHJhZ1NjYWxlQWN0aXZlKXtjb25zdCB0PXRoaXMucHJpY2VTY2FsZSgpO3RoaXMuX3VuZG9Nb2RlbC5zY2FsZVByaWNlVG8odGhpcy5fcGFuZS5zdGF0ZSgpLHQsZS5sb2NhbFkpfX1fbW91c2VVcE9yVG91Y2hFbmRFdmVudChlKXt0aGlzLl9maW5pc2hTY2FsZSgpfV9maW5pc2hTY2FsZSgpe3RoaXMuX2RyYWdTY2FsZUFjdGl2ZSYmKHRoaXMuX3VuZG9Nb2RlbC5lbmRTY2FsZVByaWNlKHRoaXMuX3BhbmUuc3RhdGUoKSx0aGlzLnByaWNlU2NhbGUoKSksdGhpcy5yZXN0b3JlRGVmYXVsdEN1cnNvcigpLHRoaXMuX2RyYWdTY2FsZUFjdGl2ZT0hMSl9X21vdXNlQ2xpY2tPclRhcEV2ZW50KGUpe2lmKHRoaXMuX2N1cnJlbmN5TGFiZWwpewppZih0aGlzLl9jdXJyZW5jeUxhYmVsLmN1cnJlbmN5Q29udmVyc2lvbkF2YWlsYWJsZSgpJiZ0aGlzLl9jdXJyZW5jeUxhYmVsLmN1cnJlbmN5TGFiZWxFbGVtZW50KCkuY29udGFpbnMoZS50YXJnZXQpKXJldHVybiB0aGlzLl9zaG93Q3VycmVuY2llc0NvbnRleHRNZW51KCksdm9pZCBlLnByZXZlbnREZWZhdWx0KCk7aWYodGhpcy5fY3VycmVuY3lMYWJlbC51bml0Q29udmVyc2lvbkF2YWlsYWJsZSgpJiZ0aGlzLl9jdXJyZW5jeUxhYmVsLnVuaXRMYWJlbEVsZW1lbnQoKS5jb250YWlucyhlLnRhcmdldCkpcmV0dXJuIHRoaXMuX3Nob3dVbml0c0NvbnRleHRNZW51KCksdm9pZCBlLnByZXZlbnREZWZhdWx0KCk7aWYodGhpcy5fY3VycmVuY3lMYWJlbC5tZXRyaWNDb252ZXJzaW9uQXZhaWxhYmxlKCkmJnRoaXMuX2N1cnJlbmN5TGFiZWwubWV0cmljTGFiZWxFbGVtZW50KCkuY29udGFpbnMoZS50YXJnZXQpKXJldHVybiB0aGlzLl9zaG93TWV0cmljc0NvbnRleHRNZW51KCksdm9pZCBlLnByZXZlbnREZWZhdWx0KCl9ZS5pc1RvdWNoJiZ0aGlzLl9zZWxlY3RlZFZpYVRhcC5zZXRWYWx1ZSghdGhpcy5fc2VsZWN0ZWRWaWFUYXAudmFsdWUoKSk7Y29uc3QgdD10aGlzLmRhdGFTb3VyY2VBdFBvaW50KGUubG9jYWxYLGUubG9jYWxZKTt0JiZ0aGlzLl91bmRvTW9kZWwuc2VsZWN0aW9uTWFjcm8oKGU9PntlLnNlbGVjdGlvbigpLmlzU2VsZWN0ZWQodCkmJnRoaXMuX3VuZG9Nb2RlbC5tb2RlbCgpLmxhc3RTZWxlY3RlZEhpdHRlc3REYXRhKCk9PT10aGlzLl9sYXN0SGl0dGVzdFJlc3VsdD8uZGF0YSgpfHwoZS5jbGVhclNlbGVjdGlvbigpLGUuYWRkSXRlbVRvU2VsZWN0aW9uKHQsdGhpcy5fbGFzdEhpdHRlc3RSZXN1bHQ/LmRhdGEoKT8/bnVsbCkpfSkpfV9tb3VzZUxlYXZlT3JUb3VjaEVuZEV2ZW50KGUpe3RoaXMuX3NldEN1cnNvckNsYXNzTmFtZSgiIil9X21vdXNlRG91YmxlQ2xpY2tPckRvdWJsZVRhcEV2ZW50KGUpe2lmKHRoaXMuX2N1cnJlbmN5TGFiZWw/LmN1cnJlbmN5TGFiZWxFbGVtZW50KCkuY29udGFpbnMoZS50YXJnZXQpfHx0aGlzLl9jdXJyZW5jeUxhYmVsPy51bml0TGFiZWxFbGVtZW50KCkuY29udGFpbnMoZS50YXJnZXQpKXJldHVybjtjb25zdCB0PXRoaXMuZGF0YVNvdXJjZUF0UG9pbnQoZS5sb2NhbFgsZS5sb2NhbFkpO3Q/dGhpcy5fcGFuZS5wcm9jZXNzRG91YmxlQ2xpY2tPblNvdXJjZSh0LHRoaXMuX2xhc3RIaXR0ZXN0UmVzdWx0Pz92b2lkIDAse29yaWdpbjoicHJpY2Vfc2NhbGUifSk6KHRoaXMucmVzZXQoKSwoMCxNdC50cmFja0V2ZW50KSgiR1VJIiwiRG91YmxlIGNsaWNrIHByaWNlIHNjYWxlIikpfWFzeW5jIF9jb250ZXh0TWVudU9yVG91Y2hDb250ZXh0TWVudUV2ZW50KGUpe2lmKHRoaXMuX29wdGlvbnMuY29udGV4dE1lbnVFbmFibGVkKXtjb25zdCB0PXRoaXMuZGF0YVNvdXJjZUF0UG9pbnQoZS5sb2NhbFgsZS5sb2NhbFkpO2lmKG51bGwhPT10JiZ0aGlzLl9vcHRpb25zLmNvbnRleHRNZW51LnNvdXJjZSl7cmV0dXJuIHZvaWQgdGhpcy5fdW5kb01vZGVsLm1vZGVsKCkuc2VsZWN0aW9uTWFjcm8oKGk9PntpLnNlbGVjdGlvbigpLmlzU2VsZWN0ZWQodCl8fChpLmNsZWFyU2VsZWN0aW9uKCksaS5hZGRJdGVtVG9TZWxlY3Rpb24odCkpLHRoaXMuX3BhbmUuc2hvd0NvbnRleHRNZW51Rm9yU2VsZWN0aW9uKGUse29yaWdpbjoicHJpY2Vfc2NhbGUifSl9KSl9aWYodGhpcy5fb3B0aW9ucy5jb250ZXh0TWVudS5nZW5lcmFsKXtjb25zdCB0PWF3YWl0IHRoaXMuZ2V0Q29udGV4dE1lbnVBY3Rpb25zKCEwKSxpPXRoaXMuX3VuZG9Nb2RlbC5tb2RlbCgpLnBhbmVzKCkuZmluZEluZGV4KChlPT5lLmlkKCk9PT10aGlzLl9wYW5lLnN0YXRlKCkuaWQoKSkpLHM9dGhpcy5fY2hhcnQuY2hhcnRXaWRnZXRDb2xsZWN0aW9uKCkuY2hhcnRNb2RlbHMoKS52YWx1ZSgpLmZpbmRJbmRleCgoZT0+ZS5pZCgpPT09dGhpcy5fdW5kb01vZGVsLmlkKCkpKSxuPXRoaXMuX3ByaWNlU2NhbGU/LmlkKCkmJi0xIT09aSYmLTEhPT1zO05pLkNvbnRleHRNZW51TWFuYWdlci5zaG93TWVudSh0LGUse3N0YXROYW1lOiJQcmljZVNjYWxlQ29udGV4dE1lbnUifSx7bWVudU5hbWU6IlByaWNlU2NhbGVDb250ZXh0TWVudSIsLi4ubiYme2RldGFpbDp7dHlwZToicHJpY2VTY2FsZSIsaWQ6dGhpcy5fcHJpY2VTY2FsZT8uaWQoKT8/IiIscGFuZUluZGV4OmksY2hhcnRJbmRleDpzfX19KX19fV9zZXRSZXNpemVDdXJzb3IoKXtjb25zdCBlPXRoaXMucHJpY2VTY2FsZSgpO2UuaXNQZXJjZW50YWdlKCl8fGUuaXNJbmRleGVkVG8xMDAoKT90aGlzLl9zZXRDdXJzb3JDbGFzc05hbWUoIiIpOnRoaXMuX3pvb21BdmFpbGFibGUoKSYmKHRoaXMuX29wdGlvbnMucHJlc3NlZE1vdXNlTW92ZVNjYWxlfHx0aGlzLl9vcHRpb25zLm1vdXNlV2hlZWxTY2FsZSkmJnRoaXMuX3NldEN1cnNvckNsYXNzTmFtZSgibnMtcmVzaXplIil9X3NldEN1cnNvckNsYXNzTmFtZShlKXtsZXQgdD0iIjtlJiYhdGhpcy5fcGFuZS52aXN1YWxseUNvbGxhcHNlZCgpLnZhbHVlKCkmJih0PSJwcmljZS1heGlzLS1jdXJzb3ItIitlKSx0aGlzLl9jdXJyZW50Q3Vyc29yQ2xhc3NOYW1lIT09dCYmKHRoaXMuX2N1cnJlbnRDdXJzb3JDbGFzc05hbWUmJnRoaXMuX2NlbGwuY2xhc3NMaXN0LnJlbW92ZSh0aGlzLl9jdXJyZW50Q3Vyc29yQ2xhc3NOYW1lKSx0JiZ0aGlzLl9jZWxsLmNsYXNzTGlzdC5hZGQodCksdGhpcy5fY3VycmVudEN1cnNvckNsYXNzTmFtZT10KX1fem9vbUF2YWlsYWJsZSgpe3JldHVybiF0aGlzLnByaWNlU2NhbGUoKS5pc0VtcHR5KCkmJnRoaXMucHJpY2VTY2FsZSgpLmhhc0NhbGN1bGF0ZWRQcmljZVJhbmdlKCkmJnRoaXMuX3VuZG9Nb2RlbC5tb2RlbCgpLnpvb21FbmFibGVkKCl9X29uTW91c2V3aGVlbChlKXtpZighdGhpcy5fem9vbUF2YWlsYWJsZSgpfHwhdGhpcy5fb3B0aW9ucy5tb3VzZVdoZWVsU2NhbGUpcmV0dXJuO2NvbnN0IHQ9KDAsbC5lbnN1cmVOb3ROdWxsKSh0aGlzLl9tb3VzZVdoZWVsSGVscGVyKS5wcm9jZXNzV2hlZWwoZSkuZGVsdGFZO2lmKDA9PT10KXJldHVybgo7ZS5jYW5jZWxhYmxlJiZlLnByZXZlbnREZWZhdWx0KCk7Y29uc3QgaT10aGlzLl91bmRvTW9kZWwscz10aGlzLl9wYW5lLnN0YXRlKCksbj10aGlzLnByaWNlU2NhbGUoKSxyPXRoaXMuX2NlbGwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksbz1lLmNsaWVudFktci50b3AsYT1vKzE1KnQ7aS5zdGFydFNjYWxlUHJpY2Uocyx0aGlzLnByaWNlU2NhbGUoKSxvLCEwKSxpLnNjYWxlUHJpY2VUbyhzLG4sYSksaS5lbmRTY2FsZVByaWNlKHMsbiksZS5zdG9wUHJvcGFnYXRpb24oKX1fZHJhd0Nyb3NzSGFpckxhYmVsKGUsdCl7Y29uc3QgaT10aGlzLl9wYW5lLnN0YXRlKCkscz1pLm1vZGVsKCksbj10aGlzLnByaWNlU2NhbGUoKSxyPXMuY3Jvc3NoYWlyU291cmNlKCkucHJpY2VBeGlzVmlld3MoaSxuKTtyJiZyLmxlbmd0aD4wJiZ0aGlzLl9kcmF3TGFiZWxzKHIsZSx0KX1fZHJhd0JhY2tncm91bmQoZSx0KXtjb25zdCBpPXRoaXMuYmFja2dyb3VuZFRvcENvbG9yKCkscz10aGlzLmJhY2tncm91bmRDb2xvcigpLHtiaXRtYXBTaXplOm59PXQ7aWYoaT09PXM/KDAsS3QuY2xlYXJSZWN0KShlLDAsMCxuLndpZHRoLG4uaGVpZ2h0LHRoaXMuYmFja2dyb3VuZENvbG9yKCkpOigwLERpLmNsZWFyUmVjdFdpdGhHcmFkaWVudCkoZSwwLDAsbi53aWR0aCxuLmhlaWdodCxpLHMpLHRoaXMuX2hpZ2hsaWdodGVkKXtlLmdsb2JhbEFscGhhPS41O2NvbnN0IHQ9ay50aGVtZXNbdGhpcy5fYmFja2dyb3VuZEJhc2VkVGhlbWUudmFsdWUoKV0uZ2V0VGhlbWVkQ29sb3IoImNvbG9yLXByaWNlLWF4aXMtaGlnaGxpZ2h0Iik7KDAsS3QuZmlsbFJlY3QpKGUsMCwwLG4ud2lkdGgsbi5oZWlnaHQsdCksZS5nbG9iYWxBbHBoYT0xfX1fZHJhd0RyYXdpbmdzSGlnaGxpZ2h0KGUsdCl7Y29uc3QgaT10aGlzLl9wYW5lLnN0YXRlKCkubW9kZWwoKSxzPXRoaXMucHJpY2VTY2FsZSgpLG49aS5zZWxlY3Rpb24oKS5saW5lRGF0YVNvdXJjZXMoKS5maWx0ZXIoKGU9PiFlLmlzRml4ZWQoKSYmZS5wcmljZVNjYWxlKCk9PT1zKSkucmVkdWNlKCgoZSx0KT0+e2NvbnN0IGk9dC5wcmljZUF4aXNQb2ludHMoKTtyZXR1cm4gMD09PWkubGVuZ3RoP2U6ZS5jb25jYXQoaSl9KSxbXSk7bi5sZW5ndGg+MCYmdGhpcy5faGlnaHRsaWdodEJhY2tncm91bmQoZSxuLHRoaXMucHJpY2VTY2FsZSgpLm1haW5Tb3VyY2UoKSx0KTtjb25zdCByPWkuY3Jvc3NoYWlyU291cmNlKCk7ci5zdGFydE1lYXN1cmVQb2ludCgpJiZ0aGlzLl9oaWdodGxpZ2h0QmFja2dyb3VuZChlLHIubWVhc3VyZVBvaW50cygpLHRoaXMucHJpY2VTY2FsZSgpLm1haW5Tb3VyY2UoKSx0KX1fZHJhd0JvcmRlcihlLHQpe2Uuc2F2ZSgpLGUuZmlsbFN0eWxlPXRoaXMubGluZUNvbG9yKCk7Y29uc3R7aG9yaXpvbnRhbFBpeGVsUmF0aW86aX09dCxzPU1hdGgubWF4KDEsTWF0aC5mbG9vcih0aGlzLnJlbmRlcmVyT3B0aW9ucygpLmJvcmRlclNpemUqaSkpLG49dGhpcy5faXNMZWZ0P3QuYml0bWFwU2l6ZS53aWR0aC1zOjA7ZS5maWxsUmVjdChuLDAscyx0LmJpdG1hcFNpemUuaGVpZ2h0KSxlLnJlc3RvcmUoKX1fZHJhd0xhYmVscyhlLHQsaSl7Y29uc3Qgcz10aGlzLnJlbmRlcmVyT3B0aW9ucygpLG49dGhpcy5faXNMZWZ0PyJyaWdodCI6ImxlZnQiO2Zvcihjb25zdCByIG9mIGUpci5pc0F4aXNMYWJlbFZpc2libGUoKSYmKHQuc2F2ZSgpLHIucmVuZGVyZXIoKS5kcmF3KHQsaSxzLHRoaXMuX3dpZHRoQ2FjaGUsbiksdC5yZXN0b3JlKCkpfV9oaWdodGxpZ2h0QmFja2dyb3VuZChlLHQsaSxzKXtpZighaSlyZXR1cm47Y29uc3Qgbj1pLmZpcnN0VmFsdWUoKTtpZihudWxsPT09bilyZXR1cm47bGV0IHI9dFswXS5wcmljZSxvPXRbMF0ucHJpY2U7Zm9yKGxldCBlPTE7ZTx0Lmxlbmd0aDtlKyspcj1NYXRoLm1pbihyLHRbZV0ucHJpY2UpLG89TWF0aC5tYXgobyx0W2VdLnByaWNlKTtjb25zdHtob3Jpem9udGFsUGl4ZWxSYXRpbzphLHZlcnRpY2FsUGl4ZWxSYXRpbzpsfT1zLGM9dGhpcy5wcmljZVNjYWxlKCksaD1NYXRoLmZsb29yKGMucHJpY2VUb0Nvb3JkaW5hdGUocixuKSpsKSxkPU1hdGguY2VpbChjLnByaWNlVG9Db29yZGluYXRlKG8sbikqbCk7KDAsS3QuZmlsbFJlY3QpKGUsTWF0aC5mbG9vcihhKSxoLHMuYml0bWFwU2l6ZS53aWR0aCxkLWgsdGhpcy5fcHJvcGVydGllcy5jaGlsZHMoKS5heGlzSGlnaGxpZ2h0Q29sb3IudmFsdWUoKSl9X3ZpZXdzT3JNYXhNaW5WaWV3cyhlKXtjb25zdCB0PXRoaXMuX3BhbmUuc3RhdGUoKSxpPXRoaXMucHJpY2VTY2FsZSgpO2lmKDA9PT1lLmxlbmd0aClyZXR1cm5bXTtpZigxPT09ZS5sZW5ndGgpcmV0dXJuIGVbMF0ucHJpY2VBeGlzVmlld3ModCxpKT8/W107e2xldCBzPTEvMCxuPS0xLzAscj1udWxsLG89bnVsbDtmb3IoY29uc3QgYSBvZiBlKXtjb25zdCBlPWEucHJpY2VBeGlzVmlld3ModCxpKT8/W107Zm9yKGNvbnN0IHQgb2YgZSl7aWYoIXQuaXNWaXNpYmxlKCkpY29udGludWU7Y29uc3QgZT10LmZpeGVkT3JSZWd1bGFyQ29vcmRpbmF0ZSgpO2U+PW4mJihuPWUsbz10KSxlPD1zJiYocz1lLHI9dCl9fXJldHVybiBvJiZyP1tvLHJdOltdfX1fdmlld3MoZSx0KXtjb25zdCBpPXRoaXMuX3BhbmUuc3RhdGUoKSxzPXRoaXMucHJpY2VTY2FsZSgpLG49W107aWYoMSE9PWUpZm9yKGNvbnN0IGUgb2YgdC5zb3VyY2VzKXQudG9wTGV2ZWxTb3VyY2VzLmhhcyhlKXx8bi5wdXNoKC4uLmUucHJpY2VBeGlzVmlld3MoaSxzKT8/W10pO2lmKDAhPT1lKXtjb25zdCBlPW5ldyBTZXQscj10PT4hZS5oYXModCksbz10PT57Y29uc3QgaT10LmZpbHRlcihyKTtuLnB1c2goLi4udGhpcy5fdmlld3NPck1heE1pblZpZXdzKGkpKTtmb3IoY29uc3QgdCBvZiBpKWUuYWRkKHQpfTt0LmN1c3RvbVNvdXJjZUJlaW5nTW92ZWQmJm8oW3QuY3VzdG9tU291cmNlQmVpbmdNb3ZlZF0pLHQuc291cmNlc0JlaW5nTW92ZWQmJm8odC5zb3VyY2VzQmVpbmdNb3ZlZCksdC5zZWxlY3RlZFNvdXJjZXMmJm8odC5zZWxlY3RlZFNvdXJjZXMpLHQuaG92ZXJlZFNvdXJjZSYmbyhbdC5ob3ZlcmVkU291cmNlXSksCnQubGluZUJlaW5nRWRpdGVkT3JDcmVhdGVkJiZvKFt0LmxpbmVCZWluZ0VkaXRlZE9yQ3JlYXRlZF0pO2Zvcihjb25zdCBlIG9mWy4uLnQuc291cmNlcywuLi5pLmN1c3RvbVNvdXJjZXMoKV0pZS50b3BQcmljZUF4aXNWaWV3cyYmbi5wdXNoKC4uLmUudG9wUHJpY2VBeGlzVmlld3MoaSxzKT8/W10pfXJldHVybiBufV9pbml0QWN0aW9ucygpe2lmKCF0aGlzLl9wYW5lLmhhc1N0YXRlKCl8fG51bGwhPT10aGlzLl9hY3Rpb25zKXJldHVybjtjb25zdCBlPXRoaXMuX3VuZG9Nb2RlbCx0PW5ldyBhcy5BY3Rpb25XaXRoU3RhbmRhcmRJY29uKHthY3Rpb25JZDoiQ2hhcnQuUHJpY2VTY2FsZS5SZXNldCIsb3B0aW9uczp7bGFiZWw6ZnMsaWNvbklkOiJDaGFydC5SZXNldCIsc2hvcnRjdXRIaW50OigwLEsuaHVtYW5SZWFkYWJsZUhhc2gpKEsuTW9kaWZpZXJzLkFsdCs4Miksc3RhdE5hbWU6IlJlc2V0U2NhbGUiLG9uRXhlY3V0ZTooKT0+dGhpcy5yZXNldCgpfX0pLGk9bmV3IGVzLkFjdGlvbih7YWN0aW9uSWQ6IkNoYXJ0LlByaWNlU2NhbGUuVG9nZ2xlQXV0b1NjYWxlIixvcHRpb25zOntsYWJlbDpTcyxjaGVja2FibGU6ITAsY2hlY2tlZDohMCxzdGF0TmFtZToiVG9nZ2xlQXV0b1NjYWxlIixvbkV4ZWN1dGU6KCk9PntlLnRvZ2dsZVByaWNlU2NhbGVBdXRvU2NhbGVNb2RlKHRoaXMucHJpY2VTY2FsZSgpKSx0aGlzLl91cGRhdGVTY2FsZXNBY3Rpb25zKCl9fX0pLHM9bmV3IGVzLkFjdGlvbih7YWN0aW9uSWQ6IkNoYXJ0LlByaWNlU2NhbGUuVG9nZ2xlUGVyY2VudGFnZSIsb3B0aW9uczp7bGFiZWw6dnMsY2hlY2thYmxlOiEwLGNoZWNrZWQ6dGhpcy5wcmljZVNjYWxlKCkuaXNQZXJjZW50YWdlKCksc3RhdE5hbWU6IlRvZ2dsZVBlcmNhbnRhZ2UiLG9uRXhlY3V0ZTooKT0+e2UudG9nZ2xlUHJpY2VTY2FsZVBlcmNlbnRhZ2VTY2FsZU1vZGUodGhpcy5wcmljZVNjYWxlKCkpLHRoaXMuX3VwZGF0ZVNjYWxlc0FjdGlvbnMoKX19fSksbj1uZXcgZXMuQWN0aW9uKHthY3Rpb25JZDoiQ2hhcnQuUHJpY2VTY2FsZS5Ub2dnbGVJbmRleGVkVG8xMDAiLG9wdGlvbnM6e2xhYmVsOnlzLGNoZWNrYWJsZTohMCxjaGVja2VkOnRoaXMucHJpY2VTY2FsZSgpLmlzSW5kZXhlZFRvMTAwKCksc3RhdE5hbWU6IlRvZ2dsZUluZGV4ZWRUbzEwMCIsb25FeGVjdXRlOigpPT57ZS50b2dnbGVQcmljZVNjYWxlSW5kZXhlZFRvMTAwU2NhbGVNb2RlKHRoaXMucHJpY2VTY2FsZSgpKSx0aGlzLl91cGRhdGVTY2FsZXNBY3Rpb25zKCl9fX0pLHI9bmV3IGVzLkFjdGlvbih7YWN0aW9uSWQ6IkNoYXJ0LlByaWNlU2NhbGUuVG9nZ2xlTG9nYXJpdGhtaWMiLG9wdGlvbnM6e2xhYmVsOmJzLGNoZWNrYWJsZTohMCxjaGVja2VkOnRoaXMucHJpY2VTY2FsZSgpLmlzTG9nKCksc3RhdE5hbWU6IlRvZ2dsZUxvZ1NjYWxlIixvbkV4ZWN1dGU6KCk9PntlLnRvZ2dsZVByaWNlU2NhbGVMb2dTY2FsZU1vZGUodGhpcy5wcmljZVNjYWxlKCkpLHRoaXMuX3VwZGF0ZVNjYWxlc0FjdGlvbnMoKX19fSksbz1uZXcgZXMuQWN0aW9uKHthY3Rpb25JZDoiQ2hhcnQuUHJpY2VTY2FsZS5Ub2dnbGVSZWd1bGFyIixvcHRpb25zOntsYWJlbDp3cyxjaGVja2FibGU6ITAsY2hlY2tlZDp0aGlzLnByaWNlU2NhbGUoKS5pc1JlZ3VsYXIoKSxzdGF0TmFtZToiVG9nZ2xlUmVndWxhclNjYWxlIixvbkV4ZWN1dGU6KCk9PntlLnNldFByaWNlU2NhbGVSZWd1bGFyU2NhbGVNb2RlKHRoaXMucHJpY2VTY2FsZSgpKSx0aGlzLl91cGRhdGVTY2FsZXNBY3Rpb25zKCl9fX0pLGE9bmV3IGlzKHthY3Rpb25JZDoiQ2hhcnQuUHJpY2VTY2FsZS5MYWJlbHMuVG9nZ2xlTm9PdmVybGFwcGluZ0xhYmVsc1Zpc2liaWxpdHkiLG9wdGlvbnM6e2xhYmVsOkNzLGNoZWNrYWJsZTohMCxjaGVja2VkOnRoaXMucHJpY2VTY2FsZSgpLnByb3BlcnRpZXMoKS5jaGlsZHMoKS5hbGlnbkxhYmVscy52YWx1ZSgpLHN0YXROYW1lOiJUb2dnbGVQcmVjaXNlTGFiZWxzIn19LHtwcm9wZXJ0eTp0aGlzLnByaWNlU2NhbGUoKS5wcm9wZXJ0aWVzKCkuY2hpbGRzKCkuYWxpZ25MYWJlbHMsdW5kb01vZGVsOmUsdW5kb1RleHQ6Y3N9KSxsPW5ldyBlcy5BY3Rpb24oe2FjdGlvbklkOiJDaGFydC5QcmljZVNjYWxlLlRvZ2dsZUludmVydFNjYWxlIixvcHRpb25zOntsYWJlbDpQcyxjaGVja2FibGU6ITAsY2hlY2tlZDp0aGlzLnByaWNlU2NhbGUoKS5pc0ludmVydGVkKCksc3RhdE5hbWU6IkludmVydCBTY2FsZSIsb25FeGVjdXRlOigpPT57ZS5pbnZlcnRQcmljZVNjYWxlKHRoaXMucHJpY2VTY2FsZSgpKSx0aGlzLl91cGRhdGVTY2FsZXNBY3Rpb25zKCl9fX0pO3RoaXMuX2FjdGlvbnM9e3Jlc2V0OnQsc2V0QXV0b1NjYWxlOmksc2V0UGVyY2VudGFnZTpzLHNldEluZGV4ZWRUbzEwMDpuLHNldExvZzpyLHNldFJlZ3VsYXI6byxhbGlnbkxhYmVsczphLGludmVydFNjYWxlOmx9LHRoaXMuX3VwZGF0ZVNjYWxlc0FjdGlvbnMoKX1fbG9nQWN0aW9uKCl7cmV0dXJuIHRoaXMuX2lzTWFpblNlcmllc0F4aXMoKT90aGlzLl9jaGFydC5hY3Rpb25zKCkubG9nU2VyaWVzU2NhbGU6KDAsbC5lbnN1cmVOb3ROdWxsKSh0aGlzLl9hY3Rpb25zKS5zZXRMb2d9X3BlcmNlbnRhZ2VBY3Rpb24oKXtyZXR1cm4gdGhpcy5faXNNYWluU2VyaWVzQXhpcygpP3RoaXMuX2NoYXJ0LmFjdGlvbnMoKS5wZXJjZW50U2VyaWVzU2NhbGU6KDAsbC5lbnN1cmVOb3ROdWxsKSh0aGlzLl9hY3Rpb25zKS5zZXRQZXJjZW50YWdlfV9pbmRleGVkVG8xMDBBY3Rpb24oKXtyZXR1cm4gdGhpcy5faXNNYWluU2VyaWVzQXhpcygpP3RoaXMuX2NoYXJ0LmFjdGlvbnMoKS5pbmRleGVkVG8xMDBTZXJpZXNTY2FsZTooMCxsLmVuc3VyZU5vdE51bGwpKHRoaXMuX2FjdGlvbnMpLnNldEluZGV4ZWRUbzEwMH1fYXV0b1NjYWxlQWN0aW9uKCl7cmV0dXJuIHRoaXMuX2lzTWFpblNlcmllc0F4aXMoKT90aGlzLl9jaGFydC5hY3Rpb25zKCkuYXV0b1Nlcmllc1NjYWxlOigwLGwuZW5zdXJlTm90TnVsbCkodGhpcy5fYWN0aW9ucykuc2V0QXV0b1NjYWxlfV9yZWd1bGFyU2NhbGVBY3Rpb24oKXsKcmV0dXJuIHRoaXMuX2lzTWFpblNlcmllc0F4aXMoKT90aGlzLl9jaGFydC5hY3Rpb25zKCkucmVndWxhclNlcmllc1NjYWxlOigwLGwuZW5zdXJlTm90TnVsbCkodGhpcy5fYWN0aW9ucykuc2V0UmVndWxhcn1fbG9ja1NjYWxlQWN0aW9uKCl7Y29uc3QgZT10aGlzLl9jaGFydC5hY3Rpb25zKCkubG9ja1Nlcmllc1NjYWxlLHQ9VHModGhpcy5wcmljZVNjYWxlKCksdGhpcy5fdW5kb01vZGVsLm1vZGVsKCkubWFpblNlcmllc1NjYWxlUmF0aW8oKSk7cmV0dXJuIGUudXBkYXRlKHtoaW50OnR9KSxlfV9pbnZlcnRBY3Rpb24oKXtyZXR1cm4gdGhpcy5faXNNYWluU2VyaWVzQXhpcygpP3RoaXMuX2NoYXJ0LmFjdGlvbnMoKS5pbnZlcnRTZXJpZXNTY2FsZTooMCxsLmVuc3VyZU5vdE51bGwpKHRoaXMuX2FjdGlvbnMpLmludmVydFNjYWxlfV9pc01haW5TZXJpZXNBeGlzKCl7cmV0dXJuIHRoaXMucHJpY2VTY2FsZSgpLmhhc01haW5TZXJpZXMoKX1fdXBkYXRlU2NhbGVzQWN0aW9ucygpe2NvbnN0IGU9dGhpcy5wcmljZVNjYWxlKCksdD10aGlzLl9pc01haW5TZXJpZXNBeGlzKCksaT0oMCxsLmVuc3VyZU5vdE51bGwpKGUubWFpblNvdXJjZSgpKS5wcm9wZXJ0aWVzKCkscz10JiZlLmlzTG9ja1NjYWxlKCksbj10JiY2PT09aS5zdHlsZS52YWx1ZSgpLHI9KDAsbC5lbnN1cmVOb3ROdWxsKSh0aGlzLl9hY3Rpb25zKTtyLnNldFJlZ3VsYXIudXBkYXRlKHtjaGVja2VkOmUuaXNSZWd1bGFyKCksZGlzYWJsZWQ6c3x8bn0pLHIuc2V0UGVyY2VudGFnZS51cGRhdGUoe2NoZWNrZWQ6ZS5pc1BlcmNlbnRhZ2UoKSxkaXNhYmxlZDpzfHxufSksci5zZXRJbmRleGVkVG8xMDAudXBkYXRlKHtjaGVja2VkOmUuaXNJbmRleGVkVG8xMDAoKSxkaXNhYmxlZDpzfHxufSksci5zZXRMb2cudXBkYXRlKHtjaGVja2VkOmUuaXNMb2coKSxkaXNhYmxlZDpzfHxufSksci5zZXRBdXRvU2NhbGUudXBkYXRlKHtjaGVja2VkOmUuaXNBdXRvU2NhbGUoKSxkaXNhYmxlZDplLnByb3BlcnRpZXMoKS5jaGlsZHMoKS5hdXRvU2NhbGVEaXNhYmxlZC52YWx1ZSgpfSl9X2NyZWF0ZU1lcmdlU2NhbGVzQWN0aW9uKCl7Y29uc3QgZT10aGlzLl9jaGFydC5hY3Rpb25zKCksdD10aGlzLl91bmRvTW9kZWwubW9kZWwoKS5wcmljZVNjYWxlU2xvdHNDb3VudCgpO2lmKHQubGVmdCt0LnJpZ2h0PT09MSlyZXR1cm4gMD09PXQubGVmdD9lLm1vdmVTY2FsZVRvTGVmdDplLm1vdmVTY2FsZVRvUmlnaHQ7Y29uc3QgaT1bXTtyZXR1cm4gaS5wdXNoKGUubWVyZ2VMZWZ0U2NhbGVzQWN0aW9uKSxpLnB1c2goZS5tZXJnZVJpZ2h0U2NhbGVzQWN0aW9uKSxuZXcgZXMuQWN0aW9uKHthY3Rpb25JZDoiQ2hhcnQuUHJpY2VTY2FsZS5NZXJnZUFsbFNjYWxlcyIsb3B0aW9uczp7bGFiZWw6dXMsc3ViSXRlbXM6aX19KX1fc2V0Q3Vyc29yKGUpe2xldCB0PSIiOyJncmFiYmluZyIhPT1lJiYibnMtcmVzaXplIiE9PWV8fCh0PSJwcmljZS1heGlzLS1jdXJzb3ItIitlKSx0aGlzLl9jdXJyZW50Q3Vyc29yQ2xhc3NOYW1lIT09dCYmKHRoaXMuX2N1cnJlbnRDdXJzb3JDbGFzc05hbWUmJnRoaXMuX2NlbGwuY2xhc3NMaXN0LnJlbW92ZSh0aGlzLl9jdXJyZW50Q3Vyc29yQ2xhc3NOYW1lKSx0JiZ0aGlzLl9jZWxsLmNsYXNzTGlzdC5hZGQodCksdGhpcy5fY3VycmVudEN1cnNvckNsYXNzTmFtZT10LHRoaXMuX2NlbGwuc3R5bGUuY3Vyc29yKX1hc3luYyBfY3JlYXRlU2NhbGVNb2RlQnV0dG9ucygpe2NvbnN0e1ByaWNlU2NhbGVNb2RlQnV0dG9uc1JlbmRlcmVyOmV9PWF3YWl0IFByb21pc2UuYWxsKFtpLmUoMjI1MTApLGkuZSg0MTUwNiksaS5lKDMyMzg3KSxpLmUoNzEzNzUpXSkudGhlbihpLmJpbmQoaSw5MzE4NzApKTtpZih0aGlzLl9kZXN0cm95ZWQpdGhyb3coMCxxZS5jcmVhdGVBYm9ydEVycm9yKSgpO2NvbnN0IHQ9bmV3IGUoe2NsYXNzTmFtZToicHJpY2UtYXhpc19fbW9kZUJ1dHRvbnMiLHNldE1vZGU6ZT0+e3RoaXMuX3ByaWNlU2NhbGUmJigibG9nIj09PWU/dGhpcy5fY2hhcnQubW9kZWwoKS5zZXRQcmljZVNjYWxlTW9kZSh7bG9nOiF0aGlzLl9wcmljZVNjYWxlLmlzTG9nKCl9LHRoaXMuX3ByaWNlU2NhbGUsZHMpOnRoaXMuX2NoYXJ0Lm1vZGVsKCkuc2V0UHJpY2VTY2FsZU1vZGUoe2F1dG9TY2FsZTohdGhpcy5fcHJpY2VTY2FsZS5pc0F1dG9TY2FsZSgpfSx0aGlzLl9wcmljZVNjYWxlLGhzKSl9LGdldE1vZGU6KCk9PnRoaXMuX3ByaWNlU2NhbGU/Lm1vZGUoKX0pO3JldHVybiB0LmVsZW1lbnQoKS5zdHlsZS5iYWNrZ3JvdW5kPXRoaXMuYmFja2dyb3VuZENvbG9yKCksdGhpcy5fY2VsbC5hcHBlbmRDaGlsZCh0LmVsZW1lbnQoKSksdGhpcy5fcHJpY2VTY2FsZT8ubW9kZUNoYW5nZWQoKS5zdWJzY3JpYmUodGhpcyx0aGlzLl91cGRhdGVTY2FsZU1vZGVCdXR0b25zKSx0fV9kZXN0cm95U2NhbGVNb2RlQnV0dG9ucygpe3RoaXMuX3NjYWxlTW9kZUJ1dHRvbnMmJih0aGlzLl9pc0hvdmVyZWQudW5zdWJzY3JpYmUodGhpcy5fdXBkYXRlUHJpY2VTY2FsZU1vZGVCdXR0b25zVmlzaWJpbGl0eSksdGhpcy5fc2VsZWN0ZWRWaWFUYXAudW5zdWJzY3JpYmUodGhpcy5fdXBkYXRlUHJpY2VTY2FsZU1vZGVCdXR0b25zVmlzaWJpbGl0eSksdGhpcy5fcGFuZS52aXN1YWxseUNvbGxhcHNlZCgpLnVuc3Vic2NyaWJlKHRoaXMuX3VwZGF0ZVByaWNlU2NhbGVNb2RlQnV0dG9uc1Zpc2liaWxpdHkpLHRoaXMuX3ByaWNlU2NhbGU/Lm1vZGVDaGFuZ2VkKCkudW5zdWJzY3JpYmUodGhpcyx0aGlzLl91cGRhdGVTY2FsZU1vZGVCdXR0b25zKSx0aGlzLl9zY2FsZU1vZGVCdXR0b25zLmRlc3Ryb3koKSx0aGlzLl9zY2FsZU1vZGVCdXR0b25zPW51bGwpfV9oaWdobGlnaHRDb2xvcigpe2NvbnN0IGU9dGhpcy5iYWNrZ3JvdW5kQ29sb3IoKSx0PXRoaXMuX2JhY2tncm91bmRCYXNlZFRoZW1lLnZhbHVlKCk7aWYobnVsbD09PXRoaXMuX2hpZ2hsaWdodENvbG9yQ2FjaGV8fHRoaXMuX2hpZ2hsaWdodENvbG9yQ2FjaGUuYmFja2dyb3VuZENvbG9yIT09ZXx8dGhpcy5faGlnaGxpZ2h0Q29sb3JDYWNoZS50aGVtZSE9PXQpe2NvbnN0IGk9KDAsCiRpLmFwcGx5VHJhbnNwYXJlbmN5KShrLnRoZW1lc1t0aGlzLl9iYWNrZ3JvdW5kQmFzZWRUaGVtZS52YWx1ZSgpXS5nZXRUaGVtZWRDb2xvcigiY29sb3ItcHJpY2UtYXhpcy1oaWdobGlnaHQiKSw1MCkscz0oMCx5aS5yZ2JhVG9TdHJpbmcpKCgwLHlpLmJsZW5kUmdiYSkoKDAseWkucGFyc2VSZ2JhKSh0aGlzLmJhY2tncm91bmRDb2xvcigpKSwoMCx5aS5wYXJzZVJnYmEpKGkpKSk7dGhpcy5faGlnaGxpZ2h0Q29sb3JDYWNoZT17dGhlbWU6dCxiYWNrZ3JvdW5kQ29sb3I6ZSxyZXN1bHRDb2xvcjpzfX1yZXR1cm4gdGhpcy5faGlnaGxpZ2h0Q29sb3JDYWNoZS5yZXN1bHRDb2xvcn1fYXBwbHlMaWdodFVwZGF0ZUlmUmVxdWlyZWQoKXsidmlzaWJsZU9uTW91c2VPdmVyIj09PSgwLHJzLmFjdHVhbEN1cnJlbmN5VW5pdE1ldHJpY1Zpc2liaWxpdHkpKCkudmFsdWUoKSYmdGhpcy5fdW5kb01vZGVsLm1vZGVsKCkubGlnaHRVcGRhdGUoKX19dmFyIEVzPWkoOTI1OTg1KSxScz1pKDMyMzA3OSk7Y29uc3QgVnM9KDAsYy5nZXRMb2dnZXIpKCJDaGFydC5DaGFydFVuZG9Nb2RlbCIpO3ZhciBCczshZnVuY3Rpb24oZSl7ZVtlLk1lcmdlVGltZW91dD0xZTNdPSJNZXJnZVRpbWVvdXQifShCc3x8KEJzPXt9KSk7Y29uc3QgTnM9bmV3IHkuVHJhbnNsYXRlZFN0cmluZygic2NhbGUgcHJpY2UiLHAudChudWxsLHZvaWQgMCxpKDI1Njk2OCkpKTtjbGFzcyBPcyBleHRlbmRzIEUuVW5kb0NvbW1hbmR7Y29uc3RydWN0b3IoZSx0LGkscyxuLHI9ITApe3N1cGVyKE5zLCExLHIpLHRoaXMuX25ld1ByaWNlU2NhbGVTdGF0ZT1udWxsLHRoaXMuX21vZGVsPWUsdGhpcy5fcGFuZUluZGV4PWUucGFuZXMoKS5pbmRleE9mKHQpLHRoaXMuX3ByaWNlU2NhbGVJZD1pLmlkKCksdGhpcy5fc3RhdGU9cyx0aGlzLl90aW1lc3RhbXA9bj9wZXJmb3JtYW5jZS5ub3coKTpudWxsfXVuZG8oKXtpZihudWxsIT09dGhpcy5fbmV3UHJpY2VTY2FsZVN0YXRlKXJldHVybiB2b2lkIFZzLmxvZ0RlYnVnKCJQcmljZVNjYWxlQ2hhbmdlVW5kb0NvbW1hbmQudW5kbzogQ29tbWFuZCBpcyBhbHJlYWR5IHVuZG9uZSIpO2NvbnN0W2UsdF09dGhpcy5fcGFuZUFuZFNjYWxlKCk7dGhpcy5fbmV3UHJpY2VTY2FsZVN0YXRlPXQuc3RhdGUoKSx0aGlzLl9tb2RlbC5yZXN0b3JlUHJpY2VTY2FsZVN0YXRlKGUsdCx0aGlzLl9zdGF0ZSl9cmVkbygpe2lmKG51bGw9PT10aGlzLl9uZXdQcmljZVNjYWxlU3RhdGUpcmV0dXJuIHZvaWQgVnMubG9nRGVidWcoIlByaWNlU2NhbGVDaGFuZ2VVbmRvQ29tbWFuZC5yZWRvOiBDb21tYW5kIGlzIG5vdCB1bmRvbmUiKTtjb25zdFtlLHRdPXRoaXMuX3BhbmVBbmRTY2FsZSgpO3RoaXMuX21vZGVsLnJlc3RvcmVQcmljZVNjYWxlU3RhdGUoZSx0LHRoaXMuX25ld1ByaWNlU2NhbGVTdGF0ZSksdGhpcy5fbmV3UHJpY2VTY2FsZVN0YXRlPW51bGx9Y2FuTWVyZ2UoZSl7cmV0dXJuIGUgaW5zdGFuY2VvZiBPcyYmbnVsbCE9PXRoaXMuX3RpbWVzdGFtcCYmbnVsbCE9PWUuX3RpbWVzdGFtcCYmbnVsbD09PXRoaXMuX25ld1ByaWNlU2NhbGVTdGF0ZSYmZS5fbW9kZWw9PT10aGlzLl9tb2RlbCYmZS5fcGFuZUluZGV4PT09dGhpcy5fcGFuZUluZGV4JiZlLl9wcmljZVNjYWxlSWQ9PT10aGlzLl9wcmljZVNjYWxlSWQmJk1hdGguYWJzKGUuX3RpbWVzdGFtcC10aGlzLl90aW1lc3RhbXApPDFlM31tZXJnZShlKXt0aGlzLl90aW1lc3RhbXA9ZS5fdGltZXN0YW1wfV9wYW5lQW5kU2NhbGUoKXtjb25zdCBlPXRoaXMuX21vZGVsLnBhbmVzKClbdGhpcy5fcGFuZUluZGV4XSx0PSgwLGwuZW5zdXJlTm90TnVsbCkoZS5nZXRQcmljZVNjYWxlQnlJZCh0aGlzLl9wcmljZVNjYWxlSWQpKTtyZXR1cm5bZSx0XX19dmFyIFdzPWkoNDgzMDE2KSxGcz1pKDczNjI4KSxIcz1pKDU0MjM0OSksenM9aSgyOTE4NDMpLFVzPWkoMTc1ODE1KSxHcz1pKDQ5MDM5OSksanM9aSgxMTc4MjApLHFzPWkoODcwNTYyKTtjbGFzcyAkc3tjb25zdHJ1Y3RvcihlLHQpe3RoaXMuX3NpemU9KDAseXQuc2l6ZSkoe3dpZHRoOjAsaGVpZ2h0OjB9KSx0aGlzLl9wYW5lPW51bGwsdGhpcy5fY2FudmFzQ29uZmlndXJlZEhhbmRsZXI9KCk9PnRoaXMuX3BhbmU/Lm1vZGVsKCkubGlnaHRVcGRhdGUoKSx0aGlzLl9yZW5kZXJlck9wdGlvbnNQcm92aWRlcj1lLHRoaXMuX3NpZGU9dCx0aGlzLl9jZWxsPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLHRoaXMuX2NlbGwuY2xhc3NMaXN0LmFkZCgiY2hhcnQtbWFya3VwLXRhYmxlIiwicHJpY2UtYXhpcy1jb250YWluZXIiKSx0aGlzLl9jZWxsLnN0eWxlLndpZHRoPSIyNXB4Iix0aGlzLl9jZWxsLnN0eWxlLnBvc2l0aW9uPSJyZWxhdGl2ZSIsdGhpcy5fY2FudmFzQmluZGluZz0oMCxLdC5jcmVhdGVCb3VuZENhbnZhcykodGhpcy5fY2VsbCwoMCx5dC5zaXplKSh7d2lkdGg6MTYsaGVpZ2h0OjE2fSkpLHRoaXMuX2NhbnZhc0JpbmRpbmcuc3Vic2NyaWJlU3VnZ2VzdGVkQml0bWFwU2l6ZUNoYW5nZWQodGhpcy5fY2FudmFzQ29uZmlndXJlZEhhbmRsZXIpO2NvbnN0IGk9dGhpcy5fY2FudmFzQmluZGluZy5jYW52YXNFbGVtZW50O2kuc3R5bGUucG9zaXRpb249ImFic29sdXRlIixpLnN0eWxlLnRvcD0iMHB4IixpLnN0eWxlLmxlZnQ9IjBweCIsdGhpcy5fbW91c2VFdmVudEhhbmRsZXI9bmV3IHdpLk1vdXNlRXZlbnRIYW5kbGVyKHRoaXMuX2NlbGwsdGhpcyl9ZGVzdHJveSgpe3RoaXMuX21vdXNlRXZlbnRIYW5kbGVyLmRlc3Ryb3koKSx0aGlzLl9jYW52YXNCaW5kaW5nLnVuc3Vic2NyaWJlU3VnZ2VzdGVkQml0bWFwU2l6ZUNoYW5nZWQodGhpcy5fY2FudmFzQ29uZmlndXJlZEhhbmRsZXIpLHRoaXMuX2NhbnZhc0JpbmRpbmcuZGlzcG9zZSgpfWdldEVsZW1lbnQoKXtyZXR1cm4gdGhpcy5fY2VsbH1nZXRTY3JlZW5zaG90RGF0YShlKXtjb25zdCB0PSgwLEt0LmNyZWF0ZURpc2Nvbm5lY3RlZENhbnZhcykoZG9jdW1lbnQsdGhpcy5fc2l6ZSksaT0oMCxLdC5nZXRQcmVzY2FsZWRDb250ZXh0MkQpKHQpCjtyZXR1cm4gMCE9PXRoaXMuX3NpemUud2lkdGgmJjAhPT10aGlzLl9zaXplLmhlaWdodCYmaS5kcmF3SW1hZ2UodGhpcy5fY2FudmFzQmluZGluZy5jYW52YXNFbGVtZW50LDAsMCx0aGlzLl9zaXplLndpZHRoLHRoaXMuX3NpemUuaGVpZ2h0KSx7Y29udGVudDp0LnRvRGF0YVVSTCgpLGNhbnZhczp0LGNvbnRlbnRXaWR0aDp0aGlzLl9zaXplLndpZHRoLGNvbnRlbnRIZWlnaHQ6dGhpcy5fc2l6ZS5oZWlnaHR9fXNldFBhbmUoZSl7dGhpcy5fcGFuZT1lfXVwZGF0ZSgpe31wYWludCgpe2lmKDA9PT10aGlzLl9zaXplLndpZHRofHwwPT09dGhpcy5fc2l6ZS5oZWlnaHQpcmV0dXJuOygwLEt0LnRyeUFwcGx5U3VnZ2VzdGVkQ2FudmFzQml0bWFwU2l6ZSkodGhpcy5fY2FudmFzQmluZGluZyk7Y29uc3QgZT0oMCxLdC5nZXRCaW5kaW5nUmVuZGVyaW5nSW5mbykodGhpcy5fY2FudmFzQmluZGluZyksdD0oMCxsLmVuc3VyZU5vdE51bGwpKHRoaXMuX2NhbnZhc0JpbmRpbmcuY2FudmFzRWxlbWVudC5nZXRDb250ZXh0KCIyZCIpKTtpZih0LnNldFRyYW5zZm9ybSgxLDAsMCwxLDAsMCksdC5jbGVhclJlY3QoMCwwLHRoaXMuX3NpemUud2lkdGgsdGhpcy5fc2l6ZS5oZWlnaHQpLHRoaXMuX2RyYXdCYWNrZ3JvdW5kKHQsZSksdGhpcy5fZHJhd0JvcmRlcih0LGUpLCF0aGlzLl9wYW5lPy5jb2xsYXBzZWQoKS52YWx1ZSgpKXsodGhpcy5fcGFuZT8uZGF0YVNvdXJjZXMoKT8/W10pLmZvckVhY2goKGk9PnsoaS53aWRnZXRTaWRlQXJlYVZpZXdzPy4odGhpcy5fc2lkZSk/P1tdKS5mb3JFYWNoKChpPT5pLnJlbmRlcmVyKGUpPy5kcmF3KHQsZSkpKX0pKX19cmVzdG9yZURlZmF1bHRDdXJzb3IoKXt9c2V0U2l6ZXMoZSx0KXt0aGlzLl9zaXplPSgwLHl0LnNpemUpKHt3aWR0aDp0LnJlZHVjZSgoKGUsdCk9PmUrdCksMCksaGVpZ2h0OmV9KSx0aGlzLl9jZWxsLnN0eWxlLndpZHRoPXRoaXMuX3NpemUud2lkdGgrInB4Iix0aGlzLl9jZWxsLnN0eWxlLm1pbldpZHRoPXRoaXMuX3NpemUud2lkdGgrInB4Iix0aGlzLl9jZWxsLnN0eWxlLmhlaWdodD10aGlzLl9zaXplLmhlaWdodCsicHgiLHRoaXMuX2NhbnZhc0JpbmRpbmcucmVzaXplQ2FudmFzRWxlbWVudCh0aGlzLl9zaXplKX1nZXRXaWR0aCgpe3JldHVybiB0aGlzLl9zaXplLndpZHRofXVwZGF0ZUN1cnJlbmN5TGFiZWxzKCl7fW9wdGltYWxXaWR0aHMoKXtyZXR1cm4odGhpcy5fcGFuZT8uZGF0YVNvdXJjZXMoKT8/W10pLnJlZHVjZSgoKGUsdCk9Pntjb25zdCBpPSh0LndpZGdldFNpZGVBcmVhVmlld3M/Lih0aGlzLl9zaWRlKT8/W10pLnJlZHVjZSgoKGUsdCk9Pk1hdGgubWF4KGUsdC5vcHRpbWFsV2lkdGgoKSkpLDApO3JldHVybiBNYXRoLm1heChlLGkpfSksMCl9YmFja2dyb3VuZENvbG9yKCl7cmV0dXJuKDAsbC5lbnN1cmVOb3ROdWxsKSh0aGlzLl9wYW5lKS5tb2RlbCgpLmJhY2tncm91bmRDb2xvcigpLnZhbHVlKCl9YmFja2dyb3VuZFRvcENvbG9yKCl7cmV0dXJuKDAsbC5lbnN1cmVOb3ROdWxsKSh0aGlzLl9wYW5lKS5tb2RlbCgpLmJhY2tncm91bmRUb3BDb2xvcigpLnZhbHVlKCl9bW91c2VNb3ZlRXZlbnQoZSl7dGhpcy5fcHJvY2Vzc1RvdWNoTW91c2VFdmVudChlKX1tb3VzZUxlYXZlRXZlbnQoKXt0aGlzLl91cGRhdGVIb3ZlcmVkU291cmNlKG51bGwpfW1vdXNlRW50ZXJFdmVudChlKXt0aGlzLl9wcm9jZXNzVG91Y2hNb3VzZUV2ZW50KGUpfXRvdWNoU3RhcnRFdmVudChlKXt0aGlzLl9wcm9jZXNzVG91Y2hNb3VzZUV2ZW50KGUpfWxvbmdUYXBFdmVudChlKXt0aGlzLl9wcm9jZXNzVG91Y2hNb3VzZUV2ZW50KGUpfXRvdWNoRW5kRXZlbnQoKXt0aGlzLl91cGRhdGVIb3ZlcmVkU291cmNlKG51bGwpfV9wcm9jZXNzVG91Y2hNb3VzZUV2ZW50KGUpe2lmKCF0aGlzLl9wYW5lKXJldHVybjtjb25zdCB0PSgwLFB0LnBvaW50KShlLmxvY2FsWCxlLmxvY2FsWSk7dGhpcy5fdXBkYXRlSG92ZXJlZFNvdXJjZSh0aGlzLl9oaXRUZXN0U291cmNlcyh0KSl9X2hpdFRlc3RTb3VyY2VzKGUpe2NvbnN0IHQ9dGhpcy5fcGFuZTtpZighdHx8dC5jb2xsYXBzZWQoKS52YWx1ZSgpKXJldHVybiBudWxsO2NvbnN0IGk9dC5kYXRhU291cmNlcygpO2lmKCFpLmxlbmd0aClyZXR1cm4gbnVsbDtjb25zdCBzPSgwLEt0LmdldEJpbmRpbmdSZW5kZXJpbmdJbmZvKSh0aGlzLl9jYW52YXNCaW5kaW5nKTtmb3IoY29uc3QgdCBvZiBpKXtjb25zdCBpPXQud2lkZ2V0U2lkZUFyZWFWaWV3cz8uKHRoaXMuX3NpZGUpO2lmKGkmJmkubGVuZ3RoKWZvcihjb25zdCBuIG9mIGkpe2NvbnN0IGk9bi5yZW5kZXJlcihzKTtpZighaSljb250aW51ZTtjb25zdCByPWkuaGl0VGVzdChlLHMpO2lmKHIpcmV0dXJue3NvdXJjZTp0LGhpdHRlc3Q6cixyZW5kZXJlcjppLGlzQ3VzdG9tOiExfX19cmV0dXJuIG51bGx9X3VwZGF0ZUhvdmVyZWRTb3VyY2UoZSl7Y29uc3QgdD10aGlzLl9wYW5lO2lmKCF0KXJldHVybjtjb25zdCBpPXQubW9kZWwoKSx7c291cmNlOnM9bnVsbCxoaXR0ZXN0Om49bnVsbH09ZXx8e307aS5zZXRIb3ZlcmVkU291cmNlKHMsbj8uZGF0YSgpfHxudWxsKX1fZHJhd0JhY2tncm91bmQoZSx0KXtjb25zdCBpPXRoaXMuYmFja2dyb3VuZFRvcENvbG9yKCkscz10aGlzLmJhY2tncm91bmRDb2xvcigpLHtiaXRtYXBTaXplOm59PXQscj10aGlzLl9wYW5lPy5tb2RlbCgpLnBhbmVzKCkuaW5kZXhPZih0aGlzLl9wYW5lKT8/MCxvPXRoaXMuX3BhbmU/Lm1vZGVsKCkubWFpblBhbmUoKSxhPXI+KG8/dGhpcy5fcGFuZT8ubW9kZWwoKS5wYW5lcygpLmluZGV4T2Yobyk/PzA6MCk/czppOygwLEt0LmNsZWFyUmVjdCkoZSwwLDAsbi53aWR0aCxuLmhlaWdodCxhKX1fZHJhd0JvcmRlcihlLHQpe2Uuc2F2ZSgpO2NvbnN0IGk9KDAsbC5lbnN1cmVOb3ROdWxsKSh0aGlzLl9wYW5lKS5tb2RlbCgpLnByb3BlcnRpZXMoKS5jaGlsZHMoKS5zY2FsZXNQcm9wZXJ0aWVzLmNoaWxkcygpLmxpbmVDb2xvci52YWx1ZSgpO2UuZmlsbFN0eWxlPWkKO2NvbnN0e2hvcml6b250YWxQaXhlbFJhdGlvOnN9PXQsbj1NYXRoLm1heCgxLE1hdGguZmxvb3IodGhpcy5fcmVuZGVyZXJPcHRpb25zUHJvdmlkZXIub3B0aW9ucygpLmJvcmRlclNpemUqcykpLHI9ImxlZnQiPT09dGhpcy5fc2lkZT90LmJpdG1hcFNpemUud2lkdGgtbjowO2UuZmlsbFJlY3QociwwLG4sdC5iaXRtYXBTaXplLmhlaWdodCksZS5yZXN0b3JlKCl9fXZhciBZcz1pKDk3NjgxMyksS3M9aSgzNDQ3ODUpLFhzPWkoNTc3NzEzKSxacz1pKDgyODg1NyksSnM9aSg2MzQ0OTgpO2Z1bmN0aW9uIFFzKGUpe3JldHVybiJzdGFydE1vdmluZyJpbiBlJiYibW92ZSJpbiBlJiYiZW5kTW92aW5nImluIGUmJiJjb252ZXJ0WUNvb3JkaW5hdGVUb1ByaWNlRm9yTW92aW5nImluIGV9dmFyIGVuPWkoNjM2OTY2KSx0bj1pKDk2NjQwNCk7aSg0MDA0MCksaSgyNTkxMzIpO2NvbnN0IHNuPW5ldyB5LlRyYW5zbGF0ZWRTdHJpbmcoInNjcm9sbCIscC50KG51bGwsdm9pZCAwLGkoNjE0OTA2KSkpLG5uPXAudChudWxsLHZvaWQgMCxpKDg4Mjc2KSkscm49cC50KG51bGwsdm9pZCAwLGkoOTg3NCkpO2Z1bmN0aW9uIG9uKGUsdCxpKXtlLmRyYXdCYWNrZ3JvdW5kJiZlLmRyYXdCYWNrZ3JvdW5kKHQsaSl9ZnVuY3Rpb24gYW4oZSx0LGkpe2UuZHJhdyh0LGkpfWZ1bmN0aW9uIGxuKGUsdCl7cmV0dXJuIGUucGFuZVZpZXdzKHQpfWZ1bmN0aW9uIGNuKGUsdCl7cmV0dXJuIGUudG9wUGFuZVZpZXdzPy4odCk/P1tdfWZ1bmN0aW9uIGhuKGUsdCl7cmV0dXJuIGUubGFiZWxQYW5lVmlld3ModCl9ZnVuY3Rpb24gZG4oZSx0KXtjb25zdCBpPWUuc3RyYXRlZ3lPcmRlcnNQYW5lVmlldygpO3JldHVybiBudWxsPT09aT9udWxsOltpXX1mdW5jdGlvbiB1bihlLHQpe3JldHVybiBudWxsPT09ZXx8ZS5zb3VyY2UhPT10P251bGw6ZS5oaXR0ZXN0LmRhdGEoKX1mdW5jdGlvbiBwbihlLHQsaSxzLG4pe2NvbnN0IHI9ZS5yZXN1bHQ/LmhpdHRlc3QudGFyZ2V0KCk/PzA7dC50YXJnZXQoKT5yJiYoZS5yZXN1bHQ9e2hpdHRlc3Q6dCxzb3VyY2U6aSxyZW5kZXJlcjpzLGlzQ3VzdG9tOm59KX1jb25zdCBfbj17Y29udGV4dE1lbnVFbmFibGVkOiEwLGNvbnRleHRNZW51OldzLmRlZmF1bHRDaGFydFdpZGdldEFjdGlvbnNPcHRpb25zLHByaWNlU2NhbGVDb250ZXh0TWVudUVuYWJsZWQ6ITAsbGVnZW5kV2lkZ2V0RW5hYmxlZDohMCxjb250cm9sc0VuYWJsZWQ6ITAscHJvcGVydHlQYWdlc0VuYWJsZWQ6ITAsc291cmNlU2VsZWN0aW9uRW5hYmxlZDohMCxjb3VudGRvd25FbmFibGVkOiEwfSxtbj1uZXcgTWFwKFtbTWkuQXJlYU5hbWUuVGV4dCwiVGV4dCJdLFtNaS5BcmVhTmFtZS5TdHlsZSwiU3R5bGUiXV0pLGduPSEoMCxxLmlzRmVhdHVyZXNldEVuYWJsZWQpKCJkaXNwbGF5X2xlZ2VuZF9vbl9hbGxfY2hhcnRzIik7dmFyIGZuOyFmdW5jdGlvbihlKXtlW2UuTWluU2Nyb2xsU3BlZWQ9LjJdPSJNaW5TY3JvbGxTcGVlZCIsZVtlLk1heFNjcm9sbFNwZWVkPTddPSJNYXhTY3JvbGxTcGVlZCIsZVtlLkR1bXBpbmdDb2VmZj0uOTk3XT0iRHVtcGluZ0NvZWZmIixlW2UuU2Nyb2xsTWluTW92ZT0xNV09IlNjcm9sbE1pbk1vdmUiLGVbZS5TUGVuTWF4RGlzdGFuY2U9NV09IlNQZW5NYXhEaXN0YW5jZSIsZVtlLkNvbGxhcHNlZEhlaWdodD0zM109IkNvbGxhcHNlZEhlaWdodCJ9KGZufHwoZm49e30pKTtsZXQgU249bnVsbDtmdW5jdGlvbiB2bihlLHQpe3JldHVybiEoMCxNaS5zaG91bGREZWZhdWx0QWN0aW9uQmVFeGVjdXRlZCkoZSx0LCJwcmVzc2VkTW91c2VNb3ZlSGFuZGxlciIsInRvdWNoTW92ZUhhbmRsZXIiKX12YXIgeW47IWZ1bmN0aW9uKGUpe2VbZS5Ob25lPTBdPSJOb25lIixlW2UuRG93bldpdGhvdXRNb3ZlPTFdPSJEb3duV2l0aG91dE1vdmUiLGVbZS5Eb3duV2l0aE1vdmU9Ml09IkRvd25XaXRoTW92ZSJ9KHlufHwoeW49e30pKTtjbGFzcyBibntjb25zdHJ1Y3RvcihlLHQsaSxzKXt0aGlzLl9sZWdlbmRXaWRnZXQ9bnVsbCx0aGlzLl9wYW5lQ29udHJvbHM9bnVsbCx0aGlzLl9pc0Rlc3Ryb3llZD0hMSx0aGlzLl90cmFja0Nyb3NzaGFpck9ubHlBZnRlckxvbmdUYXA9KDAsdWkubGFzdE1vdXNlT3JUb3VjaEV2ZW50SW5mbykoKS5pc1RvdWNoLHRoaXMuX3N0YXJ0VHJhY2tQb2ludD1udWxsLHRoaXMuX2V4aXRUcmFja2luZ01vZGVPbk5leHRUcnk9ITEsdGhpcy5fc3RhcnRNb3ZlU291cmNlUGFyYW1zPW51bGwsdGhpcy5fc3RhcnRDaGFuZ2VMaW5lVG9vbFBhcmFtcz1udWxsLHRoaXMuX3ByZXZlbnRTb3VyY2VDaGFuZ2U9ITEsdGhpcy5fcHJldmVudFNjcm9sbFVudGlsTmV4dE1vdXNlRG93bk9yVG91Y2hTdGFydD0hMSx0aGlzLl9jbG9ubmluZ0F0TW92ZUxpbmVUb29scz1udWxsLHRoaXMuX3N0YXJ0Q2xvbmluZ1BvaW50PW51bGwsdGhpcy5fc2l6ZT0oMCx5dC5zaXplKSh7d2lkdGg6MCxoZWlnaHQ6MH0pLHRoaXMuX3RoZW1lZFRvcENvbG9yPW51bGwsdGhpcy5faW5pdENyb3NzSGFpclBvc2l0aW9uPW51bGwsdGhpcy5fZmlyc3Rab29tUG9pbnQ9bnVsbCx0aGlzLl9lZGl0RGlhbG9nPW51bGwsdGhpcy5fcHJvY2Vzc2luZz0hMSx0aGlzLl9wcmVzc2VkTW92ZVN0YWdlPTAsdGhpcy5fdG91Y2hNb3ZlPSExLHRoaXMuX3N0YXJ0VG91Y2hQb2ludD1udWxsLHRoaXMuX2lzU2VsZWN0aW5nPSExLHRoaXMuX3ByZXZIb3ZlcmVkSGl0dGVzdD1udWxsLHRoaXMuX2NvbnRleHRNZW51WD0wLHRoaXMuX2NvbnRleHRNZW51WT0wLHRoaXMuX3N0YXJ0U2Nyb2xsaW5nUG9zPW51bGwsdGhpcy5faXNTY3JvbGxpbmc9ITEsdGhpcy5fc2Nyb2xsUHJpY2VTY2FsZT1udWxsLHRoaXMuX3Njcm9sbFhBbmltYXRpb249bnVsbCx0aGlzLl9wcmV2UGluY2hTY2FsZT0xLHRoaXMuX3BpbmNoaW5nPSExLHRoaXMuX3dhc1BpbmNoZWQ9ITEsdGhpcy5fbG9uZ1RhcD0hMSx0aGlzLl9jb250ZXh0TWVudU9wZW5lZE9uTGFzdFRhcD0hMSx0aGlzLl9wYW5lQ29udHJvbHNSZXNpemVPYnNlcnZlcj1udWxsLHRoaXMuX2xhc3RDbGlja2VkU291cmNlPW51bGwsdGhpcy5fY3VzdG9tTGVnZW5kV2lkZ2V0c0ZhY3RvcnlNYXA9bmV3IE1hcCwKdGhpcy5fcHJldk1vdmVFdmVudFBvc2l0aW9uPW51bGwsdGhpcy5fb25NYWduZXRTdGF0ZUNoYW5nZWRMaXN0ZW5lcj10aGlzLl9vbk1hZ25ldFN0YXRlQ2hhbmdlZC5iaW5kKHRoaXMpLHRoaXMuX29uU2hpZnRLZXlTdGF0ZUNoYW5nZWRMaXN0ZW5lcj10aGlzLl9vblNoaWZ0S2V5U3RhdGVDaGFuZ2VkLmJpbmQodGhpcyksdGhpcy5fY3VycmVudEN1cnNvckNsYXNzTmFtZT0iIix0aGlzLl9sYXN0RmluaXNoZWRUb29sSWQ9bnVsbCx0aGlzLl9uZWVkUmVzZXRNZWFzdXJlTGF0ZXI9ITEsdGhpcy5fY3VycmVudENoYW5naW5nTGluZVRvb2xIaXRUZXN0PW51bGwsdGhpcy5fY3VycmVudE1vdmluZ0hpdFRlc3Q9bnVsbCx0aGlzLl9wcmV2VG9vbHRpcERhdGE9bnVsbCx0aGlzLl9lcnJvclJlbmRlcmVyPW51bGwsdGhpcy5faGlnaGxpZ2h0ZWRQcmljZUF4aXNlcz1uZXcgZC5XYXRjaGVkT2JqZWN0KFtdKSx0aGlzLl92aXN1YWxseUNvbGxhcHNlZD1uZXcgaC5XYXRjaGVkVmFsdWUoITEpLHRoaXMuX21heGltaXplZD1uZXcgaC5XYXRjaGVkVmFsdWUoITEpLHRoaXMuX2VuZE9mU2VyaWVzRGF0YUJhbm5lcj1udWxsLHRoaXMuX3NlbGVjdGlvbkJlZm9yZU1vdXNlRG93bj1uZXcgV2Vha1NldCx0aGlzLl9tb3VzZVRvdWNoRG93blVwSW5mbz1udWxsLHRoaXMuX2lnbm9yaW5nTW91c2VNb3ZlbWVudD0hMSx0aGlzLl9jYW52YXNDb25maWd1cmVkSGFuZGxlcj0oKT0+dGhpcy5fc3RhdGUmJnRoaXMuX2NoYXJ0TW9kZWwoKS5saWdodFVwZGF0ZSgpLHRoaXMuX3VwZGF0ZVZpc3VhbGx5Q29sbGFwc2VkPSgpPT57dGhpcy5fdmlzdWFsbHlDb2xsYXBzZWQuc2V0VmFsdWUoIXRoaXMuc3RhdGUoKS5tYXhpbWl6ZWQoKS52YWx1ZSgpJiZ0aGlzLnN0YXRlKCkuY29sbGFwc2VkKCkudmFsdWUoKSl9LHRoaXMuX3VwZGF0ZU1heGltaXplZD0oKT0+e3RoaXMuX21heGltaXplZC5zZXRWYWx1ZSh0aGlzLnN0YXRlKCkubWF4aW1pemVkKCkudmFsdWUoKSl9LHRoaXMuX2NoYXJ0PWUsdGhpcy5fc3RhdGU9dCx0aGlzLl9vcHRpb25zPSgwLGEubWVyZ2UpKCgwLGEuY2xvbmUpKF9uKSxpKSx0aGlzLl9wYW5lV2lkZ2V0c1NoYXJlZFN0YXRlPXMsdGhpcy5fc3RhdGUmJnRoaXMuX3N1YnNjcmliZVRvU3RhdGUoKTtjb25zdCBuPXtjb250ZXh0TWVudUVuYWJsZWQ6dGhpcy5fb3B0aW9ucy5wcmljZVNjYWxlQ29udGV4dE1lbnVFbmFibGVkLHByZXNzZWRNb3VzZU1vdmVTY2FsZTp0aGlzLl9vcHRpb25zLmhhbmRsZVNjYWxlLmF4aXNQcmVzc2VkTW91c2VNb3ZlLnByaWNlLG1vdXNlV2hlZWxTY2FsZTp0aGlzLl9vcHRpb25zLmhhbmRsZVNjYWxlLm1vdXNlV2hlZWwsY3VycmVuY3lDb252ZXJzaW9uRW5hYmxlZDp0aGlzLl9vcHRpb25zLmN1cnJlbmN5Q29udmVyc2lvbkVuYWJsZWQsdW5pdENvbnZlcnNpb25FbmFibGVkOnRoaXMuX29wdGlvbnMudW5pdENvbnZlcnNpb25FbmFibGVkLG1ldHJpY0NvbnZlcnNpb25FbmFibGVkOnRoaXMuX29wdGlvbnMubWV0cmljQ29udmVyc2lvbkVuYWJsZWQsY291bnRkb3duRW5hYmxlZDp0aGlzLl9vcHRpb25zLmNvdW50ZG93bkVuYWJsZWQsY3JvcHBlZFRpY2tNYXJrczp0aGlzLl9vcHRpb25zLmNyb3BwZWRUaWNrTWFya3N9O3ZvaWQgMCE9PXRoaXMuX29wdGlvbnMucHJpY2VTY2FsZUNvbnRleHRNZW51JiYobi5jb250ZXh0TWVudT10aGlzLl9vcHRpb25zLnByaWNlU2NhbGVDb250ZXh0TWVudSk7Y29uc3Qgcj0oZSx0LGkscyxyKT0+bmV3IERzKHRoaXMuX2NoYXJ0LHRoaXMsdGhpcy5fY2hhcnRVbmRvTW9kZWwoKSxpLHQsZSxuLHMsciksbz1lLnByb3BlcnRpZXMoKS5jaGlsZHMoKS5zY2FsZXNQcm9wZXJ0aWVzLGM9dGhpcy5fY2hhcnRNb2RlbCgpLnJlbmRlcmVyT3B0aW9uc1Byb3ZpZGVyKCkscD17YmFja2dyb3VuZEJhc2VkVGhlbWU6ZS5iYWNrZ3JvdW5kQmFzZWRUaGVtZSgpLnNwYXduT3duZXJzaGlwKCksc3R1YkNvbnRleHRNZW51UHJvdmlkZXI6KCk9PlByb21pc2UucmVzb2x2ZShbXSksdGl0bGVzUHJvdmlkZXI6KCk9PltdLHJlbmRlcmVyT3B0aW9uc1Byb3ZpZGVyOmMsZ2V0QmFja2dyb3VuZFRvcENvbG9yOigpPT50aGlzLl9jaGFydE1vZGVsKCkuYmFja2dyb3VuZFRvcENvbG9yKCkudmFsdWUoKSxnZXRCYWNrZ3JvdW5kQm90dG9tQ29sb3I6KCk9PnRoaXMuX2NoYXJ0TW9kZWwoKS5iYWNrZ3JvdW5kQ29sb3IoKS52YWx1ZSgpLHJlcXVlc3RSZXBhaW50OigpPT50aGlzLl9jaGFydE1vZGVsKCkubGlnaHRVcGRhdGUoKX07dGhpcy5fcm93RWxlbWVudD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSx0aGlzLl9yb3dFbGVtZW50LnN0eWxlLmRpc3BsYXk9ImZsZXgiO2NvbnN0IF89e3Nob3dMYWJlbHM6ITF9O3RoaXMuX2xoc1ByaWNlQXhpc2VzQ29udGFpbmVyPXQubW9kZSgpPT09TS5QYW5lTW9kZS5SZWd1bGFyP25ldyBqaShvLCJsZWZ0IixyLHAsXyk6bmV3ICRzKGMsImxlZnQiKSx0aGlzLl9yaHNQcmljZUF4aXNlc0NvbnRhaW5lcj10Lm1vZGUoKT09PU0uUGFuZU1vZGUuUmVndWxhcj9uZXcgamkobywicmlnaHQiLHIscCxfKTpuZXcgJHMoYywicmlnaHQiKSx0aGlzLl9wYW5lQ2VsbD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSx0aGlzLl9wYW5lQ2VsbC5jbGFzc0xpc3QuYWRkKCJjaGFydC1tYXJrdXAtdGFibGUiLCJwYW5lIiksdGhpcy5fcGFuZUNlbGwuc2V0QXR0cmlidXRlKCJkYXRhLXFhLWlkIiwicGFuZSIpLHRoaXMuX2Rpdj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSx0aGlzLl9kaXYuY2xhc3NMaXN0LmFkZCgiY2hhcnQtZ3VpLXdyYXBwZXIiKSx0aGlzLl9kaXYuc2V0QXR0cmlidXRlKCJkYXRhLXFhLWlkIiwicGFuZS13aWRnZXQtY2hhcnQtZ3VpLXdyYXBwZXIiKSx0aGlzLl9wYW5lQ2VsbC5hcHBlbmRDaGlsZCh0aGlzLl9kaXYpLHRoaXMuX2NhbnZhc0JpbmRpbmc9KDAsS3QuY3JlYXRlQm91bmRDYW52YXMpKHRoaXMuX2RpdiwoMCx5dC5zaXplKSh7d2lkdGg6MTYsaGVpZ2h0OjE2fSkpLHRoaXMuX2NhbnZhc0JpbmRpbmcuc3Vic2NyaWJlU3VnZ2VzdGVkQml0bWFwU2l6ZUNoYW5nZWQodGhpcy5fY2FudmFzQ29uZmlndXJlZEhhbmRsZXIpCjtjb25zdCBtPXRoaXMuX2NhbnZhc0JpbmRpbmcuY2FudmFzRWxlbWVudDttLnN0eWxlLnBvc2l0aW9uPSJhYnNvbHV0ZSIsbS5zdHlsZS5sZWZ0PSIwIixtLnN0eWxlLnRvcD0iMCIsbS5kYXRhc2V0Lm5hbWU9InBhbmUtY2FudmFzIix0aGlzLl90b3BDYW52YXNCaW5kaW5nPSgwLEt0LmNyZWF0ZUJvdW5kQ2FudmFzKSh0aGlzLl9kaXYsKDAseXQuc2l6ZSkoe3dpZHRoOjE2LGhlaWdodDoxNn0pKSx0aGlzLl90b3BDYW52YXNCaW5kaW5nLnN1YnNjcmliZVN1Z2dlc3RlZEJpdG1hcFNpemVDaGFuZ2VkKHRoaXMuX2NhbnZhc0NvbmZpZ3VyZWRIYW5kbGVyKTtjb25zdCBnPXRoaXMuX3RvcENhbnZhc0JpbmRpbmcuY2FudmFzRWxlbWVudDtnLnN0eWxlLnBvc2l0aW9uPSJhYnNvbHV0ZSIsZy5zdHlsZS5sZWZ0PSIwIixnLnN0eWxlLnRvcD0iMCIsZy5kYXRhc2V0LnFhSWQ9InBhbmUtdG9wLWNhbnZhcyIsdGhpcy5fcm93RWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLl9saHNQcmljZUF4aXNlc0NvbnRhaW5lci5nZXRFbGVtZW50KCkpLHRoaXMuX3Jvd0VsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5fcGFuZUNlbGwpLHRoaXMuX3Jvd0VsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5fcmhzUHJpY2VBeGlzZXNDb250YWluZXIuZ2V0RWxlbWVudCgpKSxtLnNldEF0dHJpYnV0ZSgiYXJpYS1oaWRkZW4iLCJ0cnVlIik7Y29uc3QgZj10aGlzLl9jaGFydE1vZGVsKCkubWFpblNlcmllcygpO2YuZGF0YUV2ZW50cygpLnN5bWJvbFJlc29sdmVkKCkuc3Vic2NyaWJlKHRoaXMsdGhpcy5fdXBkYXRlQWNjZXNzaWJpbGl0eUF0dHIpLHRoaXMuX21haW5TZXJpZXNJbnRlcnZhbD1mLmludGVydmFsT2JqKCkuc3Bhd24oKSx0aGlzLl9tYWluU2VyaWVzSW50ZXJ2YWwuc3Vic2NyaWJlKHRoaXMuX3VwZGF0ZUFjY2Vzc2liaWxpdHlBdHRyLmJpbmQodGhpcykpLHRoaXMuX3VwZGF0ZUFjY2Vzc2liaWxpdHlBdHRyKCksdGhpcy5fb3B0aW9ucy5sZWdlbmRXaWRnZXRFbmFibGVkJiYodGhpcy5fb3B0aW9ucy5jdXN0b21MZWdlbmRXaWRnZXRGYWN0b3JpZXMmJih0aGlzLl9jdXN0b21MZWdlbmRXaWRnZXRzRmFjdG9yeU1hcD10aGlzLl9vcHRpb25zLmN1c3RvbUxlZ2VuZFdpZGdldEZhY3RvcmllcyksdGhpcy5fbG9hZEFuZENyZWF0ZUxlZ2VuZFdpZGdldCgpKSx0aGlzLl9zdGF0ZSYmIXRoaXMuX2NoYXJ0LnJlYWRPbmx5KCkmJnRoaXMuX29wdGlvbnMuY29udHJvbHNFbmFibGVkJiZ0aGlzLl9sb2FkQW5kQ3JlYXRlUGFuZUNvbnRyb2xzV2lkZ2V0KHRoaXMuX3N0YXRlKSwoMCxacy5tYWduZXRFbmFibGVkKSgpLnN1YnNjcmliZSh0aGlzLl9vbk1hZ25ldFN0YXRlQ2hhbmdlZExpc3RlbmVyKSwoMCxYdC5zaGlmdFByZXNzZWQpKCkuc3Vic2NyaWJlKHRoaXMuX29uU2hpZnRLZXlTdGF0ZUNoYW5nZWRMaXN0ZW5lciksdGhpcy5fcGFuZUNlbGwuYWRkRXZlbnRMaXN0ZW5lcigiZHJhZ292ZXIiLChlPT57ZS5kYXRhVHJhbnNmZXImJkFycmF5LmZyb20oZS5kYXRhVHJhbnNmZXIuZmlsZXMpLnNvbWUoanMuYmxvYkltYWdlRmlsdGVyKSYmZS5wcmV2ZW50RGVmYXVsdCgpfSkpLHRoaXMuX3BhbmVDZWxsLmFkZEV2ZW50TGlzdGVuZXIoImRyb3AiLChlPT57aWYod2luZG93LnVzZXIuaWQmJmUuZGF0YVRyYW5zZmVyJiZ0aGlzLl9zdGF0ZSl7Y29uc3QgdD1BcnJheS5mcm9tKGUuZGF0YVRyYW5zZmVyLmZpbGVzKS5maW5kKGpzLmJsb2JJbWFnZUZpbHRlcik7aWYodCl7ZS5wcmV2ZW50RGVmYXVsdCgpO2NvbnN0IGk9KDAsanMudXBsb2FkSW1hZ2UpKHQpLHM9VVJMLmNyZWF0ZU9iamVjdFVSTCh0KSxuPWFzeW5jKCk9Pnthd2FpdCgwLGtpLmVuc3VyZUxpbmVUb29sTG9hZGVkKSgiTGluZVRvb2xJbWFnZSIpLHRoaXMuX2NoYXJ0VW5kb01vZGVsKCkucGFzdGVJbWFnZUFzTGluZVRvb2woaSxzLCgwLGwuZW5zdXJlTm90TnVsbCkodGhpcy5fc3RhdGUpKX07aS5jYXRjaCgoZT0+eygwLG5lLnNob3dDaGFydFdhcm5pbmdOb3RpZmljYXRpb24pKCJjb3B5Iix7dGl0bGU6cm4sdGV4dDplLm1lc3NhZ2V9KX0pKSxuKCl9fX0pKSx0aGlzLnNldEN1cnNvckZvclRvb2woKSx0aGlzLl9tb3VzZUV2ZW50SGFuZGxlcj1uZXcgd2kuTW91c2VFdmVudEhhbmRsZXIodGhpcy5fdG9wQ2FudmFzQmluZGluZy5jYW52YXNFbGVtZW50LHRoaXMse3RyZWF0VmVydFRvdWNoRHJhZ0FzUGFnZVNjcm9sbDohdGhpcy5fb3B0aW9ucy5oYW5kbGVTY3JvbGwudmVydFRvdWNoRHJhZyx0cmVhdEhvcnpUb3VjaERyYWdBc1BhZ2VTY3JvbGw6IXRoaXMuX29wdGlvbnMuaGFuZGxlU2Nyb2xsLmhvcnpUb3VjaERyYWcsc2hvdWxkQWxsb3dUb3VjaERyYWc6KCk9PiExfSksdGhpcy5fcGFuZUNlbGxNb3VzZUV2ZW50SGFuZGxlcj1uZXcgd2kuTW91c2VFdmVudEhhbmRsZXIodGhpcy5fcGFuZUNlbGwse2RvdWJsZVRhcEV2ZW50OnRoaXMuX3BhbmVEYmxDbGlja09yVGFwRXZlbnQuYmluZCh0aGlzKSxtb3VzZURvdWJsZUNsaWNrRXZlbnQ6dGhpcy5fcGFuZURibENsaWNrT3JUYXBFdmVudC5iaW5kKHRoaXMpfSx7c2hvdWxkQWxsb3dUb3VjaERyYWc6KCk9PiExLHRyZWF0VmVydFRvdWNoRHJhZ0FzUGFnZVNjcm9sbDohdGhpcy5fb3B0aW9ucy5oYW5kbGVTY3JvbGwudmVydFRvdWNoRHJhZyx0cmVhdEhvcnpUb3VjaERyYWdBc1BhZ2VTY3JvbGw6IXRoaXMuX29wdGlvbnMuaGFuZGxlU2Nyb2xsLmhvcnpUb3VjaERyYWd9KSx0aGlzLl9wcmV2SG92ZXJlZEhpdHRlc3Q9bnVsbCx0aGlzLl9oaWdobGlnaHRlZFByaWNlQXhpc2VzLnN1YnNjcmliZSgoZT0+e3RoaXMuX2hpZ2hsaWdodFByaWNlQXhpc2VzQnlMYWJlbChlLm1hcCgoZT0+ZS5heGlzKSkpfSkpLHRoaXMuX3ByZXZQaW5jaFNjYWxlPTAsdGhpcy5faXNEZXN0cm95ZWQ9ITE7Y29uc3QgUz0oMCx1LmNvbWJpbmUpKChlPT57Y29uc3QgdD10aGlzLl9jaGFydC5wYW5lV2lkZ2V0U2VwYXJhdG9ycyh0aGlzKQo7cmV0dXJuW3Quc2VwYXJhdG9yQWJvdmU/LnNlbGVjdGVkKCk/LndlYWtSZWZlcmVuY2UoKT8/bmV3IGguV2F0Y2hlZFZhbHVlKCExKS5vd25lcnNoaXAoKSx0LnNlcGFyYXRvckJlbG93Py5zZWxlY3RlZCgpPy53ZWFrUmVmZXJlbmNlKCk/P25ldyBoLldhdGNoZWRWYWx1ZSghMSkub3duZXJzaGlwKCldfSksdGhpcy5fY2hhcnQucGFuZVdpZGdldHNXVigpLndlYWtSZWZlcmVuY2UoKSk7dGhpcy5fYW55U2VwYXJhdG9yU2VsZWN0ZWQ9KDAsdS5hY2N1bXVsYXRlKSgoZT0+ZS5zb21lKEJvb2xlYW4pKSxTLm93bmVyc2hpcCgpKX1kZXN0cm95KCl7dGhpcy5fY2hhcnQub25QYW5lV2lkZ2V0RGVzdHJveWVkKHRoaXMpO3RoaXMuX2NoYXJ0TW9kZWwoKS5tYWluU2VyaWVzKCkuZGF0YUV2ZW50cygpLnN5bWJvbFJlc29sdmVkKCkudW5zdWJzY3JpYmVBbGwodGhpcyksdGhpcy5fY3VzdG9tTGVnZW5kV2lkZ2V0c0ZhY3RvcnlNYXAuY2xlYXIoKSx0aGlzLl90b3BDYW52YXNCaW5kaW5nLnVuc3Vic2NyaWJlU3VnZ2VzdGVkQml0bWFwU2l6ZUNoYW5nZWQodGhpcy5fY2FudmFzQ29uZmlndXJlZEhhbmRsZXIpLHRoaXMuX3RvcENhbnZhc0JpbmRpbmcuZGlzcG9zZSgpLHRoaXMuX2NhbnZhc0JpbmRpbmcudW5zdWJzY3JpYmVTdWdnZXN0ZWRCaXRtYXBTaXplQ2hhbmdlZCh0aGlzLl9jYW52YXNDb25maWd1cmVkSGFuZGxlciksdGhpcy5fY2FudmFzQmluZGluZy5kaXNwb3NlKCksdGhpcy5fbGVnZW5kV2lkZ2V0JiYodGhpcy5fbGVnZW5kV2lkZ2V0LmRlc3Ryb3koKSx0aGlzLl9sZWdlbmRXaWRnZXQ9bnVsbCksbnVsbCE9PXRoaXMuX3BhbmVDb250cm9sc1Jlc2l6ZU9ic2VydmVyJiZ0aGlzLl9wYW5lQ29udHJvbHNSZXNpemVPYnNlcnZlci5kaXNjb25uZWN0KCksbnVsbCE9PXRoaXMuX3BhbmVDb250cm9scyYmKHRoaXMuX3BhbmVDb250cm9scy5kZXN0cm95KCksdGhpcy5fcGFuZUNvbnRyb2xzPW51bGwpLHRoaXMuX2xoc1ByaWNlQXhpc2VzQ29udGFpbmVyLmRlc3Ryb3koKSx0aGlzLl9yaHNQcmljZUF4aXNlc0NvbnRhaW5lci5kZXN0cm95KCksdGhpcy5oYXNTdGF0ZSgpJiZ0aGlzLl91bnN1YnNjcmliZUZyb21TdGF0ZSgpLCgwLFpzLm1hZ25ldEVuYWJsZWQpKCkudW5zdWJzY3JpYmUodGhpcy5fb25NYWduZXRTdGF0ZUNoYW5nZWRMaXN0ZW5lciksKDAsWHQuc2hpZnRQcmVzc2VkKSgpLnVuc3Vic2NyaWJlKHRoaXMuX29uU2hpZnRLZXlTdGF0ZUNoYW5nZWRMaXN0ZW5lciksdGhpcy5fcGFuZVdpZGdldHNTaGFyZWRTdGF0ZS5vblBhbmVEZXN0cm95ZWQodGhpcyksdGhpcy5fZXJyb3JSZW5kZXJlciYmdGhpcy5fZXJyb3JSZW5kZXJlci50aGVuKChlPT57ZS5kZXN0cm95KCksdGhpcy5fZXJyb3JSZW5kZXJlcj1udWxsfSkpLHRoaXMuX3ByZXZIb3ZlcmVkSGl0dGVzdD1udWxsLHRoaXMuX21vdXNlRXZlbnRIYW5kbGVyLmRlc3Ryb3koKSx0aGlzLl9wYW5lQ2VsbE1vdXNlRXZlbnRIYW5kbGVyLmRlc3Ryb3koKSx0aGlzLl9yb3dFbGVtZW50LnBhcmVudEVsZW1lbnQ/LnJlbW92ZUNoaWxkKHRoaXMuX3Jvd0VsZW1lbnQpLHRoaXMuX2FueVNlcGFyYXRvclNlbGVjdGVkLmRlc3Ryb3koKSx0aGlzLl9tYWluU2VyaWVzSW50ZXJ2YWwuZGVzdHJveSgpLHRoaXMuX2lzRGVzdHJveWVkPSEwfXVwZGF0ZU9wdGlvbnMoZSl7aWYoKDAsYS5tZXJnZSkodGhpcy5fb3B0aW9ucyxlKSwhMT09PWUubGVnZW5kV2lkZ2V0RW5hYmxlZCYmdGhpcy5fbGVnZW5kV2lkZ2V0JiYodGhpcy5fbGVnZW5kV2lkZ2V0LmRlc3Ryb3koKSx0aGlzLl9sZWdlbmRXaWRnZXQ9bnVsbCksZS5sZWdlbmRXaWRnZXRFbmFibGVkJiYhdGhpcy5fbGVnZW5kV2lkZ2V0JiYodGhpcy5fb3B0aW9ucy5jdXN0b21MZWdlbmRXaWRnZXRGYWN0b3JpZXMmJih0aGlzLl9jdXN0b21MZWdlbmRXaWRnZXRzRmFjdG9yeU1hcD10aGlzLl9vcHRpb25zLmN1c3RvbUxlZ2VuZFdpZGdldEZhY3RvcmllcyksdGhpcy5fbG9hZEFuZENyZWF0ZUxlZ2VuZFdpZGdldCgpKSwhdGhpcy5fc3RhdGUpcmV0dXJuO2NvbnN0IHQ9dGhpcy5fc3RhdGUubW9kZSgpLGk9dGhpcy5fY2hhcnRNb2RlbCgpLnJlbmRlcmVyT3B0aW9uc1Byb3ZpZGVyKCk7aWYodD09PU0uUGFuZU1vZGUuUmVndWxhciYmISh0aGlzLl9saHNQcmljZUF4aXNlc0NvbnRhaW5lciBpbnN0YW5jZW9mIGppKSl7dGhpcy5fbGhzUHJpY2VBeGlzZXNDb250YWluZXIuZGVzdHJveSgpLHRoaXMuX3Joc1ByaWNlQXhpc2VzQ29udGFpbmVyLmRlc3Ryb3koKTtjb25zdCBlPXtzaG93TGFiZWxzOiExfSx0PXtjb250ZXh0TWVudUVuYWJsZWQ6dGhpcy5fb3B0aW9ucy5wcmljZVNjYWxlQ29udGV4dE1lbnVFbmFibGVkLHByZXNzZWRNb3VzZU1vdmVTY2FsZTp0aGlzLl9vcHRpb25zLmhhbmRsZVNjYWxlLmF4aXNQcmVzc2VkTW91c2VNb3ZlLnByaWNlLG1vdXNlV2hlZWxTY2FsZTp0aGlzLl9vcHRpb25zLmhhbmRsZVNjYWxlLm1vdXNlV2hlZWwsY3VycmVuY3lDb252ZXJzaW9uRW5hYmxlZDp0aGlzLl9vcHRpb25zLmN1cnJlbmN5Q29udmVyc2lvbkVuYWJsZWQsdW5pdENvbnZlcnNpb25FbmFibGVkOnRoaXMuX29wdGlvbnMudW5pdENvbnZlcnNpb25FbmFibGVkLGNvdW50ZG93bkVuYWJsZWQ6dGhpcy5fb3B0aW9ucy5jb3VudGRvd25FbmFibGVkLGNyb3BwZWRUaWNrTWFya3M6dGhpcy5fb3B0aW9ucy5jcm9wcGVkVGlja01hcmtzfSxzPShlLGkscyxuLHIpPT5uZXcgRHModGhpcy5fY2hhcnQsdGhpcyx0aGlzLl9jaGFydFVuZG9Nb2RlbCgpLHMsaSxlLHQsbixyKSxuPXRoaXMuX2NoYXJ0LnByb3BlcnRpZXMoKS5jaGlsZHMoKS5zY2FsZXNQcm9wZXJ0aWVzLHI9KCk9PnRoaXMuX2NoYXJ0TW9kZWwoKS5iYWNrZ3JvdW5kQ29sb3IoKS52YWx1ZSgpLG89KCk9PnRoaXMuX2NoYXJ0TW9kZWwoKS5iYWNrZ3JvdW5kVG9wQ29sb3IoKS52YWx1ZSgpLGE9e2JhY2tncm91bmRCYXNlZFRoZW1lOnRoaXMuX2NoYXJ0LmJhY2tncm91bmRCYXNlZFRoZW1lKCkuc3Bhd25Pd25lcnNoaXAoKSxzdHViQ29udGV4dE1lbnVQcm92aWRlcjooKT0+UHJvbWlzZS5yZXNvbHZlKFtdKSx0aXRsZXNQcm92aWRlcjooKT0+W10sCnJlbmRlcmVyT3B0aW9uc1Byb3ZpZGVyOmksZ2V0QmFja2dyb3VuZFRvcENvbG9yOm8sZ2V0QmFja2dyb3VuZEJvdHRvbUNvbG9yOnIscmVxdWVzdFJlcGFpbnQ6KCk9PnRoaXMuX2NoYXJ0TW9kZWwoKS5saWdodFVwZGF0ZSgpfTt0aGlzLl9saHNQcmljZUF4aXNlc0NvbnRhaW5lcj1uZXcgamkobiwibGVmdCIscyxhLGUpLHRoaXMuX3Joc1ByaWNlQXhpc2VzQ29udGFpbmVyPW5ldyBqaShuLCJyaWdodCIscyxhLGUpLHRoaXMuX3Jvd0VsZW1lbnQuaW5uZXJIVE1MPSIiLHRoaXMuX3Jvd0VsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5fbGhzUHJpY2VBeGlzZXNDb250YWluZXIuZ2V0RWxlbWVudCgpKSx0aGlzLl9yb3dFbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuX3BhbmVDZWxsKSx0aGlzLl9yb3dFbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuX3Joc1ByaWNlQXhpc2VzQ29udGFpbmVyLmdldEVsZW1lbnQoKSl9dCE9PU0uUGFuZU1vZGUuV2lkZ2V0fHx0aGlzLl9saHNQcmljZUF4aXNlc0NvbnRhaW5lciBpbnN0YW5jZW9mICRzfHwodGhpcy5fbGhzUHJpY2VBeGlzZXNDb250YWluZXIuZGVzdHJveSgpLHRoaXMuX3Joc1ByaWNlQXhpc2VzQ29udGFpbmVyLmRlc3Ryb3koKSx0aGlzLl9saHNQcmljZUF4aXNlc0NvbnRhaW5lcj1uZXcgJHMoaSwibGVmdCIpLHRoaXMuX3Joc1ByaWNlQXhpc2VzQ29udGFpbmVyPW5ldyAkcyhpLCJyaWdodCIpLHRoaXMuX3Jvd0VsZW1lbnQuaW5uZXJIVE1MPSIiLHRoaXMuX3Jvd0VsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5fbGhzUHJpY2VBeGlzZXNDb250YWluZXIuZ2V0RWxlbWVudCgpKSx0aGlzLl9yb3dFbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuX3BhbmVDZWxsKSx0aGlzLl9yb3dFbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuX3Joc1ByaWNlQXhpc2VzQ29udGFpbmVyLmdldEVsZW1lbnQoKSkpfXNpemUoKXtyZXR1cm4gdGhpcy5fc2l6ZX1zZXRTaXplKGUpeygwLHl0LmVxdWFsU2l6ZXMpKHRoaXMuX3NpemUsZSl8fCh0aGlzLl9zaXplPWUsdGhpcy5fY2FudmFzQmluZGluZy5yZXNpemVDYW52YXNFbGVtZW50KGUpLHRoaXMuX3RvcENhbnZhc0JpbmRpbmcucmVzaXplQ2FudmFzRWxlbWVudChlKSx0aGlzLl9wYW5lQ2VsbC5zdHlsZS53aWR0aD1lLndpZHRoKyJweCIsdGhpcy5fcGFuZUNlbGwuc3R5bGUuaGVpZ2h0PWUuaGVpZ2h0KyJweCIsdGhpcy5fZGl2LnN0eWxlLndpZHRoPWUud2lkdGgrInB4Iix0aGlzLl9kaXYuc3R5bGUuaGVpZ2h0PWUuaGVpZ2h0KyJweCIsdGhpcy5fcm93RWxlbWVudC5jbGFzc0xpc3QudG9nZ2xlKCJqcy1oaWRkZW4iLDA9PT1lLmhlaWdodCksbnVsbCE9PXRoaXMuX2xlZ2VuZFdpZGdldCYmdGhpcy5fbGVnZW5kV2lkZ2V0LnVwZGF0ZVdpZGdldE1vZGVCeVNpemUoZSksbnVsbCE9PXRoaXMuX3BhbmVDb250cm9scyYmdGhpcy5fcGFuZUNvbnRyb2xzLnVwZGF0ZVdpZGdldE1vZGVCeVdpZHRoKGUud2lkdGgpKX13aWR0aCgpe3JldHVybiB0aGlzLl9zaXplLndpZHRofWhlaWdodCgpe3JldHVybiB0aGlzLl9zaXplLmhlaWdodH1iYWNrZ3JvdW5kQ29sb3IoKXtyZXR1cm4gdGhpcy5fY2hhcnRNb2RlbCgpLmJhY2tncm91bmRDb2xvcigpLnZhbHVlKCl9aGlnaGxpZ2h0ZWRQcmljZUF4aXNlcygpe3JldHVybiB0aGlzLl9oaWdobGlnaHRlZFByaWNlQXhpc2VzfXByb2Nlc3NEb3VibGVDbGlja09uU291cmNlKGUsdCxpKXtpZigoMCxyaS5pc0VkaXRhYmxlVGV4dExpbmVUb29sKShlKSl7Y29uc3QgdD1lLnRleHRFZGl0aW5nQWN0aXZhdGlvblRpbWUoKTtudWxsIT09dCYmcGVyZm9ybWFuY2Uubm93KCktdDw1MDAmJmUuZGVhY3RpdmF0ZVRleHRFZGl0aW5nKCl9aWYoKDAscWkuaXNBbGVydExhYmVsKShlKSl7Y29uc3QgdD1lLmFsZXJ0KCkscz10LmlkKCkudmFsdWUoKTtpZih0LmlzTmV3KCkudmFsdWUoKSlyZXR1cm47KDAsVXMuZ2V0Q2hhcnRBbGVydHNGYWNhZGUpKCkudGhlbigoZT0+eygwLE10LnRyYWNrRXZlbnQpKCJjaGFydF9hbGVydCIsImVkaXQiLGBkb3VibGVfY2xpY2tfb25fJHtpPy5vcmlnaW4/PyJsaW5lIn1gKSxlLm9wZW5FZGl0RGlhbG9nKHMse2FjdGlvblNvdXJjZToiYWxlcnRfbGFiZWxfZG91YmxlX2NsaWNrIixkYXRhU291cmNlSHViOnRoaXMuX2NoYXJ0TW9kZWwoKSxtZXRob2Q6ImFsZXJ0X2xhYmVsX2RvdWJsZV9jbGljayIsc291cmNlOiJjaGFydCJ9KX0pKX1lbHNlKDAsQWkuaXNEYXRhU291cmNlKShlKSYmZS5pZCgpIT09dGhpcy5fbGFzdEZpbmlzaGVkVG9vbElkJiZ0aGlzLl9zaG93RWRpdERpYWxvZ0ZvclNvdXJjZShlLHQpfXN0cmV0Y2hGYWN0b3IoKXtyZXR1cm4gdGhpcy5fc3RhdGU/dGhpcy5fc3RhdGUuc3RyZXRjaEZhY3RvcigpOjB9c2V0U3RyZXRjaEZhY3RvcihlKXt0aGlzLmhhc1N0YXRlKCkmJnRoaXMuc3RhdGUoKS5zZXRTdHJldGNoRmFjdG9yKGUpfXNldEN1cnNvckZvclRvb2woZSx0LGkpe2lmKHQmJnQubW9kKCkmJmUmJmUhPT10aGlzLl9jaGFydE1vZGVsKCkuY3Jvc3NoYWlyU291cmNlKCkpcmV0dXJuIHZvaWQgdGhpcy5fc2V0Q3Vyc29yQ2xhc3NOYW1lKCJwb2ludGVyIik7aWYodm9pZCAwIT09aSl7c3dpdGNoKGkpe2Nhc2UgWXMuUGFuZUN1cnNvclR5cGUuVmVydGljYWxSZXNpemU6dGhpcy5fc2V0Q3Vyc29yQ2xhc3NOYW1lKCJucy1yZXNpemUiKTticmVhaztjYXNlIFlzLlBhbmVDdXJzb3JUeXBlLkhvcml6b250YWxSZXNpemU6dGhpcy5fc2V0Q3Vyc29yQ2xhc3NOYW1lKCJldy1yZXNpemUiKTticmVhaztjYXNlIFlzLlBhbmVDdXJzb3JUeXBlLkRpYWdvbmFsTmVTd1Jlc2l6ZTp0aGlzLl9zZXRDdXJzb3JDbGFzc05hbWUoIm5lc3ctcmVzaXplIik7YnJlYWs7Y2FzZSBZcy5QYW5lQ3Vyc29yVHlwZS5EaWFnb25hbE53U2VSZXNpemU6dGhpcy5fc2V0Q3Vyc29yQ2xhc3NOYW1lKCJud3NlLXJlc2l6ZSIpO2JyZWFrO2Nhc2UgWXMuUGFuZUN1cnNvclR5cGUuRGVmYXVsdDp0aGlzLl9zZXRDdXJzb3JDbGFzc05hbWUoImRlZmF1bHQiKTticmVhaztjYXNlIFlzLlBhbmVDdXJzb3JUeXBlLlBvaW50ZXI6dGhpcy5fc2V0Q3Vyc29yQ2xhc3NOYW1lKCJwb2ludGVyIik7YnJlYWsKO2Nhc2UgWXMuUGFuZUN1cnNvclR5cGUuR3JhYmJpbmc6dGhpcy5fc2V0Q3Vyc29yQ2xhc3NOYW1lKCJncmFiYmluZyIpO2JyZWFrO2Nhc2UgWXMuUGFuZUN1cnNvclR5cGUuVGV4dDp0aGlzLl9zZXRDdXJzb3JDbGFzc05hbWUoInRleHQiKTticmVhaztjYXNlIFlzLlBhbmVDdXJzb3JUeXBlLk5vbmU6dGhpcy5fc2V0Q3Vyc29yQ2xhc3NOYW1lKCJub25lIil9cmV0dXJufWNvbnN0IHM9VC50b29sLnZhbHVlKCk7aWYoKDAsVC50b29sSXNDdXJzb3IpKHMpKXtpZihudWxsIT09dGhpcy5fcGFuZVdpZGdldHNTaGFyZWRTdGF0ZS5kcmFnZ2luZ1NvdXJjZSgpfHx0aGlzLl9pc1Njcm9sbGluZ3x8dGhpcy5fY2hhcnRVbmRvTW9kZWwoKSYmdGhpcy5fY2hhcnRVbmRvTW9kZWwoKS5tb2RlbCgpLnNvdXJjZXNCZWluZ01vdmVkKCkubGVuZ3RoKXJldHVybiB2b2lkIHRoaXMuX3NldEN1cnNvckNsYXNzTmFtZSgiZ3JhYmJpbmciKTtpZihlJiZ0aGlzLl9vcHRpb25zLnNvdXJjZVNlbGVjdGlvbkVuYWJsZWQpcmV0dXJuIHZvaWQgdGhpcy5fc2V0Q3Vyc29yQ2xhc3NOYW1lKCJwb2ludGVyIil9bGV0IG49IiI7c3dpdGNoKHMpe2Nhc2UiZXJhc2VyIjpuPSJlcmFzZXIiO2JyZWFrO2Nhc2Uiem9vbSI6bj0iem9vbS1pbiJ9aWYoIW4pc3dpdGNoKFQuY3Vyc29yVG9vbC52YWx1ZSgpKXtjYXNlImFycm93IjpuPSJkZWZhdWx0IjticmVhaztjYXNlImRvdCI6bj0iZG90IjticmVhaztjYXNlImRlbW9uc3RyYXRpb24iOm49ImRlbW9uc3RyYXRpb24iO2JyZWFrO2Nhc2UicGVyZm9ybWFuY2UiOm49InBlcmZvcm1hbmNlIn10aGlzLl9zZXRDdXJzb3JDbGFzc05hbWUobil9c2hvd0NvbnRleHRNZW51Rm9yU2VsZWN0aW9uKGUsdCxpKXtjb25zdCBzPXRoaXMuX2NoYXJ0VW5kb01vZGVsKCkuc2VsZWN0aW9uKCk7aWYocy5pc0VtcHR5KCkpcmV0dXJuO2NvbnN0IG49cy5kYXRhU291cmNlcygpLmZpbHRlcigoZT0+ZS5oYXNDb250ZXh0TWVudSgpKSk7dGhpcy5zaG93Q29udGV4dE1lbnVGb3JTb3VyY2VzKG4sZSx2b2lkIDAsdCxpKX1hc3luYyBzaG93Q29udGV4dE1lbnVGb3JTb3VyY2VzKGUsdCxpLHMsbil7aWYoIWUubGVuZ3RofHwhdGhpcy5fc3RhdGUpcmV0dXJuIFByb21pc2UucmVzb2x2ZShudWxsKTtjb25zdHtBY3Rpb25zUHJvdmlkZXI6cn09YXdhaXQoMCxzcy5hY3Rpb25zUHJvdmlkZXJNb2R1bGUpKCk7aWYodGhpcy5faXNEZXN0cm95ZWQpcmV0dXJuIG51bGw7Y29uc3Qgbz1lWzBdLGw9KDAsYS5tZXJnZSkoKDAsYS5jbG9uZSkodGhpcy5fb3B0aW9ucy5jb250ZXh0TWVudSksaXx8e30pLGM9bmV3IHIodGhpcy5fY2hhcnQsbCk7aWYobz09PXRoaXMuX2NoYXJ0VW5kb01vZGVsKCkuY3Jvc3NoYWlyU291cmNlKCkpcmV0dXJuIG8uaGFuZGxlQ29udGV4dE1lbnVFdmVudCh0KSxQcm9taXNlLnJlc29sdmUobnVsbCk7e2NvbnN0IGk9YXdhaXQgYy5jb250ZXh0TWVudUFjdGlvbnNGb3JTb3VyY2VzKGUsdGhpcy5fc3RhdGUsdCxzPy5vcmlnaW4sbj8uZGF0YSgpPy5jdXN0b21BY3Rpb25zKTtpZigwPT09aS5sZW5ndGgpcmV0dXJuIFByb21pc2UucmVzb2x2ZShudWxsKTt7bGV0IGU9e21lbnVOYW1lOiIifTtyZXR1cm4gbyBpbnN0YW5jZW9mIGVuLlNlcmllcz9lPXttZW51TmFtZTpzPy5vcmlnaW4/PyJPYmplY3RUcmVlQ29udGV4dE1lbnUiLGRldGFpbDp7dHlwZToic2VyaWVzIixpZDpvLmluc3RhbmNlSWQoKX19OigwLHJpLmlzTGluZVRvb2wpKG8pP2U9e21lbnVOYW1lOnM/Lm9yaWdpbj8/Ik9iamVjdFRyZWVDb250ZXh0TWVudSIsZGV0YWlsOnt0eXBlOiJzaGFwZSIsaWQ6bz8uaWQoKT8/bnVsbH19OigwLHRpLmlzU3R1ZHkpKG8pJiYoZT17bWVudU5hbWU6cz8ub3JpZ2luPz8iT2JqZWN0VHJlZUNvbnRleHRNZW51IixkZXRhaWw6e3R5cGU6InN0dWR5IixpZDpvPy5pZCgpfHxudWxsfX0pLE5pLkNvbnRleHRNZW51TWFuYWdlci5jcmVhdGVNZW51KGkse3Rha2VGb2N1czohMCxyZXR1cm5Gb2N1czohMCxpc0tleWJvYXJkRXZlbnQ6bC5pc0tleWJvYXJkRXZlbnQsc3RhdE5hbWU6by5jb250ZXh0TWVudVN0YXROYW1lKCl9LGUscz8ub25DbG9zZSkudGhlbigoZT0+KGUuc2hvdyh0KSxlKSkpfX19bGVmdFByaWNlQXhpc2VzQ29udGFpbmVyKCl7cmV0dXJuIHRoaXMuX2xoc1ByaWNlQXhpc2VzQ29udGFpbmVyfXJpZ2h0UHJpY2VBeGlzZXNDb250YWluZXIoKXtyZXR1cm4gdGhpcy5fcmhzUHJpY2VBeGlzZXNDb250YWluZXJ9c2V0UHJpY2VBeGlzU2l6ZXMoZSx0LGkpe3RoaXMuX3ByaWNlQXhpc2VzQ29udGFpbmVyKGUpLnNldFNpemVzKHQsaSl9c3RhdGUoKXtyZXR1cm4oMCxsLmVuc3VyZU5vdE51bGwpKHRoaXMuX3N0YXRlKX1oYXNTdGF0ZSgpe3JldHVybiBudWxsIT09dGhpcy5fc3RhdGV9c2V0U3RhdGUoZSl7dGhpcy5fc3RhdGUhPT1lJiYodGhpcy5oYXNTdGF0ZSgpJiYodGhpcy5fdW5zdWJzY3JpYmVGcm9tU3RhdGUoKSx0aGlzLl9wYW5lQ29udHJvbHM/LmRlc3Ryb3koKSx0aGlzLl9wYW5lQ29udHJvbHM9bnVsbCksdGhpcy5fc3RhdGU9ZSx0aGlzLmhhc1N0YXRlKCkmJih0aGlzLnVwZGF0ZU9wdGlvbnModGhpcy5fb3B0aW9ucyksdGhpcy5fc3Vic2NyaWJlVG9TdGF0ZSgpLHRoaXMuX2xvYWRBbmRDcmVhdGVQYW5lQ29udHJvbHNXaWRnZXQodGhpcy5zdGF0ZSgpKSx0aGlzLnVwZGF0ZVByaWNlQXhpc1dpZGdldHNTdGF0ZXMoKSx0aGlzLl91cGRhdGVBY2Nlc3NpYmlsaXR5QXR0cigpKSl9Z2V0U2NyZWVuc2hvdERhdGEoZSl7Y29uc3QgdD1bXSxpPVtdO2xldCBzLG49W107Y29uc3Qgcj10aGlzLnN0YXRlKCksbz1yLm1vZGUoKT09PU0uUGFuZU1vZGUuV2lkZ2V0P1tdOnIuc291cmNlc0J5R3JvdXAoKS5wcmljZVNvdXJjZXMoKS5zbGljZSgpLnJldmVyc2UoKSxhPXRoaXMuX2NoYXJ0LnByb3BlcnRpZXMoKS5jaGlsZHMoKS5wYW5lUHJvcGVydGllcy5jaGlsZHMoKS5sZWdlbmRQcm9wZXJ0aWVzLmNoaWxkcygpO2Zvcihjb25zdCBsIG9mIG8pe2NvbnN0IG89bC5zdGF0dXNWaWV3KCk7aWYoKDAsCnRpLmlzU3R1ZHkpKGwpJiYoYS5zaG93TGVnZW5kLnZhbHVlKCl8fGU/LnNob3dDb2xsYXBzZWRTdHVkaWVzKSl7Y29uc3Qgcz1hLnNob3dTdHVkeVRpdGxlcy52YWx1ZSgpLG49ITA7aWYobC5wcm9wZXJ0aWVzKCkuY2hpbGRzKCkudmlzaWJsZS52YWx1ZSgpJiZ0aGlzLl9jaGFydE1vZGVsKCkucGFuZUZvclNvdXJjZShsKT09PXImJm8mJm4pe3QucHVzaChzP2wuc3RhdHVzUHJvdmlkZXIoZT8uc3RhdHVzKS50ZXh0KCk6IiIpO2NvbnN0IG49KDAscS5pc0ZlYXR1cmVzZXRFbmFibGVkKSgidXNlX2xhc3RfdmlzaWJsZV9iYXJfdmFsdWVfaW5fbGVnZW5kIik/dGhpcy5fY2hhcnRNb2RlbCgpLnRpbWVTY2FsZSgpLnZpc2libGVCYXJzU3RyaWN0UmFuZ2UoKT8ubGFzdEJhcigpPz9udWxsOm51bGwscj1sLmxlZ2VuZFZhbHVlc1Byb3ZpZGVyKCkuZ2V0VmFsdWVzKG4pO2kucHVzaChyKX19ZWxzZSBpZihsPT09dGhpcy5fY2hhcnRNb2RlbCgpLm1haW5TZXJpZXMoKSYmbyYmYS5zaG93U2VyaWVzVGl0bGUudmFsdWUoKSl7Y29uc3QgdD1sLnN0YXR1c1Byb3ZpZGVyKGU/LnN0YXR1c3x8e30pLmdldFNwbGl0VGl0bGUoKTtzPU9iamVjdC52YWx1ZXModCkuZmlsdGVyKChlPT4iIiE9PWUpKS5qb2luKCIgwrcgIik7Y29uc3QgaT0oMCxxLmlzRmVhdHVyZXNldEVuYWJsZWQpKCJ1c2VfbGFzdF92aXNpYmxlX2Jhcl92YWx1ZV9pbl9sZWdlbmQiKT90aGlzLl9jaGFydE1vZGVsKCkudGltZVNjYWxlKCkudmlzaWJsZUJhcnNTdHJpY3RSYW5nZSgpPy5sYXN0QmFyKCk/P251bGw6bnVsbDtuPWwubGVnZW5kVmFsdWVzUHJvdmlkZXIoKS5nZXRWYWx1ZXMoaSl9fXJldHVybnt0eXBlOiJwYW5lIixsZWZ0QXhpczp0aGlzLl9saHNQcmljZUF4aXNlc0NvbnRhaW5lci5nZXRTY3JlZW5zaG90RGF0YSgpLHJpZ2h0QXhpczp0aGlzLl9yaHNQcmljZUF4aXNlc0NvbnRhaW5lci5nZXRTY3JlZW5zaG90RGF0YSgpLGNvbnRlbnQ6dGhpcy5fY2FudmFzQmluZGluZy5jYW52YXNFbGVtZW50LnRvRGF0YVVSTCgpLGNhbnZhczp0aGlzLl9jYW52YXNCaW5kaW5nLmNhbnZhc0VsZW1lbnQsY29udGVudFdpZHRoOnRoaXMuX3NpemUud2lkdGgsY29udGVudEhlaWdodDp0aGlzLl9zaXplLmhlaWdodCxzdHVkaWVzOnQsc3R1ZGllc1ZhbHVlczppLGNvbnRhaW5zTWFpblNlcmllczp0aGlzLmNvbnRhaW5zTWFpblNlcmllcygpLG1haW5TZXJpZXNUZXh0OnMsbWFpblNlcmllc1ZhbHVlczpufX11cGRhdGVQcmljZUF4aXNXaWRnZXRzU3RhdGVzKCl7aWYoIXRoaXMuaGFzU3RhdGUoKSlyZXR1cm47Y29uc3QgZT10aGlzLl9jaGFydE1vZGVsKCksdD1lLnBhbmVGb3JTb3VyY2UoZS5tYWluU2VyaWVzKCkpO2lmKHQpaWYodGhpcy5fc3RhdGU/Lm1vZGUoKT09PU0uUGFuZU1vZGUuUmVndWxhcil7Y29uc3QgaT1lLnByaWNlU2NhbGVTbG90c0NvdW50KCkscz10aGlzLnN0YXRlKCksbj1zLnZpc2libGVMZWZ0UHJpY2VTY2FsZXMoKSxyPXMudmlzaWJsZVJpZ2h0UHJpY2VTY2FsZXMoKTt0aGlzLl9saHNQcmljZUF4aXNlc0NvbnRhaW5lci5zZXRTY2FsZXMobixpLmxlZnQsdC5sZWZ0UHJpY2VTY2FsZXMoKS5sZW5ndGgsaS5sZWZ0K2kucmlnaHQpLHRoaXMuX3Joc1ByaWNlQXhpc2VzQ29udGFpbmVyLnNldFNjYWxlcyhyLGkucmlnaHQsdC5yaWdodFByaWNlU2NhbGVzKCkubGVuZ3RoLGkubGVmdCtpLnJpZ2h0KX1lbHNlIHRoaXMuX3N0YXRlPy5tb2RlKCk9PT1NLlBhbmVNb2RlLldpZGdldCYmKHRoaXMuX2xoc1ByaWNlQXhpc2VzQ29udGFpbmVyLnNldFBhbmUodGhpcy5fc3RhdGUpLHRoaXMuX3Joc1ByaWNlQXhpc2VzQ29udGFpbmVyLnNldFBhbmUodGhpcy5fc3RhdGUpKX11cGRhdGVQcmljZUF4aXNXaWRnZXRzKCl7dGhpcy5fbGhzUHJpY2VBeGlzZXNDb250YWluZXIudXBkYXRlKCksdGhpcy5fcmhzUHJpY2VBeGlzZXNDb250YWluZXIudXBkYXRlKCl9dXBkYXRlKCl7dGhpcy5oYXNTdGF0ZSgpJiYodGhpcy51cGRhdGVQcmljZUF4aXNXaWRnZXRzKCksbnVsbCE9PXRoaXMuX2xlZ2VuZFdpZGdldCYmdGhpcy5fbGVnZW5kV2lkZ2V0LnVwZGF0ZSgpLHRoaXMudXBkYXRlQ29udHJvbHMoKSl9dXBkYXRlU3RhdHVzV2lkZ2V0KGUpe3RoaXMuaGFzU3RhdGUoKSYmbnVsbCE9PXRoaXMuX2xlZ2VuZFdpZGdldCYmKGUubGVnZW5kV2lkZ2V0TGF5b3V0SW52YWxpZGF0ZWQoKT90aGlzLl9sZWdlbmRXaWRnZXQudXBkYXRlTGF5b3V0KCk6dGhpcy5fbGVnZW5kV2lkZ2V0LnVwZGF0ZSgpKX11cGRhdGVDb250cm9scygpe3RoaXMuaGFzU3RhdGUoKSYmbnVsbCE9PXRoaXMuX3BhbmVDb250cm9scyYmdGhpcy5fcGFuZUNvbnRyb2xzLnVwZGF0ZSgpfXVwZGF0ZVRoZW1lZENvbG9ycyhlKXt0aGlzLl90aGVtZWRUb3BDb2xvcj1lLnRvcENvbG9yLHRoaXMuX3VwZGF0ZUJ5VGhlbWVkQ29sb3JzKCl9c3RhdHVzV2lkZ2V0KCl7cmV0dXJuIHRoaXMuX2xlZ2VuZFdpZGdldH1nZXRFbGVtZW50KCl7cmV0dXJuIHRoaXMuX3Jvd0VsZW1lbnR9Y2FudmFzRWxlbWVudCgpe3JldHVybiB0aGlzLl9jYW52YXNCaW5kaW5nLmNhbnZhc0VsZW1lbnR9Z2V0UmVuZGVyaW5nSW5mbygpe3JldHVybigwLEt0LmdldEJpbmRpbmdSZW5kZXJpbmdJbmZvKSh0aGlzLl9jYW52YXNCaW5kaW5nKX1oYXNDYW52YXMoZSl7cmV0dXJuIHRoaXMuX2NhbnZhc0JpbmRpbmcuY2FudmFzRWxlbWVudD09PWV8fHRoaXMuX3RvcENhbnZhc0JpbmRpbmcuY2FudmFzRWxlbWVudD09PWV9cGluY2hTdGFydEV2ZW50KCl7cmV0dXJuIG51bGw9PT10aGlzLl9wYW5lV2lkZ2V0c1NoYXJlZFN0YXRlLnNjcm9sbGluZ1BhbmUoKSYmbnVsbD09PXRoaXMuX3BhbmVXaWRnZXRzU2hhcmVkU3RhdGUucGluY2hpbmdQYW5lKCkmJih0aGlzLl9vblRvdWNoRXZlbnQoKSwhIXRoaXMuX29wdGlvbnMuaGFuZGxlU2NhbGUucGluY2gmJih0aGlzLl9jaGFydE1vZGVsKCkuc3RvcFRpbWVTY2FsZUFuaW1hdGlvbigpLHRoaXMuX3ByZXZQaW5jaFNjYWxlPTEsdGhpcy5fcGluY2hpbmc9ITAsdGhpcy5fd2FzUGluY2hlZD0hMCx0aGlzLl9wYW5lV2lkZ2V0c1NoYXJlZFN0YXRlLnNldFBpbmNoaW5nUGFuZSh0aGlzKSwhMCkpfQpwaW5jaEV2ZW50KGUsdCxpLHMpe2lmKG51bGwhPT10aGlzLl9wYW5lV2lkZ2V0c1NoYXJlZFN0YXRlLnNjcm9sbGluZ1BhbmUoKXx8dGhpcy5fcGFuZVdpZGdldHNTaGFyZWRTdGF0ZS5waW5jaGluZ1BhbmUoKSE9PXRoaXMpcmV0dXJuO2lmKHRoaXMuX29uVG91Y2hFdmVudCgpLCF0aGlzLl9vcHRpb25zLmhhbmRsZVNjYWxlLnBpbmNoKXJldHVybjtjb25zdCBuPTEwKihzLXRoaXMuX3ByZXZQaW5jaFNjYWxlKTt0aGlzLl9wcmV2UGluY2hTY2FsZT1zLHRoaXMuX2NoYXJ0TW9kZWwoKS56b29tVGltZShlLngsbiwhMCksdGhpcy5fcHJldlBpbmNoU2NhbGU9c31waW5jaEVuZEV2ZW50KCl7bnVsbD09PXRoaXMuX3BhbmVXaWRnZXRzU2hhcmVkU3RhdGUuc2Nyb2xsaW5nUGFuZSgpJiZ0aGlzLl9wYW5lV2lkZ2V0c1NoYXJlZFN0YXRlLnBpbmNoaW5nUGFuZSgpPT09dGhpcyYmKHRoaXMuX29uVG91Y2hFdmVudCgpLHRoaXMuX3BpbmNoaW5nPSExLHRoaXMuX3BhbmVXaWRnZXRzU2hhcmVkU3RhdGUuc2V0UGluY2hpbmdQYW5lKG51bGwpKX1tb3VzZUNsaWNrRXZlbnQoZSl7dGhpcy5fb25Nb3VzZUV2ZW50KCksdGhpcy5fbW91c2VDbGlja09yVGFwRXZlbnQoZSl9dGFwRXZlbnQoZSl7dGhpcy5fcHJldmVudFRvdWNoRXZlbnRzRXhjZXB0UGluY2goKXx8KHRoaXMuX29uVG91Y2hFdmVudCgpLHRoaXMuX21vdXNlQ2xpY2tPclRhcEV2ZW50KGUpKX1tb3VzZURvd25FdmVudChlKXt0aGlzLl9vbk1vdXNlRXZlbnQoKSx0aGlzLmhhc1N0YXRlKCkmJnRoaXMuX21vdXNlRG93bk9yVG91Y2hTdGFydEV2ZW50KGUsdGhpcy5fZGF0YVNvdXJjZUF0UG9pbnQoZS5sb2NhbFgsZS5sb2NhbFkpKX10b3VjaFN0YXJ0RXZlbnQoZSl7aWYodGhpcy5fcGFuZVdpZGdldHNTaGFyZWRTdGF0ZS5zdGFydFRvdWNoKHRoaXMpLHRoaXMuX3ByZXZlbnRUb3VjaEV2ZW50c0V4Y2VwdFBpbmNoKCkpcmV0dXJuO2NvbnN0IHQ9IXRoaXMuX3RyYWNrQ3Jvc3NoYWlyT25seUFmdGVyTG9uZ1RhcCYmbnVsbCE9PVNuJiZTbi5zdGF0ZUlkPT09dGhpcy5zdGF0ZSgpLmlkKCkmJk1hdGguYWJzKFNuLngtZS5sb2NhbFgpK01hdGguYWJzKFNuLnktZS5sb2NhbFkpPDU7dGhpcy5fb25Ub3VjaEV2ZW50KCksdGhpcy5fY2hhcnQuc2V0QWN0aXZlUGFuZVdpZGdldCh0aGlzKTtjb25zdCBpPXRoaXMuX2RhdGFTb3VyY2VBdFBvaW50KGUubG9jYWxYLGUubG9jYWxZKTtpZih0KXtjb25zdCB0PXRoaXMuX2NoYXJ0TW9kZWwoKS5jcm9zc2hhaXJTb3VyY2UoKTtudWxsIT09aSYmaS5zb3VyY2U9PT10fHx0LnNlbGVjdFBvaW50TW9kZSgpLnZhbHVlKCkhPT1ULlNlbGVjdFBvaW50TW9kZS5Ob25lP3RoaXMuc3RhcnRUcmFja2luZ01vZGUobmV3IFB0LlBvaW50KGUubG9jYWxYLGUubG9jYWxZKSxuZXcgUHQuUG9pbnQoZS5sb2NhbFgsZS5sb2NhbFkpKTohdGhpcy5fY2hhcnQucmVhZE9ubHkoKSYmbnVsbCE9PWkmJigoMCxyaS5pc0xpbmVUb29sKShpLnNvdXJjZSkmJmkuc291cmNlLnVzZXJFZGl0RW5hYmxlZCgpfHwoMCxxaS5pc0FsZXJ0TGFiZWwpKGkuc291cmNlKSkmJnRoaXMuX2NoYXJ0VW5kb01vZGVsKCkuc2VsZWN0aW9uTWFjcm8oKHQ9Pntjb25zdCBzPXt0eXBlOiJjaGFuZ2UiLG5ld1NlbGVjdGVkU291cmNlOmkuc291cmNlLGludGVyYWN0aW9uVHlwZTplLmlzVG91Y2g/InRvdWNoIjoicG9pbnRlciJ9O3Quc2VsZWN0aW9uT3BlcmF0aW9uQXZhaWxhYmxlKHMpJiYodC5jbGVhclNlbGVjdGlvbigpLHQuYWRkSXRlbVRvU2VsZWN0aW9uKGkuc291cmNlLGkuaGl0dGVzdC5kYXRhKCkpKX0pKX10aGlzLl9tb3VzZURvd25PclRvdWNoU3RhcnRFdmVudChlLGkpLHRoaXMuX21vdXNlT3JUb3VjaE1vdmVFdmVudChlKX1tb3VzZVVwRXZlbnQoZSl7dGhpcy5fb25Nb3VzZUV2ZW50KCksdGhpcy5fbW91c2VVcE9yVG91Y2hFbmRFdmVudChlKX10b3VjaEVuZEV2ZW50KGUpe3RoaXMuX3BhbmVXaWRnZXRzU2hhcmVkU3RhdGUuZW5kVG91Y2godGhpcyksdGhpcy5fcHJldmVudFRvdWNoRXZlbnRzRXhjZXB0UGluY2goKXx8KHRoaXMuX29uVG91Y2hFdmVudCgpLHRoaXMuX21vdXNlT3JUb3VjaExlYXZlRXZlbnQoZSksdGhpcy5fbW91c2VVcE9yVG91Y2hFbmRFdmVudChlKSl9bW91c2VNb3ZlRXZlbnQoZSl7dGhpcy5fb25Nb3VzZUV2ZW50KCksdGhpcy5fbW91c2VPclRvdWNoTW92ZUV2ZW50KGUpfXByZXNzZWRNb3VzZU1vdmVFdmVudChlKXt0aGlzLl9vbk1vdXNlRXZlbnQoKSx0aGlzLl9jaGFydC5jaGFydEZsb2F0aW5nVG9vbHRpcFZpc2libGUoKT9udWxsIT09dGhpcy5fY2hhcnQuYWN0aXZlUGFuZVdpZGdldCgpLnZhbHVlKCkmJnRoaXMuX21vdXNlT3JUb3VjaE1vdmVFdmVudChlKTp0aGlzLl9wcmVzc2VkTW91c2VPclRvdWNoTW92ZUV2ZW50KGUpfXRvdWNoTW92ZUV2ZW50KGUpe3RoaXMuX3ByZXZlbnRUb3VjaEV2ZW50c0V4Y2VwdFBpbmNoKCl8fCh0aGlzLl9vblRvdWNoRXZlbnQoKSx0aGlzLl9wcmVzc2VkTW91c2VPclRvdWNoTW92ZUV2ZW50KGUpKX1tb3VzZUxlYXZlRXZlbnQoZSl7dGhpcy5fb25Nb3VzZUV2ZW50KCksdGhpcy5fdXBkYXRlSG92ZXJlZFNvdXJjZShudWxsLG5ldyBMaS5FbnZpcm9ubWVudFN0YXRlKGUpKSx0aGlzLl9tb3VzZU9yVG91Y2hMZWF2ZUV2ZW50KGUpfW1vdXNlRG91YmxlQ2xpY2tFdmVudChlKXt0aGlzLl9vbk1vdXNlRXZlbnQoKSx0aGlzLl9tb3VzZURvdWJsZUNsaWNrT3JEb3VibGVUYXBFdmVudChlKX13aGVlbENsaWNrRXZlbnQoZSl7aWYodGhpcy5fY2hhcnQucmVhZE9ubHkoKSlyZXR1cm47Y29uc3QgdD10aGlzLl9kYXRhU291cmNlQXRQb2ludChlLmxvY2FsWCxlLmxvY2FsWSk7aWYobnVsbD09PXR8fHQuaXNDdXN0b20pcmV0dXJuO2lmKCh0LmhpdHRlc3QudGFyZ2V0KCl8fDApPD1NaS5IaXRUYXJnZXQuTW92ZVBvaW50QmFja2dyb3VuZClyZXR1cm47Y29uc3QgaT1uZXcgTGkuRW52aXJvbm1lbnRTdGF0ZShlKSxzPXQuaGl0dGVzdC5lcmFzZU1hcmtlcigpCjtpZihpLm1vZCgpJiZ2b2lkIDAhPT1zJiZ0LnNvdXJjZS5wcm9jZXNzRXJhc2UpcmV0dXJuIHZvaWQgdC5zb3VyY2UucHJvY2Vzc0VyYXNlKHRoaXMuX2NoYXJ0VW5kb01vZGVsKCkscyk7Y29uc3Qgbj10aGlzLl9jaGFydFVuZG9Nb2RlbCgpO24uc2VsZWN0aW9uKCkuaXNTZWxlY3RlZCh0LnNvdXJjZSl8fG4uc2VsZWN0aW9uTWFjcm8oKGU9PntlLmNsZWFyU2VsZWN0aW9uKCk7Y29uc3QgaT0oMCxsLmVuc3VyZU5vdE51bGwpKHQuc291cmNlKTtlLmFkZEl0ZW1Ub1NlbGVjdGlvbihpLHVuKHQsaSkpfSkpLHRoaXMuX2NoYXJ0LnJlbW92ZVNlbGVjdGVkU291cmNlcygpfWRvdWJsZVRhcEV2ZW50KGUpe3RoaXMuX3ByZXZlbnRUb3VjaEV2ZW50c0V4Y2VwdFBpbmNoKCl8fCh0aGlzLl9vblRvdWNoRXZlbnQoKSx0aGlzLl9tb3VzZURvdWJsZUNsaWNrT3JEb3VibGVUYXBFdmVudChlKSl9bG9uZ1RhcEV2ZW50KGUpe2lmKG51bGw9PT10aGlzLl9zdGF0ZXx8dGhpcy5fcHJldmVudFRvdWNoRXZlbnRzRXhjZXB0UGluY2goKSlyZXR1cm47aWYodGhpcy5fb25Ub3VjaEV2ZW50KCksdGhpcy5fbG9uZ1RhcD0hMCxudWxsIT09dGhpcy5fc3RhcnRUcmFja1BvaW50fHwhdGhpcy5fdHJhY2tpbmdNb2RlU2hvdWxkQmVBY3RpdmUoKSlyZXR1cm47Y29uc3QgdD10aGlzLl9jaGFydE1vZGVsKCkuc2VsZWN0aW9uKCk7aWYoIXQuaXNFbXB0eSgpKXtjb25zdCBpPXRoaXMuX2RhdGFTb3VyY2VBdFBvaW50KGUubG9jYWxYLGUubG9jYWxZKTtpZihudWxsIT09aSYmdC5pc1NlbGVjdGVkKGkuc291cmNlKSlyZXR1cm59dGhpcy5zdGFydFRyYWNraW5nTW9kZShuZXcgUHQuUG9pbnQoZS5sb2NhbFgsZS5sb2NhbFkpLG5ldyBQdC5Qb2ludChlLmxvY2FsWCxlLmxvY2FsWSksbmV3IExpLkVudmlyb25tZW50U3RhdGUoZSkpfW1vdXNlRW50ZXJFdmVudChlKXtpZih0aGlzLl9vbk1vdXNlRXZlbnQoKSwhdGhpcy5oYXNTdGF0ZSgpKXJldHVybjt0aGlzLl9jaGFydC5zZXRBY3RpdmVQYW5lV2lkZ2V0KHRoaXMpO2NvbnN0IHQ9dGhpcy5fZGF0YVNvdXJjZUF0UG9pbnQoZS5sb2NhbFgsZS5sb2NhbFkpO3RoaXMuX3VwZGF0ZUhvdmVyZWRTb3VyY2UodCxuZXcgTGkuRW52aXJvbm1lbnRTdGF0ZShlKSksdGhpcy5zZXRDdXJzb3JQb3NpdGlvbihlLmxvY2FsWCxlLmxvY2FsWSxuZXcgTGkuRW52aXJvbm1lbnRTdGF0ZShlKSl9Y29udGV4dE1lbnVFdmVudChlKXt0aGlzLl9vbk1vdXNlRXZlbnQoKSx0aGlzLl9jb250ZXh0TWVudUV2ZW50KGUpfXRvdWNoQ29udGV4dE1lbnVFdmVudChlKXt0aGlzLl9wcmV2ZW50VG91Y2hFdmVudHNFeGNlcHRQaW5jaCgpfHwodGhpcy5fb25Ub3VjaEV2ZW50KCksdGhpcy5fY29udGV4dE1lbnVFdmVudChlKSl9bW91c2VEb3duT3V0c2lkZUV2ZW50KGUpe3RoaXMuX3Byb2Nlc3NPdXRzaWRlQ2xpY2sobnVsbCxlKX10b3VjaFN0YXJ0T3V0c2lkZUV2ZW50KGUpe3RoaXMuX3Byb2Nlc3NPdXRzaWRlQ2xpY2sobnVsbCxlKX1jYW5jZWxab29tKCl7dGhpcy5fY2hhcnRNb2RlbCgpLmNyb3NzaGFpclNvdXJjZSgpLmNsZWFyU2VsZWN0aW9uKCksdGhpcy5fZmlyc3Rab29tUG9pbnQ9bnVsbCx0aGlzLl9wcmV2ZW50Q3Jvc3NIYWlyTW92ZSgpJiZ0aGlzLl9jbGVhckN1cnNvclBvc2l0aW9uKCl9c3RhcnRUcmFja2luZ01vZGUoZSx0LGkpe3RoaXMuc3RhdGUoKS5tb2RlKCkhPT1NLlBhbmVNb2RlLldpZGdldCYmKHRoaXMuX3N0YXJ0Q2hhbmdlTGluZVRvb2xQYXJhbXM9bnVsbCx0aGlzLl9zdGFydE1vdmVTb3VyY2VQYXJhbXM9bnVsbCx0aGlzLl9jdXJyZW50Q2hhbmdpbmdMaW5lVG9vbEhpdFRlc3Q9bnVsbCx0aGlzLl9jdXJyZW50TW92aW5nSGl0VGVzdD1udWxsLHRoaXMuX2NoYXJ0VW5kb01vZGVsKCkuc2VsZWN0aW9uTWFjcm8oKGU9PmUuY2xlYXJTZWxlY3Rpb24oKSkpLHRoaXMuX3N0YXJ0VHJhY2tQb2ludD1lLHRoaXMuX2V4aXRUcmFja2luZ01vZGVPbk5leHRUcnk9ITEsdGhpcy5zZXRDdXJzb3JQb3NpdGlvbih0LngsdC55LGkpLHRoaXMuX2luaXRDcm9zc0hhaXJQb3NpdGlvbj10aGlzLl9jaGFydE1vZGVsKCkuY3Jvc3NoYWlyU291cmNlKCkuY3VycmVudFBvaW50KCkpfXNldERyYWdUb0Fub3RoZXJQYW5lQ3Vyc29yKCl7dGhpcy5fc2V0Q3Vyc29yQ2xhc3NOYW1lKCJncmFiYmluZyIpfWNsb25lTGluZVRvb2xzKGUsdCl7cmV0dXJuIHRoaXMuX2NoYXJ0VW5kb01vZGVsKCkuY2xvbmVMaW5lVG9vbHMoZSx0KX1leGl0VHJhY2tpbmdNb2RlKCl7bnVsbCE9PXRoaXMuX3N0YXRlJiZudWxsIT09dGhpcy5fc3RhcnRUcmFja1BvaW50JiYodGhpcy5fZXhpdFRyYWNraW5nTW9kZU9uTmV4dFRyeT0hMCx0aGlzLl90cnlFeGl0VHJhY2tpbmdNb2RlKCkpfXRyYWNraW5nTW9kZUVuYWJsZWQoKXtyZXR1cm4gbnVsbCE9PXRoaXMuX3N0YXRlJiZudWxsIT09dGhpcy5fc3RhcnRUcmFja1BvaW50fWFkZEN1c3RvbVdpZGdldFRvTGVnZW5kKGUsdCl7dGhpcy5fb3B0aW9ucy5sZWdlbmRXaWRnZXRFbmFibGVkJiYodGhpcy5fY3VzdG9tTGVnZW5kV2lkZ2V0c0ZhY3RvcnlNYXAuc2V0KGUsdCksbnVsbCE9PXRoaXMuX2xlZ2VuZFdpZGdldCYmdGhpcy5fbGVnZW5kV2lkZ2V0LmFkZEN1c3RvbVdpZGdldFRvTGVnZW5kKGUsdCkpfWNvbnRhaW5zTWFpblNlcmllcygpe3JldHVybiEhdGhpcy5oYXNTdGF0ZSgpJiZ0aGlzLnN0YXRlKCkuY29udGFpbnNNYWluU2VyaWVzKCl9cGFpbnQoZSx0KXtpZighdGhpcy5fY2hhcnRVbmRvTW9kZWwoKXx8IXRoaXMuaGFzU3RhdGUoKXx8MD09PXRoaXMuX3NpemUud2lkdGh8fDA9PT10aGlzLl9zaXplLmhlaWdodClyZXR1cm47KDAsS3QudHJ5QXBwbHlTdWdnZXN0ZWRDYW52YXNCaXRtYXBTaXplKSh0aGlzLl9jYW52YXNCaW5kaW5nKSwoMCxLdC50cnlBcHBseVN1Z2dlc3RlZENhbnZhc0JpdG1hcFNpemUpKHRoaXMuX3RvcENhbnZhc0JpbmRpbmcpLAp0aGlzLl9zdGF0ZSYmKGUucHJpY2VTY2FsZVNpZGVNYXhMZXZlbCgibGVmdCIpPkxlLkludmFsaWRhdGlvbkxldmVsLkN1cnNvcnx8ZS5wcmljZVNjYWxlU2lkZU1heExldmVsKCJyaWdodCIpPkxlLkludmFsaWRhdGlvbkxldmVsLkN1cnNvcikmJih0aGlzLl9yZWNhbGN1bGF0ZVByaWNlU2NhbGVzKCgwLHRuLnZpZXdwb3J0Q2hhbmdlRXZlbnQpKHRoaXMuc3RhdGUoKSkpLG51bGwhPT1TbiYmU24uc3RhdGVJZD09PXRoaXMuc3RhdGUoKS5pZCgpJiYodGhpcy5faXNTZWxlY3RQb2ludE1vZGVFbmFibGVkKCk/dGhpcy5zZXRDdXJzb3JQb3NpdGlvbihTbi54LFNuLnksU24uZW52U3RhdGUpOnRoaXMuX2NoYXJ0TW9kZWwoKS5jcm9zc2hhaXJTb3VyY2UoKS52aXNpYmxlP3RoaXMuX3RyYWNrQ3Jvc3NoYWlyT25seUFmdGVyTG9uZ1RhcCYmbnVsbD09PXRoaXMuX3N0YXJ0VHJhY2tQb2ludCYmIXRoaXMuX2Nyb3NzSGFpclNob3VsZEJlVmlzaWJsZSgpfHx0aGlzLnNldEN1cnNvclBvc2l0aW9uKFNuLngsU24ueSxTbi5lbnZTdGF0ZSk6U249bnVsbCkpO2NvbnN0IGk9ZS5mdWxsSW52YWxpZGF0aW9uKCk7aWYoaT5MZS5JbnZhbGlkYXRpb25MZXZlbC5DdXJzb3ImJm51bGwhPT1TbiYmU24uc3RhdGVJZD09PXRoaXMuc3RhdGUoKS5pZCgpKXtjb25zdCBlPXRoaXMuX2RhdGFTb3VyY2VBdFBvaW50KFNuLngsU24ueSk7dGhpcy5fdXBkYXRlSG92ZXJlZFNvdXJjZShlLCgwLFh0Lmdsb2JhbEVudmlyb25tZW50U3RhdGUpKCkpfWlmKHRoaXMuX2xoc1ByaWNlQXhpc2VzQ29udGFpbmVyLnBhaW50KGUuZ2V0dGVyRm9yUHJpY2VTY2FsZUludmFsaWRhdGlvbkxldmVsQnlTaWRlKCJsZWZ0IiksdCksdGhpcy5fcmhzUHJpY2VBeGlzZXNDb250YWluZXIucGFpbnQoZS5nZXR0ZXJGb3JQcmljZVNjYWxlSW52YWxpZGF0aW9uTGV2ZWxCeVNpZGUoInJpZ2h0IiksdCksaT09PUxlLkludmFsaWRhdGlvbkxldmVsLk5vbmUpcmV0dXJuO2NvbnN0IHM9dGhpcy5fc3RhdGUmJih0aGlzLl9zdGF0ZS5tYXhpbWl6ZWQoKS52YWx1ZSgpfHwhdGhpcy5fc3RhdGUuY29sbGFwc2VkKCkudmFsdWUoKXx8dGhpcy5fc3RhdGUubW9kZSgpPT09TS5QYW5lTW9kZS5XaWRnZXQpO2lmKGk+TGUuSW52YWxpZGF0aW9uTGV2ZWwuQ3Vyc29yKXtjb25zdCBlPSgwLGwuZW5zdXJlTm90TnVsbCkodGhpcy5fY2FudmFzQmluZGluZy5jYW52YXNFbGVtZW50LmdldENvbnRleHQoIjJkIikpO2Uuc2V0VHJhbnNmb3JtKDEsMCwwLDEsMCwwKTtjb25zdCB0PSgwLEt0LmdldEJpbmRpbmdSZW5kZXJpbmdJbmZvKSh0aGlzLl9jYW52YXNCaW5kaW5nKTt0aGlzLl9tYWtlU3VyZUlzVXBkYXRlZCh0KSx0aGlzLl9kcmF3QmFja2dyb3VuZChlLHQpLHMmJnRoaXMuX2RyYXdTb3VyY2VzKGUsdCl9aWYobnVsbCE9PXRoaXMuX3N0YXRlKXtjb25zdCBlPSgwLGwuZW5zdXJlTm90TnVsbCkodGhpcy5fdG9wQ2FudmFzQmluZGluZy5jYW52YXNFbGVtZW50LmdldENvbnRleHQoIjJkIikpO2Uuc2V0VHJhbnNmb3JtKDEsMCwwLDEsMCwwKTtjb25zdCB0PSgwLEt0LmdldEJpbmRpbmdSZW5kZXJpbmdJbmZvKSh0aGlzLl90b3BDYW52YXNCaW5kaW5nKTtlLmNsZWFyUmVjdCgwLDAsdC5iaXRtYXBTaXplLndpZHRoLHQuYml0bWFwU2l6ZS5oZWlnaHQpLHMmJnRoaXMuX2RyYXdUb3BWaWV3cyhlLHQpLHRoaXMuX2RyYXdDcm9zc0hhaXIoZSx0KSxzJiZ0aGlzLl9kcmF3QWN0aXZlTGluZVRvb2xzKGUsdCl9dGhpcy5fdXBkYXRlRW5kT2ZTZXJpZXNCYW5uZXIoKX1jYW5jZWxDcmVhdGluZ0xpbmVUb29sKCl7Y29uc3QgZT10aGlzLl9jaGFydFVuZG9Nb2RlbCgpLHQ9dGhpcy5fY2hhcnRVbmRvTW9kZWwoKS5saW5lQmVpbmdDcmVhdGVkKCk7aWYodClpZih0LnBvaW50c0NvdW50KCk8PTAmJiEoMCxtLmlzTGluZURyYXduV2l0aFByZXNzZWRCdXR0b24pKHQudG9vbG5hbWUpKXtjb25zdCBpPXQucG9pbnRzKCk7aWYoaS5sZW5ndGg+Mil7Y29uc3Qgcz1pW2kubGVuZ3RoLTJdO2UuY29udGludWVDcmVhdGluZ0xpbmUocyksdGhpcy5fZmluaXNoVG9vbCh0KX1lbHNlIGUuY2FuY2VsQ3JlYXRpbmdMaW5lKCl9ZWxzZSBlLmNhbmNlbENyZWF0aW5nTGluZSgpO251bGwhPT10aGlzLl9maXJzdFpvb21Qb2ludCYmdGhpcy5jYW5jZWxab29tKCksdGhpcy5fY2xlYXJDdXJzb3JQb3NpdGlvbigpLHRoaXMuc2V0Q3Vyc29yRm9yVG9vbCgpfWFzeW5jIGRyYXdSaWdodFRoZXJlKGUsdCl7dGhpcy5oYXNTdGF0ZSgpJiYoYXdhaXQoMCxraS5lbnN1cmVMaW5lVG9vbExvYWRlZCkoZSksdGhpcy5fY2hhcnRVbmRvTW9kZWwoKS5kcmF3UmlnaHRUaGVyZShlLHRoaXMuc3RhdGUoKSx2b2lkIDAsdCkpfWNhbmNlbE1lYXN1cmluZygpe3RoaXMuX2NoYXJ0VW5kb01vZGVsKCkuY3Jvc3NoYWlyU291cmNlKCkuY2xlYXJNZWFzdXJlKCksKDAsVC5yZXNldFRvQ3Vyc29yKSgpLHRoaXMuc2V0Q3Vyc29yRm9yVG9vbCgpfWFzeW5jIHNldEVycm9yTWVzc2FnZShlKXtpZighZSYmIXRoaXMuX2Vycm9yUmVuZGVyZXIpcmV0dXJuO2lmKCF0aGlzLl9lcnJvclJlbmRlcmVyKXt0aGlzLl9lcnJvclJlbmRlcmVyPXRoaXMuX2NyZWF0ZUVycm9yQmxvY2soKTtjb25zdCBlPWF3YWl0IHRoaXMuX2Vycm9yUmVuZGVyZXI7aWYodGhpcy5faXNEZXN0cm95ZWQpcmV0dXJuO3RoaXMuX2Rpdi5pbnNlcnRCZWZvcmUoZS5jb250YWluZXIsdGhpcy5fdG9wQ2FudmFzQmluZGluZy5jYW52YXNFbGVtZW50Lm5leHRTaWJsaW5nKX1sZXQgdDtpZihlKXtjb25zdCBpPXRoaXMuX3N0YXRlPy5jb250YWluc01haW5TZXJpZXMoKXx8dGhpcy5fc3RhdGU/Lm1heGltaXplZCgpLnZhbHVlKCk7dD17bWVzc2FnZTppP2UubWVzc2FnZTp2b2lkIDAsdGl0bGU6ZS50aXRsZSxpY29uOmk/ZS5pY29uOnZvaWQgMCxiYWNrZ3JvdW5kQ29sb3I6YGxpbmVhci1ncmFkaWVudCgke3RoaXMuX2NoYXJ0TW9kZWwoKS5iYWNrZ3JvdW5kVG9wQ29sb3IoKS52YWx1ZSgpfSwgJHt0aGlzLl9jaGFydE1vZGVsKCkuYmFja2dyb3VuZENvbG9yKCkudmFsdWUoKX0pYCx0aGVtZTp0aGlzLl9jaGFydE1vZGVsKCkuYmFja2dyb3VuZFRoZW1lKCkudmFsdWUoKSwKYnV0dG9uczp0aGlzLmNvbnRhaW5zTWFpblNlcmllcygpP2UuYnV0dG9uczp2b2lkIDAsbWFpblBhbmU6aX19KGF3YWl0IHRoaXMuX2Vycm9yUmVuZGVyZXIpLnVwZGF0ZSh0KX1jb2xsYXBzZWRIZWlnaHQoKXtyZXR1cm4gTWF0aC5tYXgoTWF0aC5jZWlsKHRoaXMuX3BhbmVDb250cm9scz8uYm90dG9tV2l0aE1hcmdpbigpPz8wKSwzMyl9dmlzdWFsbHlDb2xsYXBzZWQoKXtyZXR1cm4gdGhpcy5fdmlzdWFsbHlDb2xsYXBzZWQucmVhZG9ubHkoKX1tYXhpbWl6ZWQoKXtyZXR1cm4gdGhpcy5fbWF4aW1pemVkLnJlYWRvbmx5KCl9c2V0Q3Vyc29yUG9zaXRpb24oZSx0LGkpe3RoaXMuX3VwZGF0ZUxhc3RDcm9zc2hhaXJQb3NpdGlvbihlLHQsaSksdGhpcy5fY2hhcnRNb2RlbCgpLnNldEFuZFNhdmVDdXJyZW50UG9zaXRpb24odGhpcy5fY29ycmVjdFhDb29yZChlKSx0aGlzLl9jb3JyZWN0WUNvb3JkKHQpLHRoaXMuc3RhdGUoKSxpKX1kYXRhU291cmNlQXRQb2ludChlLHQpe3JldHVybiB0aGlzLl9kYXRhU291cmNlQXRQb2ludChlLHQpPy5zb3VyY2U/P251bGx9X3RyeUV4aXRUcmFja2luZ01vZGUoZSl7dGhpcy5fZXhpdFRyYWNraW5nTW9kZU9uTmV4dFRyeSYmKHRoaXMuX3N0YXJ0VHJhY2tQb2ludD1udWxsLGV8fHRoaXMuX2NsZWFyQ3Vyc29yUG9zaXRpb24oKSl9X3RyeVN0YXJ0TWVhc3VyZShlLHQsaSxzLG4pe3JldHVybiEoISgwLFQudG9vbElzTWVhc3VyZSkoVC50b29sLnZhbHVlKCkpfHx0LnN0YXJ0TWVhc3VyZVBvaW50KCkpJiYoZS5pc1RvdWNofHx0aGlzLl9wcmV2ZW50Q3Jvc3NIYWlyTW92ZSgpfHx0aGlzLnNldEN1cnNvclBvc2l0aW9uKGUubG9jYWxYLGUubG9jYWxZLGkpLHM9dGhpcy5fY2hhcnRNb2RlbCgpLm1hZ25ldCgpLmFsaWduKHMsbix0aGlzLnN0YXRlKCkpLHQuc3RhcnRNZWFzdXJpbmcoe3ByaWNlOnMsaW5kZXg6bn0sdGhpcy5zdGF0ZSgpKSwhMCl9X3RyeUZpbmlzaE1lYXN1cmUoZSx0KXtpZih0LnN0YXJ0TWVhc3VyZVBvaW50KCkmJiF0LmVuZE1lYXN1cmVQb2ludCgpKXtsZXQgaT10LnByaWNlO2NvbnN0IHM9dC5pbmRleDtyZXR1cm4gaT10aGlzLl9jaGFydE1vZGVsKCkubWFnbmV0KCkuYWxpZ24oaSxzLHRoaXMuc3RhdGUoKSksdC5maW5pc2hNZWFzdXJlKHtwcmljZTppLGluZGV4OnN9KSxlLmlzVG91Y2g/KDAsVC5yZXNldFRvQ3Vyc29yKSgpOnRoaXMuX25lZWRSZXNldE1lYXN1cmVMYXRlcj0hMCx0aGlzLl9wcmV2ZW50Q3Jvc3NIYWlyTW92ZSgpJiZ0aGlzLl9jbGVhckN1cnNvclBvc2l0aW9uKCksITB9cmV0dXJuITF9X3RyeVN0YXJ0Wm9vbShlLHQsaSxzKXtjb25zdCBuPXRoaXMuX2NoYXJ0Lm1vZGVsKCkubW9kZWwoKS56b29tRW5hYmxlZCgpO2lmKCJ6b29tIj09PVQudG9vbC52YWx1ZSgpJiZuKXtjb25zdCBuPXRoaXMuX2NoYXJ0VW5kb01vZGVsKCkscj1uLnRpbWVTY2FsZSgpLmluZGV4VG9Db29yZGluYXRlKGkpLS41Km4udGltZVNjYWxlKCkuYmFyU3BhY2luZygpO3JldHVybiB0aGlzLl9maXJzdFpvb21Qb2ludD17cHJpY2U6dCxpbmRleDppLHg6cix5OmUubG9jYWxZfSx0aGlzLl9wcmV2ZW50Q3Jvc3NIYWlyTW92ZSgpfHx0aGlzLnNldEN1cnNvclBvc2l0aW9uKGUubG9jYWxYLGUubG9jYWxZLHMpLHRoaXMuX2NoYXJ0TW9kZWwoKS5jcm9zc2hhaXJTb3VyY2UoKS5zdGFydFNlbGVjdGlvbih0aGlzLnN0YXRlKCkpLCEwfXJldHVybiExfV9maW5pc2hab29tKGUpe2NvbnN0IHQ9dGhpcy5zdGF0ZSgpLGk9dC5kZWZhdWx0UHJpY2VTY2FsZSgpLHM9KDAsbC5lbnN1cmVOb3ROdWxsKSh0Lm1haW5EYXRhU291cmNlKCkpLmZpcnN0VmFsdWUoKSxuPWkuY29vcmRpbmF0ZVRvUHJpY2UoZS5sb2NhbFksKDAsbC5lbnN1cmVOb3ROdWxsKShzKSkscj10aGlzLl9jaGFydFVuZG9Nb2RlbCgpLG89TWF0aC5yb3VuZChyLnRpbWVTY2FsZSgpLmNvb3JkaW5hdGVUb0luZGV4KGUubG9jYWxYKSksYT0oMCxsLmVuc3VyZU5vdE51bGwpKHRoaXMuX2ZpcnN0Wm9vbVBvaW50KTtvIT09YS5pbmRleCYmci56b29tVG9WaWV3cG9ydChhLmluZGV4LG8sYS5wcmljZSxuLHQpLHRoaXMuX2NoYXJ0TW9kZWwoKS5jcm9zc2hhaXJTb3VyY2UoKS5jbGVhclNlbGVjdGlvbigpLHRoaXMuX2ZpcnN0Wm9vbVBvaW50PW51bGwsKDAsVC5yZXNldFRvQ3Vyc29yKSgpLHRoaXMuX3ByZXZlbnRDcm9zc0hhaXJNb3ZlKCkmJnRoaXMuX2NsZWFyQ3Vyc29yUG9zaXRpb24oKX1fdHJ5RmluaXNoWm9vbShlKXtyZXR1cm4gbnVsbCE9PXRoaXMuX2ZpcnN0Wm9vbVBvaW50JiYodGhpcy5fZmluaXNoWm9vbShlKSwhMCl9X3RyeUhhbmRsZUVyYXNlck1vdXNlRG93bihlLHQpe2lmKCgwLFQudG9vbElzRXJhc2VyKShULnRvb2wudmFsdWUoKSkmJiFlLmlzQ3VzdG9tJiYoIShpPWUuc291cmNlKXx8IWkuY3VzdG9taXphdGlvbnx8IWkuY3VzdG9taXphdGlvbi5kaXNhYmxlRXJhc2luZykpe2NvbnN0IGk9dGhpcy5fY2hhcnRVbmRvTW9kZWwoKTtpZigoMCxyaS5pc0xpbmVUb29sKShlLnNvdXJjZSl8fCgwLHRpLmlzU3R1ZHkpKGUuc291cmNlKSl7Y29uc3Qgcz1lLmhpdHRlc3QuZXJhc2VNYXJrZXIoKTtyZXR1cm4gdC5tb2QoKSYmdm9pZCAwIT09cyYmZS5zb3VyY2UucHJvY2Vzc0VyYXNlP2Uuc291cmNlLnByb2Nlc3NFcmFzZShpLHMpOmkucmVtb3ZlU291cmNlKGUuc291cmNlLCExKSwhMH19dmFyIGk7cmV0dXJuITF9X3RyeVN0YXJ0Q2hhbmdpbmdMaW5lVG9vbChlLHQsaSxzKXtpZihlLmlzVG91Y2gmJm51bGwhPT10aGlzLl9zdGFydFRyYWNrUG9pbnQpcmV0dXJuITE7Y29uc3Qgbj10LmhpdHRlc3Q7aWYoKCFlLmlzVG91Y2h8fCF0aGlzLl9wcmV2ZW50U291cmNlQ2hhbmdlKSYmbiYmKDAscmkuaXNMaW5lVG9vbCkodC5zb3VyY2UpJiZuLnRhcmdldCgpPT09TWkuSGl0VGFyZ2V0LkNoYW5nZVBvaW50KXtjb25zdCByPXRoaXMuX2NoYXJ0VW5kb01vZGVsKCksbz0oMCxsLmVuc3VyZSkodGhpcy5zdGF0ZSgpLm1haW5EYXRhU291cmNlKCk/LmZpcnN0VmFsdWUoKSksYT1uLmRhdGEoKT8ub3duZXJTb3VyY2VJZCxjPSgwLApsLmVuc3VyZU5vdE51bGwpKGE/dGhpcy5fY2hhcnRNb2RlbCgpLmRhdGFTb3VyY2VGb3JJZChhKTp0LnNvdXJjZS5vd25lclNvdXJjZSgpKSxoPSgwLGwuZW5zdXJlTm90TnVsbCkoYy5wcmljZVNjYWxlKCkpLmNvb3JkaW5hdGVUb1ByaWNlKGUubG9jYWxZLG8pO3Iuc2VsZWN0aW9uTWFjcm8oKGU9PntlLmNsZWFyU2VsZWN0aW9uKCksZS5hZGRJdGVtVG9TZWxlY3Rpb24odC5zb3VyY2Usbi5kYXRhKCkpfSkpO2xldCBkPWg7dC5zb3VyY2UucHJpY2VTY2FsZSgpPT09ci5tYWluU2VyaWVzKCkucHJpY2VTY2FsZSgpJiYoZD1yLm1vZGVsKCkubWFnbmV0KCkuYWxpZ24oaCxzLHRoaXMuc3RhdGUoKSkpO2NvbnN0IHU9bi5kYXRhKCk/Lm5vbkRpc2NyZXRlSW5kZXg7dSYmKHM9ci50aW1lU2NhbGUoKS5jb29yZGluYXRlVG9GbG9hdEluZGV4KGUubG9jYWxYKSk7Y29uc3QgcD1uLmRhdGEoKT8ucG9pbnRJbmRleDtyZXR1cm4gdGhpcy5fc3RhcnRDaGFuZ2VMaW5lVG9vbFBhcmFtcz17c291cmNlOnQuc291cmNlLG93bmVyU291cmNlOmMsc3RhcnRQb2ludDp7aW5kZXg6cyxwcmljZTpkLG5vbkRpc2NyZXRlSW5kZXg6dX0sc2NyZWVuUG9pbnQ6e3g6ZS5sb2NhbFgseTplLmxvY2FsWX0scG9pbnRJbmRleDpwLGVudlN0YXRlOml9LCEwfXJldHVybiB0aGlzLl9zdGFydENoYW5nZUxpbmVUb29sUGFyYW1zPW51bGwsITF9X3RyeVN0YXJ0Q2xvbmluZyhlLHQsaSxzKXtpZihpLm1vZCgpKXtjb25zdCB0PXRoaXMuX2NoYXJ0VW5kb01vZGVsKCkuc2VsZWN0aW9uKCkuZGF0YVNvdXJjZXMoKS5maWx0ZXIoKGU9PmUuY2xvbmVhYmxlKCkpKTtpZihzJiZzLmNsb25lYWJsZSgpJiZ0LnB1c2gocyksdC5sZW5ndGg+MClyZXR1cm4gdGhpcy5fY2xvbm5pbmdBdE1vdmVMaW5lVG9vbHM9dC5tYXAoKGU9PmUuaWQoKSkpLHRoaXMuX3N0YXJ0Q2xvbmluZ1BvaW50PW5ldyBQdC5Qb2ludChlLmxvY2FsWCxlLmxvY2FsWSksITB9cmV0dXJuITF9X3RyeUZpbmlzaENsb25uaW5nKGUsdCxpKXtjb25zdCBzPXRoaXMuX2NoYXJ0VW5kb01vZGVsKCksbj10aGlzLl9jaGFydE1vZGVsKCk7aWYodC5tb2QoKSYmdGhpcy5fY2xvbm5pbmdBdE1vdmVMaW5lVG9vbHMpe2NvbnN0IHI9bmV3IFB0LlBvaW50KGUubG9jYWxYLGUubG9jYWxZKSxvPSgwLGwuZW5zdXJlTm90TnVsbCkodGhpcy5fc3RhcnRDbG9uaW5nUG9pbnQpLnN1YnRyYWN0KHIpLmxlbmd0aCgpLGE9W107Zm9yKGNvbnN0IGUgb2YgdGhpcy5fY2xvbm5pbmdBdE1vdmVMaW5lVG9vbHMpe2NvbnN0IHQ9bi5kYXRhU291cmNlRm9ySWQoZSk7bnVsbCE9PXQmJmEucHVzaCh0KX1pZigwPT09YS5sZW5ndGgpcmV0dXJuITE7aWYobz44KXtjb25zdCBuPXRoaXMuY2xvbmVMaW5lVG9vbHMoYSwhMCkubWFwKChlPT4oMCxsLmVuc3VyZU5vdE51bGwpKHMubW9kZWwoKS5kYXRhU291cmNlRm9ySWQoZSkpKSk7cy5zZWxlY3Rpb25NYWNybygoZT0+e2UuY2xlYXJTZWxlY3Rpb24oKTtsZXQgdD1udWxsO24uZm9yRWFjaCgocz0+e251bGw9PT10JiYodD11bihpLHMpKSxlLmFkZEl0ZW1Ub1NlbGVjdGlvbihzLHQpfSkpfSkpO2NvbnN0IHI9bmV3IFB0LlBvaW50KGUubG9jYWxYLGUubG9jYWxZKSxvPSgwLGwuZW5zdXJlTm90TnVsbCkoblswXS5wcmljZVNjYWxlKCkpLGM9KDAsbC5lbnN1cmVOb3ROdWxsKSh0aGlzLnN0YXRlKCkubWFpbkRhdGFTb3VyY2UoKSkuZmlyc3RWYWx1ZSgpLGg9e2luZGV4OnMudGltZVNjYWxlKCkuY29vcmRpbmF0ZVRvSW5kZXgoZS5sb2NhbFgpLHByaWNlOm8uY29vcmRpbmF0ZVRvUHJpY2UoZS5sb2NhbFksKDAsbC5lbnN1cmVOb3ROdWxsKShjKSl9O3Muc3RhcnRNb3ZpbmdTb3VyY2VzKG4se2xvZ2ljYWw6aCxzY3JlZW46cn0sbnVsbCx0KSx0aGlzLl9jbG9ubmluZ0F0TW92ZUxpbmVUb29scz1udWxsLHRoaXMuX3N0YXJ0Q2xvbmluZ1BvaW50PW51bGx9cmV0dXJuITB9cmV0dXJuITF9X21vdXNlRG93bkV2ZW50Rm9yTGluZVRvb2woZSx0LGkscyl7Y29uc3Qgbj1ULnRvb2wudmFsdWUoKTtpZighdGhpcy5oYXNTdGF0ZSgpfHwoMCxtLmlzTGluZVRvb2xEcmF3V2l0aG91dFBvaW50cykobil8fHRoaXMuc3RhdGUoKS5tb2RlKCk9PT1NLlBhbmVNb2RlLldpZGdldClyZXR1cm47Y29uc3Qgcj10aGlzLl9jaGFydFVuZG9Nb2RlbCgpO2xldCBvPSExLGE9bnVsbDsoMCxULmhpZGVBbGxEcmF3aW5ncykoKS52YWx1ZSgpJiYoMCxSdC50b2dnbGVIaWRlT3B0aW9ucykoITEpLCgwLFQubG9ja0RyYXdpbmdzKSgpLnNldFZhbHVlKCExKSxlLmlzVG91Y2gmJiFlLnN0eWx1cyYmKCgwLG0uaXNMaW5lVG9vbE5hbWUpKG4pJiYhKDAsbS5pc0xpbmVEcmF3bldpdGhQcmVzc2VkQnV0dG9uKShuKXx8ci5saW5lQmVpbmdDcmVhdGVkKCkpJiZ0aGlzLl9pbml0VG9vbENyZWF0aW9uTW9kZVBhcmFtcyhlKTtjb25zdCBjPXIubGluZUJlaW5nQ3JlYXRlZCgpO2lmKGMmJiEoMCxtLmlzTGluZURyYXduV2l0aFByZXNzZWRCdXR0b24pKGMudG9vbG5hbWUpKXtjb25zdCBuPSgwLGwuZW5zdXJlKShjLm93bmVyU291cmNlKCk/LmZpcnN0VmFsdWUoKSk7aWYoZS5pc1RvdWNoJiYhZS5zdHlsdXMpe2lmKCF0aGlzLl9zdGFydFRvdWNoUG9pbnQpe3RoaXMuX3N0YXJ0VG91Y2hQb2ludD1uZXcgUHQuUG9pbnQoZS5wYWdlWCxlLnBhZ2VZKTtjb25zdCB0PWMucG9pbnRzKCksaT10W3QubGVuZ3RoLTFdLHM9ci50aW1lU2NhbGUoKS5pbmRleFRvQ29vcmRpbmF0ZShpLmluZGV4KSxvPSgwLGwuZW5zdXJlTm90TnVsbCkoYy5wcmljZVNjYWxlKCkpLnByaWNlVG9Db29yZGluYXRlKGkucHJpY2Usbik7cmV0dXJuIHZvaWQodGhpcy5faW5pdENyb3NzSGFpclBvc2l0aW9uPW5ldyBQdC5Qb2ludChzLG8pKX19ZWxzZSBpZighZS5pc1RvdWNoKXthPWM7Y29uc3QgaD1yLm1vZGVsKCkucGFuZUJlaW5nQ3JlYXRlZExpbmVPbigpO2lmKGghPT10aGlzLl9zdGF0ZSYmbnVsbCE9PWgpe2NvbnN0IGk9dGhpcy5fZXh0ZXJuYWxQYW5lWENvb3JkKGgsZS5sb2NhbFgpLHM9dGhpcy5fZXh0ZXJuYWxQYW5lWUNvb3JkKGgsZS5sb2NhbFkpO289ci5jb250aW51ZUNyZWF0aW5nTGluZSh7CmluZGV4Ok1hdGgucm91bmQoci50aW1lU2NhbGUoKS5jb29yZGluYXRlVG9JbmRleChpKSkscHJpY2U6KDAsbC5lbnN1cmUpKGMucHJpY2VTY2FsZSgpPy5jb29yZGluYXRlVG9QcmljZShzLG4pKX0sdCl9ZWxzZXtjb25zdCBlPXIubW9kZWwoKS5tYWduZXQoKS5hbGlnbihzLGksdGhpcy5zdGF0ZSgpKTtvPXIuY29udGludWVDcmVhdGluZ0xpbmUoe2luZGV4OmkscHJpY2U6ZX0sdCl9fX1lbHNle2NvbnN0IHQ9KDAsbS5pc0xpbmVEcmF3bldpdGhQcmVzc2VkQnV0dG9uKShuKTtpZighZS5pc1RvdWNofHxlLnN0eWx1c3x8dCl7Y29uc3QgZT1udWxsPT09Y3x8KDAscmkuaXNCcnVzaEJhc2VkTGluZVRvb2wpKGMpJiZjLmhhc09ubHlPbmVQb2ludCgpLGw9e2luZGV4OmkscHJpY2U6dCYmIWU/czpyLm1vZGVsKCkubWFnbmV0KCkuYWxpZ24ocyxpLHRoaXMuc3RhdGUoKSl9O2E9ci5jcmVhdGVMaW5lVG9vbCh7cGFuZTp0aGlzLnN0YXRlKCkscG9pbnQ6bCxsaW5ldG9vbDpuLGFjdGlvblNvdXJjZToiRHJhdyIsa2VlcFNlbGVjdGVkR3JvdXA6ITB9KSx0aGlzLl9tb3VzZVRvdWNoRG93blVwSW5mbyYmKHRoaXMuX21vdXNlVG91Y2hEb3duVXBJbmZvLnRvb2xDcmVhdGlvbj0hMCksci5saW5lQmVpbmdDcmVhdGVkKCl8fChvPSEwKX19Y29uc3QgaD10aGlzLl9kYXRhU291cmNlQXRQb2ludChlLmxvY2FsWCxlLmxvY2FsWSk7YSYmci5zZWxlY3Rpb25NYWNybygoZT0+e2UuYWRkSXRlbVRvU2VsZWN0aW9uKCgwLGwuZW5zdXJlTm90TnVsbCkoYSksaD8uaGl0dGVzdC5kYXRhKCkpfSkpLG8mJmEmJih0aGlzLl9maW5pc2hUb29sKGEsaCksZS5wcmV2ZW50RGVmYXVsdCgpKX1faGFuZGxlU2VsZWN0aW9uTW91c2VEb3duQW5kR2V0SnVzdERlc2VsZWN0ZWRTb3VyY2UoZSx0LGkpe2NvbnN0IHM9dGhpcy5fY2hhcnRVbmRvTW9kZWwoKTtsZXQgbj1udWxsO2lmKG51bGw9PT10fHx0LnNvdXJjZS5pc1NlbGVjdGlvbkVuYWJsZWQoKSl7Y29uc3Qgcj10Py5oaXR0ZXN0LmRhdGEoKT8uc2tpcFNvdXJjZVNlbGVjdGlvbjtzLnNlbGVjdGlvbk1hY3JvKChzPT57aWYodGhpcy5fcHJldmVudFNvdXJjZUNoYW5nZXx8bnVsbD09PXR8fHJ8fCEoZS5pc1RvdWNoP3QuaGl0dGVzdC50YXJnZXQoKT49TWkuSGl0VGFyZ2V0Lk1vdmVQb2ludEJhY2tncm91bmQ6dC5oaXR0ZXN0LnRhcmdldCgpPk1pLkhpdFRhcmdldC5Nb3ZlUG9pbnRCYWNrZ3JvdW5kKSl7aWYoIWkubW9kKCkpe2NvbnN0IHQ9e3R5cGU6ImNsZWFyIixpbnRlcmFjdGlvblR5cGU6ZS5pc1RvdWNoPyJ0b3VjaCI6InBvaW50ZXIifTtzLnNlbGVjdGlvbk9wZXJhdGlvbkF2YWlsYWJsZSh0KSYmcy5jbGVhclNlbGVjdGlvbigpLHRoaXMuX2Nsb25uaW5nQXRNb3ZlTGluZVRvb2xzPW51bGwsdGhpcy5fc3RhcnRDbG9uaW5nUG9pbnQ9bnVsbH19ZWxzZSBpLm1vZCgpfHxzLnNlbGVjdGlvbigpLmlzU2VsZWN0ZWQodC5zb3VyY2UpfHxzLmNsZWFyU2VsZWN0aW9uKCksaS5tb2QoKSYmcy5zZWxlY3Rpb24oKS5pc1NlbGVjdGVkKHQuc291cmNlKT8obj10LnNvdXJjZSxzLnJlbW92ZUl0ZW1Gcm9tU2VsZWN0aW9uKHQuc291cmNlKSk6cy5hZGRJdGVtVG9TZWxlY3Rpb24odC5zb3VyY2UsdC5oaXR0ZXN0LmRhdGEoKSkscy5zZWxlY3Rpb24oKS5hbGxJdGVtcygpLmxlbmd0aD4xJiYoMCxNdC50cmFja0V2ZW50KSgiR1VJIiwiTXVsdGlzZWxlY3QiLCJDbGljayBTZWxlY3QiKX0pKX1yZXR1cm4gbn1fcHJvY2Vzc01vdXNlTW92ZVdoaWxlWm9vbShlLHQpe3RoaXMuX3ByZXZlbnRDcm9zc0hhaXJNb3ZlKCl8fHRoaXMuc2V0Q3Vyc29yUG9zaXRpb24oZS5sb2NhbFgsZS5sb2NhbFksdCl9X3VwZGF0ZUNvbW1vblRvb2x0aXAoZSx0KXtsZXQgaT1udWxsO2lmKG51bGwhPT1lJiZudWxsIT09ZS5oaXR0ZXN0KXtjb25zdCB0PWUuaGl0dGVzdC5kYXRhKCk7dCYmKGk9dC50b29sdGlwfHxudWxsKX1pZihudWxsPT09dGhpcy5fcHJldlRvb2x0aXBEYXRhJiZudWxsPT09aSlyZXR1cm47aWYobnVsbD09PWl8fCIiPT09aS50ZXh0KXJldHVybiB0aGlzLl9wcmV2VG9vbHRpcERhdGE9bnVsbCx2b2lkKDAsS3MuaGlkZSkodCk7aWYodGhpcy5fcHJldlRvb2x0aXBEYXRhJiYoMCxzLmRlZmF1bHQpKGksdGhpcy5fcHJldlRvb2x0aXBEYXRhKSlyZXR1cm47dGhpcy5fcHJldlRvb2x0aXBEYXRhPWk7Y29uc3Qgbj0oMCxhLmNsb25lKShpKTtpZih2b2lkIDAhPT1uLnJlY3Qpe2NvbnN0IGU9dGhpcy5fcGFuZUNlbGwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7bi5yZWN0LngrPWUubGVmdCxuLnJlY3QueSs9ZS50b3B9KDAsS3Muc2hvdykobil9X3NldEN1cnNvclBvc2l0aW9uT25FeHRlcm5hbFBhbmUoZSx0LGkscyl7dD10aGlzLl9leHRlcm5hbFBhbmVYQ29vcmQoZSx0KSxpPXRoaXMuX2V4dGVybmFsUGFuZVlDb29yZChlLGkpO3RoaXMuX2NoYXJ0LnBhbmVCeVN0YXRlKGUpLnNldEN1cnNvclBvc2l0aW9uKHQsaSxzKX1fdXBkYXRlTGFzdENyb3NzaGFpclBvc2l0aW9uKGUsdCxpKXtjb25zdCBzPXRoaXMuc3RhdGUoKS5pZCgpO1NuPXt4OmUseTp0LGVudlN0YXRlOmksc3RhdGVJZDpzfX1fc2V0Q3Vyc29yQ2xhc3NOYW1lKGUpe2xldCB0PSIiO2UmJih0PSJwYW5lLS1jdXJzb3ItIitlKSx0aGlzLl9jdXJyZW50Q3Vyc29yQ2xhc3NOYW1lIT09dCYmKHRoaXMuX2N1cnJlbnRDdXJzb3JDbGFzc05hbWUmJnRoaXMuX3BhbmVDZWxsLmNsYXNzTGlzdC5yZW1vdmUodGhpcy5fY3VycmVudEN1cnNvckNsYXNzTmFtZSksdCYmdGhpcy5fcGFuZUNlbGwuY2xhc3NMaXN0LmFkZCh0KSx0aGlzLl9jdXJyZW50Q3Vyc29yQ2xhc3NOYW1lPXQsdGhpcy5fcGFuZUNlbGwuc3R5bGUuY3Vyc29yKX1fcHJvY2Vzc01vdXNlVXBPclRvdWNoRW5kSGFuZGxlcihlKXtjb25zdCB0PXRoaXMuX2RhdGFTb3VyY2VBdFBvaW50KGUubG9jYWxYLGUubG9jYWxZKTtpZihudWxsIT09dCl7Y29uc3QgaT10aGlzLl9zb3VyY2VXYXNTZWxlY3RlZCh0KTt0LmhpdHRlc3QudHJ5Q2FsbE1vdXNlVXBPclRvdWNoRW5kSGFuZGxlcihlLHtzb3VyY2VXYXNTZWxlY3RlZDppfSl9fV9jcm9zc0hhaXJTaG91bGRCZVZpc2libGUoKXsKY29uc3QgZT10aGlzLl9jaGFydE1vZGVsKCkuY3Jvc3NoYWlyU291cmNlKCk7cmV0dXJuKDAsbS5pc0xpbmVUb29sTmFtZSkoVC50b29sLnZhbHVlKCkpfHwoMCxULnRvb2xJc01lYXN1cmUpKFQudG9vbC52YWx1ZSgpKXx8ZS5zdGFydE1lYXN1cmVQb2ludCgpJiYhZS5lbmRNZWFzdXJlUG9pbnQoKXx8bnVsbCE9PXRoaXMuX2ZpcnN0Wm9vbVBvaW50fHxudWxsIT09dGhpcy5fY2hhcnRNb2RlbCgpLmxpbmVCZWluZ0VkaXRlZCgpfHxudWxsIT09dGhpcy5fY2hhcnRNb2RlbCgpLmxpbmVCZWluZ0NyZWF0ZWQoKX1fY2xlYXJDdXJzb3JQb3NpdGlvbigpe1NuPW51bGwsdGhpcy5fY2hhcnRNb2RlbCgpLmNsZWFyQ3VycmVudFBvc2l0aW9uKCl9X2RhdGFTb3VyY2VBdFBvaW50KGUsdCl7aWYoIXRoaXMuaGFzU3RhdGUoKSlyZXR1cm4gbnVsbDtjb25zdCBpPXtyZXN1bHQ6bnVsbH0scz10aGlzLl9jaGFydFVuZG9Nb2RlbCgpO2lmKCgwLG0uaXNMaW5lVG9vbE5hbWUpKFQudG9vbC52YWx1ZSgpKXx8bnVsbCE9PXMubGluZUJlaW5nQ3JlYXRlZCgpKXJldHVybiBpLnJlc3VsdDtpZih0aGlzLl9jdXJyZW50Q2hhbmdpbmdMaW5lVG9vbEhpdFRlc3QpcmV0dXJuIHRoaXMuX2N1cnJlbnRDaGFuZ2luZ0xpbmVUb29sSGl0VGVzdDtjb25zdCBuPW5ldyBTZXQ7aWYodGhpcy5fY3VycmVudE1vdmluZ0hpdFRlc3QmJnRoaXMuX2N1cnJlbnRNb3ZpbmdIaXRUZXN0LnNvdXJjZUF0UG9pbnQuaGl0dGVzdC5kYXRhKCkpe2lmKCF0aGlzLl9jdXJyZW50TW92aW5nSGl0VGVzdC5jYW5jZWxsZWRDb250YWluZXI/LmNhbmNlbGxlZClyZXR1cm4gdGhpcy5fY3VycmVudE1vdmluZ0hpdFRlc3Quc291cmNlQXRQb2ludDtuLmFkZCh0aGlzLl9jdXJyZW50TW92aW5nSGl0VGVzdC5zb3VyY2VBdFBvaW50LnNvdXJjZS5pZCgpKX1pZih0aGlzLl9jdXJyZW50TW92aW5nSGl0VGVzdCYmdGhpcy5fY3VycmVudE1vdmluZ0hpdFRlc3Quc291cmNlQXRQb2ludC5oaXR0ZXN0LmRhdGEoKSYmIXRoaXMuX2N1cnJlbnRNb3ZpbmdIaXRUZXN0LmNhbmNlbGxlZENvbnRhaW5lcj8uY2FuY2VsbGVkKXJldHVybiB0aGlzLl9jdXJyZW50TW92aW5nSGl0VGVzdC5zb3VyY2VBdFBvaW50O2NvbnN0IHI9dGhpcy5zdGF0ZSgpLG89KDAsS3QuZ2V0QmluZGluZ1JlbmRlcmluZ0luZm8pKHRoaXMuX2NhbnZhc0JpbmRpbmcpO3RoaXMuX21ha2VTdXJlSXNVcGRhdGVkKG8pO2NvbnN0IGE9cG4uYmluZChudWxsLGkpLGw9bmV3IFB0LlBvaW50KGUsdCk7aWYoIXIubWF4aW1pemVkKCkudmFsdWUoKSYmci5jb2xsYXBzZWQoKS52YWx1ZSgpfHwoMCx1aS5sYXN0TW91c2VPclRvdWNoRXZlbnRJbmZvKSgpLmlzVG91Y2gmJihULmFjdGl2ZVBvaW50U2VsZWN0aW9uTW9kZS52YWx1ZSgpIT09VC5TZWxlY3RQb2ludE1vZGUuTm9uZXx8bnVsbCE9PXRoaXMuX3N0YXJ0VHJhY2tQb2ludCkpcmV0dXJuIHRoaXMuX2hpdFRlc3RTb3VyY2VzKG8sW3MuY3Jvc3NoYWlyU291cmNlKCldLGwsYSwhMSxuKSxpLnJlc3VsdDtjb25zdCBjPXIuc291cmNlc0J5R3JvdXAoKSxoPXMuc2VsZWN0aW9uKCksZD1oLmRhdGFTb3VyY2VzKCkuZmlsdGVyKChlPT5lLmlzTXVsdGlQYW5lRW5hYmxlZCgpfHxzLnBhbmVGb3JTb3VyY2UoZSk9PT1yKSk7dGhpcy5faGl0VGVzdFNvdXJjZXMobyxkLGwsYSwhMSxuKSx0aGlzLl9oaXRUZXN0U291cmNlcyhvLGguY3VzdG9tU291cmNlcygpLGwsYSwhMCxuKSxoLmFsbFNvdXJjZXMoKS5mb3JFYWNoKChlPT5uLmFkZChlLmlkKCkpKSksdGhpcy5faGl0VGVzdFNvdXJjZXMobyxbcy5jcm9zc2hhaXJTb3VyY2UoKV0sbCxhLCExLG4pLHRoaXMuX2hpdFRlc3RTb3VyY2VzKG8sci5jdXN0b21Tb3VyY2VzKElpLkN1c3RvbVNvdXJjZUxheWVyLlRvcG1vc3QpLGwsYSwhMCxuKSx0aGlzLl9oaXRUZXN0U291cmNlcyhvLGMudHJhZGluZ1NvdXJjZXMoKSxsLGEsITEsbiksdGhpcy5faGl0VGVzdFNvdXJjZXMobyxyLmN1c3RvbVNvdXJjZXMoSWkuQ3VzdG9tU291cmNlTGF5ZXIuRm9yZWdyb3VuZCksbCxhLCEwLG4pO2NvbnN0IHU9Yy5oaXRUZXN0U291cmNlcygpO2lmKHRoaXMuX2hpdFRlc3RTb3VyY2VzKG8sdSxsLGEsITEsbiksdGhpcy5jb250YWluc01haW5TZXJpZXMoKSl7Y29uc3QgZT1zLmFjdGl2ZVN0cmF0ZWd5U291cmNlKCkudmFsdWUoKTtpZihudWxsIT09ZSYmIW4uaGFzKGUuaWQoKSkpe2NvbnN0IHQ9ZS5zdHJhdGVneU9yZGVyc1BhbmVWaWV3KCk7aWYobnVsbCE9PXQpe2NvbnN0IHM9dC5yZW5kZXJlcihvKTtpZihudWxsIT09cyl7Y29uc3QgdD1zLmhpdFRlc3QobCxvKTt0JiZwbihpLHQsZSxzLCExKX19fX1yZXR1cm4gbnVsbD09PWkucmVzdWx0JiZ0aGlzLl9oaXRUZXN0U291cmNlcyhvLHIuY3VzdG9tU291cmNlcyhJaS5DdXN0b21Tb3VyY2VMYXllci5CYWNrZ3JvdW5kKSxsLGEsITAsbiksaS5yZXN1bHR9X3NvdXJjZVdhc1NlbGVjdGVkKGUpe3JldHVybiEhZSYmdGhpcy5fc2VsZWN0aW9uQmVmb3JlTW91c2VEb3duLmhhcyhlLnNvdXJjZSl9X2hpdFRlc3RTb3VyY2VzKGUsdCxpLHMsbixyKXtjb25zdCBvPSgwLGwuZW5zdXJlTm90TnVsbCkodGhpcy5fc3RhdGUpO2ZvcihsZXQgYT10Lmxlbmd0aC0xO2E+PTA7LS1hKXtjb25zdCBsPXRbYV07aWYoci5oYXMobC5pZCgpKSljb250aW51ZTtjb25zdCBjPWwucGFuZVZpZXdzKG8pO2lmKG51bGwhPT1jJiYwIT09Yy5sZW5ndGgpZm9yKGxldCB0PWMubGVuZ3RoLTE7dD49MDstLXQpe2NvbnN0IHI9Y1t0XS5yZW5kZXJlcihlKTtpZihyJiZyLmhpdFRlc3Qpe2NvbnN0IHQ9ci5oaXRUZXN0KGksZSk7bnVsbCE9PXQmJnModCxsLHIsbil9fX19X3RyeVN0YXJ0TW92aW5nTGluZVRvb2woZSx0LGkscyl7aWYobnVsbD09PXQuc291cmNlfHwhdC5zb3VyY2UubW92YWJsZSgpfHxudWxsIT09dGhpcy5fc3RhcnRUcmFja1BvaW50KXJldHVybiExO2lmKCF0aGlzLl9wcmV2ZW50U291cmNlQ2hhbmdlKXtjb25zdCBuPXRoaXMuX2NoYXJ0VW5kb01vZGVsKCkscj0oMCxsLmVuc3VyZU5vdE51bGwpKCgwLApsLmVuc3VyZU5vdE51bGwpKHRoaXMuX3N0YXRlKS5tYWluRGF0YVNvdXJjZSgpKS5maXJzdFZhbHVlKCksbz0oMCxsLmVuc3VyZU5vdE51bGwpKHQuc291cmNlLnByaWNlU2NhbGUoKSksYT1udWxsPT09cj9OYU46by5jb29yZGluYXRlVG9QcmljZShlLmxvY2FsWSxyKTtsZXQgYz0odC5zb3VyY2UuaXNTZWxlY3Rpb25FbmFibGVkKCk/bi5zZWxlY3Rpb24oKS5hbGxTb3VyY2VzKCk6W3Quc291cmNlXSkuZmlsdGVyKFFzKTtjb25zdCBoPWMuZmlsdGVyKChlPT4oMCxyaS5pc0xpbmVUb29sKShlKSYmIWUuaXNTb3VyY2VIaWRkZW4oKSkpO2M9aC5sZW5ndGg+MD9oOmMuaW5jbHVkZXModC5zb3VyY2UpP1t0LnNvdXJjZV06W2NbMF1dO2NvbnN0IGQ9bmV3IFB0LlBvaW50KGUubG9jYWxYLGUubG9jYWxZKSx1PXtpbmRleDpzLHByaWNlOmF9LHA9dC5oaXR0ZXN0LmRhdGEoKT8uYWN0aXZlSXRlbTtyZXR1cm4gdGhpcy5fc3RhcnRNb3ZlU291cmNlUGFyYW1zPXtzb3VyY2U6YyxzdGFydFBvaW50Ontsb2dpY2FsOnUsc2NyZWVuOmR9LGFjdGl2ZUl0ZW06dm9pZCAwPT09cD9udWxsOnAsZW52U3RhdGU6aX0sITB9cmV0dXJuIHRoaXMuX3N0YXJ0TW92ZVNvdXJjZVBhcmFtcz1udWxsLCExfV9jaGFydE1vZGVsKCl7cmV0dXJuIHRoaXMuX2NoYXJ0Lm1vZGVsKCkubW9kZWwoKX1fY2hhcnRVbmRvTW9kZWwoKXtyZXR1cm4gdGhpcy5fY2hhcnQubW9kZWwoKX1fZXh0ZXJuYWxQYW5lWENvb3JkKGUsdCl7dCs9dGhpcy5fZGl2LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmxlZnQrZG9jdW1lbnQuYm9keS5zY3JvbGxMZWZ0O2NvbnN0IGk9KDAsbC5lbnN1cmVOb3ROdWxsKSh0aGlzLl9jaGFydC5wYW5lQnlTdGF0ZShlKSkscz1pLl9kaXYuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkubGVmdCtkb2N1bWVudC5ib2R5LnNjcm9sbExlZnQ7cmV0dXJuIGkuX2NvcnJlY3RYQ29vcmQodC1zKX1fZXh0ZXJuYWxQYW5lWUNvb3JkKGUsdCl7dCs9dGhpcy5fZGl2LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcCtkb2N1bWVudC5ib2R5LnNjcm9sbFRvcDtjb25zdCBpPSgwLGwuZW5zdXJlTm90TnVsbCkodGhpcy5fY2hhcnQucGFuZUJ5U3RhdGUoZSkpLHM9aS5fZGl2LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcCtkb2N1bWVudC5ib2R5LnNjcm9sbFRvcDtyZXR1cm4gaS5fY29ycmVjdFlDb29yZCh0LXMpfV9jb3JyZWN0WENvb3JkKGUpe3JldHVybiBNYXRoLm1heCgwLE1hdGgubWluKGUsdGhpcy5fc2l6ZS53aWR0aC0xKSl9X2NvcnJlY3RZQ29vcmQoZSl7cmV0dXJuIE1hdGgubWF4KDAsTWF0aC5taW4oZSx0aGlzLl9zaXplLmhlaWdodC0xKSl9X3Byb2Nlc3NTY3JvbGwoZSl7aWYoIXRoaXMuX2NoYXJ0Lm1vZGVsKCkubW9kZWwoKS5zY3JvbGxFbmFibGVkKCkpcmV0dXJuO2NvbnN0IHQ9cGVyZm9ybWFuY2Uubm93KCk7dGhpcy5fc3RhcnRTY3JvbGxpbmdQb3N8fHRoaXMuX3ByZXZlbnRTY3JvbGwoKXx8KHRoaXMuX3N0YXJ0U2Nyb2xsaW5nUG9zPXt4OmUuY2xpZW50WCx5OmUuY2xpZW50WSx0aW1lc3RhbXA6dCxsb2NhbFg6ZS5sb2NhbFgsbG9jYWxZOmUubG9jYWxZfSk7Y29uc3QgaT10aGlzLl9jaGFydFVuZG9Nb2RlbCgpO2xldCBzPXRoaXMuc3RhdGUoKS5kZWZhdWx0UHJpY2VTY2FsZSgpO2lmKHRoaXMuX3N0YXJ0U2Nyb2xsaW5nUG9zJiYhdGhpcy5faXNTY3JvbGxpbmcmJih0aGlzLl9zdGFydFNjcm9sbGluZ1Bvcy54IT09ZS5jbGllbnRYfHx0aGlzLl9zdGFydFNjcm9sbGluZ1Bvcy55IT09ZS5jbGllbnRZKSlyZXR1cm4gaS5iZWdpblVuZG9NYWNybyhzbiksbnVsbD09PXRoaXMuX3Njcm9sbFhBbmltYXRpb24mJnRoaXMuX29wdGlvbnMudXNlS2luZXRpY1Njcm9sbCYmKHRoaXMuX3Njcm9sbFhBbmltYXRpb249bmV3IEVzLktpbmV0aWNBbmltYXRpb24oLjIsNywuOTk3LDE1KSx0aGlzLl9zY3JvbGxYQW5pbWF0aW9uLmFkZFBvc2l0aW9uKGUuY2xpZW50WCx0aGlzLl9zdGFydFNjcm9sbGluZ1Bvcy50aW1lc3RhbXApKSxpLnNlbGVjdGlvbigpLmlzRW1wdHkoKXx8KHM9aS5zZWxlY3Rpb24oKS5hbGxTb3VyY2VzKClbMF0ucHJpY2VTY2FsZSgpKSxudWxsPT09c3x8cy5pc0VtcHR5KCl8fCh0aGlzLl9zY3JvbGxQcmljZVNjYWxlPXMsaS5zdGFydFNjcm9sbFByaWNlKHRoaXMuc3RhdGUoKSxzLGUubG9jYWxZKSksaS5zdGFydFNjcm9sbFRpbWUoZS5sb2NhbFgpLHRoaXMuX2lzU2Nyb2xsaW5nPSEwLHRoaXMuc2V0Q3Vyc29yRm9yVG9vbCgpLHZvaWQgdGhpcy5fcGFuZVdpZGdldHNTaGFyZWRTdGF0ZS5zZXRTY3JvbGxpbmdQYW5lKHRoaXMpO3RoaXMuX2lzU2Nyb2xsaW5nJiYobnVsbCE9PXRoaXMuX3Njcm9sbFByaWNlU2NhbGUmJmkuc2Nyb2xsUHJpY2VUbyh0aGlzLnN0YXRlKCksdGhpcy5fc2Nyb2xsUHJpY2VTY2FsZSxlLmxvY2FsWSksaS5zY3JvbGxUaW1lVG8oZS5sb2NhbFgpLG51bGwhPT10aGlzLl9zY3JvbGxYQW5pbWF0aW9uJiZ0aGlzLl9zY3JvbGxYQW5pbWF0aW9uLmFkZFBvc2l0aW9uKGUuY2xpZW50WCx0KSl9X2ZpbmlzaFNjcm9sbCgpe2NvbnN0IGU9dGhpcy5fY2hhcnRVbmRvTW9kZWwoKTtlLmVuZFNjcm9sbFRpbWUoKSxudWxsIT09dGhpcy5fc2Nyb2xsUHJpY2VTY2FsZSYmZS5lbmRTY3JvbGxQcmljZSh0aGlzLnN0YXRlKCksdGhpcy5fc2Nyb2xsUHJpY2VTY2FsZSksZS5lbmRVbmRvTWFjcm8oKSx0aGlzLl9pc1Njcm9sbGluZz0hMSx0aGlzLl9zdGFydFNjcm9sbGluZ1Bvcz1udWxsLHRoaXMuX3Njcm9sbFByaWNlU2NhbGU9bnVsbCx0aGlzLnNldEN1cnNvckZvclRvb2woKSx0aGlzLl9wYW5lV2lkZ2V0c1NoYXJlZFN0YXRlLnNldFNjcm9sbGluZ1BhbmUobnVsbCl9X2VuZFNjcm9sbChlKXtpZighdGhpcy5faXNTY3JvbGxpbmcpcmV0dXJuITE7dGhpcy5fZmluaXNoU2Nyb2xsKCk7Y29uc3QgdD10aGlzLl9zY3JvbGxVbmRvQ29tbWFuZEluU3RhY2soKSxpPXBlcmZvcm1hbmNlLm5vdygpO3JldHVybiBudWxsIT09dGhpcy5fc2Nyb2xsWEFuaW1hdGlvbiYmKHRoaXMuX3Njcm9sbFhBbmltYXRpb24uc3RhcnQoZS5jbGllbnRYLGkpLAp0aGlzLl9zY3JvbGxYQW5pbWF0aW9uLmZpbmlzaGVkKGkpfHwodGhpcy5fY2hhcnRNb2RlbCgpLnN0b3BUaW1lU2NhbGVBbmltYXRpb24oKSx0aGlzLl9jaGFydE1vZGVsKCkuc2V0VGltZVNjYWxlQW5pbWF0aW9uKHRoaXMuX3Njcm9sbFhBbmltYXRpb24pLHRoaXMuX3Njcm9sbFhBbmltYXRpb249bnVsbCkpLHR9X3ByZXZlbnRTY3JvbGwoKXtyZXR1cm4gdGhpcy5fdHJhY2tDcm9zc2hhaXJPbmx5QWZ0ZXJMb25nVGFwJiZ0aGlzLl9sb25nVGFwfHx0aGlzLl9jb250ZXh0TWVudU9wZW5lZE9uTGFzdFRhcHx8KDAsbS5pc0xpbmVUb29sTmFtZSkoVC50b29sLnZhbHVlKCkpfHxCb29sZWFuKHRoaXMuX2NoYXJ0VW5kb01vZGVsKCkubGluZUJlaW5nQ3JlYXRlZCgpKXx8bnVsbCE9PXRoaXMuX3N0YXJ0VHJhY2tQb2ludHx8dGhpcy5fcHJldmVudFNjcm9sbFVudGlsTmV4dE1vdXNlRG93bk9yVG91Y2hTdGFydH1faXNTZWxlY3RQb2ludE1vZGVFbmFibGVkKCl7cmV0dXJuIHRoaXMuX2NoYXJ0VW5kb01vZGVsKCkuY3Jvc3NoYWlyU291cmNlKCkuc2VsZWN0UG9pbnRNb2RlKCkudmFsdWUoKSE9PVQuU2VsZWN0UG9pbnRNb2RlLk5vbmV9X3ByZXZlbnRDcm9zc0hhaXJNb3ZlKCl7cmV0dXJuISF0aGlzLl90cmFja0Nyb3NzaGFpck9ubHlBZnRlckxvbmdUYXAmJihudWxsPT09dGhpcy5fY2hhcnQudHJhY2tpbmdNb2RlUGFuZVdpZGdldCgpJiYoISF0aGlzLl9jb250ZXh0TWVudU9wZW5lZE9uTGFzdFRhcHx8IXRoaXMuX2Nyb3NzSGFpclNob3VsZEJlVmlzaWJsZSgpJiZudWxsPT09dGhpcy5fc3RhcnRUcmFja1BvaW50KSl9X2ZpbmlzaFRvb2woZSx0PW51bGwpe2NvbnN0IGk9dGhpcy5fY2hhcnRVbmRvTW9kZWwoKSxzPWUudG9vbG5hbWU7aWYocz09PVQudG9vbC52YWx1ZSgpJiYoMCxULnJlc2V0VG9DdXJzb3IpKCksdGhpcy5fcHJldmVudENyb3NzSGFpck1vdmUoKSYmdGhpcy5fY2xlYXJDdXJzb3JQb3NpdGlvbigpLGkuc2VsZWN0aW9uTWFjcm8oKGk9PntpLmFkZEl0ZW1Ub1NlbGVjdGlvbihlLHVuKHQsZSkpfSkpLCgwLHJpLmlzRWRpdGFibGVUZXh0TGluZVRvb2wpKGUpJiZlLmFjdGl2YXRlRWRpdGluZ09uQ3JlYXRpb24oKSllLmFjdGl2YXRlVGV4dEVkaXRpbmdPbih0aGlzLl9kaXYsITApO2Vsc2UgaWYoKDAsbS5pc1RleHRUb29sTmFtZSkocykpe2NvbnN0IHQ9aS5jcmVhdGVVbmRvQ2hlY2twb2ludCgpO3RoaXMuX2NoYXJ0LnNob3dDaGFydFByb3BlcnRpZXNGb3JTb3VyY2UoZSxKdC5UYWJOYW1lcy50ZXh0LHZvaWQgMCx0KX10aGlzLl9sYXN0RmluaXNoZWRUb29sSWQ9ZS5pZCgpLCgwLCQuZW1pdCkoImRyYXdpbmdfZXZlbnQiLGUuaWQoKSwiY3JlYXRlIil9X2FsaWduU291cmNlc1RoYXRCZWluZ01vdmVkKGUsdCxpLHMsbil7Y29uc3Qgcj10aGlzLl9jaGFydFVuZG9Nb2RlbCgpLG89Mj09PW4/TmFOOnIudGltZVNjYWxlKCkuY29vcmRpbmF0ZVRvSW5kZXgodCk7ci5tb2RlbCgpLnNvdXJjZXNCZWluZ01vdmVkKCkuZm9yRWFjaCgoZT0+e2xldCBhPW8sbD1lLmNvbnZlcnRZQ29vcmRpbmF0ZVRvUHJpY2VGb3JNb3ZpbmcoaSx0aGlzLnN0YXRlKCkubWFpbkRhdGFTb3VyY2UoKSk7aWYobnVsbD09PWwpe2lmKDEhPT1uKXJldHVybjtsPU5hTn1pZigoMCx0aS5pc1N0dWR5KShlKSl7Y29uc3QgZT1yLm1haW5TZXJpZXMoKS5iYXJzKCkuZmlyc3RJbmRleCgpO251bGwhPT1lJiYyIT09biYmKGE9TWF0aC5tYXgobyxlKSksMSE9PW4mJihsPXRoaXMuX2NoYXJ0TW9kZWwoKS5tYWduZXQoKS5hbGlnbihsLG8sdGhpcy5zdGF0ZSgpKSl9bnVsbCE9PXRoaXMuX2N1cnJlbnRNb3ZpbmdIaXRUZXN0JiZ2b2lkIDAhPT10aGlzLl9jdXJyZW50TW92aW5nSGl0VGVzdC5zb3VyY2VBdFBvaW50LmhpdHRlc3QuZGF0YSgpPy5jdXJzb3JUeXBlfHx0aGlzLnNldEN1cnNvckZvclRvb2woKSxyLm1vdmVTb3VyY2VzKHtzY3JlZW46bmV3IFB0LlBvaW50KHQsaSksbG9naWNhbDp7aW5kZXg6YSxwcmljZTpsfX0scyl9KSl9X3Jlc2V0TWVhc3VyZUlmUmVxdWlyZWQoKXt0aGlzLl9uZWVkUmVzZXRNZWFzdXJlTGF0ZXImJigoMCxULnJlc2V0VG9DdXJzb3IpKCksdGhpcy5fbmVlZFJlc2V0TWVhc3VyZUxhdGVyPSExKX1fbWFrZVN1cmVJc1VwZGF0ZWQoZSl7Y29uc3QgdD10aGlzLnN0YXRlKCksaT1bLi4udC5kYXRhU291cmNlcygpLC4uLnQuY3VzdG9tU291cmNlcygpXTtmb3IoY29uc3QgcyBvZiBpKXtjb25zdCBpPXMucGFuZVZpZXdzKHQpO2lmKG51bGwhPT1pKWZvcihjb25zdCB0IG9mIGkpdC5tYWtlU3VyZUlzVXBkYXRlZD8uKGUpfX1fZHJhd0JhY2tncm91bmQoZSx0KXtjb25zdCBpPXRoaXMuX2NoYXJ0TW9kZWwoKSxzPWkuYmFja2dyb3VuZFRvcENvbG9yKCkudmFsdWUoKSxuPWkuYmFja2dyb3VuZENvbG9yKCkudmFsdWUoKTtpZih0aGlzLl9zdGF0ZT8ubW9kZSgpPT09TS5QYW5lTW9kZS5XaWRnZXQpe2NvbnN0IGk9dGhpcy5fc3RhdGU/Lm1vZGVsKCkucGFuZXMoKS5pbmRleE9mKHRoaXMuX3N0YXRlKT8/MCxyPXRoaXMuX3N0YXRlPy5tb2RlbCgpLm1haW5QYW5lKCksbz1pPihyP3RoaXMuX3N0YXRlPy5tb2RlbCgpLnBhbmVzKCkuaW5kZXhPZihyKT8/MDowKT9uOnM7KDAsS3QuY2xlYXJSZWN0KShlLDAsMCx0LmJpdG1hcFNpemUud2lkdGgsdC5iaXRtYXBTaXplLmhlaWdodCxvKX1lbHNlIHM9PT1uPygwLEt0LmNsZWFyUmVjdCkoZSwwLDAsdC5iaXRtYXBTaXplLndpZHRoLHQuYml0bWFwU2l6ZS5oZWlnaHQsbik6KDAsRGkuY2xlYXJSZWN0V2l0aEdyYWRpZW50KShlLDAsMCx0LmJpdG1hcFNpemUud2lkdGgsdC5iaXRtYXBTaXplLmhlaWdodCxzLG4pfV9kcmF3V2F0ZXJtYXJrKGUsdCl7Y29uc3QgaT10aGlzLl9jaGFydE1vZGVsKCkud2F0ZXJtYXJrU291cmNlKCk7aWYobnVsbD09PWkpcmV0dXJuO3RoaXMuc3RhdGUoKS5jb250YWluc01haW5TZXJpZXMoKSYmdGhpcy5fZHJhd1NvdXJjZUltcGwoZSx0LGxuLGFuLGkpfV9kcmF3Q3Jvc3NIYWlyKGUsdCl7Y29uc3QgaT10aGlzLl9jaGFydFVuZG9Nb2RlbCgpLmNyb3NzaGFpclNvdXJjZSgpO2kuaW52YWxpZGF0ZUxvY2tQb3NpdGlvbigpLAppLnZpc2libGV8fG51bGw9PT1ULmNyb3NzaGFpckxvY2sudmFsdWUoKXx8aS51cGRhdGVBbGxWaWV3cygoMCx0bi5zb3VyY2VDaGFuZ2VFdmVudCkoaS5pZCgpKSksdGhpcy5fZHJhd1NvdXJjZUltcGwoZSx0LGxuLGFuLGkpfV9kcmF3QWN0aXZlTGluZVRvb2xzKGUsdCl7Y29uc3QgaT10aGlzLl9jaGFydE1vZGVsKCkscz1baS5saW5lQmVpbmdDcmVhdGVkKCksaS5saW5lQmVpbmdFZGl0ZWQoKSwuLi5pLnNvdXJjZXNCZWluZ01vdmVkKCksaS5jdXN0b21Tb3VyY2VCZWluZ01vdmVkKCldLmZpbHRlcigoZT0+ISFlKSk7Zm9yKGNvbnN0IG4gb2Ygcyl7KGkucGFuZUZvclNvdXJjZShuKT09PXRoaXMuc3RhdGUoKXx8KDAsQWkuaXNEYXRhU291cmNlKShuKSYmbi5pc011bHRpUGFuZUVuYWJsZWQoKSkmJnRoaXMuX2RyYXdTb3VyY2VJbXBsKGUsdCxsbixhbixuKX19X2RyYXdUb3BWaWV3cyhlLHQpe2Zvcihjb25zdCBpIG9mIHRoaXMuc3RhdGUoKS5zb3VyY2VzQnlHcm91cCgpLmFsbCgpKWkudG9wUGFuZVZpZXdzJiZ0aGlzLl9kcmF3U291cmNlSW1wbChlLHQsY24sYW4saSl9X2RyYXdTb3VyY2VzKGUsdCl7Y29uc3QgaT10aGlzLnN0YXRlKCkscz1pLm1vZGVsKCksbj1pLnNvdXJjZXNCeUdyb3VwKCkscj1uLnRyYWRpbmdTb3VyY2VzKCksbz1uLmdlbmVyYWxTb3VyY2VzKCksbD1uLnBoYW50b21Tb3VyY2VzKCksYz1pLmN1c3RvbVNvdXJjZXMoSWkuQ3VzdG9tU291cmNlTGF5ZXIuQmFja2dyb3VuZCkuc2xpY2UoKSxoPWkuY3VzdG9tU291cmNlcyhJaS5DdXN0b21Tb3VyY2VMYXllci5Gb3JlZ3JvdW5kKS5zbGljZSgpLGQ9aS5jdXN0b21Tb3VyY2VzKElpLkN1c3RvbVNvdXJjZUxheWVyLlRvcG1vc3QpLnNsaWNlKCksdT1zLmFjdGl2ZVN0cmF0ZWd5U291cmNlKCkudmFsdWUoKSxwPXMucmVwbGF5U3R1ZHlTdHJhdGVneSgpLnZhbHVlKCk7dGhpcy5fZHJhd1NvdXJjZUltcGwoZSx0LGxuLGFuLHMuZ3JpZFNvdXJjZSgpKSx0aGlzLl9kcmF3V2F0ZXJtYXJrKGUsdCk7Zm9yKGNvbnN0IGkgb2YgYyl0aGlzLl9kcmF3U291cmNlSW1wbChlLHQsbG4sb24saSk7Zm9yKGNvbnN0IGkgb2Ygbyl0aGlzLl9kcmF3U291cmNlSW1wbChlLHQsbG4sb24saSk7Zm9yKGNvbnN0IGkgb2YgaCl0aGlzLl9kcmF3U291cmNlSW1wbChlLHQsbG4sb24saSk7Zm9yKGNvbnN0IGkgb2YgbCl0aGlzLl9kcmF3U291cmNlSW1wbChlLHQsbG4sb24saSk7Y29uc3QgXz1uZXcgU2V0O1tzLmxpbmVCZWluZ0NyZWF0ZWQoKSxzLmxpbmVCZWluZ0VkaXRlZCgpLC4uLnMuc291cmNlc0JlaW5nTW92ZWQoKSxzLmN1c3RvbVNvdXJjZUJlaW5nTW92ZWQoKV0uZmlsdGVyKGEubm90TnVsbCkuZm9yRWFjaCgoZT0+Xy5hZGQoZS5pZCgpKSkpO2xldCBtPXMuaG92ZXJlZFNvdXJjZSgpO251bGwhPT1tJiYoKDAsQWkuaXNEYXRhU291cmNlKShtKSYmIW0uc2hvd09uVG9wT25Ib3ZlcmluZygpfHxfLmhhcyhtLmlkKCkpfHwoMCxBaS5pc0RhdGFTb3VyY2UpKG0pJiYhby5pbmNsdWRlcyhtKT9tPW51bGw6Xy5hZGQobS5pZCgpKSk7Y29uc3QgZz1zLmhpZ2hsaWdodGVkUGxvdEluZm8oKSxmPWc/by5maWx0ZXIoKGU9PigwLHRpLmlzU3R1ZHkpKGUpJiZlLmhhc0hpZ2hsaWdodGVkUGxvdHMoKSYmIV8uaGFzKGUuaWQoKSkpKTpbXTtmLmZvckVhY2goKGU9Pl8uYWRkKGUuaWQoKSkpKTtjb25zdCBTPXMuc2VsZWN0aW9uKCkuYWxsU291cmNlcygpLmZpbHRlcigoZT0+ISgoMCxBaS5pc0RhdGFTb3VyY2UpKGUpJiYhby5pbmNsdWRlcyhlKSkmJiFfLmhhcyhlLmlkKCkpKSk7Uy5mb3JFYWNoKChlPT5fLmFkZChlLmlkKCkpKSk7Zm9yKGNvbnN0IGkgb2YgYyl0aGlzLl9kcmF3U291cmNlSW1wbChlLHQsbG4sYW4saSxfKTtmb3IoY29uc3QgaSBvZiBvKXRoaXMuX2RyYXdTb3VyY2VJbXBsKGUsdCxsbixhbixpLF8pO2Zvcihjb25zdCBpIG9mIGgpdGhpcy5fZHJhd1NvdXJjZUltcGwoZSx0LGxuLGFuLGksXyk7dSYmdGhpcy5jb250YWluc01haW5TZXJpZXMoKSYmISgwLEpzLmlzU3R1ZHlTdHJhdGVneVN0dWIpKHUpJiZ0aGlzLl9kcmF3U291cmNlSW1wbChlLHQsZG4sYW4sdSxfKSxwJiZ0aGlzLl9kcmF3U291cmNlSW1wbChlLHQsZG4sYW4scCxfKTtmb3IoY29uc3QgaSBvZiByKXRoaXMuX2RyYXdTb3VyY2VJbXBsKGUsdCxsbixvbixpKTtmb3IoY29uc3QgaSBvZiBkKXRoaXMuX2RyYXdTb3VyY2VJbXBsKGUsdCxsbixvbixpKTtmb3IoY29uc3QgaSBvZiBvKXRoaXMuX2RyYXdTb3VyY2VJbXBsKGUsdCxobixhbixpLF8pO2Zvcihjb25zdCBpIG9mIGgpdGhpcy5fZHJhd1NvdXJjZUltcGwoZSx0LGhuLGFuLGksXyk7Zm9yKGNvbnN0IGkgb2Ygcil0aGlzLl9kcmF3U291cmNlSW1wbChlLHQsbG4sYW4saSxfKTtmb3IoY29uc3QgaSBvZiBkKXRoaXMuX2RyYXdTb3VyY2VJbXBsKGUsdCxsbixhbixpLF8pO2Zvcihjb25zdCBpIG9mIFMpdGhpcy5fZHJhd1NvdXJjZUltcGwoZSx0LGxuLGFuLGkpLGk9PT11JiZ0aGlzLmNvbnRhaW5zTWFpblNlcmllcygpJiYhKDAsSnMuaXNTdHVkeVN0cmF0ZWd5U3R1YikodSkmJnRoaXMuX2RyYXdTb3VyY2VJbXBsKGUsdCxkbixhbix1KTtmb3IoY29uc3QgaSBvZiBTKXRoaXMuX2RyYXdTb3VyY2VJbXBsKGUsdCxobixhbixpKTttJiYodGhpcy5fZHJhd1NvdXJjZUltcGwoZSx0LGxuLGFuLG0pLG09PT11JiZ0aGlzLmNvbnRhaW5zTWFpblNlcmllcygpJiYhKDAsSnMuaXNTdHVkeVN0cmF0ZWd5U3R1YikodSkmJnRoaXMuX2RyYXdTb3VyY2VJbXBsKGUsdCxkbixhbix1KSx0aGlzLl9kcmF3U291cmNlSW1wbChlLHQsaG4sYW4sbSkpO2Zvcihjb25zdCBpIG9mIGwpdGhpcy5fZHJhd1NvdXJjZUltcGwoZSx0LGxuLGFuLGksXyk7aWYoZyYmZi5sZW5ndGgpZm9yKGNvbnN0IGkgb2YgZil0aGlzLl9kcmF3U291cmNlSW1wbChlLHQsbG4sYW4saSl9X2RyYXdTb3VyY2VJbXBsKGUsdCxpLHMsbixyKXtpZihyJiZyLmhhcyhuLmlkKCkpKXJldHVybjtjb25zdCBvPWkobix0aGlzLnN0YXRlKCkpO2lmKG8pZm9yKGNvbnN0IGkgb2Ygbyl7Y29uc3Qgbj1pLnJlbmRlcmVyKHQpO24mJihlLnNhdmUoKSxzKG4sZSx0KSxlLnJlc3RvcmUoKSl9fQpfdXBkYXRlQnlUaGVtZWRDb2xvcnMoKXtudWxsIT09dGhpcy5fbGVnZW5kV2lkZ2V0JiZ0aGlzLl9sZWdlbmRXaWRnZXQudXBkYXRlVGhlbWVkQ29sb3JzKHRoaXMuX3RoZW1lZFRvcENvbG9yKSxudWxsIT09dGhpcy5fcGFuZUNvbnRyb2xzJiZ0aGlzLl9wYW5lQ29udHJvbHMudXBkYXRlVGhlbWVkQ29sb3JzKHRoaXMuX3RoZW1lZFRvcENvbG9yKX1fc2Nyb2xsVW5kb0NvbW1hbmRJblN0YWNrKCl7Y29uc3QgZT10aGlzLl9jaGFydFVuZG9Nb2RlbCgpLnVuZG9IaXN0b3J5KCkudW5kb1N0YWNrKCk7aWYoZS5pc0VtcHR5KCkpcmV0dXJuITE7Y29uc3QgdD1lLmhlYWQoKTtpZighKHQgaW5zdGFuY2VvZiBVKSlyZXR1cm4hMTtpZih0LmlzRW1wdHkoKSlyZXR1cm4hMTtyZXR1cm4gdC5jb21tYW5kcygpWzBdaW5zdGFuY2VvZiBPc31fb25TdGF0ZURlc3Ryb3llZCgpe3RoaXMuc2V0U3RhdGUobnVsbCl9X29uRGF0YVNvdXJjZXNDb2xsZWN0aW9uQ2hhbmdlZCgpe3RoaXMuX3N0YXJ0TW92ZVNvdXJjZVBhcmFtcz1udWxsfV9wcm9jZXNzTW91c2VFbnRlckxlYXZlTW92ZUhhbmRsZXJzKGUsdCl7aWYobnVsbCE9PXRoaXMuX3ByZXZIb3ZlcmVkSGl0dGVzdCYmKHRoaXMuX3ByZXZIb3ZlcmVkSGl0dGVzdC5yZW5kZXJlciE9PWU/LnJlbmRlcmVyfHx0aGlzLl9wcmV2SG92ZXJlZEhpdHRlc3QuaGl0dGVzdC5kYXRhKCk/LmFjdGl2ZUl0ZW0hPT1lLmhpdHRlc3QuZGF0YSgpPy5hY3RpdmVJdGVtKSl7Y29uc3QgZT10aGlzLl9zb3VyY2VXYXNTZWxlY3RlZCh0aGlzLl9wcmV2SG92ZXJlZEhpdHRlc3QpOygwLE1pLnRyeUNhbGxIYW5kbGVyKSh0LHtzb3VyY2VXYXNTZWxlY3RlZDplfSx0aGlzLl9wcmV2SG92ZXJlZEhpdHRlc3QuaGl0dGVzdC5kYXRhKCk/Lm1vdXNlTGVhdmVIYW5kbGVyKSx0aGlzLl9wcmV2SG92ZXJlZEhpdHRlc3Q9bnVsbH1pZighdC5pc1RvdWNoJiZudWxsIT09ZSl7Y29uc3QgaT10aGlzLl9zb3VyY2VXYXNTZWxlY3RlZChlKTt0aGlzLl9wcmV2SG92ZXJlZEhpdHRlc3Q/LnJlbmRlcmVyIT09ZS5yZW5kZXJlciYmKGUuaGl0dGVzdC50cnlDYWxsTW91c2VFbnRlckhhbmRsZXIodCx7c291cmNlV2FzU2VsZWN0ZWQ6aX0pLHRoaXMuX3ByZXZIb3ZlcmVkSGl0dGVzdD1lKSxlLmhpdHRlc3QudHJ5Q2FsbE1vdXNlTW92ZUhhbmRsZXIodCx7c291cmNlV2FzU2VsZWN0ZWQ6aX0pfX1fc3RhcnRDaGFuZ2VPck1vdmVMaW5lVG9vbElmTmVlZGVkKCl7aWYobnVsbCE9PXRoaXMuX3N0YXJ0Q2hhbmdlTGluZVRvb2xQYXJhbXMpe2NvbnN0IGU9dGhpcy5fc3RhcnRDaGFuZ2VMaW5lVG9vbFBhcmFtczsoMCxNdC50cmFja0V2ZW50KSgiY2hhcnRfYWxlcnQiLCJlZGl0Iiwic3RhcnRfY2hhbmdlX2xpbmVfdG9vbF9wYXJhbXMiKSx0aGlzLl9jaGFydFVuZG9Nb2RlbCgpLnN0YXJ0Q2hhbmdpbmdMaW5ldG9vbChlLnNvdXJjZSxlLm93bmVyU291cmNlLGUuc3RhcnRQb2ludCxlLnBvaW50SW5kZXgsZS5lbnZTdGF0ZSl9aWYobnVsbCE9PXRoaXMuX3N0YXJ0TW92ZVNvdXJjZVBhcmFtcyl7Y29uc3QgZT10aGlzLl9zdGFydE1vdmVTb3VyY2VQYXJhbXM7KDAsTXQudHJhY2tFdmVudCkoImNoYXJ0X2FsZXJ0IiwiZWRpdCIsInN0YXJ0X21vdmluZ19zb3VyY2VzIiksdGhpcy5fY2hhcnRVbmRvTW9kZWwoKS5zdGFydE1vdmluZ1NvdXJjZXMoZS5zb3VyY2UsZS5zdGFydFBvaW50LGUuYWN0aXZlSXRlbSxlLmVudlN0YXRlKX10aGlzLl9zdGFydE1vdmVTb3VyY2VQYXJhbXM9bnVsbCx0aGlzLl9zdGFydENoYW5nZUxpbmVUb29sUGFyYW1zPW51bGx9X3RyYWNraW5nTW9kZVNob3VsZEJlQWN0aXZlKCl7cmV0dXJuISghdGhpcy5fdHJhY2tDcm9zc2hhaXJPbmx5QWZ0ZXJMb25nVGFwfHx0aGlzLl9jb250ZXh0TWVudU9wZW5lZE9uTGFzdFRhcHx8dGhpcy5fY3Jvc3NIYWlyU2hvdWxkQmVWaXNpYmxlKCkpJiZ0aGlzLl9sb25nVGFwfV9wcm9jZXNzT3V0c2lkZUNsaWNrKGUsdCl7bGV0IGk9bnVsbDtjb25zdCBzPXRoaXMuX2NoYXJ0TW9kZWwoKTtpZihudWxsIT09ZSYmKGk9ZS5pc0N1c3RvbT9zLmN1c3RvbVNvdXJjZU5hbWUoZS5zb3VyY2UpOmUuc291cmNlLmlkKCkpLG51bGwhPT10aGlzLl9sYXN0Q2xpY2tlZFNvdXJjZSYmdGhpcy5fbGFzdENsaWNrZWRTb3VyY2UuaWQhPT1pKXtjb25zdCBlPXRoaXMuX2xhc3RDbGlja2VkU291cmNlLmlkO2xldCBpPXRoaXMuX2xhc3RDbGlja2VkU291cmNlLmlzQ3VzdG9tP3MuY3VzdG9tU291cmNlRm9yTmFtZShlKTpzLmRhdGFTb3VyY2VGb3JJZChlKTtudWxsIT09aXx8dGhpcy5fbGFzdENsaWNrZWRTb3VyY2UuaXNDdXN0b218fChpPXMuZGF0YVNvdXJjZUZvcklkKGUpKSxudWxsIT09aSYmaS5vbkNsaWNrT3V0c2lkZSYmKGkub25DbGlja091dHNpZGUoKDAsS3QuZ2V0QmluZGluZ1JlbmRlcmluZ0luZm8pKHRoaXMuX2NhbnZhc0JpbmRpbmcpLHQpLHRoaXMuX2NoYXJ0TW9kZWwoKS51cGRhdGVTb3VyY2UoaSkpfXRoaXMuX2xhc3RDbGlja2VkU291cmNlPW51bGwhPT1pP3tpZDppLGlzQ3VzdG9tOmU/LmlzQ3VzdG9tPz8hMX06bnVsbH1hc3luYyBzaG93Q29uZmV0dGkoZSx0KXt7Y29uc3Qgcz1hd2FpdCBpLmUoODY3NDApLnRoZW4oaS5iaW5kKGksMjM3NTM3KSk7InBlcmZvcm1hbmNlIj09PVQudG9vbC52YWx1ZSgpJiZzLmNvbmZldHRpKGUsdCl9fV9tb3VzZUNsaWNrT3JUYXBFdmVudChlKXtpZighdGhpcy5oYXNTdGF0ZSgpKXJldHVybjtxcy5wZXJmb3JtYW5jZVRlc3RNb2RlJiYicGVyZm9ybWFuY2UiPT09VC50b29sLnZhbHVlKCkmJnRoaXMuc2hvd0NvbmZldHRpKGUucGFnZVgsZS5wYWdlWSk7bGV0IHQ9bnVsbCxpPW51bGw7dGhpcy5fbW91c2VUb3VjaERvd25VcEluZm8mJnRoaXMuX21vdXNlVG91Y2hEb3duVXBJbmZvLnRvb2xDcmVhdGlvbiYmIXRoaXMuX21vdXNlVG91Y2hEb3duVXBJbmZvLm1vdXNlTW92ZXx8KHQ9dGhpcy5fZGF0YVNvdXJjZUF0UG9pbnQoZS5sb2NhbFgsZS5sb2NhbFkpLGk9dCYmdC5zb3VyY2UpCjtjb25zdCBzPXRoaXMuX2NoYXJ0VW5kb01vZGVsKCksbj1Cb29sZWFuKHQ/LmhpdHRlc3QuZGF0YSgpPy5oaWRlQ3Jvc3NoYWlyTGluZXNPbkhvdmVyKTt0aGlzLl9wcm9jZXNzT3V0c2lkZUNsaWNrKHQsZSksIXRoaXMuX2lzU2VsZWN0UG9pbnRNb2RlRW5hYmxlZCgpfHxufHxlLmlzVG91Y2gmJnRoaXMudHJhY2tpbmdNb2RlRW5hYmxlZCgpJiYhdGhpcy5fZXhpdFRyYWNraW5nTW9kZU9uTmV4dFRyeXx8cy5jcm9zc2hhaXJTb3VyY2UoKS50cnlTZWxlY3RDdXJyZW50UG9pbnQoKTtjb25zdCByPXRoaXMuX3NvdXJjZVdhc1NlbGVjdGVkKHQpOyEoMCxtLmlzTGluZVRvb2xOYW1lKShULnRvb2wudmFsdWUoKSkmJm51bGwhPT10JiZ0LmhpdHRlc3QudHJ5Q2FsbENsaWNrT3JUYXBIYW5kbGVyKGUse3NvdXJjZVdhc1NlbGVjdGVkOnJ9KSYmcy5tb2RlbCgpLnVwZGF0ZVNvdXJjZSgoMCxsLmVuc3VyZU5vdE51bGwpKGkpKSwhZS5pc1RvdWNofHx0aGlzLl9pc1NlbGVjdFBvaW50TW9kZUVuYWJsZWQoKXx8dCYmdC5zb3VyY2U9PT1zLmNyb3NzaGFpclNvdXJjZSgpfHx0aGlzLl90cnlFeGl0VHJhY2tpbmdNb2RlKCksaSYmKDAscmkuaXNMaW5lVG9vbCkoaSkmJnRoaXMuX2xhc3RGaW5pc2hlZFRvb2xJZCE9PWkuaWQoKSYmKDAsJC5lbWl0KSgiZHJhd2luZ19ldmVudCIsaS5pZCgpLCJjbGljayIpLHRoaXMuX3Jlc2V0TWVhc3VyZUlmUmVxdWlyZWQoKSx0aGlzLl9tb3VzZVRvdWNoRG93blVwSW5mbz1udWxsfV9tb3VzZURvd25PclRvdWNoU3RhcnRFdmVudChlLHQpe3RoaXMuX3ByZXNzZWRNb3ZlU3RhZ2U9MSx0aGlzLl9wcmV2ZW50U2Nyb2xsVW50aWxOZXh0TW91c2VEb3duT3JUb3VjaFN0YXJ0PSExLHRoaXMuX3NlbGVjdGlvbkJlZm9yZU1vdXNlRG93bj1uZXcgU2V0KHRoaXMuX2NoYXJ0TW9kZWwoKS5zZWxlY3Rpb24oKS5hbGxTb3VyY2VzKCkpLGUuaXNUb3VjaCYmKHRoaXMuX2xvbmdUYXA9ITEsdGhpcy5fZXhpdFRyYWNraW5nTW9kZU9uTmV4dFRyeT1udWxsIT09dGhpcy5fc3RhcnRUcmFja1BvaW50LHRoaXMuX3BhbmVXaWRnZXRzU2hhcmVkU3RhdGUuY2xlYXJEcmFnZ2luZ1NvdXJjZSgpKSx0aGlzLl9jb250ZXh0TWVudU9wZW5lZE9uTGFzdFRhcD0hMSx0aGlzLl9sYXN0RmluaXNoZWRUb29sSWQ9bnVsbDtjb25zdCBpPXRoaXMuX2NoYXJ0TW9kZWwoKTtpZihpLnN0b3BUaW1lU2NhbGVBbmltYXRpb24oKSx0aGlzLl9tb3VzZVRvdWNoRG93blVwSW5mbz17bW91c2VNb3ZlOiExLHRvb2xDcmVhdGlvbjpCb29sZWFuKGkubGluZUJlaW5nQ3JlYXRlZCgpKX0sZS5pc1RvdWNoJiZ0aGlzLl9zd2l0Y2hUcmFja2luZ01vZGVGcm9tQW5vdGhlclBhbmVJZk5lZWRlZChlKSxkb2N1bWVudC5hY3RpdmVFbGVtZW50IT09ZG9jdW1lbnQuYm9keSYmZG9jdW1lbnQuYWN0aXZlRWxlbWVudCE9PWRvY3VtZW50LmRvY3VtZW50RWxlbWVudClkb2N1bWVudC5hY3RpdmVFbGVtZW50JiZkb2N1bWVudC5hY3RpdmVFbGVtZW50LmJsdXI/ZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5ibHVyKCk6ZG9jdW1lbnQuYm9keS5mb2N1cygpO2Vsc2V7Y29uc3QgZT1kb2N1bWVudC5nZXRTZWxlY3Rpb24oKTtudWxsIT09ZSYmZS5yZW1vdmVBbGxSYW5nZXMoKX0oMCwkLmVtaXQpKCJtb3VzZV9kb3duIix7Y2xpZW50WDplLmNsaWVudFgsY2xpZW50WTplLmNsaWVudFkscGFnZVg6ZS5wYWdlWCxwYWdlWTplLnBhZ2VZLHNjcmVlblg6ZS5zY3JlZW5YLHNjcmVlblk6ZS5zY3JlZW5ZfSksdGhpcy5fdXBkYXRlQ29tbW9uVG9vbHRpcChudWxsKTtjb25zdCBzPXRoaXMuX2NoYXJ0VW5kb01vZGVsKCksbj1uZXcgTGkuRW52aXJvbm1lbnRTdGF0ZShlKTtzLm1haW5TZXJpZXMoKS5jbGVhckdvdG9EYXRlUmVzdWx0KCk7Y29uc3Qgcj10aGlzLnN0YXRlKCkuZGVmYXVsdFByaWNlU2NhbGUoKTtpZihzLnRpbWVTY2FsZSgpLmlzRW1wdHkoKSlyZXR1cm47Y29uc3Qgbz1zLmNyb3NzaGFpclNvdXJjZSgpO2lmKCFlLmlzVG91Y2gmJiEoMCxtLmlzTGluZURyYXduV2l0aFByZXNzZWRCdXR0b24pKFQudG9vbC52YWx1ZSgpKSl7Y29uc3QgdD1udWxsIT09cy5saW5lQmVpbmdDcmVhdGVkKCk/cy5tb2RlbCgpLnBhbmVCZWluZ0NyZWF0ZWRMaW5lT24oKTpudWxsO251bGwhPT10JiZ0IT09dGhpcy5fc3RhdGU/dGhpcy5fc2V0Q3Vyc29yUG9zaXRpb25PbkV4dGVybmFsUGFuZSh0LGUubG9jYWxYLGUubG9jYWxZLG4pOnRoaXMuc2V0Q3Vyc29yUG9zaXRpb24oZS5sb2NhbFgsZS5sb2NhbFksbil9ZS5pc1RvdWNoJiYoMCxtLmlzTGluZVRvb2xOYW1lKShULnRvb2wudmFsdWUoKSkmJigoMCxtLmlzTGluZURyYXduV2l0aFByZXNzZWRCdXR0b24pKFQudG9vbC52YWx1ZSgpKXx8bnVsbCE9PW8ucGFuZT8oMCxtLmlzTGluZURyYXduV2l0aFByZXNzZWRCdXR0b24pKFQudG9vbC52YWx1ZSgpKSYmdGhpcy5fY2xlYXJDdXJzb3JQb3NpdGlvbigpOnRoaXMuX2NoYXJ0LnVwZGF0ZUNyb3NzSGFpclBvc2l0aW9uSWZOZWVkZWQoKSk7Y29uc3QgYT0oMCxsLmVuc3VyZU5vdE51bGwpKHRoaXMuc3RhdGUoKS5tYWluRGF0YVNvdXJjZSgpKS5maXJzdFZhbHVlKCk7bGV0IGM9bnVsbD09YT9udWxsOnIuY29vcmRpbmF0ZVRvUHJpY2UoZS5sb2NhbFksYSksaD1pLnRpbWVTY2FsZSgpLmNvb3JkaW5hdGVUb0luZGV4KGUubG9jYWxYKTtpZihvLnN0YXJ0TWVhc3VyZVBvaW50KCkmJm8uZW5kTWVhc3VyZVBvaW50KCkmJm8uY2xlYXJNZWFzdXJlKCksbi5zaGlmdCgpJiYoMCxULnRvb2xJc0N1cnNvcikoVC50b29sLnZhbHVlKCkpKXtjb25zdCBlPXMuc2VsZWN0aW9uKCkuaXNFbXB0eSgpOyhudWxsPT09dHx8ZSYmIXQuaGl0dGVzdC5kYXRhKCk/Lmhhc093blNob3J0Y3V0c0JlaGF2aW91ckZvcj8uc2hpZnRLZXkpJiYoVC50b29sLnNldFZhbHVlKCJtZWFzdXJlIiksKDAsUnMudHJhY2tEcmF3aW5nVG9vbFNlbGVjdGVkKSgibWVhc3VyZSIsIktleWJvYXJkIHNob3J0Y3V0IiksZXx8cy5zZWxlY3Rpb25NYWNybygoZT0+ZS5jbGVhclNlbGVjdGlvbigpKSkpfQppZigoZS5pc1RvdWNoJiYhZS5zdHlsdXN8fG51bGw9PT1jfHwhdGhpcy5fdHJ5U3RhcnRNZWFzdXJlKGUsbyxuLGMsaCkpJiYoZS5pc1RvdWNoJiYhZS5zdHlsdXN8fCF0aGlzLl90cnlGaW5pc2hNZWFzdXJlKGUsbykpJiYhKHRoaXMuX3RyeUZpbmlzaFpvb20oZSl8fG51bGwhPT1jJiZ0aGlzLl90cnlTdGFydFpvb20oZSxjLGgsbikpKXtpZihlLmlzVG91Y2gmJihudWxsIT09dGhpcy5fc3RhcnRUcmFja1BvaW50Pyh0aGlzLl9pbml0Q3Jvc3NIYWlyUG9zaXRpb249by5jdXJyZW50UG9pbnQoKSx0aGlzLl9zdGFydFRyYWNrUG9pbnQ9bmV3IFB0LlBvaW50KGUubG9jYWxYLGUubG9jYWxZKSk6dGhpcy5faXNTZWxlY3RQb2ludE1vZGVFbmFibGVkKCkmJm51bGw9PT10aGlzLl9jaGFydC50cmFja2luZ01vZGVQYW5lV2lkZ2V0KCkmJnRoaXMuc3RhcnRUcmFja2luZ01vZGUobmV3IFB0LlBvaW50KGUubG9jYWxYLGUubG9jYWxZKSxuZXcgUHQuUG9pbnQoZS5sb2NhbFgsZS5sb2NhbFkpLG5ldyBMaS5FbnZpcm9ubWVudFN0YXRlKGUpKSksZS5pc1RvdWNoJiYodGhpcy5fcHJldmVudFNvdXJjZUNoYW5nZT1udWxsPT09dHx8IXMuc2VsZWN0aW9uKCkuaXNTZWxlY3RlZCh0LnNvdXJjZSkpLCF0aGlzLl9pc1NlbGVjdFBvaW50TW9kZUVuYWJsZWQoKSYmIXRoaXMuX2lzU2Nyb2xsaW5nKXtpZihlLmlzVG91Y2gmJiFlLnN0eWx1cyYmKCgwLFQudG9vbElzTWVhc3VyZSkoVC50b29sLnZhbHVlKCkpfHxudWxsIT09by5tZWFzdXJlUGFuZSgpLnZhbHVlKCkpKXJldHVybiB2b2lkIHRoaXMuX2luaXRUb29sQ3JlYXRpb25Nb2RlUGFyYW1zKGUpO2lmKG51bGwhPT1jJiYoKDAsbS5pc0xpbmVUb29sTmFtZSkoVC50b29sLnZhbHVlKCkpfHxzLmxpbmVCZWluZ0NyZWF0ZWQoKSkpcmV0dXJuIG4uc2hpZnQoKXx8cy5zZWxlY3Rpb25NYWNybygoZT0+ZS5jbGVhclNlbGVjdGlvbigpKSksdm9pZCB0aGlzLl9tb3VzZURvd25FdmVudEZvckxpbmVUb29sKGUsbixoLGMpfWlmKCgwLFQudG9vbElzRGVtb25zdHJhdGlvbikoVC50b29sLnZhbHVlKCkpJiZuLmFsdE9ubHkoKSl7ZS5pc1RvdWNoJiYhdGhpcy50cmFja2luZ01vZGVFbmFibGVkKCkmJnRoaXMuc3RhcnRUcmFja2luZ01vZGUobmV3IFB0LlBvaW50KGUubG9jYWxYLGUubG9jYWxZKSxuZXcgUHQuUG9pbnQoZS5sb2NhbFgsZS5sb2NhbFkpLG5ldyBMaS5FbnZpcm9ubWVudFN0YXRlKGUpKTtjb25zdCB0PXRoaXMuX2NoYXJ0TW9kZWwoKS5jcm9zc2hhaXJTb3VyY2UoKS5jcm9zc2hhaXJEZW1vbnN0cmF0aW9uKCk7dC5jcmVhdGVIaWdobGlnaHRlcigpO2NvbnN0IGk9dGhpcy5fbG9jYWxDb29yZGluYXRlc1RvTGluZURhdGFTb3VyY2VQb2ludChvLm9yaWdpblgoKSxvLm9yaWdpblkoKSwoMCxsLmVuc3VyZU5vdE51bGwpKHRoaXMuc3RhdGUoKS5tYWluRGF0YVNvdXJjZSgpKSk7aSYmdC5hZGRIaWdobGlnaHRlclBvc2l0aW9uKGkpfWVsc2V7aWYobnVsbCE9PXQpe2NvbnN0IGk9dGhpcy5fc291cmNlV2FzU2VsZWN0ZWQodCk7dC5oaXR0ZXN0LnRyeUNhbGxNb3VzZURvd25PclRvdWNoU3RhcnRIYW5kbGVyKGUse3NvdXJjZVdhc1NlbGVjdGVkOml9KX1pZighdGhpcy5fY2hhcnQucmVhZE9ubHkoKSl7Y29uc3Qgcj10aGlzLl9oYW5kbGVTZWxlY3Rpb25Nb3VzZURvd25BbmRHZXRKdXN0RGVzZWxlY3RlZFNvdXJjZShlLHQsbik7aWYobnVsbCE9PXQmJiF0aGlzLl9wcmV2ZW50U291cmNlQ2hhbmdlKXtjb25zdCBpPXQuaGl0dGVzdC5kYXRhKCk7aWYodC5pc0N1c3RvbSl7aWYodC5oaXR0ZXN0Lmhhc1ByZXNzZWRNb3ZlSGFuZGxlcihlKSlyZXR1cm4gcy5tb2RlbCgpLnNldE1vdmluZ0N1c3RvbVNvdXJjZSh0LnNvdXJjZSxpKSx0aGlzLl9wcmV2ZW50U2Nyb2xsVW50aWxOZXh0TW91c2VEb3duT3JUb3VjaFN0YXJ0PSEwLHRoaXMuX2N1cnJlbnRNb3ZpbmdIaXRUZXN0PXtzb3VyY2VBdFBvaW50OnQsY2FuY2VsbGVkQ29udGFpbmVyOnMubW9kZWwoKS5jdXN0b21Tb3VyY2VNb3ZpbmdIaXRUZXN0RGF0YSgpPz92b2lkIDB9LHZvaWQgcy5zZWxlY3Rpb25NYWNybygoZT0+e2UuY2xlYXJTZWxlY3Rpb24oKSxlLmFkZEl0ZW1Ub1NlbGVjdGlvbigoMCxsLmVuc3VyZU5vdE51bGwpKHQuc291cmNlKSwoMCxsLmVuc3VyZU5vdE51bGwpKGkpKX0pKX1lbHNlIGlmKGk/LmFyZWFOYW1lPT09TWkuQXJlYU5hbWUuU291cmNlSXRlbU1vdmUpe2NvbnN0IG49aT8uYWN0aXZlSXRlbTtpZih2b2lkIDAhPT1uKXJldHVybiBzLnN0YXJ0Q3VzdG9tTW92aW5nKHQuc291cmNlLG4sZSksdGhpcy5fY3VycmVudE1vdmluZ0hpdFRlc3Q9e3NvdXJjZUF0UG9pbnQ6dH0sdm9pZCBzLnNlbGVjdGlvbk1hY3JvKChlPT57ZS5jbGVhclNlbGVjdGlvbigpLGUuYWRkSXRlbVRvU2VsZWN0aW9uKCgwLGwuZW5zdXJlTm90TnVsbCkodC5zb3VyY2UpLCgwLGwuZW5zdXJlTm90TnVsbCkoaSkpfSkpfX1pZihudWxsIT09dCYmdGhpcy5fdHJ5SGFuZGxlRXJhc2VyTW91c2VEb3duKHQsbikpcmV0dXJuO2NvbnN0IG89bnVsbCE9PXQmJigwLHJpLmlzTGluZVRvb2wpKHQuc291cmNlKSYmdC5zb3VyY2UuaXNMb2NrZWQmJnQuc291cmNlLmlzTG9ja2VkKCk7aWYoISgoMCxULmxvY2tEcmF3aW5ncykoKS52YWx1ZSgpfHxvKSYmbnVsbCE9PXQmJiF0LmlzQ3VzdG9tKXtpZighdC5zb3VyY2UudXNlckVkaXRFbmFibGVkKCkpcmV0dXJuO2NvbnN0IHM9dC5oaXR0ZXN0LmRhdGEoKT8uc25hcHBpbmdQcmljZSxvPXQuaGl0dGVzdC5kYXRhKCk/LnNuYXBwaW5nSW5kZXg7bGV0IHU9ZS5sb2NhbFkscD1lLmxvY2FsWDtjb25zdCBfPXQuaGl0dGVzdC5kYXRhKCk/Lm93bmVyU291cmNlSWQsbT1fP2kuZGF0YVNvdXJjZUZvcklkKF8pOnQuc291cmNlLm93bmVyU291cmNlKCk7aWYodm9pZCAwIT09cyYmbnVsbCE9PWEmJih1PSgwLGwuZW5zdXJlKShtPy5wcmljZVNjYWxlKCkpLnByaWNlVG9Db29yZGluYXRlKHMsYSksYz1zKSx2b2lkIDAhPT1vJiYocD1pLnRpbWVTY2FsZSgpLmluZGV4VG9Db29yZGluYXRlKG8pLGg9byksdT09PWUubG9jYWxZJiZwPT09ZS5sb2NhbFh8fChlPXsuLi5lLGxvY2FsWTp1LGxvY2FsWDpwfSwKdGhpcy5zZXRDdXJzb3JQb3NpdGlvbihlLmxvY2FsWCxlLmxvY2FsWSxuKSksdGhpcy5fdHJ5U3RhcnRDaGFuZ2luZ0xpbmVUb29sKGUsdCxuLGgpKXJldHVybiB2b2lkKHRoaXMuX2N1cnJlbnRDaGFuZ2luZ0xpbmVUb29sSGl0VGVzdD10KTtpZih0aGlzLl9jdXJyZW50Q2hhbmdpbmdMaW5lVG9vbEhpdFRlc3Q9bnVsbCwoZD10LmhpdHRlc3QudGFyZ2V0KCkpPT09TWkuSGl0VGFyZ2V0Lk1vdmVQb2ludHx8ZD09PU1pLkhpdFRhcmdldC5Nb3ZlUG9pbnRCYWNrZ3JvdW5kJiYoMCx1aS5sYXN0TW91c2VPclRvdWNoRXZlbnRJbmZvKSgpLmlzVG91Y2gpe2lmKHRoaXMuX3RyeVN0YXJ0Q2xvbmluZyhlLHQsbixyKSlyZXR1cm47aWYodGhpcy5fdHJ5U3RhcnRNb3ZpbmdMaW5lVG9vbChlLHQsbixoKSlyZXR1cm4gdm9pZCh0aGlzLl9jdXJyZW50TW92aW5nSGl0VGVzdD17c291cmNlQXRQb2ludDp0fSk7dGhpcy5fY3VycmVudE1vdmluZ0hpdFRlc3Q9bnVsbH19aWYobnVsbCE9PXQmJigwLEhzLmlzUHJpY2VEYXRhU291cmNlKSh0LnNvdXJjZSkmJnQuc291cmNlLmlzRHJhZ2dhYmxlKCkmJnRoaXMuX3N0YXRlPy5oYXNEYXRhU291cmNlKHQuc291cmNlKSYmdGhpcy5fcGFuZVdpZGdldHNTaGFyZWRTdGF0ZS50cnlTZXREcmFnZ2luZ1NvdXJjZSh0LnNvdXJjZSx0aGlzKSlyZXR1cm59dmFyIGQ7bnVsbCE9PXQmJnQuaGl0dGVzdC50YXJnZXQoKT09PU1pLkhpdFRhcmdldC5SZWd1bGFyfHwodGhpcy5fcHJvY2Vzc2luZz0hMCl9fX1fbW91c2VVcE9yVG91Y2hFbmRFdmVudChlKXtpZighdGhpcy5oYXNTdGF0ZSgpKXJldHVybjt0aGlzLl9wcmVzc2VkTW92ZVN0YWdlPTA7Y29uc3QgdD1lLmlzVG91Y2gmJm51bGwhPT10aGlzLl9zdGFydFRyYWNrUG9pbnQsaT1lLmlzVG91Y2gmJnRoaXMuX3dhc1BpbmNoZWQ7ZS5pc1RvdWNoJiYodGhpcy5fd2FzUGluY2hlZD0hMSx0aGlzLl9sb25nVGFwPSExKSx0aGlzLl9zdGFydE1vdmVTb3VyY2VQYXJhbXM9bnVsbCx0aGlzLl9zdGFydENoYW5nZUxpbmVUb29sUGFyYW1zPW51bGwsdGhpcy5fY3VycmVudENoYW5naW5nTGluZVRvb2xIaXRUZXN0PW51bGwsdGhpcy5fY3VycmVudE1vdmluZ0hpdFRlc3Q9bnVsbDtjb25zdCBzPXRoaXMuX2NoYXJ0VW5kb01vZGVsKCksbj1zLm1vZGVsKCkuY3VzdG9tU291cmNlTW92aW5nSGl0VGVzdERhdGEoKTtudWxsIT09bnx8cy5jdXN0b21Nb3ZlQmVpbmdQcm9jZXNzZWQoKXx8dGhpcy5fcHJvY2Vzc01vdXNlVXBPclRvdWNoRW5kSGFuZGxlcihlKSx0aGlzLl9pc1NlbGVjdGluZz0hMTtjb25zdCByPXMubW9kZWwoKSxvPXIuY3Jvc3NoYWlyU291cmNlKCksYT10aGlzLl9kYXRhU291cmNlQXRQb2ludChlLmxvY2FsWCxlLmxvY2FsWSk7aWYoby5zZWxlY3Rpb24oKSYmbnVsbD09PXRoaXMuX2ZpcnN0Wm9vbVBvaW50KXtjb25zdCBlPXRoaXMuc3RhdGUoKS5saW5lVG9vbHNGb3JBcmVhKG8uc2VsZWN0aW9uKCksKDAsS3QuZ2V0QmluZGluZ1JlbmRlcmluZ0luZm8pKHRoaXMuX2NhbnZhc0JpbmRpbmcpKTtzLnNlbGVjdGlvbk1hY3JvKCh0PT57bGV0IGk9bnVsbDtlLmZvckVhY2goKGU9PntudWxsPT09aSYmKGk9dW4oYSxlKSksdC5hZGRJdGVtVG9TZWxlY3Rpb24oZSxpKX0pKX0pKSxvLmNsZWFyU2VsZWN0aW9uKCksKDAsTXQudHJhY2tFdmVudCkoIkdVSSIsIk11bHRpc2VsZWN0IiwiQXJlYSBTZWxlY3QiKX0oMCwkLmVtaXQpKCJtb3VzZV91cCIse2NsaWVudFg6ZS5jbGllbnRYLGNsaWVudFk6ZS5jbGllbnRZLHBhZ2VYOmUucGFnZVgscGFnZVk6ZS5wYWdlWSxzY3JlZW5YOmUuc2NyZWVuWCxzY3JlZW5ZOmUuc2NyZWVuWX0pO2NvbnN0IGM9ZS5pc1RvdWNoJiZ0aGlzLl90b3VjaE1vdmU7ZS5pc1RvdWNoJiYodGhpcy5fdG91Y2hNb3ZlPSExKTtjb25zdCBoPW5ldyBMaS5FbnZpcm9ubWVudFN0YXRlKGUpLGQ9VC50b29sLnZhbHVlKCk7aWYoZS5pc1RvdWNoJiYoKDAsVC50b29sSXNNZWFzdXJlKShkKXx8bnVsbCE9PW8ubWVhc3VyZVBhbmUoKS52YWx1ZSgpKSl7aWYoIWMmJiFlLnN0eWx1cyYmbnVsbD09PW8ubWVhc3VyZVBhbmUoKS52YWx1ZSgpJiZvLnBhbmUhPT10aGlzLl9zdGF0ZSlyZXR1cm4gdm9pZCB0aGlzLnNldEN1cnNvclBvc2l0aW9uKGUubG9jYWxYLGUubG9jYWxZKTtpZighYyYmIWUuc3R5bHVzJiZ0aGlzLl90cnlTdGFydE1lYXN1cmUoZSxvLGgsby5wcmljZSxvLmluZGV4KSlyZXR1cm47aWYoKCFjfHxlLnN0eWx1cykmJnRoaXMuX3RyeUZpbmlzaE1lYXN1cmUoZSxvKSlyZXR1cm59aWYoZS5pc1RvdWNoJiYhYyYmISgwLG0uaXNMaW5lRHJhd25XaXRoUHJlc3NlZEJ1dHRvbikoZCkmJigwLG0uaXNMaW5lVG9vbE5hbWUpKGQpJiYhcy5saW5lQmVpbmdDcmVhdGVkKCkpe2lmKHRoaXMuX2NoYXJ0Lmp1c3RBY3RpdmF0ZWQoKSlyZXR1cm47aWYoby5wYW5lIT09dGhpcy5fc3RhdGUpcmV0dXJuIHZvaWQgdGhpcy5zZXRDdXJzb3JQb3NpdGlvbihlLmxvY2FsWCxlLmxvY2FsWSxoKTtjb25zdCB0PW8uY3VycmVudFBvaW50KCksaT10aGlzLnN0YXRlKCkuZGVmYXVsdFByaWNlU2NhbGUoKSxuPSgwLGwuZW5zdXJlKSh0aGlzLnN0YXRlKCkubWFpbkRhdGFTb3VyY2UoKT8uZmlyc3RWYWx1ZSgpKSxyPXtpbmRleDpNYXRoLnJvdW5kKHMudGltZVNjYWxlKCkuY29vcmRpbmF0ZVRvSW5kZXgodC54KSkscHJpY2U6aS5jb29yZGluYXRlVG9QcmljZSh0Lnksbil9LGM9KDAsbC5lbnN1cmVOb3ROdWxsKShzLmNyZWF0ZUxpbmVUb29sKHtwYW5lOnRoaXMuc3RhdGUoKSxwb2ludDpyLGxpbmV0b29sOmQsYWN0aW9uU291cmNlOiJEcmF3IixrZWVwU2VsZWN0ZWRHcm91cDohMH0pKTtyZXR1cm4gdGhpcy5fbW91c2VUb3VjaERvd25VcEluZm8mJih0aGlzLl9tb3VzZVRvdWNoRG93blVwSW5mby50b29sQ3JlYXRpb249ITApLHMuc2VsZWN0aW9uTWFjcm8oKGU9PntlLmFkZEl0ZW1Ub1NlbGVjdGlvbihjKX0pKSxzLmxpbmVCZWluZ0NyZWF0ZWQoKXx8KHRoaXMuX2ZpbmlzaFRvb2woYyxhKSxlLnByZXZlbnREZWZhdWx0KCkpLHZvaWQodGhpcy5fc3RhcnRUb3VjaFBvaW50PW51bGwpfWNvbnN0IHU9cy5saW5lQmVpbmdDcmVhdGVkKCkKO2lmKHUmJiEoMCxtLmlzTGluZURyYXduV2l0aFByZXNzZWRCdXR0b24pKHUudG9vbG5hbWUpJiZlLmlzVG91Y2gmJih0aGlzLl9zdGFydFRvdWNoUG9pbnR8fGUuc3R5bHVzKSl7aWYodGhpcy5fc3RhcnRUb3VjaFBvaW50PW51bGwsIWN8fGUuc3R5bHVzKXtjb25zdCB0PSgwLGwuZW5zdXJlTm90TnVsbCkodS5sYXN0UG9pbnQoKSksaT1zLmNvbnRpbnVlQ3JlYXRpbmdMaW5lKHtpbmRleDp0LmluZGV4LHByaWNlOnQucHJpY2V9LG5ldyBMaS5FbnZpcm9ubWVudFN0YXRlKGUpKTt0aGlzLl9pbml0Q3Jvc3NIYWlyUG9zaXRpb249bnVsbCxpJiYodGhpcy5fZmluaXNoVG9vbCh1LGEpLGUucHJldmVudERlZmF1bHQoKSl9cmV0dXJufWlmKG51bGwhPT10aGlzLl9maXJzdFpvb21Qb2ludCYmdGhpcy5fZmlyc3Rab29tUG9pbnQuZHJhZ2dpbmdNb2RlKXJldHVybiB2b2lkIHRoaXMuX2ZpbmlzaFpvb20oZSk7aWYodGhpcy5fcHJvY2Vzc2luZz0hMSxzLmN1c3RvbU1vdmVCZWluZ1Byb2Nlc3NlZCgpKXJldHVybiB2b2lkIHMuZW5kQ3VzdG9tTW92aW5nKCk7aWYobnVsbCE9PW4pe2lmKG4uYmVpbmdNb3ZlZCYmIW4uY2FuY2VsbGVkKXtjb25zdCB0PXRoaXMuX3NvdXJjZVdhc1NlbGVjdGVkKGEpOygwLE1pLnRyeUNhbGxIYW5kbGVyKShlLHtzb3VyY2VXYXNTZWxlY3RlZDp0fSxuLm1vdXNlVXBIYW5kbGVyLG4udG91Y2hFbmRIYW5kbGVyKSx0aGlzLnNldEN1cnNvckZvclRvb2woKX1pZihyLnNldE1vdmluZ0N1c3RvbVNvdXJjZShudWxsLG51bGwpLHZuKGUsbikpcmV0dXJufWlmKHIubGluZUJlaW5nRWRpdGVkKCkpcmV0dXJuIHMuZW5kQ2hhbmdpbmdMaW5ldG9vbCghMSksdm9pZCh0aGlzLl9wcmV2ZW50Q3Jvc3NIYWlyTW92ZSgpJiZ0aGlzLl9jbGVhckN1cnNvclBvc2l0aW9uKCkpO2lmKCgwLG0uaXNMaW5lRHJhd25XaXRoUHJlc3NlZEJ1dHRvbikoZCkmJiF0aGlzLl9pc1NlbGVjdFBvaW50TW9kZUVuYWJsZWQoKSl7Y29uc3QgdD1zLmxpbmVCZWluZ0NyZWF0ZWQoKTtudWxsIT09dCYmKHQuZmluaXNoKCksIkxpbmVUb29sQnJ1c2giPT09dC50b29sbmFtZSYmKDAsJC5lbWl0KSgiZHJhd2luZ19ldmVudCIsdC5pZCgpLCJjcmVhdGUiKSk7Y29uc3QgaT10aGlzLnN0YXRlKCkuZGVmYXVsdFByaWNlU2NhbGUoKTtpZihpLmlzRW1wdHkoKSlyZXR1cm47aWYoIXQpcmV0dXJuO2NvbnN0IG49KDAsbC5lbnN1cmUpKHQub3duZXJTb3VyY2UoKT8uZmlyc3RWYWx1ZSgpKSxyPWkuY29vcmRpbmF0ZVRvUHJpY2UoZS5sb2NhbFksbiksbz17aW5kZXg6TWF0aC5yb3VuZChzLnRpbWVTY2FsZSgpLmNvb3JkaW5hdGVUb0luZGV4KGUubG9jYWxYKSkscHJpY2U6cn07cmV0dXJuIHZvaWQgcy5jb250aW51ZUNyZWF0aW5nTGluZShvKX1jb25zdCBwPXIuY3Jvc3NoYWlyU291cmNlKCkuY3Jvc3NoYWlyRGVtb25zdHJhdGlvbigpO2lmKHAuaXNUaGVyZVVuZmluaXNoZWRIaWdobGlnaHRlcigpKXJldHVybiB2b2lkIHAuZmluaXNoSGlnaGxpZ2h0ZXIoKTtpZihyLnNvdXJjZXNCZWluZ01vdmVkKCkubGVuZ3RoKXJldHVybiBzLmVuZE1vdmluZ1NvdXJjZSghMSwhMSksci5zb3VyY2VzQmVpbmdNb3ZlZCgpLmZpbHRlcihyaS5pc0xpbmVUb29sKS5mb3JFYWNoKChlPT57dGhpcy5zZXRDdXJzb3JGb3JUb29sKGUpfSkpLHZvaWQgci5pbnZhbGlkYXRlKExlLkludmFsaWRhdGlvbk1hc2suY3Vyc29yKCkpO2lmKCF0aGlzLl9jaGFydC5yZWFkT25seSgpKXtjb25zdCB0PWUubG9jYWxYPj0wJiZlLmxvY2FsWDx0aGlzLl9zaXplLndpZHRoO2lmKCghYXx8YS5zb3VyY2UhPT1vKSYmdCl7Y29uc3QgdD10aGlzLl9jaGFydE1vZGVsKCkubWFpblNlcmllcygpLnN5bmNNb2RlbCgpO2lmKHQpe2NvbnN0IGk9dGhpcy5fY2hhcnRNb2RlbCgpLnRpbWVTY2FsZSgpLnBvaW50cygpLnJvdWdoVGltZShzLnRpbWVTY2FsZSgpLmNvb3JkaW5hdGVUb0luZGV4KGUubG9jYWxYKSwoKGUsaSk9PnQucHJvamVjdFRpbWUoZSxpKSkpO251bGwhPT1pJiZ0aGlzLl9jaGFydC5jaGFydFdpZGdldENvbGxlY3Rpb24oKS5zeW5jU2Nyb2xsKDFlMyppLHRoaXMuX2NoYXJ0TW9kZWwoKSl9fX1jb25zdCBfPXRoaXMuX2lzU2Nyb2xsaW5nLGc9dGhpcy5fZW5kU2Nyb2xsKGUpLGY9dGhpcy5fcGFuZVdpZGdldHNTaGFyZWRTdGF0ZS5kcmFnZ2luZ1NvdXJjZSgpO2lmKG51bGwhPT1mKXtjb25zdCB0PWUudGFyZ2V0LGk9dGhpcy5fY2hhcnQucGFuZUJ5Q2FudmFzKHQpO2kmJmkhPT10aGlzJiZpLnN0YXRlKCkubW9kZSgpPT09TS5QYW5lTW9kZS5SZWd1bGFyJiYoZyYmcy51bmRvSGlzdG9yeSgpLnVuZG8oKSxzLm1lcmdlVG9QYW5lKGYsaS5zdGF0ZSgpKSk7aWYodGhpcy5fY2hhcnQudGltZUF4aXNCeUNhbnZhcyh0KSlpZihyLmlzVW5tZXJnZUF2YWlsYWJsZUZvclNvdXJjZShmKSlnJiZzLnVuZG9IaXN0b3J5KCkudW5kbygpLHMudW5tZXJnZVRvTmV3Qm90dG9tUGFuZShmKTtlbHNle2NvbnN0IGU9ci5wYW5lcygpLHQ9KDAsbC5lbnN1cmVOb3ROdWxsKShyLnBhbmVGb3JTb3VyY2UoZikpLGk9ZS5pbmRleE9mKHQpO2khPT1lLmxlbmd0aC0xJiYoZyYmcy51bmRvSGlzdG9yeSgpLnVuZG8oKSx0Lm1heGltaXplZCgpLnZhbHVlKCkmJnMudG9nZ2xlTWF4aW1pemVkUGFuZSh0KSxzLm1vdmVQYW5lKGksZS5sZW5ndGgtMSkpfXRoaXMuX3BhbmVXaWRnZXRzU2hhcmVkU3RhdGUuY2xlYXJEcmFnZ2luZ1NvdXJjZSgpO2NvbnN0IG49dGhpcy5fY2hhcnQuZ2V0VGltZVNjYWxlKCk7biYmbi5yZXN0b3JlRGVmYXVsdEN1cnNvcigpO2NvbnN0IG89dGhpcy5fY2hhcnQucGFuZVdpZGdldHMoKTtmb3IobGV0IGU9MDtlPG8ubGVuZ3RoO2UrKyl7Y29uc3QgdD1vW2VdO3Q9PT10aGlzJiZhJiYhYS5pc0N1c3RvbT90LnNldEN1cnNvckZvclRvb2woYS5zb3VyY2V8fHZvaWQgMCk6dC5zZXRDdXJzb3JGb3JUb29sKCksdC5sZWZ0UHJpY2VBeGlzZXNDb250YWluZXIoKS5yZXN0b3JlRGVmYXVsdEN1cnNvcigpLHQucmlnaHRQcmljZUF4aXNlc0NvbnRhaW5lcigpLnJlc3RvcmVEZWZhdWx0Q3Vyc29yKCl9fQp0aGlzLl9jaGFydC5yZWFkT25seSgpfHx0fHxoLm1vZCgpfHxffHxpfHxudWxsIT09dGhpcy5fbGFzdEZpbmlzaGVkVG9vbElkfHxudWxsIT09YSYmIWEuaGl0dGVzdC5kYXRhKCk/LnNraXBTb3VyY2VTZWxlY3Rpb24mJihhLmhpdHRlc3QudGFyZ2V0KCk+TWkuSGl0VGFyZ2V0Lk1vdmVQb2ludEJhY2tncm91bmR8fCgwLHVpLmxhc3RNb3VzZU9yVG91Y2hFdmVudEluZm8pKCkuaXNUb3VjaCkmJnMuc2VsZWN0aW9uTWFjcm8oKHQ9Pntjb25zdCBpPXt0eXBlOiJjaGFuZ2UiLG5ld1NlbGVjdGVkU291cmNlOmEuc291cmNlLGludGVyYWN0aW9uVHlwZTplLmlzVG91Y2g/InRvdWNoIjoicG9pbnRlciJ9O2lmKHQuc2VsZWN0aW9uT3BlcmF0aW9uQXZhaWxhYmxlKGkpKXt0LmNsZWFyU2VsZWN0aW9uKCk7Y29uc3QgZT0oMCxsLmVuc3VyZU5vdE51bGwpKGEuc291cmNlKTt0LmFkZEl0ZW1Ub1NlbGVjdGlvbihlLHVuKGEsZSkpfX0pKSxlLmlzVG91Y2gmJih0aGlzLl90b3VjaE1vdmU9ITEpfV9tb3VzZU9yVG91Y2hNb3ZlRXZlbnQoZSl7aWYoIXRoaXMuaGFzU3RhdGUoKSlyZXR1cm47dGhpcy5fbW91c2VUb3VjaERvd25VcEluZm8mJih0aGlzLl9tb3VzZVRvdWNoRG93blVwSW5mby5tb3VzZU1vdmU9ITApLHRoaXMuX3Jlc2V0TWVhc3VyZUlmUmVxdWlyZWQoKTtjb25zdCB0PXRoaXMuX2RhdGFTb3VyY2VBdFBvaW50KGUubG9jYWxYLGUubG9jYWxZKTt0aGlzLl9wcm9jZXNzTW91c2VFbnRlckxlYXZlTW92ZUhhbmRsZXJzKHQsZSk7Y29uc3QgaT10aGlzLl9jaGFydFVuZG9Nb2RlbCgpO2lmKCFpKXJldHVybjtjb25zdCBzPWUubG9jYWxYLG49ZS5sb2NhbFk7dGhpcy5fcHJldk1vdmVFdmVudFBvc2l0aW9uPW5ldyBQdC5Qb2ludChzLG4pO2NvbnN0IHI9bmV3IExpLkVudmlyb25tZW50U3RhdGUoZSk7aWYobnVsbD09PXRoaXMuX2ZpcnN0Wm9vbVBvaW50KXtpZih0aGlzLl91cGRhdGVIb3ZlcmVkU291cmNlKHQscixlKSwhZS5pc1RvdWNoJiZpLmxpbmVCZWluZ0NyZWF0ZWQoKSl7Y29uc3QgZT1pLm1vZGVsKCkucGFuZUJlaW5nQ3JlYXRlZExpbmVPbigpO2lmKG51bGwhPT1lJiZlIT09dGhpcy5fc3RhdGUpcmV0dXJuIHZvaWQgdGhpcy5fc2V0Q3Vyc29yUG9zaXRpb25PbkV4dGVybmFsUGFuZShlLHMsbixyKX1lLmlzVG91Y2h8fHRoaXMuc2V0Q3Vyc29yUG9zaXRpb24ocyxuLHIpfWVsc2UgdGhpcy5fcHJvY2Vzc01vdXNlTW92ZVdoaWxlWm9vbShlLHIpfV9wcmVzc2VkTW91c2VPclRvdWNoTW92ZUV2ZW50KGUpe2lmKHRoaXMuX2NoYXJ0TW9kZWwoKS5kcmFnRXhwb3J0RW5hYmxlZCgpLnZhbHVlKCkmJnZvaWQgMCE9PWUuYnV0dG9ucyYmIUJvb2xlYW4oMSZlLmJ1dHRvbnMpKXJldHVybjtpZighdGhpcy5oYXNTdGF0ZSgpfHx0aGlzLl9waW5jaGluZ3x8ZS5pc1RvdWNoJiZ0aGlzLl9jb250ZXh0TWVudU9wZW5lZE9uTGFzdFRhcClyZXR1cm47dGhpcy5fcHJlc3NlZE1vdmVTdGFnZT0yLHRoaXMuX21vdXNlVG91Y2hEb3duVXBJbmZvJiYodGhpcy5fbW91c2VUb3VjaERvd25VcEluZm8ubW91c2VNb3ZlPSEwKSx0aGlzLl9yZXNldE1lYXN1cmVJZlJlcXVpcmVkKCksdGhpcy5fc3RhcnRDaGFuZ2VPck1vdmVMaW5lVG9vbElmTmVlZGVkKCksZS5pc1RvdWNoJiYodGhpcy5fdG91Y2hNb3ZlPSEwLHRoaXMuX3ByZXZlbnRTb3VyY2VDaGFuZ2U9ITEpO2NvbnN0IHQ9bmV3IExpLkVudmlyb25tZW50U3RhdGUoZSksaT10aGlzLl9jaGFydFVuZG9Nb2RlbCgpLHM9aS5jcm9zc2hhaXJTb3VyY2UoKSxuPWUubG9jYWxYLHI9ZS5sb2NhbFk7aWYodGhpcy5fcHJldk1vdmVFdmVudFBvc2l0aW9uPW5ldyBQdC5Qb2ludChuLHIpLG51bGwhPT10aGlzLl9maXJzdFpvb21Qb2ludClyZXR1cm4gdGhpcy5fcHJvY2Vzc01vdXNlTW92ZVdoaWxlWm9vbShlKSx2b2lkKHRoaXMuX2ZpcnN0Wm9vbVBvaW50LmRyYWdnaW5nTW9kZT0hMCk7Y29uc3Qgbz1ULnRvb2wudmFsdWUoKTtpZihlLmlzVG91Y2gmJnRoaXMuX3N0YXJ0VG91Y2hQb2ludCYmKDAsbS5pc0xpbmVUb29sTmFtZSkobykmJiEoMCxtLmlzTGluZURyYXduV2l0aFByZXNzZWRCdXR0b24pKG8pJiYhaS5saW5lQmVpbmdDcmVhdGVkKCkmJiF0aGlzLl9pc1NlbGVjdFBvaW50TW9kZUVuYWJsZWQoKSlyZXR1cm4gdm9pZCB0aGlzLl91cGRhdGVDcm9zc2hhaXJQb3NpdGlvbkluVG9vbENyZWF0aW9uTW9kZShlLHRoaXMuc3RhdGUoKSk7Y29uc3QgYT1zLm1lYXN1cmVQYW5lKCkudmFsdWUoKTtpZihlLmlzVG91Y2gmJih0aGlzLl9zdGFydFRvdWNoUG9pbnR8fGUuc3R5bHVzKSYmKCgwLFQudG9vbElzTWVhc3VyZSkobyl8fG51bGwhPT1hKSlyZXR1cm4gdm9pZChlLnN0eWx1cz90aGlzLnNldEN1cnNvclBvc2l0aW9uKGUubG9jYWxYLGUubG9jYWxZLG5ldyBMaS5FbnZpcm9ubWVudFN0YXRlKGUpKTp0aGlzLl91cGRhdGVDcm9zc2hhaXJQb3NpdGlvbkluVG9vbENyZWF0aW9uTW9kZShlLGF8fHRoaXMuc3RhdGUoKSkpO2NvbnN0IGM9aS5saW5lQmVpbmdDcmVhdGVkKCk7aWYoZS5pc1RvdWNoJiYhZS5zdHlsdXMmJmMmJiEoMCxtLmlzTGluZURyYXduV2l0aFByZXNzZWRCdXR0b24pKGMudG9vbG5hbWUpKXtpZih0aGlzLl9zdGFydFRvdWNoUG9pbnQpe2NvbnN0IHQ9KDAsbC5lbnN1cmVOb3ROdWxsKShpLmxpbmVCZWluZ0NyZWF0ZWQoKSkscz0oMCxsLmVuc3VyZU5vdE51bGwpKGkubW9kZWwoKS5wYW5lRm9yU291cmNlKHQpKTt0aGlzLl91cGRhdGVDcm9zc2hhaXJQb3NpdGlvbkluVG9vbENyZWF0aW9uTW9kZShlLHMpfXJldHVybn1pZihlLmlzVG91Y2gmJm51bGwhPT10aGlzLl9zdGFydFRyYWNrUG9pbnQpe3RoaXMuX2V4aXRUcmFja2luZ01vZGVPbk5leHRUcnk9ITE7Y29uc3QgZT0oMCxsLmVuc3VyZU5vdE51bGwpKHRoaXMuX2luaXRDcm9zc0hhaXJQb3NpdGlvbiksaT1uZXcgUHQuUG9pbnQobixyKS5zdWJ0cmFjdCh0aGlzLl9zdGFydFRyYWNrUG9pbnQpLHM9ZS5hZGQoaSk7dGhpcy5zZXRDdXJzb3JQb3NpdGlvbihzLngscy55LHQpfWVsc2UgZS5pc1RvdWNoJiZ0aGlzLl9wcmV2ZW50Q3Jvc3NIYWlyTW92ZSgpfHx0aGlzLnNldEN1cnNvclBvc2l0aW9uKG4scix0KQo7Y29uc3QgaD10aGlzLl9pc1NlbGVjdFBvaW50TW9kZUVuYWJsZWQoKTtpZigoMCxtLmlzTGluZVRvb2xOYW1lKShvKSYmISgwLG0uaXNMaW5lRHJhd25XaXRoUHJlc3NlZEJ1dHRvbikobykmJiFoJiYhdC5tb2QoKSlyZXR1cm47aWYoKDAsbS5pc0xpbmVEcmF3bldpdGhQcmVzc2VkQnV0dG9uKShvKSYmIWgpe2NvbnN0IHQ9aS5saW5lQmVpbmdDcmVhdGVkKCk7aWYoIXQpcmV0dXJuO2NvbnN0IHM9dGhpcy5fbG9jYWxDb29yZGluYXRlc1RvTGluZURhdGFTb3VyY2VQb2ludChlLmxvY2FsWCxlLmxvY2FsWSwoMCxsLmVuc3VyZU5vdE51bGwpKHQub3duZXJTb3VyY2UoKSkpO3JldHVybiB2b2lkKHMmJmkuY29udGludWVDcmVhdGluZ0xpbmUocykpfWNvbnN0IGQ9aS5jcm9zc2hhaXJTb3VyY2UoKS5jcm9zc2hhaXJEZW1vbnN0cmF0aW9uKCk7aWYoZC5pc1RoZXJlVW5maW5pc2hlZEhpZ2hsaWdodGVyKCkpe2NvbnN0IGU9dGhpcy5fbG9jYWxDb29yZGluYXRlc1RvTGluZURhdGFTb3VyY2VQb2ludChzLm9yaWdpblgoKSxzLm9yaWdpblkoKSwoMCxsLmVuc3VyZU5vdE51bGwpKHRoaXMuc3RhdGUoKS5tYWluRGF0YVNvdXJjZSgpKSk7cmV0dXJuIHZvaWQoZSYmZC5hZGRIaWdobGlnaHRlclBvc2l0aW9uKGUpKX1pZihudWxsIT09dGhpcy5fcGFuZVdpZGdldHNTaGFyZWRTdGF0ZS5kcmFnZ2luZ1NvdXJjZSgpKXtjb25zdCB0PWUudGFyZ2V0LGk9dGhpcy5fY2hhcnQucGFuZUJ5Q2FudmFzKHQpO2kmJihpIT09dGhpcz9pLnNldERyYWdUb0Fub3RoZXJQYW5lQ3Vyc29yKCk6aS5zZXRDdXJzb3JGb3JUb29sKCkpO2NvbnN0IHM9dGhpcy5fY2hhcnQudGltZUF4aXNCeUNhbnZhcyh0KTtzJiZzLnNldEN1cnNvcigiZ3JhYmJpbmciKX1pZihpLnRpbWVTY2FsZSgpLmlzRW1wdHkoKSlyZXR1cm47Y29uc3QgdT10aGlzLl9vcHRpb25zLmhhbmRsZVNjcm9sbDtpZigoIXUucHJlc3NlZE1vdXNlTW92ZXx8ZS5pc1RvdWNoKSYmKCF1LmhvcnpUb3VjaERyYWcmJiF1LnZlcnRUb3VjaERyYWd8fCFlLmlzVG91Y2gpKXJldHVybjtpZih0aGlzLl9jaGFydE1vZGVsKCkuZHJhZ0V4cG9ydEVuYWJsZWQoKS52YWx1ZSgpJiZ0aGlzLl9pZ25vcmluZ01vdXNlTW92ZW1lbnQpcmV0dXJuO2lmKGkuY3VzdG9tTW92ZUJlaW5nUHJvY2Vzc2VkKCkpcmV0dXJuIHZvaWQgaS5wcm9jZXNzQ3VzdG9tTW92ZShlKTtjb25zdCBwPWkubW9kZWwoKS5jdXN0b21Tb3VyY2VNb3ZpbmdIaXRUZXN0RGF0YSgpO2lmKG51bGwhPT1wJiYodGhpcy5fdXBkYXRlQ29tbW9uVG9vbHRpcChudWxsLCEwKSxwLmNhbmNlbGxlZHx8KGkubW9kZWwoKS5wcm9jZXNzaW5nQ3VzdG9tU291cmNlTW92ZSgpLCgwLE1pLnRyeUNhbGxIYW5kbGVyKShlLHtzb3VyY2VXYXNTZWxlY3RlZDp0aGlzLl9zZWxlY3Rpb25CZWZvcmVNb3VzZURvd24uaGFzKGkubW9kZWwoKS5jdXN0b21Tb3VyY2VCZWluZ01vdmVkKCkpfSxwLnByZXNzZWRNb3VzZU1vdmVIYW5kbGVyLHAudG91Y2hNb3ZlSGFuZGxlcikpLHZuKGUscCkpKXJldHVybjtpZihpLm1vZGVsKCkubGluZUJlaW5nRWRpdGVkKCkpcmV0dXJuIHZvaWQgdGhpcy5zZXRDdXJzb3JQb3NpdGlvbihuLHIsdCk7aWYoaS5tb2RlbCgpLnNvdXJjZXNCZWluZ01vdmVkKCkubGVuZ3RoKXJldHVybiB2b2lkIHRoaXMuX2FsaWduU291cmNlc1RoYXRCZWluZ01vdmVkKGkubW9kZWwoKS5zb3VyY2VzQmVpbmdNb3ZlZCgpLGUubG9jYWxYLGUubG9jYWxZLHQsaS5tb2RlbCgpLmxhc3RIaXR0ZXN0RGF0YSgpPy5wb3NzaWJsZU1vdmluZ0RpcmVjdGlvbnMpO2NvbnN0IF89dGhpcy5fZGF0YVNvdXJjZUF0UG9pbnQoZS5sb2NhbFgsZS5sb2NhbFkpO2lmKHRoaXMuX3RyeUZpbmlzaENsb25uaW5nKGUsbmV3IExpLkVudmlyb25tZW50U3RhdGUoZSksXykpcmV0dXJuO2NvbnN0IGc9KDAsVC50b29sSXNNZWFzdXJlKShvKXx8cy5zdGFydE1lYXN1cmVQb2ludCgpJiZzLmVuZE1lYXN1cmVQb2ludCgpO3RoaXMuX2NoYXJ0LnJlYWRPbmx5KCl8fCF0Lm1vZCgpfHwoMCxtLmlzTGluZVRvb2xOYW1lKShvKXx8Z3x8aD8odGhpcy5fcHJvY2Vzc1Njcm9sbChlKSx0aGlzLl9wcmV2ZW50U2Nyb2xsKCkmJiF0aGlzLl9wcmV2ZW50Q3Jvc3NIYWlyTW92ZSgpJiZudWxsPT09dGhpcy5fc3RhcnRUcmFja1BvaW50JiZ0aGlzLnNldEN1cnNvclBvc2l0aW9uKGUubG9jYWxYLGUubG9jYWxZLG5ldyBMaS5FbnZpcm9ubWVudFN0YXRlKGUpKSk6dGhpcy5faXNTZWxlY3Rpbmd8fChzLnN0YXJ0U2VsZWN0aW9uKHRoaXMuc3RhdGUoKSksdGhpcy5faXNTZWxlY3Rpbmc9ITApfV9tb3VzZU9yVG91Y2hMZWF2ZUV2ZW50KGUpe2lmKCF0aGlzLmhhc1N0YXRlKCkpcmV0dXJuO2NvbnN0IHQ9dGhpcy5fY2hhcnRVbmRvTW9kZWwoKTtpZighdClyZXR1cm47Y29uc3QgaT10LmNyb3NzaGFpclNvdXJjZSgpO2UuaXNUb3VjaHx8bnVsbCE9PWkubWVhc3VyZVBhbmUoKS52YWx1ZSgpJiZudWxsPT09aS5lbmRNZWFzdXJlUG9pbnQoKXx8dGhpcy5fY2xlYXJDdXJzb3JQb3NpdGlvbigpO2lmKHRoaXMuX2NoYXJ0TW9kZWwoKS5zZXRIb3ZlcmVkU291cmNlKG51bGwsbnVsbCksbnVsbCE9PXRoaXMuX3ByZXZIb3ZlcmVkSGl0dGVzdCl7Y29uc3QgdD10aGlzLl9zb3VyY2VXYXNTZWxlY3RlZCh0aGlzLl9wcmV2SG92ZXJlZEhpdHRlc3QpOygwLE1pLnRyeUNhbGxIYW5kbGVyKShlLHtzb3VyY2VXYXNTZWxlY3RlZDp0fSx0aGlzLl9wcmV2SG92ZXJlZEhpdHRlc3QuaGl0dGVzdC5kYXRhKCk/Lm1vdXNlTGVhdmVIYW5kbGVyKSx0aGlzLl9wcmV2SG92ZXJlZEhpdHRlc3Q9bnVsbH10aGlzLl91cGRhdGVDb21tb25Ub29sdGlwKG51bGwpLHRoaXMuX2NoYXJ0LnNldEFjdGl2ZVBhbmVXaWRnZXQobnVsbCl9X21vdXNlRG91YmxlQ2xpY2tPckRvdWJsZVRhcEV2ZW50KGUpe2lmKCF0aGlzLmhhc1N0YXRlKCkpcmV0dXJuO2NvbnN0IHQ9IXRoaXMuX2NoYXJ0LnJlYWRPbmx5KCkmJiEoMCxtLmlzTGluZVRvb2xOYW1lKShULnRvb2wudmFsdWUoKSkmJnRoaXMuX2RhdGFTb3VyY2VBdFBvaW50KGUubG9jYWxYLGUubG9jYWxZKXx8bnVsbCxpPXRoaXMuX3NvdXJjZVdhc1NlbGVjdGVkKHQpCjtpZihudWxsIT09dCYmdC5pc0N1c3RvbSl0LmhpdHRlc3QudHJ5Q2FsbERibENsaWNrT3JEYmxUYXBIYW5kbGVyKGUse3NvdXJjZVdhc1NlbGVjdGVkOml9KTtlbHNlIGlmKG51bGwhPT10JiYoZS5pc1RvdWNofHx0LmhpdHRlc3QudGFyZ2V0KCk+TWkuSGl0VGFyZ2V0Lk1vdmVQb2ludEJhY2tncm91bmQpKXQuaGl0dGVzdC50cnlDYWxsRGJsQ2xpY2tPckRibFRhcEhhbmRsZXIoZSx7c291cmNlV2FzU2VsZWN0ZWQ6aX0pJiYhKDAsTWkuc2hvdWxkRGVmYXVsdEFjdGlvbkJlRXhlY3V0ZWQpKGUsKDAsbC5lbnN1cmVOb3ROdWxsKSh0LmhpdHRlc3QuZGF0YSgpKSwiZG91YmxlQ2xpY2tIYW5kbGVyIiwiZG91YmxlVGFwSGFuZGxlciIpfHx0aGlzLnByb2Nlc3NEb3VibGVDbGlja09uU291cmNlKHQuc291cmNlLHQuaGl0dGVzdD90LmhpdHRlc3Q6dm9pZCAwKTtlbHNlIGlmKCF0aGlzLl9jaGFydC5yZWFkT25seSgpJiYhKDAsbS5pc0xpbmVUb29sTmFtZSkoVC50b29sLnZhbHVlKCkpJiYhdGhpcy5fY2hhcnRVbmRvTW9kZWwoKS5saW5lQmVpbmdDcmVhdGVkKCkmJnRoaXMuX2NoYXJ0VW5kb01vZGVsKCkuc2VsZWN0aW9uKCkuaXNFbXB0eSgpKXtjb25zdCB0PXRoaXMuc3RhdGUoKTtuZXcgTGkuRW52aXJvbm1lbnRTdGF0ZShlKS5tb2QoKSYmIXQubWF4aW1pemVkKCkudmFsdWUoKT8odC5jb2xsYXBzZWQoKS52YWx1ZSgpfHx0LmNvbGxhcHNpbmdBdmFpbGFibGUoKS52YWx1ZSgpKSYmdGhpcy5fY2hhcnRVbmRvTW9kZWwoKS50b2dnbGVDb2xsYXBzZWRQYW5lKHRoaXMuc3RhdGUoKSk6dGhpcy5fY2hhcnRVbmRvTW9kZWwoKS50b2dnbGVNYXhpbWl6ZWRQYW5lKHRoaXMuc3RhdGUoKSl9fV9jb250ZXh0TWVudUV2ZW50KGUpe2NvbnN0IHQ9dGhpcy5fY2hhcnRVbmRvTW9kZWwoKTtpZih0LmNyb3NzaGFpclNvdXJjZSgpLnN0YXJ0TWVhc3VyZVBvaW50KCkmJiF0aGlzLl90cmFja0Nyb3NzaGFpck9ubHlBZnRlckxvbmdUYXApcmV0dXJuIHQuY3Jvc3NoYWlyU291cmNlKCkuY2xlYXJNZWFzdXJlKCksdm9pZCgwLFQucmVzZXRUb0N1cnNvcikoITApO2lmKHRoaXMuX3BpbmNoaW5nKXJldHVybjtpZihudWxsPT09dGhpcy5fZmlyc3Rab29tUG9pbnR8fHRoaXMuX3RyYWNrQ3Jvc3NoYWlyT25seUFmdGVyTG9uZ1RhcHx8dGhpcy5jYW5jZWxab29tKCksISgwLFQudG9vbElzQ3Vyc29yKShULnRvb2wudmFsdWUoKSl8fHRoaXMuX2lzU2VsZWN0UG9pbnRNb2RlRW5hYmxlZCgpKXtpZihlLmlzVG91Y2gpcmV0dXJuO3JldHVybigwLFQucmVzZXRUb0N1cnNvcikoITApLHRoaXMuc2V0Q3Vyc29yRm9yVG9vbCgpLHZvaWQodC5saW5lQmVpbmdDcmVhdGVkKCkmJnQuY2FuY2VsQ3JlYXRpbmdMaW5lKCkpfWlmKCF0aGlzLl9vcHRpb25zLmNvbnRleHRNZW51RW5hYmxlZClyZXR1cm47Y29uc3QgaT10aGlzLl9kYXRhU291cmNlQXRQb2ludChlLmxvY2FsWCxlLmxvY2FsWSkscz1pP2kuc291cmNlOm51bGw7aWYoZS5pc1RvdWNoJiZudWxsIT09dGhpcy5fc3RhcnRUcmFja1BvaW50KXtpZih0aGlzLl9wcmV2ZW50U291cmNlQ2hhbmdlKXJldHVybjt0aGlzLl9jbGVhckN1cnNvclBvc2l0aW9uKCl9ZS5pc1RvdWNoJiYodGhpcy5fY29udGV4dE1lbnVPcGVuZWRPbkxhc3RUYXA9ITAsdGhpcy5fc3RhcnRUcmFja1BvaW50PW51bGwpLHRoaXMuX2NvbnRleHRNZW51WD1lLmxvY2FsWCx0aGlzLl9jb250ZXh0TWVudVk9ZS5sb2NhbFk7Y29uc3Qgbj1pJiZpLmhpdHRlc3Q/aS5oaXR0ZXN0LnRhcmdldCgpOjAscj1uPj1NaS5IaXRUYXJnZXQuUmVndWxhcnx8bj49TWkuSGl0VGFyZ2V0Lk1vdmVQb2ludEJhY2tncm91bmQmJmUuaXNUb3VjaDtpZih0LnNlbGVjdGlvbk1hY3JvKCh0PT57bnVsbCE9PXMmJnI/dC5zZWxlY3Rpb24oKS5pc1NlbGVjdGVkKHMpfHwodC5jbGVhclNlbGVjdGlvbigpLHQuYWRkSXRlbVRvU2VsZWN0aW9uKHMsdW4oaSxzKSkpOih0aGlzLl9vcHRpb25zLmNvbnRleHRNZW51LmdlbmVyYWwmJnRoaXMuX3Nob3dDb250ZXh0TWVudShlKSx0LmNsZWFyU2VsZWN0aW9uKCkpfSkpLG51bGwhPT1pJiZyJiZudWxsIT09cylpZigoMCxBaS5pc0RhdGFTb3VyY2UpKHMpJiZzLmhhc0NvbnRleHRNZW51KCkpcy5pc1NlbGVjdGlvbkVuYWJsZWQoKT90aGlzLnNob3dDb250ZXh0TWVudUZvclNlbGVjdGlvbihlLHZvaWQgMCxpLmhpdHRlc3QpOnRoaXMuc2hvd0NvbnRleHRNZW51Rm9yU291cmNlcyhbc10sZSx2b2lkIDAsdm9pZCAwLGkuaGl0dGVzdCk7ZWxzZXtjb25zdCB0PXRoaXMuX3NvdXJjZVdhc1NlbGVjdGVkKGkpO2kuaGl0dGVzdC50cnlDYWxsQ29udGV4dE1lbnVIYW5kbGVyKGUse3NvdXJjZVdhc1NlbGVjdGVkOnR9KX19X29uTW91c2VFdmVudCgpe3RoaXMuX3ByZXZlbnRTb3VyY2VDaGFuZ2U9ITEsdGhpcy5fc3RhcnRUcmFja1BvaW50PW51bGwsdGhpcy5fdHJhY2tDcm9zc2hhaXJPbmx5QWZ0ZXJMb25nVGFwPSExfV9vblRvdWNoRXZlbnQoKXt0aGlzLl90cmFja0Nyb3NzaGFpck9ubHlBZnRlckxvbmdUYXA9ITB9X2xvY2FsQ29vcmRpbmF0ZXNUb0xpbmVEYXRhU291cmNlUG9pbnQoZSx0LGkpe2NvbnN0IHM9dGhpcy5zdGF0ZSgpLmRlZmF1bHRQcmljZVNjYWxlKCk7aWYocy5pc0VtcHR5KCkpcmV0dXJuIG51bGw7Y29uc3Qgbj1uZXcgUHQuUG9pbnQoZSx0KSxyPSgwLGwuZW5zdXJlKShpLmZpcnN0VmFsdWUoKSk7cmV0dXJuIG4ucHJpY2U9cy5jb29yZGluYXRlVG9QcmljZSh0LHIpLG4uaW5kZXg9TWF0aC5yb3VuZCh0aGlzLl9jaGFydFVuZG9Nb2RlbCgpLnRpbWVTY2FsZSgpLmNvb3JkaW5hdGVUb0luZGV4KGUpKSxufV9zd2l0Y2hUcmFja2luZ01vZGVGcm9tQW5vdGhlclBhbmVJZk5lZWRlZChlKXtjb25zdCB0PXRoaXMuX2NoYXJ0LnRyYWNraW5nTW9kZVBhbmVXaWRnZXQoKTtpZihudWxsIT09dCYmdCE9PXRoaXMpe2NvbnN0IGk9dGhpcy5fY2hhcnRNb2RlbCgpLmNyb3NzaGFpclNvdXJjZSgpLmN1cnJlbnRQb2ludCgpO3QuX2V4aXRUcmFja2luZ01vZGVPbk5leHRUcnk9ITAsdC5fdHJ5RXhpdFRyYWNraW5nTW9kZSghMCksCnRoaXMuc3RhcnRUcmFja2luZ01vZGUobmV3IFB0LlBvaW50KGUubG9jYWxYLGUubG9jYWxZKSxuZXcgUHQuUG9pbnQoaS54LGUubG9jYWxZKSxuZXcgTGkuRW52aXJvbm1lbnRTdGF0ZShlKSl9fWFzeW5jIF9zaG93Q29udGV4dE1lbnUoZSl7Y29uc3QgdD1lPT5lIGluc3RhbmNlb2YgZXMuU2VwYXJhdG9yLGk9dGhpcy5fY3VzdG9tQWN0aW9ucygpLHM9KGF3YWl0IHRoaXMuX2luaXRBY3Rpb25zKGUpKS5maWx0ZXIoKGU9Pm51bGwhPT1lKSk7aS5yZW1vdmUuZm9yRWFjaCgoZT0+e2ZvcihsZXQgdD0wO3Q8cy5sZW5ndGg7dCsrKXtjb25zdCBpPXNbdF07aWYoaSBpbnN0YW5jZW9mIGVzLkFjdGlvbiYmaS5nZXRMYWJlbCgpPT09ZSl7cy5zcGxpY2UodCwxKTticmVha319fSkpO2NvbnN0IG49aS50b3AuY29uY2F0KHMpLmNvbmNhdChpLmJvdHRvbSk7Zm9yKGxldCBlPW4ubGVuZ3RoLTE7ZT4wO2UtLSl0KG5bZV0pJiZ0KG5bZS0xXSkmJm4uc3BsaWNlKGUsMSk7bi5sZW5ndGgmJnQoblswXSkmJm4uc3BsaWNlKDAsMSksbi5sZW5ndGgmJnQobltuLmxlbmd0aC0xXSkmJm4uc3BsaWNlKG4ubGVuZ3RoLTEsMSksTmkuQ29udGV4dE1lbnVNYW5hZ2VyLnNob3dNZW51KG4sZSx7c3RhdE5hbWU6IkNoYXJ0Q29udGV4dE1lbnUifSx7bWVudU5hbWU6IkNoYXJ0Q29udGV4dE1lbnUifSl9YXN5bmMgX2luaXRBY3Rpb25zKGUpe2NvbnN0IHQ9dGhpcy5fY2hhcnQuYWN0aW9ucygpLGk9W107aWYodGhpcy5fY2hhcnQubW9kZWwoKS5tb2RlbCgpLnJlc2V0U2NhbGVzQXZhaWxhYmxlKCkudmFsdWUoKSYmKGkucHVzaCh0LmNoYXJ0UmVzZXQpLGkucHVzaChuZXcgZXMuU2VwYXJhdG9yKSksIXRoaXMuc3RhdGUoKS5pc0VtcHR5KCkmJigwLHEuaXNGZWF0dXJlc2V0RW5hYmxlZCkoImRhdGFzb3VyY2VfY29weXBhc3RlIikmJnRoaXMuc3RhdGUoKS5tb2RlKCk9PT1NLlBhbmVNb2RlLlJlZ3VsYXIpe2NvbnN0e2NyZWF0ZVBhc3RlQWN0aW9uOnQsY3JlYXRlQWN0aW9uQ29weVByaWNlOnN9PWF3YWl0KDAsc3MuYWN0aW9uc1Byb3ZpZGVyTW9kdWxlKSgpLG49cyh0aGlzLnN0YXRlKCksZS5sb2NhbFkpLHI9dCh0aGlzLl9jaGFydCx0aGlzLnN0YXRlKCkpOyhufHxyKSYmKG4mJmkucHVzaChuKSxyJiZpLnB1c2gociksaS5wdXNoKG5ldyBlcy5TZXBhcmF0b3IpKX1pZihHcy5hbGVydHNBdmFpbGFibGUmJnRoaXMuc3RhdGUoKS5tb2RlKCk9PT1NLlBhbmVNb2RlLlJlZ3VsYXImJihpLmxlbmd0aCYmaS5wdXNoKG5ldyBlcy5TZXBhcmF0b3IpLCgwLGwuZW5zdXJlTm90TnVsbCkodGhpcy5zdGF0ZSgpLm1haW5EYXRhU291cmNlKCkpLmFsZXJ0Q3JlYXRpb25BdmFpbGFibGUoKS52YWx1ZSgpKSl7Y29uc3QgdD0oYXdhaXQoMCxGcy5nZXRBbGVydHNDaGFydEFjdGlvbkNyZWF0b3JzKSgpKS5jcmVhdGVBbGVydCh0aGlzLl9jaGFydCx7bG9jYWxZOmUubG9jYWxZLHBhbmU6dGhpcy5zdGF0ZSgpfSk7bnVsbCE9PXQmJmkucHVzaCh0KX1pZih0aGlzLl9vcHRpb25zLmNvbnRleHRNZW51Lm1haW5TZXJpZXNUcmFkZSYmdGhpcy5jb250YWluc01haW5TZXJpZXMoKSl7Y29uc3R7Y3JlYXRlQWN0aW9uVHJhZGU6dH09YXdhaXQoMCxzcy5hY3Rpb25zUHJvdmlkZXJNb2R1bGUpKCkscz1hd2FpdCB0KHRoaXMuX2NoYXJ0LHRoaXMuX2NoYXJ0Lm9wdGlvbnMoKS5leHRlcm5hbFNlcnZpY2VzLnRyYWRpbmcsZSk7cyYmaS5wdXNoKC4uLnMpfWlbaS5sZW5ndGgtMV1pbnN0YW5jZW9mIGVzLlNlcGFyYXRvcnx8aS5wdXNoKG5ldyBlcy5TZXBhcmF0b3IpLHQubW92ZUNoYXJ0QWN0aW9uJiYhdC5tb3ZlQ2hhcnRBY3Rpb24uaXNEaXNhYmxlZCgpJiZpLnB1c2godC5tb3ZlQ2hhcnRBY3Rpb24sbmV3IGVzLlNlcGFyYXRvciksaS5wdXNoKHRoaXMuX2NyZWF0ZUxvY2tUaW1lQXhpc0FjdGlvbihlKSksaS5wdXNoKG5ldyBlcy5TZXBhcmF0b3IpO2NvbnN0IHM9dGhpcy5fY2hhcnQubW9kZWwoKS5tYWluU2VyaWVzKCkuc3ltYm9sSW5mbygpOygwLHpzLmlzVGFibGVWaWV3QWxsb3dlZEZvclN5bWJvbCkocykmJnQub3BlblRhYmxlVmlldyYmaS5wdXNoKHQub3BlblRhYmxlVmlldyksdC5wYW5lT2JqZWN0VHJlZSYmaS5wdXNoKHQucGFuZU9iamVjdFRyZWUpLHQuYXBwbHlDb2xvclRoZW1lJiZpLnB1c2godC5hcHBseUNvbG9yVGhlbWUpLGlbaS5sZW5ndGgtMV1pbnN0YW5jZW9mIGVzLlNlcGFyYXRvcnx8aS5wdXNoKG5ldyBlcy5TZXBhcmF0b3IpLHRoaXMuX2NoYXJ0LmFwcGx5SW5kaWNhdG9yc1RvQWxsQ2hhcnRzQXZhaWxhYmxlKCkmJihpLnB1c2godC5hcHBseVN0dWRpZXNUb0FsbENoYXJ0cyksaS5wdXNoKG5ldyBlcy5TZXBhcmF0b3IpKTtjb25zdCBuPXQucGFuZVJlbW92ZUFsbERyYXdpbmdUb29scy5nZXRTdGF0ZSgpLmRpc2FibGVkO258fGkucHVzaCh0LnBhbmVSZW1vdmVBbGxEcmF3aW5nVG9vbHMpO2NvbnN0IHI9dC5wYW5lUmVtb3ZlQWxsU3R1ZGllcy5nZXRTdGF0ZSgpLmRpc2FibGVkO3JldHVybiByfHxpLnB1c2godC5wYW5lUmVtb3ZlQWxsU3R1ZGllcyksbiYmcnx8aS5wdXNoKG5ldyBlcy5TZXBhcmF0b3IpLCgwLHEuaXNGZWF0dXJlc2V0RW5hYmxlZCkoInNob3dfY2hhcnRfcHJvcGVydHlfcGFnZSIpJiZpLnB1c2godC5jaGFydFByb3BlcnRpZXMpLGlbaS5sZW5ndGgtMV1pbnN0YW5jZW9mIGVzLlNlcGFyYXRvciYmaS5wb3AoKSxpfV9sb2FkQW5kQ3JlYXRlTGVnZW5kV2lkZ2V0KCl7ClByb21pc2UuYWxsKFtpLmUoNDk2NzcpLGkuZSg4NDMwNiksaS5lKDI5Mjk2KSxpLmUoNTIzOTYpLGkuZSg2MDA2MiksaS5lKDQ2OTA3KSxpLmUoMjAzNTQpLGkuZSgxMzQ5MiksaS5lKDM3NzQ2KSxpLmUoMTIzODUpLGkuZSg5NDk0OCksaS5lKDM2MjIyKSxpLmUoMjk1MzYpLGkuZSg5NDIzMiksaS5lKDMyODE2KSxpLmUoNTE4NCksaS5lKDU2MjUyKSxpLmUoMTE0NjEpLGkuZSgyNDU4MSksaS5lKDk2NTg3KSxpLmUoMTcwODcpLGkuZSg3MDgxNSksaS5lKDkzNDE2KSxpLmUoMTIwNTEpLGkuZSg1MjA5NSksaS5lKDQ0MDMxKSxpLmUoODkwNDQpLGkuZSg0Mzc5MiksaS5lKDc4NDA0KSxpLmUoNTI5MjApLGkuZSg2MjYwMCksaS5lKDc1MjE3KSxpLmUoOTg2OTYpLGkuZSg2NTY3NSksaS5lKDkwNzQxKSxpLmUoMzIzODcpLGkuZSgzMDY5OSksaS5lKDIzNzQzKSxpLmUoMTQ4ODkpLGkuZSg0MjIxMiksaS5lKDY4NzI1KSxpLmUoMzY5MzgpLGkuZSg2NzkzMCksaS5lKDY1NTg4KV0pLnRoZW4oaS5iaW5kKGksNjcxODE4KSkudGhlbigoZT0+e2lmKHRoaXMuX2lzRGVzdHJveWVkfHwhdGhpcy5fb3B0aW9ucy5sZWdlbmRXaWRnZXRFbmFibGVkfHx0aGlzLl9sZWdlbmRXaWRnZXQpcmV0dXJuO2NvbnN0IHQ9ZS5MZWdlbmRXaWRnZXQsaT0oMCx4aS5kZWVwRXh0ZW5kKSh7fSx0aGlzLl9vcHRpb25zLmxlZ2VuZFdpZGdldCk7aS5jYW5TaG93U291cmNlQ29kZT0hdGhpcy5fY2hhcnQub25XaWRnZXQoKSYmIUouQ2hlY2tNb2JpbGUuYW55KCksaS5yZWFkT25seU1vZGU9aS5yZWFkT25seU1vZGV8fHRoaXMuX2NoYXJ0LnJlYWRPbmx5KCksaS5zdGF0dXNlc1dpZGdldHM9e3NvdXJjZVN0YXR1c2VzRW5hYmxlZDp0aGlzLl9vcHRpb25zLnNvdXJjZVN0YXR1c2VzV2lkZ2V0RW5hYmxlZCxzb3VyY2VTdGF0dXNlczp0aGlzLl9vcHRpb25zLnNvdXJjZVN0YXR1c2VzV2lkZ2V0fHx7fSxtYXJrZXRTdGF0dXNFbmFibGVkOnRoaXMuX29wdGlvbnMubWFya2V0U3RhdHVzV2lkZ2V0RW5hYmxlZCxkYXRhVXBkYXRlTW9kZUVuYWJsZWQ6dGhpcy5fb3B0aW9ucy5jaGFydFdhcm5pbmdXaWRnZXRFbmFibGVkLGRhdGFVcGRhdGVNb2RlOnRoaXMuX29wdGlvbnMuY2hhcnRXYXJuaW5nV2lkZ2V0fHx7fSxkYXRhUHJvYmxlbUVuYWJsZWQ6dGhpcy5fb3B0aW9ucy5kYXRhUHJvYmxlbVdpZGdldEVuYWJsZWQscGluZVNvdXJjZVN0YXR1c0VuYWJsZWQ6dGhpcy5fb3B0aW9ucy5waW5lU291cmNlU3RhdHVzRW5hYmxlZCxhbGVydFN0YXR1c0VuYWJsZWQ6dGhpcy5fb3B0aW9ucy5hbGVydFN0YXR1c0VuYWJsZWR9O2NvbnN0IHM9KDAsdS5jb21iaW5lKSgoKGUsdCk9PmduJiZ0aGlzLl9jaGFydCE9PWUmJiF0KSx0aGlzLl9jaGFydC5jaGFydFdpZGdldENvbGxlY3Rpb24oKS5hY3RpdmVDaGFydFdpZGdldC53ZWFrUmVmZXJlbmNlKCksdGhpcy5fY2hhcnQuY2hhcnRXaWRnZXRDb2xsZWN0aW9uKCkubG9jay5jcm9zc2hhaXIud2Vha1JlZmVyZW5jZSgpKSxuPSgwLHUuY29tYmluZSkoKChlLHQpPT5udWxsIT09ZT9lPT09dGhpcy5fc3RhdGU6KDAsVC50b29sSXNNZWFzdXJlKSh0KSksdGhpcy5fY2hhcnRNb2RlbCgpLmNyb3NzaGFpclNvdXJjZSgpLm1lYXN1cmVQYW5lKCkud2Vha1JlZmVyZW5jZSgpLFQudG9vbC53ZWFrUmVmZXJlbmNlKCkpO3RoaXMuX2xlZ2VuZFdpZGdldD1uZXcgdCh0aGlzLl9jaGFydFVuZG9Nb2RlbCgpLHRoaXMsdGhpcy5fY2hhcnQuYmFja2dyb3VuZFRvcFRoZW1lKCkuc3Bhd25Pd25lcnNoaXAoKSxzLm93bmVyc2hpcCgpLHRoaXMuX3Zpc3VhbGx5Q29sbGFwc2VkLnNwYXduT3duZXJzaGlwKCksbi5vd25lcnNoaXAoKSxpLHtzaG93Q29udGV4dE1lbnVGb3JTZWxlY3Rpb246dGhpcy5zaG93Q29udGV4dE1lbnVGb3JTZWxlY3Rpb24uYmluZCh0aGlzKSxzaG93Q29udGV4dE1lbnVGb3JTb3VyY2VzOnRoaXMuc2hvd0NvbnRleHRNZW51Rm9yU291cmNlcy5iaW5kKHRoaXMpLHNob3dDaGFydFByb3BlcnRpZXNGb3JTb3VyY2U6dGhpcy5fY2hhcnQuc2hvd0NoYXJ0UHJvcGVydGllc0ZvclNvdXJjZS5iaW5kKHRoaXMuX2NoYXJ0KSxzaG93R2VuZXJhbENoYXJ0UHJvcGVydGllczp0aGlzLl9jaGFydC5zaG93R2VuZXJhbENoYXJ0UHJvcGVydGllcy5iaW5kKHRoaXMuX2NoYXJ0KSxzaG93T2JqZWN0c1RyZWVEaWFsb2c6dGhpcy5fY2hhcnQuc2hvd09iamVjdHNUcmVlRGlhbG9nLmJpbmQodGhpcy5fY2hhcnQpLG9uTGVnZW5kUm93Rm9jdXNlZDooKT0+e3RoaXMuX2NoYXJ0LmNoYXJ0V2lkZ2V0Q29sbGVjdGlvbigpLmFjdGl2ZUNoYXJ0V2lkZ2V0LnNldFZhbHVlKHRoaXMuX2NoYXJ0KX19KTtjb25zdCByPXRoaXMuX2xlZ2VuZFdpZGdldC5nZXRFbGVtZW50KCk7ci5jbGFzc0xpc3QuYWRkKCJjaGFydC1ndWktd3JhcHBlcl9fbGVnZW5kIiksdGhpcy5fZGl2LnByZXBlbmQociksdGhpcy5fbGVnZW5kV2lkZ2V0LnVwZGF0ZUxheW91dCgpLHRoaXMuX2xlZ2VuZFdpZGdldC51cGRhdGVXaWRnZXRNb2RlQnlTaXplKHRoaXMuX3NpemUpLHRoaXMuX2xlZ2VuZFdpZGdldC51cGRhdGVUaGVtZWRDb2xvcnModGhpcy5fdGhlbWVkVG9wQ29sb3IpO2Zvcihjb25zdCBlIG9mIEFycmF5LmZyb20odGhpcy5fY3VzdG9tTGVnZW5kV2lkZ2V0c0ZhY3RvcnlNYXAua2V5cygpKSl0aGlzLl9sZWdlbmRXaWRnZXQuYWRkQ3VzdG9tV2lkZ2V0VG9MZWdlbmQoZSwoMCxsLmVuc3VyZURlZmluZWQpKHRoaXMuX2N1c3RvbUxlZ2VuZFdpZGdldHNGYWN0b3J5TWFwLmdldChlKSkpfSkpfV9sb2FkQW5kQ3JlYXRlUGFuZUNvbnRyb2xzV2lkZ2V0KGUpewpQcm9taXNlLmFsbChbaS5lKDQ5Njc3KSxpLmUoODQzMDYpLGkuZSgyOTI5NiksaS5lKDUyMzk2KSxpLmUoNjAwNjIpLGkuZSg0NjkwNyksaS5lKDIwMzU0KSxpLmUoMTM0OTIpLGkuZSgzNzc0NiksaS5lKDEyMzg1KSxpLmUoOTQ5NDgpLGkuZSgzNjIyMiksaS5lKDI5NTM2KSxpLmUoOTQyMzIpLGkuZSgzMjgxNiksaS5lKDUxODQpLGkuZSg1NjI1MiksaS5lKDExNDYxKSxpLmUoMjQ1ODEpLGkuZSg5NjU4NyksaS5lKDE3MDg3KSxpLmUoNzA4MTUpLGkuZSg5MzQxNiksaS5lKDEyMDUxKSxpLmUoNTIwOTUpLGkuZSg0NDAzMSksaS5lKDg5MDQ0KSxpLmUoNDM3OTIpLGkuZSg3ODQwNCksaS5lKDUyOTIwKSxpLmUoNjI2MDApLGkuZSg3NTIxNyksaS5lKDk4Njk2KSxpLmUoNjU2NzUpLGkuZSg5MDc0MSksaS5lKDMyMzg3KSxpLmUoMzA2OTkpLGkuZSgyMzc0MyksaS5lKDE0ODg5KSxpLmUoNDIyMTIpLGkuZSg2ODcyNSksaS5lKDM2OTM4KSxpLmUoNjc5MzApLGkuZSg2NTU4OCldKS50aGVuKGkuYmluZChpLDI5NzcwNykpLnRoZW4oKHQ9PntpZih0aGlzLl9pc0Rlc3Ryb3llZHx8dGhpcy5fc3RhdGUhPT1lKXJldHVybjtjb25zdCBpPXQuUGFuZUNvbnRyb2xzV2lkZ2V0O3RoaXMuX3BhbmVDb250cm9scz1uZXcgaSh0aGlzLl9jaGFydFVuZG9Nb2RlbCgpLGUse2JhY2tncm91bmRUaGVtZU5hbWU6dGhpcy5fY2hhcnQuYmFja2dyb3VuZFRvcFRoZW1lKCksYW55U2VwYXJhdG9yU2VsZWN0ZWQ6dGhpcy5fYW55U2VwYXJhdG9yU2VsZWN0ZWQud2Vha1JlZmVyZW5jZSgpfSx0aGlzLl9kaXYpLHRoaXMuX3BhbmVDb250cm9scy51cGRhdGVXaWRnZXRNb2RlQnlXaWR0aCh0aGlzLl9zaXplLndpZHRoKSx0aGlzLl9wYW5lQ29udHJvbHMudXBkYXRlVGhlbWVkQ29sb3JzKHRoaXMuX3RoZW1lZFRvcENvbG9yKSx0aGlzLl9wYW5lQ29udHJvbHNSZXNpemVPYnNlcnZlcj1uZXcgUmVzaXplT2JzZXJ2ZXIodGhpcy5faGFuZGxlUmVzdHJpY3RMZWdlbmRXaWR0aC5iaW5kKHRoaXMpKSx0aGlzLl9wYW5lQ29udHJvbHNSZXNpemVPYnNlcnZlci5vYnNlcnZlKHRoaXMuX3BhbmVDb250cm9scy5nZXRFbGVtZW50KCkpLHRoaXMuX3BhbmVDb250cm9scy5nZXRFbGVtZW50KCkuY2xhc3NMaXN0LmFkZCgiY2hhcnQtZ3VpLXdyYXBwZXJfX3BhbmVDb250cm9scyIpLHRoaXMuX3N0YXRlPy5jb2xsYXBzZWQoKS52YWx1ZSgpJiZ0aGlzLl9jaGFydE1vZGVsKCkuZnVsbFVwZGF0ZSgpfSkpfV9oYW5kbGVSZXN0cmljdExlZ2VuZFdpZHRoKGUpe251bGwhPT10aGlzLl9sZWdlbmRXaWRnZXQmJm51bGwhPT10aGlzLl9wYW5lQ29udHJvbHMmJnRoaXMuX2xlZ2VuZFdpZGdldC5hZGRNYXJnaW4oZVtlLmxlbmd0aC0xXS5jb250ZW50UmVjdC53aWR0aCl9X29uTWFnbmV0U3RhdGVDaGFuZ2VkKCl7dGhpcy5fY2hhcnQuaXNBY3RpdmUoKS52YWx1ZSgpJiYodGhpcy5faXNTZWxlY3RQb2ludE1vZGVFbmFibGVkKCl8fHRoaXMuX2lzVG9vbEFjdGlvbkFjdGl2ZU9uUGFuZSghMCkpJiZ0aGlzLl9jaGFydE1vZGVsKCkuY3Jvc3NoYWlyU291cmNlKCkudmlzaWJsZSYmdGhpcy5fdXBkYXRlTGluZVRvb2xVc2luZ01hZ25ldE9yU2hpZnQoKX1fb25TaGlmdEtleVN0YXRlQ2hhbmdlZCgpe3RoaXMuX2NoYXJ0LmlzQWN0aXZlKCkudmFsdWUoKSYmdGhpcy5faXNUb29sQWN0aW9uQWN0aXZlT25QYW5lKCExKSYmdGhpcy5fY2hhcnRNb2RlbCgpLmNyb3NzaGFpclNvdXJjZSgpLnZpc2libGUmJnRoaXMuX3VwZGF0ZUxpbmVUb29sVXNpbmdNYWduZXRPclNoaWZ0KExpLkVudmlyb25tZW50U3RhdGUuY3JlYXRlKCgwLFh0LnNoaWZ0UHJlc3NlZCkoKS52YWx1ZSgpKSl9X2lzVG9vbEFjdGlvbkFjdGl2ZU9uUGFuZShlKXtjb25zdCB0PXRoaXMuX2NoYXJ0TW9kZWwoKSxpPXQubGluZUJlaW5nQ3JlYXRlZCgpfHx0LmxpbmVCZWluZ0VkaXRlZCgpfHx0LnNvdXJjZXNCZWluZ01vdmVkKCkubGVuZ3RoPjAmJnQuc291cmNlc0JlaW5nTW92ZWQoKVswXTtyZXR1cm4gaT90LnBhbmVGb3JTb3VyY2UoaSk9PT10aGlzLl9zdGF0ZTplJiYoMCxtLmlzTGluZVRvb2xOYW1lKShULnRvb2wudmFsdWUoKSkmJnQuY3Jvc3NoYWlyU291cmNlKCkucGFuZT09PXRoaXMuX3N0YXRlfV91cGRhdGVMaW5lVG9vbFVzaW5nTWFnbmV0T3JTaGlmdChlKXtpZihudWxsPT09dGhpcy5fcHJldk1vdmVFdmVudFBvc2l0aW9uKXJldHVybjtjb25zdHt4OnQseTppfT10aGlzLl9wcmV2TW92ZUV2ZW50UG9zaXRpb24scz10aGlzLl9jaGFydE1vZGVsKCkuc291cmNlc0JlaW5nTW92ZWQoKTtzLmxlbmd0aD4wPyhULmlzU3R1ZHlFZGl0aW5nTm93LnZhbHVlKCkmJnRoaXMuc2V0Q3Vyc29yUG9zaXRpb24odCxpLGUpLHRoaXMuX2FsaWduU291cmNlc1RoYXRCZWluZ01vdmVkKHMsdCxpLGUpKTp0aGlzLnNldEN1cnNvclBvc2l0aW9uKHQsaSxlKX1fc2hvd0VkaXREaWFsb2dGb3JTb3VyY2UoZSx0KXtpZih0aGlzLl9vcHRpb25zLnByb3BlcnR5UGFnZXNFbmFibGVkJiZlLnVzZXJFZGl0RW5hYmxlZCgpKWlmKGU9PT10aGlzLl9jaGFydFVuZG9Nb2RlbCgpLm1haW5TZXJpZXMoKSl0aGlzLl9jaGFydC5zaG93R2VuZXJhbENoYXJ0UHJvcGVydGllcyhKdC5UYWJOYW1lcy5zeW1ib2wpO2Vsc2UgaWYoKDAscmkuaXNMaW5lVG9vbCkoZSl8fCgwLHRpLmlzU3R1ZHkpKGUpfHxzaShlKSl7bGV0IGk7Y29uc3Qgcz10Py5kYXRhKCk7aWYobnVsbCE9cyl7Y29uc3QgZT1zLmFyZWFOYW1lO3ZvaWQgMCE9PWUmJihpPW1uLmdldChlKSl9dGhpcy5fY2hhcnQuc2hvd0NoYXJ0UHJvcGVydGllc0ZvclNvdXJjZShlLGkpLnRoZW4oKGU9Pnt0aGlzLl9lZGl0RGlhbG9nPWV9KSl9fV9pbml0VG9vbENyZWF0aW9uTW9kZVBhcmFtcyhlKXt0aGlzLl9zdGFydFRvdWNoUG9pbnQ9bmV3IFB0LlBvaW50KGUucGFnZVgsZS5wYWdlWSksdGhpcy5faW5pdENyb3NzSGFpclBvc2l0aW9uPXRoaXMuX2NoYXJ0TW9kZWwoKS5jcm9zc2hhaXJTb3VyY2UoKS5jdXJyZW50UG9pbnQoKX1fdXBkYXRlQ3Jvc3NoYWlyUG9zaXRpb25JblRvb2xDcmVhdGlvbk1vZGUoZSx0KXtpZih0IT09dGhpcy5fc3RhdGUpewpjb25zdCBpPXRoaXMuX2NoYXJ0LnBhbmVCeVN0YXRlKHQpO3JldHVybiBpLl9zdGFydFRvdWNoUG9pbnQ9dGhpcy5fc3RhcnRUb3VjaFBvaW50LGkuX2luaXRDcm9zc0hhaXJQb3NpdGlvbj10aGlzLl9pbml0Q3Jvc3NIYWlyUG9zaXRpb24sdm9pZCBpLl91cGRhdGVDcm9zc2hhaXJQb3NpdGlvbkluVG9vbENyZWF0aW9uTW9kZShlLHQpfWNvbnN0IGk9dGhpcy5fY2hhcnRNb2RlbCgpLmNyb3NzaGFpclNvdXJjZSgpO3RoaXMuX2NoYXJ0Lmp1c3RBY3RpdmF0ZWQoKSYmKHRoaXMuX2luaXRDcm9zc0hhaXJQb3NpdGlvbj1pLmN1cnJlbnRQb2ludCgpKTtjb25zdCBzPWUucGFnZVgsbj1lLnBhZ2VZLHI9KDAsbC5lbnN1cmVOb3ROdWxsKSh0aGlzLl9pbml0Q3Jvc3NIYWlyUG9zaXRpb24pLG89bmV3IFB0LlBvaW50KHMsbikuc3VidHJhY3QoKDAsbC5lbnN1cmVOb3ROdWxsKSh0aGlzLl9zdGFydFRvdWNoUG9pbnQpKSxhPXIuYWRkKG8pO3RoaXMuc2V0Q3Vyc29yUG9zaXRpb24oYS54LGEueSxuZXcgTGkuRW52aXJvbm1lbnRTdGF0ZShlKSl9X3ByaWNlQXhpc2VzQ29udGFpbmVyKGUpe3JldHVybiJsZWZ0Ij09PWU/dGhpcy5fbGhzUHJpY2VBeGlzZXNDb250YWluZXI6dGhpcy5fcmhzUHJpY2VBeGlzZXNDb250YWluZXJ9X3JlY2FsY3VsYXRlUHJpY2VTY2FsZXMoZSl7Y29uc3QgdD10aGlzLnN0YXRlKCk7Zm9yKGNvbnN0IGkgb2YgdC5sZWZ0UHJpY2VTY2FsZXMoKSl0LnJlY2FsY3VsYXRlUHJpY2VTY2FsZShpLGUpO2Zvcihjb25zdCBpIG9mIHQucmlnaHRQcmljZVNjYWxlcygpKXQucmVjYWxjdWxhdGVQcmljZVNjYWxlKGksZSk7Zm9yKGNvbnN0IGkgb2YgdC5zb3VyY2VzQnlHcm91cCgpLm92ZXJsYXlQcmljZVNjYWxlU291cmNlcygpKSgwLHJpLmlzTGluZVRvb2wpKGkpfHx0LnJlY2FsY3VsYXRlUHJpY2VTY2FsZShpLnByaWNlU2NhbGUoKSxlKX1fY3JlYXRlTG9ja1RpbWVBeGlzQWN0aW9uKGUpe2NvbnN0IHQ9MD09PVQuY3Jvc3NoYWlyTG9jay52YWx1ZSgpPy50eXBlO3JldHVybiBuZXcgZXMuQWN0aW9uKHthY3Rpb25JZDoiQ2hhcnQuQ3Jvc3NoYWlyLkxvY2tWZXJ0aWNhbEN1cnNvciIsb3B0aW9uczp7bGFiZWw6bm4sc3RhdE5hbWU6IkxvY2tDdXJzb3JJblRpbWUiLGNoZWNrYWJsZTohMCxjaGVja2VkOnQsb25FeGVjdXRlOigpPT50aGlzLl90b2dnbGVMb2NrVGltZUF4aXMoZS5sb2NhbFgsIXQpfX0pfV90b2dnbGVMb2NrVGltZUF4aXMoZSx0KXtpZih0KXtjb25zdCB0PXRoaXMuX2NoYXJ0VW5kb01vZGVsKCkudGltZVNjYWxlKCksaT10LmNvb3JkaW5hdGVUb0luZGV4KGUpLHM9dC5wb2ludHMoKS5yb3VnaFRpbWUoaSk7aWYobnVsbCE9PXMpcmV0dXJuIHZvaWQgVC5jcm9zc2hhaXJMb2NrLnNldFZhbHVlKHt0eXBlOjAsdGltZTpzfSl9VC5jcm9zc2hhaXJMb2NrLnNldFZhbHVlKG51bGwpfV9wcmV2ZW50VG91Y2hFdmVudHNFeGNlcHRQaW5jaCgpe3JldHVybiB0aGlzLl9wYW5lV2lkZ2V0c1NoYXJlZFN0YXRlLmhhc1RvdWNoZXNPbk90aGVyUGFuZXModGhpcyl8fG51bGwhPT10aGlzLl9wYW5lV2lkZ2V0c1NoYXJlZFN0YXRlLnBpbmNoaW5nUGFuZSgpfV91cGRhdGVIb3ZlcmVkU291cmNlKGUsdCxpKXtjb25zdCBzPXRoaXMuX2NoYXJ0VW5kb01vZGVsKCksbj1zLm1vZGVsKCk7bGV0IHI9ITE7Y29uc3Qgbz1lJiZlLnNvdXJjZSxhPXRoaXMuX2NoYXJ0LnJlYWRPbmx5KCk7aWYobi5jcm9zc2hhaXJTb3VyY2UoKS5pc1JlcGxheVNlbGVjdGlvbigpKXRoaXMuX3NldEN1cnNvckNsYXNzTmFtZSgibm9uZSIpO2Vsc2UgaWYoISghYXx8ZSYmKDAscmkuaXNMaW5lVG9vbCkoZS5zb3VyY2UpKXx8dGhpcy5fZWRpdERpYWxvZyYmdGhpcy5fZWRpdERpYWxvZy52aXNpYmxlKCkudmFsdWUoKSlhJiYobi5zZXRIb3ZlcmVkU291cmNlKG51bGwsbnVsbCksdGhpcy5zZXRDdXJzb3JGb3JUb29sKCkpO2Vsc2V7Y29uc3QgbD1ULnRvb2wudmFsdWUoKTtsZXQgYz1udWxsO2lmKCF0aGlzLl9wcm9jZXNzaW5nJiYoKDAsVC50b29sSXNDdXJzb3IpKGwpfHwoMCxULnRvb2xJc0VyYXNlcikobCkmJiFhfHx0Lm1vZCgpfHwhcy5saW5lQmVpbmdDcmVhdGVkKCkpKXtjb25zdCB0PWU/LmhpdHRlc3Q7cj1Cb29sZWFuKHQ/LmRhdGEoKT8uaGlkZUNyb3NzaGFpckxpbmVzT25Ib3ZlciksdCYmdC50YXJnZXQoKT5NaS5IaXRUYXJnZXQuTW92ZVBvaW50QmFja2dyb3VuZD8oYz1vLCFvPy5pc0hvdmVyZWRFbmFibGVkKCl8fCgwLFQudG9vbElzRXJhc2VyKShsKSYmbz09PXMubWFpblNlcmllcygpP24uc2V0SG92ZXJlZFNvdXJjZShudWxsLG51bGwpOm4uc2V0SG92ZXJlZFNvdXJjZShvLHQuZGF0YSgpLDApKTpuLnNldEhvdmVyZWRTb3VyY2UobnVsbCxudWxsKX1hP3RoaXMuc2V0Q3Vyc29yRm9yVG9vbChjLHQsWXMuUGFuZUN1cnNvclR5cGUuRGVmYXVsdCk6dGhpcy5fb3B0aW9ucy5zb3VyY2VTZWxlY3Rpb25FbmFibGVkJiYodGhpcy5faXNTZWxlY3RQb2ludE1vZGVFbmFibGVkKCk/dGhpcy5fc2V0Q3Vyc29yQ2xhc3NOYW1lKCJwb2ludGVyIik6dGhpcy5zZXRDdXJzb3JGb3JUb29sKGMsdCxlPy5oaXR0ZXN0LmRhdGEoKT8uY3Vyc29yVHlwZSkpO2NvbnN0IGg9bi5jdXN0b21Tb3VyY2VCZWluZ01vdmVkKCksZD1udWxsIT09aD9baF06bi5zb3VyY2VzQmVpbmdNb3ZlZCgpO2lmKCghZC5sZW5ndGh8fG51bGwhPT1lJiYtMT09PWQuaW5kZXhPZihlLnNvdXJjZSkpJiZ0aGlzLl91cGRhdGVDb21tb25Ub29sdGlwKGUpLCFhJiZudWxsIT09ZSYmaSYmZS5oaXR0ZXN0Lmhhc1ByZXNzZWRNb3ZlSGFuZGxlcihpKSl7c3dpdGNoKChlLmhpdHRlc3QuZGF0YSgpfHx7fSkuY3Vyc29yVHlwZSl7Y2FzZSBZcy5QYW5lQ3Vyc29yVHlwZS5WZXJ0aWNhbFJlc2l6ZTp0aGlzLl9zZXRDdXJzb3JDbGFzc05hbWUoIm5zLXJlc2l6ZSIpO2JyZWFrO2Nhc2UgWXMuUGFuZUN1cnNvclR5cGUuSG9yaXpvbnRhbFJlc2l6ZTp0aGlzLl9zZXRDdXJzb3JDbGFzc05hbWUoIndlLXJlc2l6ZSIpO2JyZWFrO2Nhc2UgWXMuUGFuZUN1cnNvclR5cGUuRGlhZ29uYWxOZVN3UmVzaXplOnRoaXMuX3NldEN1cnNvckNsYXNzTmFtZSgibmVzdy1yZXNpemUiKQo7YnJlYWs7Y2FzZSBZcy5QYW5lQ3Vyc29yVHlwZS5EaWFnb25hbE53U2VSZXNpemU6dGhpcy5fc2V0Q3Vyc29yQ2xhc3NOYW1lKCJud3NlLXJlc2l6ZSIpfX19dGhpcy5fcHJldmVudENyb3NzSGFpck1vdmUoKSYmdGhpcy5fY2xlYXJDdXJzb3JQb3NpdGlvbigpLDEhPT10aGlzLl9wcmVzc2VkTW92ZVN0YWdlJiZuLmNyb3NzaGFpclNvdXJjZSgpLnNldExpbmVzU2hvdWxkQmVIaWRkZW4ocil9YXN5bmMgX2NyZWF0ZUVycm9yQmxvY2soKXtyZXR1cm4gbmV3KGF3YWl0KDAsWHMuZ2V0RXJyb3JDYXJkUmVuZGVyZXIpKCkpfV9jdXN0b21BY3Rpb25zKCl7Y29uc3QgZT17dG9wOltdLGJvdHRvbTpbXSxyZW1vdmU6W119LHQ9dGhpcy5fY2hhcnRVbmRvTW9kZWwoKS50aW1lU2NhbGUoKSxpPXRoaXMuX3N0YXRlJiZ0aGlzLl9zdGF0ZS5kZWZhdWx0UHJpY2VTY2FsZSgpO2lmKCEoMCxxLmlzRmVhdHVyZXNldEVuYWJsZWQpKCJjdXN0b21faXRlbXNfaW5fY29udGV4dF9tZW51IikpcmV0dXJuIGU7Y29uc3Qgcz10LmlzRW1wdHkoKT92b2lkIDA6dC5pbmRleFRvVXNlclRpbWUodC5jb29yZGluYXRlVG9JbmRleCh0aGlzLl9jb250ZXh0TWVudVgpKTtsZXQgbjtpZihpJiYhaS5pc0VtcHR5KCkpe2NvbnN0IGU9KDAsbC5lbnN1cmVOb3ROdWxsKSh0aGlzLnN0YXRlKCkubWFpbkRhdGFTb3VyY2UoKSkuZmlyc3RWYWx1ZSgpO249aS5jb29yZGluYXRlVG9QcmljZSh0aGlzLl9jb250ZXh0TWVudVksKDAsbC5lbnN1cmVOb3ROdWxsKShlKSl9cmV0dXJuKDAsJC5lbWl0KSgib25Db250ZXh0TWVudSIse3VuaXh0aW1lOm51bGwhPXM/cy5nZXRUaW1lKCkvMWUzOnZvaWQgMCxwcmljZTpuLGNhbGxiYWNrOnQ9PntbLi4udF0uZm9yRWFjaCgodD0+e2lmKHQudGV4dClpZih0LnRleHQubGVuZ3RoPjEmJiItIj09PXQudGV4dFswXSllLnJlbW92ZS5wdXNoKHQudGV4dC5zbGljZSgxKSk7ZWxzZXtsZXQgaTtpPSItIj09PXQudGV4dD9uZXcgZXMuU2VwYXJhdG9yOm5ldyBlcy5BY3Rpb24oe2FjdGlvbklkOiJDaGFydC5FeHRlcm5hbEFjdGlvbklkIixvcHRpb25zOntsYWJlbDp0LnRleHQsb25FeGVjdXRlOnQuY2xpY2t9fSksdC5wb3NpdGlvbiYmInRvcCI9PT10LnBvc2l0aW9uP2UudG9wLnB1c2goaSk6ZS5ib3R0b20ucHVzaChpKX19KSl9fSksZX1faGlnaGxpZ2h0UHJpY2VBeGlzZXNCeUxhYmVsKGUpe3RoaXMuX3N0YXRlPy5tb2RlKCk9PT1NLlBhbmVNb2RlLlJlZ3VsYXImJih0aGlzLl9saHNQcmljZUF4aXNlc0NvbnRhaW5lci5zZXRIaWdobGlnaHRlZFByaWNlQXhpc2VzKGUpLHRoaXMuX3Joc1ByaWNlQXhpc2VzQ29udGFpbmVyLnNldEhpZ2hsaWdodGVkUHJpY2VBeGlzZXMoZSkpfV9zdWJzY3JpYmVUb1N0YXRlKCl7Y29uc3QgZT10aGlzLnN0YXRlKCk7ZS5vbkRlc3Ryb3llZCgpLnN1YnNjcmliZSh0aGlzLHRoaXMuX29uU3RhdGVEZXN0cm95ZWQsITApLGUuZGF0YVNvdXJjZXNDb2xsZWN0aW9uQ2hhbmdlZCgpLnN1YnNjcmliZSh0aGlzLHRoaXMuX29uRGF0YVNvdXJjZXNDb2xsZWN0aW9uQ2hhbmdlZCksZS5tYXhpbWl6ZWQoKS5zdWJzY3JpYmUodGhpcy5fdXBkYXRlVmlzdWFsbHlDb2xsYXBzZWQse2NhbGxXaXRoTGFzdDohMH0pLGUuY29sbGFwc2VkKCkuc3Vic2NyaWJlKHRoaXMuX3VwZGF0ZVZpc3VhbGx5Q29sbGFwc2VkLHtjYWxsV2l0aExhc3Q6ITB9KSxlLm1heGltaXplZCgpLnN1YnNjcmliZSh0aGlzLl91cGRhdGVNYXhpbWl6ZWQse2NhbGxXaXRoTGFzdDohMH0pfV91bnN1YnNjcmliZUZyb21TdGF0ZSgpe2NvbnN0IGU9dGhpcy5zdGF0ZSgpO2Uub25EZXN0cm95ZWQoKS51bnN1YnNjcmliZUFsbCh0aGlzKSxlLmRhdGFTb3VyY2VzQ29sbGVjdGlvbkNoYW5nZWQoKS51bnN1YnNjcmliZUFsbCh0aGlzKSxlLm1heGltaXplZCgpLnVuc3Vic2NyaWJlKHRoaXMuX3VwZGF0ZVZpc3VhbGx5Q29sbGFwc2VkKSxlLmNvbGxhcHNlZCgpLnVuc3Vic2NyaWJlKHRoaXMuX3VwZGF0ZVZpc3VhbGx5Q29sbGFwc2VkKSxlLm1heGltaXplZCgpLnVuc3Vic2NyaWJlKHRoaXMuX3VwZGF0ZU1heGltaXplZCksdGhpcy5fbWF4aW1pemVkLnNldFZhbHVlKCExKX1fdXBkYXRlQWNjZXNzaWJpbGl0eUF0dHIoKXtpZih0aGlzLmhhc1N0YXRlKCkmJnRoaXMuc3RhdGUoKS5pc01haW5QYW5lKCkudmFsdWUoKSl7Y29uc3QgZT10aGlzLl9jaGFydE1vZGVsKCkubWFpblNlcmllcygpLHQ9ZS5zeW1ib2woKSxzPSgwLEkuZ2V0VHJhbnNsYXRlZFJlc29sdXRpb25Nb2RlbCkoZS5pbnRlcnZhbCgpKS5oaW50LG49cC50KG51bGwse3JlcGxhY2U6e3N5bWJvbDp0LGludGVydmFsOnN9fSxpKDYyODQzMCkpO3RoaXMuX3RvcENhbnZhc0JpbmRpbmcuY2FudmFzRWxlbWVudC5zZXRBdHRyaWJ1dGUoImFyaWEtbGFiZWwiLG4pfWVsc2UgdGhpcy5fdG9wQ2FudmFzQmluZGluZy5jYW52YXNFbGVtZW50LnNldEF0dHJpYnV0ZSgiYXJpYS1oaWRkZW4iLCJ0cnVlIil9YXN5bmMgX3VwZGF0ZUVuZE9mU2VyaWVzQmFubmVyKCl7e2NvbnN0IGU9KCk9PntpZih3aW5kb3cudXNlci5pc19wcm8pcmV0dXJuIG51bGw7Y29uc3QgZT10aGlzLl9zdGF0ZTtpZighZSlyZXR1cm4gdGhpcy5fZW5kT2ZTZXJpZXNEYXRhQmFubmVyPy5zZXRWaXNpYmxlKCExKSxudWxsO2lmKCF0aGlzLl9jaGFydC5pc0FjdGl2ZSgpLnZhbHVlKCkpcmV0dXJuIG51bGw7Y29uc3QgdD1lLm1vZGVsKCkubWFpblNlcmllcygpO2lmKCF0KXJldHVybiBudWxsO2lmKCFlLmlzTWFpblBhbmUoKS52YWx1ZSgpKXJldHVybiBudWxsO2lmKDI9PT10LnN0YXR1cygpfHx0LnJlcXVlc3RNb3JlRGF0YUF2YWlsYWJsZSgpKXJldHVybiB0aGlzLl9lbmRPZlNlcmllc0RhdGFCYW5uZXI/LnNldFZpc2libGUoITEpLG51bGw7Y29uc3QgaT10LmJhcnMoKS5maXJzdEluZGV4KCk7cmV0dXJuIG51bGw9PT1pP251bGw6e3N0YXRlOmUsc2VyaWVzOnQsZmlyc3RJbmRleDppfX0sdD0oKT0+e2lmKHRoaXMuX2xlZ2VuZFdpZGdldCl7Y29uc3QgZT10aGlzLl9sZWdlbmRXaWRnZXQuZ2V0RWxlbWVudCgpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3JldHVybiBlLmJvdHRvbS1lLnRvcH1yZXR1cm4gMH0KO2xldCBzPWUoKTtpZighc3x8ImVuZCI9PT1zLnNlcmllcy5lbmRPZkRhdGFUeXBlKCkpcmV0dXJuIHZvaWQgdGhpcy5fZW5kT2ZTZXJpZXNEYXRhQmFubmVyPy5zZXRWaXNpYmxlKCExKTtzLnNlcmllcy5kb05vdFNob3dMYXN0QXZhaWxhYmxlQmFyKCExKTtjb25zdCBuPXMuc2VyaWVzLmVuZE9mRGF0YVR5cGUoKSxyPSgwLGwuZW5zdXJlTm90TnVsbCkodGhpcy5fc3RhdGUpLm1vZGVsKCkudGltZVNjYWxlKCkuaW5kZXhUb0Nvb3JkaW5hdGUocy5maXJzdEluZGV4KS1zLnN0YXRlLm1vZGVsKCkudGltZVNjYWxlKCkuYmFyU3BhY2luZygpO2lmKCF0aGlzLl9lbmRPZlNlcmllc0RhdGFCYW5uZXImJiEoMCxxLmlzRmVhdHVyZXNldEVuYWJsZWQpKCJ3aWRnZXQiKSl7Y29uc3QgdD1hd2FpdCBQcm9taXNlLmFsbChbaS5lKDczMTEpLGkuZSg4NDMwNiksaS5lKDI5Mjk2KSxpLmUoNTIzOTYpLGkuZSg2MDA2MiksaS5lKDIwMzU0KSxpLmUoMTM0OTIpLGkuZSgzNzc0NiksaS5lKDk0MjMyKSxpLmUoNTE4NCksaS5lKDEyMDUxKSxpLmUoMzgyNjIpLGkuZSg3NDI3MyksaS5lKDMyMzg3KSxpLmUoMzk2MDkpLGkuZSg5MTgzMyldKS50aGVuKGkuYmluZChpLDMxOTEyNikpO2lmKHM9ZSgpLCFzKXJldHVybjt0aGlzLl9lbmRPZlNlcmllc0RhdGFCYW5uZXJ8fCh0aGlzLl9lbmRPZlNlcmllc0RhdGFCYW5uZXI9bmV3IHQuRW5kT2ZTZXJpZXNCYW5uZXIsdGhpcy5fZGl2LmFwcGVuZENoaWxkKHRoaXMuX2VuZE9mU2VyaWVzRGF0YUJhbm5lci5lbGVtZW50KCkpKX1jb25zdCBvPXQoKTt0aGlzLl9lbmRPZlNlcmllc0RhdGFCYW5uZXI/LnNldFZpc2libGUoITApLHRoaXMuX2VuZE9mU2VyaWVzRGF0YUJhbm5lcj8udXBkYXRlKHMuc3RhdGUsbyxyLG4pO2NvbnN0IGE9dGhpcy5fZW5kT2ZTZXJpZXNEYXRhQmFubmVyPy5jdXJyZW50U2l6ZSgpO3Muc2VyaWVzLmRvTm90U2hvd0xhc3RBdmFpbGFibGVCYXIobnVsbCE9PWEmJjAhPT1hKX19X3BhbmVEYmxDbGlja09yVGFwRXZlbnQoZSl7aWYodGhpcy5fY2hhcnQucmVhZE9ubHkoKSlyZXR1cm47Y29uc3QgdD10aGlzLl9kYXRhU291cmNlQXRQb2ludChlLmxvY2FsWCxlLmxvY2FsWSk7aWYobnVsbCE9PXQmJigwLHJpLmlzRWRpdGFibGVUZXh0TGluZVRvb2wpKHQuc291cmNlKSl7Y29uc3QgZT10LnNvdXJjZS50ZXh0RWRpdGluZ0FjdGl2YXRpb25UaW1lKCk7bnVsbCE9PWUmJnBlcmZvcm1hbmNlLm5vdygpLWU8NTAwJiZ0aGlzLnByb2Nlc3NEb3VibGVDbGlja09uU291cmNlKHQuc291cmNlLHQuaGl0dGVzdCl9fX1jbGFzcyB3bntjb25zdHJ1Y3Rvcigpe3RoaXMuX2RyYWdnaW5nU291cmNlPW51bGwsdGhpcy5fYWN0aXZlVG91Y2hQYW5lcz1uZXcgU2V0LHRoaXMuX3Njcm9sbGluZ1BhbmU9bnVsbCx0aGlzLl9waW5jaGluZ1BhbmU9bnVsbH1vblBhbmVEZXN0cm95ZWQoZSl7dGhpcy5fYWN0aXZlVG91Y2hQYW5lcy5kZWxldGUoZSksdGhpcy5fc2Nyb2xsaW5nUGFuZT09PWUmJih0aGlzLl9zY3JvbGxpbmdQYW5lPW51bGwpLHRoaXMuX3BpbmNoaW5nUGFuZT09PWUmJih0aGlzLl9waW5jaGluZ1BhbmU9bnVsbCl9c3RhcnRUb3VjaChlKXt0aGlzLl9hY3RpdmVUb3VjaFBhbmVzLmFkZChlKX1lbmRUb3VjaChlKXt0aGlzLl9hY3RpdmVUb3VjaFBhbmVzLmRlbGV0ZShlKX1oYXNUb3VjaGVzT25PdGhlclBhbmVzKGUpe3JldHVybiB0aGlzLl9hY3RpdmVUb3VjaFBhbmVzLnNpemU+MXx8MT09PXRoaXMuX2FjdGl2ZVRvdWNoUGFuZXMuc2l6ZSYmIXRoaXMuX2FjdGl2ZVRvdWNoUGFuZXMuaGFzKGUpfXRyeVNldERyYWdnaW5nU291cmNlKGUsdCl7cmV0dXJuIXRoaXMuaGFzVG91Y2hlc09uT3RoZXJQYW5lcyh0KSYmKCgwLGwuYXNzZXJ0KShudWxsPT09dGhpcy5fZHJhZ2dpbmdTb3VyY2V8fHRoaXMuX2RyYWdnaW5nU291cmNlPT09ZSksdGhpcy5fZHJhZ2dpbmdTb3VyY2U9ZSwhMCl9Y2xlYXJEcmFnZ2luZ1NvdXJjZSgpe251bGwhPT10aGlzLl9kcmFnZ2luZ1NvdXJjZSYmKHRoaXMuX2RyYWdnaW5nU291cmNlPW51bGwpfWRyYWdnaW5nU291cmNlKCl7cmV0dXJuIHRoaXMuX2RyYWdnaW5nU291cmNlfXNldFNjcm9sbGluZ1BhbmUoZSl7KDAsbC5hc3NlcnQpKG51bGw9PT1lfHxudWxsPT09dGhpcy5fc2Nyb2xsaW5nUGFuZXx8dGhpcy5fc2Nyb2xsaW5nUGFuZT09PWUpLHRoaXMuX3Njcm9sbGluZ1BhbmU9ZX1zY3JvbGxpbmdQYW5lKCl7cmV0dXJuIHRoaXMuX3Njcm9sbGluZ1BhbmV9c2V0UGluY2hpbmdQYW5lKGUpeygwLGwuYXNzZXJ0KShudWxsPT09ZXx8bnVsbD09PXRoaXMuX3BpbmNoaW5nUGFuZXx8dGhpcy5fcGluY2hpbmdQYW5lPT09ZSksdGhpcy5fcGluY2hpbmdQYW5lPWV9cGluY2hpbmdQYW5lKCl7cmV0dXJuIHRoaXMuX3BpbmNoaW5nUGFuZX19dmFyIENuPWkoNDY1Nzc3KSxQbj1pKDQ4Mzc4Myk7aSg2MTU1MjYpO2NvbnN0IFRuPSgwLFBlLmlzRmVhdHVyZUVuYWJsZWQpKCJzdXBwb3J0X292ZXJuaWdodF9zZXNzaW9uIik7dmFyIHhuOyFmdW5jdGlvbihlKXtlW2UuQm9yZGVyU2l6ZT0xXT0iQm9yZGVyU2l6ZSIsZVtlLk9mZnNldFNpemU9NV09Ik9mZnNldFNpemUifSh4bnx8KHhuPXt9KSk7Y29uc3QgTW49e2NvbnRleHRNZW51RW5hYmxlZDohMCx0aW1lem9uZU1lbnVFbmFibGVkOiEwLHByZXNzZWRNb3VzZU1vdmVTY2FsZTohMH0sSW49bmV3IHkuVHJhbnNsYXRlZFN0cmluZygiY2hhbmdlIHNlc3Npb24iLHAudChudWxsLHZvaWQgMCxpKDcyMzQyNikpKSxMbj1wLnQobnVsbCx2b2lkIDAsaSgxMDk5NTYpKTtjbGFzcyBBbntjb25zdHJ1Y3RvcihlLHQsaSxzLG4pe3RoaXMuX3JlbmRlcmVyT3B0aW9ucz1udWxsLHRoaXMuX29uTGFiZWxIb3ZlcmVkPW5ldyBmLkRlbGVnYXRlLHRoaXMuX21vdXNlZG93bj0hMSx0aGlzLl9jdXJyZW50Q3Vyc29yQ2xhc3NOYW1lPSJpbnZhbGlkIix0aGlzLl9vcHRpb25zPSgwLGEubWVyZ2UpKCgwLGEuY2xvbmUpKE1uKSx0fHx7fSksdGhpcy5jaGFydD1lLHRoaXMuX3Byb3BlcnRpZXM9ZS5wcm9wZXJ0aWVzKCkuY2hpbGRzKCkuc2NhbGVzUHJvcGVydGllcywKdGhpcy5fZWxlbWVudD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSx0aGlzLl9lbGVtZW50LnN0eWxlLmRpc3BsYXk9ImZsZXgiLHRoaXMuX2JhY2tncm91bmRCYXNlZFRoZW1lPW47Y29uc3Qgcj1lLm1vZGVsKCkubW9kZWwoKS5yZW5kZXJlck9wdGlvbnNQcm92aWRlcigpLG89KCk9PnRoaXMuYmFja2dyb3VuZENvbG9yKCksbD0oKT0+e3Rocm93IG5ldyBFcnJvcigiVGltZSBheGlzIGRvZXMgbm90IHN1cHBvcnQgcmVhbCBwcmljZSBzY2FsZXMiKX0sYz17dGl0bGVzUHJvdmlkZXI6aSxzdHViQ29udGV4dE1lbnVQcm92aWRlcjphc3luYyhlLHQpPT57Y29uc3QgaT1hd2FpdCBzKGUsdCksbj10aGlzLmdldENvbnRleHRNZW51QWN0aW9ucyghMCk7cmV0dXJuIDA9PT1uLmxlbmd0aD9pOmkuY29uY2F0KG5ldyBlcy5TZXBhcmF0b3Isbil9LGJhY2tncm91bmRCYXNlZFRoZW1lOm4uc3Bhd25Pd25lcnNoaXAoKSxvbkFjdGl2ZU9ySG92ZXJlZENoYXJ0OigwLHUuY29tYmluZSkoKChlLHQpPT5lfHx0KSx0aGlzLmNoYXJ0LmlzQWN0aXZlKCkud2Vha1JlZmVyZW5jZSgpLHRoaXMuY2hhcnQuaXNIb3ZlcmVkKCkud2Vha1JlZmVyZW5jZSgpKS5vd25lcnNoaXAoKSxyZW5kZXJlck9wdGlvbnNQcm92aWRlcjpyLGdldEJhY2tncm91bmRUb3BDb2xvcjpvLGdldEJhY2tncm91bmRCb3R0b21Db2xvcjpvLHJlcXVlc3RSZXBhaW50OigpPT57dGhpcy5jaGFydC5tb2RlbCgpLm1vZGVsKCkuaW52YWxpZGF0ZShMZS5JbnZhbGlkYXRpb25NYXNrLnRpbWVTY2FsZShMZS5JbnZhbGlkYXRpb25MZXZlbC5MaWdodCwhMCkpfSxzaG93SG9yaXpvbnRhbEJvcmRlcjohMH07dGhpcy5fbGhzU3R1YkNvbnRhaW5lcj1uZXcgamkodGhpcy5fcHJvcGVydGllcywibGVmdCIsbCxjLHRoaXMuX29wdGlvbnMucHJpY2VBeGlzTGFiZWxzT3B0aW9ucyx0aGlzKSx0aGlzLl9saHNTdHViQ29udGFpbmVyLm9uTGFiZWxIb3ZlcmVkKCkuc3Vic2NyaWJlKHRoaXMsKChlLHQpPT57dGhpcy5fb25MYWJlbEhvdmVyZWQuZmlyZShlLHQpfSkpLHRoaXMuX3Joc1N0dWJDb250YWluZXI9bmV3IGppKHRoaXMuX3Byb3BlcnRpZXMsInJpZ2h0IixsLGMsdGhpcy5fb3B0aW9ucy5wcmljZUF4aXNMYWJlbHNPcHRpb25zLHRoaXMpLHRoaXMuX3Joc1N0dWJDb250YWluZXIub25MYWJlbEhvdmVyZWQoKS5zdWJzY3JpYmUodGhpcywoKGUsdCk9Pnt0aGlzLl9vbkxhYmVsSG92ZXJlZC5maXJlKGUsdCl9KSksdGhpcy5fZWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLl9saHNTdHViQ29udGFpbmVyLmdldEVsZW1lbnQoKSksdGhpcy5fY2VsbD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSx0aGlzLl9lbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuX2NlbGwpLHRoaXMuX2NlbGwuY2xhc3NMaXN0LmFkZCgiY2hhcnQtbWFya3VwLXRhYmxlIiwidGltZS1heGlzIiksdGhpcy5fY2VsbC5zdHlsZS5oZWlnaHQ9IjI1cHgiLHRoaXMuX2R2PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLHRoaXMuX2R2LnN0eWxlLndpZHRoPSIxMDAlIix0aGlzLl9kdi5zdHlsZS5oZWlnaHQ9IjEwMCUiLHRoaXMuX2R2LnN0eWxlLnBvc2l0aW9uPSJyZWxhdGl2ZSIsdGhpcy5fZHYuc3R5bGUub3ZlcmZsb3c9ImhpZGRlbiIsdGhpcy5fY2VsbC5hcHBlbmRDaGlsZCh0aGlzLl9kdiksdGhpcy5fY2FudmFzQ29uZmlndXJlZEhhbmRsZXI9KCk9PnRoaXMuY2hhcnQubW9kZWwoKS5tb2RlbCgpLmxpZ2h0VXBkYXRlKCksdGhpcy5fY2FudmFzQmluZGluZz0oMCxLdC5jcmVhdGVCb3VuZENhbnZhcykodGhpcy5fZHYsKDAseXQuc2l6ZSkoe3dpZHRoOjE2LGhlaWdodDoxNn0pKSx0aGlzLl9jYW52YXNCaW5kaW5nLnN1YnNjcmliZVN1Z2dlc3RlZEJpdG1hcFNpemVDaGFuZ2VkKHRoaXMuX2NhbnZhc0NvbmZpZ3VyZWRIYW5kbGVyKTtjb25zdCBoPXRoaXMuX2NhbnZhc0JpbmRpbmcuY2FudmFzRWxlbWVudDtoLnN0eWxlLnBvc2l0aW9uPSJhYnNvbHV0ZSIsaC5zdHlsZS56SW5kZXg9IjEiLGguc3R5bGUubGVmdD0iMCIsaC5zdHlsZS50b3A9IjAiLHRoaXMuX3RvcENhbnZhc0JpbmRpbmc9KDAsS3QuY3JlYXRlQm91bmRDYW52YXMpKHRoaXMuX2R2LCgwLHl0LnNpemUpKHt3aWR0aDoxNixoZWlnaHQ6MTZ9KSksdGhpcy5fdG9wQ2FudmFzQmluZGluZy5zdWJzY3JpYmVTdWdnZXN0ZWRCaXRtYXBTaXplQ2hhbmdlZCh0aGlzLl9jYW52YXNDb25maWd1cmVkSGFuZGxlcik7Y29uc3QgZD10aGlzLl90b3BDYW52YXNCaW5kaW5nLmNhbnZhc0VsZW1lbnQ7ZC5zdHlsZS5wb3NpdGlvbj0iYWJzb2x1dGUiLGQuc3R5bGUuekluZGV4PSIyIixkLnN0eWxlLmxlZnQ9IjAiLGQuc3R5bGUudG9wPSIwIix0aGlzLl9kdi5zZXRBdHRyaWJ1dGUoImFyaWEtaGlkZGVuIiwidHJ1ZSIpLHRoaXMuX2VsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5fcmhzU3R1YkNvbnRhaW5lci5nZXRFbGVtZW50KCkpLHRoaXMucmVzdG9yZURlZmF1bHRDdXJzb3IoKSx0aGlzLnVwZGF0ZSgpLHRoaXMuX21pblZpc2libGVTcGFuPUNuLk1JTlVURV9TUEFOLHRoaXMuX21vdXNlRXZlbnRIYW5kbGVyPW5ldyB3aS5Nb3VzZUV2ZW50SGFuZGxlcih0aGlzLl90b3BDYW52YXNCaW5kaW5nLmNhbnZhc0VsZW1lbnQsdGhpcyx7dHJlYXRWZXJ0VG91Y2hEcmFnQXNQYWdlU2Nyb2xsOiEwLHRyZWF0SG9yelRvdWNoRHJhZ0FzUGFnZVNjcm9sbDohMX0pLHRoaXMuc2l6ZT0oMCx5dC5zaXplKSh7d2lkdGg6MCxoZWlnaHQ6MH0pfWRlc3Ryb3koKXt0aGlzLl9tb3VzZUV2ZW50SGFuZGxlci5kZXN0cm95KCksdGhpcy5fdG9wQ2FudmFzQmluZGluZy51bnN1YnNjcmliZVN1Z2dlc3RlZEJpdG1hcFNpemVDaGFuZ2VkKHRoaXMuX2NhbnZhc0NvbmZpZ3VyZWRIYW5kbGVyKSx0aGlzLl90b3BDYW52YXNCaW5kaW5nLmRpc3Bvc2UoKSx0aGlzLl9jYW52YXNCaW5kaW5nLnVuc3Vic2NyaWJlU3VnZ2VzdGVkQml0bWFwU2l6ZUNoYW5nZWQodGhpcy5fY2FudmFzQ29uZmlndXJlZEhhbmRsZXIpLHRoaXMuX2NhbnZhc0JpbmRpbmcuZGlzcG9zZSgpLAp0aGlzLl9yaHNTdHViQ29udGFpbmVyLm9uTGFiZWxIb3ZlcmVkKCkudW5zdWJzY3JpYmVBbGwodGhpcyksdGhpcy5fbGhzU3R1YkNvbnRhaW5lci5vbkxhYmVsSG92ZXJlZCgpLnVuc3Vic2NyaWJlQWxsKHRoaXMpLHRoaXMuX2xoc1N0dWJDb250YWluZXIuZGVzdHJveSgpLHRoaXMuX3Joc1N0dWJDb250YWluZXIuZGVzdHJveSgpLHRoaXMuY2hhcnQucHJvcGVydGllcygpLmNoaWxkcygpLnBhbmVQcm9wZXJ0aWVzLmNoaWxkcygpLmJhY2tncm91bmQudW5zdWJzY3JpYmVBbGwodGhpcyksdGhpcy5fYmFja2dyb3VuZEJhc2VkVGhlbWUucmVsZWFzZSgpfXNldEN1cnNvcihlKXtsZXQgdD0iIjsiZ3JhYmJpbmciIT09ZSYmImV3LXJlc2l6ZSIhPT1lfHwodD0idGltZS1heGlzLS1jdXJzb3ItIitlKSx0aGlzLl9jdXJyZW50Q3Vyc29yQ2xhc3NOYW1lIT09dCYmKHRoaXMuX2N1cnJlbnRDdXJzb3JDbGFzc05hbWUmJnRoaXMuX2NlbGwuY2xhc3NMaXN0LnJlbW92ZSh0aGlzLl9jdXJyZW50Q3Vyc29yQ2xhc3NOYW1lKSx0JiZ0aGlzLl9jZWxsLmNsYXNzTGlzdC5hZGQodCksdGhpcy5fY3VycmVudEN1cnNvckNsYXNzTmFtZT10LHRoaXMuX2NlbGwuc3R5bGUuY3Vyc29yKX1yZXN0b3JlRGVmYXVsdEN1cnNvcigpe3RoaXMuc2V0Q3Vyc29yKCIiKX1nZXRFbGVtZW50KCl7cmV0dXJuIHRoaXMuX2VsZW1lbnR9b3B0aW1hbEhlaWdodCgpe2NvbnN0IGU9dGhpcy5yZW5kZXJlck9wdGlvbnMoKTtyZXR1cm4gTWF0aC5jZWlsKGUuYm9yZGVyU2l6ZStlLm9mZnNldFNpemUrZS5mb250U2l6ZStlLnBhZGRpbmdUb3ArZS5wYWRkaW5nQm90dG9tK2UubGFiZWxCb3R0b21PZmZzZXQpfXNldFNpemVzKGUsdCxpKXt0aGlzLnNpemUmJigwLHl0LmVxdWFsU2l6ZXMpKHRoaXMuc2l6ZSxlKXx8KHRoaXMuc2l6ZT1lLHRoaXMuX2NhbnZhc0JpbmRpbmcucmVzaXplQ2FudmFzRWxlbWVudChlKSx0aGlzLl90b3BDYW52YXNCaW5kaW5nLnJlc2l6ZUNhbnZhc0VsZW1lbnQoZSksdGhpcy5fY2VsbC5zdHlsZS53aWR0aD1lLndpZHRoKyJweCIsdGhpcy5fY2VsbC5zdHlsZS5oZWlnaHQ9ZS5oZWlnaHQrInB4IiksdGhpcy5fbGhzU3R1YkNvbnRhaW5lci5zZXRTaXplcyhlLmhlaWdodCx0KSx0aGlzLl9yaHNTdHViQ29udGFpbmVyLnNldFNpemVzKGUuaGVpZ2h0LGkpfXJlbmRlcmVyT3B0aW9ucygpe2lmKCF0aGlzLl9yZW5kZXJlck9wdGlvbnN8fHRoaXMuX3JlbmRlcmVyT3B0aW9ucy5mb250U2l6ZSE9PXRoaXMuZm9udFNpemUoKSl7Y29uc3QgZT10aGlzLmZvbnRTaXplKCk7dGhpcy5fcmVuZGVyZXJPcHRpb25zPXtib3JkZXJTaXplOjEsb2Zmc2V0U2l6ZTo1LGZvbnRTaXplOmUsZm9udDooMCxSaS5tYWtlRm9udCkoZSxXaS5DSEFSVF9GT05UX0ZBTUlMWV9XVi52YWx1ZSgpLCIiKSx3aWR0aENhY2hlOm5ldyBCaS5UZXh0V2lkdGhDYWNoZSxwYWRkaW5nVG9wOjMqZS8xMixwYWRkaW5nQm90dG9tOjMqZS8xMixwYWRkaW5nSG9yaXpvbnRhbDo5KmUvMTIsbGFiZWxCb3R0b21PZmZzZXQ6NCplLzEyfX1yZXR1cm4gdGhpcy5fcmVuZGVyZXJPcHRpb25zfWJhY2tncm91bmRDb2xvcigpe3JldHVybiB0aGlzLmNoYXJ0Lm1vZGVsKCkubW9kZWwoKS5iYWNrZ3JvdW5kQ29sb3IoKS52YWx1ZSgpfWxpbmVDb2xvcigpe2NvbnN0IGU9dGhpcy5fcHJvcGVydGllcy5jaGlsZHMoKS5saW5lQ29sb3IudmFsdWUoKTtpZigwPT09KDAseWkucGFyc2VSZ2JhKShlKVszXSl7Y29uc3QgZT10aGlzLmNoYXJ0Lm1vZGVsKCkubW9kZWwoKS5sYXN0UGFuZSgpO2lmKGUmJmUuY29sbGFwc2VkKCkudmFsdWUoKSlyZXR1cm4gdGhpcy5jaGFydC5wcm9wZXJ0aWVzKCkuY2hpbGRzKCkucGFuZVByb3BlcnRpZXMuY2hpbGRzKCkuc2VwYXJhdG9yQ29sb3IudmFsdWUoKX1yZXR1cm4gZX10ZXh0Q29sb3IoKXtyZXR1cm4gdGhpcy5fcHJvcGVydGllcy5jaGlsZHMoKS50ZXh0Q29sb3IudmFsdWUoKX1mb250U2l6ZSgpe3JldHVybiB0aGlzLl9wcm9wZXJ0aWVzLmNoaWxkcygpLmZvbnRTaXplLnZhbHVlKCl9YmFzZUZvbnQoKXtyZXR1cm4oMCxSaS5tYWtlRm9udCkodGhpcy5mb250U2l6ZSgpLFdpLkNIQVJUX0ZPTlRfRkFNSUxZX1dWLnZhbHVlKCkpfWJhc2VCb2xkRm9udCgpe3JldHVybigwLFJpLm1ha2VGb250KSh0aGlzLmZvbnRTaXplKCksV2kuQ0hBUlRfRk9OVF9GQU1JTFlfV1YudmFsdWUoKSwiIiwiYm9sZCIpfWhhc0NhbnZhcyhlKXtyZXR1cm4gdGhpcy5fY2FudmFzQmluZGluZy5jYW52YXNFbGVtZW50PT09ZXx8dGhpcy5fdG9wQ2FudmFzQmluZGluZy5jYW52YXNFbGVtZW50PT09ZX1vbkxhYmVsSG92ZXJlZCgpe3JldHVybiB0aGlzLl9vbkxhYmVsSG92ZXJlZH1nZXRTY3JlZW5zaG90RGF0YSgpe3JldHVybntjb250ZW50OnRoaXMuX2NhbnZhc0JpbmRpbmcuY2FudmFzRWxlbWVudC50b0RhdGFVUkwoKSxjYW52YXM6dGhpcy5fY2FudmFzQmluZGluZy5jYW52YXNFbGVtZW50LGNvbnRlbnRXaWR0aDp0aGlzLnNpemUud2lkdGgsY29udGVudEhlaWdodDp0aGlzLnNpemUuaGVpZ2h0LGxoc1N0dWI6dGhpcy5fbGhzU3R1YkNvbnRhaW5lci5nZXRTY3JlZW5zaG90RGF0YSgpLHJoc1N0dWI6dGhpcy5fcmhzU3R1YkNvbnRhaW5lci5nZXRTY3JlZW5zaG90RGF0YSgpfX1nZXRDb250ZXh0TWVudUFjdGlvbnMoZSl7Y29uc3QgdD10aGlzLmNoYXJ0LGk9dC5hY3Rpb25zKCkscz1bXTtpZihlfHwodC5tb2RlbCgpLnRpbWVTY2FsZSgpLnJlc2V0QXZhaWxhYmxlKCkudmFsdWUoKSYmKHMucHVzaChpLnRpbWVTY2FsZVJlc2V0KSxzLnB1c2gobmV3IGVzLlNlcGFyYXRvcikpLHRoaXMuX29wdGlvbnMudGltZXpvbmVNZW51RW5hYmxlZCYmcy5wdXNoKGkuYXBwbHlUaW1lWm9uZSkscy5wdXNoKGkuc2Vzc2lvbkJyZWFrcykpLCF0Lm1vZGVsKCkubWFpblNlcmllcygpLmlzRFdNKCkpe2NvbnN0IGU9dC5tb2RlbCgpPy5tYWluU2VyaWVzKCkuc3ltYm9sSW5mbygpO2lmKGUpewpjb25zdCBpPXQubW9kZWwoKS5tYWluU2VyaWVzKCkucHJvcGVydGllcygpLmNoaWxkcygpLnNlc3Npb25JZCxuPShlLnN1YnNlc3Npb25zfHxbXSkuZmlsdGVyKChlPT4hZS5wcml2YXRlJiYoVG58fCIyNGgiIT09ZS5pZCkpKS5zbGljZSgpLnNvcnQoUG4uY29tcGFyZVN1YnNlc3Npb25zRm9yTWVudSk7aWYobi5sZW5ndGg+MSl7Y29uc3Qgcj1lLnR5cGUsbz1uLm1hcCgoZT0+bmV3IGVzLkFjdGlvbih7YWN0aW9uSWQ6IkNoYXJ0LlNldFNlc3Npb24iLG9wdGlvbnM6e2xhYmVsOigwLFBuLnRyYW5zbGF0ZVNlc3Npb25EZXNjcmlwdGlvbikoZS5kZXNjcmlwdGlvbixyKSxjaGVja2FibGU6ITAsY2hlY2tlZDppLnZhbHVlKCk9PT1lLmlkLHN0YXROYW1lOiJTZXRTZXNzaW9uIixvbkV4ZWN1dGU6KCk9Pnt0Lm1vZGVsKCkuc2V0UHJvcGVydHkoaSxlLmlkLEluKX19fSkpKSxhPW5ldyBlcy5BY3Rpb24oe2FjdGlvbklkOiJDaGFydC5TZXRTZXNzaW9uIixvcHRpb25zOntsYWJlbDpMbixzdGF0TmFtZToiU2V0U2Vzc2lvbiIsc3ViSXRlbXM6b319KTtzLnB1c2goYSl9fX1yZXR1cm4hdC5vbldpZGdldCgpJiYoMCxxLmlzRmVhdHVyZXNldEVuYWJsZWQpKCJzaG93X2NoYXJ0X3Byb3BlcnR5X3BhZ2UiKSYmKDAscS5pc0ZlYXR1cmVzZXRFbmFibGVkKSgiY2hhcnRfcHJvcGVydHlfcGFnZV9zY2FsZXMiKSYmaS5zY2FsZXNQcm9wZXJ0aWVzJiYocy5sZW5ndGgmJnMucHVzaChuZXcgZXMuU2VwYXJhdG9yKSxzLnB1c2goaS5zY2FsZXNQcm9wZXJ0aWVzKSksc311cGRhdGUoKXtpZighdGhpcy5jaGFydC5oYXNNb2RlbCgpKXJldHVybjtjb25zdCBlPXRoaXMuY2hhcnQubW9kZWwoKS50aW1lU2NhbGUoKS5tYXJrcygpO2lmKGUpe3RoaXMuX21pblZpc2libGVTcGFuPUNuLllFQVJfU1BBTjtmb3IoY29uc3QgdCBvZiBlKXRoaXMuX21pblZpc2libGVTcGFuPU1hdGgubWluKHQuc3Bhbix0aGlzLl9taW5WaXNpYmxlU3Bhbil9fXVwZGF0ZVByaWNlQXhpc1N0dWJzKCl7Y29uc3QgZT10aGlzLmNoYXJ0Lm1vZGVsKCkubW9kZWwoKSx0PXRoaXMuY2hhcnQuaGFzTWF4aW1pemVkUGFuZSgpPygwLGwuZW5zdXJlTm90TnVsbCkodGhpcy5jaGFydC5tYXhpbWl6ZWRQYW5lV2lkZ2V0KCkpLnN0YXRlKCk6ZS5wYW5lRm9yU291cmNlKGUubWFpblNlcmllcygpKTtpZighdClyZXR1cm47Y29uc3QgaT1lLnByaWNlU2NhbGVTbG90c0NvdW50KCk7dGhpcy5fbGhzU3R1YkNvbnRhaW5lci5zZXRTY2FsZXMoW10saS5sZWZ0LHQubGVmdFByaWNlU2NhbGVzKCkubGVuZ3RoLGkubGVmdCtpLnJpZ2h0KSx0aGlzLl9yaHNTdHViQ29udGFpbmVyLnNldFNjYWxlcyhbXSxpLnJpZ2h0LHQucmlnaHRQcmljZVNjYWxlcygpLmxlbmd0aCxpLmxlZnQraS5yaWdodCl9cGFpbnQoZSl7aWYoZS5sZXZlbD09PUxlLkludmFsaWRhdGlvbkxldmVsLk5vbmV8fDA9PT10aGlzLnNpemUud2lkdGh8fDA9PT10aGlzLnNpemUuaGVpZ2h0KXJldHVybjsoMCxLdC50cnlBcHBseVN1Z2dlc3RlZENhbnZhc0JpdG1hcFNpemUpKHRoaXMuX2NhbnZhc0JpbmRpbmcpLCgwLEt0LnRyeUFwcGx5U3VnZ2VzdGVkQ2FudmFzQml0bWFwU2l6ZSkodGhpcy5fdG9wQ2FudmFzQmluZGluZyk7Y29uc3QgdD0oMCxLdC5nZXRDb250ZXh0MkQpKHRoaXMuX3RvcENhbnZhc0JpbmRpbmcuY2FudmFzRWxlbWVudCk7aWYoZS5sZXZlbD5MZS5JbnZhbGlkYXRpb25MZXZlbC5DdXJzb3Ipe2NvbnN0IGk9KDAsS3QuZ2V0Q29udGV4dDJEKSh0aGlzLl9jYW52YXNCaW5kaW5nLmNhbnZhc0VsZW1lbnQpLHM9KDAsS3QuZ2V0QmluZGluZ1JlbmRlcmluZ0luZm8pKHRoaXMuX2NhbnZhc0JpbmRpbmcpO3RoaXMuZHJhd0JhY2tncm91bmQoaSxzKSx0aGlzLmNoYXJ0Lmhhc01vZGVsKCkmJih0aGlzLmRyYXdCb3JkZXIoaSxzKSx0aGlzLmRyYXdUaWNrTWFya3MoaSxzKSx0aGlzLmRyYXdCYWNrTGFiZWxzKGkscyksdGhpcy5kcmF3Q3Jvc3NIYWlyTGFiZWwodCxzKSksdGhpcy5fbGhzU3R1YkNvbnRhaW5lci5wYWludFN0dWJzKGUpLHRoaXMuX3Joc1N0dWJDb250YWluZXIucGFpbnRTdHVicyhlKX10aGlzLmRyYXdDcm9zc0hhaXJMYWJlbCh0LCgwLEt0LmdldEJpbmRpbmdSZW5kZXJpbmdJbmZvKSh0aGlzLl90b3BDYW52YXNCaW5kaW5nKSl9ZHJhd0JhY2tncm91bmQoZSx0KXtpZigoMCxLdC5jbGVhclJlY3QpKGUsMCwwLHQuYml0bWFwU2l6ZS53aWR0aCx0LmJpdG1hcFNpemUuaGVpZ2h0LHRoaXMuYmFja2dyb3VuZENvbG9yKCkpLCF0aGlzLmNoYXJ0Lmhhc01vZGVsKCkpcmV0dXJuO2NvbnN0IGk9dGhpcy5jaGFydC5tb2RlbCgpO2lmKCFpLnRpbWVTY2FsZSgpLmlzRW1wdHkoKSl7Y29uc3Qgcz1pLm1vZGVsKCkuc2VsZWN0aW9uKCkubGluZURhdGFTb3VyY2VzKCkuZmlsdGVyKChlPT4hZS5pc0ZpeGVkKCkpKS5yZWR1Y2UoKChlLHQpPT57Y29uc3QgaT10LnRpbWVBeGlzUG9pbnRzKCk7cmV0dXJuIDA9PT1pLmxlbmd0aD9lOmUuY29uY2F0KGkpfSksW10pO3MubGVuZ3RoPjAmJnRoaXMuX2hpZ2hsaWdodEJhY2tncm91bmQoZSxzLHQpfWNvbnN0IHM9aS5tb2RlbCgpLmNyb3NzaGFpclNvdXJjZSgpO3Muc3RhcnRNZWFzdXJlUG9pbnQoKSYmdGhpcy5faGlnaGxpZ2h0QmFja2dyb3VuZChlLHMubWVhc3VyZVBvaW50cygpLHQpfWRyYXdCb3JkZXIoZSx0KXtlLnNhdmUoKSxlLmZpbGxTdHlsZT10aGlzLmxpbmVDb2xvcigpO2NvbnN0IGk9TWF0aC5tYXgoMSxNYXRoLmZsb29yKHRoaXMucmVuZGVyZXJPcHRpb25zKCkuYm9yZGVyU2l6ZSp0LnZlcnRpY2FsUGl4ZWxSYXRpbykpLHM9dC5iaXRtYXBTaXplLndpZHRoO2UuZmlsbFJlY3QoMCwwLHMsaSksZS5yZXN0b3JlKCl9ZHJhd1RpY2tNYXJrcyhlLHQpe2NvbnN0IGk9dGhpcy5jaGFydC5tb2RlbCgpLnRpbWVTY2FsZSgpLm1hcmtzKCk7aWYoIWl8fDA9PT1pLmxlbmd0aClyZXR1cm47bGV0IHM9aS5yZWR1Y2UoKChlLHQpPT5lLnNwYW4+dC5zcGFuP2U6dCksaVswXSkuc3BhbjtzPjMwJiZzPDQwJiYocz0zMCksZS5zYXZlKCksZS5zdHJva2VTdHlsZT10aGlzLmxpbmVDb2xvcigpCjtjb25zdCBuPXRoaXMucmVuZGVyZXJPcHRpb25zKCkscj1uLmJvcmRlclNpemUrbi5vZmZzZXRTaXplK24ucGFkZGluZ1RvcCtuLmZvbnRTaXplLzI7ZS50ZXh0QWxpZ249ImNlbnRlciIsZS50ZXh0QmFzZWxpbmU9Im1pZGRsZSIsZS5maWxsU3R5bGU9dGhpcy50ZXh0Q29sb3IoKSwoMCxLdC5kcmF3U2NhbGVkKShlLHQuaG9yaXpvbnRhbFBpeGVsUmF0aW8sdC52ZXJ0aWNhbFBpeGVsUmF0aW8sKCgpPT57ZS5mb250PXRoaXMuYmFzZUZvbnQoKTtmb3IobGV0IHQ9MDt0PGkubGVuZ3RoO3QrKyl7Y29uc3Qgbj1pW3RdO24uc3BhbjxzJiZlLmZpbGxUZXh0KG4ubGFiZWwsbi5jb29yZCxyKX1lLmZvbnQ9dGhpcy5iYXNlQm9sZEZvbnQoKTtmb3IobGV0IHQ9MDt0PGkubGVuZ3RoO3QrKyl7Y29uc3Qgbj1pW3RdO24uc3Bhbj49cyYmZS5maWxsVGV4dChuLmxhYmVsLG4uY29vcmQscil9fSkpLGUucmVzdG9yZSgpfWRyYXdCYWNrTGFiZWxzKGUsdCl7ZS5zYXZlKCk7Y29uc3QgaT1uZXcgU2V0LHM9dGhpcy5jaGFydC5tb2RlbCgpLm1vZGVsKCk7bGV0IG49cy5kYXRhU291cmNlcygpO2NvbnN0IHI9cy5zZWxlY3Rpb24oKS5hbGxTb3VyY2VzKCk7Zm9yKGNvbnN0IGUgb2YgcilpLmFkZChlKTtzLmhvdmVyZWRTb3VyY2UoKSYmaS5hZGQocy5ob3ZlcmVkU291cmNlKCkpO2Zvcihjb25zdCBlIG9mIHMuc291cmNlc0JlaW5nTW92ZWQoKSlpLmFkZChlKTtjb25zdCBvPXMuY3VzdG9tU291cmNlQmVpbmdNb3ZlZCgpO251bGwhPT1vJiZpLmFkZChvKTtjb25zdCBhPXMubGluZUJlaW5nRWRpdGVkKCk/P3MubGluZUJlaW5nQ3JlYXRlZCgpO2EmJmkuYWRkKGEpLGkuYWRkKHRoaXMuY2hhcnQubW9kZWwoKS5jcm9zc2hhaXJTb3VyY2UoKSksbj1uLmNvbmNhdChzLmN1c3RvbVNvdXJjZXMoKSk7Y29uc3QgbD10aGlzLnJlbmRlcmVyT3B0aW9ucygpO2ZvcihsZXQgcz0wO3M8bi5sZW5ndGg7cysrKXtjb25zdCByPW5bc107aWYoIWkuaGFzKHIpJiZyLnRpbWVBeGlzVmlld3Mpe2NvbnN0IGk9ci50aW1lQXhpc1ZpZXdzKCk7aWYoaSlmb3IobGV0IHM9MDtzPGkubGVuZ3RoO3MrKylpW3NdLnJlbmRlcmVyKCkuZHJhdyhlLHQsbCl9fWUucmVzdG9yZSgpfWRyYXdDcm9zc0hhaXJMYWJlbChlLHQpe2Uuc2F2ZSgpLGUuY2xlYXJSZWN0KDAsMCx0LmJpdG1hcFNpemUud2lkdGgsdC5iaXRtYXBTaXplLmhlaWdodCk7Y29uc3QgaT10aGlzLmNoYXJ0Lm1vZGVsKCkubW9kZWwoKSxzPVtdLG49aS5saW5lQmVpbmdFZGl0ZWQoKT8/aS5saW5lQmVpbmdDcmVhdGVkKCk7aWYobiYmbi50aW1lQXhpc1ZpZXdzKXtjb25zdCBlPW4udGltZUF4aXNWaWV3cygpO2UmJmUubGVuZ3RoJiZzLnB1c2goZSl9Y29uc3Qgcj1pLmN1c3RvbVNvdXJjZUJlaW5nTW92ZWQoKTt0aGlzLl9hZGRWaWV3c09yTWF4TWluKG51bGw9PT1yP1tdOltyXSxzKSx0aGlzLl9hZGRWaWV3c09yTWF4TWluKGkuc291cmNlc0JlaW5nTW92ZWQoKSxzKSx0aGlzLl9hZGRWaWV3c09yTWF4TWluKGkuc2VsZWN0aW9uKCkuYWxsU291cmNlcygpLHMpO2NvbnN0IG89aS5ob3ZlcmVkU291cmNlKCk7aWYobyYmKDAsQWkuaXNEYXRhU291cmNlKShvKSYmIWkuc2VsZWN0aW9uKCkuaXNTZWxlY3RlZChvKSYmby50aW1lQXhpc1ZpZXdzKXtjb25zdCBlPW8udGltZUF4aXNWaWV3cygpO2UmJmUubGVuZ3RoJiZzLnB1c2goZSl9Y29uc3QgYT1pLmNyb3NzaGFpclNvdXJjZSgpLGw9YS50aW1lQXhpc1ZpZXdzJiZhLnRpbWVBeGlzVmlld3MoKTtsJiZsLmxlbmd0aCYmcy5wdXNoKGwpO2NvbnN0IGM9dGhpcy5yZW5kZXJlck9wdGlvbnMoKTtmb3IoY29uc3QgaSBvZiBzKWZvcihjb25zdCBzIG9mIGkpZS5zYXZlKCkscy5yZW5kZXJlcigpLmRyYXcoZSx0LGMpLGUucmVzdG9yZSgpO2UucmVzdG9yZSgpfW1vdXNlRG93bkV2ZW50KGUpe3RoaXMuX21vdXNlRG93bk9yVG91Y2hTdGFydEV2ZW50KGUpfXRvdWNoU3RhcnRFdmVudChlKXt0aGlzLl9tb3VzZU9yVG91Y2hFbnRlckV2ZW50KGUpLHRoaXMuX21vdXNlRG93bk9yVG91Y2hTdGFydEV2ZW50KGUpfW1vdXNlRG93bk91dHNpZGVFdmVudCgpe3RoaXMuX291dHNpZGVNb3VzZURvd25PclRvdWNoU3RhcnRFdmVudCgpfXRvdWNoU3RhcnRPdXRzaWRlRXZlbnQoKXt0aGlzLl9vdXRzaWRlTW91c2VEb3duT3JUb3VjaFN0YXJ0RXZlbnQoKX1wcmVzc2VkTW91c2VNb3ZlRXZlbnQoZSl7dGhpcy5fcHJlc3NlZE1vdXNlT3JUb3VjaE1vdmVFdmVudChlKX10b3VjaE1vdmVFdmVudChlKXt0aGlzLl9wcmVzc2VkTW91c2VPclRvdWNoTW92ZUV2ZW50KGUpfW1vdXNlVXBFdmVudChlKXt0aGlzLl9tb3VzZVVwT3JUb3VjaEVuZEV2ZW50KGUpfXRvdWNoRW5kRXZlbnQoZSl7dGhpcy5fbW91c2VVcE9yVG91Y2hFbmRFdmVudChlKSx0aGlzLl9tb3VzZU9yVG91Y2hMZWF2ZUV2ZW50KGUpfWNvbnRleHRNZW51RXZlbnQoZSl7dGhpcy5fY29udGV4dE1lbnVPclRvdWNoQ29udGV4dE1lbnVFdmVudChlKX10b3VjaENvbnRleHRNZW51RXZlbnQoZSl7dGhpcy5fY29udGV4dE1lbnVPclRvdWNoQ29udGV4dE1lbnVFdmVudChlKX1tb3VzZUVudGVyRXZlbnQoZSl7dGhpcy5fbW91c2VPclRvdWNoRW50ZXJFdmVudChlKX1tb3VzZUxlYXZlRXZlbnQoZSl7dGhpcy5fbW91c2VPclRvdWNoTGVhdmVFdmVudChlKX1tb3VzZURvdWJsZUNsaWNrRXZlbnQoZSl7dGhpcy5fbW91c2VEb3VibGVDbGlja09yRG91YmxlVGFwRXZlbnQoZSl9ZG91YmxlVGFwRXZlbnQoZSl7dGhpcy5fbW91c2VEb3VibGVDbGlja09yRG91YmxlVGFwRXZlbnQoZSl9X291dHNpZGVNb3VzZURvd25PclRvdWNoU3RhcnRFdmVudCgpe3RoaXMuX3pvb21BdmFpbGFibGUoKSYmdGhpcy5fbW91c2Vkb3duJiYodGhpcy5fbW91c2Vkb3duPSExLHRoaXMuY2hhcnQubW9kZWwoKS5lbmRTY2FsZVRpbWUoKSx0aGlzLnJlc3RvcmVEZWZhdWx0Q3Vyc29yKCkpfV9oaWdobGlnaHRCYWNrZ3JvdW5kKGUsdCxpKXtjb25zdCBzPXRoaXMuY2hhcnQubW9kZWwoKS50aW1lU2NhbGUoKTtsZXQgbj10WzBdLmluZGV4LHI9dFswXS5pbmRleAo7Zm9yKGxldCBlPTE7ZTx0Lmxlbmd0aDtlKyspbj1NYXRoLm1pbihuLHRbZV0uaW5kZXgpLHI9TWF0aC5tYXgocix0W2VdLmluZGV4KTtjb25zdHtob3Jpem9udGFsUGl4ZWxSYXRpbzpvfT1pLGE9TWF0aC5mbG9vcihzLmluZGV4VG9Db29yZGluYXRlKG4pKm8pLGw9TWF0aC5jZWlsKHMuaW5kZXhUb0Nvb3JkaW5hdGUocikqbyk7KDAsS3QuZmlsbFJlY3QpKGUsYSwwLGwtYSxpLmJpdG1hcFNpemUuaGVpZ2h0LHRoaXMuX3Byb3BlcnRpZXMuY2hpbGRzKCkuYXhpc0hpZ2hsaWdodENvbG9yLnZhbHVlKCkpfV9hZGRWaWV3c09yTWF4TWluKGUsdCl7aWYoZS5sZW5ndGg8PTEpe2Zvcihjb25zdCBpIG9mIGUpaWYoaS50aW1lQXhpc1ZpZXdzKXtjb25zdCBlPWkudGltZUF4aXNWaWV3cygpO2UmJmUubGVuZ3RoJiZ0LnB1c2goZSl9fWVsc2UgdC5wdXNoKHRoaXMuX21pbk1heFZpZXdzKGUpKX1fbWluTWF4Vmlld3MoZSl7Y29uc3QgdD1bXTtsZXQgaT0xLzAscz0tMS8wLG49bnVsbCxyPW51bGw7Zm9yKGNvbnN0IHQgb2YgZSlpZih0LnRpbWVBeGlzVmlld3Mpe2NvbnN0IGU9dC50aW1lQXhpc1ZpZXdzKCk7aWYoZSYmZS5sZW5ndGgpZm9yKGxldCB0PTA7dDxlLmxlbmd0aDsrK3Qpe2NvbnN0IG89ZVt0XSxhPW8uY29vcmRpbmF0ZSgpO2E+PXMmJihzPWEscj1vKSxhPD1pJiYoaT1hLG49byl9fXJldHVybiByJiZ0LnB1c2gociksbiYmdC5wdXNoKG4pLHR9X3pvb21BdmFpbGFibGUoKXtjb25zdCBlPXRoaXMuY2hhcnQubW9kZWwoKS5tb2RlbCgpO3JldHVybiFlLnRpbWVTY2FsZSgpLmlzRW1wdHkoKSYmZS56b29tRW5hYmxlZCgpJiZ0aGlzLl9vcHRpb25zLnByZXNzZWRNb3VzZU1vdmVTY2FsZSYmIXRoaXMuY2hhcnQuY2hhcnRGbG9hdGluZ1Rvb2x0aXBWaXNpYmxlKCl9X21vdXNlRG93bk9yVG91Y2hTdGFydEV2ZW50KGUpe2lmKHRoaXMuX21vdXNlZG93bnx8IXRoaXMuX3pvb21BdmFpbGFibGUoKSlyZXR1cm47dGhpcy5fbW91c2Vkb3duPSEwO2NvbnN0IHQ9dGhpcy5jaGFydC5tb2RlbCgpO3QudGltZVNjYWxlKCkuaXNFbXB0eSgpfHx0LnN0YXJ0U2NhbGVUaW1lKGUubG9jYWxYKX1fcHJlc3NlZE1vdXNlT3JUb3VjaE1vdmVFdmVudChlKXt0aGlzLl96b29tQXZhaWxhYmxlKCkmJnRoaXMuY2hhcnQubW9kZWwoKS5zY2FsZVRpbWVUbyhlLmxvY2FsWCl9X21vdXNlVXBPclRvdWNoRW5kRXZlbnQoZSl7dGhpcy5fem9vbUF2YWlsYWJsZSgpJiYodGhpcy5fbW91c2Vkb3duPSExLHRoaXMuY2hhcnQubW9kZWwoKS5lbmRTY2FsZVRpbWUoKSx0aGlzLnJlc3RvcmVEZWZhdWx0Q3Vyc29yKCkpfV9jb250ZXh0TWVudU9yVG91Y2hDb250ZXh0TWVudUV2ZW50KGUpe3RoaXMuX29wdGlvbnMuY29udGV4dE1lbnVFbmFibGVkJiZOaS5Db250ZXh0TWVudU1hbmFnZXIuc2hvd01lbnUodGhpcy5nZXRDb250ZXh0TWVudUFjdGlvbnMoKSxlLHtzdGF0TmFtZToiVGltZVNjYWxlQ29udGV4dE1lbnUifSx7bWVudU5hbWU6IlRpbWVTY2FsZUNvbnRleHRNZW51In0pfV9tb3VzZU9yVG91Y2hFbnRlckV2ZW50KGUpe3RoaXMuX3pvb21BdmFpbGFibGUoKSYmdGhpcy5zZXRDdXJzb3IoImV3LXJlc2l6ZSIpfV9tb3VzZU9yVG91Y2hMZWF2ZUV2ZW50KGUpe3RoaXMucmVzdG9yZURlZmF1bHRDdXJzb3IoKX1fbW91c2VEb3VibGVDbGlja09yRG91YmxlVGFwRXZlbnQoZSl7KDAsTXQudHJhY2tFdmVudCkoIkdVSSIsIkRvdWJsZSBjbGljayB0aW1lIHNjYWxlIiksdGhpcy5jaGFydC5tb2RlbCgpLnJlc2V0VGltZVNjYWxlKCl9fXZhciBrbj1pKDUyNzMyMyksRG49aS5uKGtuKSxFbj1pKDIxODgxNCksUm49KGkoODg5NTE1KSxpKDE3MjEwOSkpLFZuPWkoNzczMDg4KTtmdW5jdGlvbiBCbihlLHQpe3JldHVybiEheC5JbnRlcnZhbC5pc0VxdWFsKGUucmVzLHQucmVzKSYmKDAsVm4uYXJlRXF1YWxUaW1lRnJhbWVzKShlLnZhbCx0LnZhbCl9dmFyIE5uPWkoNzA0NTcyKSxPbj1pKDM0Mjc4KTtjb25zdCBXbj17ZHVyYXRpb246MjUwLGVhc2luZzpFbi5lYXNpbmdGdW5jLmVhc2VPdXRDdWJpY307Y2xhc3MgRm57Y29uc3RydWN0b3IoZSl7dGhpcy5fb25GaW5pc2hDYWxsZWQ9ITEsdGhpcy5fb3B0aW9ucz17Li4uV24sLi4uZX0sdGhpcy5fc3RhcnRUaW1lPXBlcmZvcm1hbmNlLm5vdygpfWdldFN0YXJ0UG9zaXRpb24oKXtyZXR1cm4gdGhpcy5fb3B0aW9ucy5mcm9tfWdldFBvc2l0aW9uKGUpe2NvbnN0IHQ9dGhpcy5fY2FsY3VsYXRlUHJvZ3Jlc3MoZSk7cmV0dXJuIDE9PT10Pyh0aGlzLl9vcHRpb25zLm9uRmluaXNoJiYhdGhpcy5fb25GaW5pc2hDYWxsZWQmJih0aGlzLl9vcHRpb25zLm9uRmluaXNoKCEwKSx0aGlzLl9vbkZpbmlzaENhbGxlZD0hMCksdGhpcy5fb3B0aW9ucy50byk6KDAsT24ubGVycCkodGhpcy5fb3B0aW9ucy5mcm9tLHRoaXMuX29wdGlvbnMudG8sdGhpcy5fb3B0aW9ucy5lYXNpbmcodCkpfWZpbmlzaGVkKGUpe3JldHVybiAxPT09dGhpcy5fY2FsY3VsYXRlUHJvZ3Jlc3MoZSl9b25GaW5pc2goZSl7dGhpcy5fb25GaW5pc2hDYWxsZWR8fCh0aGlzLl9vcHRpb25zLm9uRmluaXNoPy4oZSksdGhpcy5fb25GaW5pc2hDYWxsZWQ9ITApfV9jYWxjdWxhdGVQcm9ncmVzcyhlKXtjb25zdCB0PWUtdGhpcy5fc3RhcnRUaW1lO3JldHVybiB0Pj10aGlzLl9vcHRpb25zLmR1cmF0aW9uPzE6dC90aGlzLl9vcHRpb25zLmR1cmF0aW9ufX12YXIgSG49aSgyODJlMyk7ZnVuY3Rpb24gem4oZSx0LGkscyl7bGV0IG49bnVsbDtpZihpLmN1cnJlbmN5Q29udmVyc2lvbkVuYWJsZWQoKSYmZS5pc0N1cnJlbmN5T3JpZ2luKCkudmFsdWUoKSl7Y29uc3Qgcj1pLmF2YWlsYWJsZUN1cnJlbmNpZXMoKS52YWx1ZSgpLG89dC5jdXJyZW5jeShyKSxhPWUuY3VycmVuY3koKTtudWxsIT09byYmbnVsbCE9PW8uc2VsZWN0ZWRDdXJyZW5jeSYmIW8uYWxsQ3VycmVuY2llc0FyZU9yaWdpbmFsJiZvLnNlbGVjdGVkQ3VycmVuY3khPT1hJiYocyYmbnVsbD09PWF8fG51bGwhPT1hJiZyPy5jb252ZXJ0aWJsZShhKSkmJihuPW8uc2VsZWN0ZWRDdXJyZW5jeSl9cmV0dXJuIG59CmNvbnN0IFVuPW5ldyB5LlRyYW5zbGF0ZWRTdHJpbmcoInRvZ2dsZSBjb2xsYXBzZWQgcGFuZSBzdGF0ZSIscC50KG51bGwsdm9pZCAwLGkoMTQ1MzY2KSkpO2NsYXNzIEduIGV4dGVuZHMgRS5VbmRvQ29tbWFuZHtjb25zdHJ1Y3RvcihlLHQpe3N1cGVyKFVuKSx0aGlzLl9jaGFydE1vZGVsPWUsdGhpcy5fcGFuZUluZGV4PXR9cmVkbygpe3RoaXMuX2NoYXJ0TW9kZWwudG9nZ2xlQ29sbGFwc2VkUGFuZSh0aGlzLl9wYW5lSW5kZXgpfXVuZG8oKXt0aGlzLl9jaGFydE1vZGVsLnRvZ2dsZUNvbGxhcHNlZFBhbmUodGhpcy5fcGFuZUluZGV4KX19Y29uc3Qgam49bmV3IHkuVHJhbnNsYXRlZFN0cmluZygidG9nZ2xlIG1heGltaXplZCBwYW5lIHN0YXRlIixwLnQobnVsbCx2b2lkIDAsaSg3ODQxMjgpKSk7Y2xhc3MgcW4gZXh0ZW5kcyBFLlVuZG9Db21tYW5ke2NvbnN0cnVjdG9yKGUsdCl7c3VwZXIoam4pLHRoaXMuX21vZGVsPWU7Y29uc3QgaT1lLm1heGltaXplZFBhbmUoKS52YWx1ZSgpLHM9bnVsbD09PWk/bnVsbDplLnBhbmVzKCkuaW5kZXhPZihpKTt0aGlzLl9tYXhpbWl6ZWRQYW5lSW5kZXg9dD09PWk/bnVsbDplLnBhbmVzKCkuaW5kZXhPZih0KSx0aGlzLl9wcmV2TWF4aW1pemVkUGFuZUluZGV4PXN9cmVkbygpe3RoaXMuX3NldE1heGltaXplZFBhbmUodGhpcy5fbWF4aW1pemVkUGFuZUluZGV4KX11bmRvKCl7dGhpcy5fc2V0TWF4aW1pemVkUGFuZSh0aGlzLl9wcmV2TWF4aW1pemVkUGFuZUluZGV4KX1fc2V0TWF4aW1pemVkUGFuZShlKXt0aGlzLl9tb2RlbC5zZXRNYXhpbWl6ZWRQYW5lKG51bGw9PT1lP251bGw6dGhpcy5fbW9kZWwucGFuZXMoKVtlXSl9fXZhciAkbj1pKDQzODUzOSksWW49aSg4MzY4MjgpO2NvbnN0IEtuPW5ldyB5LlRyYW5zbGF0ZWRTdHJpbmcoIm1vdmUgYWxsIHNjYWxlcyB0byBsZWZ0IixwLnQobnVsbCx2b2lkIDAsaSg5NjM1NTEpKSksWG49bmV3IHkuVHJhbnNsYXRlZFN0cmluZygibW92ZSBhbGwgc2NhbGVzIHRvIHJpZ2h0IixwLnQobnVsbCx2b2lkIDAsaSg3OTEzNzEpKSksWm49KDAsYy5nZXRMb2dnZXIpKCJDaGFydC5NZXJnZUFsbFNjYWxlcyIpO2NsYXNzIEpuIGV4dGVuZHMgRS5VbmRvQ29tbWFuZHtjb25zdHJ1Y3RvcihlLHQsaSxzLG4scil7c3VwZXIociksdGhpcy5fbW9kZWw9ZSx0aGlzLl9wYW5lSW5kZXg9ZS5wYW5lcygpLmluZGV4T2YodCksdGhpcy5fdGFyZ2V0UG9zaXRpb249cyx0aGlzLl90YXJnZXRJbmRleD1uLHRoaXMuX3NjYWxlSWQ9aS5pZCgpLHRoaXMuX3NvdXJjZVBvc2l0aW9uPXQucHJpY2VTY2FsZVBvc2l0aW9uKGkpLCJvdmVybGF5IiE9PXRoaXMuX3NvdXJjZVBvc2l0aW9uJiYodGhpcy5fc291cmNlSW5kZXg9dC5wcmljZVNjYWxlSW5kZXgoaSx0aGlzLl9zb3VyY2VQb3NpdGlvbikpfXJlZG8oKXtjb25zdCBlPXRoaXMuX21vZGVsLnBhbmVzKClbdGhpcy5fcGFuZUluZGV4XSx0PSgwLGwuZW5zdXJlTm90TnVsbCkoZS5nZXRQcmljZVNjYWxlQnlJZCh0aGlzLl9zY2FsZUlkKSk7ZS5tb3ZlUHJpY2VTY2FsZSh0LHRoaXMuX3RhcmdldFBvc2l0aW9uLHRoaXMuX3RhcmdldEluZGV4KSx0aGlzLl9tb2RlbC5mdWxsVXBkYXRlKCl9dW5kbygpe2NvbnN0IGU9dGhpcy5fbW9kZWwucGFuZXMoKVt0aGlzLl9wYW5lSW5kZXhdLHQ9KDAsbC5lbnN1cmVOb3ROdWxsKShlLmdldFByaWNlU2NhbGVCeUlkKHRoaXMuX3NjYWxlSWQpKTtlLm1vdmVQcmljZVNjYWxlKHQsdGhpcy5fc291cmNlUG9zaXRpb24sdGhpcy5fc291cmNlSW5kZXgpLHRoaXMuX21vZGVsLmZ1bGxVcGRhdGUoKX19dmFyIFFuPWkoNjU2MTkxKTtjbGFzcyBlciBleHRlbmRzIEUuVW5kb0NvbW1hbmR7Y29uc3RydWN0b3IoZSx0LGkscyl7c3VwZXIocyx2b2lkIDAsIVFuLmxpbmVUb29sc0RvTm90QWZmZWN0Q2hhcnRJbnZhbGlkYXRpb24pLHRoaXMuX2NyZWF0ZWRJZHM9W10sdGhpcy5fYWN0aW9uU291cmNlV2FzU2VudD0hMSx0aGlzLl9tb2RlbD1lLHRoaXMuX3dpdGhvdXRTaGlmdD1pLHRoaXMuX29yaWdTdGF0ZXM9dC5tYXAoKGU9PmUuc3RhdGUoITApKSk7Y29uc3Qgbj1lLmxpbmVUb29sc0dyb3VwTW9kZWwoKTt0aGlzLl9vcmlnR3JvdXBzPXQubWFwKChlPT57Y29uc3QgdD1uLmdyb3VwRm9yTGluZVRvb2woZSk7cmV0dXJuIHQmJnQuaWR9KSl9cmVkbygpe2NvbnN0IGU9dGhpcy5fbW9kZWwubGluZVRvb2xzR3JvdXBNb2RlbCgpO2xldCB0O3RoaXMuX2FjdGlvblNvdXJjZVdhc1NlbnR8fCh0PSJDbG9uZSIsdGhpcy5fYWN0aW9uU291cmNlV2FzU2VudD0hMCk7Y29uc3QgaT10aGlzLl9vcmlnU3RhdGVzLm1hcCgoKGkscyk9Pntjb25zdCBuPSgwLGwuZW5zdXJlTm90TnVsbCkodGhpcy5fbW9kZWwuZGF0YVNvdXJjZUZvcklkKGkuaWQpKSxyPTA9PT10aGlzLl9jcmVhdGVkSWRzLmxlbmd0aD92b2lkIDA6KDAsbC5lbnN1cmVEZWZpbmVkKSh0aGlzLl9jcmVhdGVkSWRzW3NdKSxvPSgwLHJpLmNsb25lTGluZVRvb2wpKHRoaXMuX21vZGVsLG4sIXRoaXMuX3dpdGhvdXRTaGlmdCxyLHQpO3ZvaWQgMCE9PWkuc2hhcmluZ01vZGUmJm8uc2hhcmUoaS5zaGFyaW5nTW9kZSk7Y29uc3QgYT0oMCxsLmVuc3VyZU5vdE51bGwpKG4ucHJpY2VTY2FsZSgpKTsoMCxsLmVuc3VyZU5vdE51bGwpKHRoaXMuX21vZGVsLnBhbmVGb3JTb3VyY2UobikpLmFkZERhdGFTb3VyY2UobyxhLCExKTtjb25zdCBjPXRoaXMuX29yaWdHcm91cHNbc107aWYobnVsbCE9PWMpe2NvbnN0IHQ9ZS5ncm91cEZvcklkKGMpO3QmJnQuYWRkSXRlbXMoW29dKX1yZXR1cm4gdGhpcy5fbW9kZWwudXBkYXRlU291cmNlKG8pLG99KSk7MD09PXRoaXMuX2NyZWF0ZWRJZHMubGVuZ3RoJiYodGhpcy5fY3JlYXRlZElkcz1pLm1hcCgoZT0+ZS5pZCgpKSkpLHRoaXMuX21vZGVsLnNlbGVjdGlvbk1hY3JvKChlPT57ZS5jbGVhclNlbGVjdGlvbigpLGkuZm9yRWFjaCgodD0+e2UuYWRkSXRlbVRvU2VsZWN0aW9uKHQpfSkpfSkpLHRoaXMuX21vZGVsLnNldFNob3VsZEJlU2F2ZWRFdmVuSWZIaWRkZW4oITApfXVuZG8oKXtjb25zdCBlPXRoaXMuX21vZGVsLmxpbmVUb29sc0dyb3VwTW9kZWwoKQo7dGhpcy5fY3JlYXRlZElkcy5mb3JFYWNoKCh0PT57Y29uc3QgaT0oMCxsLmVuc3VyZU5vdE51bGwpKHRoaXMuX21vZGVsLmRhdGFTb3VyY2VGb3JJZCh0KSkscz1lLmdyb3VwRm9yTGluZVRvb2woaSk7bnVsbCE9PXMmJnMuZXhjbHVkZUl0ZW0oaSksdGhpcy5fbW9kZWwucmVtb3ZlU291cmNlKGkpfSkpfW5ld0lkcygpe3JldHVybiB0aGlzLl9jcmVhdGVkSWRzfX12YXIgdHI9aSg4NDg3ODUpLGlyPWkoNDY3NTM5KSxzcj1pKDc2NTg3MSk7Y2xhc3MgbnIgZXh0ZW5kcyBFLlVuZG9Db21tYW5ke2NvbnN0cnVjdG9yKGUsdCxpLHM9ITApe3N1cGVyKGkscywoMCxzci5zb3VyY2VzQWZmZWN0U3RhdGUpKHQpKSx0aGlzLl9uZXdTdGF0ZXM9W10sdGhpcy5fbW9kZWw9ZSx0aGlzLl9zYXZlZFN0YXRlcz10Lm1hcCgoZT0+ZS5zdGF0ZSghMSkpKX1yZWRvKCl7dGhpcy5fYXBwbHlTdGF0ZSh0aGlzLl9uZXdTdGF0ZXMpfXVuZG8oKXswPT09dGhpcy5fbmV3U3RhdGVzLmxlbmd0aCYmdGhpcy5zYXZlTmV3U3RhdGUoKSx0aGlzLl9hcHBseVN0YXRlKHRoaXMuX3NhdmVkU3RhdGVzKX1zYXZlTmV3U3RhdGUoKXtjb25zdCBlPXRoaXMuX3NhdmVkU3RhdGVzLmZpbHRlcihhLm5vdE51bGwpLm1hcCgoZT0+KDAsbC5lbnN1cmVOb3ROdWxsKSh0aGlzLl9tb2RlbC5kYXRhU291cmNlRm9ySWQoZS5pZCkpKSk7dGhpcy5fbmV3U3RhdGVzPWUubWFwKChlPT5lLnN0YXRlKCExKSkpfV9hcHBseVN0YXRlKGUpe2Zvcihjb25zdCB0IG9mIGUpaWYobnVsbCE9PXQpe2NvbnN0IGU9dGhpcy5fbW9kZWwuZGF0YVNvdXJjZUZvcklkKHQuaWQpO2lmKG51bGwhPT1lKWlmKCgwLHRpLmlzU3R1ZHkpKGUpKXtjb25zdCBpPXQuc3RhdGUuaW5wdXRzLHM9ZS5wcm9wZXJ0aWVzKCkuY2hpbGRzKCkuaW5wdXRzLmNoaWxkcygpO2Zvcihjb25zdCBlIGluIGkpc1tlXSYmc1tlXS5zZXRWYWx1ZShpW2VdKX1lbHNle2NvbnN0IGk9ZTt0aGlzLl9tb2RlbC5yZXN0b3JlTGluZVRvb2xTdGF0ZShpLHQsITApLGkuc3luY2hyb25pemVBbGVydCghMCl9fX19dmFyIHJyPWkoOTk5OTc0KTtjbGFzcyBvciBleHRlbmRzIHJyLk1vdmVTb3VyY2VVbmRvQ29tbWFuZHtjb25zdHJ1Y3RvcihlLHQsaSl7c3VwZXIoZSx0LGkpfXJlZG8oKXtjb25zdCBlPSgwLGwuZW5zdXJlTm90TnVsbCkodGhpcy5fY2hhcnRNb2RlbC5kYXRhU291cmNlRm9ySWQodGhpcy5fc291cmNlSWQpKSx0PSgwLGwuZW5zdXJlTm90TnVsbCkodGhpcy5fY2hhcnRNb2RlbC5wYW5lRm9yU291cmNlKGUpKSxpPXRoaXMuX2NoYXJ0TW9kZWwuY2hpbGRyZW4oZSwhMCwhMCk7dC5idWxrQWN0aW9uTWFjcm8oKCgpPT57aS5mb3JFYWNoKChlPT50aGlzLl9jaGFydE1vZGVsLmRldGFjaFNvdXJjZShlKSkpLHRoaXMuX2NoYXJ0TW9kZWwuZGV0YWNoU291cmNlKGUpfSkpO2NvbnN0IHM9dGhpcy5fY2hhcnRNb2RlbC5jcmVhdGVQYW5lKHRoaXMudGFyZ2V0UGFuZUluZGV4KGUpKSxuPXMuZmluZFN1aXRhYmxlU2NhbGUoZSk7cy5idWxrQWN0aW9uTWFjcm8oKCgpPT57cy5hZGREYXRhU291cmNlKGUsbiwhMSksaS5mb3JFYWNoKChlPT5zLmFkZERhdGFTb3VyY2UoZSxuLCExKSkpfSkpO2NvbnN0IHI9KDAsbC5lbnN1cmVOb3ROdWxsKShlLnByaWNlU2NhbGUoKSk7ci5yZXN0b3JlU3RhdGUodGhpcy5fbmV3UHJpY2VTY2FsZVN0YXRlKHMuaXNPdmVybGF5KGUpKSksci5zZXRIZWlnaHQocy5oZWlnaHQoKSksdGhpcy5fY2hhcnRNb2RlbC5mdWxsVXBkYXRlKCksdGhpcy5fY2hhcnRNb2RlbC5zZXRTaG91bGRCZVNhdmVkRXZlbklmSGlkZGVuKCEwKX11bmRvKCl7Y29uc3QgZT0oMCxsLmVuc3VyZU5vdE51bGwpKHRoaXMuX2NoYXJ0TW9kZWwuZGF0YVNvdXJjZUZvcklkKHRoaXMuX3NvdXJjZUlkKSksdD0oMCxsLmVuc3VyZU5vdE51bGwpKHRoaXMuX2NoYXJ0TW9kZWwucGFuZUZvclNvdXJjZShlKSksaT10aGlzLl9jaGFydE1vZGVsLmNoaWxkcmVuKGUsITAsITApO3QuYnVsa0FjdGlvbk1hY3JvKCgoKT0+e2kuZm9yRWFjaCgoZT0+dGhpcy5fY2hhcnRNb2RlbC5kZXRhY2hTb3VyY2UoZSkpKTtjb25zdCB0PXRoaXMuX2NoYXJ0TW9kZWwuZGV0YWNoU291cmNlKGUpOygwLGwuYXNzZXJ0KSh0LCJVbmRvIG9mIGRldGFjaGluZyBtdXN0IHJlbW92ZSBwYW5lIil9KSk7Y29uc3Qgcz10aGlzLl9jaGFydE1vZGVsLnBhbmVzKClbdGhpcy5faW5pdGlhbFBhbmVJbmRleF07bGV0IG49cy5nZXRQcmljZVNjYWxlQnlJZCh0aGlzLl9pbml0aWFsUHJpY2VTY2FsZUlkKTtudWxsPT09biYmKG49cy5jcmVhdGVQcmljZVNjYWxlQXRQb3NpdGlvbih0aGlzLl9pbml0aWFsUHJpY2VTY2FsZVBvc2l0aW9uLHRoaXMuX2luaXRpYWxQcmljZVNjYWxlSW5kZXgpKSxzLmJ1bGtBY3Rpb25NYWNybygoKCk9PntzLmFkZERhdGFTb3VyY2UoZSxuLCEwKSxpLmZvckVhY2goKGU9PnMuYWRkRGF0YVNvdXJjZShlLG4sITEpKSl9KSk7Y29uc3Qgcj0oMCxsLmVuc3VyZU5vdE51bGwpKGUucHJpY2VTY2FsZSgpKTtyLnJlc3RvcmVTdGF0ZSh0aGlzLl9vcmlnaW5hbFByaWNlU2NhbGVTdGF0ZSgpKSxyLnNldEhlaWdodChzLmhlaWdodCgpKSx0aGlzLl9jaGFydE1vZGVsLmZ1bGxVcGRhdGUoKX19Y2xhc3MgYXIgZXh0ZW5kcyBvcntjb25zdHJ1Y3RvcihlLHQsaSl7c3VwZXIoZSx0LGkpfXRhcmdldFBhbmVJbmRleChlKXtjb25zdCB0PXRoaXMuX2NoYXJ0TW9kZWwucGFuZXMoKTtpZighdFt0aGlzLl9pbml0aWFsUGFuZUluZGV4XS5jb250YWluc01haW5TZXJpZXMoKXx8ZT09PXRoaXMuX2NoYXJ0TW9kZWwubWFpblNlcmllcygpKXJldHVybiB0aGlzLl9pbml0aWFsUGFuZUluZGV4KzE7Zm9yKGxldCBlPXRoaXMuX2luaXRpYWxQYW5lSW5kZXgrMTtlPHQubGVuZ3RoO2UrKylpZih0W2VdLm1vZGUoKT09PU0uUGFuZU1vZGUuUmVndWxhcilyZXR1cm4gZTx0Lmxlbmd0aC0xJiZ0W2VdLmNvbnRhaW5zTWFpblNlcmllcygpJiZ0W2UrMV0ubW9kZSgpPT09TS5QYW5lTW9kZS5XaWRnZXQ/ZSsxOmU7cmV0dXJuIHQubGVuZ3RofX1jbGFzcyBsciBleHRlbmRzIG9ye2NvbnN0cnVjdG9yKGUsdCxpKXtzdXBlcihlLHQsaSl9CnRhcmdldFBhbmVJbmRleChlKXtjb25zdCB0PXRoaXMuX2NoYXJ0TW9kZWwucGFuZXMoKTtpZighdFt0aGlzLl9pbml0aWFsUGFuZUluZGV4XS5jb250YWluc01haW5TZXJpZXMoKXx8ZT09PXRoaXMuX2NoYXJ0TW9kZWwubWFpblNlcmllcygpKXJldHVybiB0aGlzLl9pbml0aWFsUGFuZUluZGV4O2ZvcihsZXQgZT10aGlzLl9pbml0aWFsUGFuZUluZGV4LTE7ZT49MDtlLS0paWYodFtlXS5tb2RlKCk9PT1NLlBhbmVNb2RlLlJlZ3VsYXIpcmV0dXJuIGU+MCYmdFtlXS5jb250YWluc01haW5TZXJpZXMoKSYmdFtlLTFdLm1vZGUoKT09PU0uUGFuZU1vZGUuV2lkZ2V0P2UtMTplO3JldHVybiAwfX1jbGFzcyBjciBleHRlbmRzIG9ye2NvbnN0cnVjdG9yKGUsdCxpKXtzdXBlcihlLHQsaSl9dGFyZ2V0UGFuZUluZGV4KCl7cmV0dXJuIHRoaXMuX2NoYXJ0TW9kZWwucGFuZXMoKS5sZW5ndGh9fXZhciBocj1pKDk2NDU3MyksZHI9aSg5MDA3OTcpLHVyPWkoNzc1ODY5KSxwcj1pKDUyMzc2NSksX3I9aSg0NTYyMyk7Y29uc3QgbXI9bmV3IHkuVHJhbnNsYXRlZFN0cmluZygiY3JlYXRlIHt0b29sfSIscC50KG51bGwsdm9pZCAwLGkoNTQ5OTg2KSkpO2NsYXNzIGdyIGV4dGVuZHMgcHIuTGluZVRvb2xTeW5jaHJvbml6ZVVuZG9Db21tYW5ke2NvbnN0cnVjdG9yKHttb2RlbDplLHBhbmU6dCxsaW5lVG9vbDppLG93bmVyU291cmNlOnMsZHJhd09uQWxsQ2hhcnRzTW9kZTpuPTAsaWQ6cixrZWVwU2VsZWN0ZWRHcm91cDpvPSExfSl7c3VwZXIoZSxtci5mb3JtYXQoe3Rvb2w6bmV3IHkuVHJhbnNsYXRlZFN0cmluZyhpLF9yLmxpbmVUb29sc0xvY2FsaXplZE5hbWVzW2ldKX0pLCExLCFRbi5saW5lVG9vbHNEb05vdEFmZmVjdENoYXJ0SW52YWxpZGF0aW9uKSx0aGlzLl9saW5lSWQ9bnVsbCx0aGlzLl9saW5lU3RhdGU9bnVsbCx0aGlzLl9wYW5lSW5kZXg9ZS5wYW5lcygpLmluZGV4T2YodCksdGhpcy5fbGluZVRvb2w9aSx0aGlzLl9vd25lclNvdXJjZUlkPXMuaWQoKSx0aGlzLl9saW5lSWQ9cj8/bnVsbCx0aGlzLl9kcmF3T25BbGxDaGFydHNNb2RlPW4sdGhpcy5fa2VlcFNlbGVjdGVkR3JvdXA9b31rZWVwU2VsZWN0ZWRHcm91cCgpe3JldHVybiB0aGlzLl9rZWVwU2VsZWN0ZWRHcm91cH1zdGFydENyZWF0aW5nTGluZShlLHQsaSxzLG4scil7Y29uc3Qgbz10aGlzLl9jaGFydE1vZGVsLnBhbmVzKClbdGhpcy5fcGFuZUluZGV4XSxhPXRoaXMuX2NoYXJ0TW9kZWwuZGF0YVNvdXJjZUZvcklkKHRoaXMuX293bmVyU291cmNlSWQpfHx2b2lkIDAsbD10aGlzLl9jaGFydE1vZGVsLmNyZWF0ZUxpbmVUb29sKHtwYW5lOm8scG9pbnQ6ZSxsaW5ldG9vbDp0aGlzLl9saW5lVG9vbCxwcm9wZXJ0aWVzOnQsbGlua0tleTppLHNoYXJpbmdNb2RlOnMsb3duZXJTb3VyY2U6YSxpZDp0aGlzLl9saW5lSWQ/P3ZvaWQgMCxmcm9tRXh0ZXJuYWxNb2RlbDpuLGFjdGlvblNvdXJjZTpyfSk7cmV0dXJuIHRoaXMuX2xpbmVJZD1sLmlkKCksdGhpcy5fZnJvbUV4dGVybmFsTW9kZWw9biwhdGhpcy5fY2hhcnRNb2RlbC5saW5lQmVpbmdDcmVhdGVkKCl9Y29udGludWVDcmVhdGluZ0xpbmUoZSx0LGkscyl7KDAsbC5hc3NlcnQpKHRoaXMuX2xpbmVJZD09PXRoaXMuX2NoYXJ0TW9kZWwubGluZUJlaW5nQ3JlYXRlZCgpPy5pZCgpLCJDYW5ub3QgY29udGludWUgbm90IGxlYXN0IGNyZWF0ZWQgbGluZSIpO2NvbnN0IG49dGhpcy5fY2hhcnRNb2RlbC5jb250aW51ZUNyZWF0aW5nTGluZShlLHQsaSxzLHRoaXMuX2Zyb21FeHRlcm5hbE1vZGVsKTtyZXR1cm4gbiYmdGhpcy5fY2hhcnRNb2RlbC5zZXRTaG91bGRCZVNhdmVkRXZlbklmSGlkZGVuKCEwKSxufWxpbmUoKXtyZXR1cm4gbnVsbD09PXRoaXMuX2xpbmVJZD9udWxsOnRoaXMuX2NoYXJ0TW9kZWwuZGF0YVNvdXJjZUZvcklkKHRoaXMuX2xpbmVJZCl9ZHJhd09uQWxsQ2hhcnRzKCl7cmV0dXJuIDAhPT10aGlzLl9kcmF3T25BbGxDaGFydHNNb2RlfV9yZWRvKCl7aWYobnVsbD09PXRoaXMuX2xpbmVTdGF0ZSlyZXR1cm47Y29uc3QgZT10aGlzLl9jaGFydE1vZGVsLnJlc3RvcmVTb3VyY2UoITEsdGhpcy5fcGFuZUluZGV4LG51bGwsKDAsbC5lbnN1cmVOb3ROdWxsKSh0aGlzLl9saW5lU3RhdGUpLG51bGwpO251bGwhPT1lJiYodGhpcy5fbGluZUlkPWUuaWQoKSx0aGlzLl9saW5lU3RhdGU9bnVsbCxlLnNoYXJlKHRoaXMuX2RyYXdPbkFsbENoYXJ0c01vZGUpKX1fdW5kbygpe2NvbnN0IGU9dGhpcy5saW5lKCk7bnVsbCE9PWUmJih0aGlzLl9saW5lU3RhdGU9ZS5zdGF0ZSghMSksdGhpcy5fY2hhcnRNb2RlbC5yZW1vdmVTb3VyY2UoZSksdGhpcy5fbGluZUlkPW51bGwpfX1jb25zdCBmcj1uZXcgeS5UcmFuc2xhdGVkU3RyaW5nKCJicmluZyB7dGl0bGV9IHRvIGZyb250IixwLnQobnVsbCx2b2lkIDAsaSgzODY1MjIpKSksU3I9bmV3IHkuVHJhbnNsYXRlZFN0cmluZygic2VuZCB7dGl0bGV9IHRvIGJhY2siLHAudChudWxsLHZvaWQgMCxpKDUwMTUwNykpKSx2cj1uZXcgeS5UcmFuc2xhdGVkU3RyaW5nKCJpbnNlcnQge3RpdGxlfSBhZnRlciB7dGFyZ2V0VGl0bGV9IixwLnQobnVsbCx2b2lkIDAsaSgxMDg2MDIpKSkseXI9bmV3IHkuVHJhbnNsYXRlZFN0cmluZygiaW5zZXJ0IHt0aXRsZX0gYmVmb3JlIHt0YXJnZXRUaXRsZX0iLHAudChudWxsLHZvaWQgMCxpKDc4MTcyMSkpKSxicj1uZXcgeS5UcmFuc2xhdGVkU3RyaW5nKCJzZW5kIHt0aXRsZX0gYmFja3dhcmQiLHAudChudWxsLHZvaWQgMCxpKDU0MDAzOCkpKSx3cj1uZXcgeS5UcmFuc2xhdGVkU3RyaW5nKCJicmluZyB7dGl0bGV9IGZvcndhcmQiLHAudChudWxsLHZvaWQgMCxpKDg4NzI4MikpKSxDcj1uZXcgeS5UcmFuc2xhdGVkU3RyaW5nKCJzZW5kIGdyb3VwIHt0aXRsZX0gYmFja3dhcmQiLHAudChudWxsLHZvaWQgMCxpKDUxNzYyMikpKSxQcj1uZXcgeS5UcmFuc2xhdGVkU3RyaW5nKCJicmluZyBncm91cCB7dGl0bGV9IGZvcndhcmQiLHAudChudWxsLHZvaWQgMCxpKDYwMjQzMSkpKTtmdW5jdGlvbiBUcihlKXsKcmV0dXJuIG5ldyB5LlRyYW5zbGF0ZWRTdHJpbmcoZS5uYW1lKCksZS50aXRsZShObi5UaXRsZURpc3BsYXlUYXJnZXQuU3RhdHVzTGluZSkpfWNsYXNzIHhyIGV4dGVuZHMgRS5VbmRvQ29tbWFuZHtjb25zdHJ1Y3RvcihlLHQsaSl7c3VwZXIoaSx2b2lkIDAsKDAsc3Iuc291cmNlc0FmZmVjdFN0YXRlKSh0KSksdGhpcy5fc291cmNlc0J5UGFuZXM9bmV3IE1hcCx0aGlzLl9vcmlnaW5hbFN0YXRlPW5ldyBNYXAsdGhpcy5fbW9kZWw9ZSx0LmZvckVhY2goKHQ9Pntjb25zdCBpPSgwLGwuZW5zdXJlTm90TnVsbCkoZS5wYW5lRm9yU291cmNlKHQpKSxzPWUucGFuZXMoKS5pbmRleE9mKGkpLG49dGhpcy5fc291cmNlc0J5UGFuZXMuZ2V0KHMpfHxbXTtuLnB1c2godC5pZCgpKSx0aGlzLl9zb3VyY2VzQnlQYW5lcy5zZXQocyxuKX0pKSxBcnJheS5mcm9tKHRoaXMuX3NvdXJjZXNCeVBhbmVzLmtleXMoKSkuZm9yRWFjaCgodD0+e2NvbnN0IGk9ZS5wYW5lcygpW3RdLHM9bmV3IE1hcCxuPW5ldyBTZXQoaS5zb3VyY2VzQnlHcm91cCgpLm11bHRpcGFuZVNvdXJjZXMoKSk7aS5zb3VyY2VzQnlHcm91cCgpLmFsbEluY2x1ZGluZ0hpZGRlbigpLmZpbHRlcigoZT0+IW4uaGFzKGUpKSkuZm9yRWFjaCgoZT0+e3Muc2V0KGUuaWQoKSxlLnpvcmRlcigpKX0pKSx0aGlzLl9vcmlnaW5hbFN0YXRlLnNldCh0LHMpfSkpfXVuZG8oKXt0aGlzLl9vcmlnaW5hbFN0YXRlLmZvckVhY2goKChlLHQpPT57Y29uc3QgaT10aGlzLl9tb2RlbC5wYW5lcygpW3RdLHM9bmV3IE1hcDtlLmZvckVhY2goKChlLHQpPT57Y29uc3Qgbj0oMCxsLmVuc3VyZU5vdE51bGwpKGkuZGF0YVNvdXJjZUZvcklkKHQpKTtzLnNldChuLGUpfSkpLGkuc2V0Wk9yZGVycyhzKX0pKX1yZWRvKCl7dGhpcy5fc291cmNlc0J5UGFuZXMuZm9yRWFjaCgoKGUsdCk9Pntjb25zdCBpPXRoaXMuX21vZGVsLnBhbmVzKClbdF0scz1lLm1hcCgoZT0+KDAsbC5lbnN1cmVOb3ROdWxsKShpLmRhdGFTb3VyY2VGb3JJZChlKSkpKTt0aGlzLl9wYW5lT3BlcmF0aW9uKGkscyl9KSl9fWNsYXNzIE1yIGV4dGVuZHMgeHJ7Y29uc3RydWN0b3IoZSx0KXtzdXBlcihlLHQsZnIuZm9ybWF0KHt0aXRsZTpUcih0WzBdKX0pKX1fcGFuZU9wZXJhdGlvbihlLHQpe2UuYnJpbmdUb0Zyb250KHQpfX1jbGFzcyBJciBleHRlbmRzIHhye2NvbnN0cnVjdG9yKGUsdCl7c3VwZXIoZSx0LFNyLmZvcm1hdCh7dGl0bGU6VHIodFswXSl9KSl9X3BhbmVPcGVyYXRpb24oZSx0KXtlLnNlbmRUb0JhY2sodCl9fWNsYXNzIExyIGV4dGVuZHMgeHJ7Y29uc3RydWN0b3IoZSx0LGkscyl7c3VwZXIoZSx0LHMpLHRoaXMuX3RhcmdldFNvdXJjZT1pfV9wYW5lT3BlcmF0aW9uKGUsdCl7ZS5pbnNlcnRBZnRlcih0LHRoaXMuX3RhcmdldFNvdXJjZSl9fWNsYXNzIEFyIGV4dGVuZHMgTHJ7Y29uc3RydWN0b3IoZSx0LGkpe3N1cGVyKGUsdCxpLHZyLmZvcm1hdCh7dGl0bGU6VHIodFswXSksdGFyZ2V0VGl0bGU6VHIoaSl9KSl9fWNsYXNzIGtyIGV4dGVuZHMgeHJ7Y29uc3RydWN0b3IoZSx0LGkscyl7c3VwZXIoZSx0LHMpLHRoaXMuX3RhcmdldFNvdXJjZT1pfV9wYW5lT3BlcmF0aW9uKGUsdCl7ZS5pbnNlcnRCZWZvcmUodCx0aGlzLl90YXJnZXRTb3VyY2UpfX1jbGFzcyBEciBleHRlbmRzIGtye2NvbnN0cnVjdG9yKGUsdCxpKXtzdXBlcihlLHQsaSx5ci5mb3JtYXQoe3RpdGxlOlRyKHRbMF0pLHRhcmdldFRpdGxlOlRyKGkpfSkpfX1mdW5jdGlvbiBFcihlLHQpe2NvbnN0IGk9dFswXSxzPWUuc291cmNlc0J5R3JvdXAoKS5hbGxFeGNlcHRTcGVjaWFsU291cmNlcygpLmZpbHRlcigoZT0+ZS56b3JkZXIoKTxpLnpvcmRlcigpKSk7aWYoMD09PXMubGVuZ3RoKXRocm93IG5ldyBFcnJvcigiQ2Fubm90IG1vdmUgYmFja3dhcmQgc291cmNlIHRoYXQgYWxyZWFkeSBvbiBiYWNrIik7bGV0IG49c1tzLmxlbmd0aC0xXTtpZigoMCxyaS5pc0xpbmVUb29sKShuKSl7Y29uc3QgdD1lLm1vZGVsKCkubGluZVRvb2xzR3JvdXBNb2RlbCgpLmdyb3VwRm9yTGluZVRvb2wobik7bnVsbCE9PXQmJihuPXQubGluZVRvb2xzKClbMF0pfXJldHVybiBufWNsYXNzIFJyIGV4dGVuZHMga3J7Y29uc3RydWN0b3IoZSx0LGkpe3N1cGVyKGUsaSxFcih0LGkpLGJyLmZvcm1hdCh7dGl0bGU6VHIoaVswXSl9KSl9fWZ1bmN0aW9uIFZyKGUsdCl7Y29uc3QgaT10W3QubGVuZ3RoLTFdLHM9ZS5zb3VyY2VzQnlHcm91cCgpLmFsbEV4Y2VwdFNwZWNpYWxTb3VyY2VzKCkuZmlsdGVyKChlPT5lLnpvcmRlcigpPmkuem9yZGVyKCkpKTtpZigwPT09cy5sZW5ndGgpdGhyb3cgbmV3IEVycm9yKCJDYW5ub3QgYnJpbmcgZm9yd2FyZCBzb3VyY2UgdGhhdCBhbHJlYWR5IG9uIGJhY2siKTtsZXQgbj1zWzBdO2lmKCgwLHJpLmlzTGluZVRvb2wpKG4pKXtjb25zdCB0PWUubW9kZWwoKS5saW5lVG9vbHNHcm91cE1vZGVsKCkuZ3JvdXBGb3JMaW5lVG9vbChuKTtpZihudWxsIT09dCl7Y29uc3QgZT10LmxpbmVUb29scygpO249ZVtlLmxlbmd0aC0xXX19cmV0dXJuIG59Y2xhc3MgQnIgZXh0ZW5kcyBMcntjb25zdHJ1Y3RvcihlLHQsaSl7c3VwZXIoZSxpLFZyKHQsaSksd3IuZm9ybWF0KHt0aXRsZTpUcihpWzBdKX0pKX19ZnVuY3Rpb24gTnIoZSx0KXtyZXR1cm4oMCxsLmVuc3VyZU5vdE51bGwpKGUucGFuZUZvclNvdXJjZSh0LmxpbmVUb29scygpWzBdKSl9Y2xhc3MgT3IgZXh0ZW5kcyBrcntjb25zdHJ1Y3RvcihlLHQpe3N1cGVyKGUsdC5saW5lVG9vbHMoKSxFcihOcihlLHQpLHQubGluZVRvb2xzKCkpLENyLmZvcm1hdCh7dGl0bGU6dC5uYW1lKCkudmFsdWUoKX0pKX19Y2xhc3MgV3IgZXh0ZW5kcyBMcntjb25zdHJ1Y3RvcihlLHQpe3N1cGVyKGUsdC5saW5lVG9vbHMoKSxWcihOcihlLHQpLHQubGluZVRvb2xzKCkpLFByLmZvcm1hdCh7dGl0bGU6dC5uYW1lKCkudmFsdWUoKX0pKX19dmFyIEZyPWkoNjk0Mzg5KTtjb25zdCBIcj1uZXcgeS5UcmFuc2xhdGVkU3RyaW5nKCJyZWFycmFuZ2UgcGFuZXMiLHAudChudWxsLHZvaWQgMCxpKDc5NzQ5MSkpKTtjbGFzcyB6ciBleHRlbmRzIEUuVW5kb0NvbW1hbmR7Y29uc3RydWN0b3IoZSx0LGkpewppZihzdXBlcihIciksdGhpcy5fY2hhcnRNb2RlbD1lLHRoaXMuX2luZGV4PXQsKDAsYS5pc051bWJlcikoaSkpdGhpcy5fZHN0SW5kZXg9aTtlbHNle2NvbnN0IHM9InVwIj09PWk/LTE6MTt0aGlzLl9kc3RJbmRleD10K3MsZS5wYW5lcygpW3RoaXMuX2RzdEluZGV4XS5tb2RlKCk9PT1Gci5QYW5lTW9kZS5XaWRnZXQmJih0aGlzLl9kc3RJbmRleD10aGlzLl9kc3RJbmRleCtzKX19cmVkbygpe3RoaXMuX2NoZWNrSW5kaWNlcygpJiZ0aGlzLl9jaGFydE1vZGVsLm1vdmVQYW5lKHRoaXMuX2luZGV4LHRoaXMuX2RzdEluZGV4KX11bmRvKCl7dGhpcy5fY2hlY2tJbmRpY2VzKCkmJnRoaXMuX2NoYXJ0TW9kZWwubW92ZVBhbmUodGhpcy5fZHN0SW5kZXgsdGhpcy5faW5kZXgpfV9jaGVja0luZGljZXMoKXtjb25zdCBlPXRoaXMuX2NoYXJ0TW9kZWwucGFuZXMoKS5sZW5ndGg7cmV0dXJuIHRoaXMuX2luZGV4Pj0wJiZ0aGlzLl9pbmRleDxlJiZ0aGlzLl9kc3RJbmRleD49MCYmdGhpcy5fZHN0SW5kZXg8ZX19dmFyIFVyPWkoMzYyMjM5KTt2YXIgR3I9aSg5NzQ2NjMpLGpyPWkoMjI1Mjk4KSxxcj1pKDI2NDUxMyk7Y2xhc3MgJHIgZXh0ZW5kcyBFLlVuZG9Db21tYW5ke2NvbnN0cnVjdG9yKGUsdCxpLHMsbixyKXtzdXBlcihzKSx0aGlzLl9wcmV2UHJpY2VBeGlzUHJvcHM9e30sdGhpcy5fZGVwZW5kZW50VmFsdWVzPVtdLHRoaXMuX2ludGVydmFsQ2hhbmdlV2FzVHJhY2tlZD0hMSx0aGlzLl9wcm9wZXJ0eT1lLHRoaXMuX21haW5TZXJpZXM9aSx0aGlzLl92YWx1ZT10LHRoaXMuX21vZGVsPW4sdGhpcy5fY2hhcnRXaWRnZXQ9cn1yZWRvKCl7Y29uc3QgZT10aGlzLl9tYWluU2VyaWVzLHQ9ZS5wcm9wZXJ0aWVzKCkuY2hpbGRzKCk7dGhpcy5fZGVwZW5kZW50VmFsdWVzPSgwLHFyLnByZXBhcmVEZXBlbmRlbnRWYWx1ZXMpKHRoaXMuX3Byb3BlcnR5KSx0aGlzLl9wcmV2UmVzb2x1dGlvbj10LmludGVydmFsLnZhbHVlKCksdGhpcy5fcHJldlZhbHVlPXRoaXMuX3Byb3BlcnR5LnZhbHVlKCksdGhpcy5fc3RvcmVQcmljZUF4aXNQcm9wcygpLCgwLEdyLmFsbG93U2F2aW5nRGVmYXVsdHMpKCEwKTtjb25zdCBpPXQuaW50ZXJ2YWwudmFsdWUoKSxzPXRoaXMuX21vZGVsLmRlZmF1bHRSZXNvbHV0aW9ucygpLG49KDAsSS5nZXRSZXNvbHV0aW9uQnlDaGFydFN0eWxlKSh0aGlzLl92YWx1ZSxpLHMpO2pyLmxpbmtpbmcuaW50ZXJ2YWxTeW5jRW5hYmxlZCgpP2pyLmxpbmtpbmcuc2V0SW50ZXJ2YWxBbmRMb2dJbml0aWF0b3IobiwiQ2hhcnQgc3R5bGUiLHRoaXMuX2ludGVydmFsQ2hhbmdlV2FzVHJhY2tlZCx0aGlzLl9jaGFydFdpZGdldCk6dGhpcy5faW50ZXJ2YWxDaGFuZ2VXYXNUcmFja2VkfHx4LkludGVydmFsLmlzRXF1YWwoaSxuKXx8KDAsSGUudHJhY2tJbnRlcnZhbENoYW5naW5nKShuLCJDaGFydCBzdHlsZSIpLHRoaXMuX2ludGVydmFsQ2hhbmdlV2FzVHJhY2tlZD0hMCxlLnNldENoYXJ0U3R5bGVXaXRoSW50ZXJ2YWxJZk5lZWRlZCh0aGlzLl92YWx1ZSxuKSwoMCxBLnNldExhc3RVc2VkU3R5bGUpKHRoaXMuX3ZhbHVlLGUuc3ltYm9sSW5mbygpKSwoMCxBLnByZXBhcmVQcmljZUF4aXNQcm9wZXJ0aWVzKSh0KSwoMCxHci5hbGxvd1NhdmluZ0RlZmF1bHRzKSghMSksdGhpcy5faW52YWxpZGF0ZU1vZGVsKCksdGhpcy5fY2hhcnRXaWRnZXQuc2NyZWVuLnNob3coITApfXVuZG8oKXtjb25zdCBlPXRoaXMuX21haW5TZXJpZXM7KDAsR3IuYWxsb3dTYXZpbmdEZWZhdWx0cykoITApLGUuc2V0Q2hhcnRTdHlsZVdpdGhJbnRlcnZhbElmTmVlZGVkKHRoaXMuX3ByZXZWYWx1ZSx0aGlzLl9wcmV2UmVzb2x1dGlvbiksdGhpcy5fcmVzdG9yZVByaWNlQXhpc1Byb3BzKCksanIubGlua2luZy5pbnRlcnZhbFN5bmNFbmFibGVkKCkmJmpyLmxpbmtpbmcuc2V0SW50ZXJ2YWxBbmRMb2dJbml0aWF0b3IodGhpcy5fcHJldlJlc29sdXRpb24sIkNoYXJ0IHN0eWxlIHVuZG8iLCEwLHRoaXMuX2NoYXJ0V2lkZ2V0KSwoMCxxci5yZXN0b3JlRGVwZW5kZW50VmFsdWVzKSh0aGlzLl9wcm9wZXJ0eSx0aGlzLl9kZXBlbmRlbnRWYWx1ZXMpLCgwLEdyLmFsbG93U2F2aW5nRGVmYXVsdHMpKCExKSx0aGlzLl9pbnZhbGlkYXRlTW9kZWwoKSx0aGlzLl9jaGFydFdpZGdldC5zY3JlZW4uc2hvdyghMCl9X3N0b3JlUHJpY2VBeGlzUHJvcHMoKXtjb25zdCBlPXRoaXMuX21haW5TZXJpZXMucHJpY2VTY2FsZSgpO3RoaXMuX3ByZXZQcmljZUF4aXNQcm9wcz1lLm1vZGUoKX1fcmVzdG9yZVByaWNlQXhpc1Byb3BzKCl7dGhpcy5fbWFpblNlcmllcy5wcmljZVNjYWxlKCkuc2V0TW9kZSh0aGlzLl9wcmV2UHJpY2VBeGlzUHJvcHMpfV9pbnZhbGlkYXRlTW9kZWwoKXt0aGlzLl9tb2RlbCYmKHRoaXMuX21vZGVsLnJlY2FsY3VsYXRlQWxsUGFuZXMoKDAsdG4uc291cmNlQ2hhbmdlRXZlbnQpKHRoaXMuX21vZGVsLm1haW5TZXJpZXMoKS5pZCgpKSksdGhpcy5fbW9kZWwubGlnaHRVcGRhdGUoKSl9fWNvbnN0IFlyPW5ldyB5LlRyYW5zbGF0ZWRTdHJpbmcoImNoYW5nZSBkYXRlIHJhbmdlIixwLnQobnVsbCx2b2lkIDAsaSgyNDcwMTQpKSk7Y2xhc3MgS3IgZXh0ZW5kcyBFLlVuZG9Db21tYW5ke2NvbnN0cnVjdG9yKGUsdCl7c3VwZXIoWXIpLHRoaXMuX21vZGVsc0RhdGE9W10sdGhpcy5fcmFuZ2VPcHRpb25zPXQsdGhpcy5fbW9kZWxzRGF0YS5wdXNoKHttb2RlbDplLHByZXZSZXNvbHV0aW9uOmUubWFpblNlcmllcygpLnByb3BlcnRpZXMoKS5jaGlsZHMoKS5pbnRlcnZhbC52YWx1ZSgpLGJhclNwYWNpbmc6ZS50aW1lU2NhbGUoKS5iYXJTcGFjaW5nKCkscmlnaHRPZmZzZXQ6ZS50aW1lU2NhbGUoKS5yaWdodE9mZnNldCgpLHJhbmdlT3B0aW9uczplLmFwcGxpZWRUaW1lRnJhbWUoKS52YWx1ZSgpfSl9cmVkbygpe2Zvcihjb25zdCBlIG9mIHRoaXMuX21vZGVsc0RhdGEpe2NvbnN0IHQ9ZS5tb2RlbC5tYWluU2VyaWVzKCksaT10LnByb3BlcnRpZXMoKS5jaGlsZHMoKS5pbnRlcnZhbAo7eC5JbnRlcnZhbC5pc0VxdWFsKHRoaXMuX3JhbmdlT3B0aW9ucy5yZXMsaS52YWx1ZSgpKT90LmxvYWREYXRhVG8odGhpcy5fcmFuZ2VPcHRpb25zLnZhbCk6KHQuc2V0RGVmYXVsdFRpbWVmcmFtZSh0aGlzLl9yYW5nZU9wdGlvbnMudmFsKSx0LnNldFN5bWJvbFBhcmFtcyh7aW50ZXJ2YWw6dGhpcy5fcmFuZ2VPcHRpb25zLnJlc30pKX19dW5kbygpe2Zvcihjb25zdCBlIG9mIHRoaXMuX21vZGVsc0RhdGEpe2NvbnN0IHQ9ZS5tb2RlbC5tYWluU2VyaWVzKCksaT10LnByb3BlcnRpZXMoKS5jaGlsZHMoKS5pbnRlcnZhbDtlLnByZXZSZXNvbHV0aW9uIT09aS52YWx1ZSgpPyhudWxsIT09ZS5yYW5nZU9wdGlvbnMmJnQuc2V0RGVmYXVsdFRpbWVmcmFtZShlLnJhbmdlT3B0aW9ucy52YWwpLHQuc2V0U3ltYm9sUGFyYW1zKHtpbnRlcnZhbDplLnByZXZSZXNvbHV0aW9ufSkpOm51bGwhPT1lLnJhbmdlT3B0aW9ucyYmdC5sb2FkRGF0YVRvKGUucmFuZ2VPcHRpb25zLnZhbCk7Y29uc3Qgcz1lLm1vZGVsLnRpbWVTY2FsZSgpO3Muc2V0QmFyU3BhY2luZyhlLmJhclNwYWNpbmcpLHMuc2V0UmlnaHRPZmZzZXQoZS5yaWdodE9mZnNldCl9fWNhbk1lcmdlKGUpe3JldHVybiBlIGluc3RhbmNlb2YgS3ImJkJuKGUuX3JhbmdlT3B0aW9ucyx0aGlzLl9yYW5nZU9wdGlvbnMpfW1lcmdlKGUpe2lmKCEoZSBpbnN0YW5jZW9mIEtyKSl0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgY29tbWFuZCB0byBtZXJnZSIpO3RoaXMuX21vZGVsc0RhdGE9dGhpcy5fbW9kZWxzRGF0YS5jb25jYXQoZS5fbW9kZWxzRGF0YSl9fXZhciBYcj1pKDU5MDY5NSk7Y29uc3QgWnI9KDAsYy5nZXRMb2dnZXIpKCJDaGFydC5MaW5lVG9vbHNHcm91cCIpO2xldCBKcj0hMTtmdW5jdGlvbiBRcihlKXtyZXR1cm4gZS5wcm9wZXJ0aWVzKCkudmlzaWJsZS52YWx1ZSgpfWZ1bmN0aW9uIGVvKGUpe2Zvcihjb25zdCB0IG9mIGUuaXRlbXMoKSl7aWYoISgwLFhyLmlzTGluZVRvb2xzR3JvdXApKHQpKXJldHVybiB0O2NvbnN0IGU9ZW8odCk7aWYobnVsbCE9PWUpcmV0dXJuIGV9cmV0dXJuIG51bGx9ZnVuY3Rpb24gdG8oZSx0KXtmb3IoY29uc3QgaSBvZiBlLml0ZW1zKCkpKDAsWHIuaXNMaW5lVG9vbHNHcm91cCkoaSk/dG8oaSx0KTp0LnB1c2goaS5pZCgpKX1jbGFzcyBpb3tjb25zdHJ1Y3RvcihlLHQsaSl7dGhpcy5faW5zdGFuY2VJZD0oMCxsdC5yYW5kb21IYXNoTikoNiksdGhpcy5fb25DaGFuZ2VkPW5ldyBmLkRlbGVnYXRlLHRoaXMuX2l0ZW1zPVtdLHRoaXMuX2l0ZW1zU2V0PW5ldyBTZXQsdGhpcy5fbGluZVRvb2xzQ2FjaGU9bnVsbCx0aGlzLl9zdWJncm91cHNDYWNoZT1udWxsLHRoaXMuX3BhcmVudEdyb3VwPW51bGwsdGhpcy5pZD1pfHwoMCxsdC5yYW5kb21IYXNoTikoNiksdGhpcy5fbmFtZT1uZXcgaC5XYXRjaGVkVmFsdWUodCksdGhpcy5faW5zZXJ0SXRlbXMoZSl9aW5zdGFuY2VJZCgpe3JldHVybiB0aGlzLl9pbnN0YW5jZUlkfWl0ZW1zKCl7cmV0dXJuIHRoaXMuX2l0ZW1zfWxpbmVUb29scygpe3JldHVybiBudWxsPT09dGhpcy5fbGluZVRvb2xzQ2FjaGUmJih0aGlzLl9saW5lVG9vbHNDYWNoZT10aGlzLl9pdGVtcy5maWx0ZXIoKGU9PiEoMCxYci5pc0xpbmVUb29sc0dyb3VwKShlKSkpKSx0aGlzLl9saW5lVG9vbHNDYWNoZX1zdWJncm91cHMoKXtyZXR1cm4gbnVsbD09PXRoaXMuX3N1Ymdyb3Vwc0NhY2hlJiYodGhpcy5fc3ViZ3JvdXBzQ2FjaGU9dGhpcy5faXRlbXMuZmlsdGVyKChlPT4oMCxYci5pc0xpbmVUb29sc0dyb3VwKShlKSkpKSx0aGlzLl9zdWJncm91cHNDYWNoZX1wYXJlbnRHcm91cCgpe3JldHVybiB0aGlzLl9wYXJlbnRHcm91cH1zZXRQYXJlbnRHcm91cChlKXt0aGlzLl9wYXJlbnRHcm91cD1lfW5hbWUoKXtyZXR1cm4gdGhpcy5fbmFtZX1zZXROYW1lKGUpe3RoaXMuX2RvQW5kRmlyZU9uQ2hhbmdlKCgoKT0+e3RoaXMuX25hbWUuc2V0VmFsdWUoZSl9KSl9c2hvdWxkQmVSZW1vdmVkT25EZXNlbGVjdCgpe3JldHVybiExfWlzQWN0dWFsU3ltYm9sKCl7Y29uc3QgZT1lbyh0aGlzKTtyZXR1cm4gbnVsbCE9PWUmJmUuaXNBY3R1YWxTeW1ib2woKSYmZS5pc0FjdHVhbEN1cnJlbmN5KCkmJmUuaXNBY3R1YWxVbml0KCl9c3ltYm9sKCl7cmV0dXJuIHRoaXMuX2ZpcnN0TGluZVRvb2woKS5zeW1ib2woKX1jdXJyZW5jeUlkKCl7cmV0dXJuIHRoaXMuX2ZpcnN0TGluZVRvb2woKS5wcm9wZXJ0aWVzKCkuY2hpbGRzKCkuY3VycmVuY3lJZC52YWx1ZSgpPz9udWxsfXVuaXRJZCgpe3JldHVybiB0aGlzLl9maXJzdExpbmVUb29sKCkucHJvcGVydGllcygpLmNoaWxkcygpLnVuaXRJZC52YWx1ZSgpPz9udWxsfWlzU3luY2hyb25pemFibGUoKXtyZXR1cm4gdGhpcy5faXRlbXMuc29tZSgoZT0+ZS5pc1N5bmNocm9uaXphYmxlKCkpKX1zaGFyaW5nTW9kZSgpe3JldHVybiB0aGlzLl9maXJzdExpbmVUb29sKCkuc2hhcmluZ01vZGUoKX1zaGFyZShlKXt0aGlzLl9pdGVtcy5mb3JFYWNoKCh0PT50LnNoYXJlKGUpKSl9Y29udGFpbnNJdGVtKGUpe3JldHVybiB0aGlzLl9pdGVtc1NldC5oYXMoZSl9Z3JvdXBGb3JMaW5lVG9vbChlKXtpZih0aGlzLl9pdGVtc1NldC5oYXMoZSkpcmV0dXJuIHRoaXM7Zm9yKGNvbnN0IHQgb2YgdGhpcy5zdWJncm91cHMoKSl7Y29uc3QgaT10Lmdyb3VwRm9yTGluZVRvb2woZSk7aWYobnVsbCE9PWkpcmV0dXJuIGl9cmV0dXJuIG51bGx9YWRkSXRlbXMoZSl7dGhpcy5fZG9BbmRGaXJlT25DaGFuZ2UoKHQ9Pnt0aGlzLl9pbnNlcnRJdGVtcyhlLHQpfSkpfWV4Y2x1ZGVJdGVtKGUpe3RoaXMuX2RvQW5kRmlyZU9uQ2hhbmdlKCh0PT57dGhpcy5fcmVtb3ZlSXRlbXMoW2VdLHQpfSkpfWV4Y2x1ZGVJdGVtcyhlKXt0aGlzLl9kb0FuZEZpcmVPbkNoYW5nZSgodD0+e3RoaXMuX3JlbW92ZUl0ZW1zKGUsdCl9KSl9c3RhdGUoKXtyZXR1cm57aWQ6dGhpcy5pZCxuYW1lOnRoaXMuX25hbWUudmFsdWUoKSx0b29sczp0aGlzLmxpbmVUb29scygpLm1hcCgoZT0+ZS5pZCgpKSl9fXZpc2liaWxpdHkoKXtsZXQgZT0hMSx0PSExO2Zvcihjb25zdCBpIG9mIHRoaXMuX2l0ZW1zKWlmKCgwLApYci5pc0xpbmVUb29sc0dyb3VwKShpKSl7Y29uc3Qgcz1pLnZpc2liaWxpdHkoKTtlPWV8fCJJbnZpc2libGUiIT09cyx0PXR8fCJWaXNpYmxlIiE9PXN9ZWxzZSBlPWV8fFFyKGkpLHQ9dHx8IVFyKGkpO3JldHVybiBlJiYhdD8iVmlzaWJsZSI6dCYmIWU/IkludmlzaWJsZSI6IlBhcnRpYWwifWxvY2tlZCgpe2xldCBlPSExLHQ9ITE7Zm9yKGNvbnN0IGkgb2YgdGhpcy5faXRlbXMpaWYoKDAsWHIuaXNMaW5lVG9vbHNHcm91cCkoaSkpe2NvbnN0IHM9aS5sb2NrZWQoKTtlPWV8fCJVbmxvY2tlZCIhPT1zLHQ9dHx8IkxvY2tlZCIhPT1zfWVsc2V7Y29uc3Qgcz1pLnByb3BlcnRpZXMoKS5mcm96ZW4udmFsdWUoKTtlPWV8fHMsdD10fHwhc31yZXR1cm4gZSYmIXQ/IkxvY2tlZCI6dCYmIWU/IlVubG9ja2VkIjoiUGFydGlhbCJ9aXNBY3R1YWxJbnRlcnZhbCgpe2xldCBlPSExLHQ9ITE7Zm9yKGNvbnN0IGkgb2YgdGhpcy5faXRlbXMpaWYoKDAsWHIuaXNMaW5lVG9vbHNHcm91cCkoaSkpe2NvbnN0IHM9aS5pc0FjdHVhbEludGVydmFsKCk7ZT1lfHwiSXNOb3RBY3R1YWxJbnRlcnZhbCIhPT1zLHQ9dHx8IklzQWN0dWFsSW50ZXJ2YWwiIT09c31lbHNle2NvbnN0IHM9aS5pc0FjdHVhbEludGVydmFsKCk7ZT1lfHxzLHQ9dHx8IXN9cmV0dXJuIGUmJiF0PyJJc0FjdHVhbEludGVydmFsIjp0JiYhZT8iSXNOb3RBY3R1YWxJbnRlcnZhbCI6IlBhcnRpYWwifW9uQ2hhbmdlZCgpe3JldHVybiB0aGlzLl9vbkNoYW5nZWR9c3RhdGljIGZyb21TdGF0ZShlLHQpe2NvbnN0IGk9W107Zm9yKGNvbnN0IHMgb2YgdC50b29scyl7Y29uc3QgdD1lLmRhdGFTb3VyY2VGb3JJZChzKTtudWxsIT09dCYmaS5wdXNoKHQpfXJldHVybiBpLmxlbmd0aD4wP25ldyBpbyhpLHQubmFtZSx0LmlkKTpudWxsfV9pbnNlcnRJdGVtcyhlLHQpe2Zvcihjb25zdCBpIG9mIGUpe2lmKCgwLFhyLmlzTGluZVRvb2xzR3JvdXApKGkpKXtpZih0aGlzLl93b3VsZENyZWF0ZUN5Y2xlKGkpKXtKcnx8KFpyLmxvZ1dhcm4oYEN5Y2xlIGRldGVjdGVkOiBjYW5ub3QgYWRkIGdyb3VwICR7aS5pZH0gaW50byBncm91cCAke3RoaXMuaWR9OyBza2lwcGluZ2ApLEpyPSEwKTtjb250aW51ZX1jb25zdCBlPWkucGFyZW50R3JvdXAoKTtudWxsIT09ZSYmZS5leGNsdWRlSXRlbShpKSxpLnNldFBhcmVudEdyb3VwKHRoaXMpLGkub25DaGFuZ2VkKCkuc3Vic2NyaWJlKHRoaXMsKGU9PnRoaXMuX29uQ2hhbmdlZC5maXJlKGUpKSksdm9pZCAwIT09dCYmdG8oaSx0KX1lbHNlIHZvaWQgMCE9PXQmJnQucHVzaChpLmlkKCkpO3RoaXMuX2l0ZW1zU2V0LmFkZChpKSx0aGlzLl9pdGVtcy5wdXNoKGkpfXRoaXMuX2ludmFsaWRhdGVDYWNoZXMoKX1fcmVtb3ZlSXRlbXMoZSx0KXtjb25zdCBpPW5ldyBTZXQ7Zm9yKGNvbnN0IHMgb2YgZSl0aGlzLl9pdGVtc1NldC5kZWxldGUocykmJihpLmFkZChzKSwoMCxYci5pc0xpbmVUb29sc0dyb3VwKShzKT8ocy5vbkNoYW5nZWQoKS51bnN1YnNjcmliZUFsbCh0aGlzKSxzLnNldFBhcmVudEdyb3VwKG51bGwpLHRvKHMsdCkpOnQucHVzaChzLmlkKCkpKTt0aGlzLl9pdGVtcz10aGlzLl9pdGVtcy5maWx0ZXIoKGU9PiFpLmhhcyhlKSkpLHRoaXMuX2ludmFsaWRhdGVDYWNoZXMoKX1fZmlyc3RMaW5lVG9vbCgpe3JldHVybigwLGwuZW5zdXJlTm90TnVsbCkoZW8odGhpcykpfV93b3VsZENyZWF0ZUN5Y2xlKGUpe2lmKGU9PT10aGlzKXJldHVybiEwO2xldCB0PXRoaXMucGFyZW50R3JvdXAoKTtmb3IoO251bGwhPT10Oyl7aWYodD09PWUpcmV0dXJuITA7dD10LnBhcmVudEdyb3VwKCl9cmV0dXJuITF9X2ludmFsaWRhdGVDYWNoZXMoKXt0aGlzLl9saW5lVG9vbHNDYWNoZT1udWxsLHRoaXMuX3N1Ymdyb3Vwc0NhY2hlPW51bGx9X2RvQW5kRmlyZU9uQ2hhbmdlKGUpe2NvbnN0IHQ9W10saT10aGlzLnZpc2liaWxpdHkoKSxzPXRoaXMubG9ja2VkKCksbj10aGlzLmlzQWN0dWFsSW50ZXJ2YWwoKTtlKHQpLHRoaXMuX29uQ2hhbmdlZC5maXJlKHthZmZlY3RlZExpbmVUb29sczp0LHZpc2liaWxpdHlDaGFuZ2VkOmkhPT10aGlzLnZpc2liaWxpdHkoKSxsb2NrZWRDaGFuZ2VkOnMhPT10aGlzLmxvY2tlZCgpLGlzQWN0dWFsSW50ZXJ2YWxDaGFuZ2VkOm4hPT10aGlzLmlzQWN0dWFsSW50ZXJ2YWwoKX0pfX1pKDgyOTE4MCk7Y2xhc3Mgc28gZXh0ZW5kcyBFLlVuZG9Db21tYW5ke2NvbnN0cnVjdG9yKGUsdCxpKXtzdXBlcihpLHZvaWQgMCwhUW4ubGluZVRvb2xzRG9Ob3RBZmZlY3RDaGFydEludmFsaWRhdGlvbiksdGhpcy5fbW9kZWw9ZSx0aGlzLl9ncm91cElkPXQuaWQsdGhpcy5fZ3JvdXBOYW1lPXQubmFtZSgpLnZhbHVlKCksdGhpcy5fbGluZVRvb2xzSWRzPXQubGluZVRvb2xzKCkubWFwKChlPT5lLmlkKCkpKX1yZWRvKCl7Y29uc3QgZT0oMCxsLmVuc3VyZU5vdE51bGwpKHRoaXMuX21vZGVsLmxpbmVUb29sc0dyb3VwTW9kZWwoKS5ncm91cEZvcklkKHRoaXMuX2dyb3VwSWQpKTt0aGlzLl9tb2RlbC5saW5lVG9vbHNHcm91cE1vZGVsKCkucmVtb3ZlR3JvdXAoZSl9dW5kbygpe2NvbnN0IGU9dGhpcy5fbGluZVRvb2xzSWRzLm1hcCgoZT0+dGhpcy5fbW9kZWwuZGF0YVNvdXJjZUZvcklkKGUpKSksdD1uZXcgaW8oZSx0aGlzLl9ncm91cE5hbWUsdGhpcy5fZ3JvdXBJZCk7dGhpcy5fbW9kZWwubGluZVRvb2xzR3JvdXBNb2RlbCgpLmFkZEdyb3VwKHQpfX1jb25zdCBubz1uZXcgeS5UcmFuc2xhdGVkU3RyaW5nKCJjcmVhdGUgbGluZSB0b29scyBncm91cCIscC50KG51bGwsdm9pZCAwLGkoMjg4Nzk3KSkpO2NsYXNzIHJvIGV4dGVuZHMgRS5VbmRvQ29tbWFuZHtjb25zdHJ1Y3RvcihlLHQpe3N1cGVyKG5vLHZvaWQgMCwhUW4ubGluZVRvb2xzRG9Ob3RBZmZlY3RDaGFydEludmFsaWRhdGlvbiksdGhpcy5fZ3JvdXBJZD1udWxsLHRoaXMuX21vZGVsPWUsdGhpcy5fc291cmNlc0lkcz10Lm1hcCgoZT0+ZS5pZCgpKSl9cmVkbygpe2NvbnN0IGU9dGhpcy5fc291cmNlc0lkcy5tYXAoKGU9PnRoaXMuX21vZGVsLmRhdGFTb3VyY2VGb3JJZChlKSkpLHQ9bnVsbD09PXRoaXMuX2dyb3VwSWQ/dm9pZCAwOnRoaXMuX2dyb3VwSWQKO3RoaXMuX2dyb3VwSWQ9dGhpcy5fbW9kZWwubGluZVRvb2xzR3JvdXBNb2RlbCgpLmNyZWF0ZUdyb3VwKGUsdGhpcy5fdGl0bGUsdCkuaWR9dW5kbygpe2NvbnN0IGU9KDAsbC5lbnN1cmVOb3ROdWxsKSh0aGlzLl9tb2RlbC5saW5lVG9vbHNHcm91cE1vZGVsKCkuZ3JvdXBGb3JJZCgoMCxsLmVuc3VyZU5vdE51bGwpKHRoaXMuX2dyb3VwSWQpKSk7dGhpcy5fbW9kZWwubGluZVRvb2xzR3JvdXBNb2RlbCgpLnJlbW92ZUdyb3VwKGUpfWNyZWF0ZWRHcm91cElkKCl7cmV0dXJuIHRoaXMuX2dyb3VwSWR9fWNvbnN0IG9vPW5ldyB5LlRyYW5zbGF0ZWRTdHJpbmcoImFkZCBsaW5lIHRvb2wocykgdG8gZ3JvdXAge2dyb3VwfSIscC50KG51bGwsdm9pZCAwLGkoNDM5NTkwKSkpO2NsYXNzIGFvIGV4dGVuZHMgRS5VbmRvQ29tbWFuZHtjb25zdHJ1Y3RvcihlLHQsaSl7c3VwZXIob28uZm9ybWF0KHtncm91cDp0Lm5hbWUoKS52YWx1ZSgpfSksdm9pZCAwLCFRbi5saW5lVG9vbHNEb05vdEFmZmVjdENoYXJ0SW52YWxpZGF0aW9uKSx0aGlzLl9tb2RlbD1lLHRoaXMuX2dyb3VwSWQ9dC5pZCx0aGlzLl9saW5lVG9vbHNJZHM9aS5tYXAoKGU9PmUuaWQoKSkpfXJlZG8oKXtjb25zdCBlPSgwLGwuZW5zdXJlTm90TnVsbCkodGhpcy5fbW9kZWwubGluZVRvb2xzR3JvdXBNb2RlbCgpLmdyb3VwRm9ySWQodGhpcy5fZ3JvdXBJZCkpLHQ9dGhpcy5fbGluZVRvb2xzSWRzLm1hcCgoZT0+dGhpcy5fbW9kZWwuZGF0YVNvdXJjZUZvcklkKGUpKSk7ZS5hZGRJdGVtcyh0KX11bmRvKCl7Y29uc3QgZT10aGlzLl9saW5lVG9vbHNJZHMubWFwKChlPT50aGlzLl9tb2RlbC5kYXRhU291cmNlRm9ySWQoZSkpKTsoMCxsLmVuc3VyZU5vdE51bGwpKHRoaXMuX21vZGVsLmxpbmVUb29sc0dyb3VwTW9kZWwoKS5ncm91cEZvcklkKHRoaXMuX2dyb3VwSWQpKS5leGNsdWRlSXRlbXMoZSl9fWNsYXNzIGxvIGV4dGVuZHMgRS5VbmRvQ29tbWFuZHtjb25zdHJ1Y3RvcihlLHQsaSxzKXtzdXBlcihzLHZvaWQgMCwhUW4ubGluZVRvb2xzRG9Ob3RBZmZlY3RDaGFydEludmFsaWRhdGlvbiksdGhpcy5fY2hhcnRNb2RlbD1lLHRoaXMuX2dyb3VwSWQ9dC5pZCx0aGlzLl9vbGROYW1lPXQubmFtZSgpLnZhbHVlKCksdGhpcy5fbmV3TmFtZT1pfXJlZG8oKXsoMCxsLmVuc3VyZU5vdE51bGwpKHRoaXMuX2NoYXJ0TW9kZWwubGluZVRvb2xzR3JvdXBNb2RlbCgpLmdyb3VwRm9ySWQodGhpcy5fZ3JvdXBJZCkpLnNldE5hbWUodGhpcy5fbmV3TmFtZSl9dW5kbygpeygwLGwuZW5zdXJlTm90TnVsbCkodGhpcy5fY2hhcnRNb2RlbC5saW5lVG9vbHNHcm91cE1vZGVsKCkuZ3JvdXBGb3JJZCh0aGlzLl9ncm91cElkKSkuc2V0TmFtZSh0aGlzLl9vbGROYW1lKX19dmFyIGNvPWkoOTQzOTUpO2NsYXNzIGhvIGV4dGVuZHMgRS5VbmRvQ29tbWFuZHtjb25zdHJ1Y3RvcihlLHQsaSxzKXtzdXBlcihzLHZvaWQgMCwhUW4ubGluZVRvb2xzRG9Ob3RBZmZlY3RDaGFydEludmFsaWRhdGlvbiksdGhpcy5fb3JpZ2luTGlua0tleT1udWxsLHRoaXMuX21vZGVsPWksdGhpcy5faWQ9ZS5pZCgpLHRoaXMuX3RhcmdldFNoYXJpbmdNb2RlPXQsdGhpcy5fb3JpZ2luU2hhcmluZ01vZGU9ZS5zaGFyaW5nTW9kZSgpLnZhbHVlKCksdGhpcy5fb3JpZ2luTGlua0tleT1lLmxpbmtLZXkoKS52YWx1ZSgpfXJlZG8oKXtjb25zdCBlPXRoaXMuX21vZGVsLmRhdGFTb3VyY2VGb3JJZCh0aGlzLl9pZCk7ZT8uaXNTeW5jaHJvbml6YWJsZSgpJiYoZS5zaGFyZSh0aGlzLl90YXJnZXRTaGFyaW5nTW9kZSksMCE9PXRoaXMuX3RhcmdldFNoYXJpbmdNb2RlJiYwPT09dGhpcy5fb3JpZ2luU2hhcmluZ01vZGUmJihlLmxpbmtLZXkoKS5zZXRWYWx1ZSgoMCxsdC5yYW5kb21IYXNoKSgpKSx0aGlzLl9tb2RlbC5jb3B5VG9PdGhlckNoYXJ0cyhbZV0sITEpKSwwPT09dGhpcy5fdGFyZ2V0U2hhcmluZ01vZGUmJjAhPT10aGlzLl9vcmlnaW5TaGFyaW5nTW9kZSYmZS5saW5rS2V5KCkuc2V0VmFsdWUobnVsbCkpfXVuZG8oKXtjb25zdCBlPXRoaXMuX21vZGVsLmRhdGFTb3VyY2VGb3JJZCh0aGlzLl9pZCk7ZT8uaXNTeW5jaHJvbml6YWJsZSgpJiYoZS5zaGFyZSh0aGlzLl9vcmlnaW5TaGFyaW5nTW9kZSksMD09PXRoaXMuX29yaWdpblNoYXJpbmdNb2RlPygoMCxULnJlbW92ZUxpbmVUb29sKSh7d2l0aFVuZG86ITEsbW9kZWw6dGhpcy5fbW9kZWwsc3ltYm9sOmUuc3ltYm9sKCksbGlua0tleTooMCxsLmVuc3VyZU5vdE51bGwpKGUubGlua0tleSgpLnZhbHVlKCkpLHNvdXJjZVRpdGxlOigwLHVyLmdldFRyYW5zbGF0ZWRTdHJpbmdGb3JTb3VyY2UpKGNvLlRpdGxlRGlzcGxheVRhcmdldC5TdGF0dXNMaW5lLGUpLGxpbmVUb29sU3RhdGU6ZS5zdGF0ZSghMSksdW5saW5rOiEwfSksZS5saW5rS2V5KCkuc2V0VmFsdWUobnVsbCkpOmUubGlua0tleSgpLnNldFZhbHVlKHRoaXMuX29yaWdpbkxpbmtLZXkpKX19CmNvbnN0IHVvPW5ldyB5LlRyYW5zbGF0ZWRTdHJpbmcoImNyZWF0ZSBsaW5lIHRvb2xzIGdyb3VwIGZyb20gc2VsZWN0aW9uIixwLnQobnVsbCx2b2lkIDAsaSgxMzQ1NTgpKSkscG89bmV3IHkuVHJhbnNsYXRlZFN0cmluZygicmVtb3ZpbmcgbGluZSB0b29scyBncm91cCB7bmFtZX0iLHAudChudWxsLHZvaWQgMCxpKDY2NjE0MCkpKSxfbz1uZXcgeS5UcmFuc2xhdGVkU3RyaW5nKCJhZGQgbGluZSB0b29sIHtsaW5lVG9vbH0gdG8gZ3JvdXAge25hbWV9IixwLnQobnVsbCx2b2lkIDAsaSg2ODk1ODApKSksbW89bmV3IHkuVHJhbnNsYXRlZFN0cmluZygibWFrZSBncm91cCB7Z3JvdXB9IHZpc2libGUiLHAudChudWxsLHZvaWQgMCxpKDM1NjU0MSkpKSxnbz1uZXcgeS5UcmFuc2xhdGVkU3RyaW5nKCJtYWtlIGdyb3VwIHtncm91cH0gaW52aXNpYmxlIixwLnQobnVsbCx2b2lkIDAsaSg1NzIzMzQpKSksZm89bmV3IHkuVHJhbnNsYXRlZFN0cmluZygibG9jayBncm91cCB7Z3JvdXB9IixwLnQobnVsbCx2b2lkIDAsaSg3MDYzMDgpKSksU289bmV3IHkuVHJhbnNsYXRlZFN0cmluZygidW5sb2NrIGdyb3VwIHtncm91cH0iLHAudChudWxsLHZvaWQgMCxpKDk1MjUyMykpKSx2bz1uZXcgeS5UcmFuc2xhdGVkU3RyaW5nKCJyZW5hbWUgZ3JvdXAge2dyb3VwfSB0byB7bmV3TmFtZX0iLHAudChudWxsLHZvaWQgMCxpKDM4NTMxMCkpKTtjbGFzcyB5b3tjb25zdHJ1Y3RvcihlKXt0aGlzLl9lbnZpcm9ubWVudD1lfWNyZWF0ZUdyb3VwRnJvbVNlbGVjdGlvbigpe2NvbnN0IGU9dGhpcy5fZW52aXJvbm1lbnQubW9kZWwoKTsoMCxsLmFzc2VydCkoIWUuc2VsZWN0aW9uKCkuaXNFbXB0eSgpLCJDYW5ub3QgY3JlYXRlIGdyb3VwIGZyb20gZW1wdHkgc2VsZWN0aW9uIik7Y29uc3QgdD0oMCxkci5zb3J0U291cmNlcykoZS5zZWxlY3Rpb24oKS5saW5lRGF0YVNvdXJjZXMoKSk7KDAsbC5hc3NlcnQpKHQubGVuZ3RoPT09ZS5zZWxlY3Rpb24oKS5hbGxTb3VyY2VzKCkubGVuZ3RoLCJBIGdyb3VwIGNvdWxkIGNvbnRhaW4gbGluZSB0b29scyBvbmx5Iik7Y29uc3QgaT10Lmxlbmd0aD4xfHxudWxsIT09dGhpcy5fZW52aXJvbm1lbnQubW9kZWwoKS5saW5lVG9vbHNHcm91cE1vZGVsKCkuZ3JvdXBGb3JMaW5lVG9vbCh0WzBdKSxzPXQucmVkdWNlKCgoZSx0KT0+ZS56b3JkZXIoKT50LnpvcmRlcigpP2U6dCksdFswXSk7bGV0IG49cztjb25zdCByPWUubGluZVRvb2xzR3JvdXBNb2RlbCgpLmdyb3VwRm9yTGluZVRvb2wocyk7aWYobnVsbCE9PXIpe2NvbnN0IGU9ci5saW5lVG9vbHMoKTtuPWVbZS5sZW5ndGgtMV19dGhpcy5fZW52aXJvbm1lbnQuYmVnaW5VbmRvTWFjcm8odW8pO2NvbnN0IG89bmV3IE1hcCxhPW5ldyBTZXQ7dC5mb3JFYWNoKCh0PT57Y29uc3QgaT10aGlzLl9ncm91cEZvckxpbmVUb29sKHQpO2lmKG51bGw9PT1pKXJldHVybjtjb25zdCBzPW8uZ2V0KGkpfHxbXTtzLnB1c2godCksby5zZXQoaSxzKTtjb25zdCBuPSgwLGwuZW5zdXJlTm90TnVsbCkoZS5wYW5lRm9yU291cmNlKHQpKTthLmFkZChuKX0pKSwoMCxsLmFzc2VydCkoYS5zaXplPD0xLCJBbGwgc2VsZWN0ZWQgc291cmNlcyBzaG91bGQgYmUgb24gdGhlIHNhbWUgcGFuZSIpLG8uZm9yRWFjaCgoKHQsaSk9Pntjb25zdCBzPW5ldyBpci5FeGNsdWRlTGluZVRvb2xzRnJvbUdyb3VwVW5kb0NvbW1hbmQoZSxpLHQpO3RoaXMuX2Vudmlyb25tZW50LnB1c2hVbmRvQ29tbWFuZChzKX0pKTtjb25zdCBjPW5ldyBybyhlLCgwLGRyLnNvcnRTb3VyY2VzKSh0KSk7aWYodGhpcy5fZW52aXJvbm1lbnQucHVzaFVuZG9Db21tYW5kKGMpLGkpe2NvbnN0IGk9bmV3IEFyKGUsdCxuKTt0aGlzLl9lbnZpcm9ubWVudC5wdXNoVW5kb0NvbW1hbmQoaSl9dGhpcy5fZW52aXJvbm1lbnQuZW5kVW5kb01hY3JvKCk7Y29uc3QgaD0oMCxsLmVuc3VyZU5vdE51bGwpKGMuY3JlYXRlZEdyb3VwSWQoKSk7cmV0dXJuKDAsbC5lbnN1cmVOb3ROdWxsKShlLmxpbmVUb29sc0dyb3VwTW9kZWwoKS5ncm91cEZvcklkKGgpKX1yZW1vdmVHcm91cChlKXtjb25zdCB0PXRoaXMuX2Vudmlyb25tZW50Lm1vZGVsKCksaT1lLmxpbmVUb29scygpLHM9aS5tYXAoKGU9Pih7c3RhdGU6ZS5zdGF0ZSghMSksdGl0bGU6bmV3IHkuVHJhbnNsYXRlZFN0cmluZyhlLm5hbWUoKSxlLnRpdGxlKE5uLlRpdGxlRGlzcGxheVRhcmdldC5EYXRhV2luZG93KSksbGlua0tleTplLmxpbmtLZXkoKS52YWx1ZSgpfSkpKTt0aGlzLl9lbnZpcm9ubWVudC5iZWdpblVuZG9NYWNybyhwby5mb3JtYXQoe25hbWU6ZS5uYW1lKCkudmFsdWUoKX0pKTtjb25zdCBuPW5ldyBzbyh0LGUsbnVsbCk7dGhpcy5fZW52aXJvbm1lbnQucHVzaFVuZG9Db21tYW5kKG4pO2NvbnN0IHI9bmV3IHRyLlJlbW92ZVNvdXJjZXNVbmRvQ29tbWFuZCh0LGksbnVsbCk7dGhpcy5fZW52aXJvbm1lbnQucHVzaFVuZG9Db21tYW5kKHIpO2NvbnN0IG89dC5tYWluU2VyaWVzKCkuc3ltYm9sKCk7cy5mb3JFYWNoKChlPT57bnVsbCE9PWUubGlua0tleSYmKDAsVC5yZW1vdmVMaW5lVG9vbCkoe3dpdGhVbmRvOiEwLG1vZGVsOnQsc3ltYm9sOm8sc291cmNlVGl0bGU6ZS50aXRsZSxsaW5lVG9vbFN0YXRlOmUuc3RhdGUsbGlua0tleTplLmxpbmtLZXl9KX0pKSx0aGlzLl9lbnZpcm9ubWVudC5lbmRVbmRvTWFjcm8oKX1ncm91cHMoKXtyZXR1cm4gdGhpcy5fZW52aXJvbm1lbnQubW9kZWwoKS5saW5lVG9vbHNHcm91cE1vZGVsKCkuZ3JvdXBzKCl9ZXhjbHVkZUxpbmVUb29sRnJvbUdyb3VwKGUsdCl7Y29uc3QgaT10aGlzLl9lbnZpcm9ubWVudC5tb2RlbCgpLHM9bmV3IGlyLkV4Y2x1ZGVMaW5lVG9vbHNGcm9tR3JvdXBVbmRvQ29tbWFuZChpLGUsW3RdKTt0aGlzLl9lbnZpcm9ubWVudC5wdXNoVW5kb0NvbW1hbmQocyl9YWRkTGluZVRvb2xUb0dyb3VwKGUsdCl7Y29uc3QgaT10aGlzLl9lbnZpcm9ubWVudC5tb2RlbCgpLHM9aS5saW5lVG9vbHNHcm91cE1vZGVsKCkuZ3JvdXBGb3JMaW5lVG9vbCh0KTtpZihzPT09ZSlyZXR1cm47Y29uc3Qgbj1fby5mb3JtYXQoewpsaW5lVG9vbDpuZXcgeS5UcmFuc2xhdGVkU3RyaW5nKHQubmFtZSgpLHQudGl0bGUoTm4uVGl0bGVEaXNwbGF5VGFyZ2V0LlN0YXR1c0xpbmUpKSxuYW1lOmUubmFtZSgpLnZhbHVlKCl9KTt0aGlzLl9lbnZpcm9ubWVudC5iZWdpblVuZG9NYWNybyhuKSxudWxsIT09cyYmdGhpcy5fZW52aXJvbm1lbnQucHVzaFVuZG9Db21tYW5kKG5ldyBpci5FeGNsdWRlTGluZVRvb2xzRnJvbUdyb3VwVW5kb0NvbW1hbmQoaSxzLFt0XSkpO3tjb25zdCBzPWUuc2hhcmluZ01vZGUoKS52YWx1ZSgpO3Quc2hhcmluZ01vZGUoKS52YWx1ZSgpIT09cyYmdGhpcy5fZW52aXJvbm1lbnQucHVzaFVuZG9Db21tYW5kKG5ldyBobyh0LHMsaSxudWxsKSl9dGhpcy5fZW52aXJvbm1lbnQucHVzaFVuZG9Db21tYW5kKG5ldyBhbyhpLGUsW3RdKSksdGhpcy5fZW52aXJvbm1lbnQuZW5kVW5kb01hY3JvKCl9YnJpbmdUb0Zyb250KGUpe2NvbnN0IHQ9dGhpcy5fZW52aXJvbm1lbnQubW9kZWwoKSxpPW5ldyBNcih0LGUubGluZVRvb2xzKCkpO3RoaXMuX2Vudmlyb25tZW50LnB1c2hVbmRvQ29tbWFuZChpKSx0aGlzLl9lbnZpcm9ubWVudC5lbWl0RXZlbnQoImNoYW5nZVpPcmRlciIsW2UubGluZVRvb2xzKCldKX1zZW5kVG9CYWNrKGUpe2NvbnN0IHQ9dGhpcy5fZW52aXJvbm1lbnQubW9kZWwoKSxpPW5ldyBJcih0LGUubGluZVRvb2xzKCkpO3RoaXMuX2Vudmlyb25tZW50LnB1c2hVbmRvQ29tbWFuZChpKSx0aGlzLl9lbnZpcm9ubWVudC5lbWl0RXZlbnQoImNoYW5nZVpPcmRlciIsW2UubGluZVRvb2xzKCldKX1icmluZ0ZvcndhcmQoZSl7Y29uc3QgdD10aGlzLl9lbnZpcm9ubWVudC5tb2RlbCgpLGk9bmV3IFdyKHQsZSk7dGhpcy5fZW52aXJvbm1lbnQucHVzaFVuZG9Db21tYW5kKGkpLHRoaXMuX2Vudmlyb25tZW50LmVtaXRFdmVudCgiY2hhbmdlWk9yZGVyIixbZS5saW5lVG9vbHMoKV0pfXNlbmRCYWNrd2FyZChlKXtjb25zdCB0PXRoaXMuX2Vudmlyb25tZW50Lm1vZGVsKCksaT1uZXcgT3IodCxlKTt0aGlzLl9lbnZpcm9ubWVudC5wdXNoVW5kb0NvbW1hbmQoaSksdGhpcy5fZW52aXJvbm1lbnQuZW1pdEV2ZW50KCJjaGFuZ2VaT3JkZXIiLFtlLmxpbmVUb29scygpXSl9aW5zZXJ0QWZ0ZXIoZSx0KXtjb25zdCBpPXRoaXMuX2Vudmlyb25tZW50Lm1vZGVsKCk7bGV0IHM7aWYodCBpbnN0YW5jZW9mIGlvKXtjb25zdCBlPXQubGluZVRvb2xzKCk7cz1lW2UubGVuZ3RoLTFdfWVsc2Ugcz10O2NvbnN0IG49bmV3IEFyKGksZS5saW5lVG9vbHMoKSxzKTt0aGlzLl9lbnZpcm9ubWVudC5wdXNoVW5kb0NvbW1hbmQobiksdGhpcy5fZW52aXJvbm1lbnQuZW1pdEV2ZW50KCJjaGFuZ2VaT3JkZXIiLFtlLmxpbmVUb29scygpXSl9aW5zZXJ0QmVmb3JlKGUsdCl7Y29uc3QgaT10aGlzLl9lbnZpcm9ubWVudC5tb2RlbCgpO2xldCBzO2lmKHQgaW5zdGFuY2VvZiBpbyl7cz10LmxpbmVUb29scygpWzBdfWVsc2Ugcz10O2NvbnN0IG49bmV3IERyKGksZS5saW5lVG9vbHMoKSxzKTt0aGlzLl9lbnZpcm9ubWVudC5wdXNoVW5kb0NvbW1hbmQobiksdGhpcy5fZW52aXJvbm1lbnQuZW1pdEV2ZW50KCJjaGFuZ2VaT3JkZXIiLFtlLmxpbmVUb29scygpXSl9YXZhaWxhYmxlWk9yZGVyT3BlcmF0aW9ucyhlKXtjb25zdCB0PXRoaXMuX2Vudmlyb25tZW50Lm1vZGVsKCksaT1lLmxpbmVUb29scygpLHM9aVswXSxuPWlbaS5sZW5ndGgtMV0scj0oMCxsLmVuc3VyZU5vdE51bGwpKHQucGFuZUZvclNvdXJjZShpWzBdKSkuc291cmNlc0J5R3JvdXAoKS5hbGxFeGNlcHRTcGVjaWFsU291cmNlcygpLG89clswXSxhPXJbci5sZW5ndGgtMV07cmV0dXJue2JyaW5nRm9yd2FyZEVuYWJsZWQ6biE9PWEsYnJpbmdUb0Zyb250RW5hYmxlZDpuIT09YSxzZW5kQmFja3dhcmRFbmFibGVkOnMhPT1vLHNlbmRUb0JhY2tFbmFibGVkOnMhPT1vfX1zZXRHcm91cFZpc2liaWxpdHkoZSx0KXtjb25zdCBpPSh0P21vOmdvKS5mb3JtYXQoe2dyb3VwOmUubmFtZSgpLnZhbHVlKCl9KSxzPXRoaXMuX2Vudmlyb25tZW50Lm1vZGVsKCk7dGhpcy5fZW52aXJvbm1lbnQuYmVnaW5VbmRvTWFjcm8oaSksZS5saW5lVG9vbHMoKS5mb3JFYWNoKChlPT57Y29uc3QgaT1lLnByb3BlcnRpZXMoKS52aXNpYmxlLG49bmV3IHFyLlNldFByb3BlcnR5VW5kb0NvbW1hbmQoaSx0LG51bGwscywhUW4ubGluZVRvb2xzRG9Ob3RBZmZlY3RDaGFydEludmFsaWRhdGlvbik7dGhpcy5fZW52aXJvbm1lbnQucHVzaFVuZG9Db21tYW5kKG4pfSkpLHRoaXMuX2Vudmlyb25tZW50LmVuZFVuZG9NYWNybygpfXNldEdyb3VwTG9jayhlLHQpe2NvbnN0IGk9KHQ/Zm86U28pLmZvcm1hdCh7Z3JvdXA6ZS5uYW1lKCkudmFsdWUoKX0pLHM9dGhpcy5fZW52aXJvbm1lbnQubW9kZWwoKTt0aGlzLl9lbnZpcm9ubWVudC5iZWdpblVuZG9NYWNybyhpKSxlLmxpbmVUb29scygpLmZvckVhY2goKGU9Pntjb25zdCBpPWUucHJvcGVydGllcygpLmZyb3plbixuPW5ldyBxci5TZXRQcm9wZXJ0eVVuZG9Db21tYW5kKGksdCxudWxsLHMsIVFuLmxpbmVUb29sc0RvTm90QWZmZWN0Q2hhcnRJbnZhbGlkYXRpb24pO3RoaXMuX2Vudmlyb25tZW50LnB1c2hVbmRvQ29tbWFuZChuKX0pKSx0aGlzLl9lbnZpcm9ubWVudC5lbmRVbmRvTWFjcm8oKX1zZXRHcm91cE5hbWUoZSx0KXtjb25zdCBpPXRoaXMuX2Vudmlyb25tZW50Lm1vZGVsKCkscz12by5mb3JtYXQoe2dyb3VwOmUubmFtZSgpLnZhbHVlKCksbmV3TmFtZTp0fSksbj1uZXcgbG8oaSxlLHQscyk7dGhpcy5fZW52aXJvbm1lbnQucHVzaFVuZG9Db21tYW5kKG4pfWNhbkJlR3JvdXBwZWQoZSl7Y29uc3QgdD10aGlzLl9lbnZpcm9ubWVudC5tb2RlbCgpO3JldHVybiBuZXcgU2V0KGUubWFwKChlPT50LnBhbmVGb3JTb3VyY2UoZSkpKSkuc2l6ZTw9MX1fZ3JvdXBGb3JMaW5lVG9vbChlKXtyZXR1cm4gdGhpcy5fZW52aXJvbm1lbnQubW9kZWwoKS5saW5lVG9vbHNHcm91cE1vZGVsKCkuZ3JvdXBGb3JMaW5lVG9vbChlKX19dmFyIGJvPWkoNDEyMzg0KSx3bz1pKDU0NDg4NSksQ289aSgzMDUyNzcpCjtjb25zdCBQbz1uZXcgeS5UcmFuc2xhdGVkU3RyaW5nKCJhcHBseSBzdHVkeSB0ZW1wbGF0ZSB7dGVtcGxhdGV9IixwLnQobnVsbCx2b2lkIDAsaSgzODE1MTMpKSk7ZnVuY3Rpb24gVG8oZSl7Zm9yKGNvbnN0IHQgb2YgZS5wYW5lcylmb3IoY29uc3QgZSBvZiB0LnNvdXJjZXMpaWYoKDAsUC5pc01haW5TZXJpZXNTdGF0ZSkoZSkpcmV0dXJuIGUuaWQ7cmV0dXJuIG51bGx9dmFyIHhvOyFmdW5jdGlvbihlKXtlW2UuSW5pdGlhbD0wXT0iSW5pdGlhbCIsZVtlLlVuZG9pbmc9MV09IlVuZG9pbmciLGVbZS5SZWRvaW5nPTJdPSJSZWRvaW5nIn0oeG98fCh4bz17fSkpO2NsYXNzIE1vIGV4dGVuZHMgRS5VbmRvQ29tbWFuZHtjb25zdHJ1Y3RvcihlLHQsaSxzKXtzdXBlcihQby5mb3JtYXQoe3RlbXBsYXRlOml9KSksdGhpcy5fbmV3U3ltYm9sUGFyYW1zPXt9LHRoaXMuX2hhc0FscmVhZHlCZWVuVW5kb25lPSExLHRoaXMuX21vZGVsPWUsdGhpcy5fdGVtcGxhdGVDb250ZW50PWZ1bmN0aW9uKGUsdCl7Y29uc3QgaT0oMCxyLmRlZmF1bHQpKHt9LGUpLHM9KDAsbC5lbnN1cmVOb3ROdWxsKShUbyhpKSk7Zm9yKGNvbnN0IGUgb2YgaS5wYW5lcyl7ZS5tYWluU291cmNlSWQ9PT1zJiYoZS5tYWluU291cmNlSWQ9dCk7Zm9yKGNvbnN0IGkgb2YgZS5zb3VyY2VzKWlmKGkuaWQ9PT1zKXtpLmlkPXQ7Y29uc3Qgbj1lPT57Y29uc3QgaT1lLmluZGV4T2Yocyk7LTEhPT1pJiZlLnNwbGljZShpLDEsdCl9O2lmKGUubGVmdEF4aXNlc1N0YXRlJiZlLnJpZ2h0QXhpc2VzU3RhdGU/KGUubGVmdEF4aXNlc1N0YXRlLmZvckVhY2goKGU9Pm4oZS5zb3VyY2VzKSkpLGUucmlnaHRBeGlzZXNTdGF0ZS5mb3JFYWNoKChlPT5uKGUuc291cmNlcykpKSk6KG4oZS5sZWZ0QXhpc1NvdXJjZXMpLG4oZS5yaWdodEF4aXNTb3VyY2VzKSksZS5vdmVybGF5UHJpY2VTY2FsZXMpe2NvbnN0IGk9ZS5vdmVybGF5UHJpY2VTY2FsZXNbc107aSYmKGRlbGV0ZSBlLm92ZXJsYXlQcmljZVNjYWxlc1tzXSxlLm92ZXJsYXlQcmljZVNjYWxlc1t0XT1pKX19ZWxzZSBpLm93bmVyU291cmNlPT09cyYmKGkub3duZXJTb3VyY2U9dCl9cmV0dXJuIGl9KHQsZS5tYWluU2VyaWVzKCkuaWQoKSksdGhpcy5faW5pdGlhbFN0YXRlPWUuc3R1ZHlUZW1wbGF0ZSghMCwhMCwhMCksdGhpcy5fZXZlbnRTb3VyY2U9cztjb25zdCBuPWUubWFpblNlcmllcygpO3Quc3ltYm9sJiYodGhpcy5fbmV3U3ltYm9sUGFyYW1zPXtzeW1ib2w6dC5zeW1ib2wsY3VycmVuY3k6dC5jdXJyZW5jeT8/bnVsbCx1bml0OnQudW5pdD8/bnVsbH0pLHQuaW50ZXJ2YWwmJih0aGlzLl9uZXdTeW1ib2xQYXJhbXMuaW50ZXJ2YWw9dC5pbnRlcnZhbCx0aGlzLl9uZXdTeW1ib2xQYXJhbXMuc3R5bGU9KDAsQS5nZXRDaGFydFN0eWxlQnlSZXNvbHV0aW9uKSh0LmludGVydmFsLG4uc3R5bGUoKSkpLHRoaXMuX2luaXRpYWxTeW1ib2xQYXJhbXM9e3N5bWJvbDpuLnN5bWJvbCgpLGN1cnJlbmN5Om4uY3VycmVuY3koKSx1bml0Om4udW5pdCgpLGludGVydmFsOm4uaW50ZXJ2YWwoKSxzdHlsZTpuLnN0eWxlKCl9LHRoaXMuX2luaXRpYWxTdGF0ZT1lLnN0dWR5VGVtcGxhdGUoKSx0aGlzLl9pbml0aWFsR3JvdXBzU3RhdGU9ZS5saW5lVG9vbHNHcm91cE1vZGVsKCkuc3RhdGUoKX1yZWRvKCl7dGhpcy5fbW9kZWwubWFpblNlcmllcygpLnNldFN5bWJvbFBhcmFtcyh0aGlzLl9uZXdTeW1ib2xQYXJhbXMpO2NvbnN0IGU9dGhpcy5fbWVyZ2UodGhpcy5fdGVtcGxhdGVDb250ZW50LHRoaXMuX2hhc0FscmVhZHlCZWVuVW5kb25lPzI6MCkuZmlsdGVyKHJpLmlzTGluZVRvb2wpO3RoaXMuX21vZGVsLmxpbmVUb29sc0dyb3VwTW9kZWwoKS5yZW1vdmVMaW5lVG9vbHMoZSk7Y29uc3QgdD10aGlzLl9tb2RlbC5tYWluU2VyaWVzKCkucHJvcGVydGllcygpOygwLEEucHJlcGFyZVByaWNlQXhpc1Byb3BlcnRpZXMpKHQpLHRoaXMuX21vZGVsLnJlY2FsY1Zpc2libGVSYW5nZVN0dWRpZXMoSWkuUmVjYWxjVmlzaWJsZVJhbmdlU3R1ZGllc1JlYXNvbi5TdHVkeUNyZWF0aW9uKSx0aGlzLl9tb2RlbC5zZXRTaG91bGRCZVNhdmVkRXZlbklmSGlkZGVuKCEwKX11bmRvKCl7dGhpcy5fbW9kZWwubWFpblNlcmllcygpLnNldFN5bWJvbFBhcmFtcyh0aGlzLl9pbml0aWFsU3ltYm9sUGFyYW1zKSx0aGlzLl9tZXJnZSh0aGlzLl9pbml0aWFsU3RhdGUsMSksdGhpcy5faGFzQWxyZWFkeUJlZW5VbmRvbmU9ITB9X21lcmdlKGUsdCl7Y29uc3QgaT1lLnZlcnNpb258fDAscz10aGlzLl9tb2RlbCxuPXMubWFpblNlcmllcygpOygwLGwuYXNzZXJ0KShuLmlkKCk9PT1UbyhlKSksbi5wcmljZVNjYWxlKCkucHJvcGVydGllcygpLmNoaWxkcygpLmxvY2tTY2FsZS5zZXRWYWx1ZSghMSk7Y29uc3Qgcj1zLnBhbmVzKCksbz1bXTtmb3IobGV0IGU9ci5sZW5ndGg7ZS0tOyl7Y29uc3QgdD1yW2VdLGk9dC5jb250YWluc01haW5TZXJpZXMoKSxzPXQuZGF0YVNvdXJjZXMoKTtmb3IobGV0IGU9cy5sZW5ndGg7ZS0tOyl7Y29uc3QgdD1zW2VdOyghaXx8KCgwLHRpLmlzU3R1ZHkpKHQpfHwoMCx0aS5pc1N0dWR5U3R1YikodCkpJiZ0LmlzUmVtb3ZlZEJ5U3R1ZHlUZW1wbGF0ZXMoKSkmJm8ucHVzaCh0KX19cy5yZXNldERlZmVycmVkU3R1ZGllcygpO2NvbnN0IGM9MD09PXQ/dGhpcy5fZXZlbnRTb3VyY2U6MT09PXQ/InVuZG8iOnRoaXMuX2V2ZW50U291cmNlP2ByZWRvXyR7dGhpcy5fZXZlbnRTb3VyY2V9YDoicmVkbyIsaD0oMCxiby5jbG9zZVNvdXJjZXNTZXQpKHMsbywhMCk7Zm9yKGxldCBlPTA7ZTxoLmxlbmd0aDsrK2Upe2NvbnN0IHQ9aFtlXTsoMCx0aS5pc1N0dWR5KSh0KSYmKDAsd28udHJhY2tTdHVkaWVzKSh0Lm1ldGFJbmZvKCksdC5tb2RlbCgpLCJyZW1vdmUiLGMpLHMucmVtb3ZlU291cmNlKHQpfWNvbnN0IGQ9ZS5wYW5lcztsZXQgdT0wO2ZvcihsZXQgZT0wO2U8ZC5sZW5ndGg7ZSsrKXtsZXQgdD0tMTtjb25zdCBuPSgwLGEuY2xvbmUpKGRbZV0pO24uc291cmNlcy5zb3J0KCgoZSx0KT0+ZS56b3JkZXItdC56b3JkZXIpKTtmb3IobGV0IGU9MDtlPG4uc291cmNlcy5sZW5ndGg7ZSsrKXsKY29uc3QgaT1uLnNvdXJjZXNbZV07aWYoKDAsUC5pc01haW5TZXJpZXNTdGF0ZSkoaSkmJihkZWxldGUgaS5zdGF0ZSx0PWUpLCgwLFAuaXNTdHVkeVN0YXRlKShpKSl7Y29uc3QgZT1uZXcgb3QuU3R1ZHlNZXRhSW5mbyhpLm1ldGFJbmZvKTsoMCx3by50cmFja1N0dWRpZXMpKGUscywiYWRkIixjKX19Y29uc3Qgbz10Pi0xLGg9bz9yW2UtdV06cy5jcmVhdGVQYW5lKGUtdSk7aWYobyYmaTwzJiYoMCxDby5yZW9yZGVyRGF0YVNvdXJjZXNTdGF0ZVpPcmRlcikobi5zb3VyY2VzKSxoLnJlc3RvcmVTdGF0ZSh7c3RhdGU6bix3aXRoRGF0YTohMSx2ZXJzaW9uOmksaXNTdHVkeVRlbXBsYXRlOiEwfSksbnVsbCE9PWgubWFpbkRhdGFTb3VyY2UoKSl7Y29uc3QgZT0oMCxsLmVuc3VyZU5vdE51bGwpKHRoaXMuX21vZGVsLmFsZXJ0c1dhdGNoZXIoKSk7Zm9yKGNvbnN0IHQgb2YgaC5kYXRhU291cmNlcygpKWUuc3luY1NvdXJjZUFsZXJ0TGFiZWxzKHQpfWVsc2UgdSsrLHMucmVtb3ZlUGFuZShoKX1yZXR1cm4gcy5zeW5jTG9sbGlwb3BTb3VyY2VzKCksbi5wcmljZVNjYWxlKCkuc2V0TW9kZSh7YXV0b1NjYWxlOiEwfSkscy5zdGFydE5vdFN0YXJ0ZWRTdHVkaWVzKCkscy5yZWNhbGN1bGF0ZUFsbFBhbmVzKCgwLHRuLmdsb2JhbENoYW5nZUV2ZW50KSgpKSxzLmZ1bGxVcGRhdGUoKSxofX12YXIgSW89aSg1NDA1ODgpO2NvbnN0IExvPSgwLGMuZ2V0TG9nZ2VyKSgiQ2hhcnQuQ2hhcnRVbmRvTW9kZWwiKTt2YXIgQW87IWZ1bmN0aW9uKGUpe2VbZS5QYXN0ZVlDb29yZE9mZnNldD0tNDBdPSJQYXN0ZVlDb29yZE9mZnNldCJ9KEFvfHwoQW89e30pKTtjb25zdCBrbz1uZXcgeS5UcmFuc2xhdGVkU3RyaW5nKCJwYXN0ZSBkcmF3aW5nIixwLnQobnVsbCx2b2lkIDAsaSg4MzcwNjYpKSk7Y2xhc3MgRG8gZXh0ZW5kcyBFLlVuZG9Db21tYW5ke2NvbnN0cnVjdG9yKGUsdCxpLHMsbil7c3VwZXIoa28sdm9pZCAwLCFRbi5saW5lVG9vbHNEb05vdEFmZmVjdENoYXJ0SW52YWxpZGF0aW9uKSx0aGlzLl9uZWVkQ29weVRvT3RoZXJDaGFydHM9ITEsdGhpcy5fc291cmNlU3RhdGU9bnVsbCx0aGlzLl9hY3Rpb25Tb3VyY2VXYXNTZW50PSExLHRoaXMuX21vZGVsPWUsdGhpcy5fY2xpcGJvYXJkRGF0YT10LHRoaXMuX3BhbmVJbmRleD10aGlzLl9tb2RlbC5wYW5lcygpLmluZGV4T2YoaXx8KDAsbC5lbnN1cmVOb3ROdWxsKSh0aGlzLl9tb2RlbC5wYW5lRm9yU291cmNlKHRoaXMuX21vZGVsLm1haW5TZXJpZXMoKSkpKSx0aGlzLl9wYXN0ZVdpdGhEYXRhPSEhcyx0aGlzLl9rZWVwWkluZGV4PSEhbn1yZWRvKCl7Y29uc3QgZT10aGlzLl9tb2RlbC5wYW5lcygpW3RoaXMuX3BhbmVJbmRleF0sdD0oMCxsLmVuc3VyZU5vdE51bGwpKGUuY2xpcGJvYXJkTGluZVRvb2xPd25lclNvdXJjZSh0aGlzLl9jbGlwYm9hcmREYXRhLnNvdXJjZS5pZCkpLGk9dD09PXRoaXMuX21vZGVsLm1haW5TZXJpZXMoKTtsZXQgcztudWxsPT09dGhpcy5fc291cmNlU3RhdGUmJih0aGlzLl9zb3VyY2VTdGF0ZT10aGlzLl9nZXRTb3VyY2VTdGF0ZSh0LGkpKSx0aGlzLl9hY3Rpb25Tb3VyY2VXYXNTZW50fHwocz0iUGFzdGUiLHRoaXMuX2FjdGlvblNvdXJjZVdhc1NlbnQ9ITApO2NvbnN0IG49KDAsbC5lbnN1cmVOb3ROdWxsKShlLnJlc3RvcmVMaW5lVG9vbCh7c3RhdGU6dGhpcy5fc291cmNlU3RhdGUsd2l0aERhdGE6dGhpcy5fcGFzdGVXaXRoRGF0YSxrZWVwWk9yZGVyOnRoaXMuX2tlZXBaSW5kZXgsb3duZXJTb3VyY2U6dCxhY3Rpb25Tb3VyY2U6c30pKTsoMCxsLmVuc3VyZU5vdE51bGwpKHQucHJpY2VTY2FsZSgpKS5hZGREYXRhU291cmNlKG4pLHRoaXMuX2NsaXBib2FyZERhdGEuY2VudGVyZWRPbkNoYXJ0JiZuLmNlbnRlclBvc2l0aW9uJiZuLmNlbnRlclBvc2l0aW9uKCksbi5yZXN0b3JlRml4ZWRQb2ludCgpLG4uY3JlYXRlU2VydmVyUG9pbnRzKCksdGhpcy5fbmVlZENvcHlUb090aGVyQ2hhcnRzPUJvb2xlYW4oaSYmbi5pc1N5bmNocm9uaXphYmxlKCkmJjAhPT1uLnNoYXJpbmdNb2RlKCkudmFsdWUoKSksdGhpcy5fbW9kZWwuc2V0U2hvdWxkQmVTYXZlZEV2ZW5JZkhpZGRlbighMCl9dW5kbygpe2lmKCF0aGlzLl9zb3VyY2VTdGF0ZSlyZXR1cm4gdm9pZCBMby5sb2dFcnJvcigiVGhpcyBjb21tYW5kIHdhcyBuZXZlciBleGVjdXRlZCAtIG5vdGhpbmcgdG8gdW5kbyIpO2NvbnN0IGU9dGhpcy5zb3VyY2UoKTt0aGlzLl9jbGlwYm9hcmREYXRhLmNlbnRlcmVkT25DaGFydCYmKHRoaXMuX2NsaXBib2FyZERhdGEuY2VudGVyZWRPbkNoYXJ0PSExLHRoaXMuX3NvdXJjZVN0YXRlLnBvaW50cz1lLm5vcm1hbGl6ZWRQb2ludHMoKSksdGhpcy5fbW9kZWwucmVtb3ZlU291cmNlKGUpfXNvdXJjZSgpe3JldHVybigwLGwuZW5zdXJlTm90TnVsbCkodGhpcy5fbW9kZWwuZGF0YVNvdXJjZUZvcklkKCgwLGwuZW5zdXJlTm90TnVsbCkodGhpcy5fc291cmNlU3RhdGUpLmlkKSl9bmVlZENvcHlUb090aGVyQ2hhcnRzKCl7cmV0dXJuIHRoaXMuX25lZWRDb3B5VG9PdGhlckNoYXJ0c31fZ2V0U291cmNlU3RhdGUoZSx0KXtjb25zdCBpPSgwLGEuY2xvbmUpKHRoaXMuX2NsaXBib2FyZERhdGEuc291cmNlKTtkZWxldGUgaS5zdGF0ZS5zeW1ib2wsdD8obnVsbCE9aS5saW5rS2V5fHx2b2lkIDAhPT1pLnNoYXJpbmdNb2RlJiYwIT09aS5zaGFyaW5nTW9kZSkmJihpLmxpbmtLZXk9KDAsbHQucmFuZG9tSGFzaCkoKSk6KGkubGlua0tleT1udWxsLGkuc2hhcmluZ01vZGU9MCk7Y29uc3Qgcz0oMCxsLmVuc3VyZU5vdE51bGwpKGUucHJpY2VTY2FsZSgpKSxuPXRoaXMuX21vZGVsLHtzeW1ib2w6cixjdXJyZW5jeUlkOm8sdW5pdElkOmN9PXRoaXMuX2NsaXBib2FyZERhdGEuc291cmNlLnN0YXRlLGg9KDAsbC5lbnN1cmVOb3ROdWxsKShlLnN5bWJvbFNvdXJjZSgpKTtsZXQgZD0hMTshaC5zeW1ib2xTYW1lQXNDdXJyZW50KHIpfHwobnVsbCE9PW8/byE9PSgwLEEuc3ltYm9sQ3VycmVuY3kpKGguc3ltYm9sSW5mbygpLHZvaWQgMCwhMCk6aC5pc0NvbnZlcnRlZFRvT3RoZXJDdXJyZW5jeSgpKXx8KG51bGwhPT1jP2MhPT0oMCwKQS5zeW1ib2xVbml0KShoLnN5bWJvbEluZm8oKSx0aGlzLl9tb2RlbC51bml0Q29udmVyc2lvbkVuYWJsZWQoKSk6aC5pc0NvbnZlcnRlZFRvT3RoZXJVbml0KCkpfHwoKDAsSW8uaXNTeW1ib2xTb3VyY2UpKGUpP2Q9ITA6KDAsdGkuaXNTdHVkeSkoZSkmJihkPUJvb2xlYW4oZS5tZXRhSW5mbygpLmlzX3ByaWNlX3N0dWR5KSkpLGkuc3RhdGUuY3VycmVuY3lJZD1uLmN1cnJlbmN5Q29udmVyc2lvbkVuYWJsZWQoKSYmaC5pc0NvbnZlcnRlZFRvT3RoZXJDdXJyZW5jeSgpP2guY3VycmVuY3koKTpudWxsLGkuc3RhdGUudW5pdElkPW4udW5pdENvbnZlcnNpb25FbmFibGVkKCkmJmguaXNDb252ZXJ0ZWRUb090aGVyVW5pdCgpP2gudW5pdCgpOm51bGw7Y29uc3QgdT1lPT57Y29uc3QgdD1lLngqbi50aW1lU2NhbGUoKS53aWR0aCgpLGk9ZS55KnMuaGVpZ2h0KCktNDA7cmV0dXJuIG5ldyBQdC5Qb2ludCh0LGkpfSxwPSgwLGwuZW5zdXJlTm90TnVsbCkoZS5maXJzdFZhbHVlKCkpO2lmKHRoaXMuX21vZGVsLmlkKCk9PT10aGlzLl9jbGlwYm9hcmREYXRhLm1vZGVsSWR8fCFkKXtmb3IobGV0IGU9MDtlPHRoaXMuX2NsaXBib2FyZERhdGEuZ2VvbWV0cnkubGVuZ3RoOysrZSl7Y29uc3QgdD11KHRoaXMuX2NsaXBib2FyZERhdGEuZ2VvbWV0cnlbZV0pLHI9bi50aW1lU2NhbGUoKS5jb29yZGluYXRlVG9JbmRleCh0LngpLG89bi50aW1lU2NhbGUoKS5ub3JtYWxpemVCYXJJbmRleChyKTtpZihkKXtjb25zdCB0PXMucHJpY2VUb0Nvb3JkaW5hdGUoaS5wb2ludHNbZV0ucHJpY2UscCkrLTQwO28ucHJpY2U9cy5jb29yZGluYXRlVG9QcmljZSh0LHApfWVsc2Ugby5wcmljZT1zLmNvb3JkaW5hdGVUb1ByaWNlKHQueSxwKTtpLnBvaW50c1tlXT1vfWkuc3RhdGUuaW50ZXJ2YWw9bi5tYWluU2VyaWVzKCkuaW50ZXJ2YWwoKX1yZXR1cm4gaS5pZD0oMCxsdC5yYW5kb21IYXNoTikoNiksaX19Y2xhc3MgRW8gZXh0ZW5kcyBFLlVuZG9Db21tYW5ke2NvbnN0cnVjdG9yKGUsdCxpLHMpe3N1cGVyKHMpLHRoaXMuX25ld1NvdXJjZXNDdXJyZW5jaWVzPW5ldyBNYXAsdGhpcy5fb2xkU291cmNlc0N1cnJlbmNpZXM9bmV3IE1hcCx0aGlzLl9zaG93RmFkZT0hMSx0aGlzLl9jaGFydE1vZGVsPWU7Y29uc3Qgbj1lLm1haW5TZXJpZXMoKTtmb3IoY29uc3QgZSBvZiB0LnByaWNlRGF0YVNvdXJjZXMoKSl7aWYoIWUuaXNWaXNpYmxlKCl8fCFlLmlzQ3VycmVuY3lPcmlnaW4oKS52YWx1ZSgpKWNvbnRpbnVlO2NvbnN0IHQ9aT8/ZS5jdXJyZW5jeU1ldGFkYXRhKCkudmFsdWUoKT8ub3JpZ2luYWxDdXJyZW5jeT8/bnVsbDt0aGlzLl9uZXdTb3VyY2VzQ3VycmVuY2llcy5zZXQoZS5pZCgpLHQpLHRoaXMuX29sZFNvdXJjZXNDdXJyZW5jaWVzLnNldChlLmlkKCksZS5jdXJyZW5jeSgpKSx0aGlzLl9zaG93RmFkZT10aGlzLl9zaG93RmFkZXx8ZT09PW4mJmUuY3VycmVuY3koKSE9PXR9fXJlZG8oKXt0aGlzLl9hcHBseUN1cnJlbmNpZXModGhpcy5fbmV3U291cmNlc0N1cnJlbmNpZXMpfXVuZG8oKXt0aGlzLl9hcHBseUN1cnJlbmNpZXModGhpcy5fb2xkU291cmNlc0N1cnJlbmNpZXMpfV9hcHBseUN1cnJlbmNpZXMoZSl7ZS5mb3JFYWNoKCgoZSx0KT0+eygwLGwuZW5zdXJlTm90TnVsbCkodGhpcy5fY2hhcnRNb2RlbC5kYXRhU291cmNlRm9ySWQodCkpLnNldEN1cnJlbmN5KGUpfSkpLHRoaXMuX2NoYXJ0TW9kZWwuc2VsZWN0aW9uTWFjcm8oKGU9PntlLmNsZWFyU2VsZWN0aW9uKCl9KSksdGhpcy5fc2hvd0ZhZGUmJnRoaXMuX2NoYXJ0TW9kZWwudW5kb01vZGVsKCkubG9hZGluZ1NjcmVlbigpLnNob3coITApfX1jbGFzcyBSbyBleHRlbmRzIEUuVW5kb0NvbW1hbmR7Y29uc3RydWN0b3IoZSx0LGkscyl7c3VwZXIocyksdGhpcy5fbmV3U291cmNlc1VuaXRzPW5ldyBNYXAsdGhpcy5fb2xkU291cmNlc1VuaXRzPW5ldyBNYXAsdGhpcy5fc2hvd0ZhZGU9ITEsdGhpcy5fY2hhcnRNb2RlbD1lO2NvbnN0IG49ZS5tYWluU2VyaWVzKCk7Zm9yKGNvbnN0IGUgb2YgdC5wcmljZURhdGFTb3VyY2VzKCkpe2lmKCFlLmlzVmlzaWJsZSgpfHwhZS5pc1VuaXRPcmlnaW4oKS52YWx1ZSgpKWNvbnRpbnVlO2NvbnN0IHQ9aT8/ZS51bml0TWV0YWRhdGEoKS52YWx1ZSgpPy5vcmlnaW5hbFVuaXQ/P251bGw7dGhpcy5fbmV3U291cmNlc1VuaXRzLnNldChlLmlkKCksdCksdGhpcy5fb2xkU291cmNlc1VuaXRzLnNldChlLmlkKCksZS51bml0KCkpLHRoaXMuX3Nob3dGYWRlPXRoaXMuX3Nob3dGYWRlfHxlPT09biYmZS51bml0KCkhPT10fX1yZWRvKCl7dGhpcy5fYXBwbHlVbml0cyh0aGlzLl9uZXdTb3VyY2VzVW5pdHMpfXVuZG8oKXt0aGlzLl9hcHBseVVuaXRzKHRoaXMuX29sZFNvdXJjZXNVbml0cyl9X2FwcGx5VW5pdHMoZSl7ZS5mb3JFYWNoKCgoZSx0KT0+eygwLGwuZW5zdXJlTm90TnVsbCkodGhpcy5fY2hhcnRNb2RlbC5kYXRhU291cmNlRm9ySWQodCkpLnNldFVuaXQoZSl9KSksdGhpcy5fY2hhcnRNb2RlbC5zZWxlY3Rpb25NYWNybygoZT0+e2UuY2xlYXJTZWxlY3Rpb24oKX0pKSx0aGlzLl9zaG93RmFkZSYmdGhpcy5fY2hhcnRNb2RlbC51bmRvTW9kZWwoKS5sb2FkaW5nU2NyZWVuKCkuc2hvdyghMCl9fXZhciBWbz1pKDE2MzYwMyk7Y2xhc3MgQm8gZXh0ZW5kcyBFLlVuZG9Db21tYW5ke2NvbnN0cnVjdG9yKGUsdCxpLHMsbj0hMSl7c3VwZXIoZSksdGhpcy5fY2hhcnRzPW5ldyBNYXAsdGhpcy5fZmlyc3RSZWRvPSEwLHRoaXMuX2NyZWF0aW9uVGltZT1wZXJmb3JtYW5jZS5ub3coKSx0aGlzLl9saW5raW5nR3JvdXBJbmRleD1zLmxpbmtpbmdHcm91cEluZGV4KCkudmFsdWUoKTtjb25zdCByPW5ldyBNYXAsbz1uZXcgTWFwO2lmKG4pZm9yKGNvbnN0IGUgb2Ygcy5tb2RlbCgpLm1vZGVsKCkuYWxsU3R1ZGllcyghMCkpZS5pZCgpIT09dC5pZCgpJiZlLnN5bWJvbFNvdXJjZSgpPT09dCYmKGUuaXNDdXJyZW5jeU9yaWdpbigpLnZhbHVlKCkmJiFlLmN1cnJlbmN5TWV0YWRhdGEoKS52YWx1ZSgpPy5kb05vdFJlc2V0Q3VycmVuY3lPbkNoYW5naW5nU3ltYm9sU291cmNlU3ltYm9sJiZyLnNldChlLmlkKCksZS5jdXJyZW5jeSgpKSwKZS5pc1VuaXRPcmlnaW4oKS52YWx1ZSgpJiYhZS51bml0TWV0YWRhdGEoKS52YWx1ZSgpPy5kb05vdFJlc2V0VW5pdE9uQ2hhbmdpbmdTeW1ib2xTb3VyY2VTeW1ib2wmJm8uc2V0KGUuaWQoKSxlLnVuaXQoKSkpO3RoaXMuX2NoYXJ0cy5zZXQocyx7c291cmNlSWQ6dC5pZCgpLG5ld1N5bWJvbFBhcmFtczppLHByZXZTeW1ib2xQYXJhbXM6dC5zeW1ib2xQYXJhbXMoKSxzaG93RmFkZTp0aGlzLl9zaG93RmFkZSh0LHMpLGNoYXJ0V2lkZ2V0OnMsY3VycmVuY3lPcmlnaW5Tb3VyY2VzOnIsdW5pdE9yaWdpblNvdXJjZXM6b30pfXJlZG8oKXt0aGlzLl9maXJzdFJlZG98fCgwLFoubXV0ZUxpbmtpbmdHcm91cCkodGhpcy5fbGlua2luZ0dyb3VwSW5kZXgsITApLHRoaXMuX2NoYXJ0cy5mb3JFYWNoKChlPT57Y29uc3QgdD10aGlzLl9zeW1ib2xTb3VyY2UoZSkuc2V0U3ltYm9sUGFyYW1zKGUubmV3U3ltYm9sUGFyYW1zKTtmb3IoY29uc3RbdF1vZiBlLmN1cnJlbmN5T3JpZ2luU291cmNlcyl7dGhpcy5fY3VycmVuY3lVbml0T3JpZ2luU291cmNlKGUsdCkuc2V0Q3VycmVuY3kobnVsbCl9Zm9yKGNvbnN0W3Rdb2YgZS51bml0T3JpZ2luU291cmNlcyl7dGhpcy5fY3VycmVuY3lVbml0T3JpZ2luU291cmNlKGUsdCkuc2V0VW5pdChudWxsKX1lLnNob3dGYWRlJiZlLmNoYXJ0V2lkZ2V0LnNjcmVlbi5zaG93KCEwLHQpfSkpLHRoaXMuX2ZpcnN0UmVkb3x8KDAsWi5tdXRlTGlua2luZ0dyb3VwKSh0aGlzLl9saW5raW5nR3JvdXBJbmRleCwhMSksdGhpcy5fZmlyc3RSZWRvPSExfXVuZG8oKXsoMCxaLm11dGVMaW5raW5nR3JvdXApKHRoaXMuX2xpbmtpbmdHcm91cEluZGV4LCEwKSx0aGlzLl9jaGFydHMuZm9yRWFjaCgoZT0+e2NvbnN0IHQ9dGhpcy5fc3ltYm9sU291cmNlKGUpLnNldFN5bWJvbFBhcmFtcyhlLnByZXZTeW1ib2xQYXJhbXMpO2Zvcihjb25zdFt0LGldb2YgZS5jdXJyZW5jeU9yaWdpblNvdXJjZXMpe3RoaXMuX2N1cnJlbmN5VW5pdE9yaWdpblNvdXJjZShlLHQpLnNldEN1cnJlbmN5KGkpfWZvcihjb25zdFt0LGldb2YgZS51bml0T3JpZ2luU291cmNlcyl7dGhpcy5fY3VycmVuY3lVbml0T3JpZ2luU291cmNlKGUsdCkuc2V0VW5pdChpKX1lLnNob3dGYWRlJiZlLmNoYXJ0V2lkZ2V0LnNjcmVlbi5zaG93KCEwLHQpfSkpLCgwLFoubXV0ZUxpbmtpbmdHcm91cCkodGhpcy5fbGlua2luZ0dyb3VwSW5kZXgsITEpfWNhbk1lcmdlKGUpe2lmKCEoZSBpbnN0YW5jZW9mIEJvKXx8ZS5fbGlua2luZ0dyb3VwSW5kZXghPT10aGlzLl9saW5raW5nR3JvdXBJbmRleHx8IXRoaXMuX2NvbnRhaW5zTWFpblNlcmllc09ubHkoKXx8IWUuX2NvbnRhaW5zTWFpblNlcmllc09ubHkoKXx8ZS5fY3JlYXRpb25UaW1lLXRoaXMuX2NyZWF0aW9uVGltZT41MDApcmV0dXJuITE7Zm9yKGNvbnN0W3Rdb2YgZS5fY2hhcnRzKWlmKHRoaXMuX2NoYXJ0cy5oYXModCkpcmV0dXJuITE7cmV0dXJuITB9bWVyZ2UoZSl7aWYoZSBpbnN0YW5jZW9mIEJvKWZvcihjb25zdFt0LGldb2YgZS5fY2hhcnRzKXRoaXMuX2NoYXJ0cy5zZXQodCxpKX1fc2hvd0ZhZGUoZSx0KXtyZXR1cm4gZT09PXQubW9kZWwoKS5tYWluU2VyaWVzKCl9X3N5bWJvbFNvdXJjZShlKXtyZXR1cm4oMCxsLmVuc3VyZU5vdE51bGwpKGUuY2hhcnRXaWRnZXQubW9kZWwoKS5tb2RlbCgpLmRhdGFTb3VyY2VGb3JJZChlLnNvdXJjZUlkKSl9X2N1cnJlbmN5VW5pdE9yaWdpblNvdXJjZShlLHQpe3JldHVybigwLGwuZW5zdXJlTm90TnVsbCkoZS5jaGFydFdpZGdldC5tb2RlbCgpLm1vZGVsKCkuZGF0YVNvdXJjZUZvcklkKHQpKX1fY29udGFpbnNNYWluU2VyaWVzT25seSgpe2Zvcihjb25zdFtlLHRdb2YgdGhpcy5fY2hhcnRzKWlmKHQuc291cmNlSWQhPT1lLm1vZGVsKCkubWFpblNlcmllcygpLmlkKCkpcmV0dXJuITE7cmV0dXJuITB9fWNvbnN0IE5vPW5ldyB5LlRyYW5zbGF0ZWRTdHJpbmcoImNoYW5nZSBzeW1ib2wiLHAudChudWxsLHZvaWQgMCxpKDE4NzY5KSkpO2NsYXNzIE9vIGV4dGVuZHMgQm97Y29uc3RydWN0b3IoZSx0LGkpe3N1cGVyKE5vLGUse3N5bWJvbDp0LGN1cnJlbmN5Om51bGwsdW5pdDpudWxsfSxpLCEwKSx0aGlzLl9zeW1ib2w9dH1jYW5NZXJnZShlKXtyZXR1cm4gZSBpbnN0YW5jZW9mIE9vJiZlLl9zeW1ib2w9PT10aGlzLl9zeW1ib2wmJnN1cGVyLmNhbk1lcmdlKGUpfX12YXIgV289aSgyMDM2ODEpO2NvbnN0IEZvPSgwLGMuZ2V0TG9nZ2VyKSgiQ2hhcnQuQ2hhcnRVbmRvTW9kZWwiKSxIbz1uZXcgeS5UcmFuc2xhdGVkU3RyaW5nKCJwYXN0ZSBpbmRpY2F0b3IiLHAudChudWxsLHZvaWQgMCxpKDc2MzMzOSkpKTtjbGFzcyB6byBleHRlbmRzIEUuVW5kb0NvbW1hbmR7Y29uc3RydWN0b3IoZSx0LGkpe3N1cGVyKEhvKSx0aGlzLl9zb3VyY2VTdGF0ZT1udWxsLHRoaXMuX2hhc0FscmVhZHlCZWVuVW5kb25lPSExLHRoaXMuX21vZGVsPWUsdGhpcy5fY2xpcGJvYXJkRGF0YT10LHRoaXMuX3BhbmVJZD1pfXJlZG8oKXtpZighdGhpcy5fc291cmNlU3RhdGUpe2NvbnN0IGU9KDAsV28uZGVmYXVsdCkodGhpcy5fY2xpcGJvYXJkRGF0YS5zb3VyY2UpO2UuaWQ9KDAsbHQucmFuZG9tSGFzaE4pKDYpLHRoaXMuX3NvdXJjZVN0YXRlPWV9bGV0IGUsdDtlPXRoaXMuX3BhbmVJZD8oMCxsLmVuc3VyZU5vdE51bGwpKHRoaXMuX21vZGVsLnBhbmVGb3JJZCh0aGlzLl9wYW5lSWQpKTp0aGlzLl9zb3VyY2VTdGF0ZS5tZXRhSW5mby5pc19wcmljZV9zdHVkeT8oMCxsLmVuc3VyZU5vdE51bGwpKHRoaXMuX21vZGVsLnBhbmVGb3JTb3VyY2UodGhpcy5fbW9kZWwubWFpblNlcmllcygpKSk6dGhpcy5fbW9kZWwuY3JlYXRlUGFuZSgpO2NvbnN0IGk9IWUubWFpbkRhdGFTb3VyY2UoKTt0aGlzLl9zb3VyY2VTdGF0ZS56b3JkZXI9ZS5uZXdTdHVkeVpPcmRlcigpO2NvbnN0IHM9KDAsbC5lbnN1cmVOb3ROdWxsKShlLnJlc3RvcmVTdHVkeSh7c291cmNlOnRoaXMuX3NvdXJjZVN0YXRlfSkpCjtpZihpfHwodD10aGlzLl9zb3VyY2VTdGF0ZS5tZXRhSW5mby5pc19wcmljZV9zdHVkeT90PXRoaXMuX21vZGVsLm1haW5TZXJpZXMoKS5wcmljZVNjYWxlKCk6dGhpcy5fcGFuZUlkP2UuZmluZFN1aXRhYmxlU2NhbGUocyk6ZS5kZWZhdWx0UHJpY2VTY2FsZSgpLHQhPT1zLnByaWNlU2NhbGUoKSYmZS5tb3ZlKHMsdCkpLCgwLHRpLmlzU3R1ZHkpKHMpfHwoMCx0aS5pc1N0dWR5U3R1Yikocykpe3tjb25zdCBlPXRoaXMuX2hhc0FscmVhZHlCZWVuVW5kb25lPyJyZWRvX3Bhc3RlIjoicGFzdGUiOygwLHdvLnRyYWNrU3R1ZGllcykobmV3IG90LlN0dWR5TWV0YUluZm8odGhpcy5fc291cmNlU3RhdGUubWV0YUluZm8pLHMubW9kZWwoKSwiYWRkIixlKX1zLnN0YXJ0KCl9fXVuZG8oKXtpZihudWxsPT09dGhpcy5fc291cmNlU3RhdGUpcmV0dXJuIHZvaWQgRm8ubG9nRXJyb3IoIlRoaXMgY29tbWFuZCB3YXMgbmV2ZXIgZXhlY3V0ZWQgLSBub3RoaW5nIHRvIHVuZG8iKTtjb25zdCBlPSgwLGwuZW5zdXJlTm90TnVsbCkodGhpcy5fbW9kZWwuZGF0YVNvdXJjZUZvcklkKHRoaXMuX3NvdXJjZVN0YXRlLmlkKSk7dGhpcy5fbW9kZWwucmVtb3ZlU291cmNlKGUpfXN0YXRlKCl7cmV0dXJuIHRoaXMuX3NvdXJjZVN0YXRlfX1jbGFzcyBVbyBleHRlbmRzIEUuVW5kb0NvbW1hbmR7Y29uc3RydWN0b3IoZSx0LGkscyxuKXtzdXBlcihudWxsLCExKSx0aGlzLl9tb2RlbD1lLHRoaXMuX3BhbmVBPXQsdGhpcy5fcGFuZUI9aSx0aGlzLl9wcmV2U3RyZXRjaEE9cyx0aGlzLl9jdXJyU3RyZXRjaEE9bn1yZWRvKCl7Y29uc3QgZT10aGlzLl9wYW5lQS5zdHJldGNoRmFjdG9yKCkrdGhpcy5fcGFuZUIuc3RyZXRjaEZhY3RvcigpO3RoaXMuX3BhbmVBLnNldFN0cmV0Y2hGYWN0b3IodGhpcy5fY3VyclN0cmV0Y2hBKSx0aGlzLl9wYW5lQi5zZXRTdHJldGNoRmFjdG9yKGUtdGhpcy5fY3VyclN0cmV0Y2hBKSx0aGlzLl9tb2RlbC5mdWxsVXBkYXRlKCl9dW5kbygpe2NvbnN0IGU9dGhpcy5fcGFuZUEuc3RyZXRjaEZhY3RvcigpK3RoaXMuX3BhbmVCLnN0cmV0Y2hGYWN0b3IoKTt0aGlzLl9wYW5lQS5zZXRTdHJldGNoRmFjdG9yKHRoaXMuX3ByZXZTdHJldGNoQSksdGhpcy5fcGFuZUIuc2V0U3RyZXRjaEZhY3RvcihlLXRoaXMuX3ByZXZTdHJldGNoQSksdGhpcy5fbW9kZWwuZnVsbFVwZGF0ZSgpfX1jb25zdCBHbz1uZXcgeS5UcmFuc2xhdGVkU3RyaW5nKCJtb3ZlIixwLnQobnVsbCx2b2lkIDAsaSg5NjU3OTApKSk7Y2xhc3Mgam8gZXh0ZW5kcyBFLlVuZG9Db21tYW5ke2NvbnN0cnVjdG9yKGUsdCxpLHMpe3N1cGVyKEdvLCExKSx0aGlzLl9lbmRFdmVudD1udWxsLHRoaXMuX21vZGVsPWUsdGhpcy5fc291cmNlSWQ9dC5pZCgpLHRoaXMuX2l0ZW1JbmRleD1pLHRoaXMuX3N0YXJ0RXZlbnQ9c31tb3ZlKGUpe3RoaXMuX2VuZEV2ZW50PWUsdGhpcy5fbW92ZShlKX1oYXNDaGFuZ2VzKCl7cmV0dXJuIG51bGwhPT10aGlzLl9lbmRFdmVudH11bmRvKCl7dGhpcy5fbW92ZSh0aGlzLl9zdGFydEV2ZW50KX1yZWRvKCl7dGhpcy5fbW92ZSgoMCxsLmVuc3VyZU5vdE51bGwpKHRoaXMuX2VuZEV2ZW50KSl9X21vdmUoZSl7Y29uc3QgdD0oMCxsLmVuc3VyZU5vdE51bGwpKHRoaXMuX21vZGVsLmRhdGFTb3VyY2VGb3JJZCh0aGlzLl9zb3VyY2VJZCkpOygwLGwuYXNzZXJ0KSh2b2lkIDAhPT10Lm1vdmVJdGVtLCdUaGUgbWV0aG9kICJtb3ZlSXRlbSIgaXMgbm90IGRlZmluZWQnKSx0Lm1vdmVJdGVtJiZ0Lm1vdmVJdGVtKG5ldyBQdC5Qb2ludChlLmxvY2FsWCxlLmxvY2FsWSksdGhpcy5faXRlbUluZGV4LG5ldyBMaS5FbnZpcm9ubWVudFN0YXRlKGUpKX19dmFyIHFvPWkoMTg1NjA4KTtjbGFzcyAkbyBleHRlbmRzIEUuVW5kb0NvbW1hbmR7Y29uc3RydWN0b3IoZSx0LGkscyl7c3VwZXIoaSksdGhpcy5fbmV3TW9kZT1lLHRoaXMuX3ByaWNlU2NhbGVJZD10LmlkKCksdGhpcy5fbW9kZWw9cyx0aGlzLl9vbGRNb2RlPXQubW9kZSgpfXJlZG8oKXt0aGlzLl9hcHBseU1vZGUodGhpcy5fbmV3TW9kZSl9dW5kbygpe3RoaXMuX2FwcGx5TW9kZSh0aGlzLl9vbGRNb2RlKX1fYXBwbHlNb2RlKGUpe2NvbnN0IHQ9dGhpcy5fZmluZFByaWNlU2NhbGVCeUlkKCk7bnVsbCE9PXQmJigoMCxHci5hbGxvd1NhdmluZ0RlZmF1bHRzKSghMCksdC5zZXRNb2RlKGUpLCgwLEdyLmFsbG93U2F2aW5nRGVmYXVsdHMpKCExKSx0aGlzLl9tb2RlbCYmKHRoaXMuX21vZGVsLnJlY2FsY3VsYXRlQWxsUGFuZXMoKDAsdG4udmlld3BvcnRDaGFuZ2VFdmVudCkoKSksdGhpcy5fbW9kZWwubGlnaHRVcGRhdGUoKSkpfV9maW5kUHJpY2VTY2FsZUJ5SWQoKXtjb25zdCBlPXRoaXMuX21vZGVsLnBhbmVzKCk7Zm9yKGxldCB0PTA7dDxlLmxlbmd0aDt0Kyspe2NvbnN0IGk9ZVt0XS5nZXRQcmljZVNjYWxlQnlJZCh0aGlzLl9wcmljZVNjYWxlSWQpO2lmKG51bGwhPT1pKXJldHVybiBpfXJldHVybiBudWxsfX12YXIgWW89aSg1NDc4NTEpLEtvPWkoNTg3MTY4KSxYbz1pKDUwNTU2KSxabz1pKDkzNjMyNiksSm89aSg4MTA0MSksUW89aSg5MzIzNjUpLGVhPWkoMTU2ODI5KSx0YT1pKDIyNjkzNyksaWE9aSg0NTcwODMpLHNhPWkoOTI4MTMyKSxuYT1pKDE0MzgwOCkscmE9aSg4NzIzNDMpO2NvbnN0IG9hPSgwLHJhLmNyZWF0ZVN0dWR5SW5mbykoKCgpPT5Qcm9taXNlLmFsbChbaS5lKDIxNzg0KSxpLmUoMzEwMDEpLGkuZSg4NjE3OCksaS5lKDkxOTQ0KSxpLmUoOTc1NTgpLGkuZSg2Njk4OCksaS5lKDk3MjcyKSxpLmUoOTI3MCksaS5lKDg0MjY1KSxpLmUoNTM1NSksaS5lKDEyMjI3KSxpLmUoNTk2NDkpLGkuZSg0NzUzOCldKS50aGVuKGkuYmluZChpLDE5NzI3MikpLnRoZW4oKGU9PmUuU3R1ZHkpKSkpOygwLHJhLmFkZFN0dWR5SW5mb1RvTWFwKSgiU3R1ZHkiLG9hKSwoMCxyYS5hZGRTdHVkeUluZm9Ub01hcCkoInN0dWR5X1Bpdm90UG9pbnRzU3RhbmRhcmQiLCgwLApyYS5jcmVhdGVTdHVkeUluZm8pKCgoKT0+UHJvbWlzZS5hbGwoW2kuZSgyMTc4NCksaS5lKDMxMDAxKSxpLmUoODYxNzgpLGkuZSg5MTk0NCksaS5lKDk3NTU4KSxpLmUoNjY5ODgpLGkuZSg5NzI3MiksaS5lKDkyNzApLGkuZSg4NDI2NSksaS5lKDUzNTUpLGkuZSgxMjIyNyksaS5lKDU5NjQ5KSxpLmUoNDc1MzgpXSkudGhlbihpLmJpbmQoaSw4NDQ3MjcpKS50aGVuKChlPT5lLnN0dWR5X1Bpdm90UG9pbnRzU3RhbmRhcmQpKSkpKSwoMCxyYS5hZGRTdHVkeUluZm9Ub01hcCkoInN0dWR5X092ZXJsYXkiLCgwLHJhLmNyZWF0ZVN0dWR5SW5mbykoKCgpPT5Qcm9taXNlLmFsbChbaS5lKDIxNzg0KSxpLmUoMzEwMDEpLGkuZSg4NjE3OCksaS5lKDkxOTQ0KSxpLmUoOTc1NTgpLGkuZSg2Njk4OCksaS5lKDk3MjcyKSxpLmUoOTI3MCksaS5lKDg0MjY1KSxpLmUoNTM1NSksaS5lKDEyMjI3KSxpLmUoNTk2NDkpLGkuZSg0NzUzOCldKS50aGVuKGkuYmluZChpLDEyMzI2MCkpLnRoZW4oKGU9PmUuc3R1ZHlfT3ZlcmxheSkpKSwibG9vcCIpKSwoMCxyYS5hZGRTdHVkeUluZm9Ub01hcCkoInN0dWR5X0NvbXBhcmUiLCgwLHJhLmNyZWF0ZVN0dWR5SW5mbykoKCgpPT5Qcm9taXNlLmFsbChbaS5lKDIxNzg0KSxpLmUoMzEwMDEpLGkuZSg4NjE3OCksaS5lKDkxOTQ0KSxpLmUoOTc1NTgpLGkuZSg2Njk4OCksaS5lKDk3MjcyKSxpLmUoOTI3MCksaS5lKDg0MjY1KSxpLmUoNTM1NSksaS5lKDEyMjI3KSxpLmUoNTk2NDkpLGkuZSg0NzUzOCldKS50aGVuKGkuYmluZChpLDg1OTY0OSkpLnRoZW4oKGU9PmUuU3R1ZHlDb21wYXJlKSkpLCJsb29wIikpLCgwLHJhLmFkZFN0dWR5SW5mb1RvTWFwKSgic3R1ZHlfVm9sdW1lIiwoMCxyYS5jcmVhdGVTdHVkeUluZm8pKCgoKT0+UHJvbWlzZS5hbGwoW2kuZSgyMTc4NCksaS5lKDMxMDAxKSxpLmUoODYxNzgpLGkuZSg5MTk0NCksaS5lKDk3NTU4KSxpLmUoNjY5ODgpLGkuZSg5NzI3MiksaS5lKDkyNzApLGkuZSg4NDI2NSksaS5lKDUzNTUpLGkuZSgxMjIyNyksaS5lKDU5NjQ5KSxpLmUoNDc1MzgpXSkudGhlbihpLmJpbmQoaSw3MjAxMjApKS50aGVuKChlPT5lLlZvbHVtZVN0dWR5KSkpKSksKDAscmEuYWRkU3R1ZHlJbmZvVG9NYXApKCJzdHVkeV9WYlBWaXNpYmxlIiwoMCxyYS5jcmVhdGVTdHVkeUluZm8pKCgoKT0+UHJvbWlzZS5hbGwoW2kuZSgyMTc4NCksaS5lKDMxMDAxKSxpLmUoODYxNzgpLGkuZSg5MTk0NCksaS5lKDk3NTU4KSxpLmUoNjY5ODgpLGkuZSg5NzI3MiksaS5lKDkyNzApLGkuZSg4NDI2NSksaS5lKDUzNTUpLGkuZSgxMjIyNyksaS5lKDU5NjQ5KSxpLmUoNDc1MzgpXSkudGhlbihpLmJpbmQoaSwyMjcwNTYpKS50aGVuKChlPT5lLlZiUFZpc2libGVXcmFwcGVyKSkpLCJub1JvdGF0aW9ucyIpKSwoMCxyYS5hZGRTdHVkeUluZm9Ub01hcCkoInN0dWR5X1ZiUEZpeGVkIiwoMCxyYS5jcmVhdGVTdHVkeUluZm8pKCgoKT0+UHJvbWlzZS5hbGwoW2kuZSgyMTc4NCksaS5lKDMxMDAxKSxpLmUoODYxNzgpLGkuZSg5MTk0NCksaS5lKDk3NTU4KSxpLmUoNjY5ODgpLGkuZSg5NzI3MiksaS5lKDkyNzApLGkuZSg4NDI2NSksaS5lKDUzNTUpLGkuZSgxMjIyNyksaS5lKDU5NjQ5KSxpLmUoNDc1MzgpXSkudGhlbihpLmJpbmQoaSwyMjcwNTYpKS50aGVuKChlPT5lLlZvbHVtZVByb2ZpbGVTdHVkeVdpdGhUaGVtZWRDb2xvcnMpKSksIm5vUm90YXRpb25zIikpLCgwLHJhLmFkZFN0dWR5SW5mb1RvTWFwKSgic3R1ZHlfU2NyaXB0V2l0aERhdGFPZmZzZXQiLCgwLHJhLmNyZWF0ZVN0dWR5SW5mbykoKCgpPT5Qcm9taXNlLmFsbChbaS5lKDIxNzg0KSxpLmUoMzEwMDEpLGkuZSg4NjE3OCksaS5lKDkxOTQ0KSxpLmUoOTc1NTgpLGkuZSg2Njk4OCksaS5lKDk3MjcyKSxpLmUoOTI3MCksaS5lKDg0MjY1KSxpLmUoNTM1NSksaS5lKDEyMjI3KSxpLmUoNTk2NDkpLGkuZSg0NzUzOCldKS50aGVuKGkuYmluZChpLDIyMjkwKSkudGhlbigoZT0+ZS5zdHVkeV9TY3JpcHRXaXRoRGF0YU9mZnNldCkpKSkpLCgwLHJhLmFkZFN0dWR5SW5mb1RvTWFwKSgic3R1ZHlfRWFybmluZ3MiLCgwLHJhLmNyZWF0ZVN0dWR5SW5mbykoKCgpPT5Qcm9taXNlLmFsbChbaS5lKDIxNzg0KSxpLmUoMzEwMDEpLGkuZSg4NjE3OCksaS5lKDkxOTQ0KSxpLmUoOTc1NTgpLGkuZSg2Njk4OCksaS5lKDk3MjcyKSxpLmUoOTI3MCksaS5lKDg0MjY1KSxpLmUoNTM1NSksaS5lKDEyMjI3KSxpLmUoNTk2NDkpLGkuZSg0NzUzOCldKS50aGVuKGkuYmluZChpLDkwOTU5MykpLnRoZW4oKGU9PmUuc3R1ZHlfRVNEJFRWX0VBUk5JTkdTKSkpKSksKDAscmEuYWRkU3R1ZHlJbmZvVG9NYXApKCJzdHVkeV9TcGxpdHMiLCgwLHJhLmNyZWF0ZVN0dWR5SW5mbykoKCgpPT5Qcm9taXNlLmFsbChbaS5lKDIxNzg0KSxpLmUoMzEwMDEpLGkuZSg4NjE3OCksaS5lKDkxOTQ0KSxpLmUoOTc1NTgpLGkuZSg2Njk4OCksaS5lKDk3MjcyKSxpLmUoOTI3MCksaS5lKDg0MjY1KSxpLmUoNTM1NSksaS5lKDEyMjI3KSxpLmUoNTk2NDkpLGkuZSg0NzUzOCldKS50aGVuKGkuYmluZChpLDkwOTU5MykpLnRoZW4oKGU9PmUuc3R1ZHlfRVNEJFRWX1NQTElUUykpKSkpLCgwLHJhLmFkZFN0dWR5SW5mb1RvTWFwKSgic3R1ZHlfRGl2aWRlbmRzIiwoMCxyYS5jcmVhdGVTdHVkeUluZm8pKCgoKT0+UHJvbWlzZS5hbGwoW2kuZSgyMTc4NCksaS5lKDMxMDAxKSxpLmUoODYxNzgpLGkuZSg5MTk0NCksaS5lKDk3NTU4KSxpLmUoNjY5ODgpLGkuZSg5NzI3MiksaS5lKDkyNzApLGkuZSg4NDI2NSksaS5lKDUzNTUpLGkuZSgxMjIyNyksaS5lKDU5NjQ5KSxpLmUoNDc1MzgpXSkudGhlbihpLmJpbmQoaSw5MDk1OTMpKS50aGVuKChlPT5lLnN0dWR5X0VTRCRUVl9ESVZJREVORFMpKSkpKSwoMCxyYS5hZGRTdHVkeUluZm9Ub01hcCkoInN0dWR5X0JhclNldENvbnRpbnVvdXNSb2xsRGF0ZXMiLCgwLApyYS5jcmVhdGVTdHVkeUluZm8pKCgoKT0+UHJvbWlzZS5hbGwoW2kuZSgyMTc4NCksaS5lKDMxMDAxKSxpLmUoODYxNzgpLGkuZSg5MTk0NCksaS5lKDk3NTU4KSxpLmUoNjY5ODgpLGkuZSg5NzI3MiksaS5lKDkyNzApLGkuZSg4NDI2NSksaS5lKDUzNTUpLGkuZSgxMjIyNyksaS5lKDU5NjQ5KSxpLmUoNDc1MzgpXSkudGhlbihpLmJpbmQoaSwzNjM2MTgpKS50aGVuKChlPT5lLnN0dWR5X0VTRCRUVl9ST0xMREFURVMpKSkpKSwoMCxyYS5hZGRTdHVkeUluZm9Ub01hcCkobmEuZnVuZGFtZW50YWxzUHJlZml4LCgwLHJhLmNyZWF0ZVN0dWR5SW5mbykoKCgpPT5Qcm9taXNlLmFsbChbaS5lKDIxNzg0KSxpLmUoMzEwMDEpLGkuZSg4NjE3OCksaS5lKDkxOTQ0KSxpLmUoOTc1NTgpLGkuZSg2Njk4OCksaS5lKDk3MjcyKSxpLmUoOTI3MCksaS5lKDg0MjY1KSxpLmUoNTM1NSksaS5lKDEyMjI3KSxpLmUoNTk2NDkpLGkuZSg0NzUzOCldKS50aGVuKGkuYmluZChpLDEyNTEzNykpLnRoZW4oKGU9PmUuRnVuZGFtZW50YWwpKSksKGU9PjE9PT1lLnBsb3RzLmxlbmd0aD8ibG9vcCI6Im5vUm90YXRpb25zIiksKChlLHQpPT4oMCxuYS5pc0Z1bmRhbWVudGFsU3R1ZHlNZXRhSW5mbykodCkpKSksKDAscmEuYWRkU3R1ZHlJbmZvVG9NYXApKCJzdHVkeV9FbGxpb3R0V2F2ZSIsKDAscmEuY3JlYXRlU3R1ZHlJbmZvKSgoKCk9PlByb21pc2UuYWxsKFtpLmUoNDkzMDcpLGkuZSg5MTk0NCksaS5lKDk3NTU4KSxpLmUoNjY5ODgpLGkuZSg5NzI3MiksaS5lKDMzOCldKS50aGVuKGkuYmluZChpLDU0MTkyNCkpLnRoZW4oKGU9PmUuc3R1ZHlfRWxsaW90dFdhdmUpKSkpKSwoMCxyYS5hZGRTdHVkeUluZm9Ub01hcCkoInN0dWR5X0xpbmVhclJlZ3Jlc3Npb24iLCgwLHJhLmNyZWF0ZVN0dWR5SW5mbykoKCgpPT5Qcm9taXNlLmFsbChbaS5lKDIxNzg0KSxpLmUoMzEwMDEpLGkuZSg4NjE3OCksaS5lKDkxOTQ0KSxpLmUoOTc1NTgpLGkuZSg2Njk4OCksaS5lKDk3MjcyKSxpLmUoOTI3MCksaS5lKDg0MjY1KSxpLmUoNTM1NSksaS5lKDEyMjI3KSxpLmUoNTk2NDkpLGkuZSg0NzUzOCldKS50aGVuKGkuYmluZChpLDUwMjcyNikpLnRoZW4oKGU9PmUuTGluZWFyUmVncmVzc2lvblN0dWR5KSkpKSksKDAscmEuYWRkU3R1ZHlJbmZvVG9NYXApKCJzdHVkeV9QaXZvdFBvaW50c0hpZ2hMb3ciLCgwLHJhLmNyZWF0ZVN0dWR5SW5mbykoKCgpPT5Qcm9taXNlLmFsbChbaS5lKDQ5MzA3KSxpLmUoOTE5NDQpLGkuZSg5NzU1OCksaS5lKDY2OTg4KSxpLmUoOTcyNzIpLGkuZSgzMjI3MyldKS50aGVuKGkuYmluZChpLDc2ODcwNCkpLnRoZW4oKGU9PmUuc3R1ZHlfUGl2b3RQb2ludHNIaWdoTG93KSkpKSksKDAscmEuYWRkU3R1ZHlJbmZvVG9NYXApKCJzdHVkeV9WYlBTZXNzaW9ucyIsKDAscmEuY3JlYXRlU3R1ZHlJbmZvKSgoKCk9PlByb21pc2UuYWxsKFtpLmUoMjE3ODQpLGkuZSgzMTAwMSksaS5lKDg2MTc4KSxpLmUoOTE5NDQpLGkuZSg5NzU1OCksaS5lKDY2OTg4KSxpLmUoOTcyNzIpLGkuZSg5MjcwKSxpLmUoODQyNjUpLGkuZSg1MzU1KSxpLmUoMTIyMjcpLGkuZSg1OTY0OSksaS5lKDQ3NTM4KV0pLnRoZW4oaS5iaW5kKGksMjQzNzIzKSkudGhlbigoZT0+ZS5TZXNzaW9uVm9sdW1lU3R1ZHkpKSksIm5vUm90YXRpb25zIikpLCgwLHJhLmFkZFN0dWR5SW5mb1RvTWFwKSgic3R1ZHlfVmJQUGVyaW9kaWMiLCgwLHJhLmNyZWF0ZVN0dWR5SW5mbykoKCgpPT5Qcm9taXNlLmFsbChbaS5lKDIxNzg0KSxpLmUoMzEwMDEpLGkuZSg4NjE3OCksaS5lKDkxOTQ0KSxpLmUoOTc1NTgpLGkuZSg2Njk4OCksaS5lKDk3MjcyKSxpLmUoOTI3MCksaS5lKDg0MjY1KSxpLmUoNTM1NSksaS5lKDEyMjI3KSxpLmUoNTk2NDkpLGkuZSg0NzUzOCldKS50aGVuKGkuYmluZChpLDIyNzA1NikpLnRoZW4oKGU9PmUuVm9sdW1lUHJvZmlsZVdpdGhQcmljZVJhbmdlU3R1ZHkpKSksIm5vUm90YXRpb25zIikpLCgwLHJhLmFkZFN0dWR5SW5mb1RvTWFwKSgic3R1ZHlfVmJQU2Vzc2lvbnNSb3VnaERldGFpbGVkIiwoMCxyYS5jcmVhdGVTdHVkeUluZm8pKCgoKT0+UHJvbWlzZS5hbGwoW2kuZSgyMTc4NCksaS5lKDMxMDAxKSxpLmUoODYxNzgpLGkuZSg5MTk0NCksaS5lKDk3NTU4KSxpLmUoNjY5ODgpLGkuZSg5NzI3MiksaS5lKDkyNzApLGkuZSg4NDI2NSksaS5lKDUzNTUpLGkuZSgxMjIyNyksaS5lKDU5NjQ5KSxpLmUoNDc1MzgpXSkudGhlbihpLmJpbmQoaSw4MzMxNzcpKS50aGVuKChlPT5lLlNlc3Npb25Wb2x1bWUyU3R1ZHkpKSksIm5vUm90YXRpb25zIikpLCgwLHJhLmFkZFN0dWR5SW5mb1RvTWFwKSgic3R1ZHlfWmlnWmFnIiwoMCxyYS5jcmVhdGVTdHVkeUluZm8pKCgoKT0+UHJvbWlzZS5hbGwoW2kuZSg0OTMwNyksaS5lKDkxOTQ0KSxpLmUoOTc1NTgpLGkuZSg2Njk4OCksaS5lKDk3MjcyKSxpLmUoMjkwNzQpXSkudGhlbihpLmJpbmQoaSw0NTk5NDApKS50aGVuKChlPT5lLnN0dWR5X1ppZ1phZykpKSkpLCgwLHJhLmFkZFN0dWR5SW5mb1RvTWFwKSgic3R1ZHlfVmJQQXV0b0FuY2hvcmVkIiwoMCxyYS5jcmVhdGVTdHVkeUluZm8pKCgoKT0+UHJvbWlzZS5hbGwoW2kuZSgyMTc4NCksaS5lKDMxMDAxKSxpLmUoODYxNzgpLGkuZSg5MTk0NCksaS5lKDk3NTU4KSxpLmUoNjY5ODgpLGkuZSg5NzI3MiksaS5lKDkyNzApLGkuZSg4NDI2NSksaS5lKDUzNTUpLGkuZSgxMjIyNyksaS5lKDU5NjQ5KSxpLmUoNDc1MzgpXSkudGhlbihpLmJpbmQoaSwyMjcwNTYpKS50aGVuKChlPT5lLlZvbHVtZVByb2ZpbGVTdHVkeVdpdGhUaGVtZWRDb2xvcnMpKSksIm5vUm90YXRpb25zIikpLCgwLHJhLmFkZFN0dWR5SW5mb1RvTWFwKSgic3R1ZHlfVFBPUGVyaW9kaWMiLCgwLApyYS5jcmVhdGVTdHVkeUluZm8pKCgoKT0+UHJvbWlzZS5hbGwoW2kuZSgyMTc4NCksaS5lKDMxMDAxKSxpLmUoODYxNzgpLGkuZSg5MTk0NCksaS5lKDk3NTU4KSxpLmUoNjY5ODgpLGkuZSg5NzI3MiksaS5lKDkyNzApLGkuZSg4NDI2NSksaS5lKDUzNTUpLGkuZSgxMjIyNyksaS5lKDU5NjQ5KSxpLmUoNDc1MzgpXSkudGhlbihpLmJpbmQoaSw3MTQxMCkpLnRoZW4oKGU9PmUuVHBvUGVyaW9kaWNTdHVkeSkpKSkpLCgwLHJhLmFkZFN0dWR5SW5mb1RvTWFwKSgic3R1ZHlfVFBPU2Vzc2lvbnMiLCgwLHJhLmNyZWF0ZVN0dWR5SW5mbykoKCgpPT5Qcm9taXNlLmFsbChbaS5lKDIxNzg0KSxpLmUoMzEwMDEpLGkuZSg4NjE3OCksaS5lKDkxOTQ0KSxpLmUoOTc1NTgpLGkuZSg2Njk4OCksaS5lKDk3MjcyKSxpLmUoOTI3MCksaS5lKDg0MjY1KSxpLmUoNTM1NSksaS5lKDEyMjI3KSxpLmUoNTk2NDkpLGkuZSg0NzUzOCldKS50aGVuKGkuYmluZChpLDMzNDc0MikpLnRoZW4oKGU9PmUuVHBvU2Vzc2lvbnNTdHVkeSkpKSkpLCgwLHJhLmFkZFN0dWR5SW5mb1RvTWFwKSgic3R1ZHlfVm9sdW1lRm9vdHByaW50IiwoMCxyYS5jcmVhdGVTdHVkeUluZm8pKCgoKT0+UHJvbWlzZS5hbGwoW2kuZSgyMTc4NCksaS5lKDMxMDAxKSxpLmUoODYxNzgpLGkuZSg5MTk0NCksaS5lKDk3NTU4KSxpLmUoNjY5ODgpLGkuZSg5NzI3MiksaS5lKDkyNzApLGkuZSg4NDI2NSksaS5lKDUzNTUpLGkuZSgxMjIyNyksaS5lKDU5NjQ5KSxpLmUoNDc1MzgpXSkudGhlbihpLmJpbmQoaSw4NDYyOTMpKS50aGVuKChlPT5lLlZvbHVtZUZvb3RwcmludFN0dWR5KSkpKSksKDAscmEuYWRkU3R1ZHlJbmZvVG9NYXApKCJTdHVkeVN0cmF0ZWd5IiwoMCxyYS5jcmVhdGVTdHVkeUluZm8pKCgoKT0+UHJvbWlzZS5hbGwoW2kuZSgyMTc4NCksaS5lKDMxMDAxKSxpLmUoODYxNzgpLGkuZSg5MTk0NCksaS5lKDk3NTU4KSxpLmUoNjY5ODgpLGkuZSg5NzI3MiksaS5lKDkyNzApLGkuZSg4NDI2NSksaS5lKDUzNTUpLGkuZSgxMjIyNyksaS5lKDU5NjQ5KSxpLmUoNDc1MzgpXSkudGhlbihpLmJpbmQoaSw4NzQzNjkpKS50aGVuKChlPT5lLlN0dWR5U3RyYXRlZ3kpKSkpKSwoMCxyYS5hZGRTdHVkeUluZm9Ub01hcCkoIlJlcGxheVN0dWR5U3RyYXRlZ3kiLCgwLHJhLmNyZWF0ZVN0dWR5SW5mbykoKCgpPT5Qcm9taXNlLmFsbChbaS5lKDIxNzg0KSxpLmUoMzEwMDEpLGkuZSg4NjE3OCksaS5lKDkxOTQ0KSxpLmUoOTc1NTgpLGkuZSg2Njk4OCksaS5lKDk3MjcyKSxpLmUoOTI3MCksaS5lKDg0MjY1KSxpLmUoNTM1NSksaS5lKDEyMjI3KSxpLmUoNTk2NDkpLGkuZSg0NzUzOCldKS50aGVuKGkuYmluZChpLDU0NzU3MikpLnRoZW4oKGU9PmUuUmVwbGF5U3R1ZHlTdHJhdGVneSkpKSkpO2xldCBhYT0wO2FzeW5jIGZ1bmN0aW9uIGxhKGUsdCxpLHMsbixyLG8sYSl7bGV0IGM7Y29uc3QgaD0yPT09bztpZihvdC5TdHVkeU1ldGFJbmZvLmlzUmVwbGF5U3RyYXRlZ3kocykmJihjPSgwLHJhLmdldFN0dWR5SW5mb0J5TmFtZSkoIlJlcGxheVN0dWR5U3RyYXRlZ3kiKSksb3QuU3R1ZHlNZXRhSW5mby5pc1NjcmlwdFN0cmF0ZWd5KHMpJiYoYz0oMCxyYS5nZXRTdHVkeUluZm9CeU5hbWUpKCJTdHVkeVN0cmF0ZWd5IikpLCgwLG5hLmlzRnVuZGFtZW50YWxTdHVkeU1ldGFJbmZvKShzKSYmKGM9KDAscmEuZ2V0U3R1ZHlJbmZvQnlOYW1lKShuYS5mdW5kYW1lbnRhbHNQcmVmaXgpKSwhYyl7Y29uc3QgZT0oMCxuYS5zdHVkeU5hbWVCeU1ldGFJbmZvKShzKTtjPSgwLHJhLmdldFN0dWR5SW5mb0J5TmFtZSkoZT8/IlN0dWR5Iik/P29hfWMuc3R1ZHlDb25zdHJ1Y3Rvcnx8KGFhKz0xLGMuc3R1ZHlDb25zdHJ1Y3Rvcj1hd2FpdCgwLGwuZW5zdXJlRGVmaW5lZCkoYy5zdHVkeUNvbnN0cnVjdG9yQXN5bmNHZXR0ZXIpKCksYWEtPTEpO2NvbnN0IGQ9bmV3KCgwLGwuZW5zdXJlRGVmaW5lZCkoYz8uc3R1ZHlDb25zdHJ1Y3RvcikpKGUsdCxpLHMsbixoLCEhYSk7cmV0dXJuIHZvaWQgMCE9PXImJmQuc2V0SWQociksZH1mdW5jdGlvbiBjYShlLHQpe3JldHVybiBlLmlkPT09dC5pZCYmKHM9dCwoKGk9ZSkucGluZT9pLnBpbmUudmVyc2lvbjp2b2lkIDApPT09KHMucGluZT9zLnBpbmUudmVyc2lvbjp2b2lkIDApKTt2YXIgaSxzfWNvbnN0IGhhPVsiT3ZlcmxheUB0di1iYXNpY3N0dWRpZXMiLCJDb3JyZWxhdGlvbkNvZWZmaWNpZW50QHR2LWJhc2ljc3R1ZGllcyIsIkNvcnJlbGF0aW9uIENvZWZmQHR2LWJhc2ljc3R1ZGllcyIsIlNwcmVhZEB0di1iYXNpY3N0dWRpZXMiLCJSYXRpb0B0di1iYXNpY3N0dWRpZXMiXTtjb25zdCBkYT1bImNvbG9yLXR2LWJsdWUtNDAwIiwiY29sb3ItaWd1YW5hLWdyZWVuLWE3MDAiLCJjb2xvci10YW4tb3JhbmdlLTUwMCIsImNvbG9yLXNreS1ibHVlLTQwMCIsImNvbG9yLWJlcnJ5LXBpbmstYTcwMCIsImNvbG9yLWJhbmFuYS15ZWxsb3ctNzAwIiwiY29sb3ItbWludHktZ3JlZW4tYTQwMCIsImNvbG9yLWJlcnJ5LXBpbmstYTIwMCIsImNvbG9yLXR2LWJsdWUtYTEwMCIsImNvbG9yLWdyYXBlcy1wdXJwbGUtYTcwMCIsImNvbG9yLXJpcGUtcmVkLWE0MDAiLCJjb2xvci1taW50eS1ncmVlbi01MDAiLCJjb2xvci1ncmFwZXMtcHVycGxlLWExMDAiLCJjb2xvci1kZWVwLWJsdWUtYTIwMCIsImNvbG9yLXRhbi1vcmFuZ2UtODAwIl07Y2xhc3MgdWF7Y29uc3RydWN0b3IoZSx0PWRhKXt0aGlzLl91c2VyRGVmYXVsdFVzZWQ9ITEsdGhpcy5fY2FsY0NvbG9yT2Zmc2V0PWUsdGhpcy5fY29sb3JzPXR9Z2V0Q29sb3IoZSx0PSExKXtjb25zdCBpPXRoaXMuX2NhbGNDb2xvck9mZnNldCgpO2lmKDA9PT1pJiYodGhpcy5fdXNlckRlZmF1bHRVc2VkPSExKSwwPT09aSYmIXQpcmV0dXJuIHRoaXMuX3VzZXJEZWZhdWx0VXNlZD0hMCxlO2NvbnN0IHM9dGhpcy5fY29sb3JzWyhpLSh0aGlzLl91c2VyRGVmYXVsdFVzZWQ/MTowKSkldGhpcy5fY29sb3JzLmxlbmd0aF0sbj1Yby5jb2xvcnNQYWxldHRlW3NdLHI9KDAsJGkuaXNIZXhDb2xvcikoZSk/MTooMCx5aS5wYXJzZVJnYmEpKGUpWzNdO3JldHVybigwLCRpLmdlbmVyYXRlQ29sb3IpKG4sKDAsCiRpLmFscGhhVG9UcmFuc3BhcmVuY3kpKHIpKX19Y2xhc3MgcGF7Y29uc3RydWN0b3IoZSx0KXt0aGlzLl9jYWxjQ29sb3JPZmZzZXQ9ZSx0aGlzLl9tb2RlbFN0YXJ0T2Zmc2V0PXR9Z2V0Q29sb3IoZSl7Y29uc3QgdD10aGlzLl9jYWxjQ29sb3JPZmZzZXQoKTtpZigoMCwkaS5pc0hleENvbG9yKShlKSl7Y29uc3QgaT0oMCx5aS5wYXJzZVJnYikoZSk7cmV0dXJuKDAseWkucmdiVG9IZXhTdHJpbmcpKCgwLHlpLnNoaWZ0UmdiKShpLHQsdGhpcy5fbW9kZWxTdGFydE9mZnNldCkpfXtjb25zdCBpPSgwLHlpLnBhcnNlUmdiYSkoZSk7cmV0dXJuKDAseWkucmdiYVRvU3RyaW5nKSgoMCx5aS5zaGlmdFJnYmEpKGksdCx0aGlzLl9tb2RlbFN0YXJ0T2Zmc2V0KSl9fX1jbGFzcyBfYXtjb25zdHJ1Y3RvcihlKXt0aGlzLl9yb3RhdG9ycz1uZXcgV2Vha01hcCx0aGlzLl9jYWxjRGVmYXVsdENvbG9yc09mZnNldD1lPT57Y29uc3QgdD1mdW5jdGlvbihlKXtjb25zdCB0PSgwLG5hLnN0dWR5TmFtZUJ5TWV0YUluZm8pKGUpLGk9KDAscmEuZ2V0U3R1ZHlJbmZvQnlOYW1lKSh0KTtpZihpKXtjb25zdCBlPWkuY29sb3JSb3RhdGlvbkNvbXBhcmF0b3I7aWYodm9pZCAwIT09ZSlyZXR1cm4gZX1yZXR1cm4gY2F9KGUpO3JldHVybiB0aGlzLl9jaGFydE1vZGVsLmRhdGFTb3VyY2VzKCkuZmlsdGVyKChpPT4oMCx0aS5pc1N0dWR5KShpKSYmdChlLGkubWV0YUluZm8oKSkpKS5sZW5ndGh9LHRoaXMuX2NoYXJ0TW9kZWw9ZX1nZXRDb2xvclJvdGF0b3IoZSl7aWYodGhpcy5fcm90YXRvcnMuaGFzKGUpKXtjb25zdCB0PXRoaXMuX3JvdGF0b3JzLmdldChlKTtpZih2b2lkIDAhPT10KXJldHVybiB0fWNvbnN0IHQ9dGhpcy5fY3JlYXRlQ29sb3JSb3RhdG9yKGUpO3JldHVybiB0aGlzLl9yb3RhdG9ycy5zZXQoZSx0KSx0fV9jcmVhdGVDb2xvclJvdGF0b3IoZSl7Y29uc3QgdD1mdW5jdGlvbihlKXtjb25zdCB0PSgwLG5hLnN0dWR5TmFtZUJ5TWV0YUluZm8pKGUpLGk9KDAscmEuZ2V0U3R1ZHlJbmZvQnlOYW1lKSh0KTtyZXR1cm4gaT8oMCxzYS5kZWZhdWx0KShpLmNvbG9yUm90YXRpb25Nb2RlKT9pLmNvbG9yUm90YXRpb25Nb2RlKGUpOmkuY29sb3JSb3RhdGlvbk1vZGU6dm9pZCAwPT09ZS5waW5lfHxvdC5TdHVkeU1ldGFJbmZvLmlzU3RhbmRhcmRQaW5lKGUuaWQpPzEhPT1lLnBsb3RzLmxlbmd0aD8ic2hpZnQiOiJsb29wIjpudWxsfShlKSxpPSgpPT50aGlzLl9jYWxjRGVmYXVsdENvbG9yc09mZnNldChlKTtzd2l0Y2godCl7Y2FzZSJsb29wIjpyZXR1cm4gbmV3IHVhKGkpO2Nhc2Uic2hpZnQiOnJldHVybiBuZXcgcGEoaSx0aGlzLl9jaGFydE1vZGVsLmdldFN0dWR5U2hpZnRDb2xvclN0YXJ0T2Zmc2V0KCkpO2Nhc2UgbnVsbDpjYXNlIm5vUm90YXRpb25zIjpyZXR1cm4gbnVsbH19fXZhciBtYSxnYSxmYT1pKDM2Mjc3MyksU2E9aSg2ODE3OTkpOyFmdW5jdGlvbihlKXtlW2UuQm9yZGVyU2l6ZT0xXT0iQm9yZGVyU2l6ZSJ9KG1hfHwobWE9e30pKSxmdW5jdGlvbihlKXtlW2UuQWRkaXRpb25hbElubmVyUGFkZGluZz00XT0iQWRkaXRpb25hbElubmVyUGFkZGluZyIsZVtlLkhvcnpQYWRkaW5nPTRdPSJIb3J6UGFkZGluZyIsZVtlLlZlcnRQYWRkaW5nPTIuNV09IlZlcnRQYWRkaW5nIixlW2UuTGluZVNwYWNpbmc9Ml09IkxpbmVTcGFjaW5nIn0oZ2F8fChnYT17fSkpO2NsYXNzIHZhe2NvbnN0cnVjdG9yKGUpe3RoaXMuX3JlbmRlcmVyT3B0aW9ucz17Ym9yZGVyU2l6ZToxLGFkZGl0aW9uYWxQYWRkaW5nSW5uZXI6MCxmb250U2l6ZTpOYU4sZm9udDoiIixjb2xvcjoiIixwYW5lQmFja2dyb3VuZENvbG9yOiIiLHBhZGRpbmdCb3R0b206MCxwYWRkaW5nSW5uZXI6MCxwYWRkaW5nT3V0ZXI6MCxwYWRkaW5nVG9wOjAsbGluZVNwYWNpbmc6MH0sdGhpcy5fY2hhcnRNb2RlbD1lfW9wdGlvbnMoKXtjb25zdCBlPXRoaXMuX3JlbmRlcmVyT3B0aW9ucyx0PXRoaXMuX2NoYXJ0TW9kZWwucHJvcGVydGllcygpLmNoaWxkcygpLGk9dC5zY2FsZXNQcm9wZXJ0aWVzLmNoaWxkcygpLmZvbnRTaXplLnZhbHVlKCk7cmV0dXJuIGUuZm9udFNpemUhPT1pJiYoZS5mb250U2l6ZT1pLGUuZm9udD0oMCxSaS5tYWtlRm9udCkoaSxXaS5DSEFSVF9GT05UX0ZBTUlMWV9XVi52YWx1ZSgpLCIiKSxlLnBhZGRpbmdUb3A9aS8xMioyLjUsZS5wYWRkaW5nQm90dG9tPWkvMTIqMi41LGUucGFkZGluZ0lubmVyPWkvMTIqNCxlLmFkZGl0aW9uYWxQYWRkaW5nSW5uZXI9aS8xMio0LGUucGFkZGluZ091dGVyPWkvMTIqNCxlLmxpbmVTcGFjaW5nPWkvMTIqMiksZS5jb2xvcj10LnNjYWxlc1Byb3BlcnRpZXMuY2hpbGRzKCkudGV4dENvbG9yLnZhbHVlKCksZS5wYW5lQmFja2dyb3VuZENvbG9yPXQucGFuZVByb3BlcnRpZXMuY2hpbGRzKCkuYmFja2dyb3VuZC52YWx1ZSgpLHRoaXMuX3JlbmRlcmVyT3B0aW9uc319dmFyIHlhPWkoNzk0ODEyKSxiYT1pKDk2MTgzMSk7Y29uc3Qgd2E9KDAsR3IuZXh0cmFjdFRoZW1lZENvbG9ycykoeHQubGlnaHRUaGVtZS5jb250ZW50LnNlc3Npb25zLHh0LmRhcmtUaGVtZS5jb250ZW50LnNlc3Npb25zKTtjb25zdCBDYT1bImdyYXBoaWNzIiwic2Vzc2lvbkhpZ2hsaWdodC5iYWNrZ3JvdW5kcy5wcmVNYXJrZXQudmlzaWJsZSIsInNlc3Npb25IaWdobGlnaHQuYmFja2dyb3VuZHMucHJlTWFya2V0LmF2YWlsYWJsZSIsInNlc3Npb25IaWdobGlnaHQuYmFja2dyb3VuZHMucG9zdE1hcmtldC52aXNpYmxlIiwic2Vzc2lvbkhpZ2hsaWdodC5iYWNrZ3JvdW5kcy5wb3N0TWFya2V0LmF2YWlsYWJsZSIsInNlc3Npb25IaWdobGlnaHQuYmFja2dyb3VuZHMuZWxlY3Ryb25pYy52aXNpYmxlIiwic2Vzc2lvbkhpZ2hsaWdodC5iYWNrZ3JvdW5kcy5lbGVjdHJvbmljLmF2YWlsYWJsZSIsInNlc3Npb25IaWdobGlnaHQudmVydExpbmVzLnNlc3NCcmVha3MuYXZhaWxhYmxlIl07Y2xhc3MgUGEgZXh0ZW5kcyBHci5EZWZhdWx0UHJvcGVydHl7Y29uc3RydWN0b3IoZSl7c3VwZXIoe2RlZmF1bHROYW1lOiJzZXNzaW9ucyIsdGhlbWVkQ29sb3JzOndhLGV4Y2x1ZGVkRGVmYXVsdHNLZXlzOlsuLi5DYV0sCmV4Y2x1ZGVkU3RhdGVLZXlzOlsuLi5DYV0sZXhjbHVkZWRUZW1wbGF0ZUtleXM6Wy4uLkNhXX0pLHRoaXMuX3N5bWJvbEluZm89ZSx0aGlzLl9zeW1ib2xJbmZvLnN1YnNjcmliZSgoKCk9PnRoaXMuX3VwZGF0ZUdyYXBoaWNzUHJvcHMoKSkpLHRoaXMuaGFzQ2hpbGQoImdyYXBoaWNzIil8fHRoaXMuYWRkUHJvcGVydHkoImdyYXBoaWNzIix7fSksdGhpcy5tZXJnZSh7c2Vzc2lvbkhpZ2hsaWdodDp7dmVydGxpbmVzOntzZXNzQnJlYWtzOnthdmFpbGFibGU6ITB9fSxiYWNrZ3JvdW5kczp7cHJlTWFya2V0Ont2aXNpYmxlOiEwLGF2YWlsYWJsZTohMH0scG9zdE1hcmtldDp7dmlzaWJsZTohMCxhdmFpbGFibGU6ITB9LG5pZ2h0TWFya2V0Ont2aXNpYmxlOiEwLGF2YWlsYWJsZTohMH0sZWxlY3Ryb25pYzp7dmlzaWJsZTohMCxhdmFpbGFibGU6ITB9LG91dE9mU2Vzc2lvbjp7dmlzaWJsZTohMCxhdmFpbGFibGU6ITB9fX19KSx0aGlzLl91cGRhdGVHcmFwaGljc1Byb3BzKCksdGhpcy5jaGlsZHMoKS5zZXNzaW9uSGlnaGxpZ2h0LnN1YnNjcmliZSh0aGlzLCgoKT0+e3RoaXMuX3VwZGF0ZUdyYXBoaWNzUHJvcHMoKX0pKX1kZXN0cm95KCl7dGhpcy5fc3ltYm9sSW5mby5yZWxlYXNlKCksc3VwZXIuZGVzdHJveSgpfXJlc3RvcmVTdGF0ZShlKXtjb25zdCB0PWUucHJvcGVydGllczshZnVuY3Rpb24oZSl7Y29uc3QgdD1lLGk9ImdyYXBoaWNzImluIGU/ZS5ncmFwaGljcy5iYWNrZ3JvdW5kczp2b2lkIDA7aWYodm9pZCAwIT09aSl7Y29uc3QgZT0oMCxsLmVuc3VyZURlZmluZWQpKGkub3V0T2ZTZXNzaW9uKTtlLmNvbG9yPT09YmEuc2Vzc2lvbnNQcmVmZXJlbmNlc0RlZmF1bHQuc2Vzc2lvbkhpZ2hsaWdodC5iYWNrZ3JvdW5kcy5vdXRPZlNlc3Npb24uY29sb3J8fCJwb3N0TWFya2V0ImluIGk/KHQuc2Vzc2lvbkhpZ2hsaWdodD10LnNlc3Npb25IaWdobGlnaHQ/P3t9LHQuc2Vzc2lvbkhpZ2hsaWdodC5iYWNrZ3JvdW5kcz1pKToodC5zZXNzaW9uSGlnaGxpZ2h0PXQuc2Vzc2lvbkhpZ2hsaWdodD8/e30sdC5zZXNzaW9uSGlnaGxpZ2h0LmJhY2tncm91bmRzPXsuLi50LnNlc3Npb25IaWdobGlnaHQ/LmJhY2tncm91bmRzPz97fSxwb3N0TWFya2V0Ontjb2xvcjplLmNvbG9yLHRyYW5zcGFyZW5jeTplLnRyYW5zcGFyZW5jeSx2aXNpYmxlOiEwLGF2YWlsYWJsZTohMH0scHJlTWFya2V0Ontjb2xvcjplLmNvbG9yLHRyYW5zcGFyZW5jeTplLnRyYW5zcGFyZW5jeSx2aXNpYmxlOiEwLGF2YWlsYWJsZTohMH19KX1jb25zdCBzPSJncmFwaGljcyJpbiBlP2UuZ3JhcGhpY3MudmVydGxpbmVzOnZvaWQgMDtzJiYodC5zZXNzaW9uSGlnaGxpZ2h0Pz89e30sdC5zZXNzaW9uSGlnaGxpZ2h0LnZlcnRsaW5lcz1zKSwoMCxHci5jbGVhblVwU3RhdGVLZXlzKSh0LENhKX0odCksImdyYXBoaWNzImluIGUucHJvcGVydGllcyYmKCgwLHIuZGVmYXVsdCkoZS5wcm9wZXJ0aWVzLnNlc3Npb25IaWdobGlnaHQsZS5wcm9wZXJ0aWVzLmdyYXBoaWNzKSxkZWxldGUgZS5wcm9wZXJ0aWVzLmdyYXBoaWNzKSx0aGlzLm1lcmdlQW5kRmlyZSh0KSx0aGlzLnJlbW92ZUR1cGxpY2F0ZVByb3BlcnRpZXMoKX1sb2FkVGhlbWVTdGF0ZShlKXsiZ3JhcGhpY3MiaW4gZSYmKCgwLHIuZGVmYXVsdCkoZS5zZXNzaW9uSGlnaGxpZ2h0LGUuZ3JhcGhpY3MpLGRlbGV0ZSBlLmdyYXBoaWNzKSx0aGlzLm1lcmdlQW5kRmlyZShlKX1yZW1vdmVEdXBsaWNhdGVQcm9wZXJ0aWVzKCl7dGhpcy5oYXNDaGlsZCgicHJvcGVydGllcyIpJiYodGhpcy5yZW1vdmVQcm9wZXJ0eSgicHJvcGVydGllcyIpLCgwLEdyLmFsbG93U2F2aW5nRGVmYXVsdHMpKCEwKSx0aGlzLmZpcmVDaGFuZ2VkKCksKDAsR3IuYWxsb3dTYXZpbmdEZWZhdWx0cykoITEpKX1fdXNlclNldHRpbmdzKCl7Y29uc3QgZT1zdXBlci5fdXNlclNldHRpbmdzKCk7cmV0dXJuIGUmJiFlLnNlc3Npb25IaWdobGlnaHQmJihlLnNlc3Npb25IaWdobGlnaHQ9ZS5ncmFwaGljcyksZGVsZXRlIGU/LmdyYXBoaWNzLGV9X3VwZGF0ZUdyYXBoaWNzUHJvcHMoKXtjb25zdCBlPXRoaXMuX3N5bWJvbEluZm8udmFsdWUoKTtlJiYodGhpcy5jaGlsZHMoKS5ncmFwaGljcy5tZXJnZUFuZEZpcmUodGhpcy5jaGlsZHMoKS5zZXNzaW9uSGlnaGxpZ2h0LnN0YXRlKCkpLGZ1bmN0aW9uKGUpe2NvbnN0IHQ9ZS5zdWJzZXNzaW9ucz8uZmlsdGVyKChlPT4hZS5wcml2YXRlKSkubWFwKChlPT5lLmlkKSk/P1tdO3JldHVybiJmdXR1cmVzIj09PWUudHlwZSYmdC5pbmNsdWRlcygicmVndWxhciIpJiZ0LmluY2x1ZGVzKCJ1c19yZWd1bGFyIil9KGUpJiYoKDAsbC5lbnN1cmVEZWZpbmVkKSh0aGlzLmNoaWxkcygpLmdyYXBoaWNzLmNoaWxkcygpLmJhY2tncm91bmRzKS5jaGlsZHMoKS5wcmVNYXJrZXQubWVyZ2VBbmRGaXJlKHRoaXMuY2hpbGRzKCkuc2Vzc2lvbkhpZ2hsaWdodC5jaGlsZHMoKS5iYWNrZ3JvdW5kcy5jaGlsZHMoKS5lbGVjdHJvbmljLnN0YXRlKCkpLCgwLGwuZW5zdXJlRGVmaW5lZCkodGhpcy5jaGlsZHMoKS5ncmFwaGljcy5jaGlsZHMoKS5iYWNrZ3JvdW5kcykuY2hpbGRzKCkucG9zdE1hcmtldC5tZXJnZUFuZEZpcmUodGhpcy5jaGlsZHMoKS5zZXNzaW9uSGlnaGxpZ2h0LmNoaWxkcygpLmJhY2tncm91bmRzLmNoaWxkcygpLmVsZWN0cm9uaWMuc3RhdGUoKSkpKX19Y2xhc3MgVGEgZXh0ZW5kcyB0YS5Bc3luY1Jlc291cmNlV3JhcHBlcntjb25zdHJ1Y3RvcihlLHQsaSl7c3VwZXIoZSwoZT0+ZS5kZXN0cm95KCkpKSx0aGlzLl9zZXNzaW9uc1N0YXRlRGF0YT1udWxsLHRoaXMuX21vZGVsPXQsdGhpcy5fcHJvcGVydGllcz1pLHQubWFpblNlcmllcygpLmRhdGFFdmVudHMoKS5zeW1ib2xSZXNvbHZlZCgpLnN1YnNjcmliZSh0aGlzLHRoaXMuX3VwZGF0ZVZpc2libGVPZlByZUFuZFBvc3RNYXJrZXRCYWNrZ3JvdW5kKSx0aGlzLl91cGRhdGVWaXNpYmxlT2ZQcmVBbmRQb3N0TWFya2V0QmFja2dyb3VuZCgpLGUudGhlbigoZT0+eyF0aGlzLl9kZXN0cm95ZWQmJnRoaXMuX3Nlc3Npb25zU3RhdGVEYXRhJiYoZS5yZXN0b3JlU3RhdGVEYXRhKHRoaXMuX3Nlc3Npb25zU3RhdGVEYXRhKSwKdGhpcy5fc2Vzc2lvbnNTdGF0ZURhdGE9bnVsbCl9KSl9ZGVzdHJveSgpe3RoaXMuX21vZGVsLm1haW5TZXJpZXMoKS5kYXRhRXZlbnRzKCkuc3ltYm9sUmVzb2x2ZWQoKS51bnN1YnNjcmliZUFsbCh0aGlzKSxzdXBlci5kZXN0cm95KCl9cHJvcGVydGllcygpe3JldHVybiB0aGlzLl9wcm9wZXJ0aWVzfWFwcGx5T3ZlcnJpZGVzKGUpeygwLHlhLmFwcGx5UHJvcGVydGllc092ZXJyaWRlcykodGhpcy5fcHJvcGVydGllcy5jaGlsZHMoKS5zZXNzaW9uSGlnaGxpZ2h0LHZvaWQgMCwhMSxlLCJzZXNzaW9ucyIpO2NvbnN0IHQ9dGhpcy5nZXQoKTt0JiZ0aGlzLl9tb2RlbC51cGRhdGVTb3VyY2UodCl9c3RhdGUoZSl7Y29uc3QgdD17cHJvcGVydGllczp0aGlzLl9wcm9wZXJ0aWVzLnN0YXRlKCl9O3JldHVybiBlJiYodC5kYXRhPXRoaXMuZ2V0KCk/LnN0YXRlRGF0YSgpPz90aGlzLl9zZXNzaW9uc1N0YXRlRGF0YT8/dm9pZCAwKSx0fXJlc3RvcmVTdGF0ZShlLHQpe2lmKGUub2xkU3RhdGUmJihlPWZ1bmN0aW9uKGUsdCl7Y29uc3QgaT17cHJvcGVydGllczp7Z3JhcGhpY3M6ZS5zdGF0ZS5ncmFwaGljc319O3JldHVybiB2b2lkIDAhPT1lLmRhdGEmJnZvaWQgMCE9PWUubWV0YUluZm8mJnQmJihpLmRhdGE9e21ldGFJbmZvOmUubWV0YUluZm8sZ3JhcGhpY3M6ZS5kYXRhLmdyYXBoaWNzfSksaX0oZSx0KSksdGhpcy5fcHJvcGVydGllcy5yZXN0b3JlU3RhdGUoZSksdGhpcy5fdXBkYXRlVmlzaWJsZU9mUHJlQW5kUG9zdE1hcmtldEJhY2tncm91bmQoKSx0aGlzLl9zZXNzaW9uc1N0YXRlRGF0YT1udWxsLHZvaWQgMCE9PWUuZGF0YSYmdCl7Y29uc3QgdD10aGlzLmdldCgpO3Q/dC5yZXN0b3JlU3RhdGVEYXRhKGUuZGF0YSk6dGhpcy5fc2Vzc2lvbnNTdGF0ZURhdGE9ZS5kYXRhfX1fdXBkYXRlVmlzaWJsZU9mUHJlQW5kUG9zdE1hcmtldEJhY2tncm91bmQoKXtjb25zdCBlPXRoaXMuX21vZGVsLm1haW5TZXJpZXMoKS5zeW1ib2xJbmZvKCk7aWYoZSl7Y29uc3QgdD10aGlzLl9wcm9wZXJ0aWVzLmNoaWxkcygpLnNlc3Npb25IaWdobGlnaHQuY2hpbGRzKCkse3ByZU1hcmtldDppLHBvc3RNYXJrZXQ6cyxlbGVjdHJvbmljOm4sb3V0T2ZTZXNzaW9uOnJ9PXQuYmFja2dyb3VuZHMuY2hpbGRzKCkse3Nlc3NCcmVha3M6b309dC52ZXJ0bGluZXMuY2hpbGRzKCksYT1lLnN1YnNlc3Npb25faWQsbD1hJiYoMCxBLmlzUmVndWxhclNlc3Npb25JZCkoYSxlKSxjPSgwLEEuc3ltYm9sSGFzUHJlT3JQb3N0TWFya2V0KShlKSxoPSJmdXR1cmVzIj09PWUudHlwZSYmKDAsQS5zeW1ib2xIYXNFbGVjdHJvbmljU2Vzc2lvbikoZSk7aS5jaGlsZHMoKS5hdmFpbGFibGUuc2V0VmFsdWUoYyYmIWwpLHMuY2hpbGRzKCkuYXZhaWxhYmxlLnNldFZhbHVlKGMmJiFsKSxuLmNoaWxkcygpLmF2YWlsYWJsZS5zZXRWYWx1ZShoJiYhbCksci5jaGlsZHMoKS5hdmFpbGFibGUuc2V0VmFsdWUoKGN8fGgpJiYhbCksby5jaGlsZHMoKS5hdmFpbGFibGUuc2V0VmFsdWUoITApfX19dmFyIHhhPWkoOTI1MjgyKTtjb25zdCBNYT0ic3ltYm9sV2F0ZXJtYXJrIixJYT17dGlja2VyOiExLGludGVydmFsOiExLGRlc2NyaXB0aW9uOiExLGN1c3RvbTohMSxyZXBsYXk6ITAsY29sb3I6IiJ9LExhPSJyZ2JhKDgwLCA4MywgOTQsIDAuMjUpIixBYT1bInJnYmEoODAsIDgzLCA5NCwgMC4yMCkiLCJyZ2JhKDgwLCA4MywgOTQsIDAuMzApIl07ZnVuY3Rpb24ga2EoKXtjb25zdCBlPVEuZ2V0SlNPTihNYSl8fHt9O3JldHVybnsuLi5JYSwuLi5EYShlKX19ZnVuY3Rpb24gRGEoZSl7Y29uc3R7Y29sb3I6dCx2aXNpYmlsaXR5OmksLi4uc309ZSxyPXsuLi5zfTtyZXR1cm4gdm9pZCAwIT09aSYmKHIudGlja2VyPXMudGlja2VyPz9pLHIuaW50ZXJ2YWw9cy5pbnRlcnZhbD8/aSxyLmRlc2NyaXB0aW9uPXMuZGVzY3JpcHRpb24/P2ksci5jdXN0b209cy5jdXN0b20/P2kpLCgwLG4uZGVmYXVsdCkodCkmJnQhPT1MYSYmKHIuY29sb3I9dCkscn1jbGFzcyBFYSBleHRlbmRzIE90LlByb3BlcnR5e2NvbnN0cnVjdG9yKGUsdCl7c3VwZXIoZSksdGhpcy5fZGVmYXVsdENvbG9ycz10fXZhbHVlKGUpe2NvbnN0IHQ9c3VwZXIudmFsdWUoKTtyZXR1cm4gdm9pZCAwPT09ZXx8dCYmdC5sZW5ndGg+MD90OnRoaXMuX2dldERlZmF1bHRDb2xvcihlKX1fZ2V0RGVmYXVsdENvbG9yKGUpe2NvbnN0W3QsaV09dGhpcy5fZGVmYXVsdENvbG9ycztyZXR1cm4gZT09PUpvLlN0ZFRoZW1lLkxpZ2h0P3Q6aX19Y29uc3QgUmE9KDAsYnQuZGVmYXVsdCkoKCgpPT57Y29uc3R7Y29sb3I6ZSwuLi50fT1rYSgpLGk9bmV3IE90LlByb3BlcnR5KHsuLi5JYSwuLi50fSwoMCx4YS5jcmVhdGVQcm9wZXJ0eVNjaGVtYSkoSWEpKTtyZXR1cm4gaS5hZGRDaGlsZCgiY29sb3IiLG5ldyBFYShlLEFhKSksUS5vblN5bmMuc3Vic2NyaWJlKG51bGwsKCgpPT5pLm1lcmdlQW5kRmlyZShrYSgpKSkpLGkuc3Vic2NyaWJlKG51bGwsKCgpPT5RLnNldEpTT04oTWEsaS5zdGF0ZSgpKSkpLGl9KSk7dmFyIFZhLEJhPWkoNjYzMDQ2KSxOYT1pKDUyODM5NiksT2E9aSg2MTU2NzMpLFdhPWkoNzc4NDU4KSxGYT1pKDU3MzA1NCk7IWZ1bmN0aW9uKGUpe2VbZS5MaW5lT2Zmc2V0PTRdPSJMaW5lT2Zmc2V0IixlW2UuTGluZVBhZGRpbmc9OF09IkxpbmVQYWRkaW5nIn0oVmF8fChWYT17fSkpO2NsYXNzIEhhIGV4dGVuZHMgRmEuTWVkaWFDb29yZGluYXRlc1BhbmVSZW5kZXJlcntjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5fZGF0YT1udWxsLHRoaXMuX3dpZHRoQ2FjaGU9bmV3IEJpLlRleHRXaWR0aENhY2hlfXNldERhdGEoZSl7dGhpcy5fZGF0YT1lfWhpdFRlc3QoZSl7cmV0dXJuIG51bGx9X2RyYXdJbXBsKGUpe2lmKCF0aGlzLl9kYXRhKXJldHVybjtjb25zdHtsaW5lczp0LGNvbG9yOml9PXRoaXMuX2RhdGEse2NvbnRleHQ6cyxtZWRpYVNpemU6e3dpZHRoOm4saGVpZ2h0OnJ9fT1lO2xldCBvPTA7Y29uc3QgYT1bXSxsPXQuZmlsdGVyKChlPT4hIWUudGV4dCkpLGM9bC5sZW5ndGg7Zm9yKGxldCBlPTA7ZTxjO2UrKyl7CmNvbnN0IHQ9bFtlXSx7Zm9udDppLGxpbmVIZWlnaHQ6cn09emEodCwwPT09ZSxuPFdhLm1vYmlsZUZpcnN0QnJlYWtwb2ludHNbIm1lZGlhLW1mLXRhYmxldC12ZXJ0aWNhbCJdKSx7d2lkdGg6YyxwYWRkaW5nUmlnaHQ6aH09VWEodC5pY29uLDA9PT1lLG48V2EubW9iaWxlRmlyc3RCcmVha3BvaW50c1sibWVkaWEtbWYtdGFibGV0LXZlcnRpY2FsIl0pO3MuZm9udD1pO2NvbnN0IGQ9dGhpcy5fd2lkdGhDYWNoZS5tZWFzdXJlVGV4dChzLHQudGV4dCkrYytoKzE2LHU9ZD5uP24vZDoxO2EucHVzaCh1KSxvKz1yKnUrNH1sZXQgaD1NYXRoLm1heCgoci1vKS8yLDApO3MuZmlsbFN0eWxlPWk7Zm9yKGxldCBlPTA7ZTxjO2UrKyl7Y29uc3QgdD1sW2VdLGk9YVtlXSx7Zm9udDpyLGxpbmVIZWlnaHQ6byx2ZXJ0T2Zmc2V0OmN9PXphKHQsMD09PWUsbjxXYS5tb2JpbGVGaXJzdEJyZWFrcG9pbnRzWyJtZWRpYS1tZi10YWJsZXQtdmVydGljYWwiXSk7dHJ5e3Muc2F2ZSgpLHMuZm9udD1yLHMudGV4dEJhc2VsaW5lPSJ0b3AiLHMudGV4dEFsaWduPSJsZWZ0Ijtjb25zdHtpY29uOmEsdGV4dDpsfT10LHt3aWR0aDpkLHBhZGRpbmdSaWdodDp1LHBhdGg6cH09VWEoYSwwPT09ZSxuPFdhLm1vYmlsZUZpcnN0QnJlYWtwb2ludHNbIm1lZGlhLW1mLXRhYmxldC12ZXJ0aWNhbCJdKSxfPXRoaXMuX3dpZHRoQ2FjaGUubWVhc3VyZVRleHQocyxsKStkK3U7aWYocy50cmFuc2xhdGUoKG4taSpfKS8yLGgpLHMuc2NhbGUoaSxpKSxwKXtjb25zdCBlPXt4OjAseTooby1kKS8yfTt0cnl7cy50cmFuc2xhdGUoZS54LGUueSkscy5maWxsKHAsImV2ZW5vZGQiKX1maW5hbGx5e3MudHJhbnNsYXRlKC1lLngsLWUueSl9fXMudHJhbnNsYXRlKGQrdSwwKSxzLmZpbGxUZXh0KGwsMCxjKSxoKz1vKmkrNH1maW5hbGx5e3MucmVzdG9yZSgpfX19fWZ1bmN0aW9uIHphKGUsdCxpKXtyZXR1cm4iZ2V0Rm9udE1ldHJpY3MiaW4gZT9lLmdldEZvbnRNZXRyaWNzKHQsaSk6ZX1mdW5jdGlvbiBVYShlLHQsaSl7cmV0dXJuIHZvaWQgMD09PWU/R2E6KDAsc2EuZGVmYXVsdCkoZSk/ZSh0LGkpOmV9Y29uc3QgR2E9e3dpZHRoOjAscGFkZGluZ1JpZ2h0OjB9LGphPW5ldyBQYXRoMkQoIk0yOCA1NEM0Mi4zNTk0IDU0IDU0IDQyLjM1OTQgNTQgMjhDNTQgMTMuNjQwNiA0Mi4zNTk0IDIgMjggMkMxMy42NDA2IDIgMiAxMy42NDA2IDIgMjhDMiA0Mi4zNTk0IDEzLjY0MDYgNTQgMjggNTRaTTI2IDE2VjI4VjQwTDE0IDI4TDI2IDE2Wk0yNiAyOEwzOCA0MFYxNkwyNiAyOFoiKSxxYT1qYSwkYT0oMCxEaS5zY2FsZVBhdGgyRCkoamEsLjc4NTcxNDI4NiksWWE9KDAsRGkuc2NhbGVQYXRoMkQpKGphLC41KTtmdW5jdGlvbiBLYShlLHQpe3JldHVybiBlLnZhbHVlKHQpfWZ1bmN0aW9uIFhhKGUpe3JldHVybigwLFJpLm1ha2VGb250KShlLFdpLkNIQVJUX0ZPTlRfRkFNSUxZX1dWLnZhbHVlKCkpfWNsYXNzIFphe2NvbnN0cnVjdG9yKGUsdCl7dGhpcy5fcmVuZGVyZXI9bmV3IEhhLHRoaXMuX2ludmFsaWRhdGVkPSEwLHRoaXMuX21vZGVsPWUsdGhpcy5fd2F0ZXJtYXJrPXR9dXBkYXRlKCl7dGhpcy5faW52YWxpZGF0ZWQ9ITB9cmVuZGVyZXIoKXtyZXR1cm4gdGhpcy5faW52YWxpZGF0ZWQmJih0aGlzLl91cGRhdGVJbXBsKCksdGhpcy5faW52YWxpZGF0ZWQ9ITEpLHRoaXMuX3JlbmRlcmVyfV91cGRhdGVJbXBsKCl7Y29uc3R7dGlja2VyOmUsaW50ZXJ2YWw6dCxkZXNjcmlwdGlvbjpzLGN1c3RvbTpuLHJlcGxheTpyfT10aGlzLl93YXRlcm1hcmsucHJvcGVydGllcygpLnN0YXRlKCksbz10aGlzLl9tb2RlbC5iYWNrZ3JvdW5kVGhlbWUoKS52YWx1ZSgpLGw9dGhpcy5fbW9kZWwubWFpblNlcmllcygpLGM9bC5hbGlhc1N5bWJvbEluZm8oKSxoPXImJmwuaXNJblJlcGxheSgpLnZhbHVlKCksZD1udWxsO2lmKCFjfHwhKGQ/bjplfHx0fHxzfHxoKSlyZXR1cm4gdm9pZCB0aGlzLl9yZW5kZXJlci5zZXREYXRhKG51bGwpO2lmKGQpe2NvbnN0IGU9ZCh7c3ltYm9sSW5mbzpjLGludGVydmFsOmwuaW50ZXJ2YWwoKX0pLHQ9ZT8ubWFwKChlPT4oe3RleHQ6ZS50ZXh0LGZvbnQ6WGEoZS5mb250U2l6ZSksbGluZUhlaWdodDplLmxpbmVIZWlnaHQsdmVydE9mZnNldDplLnZlcnRPZmZzZXR9KSkpO3JldHVybiB2b2lkIHRoaXMuX3JlbmRlcmVyLnNldERhdGEoe2NvbG9yOkthKHRoaXMuX3dhdGVybWFyay5wcm9wZXJ0aWVzKCkuY2hpbGRzKCkuY29sb3IsbyksbGluZXM6dD8/W119KX1sZXQgdT1jLm5hbWU7aWYoL1FVQU5ETC8udGVzdChjLmV4Y2hhbmdlKSl7Y29uc3QgZT11LnNwbGl0KC9cLy8pO2UubGVuZ3RoJiYodT1lW2UubGVuZ3RoLTFdKX1jb25zdCBfPXtkZXNjcmlwdGlvbjpjLmRlc2NyaXB0aW9uLHNob3J0X2Rlc2NyaXB0aW9uOmMuc2hvcnRfZGVzY3JpcHRpb24scHJvX25hbWU6Yy5wcm9fbmFtZSxzaG9ydF9uYW1lOmMubmFtZSxsb2NhbF9kZXNjcmlwdGlvbjpjLmxvY2FsX2Rlc2NyaXB0aW9uLGxhbmd1YWdlOmMubGFuZ3VhZ2V9LG09W2U/dTpudWxsLHQ/KDAsT2EudHJhbnNsYXRlZEludGVydmFsU3RyaW5nKShsLmludGVydmFsKCkpOm51bGxdLmZpbHRlcihhLm5vdE51bGwpLGc9W3t0ZXh0OnU/bS5qb2luKCIsICIpOiIifSx7dGV4dDpzJiYoMCxOYS5nZXRUcmFuc2xhdGVkU3ltYm9sRGVzY3JpcHRpb24pKF8pfHwiIn0se3RleHQ6aCYmcC50KG51bGwsdm9pZCAwLGkoODkzMDI4KSl8fCIiLGljb246SmF9XS5maWx0ZXIoKGU9PmUudGV4dC5sZW5ndGg+MCkpLm1hcCgoKHt0ZXh0OmUsaWNvbjp0fSk9Pih7dGV4dDplLGljb246dCxnZXRGb250TWV0cmljczpRYX0pKSk7dGhpcy5fcmVuZGVyZXIuc2V0RGF0YSh7Y29sb3I6S2EodGhpcy5fd2F0ZXJtYXJrLnByb3BlcnRpZXMoKS5jaGlsZHMoKS5jb2xvcixvKSxsaW5lczpnfSl9fWNvbnN0IEphPSgwLEJhLmRlZmF1bHQpKChmdW5jdGlvbihlLHQpe3JldHVybiB0P2U/e3BhdGg6JGEsd2lkdGg6NDQscGFkZGluZ1JpZ2h0OjEyfTp7cGF0aDpZYSx3aWR0aDoyOCxwYWRkaW5nUmlnaHQ6OH06ZT97cGF0aDpxYSx3aWR0aDo1NixwYWRkaW5nUmlnaHQ6MTZ9OntwYXRoOllhLHdpZHRoOjI4LApwYWRkaW5nUmlnaHQ6MTJ9fSksKChlLHQpPT5gJHtlfS0ke3R9YCkpO2NvbnN0IFFhPSgwLEJhLmRlZmF1bHQpKChmdW5jdGlvbihlLHQpe2NvbnN0W2kscyxuXT10bFt0P2U/MjozOmU/MDoxXTtyZXR1cm57Zm9udDpYYShpKSxsaW5lSGVpZ2h0OnMsdmVydE9mZnNldDpufX0pLCgoZSx0KT0+YCR7ZX0tJHt0fS0ke1dpLkNIQVJUX0ZPTlRfRkFNSUxZX1dWLnZhbHVlKCl9YCkpO3ZhciBlbDshZnVuY3Rpb24oZSl7ZVtlLkZpcnN0TGluZT0wXT0iRmlyc3RMaW5lIixlW2UuT3RoZXJMaW5lcz0xXT0iT3RoZXJMaW5lcyIsZVtlLkZpcnN0TGluZU1vYmlsZT0yXT0iRmlyc3RMaW5lTW9iaWxlIixlW2UuT3RoZXJMaW5lc01vYmlsZT0zXT0iT3RoZXJMaW5lc01vYmlsZSJ9KGVsfHwoZWw9e30pKTtjb25zdCB0bD17MDpbODAsODAsNl0sMTpbMzYsNDQsOF0sMjpbNDgsNDgsNF0sMzpbMjgsMzYsNl19LGlsPSJzeW1ib2xXYXRlcm1hcmsiO2NsYXNzIHNsIGV4dGVuZHMgdXIuRGF0YVNvdXJjZXtjb25zdHJ1Y3RvcihlKXtzdXBlcigpLHRoaXMuX3VwZGF0ZVNvdXJjZT0oKT0+e3RoaXMuX21vZGVsLnVwZGF0ZVNvdXJjZSh0aGlzKX0sdGhpcy5fbW9kZWw9ZSx0aGlzLl9wcm9wZXJ0aWVzPVJhKCksKDAseWEuYXBwbHlEZWZhdWx0c092ZXJyaWRlcykodGhpcy5fcHJvcGVydGllcyx2b2lkIDAsITEsaWwpLHRoaXMuX3Byb3BlcnRpZXMuc3Vic2NyaWJlKHRoaXMsdGhpcy5fdXBkYXRlU291cmNlKSx0aGlzLl9tb2RlbC5iYWNrZ3JvdW5kVGhlbWUoKS5zdWJzY3JpYmUodGhpcy5fdXBkYXRlU291cmNlKSx0aGlzLl9wYW5lVmlldz1uZXcgWmEoZSx0aGlzKX1kZXN0cm95KCl7dGhpcy5fbW9kZWwuYmFja2dyb3VuZFRoZW1lKCkudW5zdWJzY3JpYmUodGhpcy5fdXBkYXRlU291cmNlKSx0aGlzLl9wcm9wZXJ0aWVzLnVuc3Vic2NyaWJlKHRoaXMsdGhpcy5fdXBkYXRlU291cmNlKSxzdXBlci5kZXN0cm95KCl9bW9kZWwoKXtyZXR1cm4gdGhpcy5fbW9kZWx9bmFtZSgpe3JldHVybiJ3YXRlcm1hcmsifXByb3BlcnRpZXMoKXtyZXR1cm4gdGhpcy5fcHJvcGVydGllc31yZXN0b3JlUHJvcGVydGllc0RlZmF1bHRzKCl7UmEoKS5tZXJnZUFuZEZpcmUoSWEpfWFwcGx5T3ZlcnJpZGVzKGUpeygwLHlhLmFwcGx5UHJvcGVydGllc092ZXJyaWRlcykodGhpcy5fcHJvcGVydGllcyx2b2lkIDAsITEsZnVuY3Rpb24oZSl7Y29uc3R7dmlzaWJpbGl0eTp0LC4uLml9PWUscz17Li4uaX07cmV0dXJuIHZvaWQgMCE9PXQmJihzLnRpY2tlcj10LHMuaW50ZXJ2YWw9dCxzLmRlc2NyaXB0aW9uPXQscy5jdXN0b209dCksc30oZSksaWwpfXBhbmVWaWV3cygpe3JldHVyblt0aGlzLl9wYW5lVmlld119dXBkYXRlQWxsVmlld3MoZSl7c3VwZXIudXBkYXRlQWxsVmlld3MoZSksdGhpcy5fcGFuZVZpZXcudXBkYXRlKCl9Y29udGV4dE1lbnVTdGF0TmFtZSgpe3JldHVybiJXYXRlcm1hcmtDb250ZXh0TWVudSJ9fXZhciBubCxybD1pKDEzMTI5NCksb2w9aSg2MzY5MTIpOyFmdW5jdGlvbihlKXtlW2UuU3RlcEZvckNoYW5nZVZhbHVlPS4xXT0iU3RlcEZvckNoYW5nZVZhbHVlIixlW2UuTWluVmFsdWU9MWUtN109Ik1pblZhbHVlIixlW2UuTWF4VmFsdWU9OTk5OTk5OTldPSJNYXhWYWx1ZSJ9KG5sfHwobmw9e30pKTtjbGFzcyBhbCBleHRlbmRzIG9sLlByb3BlcnR5QmFzZXtjb25zdHJ1Y3RvcihlKXtzdXBlcigpLHRoaXMuX21vZGVsPWV9ZGVzdHJveSgpe3RoaXMuX2xpc3RlbmVycy5kZXN0cm95KCl9Z2V0U3RlcENoYW5nZVZhbHVlKCl7cmV0dXJuLjF9Z2V0TWluVmFsdWUoKXtyZXR1cm4gMWUtN31nZXRNYXhWYWx1ZSgpe3JldHVybiA5OTk5OTk5OX12YWx1ZSgpe3JldHVybiB0aGlzLl9tb2RlbC5tYWluU2VyaWVzU2NhbGVSYXRpbygpfXNldFZhbHVlKGUsdCl7KGUhPT10aGlzLnZhbHVlKCl8fHQpJiYodGhpcy5fbW9kZWwuc2V0TWFpblNlcmllc1NjYWxlUmF0aW8oZSksdGhpcy5maXJlQ2hhbmdlZCgpKX1zZXRWYWx1ZVNpbGVudGx5KGUpe2UhPT10aGlzLnZhbHVlKCkmJnRoaXMuX21vZGVsLnNldE1haW5TZXJpZXNTY2FsZVJhdGlvKGUpfXN0YXRlKCl7cmV0dXJuIG51bGx9Y2xvbmUoKXtyZXR1cm4gbmV3IGFsKHRoaXMuX21vZGVsKX1zdG9yZVN0YXRlSWZVbmRlZmluZWQoKXtyZXR1cm4hMH13ZWFrUmVmZXJlbmNlKCl7cmV0dXJuKDAscmwud2Vha1JlZmVyZW5jZSkodGhpcyl9b3duZXJzaGlwKCl7cmV0dXJuKDAscmwub3duZXJzaGlwKSh0aGlzKX19dmFyIGxsPWkoMjc1NzQyKSxjbD1pKDg1NTYyNik7Y2xhc3MgaGx7Y29uc3RydWN0b3IoZSx0KXt0aGlzLl9tYXAxPW5ldyBNYXAsdGhpcy5fbWFwMj1uZXcgTWFwLHRoaXMuX2dldHRlcjE9ZSx0aGlzLl9nZXR0ZXIyPXR9YWRkKGUpe2NvbnN0IHQ9dGhpcy5fZ2V0dGVyMShlKSxpPXRoaXMuX2dldHRlcjIoZSk7dGhpcy5fbWFwMS5zZXQodCxlKSx0aGlzLl9tYXAyLnNldChpLHQpfWdldEJ5S2V5MShlKXtyZXR1cm4gdGhpcy5fbWFwMS5nZXQoZSk/P251bGx9Z2V0QnlLZXkyKGUpe2NvbnN0IHQ9dGhpcy5fbWFwMi5nZXQoZSk7cmV0dXJuIHZvaWQgMD09PXQ/bnVsbDp0aGlzLl9tYXAxLmdldCh0KT8/bnVsbH1yZW1vdmVCeUtleTEoZSl7Y29uc3QgdD10aGlzLl9tYXAxLmdldChlKTt2b2lkIDAhPT10JiYodGhpcy5fbWFwMS5kZWxldGUoZSksdGhpcy5fbWFwMi5kZWxldGUodGhpcy5fZ2V0dGVyMih0KSkpfXJlbW92ZUJ5S2V5MihlKXtjb25zdCB0PXRoaXMuX21hcDIuZ2V0KGUpO3ZvaWQgMCE9PXQmJih0aGlzLl9tYXAyLmRlbGV0ZShlKSx0aGlzLl9tYXAxLmRlbGV0ZSh0KSl9fXZhciBkbCx1bD1pKDI1NDgzNSkscGw9aSg3MzY1ODcpLF9sPWkoOTQzMTMwKSxtbD1pKDIyNzk4NCksZ2w9aSg4ODE5MiksZmw9aSgyMjQxODMpO2Z1bmN0aW9uIFNsKGUsdCxpKXtyZXR1cm4gaS5oYXNEYXRhU291cmNlKHQpP2JsKHQsaSk9PT1lOiEhaS5pc01haW5QYW5lKCkudmFsdWUoKSYmYmwoaS5tb2RlbCgpLm1haW5TZXJpZXMoKSxpKT09PWV9IWZ1bmN0aW9uKGUpe2UuVHJhZGluZz0idHJhZGluZyIsZS5EcmF3aW5nPSJkcmF3aW5nIiwKZS5EcmF3aW5nRm9yQWxsU3ltYm9scz0iZHJhd2luZ3NGb3JBbGxTeW1ib2xzIixlLlBoYW50b209InBoYW50b20iLGUuUmVzdFJvd1NvdXJjZXM9InJlc3RSb3dTb3VyY2VzIixlLkxlZ2VuZFZpZXdTb3VyY2VzPSJsZWdlbmRWaWV3U291cmNlcyIsZS5MZWZ0UHJpY2VTY2FsZT0ibGVmdFByaWNlU2NhbGUiLGUuUmlnaHRQcmljZVNjYWxlPSJyaWdodFByaWNlU2NhbGUiLGUuT3ZlcmxheVByaWNlU2NhbGU9Im92ZXJsYXlQcmljZVNjYWxlIixlLk11bHRpcGFuZVNvdXJjZXM9Im11bHRpcGFuZSIsZS5BbGxXaXRob3V0TXVsdGlwYW5lPSJhbGxXaXRob3V0TXVsdGlwYW5lIixlLkFsbFdpdGhvdXRNdWx0aXBhbmVXaXRoSGlkZGVuPSJhbGxXaXRob3V0TXVsdGlwYW5lV2l0aEhpZGRlbiIsZS5QbG90U291cmNlPSJwbG90U291cmNlIixlLk9iamVjdFRyZWU9Im9iamVjdFRyZWUiLGUuSGl0VGVzdD0iaGl0VGVzdCIsZS5HZW5lcmFsPSJnZW5lcmFsIixlLlByaWNlPSJwcmljZSIsZS5FeGNlcHRTcGVjaWFsPSJleGNlcHRTcGVjaWFsIixlLlZpc2libGVFeGNlcHRTcGVjaWFsPSJ2aXNpYmxlRXhjZXB0U3BlY2lhbCIsZS5BbGxTb3J0ZWQ9ImFsbFNvcnRlZCIsZS5WaXNpYmxlU29ydGVkPSJ2aXNpYmxlU29ydGVkIn0oZGx8fChkbD17fSkpO2NvbnN0IHZsPW5ldyBNYXAoW1sicHJpY2UiLGU9PigwLEhzLmlzUHJpY2VEYXRhU291cmNlKShlKV0sWyJ0cmFkaW5nIixlPT4oMCxyaS5pc1RyYWRpbmcpKGUpXSxbImRyYXdpbmciLGU9PigwLHJpLmlzTGluZVRvb2wpKGUpJiYhKDAscmkuaXNUcmFkaW5nKShlKSYmIWUuaXNQaGFudG9tKCldLFsiZHJhd2luZ3NGb3JBbGxTeW1ib2xzIixlPT4oMCxyaS5pc0xpbmVUb29sKShlKSYmISgwLHJpLmlzVHJhZGluZykoZSkmJiFlLmlzUGhhbnRvbSgpXSxbInBoYW50b20iLGU9PigwLHJpLmlzTGluZVRvb2wpKGUpJiZlLmlzUGhhbnRvbSgpXSxbInJlc3RSb3dTb3VyY2VzIixlPT4hKDAscmkuaXNMaW5lVG9vbCkoZSkmJiEoMCxyaS5pc1RyYWRpbmcpKGUpXSxbImxlZ2VuZFZpZXdTb3VyY2VzIiwoZSx0KT0+dC5oYXNEYXRhU291cmNlKGUpJiYoKDAsSHMuaXNQcmljZURhdGFTb3VyY2UpKGUpfHwoMCxnbC5pc1N0dWR5TGluZVRvb2wpKGUpKV0sWyJsZWZ0UHJpY2VTY2FsZSIsU2wuYmluZChudWxsLCJsZWZ0IildLFsicmlnaHRQcmljZVNjYWxlIixTbC5iaW5kKG51bGwsInJpZ2h0IildLFsib3ZlcmxheVByaWNlU2NhbGUiLFNsLmJpbmQobnVsbCwib3ZlcmxheSIpXSxbIm11bHRpcGFuZSIsKGUsdCk9PiF0Lmhhc0RhdGFTb3VyY2UoZSldLFsiYWxsV2l0aG91dE11bHRpcGFuZSIsKGUsdCk9PnQuaGFzRGF0YVNvdXJjZShlKV0sWyJhbGxXaXRob3V0TXVsdGlwYW5lV2l0aEhpZGRlbiIsKGUsdCk9PnQuaGFzRGF0YVNvdXJjZShlKV0sWyJwbG90U291cmNlIiwoZSx0KT0+KDAsZmwuaXNTZXJpZXMpKGUpfHwoMCx0aS5pc1N0dWR5KShlKSYmdC5oYXNEYXRhU291cmNlKGUpJiYhZS5pc1NwZWNpYWxseVpPcmRlcmVkU291cmNlKCldLFsib2JqZWN0VHJlZSIsKGUsdCk9PntpZigoMCxyaS5pc0xpbmVUb29sKShlKSl7Y29uc3QgaT1lLnRhcmdldFNpZ25hdHVyZSgpLnZhbHVlKCk7aWYobnVsbCE9PWkpcmV0dXJuIHQuaGFzRGF0YVNvdXJjZVdpdGhTaWduYXR1cmUoaSl9cmV0dXJuIHQuaGFzRGF0YVNvdXJjZShlKX1dXSkseWw9bmV3IE1hcChbWyJwcmljZSIsInZpc2libGVTb3J0ZWQiXSxbInRyYWRpbmciLCJ2aXNpYmxlU29ydGVkIl0sWyJkcmF3aW5nIiwidmlzaWJsZVNvcnRlZCJdLFsiZHJhd2luZ3NGb3JBbGxTeW1ib2xzIiwiYWxsU29ydGVkIl0sWyJwaGFudG9tIiwidmlzaWJsZVNvcnRlZCJdLFsicmVzdFJvd1NvdXJjZXMiLCJ2aXNpYmxlU29ydGVkIl0sWyJsZWdlbmRWaWV3U291cmNlcyIsInZpc2libGVTb3J0ZWQiXSxbImxlZnRQcmljZVNjYWxlIiwidmlzaWJsZVNvcnRlZCJdLFsicmlnaHRQcmljZVNjYWxlIiwidmlzaWJsZVNvcnRlZCJdLFsib3ZlcmxheVByaWNlU2NhbGUiLCJ2aXNpYmxlU29ydGVkIl0sWyJtdWx0aXBhbmUiLCJ2aXNpYmxlU29ydGVkIl0sWyJhbGxXaXRob3V0TXVsdGlwYW5lIiwidmlzaWJsZVNvcnRlZCJdLFsiYWxsV2l0aG91dE11bHRpcGFuZVdpdGhIaWRkZW4iLCJhbGxTb3J0ZWQiXSxbInBsb3RTb3VyY2UiLCJ2aXNpYmxlU29ydGVkIl0sWyJvYmplY3RUcmVlIiwidmlzaWJsZVNvcnRlZCJdXSk7ZnVuY3Rpb24gYmwoZSx0KXtjb25zdCBpPWUucHJpY2VTY2FsZSgpO3JldHVybiBudWxsPT09aT8ib3ZlcmxheSI6dC5wcmljZVNjYWxlUG9zaXRpb24oaSl9ZnVuY3Rpb24gd2woZSl7bGV0IHQ9bnVsbDtyZXR1cm57c291cmNlczplLGhhc1NvdXJjZTppPT4obnVsbD09PXQmJih0PW5ldyBNYXAoZS5tYXAoKGU9PltlLmlkKCksZV0pKSkpLHQuaGFzKGkuaWQoKSkpfX1jbGFzcyBDbHtjb25zdHJ1Y3RvcihlKXt0aGlzLl9ncm91cGVkU291cmNlcz1uZXcgTWFwLHRoaXMuX3NvdXJjZXM9bnVsbCx0aGlzLl9wYW5lPWV9Y2xlYXIoKXt0aGlzLl9ncm91cGVkU291cmNlcy5jbGVhcigpLHRoaXMuX3NvdXJjZXM9bnVsbH1kZXN0cm95KCl7dGhpcy5jbGVhcigpfWFsbCgpe3JldHVybiB0aGlzLl9ncm91cGVkU291cmNlcy5oYXMoInZpc2libGVTb3J0ZWQiKXx8dGhpcy5fc29ydFNvdXJjZXMoKSwoMCxsLmVuc3VyZURlZmluZWQpKHRoaXMuX2dyb3VwZWRTb3VyY2VzLmdldCgidmlzaWJsZVNvcnRlZCIpKS5zb3VyY2VzfWFsbEluY2x1ZGluZ0hpZGRlbigpe3JldHVybiB0aGlzLl9ncm91cGVkU291cmNlcy5oYXMoImFsbFNvcnRlZCIpfHx0aGlzLl9zb3J0U291cmNlcygpLCgwLGwuZW5zdXJlRGVmaW5lZCkodGhpcy5fZ3JvdXBlZFNvdXJjZXMuZ2V0KCJhbGxTb3J0ZWQiKSkuc291cmNlc31hbGxXaXRob3V0TXVsdGlwYW5lKCl7cmV0dXJuIHRoaXMuX2dldFNvdXJjZXNCeUdyb3VwVHlwZSgiYWxsV2l0aG91dE11bHRpcGFuZSIpfWFsbFdpdGhvdXRNdWx0aXBhbmVXaXRoSGlkZGVuKCl7cmV0dXJuIHRoaXMuX2dldFNvdXJjZXNCeUdyb3VwVHlwZSgiYWxsV2l0aG91dE11bHRpcGFuZVdpdGhIaWRkZW4iKX0Kb2JqZWN0VHJlZVNvdXJjZXMoKXtyZXR1cm4gdGhpcy5fZ2V0U291cmNlc0J5R3JvdXBUeXBlKCJvYmplY3RUcmVlIil9aGFzT2JqZWN0VHJlZVNvdXJjZShlKXtyZXR1cm4gdGhpcy5fZ2V0R3JvdXBlZFNvdXJjZXNCeUdyb3VwVHlwZSgib2JqZWN0VHJlZSIpLmhhc1NvdXJjZShlKX16T3JkZXJWaXNpYmxlU291cmNlcygpe2lmKCF0aGlzLl9ncm91cGVkU291cmNlcy5oYXMoInZpc2libGVFeGNlcHRTcGVjaWFsIikpe2NvbnN0IGU9dGhpcy5hbGxXaXRob3V0TXVsdGlwYW5lKCkuZmlsdGVyKChlPT4hZS5pc1NwZWNpYWxseVpPcmRlcmVkU291cmNlKCkpKTt0aGlzLl9ncm91cGVkU291cmNlcy5zZXQoInZpc2libGVFeGNlcHRTcGVjaWFsIix3bChlKSl9cmV0dXJuKDAsbC5lbnN1cmVEZWZpbmVkKSh0aGlzLl9ncm91cGVkU291cmNlcy5nZXQoInZpc2libGVFeGNlcHRTcGVjaWFsIikpLnNvdXJjZXN9YWxsRXhjZXB0U3BlY2lhbFNvdXJjZXMoKXtpZighdGhpcy5fZ3JvdXBlZFNvdXJjZXMuaGFzKCJleGNlcHRTcGVjaWFsIikpe2NvbnN0IGU9dGhpcy5hbGxJbmNsdWRpbmdIaWRkZW4oKS5maWx0ZXIoKGU9PiFlLmlzU3BlY2lhbGx5Wk9yZGVyZWRTb3VyY2UoKSkpLmZpbHRlcigoZT0+dGhpcy5fcGFuZS5oYXNEYXRhU291cmNlKGUpKSk7dGhpcy5fZ3JvdXBlZFNvdXJjZXMuc2V0KCJleGNlcHRTcGVjaWFsIix3bChlKSl9cmV0dXJuKDAsbC5lbnN1cmVEZWZpbmVkKSh0aGlzLl9ncm91cGVkU291cmNlcy5nZXQoImV4Y2VwdFNwZWNpYWwiKSkuc291cmNlc310cmFkaW5nU291cmNlcygpe3JldHVybiB0aGlzLl9nZXRTb3VyY2VzQnlHcm91cFR5cGUoInRyYWRpbmciKX1wcmljZVNvdXJjZXMoKXtyZXR1cm4gdGhpcy5fZ2V0U291cmNlc0J5R3JvdXBUeXBlKCJwcmljZSIpfXBsb3RTb3VyY2VzKCl7cmV0dXJuIHRoaXMuX2dldFNvdXJjZXNCeUdyb3VwVHlwZSgicGxvdFNvdXJjZSIpfWxpbmVTb3VyY2VzKCl7cmV0dXJuIHRoaXMuX2dldFNvdXJjZXNCeUdyb3VwVHlwZSgiZHJhd2luZyIpfWhhc0xpbmVTb3VyY2UoZSl7cmV0dXJuIHRoaXMuX2dldEdyb3VwZWRTb3VyY2VzQnlHcm91cFR5cGUoImRyYXdpbmciKS5oYXNTb3VyY2UoZSl9bGluZVNvdXJjZXNGb3JBbGxTeW1ib2xzKCl7cmV0dXJuIHRoaXMuX2dldFNvdXJjZXNCeUdyb3VwVHlwZSgiZHJhd2luZ3NGb3JBbGxTeW1ib2xzIil9cGhhbnRvbVNvdXJjZXMoKXtyZXR1cm4gdGhpcy5fZ2V0U291cmNlc0J5R3JvdXBUeXBlKCJwaGFudG9tIil9YWxsRXhjZXB0TGluZUFuZFRyYWRpbmdTb3VyY2VzKCl7cmV0dXJuIHRoaXMuX2dldFNvdXJjZXNCeUdyb3VwVHlwZSgicmVzdFJvd1NvdXJjZXMiKX1oaXRUZXN0U291cmNlcygpe2lmKCF0aGlzLl9ncm91cGVkU291cmNlcy5oYXMoImhpdFRlc3QiKSl7Y29uc3QgZT10aGlzLmFsbEV4Y2VwdExpbmVBbmRUcmFkaW5nU291cmNlcygpLmNvbmNhdCh0aGlzLmxpbmVTb3VyY2VzKCkpO3RoaXMuX2dyb3VwZWRTb3VyY2VzLnNldCgiaGl0VGVzdCIsd2woKDAsZHIuc29ydFNvdXJjZXMpKGUsdGhpcy5fcGFuZSkpKX1yZXR1cm4oMCxsLmVuc3VyZURlZmluZWQpKHRoaXMuX2dyb3VwZWRTb3VyY2VzLmdldCgiaGl0VGVzdCIpKS5zb3VyY2VzfWdlbmVyYWxTb3VyY2VzKCl7aWYoIXRoaXMuX2dyb3VwZWRTb3VyY2VzLmhhcygiZ2VuZXJhbCIpKXtjb25zdCBlPXRoaXMuYWxsRXhjZXB0TGluZUFuZFRyYWRpbmdTb3VyY2VzKCkuY29uY2F0KHRoaXMubGluZVNvdXJjZXMoKSk7dGhpcy5fZ3JvdXBlZFNvdXJjZXMuc2V0KCJnZW5lcmFsIix3bCgoMCxkci5zb3J0U291cmNlcykoZSx0aGlzLl9wYW5lKSkpfXJldHVybigwLGwuZW5zdXJlRGVmaW5lZCkodGhpcy5fZ3JvdXBlZFNvdXJjZXMuZ2V0KCJnZW5lcmFsIikpLnNvdXJjZXN9bGVmdFByaWNlU2NhbGVzU291cmNlcygpe3JldHVybiB0aGlzLl9nZXRTb3VyY2VzQnlHcm91cFR5cGUoImxlZnRQcmljZVNjYWxlIil9cmlnaHRQcmljZVNjYWxlc1NvdXJjZXMoKXtyZXR1cm4gdGhpcy5fZ2V0U291cmNlc0J5R3JvdXBUeXBlKCJyaWdodFByaWNlU2NhbGUiKX1vdmVybGF5UHJpY2VTY2FsZVNvdXJjZXMoKXtyZXR1cm4gdGhpcy5fZ2V0U291cmNlc0J5R3JvdXBUeXBlKCJvdmVybGF5UHJpY2VTY2FsZSIpfW11bHRpcGFuZVNvdXJjZXMoKXtyZXR1cm4gdGhpcy5fZ2V0U291cmNlc0J5R3JvdXBUeXBlKCJtdWx0aXBhbmUiKX1sZWdlbmRWaWV3U291cmNlcygpe3JldHVybiB0aGlzLl9nZXRTb3VyY2VzQnlHcm91cFR5cGUoImxlZ2VuZFZpZXdTb3VyY2VzIil9X2dldFNvdXJjZXNCeUdyb3VwVHlwZShlKXtyZXR1cm4gdGhpcy5fZ2V0R3JvdXBlZFNvdXJjZXNCeUdyb3VwVHlwZShlKS5zb3VyY2VzfV9nZXRHcm91cGVkU291cmNlc0J5R3JvdXBUeXBlKGUpe2NvbnN0IHQ9KDAsbC5lbnN1cmVEZWZpbmVkKSh5bC5nZXQoZSkpO3JldHVybiB0aGlzLl9ncm91cGVkU291cmNlcy5oYXModCk/dGhpcy5fZ3JvdXBlZFNvdXJjZXMuaGFzKGUpfHx0aGlzLl9ncm91cFNvdXJjZXMoZSk6KHRoaXMuX3NvcnRTb3VyY2VzKCksdGhpcy5fZ3JvdXBTb3VyY2VzKGUpKSwoMCxsLmVuc3VyZURlZmluZWQpKHRoaXMuX2dyb3VwZWRTb3VyY2VzLmdldChlKSl9X3NvcnRTb3VyY2VzKCl7bnVsbD09PXRoaXMuX3NvdXJjZXMmJih0aGlzLl9zb3VyY2VzPXRoaXMuX3BhbmUuZGF0YVNvdXJjZXMoKSk7Y29uc3QgZT10aGlzLl9wYW5lLm1vZGVsKCkubXVsdGlQYW5lU291cmNlcyh0aGlzLl9wYW5lKSx0PSgwLGRyLnNvcnRTb3VyY2VzKSh0aGlzLl9zb3VyY2VzLmNvbmNhdChlKSx0aGlzLl9wYW5lKSxpPXQuZmlsdGVyKChlPT4hKDAscmkuaXNMaW5lVG9vbCkoZSl8fGUuaXNBY3R1YWxTeW1ib2woKSYmZS5pc0FjdHVhbEN1cnJlbmN5KCkmJmUuaXNBY3R1YWxVbml0KCkmJmUuaXNBY3R1YWxNZXRyaWMoKSkpO3RoaXMuX2dyb3VwZWRTb3VyY2VzLnNldCgiYWxsU29ydGVkIix3bCh0KSksdGhpcy5fZ3JvdXBlZFNvdXJjZXMuc2V0KCJ2aXNpYmxlU29ydGVkIix3bChpKSl9X2dyb3VwU291cmNlcyhlKXtjb25zdCB0PSgwLGwuZW5zdXJlRGVmaW5lZCkoeWwuZ2V0KGUpKSxpPXZsLmdldChlKQo7aWYodm9pZCAwIT09aSl7Y29uc3Qgcz0oMCxsLmVuc3VyZURlZmluZWQpKHRoaXMuX2dyb3VwZWRTb3VyY2VzLmdldCh0KSkuc291cmNlcy5maWx0ZXIoKGU9PmkoZSx0aGlzLl9wYW5lKSkpO3RoaXMuX2dyb3VwZWRTb3VyY2VzLnNldChlLHdsKHMpKX19fXZhciBQbD1pKDYzNTUwOSksVGw9aSgxMjM2MTcpLHhsPWkoNzEyNzQ1KTtmdW5jdGlvbiBNbChlLHQsaSl7Y29uc3Qgcz1lLmRpdih0KS50b051bWJlcigpO3JldHVybiBNYXRoLmFicyhNYXRoLnJvdW5kKHMpLXMpPGl9Y29uc3QgSWw9WzIsNV0sTGw9WzUsMl07Y2xhc3MgQWx7Y29uc3RydWN0b3IoZSx0LGkpe2lmKHRoaXMuX2Jhc2U9ZSx0aGlzLl9pbnRlZ3JhbERpdmlkZXJzPXQsKDAsYmkuaXNCYXNlRGVjaW1hbCkoZSkpdGhpcy5fZnJhY3Rpb25hbERpdmlkZXJzPVsyLDIuNSwyXTtlbHNle3RoaXMuX2ZyYWN0aW9uYWxEaXZpZGVycz1bXTtjb25zdCBlPWk/SWw6TGw7Zm9yKGxldCB0PXRoaXMuX2Jhc2U7MSE9PXQ7KXtpZih0JWVbMF09PTApdGhpcy5fZnJhY3Rpb25hbERpdmlkZXJzLnB1c2goZVswXSksdC89ZVswXTtlbHNle2lmKHQlZVsxXSE9MCl0aHJvdyBuZXcgRXJyb3IoInVuZXhwZWN0ZWQgYmFzZSIpO3RoaXMuX2ZyYWN0aW9uYWxEaXZpZGVycy5wdXNoKGVbMV0pLHQvPWVbMV19aWYodGhpcy5fZnJhY3Rpb25hbERpdmlkZXJzLmxlbmd0aD4xMDApdGhyb3cgbmV3IEVycm9yKCJzb21ldGhpbmcgd3Jvbmcgd2l0aCBiYXNlIil9fX10aWNrU3BhbihlLHQsaSl7Y29uc3Qgcz0wPT09dGhpcy5fYmFzZT8wOjEvdGhpcy5fYmFzZSxuPU1hdGgubWluKDFlLTE0LChlLXQpLzFlMyk7bGV0IHI9TWF0aC5wb3coMTAsTWF0aC5tYXgoMCxNYXRoLmNlaWwoKDAsYmkubG9nMTApKGUtdCkpKSk7aWYoIWlzRmluaXRlKHIpKXJldHVybiAxZTMwNTtsZXQgbz0wLGE9dGhpcy5faW50ZWdyYWxEaXZpZGVyc1swXTtmb3IoOzspe2NvbnN0IGU9KDAsYmkuZ3JlYXRlck9yRXF1YWwpKHIscyxuKSYmcj5zK24sdD0oMCxiaS5ncmVhdGVyT3JFcXVhbCkocixpKmEsbiksbD0oMCxiaS5ncmVhdGVyT3JFcXVhbCkociwxLG4pLGM9bmV3IHhsLkJpZyhyKS5kaXYoYSksaD0wPT09c3x8TWwoYyxzLG4pO2lmKCEoZSYmdCYmbCYmaCkpYnJlYWs7cj1jLnRvTnVtYmVyKCksYT10aGlzLl9pbnRlZ3JhbERpdmlkZXJzWysrbyV0aGlzLl9pbnRlZ3JhbERpdmlkZXJzLmxlbmd0aF19aWYocjw9cytuJiYocj1zKSxyPU1hdGgubWF4KDEsciksdGhpcy5fZnJhY3Rpb25hbERpdmlkZXJzLmxlbmd0aD4wJiYoMCxiaS5lcXVhbCkociwxLG4pKWZvcihvPTAsYT10aGlzLl9mcmFjdGlvbmFsRGl2aWRlcnNbMF07Oyl7Y29uc3QgZT0oMCxiaS5ncmVhdGVyT3JFcXVhbCkocixpKmEsbikmJnI+cytuLHQ9bmV3IHhsLkJpZyhyKS5kaXYoYSksbD0wPT09c3x8TWwodCxzLG4pO2lmKCFlfHwhbClicmVhaztyPXQudG9OdW1iZXIoKSxhPXRoaXMuX2ZyYWN0aW9uYWxEaXZpZGVyc1srK28ldGhpcy5fZnJhY3Rpb25hbERpdmlkZXJzLmxlbmd0aF19cmV0dXJuIHJ9fXZhciBrbDshZnVuY3Rpb24oZSl7ZVtlLlN0ZXBzTGltaXQ9MzBdPSJTdGVwc0xpbWl0IixlW2UuSGV1cmlzdGljQWxnb1ZhbHVlc0xlbmd0aExpbWl0PTZdPSJIZXVyaXN0aWNBbGdvVmFsdWVzTGVuZ3RoTGltaXQiLGVbZS5IZXVyaXN0aWNBbGdvUmF0aW9MaW1pdD0yXT0iSGV1cmlzdGljQWxnb1JhdGlvTGltaXQifShrbHx8KGtsPXt9KSk7Y2xhc3MgRGx7Y29uc3RydWN0b3IoZSl7dGhpcy5fYmFzZT0oMCxiaS5pc0Jhc2VEZWNpbWFsKShlKT8xOmV9bmV4dFN0ZXBEaXZpZGVycygpe3JldHVybiAxPT09dGhpcy5fYmFzZT9bWzEwLDVdLFsyXV06KHRoaXMuX2Jhc2U9TWF0aC5yb3VuZCh0aGlzLl9iYXNlLzIpLFtbMl1dKX19ZnVuY3Rpb24gRWwoZSx0KXtyZXR1cm4gZS5sZW5ndGg+a2wuSGV1cmlzdGljQWxnb1ZhbHVlc0xlbmd0aExpbWl0JiYoZS5sZW5ndGgrMSkvdC5sZW5ndGg+PWtsLkhldXJpc3RpY0FsZ29SYXRpb0xpbWl0fWZ1bmN0aW9uIFJsKGUsdCl7Y29uc3QgaT1lLmZpbHRlcigoZT0+dChlLmNhbmRpZGF0ZVZhbHVlcykpKTtyZXR1cm4gaS5sZW5ndGg+MD9pLnJlZHVjZSgoKGUsdCk9PnQuY2FuZGlkYXRlVmFsdWVzLmxlbmd0aD5lLmNhbmRpZGF0ZVZhbHVlcy5sZW5ndGg/dDplKSxpWzBdKTplLmZpbmQoKGU9PmUuY2FuZGlkYXRlVmFsdWVzLmxlbmd0aD4wKSl8fGVbMF19ZnVuY3Rpb24gVmwoZSx0KXtpZihlLmxlbmd0aDw9MSlyZXR1cm5bXTtsZXQgaT1lLm1hcCgoZT0+TWF0aC5yb3VuZChlKnQpKSkscz0xO2NvbnN0IG49bmV3IERsKHQpLHI9RWwuYmluZChudWxsLGUpLG89ZT0+ZS5tYXAoKGU9PmUqcy90KSk7Zm9yKGxldCB0PTA7dDxrbC5TdGVwc0xpbWl0OysrdCl7aWYocihpKSlyZXR1cm4gbyhpKTtjb25zdCB0PW4ubmV4dFN0ZXBEaXZpZGVycygpO2xldCBhPSExO2Zvcihjb25zdCBlIG9mIHQpe2NvbnN0IHQ9UmwoZS5tYXAoKGU9Pih7ZGl2aWRlcjplLGNhbmRpZGF0ZVZhbHVlczppLmZpbHRlcigodD0+TWF0aC5hYnModCklZT09MCkpfSkpKSxyKTtpZih0LmNhbmRpZGF0ZVZhbHVlcy5sZW5ndGg+MCl7aT10LmNhbmRpZGF0ZVZhbHVlcy5tYXAoKGU9PmUvdC5kaXZpZGVyKSkscyo9dC5kaXZpZGVyLGE9ITA7YnJlYWt9fWlmKCFhKXJldHVybiBpLmxlbmd0aD09PWUubGVuZ3RoP1tdOm8oaSl9cmV0dXJuW119Y2xhc3MgQmx7Y29uc3RydWN0b3IoZSx0LGkscyl7dGhpcy5fbWFya3M9bnVsbCx0aGlzLl9wcmljZVNjYWxlPWUsdGhpcy5fYmFzZT10LHRoaXMuX2Nvb3JkaW5hdGVUb0xvZ2ljYWxGdW5jPWksdGhpcy5fbG9naWNhbFRvQ29vcmRpbmF0ZUZ1bmM9c31iYXNlKCl7cmV0dXJuIHRoaXMuX2Jhc2V9c2V0QmFzZShlKXtpZihlPDApdGhyb3cgbmV3IEVycm9yKCJiYXNlIDwgMCIpO3RoaXMuX2Jhc2U9ZX10aWNrU3BhbihlLHQsaT0wKXtpZihlPHQpdGhyb3cgbmV3IEVycm9yKCJoaWdoIDwgbG93IikKO2NvbnN0IHM9dGhpcy5fcHJpY2VTY2FsZS5oZWlnaHQoKSxuPXRoaXMuX3RpY2tNYXJrSGVpZ2h0KCkscj0oZS10KSpuL3Msbz1bbmV3IEFsKHRoaXMuX2Jhc2UsWzIsMi41LDJdLCEwKSxuZXcgQWwodGhpcy5fYmFzZSxbMiwyLDIuNV0sITApLG5ldyBBbCh0aGlzLl9iYXNlLFsyLjUsMiwyXSwhMCksbmV3IEFsKHRoaXMuX2Jhc2UsWzIsMi41LDJdLCExKSxuZXcgQWwodGhpcy5fYmFzZSxbMiwyLDIuNV0sITEpLG5ldyBBbCh0aGlzLl9iYXNlLFsyLjUsMiwyXSwhMSldLnJlZHVjZSgoKHMsbik9Pntjb25zdCBvPW4udGlja1NwYW4oZSx0LHIpO3JldHVybiBvPmk/TWF0aC5taW4obyxzKTpzfSksMS8wKTtyZXR1cm4gbz4wJiZpc0Zpbml0ZShvKT9vOmUtdH1yZWJ1aWxkVGlja01hcmtzKCl7dGhpcy5fbWFya3M9bnVsbH1tYXJrcygpe3JldHVybiBudWxsPT09dGhpcy5fbWFya3MmJih0aGlzLl9tYXJrcz10aGlzLl9yZWJ1aWxkVGlja01hcmtzSW1wbCgpKSx0aGlzLl9tYXJrc31fZm9udEhlaWdodCgpe3JldHVybiB0aGlzLl9wcmljZVNjYWxlLmZvbnRTaXplKCl9X3RpY2tNYXJrSGVpZ2h0KCl7cmV0dXJuIE1hdGguY2VpbCgyLjUqdGhpcy5fZm9udEhlaWdodCgpKX1fcmVidWlsZFRpY2tNYXJrc0ltcGwoKXtjb25zdCBlPXRoaXMuX3ByaWNlU2NhbGUsdD1bXSxpPWUubWFpblNvdXJjZSgpO2lmKGUuaXNFbXB0eSgpfHwhZS5oYXNDYWxjdWxhdGVkUHJpY2VSYW5nZSgpfHxudWxsPT09aSlyZXR1cm4gdDtsZXQgcz1pLmZpcnN0VmFsdWUoKTtudWxsPT09cyYmKHM9MCk7Y29uc3Qgbj1lLmhlaWdodCgpLHI9dGhpcy5fY29vcmRpbmF0ZVRvTG9naWNhbEZ1bmMobi0xLHMpLG89dGhpcy5fY29vcmRpbmF0ZVRvTG9naWNhbEZ1bmMoMCxzKSxhPU1hdGgubWF4KHIsbyksbD1NYXRoLm1pbihyLG8pO2lmKGE9PT1sKXJldHVybiB0O2xldCBjPXRoaXMudGlja1NwYW4oYSxsKSxoPWElYztoKz1oPDA/YzowO2NvbnN0IGQ9YT49bD8xOi0xO2xldCB1PW51bGw7Y29uc3QgcD1lLmZvcm1hdHRlcigpO2xldCBfPU5hTjtjb25zdCBtPVtdO2ZvcihsZXQgdD1hLWg7dD5sO3QtPWMpe3Q9PT1fJiYoYz10aGlzLnRpY2tTcGFuKGEsbCxjKSksXz10O2NvbnN0IGk9dGhpcy5fbG9naWNhbFRvQ29vcmRpbmF0ZUZ1bmModCxzKTtudWxsIT09dSYmTWF0aC5hYnMoaS11KTx0aGlzLl90aWNrTWFya0hlaWdodCgpfHwobS5wdXNoKHtsb2dpY2FsOnQsY29vcmQ6aX0pLHU9aSxlLmlzTG9nKCkmJihjPXRoaXMudGlja1NwYW4odCpkLGwpKSl9Y29uc3QgZz1tLm1hcCgoZT0+ZS5sb2dpY2FsKSksZj10aGlzLl9iYXNlfHxNYXRoLnBvdygxMCwtTWF0aC5jZWlsKE1hdGgubG9nMTAoYykpKSxTPVZsKGcsZiksdj0xLygxMDAqZik7cmV0dXJuIG0ubWFwKChlPT57Y29uc3R7bG9naWNhbDp0LGNvb3JkOml9PWU7cmV0dXJue2Nvb3JkOmksbGFiZWw6cC5mb3JtYXQodCksYm9sZDpTLnNvbWUoKGU9Pk1hdGguYWJzKGUtdCk8dikpfX0pKX19dmFyIE5sPWkoNzU1NjI3KSxPbD1pKDIzMzI0Nyk7KDAscS5pc0ZlYXR1cmVzZXRFbmFibGVkKSgiaGlkZV9wcmljZV9zY2FsZV9pZl9hbGxfc291cmNlc19oaWRkZW4iKTtjb25zdCBXbD0oMCxPbC5nZXRQZXJjZW50YWdlRm9ybWF0dGVyKSgpLEZsPW5ldyBObC5QcmljZUZvcm1hdHRlcih7cHJpY2VTY2FsZToxMDAsbWluTW92ZToxfSksSGw9e2F1dG9TY2FsZTohMCxhdXRvU2NhbGVEaXNhYmxlZDohMSxsb2NrU2NhbGU6ITEscGVyY2VudGFnZTohMSxwZXJjZW50YWdlRGlzYWJsZWQ6ITEsbG9nOiExLGxvZ0Rpc2FibGVkOiExLGFsaWduTGFiZWxzOiEwLGlzSW52ZXJ0ZWQ6ITEsaW5kZXhlZFRvMTAwOiExfTtmdW5jdGlvbiB6bChlKXtyZXR1cm4gZS5pc0N1cnJlbmN5U291cmNlKCkmJmUuaXNDdXJyZW5jeU9yaWdpbigpLnZhbHVlKCl9ZnVuY3Rpb24gVWwoZSl7cmV0dXJuIGUuaXNDdXJyZW5jeVNvdXJjZSgpJiYhZS5pc0N1cnJlbmN5T3JpZ2luKCkudmFsdWUoKX1mdW5jdGlvbiBHbChlKXtyZXR1cm4gZS5pc1VuaXRTb3VyY2UoKSYmZS5pc1VuaXRPcmlnaW4oKS52YWx1ZSgpfWZ1bmN0aW9uIGpsKGUpe3JldHVybiBlLmlzVW5pdFNvdXJjZSgpJiYhZS5pc1VuaXRPcmlnaW4oKS52YWx1ZSgpfWNsYXNzIHFse2NvbnN0cnVjdG9yKGUsdCl7dGhpcy5fbWFya3NDYWNoZT1udWxsLHRoaXMuX29uTWFya3NDaGFuZ2VkPW5ldyBmLkRlbGVnYXRlLHRoaXMubV9kYXRhU291cmNlcz1bXSx0aGlzLl9zb3VyY2VzRm9yQXV0b3NjYWxlPW51bGwsdGhpcy5fc291cmNlc1RoYXRBZmZlY3RWaXNpYmlsaXR5PVtdLHRoaXMuX2hhc1Nlcmllcz0hMSx0aGlzLl9zdHVkaWVzQ291bnQ9MCx0aGlzLl9kcmF3aW5nQ291bnQ9MCx0aGlzLl9zZXJpZXNMaWtlU291cmNlcz1bXSx0aGlzLl9wcmljZURhdGFTb3VyY2VzPVtdLHRoaXMuX21haW5Tb3VyY2U9bnVsbCx0aGlzLl9sYXN0U291cmNlUmVtb3ZlZD1uZXcgZi5EZWxlZ2F0ZSx0aGlzLl9zY2FsZVNlcmllc09ubHk9ITEsdGhpcy5faW52YWxpZGF0ZWRGb3JSYW5nZT17aXNWYWxpZDohMCx2aXNpYmxlQmFyczpudWxsLGxvZ2ljYWxSYW5nZTpudWxsfSx0aGlzLl9wcmljZVJhbmdlPW51bGwsdGhpcy5faGFzQ2FsY3VsYXRlZFByaWNlUmFuZ2U9ITEsdGhpcy5fbG9nRm9ybXVsYT0oMCxUbC5sb2dGb3JtdWxhRm9yQmFzZSkobnVsbCksdGhpcy5tX2hlaWdodD0wLHRoaXMuX21hcmdpbnM9e3RvcDowLGJvdHRvbTowfSx0aGlzLl9jb3JyZWN0ZWRNYXJnaW5zQ2FjaGU9bnVsbCx0aGlzLl90b3BQaXhlbE1hcmdpbj0wLHRoaXMuX2JvdHRvbVBpeGVsTWFyZ2luPTAsdGhpcy5faW50ZXJuYWxIZWlnaHRDYWNoZT1udWxsLHRoaXMuX2ludGVybmFsSGVpZ2h0Q2hhbmdlZD1uZXcgZi5EZWxlZ2F0ZSx0aGlzLl9wcmljZVJhbmdlU25hcHNob3Q9bnVsbCx0aGlzLl9zY3JvbGxTdGFydFBvaW50PW51bGwsdGhpcy5fY3VycmVuY3lDYWNoZT1udWxsLHRoaXMuX3VuaXRDYWNoZT1udWxsLHRoaXMuX21lYXN1cmVVbml0SWRDYWNoZT1udWxsLHRoaXMuX21ldHJpY0NhY2hlPW51bGwsdGhpcy5fcmVjYWxjdWxhdGVQcmljZVJhbmdlT25jZT0hMSwKdGhpcy5fY2FjaGVkT3JkZXJlZFNvcnVjZXM9bnVsbCx0aGlzLl9zY2FsZVN0YXJ0UG9pbnQ9bnVsbCx0aGlzLl90d29Qb2ludHNTY2FsZVN0YXJ0UG9zaXRpb249bnVsbCx0aGlzLl9tYXhQcmljZVJhbmdlPW51bGwsdGhpcy5fbWluUHJpY2VSYW5nZT1udWxsLHRoaXMuX3ByaWNlUmFuZ2VDaGFuZ2VkPW5ldyBmLkRlbGVnYXRlLHRoaXMuX21vZGVDaGFuZ2VkPW5ldyBmLkRlbGVnYXRlLHRoaXMuX3NvdXJjZXNUb1VwZGF0ZVZpZXdzPW51bGwsdGhpcy5fbWFya0J1aWxkZXI9bmV3IEJsKHRoaXMsMTAwLHRoaXMuX2Nvb3JkaW5hdGVUb0xvZ2ljYWwuYmluZCh0aGlzKSx0aGlzLl9sb2dpY2FsVG9Db29yZGluYXRlLmJpbmQodGhpcykpLHRoaXMuX2Zvcm1hdHRlcj1udWxsLHRoaXMuX3Jlc2V0U2NhbGVBdmFpbGFibGU9bmV3IGguV2F0Y2hlZFZhbHVlKCExKSx0aGlzLl9pZD0iIix0aGlzLl9pc1Zpc2libGU9bmV3IGguV2F0Y2hlZFZhbHVlKCEwKSx0aGlzLl9kcm9wU2NhbGVDYWNoZT0oKT0+e3RoaXMuX3NvdXJjZXNGb3JBdXRvc2NhbGU9bnVsbCx0aGlzLl9jdXJyZW5jeUNhY2hlPW51bGwsdGhpcy5fdW5pdENhY2hlPW51bGwsdGhpcy5fbWV0cmljQ2FjaGU9bnVsbCx0aGlzLl9tZWFzdXJlVW5pdElkQ2FjaGU9bnVsbH0sdD1PYmplY3QuYXNzaWduKHt9LEhsLHQpLHRoaXMuX3Byb3BlcnRpZXM9bmV3IE90LlByb3BlcnR5KHQpLHRoaXMuX3NjYWxlc1Byb3BlcnRpZXM9ZSx0aGlzLl9wcm9wZXJ0aWVzLmNoaWxkcygpLmlzSW52ZXJ0ZWQuc3Vic2NyaWJlKHRoaXMsdGhpcy5fb25Jc0ludmVydGVkQ2hhbmdlZCksdGhpcy5fcHJvcGVydGllcy5zdWJzY3JpYmUobnVsbCwoKCk9Pntjb25zdCBlPXRoaXMubWFpblNvdXJjZSgpO2lmKGUmJmUubW9kZWwoKSl7Y29uc3QgdD1lLm1vZGVsKCkucGFuZUZvclNvdXJjZShlKTt0JiZlLm1vZGVsKCkudXBkYXRlUGFuZSh0KX19KSksdGhpcy5fc2NhbGVzUHJvcGVydGllcy5zdWJzY3JpYmUodGhpcywoKCk9Pnt0aGlzLl9tYXJrc0NhY2hlPW51bGx9KSksdGhpcy5fcHJvcGVydGllcy5jaGlsZHMoKS5sb2NrU2NhbGUuc3Vic2NyaWJlKHRoaXMsdGhpcy5fdXBkYXRlUmVzZXRBdmFpbGFibGVWYWx1ZSksdGhpcy5fcHJvcGVydGllcy5jaGlsZHMoKS5hdXRvU2NhbGUuc3Vic2NyaWJlKHRoaXMsdGhpcy5fdXBkYXRlUmVzZXRBdmFpbGFibGVWYWx1ZSksdGhpcy5fdXBkYXRlUmVzZXRBdmFpbGFibGVWYWx1ZSgpLHRoaXMuc2V0SWQoKDAsbHQucmFuZG9tSGFzaCkoKSl9aWQoKXtyZXR1cm4gdGhpcy5faWR9c2V0SWQoZSl7dGhpcy5faWQ9ZX1pc0xvZygpe3JldHVybiB0aGlzLl9wcm9wZXJ0aWVzLmNoaWxkcygpLmxvZy52YWx1ZSgpfWlzUGVyY2VudGFnZSgpe3JldHVybiB0aGlzLl9wcm9wZXJ0aWVzLmNoaWxkcygpLnBlcmNlbnRhZ2UudmFsdWUoKX1pc0ludmVydGVkKCl7cmV0dXJuIHRoaXMuX3Byb3BlcnRpZXMuY2hpbGRzKCkuaXNJbnZlcnRlZC52YWx1ZSgpfWlzSW5kZXhlZFRvMTAwKCl7cmV0dXJuIHRoaXMuX3Byb3BlcnRpZXMuY2hpbGRzKCkuaW5kZXhlZFRvMTAwLnZhbHVlKCl9aXNBdXRvU2NhbGUoKXtyZXR1cm4gdGhpcy5fcHJvcGVydGllcy5jaGlsZHMoKS5hdXRvU2NhbGUudmFsdWUoKSYmIXRoaXMuaXNMb2NrU2NhbGUoKX1pc0xvY2tTY2FsZSgpe3JldHVybiB0aGlzLl9wcm9wZXJ0aWVzLmNoaWxkcygpLmxvY2tTY2FsZS52YWx1ZSgpfWlzUmVndWxhcigpe3JldHVybiF0aGlzLmlzUGVyY2VudGFnZSgpJiYhdGhpcy5pc0xvZygpJiYhdGhpcy5pc0luZGV4ZWRUbzEwMCgpfWlzU2NhbGVTZXJpZXNPbmx5KCl7cmV0dXJuIHRoaXMuX3NjYWxlU2VyaWVzT25seX1wcm9wZXJ0aWVzKCl7cmV0dXJuIHRoaXMuX3Byb3BlcnRpZXN9aGVpZ2h0KCl7cmV0dXJuIHRoaXMubV9oZWlnaHR9c2V0SGVpZ2h0KGUpe3RoaXMubV9oZWlnaHQhPT1lJiYodGhpcy5tX2hlaWdodD1lLHRoaXMuX2ludmFsaWRhdGVJbnRlcm5hbEhlaWdodENhY2hlKCksdGhpcy5fbWFya3NDYWNoZT1udWxsKX1pbnRlcm5hbEhlaWdodCgpe2lmKHRoaXMuX2ludGVybmFsSGVpZ2h0Q2FjaGUpcmV0dXJuIHRoaXMuX2ludGVybmFsSGVpZ2h0Q2FjaGU7Y29uc3QgZT10aGlzLmhlaWdodCgpLXRoaXMudG9wUGl4ZWxNYXJnaW4oKS10aGlzLmJvdHRvbVBpeGVsTWFyZ2luKCk7cmV0dXJuIHRoaXMuX2ludGVybmFsSGVpZ2h0Q2FjaGU9ZSxlfWZvbnRTaXplKCl7cmV0dXJuIHRoaXMuX3NjYWxlc1Byb3BlcnRpZXMuY2hpbGRzKCkuZm9udFNpemUudmFsdWUoKX1wcmljZVJhbmdlKCl7cmV0dXJuIHRoaXMuX21ha2VTdXJlSXRJc1ZhbGlkKCksdGhpcy5fcHJpY2VSYW5nZX1zZXRQcmljZVJhbmdlKGUsdCxpKXtpZighKGUgaW5zdGFuY2VvZiBQbC5QcmljZVJhbmdlKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJpbmNvcnJlY3QgcHJpY2UgcmFuZ2UiKTtjb25zdCBzPXRoaXMuX3ByaWNlUmFuZ2U7aWYoIXQmJlBsLlByaWNlUmFuZ2UuY29tcGFyZShzLGUpKXJldHVybjtjb25zdCBuPW51bGwhPT10aGlzLl9tYXhQcmljZVJhbmdlJiZ0aGlzLl9tYXhQcmljZVJhbmdlLmNvbnRhaW5zU3RyaWN0bHkoZSkscj1udWxsIT09dGhpcy5fbWluUHJpY2VSYW5nZSYmZS5jb250YWluc1N0cmljdGx5KHRoaXMuX21pblByaWNlUmFuZ2UpO3RoaXMuaXNMb2NrU2NhbGUoKSYmIXQmJihufHxyKXx8KHRoaXMuX21hcmtzQ2FjaGU9bnVsbCx0aGlzLl9wcmljZVJhbmdlPWUsaXx8dGhpcy5fcHJpY2VSYW5nZUNoYW5nZWQuZmlyZShzLGUpLHRoaXMudXBkYXRlQWxsVmlld3MoKDAsdG4udmlld3BvcnRDaGFuZ2VFdmVudCkoKSkpfXNldE1pblByaWNlUmFuZ2UoZSl7dGhpcy5fbWluUHJpY2VSYW5nZT1lfXNldE1heFByaWNlUmFuZ2UoZSl7dGhpcy5fbWF4UHJpY2VSYW5nZT1lfXJlY2FsY3VsYXRlUHJpY2VSYW5nZU9uY2UoKXt0aGlzLl9yZWNhbGN1bGF0ZVByaWNlUmFuZ2VPbmNlPSEwfXByaWNlUmFuZ2VTaG91bGRCZVJlY2FsY3VsYXRlZE9uY2UoKXtpZighdGhpcy5fcmVjYWxjdWxhdGVQcmljZVJhbmdlT25jZXx8dGhpcy5pc0xvY2tTY2FsZSgpKXJldHVybiExO2NvbnN0IGU9dGhpcy5tYWluU291cmNlKCkKO3JldHVybiBudWxsIT09ZSYmZS5wcmljZVJhbmdlUmVhZHkoKX1wcmljZVJhbmdlQ2hhbmdlZCgpe3JldHVybiB0aGlzLl9wcmljZVJhbmdlQ2hhbmdlZH1tb2RlKCl7Y29uc3QgZT10aGlzLl9wcm9wZXJ0aWVzLmNoaWxkcygpO3JldHVybnthdXRvU2NhbGU6ZS5hdXRvU2NhbGUudmFsdWUoKSxsb2NrU2NhbGU6ZS5sb2NrU2NhbGUudmFsdWUoKSxwZXJjZW50YWdlOmUucGVyY2VudGFnZS52YWx1ZSgpLGluZGV4ZWRUbzEwMDplLmluZGV4ZWRUbzEwMC52YWx1ZSgpLGxvZzplLmxvZy52YWx1ZSgpfX1zZXRNb2RlKGUpe2NvbnN0IHQ9e30saT10aGlzLm1vZGUoKSxzPXRoaXMuX3Byb3BlcnRpZXMuc3RhdGUoKTtsZXQgbj1udWxsO3ZvaWQgMCE9PWUuYXV0b1NjYWxlJiZlLmF1dG9TY2FsZSE9PXMuYXV0b1NjYWxlJiYodC5hdXRvU2NhbGU9ZS5hdXRvU2NhbGUsdGhpcy5fc2V0QXV0b1NjYWxlVmFsdWVXaXRoRGVwZW5kZW50UHJvcGVydGllcyhlLmF1dG9TY2FsZSkpLHZvaWQgMCE9PWUubG9ja1NjYWxlJiZlLmxvY2tTY2FsZSE9PXMubG9ja1NjYWxlJiYodC5sb2NrU2NhbGU9ZS5sb2NrU2NhbGUsdGhpcy5fc2V0TG9ja1NjYWxlVmFsdWVXaXRoRGVwZW5kZW50UHJvcGVydGllcyhlLmxvY2tTY2FsZSkpLHZvaWQgMCE9PWUucGVyY2VudGFnZSYmZS5wZXJjZW50YWdlIT09cy5wZXJjZW50YWdlJiYodC5wZXJjZW50YWdlPWUucGVyY2VudGFnZSx0aGlzLl9zZXRQZXJjZW50YWdlVmFsdWVXaXRoRGVwZW5kZW50UHJvcGVydGllcyhlLnBlcmNlbnRhZ2UpLHRoaXMuX2ludmFsaWRhdGVkRm9yUmFuZ2UuaXNWYWxpZD0hMSksdm9pZCAwIT09ZS5pbmRleGVkVG8xMDAmJmUuaW5kZXhlZFRvMTAwIT09cy5pbmRleGVkVG8xMDAmJih0LmluZGV4ZWRUbzEwMD1lLmluZGV4ZWRUbzEwMCx0aGlzLl9zZXRJbmRleGVkVG8xMDBWYWx1ZVdpdGhEZXBlbmRlbnRQcm9wZXJ0aWVzKGUuaW5kZXhlZFRvMTAwKSx0aGlzLl9pbnZhbGlkYXRlZEZvclJhbmdlLmlzVmFsaWQ9ITEpLHZvaWQgMCE9PWUubG9nJiZlLmxvZyE9PXMubG9nJiYodC5sb2c9ZS5sb2csdGhpcy5fc2V0TG9nVmFsdWVXaXRoRGVwZW5kZW50UHJvcGVydGllcyhlLmxvZykpO2NvbnN0IHI9dGhpcy5fcHJvcGVydGllcy5jaGlsZHMoKTtzLmxvZyYmIXIubG9nLnZhbHVlKCkmJih0aGlzLl9jYW5Db252ZXJ0UHJpY2VSYW5nZUZyb21Mb2codGhpcy5fcHJpY2VSYW5nZSk/KG49dGhpcy5fY29udmVydFByaWNlUmFuZ2VGcm9tTG9nKHRoaXMuX3ByaWNlUmFuZ2UpLG51bGwhPT1uJiZ0aGlzLnNldFByaWNlUmFuZ2UobikpOnIuYXV0b1NjYWxlLnNldFZhbHVlKCEwKSksIXMubG9nJiZyLmxvZy52YWx1ZSgpJiYobj10aGlzLl9jb252ZXJ0UHJpY2VSYW5nZVRvTG9nKHRoaXMuX3ByaWNlUmFuZ2UpLG51bGwhPT1uJiZ0aGlzLnNldFByaWNlUmFuZ2UobikpLHMuYXV0b1NjYWxlIT09ci5hdXRvU2NhbGUudmFsdWUoKSYmci5hdXRvU2NhbGUuZmlyZUNoYW5nZWQoKSxzLmF1dG9TY2FsZURpc2FibGVkIT09ci5hdXRvU2NhbGVEaXNhYmxlZC52YWx1ZSgpJiZyLmF1dG9TY2FsZURpc2FibGVkLmZpcmVDaGFuZ2VkKCkscy5sb2NrU2NhbGUhPT1yLmxvY2tTY2FsZS52YWx1ZSgpJiZyLmxvY2tTY2FsZS5maXJlQ2hhbmdlZCgpLHMucGVyY2VudGFnZSE9PXIucGVyY2VudGFnZS52YWx1ZSgpJiYoci5wZXJjZW50YWdlLmZpcmVDaGFuZ2VkKCksdGhpcy51cGRhdGVGb3JtYXR0ZXIoKSkscy5pbmRleGVkVG8xMDAhPT1yLmluZGV4ZWRUbzEwMC52YWx1ZSgpJiYoci5pbmRleGVkVG8xMDAuZmlyZUNoYW5nZWQoKSx0aGlzLnVwZGF0ZUZvcm1hdHRlcigpKSxzLnBlcmNlbnRhZ2VEaXNhYmxlZCE9PXIucGVyY2VudGFnZURpc2FibGVkLnZhbHVlKCkmJnIucGVyY2VudGFnZURpc2FibGVkLmZpcmVDaGFuZ2VkKCkscy5sb2chPT1yLmxvZy52YWx1ZSgpJiZyLmxvZy5maXJlQ2hhbmdlZCgpLHMubG9nRGlzYWJsZWQhPT1yLmxvZ0Rpc2FibGVkLnZhbHVlKCkmJnIubG9nRGlzYWJsZWQuZmlyZUNoYW5nZWQoKSx2b2lkIDA9PT10LmxvZyYmdm9pZCAwPT09dC5wZXJjZW50YWdlJiZ2b2lkIDA9PT10LmxvY2tTY2FsZSYmdm9pZCAwPT09dC5hdXRvU2NhbGUmJnZvaWQgMD09PXQuaW5kZXhlZFRvMTAwfHx0aGlzLl9tb2RlQ2hhbmdlZC5maXJlKGksdGhpcy5tb2RlKCkpfW1vZGVDaGFuZ2VkKCl7cmV0dXJuIHRoaXMuX21vZGVDaGFuZ2VkfWlzRW1wdHkoKXtyZXR1cm4gdGhpcy5fbWFrZVN1cmVJdElzVmFsaWQoKSwwPT09dGhpcy5tX2hlaWdodHx8IXRoaXMuX3ByaWNlUmFuZ2V8fHRoaXMuX3ByaWNlUmFuZ2UuaXNFbXB0eSgpfWhhc0NhbGN1bGF0ZWRQcmljZVJhbmdlKCl7cmV0dXJuIHRoaXMuX2hhc0NhbGN1bGF0ZWRQcmljZVJhbmdlfWNhbkRldGFjaFNvdXJjZShlKXtyZXR1cm4gdGhpcy5tX2RhdGFTb3VyY2VzLnNvbWUoKHQ9PnQhPT1lJiYhc2kodCkmJigwLEhzLmlzUHJpY2VEYXRhU291cmNlKSh0KSYmISgoMCx0aS5pc1N0dWR5KSh0KSYmdC5pc0xpbmtlZFRvU2VyaWVzKCkpKSl9dXBkYXRlQWxsVmlld3MoZSl7Y29uc3QgdD10aGlzLl9nZXRTb3VyY2VzVG9VcGRhdGVWaWV3cygpO2Zvcihjb25zdCBpIG9mIHQpaS51cGRhdGVBbGxWaWV3cyhlKX1sb2dGb3JtdWxhKCl7cmV0dXJuIHRoaXMuX2xvZ0Zvcm11bGF9c3RhdGUoKXtjb25zdCBlPXRoaXMuX3Byb3BlcnRpZXMuY2hpbGRzKCk7cmV0dXJue2lkOnRoaXMuX2lkLG1fcHJpY2VSYW5nZTp0aGlzLmlzQXV0b1NjYWxlKCk/bnVsbDp0aGlzLnByaWNlUmFuZ2UoKT8uc2VyaWFsaXplKCl8fG51bGwsbV9pc0F1dG9TY2FsZTp0aGlzLmlzQXV0b1NjYWxlKCksbV9pc1BlcmNlbnRhZ2U6ZS5wZXJjZW50YWdlLnZhbHVlKCksbV9pc0luZGV4ZWRUbzEwMDplLmluZGV4ZWRUbzEwMC52YWx1ZSgpLG1faXNMb2c6ZS5sb2cudmFsdWUoKSxtX2lzTG9ja1NjYWxlOnRoaXMuaXNMb2NrU2NhbGUoKSxtX2lzSW52ZXJ0ZWQ6dGhpcy5pc0ludmVydGVkKCksbV90b3BNYXJnaW46dGhpcy5fbWFyZ2lucy50b3AsbV9ib3R0b21NYXJnaW46dGhpcy5fbWFyZ2lucy5ib3R0b20sYWxpZ25MYWJlbHM6ZS5hbGlnbkxhYmVscy52YWx1ZSgpLApsb2dGb3JtdWxhOigwLGEuY2xvbmUpKHRoaXMuX2xvZ0Zvcm11bGEpLGhhc0NhbGN1bGF0ZWRQcmljZVJhbmdlOnRoaXMuX2hhc0NhbGN1bGF0ZWRQcmljZVJhbmdlfX1yZXN0b3JlU3RhdGUoZSl7bGV0IHQ9ZS5tX3ByaWNlUmFuZ2U7aWYodm9pZCAwPT09dCl0aHJvdyBuZXcgVHlwZUVycm9yKCJpbnZhbGlkIHN0YXRlIik7aWYodm9pZCAwPT09ZS5tX2lzQXV0b1NjYWxlKXRocm93IG5ldyBUeXBlRXJyb3IoImludmFsaWQgc3RhdGUiKTt2b2lkIDAhPT1lLmlkJiYodGhpcy5faWQ9ZS5pZCk7Y29uc3QgaT17YXV0b1NjYWxlOmUubV9pc0F1dG9TY2FsZX07dm9pZCAwIT09ZS5tX2lzUGVyY2VudGFnZSYmKGkucGVyY2VudGFnZT1lLm1faXNQZXJjZW50YWdlKSx2b2lkIDAhPT1lLm1faXNJbmRleGVkVG8xMDAmJihpLmluZGV4ZWRUbzEwMD1lLm1faXNJbmRleGVkVG8xMDApLHZvaWQgMCE9PWUubV9pc0xvZyYmKGkubG9nPWUubV9pc0xvZyksdm9pZCAwIT09ZS5tX2lzTG9ja1NjYWxlJiYoaS5sb2NrU2NhbGU9ZS5tX2lzTG9ja1NjYWxlKSx2b2lkIDAhPT1lLm1faXNJbnZlcnRlZCYmdGhpcy5fcHJvcGVydGllcy5jaGlsZHMoKS5pc0ludmVydGVkLnNldFZhbHVlKGUubV9pc0ludmVydGVkKSx0aGlzLnNldE1vZGUoaSksdGhpcy5faGFzQ2FsY3VsYXRlZFByaWNlUmFuZ2U9ZS5oYXNDYWxjdWxhdGVkUHJpY2VSYW5nZT8/bnVsbCE9PXQsdD8odCBpbnN0YW5jZW9mIFBsLlByaWNlUmFuZ2V8fCh0PW5ldyBQbC5QcmljZVJhbmdlKHQpKSx0aGlzLnNldFByaWNlUmFuZ2UodCwhMCkpOnRoaXMuY2xlYXJQcmljZVJhbmdlKCksZS5sb2dGb3JtdWxhJiYodGhpcy5fbG9nRm9ybXVsYT1lLmxvZ0Zvcm11bGEpLHZvaWQgMCE9PWUubV90b3BNYXJnaW4mJih0aGlzLl9tYXJnaW5zLnRvcD1lLm1fdG9wTWFyZ2luKSx2b2lkIDAhPT1lLm1fYm90dG9tTWFyZ2luJiYodGhpcy5fbWFyZ2lucy5ib3R0b209ZS5tX2JvdHRvbU1hcmdpbiksdm9pZCAwIT09ZS5hbGlnbkxhYmVscyYmdGhpcy5fcHJvcGVydGllcy5jaGlsZHMoKS5hbGlnbkxhYmVscy5zZXRWYWx1ZShlLmFsaWduTGFiZWxzKSx0aGlzLl9tYWluU291cmNlPW51bGwsdGhpcy5fc2NhbGVTZXJpZXNPbmx5PSExfXByaWNlVG9Mb2dpY2FsKGUpe3JldHVybiB0aGlzLmlzTG9nKCkmJmU/KDAsVGwudG9Mb2cpKGUsdGhpcy5fbG9nRm9ybXVsYSk6ZX1sb2dpY2FsVG9QcmljZShlKXtyZXR1cm4gdGhpcy5pc0xvZygpPygwLFRsLmZyb21Mb2cpKGUsdGhpcy5fbG9nRm9ybXVsYSk6ZX1wb3NpdGlvblBlcmNlbnRUb0Nvb3JkaW5hdGUoZSl7cmV0dXJuIHRoaXMuaGVpZ2h0KCkqZX1wcmljZVRvQ29vcmRpbmF0ZShlLHQpe2NvbnN0IGk9dGhpcy5fcHJpY2VUb1BlcmNlbnRPckluZGV4ZWRUbzEwMElmTmVlZGVkKGUsdCk7cmV0dXJuIHRoaXMuX2xvZ2ljYWxUb0Nvb3JkaW5hdGUoaSl9Y29vcmRpbmF0ZVRvUHJpY2UoZSx0KXtsZXQgaT10aGlzLl9jb29yZGluYXRlVG9Mb2dpY2FsKGUpO3JldHVybiB0aGlzLmlzUGVyY2VudGFnZSgpP2k9KDAsVGwuZnJvbVBlcmNlbnQpKGksdCk6dGhpcy5pc0luZGV4ZWRUbzEwMCgpJiYoaT0oMCxUbC5mcm9tSW5kZXhlZFRvMTAwKShpLHQpKSxpfW1haW5Tb3VyY2UoKXtpZihudWxsIT09dGhpcy5fbWFpblNvdXJjZSlyZXR1cm4gdGhpcy5fbWFpblNvdXJjZTtsZXQgZTtmb3IoY29uc3QgdCBvZiB0aGlzLl9wcmljZURhdGFTb3VyY2VzKXtpZigoMCxmbC5pc1NlcmllcykodCkpe2U9dDticmVha31lfHwoZT10KX1yZXR1cm4gdGhpcy5fbWFpblNvdXJjZT1lfHxudWxsLHRoaXMuX2NvcnJlY3RlZE1hcmdpbnNDYWNoZT1udWxsLHRoaXMuX21haW5Tb3VyY2V9cHJpY2VUb0Nvb3JkaW5hdGVGbihlKXt0aGlzLl9tYWtlU3VyZUl0SXNWYWxpZCgpO2NvbnN0IHQ9dGhpcy5ib3R0b21QaXhlbE1hcmdpbigpLGk9KDAsbC5lbnN1cmVOb3ROdWxsKSh0aGlzLnByaWNlUmFuZ2UoKSkscz1pLm1pblZhbHVlKCksbj1pLm1heFZhbHVlKCkscj10aGlzLmludGVybmFsSGVpZ2h0KCktMSxvPXRoaXMuaXNJbnZlcnRlZCgpLGE9ci8obi1zKSxjPXRoaXMubV9oZWlnaHQsaD1lPT57Y29uc3QgaT10K2EqKGUtcyk7cmV0dXJuIG8/aTpjLTEtaX07cmV0dXJuIHRoaXMuaXNQZXJjZW50YWdlKCk/dD0+aCgoMCxUbC50b1BlcmNlbnQpKHQsZSkpOnRoaXMuaXNJbmRleGVkVG8xMDAoKT90PT5oKCgwLFRsLnRvSW5kZXhlZFRvMTAwKSh0LGUpKTp0aGlzLmlzTG9nKCk/ZT0+aCgoMCxUbC50b0xvZykoZSx0aGlzLl9sb2dGb3JtdWxhKSk6ZT0+aChlKX1wcmljZXNBcnJheVRvQ29vcmRpbmF0ZXMoZSx0LGkpe3RoaXMuX21ha2VTdXJlSXRJc1ZhbGlkKCk7Y29uc3Qgcz10aGlzLmJvdHRvbVBpeGVsTWFyZ2luKCksbj0oMCxsLmVuc3VyZU5vdE51bGwpKHRoaXMucHJpY2VSYW5nZSgpKSxyPW4ubWluVmFsdWUoKSxvPW4ubWF4VmFsdWUoKSxhPXRoaXMuaW50ZXJuYWxIZWlnaHQoKS0xLGM9dGhpcy5pc0ludmVydGVkKCksaD1hLyhvLXIpO3ZvaWQgMD09PWkmJihpPWUubGVuZ3RoKTtjb25zdCBkPXRoaXMuaXNQZXJjZW50YWdlKCksdT10aGlzLmlzSW5kZXhlZFRvMTAwKCkscD10aGlzLmlzTG9nKCksXz10aGlzLm1faGVpZ2h0O2xldCBtLGc7Zm9yKGxldCBuPTA7bjxpO24rKyltPWVbbl0sTnVtYmVyLmlzRmluaXRlKG0pJiYoZD9tPSgwLFRsLnRvUGVyY2VudCkobSx0KTp1P209KDAsVGwudG9JbmRleGVkVG8xMDApKG0sdCk6cCYmKG09KDAsVGwudG9Mb2cpKG0sdGhpcy5fbG9nRm9ybXVsYSkpLGc9cytoKihtLXIpLGVbbl09Yz9nOl8tMS1nKX1maWxsWUNvb3JkaW5hdGVzKGUsdCxpKXt0aGlzLl9tYWtlU3VyZUl0SXNWYWxpZCgpO2NvbnN0IHM9KDAsbC5lbnN1cmVOb3ROdWxsKSh0aGlzLnByaWNlUmFuZ2UoKSksbj10aGlzLmJvdHRvbVBpeGVsTWFyZ2luKCkscj1zLm1pblZhbHVlKCksbz1zLm1heFZhbHVlKCksYT10aGlzLmludGVybmFsSGVpZ2h0KCktMSxjPXRoaXMuaXNJbnZlcnRlZCgpLGg9YS8oby1yKSxkPWk/LnN0YXJ0SXRlbUluZGV4Pz8wLHU9aT8uZW5kSXRlbUluZGV4Pz9lLmxlbmd0aAo7aWYodGhpcy5pc1BlcmNlbnRhZ2UoKSlmb3IobGV0IGk9ZDtpPHU7aSsrKWVbaV0ueT0oMCxUbC50b1BlcmNlbnQpKGVbaV0ucHJpY2UsdCk7ZWxzZSBpZih0aGlzLmlzSW5kZXhlZFRvMTAwKCkpZm9yKGxldCBpPWQ7aTx1O2krKyllW2ldLnk9KDAsVGwudG9JbmRleGVkVG8xMDApKGVbaV0ucHJpY2UsdCk7ZWxzZSBpZih0aGlzLmlzTG9nKCkpZm9yKGxldCB0PWQ7dDx1O3QrKyllW3RdLnk9dGhpcy5wcmljZVRvTG9naWNhbChlW3RdLnByaWNlKTtlbHNlIGZvcihsZXQgdD1kO3Q8dTt0KyspZVt0XS55PWVbdF0ucHJpY2U7Zm9yKGxldCB0PWQ7dDx1O3QrKyl7Y29uc3QgaT1lW3RdLnk7aWYoaXNOYU4oaSl8fG51bGw9PWkpY29udGludWU7Y29uc3Qgcz1uK2gqKGktcik7ZVt0XS55PWM/czp0aGlzLm1faGVpZ2h0LTEtc319YmFyUHJpY2VzVG9Db29yZGluYXRlcyhlLHQpe3RoaXMuX21ha2VTdXJlSXRJc1ZhbGlkKCk7Y29uc3QgaT0oMCxsLmVuc3VyZU5vdE51bGwpKHRoaXMucHJpY2VSYW5nZSgpKSxzPWUsbj10aGlzLmJvdHRvbVBpeGVsTWFyZ2luKCkscj1pLm1pblZhbHVlKCksbz1pLm1heFZhbHVlKCksYT10aGlzLmludGVybmFsSGVpZ2h0KCktMTtsZXQgYz1udWxsO2lmKHRoaXMuaXNQZXJjZW50YWdlKCk/Yz1UbC50b1BlcmNlbnQ6dGhpcy5pc0luZGV4ZWRUbzEwMCgpP2M9VGwudG9JbmRleGVkVG8xMDA6dGhpcy5pc0xvZygpJiYoYz0oZSx0KT0+ZT8oMCxUbC50b0xvZykoZSx0aGlzLl9sb2dGb3JtdWxhKTplKSwwPT09cy5sZW5ndGgpcmV0dXJuO2NvbnN0IGg9Im9wZW4iaW4gc1swXSxkPSJjbG9zZSJpbiBzWzBdO2lmKG51bGwhPT1jKWZvcihsZXQgZT0wO2U8cy5sZW5ndGg7ZSsrKXtpZighc1tlXSljb250aW51ZTtjb25zdCBpPXNbZV07aCYmKGkub3Blbj1jKGkub3Blbix0KSksaS5oaWdoPWMoaS5oaWdoLHQpLGkubG93PWMoaS5sb3csdCksZCYmKGkuY2xvc2U9YyhpLmNsb3NlLHQpKSx2b2lkIDAhPT1pLmFkZGl0aW9uYWxQcmljZSYmKGkuYWRkaXRpb25hbFByaWNlPWMoaS5hZGRpdGlvbmFsUHJpY2UsdCkpfWNvbnN0IHU9YS8oby1yKSxwPXRoaXMuaXNJbnZlcnRlZCgpO2ZvcihsZXQgZT0wO2U8cy5sZW5ndGg7ZSsrKXtjb25zdCB0PXNbZV07aWYoIXQpY29udGludWU7aWYoaCl7Y29uc3QgZT1uK3UqKHQub3Blbi1yKSxpPXA/ZTp0aGlzLm1faGVpZ2h0LTEtZTt0Lm9wZW49aX1jb25zdCBpPW4rdSoodC5oaWdoLXIpLG89cD9pOnRoaXMubV9oZWlnaHQtMS1pO3QuaGlnaD1vO2NvbnN0IGE9bit1Kih0Lmxvdy1yKSxsPXA/YTp0aGlzLm1faGVpZ2h0LTEtYTtpZih0Lmxvdz1sLGQpe2NvbnN0IGU9bit1Kih0LmNsb3NlLXIpLGk9cD9lOnRoaXMubV9oZWlnaHQtMS1lO3QuY2xvc2U9aX1pZih2b2lkIDAhPT10LmFkZGl0aW9uYWxQcmljZSl7Y29uc3QgZT1uK3UqKHQuYWRkaXRpb25hbFByaWNlLXIpO3QuYWRkaXRpb25hbFByaWNlPXA/ZTp0aGlzLm1faGVpZ2h0LTEtZX19fWZvcm1hdHRlcigpe3JldHVybiBudWxsPT09dGhpcy5fZm9ybWF0dGVyJiZ0aGlzLnVwZGF0ZUZvcm1hdHRlcigpLCgwLGwuZW5zdXJlTm90TnVsbCkodGhpcy5fZm9ybWF0dGVyKX11cGRhdGVGb3JtYXR0ZXIoKXt0aGlzLl9tYXJrc0NhY2hlPW51bGw7Y29uc3QgZT10aGlzLm1haW5Tb3VyY2UoKTtsZXQgdD0xMDA7ZSYmKHQ9ZS5iYXNlKCkpLHRoaXMuX2Zvcm1hdHRlcj1udWxsLHRoaXMuaXNQZXJjZW50YWdlKCk/KHRoaXMuX2Zvcm1hdHRlcj1XbCx0PTEwMCk6dGhpcy5pc0luZGV4ZWRUbzEwMCgpPyh0aGlzLl9mb3JtYXR0ZXI9RmwsdD0xMDApOnRoaXMuX2Zvcm1hdHRlcj1lP2UuZm9ybWF0dGVyKCk6RmwsdGhpcy5fbWFya0J1aWxkZXI9bmV3IEJsKHRoaXMsdCx0aGlzLl9jb29yZGluYXRlVG9Mb2dpY2FsLmJpbmQodGhpcyksdGhpcy5fbG9naWNhbFRvQ29vcmRpbmF0ZS5iaW5kKHRoaXMpKSx0aGlzLl9tYXJrQnVpbGRlci5yZWJ1aWxkVGlja01hcmtzKCl9Zm9ybWF0UHJpY2UoZSx0LGkpe3JldHVybiB0aGlzLmlzUGVyY2VudGFnZSgpP3RoaXMuZm9ybWF0UHJpY2VQZXJjZW50YWdlKGUsdCxpKTp0aGlzLmlzSW5kZXhlZFRvMTAwKCk/dGhpcy5mb3JtYXRQcmljZUluZGV4ZWRUbzEwMChlLHQsaSk6dGhpcy5mb3JtYXR0ZXIoKS5mb3JtYXQoZSxpKX1mb3JtYXRQcmljZUFic29sdXRlKGUsdCl7cmV0dXJuIHRoaXMuX21haW5Tb3VyY2VGb3JtYXR0ZXIoKS5mb3JtYXQoZSx0KX1mb3JtYXRQcmljZVBlcmNlbnRhZ2UoZSx0LGkpe3JldHVybiBlPSgwLFRsLnRvUGVyY2VudCkoZSx0KSxXbC5mb3JtYXQoZSxpKX1mb3JtYXRQcmljZUluZGV4ZWRUbzEwMChlLHQsaSl7Y29uc3Qgcz0oMCxUbC50b0luZGV4ZWRUbzEwMCkoZSx0KTtyZXR1cm4gdGhpcy5mb3JtYXR0ZXIoKS5mb3JtYXQocyxpKX1nZXRGb3JtYXR0ZWRWYWx1ZXMoZSx0LGkscyl7cz8/PXRoaXMuZm9ybWF0UHJpY2VBYnNvbHV0ZShlKTtjb25zdCBuPXRoaXMuZm9ybWF0UHJpY2VQZXJjZW50YWdlKGUsdCx7c2lnblBvc2l0aXZlOml9KSxyPXRoaXMuZm9ybWF0UHJpY2VJbmRleGVkVG8xMDAoZSx0KTtyZXR1cm57Zm9ybWF0dGVkUHJpY2VBYnNvbHV0ZTpzLGZvcm1hdHRlZFByaWNlUGVyY2VudGFnZTpuLGZvcm1hdHRlZFByaWNlSW5kZXhlZFRvMTAwOnIsdGV4dDooMCxUbC5nZXRDdXJyZW50TW9kZVByaWNlVGV4dCkodGhpcyx7Zm9ybWF0dGVkUHJpY2VBYnNvbHV0ZTpzLGZvcm1hdHRlZFByaWNlUGVyY2VudGFnZTpuLGZvcm1hdHRlZFByaWNlSW5kZXhlZFRvMTAwOnJ9KX19cmVzZXRTY2FsZSgpe3RoaXMuc2V0TW9kZSh7YXV0b1NjYWxlOiEwfSl9cmVzZXRTY2FsZUF2YWlsYWJsZSgpe3JldHVybiB0aGlzLl9yZXNldFNjYWxlQXZhaWxhYmxlLnJlYWRvbmx5KCl9ZGF0YVNvdXJjZXMoKXtyZXR1cm4gdGhpcy5tX2RhdGFTb3VyY2VzfXByaWNlRGF0YVNvdXJjZXMoKXtyZXR1cm4gdGhpcy5fcHJpY2VEYXRhU291cmNlc31zZXJpZXNMaWtlU291cmNlcygpe3JldHVybiB0aGlzLl9zZXJpZXNMaWtlU291cmNlc31hZGREYXRhU291cmNlKGUsdCl7dGhpcy5fYWRkRGF0YVNvdXJjZUltcGwoZSx0KX1yZW1vdmVEYXRhU291cmNlKGUpewpjb25zdCB0PXRoaXMubV9kYXRhU291cmNlcy5pbmRleE9mKGUpO2lmKCgwLGwuYXNzZXJ0KSgtMSE9PXQsIlNvdXJjZSBpcyBub3QgYXR0YWNoZWQgdG8gc2NhbGUiKSx0aGlzLm1fZGF0YVNvdXJjZXMuc3BsaWNlKHQsMSksKDAsSHMuaXNQcmljZURhdGFTb3VyY2UpKGUpKXtjb25zdCB0PXRoaXMuX3ByaWNlRGF0YVNvdXJjZXMuaW5kZXhPZihlKTtpZigoMCxsLmFzc2VydCkoLTEhPT10LCJTb3VyY2UgaXMgbm90IGZvdW5kIiksdGhpcy5fcHJpY2VEYXRhU291cmNlcy5zcGxpY2UodCwxKSxlLmN1cnJlbmN5T3JpZ2luU291cmNlKCkudW5zdWJzY3JpYmUodGhpcy5fZHJvcFNjYWxlQ2FjaGUpLGUuY3VycmVuY3lNZXRhZGF0YSgpLnVuc3Vic2NyaWJlKHRoaXMuX2Ryb3BTY2FsZUNhY2hlKSxlLnVuaXRPcmlnaW5Tb3VyY2UoKS51bnN1YnNjcmliZSh0aGlzLl9kcm9wU2NhbGVDYWNoZSksZS51bml0TWV0YWRhdGEoKS51bnN1YnNjcmliZSh0aGlzLl9kcm9wU2NhbGVDYWNoZSksKDAsSW8uaXNTeW1ib2xTb3VyY2UpKGUpKXtjb25zdCB0PXRoaXMuX3Nlcmllc0xpa2VTb3VyY2VzLmluZGV4T2YoZSk7KDAsbC5hc3NlcnQpKC0xIT09dCwiU291cmNlIGlzIG5vdCBmb3VuZCIpLHRoaXMuX3Nlcmllc0xpa2VTb3VyY2VzLnNwbGljZSh0LDEpLGUuc3ltYm9sUmVzb2x2ZWQoKS51bnN1YnNjcmliZUFsbCh0aGlzKSwoMCxmbC5pc1NlcmllcykoZSkmJih0aGlzLl9oYXNTZXJpZXM9ITEpfWUuY3VycmVuY3lDaGFuZ2VkKCkudW5zdWJzY3JpYmVBbGwodGhpcyksZS51bml0Q2hhbmdlZCgpLnVuc3Vic2NyaWJlQWxsKHRoaXMpfXRoaXMubWFpblNvdXJjZSgpfHx0aGlzLnNldE1vZGUoe2F1dG9TY2FsZTohMH0pLCgwLHRpLmlzU3R1ZHkpKGUpJiYoZS5vbklzQWN0dWFsSW50ZXJ2YWxDaGFuZ2UoKS51bnN1YnNjcmliZSh0aGlzLHRoaXMuX2Ryb3BTY2FsZUNhY2hlKSxlLm9uSGliZXJuYXRpb25TdGF0ZUNoYW5nZSgpLnVuc3Vic2NyaWJlKHRoaXMsdGhpcy5fZHJvcFNjYWxlQ2FjaGUpLGUucHJvcGVydGllcygpLmNoaWxkcygpLnN0eWxlcy51bnN1YnNjcmliZSh0aGlzLHRoaXMuX2Ryb3BTY2FsZUNhY2hlKSx0aGlzLl9zdHVkaWVzQ291bnQtLSwwPT09dGhpcy5fc3R1ZGllc0NvdW50JiYoMCxULmhpZGVBbGxJbmRpY2F0b3JzKSgpLnVuc3Vic2NyaWJlKHRoaXMsdGhpcy5fZHJvcFNjYWxlQ2FjaGUpKSwoMCxyaS5pc0xpbmVUb29sKShlKSYmKHRoaXMuX2RyYXdpbmdDb3VudC0tLDA9PT10aGlzLl9kcmF3aW5nQ291bnQmJigwLFQuaGlkZUFsbERyYXdpbmdzKSgpLnVuc3Vic2NyaWJlKHRoaXMsdGhpcy5fZHJvcFNjYWxlQ2FjaGUpKTtjb25zdCBpPXRoaXMuX3NvdXJjZXNUaGF0QWZmZWN0VmlzaWJpbGl0eS5pbmRleE9mKGUpOy0xIT09aSYmKHRoaXMuX3NvdXJjZXNUaGF0QWZmZWN0VmlzaWJpbGl0eS5zcGxpY2UoaSwxKSxlLnByb3BlcnRpZXMoKS5jaGlsZHMoKS52aXNpYmxlLnVuc3Vic2NyaWJlKHRoaXMsdGhpcy5fb25Tb3VyY2VWaXNpYmlsaXR5Q2hhbmdlZCkpLGU9PT10aGlzLl9tYWluU291cmNlJiYodGhpcy5fY29ycmVjdGVkTWFyZ2luc0NhY2hlPW51bGwsdGhpcy5faW50ZXJuYWxIZWlnaHRDYWNoZT1udWxsLHRoaXMuX21hcmtzQ2FjaGU9bnVsbCksdGhpcy5fbWFpblNvdXJjZT1udWxsLHRoaXMuX2Ryb3BTY2FsZUNhY2hlKCksdGhpcy51cGRhdGVGb3JtYXR0ZXIoKSx0aGlzLmludmFsaWRhdGVTb3VyY2VzQ2FjaGUoKSx0aGlzLl91cGRhdGVJc1Zpc2libGUoKSx0aGlzLl91cGRhdGVMb2dGb3JtdWxhKCksMD09PXRoaXMubV9kYXRhU291cmNlcy5sZW5ndGgmJnRoaXMuX2xhc3RTb3VyY2VSZW1vdmVkLmZpcmUoKX1yZXBsYWNlU291cmNlKGUsdCl7Y29uc3QgaT0oMCxIcy5pc1ByaWNlRGF0YVNvdXJjZSkoZSk/dGhpcy5fcHJpY2VEYXRhU291cmNlcy5pbmRleE9mKGUpOnZvaWQgMDtyZXR1cm4gdGhpcy5fYWRkRGF0YVNvdXJjZUltcGwodCx2b2lkIDAsLTE9PT1pP3ZvaWQgMDppKSx0aGlzLnJlbW92ZURhdGFTb3VyY2UoZSksLTEhPT1pfWN1cnJlbmN5KGUpe2lmKG51bGw9PT1lKXJldHVybiBudWxsO2lmKG51bGwhPT10aGlzLl9jdXJyZW5jeUNhY2hlJiZlLnNpemUoKT09PXRoaXMuX2N1cnJlbmN5Q2FjaGUuYXZhaWxhYmxlQ3VycmVuY2llc0NvdW50KXJldHVybiB0aGlzLl9jdXJyZW5jeUNhY2hlLnZhbHVlO2xldCB0O2NvbnN0IGk9bmV3IFNldCxzPW5ldyBTZXQsbj1uZXcgU2V0LHI9bmV3IE1hcCxvPW5ldyBTZXQsYT10aGlzLl9wcmljZURhdGFTb3VyY2VzLmZpbHRlcih6bCk7bGV0IGwsYz0wPT09YS5sZW5ndGh8fGFbMF0ubW9kZWwoKS5yZWFkT25seSgpLGg9ITAsZD0wLHU9MDtmb3IoY29uc3QgdSBvZiBhKXtpZighdS5pc1Zpc2libGUoKSljb250aW51ZTtjb25zdCBhPXUuY3VycmVuY3lNZXRhZGF0YSgpLnZhbHVlKCk7aWYoIWEpe3Q9bnVsbDticmVha31jb25zdHtvcmlnaW5hbEN1cnJlbmN5OnAsaXNDdXJyZW5jeUNvbnZlcnRpYmxlOl8sY3VycmVuY3lPcmlnaW5OYW1lOm0sYmFzZUN1cnJlbmN5OmcsY3VycmVudEN1cnJlbmN5OmZ9PWE7aWYobnVsbD09PXApe3Q9bnVsbDticmVha31yLnNldChwLGUuaXRlbShwKT8uY29kZT8/cCksci5zZXQoZixlLml0ZW0oZik/LmNvZGU/P2YpLG51bGwhPT1nJiZzLmFkZChnKSxoPWgmJnA9PT1mLG4uYWRkKGYpLGkuYWRkKHApLHZvaWQgMD09PWw/bD1mOm51bGwhPT1sJiZsIT09ZiYmKGw9bnVsbCksY3x8ZS5jb252ZXJ0aWJsZShmKSYmX3x8KGM9ITApLGQrPTEsby5hZGQobSl9aWYobnVsbCE9PXQpe2NvbnN0IGk9dGhpcy5fcHJpY2VEYXRhU291cmNlcy5maWx0ZXIoVWwpO2Zvcihjb25zdCBzIG9mIGkpe2lmKCFzLmlzQ3VycmVuY3lTb3VyY2UoKXx8IXMuaXNWaXNpYmxlKCl8fHMuaXNGYWlsZWQoKSljb250aW51ZTtjb25zdCBpPXMuY3VycmVuY3lNZXRhZGF0YSgpLnZhbHVlKCk7aWYoIWkpe3Q9bnVsbDticmVha31jb25zdCBvPWkuY3VycmVudEN1cnJlbmN5O24uYWRkKG8pLHUrPTE7Y29uc3R7aXNDdXJyZW5jeUNvbnZlcnRpYmxlOmh9PWk7Y3x8ZS5jb252ZXJ0aWJsZShvKSYmaHx8KGM9ITApLApyLnNldChvLGUuaXRlbShvKT8uY29kZT8/byk7Y29uc3QgZD1zLmN1cnJlbmN5T3JpZ2luU291cmNlKCkudmFsdWUoKTtpZihhLmluY2x1ZGVzKGQpfHwoYz0hMCksdm9pZCAwPT09bClsPW87ZWxzZSBpZihudWxsIT09bCYmbCE9PW8pe2w9bnVsbDticmVha319fXJldHVybiB2b2lkIDA9PT10JiYodD0wPT09ZCYmMD09PXU/bnVsbDp7cmVhZE9ubHk6YyxzZWxlY3RlZEN1cnJlbmN5Omx8fG51bGwsY3VycmVuY2llczpuLG9yaWdpbmFsQ3VycmVuY2llczppLGJhc2VDdXJyZW5jaWVzOnMsb3JpZ2luU291cmNlc0NvdW50OmQsYWxsQ3VycmVuY2llc0FyZU9yaWdpbmFsOmgsZGlzcGxheWVkVmFsdWVzOnIsc3ltYm9sczpvfSksdGhpcy5fY3VycmVuY3lDYWNoZT17dmFsdWU6dCxhdmFpbGFibGVDdXJyZW5jaWVzQ291bnQ6ZS5zaXplKCl9LHR9dW5pdChlKXtpZihudWxsPT09ZSlyZXR1cm4gbnVsbDtpZihudWxsIT09dGhpcy5fdW5pdENhY2hlJiZlLnNpemUoKT09PXRoaXMuX3VuaXRDYWNoZS5hdmFpbGFibGVVbml0c0NvdW50KXJldHVybiB0aGlzLl91bml0Q2FjaGUudmFsdWU7bGV0IHQ7Y29uc3QgaT1uZXcgU2V0LHM9bmV3IFNldCxuPW5ldyBNYXAscj1uZXcgTWFwLG89bmV3IFNldCxhPXRoaXMuX3ByaWNlRGF0YVNvdXJjZXMuZmlsdGVyKEdsKTtsZXQgbCxjPTA9PT1hLmxlbmd0aHx8YVswXS5tb2RlbCgpLnJlYWRPbmx5KCk/bmV3IFNldDplLmFsbEdyb3VwcygpLGg9ITAsZD0wLHU9MDtmb3IoY29uc3QgdSBvZiBhKXtpZighdS5pc1Zpc2libGUoKSljb250aW51ZTtjb25zdCBhPXUudW5pdE1ldGFkYXRhKCkudmFsdWUoKTtpZighYSl7dD1udWxsO2JyZWFrfWNvbnN0e3VuaXRPcmlnaW5OYW1lOnAsY29udmVydGlibGVHcm91cHM6XyxvcmlnaW5hbFVuaXQ6bSxjdXJyZW50VW5pdDpmfT1hO2lmKG51bGw9PT1tKXt0PW51bGw7YnJlYWt9bi5zZXQobSxlLm5hbWUobSkpLHIuc2V0KG0sZS5kZXNjcmlwdGlvbihtKSksbi5zZXQoZixlLm5hbWUoZikpLHIuc2V0KGYsZS5kZXNjcmlwdGlvbihmKSksaD1oJiZtPT09ZixzLmFkZChmKSxpLmFkZChtKSx2b2lkIDA9PT1sP2w9ZjpudWxsIT09bCYmbCE9PWYmJihsPW51bGwpLGMuc2l6ZT4wJiYoYz0oMCxnLmludGVyc2VjdCkoYyxuZXcgU2V0KF8pKSksZCs9MSxvLmFkZChwKX1pZihudWxsIT09dCl7Y29uc3QgaT10aGlzLl9wcmljZURhdGFTb3VyY2VzLmZpbHRlcihqbCk7Zm9yKGNvbnN0IG8gb2YgaSl7aWYoIW8uaXNVbml0U291cmNlKCl8fCFvLmlzVmlzaWJsZSgpfHxvLmlzRmFpbGVkKCkpY29udGludWU7Y29uc3QgaT1vLnVuaXRNZXRhZGF0YSgpLnZhbHVlKCk7aWYobnVsbD09PWkpe3Q9bnVsbDticmVha31jb25zdCBoPWkuY3VycmVudFVuaXQ7cy5hZGQoaCksdSs9MSxjLnNpemU+MCYmKGM9KDAsZy5pbnRlcnNlY3QpKGMsbmV3IFNldChpLmNvbnZlcnRpYmxlR3JvdXBzKSkpLG4uc2V0KGgsZS5uYW1lKGgpKSxyLnNldChoLGUuZGVzY3JpcHRpb24oaCkpO2NvbnN0IGQ9by51bml0T3JpZ2luU291cmNlKCkudmFsdWUoKTtpZihhLmluY2x1ZGVzKGQpfHwoYz1uZXcgU2V0KSx2b2lkIDA9PT1sKWw9aDtlbHNlIGlmKG51bGwhPT1sJiZsIT09aCl7bD1udWxsO2JyZWFrfX19aWYodm9pZCAwPT09dClpZigwPT09ZCYmMD09PXUpdD1udWxsO2Vsc2V7dD17YXZhaWxhYmxlR3JvdXBzOmMsc2VsZWN0ZWRVbml0Omx8fG51bGwsdW5pdHM6cyxvcmlnaW5hbFVuaXRzOmksc3ltYm9sU291cmNlQ291bnQ6ZCxhbGxVbml0c0FyZU9yaWdpbmFsOmgsbmFtZXM6bixkZXNjcmlwdGlvbnM6cixzeW1ib2xzOm99fXJldHVybiB0aGlzLl91bml0Q2FjaGU9e3ZhbHVlOnQsYXZhaWxhYmxlVW5pdHNDb3VudDplLnNpemUoKX0sdH1tZXRyaWMoZSl7aWYoIWUuaXNSZWFkeSgpKXJldHVybiBudWxsO2lmKG51bGwhPT10aGlzLl9tZXRyaWNDYWNoZSYmZS5zaXplKCk9PT10aGlzLl9tZXRyaWNDYWNoZS5hdmFpbGFibGVNZXRyaWNzQ291bnQpcmV0dXJuIHRoaXMuX21ldHJpY0NhY2hlLnZhbHVlO2xldCB0O2NvbnN0IGk9bmV3IFNldCxzPW5ldyBNYXAsbj1uZXcgU2V0O2xldCByLG89MD09PXRoaXMuX3Nlcmllc0xpa2VTb3VyY2VzLmxlbmd0aHx8dGhpcy5fc2VyaWVzTGlrZVNvdXJjZXNbMF0ubW9kZWwoKS5yZWFkT25seSgpLGE9MCxjPTA7Y29uc3QgaD10aGlzLl9zZXJpZXNMaWtlU291cmNlcztmb3IoY29uc3QgbCBvZiBoKXtpZighbC5pc1Zpc2libGUoKSljb250aW51ZTtjb25zdCBjPWwuc3ltYm9sSW5mbygpO2lmKG51bGw9PT1jKXt0PW51bGw7YnJlYWt9Y29uc3QgaD1sLm1ldHJpYygpO2lmKG51bGw9PT1oKXt0PW51bGw7YnJlYWt9cy5zZXQoaCxlLm5hbWUoaCkpLGkuYWRkKGgpLHZvaWQgMD09PXI/cj1oOm51bGwhPT1yJiZyIT09aCYmKHI9bnVsbCksb3x8ZS5jb252ZXJ0aWJsZShoKXx8KG89ITApLGErPTEsbi5hZGQoKDAsQS5wcm9TeW1ib2wpKGMsbC5zeW1ib2woKSkpfWlmKG51bGwhPT10KWZvcihjb25zdCBuIG9mIHRoaXMuX3ByaWNlRGF0YVNvdXJjZXMpe2lmKGguaW5jbHVkZXMobikpY29udGludWU7Y29uc3QgYT1uO2lmKCFhLmlzTWV0cmljU291cmNlKCl8fCFhLmlzVmlzaWJsZSgpfHxhLmlzRmFpbGVkKCkpY29udGludWU7Y29uc3QgZD1hLm1ldHJpYygpO2lmKG51bGw9PT1kKXt0PW51bGw7YnJlYWt9aS5hZGQoZCksYys9MTtjb25zdCB1PSgwLGwuZW5zdXJlTm90TnVsbCkoYS5zeW1ib2xTb3VyY2UoKSk7aWYobnVsbD09PWEuY3VycmVuY3lTb3VyY2VTeW1ib2xJbmZvKCkpe3Q9bnVsbDticmVha31pZihvfHxlLmNvbnZlcnRpYmxlKGQpfHwobz0hMCkscy5zZXQoZCxlLm5hbWUoZCkpLGguaW5jbHVkZXModSl8fChvPSEwKSx2b2lkIDA9PT1yKXI9ZDtlbHNlIGlmKG51bGwhPT1yJiZyIT09ZCl7cj1udWxsO2JyZWFrfX1yZXR1cm4gdm9pZCAwPT09dCYmKHQ9MD09PWEmJjA9PT1jP251bGw6e3JlYWRPbmx5Om8sc2VsZWN0ZWRNZXRyaWNJZDpyfHxudWxsLG1ldHJpY3M6aSxuYW1lczpzfSksdGhpcy5fbWV0cmljQ2FjaGU9e3ZhbHVlOnQsYXZhaWxhYmxlTWV0cmljc0NvdW50OmUuc2l6ZSgpfSx0fW1lYXN1cmVVbml0SWQoZSl7CmlmKG51bGw9PT1lKXJldHVybiBudWxsO2lmKG51bGwhPT10aGlzLl9tZWFzdXJlVW5pdElkQ2FjaGUmJmUuc2l6ZSgpPT09dGhpcy5fbWVhc3VyZVVuaXRJZENhY2hlLmF2YWlsYWJsZVVuaXRzQ291bnQpcmV0dXJuIHRoaXMuX21lYXN1cmVVbml0SWRDYWNoZS52YWx1ZTtsZXQgdCxpO2NvbnN0IHM9bmV3IE1hcCxuPW5ldyBNYXAscj1uZXcgU2V0O2xldCBvPTA7Y29uc3QgYT10aGlzLl9zZXJpZXNMaWtlU291cmNlcztmb3IoY29uc3QgbCBvZiBhKXtpZighbC5pc1Zpc2libGUoKSljb250aW51ZTtjb25zdCBhPWwubWVhc3VyZVVuaXRJZCgpO2lmKG51bGw9PT1hKXt0PW51bGw7YnJlYWt9ci5hZGQoYSkscy5zZXQoYSxlLm5hbWUoYSkpLG4uc2V0KGEsZS5kZXNjcmlwdGlvbihhKSksdm9pZCAwPT09aT9pPWE6bnVsbCE9PWkmJmkhPT1hJiYoaT1udWxsKSxvKz0xfXJldHVybiB2b2lkIDA9PT10JiYodD0wPT09bz9udWxsOntzZWxlY3RlZE1lYXN1cmVVbml0SWQ6aXx8bnVsbCxtZWFzdXJlVW5pdElkczpyLG5hbWVzOnMsZGVzY3JpcHRpb25zOm4sc3ltYm9sU291cmNlQ291bnQ6b30pLHRoaXMuX21lYXN1cmVVbml0SWRDYWNoZT17dmFsdWU6dCxhdmFpbGFibGVVbml0c0NvdW50OmUuc2l6ZSgpfSx0fXNldE1hcmdpbnMoZSl7aWYoISgwLGEuaXNOdW1iZXIpKGUudG9wKXx8ISgwLGEuaXNOdW1iZXIpKGUuYm90dG9tKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJpbnZhbGlkIG1hcmdpbiIpO2lmKGUudG9wPDB8fGUudG9wPjMwfHxlLmJvdHRvbTwwfHxlLmJvdHRvbT4zMCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiaW52YWxpZCBtYXJnaW4iKTt0aGlzLl9tYXJnaW5zLnRvcD09PWUudG9wJiZ0aGlzLl9tYXJnaW5zLmJvdHRvbT09PWUuYm90dG9tfHwodGhpcy5fbWFyZ2lucz1lLHRoaXMuX2NvcnJlY3RlZE1hcmdpbnNDYWNoZT1udWxsLHRoaXMuX2ludmFsaWRhdGVJbnRlcm5hbEhlaWdodENhY2hlKCksdGhpcy5fbWFya3NDYWNoZT1udWxsKX10b3BNYXJnaW4oKXtyZXR1cm4gdGhpcy5fY29ycmVjdGVkTWFyZ2lucygpLnRvcH1ib3R0b21NYXJnaW4oKXtyZXR1cm4gdGhpcy5fY29ycmVjdGVkTWFyZ2lucygpLmJvdHRvbX1pbnZhbGlkYXRlTWFyZ2lucygpe3RoaXMuX2NvcnJlY3RlZE1hcmdpbnNDYWNoZT1udWxsfXRvcFBpeGVsTWFyZ2luKCl7cmV0dXJuIHRoaXMuaXNJbnZlcnRlZCgpP3RoaXMuYm90dG9tTWFyZ2luKCkqdGhpcy5oZWlnaHQoKSt0aGlzLl9ib3R0b21QaXhlbE1hcmdpbjp0aGlzLnRvcE1hcmdpbigpKnRoaXMuaGVpZ2h0KCkrdGhpcy5fdG9wUGl4ZWxNYXJnaW59Ym90dG9tUGl4ZWxNYXJnaW4oKXtyZXR1cm4gdGhpcy5pc0ludmVydGVkKCk/dGhpcy50b3BNYXJnaW4oKSp0aGlzLmhlaWdodCgpK3RoaXMuX3RvcFBpeGVsTWFyZ2luOnRoaXMuYm90dG9tTWFyZ2luKCkqdGhpcy5oZWlnaHQoKSt0aGlzLl9ib3R0b21QaXhlbE1hcmdpbn1tYXJrcygpe3JldHVybiB0aGlzLmlzRW1wdHkoKT8odGhpcy5fbWFya3NDYWNoZT1udWxsLFtdKToobnVsbD09PXRoaXMuX21hcmtzQ2FjaGUmJih0aGlzLl9tYXJrQnVpbGRlci5yZWJ1aWxkVGlja01hcmtzKCksdGhpcy5fbWFya3NDYWNoZT10aGlzLl9tYXJrQnVpbGRlci5tYXJrcygpLHRoaXMuX29uTWFya3NDaGFuZ2VkLmZpcmUoKSksdGhpcy5fbWFya3NDYWNoZSl9b25NYXJrc0NoYW5nZWQoKXtyZXR1cm4gdGhpcy5fb25NYXJrc0NoYW5nZWR9cHJpY2VSYW5nZUluUHJpY2UoKXtpZih0aGlzLmlzRW1wdHkoKSlyZXR1cm4gbnVsbDtjb25zdCBlPXRoaXMubWFpblNvdXJjZSgpPy5maXJzdFZhbHVlKCk/P251bGw7aWYobnVsbD09PWUpcmV0dXJuIG51bGw7Y29uc3QgdD10aGlzLmhlaWdodCgpO3JldHVybntmcm9tOnRoaXMuY29vcmRpbmF0ZVRvUHJpY2UodC0xLGUpLHRvOnRoaXMuY29vcmRpbmF0ZVRvUHJpY2UoMCxlKX19c2V0UHJpY2VSYW5nZUluUHJpY2UoZSl7aWYodGhpcy5pc1BlcmNlbnRhZ2UoKXx8dGhpcy5pc0luZGV4ZWRUbzEwMCgpKXJldHVybjtjb25zdCB0PXRoaXMuaXNJbnZlcnRlZCgpLGk9dD90aGlzLmJvdHRvbU1hcmdpbigpOnRoaXMudG9wTWFyZ2luKCkscz10P3RoaXMudG9wTWFyZ2luKCk6dGhpcy5ib3R0b21NYXJnaW4oKSxuPXRoaXMuaXNMb2coKTtsZXQgcj1uPygwLFRsLnRvTG9nKShlLmZyb20sdGhpcy5fbG9nRm9ybXVsYSk6ZS5mcm9tLG89bj8oMCxUbC50b0xvZykoZS50byx0aGlzLl9sb2dGb3JtdWxhKTplLnRvO2NvbnN0IGE9by1yO3IrPXMqYSxvLT1pKmEsdGhpcy5zZXRNb2RlKHthdXRvU2NhbGU6ITF9KSx0aGlzLnNldFByaWNlUmFuZ2UobmV3IFBsLlByaWNlUmFuZ2UocixvKSksdGhpcy5fbWFya3NDYWNoZT1udWxsLHRoaXMuX29uTWFya3NDaGFuZ2VkLmZpcmUoKX1oYXNNYWluU2VyaWVzKCl7cmV0dXJuIHRoaXMuX2hhc1Nlcmllc31nZXRTdHVkaWVzKCl7cmV0dXJuIHRoaXMuZGF0YVNvdXJjZXMoKS5maWx0ZXIodGkuaXNTdHVkeSl9bGFzdFNvdXJjZVJlbW92ZWQoKXtyZXR1cm4gdGhpcy5fbGFzdFNvdXJjZVJlbW92ZWR9c291cmNlc0ZvckF1dG9zY2FsZSgpe3JldHVybiB0aGlzLl9tYWluU291cmNlJiZ0aGlzLl9zY2FsZVNlcmllc09ubHkhPT10aGlzLl9zY2FsZXNQcm9wZXJ0aWVzLmNoaWxkcygpLnNjYWxlU2VyaWVzT25seS52YWx1ZSgpJiYodGhpcy5fc291cmNlc0ZvckF1dG9zY2FsZT1udWxsKSx0aGlzLl9zb3VyY2VzRm9yQXV0b3NjYWxlfHwodGhpcy5fc291cmNlc0ZvckF1dG9zY2FsZT10aGlzLl9yZWNhbGN1bGF0ZVNvdXJjZXNGb3JBdXRvc2NhbGUoKSksdGhpcy5fc291cmNlc0ZvckF1dG9zY2FsZX1yZWNhbGN1bGF0ZVByaWNlUmFuZ2UoZSx0KXt0aGlzLl9pbnZhbGlkYXRlZEZvclJhbmdlPXt2aXNpYmxlQmFyczplLGxvZ2ljYWxSYW5nZTp0LGlzVmFsaWQ6ITF9fWludGVybmFsSGVpZ2h0Q2hhbmdlZCgpe3JldHVybiB0aGlzLl9pbnRlcm5hbEhlaWdodENoYW5nZWR9b3JkZXJlZFNvdXJjZXMoKXtpZih0aGlzLl9jYWNoZWRPcmRlcmVkU29ydWNlcylyZXR1cm4gdGhpcy5fY2FjaGVkT3JkZXJlZFNvcnVjZXM7bGV0IGU9dGhpcy5tX2RhdGFTb3VyY2VzLnNsaWNlKCkKO3JldHVybiBlPWUuZmlsdGVyKChlPT4hc2koZSkpKSxlPSgwLGRyLnNvcnRTb3VyY2VzKShlKSx0aGlzLl9jYWNoZWRPcmRlcmVkU29ydWNlcz1lLHRoaXMuX2NhY2hlZE9yZGVyZWRTb3J1Y2VzfWludmFsaWRhdGVTb3VyY2VzQ2FjaGUoKXt0aGlzLl9jYWNoZWRPcmRlcmVkU29ydWNlcz1udWxsLHRoaXMuX3NvdXJjZXNUb1VwZGF0ZVZpZXdzPW51bGx9c3RhcnRTY2FsZShlKXt0aGlzLmlzRW1wdHkoKXx8dGhpcy5pc1BlcmNlbnRhZ2UoKXx8dGhpcy5pc0luZGV4ZWRUbzEwMCgpfHxudWxsIT09dGhpcy5fc2NhbGVTdGFydFBvaW50fHxudWxsIT09dGhpcy5fcHJpY2VSYW5nZVNuYXBzaG90fHwodGhpcy5fc2NhbGVTdGFydFBvaW50PXRoaXMubV9oZWlnaHQtZSx0aGlzLl9wcmljZVJhbmdlU25hcHNob3Q9dGhpcy5wcmljZVJhbmdlKCk/LmNsb25lKCk/P251bGwpfXNjYWxlVG8oZSl7aWYodGhpcy5pc1BlcmNlbnRhZ2UoKXx8dGhpcy5pc0luZGV4ZWRUbzEwMCgpfHxudWxsPT09dGhpcy5fc2NhbGVTdGFydFBvaW50KXJldHVybjt0aGlzLnNldE1vZGUoe2F1dG9TY2FsZTohMX0pLChlPXRoaXMubV9oZWlnaHQtZSk8MCYmKGU9MCk7bGV0IHQ9KHRoaXMuX3NjYWxlU3RhcnRQb2ludCsuMioodGhpcy5tX2hlaWdodC0xKSkvKGUrLjIqKHRoaXMubV9oZWlnaHQtMSkpO2NvbnN0IGk9KDAsbC5lbnN1cmVOb3ROdWxsKSh0aGlzLl9wcmljZVJhbmdlU25hcHNob3QpLmNsb25lKCk7dD1NYXRoLm1heCh0LC4xKSxpLnNjYWxlQXJvdW5kQ2VudGVyKHQpLHRoaXMuc2V0UHJpY2VSYW5nZShpKX1lbmRTY2FsZSgpe3RoaXMuaXNQZXJjZW50YWdlKCl8fHRoaXMuaXNJbmRleGVkVG8xMDAoKXx8bnVsbCE9PXRoaXMuX3NjYWxlU3RhcnRQb2ludCYmKHRoaXMuX3NjYWxlU3RhcnRQb2ludD1udWxsLHRoaXMuX3ByaWNlUmFuZ2VTbmFwc2hvdD1udWxsKX1zdGFydFR3b1BvaW50c1NjYWxlKGUsdCl7aWYodGhpcy5pc0VtcHR5KCl8fHRoaXMuaXNQZXJjZW50YWdlKCl8fHRoaXMuaXNJbmRleGVkVG8xMDAoKXx8bnVsbCE9PXRoaXMuX3R3b1BvaW50c1NjYWxlU3RhcnRQb3NpdGlvbilyZXR1cm47Y29uc3QgaT1NYXRoLm1pbihlLHQpLHM9TWF0aC5tYXgoZSx0KTt0aGlzLl90d29Qb2ludHNTY2FsZVN0YXJ0UG9zaXRpb249e3RvcExvZ2ljYWw6dGhpcy5fY29vcmRpbmF0ZVRvTG9naWNhbChpKSxib3R0b21Mb2dpY2FsOnRoaXMuX2Nvb3JkaW5hdGVUb0xvZ2ljYWwocyl9fXR3b1BvaW50c1NjYWxlKGUsdCl7aWYodGhpcy5pc1BlcmNlbnRhZ2UoKXx8dGhpcy5pc0luZGV4ZWRUbzEwMCgpfHxudWxsPT09dGhpcy5fdHdvUG9pbnRzU2NhbGVTdGFydFBvc2l0aW9uKXJldHVybjt0aGlzLnNldE1vZGUoe2F1dG9TY2FsZTohMX0pO2NvbnN0IGk9TWF0aC5taW4oZSx0KSxzPU1hdGgubWF4KGUsdCkse3RvcExvZ2ljYWw6bixib3R0b21Mb2dpY2FsOnJ9PXRoaXMuX3R3b1BvaW50c1NjYWxlU3RhcnRQb3NpdGlvbixvPXRoaXMuYm90dG9tUGl4ZWxNYXJnaW4oKSxhPXRoaXMuaW50ZXJuYWxIZWlnaHQoKS0xLGw9KHRoaXMuX2ludmVydGVkQ29vcmRpbmF0ZShpKS1vKS9hLGM9KHItbikvKCh0aGlzLl9pbnZlcnRlZENvb3JkaW5hdGUocyktbykvYS1sKTtpZighTnVtYmVyLmlzRmluaXRlKGMpKXJldHVybjtjb25zdCBoPW4tYypsLGQ9aCtjO3RoaXMuc2V0UHJpY2VSYW5nZShuZXcgUGwuUHJpY2VSYW5nZSh0aGlzLnByaWNlVG9Mb2dpY2FsKGgpLHRoaXMucHJpY2VUb0xvZ2ljYWwoZCkpKX1pc0JlaW5nU2NhbGVkKCl7cmV0dXJuIG51bGwhPT10aGlzLl9zY2FsZVN0YXJ0UG9pbnR8fG51bGwhPT10aGlzLl90d29Qb2ludHNTY2FsZVN0YXJ0UG9zaXRpb259ZW5kVHdvUG9pbnRzU2NhbGUoKXt0aGlzLl90d29Qb2ludHNTY2FsZVN0YXJ0UG9zaXRpb249bnVsbH1zdGFydFNjcm9sbChlKXt0aGlzLmlzQXV0b1NjYWxlKCl8fG51bGw9PT10aGlzLl9zY3JvbGxTdGFydFBvaW50JiZudWxsPT09dGhpcy5fcHJpY2VSYW5nZVNuYXBzaG90JiYodGhpcy5pc0VtcHR5KCl8fCh0aGlzLl9zY3JvbGxTdGFydFBvaW50PWUsdGhpcy5fcHJpY2VSYW5nZVNuYXBzaG90PXRoaXMucHJpY2VSYW5nZSgpPy5jbG9uZSgpPz9udWxsKSl9c2Nyb2xsVG8oZSl7aWYodGhpcy5pc0F1dG9TY2FsZSgpKXJldHVybjtpZihudWxsPT09dGhpcy5fc2Nyb2xsU3RhcnRQb2ludHx8bnVsbD09PXRoaXMuX3ByaWNlUmFuZ2VTbmFwc2hvdClyZXR1cm47Y29uc3QgdD10aGlzLnByaWNlUmFuZ2UoKTtpZihudWxsPT09dClyZXR1cm47bGV0IGk9ZS10aGlzLl9zY3JvbGxTdGFydFBvaW50O3RoaXMuaXNJbnZlcnRlZCgpJiYoaSo9LTEpO2NvbnN0IHM9aSoodC5sZW5ndGgoKS8odGhpcy5pbnRlcm5hbEhlaWdodCgpLTEpKSxuPXRoaXMuX3ByaWNlUmFuZ2VTbmFwc2hvdC5jbG9uZSgpO24uc2hpZnQocyksdGhpcy5zZXRQcmljZVJhbmdlKG4sITApLHRoaXMuX21hcmtzQ2FjaGU9bnVsbH1lbmRTY3JvbGwoKXt0aGlzLmlzQXV0b1NjYWxlKCl8fG51bGwhPT10aGlzLl9zY3JvbGxTdGFydFBvaW50JiYodGhpcy5fc2Nyb2xsU3RhcnRQb2ludD1udWxsLHRoaXMuX3ByaWNlUmFuZ2VTbmFwc2hvdD1udWxsKX1jbGVhclByaWNlUmFuZ2UoKXt0aGlzLl9wcmljZVJhbmdlPW51bGwsdGhpcy5yZWNhbGN1bGF0ZVByaWNlUmFuZ2VPbmNlKCl9aXNWaXNpYmxlKCl7cmV0dXJuIHRoaXMuX2lzVmlzaWJsZX1fYWRkRGF0YVNvdXJjZUltcGwoZSx0LGkpe2lmKHR8fC0xPT09dGhpcy5tX2RhdGFTb3VyY2VzLmluZGV4T2YoZSkpe2lmKCgwLEhzLmlzUHJpY2VEYXRhU291cmNlKShlKSl7aWYodm9pZCAwPT09aT90aGlzLl9wcmljZURhdGFTb3VyY2VzLnB1c2goZSk6dGhpcy5fcHJpY2VEYXRhU291cmNlcy5zcGxpY2UoaSwwLGUpLGUuY3VycmVuY3lDaGFuZ2VkKCkuc3Vic2NyaWJlKHRoaXMsKCgpPT50aGlzLl9jdXJyZW5jeUNhY2hlPW51bGwpKSxlLnVuaXRDaGFuZ2VkKCkuc3Vic2NyaWJlKHRoaXMsKCgpPT50aGlzLl91bml0Q2FjaGU9bnVsbCkpLGUubWV0cmljQ2hhbmdlZCgpLnN1YnNjcmliZSh0aGlzLCgoKT0+dGhpcy5fbWV0cmljQ2FjaGU9bnVsbCkpLAplLmN1cnJlbmN5T3JpZ2luU291cmNlKCkuc3Vic2NyaWJlKHRoaXMuX2Ryb3BTY2FsZUNhY2hlKSxlLmN1cnJlbmN5TWV0YWRhdGEoKS5zdWJzY3JpYmUodGhpcy5fZHJvcFNjYWxlQ2FjaGUpLGUudW5pdE9yaWdpblNvdXJjZSgpLnN1YnNjcmliZSh0aGlzLl9kcm9wU2NhbGVDYWNoZSksZS51bml0TWV0YWRhdGEoKS5zdWJzY3JpYmUodGhpcy5fZHJvcFNjYWxlQ2FjaGUpLCgwLElvLmlzU3ltYm9sU291cmNlKShlKSYmKHRoaXMuX3Nlcmllc0xpa2VTb3VyY2VzLnB1c2goZSksZS5zeW1ib2xSZXNvbHZlZCgpLnN1YnNjcmliZSh0aGlzLCgoKT0+e3RoaXMuX2N1cnJlbmN5Q2FjaGU9bnVsbCx0aGlzLl91bml0Q2FjaGU9bnVsbCx0aGlzLl9tZXRyaWNDYWNoZT1udWxsLHRoaXMuX21lYXN1cmVVbml0SWRDYWNoZT1udWxsLHRoaXMuX3VwZGF0ZUxvZ0Zvcm11bGEoKX0pKSwoMCxmbC5pc1NlcmllcykoZSkpKXtjb25zdCB0PWUucHJvcGVydGllcygpO3RoaXMuX2hhc1Nlcmllc3x8KHQuY2hpbGRzKCkubG9ja1NjYWxlJiYodGhpcy5zZXRNb2RlKHtsb2NrU2NhbGU6dC5jaGlsZHMoKS5sb2NrU2NhbGUudmFsdWUoKX0pLHQucmVtb3ZlUHJvcGVydHkoImxvY2tTY2FsZSIpKSx0LmNoaWxkcygpLnBuZlN0eWxlLmhhc0NoaWxkKCJsb2NrU2NhbGUiKSYmdC5jaGlsZHMoKS5wbmZTdHlsZS5yZW1vdmVQcm9wZXJ0eSgibG9ja1NjYWxlIikpLHRoaXMuX2hhc1Nlcmllcz0hMH1lLmlzU3BlY2lhbGx5Wk9yZGVyZWRTb3VyY2UoKXx8KHRoaXMuX3NvdXJjZXNUaGF0QWZmZWN0VmlzaWJpbGl0eS5wdXNoKGUpLGUucHJvcGVydGllcygpLmNoaWxkcygpLnZpc2libGUuc3Vic2NyaWJlKHRoaXMsdGhpcy5fb25Tb3VyY2VWaXNpYmlsaXR5Q2hhbmdlZCkpfSgwLHRpLmlzU3R1ZHkpKGUpJiYoZS5vbklzQWN0dWFsSW50ZXJ2YWxDaGFuZ2UoKS5zdWJzY3JpYmUodGhpcyx0aGlzLl9kcm9wU2NhbGVDYWNoZSksZS5vbkhpYmVybmF0aW9uU3RhdGVDaGFuZ2UoKS5zdWJzY3JpYmUodGhpcyx0aGlzLl9kcm9wU2NhbGVDYWNoZSksZS5wcm9wZXJ0aWVzKCkuY2hpbGRzKCkuc3R5bGVzLnN1YnNjcmliZSh0aGlzLHRoaXMuX2Ryb3BTY2FsZUNhY2hlKSwwPT09dGhpcy5fc3R1ZGllc0NvdW50JiYoMCxULmhpZGVBbGxJbmRpY2F0b3JzKSgpLnN1YnNjcmliZSh0aGlzLHRoaXMuX2Ryb3BTY2FsZUNhY2hlKSx0aGlzLl9zdHVkaWVzQ291bnQrKyksKDAscmkuaXNMaW5lVG9vbCkoZSkmJigwPT09dGhpcy5fZHJhd2luZ0NvdW50JiYoMCxULmhpZGVBbGxEcmF3aW5ncykoKS5zdWJzY3JpYmUodGhpcyx0aGlzLl9kcm9wU2NhbGVDYWNoZSksdGhpcy5fZHJhd2luZ0NvdW50KyspLHRoaXMubV9kYXRhU291cmNlcy5wdXNoKGUpLHRoaXMuX21haW5Tb3VyY2U9bnVsbCx0aGlzLm1haW5Tb3VyY2UoKT09PWUmJih0aGlzLl9jb3JyZWN0ZWRNYXJnaW5zQ2FjaGU9bnVsbCx0aGlzLl9pbnRlcm5hbEhlaWdodENhY2hlPW51bGwsdGhpcy5fbWFya3NDYWNoZT1udWxsKSx0aGlzLl9kcm9wU2NhbGVDYWNoZSgpLHRoaXMudXBkYXRlRm9ybWF0dGVyKCksdGhpcy5faW5pdFNjYWxlUHJvcGVydGllcygpLHRoaXMuaW52YWxpZGF0ZVNvdXJjZXNDYWNoZSgpLHRoaXMuX3VwZGF0ZUlzVmlzaWJsZSgpLHRoaXMuX3VwZGF0ZUxvZ0Zvcm11bGEoKX19X3JlY2FsY3VsYXRlU291cmNlc0ZvckF1dG9zY2FsZSgpe3RoaXMuX21haW5Tb3VyY2UmJih0aGlzLl9zY2FsZVNlcmllc09ubHk9dGhpcy5fc2NhbGVzUHJvcGVydGllcy5jaGlsZHMoKS5zY2FsZVNlcmllc09ubHkudmFsdWUoKSk7Y29uc3QgZT10aGlzLl9zY2FsZVNlcmllc09ubHkmJnRoaXMuX2hhc1NlcmllcztyZXR1cm4gdGhpcy5tX2RhdGFTb3VyY2VzLmZpbHRlcigodD0+ISghdC5wcm9wZXJ0aWVzKCkudmlzaWJsZS52YWx1ZSgpJiYhKDAsZmwuaXNTZXJpZXMpKHQpKSYmKGU/KDAsZmwuaXNTZXJpZXMpKHQpOigwLHRpLmlzU3R1ZHkpKHQpPyF0LmlzU291cmNlSGlkZGVuKCkmJnQuaXNJbmNsdWRlZEluQXV0b1NjYWxlKCk6dC5pc0luY2x1ZGVkSW5BdXRvU2NhbGUoKSkpKX1fdXBkYXRlQXV0b1NjYWxlRGlzYWJsZWRQcm9wZXJ0eShlKXtjb25zdCB0PXRoaXMuX3Byb3BlcnRpZXMuY2hpbGRzKCksaT10LmluZGV4ZWRUbzEwMC52YWx1ZSgpfHx0LnBlcmNlbnRhZ2UudmFsdWUoKXx8dC5sb2NrU2NhbGUudmFsdWUoKTtlP3QuYXV0b1NjYWxlRGlzYWJsZWQuc2V0VmFsdWVTaWxlbnRseShpKTp0LmF1dG9TY2FsZURpc2FibGVkLnNldFZhbHVlKGkpfV9zZXRBdXRvU2NhbGVWYWx1ZVdpdGhEZXBlbmRlbnRQcm9wZXJ0aWVzKGUpe2NvbnN0IHQ9dGhpcy5fcHJvcGVydGllcy5jaGlsZHMoKTt0LmF1dG9TY2FsZS5zZXRWYWx1ZVNpbGVudGx5KGUpLGUmJih0LnBlcmNlbnRhZ2Uuc2V0VmFsdWVTaWxlbnRseSghMSksdC5pbmRleGVkVG8xMDAuc2V0VmFsdWVTaWxlbnRseSghMSksdC5sb2NrU2NhbGUuc2V0VmFsdWVTaWxlbnRseSghMSksdC5sb2dEaXNhYmxlZC5zZXRWYWx1ZVNpbGVudGx5KCExKSksdGhpcy5fdXBkYXRlQXV0b1NjYWxlRGlzYWJsZWRQcm9wZXJ0eSghMCl9X3NldExvY2tTY2FsZVZhbHVlV2l0aERlcGVuZGVudFByb3BlcnRpZXMoZSl7Y29uc3QgdD10aGlzLl9wcm9wZXJ0aWVzLmNoaWxkcygpO3QubG9ja1NjYWxlLnNldFZhbHVlU2lsZW50bHkoZSksZSYmKHQuYXV0b1NjYWxlLnNldFZhbHVlU2lsZW50bHkoITEpLHQucGVyY2VudGFnZS5zZXRWYWx1ZVNpbGVudGx5KCExKSx0LmluZGV4ZWRUbzEwMC5zZXRWYWx1ZVNpbGVudGx5KCExKSx0LmxvZy5zZXRWYWx1ZVNpbGVudGx5KCExKSksdC5wZXJjZW50YWdlRGlzYWJsZWQuc2V0VmFsdWVTaWxlbnRseShlKSx0LmxvZ0Rpc2FibGVkLnNldFZhbHVlU2lsZW50bHkoZSksdGhpcy5fdXBkYXRlQXV0b1NjYWxlRGlzYWJsZWRQcm9wZXJ0eSghMCl9X3NldFBlcmNlbnRhZ2VWYWx1ZVdpdGhEZXBlbmRlbnRQcm9wZXJ0aWVzKGUpe2NvbnN0IHQ9dGhpcy5fcHJvcGVydGllcy5jaGlsZHMoKTt0LnBlcmNlbnRhZ2Uuc2V0VmFsdWVTaWxlbnRseShlKSxlJiYodC5hdXRvU2NhbGUuc2V0VmFsdWVTaWxlbnRseSghMCksCnQubG9nLnNldFZhbHVlU2lsZW50bHkoITEpLHQubG9ja1NjYWxlLnNldFZhbHVlU2lsZW50bHkoITEpLHQuaW5kZXhlZFRvMTAwLnNldFZhbHVlU2lsZW50bHkoITEpKSx0aGlzLl91cGRhdGVBdXRvU2NhbGVEaXNhYmxlZFByb3BlcnR5KCEwKX1fc2V0SW5kZXhlZFRvMTAwVmFsdWVXaXRoRGVwZW5kZW50UHJvcGVydGllcyhlKXtjb25zdCB0PXRoaXMuX3Byb3BlcnRpZXMuY2hpbGRzKCk7dC5pbmRleGVkVG8xMDAuc2V0VmFsdWVTaWxlbnRseShlKSxlJiYodC5hdXRvU2NhbGUuc2V0VmFsdWVTaWxlbnRseSghMCksdC5sb2cuc2V0VmFsdWVTaWxlbnRseSghMSksdC5sb2NrU2NhbGUuc2V0VmFsdWVTaWxlbnRseSghMSksdC5wZXJjZW50YWdlLnNldFZhbHVlU2lsZW50bHkoITEpKSx0aGlzLl91cGRhdGVBdXRvU2NhbGVEaXNhYmxlZFByb3BlcnR5KCEwKX1fc2V0TG9nVmFsdWVXaXRoRGVwZW5kZW50UHJvcGVydGllcyhlKXtjb25zdCB0PXRoaXMuX3Byb3BlcnRpZXMuY2hpbGRzKCk7dC5sb2cuc2V0VmFsdWVTaWxlbnRseShlKSxlJiYodC5sb2NrU2NhbGUuc2V0VmFsdWVTaWxlbnRseSghMSksdC5wZXJjZW50YWdlLnNldFZhbHVlU2lsZW50bHkoITEpLHQuaW5kZXhlZFRvMTAwLnNldFZhbHVlU2lsZW50bHkoITEpKSx0aGlzLl91cGRhdGVBdXRvU2NhbGVEaXNhYmxlZFByb3BlcnR5KCEwKX1fcmVjYWxjdWxhdGVQcmljZVJhbmdlSW1wbCgpe2NvbnN0IGU9dGhpcy5faW52YWxpZGF0ZWRGb3JSYW5nZS52aXNpYmxlQmFycyx0PXRoaXMuX2ludmFsaWRhdGVkRm9yUmFuZ2UubG9naWNhbFJhbmdlO2lmKG51bGw9PT1lfHxudWxsPT09dClyZXR1cm47bGV0IGk9bnVsbDtjb25zdCBzPXRoaXMuc291cmNlc0ZvckF1dG9zY2FsZSgpLG49dGhpcy5pc1BlcmNlbnRhZ2UoKSxyPXRoaXMuaXNJbmRleGVkVG8xMDAoKTtsZXQgbz0wLGE9MDtjb25zdCBsPXtzdGFydFRpbWVQb2ludDplLmZpcnN0QmFyKCksZW5kVGltZVBvaW50OmUubGFzdEJhcigpLGxvZ2ljU3RhcnRQb2ludDp0LmxlZnQoKSxsb2dpY0VuZFBvaW50OnQucmlnaHQoKSx0YXJnZXRQcmljZVNjYWxlOnRoaXMsc2NhbGVTZXJpZXNPbmx5OnRoaXMuX3NjYWxlU2VyaWVzT25seX07Zm9yKGNvbnN0IGUgb2Ygcyl7aWYoIWUucHJvcGVydGllcygpLnZpc2libGUudmFsdWUoKSljb250aW51ZTtjb25zdCB0PWUuZmlyc3RWYWx1ZSgpO2lmKG51bGw9PT10fHxuJiYwPT09dCljb250aW51ZTtjb25zdCBzPWUuYXV0b1NjYWxlSW5mbyhsKTtsZXQgYz1zLnJhbmdlO2MmJihuP2M9KDAsVGwudG9QZXJjZW50UmFuZ2UpKGMsdCk6ciYmKGM9KDAsVGwudG9JbmRleGVkVG8xMDBSYW5nZSkoYyx0KSksaT1udWxsPT09aT9jOmkubWVyZ2UoYykpLHZvaWQgMCE9PXMudG9wUGl4ZWxNYXJnaW4mJihvPU1hdGgubWF4KG8scy50b3BQaXhlbE1hcmdpbikpLHZvaWQgMCE9PXMuYm90dG9tUGl4ZWxNYXJnaW4mJihhPU1hdGgubWF4KGEscy5ib3R0b21QaXhlbE1hcmdpbikpfShNYXRoLmFicyhvLXRoaXMuX3RvcFBpeGVsTWFyZ2luKT4wfHxNYXRoLmFicyhhLXRoaXMuX2JvdHRvbVBpeGVsTWFyZ2luKT4wKSYmKHRoaXMuX2JvdHRvbVBpeGVsTWFyZ2luPWEsdGhpcy5fdG9wUGl4ZWxNYXJnaW49byx0aGlzLl9tYXJrc0NhY2hlPW51bGwsdGhpcy5faW52YWxpZGF0ZUludGVybmFsSGVpZ2h0Q2FjaGUoKSksaT8odGhpcy5faGFzQ2FsY3VsYXRlZFByaWNlUmFuZ2U9ITAsaS5taW5WYWx1ZSgpPT09aS5tYXhWYWx1ZSgpJiYoaT1uZXcgUGwuUHJpY2VSYW5nZShpLm1pblZhbHVlKCktLjUsaS5tYXhWYWx1ZSgpKy41KSksdGhpcy5zZXRQcmljZVJhbmdlKGkpKTp0aGlzLl9wcmljZVJhbmdlfHx0aGlzLnNldFByaWNlUmFuZ2UobmV3IFBsLlByaWNlUmFuZ2UoLS41LC41KSksdGhpcy5faW52YWxpZGF0ZWRGb3JSYW5nZS5pc1ZhbGlkPSEwO2NvbnN0IGM9dGhpcy5tYWluU291cmNlKCk7bnVsbCE9PWMmJnRoaXMuX3JlY2FsY3VsYXRlUHJpY2VSYW5nZU9uY2UmJih0aGlzLl9yZWNhbGN1bGF0ZVByaWNlUmFuZ2VPbmNlPSFjLnByaWNlUmFuZ2VSZWFkeSgpKX1fbWFrZVN1cmVJdElzVmFsaWQoKXt0aGlzLl9pbnZhbGlkYXRlZEZvclJhbmdlLmlzVmFsaWR8fCh0aGlzLl9pbnZhbGlkYXRlZEZvclJhbmdlLmlzVmFsaWQ9ITAsdGhpcy5fcmVjYWxjdWxhdGVQcmljZVJhbmdlSW1wbCgpKX1faW52YWxpZGF0ZUludGVybmFsSGVpZ2h0Q2FjaGUoKXt0aGlzLl9pbnRlcm5hbEhlaWdodENhY2hlPW51bGwsdGhpcy5faW50ZXJuYWxIZWlnaHRDaGFuZ2VkLmZpcmUoKX1fY29vcmRpbmF0ZVRvTG9naWNhbChlKXtpZih0aGlzLl9tYWtlU3VyZUl0SXNWYWxpZCgpLHRoaXMuaXNFbXB0eSgpKXJldHVybiAwO2NvbnN0IHQ9dGhpcy5faW52ZXJ0ZWRDb29yZGluYXRlKGUpLGk9KDAsbC5lbnN1cmVOb3ROdWxsKSh0aGlzLnByaWNlUmFuZ2UoKSkscz1pLm1pblZhbHVlKCkrKGkubWF4VmFsdWUoKS1pLm1pblZhbHVlKCkpKigodC10aGlzLmJvdHRvbVBpeGVsTWFyZ2luKCkpLyh0aGlzLmludGVybmFsSGVpZ2h0KCktMSkpO3JldHVybiB0aGlzLmxvZ2ljYWxUb1ByaWNlKHMpfV9sb2dpY2FsVG9Db29yZGluYXRlKGUpe2lmKHRoaXMuX21ha2VTdXJlSXRJc1ZhbGlkKCksdGhpcy5pc0VtcHR5KCkpcmV0dXJuIDA7ZT10aGlzLnByaWNlVG9Mb2dpY2FsKGUpO2NvbnN0IHQ9KDAsbC5lbnN1cmVOb3ROdWxsKSh0aGlzLnByaWNlUmFuZ2UoKSksaT10aGlzLmJvdHRvbVBpeGVsTWFyZ2luKCkrKHRoaXMuaW50ZXJuYWxIZWlnaHQoKS0xKSooZS10Lm1pblZhbHVlKCkpLyh0Lm1heFZhbHVlKCktdC5taW5WYWx1ZSgpKTtyZXR1cm4gdGhpcy5faW52ZXJ0ZWRDb29yZGluYXRlKGkpfV9jb252ZXJ0UHJpY2VSYW5nZUZyb21Mb2coZSl7aWYobnVsbD09PWUpcmV0dXJuIG51bGw7Y29uc3QgdD0oMCxUbC5mcm9tTG9nKShlLm1pblZhbHVlKCksdGhpcy5fbG9nRm9ybXVsYSksaT0oMCxUbC5mcm9tTG9nKShlLm1heFZhbHVlKCksdGhpcy5fbG9nRm9ybXVsYSk7cmV0dXJuIG5ldyBQbC5QcmljZVJhbmdlKHQsaSl9X2NvbnZlcnRQcmljZVJhbmdlVG9Mb2coZSl7aWYobnVsbD09PWUpcmV0dXJuIG51bGwKO2NvbnN0IHQ9KDAsVGwudG9Mb2cpKGUubWluVmFsdWUoKSx0aGlzLl9sb2dGb3JtdWxhKSxpPSgwLFRsLnRvTG9nKShlLm1heFZhbHVlKCksdGhpcy5fbG9nRm9ybXVsYSk7cmV0dXJuIG5ldyBQbC5QcmljZVJhbmdlKHQsaSl9X2NhbkNvbnZlcnRQcmljZVJhbmdlRnJvbUxvZyhlKXtpZihudWxsPT09ZSlyZXR1cm4hMTtjb25zdCB0PSgwLFRsLmZyb21Mb2cpKGUubWluVmFsdWUoKSx0aGlzLl9sb2dGb3JtdWxhKSxpPSgwLFRsLmZyb21Mb2cpKGUubWF4VmFsdWUoKSx0aGlzLl9sb2dGb3JtdWxhKTtyZXR1cm4gaXNGaW5pdGUodCkmJmlzRmluaXRlKGkpfV9vblNvdXJjZVZpc2liaWxpdHlDaGFuZ2VkKCl7dGhpcy5fZHJvcFNjYWxlQ2FjaGUoKSx0aGlzLl91cGRhdGVJc1Zpc2libGUoKX1fdXBkYXRlSXNWaXNpYmxlKCl7dGhpcy5faXNWaXNpYmxlLnNldFZhbHVlKCEwKX1fdXBkYXRlTG9nRm9ybXVsYSgpe2NvbnN0IGU9dGhpcy5pc0xvZygpP3RoaXMuX2NvbnZlcnRQcmljZVJhbmdlRnJvbUxvZyh0aGlzLnByaWNlUmFuZ2UoKSk6bnVsbCx0PXRoaXMubWFpblNvdXJjZSgpO2lmKG51bGw9PT10KXRoaXMuX2xvZ0Zvcm11bGE9KDAsVGwubG9nRm9ybXVsYUZvckJhc2UpKG51bGwpO2Vsc2V7Y29uc3QgZT10LmJhc2UoKXx8bnVsbCxpPSgwLFRsLmxvZ0Zvcm11bGFGb3JCYXNlKShlKTsoMCxUbC5sb2dGb3JtdWxhc0FyZVNhbWUpKGksdGhpcy5fbG9nRm9ybXVsYSl8fCh0aGlzLl9sb2dGb3JtdWxhPWkpfWUmJnRoaXMuc2V0UHJpY2VSYW5nZSh0aGlzLl9jb252ZXJ0UHJpY2VSYW5nZVRvTG9nKGUpKX1faW52ZXJ0ZWRDb29yZGluYXRlKGUpe3JldHVybiB0aGlzLmlzSW52ZXJ0ZWQoKT9lOnRoaXMuaGVpZ2h0KCktMS1lfV9pbml0U2NhbGVQcm9wZXJ0aWVzKCl7Y29uc3QgZT10aGlzLmlzTG9ja1NjYWxlKCksdD10aGlzLnByb3BlcnRpZXMoKS5jaGlsZHMoKTtlJiYodC5wZXJjZW50YWdlLnNldFZhbHVlKCExKSx0LmluZGV4ZWRUbzEwMC5zZXRWYWx1ZSghMSksdC5sb2cuc2V0VmFsdWUoITEpLHQuYXV0b1NjYWxlLnNldFZhbHVlKCExKSksdC5wZXJjZW50YWdlRGlzYWJsZWQuc2V0VmFsdWUoZSksdC5sb2dEaXNhYmxlZC5zZXRWYWx1ZShlKSx0aGlzLl91cGRhdGVBdXRvU2NhbGVEaXNhYmxlZFByb3BlcnR5KCExKSx0LnBlcmNlbnRhZ2UudmFsdWUoKSYmKHQubG9nLnNldFZhbHVlKCExKSx0LmluZGV4ZWRUbzEwMC5zZXRWYWx1ZSghMSkpLHQuaW5kZXhlZFRvMTAwLnZhbHVlKCkmJih0LmxvZy5zZXRWYWx1ZSghMSksdC5wZXJjZW50YWdlLnNldFZhbHVlKCExKSl9X2NvcnJlY3RlZE1hcmdpbnMoKXtpZihudWxsPT09dGhpcy5fY29ycmVjdGVkTWFyZ2luc0NhY2hlKXtjb25zdCBlPXRoaXMubWFpblNvdXJjZSgpO3RoaXMuX2NvcnJlY3RlZE1hcmdpbnNDYWNoZT1udWxsIT09ZT9lLmNvcnJlY3RTY2FsZU1hcmdpbnModGhpcy5fbWFyZ2lucyk6dGhpcy5fbWFyZ2luc31yZXR1cm4gdGhpcy5fY29ycmVjdGVkTWFyZ2luc0NhY2hlfV9nZXRTb3VyY2VzVG9VcGRhdGVWaWV3cygpe3JldHVybiB0aGlzLl9zb3VyY2VzVG9VcGRhdGVWaWV3c3x8KHRoaXMuX3NvdXJjZXNUb1VwZGF0ZVZpZXdzPXRoaXMubV9kYXRhU291cmNlcy5maWx0ZXIoKGU9PiEoMCxyaS5pc0xpbmVUb29sKShlKXx8ZS5pc0FjdHVhbFN5bWJvbCgpJiZlLmlzQWN0dWFsQ3VycmVuY3koKSkpKSx0aGlzLl9zb3VyY2VzVG9VcGRhdGVWaWV3c31fbWFpblNvdXJjZUZvcm1hdHRlcigpe2NvbnN0IGU9dGhpcy5tYWluU291cmNlKCk7cmV0dXJuIGU/LmZvcm1hdHRlcigpfHxGbH1fcHJpY2VUb1BlcmNlbnRPckluZGV4ZWRUbzEwMElmTmVlZGVkKGUsdCl7cmV0dXJuIHRoaXMuaXNQZXJjZW50YWdlKCk/KDAsVGwudG9QZXJjZW50KShlLHQpOnRoaXMuaXNJbmRleGVkVG8xMDAoKT8oMCxUbC50b0luZGV4ZWRUbzEwMCkoZSx0KTplfV9vbklzSW52ZXJ0ZWRDaGFuZ2VkKCl7dGhpcy5fbWFya3NDYWNoZT1udWxsLHRoaXMuX21hcmtCdWlsZGVyLnJlYnVpbGRUaWNrTWFya3MoKX1fdXBkYXRlUmVzZXRBdmFpbGFibGVWYWx1ZSgpe3RoaXMuX3Jlc2V0U2NhbGVBdmFpbGFibGUuc2V0VmFsdWUoIXRoaXMuaXNMb2NrU2NhbGUoKSYmIXRoaXMuaXNBdXRvU2NhbGUoKSl9fXZhciAkbD1pKDEwOTQyOSksWWw9aSg4Njc4MzEpLEtsPWkoODIwMTgwKSxYbD1pKDEzNjc5KSxabD1pKDUwOTYzKSxKbD1pKDQ3NzMpLFFsPWkoNzAxNTA2KSxlYz1pKDk1MDU1NCk7ZnVuY3Rpb24gdGMoZSl7ZS53aWNrVXBDb2xvcj1lLndpY2tVcENvbG9yPz9lLndpY2tDb2xvcixlLndpY2tEb3duQ29sb3I9ZS53aWNrRG93bkNvbG9yPz9lLndpY2tDb2xvcixkZWxldGUgZS53aWNrQ29sb3J9ZnVuY3Rpb24gaWMoZSl7ZSYmKGUuY29sb3JUeXBlPz89cGkuQ29sb3JUeXBlLlNvbGlkKX1mdW5jdGlvbiBzYyhlLHQsaSl7Y29uc3Qgcz1wYXJzZUludChlLnNsaWNlKDAsMikpLG49cGFyc2VJbnQoZS5zbGljZSgyKSkscj0oMCxvLmdldF9jYWwpKHQsMmUzLG8uSkFOVUFSWSwxLDAsMCwwKTsoMCxvLnNldF9obXMpKHIscyxuLDAsMCx0KTtjb25zdCBhPSgwLG8uY2FsX3RvX3V0YykodCxyLCEwKSxsPSgwLG8udXRjX3RvX2NhbCkoaSxhKTtyZXR1cm5gJHtsLmdldFVUQ0hvdXJzKCkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCIwIil9JHtsLmdldFVUQ01pbnV0ZXMoKS50b1N0cmluZygpLnBhZFN0YXJ0KDIsIjAiKX1gfWNvbnN0IG5jPSgwLGMuZ2V0TG9nZ2VyKSgiQ2hhcnQuUGFuZSIpO3ZhciByYztmdW5jdGlvbiBvYyhlLHQsaSl7ZS5zZXRNYXJnaW5zKHt0b3A6dCxib3R0b206aX0pfSFmdW5jdGlvbihlKXtlW2UuRGVmYXVsdFN0cmV0Y2hGYWN0b3I9MWUzXT0iRGVmYXVsdFN0cmV0Y2hGYWN0b3IiLGVbZS5MYXJnZVBhbmVTaXplUmF0aW89MV09IkxhcmdlUGFuZVNpemVSYXRpbyIsZVtlLk1lZGl1bVBhbmVTaXplUmF0aW89LjZdPSJNZWRpdW1QYW5lU2l6ZVJhdGlvIixlW2UuU21hbGxQYW5lU2l6ZVJhdGlvPS4zXT0iU21hbGxQYW5lU2l6ZVJhdGlvIixlW2UuVGlueVBhbmVTaXplUmF0aW89LjE1XT0iVGlueVBhbmVTaXplUmF0aW8ifShyY3x8KHJjPXt9KSkKO2NvbnN0IGFjPSJjaGFydC5wYW5lIjtjbGFzcyBsY3tjb25zdHJ1Y3RvcihlLHQsaSxzLG4pe3RoaXMubV9kYXRhU291cmNlcz1bXSx0aGlzLl9zb3VyY2VXYXRjaGVkVmFsdWVzU3Vic2NyaXB0aW9ucz1uZXcgTWFwLHRoaXMubV9tYWluRGF0YVNvdXJjZT1udWxsLHRoaXMuX2NhY2hlZE9yZGVyZWRTb3VyY2VzPW5ldyBDbCh0aGlzKSx0aGlzLl9zb3VyY2VzQnlJZD1uZXcgTWFwLHRoaXMuX3ByaWNlU291cmNlc0J5SWQ9bmV3IE1hcCx0aGlzLl9zb3VyY2VQcm9wZXJ0aWVzQ2hhbmdlZD1uZXcgZi5EZWxlZ2F0ZSx0aGlzLl9zb3VyY2VzWk9yZGVyQ2hhbmdlZD1uZXcgZi5EZWxlZ2F0ZSx0aGlzLl90YWdzQ2hhbmdlZD1uZXcgZi5EZWxlZ2F0ZSx0aGlzLl9zdHJldGNoRmFjdG9yPTFlMyx0aGlzLl9pc0luSW5zZXJ0TWFueURhdGFTb3VyY2VzU3RhdGU9ITEsdGhpcy5fbGFzdExpbmVEYXRhU291cmNlWk9yZGVyPW51bGwsdGhpcy5fcmlnaHRQcmljZVNjYWxlcz1bXSx0aGlzLl9sZWZ0UHJpY2VTY2FsZXM9W10sdGhpcy5fbG9ja2VkUHJpY2VTY2FsZT1udWxsLHRoaXMuX2N1cnJlbnRQcmljZVNjYWxlUmF0aW89bnVsbCx0aGlzLl9vblByaWNlU2NhbGVzQ2hhbmdlZD1uZXcgZi5EZWxlZ2F0ZSx0aGlzLl9pc1JlY2FsY3VsYXRpbmdTY2FsZXM9ITEsdGhpcy5fcHJpY2VEYXRhU291cmNlcz1bXSx0aGlzLl9zeW1ib2xTb3VyY2VzPVtdLHRoaXMuX3N0dWR5U291cmNlcz1bXSx0aGlzLl9sb2xsaXBvcERhdGFTb3VyY2VzPVtdLHRoaXMuX3N5bWJvbFNvdXJjZVJlc29sdmVkPW5ldyBmLkRlbGVnYXRlLHRoaXMuX3N5bWJvbFNvdXJjZVJlc29sdmluZ0FjdGl2ZT1uZXcgaC5XYXRjaGVkVmFsdWUoITEpLHRoaXMuX2J1bGtBY3Rpb25zPXthY3RpdmVDb3VudGVyOjB9LHRoaXMuX2hlaWdodD0wLHRoaXMuX3dpZHRoPTAsdGhpcy5fc2l6ZUNoYW5nZWQ9bmV3IGYuRGVsZWdhdGUsdGhpcy5fZGF0YVNvdXJjZXNDb2xsZWN0aW9uQ2hhbmdlZD1uZXcgZi5EZWxlZ2F0ZSx0aGlzLl9kYXRhU291cmNlc1pPcmRlcnNDaGFuZ2VkPW5ldyBmLkRlbGVnYXRlLHRoaXMuX3N5bWJvbFNvdXJjZUNvbGxlY3Rpb25DaGFuZ2VkPW5ldyBmLkRlbGVnYXRlLHRoaXMuX3ByaWNlU291cmNlc0NvbGxlY3Rpb25DaGFuZ2VkPW5ldyBmLkRlbGVnYXRlLHRoaXMuX2lzTWFpblBhbmU9bmV3IGguV2F0Y2hlZFZhbHVlKCExKSx0aGlzLl9jb2xsYXBzZWQ9bmV3IGguV2F0Y2hlZFZhbHVlKCExKSx0aGlzLl9yZXNldFByaWNlU2NhbGVzQXZhaWxhYmxlPW5ldyBoLldhdGNoZWRWYWx1ZSghMSksdGhpcy5fZGVzdHJveWVkPW5ldyBmLkRlbGVnYXRlLHRoaXMuX2V4ZWN1dGlvbnNQb3NpdGlvbkNvbnRyb2xsZXI9bnVsbCx0aGlzLl9zZXJpZXNEaXNwbGF5RXJyb3I9bnVsbCx0aGlzLl9vblByaWNlU2NhbGVJc1Zpc2libGVDaGFuZ2VkPSgpPT57dGhpcy5fbW9kZWwuZnVsbFVwZGF0ZSgpfSx0aGlzLl9yZWNhbGNTeW1ib2xTb3VyY2VSZXNvbHZpbmdBY3RpdmU9KCk9Pntmb3IoY29uc3QgZSBvZiB0aGlzLl9zeW1ib2xTb3VyY2VzKWlmKGUuc3ltYm9sUmVzb2x2aW5nQWN0aXZlKCkudmFsdWUoKSlyZXR1cm4gdm9pZCB0aGlzLl9zeW1ib2xTb3VyY2VSZXNvbHZpbmdBY3RpdmUuc2V0VmFsdWUoITApO3RoaXMuX3N5bWJvbFNvdXJjZVJlc29sdmluZ0FjdGl2ZS5zZXRWYWx1ZSghMSl9LHRoaXMuX29uU3ltYm9sU291cmNlQ29sbGVjdGlvbkNoYW5nZWQ9KCk9PnswPT09dGhpcy5fYnVsa0FjdGlvbnMuYWN0aXZlQ291bnRlcj90aGlzLl9zeW1ib2xTb3VyY2VDb2xsZWN0aW9uQ2hhbmdlZC5maXJlKCk6dGhpcy5fYnVsa0FjdGlvbnMuc3ltYm9sU291cmNlQ29sbGVjdGlvbkNoYW5nZWQ9ITB9LHRoaXMuX29uU2VyaWVzRGlzcGxheUVycm9yPWU9Pnt9LHRoaXMuX3VwZGF0ZVJlc2V0UHJpY2VTY2FsZXNBdmFpbGFibGVWYWx1ZT0oKT0+e2NvbnN0IGU9ZT0+ZS5yZXNldFNjYWxlQXZhaWxhYmxlKCkudmFsdWUoKSx0PXRoaXMuX2xlZnRQcmljZVNjYWxlcy5zb21lKGUpfHx0aGlzLl9yaWdodFByaWNlU2NhbGVzLnNvbWUoZSk7dGhpcy5fcmVzZXRQcmljZVNjYWxlc0F2YWlsYWJsZS5zZXRWYWx1ZSh0KX0sdGhpcy5fcHJpY2VTY2FsZVNlbGVjdGlvblN0cmF0ZWd5PSgwLGNsLmNyZWF0ZVByaWNlU2NhbGVTZWxlY3Rpb25TdHJhdGVneSkoaS5wcm9wZXJ0aWVzKCkuY2hpbGRzKCkucHJpY2VTY2FsZVNlbGVjdGlvblN0cmF0ZWd5TmFtZS52YWx1ZSgpKSx0aGlzLl9pZD1zPz8oMCxsdC5yYW5kb21IYXNoTikoNiksdGhpcy5fbW9kZT1uPz9NLlBhbmVNb2RlLlJlZ3VsYXIsdGhpcy5fdGltZVNjYWxlPWUsdGhpcy5tX21haW5EYXRhU291cmNlPW51bGwsdGhpcy5fcHJvcGVydGllcz10LHRoaXMuX21vZGVsPWksdGhpcy5fbWF4aW1pemVkPSgwLHUuY29tYmluZSkoKGU9PmU9PT10aGlzKSxpLm1heGltaXplZFBhbmUoKS5zcGF3bk93bmVyc2hpcCgpKSx0aGlzLl9jb2xsYXBzaW5nQXZhaWxhYmxlPSgwLHUuY29tYmluZSkoKChlLHQpPT4hZSYmdCksdGhpcy5faXNNYWluUGFuZS53ZWFrUmVmZXJlbmNlKCksaS5wYW5lQ29sbGFwc2luZ0F2YWlsYWJsZSgpLndlYWtSZWZlcmVuY2UoKSksaS5wcm9wZXJ0aWVzKCkuY2hpbGRzKCkucHJpY2VTY2FsZVNlbGVjdGlvblN0cmF0ZWd5TmFtZS5zdWJzY3JpYmUobnVsbCwoZT0+e3RoaXMuX3ByaWNlU2NhbGVTZWxlY3Rpb25TdHJhdGVneT0oMCxjbC5jcmVhdGVQcmljZVNjYWxlU2VsZWN0aW9uU3RyYXRlZ3kpKGUudmFsdWUoKSksdGhpcy5fcHJpY2VTY2FsZVNlbGVjdGlvblN0cmF0ZWd5LmFwcGx5KHRoaXMpfSkpLHRoaXMuX3RpbWVTY2FsZS5iYXJTcGFjaW5nQ2hhbmdlZCgpLnN1YnNjcmliZSh0aGlzLCgoKT0+e3RoaXMubV9tYWluRGF0YVNvdXJjZT09PXRoaXMuX21vZGVsLm1haW5TZXJpZXMoKSYmdGhpcy5fcmVjYWxjdWxhdGVQcmljZVNjYWxlQnlTY2FsZVJhdGlvKHRoaXMubV9tYWluRGF0YVNvdXJjZS5wcmljZVNjYWxlKCkpfSkpLGkub25NdWx0aXBhbmVTb3VyY2VzQ29sbGVjdGlvbkNoYW5nZWQoKS5zdWJzY3JpYmUodGhpcyx0aGlzLl9pbnZhbGlkYXRlU291cmNlc0NhY2hlKSwKaS5wYW5lc0NvbGxlY3Rpb25DaGFuZ2VkKCkuc3Vic2NyaWJlKHRoaXMsdGhpcy5faW52YWxpZGF0ZVNvdXJjZXNDYWNoZSksdC5jaGlsZHMoKS50b3BNYXJnaW4uc3Vic2NyaWJlKHRoaXMsdGhpcy5fdXBkYXRlTWFyZ2lucyksdC5jaGlsZHMoKS5ib3R0b21NYXJnaW4uc3Vic2NyaWJlKHRoaXMsdGhpcy5fdXBkYXRlTWFyZ2lucyksdGhpcy5fbGluZVRvb2xzQnlMaW5rS2V5PW5ldyBobCgoZT0+ZS5saW5rS2V5KCkudmFsdWUoKSksKGU9PmUuaWQoKSkpLHRoaXMuX3VwZGF0ZU1hcmdpbnMoKX1kZXN0cm95KCl7aWYodGhpcy5fcHJvcGVydGllcy5jaGlsZHMoKS50b3BNYXJnaW4udW5zdWJzY3JpYmVBbGwodGhpcyksdGhpcy5fcHJvcGVydGllcy5jaGlsZHMoKS5ib3R0b21NYXJnaW4udW5zdWJzY3JpYmVBbGwodGhpcyksdGhpcy5fbW9kZWwucHJvcGVydGllcygpLmNoaWxkcygpLnByaWNlU2NhbGVTZWxlY3Rpb25TdHJhdGVneU5hbWUudW5zdWJzY3JpYmVBbGwodGhpcyksdGhpcy5fdGltZVNjYWxlLmJhclNwYWNpbmdDaGFuZ2VkKCkudW5zdWJzY3JpYmVBbGwodGhpcyksdGhpcy5fbGVmdFByaWNlU2NhbGVzLmNvbmNhdCh0aGlzLl9yaWdodFByaWNlU2NhbGVzKS5mb3JFYWNoKChlPT57ZS5tb2RlQ2hhbmdlZCgpLnVuc3Vic2NyaWJlQWxsKHRoaXMpLGUucHJpY2VSYW5nZUNoYW5nZWQoKS51bnN1YnNjcmliZUFsbCh0aGlzKSxlLmludGVybmFsSGVpZ2h0Q2hhbmdlZCgpLnVuc3Vic2NyaWJlQWxsKHRoaXMpLGUuaXNWaXNpYmxlKCkudW5zdWJzY3JpYmUodGhpcy5fb25QcmljZVNjYWxlSXNWaXNpYmxlQ2hhbmdlZCksZS5yZXNldFNjYWxlQXZhaWxhYmxlKCkudW5zdWJzY3JpYmUodGhpcy5fdXBkYXRlUmVzZXRQcmljZVNjYWxlc0F2YWlsYWJsZVZhbHVlKX0pKSx0aGlzLl9tb2RlPT09TS5QYW5lTW9kZS5SZWd1bGFyKWZvcihjb25zdCBlIG9mIHRoaXMubV9kYXRhU291cmNlcyl0aGlzLnJlbW92ZVNvdXJjZUZyb21QcmljZVNjYWxlKGUpLGUuZGVzdHJveSYmZS5kZXN0cm95KCk7dGhpcy5fc2VyaWVzRGlzcGxheUVycm9yPy5kZXN0cm95KCksdGhpcy5fbW9kZWwub25NdWx0aXBhbmVTb3VyY2VzQ29sbGVjdGlvbkNoYW5nZWQoKS51bnN1YnNjcmliZUFsbCh0aGlzKSx0aGlzLl9tb2RlbC5wYW5lc0NvbGxlY3Rpb25DaGFuZ2VkKCkudW5zdWJzY3JpYmVBbGwodGhpcyksdGhpcy5fbWF4aW1pemVkLmRlc3Ryb3koKSx0aGlzLl9jb2xsYXBzaW5nQXZhaWxhYmxlLmRlc3Ryb3koKSx0aGlzLl9kZXN0cm95ZWQuZmlyZSgpfWlkKCl7cmV0dXJuIHRoaXMuX2lkfW1vZGUoKXtyZXR1cm4gdGhpcy5fbW9kZX1idWxrQWN0aW9uTWFjcm8oZSl7dGhpcy5iZWdpbkJ1bGtBY3Rpb24oKSxlKCksdGhpcy5lbmRCdWxrQWN0aW9uKCl9YmVnaW5CdWxrQWN0aW9uKCl7dGhpcy5fYnVsa0FjdGlvbnMuYWN0aXZlQ291bnRlcis9MX1lbmRCdWxrQWN0aW9uKCl7dGhpcy5fYnVsa0FjdGlvbnMuYWN0aXZlQ291bnRlci09MSx0aGlzLl9wcm9jZXNzQWZ0ZXJCdWxrQWN0aW9uKCl9ZGVmYXVsdFByaWNlU2NhbGUoKXtjb25zdCBlPXRoaXMubV9tYWluRGF0YVNvdXJjZT8ucHJpY2VTY2FsZSgpPz9udWxsO2lmKG51bGwhPT1lKXJldHVybiBlO2NvbnN0IHQ9dGhpcy5wcm9wZXJ0aWVzKCkuY2hpbGRzKCkuYXhpc1Byb3BlcnRpZXMuc3RhdGUoKTtyZXR1cm4gdC5hdXRvU2NhbGU9ITAsbmV3IHFsKHRoaXMuX21vZGVsLnByb3BlcnRpZXMoKS5jaGlsZHMoKS5zY2FsZXNQcm9wZXJ0aWVzLHQpfWxlZnRQcmljZVNjYWxlcygpe3JldHVybiB0aGlzLl9sZWZ0UHJpY2VTY2FsZXN9cmlnaHRQcmljZVNjYWxlcygpe3JldHVybiB0aGlzLl9yaWdodFByaWNlU2NhbGVzfXZpc2libGVMZWZ0UHJpY2VTY2FsZXMoKXtjb25zdCBlPXRoaXMuX21vZGVsLnByaWNlU2NhbGVTbG90c0NvdW50KCksdD10aGlzLl9sZWZ0UHJpY2VTY2FsZXMuZmlsdGVyKChlPT5lLmlzVmlzaWJsZSgpLnZhbHVlKCkpKSxpPXRoaXMubWFpbkRhdGFTb3VyY2UoKT8ucHJpY2VTY2FsZSgpO2lmKHQubGVuZ3RoPmUubGVmdCYmaT8uaXNWaXNpYmxlKCkudmFsdWUoKSl7Y29uc3Qgcz0oMCxnLm1vdmVUb0hlYWQpKHQsaSk7cmV0dXJuIHMuc3BsaWNlKGUubGVmdCksc31yZXR1cm4gdH12aXNpYmxlUmlnaHRQcmljZVNjYWxlcygpe2NvbnN0IGU9dGhpcy5fbW9kZWwucHJpY2VTY2FsZVNsb3RzQ291bnQoKSx0PXRoaXMuX3JpZ2h0UHJpY2VTY2FsZXMuZmlsdGVyKChlPT5lLmlzVmlzaWJsZSgpLnZhbHVlKCkpKSxpPXRoaXMubWFpbkRhdGFTb3VyY2UoKT8ucHJpY2VTY2FsZSgpO2lmKHQubGVuZ3RoPmUucmlnaHQmJmk/LmlzVmlzaWJsZSgpLnZhbHVlKCkpe2NvbnN0IHM9KDAsZy5tb3ZlVG9IZWFkKSh0LGkpO3JldHVybiBzLnNwbGljZShlLnJpZ2h0KSxzfXJldHVybiB0fWNsZWFyU2VyaWVzKGUpe2NvbnN0IHQ9dGhpcy5fbW9kZWwubWFpblNlcmllcygpO2ZvcihsZXQgaT10aGlzLm1fZGF0YVNvdXJjZXMubGVuZ3RoLTE7aT49MDtpLS0pdGhpcy5tX2RhdGFTb3VyY2VzW2ldPT09dCYmdGhpcy5fcmVtb3ZlU291cmNlRnJvbUNvbGxlY3Rpb25zKGksZSl9c291cmNlc0J5R3JvdXAoKXtyZXR1cm4gdGhpcy5fY2FjaGVkT3JkZXJlZFNvdXJjZXN9ZGF0YVNvdXJjZUZvcklkKGUpe3JldHVybiB0aGlzLl9zb3VyY2VzQnlJZC5nZXQoZSl8fG51bGx9bGluZVRvb2xCeUxpbmtLZXkoZSl7cmV0dXJuIHRoaXMuX2xpbmVUb29sc0J5TGlua0tleS5nZXRCeUtleTEoZSl9Y2hhbmdlU291cmNlSWQoZSx0KXtlPT09dGhpcy5fbW9kZWwubWFpblNlcmllcygpJiYoMCxsbC5nZXRQZXJzaXN0ZW50TG9nZ2VyKSgpPy5hZGRQZXJzaXN0ZW50TG9nRW50cnkoYGNoYW5nZVNvdXJjZUlkIGZvciBzZXJpZXMgZnJvbSAke2UuaWQoKX0gdG8gJHt0fWAsYy5MT0dMRVZFTC5JTkZPLGFjKSwoMCxsLmFzc2VydCkodGhpcy5oYXNEYXRhU291cmNlKGUpKTtjb25zdCBpPWUuaWQoKTtlLnNldElkKHQpLHRoaXMuX3NvdXJjZXNCeUlkLmRlbGV0ZShpKSx0aGlzLl9zb3VyY2VzQnlJZC5zZXQodCxlKSwoMCwKSHMuaXNQcmljZURhdGFTb3VyY2UpKGUpJiYodGhpcy5fcHJpY2VTb3VyY2VzQnlJZC5kZWxldGUoaSksdGhpcy5fcHJpY2VTb3VyY2VzQnlJZC5zZXQodCxlKSl9bW92ZVByaWNlU2NhbGUoZSx0LGkpe2NvbnN0IHM9dGhpcy5wcmljZVNjYWxlUG9zaXRpb24oZSk7aWYocyE9PXQpdGhpcy5yZW1vdmVQcmljZVNjYWxlKGUpLHRoaXMuX3BsYWNlUHJpY2VTY2FsZShlLHQsaSksZS5pbnZhbGlkYXRlTWFyZ2lucygpLHRoaXMuX2ludmFsaWRhdGVTb3VyY2VzQ2FjaGUoKTtlbHNlIGlmKHZvaWQgMCE9PWkmJiJvdmVybGF5IiE9PXMpe2NvbnN0IHQ9ImxlZnQiPT09cz90aGlzLl9sZWZ0UHJpY2VTY2FsZXM6dGhpcy5fcmlnaHRQcmljZVNjYWxlcyxuPXQuaW5kZXhPZihlKTt0LnNwbGljZShuLDEpLHQuc3BsaWNlKGksMCxlKX19bWFpbkRhdGFTb3VyY2UoKXtyZXR1cm4gdGhpcy5tX21haW5EYXRhU291cmNlfWlzRW1wdHkoKXtyZXR1cm4gbnVsbD09PXRoaXMubV9tYWluRGF0YVNvdXJjZX1yZWNhbGN1bGF0ZVByaWNlU2NhbGUoZSx0KXtpZighZSlyZXR1cm47bGV0IGk9ZS5zb3VyY2VzRm9yQXV0b3NjYWxlKCk7aWYoZT09PXRoaXMuX21vZGVsLm1haW5TZXJpZXMoKS5wcmljZVNjYWxlKCkmJihpPVsuLi5pLC4uLnRoaXMuX2NhY2hlZE9yZGVyZWRTb3VyY2VzLm11bHRpcGFuZVNvdXJjZXMoKV0pLChlLmlzQXV0b1NjYWxlKCl8fGUucHJpY2VSYW5nZVNob3VsZEJlUmVjYWxjdWxhdGVkT25jZSgpfHxudWxsPT09ZS5wcmljZVJhbmdlKCkpJiZpLmxlbmd0aD4wJiYhdGhpcy50aW1lU2NhbGUoKS5pc0VtcHR5KCkpe2NvbnN0IGk9ZS5wcmljZVJhbmdlKCkscz10aGlzLnRpbWVTY2FsZSgpLnZpc2libGVCYXJzU3RyaWN0UmFuZ2UoKSxuPXRoaXMudGltZVNjYWxlKCkubG9naWNhbFJhbmdlKCk7ZS5yZWNhbGN1bGF0ZVByaWNlUmFuZ2UocyxuKSxQbC5QcmljZVJhbmdlLmNvbXBhcmUoaSxlLnByaWNlUmFuZ2UoKSl8fGUudXBkYXRlQWxsVmlld3ModCl9fW9uU291cmNlVGFnc0NoYW5nZWQoKXt0aGlzLl90YWdzQ2hhbmdlZC5maXJlKCl9aW5zZXJ0RGF0YVNvdXJjZShlLHQsaSxzKXtlLnNldFpvcmRlcihpKSx0fHwocz0hMSx0PXRoaXMuZmluZFN1aXRhYmxlU2NhbGUoZSkpLHRoaXMuX2FkZFNvdXJjZVRvQ29sbGVjdGlvbnMoZSk7bGV0IG49ITE7ZT09PXRoaXMubW9kZWwoKS5tYWluU2VyaWVzKCk/KHRoaXMubV9tYWluRGF0YVNvdXJjZT10aGlzLm1vZGVsKCkubWFpblNlcmllcygpLG49ITApOm51bGw9PT10aGlzLm1fbWFpbkRhdGFTb3VyY2UmJigwLEhzLmlzUHJpY2VEYXRhU291cmNlKShlKSYmKHRoaXMubV9tYWluRGF0YVNvdXJjZT1lLG49ITApLHN8fHQuYWRkRGF0YVNvdXJjZShlLHRoaXMuX2lzSW5JbnNlcnRNYW55RGF0YVNvdXJjZXNTdGF0ZSksZS5zZXRQcmljZVNjYWxlKHQpLHQuaW52YWxpZGF0ZU1hcmdpbnMoKSxlLm9uVGFnc0NoYW5nZWQmJmUub25UYWdzQ2hhbmdlZCgpLnN1YnNjcmliZSh0aGlzLHRoaXMub25Tb3VyY2VUYWdzQ2hhbmdlZCksbiYmdGhpcy5fbW9kZT09PU0uUGFuZU1vZGUuUmVndWxhciYmdGhpcy5fcHJvY2Vzc01haW5Tb3VyY2VDaGFuZ2UoKSx0aGlzLl90YWdzQ2hhbmdlZC5maXJlKCksKDAsSHMuaXNQcmljZURhdGFTb3VyY2UpKGUpJiZ0aGlzLnJlY2FsY3VsYXRlUHJpY2VTY2FsZSh0LCgwLHRuLnNvdXJjZUNoYW5nZUV2ZW50KShlLmlkKCkpKSx0aGlzLl9pbnZhbGlkYXRlU291cmNlc0NhY2hlKCksdGhpcy5faXNJbkluc2VydE1hbnlEYXRhU291cmNlc1N0YXRlfHwoMCxsLmVuc3VyZU5vdE51bGwpKHRoaXMubW9kZWwoKS5hbGVydHNXYXRjaGVyKCkpLnN5bmNTb3VyY2VBbGVydExhYmVscyhlKX1hZGREYXRhU291cmNlKGUsdCxpKXtsZXQgcz1lLnpvcmRlcigpO2l8fCgoMCxyaS5pc0xpbmVUb29sKShlKSYmIWUuaXNTcGVjaWFsbHlaT3JkZXJlZFNvdXJjZSgpPyhzPW51bGwhPT10aGlzLl9sYXN0TGluZURhdGFTb3VyY2VaT3JkZXI/dGhpcy5fbGFzdExpbmVEYXRhU291cmNlWk9yZGVyKzE6dGhpcy5uZXdMaW5lVG9vbFpPcmRlcigpLHRoaXMuX2lzSW5JbnNlcnRNYW55RGF0YVNvdXJjZXNTdGF0ZSYmKHRoaXMuX2xhc3RMaW5lRGF0YVNvdXJjZVpPcmRlcj1zKSk6KDAsdGkuaXNTdHVkeSkoZSkmJiFlLmlzU3BlY2lhbGx5Wk9yZGVyZWRTb3VyY2UoKSYmKHM9dGhpcy5uZXdTdHVkeVpPcmRlcigpKSksdGhpcy5pbnNlcnREYXRhU291cmNlKGUsdCxzKX1yZW1vdmVEYXRhU291cmNlKGUsdD0hMSxpPSExLHM9ITEpe2xldCBuPXRoaXMubV9kYXRhU291cmNlcy5pbmRleE9mKGUpO2lmKC0xPT09bilyZXR1cm4gdm9pZCBuYy5sb2dEZWJ1ZygicmVtb3ZlRGF0YVNvdXJjZTogaW52YWxpZCBkYXRhIHNvdXJjZSIpOygwLGwuZW5zdXJlTm90TnVsbCkodGhpcy5tb2RlbCgpLmFsZXJ0c1dhdGNoZXIoKSkuZGV0YWNoU291cmNlQWxlcnRMYWJlbHMoZSksbj10aGlzLm1fZGF0YVNvdXJjZXMuaW5kZXhPZihlKSx0aGlzLl9yZW1vdmVTb3VyY2VGcm9tQ29sbGVjdGlvbnMobixpKSxlPT09dGhpcy5tX21haW5EYXRhU291cmNlJiYodGhpcy5tX21haW5EYXRhU291cmNlPW51bGwpO2NvbnN0IHI9ZS5wcmljZVNjYWxlKCk7c3x8dGhpcy5yZW1vdmVTb3VyY2VGcm9tUHJpY2VTY2FsZShlKSxlLm9uVGFnc0NoYW5nZWQmJmUub25UYWdzQ2hhbmdlZCgpLnVuc3Vic2NyaWJlKHRoaXMsdGhpcy5vblNvdXJjZVRhZ3NDaGFuZ2VkKSwoMCxIcy5pc1ByaWNlRGF0YVNvdXJjZSkoZSkmJiF0JiZ0aGlzLl9wcm9jZXNzTWFpblNvdXJjZUNoYW5nZSgpLCgwLHRpLmlzU3R1ZHkpKGUpJiZlLm1ldGFJbmZvKCkuaGFzRm9yY2VPdmVybGF5UGxvdHMoKSYmdGhpcy5fbW9kZWwucmVtb3ZlTXVsdGlQYW5lU291cmNlKGUpLHRoaXMuX3RhZ3NDaGFuZ2VkLmZpcmUoKSxyJiYoMCxIcy5pc1ByaWNlRGF0YVNvdXJjZSkoZSkmJnRoaXMucmVjYWxjdWxhdGVQcmljZVNjYWxlKHIsKDAsdG4uc291cmNlQ2hhbmdlRXZlbnQpKGUuaWQoKSkpLHRoaXMuX2ludmFsaWRhdGVTb3VyY2VzQ2FjaGUoKX1oYXNEYXRhU291cmNlKGUpe3JldHVybiB0aGlzLl9zb3VyY2VzQnlJZC5oYXMoZS5pZCgpKX0KaGFzRGF0YVNvdXJjZVdpdGhTaWduYXR1cmUoZSl7cmV0dXJuIHRoaXMuX3ByaWNlRGF0YVNvdXJjZXMuc29tZSgodD0+dC5zaWduYXR1cmUoKS52YWx1ZSgpPT09ZSkpfWhhc1ByaWNlRGF0YVNvdXJjZShlKXtyZXR1cm4gdGhpcy5fcHJpY2VTb3VyY2VzQnlJZC5oYXMoZS5pZCgpKX1kYXRhU291cmNlcygpe3JldHVybiB0aGlzLm1fZGF0YVNvdXJjZXN9cHJpY2VEYXRhU291cmNlcygpe3JldHVybiB0aGlzLl9wcmljZURhdGFTb3VyY2VzfXN0dWR5U291cmNlcygpe3JldHVybiB0aGlzLl9zdHVkeVNvdXJjZXN9bG9sbGlwb3BEYXRhU291cmNlcygpe3JldHVybiB0aGlzLl9sb2xsaXBvcERhdGFTb3VyY2VzfXN5bWJvbFNvdXJjZXMoKXtyZXR1cm4gdGhpcy5fc3ltYm9sU291cmNlc31yZXBsYWNlU291cmNlKGUsdCxpKXtjb25zdCBzPXRoaXMubV9tYWluRGF0YVNvdXJjZT09PWUsbj1pPy5yZXBsYWNlU291cmNlKGUsdCk7dGhpcy5yZW1vdmVEYXRhU291cmNlKGUsITAsdm9pZCAwLG4pLHRoaXMuaW5zZXJ0RGF0YVNvdXJjZSh0LGksZS56b3JkZXIoKSxuKSx0aGlzLl9zb3VyY2VzQnlJZC5zZXQodC5pZCgpLHQpLCgwLEhzLmlzUHJpY2VEYXRhU291cmNlKSh0KSYmdGhpcy5fcHJpY2VTb3VyY2VzQnlJZC5zZXQodC5pZCgpLHQpLHMmJih0aGlzLm1fbWFpbkRhdGFTb3VyY2U9dCx0aGlzLl9wcm9jZXNzTWFpblNvdXJjZUNoYW5nZSgpKX1maW5kU3VpdGFibGVTY2FsZShlLHQsaSl7cmV0dXJuIHRoaXMuX3ByaWNlU2NhbGVTZWxlY3Rpb25TdHJhdGVneS5maW5kU3VpdGFibGVTY2FsZSh0aGlzLGUsdCxpKX1jcmVhdGVOZXdQcmljZVNjYWxlSWZQb3NzaWJsZSgpe3JldHVybiB0aGlzLl9wcmljZVNjYWxlU2VsZWN0aW9uU3RyYXRlZ3kuY3JlYXRlTmV3UHJpY2VTY2FsZUlmUG9zc2libGUodGhpcyl9Y2FuQ3JlYXRlTmV3UHJpY2VTY2FsZSgpe3JldHVybiB0aGlzLl9wcmljZVNjYWxlU2VsZWN0aW9uU3RyYXRlZ3kuY2FuQ3JlYXRlTmV3UHJpY2VTY2FsZSh0aGlzKX1pc092ZXJsYXkoZSl7Y29uc3QgdD1lLnByaWNlU2NhbGUoKTtyZXR1cm4gbnVsbD09PXR8fCJvdmVybGF5Ij09PXRoaXMucHJpY2VTY2FsZVBvc2l0aW9uKHQpfXJlY2FsY3VsYXRlKGUpe3RoaXMuX2xlZnRQcmljZVNjYWxlcy5mb3JFYWNoKCh0PT50aGlzLnJlY2FsY3VsYXRlUHJpY2VTY2FsZSh0LGUpKSksdGhpcy5fcmlnaHRQcmljZVNjYWxlcy5mb3JFYWNoKCh0PT50aGlzLnJlY2FsY3VsYXRlUHJpY2VTY2FsZSh0LGUpKSk7Zm9yKGNvbnN0IHQgb2YgdGhpcy5tX2RhdGFTb3VyY2VzKXRoaXMuaXNPdmVybGF5KHQpJiYhKDAscmkuaXNMaW5lVG9vbCkodCkmJnRoaXMucmVjYWxjdWxhdGVQcmljZVNjYWxlKHQucHJpY2VTY2FsZSgpLGUpO3RoaXMudXBkYXRlQWxsVmlld3MoZSksdGhpcy5fbW9kZWwudXBkYXRlUGFuZSh0aGlzKX11cGRhdGVBbGxWaWV3cyhlKXtjb25zdCB0PXRoaXMuX2NhY2hlZE9yZGVyZWRTb3VyY2VzLmFsbCgpO2Zvcihjb25zdCBpIG9mIHQpaS51cGRhdGVBbGxWaWV3cyhlKTtmb3IoY29uc3QgdCBvZiB0aGlzLm1vZGVsKCkuY3VzdG9tU291cmNlcygpKXQudXBkYXRlVmlld3NGb3JQYW5lKHRoaXMsZSl9dXBkYXRlTG9sbGlwb3BWaWV3cyhlKXtmb3IoY29uc3QgdCBvZiB0aGlzLl9sb2xsaXBvcERhdGFTb3VyY2VzKXQudXBkYXRlQWxsVmlld3MoZSl9cHJpY2VTY2FsZVBvc2l0aW9uKGUpe3JldHVybiB0aGlzLl9sZWZ0UHJpY2VTY2FsZXMuaW5jbHVkZXMoZSk/ImxlZnQiOnRoaXMuX3JpZ2h0UHJpY2VTY2FsZXMuaW5jbHVkZXMoZSk/InJpZ2h0Ijoib3ZlcmxheSJ9Y3JlYXRlUHJpY2VTY2FsZUF0UG9zaXRpb24oZSx0KXtjb25zdCBpPXRoaXMucHJvcGVydGllcygpLmNoaWxkcygpLmF4aXNQcm9wZXJ0aWVzLnN0YXRlKCk7aS5hdXRvU2NhbGU9ITA7Y29uc3Qgcz1uZXcgcWwodGhpcy5tb2RlbCgpLnByb3BlcnRpZXMoKS5jaGlsZHMoKS5zY2FsZXNQcm9wZXJ0aWVzLGkpO3JldHVybiBzLnNldEhlaWdodCh0aGlzLmhlaWdodCgpKSxvYyhzLHRoaXMuX2RlZmF1bHRUb3BNYXJnaW4oKSx0aGlzLl9kZWZhdWx0Qm90dG9tTWFyZ2luKCkpLHRoaXMuX3BsYWNlUHJpY2VTY2FsZShzLGUsdCksc31yZW1vdmVQcmljZVNjYWxlKGUpe2UubW9kZUNoYW5nZWQoKS51bnN1YnNjcmliZUFsbCh0aGlzKSxlLnByaWNlUmFuZ2VDaGFuZ2VkKCkudW5zdWJzY3JpYmVBbGwodGhpcyksZS5pbnRlcm5hbEhlaWdodENoYW5nZWQoKS51bnN1YnNjcmliZUFsbCh0aGlzKSxlLmlzVmlzaWJsZSgpLnVuc3Vic2NyaWJlKHRoaXMuX29uUHJpY2VTY2FsZUlzVmlzaWJsZUNoYW5nZWQpLGUucmVzZXRTY2FsZUF2YWlsYWJsZSgpLnVuc3Vic2NyaWJlKHRoaXMuX3VwZGF0ZVJlc2V0UHJpY2VTY2FsZXNBdmFpbGFibGVWYWx1ZSksZT09PXRoaXMuX2xvY2tlZFByaWNlU2NhbGUmJih0aGlzLl9sb2NrZWRQcmljZVNjYWxlPW51bGwsdGhpcy5fY3VycmVudFByaWNlU2NhbGVSYXRpbz1udWxsKTtjb25zdCB0PXRoaXMuX2xlZnRQcmljZVNjYWxlcy5pbmRleE9mKGUpOy0xIT09dCYmKHRoaXMuX2xlZnRQcmljZVNjYWxlc1t0XS5pbnZhbGlkYXRlTWFyZ2lucygpLHRoaXMuX2xlZnRQcmljZVNjYWxlcy5zcGxpY2UodCwxKSk7Y29uc3QgaT10aGlzLl9yaWdodFByaWNlU2NhbGVzLmluZGV4T2YoZSk7aWYoLTEhPT1pJiYodGhpcy5fcmlnaHRQcmljZVNjYWxlc1tpXS5pbnZhbGlkYXRlTWFyZ2lucygpLHRoaXMuX3JpZ2h0UHJpY2VTY2FsZXMuc3BsaWNlKGksMSkpLG51bGw9PT1lLm1haW5Tb3VyY2UoKSl7Y29uc3QgdD1lLmRhdGFTb3VyY2VzKCkubGVuZ3RoOzAhPT10JiZuYy5sb2dFcnJvcigiSW52YWxpZCBwcmljZVNjYWxlIHN0YXRlOiBlbXB0eSBtYWluU291cmNlIGJ1dCBub24tZW1wdHkgZGF0YSBzb3VyY2VzPSIrdCl9dGhpcy5fb25QcmljZVNjYWxlc0NoYW5nZWQuZmlyZSgpLHRoaXMuX3VwZGF0ZVJlc2V0UHJpY2VTY2FsZXNBdmFpbGFibGVWYWx1ZSgpfXByaWNlU2NhbGVJbmRleChlLHQpe3N3aXRjaCh0KXtjYXNlImxlZnQiOnJldHVybiB0aGlzLmxlZnRQcmljZVNjYWxlcygpLmluZGV4T2YoZSk7Y2FzZSJyaWdodCI6CnJldHVybiB0aGlzLnJpZ2h0UHJpY2VTY2FsZXMoKS5pbmRleE9mKGUpfX1tb3ZlKGUsdCxpKXtjb25zdCBzPWUucHJpY2VTY2FsZSgpO3RoaXMucmVtb3ZlU291cmNlRnJvbVByaWNlU2NhbGUoZSksdC5hZGREYXRhU291cmNlKGUpLGUuc2V0UHJpY2VTY2FsZSh0KSx0LmludmFsaWRhdGVNYXJnaW5zKCksdGhpcy5fcHJvY2Vzc01haW5Tb3VyY2VDaGFuZ2UoKSx0aGlzLl9pbnZhbGlkYXRlU291cmNlc0NhY2hlKCksZS5pc0luY2x1ZGVkSW5BdXRvU2NhbGUoKSYmKG51bGwhPT1zJiZ0aGlzLnJlY2FsY3VsYXRlUHJpY2VTY2FsZShzLCgwLHRuLnNvdXJjZUNoYW5nZUV2ZW50KShlLmlkKCkpKSx0aGlzLnJlY2FsY3VsYXRlUHJpY2VTY2FsZSh0LCgwLHRuLnNvdXJjZUNoYW5nZUV2ZW50KShlLmlkKCkpKSksdGhpcy5fb25QcmljZVNjYWxlc0NoYW5nZWQuZmlyZSgpfXNldFpPcmRlcnMoZSl7ZS5mb3JFYWNoKCgoZSx0KT0+e3Quc2V0Wm9yZGVyKGUpfSkpLHRoaXMuX2ludmFsaWRhdGVTb3VyY2VzQ2FjaGUoKSx0aGlzLl9vbkRhdGFTb3VyY2VzWk9yZGVyc0NoYW5nZWQoKSwwPT09dGhpcy5fYnVsa0FjdGlvbnMuYWN0aXZlQ291bnRlciYmdGhpcy5fZGF0YVNvdXJjZXNDb2xsZWN0aW9uQ2hhbmdlZC5maXJlKCksdGhpcy5tb2RlbCgpLmZ1bGxVcGRhdGUoKX1pc01haW5QYW5lKCl7cmV0dXJuIHRoaXMuX2lzTWFpblBhbmUucmVhZG9ubHkoKX1pc0xhc3QoKXtjb25zdCBlPXRoaXMubW9kZWwoKS5wYW5lcygpO3JldHVybiBlW2UubGVuZ3RoLTFdPT09dGhpc31uZXdTdHVkeVpPcmRlcigpe3JldHVybigwLENvLm5ld1N0dWR5Wk9yZGVyKSh0aGlzLl9wcmljZURhdGFTb3VyY2VzKX1uZXdMaW5lVG9vbFpPcmRlcihlKXtyZXR1cm4oMCxDby5uZXdMaW5lVG9vbFpPcmRlcikodGhpcy5zb3VyY2VzQnlHcm91cCgpLnpPcmRlclZpc2libGVTb3VyY2VzKCksZSl9bW9kZWwoKXtyZXR1cm4gdGhpcy5fbW9kZWx9Y29udGFpbnNNYWluU2VyaWVzKCl7cmV0dXJuIHRoaXMuX3NvdXJjZXNCeUlkLmhhcyh0aGlzLm1vZGVsKCkubWFpblNlcmllcygpLmlkKCkpfWFwcGx5UHJpY2VTY2FsZVJhdGlvKGUsdCl7bnVsbCE9PXRoaXMuX2xvY2tlZFByaWNlU2NhbGUmJnRoaXMuX2xvY2tlZFByaWNlU2NhbGUhPT1lfHx0aGlzLl9jdXJyZW50UHJpY2VTY2FsZVJhdGlvPT09dHx8IXRoaXMuaXNNYWluUGFuZSgpLnZhbHVlKCl8fG51bGw9PT10aGlzLl9sb2NrZWRQcmljZVNjYWxlJiZlIT09dGhpcy5tYWluRGF0YVNvdXJjZSgpPy5wcmljZVNjYWxlKCl8fCh0aGlzLl9zZXROZXdQcmljZVJhbmdlQnlTY2FsZVJhdGlvKGUsdCx0aGlzLl9tYWluU291cmNlVmlzaWJsZVByaWNlUmFuZ2UoZSksITAsITApLG51bGwhPT10aGlzLl9sb2NrZWRQcmljZVNjYWxlP3RoaXMuX3RyeVRvQXBwbHlOZXdQcmljZVNjYWxlUmF0aW8oKTplLmlzTG9nKCl8fHRoaXMubW9kZWwoKS5tYWluU2VyaWVzU2NhbGVSYXRpb1Byb3BlcnR5T25DaGFuZ2VkKCkpfXNlbmRUb0JhY2soZSl7Y29uc3QgdD10aGlzLnNvdXJjZXNCeUdyb3VwKCkuek9yZGVyVmlzaWJsZVNvdXJjZXMoKTt0aGlzLl9iYXRjaFJlb3JkZXIoZSx0WzBdLENvLm1vdmVCZWZvcmVTb3VyY2UpfWJyaW5nVG9Gcm9udChlKXtjb25zdCB0PXRoaXMuc291cmNlc0J5R3JvdXAoKS5hbGxFeGNlcHRTcGVjaWFsU291cmNlcygpO3RoaXMuX2JhdGNoUmVvcmRlcihlLHRbdC5sZW5ndGgtMV0sQ28ubW92ZUFmdGVyU291cmNlKX1zZW5kQmFja3dhcmQoZSl7Y29uc3QgdD10aGlzLnNvdXJjZXNCeUdyb3VwKCkuYWxsSW5jbHVkaW5nSGlkZGVuKCksaT10LmluZGV4T2YoZVswXSk7aWYoMD09PWkpdGhpcy5icmluZ1RvRnJvbnQoZSk7ZWxzZXtjb25zdCBzPXRbaS0xXTt0aGlzLmluc2VydEJlZm9yZShlLHMpfX1icmluZ0ZvcndhcmQoZSl7Y29uc3QgdD10aGlzLnNvdXJjZXNCeUdyb3VwKCkuYWxsRXhjZXB0U3BlY2lhbFNvdXJjZXMoKSxpPXQuaW5kZXhPZihlW2UubGVuZ3RoLTFdKTtpZihpPT09dC5sZW5ndGgtMSl0aGlzLnNlbmRUb0JhY2soZSk7ZWxzZXtjb25zdCBzPXRbaSsxXTt0aGlzLmluc2VydEFmdGVyKGUscyl9fWluc2VydEFmdGVyKGUsdCl7dGhpcy5fYmF0Y2hSZW9yZGVyKGUsdCxDby5tb3ZlQWZ0ZXJTb3VyY2UpfWluc2VydEJlZm9yZShlLHQpe3RoaXMuX2JhdGNoUmVvcmRlcihlLHQsQ28ubW92ZUJlZm9yZVNvdXJjZSl9bWF4aW1pemVkKCl7cmV0dXJuIHRoaXMuX21heGltaXplZH1jb2xsYXBzZWQoKXtyZXR1cm4gdGhpcy5fY29sbGFwc2VkfWNvbGxhcHNpbmdBdmFpbGFibGUoKXtyZXR1cm4gdGhpcy5fY29sbGFwc2luZ0F2YWlsYWJsZX1nZXRQcmljZVNjYWxlQnlJZChlKXtjb25zdCB0PXRoaXMubV9kYXRhU291cmNlcy5maW5kKCh0PT50LnByaWNlU2NhbGUoKT8uaWQoKT09PWUpKTtyZXR1cm4gdm9pZCAwPT09dD9udWxsOnQucHJpY2VTY2FsZSgpfXByaWNlU2NhbGVTZWxlY3Rpb25TdHJhdGVneSgpe3JldHVybiB0aGlzLl9wcmljZVNjYWxlU2VsZWN0aW9uU3RyYXRlZ3l9c2V0UHJpY2VTY2FsZVNlbGVjdGlvblN0cmF0ZWd5KGUpe3RoaXMuX3ByaWNlU2NhbGVTZWxlY3Rpb25TdHJhdGVneT1lLGUuYXBwbHkodGhpcyl9ZmluZFRhcmdldFByaWNlQXhpc1ZpZXdzKGUsdCxpLHMpe2lmKCgwLEFpLmlzRGF0YVNvdXJjZSkoZSkmJnRoaXMubW9kZWwoKS5wYW5lRm9yU291cmNlKGUpIT09dGhpcylyZXR1cm5bXTtjb25zdCBuPWUucHJpY2VTY2FsZSgpO2lmKHQ9PT1uKXJldHVybiBpO2lmKG51bGw9PT1uKXJldHVybltdO2lmKCJvdmVybGF5Ij09PXRoaXMucHJpY2VTY2FsZVBvc2l0aW9uKG4pKXJldHVybiB0PT09dGhpcy5kZWZhdWx0UHJpY2VTY2FsZSgpP2k6W107Y29uc3Qgcj10aGlzLnByaWNlU2NhbGVQb3NpdGlvbih0KTtpZihyIT09dGhpcy5wcmljZVNjYWxlUG9zaXRpb24obikpcmV0dXJuW107Y29uc3Qgbz0ibGVmdCI9PT1yP3RoaXMubGVmdFByaWNlU2NhbGVzKCk6dGhpcy5yaWdodFByaWNlU2NhbGVzKCk7cmV0dXJuIG8uaW5kZXhPZih0KTxvLmluZGV4T2Yobik/czpbXX1hY3Rpb25Ob1NjYWxlSXNFbmFibGVkKGUpewpyZXR1cm4hKCF0aGlzLmlzT3ZlcmxheShlKSYmKDAsSHMuaXNQcmljZURhdGFTb3VyY2UpKGUpKXx8dGhpcy5fbm9uT3ZlcmxheVByaWNlc1NvdXJjZXNDb3VudCgpPjF9cHJvcGVydGllcygpe3JldHVybiB0aGlzLl9wcm9wZXJ0aWVzfXNldFByaWNlQXV0b1NjYWxlKGUsdCl7ZS5zZXRNb2RlKHthdXRvU2NhbGU6dH0pLHRoaXMudGltZVNjYWxlKCkuaXNFbXB0eSgpfHx0aGlzLnJlY2FsY3VsYXRlUHJpY2VTY2FsZShlLCgwLHRuLnZpZXdwb3J0Q2hhbmdlRXZlbnQpKCkpfXN0YXRlKGUpe2NvbnN0e3dpdGhEYXRhOnQsc2tpcExpbmVUb29sc0Zyb21PdGhlclN5bWJvbHM6aSx3aXBlU2Vuc2l0aXZlRGF0YTpzLHNraXBMaW5lVG9vbHM6bixza2lwTm9uU2hhcmVkTGluZVRvb2xzOnIsc2tpcEhpZGRlblNvdXJjZXM6byxpbmNsdWRlU291cmNlczphLGlzU3R1ZHlUZW1wbGF0ZTpsfT1lPz97fSxjPXtzb3VyY2VzOltdLG1haW5Tb3VyY2VJZDp0aGlzLm1fbWFpbkRhdGFTb3VyY2U/LmlkKCksc3RyZXRjaEZhY3Rvcjp0aGlzLl9zdHJldGNoRmFjdG9yLGxlZnRBeGlzZXNTdGF0ZTpbXSxyaWdodEF4aXNlc1N0YXRlOltdLG92ZXJsYXlQcmljZVNjYWxlczp7fSxwcmljZVNjYWxlUmF0aW86dGhpcy5fY3VycmVudFByaWNlU2NhbGVSYXRpbyxpc0NvbGxhcHNlZDp0aGlzLl9jb2xsYXBzZWQudmFsdWUoKSxpc01heGltaXplZDp0aGlzLl9tYXhpbWl6ZWQudmFsdWUoKSxtb2RlOnRoaXMuX21vZGV9LGg9bmV3IE1hcCxkPW5ldyBNYXAsdT1lPT57aWYoaC5oYXMoZSkpcmV0dXJuIGguZ2V0KGUpO2xldCB0PSExO2lmKCgwLHRpLmlzU3R1ZHkpKGUpKXQ9IShlLmlzVmlzaWJsZSgpfHxlLmhhc0NoaWxkcmVuKCkmJmUuZ2V0QWxsQ2hpbGRyZW4oKS5zb21lKChlPT5lLmlzVmlzaWJsZSgpKSkpO2Vsc2UgaWYoKDAscmkuaXNMaW5lVG9vbCkoZSkpaWYoZS5pc1Zpc2libGUoKSl7Y29uc3QgaT1lLm93bmVyU291cmNlKCk7dD0hIWkmJnUoaSl9ZWxzZSB0PSEwO3JldHVybiBoLnNldChlLHQpLHR9LHA9ZT0+e2lmKGQuaGFzKGUpKXJldHVybiBkLmdldChlKTtsZXQgYT1udWxsO2NvbnN0IGM9bCYmIWUuaXNTYXZlZEluU3R1ZHlUZW1wbGF0ZXMoKXx8KDAscWkuaXNBbGVydExhYmVsKShlKXx8IWUuc3RhdGV8fCgwLHJpLmlzTGluZVRvb2wpKGUpJiZufHxvJiZ1KGUpfHwhZS5pc1NhdmVkSW5DaGFydChCb29sZWFuKHQpKXx8IShhPWUuc3RhdGUodCxzKSl8fGkmJigwLHJpLmlzTGluZVRvb2wpKGUpJiZlLmlzQWN0dWFsU3ltYm9sJiYhZS5pc0FjdHVhbFN5bWJvbCgpfHxyJiYoMCxyaS5pc0xpbmVUb29sKShlKSYmMD09PWUuc2hhcmluZ01vZGUoKS52YWx1ZSgpfHxlLmlzUGhhbnRvbSgpP251bGw6YTtyZXR1cm4gZC5zZXQoZSxjKSxjfTtpZihhKXtjLnNvdXJjZXM9W107Zm9yKGxldCBlPTA7ZTx0aGlzLm1fZGF0YVNvdXJjZXMubGVuZ3RoO2UrKyl7Y29uc3QgdD1wKHRoaXMubV9kYXRhU291cmNlc1tlXSk7bnVsbCE9PXQmJmMuc291cmNlcy5wdXNoKHQpfX1jb25zdCBfPWU9Pm51bGwhPT1kLmdldChlKSxtPWU9PiFufHwhKDAscmkuaXNMaW5lVG9vbCkoZSk7Yy5sZWZ0QXhpc2VzU3RhdGU9dGhpcy5fbGVmdFByaWNlU2NhbGVzLm1hcCgoZT0+KHtzdGF0ZTplLnN0YXRlKCksc291cmNlczplLmRhdGFTb3VyY2VzKCkuZmlsdGVyKF8pLmZpbHRlcihtKS5tYXAoKGU9PmUuaWQoKSkpfSkpKSxjLnJpZ2h0QXhpc2VzU3RhdGU9dGhpcy5fcmlnaHRQcmljZVNjYWxlcy5tYXAoKGU9Pih7c3RhdGU6ZS5zdGF0ZSgpLHNvdXJjZXM6ZS5kYXRhU291cmNlcygpLmZpbHRlcihfKS5maWx0ZXIobSkubWFwKChlPT5lLmlkKCkpKX0pKSksYy5vdmVybGF5UHJpY2VTY2FsZXM9e307Zm9yKGNvbnN0IGUgb2YgdGhpcy5tX2RhdGFTb3VyY2VzKWlmKHRoaXMuaXNPdmVybGF5KGUpJiZlLmlzU2F2ZWRJbkNoYXJ0KEJvb2xlYW4odCkpKXtjb25zdCB0PWUucHJpY2VTY2FsZSgpO2Mub3ZlcmxheVByaWNlU2NhbGVzW2UuaWQoKV09dD8uc3RhdGUoKT8/bnVsbH1yZXR1cm4gY31yZXN0b3JlU3RhdGUoZSl7Y29uc3R7c3RhdGU6dCx3aXRoRGF0YTppLHZlcnNpb246cyxzZXJpZXNJZDpuPXRoaXMuX21vZGVsLm1haW5TZXJpZXMoKS5pZCgpLHNldHRpbmdzTWlncmF0aW9uOnI9e30sY29udGVudE92ZXJyaWRlczpvLHJlc3RvcmVTaWxlbnRseTphLHJlYXNvbjpoPTAsaXNTdHVkeVRlbXBsYXRlOmQ9ITF9PWU7KDAsbGwuZ2V0UGVyc2lzdGVudExvZ2dlcikoKT8uYWRkUGVyc2lzdGVudExvZ0VudHJ5KGBSZXN0b3JpbmcgcGFuZSB3aXRoIHNlcmllc0lkICR7bn1gLGMuTE9HTEVWRUwuSU5GTyxhYyksdGhpcy5fbW9kZT10Lm1vZGU/P00uUGFuZU1vZGUuUmVndWxhcix0LnN0cmV0Y2hGYWN0b3ImJih0aGlzLl9zdHJldGNoRmFjdG9yPXQuc3RyZXRjaEZhY3Rvcik7Y29uc3QgdT17fTtpZih0LnNvdXJjZXMpe2NvbnN0IGU9dC5zb3VyY2VzLmZpbHRlcigoZT0+ISFlJiYoIk1haW5TZXJpZXMiPT09ZS50eXBlfHwoIWUucG9pbnRzPy5zb21lKChlPT5udWxsPT09ZS50aW1lX3R8fCFpc0Zpbml0ZShlLnRpbWVfdCkpKXx8KG5jLmxvZ05vcm1hbCgiRHJvcHBlZCBpbnZhbGlkICIrZS50eXBlKyIuIFJlYXNvbjogbm9uLW51bWVyaWMgcG9pbnQgdGltZSIpLCExKSkpKSksbD1lLmZpbmRJbmRleChQLmlzTWFpblNlcmllc1N0YXRlKTstMSE9PWwmJnRoaXMubW9kZWwoKS5tYWluU2VyaWVzKCkuc2V0T2Jzb2xldGVaT3JkZXIoZVtsXS56b3JkZXIpLHM8MyYmKDAsQ28ucmVvcmRlckRhdGFTb3VyY2VzU3RhdGVaT3JkZXIpKGUpO2NvbnN0IGM9LTEhPT10aGlzLm1fZGF0YVNvdXJjZXMuaW5kZXhPZih0aGlzLl9tb2RlbC5tYWluU2VyaWVzKCkpO3RoaXMuY2xlYXJTZXJpZXMoQm9vbGVhbihhKSksdGhpcy5tX21haW5EYXRhU291cmNlPW51bGwsYyYmdGhpcy5fYWRkU291cmNlVG9Db2xsZWN0aW9ucyh0aGlzLl9tb2RlbC5tYWluU2VyaWVzKCksYSksKCgpPT57Y29uc3QgaT1lLmZpbmQoKGU9PmUuaWQ9PT10Lm1haW5Tb3VyY2VJZCkpCjtpZih2b2lkIDA9PT1pKXJldHVybiB2b2lkIG5jLmxvZ1dhcm4oIlRoZXJlIGlzIG5vIG1haW4gc291cmNlIHdpdGggaWQgIit0Lm1haW5Tb3VyY2VJZCsiLCB0b3RhbCBzb3VyY2VzPSIrZS5sZW5ndGgpO2lmKCF3aW5kb3cuVHJhZGluZ1ZpZXdbaS50eXBlXXx8ISgwLG0uaXNMaW5lVG9vbE5hbWUpKGkudHlwZSkpcmV0dXJuIHZvaWQgbmMubG9nTm9ybWFsKCJUaGUgdHlwZSBvZiBtYWluIHNvdXJjZSBpcyBub3QgbGluZSB0b29sIC0gZml4IGlzIHVubmVjZXNzYXJ5Iik7bGV0IHM9bnVsbDtmb3IoY29uc3QgdCBvZiBlKWlmKCF3aW5kb3cuVHJhZGluZ1ZpZXdbaS50eXBlXXx8ISgwLG0uaXNMaW5lVG9vbE5hbWUpKHQudHlwZSkpe2lmKG51bGwhPT1zKXJldHVybiB2b2lkIG5jLmxvZ1dhcm4oIlBhbmUgY29udGFpbnMgbW9yZSB0aGFuIDEgcG9zc2libHkgbWFpbiBzb3VyY2VzIC0gYXV0byBmaXggY2Fubm90IGJlIGFwcGxpZWQiKTtzPXR9aWYobnVsbD09PXMpcmV0dXJuIHZvaWQgbmMubG9nV2FybigiUGFuZSBjb250YWlucyBvbmx5IGxpbmUgdG9vbHMgLSBwb3NzaWJsZSB3ZSBuZWVkIHRvIHJlbW92ZSB0aGlzIHBhbmU/Iik7Y29uc3Qgbj10Lm1haW5Tb3VyY2VJZDtsZXQgcj0wO3QubWFpblNvdXJjZUlkPXMuaWQsZS5mb3JFYWNoKChlPT57ZS5vd25lclNvdXJjZT09PW4mJihlLm93bmVyU291cmNlPXM/LmlkLHIrPTEpfSkpLG5jLmxvZ05vcm1hbCgiQXV0byBmaXggYnJva2VuIHBhbmUgaXMgYXBwbGllZCwgY2hhbmdlZCBsaW5lIHRvb2xzPSIrcisiLCBjaGFuZ2VkIGZyb209IituKyIgdG89IitzLmlkKX0pKCk7Zm9yKGNvbnN0IHQgb2YgZSlpZigic3R1ZHlfU2Vzc2lvbnMiPT09dC50eXBlKXtjb25zdCBlPXQ7ZS5vbGRTdGF0ZT0hMCx0aGlzLm1vZGVsKCkuc2Vzc2lvbnMoKS5yZXN0b3JlU3RhdGUoZSxpKTticmVha31mb3IoY29uc3QgdCBvZiBlKSJzdHVkeV9TZXNzaW9ucyIhPT10LnR5cGUmJihudWxsPT09dGhpcy5fbW9kZWwuZGF0YVNvdXJjZUZvcklkKHQuaWQpfHwiTWFpblNlcmllcyI9PT10LnR5cGU/KHVbdC5pZF09dC5vd25lclNvdXJjZSwoMCxQLmlzTWFpblNlcmllc1N0YXRlKSh0KT90aGlzLl9yZXN0b3JlTWFpblNlcmllcyh0LGksYyxyLG8sYSxkKTooMCxQLmlzU3R1ZHlTdGF0ZSkodCk/dGhpcy5yZXN0b3JlU3R1ZHkoe3NvdXJjZTp0LHdpdGhEYXRhOmksc2VyaWVzSWQ6bixzZXR0aW5nc01pZ3JhdGlvbjpyLHJlc3RvcmVTaWxlbnRseTphLHJlYXNvbjpoLHNraXBNYWluU291cmNlUmVjYWxjdWxhdGlvbjohMH0pOigwLFAuaXNMaW5lVG9vbFN0YXRlKSh0KT8odC5zdGF0ZSYmKHQuc3RhdGUuek9yZGVyVmVyc2lvbj0yKSx0aGlzLnJlc3RvcmVMaW5lVG9vbCh7c3RhdGU6dCx3aXRoRGF0YTppLHJlc3RvcmVTaWxlbnRseTphfSkpOnQudHlwZT09PXBsLkNoYXJ0RXZlbnRzU291cmNlSWQuVmFsdWUmJnRoaXMuX3Jlc3RvcmVTcGVjaWFsU291cmNlKHQsaSxhKSk6bmMubG9nRXJyb3IoIkR1cGxpY2F0ZSBpZCB3aGlsZSByZXN0b3JpbmcgcGFuZTogIit0LnR5cGUrIiwiK3QuaWQpKX1jb25zdCBwPW5ldyBTZXQsXz0oZSx0KT0+e2UucHJpY2VTY2FsZSgpIT09dCYmKHRoaXMucmVtb3ZlU291cmNlRnJvbVByaWNlU2NhbGUoZSksZS5zZXRQcmljZVNjYWxlKHQpLHQuYWRkRGF0YVNvdXJjZShlKSl9LGc9KGUsaSxzKT0+e2lmKHAuaGFzKGUpKXJldHVybjtwLmFkZChlKTtjb25zdCBuPXMubV9zaG93U3ltYm9sTGFiZWxzO3ZvaWQgMCE9PW4mJmU9PT10aGlzLm1vZGVsKCkubWFpblNlcmllcygpJiZ0aGlzLm1vZGVsKCkucHJvcGVydGllcygpLmNoaWxkcygpLnNjYWxlc1Byb3BlcnRpZXMuY2hpbGRzKCkuc2hvd1N5bWJvbExhYmVscy5zZXRWYWx1ZShuKSx0aGlzLl9tb2RlbC5jaGlsZHJlbihlLCEwLCEwKS5mb3JFYWNoKChlPT57dC5vdmVybGF5UHJpY2VTY2FsZXM/LltlLmlkKCldfHxnKGUsaSxzKX0pKSxfKGUsaSl9LGY9ZT0+e2NvbnN0IHQ9KDAsJGwuZGVmYXVsdHMpKCJjaGFydHByb3BlcnRpZXMiKS5wYW5lUHJvcGVydGllcy5heGlzUHJvcGVydGllcyxpPW5ldyBxbCh0aGlzLm1vZGVsKCkucHJvcGVydGllcygpLmNoaWxkcygpLnNjYWxlc1Byb3BlcnRpZXMsdCk7cmV0dXJuIGkucmVzdG9yZVN0YXRlKGUuc3RhdGUpLGkuc2V0SGVpZ2h0KHRoaXMuX2hlaWdodCksZS5zb3VyY2VzLmZvckVhY2goKGU9Pntjb25zdCBzPXRoaXMuZGF0YVNvdXJjZUZvcklkKGUpO3MmJmcocyxpLHQpfSkpLDA9PT1pLmRhdGFTb3VyY2VzKCkubGVuZ3RoP251bGw6aX0sUz1lPT5lLm1hcChmKS5maWx0ZXIoKGU9Pm51bGwhPT1lKSk7bGV0IHY7aWYodC5sZWZ0QXhpc2VzU3RhdGUpdj1TKHQubGVmdEF4aXNlc1N0YXRlKTtlbHNle2NvbnN0IGU9Zih7c3RhdGU6dC5sZWZ0QXhpc1N0YXRlLHNvdXJjZXM6dC5sZWZ0QXhpc1NvdXJjZXN9KTt2PW51bGwhPT1lP1tlXTpbXX1sZXQgeTtpZih0aGlzLl9sZWZ0UHJpY2VTY2FsZXMuc2xpY2UoKS5mb3JFYWNoKChlPT50aGlzLnJlbW92ZVByaWNlU2NhbGUoZSkpKSx0aGlzLl9sZWZ0UHJpY2VTY2FsZXM9W10sdi5mb3JFYWNoKChlPT50aGlzLl9wbGFjZVByaWNlU2NhbGUoZSwibGVmdCIpKSksdC5yaWdodEF4aXNlc1N0YXRlKXk9Uyh0LnJpZ2h0QXhpc2VzU3RhdGUpO2Vsc2V7Y29uc3QgZT1mKHtzdGF0ZTp0LnJpZ2h0QXhpc1N0YXRlLHNvdXJjZXM6dC5yaWdodEF4aXNTb3VyY2VzfSk7eT1udWxsIT09ZT9bZV06W119dGhpcy5fcmlnaHRQcmljZVNjYWxlcy5zbGljZSgpLmZvckVhY2goKGU9PnRoaXMucmVtb3ZlUHJpY2VTY2FsZShlKSkpLHRoaXMuX3JpZ2h0UHJpY2VTY2FsZXM9W10seS5mb3JFYWNoKChlPT50aGlzLl9wbGFjZVByaWNlU2NhbGUoZSwicmlnaHQiKSkpLHRoaXMuX2N1cnJlbnRQcmljZVNjYWxlUmF0aW89dC5wcmljZVNjYWxlUmF0aW98fHQubGVmdFByaWNlU2NhbGVSYXRpb3x8dC5yaWdodFByaWNlU2NhbGVSYXRpb3x8bnVsbDtjb25zdCBiPW5ldyBNYXA7Zm9yKGNvbnN0IGUgb2YgdGhpcy5tX2RhdGFTb3VyY2VzKXtpZihwLmhhcyhlKSljb250aW51ZTtsZXQgaQo7aWYodC5vdmVybGF5UHJpY2VTY2FsZXMmJnQub3ZlcmxheVByaWNlU2NhbGVzW2UuaWQoKV0pe2xldCBzPXQub3ZlcmxheVByaWNlU2NhbGVzW2UuaWQoKV07Yi5oYXMocz8uaWQpP2k9Yi5nZXQocz8uaWQpOihzPSgwLGwuZW5zdXJlKShzKSxpPW5ldyBxbCh0aGlzLl9tb2RlbC5wcm9wZXJ0aWVzKCkuY2hpbGRzKCkuc2NhbGVzUHJvcGVydGllcyksaS5zZXRIZWlnaHQodGhpcy5faGVpZ2h0KSxzLm1faXNBdXRvU2NhbGU9ITAscy5tX2lzTG9nPSExLHMubV9pc1BlcmNlbnRhZ2U9ITEscy5tX2lzTG9ja1NjYWxlPSExLGkucmVzdG9yZVN0YXRlKHMpLGIuc2V0KHMuaWQsaSkpfWVsc2UgaT1uZXcgcWwodGhpcy5fbW9kZWwucHJvcGVydGllcygpLmNoaWxkcygpLnNjYWxlc1Byb3BlcnRpZXMpLGkuc2V0SGVpZ2h0KHRoaXMuX2hlaWdodCk7XyhlLGkpfWZvcihjb25zdCBlIG9mIE9iamVjdC5rZXlzKHUpKXtjb25zdCB0PXVbZV0saT10aGlzLmRhdGFTb3VyY2VGb3JJZChlKTt0JiZpJiZudWxsPT09aS5vd25lclNvdXJjZSgpJiZpLnNldE93bmVyU291cmNlKHRoaXMuZGF0YVNvdXJjZUZvcklkKHQpKX1pZih0Lm1haW5Tb3VyY2VJZCYmIXRoaXMuY29udGFpbnNNYWluU2VyaWVzKCkmJih0aGlzLm1fbWFpbkRhdGFTb3VyY2U9dGhpcy5kYXRhU291cmNlRm9ySWQodC5tYWluU291cmNlSWQpKSwhdGhpcy5tX21haW5EYXRhU291cmNlKWZvcihjb25zdCBlIG9mIHRoaXMubV9kYXRhU291cmNlcylpZigoMCxIcy5pc1ByaWNlRGF0YVNvdXJjZSkoZSkpe3RoaXMubV9tYWluRGF0YVNvdXJjZT1lO2JyZWFrfWZvcihjb25zdCBlIG9mIHRoaXMubV9kYXRhU291cmNlcykoMCxyaS5pc0xpbmVUb29sKShlKT8oZS5vd25lclNvdXJjZSgpfHxlLnNldE93bmVyU291cmNlKHRoaXMubWFpbkRhdGFTb3VyY2UoKSksZS5pc0ZpeGVkKCkmJmUucmVzdG9yZUZpeGVkUG9pbnQoKSk6KDAsdGkuaXNTdHVkeSkoZSkmJiFlLm93bmVyU291cmNlKCkmJmUuaXNMaW5rZWRUb1NlcmllcygpJiZlLnNldE93bmVyU291cmNlKHRoaXMubW9kZWwoKS5tYWluU2VyaWVzKCkpO3RoaXMuX2NvbGxhcHNlZC5zZXRWYWx1ZSh0LmlzQ29sbGFwc2VkPz8hMSksdC5pc01heGltaXplZCYmdGhpcy5fbW9kZWwuc2V0TWF4aW1pemVkUGFuZSh0aGlzKSx0aGlzLl91cGRhdGVNYXJnaW5zKCksdGhpcy5fY2FjaGVkT3JkZXJlZFNvdXJjZXMuY2xlYXIoKX1vblByaWNlU2NhbGVzQ2hhbmdlZCgpe3JldHVybiB0aGlzLl9vblByaWNlU2NhbGVzQ2hhbmdlZH1zZXRQYW5lU2l6ZShlKXtsZXQgdDtzd2l0Y2goZSl7Y2FzZSJsYXJnZSI6dD0xO2JyZWFrO2Nhc2UibWVkaXVtIjp0PS42O2JyZWFrO2Nhc2Uic21hbGwiOnQ9LjM7YnJlYWs7Y2FzZSJ0aW55Ijp0PS4xNTticmVhaztkZWZhdWx0OnRocm93IG5ldyBFcnJvcigiVW5rbm93biBzaXplIGVudW0gdmFsdWU6ICIrZSl9dGhpcy5fc3RyZXRjaEZhY3Rvcj0xZTMqdH1zdHJldGNoRmFjdG9yKCl7cmV0dXJuIHRoaXMuX3N0cmV0Y2hGYWN0b3J9c2V0U3RyZXRjaEZhY3RvcihlKXt0aGlzLl9zdHJldGNoRmFjdG9yPWV9Y3VzdG9tU291cmNlcyhlKXtyZXR1cm4gdGhpcy5tb2RlbCgpLmN1c3RvbVNvdXJjZXMoZSl9Y3JlYXRlRHJhd2luZ3NDYWNoZXMoKXswfWNsZWFyRHJhd2luZ0NhY2hlcygpezB9ZXhlY3V0aW9uc1Bvc2l0aW9uQ29udHJvbGxlcigpe3JldHVybiBudWxsfXdpZHRoKCl7cmV0dXJuIHRoaXMuX3dpZHRofWhlaWdodCgpe3JldHVybiB0aGlzLl9oZWlnaHR9c2V0SGVpZ2h0KGUpe2lmKHRoaXMuX2hlaWdodCE9PWUmJih0aGlzLl9oZWlnaHQ9ZSx0aGlzLl9tb2RlPT09TS5QYW5lTW9kZS5SZWd1bGFyKSl7dGhpcy5fbGVmdFByaWNlU2NhbGVzLmZvckVhY2goKHQ9PnQuc2V0SGVpZ2h0KGUpKSksdGhpcy5fcmlnaHRQcmljZVNjYWxlcy5mb3JFYWNoKCh0PT50LnNldEhlaWdodChlKSkpO2ZvcihsZXQgdD0wO3Q8dGhpcy5tX2RhdGFTb3VyY2VzLmxlbmd0aDt0Kyspe2NvbnN0IGk9dGhpcy5tX2RhdGFTb3VyY2VzW3RdO3RoaXMuaXNPdmVybGF5KGkpJiZpLnByaWNlU2NhbGUoKSYmKDAsbC5lbnN1cmVOb3ROdWxsKShpLnByaWNlU2NhbGUoKSkuc2V0SGVpZ2h0KGUpfXRoaXMudXBkYXRlQWxsVmlld3MoKDAsdG4udmlld3BvcnRDaGFuZ2VFdmVudCkoKSksdGhpcy5fc2l6ZUNoYW5nZWQuZmlyZSgpfX1zZXRXaWR0aChlKXtyZXR1cm4gdGhpcy5fd2lkdGghPT1lJiYodGhpcy5fd2lkdGg9ZSx0aGlzLnVwZGF0ZUFsbFZpZXdzKCgwLHRuLnZpZXdwb3J0Q2hhbmdlRXZlbnQpKCkpLHRoaXMuX3NpemVDaGFuZ2VkLmZpcmUoKSwhMCl9b25TaXplQ2hhbmdlZCgpe3JldHVybiB0aGlzLl9zaXplQ2hhbmdlZH1vblRhZ3NDaGFuZ2VkKCl7cmV0dXJuIHRoaXMuX3RhZ3NDaGFuZ2VkfW9uRGVzdHJveWVkKCl7cmV0dXJuIHRoaXMuX2Rlc3Ryb3llZH1kYXRhU291cmNlc0NvbGxlY3Rpb25DaGFuZ2VkKCl7cmV0dXJuIHRoaXMuX2RhdGFTb3VyY2VzQ29sbGVjdGlvbkNoYW5nZWR9ZGF0YVNvdXJjZXNaT3JkZXJzQ2hhbmdlZCgpe3JldHVybiB0aGlzLl9kYXRhU291cmNlc1pPcmRlcnNDaGFuZ2VkfXN5bWJvbFNvdXJjZUNvbGxlY3Rpb25DaGFuZ2VkKCl7cmV0dXJuIHRoaXMuX3N5bWJvbFNvdXJjZUNvbGxlY3Rpb25DaGFuZ2VkfXByaWNlU291cmNlc0NvbGxlY3Rpb25DaGFuZ2VkKCl7cmV0dXJuIHRoaXMuX3ByaWNlU291cmNlc0NvbGxlY3Rpb25DaGFuZ2VkfXN5bWJvbFNvdXJjZVJlc29sdmVkKCl7cmV0dXJuIHRoaXMuX3N5bWJvbFNvdXJjZVJlc29sdmVkfXN5bWJvbFNvdXJjZVJlc29sdmluZ0FjdGl2ZSgpe3JldHVybiB0aGlzLl9zeW1ib2xTb3VyY2VSZXNvbHZpbmdBY3RpdmV9c291cmNlUHJvcGVydGllc0NoYW5nZWQoKXtyZXR1cm4gdGhpcy5fc291cmNlUHJvcGVydGllc0NoYW5nZWR9c291cmNlWk9yZGVyQ2hhbmdlZCgpe3JldHVybiB0aGlzLl9zb3VyY2VzWk9yZGVyQ2hhbmdlZH1saW5lVG9vbHNGb3JBcmVhKGUsdCl7Y29uc3QgaT10aGlzLmxvZ2ljYWxSZWN0VG9QaXhlbHMoZSkKO3JldHVyblsuLi50aGlzLm1fZGF0YVNvdXJjZXMsLi4udGhpcy5tb2RlbCgpLm11bHRpUGFuZVNvdXJjZXModGhpcyldLmZpbHRlcihyaS5pc0xpbmVUb29sKS5maWx0ZXIoKGU9PihlLnBhbmVWaWV3cyh0aGlzKXx8W10pLnNvbWUoKGU9Pntjb25zdCBzPWUucmVuZGVyZXIodCk7cmV0dXJuIHMmJnMuZG9lc0ludGVyc2VjdFdpdGhCb3gmJnMuZG9lc0ludGVyc2VjdFdpdGhCb3goaSx0KX0pKSkpfWxvZ2ljYWxSZWN0VG9QaXhlbHMoZSl7Y29uc3QgdD10aGlzLmRlZmF1bHRQcmljZVNjYWxlKCksaT10aGlzLnRpbWVTY2FsZSgpLHM9KDAsbC5lbnN1cmVOb3ROdWxsKSgoMCxsLmVuc3VyZU5vdE51bGwpKHQubWFpblNvdXJjZSgpKS5maXJzdFZhbHVlKCkpLG49dC5wcmljZVRvQ29vcmRpbmF0ZShlLnAxLnByaWNlLHMpLHI9aS5pbmRleFRvQ29vcmRpbmF0ZShlLnAxLmluZGV4KSxvPXQucHJpY2VUb0Nvb3JkaW5hdGUoZS5wMi5wcmljZSxzKSxhPWkuaW5kZXhUb0Nvb3JkaW5hdGUoZS5wMi5pbmRleCksYz1uZXcgUHQuUG9pbnQoTWF0aC5taW4ocixhKSxNYXRoLm1pbihuLG8pKSxoPW5ldyBQdC5Qb2ludChNYXRoLm1heChyLGEpLE1hdGgubWF4KG4sbykpO3JldHVybigwLFB0LmJveCkoYyxoKX10aW1lU2NhbGUoKXtyZXR1cm4gdGhpcy5fdGltZVNjYWxlfXJlc3RvcmVMaW5lVG9vbChlKXtjb25zdHt3aXRoRGF0YTp0LHJlc3RvcmVTaWxlbnRseTpzLGFjdGlvblNvdXJjZTpuLG93bmVyU291cmNlOnJ9PWU7bGV0e2tlZXBaT3JkZXI6byxzdGF0ZTphfT1lO2lmKCgwLG0uaXNNdHBQcmVkaWN0b3JUb29sTmFtZSkoYS50eXBlKSlyZXR1cm4gbmMubG9nV2FybihgTm8gbG9uZ2VyIHN1cHBvcnRlZCB0b29sICR7YS50eXBlfSBpcyBza2lwcGVkIHdoaWxlIHJlc3RvcmluZyBzdGF0ZWApLG51bGw7aWYoYS50YXJnZXRTaWduYXR1cmUmJiFtbC5zaGFyZURyYXdpbmdzT25JbmRpY2F0b3JzKXJldHVybiBuYy5sb2dXYXJuKGBEcmF3aW5nIHdpdGggaWQgJHthLmlkfSB3YXMgY3JlYXRlZCB3aGlsZSBzaGFyZV9kcmF3aW5nc19vbl9pbmRpY2F0b3JzIHdhcyBvbiwgYnV0IG5vdyBpdCBpcyBvZmYsIHNvIGl0IGlzIHNraXBwZWQgd2hpbGUgcmVzdG9yaW5nIHN0YXRlYCksbnVsbDtjb25zdCBjPXI/PyhhLm93bmVyU291cmNlP3RoaXMuX21vZGVsLmRhdGFTb3VyY2VGb3JJZChhLm93bmVyU291cmNlKTpudWxsKTtpZihtbC5zaGFyZURyYXdpbmdzT25JbmRpY2F0b3JzJiYoYS5vd25lclNvdXJjZSYmIWEudGFyZ2V0U2lnbmF0dXJlJiZjJiYoKDAsdGkuaXNTdHVkeSkoYyl8fCgwLHRpLmlzU3R1ZHlTdHViKShjKSkmJihhLnRhcmdldFNpZ25hdHVyZT1jLnNpZ25hdHVyZSgpLnZhbHVlKCk/P3ZvaWQgMCksYS50YXJnZXRTaWduYXR1cmUmJiF0aGlzLmlzTWFpblBhbmUoKS52YWx1ZSgpKSlyZXR1cm4oMCxsLmVuc3VyZU5vdE51bGwpKHRoaXMuX21vZGVsLm1haW5QYW5lKCkpLnJlc3RvcmVMaW5lVG9vbChlKTtkZWxldGUgYS5zdGF0ZS5sYXN0VXBkYXRlVGltZSxhLnN0YXRlLmludGVydmFsc1Zpc2liaWxpdGllcz0oMCxKbC5tZXJnZUludGVydmFsVmlzaWJpbGl0aWVzRGVmYXVsdHMpKGEuc3RhdGUuaW50ZXJ2YWxzVmlzaWJpbGl0aWVzKSxvPXZvaWQgMD09PW98fG8sKDAsWGwuZWxsaW90dE1pZ3JhdGVTdGF0ZSkoYSksKDAsWmwubWlncmF0ZVN0YXRlKShhKSxBcnJheS5pc0FycmF5KGEucG9zaXRpb25QZXJjZW50cykmJihhLnBvc2l0aW9uUGVyY2VudHM9YS5wb3NpdGlvblBlcmNlbnRzWzBdKTtjb25zdCBoPWEudHlwZSxkPWEuaWQsdT1hLnN0YXRlLF89bz9hLnpvcmRlcjp0aGlzLm5ld0xpbmVUb29sWk9yZGVyKCk7KDAsbC5hc3NlcnQpKCgwLG0uaXNMaW5lVG9vbE5hbWUpKGgpLCJpbnZhbGlkIGRhdGEgc291cmNlIHR5cGU6IitoKyIgKGV4cGVjdGVkIHRvIGJlIGEgTGluZSBUb29sKSIpO2xldCBnLGYsUz1udWxsO2lmKCgwLFAuaXNTdHVkeUxpbmVUb29sU3RhdGUpKGEpKXtTPXRoaXMuX21vZGVsLmlzU25hcHNob3QoKT9uZXcgZWMuU3R1ZHlWZXJzaW9uaW5nKFtdLFtdKTooMCxhdC5zdHVkeU1ldGFJbmZvUmVwb3NpdG9yeSkoKS5zdHVkeVZlcnNpb25pbmcoKTtjb25zdCBlPWVjLlN0dWR5VmVyc2lvbmluZy5wYXRjaFBvaW50c0Jhc2VkU3R1ZHlTdGF0ZShhKTthPWU7Y29uc3Qgcj1uZXcgb3QuU3R1ZHlNZXRhSW5mbyhlLm1ldGFJbmZvKTtpZighdCYmcil7Y29uc3QgZT1yLnByb2R1Y3RJZDtpZighd2luZG93LnBybz8uaGFzUGFja2FnZShlKSl7Y29uc3QgZT1uZXcgdWwuU3R1ZHlMaW5lVG9vbFN0dWIodGhpcy5fbW9kZWwsYSxyLnNob3J0RGVzY3JpcHRpb24pO3JldHVybiBlLnNldElkKGQpLHRoaXMuX2FkZFNvdXJjZVRvQ29sbGVjdGlvbnMoZSxzKSx2b2lkIDAhPT1fJiZlLnNldFpvcmRlcihfKSxlLnNldEZhaWxlZChwLnQobnVsbCx2b2lkIDAsaSgzODYzNzMpKSksbnVsbH19Y29uc3Qgbz1TLnVwZGF0ZU1ldGFJbmZvKHIpPz9yO2Y9KDAscmkuY3JlYXRlU3R1ZHlMaW5lVG9vbFByb3BlcnRpZXMpKHRoaXMuX21vZGVsLmJhY2tncm91bmRUaGVtZSgpLnNwYXduT3duZXJzaGlwKCksaCxyLG8sdSxTKSxnPSgwLHJpLmNyZWF0ZUxpbmVUb29sKShoLHRoaXMuX21vZGVsLGYsbywhMCx2b2lkIDAsbil9ZWxzZSBmPSgwLHJpLmNyZWF0ZUxpbmVUb29sUHJvcGVydGllcykodGhpcy5fbW9kZWwuYmFja2dyb3VuZFRoZW1lKCkuc3Bhd25Pd25lcnNoaXAoKSxoLCF0aGlzLl9tb2RlbC5yZWFkT25seSgpLHUpLGc9KDAscmkuY3JlYXRlTGluZVRvb2wpKGgsdGhpcy5fbW9kZWwsZixudWxsLCEwLHZvaWQgMCxuKTtnLnNldElkKGQpLGcubGlua0tleSgpLnNldFZhbHVlKGEubGlua0tleXx8bnVsbCk7Y29uc3Qgdj1hLmFsZXJ0SWQ7diYmZy5jYW5IYXNBbGVydCgpJiZHcy5hbGVydHNBdmFpbGFibGUmJiF0aGlzLl9tb2RlbC5yZWFkT25seSgpJiYhdGhpcy5fbW9kZWwuaXNKdXN0Q2xvbmVkQ2hhcnQoKSYmZy5yZXN0b3JlQWxlcnQoK3YpO2xldCB5PWEuaW5kZXhlcz8/W107aWYoeT15LnNsaWNlKDAsYS5wb2ludHM/Lmxlbmd0aD8/eS5sZW5ndGgpLApnLmlzRml4ZWQoKT92b2lkIDAhPT1hLnBvc2l0aW9uUGVyY2VudHM/Zy5yZXN0b3JlUG9zaXRpb25QZXJjZW50cyhhLnBvc2l0aW9uUGVyY2VudHMpOmcucmVzdG9yZVBvc2l0aW9uUGVyY2VudHMoe3g6LjUseTouNX0pOmEucG9pbnRzJiZnLnJlc3RvcmVQb2ludHMoYS5wb2ludHMseSx0KSxnLnJlc3RvcmVEYXRhKXtjb25zdCBlPWE7KDAsUC5pc1N0dWR5TGluZVRvb2xTdGF0ZSkoZSk/dCYmKFMmJihlLmdyYXBoaWNzPWVjLlN0dWR5VmVyc2lvbmluZy5wYXRjaFBvaW50c0Jhc2VkU3R1ZHlEYXRhKG5ldyBvdC5TdHVkeU1ldGFJbmZvKGUubWV0YUluZm8pLGUuZ3JhcGhpY3MpKSxnLnJlc3RvcmVEYXRhKGUpKTpnLnJlc3RvcmVEYXRhKGUpfWNvbnN0IGI9bnVsbD09YS52ZXJzaW9uPzE6YS52ZXJzaW9uLHc9bnVsbD09Zy52ZXJzaW9uPzE6Zy52ZXJzaW9uO3JldHVybiBiIT09dyYmZy5taWdyYXRlVmVyc2lvbj8uKGIsdyx7cGFuZTp0aGlzLG1vZGVsOnRoaXMuX21vZGVsLHByb3BlcnRpZXM6Zn0pLHZvaWQgMCE9PV8mJmcuc2V0Wm9yZGVyKF8pLHImJigwLHJpLnByZXBhcmVMaW5lVG9vbFByb3BlcnRpZXNCeU93bmVyU291cmNlKShmLHIpLCFhLnRhcmdldFNpZ25hdHVyZXx8IWcuc3VwcG9ydHNUYXJnZXRTaWduYXR1cmUoKXx8YyYmKDAsdGkuaXNTdHVkeVN0dWIpKGMpP2cuc2V0T3duZXJTb3VyY2UoYyk6Zy5zZXRUYXJnZXRTaWduYXR1cmUoYS50YXJnZXRTaWduYXR1cmUpLGcuaXNGaXhlZCgpJiZnLnJlc3RvcmVGaXhlZFBvaW50KCksdm9pZCAwIT09YS5zaGFyaW5nTW9kZSYmZy5zaGFyZShhLnNoYXJpbmdNb2RlKSx0aGlzLl9hZGRTb3VyY2VUb0NvbGxlY3Rpb25zKGcscyksdGhpcy5fY2FjaGVkT3JkZXJlZFNvdXJjZXMuY2xlYXIoKSxnfXJlc3RvcmVTdHVkeShlKXtjb25zdHtzb3VyY2U6dCx3aXRoRGF0YTpzLHNlcmllc0lkOm89dGhpcy5fbW9kZWwubWFpblNlcmllcygpLmlkKCksc2V0dGluZ3NNaWdyYXRpb246YSxyZXN0b3JlU2lsZW50bHk6bCxyZWFzb246Yyxza2lwTWFpblNvdXJjZVJlY2FsY3VsYXRpb246aH09ZTtpZihzJiZ2b2lkIDA9PT10LmRhdGEmJnZvaWQgMD09PXQubm9uU2VyaWVzRGF0YSYmdm9pZCAwPT09dC5pbmRleGVzKXJldHVybiBuYy5sb2dFcnJvcigiQ2Fubm90IHJlc3RvcmUgKHNraXBwaW5nKSBzdHVkeSB3aXRob3V0IGRhdGEgIit0LmlkKyIsICIrdC5tZXRhSW5mby5pZCksbnVsbDtjb25zdCBkPXQubWV0YUluZm8sdT0oMCxuLmRlZmF1bHQpKGQpO3UmJihuYy5sb2dXYXJuKGBDYW5ub3QgcmVzdG9yZSAoc2tpcHBpbmcpIHN0dWR5IHdpdGggc3RyaW5nIG1ldGFJbmZvLCBwcm9iYWJseSBjaGFydCBvdmVyd3JpdGluZyAke2R9YCksdC5tZXRhSW5mbz17Li4uYmUoZCksaW5wdXRzOltdfSk7Y29uc3QgXz10LmlkLG09dC5zdGF0ZSxnPXQuem9yZGVyLGY9KHQucGFyZW50U291cmNlcz8/KHQub3duZXJTb3VyY2U/W3Qub3duZXJTb3VyY2VdOltdKSkuZmlsdGVyKChlPT5lIT09bykpO2xldCBTPW5ldyBvdC5TdHVkeU1ldGFJbmZvKHQubWV0YUluZm8pLHY9dC5tZXRhSW5mb1BhdGNoPygwLHIuZGVmYXVsdCkoKDAsV28uZGVmYXVsdCkodC5tZXRhSW5mbyksdC5tZXRhSW5mb1BhdGNoKTp0Lm1ldGFJbmZvLHk9bmV3IG90LlN0dWR5TWV0YUluZm8odik7aWYoZnVuY3Rpb24oZSl7cmV0dXJuIlNjcmlwdCRUVl9FQVJOSU5HU0B0di1zY3JpcHRpbmciPT09ZXx8IlNjcmlwdCRUVl9ESVZJREVORFNAdHYtc2NyaXB0aW5nIj09PWV8fCJTY3JpcHQkVFZfU1BMSVRTQHR2LXNjcmlwdGluZyI9PT1lfHwiRVNEJFRWX0VBUk5JTkdTQHR2LXNjcmlwdGluZyI9PT1lfHwiRVNEJFRWX0RJVklERU5EU0B0di1zY3JpcHRpbmciPT09ZXx8IkVTRCRUVl9TUExJVFNAdHYtc2NyaXB0aW5nIj09PWV8fCJFYXJuaW5nc0B0di1iYXNpY3N0dWRpZXMiPT09ZXx8IkRpdmlkZW5kc0B0di1iYXNpY3N0dWRpZXMiPT09ZXx8IlNwbGl0c0B0di1iYXNpY3N0dWRpZXMiPT09ZXx8IkJhclNldENvbnRpbnVvdXNSb2xsRGF0ZXNAdHYtY29yZXN0dWRpZXMiPT09ZX0oeS5pZCkmJiFzKXJldHVybiBuYy5sb2dOb3JtYWwoIlNraXBwaW5nIHN0dWR5ICIreS5pZCksbnVsbDtsZXQgYj1tO2NvbnN0IHc9bmV3IFNhLlN0dWR5U3R1Yih0aGlzLl9tb2RlbCx0LHkuc2hvcnREZXNjcmlwdGlvbj8/eS5uYW1lKTt3LnNldElkKF8pLHcuc2V0Wm9yZGVyKGcpO2NvbnN0IEM9S2wuRGVmZXJyZWRTdHVkaWVzLmluc3RhbmNlKHRoaXMuX21vZGVsKTtDLmdldChfKTtsZXQgUD0hMTtjb25zdCBUPShlLG4scik9PntpZihQJiZ0aGlzLl9tb2RlbC5kYXRhU291cmNlRm9ySWQoXykhPT13KXJldHVybjt3LnNldFN0YXR1cyh7dHlwZTpZbC5TdHVkeVN0YXR1c1R5cGUuVW5kZWZpbmVkfSk7Y29uc3Qgbz1hc3luYyBvPT57Y29uc3R7cHJlcGFyZVN0dWR5UHJvcGVydGllc0ZvckxvYWRDaGFydDphfT1hd2FpdCBQcm9taXNlLmFsbChbaS5lKDIxNzg0KSxpLmUoMzEwMDEpLGkuZSg4NjE3OCksaS5lKDkxOTQ0KSxpLmUoOTc1NTgpLGkuZSg2Njk4OCksaS5lKDk3MjcyKSxpLmUoOTI3MCksaS5lKDg0MjY1KSxpLmUoNTM1NSksaS5lKDEyMjI3KSxpLmUoNTk2NDkpLGkuZSg0NzUzOCldKS50aGVuKGkuYmluZChpLDQzNzc0OSkpLGw9YSh5LGUsYixyKSxoPWU/P3ksZD1uPz9TLHU9IXMmJmguaXNUVlNjcmlwdCYmdC5tZXRhSW5mby5pc1RWU2NyaXB0JiZoLl9zZXJ2ZXJNZXRhSW5mb1ZlcnNpb24hPT10Lm1ldGFJbmZvLl9zZXJ2ZXJNZXRhSW5mb1ZlcnNpb24scD1hd2FpdCBsYSh0aGlzLl9tb2RlbCxsLG8saCxkLHZvaWQgMCxjLHUpO2lmKHAuc2V0SWQoXykscC5zZXRPd25GaXJzdFZhbHVlKHQub3duRmlyc3RWYWx1ZT8/bnVsbCksdC5jdXN0b21GaWVsZHMmJnAucmVzdG9yZVN0YXRlQ3VzdG9tRmllbGRzKHQuY3VzdG9tRmllbGRzKSxzKXtjb25zdCBlPXQse2RhdGE6aSxuc0RhdGE6cyxpbmRleGVzOm59PWVjLlN0dWR5VmVyc2lvbmluZy5wYXRjaFN0dWR5RGF0YSh5LGUuZGF0YSxlLm5vblNlcmllc0RhdGEsZS5pbmRleGVzKTtwLnJlc3RvcmVEYXRhKGkscyxuKX0KdGhpcy5fbW9kZWwucmVwbGFjZVN0dWR5U3R1Yih3LHApLEMuYWRkKF8scCl9O2lmKGYubGVuZ3RoPjApe2NvbnN0IGU9Zi5tYXAoKGU9PkMuZ2V0KGUpKSk7UHJvbWlzZS5hbGwoZSkudGhlbihvKX1lbHNlIG8oW10pfSx4PSgwLFdvLmRlZmF1bHQpKG0pLE09dT9Qcm9taXNlLnJlc29sdmUoKS50aGVuKCgoKT0+e2NvbnN0IGU9b3QuU3R1ZHlNZXRhSW5mby5wYXJzZUlkU3RyaW5nKHQubWV0YUluZm8uZnVsbElkKSxpPSJ0di1zY3JpcHRpbmciPT09ZS5wYWNrYWdlSWQ/e3R5cGU6InBpbmUiLHBpbmVJZDpvdC5TdHVkeU1ldGFJbmZvLmN1dEJlZm9yZURvbGxhcihlLnNob3J0SWQpLHBpbmVWZXJzaW9uOnQubWV0YUluZm8ucGluZT8udmVyc2lvbn06e3R5cGU6ImphdmEiLHN0dWR5SWQ6ZS5pZH07cmV0dXJuKDAsYXQuc3R1ZHlNZXRhSW5mb1JlcG9zaXRvcnkpKCkuZmluZEJ5SWQoaSl9KSkudGhlbigoZT0+e2lmKCFlKXRocm93IG5ldyBFcnJvcigiQ2Fubm90IGdldCBzdHVkeSBtZXRhSW5mbzogIit0Lm1ldGFJbmZvLmZ1bGxJZCk7Uz1lLHQubWV0YUluZm89ZS5zdGF0ZSgpLHY9dC5tZXRhSW5mb1BhdGNoPygwLHIuZGVmYXVsdCkoKDAsV28uZGVmYXVsdCkodC5tZXRhSW5mbyksdC5tZXRhSW5mb1BhdGNoKTp0Lm1ldGFJbmZvLHk9bmV3IG90LlN0dWR5TWV0YUluZm8odil9KSk6UHJvbWlzZS5yZXNvbHZlKCk7bGV0IEk7aWYocyl7Y29uc3QgZT1lYy5TdHVkeVZlcnNpb25pbmcucGF0Y2hQcm9wc1N0YXRlQW5kTWV0YUluZm8obSx5LHtvbGRTaG93U3R1ZHlMYXN0VmFsdWVQcm9wZXJ0eTohYT8uc2hvd1N0dWR5TGFzdFZhbHVlUHJvcGVydHl9KSx0PWVjLlN0dWR5VmVyc2lvbmluZy5wYXRjaFByb3BzU3RhdGVBbmRNZXRhSW5mbyh4LFMse29sZFNob3dTdHVkeUxhc3RWYWx1ZVByb3BlcnR5OiFhPy5zaG93U3R1ZHlMYXN0VmFsdWVQcm9wZXJ0eX0pO0k9UHJvbWlzZS5yZXNvbHZlKFtuZXcgb3QuU3R1ZHlNZXRhSW5mbyhlLm1ldGFJbmZvKSxuZXcgb3QuU3R1ZHlNZXRhSW5mbyh0Lm1ldGFJbmZvKV0pfWVsc2V7e2NvbnN0IGU9KDAsYXQuc3R1ZHlNZXRhSW5mb1JlcG9zaXRvcnkpKCkucmVxdWVzdE1ldGFJbmZvKCkudGhlbigoKCk9PlByb21pc2UuYWxsKFtpLmUoMjE3ODQpLGkuZSgzMTAwMSksaS5lKDg2MTc4KSxpLmUoOTE5NDQpLGkuZSg5NzU1OCksaS5lKDY2OTg4KSxpLmUoOTcyNzIpLGkuZSg5MjcwKSxpLmUoODQyNjUpLGkuZSg1MzU1KSxpLmUoMTIyMjcpLGkuZSg1OTY0OSksaS5lKDQ3NTM4KV0pLnRoZW4oaS5iaW5kKGksNDY3OTIxKSkpKTtJPU0udGhlbigoKCk9PlByb21pc2UuYWxsKFt5LFNdLm1hcCgoKHQsaSk9PmUudGhlbigoZT0+e2NvbnN0e3BpbmVJZEZvckphdmFJZDpuLG1pZ3JhdGVKYXZhU3RhdGVUb1BpbmU6cn09ZSxvPW4odC5pZCk7aWYobylyZXR1cm4oMCxhdC5zdHVkeU1ldGFJbmZvUmVwb3NpdG9yeSkoKS5maW5kQnlJZCh7cGluZUlkOm8scGluZVZlcnNpb246Imxhc3QiLHR5cGU6InBpbmUifSkudGhlbigoZT0+KHIoMD09PWk/bTp4LHQsZSkseT1lLCQuZW1pdCgiY2hhcnRfbWlncmF0ZWQiKSxlKSkpO3tjb25zdCBlPWVjLlN0dWR5VmVyc2lvbmluZy5wYXRjaFByb3BzU3RhdGVBbmRNZXRhSW5mbygwPT09aT9tOngsdCx7b2xkU2hvd1N0dWR5TGFzdFZhbHVlUHJvcGVydHk6cyYmIWE/LnNob3dTdHVkeUxhc3RWYWx1ZVByb3BlcnR5fSk7cmV0dXJuIGI9ZS5wcm9wc1N0YXRlLG5ldyBvdC5TdHVkeU1ldGFJbmZvKGUubWV0YUluZm8pfX0pKSkpKSkpfX1JLnRoZW4oKChbZSx0XSk9Pntjb25zdCBzPXRoaXMuX21vZGVsLmlzU25hcHNob3QoKT9uZXcgZWMuU3R1ZHlWZXJzaW9uaW5nKFtdLFtdKTooMCxhdC5zdHVkeU1ldGFJbmZvUmVwb3NpdG9yeSkoKS5zdHVkeVZlcnNpb25pbmcoKTtpZih0aGlzLl9tb2RlbC5pc1NuYXBzaG90KCkpcmV0dXJuIHZvaWQgVChlLHQscyk7Y29uc3Qgbj1bZSx0XS5tYXAoKChlLHQpPT5zLnVwZGF0ZU1ldGFJbmZvQXN5bmMoZSwxPT09dCkpKS5tYXAoKGU9PmUuc3luYz9Qcm9taXNlLnJlc29sdmUoZS5yZXN1bHQpOmUucmVzdWx0KSk7UHJvbWlzZS5hbGwobikudGhlbigoaT0+VChpWzBdPz9lLGlbMV0/P3QscykpKS5jYXRjaCgoZT0+eyJUbyB1c2UgaXQsIGFzayB0aGUgYXV0aG9yIHRvIHB1Ymxpc2ggdGhlIHNjcmlwdC4iPT09ZT93LnNldEZhaWxlZChlLHAudChudWxsLHZvaWQgMCxpKDMwMDU1OCkpKTp3LnNldEZhaWxlZCgiZXJyb3I6ICIrZSl9KSl9KSkuY2F0Y2goKCgpPT53LnNldEZhaWxlZChwLnQobnVsbCx7Y29udGV4dDoiU3R1ZHkgbG9hZGluZyBpbiBjaGFydCJ9LGkoNzcwOTQxKSkpKSksdy5zZXRab3JkZXIoZyk7Y29uc3QgTD10Lm1ldGFJbmZvLmxpbmtlZFRvU2VyaWVzP3RoaXMuX21vZGVsLm1haW5TZXJpZXMoKTpmLmxlbmd0aD90aGlzLmRhdGFTb3VyY2VGb3JJZChmWzBdKTpudWxsO3JldHVybiB3LnNldE93bmVyU291cmNlKEwpLHRoaXMuX2FkZFNvdXJjZVRvQ29sbGVjdGlvbnModyxsKSxQPSEwLGh8fHRoaXMuX3Byb2Nlc3NNYWluU291cmNlQ2hhbmdlKCksdGhpcy5fY2FjaGVkT3JkZXJlZFNvdXJjZXMuY2xlYXIoKSx3fWNsaXBib2FyZExpbmVUb29sT3duZXJTb3VyY2UoZSl7Y29uc3QgdD10aGlzLmRhdGFTb3VyY2VGb3JJZChlKTtpZihudWxsIT09dCl7Y29uc3QgZT10Lm93bmVyU291cmNlKCk7aWYobnVsbCE9PWUmJm51bGwhPT1lLmZpcnN0VmFsdWUoKSlyZXR1cm4gZX1jb25zdCBpPXRoaXMubWFpbkRhdGFTb3VyY2UoKTtpZihudWxsIT09aSYmbnVsbCE9PWkuZmlyc3RWYWx1ZSgpKXJldHVybiBpO2Zvcihjb25zdCBlIG9mIHRoaXMuZGF0YVNvdXJjZXMoKSlpZigoMCxIcy5pc1ByaWNlRGF0YVNvdXJjZSkoZSkmJm51bGwhPT1lLmZpcnN0VmFsdWUoKSlyZXR1cm4gZTtyZXR1cm4gbnVsbH1yZWFsaWduTGluZVRvb2xzKGUpe2xldCB0PSExO2Zvcihjb25zdCBpIG9mIHRoaXMubV9kYXRhU291cmNlcykhKDAsCnJpLmlzTGluZVRvb2wpKGkpfHx2b2lkIDAhPT1lJiZpLm93bmVyU291cmNlKCk/LmN1cnJlbmN5T3JpZ2luU291cmNlKCkudmFsdWUoKSE9PWUmJmkub3duZXJTb3VyY2UoKT8udW5pdE9yaWdpblNvdXJjZSgpLnZhbHVlKCkhPT1lfHwoaS5yZWFsaWduKCksaS51cGRhdGVBbGxWaWV3cygoMCx0bi5zb3VyY2VDaGFuZ2VFdmVudCkoaS5pZCgpKSksdD0hMCk7cmV0dXJuIHQmJnRoaXMuX2ludmFsaWRhdGVTb3VyY2VzQ2FjaGUoKSx0fXN0YXJ0U2NhbGVQcmljZShlLHQpe2Uuc3RhcnRTY2FsZSh0KX1zY2FsZVByaWNlVG8oZSx0KXtlLnNjYWxlVG8odCksdGhpcy51cGRhdGVBbGxWaWV3cygoMCx0bi52aWV3cG9ydENoYW5nZUV2ZW50KSgpKX1lbmRTY2FsZVByaWNlKGUpe2UuZW5kU2NhbGUoKX1zdGFydFNjcm9sbFByaWNlKGUsdCl7ZS5zdGFydFNjcm9sbCh0KX1zY3JvbGxQcmljZVRvKGUsdCl7ZS5zY3JvbGxUbyh0KSx0aGlzLnVwZGF0ZUFsbFZpZXdzKCgwLHRuLnZpZXdwb3J0Q2hhbmdlRXZlbnQpKCkpfWVuZFNjcm9sbFByaWNlKGUpe2UuZW5kU2Nyb2xsKCl9cmVzZXRQcmljZVNjYWxlKGUpe2NvbnN0IHQ9dGhpcy50aW1lU2NhbGUoKS52aXNpYmxlQmFyc1N0cmljdFJhbmdlKCksaT10aGlzLnRpbWVTY2FsZSgpLmxvZ2ljYWxSYW5nZSgpO2UucmVzZXRTY2FsZUF2YWlsYWJsZSgpLnZhbHVlKCkmJmUucmVzZXRTY2FsZSgpLGUucmVjYWxjdWxhdGVQcmljZVJhbmdlKHQsaSksdGhpcy51cGRhdGVBbGxWaWV3cygoMCx0bi52aWV3cG9ydENoYW5nZUV2ZW50KSgpKX1yZXNldFByaWNlU2NhbGVzQXZhaWxhYmxlKCl7cmV0dXJuIHRoaXMuX3Jlc2V0UHJpY2VTY2FsZXNBdmFpbGFibGUucmVhZG9ubHkoKX1yZXN0b3JlUHJpY2VTY2FsZVN0YXRlKGUsdCl7ZS5yZXN0b3JlU3RhdGUodCksdGhpcy51cGRhdGVBbGxWaWV3cygoMCx0bi52aWV3cG9ydENoYW5nZUV2ZW50KSgpKX1iZWdpbkluc2VydE1hbnlMaW5lRGF0YVNvdXJjZXMoKXt0aGlzLl9pc0luSW5zZXJ0TWFueURhdGFTb3VyY2VzU3RhdGU9ITAsdGhpcy5fbGFzdExpbmVEYXRhU291cmNlWk9yZGVyPW51bGx9ZW5kSW5zZXJ0TWFueUxpbmVEYXRhU291cmNlcygpe3RoaXMuX2lzSW5JbnNlcnRNYW55RGF0YVNvdXJjZXNTdGF0ZT0hMSx0aGlzLl9sYXN0TGluZURhdGFTb3VyY2VaT3JkZXI9bnVsbDt7Y29uc3QgZT0oMCxsLmVuc3VyZU5vdE51bGwpKHRoaXMubW9kZWwoKS5hbGVydHNXYXRjaGVyKCkpO2Zvcihjb25zdCB0IG9mIHRoaXMubV9kYXRhU291cmNlcyllLnN5bmNTb3VyY2VBbGVydExhYmVscyh0KX19cmVtb3ZlU291cmNlRnJvbVByaWNlU2NhbGUoZSl7Y29uc3QgdD1lLnByaWNlU2NhbGUoKTtpZihudWxsIT09dCl7Y29uc3QgaT10LmRhdGFTb3VyY2VzKCk7aS5pbmRleE9mKGUpPj0wJiZ0LnJlbW92ZURhdGFTb3VyY2UoZSksMD09PWkubGVuZ3RoJiZ0aGlzLnJlbW92ZVByaWNlU2NhbGUodCl9fV9pbnZhbGlkYXRlU291cmNlc0NhY2hlKCl7dGhpcy5fY2FjaGVkT3JkZXJlZFNvdXJjZXMuY2xlYXIoKSx0aGlzLl9sZWZ0UHJpY2VTY2FsZXMuZm9yRWFjaCgoZT0+ZS5pbnZhbGlkYXRlU291cmNlc0NhY2hlKCkpKSx0aGlzLl9yaWdodFByaWNlU2NhbGVzLmZvckVhY2goKGU9PmUuaW52YWxpZGF0ZVNvdXJjZXNDYWNoZSgpKSl9X3Byb2Nlc3NNYWluU291cmNlQ2hhbmdlKCl7bGV0IGU9ITE7aWYobnVsbD09PXRoaXMubV9tYWluRGF0YVNvdXJjZSlmb3IoY29uc3QgdCBvZiB0aGlzLm1fZGF0YVNvdXJjZXMpaWYoKDAsSHMuaXNQcmljZURhdGFTb3VyY2UpKHQpJiYhdGhpcy5pc092ZXJsYXkodCkmJighKDAsdGkuaXNTdHVkeSkodCl8fCF0LmlzTGlua2VkVG9TZXJpZXMoKSkpe3RoaXMubV9tYWluRGF0YVNvdXJjZT10LGU9ITA7YnJlYWt9aWYodGhpcy5tX21haW5EYXRhU291cmNlJiZlKXtsZXQgZT10aGlzLm1fZGF0YVNvdXJjZXMuZmlsdGVyKHJpLmlzTGluZVRvb2wpO2U9KDAsZHIuc29ydFNvdXJjZXMpKGUpO2Zvcihjb25zdCB0IG9mIGUpdGhpcy5tb3ZlKHQsKDAsbC5lbnN1cmVOb3ROdWxsKSh0aGlzLm1fbWFpbkRhdGFTb3VyY2UucHJpY2VTY2FsZSgpKSwhMCl9ZWxzZSBpZighdGhpcy5tX21haW5EYXRhU291cmNlfHx0aGlzLmlzT3ZlcmxheSh0aGlzLm1fbWFpbkRhdGFTb3VyY2UpJiYwPT09dGhpcy5fbm9uT3ZlcmxheVByaWNlc1NvdXJjZXNDb3VudCgpKXtsZXQgZT1udWxsO2lmKHRoaXMubV9kYXRhU291cmNlcy5pbmNsdWRlcyh0aGlzLl9tb2RlbC5tYWluU2VyaWVzKCkpKWU9dGhpcy5fbW9kZWwubWFpblNlcmllcygpO2Vsc2UgZm9yKGNvbnN0IHQgb2YgdGhpcy5tX2RhdGFTb3VyY2VzKWlmKCgwLEhzLmlzUHJpY2VEYXRhU291cmNlKSh0KSYmdGhpcy5pc092ZXJsYXkodCkmJnQuc2hvd0luT2JqZWN0VHJlZSgpKXtlPXQ7YnJlYWt9aWYobnVsbCE9PWUpe2NvbnN0IHQ9dGhpcy5tX21haW5EYXRhU291cmNlPT09ZTt0aGlzLm1fbWFpbkRhdGFTb3VyY2U9ZTtjb25zdCBpPXRoaXMuY3JlYXRlTmV3UHJpY2VTY2FsZUlmUG9zc2libGUoKTtpZih0JiZlPT09dGhpcy5fbW9kZWwubWFpblNlcmllcygpKXtjb25zdCB0PSgwLGwuZW5zdXJlTm90TnVsbCkoZS5wcmljZVNjYWxlKCkpO3RoaXMuX21vZGVsLmNoaWxkcmVuKGUsITAsITApLmZvckVhY2goKGU9Pnt0aGlzLnJlbW92ZVNvdXJjZUZyb21QcmljZVNjYWxlKGUpLGkuYWRkRGF0YVNvdXJjZShlKSxlLnNldFByaWNlU2NhbGUoaSl9KSksdGhpcy5yZW1vdmVQcmljZVNjYWxlKHQpfXRoaXMubW92ZShlLGksITApLHRoaXMucmVjYWxjdWxhdGVQcmljZVNjYWxlKGUucHJpY2VTY2FsZSgpLCgwLHRuLmdsb2JhbENoYW5nZUV2ZW50KSgpKX19fV9hZGRTb3VyY2VUb0NvbGxlY3Rpb25zKGUsdCl7dGhpcy5tX2RhdGFTb3VyY2VzLnB1c2goZSksdGhpcy5fc291cmNlc0J5SWQuc2V0KGUuaWQoKSxlKSx0aGlzLl9pbnZhbGlkYXRlU291cmNlc0NhY2hlKCk7Y29uc3QgaT0oKT0+e3RoaXMuX3NvdXJjZVByb3BlcnRpZXNDaGFuZ2VkLmZpcmUoZSl9O2lmKGUucHJvcGVydGllcygpLnN1YnNjcmliZSh0aGlzLGkpLAplLnpPcmRlckNoYW5nZWQoKS5zdWJzY3JpYmUodGhpcywodD0+dGhpcy5fc291cmNlc1pPcmRlckNoYW5nZWQuZmlyZShlLHQpKSksKDAscmkuaXNMaW5lVG9vbCkoZSkpe2Uubm9ybWFsaXplZFBvaW50c0NoYW5nZWQoKS5zdWJzY3JpYmUodGhpcyxpKSxlLmZpeGVkUG9pbnRDaGFuZ2VkKCkuc3Vic2NyaWJlKHRoaXMsaSksZS5vbklzQWN0dWFsU3ltYm9sQ2hhbmdlKCkuc3Vic2NyaWJlKHRoaXMsKCgpPT50aGlzLl9pbnZhbGlkYXRlU291cmNlc0NhY2hlKCkpKSxlLmhhc0FsZXJ0KCkuc3Vic2NyaWJlKGkpLGUuc2hhcmluZ01vZGUoKS5zdWJzY3JpYmUoaSk7Y29uc3QgdD0oKT0+e3RoaXMuX2xpbmVUb29sc0J5TGlua0tleS5yZW1vdmVCeUtleTIoZS5pZCgpKSx0aGlzLl9saW5lVG9vbHNCeUxpbmtLZXkuYWRkKGUpfTtlLmxpbmtLZXkoKS5zdWJzY3JpYmUodCksdGhpcy5fc291cmNlV2F0Y2hlZFZhbHVlc1N1YnNjcmlwdGlvbnMuc2V0KGUuaWQoKSx7bGlua0tleUNhbGxiYWNrOnQsY29tbW9uQ2FsbGJhY2s6aX0pLHRoaXMuX2xpbmVUb29sc0J5TGlua0tleS5hZGQoZSl9Y29uc3Qgcz0oMCxJby5pc1N5bWJvbFNvdXJjZSkoZSk/ZTpudWxsO2lmKCgwLEhzLmlzUHJpY2VEYXRhU291cmNlKShlKSYmKHRoaXMuX3ByaWNlU291cmNlc0J5SWQuc2V0KGUuaWQoKSxlKSxlLmN1cnJlbmN5Q2hhbmdlZCgpLnN1YnNjcmliZSh0aGlzLCgoKT0+dGhpcy5faW52YWxpZGF0ZVNvdXJjZXNDYWNoZSgpKSksZS51bml0Q2hhbmdlZCgpLnN1YnNjcmliZSh0aGlzLCgoKT0+dGhpcy5faW52YWxpZGF0ZVNvdXJjZXNDYWNoZSgpKSksdGhpcy5fcHJpY2VEYXRhU291cmNlcy5wdXNoKGUpLCgwLHRpLmlzU3R1ZHkpKGUpJiZ0aGlzLl9zdHVkeVNvdXJjZXMucHVzaChlKSx0aGlzLl9vblByaWNlU291cmNlc0NvbGxlY3Rpb25DaGFuZ2VkKCksbnVsbCE9PXMmJih0aGlzLl9zeW1ib2xTb3VyY2VzLnB1c2gocykscy5zeW1ib2xSZXNvbHZlZCgpLnN1YnNjcmliZSh0aGlzLCgoKT0+dGhpcy5fc3ltYm9sU291cmNlUmVzb2x2ZWQuZmlyZShlKSkpLHMuc3ltYm9sUmVzb2x2aW5nQWN0aXZlKCkuc3Vic2NyaWJlKHRoaXMuX3JlY2FsY1N5bWJvbFNvdXJjZVJlc29sdmluZ0FjdGl2ZSkscy5zeW1ib2xIaWJlcm5hdGVkKCkuc3Vic2NyaWJlKHRoaXMuX29uU3ltYm9sU291cmNlQ29sbGVjdGlvbkNoYW5nZWQpLHRoaXMuX3JlY2FsY1N5bWJvbFNvdXJjZVJlc29sdmluZ0FjdGl2ZSgpLHRoaXMuX29uU3ltYm9sU291cmNlQ29sbGVjdGlvbkNoYW5nZWQoKSxzPT09dGhpcy5fbW9kZWwubWFpblNlcmllcygpJiZ0aGlzLl9pc01haW5QYW5lLnNldFZhbHVlKCEwKSksKDAsdGkuaXNTdHVkeSkoZSl8fCgwLHRpLmlzU3R1ZHlTdHViKShlKSkpe2NvbnN0IHQ9ZS5tZXRhSW5mbygpO3QmJigwLF9sLmlzQ291bnRlZFVzZXJTY3JpcHQpKHQpJiYoMCxfbC5hZGRVc2VyU2NyaXB0T25MYXlvdXQpKHQuc2NyaXB0SWRQYXJ0LCgwLGwuZW5zdXJlRGVmaW5lZCkodC5waW5lKS52ZXJzaW9uKX1lLmlzTXVsdGlQYW5lQXZhaWxhYmxlKCkmJnRoaXMubW9kZWwoKS5hZGRNdWx0aVBhbmVTb3VyY2UoZSksc2koZSkmJih0aGlzLl9sb2xsaXBvcERhdGFTb3VyY2VzLnB1c2goZSksdGhpcy51cGRhdGVMb2xsaXBvcFZpZXdzKCgwLHRuLnNvdXJjZUNoYW5nZUV2ZW50KShlLmlkKCkpKSksdHx8MCE9PXRoaXMuX2J1bGtBY3Rpb25zLmFjdGl2ZUNvdW50ZXJ8fHRoaXMuX2RhdGFTb3VyY2VzQ29sbGVjdGlvbkNoYW5nZWQuZmlyZSgpfV9yZW1vdmVTb3VyY2VGcm9tQ29sbGVjdGlvbnMoZSx0KXtjb25zdCBpPXRoaXMubV9kYXRhU291cmNlc1tlXSxzPWkuaWQoKTtpZihpLnByb3BlcnRpZXMoKS51bnN1YnNjcmliZUFsbCh0aGlzKSxpLnpPcmRlckNoYW5nZWQoKS51bnN1YnNjcmliZUFsbCh0aGlzKSx0aGlzLm1fZGF0YVNvdXJjZXMuc3BsaWNlKGUsMSksdGhpcy5fc291cmNlc0J5SWQuZGVsZXRlKGkuaWQoKSksKDAscmkuaXNMaW5lVG9vbCkoaSkpe2lmKGkubm9ybWFsaXplZFBvaW50c0NoYW5nZWQoKS51bnN1YnNjcmliZUFsbCh0aGlzKSxpLmZpeGVkUG9pbnRDaGFuZ2VkKCkudW5zdWJzY3JpYmVBbGwodGhpcyksaS5vbklzQWN0dWFsU3ltYm9sQ2hhbmdlKCkudW5zdWJzY3JpYmVBbGwodGhpcyksdGhpcy5fc291cmNlV2F0Y2hlZFZhbHVlc1N1YnNjcmlwdGlvbnMuaGFzKHMpKXtjb25zdCBlPXRoaXMuX3NvdXJjZVdhdGNoZWRWYWx1ZXNTdWJzY3JpcHRpb25zLmdldChzKTtlJiYoaS5oYXNBbGVydCgpLnVuc3Vic2NyaWJlKGUuY29tbW9uQ2FsbGJhY2spLGkuc2hhcmluZ01vZGUoKS51bnN1YnNjcmliZShlLmNvbW1vbkNhbGxiYWNrKSxpLmxpbmtLZXkoKS51bnN1YnNjcmliZShlLmxpbmtLZXlDYWxsYmFjaykpLHRoaXMuX3NvdXJjZVdhdGNoZWRWYWx1ZXNTdWJzY3JpcHRpb25zLmRlbGV0ZShzKX10aGlzLl9saW5lVG9vbHNCeUxpbmtLZXkucmVtb3ZlQnlLZXkyKGkuaWQoKSl9dGhpcy5faW52YWxpZGF0ZVNvdXJjZXNDYWNoZSgpO2NvbnN0IG49KDAsSW8uaXNTeW1ib2xTb3VyY2UpKGkpP2k6bnVsbDtpZigoMCxIcy5pc1ByaWNlRGF0YVNvdXJjZSkoaSkmJih0aGlzLl9wcmljZVNvdXJjZXNCeUlkLmRlbGV0ZShpLmlkKCkpLGkuY3VycmVuY3lDaGFuZ2VkKCkudW5zdWJzY3JpYmVBbGwodGhpcyksaS51bml0Q2hhbmdlZCgpLnVuc3Vic2NyaWJlQWxsKHRoaXMpLCgwLGcucmVtb3ZlSXRlbUZyb21BcnJheSkodGhpcy5fcHJpY2VEYXRhU291cmNlcyxpKSwoMCx0aS5pc1N0dWR5KShpKSYmKDAsZy5yZW1vdmVJdGVtRnJvbUFycmF5KSh0aGlzLl9zdHVkeVNvdXJjZXMsaSksdGhpcy5fb25QcmljZVNvdXJjZXNDb2xsZWN0aW9uQ2hhbmdlZCgpLG51bGwhPT1uJiYoKDAsZy5yZW1vdmVJdGVtRnJvbUFycmF5KSh0aGlzLl9zeW1ib2xTb3VyY2VzLG4pLG4uc3ltYm9sUmVzb2x2ZWQoKS51bnN1YnNjcmliZUFsbCh0aGlzKSxuLnN5bWJvbFJlc29sdmluZ0FjdGl2ZSgpLnVuc3Vic2NyaWJlKHRoaXMuX3JlY2FsY1N5bWJvbFNvdXJjZVJlc29sdmluZ0FjdGl2ZSksCm4uc3ltYm9sSGliZXJuYXRlZCgpLnVuc3Vic2NyaWJlKHRoaXMuX29uU3ltYm9sU291cmNlQ29sbGVjdGlvbkNoYW5nZWQpLHRoaXMuX3JlY2FsY1N5bWJvbFNvdXJjZVJlc29sdmluZ0FjdGl2ZSgpLHRoaXMuX29uU3ltYm9sU291cmNlQ29sbGVjdGlvbkNoYW5nZWQoKSxuPT09dGhpcy5fbW9kZWwubWFpblNlcmllcygpJiZ0aGlzLl9pc01haW5QYW5lLnNldFZhbHVlKCExKSksKDAsdGkuaXNTdHVkeSkoaSl8fCgwLHRpLmlzU3R1ZHlTdHViKShpKSkpe2NvbnN0IGU9aS5tZXRhSW5mbygpO2UmJigwLF9sLmlzQ291bnRlZFVzZXJTY3JpcHQpKGUpJiYoMCxfbC5yZW1vdmVVc2VyU2NyaXB0RnJvbUxheW91dCkoZS5zY3JpcHRJZFBhcnQsKDAsbC5lbnN1cmVEZWZpbmVkKShlLnBpbmUpLnZlcnNpb24pfWkuaXNNdWx0aVBhbmVBdmFpbGFibGUoKSYmdGhpcy5tb2RlbCgpLnJlbW92ZU11bHRpUGFuZVNvdXJjZShpKSxzaShpKSYmKCgwLGcucmVtb3ZlSXRlbUZyb21BcnJheSkodGhpcy5fbG9sbGlwb3BEYXRhU291cmNlcyxpKSx0aGlzLnVwZGF0ZUxvbGxpcG9wVmlld3MoKDAsdG4uc291cmNlQ2hhbmdlRXZlbnQpKGkuaWQoKSkpKSx0fHwwIT09dGhpcy5fYnVsa0FjdGlvbnMuYWN0aXZlQ291bnRlcnx8dGhpcy5fZGF0YVNvdXJjZXNDb2xsZWN0aW9uQ2hhbmdlZC5maXJlKCl9X3JlY2FsY3VsYXRlUHJpY2VTY2FsZUJ5U2NhbGVSYXRpbyhlKXt0aGlzLmlzTWFpblBhbmUoKS52YWx1ZSgpJiZlPT09dGhpcy5fbG9ja2VkUHJpY2VTY2FsZSYmKG51bGwhPT10aGlzLl9jdXJyZW50UHJpY2VTY2FsZVJhdGlvP3RoaXMuX2FwcGx5T2xkU2NhbGVSYXRpb1RvUHJpY2VTY2FsZSgpOnRoaXMuX3RyeVRvQXBwbHlOZXdQcmljZVNjYWxlUmF0aW8oKSl9X2RlZmF1bHRCb3R0b21NYXJnaW4oKXtyZXR1cm4uMDEqdGhpcy5wcm9wZXJ0aWVzKCkuY2hpbGRzKCkuYm90dG9tTWFyZ2luLnZhbHVlKCl9X2RlZmF1bHRUb3BNYXJnaW4oKXtyZXR1cm4uMDEqdGhpcy5wcm9wZXJ0aWVzKCkuY2hpbGRzKCkudG9wTWFyZ2luLnZhbHVlKCl9X3VwZGF0ZU1hcmdpbnMoKXtjb25zdCBlPXRoaXMuX2RlZmF1bHRUb3BNYXJnaW4oKSx0PXRoaXMuX2RlZmF1bHRCb3R0b21NYXJnaW4oKTtmb3IoY29uc3QgaSBvZiB0aGlzLl9sZWZ0UHJpY2VTY2FsZXMpb2MoaSxlLHQpO2Zvcihjb25zdCBpIG9mIHRoaXMuX3JpZ2h0UHJpY2VTY2FsZXMpb2MoaSxlLHQpO2Zvcihjb25zdCBpIG9mIHRoaXMubV9kYXRhU291cmNlcylpZih0aGlzLmlzT3ZlcmxheShpKSl7Y29uc3Qgcz1pLnByaWNlU2NhbGUoKTtudWxsIT09cyYmKG9jKHMsZSx0KSx0aGlzLnJlY2FsY3VsYXRlUHJpY2VTY2FsZShzLCgwLHRuLnZpZXdwb3J0Q2hhbmdlRXZlbnQpKCkpKX1mb3IoY29uc3QgZSBvZiB0aGlzLl9sZWZ0UHJpY2VTY2FsZXMpdGhpcy5yZWNhbGN1bGF0ZVByaWNlU2NhbGUoZSwoMCx0bi52aWV3cG9ydENoYW5nZUV2ZW50KSgpKTtmb3IoY29uc3QgZSBvZiB0aGlzLl9yaWdodFByaWNlU2NhbGVzKXRoaXMucmVjYWxjdWxhdGVQcmljZVNjYWxlKGUsKDAsdG4udmlld3BvcnRDaGFuZ2VFdmVudCkoKSk7dGhpcy51cGRhdGVBbGxWaWV3cygoMCx0bi52aWV3cG9ydENoYW5nZUV2ZW50KSgpKX1fYmF0Y2hSZW9yZGVyKGUsdCxpKXtpKHRoaXMuc291cmNlc0J5R3JvdXAoKS56T3JkZXJWaXNpYmxlU291cmNlcygpLGUsdCksdGhpcy5faW52YWxpZGF0ZVNvdXJjZXNDYWNoZSgpLHRoaXMuX2RhdGFTb3VyY2VzQ29sbGVjdGlvbkNoYW5nZWQuZmlyZSgpLHRoaXMuX29uRGF0YVNvdXJjZXNaT3JkZXJzQ2hhbmdlZCgpLHRoaXMubW9kZWwoKS5mdWxsVXBkYXRlKCl9X3BsYWNlUHJpY2VTY2FsZShlLHQsaSl7aWYoIm92ZXJsYXkiPT09dClyZXR1cm4gdm9pZCBlLmludmFsaWRhdGVNYXJnaW5zKCk7Y29uc3Qgcz0ibGVmdCI9PT10P3RoaXMuX2xlZnRQcmljZVNjYWxlczp0aGlzLl9yaWdodFByaWNlU2NhbGVzLG49dm9pZCAwPT09aT9zLmxlbmd0aDppO3Muc3BsaWNlKG4sMCxlKSxlLm1vZGVDaGFuZ2VkKCkuc3Vic2NyaWJlKHRoaXMsdGhpcy5fb25QcmljZVNjYWxlTW9kZUNoYW5nZWQuYmluZCh0aGlzLGUpKSxlLmludGVybmFsSGVpZ2h0Q2hhbmdlZCgpLnN1YnNjcmliZSh0aGlzLHRoaXMuX3JlY2FsY3VsYXRlUHJpY2VTY2FsZUJ5U2NhbGVSYXRpby5iaW5kKHRoaXMsZSkpLGUucHJpY2VSYW5nZUNoYW5nZWQoKS5zdWJzY3JpYmUodGhpcyx0aGlzLl9yZWNhbGN1bGF0ZVRpbWVTY2FsZUJ5U2NhbGVSYXRpby5iaW5kKHRoaXMsZSkpLGUucHJpY2VSYW5nZUNoYW5nZWQoKS5zdWJzY3JpYmUodGhpcyx0aGlzLl9vblByaWNlU2NhbGVTZXRNaW5NYXhQcmljZVJhbmdlLmJpbmQodGhpcyxlKSksZS5pc1Zpc2libGUoKS5zdWJzY3JpYmUodGhpcy5fb25QcmljZVNjYWxlSXNWaXNpYmxlQ2hhbmdlZCksZS5yZXNldFNjYWxlQXZhaWxhYmxlKCkuc3Vic2NyaWJlKHRoaXMuX3VwZGF0ZVJlc2V0UHJpY2VTY2FsZXNBdmFpbGFibGVWYWx1ZSksZS5pc0xvY2tTY2FsZSgpJiYoKDAsbC5hc3NlcnQpKG51bGw9PT10aGlzLl9sb2NrZWRQcmljZVNjYWxlKSx0aGlzLl9sb2NrZWRQcmljZVNjYWxlPWUsdGhpcy5fY3VycmVudFByaWNlU2NhbGVSYXRpbz1udWxsKSxlLmludmFsaWRhdGVNYXJnaW5zKCksdGhpcy5fb25QcmljZVNjYWxlc0NoYW5nZWQuZmlyZSgpLHRoaXMuX3VwZGF0ZVJlc2V0UHJpY2VTY2FsZXNBdmFpbGFibGVWYWx1ZSgpfV9vblByaWNlU2NhbGVNb2RlQ2hhbmdlZChlLHQsaSl7aWYoaS5sb2NrU2NhbGUmJih0aGlzLl9sb2NrZWRQcmljZVNjYWxlIT09ZSYmbnVsbCE9PXRoaXMuX2xvY2tlZFByaWNlU2NhbGUmJnRoaXMuX2xvY2tlZFByaWNlU2NhbGUuc2V0TW9kZSh7bG9ja1NjYWxlOiExfSksdGhpcy5fbG9ja2VkUHJpY2VTY2FsZT1lLHRoaXMuX2N1cnJlbnRQcmljZVNjYWxlUmF0aW89KDAsaWEuc2NhbGVSYXRpbykodGhpcy50aW1lU2NhbGUoKSxlKSksdC5sb2NrU2NhbGUmJiFpLmxvY2tTY2FsZSYmKHRoaXMuX2xvY2tlZFByaWNlU2NhbGU9bnVsbCx0aGlzLl9jdXJyZW50UHJpY2VTY2FsZVJhdGlvPW51bGwpLAp0LnBlcmNlbnRhZ2U9PT1pLnBlcmNlbnRhZ2UmJnQuaW5kZXhlZFRvMTAwPT09aS5pbmRleGVkVG8xMDApcmV0dXJuO2NvbnN0IHM9dGhpcy50aW1lU2NhbGUoKS52aXNpYmxlQmFyc1N0cmljdFJhbmdlKCksbj10aGlzLnRpbWVTY2FsZSgpLmxvZ2ljYWxSYW5nZSgpO251bGwhPT1zJiZudWxsIT09biYmKGUucmVjYWxjdWxhdGVQcmljZVJhbmdlKHMsbiksZS51cGRhdGVBbGxWaWV3cygoMCx0bi52aWV3cG9ydENoYW5nZUV2ZW50KSgpKSl9X2FwcGx5T2xkU2NhbGVSYXRpb1RvUHJpY2VTY2FsZSgpe3RoaXMuX2lzUmVjYWxjdWxhdGluZ1NjYWxlc3x8bnVsbD09PXRoaXMuX2N1cnJlbnRQcmljZVNjYWxlUmF0aW98fG51bGw9PT10aGlzLl9sb2NrZWRQcmljZVNjYWxlfHwodGhpcy5faXNSZWNhbGN1bGF0aW5nU2NhbGVzPSEwLHRoaXMuX3NldE5ld1ByaWNlUmFuZ2VCeVNjYWxlUmF0aW8odGhpcy5fbG9ja2VkUHJpY2VTY2FsZSx0aGlzLl9jdXJyZW50UHJpY2VTY2FsZVJhdGlvLHRoaXMuX21haW5Tb3VyY2VWaXNpYmxlUHJpY2VSYW5nZSh0aGlzLl9sb2NrZWRQcmljZVNjYWxlKSksdGhpcy5faXNSZWNhbGN1bGF0aW5nU2NhbGVzPSExKX1fc2V0TmV3UHJpY2VSYW5nZUJ5U2NhbGVSYXRpbyhlLHQsaSxzLG4pe2NvbnN0IHI9KDAsaWEucHJpY2VSYW5nZUJ5U2NhbGVSYXRpbykoZSx0aGlzLnRpbWVTY2FsZSgpLmJhclNwYWNpbmcoKSx0KTtlLnNldFByaWNlUmFuZ2UobnVsbCE9PXI/cjppLHMsbil9X2FwcGx5T2xkU2NhbGVSYXRpb1RvVGltZVNjYWxlKCl7dGhpcy5faXNSZWNhbGN1bGF0aW5nU2NhbGVzfHxudWxsPT09dGhpcy5fY3VycmVudFByaWNlU2NhbGVSYXRpb3x8KHRoaXMuX2lzUmVjYWxjdWxhdGluZ1NjYWxlcz0hMCx0aGlzLl9zZXROZXdCYXJTcGFjaW5nQnlTY2FsZVJhdGlvKCksdGhpcy5faXNSZWNhbGN1bGF0aW5nU2NhbGVzPSExKX1fdHJ5VG9BcHBseU5ld1ByaWNlU2NhbGVSYXRpbygpe2NvbnN0IGU9KDAsbC5lbnN1cmVOb3ROdWxsKSh0aGlzLl9sb2NrZWRQcmljZVNjYWxlKSx0PSgwLGlhLnNjYWxlUmF0aW8pKHRoaXMudGltZVNjYWxlKCksZSk7dGhpcy5fY3VycmVudFByaWNlU2NhbGVSYXRpbz09PXR8fGUuaXNMb2coKXx8KHRoaXMuX2N1cnJlbnRQcmljZVNjYWxlUmF0aW89dCx0aGlzLm1vZGVsKCkubWFpblNlcmllc1NjYWxlUmF0aW9Qcm9wZXJ0eU9uQ2hhbmdlZCgpKX1fcmVjYWxjdWxhdGVUaW1lU2NhbGVCeVNjYWxlUmF0aW8oZSl7ZT09PXRoaXMuX2xvY2tlZFByaWNlU2NhbGUmJihudWxsIT09dGhpcy5fY3VycmVudFByaWNlU2NhbGVSYXRpbz90aGlzLl9hcHBseU9sZFNjYWxlUmF0aW9Ub1RpbWVTY2FsZSgpOnRoaXMuX3RyeVRvQXBwbHlOZXdQcmljZVNjYWxlUmF0aW8oKSl9X3NldE5ld0JhclNwYWNpbmdCeVNjYWxlUmF0aW8oKXtjb25zdCBlPXRoaXMudGltZVNjYWxlKCkuZ2V0VmFsaWRCYXJTcGFjaW5nKCgwLGlhLmJhclNwYWNpbmdCeVNjYWxlUmF0aW8pKCgwLGwuZW5zdXJlTm90TnVsbCkodGhpcy5fbG9ja2VkUHJpY2VTY2FsZSksdGhpcy5fY3VycmVudFByaWNlU2NhbGVSYXRpbykpO3RoaXMudGltZVNjYWxlKCkuaXNWYWxpZEJhclNwYWNpbmcoZSkmJnRoaXMudGltZVNjYWxlKCkuc2V0QmFyU3BhY2luZyhlKX1fbWFpblNvdXJjZVZpc2libGVQcmljZVJhbmdlKGUpe2NvbnN0IHQ9dGhpcy50aW1lU2NhbGUoKSxpPXQudmlzaWJsZUJhcnNTdHJpY3RSYW5nZSgpO2lmKG51bGw9PT1pKXJldHVybiBuZXcgUGwuUHJpY2VSYW5nZSgtLjUsLjUpO2NvbnN0IHM9KDAsbC5lbnN1cmVOb3ROdWxsKSh0LmxvZ2ljYWxSYW5nZSgpKSxuPXtzdGFydFRpbWVQb2ludDppLmZpcnN0QmFyKCksZW5kVGltZVBvaW50OmkubGFzdEJhcigpLGxvZ2ljU3RhcnRQb2ludDpzLmxlZnQoKSxsb2dpY0VuZFBvaW50OnMucmlnaHQoKSx0YXJnZXRQcmljZVNjYWxlOmUsc2NhbGVTZXJpZXNPbmx5OmUuaXNTY2FsZVNlcmllc09ubHkoKX07cmV0dXJuKDAsbC5lbnN1cmVOb3ROdWxsKSgoMCxsLmVuc3VyZU5vdE51bGwpKGUubWFpblNvdXJjZSgpKS5wcmljZVJhbmdlKG4pKX1fc2V0TWluTWF4UHJpY2VSYW5nZSgpe2NvbnN0IGU9KDAsbC5lbnN1cmVOb3ROdWxsKSh0aGlzLl9sb2NrZWRQcmljZVNjYWxlKSx0PSgwLGlhLnByaWNlUmFuZ2VCeVNjYWxlUmF0aW8pKGUsdGhpcy50aW1lU2NhbGUoKS5tYXhCYXJTcGFjaW5nKCksdGhpcy5fY3VycmVudFByaWNlU2NhbGVSYXRpbyksaT0oMCxpYS5wcmljZVJhbmdlQnlTY2FsZVJhdGlvKShlLHRoaXMudGltZVNjYWxlKCkubWluQmFyU3BhY2luZygpLHRoaXMuX2N1cnJlbnRQcmljZVNjYWxlUmF0aW8pO251bGwhPT10JiZlLnNldE1heFByaWNlUmFuZ2UodCksbnVsbCE9PWkmJmUuc2V0TWluUHJpY2VSYW5nZShpKX1fb25QcmljZVNjYWxlU2V0TWluTWF4UHJpY2VSYW5nZShlKXtlPT09dGhpcy5fbG9ja2VkUHJpY2VTY2FsZSYmdGhpcy5fc2V0TWluTWF4UHJpY2VSYW5nZSgpfV9vbkRhdGFTb3VyY2VzWk9yZGVyc0NoYW5nZWQoKXswPT09dGhpcy5fYnVsa0FjdGlvbnMuYWN0aXZlQ291bnRlcj90aGlzLl9kYXRhU291cmNlc1pPcmRlcnNDaGFuZ2VkLmZpcmUoKTp0aGlzLl9idWxrQWN0aW9ucy5kYXRhU291cmNlc1pPcmRlcnNDaGFuZ2VkPSEwfV9vblByaWNlU291cmNlc0NvbGxlY3Rpb25DaGFuZ2VkKCl7MD09PXRoaXMuX2J1bGtBY3Rpb25zLmFjdGl2ZUNvdW50ZXI/dGhpcy5fcHJpY2VTb3VyY2VzQ29sbGVjdGlvbkNoYW5nZWQuZmlyZSgpOnRoaXMuX2J1bGtBY3Rpb25zLnByaWNlU291cmNlc0NvbGxlY3Rpb25DaGFuZ2VkPSEwfV9ub25PdmVybGF5UHJpY2VzU291cmNlc0NvdW50KCl7cmV0dXJuIHRoaXMubV9kYXRhU291cmNlcy5maWx0ZXIoKGU9PighKDAsdGkuaXNTdHVkeSkoZSl8fCFlLmlzTGlua2VkVG9TZXJpZXMoKSkmJigoMCxIcy5pc1ByaWNlRGF0YVNvdXJjZSkoZSkmJmUuc2hvd0luT2JqZWN0VHJlZSgpJiYhdGhpcy5pc092ZXJsYXkoZSkpKSkubGVuZ3RofV9yZXN0b3JlTWFpblNlcmllcyhlLHQsaSxzLG4scixoKXtjb25zdCBkPWUuaWQsdT1lLnN0YXRlCjtpZih1JiZuJiYodS5zdHlsZT1uLnN0eWxlPz91LnN0eWxlLHUuaW50ZXJ2YWw9bi5pbnRlcnZhbHx8dS5pbnRlcnZhbCxuLnN5bWJvbCYmbi5zeW1ib2whPT11LnN5bWJvbCYmKHUuc3ltYm9sPW4uc3ltYm9sLGRlbGV0ZSB1LmN1cnJlbmN5SWQsZGVsZXRlIHUudW5pdElkKSksdSYmWyJjYW5kbGVTdHlsZSIsImhvbGxvd0NhbmRsZVN0eWxlIiwiaGFTdHlsZSJdLmZvckVhY2goKGU9Pnt1W2VdJiYodVtlXS53aWNrVXBDb2xvcj11W2VdLndpY2tVcENvbG9yfHx1W2VdLndpY2tDb2xvcix1W2VdLndpY2tEb3duQ29sb3I9dVtlXS53aWNrRG93bkNvbG9yfHx1W2VdLndpY2tDb2xvcil9KSksdSYmKHUuc3RhdHVzVmlld1N0eWxlPXUuc3RhdHVzVmlld1N0eWxlfHx7fSwhdS5zdGF0dXNWaWV3U3R5bGUuc3ltYm9sVGV4dFNvdXJjZSkpe2NvbnN0IGU9ISF1LnN0YXR1c1ZpZXdTdHlsZS5zaG93U3ltYm9sQXNEZXNjcmlwdGlvbjt1LnN0YXR1c1ZpZXdTdHlsZS5zeW1ib2xUZXh0U291cmNlPWU/InRpY2tlciI6ImRlc2NyaXB0aW9uIn1pZih1KXt1LmV4dGVuZGVkSG91cnM/dS5zZXNzaW9uSWQ9ImV4dGVuZGVkIjp1LnNlc3Npb25JZHx8KHUuc2Vzc2lvbklkPSJyZWd1bGFyIiksZGVsZXRlIHUuZXh0ZW5kZWRIb3VycywoMCxRbC5hbGxDaGFydFN0eWxlcykoKS5pbmNsdWRlcyh1LnN0eWxlKXx8KHUuc3R5bGU9Mik7Y29uc3QgZT11LmxpbmVTdHlsZS5zdHlsZVR5cGU7bGV0IHQ7ZGVsZXRlIHUubGluZVN0eWxlLnN0eWxlVHlwZSwwPT09ZSYmKHQ9MTQsdS5saW5lV2l0aE1hcmtlcnNTdHlsZT0oMCxhLmNsb25lKSh1LmxpbmVTdHlsZSkpLDE9PT1lJiYodD0xNSx1LnN0ZXBsaW5lU3R5bGU9KDAsYS5jbG9uZSkodS5saW5lU3R5bGUpKSx2b2lkIDAhPT10JiYyPT09dS5zdHlsZSYmKHUuc3R5bGU9dCk7Y29uc3QgaT11LnZvbEZvb3RwcmludFN0eWxlPy5leHRlbmRlZFN1bW1hcnk/LmZ1dHVyZXNCbG9ja0luZm87aSYmKHUudm9sRm9vdHByaW50U3R5bGUuZXh0ZW5kZWRTdW1tYXJ5LmV4dGVuZGVkT3BlbkludGVyZXN0QmxvY2tJbmZvPXtvcGVuSW50ZXJlc3RMb3c6e3Zpc2libGU6aS5vcGVuSW50ZXJlc3RMb3cudmlzaWJsZT8/ITB9LG9wZW5JbnRlcmVzdEhpZ2g6e3Zpc2libGU6aS5vcGVuSW50ZXJlc3RIaWdoLnZpc2libGU/PyEwfX0sZGVsZXRlIHUudm9sRm9vdHByaW50U3R5bGUuZXh0ZW5kZWRTdW1tYXJ5LmZ1dHVyZXNCbG9ja0luZm8pO2NvbnN0IHM9dGhpcy5fbW9kZWwudGltZXpvbmVFeGNlcHRFeGNoYW5nZSgpLnZhbHVlKCk7bGV0IG49dS5zdnBTdHlsZT8uaW5wdXRzPy5jdXN0b21TZXNzaW9uVFo/P251bGw7aWYobnVsbCE9PXMmJm51bGwhPT1uJiYobj0iZXhjaGFuZ2UiPT09bi50b0xvd2VyQ2FzZSgpP3M6bixuIT09cykpe2NvbnN0IGU9dS5zdnBTdHlsZS5pbnB1dHMuY3VzdG9tU2Vzc2lvbj8/IiIsW3QsaV09ZS5zcGxpdCgiLSIpLHI9KDAsby5nZXRfdGltZXpvbmUpKG4pLGE9KDAsby5nZXRfdGltZXpvbmUpKHMpLGw9c2ModCxyLGEpLGM9c2MoaSxyLGEpO3Uuc3ZwU3R5bGUuaW5wdXRzLmN1c3RvbVNlc3Npb249YCR7bH0tJHtjfWAsdS5zdnBTdHlsZS5pbnB1dHMuY3VzdG9tU2Vzc2lvblRaPXN9fWlmKHUpZm9yKGNvbnN0IGUgb2ZbImxpbmVTdHlsZSIsImxpbmVXaXRoTWFya2Vyc1N0eWxlIiwic3RlcGxpbmVTdHlsZSJdKWljKHVbZV0pO2lmKCFpKXtjb25zdCBlPXRoaXMuX21vZGVsLm1haW5TZXJpZXMoKTsoMCxsLmVuc3VyZU5vdE51bGwpKHRoaXMuX21vZGVsLm1haW5QYW5lKCkpLnJlbW92ZURhdGFTb3VyY2UoZSwhMSxyKSx0aGlzLl9hZGRTb3VyY2VUb0NvbGxlY3Rpb25zKGUscil9Y29uc3QgcD10aGlzLm1vZGVsKCkubWFpblNlcmllcygpLF89cC5wcm9wZXJ0aWVzKCkuY2hpbGRzKCk7dGhpcy5tX21haW5EYXRhU291cmNlPXA7Y29uc3QgbT11JiZ1LnN0eWxlP3Uuc3R5bGU6dm9pZCAwOzY9PT1tJiYiQVRSIj09PV8ucG5mU3R5bGUuY2hpbGRzKCkuaW5wdXRzLmNoaWxkcygpLnN0eWxlLnZhbHVlKCk/Xy5wbmZTdHlsZS5jaGlsZHMoKS5pbnB1dHMuY2hpbGRzKCkuc3R5bGUuc2V0VmFsdWVTaWxlbnRseSgiVHJhZGl0aW9uYWwiKTo0PT09bSYmIkFUUiI9PT1fLnJlbmtvU3R5bGUuY2hpbGRzKCkuaW5wdXRzLmNoaWxkcygpLnN0eWxlLnZhbHVlKCkmJl8ucmVua29TdHlsZS5jaGlsZHMoKS5pbnB1dHMuY2hpbGRzKCkuc3R5bGUuc2V0VmFsdWVTaWxlbnRseSgiVHJhZGl0aW9uYWwiKSx1JiYhdS5oYXNPd25Qcm9wZXJ0eSgic2hvd1Nlc3Npb25zIikmJih1LnNob3dTZXNzaW9ucz0hMSksdSYmdm9pZCAwPT09dS5zZXR0bGVtZW50QXNDbG9zZSYmKHUuc2V0dGxlbWVudEFzQ2xvc2U9ITEpLHUmJnQmJih1LnNob3dDb3VudGRvd249ITEpLHUmJih0JiYhKCJzaG93U2VyaWVzTGFzdFZhbHVlUHJvcGVydHkiaW4gcykmJiJzaG93TGFzdFZhbHVlImluIHUmJnRoaXMuX21vZGVsLnByb3BlcnRpZXMoKS5jaGlsZHMoKS5zY2FsZXNQcm9wZXJ0aWVzLmNoaWxkcygpLnNob3dTZXJpZXNMYXN0VmFsdWUuc2V0VmFsdWUodS5zaG93TGFzdFZhbHVlKSxkZWxldGUgdS5zaG93TGFzdFZhbHVlKSx1JiZ0aGlzLl9yZXN0b3JlTWFpblNlcmllc1N0dWR5SW5wdXRzKGUscC5zdHlsZVN0dWR5SW5mb3MoKSk7Y29uc3QgZz1wLnNlc3Npb25JZCgpOygwLGxsLmdldFBlcnNpc3RlbnRMb2dnZXIpKCk/LmFkZFBlcnNpc3RlbnRMb2dFbnRyeShgUmVzdG9yZSBzZXJpZXMuIHNvdXJjZS5pZDogJHtlLmlkfSBpZDogJHtkfWAsYy5MT0dMRVZFTC5JTkZPLGFjKSxwLnJlc3RvcmVTdGF0ZShlLHQsaCksdGhpcy5jaGFuZ2VTb3VyY2VJZChwLGQpLCgwLGxsLmdldFBlcnNpc3RlbnRMb2dnZXIpKCk/LmFkZFBlcnNpc3RlbnRMb2dFbnRyeShgU2VyaWVzIGhhcyBiZWVuIHN1Y2Nlc3NmdWxseSByZXN0b3JlZC4gaWQ6ICR7cC5pZCgpfWAsYy5MT0dMRVZFTC5JTkZPLGFjKSxwLnNlc3Npb25JZCgpIT09ZyYmXy5zZXNzaW9uSWQuZmlyZUNoYW5nZWQoKX1hc3luYyBfcmVzdG9yZU1haW5TZXJpZXNTdHVkeUlucHV0cyhlLHQpe2F3YWl0KDAsCmF0LnN0dWR5TWV0YUluZm9SZXBvc2l0b3J5KSgpLnJlcXVlc3RNZXRhSW5mbygpO2NvbnN0IGk9KDAsYXQuc3R1ZHlNZXRhSW5mb1JlcG9zaXRvcnkpKCkuc3R1ZHlWZXJzaW9uaW5nKCkscz0oMCxsLmVuc3VyZURlZmluZWQpKGUuc3RhdGUpLG49e2hhU3R5bGU6KDAsQS5jaGFydFN0eWxlU3R1ZHlJZCkoOCwhMCxzLmhhU3R5bGU/LmlucHV0cykscmVua29TdHlsZTooMCxBLmNoYXJ0U3R5bGVTdHVkeUlkKSg0LCEwLHMucmVua29TdHlsZT8uaW5wdXRzKSxwYlN0eWxlOigwLEEuY2hhcnRTdHlsZVN0dWR5SWQpKDcsITAscy5wYlN0eWxlPy5pbnB1dHMpLGthZ2lTdHlsZTooMCxBLmNoYXJ0U3R5bGVTdHVkeUlkKSg1LCEwLHMua2FnaVN0eWxlPy5pbnB1dHMpLHBuZlN0eWxlOigwLEEuY2hhcnRTdHlsZVN0dWR5SWQpKDYsITAscy5wbmZTdHlsZT8uaW5wdXRzKSxyYW5nZVN0eWxlOigwLEEuY2hhcnRTdHlsZVN0dWR5SWQpKDExLCEwLHMucmFuZ2VTdHlsZT8uaW5wdXRzKSx2b2xGb290cHJpbnRTdHlsZTooMCxBLmNoYXJ0U3R5bGVTdHVkeUlkKSgxNywhMCxzLnZvbEZvb3RwcmludFN0eWxlPy5pbnB1dHMpLHRwb1N0eWxlOigwLEEuY2hhcnRTdHlsZVN0dWR5SWQpKDE4LCEwLHMudHBvU3R5bGU/LmlucHV0cyksc3ZwU3R5bGU6KDAsQS5jaGFydFN0eWxlU3R1ZHlJZCkoMjAsITAscy5zdnBTdHlsZT8uaW5wdXRzKX0scj17fTtmb3IoY29uc3Rbb11vZiBPYmplY3QuZW50cmllcyhMLlNZTUJPTF9TVFJJTkdfREFUQSkpe2NvbnN0IGE9YCR7TC5TVFlMRV9TSE9SVF9OQU1FU1tvXX1TdHlsZWAsbD1zW2FdPy5pbnB1dHM7aWYobnVsbD09bCljb250aW51ZTtjb25zdCBjPWEgaW4gZT9lW2FdLnN0dWR5SWQ6blthXSxoPW90LlN0dWR5TWV0YUluZm8ucGFyc2VJZFN0cmluZyhjKSxkPXRbYV0uc3R1ZHlJZCx1PW90LlN0dWR5TWV0YUluZm8ucGFyc2VJZFN0cmluZyhkKSxwPWkudXBkYXRlU3R1ZHlJbnB1dHMoaC5pZCxoLnZlcnNpb24sdS52ZXJzaW9uLGwuaW5wdXRzLG51bGwpO3JbYV09e2lucHV0czpwfX10aGlzLm1vZGVsKCkubWFpblNlcmllcygpLnByb3BlcnRpZXMoKS5tZXJnZUFuZEZpcmUocil9X3Jlc3RvcmVTcGVjaWFsU291cmNlKGUsdCxpKXtlLnR5cGU9PT1wbC5DaGFydEV2ZW50c1NvdXJjZUlkLlZhbHVlJiZ0JiZ0aGlzLl9tb2RlbC5yZXN0b3JlQ2hhcnRFdmVudHMoZSl9X3Byb2Nlc3NBZnRlckJ1bGtBY3Rpb24oKXtjb25zdCBlPXRoaXMuX2J1bGtBY3Rpb25zOzA9PT1lLmFjdGl2ZUNvdW50ZXImJih0aGlzLl9kYXRhU291cmNlc0NvbGxlY3Rpb25DaGFuZ2VkLmZpcmUoKSxlLnN5bWJvbFNvdXJjZUNvbGxlY3Rpb25DaGFuZ2VkJiYodGhpcy5fc3ltYm9sU291cmNlQ29sbGVjdGlvbkNoYW5nZWQuZmlyZSgpLGUuc3ltYm9sU291cmNlQ29sbGVjdGlvbkNoYW5nZWQ9ITEpLGUucHJpY2VTb3VyY2VzQ29sbGVjdGlvbkNoYW5nZWQmJih0aGlzLl9wcmljZVNvdXJjZXNDb2xsZWN0aW9uQ2hhbmdlZC5maXJlKCksZS5wcmljZVNvdXJjZXNDb2xsZWN0aW9uQ2hhbmdlZD0hMSksZS5kYXRhU291cmNlc1pPcmRlcnNDaGFuZ2VkJiYodGhpcy5fZGF0YVNvdXJjZXNaT3JkZXJzQ2hhbmdlZC5maXJlKCksZS5kYXRhU291cmNlc1pPcmRlcnNDaGFuZ2VkPSExKSl9fXZhciBjYyxoYz1pKDUxNTk3MyksZGM9aSg0MDM4MTcpOyFmdW5jdGlvbihlKXtlW2UuTGVmdD0wXT0iTGVmdCIsZVtlLlJpZ2h0PTFdPSJSaWdodCIsZVtlLk5lYXJlc3Q9Ml09Ik5lYXJlc3QifShjY3x8KGNjPXt9KSk7Y29uc3QgdWM9KDAsYy5nZXRMb2dnZXIpKCJDaGFydC5UaW1lUG9pbnRzIik7ZnVuY3Rpb24gcGMoZSx0KXtyZXR1cm4gbnVsbD09PWV8fG51bGw9PT10P2U9PT10OmUuZmlyc3RJbmRleD09PXQuZmlyc3RJbmRleCYmZS5sYXN0SW5kZXg9PT10Lmxhc3RJbmRleH1jbGFzcyBfY3tjb25zdHJ1Y3Rvcigpe3RoaXMuX3pvZmZzZXQ9MCx0aGlzLl9pdGVtcz1bXSx0aGlzLl9yYW5nZT1uZXcgZC5XYXRjaGVkT2JqZWN0KG51bGwscGMpfWNsZWFyKCl7dGhpcy5fem9mZnNldD0wLHRoaXMuX2l0ZW1zPVtdLHRoaXMuX3JhbmdlLnNldFZhbHVlKG51bGwpfXNpemUoKXtyZXR1cm4gdGhpcy5faXRlbXMubGVuZ3RofXJhbmdlKCl7cmV0dXJuIHRoaXMuX3JhbmdlLnJlYWRvbmx5KCl9bWVyZ2UoZSx0LGkpe2NvbnN0IHM9dGhpcy5fbWVyZ2VJbXBsKGUsdCxpKTtyZXR1cm4gdGhpcy5fdXBkYXRlRmlyc3RBbmRMYXN0SW5kZXgoKSxzfWFkZFRhaWwoZSx0KXtmb3IobGV0IGk9dD8xOjA7aTxlLmxlbmd0aDtpKyspdGhpcy5faXRlbXMucHVzaChlW2ldKTt0aGlzLl91cGRhdGVGaXJzdEFuZExhc3RJbmRleCgpfXJlbW92ZShlKXtjb25zdCB0PXRoaXMuX2luZGV4VG9PZmZzZXQoZSk7aWYobnVsbD09PXQpcmV0dXJuW107Y29uc3QgaT10aGlzLl9pdGVtcy5zcGxpY2UodCkscz1bXTtmb3IobGV0IHQ9MDt0PGkubGVuZ3RoO3QrKylzLnB1c2goe2NoYW5nZToicmVtb3ZlIixpbmRleDplK3QsdmFsdWU6aVt0XX0pO3JldHVybiB0aGlzLl91cGRhdGVGaXJzdEFuZExhc3RJbmRleCgpLHN9dmFsdWVBdChlKXtjb25zdCB0PXRoaXMuX2luZGV4VG9PZmZzZXQoZSk7cmV0dXJuIG51bGwhPT10P3RoaXMuX2l0ZW1zW3RdPz9udWxsOm51bGx9aW5kZXhPZihlLHQpe2lmKHRoaXMuX2l0ZW1zLmxlbmd0aDwxKXJldHVybiBudWxsO2lmKGU+dGhpcy5faXRlbXNbdGhpcy5faXRlbXMubGVuZ3RoLTFdKXJldHVybiB0P3RoaXMuX3ZhbGlkT2Zmc2V0VG9JbmRleCh0aGlzLl9pdGVtcy5sZW5ndGgtMSk6bnVsbDtmb3IobGV0IGk9MDtpPHRoaXMuX2l0ZW1zLmxlbmd0aDsrK2kpe2lmKGU9PT10aGlzLl9pdGVtc1tpXSlyZXR1cm4gdGhpcy5fdmFsaWRPZmZzZXRUb0luZGV4KGkpO2lmKGU8dGhpcy5faXRlbXNbaV0pcmV0dXJuIHQ/dGhpcy5fdmFsaWRPZmZzZXRUb0luZGV4KGkpOm51bGx9cmV0dXJuIG51bGx9c3RhdGUoZSl7bGV0IHQ9MCxpPXRoaXMuX2l0ZW1zLmxlbmd0aDtyZXR1cm4gbnVsbCE9PWUmJih0PXRoaXMuX2luZGV4VG9PZmZzZXQoZS5maXJzdEJhcigpKT8/MCwKaT0odGhpcy5faW5kZXhUb09mZnNldChlLmxhc3RCYXIoKSk/P2ktMSkrMSkse2l0ZW1zOnRoaXMuX2l0ZW1zLnNsaWNlKHQsaSksem9mZnNldDp0aGlzLl96b2Zmc2V0LXR9fXJlc3RvcmVTdGF0ZShlKXtudWxsIT09ZSYmKHRoaXMuX2l0ZW1zPWUuaXRlbXMsdGhpcy5fem9mZnNldD1lLnpvZmZzZXQsdGhpcy5fdXBkYXRlRmlyc3RBbmRMYXN0SW5kZXgoKSl9cm91Z2hUaW1lKGUsdD1udWxsKXtlPU1hdGgucm91bmQoZSk7Y29uc3QgaT10aGlzLnZhbHVlQXQoZSk7aWYobnVsbCE9PWkpcmV0dXJuIGk7Y29uc3Qgcz10aGlzLl9pdGVtcztpZighcy5sZW5ndGh8fHMubGVuZ3RoPDIpcmV0dXJuIG51bGw7Y29uc3Qgbj1zLmxlbmd0aC0xLHI9dGhpcy5fdmFsaWRPZmZzZXRUb0luZGV4KDApLG89dGhpcy5fdmFsaWRPZmZzZXRUb0luZGV4KG4pLGE9c1swXSxsPXNbbl0sYz0obC1hKS8oby1yKTtpZihlPHIpe3JldHVybiBhLShyLWUpKmN9aWYoZT5vKXtjb25zdCBpPWUtbztpZihpPDUwMCYmbnVsbCE9dClyZXR1cm4gdChsLGkpO3JldHVybiBsK2kqY31yZXR1cm4gbnVsbH1yb3VnaEluZGV4KGUsdD1udWxsLGk9MCl7Y29uc3Qgcz10aGlzLl9pdGVtcztpZighcy5sZW5ndGh8fHMubGVuZ3RoPDIpcmV0dXJuIG51bGw7Y29uc3Qgbj1zLmxlbmd0aC0xLHI9dGhpcy5fdmFsaWRPZmZzZXRUb0luZGV4KDApLG89dGhpcy5fdmFsaWRPZmZzZXRUb0luZGV4KG4pLGE9c1swXSxsPXNbbl07aWYoZT49YSYmZTw9bClyZXR1cm4gdGhpcy5fY2xvc2VzdEluZGV4KGUsaSk7Y29uc3QgYz0obC1hKS8oby1yKTtpZihlPGEpe2NvbnN0IHQ9YS1lO3JldHVybiByLU1hdGgucm91bmQodC9jKX1pZihlPmwpe2NvbnN0IGk9ZS1sO2xldCBzPU1hdGgudHJ1bmMoaS9jKTtpZihzPDUwMCYmbnVsbCE9PXQpe2NvbnN0IGk9dChsLGUpO2kuc3VjY2VzcyYmKHM9aS5yZXN1bHQpfXJldHVybiBvK3N9cmV0dXJuIG51bGx9Y2xvc2VzdEluZGV4TGVmdChlKXtyZXR1cm4gdGhpcy5fY2xvc2VzdEluZGV4KGUsMCl9Zmlyc3RQb2ludCgpe3JldHVybiAwPT09dGhpcy5faXRlbXMubGVuZ3RoP251bGw6dGhpcy5faXRlbXNbMF19bGFzdFBvaW50KCl7cmV0dXJuIDA9PT10aGlzLl9pdGVtcy5sZW5ndGg/bnVsbDp0aGlzLl9pdGVtc1t0aGlzLl9pdGVtcy5sZW5ndGgtMV19X2Nsb3Nlc3RJbmRleChlLHQpe2NvbnN0IGk9dGhpcy5faXRlbXM7aWYoIWkubGVuZ3RoKXJldHVybiBudWxsO2lmKE51bWJlci5pc05hTihlKSlyZXR1cm4gbnVsbDtjb25zdCBzPWkubGVuZ3RoLTE7aWYoZT49aVtzXSlyZXR1cm4gdGhpcy5fdmFsaWRPZmZzZXRUb0luZGV4KHMpO2NvbnN0IG49KDAsZy5sb3dlcmJvdW5kKSh0aGlzLl9pdGVtcyxlLCgoZSx0KT0+ZTx0KSk7aWYobjw9cyYmdGhpcy5faXRlbXNbbl09PT1lKXJldHVybiB0aGlzLl92YWxpZE9mZnNldFRvSW5kZXgobik7aWYoMD09PXQpcmV0dXJuIDA9PT1uP251bGw6dGhpcy5fdmFsaWRPZmZzZXRUb0luZGV4KG4tMSk7aWYoMT09PXQpcmV0dXJuIG4+cz9udWxsOnRoaXMuX3ZhbGlkT2Zmc2V0VG9JbmRleChuKTtjb25zdCByPWUtKHRoaXMuX2l0ZW1zW24tMV0/Py0xLzApLG89KHRoaXMuX2l0ZW1zW25dPz8xLzApLWU7cmV0dXJuIHRoaXMuX3ZhbGlkT2Zmc2V0VG9JbmRleChyPG8/bi0xOm4pfV9tZXJnZUltcGwoZSx0LGkpe2lmKDA9PT1pLmxlbmd0aClyZXR1cm4gdWMubG9nRXJyb3IoIm1lcmdlOiAndmFsdWVzJyBkb2VzIG5vdCBjb250YWluIGFueSB0aW1lIHBvaW50cyIpLFtdO2lmKHQ+dGhpcy5fem9mZnNldCYmZSt0PjApcmV0dXJuIHVjLmxvZ0Vycm9yKCJtZXJnZTogd2hlbiB0aGUgZmlyc3QgdGltZSBwb2ludCBpbmRleCBpcyB1cGRhdGVkLCB3ZSBzaG91bGQgZmlsbCB0aGUgdGltZSBwb2ludHMgc3RhcnRpbmcgZnJvbSB0aGUgZmlyc3Qgb25lIiksW107aWYoMD09PXRoaXMuX2l0ZW1zLmxlbmd0aClyZXR1cm4gdGhpcy5faXRlbXM9aS5zbGljZSgpLHRoaXMuX3pvZmZzZXQ9dCxbe2NoYW5nZToicmVidWlsZCIsaW5kZXg6dGhpcy5fdmFsaWRPZmZzZXRUb0luZGV4KDApfV07Y29uc3Qgcz1lK3RoaXMuX3pvZmZzZXQ7aWYoczwwKXtjb25zdCBuPU1hdGguYWJzKHMpO2lmKGkubGVuZ3RoPG4pcmV0dXJuIHVjLmxvZ0Vycm9yKCJtZXJnZTogJ3ZhbHVlcycgZG9lcyBub3QgY29udGFpbiBlbm91Z2ggdGltZSBwb2ludHMgdG8gZmlsbCBpbiB0aGUgbmV3IGl0ZW1zLiAnaW5kZXgnOiAiK2UudG9TdHJpbmcoKSsiLCBwcmV2aW91cyAnem9mZnNldCc6ICIrdGhpcy5fem9mZnNldC50b1N0cmluZygpKyIsIG5ldyAnem9mZnNldCc6ICIrdC50b1N0cmluZygpKyIsICd2YWx1ZXMubGVuZ3RoJzogIitpLmxlbmd0aCksW107dGhpcy5faXRlbXM9bmV3IEFycmF5KG4pLmNvbmNhdCh0aGlzLl9pdGVtcyksdGhpcy5fem9mZnNldD10O2ZvcihsZXQgcz0wO3M8aS5sZW5ndGg7KytzKXRoaXMuX2l0ZW1zW2Urcyt0XT1pW3NdO3JldHVyblt7Y2hhbmdlOiJyZWJ1aWxkIixpbmRleDp0aGlzLl92YWxpZE9mZnNldFRvSW5kZXgoMCl9XX1jb25zdCBuPVtdO2xldCByPXM7Zm9yKDtyPHRoaXMuX2l0ZW1zLmxlbmd0aCYmci1zPGkubGVuZ3RoOysrcil0aGlzLl9pdGVtc1tyXT1pW3Itc10sbi5wdXNoKHtjaGFuZ2U6InVwZGF0ZSIsaW5kZXg6dGhpcy5fdmFsaWRPZmZzZXRUb0luZGV4KHIpLHZhbHVlOmlbci1zXX0pO2NvbnN0IG89cytpLmxlbmd0aDtpZihvPnRoaXMuX2l0ZW1zLmxlbmd0aCl7Y29uc3QgZT1vLXRoaXMuX2l0ZW1zLmxlbmd0aDtmb3IobGV0IHQ9cjt0PHIrZTsrK3Qpe2NvbnN0IGU9dGhpcy5faXRlbXMubGVuZ3RoO3RoaXMuX2l0ZW1zLnB1c2goaVt0LXNdKSxuLnB1c2goe2NoYW5nZToiYXBwZW5kIixpbmRleDp0aGlzLl92YWxpZE9mZnNldFRvSW5kZXgoZSksdmFsdWU6aVt0LXNdfSl9fWVsc2V7Zm9yKGxldCBlPW87ZTx0aGlzLl9pdGVtcy5sZW5ndGg7KytlKW4ucHVzaCh7Y2hhbmdlOiJyZW1vdmUiLGluZGV4OnRoaXMuX3ZhbGlkT2Zmc2V0VG9JbmRleChlKSx2YWx1ZTp0aGlzLl9pdGVtc1tlXX0pO3RoaXMuX2l0ZW1zLmxlbmd0aD1vfXJldHVybiB0aGlzLl96b2Zmc2V0PXQsbn0KX3VwZGF0ZUZpcnN0QW5kTGFzdEluZGV4KCl7Y29uc3QgZT10aGlzLl9vZmZzZXRUb0luZGV4KDApLHQ9dGhpcy5fb2Zmc2V0VG9JbmRleCh0aGlzLl9pdGVtcy5sZW5ndGgtMSk7dGhpcy5fcmFuZ2Uuc2V0VmFsdWUobnVsbD09PWV8fG51bGw9PT10P251bGw6e2ZpcnN0SW5kZXg6ZSxsYXN0SW5kZXg6dH0pfV92YWxpZE9mZnNldFRvSW5kZXgoZSl7cmV0dXJuIGUtdGhpcy5fem9mZnNldH1fb2Zmc2V0VG9JbmRleChlKXtyZXR1cm4gMDw9ZSYmZTx0aGlzLnNpemUoKT90aGlzLl92YWxpZE9mZnNldFRvSW5kZXgoZSk6bnVsbH1faW5kZXhUb09mZnNldChlKXtjb25zdCB0PWUrdGhpcy5fem9mZnNldDtyZXR1cm4gMDw9dCYmdDx0aGlzLnNpemUoKT90Om51bGx9fXZhciBtYz1pKDgxNDU4OSk7Y29uc3QgZ2M9bmV3IE1hcChbWzAsLjFdLFsxMSwuMV0sWzEsLjM1XSxbOSwuMzVdLFsxMiwuMzVdLFs4LC4zNV1dKTtjbGFzcyBmY3tjb25zdHJ1Y3RvcihlLHQpe3RoaXMuX3N0eWxlU3BlY2lmaWNSYW5nZXM9bmV3IE1hcCx0aGlzLl9sb2dpY2FsUmFuZ2U9ZSx0aGlzLl9kZWZhdWx0U3R5bGU9dH1zdHJpY3RSYW5nZShlKXtpZihudWxsPT09dGhpcy5fbG9naWNhbFJhbmdlKXJldHVybiBudWxsO3ZvaWQgMD09PWUmJihlPXRoaXMuX2RlZmF1bHRTdHlsZSk7bGV0IHQ9dGhpcy5fc3R5bGVTcGVjaWZpY1Jhbmdlcy5nZXQoZSk7aWYodm9pZCAwPT09dCl7Y29uc3QgaT0oZ2MuZ2V0KGUpfHwwKS8yO3Q9bmV3IGhjLkJhcnNSYW5nZShNYXRoLmZsb29yKHRoaXMuX2xvZ2ljYWxSYW5nZS5sZWZ0KCkraSksTWF0aC5jZWlsKHRoaXMuX2xvZ2ljYWxSYW5nZS5yaWdodCgpLWkpKSx0aGlzLl9zdHlsZVNwZWNpZmljUmFuZ2VzLnNldChlLHQpfXJldHVybiB0fWxvZ2ljYWxSYW5nZSgpe3JldHVybiB0aGlzLl9sb2dpY2FsUmFuZ2V9aXNWYWxpZCgpe3JldHVybiBudWxsIT09dGhpcy5fbG9naWNhbFJhbmdlfXN0YXRpYyBpbnZhbGlkKCl7cmV0dXJuIG5ldyBmYyhudWxsLDEpfX12YXIgU2MsdmM9aSgyMzgxMDMpLHljPWkoMzgwNTQwKSxiYz1pKDUxNzI5Myksd2M9aSgyNTAzMzQpLENjPWkoMjk3MTExKSxQYz1pKDU5MTc0MSksVGM9aSgxODk5OTgpOyFmdW5jdGlvbihlKXtlW2UuTWFya1BhZGRpbmdGb3IxNFB4Rm9udD01XT0iTWFya1BhZGRpbmdGb3IxNFB4Rm9udCIsZVtlLk1pbk1hcmtTaXplRm9yMTRQeEZvbnQ9NTBdPSJNaW5NYXJrU2l6ZUZvcjE0UHhGb250IixlW2UuRGVmYXVsdFNraXBJdGVtc1JhdGlvPS41XT0iRGVmYXVsdFNraXBJdGVtc1JhdGlvIixlW2UuTWF4RGF5QXZlcmFnZURldmlhdGlvblBlcmNlbnQ9MjVdPSJNYXhEYXlBdmVyYWdlRGV2aWF0aW9uUGVyY2VudCJ9KFNjfHwoU2M9e30pKTtjb25zdCB4Yz1Dbi5ZRUFSX1NQQU4tMSxNYz1Dbi5ZRUFSX1NQQU4tMixJYz1Dbi5EQVlfU1BBTi0xLExjPUNuLkhPVVJfU1BBTi0xLEFjPUNuLkhPVVJfU1BBTi0yLGtjPUNuLkhPVVJfU1BBTi0zLERjPXtbQ24uTUlMTElTRUNPTkRfU1BBTl06MSxbQ24uSE9VUl9TUEFOKzJdOjEsW0NuLkhPVVJfU1BBTisxXToxLFtDbi5TRUNPTkRfU1BBTl06LjksW01jXTouMSxbQ24uREFZX1NQQU5dOi44NX0sRWM9e1tDbi5EQVlfU1BBTl06MjMwfTtmdW5jdGlvbiBSYyhlLHQpe3JldHVybiBudWxsIT09d2MuY3VzdG9tRm9ybWF0dGVycy50aWNrTWFya0Zvcm1hdHRlcj93Yy5jdXN0b21Gb3JtYXR0ZXJzLnRpY2tNYXJrRm9ybWF0dGVyKGUsdCk6ZnVuY3Rpb24oZSx0KXtzd2l0Y2godCl7Y2FzZSJUaW1lV2l0aE1pbGxpc2Vjb25kcyI6cmV0dXJuIG5ldyBDYy5UaW1lRm9ybWF0dGVyKHZjLmhvdXJNaW51dGVTZWNvbmRNaWxsaXNlY0Zvcm1hdCkuZm9ybWF0KGUpO2Nhc2UiVGltZVdpdGhTZWNvbmRzIjpjYXNlIlRpbWUiOmNvbnN0IGk9IlRpbWVXaXRoU2Vjb25kcyI9PT10PygwLFBjLmdldEhvdXJNaW51dGVTZWNvbmRGb3JtYXQpKFRjLnRpbWVIb3Vyc0Zvcm1hdFByb3BlcnR5LnZhbHVlKCkpOigwLFBjLmdldEhvdXJNaW51dGVGb3JtYXQpKFRjLnRpbWVIb3Vyc0Zvcm1hdFByb3BlcnR5LnZhbHVlKCkpO3JldHVybiBuZXcgQ2MuVGltZUZvcm1hdHRlcihpKS5mb3JtYXQoZSk7Y2FzZSJEYXlPZk1vbnRoIjpyZXR1cm4gZS5nZXRVVENEYXRlKCkudG9TdHJpbmcoKTtjYXNlIk1vbnRoIjpyZXR1cm4geWMubW9udGhzU2hvcnROYW1lc1tlLmdldFVUQ01vbnRoKCldO2Nhc2UiWWVhciI6cmV0dXJuIGUuZ2V0VVRDRnVsbFllYXIoKS50b1N0cmluZygpfX0oZSx0KX1jb25zdCBWYz0oMCxCYS5kZWZhdWx0KSgoZT0+KDAsUmkucGFyc2VGb250KShlKT8uc2l6ZT8/MTIpKTtmdW5jdGlvbiBCYyhlLHQsaSxzKXtjb25zdCBuPU5jKGUsdCkscj1NYXRoLm1heChlLndpZHRoLHMpO3JldHVybntsZWZ0Om4tci8yLWkscmlnaHQ6bityLzIraX19ZnVuY3Rpb24gTmMoZSx0KXtyZXR1cm4gZS5pbmRleCp0fWZ1bmN0aW9uIE9jKGUsdCl7cmV0dXJuIHQ9PT1lLmxlbmd0aD9udWxsOmVbdF19ZnVuY3Rpb24gV2MoZSx0LGkscyxuKXtjb25zdCByPUJjKGUsaSxzLG4pLG89QmModCxpLHMsbik7cmV0dXJuIHIucmlnaHQ+by5sZWZ0fWZ1bmN0aW9uIEZjKGUpe3JldHVybiBuZXcgRGF0ZSgxZTMqZSl9ZnVuY3Rpb24gSGMoZSl7aWYoZS5zcGFuPj1Dbi5NT05USF9TUEFOJiZlLnNwYW48Q24uWUVBUl9TUEFOKXtjb25zdCB0PSgwLG8uZ2V0X21vbnRoKShGYyhlLnRpbWUpKTtyZXR1cm4gdD09PW8uSlVMWT94Yzp0PT09by5NQVJDSHx8dD09PW8uTUFZfHx0PT09by5TRVBURU1CRVJ8fHQ9PT1vLk5PVkVNQkVSP01jOkNuLk1PTlRIX1NQQU59aWYoZS5zcGFuPj1Dbi5NSU5VVEVfU1BBTiYmZS5zcGFuPENuLkhPVVJfU1BBTil7Y29uc3QgdD0oMCxvLmdldF9taW51dGVzKShGYyhlLnRpbWUpKTtyZXR1cm4gdCUzMD09MD9MYzp0JTE1PT0wP0FjOnQlNT09MD9rYzpDbi5NSU5VVEVfU1BBTn1pZihlLnNwYW4+PUNuLkhPVVJfU1BBTiYmZS5zcGFuPENuLkRBWV9TUEFOKXtjb25zdCB0PSgwLG8uZ2V0X2hvdXJzKShGYyhlLnRpbWUpKTtyZXR1cm4gMD09PXR8fDEyPT09dD9JYzplLnNwYW59CnJldHVybiBlLnNwYW4+PUNuLldFRUtfU1BBTiYmZS5zcGFuPENuLk1PTlRIX1NQQU4/Q24uREFZX1NQQU46ZS5zcGFufWZ1bmN0aW9uIHpjKGUsdCl7Y29uc3QgaT1mdW5jdGlvbihlLHQpe3JldHVybiBlPT09Q24uTUlMTElTRUNPTkRfU1BBTiYmdD8iVGltZVdpdGhNaWxsaXNlY29uZHMiOmU8Q24uTUlOVVRFX1NQQU4mJnQ/IlRpbWVXaXRoU2Vjb25kcyI6ZTxDbi5EQVlfU1BBTiYmdD8iVGltZSI6ZTxDbi5XRUVLX1NQQU58fGU8Q24uTU9OVEhfU1BBTj8iRGF5T2ZNb250aCI6ZTxDbi5ZRUFSX1NQQU4/Ik1vbnRoIjoiWWVhciJ9KGUsdCkscz1uZXcgYmMuQ2lyY3VsYXJDYWNoZUJ1ZmZlcigxNTApO3JldHVybiBlPT57bGV0IHQ9cy5nZXQoZS50aW1lKTtyZXR1cm4gdm9pZCAwPT09dCYmKHQ9UmMoRmMoZS50aW1lKSxpKSxzLnNldChlLnRpbWUsdCkpLHR9fWNsYXNzIFVje2NvbnN0cnVjdG9yKGUsdCxpKXt0aGlzLl9tYXJrc0J5SW5kZXg9bmV3IE1hcCx0aGlzLl9tYXJrc0J5VGltZT1uZXcgTWFwLHRoaXMuX21hcmtzQnlTcGFuPVtdLHRoaXMuX2NhY2hlPW51bGwsdGhpcy5fbGFiZWxzSW52YWxpZGF0ZWQ9ITAsdGhpcy5fd2lkdGhzSW52YWxpZGF0ZWQ9ITAsdGhpcy5fc2tpcEludHJhRGF5TWFya3NTcGFyc2VDYWNoZT1udWxsLHRoaXMuX2NoYW5nZWQ9bmV3IGYuRGVsZWdhdGUsdGhpcy5fZm9ybWF0dGVyQnlTcGFuPW5ldyBNYXAsdGhpcy5fdGV4dFdpZHRoQ2FjaGU9bmV3IEJpLlRleHRXaWR0aENhY2hlKDFlNCksdGhpcy5fdGltZVZpc2libGU9ZSx0aGlzLl9zcGFyc2VNYXJrcz10LHRoaXMuX2ZvbnQ9aTtUYy50aW1lSG91cnNGb3JtYXRQcm9wZXJ0eS5zdWJzY3JpYmUodGhpcywoKCk9Pnt0aGlzLl9sYWJlbHNJbnZhbGlkYXRlZD0hMCx0aGlzLl9mb3JtYXR0ZXJCeVNwYW4uY2xlYXIoKSx0aGlzLl9jYWNoZT1udWxsfSkpLHRoaXMuX2ZvbnQuc3Vic2NyaWJlKCgoKT0+e3RoaXMuX3RleHRXaWR0aENhY2hlLnJlc2V0KCksdGhpcy5fd2lkdGhzSW52YWxpZGF0ZWQ9ITAsdGhpcy5fY2FjaGU9bnVsbH0pKSx0aGlzLl9zcGFyc2VNYXJrcy5zdWJzY3JpYmUoKCgpPT57dGhpcy5fY2FjaGU9bnVsbH0pKX1kZXN0cm95KCl7VGMudGltZUhvdXJzRm9ybWF0UHJvcGVydHkudW5zdWJzY3JpYmVBbGwodGhpcyksdGhpcy5fdGltZVZpc2libGUucmVsZWFzZSgpLHRoaXMuX3NwYXJzZU1hcmtzLnJlbGVhc2UoKSx0aGlzLl9mb250LnJlbGVhc2UoKX1yZXNldCgpe3RoaXMuX3Jlc2V0SW1wbCgpLHRoaXMuX2NoYW5nZWQuZmlyZSgpfWluZGV4VG9UaW1lKGUpe2NvbnN0IHQ9dGhpcy5fbWFya3NCeUluZGV4LmdldChlKTtyZXR1cm4gdD9uZXcgRGF0ZSgxZTMqdC50aW1lKTpudWxsfW5lYXJlc3RJbmRleChlKXtsZXQgdD10aGlzLm1pbkluZGV4Pz8wLGk9dGhpcy5tYXhJbmRleD8/MDtmb3IoO2ktdD4yOyl7aWYoMWUzKigwLGwuZW5zdXJlRGVmaW5lZCkodGhpcy5fbWFya3NCeUluZGV4LmdldCh0KSkudGltZT09PWUpcmV0dXJuIHQ7aWYoMWUzKigwLGwuZW5zdXJlRGVmaW5lZCkodGhpcy5fbWFya3NCeUluZGV4LmdldChpKSkudGltZT09PWUpcmV0dXJuIGk7Y29uc3Qgcz1NYXRoLnJvdW5kKCh0K2kpLzIpOzFlMyooMCxsLmVuc3VyZURlZmluZWQpKHRoaXMuX21hcmtzQnlJbmRleC5nZXQocykpLnRpbWU+ZT9pPXM6dD1zfXJldHVybiB0fWVzdGltYXRlTGVmdChlKXtjb25zdCB0PXRoaXMuX2RlbnNpdHkoKTtpZih2b2lkIDA9PT10aGlzLm1pbkluZGV4fHwhdClyZXR1cm4gMDtyZXR1cm4oMWUzKigwLGwuZW5zdXJlRGVmaW5lZCkodGhpcy5fbWFya3NCeUluZGV4LmdldCh0aGlzLm1pbkluZGV4KSkudGltZS1lKS90fW1lcmdlKGUsdCl7aWYoMD09PWUubGVuZ3RoKXJldHVybjtjb25zdCBpPWVbMF0uaW5kZXgscz1lW2UubGVuZ3RoLTFdLmluZGV4LG49aTw9KHRoaXMubWluSW5kZXg/PzApJiZzPj0odGhpcy5tYXhJbmRleD8/MCk7KHR8fG4pJiZ0aGlzLl9yZXNldEltcGwoKTtjb25zdCByPXRoaXMuX21hcmtzQnlTcGFuLG89bmV3IFNldDtpZih0aGlzLl9tYXJrc0J5SW5kZXguc2l6ZT4wKWZvcihjb25zdCB0IG9mIGUpe2NvbnN0IGU9dC5pbmRleCxpPXRoaXMuX21hcmtzQnlJbmRleC5nZXQoZSk7aSYmKGkuaW5kZXg9PT1lJiZpLm92ZXJyaWRkZW5TcGFuPT09SGModCkmJmkudGltZT09PXQudGltZXx8dGhpcy5fcmVtb3ZlVGlja21hcmsoaSkpO2NvbnN0IHM9dGhpcy5fbWFya3NCeVRpbWUuZ2V0KHQudGltZSk7cyYmcy5pbmRleCE9PWUmJnRoaXMuX3JlbW92ZVRpY2ttYXJrKHMpfWZvcihjb25zdCB0IG9mIGUpe2NvbnN0IGU9dC5pbmRleDtpZih0aGlzLl9tYXJrc0J5SW5kZXguaGFzKGUpKWNvbnRpbnVlO2NvbnN0IGk9SGModCkscz10aGlzLl9mb3JtYXRMYWJlbCh0KSxuPXsuLi50LGxhYmVsOnMsb3ZlcnJpZGRlblNwYW46aSx3aWR0aDooMCxLdC5tZWFzdXJlVGV4dCkocyx0aGlzLl9mb250LnZhbHVlKCksdGhpcy5fdGV4dFdpZHRoQ2FjaGUpLndpZHRofTt0aGlzLl9tYXJrc0J5SW5kZXguc2V0KGUsbiksdGhpcy5fbWFya3NCeVRpbWUuc2V0KHQudGltZSxuKTtsZXQgYT1yW2ldO3ZvaWQgMD09PWEmJihhPVtdLHJbaV09YSk7Y29uc3QgbD0wPT09YS5sZW5ndGh8fGFbYS5sZW5ndGgtMV0udGltZTx0LnRpbWU7YS5wdXNoKG4pLGx8fG8uYWRkKGkpfXRoaXMubWluSW5kZXg9TWF0aC5taW4odGhpcy5taW5JbmRleD8/MS8wLGkpLHRoaXMubWF4SW5kZXg9TWF0aC5tYXgodGhpcy5tYXhJbmRleD8/LTEvMCxzKTtmb3IobGV0IGU9ci5sZW5ndGg7ZS0tOylyW2VdJiYocltlXS5sZW5ndGh8fGRlbGV0ZSByW2VdLG8uaGFzKGUpJiZyW2VdLnNvcnQoKChlLHQpPT5lLnRpbWUtdC50aW1lKSkpO3RoaXMuX2NhY2hlPW51bGwsdGhpcy5fc2tpcEludHJhRGF5TWFya3NTcGFyc2VDYWNoZT1udWxsLHRoaXMuX2NoYW5nZWQuZmlyZSgpfWJ1aWxkKGUpe2lmKHRoaXMuX2xhYmVsc0ludmFsaWRhdGVkJiYodGhpcy5fbWFya3NCeUluZGV4LmZvckVhY2goKGU9PntlLmxhYmVsPXRoaXMuX2Zvcm1hdExhYmVsKGUpfSkpLHRoaXMuX2xhYmVsc0ludmFsaWRhdGVkPSExKSwKdGhpcy5fd2lkdGhzSW52YWxpZGF0ZWQmJih0aGlzLl9tYXJrc0J5SW5kZXguZm9yRWFjaCgoZT0+e2Uud2lkdGg9KDAsS3QubWVhc3VyZVRleHQpKGUubGFiZWwsdGhpcy5fZm9udC52YWx1ZSgpLHRoaXMuX3RleHRXaWR0aENhY2hlKS53aWR0aH0pKSx0aGlzLl93aWR0aHNJbnZhbGlkYXRlZD0hMSksdGhpcy5fY2FjaGU/LmJhclNwYWNpbmc9PT1lKXJldHVybiB0aGlzLl9jYWNoZS5tYXJrcztjb25zdCB0PVZjKHRoaXMuX2ZvbnQudmFsdWUoKSksaT01LzE0KnQscz01MC8xNCp0O2xldCBuPVtdO2ZvcihsZXQgdD10aGlzLl9tYXJrc0J5U3Bhbi5sZW5ndGg7dC0tOyl7aWYoIXRoaXMuX21hcmtzQnlTcGFuW3RdKWNvbnRpbnVlO2NvbnN0IHI9dGhpcy5fbWFya3NCeVNwYW5bdF07aWYoMD09PXIubGVuZ3RoKWNvbnRpbnVlO2NvbnN0IG89dDxDbi5EQVlfU1BBTiYmdGhpcy5fc3BhcnNlTWFya3MudmFsdWUoKSYmdGhpcy5fc2tpcEludHJhRGF5TWFya3NTcGFyc2UoKSxhPW47bj1bXTtsZXQgYz0wLGg9MDtjb25zdCBkPXIubGVuZ3RoPjI/RWNbdF06dm9pZCAwO2xldCB1PW51bGwscD0tMS8wLF89bnVsbCxtPTA7Zm9yKDtjPGEubGVuZ3RofHxoPHIubGVuZ3RoOyl7Y29uc3QgdD1PYyhhLGMpLG89T2MocixoKTtpZih2b2lkIDAhPT1kJiZudWxsIT09byYmbyE9PXUpe2lmKG51bGwhPT1fKXtjb25zdCB0PW51bGwhPT11JiZ1LmluZGV4Pl8uaW5kZXg/dTpfLGk9TmMobyxlKS1OYyh0LGUpO3A9TWF0aC5tYXgocCxpKX11PW99bnVsbCE9PXQ/bnVsbCE9PW8/dC5pbmRleDxvLmluZGV4PygoMCxsLmFzc2VydCkobnVsbD09PV98fCFXYyhfLHQsZSxpLHMpKSxuLnB1c2godCksXz10LGMrKyk6KG51bGwhPT1fJiZXYyhfLG8sZSxpLHMpfHxXYyhvLHQsZSxpLHMpP20rKzoobi5wdXNoKG8pLF89byksaCsrKTooKDAsbC5hc3NlcnQpKG51bGw9PT1ffHwhV2MoXyx0LGUsaSxzKSksbi5wdXNoKHQpLF89dCxjKyspOihudWxsIT09byYmKG51bGwhPT1fJiZXYyhfLG8sZSxpLHMpP20rKzoobi5wdXNoKG8pLF89bykpLGgrKyl9aWYodGhpcy5fc3BhcnNlTWFya3MudmFsdWUoKSYmYS5sZW5ndGg+MCYmbS9yLmxlbmd0aD4oRGNbdF0/Py41KSYmIW8pe249YTticmVha31pZih2b2lkIDAhPT1kJiZOdW1iZXIuaXNGaW5pdGUocCkmJnA8PWQpYnJlYWt9cmV0dXJuIHRoaXMuX2NhY2hlPXttYXJrczpuLGJhclNwYWNpbmc6ZX0sbn1tYXJrc0J5U3Bhbigpe2NvbnN0IGU9e307Zm9yKGxldCB0PXRoaXMuX21hcmtzQnlTcGFuLmxlbmd0aDt0LS07KWlmKHRoaXMuX21hcmtzQnlTcGFuW3RdKXtjb25zdCBpPVtdO2VbdF09aTtmb3IoY29uc3QgZSBvZiB0aGlzLl9tYXJrc0J5U3Bhblt0XSlpLnB1c2goW2UuaW5kZXgsZS50aW1lLGUub3ZlcnJpZGRlblNwYW5dKX1yZXR1cm4gZX1zdGF0ZShlKXtsZXQgdD1bXTtmb3IobGV0IGU9dGhpcy5fbWFya3NCeVNwYW4ubGVuZ3RoO2UtLTspdGhpcy5fbWFya3NCeVNwYW5bZV0mJih0PXQuY29uY2F0KHRoaXMuX21hcmtzQnlTcGFuW2VdKSk7aWYobnVsbCE9PWUpe2NvbnN0IGk9ZS5maXJzdEJhcigpLHM9ZS5sYXN0QmFyKCk7dD10LmZpbHRlcigoZT0+ZS5pbmRleD49aSYmZS5pbmRleDw9cykpfXJldHVybnttYXJrczp0Lm1hcCgoZT0+W2Uuc3BhbixlLnRpbWUsZS5pbmRleF0pKSx2ZXJzaW9uOjJ9fXJlc3RvcmVTdGF0ZShlKXtpZih0aGlzLl9tYXJrc0J5SW5kZXg9bmV3IE1hcCx0aGlzLl9tYXJrc0J5VGltZT1uZXcgTWFwLHRoaXMuX21hcmtzQnlTcGFuPVtdLHRoaXMubWF4SW5kZXg9dm9pZCAwLHRoaXMubWluSW5kZXg9dm9pZCAwLGUmJmUubWFya3MmJmUubWFya3MubGVuZ3RoKWlmKDI9PT1lLnZlcnNpb24pe2NvbnN0IHQ9ZS5tYXJrcy5tYXAoKGU9Pih7c3BhbjplWzBdLHRpbWU6ZVsxXSxpbmRleDplWzJdfSkpKTt0aGlzLm1lcmdlKHQpfWVsc2UgdGhpcy5tZXJnZShlLm1hcmtzKX1yZW1vdmVUYWlsKGUpe2xldCB0PS0xLzA7Zm9yKGNvbnN0IGkgb2YgdGhpcy5fbWFya3NCeUluZGV4LnZhbHVlcygpKWkudGltZT5lP3RoaXMuX3JlbW92ZVRpY2ttYXJrKGkpOnQ9TWF0aC5tYXgodCxpLmluZGV4KTt0aGlzLm1heEluZGV4PU51bWJlci5pc0Zpbml0ZSh0KT90OnZvaWQgMCx2b2lkIDA9PT10aGlzLm1heEluZGV4JiYodGhpcy5taW5JbmRleD12b2lkIDApLHRoaXMuX3NraXBJbnRyYURheU1hcmtzU3BhcnNlQ2FjaGU9bnVsbH1hZGRUYWlsKGUpe2lmKHZvaWQgMCE9PXRoaXMubWF4SW5kZXgpZm9yKGxldCB0PTA7dDxlLmxlbmd0aDt0KyspZVt0XS5pbmRleD10aGlzLm1heEluZGV4K3QrMTt0aGlzLm1lcmdlKGUpfV9yZXNldEltcGwoKXt0aGlzLl9tYXJrc0J5SW5kZXg9bmV3IE1hcCx0aGlzLl9tYXJrc0J5VGltZT1uZXcgTWFwLHRoaXMuX21hcmtzQnlTcGFuPVtdLHRoaXMubWluSW5kZXg9dm9pZCAwLHRoaXMubWF4SW5kZXg9dm9pZCAwLHRoaXMuX2NhY2hlPW51bGwsdGhpcy5fZm9ybWF0dGVyQnlTcGFuLmNsZWFyKCl9X3JlbW92ZVRpY2ttYXJrKGUpe2NvbnN0IHQ9ZS5pbmRleCxpPWUudGltZTtpZih0aGlzLl9tYXJrc0J5SW5kZXguZ2V0KHQpIT09ZSlyZXR1cm47dGhpcy5fbWFya3NCeUluZGV4LmRlbGV0ZSh0KSx0aGlzLl9tYXJrc0J5VGltZS5kZWxldGUoaSk7Y29uc3Qgcz10aGlzLl9tYXJrc0J5U3BhbltlLm92ZXJyaWRkZW5TcGFuXSxuPSgwLGcubG93ZXJib3VuZCkocyxlLCgoZSx0KT0+ZS50aW1lPHQudGltZSkpOygwLGwuYXNzZXJ0KShuPj0wJiZuPHMubGVuZ3RoJiZzW25dLnRpbWU9PT1pLCJTZWFyY2hlZCB0aWNrbWFyayBpcyBub3QgZm91bmQiKSxzLnNwbGljZShuLDEpLDA9PT1zLmxlbmd0aCYmZGVsZXRlIHRoaXMuX21hcmtzQnlTcGFuW2Uub3ZlcnJpZGRlblNwYW5dfV9kZW5zaXR5KCl7aWYodm9pZCAwPT09dGhpcy5taW5JbmRleHx8dm9pZCAwPT09dGhpcy5tYXhJbmRleClyZXR1cm4gMDtjb25zdCBlPXRoaXMubWF4SW5kZXgtdGhpcy5taW5JbmRleDtpZigwPT09ZSlyZXR1cm4gMDtyZXR1cm4gMWUzKigoMCxsLmVuc3VyZURlZmluZWQpKHRoaXMuX21hcmtzQnlJbmRleC5nZXQodGhpcy5tYXhJbmRleCkpLnRpbWUtKDAsCmwuZW5zdXJlRGVmaW5lZCkodGhpcy5fbWFya3NCeUluZGV4LmdldCh0aGlzLm1pbkluZGV4KSkudGltZSkvZX1fZm9ybWF0TGFiZWwoZSl7Y29uc3QgdD1IYyhlKTtsZXQgaT10aGlzLl9mb3JtYXR0ZXJCeVNwYW4uZ2V0KHQpO3JldHVybiB2b2lkIDA9PT1pJiYoaT16Yyh0LHRoaXMuX3RpbWVWaXNpYmxlLnZhbHVlKCkpLHRoaXMuX2Zvcm1hdHRlckJ5U3Bhbi5zZXQodCxpKSksaShlKX1fc2tpcEludHJhRGF5TWFya3NTcGFyc2UoKXtpZihudWxsPT09dGhpcy5fc2tpcEludHJhRGF5TWFya3NTcGFyc2VDYWNoZSl7Y29uc3QgZT10aGlzLl9tYXJrc0J5U3BhbltDbi5EQVlfU1BBTl0/P1tdO3RoaXMuX3NraXBJbnRyYURheU1hcmtzU3BhcnNlQ2FjaGU9ZnVuY3Rpb24oZSl7aWYoZS5sZW5ndGg8MylyZXR1cm4gMDtjb25zdCB0PVtdO2xldCBpPW51bGw7Zm9yKGNvbnN0IHMgb2YgZSl7aWYobnVsbCE9PWkpe2NvbnN0IGU9TWF0aC5hYnMocy5pbmRleC1pKTt0LnB1c2goZSl9aT1zLmluZGV4fWNvbnN0IHM9dC5yZWR1Y2UoKChlLHQpPT5lK3QpLDApL3QubGVuZ3RoO3JldHVybiB0LnJlZHVjZSgoKGUsdCk9PmUrTWF0aC5hYnModC1zKSkpL3QubGVuZ3RoL3MqMTAwfShlKT49MjV9cmV0dXJuIHRoaXMuX3NraXBJbnRyYURheU1hcmtzU3BhcnNlQ2FjaGV9fWNsYXNzIEdje2NvbnN0cnVjdG9yKCl7dGhpcy5fYmFzZUluZGV4PTB9c2V0QmFzZUluZGV4KGUpe3RoaXMuX2Jhc2VJbmRleD1lfWluZGV4VG9Ub3RhbFdlaWdodChlKXtyZXR1cm4gZS10aGlzLl9iYXNlSW5kZXh9dG90YWxXZWlnaHRUb0luZGV4KGUpe3JldHVybiB0aGlzLl9iYXNlSW5kZXgrZX1pbmRleFJhbmdlVG9XZWlnaHRzKGUsdCxpKXtjb25zdCBzPWUtdGhpcy5fYmFzZUluZGV4O3JldHVyblt7bGVmdDpzLS41LGNlbnRlcjpzLHJpZ2h0OnMrLjUsdGltZVBvaW50SW5kZXg6ZX1dfXN0YXRlKGUpe3JldHVybnt0eXBlOiJjb25zdGFudCIsc3RhdGU6e2Jhc2VJbmRleDp0aGlzLl9iYXNlSW5kZXh9fX1yZXN0b3JlU3RhdGUoZSl7dGhpcy5fYmFzZUluZGV4PWUuc3RhdGUuYmFzZUluZGV4fW5lZWRBZGp1c3RpbmdPbkRhdGFSZXN0b3JpbmcoKXtyZXR1cm4hMX19dmFyIGpjPWkoNDc1NTU5KTt2YXIgcWM9aSgyNDE5NTYpLCRjPWkoNTUyMTQ1KTtjb25zdCBZYz17cHJlc2VydmVCYXJTcGFjaW5nOiExLGxvY2tWaXNpYmxlVGltZVJhbmdlT25SZXNpemU6ITEscmlnaHRCYXJTdGF5c09uU2Nyb2xsOiEwLG1pbkJhclNwYWNpbmc6LjV9LEtjPSgwLHEuaXNGZWF0dXJlc2V0RW5hYmxlZCkoImxvd19kZW5zaXR5X2JhcnMiKSxYYz1LYz8xOjIsWmM9KDAsYy5nZXRMb2dnZXIpKCJDaGFydC5UaW1lU2NhbGUiKTt2YXIgSmM7IWZ1bmN0aW9uKGUpe2VbZS5EZWZhdWx0UmlnaHRPZmZzZXQ9MTBdPSJEZWZhdWx0UmlnaHRPZmZzZXQiLGVbZS5EZWZhdWx0QmFyU3BhY2luZz02XT0iRGVmYXVsdEJhclNwYWNpbmciLGVbZS5VbnBsb3R0YWJsZUluZGV4Q29vcmQ9LTUwMF09IlVucGxvdHRhYmxlSW5kZXhDb29yZCIsZVtlLkRlZmF1bHRSaWdodE9mZnNldFBlcmNlbnRhZ2U9NV09IkRlZmF1bHRSaWdodE9mZnNldFBlcmNlbnRhZ2UiLGVbZS5NYXhJdGVyYXRpb25zRm9yRHluYW1pY0JhclNwYWNpbmdBZGp1c3Q9MjBdPSJNYXhJdGVyYXRpb25zRm9yRHluYW1pY0JhclNwYWNpbmdBZGp1c3QifShKY3x8KEpjPXt9KSk7Y2xhc3MgUWN7Y29uc3RydWN0b3IoZSx0KXt0aGlzLl93aWR0aD0wLHRoaXMuX3dpZHRoQ2hhbmdlZD1uZXcgZi5EZWxlZ2F0ZSx0aGlzLl9yaWdodE9mZnNldD0xMCx0aGlzLl9yaWdodE9mZnNldENoYW5nZWQ9bmV3IGYuRGVsZWdhdGUsdGhpcy5fbWF4UmlnaHRPZmZzZXRDaGFuZ2VkPW5ldyBmLkRlbGVnYXRlLHRoaXMuX2RlZmF1bHRSaWdodE9mZnNldD1uZXcgaC5XYXRjaGVkVmFsdWUoMTApLHRoaXMuX2RlZmF1bHRSaWdodE9mZnNldFBlcmNlbnRhZ2U9bmV3IGguV2F0Y2hlZFZhbHVlKDUpLHRoaXMuX3VzZVBlcmNlbnRhZ2VSaWdodE9mZnNldD1uZXcgaC5XYXRjaGVkVmFsdWUoITEpLHRoaXMuX2xhc3REZWZhdWx0UmlnaHRPZmZzZXQ9dm9pZCAwLHRoaXMuX2Jhc2VJbmRleD1udWxsLHRoaXMuX2xlZnRFZGdlSW5kZXg9bnVsbCx0aGlzLl9iYXJTcGFjaW5nQ2hhbmdlZD1uZXcgZi5EZWxlZ2F0ZSx0aGlzLl9iYXJTcGFjaW5nPTYsdGhpcy5fc25hcHNob3RCYXJTcGFjaW5nPW51bGwsdGhpcy5fdmlzaWJsZUJhcnM9ZmMuaW52YWxpZCgpLHRoaXMuX3Zpc2libGVCYXJzSW52YWxpZGF0ZWQ9ITAsdGhpcy5fdmlzaWJsZUJhcnNDaGFuZ2VkPW5ldyBmLkRlbGVnYXRlLHRoaXMuX2xvZ2ljYWxSYW5nZUNoYW5nZWQ9bmV3IGYuRGVsZWdhdGUsdGhpcy5fcG9pbnRzPW5ldyBfYyx0aGlzLl9vblNjcm9sbD1uZXcgZi5EZWxlZ2F0ZSx0aGlzLl9yZXNldERlbGVnYXRlPW5ldyBmLkRlbGVnYXRlLHRoaXMuX3Njcm9sbERhdGE9bnVsbCx0aGlzLl9zY2FsZVN0YXJ0UG9pbnQ9bnVsbCx0aGlzLl9jb21tb25UcmFuc2l0aW9uU3RhcnRTdGF0ZT1udWxsLHRoaXMuX3JlcXVlc3RpbmdNb3JlRGF0YT0hMSx0aGlzLl9yZXF1ZXN0ZWRUaWNrbWFya3NDb3VudD0wLHRoaXMuX2VuZE9mRGF0YT0hMSx0aGlzLl9sb2NrQmFyc0FuZExvZ2ljYWxSYW5nZUV2ZW50cz0hMSx0aGlzLl9yZXNldEF2YWlsYWJsZT1uZXcgaC5XYXRjaGVkVmFsdWUoITEpLHRoaXMuX3BvaW50V2VpZ2h0cz1uZXcgR2MsdGhpcy5fd2VpZ2h0ZWRQb2ludHNDYWNoZT1bXSx0aGlzLl90aHJvdHRsZVJlcXVlc3RNb3JlRGF0YU9uU2Nyb2xsPSgwLEtvLmRlZmF1bHQpKHRoaXMuX3JlcXVlc3RNb3JlRGF0YSwzMDApLHRoaXMuX29wdGlvbnM9KDAseGkuZGVlcEV4dGVuZCkoe30sWWMsdCksdGhpcy5fbW9kZWw9ZSx0aGlzLl9zY2FsZXNQcm9wZXJ0aWVzPWUucHJvcGVydGllcygpLmNoaWxkcygpLnNjYWxlc1Byb3BlcnRpZXMsdGhpcy5fdGlja01hcmtzPW5ldyBVYygoMCx1LmNvbWJpbmUpKChlPT4hZS5pc0RXTSgpKSxlLm1haW5TZXJpZXMoKS5pbnRlcnZhbE9iaigpLndlYWtSZWZlcmVuY2UoKSkub3duZXJzaGlwKCksKDAsCnUuY29tYmluZSkoKChlLHQpPT4hZS5pc1RpY2tzKCkmJiFlLmlzU2Vjb25kcygpJiYhKDAsQS5pc1JhbmdlQmFzZWRTdHlsZSkodCkpLGUubWFpblNlcmllcygpLmludGVydmFsT2JqKCkud2Vha1JlZmVyZW5jZSgpLCgwLCRjLmNvbnZlcnRQcm9wZXJ0eVRvV2F0Y2hlZFZhbHVlKShlLm1haW5TZXJpZXMoKS5wcm9wZXJ0aWVzKCkuY2hpbGRzKCkuc3R5bGUpLm93bmVyc2hpcCgpKS5vd25lcnNoaXAoKSwoMCxxYy5jcmVhdGVXVkZyb21HZXR0ZXJBbmRTdWJzY3JpcHRpb24pKCgoKT0+KDAsUmkubWFrZUZvbnQpKHRoaXMuX3NjYWxlc1Byb3BlcnRpZXMuY2hpbGRzKCkuZm9udFNpemUudmFsdWUoKSxXaS5DSEFSVF9GT05UX0ZBTUlMWV9XVi52YWx1ZSgpKSksdGhpcy5fc2NhbGVzUHJvcGVydGllcy5jaGlsZHMoKS5mb250U2l6ZSkub3duZXJzaGlwKCkpLHRoaXMuX2RlZmF1bHRSaWdodE9mZnNldC5zdWJzY3JpYmUoKCgpPT57dGhpcy5fdXNlUGVyY2VudGFnZVJpZ2h0T2Zmc2V0LnNldFZhbHVlKCExKSx0aGlzLl9kZWZhdWx0UmlnaHRPZmZzZXRPcHRpb25zVXBkYXRlZCgpfSkpLHRoaXMuX2RlZmF1bHRSaWdodE9mZnNldFBlcmNlbnRhZ2Uuc3Vic2NyaWJlKChlPT57aWYoZT49MTAwfHxlPDApe2NvbnN0IHQ9TWF0aC5tYXgoMCxNYXRoLm1pbihlLDk5KSk7dGhpcy5fZGVmYXVsdFJpZ2h0T2Zmc2V0UGVyY2VudGFnZS5zZXRWYWx1ZSh0KX1lbHNlIHRoaXMuX3VzZVBlcmNlbnRhZ2VSaWdodE9mZnNldC5zZXRWYWx1ZSghMCksdGhpcy5fZGVmYXVsdFJpZ2h0T2Zmc2V0T3B0aW9uc1VwZGF0ZWQoKX0pKSx0aGlzLl91c2VQZXJjZW50YWdlUmlnaHRPZmZzZXQuc3Vic2NyaWJlKCgoKT0+e3RoaXMuX2RlZmF1bHRSaWdodE9mZnNldE9wdGlvbnNVcGRhdGVkKCl9KSksdGhpcy5fb3B0aW9ucy5wcmVzZXJ2ZUJhclNwYWNpbmcmJih0aGlzLl9iYXJTcGFjaW5nPXRoaXMuX3NjYWxlc1Byb3BlcnRpZXMuY2hpbGRzKCkuYmFyU3BhY2luZy52YWx1ZSgpfHw2KSx0aGlzLl9iYXJTcGFjaW5nQ2hhbmdlZC5zdWJzY3JpYmUodGhpcyx0aGlzLl9tYXhSaWdodE9mZnNldE9uQ2hhbmdlZCksdGhpcy5fYmFyU3BhY2luZ0NoYW5nZWQuc3Vic2NyaWJlKHRoaXMsdGhpcy5fdXBkYXRlUmVzZXRBdmFpbGFibGVWYWx1ZSksdGhpcy5fcmlnaHRPZmZzZXRDaGFuZ2VkLnN1YnNjcmliZSh0aGlzLHRoaXMuX3VwZGF0ZVJlc2V0QXZhaWxhYmxlVmFsdWUpLHRoaXMuX3dpZHRoQ2hhbmdlZC5zdWJzY3JpYmUodGhpcyx0aGlzLl9tYXhSaWdodE9mZnNldE9uQ2hhbmdlZCksdGhpcy5fdXBkYXRlUmVzZXRBdmFpbGFibGVWYWx1ZSgpfWRlc3Ryb3koKXt0aGlzLl9iYXJTcGFjaW5nQ2hhbmdlZC5kZXN0cm95KCksdGhpcy5fd2lkdGhDaGFuZ2VkLmRlc3Ryb3koKSx0aGlzLl90aWNrTWFya3MuZGVzdHJveSgpfWlzRW1wdHkoKXtyZXR1cm4gMD09PXRoaXMuX3dpZHRofHwhdGhpcy5jYW5Ob3JtYWxpemUoKX1jYW5Ob3JtYWxpemUoKXtyZXR1cm4gdGhpcy5fcG9pbnRzLnNpemUoKT4wfXVwZGF0ZShlLHQsaSxzLG4pe3RoaXMuX3Zpc2libGVCYXJzSW52YWxpZGF0ZWQ9ITAsaS5sZW5ndGg+MCYmdGhpcy5fcG9pbnRzLm1lcmdlKGUsdCxpKSx0aGlzLl90aWNrTWFya3MubWVyZ2UocyxuKSx0aGlzLmNvcnJlY3RPZmZzZXQoKX1hZGRUYWlsKGUsdCxpKXt0aGlzLl90aWNrTWFya3MucmVtb3ZlVGFpbCh0KTtjb25zdCBzPWUucGFyYW1zLG49KDAsbC5lbnN1cmVEZWZpbmVkKSh0aGlzLl90aWNrTWFya3MubWF4SW5kZXgpKyhpPzA6MSk7Zm9yKGxldCBlPTA7ZTxzLm1hcmtzLmxlbmd0aDtlKyspcy5tYXJrc1tlXS5pbmRleD1uK2U7dGhpcy5fdGlja01hcmtzLmFkZFRhaWwocy5tYXJrcyksdGhpcy5fcG9pbnRzLmFkZFRhaWwocy5jaGFuZ2VzLGkpO2NvbnN0IHI9dGhpcy5fcmlnaHRPZmZzZXQtcy5jaGFuZ2VzLmxlbmd0aDt0aGlzLl91cGRhdGVSaWdodE9mZnNldChyKX1zdGF0ZShlKXtjb25zdCB0PXttX2JhclNwYWNpbmc6dGhpcy5iYXJTcGFjaW5nKCksbV9yaWdodE9mZnNldDp0aGlzLl9kZWZhdWx0UmlnaHRPZmZzZXQudmFsdWUoKSxyaWdodE9mZnNldFBlcmNlbnRhZ2U6dGhpcy5fZGVmYXVsdFJpZ2h0T2Zmc2V0UGVyY2VudGFnZS52YWx1ZSgpLHVzZVBlcmNlbnRhZ2VSaWdodE9mZnNldDp0aGlzLl91c2VQZXJjZW50YWdlUmlnaHRPZmZzZXQudmFsdWUoKX07aWYoZSl7dC5tX3JpZ2h0T2Zmc2V0PU1hdGgubWF4KDAsdGhpcy5fcmlnaHRPZmZzZXQpO2NvbnN0IGU9dGhpcy52aXNpYmxlQmFyc1N0cmljdFJhbmdlKCksaT10aGlzLnZpc2libGVFeHRlbmRlZERhdGFSYW5nZSh0aGlzLl9tb2RlbC5tYWluU2VyaWVzKCkuZGF0YSgpLDApLHM9ZT9lLnVuaXRlKGkpOmk7dC5wb2ludHM9dGhpcy5fcG9pbnRzLnN0YXRlKHMpLHQudGlja21hcmtzPXRoaXMuX3RpY2tNYXJrcy5zdGF0ZShzKSx0LndpZHRoPXRoaXMuX3dpZHRoLHQud2VpZ2h0cz10aGlzLl9wb2ludFdlaWdodHMuc3RhdGUocyksdC5iYXNlSW5kZXg9dGhpcy5fYmFzZUluZGV4fXJldHVybiB0fXJlc3RvcmVTdGF0ZShlLHQpe2lmKHZvaWQgMD09PWUubV9iYXJTcGFjaW5nKXJldHVybiB2b2lkIFpjLmxvZ0RlYnVnKCJyZXN0b3JlU3RhdGU6IGludmFsaWQgc3RhdGUiKTtpZih2b2lkIDA9PT1lLm1fcmlnaHRPZmZzZXQpcmV0dXJuIHZvaWQgWmMubG9nRGVidWcoInJlc3RvcmVTdGF0ZTogaW52YWxpZCBzdGF0ZSIpO2Uud2VpZ2h0cyYmKHRoaXMuX3BvaW50V2VpZ2h0cz1mdW5jdGlvbihlKXtsZXQgdDtzd2l0Y2goZS50eXBlKXtjYXNlImNvbnN0YW50IjpyZXR1cm4gdD1uZXcgR2MsdC5yZXN0b3JlU3RhdGUoZSksdDtjYXNlImNvbXB1dGVkIjpyZXR1cm4gdD1uZXcgamMuQ29tcHV0ZWRUaW1lUG9pbnRXZWlnaHRzLHQucmVzdG9yZVN0YXRlKGUpLHR9dGhyb3cgbmV3IEVycm9yKGBVbmV4cGVjdGVkIHRpbWUgcG9pbnQgd2VpZ3RocyB0eXBlICR7ZS50eXBlfWApfShlLndlaWdodHMpKTtsZXQgaT1lLm1fYmFyU3BhY2luZzt0aGlzLl9zbmFwc2hvdEJhclNwYWNpbmc9dD9pOm51bGwKO2NvbnN0IHM9ZS5tX3JpZ2h0T2Zmc2V0PDAmJiF0P3RoaXMucmlnaHRPZmZzZXREZWZhdWx0VmFsdWUoKTplLm1fcmlnaHRPZmZzZXQsbj1zPDA/dGhpcy5yaWdodE9mZnNldERlZmF1bHRWYWx1ZSgpOk1hdGgucm91bmQocyk7aWYodGhpcy5fZGVmYXVsdFJpZ2h0T2Zmc2V0LnNldFZhbHVlKG4pLHZvaWQgMCE9PWUucmlnaHRPZmZzZXRQZXJjZW50YWdlJiZOdW1iZXIuaXNGaW5pdGUoZS5yaWdodE9mZnNldFBlcmNlbnRhZ2UpJiZ0aGlzLl9kZWZhdWx0UmlnaHRPZmZzZXRQZXJjZW50YWdlLnNldFZhbHVlKGUucmlnaHRPZmZzZXRQZXJjZW50YWdlKSx0aGlzLl91c2VQZXJjZW50YWdlUmlnaHRPZmZzZXQuc2V0VmFsdWUoQm9vbGVhbihlLnVzZVBlcmNlbnRhZ2VSaWdodE9mZnNldCkpLHRoaXMuX3JpZ2h0T2Zmc2V0PXMsdGhpcy5fYmFzZUluZGV4PWUuYmFzZUluZGV4Pz90aGlzLl9iYXNlSW5kZXgsdCYmKHRoaXMuX3JlcXVlc3RlZFRpY2ttYXJrc0NvdW50PTEvMCx0aGlzLl9lbmRPZkRhdGE9ITAsdGhpcy5fcG9pbnRzLnJlc3RvcmVTdGF0ZShlLnBvaW50c3x8bnVsbCksdGhpcy5fdGlja01hcmtzLnJlc3RvcmVTdGF0ZShlLnRpY2ttYXJrc3x8bnVsbCksZS53aWR0aCYmdGhpcy5fd2lkdGg+MCYmKGkqPXRoaXMuX3dpZHRoL2Uud2lkdGgpKSx0JiZ0aGlzLl9wb2ludFdlaWdodHMubmVlZEFkanVzdGluZ09uRGF0YVJlc3RvcmluZygpKXt0aGlzLl90cnlUb1VwZGF0ZUJhclNwYWNpbmcodGhpcy5fYmFyU3BhY2luZyxpKTtjb25zdCBlPXRoaXMuX3BvaW50cy5yYW5nZSgpLnZhbHVlKCk7aWYoZSl7Y29uc3QgdD1lLmZpcnN0SW5kZXg7bGV0IHM9aSxuPWkscj0wOygoKT0+e3I9dGhpcy5pbmRleFRvQ29vcmRpbmF0ZSh0KSxyPDA/KG49aSxzPWkvMTApOihzPWksbj0xMCppKX0pKCk7Zm9yKGxldCBlPTA7ZTwyMCYmTWF0aC5hYnMocik+MjtlKyspe2NvbnN0IGU9KG4rcykvMjt0aGlzLl90cnlUb1VwZGF0ZUJhclNwYWNpbmcodGhpcy5fYmFyU3BhY2luZyxlKSxyPXRoaXMuaW5kZXhUb0Nvb3JkaW5hdGUodCkscjwwP249ZTpzPWV9fX1lbHNlIHRoaXMuX3RyeVRvVXBkYXRlQmFyU3BhY2luZyh0aGlzLl9iYXJTcGFjaW5nLGkpO3RoaXMuY29ycmVjdE9mZnNldCgpLHRoaXMuX3VzZVBlcmNlbnRhZ2VSaWdodE9mZnNldC52YWx1ZSgpJiYodGhpcy5fcmlnaHRPZmZzZXQ9dGhpcy5wZXJjZW50c1RvQmFySW5kZXhMZW5ndGgodGhpcy5fZGVmYXVsdFJpZ2h0T2Zmc2V0UGVyY2VudGFnZS52YWx1ZSgpKSksdGhpcy5fcmlnaHRPZmZzZXRDaGFuZ2VkLmZpcmUodGhpcy5fcmlnaHRPZmZzZXQpfW1hcmtzKCl7aWYodGhpcy5pc0VtcHR5KCkpcmV0dXJuIG51bGw7Y29uc3QgZT10aGlzLl9iYXJTcGFjaW5nLHQ9NSooKHRoaXMuX3NjYWxlc1Byb3BlcnRpZXMuY2hpbGRzKCkuZm9udFNpemUudmFsdWUoKXx8MCkrNCksaT1NYXRoLnJvdW5kKHQvZSkscz0oMCxsLmVuc3VyZU5vdE51bGwpKHRoaXMudmlzaWJsZUJhcnNTdHJpY3RSYW5nZSgpKSxuPU1hdGgubWF4KHMuZmlyc3RCYXIoKSxzLmZpcnN0QmFyKCktaSkscj1NYXRoLm1heChzLmxhc3RCYXIoKSxzLmxhc3RCYXIoKS1pKSxvPXRoaXMuX3RpY2tNYXJrcy5idWlsZChlKSxhPVtdO2Zvcihjb25zdCBlIG9mIG8pbjw9ZS5pbmRleCYmZS5pbmRleDw9ciYmYS5wdXNoKHtjb29yZDp0aGlzLmluZGV4VG9Db29yZGluYXRlKGUuaW5kZXgpLGxhYmVsOmUubGFiZWwsc3BhbjplLnNwYW4sbWFqb3I6ITF9KTtyZXR1cm4gYX12aXNpYmxlQmFyc1N0cmljdFJhbmdlKCl7cmV0dXJuIHRoaXMuX3Zpc2libGVCYXJzSW52YWxpZGF0ZWQmJih0aGlzLl92aXNpYmxlQmFyc0ludmFsaWRhdGVkPSExLHRoaXMuX3VwZGF0ZVZpc2libGVCYXJzKCkpLHRoaXMuX3Zpc2libGVCYXJzLnN0cmljdFJhbmdlKCl9dmlzaWJsZUJhcnNTdHJpY3RSYW5nZUNoYW5nZWQoKXtyZXR1cm4gdGhpcy5fdmlzaWJsZUJhcnNDaGFuZ2VkfXZpc2libGVTdHJpY3REYXRhUmFuZ2UoZSl7Y29uc3QgdD10aGlzLnZpc2libGVCYXJzU3RyaWN0UmFuZ2UoKTtpZihudWxsPT09dClyZXR1cm4gbnVsbDtjb25zdCBpPWUuc2VhcmNoKHQuZmlyc3RCYXIoKSxaby5QbG90Um93U2VhcmNoTW9kZS5OZWFyZXN0UmlnaHQpLHM9ZS5zZWFyY2godC5sYXN0QmFyKCksWm8uUGxvdFJvd1NlYXJjaE1vZGUuTmVhcmVzdExlZnQpO3JldHVybiBudWxsPT09aXx8bnVsbD09PXM/bnVsbDpuZXcgaGMuQmFyc1JhbmdlKGkuaW5kZXgscy5pbmRleCl9dmlzaWJsZUV4dGVuZGVkRGF0YVJhbmdlKGUsdCl7Y29uc3QgaT10aGlzLnZpc2libGVCYXJzU3RyaWN0UmFuZ2UoKTtpZihudWxsPT09aSlyZXR1cm4gbnVsbDtsZXQgcz0xPT09dD9udWxsOmUuc2VhcmNoKGkuZmlyc3RCYXIoKS0xLFpvLlBsb3RSb3dTZWFyY2hNb2RlLk5lYXJlc3RMZWZ0KSxuPTA9PT10P251bGw6ZS5zZWFyY2goaS5sYXN0QmFyKCkrMSxaby5QbG90Um93U2VhcmNoTW9kZS5OZWFyZXN0UmlnaHQpO3JldHVybiBudWxsPT09cyYmKHM9ZS5zZWFyY2goaS5maXJzdEJhcigpLFpvLlBsb3RSb3dTZWFyY2hNb2RlLk5lYXJlc3RSaWdodCkpLG51bGw9PT1uJiYobj1lLnNlYXJjaChpLmxhc3RCYXIoKSxaby5QbG90Um93U2VhcmNoTW9kZS5OZWFyZXN0TGVmdCkpLG51bGw9PT1zfHxudWxsPT09bj9udWxsOm5ldyBoYy5CYXJzUmFuZ2Uocy5pbmRleCxuLmluZGV4KX1sb2dpY2FsUmFuZ2VDaGFuZ2VkKCl7cmV0dXJuIHRoaXMuX2xvZ2ljYWxSYW5nZUNoYW5nZWR9dGlja01hcmtzKCl7cmV0dXJuIHRoaXMuX3RpY2tNYXJrc31wb2ludHMoKXtyZXR1cm4gdGhpcy5fcG9pbnRzfXdpZHRoKCl7cmV0dXJuIHRoaXMuX3dpZHRofXNldFdpZHRoKGUsdCl7aWYoIU51bWJlci5pc0Zpbml0ZShlKXx8ZTw9MClyZXR1cm4gdm9pZCBaYy5sb2dXYXJuKGBzZXRXaWR0aDogaW52YWxpZCBhcmd1bWVudDogJHtlfWApO2lmKHRoaXMuX3dpZHRoPT09ZSlyZXR1cm47Y29uc3QgaT10aGlzLl91c2VQZXJjZW50YWdlUmlnaHRPZmZzZXQudmFsdWUoKSYmdGhpcy5fcmlnaHRPZmZzZXQ+MD90aGlzLmJhckluZGV4TGVuZ3RoVG9QZXJjZW50cyh0aGlzLl9yaWdodE9mZnNldCk6LTEKO2lmKHRoaXMuX3Zpc2libGVCYXJzSW52YWxpZGF0ZWQ9ITAsKHR8fHRoaXMuX29wdGlvbnMubG9ja1Zpc2libGVUaW1lUmFuZ2VPblJlc2l6ZSkmJnRoaXMuX3dpZHRoKXtjb25zdCB0PXRoaXMuX2JhclNwYWNpbmcqZS90aGlzLl93aWR0aDt0aGlzLl90cnlUb1VwZGF0ZUJhclNwYWNpbmcodGhpcy5fYmFyU3BhY2luZyx0KX1lbHNlIHRoaXMuX3dpZHRoJiZ0aGlzLnNldEJhclNwYWNpbmcodGhpcy5fYmFyU3BhY2luZyk7aWYobnVsbCE9PXRoaXMuX2xlZnRFZGdlSW5kZXgpe2lmKCgwLGwuZW5zdXJlTm90TnVsbCkodGhpcy52aXNpYmxlQmFyc1N0cmljdFJhbmdlKCkpLmZpcnN0QmFyKCk8PXRoaXMuX2xlZnRFZGdlSW5kZXgpe2NvbnN0IHQ9dGhpcy5fd2lkdGgtZTt0aGlzLl9yaWdodE9mZnNldC09TWF0aC5yb3VuZCh0L3RoaXMuX2JhclNwYWNpbmcpKzF9fXRoaXMuX3dpZHRoPWUsdGhpcy5fd2lkdGhDaGFuZ2VkLmZpcmUoZSk7Y29uc3Qgcz10aGlzLl9yaWdodE9mZnNldDtpPjA/dGhpcy5fcmlnaHRPZmZzZXQ9dGhpcy5wZXJjZW50c1RvQmFySW5kZXhMZW5ndGgoaSk6dGhpcy5jb3JyZWN0T2Zmc2V0KCksdGhpcy5fcmlnaHRPZmZzZXQhPT1zJiZ0aGlzLl9yaWdodE9mZnNldENoYW5nZWQuZmlyZSh0aGlzLl9yaWdodE9mZnNldCksdGhpcy5fcmVxdWVzdE1vcmVEYXRhKCl9c2V0TGVmdEVkZ2VGaXgoZSl7dGhpcy5fbGVmdEVkZ2VJbmRleD1lO2NvbnN0IHQ9dGhpcy52aXNpYmxlQmFyc1N0cmljdFJhbmdlKCk7aWYobnVsbD09PXQpcmV0dXJuO2NvbnN0IGk9dC5maXJzdEJhcigpLWU7aWYoaTwwKXtjb25zdCBlPXRoaXMuX3JpZ2h0T2Zmc2V0LWktMTt0aGlzLnNjcm9sbFRvT2Zmc2V0QW5pbWF0ZWQoZSw1MDApfX1wb3NpdGlvblBlcmNlbnRUb0Nvb3JkaW5hdGUoZSl7cmV0dXJuIHRoaXMud2lkdGgoKSplfWluZGV4VG9Db29yZGluYXRlKGUpe2lmKHRoaXMuaXNFbXB0eSgpKXJldHVybiAwO2NvbnN0IHQ9dGhpcy5iYXNlSW5kZXgoKSxpPXRoaXMuX3BvaW50V2VpZ2h0cy5pbmRleFRvVG90YWxXZWlnaHQodCt0aGlzLl9yaWdodE9mZnNldCsuNSktdGhpcy5fcG9pbnRXZWlnaHRzLmluZGV4VG9Ub3RhbFdlaWdodChlKTtyZXR1cm4gdGhpcy5fd2lkdGgtaSp0aGlzLl9iYXJTcGFjaW5nfWluZGV4VG9Vc2VyVGltZShlKXtyZXR1cm4gdGhpcy5fdGlja01hcmtzLmluZGV4VG9UaW1lKGUpfXRpbWVQb2ludFRvSW5kZXgoZSx0KXtzd2l0Y2godCl7Y2FzZSAwOnJldHVybiB0aGlzLl9wb2ludHMuaW5kZXhPZihlLCExKTtjYXNlIDE6cmV0dXJuIHRoaXMuX3BvaW50cy5jbG9zZXN0SW5kZXhMZWZ0KGUpO2RlZmF1bHQ6cmV0dXJuIHRoaXMuX3BvaW50cy5pbmRleE9mKGUsITApfX1pbmRleFRvVGltZVBvaW50KGUpe3JldHVybiB0aGlzLl9wb2ludHMudmFsdWVBdChlKX10aW1lVG9Db29yZGluYXRlKGUpe2NvbnN0IHQ9dGhpcy5fcG9pbnRzLmNsb3Nlc3RJbmRleExlZnQoZSk7aWYobnVsbD09PXQpcmV0dXJuIG51bGw7Y29uc3QgaT0oMCxsLmVuc3VyZU5vdE51bGwpKHRoaXMuX3BvaW50cy52YWx1ZUF0KHQpKSxzPXRoaXMuaW5kZXhUb0Nvb3JkaW5hdGUodCk7aWYoczw9MHx8cz49dGhpcy5fd2lkdGgpcmV0dXJuIG51bGw7Y29uc3Qgbj10aGlzLmJhclNwYWNpbmcoKSxyPXRoaXMuYmFzZUluZGV4KCk7bGV0IG87bz0wPT09cj90aGlzLl9tb2RlbC5tYWluU2VyaWVzKCkuaW50ZXJ2YWxPYmooKS52YWx1ZSgpLmluTWlsbGlzZWNvbmRzKCkvMWUzOigwLGwuZW5zdXJlTm90TnVsbCkodGhpcy5fcG9pbnRzLnZhbHVlQXQocikpLSgwLGwuZW5zdXJlTm90TnVsbCkodGhpcy5fcG9pbnRzLnZhbHVlQXQoci0xKSk7Y29uc3QgYT1zKyhlLWkpL28qbisxO3JldHVybiBhPD0wfHxhPj10aGlzLl93aWR0aD9udWxsOmF9YmFyQm9yZGVycyhlKXtjb25zdCB0PXt0aW1lUG9pbnRJbmRleDplLGxlZnQ6TmFOLGNlbnRlcjpOYU4scmlnaHQ6TmFOfTtyZXR1cm4gdGhpcy5maWxsQmFyQm9yZGVycyhbdF0pLHR9ZmlsbEJhckJvcmRlcnMoZSx0LGkpe2lmKDA9PT1lLmxlbmd0aClyZXR1cm47bGV0IHM9dD8uc3RhcnRJdGVtSW5kZXg/PzA7Y29uc3Qgbj0odD8uZW5kSXRlbUluZGV4Pz9lLmxlbmd0aCktMTtpZighMD09PWkmJihzPSgwLGcudXBwZXJib3VuZCkoZSxtYy5VTlBMT1RUQUJMRV9USU1FX1BPSU5UX0lOREVYLCgoZSx0KT0+ZTx0LnRpbWVQb2ludEluZGV4KSxzLG4rMSkpLHM+bilyZXR1cm47Y29uc3Qgcj10aGlzLl9wb2ludFdlaWdodHMuaW5kZXhUb1RvdGFsV2VpZ2h0KHRoaXMuYmFzZUluZGV4KCkrdGhpcy5fcmlnaHRPZmZzZXQrLjUpLG89dGhpcy5fcG9pbnRXZWlnaHRzLmluZGV4UmFuZ2VUb1dlaWdodHMoZVtzXS50aW1lUG9pbnRJbmRleCxlW25dLnRpbWVQb2ludEluZGV4LHRoaXMuX3dlaWdodGVkUG9pbnRzQ2FjaGUpO2xldCBhPTAsYz1vW2FdO2NvbnN0IGg9YyxkPW9bby5sZW5ndGgtMV07bGV0IHU9TmFOLHA9TmFOLF89TmFOLG09ITA7Zm9yKGxldCB0PXM7dDw9bjt0Kz0xKXtjb25zdCBpPWVbdF07aWYoaS50aW1lUG9pbnRJbmRleDxoLnRpbWVQb2ludEluZGV4KXU9aC5sZWZ0LShoLnRpbWVQb2ludEluZGV4LWkudGltZVBvaW50SW5kZXgpLHA9dSsuNSxfPXUrMTtlbHNlIGlmKGkudGltZVBvaW50SW5kZXg+ZC50aW1lUG9pbnRJbmRleClfPWQucmlnaHQrKGkudGltZVBvaW50SW5kZXgtZC50aW1lUG9pbnRJbmRleCkscD1fLS41LHU9Xy0xO2Vsc2UgZm9yKG0mJih1PWMubGVmdCxwPWMuY2VudGVyLF89Yy5yaWdodCxtPSExKTtjLnRpbWVQb2ludEluZGV4PGkudGltZVBvaW50SW5kZXg7KWErPTEsKDAsbC5hc3NlcnQpKGE8by5sZW5ndGgsIkJhciBib3JkZXJzIGNvb3JkaW5hdGVzIGFyZSBub3QgY29ycmVjdCIpLGM9b1thXSx1PWMubGVmdCxwPWMuY2VudGVyLF89Yy5yaWdodDtpLmxlZnQ9dGhpcy5fd2lkdGgtKHItdSkqdGhpcy5fYmFyU3BhY2luZyxpLmNlbnRlcj10aGlzLl93aWR0aC0oci1wKSp0aGlzLl9iYXJTcGFjaW5nLGkucmlnaHQ9dGhpcy5fd2lkdGgtKHItXykqdGhpcy5fYmFyU3BhY2luZ319dGltZWRWYWx1ZXNUb0Nvb3JkaW5hdGVzKGUsdCxpKXsKY29uc3Qgcz10aGlzLl9wb2ludFdlaWdodHMuaW5kZXhUb1RvdGFsV2VpZ2h0KHRoaXMuYmFzZUluZGV4KCkrdGhpcy5fcmlnaHRPZmZzZXQrLjUpLG49dD8uc3RhcnRJdGVtSW5kZXg/PzA7bGV0IHI9bjtjb25zdCBvPXQ/LmVuZEl0ZW1JbmRleD8/ZS5sZW5ndGg7ITA9PT1pJiYocj0oMCxnLnVwcGVyYm91bmQpKGUsbWMuVU5QTE9UVEFCTEVfVElNRV9QT0lOVF9JTkRFWCwoKGUsdCk9PmU8dC54KSxuLG8pKTtmb3IobGV0IHQ9cjt0PG87Kyt0KXtjb25zdCBpPWVbdF0sbj1zLXRoaXMuX3BvaW50V2VpZ2h0cy5pbmRleFRvVG90YWxXZWlnaHQoaS54KTtpLng9dGhpcy5fd2lkdGgtbip0aGlzLl9iYXJTcGFjaW5nfWZvcihsZXQgdD1uO3Q8cjsrK3QpZVt0XS54PS01MDB9cmlnaHRPZmZzZXRGb3JUaW1lUG9pbnQoZSl7Y29uc3QgdD10aGlzLnRpbWVUb0Nvb3JkaW5hdGUoZSk7aWYobnVsbD09PXQpcmV0dXJuIG51bGw7Y29uc3QgaT0odC10aGlzLl9iYXNlSW5kZXhCYXJDZW50ZXJDb29yZGluYXRlKCkpL3RoaXMuX2JhclNwYWNpbmc7cmV0dXJuIHRoaXMuX3BvaW50V2VpZ2h0cy50b3RhbFdlaWdodFRvSW5kZXgoaSl9c2Nyb2xsVG9SZWFsdGltZShlLHQpe2xldCBpPXRoaXMudGFyZ2V0RGVmYXVsdFJpZ2h0T2Zmc2V0KCk7aTwwJiYoaT10aGlzLnJpZ2h0T2Zmc2V0RGVmYXVsdFZhbHVlKCkpO2NvbnN0IHM9KCk9Pnt2b2lkIDAhPT10JiZ0KCksdGhpcy5fcmVxdWVzdE1vcmVEYXRhKCl9O2lmKGUpe2NvbnN0IGU9dGhpcy5sb2dpY2FsUmFuZ2UoKSx0PXRoaXMuX21vZGVsLm1haW5TZXJpZXMoKS5iYXJzKCkubGFzdEluZGV4KCk7aWYobnVsbD09PWV8fG51bGw9PT10KXJldHVybjtjb25zdCBpPXRoaXMuaW5kZXhUb0Nvb3JkaW5hdGUoZS5yaWdodCgpKy41KSxuPXRoaXMuaW5kZXhUb0Nvb3JkaW5hdGUodCt0aGlzLl9kZWZhdWx0UmlnaHRPZmZzZXQudmFsdWUoKSsuNSk7cmV0dXJuIHRoaXMuX21vZGVsLnN0b3BUaW1lU2NhbGVBbmltYXRpb24oKSx2b2lkIHRoaXMuX21vZGVsLnNldFRpbWVTY2FsZUFuaW1hdGlvbihuZXcgRm4oe2Zyb206MCx0bzppLW4sZHVyYXRpb246MWUzLGVhc2luZzpFbi5lYXNpbmdGdW5jLmVhc2VJbk91dFF1aW50LG9uRmluaXNoOnN9KSl9dGhpcy5fdmlzaWJsZUJhcnNJbnZhbGlkYXRlZD0hMCx0aGlzLl91cGRhdGVSaWdodE9mZnNldChpKSx0aGlzLl9vblNjcm9sbC5maXJlKCkscygpfXNjcm9sbFRvRmlyc3RCYXIoZT0oKT0+e30pe3RoaXMuX21vZGVsLmdvdG9UaW1lKG5ldyBEYXRlKCIxODAwLTAxLTAxIikuZ2V0VGltZSgpKS50aGVuKGUpLHRoaXMuX29uU2Nyb2xsLmZpcmUoKX1zY3JvbGxUb09mZnNldEFuaW1hdGVkKGUsdCl7aWYoIWlzRmluaXRlKGUpKXRocm93IG5ldyBSYW5nZUVycm9yKCJvZmZzZXQgaXMgcmVxdWlyZWQgYW5kIG11c3QgYmUgZmluaXRlIG51bWJlciIpO2NvbnN0IGk9dm9pZCAwPT09dD80MDA6dDtpZighaXNGaW5pdGUoaSl8fGk8PTApdGhyb3cgbmV3IFJhbmdlRXJyb3IoImFuaW1hdGlvbkR1cmF0aW9uIChvcHRpb25hbCkgbXVzdCBiZSBmaW5pdGUgcG9zaXRpdmUgbnVtYmVyIik7Y29uc3Qgcz10aGlzLl9yaWdodE9mZnNldCxuPURhdGUubm93KCkscj0oKT0+e3RoaXMuX3Zpc2libGVCYXJzSW52YWxpZGF0ZWQ9ITA7Y29uc3QgdD0oRGF0ZS5ub3coKS1uKS9pO2lmKHQ+PTEpcmV0dXJuIHRoaXMuX3VwZGF0ZVJpZ2h0T2Zmc2V0KGUpLHRoaXMuX3Zpc2libGVCYXJzSW52YWxpZGF0ZWQ9ITAsdGhpcy5fbW9kZWwucmVjYWxjdWxhdGVBbGxQYW5lcygoMCx0bi52aWV3cG9ydENoYW5nZUV2ZW50KSgpKSx2b2lkIHRoaXMuX21vZGVsLmxpZ2h0VXBkYXRlKCk7Y29uc3Qgbz1zKyhlLXMpKnQ7dGhpcy5fdXBkYXRlUmlnaHRPZmZzZXQobyksdGhpcy5fbW9kZWwucmVjYWxjdWxhdGVBbGxQYW5lcygoMCx0bi52aWV3cG9ydENoYW5nZUV2ZW50KSgpKSxzZXRUaW1lb3V0KHIsMjApfTtyKCl9ZGVmYXVsdFJpZ2h0T2Zmc2V0KCl7cmV0dXJuIHRoaXMuX2RlZmF1bHRSaWdodE9mZnNldH1yaWdodE9mZnNldERlZmF1bHRWYWx1ZSgpe3JldHVybiAxMH1kZWZhdWx0UmlnaHRPZmZzZXRQZXJjZW50YWdlKCl7cmV0dXJuIHRoaXMuX2RlZmF1bHRSaWdodE9mZnNldFBlcmNlbnRhZ2V9dXNlUGVyY2VudGFnZVJpZ2h0T2Zmc2V0KCl7cmV0dXJuIHRoaXMuX3VzZVBlcmNlbnRhZ2VSaWdodE9mZnNldH1iYXJTcGFjaW5nKCl7cmV0dXJuIHRoaXMuX2JhclNwYWNpbmd9YmFyU3BhY2luZ1NjYWxlUmF0aW8oKXtyZXR1cm4gbnVsbD09PXRoaXMuX3NuYXBzaG90QmFyU3BhY2luZz8xOnRoaXMuX2JhclNwYWNpbmcvdGhpcy5fc25hcHNob3RCYXJTcGFjaW5nfXNldEJhclNwYWNpbmcoZSl7aWYoIU51bWJlci5pc0Zpbml0ZShlKSlyZXR1cm4gdm9pZCBaYy5sb2dXYXJuKGBzZXRCYXJTcGFjaW5nOiBpbnZhbGlkIGFyZ3VtZW50OiAke2V9YCk7ZT10aGlzLmdldFZhbGlkQmFyU3BhY2luZyhlKTtjb25zdCB0PXRoaXMuX2JhclNwYWNpbmc+ZTt0aGlzLl90cnlUb1VwZGF0ZUJhclNwYWNpbmcodGhpcy5fYmFyU3BhY2luZyxlKSYmKHRoaXMuY29ycmVjdE9mZnNldCgpLHRoaXMuX29wdGlvbnMucHJlc2VydmVCYXJTcGFjaW5nJiYoKDAsR3IuYWxsb3dTYXZpbmdEZWZhdWx0cykoITApLHRoaXMuX3NjYWxlc1Byb3BlcnRpZXMuY2hpbGRzKCkuYmFyU3BhY2luZy5zZXRWYWx1ZSh0aGlzLl9iYXJTcGFjaW5nKSwoMCxHci5hbGxvd1NhdmluZ0RlZmF1bHRzKSghMSkpLHRoaXMuX21vZGVsLnJlY2FsY3VsYXRlQWxsUGFuZXMoKDAsdG4udmlld3BvcnRDaGFuZ2VFdmVudCkoKSksdGhpcy5fbW9kZWwubGlnaHRVcGRhdGUoKSx0JiZ0aGlzLnJlcXVlc3RIaXN0b3J5UG9pbnRzSWZOZWVkZWQoKSl9YmFyU3BhY2luZ0NoYW5nZWQoKXtyZXR1cm4gdGhpcy5fYmFyU3BhY2luZ0NoYW5nZWR9Z2V0VmFsaWRCYXJTcGFjaW5nKGUpe3JldHVybiBudWxsPT1lJiYoZT10aGlzLmJhclNwYWNpbmcoKSksZTx0aGlzLm1pbkJhclNwYWNpbmcoKT90aGlzLm1pbkJhclNwYWNpbmcoKTplPnRoaXMubWF4QmFyU3BhY2luZygpP3RoaXMubWF4QmFyU3BhY2luZygpOmV9CmlzVmFsaWRCYXJTcGFjaW5nKGUpe3JldHVybiBlPj10aGlzLm1pbkJhclNwYWNpbmcoKSYmZTw9dGhpcy5tYXhCYXJTcGFjaW5nKCl9cHJlc2VydmVCYXJTcGFjaW5nKCl7cmV0dXJuIHRoaXMuX29wdGlvbnMucHJlc2VydmVCYXJTcGFjaW5nfW5vcm1hbGl6ZUJhckluZGV4KGUpe2xldCB0PTAsaT0wO2NvbnN0IHM9dGhpcy5iYXNlSW5kZXgoKSxuPSgwLGwuZW5zdXJlTm90TnVsbCkodGhpcy5fcG9pbnRzLnJhbmdlKCkudmFsdWUoKSkuZmlyc3RJbmRleDtyZXR1cm4gZTxuPyh0PSgwLGwuZW5zdXJlTm90TnVsbCkodGhpcy5fcG9pbnRzLnZhbHVlQXQobikpLGk9ZS1uKTplPnM/KHQ9KDAsbC5lbnN1cmVOb3ROdWxsKSh0aGlzLl9wb2ludHMudmFsdWVBdChzKSksaT1lLXMpOih0PSgwLGwuZW5zdXJlTm90TnVsbCkodGhpcy5fcG9pbnRzLnZhbHVlQXQoZSkpLGk9MCkse3RpbWVfdDp0LG9mZnNldDppfX1kZW5vcm1hbGl6ZVRpbWVQb2ludChlKXtjb25zdCB0PXRoaXMuX3BvaW50cy5pbmRleE9mKGUudGltZV90LCExKTtpZihudWxsIT09dClyZXR1cm4gdCtlLm9mZnNldH1yaWdodE9mZnNldCgpe3JldHVybiB0aGlzLl9yaWdodE9mZnNldH1yaWdodE9mZnNldENoYW5nZWQoKXtyZXR1cm4gdGhpcy5fcmlnaHRPZmZzZXRDaGFuZ2VkfW1pblJpZ2h0T2Zmc2V0KCl7Y29uc3QgZT10aGlzLnBvaW50cygpLnJhbmdlKCkudmFsdWUoKT8uZmlyc3RJbmRleCx0PXRoaXMuX2Jhc2VJbmRleDtpZih2b2lkIDA9PT1lfHxudWxsPT09dClyZXR1cm4gbnVsbDtpZihudWxsIT09dGhpcy5fbGVmdEVkZ2VJbmRleCl7Y29uc3QgZT10aGlzLndpZHRoKCkvdGhpcy5fYmFyU3BhY2luZztyZXR1cm4gdGhpcy5fbGVmdEVkZ2VJbmRleC10K2UtMX1yZXR1cm4gZS10LTErWGN9bWF4UmlnaHRPZmZzZXQoKXtyZXR1cm4gdGhpcy53aWR0aCgpL3RoaXMuX2JhclNwYWNpbmctWGN9bWF4UmlnaHRPZmZzZXRDaGFuZ2VkKCl7cmV0dXJuIHRoaXMuX21heFJpZ2h0T2Zmc2V0Q2hhbmdlZH1vblJlc2V0KCl7cmV0dXJuIHRoaXMuX3Jlc2V0RGVsZWdhdGV9YmFzZUluZGV4KCl7cmV0dXJuIHRoaXMuX2Jhc2VJbmRleHx8MH16b29tKGUsdCxpKXtpZighTnVtYmVyLmlzRmluaXRlKGUpfHwhTnVtYmVyLmlzRmluaXRlKHQpKXJldHVybiB2b2lkIFpjLmxvZ1dhcm4oYHpvb206IGludmFsaWQgYXJndW1lbnRzOiAke2V9LCAke3R9LCAke2l9YCk7Y29uc3Qgcz10aGlzLnJpZ2h0T2Zmc2V0KCksbj12b2lkIDAhPT1pPyFpOnRoaXMuX29wdGlvbnMucmlnaHRCYXJTdGF5c09uU2Nyb2xsLHI9biYmdGhpcy51c2VQZXJjZW50YWdlUmlnaHRPZmZzZXQoKS52YWx1ZSgpJiZzPj0wLG89cj90aGlzLmJhckluZGV4TGVuZ3RoVG9QZXJjZW50cyhzKTp2b2lkIDAsYT10aGlzLmNvb3JkaW5hdGVUb0luZGV4KGUpLGw9dGhpcy5iYXJTcGFjaW5nKCksYz1sK3QqKGwvMTApO3RoaXMuc2V0QmFyU3BhY2luZyhjKSxufHwodGhpcy5zdGFydFNjcm9sbCh0aGlzLmluZGV4VG9Db29yZGluYXRlKGEpKSx0aGlzLnNjcm9sbFRvKGUpLHRoaXMuZW5kU2Nyb2xsKCkpLHImJnZvaWQgMCE9PW8mJnRoaXMuc2V0UmlnaHRPZmZzZXQodGhpcy5wZXJjZW50c1RvQmFySW5kZXhMZW5ndGgobykpLHRoaXMuX3JlcXVlc3RNb3JlRGF0YSgpfXpvb21Ub0JhcnNSYW5nZShlLHQpe2lmKG51bGwhPT10aGlzLl9sZWZ0RWRnZUluZGV4JiYoZT1NYXRoLm1heChlLHRoaXMuX2xlZnRFZGdlSW5kZXgpKSx0PGUpcmV0dXJuO2NvbnN0IGk9dGhpcy5iYXNlSW5kZXgoKSxzPXRoaXMuX3JpZ2h0T2Zmc2V0O3RoaXMuX3JpZ2h0T2Zmc2V0PXQtaTtjb25zdCBuPWUtLjUscj10Ky41LG89TWF0aC5tYXgodGhpcy5fcG9pbnRXZWlnaHRzLmluZGV4VG9Ub3RhbFdlaWdodChyKS10aGlzLl9wb2ludFdlaWdodHMuaW5kZXhUb1RvdGFsV2VpZ2h0KG4pLFhjKTt0aGlzLnNldEJhclNwYWNpbmcodGhpcy53aWR0aCgpL28pLHRoaXMuX3Zpc2libGVCYXJzSW52YWxpZGF0ZWQ9ITAsdGhpcy5jb3JyZWN0T2Zmc2V0KCksdGhpcy5fcmlnaHRPZmZzZXQhPT1zJiZ0aGlzLl9yaWdodE9mZnNldENoYW5nZWQuZmlyZSh0aGlzLl9yaWdodE9mZnNldCksdGhpcy5fcmVxdWVzdE1vcmVEYXRhKCl9c2Nyb2xsVG9CYXIoZSl7bnVsbCE9PXRoaXMuX2xlZnRFZGdlSW5kZXgmJihlPU1hdGgubWF4KGUsdGhpcy5fbGVmdEVkZ2VJbmRleCkpO2NvbnN0IHQ9KDAsbC5lbnN1cmVOb3ROdWxsKSh0aGlzLmxvZ2ljYWxSYW5nZSgpKS5sZW5ndGgoKStlLTE7dGhpcy5fcmlnaHRPZmZzZXQ9dC10aGlzLmJhc2VJbmRleCgpLHRoaXMuX3Zpc2libGVCYXJzSW52YWxpZGF0ZWQ9ITAsdGhpcy5jb3JyZWN0T2Zmc2V0KCksdGhpcy5fcmlnaHRPZmZzZXRDaGFuZ2VkLmZpcmUodGhpcy5fcmlnaHRPZmZzZXQpLHRoaXMuX3JlcXVlc3RNb3JlRGF0YSgpfWNvb3JkaW5hdGVUb0luZGV4KGUpe3JldHVybiBNYXRoLnJvdW5kKHRoaXMuY29vcmRpbmF0ZVRvRmxvYXRJbmRleChlKSl9Y29vcmRpbmF0ZVRvRmxvYXRJbmRleChlKXtjb25zdCB0PShlLXRoaXMuX2Jhc2VJbmRleEJhckNlbnRlckNvb3JkaW5hdGUoKSkvdGhpcy5fYmFyU3BhY2luZyxpPXRoaXMuX3BvaW50V2VpZ2h0cy50b3RhbFdlaWdodFRvSW5kZXgodCk7cmV0dXJuIE1hdGgucm91bmQoMWU2KmkpLzFlNn1jb29yZGluYXRlVG9WaXNpYmxlSW5kZXgoZSl7bGV0IHQ9dGhpcy5jb29yZGluYXRlVG9JbmRleChlKTtjb25zdCBpPXRoaXMudmlzaWJsZUJhcnNTdHJpY3RSYW5nZSgpO3JldHVybiBudWxsPT09aXx8aS5jb250YWlucyh0KXx8KHQ9TWF0aC5taW4oTWF0aC5tYXgoaS5maXJzdEJhcigpLHQpLGkubGFzdEJhcigpKSksdH1jYW5ab29tSW4oKXtyZXR1cm4gdGhpcy5iYXJTcGFjaW5nKCk8dGhpcy5tYXhCYXJTcGFjaW5nKCl9Y2FuWm9vbU91dCgpe3JldHVybiB0aGlzLmJhclNwYWNpbmcoKT50aGlzLl9vcHRpb25zLm1pbkJhclNwYWNpbmd9bWluQmFyU3BhY2luZygpe3JldHVybiB0aGlzLl9vcHRpb25zLm1pbkJhclNwYWNpbmd9bWF4QmFyU3BhY2luZygpe2NvbnN0IGU9dGhpcy53aWR0aCgpO3JldHVybiBLYz9lOmUvWGN9bWluVmlzaWJsZUJhckNvdW50KCl7CnJldHVybiBYY31yZXNldFJpZ2h0T2Zmc2V0KCl7dGhpcy5zZXRSaWdodE9mZnNldCh0aGlzLnRhcmdldERlZmF1bHRSaWdodE9mZnNldCgpKX1yZXNldCgpe3RoaXMuX3Zpc2libGVCYXJzSW52YWxpZGF0ZWQ9ITAsdGhpcy5fcG9pbnRzLmNsZWFyKCksdGhpcy5fc2Nyb2xsRGF0YT1udWxsLHRoaXMuX3NjYWxlU3RhcnRQb2ludD1udWxsLHRoaXMuX2NsZWFyQ29tbW9uVHJhbnNpdGlvbnNTdGFydFN0YXRlKCksdGhpcy5fdGlja01hcmtzLnJlc2V0KCksdGhpcy5fbGVmdEVkZ2VJbmRleD1udWxsLHRoaXMuX3Jlc2V0RGVsZWdhdGUuZmlyZSgpLHRoaXMuZGlzY29ubmVjdCgpfXJlc2V0QXZhaWxhYmxlKCl7cmV0dXJuIHRoaXMuX3Jlc2V0QXZhaWxhYmxlLnJlYWRvbmx5KCl9ZGlzY29ubmVjdCgpe3RoaXMuX3JlcXVlc3RpbmdNb3JlRGF0YT0hMSx0aGlzLl9yZXF1ZXN0ZWRUaWNrbWFya3NDb3VudD0wLHRoaXMuX2VuZE9mRGF0YT0hMX1zZXRCYXNlSW5kZXgoZSl7aWYoIU51bWJlci5pc0Zpbml0ZShlKSlyZXR1cm4gdm9pZCBaYy5sb2dEZWJ1Zyhgc2V0QmFzZUluZGV4OiBpbnZhbGlkIGFyZ3VtZW50OiAke2V9YCk7Y29uc3QgdD10aGlzLl9iYXNlSW5kZXghPT1lO3RoaXMuX3Zpc2libGVCYXJzSW52YWxpZGF0ZWQ9ITAsdGhpcy5fYmFzZUluZGV4PWUsdGhpcy5fcG9pbnRXZWlnaHRzLnNldEJhc2VJbmRleCh0aGlzLl9iYXNlSW5kZXgpLHRoaXMuY29ycmVjdE9mZnNldCgpLHQmJih0aGlzLl9tb2RlbC5yZWNhbGN1bGF0ZUFsbFBhbmVzKCgwLHRuLnZpZXdwb3J0Q2hhbmdlRXZlbnQpKCkpLHRoaXMuX21vZGVsLmxpZ2h0VXBkYXRlKCkpfXJlc2V0QmFzZUluZGV4KCl7dGhpcy5fdmlzaWJsZUJhcnNJbnZhbGlkYXRlZD0hMCx0aGlzLl9iYXNlSW5kZXg9bnVsbH1zZXRSaWdodE9mZnNldChlKXtOdW1iZXIuaXNGaW5pdGUoZSk/KHRoaXMuX3Zpc2libGVCYXJzSW52YWxpZGF0ZWQ9ITAsdGhpcy5fdXBkYXRlUmlnaHRPZmZzZXQoZSkpOlpjLmxvZ1dhcm4oYHNldFJpZ2h0T2Zmc2V0OiBpbnZhbGlkIGFyZ3VtZW50OiAke2V9YCl9Y29ycmVjdEJhclNwYWNpbmcoKXt0aGlzLmlzRW1wdHkoKXx8dGhpcy5wb2ludHMoKS5zaXplKCk8dGhpcy53aWR0aCgpL3RoaXMuYmFyU3BhY2luZygpJiYodGhpcy5zZXRSaWdodE9mZnNldCh0aGlzLnRhcmdldERlZmF1bHRSaWdodE9mZnNldCgpKSx0aGlzLnNldEJhclNwYWNpbmcodGhpcy53aWR0aCgpLyh0aGlzLnBvaW50cygpLnNpemUoKSt0aGlzLnJpZ2h0T2Zmc2V0KCkpKSl9c2V0VGltZVBvaW50V2VpZ2h0cyhlKXt0aGlzLl93ZWlnaHRlZFBvaW50c0NhY2hlPVtdLHRoaXMuX3BvaW50V2VpZ2h0cz1lPz9uZXcgR2MsdGhpcy5fcG9pbnRXZWlnaHRzLnNldEJhc2VJbmRleCh0aGlzLmJhc2VJbmRleCgpKSx0aGlzLl92aXNpYmxlQmFyc0ludmFsaWRhdGVkPSEwfWNvcnJlY3RPZmZzZXQoKXtjb25zdCBlPXRoaXMubWF4UmlnaHRPZmZzZXQoKTt0aGlzLl9yaWdodE9mZnNldD5lJiYodGhpcy5fcmlnaHRPZmZzZXQ9ZSx0aGlzLl92aXNpYmxlQmFyc0ludmFsaWRhdGVkPSEwKTtjb25zdCB0PXRoaXMubWluUmlnaHRPZmZzZXQoKTtudWxsIT09dCYmdGhpcy5fcmlnaHRPZmZzZXQ8dCYmKHRoaXMuX3JpZ2h0T2Zmc2V0PXQsdGhpcy5fdmlzaWJsZUJhcnNJbnZhbGlkYXRlZD0hMCl9bG9naWNhbFJhbmdlKCl7cmV0dXJuIHRoaXMuX3Zpc2libGVCYXJzSW52YWxpZGF0ZWQmJih0aGlzLl92aXNpYmxlQmFyc0ludmFsaWRhdGVkPSExLHRoaXMuX3VwZGF0ZVZpc2libGVCYXJzKCkpLHRoaXMuX3Zpc2libGVCYXJzLmxvZ2ljYWxSYW5nZSgpfXJlc3RvcmVEZWZhdWx0KCl7dGhpcy5fdmlzaWJsZUJhcnNJbnZhbGlkYXRlZD0hMCx0aGlzLl9sb2NrQmFyc0FuZExvZ2ljYWxSYW5nZUV2ZW50cz0hMDtjb25zdCBlPXRoaXMuX3Zpc2libGVCYXJzO3RoaXMuc2V0QmFyU3BhY2luZyg2KSx0aGlzLnJlc2V0UmlnaHRPZmZzZXQoKSx0aGlzLl9sb2NrQmFyc0FuZExvZ2ljYWxSYW5nZUV2ZW50cz0hMSx0aGlzLl9maXJlVmlzaWJsZUJhcnNDaGFuZ2VkSWZSZXF1aXJlZChlLHRoaXMuX3Zpc2libGVCYXJzKSx0aGlzLl9yZXF1ZXN0TW9yZURhdGEoKX1zdGFydFNjYWxlKGUpe3RoaXMuX3Njcm9sbERhdGEmJnRoaXMuZW5kU2Nyb2xsKCksbnVsbD09PXRoaXMuX3NjYWxlU3RhcnRQb2ludCYmbnVsbD09PXRoaXMuX2NvbW1vblRyYW5zaXRpb25TdGFydFN0YXRlJiYodGhpcy5pc0VtcHR5KCl8fCh0aGlzLl9zY2FsZVN0YXJ0UG9pbnQ9ZSx0aGlzLl9zYXZlQ29tbW9uVHJhbnNpdGlvbnNTdGFydFN0YXRlKCkpKX1zY2FsZVRvKGUpe2lmKG51bGw9PT10aGlzLl9jb21tb25UcmFuc2l0aW9uU3RhcnRTdGF0ZSlyZXR1cm47Y29uc3QgdD0oMCxiaS5jbGFtcCkodGhpcy5fd2lkdGgtZSwwLHRoaXMuX3dpZHRoKSxpPSgwLGJpLmNsYW1wKSh0aGlzLl93aWR0aC0oMCxsLmVuc3VyZU5vdE51bGwpKHRoaXMuX3NjYWxlU3RhcnRQb2ludCksMCx0aGlzLl93aWR0aCk7aWYoMD09PXR8fDA9PT1pKXJldHVybjtjb25zdCBzPXRoaXMuYmFySW5kZXhMZW5ndGhUb1BlcmNlbnRzKHRoaXMucmlnaHRPZmZzZXQoKSk7dGhpcy5zZXRCYXJTcGFjaW5nKHRoaXMuX2NvbW1vblRyYW5zaXRpb25TdGFydFN0YXRlLmJhclNwYWNpbmcqdC9pKSx0aGlzLnVzZVBlcmNlbnRhZ2VSaWdodE9mZnNldCgpLnZhbHVlKCkmJnRoaXMucmlnaHRPZmZzZXQoKT49MCYmdGhpcy5zZXRSaWdodE9mZnNldCh0aGlzLnBlcmNlbnRzVG9CYXJJbmRleExlbmd0aChzKSl9ZW5kU2NhbGUoKXtudWxsIT09dGhpcy5fc2NhbGVTdGFydFBvaW50JiYodGhpcy5fc2NhbGVTdGFydFBvaW50PW51bGwsdGhpcy5fY2xlYXJDb21tb25UcmFuc2l0aW9uc1N0YXJ0U3RhdGUoKSx0aGlzLl9yZXF1ZXN0TW9yZURhdGEoKSl9c3RhcnRTY3JvbGwoZSl7bnVsbD09PXRoaXMuX3Njcm9sbERhdGEmJm51bGw9PT10aGlzLl9jb21tb25UcmFuc2l0aW9uU3RhcnRTdGF0ZSYmKHRoaXMuaXNFbXB0eSgpfHwodGhpcy5fc2Nyb2xsRGF0YT17c3RhcnRDb29yZGluYXRlOmUsCnN0YXJ0UmlnaHRFZGdlTG9naWNhbDp0aGlzLmJhc2VJbmRleCgpK3RoaXMuX3JpZ2h0T2Zmc2V0Ky41LHN0YXJ0QmFzZUluZGV4OnRoaXMuYmFzZUluZGV4KCl9LHRoaXMuX3NhdmVDb21tb25UcmFuc2l0aW9uc1N0YXJ0U3RhdGUoKSkpfXNjcm9sbFRvKGUpe2lmKHRoaXMuX3Zpc2libGVCYXJzSW52YWxpZGF0ZWQ9ITAsbnVsbD09PXRoaXMuX3Njcm9sbERhdGEpcmV0dXJuO2NvbnN0e3N0YXJ0Q29vcmRpbmF0ZTp0LHN0YXJ0UmlnaHRFZGdlTG9naWNhbDppLHN0YXJ0QmFzZUluZGV4OnN9PXRoaXMuX3Njcm9sbERhdGEsbj1lLXQscj1pKyh0aGlzLmJhc2VJbmRleCgpLXMpLG89dGhpcy5pbmRleFRvQ29vcmRpbmF0ZShyKSxhPXRoaXMuY29vcmRpbmF0ZVRvRmxvYXRJbmRleChvLW4pLS41LXRoaXMuYmFzZUluZGV4KCk7dGhpcy5fdXBkYXRlUmlnaHRPZmZzZXQoYSksdGhpcy5fb25TY3JvbGwuZmlyZSgpfWVuZFNjcm9sbCgpe251bGwhPT10aGlzLl9zY3JvbGxEYXRhJiYodGhpcy5fc2Nyb2xsRGF0YT1udWxsLHRoaXMuX2NsZWFyQ29tbW9uVHJhbnNpdGlvbnNTdGFydFN0YXRlKCksdGhpcy5fdGhyb3R0bGVSZXF1ZXN0TW9yZURhdGFPblNjcm9sbCgpKX1pc0JlaW5nU2Nyb2xsZWQoKXtyZXR1cm4gbnVsbCE9PXRoaXMuX3Njcm9sbERhdGF9aXNCZWluZ1NjYWxlZCgpe3JldHVybiBudWxsIT09dGhpcy5fc2NhbGVTdGFydFBvaW50fW9uU2Nyb2xsKCl7cmV0dXJuIHRoaXMuX29uU2Nyb2xsfWludmFsaWRhdGVWaXNpYmxlQmFycygpe3RoaXMuX3Zpc2libGVCYXJzSW52YWxpZGF0ZWQ9ITB9b25UaW1lU2NhbGVDb21wbGV0ZWQoZSl7aWYodGhpcy5fcmVxdWVzdGluZ01vcmVEYXRhPSExLHRoaXMuX2VuZE9mRGF0YT1lLCgwLHEuaXNGZWF0dXJlc2V0RW5hYmxlZCkoImZpeF9sZWZ0X2VkZ2UiKSYmdGhpcy5fZW5kT2ZEYXRhKXtjb25zdCBlPXRoaXMuX3BvaW50cy5yYW5nZSgpLnZhbHVlKCk/LmZpcnN0SW5kZXg7dm9pZCAwIT09ZSYmdGhpcy5zZXRMZWZ0RWRnZUZpeChlKX10aGlzLl9yZXF1ZXN0TW9yZURhdGEoKX1yZXF1ZXN0TW9yZUhpc3RvcnlQb2ludHMoZSl7dGhpcy5fbW9kZWwubWFpblNlcmllcygpLnJlcXVlc3RNb3JlRGF0YShlKX10YXJnZXREZWZhdWx0UmlnaHRPZmZzZXQoKXtyZXR1cm4gdGhpcy51c2VQZXJjZW50YWdlUmlnaHRPZmZzZXQoKS52YWx1ZSgpP3RoaXMucGVyY2VudHNUb0JhckluZGV4TGVuZ3RoKHRoaXMuX2RlZmF1bHRSaWdodE9mZnNldFBlcmNlbnRhZ2UudmFsdWUoKSk6dGhpcy5fZGVmYXVsdFJpZ2h0T2Zmc2V0LnZhbHVlKCl9cGVyY2VudHNUb0JhckluZGV4TGVuZ3RoKGUpe3JldHVybi4wMSplKnRoaXMuX3dpZHRoL3RoaXMuX2JhclNwYWNpbmd9YmFySW5kZXhMZW5ndGhUb1BlcmNlbnRzKGUpe3JldHVybiAxMDAqZSp0aGlzLl9iYXJTcGFjaW5nL3RoaXMuX3dpZHRofXJlcXVlc3RIaXN0b3J5UG9pbnRzSWZOZWVkZWQoKXt0aGlzLl9tb2RlbC5tYWluU2VyaWVzKCkucmVxdWVzdE1vcmVEYXRhKCl9X3JlcXVlc3RNb3JlRGF0YSgpe3RoaXMuX21vZGVsLm1haW5TZXJpZXMoKS5yZXF1ZXN0TW9yZURhdGEoKX1fcmVxdWVzdEZ1dHVyZVRpY2ttYXJrc0lmTmVlZGVkKCl7dGhpcy5fbW9kZWwubWFpblNlcmllcygpLnJlcXVlc3RNb3JlRGF0YSgpfV9yZXF1ZXN0SGlzdG9yeVBvaW50cyhlKXt0aGlzLl9tb2RlbC5jaGFydEFwaSgpLmlzQ29ubmVjdGVkKCkudmFsdWUoKSYmKHRoaXMuX3JlcXVlc3RpbmdNb3JlRGF0YT9aYy5sb2dOb3JtYWwoIlNraXBwaW5nIGxvYWRpbmcgbW9yZSBkYXRhIGR1ZSBhY3RpdmUgbG9hZGluZyIpOih0aGlzLl9yZXF1ZXN0aW5nTW9yZURhdGE9ITAsdGhpcy5fbW9kZWwuY2hhcnRBcGkoKS5yZXF1ZXN0TW9yZURhdGEoZSkpKX1fdXBkYXRlVmlzaWJsZUJhcnMoKXtjb25zdCBlPXRoaXMuX3Zpc2libGVCYXJzO2lmKHRoaXMuaXNFbXB0eSgpKXJldHVybiB2b2lkKHRoaXMuX3Zpc2libGVCYXJzLmlzVmFsaWQoKSYmKHRoaXMuX3Zpc2libGVCYXJzPWZjLmludmFsaWQoKSx0aGlzLl92aXNpYmxlQmFyc0NoYW5nZWQuZmlyZShudWxsLGUuc3RyaWN0UmFuZ2UoKSksdGhpcy5fbG9naWNhbFJhbmdlQ2hhbmdlZC5maXJlKG51bGwsZS5sb2dpY2FsUmFuZ2UoKSkpKTtjb25zdCB0PXRoaXMud2lkdGgoKS90aGlzLmJhclNwYWNpbmcoKSxpPXRoaXMuYmFzZUluZGV4KCkscz1pK3RoaXMuX3JpZ2h0T2Zmc2V0LG49cysuNSxyPXRoaXMuX3BvaW50V2VpZ2h0cy5pbmRleFRvVG90YWxXZWlnaHQobiktdCxvPU1hdGgubWluKG4tMSx0aGlzLl9wb2ludFdlaWdodHMudG90YWxXZWlnaHRUb0luZGV4KHIpKSsuNTtOdW1iZXIuaXNGaW5pdGUobykmJk51bWJlci5pc0Zpbml0ZShzKT8odGhpcy5fdmlzaWJsZUJhcnM9bmV3IGZjKG5ldyBkYy5Mb2dpY2FsUmFuZ2UobyxzKSx0aGlzLl9tb2RlbC5tYWluU2VyaWVzKCkuc3R5bGUoKSksdGhpcy5fbG9ja0JhcnNBbmRMb2dpY2FsUmFuZ2VFdmVudHN8fHRoaXMuX2ZpcmVWaXNpYmxlQmFyc0NoYW5nZWRJZlJlcXVpcmVkKGUsdGhpcy5fdmlzaWJsZUJhcnMpKTpaYy5sb2dXYXJuKGB1cGRhdGVWaXNpYmxlQmFycyBlcnJvcjogYmFzZUluZGV4OiAke2l9LCBiYXJTcGFjaW5nOiAke3RoaXMuX2JhclNwYWNpbmd9LCByaWdodE9mZnNldDogJHt0aGlzLl9yaWdodE9mZnNldH1gKX1fZmlyZVZpc2libGVCYXJzQ2hhbmdlZElmUmVxdWlyZWQoZSx0KXtoYy5CYXJzUmFuZ2UuY29tcGFyZShlLnN0cmljdFJhbmdlKCksdC5zdHJpY3RSYW5nZSgpKXx8dGhpcy5fdmlzaWJsZUJhcnNDaGFuZ2VkLmZpcmUodC5zdHJpY3RSYW5nZSgpLGUuc3RyaWN0UmFuZ2UoKSksZGMuTG9naWNhbFJhbmdlLmNvbXBhcmUoZS5sb2dpY2FsUmFuZ2UoKSx0LmxvZ2ljYWxSYW5nZSgpKXx8dGhpcy5fbG9naWNhbFJhbmdlQ2hhbmdlZC5maXJlKHQubG9naWNhbFJhbmdlKCksZS5sb2dpY2FsUmFuZ2UoKSl9X2Jhc2VJbmRleEJhckNlbnRlckNvb3JkaW5hdGUoKXtjb25zdCBlPXRoaXMuYmFzZUluZGV4KCkrdGhpcy5fcmlnaHRPZmZzZXQrLjUsdD10aGlzLl9wb2ludFdlaWdodHMuaW5kZXhUb1RvdGFsV2VpZ2h0KGUpCjtyZXR1cm4gdGhpcy5fd2lkdGgtdCp0aGlzLl9iYXJTcGFjaW5nfV90cnlUb1VwZGF0ZUJhclNwYWNpbmcoZSx0KXtyZXR1cm4gZSE9PXQmJih0aGlzLl92aXNpYmxlQmFyc0ludmFsaWRhdGVkPSEwLHRoaXMuX2JhclNwYWNpbmc9dCx0aGlzLl9iYXJTcGFjaW5nQ2hhbmdlZC5maXJlKHQpLCEwKX1fc2F2ZUNvbW1vblRyYW5zaXRpb25zU3RhcnRTdGF0ZSgpe3RoaXMuX2NvbW1vblRyYW5zaXRpb25TdGFydFN0YXRlPXtiYXJTcGFjaW5nOnRoaXMuYmFyU3BhY2luZygpLHJpZ2h0T2Zmc2V0OnRoaXMucmlnaHRPZmZzZXQoKX19X2NsZWFyQ29tbW9uVHJhbnNpdGlvbnNTdGFydFN0YXRlKCl7dGhpcy5fY29tbW9uVHJhbnNpdGlvblN0YXJ0U3RhdGU9bnVsbH1fbWF4UmlnaHRPZmZzZXRPbkNoYW5nZWQoKXt0aGlzLl9tYXhSaWdodE9mZnNldENoYW5nZWQuZmlyZSh0aGlzLm1heFJpZ2h0T2Zmc2V0KCkpfV91cGRhdGVSaWdodE9mZnNldChlKXtjb25zdCB0PXRoaXMuX3JpZ2h0T2Zmc2V0O3RoaXMuX3JpZ2h0T2Zmc2V0PWUsdGhpcy5jb3JyZWN0T2Zmc2V0KCksdGhpcy5fcmlnaHRPZmZzZXQhPT10JiZ0aGlzLl9yaWdodE9mZnNldENoYW5nZWQuZmlyZSh0aGlzLl9yaWdodE9mZnNldCksdGhpcy5fbW9kZWwucmVjYWxjdWxhdGVBbGxQYW5lcygoMCx0bi52aWV3cG9ydENoYW5nZUV2ZW50KSgpKSx0aGlzLl9tb2RlbC5saWdodFVwZGF0ZSgpfV9kZWZhdWx0UmlnaHRPZmZzZXRPcHRpb25zVXBkYXRlZCgpe3RoaXMucmlnaHRPZmZzZXQoKTt0aGlzLnNldFJpZ2h0T2Zmc2V0KHRoaXMudGFyZ2V0RGVmYXVsdFJpZ2h0T2Zmc2V0KCkpLHRoaXMuX3VwZGF0ZVJlc2V0QXZhaWxhYmxlVmFsdWUoKSx0aGlzLl9sYXN0RGVmYXVsdFJpZ2h0T2Zmc2V0PXRoaXMuX2RlZmF1bHRSaWdodE9mZnNldFBlcmNlbnRhZ2UudmFsdWUoKX1fdXBkYXRlUmVzZXRBdmFpbGFibGVWYWx1ZSgpe3RoaXMuX3Jlc2V0QXZhaWxhYmxlLnNldFZhbHVlKDYhPT10aGlzLmJhclNwYWNpbmcoKXx8dGhpcy5yaWdodE9mZnNldCgpIT09dGhpcy50YXJnZXREZWZhdWx0UmlnaHRPZmZzZXQoKSl9fXZhciBlaD1pKDgyNjE1NiksdGg9aSg2MjQ2NzgpLGloPWkoNDYyNTg5KTtjbGFzcyBzaHtjb25zdHJ1Y3RvcihlKXt0aGlzLl9vbkNoYW5nZWQ9bmV3IGYuRGVsZWdhdGUsdGhpcy5fZ3JvdXBzPVtdLHRoaXMuX2dyb3Vwcz1lfHxbXSx0aGlzLl9ncm91cHMuZm9yRWFjaCgoZT0+e2Uub25DaGFuZ2VkKCkuc3Vic2NyaWJlKHRoaXMsKHQ9PnRoaXMuX29uQ2hhbmdlZC5maXJlKGUuaWQsdCkpKX0pKX1kZXN0cm95KCl7dGhpcy5fZ3JvdXBzLmZvckVhY2goKGU9PmUub25DaGFuZ2VkKCkudW5zdWJzY3JpYmVBbGwodGhpcykpKSx0aGlzLl9ncm91cHMubGVuZ3RoPTB9Z3JvdXBzKCl7cmV0dXJuIHRoaXMuX2dyb3Vwcy5maWx0ZXIoKGU9Pm51bGw9PT1lLnBhcmVudEdyb3VwKCkmJmUuaXNBY3R1YWxTeW1ib2woKSkpfWdyb3Vwc0ZvckFsbFN5bWJvbHMoKXtyZXR1cm4gdGhpcy5fZ3JvdXBzLmZpbHRlcigoZT0+bnVsbD09PWUucGFyZW50R3JvdXAoKSkpfWNyZWF0ZUdyb3VwKGUsdCxpKXt0PXR8fHRoaXMuX2dlbmVyYXRlTmV4dE5hbWUoKTtjb25zdCBzPWUubGVuZ3RoPjA/dGhpcy5fcGFyZW50R3JvdXBGb3JJdGVtKGVbMF0pOm51bGw7Zm9yKGNvbnN0IHQgb2YgZSl7Y29uc3QgZT10aGlzLl9wYXJlbnRHcm91cEZvckl0ZW0odCk7bnVsbCE9PWUmJmUuZXhjbHVkZUl0ZW0odCl9Y29uc3Qgbj1uZXcgaW8oZSx0LGkpO3RoaXMuX2dyb3Vwcy5wdXNoKG4pLG4ub25DaGFuZ2VkKCkuc3Vic2NyaWJlKHRoaXMsKGU9PnRoaXMuX29uQ2hhbmdlZC5maXJlKG4uaWQsZSkpKSxudWxsIT09cyYmcy5hZGRJdGVtcyhbbl0pO2NvbnN0IHI9W107ZS5mb3JFYWNoKChlPT57KDAsWHIuaXNMaW5lVG9vbHNHcm91cCkoZSk/dG8oZSxyKTpyLnB1c2goZS5pZCgpKX0pKTtjb25zdCBvPXt2aXNpYmlsaXR5Q2hhbmdlZDohMSxsb2NrZWRDaGFuZ2VkOiExLGlzQWN0dWFsSW50ZXJ2YWxDaGFuZ2VkOiExLGFmZmVjdGVkTGluZVRvb2xzOnJ9O3JldHVybiB0aGlzLl9vbkNoYW5nZWQuZmlyZShuLmlkLG8pLHRoaXMuX3JlbW92ZUVtcHR5R3JvdXBzQ2FzY2FkZSgpLG59YWRkR3JvdXAoZSl7dGhpcy5fZ3JvdXBzLnB1c2goZSksZS5vbkNoYW5nZWQoKS5zdWJzY3JpYmUodGhpcywodD0+dGhpcy5fb25DaGFuZ2VkLmZpcmUoZS5pZCx0KSkpLHRoaXMuX29uQ2hhbmdlZC5maXJlKGUuaWQpfXJlbW92ZUdyb3VwKGUpe2Uub25DaGFuZ2VkKCkudW5zdWJzY3JpYmVBbGwodGhpcyk7Y29uc3QgdD1lLnBhcmVudEdyb3VwKCk7bnVsbCE9PXQmJnQuZXhjbHVkZUl0ZW0oZSk7Y29uc3QgaT1lLnN1Ymdyb3VwcygpO2kubGVuZ3RoPjAmJmUuZXhjbHVkZUl0ZW1zKGkpO2NvbnN0IHM9dGhpcy5fZ3JvdXBzLmZpbmRJbmRleCgodD0+dC5pZD09PWUuaWQpKTstMSE9PXMmJnRoaXMuX2dyb3Vwcy5zcGxpY2UocywxKSx0aGlzLl9vbkNoYW5nZWQuZmlyZShlLmlkKX1ncm91cEZvcklkKGUpe3JldHVybiB0aGlzLl9ncm91cHMuZmluZCgodD0+dC5pZD09PWUpKXx8bnVsbH1ncm91cEZvckxpbmVUb29sKGUpe3JldHVybiB0aGlzLl9ncm91cHMuZmluZCgodD0+dC5jb250YWluc0l0ZW0oZSkpKXx8bnVsbH1yZW1vdmVMaW5lVG9vbHMoZSl7Y29uc3QgdD1uZXcgU2V0O3JldHVybiB0aGlzLl9ncm91cHMuZm9yRWFjaCgoaT0+e2NvbnN0IHM9ZS5maWx0ZXIoKGU9PmkuY29udGFpbnNJdGVtKGUpKSk7cy5sZW5ndGgmJihpLmV4Y2x1ZGVJdGVtcyhzKSx0LmFkZChpLmlkKSl9KSksdGhpcy5fcmVtb3ZlRW1wdHlHcm91cHNDYXNjYWRlKCksQXJyYXkuZnJvbSh0KX1zdGF0ZShlKXtyZXR1cm57Z3JvdXBzOihlP3RoaXMuX2dyb3Vwcy5maWx0ZXIoKGU9PmUuaXNBY3R1YWxTeW1ib2woKSkpOnRoaXMuX2dyb3VwcykubWFwKChlPT5lLnN0YXRlKCkpKX19b25DaGFuZ2VkKCl7cmV0dXJuIHRoaXMuX29uQ2hhbmdlZH1maXJlQ2hhbmdlZEFsbCgpe3RoaXMuX2dyb3Vwcy5mb3JFYWNoKChlPT57dGhpcy5fb25DaGFuZ2VkLmZpcmUoZS5pZCl9KSl9c3RhdGljIGZyb21TdGF0ZShlLHQpe2NvbnN0IGk9W10KO2Zvcihjb25zdCBzIG9mIHQuZ3JvdXBzKXtjb25zdCB0PWlvLmZyb21TdGF0ZShlLHMpO251bGwhPT10JiZpLnB1c2godCl9cmV0dXJuIG5ldyBzaChpKX1fcGFyZW50R3JvdXBGb3JJdGVtKGUpe3JldHVybigwLFhyLmlzTGluZVRvb2xzR3JvdXApKGUpP2UucGFyZW50R3JvdXAoKTp0aGlzLmdyb3VwRm9yTGluZVRvb2woZSl9X3JlbW92ZUVtcHR5R3JvdXBzQ2FzY2FkZSgpe2xldCBlPSEwO2Zvcig7ZTspe2NvbnN0IHQ9dGhpcy5fZ3JvdXBzLmZpbHRlcigoZT0+MD09PWUubGluZVRvb2xzKCkubGVuZ3RoJiYwPT09ZS5zdWJncm91cHMoKS5sZW5ndGgpKTtlPXQubGVuZ3RoPjAsdC5mb3JFYWNoKChlPT50aGlzLnJlbW92ZUdyb3VwKGUpKSl9fV9nZW5lcmF0ZU5leHROYW1lKCl7Y29uc3QgZT1uZXcgU2V0KHRoaXMuX2dyb3Vwcy5maWx0ZXIoKGU9PmUuaXNBY3R1YWxTeW1ib2woKSkpLm1hcCgoZT0+ZS5uYW1lKCkudmFsdWUoKSkpKTtmb3IobGV0IHQ9MTs7dCsrKXtjb25zdCBpPWBHcm91cCAke3R9YCxzPWBHcm91cF8ke3R9YDtpZighZS5oYXMoaSkmJiFlLmhhcyhzKSlyZXR1cm4gaX19fXZhciBuaD1pKDY0MjcxOSkscmg9aSg3NzE3OTUpO2Z1bmN0aW9uIG9oKGUpe3JldHVybiBCb29sZWFuKGUuc2Vzc2lvbi50aW1lem9uZSkmJkJvb2xlYW4oZS5zZXNzaW9uLnNwZWMpfWNsYXNzIGFoe2NvbnN0cnVjdG9yKGUsdCl7dmFyIGksczt0aGlzLl9zb3VyY2VUYXJnZXRCYXJCdWlsZGVyPW51bGwsdGhpcy5fY2FjaGU9bmV3IE1hcCx0aGlzLl9zb3VyY2U9ZSx0aGlzLl90YXJnZXQ9dCx0aGlzLl9zb3VyY2VTZXNzaW9uPW5oLlNlc3Npb25JbmZvLmZyb21TdGF0ZShlLnNlc3Npb24pLHRoaXMuX3RhcmdldFNlc3Npb249bmguU2Vzc2lvbkluZm8uZnJvbVN0YXRlKHQuc2Vzc2lvbiksdGhpcy5faXNSZXNvbHV0aW9uVGhlU2FtZT14LkludGVydmFsLmlzRXF1YWwoZS5yZXNvbHV0aW9uLHQucmVzb2x1dGlvbil8fHguSW50ZXJ2YWwuaXNUaWNrcyhlLnJlc29sdXRpb24pJiZ4LkludGVydmFsLmlzVGlja3ModC5yZXNvbHV0aW9uKSx0aGlzLl9pc1Nlc3Npb25UaGVTYW1lPShpPWUuc2Vzc2lvbixzPXQuc2Vzc2lvbixpLnRpbWV6b25lPT09cy50aW1lem9uZSYmaS5zcGVjPT09cy5zcGVjJiZpLmhvbGlkYXlzPT09cy5ob2xpZGF5cyYmaS5jb3JyZWN0aW9ucz09PXMuY29ycmVjdGlvbnMpfXNvdXJjZVRpbWVUb1RhcmdldFRpbWUoZSl7aWYodGhpcy5faXNTZXNzaW9uVGhlU2FtZSYmdGhpcy5faXNSZXNvbHV0aW9uVGhlU2FtZSlyZXR1cm4gZTtpZighb2godGhpcy5fc291cmNlKXx8IW9oKHRoaXMuX3RhcmdldCkpcmV0dXJuIGU7bGV0IHQ9dGhpcy5fY2FjaGUuZ2V0KGUpO2lmKHZvaWQgMD09PXQpe2NvbnN0IGk9MWUzKmUscz10aGlzLl9zb3VyY2VUYXJnZXRCdWlsZGVyKCk7cy5tb3ZlVG8oaSk7Y29uc3Qgbj1zLmluZGV4T2ZCYXIoaSk7dD1zLnN0YXJ0T2ZCYXIoTWF0aC5tYXgoMCxuKSkvMWUzLHRoaXMuX2NhY2hlLnNldChlLHQpfXJldHVybiB0fV9zb3VyY2VUYXJnZXRCdWlsZGVyKCl7cmV0dXJuIG51bGw9PT10aGlzLl9zb3VyY2VUYXJnZXRCYXJCdWlsZGVyJiYodGhpcy5fc291cmNlVGFyZ2V0QmFyQnVpbGRlcj0oMCxyaC5uZXdCYXJCdWlsZGVyKSh0aGlzLl90YXJnZXQucmVzb2x1dGlvbix0aGlzLl90YXJnZXRTZXNzaW9uLHRoaXMuX3NvdXJjZVNlc3Npb24pKSx0aGlzLl9zb3VyY2VUYXJnZXRCYXJCdWlsZGVyfX12YXIgbGg9aSg0Njk4NzYpO2NvbnN0IGNoPSIjMDAwMDAwIjthc3luYyBmdW5jdGlvbiBoaChlKXsoYXdhaXQoMCxVcy5nZXRDaGFydEFsZXJ0c0ZhY2FkZSkoKSkuaW52b2tlQWxlcnRFZGl0b3IoZSl9Y2xhc3MgZGh7Y29uc3RydWN0b3IoZSl7dGhpcy5fYWxlcnRMYWJlbHNCeVNvdXJjZT1uZXcgTWFwLHRoaXMuX2FsZXJ0c0J5QWxlcnRTZXJpZXNJZD1uZXcgTWFwLHRoaXMuX2FsZXJ0U2VyaWVzSWRCeUFsZXJ0PW5ldyBNYXAsdGhpcy5fYWxlcnRMYWJlbHNCeUFsZXJ0PW5ldyBNYXAsdGhpcy5fYWxlcnRMYWJlbHNPd25lclNvdXJjZXNCeUFsZXJ0PW5ldyBNYXAsdGhpcy5fY2hhcnRNb2RlbD1lfWRlc3Ryb3koKXt0aGlzLnJlbW92ZUFsbEFsZXJ0TGFiZWxzKCl9cmVtb3ZlQWxsQWxlcnRMYWJlbHMoKXtjb25zdCBlPXRoaXMuX2FsZXJ0TGFiZWxzQnlTb3VyY2U7dGhpcy5fYWxlcnRMYWJlbHNCeVNvdXJjZT1uZXcgTWFwLHRoaXMuX2FsZXJ0c0J5QWxlcnRTZXJpZXNJZC5jbGVhcigpLHRoaXMuX2FsZXJ0U2VyaWVzSWRCeUFsZXJ0LmNsZWFyKCksdGhpcy5fYWxlcnRMYWJlbHNCeUFsZXJ0LmNsZWFyKCksdGhpcy5fYWxlcnRMYWJlbHNPd25lclNvdXJjZXNCeUFsZXJ0LmNsZWFyKCksZS5mb3JFYWNoKChlPT57ZS5mb3JFYWNoKChlPT50aGlzLl9jaGFydE1vZGVsLnJlbW92ZVNvdXJjZShlKSkpfSkpfXJlbW92ZVNvdXJjZUFsZXJ0TGFiZWxzKGUpe2Zvcihjb25zdCB0IG9mIHRoaXMuX2dldEFsZXJ0TGFiZWxzQnlTb3VyY2UoZSkpdGhpcy5fcmVtb3ZlQWxlcnRMYWJlbCh0KTtpZigoMCxmbC5pc1NlcmllcykoZSkpe2NvbnN0IHQ9ZS5hY3RpdmVTdHVkeUJpbmRpbmcoKTt0JiZ0aGlzLnJlbW92ZVNvdXJjZUFsZXJ0TGFiZWxzKHQpfX1zeW5jU291cmNlQWxlcnRMYWJlbHMoZSl7aWYoISgwLEhzLmlzUHJpY2VEYXRhU291cmNlKShlKXx8IWUuaGFzU3RhdGVGb3JBbGVydCgpKXJldHVybjtmb3IoY29uc3QgdCBvZiB0aGlzLl9nZXRBbGVydExhYmVsc0J5U291cmNlKGUpKXQuYWxlcnRPd25lclNvdXJjZSgpLmlkRm9yQWxlcnQoKT09PXQuYWxlcnRTZXJpZXNJZCgpfHx0LmFsZXJ0KCkuaXNPSExDKCl8fHRoaXMuX3JlbW92ZUFsZXJ0TGFiZWwodCk7Y29uc3QgdD10aGlzLl9hbGVydHNCeUFsZXJ0U2VyaWVzSWQuZ2V0KGUuaWRGb3JBbGVydCgpKSxpPXRoaXMuX2dldEFsZXJ0TGFiZWxzQnlTb3VyY2UoZSk7dm9pZCAwIT09dCYmdC5mb3JFYWNoKChlPT57aS5zb21lKCh0PT50LmFsZXJ0KCk9PT1lKSl8fHRoaXMuX3VwZGF0ZUFsZXJ0TGFiZWxzQnlBbGVydChlLCgwLGwuZW5zdXJlRGVmaW5lZCkodGhpcy5fYWxlcnRTZXJpZXNJZEJ5QWxlcnQuZ2V0KGUpKSl9KSkKO2NvbnN0IHM9KDAsbC5lbnN1cmVOb3ROdWxsKSh0aGlzLl9jaGFydE1vZGVsLnBhbmVGb3JTb3VyY2UoZSkpO2Zvcihjb25zdCB0IG9mIHRoaXMuX2dldEFsZXJ0TGFiZWxzQnlTb3VyY2UoZSkpe2NvbnN0IGk9dGhpcy5fY2hhcnRNb2RlbC5wYW5lRm9yU291cmNlKHQpO2khPT1zPyhudWxsIT09aSYmaS5yZW1vdmVEYXRhU291cmNlKHQpLHMuYWRkRGF0YVNvdXJjZSh0LCgwLGwuZW5zdXJlTm90TnVsbCkoZS5wcmljZVNjYWxlKCkpLCExKSk6ZS5wcmljZVNjYWxlKCkhPT10LnByaWNlU2NhbGUoKSYmcy5tb3ZlKHQsKDAsbC5lbnN1cmVOb3ROdWxsKShlLnByaWNlU2NhbGUoKSkpfWlmKCgwLGZsLmlzU2VyaWVzKShlKSl7Y29uc3QgdD1lLmFjdGl2ZVN0dWR5QmluZGluZygpO3QmJnRoaXMuc3luY1NvdXJjZUFsZXJ0TGFiZWxzKHQpfX1kZXRhY2hTb3VyY2VBbGVydExhYmVscyhlKXtmb3IoY29uc3QgdCBvZiB0aGlzLl9nZXRBbGVydExhYmVsc0J5U291cmNlKGUpKXRoaXMuX2NoYXJ0TW9kZWwuZGV0YWNoU291cmNlKHQpO2lmKCgwLGZsLmlzU2VyaWVzKShlKSl7Y29uc3QgdD1lLmFjdGl2ZVN0dWR5QmluZGluZygpO3QmJnRoaXMuZGV0YWNoU291cmNlQWxlcnRMYWJlbHModCl9fWFkZEFsZXJ0KGUsdCl7KDAsbC5hc3NlcnQpKCF0aGlzLl9hbGVydFNlcmllc0lkQnlBbGVydC5oYXMoZSksIkFsZXJ0IGlzIGFscmVhZHkgYWRkZWQgb24gdGhlIGNoYXJ0IiksdGhpcy5fYWxlcnRTZXJpZXNJZEJ5QWxlcnQuc2V0KGUsdCk7bGV0IGk9dGhpcy5fYWxlcnRzQnlBbGVydFNlcmllc0lkLmdldCh0KTt2b2lkIDA9PT1pJiYoaT1uZXcgU2V0LHRoaXMuX2FsZXJ0c0J5QWxlcnRTZXJpZXNJZC5zZXQodCxpKSksaS5hZGQoZSksdGhpcy5fdXBkYXRlQWxlcnRMYWJlbHNCeUFsZXJ0KGUsdCl9aXNBbGVydExhYmVsQmVpbmdNb3ZlZChlLHQpe2NvbnN0IGk9dGhpcy5fYWxlcnRMYWJlbHNCeUFsZXJ0LmdldChlKTtpZih2b2lkIDA9PT1pKXJldHVybiExO2NvbnN0IHM9bmV3IFNldCh0KTtmb3IoY29uc3QgZSBvZiBpKWlmKHMuaGFzKGUpKXJldHVybiEwO3JldHVybiExfXJlbW92ZUFsZXJ0KGUpe2NvbnN0IHQ9dGhpcy5fYWxlcnRMYWJlbHNPd25lclNvdXJjZXNCeUFsZXJ0LmdldChlKTt2b2lkIDAhPT10JiZ0LmZvckVhY2goKHQ9Pntjb25zdCBpPXRoaXMuX2FsZXJ0TGFiZWxzQnlTb3VyY2UuZ2V0KHQpO3ZvaWQgMCE9PWkmJmkuZm9yRWFjaCgodD0+e3QuYWxlcnQoKT09PWUmJnRoaXMuX3JlbW92ZUFsZXJ0TGFiZWwodCl9KSl9KSk7Y29uc3QgaT10aGlzLl9hbGVydFNlcmllc0lkQnlBbGVydC5nZXQoZSk7aWYoIWkpcmV0dXJuO3RoaXMuX2FsZXJ0U2VyaWVzSWRCeUFsZXJ0LmRlbGV0ZShlKTtjb25zdCBzPXRoaXMuX2FsZXJ0c0J5QWxlcnRTZXJpZXNJZC5nZXQoaSk7dm9pZCAwIT09cyYmcy5kZWxldGUoZSl9X3JlbW92ZUFsZXJ0TGFiZWwoZSl7Y29uc3QgdD1lLmFsZXJ0T3duZXJTb3VyY2UoKSxpPXRoaXMuX2FsZXJ0TGFiZWxzQnlTb3VyY2UuZ2V0KHQpO3ZvaWQgMCE9PWkmJihpLmRlbGV0ZShlKSwwPT09aS5zaXplJiZ0aGlzLl9hbGVydExhYmVsc0J5U291cmNlLmRlbGV0ZSh0KSk7Y29uc3Qgcz1lLmFsZXJ0KCksbj10aGlzLl9hbGVydExhYmVsc0J5QWxlcnQuZ2V0KHMpO3ZvaWQgMCE9PW4mJihuLmRlbGV0ZShlKSwwPT09bi5zaXplJiZ0aGlzLl9hbGVydExhYmVsc0J5QWxlcnQuZGVsZXRlKHMpKTtjb25zdCByPXRoaXMuX2FsZXJ0TGFiZWxzT3duZXJTb3VyY2VzQnlBbGVydC5nZXQocyk7dm9pZCAwIT09ciYmKHIuZGVsZXRlKHQpLDA9PT1yLnNpemUmJnRoaXMuX2FsZXJ0TGFiZWxzT3duZXJTb3VyY2VzQnlBbGVydC5kZWxldGUocykpLHRoaXMuX2NoYXJ0TW9kZWwucmVtb3ZlU291cmNlKGUpfV9maW5kUGFuZXMoZSl7Y29uc3QgdD1bXTtmb3IoY29uc3QgaSBvZiB0aGlzLl9jaGFydE1vZGVsLnBhbmVzKCkpe2NvbnN0IHM9aS5wcmljZURhdGFTb3VyY2VzKCksbj1uZXcgU2V0O2Zvcihjb25zdCB0IG9mIHMpaWYodC5oYXNTdGF0ZUZvckFsZXJ0KCkmJnQuaWRGb3JBbGVydCgpPT09ZSYmbi5hZGQodCksKDAsZmwuaXNTZXJpZXMpKHQpKXtjb25zdCBpPXQuYWN0aXZlU3R1ZHlCaW5kaW5nKCk7aSYmaS5oYXNTdGF0ZUZvckFsZXJ0KCkmJmkuaWRGb3JBbGVydCgpPT09ZSYmbi5hZGQoaSl9bi5zaXplPjAmJnQucHVzaCh7cGFuZTppLHNvdXJjZXM6bn0pfXJldHVybiB0fV9hZGRMYWJlbFRvUGFuZShlLHQsaSxzKXtjb25zdCBuPW5ldyBxaS5BbGVydExhYmVsKHRoaXMuX2NoYXJ0TW9kZWwsZSxzLGhoKTtpLmFkZERhdGFTb3VyY2UobixzLnByaWNlU2NhbGUoKSwhMSk7bGV0IHI9dGhpcy5fYWxlcnRMYWJlbHNCeVNvdXJjZS5nZXQocyk7dm9pZCAwPT09ciYmKHI9bmV3IFNldCx0aGlzLl9hbGVydExhYmVsc0J5U291cmNlLnNldChzLHIpKSxyLmFkZChuKTtsZXQgbz10aGlzLl9hbGVydExhYmVsc093bmVyU291cmNlc0J5QWxlcnQuZ2V0KGUpO3ZvaWQgMD09PW8mJihvPW5ldyBTZXQsdGhpcy5fYWxlcnRMYWJlbHNPd25lclNvdXJjZXNCeUFsZXJ0LnNldChlLG8pKSxvLmFkZChzKTtsZXQgYT10aGlzLl9hbGVydExhYmVsc0J5QWxlcnQuZ2V0KGUpO3ZvaWQgMD09PWEmJihhPW5ldyBTZXQsdGhpcy5fYWxlcnRMYWJlbHNCeUFsZXJ0LnNldChlLGEpKSxhLmFkZChuKX1fdXBkYXRlQWxlcnRMYWJlbHNCeUFsZXJ0KGUsdCl7Y29uc3QgaT10aGlzLl9maW5kUGFuZXModCk7aWYoaS5sZW5ndGgpZm9yKGNvbnN0IHMgb2YgaSlzLnNvdXJjZXMuZm9yRWFjaCgoaT0+dGhpcy5fYWRkTGFiZWxUb1BhbmUoZSx0LHMucGFuZSxpKSkpO2Vsc2UgaWYoZS5pc09ITEMoKSl7Y29uc3QgaT10aGlzLl9jaGFydE1vZGVsLm1haW5TZXJpZXMoKTt0aGlzLl9hZGRMYWJlbFRvUGFuZShlLHQsKDAsbC5lbnN1cmVOb3ROdWxsKSh0aGlzLl9jaGFydE1vZGVsLnBhbmVGb3JTb3VyY2UoaSkpLGkpfXRoaXMuX2NoYXJ0TW9kZWwubGlnaHRVcGRhdGUoKX1fZ2V0QWxlcnRMYWJlbHNCeVNvdXJjZShlKXtjb25zdCB0PXRoaXMuX2FsZXJ0TGFiZWxzQnlTb3VyY2UuZ2V0KGUpCjtyZXR1cm4gdm9pZCAwPT09dD9bXTpBcnJheS5mcm9tKHQpfX12YXIgdWg9aSg0ODc4MjApLHBoPWkoNjU2NjQpLF9oPWkoNjM1Njk5KSxtaD1pKDM3NjY0NSksZ2g9aSg1OTYyNzIpLGZoPWkoOTY5NCksU2g9aSgxMzE2ODApO2NsYXNzIHZoIGV4dGVuZHMgZmguUHJpY2VMaW5lQXhpc1ZpZXd7Y29uc3RydWN0b3IoZSx0KXtzdXBlcigpLHRoaXMuX21vZGVsPWUsdGhpcy5fc291cmNlPXR9X3ZhbHVlKCl7Y29uc3QgZT10aGlzLl9tb2RlbC5tYWluU2VyaWVzKCksdD1lLnByaWNlU2NhbGUoKSxpPWUuZmlyc3RWYWx1ZSgpO2lmKG51bGw9PT1pKXJldHVybntub0RhdGE6ITB9O2NvbnN0IHM9dGhpcy5fc291cmNlLnByaWNlKCksbj10aGlzLl9zb3VyY2UuY3VycmVudFNlc3Npb24oKSxyPSgwLFNoLmNvbG9yUHJvcGVydHlCeU1hcmtldFN0YXR1cykodGhpcy5fc291cmNlLnByb3BlcnRpZXMoKSxuKTtpZihudWxsPT1zfHwhcilyZXR1cm57bm9EYXRhOiEwfTtyZXR1cm57bm9EYXRhOiExLGNvb3JkaW5hdGU6dC5wcmljZVRvQ29vcmRpbmF0ZShzLGkpLGNvbG9yOiIiLGZvcm1hdHRlZFByaWNlUGVyY2VudGFnZToiIixmb3JtYXR0ZWRQcmljZUFic29sdXRlOiIiLGZvcm1hdHRlZFByaWNlSW5kZXhlZFRvMTAwOiIiLHRleHQ6IiIsaW5kZXg6MH19X3ByaWNlTGluZUNvbG9yKGUpe2NvbnN0IHQ9dGhpcy5fc291cmNlLmN1cnJlbnRTZXNzaW9uKCk7cmV0dXJuKDAsbC5lbnN1cmVOb3ROdWxsKSgoMCxTaC5jb2xvclByb3BlcnR5QnlNYXJrZXRTdGF0dXMpKHRoaXMuX3NvdXJjZS5wcm9wZXJ0aWVzKCksdCkpLnZhbHVlKCl9X2xpbmVXaWR0aCgpe3JldHVybiB0aGlzLl9zb3VyY2UucHJvcGVydGllcygpLmNoaWxkcygpLmxpbmVXaWR0aC52YWx1ZSgpfV9saW5lU3R5bGUoKXtyZXR1cm4gdGhpcy5fc291cmNlLnByb3BlcnRpZXMoKS5jaGlsZHMoKS5saW5lU3R5bGUudmFsdWUoKX1faXNWaXNpYmxlKCl7aWYoIXRoaXMuX3NvdXJjZS5jYW5CZVZpc2libGVPblN5bWJvbEFuZEludGVydmFsKCl8fCF0aGlzLl9tb2RlbC5wcm9wZXJ0aWVzKCkuY2hpbGRzKCkuc2NhbGVzUHJvcGVydGllcy5jaGlsZHMoKS5zaG93UHJlUG9zdE1hcmtldFByaWNlTGFiZWwudmFsdWUoKSlyZXR1cm4hMTtjb25zdCBlPXRoaXMuX3NvdXJjZS5wcmljZSgpLHQ9dGhpcy5fc291cmNlLmN1cnJlbnRTZXNzaW9uKCk7cmV0dXJuIG51bGwhPT1lJiYoInByZV9tYXJrZXQiPT09dHx8InBvc3RfbWFya2V0Ij09PXQpfX12YXIgeWg9aSg3MTY3OCk7Y29uc3QgYmg9e3ByZV9tYXJrZXQ6cC50KG51bGwse2NvbnRleHQ6Im1hcmtldF9zdGF0dXMifSxpKDk2NjQxMikpLHBvc3RfbWFya2V0OnAudChudWxsLHtjb250ZXh0OiJtYXJrZXRfc3RhdHVzIn0saSg2MTkyMzMpKSxuaWdodDpwLnQobnVsbCx7Y29udGV4dDoibWFya2V0X3N0YXR1cyJ9LGkoODIwMjE5KSl9O2NsYXNzIHdoIGV4dGVuZHMgeWguUHJpY2VBeGlzVmlld3tjb25zdHJ1Y3RvcihlLHQpe3N1cGVyKCksdGhpcy5fbW9kZWw9ZSx0aGlzLl9zb3VyY2U9dH1fdXBkYXRlUmVuZGVyZXJEYXRhKGUsdCxpKXtpZihlLnZpc2libGU9ITEsdC52aXNpYmxlPSExLCF0aGlzLl9tb2RlbC5wcm9wZXJ0aWVzKCkuY2hpbGRzKCkuc2NhbGVzUHJvcGVydGllcy5jaGlsZHMoKS5zaG93UHJlUG9zdE1hcmtldFByaWNlTGFiZWwudmFsdWUoKSlyZXR1cm47Y29uc3Qgcz10aGlzLl9tb2RlbC5tYWluU2VyaWVzKCksbj1zLnByaWNlU2NhbGUoKSxyPXMuZmlyc3RWYWx1ZSgpO2lmKG51bGw9PT1yKXJldHVybjtpZighdGhpcy5fc291cmNlLmNhbkJlVmlzaWJsZU9uU3ltYm9sQW5kSW50ZXJ2YWwoKSlyZXR1cm47Y29uc3Qgbz10aGlzLl9zb3VyY2UucHJpY2UoKSxhPXRoaXMuX3NvdXJjZS5jdXJyZW50U2Vzc2lvbigpLGM9KDAsU2guY29sb3JQcm9wZXJ0eUJ5TWFya2V0U3RhdHVzKSh0aGlzLl9zb3VyY2UucHJvcGVydGllcygpLGEpO2lmKG51bGw9PW98fCFjKXJldHVybjtjb25zdCBoPSgwLCRpLnJlc2V0VHJhbnNwYXJlbmN5KShjLnZhbHVlKCkpO2UudmlzaWJsZT0hMCx0LnZpc2libGU9ITAsZS50ZXh0PW4uZm9ybWF0UHJpY2VBYnNvbHV0ZShvKSx0LnRleHQ9KDAsbC5lbnN1cmVEZWZpbmVkKShiaFthXSksaS5jb29yZGluYXRlPW4ucHJpY2VUb0Nvb3JkaW5hdGUobyxyKSxpLmJhY2tncm91bmQ9aCxpLnRleHRDb2xvcj10aGlzLmdlbmVyYXRlVGV4dENvbG9yKGgpLGUuc2VsZWN0ZWRNYXJrQ29sb3I9dGhpcy5fbW9kZWwuc2VsZWN0aW9uKCkuaXNTZWxlY3RlZCh0aGlzLl9zb3VyY2UpP2g6dm9pZCAwfX12YXIgQ2g9aSg3NDM0Nyk7Y2xhc3MgUGggZXh0ZW5kcyBDaC5Ib3Jpem9udGFsTGluZVBhbmVWaWV3e2NvbnN0cnVjdG9yKGUsdCxpKXtzdXBlcigpLHRoaXMuX21vZGVsPWUsdGhpcy5fc291cmNlPXQ7Y29uc3Qgcz17ZG91YmxlQ2xpY2tIYW5kbGVyOmksZG91YmxlVGFwSGFuZGxlcjppfTt0aGlzLl9saW5lUmVuZGVyZXIuc2V0SGl0VGVzdChuZXcgTWkuSGl0VGVzdFJlc3VsdChNaS5IaXRUYXJnZXQuUmVndWxhcixzKSl9X3VwZGF0ZUltcGwoKXtjb25zdCBlPXRoaXMuX2xpbmVSZW5kZXJlckRhdGE7ZS52aXNpYmxlPSExO2NvbnN0IHQ9dGhpcy5fbW9kZWwubWFpblNlcmllcygpLGk9dGhpcy5fc291cmNlLnByb3BlcnRpZXMoKS5jaGlsZHMoKTtpZighaS52aXNpYmxlLnZhbHVlKCl8fCF0LmlzVmlzaWJsZSgpKXJldHVybjtjb25zdCBzPXQucHJpY2VTY2FsZSgpLG49dC5maXJzdFZhbHVlKCk7aWYobnVsbD09PW4pcmV0dXJuO2lmKCF0aGlzLl9zb3VyY2UuY2FuQmVWaXNpYmxlT25TeW1ib2xBbmRJbnRlcnZhbCgpKXJldHVybjtjb25zdCByPXRoaXMuX3NvdXJjZS5wcmljZSgpLG89dGhpcy5fc291cmNlLmN1cnJlbnRTZXNzaW9uKCksYT0oMCxTaC5jb2xvclByb3BlcnR5QnlNYXJrZXRTdGF0dXMpKHRoaXMuX3NvdXJjZS5wcm9wZXJ0aWVzKCksbyk7bnVsbCE9ciYmYSYmKGUudmlzaWJsZT0hMCxlLnk9cy5wcmljZVRvQ29vcmRpbmF0ZShyLG4pLGUubGluZXN0eWxlPWkubGluZVN0eWxlLnZhbHVlKCksZS5saW5ld2lkdGg9aS5saW5lV2lkdGgudmFsdWUoKSwKZS5jb2xvcj1hLnZhbHVlKCkpfX1jbGFzcyBUaCBleHRlbmRzIGdoLkN1c3RvbVNvdXJjZUJhc2V7Y29uc3RydWN0b3IoZSx0LGkpe3N1cGVyKGUsdCksdGhpcy5fZXh0cmFIb3Vyc1ByaWNlPW51bGwsdGhpcy5fY3VycmVudFNlc3Npb249ImhvbGlkYXkiLHRoaXMuX3F1b3Rlc1Byb3ZpZGVyPXQubWFpblNlcmllcygpLnF1b3Rlc1Byb3ZpZGVyKCksdGhpcy5fcHJlUG9zdE1hcmtldExpbmVQYW5lVmlldz1uZXcgUGgodCx0aGlzLGkpLHRoaXMuX3ByZVBvc3RQcmljZUF4aXNWaWV3PW5ldyB3aCh0LHRoaXMpLHRoaXMuX3ByZVBvc3RMYWJlbFBhbmVWaWV3PW5ldyBtaC5QYW5lUHJpY2VBeGlzVmlldyh0aGlzLl9wcmVQb3N0UHJpY2VBeGlzVmlldyx0Lm1haW5TZXJpZXMoKSx0KSx0aGlzLl9wcmVQb3N0UHJpY2VMaW5lQXhpc1ZpZXc9bmV3IHZoKHQsdGhpcyksdGhpcy5fcXVvdGVzUHJvdmlkZXIucXVvdGVzVXBkYXRlKCkuc3Vic2NyaWJlKHRoaXMsdGhpcy5fdXBkYXRlUXVvdGVzKSx0aGlzLl91cGRhdGVRdW90ZXMoKX1kZXN0cm95KCl7dGhpcy5fcXVvdGVzUHJvdmlkZXIucXVvdGVzVXBkYXRlKCkudW5zdWJzY3JpYmVBbGwodGhpcyl9cGFuZVZpZXdzKGUpe3JldHVybiB0aGlzLl9hcmVWaWV3c0F2YWlsYWJsZUZvclBhbmUoZSk/W3RoaXMuX3ByZVBvc3RNYXJrZXRMaW5lUGFuZVZpZXddOltdfWxhYmVsUGFuZVZpZXdzKGUpe3JldHVybiB0aGlzLl9hcmVWaWV3c0F2YWlsYWJsZUZvclBhbmUoZSk/W3RoaXMuX3ByZVBvc3RMYWJlbFBhbmVWaWV3XTpbXX1wcmljZUF4aXNWaWV3cyhlLHQpe3JldHVybiB0aGlzLl9hcmVWaWV3c0F2YWlsYWJsZUZvclBhbmUoZSk/ZS5maW5kVGFyZ2V0UHJpY2VBeGlzVmlld3ModGhpcyx0LFt0aGlzLl9wcmVQb3N0UHJpY2VBeGlzVmlld10sW3RoaXMuX3ByZVBvc3RQcmljZUxpbmVBeGlzVmlld10pOltdfXByaWNlU2NhbGUoKXtyZXR1cm4gdGhpcy5fbW9kZWwubWFpblNlcmllcygpLnByaWNlU2NhbGUoKX11cGRhdGVBbGxWaWV3cyhlKXt0aGlzLl9wcmVQb3N0TWFya2V0TGluZVBhbmVWaWV3LnVwZGF0ZShlKSx0aGlzLl9wcmVQb3N0UHJpY2VBeGlzVmlldy51cGRhdGUoZSksdGhpcy5fcHJlUG9zdFByaWNlTGluZUF4aXNWaWV3LnVwZGF0ZShlKSx0aGlzLl9wcmVQb3N0TGFiZWxQYW5lVmlldy51cGRhdGUoZSl9cHJpY2UoKXtyZXR1cm4gdGhpcy5fZXh0cmFIb3Vyc1ByaWNlfWN1cnJlbnRTZXNzaW9uKCl7cmV0dXJuIHRoaXMuX2N1cnJlbnRTZXNzaW9ufWNhbkJlVmlzaWJsZU9uU3ltYm9sQW5kSW50ZXJ2YWwoKXtjb25zdCBlPXRoaXMuX21vZGVsLm1haW5TZXJpZXMoKS5zeW1ib2xJbmZvKCksdD10aGlzLl9tb2RlbC5tYWluU2VyaWVzKCkuaXNEV00oKTtpZighZSlyZXR1cm4hMTtjb25zdCBpPWUuc3Vic2Vzc2lvbl9pZDtpZighaSlyZXR1cm4hMTtzd2l0Y2godGhpcy5fY3VycmVudFNlc3Npb24pe2Nhc2UibmlnaHQiOnJldHVybiB0fHwhKDAsQS5pc1N0b2NrMjRoU2Vzc2lvbklkKShpKTtjYXNlInByZV9tYXJrZXQiOmNhc2UicG9zdF9tYXJrZXQiOnJldHVybiB0fHwoMCxBLmlzUmVndWxhclNlc3Npb25JZCkoaSxlKTtkZWZhdWx0OnJldHVybiExfX1wcm9wZXJ0aWVzKCl7cmV0dXJuIHRoaXMuX21vZGVsLm1haW5TZXJpZXMoKS5wcm9wZXJ0aWVzKCkuY2hpbGRzKCkucHJlUG9zdE1hcmtldH1fdXBkYXRlUXVvdGVzKCl7Y29uc3QgZT10aGlzLl9xdW90ZXNQcm92aWRlci5xdW90ZXMoKS52YWx1ZSgpO251bGw9PT1lP3RoaXMuX2V4dHJhSG91cnNQcmljZT1udWxsOih2b2lkIDAhPT1lLmN1cnJlbnRfc2Vzc2lvbiYmKHRoaXMuX2N1cnJlbnRTZXNzaW9uPWUuY3VycmVudF9zZXNzaW9uKSx0aGlzLl9leHRyYUhvdXJzUHJpY2U9Im5pZ2h0Ij09PXRoaXMuX2N1cnJlbnRTZXNzaW9uP2UubnRjOmUucnRjKTtjb25zdCB0PXRoaXMuX21vZGVsLm1haW5TZXJpZXMoKS5wcm9wZXJ0aWVzKCkuY2hpbGRzKCkucHJlUG9zdE1hcmtldC5jaGlsZHMoKS52aXNpYmxlLnZhbHVlKCksaT10aGlzLl9tb2RlbC5wcm9wZXJ0aWVzKCkuY2hpbGRzKCkuc2NhbGVzUHJvcGVydGllcy5jaGlsZHMoKS5zaG93UHJlUG9zdE1hcmtldFByaWNlTGFiZWwudmFsdWUoKTt0aGlzLmNhbkJlVmlzaWJsZU9uU3ltYm9sQW5kSW50ZXJ2YWwoKSYmKHR8fGkpJiYodGhpcy51cGRhdGVBbGxWaWV3cygoMCx0bi5zb3VyY2VDaGFuZ2VFdmVudCkodGhpcy5pZCgpKSksdGhpcy5fbW9kZWwudXBkYXRlU291cmNlKHRoaXMpKX1fYXJlVmlld3NBdmFpbGFibGVGb3JQYW5lKGUpe3JldHVybiF0aGlzLl9tb2RlbC5pc0luUmVwbGF5KCkudmFsdWUoKSYmIXRoaXMuX21vZGVsLmlzU25hcHNob3QoKSYmdGhpcy5fbW9kZWwucGFuZUZvclNvdXJjZSh0aGlzLl9tb2RlbC5tYWluU2VyaWVzKCkpPT09ZX19dmFyIHhoPWkoOTczOTcpLE1oPWkoMjgxOTU2KTtmdW5jdGlvbiBJaChlLHQpe3JldHVybiBlLmNvZGU8dC5jb2RlPy0xOmUuY29kZT50LmNvZGU/MTowfWNsYXNzIExoe2NvbnN0cnVjdG9yKGUpe3RoaXMuX2lkc1RvSXRlbXM9bmV3IE1hcCx0aGlzLl9jb2Rlc1RvSXRlbXM9bmV3IE1hcCx0aGlzLl9jb252ZXJ0aWJsZUl0ZW1zPWU7Zm9yKGNvbnN0IHQgb2YgZSl0aGlzLl9pZHNUb0l0ZW1zLnNldCh0LmlkLHQpLHRoaXMuX2NvZGVzVG9JdGVtcy5zZXQodC5jb2RlLHQpfWNvbnZlcnRpYmxlKGUpe3JldHVybiB2b2lkIDAhPT10aGlzLl9pZHNUb0l0ZW1zLmdldChlKX1jdXJyZW5jeUNvZGVCeUlkKGUpe3JldHVybiB0aGlzLl9pZHNUb0l0ZW1zLmdldChlKT8uY29kZT8/bnVsbH1jdXJyZW5jeUlkQnlDb2RlKGUpe3JldHVybiB0aGlzLl9jb2Rlc1RvSXRlbXMuZ2V0KGUpPy5pZD8/bnVsbH1pdGVtKGUpe3JldHVybiB0aGlzLl9pZHNUb0l0ZW1zLmdldChlKT8/bnVsbH1zaXplKCl7cmV0dXJuIHRoaXMuX2NvbnZlcnRpYmxlSXRlbXMubGVuZ3RofWZpbHRlckNvbnZlcnRpYmxlKGUsdCl7Y29uc3QgaT10aGlzLl9jb252ZXJ0aWJsZUl0ZW1zLmZpbHRlcihmdW5jdGlvbihlLHQpe3JldHVybiBpPT4hZS5oYXMoaS5pZCkmJnQoaS5pZCl9KGUsdCkpO3JldHVybiBpLnNvcnQoSWgpLGl9CmdldEl0ZW1zKCl7cmV0dXJuIHRoaXMuX2NvbnZlcnRpYmxlSXRlbXMubWFwKChlPT5lLmlkKSl9fWNsYXNzIEFoe2NvbnN0cnVjdG9yKGUpe3RoaXMuX2FsbEdyb3Vwcz1uZXcgU2V0LHRoaXMuX2lkVG9OYW1lPW5ldyBNYXAsdGhpcy5faWRUb0Rlc2NyaXB0aW9uPW5ldyBNYXAsdGhpcy5fZ3JvdXBlZFVuaXRJZHM9bmV3IE1hcCx0aGlzLl9ncm91cGVkVW5pdHM9bmV3IE1hcCx0aGlzLl9ncm91cEJ5SWQ9bmV3IE1hcCx0aGlzLl9zaXplPTAsdGhpcy5fdW5pdHM9ZTtmb3IoY29uc3QgdCBpbiBlKWlmKGUuaGFzT3duUHJvcGVydHkodCkpe3RoaXMuX2FsbEdyb3Vwcy5hZGQodCksdGhpcy5fZ3JvdXBlZFVuaXRJZHMuc2V0KHQsbmV3IFNldChlW3RdLm1hcCgoZT0+ZS5pZCkpKSksdGhpcy5fZ3JvdXBlZFVuaXRzLnNldCh0LGVbdF0pO2Zvcihjb25zdCBpIG9mIGVbdF0pdGhpcy5fc2l6ZSsrLHRoaXMuX2lkVG9OYW1lLnNldChpLmlkLGkubmFtZSksdGhpcy5faWRUb0Rlc2NyaXB0aW9uLnNldChpLmlkLGkuZGVzY3JpcHRpb24pLHRoaXMuX2dyb3VwQnlJZC5zZXQoaS5pZCx0KX19dW5pdHNDaGFuZ2VkKGUpe3JldHVybiB0aGlzLl91bml0cyE9PWV9c2l6ZSgpe3JldHVybiB0aGlzLl9zaXplfW5hbWUoZSl7cmV0dXJuIHRoaXMuX2lkVG9OYW1lLmdldChlKXx8ZX1kZXNjcmlwdGlvbihlKXtyZXR1cm4gdGhpcy5faWRUb0Rlc2NyaXB0aW9uLmdldChlKXx8ZX11bml0R3JvdXBCeUlkKGUpe3JldHVybiB0aGlzLl9ncm91cEJ5SWQuZ2V0KGUpfHxudWxsfWFsbEdyb3Vwcygpe3JldHVybiBuZXcgU2V0KHRoaXMuX2FsbEdyb3Vwcyl9dW5pdHNCeUdyb3VwcyhlKXtjb25zdCB0PVtdO3JldHVybiBlLmZvckVhY2goKGU9Pntjb25zdCBpPXRoaXMuX2dyb3VwZWRVbml0cy5nZXQoZSk7dm9pZCAwIT09aSYmdC5wdXNoKHtuYW1lOmUsdW5pdHM6aX0pfSkpLHR9Y29udmVydGlibGUoZSx0KXtmb3IoY29uc3QgaSBvZiB0KXtjb25zdCB0PXRoaXMuX2dyb3VwZWRVbml0SWRzLmdldChpKTtpZih2b2lkIDAhPT10JiZ0LmhhcyhlKSlyZXR1cm4hMH1yZXR1cm4hMX19Y2xhc3Mga2h7Y29uc3RydWN0b3IoZSl7dGhpcy5fc291cmNlPW51bGwsdGhpcy5fc291cmNlUGFuZT1udWxsLHRoaXMuX2N1cnJlbnRUb29sU3VwcG9ydHNQaGFudG9tTW9kZT0hMSx0aGlzLl9tb2RlbD1lfWRlc3Ryb3koKXt0aGlzLl9zb3VyY2U9bnVsbCx0aGlzLl9zb3VyY2VQYW5lPW51bGx9c291cmNlKCl7cmV0dXJuIHRoaXMuX3NvdXJjZX1vblRvb2xDaGFuZ2VkKCl7dGhpcy5fcmVtb3ZlU291cmNlKCksdGhpcy5fY3VycmVudFRvb2xTdXBwb3J0c1BoYW50b21Nb2RlPSgwLG0uaXNMaW5lVG9vbE5hbWUpKFQudG9vbC52YWx1ZSgpKSYmKDAscmkuc3VwcG9ydHNQaGFudG9tTW9kZSkoVC50b29sLnZhbHVlKCkpfW9uQ3Vyc29yUG9zaXRpb25VcGRhdGVkKCl7aWYoIXRoaXMuX2N1cnJlbnRUb29sU3VwcG9ydHNQaGFudG9tTW9kZSlyZXR1cm47Y29uc3QgZT10aGlzLl9tb2RlbC5jcm9zc2hhaXJTb3VyY2UoKTtpZih0aGlzLl9zb3VyY2VQYW5lIT09ZS5wYW5lJiZ0aGlzLl9yZW1vdmVTb3VyY2UoKSxudWxsPT09ZS5wYW5lfHwhKDAsYS5pc051bWJlcikoZS5pbmRleCl8fCEoMCxhLmlzTnVtYmVyKShlLnByaWNlKSlyZXR1cm4gdm9pZCB0aGlzLl9yZW1vdmVTb3VyY2UoKTtjb25zdCB0PXtpbmRleDplLmluZGV4LHByaWNlOmUucHJpY2V9O251bGwhPT10aGlzLl9zb3VyY2U/dGhpcy5fc291cmNlLnNldFBvaW50KDAsdCk6KHRoaXMuX3NvdXJjZT10aGlzLl9tb2RlbC5jcmVhdGVMaW5lVG9vbCh7cGFuZTplLnBhbmUscG9pbnQ6dCxsaW5ldG9vbDpULnRvb2wudmFsdWUoKX0pLHRoaXMuX3NvdXJjZVBhbmU9ZS5wYW5lKX1fcmVtb3ZlU291cmNlKCl7bnVsbCE9PXRoaXMuX3NvdXJjZSYmKHRoaXMuX21vZGVsLnJlbW92ZVNvdXJjZSh0aGlzLl9zb3VyY2UpLHRoaXMuX3NvdXJjZT1udWxsLHRoaXMuX3NvdXJjZVBhbmU9bnVsbCl9fWNsYXNzIERoe2NvbnN0cnVjdG9yKGUpe3RoaXMuX2NvbnZlcnRpYmxlSXRlbXM9ZSx0aGlzLl9pZHNUb0l0ZW1zPW5ldyBNYXA7Zm9yKGNvbnN0IHQgb2YgZSl0aGlzLl9pZHNUb0l0ZW1zLnNldCh0LmlkLHQpO3RoaXMuX2lkc1RvTmFtZXM9bmV3IE1hcChBcnJheS5mcm9tKHRoaXMuX2lkc1RvSXRlbXMuZW50cmllcygpKS5tYXAoKChbZSx0XSk9PltlLHQubmFtZV0pKSl9Y29udmVydGlibGUoZSl7cmV0dXJuIHZvaWQgMCE9PXRoaXMuX2lkc1RvSXRlbXMuZ2V0KGUpfWl0ZW0oZSl7cmV0dXJuIHRoaXMuX2lkc1RvSXRlbXMuZ2V0KGUpPz9udWxsfXNpemUoKXtyZXR1cm4gdGhpcy5fY29udmVydGlibGVJdGVtcy5sZW5ndGh9bmFtZShlKXtyZXR1cm4gdGhpcy5faWRzVG9OYW1lcy5nZXQoZSk/P2V9aXNSZWFkeSgpe3JldHVybiB0aGlzLl9jb252ZXJ0aWJsZUl0ZW1zLmxlbmd0aD4wfWdldEl0ZW1zKCl7cmV0dXJuIHRoaXMuX2NvbnZlcnRpYmxlSXRlbXMubWFwKChlPT5lLmlkKSl9fWZ1bmN0aW9uIEVoKGUsdCxpKXtsZXQgcz1udWxsO2lmKGkubWV0cmljQ29udmVyc2lvbkVuYWJsZWQoKSYmKDAsSW8uaXNTeW1ib2xTb3VyY2UpKGUpKXtjb25zdCBlPWkuYXZhaWxhYmxlTWV0cmljcygpLG49dC5tZXRyaWMoZSk7bnVsbCE9PW4mJihzPW4uc2VsZWN0ZWRNZXRyaWNJZCl9cmV0dXJuIHN9dmFyIFJoPWkoNDkyMzgxKSxWaD1pKDE2ODI1OCk7Y29uc3QgQmg9KGUsdCk9PiEwLE5oPShlLHQpPT4hdC5pc1Bsb3RGb3JjZU92ZXJsYXkoZS5pZCksT2g9KGUsdCk9PnQuaXNQbG90Rm9yY2VPdmVybGF5KGUuaWQpO2Z1bmN0aW9uIFdoKGUsdCl7Y29uc3QgaT1lLnByaWNlU2NhbGUoKSxzPWUuZmlyc3RWYWx1ZSgpO2lmKG51bGw9PT1pfHxudWxsPT09cylyZXR1cm47Y29uc3Qgbj1lLmJhcnMoKS52YWx1ZUF0KHQpO2lmKG51bGw9PT1uKXJldHVybjtsZXQgcjtpZihudWxsIT09ZS5wcmljZVNvdXJjZSgpKXI9W2UuYmFyRnVuY3Rpb24oKShuKV07ZWxzZSBzd2l0Y2goZS5zdHlsZSgpKXtjYXNlIDEyOnI9WygwLGwuZW5zdXJlKShuWzJdKSwoMCxsLmVuc3VyZSkoblszXSldO2JyZWFrO2Nhc2UgMTY6Y2FzZSAyMToKcj1bKDAsbC5lbnN1cmUpKG5bMl0pLCgwLGwuZW5zdXJlKShuWzRdKSwoMCxsLmVuc3VyZSkoblszXSldO2JyZWFrO2RlZmF1bHQ6cj1bKDAsbC5lbnN1cmUpKG5bMV0pLCgwLGwuZW5zdXJlKShuWzJdKSwoMCxsLmVuc3VyZSkoblszXSksKDAsbC5lbnN1cmUpKG5bNF0pXX1yZXR1cm4gci5tYXAoKGU9Pih7eTppLnByaWNlVG9Db29yZGluYXRlKGUscykscHJpY2U6ZX0pKSl9dmFyIEZoOyFmdW5jdGlvbihlKXtlW2UuTWFnbmV0VG9sZXJhbmNlPTUwXT0iTWFnbmV0VG9sZXJhbmNlIn0oRmh8fChGaD17fSkpO2NsYXNzIEhoe2NvbnN0cnVjdG9yKCl7dGhpcy5fbGFzdFZhbHVlPW51bGx9YWxpZ24oZSx0LGkpe3RoaXMuX2xhc3RWYWx1ZT1udWxsO2xldCBzPWU7aWYoISgwLFpzLm1hZ25ldEVuYWJsZWQpKCkudmFsdWUoKSlyZXR1cm4gcztjb25zdCBuPWkubWFpbkRhdGFTb3VyY2UoKTtpZihudWxsPT09bilyZXR1cm4gcztjb25zdCByPW4ucHJpY2VTY2FsZSgpO2lmKCFyfHxyLmlzRW1wdHkoKSlyZXR1cm4gcztjb25zdCBvPW4ubW9kZWwoKS5tYWluU2VyaWVzKCksYT0oMCxacy5tYWduZXRTbmFwc1RvSW5kaWNhdG9ycykoKS52YWx1ZSgpO2lmKCFhJiZuIT09bylyZXR1cm4gcztjb25zdCBjPSgwLGwuZW5zdXJlKShuLmZpcnN0VmFsdWUoKSksaD1yLnByaWNlVG9Db29yZGluYXRlKGUsYyksZD1pLmNvbnRhaW5zTWFpblNlcmllcygpP2Z1bmN0aW9uKGUsdCl7cmV0dXJuIFdoKGUsdCl9KG8sdCk/P1tdOltdO2lmKGEpe2kubW9kZWwoKS5hbGxTdHVkaWVzKCEwKS5maWx0ZXIoKGU9PmUuaXNWaXNpYmxlKCkpKS5mb3JFYWNoKChlPT57Y29uc3Qgcz1mdW5jdGlvbihlLHQsaSl7Y29uc3Qgcz1lLm1vZGVsKCksbj1zLnBhbmVGb3JTb3VyY2UoZSkscj1zLm1haW5QYW5lKCksbz1zLm1haW5TZXJpZXMoKTtpZigoMCx0aS5pc092ZXJsYXlTdHVkeSkoZSkpcmV0dXJuIGk9PT1uP1doKGUsdCk6dm9pZCAwO2NvbnN0IGE9ZS5tZXRhSW5mbygpO2lmKCFhKXJldHVybjtjb25zdCBsPWUuZGF0YSgpLnZhbHVlQXQodCk7aWYobnVsbD09PWwpcmV0dXJuO2NvbnN0IGM9YS5oYXNGb3JjZU92ZXJsYXlQbG90cygpO2lmKCEoaT09PW58fGMmJmk9PT1yKSlyZXR1cm47Y29uc3QgaD1lLnByaWNlU2NhbGUoKSxkPW8ucHJpY2VTY2FsZSgpLHU9ZS5maXJzdFZhbHVlKCkscD1vLmZpcnN0VmFsdWUoKTtpZighaHx8IWR8fG51bGw9PT11fHxudWxsPT09cClyZXR1cm47bGV0IF8sbSxnO249PT1yPyhfPUJoLG09ZCxnPXApOmk9PT1uPyhfPU5oLG09aCxnPXUpOihfPU9oLG09ZCxnPXApO2NvbnN0IGY9YS5wbG90cyxTPWYuZmlsdGVyKCh0PT4hKDAsVmguaXNQbG90V2l0aFRlY2huaWNhbFZhbHVlcykodCkmJmUuaXNQbG90VmlzaWJsZUF0KHQuaWQsVmguU3R1ZHlQbG90RGlzcGxheVRhcmdldC5QYW5lKSYmXyh0LGEpKSksdj1bXTtmb3IoY29uc3QgZSBvZiBTKXtjb25zdCB0PWxbZi5pbmRleE9mKGUpKzFdO2lmKG51bGwhPXQpe2NvbnN0IGk9YS5pc1Bsb3RGb3JjZU92ZXJsYXkoZS5pZCkscz0oaT9kOmgpLnByaWNlVG9Db29yZGluYXRlKHQsaT9wOnUpO3YucHVzaCh7eTpzLHByaWNlOm0uY29vcmRpbmF0ZVRvUHJpY2UocyxnKX0pfX1yZXR1cm4gdn0oZSx0LGkpO3MmJmQucHVzaCguLi5zKX0pKX1pZigwPT09ZC5sZW5ndGgpcmV0dXJuIHM7ZC5zb3J0KCgoZSx0KT0+TWF0aC5hYnMoZS55LWgpLU1hdGguYWJzKHQueS1oKSkpO2NvbnN0IHU9ZFswXTtyZXR1cm4oKDAsWnMubWFnbmV0TW9kZSkoKS52YWx1ZSgpPT09UmguTWFnbmV0TW9kZS5TdHJvbmdNYWduZXR8fE1hdGguYWJzKHUueS1oKTw1MCkmJihzPXUucHJpY2UsdGhpcy5fbGFzdFZhbHVlPXMpLHN9bGFzdFZhbHVlKCl7cmV0dXJuIHRoaXMuX2xhc3RWYWx1ZX1yZXNldExhc3RWYWx1ZSgpe3RoaXMuX2xhc3RWYWx1ZT1udWxsfX1jbGFzcyB6aHtjb25zdHJ1Y3RvcihlKXt0aGlzLl9hcHBsaWVkVGltZUZyYW1lPW5ldyBkLldhdGNoZWRPYmplY3QobnVsbCksdGhpcy5fYXBwbGllZFRpbWVGcmFtZUluZm89bnVsbCx0aGlzLl9hcHBsaWVkVGltZUZyYW1lQ2hhbmdlZEJvdW5kPXRoaXMuX2FwcGxpZWRUaW1lRnJhbWVDaGFuZ2VkLmJpbmQodGhpcyksdGhpcy5fbW9kZWw9ZSxlLm1haW5TZXJpZXMoKS5kYXRhRXZlbnRzKCkuc2VyaWVzVGltZUZyYW1lKCkuc3Vic2NyaWJlKHRoaXMsdGhpcy5fb25TZXJpZXNUaW1lRnJhbWUpLHRoaXMuX2FwcGxpZWRUaW1lRnJhbWUuc3Vic2NyaWJlKHRoaXMuX2FwcGxpZWRUaW1lRnJhbWVDaGFuZ2VkQm91bmQpfWRlc3Ryb3koKXt0aGlzLl9hcHBsaWVkVGltZUZyYW1lLnVuc3Vic2NyaWJlKHRoaXMuX2FwcGxpZWRUaW1lRnJhbWVDaGFuZ2VkQm91bmQpLHRoaXMuX21vZGVsLnRpbWVTY2FsZSgpLmxvZ2ljYWxSYW5nZUNoYW5nZWQoKS51bnN1YnNjcmliZUFsbCh0aGlzKSx0aGlzLl9tb2RlbC5tYWluU2VyaWVzKCkuZGF0YUV2ZW50cygpLnNlcmllc1RpbWVGcmFtZSgpLnVuc3Vic2NyaWJlQWxsKHRoaXMpfWFwcGxpZWRUaW1lRnJhbWUoKXtyZXR1cm4gdGhpcy5fYXBwbGllZFRpbWVGcmFtZX1fYXBwbGllZFRpbWVGcmFtZUNoYW5nZWQoKXt0aGlzLl9tb2RlbC50aW1lU2NhbGUoKS5sb2dpY2FsUmFuZ2VDaGFuZ2VkKCkudW5zdWJzY3JpYmUodGhpcyx0aGlzLl9pbnZhbGlkYXRlQXBwbGllZFRpbWVGcmFtZSl9X29uU2VyaWVzVGltZUZyYW1lKGUsdCxpLHMpe2lmKHMpe2NvbnN0IGU9dGhpcy5fbW9kZWwudGltZVNjYWxlKCk7dGhpcy5fYXBwbGllZFRpbWVGcmFtZUluZm89e2xvZ2ljYWxSYW5nZTplLmxvZ2ljYWxSYW5nZSgpLGJhc2VJbmRleDplLmJhc2VJbmRleCgpfSxlLmxvZ2ljYWxSYW5nZUNoYW5nZWQoKS5zdWJzY3JpYmUodGhpcyx0aGlzLl9pbnZhbGlkYXRlQXBwbGllZFRpbWVGcmFtZSl9fV9pbnZhbGlkYXRlQXBwbGllZFRpbWVGcmFtZSgpe2lmKG51bGw9PT10aGlzLl9hcHBsaWVkVGltZUZyYW1lSW5mbylyZXR1cm4KO2NvbnN0IGU9dGhpcy5fbW9kZWwudGltZVNjYWxlKCksdD1lLmxvZ2ljYWxSYW5nZSgpLGk9ZS5iYXNlSW5kZXgoKSxzPXRoaXMuX2FwcGxpZWRUaW1lRnJhbWVJbmZvLmxvZ2ljYWxSYW5nZSxuPXRoaXMuX2FwcGxpZWRUaW1lRnJhbWVJbmZvLmJhc2VJbmRleDsobnVsbD09PXR8fG51bGw9PT1zfHxNYXRoLmFicyhpLXQubGVmdCgpLShuLXMubGVmdCgpKSk+PS4wMXx8TWF0aC5hYnMoaS10LnJpZ2h0KCktKG4tcy5yaWdodCgpKSk+PS4wMSkmJnRoaXMuX2FwcGxpZWRUaW1lRnJhbWUuc2V0VmFsdWUobnVsbCl9fXZhciBVaD1pKDcwNjg4NCksR2g9aSg5MzQzMDUpO2NsYXNzIGpoIGV4dGVuZHMgR2guQml0bWFwQ29vcmRpbmF0ZXNQYW5lUmVuZGVyZXJ7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMuX2RhdGE9bnVsbH1zZXREYXRhKGUpe3RoaXMuX2RhdGE9ZX1oaXRUZXN0KGUpe3JldHVybiBudWxsfV9kcmF3SW1wbChlKXtpZihudWxsPT09dGhpcy5fZGF0YSlyZXR1cm47Y29uc3R7Y29udGV4dDp0LHZlcnRpY2FsUGl4ZWxSYXRpbzppLGhvcml6b250YWxQaXhlbFJhdGlvOnMsYml0bWFwU2l6ZTpufT1lLHI9TWF0aC5tYXgoMSxNYXRoLmZsb29yKHMpKTt0LmxpbmVXaWR0aD1yO2NvbnN0IG89TWF0aC5jZWlsKG4uaGVpZ2h0KmkpLGE9TWF0aC5jZWlsKG4ud2lkdGgqcyk7aWYodC5saW5lQ2FwPSJidXR0Iix0aGlzLl9kYXRhLnZlcnRMaW5lc1Zpc2libGUpe3Quc3Ryb2tlU3R5bGU9dGhpcy5fZGF0YS52ZXJ0TGluZXNDb2xvciwoMCxEaS5zZXRMaW5lU3R5bGUpKHQsdGhpcy5fZGF0YS52ZXJ0TGluZVN0eWxlKTtmb3IoY29uc3QgZSBvZiB0aGlzLl9kYXRhLnRpbWVNYXJrcyl7Y29uc3QgaT1NYXRoLnJvdW5kKGUuY29vcmQqcyk7KDAsRGkuZHJhd1ZlcnRpY2FsTGluZSkodCxpLDAsbyl9fWlmKHRoaXMuX2RhdGEuaG9yekxpbmVzVmlzaWJsZSl7dC5zdHJva2VTdHlsZT10aGlzLl9kYXRhLmhvcnpMaW5lc0NvbG9yLCgwLERpLnNldExpbmVTdHlsZSkodCx0aGlzLl9kYXRhLmhvcnpMaW5lU3R5bGUpO2Zvcihjb25zdCBlIG9mIHRoaXMuX2RhdGEucHJpY2VNYXJrcyl7Y29uc3Qgcz1NYXRoLnJvdW5kKGUuY29vcmQqaSk7KDAsRGkuZHJhd0hvcml6b250YWxMaW5lKSh0LHMsMCxhKX19fX1jbGFzcyBxaHtjb25zdHJ1Y3RvcihlKXt0aGlzLl9yZW5kZXJlcj1uZXcgamgsdGhpcy5fcGFuZT1lfXVwZGF0ZSgpe31yZW5kZXJlcigpe2NvbnN0IGU9dGhpcy5fcGFuZS5kZWZhdWx0UHJpY2VTY2FsZSgpLHQ9dGhpcy5fcGFuZS5tb2RlbCgpLnRpbWVTY2FsZSgpO2lmKGUuaXNFbXB0eSgpfHx0LmlzRW1wdHkoKSlyZXR1cm4gbnVsbDtjb25zdCBpPXRoaXMuX3BhbmUubW9kZWwoKS5wcm9wZXJ0aWVzKCkuY2hpbGRzKCkucGFuZVByb3BlcnRpZXMuY2hpbGRzKCkscz10Lm1hcmtzKCksbj1pLmhvcnpHcmlkUHJvcGVydGllcy5jaGlsZHMoKSxyPWkudmVydEdyaWRQcm9wZXJ0aWVzLmNoaWxkcygpLG89e2hvcnpMaW5lc1Zpc2libGU6bi52aXNpYmxlLnZhbHVlKCksdmVydExpbmVzVmlzaWJsZTpyLnZpc2libGUudmFsdWUoKSxob3J6TGluZXNDb2xvcjpuLmNvbG9yLnZhbHVlKCksdmVydExpbmVzQ29sb3I6ci5jb2xvci52YWx1ZSgpLGhvcnpMaW5lU3R5bGU6bi5zdHlsZS52YWx1ZSgpLHZlcnRMaW5lU3R5bGU6ci5zdHlsZS52YWx1ZSgpLHByaWNlTWFya3M6ZS5tYXJrcygpLHRpbWVNYXJrczpudWxsIT09cz9zOltdfTtyZXR1cm4gdGhpcy5fcmVuZGVyZXIuc2V0RGF0YShvKSx0aGlzLl9yZW5kZXJlcn19Y2xhc3MgJGggZXh0ZW5kcyB1ci5EYXRhU291cmNle2NvbnN0cnVjdG9yKGUpe3N1cGVyKCksdGhpcy5fbW9kZWw9ZX1pZCgpe3JldHVybiJncmlkIn1wYW5lVmlld3MoZSl7cmV0dXJuIGUubW9kZSgpPT09TS5QYW5lTW9kZS5SZWd1bGFyP1tuZXcgcWgoZSldOm51bGx9bmFtZSgpe3JldHVybiJHcmlkIn1tb2RlbCgpe3JldHVybiB0aGlzLl9tb2RlbH1jb250ZXh0TWVudVN0YXROYW1lKCl7cmV0dXJuIkdyaWRDb250ZXh0TWVudSJ9fXZhciBZaD1pKDQ0MTgwNyksS2g9aSgyNjA2OSk7ZnVuY3Rpb24gWGgoZSl7Y29uc3QgdD1lO3QudmVydEdyaWRQcm9wZXJ0aWVzPXQudmVydEdyaWRQcm9wZXJ0aWVzPz8oMCxZaC5kZWZhdWx0KSh0LmdyaWRQcm9wZXJ0aWVzKSx0LmhvcnpHcmlkUHJvcGVydGllcz10LmhvcnpHcmlkUHJvcGVydGllcz8/KDAsWWguZGVmYXVsdCkodC5ncmlkUHJvcGVydGllcyk7Y29uc3QgaT10LnZlcnRHcmlkUHJvcGVydGllcyxzPXQuaG9yekdyaWRQcm9wZXJ0aWVzO3ZvaWQgMD09PWk/LnN0eWxlJiZ2b2lkIDA9PT1zPy5zdHlsZSYmKGkmJihpLnN0eWxlPUtoLkxJTkVTVFlMRV9TT0xJRCkscyYmKHMuc3R5bGU9S2guTElORVNUWUxFX1NPTElEKSk7Y29uc3Qgbj10LmdyaWRMaW5lc01vZGU7dm9pZCAwIT09biYmKGkmJihpLnZpc2libGU9ImJvdGgiPT09bnx8InZlcnQiPT09bikscyYmKHMudmlzaWJsZT0iYm90aCI9PT1ufHwiaG9yeiI9PT1uKSxkZWxldGUgdC5ncmlkTGluZXNNb2RlKX12YXIgWmg9aSgxMjE0NzkpO2NsYXNzIEpoIGV4dGVuZHMgeWguUHJpY2VBeGlzVmlld3tjb25zdHJ1Y3RvcihlLHQsaSxzKXtzdXBlcigpLHRoaXMuX3NvdXJjZT1lLHRoaXMuX3BhbmU9dCx0aGlzLl9wcmljZVNjYWxlPWksdGhpcy5fcHJpY2VQcm92aWRlcj1zLHRoaXMuX3Byb3BlcnRpZXM9ZS5tb2RlbCgpLnByb3BlcnRpZXMoKS5jaGlsZHMoKS5zY2FsZXNQcm9wZXJ0aWVzfXNldEhpdFRlc3REYXRhKGUpe3RoaXMuX2hpdFRlc3REYXRhPWV9c2V0WENvb3JkKGUpe3RoaXMuX3hDb29yZD1lfWlnbm9yZUFsaWdubWVudCgpe3JldHVybiEwfWFkZGl0aW9uYWxQYWRkaW5nKGUpe3JldHVybiAwfV91cGRhdGVSZW5kZXJlckRhdGEoZSx0LGkpe2lmKGUudmlzaWJsZT0hMSx0LnZpc2libGU9ITEsdGhpcy5fcGFuZS5tb2RlbCgpLmNoYXJ0RmxvYXRpbmdUb29sdGlwVmlzaWJsZSgpKXJldHVybjtjb25zdCBzPXRoaXMuX3ByaWNlU2NhbGUsbj1zLm1haW5Tb3VyY2UoKSxyPW51bGwhPT1uP24uZmlyc3RWYWx1ZSgpOm51bGwKO2lmKCF0aGlzLl9pc1Zpc2libGUoKXx8cy5pc0VtcHR5KCl8fG51bGw9PT1yKXJldHVybjtjb25zdCBvPXRoaXMuX2N1cnJlbnRQcmljZShzKTtpZihudWxsPT09bylyZXR1cm47aS5iYWNrZ3JvdW5kPSgwLCRpLnJlc2V0VHJhbnNwYXJlbmN5KSh0aGlzLl9iZ0NvbG9yKCkpLGkudGV4dENvbG9yPXRoaXMuZ2VuZXJhdGVUZXh0Q29sb3IoaS5iYWNrZ3JvdW5kKTtjb25zdCBhPXRoaXMuYWRkaXRpb25hbFBhZGRpbmcocy5mb250U2l6ZSgpKTtpLmFkZGl0aW9uYWxQYWRkaW5nVG9wPWEsaS5hZGRpdGlvbmFsUGFkZGluZ0JvdHRvbT1hLGkuY29vcmRpbmF0ZT1zLnByaWNlVG9Db29yZGluYXRlKG8sciksZS50ZXh0PXMuZm9ybWF0UHJpY2UobyxyKSxlLnZpc2libGU9ITAsdC52aXNpYmxlPSEwLHQuaGl0VGVzdERhdGE9dGhpcy5faGl0VGVzdERhdGEsdC54Q29vcmQ9dGhpcy5feENvb3JkfV9jdXJyZW50UHJpY2UoZSl7cmV0dXJuIHRoaXMuX3ByaWNlUHJvdmlkZXIoZSl9fWNsYXNzIFFoIGV4dGVuZHMgSmh7YWRkaXRpb25hbFBhZGRpbmcoZSl7cmV0dXJuIDIvMTIqZX1faXNWaXNpYmxlKCl7Y29uc3QgZT10aGlzLl9zb3VyY2UubG9ja2VkUGFuZSgpO3JldHVybiB0aGlzLl9wcm9wZXJ0aWVzLmNoaWxkcygpLnNob3dQcmljZVNjYWxlQ3Jvc3NoYWlyTGFiZWwudmFsdWUoKSYmKHRoaXMuX3NvdXJjZS52aXNpYmxlfHxudWxsIT09ZSkmJihlPz90aGlzLl9zb3VyY2UucGFuZSk9PT10aGlzLl9wYW5lfV9jdXJyZW50UHJpY2UoZSl7Y29uc3QgdD1ULmNyb3NzaGFpckxvY2sudmFsdWUoKTtyZXR1cm4gbnVsbCE9PXQmJjE9PT10LnR5cGU/dGhpcy5fcGFuZT09PXRoaXMuX3NvdXJjZS5sb2NrZWRQYW5lKCk/dC5wcmljZTpudWxsOnN1cGVyLl9jdXJyZW50UHJpY2UoZSl9X2JnQ29sb3IoKXtjb25zdCBlPXRoaXMuX3Byb3BlcnRpZXMuY2hpbGRzKCk7cmV0dXJuIHRoaXMuX3NvdXJjZS5tb2RlbCgpLmRhcmsoKS52YWx1ZSgpP2UuY3Jvc3NoYWlyTGFiZWxCZ0NvbG9yRGFyay52YWx1ZSgpOmUuY3Jvc3NoYWlyTGFiZWxCZ0NvbG9yTGlnaHQudmFsdWUoKX1fdXBkYXRlUmVuZGVyZXJEYXRhKGUsdCxpKXtjb25zdCBzPXQudmlzaWJsZTtzdXBlci5fdXBkYXRlUmVuZGVyZXJEYXRhKGUsdCxpKSx0aGlzLl9zb3VyY2UuaXNIb3ZlcmVkKCk/dC5iYWNrZ3JvdW5nPXRoaXMuX3NvdXJjZS5tb2RlbCgpLmRhcmsoKS52YWx1ZSgpP1hvLmNvbG9yc1BhbGV0dGVbImNvbG9yLWNvbGQtZ3JheS02MDAiXTpYby5jb2xvcnNQYWxldHRlWyJjb2xvci1jb2xkLWdyYXktNjUwIl06dC5iYWNrZ3JvdW5nPXZvaWQgMCxzfHwodC52aXNpYmxlPXMpfX1jbGFzcyBlZCBleHRlbmRzIEpoe19pc1Zpc2libGUoKXtyZXR1cm4gbnVsbCE9PXRoaXMuX3NvdXJjZS5tZWFzdXJlUGFuZSgpLnZhbHVlKCl9X2JnQ29sb3IoKXtyZXR1cm4gdGhpcy5fcHJvcGVydGllcy5jaGlsZHMoKS5heGlzTGluZVRvb2xMYWJlbEJhY2tncm91bmRDb2xvckNvbW1vbi52YWx1ZSgpfX12YXIgdGQ9aSg0MjM5MDApLGlkPWkoODYyOTUxKSxzZD1pKDU4NjE2NSksbmQ9aSg1NTg0NTUpLHJkPWkoODIyNzk1KSxvZD1pKDcyMTA0MiksYWQ9aSg2MjE5MjYpO2Z1bmN0aW9uIGxkKGUsdCl7Y29uc3R7ZGF0YVNvdXJjZTpzLHk6bixkaXNhYmxlZDpyLGFuYWx5dGljc09wdDp7bWV0aG9kOm8sc291cmNlOmEsYWN0aW9uU291cmNlOmwsZ2FPcmlnaW46Y319PXQsaD1zLnByaWNlU2NhbGUoKSxkPXMuZmlyc3RWYWx1ZSgpO2lmKG51bGw9PT1ofHxoLmlzUGVyY2VudGFnZSgpfHxoLmlzSW5kZXhlZFRvMTAwKCl8fG51bGw9PT1kKXJldHVybiBudWxsO2NvbnN0IHU9aC5jb29yZGluYXRlVG9QcmljZShuLGQpO2lmKG51bGw9PT11KXJldHVybiBudWxsO2NvbnN0IF89cy5mb3JtYXR0ZXIoKS5mb3JtYXQodSksbT0oMCxJby5pc1N5bWJvbFNvdXJjZSkocyk/cy5zeW1ib2xUaXRsZShjby5UaXRsZURpc3BsYXlUYXJnZXQuU3RhdHVzTGluZSwhMCwhMCk6cy50aXRsZShjby5UaXRsZURpc3BsYXlUYXJnZXQuU3RhdHVzTGluZSwhMCx7fSwhMCksZz17bGFiZWw6KDAsc2QuaGFzVXN1YWxBbGVydFBsb3RzKShzKT9wLnQobnVsbCx7cmVwbGFjZTp7dGl0bGU6bSxwcmljZTpffX0saSg3MTU4MzgpKTpwLnQobnVsbCx7cmVwbGFjZTp7dGl0bGU6bX19LGkoOTcxODgpKSxzdGF0TmFtZToiQWRkQWxlcnRPblNvdXJjZSIsaWNvbklkOiJBbGVydC5BZGQiLHNob3J0Y3V0SGludDooMCxLLmh1bWFuUmVhZGFibGVIYXNoKShLLk1vZGlmaWVycy5BbHQrNjUpLGRpc2FibGVkOnJ9O3JldHVybiByfHwoZy5vbkV4ZWN1dGU9YXN5bmMoKT0+e2NvbnN0IHQ9ZS5tYWluU2VyaWVzKCk7KDAsb2QudHJhY2tBbGVydENyZWF0aW9uQXR0ZW1wdCkodC5zeW1ib2woKSxvLGEpOygwLGFkLnJ1bk9yU2lnbmluV2l0aEZlYXR1cmUpKCgoKT0+KGFzeW5jKCk9Pntjb25zdCB0PXtkYXRhU291cmNlSHViOmUubW9kZWwoKSxzaWxlbnQ6ITAsYWN0aW9uU291cmNlOmwsbWV0aG9kOm8sc291cmNlOmF9OygwLHJpLmlzTGluZVRvb2wpKHMpP3QuZHJhd2luZz1zOih0LnNlcmllcz1zLHQudmFsdWU9KDAsbmQucm91bmRBbGVydFZhbHVlVXNpbmdQcmVjaXNpb24pKHMsdSkpLCgwLHJkLmludm9rZUFsZXJ0RWRpdG9yKSh0KX0pKCkpLHtmZWF0dXJlOiJhbGVydCIsc291cmNlOmN9KX0pLG5ldyBhcy5BY3Rpb25XaXRoU3RhbmRhcmRJY29uKHthY3Rpb25JZDoiQWxlcnQuQWRkIixvcHRpb25zOmd9KX12YXIgY2QsaGQ9aSg5MzcwOTgpLGRkPWkoNTQzNTcwKTtjbGFzcyB1ZCBleHRlbmRzIG1oLlBhbmVQcmljZUF4aXNWaWV3e2NvbnN0cnVjdG9yKGUsdCxpLHMsbil7c3VwZXIoZSx0LHMpLHRoaXMuX2Nyb3NzSGFpck1lbnVDYWNoZWRTdGF0ZT1udWxsLHRoaXMuX2hhc0FjdGlvbnM9ITEsdGhpcy5fZ2FPcmlnaW49IkNIIG1lbnUiLHRoaXMuX2Nyb3NzaGFpclByaWNlQXhpc1ZpZXc9ZSxlLnNldFBhbmVSZW5kZXJlckxhYmVsSWNvbigwKSx0aGlzLl9jcm9zc2hhaXI9dCx0aGlzLl9zY2FsZT1pLHRoaXMuX29wdGlvbnM9bix0aGlzLl91cGRhdGVHYU9yaWdpbigpLAp0aGlzLl9icm9rZXJTZXJ2aWNlU3Bhd249dGhpcy5fb3B0aW9ucy5leHRlcm5hbFNlcnZpY2VzPy50cmFkaW5nQnJva2VyU2VydmljZS5zcGF3bigpLHRoaXMuX2Jyb2tlclNlcnZpY2VTcGF3bj8uc3Vic2NyaWJlKCgoKT0+e3RoaXMuX2Nyb3NzSGFpck1lbnVDYWNoZWRTdGF0ZT1udWxsfSkse29uY2U6ITB9KX1kZXN0cm95KCl7dGhpcy5fYnJva2VyU2VydmljZVNwYXduPy5kZXN0cm95KCl9X3VwZGF0ZUltcGwoZSl7Y29uc3QgdD10aGlzLl9jcm9zc2hhaXIueSxpPXRoaXMuX2NoYXJ0TW9kZWwucHJvcGVydGllcygpLmNoaWxkcygpLnNjYWxlc1Byb3BlcnRpZXMuY2hpbGRzKCkuZm9udFNpemUudmFsdWUoKSxuPXRoaXMuX2NoYXJ0TW9kZWwudGltZVNjYWxlKCkud2lkdGgoKSxyPXRoaXMuX2Nyb3NzaGFpci5tb2RlbCgpLnByaWNlQXhpc1JlbmRlcmVyT3B0aW9ucygpLG89aSsyKnRoaXMuX2Nyb3NzaGFpclByaWNlQXhpc1ZpZXcuYWRkaXRpb25hbFBhZGRpbmcoaSkrci5wYWRkaW5nVG9wK3IucGFkZGluZ0JvdHRvbSxhPW8sbD10LW8vMixjPXRoaXMuX2Nyb3NzaGFpci5wYW5lLGg9dGhpcy5fbWFpbkRhdGFTb3VyY2VPblBhbmUoKSxkPWgmJmguc3ltYm9sU291cmNlKCksdT0hIWQmJihkLmlzQ29udmVydGVkVG9PdGhlckN1cnJlbmN5KCl8fGQuaXNDb252ZXJ0ZWRUb090aGVyVW5pdCgpKTtpZih0aGlzLl91cGRhdGVHYU9yaWdpbigpLG51bGwhPT1oKXtjb25zdCBlPWZ1bmN0aW9uKGUpe2NvbnN0IHQ9ZS5wcmljZVNjYWxlKCk7cmV0dXJuIHQ/Lm1vZGUoKT8/bnVsbH0oaCksdD1oLmlkRm9yQWxlcnQoKSxpPXRoaXMuX2NoYXJ0TW9kZWwuaXNJblJlcGxheSgpLnZhbHVlKCksbj10aGlzLl9jcm9zc0hhaXJNZW51Q2FjaGVkU3RhdGUscj0oMCxxLmlzRmVhdHVyZXNldEVuYWJsZWQpKCJjaGFydF9jcm9zc2hhaXJfbWVudSIpO251bGwhPT1uJiZuLmlkPT09dCYmKDAscy5kZWZhdWx0KShuLnByaWNlU2NhbGUsZSkmJm4uaXNDdXJyZW5jeU9yVW5pdENvbnZlcnRlZD09PXUmJm4uaXNJblJlcGxheT09PWkmJm4uaXNNZW51RW5hYmxlZD09PXJ8fCh0aGlzLl91cGRhdGVUb29sdGlwQW5kQWN0aW9uc0F2YWlsYWJpbGl0eShoLGUsdSksdGhpcy5fY3Jvc3NIYWlyTWVudUNhY2hlZFN0YXRlPXtpZDp0LHByaWNlU2NhbGU6ZSxpc0N1cnJlbmN5T3JVbml0Q29udmVydGVkOnUsaXNJblJlcGxheTppLGlzTWVudUVuYWJsZWQ6cn0pfW51bGwhPT1oJiYoMCxJby5pc1N5bWJvbFNvdXJjZSkoaCkmJmguc3ltYm9sKCk7Y29uc3QgcD1udWxsIT09YyYmKGMubWF4aW1pemVkKCkudmFsdWUoKXx8IWMuY29sbGFwc2VkKCkudmFsdWUoKSkmJnRoaXMuX2hhc0FjdGlvbnM7dGhpcy5fY3Jvc3NoYWlyUHJpY2VBeGlzVmlldy5zZXRQYW5lTGFiZWxWaXNpYmxlKHApO2NvbnN0IF89dGhpcy5fcG9zaXRpb24oKTtpZihudWxsIT09Xyl7Y29uc3QgZT0wLHQ9bi1hLGk9Qm9vbGVhbihkZC5zaG93UGx1c0J1dHRvbk9uQ3Vyc29yLnZhbHVlKCkpLHM9aT90aGlzLl9jcm9zc2hhaXIueDp2b2lkIDAscj12b2lkIDAhPT1zP3MtYS8yOiJsZWZ0Ij09PV8/ZTp0LGM9dm9pZCAwIT09cz9zK2EvMjoibGVmdCI9PT1fP2UrYTp0K2EsaD0oMCxQdC5ib3gpKG5ldyBQdC5Qb2ludChyLGwpLG5ldyBQdC5Qb2ludChjLGwrbykpO3RoaXMuX2RhdGE9e2l0ZW1Cb3g6aCxjbGlja0hhbmRsZXI6dGhpcy5faGFuZGxlQ2xpY2suYmluZCh0aGlzLF8saSxoKX0sdGhpcy5fY3Jvc3NoYWlyUHJpY2VBeGlzVmlldy5zZXRIaXRUZXN0RGF0YSh0aGlzLl9kYXRhKSx0aGlzLl9jcm9zc2hhaXJQcmljZUF4aXNWaWV3LnNldFhDb29yZChzKX1zdXBlci5fdXBkYXRlSW1wbChlKX1fcHJpY2VTY2FsZSgpe3JldHVybiB0aGlzLl9zY2FsZX1fdXBkYXRlR2FPcmlnaW4oKXt0aGlzLl9nYU9yaWdpbj1Cb29sZWFuKGRkLnNob3dQbHVzQnV0dG9uT25DdXJzb3IudmFsdWUoKSk/IkNIIG1lbnUgY3Vyc29yIjoiQ0ggbWVudSJ9X3VwZGF0ZVRvb2x0aXBBbmRBY3Rpb25zQXZhaWxhYmlsaXR5KGUsdCxpKXt0aGlzLl9oYXNBY3Rpb25zPSExO2NvbnN0IHM9dGhpcy5fY2hhcnRNb2RlbC5pc0luUmVwbGF5KCkudmFsdWUoKSxuPXMmJiF0aGlzLl9vcHRpb25zLmV4dGVybmFsU2VydmljZXM/LnRyYWRpbmdGZWF0dXJlRmxhZ3NTZXJ2aWNlLnZhbHVlKCk/LmlzTmV3UmVwbGF5U3VwcG9ydGluZ1BsYXRmb3JtKCkscj0haSYmZS5hbGVydENyZWF0aW9uQXZhaWxhYmxlKCkudmFsdWUoKSYmIXMsbz0hdGhpcy5fb3B0aW9ucy5kaXNhYmxlRHJhd0hvcml6TGluZU1lbnVBY3Rpb24sYT0haSYmZT09PXRoaXMuX2NoYXJ0TW9kZWwubWFpblNlcmllcygpJiZudWxsIT10aGlzLl9vcHRpb25zLmV4dGVybmFsU2VydmljZXM/LnRyYWRpbmdCcm9rZXJTZXJ2aWNlLnZhbHVlKCkmJiFuO3RoaXMuX2hhc0FjdGlvbnM9YXx8cnx8b31faGFuZGxlQ2xpY2soZSx0LGkscyxuKXtpZigoMCxxLmlzRmVhdHVyZXNldEVuYWJsZWQpKCJ3aWRnZXQiKSYmKDAscS5pc0ZlYXR1cmVzZXRFbmFibGVkKSgicmVmZXJyYWxfcHJvZ3JhbV9mb3Jfd2lkZ2V0X293bmVycyIpKXJldHVybiB2b2lkKDAsJG4uc2hvd0dvVG9UcmFkaW5nVmlld1JlZmVycmFsRGlhbG9nKSh7ZmVhdHVyZToicGx1c01lbnUifSk7KDAsTXQudHJhY2tFdmVudCkodGhpcy5fZ2FPcmlnaW4sImNsaWNrIik7Y29uc3Qgcj10aGlzLl9tYWluRGF0YVNvdXJjZU9uUGFuZSgpLG89bnVsbCE9PXImJigwLElvLmlzU3ltYm9sU291cmNlKShyKT9yLnN5bWJvbCgpOm51bGwsYT17cGFnZVg6bi5wYWdlWCxwYWdlWTpuLnBhZ2VZLGNsaWVudFg6bi5jbGllbnRYLGNsaWVudFk6bi5jbGllbnRZLHNjcmVlblg6bi5zY3JlZW5YLHNjcmVlblk6bi5zY3JlZW5ZLHByaWNlOnRoaXMuX2Nyb3NzaGFpci5wcmljZSxzeW1ib2w6b307JC5lbWl0KCJvblBsdXNDbGljayIsYSksdGhpcy5fZ2V0TWVudUl0ZW1zKGUpLnRoZW4oKHM9PntzLmxlbmd0aD4wJiZ0aGlzLl9zaG93Q29udGV4dE1lbnUocyx0LGksbixlKX0pKX1hc3luYyBfZ2V0TWVudUl0ZW1zKGUpewpjb25zdCB0PXRoaXMuX2NoYXJ0TW9kZWwubWFpblNlcmllcygpLGk9dC5zeW1ib2xJbmZvKCkscz10aGlzLl9vcHRpb25zLmRpc2FibGVUcmFkaW5nTWVudUFjdGlvbnM/bnVsbDp0aGlzLl9vcHRpb25zLmV4dGVybmFsU2VydmljZXM/LnRyYWRpbmdDaGFydENvbnRleHRNZW51U2VydmljZS52YWx1ZSgpPz9udWxsLG49KDAsbC5lbnN1cmVOb3ROdWxsKSh0aGlzLl9jcm9zc2hhaXIucGFuZSkubWFpbkRhdGFTb3VyY2UoKSxyPXRoaXMuX2NoYXJ0TW9kZWwuaXNJblJlcGxheSgpLnZhbHVlKCksbz0hcixhPXImJiF0aGlzLl9vcHRpb25zLmV4dGVybmFsU2VydmljZXM/LnRyYWRpbmdGZWF0dXJlRmxhZ3NTZXJ2aWNlLnZhbHVlKCk/LmlzTmV3UmVwbGF5U3VwcG9ydGluZ1BsYXRmb3JtKCksYz1uPT09dCYmISgwLGhkLmlzTm9uVHJhZGFibGVTeW1ib2xUeXBlKShpPy50eXBlKSYmbnVsbCE9PXMmJiFhLGg9bz90aGlzLl9jcmVhdGVBbGVydE1lbnVJdGVtcyhlKTpQcm9taXNlLnJlc29sdmUoW10pLGQ9Yz90aGlzLl9jcmVhdGVUcmFkaW5nTWVudUl0ZW1zKCk6UHJvbWlzZS5yZXNvbHZlKFtdKSx1PXRoaXMuX2NyZWF0ZUFkZEhvcml6b250YWxMaW5lTWVudUl0ZW0oKTtyZXR1cm4gUHJvbWlzZS5hbGwoW2gsZCx1XSkudGhlbigoKFtlLHQsaV0pPT57dC5sZW5ndGg+MCYmKDAsbC5lbnN1cmVOb3ROdWxsKShzKS50cmFja0V2ZW50KHRoaXMuX2dhT3JpZ2luLCJjbGljayIpO2NvbnN0IG49ZS5sZW5ndGg+MCYmdC5sZW5ndGg+MDtyZXR1cm5bLi4uZSxuP25ldyBlcy5TZXBhcmF0b3I6bnVsbCwuLi50LChlLmxlbmd0aD4wfHx0Lmxlbmd0aD4wKSYmaS5sZW5ndGg+MD9uZXcgZXMuU2VwYXJhdG9yOm51bGwsLi4uaV0uZmlsdGVyKChlPT5udWxsIT09ZSkpfSkpfV9jcmVhdGVBbGVydE1lbnVJdGVtcyhlKXtpZihudWxsPT09dGhpcy5fY3Jvc3NoYWlyLnBhbmUpcmV0dXJuIFByb21pc2UucmVzb2x2ZShbXSk7Y29uc3QgdD10aGlzLl9jaGFydE1vZGVsLm1haW5TZXJpZXMoKS5pbnRlcnZhbCgpO2lmKHguSW50ZXJ2YWwuaXNUaWNrcyh0KSlyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKFtdKTtjb25zdCBpPXRoaXMuX2Nyb3NzaGFpci5wYW5lLm1haW5EYXRhU291cmNlKCk7aWYobnVsbD09PWkpcmV0dXJuIFByb21pc2UucmVzb2x2ZShbXSk7Y29uc3Qgcz1pLnN5bWJvbFNvdXJjZSgpO2lmKCEhcyYmKHMuaXNDb252ZXJ0ZWRUb090aGVyQ3VycmVuY3koKXx8cy5pc0NvbnZlcnRlZFRvT3RoZXJVbml0KCkpKXJldHVybiBQcm9taXNlLnJlc29sdmUoW10pO2NvbnN0IG49dGhpcy5fY3Jvc3NoYWlyLnk7aWYodGhpcy5fb3B0aW9ucy5tZW51Rm9yTWFpblNvdXJjZU9ubHkpe2lmKGkuYWxlcnRDcmVhdGlvbkF2YWlsYWJsZSgpLnZhbHVlKCkmJmkuaXNWaXNpYmxlKCkpe2NvbnN0IGU9bGQodGhpcy5fY2hhcnRNb2RlbC51bmRvTW9kZWwoKSx0aGlzLl9nZXRBZGRBbGVydEFjdGlvbk9wdGlvbnMoaSxuLCExKSk7cmV0dXJuIFByb21pc2UucmVzb2x2ZShudWxsPT09ZT9bXTpbZV0pfXJldHVybiBQcm9taXNlLnJlc29sdmUoW10pfWNvbnN0IHI9KDAsbC5lbnN1cmVOb3ROdWxsKSh0aGlzLl9jcm9zc2hhaXIucGFuZSkuc291cmNlc0J5R3JvdXAoKTtsZXQgbz0oImxlZnQiPT09ZT9yLmxlZnRQcmljZVNjYWxlc1NvdXJjZXMoKTpyLnJpZ2h0UHJpY2VTY2FsZXNTb3VyY2VzKCkpLmZpbHRlcigoZT0+KDAsSHMuaXNQcmljZURhdGFTb3VyY2UpKGUpKSkuZmlsdGVyKChlPT5lLmFsZXJ0Q3JlYXRpb25BdmFpbGFibGUoKS52YWx1ZSgpJiZlLmlzVmlzaWJsZSgpKSk7cmV0dXJuIG8ucmV2ZXJzZSgpLG89KDAsZy5tb3ZlVG9IZWFkKShvLHRoaXMuX2NoYXJ0TW9kZWwubWFpblNlcmllcygpKSwoMCxpZC5maWx0ZXJBY2Nlc3NpYmxlRGF0YVNvdXJjZXMpKG8pLnRoZW4oKGU9Pntjb25zdCB0PW5ldyBTZXQoZSksaT1bXTtmb3IoY29uc3QgZSBvZiBvKXtjb25zdCBzPWxkKHRoaXMuX2NoYXJ0TW9kZWwudW5kb01vZGVsKCksdGhpcy5fZ2V0QWRkQWxlcnRBY3Rpb25PcHRpb25zKGUsbiwhdC5oYXMoZSkpKTtudWxsIT09cyYmaS5wdXNoKHMpfXJldHVybiBpfSkpfV9nZXRBZGRBbGVydEFjdGlvbk9wdGlvbnMoZSx0LGkpe3JldHVybntkYXRhU291cmNlOmUseTp0LGRpc2FibGVkOmksYW5hbHl0aWNzT3B0OnttZXRob2Q6ImNyb3NzaGFpcl9tZW51Iixzb3VyY2U6ImNoYXJ0IixhY3Rpb25Tb3VyY2U6ImNyb3NzaGFpcl9tZW51IixnYU9yaWdpbjp0aGlzLl9nYU9yaWdpbn19fV9jcmVhdGVUcmFkaW5nTWVudUl0ZW1zKCl7Y29uc3QgZT10aGlzLl9jcm9zc2hhaXIueSx0PXRoaXMuX29wdGlvbnMuZXh0ZXJuYWxTZXJ2aWNlcz8udHJhZGluZ0NoYXJ0Q29udGV4dE1lbnVTZXJ2aWNlLnZhbHVlKCk/P251bGw7aWYobnVsbD09PXR8fG51bGw9PT10aGlzLl9jcm9zc2hhaXIucGFuZSlyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKFtdKTtjb25zdCBpPXRoaXMuX2Nyb3NzaGFpci5wYW5lLm1haW5EYXRhU291cmNlKCk7aWYobnVsbD09PWkpcmV0dXJuIFByb21pc2UucmVzb2x2ZShbXSk7Y29uc3Qgcz1pLnN5bWJvbFNvdXJjZSgpO3JldHVybiEhcyYmKHMuaXNDb252ZXJ0ZWRUb090aGVyQ3VycmVuY3koKXx8cy5pc0NvbnZlcnRlZFRvT3RoZXJVbml0KCkpP1Byb21pc2UucmVzb2x2ZShbXSk6KDAsdGQuY3JlYXRlVHJhZGVDb250ZXh0KSh7c2VyaWVzOmksaXNNYWluQ2hhcnQ6ITEseTplfSkudGhlbigoZT0+dC5nZXRDaGFydENvbnRleHRNZW51QWN0aW9ucyhlLHtvbmx5TWFpbkFjdGlvbnM6ITAsaGlkZU5vdEV4ZWN1dGFibGVBY3Rpb246ITAsZ2FPcmlnaW46dGhpcy5fZ2FPcmlnaW59KSkpfWFzeW5jIF9jcmVhdGVBZGRIb3Jpem9udGFsTGluZU1lbnVJdGVtKCl7aWYobnVsbD09PXRoaXMuX2Nyb3NzaGFpci5wYW5lKXJldHVybltdO2NvbnN0IGU9dGhpcy5fY3Jvc3NoYWlyLnBhbmUubWFpbkRhdGFTb3VyY2UoKTtpZihudWxsPT09ZSlyZXR1cm5bXTtjb25zdCB0PXRoaXMuX2Nyb3NzaGFpci55LGk9YXdhaXQgdGhpcy5fZ2V0QWN0aW9uQWRkSG9yaXpvbnRhbExpbmUoe3NvdXJjZTplLHk6dCxwYW5lOnRoaXMuX2Nyb3NzaGFpci5wYW5lfSkKO3JldHVybiBudWxsPT09aT9bXTpbaV19YXN5bmMgX2dldEFjdGlvbkFkZEhvcml6b250YWxMaW5lKGUpe2lmKHRoaXMuX29wdGlvbnMuZGlzYWJsZURyYXdIb3JpekxpbmVNZW51QWN0aW9uKXJldHVybiBudWxsO2NvbnN0e3NvdXJjZTp0LHk6aSxwYW5lOnN9PWUsbj10aGlzLl9nZXRWYWx1ZSh0LGkpO2lmKG51bGw9PT1uKXJldHVybiBudWxsO2NvbnN0e2NyZWF0ZURyYXdIb3Jpem9udGFsTGluZUFjdGlvbjpyfT1hd2FpdCgwLHNzLmFjdGlvbnNQcm92aWRlck1vZHVsZSkoKTtyZXR1cm4gcih0aGlzLl9jaGFydE1vZGVsLnVuZG9Nb2RlbCgpLHMse2luZGV4OjAscHJpY2U6bn0pfV9nZXRWYWx1ZShlLHQpe2NvbnN0IGk9ZS5wcmljZVNjYWxlKCkscz1lLmZpcnN0VmFsdWUoKTtyZXR1cm4gbnVsbD09PWl8fG51bGw9PT1zP251bGw6aS5jb29yZGluYXRlVG9QcmljZSh0LHMpfV9zaG93Q29udGV4dE1lbnUoZSx0LGkscyxuKXtjb25zdCByPSJsZWZ0Ij09PW47c2V0VGltZW91dCgoKCk9Pntjb25zdCBuPXMuY2xpZW50WC1zLmxvY2FsWCxvPXMuY2xpZW50WS1zLmxvY2FsWSxhPWkubWluLngrbixjPWkubWF4LngrbixoPWkubWluLnkrbyxkPWMtYSx1PWkubWF4Lnkrby1oLHA9dD9ULmNyb3NzaGFpckxvY2sudmFsdWUoKTp2b2lkIDA7aWYodm9pZCAwIT09cCl7Y29uc3QgZT0oMCxsLmVuc3VyZU5vdE51bGwpKHRoaXMuX2NoYXJ0TW9kZWwudGltZVNjYWxlKCkucG9pbnRzKCkucm91Z2hUaW1lKHRoaXMuX2Nyb3NzaGFpci5pbmRleCkpO1QuY3Jvc3NoYWlyTG9jay5zZXRWYWx1ZSh7dHlwZToxLHByaWNlOnRoaXMuX2Nyb3NzaGFpci5wcmljZSx0aW1lOmUsbW9kZWxJZDp0aGlzLl9jaGFydE1vZGVsLmlkKCkscGFuZUlkOigwLGwuZW5zdXJlTm90TnVsbCkodGhpcy5fY3Jvc3NoYWlyLnBhbmUpLmlkKCl9KX1OaS5Db250ZXh0TWVudU1hbmFnZXIuc2hvd01lbnUoZSx7Y2xpZW50WDpzLmNsaWVudFgsY2xpZW50WTpzLmNsaWVudFksYm94Ont4OmEsdzpkLHk6aCxoOnV9LGF0dGFjaFRvWEJ5OnQ/ImF1dG8iOnI/ImxlZnQiOiJyaWdodCIsYXR0YWNoVG9ZQnk6ImF1dG8tc3RyaWN0IixtYXJnaW5YOnQ/MDotZH0se3N0YXROYW1lOnQ/IkNvbnRleHRQbHVzTWVudSI6IlNjYWxlUGx1c01lbnUifSx7bWVudU5hbWU6IkNyb3NzaGFpck1lbnVWaWV3In0sKCgpPT57dm9pZCAwIT09cCYmVC5jcm9zc2hhaXJMb2NrLnNldFZhbHVlKHApfSkpfSkpfV9tYWluRGF0YVNvdXJjZU9uUGFuZSgpe2NvbnN0IGU9dGhpcy5fY3Jvc3NoYWlyLnBhbmU7cmV0dXJuIG51bGwhPT1lP2UubWFpbkRhdGFTb3VyY2UoKTpudWxsfX1jbGFzcyBwZCBleHRlbmRzIEdoLkJpdG1hcENvb3JkaW5hdGVzUGFuZVJlbmRlcmVye2NvbnN0cnVjdG9yKGUpe3N1cGVyKCksdGhpcy5fZGF0YT1lfWhpdFRlc3QoZSl7cmV0dXJuIHZvaWQgMD09PXRoaXMuX2RhdGEuY2xpY2tIYW5kbGVyP251bGw6bmV3IE1pLkhpdFRlc3RSZXN1bHQoTWkuSGl0VGFyZ2V0LkN1c3RvbSx7Y2xpY2tIYW5kbGVyOnRoaXMuX2RhdGEuY2xpY2tIYW5kbGVyLHRhcEhhbmRsZXI6dGhpcy5fZGF0YS5jbGlja0hhbmRsZXJ9KX1fZHJhd0ltcGwoZSl7Y29uc3QgdD10aGlzLl9kYXRhLnZlcnRMaW5lc1Zpc2libGUsaT10aGlzLl9kYXRhLmhvcnpMaW5lc1Zpc2libGU7aWYoIXQmJiFpKXJldHVybjtjb25zdHtjb250ZXh0OnMsaG9yaXpvbnRhbFBpeGVsUmF0aW86bix2ZXJ0aWNhbFBpeGVsUmF0aW86cixiaXRtYXBTaXplOm99PWU7cy5saW5lV2lkdGg9TWF0aC5tYXgoMSxNYXRoLmZsb29yKHRoaXMuX2RhdGEubGluZVdpZHRoKm4pKSxzLnN0cm9rZVN0eWxlPXRoaXMuX2RhdGEuY29sb3Iscy5maWxsU3R5bGU9dGhpcy5fZGF0YS5jb2xvcixzLmxpbmVDYXA9ImJ1dHQiLCgwLERpLnNldExpbmVTdHlsZSkocyx0aGlzLl9kYXRhLmxpbmVTdHlsZSk7Y29uc3QgYT1NYXRoLnJvdW5kKHRoaXMuX2RhdGEueCpuKSxsPU1hdGgucm91bmQodGhpcy5fZGF0YS55KnIpLGM9TWF0aC5jZWlsKG8ud2lkdGgqbiksaD1NYXRoLmNlaWwoby5oZWlnaHQqcik7dCYmYT49MCYmKDAsRGkuZHJhd1ZlcnRpY2FsTGluZSkocyxhLDAsaCksaSYmbD49MCYmKDAsRGkuZHJhd0hvcml6b250YWxMaW5lKShzLGwsMCxjKSx0aGlzLl9kYXRhLmRyYXdDZW50ZXImJihzLmJlZ2luUGF0aCgpLHMuYXJjKGEsbCxNYXRoLnJvdW5kKDMqbiksMCwyKk1hdGguUEksITApLHMuZmlsbFN0eWxlPXRoaXMuX2RhdGEuY29sb3Iscy5maWxsKCkpLHRoaXMuX2RhdGEuc2Npc3NvcnMmJmZ1bmN0aW9uKGUsdCxpKXtjb25zdHtjb250ZXh0OnMsYml0bWFwU2l6ZTpuLGhvcml6b250YWxQaXhlbFJhdGlvOnIsdmVydGljYWxQaXhlbFJhdGlvOm99PWUsYT0yNCpyLGw9TWF0aC5yb3VuZCh0LWEvMik7bGV0IGM9TWF0aC5yb3VuZChpLWEvMik7aWYoYzwwKWM9MDtlbHNle2NvbnN0IGU9bi5oZWlnaHQtYTtjPmUmJihjPWUpfXMudHJhbnNsYXRlKGwsYykscy5zY2FsZShyLG8pLHMuZmlsbFN0eWxlPSIjMGYwZjBmIixzLmZpbGwoX2QpLHMuc3Ryb2tlU3R5bGU9IiNmZmYiLHMubGluZVdpZHRoPTEscy5zdHJva2UoX2QpfShlLGEsbCl9fSFmdW5jdGlvbihlKXsKZS5QYXRoPSJtMTUuNjggMy43Mi0zLjgyIDUuNTItMy44My01LjUyLS4yOC0uNDItLjQyLjNhMi44NCAyLjg0IDAgMCAwLS42OCAzLjkybDMuMjcgNC43My0xLjE2IDEuNjhhMy4zNCAzLjM0IDAgMCAwLTQuMjYgMy4yMiAzLjM0IDMuMzQgMCAwIDAgMy4zMiAzLjM1IDMuMzQgMy4zNCAwIDAgMCAzLjA4LTQuNmwxLTEuNDQgMS4xMyAxLjYyYTMuMzQgMy4zNCAwIDAgMCAzLjE1IDQuNDJjMS44NCAwIDMuMzItMS41IDMuMzItMy4zNWEzLjM0IDMuMzQgMCAwIDAtNC40Mi0zLjE3bC0xLjIzLTEuNzggMy4yMi00LjY1YTIuODYgMi44NiAwIDAgMC0uNjktMy45NmwtLjQxLS4yOS0uMjkuNDJaTTcuODIgMTYuMjdjLjQ3IDAgLjg2LjM5Ljg2Ljg4IDAgLjQ4LS4zOS44Ny0uODYuODdhLjg3Ljg3IDAgMCAxLS44Ni0uODdjMC0uNS40LS44OC44Ni0uODhabTguMzYgMGMuNDcgMCAuODYuMzkuODYuODggMCAuNDgtLjQuODctLjg2Ljg3YS44Ny44NyAwIDAgMS0uODYtLjg3YzAtLjUuMzktLjg4Ljg2LS44OFoiLGVbZS5TaXplPTI0XT0iU2l6ZSIsZS5GaWxsQ29sb3I9IiMwZjBmMGYiLGUuU3Ryb2tlQ29sb3I9IiNmZmYiLGVbZS5TdHJva2VXaWR0aD0xXT0iU3Ryb2tlV2lkdGgifShjZHx8KGNkPXt9KSk7Y29uc3QgX2Q9bmV3IFBhdGgyRCgibTE1LjY4IDMuNzItMy44MiA1LjUyLTMuODMtNS41Mi0uMjgtLjQyLS40Mi4zYTIuODQgMi44NCAwIDAgMC0uNjggMy45MmwzLjI3IDQuNzMtMS4xNiAxLjY4YTMuMzQgMy4zNCAwIDAgMC00LjI2IDMuMjIgMy4zNCAzLjM0IDAgMCAwIDMuMzIgMy4zNSAzLjM0IDMuMzQgMCAwIDAgMy4wOC00LjZsMS0xLjQ0IDEuMTMgMS42MmEzLjM0IDMuMzQgMCAwIDAgMy4xNSA0LjQyYzEuODQgMCAzLjMyLTEuNSAzLjMyLTMuMzVhMy4zNCAzLjM0IDAgMCAwLTQuNDItMy4xN2wtMS4yMy0xLjc4IDMuMjItNC42NWEyLjg2IDIuODYgMCAwIDAtLjY5LTMuOTZsLS40MS0uMjktLjI5LjQyWk03LjgyIDE2LjI3Yy40NyAwIC44Ni4zOS44Ni44OCAwIC40OC0uMzkuODctLjg2Ljg3YS44Ny44NyAwIDAgMS0uODYtLjg3YzAtLjUuNC0uODguODYtLjg4Wm04LjM2IDBjLjQ3IDAgLjg2LjM5Ljg2Ljg4IDAgLjQ4LS40Ljg3LS44Ni44N2EuODcuODcgMCAwIDEtLjg2LS44N2MwLS41LjM5LS44OC44Ni0uODhaIik7Y29uc3QgbWQ9WG8uY29sb3JzUGFsZXR0ZVsiY29sb3ItdHYtYmx1ZS01MDAiXTtjbGFzcyBnZHtjb25zdHJ1Y3RvcihlLHQpe3RoaXMuX3JlbmRlcmVyRGF0YT17fSx0aGlzLl9yZW5kZXJlcj1uZXcgcGQodGhpcy5fcmVuZGVyZXJEYXRhKSx0aGlzLl9zb3VyY2U9ZSx0aGlzLl9wYW5lPXR9dXBkYXRlKCl7fXJlbmRlcmVyKCl7Y29uc3QgZT10aGlzLl9zb3VyY2Uuc2VsZWN0UG9pbnRNb2RlKCkudmFsdWUoKSE9PVQuU2VsZWN0UG9pbnRNb2RlLk5vbmUsdD10aGlzLl9zb3VyY2UubG9ja2VkUGFuZSgpLGk9KHRoaXMuX3NvdXJjZS52aXNpYmxlfHxudWxsIT09dCkmJih0aGlzLl9zb3VyY2UuYXJlTGluZXNWaXNpYmxlfHxlKSYmIXRoaXMuX3NvdXJjZS5saW5lc1Nob3VsZEJlSGlkZGVuKCkscz10aGlzLl9yZW5kZXJlckRhdGE7aWYoIWl8fG51bGw9PT10aGlzLl9wYW5lKXJldHVybiBudWxsO2NvbnN0IG49dGhpcy5fc291cmNlLnBhbmVGb3JQb2ludFNlbGVjdCgpLHI9dGhpcy5fc291cmNlLmlzUmVwbGF5U2VsZWN0aW9uKCksbz10Pz90aGlzLl9zb3VyY2UucGFuZSxhPXRoaXMuX3BhbmU9PT1vLGM9cnx8KG51bGwhPT1uP289PT1uJiZ0aGlzLl9wYW5lPT09bjphKTtpZihzLnNjaXNzb3JzPSExLGUmJihyfHx0aGlzLl9zb3VyY2UuaXNPbkhvdmVyZWRDaGFydFdpZGdldCgpKSYmYyl7Y29uc3QgZT0oMCxsLmVuc3VyZU5vdE51bGwpKHRoaXMuX3NvdXJjZS5wb2ludFRvU2VsZWN0KCkpO3MuY29sb3I9dGhpcy5fc291cmNlLmxpbmVDb2xvcigpfHxtZCxyPyhzLmxpbmVXaWR0aD0yLHMuc2Npc3NvcnM9YSk6cy5saW5lV2lkdGg9MSxzLmxpbmVTdHlsZT1LaC5MSU5FU1RZTEVfU09MSUQscy5ob3J6TGluZXNWaXNpYmxlPSEwLHMudmVydExpbmVzVmlzaWJsZT0hMCxzLmRyYXdDZW50ZXI9ITEsInRpbWUiPT09ZT9zLmhvcnpMaW5lc1Zpc2libGU9ITE6InByaWNlIj09PWUmJihzLnZlcnRMaW5lc1Zpc2libGU9ITEpfWVsc2V7Y29uc3QgZT10aGlzLl9zb3VyY2UucHJvcGVydGllcygpLHQ9VC50b29sLnZhbHVlKCksaT0oMCx1aS5sYXN0TW91c2VPclRvdWNoRXZlbnRJbmZvKSgpLG49aS5pc1RvdWNoJiYhaS5zdHlsdXMmJigoMCxtLmlzTGluZVRvb2xOYW1lKSh0KXx8KDAsVC50b29sSXNNZWFzdXJlKSh0KSk7bGV0IHI7cj1uP21kOmUuY2hpbGRzKCkuY29sb3IudmFsdWUoKTtjb25zdCBhPWUuY2hpbGRzKCkudHJhbnNwYXJlbmN5LnZhbHVlKCk7IW4mJmE+MCYmKHI9KDAsJGkuZ2VuZXJhdGVDb2xvcikocixhKSk7Y29uc3QgbD0hdGhpcy5fcGFuZS5tb2RlbCgpLmNoYXJ0RmxvYXRpbmdUb29sdGlwQWN0aXZlKCkmJnRoaXMuX3BhbmU9PT1vJiYodGhpcy5fcGFuZS5tYXhpbWl6ZWQoKS52YWx1ZSgpfHwhdGhpcy5fcGFuZS5jb2xsYXBzZWQoKS52YWx1ZSgpKTtzLmNvbG9yPXIscy5ob3J6TGluZXNWaXNpYmxlPWwscy52ZXJ0TGluZXNWaXNpYmxlPSEwLHMubGluZVdpZHRoPWUuY2hpbGRzKCkud2lkdGgudmFsdWUoKSxzLmxpbmVTdHlsZT1lLmNoaWxkcygpLnN0eWxlLnZhbHVlKCkscy5kcmF3Q2VudGVyPW4mJnRoaXMuX3BhbmU9PT1vfXJldHVybiBzLng9dGhpcy5fc291cmNlLmxvY2tlZFgoKT8/dGhpcy5fc291cmNlLngscy55PXRoaXMuX3NvdXJjZS5sb2NrZWRZKCk/P3RoaXMuX3NvdXJjZS55LHRoaXMuX3JlbmRlcmVyfX12YXIgZmQ9aSgzNjk0NDApO2NvbnN0IFNkPXtiYWNrZ3JvdW5kQ29sb3I6KDAsJGkuZ2VuZXJhdGVDb2xvcikoWG8uY29sb3JzUGFsZXR0ZVsiY29sb3ItdHYtYmx1ZS01MDAiXSw3MCksYm9yZGVyQ29sb3I6KDAsJGkuZ2VuZXJhdGVDb2xvcikoWG8uY29sb3JzUGFsZXR0ZVsiY29sb3ItdHYtYmx1ZS01MDAiXSwyMCl9O2NsYXNzIHZke2NvbnN0cnVjdG9yKGUpe3RoaXMuX3JlbmRlcmVyPW5ldyBmZC5SZWN0YW5nbGVSZW5kZXJlciwKdGhpcy5fcmVjdGFuZ2xlPW51bGwsdGhpcy5fY3Jvc3NoYWlyPWV9dXBkYXRlKCl7Y29uc3QgZT10aGlzLl9jcm9zc2hhaXIuc2VsZWN0aW9uKCk7bnVsbCE9PWUmJm51bGwhPT10aGlzLl9jcm9zc2hhaXIucGFuZT90aGlzLl9yZWN0YW5nbGU9dGhpcy5fY3Jvc3NoYWlyLnBhbmUubG9naWNhbFJlY3RUb1BpeGVscyhlKTp0aGlzLl9yZWN0YW5nbGU9bnVsbH1yZW5kZXJlcigpe2lmKCF0aGlzLl9yZWN0YW5nbGUpcmV0dXJuIG51bGw7Y29uc3QgZT17YmFja2NvbG9yOlNkLmJhY2tncm91bmRDb2xvcixjb2xvcjpTZC5ib3JkZXJDb2xvcixmaWxsQmFja2dyb3VuZDohMCxsaW5ld2lkdGg6MSxwb2ludHM6W3RoaXMuX3JlY3RhbmdsZS5taW4sdGhpcy5fcmVjdGFuZ2xlLm1heF0sZXh0ZW5kTGVmdDohMSxleHRlbmRSaWdodDohMX07cmV0dXJuIHRoaXMuX3JlbmRlcmVyLnNldERhdGEoZSksdGhpcy5fcmVuZGVyZXJ9fXZhciB5ZD1pKDIxMjM0NiksYmQ9aSg5NjkxNjgpLHdkPWkoODg0MjgpLENkPWkoNjY0ODE1KSxQZD1pKDQ3MDk4NiksVGQ9aSg3ODkxOTApLHhkPWkoNjYwMTYxKTtjb25zdCBNZD1wLnQobnVsbCx2b2lkIDAsaSgzMzgwOTMpKSxJZD1wLnQobnVsbCx7Y29udGV4dDoic3R1ZHkifSxpKDU5NjE2OCkpLExkPSgwLE9sLmdldFBlcmNlbnRhZ2VGb3JtYXR0ZXIpKCksQWQ9bmV3IHlkLlRpbWVTcGFuRm9ybWF0dGVyLGtkPSgwLE9sLmdldFZvbHVtZUZvcm1hdHRlcikoKSxEZD0oMCxYby5nZXRIZXhDb2xvckJ5TmFtZSkoImNvbG9yLXR2LWJsdWUtNTAwIiksRWQ9KDAsWG8uZ2V0SGV4Q29sb3JCeU5hbWUpKCJjb2xvci1yaXBlLXJlZC00MDAiKSxSZD17YmdDb2xvclBvc2l0aXZlOigwLCRpLmdlbmVyYXRlQ29sb3IpKERkLDgwKSxiZ0NvbG9yTmVnYXRpdmU6KDAsJGkuZ2VuZXJhdGVDb2xvcikoRWQsODApLGNvbG9yUG9zaXRpdmU6KDAsWG8uZ2V0SGV4Q29sb3JCeU5hbWUpKCJjb2xvci10di1ibHVlLTYwMCIpLGNvbG9yTmVnYXRpdmU6KDAsWG8uZ2V0SGV4Q29sb3JCeU5hbWUpKCJjb2xvci1yaXBlLXJlZC00MDAiKSxsYWJlbEJnQ29sb3JQb3NpdGl2ZTpEZCxsYWJlbEJnQ29sb3JOZWdhdGl2ZTpFZH07dmFyIFZkLEJkOyFmdW5jdGlvbihlKXtlW2UuTWluQXJyb3dEaXN0YW5jZT01MF09Ik1pbkFycm93RGlzdGFuY2UifShWZHx8KFZkPXt9KSk7Y2xhc3MgTmR7Y29uc3RydWN0b3IoZSx0KXt0aGlzLl9ob3J6VHJlblJlbmRlcmVyPW5ldyBDZC5UcmVuZExpbmVSZW5kZXJlcix0aGlzLl92ZXJ0VHJlblJlbmRlcmVyPW5ldyBDZC5UcmVuZExpbmVSZW5kZXJlcix0aGlzLl9iZ1JlbmRlcmVyPW5ldyBmZC5SZWN0YW5nbGVSZW5kZXJlcix0aGlzLl9sYWJlbFJlbmRlcmVyPW5ldyBQZC5UZXh0UmVuZGVyZXIsdGhpcy5fcDE9bnVsbCx0aGlzLl9wMj1udWxsLHRoaXMuX3NvdXJjZT1lLHRoaXMuX3BhbmU9dH11cGRhdGUoZSl7Y29uc3RbdCxpXT10aGlzLl9zb3VyY2UubWVhc3VyZVBvaW50cygpO2lmKHZvaWQgMD09PWkpcmV0dXJuIHRoaXMuX3AxPW51bGwsdm9pZCh0aGlzLl9wMj1udWxsKTtjb25zdCBzPSgwLGwuZW5zdXJlTm90TnVsbCkodGhpcy5fc291cmNlLm1lYXN1cmVQYW5lKCkudmFsdWUoKSksbj10LnByaWNlLHI9aS5wcmljZSxvPWkuaW5kZXgtdC5pbmRleCxhPSgwLGJkLmZvcmNlTFRSU3RyKSgiIitvKSxjPSgwLGwuZW5zdXJlTm90TnVsbCkocy5tYWluRGF0YVNvdXJjZSgpKSxoPWMuZmlyc3RWYWx1ZSgpO2lmKG51bGw9PT1oKXJldHVybiB0aGlzLl9wMT1udWxsLHZvaWQodGhpcy5fcDI9bnVsbCk7Y29uc3QgZD10aGlzLl9zb3VyY2UubW9kZWwoKS50aW1lU2NhbGUoKS5pbmRleFRvQ29vcmRpbmF0ZSh0LmluZGV4KSx1PXRoaXMuX3NvdXJjZS5tb2RlbCgpLnRpbWVTY2FsZSgpLmluZGV4VG9Db29yZGluYXRlKGkuaW5kZXgpLHA9cy5kZWZhdWx0UHJpY2VTY2FsZSgpLnByaWNlVG9Db29yZGluYXRlKG4saCksXz1zLmRlZmF1bHRQcmljZVNjYWxlKCkucHJpY2VUb0Nvb3JkaW5hdGUocixoKTt0aGlzLl9wMT1uZXcgUHQuUG9pbnQoZCxwKSx0aGlzLl9wMj1uZXcgUHQuUG9pbnQodSxfKTtjb25zdCBtPXRoaXMuX3NvdXJjZS5tb2RlbCgpLnRpbWVTY2FsZSgpLmluZGV4VG9Vc2VyVGltZSh0LmluZGV4KSxnPXRoaXMuX3NvdXJjZS5tb2RlbCgpLnRpbWVTY2FsZSgpLmluZGV4VG9Vc2VyVGltZShpLmluZGV4KTtsZXQgZj1udWxsO251bGwhPT1tJiZudWxsIT09ZyYmKGY9KGcudmFsdWVPZigpLW0udmFsdWVPZigpKS8xZTMpO2NvbnN0IFM9ci1uLHY9MTAwKlMvTWF0aC5hYnMobikseT10aGlzLl9wYW5lLm1vZGVsKCkubWFpblNlcmllcygpLnN5bWJvbEluZm8oKSxiPXkmJigwLE9sLmdldFBpcEZvcm1hdHRlcikoeSksdz0oMCxsLmVuc3VyZU5vdE51bGwpKGMuZm9ybWF0dGVyKCkpLEM9KHcuZm9ybWF0Q2hhbmdlPy4ocixuKT8/dy5mb3JtYXQoUykpKyIgKCIrTGQuZm9ybWF0KE1hdGgucm91bmQoMTAwKnYpLzEwMCkrIikgIisoYj9iLmZvcm1hdChTKToiIiksUD1udWxsIT09Zj9BZC5mb3JtYXQoZik6bnVsbCxUPW51bGwhPT1QPyIsICIrKDAsYmQuc3RhcnRXaXRoTFRSKShQKToiIjtsZXQgeD0oMCxiZC5mb3JjZUxUUlN0cikoQykrIlxuIitNZC5mb3JtYXQoe2NvdW50OmF9KStUO2NvbnN0IE09dGhpcy5fc291cmNlLm1lYXN1cmVWb2x1bWUoKTtOdW1iZXIuaXNOYU4oTSl8fCh4Kz1gXG4ke0lkfSAke2tkLmZvcm1hdChNKX1gKTtjb25zdCBJPXI8bj9SZC5iZ0NvbG9yTmVnYXRpdmU6UmQuYmdDb2xvclBvc2l0aXZlLEw9cjxuP1JkLmNvbG9yTmVnYXRpdmU6UmQuY29sb3JQb3NpdGl2ZSxBPXI8bj9SZC5sYWJlbEJnQ29sb3JOZWdhdGl2ZTpSZC5sYWJlbEJnQ29sb3JQb3NpdGl2ZSxrPXtwb2ludHM6W3RoaXMuX3AxLHRoaXMuX3AyXSxsaW5ld2lkdGg6MCxmaWxsQmFja2dyb3VuZDohMCxjb2xvcjpJLGJhY2tjb2xvcjpJLGV4dGVuZExlZnQ6ITEsZXh0ZW5kUmlnaHQ6ITF9O3RoaXMuX2JnUmVuZGVyZXIuc2V0RGF0YShrKTtjb25zdCBEPXRoaXMuX3AxLmFkZCh0aGlzLl9wMikuc2NhbGVkKC41KTt7CmNvbnN0IGU9TWF0aC5yb3VuZChELnkpLHQ9bmV3IFB0LlBvaW50KHRoaXMuX3AxLngsZSksaT1uZXcgUHQuUG9pbnQodGhpcy5fcDIueCxlKSxzPXtwb2ludHM6W3QsaV0sY29sb3I6TCxsaW5ld2lkdGg6MSxsaW5lc3R5bGU6S2guTElORVNUWUxFX1NPTElELGV4dGVuZGxlZnQ6ITEsZXh0ZW5kcmlnaHQ6ITEsbGVmdGVuZDp4ZC5MaW5lRW5kLk5vcm1hbCxyaWdodGVuZDpNYXRoLmFicyh0LngtaS54KT49NTA/eGQuTGluZUVuZC5BcnJvdzp4ZC5MaW5lRW5kLk5vcm1hbH07dGhpcy5faG9yelRyZW5SZW5kZXJlci5zZXREYXRhKHMpfXtjb25zdCBlPU1hdGgucm91bmQoRC54KSx0PW5ldyBQdC5Qb2ludChlLHRoaXMuX3AxLnkpLGk9bmV3IFB0LlBvaW50KGUsdGhpcy5fcDIueSkscz17cG9pbnRzOlt0LGldLGNvbG9yOkwsbGluZXdpZHRoOjEsbGluZXN0eWxlOktoLkxJTkVTVFlMRV9TT0xJRCxleHRlbmRsZWZ0OiExLGV4dGVuZHJpZ2h0OiExLGxlZnRlbmQ6eGQuTGluZUVuZC5Ob3JtYWwscmlnaHRlbmQ6TWF0aC5hYnModC55LWkueSk+PTUwP3hkLkxpbmVFbmQuQXJyb3c6eGQuTGluZUVuZC5Ob3JtYWx9O3RoaXMuX3ZlcnRUcmVuUmVuZGVyZXIuc2V0RGF0YShzKX1jb25zdCBFPXt4OjAseToxMH0sUj0uNSoodGhpcy5fcDEueCt0aGlzLl9wMi54KSxWPXRoaXMuX3AyLnksQj1uZXcgUHQuUG9pbnQoUixWKSxOPXtwb2ludHM6W0JdLHRleHQ6eCxjb2xvcjoiI0ZGRkZGRiIsaG9yekFsaWduOndkLkhvcml6b250YWxBbGlnbi5DZW50ZXIsdmVydEFsaWduOndkLlZlcnRpY2FsQWxpZ24uTWlkZGxlLGZvbnQ6V2kuQ0hBUlRfRk9OVF9GQU1JTFlfV1YudmFsdWUoKSxvZmZzZXRYOkUueCxvZmZzZXRZOkUueSxib2xkOiExLGl0YWxpYzohMSxmb250c2l6ZToxMixsaW5lU3BhY2luZzo4LGJhY2tncm91bmRDb2xvcjpBLGJveFBhZGRpbmdWZXJ0OjksYm94UGFkZGluZ0hvcno6OSxiYWNrZ3JvdW5kUm91bmRSZWN0OjR9O3RoaXMuX2xhYmVsUmVuZGVyZXIuc2V0RGF0YShOKTtjb25zdCBPPXRoaXMuX2xhYmVsUmVuZGVyZXIubWVhc3VyZSgpLFc9KDAsUGQuY2FsY3VsYXRlTGFiZWxQb3NpdGlvbikoTyx0aGlzLl9wMSx0aGlzLl9wMixFLHRoaXMuX3BhbmUuaGVpZ2h0KCkpO3RoaXMuX2xhYmVsUmVuZGVyZXIuc2V0UG9pbnRzKFtXXSl9cmVuZGVyZXIoKXtpZihudWxsPT09dGhpcy5fcDF8fG51bGw9PT10aGlzLl9wMilyZXR1cm4gbnVsbDtjb25zdCBlPW5ldyBUZC5Db21wb3NpdGVSZW5kZXJlcjtyZXR1cm4gZS5hcHBlbmQodGhpcy5fYmdSZW5kZXJlciksZS5hcHBlbmQodGhpcy5faG9yelRyZW5SZW5kZXJlciksZS5hcHBlbmQodGhpcy5fdmVydFRyZW5SZW5kZXJlciksZS5hcHBlbmQodGhpcy5fbGFiZWxSZW5kZXJlciksZX19IWZ1bmN0aW9uKGUpe2VbZS5MaWdodD0wXT0iTGlnaHQiLGVbZS5EYXJrPTFdPSJEYXJrIn0oQmR8fChCZD17fSkpO3ZhciBPZD1pKDQ1NzApO2NsYXNzIFdkIGV4dGVuZHMgRmEuTWVkaWFDb29yZGluYXRlc1BhbmVSZW5kZXJlcntjb25zdHJ1Y3RvcihlKXtzdXBlcigpLHRoaXMuX3N2Z01hcD1uZXcgTWFwLHRoaXMuX2RhdGE9ZSx0aGlzLl9zdmdNYXAuc2V0KGUudGhlbWUsdGhpcy5fY3JlYXRlU3ZnUmVuZGVyZXIoZS50aGVtZSkpfWhpdFRlc3QoKXtyZXR1cm4gbnVsbH1zZXREYXRhKGUpe3RoaXMuX3N2Z01hcC5oYXMoZS50aGVtZSl8fHRoaXMuX3N2Z01hcC5zZXQoZS50aGVtZSx0aGlzLl9jcmVhdGVTdmdSZW5kZXJlcihlLnRoZW1lKSksdGhpcy5fZGF0YT1lfV9kcmF3SW1wbChlKXtjb25zdHtjb250ZXh0OnQsbWVkaWFTaXplOml9PWUse3RoZW1lOnMseDpufT10aGlzLl9kYXRhLHI9dGhpcy5fc3ZnTWFwLmdldChzKTtpZighcilyZXR1cm47Y29uc3Qgbz1yLnZpZXdCb3goKSx7d2lkdGg6YSxoZWlnaHQ6bH09byxjPWEvMjtuK2M8MHx8bi1jPmkud2lkdGh8fCh0LnRyYW5zbGF0ZShuLWMsaS5oZWlnaHQtbCksci5yZW5kZXIodCx7dGFyZ2V0Vmlld0JveDpvfSkpfV9jcmVhdGVTdmdSZW5kZXJlcihlKXtjb25zdCB0PTE9PT1lP09kLnJlcGxhY2UoImJhY2tncm91bmRDb2xvciIsKDAsWG8uZ2V0SGV4Q29sb3JCeU5hbWUpKCJjb2xvci1jb2xkLWdyYXktOTAwIikpLnJlcGxhY2UoImxpbmVDb2xvciIsKDAsWG8uZ2V0SGV4Q29sb3JCeU5hbWUpKCJjb2xvci1jb2xkLWdyYXktNDUwIikpOk9kLnJlcGxhY2UoImJhY2tncm91bmRDb2xvciIsKDAsWG8uZ2V0SGV4Q29sb3JCeU5hbWUpKCJjb2xvci13aGl0ZSIpKS5yZXBsYWNlKCJsaW5lQ29sb3IiLCgwLFhvLmdldEhleENvbG9yQnlOYW1lKSgiY29sb3ItY29sZC1ncmF5LTU1MCIpKTtyZXR1cm4oMCxWaS5zdmdSZW5kZXJlcikodCl9fWNsYXNzIEZke2NvbnN0cnVjdG9yKGUpe3RoaXMuX3NvdXJjZT1lLHRoaXMuX3JlbmRlcmVyPW5ldyBXZCh0aGlzLl9nZXRSZW5kZXJEYXRhKDApKX11cGRhdGUoKXt9cmVuZGVyZXIoKXtjb25zdCBlPXRoaXMuX3NvdXJjZS52aXNpYmxlJiZ0aGlzLl9zb3VyY2UuYXJlTGluZXNWaXNpYmxlLHQ9dGhpcy5fc291cmNlLmxvY2tlZFgoKSxpPTA9PT1ULmNyb3NzaGFpckxvY2sudmFsdWUoKT8udHlwZTtyZXR1cm4gZSYmaSYmbnVsbCE9PXQ/KHRoaXMuX3JlbmRlcmVyLnNldERhdGEodGhpcy5fZ2V0UmVuZGVyRGF0YSh0KzEpKSx0aGlzLl9yZW5kZXJlcik6bnVsbH1fZ2V0UmVuZGVyRGF0YShlKXtyZXR1cm57eDplLHRoZW1lOnRoaXMuX3NvdXJjZS5tb2RlbCgpLmRhcmsoKS52YWx1ZSgpPzE6MH19fWNvbnN0IEhkPTMwO2NsYXNzIHpke2NvbnN0cnVjdG9yKGUsdCxpKXt0aGlzLl9yZW5kZXJlcj1uZXcgZmQuUmVjdGFuZ2xlUmVuZGVyZXIsdGhpcy5faW52YWxpZGF0ZWQ9ITAsdGhpcy5fc291cmNlPWUsdGhpcy5fcGFuZT10LHRoaXMuX21vZGVsPWl9dXBkYXRlKCl7dGhpcy5faW52YWxpZGF0ZWQ9ITB9cmVuZGVyZXIoKXtyZXR1cm4gdGhpcy5faW52YWxpZGF0ZWQmJih0aGlzLl91cGRhdGVJbXBsKCksdGhpcy5faW52YWxpZGF0ZWQ9ITEpLHRoaXMuX3JlbmRlcmVyfV91cGRhdGVJbXBsKCl7aWYodGhpcy5fcmVuZGVyZXIuc2V0RGF0YShudWxsKSwKIXRoaXMuX3BhbmV8fCF0aGlzLl9zb3VyY2UudmlzaWJsZSlyZXR1cm47aWYoIXRoaXMuX3NvdXJjZS5tb2RlbCgpLm1haW5TZXJpZXMoKS5sYXN0VmFsdWVEYXRhKHZvaWQgMCwhMCwhMCkuaW5kZXgpcmV0dXJuO2NvbnN0IGU9bmV3IFB0LlBvaW50KHRoaXMuX3NvdXJjZS5sb2NrZWRYKCk/P3RoaXMuX3NvdXJjZS54LDApLHQ9bmV3IFB0LlBvaW50KHRoaXMuX3BhbmUud2lkdGgoKSx0aGlzLl9wYW5lLmhlaWdodCgpKSxpPXtiYWNrY29sb3I6KDAsJGkuYXBwbHlUcmFuc3BhcmVuY3kpKHRoaXMuX21vZGVsLmJhY2tncm91bmRDb2xvckF0WVBlcmNlbnRGcm9tVG9wKC41KSxIZCksY29sb3I6KDAsJGkuYXBwbHlUcmFuc3BhcmVuY3kpKHRoaXMuX21vZGVsLmJhY2tncm91bmRDb2xvckF0WVBlcmNlbnRGcm9tVG9wKC41KSxIZCksZmlsbEJhY2tncm91bmQ6ITAsbGluZXdpZHRoOjAscG9pbnRzOltlLHRdLGRpc2FibGVJbnRlcmFjdGlvbnM6ITAsZXh0ZW5kTGVmdDohMSxleHRlbmRSaWdodDohMX07dGhpcy5fcmVuZGVyZXIuc2V0RGF0YShpKX19dmFyIFVkPWkoNzc5NTE2KSxHZD1pKDY0MDI5Mik7Y2xhc3MgamQgZXh0ZW5kcyBVZC5EYXRhV2luZG93Vmlld3tjb25zdHJ1Y3RvcihlKXtzdXBlcigpLHRoaXMuX2ludmFsaWRhdGVkPSEwLHRoaXMuX2RhdGVJdGVtPW5ldyBVZC5EYXRhV2luZG93SXRlbSgiIixwLnQobnVsbCx2b2lkIDAsaSg1MDc3MjkpKSwiIiksdGhpcy5fdGltZUl0ZW09bmV3IFVkLkRhdGFXaW5kb3dJdGVtKCIiLHAudChudWxsLHZvaWQgMCxpKDg2MjExOSkpLCIiKSx0aGlzLl9tb2RlbD1lLHRoaXMuX2l0ZW1zLnB1c2godGhpcy5fZGF0ZUl0ZW0pLHRoaXMuX2l0ZW1zLnB1c2godGhpcy5fdGltZUl0ZW0pfXVwZGF0ZSgpe3RoaXMuX2ludmFsaWRhdGVkPSEwfWl0ZW1zKCl7cmV0dXJuIHRoaXMuX2ludmFsaWRhdGVkJiYodGhpcy5fdXBkYXRlSW1wbCgpLHRoaXMuX2ludmFsaWRhdGVkPSExKSx0aGlzLl9pdGVtc31fdXBkYXRlSW1wbCgpe2NvbnN0IGU9dGhpcy5fbW9kZWwubWFpblNlcmllcygpLmlzRFdNKCk7aWYodGhpcy5fdGltZUl0ZW0uc2V0VmlzaWJsZSghZSksdGhpcy5fdGltZUl0ZW0uc2V0VmFsdWUoR2Qubm90QXZhaWxhYmxlKSx0aGlzLl9kYXRlSXRlbS5zZXRWYWx1ZShHZC5ub3RBdmFpbGFibGUpLHRoaXMuX21vZGVsLnRpbWVTY2FsZSgpLmlzRW1wdHkoKSlyZXR1cm47bGV0IHQ9dGhpcy5fbW9kZWwuY3Jvc3NoYWlyU291cmNlKCkuYXBwbGllZEluZGV4KCk7aWYoISgwLGEuaXNOdW1iZXIpKHQpKXtjb25zdCBlPXRoaXMuX21vZGVsLm1haW5TZXJpZXMoKS5kYXRhKCkubGFzdCgpO2lmKG51bGw9PT1lKXJldHVybjt0PWUuaW5kZXh9Y29uc3QgaT10aGlzLl9tb2RlbC50aW1lU2NhbGUoKS5pbmRleFRvVXNlclRpbWUodCk7bnVsbCE9PWkmJih0aGlzLl9kYXRlSXRlbS5zZXRWYWx1ZSh0aGlzLl9tb2RlbC5kYXRlRm9ybWF0dGVyKCkuZm9ybWF0KGkpKSxlfHx0aGlzLl90aW1lSXRlbS5zZXRWYWx1ZSh0aGlzLl9tb2RlbC50aW1lRm9ybWF0dGVyKCkuZm9ybWF0KGkpKSl9fXZhciBxZD1pKDkyNzE4Nyk7Y29uc3QgJGQ9WG8uY29sb3JzUGFsZXR0ZVsiY29sb3ItdHYtYmx1ZS01MDAiXSxZZD1wLnQobnVsbCx7Y29udGV4dDoiUmVwbGF5In0saSgxNTc0MTcpKTtjbGFzcyBLZCBleHRlbmRzIHFkLlRpbWVBeGlzVmlld3tjb25zdHJ1Y3RvcihlLHQsaSxzPSExKXtzdXBlcihlKSx0aGlzLl9pbmRleFByb3ZpZGVyPWksdGhpcy5faGlnaGxpZ2h0ZWQ9cyx0aGlzLl9zb3VyY2U9dCx0aGlzLl9wcm9wZXJ0aWVzPWUucHJvcGVydGllcygpLmNoaWxkcygpLnNjYWxlc1Byb3BlcnRpZXN9X2dldFRleHQoZSl7aWYodGhpcy5fc291cmNlLmlzUmVwbGF5U2VsZWN0aW9uKCkpe2NvbnN0IHQ9dGhpcy5fbW9kZWwudGltZVNjYWxlKCkuaW5kZXhUb1VzZXJUaW1lKGUpO3JldHVybiBudWxsIT09dD9gJHtZZH06ICR7dGhpcy5fbW9kZWwuZGF0ZVRpbWVGb3JtYXR0ZXIoKS5mb3JtYXQodCl9YDoiIn1yZXR1cm4gc3VwZXIuX2dldFRleHQoZSl9X2dldEJnQ29sb3IoKXtpZih0aGlzLl9zb3VyY2UuaXNSZXBsYXlTZWxlY3Rpb24oKSlyZXR1cm4gJGQ7Y29uc3QgZT10aGlzLl9wcm9wZXJ0aWVzLmNoaWxkcygpO3JldHVybiB0aGlzLl9oaWdobGlnaHRlZD9lLmF4aXNMaW5lVG9vbExhYmVsQmFja2dyb3VuZENvbG9yQ29tbW9uLnZhbHVlKCk6dGhpcy5fbW9kZWwuZGFyaygpLnZhbHVlKCk/ZS5jcm9zc2hhaXJMYWJlbEJnQ29sb3JEYXJrLnZhbHVlKCk6ZS5jcm9zc2hhaXJMYWJlbEJnQ29sb3JMaWdodC52YWx1ZSgpfV9nZXRJbmRleCgpe3JldHVybiB0aGlzLl9tb2RlbC5jcm9zc2hhaXJTb3VyY2UoKS52aXNpYmxlfHxudWxsIT09dGhpcy5fc291cmNlLmxvY2tlZFBhbmUoKT90aGlzLl9pbmRleFByb3ZpZGVyKCk6bnVsbH1faXNWaXNpYmxlKCl7cmV0dXJuIHRoaXMuX3Byb3BlcnRpZXMuY2hpbGRzKCkuc2hvd1RpbWVTY2FsZUNyb3NzaGFpckxhYmVsLnZhbHVlKCl9fXZhciBYZCxaZD1pKDkyMjk2MiksSmQ9aSg4MzUzMyk7IWZ1bmN0aW9uKGUpe2VbZS5MaW5lV2lkdGg9MzZdPSJMaW5lV2lkdGgiLGVbZS5DaXJjbGVCb3JkZXJXaWR0aD0xXT0iQ2lyY2xlQm9yZGVyV2lkdGgiLGVbZS5BbmltYXRpb25EdXJhdGlvbj00ZTNdPSJBbmltYXRpb25EdXJhdGlvbiJ9KFhkfHwoWGQ9e30pKTt2YXIgUWQ9aSg1MDc2MDQpO2NvbnN0IGV1PSgwLCRpLmFwcGx5QWxwaGEpKFFkLmNvbG9ycy5jb2xvclJpcGVSZWQ1MDAsLjI1KSx0dT0oMCwkaS5hcHBseUFscGhhKShRZC5jb2xvcnMuY29sb3JSaXBlUmVkNTAwLC4wMyk7Y2xhc3MgaXV7Y29uc3RydWN0b3IoZSl7dGhpcy5faW52YWxpZGF0ZWQ9ITAsdGhpcy5fY2lyY2xlUmVuZGVyZXI9bmV3IEpkLkNpcmNsZVJlbmRlcmVyLHRoaXMuX3NvdXJjZT1lfXVwZGF0ZShlKXt0aGlzLl9pbnZhbGlkYXRlZD0hMH1yZW5kZXJlcihlKXtyZXR1cm4gdGhpcy5faW52YWxpZGF0ZWQmJih0aGlzLl91cGRhdGVJbXBsKCksdGhpcy5faW52YWxpZGF0ZWQ9ITEpLHRoaXMuX2NpcmNsZVJlbmRlcmVyfV91cGRhdGVJbXBsKCl7CmNvbnN0IGU9dGhpcy5fc291cmNlLm9yaWdpblgoKSx0PXRoaXMuX3NvdXJjZS5vcmlnaW5ZKCk7TnVtYmVyLmlzRmluaXRlKGUpJiZOdW1iZXIuaXNGaW5pdGUodCk/dGhpcy5fY2lyY2xlUmVuZGVyZXIuc2V0RGF0YSh7Y2VudGVyOigwLFB0LnBvaW50KShlLHQpLHJhZGl1czoxOCxsaW5lV2lkdGg6MSxjb2xvcjp0dSxiYWNrQ29sb3I6ZXUsZGlzYWJsZUludGVyYWN0aW9uczohMH0pOnRoaXMuX2NpcmNsZVJlbmRlcmVyLnNldERhdGEobnVsbCl9fWNsYXNzIHN1e2NvbnN0cnVjdG9yKGUpe3RoaXMuX2FjdGl2ZUhpZ2hsaWdodGVyPW51bGwsdGhpcy5faGlnaGxpZ2h0ZXJzPW5ldyBNYXAsdGhpcy5fdG9vbHNGYWN0b3J5PW51bGwsdGhpcy5fdGhyb3R0bGVVcGRhdGVIaWdobGlnaHRlcnM9KDAsS28uZGVmYXVsdCkoKCgpPT57Y29uc3QgZT0oMCx0bi5zb3VyY2VDaGFuZ2VFdmVudCkodGhpcy5fY3Jvc3NoYWlyLmlkKCkpO2xldCB0PSExO2NvbnN0IGk9QXJyYXkuZnJvbSh0aGlzLl9oaWdobGlnaHRlcnMua2V5cygpKTtmb3IoY29uc3QgcyBvZiBpKXtjb25zdCBpPVtdO2Zvcihjb25zdCB0IG9mKDAsbC5lbnN1cmVEZWZpbmVkKSh0aGlzLl9oaWdobGlnaHRlcnMuZ2V0KHMpKSl0LmFuaW1hdGlvblByb2dyZXNzKCk8MT8odC51cGRhdGVBbGxWaWV3cyhlKSxpLnB1c2godCkpOnQuZGVzdHJveT8uKCk7aS5sZW5ndGg+MD8odGhpcy5faGlnaGxpZ2h0ZXJzLnNldChzLGkpLHQ9ITApOnRoaXMuX2hpZ2hsaWdodGVycy5kZWxldGUocyl9dCYmdGhpcy5fY3Jvc3NoYWlyLm1vZGVsKCkudXBkYXRlU291cmNlKHRoaXMuX2Nyb3NzaGFpcil9KSwyMCx7bGVhZGluZzohMH0pLHRoaXMuX2Nyb3NzaGFpcj1lLHRoaXMuX3ZpZXc9bmV3IGl1KGUpLHRoaXMuX2N1cnJlbnRUb29sPVQudG9vbC5zcGF3bigpLHRoaXMuX2N1cnJlbnRUb29sLnN1YnNjcmliZSgoZT0+eygwLFQudG9vbElzRGVtb25zdHJhdGlvbikoZSkmJm51bGw9PT10aGlzLl90b29sc0ZhY3RvcnkmJih0aGlzLl90b29sc0ZhY3Rvcnk9bmV3IHRhLkFzeW5jUmVzb3VyY2VXcmFwcGVyKChhc3luYygpPT57Y29uc3QgZT1hd2FpdCBQcm9taXNlLmFsbChbaS5lKDcwOTA5KSxpLmUoNzc0NzkpXSkudGhlbihpLmJpbmQoaSwzOTc4OTcpKTtyZXR1cm4odCxpLHMsbik9Pm5ldyBlLkxpbmVUb29sRGVtb25zdHJhdGlvbkhpZ2hsaWdodGVyKHQsaSxzLG4pfSkoKSkpfSkse2NhbGxXaXRoTGFzdDohMH0pfWRlc3Ryb3koKXtmb3IoY29uc3RbLGVdb2YgdGhpcy5faGlnaGxpZ2h0ZXJzKWZvcihjb25zdCB0IG9mIGUpdC5kZXN0cm95Py4oKTt0aGlzLl9jdXJyZW50VG9vbC5kZXN0cm95KCl9dXBkYXRlKGUpe3RoaXMuX3ZpZXcudXBkYXRlKGUpO2Zvcihjb25zdFssdF1vZiB0aGlzLl9oaWdobGlnaHRlcnMpZm9yKGNvbnN0IGkgb2YgdClpLnVwZGF0ZUFsbFZpZXdzKGUpfXBhbmVWaWV3cyhlKXtjb25zdCB0PVtdO2U9PT10aGlzLl9jcm9zc2hhaXIucGFuZSYmKDAsVC50b29sSXNEZW1vbnN0cmF0aW9uKShULmN1cnNvclRvb2wudmFsdWUoKSkmJnQucHVzaCh0aGlzLl92aWV3KTtmb3IoY29uc3QgaSBvZiB0aGlzLl9oaWdobGlnaHRlcnMuZ2V0KGUpPz9bXSl7Y29uc3Qgcz1pLnBhbmVWaWV3cyhlKTtzJiZ0LnB1c2goLi4ucyl9cmV0dXJuIHRoaXMuX2hpZ2hsaWdodGVycy5zaXplPjAmJnRoaXMuX3Rocm90dGxlVXBkYXRlSGlnaGxpZ2h0ZXJzKCksdH1jcmVhdGVIaWdobGlnaHRlcigpe2NvbnN0IGU9dGhpcy5fdG9vbHNGYWN0b3J5Py5nZXQoKTtpZighZSlyZXR1cm47dGhpcy5fYWN0aXZlSGlnaGxpZ2h0ZXI9ZSh0aGlzLl9jcm9zc2hhaXIubW9kZWwoKSxldSwzNiw0ZTMpO2NvbnN0IHQ9KDAsbC5lbnN1cmVOb3ROdWxsKSh0aGlzLl9jcm9zc2hhaXIucGFuZSksaT0oMCxsLmVuc3VyZU5vdE51bGwpKHQubWFpbkRhdGFTb3VyY2UoKSk7KDAscmkucHJlcGFyZUxpbmVUb29sUHJvcGVydGllc0J5T3duZXJTb3VyY2UpKHRoaXMuX2FjdGl2ZUhpZ2hsaWdodGVyLnByb3BlcnRpZXMoKSxpKSx0aGlzLl9hY3RpdmVIaWdobGlnaHRlci5zZXRPd25lclNvdXJjZShpKTtjb25zdCBzPXRoaXMuX2hpZ2hsaWdodGVycy5nZXQodCk/P1tdO3MucHVzaCh0aGlzLl9hY3RpdmVIaWdobGlnaHRlciksdGhpcy5faGlnaGxpZ2h0ZXJzLnNldCh0LHMpfWFkZEhpZ2hsaWdodGVyUG9zaXRpb24oZSl7dGhpcy5fYWN0aXZlSGlnaGxpZ2h0ZXI/LmFkZFBvaW50KGUpLHRoaXMudXBkYXRlKCgwLHRuLnNvdXJjZUNoYW5nZUV2ZW50KSh0aGlzLl9jcm9zc2hhaXIuaWQoKSkpfWlzVGhlcmVVbmZpbmlzaGVkSGlnaGxpZ2h0ZXIoKXtyZXR1cm4gbnVsbCE9PXRoaXMuX2FjdGl2ZUhpZ2hsaWdodGVyfWZpbmlzaEhpZ2hsaWdodGVyKCl7dGhpcy5fYWN0aXZlSGlnaGxpZ2h0ZXI/LmZpbmlzaCgpLHRoaXMuX2FjdGl2ZUhpZ2hsaWdodGVyPW51bGwsdGhpcy5fdGhyb3R0bGVVcGRhdGVIaWdobGlnaHRlcnMoKX19Y29uc3QgbnU9e21lbnVFbmFibGVkOiExLG1lbnVGb3JNYWluU291cmNlT25seTohMSxkaXNhYmxlVHJhZGluZ01lbnVBY3Rpb25zOiExLGRpc2FibGVEcmF3SG9yaXpMaW5lTWVudUFjdGlvbjohMX07bGV0IHJ1PTA7Y29uc3Qgb3U9KDAsYy5nZXRMb2dnZXIpKCJDaGFydC5Dcm9zc2hhaXIiKTtjbGFzcyBhdSBleHRlbmRzIHVyLkRhdGFTb3VyY2V7Y29uc3RydWN0b3IoZSx0LGkpe3N1cGVyKCksdGhpcy5wYW5lPW51bGwsdGhpcy5wcmljZT1OYU4sdGhpcy5pbmRleD1OYU4sdGhpcy52aXNpYmxlPSEwLHRoaXMuYXJlTGluZXNWaXNpYmxlPSEwLHRoaXMueD1OYU4sdGhpcy55PU5hTix0aGlzLl9sb2NrRGF0YT1udWxsLHRoaXMuX2Nyb3NzaGFpckRlbW9uc3RyYXRpb249bmV3IHN1KHRoaXMpLHRoaXMuX21lYXN1cmVQYW5lPW5ldyBoLldhdGNoZWRWYWx1ZShudWxsKSx0aGlzLl9tZWFzdXJlUGFuZVZpZXdDYWNoZT1uZXcgV2Vha01hcCx0aGlzLl9zdGFydE1lYXN1cmVQb2ludD1udWxsLHRoaXMuX2VuZE1lYXN1cmVQb2ludD1udWxsLHRoaXMuX2xhc3RWYWxpZE1lYXN1cmVQb2ludD1udWxsLHRoaXMuX25vcm1hbGl6ZWRNZWFzdXJlUG9pbnRzPW51bGwsCnRoaXMuX2xpbmVzU2hvdWxkQmVIaWRkZW49ITEsdGhpcy5faXNPbkhvdmVyZWRDaGFydFdpZGdldD0hMSx0aGlzLl9jcm9zc0hhaXJTZWxlY3RQb2ludE1vZGU9bmV3IGguV2F0Y2hlZFZhbHVlKFQuU2VsZWN0UG9pbnRNb2RlLk5vbmUpLHRoaXMuX3NlbGVjdGlvblBhbmU9bnVsbCx0aGlzLl9zZWxlY3Rpb25WaWV3PW5ldyB2ZCh0aGlzKSx0aGlzLl9zZWxlY3Rpb25TdGFydFBvaW50PW51bGwsdGhpcy5fdGltZUxvY2tQYW5lVmlldz1udWxsLHRoaXMuX2Nyb3NzaGFpclBhbmVWaWV3Q2FjaGU9bmV3IFdlYWtNYXAsdGhpcy5fcG9pbnRTZWxlY3Rpb25QYW5lVmlld0NhY2hlPW5ldyBXZWFrTWFwLHRoaXMuX3ByaWNlQXhpc1ZpZXdzPW5ldyBNYXAsdGhpcy5fcGFuZVByaWNlQXhpc1ZpZXdzPW5ldyBNYXAsdGhpcy5fc3RhcnRNZWFzdXJlUHJpY2VBeGlzVmlld3M9bmV3IE1hcCx0aGlzLl9lbmRNZWFzdXJlUHJpY2VBeGlzVmlld3M9bmV3IE1hcCx0aGlzLl9vcmlnaW5YPU5hTix0aGlzLl9vcmlnaW5ZPU5hTix0aGlzLl9zdWJzY3JpYmVkPSExLHRoaXMuX21vdmVkRGVsZWdhdGU9bmV3IGYuRGVsZWdhdGUsdGhpcy5fcG9pbnRTZWxlY3RlZERlbGVnYXRlPW5ldyBmLkRlbGVnYXRlLHRoaXMuX3JlcXVlc3RQb2ludFBhcmFtcz1udWxsLHRoaXMuX3ZvbHVtZUNhbGN1bGF0b3I9bnVsbCx0aGlzLl9jdXJyZW50TWVhc3VyZVBvaW50c2V0QW5kU3ltYm9sSWQ9bnVsbCx0aGlzLl9tb2RlbD1lLHRoaXMuX29wdGlvbnM9T2JqZWN0LmFzc2lnbih7fSxudSxpfHx7fSksdGhpcy5fZGF0YVdpbmRvd1ZpZXc9bmV3IGpkKGUpLHRoaXMuc2V0U2VsZWN0aW9uRW5hYmxlZCghMSk7Y29uc3Qgcz1lPT50PT50PT09KDAsbC5lbnN1cmVOb3ROdWxsKSh0aGlzLl9tZWFzdXJlUGFuZS52YWx1ZSgpKS5kZWZhdWx0UHJpY2VTY2FsZSgpP2UoKTpudWxsO3RoaXMuX2N1cnJlbnRQb3NQcmljZVByb3ZpZGVyPWU9Pntjb25zdCB0PSgwLGwuZW5zdXJlTm90TnVsbCkodGhpcy5wYW5lKTtpZihlPT09dC5kZWZhdWx0UHJpY2VTY2FsZSgpKXJldHVybiB0aGlzLnByaWNlO2NvbnN0IGk9KDAsbC5lbnN1cmVOb3ROdWxsKSh0LmRlZmF1bHRQcmljZVNjYWxlKCkubWFpblNvdXJjZSgpKS5maXJzdFZhbHVlKCk7aWYobnVsbD09PWkpcmV0dXJuIG51bGw7Y29uc3Qgcz10LmRlZmF1bHRQcmljZVNjYWxlKCkucHJpY2VUb0Nvb3JkaW5hdGUodGhpcy5wcmljZSxpKSxuPSgwLGwuZW5zdXJlTm90TnVsbCkoZS5tYWluU291cmNlKCkpLmZpcnN0VmFsdWUoKTtyZXR1cm4gbnVsbD09PW4/bnVsbDplLmNvb3JkaW5hdGVUb1ByaWNlKHMsbil9LHRoaXMuX3N0YXJ0TWVhc3VyZVByaWNlUHJvdmlkZXI9cygoKCk9PigwLGwuZW5zdXJlTm90TnVsbCkodGhpcy5fc3RhcnRNZWFzdXJlUG9pbnQpLnByaWNlKSksdGhpcy5fZW5kTWVhc3VyZVByaWNlUHJvdmlkZXI9cygoKCk9PigwLGwuZW5zdXJlTm90TnVsbCkodGhpcy5fbGFzdE1lYXN1cmVQb2ludCgpKS5wcmljZSkpLHRoaXMuX3Byb3BlcnRpZXM9dDt0aGlzLl90aW1lQXhpc1ZpZXc9bmV3IEtkKGUsdGhpcywoKCk9PnRoaXMuYXBwbGllZEluZGV4KCkpLCExKSx0aGlzLl9zdGFydE1lYXN1cmVUaW1lQXhpc1ZpZXc9bmV3IEtkKGUsdGhpcywoKCk9PigwLGwuZW5zdXJlTm90TnVsbCkodGhpcy5fc3RhcnRNZWFzdXJlUG9pbnQpLmluZGV4KSwhMCksdGhpcy5fZW5kTWVhc3VyZVRpbWVBeGlzVmlldz1uZXcgS2QoZSx0aGlzLCgoKT0+KDAsbC5lbnN1cmVOb3ROdWxsKSh0aGlzLl9sYXN0TWVhc3VyZVBvaW50KCkpLmluZGV4KSwhMCksdGhpcy5fY3Vyc29yVG9vbD1ULmN1cnNvclRvb2wuc3Bhd24oKSxlLnJlYWRPbmx5KCl8fHRoaXMuX2N1cnNvclRvb2wuc3Vic2NyaWJlKChlPT50aGlzLmFyZUxpbmVzVmlzaWJsZT0iYXJyb3ciIT09ZSkse2NhbGxXaXRoTGFzdDohMH0pLHRoaXMuX2Nyb3NzaGFpckxvY2s9VC5jcm9zc2hhaXJMb2NrLnNwYXduKCksdGhpcy5fc2hvd1BsdXNCdXR0b25PbkN1cnNvcj1kZC5zaG93UGx1c0J1dHRvbk9uQ3Vyc29yLnNwYXduKCk7Y29uc3Qgbj0oKT0+e3RoaXMudXBkYXRlQWxsVmlld3MoKDAsdG4uc291cmNlQ2hhbmdlRXZlbnQpKHRoaXMuaWQoKSkpLHRoaXMuX21vZGVsLmxpZ2h0VXBkYXRlKCl9O3RoaXMuX2Nyb3NzaGFpckxvY2suc3Vic2NyaWJlKG4pLHRoaXMuX3Nob3dQbHVzQnV0dG9uT25DdXJzb3Iuc3Vic2NyaWJlKG4pfWRlc3Ryb3koKXtudWxsIT09dGhpcy5fdm9sdW1lQ2FsY3VsYXRvciYmdGhpcy5fdm9sdW1lQ2FsY3VsYXRvci5kZXN0cm95KCksdGhpcy5fbWVhc3VyZVBhbmUuc2V0VmFsdWUobnVsbCksdGhpcy5fY3Jvc3NoYWlyTG9jay5kZXN0cm95KCksdGhpcy5fc2hvd1BsdXNCdXR0b25PbkN1cnNvci5kZXN0cm95KCksdGhpcy5fY3Vyc29yVG9vbC5kZXN0cm95KCksdGhpcy5fcmVtb3ZlTWVhc3VyZVBvaW50c2V0KCksdGhpcy5fY3Jvc3NoYWlyRGVtb25zdHJhdGlvbi5kZXN0cm95KCksdGhpcy5fc3Vic2NyaWJlZCYmKHRoaXMuX21vZGVsLm1haW5TZXJpZXMoKS5vblJlc3RhcnRlZCgpLnVuc3Vic2NyaWJlQWxsKHRoaXMpLHRoaXMuX3N1YnNjcmliZWQ9ITEpLHRoaXMuX21vZGVsLnBhbmVzQ29sbGVjdGlvbkNoYW5nZWQoKS51bnN1YnNjcmliZSh0aGlzLHRoaXMuX3BhbmVDb2xsZWN0aW9uQ2hhbmdlZCksdGhpcy5fcGFuZVByaWNlQXhpc1ZpZXdzLmZvckVhY2goKGU9PmUuZm9yRWFjaCgoZT0+ZS5kZXN0cm95Py4oKSkpKSksdGhpcy5fcGFuZVByaWNlQXhpc1ZpZXdzLmNsZWFyKCksc3VwZXIuZGVzdHJveSgpfW5hbWUoKXtyZXR1cm4iQ3Jvc3NoYWlyIn1tb3ZlZCgpe3JldHVybiB0aGlzLl9tb3ZlZERlbGVnYXRlfW9yaWdpblgoKXtyZXR1cm4gdGhpcy5fb3JpZ2luWH1vcmlnaW5ZKCl7cmV0dXJuIHRoaXMuX29yaWdpbll9c2F2ZU9yaWdpbkNvb3JkcyhlLHQpe3RoaXMuX29yaWdpblg9ZSx0aGlzLl9vcmlnaW5ZPXR9Y2xlYXJPcmlnaW5Db29yZHMoKXt0aGlzLl9vcmlnaW5YPU5hTix0aGlzLl9vcmlnaW5ZPU5hTn1jdXJyZW50UG9pbnQoKXtyZXR1cm4gbmV3IFB0LlBvaW50KHRoaXMueCx0aGlzLnkpfW1vZGVsKCl7CnJldHVybiB0aGlzLl9tb2RlbH1hcHBsaWVkSW5kZXgoKXtyZXR1cm4gdGhpcy5fZ2V0TG9ja0RhdGEoKS5pbmRleD8/dGhpcy5pbmRleH1sb2NrZWRYKCl7cmV0dXJuIHRoaXMuX2dldExvY2tEYXRhKCkueENvb3JkPz9udWxsfWxvY2tlZFkoKXtyZXR1cm4gdGhpcy5fZ2V0TG9ja0RhdGEoKS55Q29vcmQ/P251bGx9bG9ja2VkUGFuZSgpe2NvbnN0IGU9VC5jcm9zc2hhaXJMb2NrLnZhbHVlKCk7cmV0dXJuIG51bGw9PT1lfHwxIT09ZS50eXBlP251bGw6dGhpcy5fbW9kZWwuaWQoKT09PWUubW9kZWxJZD90aGlzLl9tb2RlbC5wYW5lRm9ySWQoZS5wYW5lSWQpOnRoaXMuX21vZGVsLm1haW5QYW5lKCl9aW52YWxpZGF0ZUxvY2tQb3NpdGlvbigpe3RoaXMuX2xvY2tEYXRhPW51bGx9c3RhcnRNZWFzdXJlUG9pbnQoKXtyZXR1cm4gdGhpcy5fc3RhcnRNZWFzdXJlUG9pbnR8fG51bGx9ZW5kTWVhc3VyZVBvaW50KCl7cmV0dXJuIHRoaXMuX2VuZE1lYXN1cmVQb2ludHx8bnVsbH1tZWFzdXJlVm9sdW1lKCl7aWYobnVsbD09PXRoaXMuX3ZvbHVtZUNhbGN1bGF0b3IpcmV0dXJuIE5hTjtjb25zdFtlLHRdPXRoaXMubWVhc3VyZVBvaW50cygpO3JldHVybiB2b2lkIDA9PT10P05hTjp0aGlzLl92b2x1bWVDYWxjdWxhdG9yLnZvbHVtZShlLmluZGV4LHQuaW5kZXgpfW1lYXN1cmVQYW5lKCl7cmV0dXJuIHRoaXMuX21lYXN1cmVQYW5lLnJlYWRvbmx5KCl9Y3Jvc3NoYWlyRGVtb25zdHJhdGlvbigpe3JldHVybiB0aGlzLl9jcm9zc2hhaXJEZW1vbnN0cmF0aW9ufXN0YXJ0TWVhc3VyaW5nKGUsdCl7dGhpcy5fc3RhcnRNZWFzdXJlUG9pbnQ9ZSx0aGlzLl9tZWFzdXJlUGFuZS5zZXRWYWx1ZSh0KSx0LmNvbnRhaW5zTWFpblNlcmllcygpJiYoKDAsbC5hc3NlcnQpKG51bGw9PT10aGlzLl92b2x1bWVDYWxjdWxhdG9yKSx0aGlzLl92b2x1bWVDYWxjdWxhdG9yPW5ldyBaZC5TZXJpZXNUaW1lUmFuZ2VWb2x1bWVDYWxjdWxhdG9yKHRoaXMubW9kZWwoKS5tYWluU2VyaWVzKCkpKSx0aGlzLl9tb2RlbC51cGRhdGVQYW5lKHQpfWZpbmlzaE1lYXN1cmUoZSl7dGhpcy5fZW5kTWVhc3VyZVBvaW50PWUsdGhpcy5fY3JlYXRlTWVhc3VyZVBvaW50c2V0KCgwLGwuZW5zdXJlTm90TnVsbCkodGhpcy5fc3RhcnRNZWFzdXJlUG9pbnQpLHRoaXMuX2VuZE1lYXN1cmVQb2ludCl9Y2xlYXJNZWFzdXJlKCl7dGhpcy5fcmVtb3ZlTWVhc3VyZVBvaW50c2V0KCksdGhpcy5fbWVhc3VyZVBhbmUuc2V0VmFsdWUobnVsbCksZGVsZXRlIHRoaXMuX3N0YXJ0TWVhc3VyZVBvaW50LGRlbGV0ZSB0aGlzLl9lbmRNZWFzdXJlUG9pbnQsZGVsZXRlIHRoaXMuX2xhc3RWYWxpZE1lYXN1cmVQb2ludCx0aGlzLl9tb2RlbC5saWdodFVwZGF0ZSgpLG51bGwhPT10aGlzLl92b2x1bWVDYWxjdWxhdG9yJiYodGhpcy5fdm9sdW1lQ2FsY3VsYXRvci5kZXN0cm95KCksdGhpcy5fdm9sdW1lQ2FsY3VsYXRvcj1udWxsKX1tZWFzdXJlUG9pbnRzKCl7Y29uc3QgZT1bKDAsbC5lbnN1cmVOb3ROdWxsKSh0aGlzLl9zdGFydE1lYXN1cmVQb2ludCldLHQ9dGhpcy5fbGFzdE1lYXN1cmVQb2ludCgpO3JldHVybiBudWxsIT09dCYmZS5wdXNoKHQpLGV9c3RhcnRTZWxlY3Rpb24oZSl7dGhpcy5fc2VsZWN0aW9uU3RhcnRQb2ludD10aGlzLmN1cnJlbnRMb2dpY2FsUG9pbnQoKSx0aGlzLl9zZWxlY3Rpb25QYW5lPWV9Y2xlYXJTZWxlY3Rpb24oKXt0aGlzLl9zZWxlY3Rpb25TdGFydFBvaW50PW51bGwsdGhpcy5fc2VsZWN0aW9uUGFuZT1udWxsfXNlbGVjdGlvbigpe3JldHVybiB0aGlzLl9zZWxlY3Rpb25TdGFydFBvaW50P3twMTp0aGlzLl9zZWxlY3Rpb25TdGFydFBvaW50LHAyOnRoaXMuY3VycmVudExvZ2ljYWxQb2ludCgpfTpudWxsfWN1cnJlbnRMb2dpY2FsUG9pbnQoKXtyZXR1cm57aW5kZXg6dGhpcy5hcHBsaWVkSW5kZXgoKSxwcmljZTp0aGlzLnByaWNlfX1zZWxlY3RQb2ludE1vZGUoKXtyZXR1cm4gdGhpcy5fY3Jvc3NIYWlyU2VsZWN0UG9pbnRNb2RlfWxpbmVDb2xvcigpe3JldHVybiB0aGlzLl9yZXF1ZXN0UG9pbnRQYXJhbXM/LmxpbmVDb2xvcj8/bnVsbH1jYW5jZWxSZXF1ZXN0U2VsZWN0UG9pbnQoKXt0aGlzLl9jcm9zc0hhaXJTZWxlY3RQb2ludE1vZGUudmFsdWUoKSE9PVQuU2VsZWN0UG9pbnRNb2RlLk5vbmUmJnRoaXMuX3NldFNlbGVjdFBvaW50TW9kZVN0YXRlKFQuU2VsZWN0UG9pbnRNb2RlLk5vbmUpLHRoaXMuX3JlcXVlc3RQb2ludFBhcmFtcz1udWxsfXJlcXVlc3RQb2ludFBhcmFtcygpe3JldHVybiB0aGlzLl9yZXF1ZXN0UG9pbnRQYXJhbXN9cmVxdWVzdFNlbGVjdFBvaW50KGUpeygwLGwuYXNzZXJ0KSh0aGlzLl9jcm9zc0hhaXJTZWxlY3RQb2ludE1vZGUudmFsdWUoKT09PVQuU2VsZWN0UG9pbnRNb2RlLk5vbmUsIlBvaW50IGFscmVhZHkgcmVxdWVzdGVkIik7Y29uc3R7cG9pbnRUeXBlOnQscGFuZTppLGxpbmVDb2xvcjpzLGlnbm9yZUlmT3V0T2ZEYXRhOm49MyxzZWxlY3RGcm9tQWxsQ2hhcnRzSWZPdXRPZkRhdGE6cixzZWxlY3RQb2ludE1vZGU6bz1ULlNlbGVjdFBvaW50TW9kZS5TdHVkeSxhbGlnblRvVGhlTGF0ZXN0QmFySWZUaW1lUG9pbnRJc091dE9mRGF0YTphPWUuc2VsZWN0UG9pbnRNb2RlPT09VC5TZWxlY3RQb2ludE1vZGUuUmVwbGF5fT1lO3RoaXMuX3JlcXVlc3RQb2ludFBhcmFtcz17cG9pbnRUeXBlOnQscGFuZTppLGxpbmVDb2xvcjpzLGlnbm9yZUlmT3V0T2ZEYXRhOm4sc2VsZWN0RnJvbUFsbENoYXJ0c0lmT3V0T2ZEYXRhOnIsc2VsZWN0UG9pbnRNb2RlOm8sYWxpZ25Ub1RoZUxhdGVzdEJhcklmVGltZVBvaW50SXNPdXRPZkRhdGE6YX0saSYmKCgwLGwuYXNzZXJ0KSgtMSE9PXRoaXMuX21vZGVsLnBhbmVzKCkuaW5kZXhPZihpKSwiQ2hhcnQgbW9kZWwgZG9lc24ndCBjb250YWluIHNwZWNpZmllZCBwYW5lIiksdGhpcy5fbW9kZWwucGFuZXNDb2xsZWN0aW9uQ2hhbmdlZCgpLnN1YnNjcmliZSh0aGlzLHRoaXMuX3BhbmVDb2xsZWN0aW9uQ2hhbmdlZCkpLHRoaXMuX3NldFNlbGVjdFBvaW50TW9kZVN0YXRlKG8pfW9uUG9pbnRTZWxlY3RlZCgpewpyZXR1cm4gdGhpcy5fcG9pbnRTZWxlY3RlZERlbGVnYXRlfXRyeVNlbGVjdEN1cnJlbnRQb2ludCgpe2NvbnN0IGU9dGhpcy5wYW5lO2lmKCFlKXJldHVybjtjb25zdHtwb2ludFR5cGU6dCxzZWxlY3RGcm9tQWxsQ2hhcnRzSWZPdXRPZkRhdGE6aSxpZ25vcmVJZk91dE9mRGF0YTpzLHBhbmU6bn09KDAsbC5lbnN1cmVOb3ROdWxsKSh0aGlzLl9yZXF1ZXN0UG9pbnRQYXJhbXMpLHI9dGhpcy5fbW9kZWwubWFpblNlcmllcygpLmJhcnMoKSxvPXIuZmlyc3RJbmRleCgpLGE9ci5sYXN0SW5kZXgoKTtpZihudWxsPT09b3x8bnVsbD09PWEpcmV0dXJuO2xldCBjPW51bGw7aWYoIXIuc2VhcmNoKHRoaXMuaW5kZXgsWm8uUGxvdFJvd1NlYXJjaE1vZGUuRXhhY3QpJiYicHJpY2UiIT09dCYmaSYmKGM9TWF0aC5taW4oLi4uQXJyYXkuZnJvbShULmJhclRpbWVzVW5kZXJDdXJzb3IudmFsdWVzKCkpKT8/bnVsbCxudWxsPT09YykpcmV0dXJuO2lmKG4mJm4hPT1lKXJldHVybjtsZXQgaCxkPWM7aWYoInByaWNlIiE9PXQmJm51bGw9PT1jKXtjb25zdCBlPXRoaXMuaW5kZXg7c3dpdGNoKHMpe2Nhc2UgMzppZihlPG98fGU+YSlyZXR1cm47YnJlYWs7Y2FzZSAxOmlmKGU8bylyZXR1cm47YnJlYWs7Y2FzZSAyOmlmKGU+YSlyZXR1cm59aWYoZD10aGlzLl9tb2RlbC50aW1lU2NhbGUoKS5pbmRleFRvVGltZVBvaW50KGUpLG51bGw9PT1kKXJldHVybn1pZigidGltZSIhPT10KXtjb25zdCB0PWUubWFpbkRhdGFTb3VyY2UoKTtpZihudWxsPT09dClyZXR1cm47Y29uc3QgaT10LmZpcnN0VmFsdWUoKSxzPXQucHJpY2VTY2FsZSgpO2lmKG51bGw9PT1pfHxudWxsPT09cylyZXR1cm47aD1zLmNvb3JkaW5hdGVUb1ByaWNlKHRoaXMueSxpKX10aGlzLl9zZXRTZWxlY3RQb2ludE1vZGVTdGF0ZShULlNlbGVjdFBvaW50TW9kZS5Ob25lKSx0aGlzLl9wb2ludFNlbGVjdGVkRGVsZWdhdGUuZmlyZSh7dGltZTpkPz92b2lkIDAscHJpY2U6aH0sZSl9aXNPbkhvdmVyZWRDaGFydFdpZGdldCgpe3JldHVybiB0aGlzLl9pc09uSG92ZXJlZENoYXJ0V2lkZ2V0fXNldE9uSG92ZXJlZENoYXJ0V2lkZ2V0KGUpe3RoaXMuX2lzT25Ib3ZlcmVkQ2hhcnRXaWRnZXQ9ZX1pc1JlcGxheVNlbGVjdGlvbigpe3JldHVybigiQWxsQ2hhcnRzIj09PVNlLnZhbHVlKCl8fHRoaXMuX2lzT25Ib3ZlcmVkQ2hhcnRXaWRnZXQpJiZ0aGlzLl9jcm9zc0hhaXJTZWxlY3RQb2ludE1vZGUudmFsdWUoKT09PVQuU2VsZWN0UG9pbnRNb2RlLlJlcGxheX1jbGVhclBvc2l0aW9uKCl7dGhpcy52aXNpYmxlPSExLHRoaXMuaW5kZXg9TmFOLHRoaXMucHJpY2U9TmFOLHRoaXMueD1OYU4sdGhpcy55PU5hTix0aGlzLnBhbmU9bnVsbCx0aGlzLmNsZWFyT3JpZ2luQ29vcmRzKCksdGhpcy5fdXBkYXRlVmlzaWJpbGl0eURlcGVuZGVudFBhbmVWaWV3cygpfXNldFBvc2l0aW9uKGUsdCxpKXt0aGlzLl9zdWJzY3JpYmVkfHwodGhpcy5fbW9kZWwubWFpblNlcmllcygpLm9uUmVzdGFydGVkKCkuc3Vic2NyaWJlKHRoaXMsdGhpcy5jbGVhck1lYXN1cmUpLHRoaXMuX3N1YnNjcmliZWQ9ITApLHRoaXMudmlzaWJsZT0hMDtjb25zdCBzPXRoaXMuX21vZGVsLmlkKCksbj10aGlzLl9tb2RlbC5tYWluU2VyaWVzKCkuYmFycygpLnNlYXJjaCh0aGlzLmluZGV4LFpvLlBsb3RSb3dTZWFyY2hNb2RlLk5lYXJlc3RSaWdodCk7cmV0dXJuIG4mJlQuYmFyVGltZXNVbmRlckN1cnNvci5zZXQocyxuLnZhbHVlWzBdKSx0aGlzLl90cnlUb1VwZGF0ZVZpZXdzKGUsdCxpKX1zZXRMaW5lc1Nob3VsZEJlSGlkZGVuKGUpe3RoaXMuX2xpbmVzU2hvdWxkQmVIaWRkZW49ZX1saW5lc1Nob3VsZEJlSGlkZGVuKCl7cmV0dXJuIHRoaXMuX2xpbmVzU2hvdWxkQmVIaWRkZW59aGFuZGxlQ29udGV4dE1lbnVFdmVudChlKXt0aGlzLl9jcm9zc0hhaXJTZWxlY3RQb2ludE1vZGUudmFsdWUoKSE9PVQuU2VsZWN0UG9pbnRNb2RlLk5vbmUmJnRoaXMuX3NldFNlbGVjdFBvaW50TW9kZVN0YXRlKFQuU2VsZWN0UG9pbnRNb2RlLk5vbmUpfXByb3BlcnRpZXMoKXtyZXR1cm4gdGhpcy5fcHJvcGVydGllc31wcmljZUF4aXNWaWV3cyhlLHQpe2NvbnN0IGk9dGhpcy5fcmVxdWVzdFBvaW50UGFyYW1zPy5wb2ludFR5cGUscz0haXx8InRpbWUiIT09aXx8IXRoaXMuX2lzT25Ib3ZlcmVkQ2hhcnRXaWRnZXQsbj1bXTtyZXR1cm4odGhpcy5sb2NrZWRQYW5lKCk/P3RoaXMucGFuZSk9PT1lJiZzJiZuLnB1c2godGhpcy5fY3JlYXRlUHJpY2VBeGlzVmlld09uRGVtYW5kKHRoaXMuX3ByaWNlQXhpc1ZpZXdzLHRoaXMuX3BhbmVQcmljZUF4aXNWaWV3cyxlLHQsdGhpcy5fY3VycmVudFBvc1ByaWNlUHJvdmlkZXIsUWgsITApWzBdKSx0aGlzLl9zdGFydE1lYXN1cmVQb2ludCYmbi5wdXNoKHRoaXMuX2NyZWF0ZVByaWNlQXhpc1ZpZXdPbkRlbWFuZCh0aGlzLl9zdGFydE1lYXN1cmVQcmljZUF4aXNWaWV3cyxudWxsLGUsdCx0aGlzLl9zdGFydE1lYXN1cmVQcmljZVByb3ZpZGVyLGVkKVswXSksdGhpcy5fbGFzdE1lYXN1cmVQb2ludCgpJiZuLnB1c2godGhpcy5fY3JlYXRlUHJpY2VBeGlzVmlld09uRGVtYW5kKHRoaXMuX2VuZE1lYXN1cmVQcmljZUF4aXNWaWV3cyxudWxsLGUsdCx0aGlzLl9lbmRNZWFzdXJlUHJpY2VQcm92aWRlcixlZClbMF0pLG59dGltZUF4aXNWaWV3cygpe2NvbnN0IGU9W10sdD10aGlzLl9yZXF1ZXN0UG9pbnRQYXJhbXM/LnBvaW50VHlwZSxpPSF0fHwicHJpY2UiIT09dHx8IXRoaXMuX2lzT25Ib3ZlcmVkQ2hhcnRXaWRnZXQ7cmV0dXJuIHRoaXMuX2xpbmVzU2hvdWxkQmVIaWRkZW58fCF0aGlzLnZpc2libGUmJm51bGw9PT1ULmNyb3NzaGFpckxvY2sudmFsdWUoKXx8IWl8fGUucHVzaCh0aGlzLl90aW1lQXhpc1ZpZXcpLHRoaXMuX3N0YXJ0TWVhc3VyZVBvaW50JiZlLnB1c2godGhpcy5fc3RhcnRNZWFzdXJlVGltZUF4aXNWaWV3KSx0aGlzLl9sYXN0TWVhc3VyZVBvaW50KCkmJmUucHVzaCh0aGlzLl9lbmRNZWFzdXJlVGltZUF4aXNWaWV3KSxlfXBhbmVWaWV3cyhlKXtpZih2b2lkIDA9PT1lfHxlLm1vZGUoKSE9PU0uUGFuZU1vZGUuUmVndWxhcilyZXR1cm4gbnVsbDtjb25zdCB0PVtdCjtpZih0aGlzLmlzUmVwbGF5U2VsZWN0aW9uKCkpe2xldCBpPXRoaXMuX3BvaW50U2VsZWN0aW9uUGFuZVZpZXdDYWNoZS5nZXQoZSk7aXx8KGk9bmV3IHpkKHRoaXMsZSx0aGlzLl9tb2RlbCksdGhpcy5fcG9pbnRTZWxlY3Rpb25QYW5lVmlld0NhY2hlLnNldChlLGkpKSx0LnB1c2goaSl9bGV0IGk9dGhpcy5fY3Jvc3NoYWlyUGFuZVZpZXdDYWNoZS5nZXQoZSk7aWYoaXx8KGk9bmV3IGdkKHRoaXMsZSksdGhpcy5fY3Jvc3NoYWlyUGFuZVZpZXdDYWNoZS5zZXQoZSxpKSksdC5wdXNoKGkpLGU9PT10aGlzLl9zZWxlY3Rpb25QYW5lJiZ0LnB1c2godGhpcy5fc2VsZWN0aW9uVmlldyksZT09PXRoaXMuX21lYXN1cmVQYW5lLnZhbHVlKCkpe2xldCBpPXRoaXMuX21lYXN1cmVQYW5lVmlld0NhY2hlLmdldChlKTtpfHwoaT1uZXcgTmQodGhpcyxlKSx0aGlzLl9tZWFzdXJlUGFuZVZpZXdDYWNoZS5zZXQoZSxpKSksaS51cGRhdGUoKDAsdG4uc291cmNlQ2hhbmdlRXZlbnQpKHRoaXMuaWQoKSkpLHQucHVzaChpKX1pZigoZGQuYWRkUGx1c0J1dHRvblByb3BlcnR5LnZhbHVlKCl8fHRoaXMuX3Nob3dQbHVzQnV0dG9uT25DdXJzb3IudmFsdWUoKSkmJjEhPT1ULmNyb3NzaGFpckxvY2sudmFsdWUoKT8udHlwZSl7Y29uc3QgaT1lPT09dGhpcy5wYW5lLHM9IUouQ2hlY2tNb2JpbGUuYW55KCl8fHdpbmRvdy5zY3JlZW4ud2lkdGg+PTMyMCxuPVQudG9vbC52YWx1ZSgpLHI9KDAsbS5pc0xpbmVUb29sTmFtZSkobiksbz1udWxsIT09dGhpcy5fbW9kZWwubGluZUJlaW5nRWRpdGVkKCl8fG51bGwhPT10aGlzLl9tb2RlbC5saW5lQmVpbmdDcmVhdGVkKCl8fHRoaXMuX21vZGVsLnNvdXJjZXNCZWluZ01vdmVkKCkubGVuZ3RoPjB8fG51bGwhPT10aGlzLl9tb2RlbC5jdXN0b21Tb3VyY2VCZWluZ01vdmVkKCl8fCgwLFQudG9vbElzTWVhc3VyZSkobik7aWYoaSYmdGhpcy5faXNPbkhvdmVyZWRDaGFydFdpZGdldCYmdGhpcy5fY3Jvc3NIYWlyU2VsZWN0UG9pbnRNb2RlLnZhbHVlKCk9PT1ULlNlbGVjdFBvaW50TW9kZS5Ob25lJiZzJiYhciYmIW8pe2NvbnN0IGk9ZS5tYWluRGF0YVNvdXJjZSgpO2lmKG51bGwhPT1pKXtjb25zdCBzPWkucHJpY2VTY2FsZSgpO2lmKG51bGwhPT1zKXtjb25zdCBpPXRoaXMuX2NyZWF0ZVByaWNlQXhpc1ZpZXdPbkRlbWFuZCh0aGlzLl9wcmljZUF4aXNWaWV3cyx0aGlzLl9wYW5lUHJpY2VBeGlzVmlld3MsZSxzLHRoaXMuX2N1cnJlbnRQb3NQcmljZVByb3ZpZGVyLFFoLCEwKVsxXTtudWxsIT09aSYmdC5wdXNoKGkpfX19fXJldHVybiAwPT09VC5jcm9zc2hhaXJMb2NrLnZhbHVlKCk/LnR5cGUmJihudWxsPT09dGhpcy5fdGltZUxvY2tQYW5lVmlldyYmKHRoaXMuX3RpbWVMb2NrUGFuZVZpZXc9bmV3IEZkKHRoaXMpKSx0LnB1c2godGhpcy5fdGltZUxvY2tQYW5lVmlldykpLHQucHVzaCguLi50aGlzLl9jcm9zc2hhaXJEZW1vbnN0cmF0aW9uLnBhbmVWaWV3cyhlKSksdH1kYXRhV2luZG93Vmlldygpe3JldHVybiB0aGlzLl9kYXRhV2luZG93Vmlld311cGRhdGVBbGxWaWV3cyhlKXt0aGlzLl9wcmljZUF4aXNWaWV3cy5mb3JFYWNoKCh0PT57dC5mb3JFYWNoKCh0PT50LnVwZGF0ZShlKSkpfSkpLHRoaXMuX3BhbmVQcmljZUF4aXNWaWV3cy5mb3JFYWNoKCh0PT57dC5mb3JFYWNoKCh0PT50LnVwZGF0ZShlKSkpfSkpLHRoaXMuX3N0YXJ0TWVhc3VyZVBvaW50JiYodGhpcy5fc3RhcnRNZWFzdXJlUHJpY2VBeGlzVmlld3MuZm9yRWFjaCgodD0+e3QuZm9yRWFjaCgodD0+dC51cGRhdGUoZSkpKX0pKSx0aGlzLl9zdGFydE1lYXN1cmVUaW1lQXhpc1ZpZXcudXBkYXRlKGUpKSx0aGlzLl9sYXN0TWVhc3VyZVBvaW50KCkmJih0aGlzLl9lbmRNZWFzdXJlUHJpY2VBeGlzVmlld3MuZm9yRWFjaCgodD0+e3QuZm9yRWFjaCgodD0+dC51cGRhdGUoZSkpKX0pKSx0aGlzLl9lbmRNZWFzdXJlVGltZUF4aXNWaWV3LnVwZGF0ZShlKSksdGhpcy5fdGltZUF4aXNWaWV3LnVwZGF0ZShlKSx0aGlzLl9zZWxlY3Rpb25WaWV3LnVwZGF0ZSgpLHRoaXMuX2RhdGFXaW5kb3dWaWV3LnVwZGF0ZSgpLHRoaXMuX2Nyb3NzaGFpckRlbW9uc3RyYXRpb24udXBkYXRlKGUpLHRoaXMuX3VwZGF0ZVZpc2liaWxpdHlEZXBlbmRlbnRQYW5lVmlld3MoKX1pc01lbnVFbmFibGVkKCl7cmV0dXJuIHRoaXMuX29wdGlvbnMubWVudUVuYWJsZWR9aXNIb3ZlcmVkRW5hYmxlZCgpe3JldHVybiBkZC5hZGRQbHVzQnV0dG9uUHJvcGVydHkudmFsdWUoKXx8dGhpcy5fc2hvd1BsdXNCdXR0b25PbkN1cnNvci52YWx1ZSgpfWlzSG92ZXJlZCgpe3JldHVybiB0aGlzLl9tb2RlbC5ob3ZlcmVkU291cmNlKCk9PT10aGlzfXBvaW50VG9TZWxlY3QoKXtyZXR1cm4gdGhpcy5fcmVxdWVzdFBvaW50UGFyYW1zPy5wb2ludFR5cGU/P251bGx9cGFuZUZvclBvaW50U2VsZWN0KCl7cmV0dXJuIHRoaXMuX3JlcXVlc3RQb2ludFBhcmFtcz8ucGFuZT8/bnVsbH1jb250ZXh0TWVudVN0YXROYW1lKCl7cmV0dXJuIkNyb3NzSGFpckNvbnRleHRNZW51In1yZXN0YXJ0KCl7dGhpcy5fY3VycmVudE1lYXN1cmVQb2ludHNldEFuZFN5bWJvbElkPW51bGwsdGhpcy5fbm9ybWFsaXplZE1lYXN1cmVQb2ludHMmJnRoaXMuX2NyZWF0ZU1lYXN1cmVQb2ludHNldFdpdGhOb3JtYWxpemVkUG9pbnRzKHRoaXMuX25vcm1hbGl6ZWRNZWFzdXJlUG9pbnRzKX1fbGFzdE1lYXN1cmVQb2ludCgpe3JldHVybiB0aGlzLl9lbmRNZWFzdXJlUG9pbnQ/dGhpcy5fZW5kTWVhc3VyZVBvaW50OihudWxsIT09dGhpcy5wYW5lJiZ0aGlzLl9tZWFzdXJlUGFuZS52YWx1ZSgpPT09dGhpcy5wYW5lJiYodGhpcy5fbGFzdFZhbGlkTWVhc3VyZVBvaW50PXtwcmljZTp0aGlzLl9tb2RlbC5tYWduZXQoKS5hbGlnbih0aGlzLnByaWNlLHRoaXMuaW5kZXgsdGhpcy5wYW5lKSxpbmRleDp0aGlzLmluZGV4fSksdGhpcy5fbGFzdFZhbGlkTWVhc3VyZVBvaW50fHxudWxsKX1fY3JlYXRlUHJpY2VBeGlzVmlld09uRGVtYW5kKGUsdCxpLHMsbixyLG89ITEpe2xldCBhPWUuZ2V0KGkpLGM9bnVsbCE9PXQ/dC5nZXQoaSk6dm9pZCAwO3ZvaWQgMD09PWEmJihhPW5ldyBNYXAsCmUuc2V0KGksYSksdGhpcy5pc01lbnVFbmFibGVkKCkmJm51bGwhPT10JiYoYz1uZXcgTWFwLHQuc2V0KGksYykpLG8mJmkub25EZXN0cm95ZWQoKS5zdWJzY3JpYmUodGhpcywoKCk9PnRoaXMuX29uUGFuZURlc3Ryb3llZChpKSkpKTtsZXQgaD1hLmdldChzKTtpZih2b2lkIDA9PT1oKXtpZihoPW5ldyByKHRoaXMsaSxzLG4pLGEuc2V0KHMsaCksdm9pZCAwIT09Yyl7Y29uc3QgZT1uZXcgdWQoaCx0aGlzLHMsdGhpcy5fbW9kZWwsdGhpcy5fb3B0aW9ucyk7Yy5zZXQocyxlKX1vJiZzLmxhc3RTb3VyY2VSZW1vdmVkKCkuc3Vic2NyaWJlKHRoaXMsKCgpPT50aGlzLl9vblByaWNlU2NhbGVDbGVhcmVkKHMpKSl9bGV0IGQ9bnVsbDtyZXR1cm4gdm9pZCAwIT09YyYmKGQ9KDAsbC5lbnN1cmVEZWZpbmVkKShjLmdldChzKSkpLFtoLGRdfV9vblBhbmVEZXN0cm95ZWQoZSl7ZS5vbkRlc3Ryb3llZCgpLnVuc3Vic2NyaWJlQWxsKHRoaXMpLHRoaXMuX3ByaWNlQXhpc1ZpZXdzLmRlbGV0ZShlKSx0aGlzLl9wYW5lUHJpY2VBeGlzVmlld3MuZ2V0KGUpPy5mb3JFYWNoKChlPT5lLmRlc3Ryb3k/LigpKSksdGhpcy5fcGFuZVByaWNlQXhpc1ZpZXdzLmRlbGV0ZShlKSx0aGlzLl9zdGFydE1lYXN1cmVQcmljZUF4aXNWaWV3cy5kZWxldGUoZSksdGhpcy5fZW5kTWVhc3VyZVByaWNlQXhpc1ZpZXdzLmRlbGV0ZShlKX1fb25QcmljZVNjYWxlQ2xlYXJlZChlKXtlLmxhc3RTb3VyY2VSZW1vdmVkKCkudW5zdWJzY3JpYmVBbGwodGhpcyksdGhpcy5fcHJpY2VBeGlzVmlld3MuZm9yRWFjaCgodD0+dC5kZWxldGUoZSkpKSx0aGlzLl9wYW5lUHJpY2VBeGlzVmlld3MuZm9yRWFjaCgodD0+e3QuZ2V0KGUpPy5kZXN0cm95Py4oKSx0LmRlbGV0ZShlKX0pKSx0aGlzLl9zdGFydE1lYXN1cmVQcmljZUF4aXNWaWV3cy5mb3JFYWNoKCh0PT50LmRlbGV0ZShlKSkpLHRoaXMuX2VuZE1lYXN1cmVQcmljZUF4aXNWaWV3cy5mb3JFYWNoKCh0PT50LmRlbGV0ZShlKSkpfV90cnlUb1VwZGF0ZVZpZXdzKGUsdCxpKXtyZXR1cm4hIXRoaXMuX3RyeVRvVXBkYXRlRGF0YShlLHQsaSkmJih0aGlzLnVwZGF0ZUFsbFZpZXdzKCgwLHRuLnNvdXJjZUNoYW5nZUV2ZW50KSh0aGlzLmlkKCkpKSx0aGlzLl9tb3ZlZERlbGVnYXRlLmZpcmUoe2luZGV4OnRoaXMuaW5kZXgscHJpY2U6dGhpcy5wcmljZX0pLCEwKX1fdHJ5VG9VcGRhdGVEYXRhKGUsdCxpKXtjb25zdCBzPXRoaXMueCxuPXRoaXMueSxyPXRoaXMucHJpY2Usbz10aGlzLmluZGV4LGE9dGhpcy5wYW5lLGM9dGhpcy5fcHJpY2VTY2FsZUJ5UGFuZShpKTtpZih0aGlzLmluZGV4PWUsdGhpcy54PWlzTmFOKGUpP05hTjp0aGlzLl9tb2RlbC50aW1lU2NhbGUoKS5pbmRleFRvQ29vcmRpbmF0ZShlKSxudWxsIT09YyYmbnVsbCE9PWkpe3RoaXMucGFuZT1pLHRoaXMucHJpY2U9dDtjb25zdCBlPSgwLGwuZW5zdXJlTm90TnVsbCkoaS5tYWluRGF0YVNvdXJjZSgpKS5maXJzdFZhbHVlKCk7dGhpcy55PW51bGw9PT1lP05hTjpjLnByaWNlVG9Db29yZGluYXRlKHQsZSl9ZWxzZSB0aGlzLnBhbmU9bnVsbCx0aGlzLnByaWNlPU5hTix0aGlzLnk9TmFOO3JldHVybiBzIT09dGhpcy54fHxuIT09dGhpcy55fHxvIT09dGhpcy5pbmRleHx8ciE9PXRoaXMucHJpY2V8fGEhPT10aGlzLnBhbmV9X3ByaWNlU2NhbGVCeVBhbmUoZSl7cmV0dXJuIGUmJiFlLmRlZmF1bHRQcmljZVNjYWxlKCkuaXNFbXB0eSgpP2UuZGVmYXVsdFByaWNlU2NhbGUoKTpudWxsfV9zZXRTZWxlY3RQb2ludE1vZGVTdGF0ZShlKXtlPT09VC5TZWxlY3RQb2ludE1vZGUuTm9uZSYmKHRoaXMuX3JlcXVlc3RQb2ludFBhcmFtcz8ucGFuZSYmdGhpcy5fbW9kZWwucGFuZXNDb2xsZWN0aW9uQ2hhbmdlZCgpLnVuc3Vic2NyaWJlKHRoaXMsdGhpcy5fcGFuZUNvbGxlY3Rpb25DaGFuZ2VkKSx0aGlzLl9yZXF1ZXN0UG9pbnRQYXJhbXM9bnVsbCksVC5hY3RpdmVQb2ludFNlbGVjdGlvbk1vZGUuc2V0VmFsdWUoZSksdGhpcy5fY3Jvc3NIYWlyU2VsZWN0UG9pbnRNb2RlLnNldFZhbHVlKGUpLHRoaXMuX21vZGVsLmxpZ2h0VXBkYXRlKCl9X3BhbmVDb2xsZWN0aW9uQ2hhbmdlZChlKXtjb25zdCB0PXRoaXMucGFuZUZvclBvaW50U2VsZWN0KCk7bnVsbCE9PXQmJi0xPT09ZS5pbmRleE9mKHQpJiZ0aGlzLmNhbmNlbFJlcXVlc3RTZWxlY3RQb2ludCgpfV91cGRhdGVWaXNpYmlsaXR5RGVwZW5kZW50UGFuZVZpZXdzKCl7Zm9yKGNvbnN0IGUgb2YgdGhpcy5tb2RlbCgpLnBhbmVzKCkpdGhpcy5fcG9pbnRTZWxlY3Rpb25QYW5lVmlld0NhY2hlLmdldChlKT8udXBkYXRlKCl9X2dldExvY2tEYXRhKCl7aWYobnVsbD09PXRoaXMuX2xvY2tEYXRhKXtjb25zdCBlPVQuY3Jvc3NoYWlyTG9jay52YWx1ZSgpO2lmKG51bGw9PT1lKXRoaXMuX2xvY2tEYXRhPXt9O2Vsc2V7Y29uc3QgdD10aGlzLl9tb2RlbC50aW1lU2NhbGUoKSxpPXQucG9pbnRzKCkucm91Z2hJbmRleChlLnRpbWUpPz92b2lkIDAscz12b2lkIDA9PT1pP3ZvaWQgMDp0LmluZGV4VG9Db29yZGluYXRlKGkpO3N3aXRjaChlLnR5cGUpe2Nhc2UgMDp0aGlzLl9sb2NrRGF0YT17aW5kZXg6aSx4Q29vcmQ6c307YnJlYWs7Y2FzZSAxOntsZXQgdDtjb25zdCBuPXRoaXMubG9ja2VkUGFuZSgpO2lmKG51bGwhPT1uKXtjb25zdCBpPW4ubWFpbkRhdGFTb3VyY2UoKTtpZihudWxsIT09aSl7Y29uc3Qgcz1pLmZpcnN0VmFsdWUoKSxuPWkucHJpY2VTY2FsZSgpO251bGwhPT1uJiZudWxsIT09cyYmKHQ9bi5wcmljZVRvQ29vcmRpbmF0ZShlLnByaWNlLHMpKX19dGhpcy5fbG9ja0RhdGE9e2luZGV4OmkseENvb3JkOnMseUNvb3JkOnR9fX19fXJldHVybiB0aGlzLl9sb2NrRGF0YX1fY3JlYXRlTWVhc3VyZVBvaW50c2V0V2l0aE5vcm1hbGl6ZWRQb2ludHMoZSl7Y29uc3QgdD10aGlzLl9tb2RlbC5tYWluU2VyaWVzKCkuc2VyaWVzU291cmNlKCkuc3ltYm9sSW5zdGFuY2VJZCgpO2lmKG51bGw9PT10KXJldHVybjt0aGlzLl9yZW1vdmVNZWFzdXJlUG9pbnRzZXQoKSwrK3J1LHRoaXMuX2N1cnJlbnRNZWFzdXJlUG9pbnRzZXRBbmRTeW1ib2xJZD17bWVhc3VyZVBvaW50c2V0SWQ6cnUsCnN5bWJvbElkOnR9LHRoaXMuX25vcm1hbGl6ZWRNZWFzdXJlUG9pbnRzPWU7Y29uc3QgaT0oMCxaaC5nZXRTZXJ2ZXJJbnRlcnZhbCkodGhpcy5fbW9kZWwubWFpblNlcmllcygpLmludGVydmFsKCkpO3RoaXMuX21vZGVsLmNoYXJ0QXBpKCkuY3JlYXRlUG9pbnRzZXQodGhpcy5fY3VycmVudE1lYXN1cmVQb2ludHNldElkV2l0aFByZWZpeCgpLCJ0dXJuYXJvdW5kIix0aGlzLl9jdXJyZW50TWVhc3VyZVBvaW50c2V0QW5kU3ltYm9sSWQuc3ltYm9sSWQsaSxlLHRoaXMuX29uUG9pbnRzZXRSZXNwb25zZS5iaW5kKHRoaXMpKX1fY3JlYXRlTWVhc3VyZVBvaW50c2V0KGUsdCl7Y29uc3QgaT10aGlzLl9ub3JtYWxpemVQb2ludChlKSxzPXRoaXMuX25vcm1hbGl6ZVBvaW50KHQpLG49W1tpLnRpbWVfdCxpLm9mZnNldF0sW3MudGltZV90LHMub2Zmc2V0XV07dGhpcy5fY3JlYXRlTWVhc3VyZVBvaW50c2V0V2l0aE5vcm1hbGl6ZWRQb2ludHMobil9X3JlbW92ZU1lYXN1cmVQb2ludHNldCgpe251bGwhPT10aGlzLl9jdXJyZW50TWVhc3VyZVBvaW50c2V0QW5kU3ltYm9sSWQmJnRoaXMuX21vZGVsLmNoYXJ0QXBpKCkuaXNDb25uZWN0ZWQoKS52YWx1ZSgpJiZ0aGlzLl9tb2RlbC5jaGFydEFwaSgpLnJlbW92ZVBvaW50c2V0KHRoaXMuX2N1cnJlbnRNZWFzdXJlUG9pbnRzZXRJZFdpdGhQcmVmaXgoKSksdGhpcy5fY3VycmVudE1lYXN1cmVQb2ludHNldEFuZFN5bWJvbElkPW51bGwsdGhpcy5fbm9ybWFsaXplZE1lYXN1cmVQb2ludHM9bnVsbH1fY3VycmVudE1lYXN1cmVQb2ludHNldElkV2l0aFByZWZpeCgpe3JldHVybiJwb2ludHNldE1lYXN1cmVfIisoMCxsLmVuc3VyZU5vdE51bGwpKHRoaXMuX2N1cnJlbnRNZWFzdXJlUG9pbnRzZXRBbmRTeW1ib2xJZCkubWVhc3VyZVBvaW50c2V0SWR9X25vcm1hbGl6ZVBvaW50KGUpe3JldHVybnsuLi50aGlzLl9tb2RlbC50aW1lU2NhbGUoKS5ub3JtYWxpemVCYXJJbmRleChlLmluZGV4KSxwcmljZTplLnByaWNlfX1fb25Qb2ludHNldFJlc3BvbnNlKGUpe2lmKCJwb2ludHNldF9lcnJvciI9PT1lLm1ldGhvZClyZXR1cm4gdm9pZCBvdS5sb2dFcnJvcihgRXJyb3IgZ2V0dGluZyBwb2ludHNldDogJHtlLnBhcmFtc1swXX0gJHtlLnBhcmFtc1sxXX1gKTtpZihlLnBhcmFtcy5jdXN0b21JZCE9PXRoaXMuX2N1cnJlbnRNZWFzdXJlUG9pbnRzZXRJZFdpdGhQcmVmaXgoKSlyZXR1cm47aWYobnVsbD09PXRoaXMuX3N0YXJ0TWVhc3VyZVBvaW50fHxudWxsPT09dGhpcy5fZW5kTWVhc3VyZVBvaW50KXJldHVybjtjb25zdCB0PWUucGFyYW1zLnBsb3RzO2lmKDIhPT10Lmxlbmd0aClyZXR1cm47Y29uc3QgaT10WzBdLnZhbHVlWzBdLHM9dFsxXS52YWx1ZVswXTt0aGlzLl9zdGFydE1lYXN1cmVQb2ludC5pbmRleD1pLHRoaXMuX2VuZE1lYXN1cmVQb2ludC5pbmRleD1zLHRoaXMudXBkYXRlQWxsVmlld3MoKDAsdG4uc291cmNlQ2hhbmdlRXZlbnQpKHRoaXMuaWQoKSkpLHRoaXMuX21vZGVsLnVwZGF0ZVNvdXJjZSh0aGlzKX19dmFyIGx1PWkoMTQxNjUpLGN1PWkoOTEwMTI2KSxodT1pKDg3NTMwMSksZHU9aSg3MjM1MjUpLHV1PWkoMzA5MzYwKSxwdT1pKDE1NTYzKTtjb25zdCBfdT0oMCxjLmdldExvZ2dlcikoIkNoYXJ0LlN0dWRpZXMuU3R1ZHlJbnNlcnRlciIpLG11PS9eUFVCOy4qLztjbGFzcyBndXtjb25zdHJ1Y3RvcihlLHQpe3RoaXMuX3BhcmVudFNvdXJjZXM9W10sdGhpcy5fcHJvcHNTdGF0ZT12b2lkIDAsdGhpcy5fcHJlZmVycmVkUHJpY2VTY2FsZT12b2lkIDAsdGhpcy5fYWxsb3dDaGFuZ2VDdXJyZW5jeT0hMSx0aGlzLl9hbGxvd0NoYW5nZVVuaXQ9ITAsdGhpcy5fYWxsb3dDaGFuZ2VNZXRyaWM9ITAsdGhpcy5fcGFuZVNpemU9dm9pZCAwLHRoaXMuX2ZvcmNlT3ZlcmxheT0hMSx0aGlzLl9pbnNlcnRlckltcGw9dCx0aGlzLl9zdHVkeURlc2NyaXB0b3I9ZX1zZXRQYXJlbnRTb3VyY2VzKGUpe3RoaXMuX3BhcmVudFNvdXJjZXM9ZX1zZXRQYW5lU2l6ZShlKXt0aGlzLl9wYW5lU2l6ZT1lfXNldFByZWZlcnJlZFByaWNlU2NhbGUoZSl7dGhpcy5fcHJlZmVycmVkUHJpY2VTY2FsZT1lfXNldEFsbG93Q2hhbmdlQ3VycmVuY3koZSl7dGhpcy5fYWxsb3dDaGFuZ2VDdXJyZW5jeT1lfXNldEFsbG93Q2hhbmdlVW5pdChlKXt0aGlzLl9hbGxvd0NoYW5nZVVuaXQ9ZX1zZXRBbGxvd0NoYW5nZU1ldHJpYyhlKXt0aGlzLl9hbGxvd0NoYW5nZU1ldHJpYz1lfXNldEZvcmNlT3ZlcmxheShlKXt0aGlzLl9mb3JjZU92ZXJsYXk9ZX1zZXRQcm9wZXJ0aWVzU3RhdGUoZSl7dGhpcy5fcHJvcHNTdGF0ZT1lfXNldFRhcmdldFByaWNlU2NhbGVNb2RlKGUpe3RoaXMuX3RhcmdldFByaWNlU2NhbGVNb2RlPWV9c2V0RXZlbnRTb3VyY2UoZSl7dGhpcy5fZXZlbnRTb3VyY2U9ZX1hc3luYyBpbnNlcnQoZSx0LGkpe2xldCBzPW51bGw7dmFyIHI7aXx8KHM9dm9pZCAwIT09KHI9dGhpcy5faW5zZXJ0ZXJJbXBsKS5jcmVhdGVTdHViJiZ2b2lkIDAhPT1yLnJlbW92ZVN0dWI/dGhpcy5faW5zZXJ0ZXJJbXBsLmNyZWF0ZVN0dWIoKTpudWxsKTtjb25zdCBvPShlLHQpPT57aWYoaSl7Y29uc3Qgcz0oMCxuLmRlZmF1bHQpKGUpP3tlcnJvcjplfTp7ZXJyb3I6ZS5tZXNzYWdlLGVkaXRvckVycm9yOmV9O2kuc2V0U3RhdHVzKHt0eXBlOllsLlN0dWR5U3RhdHVzVHlwZS5FcnJvcixlcnJvckRlc2NyaXB0aW9uOnN9KSx0JiZpLnNldE1ldGFJbmZvKHQpLHRoaXMuX2luc2VydGVySW1wbC5zdG9yZUZhaWxlZFN0dWIoaSl9fTtsZXQgbCxjLGgsZD0hMDt0cnl7bD1hd2FpdCgwLGF0LnN0dWR5TWV0YUluZm9SZXBvc2l0b3J5KSgpLmZpbmRCeUlkKHRoaXMuX3N0dWR5RGVzY3JpcHRvcil9Y2F0Y2goZSl7X3UubG9nV2FybihgQ2Fubm90IGdldCBzdHVkeSAke0pTT04uc3RyaW5naWZ5KHRoaXMuX3N0dWR5RGVzY3JpcHRvcil9YCk7Y29uc3QgdD10aGlzLl9zdHVkeURlc2NyaXB0b3IucGluZUlkLHM9bXUudGVzdCh0KSxyPSJFcnJvcjogY2Fubm90IGNvbXBpbGUgc2NyaXB0IjtsZXQgYT0hMTtpZighKGUgaW5zdGFuY2VvZiB1dS5QaW5lQ29tcGlsZUZhaWxFcnJvckltcGwpKXJldHVybiBvKHIpLApQcm9taXNlLnJlamVjdChwdS5JbnNlcnRpb25FcnJvckNvZGUuQ2Fubm90R2V0TWV0YWluZm8pO2k/LmdldERlc2NyaXB0b3IoKT8uaXNPdmVybGF5JiYodGhpcy5fZm9yY2VPdmVybGF5PSEwKSxsPW5ldyBvdC5TdHVkeU1ldGFJbmZvKGUubWV0YUluZm8pLCgwLG4uZGVmYXVsdCkoZS5yZWFzb24pfHwhZS5yZWFzb24uZXJyb3JzLmxlbmd0aD9jPVt7bWVzc2FnZTpyfV06KGE9ITAsYz1lLnJlYXNvbi5lcnJvcnMpLHMmJmEmJihoPXB1Lkluc2VydGlvbkVycm9yQ29kZS5DYW5ub3RDb21waWxlUHViKX1maW5hbGx5e251bGwhPT1zJiYoZD10aGlzLl9pbnNlcnRlckltcGwucmVtb3ZlU3R1YihzKSl9aWYoIWQpcmV0dXJuIFByb21pc2UucmVqZWN0KHB1Lkluc2VydGlvbkVycm9yQ29kZS5TdHViV2FzUmVtb3ZlZCk7aWYodm9pZCAwIT09dCYmdC5jYW5jZWxsZWQpcmV0dXJuIFByb21pc2UucmVqZWN0KHB1Lkluc2VydGlvbkVycm9yQ29kZS5DYW5jZWxsZWQpO2lmKCF0aGlzLl9jYW5BcHBseVN0dWR5VG9QYXJlbnQobCkpcmV0dXJuIG8oIkVycm9yOiBjYW5ub3QgYmUgY2hpbGQiKSxQcm9taXNlLnJlamVjdChwdS5JbnNlcnRpb25FcnJvckNvZGUuU3R1ZHlDYW5ub3RCZUNoaWxkKTtjb25zdCB1PXsuLi5sLmRlZmF1bHRzLmlucHV0c307bGV0IHA9e307aWYodm9pZCAwIT09ZSl7Y29uc3QgdD1vdC5TdHVkeU1ldGFJbmZvLmdldFN0dWR5UHJvcGVydHlSb290TmFtZShsKSxpPSgwLGEuY2xvbmUpKCgwLCRsLmRlZmF1bHRzKSh0KSk7KDAsYS5tZXJnZSkodSxpLmlucHV0cyk7Y29uc3Qgcz1hd2FpdCBlKHUsbC5pbnB1dHMsbCk7cD1zLmlucHV0cyx0aGlzLl9wYXJlbnRTb3VyY2VzPXMucGFyZW50U291cmNlcz8/W119aWYodm9pZCAwIT09dCYmdC5jYW5jZWxsZWQpcmV0dXJuIFByb21pc2UucmVqZWN0KHB1Lkluc2VydGlvbkVycm9yQ29kZS5DYW5jZWxsZWQpO2NvbnN0IF89dGhpcy5faW5zZXJ0U3R1ZHkobCxwLGkpO2lmKG51bGw9PT1fKXJldHVybiBvKCJFcnJvcjogdW5rbm93biBlcnJvciIpLFByb21pc2UucmVqZWN0KHB1Lkluc2VydGlvbkVycm9yQ29kZS5Vbmtub3duKTthd2FpdCBfLnN0YXJ0UHJvbWlzZTtjb25zdCBtPWF3YWl0IF8uc3R1ZHk7cmV0dXJuIGMmJm0uc2V0RXJyb3JDb21waWxhdGlvbihjKSxoP1Byb21pc2UucmVqZWN0KGgpOm19X2luc2VydFN0dWR5KGUsdCxpKXtyZXR1cm4gdGhpcy5faW5zZXJ0ZXJJbXBsLmNyZWF0ZVN0dWR5KHtzdHVkeU1ldGFJbmZvOmUsaW5wdXRzOnQsdGFyZ2V0Wk9yZGVyOm51bGwsc3R1YlRvUmVwbGFjZTppLHByb3BzU3RhdGU6dGhpcy5fcHJvcHNTdGF0ZSxmb3JjZU92ZXJsYXk6dGhpcy5fZm9yY2VPdmVybGF5LHBhcmVudFNvdXJjZXM6dGhpcy5fcGFyZW50U291cmNlcyxwcmVmZXJyZWRQcmljZVNjYWxlOnRoaXMuX3ByZWZlcnJlZFByaWNlU2NhbGUsYWxsb3dDaGFuZ2VDdXJyZW5jeTp0aGlzLl9hbGxvd0NoYW5nZUN1cnJlbmN5LGFsbG93Q2hhbmdlVW5pdDp0aGlzLl9hbGxvd0NoYW5nZVVuaXQsYWxsb3dDaGFuZ2VNZXRyaWM6dGhpcy5fYWxsb3dDaGFuZ2VNZXRyaWMscGFuZVNpemU6dGhpcy5fcGFuZVNpemUsdGFyZ2V0U2NhbGVNb2RlOnRoaXMuX3RhcmdldFByaWNlU2NhbGVNb2RlLGV2ZW50U291cmNlOnRoaXMuX2V2ZW50U291cmNlfSl9X2NhbkFwcGx5U3R1ZHlUb1BhcmVudChlKXtyZXR1cm4gMD09PXRoaXMuX3BhcmVudFNvdXJjZXMubGVuZ3RofHxvdC5TdHVkeU1ldGFJbmZvLmNhbkJlQ2hpbGQoZSx0cnVlKX19Y2xhc3MgZnV7Y29uc3RydWN0b3IoZSl7dGhpcy5fcHJpY2VTb3VyY2VOYW1lc0J5SWQ9bmV3IE1hcCxlLmZvckVhY2goKGU9PnRoaXMuX3ByaWNlU291cmNlTmFtZXNCeUlkLnNldChlLmlkLGUubmFtZSkpKX1uYW1lKGUpe3JldHVybiB0aGlzLl9wcmljZVNvdXJjZU5hbWVzQnlJZC5nZXQoZSk/P251bGx9cHJpY2VTb3VyY2VzQ2hhbmdlZChlKXtyZXR1cm4gZS5sZW5ndGghPT10aGlzLl9wcmljZVNvdXJjZU5hbWVzQnlJZC5zaXplfX12YXIgU3U9aSgzMTQ4MDYpO2NvbnN0IHZ1PW5ldyB5LlRyYW5zbGF0ZWRTdHJpbmcoInJlbW92ZSBkZXNlbGVjdGVkIGVtcHR5IGxpbmUgdG9vbHMiLHAudChudWxsLHZvaWQgMCxpKDYzNTQ5NikpKSx5dT0oMCxxLmlzRmVhdHVyZXNldEVuYWJsZWQpKCJhdXRvX2VuYWJsZV9zeW1ib2xfbGFiZWxzIiksYnU9KDAscS5pc0ZlYXR1cmVzZXRFbmFibGVkKSgiZml4X2xlZnRfZWRnZSIpLHd1PSgwLGMuZ2V0TG9nZ2VyKSgiQ2hhcnQuQ2hhcnRNb2RlbCIpO2Z1bmN0aW9uIEN1KGUsdCl7Y29uc3QgaT1lLmluZGV4T2YodCk7cmV0dXJuLTEhPT1pJiYoZS5zcGxpY2UoaSwxKSwhMCl9ZnVuY3Rpb24gUHUoZSl7Y29uc3QgdD0oMCx0bi5jcm9zc2hhaXJNb3ZlRXZlbnQpKCk7Zm9yKGxldCBpPWUubGVuZ3RoO2ktLTspe2NvbnN0IHM9ZVtpXS5kYXRhU291cmNlcygpO2ZvcihsZXQgZT1zLmxlbmd0aDtlLS07KXNbZV0uZGF0YVdpbmRvd1ZpZXcoKT8udXBkYXRlKHQpLHNbZV0uY2hhcnRGbG9hdGluZ1Rvb2x0aXBWaWV3Py4oKT8udXBkYXRlKHQpO2NvbnN0IG49ZVtpXS5wcmljZURhdGFTb3VyY2VzKCk7Zm9yKGxldCBlPW4ubGVuZ3RoO2UtLTspbltlXS5sZWdlbmRWaWV3KCk/LnVwZGF0ZSh0KX19Y29uc3QgVHU9e2lzU25hcHNob3Q6ITEscmVhZE9ubHk6ITEsd2F0ZXJtYXJrRW5hYmxlZDohMCxzaGlmdFZpc2libGVSYW5nZU9uTmV3QmFyOiEwLGN1cnJlbmN5Q29udmVyc2lvbkVuYWJsZWQ6ITEsdW5pdENvbnZlcnNpb25FbmFibGVkOiExLG1ldHJpY0NvbnZlcnNpb25FbmFibGVkOiExLGNvdW50ZG93bkVuYWJsZWQ6ITAsbGFzdFByaWNlQW5pbWF0aW9uRW5hYmxlZDohMCxvbldpZGdldDohMSxoaWRlSWRlYXM6ITF9O3ZhciB4dTshZnVuY3Rpb24oZSl7ZVtlLk1uUGFuZUhlaWdodD0zMF09Ik1uUGFuZUhlaWdodCIsZVtlLlJlY2FsY1Zpc2libGVSYW5nZVN0dWRpZXNUaW1lb3V0PTJlM109IlJlY2FsY1Zpc2libGVSYW5nZVN0dWRpZXNUaW1lb3V0IiwKZVtlLlJlY2FsY1Zpc2libGVSYW5nZVN0dWRpZXNMYXJnZVRpbWVvdXQ9NWUzXT0iUmVjYWxjVmlzaWJsZVJhbmdlU3R1ZGllc0xhcmdlVGltZW91dCIsZVtlLlJlY2FsY1Zpc2libGVSYW5nZVN0dWRpZXNUaW1lb3V0TGlicmFyeT01MDBdPSJSZWNhbGNWaXNpYmxlUmFuZ2VTdHVkaWVzVGltZW91dExpYnJhcnkiLGVbZS5SZWNhbGNDb2xvclN0dWRpZXNUaW1lb3V0PTI1MF09IlJlY2FsY0NvbG9yU3R1ZGllc1RpbWVvdXQifSh4dXx8KHh1PXt9KSk7Y29uc3QgTXU9e3Rocm90dGxlOktvLmRlZmF1bHQsZGVib3VuY2U6WW8uZGVmYXVsdH0sSXU9bmV3IE1hcChbW0lpLlJlY2FsY1Zpc2libGVSYW5nZVN0dWRpZXNSZWFzb24uVmlld3BvcnRDaGFuZ2VVc2VyQWN0aW9uLHt0aW1lb3V0OjJlMyxhZGFwdGVyOiJkZWJvdW5jZSJ9XSxbSWkuUmVjYWxjVmlzaWJsZVJhbmdlU3R1ZGllc1JlYXNvbi5EYXRhVXBkYXRlLHt0aW1lb3V0OjVlMyxhZGFwdGVyOiJ0aHJvdHRsZSJ9XSxbSWkuUmVjYWxjVmlzaWJsZVJhbmdlU3R1ZGllc1JlYXNvbi5TZXJpZXNSZXN0YXJ0LHt0aW1lb3V0OjJlMyxhZGFwdGVyOiJkZWJvdW5jZSJ9XSxbSWkuUmVjYWxjVmlzaWJsZVJhbmdlU3R1ZGllc1JlYXNvbi5TZXJpZXNDb21wbGV0ZWQse3RpbWVvdXQ6MmUzLGFkYXB0ZXI6ImRlYm91bmNlIn1dLFtJaS5SZWNhbGNWaXNpYmxlUmFuZ2VTdHVkaWVzUmVhc29uLlN0dWR5Q3JlYXRpb24se3RpbWVvdXQ6MmUzLGFkYXB0ZXI6ImRlYm91bmNlIn1dXSksTHU9QXJyYXkuZnJvbShJdS52YWx1ZXMoKSk7ZnVuY3Rpb24gQXUoZSl7cmV0dXJuIGUucmVkdWNlKCgoZSx0KT0+e2lmKCEoMCxyaS5pc0xpbmVUb29sKSh0KXx8IXQuaXNTeW5jaHJvbml6YWJsZSgpKXJldHVybiBlO2NvbnN0IGk9dC5saW5rS2V5KCkudmFsdWUoKTtyZXR1cm4gaT8oZVswXS5hZGQoaSksZVsxXS5hZGQodC50b29sbmFtZSksZSk6ZX0pLFtuZXcgU2V0LG5ldyBTZXRdKX1mdW5jdGlvbiBrdShlKXtyZXR1cm4gZS5zb3VyY2VzQnlHcm91cCgpLmFsbFdpdGhvdXRNdWx0aXBhbmUoKX1mdW5jdGlvbiBEdShlKXtyZXR1cm4gZS5zb3VyY2VzQnlHcm91cCgpLmFsbFdpdGhvdXRNdWx0aXBhbmVXaXRoSGlkZGVuKCl9Y2xhc3MgRXV7Y29uc3RydWN0b3IoZSl7dGhpcy5fb25SZWFycmFuZ2VQYW5lcz1uZXcgZi5EZWxlZ2F0ZSx0aGlzLl9saW5lVG9vbHNHcm91cE1vZGVsPW5ldyBzaCx0aGlzLl9zb3VyY2VzQmVpbmdNb3ZlZD1bXSx0aGlzLl9hY3RpdmVJdGVtQmVpbmdNb3ZlZD1udWxsLHRoaXMuX2xpbmVCZWluZ0VkaXRlZD1udWxsLHRoaXMuX2N1c3RvbVNvdXJjZUJlaW5nTW92ZWRIaXRUZXN0RGF0YT1udWxsLHRoaXMuX2N1c3RvbVNvdXJjZUJlaW5nTW92ZWQ9bnVsbCx0aGlzLl9kYXRhU291cmNlQ29sbGVjdGlvbkNoYW5nZWQ9bmV3IGYuRGVsZWdhdGUsdGhpcy5fc291cmNlUHJvcGVyaXRlc0NoYW5nZWQ9bmV3IGYuRGVsZWdhdGUsdGhpcy5fc291cmNlWk9yZGVyQ2hhbmdlZD1uZXcgZi5EZWxlZ2F0ZSx0aGlzLl9zeW1ib2xTb3VyY2VSZXNvbHZlZD1uZXcgZi5EZWxlZ2F0ZSx0aGlzLl9zeW1ib2xTb3VyY2VSZXNvbHZpbmdBY3RpdmU9bmV3IGguV2F0Y2hlZFZhbHVlKCExKSx0aGlzLl9hZGp1c3RGb3JEaXZpZGVuZHNBdmFpbGFiaWxpdHk9bmV3IGguV2F0Y2hlZFZhbHVlKDApLHRoaXMuX2FkanVzdEZvckRpdmlkZW5kc0VuYWJsZWQ9bmV3IGguV2F0Y2hlZFZhbHVlKCExKSx0aGlzLl9pbmFjdGl2aXR5R2Fwc1dhdGNoZWRWYWx1ZT1udWxsLHRoaXMuX2FsbG93ZWRBZGp1c3RtZW50PW5ldyBoLldhdGNoZWRWYWx1ZSgibm9uZSIpLHRoaXMuX2N1cnJlbnRUb29sPVQudG9vbC5zcGF3bigpLHRoaXMuX2xpbmVzQmVpbmdDcmVhdGVkPVtdLHRoaXMuX2xpbmVDYW5jZWxsZWQ9bmV3IGYuRGVsZWdhdGUsdGhpcy5fcGhhbnRvbVNvdXJjZUNvbnRhaW5lcj1uZXcga2godGhpcyksdGhpcy5fZGVzdHJveWVkPSExLHRoaXMuX3Jlc3RvcmluZ1N0YXRlPSExLHRoaXMuX2lzU2V0dGluZ3NFeHRlcm5hbFBvc2l0aW9uPSExLHRoaXMuX2lzVGltZVNjcm9sbGluZz0hMSx0aGlzLl9tYWduZXQ9bmV3IEhoLHRoaXMuX3Njcm9sbGluZ1N0YXRlPW51bGwsdGhpcy5fbW9kZWxJbnRlcnZhbHM9W10sdGhpcy5fcmVuZGVyZXJPcHRpb25zUHJvdmlkZXI9bmV3IHZhKHRoaXMpLHRoaXMuX3N0dWR5SW5zZXJ0ZWQ9bmV3IGYuRGVsZWdhdGUsdGhpcy5fY2FjaGVkU3R1ZGllc01heE9mZnNldD0wLHRoaXMuX3JlcGxheVN0YXR1cz1uZXcgaC5XYXRjaGVkVmFsdWUoMCksdGhpcy5fcGFuZXM9W10sdGhpcy5fbWF4aW1pemVkUGFuZT1uZXcgaC5XYXRjaGVkVmFsdWUobnVsbCksdGhpcy5fdGFnc0NoYW5nZWQ9bmV3IGYuRGVsZWdhdGUsdGhpcy5fc3RyYXRlZ3lTb3VyY2VzPVtdLHRoaXMuX3N0cmF0ZWd5U291cmNlc0NoYW5nZT1uZXcgZi5EZWxlZ2F0ZSx0aGlzLl9hY3RpdmVTdHJhdGVneVNvdXJjZT1uZXcgaC5XYXRjaGVkVmFsdWUobnVsbCksdGhpcy5fc3ltYm9sSW50ZXJ2YWxDaGFuZ2VkPW5ldyBmLkRlbGVnYXRlLHRoaXMuX3BhbmVDb2xsYXBzaW5nQXZhaWxhYmxlPW5ldyBoLldhdGNoZWRWYWx1ZSghMSksdGhpcy5fcGFuZXNDb2xsZWN0aW9uQ2hhbmdlZD1uZXcgZi5EZWxlZ2F0ZSx0aGlzLl9zY3JvbGxFbmFibGVkPSgwLHEuaXNGZWF0dXJlc2V0RW5hYmxlZCkoImNoYXJ0X3Njcm9sbCIpLHRoaXMuX3pvb21FbmFibGVkPSgwLHEuaXNGZWF0dXJlc2V0RW5hYmxlZCkoImNoYXJ0X3pvb20iKSx0aGlzLl9sb2xsaXBvcFNvdXJjZXNXYXRjaGVyPW51bGwsdGhpcy5fYWxlcnRzV2F0Y2hlcj1udWxsLHRoaXMuX2hvdmVyZWRTb3VyY2U9bnVsbCx0aGlzLl9ob3ZlcmVkU291cmNlQ2hhbmdlZD1uZXcgZi5EZWxlZ2F0ZSx0aGlzLl9sYXN0SG92ZXJlZEhpdHRlc3REYXRhPW51bGwsdGhpcy5faG92ZXJlZFNvdXJjZU9yaWdpbj1udWxsLHRoaXMuX2xhc3RTZWxlY3RlZEhpdHRlc3REYXRhPW51bGwsdGhpcy5faGlnaGxpZ2h0ZWRTb3VyY2VJbmZvPW51bGwsdGhpcy5fdG9wbW9zdEN1c3RvbVNvdXJjZXM9W10sdGhpcy5fZmdDdXN0b21Tb3VyY2VzPVtdLAp0aGlzLl9iZ0N1c3RvbVNvdXJjZXM9W10sdGhpcy5fYWxsQ3VzdG9tU291cmNlcz1bXSx0aGlzLl9jdXN0b21Tb3VyY2VzTWFwPW5ldyBNYXAsdGhpcy5fZHJhZ0V4cG9ydEVuYWJsZWQ9bmV3IGguV2F0Y2hlZFZhbHVlKCExKSx0aGlzLl9tdWx0aVBhbmVTb3VyY2VzPVtdLHRoaXMuX3Nob3dMZWdlbmRQcm9wZXJ0eT1uZXcgT3QuUHJvcGVydHksdGhpcy5faWQ9KDAsbHQuZ3VpZCkoKSx0aGlzLl9jaGFydFNhdmVUaW1lPW51bGwsdGhpcy5fYXZhaWxhYmxlQ3VycmVuY2llc0xpc3Q9bnVsbCx0aGlzLl9hdmFpbGFibGVDdXJyZW5jaWVzPW5ldyBoLldhdGNoZWRWYWx1ZShudWxsKSx0aGlzLl9hdmFpbGFibGVQcmljZVNvdXJjZXM9bmV3IGZ1KFtdKSx0aGlzLl9hdmFpbGFibGVVbml0c09iamVjdD1udWxsLHRoaXMuX2F2YWlsYWJsZVVuaXRzPW5ldyBoLldhdGNoZWRWYWx1ZShudWxsKSx0aGlzLl9hbGxBdmFpbGFibGVNZXRyaWNzTGlzdD1udWxsLHRoaXMuX2F2YWlsYWJsZVByaWNlU291cmNlc0J5U3ltYm9sPW5ldyBNYXAsdGhpcy5fc2hvdWxkQmVTYXZlZEV2ZW5JZkhpZGRlbj0hMSx0aGlzLl93YXRjaGVkVGhlbWVTcGF3bj1ELndhdGNoZWRUaGVtZS5zcGF3bigpLHRoaXMuX2JhY2tncm91bmRDb2xvckF0WVBlcmNlbnRGcm9tVG9wPW5ldyB4aC5HcmFkaWVudENvbG9yQ2FjaGUsdGhpcy5fc3R1ZGllc1dWPW5ldyBkLldhdGNoZWRPYmplY3QoW10sZy5jb21wYXJlVHdvQ29sbGVjdGlvbnNCeUlkcyksdGhpcy5fc3R1ZGllc0V4Y2x1ZGVJbnRlcm5hbFdWPW5ldyBkLldhdGNoZWRPYmplY3QoW10sZy5jb21wYXJlVHdvQ29sbGVjdGlvbnNCeUlkcyksdGhpcy5fcmVzZXRTY2FsZXNBdmFpbGFibGU9bmV3IGguV2F0Y2hlZFZhbHVlKCExKSx0aGlzLl9yZWNhbGNWUlN0dWRpZXNQYXJhbXM9e3JlYXNvbnM6bmV3IFNldH0sdGhpcy5fcmVjYWxjQ29sb3JTdHVkaWVzUGFyYW1zPXt9LHRoaXMuX3JlcGxheVN0dWR5U3RyYXRlZ3k9bmV3IGguV2F0Y2hlZFZhbHVlKG51bGwpLHRoaXMuX3N0dWR5Q29sb3JSb3RhdG9yRmFjdG9yeT1uZXcgX2EodGhpcyksdGhpcy5fbWFpblNlcmllc1NjYWxlUmF0aW9Qcm9wZXJ0eT1uZXcgYWwodGhpcyksdGhpcy5fYWJvcnRDb250cm9sbGVyPW5ldyBBYm9ydENvbnRyb2xsZXIsdGhpcy5fcmVjYWxjVmlzaWJsZVJhbmdlU3R1ZGllc0ltcGxEZWJvdW5jZWRCeUFkYXB0ZXI9bmV3IE1hcChPYmplY3Qua2V5cyhNdSkubWFwKChlPT5bZSxuZXcgTWFwKEx1LmZpbHRlcigodD0+dC5hZGFwdGVyPT09ZSkpLm1hcCgoZT0+W2UudGltZW91dCxNdVtlLmFkYXB0ZXJdKHRoaXMuX3JlY2FsY1Zpc2libGVSYW5nZVN0dWRpZXNJbXBsLmJpbmQodGhpcyx0aGlzLl9yZWNhbGNWUlN0dWRpZXNQYXJhbXMpLGUudGltZW91dCldKSkpXSkpKSx0aGlzLl9yZWNhbGNDb2xvclN0dWRpZXNJbXBsRGVib3VuY2VkPSgwLFlvLmRlZmF1bHQpKHRoaXMuX3JlY2FsY0NvbG9yU3R1ZGllc0ltcGwuYmluZCh0aGlzLHRoaXMuX3JlY2FsY0NvbG9yU3R1ZGllc1BhcmFtcyksMjUwKSx0aGlzLl93aWR0aD0wLHRoaXMuX3Jlc2V0U2NhbGVzPW5ldyBmLkRlbGVnYXRlLHRoaXMuX2NoYXJ0VGhlbWVMb2FkZWQ9bmV3IGYuRGVsZWdhdGUsdGhpcy5fc2VsZWN0aW9uPW5ldyBmYS5Nb2RlbFNlbGVjdGlvbix0aGlzLl9zZWxlY3RlZFNvdXJjZUNoYW5nZWQ9bmV3IGYuRGVsZWdhdGUsdGhpcy5fcHJldmlvdXNTZWxlY3RlZERyYXdpbmdPckdyb3VwSWRzPW51bGwsdGhpcy5fc3ltYm9sU291cmNlQ29sbGVjdGlvbkNoYW5nZWQ9bmV3IGYuRGVsZWdhdGUsdGhpcy5fZ3JpZFNvdXJjZT1uZXcgJGgodGhpcyksdGhpcy5fdmlzaWJsZVJhbmdlU3R1ZGllc0lucHV0cz1uZXcgZC5XYXRjaGVkT2JqZWN0KG51bGwpLHRoaXMuX3N5bmNQb2ludENhY2hlPW5ldyBNYXAsdGhpcy5fbGFzdEFwcGxpZWRHb3RvVGltZVJhbmdlPW51bGwsdGhpcy5fbGFzdEdvdG9UaW1lUmFuZ2U9bnVsbCx0aGlzLl9hbGVydHNDb2xsZWN0aW9uPW5ldyBoLldhdGNoZWRWYWx1ZShudWxsKSx0aGlzLl9sb2xsaXBvcFNvdXJjZXNXYXRjaGVyTG9hZGVyPW51bGwsdGhpcy5fc2Vzc2lvbnM9bnVsbCx0aGlzLl9vbk11bHRpcGFuZVNvdXJjZXNDb2xsZWN0aW9uQ2hhbmdlZD1uZXcgZi5EZWxlZ2F0ZSx0aGlzLl9yZXBsYXlTdHVkeVN0cmF0ZWd5SW5wdXRzPW51bGwsdGhpcy5fc3R1ZHlTaGlmdENvbG9yU3RhcnRPZmZzZXQ9dm9pZCAwLHRoaXMuX2xpbmVUb29sc1N5bmNCbG9jaz0wLHRoaXMuX29uRGVzdHJveWVkPW5ldyBmLkRlbGVnYXRlLHRoaXMuX29uTGluZVRvb2xzR3JvdXBNb2RlbENoYW5nZWQ9KCk9PnswIT09dGhpcy5fc2VsZWN0aW9uLmxpbmVUb29sR3JvdXBzKCkubGVuZ3RoJiZ0aGlzLmNoZWNrTGluZVRvb2xBbmRHcm91cFNlbGVjdGlvbigpfSx0aGlzLl9jbGVhclNlbGVjdGlvbj0oKT0+e3RoaXMuX2xhc3RTZWxlY3RlZEhpdHRlc3REYXRhPW51bGwsdGhpcy5fc2VsZWN0aW9uLmNsZWFyKCl9LHRoaXMuX3JlbW92ZUl0ZW1Gcm9tU2VsZWN0aW9uPWU9Pnt0aGlzLl9zZWxlY3Rpb24ucmVtb3ZlKGUpfSx0aGlzLl9hZGRJdGVtVG9TZWxlY3Rpb249KGUsdCk9Pntjb25zdCBpPXRoaXMuX3NlbGVjdGlvbi5pc1NlbGVjdGVkKGUpOygwLFhyLmlzTGluZVRvb2xzR3JvdXApKGUpP2l8fHRoaXMuX3NlbGVjdGlvbi5hZGQoZSk6aSYmdGhpcy5fbGFzdFNlbGVjdGVkSGl0dGVzdERhdGE9PT10fHxlLmlzU2VsZWN0aW9uRW5hYmxlZCgpJiYodGhpcy5fbGFzdFNlbGVjdGVkSGl0dGVzdERhdGE9dHx8bnVsbCxpfHx0aGlzLl9zZWxlY3Rpb24uYWRkKGUpLCgwLHRpLmlzU3R1ZHlTdHJhdGVneSkoZSkmJnRoaXMuc2V0QWN0aXZlU3RyYXRlZ3lTb3VyY2UoZSkpfSx0aGlzLl9yZWNhbGNTeW1ib2xSZXNvbHZpbmdBY3RpdmU9KCk9Pntmb3IoY29uc3QgZSBvZiB0aGlzLl9wYW5lcylpZihlLnN5bWJvbFNvdXJjZVJlc29sdmluZ0FjdGl2ZSgpLnZhbHVlKCkpcmV0dXJuIHZvaWQgdGhpcy5fc3ltYm9sU291cmNlUmVzb2x2aW5nQWN0aXZlLnNldFZhbHVlKCEwKTt0aGlzLl9zeW1ib2xTb3VyY2VSZXNvbHZpbmdBY3RpdmUuc2V0VmFsdWUoITEpfSwKdGhpcy5fcmVjYWxjQWRqdXN0Rm9yRGl2aWRlbmRzQXZhaWxhYmlsaXR5PSgpPT57aWYodGhpcy5fc3ltYm9sU291cmNlUmVzb2x2aW5nQWN0aXZlLnZhbHVlKCkpcmV0dXJuO2NvbnN0IGU9dGhpcy5tYWluU2VyaWVzKCk7c3dpdGNoKGUuc3ltYm9sSW5mbygpPy5hbGxvd2VkX2FkanVzdG1lbnQ/PyJub25lIil7Y2FzZSJkaXZpZGVuZHMiOnJldHVybiB2b2lkIHRoaXMuX2FkanVzdEZvckRpdmlkZW5kc0F2YWlsYWJpbGl0eS5zZXRWYWx1ZSgyKTtjYXNlInNwbGl0cyI6cmV0dXJuIHZvaWQgdGhpcy5fYWRqdXN0Rm9yRGl2aWRlbmRzQXZhaWxhYmlsaXR5LnNldFZhbHVlKDEpO2Nhc2UiYW55IjpyZXR1cm4gdm9pZCB0aGlzLl9hZGp1c3RGb3JEaXZpZGVuZHNBdmFpbGFiaWxpdHkuc2V0VmFsdWUoMyl9Zm9yKGNvbnN0IHQgb2YgdGhpcy5zeW1ib2xTb3VyY2VzKCkpe2lmKHQuc3ltYm9sSGliZXJuYXRlZCgpLnZhbHVlKCl8fHQ9PT1lKWNvbnRpbnVlO2lmKCJhbnkiPT09KHQuc3ltYm9sSW5mbygpPy5hbGxvd2VkX2FkanVzdG1lbnQ/PyJub25lIikpcmV0dXJuIHZvaWQgdGhpcy5fYWRqdXN0Rm9yRGl2aWRlbmRzQXZhaWxhYmlsaXR5LnNldFZhbHVlKDMpfXRoaXMuX2FkanVzdEZvckRpdmlkZW5kc0F2YWlsYWJpbGl0eS5zZXRWYWx1ZSgwKX0sdGhpcy5fcmVjYWxjQWxsb3dlZEFkanVzdG1lbnQ9KCk9Pntjb25zdCBlPXRoaXMubWFpblNlcmllcygpLHQ9ZS5zeW1ib2xJbmZvKCk/LmFsbG93ZWRfYWRqdXN0bWVudD8/Im5vbmUiO2lmKCJkaXZpZGVuZHMiPT09dHx8InNwbGl0cyI9PT10KXJldHVybiB2b2lkIHRoaXMuX2FsbG93ZWRBZGp1c3RtZW50LnNldFZhbHVlKHQpO2xldCBpPSJub25lIjtmb3IoY29uc3QgZSBvZiB0aGlzLnN5bWJvbFNvdXJjZXMoKSl7aWYoZS5zeW1ib2xIaWJlcm5hdGVkKCkudmFsdWUoKSljb250aW51ZTtjb25zdCB0PWUuc3ltYm9sSW5mbygpPy5hbGxvd2VkX2FkanVzdG1lbnQ/PyJub25lIjtpZigiYW55Ij09PXQpcmV0dXJuIHZvaWQgdGhpcy5fYWxsb3dlZEFkanVzdG1lbnQuc2V0VmFsdWUoImFueSIpOyJzcGxpdHMiPT09dCYmImRpdmlkZW5kcyIhPT1pJiYoaT0ic3BsaXRzIiksImRpdmlkZW5kcyI9PT10JiYoaT0iZGl2aWRlbmRzIil9dGhpcy5fYWxsb3dlZEFkanVzdG1lbnQuc2V0VmFsdWUoaSl9LHRoaXMuX3JlY2FsY0FkanVzdEZvckRpdmlkZW5kc0VuYWJsZWQ9KCk9Pntzd2l0Y2godGhpcy5fYWRqdXN0Rm9yRGl2aWRlbmRzQXZhaWxhYmlsaXR5LnZhbHVlKCkpe2Nhc2UgMjpyZXR1cm4gdm9pZCB0aGlzLl9hZGp1c3RGb3JEaXZpZGVuZHNFbmFibGVkLnNldFZhbHVlKCEwKTtjYXNlIDA6Y2FzZSAxOnJldHVybiB2b2lkIHRoaXMuX2FkanVzdEZvckRpdmlkZW5kc0VuYWJsZWQuc2V0VmFsdWUoITEpfXRoaXMuX2FkanVzdEZvckRpdmlkZW5kc0VuYWJsZWQuc2V0VmFsdWUoKDAsbC5lbnN1cmVEZWZpbmVkKSh0aGlzLm1haW5TZXJpZXMoKS5wcm9wZXJ0aWVzKCkuY2hpbGRzKCkuZGl2aWRlbmRzQWRqdXN0bWVudCkudmFsdWUoKSl9LHRoaXMuX3JlY2FsY1BhbmVDb2xsYXBzaW5nQXZhaWxhYmxlPWU9PntsZXQgdD10aGlzLl9wYW5lcy5maWx0ZXIoKGU9PiFlLmNvbGxhcHNlZCgpLnZhbHVlKCkpKS5sZW5ndGg7MD09PXQmJmUmJnRoaXMuX3BhbmVzLmxlbmd0aD4wJiYodGhpcy5fcGFuZXNbMF0uY29sbGFwc2VkKCkuc2V0VmFsdWUoITEpLHQ9MSksdGhpcy5fcGFuZUNvbGxhcHNpbmdBdmFpbGFibGUuc2V0VmFsdWUodD4xKX0sdGhpcy5fdXBkYXRlUmVzZXRTY2FsZXNBdmFpbGFibGVWYWx1ZT0oKT0+e2NvbnN0IGU9dGhpcy5fdGltZVNjYWxlLnJlc2V0QXZhaWxhYmxlKCkudmFsdWUoKXx8dGhpcy5fcGFuZXMuc29tZSgoZT0+ZS5yZXNldFByaWNlU2NhbGVzQXZhaWxhYmxlKCkudmFsdWUoKSkpO3RoaXMuX3Jlc2V0U2NhbGVzQXZhaWxhYmxlLnNldFZhbHVlKGUpfSx0aGlzLl9vbkRyYXdpbmdzVmlzaWJpbGl0eUNoYW5nZWQ9ZT0+e2NvbnN0IHQ9IWUudmFsdWUoKTtmb3IoY29uc3QgZSBvZiB0aGlzLmRhdGFTb3VyY2VzKCkpe2NvbnN0IGk9KDAscmkuaXNMaW5lVG9vbCkoZSkmJmUucHJvcGVydGllcygpLnZpc2libGUudmFsdWUoKTt0JiZpPygwLCQuZW1pdCkoImRyYXdpbmdfZXZlbnQiLGUuaWQoKSwic2hvdyIpOiF0JiZpJiYoMCwkLmVtaXQpKCJkcmF3aW5nX2V2ZW50IixlLmlkKCksImhpZGUiKX10aGlzLnNlbGVjdGlvbk1hY3JvKChlPT5lLmNsZWFyU2VsZWN0aW9uKCkpKX0sdGhpcy5fb25JbmRpY2F0b3JzVmlzaWJpbGl0eUNoYW5nZWQ9KCk9Pnt0aGlzLmFsbFN0dWRpZXMoKS5zb21lKChlPT5lLmNhbkJlSGlkZGVuQnlHbG9iYWxGbGFnKCkmJmUucHJvcGVydGllcygpLmNoaWxkcygpLnZpc2libGUudmFsdWUoKSYmdGhpcy5zZWxlY3Rpb24oKS5pc1NlbGVjdGVkKGUpKSk/dGhpcy5zZWxlY3Rpb25NYWNybygoZT0+ZS5jbGVhclNlbGVjdGlvbigpKSk6dGhpcy5saWdodFVwZGF0ZSgpfTtjb25zdHtjaGFydFNlc3Npb246dCxpbnZhbGlkYXRlSGFuZGxlcjppLHByb3BlcnRpZXM6cyxzZXJpZXNQcm9wZXJ0aWVzOm4sZGF0YVJlcXVlc3Q6cix1bmRvTW9kZWw6byxiYXJzTWFya3NDb250YWluZXJzRmFjdG9yeTpjLG9wdGlvbnM6cCxoaWJlcm5hdGVWVzpfLGxpbmtpbmdHcm91cFdWOlMsaXNBdXRvU2F2ZUVuYWJsZWQ6dixzeW1ib2xBbGlhc1NlcnZpY2U6eSxkcmF3VGltZTpifT1lO3RoaXMuX2F2YWlsYWJsZU1ldHJpY3M9bmV3IERoKFtdKSx0aGlzLl9jaGFydFNlc3Npb249dCx0aGlzLl9pbnZhbGlkYXRlSGFuZGxlcj1pLHRoaXMuX3VuZG9Nb2RlbD1vLHRoaXMuX3Byb3BlcnRpZXM9cyx0aGlzLl9vcHRpb25zPSgwLGEubWVyZ2UpKCgwLGEuY2xvbmUpKFR1KSxwKSx0aGlzLl9oaWJlcm5hdGVXVj1fLHRoaXMuX2xpbmtpbmdHcm91cEluZGV4PVMsdGhpcy5faXNBdXRvU2F2ZUVuYWJsZWQ9dix0aGlzLl9yZWFkT25seT10aGlzLl9vcHRpb25zLnJlYWRPbmx5LHRoaXMuX2lzU25hcHNob3Q9dGhpcy5fb3B0aW9ucy5pc1NuYXBzaG90LHRoaXMuX3N5bWJvbEFsaWFzU2VydmljZT15LAp0aGlzLl9zeW1ib2xBbGlhc1NlcnZpY2U/Lm9uQWxpYXNDaGFuZ2VkKCkuc3Vic2NyaWJlKHRoaXMsKCgpPT50aGlzLmxpZ2h0VXBkYXRlKCkpKSx0aGlzLl9kcmF3VGltZT1iLHRoaXMuX2FsZXJ0c1dhdGNoZXI9bmV3IGRoKHRoaXMpLHRoaXMub25XaWRnZXQoKXx8bGgud2l0aFdlZWtkYXlQcm9wZXJ0eS5zdWJzY3JpYmUodGhpcywoKCk9PnRoaXMuX3VwZGF0ZURhdGVUaW1lRm9ybWF0dGVyKCkpKSx0aGlzLl9jaGFydFNhdmVUaW1lPShuZXcgRGF0ZSkudmFsdWVPZigpLHRoaXMuX2JhY2tncm91bmRDb2xvcj1uZXcgaC5XYXRjaGVkVmFsdWUodGhpcy5fZ2V0QmFja2dyb3VuZENvbG9yKCkpLHRoaXMuX2JhY2tncm91bmRUb3BDb2xvcj1uZXcgaC5XYXRjaGVkVmFsdWUodGhpcy5fZ2V0QmFja2dyb3VuZENvbG9yKCEwKSksdGhpcy5fc3Vic2NyaWJlVG9MaW5lVG9vbHNHcm91cE1vZGVsKCksdGhpcy5fcHJvcGVydGllcy5jaGlsZHMoKS5wYW5lUHJvcGVydGllcy5jaGlsZHMoKS5iYWNrZ3JvdW5kLnN1YnNjcmliZSh0aGlzLHRoaXMuX3VwZGF0ZUJhY2tncm91bmRDb2xvciksdGhpcy5fcHJvcGVydGllcy5jaGlsZHMoKS5wYW5lUHJvcGVydGllcy5jaGlsZHMoKS5iYWNrZ3JvdW5kVHlwZS5zdWJzY3JpYmUodGhpcyx0aGlzLl91cGRhdGVCYWNrZ3JvdW5kQ29sb3IpLHRoaXMuX3Byb3BlcnRpZXMuY2hpbGRzKCkucGFuZVByb3BlcnRpZXMuY2hpbGRzKCkuYmFja2dyb3VuZEdyYWRpZW50U3RhcnRDb2xvci5zdWJzY3JpYmUodGhpcyx0aGlzLl91cGRhdGVCYWNrZ3JvdW5kQ29sb3IpLHRoaXMuX3Byb3BlcnRpZXMuY2hpbGRzKCkucGFuZVByb3BlcnRpZXMuY2hpbGRzKCkuYmFja2dyb3VuZEdyYWRpZW50RW5kQ29sb3Iuc3Vic2NyaWJlKHRoaXMsdGhpcy5fdXBkYXRlQmFja2dyb3VuZENvbG9yKSx0aGlzLl9wcm9wZXJ0aWVzLmNoaWxkcygpLnBhbmVQcm9wZXJ0aWVzLmNoaWxkcygpLmxlZ2VuZFByb3BlcnRpZXMuY2hpbGRzKCkuc2hvd0xlZ2VuZC5zdWJzY3JpYmUodGhpcyx0aGlzLl91cGRhdGVTaG93TGVnZW5kUHJvcGVydHkpLHRoaXMuX3Byb3BlcnRpZXMuY2hpbGRzKCkuc2NhbGVzUHJvcGVydGllcy5zdWJzY3JpYmUodGhpcyx0aGlzLmZ1bGxVcGRhdGUpLHRoaXMuX2JhY2tncm91bmRDb2xvci5zdWJzY3JpYmUodGhpcy5yZWNhbGNDb2xvclN0dWRpZXMuYmluZCh0aGlzLCExKSksdGhpcy5fYmFja2dyb3VuZFRvcENvbG9yLnN1YnNjcmliZSh0aGlzLnJlY2FsY0NvbG9yU3R1ZGllcy5iaW5kKHRoaXMsITEpKSx0aGlzLl9iYWNrZ3JvdW5kQ291bnRlckNvbG9yPW5ldyBoLldhdGNoZWRWYWx1ZSh0aGlzLl9nZXRCYWNrZ3JvdW5kQ291bnRlckNvbG9yKCkpLHRoaXMuX2JhY2tncm91bmRDb2xvci5zdWJzY3JpYmUoKCgpPT50aGlzLl9iYWNrZ3JvdW5kQ291bnRlckNvbG9yLnNldFZhbHVlKHRoaXMuX2dldEJhY2tncm91bmRDb3VudGVyQ29sb3IoKSkpKSx0aGlzLl9iYWNrZ3JvdW5kVGhlbWU9KDAsdS5jb21iaW5lKSgoZT0+IndoaXRlIj09PWU/Sm8uU3RkVGhlbWUuRGFyazpKby5TdGRUaGVtZS5MaWdodCksdGhpcy5fYmFja2dyb3VuZENvdW50ZXJDb2xvci53ZWFrUmVmZXJlbmNlKCkpLHRoaXMuX2lzRGFyaz0oMCx1LmNvbWJpbmUpKChlPT5lPT09Sm8uU3RkVGhlbWUuRGFyayksdGhpcy5fYmFja2dyb3VuZFRoZW1lLndlYWtSZWZlcmVuY2UoKSksdGhpcy5fd2F0Y2hlZFRoZW1lU3Bhd24uc3Vic2NyaWJlKHRoaXMuX3VwZGF0ZUJhY2tncm91bmRDb2xvci5iaW5kKHRoaXMpKSx0aGlzLl9zeW1ib2xTb3VyY2VSZXNvbHZpbmdBY3RpdmUuc3Vic2NyaWJlKCgoKT0+e3RoaXMuX3JlY2FsY0FkanVzdEZvckRpdmlkZW5kc0F2YWlsYWJpbGl0eSgpLHRoaXMuX3JlY2FsY0FsbG93ZWRBZGp1c3RtZW50KCl9KSksKDAsVC5pbml0KSgpO2NvbnN0IHc9dGhpcy5fcmVhZE9ubHk/bmV3IE90LlByb3BlcnR5KCgwLGEubWVyZ2UpKCgwLGEuY2xvbmUpKHh0LmxpZ2h0VGhlbWUuY29udGVudC5jaGFydFByb3BlcnRpZXMucGFuZVByb3BlcnRpZXMuY3Jvc3NIYWlyUHJvcGVydGllcyksKDAsJGwuZGVmYXVsdHMpKCJjaGFydHByb3BlcnRpZXMucGFuZVByb3BlcnRpZXMuY3Jvc3NIYWlyUHJvcGVydGllcyIpKSk6dGhpcy5fcHJvcGVydGllcy5jaGlsZHMoKS5wYW5lUHJvcGVydGllcy5jaGlsZHMoKS5jcm9zc0hhaXJQcm9wZXJ0aWVzO3RoaXMuX2Nyb3NzSGFpclNvdXJjZT1uZXcgYXUodGhpcyx3LHRoaXMuX29wdGlvbnMuY3Jvc3NIYWlyKSx0aGlzLl9jcm9zc0hhaXJTZWxlY3RQb2ludE1vZGU9dGhpcy5fY3Jvc3NIYWlyU291cmNlLnNlbGVjdFBvaW50TW9kZSgpLnNwYXduKCksdGhpcy5fY3Jvc3NIYWlyU2VsZWN0UG9pbnRNb2RlLnN1YnNjcmliZSgoZT0+e2lmKGUhPT1ULlNlbGVjdFBvaW50TW9kZS5Ob25lJiZ0aGlzLmxpbmVCZWluZ0NyZWF0ZWQoKSl7Y29uc3QgZT1ULnRvb2wudmFsdWUoKTt0aGlzLmNhbmNlbENyZWF0aW5nTGluZSgpLFQudG9vbC5zZXRWYWx1ZShlKX19KSksdGhpcy5fdGFnc0NoYW5nZWQ9bmV3IGYuRGVsZWdhdGU7Y29uc3QgQz17Y291bnRkb3duRW5hYmxlZDp0aGlzLl9vcHRpb25zLmNvdW50ZG93bkVuYWJsZWQsbGFzdFByaWNlQW5pbWF0aW9uRW5hYmxlZDp0aGlzLl9vcHRpb25zLmxhc3RQcmljZUFuaW1hdGlvbkVuYWJsZWR9O3RoaXMuX21haW5TZXJpZXM9bmV3IGVuLlNlcmllcyh0aGlzLG4sQyxyKSx0aGlzLl90aW1lU2NhbGU9bmV3IFFjKHRoaXMsdGhpcy5fb3B0aW9ucy50aW1lU2NhbGUpLHRoaXMuX3RpbWVTY2FsZS5yZXNldEF2YWlsYWJsZSgpLnN1YnNjcmliZSh0aGlzLl91cGRhdGVSZXNldFNjYWxlc0F2YWlsYWJsZVZhbHVlKSx0aGlzLl9hcHBsaWVkVGltZUZyYW1lPW5ldyB6aCh0aGlzKSx0aGlzLl9tYWluU2VyaWVzLm9uU3R5bGVDaGFuZ2VkKCkuc3Vic2NyaWJlKHRoaXMuX3RpbWVTY2FsZSx0aGlzLl90aW1lU2NhbGUuaW52YWxpZGF0ZVZpc2libGVCYXJzKTtjb25zdCBQPSgpPT50aGlzLmZ1bGxVcGRhdGUoKTt0aGlzLl9tYWluU2VyaWVzLnByb3BlcnRpZXMoKS5jaGlsZHMoKS5zaG93Q291bnRkb3duLnN1YnNjcmliZSh0aGlzLCgoKT0+ewp0aGlzLl9tYWluU2VyaWVzLnVwZGF0ZUFsbFZpZXdzKCgwLHRuLnNvdXJjZUNoYW5nZUV2ZW50KSh0aGlzLl9tYWluU2VyaWVzLmlkKCkpKSxQKCl9KSksKDAscnMuY3VycmVuY3lVbml0TWV0cmljVmlzaWJpbGl0eVByb3BlcnR5KSgpLnN1YnNjcmliZSh0aGlzLFApLCgwLG9zLmF1dG9Mb2dCdXR0b25zVmlzaWJpbGl0eVByb3BlcnR5KSgpLnN1YnNjcmliZSh0aGlzLFApLHRoaXMuX3RpbWVTY2FsZS52aXNpYmxlQmFyc1N0cmljdFJhbmdlQ2hhbmdlZCgpLnN1YnNjcmliZSh0aGlzLl9tYWluU2VyaWVzLHRoaXMuX21haW5TZXJpZXMuY2xlYXJIaWdoTG93UHJpY2VDYWNoZSksdGhpcy5fdGltZVNjYWxlLnZpc2libGVCYXJzU3RyaWN0UmFuZ2VDaGFuZ2VkKCkuc3Vic2NyaWJlKHRoaXMuX21haW5TZXJpZXMsdGhpcy5fbWFpblNlcmllcy5jbGVhckF2ZXJhZ2VQcmljZUNhY2hlKSx0aGlzLmNyZWF0ZVBhbmUodm9pZCAwLHtheGlzUHJvcGVydGllczpuLmNoaWxkcygpLnByaWNlQXhpc1Byb3BlcnRpZXMuc3RhdGUoWyJhdXRvU2NhbGUiXSl9KSx0aGlzLl9hZGp1c3RGb3JEaXZpZGVuZHNBdmFpbGFiaWxpdHkuc3Vic2NyaWJlKHRoaXMuX3JlY2FsY0FkanVzdEZvckRpdmlkZW5kc0VuYWJsZWQpLCgwLGwuZW5zdXJlRGVmaW5lZCkodGhpcy5tYWluU2VyaWVzKCkucHJvcGVydGllcygpLmNoaWxkcygpLmRpdmlkZW5kc0FkanVzdG1lbnQpLnN1YnNjcmliZSh0aGlzLHRoaXMuX3JlY2FsY0FkanVzdEZvckRpdmlkZW5kc0VuYWJsZWQpLHRoaXMuX3JlY2FsY0FkanVzdEZvckRpdmlkZW5kc0VuYWJsZWQoKSx0aGlzLl9ib3VuZFVwZGF0ZVN0dWRpZXNNYXhPZmZzZXQ9dGhpcy5fdXBkYXRlU3R1ZGllc01heE9mZnNldC5iaW5kKHRoaXMpLHRoaXMubWFpblNlcmllcygpLmRhdGFFdmVudHMoKS5zZXJpZXNUaW1lRnJhbWUoKS5zdWJzY3JpYmUodGhpcywoKGUsdCxpLHMpPT57aWYobnVsbCE9PXRoaXMuX2xhc3RBcHBsaWVkR290b1RpbWVSYW5nZSYmbnVsbCE9PWkmJnMmJigwLFZuLmFyZUVxdWFsVGltZUZyYW1lcykodGhpcy5fbGFzdEFwcGxpZWRHb3RvVGltZVJhbmdlLnJhbmdlLGkpKXtjb25zdCBlPXRoaXMuYXBwbGllZFRpbWVGcmFtZSgpLnZhbHVlKCk7bnVsbCE9PWUmJiF0aGlzLl9sYXN0QXBwbGllZEdvdG9UaW1lUmFuZ2UuYWN0dWFsJiYoMCxWbi5hcmVFcXVhbFRpbWVGcmFtZXMpKHRoaXMuX2xhc3RBcHBsaWVkR290b1RpbWVSYW5nZS5yYW5nZSxlLnZhbCkmJnRoaXMuYXBwbGllZFRpbWVGcmFtZSgpLnNldFZhbHVlKG51bGwpLHRoaXMuX2xhc3RBcHBsaWVkR290b1RpbWVSYW5nZT1udWxsfX0pKSx0aGlzLm1haW5TZXJpZXMoKS5kYXRhRXZlbnRzKCkuY29tcGxldGVkKCkuc3Vic2NyaWJlKHRoaXMsKGU9PntudWxsPT09dGhpcy5fbGFzdEFwcGxpZWRHb3RvVGltZVJhbmdlJiZudWxsIT09dGhpcy5fbGFzdEdvdG9UaW1lUmFuZ2UmJnRoaXMuZ290b1RpbWVSYW5nZSh0aGlzLl9sYXN0R290b1RpbWVSYW5nZS5mcm9tLHRoaXMuX2xhc3RHb3RvVGltZVJhbmdlLnRvLHRoaXMuX2xhc3RHb3RvVGltZVJhbmdlKX0pKTtjb25zdCB4PXRoaXMuX3BhbmVzWzBdO3guc2V0U3RyZXRjaEZhY3RvcigyKnguc3RyZXRjaEZhY3RvcigpKSx0aGlzLl9wcm9wZXJ0aWVzLnN1YnNjcmliZSh0aGlzLHRoaXMubGlnaHRVcGRhdGUpLHRoaXMuX3Byb3BlcnRpZXMuY2hpbGRzKCkudGltZXpvbmUuc3Vic2NyaWJlKG51bGwsKCgpPT57dGhpcy5fY2hhcnRTZXNzaW9uJiZ0aGlzLl9jaGFydFNlc3Npb24uaXNDb25uZWN0ZWQoKS52YWx1ZSgpJiZ0aGlzLl9jaGFydFNlc3Npb24uc3dpdGNoVGltZXpvbmUodGhpcy50aW1lem9uZSgpKX0pKSx4LmFkZERhdGFTb3VyY2UodGhpcy5fbWFpblNlcmllcyx4LmZpbmRTdWl0YWJsZVNjYWxlKHRoaXMuX21haW5TZXJpZXMpLCExKSx0aGlzLl9iYXJzTWFya3NTb3VyY2VzPWModGhpcyk7Zm9yKGNvbnN0IGUgb2YgdGhpcy5fYmFyc01hcmtzU291cmNlcyllLnNldE93bmVyU291cmNlKHRoaXMuX21haW5TZXJpZXMpLHguYWRkRGF0YVNvdXJjZShlLHRoaXMuX21haW5TZXJpZXMucHJpY2VTY2FsZSgpLCEwKTtpZih0aGlzLl9tYWluU2VyaWVzLnN5bWJvbFJlc29sdmVkKCkuc3Vic2NyaWJlKHRoaXMsdGhpcy5fY2xlYXJBdmFpbGFibGVQcmljZVNvdXJjZXMpLHRoaXMuX21haW5TZXJpZXMub25TeW1ib2xJbnRlcnZhbENoYW5nZWQoKS5zdWJzY3JpYmUodGhpcyx0aGlzLl9vblN5bWJvbEludGVydmFsQ2hhbmdlZCksdGhpcy5fY3JlYXRlTG9sbGlwb3BTb3VyY2VzV2F0Y2hlcigpLHRoaXMuX3dhdGVybWFya1NvdXJjZT10aGlzLl9vcHRpb25zLndhdGVybWFya0VuYWJsZWQ/bmV3IHNsKHRoaXMpOm51bGwsdGhpcy5fdGltZXpvbmVFeGNlcHRFeGNoYW5nZT0oMCx1LmNvbWJpbmUpKCgoZSx0KT0+ImV4Y2hhbmdlIiE9PWU/ZTp0KSwoMCxTdS5jcmVhdGVXVkZyb21Qcm9wZXJ0eSkodGhpcy5fcHJvcGVydGllcy5jaGlsZHMoKS50aW1lem9uZSkub3duZXJzaGlwKCksKDAscWMuY3JlYXRlV1ZGcm9tR2V0dGVyQW5kU3Vic2NyaXB0aW9uKSgoKCk9PnRoaXMubWFpblNlcmllcygpLnN5bWJvbEluZm8oKT8udGltZXpvbmU/P251bGwpLHRoaXMubWFpblNlcmllcygpLnN5bWJvbFJlc29sdmVkKCkpLm93bmVyc2hpcCgpKSx0aGlzLl91cGRhdGVEYXRlVGltZUZvcm1hdHRlcigpLCF0aGlzLm9uV2lkZ2V0KCkmJigwLHEuaXNGZWF0dXJlc2V0RW5hYmxlZCkoImFsZXJ0cyIpJiZ0aGlzLl9pbml0QWxlcnRzTGlzdCgpLHRoaXMuX21haW5TZXJpZXMuZGF0YUV2ZW50cygpLmNvbXBsZXRlZCgpLnN1YnNjcmliZSh0aGlzLCgoKT0+e2lmKHRoaXMuX3Njcm9sbGluZ1N0YXRlJiZ0aGlzLmdvdG9UaW1lKHZvaWQgMCx7dGFyZ2V0UG9pbnRBbGlnbm1lbnQ6dGhpcy5fc2Nyb2xsaW5nU3RhdGUudGFyZ2V0UG9pbnRBbGlnbm1lbnQsYXV0b3NjYWxlQWZ0ZXJTY3JvbGw6dGhpcy5fc2Nyb2xsaW5nU3RhdGUuYXV0b3NjYWxlQWZ0ZXJTY3JvbGx9KSxidSYmIXRoaXMuX21haW5TZXJpZXMucmVxdWVzdE1vcmVEYXRhQXZhaWxhYmxlKCkpewpjb25zdCBlPXRoaXMuX21haW5TZXJpZXMuYmFycygpLmZpcnN0KCk7bnVsbCE9PWUmJnRoaXMuX3RpbWVTY2FsZS5zZXRMZWZ0RWRnZUZpeChlLmluZGV4KX19KSksdGhpcy5fbWFpblNlcmllcy5vbkludGVydmFsQ2hhbmdlZCgpLnN1YnNjcmliZSh0aGlzLCgoKT0+e3RoaXMuX3JlY2FsY1ZSU3R1ZGllc1BhcmFtcy5vbGRTdGFydFZpc2libGVJbmRleD1OYU4sdGhpcy5fcmVjYWxjVlJTdHVkaWVzUGFyYW1zLm9sZEVuZFZpc2libGVJbmRleD1OYU59KSksdGhpcy5fbWFpblNlcmllcy5kYXRhRXZlbnRzKCkuYmFyUmVjZWl2ZWQoKS5zdWJzY3JpYmUodGhpcyx0aGlzLnVwZGF0ZVRpbWVTY2FsZUJhc2VJbmRleCksIXRoaXMuX3JlYWRPbmx5KXt0aGlzLl9tYWluU2VyaWVzLnByb3BlcnRpZXMoKS5hZGRDaGlsZCgicHJpY2VBeGlzUHJvcGVydGllcyIsdGhpcy5fbWFpblNlcmllcy5wcmljZVNjYWxlKCkucHJvcGVydGllcygpKTtjb25zdCBlPXRoaXMuX3Byb3BlcnRpZXMuY2hpbGRzKCkucGFuZVByb3BlcnRpZXMuY2hpbGRzKCkubGVnZW5kUHJvcGVydGllcy5jaGlsZHMoKTtlLnNob3dTdHVkeVRpdGxlcy5zdWJzY3JpYmUodGhpcywodD0+e3QudmFsdWUoKXx8ZS5zaG93U3R1ZHlBcmd1bWVudHMuc2V0VmFsdWUoITEpfSkpfXRoaXMuX21haW5TZXJpZXMucHJvcGVydGllcygpLmNoaWxkcygpLmludGVydmFsLnN1YnNjcmliZSh0aGlzLHRoaXMuX3VwZGF0ZURhdGVUaW1lRm9ybWF0dGVyKSx0aGlzLl9tYWluU2VyaWVzLm9uVGltZUZyYW1lQXBwbGllZCgpLnN1YnNjcmliZSh0aGlzLChlPT57Y29uc3QgdD1lP3tyZXM6dGhpcy5fbWFpblNlcmllcy5pbnRlcnZhbCgpLHZhbDplfTpudWxsO3RoaXMuYXBwbGllZFRpbWVGcmFtZSgpLnNldFZhbHVlKHQpfSkpLHRoaXMuX21heGltaXplZFBhbmUuc3Vic2NyaWJlKCgoKT0+by5tb2RlbCgpLmZ1bGxVcGRhdGUoKSkpLHRoaXMuX2RhdGFTb3VyY2VDb2xsZWN0aW9uQ2hhbmdlZC5zdWJzY3JpYmUodGhpcyx0aGlzLl91cGRhdGVTaG93TGVnZW5kUHJvcGVydHkpLCgwLFQuaGlkZUFsbERyYXdpbmdzKSgpLnN1YnNjcmliZSh0aGlzLHRoaXMuX29uRHJhd2luZ3NWaXNpYmlsaXR5Q2hhbmdlZCksKDAsVC5oaWRlQWxsSW5kaWNhdG9ycykoKS5zdWJzY3JpYmUodGhpcyx0aGlzLl9vbkluZGljYXRvcnNWaXNpYmlsaXR5Q2hhbmdlZCksaWguZGF0ZUZvcm1hdFByb3BlcnR5LnN1YnNjcmliZSh0aGlzLHRoaXMuX3VwZGF0ZURhdGVUaW1lRm9ybWF0dGVyKSxUYy50aW1lSG91cnNGb3JtYXRQcm9wZXJ0eS5zdWJzY3JpYmUodGhpcyx0aGlzLl91cGRhdGVEYXRlVGltZUZvcm1hdHRlciksdGhpcy5fY3VycmVudFRvb2wuc3Vic2NyaWJlKChlPT57aWYoKDAsbS5pc0xpbmVUb29sTmFtZSkoZSkpe2NvbnN0IGU9dGhpcy5fc2VsZWN0aW9uLmFsbEl0ZW1zU29ydGVkKCkubWFwKChlPT4oMCxYci5pc0xpbmVUb29sc0dyb3VwKShlKT9lLmlkOmUuaWQoKSkpO3RoaXMuX3ByZXZpb3VzU2VsZWN0ZWREcmF3aW5nT3JHcm91cElkcz1lLHRoaXMuc2VsZWN0aW9uTWFjcm8oKGU9PntlLmNsZWFyU2VsZWN0aW9uKCl9KSl9dGhpcy5fbWF5YmVVcGRhdGVQcmV2aW91c1NlbGVjdGVkRHJhd2luZ09yR3JvdXAoKSwhKDAsa2kuaXNMaW5lVG9vbExvYWRlZCkoZSkmJigwLGtpLmlzQXN5bmNHZW5lcmljTGluZVRvb2xOYW1lKShlKT8oMCxraS5sb2FkTGluZVRvb2wpKGUpLnRoZW4oKCgpPT50aGlzLl9waGFudG9tU291cmNlQ29udGFpbmVyLm9uVG9vbENoYW5nZWQoKSkpOnRoaXMuX3BoYW50b21Tb3VyY2VDb250YWluZXIub25Ub29sQ2hhbmdlZCgpfSkpLHRoaXMuX3NpZ25hdHVyZVNvdXJjZXM9dGhpcy5fc3R1ZGllc0V4Y2x1ZGVJbnRlcm5hbFdWLnNwYXduKCk7Y29uc3QgTT0oMCx1LmNvbWJpbmUpKChlPT5lLm1hcCgoZT0+ZS5zaWduYXR1cmUoKS53ZWFrUmVmZXJlbmNlKCkpKSksdGhpcy5fc2lnbmF0dXJlU291cmNlcy53ZWFrUmVmZXJlbmNlKCkpO3RoaXMuX3NvdXJjZXNTaWduYXR1cmVzPSgwLHUuYWNjdW11bGF0ZSkoKGU9PmUuZmlsdGVyKGEubm90TnVsbCkpLE0ub3duZXJzaGlwKCkpfWRlc3Ryb3koKXt0aGlzLl9hYm9ydENvbnRyb2xsZXIuYWJvcnQoKSx0aGlzLmNsZWFySW50ZXJ2YWxzKCksdGhpcy5yZXNldERlZmVycmVkU3R1ZGllcygpLHRoaXMuX3N5bWJvbEFsaWFzU2VydmljZT8ub25BbGlhc0NoYW5nZWQoKS51bnN1YnNjcmliZUFsbCh0aGlzKSx0aGlzLmFsbFN0dWRpZXMoKS5mb3JFYWNoKChlPT50aGlzLnJlbW92ZVNvdXJjZShlKSkpLGloLmRhdGVGb3JtYXRQcm9wZXJ0eS51bnN1YnNjcmliZSh0aGlzLHRoaXMuX3VwZGF0ZURhdGVUaW1lRm9ybWF0dGVyKSxUYy50aW1lSG91cnNGb3JtYXRQcm9wZXJ0eS51bnN1YnNjcmliZSh0aGlzLHRoaXMuX3VwZGF0ZURhdGVUaW1lRm9ybWF0dGVyKSwoMCxULmhpZGVBbGxJbmRpY2F0b3JzKSgpLnVuc3Vic2NyaWJlKHRoaXMsdGhpcy5fb25JbmRpY2F0b3JzVmlzaWJpbGl0eUNoYW5nZWQpLCgwLFQuaGlkZUFsbERyYXdpbmdzKSgpLnVuc3Vic2NyaWJlKHRoaXMsdGhpcy5fb25EcmF3aW5nc1Zpc2liaWxpdHlDaGFuZ2VkKSx0aGlzLl9kYXRhU291cmNlQ29sbGVjdGlvbkNoYW5nZWQudW5zdWJzY3JpYmVBbGwodGhpcyksdGhpcy5fcGhhbnRvbVNvdXJjZUNvbnRhaW5lci5kZXN0cm95KCksdGhpcy5faG92ZXJlZFNvdXJjZUNoYW5nZWQuZGVzdHJveSgpLG51bGwhPT10aGlzLl93YXRlcm1hcmtTb3VyY2UmJih0aGlzLl93YXRlcm1hcmtTb3VyY2UuZGVzdHJveSgpLHRoaXMuX3dhdGVybWFya1NvdXJjZT1udWxsKSxBcnJheS5mcm9tKHRoaXMuX2N1c3RvbVNvdXJjZXNNYXAua2V5cygpKS5mb3JFYWNoKHRoaXMuX3JlbW92ZUN1c3RvbVNvdXJjZSx0aGlzKSwoMCxsLmFzc2VydCkoMD09PXRoaXMuX3RvcG1vc3RDdXN0b21Tb3VyY2VzLmxlbmd0aCksKDAsbC5hc3NlcnQpKDA9PT10aGlzLl9mZ0N1c3RvbVNvdXJjZXMubGVuZ3RoKSwoMCxsLmFzc2VydCkoMD09PXRoaXMuX2JnQ3VzdG9tU291cmNlcy5sZW5ndGgpLCgwLGwuYXNzZXJ0KSgwPT09dGhpcy5fYWxsQ3VzdG9tU291cmNlcy5sZW5ndGgpLCgwLApsLmFzc2VydCkoMD09PXRoaXMuX2N1c3RvbVNvdXJjZXNNYXAuc2l6ZSksdGhpcy5fcGFuZXMuZm9yRWFjaCgoZT0+ZS5kZXN0cm95KCkpKSx0aGlzLl9wYW5lcy5sZW5ndGg9MCx0aGlzLl9zZXNzaW9ucz1udWxsLG51bGwhPT10aGlzLl9sb2xsaXBvcFNvdXJjZXNXYXRjaGVyJiYodGhpcy5fbG9sbGlwb3BTb3VyY2VzV2F0Y2hlci5kZXN0cm95KCksdGhpcy5fbG9sbGlwb3BTb3VyY2VzV2F0Y2hlcj1udWxsKSxudWxsIT09dGhpcy5fYWxlcnRzV2F0Y2hlciYmdGhpcy5fYWxlcnRzV2F0Y2hlci5kZXN0cm95KCksdGhpcy5vbldpZGdldCgpfHxsaC53aXRoV2Vla2RheVByb3BlcnR5LnVuc3Vic2NyaWJlQWxsKHRoaXMpLHRoaXMuX3Byb3BlcnRpZXMuY2hpbGRzKCkucGFuZVByb3BlcnRpZXMuY2hpbGRzKCkubGVnZW5kUHJvcGVydGllcy5jaGlsZHMoKS5zaG93TGVnZW5kLnVuc3Vic2NyaWJlQWxsKHRoaXMpLHRoaXMuX3Byb3BlcnRpZXMuY2hpbGRzKCkucGFuZVByb3BlcnRpZXMuY2hpbGRzKCkuYmFja2dyb3VuZC51bnN1YnNjcmliZUFsbCh0aGlzKSx0aGlzLl9wcm9wZXJ0aWVzLmNoaWxkcygpLnBhbmVQcm9wZXJ0aWVzLmNoaWxkcygpLmJhY2tncm91bmRUeXBlLnVuc3Vic2NyaWJlQWxsKHRoaXMpLHRoaXMuX3Byb3BlcnRpZXMuY2hpbGRzKCkucGFuZVByb3BlcnRpZXMuY2hpbGRzKCkuYmFja2dyb3VuZEdyYWRpZW50RW5kQ29sb3IudW5zdWJzY3JpYmVBbGwodGhpcyksdGhpcy5fcHJvcGVydGllcy5jaGlsZHMoKS5wYW5lUHJvcGVydGllcy5jaGlsZHMoKS5iYWNrZ3JvdW5kR3JhZGllbnRTdGFydENvbG9yLnVuc3Vic2NyaWJlQWxsKHRoaXMpLHRoaXMuX3dhdGNoZWRUaGVtZVNwYXduLmRlc3Ryb3koKSx0aGlzLl9sYXN0SG92ZXJlZEhpdHRlc3REYXRhPW51bGwsdGhpcy5fbGFzdFNlbGVjdGVkSGl0dGVzdERhdGE9bnVsbCwoMCxycy5jdXJyZW5jeVVuaXRNZXRyaWNWaXNpYmlsaXR5UHJvcGVydHkpKCkudW5zdWJzY3JpYmVBbGwodGhpcyksKDAsb3MuYXV0b0xvZ0J1dHRvbnNWaXNpYmlsaXR5UHJvcGVydHkpKCkudW5zdWJzY3JpYmVBbGwodGhpcyksdGhpcy5fbWFpblNlcmllcy5wcm9wZXJ0aWVzKCkuY2hpbGRzKCkuaW50ZXJ2YWwudW5zdWJzY3JpYmUodGhpcyx0aGlzLl91cGRhdGVEYXRlVGltZUZvcm1hdHRlciksdGhpcy5fbWFpblNlcmllcy5wcm9wZXJ0aWVzKCkuY2hpbGRzKCkuc2hvd0NvdW50ZG93bi51bnN1YnNjcmliZUFsbCh0aGlzKSx0aGlzLl9hbGVydHNDb2xsZWN0aW9uLnZhbHVlKCk/LmRlc3Ryb3koKSx0aGlzLl9hbGVydHNDb2xsZWN0aW9uLnNldFZhbHVlKG51bGwpLHdpbmRvdy5sb2dpblN0YXRlQ2hhbmdlLnVuc3Vic2NyaWJlQWxsKHRoaXMpLHRoaXMuX2Nyb3NzSGFpclNlbGVjdFBvaW50TW9kZS5kZXN0cm95KCksdGhpcy5fbWFpblNlcmllcy5vbkludGVydmFsQ2hhbmdlZCgpLnVuc3Vic2NyaWJlQWxsKHRoaXMpLHRoaXMuX21haW5TZXJpZXMub25UaW1lRnJhbWVBcHBsaWVkKCkudW5zdWJzY3JpYmVBbGwodGhpcyksdGhpcy5fbWFpblNlcmllcy5zeW1ib2xSZXNvbHZlZCgpLnVuc3Vic2NyaWJlKHRoaXMsdGhpcy5fY2xlYXJBdmFpbGFibGVQcmljZVNvdXJjZXMpLHRoaXMuX21haW5TZXJpZXMub25TeW1ib2xJbnRlcnZhbENoYW5nZWQoKS51bnN1YnNjcmliZSh0aGlzLHRoaXMuX29uU3ltYm9sSW50ZXJ2YWxDaGFuZ2VkKSx0aGlzLl9tYWluU2VyaWVzLm9uU3R5bGVDaGFuZ2VkKCkudW5zdWJzY3JpYmUodGhpcy5fdGltZVNjYWxlLHRoaXMuX3RpbWVTY2FsZS5pbnZhbGlkYXRlVmlzaWJsZUJhcnMpLHRoaXMuX3RpbWVTY2FsZS52aXNpYmxlQmFyc1N0cmljdFJhbmdlQ2hhbmdlZCgpLnVuc3Vic2NyaWJlKHRoaXMuX21haW5TZXJpZXMsdGhpcy5fbWFpblNlcmllcy5jbGVhckhpZ2hMb3dQcmljZUNhY2hlKSx0aGlzLl90aW1lU2NhbGUudmlzaWJsZUJhcnNTdHJpY3RSYW5nZUNoYW5nZWQoKS51bnN1YnNjcmliZSh0aGlzLl9tYWluU2VyaWVzLHRoaXMuX21haW5TZXJpZXMuY2xlYXJBdmVyYWdlUHJpY2VDYWNoZSksdGhpcy5fdGltZVNjYWxlLmJhclNwYWNpbmdDaGFuZ2VkKCkudW5zdWJzY3JpYmVBbGwodGhpcyksdGhpcy5fdGltZVNjYWxlLm9uU2Nyb2xsKCkudW5zdWJzY3JpYmVBbGwodGhpcyksdGhpcy5fdGltZVNjYWxlLmRlc3Ryb3koKSx0aGlzLl90aW1lem9uZUV4Y2VwdEV4Y2hhbmdlLmRlc3Ryb3koKSx0aGlzLl9sb2xsaXBvcFNvdXJjZXNXYXRjaGVyTG9hZGVyPy5kZXN0cm95KCksdGhpcy5fYXBwbGllZFRpbWVGcmFtZS5kZXN0cm95KCksdGhpcy5fY3Jvc3NIYWlyU291cmNlLmRlc3Ryb3koKSx0aGlzLl9jdXJyZW50VG9vbC5kZXN0cm95KCksdGhpcy5fc2lnbmF0dXJlU291cmNlcy5kZXN0cm95KCksdGhpcy5fc291cmNlc1NpZ25hdHVyZXMuZGVzdHJveSgpLHRoaXMuX29uRGVzdHJveWVkLmZpcmUoKSx0aGlzLl9vbkRlc3Ryb3llZC5kZXN0cm95KCksdGhpcy5fbGluZVRvb2xzR3JvdXBNb2RlbC5kZXN0cm95KCksdGhpcy5fZGVzdHJveWVkPSEwfW9uRGVzdHJveWVkKCl7cmV0dXJuIHRoaXMuX29uRGVzdHJveWVkfXJlc3RhcnQoKXt0aGlzLl9jaGFydFNlc3Npb24uc3dpdGNoVGltZXpvbmUodGhpcy50aW1lem9uZSgpKSx0aGlzLl90aW1lU2NhbGUucmVzZXQoKSx0aGlzLl9tYWluU2VyaWVzLnJlc3RhcnQoKTtmb3IoY29uc3QgZSBvZiB0aGlzLmRhdGFTb3VyY2VzKCkpZS5yZXN0YXJ0JiZlIT09dGhpcy5fbWFpblNlcmllcyYmZS5yZXN0YXJ0KCk7dGhpcy5fc2Vzc2lvbnM/LmdldCgpPy5yZXN0YXJ0KCl9dmVyc2lvbigpe3JldHVybiAzfWNvbGxhcHNlZCgpe3JldHVybiB0aGlzLl9oaWJlcm5hdGVXVn12aXNpYmxlUmFuZ2VTdHVkaWVzSW5wdXRzKCl7cmV0dXJuIHRoaXMuX3Zpc2libGVSYW5nZVN0dWRpZXNJbnB1dHMucmVhZG9ubHkoKX1jaGFydFNhdmVUaW1lKCl7cmV0dXJuIHRoaXMuX2NoYXJ0U2F2ZVRpbWV9c2V0Q2hhcnRTYXZlVGltZShlKXt0aGlzLl9jaGFydFNhdmVUaW1lPWV9c3RhcnROb3RTdGFydGVkU3R1ZGllcygpewppZighdGhpcy5fbWFpblNlcmllcy5pc1N0YXJ0ZWQoKSl0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBzdGFydCBzdHVkaWVzOiBtYWluIHNlcmllcyBpcyBub3Qgc3RhcnRlZCIpO2Zvcihjb25zdCBlIG9mIHRoaXMuZGF0YVNvdXJjZXMoKSkoMCx0aS5pc1N0dWR5KShlKSYmIWUuaXNTdGFydGVkKCkmJmUucmVzdGFydD8uKCl9dW5kb01vZGVsKCl7cmV0dXJuIHRoaXMuX3VuZG9Nb2RlbH1vbkRhdGEoZSl7c3dpdGNoKGUubWV0aG9kKXtjYXNlInRpbWVzY2FsZV91cGRhdGUiOntjb25zdCB0PWUucGFyYW1zO3RoaXMuX3VwZGF0ZVRpbWVTY2FsZSh7aW5kZXg6dC5pbmRleCx6b2Zmc2V0OnQuem9mZnNldCx2YWx1ZXM6dC5jaGFuZ2VzLGluZGV4RGlmZnM6dC5pbmRleF9kaWZmLGJhc2VJbmRleDp0LmJhc2VJbmRleCxtYXJrczp0Lm1hcmtzLGNsZWFyRmxhZzp0LmNsZWFyLGNsZWFyVGlja01hcmtzOnQuY2xlYXJUaWNrTWFya3N9KTticmVha31jYXNlInRpbWVzY2FsZV9jb21wbGV0ZWQiOntjb25zdCB0PUJvb2xlYW4oZS5wYXJhbXNbMF0pO3RoaXMuX3RpbWVTY2FsZS5vblRpbWVTY2FsZUNvbXBsZXRlZCh0KTticmVha319fWFkZFN0cmF0ZWd5U291cmNlKGUsdCl7MSE9PXQmJi0xPT09dGhpcy5fc3RyYXRlZ3lTb3VyY2VzLmluZGV4T2YoZSkmJih0aGlzLl9zdHJhdGVneVNvdXJjZXMucHVzaChlKSx0aGlzLl9zdHJhdGVneVNvdXJjZXNDaGFuZ2UuZmlyZSh0KSx0aGlzLnNldEFjdGl2ZVN0cmF0ZWd5U291cmNlKGUpKX1yZW1vdmVTdHJhdGVneVNvdXJjZShlLHQpe2lmKDE9PT10KXJldHVybjtjb25zdCBpPXRoaXMuX3N0cmF0ZWd5U291cmNlcy5pbmRleE9mKGUpO2lmKC0xIT09aSl7aWYodGhpcy5fc3RyYXRlZ3lTb3VyY2VzLnNwbGljZShpLDEpWzBdPT09dGhpcy5fYWN0aXZlU3RyYXRlZ3lTb3VyY2UudmFsdWUoKSYmdGhpcy51bnNldEFjdGl2ZVN0cmF0ZWd5U291cmNlKCksdGhpcy5fc3RyYXRlZ3lTb3VyY2VzLmxlbmd0aD4wKXtjb25zdCBlPXRoaXMuX3N0cmF0ZWd5U291cmNlc1t0aGlzLl9zdHJhdGVneVNvdXJjZXMubGVuZ3RoLTFdO3RoaXMuc2V0QWN0aXZlU3RyYXRlZ3lTb3VyY2UoZSl9dGhpcy5fc3RyYXRlZ3lTb3VyY2VzQ2hhbmdlLmZpcmUodCl9fXNldEFjdGl2ZVN0cmF0ZWd5U291cmNlKGUpey0xIT09dGhpcy5fc3RyYXRlZ3lTb3VyY2VzLmluZGV4T2YoZSkmJnRoaXMuX2FjdGl2ZVN0cmF0ZWd5U291cmNlLnNldFZhbHVlKGUpfXVuc2V0QWN0aXZlU3RyYXRlZ3lTb3VyY2UoKXt0aGlzLl9hY3RpdmVTdHJhdGVneVNvdXJjZS5zZXRWYWx1ZShudWxsKX1hY3RpdmVTdHJhdGVneVNvdXJjZSgpe3JldHVybiB0aGlzLl9hY3RpdmVTdHJhdGVneVNvdXJjZS5yZWFkb25seSgpfXN0cmF0ZWd5U291cmNlcygpe3JldHVybiB0aGlzLl9zdHJhdGVneVNvdXJjZXN9c3RyYXRlZ3lTb3VyY2VzQ2hhbmdlKCl7cmV0dXJuIHRoaXMuX3N0cmF0ZWd5U291cmNlc0NoYW5nZX1yZXBsYXlTdHVkeVN0cmF0ZWd5KCl7cmV0dXJuIHRoaXMuX3JlcGxheVN0dWR5U3RyYXRlZ3l9c2V0UmVwbGF5U3R1ZHlTdHJhdGVneShlKXt0aGlzLl9yZXBsYXlTdHVkeVN0cmF0ZWd5LnNldFZhbHVlKGUpfWFzeW5jIHJlcGxheVN0dWR5U3RyYXRlZ3lQcm9wZXJ0aWVzKCl7aWYobnVsbD09PXRoaXMuX3JlcGxheVN0dWR5U3RyYXRlZ3lJbnB1dHMpe2NvbnN0IGU9YXdhaXQoMCxwaC5nZXRSZXBsYXlTdHJhdGVneU1ldGFJbmZvKSgpO2lmKG51bGwhPT10aGlzLl9yZXBsYXlTdHVkeVN0cmF0ZWd5SW5wdXRzKXJldHVybiB0aGlzLl9yZXBsYXlTdHVkeVN0cmF0ZWd5SW5wdXRzO3RoaXMuX3JlcGxheVN0dWR5U3RyYXRlZ3lJbnB1dHM9bmV3IEdyLkRlZmF1bHRQcm9wZXJ0eSh7ZGVmYXVsdE5hbWU6InJlcGxheVN0dWR5U3RyYXRlZ3lJbnB1dHMiLGZhY3RvcnlEZWZhdWx0c1N1cHBsaWVyOigpPT4oMCxhLmNsb25lKShlLmRlZmF1bHRzLmlucHV0cyl9KX1yZXR1cm4gdGhpcy5fcmVwbGF5U3R1ZHlTdHJhdGVneUlucHV0c31jbGVhclJlcGxheVN0dWR5U3RyYXRlZ3lQcm9wZXJ0aWVzKCl7dGhpcy5fcmVwbGF5U3R1ZHlTdHJhdGVneUlucHV0cz1udWxsfXNldFNjcm9sbEVuYWJsZWQoZSl7dGhpcy5fc2Nyb2xsRW5hYmxlZD1lfXNjcm9sbEVuYWJsZWQoKXtyZXR1cm4gdGhpcy5fc2Nyb2xsRW5hYmxlZH1zZXRab29tRW5hYmxlZChlKXt0aGlzLl96b29tRW5hYmxlZD1lfXpvb21FbmFibGVkKCl7cmV0dXJuIHRoaXMuX3pvb21FbmFibGVkfWRyYWdFeHBvcnRFbmFibGVkKCl7cmV0dXJuIHRoaXMuX2RyYWdFeHBvcnRFbmFibGVkfWFzeW5jIHNldERyYWdFeHBvcnRFbmFibGVkKGUpe2NvbnNvbGUuZXJyb3IoImZlYXR1cmUgaXMgbm90IGVuYWJsZWQiKX16b29tVG9WaWV3cG9ydChlLHQsaSxzLG4pe3RoaXMuc2V0VGltZVZpZXdwb3J0KGUsdCk7bGV0IHI9TWF0aC5taW4oaSxzKSxvPU1hdGgubWF4KGkscyk7Y29uc3QgYT1uLmRlZmF1bHRQcmljZVNjYWxlKCk7YS5pc1BlcmNlbnRhZ2UoKXx8YS5zZXRNb2RlKHthdXRvU2NhbGU6ITF9KSxhLmlzTG9nKCkmJihyPWEucHJpY2VUb0xvZ2ljYWwociksbz1hLnByaWNlVG9Mb2dpY2FsKG8pKSxhLnNldFByaWNlUmFuZ2UobmV3IFBsLlByaWNlUmFuZ2UocixvKSksdGhpcy5yZWNhbGN1bGF0ZUFsbFBhbmVzKCgwLHRuLnZpZXdwb3J0Q2hhbmdlRXZlbnQpKCkpLHRoaXMuaW52YWxpZGF0ZSh0aGlzLl9wYW5lSW52YWxpZGF0aW9uTWFzayhuLExlLkludmFsaWRhdGlvbkxldmVsLkxpZ2h0KSl9c2V0VGltZVZpZXdwb3J0KGUsdCl7Y29uc3QgaT10aGlzLmFwcGxpZWRUaW1lRnJhbWUoKS52YWx1ZSgpO251bGwhPT10aGlzLl9sYXN0QXBwbGllZEdvdG9UaW1lUmFuZ2UmJm51bGwhPT1pJiYoMCxWbi5hcmVFcXVhbFRpbWVGcmFtZXMpKHRoaXMuX2xhc3RBcHBsaWVkR290b1RpbWVSYW5nZS5yYW5nZSxpLnZhbCkmJiF0aGlzLl9sYXN0QXBwbGllZEdvdG9UaW1lUmFuZ2UuYWN0dWFsfHwodGhpcy50aW1lU2NhbGUoKS56b29tVG9CYXJzUmFuZ2UoZSx0KSx0aGlzLnJlY2FsY3VsYXRlQWxsUGFuZXMoKDAsdG4udmlld3BvcnRDaGFuZ2VFdmVudCkoKSksCnRoaXMucmVjYWxjVmlzaWJsZVJhbmdlU3R1ZGllcyhJaS5SZWNhbGNWaXNpYmxlUmFuZ2VTdHVkaWVzUmVhc29uLlZpZXdwb3J0Q2hhbmdlVXNlckFjdGlvbiksdGhpcy5saWdodFVwZGF0ZSgpKX1vblRhZ3NDaGFuZ2VkKCl7cmV0dXJuIHRoaXMuX3RhZ3NDaGFuZ2VkfWNhblpvb21Jbigpe3JldHVybiB0aGlzLl90aW1lU2NhbGUuY2FuWm9vbUluKCkmJnRoaXMuX3pvb21FbmFibGVkfWNhblpvb21PdXQoKXtyZXR1cm4gdGhpcy5fdGltZVNjYWxlLmNhblpvb21PdXQoKSYmdGhpcy5fem9vbUVuYWJsZWR9b25QYW5lVGFnc0NoYW5nZWQoKXt0aGlzLl90YWdzQ2hhbmdlZC5maXJlKCl9cGFuZXNDb2xsZWN0aW9uQ2hhbmdlZCgpe3JldHVybiB0aGlzLl9wYW5lc0NvbGxlY3Rpb25DaGFuZ2VkfWRhdGFTb3VyY2VDb2xsZWN0aW9uQ2hhbmdlZCgpe3JldHVybiB0aGlzLl9kYXRhU291cmNlQ29sbGVjdGlvbkNoYW5nZWR9c3ltYm9sU291cmNlQ29sbGVjdGlvbkNoYW5nZWQoKXtyZXR1cm4gdGhpcy5fc3ltYm9sU291cmNlQ29sbGVjdGlvbkNoYW5nZWR9c3ltYm9sU291cmNlUmVzb2x2ZWQoKXtyZXR1cm4gdGhpcy5fc3ltYm9sU291cmNlUmVzb2x2ZWR9c3ltYm9sU291cmNlUmVzb2x2aW5nQWN0aXZlKCl7cmV0dXJuIHRoaXMuX3N5bWJvbFNvdXJjZVJlc29sdmluZ0FjdGl2ZX1hZGp1c3RGb3JEaXZpZGVuZHNBdmFpbGFiaWxpdHkoKXtyZXR1cm4gdGhpcy5fYWRqdXN0Rm9yRGl2aWRlbmRzQXZhaWxhYmlsaXR5fWFkanVzdEZvckRpdmlkZW5kc0VuYWJsZWQoKXtyZXR1cm4gdGhpcy5fYWRqdXN0Rm9yRGl2aWRlbmRzRW5hYmxlZH1hbGxvd2VkQWRqdXN0bWVudCgpe3JldHVybiB0aGlzLl9hbGxvd2VkQWRqdXN0bWVudH1wYW5lQ29sbGFwc2luZ0F2YWlsYWJsZSgpe3JldHVybiB0aGlzLl9wYW5lQ29sbGFwc2luZ0F2YWlsYWJsZX1zb3VyY2VQcm9wZXJ0aWVzQ2hhbmdlZCgpe3JldHVybiB0aGlzLl9zb3VyY2VQcm9wZXJpdGVzQ2hhbmdlZH1zb3VyY2VaT3JkZXJDaGFuZ2VkKCl7cmV0dXJuIHRoaXMuX3NvdXJjZVpPcmRlckNoYW5nZWR9em9vbVRpbWUoZSx0LGkpe2lmKCF0aGlzLl96b29tRW5hYmxlZClyZXR1cm47Y29uc3Qgcz10aGlzLnRpbWVTY2FsZSgpO2lmKHMuaXNFbXB0eSgpfHwwPT09dClyZXR1cm47Y29uc3Qgbj1zLndpZHRoKCk7ZT1NYXRoLm1heCgxLE1hdGgubWluKGUsbi0yKSkscy56b29tKGUsdCxpKSx0aGlzLnJlY2FsY3VsYXRlQWxsUGFuZXMoKDAsdG4udmlld3BvcnRDaGFuZ2VFdmVudCkoKSksdGhpcy5saWdodFVwZGF0ZSgpLHRoaXMucmVjYWxjVmlzaWJsZVJhbmdlU3R1ZGllcyhJaS5SZWNhbGNWaXNpYmxlUmFuZ2VTdHVkaWVzUmVhc29uLlZpZXdwb3J0Q2hhbmdlVXNlckFjdGlvbil9bGluZUJlaW5nRWRpdGVkKCl7cmV0dXJuIHRoaXMuX2xpbmVCZWluZ0VkaXRlZD8ubGluZURhdGFTb3VyY2U/P251bGx9bGluZVBvaW50QmVpbmdFZGl0ZWQoKXtyZXR1cm4gdGhpcy5fbGluZUJlaW5nRWRpdGVkPy5wb2ludEluZGV4Pz9udWxsfWxpbmVQb2ludEJlaW5nQ2hhbmdlZCgpe3JldHVybiB0aGlzLl9saW5lQmVpbmdFZGl0ZWQ/LnN0YXJ0Q2hhbmdpbmdQb2ludD8/bnVsbH1hY3RpdmVJdGVtQmVpbmdNb3ZlZCgpe3JldHVybiB0aGlzLl9hY3RpdmVJdGVtQmVpbmdNb3ZlZH1tYWluU2VyaWVzKCl7cmV0dXJuIHRoaXMuX21haW5TZXJpZXN9dXBkYXRlQWxsUGFuZVZpZXdzKGUpe2Zvcihjb25zdCB0IG9mIHRoaXMuX3BhbmVzKXQudXBkYXRlQWxsVmlld3MoZSk7dGhpcy5fd2F0ZXJtYXJrU291cmNlPy51cGRhdGVBbGxWaWV3cyhlKX1kYXRhU291cmNlcygpe2NvbnN0IGU9W3RoaXMuY3Jvc3NoYWlyU291cmNlKCldO2Zvcihjb25zdCB0IG9mIHRoaXMuX3BhbmVzKWZvcihjb25zdCBpIG9mIHQuZGF0YVNvdXJjZXMoKSllLnB1c2goaSk7cmV0dXJuIGV9cHJpY2VEYXRhU291cmNlcygpe2NvbnN0IGU9W107Zm9yKGNvbnN0IHQgb2YgdGhpcy5fcGFuZXMpZm9yKGNvbnN0IGkgb2YgdC5wcmljZURhdGFTb3VyY2VzKCkpZS5wdXNoKGkpO3JldHVybiBlfXN5bWJvbFNvdXJjZXMoKXtjb25zdCBlPVtdO2Zvcihjb25zdCB0IG9mIHRoaXMuX3BhbmVzKWZvcihjb25zdCBpIG9mIHQuc3ltYm9sU291cmNlcygpKWUucHVzaChpKTtyZXR1cm4gZX1vcmRlcmVkRGF0YVNvdXJjZXMoZSl7bGV0IHQ9W3RoaXMuX2Nyb3NzSGFpclNvdXJjZV07Zm9yKGxldCBpPTA7aTx0aGlzLl9wYW5lcy5sZW5ndGg7aSsrKXtsZXQgcz10aGlzLl9wYW5lc1tpXS5zb3VyY2VzQnlHcm91cCgpLmFsbCgpO2UmJihzPXMuc2xpY2UoKS5yZXZlcnNlKCkpLHQ9dC5jb25jYXQocyl9cmV0dXJuIHR9bGluZVRvb2xCeUxpbmtLZXkoZSl7Zm9yKGNvbnN0IHQgb2YgdGhpcy5fcGFuZXMpe2NvbnN0IGk9dC5saW5lVG9vbEJ5TGlua0tleShlKTtpZihpKXJldHVybiBpfXJldHVybiBudWxsfXRpbWVTY2FsZSgpe3JldHVybiB0aGlzLl90aW1lU2NhbGV9c2VsZWN0aW9uKCl7cmV0dXJuIHRoaXMuX3NlbGVjdGlvbn1wcmV2aW91c1NlbGVjdGVkRHJhd2luZ09yR3JvdXBJZHMoKXtyZXR1cm4gdGhpcy5fcHJldmlvdXNTZWxlY3RlZERyYXdpbmdPckdyb3VwSWRzfXNlbGVjdGlvbk1hY3JvKGUsdD0hMSl7Y29uc3QgaT10aGlzLnNlbGVjdGlvbigpLmFsbEl0ZW1zKCk7ZSh7cmVtb3ZlSXRlbUZyb21TZWxlY3Rpb246dGhpcy5fcmVtb3ZlSXRlbUZyb21TZWxlY3Rpb24sYWRkSXRlbVRvU2VsZWN0aW9uOnRoaXMuX2FkZEl0ZW1Ub1NlbGVjdGlvbixjbGVhclNlbGVjdGlvbjp0aGlzLl9jbGVhclNlbGVjdGlvbixzZWxlY3Rpb25PcGVyYXRpb25BdmFpbGFibGU6dGhpcy5fc2VsZWN0aW9uT3BlcmF0aW9uQXZhaWxhYmxlLmJpbmQodGhpcyksc2VsZWN0aW9uOnRoaXMuc2VsZWN0aW9uLmJpbmQodGhpcyl9KTtjb25zdCBzPXRoaXMuc2VsZWN0aW9uKCkuYWxsSXRlbXMoKSxuPSgwLGcuc3VidHJhY3QpKGkscykscj0oMCxnLnN1YnRyYWN0KShzLGkpO3IuY29uY2F0KGkpLmZvckVhY2goKGU9PnsoMCxYci5pc0xpbmVUb29sc0dyb3VwKShlKXx8ZS51cGRhdGVBbGxWaWV3cygoMCx0bi5zZWxlY3Rpb25DaGFuZ2VFdmVudCkoKSl9KSkKO2NvbnN0IG89W10sYT1bXTtpZighdClmb3IoY29uc3QgZSBvZiBuKSgwLHJpLmlzTGluZVRvb2wpKGUpJiYoKDAscmkuaXNFZGl0YWJsZVRleHRMaW5lVG9vbCkoZSkmJmUuZGVhY3RpdmF0ZVRleHRFZGl0aW5nKCksZS5zaG91bGRCZVJlbW92ZWRPbkRlc2VsZWN0KCkmJm51bGwhPT10aGlzLmRhdGFTb3VyY2VGb3JJZChlLmlkKCkpJiZvLnB1c2goZSkpLCgwLFhyLmlzTGluZVRvb2xzR3JvdXApKGUpJiZlLnNob3VsZEJlUmVtb3ZlZE9uRGVzZWxlY3QoKSYmbnVsbCE9PXRoaXMuX2xpbmVUb29sc0dyb3VwTW9kZWwuZ3JvdXBGb3JJZChlLmlkKSYmYS5wdXNoKGUpO2lmKDE9PT1yLmxlbmd0aCl7Y29uc3RbZV09cjsoMCxyaS5pc0xpbmVUb29sKShlKSYmZS5oYXNBbGVydCgpLnZhbHVlKCkmJjA9PT1lLmFsZXJ0U3RhdHVzKCkudmFsdWUoKSYmZS5zeW5jaHJvbml6ZUFsZXJ0KCkuY2F0Y2goKCgpPT57fSkpfW8ubGVuZ3RoPjAmJnRoaXMuX3VuZG9Nb2RlbC5yZW1vdmVTb3VyY2VzKG8sITEsdnUpLGEubGVuZ3RoPjAmJmEuZm9yRWFjaCgoZT0+e3RoaXMuX3VuZG9Nb2RlbC5saW5lVG9vbHNHcm91cENvbnRyb2xsZXIoKS5yZW1vdmVHcm91cChlKX0pKSx0aGlzLmxpZ2h0VXBkYXRlKCksKG4ubGVuZ3RoPjB8fHIubGVuZ3RoPjApJiZ0aGlzLl9zZWxlY3RlZFNvdXJjZUNoYW5nZWQuZmlyZSgpLHRoaXMuX21heWJlVXBkYXRlUHJldmlvdXNTZWxlY3RlZERyYXdpbmdPckdyb3VwKCl9b25TZWxlY3RlZFNvdXJjZUNoYW5nZWQoKXtyZXR1cm4gdGhpcy5fc2VsZWN0ZWRTb3VyY2VDaGFuZ2VkfWNoZWNrTGluZVRvb2xBbmRHcm91cFNlbGVjdGlvbigpe2NvbnN0IGU9dGhpcy5zZWxlY3Rpb24oKS5hbGxJdGVtcygpO3RoaXMuX3NlbGVjdGlvbi5jaGVja0xpbmVUb29sQW5kR3JvdXBTZWxlY3Rpb24oKSxlLmxlbmd0aCE9PXRoaXMuc2VsZWN0aW9uKCkuYWxsSXRlbXMoKS5sZW5ndGgmJnRoaXMuX3NlbGVjdGVkU291cmNlQ2hhbmdlZC5maXJlKCl9bGluZVRvb2xzR3JvdXBNb2RlbCgpe3JldHVybiB0aGlzLl9saW5lVG9vbHNHcm91cE1vZGVsfXJlc3RvcmVMaW5lVG9vbHNHcm91cHMoZSl7dGhpcy5fdW5zdWJzY3JpYmVGcm9tTGluZVRvb2xzR3JvdXBNb2RlbCgpLHRoaXMuX2xpbmVUb29sc0dyb3VwTW9kZWwuZGVzdHJveSgpLHRoaXMuX2xpbmVUb29sc0dyb3VwTW9kZWw9c2guZnJvbVN0YXRlKHRoaXMsZSksdGhpcy5fc3Vic2NyaWJlVG9MaW5lVG9vbHNHcm91cE1vZGVsKCl9cmVhbGlnbkxpbmVUb29scyhlKXtmb3IoY29uc3QgdCBvZiB0aGlzLl9wYW5lcykodm9pZCAwPT09ZXx8dC5oYXNEYXRhU291cmNlKGUpKSYmdC5yZWFsaWduTGluZVRvb2xzKGUpJiZ0aGlzLl9kYXRhU291cmNlQ29sbGVjdGlvbkNoYW5nZWQuZmlyZSh0KX1jb3B5VG9PdGhlckNoYXJ0cyhlLHQpe2NvbnN0IGk9dGhpcy5tYWluU2VyaWVzKCkscz1pLnN5bmNNb2RlbCgpLG49dGhpcy50aW1lU2NhbGUoKTtpZihzKWZvcihjb25zdCByIG9mIGUpe2lmKCFyLmlzU3luY2hyb25pemFibGUoKSljb250aW51ZTtjb25zdCBlPXIubGlua0tleSgpLnZhbHVlKCl8fCgwLGx0LnJhbmRvbUhhc2gpKCk7ci5saW5rS2V5KCkuc2V0VmFsdWUoZSk7Y29uc3Qgbz1yLnN0YXRlKCExKSxhPXIubm9ybWFsaXplZFBvaW50cygpLGM9ci5ub3JtYWxpemVkUG9pbnRzRm9yQ3JlYXRpbmcoKSxoPXIucHJvcGVydGllcygpLmludGVydmFsLnZhbHVlKCksZD1pLmludGVydmFsKCksdT1lPT57aWYoeC5JbnRlcnZhbC5pc0VxdWFsKGgsZCkpcmV0dXJuIGUubWFwKChlPT57Y29uc3QgdD0oMCxsLmVuc3VyZU5vdE51bGwpKG4udGltZVBvaW50VG9JbmRleChlLnRpbWVfdCkpK2Uub2Zmc2V0O3JldHVybntwcmljZTplLnByaWNlLHRpbWVTdGFtcDooMCxsLmVuc3VyZU5vdE51bGwpKHRoaXMuZXh0ZXJuYWxUaW1lU3RhbXAodCkpfX0pKTt7Y29uc3QgdD1zLmNyZWF0ZU5ld01vZGVsV2l0aFJlc29sdXRpb24oaCk7cmV0dXJuIGUubWFwKChlPT4oe3ByaWNlOmUucHJpY2UsdGltZVN0YW1wOjA9PT1lLm9mZnNldD9lLnRpbWVfdDp0LnByb2plY3RUaW1lKGUudGltZV90LGUub2Zmc2V0KX0pKSl9fSxwPXUoYSksXz11KGMpLG09ey4uLm8saWQ6ci5pZCgpLGxpbmtLZXk6ZSxwb2ludHM6cCxwb2ludHNGb3JDcmVhdGluZzpfLGxpbmV0b29sOnIudG9vbG5hbWUsbW9kZWw6dGhpcyxzeW1ib2w6aS5zeW1ib2woKSx3aXRoVW5kbzp0LHpPcmRlcjpyLnpvcmRlcigpLGZpbmFsU3RhdGU6e3BvaW50czphLGludGVydmFsOmh9LHBvaW50UG9zaXRpb25QZXJjZW50czpyLmlzRml4ZWQoKT9yLmNhbGNQb3NpdGlvblBlcmNlbnRzKCk6dm9pZCAwLHNoYXJpbmdNb2RlOnIuc2hhcmluZ01vZGUoKS52YWx1ZSgpfTsoMCxULmNvcHlMaW5lVG9vbCkobSl9fWlzU25hcHNob3QoKXtyZXR1cm4gdGhpcy5faXNTbmFwc2hvdH1vbldpZGdldCgpe3JldHVybiB0aGlzLl9vcHRpb25zLm9uV2lkZ2V0fWhpZGVJZGVhcygpe3JldHVybiB0aGlzLl9vcHRpb25zLmhpZGVJZGVhc311cGRhdGVTb3VyY2UoZSl7Y29uc3QgdD10aGlzLl9pbnZhbGlkYXRpb25NYXNrRm9yU291cmNlKGUpO251bGwhPT10JiZ0aGlzLmludmFsaWRhdGUodCl9dXBkYXRlU291cmNlUHJpY2VTY2FsZShlKXtjb25zdCB0PXRoaXMuX2ludmFsaWRhdGlvbk1hc2tGb3JTb3VyY2VQcmljZVNjYWxlKGUpO251bGwhPT10JiZ0aGlzLmludmFsaWRhdGUodCl9dXBkYXRlUGFuZShlKXt0aGlzLmludmFsaWRhdGUodGhpcy5fcGFuZUludmFsaWRhdGlvbk1hc2soZSkpfXVwZGF0ZVRpbWVTY2FsZUJhc2VJbmRleChlKXtjb25zdCB0PXRoaXMubWFpblNlcmllcygpLmJhcnMoKSxpPSh0LmZpcnN0SW5kZXgoKT8/MS8wKTwoZT8uaW5kZXg/Py0xLzApLHM9dGhpcy5fdGltZVNjYWxlLmJhc2VJbmRleCgpO2lmKHQuaXNFbXB0eSgpfHx0aGlzLl91cGRhdGVCYXNlSW5kZXgoKDAsbC5lbnN1cmVOb3ROdWxsKSh0Lmxhc3RJbmRleCgpKSwhIShlJiZlLmluZGV4PjApKSxpJiYhdGhpcy5fdGltZVNjYWxlLmlzQmVpbmdTY3JvbGxlZCgpJiYhdGhpcy5fdGltZVNjYWxlLmlzQmVpbmdTY2FsZWQoKSl7CmNvbnN0IGU9dGhpcy5fdGltZVNjYWxlLmJhc2VJbmRleCgpLXMsdD10aGlzLl90aW1lU2NhbGUucmlnaHRPZmZzZXQoKTt0LXRoaXMuc3R1ZHlBd2FyZURlZmF1bHRSaWdodE9mZnNldCgpPmUmJnRoaXMuX3RpbWVTY2FsZS5zZXRSaWdodE9mZnNldCh0LWUpfX1zZXRJbnRlcnZhbChlLHQpe2NvbnN0IGk9c2V0SW50ZXJ2YWwoZSx0KTtyZXR1cm4gdGhpcy5fbW9kZWxJbnRlcnZhbHMucHVzaChpKSxpfWNsZWFySW50ZXJ2YWwoZSl7Y2xlYXJJbnRlcnZhbChlKTtjb25zdCB0PXRoaXMuX21vZGVsSW50ZXJ2YWxzLmluZGV4T2YoZSk7dD4tMSYmdGhpcy5fbW9kZWxJbnRlcnZhbHMuc3BsaWNlKHQsMSl9Y2xlYXJJbnRlcnZhbHMoKXtmb3IobGV0IGU9MDtlPHRoaXMuX21vZGVsSW50ZXJ2YWxzLmxlbmd0aDtlKyspY2xlYXJJbnRlcnZhbCh0aGlzLl9tb2RlbEludGVydmFsc1tlXSk7dGhpcy5fbW9kZWxJbnRlcnZhbHM9W119Y3JlYXRlU3R1ZHlJbnNlcnRlcihlKXtyZXR1cm4gbmV3IGd1KGUse2NyZWF0ZVN0dWR5OmU9PnRoaXMuaW5zZXJ0U3R1ZHlXaXRoUGFyYW1zKGUpLHN0b3JlRmFpbGVkU3R1YjplPT57fX0pfWluc2VydFN0dWR5V2l0aFBhcmFtcyhlKXtjb25zdHtzdHVkeU1ldGFJbmZvOnQsaW5wdXRzOnMsdGFyZ2V0Wk9yZGVyOm4scHJvcHNTdGF0ZTpyLGZvcmNlT3ZlcmxheTpvLHBhcmVudFNvdXJjZXM6YyxwcmVmZXJyZWRQcmljZVNjYWxlOmgsYWxsb3dDaGFuZ2VDdXJyZW5jeTpkLGFsbG93Q2hhbmdlVW5pdDp1LGFsbG93Q2hhbmdlTWV0cmljOnAscGFuZVNpemU6Xyx0YXJnZXRTY2FsZU1vZGU6bSxpZDpnfT1lO2xldCBmPW51bGw7aWYoIW8mJnZvaWQgMCE9PXQuZ3JvdXBpbmdLZXkpe2NvbnN0IGU9dGhpcy5maW5kTm9uT3ZlcmxheVN0dWR5V2l0aEdyb3VwaW5nS2V5KHQuZ3JvdXBpbmdLZXkpO251bGwhPT1lJiYoZj1lLnBhbmUpfW51bGw9PT1mJiYob3x8dC5pc19wcmljZV9zdHVkeT9mPSgwLGwuZW5zdXJlTm90TnVsbCkodGhpcy5wYW5lRm9yU291cmNlKGM/LlswXT8/dGhpcy5fbWFpblNlcmllcykpOihmPXRoaXMuY3JlYXRlUGFuZSgpLHZvaWQgMCE9PV8mJmYuc2V0UGFuZVNpemUoXykpKSwiQ29tcGFyZUB0di1iYXNpY3N0dWRpZXMiPT09dC5pZCYmdGhpcy5fbWFpblNlcmllcy5wcmljZVNjYWxlKCkuc2V0TW9kZSh7bG9nOiExLHBlcmNlbnRhZ2U6ITB9KTtjb25zdCBTPSgwLGEubWVyZ2UpKCgwLFdvLmRlZmF1bHQpKHI/P3t9KSx7aW5wdXRzOnMscGFyZW50U291cmNlczpbXX0pO2xldCB2PSExLHk9bnVsbCxiPW51bGw7Y29uc3Qgdz1jPz9bXSxDPVByb21pc2UuYWxsKFtpLmUoMjE3ODQpLGkuZSgzMTAwMSksaS5lKDg2MTc4KSxpLmUoOTE5NDQpLGkuZSg5NzU1OCksaS5lKDY2OTg4KSxpLmUoOTcyNzIpLGkuZSg5MjcwKSxpLmUoODQyNjUpLGkuZSg1MzU1KSxpLmUoMTIyMjcpLGkuZSg1OTY0OSksaS5lKDQ3NTM4KV0pLnRoZW4oaS5iaW5kKGksNDM3NzQ5KSkudGhlbigoKHtwcmVwYXJlU3R1ZHlQcm9wZXJ0aWVzOmV9KT0+ZSh0LFMsZiwoMCxhdC5zdHVkeU1ldGFJbmZvUmVwb3NpdG9yeSkoKS5zdHVkeVZlcnNpb25pbmcoKSx3KSkpLnRoZW4oKGU9Pntjb25zdCBpPW5ldyBvdC5TdHVkeU1ldGFJbmZvKHQuc3RhdGUoKSx0LnVzZVZlcnNpb25Gcm9tTWV0YUluZm8pO3JldHVybiBsYSh0aGlzLGUsdyxpLG5ldyBvdC5TdHVkeU1ldGFJbmZvKHQuc3RhdGUoKSx0LnVzZVZlcnNpb25Gcm9tTWV0YUluZm8pLGcsdm9pZCAwKX0pKSxQPSgwLEF0LmNyZWF0ZURlZmVycmVkUHJvbWlzZSkoKTtyZXR1cm4gQy50aGVuKChlPT57aWYodilyZXR1cm4gZS5zdG9wKCksdm9pZCBlLmRlc3Ryb3k/LigpO3k9ZS5pZCgpO2NvbnN0IHQ9Zi5maW5kU3VpdGFibGVTY2FsZShlLGM/LlswXT8/dGhpcy5tYWluU2VyaWVzKCksaCk7aWYoYj10Lm1vZGUoKSx0PT09dGhpcy5tYWluU2VyaWVzKCkucHJpY2VTY2FsZSgpJiYoMCxJby5pc1N5bWJvbFNvdXJjZSkoZSkpe2NvbnN0IGk9ZD96bihlLHQsdGhpcywhMCk6bnVsbCxzPXU/KDAsZHUuc291cmNlTmV3VW5pdE9uUGlubmluZ1RvUHJpY2VTY2FsZSkoZSx0LHRoaXMsITApOm51bGwsbj1wP0VoKGUsdCx0aGlzKTpudWxsO251bGw9PT1pJiZudWxsPT09cyYmbnVsbD09PW58fGUuc2V0U3ltYm9sUGFyYW1zKHtjdXJyZW5jeTppPz92b2lkIDAsdW5pdDpzPz92b2lkIDAsbWV0cmljOm4/P3ZvaWQgMH0pfWlmKCgwLElvLmlzU3ltYm9sU291cmNlKShlKSYmKDAsbC5lbnN1cmVOb3ROdWxsKShmKS5oYXNEYXRhU291cmNlKHRoaXMubWFpblNlcmllcygpKSYmeXUmJiFRLmdldEJvb2woImVuYWJsZV9zeW1ib2xfbGFiZWxzX29uX2luc2VydGluZ19jb21wYXJlX29uY2UiLCExKSYmKCgwLEdyLmFsbG93U2F2aW5nRGVmYXVsdHMpKCEwKSx0aGlzLnByb3BlcnRpZXMoKS5jaGlsZHMoKS5zY2FsZXNQcm9wZXJ0aWVzLmNoaWxkcygpLnNob3dTeW1ib2xMYWJlbHMuc2V0VmFsdWUoITApLCgwLEdyLmFsbG93U2F2aW5nRGVmYXVsdHMpKCExKSxRLnNldFZhbHVlKCJlbmFibGVfc3ltYm9sX2xhYmVsc19vbl9pbnNlcnRpbmdfY29tcGFyZV9vbmNlIiwhMCkpLFAucmVzb2x2ZShlLnN0YXJ0KCkpLG4mJmYuaWQoKT09PW4ucGFuZUlkKWYuaW5zZXJ0RGF0YVNvdXJjZShlLHQsbi56b3JkZXIpO2Vsc2V7Zi5hZGREYXRhU291cmNlKGUsdCwhMSk7bnVsbCE9PWUucHJlZmVycmVkWk9yZGVyKCkmJmYuaW5zZXJ0QWZ0ZXIoW2VdLHRoaXMubWFpblNlcmllcygpKX12b2lkIDAhPT1tJiZ0LnNldE1vZGUobSksZS5pc0xpbmtlZFRvU2VyaWVzKCkmJmUuc2V0T3duZXJTb3VyY2UodGhpcy5tYWluU2VyaWVzKCkpLHRoaXMucmVjYWxjdWxhdGVQYW5lKGYsKDAsdG4uc291cmNlQ2hhbmdlRXZlbnQpKGUuaWQoKSkpLHRoaXMuZnVsbFVwZGF0ZSgpLHRoaXMuX2ludmFsaWRhdGVCYXJDb2xvcmVyQ2FjaGVzKCksdGhpcy5fcmVjYWxjVmlzaWJsZVJhbmdlU3R1ZGllc0ltcGwoe3N0dWRpZXM6W2VdLHJlYXNvbnM6bmV3IFNldChbSWkuUmVjYWxjVmlzaWJsZVJhbmdlU3R1ZGllc1JlYXNvbi5TdHVkeUNyZWF0aW9uXSl9KSx0aGlzLl9yZWNhbGNDb2xvclN0dWRpZXNJbXBsKHsKc3R1ZGllczpbZV0sZm9yY2U6ITB9KSx0aGlzLl9zdHVkeUluc2VydGVkLmZpcmUoZSksdGhpcy5hbGVydHNXYXRjaGVyKCk/LnN5bmNTb3VyY2VBbGVydExhYmVscyhlKSxlLm1heE9mZnNldCgpLnN1YnNjcmliZSh0aGlzLl9ib3VuZFVwZGF0ZVN0dWRpZXNNYXhPZmZzZXQse2NhbGxXaXRoTGFzdDohMH0pfSkpLHtzdHVkeTpDLHN0YXJ0UHJvbWlzZTpQLnByb21pc2UsY2FuY2VsOigpPT52PSEwLGVudGl0eUlkOigpPT55LG9yaWdpbmFsU2NhbGVNb2RlOigpPT5ifX1yZXBsYWNlU3R1ZHlTdHViKGUsdCl7Y29uc3QgaT10aGlzLnBhbmVGb3JTb3VyY2UoZSk7aWYobnVsbD09PWkpcmV0dXJuITE7Y29uc3Qgcz1lLnByaWNlU2NhbGUoKSxuPWUuem9yZGVyKCkscj1lLm93bmVyU291cmNlKCk7cmV0dXJuIHRoaXMucGFuZUZvclNvdXJjZShlKT09PWk/aS5yZXBsYWNlU291cmNlKGUsdCxzKTooaS5pbnNlcnREYXRhU291cmNlKHQscyxuKSx0aGlzLnJlbW92ZVNvdXJjZShlKSksdC5zZXRPd25lclNvdXJjZShyKSx0aGlzLmRhdGFTb3VyY2VzKCkuZm9yRWFjaCgoaT0+e2kub3duZXJTb3VyY2UoKT09PWUmJihpLnNldE93bmVyU291cmNlKHQpLCgwLHJpLmlzTGluZVRvb2wpKGkpJiZpLnN1cHBvcnRzVGFyZ2V0U2lnbmF0dXJlKCkmJiFpLnRhcmdldFNpZ25hdHVyZSgpLnZhbHVlKCkmJmkuc2V0VGFyZ2V0U2lnbmF0dXJlKHQuc2lnbmF0dXJlKCkudmFsdWUoKSkpfSkpLHRoaXMuX2ludmFsaWRhdGVCYXJDb2xvcmVyQ2FjaGVzKCksdC5zdGFydCgpLHRoaXMucmVjYWxjdWxhdGVQYW5lKGksKDAsdG4uc291cmNlQ2hhbmdlRXZlbnQpKHQuaWQoKSkpLHRoaXMuZnVsbFVwZGF0ZSgpLCEwfWluc2VydFN0dWR5U3R1YihlLHQsaSxzKXtjb25zdCBuPXZvaWQgMCE9PXQscj1uZXcgU2EuU3R1ZHlTdHViKHRoaXMsaT8/bnVsbCxlLHQscz8/bnVsbCk7bGV0IG87aWYodHx8IW4pe289KDAsbC5lbnN1cmVOb3ROdWxsKSh0aGlzLm1haW5QYW5lKCkpO2NvbnN0IGU9ITA9PT10P3RoaXMubWFpblNlcmllcygpLnByaWNlU2NhbGUoKTpvLmNyZWF0ZVByaWNlU2NhbGVBdFBvc2l0aW9uKCJvdmVybGF5Iik7by5hZGREYXRhU291cmNlKHIsZSwhMSl9ZWxzZSBvPXRoaXMuY3JlYXRlUGFuZSgpLG8uYWRkRGF0YVNvdXJjZShyLG51bGwsITEpO3JldHVybiByLnNldFpvcmRlcihvLm5ld1N0dWR5Wk9yZGVyKCkpLHRoaXMucmVjYWxjdWxhdGVQYW5lKG8sKDAsdG4uc291cmNlQ2hhbmdlRXZlbnQpKHIuaWQoKSkpLHRoaXMuZnVsbFVwZGF0ZSgpLHJ9cmVtb3ZlU3R1ZHlTdHViKGUpe2NvbnN0IHQ9dGhpcy5kYXRhU291cmNlRm9ySWQoZSk7cmV0dXJuIG51bGw9PT10Pyh3dS5sb2dOb3JtYWwoIlN0dWR5U3R1YiBpZD0iK2UrIiBpcyBub3QgZm91bmQgaW4gY2hhcnQgbW9kZWwiKSwhMSk6KHRoaXMucmVtb3ZlU291cmNlKHQpLCEwKX1yZXN0b3JlU3R1ZHlTdHViKGUpe2NvbnN0IHQ9dGhpcy5pbnNlcnRTdHVkeVN0dWIoZS50aXRsZSxlLmlzT3ZlcmxheSxlLmRlc2NyaXB0b3IpO3JldHVybiB0aGlzLnBhbmVGb3JTb3VyY2UodCk/LmNoYW5nZVNvdXJjZUlkKHQsZS5pZCksdC5zZXRTdGF0dXMoZS5zdGF0dXMpLHR9YnVsa0FjdGlvbk1hY3JvKGUpe2NvbnN0IHQ9dGhpcy5fcGFuZXM7dC5mb3JFYWNoKChlPT5lLmJlZ2luQnVsa0FjdGlvbigpKSksZSgpLHQuZm9yRWFjaCgoZT0+ZS5lbmRCdWxrQWN0aW9uKCkpKX1hbGxMaW5lVG9vbHMoKXtyZXR1cm4gdGhpcy5fZ2V0QWxsU291cmNlcyhyaS5pc0xpbmVUb29sKX1hbGxMaW5lVG9vbHNJbmNsdWRpbmdIaWRkZW4oKXtyZXR1cm4gdGhpcy5fZ2V0QWxsU291cmNlcyhyaS5pc0xpbmVUb29sLER1KX1zZXRIb3ZlcmVkU291cmNlKGUsdD1udWxsLGkpe2NvbnN0IHM9dGhpcy5faG92ZXJlZFNvdXJjZSE9PWU7dGhpcy5faG92ZXJlZFNvdXJjZU9yaWdpbj1pPz9udWxsLCFzJiYoMCxNaS5oaXRUZXN0UmVzdWx0RGF0YUFyZUVxdWFsKSh0aGlzLl9sYXN0SG92ZXJlZEhpdHRlc3REYXRhLHQpfHwodGhpcy5fbGFzdEhvdmVyZWRIaXR0ZXN0RGF0YT10LHRoaXMuX2hvdmVyZWRTb3VyY2UmJih0aGlzLl9ob3ZlcmVkU291cmNlLnVwZGF0ZUFsbFZpZXdzKCgwLHRuLmhvdmVyQ2hhbmdlRXZlbnQpKCkpLHRoaXMudXBkYXRlU291cmNlKHRoaXMuX2hvdmVyZWRTb3VyY2UpKSx0aGlzLl9ob3ZlcmVkU291cmNlPWUsdGhpcy5faG92ZXJlZFNvdXJjZSYmKHRoaXMuX2hvdmVyZWRTb3VyY2UudXBkYXRlQWxsVmlld3MoKDAsdG4uaG92ZXJDaGFuZ2VFdmVudCkoKSksdGhpcy51cGRhdGVTb3VyY2UodGhpcy5faG92ZXJlZFNvdXJjZSkpLHMmJnRoaXMuX2hvdmVyZWRTb3VyY2VDaGFuZ2VkLmZpcmUoZSkpfXNldEhpZ2hsaWdodGVkUGxvdChlLHQpeygwLGEuZGVlcEVxdWFscykoZSx0aGlzLl9oaWdobGlnaHRlZFNvdXJjZUluZm8/LnN0dWR5SWRzKSYmdGhpcy5faGlnaGxpZ2h0ZWRTb3VyY2VJbmZvPy5wbG90SWQ9PT10fHwodGhpcy5fdXBkYXRlSGlnaGxpZ2h0ZWRTb3VyY2UoKSx0aGlzLl9oaWdobGlnaHRlZFNvdXJjZUluZm89e3N0dWR5SWRzOmUscGxvdElkOnR9LHRoaXMuX3VwZGF0ZUhpZ2hsaWdodGVkU291cmNlKCkpfWNsZWFySGlnaGxpZ2h0ZWRQbG90KCl7dGhpcy5fdXBkYXRlSGlnaGxpZ2h0ZWRTb3VyY2UoKSx0aGlzLl9oaWdobGlnaHRlZFNvdXJjZUluZm89bnVsbH1oaWdobGlnaHRlZFBsb3RJbmZvKCl7cmV0dXJuIHRoaXMuX2hpZ2hsaWdodGVkU291cmNlSW5mb31wcm9wZXJ0aWVzKCl7cmV0dXJuIHRoaXMuX3Byb3BlcnRpZXN9Y2hhcnRBcGkoKXtyZXR1cm4gdGhpcy5fY2hhcnRTZXNzaW9ufWRpc2Nvbm5lY3QoKXt0aGlzLl9zZXNzaW9ucz8uZ2V0KCk/LnN0b3AoKTtmb3IoY29uc3QgZSBvZiB0aGlzLmRhdGFTb3VyY2VzKCkpZS5kaXNjb25uZWN0JiZlLmRpc2Nvbm5lY3QoKTt0aGlzLl90aW1lU2NhbGUuZGlzY29ubmVjdCgpfWNyb3NzaGFpclNvdXJjZSgpe3JldHVybiB0aGlzLl9jcm9zc0hhaXJTb3VyY2V9Z3JpZFNvdXJjZSgpe3JldHVybiB0aGlzLl9ncmlkU291cmNlfXB1Ymxpc2hlZENoYXJ0c1RpbWVsaW5lU291cmNlKCl7CmZvcihjb25zdCBlIG9mIHRoaXMuX2JhcnNNYXJrc1NvdXJjZXMpaWYoZSBpbnN0YW5jZW9mIF9lLlB1Ymxpc2hlZENoYXJ0c1RpbWVsaW5lKXJldHVybiBlO3JldHVybiBudWxsfWhvdmVyZWRTb3VyY2UoKXtyZXR1cm4gdGhpcy5faG92ZXJlZFNvdXJjZX1ob3ZlcmVkU291cmNlT3JpZ2luKCl7cmV0dXJuIHRoaXMuX2hvdmVyZWRTb3VyY2VPcmlnaW59aG92ZXJlZFNvdXJjZUNoYW5nZWQoKXtyZXR1cm4gdGhpcy5faG92ZXJlZFNvdXJjZUNoYW5nZWR9bGFzdEhpdHRlc3REYXRhKCl7cmV0dXJuIHRoaXMuX2xhc3RIb3ZlcmVkSGl0dGVzdERhdGF9bGFzdFNlbGVjdGVkSGl0dGVzdERhdGEoKXtyZXR1cm4gdGhpcy5fbGFzdFNlbGVjdGVkSGl0dGVzdERhdGF9bGlnaHRVcGRhdGUoKXt0aGlzLmludmFsaWRhdGUoTGUuSW52YWxpZGF0aW9uTWFzay5saWdodCgpKX1mdWxsVXBkYXRlKCl7dGhpcy5pbnZhbGlkYXRlKExlLkludmFsaWRhdGlvbk1hc2suZnVsbCgpKX1kcmF3VGltZSgpe3JldHVybiB0aGlzLl9kcmF3VGltZX1hc3luYyBzeW5jVGltZVdpdGhNb2RlbChlLHQsaSl7Y29uc3Qgcz10aGlzLm1haW5TZXJpZXMoKS5zeW5jTW9kZWwoKTtpZihudWxsPT09cylyZXR1cm47Y29uc3Qgbj0xZTMqdGhpcy5jcmVhdGVTeW5jUG9pbnQoZSxzLnN5bmNTb3VyY2VUYXJnZXQoKSkuc291cmNlVGltZVRvVGFyZ2V0VGltZSh0LzFlMykscj0oMCxvLmdldF90aW1lem9uZSkoKDAsbC5lbnN1cmVOb3ROdWxsKSh0aGlzLnRpbWV6b25lRXhjZXB0RXhjaGFuZ2UoKS52YWx1ZSgpKSk7bGV0IGE9KDAsby51dGNfdG9fY2FsKShyLG4pO3JldHVybiB0aGlzLm1haW5TZXJpZXMoKS5pc0RXTSgpJiYoYT1zLmdldFNlc3Npb24oKS5zcGVjLmNvcnJlY3RUcmFkaW5nRGF5KGEpLCgwLG8uc2V0X2htcykoYSwwLDAsMCwwLCgwLG8uZ2V0X3RpbWV6b25lKSgiRXRjL1VUQyIpKSksdGhpcy5fZ290b1RpbWVJbXBsKGEuZ2V0VGltZSgpLHt0YXJnZXRQb2ludEFsaWdubWVudDoiY2VudGVyIixhbGlnbklmVGFyZ2V0UG9pbnRJc1Zpc2libGU6ITEsYXV0b3NjYWxlQWZ0ZXJTY3JvbGw6ITEsLi4uaX0pLmNhdGNoKCgoKT0+e30pKX1nb3RvVGltZShlLHQpe3JldHVybiB0aGlzLl9nb3RvVGltZUltcGwoZSx7dGFyZ2V0UG9pbnRBbGlnbm1lbnQ6ImNlbnRlciIsYWxpZ25JZlRhcmdldFBvaW50SXNWaXNpYmxlOiEwLGF1dG9zY2FsZUFmdGVyU2Nyb2xsOiEwLC4uLnR9KS5jYXRjaCgoKCk9Pnt9KSl9cmVjYWxjdWxhdGVQYW5lKGUsdCl7ZT8ucmVjYWxjdWxhdGUodCl9cmVjYWxjdWxhdGVBbGxQYW5lcyhlKXt0aGlzLl9wYW5lcy5mb3JFYWNoKCh0PT50LnJlY2FsY3VsYXRlKGUpKSksdGhpcy51cGRhdGVBbGxQYW5lVmlld3MoZSksdGhpcy5jcm9zc2hhaXJTb3VyY2UoKS51cGRhdGVBbGxWaWV3cyhlKX1hc3luYyBnb3RvVGltZVJhbmdlKGUsdCxpKXtjb25zdCBzPXRoaXMudGltZVNjYWxlKCksbj1zLnRpY2tNYXJrcygpLHI9dGhpcy5tYWluU2VyaWVzKCk7aWYoaXx8dGhpcy5fbGFzdEdvdG9UaW1lUmFuZ2U/LmRlZmVycmVkLnJlamVjdCgpLHZvaWQgMD09PW4ubWluSW5kZXgpcmV0dXJuIHZvaWQoaXx8KHRoaXMuX2xhc3RHb3RvVGltZVJhbmdlPXtmcm9tOmUsdG86dCxkZWZlcnJlZDooMCxBdC5jcmVhdGVEZWZlcnJlZFByb21pc2UpKCl9KSk7bGV0IGE9ZSxjPXQ7aWYobnVsbCE9PXIuc3ltYm9sSW5mbygpKXtjb25zdCBpPSgwLGwuZW5zdXJlTm90TnVsbCkodGhpcy50aW1lem9uZUV4Y2VwdEV4Y2hhbmdlKCkudmFsdWUoKSkscz0oMCxvLmdldF90aW1lem9uZSkoaSksbj0oMCxvLnV0Y190b19jYWwpKHMsZSksaD0oMCxvLnV0Y190b19jYWwpKHMsdCk7aWYoci5pc0RXTSgpKXtjb25zdCBlPSgwLG8uZ2V0X3RpbWV6b25lKSgiRXRjL1VUQyIpOygwLG8uc2V0X2htcykobiwwLDAsMCwwLGUpLCgwLG8uc2V0X2htcykoaCwwLDAsMCwwLGUpfWE9bi5nZXRUaW1lKCksYz1oLmdldFRpbWUoKX1jb25zdCBoPSgwLGwuZW5zdXJlRGVmaW5lZCkobi5tYXhJbmRleCksZD0oMCxsLmVuc3VyZURlZmluZWQpKG4ubWluSW5kZXgpO2lmKCEoYT49KDAsbC5lbnN1cmVOb3ROdWxsKShuLmluZGV4VG9UaW1lKGQpKS52YWx1ZU9mKCl8fHIuZW5kT2ZEYXRhKCl8fGkpKXtjb25zdCBzPXt0eXBlOiJ0aW1lLXJhbmdlIixmcm9tOmUvMWUzLHRvOnQvMWUzfTtyZXR1cm4gbnVsbD09PXRoaXMuX2xhc3RBcHBsaWVkR290b1RpbWVSYW5nZSYmKHRoaXMuX2xhc3RBcHBsaWVkR290b1RpbWVSYW5nZT17cmFuZ2U6cyxhY3R1YWw6ITB9LHIubG9hZERhdGFUbyhzKSksaXx8KGk9dGhpcy5fbGFzdEdvdG9UaW1lUmFuZ2U9e2Zyb206ZSx0bzp0LGRlZmVycmVkOigwLEF0LmNyZWF0ZURlZmVycmVkUHJvbWlzZSkoKX0pLGkuZGVmZXJyZWQucHJvbWlzZX17Y29uc3QgZT0oZSx0KT0+ZTx0LHQ9ZT0+KDAsbC5lbnN1cmVOb3ROdWxsKShuLmluZGV4VG9UaW1lKGUpKS52YWx1ZU9mKCksbz0oMCxnLmxvd2VyYm91bmRFeHQpKHQsYSxlLG4ubmVhcmVzdEluZGV4KGEpLGgpO2xldCB1PWE9PT1jP286KDAsZy5sb3dlcmJvdW5kRXh0KSh0LGMsZSxuLm5lYXJlc3RJbmRleChjKSxoKTt0aGlzLl9sYXN0R290b1RpbWVSYW5nZT1udWxsLG51bGwhPT10aGlzLl9sYXN0QXBwbGllZEdvdG9UaW1lUmFuZ2UmJih0aGlzLl9sYXN0QXBwbGllZEdvdG9UaW1lUmFuZ2UuYWN0dWFsPSExKTtjb25zdCBwPXMuYmFzZUluZGV4KCk7aWYobytNYXRoLm1heCh1LW8rMSxzLm1pblZpc2libGVCYXJDb3VudCgpKT5wKXtjb25zdCBlPXMudGFyZ2V0RGVmYXVsdFJpZ2h0T2Zmc2V0KCk7dS1wPGUmJih1PXArZSl9Y29uc3QgXz1vPT09dSYmbz09PWQmJnIuZW5kT2ZEYXRhKCk/by0xOm87cy56b29tVG9CYXJzUmFuZ2UoXyx1KSx0aGlzLnVwZGF0ZUFsbFBhbmVWaWV3cygoMCx0bi52aWV3cG9ydENoYW5nZUV2ZW50KSgpKSx0aGlzLmxpZ2h0VXBkYXRlKCksaT8uZGVmZXJyZWQucmVzb2x2ZSgpfX1wYW5lRm9yU291cmNlKGUpe2lmKGU9PT10aGlzLl9tYWluU2VyaWVzLmFjdGl2ZVN0dWR5QmluZGluZygpKXJldHVybiB0aGlzLm1haW5QYW5lKCk7aWYoISgwLApBaS5pc0RhdGFTb3VyY2UpKGUpKXJldHVybiBBcnJheS5mcm9tKHRoaXMuX2N1c3RvbVNvdXJjZXNNYXAudmFsdWVzKCkpLmluY2x1ZGVzKGUpP3RoaXMucGFuZUZvclNvdXJjZSh0aGlzLm1haW5TZXJpZXMoKSk6bnVsbDtmb3IobGV0IHQ9dGhpcy5fcGFuZXMubGVuZ3RoLTE7dD49MDt0LS0paWYodGhpcy5fcGFuZXNbdF0uaGFzRGF0YVNvdXJjZShlKSlyZXR1cm4gdGhpcy5fcGFuZXNbdF07cmV0dXJuIGUgaW5zdGFuY2VvZiBNaC5CYXJzTWFya3NDb250YWluZXI/dGhpcy5wYW5lRm9yU291cmNlKHRoaXMubWFpblNlcmllcygpKTpudWxsfXBhbmVGb3JMaW5lVG9vbHNHcm91cChlKXtyZXR1cm4gdGhpcy5wYW5lRm9yU291cmNlKGUubGluZVRvb2xzKClbMF0pfW1haW5QYW5lKCl7cmV0dXJuIHRoaXMuX3BhbmVzLmZpbmQoKGU9PmUuaXNNYWluUGFuZSgpLnZhbHVlKCkpKT8/bnVsbH1sYXN0UGFuZSgpe3JldHVybiB0aGlzLl9wYW5lc1t0aGlzLl9wYW5lcy5sZW5ndGgtMV19cmVtb3ZlU291cmNlKGUsdCl7dGhpcy5zZWxlY3Rpb25NYWNybygodD0+dC5yZW1vdmVJdGVtRnJvbVNlbGVjdGlvbihlKSksITApLHRoaXMuX2hvdmVyZWRTb3VyY2U9PT1lJiYodGhpcy5faG92ZXJlZFNvdXJjZT1udWxsLHRoaXMuX2xhc3RIb3ZlcmVkSGl0dGVzdERhdGE9bnVsbCksdGhpcy5fc291cmNlc0JlaW5nTW92ZWQuaW5jbHVkZXMoZSkmJih0aGlzLl9zb3VyY2VzQmVpbmdNb3ZlZD10aGlzLl9zb3VyY2VzQmVpbmdNb3ZlZC5maWx0ZXIoKHQ9PnQhPT1lKSksdGhpcy5fc291cmNlc0JlaW5nTW92ZWQubGVuZ3RofHwodGhpcy5fYWN0aXZlSXRlbUJlaW5nTW92ZWQ9bnVsbCkpLGU9PT10aGlzLl9saW5lQmVpbmdFZGl0ZWQ/LmxpbmVEYXRhU291cmNlJiYodGhpcy5fbGluZUJlaW5nRWRpdGVkPW51bGwsVC5pc1Rvb2xFZGl0aW5nTm93LnNldFZhbHVlKCExKSksZT09PXRoaXMubGluZUJlaW5nQ3JlYXRlZCgpJiYodGhpcy5fbGluZXNCZWluZ0NyZWF0ZWQuc2hpZnQoKSwwPT09dGhpcy5fbGluZXNCZWluZ0NyZWF0ZWQubGVuZ3RoJiZULmlzVG9vbENyZWF0aW5nTm93LnNldFZhbHVlKCExKSksIXQmJmUuc3RvcCYmZS5zdG9wKCk7KDAsbC5lbnN1cmVOb3ROdWxsKSh0aGlzLmFsZXJ0c1dhdGNoZXIoKSkucmVtb3ZlU291cmNlQWxlcnRMYWJlbHMoZSk7Y29uc3QgaT10aGlzLmRldGFjaFNvdXJjZShlKSxzPXRoaXMubWFpblNlcmllcygpLnByaWNlU2NhbGUoKTtyZXR1cm4oMCx0aS5pc1N0dWR5KShlKSYmKDAsSW8uaXNTeW1ib2xTb3VyY2UpKGUpJiZlLnByaWNlU2NhbGUoKT09PXMmJnMuaXNQZXJjZW50YWdlKCkmJjE9PT1zLnNlcmllc0xpa2VTb3VyY2VzKCkubGVuZ3RoJiZzLnNldE1vZGUoe3BlcmNlbnRhZ2U6ITF9KSx0aGlzLmZ1bGxVcGRhdGUoKSx0aGlzLl9pbnZhbGlkYXRlQmFyQ29sb3JlckNhY2hlcygpLCgwLHRpLmlzU3R1ZHkpKGUpJiYoKDAsJC5lbWl0KSgic3R1ZHlfZXZlbnQiLGUuaWQoKSwicmVtb3ZlIiksZS5pc0NoaWxkU3R1ZHkoKSYmZS5wYXJlbnRTb3VyY2VzKCkuZm9yRWFjaCgodD0+dC51bnNldENoaWxkKGUpKSksZS5tYXhPZmZzZXQoKS51bnN1YnNjcmliZSh0aGlzLl9ib3VuZFVwZGF0ZVN0dWRpZXNNYXhPZmZzZXQpKSwhdCYmZS5kZXN0cm95JiZlLmRlc3Ryb3koKSwoMCxyaS5pc0xpbmVUb29sKShlKSYmKGUucmVtb3ZlQWxlcnQoKSwoMCwkLmVtaXQpKCJkcmF3aW5nX2V2ZW50IixlLmlkKCksInJlbW92ZSIpKSxpfW1haW5TZXJpZXNTY2FsZVJhdGlvKCl7cmV0dXJuKDAsaWEuc2NhbGVSYXRpbykodGhpcy5fdGltZVNjYWxlLHRoaXMubWFpblNlcmllcygpLnByaWNlU2NhbGUoKSl9c2V0TWFpblNlcmllc1NjYWxlUmF0aW8oZSl7KDAsbC5lbnN1cmVOb3ROdWxsKSh0aGlzLnBhbmVGb3JTb3VyY2UodGhpcy5fbWFpblNlcmllcykpLmFwcGx5UHJpY2VTY2FsZVJhdGlvKHRoaXMuX21haW5TZXJpZXMucHJpY2VTY2FsZSgpLGUpfXRpbWV6b25lKCl7cmV0dXJuIHRoaXMuX3Byb3BlcnRpZXMuY2hpbGRzKCkudGltZXpvbmUudmFsdWUoKX10aW1lem9uZUV4Y2VwdEV4Y2hhbmdlKCl7cmV0dXJuIHRoaXMuX3RpbWV6b25lRXhjZXB0RXhjaGFuZ2V9YWxsU3R1ZGllcyhlKXtjb25zdCB0PWU/ZT0+KDAsdGkuaXNTdHVkeSkoZSkmJiFzaShlKTp0aS5pc1N0dWR5O3JldHVybiB0aGlzLl9nZXRBbGxTb3VyY2VzKHQpfXN0dWRpZXNXVihlKXtyZXR1cm4gZT90aGlzLl9zdHVkaWVzRXhjbHVkZUludGVybmFsV1YucmVhZG9ubHkoKTp0aGlzLl9zdHVkaWVzV1YucmVhZG9ubHkoKX1zaWduYXR1cmVTb3VyY2VzKCl7cmV0dXJuIHRoaXMuX3NpZ25hdHVyZVNvdXJjZXN9c291cmNlc1NpZ25hdHVyZXMoKXtyZXR1cm4gdGhpcy5fc291cmNlc1NpZ25hdHVyZXN9bGlzdFVzZXJTdHVkaWVzKGUpe2NvbnN0IHQ9W107Zm9yKGNvbnN0IGkgb2YgdGhpcy5fcGFuZXMpZm9yKGNvbnN0IHMgb2YgaS5wcmljZURhdGFTb3VyY2VzKCkpaWYoISgwLHRpLmlzRnVuZGFtZW50YWxTdHVkeSkocykmJigwLHRpLmlzU3R1ZHkpKHMpJiZzLnNob3dJbk9iamVjdFRyZWUoKSl7Y29uc3R7aWQ6aSxzaG9ydERlc2NyaXB0aW9uOm59PXMubWV0YUluZm8oKTtpZihlLmRvbnRDb3VudFZvbHVtZSYmIlZvbHVtZUB0di1iYXNpY3N0dWRpZXMiPT09aXx8ZS5kb250Q291bnRDb21wYXJlJiYiQ29tcGFyZUB0di1iYXNpY3N0dWRpZXMiPT09aXx8ZS5kb250Q291bnRPdmVybGF5JiYiT3ZlcmxheUB0di1iYXNpY3N0dWRpZXMiPT09aSljb250aW51ZTt0LnB1c2gobil9cmV0dXJuIHR9ZmluZE5vbk92ZXJsYXlTdHVkeVdpdGhHcm91cGluZ0tleShlLHQpe2NvbnN0IGk9dm9pZCAwIT09dD9bdF06dGhpcy5fcGFuZXM7Zm9yKGNvbnN0IHQgb2YgaSl7Y29uc3QgaT10LmRhdGFTb3VyY2VzKCkuZmluZCgoaT0+KDAsdGkuaXNTdHVkeSkoaSkmJmkubWV0YUluZm8oKS5ncm91cGluZ0tleT09PWUmJiF0LmlzT3ZlcmxheShpKSkpO2lmKHZvaWQgMCE9PWkpcmV0dXJue3BhbmU6dCxzdHVkeTppfX1yZXR1cm4gbnVsbH1jYW5Nb3ZlUGFuZVVwKGUpe2lmKDA9PT1lKXJldHVybiExCjtjb25zdCB0PXRoaXMuX3BhbmVzW2VdLGk9dGhpcy5fcGFuZXNbZS0xXTtyZXR1cm4gdC5tb2RlKCk9PT1NLlBhbmVNb2RlLldpZGdldD9pLmNvbnRhaW5zTWFpblNlcmllcygpOmkubW9kZSgpIT09TS5QYW5lTW9kZS5XaWRnZXR8fCF0LmNvbnRhaW5zTWFpblNlcmllcygpfHwxIT09ZX1tb3ZlUGFuZVVwKGUpe3RoaXMubW92ZVBhbmUoZSxlLTEpfWNhbk1vdmVQYW5lRG93bihlKXtpZihlPT09dGhpcy5fcGFuZXMubGVuZ3RoLTEpcmV0dXJuITE7Y29uc3QgdD10aGlzLl9wYW5lc1tlXSxpPXRoaXMuX3BhbmVzW2UrMV07cmV0dXJuIHQubW9kZSgpPT09TS5QYW5lTW9kZS5XaWRnZXQ/aS5jb250YWluc01haW5TZXJpZXMoKTppLm1vZGUoKSE9PU0uUGFuZU1vZGUuV2lkZ2V0fHwhdC5jb250YWluc01haW5TZXJpZXMoKXx8ZSE9PXRoaXMuX3BhbmVzLmxlbmd0aC0yfW1vdmVQYW5lRG93bihlKXt0aGlzLm1vdmVQYW5lKGUsZSsxKX1tb3ZlUGFuZShlLHQpe2NvbnN0IGk9dGhpcy5fcGFuZXNbZV07dGhpcy5fcGFuZXMuc3BsaWNlKGUsMSksdGhpcy5fcGFuZXMuc3BsaWNlKHQsMCxpKSx0aGlzLl9wYW5lc0NvbGxlY3Rpb25DaGFuZ2VkLmZpcmUodGhpcy5fcGFuZXMpLHRoaXMuX29uUmVhcnJhbmdlUGFuZXMuZmlyZSgpLHRoaXMuX2ludmFsaWRhdGVCYXJDb2xvcmVyQ2FjaGVzKCksdGhpcy5pbnZhbGlkYXRlKExlLkludmFsaWRhdGlvbk1hc2sucGFuZXNPcmRlcigpKX10b2dnbGVDb2xsYXBzZWRQYW5lKGUpe2NvbnN0IHQ9dGhpcy5fcGFuZXNbZV07dC5jb2xsYXBzZWQoKS5zZXRWYWx1ZSghdC5jb2xsYXBzZWQoKS52YWx1ZSgpKSx0aGlzLmZ1bGxVcGRhdGUoKX1zZW5kVG9CYWNrKGUpe3RoaXMuX3NlbmRUbyhlLCgoZSx0KT0+ZS5zZW5kVG9CYWNrKHQpKSl9YnJpbmdUb0Zyb250KGUpe3RoaXMuX3NlbmRUbyhlLCgoZSx0KT0+ZS5icmluZ1RvRnJvbnQodCkpKX1iYWNrZ3JvdW5kQ29sb3IoKXtyZXR1cm4gdGhpcy5fYmFja2dyb3VuZENvbG9yfWJhY2tncm91bmRUb3BDb2xvcigpe3JldHVybiB0aGlzLl9iYWNrZ3JvdW5kVG9wQ29sb3J9YmFja2dyb3VuZENvbG9yQXRZUGVyY2VudEZyb21Ub3AoZSl7Y29uc3QgdD10aGlzLmJhY2tncm91bmRDb2xvcigpLnZhbHVlKCksaT10aGlzLmJhY2tncm91bmRUb3BDb2xvcigpLnZhbHVlKCk7cmV0dXJuIHRoaXMuX2JhY2tncm91bmRDb2xvckF0WVBlcmNlbnRGcm9tVG9wLmdyYWRpZW50Q29sb3IoaSx0LGUpfWJhY2tncm91bmRDb3VudGVyQ29sb3IoKXtyZXR1cm4gdGhpcy5fYmFja2dyb3VuZENvdW50ZXJDb2xvci5yZWFkb25seSgpfWRhcmsoKXtyZXR1cm4gdGhpcy5faXNEYXJrfWJhY2tncm91bmRUaGVtZSgpe3JldHVybiB0aGlzLl9iYWNrZ3JvdW5kVGhlbWV9cmVhZE9ubHkoKXtyZXR1cm4gdGhpcy5fcmVhZE9ubHl9ZGVmYXVsdFJlc29sdXRpb25zKCl7cmV0dXJuIHRoaXMuY2hhcnRBcGkoKS5kZWZhdWx0UmVzb2x1dGlvbnMoKX1hdmFpbGFibGVDdXJyZW5jaWVzKCl7cmV0dXJuIHRoaXMuX2dldEF2YWlsYWJsZUN1cnJlbmNpZXMoKSx0aGlzLl9hdmFpbGFibGVDdXJyZW5jaWVzLnJlYWRvbmx5KCl9Y3VycmVuY3lDb252ZXJzaW9uRW5hYmxlZCgpe3JldHVybiB0aGlzLl9vcHRpb25zLmN1cnJlbmN5Q29udmVyc2lvbkVuYWJsZWR9YXZhaWxhYmxlVW5pdHMoKXtyZXR1cm4gdGhpcy5fZ2V0QXZhaWxhYmxlVW5pdHMoKSx0aGlzLl9hdmFpbGFibGVVbml0cy5yZWFkb25seSgpfXVuaXRDb252ZXJzaW9uRW5hYmxlZCgpe3JldHVybiB0aGlzLl9vcHRpb25zLnVuaXRDb252ZXJzaW9uRW5hYmxlZH1hdmFpbGFibGVNZXRyaWNzKCl7bGV0IGU9dGhpcy5fZ2V0QWxsQXZhaWxhYmxlTWV0cmljcygpO2NvbnN0IHQ9dGhpcy5tYWluU2VyaWVzKCkuc3ltYm9sSW5mbygpPy5tZXRyaWNzO3JldHVybiB0JiYoZT1lLmZpbHRlcigoZT0+dm9pZCAwIT09dC5pdGVtc1tlLmlkXSkpKSxlLmxlbmd0aCE9PXRoaXMuX2F2YWlsYWJsZU1ldHJpY3Muc2l6ZSgpJiYodGhpcy5fYXZhaWxhYmxlTWV0cmljcz1uZXcgRGgoZSkpLHRoaXMuX2F2YWlsYWJsZU1ldHJpY3N9bWV0cmljQ29udmVyc2lvbkVuYWJsZWQoKXtyZXR1cm4gdGhpcy5fb3B0aW9ucy5tZXRyaWNDb252ZXJzaW9uRW5hYmxlZH1hdmFpbGFibGVQcmljZVNvdXJjZXMoZSl7Y29uc3QgdD10aGlzLl9nZXRBdmFpbGFibGVQcmljZVNvdXJjZXMoZSk7cmV0dXJuIG51bGwhPT10JiZ0aGlzLl9hdmFpbGFibGVQcmljZVNvdXJjZXMucHJpY2VTb3VyY2VzQ2hhbmdlZCh0KSYmKHRoaXMuX2F2YWlsYWJsZVByaWNlU291cmNlcz1uZXcgZnUodCkpLHRoaXMuX2F2YWlsYWJsZVByaWNlU291cmNlc31yZXNldERlZmVycmVkU3R1ZGllcygpe0tsLkRlZmVycmVkU3R1ZGllcy5pbnN0YW5jZSh0aGlzKS5yZXNldCgpfXdhaXRGb3JTdHVkeShlKXtjb25zdCB0PXRoaXMuZGF0YVNvdXJjZUZvcklkKGUpO3JldHVybiB0JiYoMCx0aS5pc1N0dWR5KSh0KT9Qcm9taXNlLnJlc29sdmUodCk6S2wuRGVmZXJyZWRTdHVkaWVzLmluc3RhbmNlKHRoaXMpLmdldChlKX1yZXNldFdhaXRGb3JTdHVkeShlKXtLbC5EZWZlcnJlZFN0dWRpZXMuaW5zdGFuY2UodGhpcykuZGVsZXRlKGUpfWlzSnVzdENsb25lZENoYXJ0KCl7cmV0dXJuIHRoaXMuX3VuZG9Nb2RlbC5pc0p1c3RDbG9uZWRDaGFydCgpfXN0dWR5VGVtcGxhdGUoZSx0LGkpe2NvbnN0IHM9e3BhbmVzOltdLHZlcnNpb246dGhpcy52ZXJzaW9uKCl9O2Zvcihjb25zdCBlIG9mIHRoaXMucGFuZXMoKSlzLnBhbmVzLnB1c2goZS5zdGF0ZSh7aW5jbHVkZVNvdXJjZXM6ITAsaXNTdHVkeVRlbXBsYXRlOiEwfSkpO2NvbnN0IG49dGhpcy5tYWluU2VyaWVzKCk7cmV0dXJuIGUmJihzLnN5bWJvbD1uLnN5bWJvbCgpLHRoaXMuY3VycmVuY3lDb252ZXJzaW9uRW5hYmxlZCgpJiZpJiYocy5jdXJyZW5jeT1uLmN1cnJlbmN5KCkpLHRoaXMudW5pdENvbnZlcnNpb25FbmFibGVkKCkmJmkmJihzLnVuaXQ9bi51bml0KCkpKSx0JiYocy5pbnRlcnZhbD1uLmludGVydmFsKCkpLHN9ZGF0YVNvdXJjZUZvcklkKGUpe2Zvcihjb25zdCB0IG9mIHRoaXMuX3BhbmVzKXsKY29uc3QgaT10LmRhdGFTb3VyY2VGb3JJZChlKTtpZihpKXJldHVybiBpfXJldHVybiBudWxsfWdldFN0dWR5QnlJZChlKXtjb25zdCB0PXRoaXMuZGF0YVNvdXJjZUZvcklkKGUpO3JldHVybiBudWxsIT09dCYmKDAsdGkuaXNTdHVkeSkodCk/dDpudWxsfWdldExpbmVUb29sQnlJZChlKXtjb25zdCB0PXRoaXMuZGF0YVNvdXJjZUZvcklkKGUpO3JldHVybiBudWxsIT09dCYmKDAscmkuaXNMaW5lVG9vbCkodCk/dDpudWxsfXJlc3RvcmVMaW5lVG9vbFN0YXRlKGUsdCxpKXt0LnBvc2l0aW9uUGVyY2VudHM/ZS5yZXN0b3JlUG9zaXRpb25QZXJjZW50cyh0LnBvc2l0aW9uUGVyY2VudHMpOihlLmNsZWFyRml4ZWRQb2ludCgpLGUucmVzdG9yZVBvaW50cyh0LnBvaW50cyx0LmluZGV4ZXN8fFtdKSksdC5zdGF0ZS5pbnRlcnZhbHNWaXNpYmlsaXRpZXM9KDAsSmwubWVyZ2VJbnRlcnZhbFZpc2liaWxpdGllc0RlZmF1bHRzKSh0LnN0YXRlLmludGVydmFsc1Zpc2liaWxpdGllcyksZS5saW5rS2V5KCkuc2V0VmFsdWUodC5saW5rS2V5fHxudWxsKSxlLnByb3BlcnRpZXMoKS5tZXJnZUFuZEZpcmUodC5zdGF0ZSksZS5yZXN0b3JlRGF0YSYmZS5yZXN0b3JlRGF0YSh0KSxlLmNyZWF0ZVNlcnZlclBvaW50cygpLGUuc2V0Wm9yZGVyKHQuem9yZGVyPz9lLnpvcmRlcigpKSx0aGlzLmZ1bGxVcGRhdGUoKTtjb25zdCBzPWUubGlua0tleSgpLnZhbHVlKCk7bnVsbCE9PXMmJmkmJiF0aGlzLl9saW5lVG9vbHNTeW5jQmxvY2smJigwLFQucmVzdG9yZUxpbmVUb29sU3RhdGUpKHttb2RlbDp0aGlzLGxpbmtLZXk6cyxzdGF0ZTp0fSl9cmVzdG9yZUZhY3RvcnlEZWZhdWx0cyhlKXtlLnJlc3RvcmVGYWN0b3J5RGVmYXVsdHMoKSx0aGlzLnJlY2FsY1Zpc2libGVSYW5nZVN0dWRpZXMoSWkuUmVjYWxjVmlzaWJsZVJhbmdlU3R1ZGllc1JlYXNvbi5WaWV3cG9ydENoYW5nZVVzZXJBY3Rpb24pfXByZWZlcmVuY2VzKCl7cmV0dXJuKDAsY3UucHJlZmVyZW5jZXNCeVdoaXRlTGlzdCkodGhpcyx0aGlzLm1haW5TZXJpZXMoKSl9YXBwbHlQcmVmZXJlbmNlcyhlKXtmb3IoY29uc3RbdCxpXW9mIE9iamVjdC5lbnRyaWVzKGUpKXtjb25zdCBlPXRoaXMuX3Byb3BlcnRpZXMuY2hpbGQodCk7dm9pZCAwIT09aSYmdm9pZCAwIT09ZSYmZS5tZXJnZUFuZEZpcmUoaSl9aWYodm9pZCAwIT09ZS50aW1lU2NhbGUpe2NvbnN0IHQ9ZS50aW1lU2NhbGU7dGhpcy5fdGltZVNjYWxlLmRlZmF1bHRSaWdodE9mZnNldCgpLnNldFZhbHVlKHQuZGVmYXVsdFJpZ2h0T2Zmc2V0KSx0aGlzLl90aW1lU2NhbGUuZGVmYXVsdFJpZ2h0T2Zmc2V0UGVyY2VudGFnZSgpLnNldFZhbHVlKHQuZGVmYXVsdFJpZ2h0T2Zmc2V0UGVyY2VudGFnZSksdGhpcy5fdGltZVNjYWxlLnVzZVBlcmNlbnRhZ2VSaWdodE9mZnNldCgpLnNldFZhbHVlKHQudXNlUGVyY2VudGFnZVJpZ2h0T2Zmc2V0KX10aGlzLl9wcm9wZXJ0aWVzLnNhdmVEZWZhdWx0cygpLHRoaXMuX21haW5TZXJpZXMuYXBwbHlQcmVmZXJlbmNlcyhlLm1haW5TZXJpZXMpLHRoaXMuc2Vzc2lvbnMoKS5yZXN0b3JlU3RhdGUoe3Byb3BlcnRpZXM6ZS5zZXNzaW9uc30sITEpLHRoaXMucmVjYWxjdWxhdGVBbGxQYW5lcygoMCx0bi5nbG9iYWxDaGFuZ2VFdmVudCkoKSksdGhpcy5mdWxsVXBkYXRlKCl9cmVzdG9yZVRoZW1lKGUsdCxpKXtlLm1haW5Tb3VyY2VQcm9wZXJ0aWVzLmhvbGxvd0NhbmRsZVN0eWxlfHwoZS5tYWluU291cmNlUHJvcGVydGllcy5ob2xsb3dDYW5kbGVTdHlsZT1lLm1haW5Tb3VyY2VQcm9wZXJ0aWVzLmNhbmRsZVN0eWxlKSx0aGlzLl91bmRvTW9kZWwuY2hhcnRMb2FkVGhlbWUoZSx0LGkpfXVwZGF0ZVNjYWxlcygpe3RoaXMubWFpblNlcmllcygpLnByb3BlcnRpZXMoKS5jaGlsZHMoKS5wcmljZUF4aXNQcm9wZXJ0aWVzLmZpcmVDaGFuZ2VkKCl9b25SZXNldFNjYWxlcygpe3JldHVybiB0aGlzLl9yZXNldFNjYWxlc31zdGFydE1vdmluZ1NvdXJjZXMoZSx0LGkscyxuLHIpe3RoaXMuX3NvdXJjZXNCZWluZ01vdmVkPWUsdGhpcy5fYWN0aXZlSXRlbUJlaW5nTW92ZWQ9aTtsZXQgbz0hMTtpZih0aGlzLl9zb3VyY2VzQmVpbmdNb3ZlZC5mb3JFYWNoKChlPT57IW8mJigwLHRpLmlzU3R1ZHkpKGUpJiYobz0hMCk7Y29uc3QgYT0oMCxsLmVuc3VyZU5vdE51bGwpKHRoaXMucGFuZUZvclNvdXJjZShlKSksYz0oMCxyaS5pc0xpbmVUb29sKShlKSxoPWMmJmUubGlua0tleSgpLnZhbHVlKCk7aWYoITEhPT1oJiZudWxsIT09aCYmcy5oYXMoaCkmJmMmJmUuaXNGaXhlZCgpKXtjb25zdCB0PSgwLGwuZW5zdXJlRGVmaW5lZCkocy5nZXQoaCkpLG89e3NjcmVlbjp0aGlzLl9wZXJjZW50UG9zaXRpb25Ub1BvaW50KHQsYSl9O2Uuc3RhcnRNb3ZpbmcobyxpLG4scil9ZWxzZSBlLnN0YXJ0TW92aW5nKHQsaSxuLHIpO2NvbnN0IGQ9dGhpcy5fcGFuZUludmFsaWRhdGlvbk1hc2soYSxMZS5JbnZhbGlkYXRpb25MZXZlbC5MaWdodCk7dGhpcy5pbnZhbGlkYXRlKGQpfSkpLCFyKXtjb25zdFtzLHJdPUF1KGUpO2lmKHMuc2l6ZSYmdC5sb2dpY2FsKXtjb25zdCBvPXRoaXMuZXh0ZXJuYWxUaW1lU3RhbXAodC5sb2dpY2FsLmluZGV4KSxhPXtsaW5rS2V5czpbLi4uc10sdG9vbE5hbWVzOlsuLi5yXSxtb2RlbDp0aGlzLHN5bWJvbDp0aGlzLm1haW5TZXJpZXMoKS5zeW1ib2woKSxwb2ludDp7cHJpY2U6dC5sb2dpY2FsLnByaWNlLHRpbWVTdGFtcDpvfSxhY3RpdmVJdGVtOm51bGwhPT1pP2k6dm9pZCAwLGVudlN0YXRlOm4scG9pbnRQb3NpdGlvblBlcmNlbnRzOm5ldyBNYXB9O2UuZm9yRWFjaCgoZT0+e2lmKCgwLHJpLmlzTGluZVRvb2wpKGUpKXtjb25zdCBpPWUubGlua0tleSgpLnZhbHVlKCk7aWYoaSYmZS5pc1N5bmNocm9uaXphYmxlKCkmJmUuaXNGaXhlZCgpKXtjb25zdCBzPSgwLGwuZW5zdXJlTm90TnVsbCkodGhpcy5wYW5lRm9yU291cmNlKGUpKTthLnBvaW50UG9zaXRpb25QZXJjZW50cy5zZXQoaSx0aGlzLl9wb2ludFRvUGVyY2VudFBvc2l0aW9uKCgwLGwuZW5zdXJlRGVmaW5lZCkodC5zY3JlZW4pLHMpKX19fSkpLCgwLFQuc3RhcnRNb3ZpbmdMaW5lVG9vbCkoYSl9fQpULmlzVG9vbE1vdmluZ05vdy5zZXRWYWx1ZSghMCksbyYmVC5pc1N0dWR5RWRpdGluZ05vdy5zZXRWYWx1ZSghMCl9bW92ZVNvdXJjZXMoZSx0LGkscyl7aWYodGhpcy5fc291cmNlc0JlaW5nTW92ZWQuZmlsdGVyKChlPT4hZS5pc0xvY2tlZHx8IWUuaXNMb2NrZWQoKSkpLmZvckVhY2goKG49Pntjb25zdCByPSgwLHJpLmlzTGluZVRvb2wpKG4pP24ubGlua0tleSgpLnZhbHVlKCk6bnVsbDtpZihudWxsIT09ciYmdC5oYXMocikpe2NvbnN0IGU9KDAsbC5lbnN1cmVOb3ROdWxsKSh0aGlzLnBhbmVGb3JTb3VyY2UobikpLG89KDAsbC5lbnN1cmVEZWZpbmVkKSh0LmdldChyKSksYT17c2NyZWVuOnRoaXMuX3BlcmNlbnRQb3NpdGlvblRvUG9pbnQobyxlKX07bi5tb3ZlKGEsdGhpcy5fYWN0aXZlSXRlbUJlaW5nTW92ZWQsaSxzKX1lbHNlIG4ubW92ZShlLHRoaXMuX2FjdGl2ZUl0ZW1CZWluZ01vdmVkLGkscyl9KSksdGhpcy5saWdodFVwZGF0ZSgpLCFzJiZlLmxvZ2ljYWwmJiF0aGlzLl9saW5lVG9vbHNTeW5jQmxvY2spe2NvbnN0W3Qsc109QXUodGhpcy5fc291cmNlc0JlaW5nTW92ZWQpLG49dGhpcy5leHRlcm5hbFRpbWVTdGFtcChlLmxvZ2ljYWwuaW5kZXgpLHI9e2xpbmtLZXlzOlsuLi50XSx0b29sTmFtZXM6Wy4uLnNdLG1vZGVsOnRoaXMscG9pbnQ6e3ByaWNlOmUubG9naWNhbC5wcmljZSx0aW1lU3RhbXA6bn0sZW52U3RhdGU6aSxwb2ludFBvc2l0aW9uUGVyY2VudHM6bmV3IE1hcH07dGhpcy5fc291cmNlc0JlaW5nTW92ZWQuZmlsdGVyKHJpLmlzTGluZVRvb2wpLmZvckVhY2goKHQ9PntpZih0LmxpbmtLZXkoKS52YWx1ZSgpJiZ0LmlzU3luY2hyb25pemFibGUoKSYmdC5pc0ZpeGVkKCkpe2NvbnN0IGk9KDAsbC5lbnN1cmVOb3ROdWxsKSh0aGlzLnBhbmVGb3JTb3VyY2UodCkpO3IucG9pbnRQb3NpdGlvblBlcmNlbnRzLnNldCh0LmxpbmtLZXkoKS52YWx1ZSgpLHRoaXMuX3BvaW50VG9QZXJjZW50UG9zaXRpb24oKDAsbC5lbnN1cmVEZWZpbmVkKShlLnNjcmVlbiksaSkpfX0pKSwoMCxULm1vdmVMaW5lVG9vbCkocil9fWVuZE1vdmluZ1NvdXJjZXMoZSx0LGkpe2NvbnN0IHM9dGhpcy5fc291cmNlc0JlaW5nTW92ZWQubWFwKChzPT57Y29uc3Qgbj0oMCxsLmVuc3VyZU5vdE51bGwpKHRoaXMucGFuZUZvclNvdXJjZShzKSkscj1zLmVuZE1vdmluZyhlLHQsaSksbz10aGlzLl9wYW5lSW52YWxpZGF0aW9uTWFzayhuLExlLkludmFsaWRhdGlvbkxldmVsLkxpZ2h0KTtyZXR1cm4gby5pbnZhbGlkYXRlQWxsKExlLkludmFsaWRhdGlvbkxldmVsLkxpZ2h0KSx0aGlzLmludmFsaWRhdGUobykscn0pKTtpZighdCYmIXRoaXMuX2xpbmVUb29sc1N5bmNCbG9jayl7Y29uc3RbZSx0XT1BdSh0aGlzLl9zb3VyY2VzQmVpbmdNb3ZlZCksaT10aGlzLl9zb3VyY2VzQmVpbmdNb3ZlZC5maWx0ZXIocmkuaXNMaW5lVG9vbCkuZmlsdGVyKChlPT5lLmlzU3luY2hyb25pemFibGUoKSYmISFlLmxpbmtLZXkpKS5tYXAoKGU9Pntjb25zdCB0PXtwb2ludHM6ZS5ub3JtYWxpemVkUG9pbnRzKCksaW50ZXJ2YWw6dGhpcy5tYWluU2VyaWVzKCkuaW50ZXJ2YWwoKX07cmV0dXJuIGUuaXNGaXhlZCgpJiYodC5wb2ludFBvc2l0aW9uUGVyY2VudHM9ZS5jYWxjUG9zaXRpb25QZXJjZW50cygpKSx0fSkpO2Uuc2l6ZSYmKDAsVC5maW5pc2hNb3ZpbmdMaW5lVG9vbCkoe2xpbmtLZXlzOlsuLi5lXSx0b29sTmFtZXM6Wy4uLnRdLG1vZGVsOnRoaXMsZmluYWxTdGF0ZXM6aSxjaGFuZ2VzOnN9KX10aGlzLl9zb3VyY2VzQmVpbmdNb3ZlZD1bXSx0aGlzLl9hY3RpdmVJdGVtQmVpbmdNb3ZlZD1udWxsLFQuaXNUb29sTW92aW5nTm93LnNldFZhbHVlKCExKSxULmlzU3R1ZHlFZGl0aW5nTm93LnNldFZhbHVlKCExKX1zb3VyY2VzQmVpbmdNb3ZlZCgpe3JldHVybiB0aGlzLl9zb3VyY2VzQmVpbmdNb3ZlZH1zZXRNb3ZpbmdDdXN0b21Tb3VyY2UoZSx0KXt0aGlzLl9jdXN0b21Tb3VyY2VCZWluZ01vdmVkPWUsdGhpcy5fY3VzdG9tU291cmNlQmVpbmdNb3ZlZEhpdFRlc3REYXRhPW51bGwhPT10P3tiZWluZ01vdmVkOiExLGNhbmNlbGxlZDohMSwuLi50fTpudWxsfXByb2Nlc3NpbmdDdXN0b21Tb3VyY2VNb3ZlKCl7bnVsbCE9PXRoaXMuX2N1c3RvbVNvdXJjZUJlaW5nTW92ZWRIaXRUZXN0RGF0YSYmKHRoaXMuX2N1c3RvbVNvdXJjZUJlaW5nTW92ZWRIaXRUZXN0RGF0YS5iZWluZ01vdmVkPSEwKX1jdXN0b21Tb3VyY2VNb3ZpbmdIaXRUZXN0RGF0YSgpe3JldHVybiB0aGlzLl9jdXN0b21Tb3VyY2VCZWluZ01vdmVkSGl0VGVzdERhdGF9Y3VzdG9tU291cmNlQmVpbmdNb3ZlZCgpe3JldHVybiBudWxsIT09dGhpcy5fY3VzdG9tU291cmNlQmVpbmdNb3ZlZEhpdFRlc3REYXRhJiZ0aGlzLl9jdXN0b21Tb3VyY2VCZWluZ01vdmVkSGl0VGVzdERhdGEuYmVpbmdNb3ZlZD90aGlzLl9jdXN0b21Tb3VyY2VCZWluZ01vdmVkOm51bGx9bGluZVRvb2xzU3luY2hyb25pemVyKCl7cmV0dXJuIHRoaXMuX2xpbmVUb29sc1N5bmNocm9uaXplcn1zZXRMaW5lVG9vbHNTeW5jaHJvbml6ZXIoZSl7dGhpcy5fbGluZVRvb2xzU3luY2hyb25pemVyPWV9d2lkdGgoKXtyZXR1cm4gdGhpcy5fd2lkdGh9c2V0V2lkdGgoZSx0KXsodGhpcy5fcGFuZXMucmVkdWNlKCgodCxpKT0+aS5zZXRXaWR0aChlKXx8dCksITEpfHx0aGlzLl93aWR0aCE9PWUpJiYodGhpcy5fd2lkdGg9ZSx0aGlzLl90aW1lU2NhbGUuc2V0V2lkdGgoZSx0KSx0aGlzLnJlY2FsY3VsYXRlQWxsUGFuZXMoKDAsdG4udmlld3BvcnRDaGFuZ2VFdmVudCkoKSksdGhpcy5yZWNhbGNWaXNpYmxlUmFuZ2VTdHVkaWVzKElpLlJlY2FsY1Zpc2libGVSYW5nZVN0dWRpZXNSZWFzb24uVmlld3BvcnRDaGFuZ2VVc2VyQWN0aW9uKSl9c2V0UGFuZUhlaWdodChlLHQpe2Uuc2V0SGVpZ2h0KHQpLHRoaXMucmVjYWxjdWxhdGVBbGxQYW5lcygoMCx0bi52aWV3cG9ydENoYW5nZUV2ZW50KSgpKSx0aGlzLmxpZ2h0VXBkYXRlKCl9cmVzZXRTY2FsZXNBdmFpbGFibGUoKXtyZXR1cm4gdGhpcy5fcmVzZXRTY2FsZXNBdmFpbGFibGUucmVhZG9ubHkoKX1tYXhpbWl6ZWRQYW5lKCl7CnJldHVybiB0aGlzLl9tYXhpbWl6ZWRQYW5lLnJlYWRvbmx5KCl9c2V0TWF4aW1pemVkUGFuZShlKXsoMCxsLmFzc2VydCkobnVsbD09PWV8fHRoaXMuX3BhbmVzLmluY2x1ZGVzKGUpLCJUaGUgcGFuZSBpcyBub3QgcGFydCBvZiB0aGlzIGNoYXJ0IiksdGhpcy5fbWF4aW1pemVkUGFuZS5zZXRWYWx1ZShlKX1wYW5lcygpe3JldHVybiB0aGlzLl9wYW5lc31wYW5lRm9ySWQoZSl7cmV0dXJuIHRoaXMuX3BhbmVzLmZpbmQoKHQ9PnQuaWQoKT09PWUpKXx8bnVsbH1jcmVhdGVQYW5lKGUsdCxpLHMpe3RoaXMuX3Jlc3RvcmluZ1N0YXRlfHx0aGlzLl9tYXhpbWl6ZWRQYW5lLnNldFZhbHVlKG51bGwpO2NvbnN0IG49dGhpcy5fcHJvcGVydGllcy5jaGlsZHMoKS5wYW5lUHJvcGVydGllczt0JiZuLm1lcmdlKHQpO2NvbnN0IHI9bmV3IGxjKHRoaXMuX3RpbWVTY2FsZSxuLHRoaXMsaSxzPz9NLlBhbmVNb2RlLlJlZ3VsYXIpO3JldHVybiB2b2lkIDAhPT1lP3RoaXMuX3BhbmVzLnNwbGljZShlLDAscik6dGhpcy5fcGFuZXMucHVzaChyKSxyLm9uVGFnc0NoYW5nZWQoKS5zdWJzY3JpYmUodGhpcywoKCk9PnRoaXMub25QYW5lVGFnc0NoYW5nZWQoKSkpLHIuZGF0YVNvdXJjZXNDb2xsZWN0aW9uQ2hhbmdlZCgpLnN1YnNjcmliZSh0aGlzLCgoKT0+dGhpcy5fZGF0YVNvdXJjZUNvbGxlY3Rpb25DaGFuZ2VkLmZpcmUocikpKSxyLmRhdGFTb3VyY2VzWk9yZGVyc0NoYW5nZWQoKS5zdWJzY3JpYmUodGhpcywoKCk9PnRoaXMuX2ludmFsaWRhdGVCYXJDb2xvcmVyQ2FjaGVzKCkpKSxyLnN5bWJvbFNvdXJjZUNvbGxlY3Rpb25DaGFuZ2VkKCkuc3Vic2NyaWJlKHRoaXMsKCgpPT50aGlzLl9vblN5bWJvbFNvdXJjZUNvbGxlY3Rpb25DaGFuZ2VkKHIpKSksci5wcmljZVNvdXJjZXNDb2xsZWN0aW9uQ2hhbmdlZCgpLnN1YnNjcmliZSh0aGlzLCgoKT0+dGhpcy5fb25QcmljZVNvdXJjZXNDb2xsZWN0aW9uQ2hhbmdlZChyKSkpLHIuc291cmNlUHJvcGVydGllc0NoYW5nZWQoKS5zdWJzY3JpYmUodGhpcywoZT0+dGhpcy5fc291cmNlUHJvcGVyaXRlc0NoYW5nZWQuZmlyZShyLGUpKSksci5zb3VyY2VaT3JkZXJDaGFuZ2VkKCkuc3Vic2NyaWJlKHRoaXMsKGU9PnRoaXMuX3NvdXJjZVpPcmRlckNoYW5nZWQuZmlyZShyLGUpKSksci5zeW1ib2xTb3VyY2VSZXNvbHZlZCgpLnN1YnNjcmliZSh0aGlzLChlPT50aGlzLl9zeW1ib2xTb3VyY2VSZXNvbHZlZC5maXJlKHIsZSkpKSxyLnN5bWJvbFNvdXJjZVJlc29sdmluZ0FjdGl2ZSgpLnN1YnNjcmliZSh0aGlzLl9yZWNhbGNTeW1ib2xSZXNvbHZpbmdBY3RpdmUpLHIuY29sbGFwc2VkKCkuc3Vic2NyaWJlKHRoaXMuX3JlY2FsY1BhbmVDb2xsYXBzaW5nQXZhaWxhYmxlKSxyLnJlc2V0UHJpY2VTY2FsZXNBdmFpbGFibGUoKS5zdWJzY3JpYmUodGhpcy5fdXBkYXRlUmVzZXRTY2FsZXNBdmFpbGFibGVWYWx1ZSx7Y2FsbFdpdGhMYXN0OiEwfSksdGhpcy5fcmVjYWxjUGFuZUNvbGxhcHNpbmdBdmFpbGFibGUoKSx0aGlzLl9wYW5lc0NvbGxlY3Rpb25DaGFuZ2VkLmZpcmUodGhpcy5fcGFuZXMpLHRoaXMuX2ludmFsaWRhdGVCYXJDb2xvcmVyQ2FjaGVzKCksdGhpcy5pbnZhbGlkYXRlKExlLkludmFsaWRhdGlvbk1hc2sucGFuZXNPcmRlcigpKSxyfXJlbW92ZVBhbmUoZSl7ZT09PXRoaXMuX21heGltaXplZFBhbmUudmFsdWUoKSYmdGhpcy5fbWF4aW1pemVkUGFuZS5zZXRWYWx1ZShudWxsKSxlLmRlc3Ryb3koKTtjb25zdCB0PXRoaXMuX3BhbmVzLmluZGV4T2YoZSk7LTEhPT10JiYodGhpcy5fcGFuZXMuc3BsaWNlKHQsMSksZS5kYXRhU291cmNlc0NvbGxlY3Rpb25DaGFuZ2VkKCkudW5zdWJzY3JpYmVBbGwodGhpcyksZS5kYXRhU291cmNlc1pPcmRlcnNDaGFuZ2VkKCkudW5zdWJzY3JpYmVBbGwodGhpcyksZS5zeW1ib2xTb3VyY2VDb2xsZWN0aW9uQ2hhbmdlZCgpLnVuc3Vic2NyaWJlQWxsKHRoaXMpLGUucHJpY2VTb3VyY2VzQ29sbGVjdGlvbkNoYW5nZWQoKS51bnN1YnNjcmliZUFsbCh0aGlzKSxlLnNvdXJjZVByb3BlcnRpZXNDaGFuZ2VkKCkudW5zdWJzY3JpYmVBbGwodGhpcyksZS5vblRhZ3NDaGFuZ2VkKCkudW5zdWJzY3JpYmVBbGwodGhpcyksZS5zeW1ib2xTb3VyY2VSZXNvbHZlZCgpLnVuc3Vic2NyaWJlQWxsKHRoaXMpLGUuc3ltYm9sU291cmNlUmVzb2x2aW5nQWN0aXZlKCkudW5zdWJzY3JpYmUodGhpcy5fcmVjYWxjU3ltYm9sUmVzb2x2aW5nQWN0aXZlKSxlLmNvbGxhcHNlZCgpLnVuc3Vic2NyaWJlKHRoaXMuX3JlY2FsY1BhbmVDb2xsYXBzaW5nQXZhaWxhYmxlKSxlLnJlc2V0UHJpY2VTY2FsZXNBdmFpbGFibGUoKS51bnN1YnNjcmliZSh0aGlzLl91cGRhdGVSZXNldFNjYWxlc0F2YWlsYWJsZVZhbHVlKSx0aGlzLl9yZWNhbGNQYW5lQ29sbGFwc2luZ0F2YWlsYWJsZSghMCkpLHRoaXMuX3VwZGF0ZVJlc2V0U2NhbGVzQXZhaWxhYmxlVmFsdWUoKTt0aGlzLmNyb3NzaGFpclNvdXJjZSgpLnBhbmU9PT1lJiZ0aGlzLmNsZWFyQ3VycmVudFBvc2l0aW9uKCksdGhpcy5fcGFuZXNDb2xsZWN0aW9uQ2hhbmdlZC5maXJlKHRoaXMuX3BhbmVzKSx0aGlzLl9pbnZhbGlkYXRlQmFyQ29sb3JlckNhY2hlcygpLHRoaXMuaW52YWxpZGF0ZShMZS5JbnZhbGlkYXRpb25NYXNrLnBhbmVzT3JkZXIoKSl9Y2hhbmdlUGFuZXNIZWlnaHQoZSx0KXtpZih0aGlzLl9wYW5lcy5sZW5ndGg8MilyZXR1cm47KDAsbC5hc3NlcnQpKGU+PTAmJmU8dGhpcy5fcGFuZXMubGVuZ3RoLCJJbnZhbGlkIHBhbmUgaW5kZXgiKTtjb25zdCBpPXRoaXMuX3BhbmVzW2VdLHM9dGhpcy5fcGFuZXMucmVkdWNlKCgoZSx0KT0+ZSt0LnN0cmV0Y2hGYWN0b3IoKSksMCksbj10aGlzLl9wYW5lcy5yZWR1Y2UoKChlLHQpPT5lK3QuaGVpZ2h0KCkpLDApLHI9bi0zMCoodGhpcy5fcGFuZXMubGVuZ3RoLTEpO3Q9TWF0aC5taW4ocixNYXRoLm1heCgzMCx0KSk7Y29uc3Qgbz1zL24sYT1pLmhlaWdodCgpO2kuc2V0U3RyZXRjaEZhY3Rvcih0Km8pO2xldCBjPXQtYSxoPXRoaXMuX3BhbmVzLmxlbmd0aC0xO2Zvcihjb25zdCBlIG9mIHRoaXMuX3BhbmVzKWlmKGUhPT1pKXsKY29uc3QgdD1NYXRoLm1pbihyLE1hdGgubWF4KDMwLGUuaGVpZ2h0KCktYy9oKSk7Yy09ZS5oZWlnaHQoKS10LGgtPTE7Y29uc3QgaT10Km87ZS5zZXRTdHJldGNoRmFjdG9yKGkpfXRoaXMuZnVsbFVwZGF0ZSgpfWNsZWFyQ3VycmVudFBvc2l0aW9uKCl7Y29uc3QgZT10aGlzLmNyb3NzaGFpclNvdXJjZSgpO2UuY2xlYXJQb3NpdGlvbigpLCgwLGwuZW5zdXJlTm90TnVsbCkoZS5kYXRhV2luZG93VmlldygpKS51cGRhdGUoKDAsdG4uc291cmNlQ2hhbmdlRXZlbnQpKGUuaWQoKSkpLFB1KHRoaXMuX3BhbmVzKSx0aGlzLmludmFsaWRhdGUoTGUuSW52YWxpZGF0aW9uTWFzay5jdXJzb3IoKSksdGhpcy5fdW5kb01vZGVsLnN5bmNDcm9zc2hhaXIobnVsbCksdGhpcy5fcGhhbnRvbVNvdXJjZUNvbnRhaW5lci5vbkN1cnNvclBvc2l0aW9uVXBkYXRlZCgpfWdldFRwb1N1bW1hcnlQYW5lKCl7Y29uc3QgZT10aGlzLl9tYWluU2VyaWVzLnByb3BlcnRpZXMoKS5jaGlsZHMoKS50cG9TdHlsZS5jaGlsZHMoKSx0PWUuc3VtbWFyeS5jaGlsZHMoKS5iZWxvd1Nlcmllcy52YWx1ZSgpLGk9ZS5zdW1tYXJ5LmNoaWxkcygpLmluZm9CbG9ja3Mscz1lLnN1bW1hcnkuY2hpbGRzKCkuaW5mb0Jsb2Nrcy5jaGlsZE5hbWVzKCk7bGV0IG49MDtzLmZvckVhY2goKGU9PntpLmNoaWxkcygpW2VdLmNoaWxkcygpLnZpc2libGUudmFsdWUoKSYmbisrfSkpO2NvbnN0IHI9TWF0aC5tYXgobipfaC5jb25zdGFudHMuY2VsbEhlaWdodCwzMCk7cmV0dXJuIHRoaXMuX2dldFdpZGdldFBhbmUodCxyKX1nZXRWb2x1bWVGb290cHJpbnRTdW1tYXJ5UGFuZSgpe2NvbnN0IGU9dGhpcy5fbWFpblNlcmllcy5wcm9wZXJ0aWVzKCkuY2hpbGRzKCkudm9sRm9vdHByaW50U3R5bGUuY2hpbGRzKCksdD1lLmV4dGVuZGVkU3VtbWFyeS5jaGlsZHMoKS5iZWxvd1Nlcmllcy52YWx1ZSgpLGk9ZS5leHRlbmRlZFN1bW1hcnkuY2hpbGRzKCkuYmxvY2tJbmZvLHM9aS5jaGlsZE5hbWVzKCk7bGV0IG49MDtzLmZvckVhY2goKGU9PntpLmNoaWxkcygpW2VdLmNoaWxkcygpLnZpc2libGUudmFsdWUoKSYmbisrfSkpO2NvbnN0IHI9dGhpcy5fbWFpblNlcmllcy5zeW1ib2xJbmZvKCk7aWYociYmKDAsZWEuaXNGdXR1cmVzKShyLnR5cGUpJiYhKDAsZWEuaGFzQ3J5cHRvVHlwZXNwZWMpKHIudHlwZXNwZWNzKSl7Y29uc3QgdD1lLmV4dGVuZGVkU3VtbWFyeS5jaGlsZHMoKS5vcGVuSW50ZXJlc3RCbG9ja0luZm87dC5jaGlsZE5hbWVzKCkuZm9yRWFjaCgoZT0+e3QuY2hpbGRzKClbZV0/LmNoaWxkcygpLnZpc2libGUudmFsdWUoKSYmbisrfSkpfWlmKHImJigoMCxlYS5pc0Z1dHVyZXMpKHIudHlwZSl8fCJzd2FwIj09PXIudHlwZSkmJigwLGVhLmhhc0NyeXB0b1R5cGVzcGVjKShyLnR5cGVzcGVjcykpe2NvbnN0IHQ9ZS5leHRlbmRlZFN1bW1hcnkuY2hpbGRzKCkuZXh0ZW5kZWRPcGVuSW50ZXJlc3RCbG9ja0luZm87dC5jaGlsZE5hbWVzKCkuZm9yRWFjaCgoZT0+e3QuY2hpbGRzKClbZV0uY2hpbGRzKCkudmlzaWJsZS52YWx1ZSgpJiZuKyt9KSl9Y29uc3Qgbz1NYXRoLm1heChuKl9oLmNvbnN0YW50cy5jZWxsSGVpZ2h0LDMwKTtyZXR1cm4gdGhpcy5fZ2V0V2lkZ2V0UGFuZSh0LG8pfXNldEFuZFNhdmVDdXJyZW50UG9zaXRpb24oZSx0LGkscyl7dGhpcy5jcm9zc2hhaXJTb3VyY2UoKS5zYXZlT3JpZ2luQ29vcmRzKGUsdCksdGhpcy5zZXRDdXJyZW50UG9zaXRpb24oZSx0LGkscyl9c2V0Q3VycmVudFBvc2l0aW9uKGUsdCxpLHMpe2xldCBuPU5hTjtjb25zdCByPXRoaXMuX3RpbWVTY2FsZS5jb29yZGluYXRlVG9WaXNpYmxlSW5kZXgoZSksbz0odGhpcy5fbGluZUJlaW5nRWRpdGVkPz90aGlzLl9saW5lc0JlaW5nQ3JlYXRlZFswXSk/Lm93bmVyU291cmNlLnByaWNlU2NhbGUoKT8/aS5kZWZhdWx0UHJpY2VTY2FsZSgpO2xldCBhPW51bGw7IW8uaXNFbXB0eSgpJiZOdW1iZXIuaXNGaW5pdGUodCkmJihhPSgwLGwuZW5zdXJlTm90TnVsbCkoaS5tYWluRGF0YVNvdXJjZSgpKS5maXJzdFZhbHVlKCksbnVsbCE9PWEmJihuPW8uY29vcmRpbmF0ZVRvUHJpY2UodCxhKSkpO2NvbnN0IGM9dGhpcy5jcm9zc2hhaXJTb3VyY2UoKSxoPWMucmVxdWVzdFBvaW50UGFyYW1zKCksZD1oPy5zZWxlY3RQb2ludE1vZGU/P1QuU2VsZWN0UG9pbnRNb2RlLk5vbmUsdT1kIT09VC5TZWxlY3RQb2ludE1vZGUuTm9uZSxwPVQudG9vbC52YWx1ZSgpLF89dGhpcy5tYWluU2VyaWVzKCksZz1jLmluZGV4LGY9Yy5wcmljZSxTPWQ9PT1ULlNlbGVjdFBvaW50TW9kZS5TdHVkeXx8VC5pc1N0dWR5RWRpdGluZ05vdy52YWx1ZSgpLHY9ZD09PVQuU2VsZWN0UG9pbnRNb2RlLlJlcGxheTtsZXQgeT0hMTtjb25zdCBiPSgwLFpzLm1hZ25ldFNuYXBzVG9JbmRpY2F0b3JzKSgpLnZhbHVlKCk7aWYobz09PXRoaXMuX21haW5TZXJpZXMucHJpY2VTY2FsZSgpfHxiKWlmKCgwLG0uaXNMaW5lRHJhd25XaXRoUHJlc3NlZEJ1dHRvbikocCkpe2NvbnN0IGU9dGhpcy5saW5lQmVpbmdDcmVhdGVkKCk7eT1udWxsPT09ZXx8KDAscmkuaXNCcnVzaEJhc2VkTGluZVRvb2wpKGUpJiZlLmhhc09ubHlPbmVQb2ludCgpfWVsc2V7eT1Cb29sZWFuKHRoaXMubGluZUJlaW5nQ3JlYXRlZCgpfHx0aGlzLl9saW5lQmVpbmdFZGl0ZWR8fCgwLG0uaXNMaW5lVG9vbE5hbWUpKHApfHwoMCxULnRvb2xJc01lYXN1cmUpKHApKXx8U30hdGhpcy5faXNTZXR0aW5nc0V4dGVybmFsUG9zaXRpb24mJnk/KG49dGhpcy5fbWFnbmV0LmFsaWduKG4scixpKSxudWxsIT09YSYmdGhpcy5fc2V0Q29ycmVjdGVkUG9zaXRpb25Ub0Nyb3NzaGFpcihyLG4saSkpOnRoaXMuX21hZ25ldC5yZXNldExhc3RWYWx1ZSgpO2xldCB3PW51bGw7aWYoaXNOYU4obil8fCh3PWkpLHRoaXMuX2lzVGltZVNjcm9sbGluZyl7aWYoIXRoaXMuX2lzU2V0dGluZ3NFeHRlcm5hbFBvc2l0aW9uJiZ1KXtjb25zdCBlPV8uYmFycygpLmZpcnN0SW5kZXgoKSx0PV8uYmFycygpLmxhc3RJbmRleCgpO2lmKG51bGwhPT1lJiZudWxsIT09dCl7Y29uc3Qgcz1NYXRoLm1pbihNYXRoLm1heChyLGUpLHQpCjtzIT09ciYmdGhpcy5fc2V0Q29ycmVjdGVkUG9zaXRpb25Ub0Nyb3NzaGFpcihzLG4saSl9fWVsc2UgYy5zZXRQb3NpdGlvbihjLmluZGV4LG4sdyk7cmV0dXJufWMuc2V0T25Ib3ZlcmVkQ2hhcnRXaWRnZXQoITApLGMuc2V0UG9zaXRpb24ocixuLHcpLCgwLGwuZW5zdXJlTm90TnVsbCkoYy5kYXRhV2luZG93VmlldygpKS51cGRhdGUoKDAsdG4uc291cmNlQ2hhbmdlRXZlbnQpKGMuaWQoKSkpLFB1KHRoaXMuX3BhbmVzKTtjb25zdCBDPV8uc3luY01vZGVsKCksUD10aGlzLmxpbmVCZWluZ0NyZWF0ZWQoKTtpZih0aGlzLmNyb3NzaGFpclNvdXJjZSgpLnN0YXJ0TWVhc3VyZVBvaW50KCl8fFA/dGhpcy5saWdodFVwZGF0ZSgpOnRoaXMuaW52YWxpZGF0ZShMZS5JbnZhbGlkYXRpb25NYXNrLmN1cnNvcigpKSxQKXtjb25zdCBlPVAubGlua0tleSgpLnZhbHVlKCk7aWYoIXRoaXMuX2lzU2V0dGluZ3NFeHRlcm5hbFBvc2l0aW9uKXtjb25zdCB0PVAuc2V0TGFzdFBvaW50KHtpbmRleDpyLHByaWNlOm59LHMpO2lmKFAudXBkYXRlQWxsVmlld3MoKDAsdG4uc291cmNlQ2hhbmdlRXZlbnQpKFAuaWQoKSkpLHQucHJpY2U9PT1uJiZ0LmluZGV4PT09cnx8dGhpcy5fc2V0Q29ycmVjdGVkUG9zaXRpb25Ub0Nyb3NzaGFpcih0LmluZGV4LHQucHJpY2UsaSksQyYmZSYmIXRoaXMuX2xpbmVUb29sc1N5bmNCbG9jayl7Y29uc3QgaT10aGlzLl90aW1lU2NhbGUucG9pbnRzKCkucm91Z2hUaW1lKHQuaW5kZXgsQy5wcm9qZWN0VGltZS5iaW5kKEMpKTsoMCxULnNldExpbmVUb29sTGFzdFBvaW50KSh7bW9kZWw6dGhpcyxsaW5rS2V5OmUscG9pbnQ6e3RpbWVTdGFtcDooMCxsLmVuc3VyZU5vdE51bGwpKGkpLHByaWNlOnQucHJpY2V9fSl9fX1pZighdGhpcy5faXNTZXR0aW5nc0V4dGVybmFsUG9zaXRpb24mJm51bGwhPT10aGlzLl9saW5lQmVpbmdFZGl0ZWQmJm51bGwhPT10aGlzLl9saW5lQmVpbmdFZGl0ZWQucG9pbnRJbmRleCl7Y29uc3QgZT17aW5kZXg6cixwcmljZTpufSx7bGluZURhdGFTb3VyY2U6dCxwb2ludEluZGV4Om8sc3RhcnRDaGFuZ2luZ1BvaW50OmF9PXRoaXMuX2xpbmVCZWluZ0VkaXRlZDtpZihhPy5ub25EaXNjcmV0ZUluZGV4KXtjb25zdCB0PXRoaXMuY3Jvc3NoYWlyU291cmNlKCkub3JpZ2luWCgpO051bWJlci5pc0Zpbml0ZSh0KSYmKGUuaW5kZXg9dGhpcy5fdGltZVNjYWxlLmNvb3JkaW5hdGVUb0Zsb2F0SW5kZXgodCkpfXRoaXMuY2hhbmdlTGluZVBvaW50KGUscyk7Y29uc3QgbD10LmFsaWduQ3Jvc3NIYWlyVG9BbmNob3Iobyk/dC5nZXRQb2ludChvKTplO251bGwhPT1sJiZ0aGlzLl9zZXRDb3JyZWN0ZWRQb3NpdGlvblRvQ3Jvc3NoYWlyKGwuaW5kZXgsbC5wcmljZSxpKX1pZighdGhpcy5faXNTZXR0aW5nc0V4dGVybmFsUG9zaXRpb24mJjE9PT10aGlzLl9zb3VyY2VzQmVpbmdNb3ZlZC5sZW5ndGgpe2NvbnN0IGU9dGhpcy5fc291cmNlc0JlaW5nTW92ZWRbMF07aWYoZS5hbGlnbkNyb3NzSGFpclRvTW92ZVBvaW50Py4oKSl7Y29uc3QgdD1lLmN1cnJlbnRNb3ZpbmdQb2ludD8uKCk7dCYmdC5sb2dpY2FsJiZ0aGlzLl9zZXRDb3JyZWN0ZWRQb3NpdGlvblRvQ3Jvc3NoYWlyKHQubG9naWNhbC5pbmRleCx0LmxvZ2ljYWwucHJpY2UsaSl9fWlmKCF0aGlzLl9pc1NldHRpbmdzRXh0ZXJuYWxQb3NpdGlvbiYmKFN8fHYpKXtjb25zdCBlPV8uYmFycygpLmZpcnN0SW5kZXgoKSx0PV8uYmFycygpLmxhc3RJbmRleCgpO2lmKG51bGwhPT1lJiZudWxsIT09dCl7bGV0IHM9TWF0aC5tYXgocixlKTtoPy5hbGlnblRvVGhlTGF0ZXN0QmFySWZUaW1lUG9pbnRJc091dE9mRGF0YSYmKHM9TWF0aC5taW4ocyx0KSkscyE9PXImJnRoaXMuX3NldENvcnJlY3RlZFBvc2l0aW9uVG9Dcm9zc2hhaXIocyxuLGkpfX0oZyE9PXJ8fGYhPT1uKSYmdGhpcy5fc3luY0Nyb3NzaGFpcihzKX1zZXRFeHRlcm5hbFBvc2l0aW9uKGUsdCl7bGV0IGk7Y29uc3Qgcz10aGlzLmNyb3NzaGFpclNvdXJjZSgpO2lmKHMuc2V0T25Ib3ZlcmVkQ2hhcnRXaWRnZXQoITEpLG51bGwhPT1lJiYoMCxhLmlzTnVtYmVyKShlLnRpbWVTdGFtcCkpe2NvbnN0IHQ9dGhpcy5tYWluU2VyaWVzKCkuc3luY01vZGVsKCk7aWYodCl7Y29uc3Qgcz10aGlzLmNyZWF0ZVN5bmNQb2ludChlLnN5bmNTb3VyY2VUYXJnZXQsdC5zeW5jU291cmNlVGFyZ2V0KCkpLnNvdXJjZVRpbWVUb1RhcmdldFRpbWUoZS50aW1lU3RhbXApO2k9dGhpcy5fdGltZVNjYWxlLnBvaW50cygpLnJvdWdoSW5kZXgocyx0LmRpc3RhbmNlLmJpbmQodCksMSl9fWlmKG51bGwhPT1lJiZudWxsIT1pJiZOdW1iZXIuaXNGaW5pdGUoaSkpe3RoaXMuX2lzU2V0dGluZ3NFeHRlcm5hbFBvc2l0aW9uPSEwO2NvbnN0IG49KDAsbC5lbnN1cmVOb3ROdWxsKSh0aGlzLnBhbmVGb3JTb3VyY2UodGhpcy5tYWluU2VyaWVzKCkpKSxyPXRoaXMuX3RpbWVTY2FsZS5pbmRleFRvQ29vcmRpbmF0ZShpKSxvPSgwLGwuZW5zdXJlTm90TnVsbCkobi5tYWluRGF0YVNvdXJjZSgpKS5maXJzdFZhbHVlKCk7aWYobnVsbCE9PW8pe2xldCBpPU5hTjt2b2lkIDAhPT1lLnByaWNlJiZOdW1iZXIuaXNGaW5pdGUoZS5wcmljZSkmJihpPXRoaXMubWFpblNlcmllcygpLnByaWNlU2NhbGUoKS5wcmljZVRvQ29vcmRpbmF0ZShlLnByaWNlLG8pKSxzLmNsZWFyT3JpZ2luQ29vcmRzKCksdGhpcy5zZXRDdXJyZW50UG9zaXRpb24ocixpLG4sdCl9cmV0dXJuIHMuc2V0T25Ib3ZlcmVkQ2hhcnRXaWRnZXQoITEpLHZvaWQodGhpcy5faXNTZXR0aW5nc0V4dGVybmFsUG9zaXRpb249ITEpfXMuY2xlYXJQb3NpdGlvbigpLCgwLGwuZW5zdXJlTm90TnVsbCkocy5kYXRhV2luZG93VmlldygpKS51cGRhdGUoKDAsdG4uc291cmNlQ2hhbmdlRXZlbnQpKHMuaWQoKSkpLFB1KHRoaXMuX3BhbmVzKSx0aGlzLmludmFsaWRhdGUoTGUuSW52YWxpZGF0aW9uTWFzay5jdXJzb3IoKSl9c3RhcnRTY2FsZVRpbWUoZSl7dGhpcy5fdGltZVNjYWxlLnN0YXJ0U2NhbGUoZSl9c2NhbGVUaW1lVG8oZSl7dGhpcy5fdGltZVNjYWxlLnNjYWxlVG8oZSksdGhpcy5yZWNhbGN1bGF0ZUFsbFBhbmVzKCgwLAp0bi52aWV3cG9ydENoYW5nZUV2ZW50KSgpKSx0aGlzLmxpZ2h0VXBkYXRlKCl9ZW5kU2NhbGVUaW1lKCl7dGhpcy5fdGltZVNjYWxlLmVuZFNjYWxlKCksdGhpcy5saWdodFVwZGF0ZSgpLHRoaXMucmVjYWxjVmlzaWJsZVJhbmdlU3R1ZGllcyhJaS5SZWNhbGNWaXNpYmxlUmFuZ2VTdHVkaWVzUmVhc29uLlZpZXdwb3J0Q2hhbmdlVXNlckFjdGlvbil9cmVzZXRUaW1lU2NhbGUoKXt0aGlzLl90aW1lU2NhbGUucmVzdG9yZURlZmF1bHQoKSx0aGlzLnJlY2FsY3VsYXRlQWxsUGFuZXMoKDAsdG4udmlld3BvcnRDaGFuZ2VFdmVudCkoKSksdGhpcy5yZWNhbGNWaXNpYmxlUmFuZ2VTdHVkaWVzKElpLlJlY2FsY1Zpc2libGVSYW5nZVN0dWRpZXNSZWFzb24uVmlld3BvcnRDaGFuZ2VVc2VyQWN0aW9uKSx0aGlzLmxpZ2h0VXBkYXRlKCksdGhpcy5fcmVzZXRTY2FsZXMuZmlyZSgpfXN0YXJ0U2NhbGVQcmljZShlLHQsaSl7ZS5zdGFydFNjYWxlUHJpY2UodCxpKX1zY2FsZVByaWNlVG8oZSx0LGkpe2Uuc2NhbGVQcmljZVRvKHQsaSksdGhpcy5tYWluU2VyaWVzKCkucHJpY2VTY2FsZSgpLmlzTG9ja1NjYWxlKCk/dGhpcy5saWdodFVwZGF0ZSgpOnRoaXMuaW52YWxpZGF0ZSh0aGlzLl9wYW5lSW52YWxpZGF0aW9uTWFzayhlLExlLkludmFsaWRhdGlvbkxldmVsLkxpZ2h0KSl9ZW5kU2NhbGVQcmljZShlLHQpe2UuZW5kU2NhbGVQcmljZSh0KSx0aGlzLmludmFsaWRhdGUodGhpcy5fcGFuZUludmFsaWRhdGlvbk1hc2soZSxMZS5JbnZhbGlkYXRpb25MZXZlbC5MaWdodCkpfXN0YXJ0VHdvUG9pbnRzU2NhbGVQcmljZShlLHQsaSxzKXt0LnN0YXJ0VHdvUG9pbnRzU2NhbGUoaSxzKX10d29Qb2ludHNTY2FsZVByaWNlVG8oZSx0LGkscyl7dC50d29Qb2ludHNTY2FsZShpLHMpLHQudXBkYXRlQWxsVmlld3MoKDAsdG4udmlld3BvcnRDaGFuZ2VFdmVudCkoKSksdGhpcy5pbnZhbGlkYXRlKHRoaXMuX3BhbmVJbnZhbGlkYXRpb25NYXNrKGUpKX1lbmRUd29Qb2ludHNTY2FsZVByaWNlKGUsdCl7dC5lbmRUd29Qb2ludHNTY2FsZSgpLHRoaXMuaW52YWxpZGF0ZSh0aGlzLl9wYW5lSW52YWxpZGF0aW9uTWFzayhlKSl9cmVzZXRQcmljZVNjYWxlKGUsdCl7ZS5yZXNldFByaWNlU2NhbGUodCksdGhpcy5pbnZhbGlkYXRlKHRoaXMuX3BhbmVJbnZhbGlkYXRpb25NYXNrKGUsTGUuSW52YWxpZGF0aW9uTGV2ZWwuTGlnaHQpKX1yZXN0b3JlUHJpY2VTY2FsZVN0YXRlKGUsdCxpKXtlLnJlc3RvcmVQcmljZVNjYWxlU3RhdGUodCxpKSx0aGlzLmludmFsaWRhdGUodGhpcy5fcGFuZUludmFsaWRhdGlvbk1hc2soZSxMZS5JbnZhbGlkYXRpb25MZXZlbC5MaWdodCkpfWRldGFjaFNvdXJjZShlKXtjb25zdCB0PXRoaXMucGFuZUZvclNvdXJjZShlKTtyZXR1cm4hIXQmJih0LnJlbW92ZURhdGFTb3VyY2UoZSksdC5pc0VtcHR5KCk/KHRoaXMubGluZUJlaW5nQ3JlYXRlZCgpJiZ0PT09dGhpcy5wYW5lQmVpbmdDcmVhdGVkTGluZU9uKCkmJnRoaXMuY2FuY2VsQ3JlYXRpbmdMaW5lKCksdGhpcy5yZW1vdmVQYW5lKHQpLCEwKToodGhpcy5mdWxsVXBkYXRlKCksITEpKX1yZXN0b3JlU291cmNlKGUsdCxpLHMsbil7Y29uc3Qgcj1lP3RoaXMuY3JlYXRlUGFuZSh0KTp0aGlzLnBhbmVzKClbdF0sbz0oMCxQLmlzU3R1ZHlTdGF0ZSkocyksYT1vP3IucmVzdG9yZVN0dWR5KHtzb3VyY2U6c30pOigwLFAuaXNMaW5lVG9vbFN0YXRlKShzKT9yLnJlc3RvcmVMaW5lVG9vbCh7c3RhdGU6c30pOm51bGw7aWYoIWEpcmV0dXJuIG51bGw7bGV0IGw9bnVsbDtpZihuPyhsPXIuZ2V0UHJpY2VTY2FsZUJ5SWQobi5pZCksbHx8KGw9ci5jcmVhdGVQcmljZVNjYWxlQXRQb3NpdGlvbihuLnBvc2l0aW9uLG4ucHJpY2VTY2FsZUluZGV4KSxsLnNldElkKG4uaWQpKSk6bD1hLm93bmVyU291cmNlKCk/LnByaWNlU2NhbGUoKT8/bCxsJiYoYS5zZXRQcmljZVNjYWxlKGwpLGwuYWRkRGF0YVNvdXJjZShhKSksIWUmJmkmJmkub3ZlcmxheVByaWNlU2NhbGVzKXtjb25zdCBlPXRoaXMuZGF0YVNvdXJjZXMoKS5maWx0ZXIoKGU9PnZvaWQgMCE9PWkub3ZlcmxheVByaWNlU2NhbGVzW2UuaWQoKV0pKTtlLmZvckVhY2goKGU9PnIucmVtb3ZlU291cmNlRnJvbVByaWNlU2NhbGUoZSkpKTtjb25zdCB0PW5ldyBNYXA7ZS5mb3JFYWNoKChlPT57Y29uc3Qgcz1pLm92ZXJsYXlQcmljZVNjYWxlc1tlLmlkKCldO2lmKCFzKXJldHVybjtsZXQgbjt0LmhhcyhzLmlkKT9uPXQuZ2V0KHMuaWQpOihuPXIuY3JlYXRlUHJpY2VTY2FsZUF0UG9zaXRpb24oIm92ZXJsYXkiKSxuLnJlc3RvcmVTdGF0ZShzKSx0LnNldChzLmlkLG4pKSxlLnNldFByaWNlU2NhbGUobiksbi5hZGREYXRhU291cmNlKGUpfSkpfXJldHVybiBlJiZpJiZyLnJlc3RvcmVTdGF0ZSh7c3RhdGU6aSx3aXRoRGF0YTohMSx2ZXJzaW9uOnRoaXMudmVyc2lvbigpfSksbyYmKHRoaXMucmVjYWxjdWxhdGVBbGxQYW5lcygoMCx0bi5zb3VyY2VDaGFuZ2VFdmVudCkoYS5pZCgpKSksdGhpcy5faW52YWxpZGF0ZUJhckNvbG9yZXJDYWNoZXMoKSx0aGlzLmZ1bGxVcGRhdGUoKSx0aGlzLmFsZXJ0c1dhdGNoZXIoKT8uc3luY1NvdXJjZUFsZXJ0TGFiZWxzKGEpKSxhfWNoaWxkcmVuKGUsdCxpKXtyZXR1cm4gdGhpcy5kYXRhU291cmNlcygpLmZpbHRlcigocz0+ISgwLHRpLmlzU3R1ZHkpKHMpfHxzaShzKXx8ZS5pc1NlcmllcyYmcy5pc0xpbmtlZFRvU2VyaWVzKCk/ISgoMCxyaS5pc0xpbmVUb29sKShzKSYmaSYmcy5zdXBwb3J0c1RhcmdldFNpZ25hdHVyZSgpJiZudWxsIT09cy50YXJnZXRTaWduYXR1cmUoKSkmJnMub3duZXJTb3VyY2UoKT09PWU6IXQmJnMucGFyZW50U291cmNlcygpLmluY2x1ZGVzKGUpKSl9b25SZWFycmFuZ2VQYW5lcygpe3JldHVybiB0aGlzLl9vblJlYXJyYW5nZVBhbmVzfXN0dWR5SW5zZXJ0ZWQoKXtyZXR1cm4gdGhpcy5fc3R1ZHlJbnNlcnRlZH1maW5pc2hMaW5lVG9vbChlKXtjb25zdCB0PWUubGlua0tleSgpLnZhbHVlKCk7KDAsClQuZHJhd09uQWxsQ2hhcnRzKSgpLnZhbHVlKCkmJm51bGwhPT10JiZlLmlzU3luY2hyb25pemFibGUoKSYmIXRoaXMuX2xpbmVUb29sc1N5bmNCbG9jayYmKDAsVC5maW5pc2hMaW5lVG9vbCkoe2xpbmtLZXk6dCxtb2RlbDp0aGlzfSl9c3RhcnRDaGFuZ2luZ0xpbmV0b29sKGUsdCxpLHMsbixyKXt0aGlzLl9saW5lQmVpbmdFZGl0ZWQ9e2xpbmVEYXRhU291cmNlOmUsb3duZXJTb3VyY2U6dCxzdGFydENoYW5naW5nUG9pbnQ6aT8/bnVsbCxwb2ludEluZGV4OnM/P251bGx9LGUuc3RhcnRDaGFuZ2luZyhzLGksciksVC5pc1Rvb2xFZGl0aW5nTm93LnNldFZhbHVlKCEwKTtjb25zdCBvPSgwLGwuZW5zdXJlTm90TnVsbCkodGhpcy5wYW5lRm9yU291cmNlKGUpKTtlLnN0YXJ0RHJhZ1BvaW50JiZ2b2lkIDAhPT1zJiZ2b2lkIDAhPT1pJiZlLnN0YXJ0RHJhZ1BvaW50KHMsaSkscnx8dm9pZCAwPT09c3x8dm9pZCAwPT09aXx8ZS5zZXRQb2ludChzLGksbixyKSxlLnVwZGF0ZUFsbFZpZXdzKCgwLHRuLnNvdXJjZUNoYW5nZUV2ZW50KShlLmlkKCkpKTtjb25zdCBhPXRoaXMuX3BhbmVJbnZhbGlkYXRpb25NYXNrKG8sTGUuSW52YWxpZGF0aW9uTGV2ZWwuTGlnaHQpO3RoaXMuaW52YWxpZGF0ZShhKTtjb25zdCBjPWUubGlua0tleSgpLnZhbHVlKCk7aWYoYyYmZS5pc1N5bmNocm9uaXphYmxlKCkmJnZvaWQgMCE9PXMmJnZvaWQgMCE9PWkmJiF0aGlzLl9saW5lVG9vbHNTeW5jQmxvY2spe2NvbnN0IHQ9KDAsbC5lbnN1cmVOb3ROdWxsKSh0aGlzLmV4dGVybmFsVGltZVN0YW1wKGkuaW5kZXgpKTsoMCxULnN0YXJ0Q2hhbmdpbmdMaW5lVG9vbCkoe2xpbmtLZXk6Yyxtb2RlbDp0aGlzLHN5bWJvbDp0aGlzLm1haW5TZXJpZXMoKS5zeW1ib2woKSxwb2ludDp7cHJpY2U6aS5wcmljZSx0aW1lU3RhbXA6dH0scG9zaXRpb25QZXJjZW50czplLnBvc2l0aW9uUGVyY2VudHMoKSxwb2ludEluZGV4OnMsZW52U3RhdGU6bnx8bnVsbH0pfX1jcmVhdGVMaW5lVG9vbChlKXtjb25zdHtwb2ludDp0LGxpbmV0b29sOmksbGlua0tleTpzPW51bGwsc2hhcmluZ01vZGU6bj0wLGlkOnIsZnJvbUV4dGVybmFsTW9kZWw6byxhY3Rpb25Tb3VyY2U6YyxwYW5lOmh9PWU7bGV0e3Byb3BlcnRpZXM6ZCxvd25lclNvdXJjZTp1fT1lO3U9KDAsbC5lbnN1cmVEZWZpbmVkKSh1fHwoMCxsLmVuc3VyZU5vdE51bGwpKGgubWFpbkRhdGFTb3VyY2UoKSkpO2xldCBwPWg7aWYobWwuc2hhcmVEcmF3aW5nc09uSW5kaWNhdG9ycyYmKDAsdGkuaXNTdHVkeSkodSkmJihwPSgwLGwuZW5zdXJlTm90TnVsbCkodGhpcy5tYWluUGFuZSgpKSksKDAsbC5hc3NlcnQpKCgwLG0uaXNMaW5lVG9vbE5hbWUpKGkpLGBDYW5ub3QgY3JlYXRlIHVua25vd24gbGluZSB0b29sOiAke2l9YCksZCl7Y29uc3QgZT17Li4uaHUuaW50ZXJ2YWxzVmlzaWJpbGl0aWVzRGVmYXVsdHN9LHQ9ZC5jaGlsZHMoKS5pbnRlcnZhbHNWaXNpYmlsaXRpZXMuc3RhdGUoKTsoMCxhLm1lcmdlKShlLHQ/P3t9KTtjb25zdCBzPWQuc3RhdGUoKTtzLmludGVydmFsc1Zpc2liaWxpdGllcz1lLGQ9KDAscmkuY3JlYXRlTGluZVRvb2xQcm9wZXJ0aWVzKSh0aGlzLmJhY2tncm91bmRUaGVtZSgpLnNwYXduT3duZXJzaGlwKCksaSwhdGhpcy5yZWFkT25seSgpLHMpfWNvbnN0IF89KDAscmkuY3JlYXRlTGluZVRvb2wpKGksdGhpcyxkLG51bGwsdm9pZCAwLHIsYyk7aWYoIkxpbmVUb29sRXhlY3V0aW9uIiE9PWkpe2xldCBlO3N3aXRjaChpKXtjYXNlIkxpbmVUb29sSWNvbiI6ZT1fLnByb3BlcnRpZXMoKS5jaGlsZHMoKS5pY29uLnZhbHVlKCkudG9TdHJpbmcoMTYpLnRvVXBwZXJDYXNlKCk7YnJlYWs7Y2FzZSJMaW5lVG9vbEVtb2ppIjplPV8ucHJvcGVydGllcygpLmNoaWxkcygpLmVtb2ppLnZhbHVlKCk7YnJlYWs7Y2FzZSJMaW5lVG9vbFN0aWNrZXIiOmU9Xy5wcm9wZXJ0aWVzKCkuY2hpbGRzKCkuc3RpY2tlci52YWx1ZSgpfSgwLE10LnRyYWNrRXZlbnQpKCJkcmF3aW5ncyIsIlN0dWR5X0RyYXdpbmdfIitpLGUpfSgwLG9pLmlzU3R1ZHlMaW5lVG9vbCkoXykmJigwLE10LnRyYWNrRXZlbnQpKCJzdHVkaWVzIixgU3R1ZHlfJHtfLm1ldGFJbmZvKCkuaWR9YCxfLm1ldGFJbmZvKCkuZGVzY3JpcHRpb24pO2NvbnN0IGc9IV8ubGlua0tleSgpLnZhbHVlKCkmJiFzO2R8fCgwLHJpLnByZXBhcmVMaW5lVG9vbFByb3BlcnRpZXNCeU93bmVyU291cmNlKShfLnByb3BlcnRpZXMoKSx1KSxtbC5zaGFyZURyYXdpbmdzT25JbmRpY2F0b3JzJiYoMCx0aS5pc1N0dWR5KSh1KT9fLnNldFRhcmdldFNpZ25hdHVyZSh1LnNpZ25hdHVyZSgpLnZhbHVlKCkpOl8uc2V0T3duZXJTb3VyY2UodSk7Y29uc3QgZj11LnByaWNlU2NhbGUoKTtpZihfLnNldFByaWNlU2NhbGUoZiksdT09PXRoaXMubWFpblNlcmllcygpJiZfLnNoYXJlKG4pLHAuYWRkRGF0YVNvdXJjZShfLGYsITEpLG51bGwhPT1fLnByZWZlcnJlZFpPcmRlcigpJiZwLmluc2VydEFmdGVyKFtfXSx0aGlzLm1haW5TZXJpZXMoKSksKDAsVC5kcmF3T25BbGxDaGFydHMpKCkudmFsdWUoKSl7Y29uc3QgZT1fLmlzU3luY2hyb25pemFibGUoKT9zfHwoMCxsdC5yYW5kb21IYXNoKSgpOm51bGw7Xy5saW5rS2V5KCkuc2V0VmFsdWUoZSl9ZWxzZSBfLmxpbmtLZXkoKS5zZXRWYWx1ZShzKTtsZXQgUztpZihnJiZfLmVuYWJsZUN1cnJlbnRJbnRlcnZhbFZpc2liaWxpdHkoKSxfLmlzRml4ZWQoKSl7Y29uc3QgZT0oMCxsLmVuc3VyZU5vdE51bGwpKCgwLGwuZW5zdXJlTm90TnVsbCkoaC5tYWluRGF0YVNvdXJjZSgpKS5maXJzdFZhbHVlKCkpLGk9dGhpcy5fdGltZVNjYWxlLmluZGV4VG9Db29yZGluYXRlKHQuaW5kZXgpLHM9KDAsbC5lbnN1cmVOb3ROdWxsKShmKS5wcmljZVRvQ29vcmRpbmF0ZSh0LnByaWNlLGUpO1M9Xy5hZGRGaXhlZFBvaW50KG5ldyBQdC5Qb2ludChpLHMpKX1lbHNlIFM9Xy5hZGRQb2ludCh0KTtyZXR1cm4gU3x8KHRoaXMuX2xpbmVzQmVpbmdDcmVhdGVkLnVuc2hpZnQoe2xpbmVEYXRhU291cmNlOl8sZnJvbUV4dGVybmFsOiEhbyxvd25lclNvdXJjZTp1LHBhbmU6aH0pLApULmlzVG9vbENyZWF0aW5nTm93LnNldFZhbHVlKCEwKSksdGhpcy5mdWxsVXBkYXRlKCksX31lbmRDaGFuZ2luZ0xpbmV0b29sKGUsdCl7Y29uc3QgaT0oMCxsLmVuc3VyZU5vdE51bGwpKHRoaXMuX2xpbmVCZWluZ0VkaXRlZCkubGluZURhdGFTb3VyY2Uscz1pLmVuZENoYW5naW5nKCExLGUsdCk7dGhpcy5fbGluZUJlaW5nRWRpdGVkPW51bGwsVC5pc1Rvb2xFZGl0aW5nTm93LnNldFZhbHVlKCExKSx0aGlzLmxpZ2h0VXBkYXRlKCk7Y29uc3Qgbj17cG9pbnRzOmkubm9ybWFsaXplZFBvaW50cygpLGludGVydmFsOnRoaXMubWFpblNlcmllcygpLmludGVydmFsKCl9LHI9aS5saW5rS2V5KCkudmFsdWUoKTtudWxsPT09cnx8IWkuaXNTeW5jaHJvbml6YWJsZSgpfHx0fHx0aGlzLl9saW5lVG9vbHNTeW5jQmxvY2t8fCgwLFQuZmluaXNoQ2hhbmdpbmdMaW5lVG9vbCkoe21vZGVsOnRoaXMsbGlua0tleTpyLHN5bWJvbDp0aGlzLm1haW5TZXJpZXMoKS5zeW1ib2woKSxmaW5hbFN0YXRlOm4sY2hhbmdlczpzfSl9Y29udGludWVDcmVhdGluZ0xpbmUoZSx0LGkscyxuKXtjb25zdCByPSgwLGwuZW5zdXJlTm90TnVsbCkodGhpcy5saW5lQmVpbmdDcmVhdGVkKCkpLG89ci5hZGRQb2ludChlLHQsaSxuKTtyLnVwZGF0ZUFsbFZpZXdzKCgwLHRuLnNvdXJjZUNoYW5nZUV2ZW50KShyLmlkKCkpKTtjb25zdCBhPW5ldyBMZS5JbnZhbGlkYXRpb25NYXNrKExlLkludmFsaWRhdGlvbkxldmVsLkxpZ2h0KTtyZXR1cm4gbyYmKHRoaXMuX2xpbmVzQmVpbmdDcmVhdGVkLnNoaWZ0KCksMD09PXRoaXMuX2xpbmVzQmVpbmdDcmVhdGVkLmxlbmd0aCYmVC5pc1Rvb2xDcmVhdGluZ05vdy5zZXRWYWx1ZSghMSkpLHRoaXMuaW52YWxpZGF0ZShhKSxvfWNhbmNlbENyZWF0aW5nTGluZSgpe2NvbnN0IGU9dGhpcy5saW5lQmVpbmdDcmVhdGVkKCk7aWYoIWUpcmV0dXJuO2NvbnN0IHQ9ZS5pc1N5bmNocm9uaXphYmxlKCk7dGhpcy5yZW1vdmVTb3VyY2UoZSksdGhpcy5fbGluZXNCZWluZ0NyZWF0ZWQuc2hpZnQoKSx0aGlzLl9saW5lQ2FuY2VsbGVkLmZpcmUoKSwwPT09dGhpcy5fbGluZXNCZWluZ0NyZWF0ZWQubGVuZ3RoJiZULmlzVG9vbENyZWF0aW5nTm93LnNldFZhbHVlKCExKSwoMCxULmRyYXdPbkFsbENoYXJ0cykoKS52YWx1ZSgpJiZ0JiYhdGhpcy5fbGluZVRvb2xzU3luY0Jsb2NrJiYoMCxULmNhbmNlbExpbmVUb29sKSh7bW9kZWw6dGhpc30pfWNhbmNlbEFsbERyYXdpbmdPcGVyYXRpb25zKCl7dGhpcy5saW5lQmVpbmdDcmVhdGVkKCkmJnRoaXMuY2FuY2VsQ3JlYXRpbmdMaW5lKCksKDAsVC5yZXNldFRvQ3Vyc29yKSghMCl9bGluZUJlaW5nQ3JlYXRlZCgpe3JldHVybiB0aGlzLl9saW5lc0JlaW5nQ3JlYXRlZFswXT8ubGluZURhdGFTb3VyY2U/P251bGx9bGluZUJlaW5nQ3JlYXRlRnJvbUV4dGVybmFsKCl7cmV0dXJuIHRoaXMuX2xpbmVzQmVpbmdDcmVhdGVkWzBdPy5mcm9tRXh0ZXJuYWw/PyExfXBhbmVCZWluZ0NyZWF0ZWRMaW5lT24oKXtyZXR1cm4gdGhpcy5fbGluZXNCZWluZ0NyZWF0ZWRbMF0/LnBhbmU/P251bGx9bGluZUNhbmNlbGxlZCgpe3JldHVybiB0aGlzLl9saW5lQ2FuY2VsbGVkfWlzUGhhbnRvbUxpbmUoZSl7cmV0dXJuIHRoaXMuX3BoYW50b21Tb3VyY2VDb250YWluZXIuc291cmNlKCk9PT1lfWFsaWduVG80NURlZ3JlZXMoZSx0LGkpe2NvbnN0W3Msbl09aSxyPXsuLi5ufTtlLnNuYXBQb2ludDQ1RGVncmVlKHMsciksdGhpcy5zdGFydENoYW5naW5nTGluZXRvb2woZSx0LG4sbi5wb2ludEluZGV4KSx0aGlzLmNoYW5nZUxpbmVQb2ludChyLExpLkVudmlyb25tZW50U3RhdGUuY3JlYXRlKCEwKSksdGhpcy5lbmRDaGFuZ2luZ0xpbmV0b29sKCExKX1jaGFuZ2VMaW5lUG9pbnQoZSx0LGkpe2NvbnN0IHM9KDAsbC5lbnN1cmVOb3ROdWxsKSh0aGlzLl9saW5lQmVpbmdFZGl0ZWQpLG49cy5saW5lRGF0YVNvdXJjZSxyPSgwLGwuZW5zdXJlTm90TnVsbCkocy5wb2ludEluZGV4KTtsZXQgbz1lLnByaWNlLGE9ZS5pbmRleDtpZihuLnNldFBvaW50KHIsZSx0LGkpLCFpKXtjb25zdCB0PW4uYWxpZ25Dcm9zc0hhaXJUb0FuY2hvcihyKT9uLmdldFBvaW50KHIpOmU7bnVsbCE9PXQmJihhPXQuaW5kZXgsbz10LnByaWNlKX1uLnVwZGF0ZUFsbFZpZXdzKCgwLHRuLnNvdXJjZUNoYW5nZUV2ZW50KShuLmlkKCkpKSx0aGlzLmxpZ2h0VXBkYXRlKCk7Y29uc3QgYz1uLmxpbmtLZXkoKS52YWx1ZSgpO2lmKCFpJiZudWxsIT09YyYmbi5pc1N5bmNocm9uaXphYmxlKCkmJiF0aGlzLl9saW5lVG9vbHNTeW5jQmxvY2spe2NvbnN0IGU9KDAsbC5lbnN1cmVOb3ROdWxsKShzLnN0YXJ0Q2hhbmdpbmdQb2ludCksaT17aW5kZXhlc0NoYW5nZWQ6YSE9PWUuaW5kZXgscHJpY2VzQ2hhbmdlZDpvIT09ZS5wcmljZX0saD1uLmdldENoYW5nZVBvaW50Rm9yU3luYyhyKTtpZihudWxsIT09aCl7Y29uc3QgZT10aGlzLmV4dGVybmFsVGltZVN0YW1wKGEpO251bGwhPT1lJiYobz1oLnByaWNlLCgwLFQuY2hhbmdlTGluZVRvb2wpKHtsaW5rS2V5OmMsbW9kZWw6dGhpcyxzeW1ib2w6dGhpcy5tYWluU2VyaWVzKCkuc3ltYm9sKCkscG9pbnQ6e3ByaWNlOm8sdGltZVN0YW1wOmV9LHBvc2l0aW9uUGVyY2VudHM6bi5wb3NpdGlvblBlcmNlbnRzKCksZW52U3RhdGU6dCxjaGFuZ2VzOml9KSl9fX1jaGFuZ2VMaW5lUG9pbnRzKGUsdCxpKXtjb25zdCBzPWUucG9pbnRzKCksbj1lLmxpbmtLZXkoKS52YWx1ZSgpOyFpJiZuJiZlLmlzU3luY2hyb25pemFibGUoKSYmIXRoaXMuX2xpbmVUb29sc1N5bmNCbG9jayYmdC5mb3JFYWNoKCgodCxpKT0+e2NvbnN0IHI9c1tpXSxvPXIucHJpY2UhPT10LnByaWNlLGE9ci5pbmRleCE9PXQuaW5kZXg7aWYoZS5nZXRDaGFuZ2VQb2ludEZvclN5bmMoaSkpe2NvbnN0IGk9KDAsbC5lbnN1cmVOb3ROdWxsKSh0aGlzLmV4dGVybmFsVGltZVN0YW1wKHQuaW5kZXgpKTsoMCxULmNoYW5nZUxpbmVUb29sKSh7bGlua0tleTpuLG1vZGVsOnRoaXMsc3ltYm9sOnRoaXMubWFpblNlcmllcygpLnN5bWJvbCgpLHBvaW50OntwcmljZTp0LnByaWNlLHRpbWVTdGFtcDppfSwKcG9zaXRpb25QZXJjZW50czplLnBvc2l0aW9uUGVyY2VudHMoKSxjaGFuZ2VzOntwcmljZXNDaGFuZ2VkOm8saW5kZXhlc0NoYW5nZWQ6YX19KX19KSksZS5zZXRQb2ludHModCksZS51cGRhdGVBbGxWaWV3cygoMCx0bi5zb3VyY2VDaGFuZ2VFdmVudCkoZS5pZCgpKSksdGhpcy5saWdodFVwZGF0ZSgpfXN0YXJ0U2Nyb2xsVGltZShlKXt0aGlzLl90aW1lU2NhbGUuc3RhcnRTY3JvbGwoZSksdGhpcy5faXNUaW1lU2Nyb2xsaW5nPSEwLHRoaXMubWFpblNlcmllcygpLmNsZWFyR290b0RhdGVSZXN1bHQoKX1zY3JvbGxUaW1lVG8oZSl7dGhpcy5fdGltZVNjYWxlLnNjcm9sbFRvKGUpLHRoaXMucmVjYWxjdWxhdGVBbGxQYW5lcygoMCx0bi52aWV3cG9ydENoYW5nZUV2ZW50KSgpKSx0aGlzLmxpZ2h0VXBkYXRlKCl9ZW5kU2Nyb2xsVGltZSgpe3RoaXMuX3RpbWVTY2FsZS5lbmRTY3JvbGwoKSx0aGlzLmxpZ2h0VXBkYXRlKCksdGhpcy5yZWNhbGNWaXNpYmxlUmFuZ2VTdHVkaWVzKElpLlJlY2FsY1Zpc2libGVSYW5nZVN0dWRpZXNSZWFzb24uVmlld3BvcnRDaGFuZ2VVc2VyQWN0aW9uKSx0aGlzLl9pc1RpbWVTY3JvbGxpbmc9ITF9c3RhcnRTY3JvbGxQcmljZShlLHQsaSl7ZS5zdGFydFNjcm9sbFByaWNlKHQsaSl9c2Nyb2xsUHJpY2VUbyhlLHQsaSl7ZS5zY3JvbGxQcmljZVRvKHQsaSksdGhpcy5pbnZhbGlkYXRlKHRoaXMuX3BhbmVJbnZhbGlkYXRpb25NYXNrKGUsTGUuSW52YWxpZGF0aW9uTGV2ZWwuTGlnaHQpKX1lbmRTY3JvbGxQcmljZShlLHQpe2UuZW5kU2Nyb2xsUHJpY2UodCksdGhpcy5pbnZhbGlkYXRlKHRoaXMuX3BhbmVJbnZhbGlkYXRpb25NYXNrKGUsTGUuSW52YWxpZGF0aW9uTGV2ZWwuTGlnaHQpKX1hZGRDdXN0b21Tb3VyY2UoZSx0LGk9SWkuQ3VzdG9tU291cmNlTGF5ZXIuRm9yZWdyb3VuZCl7dGhpcy5fY3VzdG9tU291cmNlc01hcC5oYXMoZSkmJnd1LmxvZ1dhcm4oYEF0dGVtcHQgdG8gYWRkIHRoZSBzYW1lIGN1c3RvbSBzb3VyY2UgbXVsdGlwbGUgdGltZSAiJHtlfSJgKSx3dS5sb2dOb3JtYWwoYEFkZGluZyBjdXN0b20gc291cmNlICIke2V9ImApO2NvbnN0IHM9dChlLHRoaXMpO3N3aXRjaChpKXtjYXNlIElpLkN1c3RvbVNvdXJjZUxheWVyLkJhY2tncm91bmQ6dGhpcy5fYmdDdXN0b21Tb3VyY2VzLnB1c2gocyk7YnJlYWs7Y2FzZSBJaS5DdXN0b21Tb3VyY2VMYXllci5Gb3JlZ3JvdW5kOnRoaXMuX2ZnQ3VzdG9tU291cmNlcy5wdXNoKHMpO2JyZWFrO2Nhc2UgSWkuQ3VzdG9tU291cmNlTGF5ZXIuVG9wbW9zdDp0aGlzLl90b3Btb3N0Q3VzdG9tU291cmNlcy5wdXNoKHMpO2JyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKGBVbmtub3duIGN1c3RvbSBzb3VyY2VzIGxheWVyICR7aX1gKX10aGlzLl9hbGxDdXN0b21Tb3VyY2VzLnB1c2gocyksdGhpcy5fY3VzdG9tU291cmNlc01hcC5zZXQoZSxzKSx0aGlzLmxpZ2h0VXBkYXRlKCl9cmVtb3ZlQ3VzdG9tU291cmNlKGUpe3RoaXMuX3JlbW92ZUN1c3RvbVNvdXJjZShlKSx0aGlzLmxpZ2h0VXBkYXRlKCl9aGFzQ3VzdG9tU291cmNlKGUpe3JldHVybiB0aGlzLl9jdXN0b21Tb3VyY2VzTWFwLmhhcyhlKX1jdXN0b21Tb3VyY2VGb3JOYW1lKGUpe3JldHVybiB0aGlzLl9jdXN0b21Tb3VyY2VzTWFwLmdldChlKXx8bnVsbH1jdXN0b21Tb3VyY2VOYW1lKGUpe2xldCB0PW51bGw7cmV0dXJuIHRoaXMuX2N1c3RvbVNvdXJjZXNNYXAuZm9yRWFjaCgoKGkscyk9PntpPT09ZSYmKHQ9cyl9KSksdH1jdXN0b21Tb3VyY2VzKGUpe3N3aXRjaChlKXtjYXNlIElpLkN1c3RvbVNvdXJjZUxheWVyLkJhY2tncm91bmQ6cmV0dXJuIHRoaXMuX2JnQ3VzdG9tU291cmNlcztjYXNlIElpLkN1c3RvbVNvdXJjZUxheWVyLkZvcmVncm91bmQ6cmV0dXJuIHRoaXMuX2ZnQ3VzdG9tU291cmNlcztjYXNlIElpLkN1c3RvbVNvdXJjZUxheWVyLlRvcG1vc3Q6cmV0dXJuIHRoaXMuX3RvcG1vc3RDdXN0b21Tb3VyY2VzO2RlZmF1bHQ6cmV0dXJuIHRoaXMuX2FsbEN1c3RvbVNvdXJjZXN9fWFkZE11bHRpUGFuZVNvdXJjZShlKXt0aGlzLl9tdWx0aVBhbmVTb3VyY2VzLnB1c2goZSksdGhpcy5fb25NdWx0aXBhbmVTb3VyY2VzQ29sbGVjdGlvbkNoYW5nZWQuZmlyZSgpLHRoaXMubGlnaHRVcGRhdGUoKX1yZW1vdmVNdWx0aVBhbmVTb3VyY2UoZSl7Y29uc3QgdD10aGlzLl9tdWx0aVBhbmVTb3VyY2VzLmluZGV4T2YoZSk7LTE9PT10P3d1LmxvZ1dhcm4oIkF0dGVtcHQgdG8gcmVtb3ZlIG11bHRpLXBhbmUgc291cmNlIHdoaWNoIGRvZXMgbm90IGV4aXN0IGluIHRoZSBtb2RlbCIpOih0aGlzLl9vbk11bHRpcGFuZVNvdXJjZXNDb2xsZWN0aW9uQ2hhbmdlZC5maXJlKCksdGhpcy5fbXVsdGlQYW5lU291cmNlcy5zcGxpY2UodCwxKSksdGhpcy5saWdodFVwZGF0ZSgpfW11bHRpUGFuZVNvdXJjZXMoZSl7cmV0dXJuIHRoaXMuX211bHRpUGFuZVNvdXJjZXMuZmlsdGVyKCh0PT4hZS5oYXNEYXRhU291cmNlKHQpKSl9b25NdWx0aXBhbmVTb3VyY2VzQ29sbGVjdGlvbkNoYW5nZWQoKXtyZXR1cm4gdGhpcy5fb25NdWx0aXBhbmVTb3VyY2VzQ29sbGVjdGlvbkNoYW5nZWR9cmVuZGVyZXJPcHRpb25zUHJvdmlkZXIoKXtyZXR1cm4gdGhpcy5fcmVuZGVyZXJPcHRpb25zUHJvdmlkZXJ9bWFnbmV0KCl7cmV0dXJuIHRoaXMuX21hZ25ldH1wcmljZUF4aXNSZW5kZXJlck9wdGlvbnMoKXtyZXR1cm4gdGhpcy5fcmVuZGVyZXJPcHRpb25zUHJvdmlkZXIub3B0aW9ucygpfXByaWNlU2NhbGVTbG90c0NvdW50KCl7bGV0IGU9MCx0PTA7dGhpcy5fcGFuZXMuZm9yRWFjaCgoaT0+e2U9TWF0aC5tYXgoaS5sZWZ0UHJpY2VTY2FsZXMoKS5sZW5ndGgsZSksdD1NYXRoLm1heChpLnJpZ2h0UHJpY2VTY2FsZXMoKS5sZW5ndGgsdCl9KSk7Y29uc3QgaT1lK3Q7aWYoSi5DaGVja01vYmlsZS5hbnkoKSl7Y29uc3QgZT0oMCxsLmVuc3VyZU5vdE51bGwpKHRoaXMucGFuZUZvclNvdXJjZSh0aGlzLm1haW5TZXJpZXMoKSkpLHQ9ZS5wcmljZVNjYWxlUG9zaXRpb24odGhpcy5tYWluU2VyaWVzKCkucHJpY2VTY2FsZSgpKQo7cmV0dXJuKCJvdmVybGF5Ij09PXQ/ZS5yaWdodFByaWNlU2NhbGVzKCkubGVuZ3RoPjA6InJpZ2h0Ij09PXQpP3tsZWZ0OjAscmlnaHQ6MSx0b3RhbGx5U2xvdHM6aX06e2xlZnQ6MSxyaWdodDowLHRvdGFsbHlTbG90czppfX1yZXR1cm57bGVmdDplLHJpZ2h0OnQsdG90YWxseVNsb3RzOml9fWRhdGVUaW1lRm9ybWF0dGVyKCl7cmV0dXJuIHRoaXMuX2RhdGVUaW1lRm9ybWF0dGVyfWRhdGVGb3JtYXR0ZXIoKXtyZXR1cm4gdGhpcy5fZGF0ZUZvcm1hdHRlcn10aW1lRm9ybWF0dGVyKCl7cmV0dXJuIHRoaXMuX3RpbWVGb3JtYXR0ZXJ9aXNVbm1lcmdlQXZhaWxhYmxlRm9yU291cmNlKGUpe2lmKCF0aGlzLl91bm1lcmdlQXZhaWxhYmxlKGUpKXJldHVybiExO3JldHVybigwLGwuZW5zdXJlTm90TnVsbCkodGhpcy5wYW5lRm9yU291cmNlKGUpKS5kYXRhU291cmNlcygpLmZpbHRlcih0aGlzLl91bm1lcmdlQXZhaWxhYmxlLHRoaXMpLmxlbmd0aD4xfWlzTWVyZ2VEb3duQXZhaWxhYmxlRm9yU291cmNlKGUpe2lmKCF0aGlzLl91bm1lcmdlQXZhaWxhYmxlKGUpKXJldHVybiExO2NvbnN0IHQ9dGhpcy5wYW5lRm9yU291cmNlKGUpLGk9dGhpcy5wYW5lcygpLmZpbHRlcigoZT0+ZS5tb2RlKCk9PT1NLlBhbmVNb2RlLlJlZ3VsYXIpKTtyZXR1cm4gdCE9PWlbaS5sZW5ndGgtMV19aXNNZXJnZVVwQXZhaWxhYmxlRm9yU291cmNlKGUpe2lmKCF0aGlzLl91bm1lcmdlQXZhaWxhYmxlKGUpKXJldHVybiExO3JldHVybiB0aGlzLnBhbmVGb3JTb3VyY2UoZSkhPT10aGlzLnBhbmVzKCkuZmlsdGVyKChlPT5lLm1vZGUoKT09PU0uUGFuZU1vZGUuUmVndWxhcikpWzBdfWlzUHJpY2VTY2FsZVZpc2libGUoZSl7Y29uc3QgdD1lLm1haW5Tb3VyY2UoKTtpZighdClyZXR1cm4hMTtjb25zdCBpPSgwLGwuZW5zdXJlTm90TnVsbCkodGhpcy5wYW5lRm9yU291cmNlKHQpKSxzPWkucHJpY2VTY2FsZVBvc2l0aW9uKGUpO2lmKCJvdmVybGF5Ij09PXMpcmV0dXJuITA7Y29uc3Qgbj1pLnByaWNlU2NhbGVJbmRleChlLHMpLHI9dGhpcy5wcmljZVNjYWxlU2xvdHNDb3VudCgpW3NdO3JldHVybiB2b2lkIDAhPT1uJiZuPHJ9Z2V0U3R1ZHlTaGlmdENvbG9yU3RhcnRPZmZzZXQoKXtyZXR1cm4gdGhpcy5fc3R1ZHlTaGlmdENvbG9yU3RhcnRPZmZzZXR9c2V0U3R1ZHlTaGlmdENvbG9yU3RhcnRPZmZzZXQoZSl7dGhpcy5fc3R1ZHlTaGlmdENvbG9yU3RhcnRPZmZzZXQ9ZX1zZXNzaW9ucygpe3JldHVybigwLGwuZW5zdXJlTm90TnVsbCkodGhpcy5fc2Vzc2lvbnMpfWNyZWF0ZVNlc3Npb25zKGUpe2lmKG51bGw9PT10aGlzLl9zZXNzaW9ucyl7Y29uc3QgdD1mdW5jdGlvbihlKXtjb25zdCB0PW5ldyBQYShlKTtyZXR1cm4oMCx5YS5hcHBseURlZmF1bHRzT3ZlcnJpZGVzKSh0LmNoaWxkcygpLnNlc3Npb25IaWdobGlnaHQsdm9pZCAwLCExLCJzZXNzaW9ucyIpLHQucmVtb3ZlRHVwbGljYXRlUHJvcGVydGllcygpLHR9KHRoaXMubWFpblNlcmllcygpLnN5bWJvbEluZm9XVigpLndlYWtSZWZlcmVuY2UoKSk7dGhpcy5fc2Vzc2lvbnM9bmV3IFRhKChhc3luYygpPT57Y29uc3Qgcz1hd2FpdCBQcm9taXNlLmFsbChbaS5lKDIxNzg0KSxpLmUoMzEwMDEpLGkuZSg4NjE3OCksaS5lKDkxOTQ0KSxpLmUoOTc1NTgpLGkuZSg2Njk4OCksaS5lKDk3MjcyKSxpLmUoOTI3MCksaS5lKDg0MjY1KSxpLmUoNTM1NSksaS5lKDEyMjI3KSxpLmUoNTk2NDkpLGkuZSg0NzUzOCldKS50aGVuKGkuYmluZChpLDcwNjI0OCkpO3JldHVybiB0aGlzLmFkZEN1c3RvbVNvdXJjZSgic2Vzc2lvbnMiLCgoaSxuKT0+e2NvbnN0IHI9bmV3IHMuU2Vzc2lvbnMoaSxuLHQsZSk7cmV0dXJuIHIuc3RhcnQoKSxyfSksSWkuQ3VzdG9tU291cmNlTGF5ZXIuQmFja2dyb3VuZCksdGhpcy5jdXN0b21Tb3VyY2VGb3JOYW1lKCJzZXNzaW9ucyIpfSkoKSx0aGlzLHQpfX1jcmVhdGVQcmVQb3N0TWFya2V0KGUpe3RoaXMuYWRkQ3VzdG9tU291cmNlKCJwcmVQb3N0TWFya2V0IiwoKHQsaSk9Pm5ldyBUaCh0LGksZSkpKX1jcmVhdGVJbmFjdGl2aXR5R2FwcygpezB9aW5hY3Rpdml0eUdhcHMoKXt0aHJvdyBuZXcgRXJyb3IoImluYWN0aXZpdHlfZ2FwcyBmZWF0dXJlc2V0IGlzIG5vdCBlbmFibGVkIil9c2V0SW5hY3Rpdml0eUdhcHNTZXNzaW9uKGUpeygwLGwuZW5zdXJlTm90TnVsbCkodGhpcy5jdXN0b21Tb3VyY2VGb3JOYW1lKCJpbmFjdGl2aXR5R2FwcyIpKS5zZXRTZXNzaW9uKGV8fCJzZXNzaW9uIil9d2F0ZXJtYXJrU291cmNlKCl7cmV0dXJuIHRoaXMuX3dhdGVybWFya1NvdXJjZX13YXRlcm1hcmtDb250ZW50UHJvdmlkZXIoKXtyZXR1cm4gbmV3IGguV2F0Y2hlZFZhbHVlKG51bGwpfXN0dWRpZXNDb2xvclJvdGF0b3JGYWN0b3J5KCl7cmV0dXJuIHRoaXMuX3N0dWR5Q29sb3JSb3RhdG9yRmFjdG9yeX1yZXBsYXlTdGF0dXMoKXtyZXR1cm4gdGhpcy5fcmVwbGF5U3RhdHVzfXNldFJlcGxheVN0YXR1cyhlKXt0aGlzLl9yZXBsYXlTdGF0dXMuc2V0VmFsdWUoZSl9aXNJblJlcGxheSgpe3JldHVybiB0aGlzLl9tYWluU2VyaWVzLmlzSW5SZXBsYXkoKX1nZXRTeW1ib2xTdHJpbmcoKXtyZXR1cm4gdGhpcy5fbWFpblNlcmllcy5nZXRTeW1ib2xTdHJpbmcoKX1pbnRlcnZhbCgpe3JldHVybiB0aGlzLl9tYWluU2VyaWVzLmludGVydmFsKCl9b25JblJlcGxheVN0YXRlQ2hhbmdlZCgpe3JldHVybiB0aGlzLl9tYWluU2VyaWVzLm9uSW5SZXBsYXlTdGF0ZUNoYW5nZWQoKX1zd2l0Y2hUb1JlcGxheShlLHQsaSl7dGhpcy5fbWFpblNlcmllcy5zd2l0Y2hUb1JlcGxheShlLHQsaSl9c3dpdGNoVG9SZWFsdGltZSgpe3RoaXMuX21haW5TZXJpZXMuc3dpdGNoVG9SZWFsdGltZSgpLHRoaXMuX3RpbWVTY2FsZS5yZXNldFJpZ2h0T2Zmc2V0KCksdGhpcy5zZXRSZXBsYXlTdGF0dXMoMCksdGhpcy5fc2Nyb2xsaW5nU3RhdGUmJih0aGlzLl9zY3JvbGxpbmdTdGF0ZS5kZWZlcnJlZC5yZWplY3QoKSx0aGlzLl9zY3JvbGxpbmdTdGF0ZT1udWxsKX1jYW5DaGFuZ2VSZXNvbHV0aW9uKGUpe3JldHVybiB0aGlzLl9tYWluU2VyaWVzLmNhbkNoYW5nZVJlc29sdXRpb24oZSl9CmNhbkNoYW5nZVN5bWJvbChlKXtyZXR1cm4gdGhpcy5fbWFpblNlcmllcy5jYW5DaGFuZ2VTeW1ib2woZSl9b25SZXBsYXlNb2RpZmllZCgpe3JldHVybiB0aGlzLl9tYWluU2VyaWVzLm9uUmVwbGF5TW9kaWZpZWQoKX1tYWluU2VyaWVzU2NhbGVSYXRpb1Byb3BlcnR5KCl7cmV0dXJuIHRoaXMuX21haW5TZXJpZXNTY2FsZVJhdGlvUHJvcGVydHl9bWFpblNlcmllc1NjYWxlUmF0aW9Qcm9wZXJ0eU9uQ2hhbmdlZCgpe3RoaXMuX21haW5TZXJpZXNTY2FsZVJhdGlvUHJvcGVydHkuZmlyZUNoYW5nZWQoKX1nZXRUaGVtZU5hbWVJZlN0ZFRoZW1lKCl7Y29uc3QgZT10aGlzLnNlc3Npb25zKCkucHJvcGVydGllcygpLHQ9dGhpcy5wcm9wZXJ0aWVzKCksaT10aGlzLm1haW5TZXJpZXMoKS5wcm9wZXJ0aWVzKCk7cmV0dXJuIGUuYWxsVGhlbWVQcm9wZXJ0aWVzQXJlRGVmYXVsdChKby5TdGRUaGVtZS5MaWdodCkmJnQuYWxsVGhlbWVQcm9wZXJ0aWVzQXJlRGVmYXVsdChKby5TdGRUaGVtZS5MaWdodCkmJmkuYWxsVGhlbWVQcm9wZXJ0aWVzQXJlRGVmYXVsdChKby5TdGRUaGVtZS5MaWdodCk/Sm8uU3RkVGhlbWUuTGlnaHQ6ZS5hbGxUaGVtZVByb3BlcnRpZXNBcmVEZWZhdWx0KEpvLlN0ZFRoZW1lLkRhcmspJiZ0LmFsbFRoZW1lUHJvcGVydGllc0FyZURlZmF1bHQoSm8uU3RkVGhlbWUuRGFyaykmJmkuYWxsVGhlbWVQcm9wZXJ0aWVzQXJlRGVmYXVsdChKby5TdGRUaGVtZS5EYXJrKT9Kby5TdGRUaGVtZS5EYXJrOm51bGx9dGhlbWUoKXtyZXR1cm57Y2hhcnRQcm9wZXJ0aWVzOnRoaXMucHJvcGVydGllcygpLnRoZW1lU3RhdGUoKSxzZXNzaW9uczp0aGlzLnNlc3Npb25zKCkucHJvcGVydGllcygpLnRoZW1lU3RhdGUoKSxtYWluU291cmNlUHJvcGVydGllczp0aGlzLm1haW5TZXJpZXMoKS5wcm9wZXJ0aWVzKCkudGhlbWVTdGF0ZSgpLHZlcnNpb246dGhpcy52ZXJzaW9uKCl9fXRlbXBsYXRlKCl7cmV0dXJue2NoYXJ0UHJvcGVydGllczp0aGlzLnByb3BlcnRpZXMoKS50ZW1wbGF0ZSgpLHNlc3Npb25zOnRoaXMuc2Vzc2lvbnMoKS5wcm9wZXJ0aWVzKCkudGVtcGxhdGUoKSxtYWluU291cmNlUHJvcGVydGllczp0aGlzLm1haW5TZXJpZXMoKS5wcm9wZXJ0aWVzKCkudGVtcGxhdGUoKSx2ZXJzaW9uOnRoaXMudmVyc2lvbigpfX1vbkNoYXJ0VGhlbWVMb2FkZWQoKXtyZXR1cm4gdGhpcy5fY2hhcnRUaGVtZUxvYWRlZH1jaGFydFRoZW1lTG9hZGVkKCl7dGhpcy5fY2hhcnRUaGVtZUxvYWRlZC5maXJlKCl9YXN5bmMgY29sb3JTdHVkaWVzUHJvcGVydGllc1JlYWR5KCl7dGhpcy5fcmVjYWxjQ29sb3JTdHVkaWVzSW1wbCh0aGlzLl9yZWNhbGNWUlN0dWRpZXNQYXJhbXMpO2NvbnN0IGU9dGhpcy5hbGxTdHVkaWVzKCEwKS5maWx0ZXIoKGU9PmUubWV0YUluZm8oKS5pbnB1dHMuZmlsdGVyKE50LmlzU3R1ZHlJbnB1dERlcGVuZHNPbkNoYXJ0Q29sb3JzKS5sZW5ndGg+MCkpO2F3YWl0IFByb21pc2UuYWxsKGUubWFwKChlPT5lLnByb3BlcnRpZXNQYXRjaGVkKCkpKSl9c3RhdGUoZSl7Y29uc3R7d2l0aERhdGE6dCxza2lwTGluZVRvb2xzRnJvbU90aGVyU3ltYm9sczppLHNraXBMaW5lVG9vbHM6c309ZSxuPXRoaXMucHVibGlzaGVkQ2hhcnRzVGltZWxpbmVTb3VyY2UoKSxyPXRoaXMucHJvcGVydGllcygpLmNoaWxkcygpLG89ci50cmFkaW5nUHJvcGVydGllcy5zdGF0ZSgpLGE9e3BhbmVzOnRoaXMuX3BhbmVzLm1hcCgodD0+dC5zdGF0ZSh7Li4uZSxpbmNsdWRlU291cmNlczohMH0pKSksdGltZVNjYWxlOnRoaXMuX3RpbWVTY2FsZS5zdGF0ZSh0KSxjaGFydFByb3BlcnRpZXM6e3BhbmVQcm9wZXJ0aWVzOnIucGFuZVByb3BlcnRpZXMuc3RhdGUoKSxzY2FsZXNQcm9wZXJ0aWVzOnIuc2NhbGVzUHJvcGVydGllcy5zdGF0ZSgpLHB1Ymxpc2hlZENoYXJ0c1RpbWVsaW5lUHJvcGVydGllczpuP24uc3RhdGUodCk6dm9pZCAwLGNoYXJ0RXZlbnRzU291cmNlUHJvcGVydGllczpyLmNoYXJ0RXZlbnRzU291cmNlUHJvcGVydGllcz8uc3RhdGUoKSx0cmFkaW5nUHJvcGVydGllczpvLHByaWNlU2NhbGVTZWxlY3Rpb25TdHJhdGVneU5hbWU6ci5wcmljZVNjYWxlU2VsZWN0aW9uU3RyYXRlZ3lOYW1lLnZhbHVlKCksaW5hY3Rpdml0eUdhcHM6ci5pbmFjdGl2aXR5R2Fwcy52YWx1ZSgpfSxzZXNzaW9uczp0aGlzLnNlc3Npb25zKCkuc3RhdGUodCksdmVyc2lvbjp0aGlzLnZlcnNpb24oKSx0aW1lem9uZTp0aGlzLnRpbWV6b25lKCksc2hvdWxkQmVTYXZlZEV2ZW5JZkhpZGRlbjp0aGlzLl9zaG91bGRCZVNhdmVkRXZlbklmSGlkZGVuLGxpbmtpbmdHcm91cDp0aGlzLl9saW5raW5nR3JvdXBJbmRleC52YWx1ZSgpfTtyZXR1cm4gc3x8KGEubGluZVRvb2xzR3JvdXBzPXRoaXMubGluZVRvb2xzR3JvdXBNb2RlbCgpLnN0YXRlKGkpKSxhfWlzSW5SZXN0b3JlU3RhdGUoKXtyZXR1cm4gdGhpcy5fcmVzdG9yaW5nU3RhdGV9cmVzdG9yZVN0YXRlKGUsdCxpKXtLbC5EZWZlcnJlZFN0dWRpZXMuaW5zdGFuY2UodGhpcykucmVzZXQoKTtjb25zdCBzPXt9O2lmKCFlLnBhbmVzKXJldHVybiB2b2lkIHd1LmxvZ0RlYnVnKCJDaGFydE1vZGVsLnJlc3RvcmVTdGF0ZTogaW52YWxpZCBzdGF0ZSIpO2lmKCFBcnJheS5pc0FycmF5KGUucGFuZXMpKXJldHVybiB2b2lkIHd1LmxvZ0RlYnVnKCJDaGFydE1vZGVsLnJlc3RvcmVTdGF0ZTogaW52YWxpZCBzdGF0ZSIpO2lmKGUucGFuZXMubGVuZ3RoPDEpcmV0dXJuIHZvaWQgd3UubG9nRGVidWcoIkNoYXJ0TW9kZWwucmVzdG9yZVN0YXRlOiBpbnZhbGlkIHN0YXRlIik7dGhpcy5fcmVzdG9yaW5nU3RhdGU9ITA7Zm9yKGNvbnN0IGUgb2YgdGhpcy5fYmFyc01hcmtzU291cmNlcyl0aGlzLmRldGFjaFNvdXJjZShlKTtpZih0aGlzLl9zaG91bGRCZVNhdmVkRXZlbklmSGlkZGVuPWUuc2hvdWxkQmVTYXZlZEV2ZW5JZkhpZGRlbj8/ITAsZS5jaGFydFByb3BlcnRpZXMmJiFlLmNoYXJ0UHJvcGVydGllcy50aW1lem9uZSYmKGUuY2hhcnRQcm9wZXJ0aWVzLnRpbWV6b25lPWUudGltZXpvbmUpLGUuY2hhcnRQcm9wZXJ0aWVzKXtjb25zdCBpPSgwLAokbC5mYWN0b3J5RGVmYXVsdHMpKCJjaGFydHByb3BlcnRpZXMiKS5zY2FsZXNQcm9wZXJ0aWVzOygwLGEubWVyZ2UpKGksZS5jaGFydFByb3BlcnRpZXMuc2NhbGVzUHJvcGVydGllcyksISgic2hvd0xhc3RWYWx1ZSJpbiBpKXx8InNob3dTZXJpZXNMYXN0VmFsdWUiaW4gaXx8InNob3dTdHVkeUxhc3RWYWx1ZSJpbiBpfHwoaS5zaG93U2VyaWVzTGFzdFZhbHVlUHJvcGVydHk9aS5zaG93TGFzdFZhbHVlLGkuc2hvd1N0dWR5TGFzdFZhbHVlUHJvcGVydHk9aS5zaG93TGFzdFZhbHVlKSwic2hvd1Nlcmllc0xhc3RWYWx1ZSJpbiBpJiYocy5zaG93U2VyaWVzTGFzdFZhbHVlUHJvcGVydHk9ITApLCJzaG93U3R1ZHlMYXN0VmFsdWUiaW4gaSYmKHMuc2hvd1N0dWR5TGFzdFZhbHVlUHJvcGVydHk9ITApLCghdGhpcy5pc1NuYXBzaG90KCkmJiF0aGlzLnJlYWRPbmx5KCkmJiJzaG93Q3VycmVuY3kiaW4gaXx8InNob3dVbml0ImluIGkpJiYoKDAscnMubWlncmF0ZVNob3dDdXJyZW5jeUFuZFNob3dVbml0UHJvcGVydGllcykoaS5zaG93Q3VycmVuY3ksaS5zaG93VW5pdCksZGVsZXRlIGkuc2hvd0N1cnJlbmN5LGRlbGV0ZSBpLnNob3dVbml0KTt7Y29uc3QgdD1lLmNoYXJ0UHJvcGVydGllcy5wYW5lUHJvcGVydGllcztYaCh0KSwiYmFja2dyb3VuZFR5cGUiaW4gdHx8KHQuYmFja2dyb3VuZFR5cGU9cGkuQ29sb3JUeXBlLlNvbGlkKSwic2VwYXJhdG9yQ29sb3IiaW4gdHx8KHQuc2VwYXJhdG9yQ29sb3I9KDAsay5nZXRUaGVtZWRDb2xvcikoImNvbG9yLWNoYXJ0LXBhZ2UtYmciKSksdGhpcy5fcHJvcGVydGllcy5jaGlsZHMoKS5wYW5lUHJvcGVydGllcy5tZXJnZUFuZEZpcmUodCl9dGhpcy5fcHJvcGVydGllcy5jaGlsZHMoKS5zY2FsZXNQcm9wZXJ0aWVzLm1lcmdlQW5kRmlyZShpKSxlLmNoYXJ0UHJvcGVydGllcy50aW1lem9uZSYmdGhpcy5fcHJvcGVydGllcy5jaGlsZHMoKS50aW1lem9uZS5zZXRWYWx1ZShlLmNoYXJ0UHJvcGVydGllcy50aW1lem9uZSksZS5jaGFydFByb3BlcnRpZXMuY2hhcnRFdmVudHNTb3VyY2VQcm9wZXJ0aWVzJiZ0aGlzLl9wcm9wZXJ0aWVzLmhhc0NoaWxkKCJjaGFydEV2ZW50c1NvdXJjZVByb3BlcnRpZXMiKSYmdGhpcy5fcHJvcGVydGllcy5jaGlsZHMoKS5jaGFydEV2ZW50c1NvdXJjZVByb3BlcnRpZXMubWVyZ2VBbmRGaXJlKGUuY2hhcnRQcm9wZXJ0aWVzLmNoYXJ0RXZlbnRzU291cmNlUHJvcGVydGllcyksZS5jaGFydFByb3BlcnRpZXMudHJhZGluZ1Byb3BlcnRpZXMmJnRoaXMuX3Byb3BlcnRpZXMuaGFzQ2hpbGQoInRyYWRpbmdQcm9wZXJ0aWVzIikmJih2b2lkIDA9PT1lLmNoYXJ0UHJvcGVydGllcy50cmFkaW5nUHJvcGVydGllcy5ob3Jpem9udGFsQWxpZ25tZW50JiYoZS5jaGFydFByb3BlcnRpZXMudHJhZGluZ1Byb3BlcnRpZXMuaG9yaXpvbnRhbEFsaWdubWVudD0obj1lLmNoYXJ0UHJvcGVydGllcy50cmFkaW5nUHJvcGVydGllcy5saW5lTGVuZ3RoKTw9NDA/SWkuVHJhZGVkR3JvdXBIb3Jpem9udGFsQWxpZ25tZW50LlJpZ2h0Om4+PTYwP0lpLlRyYWRlZEdyb3VwSG9yaXpvbnRhbEFsaWdubWVudC5MZWZ0OklpLlRyYWRlZEdyb3VwSG9yaXpvbnRhbEFsaWdubWVudC5DZW50ZXIpLHRoaXMuX3Byb3BlcnRpZXMuY2hpbGRzKCkudHJhZGluZ1Byb3BlcnRpZXMubWVyZ2VBbmRGaXJlKGUuY2hhcnRQcm9wZXJ0aWVzLnRyYWRpbmdQcm9wZXJ0aWVzKSksdGhpcy5fdGltZVNjYWxlLnJlc3RvcmVTdGF0ZShlLnRpbWVTY2FsZSx0KSx0aGlzLl91cGRhdGVEYXRlVGltZUZvcm1hdHRlcigpfXZhciBuO2lmKGUudGltZVNjYWxlJiZ0aGlzLl90aW1lU2NhbGUucmVzdG9yZVN0YXRlKGUudGltZVNjYWxlLHQpLCF0aGlzLnJlYWRPbmx5KCkpe2NvbnN0IHQ9dGhpcy5fZ2V0RXhjZWVkaW5nQ2hpbGRTdHVkaWVzKGUucGFuZXMpO2lmKHQubGVuZ3RoKXtmb3IobGV0IGk9ZS5wYW5lcy5sZW5ndGgtMTtpPj0wOy0taSl7Y29uc3Qgcz1lLnBhbmVzW2ldO2ZvcihsZXQgZT1zLnNvdXJjZXMubGVuZ3RoLTE7ZT49MDstLWUpe2NvbnN0IGk9cy5zb3VyY2VzW2VdO350LmluZGV4T2YoaSkmJnMuc291cmNlcy5zcGxpY2UoZSwxKX1zLnNvdXJjZXMubGVuZ3RofHxzLm1vZGUhPT1NLlBhbmVNb2RlLlJlZ3VsYXJ8fGUucGFuZXMuc3BsaWNlKGksMSl9e2NvbnN0IGU9d2luZG93LnVzZXIucHJvX3BsYW4sdD0icHJvX3ByZW1pdW1fZXhwZXJ0Ij09PWV8fCJwcm9fcHJlbWl1bV9leHBlcnRfdHJpYWwiPT09ZTtzZXRUaW1lb3V0KCgoKT0+KDAsd2Uub3BlblBheXdhbGwpKHtmZWF0dXJlOiJzdHVkeU9uU3R1ZHkiLGlzTWF4UGxhbjp0fSkpLDUwMCl9fX1jb25zdCByPWUudmVyc2lvbnx8MCxvPWUucGFuZXM7bGV0IGM9Il9zZXJpZXNJZCIsaD0xO2Zvcihjb25zdCBlIG9mIG8pe2NvbnN0IHQ9ZS5zb3VyY2VzLmZpbmQoKGU9PiJNYWluU2VyaWVzIj09PWUudHlwZSkpO2lmKHQpe2M9dC5pZCx0LnN0YXRlJiYoaD10LnN0YXRlLnN0eWxlKTticmVha319Y29uc3QgZD0hMCx1PW9bMF07dGhpcy5wYW5lcygpWzBdLnJlc3RvcmVTdGF0ZSh7c3RhdGU6dSx3aXRoRGF0YTp0LHZlcnNpb246cixzZXJpZXNJZDpjLHNldHRpbmdzTWlncmF0aW9uOnMsY29udGVudE92ZXJyaWRlczppLHJlc3RvcmVTaWxlbnRseTpkLHJlYXNvbjoyLHRhcmdldFNlcmllc1N0eWxlOmh9KSx0aGlzLnBhbmVzKClbMF0ubWFpbkRhdGFTb3VyY2UoKXx8dGhpcy5yZW1vdmVQYW5lKHRoaXMucGFuZXMoKVswXSk7bGV0IHA9MTtmb3IobGV0IG49MTtuPGUucGFuZXMubGVuZ3RoO24rKyl7Y29uc3Qgbz1lLnBhbmVzW25dO2lmKDA9PT1vLnNvdXJjZXMubGVuZ3RoJiYoby5tb2RlPz9NLlBhbmVNb2RlLlJlZ3VsYXIpPT09TS5QYW5lTW9kZS5SZWd1bGFyKXt3dS5sb2dXYXJuKCJFbXB0eSBwYW5lIGRldGVjdGVkIC0gcmVzdG9yaW5nIGlzIHNraXBwZWQuIGlkeD0iK24rIiwgc3RhdGU9IitKU09OLnN0cmluZ2lmeShvKSk7Y29udGludWV9Y29uc3QgYT10aGlzLnBhbmVzKClbcF18fHRoaXMuY3JlYXRlUGFuZSgpO2EucmVzdG9yZVN0YXRlKHtzdGF0ZTpvLHdpdGhEYXRhOnQsdmVyc2lvbjpyLHNlcmllc0lkOmMsCnNldHRpbmdzTWlncmF0aW9uOnMsY29udGVudE92ZXJyaWRlczppLHJlc3RvcmVTaWxlbnRseTpkLHJlYXNvbjoyLHRhcmdldFNlcmllc1N0eWxlOmh9KSxhLm1haW5EYXRhU291cmNlKCl8fGEubW9kZSgpIT09TS5QYW5lTW9kZS5SZWd1bGFyP3ArPTE6dGhpcy5yZW1vdmVQYW5lKGEpfWlmKHUuaXNDb2xsYXBzZWQmJnRoaXMuX3BhbmVzWzBdLmNvbGxhcHNlZCgpLnNldFZhbHVlKCEwKSxlLmNoYXJ0UHJvcGVydGllcyYmZS5jaGFydFByb3BlcnRpZXMucHVibGlzaGVkQ2hhcnRzVGltZWxpbmVQcm9wZXJ0aWVzKXtjb25zdCBpPXRoaXMucHVibGlzaGVkQ2hhcnRzVGltZWxpbmVTb3VyY2UoKTtpJiZpLnJlc3RvcmVEYXRhKGUuY2hhcnRQcm9wZXJ0aWVzLnB1Ymxpc2hlZENoYXJ0c1RpbWVsaW5lUHJvcGVydGllcyx0KX10aGlzLl9pbnZhbGlkYXRlQmFyQ29sb3JlckNhY2hlcygpO2NvbnN0IF89dGhpcy5kYXRhU291cmNlcygpO2xldCBtPTA7Zm9yKGxldCBlPTA7ZTxfLmxlbmd0aDtlKyspe2NvbnN0IHQ9X1tlXTsoMCxyaS5pc0xpbmVUb29sKSh0KSYmKG0rKyx0LmNhbGNJc0FjdHVhbFN5bWJvbCgpKX10aGlzLnVwZGF0ZVRpbWVTY2FsZUJhc2VJbmRleCgpLHRoaXMucmVjYWxjdWxhdGVBbGxQYW5lcygoMCx0bi5nbG9iYWxDaGFuZ2VFdmVudCkoKSksdGhpcy5mdWxsVXBkYXRlKCksdGhpcy5zeW5jTG9sbGlwb3BTb3VyY2VzKCk7Y29uc3QgZz0oMCxsLmVuc3VyZU5vdE51bGwpKHRoaXMubWFpblBhbmUoKSk7Zm9yKGNvbnN0IGUgb2YgdGhpcy5fYmFyc01hcmtzU291cmNlcyl0aGlzLmRldGFjaFNvdXJjZShlKSxnLmFkZERhdGFTb3VyY2UoZSx0aGlzLl9tYWluU2VyaWVzLnByaWNlU2NhbGUoKSwhMCk7bGV0IGY9UW8uVFZMb2NhbFN0b3JhZ2UuZ2V0SXRlbSgibGluZXRvb2xzX2xpbWl0Iil8fDFlMztyZXR1cm4gd2luZG93LmlzX2F1dGhlbnRpY2F0ZWQmJndpbmRvdy51c2VyJiZ3aW5kb3cudXNlci5zZXR0aW5ncyYmKGY9d2luZG93LnVzZXIuc2V0dGluZ3MubGluZXRvb2xzX2xpbWl0fHxmKSxlLnNlc3Npb25zJiZ0aGlzLnNlc3Npb25zKCkucmVzdG9yZVN0YXRlKGUuc2Vzc2lvbnMsdCksZS5saW5lVG9vbHNHcm91cHMmJnRoaXMucmVzdG9yZUxpbmVUb29sc0dyb3VwcyhlLmxpbmVUb29sc0dyb3VwcyksbT5mJiZtJTEwMD09MD97bGluZXNfbGltaXRfZXhjZWVkZWQ6ITAsbGluZV90b29sc19jb3VudDptfToodGhpcy5wYW5lcygpLmZvckVhY2goKGU9PnRoaXMuX2RhdGFTb3VyY2VDb2xsZWN0aW9uQ2hhbmdlZC5maXJlKGUpKSksdGhpcy5fbGluZVRvb2xzR3JvdXBNb2RlbC5maXJlQ2hhbmdlZEFsbCgpLHRoaXMuX2xpbmtpbmdHcm91cEluZGV4LnNldFZhbHVlKGUubGlua2luZ0dyb3VwPz9udWxsKSx0aGlzLl9yZXN0b3JpbmdTdGF0ZT0hMSx7fSl9c2hvdWxkQmVTYXZlZEV2ZW5JZkhpZGRlbigpe3JldHVybiB0aGlzLl9zaG91bGRCZVNhdmVkRXZlbklmSGlkZGVufXNldFNob3VsZEJlU2F2ZWRFdmVuSWZIaWRkZW4oZSl7dGhpcy5fc2hvdWxkQmVTYXZlZEV2ZW5JZkhpZGRlbj1lfWV4dGVybmFsVGltZVN0YW1wKGUpe2NvbnN0IHQ9dGhpcy5tYWluU2VyaWVzKCkuc3luY01vZGVsKCk7cmV0dXJuIHRoaXMudGltZVNjYWxlKCkucG9pbnRzKCkucm91Z2hUaW1lKGUsdCYmdC5wcm9qZWN0VGltZS5iaW5kKHQpKX1zeW5jTG9sbGlwb3BTb3VyY2VzKCl7dGhpcy5fbG9sbGlwb3BTb3VyY2VzV2F0Y2hlckxvYWRlcj8uY2FsbEZ1bmN0aW9uKCgoKT0+e251bGwhPT10aGlzLl9sb2xsaXBvcFNvdXJjZXNXYXRjaGVyJiZ0aGlzLl9sb2xsaXBvcFNvdXJjZXNXYXRjaGVyLnN5bmNTb3VyY2VzKCl9KSl9cmVzdG9yZUNoYXJ0RXZlbnRzKGUpe3RoaXMuX2xvbGxpcG9wU291cmNlc1dhdGNoZXJMb2FkZXI/LmNhbGxGdW5jdGlvbigoKCk9PntudWxsIT09dGhpcy5fbG9sbGlwb3BTb3VyY2VzV2F0Y2hlciYmdGhpcy5fb3B0aW9ucy5jaGFydEV2ZW50c0VuYWJsZWQmJnRoaXMuX2xvbGxpcG9wU291cmNlc1dhdGNoZXIucmVzdG9yZUNoYXJ0RXZlbnRzKGUpfSkpfXJlY2FsY1Zpc2libGVSYW5nZVN0dWRpZXMoZSl7aWYodGhpcy5fcmVjYWxjVlJTdHVkaWVzUGFyYW1zLnJlYXNvbnMuYWRkKGUpLHRoaXMuX21haW5TZXJpZXMuaXNTdGFydGVkKCkmJnRoaXMuX21haW5TZXJpZXMuaXNDb21wbGV0ZWQoKSl7Y29uc3QgdD0oMCxsLmVuc3VyZURlZmluZWQpKEl1LmdldChlKSkuYWRhcHRlcixpPU1hdGgubWluKC4uLkFycmF5LmZyb20odGhpcy5fcmVjYWxjVlJTdHVkaWVzUGFyYW1zLnJlYXNvbnMpLm1hcCgoZT0+KDAsbC5lbnN1cmVEZWZpbmVkKShJdS5nZXQoZSkpKSkuZmlsdGVyKChlPT5lLmFkYXB0ZXI9PT10KSkubWFwKChlPT5lLnRpbWVvdXQpKSk7KDAsbC5lbnN1cmVEZWZpbmVkKSh0aGlzLl9yZWNhbGNWaXNpYmxlUmFuZ2VTdHVkaWVzSW1wbERlYm91bmNlZEJ5QWRhcHRlci5nZXQodCk/LmdldChpKSkoKX1lbHNlIHRoaXMuX3JlY2FsY1Zpc2libGVSYW5nZVN0dWRpZXNJbXBsKHRoaXMuX3JlY2FsY1ZSU3R1ZGllc1BhcmFtcyl9cmVjYWxjQ29sb3JTdHVkaWVzKGUpe3RoaXMuX3JlY2FsY0NvbG9yU3R1ZGllc1BhcmFtcy5mb3JjZT10aGlzLl9yZWNhbGNDb2xvclN0dWRpZXNQYXJhbXMuZm9yY2V8fEJvb2xlYW4oZSksdGhpcy5fcmVjYWxjQ29sb3JTdHVkaWVzSW1wbERlYm91bmNlZCgpfXJlY2FsY1N0dWR5QmFzZWRMaW5lVG9vbHMoKXt0aGlzLmRhdGFTb3VyY2VzKCkuZm9yRWFjaCgoZT0+eygwLG9pLmlzU3R1ZHlMaW5lVG9vbCkoZSkmJmUucmVjYWxjU3R1ZHlJZk5lZWRlZCgpfSkpfWFsZXJ0c1dhdGNoZXIoKXtyZXR1cm4gdGhpcy5fYWxlcnRzV2F0Y2hlcn1hbGVydHNDb2xsZWN0aW9uKCl7cmV0dXJuIHRoaXMuX2FsZXJ0c0NvbGxlY3Rpb24ucmVhZG9ubHkoKX1zaG93TGVnZW5kKCl7cmV0dXJuIHRoaXMuX3Nob3dMZWdlbmRQcm9wZXJ0eX1pZCgpe3JldHVybiB0aGlzLl9pZH1zZWxlY3RQb2ludE1vZGUoKXtyZXR1cm4gdGhpcy5fY3Jvc3NIYWlyU2VsZWN0UG9pbnRNb2RlfWNhbmNlbFJlcXVlc3RTZWxlY3RQb2ludCgpewp0aGlzLl9jcm9zc0hhaXJTb3VyY2UuY2FuY2VsUmVxdWVzdFNlbGVjdFBvaW50KCl9cmVxdWVzdFNlbGVjdFBvaW50KGUpe3JldHVybiB0aGlzLl9jcm9zc0hhaXJTb3VyY2UucmVxdWVzdFNlbGVjdFBvaW50KGUpfW9uUG9pbnRTZWxlY3RlZCgpe3JldHVybiB0aGlzLl9jcm9zc0hhaXJTb3VyY2Uub25Qb2ludFNlbGVjdGVkKCl9cmVjYWxjdWxhdGVQcmljZVJhbmdlT25jZSgpe2NvbnN0IGU9dGhpcy5tYWluU2VyaWVzKCk7Zm9yKGNvbnN0IHQgb2YgdGhpcy5fcGFuZXMpZm9yKGNvbnN0IGkgb2YgdC5wcmljZURhdGFTb3VyY2VzKCkpaS5zeW1ib2xTb3VyY2UoKT09PWUmJmkuZGlzYWJsZVByaWNlUmFuZ2VSZWFkeSgpfWludmFsaWRhdGUoZSl7dGhpcy5faW52YWxpZGF0ZUhhbmRsZXI/LihlKX1hcHBsaWVkVGltZUZyYW1lKCl7cmV0dXJuIHRoaXMuX2FwcGxpZWRUaW1lRnJhbWUuYXBwbGllZFRpbWVGcmFtZSgpfWJhcnNNYXJrc1NvdXJjZXMoKXtyZXR1cm4gdGhpcy5fYmFyc01hcmtzU291cmNlc31jcmVhdGVTeW5jUG9pbnQoZSx0KXtyZXR1cm4oMCxsdS5nZXREZWZhdWx0MkxhenkpKHRoaXMuX3N5bmNQb2ludENhY2hlLGUudW5pcXVlSWQsdC51bmlxdWVJZCwoKCk9Pm5ldyBhaChlLHQpKSl9aXNBdXRvU2F2ZUVuYWJsZWQoKXtyZXR1cm4gdGhpcy5faXNBdXRvU2F2ZUVuYWJsZWR9bGlua2luZ0dyb3VwSW5kZXgoKXtyZXR1cm4gdGhpcy5fbGlua2luZ0dyb3VwSW5kZXh9c3R1ZHlBd2FyZURlZmF1bHRSaWdodE9mZnNldCgpe3JldHVybiB0aGlzLl90aW1lU2NhbGUudXNlUGVyY2VudGFnZVJpZ2h0T2Zmc2V0KCkudmFsdWUoKT90aGlzLl90aW1lU2NhbGUucGVyY2VudHNUb0JhckluZGV4TGVuZ3RoKHRoaXMuc3R1ZHlBd2FyZURlZmF1bHRSaWdodE9mZnNldFBlcmNlbnRhZ2UoKSk6TWF0aC5tYXgodGhpcy5fdGltZVNjYWxlLmRlZmF1bHRSaWdodE9mZnNldCgpLnZhbHVlKCksdGhpcy5fY2FjaGVkU3R1ZGllc01heE9mZnNldCl9c3R1ZHlBd2FyZURlZmF1bHRSaWdodE9mZnNldFBlcmNlbnRhZ2UoKXtyZXR1cm4gdGhpcy5fdGltZVNjYWxlLnVzZVBlcmNlbnRhZ2VSaWdodE9mZnNldCgpLnZhbHVlKCk/TWF0aC5tYXgodGhpcy5fdGltZVNjYWxlLmRlZmF1bHRSaWdodE9mZnNldFBlcmNlbnRhZ2UoKS52YWx1ZSgpLHRoaXMuX3RpbWVTY2FsZS5iYXJJbmRleExlbmd0aFRvUGVyY2VudHModGhpcy5fY2FjaGVkU3R1ZGllc01heE9mZnNldCkpOnRoaXMuX3RpbWVTY2FsZS5iYXJJbmRleExlbmd0aFRvUGVyY2VudHModGhpcy5zdHVkeUF3YXJlRGVmYXVsdFJpZ2h0T2Zmc2V0KCkpfWNsZWFyQWxsU3R1ZGllcygpe3RoaXMuZGF0YVNvdXJjZXMoKS5mb3JFYWNoKChlPT5lLmNsZWFyRGF0YT8uKCkpKX1zZXRUaW1lU2NhbGVBbmltYXRpb24oZSx0KXtjb25zdCBpPUxlLkludmFsaWRhdGlvbk1hc2subGlnaHQoKSxzPXRoaXMuX3RpbWVTY2FsZTtpLnNldFRpbWVTY2FsZUFuaW1hdGlvbihlLHQ/P3Mud2lkdGgoKS1zLmluZGV4VG9Db29yZGluYXRlKHMuYmFzZUluZGV4KCkpKSx0aGlzLmludmFsaWRhdGUoaSl9c3RvcFRpbWVTY2FsZUFuaW1hdGlvbigpe3RoaXMuX3RpbWVTY2FsZS5lbmRTY3JvbGwoKTtjb25zdCBlPUxlLkludmFsaWRhdGlvbk1hc2subGlnaHQoKTtlLnN0b3BUaW1lU2NhbGVBbmltYXRpb24oKSx0aGlzLmludmFsaWRhdGUoZSl9bG9sbGlwb3BTb3VyY2VzT3B0aW9ucygpe2NvbnN0IGU9dGhpcy5fb3B0aW9ucztyZXR1cm57Y2hhcnRFdmVudHNFbmFibGVkOiF0aGlzLl9vcHRpb25zLmlzU25hcHNob3QmJnRoaXMuX29wdGlvbnMuY2hhcnRFdmVudHNFbmFibGVkLGVzZEVuYWJsZWQ6ZS5lc2RFbmFibGVkLG5ld3NOb3RpZmljYXRpb25zRW5hYmxlZDplLm5ld3NOb3RpZmljYXRpb25zRW5hYmxlZCxjb250aW51b3VzQ29udHJhY3RTd2l0Y2hlc0VuYWJsZWQ6ZS5jb250aW51b3VzQ29udHJhY3RTd2l0Y2hlc0VuYWJsZWQsZnV0dXJlc0NvbnRyYWN0RXhwaXJhdGlvbkVuYWJsZWQ6ZS5mdXR1cmVzQ29udHJhY3RFeHBpcmF0aW9uRW5hYmxlZCxsYXRlc3RVcGRhdGVzRW5hYmxlZDplLmxhdGVzdFVwZGF0ZXNFbmFibGVkfX1vblN5bWJvbEludGVydmFsQ2hhbmdlZCgpe3JldHVybiB0aGlzLl9zeW1ib2xJbnRlcnZhbENoYW5nZWR9c2V0UHJpY2VBdXRvU2NhbGUoZSx0LGkpe2Uuc2V0UHJpY2VBdXRvU2NhbGUodCxpKSx0aGlzLmludmFsaWRhdGUodGhpcy5fcGFuZUludmFsaWRhdGlvbk1hc2soZSxMZS5JbnZhbGlkYXRpb25MZXZlbC5MaWdodCkpfWNhbGN1bGF0ZURlZmF1bHRUYWdzKCl7cmV0dXJuIHRoaXMuZGF0YVNvdXJjZXMoKS5yZWR1Y2UoKChlLHQpPT4odC50YWdzJiZlLnB1c2goLi4udC50YWdzKCkpLGUpKSxbXSl9YXN5bmMgd2l0aG91dExpbmVUb29sc1N5bmNBY3Rpb24oZSl7dHJ5e3RoaXMuX2xpbmVUb29sc1N5bmNCbG9jaysrLGF3YWl0IGUoKX1maW5hbGx5e3RoaXMuX2xpbmVUb29sc1N5bmNCbG9jay0tfX1zeW1ib2xBbGlhc1NlcnZpY2UoKXtyZXR1cm4gdGhpcy5fc3ltYm9sQWxpYXNTZXJ2aWNlfWNoYXJ0RmxvYXRpbmdUb29sdGlwVmlzaWJsZSgpe3JldHVybiB0aGlzLl91bmRvTW9kZWwuY2hhcnRGbG9hdGluZ1Rvb2x0aXBWaXNpYmxlKCl9Y2hhcnRGbG9hdGluZ1Rvb2x0aXBBY3RpdmUoKXtyZXR1cm4gdGhpcy5fdW5kb01vZGVsLmNoYXJ0RmxvYXRpbmdUb29sdGlwQWN0aXZlKCl9X3N1YnNjcmliZVRvTGluZVRvb2xzR3JvdXBNb2RlbCgpe3RoaXMuX2xpbmVUb29sc0dyb3VwTW9kZWwub25DaGFuZ2VkKCkuc3Vic2NyaWJlKHRoaXMsdGhpcy5fb25MaW5lVG9vbHNHcm91cE1vZGVsQ2hhbmdlZCl9X3Vuc3Vic2NyaWJlRnJvbUxpbmVUb29sc0dyb3VwTW9kZWwoKXt0aGlzLl9saW5lVG9vbHNHcm91cE1vZGVsLm9uQ2hhbmdlZCgpLnVuc3Vic2NyaWJlQWxsKHRoaXMpfV9tYXliZVVwZGF0ZVByZXZpb3VzU2VsZWN0ZWREcmF3aW5nT3JHcm91cCgpe2NvbnN0IGU9dGhpcy5fY3VycmVudFRvb2wudmFsdWUoKSx0PXRoaXMuX3NlbGVjdGlvbi5hbGxJdGVtc1NvcnRlZCgpLm1hcCgoZT0+KDAsWHIuaXNMaW5lVG9vbHNHcm91cCkoZSk/ZS5pZDplLmlkKCkpKTsoMCwKbS5pc0xpbmVUb29sTmFtZSkoZSkmJnQubGVuZ3RoP3RoaXMuX3ByZXZpb3VzU2VsZWN0ZWREcmF3aW5nT3JHcm91cElkcz10OiEoMCxULnRvb2xJc0N1cnNvcikoZSkmJiEoMCxULnRvb2xJc01lYXN1cmUpKGUpfHx0Lmxlbmd0aHx8KHRoaXMuX3ByZXZpb3VzU2VsZWN0ZWREcmF3aW5nT3JHcm91cElkcz1udWxsKX1fdXBkYXRlSGlnaGxpZ2h0ZWRTb3VyY2UoKXt0aGlzLmRhdGFTb3VyY2VzKCkuZm9yRWFjaCgoZT0+eygwLHRpLmlzU3R1ZHkpKGUpJiZlLmhhc0hpZ2hsaWdodGVkUGxvdHMoKSYmKGUudXBkYXRlQWxsVmlld3MoKDAsdG4uc2VsZWN0aW9uQ2hhbmdlRXZlbnQpKCkpLHRoaXMudXBkYXRlU291cmNlKGUpKX0pKX1faW5pdEFsZXJ0c0xpc3QoKXtyZXR1cm4gdGhpcy5fYWxlcnRzTGlzdFByb21pc2V8fCh0aGlzLl9hbGVydHNMaXN0UHJvbWlzZT0oMCxVcy5nZXRDaGFydEFsZXJ0c0ZhY2FkZSkoKS50aGVuKChlPT57Y29uc3QgdD1lLmNyZWF0ZUNvbGxlY3Rpb24oKCgpPT50aGlzLm1haW5TZXJpZXMoKS5pbnRlcnZhbCgpKSwoKCk9PnRoaXMubWFpblNlcmllcygpLmFjdHVhbFN5bWJvbCgpKSwoKCk9PnRoaXMubWFpblNlcmllcygpLnByb1N5bWJvbCgpKSk7dGhpcy5fYWxlcnRzQ29sbGVjdGlvbi5zZXRWYWx1ZSh0KSx0LmFsZXJ0QWRkZWQoKS5zdWJzY3JpYmUodGhpcyx0aGlzLl9hZGRBbGVydExhYmVsVG9DaGFydC5iaW5kKHRoaXMpKSx0LmFsZXJ0UmVtb3ZlZCgpLnN1YnNjcmliZSh0aGlzLHRoaXMuX3JlbW92ZUFsZXJ0TGFiZWxGcm9tQ2hhcnQuYmluZCh0aGlzKSksdC5maXJzdENvbmRpdGlvbkFsZXJ0U2VyaWVzQ2hhbmdlZCgpLnN1YnNjcmliZSh0aGlzLChlPT57KDAsbC5lbnN1cmVOb3ROdWxsKSh0aGlzLmFsZXJ0c1dhdGNoZXIoKSkuaXNBbGVydExhYmVsQmVpbmdNb3ZlZChlLHRoaXMuc291cmNlc0JlaW5nTW92ZWQoKSl8fCh0aGlzLl9yZW1vdmVBbGVydExhYmVsRnJvbUNoYXJ0KGUpLHRoaXMuX2FkZEFsZXJ0TGFiZWxUb0NoYXJ0KGUpKX0pKSx0LnN5bmMoKTtjb25zdCBpPWU9Pnt0aGlzLm1haW5TZXJpZXMoKS5kYXRhRXZlbnRzKCkuc3ltYm9sUmVzb2x2ZWQoKVtlXSh0aGlzLHMpLHRoaXMubWFpblNlcmllcygpLmRhdGFFdmVudHMoKS5zeW1ib2xFcnJvcigpW2VdKHRoaXMsdGhpcy5fcmVtb3ZlQWxsQWxlcnRMYWJlbHNGcm9tQ2hhcnQpLHRoaXMubWFpblNlcmllcygpLnByb3BlcnRpZXMoKS5jaGlsZHMoKS5pbnRlcnZhbFtlXSh0aGlzLHMpfSxzPSgpPT57dD8uc3luYygpfTtyZXR1cm4gd2luZG93LmxvZ2luU3RhdGVDaGFuZ2Uuc3Vic2NyaWJlKHRoaXMsKCgpPT57dD8ucmVzZXQoKSxpKHdpbmRvdy5pc19hdXRoZW50aWNhdGVkPyJzdWJzY3JpYmUiOiJ1bnN1YnNjcmliZSIpfSkpLHdpbmRvdy5pc19hdXRoZW50aWNhdGVkJiZpKCJzdWJzY3JpYmUiKSx0fSkpKSx0aGlzLl9hbGVydHNMaXN0UHJvbWlzZX1fdXBkYXRlU3R1ZGllc01heE9mZnNldCgpe2NvbnN0IGU9TWF0aC5tYXgoLi4udGhpcy5hbGxTdHVkaWVzKCkubWFwKChlPT5lLm1heE9mZnNldCgpLnZhbHVlKCkpKSk7dGhpcy5fY2FjaGVkU3R1ZGllc01heE9mZnNldD1lO2NvbnN0IHQ9dGhpcy5fdGltZVNjYWxlLnJpZ2h0T2Zmc2V0KCk7aWYodDwwKXJldHVybjtpZihlPD10KXJldHVybjtjb25zdCBpPXRoaXMuX3RpbWVTY2FsZS5sb2dpY2FsUmFuZ2UoKTtpP3RoaXMuX3RpbWVTY2FsZS56b29tVG9CYXJzUmFuZ2UoaS5sZWZ0KCksdGhpcy5fdGltZVNjYWxlLmJhc2VJbmRleCgpK01hdGgubWF4KHRoaXMuX3RpbWVTY2FsZS5yaWdodE9mZnNldCgpLGUpKTp0aGlzLl90aW1lU2NhbGUuc2V0UmlnaHRPZmZzZXQoTWF0aC5tYXgodCxlKSl9X3VwZGF0ZUJhc2VJbmRleChlLHQpe2NvbnN0IGk9dGhpcy5fdGltZVNjYWxlLHM9aS5iYXNlSW5kZXgoKSxuPWkubG9naWNhbFJhbmdlKCk7aWYobnVsbCE9PW4mJnQpe2NvbnN0IHQ9bi5jb250YWlucyhzKSxyPWUtcyxvPXQ/bnVsbDppLnJpZ2h0T2Zmc2V0KCktcjtpZighdGhpcy5fb3B0aW9ucy5zaGlmdFZpc2libGVSYW5nZU9uTmV3QmFyJiZ0KXtjb25zdCBlPWkud2lkdGgoKS9pLmJhclNwYWNpbmcoKSx0PWUvKGUrcikscz1NYXRoLm1heChpLm1pbkJhclNwYWNpbmcoKSxpLmJhclNwYWNpbmcoKSp0KTtpLnNldEJhclNwYWNpbmcocyl9bnVsbCE9PW8mJmkuc2V0UmlnaHRPZmZzZXQobyl9aS5zZXRCYXNlSW5kZXgoZSl9YXN5bmMgX2NyZWF0ZUxvbGxpcG9wU291cmNlc1dhdGNoZXIoKXt7Y29uc3QgZT10aGlzLmxvbGxpcG9wU291cmNlc09wdGlvbnMoKSx0PVtlLmVzZEVuYWJsZWQsZS5jb250aW51b3VzQ29udHJhY3RTd2l0Y2hlc0VuYWJsZWQsZS5mdXR1cmVzQ29udHJhY3RFeHBpcmF0aW9uRW5hYmxlZCxlLmxhdGVzdFVwZGF0ZXNFbmFibGVkLGUuY2hhcnRFdmVudHNFbmFibGVkXSxzPSgwLEoub25XaWRnZXQpKCksbj10aGlzLmlzU25hcHNob3QoKTsodC5zb21lKEJvb2xlYW4pfHwhc3x8bikmJihhd2FpdCgwLGF0LnN0dWR5TWV0YUluZm9SZXBvc2l0b3J5KSgpLnJlcXVlc3RNZXRhSW5mbygpLHRoaXMuX2xvbGxpcG9wU291cmNlc1dhdGNoZXJMb2FkZXI9bmV3IHRhLkFzeW5jUmVzb3VyY2VXcmFwcGVyKGkuZSg4MTYwNSkudGhlbihpLmJpbmQoaSw2NjQwKSkpLHRoaXMuX2xvbGxpcG9wU291cmNlc1dhdGNoZXJMb2FkZXIuY2FsbEZ1bmN0aW9uKChlPT57dGhpcy5fbG9sbGlwb3BTb3VyY2VzV2F0Y2hlcj1uZXcgZS5Mb2xsaXBvcFNvdXJjZXNXYXRjaGVyKHRoaXMpfSkpKX19X3VwZGF0ZURhdGVUaW1lRm9ybWF0dGVyKCl7Y29uc3QgZT1paC5kYXRlRm9ybWF0UHJvcGVydHkudmFsdWUoKSx0PXRoaXMub25XaWRnZXQoKT92b2lkIDA6bGgud2l0aFdlZWtkYXlQcm9wZXJ0eS52YWx1ZSgpO2lmKHRoaXMuX2RhdGVGb3JtYXR0ZXI9bmV3IHRoLkRhdGVGb3JtYXR0ZXIoZSx0KSx0aGlzLm1haW5TZXJpZXMoKS5pc0RXTSgpKXRoaXMuX2RhdGVUaW1lRm9ybWF0dGVyPW5ldyB0aC5EYXRlRm9ybWF0dGVyKGUsdCksdGhpcy5fdGltZUZvcm1hdHRlcj1uZXcgQ2MuVGltZUZvcm1hdHRlcigoMCwKUGMuZ2V0SG91ck1pbnV0ZUZvcm1hdCkoVGMudGltZUhvdXJzRm9ybWF0UHJvcGVydHkudmFsdWUoKSkpO2Vsc2V7Y29uc3QgaT14LkludGVydmFsLnBhcnNlKHRoaXMubWFpblNlcmllcygpLmludGVydmFsKCkpLHM9KDAsUGMuZ2V0VGltZUZvcm1hdEZvckludGVydmFsKShpLFRjLnRpbWVIb3Vyc0Zvcm1hdFByb3BlcnR5LnZhbHVlKCkpO3RoaXMuX2RhdGVUaW1lRm9ybWF0dGVyPW5ldyBlaC5EYXRlVGltZUZvcm1hdHRlcih7ZGF0ZUZvcm1hdDplLHdpdGhXZWVrZGF5OnQsdGltZUZvcm1hdDpzLGRhdGVUaW1lU2VwYXJhdG9yOiIgICAifSksdGhpcy5fdGltZUZvcm1hdHRlcj1uZXcgQ2MuVGltZUZvcm1hdHRlcihzKX19X2ludmFsaWRhdGlvbk1hc2tGb3JTb3VyY2UoZSx0PUxlLkludmFsaWRhdGlvbkxldmVsLkxpZ2h0KXtpZihlPT09dGhpcy5jcm9zc2hhaXJTb3VyY2UoKSlyZXR1cm4gTGUuSW52YWxpZGF0aW9uTWFzay5jdXJzb3IoKTtpZih0aGlzLl93YXRlcm1hcmtTb3VyY2U9PT1lKXJldHVybiB0aGlzLl9wYW5lSW52YWxpZGF0aW9uTWFzaygoMCxsLmVuc3VyZU5vdE51bGwpKHRoaXMucGFuZUZvclNvdXJjZSh0aGlzLm1haW5TZXJpZXMoKSkpLHQpO2lmKC0xIT09dGhpcy5fYWxsQ3VzdG9tU291cmNlcy5pbmRleE9mKGUpKXtjb25zdCBlPW5ldyBMZS5JbnZhbGlkYXRpb25NYXNrO3JldHVybiBlLmludmFsaWRhdGVBbGwodCksZX1pZighKDAsQWkuaXNEYXRhU291cmNlKShlKSlyZXR1cm4gbnVsbDtpZihlLmlzTXVsdGlQYW5lRW5hYmxlZCgpKXJldHVybiBuZXcgTGUuSW52YWxpZGF0aW9uTWFzayh0KTtjb25zdCBpPXRoaXMucGFuZUZvclNvdXJjZShlKTtyZXR1cm4gbnVsbCE9PWk/dGhpcy5fcGFuZUludmFsaWRhdGlvbk1hc2soaSx0KTpudWxsfV9wYW5lSW52YWxpZGF0aW9uTWFzayhlLHQ9TGUuSW52YWxpZGF0aW9uTGV2ZWwuTGlnaHQpe2NvbnN0IGk9bmV3IExlLkludmFsaWRhdGlvbk1hc2sscz10aGlzLl9wYW5lcy5pbmRleE9mKGUpO3JldHVybiBpLmludmFsaWRhdGVBbGxQYW5lKHMsdCksaX1faW52YWxpZGF0aW9uTWFza0ZvclNvdXJjZVByaWNlU2NhbGUoZSx0PUxlLkludmFsaWRhdGlvbkxldmVsLkxpZ2h0KXtpZighKDAsQWkuaXNEYXRhU291cmNlKShlKSlyZXR1cm4gbmV3IExlLkludmFsaWRhdGlvbk1hc2sodCk7Y29uc3QgaT10aGlzLnBhbmVGb3JTb3VyY2UoZSk7aWYobnVsbD09PWkpcmV0dXJuIG51bGw7bGV0IHM9ZS5wcmljZVNjYWxlKCk7aWYobnVsbD09PXMpcmV0dXJuIG51bGw7Y29uc3Qgbj10aGlzLl9wYW5lcy5pbmRleE9mKGkpO2xldCByPWkucHJpY2VTY2FsZVBvc2l0aW9uKHMpO2lmKCJvdmVybGF5Ij09PXIpe2NvbnN0IGU9dGhpcy5fcGFuZXNbbl0uZGVmYXVsdFByaWNlU2NhbGUoKTtzPWUscj1pLnByaWNlU2NhbGVQb3NpdGlvbihlKX1jb25zdCBvPWkucHJpY2VTY2FsZUluZGV4KHMscik7aWYodm9pZCAwPT09bylyZXR1cm4gbnVsbDtjb25zdCBhPW5ldyBMZS5JbnZhbGlkYXRpb25NYXNrO3JldHVybiBhLmludmFsaWRhdGVQcmljZVNjYWxlKG4scixvLHQpLGF9X3JlbW92ZUN1c3RvbVNvdXJjZShlKXtjb25zdCB0PXRoaXMuX2N1c3RvbVNvdXJjZXNNYXAuZ2V0KGUpO2lmKHZvaWQgMD09PXQpcmV0dXJuIHZvaWQgd3UubG9nV2FybihgQXR0ZW1wdCB0byByZW1vdmUgY3VzdG9tIHNvdXJjZSB3aGljaCBkb2VzIG5vdCBleGlzdCBpbiB0aGUgbW9kZWwgLSAiJHtlfSJgKTt3dS5sb2dOb3JtYWwoYFJlbW92aW5nIGN1c3RvbSBzb3VyY2UgIiR7ZX0iYCksdGhpcy5zZWxlY3Rpb25NYWNybygoZT0+e2UucmVtb3ZlSXRlbUZyb21TZWxlY3Rpb24odCl9KSksdGhpcy5faG92ZXJlZFNvdXJjZT09PXQmJnRoaXMuc2V0SG92ZXJlZFNvdXJjZShudWxsKSx0aGlzLl9jdXN0b21Tb3VyY2VCZWluZ01vdmVkPT09dCYmdGhpcy5zZXRNb3ZpbmdDdXN0b21Tb3VyY2UobnVsbCxudWxsKTtjb25zdCBpPUN1KHRoaXMuX2JnQ3VzdG9tU291cmNlcyx0KSxzPUN1KHRoaXMuX2ZnQ3VzdG9tU291cmNlcyx0KSxuPUN1KHRoaXMuX3RvcG1vc3RDdXN0b21Tb3VyY2VzLHQpLHI9Q3UodGhpcy5fYWxsQ3VzdG9tU291cmNlcyx0KTsoMCxsLmFzc2VydCkoaXx8c3x8biwiU291cmNlIHNob3VsZCBiZSBwcmVzZW50ZWQgaW4gb25lIG9mIHRoZSBsYXllcnMiKSwoMCxsLmFzc2VydCkociwiU291cmNlIHNob3VsZCBiZSBwcmVzZW50ZWQgaW4gdGhlIGFycmF5IiksdGhpcy5fY3VzdG9tU291cmNlc01hcC5kZWxldGUoZSksdC5kZXN0cm95KCl9X3VwZGF0ZVNob3dMZWdlbmRQcm9wZXJ0eSgpe2NvbnN0IGU9dGhpcy5fcHJvcGVydGllcy5jaGlsZHMoKS5wYW5lUHJvcGVydGllcy5jaGlsZHMoKS5sZWdlbmRQcm9wZXJ0aWVzLmNoaWxkcygpLnNob3dMZWdlbmQsdD10aGlzLl9zaG93TGVnZW5kUHJvcGVydHk7aWYoZS52YWx1ZSgpKXQuc2V0VmFsdWUoITApO2Vsc2V7Zm9yKGNvbnN0IGUgb2YgdGhpcy5fcGFuZXMpe2xldCBpPTA7Zm9yKGNvbnN0IHMgb2YgZS5wcmljZURhdGFTb3VyY2VzKCkpaWYobnVsbCE9PXMuc3RhdHVzVmlldygpJiYoaSsrLGk+PTIpKXJldHVybiB2b2lkIHQuc2V0VmFsdWUoITEpfXQuc2V0VmFsdWUoITApfX1fcG9pbnRUb1BlcmNlbnRQb3NpdGlvbihlLHQpe3JldHVybnt4OmUueC90aGlzLl90aW1lU2NhbGUud2lkdGgoKSx5OmUueS8oMCxsLmVuc3VyZU5vdE51bGwpKCgwLGwuZW5zdXJlTm90TnVsbCkodC5tYWluRGF0YVNvdXJjZSgpKS5wcmljZVNjYWxlKCkpLmhlaWdodCgpfX1fcGVyY2VudFBvc2l0aW9uVG9Qb2ludChlLHQpe2NvbnN0IGk9ZS54KnRoaXMuX3RpbWVTY2FsZS53aWR0aCgpLHM9ZS55KigwLGwuZW5zdXJlTm90TnVsbCkoKDAsbC5lbnN1cmVOb3ROdWxsKSh0Lm1haW5EYXRhU291cmNlKCkpLnByaWNlU2NhbGUoKSkuaGVpZ2h0KCk7cmV0dXJuIG5ldyBQdC5Qb2ludChpLHMpfV9yZWNhbGNWaXNpYmxlUmFuZ2VTdHVkaWVzSW1wbChlKXsKaWYoIXRoaXMuX21haW5TZXJpZXMuaXNTdGFydGVkKCl8fCF0aGlzLl9tYWluU2VyaWVzLmlzQ29tcGxldGVkKCkpcmV0dXJuIHZvaWQgdGhpcy5fdmlzaWJsZVJhbmdlU3R1ZGllc0lucHV0cy5zZXRWYWx1ZShudWxsKTtpZih0aGlzLnRpbWVTY2FsZSgpLmlzRW1wdHkoKSlyZXR1cm47Y29uc3QgdD10aGlzLnRpbWVTY2FsZSgpLnZpc2libGVCYXJzU3RyaWN0UmFuZ2UoKTtpZihudWxsPT09dClyZXR1cm47Y29uc3QgaT10aGlzLl9tYWluU2VyaWVzLmJhcnMoKSxzPWkuc2VhcmNoKHQuZmlyc3RCYXIoKSxaby5QbG90Um93U2VhcmNoTW9kZS5OZWFyZXN0UmlnaHQpLG49aS5zZWFyY2godC5sYXN0QmFyKCksWm8uUGxvdFJvd1NlYXJjaE1vZGUuTmVhcmVzdExlZnQpLHI9aS5sYXN0SW5kZXgoKSxvPXM/cy5pbmRleDp2b2lkIDAsYT1uP24uaW5kZXg6dm9pZCAwLGw9bz09PWUub2xkU3RhcnRWaXNpYmxlSW5kZXgsYz1hPT09ZS5vbGRFbmRWaXNpYmxlSW5kZXgsaD1bSWkuUmVjYWxjVmlzaWJsZVJhbmdlU3R1ZGllc1JlYXNvbi5TZXJpZXNSZXN0YXJ0LElpLlJlY2FsY1Zpc2libGVSYW5nZVN0dWRpZXNSZWFzb24uU2VyaWVzQ29tcGxldGVkLElpLlJlY2FsY1Zpc2libGVSYW5nZVN0dWRpZXNSZWFzb24uU3R1ZHlDcmVhdGlvbl0uc29tZSgodD0+ZS5yZWFzb25zLmhhcyh0KSkpO2wmJmMmJiFofHwoZS5yZWFzb25zLmNsZWFyKCksZS5vbGRTdGFydFZpc2libGVJbmRleD12b2lkIDAhPT1vP286TmFOLGUub2xkRW5kVmlzaWJsZUluZGV4PXZvaWQgMCE9PWE/YTpOYU4sdGhpcy5fdmlzaWJsZVJhbmdlU3R1ZGllc0lucHV0cy5zZXRWYWx1ZSh7Zmlyc3RWaXNpYmxlQmFyVGltZToxZTMqKHM/LnZhbHVlWzBdPz8wKSxsYXN0VmlzaWJsZUJhclRpbWU6MWUzKihuPy52YWx1ZVswXT8/MCksc3Vic2NyaWJlUmVhbHRpbWU6bj8uaW5kZXg9PT1yfSkpfV9yZWNhbGNDb2xvclN0dWRpZXNJbXBsKGUpe2NvbnN0IHQ9dGhpcy5iYWNrZ3JvdW5kQ29sb3JBdFlQZXJjZW50RnJvbVRvcCguNSksaT10aGlzLmRhcmsoKS52YWx1ZSgpP1hvLmNvbG9yc1BhbGV0dGVbImNvbG9yLWNvbGQtZ3JheS0yMDAiXTpYby5jb2xvcnNQYWxldHRlWyJjb2xvci1jb2xkLWdyYXktOTAwIl0scz10PT09ZS5vbGRCZ0NvbG9yLG49aT09PWUub2xkRmdDb2xvcjtpZihzJiZuJiYhZS5mb3JjZSlyZXR1cm47ZS5mb3JjZT0hMSxlLm9sZEJnQ29sb3I9dCxlLm9sZEZnQ29sb3I9aTtjb25zdCByPWUuc3R1ZGllcz8/dGhpcy5wcmljZURhdGFTb3VyY2VzKCk7ZS5zdHVkaWVzPXZvaWQgMDtmb3IoY29uc3QgZSBvZiByKWlmKCgwLHRpLmlzU3R1ZHkpKGUpKXtjb25zdCBzPWUubWV0YUluZm8oKS5pbnB1dHMuZmlsdGVyKE50LmlzU3R1ZHlJbnB1dERlcGVuZHNPbkNoYXJ0Q29sb3JzKSxuPWUucHJvcGVydGllcygpLmNoaWxkcygpLmlucHV0cztzLmZvckVhY2goKGU9Pntjb25zdCBzPWUuaWQ9PT1OdC5DaGFydENvbG9yRGVwZW5kZW50U3R1ZHlJbnB1dE5hbWVzLkZnQ29sb3I/aTp0O24uY2hpbGRzKClbZS5pZF0uc2V0VmFsdWVTaWxlbnRseShzKX0pKSxzLmxlbmd0aD4wJiZuLmZpcmVDaGFuZ2VkKCl9fV9nZXRBbGxTb3VyY2VzKGUsdD1rdSl7Y29uc3QgaT1bXTtmb3IoY29uc3QgcyBvZiB0aGlzLl9wYW5lcyl7Y29uc3Qgbj10KHMpO2Zvcihjb25zdCB0IG9mIG4pZSh0KSYmaS5wdXNoKHQpfXJldHVybiBpfV9pbnZhbGlkYXRlQmFyQ29sb3JlckNhY2hlcygpe3RoaXMubWFpblNlcmllcygpLmludmFsaWRhdGVCYXJDb2xvcmVyQ2FjaGUoKX1fYWRkQWxlcnRMYWJlbFRvQ2hhcnQoZSl7e2lmKCFlLmlzQWxlcnRQcmVzZW50T25UYXJnZXQodWguQWxlcnRDaGFydERpc3BsYXlUYXJnZXQuTGFiZWwpKXJldHVybjtjb25zdCB0PWUuZmlyc3RDb25kaXRpb25TZXJpZXNJZCgpO2lmKG51bGw9PT10KXJldHVybjsoMCxsLmVuc3VyZU5vdE51bGwpKHRoaXMuYWxlcnRzV2F0Y2hlcigpKS5hZGRBbGVydChlLHQpfX1fcmVtb3ZlQWxlcnRMYWJlbEZyb21DaGFydChlKXsoMCxsLmVuc3VyZU5vdE51bGwpKHRoaXMuYWxlcnRzV2F0Y2hlcigpKS5yZW1vdmVBbGVydChlKX1fcmVtb3ZlQWxsQWxlcnRMYWJlbHNGcm9tQ2hhcnQoKXsoMCxsLmVuc3VyZU5vdE51bGwpKHRoaXMuYWxlcnRzV2F0Y2hlcigpKS5yZW1vdmVBbGxBbGVydExhYmVscygpfV91cGRhdGVUaW1lU2NhbGUoZSl7Y29uc3R7aW5kZXg6dCx6b2Zmc2V0OmksdmFsdWVzOnMsaW5kZXhEaWZmczpuLGJhc2VJbmRleDpyLG1hcmtzOm8sY2xlYXJGbGFnOmEsY2xlYXJUaWNrTWFya3M6bH09ZTtpZihhKXt0aGlzLl90aW1lU2NhbGUucmVzZXQoKTtmb3IoY29uc3QgZSBvZiB0aGlzLmRhdGFTb3VyY2VzKCkpZS5jbGVhckRhdGE/LigpfWlmKG4ubGVuZ3RoPjApZm9yKGNvbnN0IGUgb2YgdGhpcy5kYXRhU291cmNlcygpKWUubW92ZURhdGE/LihuKTtjb25zdCBjPXRoaXMuX3RpbWVTY2FsZS5pbmRleFRvVGltZVBvaW50KHRoaXMuX3RpbWVTY2FsZS5iYXNlSW5kZXgoKSksaD10aGlzLl90aW1lU2NhbGUuY2FuTm9ybWFsaXplKCk7dGhpcy5fdGltZVNjYWxlLnVwZGF0ZSh0LGkscyxvLGx8fCExKTtjb25zdCBkPXRoaXMuX3RpbWVTY2FsZS5wb2ludHMoKS5yYW5nZSgpLnZhbHVlKCk7bGV0IHU9IkNoYXJ0TW9kZWwucHJvdG90eXBlLl91cGRhdGVUaW1lU2NhbGUoIit0KyIsIitpKyIsIitzLmxlbmd0aCsiLCIrbi5sZW5ndGgrIiwiK28ubGVuZ3RoKyIsIithKyIpIjtpZih1Kz0iVGltZVNjYWxlOiB7Zmlyc3Q6IisoZD8uZmlyc3RJbmRleD8/bnVsbCkrIixsYXN0OiIrKGQ/Lmxhc3RJbmRleD8/bnVsbCkrIn0iLG51bGw9PT1yKXt0aGlzLl90aW1lU2NhbGUucmVzZXRCYXNlSW5kZXgoKTtjb25zdCBlPXRoaXMuX3RpbWVTY2FsZS5yaWdodE9mZnNldCgpO3RoaXMuX3RpbWVTY2FsZS5zZXRSaWdodE9mZnNldChNYXRoLm1heChlLHRoaXMuX2NhY2hlZFN0dWRpZXNNYXhPZmZzZXQpKX1lbHNlIGlmKHZvaWQgMCE9PXIpe2NvbnN0IGU9dGhpcy5fdGltZVNjYWxlLmluZGV4VG9UaW1lUG9pbnQociksdD1udWxsIT09YyYmbnVsbCE9PWUmJmU+Yzt0aGlzLl91cGRhdGVCYXNlSW5kZXgocix0KX0KaWYod3UubG9nRGVidWcodSksIWgmJmghPT10aGlzLl90aW1lU2NhbGUuY2FuTm9ybWFsaXplKCkpZm9yKGNvbnN0IGUgb2YgdGhpcy5kYXRhU291cmNlcygpKSEoMCxyaS5pc0xpbmVUb29sKShlKXx8ZS5pc0ZpeGVkKCl8fGUuaXNTb3VyY2VIaWRkZW4oKXx8ZS5wcm9jZXNzSGliZXJuYXRlKCk7Zm9yKGNvbnN0IGUgb2YgdGhpcy5kYXRhU291cmNlcygpKWUudXBkYXRlQWxsVmlld3Moe3R5cGU6ImRhdGEtc291cmNlLWNoYW5nZSIsc291cmNlSWQ6ZS5pZCgpLGNsZWFyRGF0YTohMH0pO3RoaXMucmVjYWxjdWxhdGVBbGxQYW5lcygoMCx0bi5nbG9iYWxDaGFuZ2VFdmVudCkoKSksdGhpcy5saWdodFVwZGF0ZSgpfV9nZXRBdmFpbGFibGVDdXJyZW5jaWVzKCl7cmV0dXJuIHRoaXMuY3VycmVuY3lDb252ZXJzaW9uRW5hYmxlZCgpPygwLGEuaXNBcnJheSkodGhpcy5fYXZhaWxhYmxlQ3VycmVuY2llc0xpc3QpP3RoaXMuX2F2YWlsYWJsZUN1cnJlbmNpZXNMaXN0OihudWxsIT09dGhpcy5fYXZhaWxhYmxlQ3VycmVuY2llc0xpc3R8fCh0aGlzLl9hdmFpbGFibGVDdXJyZW5jaWVzTGlzdD0oMCxxZS5yZXNwZWN0QWJvcnQpKHRoaXMuX2Fib3J0Q29udHJvbGxlci5zaWduYWwsdGhpcy5jaGFydEFwaSgpLmF2YWlsYWJsZUN1cnJlbmNpZXMoKSksdGhpcy5fYXZhaWxhYmxlQ3VycmVuY2llc0xpc3QudGhlbigoZT0+e3RoaXMuX2Rlc3Ryb3llZHx8KHRoaXMuX2F2YWlsYWJsZUN1cnJlbmNpZXNMaXN0PWUsdGhpcy5fYXZhaWxhYmxlQ3VycmVuY2llcy5zZXRWYWx1ZShuZXcgTGgoZSkpLHRoaXMuZnVsbFVwZGF0ZSgpKX0pKS5jYXRjaCgoZT0+e3d1LmxvZ1dhcm4oYEFuIGVycm9yIG9jY3VycmVkIHdoaWxlIGdldHRpbmcgY3VycmVuY2llcyBjb25maWc6ICR7ZX1gKX0pKSksW10pOltdfV9nZXRBdmFpbGFibGVVbml0cygpe3JldHVybiB0aGlzLnVuaXRDb252ZXJzaW9uRW5hYmxlZCgpP3RoaXMuX2F2YWlsYWJsZVVuaXRzT2JqZWN0IGluc3RhbmNlb2YgUHJvbWlzZXx8bnVsbD09PXRoaXMuX2F2YWlsYWJsZVVuaXRzT2JqZWN0PyhudWxsIT09dGhpcy5fYXZhaWxhYmxlVW5pdHNPYmplY3R8fCh0aGlzLl9hdmFpbGFibGVVbml0c09iamVjdD0oMCxxZS5yZXNwZWN0QWJvcnQpKHRoaXMuX2Fib3J0Q29udHJvbGxlci5zaWduYWwsdGhpcy5jaGFydEFwaSgpLmF2YWlsYWJsZVVuaXRzKCkpLHRoaXMuX2F2YWlsYWJsZVVuaXRzT2JqZWN0LnRoZW4oKGU9Pnt0aGlzLl9kZXN0cm95ZWR8fCh0aGlzLl9hdmFpbGFibGVVbml0c09iamVjdD1lLHRoaXMuX2F2YWlsYWJsZVVuaXRzLnNldFZhbHVlKG5ldyBBaChlKSksdGhpcy5mdWxsVXBkYXRlKCkpfSkpLmNhdGNoKChlPT57d3UubG9nV2FybihgQW4gZXJyb3Igb2NjdXJyZWQgd2hpbGUgZ2V0dGluZyB1bml0cyBjb25maWc6ICR7ZX1gKX0pKSkse30pOnRoaXMuX2F2YWlsYWJsZVVuaXRzT2JqZWN0Ont9fV9nZXRBbGxBdmFpbGFibGVNZXRyaWNzKCl7cmV0dXJuIHRoaXMubWV0cmljQ29udmVyc2lvbkVuYWJsZWQoKT8oMCxhLmlzQXJyYXkpKHRoaXMuX2FsbEF2YWlsYWJsZU1ldHJpY3NMaXN0KT90aGlzLl9hbGxBdmFpbGFibGVNZXRyaWNzTGlzdDoobnVsbCE9PXRoaXMuX2FsbEF2YWlsYWJsZU1ldHJpY3NMaXN0fHwodGhpcy5fYWxsQXZhaWxhYmxlTWV0cmljc0xpc3Q9KDAscWUucmVzcGVjdEFib3J0KSh0aGlzLl9hYm9ydENvbnRyb2xsZXIuc2lnbmFsLHRoaXMuY2hhcnRBcGkoKS5hdmFpbGFibGVNZXRyaWNzKCkpLHRoaXMuX2FsbEF2YWlsYWJsZU1ldHJpY3NMaXN0LnRoZW4oKGU9Pnt0aGlzLl9kZXN0cm95ZWR8fCh0aGlzLl9hbGxBdmFpbGFibGVNZXRyaWNzTGlzdD1lLHRoaXMuZnVsbFVwZGF0ZSgpKX0pKS5jYXRjaCgoZT0+e3d1LmxvZ1dhcm4oYEFuIGVycm9yIG9jY3VycmVkIHdoaWxlIGdldHRpbmcgY3VycmVuY2llcyBjb25maWc6ICR7ZX1gKX0pKSksW10pOltdfV9nZXRBdmFpbGFibGVQcmljZVNvdXJjZXMoZSl7Y29uc3QgdD10aGlzLl9hdmFpbGFibGVQcmljZVNvdXJjZXNCeVN5bWJvbC5nZXQoZSk7aWYoQXJyYXkuaXNBcnJheSh0KSlyZXR1cm4gdDtpZigoMCxhLmlzUHJvbWlzZSkodCkpcmV0dXJuW107Y29uc3QgaT10aGlzLmNoYXJ0QXBpKCkuYXZhaWxhYmxlUHJpY2VTb3VyY2VzKGUpO3JldHVybiB0aGlzLl9hdmFpbGFibGVQcmljZVNvdXJjZXNCeVN5bWJvbC5zZXQoZSxpKSxpLnRoZW4oKHQ9Pnt0aGlzLl9kZXN0cm95ZWR8fCh0aGlzLl9hdmFpbGFibGVQcmljZVNvdXJjZXNCeVN5bWJvbC5zZXQoZSx0KSx0aGlzLmZ1bGxVcGRhdGUoKSl9KSkuY2F0Y2goKGU9Pnt3dS5sb2dXYXJuKGBBbiBlcnJvciBvY2N1cnJlZCB3aGlsZSBnZXR0aW5nIHByaWNlIHNvdXJjZXMgY29uZmlnOiAke2V9YCl9KSksW119X2NsZWFyQXZhaWxhYmxlUHJpY2VTb3VyY2VzKCl7dGhpcy5fYXZhaWxhYmxlUHJpY2VTb3VyY2VzQnlTeW1ib2wuY2xlYXIoKX1fb25TeW1ib2xJbnRlcnZhbENoYW5nZWQoKXt0aGlzLl9zeW1ib2xJbnRlcnZhbENoYW5nZWQuZmlyZSgpfV9nZXRCYWNrZ3JvdW5kQ29sb3IoZSl7Y29uc3QgdD10aGlzLl9wcm9wZXJ0aWVzLmNoaWxkcygpLnBhbmVQcm9wZXJ0aWVzLmNoaWxkcygpO2lmKHQuYmFja2dyb3VuZFR5cGUudmFsdWUoKT09PXBpLkNvbG9yVHlwZS5HcmFkaWVudCl7cmV0dXJuIGZ1bmN0aW9uKGUsdCxpKXtpZigoMCxrLmdldEN1cnJlbnRUaGVtZSkoKS5uYW1lPT09Sm8uU3RkVGhlbWUuRGFyayYmKDAsWC5pc09uTW9iaWxlQXBwUGFnZSkoImFueSIpJiYoMCxrLmlzU3RkVGhlbWVkRGVmYXVsdFZhbHVlKSgiY2hhcnRQcm9wZXJ0aWVzLnBhbmVQcm9wZXJ0aWVzLmJhY2tncm91bmRHcmFkaWVudFN0YXJ0Q29sb3IiLGUsSm8uU3RkVGhlbWUuRGFyaykmJigwLGsuaXNTdGRUaGVtZWREZWZhdWx0VmFsdWUpKCJjaGFydFByb3BlcnRpZXMucGFuZVByb3BlcnRpZXMuYmFja2dyb3VuZEdyYWRpZW50RW5kQ29sb3IiLHQsSm8uU3RkVGhlbWUuRGFyaykpcmV0dXJuIGNoO3JldHVybiBpP2U6dAp9KHQuYmFja2dyb3VuZEdyYWRpZW50U3RhcnRDb2xvci52YWx1ZSgpLHQuYmFja2dyb3VuZEdyYWRpZW50RW5kQ29sb3IudmFsdWUoKSxCb29sZWFuKGUpKX1yZXR1cm4gZnVuY3Rpb24oZSl7aWYoKDAsay5nZXRDdXJyZW50VGhlbWUpKCkubmFtZT09PUpvLlN0ZFRoZW1lLkRhcmsmJigwLFguaXNPbk1vYmlsZUFwcFBhZ2UpKCJhbnkiKSYmKDAsay5pc1N0ZFRoZW1lZERlZmF1bHRWYWx1ZSkoImNoYXJ0UHJvcGVydGllcy5wYW5lUHJvcGVydGllcy5iYWNrZ3JvdW5kIixlLEpvLlN0ZFRoZW1lLkRhcmspKXJldHVybiBjaDtyZXR1cm4gZX0odC5iYWNrZ3JvdW5kLnZhbHVlKCkpfV9nZXRCYWNrZ3JvdW5kQ291bnRlckNvbG9yKCl7Y29uc3QgZT10aGlzLmJhY2tncm91bmRDb2xvcigpLnZhbHVlKCk7cmV0dXJuImJsYWNrIj09PSgwLHlpLnJnYlRvQmxhY2tXaGl0ZVN0cmluZykoKDAseWkucGFyc2VSZ2IpKGUpLDE1MCk/IndoaXRlIjoiYmxhY2sifV91cGRhdGVCYWNrZ3JvdW5kQ29sb3IoKXt0aGlzLl9iYWNrZ3JvdW5kQ29sb3Iuc2V0VmFsdWUodGhpcy5fZ2V0QmFja2dyb3VuZENvbG9yKCkpLHRoaXMuX2JhY2tncm91bmRUb3BDb2xvci5zZXRWYWx1ZSh0aGlzLl9nZXRCYWNrZ3JvdW5kQ29sb3IoITApKX1fc3luY0Nyb3NzaGFpcihlKXtpZighdGhpcy5faXNTZXR0aW5nc0V4dGVybmFsUG9zaXRpb24pe2NvbnN0IHQ9dGhpcy5fdW5kb01vZGVsLm1haW5TZXJpZXMoKSxpPXQuc3luY01vZGVsKCkscz10aGlzLl91bmRvTW9kZWwuY3Jvc3NoYWlyU291cmNlKCksbj1zLnBhbmU7aWYobnVsbCE9PWkmJm51bGwhPT1uKXtjb25zdCByPXt0aW1lU3RhbXA6dGhpcy5fdGltZVNjYWxlLnBvaW50cygpLnJvdWdoVGltZShzLmluZGV4LGkucHJvamVjdFRpbWUuYmluZChpKSksc3luY1NvdXJjZVRhcmdldDppLnN5bmNTb3VyY2VUYXJnZXQoKX07bi5tYWluRGF0YVNvdXJjZSgpPT09dCYmKHIucHJpY2U9cy5wcmljZSxyLnN5bWJvbD10LnN5bWJvbCgpKSx0aGlzLl91bmRvTW9kZWwuc3luY0Nyb3NzaGFpcihyLGUpfXRoaXMuX3BoYW50b21Tb3VyY2VDb250YWluZXIub25DdXJzb3JQb3NpdGlvblVwZGF0ZWQoKX19X2dvdG9UaW1lSW1wbChlLHQpe2NvbnN0IGk9dGhpcy50aW1lU2NhbGUoKSxzPXRoaXMubWFpblNlcmllcygpO2xldCBuO2lmKHZvaWQgMCE9PWUpe2lmKHRoaXMuX3Njcm9sbGluZ1N0YXRlJiZ0aGlzLl9zY3JvbGxpbmdTdGF0ZS5kZWZlcnJlZC5yZWplY3QoKSxuPSgwLEF0LmNyZWF0ZURlZmVycmVkUHJvbWlzZSkoKSwhcy5pc0RXTSgpKXtjb25zdCB0PXMuc3ltYm9sSW5mbygpO2lmKG51bGwhPT10KXtjb25zdCBpPSgwLGwuZW5zdXJlTm90TnVsbCkodGhpcy50aW1lem9uZUV4Y2VwdEV4Y2hhbmdlKCkudmFsdWUoKSksbj0oMCxvLmNhbF90b191dGMpKCgwLG8uZ2V0X3RpbWV6b25lKShpKSxuZXcgRGF0ZShlKSkscj0oMCxVaC5jcmVhdGVUaW1lVG9CYXJUaW1lQWxpZ25lcikocy5pbnRlcnZhbCgpLHQpKG4pO2U9KDAsby51dGNfdG9fY2FsKSgoMCxvLmdldF90aW1lem9uZSkoaSkscikuZ2V0VGltZSgpfX10aGlzLl9zY3JvbGxpbmdTdGF0ZT17dGFyZ2V0RGF0ZTplLGRlZmVycmVkOm4sdGFyZ2V0UG9pbnRBbGlnbm1lbnQ6dC50YXJnZXRQb2ludEFsaWdubWVudCxhdXRvc2NhbGVBZnRlclNjcm9sbDp0LmF1dG9zY2FsZUFmdGVyU2Nyb2xsfX1lbHNle2lmKCF0aGlzLl9zY3JvbGxpbmdTdGF0ZSlyZXR1cm4gd3UubG9nRXJyb3IoInNjcm9sbFRvIGNhbGxlZCB3aXRob3V0IGFuIGFyZ3VtZW50IiksUHJvbWlzZS5yZWplY3QoKTtlPXRoaXMuX3Njcm9sbGluZ1N0YXRlLnRhcmdldERhdGUsbj10aGlzLl9zY3JvbGxpbmdTdGF0ZS5kZWZlcnJlZH1pZih2b2lkIDA9PT1pLnRpY2tNYXJrcygpLm1pbkluZGV4KXJldHVybiBuLnJlc29sdmUodm9pZCAwKSxuLnByb21pc2U7dGhpcy5zdG9wVGltZVNjYWxlQW5pbWF0aW9uKCk7bGV0IHI9KChlLG4pPT57aWYoKGU9PigwLGwuZW5zdXJlTm90TnVsbCkoaS50aWNrTWFya3MoKS5pbmRleFRvVGltZSgoMCxsLmVuc3VyZURlZmluZWQpKGkudGlja01hcmtzKCkubWluSW5kZXgpKSkudmFsdWVPZigpLWUpKG4pPDApe2xldCByPWkudGlja01hcmtzKCkubmVhcmVzdEluZGV4KG4pO2NvbnN0IG89cy5iYXJzKCkubGFzdEluZGV4KCk7aWYobnVsbD09PW8pcmV0dXJuIm5vX2RhdGEiO3I9TWF0aC5taW4ocixvKTtsZXQgYT0oMCxsLmVuc3VyZU5vdE51bGwpKGkudGlja01hcmtzKCkuaW5kZXhUb1RpbWUocikpLnZhbHVlT2YoKTtmb3IoO2E8biYmcjxvOylyKyssYT0oMCxsLmVuc3VyZU5vdE51bGwpKGkudGlja01hcmtzKCkuaW5kZXhUb1RpbWUocikpLnZhbHVlT2YoKTtpZigoMCxsLmVuc3VyZU5vdE51bGwpKGkudmlzaWJsZUJhcnNTdHJpY3RSYW5nZSgpKS5jb250YWlucyhyKSYmIXQuYWxpZ25JZlRhcmdldFBvaW50SXNWaXNpYmxlKXJldHVybiJpbl92aXNpYmxlX3JhbmdlIjtpZigibm9uZSIhPT1lKXtjb25zdCB0PWkud2lkdGgoKTtpZigibGVmdCI9PT1lKWkuc2Nyb2xsVG9CYXIocik7ZWxzZXtjb25zdCBlPWkuaW5kZXhUb0Nvb3JkaW5hdGUocikscz1pLmNvb3JkaW5hdGVUb0Zsb2F0SW5kZXgoZS10LzIpO2kuc2Nyb2xsVG9CYXIocyl9fXJldHVybnt0aW1lc3RhbXA6KDAsbC5lbnN1cmVOb3ROdWxsKShpLmluZGV4VG9UaW1lUG9pbnQocikpfX1yZXR1cm4ibm9fZGF0YSJ9KSh0aGlzLl9zY3JvbGxpbmdTdGF0ZS50YXJnZXRQb2ludEFsaWdubWVudCx0aGlzLl9zY3JvbGxpbmdTdGF0ZS50YXJnZXREYXRlKTtpZigibm9fZGF0YSI9PT1yKXtjb25zdCB0PSgwLGwuZW5zdXJlRGVmaW5lZCkoaS50aWNrTWFya3MoKS5taW5JbmRleCksbj0oMCxsLmVuc3VyZU5vdE51bGwpKGkudmlzaWJsZUJhcnNTdHJpY3RSYW5nZSgpKSxvPW4ubGFzdEJhcigpLW4uZmlyc3RCYXIoKTtpZihzLnJlcXVlc3RNb3JlRGF0YUF2YWlsYWJsZSgpKXtjb25zdCB0PWkudGlja01hcmtzKCkuZXN0aW1hdGVMZWZ0KGUpO2kucmVxdWVzdE1vcmVIaXN0b3J5UG9pbnRzKE1hdGguY2VpbCh0K28vMikpfWVsc2UgaS56b29tVG9CYXJzUmFuZ2UodC1vLzIsdCtvLzIpLHI9ewp0aW1lc3RhbXA6KDAsbC5lbnN1cmVOb3ROdWxsKShpLmluZGV4VG9UaW1lUG9pbnQodCkpLGVvZDohMH19aWYoIm5vX2RhdGEiIT09ciYmImluX3Zpc2libGVfcmFuZ2UiIT09cil7aWYodGhpcy5fc2Nyb2xsaW5nU3RhdGUuYXV0b3NjYWxlQWZ0ZXJTY3JvbGwpe2NvbnN0IGU9KDAsbC5lbnN1cmVOb3ROdWxsKShpLnZpc2libGVCYXJzU3RyaWN0UmFuZ2UoKSksdD0oMCxsLmVuc3VyZU5vdE51bGwpKGkubG9naWNhbFJhbmdlKCkpO2Zvcihjb25zdCBpIG9mIHRoaXMucGFuZXMoKSl7Zm9yKGNvbnN0IHMgb2YgaS5sZWZ0UHJpY2VTY2FsZXMoKSlzLnJlY2FsY3VsYXRlUHJpY2VSYW5nZShlLHQpO2Zvcihjb25zdCBzIG9mIGkucmlnaHRQcmljZVNjYWxlcygpKXMucmVjYWxjdWxhdGVQcmljZVJhbmdlKGUsdCl9fXRoaXMuZnVsbFVwZGF0ZSgpLHRoaXMuX3Njcm9sbGluZ1N0YXRlPW51bGwsbi5yZXNvbHZlKHIpfXJldHVybiJpbl92aXNpYmxlX3JhbmdlIj09PXImJihuLnJlamVjdCgiYWxyZWFkeSB2aXNpYmxlIiksdGhpcy5fc2Nyb2xsaW5nU3RhdGU9bnVsbCksbi5wcm9taXNlfV9zZXRDb3JyZWN0ZWRQb3NpdGlvblRvQ3Jvc3NoYWlyKGUsdCxpKXt0aGlzLmNyb3NzaGFpclNvdXJjZSgpLnNldFBvc2l0aW9uKGUsdCxpKX1fc2VsZWN0aW9uT3BlcmF0aW9uQXZhaWxhYmxlKGUpe2NvbnN0IHQ9dGhpcy5fc2VsZWN0aW9uLmFsbEl0ZW1zKCk7aWYoMT09PXQubGVuZ3RoKXtjb25zdFtpXT10O2lmKCEoMCxYci5pc0xpbmVUb29sc0dyb3VwKShpKSYmISgwLEFpLmlzRGF0YVNvdXJjZSkoaSkmJmkuc2VsZWN0aW9uT3BlcmF0aW9uQXZhaWxhYmxlKXJldHVybiBpLnNlbGVjdGlvbk9wZXJhdGlvbkF2YWlsYWJsZShlKX1yZXR1cm4hMH1fb25TeW1ib2xTb3VyY2VDb2xsZWN0aW9uQ2hhbmdlZChlKXt0aGlzLl9jbGVhckF2YWlsYWJsZVByaWNlU291cmNlcygpLHRoaXMuX3JlY2FsY0FkanVzdEZvckRpdmlkZW5kc0F2YWlsYWJpbGl0eSgpLHRoaXMuX3JlY2FsY0FsbG93ZWRBZGp1c3RtZW50KCksdGhpcy5fc3ltYm9sU291cmNlQ29sbGVjdGlvbkNoYW5nZWQuZmlyZShlKX1fb25QcmljZVNvdXJjZXNDb2xsZWN0aW9uQ2hhbmdlZChlKXt0aGlzLl9wYW5lcy5zb21lKChlPT5lLmhhc0RhdGFTb3VyY2UodGhpcy5fbWFpblNlcmllcykpKSYmKHRoaXMuX3N0dWRpZXNXVi5zZXRWYWx1ZSh0aGlzLmFsbFN0dWRpZXMoKSksdGhpcy5fc3R1ZGllc0V4Y2x1ZGVJbnRlcm5hbFdWLnNldFZhbHVlKHRoaXMuYWxsU3R1ZGllcyghMCkpKX1fdW5tZXJnZUF2YWlsYWJsZShlKXtyZXR1cm4gZT09PXRoaXMuX21haW5TZXJpZXN8fCgwLHRpLmlzU3R1ZHkpKGUpJiYhZS5pc0xpbmtlZFRvU2VyaWVzKCkmJmUuc2hvd0luT2JqZWN0VHJlZSgpfV9nZXRFeGNlZWRpbmdDaGlsZFN0dWRpZXMoZSl7bGV0IHQ9W107Zm9yKGxldCBpPTA7aTxlLmxlbmd0aDsrK2kpdD10LmNvbmNhdChlW2ldLnNvdXJjZXN8fFtdKTtsZXQgaT0wLHM9MTtzPSgwLENlLmdldENvbmZpZykoIlNUVURZX09OX1NUVURZIik/LmNoaWxkX2xpbWl0Pz8xO2NvbnN0IG49W10scj17fTtsZXQgbz0wLGE9MWU2O2Zvcig7dC5sZW5ndGgmJi0tYTspe2NvbnN0IGU9dFtvXTsoZS5vd25lclNvdXJjZSYmcltlLm93bmVyU291cmNlXXx8IWUub3duZXJTb3VyY2UpJiYocltlLmlkXT1lLHQuc3BsaWNlKHQuaW5kZXhPZihlKSwxKSxlLm93bmVyU291cmNlJiYoMCxQLmlzU3R1ZHlTdGF0ZSkoZSkmJmUuc3RhdGUmJmUuc3RhdGUuaXNDaGlsZFN0dWR5JiYrK2k+cyYmbi5wdXNoKGUpKSxvPShvKzEpJXQubGVuZ3RofXJldHVybiBufV9zZW5kVG8oZSx0KXtjb25zdCBpPW5ldyBNYXA7ZS5mb3JFYWNoKChlPT57Y29uc3QgdD10aGlzLnBhbmVGb3JTb3VyY2UoZSk7aWYoIXQpcmV0dXJuO2NvbnN0IHM9dGhpcy5fcGFuZXMuaW5kZXhPZih0KTtpLmhhcyhzKXx8aS5zZXQocyxbXSksaS5nZXQocyk/LnB1c2goZSl9KSk7Zm9yKGNvbnN0W2Usc11vZiBpLmVudHJpZXMoKSl0KHRoaXMuX3BhbmVzW2VdLHMpO3RoaXMuZnVsbFVwZGF0ZSgpfV9pbml0aWFsaXNlSW5hY3Rpdml0eUdhcHMoKXtpZighKDAscS5pc0ZlYXR1cmVzZXRFbmFibGVkKSgiaW5hY3Rpdml0eV9nYXBzIikpcmV0dXJuO3RoaXMuY3JlYXRlSW5hY3Rpdml0eUdhcHMoKTtjb25zdCBlPWFzeW5jIGU9Pntjb25zdCB0PXRoaXMuY3VzdG9tU291cmNlRm9yTmFtZSgiaW5hY3Rpdml0eUdhcHMiKTtlP3Quc3RhcnQoKTp0LnN0b3AoKX07aWYobnVsbD09PXRoaXMuX2luYWN0aXZpdHlHYXBzV2F0Y2hlZFZhbHVlKXtjb25zdCB0PXRoaXMucHJvcGVydGllcygpLmNoaWxkcygpLmluYWN0aXZpdHlHYXBzO3RoaXMuX2luYWN0aXZpdHlHYXBzV2F0Y2hlZFZhbHVlPWNvbnZlcnRQcm9wZXJ0eVRvV2F0Y2hlZFZhbHVlKHQpLHRoaXMuX2luYWN0aXZpdHlHYXBzV2F0Y2hlZFZhbHVlLnN1YnNjcmliZSgodD0+e2UodCl9KSksZSh0LnZhbHVlKCkpfX1fZ2V0V2lkZ2V0UGFuZShlLHQpe2NvbnN0IGk9dGhpcy5fcGFuZXMuZmluZCgoZT0+ZS5tb2RlKCk9PT1NLlBhbmVNb2RlLldpZGdldCkpO2lmKGkpcmV0dXJuIGk7Y29uc3Qgcz0oMCxsLmVuc3VyZU5vdE51bGwpKHRoaXMucGFuZUZvclNvdXJjZSh0aGlzLl9tYWluU2VyaWVzKSksbj10aGlzLl9wYW5lcy5pbmRleE9mKHMpO2xldCByPTAsbz0wO3RoaXMuX3BhbmVzLmZvckVhY2goKGU9PntlLmNvbGxhcHNlZCgpLnZhbHVlKCl8fChyKz1lLmhlaWdodCgpLG8rPWUuc3RyZXRjaEZhY3RvcigpKX0pKTtjb25zdCBhPXRoaXMuY3JlYXRlUGFuZShlP24rMTpuLHZvaWQgMCx2b2lkIDAsTS5QYW5lTW9kZS5XaWRnZXQpO2lmKHI+dCl7Y29uc3QgZT10Km8vKHItdCk7YS5zZXRTdHJldGNoRmFjdG9yKGUpfXJldHVybiBhfX12YXIgUnU9aSg1NTY2NTEpLFZ1PWkoNzc1MjUzKSxCdT1pKDU5MTE5OCk7dmFyIE51PWkoODI1NjIxKSxPdT1pKDY4NTU1NSksV3U9aSg2NTU1ODQpO2NsYXNzIEZ1IGV4dGVuZHMgRS5VbmRvQ29tbWFuZHtjb25zdHJ1Y3RvcihlLHQsaSxzKXtzdXBlcihzKSx0aGlzLl9uZXdTb3VyY2VzTWV0cmljcz1uZXcgTWFwLAp0aGlzLl9vbGRTb3VyY2VzTWV0cmljcz1uZXcgTWFwLHRoaXMuX3Nob3dGYWRlPSExLHRoaXMuX2NoYXJ0TW9kZWw9ZTtjb25zdCBuPWUubWFpblNlcmllcygpO2Zvcihjb25zdCBlIG9mIHQuc2VyaWVzTGlrZVNvdXJjZXMoKSl7aWYoIWUuaXNWaXNpYmxlKCkpY29udGludWU7Y29uc3QgdD1pfHwoMCxBLnN5bWJvbE9yaWdpbmFsTWV0cmljKSgoMCxsLmVuc3VyZU5vdE51bGwpKGUuc3ltYm9sSW5mbygpKSx0aGlzLl9jaGFydE1vZGVsLm1ldHJpY0NvbnZlcnNpb25FbmFibGVkKCkpO3RoaXMuX25ld1NvdXJjZXNNZXRyaWNzLnNldChlLmlkKCksdCksdGhpcy5fb2xkU291cmNlc01ldHJpY3Muc2V0KGUuaWQoKSxlLm1ldHJpYygpKSx0aGlzLl9zaG93RmFkZT10aGlzLl9zaG93RmFkZXx8ZT09PW4mJmUubWV0cmljKCkhPT10fX1yZWRvKCl7dGhpcy5fYXBwbHlNZXRyaWNzKHRoaXMuX25ld1NvdXJjZXNNZXRyaWNzKX11bmRvKCl7dGhpcy5fYXBwbHlNZXRyaWNzKHRoaXMuX29sZFNvdXJjZXNNZXRyaWNzKX1fYXBwbHlNZXRyaWNzKGUpe2UuZm9yRWFjaCgoKGUsdCk9PnsoMCxsLmVuc3VyZU5vdE51bGwpKHRoaXMuX2NoYXJ0TW9kZWwuZGF0YVNvdXJjZUZvcklkKHQpKS5zZXRNZXRyaWMoZSl9KSksdGhpcy5fY2hhcnRNb2RlbC5zZWxlY3Rpb25NYWNybygoZT0+e2UuY2xlYXJTZWxlY3Rpb24oKX0pKSx0aGlzLl9zaG93RmFkZSYmdGhpcy5fY2hhcnRNb2RlbC51bmRvTW9kZWwoKS5sb2FkaW5nU2NyZWVuKCkuc2hvdyghMCl9fWNvbnN0IEh1PW5ldyB5LlRyYW5zbGF0ZWRTdHJpbmcoInpvb20iLHAudChudWxsLHZvaWQgMCxpKDI3ODU2NSkpKTtjbGFzcyB6dSBleHRlbmRzIEUuVW5kb0NvbW1hbmR7Y29uc3RydWN0b3IoZSx0LGkscyxuLHIpe3N1cGVyKEh1KSx0aGlzLl9iYXJTcGFjaW5nPW51bGwsdGhpcy5fcmlnaHRCYXJzT2Zmc2V0PW51bGwsdGhpcy5fbGVmdEJhcnNPZmZzZXQ9bnVsbCx0aGlzLl9wcmljZU1vZGU9bnVsbCx0aGlzLl9tb2RlbD1lLHRoaXMuX3N0YXJ0QmFyPXQsdGhpcy5fZW5kQmFyPWksdGhpcy5fc3RhcnRQcmljZT1zLHRoaXMuX2VuZFByaWNlPW4sdGhpcy5fcGFuZT1yfXJlZG8oKXtjb25zdCBlPSgwLGwuZW5zdXJlTm90TnVsbCkodGhpcy5fbW9kZWwudGltZVNjYWxlKCkudmlzaWJsZUJhcnNTdHJpY3RSYW5nZSgpKTt0aGlzLl9sZWZ0QmFyc09mZnNldD1lLmZpcnN0QmFyKCktdGhpcy5fc3RhcnRCYXIsdGhpcy5fcmlnaHRCYXJzT2Zmc2V0PWUubGFzdEJhcigpLXRoaXMuX2VuZEJhcix0aGlzLl9iYXJTcGFjaW5nPXRoaXMuX21vZGVsLnRpbWVTY2FsZSgpLmJhclNwYWNpbmcoKSx0aGlzLl9wcmljZU1vZGU9dGhpcy5fcGFuZS5kZWZhdWx0UHJpY2VTY2FsZSgpLm1vZGUoKSx0aGlzLl9tb2RlbC56b29tVG9WaWV3cG9ydCh0aGlzLl9zdGFydEJhcix0aGlzLl9lbmRCYXIsdGhpcy5fc3RhcnRQcmljZSx0aGlzLl9lbmRQcmljZSx0aGlzLl9wYW5lKX11bmRvKCl7Y29uc3QgZT10aGlzLl9tb2RlbC50aW1lU2NhbGUoKSx0PXRoaXMuX3BhbmUuZGVmYXVsdFByaWNlU2NhbGUoKSxpPSgwLGwuZW5zdXJlTm90TnVsbCkoZS52aXNpYmxlQmFyc1N0cmljdFJhbmdlKCkpO2Uuc2V0QmFyU3BhY2luZygoMCxsLmVuc3VyZU5vdE51bGwpKHRoaXMuX2JhclNwYWNpbmcpKSxlLnpvb21Ub0JhcnNSYW5nZShpLmZpcnN0QmFyKCkrKDAsbC5lbnN1cmVOb3ROdWxsKSh0aGlzLl9sZWZ0QmFyc09mZnNldCksaS5sYXN0QmFyKCkrKDAsbC5lbnN1cmVOb3ROdWxsKSh0aGlzLl9yaWdodEJhcnNPZmZzZXQpKSx0LnNldE1vZGUoKDAsbC5lbnN1cmVOb3ROdWxsKSh0aGlzLl9wcmljZU1vZGUpKSx0LnJlY2FsY3VsYXRlUHJpY2VSYW5nZSgoMCxsLmVuc3VyZU5vdE51bGwpKGUudmlzaWJsZUJhcnNTdHJpY3RSYW5nZSgpKSwoMCxsLmVuc3VyZU5vdE51bGwpKGUubG9naWNhbFJhbmdlKCkpKSx0aGlzLl9tb2RlbC5yZWNhbGN1bGF0ZUFsbFBhbmVzKCgwLHRuLnZpZXdwb3J0Q2hhbmdlRXZlbnQpKCkpLHRoaXMuX21vZGVsLmxpZ2h0VXBkYXRlKCl9fWNvbnN0IFV1PSgwLGMuZ2V0TG9nZ2VyKSgiQ2hhcnQuQ2hhcnRVbmRvTW9kZWwiKSxHdT1uZXcgeS5UcmFuc2xhdGVkU3RyaW5nKCJ6b29tIixwLnQobnVsbCx2b2lkIDAsaSgyNzg1NjUpKSk7Y2xhc3MganUgZXh0ZW5kcyBFLlVuZG9Db21tYW5ke2NvbnN0cnVjdG9yKGUsdCxpKXtzdXBlcihHdSksdGhpcy5fYmFzZUNtZD1lLHRoaXMuX3pvb21TdGFjaz10LHRoaXMuX2luT3V0PWl9dW5kbyhlKXtpZih0aGlzLl9pbk91dCl7aWYodGhpcy5fYmFzZUNtZCE9PXRoaXMuX3pvb21TdGFjay5oZWFkKCkpcmV0dXJuIHZvaWQgVXUubG9nRGVidWcoInpvb20gc3RhY2sgaW5jb25zaXN0ZW5jeSIpO3RoaXMuX2Jhc2VDbWQudW5kbyhlKSx0aGlzLl96b29tU3RhY2sucG9wKCl9ZWxzZSB0aGlzLl9iYXNlQ21kLnJlZG8oZSksdGhpcy5fem9vbVN0YWNrLnB1c2godGhpcy5fYmFzZUNtZCl9cmVkbyhlKXtpZih0aGlzLl9pbk91dCl0aGlzLl9iYXNlQ21kLnJlZG8oZSksdGhpcy5fem9vbVN0YWNrLnB1c2godGhpcy5fYmFzZUNtZCk7ZWxzZXtpZih0aGlzLl9iYXNlQ21kIT09dGhpcy5fem9vbVN0YWNrLmhlYWQoKSlyZXR1cm4gdm9pZCBVdS5sb2dEZWJ1Zygiem9vbSBzdGFjayBpbmNvbnNpc3RlbmN5Iik7dGhpcy5fYmFzZUNtZC51bmRvKGUpLHRoaXMuX3pvb21TdGFjay5wb3AoKX19fWNvbnN0IHF1PW5ldyB5LlRyYW5zbGF0ZWRTdHJpbmcoInN0b3Agc3luY2luZyBkcmF3aW5nIixwLnQobnVsbCx2b2lkIDAsaSg0ODg4ODEpKSk7Y2xhc3MgJHUgZXh0ZW5kcyBFLlVuZG9Db21tYW5ke2NvbnN0cnVjdG9yKGUsdCl7c3VwZXIocXUsdm9pZCAwLCFRbi5saW5lVG9vbHNEb05vdEFmZmVjdENoYXJ0SW52YWxpZGF0aW9uKSx0aGlzLl9tb2RlbD1lLHRoaXMuX3NvdXJjZUlkPXQuaWQoKSx0aGlzLl9saW5rS2V5PXQubGlua0tleSgpLnZhbHVlKCl9cmVkbygpeygwLGwuZW5zdXJlTm90TnVsbCkodGhpcy5fbW9kZWwuZGF0YVNvdXJjZUZvcklkKHRoaXMuX3NvdXJjZUlkKSkubGlua0tleSgpLnNldFZhbHVlKG51bGwpfXVuZG8oKXsoMCwKbC5lbnN1cmVOb3ROdWxsKSh0aGlzLl9tb2RlbC5kYXRhU291cmNlRm9ySWQodGhpcy5fc291cmNlSWQpKS5saW5rS2V5KCkuc2V0VmFsdWUodGhpcy5fbGlua0tleSl9fXZhciBZdT1pKDMxNjY1NSk7Y29uc3QgS3U9bmV3IHkuVHJhbnNsYXRlZFN0cmluZygicmVzdG9yZSBkZWZhdWx0cyIscC50KG51bGwsdm9pZCAwLGkoMTI5NTEwKSkpO2NsYXNzIFh1IGV4dGVuZHMgRS5VbmRvQ29tbWFuZHtjb25zdHJ1Y3RvcihlLHQsaT1LdSxzPSEwKXtzdXBlcihpLHZvaWQgMCxzKSx0aGlzLl9jaGFydE1vZGVsPWU7Y29uc3Qgbj10LnBhdGhUb1Jvb3QoKTt0aGlzLl90YXJnZXRPYmo9KDAsWXUuaXNSb290UGF0aCkobik/bjp0LHRoaXMuX3N0YXRlPXQuc3RhdGUoKX1yZWRvKHtjaGFydFdpZGdldENvbGxlY3Rpb246ZX0peygwLEdyLmFsbG93U2F2aW5nRGVmYXVsdHMpKCEwKSx0aGlzLl9jaGFydE1vZGVsLnJlc3RvcmVGYWN0b3J5RGVmYXVsdHModGhpcy5fZ2V0UHJvcGVydHkoZSkpLCgwLEdyLmFsbG93U2F2aW5nRGVmYXVsdHMpKCExKX11bmRvKHtjaGFydFdpZGdldENvbGxlY3Rpb246ZX0peygwLEdyLmFsbG93U2F2aW5nRGVmYXVsdHMpKCEwKSx0aGlzLl9nZXRQcm9wZXJ0eShlKS5tZXJnZUFuZEZpcmUodGhpcy5fc3RhdGUpLCgwLEdyLmFsbG93U2F2aW5nRGVmYXVsdHMpKCExKSx0aGlzLl9jaGFydE1vZGVsLm1haW5TZXJpZXMoKS5vbkNoYXJ0U3R5bGVDaGFuZ2VkKCl9X2dldFByb3BlcnR5KGUpe2NvbnN0IHQ9dGhpcy5fdGFyZ2V0T2JqO3JldHVybiJzdHJpbmciPT10eXBlb2YgdD8oMCxZdS5wcm9wZXJ0eUJ5UGF0aCkoZSx0KTp0fX1jbGFzcyBadSBleHRlbmRzIFh1e2NvbnN0cnVjdG9yKGUsdCxpLHMpe3N1cGVyKGUsdCxpLHM/PyFRbi5saW5lVG9vbHNEb05vdEFmZmVjdENoYXJ0SW52YWxpZGF0aW9uKX1yZWRvKGUpeygwLEdyLmFsbG93U2F2aW5nRGVmYXVsdHMpKCEwKSx0aGlzLl9nZXRQcm9wZXJ0eShlLmNoYXJ0V2lkZ2V0Q29sbGVjdGlvbikuY2hpbGQoImludGVydmFsc1Zpc2liaWxpdGllcyIpPy5tZXJnZUFuZEZpcmUoaHUuaW50ZXJ2YWxzVmlzaWJpbGl0aWVzRGVmYXVsdHMpLHN1cGVyLnJlZG8oZSksKDAsR3IuYWxsb3dTYXZpbmdEZWZhdWx0cykoITEpfX1jb25zdCBKdT1uZXcgeS5UcmFuc2xhdGVkU3RyaW5nKCJyZXN0b3JlIHN0dWR5IGRlZmF1bHRzIixwLnQobnVsbCx2b2lkIDAsaSg2NjI5MDMpKSk7Y2xhc3MgUXUgZXh0ZW5kcyBadXtjb25zdHJ1Y3RvcihlLHQsaT1KdSl7c3VwZXIoZSx0LnByb3BlcnRpZXMoKSxpLCEwKSx0aGlzLl9zdHVkeUlkPXQuaWQoKX1yZWRvKGUpe3N1cGVyLnJlZG8oZSksdGhpcy5fY2hhcnRNb2RlbC5yZWNhbGNDb2xvclN0dWRpZXMoITApLHRoaXMuX3BhdGNoUHJvcGVydGllcygpfXVuZG8oZSl7c3VwZXIudW5kbyhlKSx0aGlzLl9jaGFydE1vZGVsLnJlY2FsY0NvbG9yU3R1ZGllcyghMCksdGhpcy5fcGF0Y2hQcm9wZXJ0aWVzKCl9X3BhdGNoUHJvcGVydGllcygpe3tjb25zdCBlPXRoaXMuX2NoYXJ0TW9kZWwuZ2V0U3R1ZHlCeUlkKHRoaXMuX3N0dWR5SWQpO2lmKCFlKXRocm93IG5ldyBFcnJvcigiU3R1ZHkgaXMgbm90IGRlZmluZWQiKTtlLnBhdGNoUHJvcGVydGllc0FmdGVyUmVzZXREZWZhdWx0cygpfX19ZnVuY3Rpb24gZXAoZSx0KXtyZXR1cm4oMCxHci5leHRyYWN0U3RhdGUpKGUsdC5tYXAoKGU9PmUucGF0aCkpKX1jb25zdCB0cD1uZXcgeS5UcmFuc2xhdGVkU3RyaW5nKCJhcHBseSBjaGFydCB0aGVtZSIscC50KG51bGwsdm9pZCAwLGkoNjQ3NjU2KSkpO2NsYXNzIGlwIGV4dGVuZHMgRS5VbmRvQ29tbWFuZHtjb25zdHJ1Y3RvcihlLHQsaSl7c3VwZXIodHApLHRoaXMuX21vZGVsPWUsdC5zZXNzaW9ucyYmKHRoaXMuX25ld1Nlc3Npb25Qcm9wcz1pP3Quc2Vzc2lvbnM6ZXAodC5zZXNzaW9ucywoMCxHci5leHRyYWN0VGhlbWVkQ29sb3JzKSh4dC5saWdodFRoZW1lLmNvbnRlbnQuc2Vzc2lvbnMseHQuZGFya1RoZW1lLmNvbnRlbnQuc2Vzc2lvbnMpKSksdGModC5tYWluU291cmNlUHJvcGVydGllcy5jYW5kbGVTdHlsZSksdGModC5tYWluU291cmNlUHJvcGVydGllcy5ob2xsb3dDYW5kbGVTdHlsZSksdGModC5tYWluU291cmNlUHJvcGVydGllcy5oYVN0eWxlKTtjb25zdCBzPXQ7cy5jaGFydFByb3BlcnRpZXM9cy5jaGFydFByb3BlcnRpZXM/P3twYW5lUHJvcGVydGllczp7fSxzY2FsZXNQcm9wZXJ0aWVzOnZvaWQgMH0sWGgocy5jaGFydFByb3BlcnRpZXMucGFuZVByb3BlcnRpZXMpO2NvbnN0IG49dGhpcy5fbW9kZWwucHJvcGVydGllcygpLnN0YXRlKCkucGFuZVByb3BlcnRpZXMubGVnZW5kUHJvcGVydGllcztkZWxldGUgbi5iYWNrZ3JvdW5kVHJhbnNwYXJlbmN5O2NvbnN0IHI9cy5jaGFydFByb3BlcnRpZXMucGFuZVByb3BlcnRpZXM7aSYmKHIubGVnZW5kUHJvcGVydGllcz17Li4uci5sZWdlbmRQcm9wZXJ0aWVzLC4uLm59KTtjb25zdCBvPSgwLFdvLmRlZmF1bHQpKCgwLCRsLmZhY3RvcnlEZWZhdWx0cykoImNoYXJ0cHJvcGVydGllcyIpKTtpZihkZWxldGUgby50aW1lem9uZSxpKXtjb25zdCBlPW8ucGFuZVByb3BlcnRpZXM7ZSYmKGRlbGV0ZSBlLnRvcE1hcmdpbixkZWxldGUgZS5ib3R0b21NYXJnaW4pfWNvbnN0IGE9KDAseGkuZGVlcEV4dGVuZCkoe30sbyx0LmNoYXJ0UHJvcGVydGllcyk7dGhpcy5fbmV3Q2hhcnRQcm9wcz1pP2E6ZXAoYSwoMCxHci5leHRyYWN0VGhlbWVkQ29sb3JzKSh4dC5saWdodFRoZW1lLmNvbnRlbnQuY2hhcnRQcm9wZXJ0aWVzLHh0LmRhcmtUaGVtZS5jb250ZW50LmNoYXJ0UHJvcGVydGllcykpLGUudGltZVNjYWxlKCkucHJlc2VydmVCYXJTcGFjaW5nKCkmJiJiYXJTcGFjaW5nImluIHRoaXMuX25ld0NoYXJ0UHJvcHMuc2NhbGVzUHJvcGVydGllcyYmZGVsZXRlIHRoaXMuX25ld0NoYXJ0UHJvcHMuc2NhbGVzUHJvcGVydGllcy5iYXJTcGFjaW5nLGljKHQubWFpblNvdXJjZVByb3BlcnRpZXMubGluZVN0eWxlKSxpYyh0Lm1haW5Tb3VyY2VQcm9wZXJ0aWVzLmxpbmVXaXRoTWFya2Vyc1N0eWxlKSxpYyh0Lm1haW5Tb3VyY2VQcm9wZXJ0aWVzLnN0ZXBsaW5lU3R5bGUpCjtjb25zdCBsPSgwLCRsLmZhY3RvcnlEZWZhdWx0cykoImNoYXJ0cHJvcGVydGllcy5tYWluU2VyaWVzUHJvcGVydGllcyIpLGM9KDAseGkuZGVlcEV4dGVuZCkoe30sbCx0Lm1haW5Tb3VyY2VQcm9wZXJ0aWVzKTtpJiYoZGVsZXRlIGMudmlzaWJsZSxkZWxldGUgYy5zeW1ib2wsZGVsZXRlIGMuc2hvcnROYW1lLGRlbGV0ZSBjLnRpbWVmcmFtZSxkZWxldGUgYy5pbnRlcnZhbCxkZWxldGUgYy5jdXJyZW5jeUlkLGRlbGV0ZSBjLnVuaXRJZCxkZWxldGUgYy5zZXNzaW9uSWQsZGVsZXRlIGMuZXNkQnJlYWtzU3R5bGUpLHRoaXMuX25ld1Nlcmllc1Byb3BzPWk/YzplcChjLCgwLEdyLmV4dHJhY3RUaGVtZWRDb2xvcnMpKHh0LmxpZ2h0VGhlbWUuY29udGVudC5tYWluU291cmNlUHJvcGVydGllcyx4dC5kYXJrVGhlbWUuY29udGVudC5tYWluU291cmNlUHJvcGVydGllcykpLHRoaXMuX29sZENoYXJ0UHJvcHM9aT9lLnByb3BlcnRpZXMoKS5zdGF0ZSgpOmUucHJvcGVydGllcygpLnRoZW1lU3RhdGUoKSx0aGlzLl9vbGRTZXJpZXNQcm9wcz1pP2UubWFpblNlcmllcygpLnByb3BlcnRpZXMoKS5zdGF0ZSgpOmUubWFpblNlcmllcygpLnByb3BlcnRpZXMoKS50aGVtZVN0YXRlKCksdGhpcy5fb2xkU2Vzc2lvblByb3BzPWk/dGhpcy5fbW9kZWwuc2Vzc2lvbnMoKS5wcm9wZXJ0aWVzKCkuc3RhdGUoKTp0aGlzLl9tb2RlbC5zZXNzaW9ucygpLnByb3BlcnRpZXMoKS50aGVtZVN0YXRlKCl9dW5kbygpe3RoaXMuX21lcmdlKHRoaXMuX29sZENoYXJ0UHJvcHMsdGhpcy5fb2xkU2VyaWVzUHJvcHMsdGhpcy5fb2xkU2Vzc2lvblByb3BzKSx0aGlzLl9tb2RlbC5tYWluU2VyaWVzKCkub25DaGFydFN0eWxlQ2hhbmdlZCgpLHRoaXMuX21vZGVsLnVwZGF0ZVNjYWxlcygpLHRoaXMuX21vZGVsLmNoYXJ0VGhlbWVMb2FkZWQoKX1yZWRvKCl7dGhpcy5fbWVyZ2UodGhpcy5fbmV3Q2hhcnRQcm9wcyx0aGlzLl9uZXdTZXJpZXNQcm9wcyx0aGlzLl9uZXdTZXNzaW9uUHJvcHMpLHRoaXMuX21vZGVsLm1haW5TZXJpZXMoKS5vbkNoYXJ0U3R5bGVDaGFuZ2VkKCksdGhpcy5fbW9kZWwudXBkYXRlU2NhbGVzKCksdGhpcy5fbW9kZWwuY2hhcnRUaGVtZUxvYWRlZCgpfV9tZXJnZShlLHQsaSl7Y29uc3Qgcz10aGlzLl9tb2RlbDsoMCxHci5hbGxvd1NhdmluZ0RlZmF1bHRzKSghMCk7Y29uc3Qgbj1zLnByb3BlcnRpZXMoKSxyPXMubWFpblNlcmllcygpLnByb3BlcnRpZXMoKSxvPXMuc2Vzc2lvbnMoKS5wcm9wZXJ0aWVzKCk7bi5hcHBseURlZmF1bHRUaGVtZWRQcm9wZXJ0aWVzKEQud2F0Y2hlZFRoZW1lLnZhbHVlKCkpLG4ubWVyZ2VBbmRGaXJlKGUpLG4uc2F2ZURlZmF1bHRzKCksInByaWNlQXhpc1Byb3BlcnRpZXMiaW4gdCYmcy5tYWluU2VyaWVzKCkucHJpY2VTY2FsZSgpLnNldE1vZGUoe2F1dG9TY2FsZTp0LnByaWNlQXhpc1Byb3BlcnRpZXM/LmF1dG9TY2FsZSxwZXJjZW50YWdlOnQucHJpY2VBeGlzUHJvcGVydGllcz8ucGVyY2VudGFnZSxsb2c6dC5wcmljZUF4aXNQcm9wZXJ0aWVzPy5sb2csbG9ja1NjYWxlOnQucHJpY2VBeGlzUHJvcGVydGllcz8ubG9ja1NjYWxlfSksci5hcHBseURlZmF1bHRUaGVtZWRQcm9wZXJ0aWVzKEQud2F0Y2hlZFRoZW1lLnZhbHVlKCkpLHIubG9hZFRoZW1lU3RhdGUodCksci5zYXZlRGVmYXVsdHMoKSxzLm1haW5TZXJpZXMoKS5jcmVhdGVQYW5lVmlldygpLHMubWFpblNlcmllcygpLmludmFsaWRhdGVCYXJTdHlsZXNDYWNoZSgpLHMucmVjYWxjdWxhdGVBbGxQYW5lcygoMCx0bi5nbG9iYWxDaGFuZ2VFdmVudCkoKSksaSYmKG8uYXBwbHlEZWZhdWx0VGhlbWVkUHJvcGVydGllcyhELndhdGNoZWRUaGVtZS52YWx1ZSgpKSxvLmxvYWRUaGVtZVN0YXRlKGkpLG8uc2F2ZURlZmF1bHRzKCkpLHMuZnVsbFVwZGF0ZSgpLCgwLEdyLmFsbG93U2F2aW5nRGVmYXVsdHMpKCExKX19Y29uc3Qgc3A9bmV3IHkuVHJhbnNsYXRlZFN0cmluZygiY2hhbmdlIHJlc29sdXRpb24iLHAudChudWxsLHZvaWQgMCxpKDc0MzM0MSkpKTtjbGFzcyBucCBleHRlbmRzIEJve2NvbnN0cnVjdG9yKGUsdCxpKXtzdXBlcihzcCxlLGZ1bmN0aW9uKGUsdCl7bGV0IGk7Y29uc3Qgcz0oMCxBLmlzUmFuZ2VTdHlsZSkoZS5zdHlsZSgpKSxuPXguSW50ZXJ2YWwuaXNSYW5nZSh0KTtyZXR1cm4hcyYmbj9pPTExOnMmJiFuJiYoaT0oMCxBLmdldExhc3RVc2VkU3R5bGUpKCkpLHtpbnRlcnZhbDp0LHN0eWxlOml9fShlLHQpLGkpLHRoaXMuX3Jlc29sdXRpb249dH1jYW5NZXJnZShlKXtyZXR1cm4gZSBpbnN0YW5jZW9mIG5wJiZlLl9yZXNvbHV0aW9uPT09dGhpcy5fcmVzb2x1dGlvbiYmc3VwZXIuY2FuTWVyZ2UoZSl9X3Nob3dGYWRlKGUsdCl7cmV0dXJuITB9fWNsYXNzIHJwIGV4dGVuZHMgTntjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5fZmlyc3RSZWRvPSEwfXJlZG8oKXt0aGlzLl9maXJzdFJlZG98fCgwLFoubXV0ZUxpbmtpbmdHcm91cCkodGhpcy5fbmV3VmFsdWUsITApLCgwLFoubXV0ZUxpbmtpbmdHcm91cCkodGhpcy5fb2xkVmFsdWUsITApLHN1cGVyLnJlZG8oKSx0aGlzLl9maXJzdFJlZG98fCgwLFoubXV0ZUxpbmtpbmdHcm91cCkodGhpcy5fbmV3VmFsdWUsITEpLCgwLFoubXV0ZUxpbmtpbmdHcm91cCkodGhpcy5fb2xkVmFsdWUsITEpLHRoaXMuX2ZpcnN0UmVkbz0hMX11bmRvKCl7KDAsWi5tdXRlTGlua2luZ0dyb3VwKSh0aGlzLl9uZXdWYWx1ZSwhMCksKDAsWi5tdXRlTGlua2luZ0dyb3VwKSh0aGlzLl9vbGRWYWx1ZSwhMCksc3VwZXIudW5kbygpLCgwLFoubXV0ZUxpbmtpbmdHcm91cCkodGhpcy5fbmV3VmFsdWUsITEpLCgwLFoubXV0ZUxpbmtpbmdHcm91cCkodGhpcy5fb2xkVmFsdWUsITEpfX12YXIgb3A9aSg1MjkxNjUpO2NsYXNzIGFwIGV4dGVuZHMgRS5VbmRvQ29tbWFuZHtjb25zdHJ1Y3RvcihlLHQsaSl7c3VwZXIoaSksdGhpcy5fY2hhcnRNb2RlbD1lLHRoaXMuX3N0dWJEZXNjcmlwdG9yPSgwLGwuZW5zdXJlTm90TnVsbCkodC5nZXREZXNjcmlwdG9yKCkpfXJlZG8oKXsKdGhpcy5fY2hhcnRNb2RlbC5kYXRhU291cmNlRm9ySWQodGhpcy5fc3R1YkRlc2NyaXB0b3IuaWQpfHx0aGlzLl9jaGFydE1vZGVsLnJlc3RvcmVTdHVkeVN0dWIodGhpcy5fc3R1YkRlc2NyaXB0b3IpfXVuZG8oKXt0aGlzLl9jaGFydE1vZGVsLnJlbW92ZVN0dWR5U3R1Yih0aGlzLl9zdHViRGVzY3JpcHRvci5pZCl9fWNsYXNzIGxwIGV4dGVuZHMgRS5VbmRvQ29tbWFuZHtjb25zdHJ1Y3RvcihlLHQsaSl7c3VwZXIoaSx2b2lkIDAsIVFuLmxpbmVUb29sc0RvTm90QWZmZWN0Q2hhcnRJbnZhbGlkYXRpb24pLHRoaXMuX3NvdXJjZT1lLHRoaXMuX25ld1N0YXRlPXQsdGhpcy5fb2xkU3RhdGU9ZS5wcm9wZXJ0aWVzKCkuc3RhdGUoKX1yZWRvKCl7dGhpcy5fc291cmNlLmFwcGx5VGVtcGxhdGUodGhpcy5fbmV3U3RhdGUpfXVuZG8oKXt0aGlzLl9zb3VyY2UuYXBwbHlUZW1wbGF0ZSh0aGlzLl9vbGRTdGF0ZSl9fXZhciBjcD1pKDIxNDc3MSksaHA9aSg5MjMxNzYpLGRwPWkoMjU1MDM2KSx1cD1pKDcxNDM1KSxwcD1pKDc2NzcwNCksX3A9aSgyNTk5OTgpO2NvbnN0IG1wPW5ldyB5LlRyYW5zbGF0ZWRTdHJpbmcoImFwcGx5IGFsbCBjaGFydCBwcm9wZXJ0aWVzIixwLnQobnVsbCx2b2lkIDAsaSgzNDc1ODUpKSk7Y2xhc3MgZ3AgZXh0ZW5kcyBFLlVuZG9Db21tYW5ke2NvbnN0cnVjdG9yKGUsdCl7c3VwZXIobXApLHRoaXMuX3ByZWZzPW51bGwsdGhpcy5fb2xkTm9Db25maXJtRW5hYmxlZD1udWxsLHRoaXMuX29sZFNob3dPbmx5UmVqZWN0aW9uTm90aWZpY2F0aW9ucz1udWxsLHRoaXMuX29sZFNob3dQcmljZXNXaXRoWmVyb1ZvbHVtZT1udWxsLHRoaXMuX29sZFNob3dQcmljZXNXaXRoU3ByZWFkPW51bGwsdGhpcy5fb2xkT3JkZXJFeGVjdXRlZFNvdW5kRW5hYmxlZD1udWxsLHRoaXMuX3ByZXZXYXRlcm1hcmtQcmVmZXJlbmNlcz1udWxsLHRoaXMuX3ByZXZBbGVydExhYmVsc1ByZWZlcmVuY2VzPW51bGwsdGhpcy5fcHJldkFsZXJ0Tm90aWZpY2F0aW9uc1ByZWZlcmVuY2VzPW51bGwsdGhpcy5fbW9kZWw9ZSx0aGlzLl9wcmVmcz10LnZhbHVlKCk/LmdldFByZWZzKCk/P251bGwsbnVsbCE9PXRoaXMuX3ByZWZzJiYodGhpcy5fb2xkTm9Db25maXJtRW5hYmxlZD10aGlzLl9wcmVmcy5ub0NvbmZpcm1FbmFibGVkLnZhbHVlKCksdGhpcy5fb2xkU2hvd09ubHlSZWplY3Rpb25Ob3RpZmljYXRpb25zPXRoaXMuX3ByZWZzLnNob3dPbmx5UmVqZWN0aW9uTm90aWZpY2F0aW9ucy52YWx1ZSgpLHRoaXMuX29sZFNob3dQcmljZXNXaXRoWmVyb1ZvbHVtZT10aGlzLl9wcmVmcy5zaG93UHJpY2VzV2l0aC56ZXJvVm9sdW1lLnZhbHVlKCksdGhpcy5fb2xkU2hvd1ByaWNlc1dpdGhTcHJlYWQ9dGhpcy5fcHJlZnMuc2hvd1ByaWNlc1dpdGguc3ByZWFkLnZhbHVlKCksdGhpcy5fb2xkT3JkZXJFeGVjdXRlZFNvdW5kRW5hYmxlZD10aGlzLl9wcmVmcy5vcmRlckV4ZWN1dGVkU291bmRQYXJhbXMuZW5hYmxlZC52YWx1ZSgpKSx0aGlzLl9kZWZhdWx0c1ByZWZlcmVuY2VzPSgwLGN1LmRlZmF1bHRzUHJlZmVyZW5jZXNCeVdoaXRlTGlzdCkodGhpcy5fbW9kZWwsdGhpcy5fbW9kZWwubWFpblNlcmllcygpKSx0aGlzLl9vbGRQcmVmZXJlbmNlcz1lLnByZWZlcmVuY2VzKCksdGhpcy5fcHJldkRhdGVGb3JtYXQ9aWguZGF0ZUZvcm1hdFByb3BlcnR5LnZhbHVlKCksdGhpcy5fcHJldkFsZXJ0TGFiZWxzUHJlZmVyZW5jZXM9KDAsX3AuZ2V0TGFiZWxzU2V0dGluZ3NQcm9wZXJ0eSkoKS5zdGF0ZSgpLHRoaXMuX3ByZXZBbGVydE5vdGlmaWNhdGlvbnNQcmVmZXJlbmNlcz0oMCxfcC5nZXROb3RpZmljYXRpb25zU2V0dGluZ3NQcm9wZXJ0eSkoKS5zdGF0ZSgpLHRoaXMuX21vZGVsLm9uV2lkZ2V0KCl8fCh0aGlzLl9wcmV2V2l0aFdlZWtkYXk9bGgud2l0aFdlZWtkYXlQcm9wZXJ0eS52YWx1ZSgpKSx0aGlzLl9wcmV2VGltZUhvdXJzRm9ybWF0PVRjLnRpbWVIb3Vyc0Zvcm1hdFByb3BlcnR5LnZhbHVlKCksdGhpcy5fcHJldkFkZFBsdXNCdXR0b249ZGQuYWRkUGx1c0J1dHRvblByb3BlcnR5LnZhbHVlKCksdGhpcy5fcHJldlNob3dPcGVuTWFya2VyU3RhdHVzPWNwLnNob3dNYXJrZXRPcGVuU3RhdHVzUHJvcGVydHkudmFsdWUoKSx0aGlzLl9wcmV2Q3VycmVuY3lVbml0TWV0cmljVmlzaWJpbGl0eT0oMCxycy5jdXJyZW5jeVVuaXRNZXRyaWNWaXNpYmlsaXR5UHJvcGVydHkpKCkudmFsdWUoKSx0aGlzLl9wcmV2QXV0b0xvZ0J1dHRvbnNWaXNpYmlsaXR5PSgwLG9zLmF1dG9Mb2dCdXR0b25zVmlzaWJpbGl0eVByb3BlcnR5KSgpLnZhbHVlKCksdGhpcy5fcHJldk5hdmlnYXRpb25CdXR0b25zVmlzaWJpbGl0eT0oMCxocC5wcm9wZXJ0eSkoKS52YWx1ZSgpLHRoaXMuX3ByZXZQYW5lQnV0dG9uc1Zpc2liaWxpdHk9KDAsZHAucHJvcGVydHkpKCkudmFsdWUoKTtjb25zdCBpPXRoaXMuX21vZGVsLndhdGVybWFya1NvdXJjZSgpO251bGwhPT1pJiYodGhpcy5fcHJldldhdGVybWFya1ByZWZlcmVuY2VzPWkucHJvcGVydGllcygpLnN0YXRlKCkpfXJlZG8oKXtudWxsIT09dGhpcy5fcHJlZnMmJih0aGlzLl9wcmVmcy5ub0NvbmZpcm1FbmFibGVkLnNldFZhbHVlKCExKSx0aGlzLl9wcmVmcy5zaG93T25seVJlamVjdGlvbk5vdGlmaWNhdGlvbnMuc2V0VmFsdWUoITEpLHRoaXMuX3ByZWZzLnNob3dQcmljZXNXaXRoLnplcm9Wb2x1bWUuc2V0VmFsdWUoITApLHRoaXMuX3ByZWZzLnNob3dQcmljZXNXaXRoLnNwcmVhZC5zZXRWYWx1ZSghMCksdGhpcy5fcHJlZnMub3JkZXJFeGVjdXRlZFNvdW5kUGFyYW1zLmVuYWJsZWQuc2V0VmFsdWUoITEpLHRoaXMuX3ByZWZzLm9yZGVyRXhlY3V0ZWRTb3VuZFBhcmFtcy52b2x1bWUuc2V0VmFsdWUoLjUpKSwiQXV0byI9PT10aGlzLl9kZWZhdWx0c1ByZWZlcmVuY2VzLm1haW5TZXJpZXM/LnRwb1N0eWxlPy5pbnB1dHM/LnJvd1NpemUmJmRlbGV0ZSB0aGlzLl9kZWZhdWx0c1ByZWZlcmVuY2VzLm1haW5TZXJpZXMudHBvU3R5bGUuaW5wdXRzLnRpY2tzUGVyUm93LHRoaXMuX21vZGVsLmFwcGx5UHJlZmVyZW5jZXModGhpcy5fZGVmYXVsdHNQcmVmZXJlbmNlcyksCnRoaXMuX21vZGVsLnVwZGF0ZVNjYWxlcygpLCgwLGloLnJlc3RvcmVEYXRlRm9ybWF0U2V0dGluZ3NWYWx1ZSkoKSwoMCxUYy5yZXN0b3JlVGltZUhvdXJzRm9ybWF0U2V0dGluZ3NWYWx1ZSkoKSwoMCxkZC5yZXN0b3JlQWRkUGx1c0J1dHRvblNldHRpbmdzVmFsdWUpKCksKDAsY3AucmVzdG9yZVNob3dNYXJrZXRPcGVuU3RhdHVzUHJvcGVydHkpKCksKDAscnMucmVzdG9yZUN1cnJlbmN5VW5pdE1ldHJpY1Zpc2liaWxpdHlTZXR0aW5nc1ZhbHVlKSgpLCgwLG9zLnJlc3RvcmVBdXRvTG9nQnV0dG9uc1Zpc2liaWxpdHlTZXR0aW5nc1ZhbHVlKSgpLCgwLGhwLnJlc3RvcmVOYXZpZ2F0aW9uQnV0dG9uc1Zpc2liaWxpdHlTZXR0aW5nc1ZhbHVlKSgpLCgwLGRwLnJlc3RvcmVQYW5lQnV0dG9uc1Zpc2liaWxpdHlTZXR0aW5nc1ZhbHVlKSgpLCgwLGxoLnJlc3RvcmVXaXRoV2Vla2RheVNldHRpbmdzVmFsdWUpKCksKDAscHAucmVzdG9yZVNob3dPblNjcmVlbnNob3RTZXR0aW5nc1ZhbHVlKSgpLCgwLHVwLnJlc3RvcmVTaG93TmV3c05vdGlmaWNhdGlvblNldHRpbmdzVmFsdWUpKCksKDAsX3AucmVzdG9yZVNldHRpbmdzUHJvcGVydHkpKCk7Y29uc3QgZT10aGlzLl9tb2RlbC53YXRlcm1hcmtTb3VyY2UoKTtudWxsIT09ZSYmZS5yZXN0b3JlUHJvcGVydGllc0RlZmF1bHRzKCl9dW5kbygpe251bGwhPT10aGlzLl9wcmVmcyYmKHRoaXMuX3ByZWZzLm5vQ29uZmlybUVuYWJsZWQuc2V0VmFsdWUoKDAsbC5lbnN1cmVOb3ROdWxsKSh0aGlzLl9vbGROb0NvbmZpcm1FbmFibGVkKSksdGhpcy5fcHJlZnMuc2hvd09ubHlSZWplY3Rpb25Ob3RpZmljYXRpb25zLnNldFZhbHVlKCgwLGwuZW5zdXJlTm90TnVsbCkodGhpcy5fb2xkU2hvd09ubHlSZWplY3Rpb25Ob3RpZmljYXRpb25zKSksdGhpcy5fcHJlZnMuc2hvd1ByaWNlc1dpdGguemVyb1ZvbHVtZS5zZXRWYWx1ZSgoMCxsLmVuc3VyZU5vdE51bGwpKHRoaXMuX29sZFNob3dQcmljZXNXaXRoWmVyb1ZvbHVtZSkpLHRoaXMuX3ByZWZzLnNob3dQcmljZXNXaXRoLnNwcmVhZC5zZXRWYWx1ZSgoMCxsLmVuc3VyZU5vdE51bGwpKHRoaXMuX29sZFNob3dQcmljZXNXaXRoU3ByZWFkKSksdGhpcy5fcHJlZnMub3JkZXJFeGVjdXRlZFNvdW5kUGFyYW1zLmVuYWJsZWQuc2V0VmFsdWUoKDAsbC5lbnN1cmVOb3ROdWxsKSh0aGlzLl9vbGRPcmRlckV4ZWN1dGVkU291bmRFbmFibGVkKSkpLHRoaXMuX21vZGVsLmFwcGx5UHJlZmVyZW5jZXModGhpcy5fb2xkUHJlZmVyZW5jZXMpLHRoaXMuX21vZGVsLnVwZGF0ZVNjYWxlcygpLGloLmRhdGVGb3JtYXRQcm9wZXJ0eS5zZXRWYWx1ZSh0aGlzLl9wcmV2RGF0ZUZvcm1hdCksVGMudGltZUhvdXJzRm9ybWF0UHJvcGVydHkuc2V0VmFsdWUodGhpcy5fcHJldlRpbWVIb3Vyc0Zvcm1hdCksY3Auc2hvd01hcmtldE9wZW5TdGF0dXNQcm9wZXJ0eS5zZXRWYWx1ZSh0aGlzLl9wcmV2U2hvd09wZW5NYXJrZXJTdGF0dXMpLGRkLmFkZFBsdXNCdXR0b25Qcm9wZXJ0eS5zZXRWYWx1ZSh0aGlzLl9wcmV2QWRkUGx1c0J1dHRvbiksKDAscnMuY3VycmVuY3lVbml0TWV0cmljVmlzaWJpbGl0eVByb3BlcnR5KSgpLnNldFZhbHVlKHRoaXMuX3ByZXZDdXJyZW5jeVVuaXRNZXRyaWNWaXNpYmlsaXR5KSwoMCxvcy5hdXRvTG9nQnV0dG9uc1Zpc2liaWxpdHlQcm9wZXJ0eSkoKS5zZXRWYWx1ZSh0aGlzLl9wcmV2QXV0b0xvZ0J1dHRvbnNWaXNpYmlsaXR5KSwoMCxocC5wcm9wZXJ0eSkoKS5zZXRWYWx1ZSh0aGlzLl9wcmV2TmF2aWdhdGlvbkJ1dHRvbnNWaXNpYmlsaXR5KSwoMCxkcC5wcm9wZXJ0eSkoKS5zZXRWYWx1ZSh0aGlzLl9wcmV2UGFuZUJ1dHRvbnNWaXNpYmlsaXR5KSxudWxsIT09dGhpcy5fcHJldkFsZXJ0TGFiZWxzUHJlZmVyZW5jZXMmJigwLF9wLmdldExhYmVsc1NldHRpbmdzUHJvcGVydHkpKCkubWVyZ2VBbmRGaXJlKHRoaXMuX3ByZXZBbGVydExhYmVsc1ByZWZlcmVuY2VzKSxudWxsIT09dGhpcy5fcHJldkFsZXJ0Tm90aWZpY2F0aW9uc1ByZWZlcmVuY2VzJiYoMCxfcC5nZXROb3RpZmljYXRpb25zU2V0dGluZ3NQcm9wZXJ0eSkoKS5tZXJnZUFuZEZpcmUodGhpcy5fcHJldkFsZXJ0Tm90aWZpY2F0aW9uc1ByZWZlcmVuY2VzKSx0aGlzLl9tb2RlbC5vbldpZGdldCgpfHxsaC53aXRoV2Vla2RheVByb3BlcnR5LnNldFZhbHVlKHRoaXMuX3ByZXZXaXRoV2Vla2RheSk7Y29uc3QgZT10aGlzLl9tb2RlbC53YXRlcm1hcmtTb3VyY2UoKTtudWxsIT09ZSYmbnVsbCE9PXRoaXMuX3ByZXZXYXRlcm1hcmtQcmVmZXJlbmNlcyYmZS5wcm9wZXJ0aWVzKCkubWVyZ2VBbmRGaXJlKHRoaXMuX3ByZXZXYXRlcm1hcmtQcmVmZXJlbmNlcyl9fWNsYXNzIGZwIGV4dGVuZHMgRS5VbmRvQ29tbWFuZHtjb25zdHJ1Y3RvcihlLHQsaSxzKXtzdXBlcihpKSx0aGlzLl9wcm9wZXJ0eT1lLHRoaXMuX25ld1ZhbHVlPXQsdGhpcy5fbW9kZWw9cyx0aGlzLl9wcmljZVNjYWxlPXRoaXMuX21vZGVsLm1haW5TZXJpZXMoKS5wcmljZVNjYWxlKCksdGhpcy5fb2xkVmFsdWU9dGhpcy5fcHJvcGVydHkudmFsdWUoKSx0aGlzLl9vbGRNb2RlPXRoaXMuX3ByaWNlU2NhbGUubW9kZSgpfXJlZG8oKXt0aGlzLl9vbGRWYWx1ZT10aGlzLl9wcm9wZXJ0eS52YWx1ZSgpLHRoaXMuX29sZE1vZGU9dGhpcy5fcHJpY2VTY2FsZS5tb2RlKCksKDAsR3IuYWxsb3dTYXZpbmdEZWZhdWx0cykoITApLHRoaXMuX3ByaWNlU2NhbGUuc2V0TW9kZSh7YXV0b1NjYWxlOiExLHBlcmNlbnRhZ2U6ITEsbG9nOiExfSksdGhpcy5fcHJvcGVydHkuc2V0VmFsdWUodGhpcy5fbmV3VmFsdWUpLCgwLEdyLmFsbG93U2F2aW5nRGVmYXVsdHMpKCExKSx0aGlzLl9tb2RlbC5yZWNhbGN1bGF0ZUFsbFBhbmVzKCgwLHRuLnZpZXdwb3J0Q2hhbmdlRXZlbnQpKCkpLHRoaXMuX21vZGVsLmxpZ2h0VXBkYXRlKCl9dW5kbygpeygwLEdyLmFsbG93U2F2aW5nRGVmYXVsdHMpKCEwKSx0aGlzLl9wcm9wZXJ0eS5zZXRWYWx1ZSh0aGlzLl9vbGRWYWx1ZSksdGhpcy5fcHJpY2VTY2FsZS5zZXRNb2RlKHRoaXMuX29sZE1vZGUpLCgwLEdyLmFsbG93U2F2aW5nRGVmYXVsdHMpKCExKSwKdGhpcy5fbW9kZWwucmVjYWxjdWxhdGVBbGxQYW5lcygoMCx0bi52aWV3cG9ydENoYW5nZUV2ZW50KSgpKSx0aGlzLl9tb2RlbC5saWdodFVwZGF0ZSgpfX1jbGFzcyBTcCBleHRlbmRzIEUuVW5kb0NvbW1hbmR7Y29uc3RydWN0b3IoZSx0KXt2YXIgcyxuO3N1cGVyKG5ldyB5LlRyYW5zbGF0ZWRTdHJpbmcoImFwcGx5IGFsbCBjaGFydCBwcm9wZXJ0aWVzIixwLnQobnVsbCx2b2lkIDAsaSgzNDc1ODUpKSkpLHRoaXMuX21vZGVsPWUsdGhpcy5fbmV3UHJvcGVydGllcz10LHM9KDAsbC5lbnN1cmVEZWZpbmVkKSh0aGlzLl9uZXdQcm9wZXJ0aWVzLm1haW5TZXJpZXMpLG49KDAsbC5lbnN1cmVEZWZpbmVkKSh0aGlzLl9uZXdQcm9wZXJ0aWVzLnBhbmVQcm9wZXJ0aWVzKSxbImNhbmRsZVN0eWxlIiwiaG9sbG93Q2FuZGxlU3R5bGUiLCJoYVN0eWxlIl0uZm9yRWFjaCgoZT0+e2NvbnN0IHQ9c1tlXTt2b2lkIDAhPT10JiYodC53aWNrVXBDb2xvcj10LndpY2tVcENvbG9yfHx0LndpY2tDb2xvcix0LndpY2tEb3duQ29sb3I9dC53aWNrRG93bkNvbG9yfHx0LndpY2tDb2xvcil9KSksbi52ZXJ0R3JpZFByb3BlcnRpZXM9bi52ZXJ0R3JpZFByb3BlcnRpZXN8fCgwLFloLmRlZmF1bHQpKG4uZ3JpZFByb3BlcnRpZXMpLG4uaG9yekdyaWRQcm9wZXJ0aWVzPW4uaG9yekdyaWRQcm9wZXJ0aWVzfHwoMCxZaC5kZWZhdWx0KShuLmdyaWRQcm9wZXJ0aWVzKSx2b2lkIDA9PT1zLmhvbGxvd0NhbmRsZVN0eWxlJiYocy5ob2xsb3dDYW5kbGVTdHlsZT0oMCxZaC5kZWZhdWx0KShzLmNhbmRsZVN0eWxlKSksdGhpcy5fb2xkUHJvcGVydGllcz0oMCxjdS5wcmVmZXJlbmNlc0J5V2hpdGVMaXN0KShlLGUubWFpblNlcmllcygpKX1yZWRvKCl7dGhpcy5fbWVyZ2UodGhpcy5fbmV3UHJvcGVydGllcyksdGhpcy5fbW9kZWwubWFpblNlcmllcygpLm9uQ2hhcnRTdHlsZUNoYW5nZWQoKSx0aGlzLl9tb2RlbC51cGRhdGVTY2FsZXMoKX11bmRvKCl7dGhpcy5fbWVyZ2UodGhpcy5fb2xkUHJvcGVydGllcyksdGhpcy5fbW9kZWwubWFpblNlcmllcygpLm9uQ2hhcnRTdHlsZUNoYW5nZWQoKSx0aGlzLl9tb2RlbC51cGRhdGVTY2FsZXMoKX1fbWVyZ2UoZSl7KDAsR3IuYWxsb3dTYXZpbmdEZWZhdWx0cykoITApLHRoaXMuX21vZGVsLmFwcGx5UHJlZmVyZW5jZXMoZSksKDAsR3IuYWxsb3dTYXZpbmdEZWZhdWx0cykoITEpfX1jbGFzcyB2cHtjb25zdHJ1Y3RvcihlKXt0aGlzLl9sZWZ0U2NhbGVzPWUubGVmdFByaWNlU2NhbGVzKCkubWFwKChlPT5lLmlkKCkpKSx0aGlzLl9yaWdodFNjYWxlcz1lLnJpZ2h0UHJpY2VTY2FsZXMoKS5tYXAoKGU9PmUuaWQoKSkpfXJlc3RvcmVQYW5lKGUpe3RoaXMuX2xlZnRTY2FsZXMucmV2ZXJzZSgpLm1hcCgodD0+KDAsbC5lbnN1cmVOb3ROdWxsKShlLmdldFByaWNlU2NhbGVCeUlkKHQpKSkpLmZvckVhY2goKHQ9PmUubW92ZVByaWNlU2NhbGUodCwibGVmdCIpKSksdGhpcy5fcmlnaHRTY2FsZXMucmV2ZXJzZSgpLm1hcCgodD0+KDAsbC5lbnN1cmVOb3ROdWxsKShlLmdldFByaWNlU2NhbGVCeUlkKHQpKSkpLmZvckVhY2goKHQ9PmUubW92ZVByaWNlU2NhbGUodCwicmlnaHQiKSkpfX1jbGFzcyB5cCBleHRlbmRzIEUuVW5kb0NvbW1hbmR7Y29uc3RydWN0b3IoZSx0LGkpe3N1cGVyKGkpLHRoaXMuX2NoYXJ0TW9kZWw9ZSx0aGlzLl90YXJnZXRTdHJhdGVneT0oMCxjbC5jcmVhdGVQcmljZVNjYWxlU2VsZWN0aW9uU3RyYXRlZ3kpKHQpLHRoaXMuX2luaXRpYWxTdGF0ZT1lLnBhbmVzKCkubWFwKChlPT5uZXcgdnAoZSkpKX1yZWRvKCl7dGhpcy5fY2hhcnRNb2RlbC5wYW5lcygpLmZvckVhY2goKGU9PmUuc2V0UHJpY2VTY2FsZVNlbGVjdGlvblN0cmF0ZWd5KHRoaXMuX3RhcmdldFN0cmF0ZWd5KSkpLHRoaXMuX2NoYXJ0TW9kZWwuZnVsbFVwZGF0ZSgpfXVuZG8oKXtjb25zdCBlPXRoaXMuX2NoYXJ0TW9kZWwucGFuZXMoKTtmb3IobGV0IHQ9MDt0PGUubGVuZ3RoO3QrKyl0aGlzLl9pbml0aWFsU3RhdGVbdF0ucmVzdG9yZVBhbmUoZVt0XSk7dGhpcy5fY2hhcnRNb2RlbC5mdWxsVXBkYXRlKCl9fWNvbnN0IGJwPW5ldyB5LlRyYW5zbGF0ZWRTdHJpbmcoInNlbmQge3RpdGxlfSBiYWNrd2FyZCIscC50KG51bGwse2NvbnRleHQ6InVuZG8gY29tbWFuZCB0ZXh0In0saSg4MjgwOTIpKSksd3A9bmV3IHkuVHJhbnNsYXRlZFN0cmluZygiYnJpbmcge3RpdGxlfSBmb3J3YXJkIixwLnQobnVsbCx7Y29udGV4dDoidW5kbyBjb21tYW5kIHRleHQifSxpKDM4NTUwNCkpKSxDcD1uZXcgeS5UcmFuc2xhdGVkU3RyaW5nKCJpbnNlcnQge3RpdGxlfSBhZnRlciB7dGFyZ2V0fSIscC50KG51bGwse2NvbnRleHQ6InVuZG8gY29tbWFuZCB0ZXh0In0saSg2MTcwNDApKSksUHA9bmV3IHkuVHJhbnNsYXRlZFN0cmluZygiaW5zZXJ0IHt0aXRsZX0gYmVmb3JlIHt0YXJnZXR9IixwLnQobnVsbCx7Y29udGV4dDoidW5kbyBjb21tYW5kIHRleHQifSxpKDc0MDYxMykpKSxUcD1uZXcgeS5UcmFuc2xhdGVkU3RyaW5nKCJjdXQge3RpdGxlfSIscC50KG51bGwse2NvbnRleHQ6InVuZG8gY29tbWFuZCB0ZXh0In0saSg0MTE4MTgpKSkseHA9bmV3IHkuVHJhbnNsYXRlZFN0cmluZygiY3V0IHNvdXJjZXMiLHAudChudWxsLHtjb250ZXh0OiJ1bmRvIGNvbW1hbmQgdGV4dCJ9LGkoOTM5NzE3KSkpLE1wPW5ldyB5LlRyYW5zbGF0ZWRTdHJpbmcoInJlbW92ZSB7dGl0bGV9IixwLnQobnVsbCx7Y29udGV4dDoidW5kbyBjb21tYW5kIHRleHQifSxpKDQ0NTUzOSkpKSxJcD1uZXcgeS5UcmFuc2xhdGVkU3RyaW5nKCJyZW1vdmUgZHJhd2luZ3MgZ3JvdXAiLHAudChudWxsLHtjb250ZXh0OiJ1bmRvIGNvbW1hbmQgdGV4dCJ9LGkoMTIyNjA2KSkpLExwPW5ldyB5LlRyYW5zbGF0ZWRTdHJpbmcoIm1vdmUgc2NhbGUiLHAudChudWxsLHtjb250ZXh0OiJ1bmRvIGNvbW1hbmQgdGV4dCJ9LGkoNzc3NTc3KSkpLEFwPW5ldyB5LlRyYW5zbGF0ZWRTdHJpbmcoInN0b3Agc3luY2luZyBsaW5lIHRvb2wocykiLHAudChudWxsLHtjb250ZXh0OiJ1bmRvIGNvbW1hbmQgdGV4dCIKfSxpKDY5MzY0OSkpKSxrcD1uZXcgeS5UcmFuc2xhdGVkU3RyaW5nKCJtb3ZlIGRyYXdpbmcocykiLHAudChudWxsLHtjb250ZXh0OiJ1bmRvIGNvbW1hbmQgdGV4dCJ9LGkoOTcwMTA1KSkpLERwPW5ldyB5LlRyYW5zbGF0ZWRTdHJpbmcoImxvYWQgZGVmYXVsdCBkcmF3aW5nIHRlbXBsYXRlIixwLnQobnVsbCx7Y29udGV4dDoidW5kbyBjb21tYW5kIHRleHQifSxpKDk0NjkyOSkpKSxFcD1uZXcgeS5UcmFuc2xhdGVkU3RyaW5nKCJhcHBseSBmYWN0b3J5IGRlZmF1bHRzIHRvIHNlbGVjdGVkIHNvdXJjZXMiLHAudChudWxsLHtjb250ZXh0OiJ1bmRvIGNvbW1hbmQgdGV4dCJ9LGkoMzY1ODc0KSkpLFJwPW5ldyB5LlRyYW5zbGF0ZWRTdHJpbmcoImNoYW5nZSBjdXJyZW5jeSIscC50KG51bGwse2NvbnRleHQ6InVuZG8gY29tbWFuZCB0ZXh0In0saSgxODk2MDMpKSksVnA9bmV3IHkuVHJhbnNsYXRlZFN0cmluZygiY2hhbmdlIHVuaXQiLHAudChudWxsLHtjb250ZXh0OiJ1bmRvIGNvbW1hbmQgdGV4dCJ9LGkoOTU0ODkxKSkpLEJwPW5ldyB5LlRyYW5zbGF0ZWRTdHJpbmcoImNoYW5nZSBtZXRyaWMiLHAudChudWxsLHtjb250ZXh0OiJ1bmRvIGNvbW1hbmQgdGV4dCJ9LGkoNDMyMTI0KSkpLE5wPW5ldyB5LlRyYW5zbGF0ZWRTdHJpbmcoImNsb25lIGxpbmUgdG9vbHMiLHAudChudWxsLHtjb250ZXh0OiJ1bmRvIGNvbW1hbmQgdGV4dCJ9LGkoMzU4KSkpLE9wPW5ldyB5LlRyYW5zbGF0ZWRTdHJpbmcoIm1lcmdlIHVwIixwLnQobnVsbCx7Y29udGV4dDoidW5kbyBjb21tYW5kIHRleHQifSxpKDU1NTkxOCkpKSxXcD1uZXcgeS5UcmFuc2xhdGVkU3RyaW5nKCJtZXJnZSBkb3duIixwLnQobnVsbCx7Y29udGV4dDoidW5kbyBjb21tYW5kIHRleHQifSxpKDcyMTcwOSkpKSxGcD1uZXcgeS5UcmFuc2xhdGVkU3RyaW5nKCJtZXJnZSB0byBwYW5lIixwLnQobnVsbCx7Y29udGV4dDoidW5kbyBjb21tYW5kIHRleHQifSxpKDk3NjgxNSkpKSxIcD1uZXcgeS5UcmFuc2xhdGVkU3RyaW5nKCJ1bm1lcmdlIHVwIixwLnQobnVsbCx7Y29udGV4dDoidW5kbyBjb21tYW5kIHRleHQifSxpKDk1MTg0NykpKSx6cD1uZXcgeS5UcmFuc2xhdGVkU3RyaW5nKCJ1bm1lcmdlIGRvd24iLHAudChudWxsLHtjb250ZXh0OiJ1bmRvIGNvbW1hbmQgdGV4dCJ9LGkoMjI5NDE3KSkpLFVwPW5ldyB5LlRyYW5zbGF0ZWRTdHJpbmcoInVubWVyZ2UgdG8gbmV3IGJvdHRvbSBwYW5lIixwLnQobnVsbCx7Y29udGV4dDoidW5kbyBjb21tYW5kIHRleHQifSxpKDY5NDIyKSkpLEdwPW5ldyB5LlRyYW5zbGF0ZWRTdHJpbmcoIm1vdmUge3RpdGxlfSB0byBuZXcgcmlnaHQgc2NhbGUiLHAudChudWxsLHtjb250ZXh0OiJ1bmRvIGNvbW1hbmQgdGV4dCJ9LGkoOTY3OTM1KSkpLGpwPW5ldyB5LlRyYW5zbGF0ZWRTdHJpbmcoIm1vdmUge3RpdGxlfSB0byBuZXcgbGVmdCBzY2FsZSIscC50KG51bGwse2NvbnRleHQ6InVuZG8gY29tbWFuZCB0ZXh0In0saSgxNTkxNCkpKSxxcD1uZXcgeS5UcmFuc2xhdGVkU3RyaW5nKCJtYWtlIHt0aXRsZX0gbm8gc2NhbGUgKEZ1bGwgc2NyZWVuKSIscC50KG51bGwse2NvbnRleHQ6InVuZG8gY29tbWFuZCB0ZXh0In0saSg1MDA4NDMpKSksJHA9bmV3IHkuVHJhbnNsYXRlZFN0cmluZygicmVzZXQgc2NhbGVzIixwLnQobnVsbCx7Y29udGV4dDoidW5kbyBjb21tYW5kIHRleHQifSxpKDYyOTU0MikpKSxZcD1uZXcgeS5UcmFuc2xhdGVkU3RyaW5nKCJjcmVhdGUge3Rvb2x9IixwLnQobnVsbCx7Y29udGV4dDoidW5kbyBjb21tYW5kIHRleHQifSxpKDc0OTAxNikpKSxLcD1uZXcgeS5UcmFuc2xhdGVkU3RyaW5nKCJwYXN0ZSB7dGl0bGV9IixwLnQobnVsbCx7Y29udGV4dDoidW5kbyBjb21tYW5kIHRleHQifSxpKDcwODkwOCkpKSxYcD1uZXcgeS5UcmFuc2xhdGVkU3RyaW5nKCJpbnNlcnQge3RpdGxlfSIscC50KG51bGwse2NvbnRleHQ6InVuZG8gY29tbWFuZCB0ZXh0In0saSg5NjU1MzkpKSksWnA9bmV3IHkuVHJhbnNsYXRlZFN0cmluZygicmVtb3ZlIHBhbmUiLHAudChudWxsLHtjb250ZXh0OiJ1bmRvIGNvbW1hbmQgdGV4dCJ9LGkoODI4MjUzKSkpLEpwPW5ldyB5LlRyYW5zbGF0ZWRTdHJpbmcoImludmVydCBzY2FsZSIscC50KG51bGwse2NvbnRleHQ6InVuZG8gY29tbWFuZCB0ZXh0In0saSg3Nzk1MTcpKSksUXA9bmV3IHkuVHJhbnNsYXRlZFN0cmluZygidG9nZ2xlIGF1dG8gc2NhbGUiLHAudChudWxsLHtjb250ZXh0OiJ1bmRvIGNvbW1hbmQgdGV4dCJ9LGkoMzg4ODg3KSkpLGVfPW5ldyB5LlRyYW5zbGF0ZWRTdHJpbmcoInRvZ2dsZSBsb2NrIHNjYWxlIixwLnQobnVsbCx7Y29udGV4dDoidW5kbyBjb21tYW5kIHRleHQifSxpKDYwMjQ5NykpKSx0Xz1uZXcgeS5UcmFuc2xhdGVkU3RyaW5nKCJ0b2dnbGUgcmVndWxhciBzY2FsZSIscC50KG51bGwse2NvbnRleHQ6InVuZG8gY29tbWFuZCB0ZXh0In0saSgxNzQ2NDApKSksaV89bmV3IHkuVHJhbnNsYXRlZFN0cmluZygidG9nZ2xlIGluZGV4ZWQgdG8gMTAwIHNjYWxlIixwLnQobnVsbCx7Y29udGV4dDoidW5kbyBjb21tYW5kIHRleHQifSxpKDg3MTkxMCkpKSxzXz1uZXcgeS5UcmFuc2xhdGVkU3RyaW5nKCJ0b2dnbGUgcGVyY2VudGFnZSBzY2FsZSIscC50KG51bGwse2NvbnRleHQ6InVuZG8gY29tbWFuZCB0ZXh0In0saSgzMjk4NDEpKSksbl89bmV3IHkuVHJhbnNsYXRlZFN0cmluZygidG9nZ2xlIGxvZyBzY2FsZSIscC50KG51bGwse2NvbnRleHQ6InVuZG8gY29tbWFuZCB0ZXh0In0saSg0ODM5OTUpKSkscl89bmV3IHkuVHJhbnNsYXRlZFN0cmluZygibW92ZSBsZWZ0IixwLnQobnVsbCx7Y29udGV4dDoidW5kbyBjb21tYW5kIHRleHQifSxpKDI5NTIwNCkpKSxvXz1uZXcgeS5UcmFuc2xhdGVkU3RyaW5nKCJtb3ZlIHJpZ2h0IixwLnQobnVsbCx7Y29udGV4dDoidW5kbyBjb21tYW5kIHRleHQifSxpKDUyNTY0MykpKSxhXz1uZXcgeS5UcmFuc2xhdGVkU3RyaW5nKCJhbGlnbiB0byA0NSBkZWdyZWVzIixwLnQobnVsbCx7Y29udGV4dDoidW5kbyBjb21tYW5kIHRleHQiCn0saSgyMzEyNjMpKSksbF89bmV3IHkuVHJhbnNsYXRlZFN0cmluZygic2V0IHByaWNlIHNjYWxlIHNlbGVjdGlvbiBzdHJhdGVneSB0byB7dGl0bGV9IixwLnQobnVsbCx7Y29udGV4dDoidW5kbyBjb21tYW5kIHRleHQifSxpKDU0NzQ0NSkpKSxjXz1uZXcgeS5UcmFuc2xhdGVkU3RyaW5nKCJyZW1vdmUgYWxsIGluZGljYXRvcnMiLHAudChudWxsLHtjb250ZXh0OiJ1bmRvIGNvbW1hbmQgdGV4dCJ9LGkoOTMxNzE5KSkpLGhfPW5ldyB5LlRyYW5zbGF0ZWRTdHJpbmcoInJlbW92ZSBkcmF3aW5ncyIscC50KG51bGwse2NvbnRleHQ6InVuZG8gY29tbWFuZCB0ZXh0In0saSg5MjU5NjMpKSksZF89bmV3IHkuVHJhbnNsYXRlZFN0cmluZygicmVtb3ZlIGFsbCBpbmRpY2F0b3JzIGFuZCBkcmF3aW5nIHRvb2xzIixwLnQobnVsbCx7Y29udGV4dDoidW5kbyBjb21tYW5kIHRleHQifSxpKDI1NjkpKSksdV89bmV3IHkuVHJhbnNsYXRlZFN0cmluZygidHVybiBsaW5lIHRvb2xzIHNoYXJpbmcgb2ZmIixwLnQobnVsbCx7Y29udGV4dDoidW5kbyBjb21tYW5kIHRleHQifSxpKDY5MjIwMSkpKSxwXz1uZXcgeS5UcmFuc2xhdGVkU3RyaW5nKCJzaGFyZSBsaW5lIHRvb2xzIGluIGxheW91dCIscC50KG51bGwse2NvbnRleHQ6InVuZG8gY29tbWFuZCB0ZXh0In0saSgzNTU0MDcpKSksX189bmV3IHkuVHJhbnNsYXRlZFN0cmluZygic2hhcmUgbGluZSB0b29scyBnbG9iYWxseSIscC50KG51bGwse2NvbnRleHQ6InVuZG8gY29tbWFuZCB0ZXh0In0saSgxMDIxOTcpKSksbV89bmV3IHkuVHJhbnNsYXRlZFN0cmluZygiY2hhbmdlIGxpbmtpbmcgZ3JvdXAiLHAudChudWxsLHtjb250ZXh0OiJ1bmRvIGNvbW1hbmQgdGV4dCJ9LGkoODU3MjIzKSkpLGdfPW5ldyB5LlRyYW5zbGF0ZWRTdHJpbmcoImFwcGx5IGRyYXdpbmcgdGVtcGxhdGUiLHAudChudWxsLHtjb250ZXh0OiJ1bmRvIGNvbW1hbmQgdGV4dCJ9LGkoNjE4Mzg2KSkpLGZfPSgwLGMuZ2V0TG9nZ2VyKSgiQ2hhcnQuQ2hhcnRVbmRvTW9kZWwiKSxTXz0oMCxQZS5pc0ZlYXR1cmVFbmFibGVkKSgiaGlkZV90d2VldF9kcmF3aW5ndG9vbCIpO3ZhciB2XztmdW5jdGlvbiB5XyhlLHQpe3JldHVybnticmluZ0ZvcndhcmRFbmFibGVkOmUuYnJpbmdGb3J3YXJkRW5hYmxlZHx8dC5icmluZ0ZvcndhcmRFbmFibGVkLGJyaW5nVG9Gcm9udEVuYWJsZWQ6ZS5icmluZ1RvRnJvbnRFbmFibGVkfHx0LmJyaW5nVG9Gcm9udEVuYWJsZWQsc2VuZEJhY2t3YXJkRW5hYmxlZDplLnNlbmRCYWNrd2FyZEVuYWJsZWR8fHQuc2VuZEJhY2t3YXJkRW5hYmxlZCxzZW5kVG9CYWNrRW5hYmxlZDplLnNlbmRUb0JhY2tFbmFibGVkfHx0LnNlbmRUb0JhY2tFbmFibGVkfX0hZnVuY3Rpb24oZSl7ZVtlLlVwPTBdPSJVcCIsZVtlLkRvd249MV09IkRvd24iLGVbZS5MZWZ0PTJdPSJMZWZ0IixlW2UuUmlnaHQ9M109IlJpZ2h0In0odl98fCh2Xz17fSkpO2Z1bmN0aW9uIGJfKCl7cmV0dXJuKDAsVC5kcmF3T25BbGxDaGFydHMpKCkudmFsdWUoKT8xPT09KDAsVC5kcmF3T25BbGxDaGFydHNNb2RlKSgpLnZhbHVlKCk/MToyOjB9ZnVuY3Rpb24gd18oZSx0KXsoMCxKLm9uV2lkZ2V0KSgpPygwLCRuLnNob3dHb1RvVHJhZGluZ1ZpZXdSZWZlcnJhbERpYWxvZykoe2ZlYXR1cmU6ImluZGljYXRvcnMifSk6KDAsWW4uc2hvd1N0dWRpZXNMaW1pdEdvUHJvRGlhbG9nKShlLHQpfWNsYXNzIENfIGV4dGVuZHMoRG4oKSl7Y29uc3RydWN0b3IoZSl7c3VwZXIoKSx0aGlzLl9jcmVhdGVMaW5lQ29tbWFuZHM9W10sdGhpcy5fc2NhbGVQcmljZUluZm89bnVsbCx0aGlzLl9jdXJyZW50U291cmNlTW92ZUNvbW1hbmQ9bnVsbCx0aGlzLl9jdXJyZW50TGluZUNoYW5nZUNvbW1hbmQ9bnVsbCx0aGlzLl9jdXJyZW50Q3VzdG9tTW92ZUNvbW1hbmQ9bnVsbCx0aGlzLl96b29tU3RhY2s9bmV3IHosdGhpcy5faW5pdGlhbFByaWNlU2Nyb2xsU3RhdGU9bnVsbCx0aGlzLl9pbml0aWFsUHJpY2VTY3JvbGxQb3M9bnVsbDtjb25zdHtjaGFydFdpZGdldDp0LGNoYXJ0U2Vzc2lvbjppLGludmFsaWRhdGVIYW5kbGVyOnMscHJvcGVydGllczpuLHNlcmllc1Byb3BlcnRpZXM6cixkYXRhUmVxdWVzdDpvLHVuZG9IaXN0b3J5OmEsYmFyc01hcmtzQ29udGFpbmVyc0ZhY3Rvcnk6bCxvcHRpb25zOmMsaGliZXJuYXRlVlc6aCxsaW5raW5nR3JvdXBXVjpkLGlzQXV0b1NhdmVFbmFibGVkOnUsZHJhd1RpbWU6cH09ZTt0aGlzLl9jaGFydFdpZGdldD10LHRoaXMuX3RyYWRpbmdQcmVmZXJlbmNlc1NlcnZpY2U9ZS50cmFkaW5nUHJlZmVyZW5jZXNTZXJ2aWNlLHRoaXMubV9tb2RlbD1uZXcgRXUoe2NoYXJ0U2Vzc2lvbjppLGludmFsaWRhdGVIYW5kbGVyOnMscHJvcGVydGllczpuLHNlcmllc1Byb3BlcnRpZXM6cixkYXRhUmVxdWVzdDpvLHVuZG9Nb2RlbDp0aGlzLGJhcnNNYXJrc0NvbnRhaW5lcnNGYWN0b3J5Omwsb3B0aW9uczpjLGhpYmVybmF0ZVZXOmgsbGlua2luZ0dyb3VwV1Y6ZCxpc0F1dG9TYXZlRW5hYmxlZDp1LHN5bWJvbEFsaWFzU2VydmljZTp0LmNoYXJ0V2lkZ2V0Q29sbGVjdGlvbigpLnN5bWJvbEFsaWFzU2VydmljZSgpLGRyYXdUaW1lOnB9KSx0aGlzLl91bmRvSGlzdG9yeT1hLHRoaXMuX2xpbmVUb29sc0dyb3VwQ29udHJvbGxlcj1uZXcgeW8oe21vZGVsOnRoaXMuX21vZGVsLmJpbmQodGhpcykscHVzaFVuZG9Db21tYW5kOnRoaXMuX3B1c2hVbmRvQ29tbWFuZC5iaW5kKHRoaXMpLGJlZ2luVW5kb01hY3JvOmU9Pnt0aGlzLl91bmRvSGlzdG9yeS5iZWdpblVuZG9NYWNybyhlKX0sZW5kVW5kb01hY3JvOnRoaXMuX3VuZG9IaXN0b3J5LmVuZFVuZG9NYWNyby5iaW5kKHRoaXMuX3VuZG9IaXN0b3J5KSxlbWl0RXZlbnQ6dGhpcy5lbWl0RXZlbnQuYmluZCh0aGlzKX0pfWlkKCl7cmV0dXJuIHRoaXMuX21vZGVsKCkuaWQoKX11bmRvSGlzdG9yeSgpe3JldHVybiB0aGlzLl91bmRvSGlzdG9yeX1zZXRXYXRjaGVkVmFsdWUoZSx0LGkpe3RoaXMuX3VuZG9IaXN0b3J5LnNldFdhdGNoZWRWYWx1ZShlLHQsaSl9bGluZVRvb2xzR3JvdXBDb250cm9sbGVyKCl7cmV0dXJuIHRoaXMuX2xpbmVUb29sc0dyb3VwQ29udHJvbGxlcgp9bWVyZ2VBbGxTY2FsZXMoZSl7IWZ1bmN0aW9uKGUsdCl7ZS5iZWdpblVuZG9NYWNybygibGVmdCI9PT10P0tuOlhuKSxlLm1vZGVsKCkucGFuZXMoKS5mb3JFYWNoKChpPT57Y29uc3Qgcz0ibGVmdCI9PT10P2kudmlzaWJsZVJpZ2h0UHJpY2VTY2FsZXMoKTppLnZpc2libGVMZWZ0UHJpY2VTY2FsZXMoKSxuPSgibGVmdCI9PT10P2kudmlzaWJsZUxlZnRQcmljZVNjYWxlcygpOmkudmlzaWJsZVJpZ2h0UHJpY2VTY2FsZXMoKSkuY29uY2F0KHMpLHI9Im92ZXJsYXkiPT09aS5wcmljZVNjYWxlUG9zaXRpb24oaS5kZWZhdWx0UHJpY2VTY2FsZSgpKT9uWzBdOmkuZGVmYXVsdFByaWNlU2NhbGUoKTtlLm1vdmVQcmljZVNjYWxlKGkscix0LDApLG4uZm9yRWFjaCgodD0+e2lmKHQ9PT1yKXJldHVybjtsZXQgcz10Lm1haW5Tb3VyY2UoKTtmb3IoO251bGwhPT1zOyl7ZS5tb3ZlVG9TY2FsZShzLGkscixudWxsLCEwKTtjb25zdCBuPXQubWFpblNvdXJjZSgpO2lmKG49PT1zKXtabi5sb2dFcnJvcigiTG9vcCBkZXRlY3RlZCB3aGlsZSB0cnlpbmcgdG8gbWVyZ2Ugc2NhbGVzIik7YnJlYWt9cz1ufX0pKX0pKSxlLmVuZFVuZG9NYWNybygpLGUubW9kZWwoKS5mdWxsVXBkYXRlKCl9KHRoaXMsZSl9bW92ZVByaWNlU2NhbGUoZSx0LGkscyl7Y29uc3Qgbj1uZXcgSm4odGhpcy5fbW9kZWwoKSxlLHQsaSxzLExwKTt0aGlzLl9wdXNoVW5kb0NvbW1hbmQobil9Y3JlYXRlTGluZVRvb2woe3BhbmU6ZSxwb2ludDp0LGxpbmV0b29sOmkscHJvcGVydGllczpzLGxpbmtLZXk6bixvd25lclNvdXJjZTpyLHN5bmNocm9uaXphdGlvbk1vZGU6bz1Sbi5DcmVhdGVMaW5lVG9vbFN5bmNNb2RlLkRlZmF1bHQsc2hhcmluZ01vZGU6YT1iXygpLGlkOmMsYWN0aW9uU291cmNlOmgsa2VlcFNlbGVjdGVkR3JvdXA6ZH0pe2lmKCEoMCxSdS5lbnN1cmVEcmF3aW5nQ3JlYXRpb25BbGxvd2VkKShpLGgsImNoYXJ0X2RyYXdpbmciKSlyZXR1cm4gVC50b29sLnZhbHVlKCk9PT1pJiYoMCxULnJlc2V0VG9DdXJzb3IpKCksbnVsbDtjb25zdCB1PW9wLmxpbmVUb29sc1N0dWR5SWRzW2ldO2lmKCgwLGwuYXNzZXJ0KSghKDAsbS5pc1N0dWR5TGluZVRvb2xOYW1lKSh1KXx8ISF1KSx1KXtjb25zdCBlPXRoaXMuY2FuQ3JlYXRlU3R1ZHkoe2lkOnV9KTtpZighZS5zdWNjZXNzKXJldHVybiB3Xyh0aGlzLm1vZGVsKCksZSksKDAsbS5pc1N0dWR5TGluZVRvb2xOYW1lKShULnRvb2wudmFsdWUoKSkmJigwLFQucmVzZXRUb0N1cnNvcikoKSxudWxsfWNvbnN0IHA9WXAuZm9ybWF0KHt0b29sOm5ldyB5LlRyYW5zbGF0ZWRTdHJpbmcoaSxfci5saW5lVG9vbHNMb2NhbGl6ZWROYW1lc1tpXSl9KTt0aGlzLmJlZ2luVW5kb01hY3JvKHApO2NvbnN0IF89byE9PVJuLkNyZWF0ZUxpbmVUb29sU3luY01vZGUuRm9yY2VPZmYsZz1uZXcgZ3Ioe21vZGVsOnRoaXMuX21vZGVsKCkscGFuZTplLGxpbmVUb29sOmksb3duZXJTb3VyY2U6cnx8KDAsbC5lbnN1cmVOb3ROdWxsKShlLm1haW5EYXRhU291cmNlKCkpLGRyYXdPbkFsbENoYXJ0c01vZGU6YSxpZDpjLGtlZXBTZWxlY3RlZEdyb3VwOmQmJnZvaWQgMD09PW59KSxmPWcuc3RhcnRDcmVhdGluZ0xpbmUodCxzLG58fG51bGwsYSxvPT09Um4uQ3JlYXRlTGluZVRvb2xTeW5jTW9kZS5Gb3JjZU9mZixoKSxTPSgwLGwuZW5zdXJlTm90TnVsbCkoZy5saW5lKCkpO3RoaXMuX2NyZWF0ZUxpbmVDb21tYW5kcy51bnNoaWZ0KGcpO2xldCB2PW51bGw7aWYoZiYmKF8mJnRoaXMuZmluaXNoTGluZVRvb2woUyksdGhpcy5fcHVzaFVuZG9Db21tYW5kKGcpLHRoaXMuX2NyZWF0ZUxpbmVDb21tYW5kcy5zaGlmdCgpLHY9e3BvaW50czpTLm5vcm1hbGl6ZWRQb2ludHMoKSxpbnRlcnZhbDp0aGlzLm1haW5TZXJpZXMoKS5pbnRlcnZhbCgpfSksKHZvaWQgMD09PW4mJm89PT1Sbi5DcmVhdGVMaW5lVG9vbFN5bmNNb2RlLkRlZmF1bHQmJigwLFQuZHJhd09uQWxsQ2hhcnRzKSgpLnZhbHVlKCl8fG89PT1Sbi5DcmVhdGVMaW5lVG9vbFN5bmNNb2RlLkZvcmNlT24pJiZTLmlzU3luY2hyb25pemFibGUoKSl7Y29uc3QgZT0oMCxsLmVuc3VyZU5vdE51bGwpKHRoaXMubW9kZWwoKS5leHRlcm5hbFRpbWVTdGFtcCh0LmluZGV4KSkscz17cG9pbnQ6e3ByaWNlOnQucHJpY2UsdGltZVN0YW1wOmV9LGxpbmV0b29sOmkscHJvcGVydGllczpTLnByb3BlcnRpZXMoKSxzeW1ib2w6dGhpcy5tYWluU2VyaWVzKCkuc3ltYm9sKCksbW9kZWw6dGhpcy5tb2RlbCgpLGxpbmtLZXk6KDAsbC5lbnN1cmVOb3ROdWxsKShTLmxpbmtLZXkoKS52YWx1ZSgpKSxmaW5hbFN0YXRlOnYsaWQ6Uy5pZCgpLHNoYXJpbmdNb2RlOlMuc2hhcmluZ01vZGUoKS52YWx1ZSgpfTtTLmlzRml4ZWQoKSYmKHMucG9pbnRQb3NpdGlvblBlcmNlbnRzPVMuY2FsY1Bvc2l0aW9uUGVyY2VudHMoKSksKDAsVC5jcmVhdGVMaW5lVG9vbCkocyl9aWYoZCYmdm9pZCAwPT09bil7Y29uc3QgdD10aGlzLl9yZXNvbHZlUHJldmlvdXNTZWxlY3RlZEdyb3VwKGUpO251bGwhPT10JiYoZj90aGlzLl9saW5lVG9vbHNHcm91cENvbnRyb2xsZXIuYWRkTGluZVRvb2xUb0dyb3VwKHQsUyk6dC5hZGRJdGVtcyhbU10pKX1yZXR1cm4gdGhpcy5lbmRVbmRvTWFjcm8oKSxTfWNvbnRpbnVlQ3JlYXRpbmdMaW5lKGUsdCxpLHMpe2NvbnN0IG49KDAsbC5lbnN1cmVEZWZpbmVkKSh0aGlzLl9jcmVhdGVMaW5lQ29tbWFuZHNbMF0pO3RoaXMuYmVnaW5VbmRvTWFjcm8obi50ZXh0KCkpO2NvbnN0IHI9KDAsbC5lbnN1cmVOb3ROdWxsKSh0aGlzLl9tb2RlbCgpLmxpbmVCZWluZ0NyZWF0ZWQoKSksbz1uLmNvbnRpbnVlQ3JlYXRpbmdMaW5lKGUsdCxpLHMpO2xldCBhPW51bGw7aWYobyYmKHRoaXMuZmluaXNoTGluZVRvb2wociksdGhpcy5fcHVzaFVuZG9Db21tYW5kKG4pLHRoaXMuX2NyZWF0ZUxpbmVDb21tYW5kcy5zaGlmdCgpLGE9e3BvaW50czpyLm5vcm1hbGl6ZWRQb2ludHMoKSxpbnRlcnZhbDp0aGlzLm1haW5TZXJpZXMoKS5pbnRlcnZhbCgpfSksbi5kcmF3T25BbGxDaGFydHMoKSYmci5pc1N5bmNocm9uaXphYmxlKCkpe2NvbnN0IGk9KDAsCmwuZW5zdXJlTm90TnVsbCkodGhpcy5fbW9kZWwoKS5leHRlcm5hbFRpbWVTdGFtcChlLmluZGV4KSk7KDAsVC5jb250aW51ZUxpbmVUb29sKSh7cG9pbnQ6e3ByaWNlOmUucHJpY2UsdGltZVN0YW1wOml9LGVudlN0YXRlOnQsZmluYWxTdGF0ZTphLG1vZGVsOnRoaXMuX21vZGVsKCl9KX1pZihuLmtlZXBTZWxlY3RlZEdyb3VwKCkmJm8pe2NvbnN0IGU9KDAsbC5lbnN1cmVOb3ROdWxsKSh0aGlzLl9tb2RlbCgpLnBhbmVGb3JTb3VyY2UocikpLHQ9dGhpcy5fcmVzb2x2ZVByZXZpb3VzU2VsZWN0ZWRHcm91cChlKTtudWxsIT09dCYmKHQuZXhjbHVkZUl0ZW0ociksdGhpcy5fbGluZVRvb2xzR3JvdXBDb250cm9sbGVyLmFkZExpbmVUb29sVG9Hcm91cCh0LHIpKX1yZXR1cm4gdGhpcy5lbmRVbmRvTWFjcm8oKSxvfWNvbnRpbnVlRXh0ZXJuYWxMaW5lKGUsdCxpKXtjb25zdCBzPSgwLGwuZW5zdXJlRGVmaW5lZCkodGhpcy5fY3JlYXRlTGluZUNvbW1hbmRzWzBdKSxuPXMuY29udGludWVDcmVhdGluZ0xpbmUoZSx0LGkpO3JldHVybiBuJiYodGhpcy5fcHVzaFVuZG9Db21tYW5kKHMpLHRoaXMuX2NyZWF0ZUxpbmVDb21tYW5kcy5zaGlmdCgpKSxufWZpbmlzaExpbmVUb29sKGUpe3RoaXMuX21vZGVsKCkuZmluaXNoTGluZVRvb2woZSl9Y2FuY2VsQ3JlYXRpbmdMaW5lKCl7dGhpcy5tX21vZGVsLmNhbmNlbENyZWF0aW5nTGluZSgpfWxpbmVCZWluZ0NyZWF0ZWQoKXtyZXR1cm4gdGhpcy5tX21vZGVsLmxpbmVCZWluZ0NyZWF0ZWQoKX1wYXN0ZUltYWdlQXNMaW5lVG9vbChlLHQsaSxzKXtjb25zdCBuPXRoaXMuX21vZGVsKCkudGltZVNjYWxlKCkscj1uLndpZHRoKCksbz1pLmhlaWdodCgpLGE9aS5kZWZhdWx0UHJpY2VTY2FsZSgpLGM9KDAsbC5lbnN1cmVOb3ROdWxsKSgoMCxsLmVuc3VyZU5vdE51bGwpKGEubWFpblNvdXJjZSgpKS5maXJzdFZhbHVlKCkpLGg9e3ByaWNlOmEuY29vcmRpbmF0ZVRvUHJpY2Uoby8yLGMpLGluZGV4Om4uY29vcmRpbmF0ZVRvSW5kZXgoci8yKX0sZD0oMCxyaS5jcmVhdGVMaW5lVG9vbFByb3BlcnRpZXMpKGkubW9kZWwoKS5iYWNrZ3JvdW5kVGhlbWUoKS5zcGF3bk93bmVyc2hpcCgpLCJMaW5lVG9vbEltYWdlIiwhaS5tb2RlbCgpLnJlYWRPbmx5KCkpO3ZvaWQgMCE9PXMmJmQuY2hpbGRzKCkudHJhbnNwYXJlbmN5LnNldFZhbHVlKHMpO2NvbnN0IHU9KDAsbC5lbnN1cmVOb3ROdWxsKShhLm1haW5Tb3VyY2UoKSk7KDAscmkucHJlcGFyZUxpbmVUb29sUHJvcGVydGllc0J5T3duZXJTb3VyY2UpKGQsdSk7Y29uc3QgcD10aGlzLmNyZWF0ZUxpbmVUb29sKHtwYW5lOmkscG9pbnQ6aCxsaW5ldG9vbDoiTGluZVRvb2xJbWFnZSIscHJvcGVydGllczpkLGFjdGlvblNvdXJjZToiUGFzdGUiLGtlZXBTZWxlY3RlZEdyb3VwOiEwfSk7cmV0dXJuIHAmJihwLnNldEJsb2JJbWFnZVVybCh0KSx0aGlzLnNlbGVjdGlvbk1hY3JvKChlPT57ZS5jbGVhclNlbGVjdGlvbigpLGUuYWRkSXRlbVRvU2VsZWN0aW9uKHAsbnVsbCl9KSksZS50aGVuKChlPT57cC5wcm9wZXJ0aWVzKCkuY2hpbGRzKCkudXJsLnNldFZhbHVlKGUpfSkpLmNhdGNoKChlPT57Y29uc3QgdD1wLmxpbmtLZXkoKS52YWx1ZSgpLGk9dGhpcy5tb2RlbCgpO251bGwhPT10JiYoMCxULnJlbW92ZUxpbmVUb29sKSh7d2l0aFVuZG86ITEsbW9kZWw6aSxsaW5rS2V5OnQsc3ltYm9sOnAuc3ltYm9sKCksc291cmNlVGl0bGU6bmV3IHkuVHJhbnNsYXRlZFN0cmluZyhwLm5hbWUoKSxwLnRyYW5zbGF0ZWRUeXBlKCkpLGxpbmVUb29sU3RhdGU6cC5zdGF0ZSghMSl9KSxpLnJlbW92ZVNvdXJjZShwKX0pKSkscH1sb2FkUmFuZ2UoZSl7Y29uc3QgdD10aGlzLl9tb2RlbCgpLGk9dC5hcHBsaWVkVGltZUZyYW1lKCkudmFsdWUoKTtyZXR1cm4obnVsbD09PWl8fCFCbihpLGUpKSYmKHRoaXMuX3B1c2hVbmRvQ29tbWFuZChuZXcgS3IodCxlKSksKDAsJC5lbWl0KSgidGltZWZyYW1lX2ludGVydmFsIixlKSwhMCl9bWFpblNlcmllcygpe3JldHVybiB0aGlzLm1fbW9kZWwubWFpblNlcmllcygpfW1vZGVsKCl7cmV0dXJuIHRoaXMubV9tb2RlbH1hbGxVbmRvTW9kZWxzKCl7cmV0dXJuIHRoaXMuX2NoYXJ0V2lkZ2V0LmNoYXJ0V2lkZ2V0Q29sbGVjdGlvbigpLmNoYXJ0TW9kZWxzKCkudmFsdWUoKX1wdWJsaXNoZWRDaGFydHNUaW1lbGluZVNvdXJjZSgpe3JldHVybiB0aGlzLm1fbW9kZWwucHVibGlzaGVkQ2hhcnRzVGltZWxpbmVTb3VyY2UoKX11bmxpbmtMaW5lcyhlKXtjb25zdCB0PXRoaXMubW9kZWwoKTt0aGlzLmJlZ2luVW5kb01hY3JvKEFwKTtmb3IoY29uc3QgaSBvZiBlKW51bGwhPT1pLmxpbmtLZXkoKS52YWx1ZSgpJiYoMCxULnJlbW92ZUxpbmVUb29sKSh7d2l0aFVuZG86ITAsbW9kZWw6dGhpcy5tb2RlbCgpLHN5bWJvbDppLnN5bWJvbCgpLGxpbmtLZXk6KDAsbC5lbnN1cmVOb3ROdWxsKShpLmxpbmtLZXkoKS52YWx1ZSgpKSxzb3VyY2VUaXRsZTooMCx1ci5nZXRUcmFuc2xhdGVkU3RyaW5nRm9yU291cmNlKShObi5UaXRsZURpc3BsYXlUYXJnZXQuU3RhdHVzTGluZSxpKSxsaW5lVG9vbFN0YXRlOmkuc3RhdGUoITEpLHVubGluazohMH0pLHRoaXMuX3B1c2hVbmRvQ29tbWFuZChuZXcgJHUodCxpKSk7dGhpcy5lbmRVbmRvTWFjcm8oKX16b29tRnJvbVZpZXdwb3J0KCl7Y29uc3QgZT1uZXcganUoKDAsbC5lbnN1cmVEZWZpbmVkKSh0aGlzLl96b29tU3RhY2suaGVhZCgpKSx0aGlzLl96b29tU3RhY2ssITEpO3RoaXMuX3B1c2hVbmRvQ29tbWFuZChlKX16b29tVG9WaWV3cG9ydChlLHQsaSxzLG4pe2NvbnN0IHI9bmV3IHp1KHRoaXMubV9tb2RlbCxlLHQsaSxzLG4pLG89bmV3IGp1KHIsdGhpcy5fem9vbVN0YWNrLCEwKTt0aGlzLl9wdXNoVW5kb0NvbW1hbmQobyl9em9vbVN0YWNrKCl7cmV0dXJuIHRoaXMuX3pvb21TdGFja310aW1lU2NhbGUoKXtyZXR1cm4gdGhpcy5tX21vZGVsLnRpbWVTY2FsZSgpfXNlbGVjdGlvbigpe3JldHVybiB0aGlzLm1fbW9kZWwuc2VsZWN0aW9uKCl9c2VsZWN0aW9uTWFjcm8oZSx0KXtyZXR1cm4gdGhpcy5tX21vZGVsLnNlbGVjdGlvbk1hY3JvKGUsdCl9Cm9uU2VsZWN0ZWRTb3VyY2VDaGFuZ2VkKCl7cmV0dXJuIHRoaXMubV9tb2RlbC5vblNlbGVjdGVkU291cmNlQ2hhbmdlZCgpfW9uVGFnc0NoYW5nZWQoKXtyZXR1cm4gdGhpcy5tX21vZGVsLm9uVGFnc0NoYW5nZWQoKX1saW5lQ2FuY2VsbGVkKCl7cmV0dXJuIHRoaXMubV9tb2RlbC5saW5lQ2FuY2VsbGVkKCl9aG92ZXJlZFNvdXJjZSgpe3JldHVybiB0aGlzLm1fbW9kZWwuaG92ZXJlZFNvdXJjZSgpfWNyb3NzaGFpclNvdXJjZSgpe3JldHVybiB0aGlzLm1fbW9kZWwuY3Jvc3NoYWlyU291cmNlKCl9YWN0aXZlU3RyYXRlZ3lTb3VyY2UoKXtyZXR1cm4gdGhpcy5tX21vZGVsLmFjdGl2ZVN0cmF0ZWd5U291cmNlKCl9c2V0UHJvcGVydHkoZSx0LGkscyl7aWYoZSYmZS52YWx1ZSgpIT09dCl7dGhpcy5iZWdpblVuZG9NYWNybyhpKTtjb25zdCBuPW5ldyBxci5TZXRQcm9wZXJ0eVVuZG9Db21tYW5kKGUsdCxpLHRoaXMubV9tb2RlbCwhcyk7dGhpcy5fcHVzaFVuZG9Db21tYW5kKG4pLHRoaXMuZW5kVW5kb01hY3JvKCksdGhpcy5lbWl0RXZlbnQoInNldFByb3BlcnR5Iil9fXNldFByb3BlcnRpZXMoZSx0LGkscz0hMCl7dGhpcy5iZWdpblVuZG9NYWNybyhpKSx0aGlzLm1fbW9kZWwuc2VsZWN0aW9uTWFjcm8oKCgpPT57Zm9yKGxldCBuPTA7bjxlLmxlbmd0aDtuKyspdGhpcy5zZXRQcm9wZXJ0eShlW25dLHRbbl0saSwhcyl9KSksdGhpcy5lbmRVbmRvTWFjcm8oKX1iZWdpblVuZG9NYWNybyhlKXtyZXR1cm4gdGhpcy5fdW5kb0hpc3RvcnkuYmVnaW5VbmRvTWFjcm8oZSl9ZW5kVW5kb01hY3JvKCl7dGhpcy5fdW5kb0hpc3RvcnkuZW5kVW5kb01hY3JvKCl9aW52ZXJ0UHJpY2VTY2FsZShlKXtjb25zdCB0PWUucHJvcGVydGllcygpLmNoaWxkcygpLmlzSW52ZXJ0ZWQ7dGhpcy5zZXRQcm9wZXJ0eSh0LCF0LnZhbHVlKCksSnApfXRvZ2dsZVByaWNlU2NhbGVBdXRvU2NhbGVNb2RlKGUpe2NvbnN0IHQ9e2F1dG9TY2FsZTohZS5pc0F1dG9TY2FsZSgpfTt0aGlzLnNldFByaWNlU2NhbGVNb2RlKHQsZSxRcCl9dG9nZ2xlUHJpY2VTY2FsZUxvY2tTY2FsZU1vZGUoZSl7Y29uc3QgdD17bG9ja1NjYWxlOiFlLmlzTG9ja1NjYWxlKCl9O3RoaXMuc2V0UHJpY2VTY2FsZU1vZGUodCxlLGVfKX10b2dnbGVQcmljZVNjYWxlUGVyY2VudGFnZVNjYWxlTW9kZShlKXtjb25zdCB0PXtwZXJjZW50YWdlOiFlLmlzUGVyY2VudGFnZSgpfTt0aGlzLnNldFByaWNlU2NhbGVNb2RlKHQsZSxzXyl9dG9nZ2xlUHJpY2VTY2FsZUluZGV4ZWRUbzEwMFNjYWxlTW9kZShlKXtjb25zdCB0PXtpbmRleGVkVG8xMDA6IWUuaXNJbmRleGVkVG8xMDAoKX07dGhpcy5zZXRQcmljZVNjYWxlTW9kZSh0LGUsaV8pfXRvZ2dsZVByaWNlU2NhbGVMb2dTY2FsZU1vZGUoZSl7Y29uc3QgdD17bG9nOiFlLmlzTG9nKCl9O3RoaXMuc2V0UHJpY2VTY2FsZU1vZGUodCxlLG5fKX1zZXRQcmljZVNjYWxlUmVndWxhclNjYWxlTW9kZShlKXt0aGlzLnNldFByaWNlU2NhbGVNb2RlKHtsb2c6ITEscGVyY2VudGFnZTohMSxpbmRleGVkVG8xMDA6ITF9LGUsdF8pfXdpdGhNYWNybyhlLHQpe2NvbnN0IGk9dGhpcy5iZWdpblVuZG9NYWNybyhlKTt0cnl7dCgpfWZpbmFsbHl7dGhpcy5lbmRVbmRvTWFjcm8oKX1yZXR1cm4gaX1kYXRhU291cmNlcygpe3JldHVybiB0aGlzLm1fbW9kZWwuZGF0YVNvdXJjZXMoKX1vcmRlcmVkRGF0YVNvdXJjZXMoZSl7cmV0dXJuIHRoaXMubV9tb2RlbC5vcmRlcmVkRGF0YVNvdXJjZXMoZSl9YmFyc01hcmtzU291cmNlcygpe3JldHVybiB0aGlzLm1fbW9kZWwuYmFyc01hcmtzU291cmNlcygpfXJlbW92ZUFsbERyYXdpbmdUb29scyhlKXt0aGlzLmJlZ2luVW5kb01hY3JvKGhfKSx0aGlzLl9yZW1vdmVBbGxEcmF3aW5nVG9vbHNJbXBsKGUpLHRoaXMuZW5kVW5kb01hY3JvKCl9cmVtb3ZlQWxsU3R1ZGllc0FuZERyYXdpbmdUb29scyhlKXt0aGlzLmJlZ2luVW5kb01hY3JvKGRfKSx0aGlzLl9yZW1vdmVBbGxEcmF3aW5nVG9vbHNJbXBsKGUpLHRoaXMuX3JlbW92ZUFsbFN0dWRpZXNJbXBsKCksdGhpcy5lbmRVbmRvTWFjcm8oKX1yZW1vdmVBbGxTdHVkaWVzKCl7dGhpcy5iZWdpblVuZG9NYWNybyhjXyksdGhpcy5fcmVtb3ZlQWxsU3R1ZGllc0ltcGwoKSx0aGlzLmVuZFVuZG9NYWNybygpfXNjcm9sbENoYXJ0QnlCYXIoZSl7aWYoIXRoaXMubV9tb2RlbC5zY3JvbGxFbmFibGVkKCkpcmV0dXJuO2NvbnN0IHQ9ZSp0aGlzLm1fbW9kZWwudGltZVNjYWxlKCkuYmFyU3BhY2luZygpO3RoaXMuc3RhcnRTY3JvbGxUaW1lKDApLHRoaXMuc2Nyb2xsVGltZVRvKHQpLHRoaXMuZW5kU2Nyb2xsVGltZSgpfWNhblpvb21Jbigpe3JldHVybiB0aGlzLm1vZGVsKCkuY2FuWm9vbUluKCl9Y2FuWm9vbU91dCgpe3JldHVybiB0aGlzLm1vZGVsKCkuY2FuWm9vbU91dCgpfXpvb21PdXQoKXtjb25zdCBlPXRoaXMudGltZVNjYWxlKCkud2lkdGgoKTt0aGlzLmNhblpvb21PdXQoKSYmKDAsT24uZG9BbmltYXRlKSh7dG86ZS81LG9uU3RlcDplPT57dGhpcy5zdGFydFNjYWxlVGltZSgwKSx0aGlzLnNjYWxlVGltZVRvKGUpLHRoaXMuZW5kU2NhbGVUaW1lKCl9fSl9em9vbUluKCl7Y29uc3QgZT10aGlzLnRpbWVTY2FsZSgpLndpZHRoKCk7dGhpcy5jYW5ab29tSW4oKSYmKDAsT24uZG9BbmltYXRlKSh7dG86ZS81LG9uU3RlcDplPT57dGhpcy5zdGFydFNjYWxlVGltZShlKSx0aGlzLnNjYWxlVGltZVRvKDApLHRoaXMuZW5kU2NhbGVUaW1lKCl9fSl9c2Nyb2xsQ2hhcnQoZSl7dGhpcy5tX21vZGVsLnNjcm9sbEVuYWJsZWQoKSYmKHRoaXMuc3RhcnRTY3JvbGxUaW1lKDApLHRoaXMuc2Nyb2xsVGltZVRvKGUpLHRoaXMuZW5kU2Nyb2xsVGltZSgpKX1zdGFydE1vdmluZ1NvdXJjZXMoZSx0LGkscyl7ZS5maWx0ZXIoKGU9PmUuZG9lc01vdmluZ0FmZmVjdHNVbmRvKCkpKS5sZW5ndGgmJih0aGlzLl9jdXJyZW50U291cmNlTW92ZUNvbW1hbmQ9bmV3IG5yKHRoaXMubW9kZWwoKSxlLGtwLCExKSksdGhpcy5tb2RlbCgpLnN0YXJ0TW92aW5nU291cmNlcyhlLHQsaSxuZXcgTWFwLHMpfW1vdmVTb3VyY2VzKGUsdCl7CnRoaXMubW9kZWwoKS5tb3ZlU291cmNlcyhlLG5ldyBNYXAsdCl9ZW5kTW92aW5nU291cmNlKGUsdCl7dGhpcy5tb2RlbCgpLmVuZE1vdmluZ1NvdXJjZXMoZSx2b2lkIDAsdCksbnVsbCE9PXRoaXMuX2N1cnJlbnRTb3VyY2VNb3ZlQ29tbWFuZCYmKHRoaXMuX2N1cnJlbnRTb3VyY2VNb3ZlQ29tbWFuZC5zYXZlTmV3U3RhdGUoKSx0aGlzLl9wdXNoVW5kb0NvbW1hbmQodGhpcy5fY3VycmVudFNvdXJjZU1vdmVDb21tYW5kKSksdGhpcy5fY3VycmVudFNvdXJjZU1vdmVDb21tYW5kPW51bGx9c3RhcnRDaGFuZ2luZ0xpbmV0b29sKGUsdCxpLHMsbixyKXt0aGlzLl9jdXJyZW50TGluZUNoYW5nZUNvbW1hbmQ9bmV3IG5yKHRoaXMubW9kZWwoKSxbZV0sZS5jaGFuZ2VQb2ludFVuZG9UZXh0KHMpLCExKSx0aGlzLm1vZGVsKCkuc3RhcnRDaGFuZ2luZ0xpbmV0b29sKGUsdCxpLHMsbixyKX1jaGFuZ2VMaW5lUG9pbnQoZSx0KXt0aGlzLm1vZGVsKCkuY2hhbmdlTGluZVBvaW50KGUsdCl9YWxpZ25Ub29sVG80NURlZ3JlZXMoZSx0KXtjb25zdCBpPWUuYWxpZ25UbzQ1RGVncmVlc1BvaW50cygpO2kmJih0aGlzLl9wdXNoVW5kb0NvbW1hbmQobmV3IG5yKHRoaXMubW9kZWwoKSxbZV0sYV8sITEpKSx0aGlzLm1vZGVsKCkuYWxpZ25UbzQ1RGVncmVlcyhlLHQsaSkpfWVuZENoYW5naW5nTGluZXRvb2woZSl7dGhpcy5tb2RlbCgpLmVuZENoYW5naW5nTGluZXRvb2woZSksbnVsbCE9PXRoaXMuX2N1cnJlbnRMaW5lQ2hhbmdlQ29tbWFuZCYmKHRoaXMuX2N1cnJlbnRMaW5lQ2hhbmdlQ29tbWFuZC5zYXZlTmV3U3RhdGUoKSx0aGlzLl9wdXNoVW5kb0NvbW1hbmQodGhpcy5fY3VycmVudExpbmVDaGFuZ2VDb21tYW5kKSksdGhpcy5fY3VycmVudExpbmVDaGFuZ2VDb21tYW5kPW51bGx9c2V0Q2hhcnRTdHlsZVByb3BlcnR5KGUsdCxpKXtpZihlLnZhbHVlKCkhPT10KXtjb25zdCBzPU91LmNoYXJ0U3R5bGVQZXJtaXNzaW9ucy5nZXQodCksbj0oKT0+e3RoaXMuYmVnaW5VbmRvTWFjcm8oaSk7Y29uc3Qgcz1uZXcgJHIoZSx0LHRoaXMubWFpblNlcmllcygpLGksdGhpcy5tb2RlbCgpLHRoaXMuX2NoYXJ0V2lkZ2V0KTt2YXIgbjt0aGlzLl9wdXNoVW5kb0NvbW1hbmQocyksdGhpcy5lbWl0RXZlbnQoInNldENoYXJ0U3R5bGVQcm9wZXJ0eSIpLG49ZS52YWx1ZSgpLCgwLFVyLmdldFRyYWNrZXIpKCkudGhlbigoZT0+e2lmKG51bGwhPT1lKXtjb25zdCB0PUwuU1RZTEVfU0hPUlRfTkFNRVNbbl07ZS50cmFja0NoYXJ0U3R5bGUodCl9fSkpLHRoaXMuZW5kVW5kb01hY3JvKCl9O3M/KDAsV3UucnVuT3JHb1BybykobixzLmZlYXR1cmUse2ZlYXR1cmU6cy5mZWF0dXJlTmFtZX0pOm4oKX19c2V0UHJpY2VBdXRvU2NhbGUoZSx0LGkpe3RoaXMuX3B1c2hVbmRvQ29tbWFuZChuZXcgT3ModGhpcy5tX21vZGVsLGUsdCx0LnN0YXRlKCkpKSx0aGlzLm1fbW9kZWwuc2V0UHJpY2VBdXRvU2NhbGUoZSx0LGkpfXNldFByaWNlU2NhbGVNb2RlKGUsdCxpKXtpZighKDAscy5kZWZhdWx0KSh0Lm1vZGUoKSxlKSl7Y29uc3Qgcz1uZXcgJG8oZSx0LGksdGhpcy5tX21vZGVsKTt0aGlzLl9wdXNoVW5kb0NvbW1hbmQocyl9fXNldFByaWNlU2NhbGVTZWxlY3Rpb25TdHJhdGVneShlKXtjb25zdCB0PXRoaXMubV9tb2RlbC5wcm9wZXJ0aWVzKCkuY2hpbGRzKCk7aWYodC5wcmljZVNjYWxlU2VsZWN0aW9uU3RyYXRlZ3lOYW1lLnZhbHVlKCk9PT1lKXJldHVybjsoMCxNdC50cmFja0V2ZW50KSgiQ2hhcnQiLCJDaGFuZ2UgUHJpY2VTY2FsZSBTZWxlY3Rpb24gU3RyYXRlZ3kiKTtjb25zdCBpPWxfLmZvcm1hdCh7dGl0bGU6ZX0pO3RoaXMuYmVnaW5VbmRvTWFjcm8oaSksdGhpcy5zZXRQcm9wZXJ0eSh0LnByaWNlU2NhbGVTZWxlY3Rpb25TdHJhdGVneU5hbWUsZSxpKTtjb25zdCBzPW5ldyB5cCh0aGlzLm1fbW9kZWwsZSxpKTt0aGlzLl9wdXNoVW5kb0NvbW1hbmQocyksdGhpcy5lbmRVbmRvTWFjcm8oKX1zZXRTY2FsZVJhdGlvUHJvcGVydHkoZSx0LGkpe2lmKGUudmFsdWUoKSE9PXQpe2NvbnN0IHM9bmV3IGZwKGUsdCxpLHRoaXMubV9tb2RlbCk7dGhpcy5fcHVzaFVuZG9Db21tYW5kKHMpfX1jcmVhdGVVbmRvQ2hlY2twb2ludCgpe3JldHVybiB0aGlzLl91bmRvSGlzdG9yeS5jcmVhdGVVbmRvQ2hlY2twb2ludCgpfXVuZG9Ub0NoZWNrcG9pbnQoZSl7dGhpcy5fdW5kb0hpc3RvcnkudW5kb1RvQ2hlY2twb2ludChlKX1yZXN0b3JlUHJvcGVydGllc0ZvclNvdXJjZShlKXsoMCxyaS5pc0xpbmVUb29sKShlKT90aGlzLl9yZXN0b3JlTGluZVRvb2xGYWN0b3J5RGVmYXVsdHMoZSk6dGhpcy5fcmVzdG9yZVN0dWR5RmFjdG9yeURlZmF1bHRzKGUpfXJlc3RvcmVMaW5lVG9vbHNGYWN0b3J5RGVmYXVsdHMoZSl7MT09PWUubGVuZ3RoP3RoaXMuX3Jlc3RvcmVMaW5lVG9vbEZhY3RvcnlEZWZhdWx0cyhlWzBdKToodGhpcy5iZWdpblVuZG9NYWNybyhFcCksZS5mb3JFYWNoKChlPT50aGlzLl9yZXN0b3JlTGluZVRvb2xGYWN0b3J5RGVmYXVsdHMoZSkpKSx0aGlzLmVuZFVuZG9NYWNybygpKX1yZXN0b3JlUHJlZmVyZW5jZXMoKXtjb25zdCBlPW5ldyBncCh0aGlzLm1vZGVsKCksdGhpcy5fdHJhZGluZ1ByZWZlcmVuY2VzU2VydmljZSk7dGhpcy5fcHVzaFVuZG9Db21tYW5kKGUpfXJlc3RvcmVTdGF0ZShlLHQsaSl7cmV0dXJuIHRoaXMubV9tb2RlbC5yZXN0b3JlU3RhdGUoZSx0LGkpfWFzeW5jIGNsaXBib2FyZENvcHkoZSx0PXRoaXMuc2VsZWN0aW9uKCkuZGF0YVNvdXJjZXMoKSl7aWYoISgwLHEuaXNGZWF0dXJlc2V0RW5hYmxlZCkoImRhdGFzb3VyY2VfY29weXBhc3RlIikpcmV0dXJuO2NvbnN0IGk9dC5maWx0ZXIoKGU9PmUuY29waWFibGUoKSkpO2lmKDA9PT1pLmxlbmd0aClyZXR1cm47Zm9yKGNvbnN0IGUgb2YgaSlpZigoMCx0aS5pc1N0dWR5KShlKSYmZS5pc0NoaWxkU3R1ZHkoKSl0aHJvdyBuZXcgRXJyb3IoIkNhbiBub3QgY29weSBjaGlsZCBzdHVkeSIpO2NvbnN0IHM9KDAsSG4uY2xpcGJvYXJkRGF0YUZvclNvdXJjZXMpKHRoaXMuX21vZGVsKCkuaWQoKSxpKTtyZXR1cm4gbnVsbCE9PXM/ZS53cml0ZSh7CmFwcDpKU09OLnN0cmluZ2lmeShzKSx0ZXh0OnMudGl0bGV9KTp2b2lkIDB9YXN5bmMgY2xpcGJvYXJkQ3V0KGUsdD10aGlzLnNlbGVjdGlvbigpLmRhdGFTb3VyY2VzKCkpe2lmKCEoMCxxLmlzRmVhdHVyZXNldEVuYWJsZWQpKCJkYXRhc291cmNlX2NvcHlwYXN0ZSIpKXJldHVybjtjb25zdCBpPXQuZmlsdGVyKChlPT5lLmNvcGlhYmxlKCkpKTtpZigwPT09aS5sZW5ndGgpcmV0dXJuO2F3YWl0IHRoaXMuY2xpcGJvYXJkQ29weShlLGkpO2NvbnN0IHM9aS5maWx0ZXIoKGU9PmUuaXNVc2VyRGVsZXRhYmxlKCkpKTtpZigwPT09cy5sZW5ndGgpcmV0dXJuO2NvbnN0IG49KDE9PT1zLmxlbmd0aD9UcDp4cCkuZm9ybWF0KHt0aXRsZTooMCx1ci5nZXRUcmFuc2xhdGVkU3RyaW5nRm9yU291cmNlKShObi5UaXRsZURpc3BsYXlUYXJnZXQuU3RhdHVzTGluZSxzWzBdKX0pO3RoaXMuYmVnaW5VbmRvTWFjcm8obiksdGhpcy5tX21vZGVsLnNlbGVjdGlvbk1hY3JvKCgoKT0+dGhpcy5yZW1vdmVTb3VyY2VzKHMsITEsbikpLCEwKSx0aGlzLmVuZFVuZG9NYWNybygpfWFzeW5jIGNsaXBib2FyZFBhc3RlKGUsdCl7bGV0IGk9bnVsbDtpZigoMCxxLmlzRmVhdHVyZXNldEVuYWJsZWQpKCJkYXRhc291cmNlX2NvcHlwYXN0ZSIpJiYoaT1pfHxhd2FpdCBlLnJlYWQoKSxpLmFwcCkpe2NvbnN0IGU9SlNPTi5wYXJzZShpLmFwcCk7aWYobnVsbCE9PWF3YWl0IHRoaXMucGFzdGVTb3VyY2VGcm9tQ2xpcCh0LGUpKXJldHVybn1hd2FpdCB0aGlzLl9wcm9jZXNzU3BlY2lhbExpbmVUb29sc0NvbnRlbnRzKGUsaSx0KX1hcHBseVN0dWR5VGVtcGxhdGUoZSx0LGkpe2NvbnN0IHM9bmV3IE1vKHRoaXMuX21vZGVsKCksZSx0LGkpO3RoaXMuYmVnaW5VbmRvTWFjcm8ocy50ZXh0KCkpO2NvbnN0IG49dGhpcy5tX21vZGVsLnBhbmVzKCkucmVkdWNlKCgoZSx0KT0+ZS5jb25jYXQodC5zb3VyY2VzQnlHcm91cCgpLmFsbFdpdGhvdXRNdWx0aXBhbmVXaXRoSGlkZGVuKCkuZmlsdGVyKHJpLmlzTGluZVRvb2wpLmZpbHRlcigoZT0+ZS5vd25lclNvdXJjZSgpIT09dGhpcy5tX21vZGVsLm1haW5TZXJpZXMoKSYmKCFlLnN1cHBvcnRzVGFyZ2V0U2lnbmF0dXJlKCl8fG51bGw9PT1lLnRhcmdldFNpZ25hdHVyZSgpKSkpKSksW10pO3RoaXMucmVtb3ZlU291cmNlcyhuLCExLG51bGwpLHRoaXMuX3B1c2hVbmRvQ29tbWFuZChzKSx0aGlzLmVuZFVuZG9NYWNybygpLCgwLCQuZW1pdCkoImxvYWRfc3R1ZHlfdGVtcGxhdGUiKX1jcmVhdGVTdHVkeUluc2VydGVyKGUsdCxpPXt9KXtjb25zdHtzdHViVGl0bGU6cyxpc092ZXJsYXk6bn09aSxyPXtjcmVhdGVTdHVkeTplPT57Y29uc3R7c3R1ZHlNZXRhSW5mbzppLGlucHV0czpzLHN0dWJUb1JlcGxhY2U6bixwcm9wc1N0YXRlOnIsZm9yY2VPdmVybGF5Om8scGFyZW50U291cmNlczphLHByZWZlcnJlZFByaWNlU2NhbGU6bCxhbGxvd0NoYW5nZUN1cnJlbmN5OmMsYWxsb3dDaGFuZ2VVbml0OmgsYWxsb3dDaGFuZ2VNZXRyaWM6ZCxwYW5lU2l6ZTp1LHRhcmdldFNjYWxlTW9kZTpwLGV2ZW50U291cmNlOl99PWU7aWYoIXRoaXMuY2hlY2tJZkZlYXR1cmVBdmFpbGFibGUoaSx0KSlyZXR1cm4gZl8ubG9nTm9ybWFsKCJDYW5ub3QgaW5zZXJ0IHN0dWR5ICIraS5pZCksbnVsbDsoMCxNdC50cmFja0V2ZW50KSgic3R1ZGllcyIsIlN0dWR5XyIraS5pZCxpLmRlc2NyaXB0aW9uKSwiQ29tcGFyZUB0di1iYXNpY3N0dWRpZXMiPT09aS5pZCYmKDAsTXQudHJhY2tFdmVudCkoImNvbXBhcmUiLCJzeW1ib2w6IitzLnN5bWJvbCksbiYmdGhpcy5tX21vZGVsLnJlbW92ZVNvdXJjZShuKTtjb25zdCBtPXRoaXMuX2luc2VydFN0dWR5KGkscyxyLG8sYSxsLGMsaCxkLHUsbnVsbCxwLF8pO3JldHVybiBtLnN0dWR5LnRoZW4oKGU9PigwLCQuZW1pdCkoInN0dWR5X2V2ZW50IixlLmlkKCksImNyZWF0ZSIpKSksbX0sc3RvcmVGYWlsZWRTdHViOmU9Pnt0aGlzLl9zdG9yZUZhaWxlZFN0dWIoZSl9fTt2b2lkIDAhPT1zJiYoci5jcmVhdGVTdHViPSgpPT50aGlzLm1fbW9kZWwuaW5zZXJ0U3R1ZHlTdHViKHMsbikuaWQoKSxyLnJlbW92ZVN0dWI9ZT0+dGhpcy5tX21vZGVsLnJlbW92ZVN0dWR5U3R1YihlKSk7Y29uc3Qgbz1uZXcgZ3UoZSxyKTtyZXR1cm4gby5zZXRQYXJlbnRTb3VyY2VzKHQpLG99YXBwbHlMaW5lVG9vbFRlbXBsYXRlKGUsdCxpKXt0aGlzLmJlZ2luVW5kb01hY3JvKGkpLHRoaXMuc2F2ZUxpbmVUb29sU3RhdGUoZSxpKTtjb25zdCBzPW5ldyBscChlLHQsaSk7dGhpcy5fcHVzaFVuZG9Db21tYW5kKHMpLHRoaXMuc2F2ZUxpbmVUb29sU3RhdGUoZSxpKSx0aGlzLmVuZFVuZG9NYWNybygpLHRoaXMubW9kZWwoKS51cGRhdGVTb3VyY2UoZSl9YXBwbHlMaW5lVG9vbHNUZW1wbGF0ZShlKXtpZigic291cmNlcyJpbiBlKXtjb25zdHtzb3VyY2VzOnQsZGF0YTppfT1lO3RoaXMuYmVnaW5VbmRvTWFjcm8oZ18pO2Zvcihjb25zdCBlIG9mIHQpdGhpcy5hcHBseUxpbmVUb29sVGVtcGxhdGUoZSxpLG51bGwpO3RoaXMuZW5kVW5kb01hY3JvKCl9ZWxzZXtjb25zdHtwcm9wZXJ0aWVzOnQsZGF0YTppfT1lO2kuaW50ZXJ2YWxzVmlzaWJpbGl0aWVzPSgwLEpsLm1lcmdlSW50ZXJ2YWxWaXNpYmlsaXRpZXNEZWZhdWx0cykoaS5pbnRlcnZhbHNWaXNpYmlsaXRpZXMpLHQuYXBwbHlUZW1wbGF0ZShpLHQuZmFjdG9yeURlZmF1bHRzKCkpLHQuc2F2ZURlZmF1bHRzKCl9fXJlcGxheVN0YXR1cygpe3JldHVybiB0aGlzLm1fbW9kZWwucmVwbGF5U3RhdHVzKCl9c2V0UmVwbGF5U3RhdHVzKGUpe3JldHVybiB0aGlzLm1fbW9kZWwuc2V0UmVwbGF5U3RhdHVzKGUpfWlzSW5SZXBsYXkoKXtyZXR1cm4gdGhpcy5tX21vZGVsLmlzSW5SZXBsYXkoKX1nZXRTeW1ib2xTdHJpbmcoKXtyZXR1cm4gdGhpcy5tX21vZGVsLmdldFN5bWJvbFN0cmluZygpfWludGVydmFsKCl7cmV0dXJuIHRoaXMubV9tb2RlbC5pbnRlcnZhbCgpfW9uSW5SZXBsYXlTdGF0ZUNoYW5nZWQoKXtyZXR1cm4gdGhpcy5tX21vZGVsLm9uSW5SZXBsYXlTdGF0ZUNoYW5nZWQoKX1zd2l0Y2hUb1JlcGxheShlLHQsaSl7CnRoaXMuX3VuZG9IaXN0b3J5LmNsZWFyU3RhY2soKSx0aGlzLm1fbW9kZWwuc3dpdGNoVG9SZXBsYXkoZSx0LGkpfXN3aXRjaFRvUmVhbHRpbWUoKXt0aGlzLl91bmRvSGlzdG9yeS5jbGVhclN0YWNrKCksdGhpcy5tX21vZGVsLnN3aXRjaFRvUmVhbHRpbWUoKX1jYW5DaGFuZ2VSZXNvbHV0aW9uKGUpe3JldHVybiB0aGlzLm1vZGVsKCkuY2FuQ2hhbmdlUmVzb2x1dGlvbihlKX1jYW5DaGFuZ2VTeW1ib2woZSl7cmV0dXJuIHRoaXMubW9kZWwoKS5jYW5DaGFuZ2VTeW1ib2woZSl9b25SZXBsYXlNb2RpZmllZCgpe3JldHVybiB0aGlzLm1vZGVsKCkub25SZXBsYXlNb2RpZmllZCgpfXN0YXJ0Q3VzdG9tTW92aW5nKGUsdCxpKXt0aGlzLl9jdXJyZW50Q3VzdG9tTW92ZUNvbW1hbmQ9bmV3IGpvKHRoaXMubW9kZWwoKSxlLHQsaSl9Y3VzdG9tTW92ZUJlaW5nUHJvY2Vzc2VkKCl7cmV0dXJuIG51bGwhPT10aGlzLl9jdXJyZW50Q3VzdG9tTW92ZUNvbW1hbmR9cHJvY2Vzc0N1c3RvbU1vdmUoZSl7KDAsbC5lbnN1cmVOb3ROdWxsKSh0aGlzLl9jdXJyZW50Q3VzdG9tTW92ZUNvbW1hbmQpLm1vdmUoZSl9ZW5kQ3VzdG9tTW92aW5nKCl7bnVsbCE9PXRoaXMuX2N1cnJlbnRDdXN0b21Nb3ZlQ29tbWFuZCYmdGhpcy5fY3VycmVudEN1c3RvbU1vdmVDb21tYW5kLmhhc0NoYW5nZXMoKSYmKHRoaXMuX3B1c2hVbmRvQ29tbWFuZCh0aGlzLl9jdXJyZW50Q3VzdG9tTW92ZUNvbW1hbmQpLHRoaXMuX2N1cnJlbnRDdXN0b21Nb3ZlQ29tbWFuZD1udWxsKX1zdGF0ZShlKXtyZXR1cm4gdGhpcy5tX21vZGVsLnN0YXRlKGUpfXBhbmVzKCl7cmV0dXJuIHRoaXMubV9tb2RlbC5wYW5lcygpfWNsb25lTGluZVRvb2xzKGUsdCl7aWYoZS5zb21lKChlPT4hKDAsUnUuZW5zdXJlRHJhd2luZ0NyZWF0aW9uQWxsb3dlZCkoZS50b29sbmFtZSwiQ2xvbmUiLCJjaGFydF9kcmF3aW5nX2Nsb25lIikpKSlyZXR1cm5bXTt0aGlzLmJlZ2luVW5kb01hY3JvKE5wKTtjb25zdCBpPW5ldyBlcih0aGlzLl9tb2RlbCgpLGUsdCxOcCk7dGhpcy5fcHVzaFVuZG9Db21tYW5kKGkpO2NvbnN0IHM9aS5uZXdJZHMoKS5tYXAoKGU9PigwLGwuZW5zdXJlTm90TnVsbCkodGhpcy5tb2RlbCgpLmRhdGFTb3VyY2VGb3JJZChlKSkpKS5maWx0ZXIoKGU9PjAhPT1lLnNoYXJpbmdNb2RlKCkudmFsdWUoKSkpO3JldHVybiBzLmxlbmd0aCYmdGhpcy5fbW9kZWwoKS5jb3B5VG9PdGhlckNoYXJ0cyhzLCEwKSx0aGlzLmVuZFVuZG9NYWNybygpLHRoaXMuZW1pdEV2ZW50KCJjbG9uZUxpbmVUb29scyIpLGkubmV3SWRzKCl9cmVtb3ZlU291cmNlKGUsdCxpKXt0aGlzLmxpbmVCZWluZ0NyZWF0ZWQoKSE9PWU/dGhpcy5yZW1vdmVTb3VyY2VzKFtlXSx0LE1wLmZvcm1hdCh7dGl0bGU6KDAsdXIuZ2V0VHJhbnNsYXRlZFN0cmluZ0ZvclNvdXJjZSkoTm4uVGl0bGVEaXNwbGF5VGFyZ2V0LlN0YXR1c0xpbmUsZSl9KSxpKTp0aGlzLmNhbmNlbENyZWF0aW5nTGluZSgpfXJlbW92ZVNlbGVjdGVkU291cmNlcygpe2NvbnN0IGU9dGhpcy5fbW9kZWwoKS5zZWxlY3Rpb24oKS5kYXRhU291cmNlcygpO2lmKCFlLmxlbmd0aClyZXR1cm47Y29uc3QgdD0oZS5sZW5ndGg+MT9JcDpNcCkuZm9ybWF0KHt0aXRsZTooMCx1ci5nZXRUcmFuc2xhdGVkU3RyaW5nRm9yU291cmNlKShObi5UaXRsZURpc3BsYXlUYXJnZXQuU3RhdHVzTGluZSxlWzBdKX0pO3RoaXMucmVtb3ZlU291cmNlcyhlLCExLHQpfXJlbW92ZVNvdXJjZXMoZSx0LGkscyl7c3x8KGU9ZS5maWx0ZXIoKGU9PmUuaXNVc2VyRGVsZXRhYmxlKCkpKSk7Y29uc3Qgbj10aGlzLl9tb2RlbCgpLHI9bi5saW5lVG9vbHNHcm91cE1vZGVsKCk7dGhpcy5iZWdpblVuZG9NYWNybyhpKSxuLnNlbGVjdGlvbk1hY3JvKChzPT57Y29uc3Qgbz1uZXcgTWFwO2UuZm9yRWFjaCgoZT0+e2lmKCgwLHJpLmlzTGluZVRvb2wpKGUpKXtjb25zdCB0PXIuZ3JvdXBGb3JMaW5lVG9vbChlKTtpZihudWxsIT09dCl7Y29uc3QgaT1vLmdldCh0KXx8W107aS5wdXNoKGUpLG8uc2V0KHQsaSl9bnVsbCE9PWUubGlua0tleSgpLnZhbHVlKCkmJigwLFQucmVtb3ZlTGluZVRvb2wpKHt3aXRoVW5kbzohMCxtb2RlbDp0aGlzLm1vZGVsKCksbGlua0tleTooMCxsLmVuc3VyZU5vdE51bGwpKGUubGlua0tleSgpLnZhbHVlKCkpLHN5bWJvbDp0aGlzLm1vZGVsKCkubWFpblNlcmllcygpLnN5bWJvbCgpLGxpbmVUb29sU3RhdGU6ZS5zdGF0ZSghMSksc291cmNlVGl0bGU6KDAsdXIuZ2V0VHJhbnNsYXRlZFN0cmluZ0ZvclNvdXJjZSkoTm4uVGl0bGVEaXNwbGF5VGFyZ2V0LlN0YXR1c0xpbmUsZSl9KX19KSk7Y29uc3QgYT1uZXcgdHIuUmVtb3ZlU291cmNlc1VuZG9Db21tYW5kKG4sZSxpKSxjPWEucmVtb3ZlZElkcygpO3RoaXMuX3B1c2hVbmRvQ29tbWFuZChhKSwhdCYmYy5sZW5ndGg+MCYmKDE9PT1jLmxlbmd0aD90aGlzLmVtaXRFdmVudCgicmVtb3ZlU291cmNlIixbY1swXV0pOnRoaXMuZW1pdEV2ZW50KCJyZW1vdmVTb3VyY2VzIixbY10pKX0pLCEwKSx0aGlzLmVuZFVuZG9NYWNybygpfWFzeW5jIHNjcm9sbFRvTGluZVRvb2woZSl7Y29uc3QgdD10aGlzLnRpbWVTY2FsZSgpLmxvZ2ljYWxSYW5nZSgpO2lmKG51bGw9PT10KXJldHVybjtjb25zdCBpPWUucG9pbnRzKCkubWFwKChlPT5lLmluZGV4KSkscz10aGlzLnRpbWVTY2FsZSgpLnBvaW50cygpLnJhbmdlKCkudmFsdWUoKTtpZihudWxsPT09cylyZXR1cm47bGV0IG49cy5maXJzdEluZGV4O2NvbnN0IHI9cy5sYXN0SW5kZXgsbz10Lmxlbmd0aCgpLzI7aWYoMD09PWkubGVuZ3RofHxpLnNvbWUoKGU9PnQuY29udGFpbnMoZSkpKSlyZXR1cm47Y29uc3QgYz0oKT0+e2NvbnN0IHQ9ZS5wb2ludHMoKS5tYXAoKGU9PmUuaW5kZXgpKSxpPXQuZmlsdGVyKChlPT5lPD1yKSkucmVkdWNlKCgoZSx0KT0+bnVsbD09PWU/dDpNYXRoLm1heChlLHQpKSxudWxsKTtyZXR1cm4gbnVsbCE9PWk/aTp0LnJlZHVjZSgoKGUsdCk9Pk1hdGgubWluKGUsdCkpKX07bGV0IGg9YygpO2lmKG4tbz5oKXsKY29uc3QgdD1lLnBvaW50cygpLm1hcCgoZT0+ZS50aW1lKSkuZmlsdGVyKGEubm90VW5kZWZpbmVkKS5tYXAoKGU9PjFlMyplKSk7aWYoMD09PXQubGVuZ3RoKXJldHVybjtjb25zdCBpPXQucmVkdWNlKCgoZSx0KT0+TWF0aC5taW4oZSx0KSksdFswXSk7YXdhaXQgdGhpcy5tb2RlbCgpLmdvdG9UaW1lKGkpLGg9YygpO2lmKCgwLGwuZW5zdXJlTm90TnVsbCkodGhpcy50aW1lU2NhbGUoKS5sb2dpY2FsUmFuZ2UoKSkuY29udGFpbnMoaCkpcmV0dXJuO249KDAsbC5lbnN1cmVOb3ROdWxsKSh0aGlzLnRpbWVTY2FsZSgpLnBvaW50cygpLnJhbmdlKCkudmFsdWUoKSkuZmlyc3RJbmRleH1uLW8+aCYmdGhpcy5tYWluU2VyaWVzKCkuc2V0R290b0RhdGVSZXN1bHQoe3RpbWVzdGFtcDooMCxsLmVuc3VyZU5vdE51bGwpKHRoaXMudGltZVNjYWxlKCkucG9pbnRzKCkudmFsdWVBdChuKSksZW9kOiEwfSk7Y29uc3QgZD10aGlzLnRpbWVTY2FsZSgpLndpZHRoKCkvMix1PXRoaXMudGltZVNjYWxlKCkuaW5kZXhUb0Nvb3JkaW5hdGUoaCk7dGhpcy5tb2RlbCgpLnN0b3BUaW1lU2NhbGVBbmltYXRpb24oKSx0aGlzLm1vZGVsKCkuc2V0VGltZVNjYWxlQW5pbWF0aW9uKG5ldyBGbih7ZnJvbTowLHRvOmQtdSxkdXJhdGlvbjpFbi5kdXIsZWFzaW5nOkVuLmVhc2luZ0Z1bmMuZWFzZUluT3V0Q3ViaWN9KSl9bWVyZ2VTb3VyY2VVcChlKXtjb25zdCB0PW5ldyBoci5NZXJnZVVwVW5kb0NvbW1hbmQodGhpcy5fbW9kZWwoKSxlLE9wKTt0aGlzLl9tZXJnZVVubWVyZ2VTb3VyY2UoZSx0KX1tZXJnZVNvdXJjZURvd24oZSl7Y29uc3QgdD1uZXcgaHIuTWVyZ2VEb3duVW5kb0NvbW1hbmQodGhpcy5fbW9kZWwoKSxlLFdwKTt0aGlzLl9tZXJnZVVubWVyZ2VTb3VyY2UoZSx0KX1tZXJnZVRvUGFuZShlLHQsaSl7Y29uc3Qgcz10aGlzLl9tb2RlbCgpLnBhbmVzKCkuaW5kZXhPZih0KSxuPW5ldyBoci5NZXJnZVRvVGFyZ2V0UGFuZSh0aGlzLl9tb2RlbCgpLGUscyxGcCxpKTt0aGlzLl9tZXJnZVVubWVyZ2VTb3VyY2UoZSxuKX11bm1lcmdlU291cmNlVXAoZSl7Y29uc3QgdD1uZXcgbHIodGhpcy5fbW9kZWwoKSxlLEhwKTt0aGlzLl93aXRoS2VlcFdpZGdldFBhbmVQb3NpdGlvbkd1YXJkKCgoKT0+dGhpcy5fbWVyZ2VVbm1lcmdlU291cmNlKGUsdCkpLHQudGV4dCgpKX11bm1lcmdlU291cmNlRG93bihlKXtjb25zdCB0PW5ldyBhcih0aGlzLl9tb2RlbCgpLGUsenApO3RoaXMuX3dpdGhLZWVwV2lkZ2V0UGFuZVBvc2l0aW9uR3VhcmQoKCgpPT50aGlzLl9tZXJnZVVubWVyZ2VTb3VyY2UoZSx0KSksdC50ZXh0KCkpfXVubWVyZ2VUb05ld0JvdHRvbVBhbmUoZSl7Y29uc3QgdD1uZXcgY3IodGhpcy5fbW9kZWwoKSxlLFVwKTt0aGlzLl9tZXJnZVVubWVyZ2VTb3VyY2UoZSx0KX1tb3ZlTGVmdCgpe3RoaXMuYmVnaW5VbmRvTWFjcm8ocl8pLCgwLE9uLmRvQW5pbWF0ZSkoe3RvOnRoaXMubV9tb2RlbC50aW1lU2NhbGUoKS53aWR0aCgpLzUsb25TdGVwOmU9Pnt0aGlzLnN0YXJ0U2Nyb2xsVGltZShlKSx0aGlzLnNjcm9sbFRpbWVUbygwKSx0aGlzLmVuZFNjcm9sbFRpbWUoKX0sb25Db21wbGV0ZTooKT0+e3RoaXMuZW5kVW5kb01hY3JvKCl9fSl9bW92ZVJpZ2h0KCl7dGhpcy5iZWdpblVuZG9NYWNybyhvXyksKDAsT24uZG9BbmltYXRlKSh7dG86dGhpcy5tX21vZGVsLnRpbWVTY2FsZSgpLndpZHRoKCkvNSxvblN0ZXA6ZT0+e3RoaXMuc3RhcnRTY3JvbGxUaW1lKDApLHRoaXMuc2Nyb2xsVGltZVRvKGUpLHRoaXMuZW5kU2Nyb2xsVGltZSgpfSxvbkNvbXBsZXRlOigpPT57dGhpcy5lbmRVbmRvTWFjcm8oKX19KX1hdmFpbGFibGVaT3JkZXJPcGVyYXRpb25zKGUpe2NvbnN0IHQ9dGhpcy5fbW9kZWwoKS5saW5lVG9vbHNHcm91cE1vZGVsKCksaT1lLmZpbHRlcihyaS5pc0xpbmVUb29sKSxzPWkubWFwKChlPT50Lmdyb3VwRm9yTGluZVRvb2woZSkpKTsoMCxsLmFzc2VydCkobmV3IFNldChzKS5zaXplPD0xLCJDYW5ub3QgbW92ZSBsaW5lIHRvb2xzIGZyb20gZGlmZmVyZW50IGdyb3VwIik7Y29uc3Qgbj0wPT09cy5sZW5ndGg/bnVsbDpzWzBdO2xldCByPXticmluZ0ZvcndhcmRFbmFibGVkOiExLGJyaW5nVG9Gcm9udEVuYWJsZWQ6ITEsc2VuZEJhY2t3YXJkRW5hYmxlZDohMSxzZW5kVG9CYWNrRW5hYmxlZDohMX07Y29uc3Qgbz1uZXcgU2V0KGkpO2Zvcihjb25zdCB0IG9mKDAsZHIuc29ydFNvdXJjZXMpKGUpKXtpZigoMCxyaS5pc0xpbmVUb29sKSh0KSYmbnVsbCE9PW4pe2NvbnN0IGU9KDAsZHIuc29ydFNvdXJjZXMpKG4ubGluZVRvb2xzKCkuZmlsdGVyKChlPT4hby5oYXMoZSl8fGU9PT10KSkpO3I9eV8ocix7YnJpbmdGb3J3YXJkRW5hYmxlZDp0IT09ZVtlLmxlbmd0aC0xXSxicmluZ1RvRnJvbnRFbmFibGVkOnQhPT1lW2UubGVuZ3RoLTFdLHNlbmRCYWNrd2FyZEVuYWJsZWQ6dCE9PWVbMF0sc2VuZFRvQmFja0VuYWJsZWQ6dCE9PWVbMF19KTtjb250aW51ZX1jb25zdCBlPSgwLGwuZW5zdXJlTm90TnVsbCkodGhpcy5fbW9kZWwoKS5wYW5lRm9yU291cmNlKHQpKS5zb3VyY2VzQnlHcm91cCgpLmFsbEV4Y2VwdFNwZWNpYWxTb3VyY2VzKCk7aWYoMD09PWUubGVuZ3RoKWNvbnRpbnVlO2NvbnN0IGk9dC56b3JkZXIoKSxzPWVbMF0uem9yZGVyKCksYT1lW2UubGVuZ3RoLTFdLnpvcmRlcigpO3I9eV8ocix7YnJpbmdGb3J3YXJkRW5hYmxlZDppIT09YSxicmluZ1RvRnJvbnRFbmFibGVkOmkhPT1hLHNlbmRCYWNrd2FyZEVuYWJsZWQ6aSE9PXMsc2VuZFRvQmFja0VuYWJsZWQ6aSE9PXN9KX1yZXR1cm4gcn1zZW5kVG9CYWNrKGUpe2lmKCF0aGlzLmF2YWlsYWJsZVpPcmRlck9wZXJhdGlvbnMoZSkuc2VuZFRvQmFja0VuYWJsZWQpdGhyb3cgbmV3IEVycm9yKCJTZW5kIHRvIGJhY2sgb3BlcmF0aW9uIGlzIHVuYXZhaWxhYmxlIik7bGV0IHQ9bnVsbDtjb25zdCBpPWVbMF07aWYoKDAscmkuaXNMaW5lVG9vbCkoaSkpe2NvbnN0IHM9dGhpcy5fbW9kZWwoKS5saW5lVG9vbHNHcm91cE1vZGVsKCkuZ3JvdXBGb3JMaW5lVG9vbChpKTtpZihudWxsIT09cyl7Y29uc3QgaT1zLmxpbmVUb29scygpCjt0PW5ldyBEcih0aGlzLm1vZGVsKCksKDAsZHIuc29ydFNvdXJjZXMpKGUpLGlbMF0pfX1udWxsPT09dCYmKHQ9bmV3IElyKHRoaXMubW9kZWwoKSwoMCxkci5zb3J0U291cmNlcykoZSkpKSx0aGlzLl9wdXNoVW5kb0NvbW1hbmQodCksdGhpcy5lbWl0RXZlbnQoImNoYW5nZVpPcmRlciIsW2VdKX1icmluZ1RvRnJvbnQoZSl7aWYoIXRoaXMuYXZhaWxhYmxlWk9yZGVyT3BlcmF0aW9ucyhlKS5icmluZ1RvRnJvbnRFbmFibGVkKXRocm93IG5ldyBFcnJvcigiQnJpbmcgdG8gZnJvbnQgb3BlcmF0aW9uIGlzIHVuYXZhaWxhYmxlIik7bGV0IHQ9bnVsbDtjb25zdCBpPWVbMF07aWYoKDAscmkuaXNMaW5lVG9vbCkoaSkpe2NvbnN0IHM9dGhpcy5fbW9kZWwoKS5saW5lVG9vbHNHcm91cE1vZGVsKCkuZ3JvdXBGb3JMaW5lVG9vbChpKTtpZihudWxsIT09cyl7Y29uc3QgaT1zLmxpbmVUb29scygpO3Q9bmV3IEFyKHRoaXMubW9kZWwoKSwoMCxkci5zb3J0U291cmNlcykoZSksaVtpLmxlbmd0aC0xXSl9fW51bGw9PT10JiYodD1uZXcgTXIodGhpcy5tb2RlbCgpLCgwLGRyLnNvcnRTb3VyY2VzKShlKSkpLHRoaXMuX3B1c2hVbmRvQ29tbWFuZCh0KSx0aGlzLmVtaXRFdmVudCgiY2hhbmdlWk9yZGVyIixbZV0pfXNlbmRCYWNrd2FyZChlKXtpZighdGhpcy5hdmFpbGFibGVaT3JkZXJPcGVyYXRpb25zKGUpLnNlbmRCYWNrd2FyZEVuYWJsZWQpdGhyb3cgbmV3IEVycm9yKCJTZW5kIGJhY2t3YXJkIG9wZXJhdGlvbiBpcyB1bmF2YWlsYWJsZSIpO2NvbnN0IHQ9YnAuZm9ybWF0KHt0aXRsZTooMCx1ci5nZXRUcmFuc2xhdGVkU3RyaW5nRm9yU291cmNlKShObi5UaXRsZURpc3BsYXlUYXJnZXQuU3RhdHVzTGluZSxlWzBdKX0pO3RoaXMuX3NlbmRCYWNrT3JCcmluZ0ZvcndhcmQodCwoMCxkci5zb3J0U291cmNlcykoZSksKChlLHQpPT5uZXcgUnIodGhpcy5tb2RlbCgpLGUsdCkpKX1icmluZ0ZvcndhcmQoZSl7aWYoIXRoaXMuYXZhaWxhYmxlWk9yZGVyT3BlcmF0aW9ucyhlKS5icmluZ0ZvcndhcmRFbmFibGVkKXRocm93IG5ldyBFcnJvcigiQnJpbmcgZm9yd2FyZCBvcGVyYXRpb24gaXMgdW5hdmFpbGFibGUiKTtjb25zdCB0PXdwLmZvcm1hdCh7dGl0bGU6KDAsdXIuZ2V0VHJhbnNsYXRlZFN0cmluZ0ZvclNvdXJjZSkoTm4uVGl0bGVEaXNwbGF5VGFyZ2V0LlN0YXR1c0xpbmUsZVswXSl9KTt0aGlzLl9zZW5kQmFja09yQnJpbmdGb3J3YXJkKHQsKDAsZHIuc29ydFNvdXJjZXMpKGUpLCgoZSx0KT0+bmV3IEJyKHRoaXMubW9kZWwoKSxlLHQpKSl9aW5zZXJ0QWZ0ZXIoZSx0KXtlPSgwLGRyLnNvcnRTb3VyY2VzKShlKTtjb25zdCBpPUNwLmZvcm1hdCh7dGl0bGU6KDAsdXIuZ2V0VHJhbnNsYXRlZFN0cmluZ0ZvclNvdXJjZSkoTm4uVGl0bGVEaXNwbGF5VGFyZ2V0LlN0YXR1c0xpbmUsZVswXSksdGFyZ2V0OigwLHVyLmdldFRyYW5zbGF0ZWRTdHJpbmdGb3JTb3VyY2UpKE5uLlRpdGxlRGlzcGxheVRhcmdldC5TdGF0dXNMaW5lLHQpfSk7dGhpcy5faW5zZXJ0QWZ0ZXJPckJlZm9yZShpLGUsdCwoKCk9Pm5ldyBBcih0aGlzLm1vZGVsKCksZSx0KSkpfWluc2VydEJlZm9yZShlLHQpe2U9KDAsZHIuc29ydFNvdXJjZXMpKGUpO2NvbnN0IGk9UHAuZm9ybWF0KHt0aXRsZTooMCx1ci5nZXRUcmFuc2xhdGVkU3RyaW5nRm9yU291cmNlKShObi5UaXRsZURpc3BsYXlUYXJnZXQuU3RhdHVzTGluZSxlWzBdKSx0YXJnZXQ6KDAsdXIuZ2V0VHJhbnNsYXRlZFN0cmluZ0ZvclNvdXJjZSkoTm4uVGl0bGVEaXNwbGF5VGFyZ2V0LlN0YXR1c0xpbmUsdCl9KTt0aGlzLl9pbnNlcnRBZnRlck9yQmVmb3JlKGksZSx0LCgoKT0+bmV3IERyKHRoaXMubW9kZWwoKSxlLHQpKSl9ZGV0YWNoVG9SaWdodChlLHQpeygwLE10LnRyYWNrRXZlbnQpKCJDaGFydCIsIk1vdmUgdG8gbmV3IHJpZ2h0IHNjYWxlIik7Y29uc3QgaT1HcC5mb3JtYXQoe3RpdGxlOigwLHVyLmdldFRyYW5zbGF0ZWRTdHJpbmdGb3JTb3VyY2UpKE5uLlRpdGxlRGlzcGxheVRhcmdldC5TdGF0dXNMaW5lLGUpfSkscz1uZXcgVm8uTW92ZVRvTmV3UHJpY2VTY2FsZVVuZG9Db21tYW5kKHRoaXMubW9kZWwoKSxlLHQsInJpZ2h0IixpKTt0aGlzLl9wdXNoVW5kb0NvbW1hbmQocyksdGhpcy5lbWl0RXZlbnQoIm1vdmVTb3VyY2UiLFtlXSl9ZGV0YWNoVG9MZWZ0KGUsdCl7KDAsTXQudHJhY2tFdmVudCkoIkNoYXJ0IiwiTW92ZSB0byBuZXcgbGVmdCBzY2FsZSIpO2NvbnN0IGk9anAuZm9ybWF0KHt0aXRsZTooMCx1ci5nZXRUcmFuc2xhdGVkU3RyaW5nRm9yU291cmNlKShObi5UaXRsZURpc3BsYXlUYXJnZXQuU3RhdHVzTGluZSxlKX0pLHM9bmV3IFZvLk1vdmVUb05ld1ByaWNlU2NhbGVVbmRvQ29tbWFuZCh0aGlzLm1vZGVsKCksZSx0LCJsZWZ0IixpKTt0aGlzLl9wdXNoVW5kb0NvbW1hbmQocyksdGhpcy5lbWl0RXZlbnQoIm1vdmVTb3VyY2UiLFtlXSl9ZGV0YWNoTm9TY2FsZShlLHQpeygwLE10LnRyYWNrRXZlbnQpKCJDaGFydCIsIk1ha2Ugc291cmNlIG5vIHNjYWxlIik7Y29uc3QgaT1xcC5mb3JtYXQoe3RpdGxlOigwLHVyLmdldFRyYW5zbGF0ZWRTdHJpbmdGb3JTb3VyY2UpKE5uLlRpdGxlRGlzcGxheVRhcmdldC5TdGF0dXNMaW5lLGUpfSkscz1uZXcgVm8uTW92ZVRvTmV3UHJpY2VTY2FsZVVuZG9Db21tYW5kKHRoaXMubW9kZWwoKSxlLHQsIm92ZXJsYXkiLGkpO3RoaXMuX3B1c2hVbmRvQ29tbWFuZChzKSx0aGlzLmVtaXRFdmVudCgibW92ZVNvdXJjZSIsW2VdKX1tb3ZlVG9TY2FsZShlLHQsaSxzLG4peygwLE10LnRyYWNrRXZlbnQpKCJDaGFydCIsIk1vdmUgc291cmNlIHRvIHRhcmdldCBzY2FsZSIpLHRoaXMuYmVnaW5VbmRvTWFjcm8ocyk7Y29uc3Qgcj1uZXcgVm8uTW92ZVRvRXhpc3RpbmdQcmljZVNjYWxlVW5kb0NvbW1hbmQodGhpcy5tb2RlbCgpLGUsdCxpLHMpLG89bj9udWxsOnpuKGUsaSx0aGlzLl9tb2RlbCgpKSxhPW4/bnVsbDooMCxkdS5zb3VyY2VOZXdVbml0T25QaW5uaW5nVG9QcmljZVNjYWxlKShlLGksdGhpcy5fbW9kZWwoKSksbD1uP251bGw6RWgoZSxpLHRoaXMuX21vZGVsKCkpO3RoaXMuX3B1c2hVbmRvQ29tbWFuZChyKSwKbnVsbCE9PW8mJnRoaXMuc2V0UHJpY2VTY2FsZUN1cnJlbmN5KGksbyksbnVsbCE9PWEmJnRoaXMuc2V0UHJpY2VTY2FsZVVuaXQoaSxhKSxudWxsIT09bCYmdGhpcy5zZXRQcmljZVNjYWxlTWV0cmljKGksbCksdGhpcy5lbmRVbmRvTWFjcm8oKSx0aGlzLmVtaXRFdmVudCgibW92ZVNvdXJjZSIsW2VdKX1zZXRMaW5raW5nR3JvdXBJbmRleChlKXtjb25zdCB0PXRoaXMubW9kZWwoKS5saW5raW5nR3JvdXBJbmRleCgpO3RoaXMuX3VuZG9IaXN0b3J5LmJlZ2luVW5kb01hY3JvKG1fKSx0aGlzLl9wdXNoVW5kb0NvbW1hbmQobmV3IHJwKHQsdC52YWx1ZSgpLGUsbV8pKSx0aGlzLl9tb2RlbCgpLnNldFNob3VsZEJlU2F2ZWRFdmVuSWZIaWRkZW4oITApLHRoaXMuX3VuZG9IaXN0b3J5LmVuZFVuZG9NYWNybygpfXN0YXJ0U2Nyb2xsUHJpY2UoZSx0LGkpe3QuaXNBdXRvU2NhbGUoKXx8KHRoaXMuX2luaXRpYWxQcmljZVNjcm9sbFN0YXRlPXQuc3RhdGUoKSx0aGlzLl9pbml0aWFsUHJpY2VTY3JvbGxQb3M9aSx0aGlzLl9tb2RlbCgpLnN0YXJ0U2Nyb2xsUHJpY2UoZSx0LGkpKX1zY3JvbGxQcmljZVRvKGUsdCxpKXt0LmlzQXV0b1NjYWxlKCl8fCh0aGlzLl9pbml0aWFsUHJpY2VTY3JvbGxTdGF0ZSYmdGhpcy5faW5pdGlhbFByaWNlU2Nyb2xsUG9zJiZNYXRoLmFicyh0aGlzLl9pbml0aWFsUHJpY2VTY3JvbGxQb3MtaSk+MjAmJih0aGlzLl9wdXNoVW5kb0NvbW1hbmQobmV3IE9zKHRoaXMubV9tb2RlbCxlLHQsdGhpcy5faW5pdGlhbFByaWNlU2Nyb2xsU3RhdGUsdm9pZCAwLCExKSksdGhpcy5faW5pdGlhbFByaWNlU2Nyb2xsU3RhdGU9bnVsbCx0aGlzLl9pbml0aWFsUHJpY2VTY3JvbGxQb3M9bnVsbCksdGhpcy5fbW9kZWwoKS5zY3JvbGxQcmljZVRvKGUsdCxpKSl9ZW5kU2Nyb2xsUHJpY2UoZSx0KXt0LmlzQXV0b1NjYWxlKCl8fCh0aGlzLl9pbml0aWFsUHJpY2VTY3JvbGxTdGF0ZT1udWxsLHRoaXMuX2luaXRpYWxQcmljZVNjcm9sbFBvcz1udWxsLHRoaXMuX21vZGVsKCkuZW5kU2Nyb2xsUHJpY2UoZSx0KSl9c3RhcnRTY3JvbGxUaW1lKGUpe3RoaXMubW9kZWwoKS5zdGFydFNjcm9sbFRpbWUoZSl9c2Nyb2xsVGltZVRvKGUpe3RoaXMubW9kZWwoKS5zY3JvbGxUaW1lVG8oZSl9ZW5kU2Nyb2xsVGltZSgpe3RoaXMubW9kZWwoKS5lbmRTY3JvbGxUaW1lKCl9c3RhcnRTY2FsZVRpbWUoZSl7dGhpcy5tb2RlbCgpLnN0YXJ0U2NhbGVUaW1lKGUpfXNjYWxlVGltZVRvKGUpe3RoaXMubW9kZWwoKS5zY2FsZVRpbWVUbyhlKX1lbmRTY2FsZVRpbWUoKXt0aGlzLm1vZGVsKCkuZW5kU2NhbGVUaW1lKCl9cmVzZXRUaW1lU2NhbGUoKXt0aGlzLm1vZGVsKCkucmVzZXRUaW1lU2NhbGUoKX1zdGFydFNjYWxlUHJpY2UoZSx0LGkscyl7dGhpcy5fc2NhbGVQcmljZUluZm89e3ByaWNlU2NhbGVTdGF0ZTp0LnN0YXRlKCksdHJ5TWVyZ2VDb25zZWN1dGl2ZVNjYWxlczpzfSx0aGlzLm1vZGVsKCkuc3RhcnRTY2FsZVByaWNlKGUsdCxpKX1zY2FsZVByaWNlVG8oZSx0LGkpe3RoaXMubW9kZWwoKS5zY2FsZVByaWNlVG8oZSx0LGkpfWVuZFNjYWxlUHJpY2UoZSx0KXt0aGlzLm1vZGVsKCkuZW5kU2NhbGVQcmljZShlLHQpO2NvbnN0IGk9KDAsbC5lbnN1cmVOb3ROdWxsKSh0aGlzLl9zY2FsZVByaWNlSW5mbyk7KDAscy5kZWZhdWx0KShpLnByaWNlU2NhbGVTdGF0ZSx0LnN0YXRlKCkpfHx0aGlzLl9wdXNoVW5kb0NvbW1hbmQobmV3IE9zKHRoaXMubW9kZWwoKSxlLHQsaS5wcmljZVNjYWxlU3RhdGUsaS50cnlNZXJnZUNvbnNlY3V0aXZlU2NhbGVzKSksdGhpcy5fc2NhbGVQcmljZUluZm89bnVsbH1zdGFydFR3b1BvaW50c1NjYWxlUHJpY2UoZSx0LGkscyxuKXt0aGlzLl9zY2FsZVByaWNlSW5mbz17cHJpY2VTY2FsZVN0YXRlOnQuc3RhdGUoKSx0cnlNZXJnZUNvbnNlY3V0aXZlU2NhbGVzOm59LHRoaXMubW9kZWwoKS5zdGFydFR3b1BvaW50c1NjYWxlUHJpY2UoZSx0LGkscyl9dHdvUG9pbnRzU2NhbGVQcmljZVRvKGUsdCxpLHMpe3RoaXMubW9kZWwoKS50d29Qb2ludHNTY2FsZVByaWNlVG8oZSx0LGkscyl9ZW5kVHdvUG9pbnRzU2NhbGVQcmljZShlLHQpe3RoaXMubW9kZWwoKS5lbmRUd29Qb2ludHNTY2FsZVByaWNlKGUsdCk7Y29uc3QgaT0oMCxsLmVuc3VyZU5vdE51bGwpKHRoaXMuX3NjYWxlUHJpY2VJbmZvKTsoMCxzLmRlZmF1bHQpKGkucHJpY2VTY2FsZVN0YXRlLHQuc3RhdGUoKSl8fHRoaXMuX3B1c2hVbmRvQ29tbWFuZChuZXcgT3ModGhpcy5tb2RlbCgpLGUsdCxpLnByaWNlU2NhbGVTdGF0ZSxpLnRyeU1lcmdlQ29uc2VjdXRpdmVTY2FsZXMpKSx0aGlzLl9zY2FsZVByaWNlSW5mbz1udWxsfXJlc2V0UHJpY2VTY2FsZShlLHQpe2NvbnN0IGk9dC5zdGF0ZSgpO3RoaXMubW9kZWwoKS5yZXNldFByaWNlU2NhbGUoZSx0KSwoMCxzLmRlZmF1bHQpKGksdC5zdGF0ZSgpKXx8dGhpcy5fcHVzaFVuZG9Db21tYW5kKG5ldyBPcyh0aGlzLm1fbW9kZWwsZSx0LGkpKX1yZWFycmFuZ2VQYW5lcyhlLHQpe2NvbnN0IGk9dGhpcy5tX21vZGVsLnBhbmVzKClbZV0scz1uZXcgenIodGhpcy5fbW9kZWwoKSxlLHQpO2kubW9kZSgpPT09TS5QYW5lTW9kZS5XaWRnZXQ/dGhpcy5fcHVzaFVuZG9Db21tYW5kKHMpOnRoaXMuX3dpdGhLZWVwV2lkZ2V0UGFuZVBvc2l0aW9uR3VhcmQoKCgpPT50aGlzLl9wdXNoVW5kb0NvbW1hbmQocykpLHMudGV4dCgpKX1tb3ZlUGFuZShlLHQpe2NvbnN0IGk9dGhpcy5tX21vZGVsLnBhbmVzKClbZV0scz1uZXcgenIodGhpcy5fbW9kZWwoKSxlLHQpO2kubW9kZSgpPT09TS5QYW5lTW9kZS5XaWRnZXQ/dGhpcy5fcHVzaFVuZG9Db21tYW5kKHMpOnRoaXMuX3dpdGhLZWVwV2lkZ2V0UGFuZVBvc2l0aW9uR3VhcmQoKCgpPT50aGlzLl9wdXNoVW5kb0NvbW1hbmQocykpLHMudGV4dCgpKX10b2dnbGVDb2xsYXBzZWRQYW5lKGUpe2NvbnN0IHQ9dGhpcy5wYW5lcygpLmZpbmRJbmRleCgodD0+dD09PWUpKTt0PDB8fHRoaXMuX3B1c2hVbmRvQ29tbWFuZChuZXcgR24odGhpcy5fbW9kZWwoKSx0KSl9dG9nZ2xlTWF4aW1pemVkUGFuZShlKXsKdGhpcy5fcHVzaFVuZG9Db21tYW5kKG5ldyBxbih0aGlzLl9tb2RlbCgpLGUpKX1yZWFkT25seSgpe3JldHVybiB0aGlzLm1fbW9kZWwucmVhZE9ubHkoKX1jaGVja0lmRmVhdHVyZUF2YWlsYWJsZShlLHQpe2NvbnN0IGk9dC5sZW5ndGg+MCxzPSgwLG5hLmlzRnVuZGFtZW50YWxTdHVkeU1ldGFJbmZvKShlKSxuPSgwLG5hLmlzRm9yZWNhc3RTdHVkeU1ldGFJbmZvKShlKSxyPXRoaXMuY2FuQ3JlYXRlU3R1ZHkoe2lkOmUuaWQsY2hpbGQ6aSxmdW5kYW1lbnRhbDpzLHN0dWJUaXRsZTplLmRlc2NyaXB0aW9ufHxlLnNob3J0RGVzY3JpcHRpb24sZm9yZWNhc3Q6bn0pO3JldHVybiEhci5zdWNjZXNzfHwod18odGhpcy5tb2RlbCgpLHIpLCExKX1hc3luYyBwYXN0ZVNvdXJjZUZyb21DbGlwKGUsdCxpKXtjb25zdCBzPXQ7aWYoIXN8fDA9PT1zLnNvdXJjZXMubGVuZ3RoKXJldHVybiBudWxsO2NvbnN0IG49ZXx8KDAsbC5lbnN1cmVOb3ROdWxsKSh0aGlzLm1vZGVsKCkucGFuZUZvclNvdXJjZSh0aGlzLm1haW5TZXJpZXMoKSkpO2lmKCFzLnNvdXJjZXMuc29tZSgoZT0+ImRyYXdpbmciIT09ZS50eXBlfHxudWxsIT09bi5jbGlwYm9hcmRMaW5lVG9vbE93bmVyU291cmNlKGUuc291cmNlLmlkKSkpKXJldHVybiBudWxsO2NvbnN0IHI9QXJyYXkuZnJvbShuZXcgU2V0KHMuc291cmNlcy5maWx0ZXIoSG4uaXNMaW5lVG9vbENsaXBib2FyZERhdGEpLm1hcCgoZT0+ZS5zb3VyY2UudHlwZSkpKSk7YXdhaXQgUHJvbWlzZS5hbGwoci5tYXAoKGU9PigwLHJpLmluaXRMaW5lVG9vbCkoZSkpKSk7aWYoci5zb21lKChlPT4hKDAsUnUuZW5zdXJlRHJhd2luZ0NyZWF0aW9uQWxsb3dlZCkoZSwiUGFzdGUiLCJjaGFydF9kcmF3aW5nX3Bhc3RlIikpKSlyZXR1cm5bXTt0aGlzLmJlZ2luVW5kb01hY3JvKEtwLmZvcm1hdCh7dGl0bGU6cy50aXRsZX0pKTtjb25zdCBvPVtdLGE9W107Zm9yKGNvbnN0IHQgb2Ygcy5zb3VyY2VzKWlmKCJkcmF3aW5nIj09PXQudHlwZSYmbnVsbCE9PW4uY2xpcGJvYXJkTGluZVRvb2xPd25lclNvdXJjZSh0LnNvdXJjZS5pZCkpe2NvbnN0IGU9YXdhaXQgdGhpcy5wYXN0ZUxpbmVUb29sKG4sdCx2b2lkIDAsdm9pZCAwLCEwKTthLnB1c2goZSksby5wdXNoKGUpfWVsc2Uic3R1ZHkiPT09dC50eXBlJiZ0LnNvdXJjZSYmdC5zb3VyY2UubWV0YUluZm8mJnRoaXMuY2hlY2tJZkZlYXR1cmVBdmFpbGFibGUobmV3IG90LlN0dWR5TWV0YUluZm8odC5zb3VyY2UubWV0YUluZm8pLFtdKSYmby5wdXNoKHRoaXMucGFzdGVTdHVkeSh0LGk/ZTp2b2lkIDApKTtyZXR1cm4gYS5sZW5ndGgmJnRoaXMuc2VsZWN0aW9uTWFjcm8oKGU9PntlLmNsZWFyU2VsZWN0aW9uKCksYS5mb3JFYWNoKCh0PT57ZS5hZGRJdGVtVG9TZWxlY3Rpb24odCxudWxsKX0pKX0pKSx0aGlzLmVuZFVuZG9NYWNybygpLG99YXN5bmMgcGFzdGVMaW5lVG9vbChlLHQsaSxzLG4pe2F3YWl0KDAsa2kuZW5zdXJlTGluZVRvb2xMb2FkZWQpKHQuc291cmNlLnR5cGUpLHQuc291cmNlLnN0YXRlLmludGVydmFsc1Zpc2liaWxpdGllcz0oMCxKbC5tZXJnZUludGVydmFsVmlzaWJpbGl0aWVzRGVmYXVsdHMpKHQuc291cmNlLnN0YXRlLmludGVydmFsc1Zpc2liaWxpdGllcyksKDAsSmwubWFrZUludGVydmFsc1Zpc2liaWxpdGllc1Zpc2libGVBdEludGVydmFsKSh0LnNvdXJjZS5zdGF0ZS5pbnRlcnZhbHNWaXNpYmlsaXRpZXMsdGhpcy5tb2RlbCgpLm1haW5TZXJpZXMoKS5pbnRlcnZhbE9iaigpLnZhbHVlKCkpO2NvbnN0IHI9bmV3IERvKHRoaXMubW9kZWwoKSx0LGUsaSxzKTt0aGlzLl9wdXNoVW5kb0NvbW1hbmQocik7Y29uc3Qgbz1yLnNvdXJjZSgpO2lmKG4pe2NvbnN0IHQ9dGhpcy5fcmVzb2x2ZVByZXZpb3VzU2VsZWN0ZWRHcm91cChlKTtudWxsIT09dCYmdGhpcy5fbGluZVRvb2xzR3JvdXBDb250cm9sbGVyLmFkZExpbmVUb29sVG9Hcm91cCh0LG8pfXJldHVybiByLm5lZWRDb3B5VG9PdGhlckNoYXJ0cygpJiZ0aGlzLl9tb2RlbCgpLmNvcHlUb090aGVyQ2hhcnRzKFtvXSwhMCksdGhpcy5zZWxlY3Rpb25NYWNybygoZT0+e2UuY2xlYXJTZWxlY3Rpb24oKSxlLmFkZEl0ZW1Ub1NlbGVjdGlvbihvLG51bGwpfSkpLG99cGFzdGVTdHVkeShlLHQpe2NvbnN0IGk9bmV3IHpvKHRoaXMubW9kZWwoKSxlLHQ/LmlkKCkpO3RoaXMuX3B1c2hVbmRvQ29tbWFuZChpKTtjb25zdCBzPSgwLGwuZW5zdXJlTm90TnVsbCkoaS5zdGF0ZSgpKS5pZDtyZXR1cm4oMCwkLmVtaXQpKCJzdHVkeV9ldmVudCIscywicGFzdGVfc3R1ZHkiKSwoMCxsLmVuc3VyZU5vdE51bGwpKHRoaXMuX21vZGVsKCkuZGF0YVNvdXJjZUZvcklkKHMpKX1yZW1vdmVQYW5lKGUpe2NvbnN0IHQ9dGhpcy5tX21vZGVsLnBhbmVzKClbZV0uZGF0YVNvdXJjZXMoKS5zbGljZSgpO3RoaXMucmVtb3ZlU291cmNlcyh0LCExLFpwKX1jcmVhdGVQYW5lKGUpe3JldHVybiB0aGlzLm1fbW9kZWwuY3JlYXRlUGFuZShlKX1zZXRQcmljZVNjYWxlQ3VycmVuY3koZSx0KXtjb25zdCBpPW5ldyBFbyh0aGlzLm1fbW9kZWwsZSx0LFJwKTt0aGlzLl9wdXNoVW5kb0NvbW1hbmQoaSl9c2V0UHJpY2VTY2FsZVVuaXQoZSx0KXtjb25zdCBpPW5ldyBSbyh0aGlzLm1fbW9kZWwsZSx0LFZwKTt0aGlzLl9wdXNoVW5kb0NvbW1hbmQoaSl9c2V0UHJpY2VTY2FsZU1ldHJpYyhlLHQpe3tjb25zdCBpPW5ldyBGdSh0aGlzLm1fbW9kZWwsZSx0LEJwKTt0aGlzLl9wdXNoVW5kb0NvbW1hbmQoaSl9fXNldFN5bWJvbChlLHQpe2Uuc3ltYm9sU2FtZUFzUmVzb2x2ZWQodCl8fHRoaXMuX3B1c2hVbmRvQ29tbWFuZChuZXcgT28oZSx0LHRoaXMuX2NoYXJ0V2lkZ2V0KSl9c2V0UmVzb2x1dGlvbihlLHQpe3guSW50ZXJ2YWwuaXNFcXVhbChlLmludGVydmFsKCksdCl8fHRoaXMuX3B1c2hVbmRvQ29tbWFuZChuZXcgbnAoZSx0LHRoaXMuX2NoYXJ0V2lkZ2V0KSl9c3luY0Nyb3NzaGFpcihlLHQpe3RoaXMuX2NoYXJ0V2lkZ2V0LmNoYXJ0V2lkZ2V0Q29sbGVjdGlvbigpLnN5bmNDcm9zc2hhaXIoZSx0aGlzLl9jaGFydFdpZGdldC5pZCgpLHQpfWxvYWRpbmdTY3JlZW4oKXsKcmV0dXJuIHRoaXMuX2NoYXJ0V2lkZ2V0LnNjcmVlbn1jaGFydExvYWRUaGVtZShlLHQsaSl7Y29uc3Qgcz1uZXcgaXAodGhpcy5tb2RlbCgpLGUsdCk7aT9zLnJlZG8oKTp0aGlzLl9wdXNoVW5kb0NvbW1hbmQocyl9aXNKdXN0Q2xvbmVkQ2hhcnQoKXtyZXR1cm4gdGhpcy5fY2hhcnRXaWRnZXQuaXNKdXN0Q2xvbmVkQ2hhcnQoKX1pc011bHRpcGxlTGF5b3V0KCl7cmV0dXJuIHRoaXMuX2NoYXJ0V2lkZ2V0LmlzTXVsdGlwbGVMYXlvdXQoKX1hZGRQYW5lU3RyZXRjaEZhY3RvclVuZG9Db21tYW5kKGUsdCxpLHMpe2NvbnN0IG49bmV3IFVvKHRoaXMubW9kZWwoKSxlLHQsaSxzKTt0aGlzLl9wdXNoVW5kb0NvbW1hbmQobil9YXBwbHlQcmVmZXJlbmNlcyhlKXt7Y29uc3QgdD1uZXcgU3AodGhpcy5tX21vZGVsLGUpO3RoaXMuX3B1c2hVbmRvQ29tbWFuZCh0KX19cGFuZUZvclNvdXJjZShlKXtyZXR1cm4gdGhpcy5tX21vZGVsLnBhbmVGb3JTb3VyY2UoZSl9ZGVzdHJveSgpe3RoaXMubV9tb2RlbC5kZXN0cm95KCl9bW92ZVNlbGVjdGVkVG9vbHNMZWZ0KCl7cmV0dXJuIHRoaXMuX21vdmVTZWxlY3RlZFRvb2xzKDIpfW1vdmVTZWxlY3RlZFRvb2xzVXAoKXtyZXR1cm4gdGhpcy5fbW92ZVNlbGVjdGVkVG9vbHMoMCl9bW92ZVNlbGVjdGVkVG9vbHNSaWdodCgpe3JldHVybiB0aGlzLl9tb3ZlU2VsZWN0ZWRUb29scygzKX1tb3ZlU2VsZWN0ZWRUb29sc0Rvd24oKXtyZXR1cm4gdGhpcy5fbW92ZVNlbGVjdGVkVG9vbHMoMSl9aW5zZXJ0U3R1ZHlXaXRob3V0Q2hlY2soZSx0LGkscyl7cmV0dXJuIHRoaXMuX2luc2VydFN0dWR5KGUsdCx7fSwhMSxbXSx2b2lkIDAsdm9pZCAwLHZvaWQgMCx2b2lkIDAsdm9pZCAwLGk/P251bGwsdm9pZCAwLHZvaWQgMCxzKX1zYXZlTGluZVRvb2xTdGF0ZShlLHQpe3RoaXMuX3B1c2hVbmRvQ29tbWFuZChuZXcgbnIodGhpcy5tX21vZGVsLFtlXSx0KSl9cmVzZXRTY2FsZXMoKXt0aGlzLl9tb2RlbCgpLnN0b3BUaW1lU2NhbGVBbmltYXRpb24oKSx0aGlzLmJlZ2luVW5kb01hY3JvKCRwKSx0aGlzLnJlc2V0VGltZVNjYWxlKCk7Zm9yKGNvbnN0IGUgb2YgdGhpcy5tX21vZGVsLnBhbmVzKCkpe2Zvcihjb25zdCB0IG9mIGUubGVmdFByaWNlU2NhbGVzKCkpdGhpcy5yZXNldFByaWNlU2NhbGUoZSx0KTtmb3IoY29uc3QgdCBvZiBlLnJpZ2h0UHJpY2VTY2FsZXMoKSl0aGlzLnJlc2V0UHJpY2VTY2FsZShlLHQpfXRoaXMuZW5kVW5kb01hY3JvKCksdGhpcy5tX21vZGVsLnJlY2FsY3VsYXRlQWxsUGFuZXMoKDAsdG4udmlld3BvcnRDaGFuZ2VFdmVudCkoKSl9c2hhcmVMaW5lVG9vbHMoZSx0KXtjb25zdCBpPTA9PT10P3VfOjE9PT10P3BfOl9fO3RoaXMud2l0aE1hY3JvKGksKCgpPT57MD09PXQmJnRoaXMudW5saW5rTGluZXMoZSksZS5mb3JFYWNoKChpPT57Y29uc3Qgcz10aGlzLm1vZGVsKCkubGluZVRvb2xzR3JvdXBNb2RlbCgpLmdyb3VwRm9yTGluZVRvb2woaSk7aWYocyl7Y29uc3Qgbj1zLmxpbmVUb29scygpLnNvbWUoKGU9PmUuaXNTeW5jaHJvbml6YWJsZSgpKSk7cy5saW5lVG9vbHMoKS5ldmVyeSgodD0+ZS5pbmNsdWRlcyh0KSkpJiYoMD09PXR8fGkuaXNTeW5jaHJvbml6YWJsZSgpfHwhbil8fHRoaXMubGluZVRvb2xzR3JvdXBDb250cm9sbGVyKCkuZXhjbHVkZUxpbmVUb29sRnJvbUdyb3VwKHMsaSl9dGhpcy5fcHVzaFVuZG9Db21tYW5kKG5ldyBobyhpLHQsdGhpcy5tb2RlbCgpLG51bGwpKX0pKX0pKX1jYW5DcmVhdGVTdHVkeShlLHQpe3JldHVybiB0aGlzLm1vZGVsKCkuY2hhcnRBcGkoKS5jYW5DcmVhdGVTdHVkeShlLHQpfWNoYXJ0V2lkZ2V0Q29sbGVjdGlvbkxvY2soKXtyZXR1cm4gdGhpcy5fY2hhcnRXaWRnZXQuY2hhcnRXaWRnZXRDb2xsZWN0aW9uKCkubG9ja31vblN5bWJvbEludGVydmFsQ2hhbmdlZCgpe3JldHVybiB0aGlzLm1fbW9kZWwub25TeW1ib2xJbnRlcnZhbENoYW5nZWQoKX1wYW5lQmVpbmdDcmVhdGVkTGluZU9uKCl7cmV0dXJuIHRoaXMubV9tb2RlbC5wYW5lQmVpbmdDcmVhdGVkTGluZU9uKCl9aW52YWxpZGF0ZShlKXt0aGlzLm1fbW9kZWwuaW52YWxpZGF0ZShlKX1zZXRXaWR0aChlKXt0aGlzLm1fbW9kZWwuc2V0V2lkdGgoZSl9c2V0UGFuZUhlaWdodChlLHQpe3RoaXMubV9tb2RlbC5zZXRQYW5lSGVpZ2h0KGUsdCl9ZGF0YVNvdXJjZUZvcklkKGUpe3JldHVybiB0aGlzLm1fbW9kZWwuZGF0YVNvdXJjZUZvcklkKGUpfWxpbmVCZWluZ0VkaXRlZCgpe3JldHVybiB0aGlzLm1fbW9kZWwubGluZUJlaW5nRWRpdGVkKCl9c291cmNlc0JlaW5nTW92ZWQoKXtyZXR1cm4gdGhpcy5tX21vZGVsLnNvdXJjZXNCZWluZ01vdmVkKCl9Z3JpZFNvdXJjZSgpe3JldHVybiB0aGlzLm1fbW9kZWwuZ3JpZFNvdXJjZSgpfXdhdGVybWFya1NvdXJjZSgpe3JldHVybiB0aGlzLm1fbW9kZWwud2F0ZXJtYXJrU291cmNlKCl9bWFpblNlcmllc1NjYWxlUmF0aW9Qcm9wZXJ0eSgpe3JldHVybiB0aGlzLm1fbW9kZWwubWFpblNlcmllc1NjYWxlUmF0aW9Qcm9wZXJ0eSgpfXNldEhvdmVyZWRTb3VyY2UoZSx0KXt0aGlzLm1fbW9kZWwuc2V0SG92ZXJlZFNvdXJjZShlLHQpfXNldEN1cnJlbnRQb3NpdGlvbihlLHQsaSxzKXt0aGlzLm1fbW9kZWwuc2V0Q3VycmVudFBvc2l0aW9uKGUsdCxpLHMpfXNldEFuZFNhdmVDdXJyZW50UG9zaXRpb24oZSx0LGkscyl7dGhpcy5tX21vZGVsLnNldEFuZFNhdmVDdXJyZW50UG9zaXRpb24oZSx0LGkscyl9dmVyc2lvbigpe3JldHVybiB0aGlzLm1fbW9kZWwudmVyc2lvbigpfXJlc3RhcnQoKXt0aGlzLm1fbW9kZWwucmVzdGFydCgpfWRpc2Nvbm5lY3QoKXt0aGlzLm1fbW9kZWwuZGlzY29ubmVjdCgpfWNhbGN1bGF0ZURlZmF1bHRUYWdzKCl7cmV0dXJuIHRoaXMubV9tb2RlbC5jYWxjdWxhdGVEZWZhdWx0VGFncygpfWRyYXdSaWdodFRoZXJlKGUsdCxpLHMpe2lmKCgwLG0uaXNMaW5lVG9vbE5hbWUpKGUpKXtpZih2b2lkIDA9PT1pKXtjb25zdCBlPXRoaXMuY3Jvc3NoYWlyU291cmNlKCkscz10aGlzLm1vZGVsKCkubWFnbmV0KCkuYWxpZ24oZS5wcmljZSxlLmluZGV4LHQpO2k9e2luZGV4OmUuaW5kZXgscHJpY2U6c319CmNvbnN0IG49dGhpcy5jcmVhdGVMaW5lVG9vbCh7cG9pbnQ6aSxsaW5ldG9vbDplLHBhbmU6dCxhY3Rpb25Tb3VyY2U6cyxrZWVwU2VsZWN0ZWRHcm91cDohMH0pO24mJnRoaXMuc2VsZWN0aW9uTWFjcm8oKGU9PntlLmNsZWFyU2VsZWN0aW9uKCksZS5hZGRJdGVtVG9TZWxlY3Rpb24obil9KSl9fXVubG9hZERhdGFTb3VyY2VzKCl7Y29uc3QgZT10aGlzLm1vZGVsKCksdD1lLmRhdGFTb3VyY2VzKCkuZmlsdGVyKChlPT4oMCx0aS5pc1N0dWR5KShlKSYmIXNpKGUpfHwoMCxyaS5pc0xpbmVUb29sKShlKXx8KDAsdGkuaXNTdHVkeVN0dWIpKGUpKSk7KDAsYm8ucmVtb3ZlQWxsU291cmNlc1dpdGhEZXBlbmRlbmNpZXMpKGUsdCl9Y2hhcnRGbG9hdGluZ1Rvb2x0aXBWaXNpYmxlKCl7cmV0dXJuIHRoaXMuX2NoYXJ0V2lkZ2V0LmNoYXJ0RmxvYXRpbmdUb29sdGlwVmlzaWJsZSgpfWNoYXJ0RmxvYXRpbmdUb29sdGlwQWN0aXZlKCl7cmV0dXJuIHRoaXMuY2hhcnRGbG9hdGluZ1Rvb2x0aXBWaXNpYmxlKCkmJm51bGwhPT10aGlzLl9jaGFydFdpZGdldC5hY3RpdmVQYW5lV2lkZ2V0KCkudmFsdWUoKX1fbW9kZWwoKXtyZXR1cm4gdGhpcy5tX21vZGVsfV9wdXNoVW5kb0NvbW1hbmQoZSl7dGhpcy5fdW5kb0hpc3RvcnkucHVzaFVuZG9Db21tYW5kKGUpfV9tZXJnZVVubWVyZ2VTb3VyY2UoZSx0KXt0aGlzLmJlZ2luVW5kb01hY3JvKHQudGV4dCgpKTtjb25zdCBpPSgwLGwuZW5zdXJlTm90TnVsbCkodGhpcy5fbW9kZWwoKS5wYW5lRm9yU291cmNlKGUpKSxzPW5ldyBTZXQoaS5zb3VyY2VzQnlHcm91cCgpLmxpbmVTb3VyY2VzKCkuZmlsdGVyKCh0PT50Lm93bmVyU291cmNlKCk9PT1lKSkpO3RoaXMuX21vZGVsKCkubGluZVRvb2xzR3JvdXBNb2RlbCgpLmdyb3VwcygpLmZpbHRlcigoZT0+e2NvbnN0IHQ9ZS5saW5lVG9vbHMoKS5zb21lKChlPT5zLmhhcyhlKSkpLGk9ZS5saW5lVG9vbHMoKS5zb21lKChlPT4hcy5oYXMoZSkpKTtyZXR1cm4gdCYmaX0pKS5mb3JFYWNoKChlPT57dGhpcy5fcHVzaFVuZG9Db21tYW5kKG5ldyBpci5FeGNsdWRlTGluZVRvb2xzRnJvbUdyb3VwVW5kb0NvbW1hbmQodGhpcy5fbW9kZWwoKSxlLGUubGluZVRvb2xzKCkpKX0pKSx0aGlzLl9wdXNoVW5kb0NvbW1hbmQodCksdGhpcy5lbmRVbmRvTWFjcm8oKX1faW5zZXJ0U3R1ZHkoZSx0LGkscyxuLHIsbyxhLGwsYyxoLGQsdSxwKXtjb25zdCBfPVhwLmZvcm1hdCh7dGl0bGU6ZS5kZXNjcmlwdGlvbn0pLG09bmV3IHFvLkluc2VydFN0dWR5Q29tbWFuZCh7Y2hhcnRNb2RlbDp0aGlzLm1vZGVsKCksc3R1ZHlNZXRhSW5mbzplLGlucHV0czp0LHByb3BzOmksYWRkQXNPdmVybGF5OnMscGFyZW50U291cmNlczpuLHByZWZlcnJlZFByaWNlU2NhbGU6cixhbGxvd0NoYW5nZUN1cnJlbmN5Om8sYWxsb3dDaGFuZ2VVbml0OmEsYWxsb3dDaGFuZ2VNZXRyaWM6bCxwYW5lU2l6ZTpjLHRhcmdldFpPcmRlcjpoPz9udWxsLHRhcmdldFNjYWxlTW9kZTpkLHN0dWR5SWQ6cCx1bmRvVGV4dDpfLGV2ZW50U291cmNlOnV9KTtyZXR1cm4gdGhpcy5fcHVzaFVuZG9Db21tYW5kKG0pLG0uaW5zZXJ0ZWRTdHVkeSgpfV9zdG9yZUZhaWxlZFN0dWIoZSl7Y29uc3QgdD1YcC5mb3JtYXQoe3RpdGxlOmUudGl0bGUoKX0pO3RoaXMuYmVnaW5VbmRvTWFjcm8odCk7Y29uc3QgaT1uZXcgYXAodGhpcy5tb2RlbCgpLGUsdCk7dGhpcy5fcHVzaFVuZG9Db21tYW5kKGkpLHRoaXMuZW5kVW5kb01hY3JvKCl9X3Jlc29sdmVQcmV2aW91c1NlbGVjdGVkR3JvdXAoZSl7Y29uc3QgdD10aGlzLl9tb2RlbCgpLmxpbmVUb29sc0dyb3VwTW9kZWwoKSxpPWU9PigwLFhyLmlzTGluZVRvb2xzR3JvdXApKGUpP3RoaXMuX21vZGVsKCkucGFuZUZvckxpbmVUb29sc0dyb3VwKGUpOnRoaXMuX21vZGVsKCkucGFuZUZvclNvdXJjZShlKSxzPXQ9PmkodCk9PT1lLG49ZT0+KDAsWHIuaXNMaW5lVG9vbHNHcm91cCkoZSl8fCgwLHJpLmlzTGluZVRvb2wpKGUpJiYhIXQuZ3JvdXBGb3JMaW5lVG9vbChlKSxyPXRoaXMuX21vZGVsKCkuc2VsZWN0aW9uKCkuYWxsSXRlbXNTb3J0ZWQoKSxvPXIubGVuZ3RoP3I6KHRoaXMuX21vZGVsKCkucHJldmlvdXNTZWxlY3RlZERyYXdpbmdPckdyb3VwSWRzKCk/P1tdKS5tYXAoKGU9PnQuZ3JvdXBGb3JJZChlKT8/dGhpcy5fbW9kZWwoKS5kYXRhU291cmNlRm9ySWQoZSkpKS5maWx0ZXIoYS5pc0V4aXN0ZW50KTtyZXR1cm4oZT0+e2NvbnN0IGk9ZS5maWx0ZXIobikuZmlsdGVyKHMpO2lmKCFpLmxlbmd0aClyZXR1cm4gbnVsbDtjb25zdCByPWlbaS5sZW5ndGgtMV07cmV0dXJuKDAsWHIuaXNMaW5lVG9vbHNHcm91cCkocik/cjp0Lmdyb3VwRm9yTGluZVRvb2wocil9KShvKX1hc3luYyBfcHJvY2Vzc1NwZWNpYWxMaW5lVG9vbHNDb250ZW50cyhlLHQsaSl7aWYodD10fHxhd2FpdCBlLnJlYWQoKSx3aW5kb3cudXNlci5pZCYmdC5maWxlcyl7Y29uc3QgZT1BcnJheS5mcm9tKHQuZmlsZXMpLmZpbmQoanMuYmxvYkltYWdlRmlsdGVyKTtpZihlKXtjb25zdCB0PVVSTC5jcmVhdGVPYmplY3RVUkwoZSkscz0oMCxqcy51cGxvYWRJbWFnZSkoZSk7cmV0dXJuIHZvaWQgMD09PWkmJihpPSgwLGwuZW5zdXJlTm90TnVsbCkodGhpcy5fbW9kZWwoKS5wYW5lRm9yU291cmNlKHRoaXMubWFpblNlcmllcygpKSkpLGF3YWl0KDAsa2kuZW5zdXJlTGluZVRvb2xMb2FkZWQpKCJMaW5lVG9vbEltYWdlIiksdGhpcy5wYXN0ZUltYWdlQXNMaW5lVG9vbChzLHQsaSksdm9pZCBhd2FpdCBzfX10LnRleHQmJih3aW5kb3cudXNlci5pZCYmIVNfJiYoMCxWdS5pc1R3aXR0ZXJVcmwpKHQudGV4dCk/KDAsVnUuY3JlYXRlVHdlZXRMaW5lVG9vbEJ5VXJsKSh0LnRleHQsdGhpcywhMCk6d2luZG93LnVzZXIuaWQmJigwLE51LmlzSWRlYVVybCkodC50ZXh0KT8oMCxOdS5jcmVhdGVJZGVhTGluZVRvb2xCeVVybCkodC50ZXh0LHRoaXMsITApOmFzeW5jIGZ1bmN0aW9uKGUsdCxpKXtpZihudWxsPT09dC50aW1lU2NhbGUoKS5sb2dpY2FsUmFuZ2UoKSlyZXR1cm4gbnVsbDtjb25zdCBzPXQubWFpblNlcmllcygpLG49aT8/KDAsCmwuZW5zdXJlTm90TnVsbCkodC5tb2RlbCgpLnBhbmVGb3JTb3VyY2UocykpLHI9bi5kZWZhdWx0UHJpY2VTY2FsZSgpLG89KDAsbC5lbnN1cmVOb3ROdWxsKShyLm1haW5Tb3VyY2UoKSksYT10LnRpbWVTY2FsZSgpLGM9KDAsbC5lbnN1cmVOb3ROdWxsKShvLmZpcnN0VmFsdWUoKSksaD1hLmNvb3JkaW5hdGVUb0luZGV4KHQudGltZVNjYWxlKCkud2lkdGgoKS8yKSxkPW4uaGVpZ2h0KCkvMix1PXtwcmljZTpyLmNvb3JkaW5hdGVUb1ByaWNlKGQsYyksdGltZV90OigwLGwuZW5zdXJlTm90TnVsbCkoYS5pbmRleFRvVGltZVBvaW50KGgpKSxvZmZzZXQ6MH0scD1uLm5ld0xpbmVUb29sWk9yZGVyKCEwKSxfPUJ1LkxpbmVUb29sVGV4dC5jcmVhdGVQcm9wZXJ0aWVzKHQubW9kZWwoKS5iYWNrZ3JvdW5kVGhlbWUoKS5zcGF3bk93bmVyc2hpcCgpKSxtPV8uc3RhdGUoKTtfLmRlc3Ryb3koKSxtLnRleHQ9ZTtjb25zdCBnPXt0eXBlOiJkcmF3aW5nIixzb3VyY2U6e2lkOigwLGx0LnJhbmRvbUhhc2hOKSg2KSx6b3JkZXI6cCx0eXBlOiJMaW5lVG9vbFRleHQiLHN0YXRlOm0sc3ltYm9sOm8uc3ltYm9sU291cmNlKCkuc3ltYm9sKCksb3duZXJTb3VyY2U6by5pZCgpLHBvaW50czpbdV19LGdlb21ldHJ5OltdLG1vZGVsSWQ6dC5tb2RlbCgpLmlkKCksY2VudGVyZWRPbkNoYXJ0OiEwfSxmPWF3YWl0IHQucGFzdGVMaW5lVG9vbChuLGcsITEsITEpO1Euc2V0VmFsdWUoImhpbnQucGFzdGVUZXh0IiwhMCx7Zm9yY2VGbHVzaDohMH0pfSh0LnRleHQsdGhpcyxpKSl9X2luc2VydEFmdGVyT3JCZWZvcmUoZSx0LGkscyl7Y29uc3Qgbj0oMCxsLmVuc3VyZU5vdE51bGwpKHRoaXMuX21vZGVsKCkucGFuZUZvclNvdXJjZShpKSk7aWYodC5zb21lKChlPT4oMCxyaS5pc0xpbmVUb29sKShlKSYmdGhpcy5fbW9kZWwoKS5wYW5lRm9yU291cmNlKGUpIT09bikpKXRocm93IG5ldyBFcnJvcigiQ2Fubm90IGluc2VydCBsaW5lIHRvb2wgYWZ0ZXIgdGFyZ2V0IG9uIGFub3RoZXIgcGFuZSIpO3RoaXMuYmVnaW5VbmRvTWFjcm8oZSksdC5mb3JFYWNoKChlPT57KDAsbC5lbnN1cmVOb3ROdWxsKSh0aGlzLm1vZGVsKCkucGFuZUZvclNvdXJjZShlKSkhPT1uJiZ0aGlzLm1lcmdlVG9QYW5lKGUsbil9KSk7Y29uc3Qgcj1zKCk7dGhpcy5fd2l0aEtlZXBXaWRnZXRQYW5lUG9zaXRpb25HdWFyZCgoKCk9PnRoaXMuX3B1c2hVbmRvQ29tbWFuZChyKSksci50ZXh0KCkpLHRoaXMuZW1pdEV2ZW50KCJjaGFuZ2VaT3JkZXIiLFt0XSksdGhpcy5lbmRVbmRvTWFjcm8oKX1fc2VuZEJhY2tPckJyaW5nRm9yd2FyZChlLHQsaSl7Y29uc3Qgcz1uZXcgTWFwO3QuZm9yRWFjaCgoZT0+e2NvbnN0IHQ9KDAsbC5lbnN1cmVOb3ROdWxsKSh0aGlzLl9tb2RlbCgpLnBhbmVGb3JTb3VyY2UoZSkpLGk9cy5nZXQodCl8fFtdO2kucHVzaChlKSxzLnNldCh0LGkpfSkpLHRoaXMuYmVnaW5VbmRvTWFjcm8oZSkscy5mb3JFYWNoKCgoZSx0KT0+e3RoaXMuX3B1c2hVbmRvQ29tbWFuZChpKHQsZSkpfSkpLHRoaXMuZW5kVW5kb01hY3JvKCksdGhpcy5lbWl0RXZlbnQoImNoYW5nZVpPcmRlciIsW3RdKX1fbW92ZVNlbGVjdGVkVG9vbHMoZSl7Y29uc3QgdD10aGlzLm1vZGVsKCkuc2VsZWN0aW9uKCkubGluZURhdGFTb3VyY2VzKCkuZmlsdGVyKChlPT4hZS5pc1NvdXJjZUhpZGRlbigpKSk7aWYoMD09PXQubGVuZ3RoKXJldHVybiExO2lmKCgwLFQubG9ja0RyYXdpbmdzKSgpLnZhbHVlKCkpcmV0dXJuITA7Y29uc3QgaT10aGlzLnRpbWVTY2FsZSgpLnZpc2libGVCYXJzU3RyaWN0UmFuZ2UoKTtpZihudWxsPT09aSlyZXR1cm4hMTtjb25zdCBzPWZ1bmN0aW9uKGUpe2NvbnN0IHQ9bmV3IE1hcDtmb3IoY29uc3QgaSBvZiBlKXtjb25zdCBlPWkub3duZXJTb3VyY2UoKTtpZihudWxsPT09ZSljb250aW51ZTtsZXQgcz10LmdldChlKTtpZih2b2lkIDA9PT1zKXtjb25zdCBuPWUucHJpY2VTY2FsZSgpLHI9ZS5wcmljZVN0ZXAoKSxvPWUuZmlyc3RWYWx1ZSgpO2lmKG51bGw9PT1ufHxudWxsPT09cnx8bnVsbD09PW8pY29udGludWU7aWYobnVsbD09PW4ucHJpY2VSYW5nZSgpKWNvbnRpbnVlO3M9e3NvdXJjZXM6W10scHJpY2VTY2FsZTpuLHByaWNlU3RlcDpyLHN0YXJ0UHJpY2U6aS5wb2ludHMoKVswXS5wcmljZSxmaXJzdFZhbHVlOm99LHQuc2V0KGUscyl9cy5zb3VyY2VzLnB1c2goaSl9cmV0dXJuIHR9KHQpO2lmKDA9PT1zLnNpemUpcmV0dXJuITE7dGhpcy5iZWdpblVuZG9NYWNybyhrcCk7Y29uc3Qgbj1pLmZpcnN0QmFyKCkscj10aGlzLnRpbWVTY2FsZSgpLmluZGV4VG9Db29yZGluYXRlKG4pLG89bisoMz09PWU/MToyPT09ZT8tMTowKSxhPXRoaXMudGltZVNjYWxlKCkuaW5kZXhUb0Nvb3JkaW5hdGUobyk7cmV0dXJuIFQuaXNEaXJlY3Rpb25hbE1vdmVtZW50QWN0aXZlLnNldFZhbHVlKCEwKSxzLmZvckVhY2goKHQ9Pntjb25zdHtzdGFydFByaWNlOmkscHJpY2VTdGVwOnMscHJpY2VTY2FsZTpsLGZpcnN0VmFsdWU6Y309dCxoPWkrKDA9PT1lP3M6MT09PWU/LXM6MCksZD1sLnByaWNlVG9Db29yZGluYXRlKGksYyksdT1sLnByaWNlVG9Db29yZGluYXRlKGgsYykscD17bG9naWNhbDp7aW5kZXg6bixwcmljZTppfSxzY3JlZW46bmV3IFB0LlBvaW50KHIsZCl9LF89e2xvZ2ljYWw6e2luZGV4Om8scHJpY2U6aH0sc2NyZWVuOm5ldyBQdC5Qb2ludChhLHUpfTt0aGlzLnN0YXJ0TW92aW5nU291cmNlcyh0LnNvdXJjZXMscCxudWxsKSx0aGlzLm1vdmVTb3VyY2VzKF8pLHRoaXMuZW5kTW92aW5nU291cmNlKCExLCEwKX0pKSxULmlzRGlyZWN0aW9uYWxNb3ZlbWVudEFjdGl2ZS5zZXRWYWx1ZSghMSksdGhpcy5lbmRVbmRvTWFjcm8oKSwhMH1fcmVzdG9yZVN0dWR5RmFjdG9yeURlZmF1bHRzKGUpe2NvbnN0IHQ9bmV3IFF1KHRoaXMubV9tb2RlbCxlKTt0aGlzLl9wdXNoVW5kb0NvbW1hbmQodCl9X3Jlc3RvcmVMaW5lVG9vbEZhY3RvcnlEZWZhdWx0cyhlKXt0aGlzLmJlZ2luVW5kb01hY3JvKERwKSx0aGlzLnNhdmVMaW5lVG9vbFN0YXRlKGUsRHApO2NvbnN0IHQ9bmV3IFp1KHRoaXMubV9tb2RlbCxlLnByb3BlcnRpZXMoKSxEcCkKO3RoaXMuX3B1c2hVbmRvQ29tbWFuZCh0KSx0aGlzLnNhdmVMaW5lVG9vbFN0YXRlKGUsRHApLHRoaXMuZW5kVW5kb01hY3JvKCksdGhpcy5tb2RlbCgpLnVwZGF0ZVNvdXJjZShlKX1fcmVtb3ZlQWxsRHJhd2luZ1Rvb2xzSW1wbChlLHQpe3RoaXMuc2VsZWN0aW9uTWFjcm8oKCgpPT57dGhpcy5saW5lQmVpbmdDcmVhdGVkKCkmJnRoaXMuY2FuY2VsQ3JlYXRpbmdMaW5lKCk7dGhpcy5kYXRhU291cmNlcygpLmZpbHRlcihyaS5pc0xpbmVUb29sKS5maWx0ZXIoKGU9PmUuaXNBY3R1YWxTeW1ib2woKSYmZS5pc1VzZXJEZWxldGFibGUoKSkpLmZpbHRlcigoZT0+IXR8fHQ9PT1lLnRvb2xuYW1lKSkuZmlsdGVyKCh0PT5lfHwhdC5pc0xvY2tlZD8uKCkpKS5mb3JFYWNoKChlPT50aGlzLnJlbW92ZVNvdXJjZShlLCExKSkpfSksITApfV9yZW1vdmVBbGxTdHVkaWVzSW1wbCgpe2NvbnN0IGU9dGhpcy5kYXRhU291cmNlcygpLHQ9ZS5maWx0ZXIodGkuaXNTdHVkeSkuZmlsdGVyKChlPT4hZS5pc0NoaWxkU3R1ZHkoKSYmZS5yZW1vdmVCeVJlbW92ZUFsbFN0dWRpZXMoKSkpLGk9ZS5maWx0ZXIodGkuaXNTdHVkeVN0dWIpO3QuY29uY2F0KGkpLmZvckVhY2goKGU9PnRoaXMucmVtb3ZlU291cmNlKGUsITEpKSl9X3dpdGhLZWVwV2lkZ2V0UGFuZVBvc2l0aW9uR3VhcmQoZSx0KXtjb25zdCBpPXRoaXMubV9tb2RlbC5wYW5lcygpLmZpbmRJbmRleCgoZT0+ZS5tb2RlKCk9PT1NLlBhbmVNb2RlLldpZGdldCkpLHM9dGhpcy5tX21vZGVsLnBhbmVzKCkuZmluZEluZGV4KChlPT5lLmNvbnRhaW5zTWFpblNlcmllcygpKSk7aWYoLTE9PT1pfHwtMT09PXMpcmV0dXJuIHZvaWQgZSgpO2NvbnN0IG49aT5zO3RoaXMuYmVnaW5VbmRvTWFjcm8odCksZSgpO2NvbnN0IHI9dGhpcy5tX21vZGVsLnBhbmVzKCkuZmluZEluZGV4KChlPT5lLm1vZGUoKT09PU0uUGFuZU1vZGUuV2lkZ2V0KSksbz10aGlzLm1fbW9kZWwucGFuZXMoKS5maW5kSW5kZXgoKGU9PmUuY29udGFpbnNNYWluU2VyaWVzKCkpKTtpZihvIT09cyl7Y29uc3QgZT1uP28rMTpvO3RoaXMubW92ZVBhbmUocixlPnI/ZS0xOmUpfXRoaXMuZW5kVW5kb01hY3JvKCl9fXZhciBQXz1pKDY5MjY0KSxUXz1pKDY5NzQ3MikseF89aSgyMTYwODMpO2NsYXNzIE1fe2NvbnN0cnVjdG9yKCl7dGhpcy5fc2Vzc2lvbj17c3RhcnREYXRlOihuZXcgRGF0ZSkudG9JU09TdHJpbmcoKSx1cmw6d2luZG93LmxvY2F0aW9uLmhyZWYsZW50cmllczpbXX19YWRkUGVyc2lzdGVudExvZ0VudHJ5KGUsdCxpKXt0aGlzLl9zZXNzaW9uLmVudHJpZXMucHVzaCh7ZGF0ZToobmV3IERhdGUpLnRvSVNPU3RyaW5nKCksbGV2ZWw6dCxtZXNzYWdlOmUsY2F0ZWdvcnk6aX0pfWFzeW5jIGdldExhc3RTZXNzaW9ucyhlKXtyZXR1cm5bdGhpcy5fc2Vzc2lvbl19cGVuZGluZ0VudHJpZXMoKXtyZXR1cm4gdGhpcy5fc2Vzc2lvbi5lbnRyaWVzfX12YXIgSV89aSg3Mzc1MjMpLExfPWkoNzI4NTgzKSxBXz1pKDI5MDMyNCk7Y29uc3Qga189cC50KG51bGwsdm9pZCAwLGkoNzQyNjQyKSk7ZnVuY3Rpb24gRF8oZSl7aWYoInJlcGxhY2VkX3RvX2V4Y2hhbmdlIj09PWUudHlwZSlyZXR1cm57dGV4dDprXyx3YXJuaW5nSWNvbjpMXyx3YXJuaW5nQ2xhc3NOYW1lOkFfLmljb24sd2FybmluZ1R5cGU6Im5vdGFjY3VyYXRlIixzb2x1dGlvbklkOmRlLnNvbHV0aW9uSWRzLldIQVRfSVNfQ0JPRV9CWlhfRVhDSEFOR0V9fWNsYXNzIEVfe2NvbnN0cnVjdG9yKGUpe3RoaXMuX2FjdGl2ZUhpbnQ9bnVsbCx0aGlzLl9kZWZlcnJlZFByb21pc2U9bnVsbCx0aGlzLl9jaGFydD1lO2UubW9kZWwoKS5tYWluU2VyaWVzKCkuZGF0YUV2ZW50cygpLnN5bWJvbFJlc29sdmVkKCkuc3Vic2NyaWJlKHRoaXMsdGhpcy5fb25TeW1ib2xSZXNvbHZlZCl9ZGVzdHJveSgpe3RoaXMuX2Rlc3Ryb3lBY3RpdmVIaW50KCk7dGhpcy5fY2hhcnQubW9kZWwoKS5tYWluU2VyaWVzKCkuZGF0YUV2ZW50cygpLnN5bWJvbFJlc29sdmVkKCkudW5zdWJzY3JpYmUodGhpcyx0aGlzLl9vblN5bWJvbFJlc29sdmVkKX1fZGVzdHJveUFjdGl2ZUhpbnQoKXtudWxsIT09dGhpcy5fYWN0aXZlSGludCYmKHRoaXMuX2FjdGl2ZUhpbnQuZGVzdHJveSgpLHRoaXMuX2FjdGl2ZUhpbnQ9bnVsbCksdGhpcy5fZGVmZXJyZWRQcm9taXNlPW51bGx9YXN5bmMgX2NyZWF0ZUhpbnQoKXtpZihudWxsPT09dGhpcy5fZGVmZXJyZWRQcm9taXNlKXtjb25zdCBlPSgwLEF0LmNyZWF0ZURlZmVycmVkUHJvbWlzZSkoKTt0aGlzLl9kZWZlcnJlZFByb21pc2U9ZSxQcm9taXNlLmFsbChbaS5lKDIwNTc2KSxpLmUoMjkyOTYpLGkuZSg2MDA2MiksaS5lKDk0MDU0KSxpLmUoNDAxNjgpLGkuZSgzMjM4NyksaS5lKDM2ODA0KV0pLnRoZW4oaS5iaW5kKGksNDQ4MTYwKSkudGhlbigodD0+e2UucmVzb2x2ZShuZXcgdC5DaGFydFdhcm5pbmdIaW50UmVuZGVyZXIodGhpcy5fY2hhcnQpKX0pKX1yZXR1cm4gdGhpcy5fZGVmZXJyZWRQcm9taXNlLnByb21pc2V9X29uU3ltYm9sUmVzb2x2ZWQoZSl7Y29uc3QgdD1mdW5jdGlvbihlKXtjb25zdCB0PSgwLElfLmZpcnN0UmVwbGFjZWRCeUJhdHNFeGNoYW5nZSkoZSk7cmV0dXJuIG51bGwhPT10P3t0eXBlOiJyZXBsYWNlZF90b19leGNoYW5nZSIsZXhjaGFuZ2U6dH06bnVsbH0oZSksaT10JiZmdW5jdGlvbihlKXtyZXR1cm5gd2FybmluZy5ub1N1YnNjXyR7ZS5leGNoYW5nZX1gfSh0KTtpZihudWxsPT09dHx8bnVsbD09PWl8fEJvb2xlYW4oUS5nZXRCb29sKGkpKSlyZXR1cm4gdm9pZCB0aGlzLl9kZXN0cm95QWN0aXZlSGludCgpO2NvbnN0IHM9ey4uLkRfKHQpLG9uQ2xvc2U6KCk9PntRLnNldFZhbHVlKGksITAse2ZvcmNlRmx1c2g6ITB9KSx0aGlzLl9kZXN0cm95QWN0aXZlSGludCgpfX07bnVsbCE9PXRoaXMuX2FjdGl2ZUhpbnQ/dGhpcy5fYWN0aXZlSGludC5zaG93KHMpOnRoaXMuX2NyZWF0ZUhpbnQoKS50aGVuKChlPT57dGhpcy5fYWN0aXZlSGludD1lLHRoaXMuX2FjdGl2ZUhpbnQuc2hvdyhzKX0pKX19dmFyIFJfPWkoOTc2NDk5KSxWXz1pKDY0MTAzNSk7cC50KG51bGwsdm9pZCAwLGkoNTMzOTU2KSk7Y2xhc3MgQl97CmNvbnN0cnVjdG9yKGUpe3RoaXMuX2xhc3RSZXNvbHZlZFN5bWJvbD1udWxsLHRoaXMuX2luaXRpYWxTeW1ib2xFcnJvcj0hMSx0aGlzLl9jaGFydD1lLHRoaXMuX2NoYXJ0LndpdGhNb2RlbCh0aGlzLHRoaXMuX2Nvbm5lY3RUb01vZGVsKX1fZ2VuZXJhdGVEaWFsb2dDb250ZW50KGUpe2NvbnN0IHQ9dGhpcy5fZ2V0UHJvU3ltYm9sKCksaT1uZXcgVVJMKCJodHRwczovL3d3dy50cmFkaW5ndmlldy5jb20vY2hhcnQvIik7aS5zZWFyY2hQYXJhbXMuYXBwZW5kKCJzeW1ib2wiLHQpLGkuc2VhcmNoUGFyYW1zLmFwcGVuZCgidXRtX3NvdXJjZSIsInd3dy50cmFkaW5ndmlldy5jb20iKSxpLnNlYXJjaFBhcmFtcy5hcHBlbmQoInV0bV9tZWRpdW0iLCJ3aWRnZXQiKSxpLnNlYXJjaFBhcmFtcy5hcHBlbmQoInV0bV9jYW1wYWlnbiIsImNoYXJ0IiksaS5zZWFyY2hQYXJhbXMuYXBwZW5kKCJ1dG1fdGVybSIsdCk7cmV0dXJuIGUuZm9ybWF0KHtsaW5rU3RhcnQ6YDxhIHRhcmdldD0iX2JsYW5rIiBocmVmPSIke2kudG9TdHJpbmcoKX0iPmAsbGlua0VuZDoiPC9hPiJ9KX1hc3luYyBfc2hvd0RpYWxvZyhlKXsoYXdhaXQoMCxWXy5jcmVhdGVOb3RpY2VEaWFsb2cpKHtjb250ZW50OmV9KSkub3BlbigpfV9yZXZlcnRTeW1ib2xDaGFuZ2UoKXtjb25zdCBlPXRoaXMuX2NoYXJ0LmRlZmF1bHRTeW1ib2woKSx0PXRoaXMuX2dldFByb1N5bWJvbCgpO2xldCBpO2k9dGhpcy5fbGFzdFJlc29sdmVkU3ltYm9sP3RoaXMuX2xhc3RSZXNvbHZlZFN5bWJvbC5wcm9fbmFtZTplIT09dD9lOiJBQVBMIix0aGlzLl9jaGFydC5zZXRTeW1ib2woaSl9X2dldFByb1N5bWJvbCgpe3JldHVybiB0aGlzLl9jaGFydC5tb2RlbCgpLm1haW5TZXJpZXMoKS5wcm9TeW1ib2woKX1fZ2V0U3ltYm9sKCl7cmV0dXJuIHRoaXMuX2NoYXJ0Lm1vZGVsKCkubWFpblNlcmllcygpLnN5bWJvbEluZm8oKX1fY29ubmVjdFRvTW9kZWwoKXtjb25zdCBlPXRoaXMuX2NoYXJ0Lm1vZGVsKCkubWFpblNlcmllcygpO2UuZGF0YUV2ZW50cygpLnN5bWJvbEVycm9yKCkuc3Vic2NyaWJlKHRoaXMsKCgpPT57bnVsbD09PXRoaXMuX2xhc3RSZXNvbHZlZFN5bWJvbCYmKHRoaXMuX2luaXRpYWxTeW1ib2xFcnJvcj0hMCl9KSwhMCksZS5kYXRhRXZlbnRzKCkuc3ltYm9sUmVzb2x2ZWQoKS5zdWJzY3JpYmUodGhpcyx0aGlzLl9vblN5bWJvbFJlc29sdmVkKX1fb25TeW1ib2xSZXNvbHZlZCgpe2NvbnN0IGU9bnVsbD09PXRoaXMuX2xhc3RSZXNvbHZlZFN5bWJvbCYmIXRoaXMuX2luaXRpYWxTeW1ib2xFcnJvcix0PXRoaXMuX2dldFN5bWJvbCgpO2lmKCEodGhpcy5fbGFzdFJlc29sdmVkU3ltYm9sJiZ0JiZ0aGlzLl9sYXN0UmVzb2x2ZWRTeW1ib2wucHJvX25hbWU9PT10LnByb19uYW1lKSYmKDAsUGUuaXNGZWF0dXJlRW5hYmxlZCkoImVuYWJsZV9hc3hfc3ltYm9sX3Jlc3RyaWN0aW9uIikmJiFlJiYiQVNYIj09PXQ/LmV4Y2hhbmdlKXtjb25zdCBlPXAudChudWxsLHZvaWQgMCxpKDM2NzgwMCkpLHQ9dGhpcy5fZ2VuZXJhdGVEaWFsb2dDb250ZW50KGUpO3JldHVybiB0aGlzLl9zaG93RGlhbG9nKHQpLHZvaWQgdGhpcy5fcmV2ZXJ0U3ltYm9sQ2hhbmdlKCl9dGhpcy5fbGFzdFJlc29sdmVkU3ltYm9sPXRoaXMuX2dldFN5bWJvbCgpfX1mdW5jdGlvbiBOXygpe2NvbnN0IGU9d2luZG93LndpZGdldGJhcjtpZihlKXtjb25zdCB0PSgwLGwuZW5zdXJlTm90TnVsbCkoZS5zZXRQYWdlKCJvYmplY3RfdHJlZSIpKSxpPSgwLGwuZW5zdXJlTm90TnVsbCkodC53aWRnZXQoIm9iamVjdF90cmVlIikpOygwLGwuZW5zdXJlRGVmaW5lZCkoaS5wcm9wZXJ0aWVzKS5zZXRWYWx1ZSh7c2VsZWN0ZWRQYWdlOiJkYXRhLXdpbmRvdyJ9KX1lbHNlO31jb25zdCBPXz0idHJhZGVkR3JvdXA6IixXXz1gJHtPX31QbGFjZU9yZGVyYCxGXz1gJHtPX31FZGl0T3JkZXJgO3ZhciBIXz1pKDY2NDM3Nik7Y29uc3Qgel89cC50KG51bGwsdm9pZCAwLGkoNTMzOTU2KSk7Y2xhc3MgVV97Y29uc3RydWN0b3IoZSl7dGhpcy5fbGFzdFJlc29sdmVkU3ltYm9sPW51bGwsdGhpcy5fY2hhcnQ9ZSx0aGlzLl9jaGFydC53aXRoTW9kZWwodGhpcyx0aGlzLl9jb25uZWN0VG9Nb2RlbCl9X2dldFBvcHVwQ29udGVudCgpe2NvbnN0IGU9dGhpcy5fZ2V0UHJvU3ltYm9sKCksdD1uZXcgVVJMKCJodHRwczovL3d3dy50cmFkaW5ndmlldy5jb20vY2hhcnQvIik7dC5zZWFyY2hQYXJhbXMuYXBwZW5kKCJzeW1ib2wiLGUpLHQuc2VhcmNoUGFyYW1zLmFwcGVuZCgidXRtX3NvdXJjZSIsInd3dy50cmFkaW5ndmlldy5jb20iKSx0LnNlYXJjaFBhcmFtcy5hcHBlbmQoInV0bV9tZWRpdW0iLCJ3aWRnZXQiKSx0LnNlYXJjaFBhcmFtcy5hcHBlbmQoInV0bV9jYW1wYWlnbiIsImNoYXJ0IiksdC5zZWFyY2hQYXJhbXMuYXBwZW5kKCJ1dG1fdGVybSIsZSk7cmV0dXJuIHpfLmZvcm1hdCh7bGlua1N0YXJ0OmA8YSB0YXJnZXQ9Il9ibGFuayIgaHJlZj0iJHt0LnRvU3RyaW5nKCl9Ij5gLGxpbmtFbmQ6IjwvYT4ifSl9X29uUG9wdXBDbG9zZWQoKXtjb25zdCBlPXRoaXMuX2NoYXJ0LmRlZmF1bHRTeW1ib2woKSx0PXRoaXMuX2dldFN5bWJvbCgpO2xldCBpO2k9dGhpcy5fbGFzdFJlc29sdmVkU3ltYm9sP3RoaXMuX2xhc3RSZXNvbHZlZFN5bWJvbDplIT09dD9lOiJBQVBMIix0aGlzLl9jaGFydC5zZXRTeW1ib2woaSl9X2dldFByb1N5bWJvbCgpe3JldHVybiB0aGlzLl9jaGFydC5tb2RlbCgpLm1haW5TZXJpZXMoKS5wcm9TeW1ib2woKX1fZ2V0U3ltYm9sKCl7cmV0dXJuIHRoaXMuX2NoYXJ0Lm1vZGVsKCkubWFpblNlcmllcygpLmFjdHVhbFN5bWJvbCgpfV9jb25uZWN0VG9Nb2RlbCgpe2NvbnN0IGU9dGhpcy5fY2hhcnQubW9kZWwoKS5tYWluU2VyaWVzKCk7ZS5kYXRhRXZlbnRzKCkuc3ltYm9sUmVzb2x2ZWQoKS5zdWJzY3JpYmUodGhpcyx0aGlzLl9vblN5bWJvbFJlc29sdmVkKSxlLmRhdGFFdmVudHMoKS5zeW1ib2xHcm91cE5vdFBlcm1pdHRlZCgpLnN1YnNjcmliZSh0aGlzLHRoaXMuX29uU3ltYm9sR3JvdXBOb3RQZXJtaXR0ZWQpLAplLmRhdGFFdmVudHMoKS5zeW1ib2xOb3RQZXJtaXR0ZWQoKS5zdWJzY3JpYmUodGhpcyx0aGlzLnNob3cpfV9vblN5bWJvbFJlc29sdmVkKCl7dGhpcy5fbGFzdFJlc29sdmVkU3ltYm9sPXRoaXMuX2dldFN5bWJvbCgpfV9vblN5bWJvbEdyb3VwTm90UGVybWl0dGVkKCl7dGhpcy5zaG93KCl9fWNsYXNzIEdfIGV4dGVuZHMgVV97c2hvdygpeygwLFZfLmNyZWF0ZU5vdGljZURpYWxvZykoe2NvbnRlbnQ6dGhpcy5fZ2V0UG9wdXBDb250ZW50KCl9KS50aGVuKChlPT57ZS5vbigiZGVzdHJveSIsdGhpcy5fb25Qb3B1cENsb3NlZC5iaW5kKHRoaXMpKSxlLm9wZW4oKX0pKX19dmFyIGpfPWkoNzQ4OTEyKTt2YXIgcV89aSgzMDc2MTApO3ZhciAkXz1pKDg3MzM4Nik7dmFyIFlfPWkoMTUzNTgyKSxLXz1pKDM4NzEwMSksWF89aSg3Mjg2MzkpLFpfPWkoNjQzOTAzKSxKXz1pKDYxMzg4MSk7dmFyIFFfPWkoNzQ1OTkwKSxlbT1pKDEwMzk5OCk7ZnVuY3Rpb24gdG0oZSl7cmV0dXJuIGUuaGFzTW9kZWwoKT9lLm1vZGVsKCkubWFpblNlcmllcygpLnByb1N5bWJvbCgpOmUuc3ltYm9sV1YoKS52YWx1ZSgpfXZhciBpbT1pKDc2Mjg1MSksc209aSg0NTY3MDUpLG5tPWkoNTE5NTE1KSxybT1pKDc2MDM5MCk7Y2xhc3Mgb20gZXh0ZW5kcyBlcy5BY3Rpb257Y29uc3RydWN0b3IoZSx0KXtzdXBlcih7YWN0aW9uSWQ6IkNoYXJ0LkFkZFN5bWJvbFRvV2F0Y2hMaXN0IixvcHRpb25zOnQ9e2ljb25JZDoiV2F0Y2hsaXN0LkFkZFN5bWJvbCIsaWNvbjpKXy5pY29ucy5nZXQoIldhdGNobGlzdC5BZGRTeW1ib2wiKSxob3RrZXlIYXNoOksuTW9kaWZpZXJzLkFsdCs4NyxzdGF0TmFtZToiQWRkVG9XYXRjaGxpc3QiLGxhYmVsOm9tLmZvcm1hdExhYmVsKGUpLG9uRXhlY3V0ZTooKT0+dGhpcy5fZXhlY3V0ZSgpLC4uLnR9fSksdGhpcy51cGRhdGVTeW1ib2w9dGhpcy51cGRhdGVTeW1ib2wuYmluZCh0aGlzKSx0aGlzLl9zeW1ib2w9ZX1kZXN0cm95KCl7dGhpcy5fc3ltYm9sPXZvaWQgMCxzdXBlci5kZXN0cm95KCl9cHJlcGFyZSgpe31zdGF0aWMgZm9ybWF0TGFiZWwoZSl7cmV0dXJuIHAudChudWxsLHZvaWQgMCxpKDU3OTkzNCkpLmZvcm1hdCh7c3ltYm9sOigwLFpfLnNhZmVTaG9ydE5hbWUpKGUpfSl9dXBkYXRlU3ltYm9sKGUpe3RoaXMuX3N5bWJvbD1lLHRoaXMudXBkYXRlKHtsYWJlbDpvbS5mb3JtYXRMYWJlbChlKX0pfV9leGVjdXRlKCl7Y29uc3QgZT10aGlzLl9zeW1ib2w7ZSYmKDAsYWQucnVuT3JTaWduaW5XaXRoRmVhdHVyZSkoKCgpPT57KDAsc20uaW5pdFN5bWJvbExpc3RTZXJ2aWNlKSgpLnRoZW4oKHQ9Pnt0LnN0b3JlLmRpc3BhdGNoKHQuYWN0aW9ucy5hZGRTeW1ib2xzKG5tLldBVENITElTVF9XSURHRVRfSUQsW2VdKSl9KSl9KSx7ZmVhdHVyZToid2F0Y2hMaXN0Iixzb3VyY2U6ImFkZCBzeW1ib2wgdG8gd2F0Y2hsaXN0In0pfX1jbGFzcyBhbSBleHRlbmRzIG9te2NvbnN0cnVjdG9yKGUsdCl7c3VwZXIoZS52YWx1ZSgpLHQpLHRoaXMuX3N5bWJvbFJlZj0oMCx1LmNvbWJpbmUpKChlPT5lKSxlKSx0aGlzLl9zeW1ib2xSZWYuc3Vic2NyaWJlKHRoaXMudXBkYXRlU3ltYm9sLHtjYWxsV2l0aExhc3Q6ITB9KX1kZXN0cm95KCl7dGhpcy5fc3ltYm9sUmVmJiZ0aGlzLl9zeW1ib2xSZWYuZGVzdHJveSgpLHRoaXMuX3N5bWJvbFJlZj1udWxsLHN1cGVyLmRlc3Ryb3koKX19Y2xhc3MgbG0gZXh0ZW5kcyBhbXtjb25zdHJ1Y3RvcihlLHQpe3N1cGVyKCgwLHhlLmNyZWF0ZVN5bWJvbE9yQWxpYXNXVikoZS5zeW1ib2xXVigpLndlYWtSZWZlcmVuY2UoKSxlLnN5bWJvbEluZm9XVigpLndlYWtSZWZlcmVuY2UoKSxlLmNoYXJ0V2lkZ2V0Q29sbGVjdGlvbigpLnN5bWJvbEFsaWFzU2VydmljZSgpKS5vd25lcnNoaXAoKSx7c3ViSXRlbXM6W25ldyBlcy5Mb2FkZXIoIkxvYWRpbmciKV0sLi4udH0pLHRoaXMuX2hhZFN5bWJvbE9uSW5pdD0hMSx0aGlzLl9pc01vYmlsZT0oMCxZXy5pc01vYmlsZSkoKSx0aGlzLl9vblJlcXVlc3Q9bnVsbCx0aGlzLl91bnN1YnNjcmliZT1udWxsLHRoaXMuX2NoYXJ0PWUsdGhpcy5fbG9hZCgpfXByZXBhcmUoKXtzdXBlci5wcmVwYXJlKCksdGhpcy5faGFkU3ltYm9sT25Jbml0PSExLHRoaXMuX2lzTW9iaWxlPSgwLFlfLmlzTW9iaWxlKSgpLHRoaXMudXBkYXRlKHtzdWJJdGVtczpbbmV3IGVzLkxvYWRlcigiTG9hZGluZyIpXX0pLHRoaXMuX29uUmVxdWVzdD8uKCl9ZGVzdHJveSgpe3RoaXMuX3Vuc3Vic2NyaWJlPy4oKSx0aGlzLl9jaGFydD1udWxsLHRoaXMuX29uUmVxdWVzdD1udWxsLHN1cGVyLmRlc3Ryb3koKX1fZXhlY3V0ZSgpeygwLGFkLnJ1bk9yU2lnbmluV2l0aEZlYXR1cmUpKCgoKT0+e2lmKHRoaXMuX2NoYXJ0KXtjb25zdCBlPXRtKHRoaXMuX2NoYXJ0KTsoMCxzbS5pbml0U3ltYm9sTGlzdFNlcnZpY2UpKCkudGhlbigodD0+e3Quc3RvcmUuZGlzcGF0Y2godC5hY3Rpb25zLmFkZFN5bWJvbHMobm0uV0FUQ0hMSVNUX1dJREdFVF9JRCxbZV0pKX0pKX19KSx7ZmVhdHVyZToid2F0Y2hMaXN0Iixzb3VyY2U6ImFkZCBzeW1ib2wgdG8gd2F0Y2hsaXN0In0pfWFzeW5jIF9sb2FkKCl7Y29uc3RbZSx0LHMsbixyLHt3YXRjaGxpc3RTb3J0Q29tcGFyYXRvcjpvfSxhXT1hd2FpdCBQcm9taXNlLmFsbChbaS5lKDY0NjQ0KS50aGVuKGkudC5iaW5kKGksNzc5NDc0LDE5KSksKDAsCnNtLmluaXRTeW1ib2xMaXN0U2VydmljZSkoKSxQcm9taXNlLmFsbChbaS5lKDczNzcpLGkuZSg4NDMwNiksaS5lKDI5Mjk2KSxpLmUoNTIzOTYpLGkuZSg2MDA2MiksaS5lKDIwMzU0KSxpLmUoMTM0OTIpLGkuZSgzNzc0NiksaS5lKDk0MjMyKSxpLmUoMTIwNTEpLGkuZSgzMjM4NyksaS5lKDMwNjk5KSxpLmUoMTg1MTIpLGkuZSg0MjQ1NyksaS5lKDM5NjA5KSxpLmUoMTQ4ODkpLGkuZSg0MjIxMiksaS5lKDUyNTA5KSxpLmUoODU0MzQpLGkuZSg3Mjg1KSxpLmUoMjg1MSksaS5lKDE5OTM4KV0pLnRoZW4oaS5iaW5kKGksOTY5MjYyKSksUHJvbWlzZS5hbGwoW2kuZSg3Mzc3KSxpLmUoODQzMDYpLGkuZSgyOTI5NiksaS5lKDUyMzk2KSxpLmUoNjAwNjIpLGkuZSgyMDM1NCksaS5lKDEzNDkyKSxpLmUoMzc3NDYpLGkuZSg5NDIzMiksaS5lKDEyMDUxKSxpLmUoMzIzODcpLGkuZSgzMDY5OSksaS5lKDE4NTEyKSxpLmUoNDI0NTcpLGkuZSgzOTYwOSksaS5lKDE0ODg5KSxpLmUoNDIyMTIpLGkuZSg1MjUwOSksaS5lKDg1NDM0KSxpLmUoNzI4NSksaS5lKDI4NTEpLGkuZSgxOTkzOCldKS50aGVuKGkuYmluZChpLDE5NTI2OSkpLFByb21pc2UuYWxsKFtpLmUoOTY4MjMpLGkuZSg4NDMwNiksaS5lKDI5Mjk2KSxpLmUoNTIzOTYpLGkuZSg2MDA2MiksaS5lKDQ2OTA3KSxpLmUoMjAzNTQpLGkuZSgxMzQ5MiksaS5lKDM3NzQ2KSxpLmUoMTIzODUpLGkuZSg4MTA3MiksaS5lKDk0OTQ4KSxpLmUoMjM2MjQpLGkuZSg5NDIzMiksaS5lKDMyODE2KSxpLmUoMTk1OTUpLGkuZSgxOTc4NyksaS5lKDY3Nzk5KSxpLmUoMjQ1ODEpLGkuZSgyNzUxNyksaS5lKDg2NDIzKSxpLmUoODU3OSksaS5lKDQwODM1KSxpLmUoMTcwODcpLGkuZSg3MjY2NiksaS5lKDc4NjUyKSxpLmUoNzA4MTUpLGkuZSgxNDYyNSksaS5lKDE1NTI2KSxpLmUoOTM0MTYpLGkuZSg1MjY4MCksaS5lKDM1Nzk0KSxpLmUoMTY3NiksaS5lKDg5MjA0KSxpLmUoMTIwNTEpLGkuZSg4OTU1OCksaS5lKDEwMzY2KSxpLmUoNjk4NjEpLGkuZSgyMDIpLGkuZSg3MjUxMiksaS5lKDU1MDExKSxpLmUoNzUzMDQpLGkuZSg1MjA5NSksaS5lKDQ0MDMxKSxpLmUoNzE5MDEpLGkuZSg4OTA0NCksaS5lKDQwOTE0KSxpLmUoODEyNDcpLGkuZSg5MDk2MCksaS5lKDQzNzkyKSxpLmUoODc3NDApLGkuZSg3ODQwNCksaS5lKDM5MTYpLGkuZSg4MTEwNyksaS5lKDc4ODk5KSxpLmUoNTEyNTYpLGkuZSg0MjMwMSksaS5lKDM1MzQyKSxpLmUoNDIwMzMpLGkuZSg1MDU4OCksaS5lKDgwMDQxKSxpLmUoOTAzNzgpLGkuZSg3MjI0OSksaS5lKDMwOTIyKSxpLmUoMzc1NjcpLGkuZSg4Nzc2NyksaS5lKDMyMzg3KSxpLmUoMzA2OTkpLGkuZSg4MDkxNSksaS5lKDE4NTEyKSxpLmUoNDg2MjApLGkuZSg1MDA0OSksaS5lKDE0ODg5KSxpLmUoNDIyMTIpLGkuZSg1NTIyOSksaS5lKDQ2MjE3KSxpLmUoNjg3MjUpLGkuZSg2NjkzMyksaS5lKDY5Njk3KSxpLmUoNTI1MDkpLGkuZSg2MzQwMiksaS5lKDI0ODc5KSxpLmUoNjcxMjApLGkuZSg0MjMyNyksaS5lKDM1MjUyKSxpLmUoNjA0OTMpXSkudGhlbihpLmJpbmQoaSw1MTAxMTYpKSxQcm9taXNlLmFsbChbaS5lKDk2ODIzKSxpLmUoODQzMDYpLGkuZSgyOTI5NiksaS5lKDUyMzk2KSxpLmUoNjAwNjIpLGkuZSg0NjkwNyksaS5lKDIwMzU0KSxpLmUoMTM0OTIpLGkuZSgzNzc0NiksaS5lKDEyMzg1KSxpLmUoODEwNzIpLGkuZSg5NDk0OCksaS5lKDIzNjI0KSxpLmUoOTQyMzIpLGkuZSgzMjgxNiksaS5lKDE5NTk1KSxpLmUoMTk3ODcpLGkuZSg2Nzc5OSksaS5lKDI0NTgxKSxpLmUoMjc1MTcpLGkuZSg4NjQyMyksaS5lKDg1NzkpLGkuZSg0MDgzNSksaS5lKDE3MDg3KSxpLmUoNzI2NjYpLGkuZSg3ODY1MiksaS5lKDcwODE1KSxpLmUoMTQ2MjUpLGkuZSgxNTUyNiksaS5lKDkzNDE2KSxpLmUoNTI2ODApLGkuZSgzNTc5NCksaS5lKDE2NzYpLGkuZSg4OTIwNCksaS5lKDEyMDUxKSxpLmUoODk1NTgpLGkuZSgxMDM2NiksaS5lKDY5ODYxKSxpLmUoMjAyKSxpLmUoNzI1MTIpLGkuZSg1NTAxMSksaS5lKDc1MzA0KSxpLmUoNTIwOTUpLGkuZSg0NDAzMSksaS5lKDcxOTAxKSxpLmUoODkwNDQpLGkuZSg0MDkxNCksaS5lKDgxMjQ3KSxpLmUoOTA5NjApLGkuZSg0Mzc5MiksaS5lKDg3NzQwKSxpLmUoNzg0MDQpLGkuZSgzOTE2KSxpLmUoODExMDcpLGkuZSg3ODg5OSksaS5lKDUxMjU2KSxpLmUoNDIzMDEpLGkuZSgzNTM0MiksaS5lKDQyMDMzKSxpLmUoNTA1ODgpLGkuZSg4MDA0MSksaS5lKDkwMzc4KSxpLmUoNzIyNDkpLGkuZSgzMDkyMiksaS5lKDM3NTY3KSxpLmUoODc3NjcpLGkuZSgzMjM4NyksaS5lKDMwNjk5KSxpLmUoODA5MTUpLGkuZSgxODUxMiksaS5lKDQ4NjIwKSxpLmUoNTAwNDkpLGkuZSgxNDg4OSksaS5lKDQyMjEyKSxpLmUoNTUyMjkpLGkuZSg0NjIxNyksaS5lKDY4NzI1KSxpLmUoNjY5MzMpLGkuZSg2OTY5NyksaS5lKDUyNTA5KSxpLmUoNjM0MDIpLGkuZSgyNDg3OSksaS5lKDY3MTIwKSxpLmUoNDIzMjcpLGkuZSgzNTI1MiksaS5lKDYwNDkzKV0pLnRoZW4oaS5iaW5kKGksNTQ2MTU0KSksUHJvbWlzZS5hbGwoW2kuZSg5NjgyMyksaS5lKDg0MzA2KSxpLmUoMjkyOTYpLGkuZSg1MjM5NiksaS5lKDYwMDYyKSxpLmUoNDY5MDcpLGkuZSgyMDM1NCksaS5lKDEzNDkyKSxpLmUoMzc3NDYpLGkuZSgxMjM4NSksaS5lKDgxMDcyKSxpLmUoOTQ5NDgpLGkuZSgyMzYyNCksaS5lKDk0MjMyKSxpLmUoMzI4MTYpLGkuZSgxOTU5NSksaS5lKDE5Nzg3KSxpLmUoNjc3OTkpLGkuZSgyNDU4MSksaS5lKDI3NTE3KSxpLmUoODY0MjMpLGkuZSg4NTc5KSxpLmUoNDA4MzUpLGkuZSgxNzA4NyksaS5lKDcyNjY2KSxpLmUoNzg2NTIpLGkuZSg3MDgxNSksaS5lKDE0NjI1KSxpLmUoMTU1MjYpLGkuZSg5MzQxNiksaS5lKDUyNjgwKSxpLmUoMzU3OTQpLGkuZSgxNjc2KSxpLmUoODkyMDQpLGkuZSgxMjA1MSksaS5lKDg5NTU4KSxpLmUoMTAzNjYpLGkuZSg2OTg2MSksaS5lKDIwMiksaS5lKDcyNTEyKSxpLmUoNTUwMTEpLGkuZSg3NTMwNCksaS5lKDUyMDk1KSxpLmUoNDQwMzEpLGkuZSg3MTkwMSksaS5lKDg5MDQ0KSxpLmUoNDA5MTQpLGkuZSg4MTI0NyksaS5lKDkwOTYwKSxpLmUoNDM3OTIpLGkuZSg4Nzc0MCksaS5lKDc4NDA0KSxpLmUoMzkxNiksaS5lKDgxMTA3KSxpLmUoNzg4OTkpLGkuZSg1MTI1NiksaS5lKDQyMzAxKSxpLmUoMzUzNDIpLGkuZSg0MjAzMyksaS5lKDUwNTg4KSxpLmUoODAwNDEpLGkuZSg5MDM3OCksaS5lKDcyMjQ5KSxpLmUoMzA5MjIpLGkuZSgzNzU2NyksaS5lKDg3NzY3KSxpLmUoMzIzODcpLGkuZSgzMDY5OSksaS5lKDgwOTE1KSxpLmUoMTg1MTIpLGkuZSg0ODYyMCksaS5lKDUwMDQ5KSxpLmUoMTQ4ODkpLGkuZSg0MjIxMiksaS5lKDU1MjI5KSxpLmUoNDYyMTcpLGkuZSg2ODcyNSksaS5lKDY2OTMzKSxpLmUoNjk2OTcpLGkuZSg1MjUwOSksaS5lKDYzNDAyKSxpLmUoMjQ4NzkpLGkuZSg2NzEyMCksaS5lKDQyMzI3KSxpLmUoMzUyNTIpLGkuZSg2MDQ5MyldKS50aGVuKGkuYmluZChpLDkyMDM5MikpXSkKO2lmKHRoaXMuX2Rlc3Ryb3llZClyZXR1cm47Y29uc3R7c3RvcmU6bH09dDt0aGlzLl9vblJlcXVlc3Q9KCk9PmwuZGlzcGF0Y2gocy5nZXRDdXN0b21XYXRjaGxpc3RzVGh1bmsobnVsbCkpLHRoaXMuX3Vuc3Vic2NyaWJlPWwuc3Vic2NyaWJlKCgoKT0+e2lmKCF0aGlzLl9jaGFydClyZXR1cm47Y29uc3QgdD1sLmdldFN0YXRlKCk7aWYobnVsbD09PXIuZ2V0Q3VzdG9tTGlzdHNTdGF0ZSh0KS50aW1lc3RhbXApcmV0dXJuO2NvbnN0IHM9dG0odGhpcy5fY2hhcnQpLGM9ci5nZXRDdXN0b21MaXN0cyh0KSx7YWN0aXZlU3ltYm9sTGlzdDpofT10LGQ9Yy5maW5kKChlPT5lLmlkPT09aD8uaWQpKTt0aGlzLl9oYWRTeW1ib2xPbkluaXR8fCh0aGlzLl9oYWRTeW1ib2xPbkluaXQ9ISFkJiZkLnN5bWJvbHMuaW5jbHVkZXMocykpO2NvbnN0IHU9KDAscS5pc0ZlYXR1cmVzZXRFbmFibGVkKSgibXVsdGlwbGVfd2F0Y2hsaXN0cyIpP2MuZmlsdGVyKChlPT5lLmlkIT09aD8uaWQpKS5zb3J0KG8pOltdO2xldCBfPWQ/W2QsLi4udV06dTtfPV8uZmlsdGVyKChlPT4hKDAscm0uaXNEZWxldGVkU3ltYm9sc0xpc3QpKGUuaWQpKSk7Y29uc3QgbT1fLm1hcCgodD0+e2NvbnN0IGk9dC5zeW1ib2xzLmluY2x1ZGVzKHMpLHI9e3Nob3J0Y3V0SGludDp0LmlkPT09aD8uaWQ/KDAsSy5odW1hblJlYWRhYmxlSGFzaCkoSy5Nb2RpZmllcnMuQWx0Kzg3KTp2b2lkIDAsaW52aXNpYmxlSG90a2V5OnQuaWQ9PT1oPy5pZD9pOnZvaWQgMCxkb05vdENsb3NlT25DbGljazohMCxvbkV4ZWN1dGU6KCk9Pntjb25zdCBlPWk/bi5yZW1vdmVTeW1ib2xzVGh1bmsobm0uV0FUQ0hMSVNUX1dJREdFVF9JRCxbc10sdC5pZCwhMCk6bi5hZGRTeW1ib2xzVG9DdXN0b21MaXN0VGh1bmsobm0uV0FUQ0hMSVNUX1dJREdFVF9JRCx0LmlkLFtzXSk7dC5pZCE9PWg/LmlkfHx3aW5kb3cuaXNfYXV0aGVudGljYXRlZHx8dGhpcy5faGFkU3ltYm9sT25Jbml0P2wuZGlzcGF0Y2goZSk6d2luZG93LnJ1bk9yU2lnbkluKCgoKT0+e2wuZGlzcGF0Y2goZSl9KSx7c291cmNlOiJDaGFydCBjb250ZXh0IG1lbnUifSl9fTtyZXR1cm4gbmV3IGVzLkFjdGlvbih7YWN0aW9uSWQ6IldhdGNobGlzdC5BY3Rpb25zIixvcHRpb25zOnsuLi5yLGxhYmVsOnQubmFtZSxjaGVja2FibGU6ITAsY2hlY2tlZDppLHN0YXROYW1lOiJBZGRUb1dhdGNobGlzdCJ9LGN1c3RvbUFjdGlvbk9wdGlvbnM6ey4uLnIsanN4TGFiZWw6ZS5jcmVhdGVFbGVtZW50KGEuQ29udGV4dE1lbnVXYXRjaGxpc3RJdGVtLHt0aXRsZTp0Lm5hbWUsaXNDaGVja2VkOmksaXNTbWFsbFNpemU6dGhpcy5faXNNb2JpbGV9KX19KX0pKSxnPW5ldyBlcy5BY3Rpb24oe2FjdGlvbklkOiJXYXRjaGxpc3QuQ3JlYXRlIixvcHRpb25zOntsYWJlbDooMCxpbS5hcHBlbmRFbGxpcHNpcykocC50KG51bGwsdm9pZCAwLGkoODc2MTYpKSksc3RhdE5hbWU6IkNyZWF0ZU5ld1dhdGNobGlzdCIsaWNvbklkOnRoaXMuX2lzTW9iaWxlPyJXYXRjaGxpc3QuQ3JlYXRlTmV3Ijp2b2lkIDAsb25FeGVjdXRlOigpPT57KDAsV3UucnVuT3JHb1BybykoKCgpPT57bC5kaXNwYXRjaChuLnVzZXJDcmVhdGVXYXRjaGxpc3RUaHVuayhudWxsLHtzeW1ib2xzOltzXX0pKX0pLCJNVUxUSVBMRV9XQVRDSExJU1RTIix7ZmVhdHVyZToibXVsdGlwbGVXYXRjaExpc3RzIixmZWF0dXJlTG9jYXRpb246Im1vdmVTeW1ib2xzVG9OZXcifSl9fX0pO3RoaXMudXBkYXRlKHtzdWJJdGVtczpbLi4ubSxuZXcgZXMuU2VwYXJhdG9yLGddfSl9KSl9fXZhciBjbT1pKDg4MDExNSksaG09aSgzNzk3OTMpO2Z1bmN0aW9uIGRtKGUpe3JldHVybigwLGNtLmRlZmF1bHQpKGUpJiYiZGlhbG9nQ2xvc2UiaW4gZSYmImZ1bmN0aW9uIj09dHlwZW9mIGUuZGlhbG9nQ2xvc2V9YXN5bmMgZnVuY3Rpb24gdW0oZSl7aWYoIXdpbmRvdy5pc19hdXRoZW50aWNhdGVkKXJldHVybntzdWJJdGVtczpbXSxkaXNhYmxlZDohMH07Y29uc3RbdCxzLG5dPWF3YWl0IFByb21pc2UuYWxsKFtQcm9taXNlLmFsbChbaS5lKDc0MTE0KSxpLmUoNjQyNSldKS50aGVuKGkuYmluZChpLDY2NTE4NykpLFByb21pc2UuYWxsKFtpLmUoNzQxMTQpLGkuZSg2NDI1KV0pLnRoZW4oaS5iaW5kKGksMzE2NTE3KSksUHJvbWlzZS5hbGwoW2kuZSg3NDExNCksaS5lKDY0MjUpXSkudGhlbihpLmJpbmQoaSw0MTM0NTEpKV0pLHI9YXdhaXQgdC5nZXRUaGVtZU5hbWVzKCksbz1bXSxhPW5ldyBlcy5BY3Rpb24oe2FjdGlvbklkOiJDaGFydC5UaGVtZS5TYXZlQXMiLG9wdGlvbnM6e25hbWU6InRoZW1lLXNhdmUtYXMiLHN0YXROYW1lOiJTYXZlVGhlbWVBcyIsbGFiZWw6KDAsaW0uYXBwZW5kRWxsaXBzaXMpKHAudChudWxsLHZvaWQgMCxpKDc4NDc0MSkpKSxvbkV4ZWN1dGU6YXN5bmMoKT0+e3RyeXt2b2lkIDAhPT1hd2FpdCBuZXcgUHJvbWlzZSgoKHQsaSk9PntzLnNob3dUaGVtZVNhdmVEaWFsb2dBc3luYyhlLm1vZGVsKCkubW9kZWwoKS50ZW1wbGF0ZSgpLHQsdCxpKX0pKSYmYXdhaXQgcG0oZSl9Y2F0Y2goZSl7aWYoZG0oZSkpcmV0dXJuIHZvaWQgZS5kaWFsb2dDbG9zZSgpO3Rocm93IGV9fX19KTtyZXR1cm4gby5wdXNoKGEpLHImJnIubGVuZ3RoJiYoby5sZW5ndGgmJm8ucHVzaChuZXcgZXMuU2VwYXJhdG9yKSxyLmZvckVhY2goKGk9Pntjb25zdCByPW5ldyBlcy5BY3Rpb24oe2FjdGlvbklkOiJDaGFydC5UaGVtZS5BcHBseS5DdXN0b20iLG9wdGlvbnM6e2xhYmVsOnQudHJhbnNsYXRlU3RkVGhlbWVOYW1lKGkpLGNoZWNrYWJsZTohMSxzdGF0TmFtZToiTG9hZFRoZW1lIixvbkV4ZWN1dGU6KCk9PntuLmxvYWRUaGVtZShlLmNoYXJ0V2lkZ2V0Q29sbGVjdGlvbigpLHt0aGVtZU5hbWU6aSxzdGFuZGFyZFRoZW1lOiExfSkudGhlbigoKCk9Pnt3aW5kb3cuc2F2ZXIuc2F2ZUNoYXJ0U2lsZW50bHkoKSwoMCxNdC50cmFja0V2ZW50KSgiR1VJIiwiU3dpdGNoIHRvIGN1c3RvbSB0aGVtZSIpfSkpfSx0b29sYm94Ont0eXBlOmhtLlRvb2xib3hUeXBlLkRlbGV0ZSxhY3Rpb246YXN5bmMoKT0+e3RyeXt2b2lkIDAhPT1hd2FpdCBuZXcgUHJvbWlzZSgoKGUsdCk9PnsKcy5zaG93UmVtb3ZlVGhlbWVEaWFsb2dBc3luYyhpLGUsZSx0KX0pKSYmYXdhaXQgcG0oZSl9Y2F0Y2goZSl7aWYoZG0oZSkpcmV0dXJuIHZvaWQgZS5kaWFsb2dDbG9zZSgpO3Rocm93IGV9fX0sc2hvd1Rvb2xib3hPbkhvdmVyOiEwfX0pO28ucHVzaChyKX0pKSkse3N1Ykl0ZW1zOm8sZGlzYWJsZWQ6MD09PW8ubGVuZ3RofX1hc3luYyBmdW5jdGlvbiBwbShlLHQpe3Q/Pz1lLmFjdGlvbnMoKS5hcHBseUNvbG9yVGhlbWUsdD8udXBkYXRlKGF3YWl0IHVtKGUpKX12YXIgX209aSgzNDIyMCksbW09aSg5NTI1NDUpLGdtPWkoNjQ0Mjk1KTtmdW5jdGlvbiBmbShlKXtjb25zdCB0PWUubW9kZWwoKS5kYXRhU291cmNlcygpLHM9dC5maWx0ZXIoZ2wuaXNMaW5lVG9vbCkuZmlsdGVyKChlPT5lLmlzQWN0dWFsU3ltYm9sKCkmJmUuaXNVc2VyRGVsZXRhYmxlKCkpKS5sZW5ndGgsbj10LmZpbHRlcih0aS5pc1N0dWR5KS5maWx0ZXIoKGU9PmUucmVtb3ZlQnlSZW1vdmVBbGxTdHVkaWVzKCkpKS5sZW5ndGgscj1wLnQobnVsbCx7cGx1cmFsOiJ7YW1vdW50fSBkcmF3aW5ncyIsY291bnQ6cyxyZXBsYWNlOnthbW91bnQ6cy50b1N0cmluZygpfX0saSg0MDY0ODUpKSxvPXAudChudWxsLHtwbHVyYWw6InthbW91bnR9IGluZGljYXRvcnMiLGNvdW50Om4scmVwbGFjZTp7YW1vdW50Om4udG9TdHJpbmcoKX19LGkoMTQxNjYyKSk7cmV0dXJue2RyYXdpbmdzOntsYWJlbDpwLnQobnVsbCx7cmVwbGFjZTp7ZHJhd2luZ3M6cn19LGkoMTQ1Mzk2KSksZGlzYWJsZWQ6MD09PXN9LHN0dWRpZXM6e2xhYmVsOnAudChudWxsLHtyZXBsYWNlOntpbmRpY2F0b3JzOm99fSxpKDEyODEzMykpLGRpc2FibGVkOjA9PT1ufSxhbGw6e2xhYmVsOnAudChudWxsLHtyZXBsYWNlOntkcmF3aW5nczpyLGluZGljYXRvcnM6b319LGkoNjgzMjA4KSksZGlzYWJsZWQ6MD09PXMmJjA9PT1ufX19dmFyIFNtPWkoNzgzMjU0KSx2bT1pKDg2MjU3Mik7ZnVuY3Rpb24geW0oZSl7Y29uc3QgdD1lLm9wdGlvbnMoKSxzPXtsYWJlbDooMCxpbS5hcHBlbmRFbGxpcHNpcykoU20udChudWxsLHZvaWQgMCxpKDU5Nzc3MCkpKSxzdGF0TmFtZToiQ2hhbmdlSW50ZXJ2YWwiLG9uRXhlY3V0ZTooKT0+KDAsdm0uc2hvd0NoYW5nZUludGVydmFsRGlhbG9nQXN5bmMpKHtpbml0VmFsOmpyLmxpbmtpbmcuaW50ZXJ2YWwudmFsdWUoKSxzZWxlY3RPbkluaXQ6ITB9KX07cmV0dXJuISgwLHEuaXNGZWF0dXJlc2V0RW5hYmxlZCkoInNob3dfaW50ZXJ2YWxfZGlhbG9nX29uX2tleV9wcmVzcyIpfHx0LnJlYWRPbmx5fHx0LmhpZGVTeW1ib2xTZWFyY2h8fChzLnNob3J0Y3V0SGludD0iLCIscy5ob3RrZXlHcm91cD1lLmhvdGtleXMoKSxzLmhvdGtleUhhc2g9MTg4KSxuZXcgZXMuQWN0aW9uKHthY3Rpb25JZDoiQ2hhcnQuRGlhbG9ncy5TaG93Q2hhbmdlSW50ZXJ2YWwiLG9wdGlvbnM6c30pfWNsYXNzIGJtIGV4dGVuZHMgZXMuQWN0aW9ue2NvbnN0cnVjdG9yKGUsdD1uZXcgaC5XYXRjaGVkVmFsdWUoITEpKXtzdXBlcih7Li4uZSxvcHRpb25zOnsuLi5lLm9wdGlvbnMsY2hlY2thYmxlOiEwLGNoZWNrZWQ6dC52YWx1ZSgpLG9uRXhlY3V0ZTooKT0+e3RoaXMuX3d2LnNldFZhbHVlKCF0aGlzLl93di52YWx1ZSgpKX19fSksdGhpcy5fdXBkYXRlQ2hlY2tlZD1lPT57dGhpcy51cGRhdGUoe2NoZWNrZWQ6ZX0pfSx0LnN1YnNjcmliZSh0aGlzLl91cGRhdGVDaGVja2VkKSx0aGlzLl93dj10fWRlc3Ryb3koKXt0aGlzLl93di51bnN1YnNjcmliZSh0aGlzLl91cGRhdGVDaGVja2VkKSxzdXBlci5kZXN0cm95KCl9fXZhciB3bT1pKDc0MTY5MCkKO2NvbnN0IENtPW5ldyB5LlRyYW5zbGF0ZWRTdHJpbmcoInNjYWxlIHByaWNlIGNoYXJ0IG9ubHkiLHAudChudWxsLHZvaWQgMCxpKDIzMTgzMSkpKSxQbT1uZXcgeS5UcmFuc2xhdGVkU3RyaW5nKCJzdGF5IGluIGRyYXdpbmcgbW9kZSIscC50KG51bGwsdm9pZCAwLGkoNDgyMTE4KSkpLFRtPW5ldyB5LlRyYW5zbGF0ZWRTdHJpbmcoImhpZGUgbWFya3Mgb24gYmFycyIscC50KG51bGwsdm9pZCAwLGkoNDc3NjY1KSkpLHhtPW5ldyB5LlRyYW5zbGF0ZWRTdHJpbmcoImNoYW5nZSBzeW1ib2wgbGFzdCB2YWx1ZSB2aXNpYmlsaXR5IixwLnQobnVsbCx2b2lkIDAsaSgyMjU5MDApKSksTW09bmV3IHkuVHJhbnNsYXRlZFN0cmluZygiY2hhbmdlIHN5bWJvbCBwcmV2aW91cyBjbG9zZSB2YWx1ZSB2aXNpYmlsaXR5IixwLnQobnVsbCx2b2lkIDAsaSg1OTQyMDkpKSksSW09bmV3IHkuVHJhbnNsYXRlZFN0cmluZygiY2hhbmdlIHByZXZpb3VzIGNsb3NlIHByaWNlIGxpbmUgdmlzaWJpbGl0eSIscC50KG51bGwsdm9pZCAwLGkoODg2OTExKSkpLExtPW5ldyB5LlRyYW5zbGF0ZWRTdHJpbmcoImNoYW5nZSBzeW1ib2wgbGFiZWxzIHZpc2liaWxpdHkiLHAudChudWxsLHZvaWQgMCxpKDE1NjEwOCkpKSxBbT1uZXcgeS5UcmFuc2xhdGVkU3RyaW5nKCJjaGFuZ2UgaW5kaWNhdG9ycyBhbmQgZmluYW5jaWFscyB2YWx1ZSBsYWJlbHMgdmlzaWJpbGl0eSIscC50KG51bGwsdm9pZCAwLGkoNjI0MzYwKSkpLGttPW5ldyB5LlRyYW5zbGF0ZWRTdHJpbmcoImNoYW5nZSBpbmRpY2F0b3JzIGFuZCBmaW5hbmNpYWxzIG5hbWUgbGFiZWxzIHZpc2liaWxpdHkiLHAudChudWxsLHZvaWQgMCxpKDM4NjMzNSkpKSxEbT1uZXcgeS5UcmFuc2xhdGVkU3RyaW5nKCJjaGFuZ2UgYmlkIGFuZCBhc2sgbGFiZWxzIHZpc2liaWxpdHkiLHAudChudWxsLHZvaWQgMCxpKDE0MTU1MykpKSxFbT1uZXcgeS5UcmFuc2xhdGVkU3RyaW5nKCJjaGFuZ2UgYmlkIGFuZCBhc2sgbGluZXMgdmlzaWJpbGl0eSIscC50KG51bGwsdm9pZCAwLGkoMzk2MDQ5KSkpLFJtPW5ldyB5LlRyYW5zbGF0ZWRTdHJpbmcoImNoYW5nZSBwcmUvcG9zdCBtYXJrZXQgcHJpY2UgbGFiZWwgdmlzaWJpbGl0eSIscC50KG51bGwsdm9pZCAwLGkoNTc2NzAxKSkpLFZtPW5ldyB5LlRyYW5zbGF0ZWRTdHJpbmcoImNoYW5nZSBwcmUvcG9zdC9uaWdodCBtYXJrZXQgcHJpY2UgbGFiZWwgdmlzaWJpbGl0eSIscC50KG51bGwsdm9pZCAwLGkoODQ0OTg0KSkpLEJtPW5ldyB5LlRyYW5zbGF0ZWRTdHJpbmcoImNoYW5nZSBwcmUvcG9zdCBtYXJrZXQgcHJpY2UgbGluZSB2aXNpYmlsaXR5IixwLnQobnVsbCx2b2lkIDAsaSgxNzY3NDUpKSksTm09bmV3IHkuVHJhbnNsYXRlZFN0cmluZygiY2hhbmdlIHByZS9wb3N0L25pZ2h0IG1hcmtldCBwcmljZSBsaW5lIHZpc2liaWxpdHkiLHAudChudWxsLHZvaWQgMCxpKDM5NDI4MikpKSxPbT1uZXcgeS5UcmFuc2xhdGVkU3RyaW5nKCJjaGFuZ2UgaGlnaCBhbmQgbG93IHByaWNlIGxhYmVscyB2aXNpYmlsaXR5IixwLnQobnVsbCx2b2lkIDAsaSg1Njk4NykpKSxXbT1uZXcgeS5UcmFuc2xhdGVkU3RyaW5nKCJjaGFuZ2UgaGlnaCBhbmQgbG93IHByaWNlIGxpbmVzIHZpc2liaWxpdHkiLHAudChudWxsLHZvaWQgMCxpKDE4NDY2NikpKSxGbT0obmV3IHkuVHJhbnNsYXRlZFN0cmluZygiY2hhbmdlIGF2ZXJhZ2UgY2xvc2UgcHJpY2UgbGFiZWwgdmlzaWJpbGl0eSIscC50KG51bGwsdm9pZCAwLGkoNTE2NDYpKSksbmV3IHkuVHJhbnNsYXRlZFN0cmluZygiY2hhbmdlIGF2ZXJhZ2UgY2xvc2UgcHJpY2UgbGluZSB2aXNpYmlsaXR5IixwLnQobnVsbCx2b2lkIDAsaSg0MDUzNTIpKSksbmV3IHkuVHJhbnNsYXRlZFN0cmluZygiY2hhbmdlIGNvdW50ZG93biB0byBiYXIgY2xvc2UgdmlzaWJpbGl0eSIscC50KG51bGwsdm9pZCAwLGkoMzk5MjU0KSkpKSxIbT1uZXcgeS5UcmFuc2xhdGVkU3RyaW5nKCJjaGFuZ2UgcGx1cyBidXR0b24gdmlzaWJpbGl0eSIscC50KG51bGwsdm9pZCAwLGkoNzM5MDg3KSkpLHptPW5ldyB5LlRyYW5zbGF0ZWRTdHJpbmcoImNoYW5nZSBzZXNzaW9uIGJyZWFrcyB2aXNpYmlsaXR5IixwLnQobnVsbCx2b2lkIDAsaSgxNDYyMDIpKSksVW09bmV3IHkuVHJhbnNsYXRlZFN0cmluZygiY2hhbmdlIHByaWNlIGxpbmUgdmlzaWJpbGl0eSIscC50KG51bGwsdm9pZCAwLGkoMzIyOTEyKSkpLEdtPW5ldyB5LlRyYW5zbGF0ZWRTdHJpbmcoImNoYW5nZSB0aW1lem9uZSIscC50KG51bGwsdm9pZCAwLGkoMTMxNDA4KSkpO2Z1bmN0aW9uIGptKGUpe2NvbnN0IHQ9ZS5ob3RrZXlzKCkscz1lLm1vZGVsKCksbj1lLm9wdGlvbnMoKSxyPWUucHJvcGVydGllcygpLG89bmV3IGVzLkFjdGlvbih7YWN0aW9uSWQ6IkNoYXJ0LlNlcmllcy5QcmljZVNjYWxlLlRvZ2dsZUludmVydFByaWNlU2NhbGUiLG9wdGlvbnM6e2xhYmVsOnAudChudWxsLHZvaWQgMCxpKDE1OTI1KSksc3RhdE5hbWU6IkludmVydCBTY2FsZSIsY2hlY2thYmxlOiEwLG9uRXhlY3V0ZTooKT0+cy5pbnZlcnRQcmljZVNjYWxlKHMubWFpblNlcmllcygpLnByaWNlU2NhbGUoKSksaG90a2V5R3JvdXA6dCxob3RrZXlIYXNoOksuTW9kaWZpZXJzLkFsdCs3M319KSxhPW5ldyBlcy5BY3Rpb24oe2FjdGlvbklkOiJDaGFydC5TZXJpZXMuUHJpY2VTY2FsZS5Ub2dnbGVBdXRvU2NhbGUiLG9wdGlvbnM6e2xhYmVsOnAudChudWxsLHZvaWQgMCxpKDYzMzc1MikpLGNoZWNrYWJsZTohMCxvbkV4ZWN1dGU6ZT0+e2NvbnN0IHQ9cy5tYWluU2VyaWVzKCkucHJpY2VTY2FsZSgpO3MudG9nZ2xlUHJpY2VTY2FsZUF1dG9TY2FsZU1vZGUodCksZS51cGRhdGUoe2NoZWNrZWQ6dC5pc0F1dG9TY2FsZSgpfSl9fX0pLGw9bmV3IGVzLkFjdGlvbih7YWN0aW9uSWQ6IkNoYXJ0LlNjYWxlcy5Ub2dnbGVMb2NrUHJpY2VUb0JhclJhdGlvIixvcHRpb25zOntsYWJlbDpwLnQobnVsbCx2b2lkIDAsaSg0MTE3NjgpKSxjaGVja2FibGU6ITAsc3RhdE5hbWU6IlRvZ2dsZUxvY2tTY2FsZSIsCm9uRXhlY3V0ZTooKT0+cy50b2dnbGVQcmljZVNjYWxlTG9ja1NjYWxlTW9kZShzLm1haW5TZXJpZXMoKS5wcmljZVNjYWxlKCkpfX0pLGM9bmV3IGVzLkFjdGlvbih7YWN0aW9uSWQ6IkNoYXJ0LlNlcmllcy5QcmljZVNjYWxlLlRvZ2dsZVJlZ3VsYXIiLG9wdGlvbnM6e2xhYmVsOnAudChudWxsLHtjb250ZXh0OiJzY2FsZV9tZW51In0saSg3NDkxNzkpKSxjaGVja2FibGU6ITAsc3RhdE5hbWU6IlRvZ2dsZVJlZ3VsYXJTY2FsZSIsb25FeGVjdXRlOmU9Pntjb25zdCB0PXMubWFpblNlcmllcygpLnByaWNlU2NhbGUoKTtzLnNldFByaWNlU2NhbGVSZWd1bGFyU2NhbGVNb2RlKHQpLGUudXBkYXRlKHtjaGVja2VkOnQuaXNSZWd1bGFyKCl9KX19fSksZD1uZXcgZXMuQWN0aW9uKHthY3Rpb25JZDoiQ2hhcnQuU2VyaWVzLlByaWNlU2NhbGUuVG9nZ2xlUGVyY2VudGFnZSIsb3B0aW9uczp7bGFiZWw6cC50KG51bGwsdm9pZCAwLGkoMTU1ODMzKSksY2hlY2thYmxlOiEwLHN0YXROYW1lOiJUb2dnbGVQZXJjYW50YWdlIixvbkV4ZWN1dGU6KCk9PnMudG9nZ2xlUHJpY2VTY2FsZVBlcmNlbnRhZ2VTY2FsZU1vZGUocy5tYWluU2VyaWVzKCkucHJpY2VTY2FsZSgpKSxob3RrZXlHcm91cDp0LGhvdGtleUhhc2g6Sy5Nb2RpZmllcnMuQWx0KzgwfX0pLHU9bmV3IGVzLkFjdGlvbih7YWN0aW9uSWQ6IkNoYXJ0LlNlcmllcy5QcmljZVNjYWxlLlRvZ2dsZUluZGV4ZWRUbzEwMCIsb3B0aW9uczp7bGFiZWw6cC50KG51bGwsdm9pZCAwLGkoMTUyMDU0KSksY2hlY2thYmxlOiEwLHN0YXROYW1lOiJUb2dnbGVJbmRleGVkVG8xMDAiLG9uRXhlY3V0ZTooKT0+cy50b2dnbGVQcmljZVNjYWxlSW5kZXhlZFRvMTAwU2NhbGVNb2RlKHMubWFpblNlcmllcygpLnByaWNlU2NhbGUoKSl9fSksXz1uZXcgZXMuQWN0aW9uKHthY3Rpb25JZDoiQ2hhcnQuU2VyaWVzLlByaWNlU2NhbGUuVG9nZ2xlTG9nYXJpdGhtaWMiLG9wdGlvbnM6e2xhYmVsOnAudChudWxsLHZvaWQgMCxpKDUwMzU1OCkpLHN0YXROYW1lOiJUb2dnbGVMb2dTY2FsZSIsY2hlY2thYmxlOiEwLG9uRXhlY3V0ZTooKT0+cy50b2dnbGVQcmljZVNjYWxlTG9nU2NhbGVNb2RlKHMubWFpblNlcmllcygpLnByaWNlU2NhbGUoKSksaG90a2V5R3JvdXA6dCxob3RrZXlIYXNoOksuTW9kaWZpZXJzLkFsdCs3Nn19KSxtPW5ldyBlcy5BY3Rpb24oe2FjdGlvbklkOiJDaGFydC5DaGFuZ2VUaW1lWm9uZSIsb3B0aW9uczp7bGFiZWw6cC50KG51bGwsdm9pZCAwLGkoMjI0MTk4KSksc3RhdE5hbWU6IlRpbWVab25lIixvbkRlc3Ryb3k6KCk9PmUucHJvcGVydGllcygpLmNoaWxkcygpLnRpbWV6b25lLnVuc3Vic2NyaWJlQWxsKG0pfX0pLGc9ZS5wcm9wZXJ0aWVzKCkuY2hpbGRzKCkudGltZXpvbmUsZj0oKT0+e2NvbnN0IHQ9W10saT1qdC5hdmFpbGFibGVUaW1lem9uZXMscz1lPT5lLmlkPT09Zy52YWx1ZSgpO2kuZm9yRWFjaCgoaT0+e2NvbnN0IG49bmV3IGVzLkFjdGlvbih7YWN0aW9uSWQ6IkNoYXJ0LkNoYW5nZVRpbWVab25lIixvcHRpb25zOntsYWJlbDppLnRpdGxlLGNoZWNrYWJsZTohMCxjaGVja2VkOnMoaSksc3RhdE5hbWU6IlNldFRpbWVab25lIixvbkV4ZWN1dGU6KCk9PntlLm1vZGVsKCkuc2V0UHJvcGVydHkoZyxpLmlkLEdtKX19fSk7dC5wdXNoKG4pfSkpLG0udXBkYXRlKHtzdWJJdGVtczp0fSl9O2YoKSxnLnN1YnNjcmliZShtLGYpO2NvbnN0IFM9bmV3IGFzLkFjdGlvbldpdGhTdGFuZGFyZEljb24oe2FjdGlvbklkOiJDaGFydC5UaW1lU2NhbGUuUmVzZXQiLG9wdGlvbnM6e2xhYmVsOnAudChudWxsLHZvaWQgMCxpKDkwNjQzNikpLGljb25JZDoiQ2hhcnQuUmVzZXQiLHN0YXROYW1lOiJSZXNldFNjYWxlIixvbkV4ZWN1dGU6KCk9PnMucmVzZXRUaW1lU2NhbGUoKSxob3RrZXlHcm91cDplLmhvdGtleXMoKSxob3RrZXlIYXNoOksuTW9kaWZpZXJzLk1vZCtLLk1vZGlmaWVycy5BbHQrODF9fSksdj1uZXcgZXMuQWN0aW9uKHthY3Rpb25JZDoiQ2hhcnQuRGlhbG9ncy5TaG93SW5zZXJ0SW5kaWNhdG9ycyIsb3B0aW9uczp7bGFiZWw6KDAsaW0uYXBwZW5kRWxsaXBzaXMpKHAudChudWxsLHZvaWQgMCxpKDcyNDkwOSkpKSxzdGF0TmFtZToiSW5zZXJ0SW5kaWNhdG9yIixvbkV4ZWN1dGU6KCk9PmUuc2hvd0luZGljYXRvcnMoKSwuLi5uLmluZGljYXRvcnNEaWFsb2dTaG9ydGN1dEVuYWJsZWQ/e2hvdGtleUdyb3VwOnQsaG90a2V5SGFzaDoxOTF9OnZvaWQgMH19KSx5PW5ldyBlcy5BY3Rpb24oe2FjdGlvbklkOiJDaGFydC5EaWFsb2dzLlNob3dDb21wYXJlT3JBZGRTeW1ib2wiLG9wdGlvbnM6e2xhYmVsOigwLGltLmFwcGVuZEVsbGlwc2lzKShwLnQobnVsbCx2b2lkIDAsaSg5MjI0NCkpKSxzdGF0TmFtZToiQ29tcGFyZU9yQWRkU3ltYm9sIixvbkV4ZWN1dGU6KCk9PmUudG9nZ2xlQ29tcGFyZU9yQWRkKCl9fSksYj1uZXcgYXMuQWN0aW9uV2l0aFN0YW5kYXJkSWNvbih7YWN0aW9uSWQ6IkNoYXJ0LkRpYWxvZ3MuU2hvd0dlbmVyYWxTZXR0aW5ncyIsb3B0aW9uczp7bGFiZWw6KDAsaW0uYXBwZW5kRWxsaXBzaXMpKHAudChudWxsLHZvaWQgMCxpKDczMDU4NikpKSxpY29uSWQ6IlNldHRpbmdzIixzdGF0TmFtZToiQ2hhcnRQcm9wZXJ0aWVzIixvbkV4ZWN1dGU6KCk9PmUuc2hvd0dlbmVyYWxDaGFydFByb3BlcnRpZXMoKX19KSx3PW5ldyBhcy5BY3Rpb25XaXRoU3RhbmRhcmRJY29uKHthY3Rpb25JZDoiQ2hhcnQuRGlhbG9ncy5TaG93R2VuZXJhbFNldHRpbmdzLlN5bWJvbFRhYiIsb3B0aW9uczp7bGFiZWw6KDAsaW0uYXBwZW5kRWxsaXBzaXMpKHAudChudWxsLHZvaWQgMCxpKDczMDU4NikpKSxpY29uSWQ6IlNldHRpbmdzIixzdGF0TmFtZToiTWFpblNlcmllc1Byb3BlcnRpZXMiLG9uRXhlY3V0ZTooKT0+ZS5zaG93R2VuZXJhbENoYXJ0UHJvcGVydGllcyhKdC5UYWJOYW1lcy5zeW1ib2wpfX0pLEM9bmV3IGFzLkFjdGlvbldpdGhTdGFuZGFyZEljb24oe2FjdGlvbklkOiJDaGFydC5EaWFsb2dzLlNob3dHZW5lcmFsU2V0dGluZ3MuU2NhbGVzVGFiIixvcHRpb25zOntsYWJlbDooMCwKaW0uYXBwZW5kRWxsaXBzaXMpKHAudChudWxsLHZvaWQgMCxpKDMxNjAxOCkpKSxpY29uSWQ6IlNldHRpbmdzIixzdGF0TmFtZToiU2NhbGVzUHJvcGVydGllcyIsb25FeGVjdXRlOigpPT5lLnNob3dHZW5lcmFsQ2hhcnRQcm9wZXJ0aWVzKEp0LlRhYk5hbWVzLnNjYWxlcyl9fSksUD1uZXcgZXMuQWN0aW9uKHthY3Rpb25JZDoiQ2hhcnQuU2VsZWN0ZWRPYmplY3QuVG9nZ2xlTG9ja2VkIixvcHRpb25zOntsYWJlbDpwLnQobnVsbCx2b2lkIDAsaSg3NTQzMTApKSxzdGF0TmFtZToiVG9nZ2xlTG9ja1NlbGVjdGVkT2JqZWN0IixvbkV4ZWN1dGU6KCk9PmUudG9nZ2xlTG9ja1NlbGVjdGVkT2JqZWN0KCl9fSkseD1uZXcgYXMuQWN0aW9uV2l0aFN0YW5kYXJkSWNvbih7YWN0aW9uSWQ6IkNoYXJ0LlNlbGVjdGVkT2JqZWN0LkhpZGUiLG9wdGlvbnM6e2xhYmVsOnAudChudWxsLHZvaWQgMCxpKDc2OTM5MSkpLGljb25JZDoiQ2hhcnQuSGlkZSIsc3RhdE5hbWU6IkhpZGVTZWxlY3RlZE9iamVjdCIsb25FeGVjdXRlOigpPT5lLmhpZGVTZWxlY3RlZE9iamVjdCgpfX0pLE09bmV3IGlzKHthY3Rpb25JZDoiQ2hhcnQuUHJpY2VTY2FsZS5Ub2dnbGVBdXRvU2NhbGVTZXJpZXNPbmx5IixvcHRpb25zOntsYWJlbDpwLnQobnVsbCx2b2lkIDAsaSg3NjIxNDUpKSxjaGVja2FibGU6ITAsc3RhdE5hbWU6IlNjYWxlUHJpY2VDaGFydE9ubHkifX0se3Byb3BlcnR5OnIuY2hpbGRzKCkuc2NhbGVzUHJvcGVydGllcy5jaGlsZHMoKS5zY2FsZVNlcmllc09ubHksdW5kb01vZGVsOnMsdW5kb1RleHQ6Q219KSxJPW5ldyBibSh7YWN0aW9uSWQ6IkNoYXJ0LkRyYXdpbmdUb29sYmFyLlRvZ2dsZVZpc2liaWxpdHkiLG9wdGlvbnM6e2xhYmVsOnAudChudWxsLHZvaWQgMCxpKDYyMzcxNikpLHN0YXROYW1lOiJUb2dnbGVEcmF3aW5nVG9vbGJhciJ9fSxuLmlzRHJhd2luZ1Rvb2xiYXJWaXNpYmxlKSxMPW5ldyBpcyh7YWN0aW9uSWQ6IiIsb3B0aW9uczp7bGFiZWw6cC50KG51bGwsdm9pZCAwLGkoODc2NjU5KSksY2hlY2thYmxlOiEwLHN0YXROYW1lOiJUb2dnbGVTdGF5SW5EcmF3aW5nTW9kZSJ9fSx7cHJvcGVydHk6VC5wcm9wZXJ0aWVzKCkuY2hpbGRzKCkuc3RheUluRHJhd2luZ01vZGUsdW5kb01vZGVsOnMsdW5kb1RleHQ6UG19KSxBPW5ldyBpcyh7YWN0aW9uSWQ6IkNoYXJ0Lk1hcmtzLlRvZ2dsZVZpc2liaWxpdHkiLG9wdGlvbnM6e2xhYmVsOnAudChudWxsLHZvaWQgMCxpKDEzOTM1NSkpLGNoZWNrYWJsZTohMCxzdGF0TmFtZToiVG9nZ2xlSGlkZU1hcmtzT25CYXJzIn19LHtwcm9wZXJ0eTpULmhpZGVNYXJrc09uQmFycygpLHVuZG9Nb2RlbDpzLHVuZG9UZXh0OlRtLGNhbGxiYWNrOmU9PlQuaGlkZU1hcmtzT25CYXJzKCkuc2V0VmFsdWUoZS5pc0NoZWNrZWQoKSl9KSxEPW5ldyBpcyh7YWN0aW9uSWQ6IkNoYXJ0LlByaWNlU2NhbGUuTGFiZWxzLlRvZ2dsZVNlcmllc0xhc3RWYWx1ZVZpc2liaWxpdHkiLG9wdGlvbnM6e2xhYmVsOnAudChudWxsLHZvaWQgMCxpKDk1NzE5OSkpLGNoZWNrYWJsZTohMCxjaGVja2VkOiExLHN0YXROYW1lOiJUb2dnbGVTeW1ib2xMYXN0VmFsdWUifX0se3Byb3BlcnR5OnIuY2hpbGRzKCkuc2NhbGVzUHJvcGVydGllcy5jaGlsZHMoKS5zaG93U2VyaWVzTGFzdFZhbHVlLHVuZG9Nb2RlbDpzLHVuZG9UZXh0OnhtfSksRT1uZXcgaXMoe2FjdGlvbklkOiJDaGFydC5QcmljZVNjYWxlLkxhYmVscy5Ub2dnbGVTeW1ib2xOYW1lTGFiZWxzVmlzaWJpbGl0eSIsb3B0aW9uczp7bGFiZWw6cC50KG51bGwsdm9pZCAwLGkoNzcwNDM3KSksY2hlY2thYmxlOiEwLGNoZWNrZWQ6ITEsc3RhdE5hbWU6IlRvZ2dsZVN5bWJvbExhYmVscyJ9fSx7cHJvcGVydHk6ci5jaGlsZHMoKS5zY2FsZXNQcm9wZXJ0aWVzLmNoaWxkcygpLnNob3dTeW1ib2xMYWJlbHMsdW5kb01vZGVsOnMsdW5kb1RleHQ6TG19KSxSPSgwLHdtLmNvbWJpbmVQcm9wZXJ0eSkoKChlLHQpPT5lfHx0KSxyLmNoaWxkcygpLnNjYWxlc1Byb3BlcnRpZXMuY2hpbGRzKCkuc2hvd1N0dWR5TGFzdFZhbHVlLndlYWtSZWZlcmVuY2UoKSxyLmNoaWxkcygpLnNjYWxlc1Byb3BlcnRpZXMuY2hpbGRzKCkuc2hvd0Z1bmRhbWVudGFsTGFzdFZhbHVlLndlYWtSZWZlcmVuY2UoKSksVj1uZXcgaXMoe2FjdGlvbklkOiJDaGFydC5QcmljZVNjYWxlLkxhYmVscy5Ub2dnbGVJbmRpY2F0b3JzVmFsdWVMYWJlbHNWaXNpYmlsaXR5IixvcHRpb25zOntsYWJlbDpwLnQobnVsbCx2b2lkIDAsaSgzNDI0NjMpKSxjaGVja2FibGU6ITAsY2hlY2tlZDohMSxzdGF0TmFtZToiVG9nZ2xlU3R1ZGllc0FuZEZ1bmRhbWVudGFsc1ByaWNlTGFiZWxzIixvbkRlc3Ryb3k6KCk9PntSLmRlc3Ryb3koKX19fSx7cHJvcGVydHk6Uix1bmRvTW9kZWw6cyx1bmRvVGV4dDpudWxsLGNhbGxiYWNrOigpPT57Y29uc3QgZT0hUi52YWx1ZSgpO3MuYmVnaW5VbmRvTWFjcm8oQW0pLHMuc2V0UHJvcGVydHkoci5jaGlsZHMoKS5zY2FsZXNQcm9wZXJ0aWVzLmNoaWxkcygpLnNob3dTdHVkeUxhc3RWYWx1ZSxlLG51bGwpLHMuc2V0UHJvcGVydHkoci5jaGlsZHMoKS5zY2FsZXNQcm9wZXJ0aWVzLmNoaWxkcygpLnNob3dGdW5kYW1lbnRhbExhc3RWYWx1ZSxlLG51bGwpLHMuZW5kVW5kb01hY3JvKCl9fSksQj0oMCx3bS5jb21iaW5lUHJvcGVydHkpKCgoZSx0KT0+ZXx8dCksci5jaGlsZHMoKS5zY2FsZXNQcm9wZXJ0aWVzLmNoaWxkcygpLnNob3dTdHVkeVBsb3RMYWJlbHMud2Vha1JlZmVyZW5jZSgpLHIuY2hpbGRzKCkuc2NhbGVzUHJvcGVydGllcy5jaGlsZHMoKS5zaG93RnVuZGFtZW50YWxOYW1lTGFiZWwud2Vha1JlZmVyZW5jZSgpKSxOPW5ldyBpcyh7YWN0aW9uSWQ6IkNoYXJ0LlByaWNlU2NhbGUuTGFiZWxzLlRvZ2dsZUluZGljYXRvcnNOYW1lTGFiZWxzVmlzaWJpbGl0eSIsb3B0aW9uczp7bGFiZWw6cC50KG51bGwsdm9pZCAwLGkoMzk0NDc4KSksY2hlY2thYmxlOiEwLGNoZWNrZWQ6ITEsc3RhdE5hbWU6IlRvZ2dsZVN0dWRpZXNBbmRGdW5kYW1lbnRhbHNOYW1lTGFiZWxzIixvbkRlc3Ryb3k6KCk9PntCLmRlc3Ryb3koKX19fSx7cHJvcGVydHk6Qix1bmRvTW9kZWw6cywKdW5kb1RleHQ6bnVsbCxjYWxsYmFjazooKT0+e2NvbnN0IGU9IUIudmFsdWUoKTtzLmJlZ2luVW5kb01hY3JvKGttKSxzLnNldFByb3BlcnR5KHIuY2hpbGRzKCkuc2NhbGVzUHJvcGVydGllcy5jaGlsZHMoKS5zaG93U3R1ZHlQbG90TGFiZWxzLGUsbnVsbCkscy5zZXRQcm9wZXJ0eShyLmNoaWxkcygpLnNjYWxlc1Byb3BlcnRpZXMuY2hpbGRzKCkuc2hvd0Z1bmRhbWVudGFsTmFtZUxhYmVsLGUsbnVsbCkscy5lbmRVbmRvTWFjcm8oKX19KSxPPXMubWFpblNlcmllcygpLnByb3BlcnRpZXMoKS5jaGlsZHMoKS5oaWdoTG93QXZnUHJpY2UuY2hpbGRzKCksVz1uZXcgaXMoe2FjdGlvbklkOiJDaGFydC5QcmljZVNjYWxlLkxhYmVscy5Ub2dnbGVIaWdoTG93UHJpY2VMYWJlbHNWaXNpYmlsaXR5IixvcHRpb25zOntsYWJlbDpwLnQobnVsbCx2b2lkIDAsaSg4MjM0MzApKSxjaGVja2FibGU6ITAsY2hlY2tlZDohMSxzdGF0TmFtZToiVG9nZ2xlSGlnaExvd1ByaWNlTGFiZWxzIn19LHtwcm9wZXJ0eTpPLmhpZ2hMb3dQcmljZUxhYmVsc1Zpc2libGUsdW5kb01vZGVsOnMsdW5kb1RleHQ6T219KSxGPW5ldyBpcyh7YWN0aW9uSWQ6IkNoYXJ0LkxpbmVzLlRvZ2dsZUhpZ2hMb3dMaW5lc1Zpc2liaWxpdHkiLG9wdGlvbnM6e2xhYmVsOnAudChudWxsLHZvaWQgMCxpKDI1NjIyMCkpLGNoZWNrYWJsZTohMCxjaGVja2VkOiExLHN0YXROYW1lOiJUb2dnbGVIaWdoTG93UHJpY2VMaW5lIn19LHtwcm9wZXJ0eTpPLmhpZ2hMb3dQcmljZUxpbmVzVmlzaWJsZSx1bmRvTW9kZWw6cyx1bmRvVGV4dDpXbX0pLEg9bmV3IGlzKHthY3Rpb25JZDoiQ2hhcnQuUHJpY2VTY2FsZS5Ub2dnbGVDb3VudGRvd25Ub0JhckNsb3NlVmlzaWJpbGl0eSIsb3B0aW9uczp7bGFiZWw6cC50KG51bGwsdm9pZCAwLGkoMjcxNjYxKSksY2hlY2thYmxlOiEwLGNoZWNrZWQ6ITEsc3RhdE5hbWU6IlRvZ2dsZUNvdW50ZG93biJ9fSx7cHJvcGVydHk6cy5tYWluU2VyaWVzKCkucHJvcGVydGllcygpLmNoaWxkcygpLnNob3dDb3VudGRvd24sdW5kb01vZGVsOnMsdW5kb1RleHQ6Rm19KSx6PW5ldyBpcyh7YWN0aW9uSWQ6IkNoYXJ0LlByaWNlU2NhbGUuVG9nZ2xlQWRkT3JkZXJQbHVzQnV0dG9uVmlzaWJpbGl0eSIsb3B0aW9uczp7bGFiZWw6cC50KG51bGwsdm9pZCAwLGkoMjg4OTE1KSksY2hlY2thYmxlOiEwLGNoZWNrZWQ6ZGQuYWRkUGx1c0J1dHRvblByb3BlcnR5LnZhbHVlKCksc3RhdE5hbWU6IlRvZ2dsZUFkZE9yZGVyUGx1c0J1dHRvbiJ9fSx7cHJvcGVydHk6ZGQuYWRkUGx1c0J1dHRvblByb3BlcnR5LHVuZG9Nb2RlbDpzLHVuZG9UZXh0OkhtfSksVT1uZXcgYXMuQWN0aW9uV2l0aFN0YW5kYXJkSWNvbih7YWN0aW9uSWQ6IkNoYXJ0LkRpYWxvZ3MuU2hvd1N5bWJvbEluZm8iLG9wdGlvbnM6e2xhYmVsOigwLGltLmFwcGVuZEVsbGlwc2lzKSgoMCxZXy5pc01vYmlsZSkoKT9wLnQobnVsbCx7Y29udGV4dDoic2hvd19zeW1ib2xfaW5mb19kaWFsb2dfYWN0aW9uIn0saSg5NjA5NjgpKTpwLnQobnVsbCx7Y29udGV4dDoic2hvd19zeW1ib2xfaW5mb19kaWFsb2dfYWN0aW9uIn0saSg5ODY0NjgpKSksaWNvbklkOiJDaGFydC5TeW1ib2xJbmZvIixjaGVja2FibGU6ITEsc3RhdE5hbWU6IlN5bWJvbEluZm8iLG9uRXhlY3V0ZTooKT0+e2lmKCgwLFlfLmlzTW9iaWxlKSgpKSgwLHEuaXNGZWF0dXJlc2V0RW5hYmxlZCkoIm1vYmlsZV9hcHBfYWN0aW9uX29wZW5fZGV0YWlsc193ZWJ2aWV3IikmJm4ub25EZXRhaWxzV2Vidmlld09wZW4/bi5vbkRldGFpbHNXZWJ2aWV3T3BlbigpOigwLEtfLnNob3dEZXRhaWxzRGlhbG9nKSgpLCgwLE10LnRyYWNrRXZlbnQpKCJDb250ZXh0TWVudUNsaWNrIiwiTW9iaWxlIiwiU3ltYm9sSW5mbyIpO2Vsc2V7Y29uc3QgdD1lLm1vZGVsKCkubW9kZWwoKSxpPXQubWFpblNlcmllcygpLnN5bWJvbEluZm8oKTtpZihpKXtjb25zdCBlPXQuYXZhaWxhYmxlVW5pdHMoKS52YWx1ZSgpLHM9dC51bml0Q29udmVyc2lvbkVuYWJsZWQoKTsoMCxtbS5zaG93U3ltYm9sSW5mb0RpYWxvZykoe3N5bWJvbEluZm86aSxzaG93VW5pdDpzLHVuaXREZXNjcmlwdGlvbjp0PT50JiZlP2UuZGVzY3JpcHRpb24odCk6IiIsZGF0ZUZvcm1hdHRlcjp0LmRhdGVGb3JtYXR0ZXIoKX0pfX19fX0pLEc9bmV3IGVzLkFjdGlvbih7YWN0aW9uSWQ6IkNoYXJ0LlByaWNlU2NhbGUuTWVyZ2VBbGxTY2FsZXNUb0xlZnQiLG9wdGlvbnM6e2xhYmVsOnAudChudWxsLHZvaWQgMCxpKDg3Mjk4MCkpLHN0YXROYW1lOiJNZXJnZUFsbFNjYWxlc1RvTGVmdCIsb25FeGVjdXRlOigpPT5zLm1lcmdlQWxsU2NhbGVzKCJsZWZ0Iil9fSksaj1uZXcgZXMuQWN0aW9uKHthY3Rpb25JZDoiQ2hhcnQuUHJpY2VTY2FsZS5NZXJnZUFsbFNjYWxlc1RvUmlnaHQiLG9wdGlvbnM6e2xhYmVsOnAudChudWxsLHZvaWQgMCxpKDM2MzM3MCkpLHN0YXROYW1lOiJNZXJnZUFsbFNjYWxlc1RvUmlnaHQiLG9uRXhlY3V0ZTooKT0+cy5tZXJnZUFsbFNjYWxlcygicmlnaHQiKX19KSwkPW5ldyBlcy5BY3Rpb24oe2FjdGlvbklkOiJDaGFydC5QcmljZVNjYWxlLk1vdmVUb0xlZnQiLG9wdGlvbnM6e2xhYmVsOnAudChudWxsLHZvaWQgMCxpKDcwNTAxNikpLHN0YXROYW1lOiJNb3ZlU2NhbGVUb0xlZnQiLG9uRXhlY3V0ZTooKT0+cy5tZXJnZUFsbFNjYWxlcygibGVmdCIpfX0pLFk9bmV3IGVzLkFjdGlvbih7YWN0aW9uSWQ6IkNoYXJ0LlByaWNlU2NhbGUuTW92ZVRvUmlnaHQiLG9wdGlvbnM6e2xhYmVsOnAudChudWxsLHZvaWQgMCxpKDkxODc5KSksc3RhdE5hbWU6Ik1vdmVTY2FsZVRvUmlnaHQiLG9uRXhlY3V0ZTooKT0+cy5tZXJnZUFsbFNjYWxlcygicmlnaHQiKX19KSxYPW5ldyBhcy5BY3Rpb25XaXRoU3RhbmRhcmRJY29uKHthY3Rpb25JZDoiQ2hhcnQuU2NhbGVzLlJlc2V0IixvcHRpb25zOntsYWJlbDpwLnQobnVsbCx2b2lkIDAsaSgyMDc4NDUpKSxpY29uSWQ6IkNoYXJ0LlJlc2V0IixzdGF0TmFtZToiUmVzZXRDaGFydCIsb25FeGVjdXRlOigpPT5lLkdVSVJlc2V0U2NhbGVzKCksaG90a2V5R3JvdXA6dCxob3RrZXlIYXNoOksuTW9kaWZpZXJzLkFsdCs4Mn0KfSksWj1lLm1vZGVsKCkubW9kZWwoKS5zZXNzaW9ucygpLnByb3BlcnRpZXMoKS5jaGlsZHMoKS5zZXNzaW9uSGlnaGxpZ2h0LmNoaWxkcygpLnZlcnRsaW5lcy5jaGlsZHMoKS5zZXNzQnJlYWtzLmNoaWxkcygpLnZpc2libGUsUT0oMCxTdS5jcmVhdGVXVkZyb21Qcm9wZXJ0eSkoZS5tb2RlbCgpLm1haW5TZXJpZXMoKS5pc0RXTVByb3BlcnR5KCkpLGVlPW5ldyBlcy5BY3Rpb24oe2FjdGlvbklkOiJDaGFydC5TZXNzaW9uQnJlYWtzLlRvZ2dsZVZpc2liaWxpdHkiLG9wdGlvbnM6e2xhYmVsOnAudChudWxsLHZvaWQgMCxpKDc5MjQ5NikpLGNoZWNrYWJsZTohMCxjaGVja2VkOloudmFsdWUoKSxzdGF0TmFtZToiVG9nZ2xlU2Vzc2lvbkJyZWFrcyIsZGlzYWJsZWQ6US52YWx1ZSgpLG9uRXhlY3V0ZTooKT0+e1omJnMuc2V0UHJvcGVydHkoWiwhWi52YWx1ZSgpLHptKX0sb25EZXN0cm95OigpPT5RLmRlc3Ryb3koKX19KTtRLnN1YnNjcmliZSgoKCk9PmVlLnVwZGF0ZSh7ZGlzYWJsZWQ6US52YWx1ZSgpfSkpKTtjb25zdCB0ZT1uZXcgaXMoe2FjdGlvbklkOiJDaGFydC5MaW5lcy5Ub2dnbGVTZXJpZXNQcmljZUxpbmVWaXNpYmlsaXR5IixvcHRpb25zOntsYWJlbDpwLnQobnVsbCx2b2lkIDAsaSg4ODAyMjIpKSxjaGVja2FibGU6ITAsc3RhdE5hbWU6IlRvZ2dsZVByaWNlTGluZSJ9fSx7cHJvcGVydHk6cy5tYWluU2VyaWVzKCkucHJvcGVydGllcygpLmNoaWxkcygpLnNob3dQcmljZUxpbmUsdW5kb01vZGVsOnMsdW5kb1RleHQ6VW19KSxpZT1uZXcgZXMuQWN0aW9uKHthY3Rpb25JZDoiQ2hhcnQuVW5kbyIsb3B0aW9uczp7bGFiZWw6cC50KG51bGwsdm9pZCAwLGkoNzQxMzMpKSxvbkV4ZWN1dGU6KCk9PnsoMCxNdC50cmFja0V2ZW50KSgiR1VJIiwiVW5kbyIpLHMudW5kb0hpc3RvcnkoKS51bmRvKCl9LG9uRGVzdHJveTooKT0+e2UubW9kZWwoKS51bmRvSGlzdG9yeSgpLnVuZG9TdGFjaygpLm9uQ2hhbmdlKCkudW5zdWJzY3JpYmVBbGwoaWUpfSxkaXNhYmxlZDohMCxob3RrZXlHcm91cDp0LGhvdGtleUhhc2g6Sy5Nb2RpZmllcnMuTW9kKzkwLGlzUmVwZWF0QWNjZXB0ZWQ6ITB9fSk7ZS5tb2RlbCgpLnVuZG9IaXN0b3J5KCkudW5kb1N0YWNrKCkub25DaGFuZ2UoKS5zdWJzY3JpYmUoaWUsKCgpPT5pZS51cGRhdGUoe2Rpc2FibGVkOmUubW9kZWwoKS51bmRvSGlzdG9yeSgpLnVuZG9TdGFjaygpLmlzRW1wdHkoKX0pKSk7Y29uc3Qgc2U9bmV3IGVzLkFjdGlvbih7YWN0aW9uSWQ6IkNoYXJ0LlJlZG8iLG9wdGlvbnM6e2xhYmVsOnAudChudWxsLHZvaWQgMCxpKDc5ODMwNykpLG9uRXhlY3V0ZTooKT0+eygwLE10LnRyYWNrRXZlbnQpKCJHVUkiLCJSZWRvIiksZS5tb2RlbCgpLnVuZG9IaXN0b3J5KCkucmVkbygpfSxvbkRlc3Ryb3k6KCk9PntlLm1vZGVsKCkudW5kb0hpc3RvcnkoKS5yZWRvU3RhY2soKS5vbkNoYW5nZSgpLnVuc3Vic2NyaWJlQWxsKHNlKX0sZGlzYWJsZWQ6ITAsaG90a2V5R3JvdXA6dCxob3RrZXlIYXNoOksuTW9kaWZpZXJzLk1vZCs4OSxpc1JlcGVhdEFjY2VwdGVkOiEwfX0pO2UubW9kZWwoKS51bmRvSGlzdG9yeSgpLnJlZG9TdGFjaygpLm9uQ2hhbmdlKCkuc3Vic2NyaWJlKHNlLCgoKT0+c2UudXBkYXRlKHtkaXNhYmxlZDplLm1vZGVsKCkudW5kb0hpc3RvcnkoKS5yZWRvU3RhY2soKS5pc0VtcHR5KCl9KSkpO2NvbnN0IG5lPXtpbnZlcnRTZXJpZXNTY2FsZTpvLGF1dG9TZXJpZXNTY2FsZTphLGxvY2tTZXJpZXNTY2FsZTpsLHJlZ3VsYXJTZXJpZXNTY2FsZTpjLHBlcmNlbnRTZXJpZXNTY2FsZTpkLGluZGV4ZWRUbzEwMFNlcmllc1NjYWxlOnUsbG9nU2VyaWVzU2NhbGU6XyxhcHBseVRpbWVab25lOm0sc3ltYm9sU2VhcmNoOm5ldyBlcy5BY3Rpb24oe2FjdGlvbklkOiJDaGFydC5EaWFsb2dzLlNob3dDaGFuZ2VTeW1ib2wiLG9wdGlvbnM6e2xhYmVsOigwLGltLmFwcGVuZEVsbGlwc2lzKShwLnQobnVsbCx2b2lkIDAsaSg2OTI3NjcpKSksc3RhdE5hbWU6IkNoYW5nZVN5bWJvbCIsb25FeGVjdXRlOigpPT57KDAsRXQuc2hvd0RpYWxvZykoe2RlZmF1bHRWYWx1ZToiIix0cmFja1Jlc3VsdHNPcHRpb25zOnt0cmFja1Jlc3VsdHM6ISgwLHEuaXNGZWF0dXJlc2V0RW5hYmxlZCkoIndpZGdldCIpLGVtcHR5U2VhcmNoVHlwZToiZW1wdHlfcmVzdWx0X19zdXBlcmNoYXJ0cyJ9LGVuYWJsZU9wdGlvbnNDaGFpbjooMCxxLmlzRmVhdHVyZXNldEVuYWJsZWQpKCJzeW1ib2xfc2VhcmNoX29wdGlvbl9jaGFpbl9zZWxlY3RvciIpLHNlYXJjaFR5cGU6InN1cGVyY2hhcnRzIn0pfX19KSxjaGFuZ2VJbnRlcnZhbDp5bShlKSx0aW1lU2NhbGVSZXNldDpTLGluc2VydEluZGljYXRvcjp2LGNvbXBhcmVPckFkZDp5LGNoYXJ0UHJvcGVydGllczpiLG1haW5TZXJpZXNQcm9wZXJ0aWVzQWN0aW9uOncsc2NhbGVzUHJvcGVydGllczpDLGxpbmVUb2dnbGVMb2NrOlAsc2VyaWVzSGlkZTp4LHN0dWR5SGlkZTp4LGxpbmVIaWRlOngsc2NhbGVTZXJpZXNPbmx5Ok0sZHJhd2luZ1Rvb2xiYXJBY3Rpb246SSxzdGF5SW5EcmF3aW5nTW9kZUFjdGlvbjpMLGhpZGVBbGxNYXJrczpBLHNob3dTZXJpZXNMYXN0VmFsdWU6RCxzaG93U3ltYm9sTGFiZWxzQWN0aW9uOkUsc2hvd1N0dWR5TGFzdFZhbHVlOlYsc2hvd1N0dWR5UGxvdE5hbWVzQWN0aW9uOk4sc2hvd0hpZ2hMb3dQcmljZUxhYmVsczpXLHNob3dIaWdoTG93UHJpY2VMaW5lczpGLHNob3dDb3VudGRvd246SCxhZGRQbHVzQnV0dG9uOnosc2hvd1N5bWJvbEluZm9EaWFsb2c6VSxtZXJnZUxlZnRTY2FsZXNBY3Rpb246RyxtZXJnZVJpZ2h0U2NhbGVzQWN0aW9uOmosbW92ZVNjYWxlVG9MZWZ0OiQsbW92ZVNjYWxlVG9SaWdodDpZLGNoYXJ0UmVzZXQ6WCxzZXNzaW9uQnJlYWtzOmVlLHNob3dQcmljZUxpbmU6dGUsdW5kbzppZSxyZWRvOnNlfTtpZihuLmdvVG9EYXRlRW5hYmxlZCYmKG5lLmdvdG9EYXRlPW5ldyBlcy5BY3Rpb24oe2FjdGlvbklkOiJDaGFydC5EaWFsb2dzLlNob3dHb1RvRGF0ZSIsb3B0aW9uczp7bGFiZWw6KDAsaW0uYXBwZW5kRWxsaXBzaXMpKHAudChudWxsLHZvaWQgMCxpKDc0NTk5OCkpKSwKc3RhdE5hbWU6IkdvVG9EYXRlIixvbkV4ZWN1dGU6KCk9PigwLGdtLnNob3dHb1RvRGF0ZURpYWxvZykoZS5jaGFydFdpZGdldENvbGxlY3Rpb24oKS5hY3RpdmVDaGFydFdpZGdldC52YWx1ZSgpKSxob3RrZXlHcm91cDp0LGhvdGtleUhhc2g6Sy5Nb2RpZmllcnMuQWx0KzcxfX0pKSwoMCxxLmlzRmVhdHVyZXNldEVuYWJsZWQpKCJzaG93X29iamVjdF90cmVlIikpe2NvbnN0IHQ9bmV3IGguV2F0Y2hlZFZhbHVlKCExKSxzPXt9O2xldCBuO3tjb25zdCBlPSgpPT57d2luZG93LndpZGdldGJhciYmKG49ZT0+dC5zZXRWYWx1ZShlKSx3aW5kb3cud2lkZ2V0YmFyLnZpc2libGUoKS5zdWJzY3JpYmUobix7Y2FsbFdpdGhMYXN0OiEwfSkpfTt3aW5kb3cud2lkZ2V0YmFyP2UoKTp3aW5kb3cuVHJhZGluZ1ZpZXcucmlnaHRXaWRnZXRCYXJTZXR0bGVkPy5zdWJzY3JpYmUocywodD0+e3QmJmUoKX0pLCEwKX1jb25zdCByPSgpPT57Y29uc3QgZT1wLnQobnVsbCx7Y29udGV4dDoiQWN0aW9uIGxhYmVsIn0saSg2NDY4NDgpKTtyZXR1cm4gdC52YWx1ZSgpP2U6KDAsaW0uYXBwZW5kRWxsaXBzaXMpKGUpfTtuZS5wYW5lT2JqZWN0VHJlZT1uZXcgZXMuQWN0aW9uKHthY3Rpb25JZDoiQ2hhcnQuT2JqZWN0VHJlZS5TaG93IixvcHRpb25zOntsYWJlbDpyKCksc3RhdE5hbWU6Ik9iamVjdHNUcmVlIixvbkV4ZWN1dGU6KCk9PmUuc2hvd09iamVjdHNUcmVlUGFuZWxPckRpYWxvZygpLG9uRGVzdHJveTooKT0+e3dpbmRvdy53aWRnZXRiYXI/LnZpc2libGUoKS51bnN1YnNjcmliZShuKSx3aW5kb3cuVHJhZGluZ1ZpZXcucmlnaHRXaWRnZXRCYXJTZXR0bGVkPy51bnN1YnNjcmliZUFsbChzKSx0LmRlc3Ryb3koKX19fSksdC5zdWJzY3JpYmUoKCgpPT57bmUucGFuZU9iamVjdFRyZWU/LnVwZGF0ZSh7bGFiZWw6cigpfSl9KSl9aWYoKDAscS5pc0ZlYXR1cmVzZXRFbmFibGVkKSgicHJvcGVydHlfcGFnZXMiKSYmKG5lLmZvcm1hdD1uZXcgYXMuQWN0aW9uV2l0aFN0YW5kYXJkSWNvbih7YWN0aW9uSWQ6IkNoYXJ0LlNlbGVjdGVkT2JqZWN0LlNob3dTZXR0aW5nc0RpYWxvZyIsb3B0aW9uczp7bGFiZWw6KDAsaW0uYXBwZW5kRWxsaXBzaXMpKHAudChudWxsLHZvaWQgMCxpKDczMDU4NikpKSxpY29uSWQ6IlNldHRpbmdzIixzdGF0TmFtZToiRWRpdFNlbGVjdGVkT2JqZWN0IixvbkV4ZWN1dGU6KCk9PmUuc2hvd1NlbGVjdGVkU291cmNlc1Byb3BlcnRpZXMoKX19KSksIWUucmVhZE9ubHkoKSl7Y29uc3Qgcz1mdW5jdGlvbihlKXtjb25zdCB0PWZtKGUpLGk9bmV3IGVzLkFjdGlvbih7YWN0aW9uSWQ6IkNoYXJ0LlJlbW92ZUFsbExpbmVUb29scyIsb3B0aW9uczp7bGFiZWw6dC5kcmF3aW5ncy5sYWJlbCxkaXNhYmxlZDp0LmRyYXdpbmdzLmRpc2FibGVkLHN0YXROYW1lOiJSZW1vdmVBbGxEcmF3aW5nVG9vbHMiLG9uRXhlY3V0ZTooKT0+ZS5yZW1vdmVBbGxEcmF3aW5nVG9vbHMoKSxvbkRlc3Ryb3k6KCk9PmUubW9kZWwoKS5tb2RlbCgpLmRhdGFTb3VyY2VDb2xsZWN0aW9uQ2hhbmdlZCgpLnVuc3Vic2NyaWJlQWxsKGUpfX0pLHM9bmV3IGVzLkFjdGlvbih7YWN0aW9uSWQ6IkNoYXJ0LlJlbW92ZUFsbEluZGljYXRvcnMiLG9wdGlvbnM6e2xhYmVsOnQuc3R1ZGllcy5sYWJlbCxkaXNhYmxlZDp0LnN0dWRpZXMuZGlzYWJsZWQsc3RhdE5hbWU6IlJlbW92ZUFsbEluZGljYXRvcnMiLG9uRXhlY3V0ZTooKT0+ZS5yZW1vdmVBbGxTdHVkaWVzKCl9fSksbj1uZXcgZXMuQWN0aW9uKHthY3Rpb25JZDoiQ2hhcnQuUmVtb3ZlQWxsSW5kaWNhdG9yc0FuZExpbmVUb29scyIsb3B0aW9uczp7bGFiZWw6dC5hbGwubGFiZWwsZGlzYWJsZWQ6dC5hbGwuZGlzYWJsZWQsc3RhdE5hbWU6IlJlbW92ZUFsbEluZGljYXRvcnNBbmREcmF3aW5nVG9vbHMiLG9uRXhlY3V0ZTooKT0+ZS5yZW1vdmVBbGxTdHVkaWVzRHJhd2luZ1Rvb2xzKCl9fSk7cmV0dXJuIGUubW9kZWwoKS5tb2RlbCgpLmRhdGFTb3VyY2VDb2xsZWN0aW9uQ2hhbmdlZCgpLnN1YnNjcmliZShlLCgoKT0+e2NvbnN0e3N0dWRpZXM6dCxkcmF3aW5nczpyLGFsbDpvfT1mbShlKTtzLnVwZGF0ZSh7ZGlzYWJsZWQ6dC5kaXNhYmxlZCxsYWJlbDp0LmxhYmVsfSksaS51cGRhdGUoe2Rpc2FibGVkOnIuZGlzYWJsZWQsbGFiZWw6ci5sYWJlbH0pLG4udXBkYXRlKHtkaXNhYmxlZDpvLmRpc2FibGVkLGxhYmVsOm8ubGFiZWx9KX0pKSx7ZHJhd2luZ3M6aSxzdHVkaWVzOnMsYWxsOm59fShlKTtuZS5wYW5lUmVtb3ZlQWxsU3R1ZGllcz1zLnN0dWRpZXMsbmUucGFuZVJlbW92ZUFsbERyYXdpbmdUb29scz1zLmRyYXdpbmdzLG5lLnBhbmVSZW1vdmVBbGxTdHVkaWVzRHJhd2luZ1Rvb2xzPXMuYWxsLG5lLmFwcGx5U3R1ZGllc1RvQWxsQ2hhcnRzPW5ldyBlcy5BY3Rpb24oe2FjdGlvbklkOiJDaGFydC5BcHBseUluZGljYXRvcnNUb0FsbENoYXJ0cyIsb3B0aW9uczp7bGFiZWw6cC50KG51bGwsdm9pZCAwLGkoOTI0MTc2KSksc3RhdE5hbWU6IkFwcGx5SW5kaWNhdG9yc1RvQWxsQ2hhcnRzIixvbkV4ZWN1dGU6KCk9PmUuY2hhcnRXaWRnZXRDb2xsZWN0aW9uKCkuYXBwbHlJbmRpY2F0b3JzVG9BbGxDaGFydHMoZSl9fSksbmUuc3R1ZHlSZW1vdmU9bmUubGluZVJlbW92ZT1uZXcgYXMuQWN0aW9uV2l0aFN0YW5kYXJkSWNvbih7YWN0aW9uSWQ6IkNoYXJ0LlNlbGVjdGVkT2JqZWN0LlJlbW92ZSIsb3B0aW9uczp7bGFiZWw6cC50KG51bGwsdm9pZCAwLGkoOTExMjYpKSxpY29uSWQ6IkNoYXJ0LlJlbW92ZVNlbGVjdGVkT2JqZWN0IixzdGF0TmFtZToiUmVtb3ZlU2VsZWN0ZWRPYmplY3QiLG9uRXhlY3V0ZTooKT0+eyhlLmNoYXJ0V2lkZ2V0Q29sbGVjdGlvbigpLmFjdGl2ZUNoYXJ0V2lkZ2V0LnZhbHVlKCk/P2UpLnJlbW92ZVNlbGVjdGVkU291cmNlcygpfSxob3RrZXlHcm91cDp0LGhvdGtleUhhc2g6Sy5pc01hY0tleWJvYXJkPzg6NDZ9fSl9aWYoISgwLEoub25XaWRnZXQpKCkmJigwLHEuaXNGZWF0dXJlc2V0RW5hYmxlZCkoInRleHRfbm90ZXMiKSYmKG5lLmFkZFRvVGV4dE5vdGVzPWZ1bmN0aW9uKGUpe2NvbnN0IHQ9ZS5zeW1ib2xXVigpLnNwYXduKCkscz1uZXcgZXMuQWN0aW9uKHsKYWN0aW9uSWQ6Ik5vdGUuQ3JlYXRlIixvcHRpb25zOntpY29uSWQ6IlRleHROb3RlLkFkZCIsaWNvbjpKXy5pY29ucy5nZXQoIlRleHROb3RlLkFkZCIpLGxhYmVsOnAudChudWxsLHZvaWQgMCxpKDIzMDIyNCkpLHN0YXROYW1lOiJBZGRUb1RleHROb3RlcyIsb25FeGVjdXRlOigpPT57d2luZG93LnJ1bk9yU2lnbkluKCgoKT0+e3dpbmRvdy53aWRnZXRiYXI/LnNldFBhZ2UoImJhc2UiKSwoMCxYXy5jcmVhdGVTeW1ib2xOb3RlKShlLnN5bWJvbFdWKCkudmFsdWUoKSwoMCxZXy5pc01vYmlsZSkoKSl9KSx7c291cmNlOiJBZGQgdGV4dCBub3RlIGluIGNoYXJ0IGNvbnRleHQgbWVudSJ9KX0saG90a2V5SGFzaDpLLk1vZGlmaWVycy5BbHQrNzgsaG90a2V5R3JvdXA6ZS5ob3RrZXlzKCksb25EZXN0cm95OigpPT50LmRlc3Ryb3koKX19KTtyZXR1cm4gdC5zdWJzY3JpYmUoKHQ9Pntjb25zdCBuPWUubW9kZWwoKS5tb2RlbCgpLm1haW5TZXJpZXMoKS5zeW1ib2xJbmZvKCk/LnByb19uYW1lLHI9ZS5tb2RlbCgpLm1vZGVsKCkuc3ltYm9sQWxpYXNTZXJ2aWNlKCk/LmdldEFsaWFzQnlQcm9OYW1lKG4/P3QpLG89KDAsWl8uc2FmZVNob3J0TmFtZSkodCk7cy51cGRhdGUoe2xhYmVsOnAudChudWxsLHZvaWQgMCxpKDM0MzMzMSkpLmZvcm1hdCh7c3ltYm9sOnI/LmFsaWFzTmFtZT8/b30pfSl9KSx7Y2FsbFdpdGhMYXN0OiEwfSksc30oZSkpLHdpbmRvdy5pc19hdXRoZW50aWNhdGVkJiYoISgwLEouaXNEZXNrdG9wQXBwKSgpfHwoMCwkXy5kZXNrdG9wVmVyc2lvbklzTGVzcykoIjEuMC4xMCIpfHwoMCxKLmlzRGVza3RvcEFwcCkoKSYmISgwLCRfLmRlc2t0b3BWZXJzaW9uSXNMZXNzKSgiMS4wLjExIikpKXtjb25zdCB0PW5lLmFwcGx5Q29sb3JUaGVtZT1uZXcgZXMuQWN0aW9uKHthY3Rpb25JZDoiQ2hhcnQuVGhlbWUuQXBwbHkiLG9wdGlvbnM6e25hbWU6ImFwcGx5LWNvbG9yLXRoZW1lIixsYWJlbDpwLnQobnVsbCx2b2lkIDAsaSgzNTQ2NzYpKSxzdWJJdGVtczpbbmV3IGVzLkFjdGlvbih7YWN0aW9uSWQ6IkxvYWRpbmciLG9wdGlvbnM6e2xhYmVsOnAudChudWxsLHZvaWQgMCxpKDM3MjczMikpfX0pXSxzdGF0TmFtZToiQ29sb3JUaGVtZSIsb25EZXN0cm95OigpPT57d2luZG93LmxvZ2luU3RhdGVDaGFuZ2UudW5zdWJzY3JpYmVBbGwodCksay50aGVtZUxpc3RDaGFuZ2VkLnVuc3Vic2NyaWJlQWxsKHQpfX0sb3B0aW9uc0xvYWRlcjooKT0+dW0oZSl9KSxzPSgpPT5wbShlLG5lLmFwcGx5Q29sb3JUaGVtZSk7d2luZG93LmxvZ2luU3RhdGVDaGFuZ2Uuc3Vic2NyaWJlKHQscyksay50aGVtZUxpc3RDaGFuZ2VkLnN1YnNjcmliZSh0LHMpfSgwLHEuaXNGZWF0dXJlc2V0RW5hYmxlZCkoInNob3dfc291cmNlX2NvZGUiKSYmKG5lLnZpZXdTb3VyY2VDb2RlPW5ldyBlcy5BY3Rpb24oe2FjdGlvbklkOiJDaGFydC5JbmRpY2F0b3IuUGluZVNvdXJjZSIsb3B0aW9uczp7bGFiZWw6KDAsaW0uYXBwZW5kRWxsaXBzaXMpKHAudChudWxsLHZvaWQgMCxpKDc5MzQwMikpKSxzdGF0TmFtZToiT3BlblNlbGVjdGVkT2JqZWN0U291cmNlIixvbkV4ZWN1dGU6KCk9Pntjb25zdFtlXT1zLnNlbGVjdGlvbigpLmRhdGFTb3VyY2VzKCk7aWYoISgwLHRpLmlzU3R1ZHkpKGUpKXJldHVybjtjb25zdCB0PWUubWV0YUluZm8oKTt0JiZ0LnNjcmlwdElkUGFydCYmdC5waW5lJiYoMCxfbS5hY3RpdmF0ZVBpbmVFZGl0b3JEaWFsb2cpKHtzY3JpcHRJbmZvOntzY3JpcHQ6e3NjcmlwdElkUGFydDp0LnNjcmlwdElkUGFydCx2ZXJzaW9uOnQucGluZS52ZXJzaW9ufX0sb3BlblNvdXJjZUlkOiJzdHVkeV9tZW51In0pLmNhdGNoKGVtLnNob3dTY3JpcHRJbmZvRXJyb3JOb3RpY2VEaWFsb2cpfX19KSksbmUuaGlkZUFsbExpbmVUb29scz1uZXcgaXMoe2FjdGlvbklkOiJDaGFydC5Ub2dnbGVWaXNpYmlsaXR5LkFsbExpbmVUb29scyIsb3B0aW9uczp7bGFiZWw6cC50KG51bGwsdm9pZCAwLGkoOTg4MjYwKSksY2hlY2thYmxlOiEwLHN0YXROYW1lOiJUb2dnbGVIaWRlTWFya3NPbkJhcnMiLGhvdGtleUdyb3VwOmUuaG90a2V5cygpLGhvdGtleUhhc2g6Sy5Nb2RpZmllcnMuTW9kK0suTW9kaWZpZXJzLkFsdCs3Mn19LHtwcm9wZXJ0eTpULmhpZGVNYXJrc09uQmFycygpLHVuZG9Nb2RlbDpzLHVuZG9UZXh0OlRtLGNhbGxiYWNrOigpPT4oMCxSdC50b2dnbGVIaWRlTW9kZSkoKX0pLG5lLm9wZW5UYWJsZVZpZXc9bmV3IGVzLkFjdGlvbih7YWN0aW9uSWQ6IkNoYXJ0Lk9wZW5UYWJsZVZpZXciLG9wdGlvbnM6e2xhYmVsOnAudChudWxsLHZvaWQgMCxpKDIzODMzNikpLHN0YXROYW1lOiJUYWJsZSB2aWV3IixvbkV4ZWN1dGU6YXN5bmMoKT0+e2NvbnN0e3Nob3dDaGFydFRhYmxlVmlld0RpYWxvZzp0fT1hd2FpdCBQcm9taXNlLmFsbChbaS5lKDIwMzM3KSxpLmUoMjkyOTYpLGkuZSg2MDA2MiksaS5lKDQ2OTA3KSxpLmUoMjAzNTQpLGkuZSgxMjM4NSksaS5lKDk0OTQ4KSxpLmUoMzYyMjIpLGkuZSgyOTUzNiksaS5lKDMyODE2KSxpLmUoNTE4NCksaS5lKDU2MjUyKSxpLmUoMTE0NjEpLGkuZSgyNDU4MSksaS5lKDk2NTg3KSxpLmUoMjc1MTcpLGkuZSg5ODA4NCksaS5lKDcwODE1KSxpLmUoNTAyMjEpLGkuZSgzMzUxNSksaS5lKDE0NjI1KSxpLmUoOTM0MTYpLGkuZSg2NTcpLGkuZSg2MDcwKSxpLmUoNzY2NSksaS5lKDUyOTIwKSxpLmUoNjI2MDApLGkuZSg3NTIxNyksaS5lKDk4Njk2KSxpLmUoNzQ2MzYpLGkuZSg3MTk5MSksaS5lKDQ5OTk3KSxpLmUoMzIzODcpLGkuZSgyMzc0MyksaS5lKDY2MjM1KSxpLmUoMzY5MzgpLGkuZSg2NzkzMCksaS5lKDQ2NjUwKV0pLnRoZW4oaS5iaW5kKGksNzI1OTE4KSk7dCh7d2lkZ2V0OmUuY2hhcnRXaWRnZXRDb2xsZWN0aW9uKCkuYWN0aXZlQ2hhcnRXaWRnZXR9KX19fSk7Y29uc3QgcmU9KDAsUGUuaXNGZWF0dXJlRW5hYmxlZCkoInN1cHBvcnRfb3Zlcm5pZ2h0X3Nlc3Npb24iKSxvZT1zLm1haW5TZXJpZXMoKTt7Y29uc3QgZT1uZS5zaG93UHJlUG9zdE1hcmtldFByaWNlTGFiZWw9bmV3IGlzKHsKYWN0aW9uSWQ6IkNoYXJ0LlByaWNlU2NhbGUuTGFiZWxzLlRvZ2dsZVByZVBvc3RNYXJrZXRMYWJlbHNWaXNpYmlsaXR5IixvcHRpb25zOntsYWJlbDpyZT9wLnQobnVsbCx2b2lkIDAsaSg0NTgyNjIpKTpwLnQobnVsbCx2b2lkIDAsaSg1NjUxNjEpKSxjaGVja2FibGU6ITAsY2hlY2tlZDohMSxkaXNhYmxlZDohKG9lLmlzUHJlUG9zdE1hcmtldFByaWNlc0F2YWlsYWJsZVByb3BlcnR5KCkudmFsdWUoKXx8b2UuaXNPdmVybmlnaHRNYXJrZXRQcmljZXNBdmFpbGFibGVQcm9wZXJ0eSgpLnZhbHVlKCkpLHN0YXROYW1lOiJUb2dnbGVQcmVQb3N0TWFya2V0UHJpY2VMYWJlbCIsb25EZXN0cm95OigpPT57b2UuaXNQcmVQb3N0TWFya2V0UHJpY2VzQXZhaWxhYmxlUHJvcGVydHkoKS51bnN1YnNjcmliZUFsbChlKSxvZS5pc092ZXJuaWdodE1hcmtldFByaWNlc0F2YWlsYWJsZVByb3BlcnR5KCkudW5zdWJzY3JpYmVBbGwoZSl9fX0se3Byb3BlcnR5OnIuY2hpbGRzKCkuc2NhbGVzUHJvcGVydGllcy5jaGlsZHMoKS5zaG93UHJlUG9zdE1hcmtldFByaWNlTGFiZWwsdW5kb01vZGVsOnMsdW5kb1RleHQ6cmU/Vm06Um19KTtvZS5pc1ByZVBvc3RNYXJrZXRQcmljZXNBdmFpbGFibGVQcm9wZXJ0eSgpLnN1YnNjcmliZShlLCh0PT57ZS51cGRhdGUoe2Rpc2FibGVkOiF0LnZhbHVlKCl9KX0pKSxvZS5pc092ZXJuaWdodE1hcmtldFByaWNlc0F2YWlsYWJsZVByb3BlcnR5KCkuc3Vic2NyaWJlKGUsKHQ9PntlLnVwZGF0ZSh7ZGlzYWJsZWQ6IXQudmFsdWUoKX0pfSkpfXtjb25zdCBlPW5lLnNob3dQcmVQb3N0TWFya2V0UHJpY2VMaW5lPW5ldyBpcyh7YWN0aW9uSWQ6IkNoYXJ0LkxpbmVzLlRvZ2dsZVByZVBvc3RNYXJrZXRQcmljZUxpbmVWaXNpYmlsaXR5IixvcHRpb25zOntsYWJlbDpyZT9wLnQobnVsbCx2b2lkIDAsaSg0NjY4NTUpKTpwLnQobnVsbCx2b2lkIDAsaSg0MjExMCkpLGNoZWNrYWJsZTohMCxjaGVja2VkOiExLGRpc2FibGVkOiEob2UuaXNQcmVQb3N0TWFya2V0UHJpY2VzQXZhaWxhYmxlUHJvcGVydHkoKS52YWx1ZSgpfHxvZS5pc092ZXJuaWdodE1hcmtldFByaWNlc0F2YWlsYWJsZVByb3BlcnR5KCkudmFsdWUoKSksc3RhdE5hbWU6IlRvZ2dsZVByZVBvc3RNYXJrZXRQcmljZUxpbmUiLG9uRGVzdHJveTooKT0+e29lLmlzUHJlUG9zdE1hcmtldFByaWNlc0F2YWlsYWJsZVByb3BlcnR5KCkudW5zdWJzY3JpYmVBbGwoZSksb2UuaXNPdmVybmlnaHRNYXJrZXRQcmljZXNBdmFpbGFibGVQcm9wZXJ0eSgpLnVuc3Vic2NyaWJlQWxsKGUpfX19LHtwcm9wZXJ0eTpzLm1haW5TZXJpZXMoKS5wcm9wZXJ0aWVzKCkuY2hpbGRzKCkucHJlUG9zdE1hcmtldC5jaGlsZHMoKS52aXNpYmxlLHVuZG9Nb2RlbDpzLHVuZG9UZXh0OnJlP05tOkJtfSk7b2UuaXNQcmVQb3N0TWFya2V0UHJpY2VzQXZhaWxhYmxlUHJvcGVydHkoKS5zdWJzY3JpYmUoZSwodD0+e2UudXBkYXRlKHtkaXNhYmxlZDohdC52YWx1ZSgpfSl9KSksb2UuaXNPdmVybmlnaHRNYXJrZXRQcmljZXNBdmFpbGFibGVQcm9wZXJ0eSgpLnN1YnNjcmliZShlLCh0PT57ZS51cGRhdGUoe2Rpc2FibGVkOiF0LnZhbHVlKCl9KX0pKX17Y29uc3Qgbz1uZS5zaG93U2VyaWVzUHJldkNsb3NlVmFsdWU9bmV3IGlzKHthY3Rpb25JZDoiQ2hhcnQuUHJpY2VTY2FsZS5MYWJlbHMuVG9nZ2xlU3ltYm9sUHJldkNsb3NlVmFsdWVWaXNpYmlsaXR5IixvcHRpb25zOntsYWJlbDpwLnQobnVsbCx2b2lkIDAsaSg4ODIxNSkpLGNoZWNrYWJsZTohMCxjaGVja2VkOiExLHN0YXROYW1lOiJUb2dnbGVTeW1ib2xQcmV2Q2xvc2VWYWx1ZSIsb25EZXN0cm95OigpPT5zLm1haW5TZXJpZXMoKS5vblJlc3RhcnRlZCgpLnVuc3Vic2NyaWJlQWxsKG8pfX0se3Byb3BlcnR5OnIuY2hpbGRzKCkuc2NhbGVzUHJvcGVydGllcy5jaGlsZHMoKS5zaG93U2VyaWVzUHJldkNsb3NlVmFsdWUsdW5kb01vZGVsOnMsdW5kb1RleHQ6TW19KTtzLm1haW5TZXJpZXMoKS5vblJlc3RhcnRlZCgpLnN1YnNjcmliZShvLCgoKT0+e28udXBkYXRlKHtkaXNhYmxlZDpzLm1haW5TZXJpZXMoKS5pc0RXTSgpfSl9KSk7Y29uc3QgYT1uZS5zaG93U2VyaWVzUHJldkNsb3NlTGluZT1uZXcgaXMoe2FjdGlvbklkOiJDaGFydC5MaW5lcy5Ub2dnbGVTZXJpZXNQcmV2Q2xvc2VMaW5lVmlzaWJpbGl0eSIsb3B0aW9uczp7bGFiZWw6cC50KG51bGwsdm9pZCAwLGkoNzk0MzMxKSksY2hlY2thYmxlOiEwLGNoZWNrZWQ6ITEsc3RhdE5hbWU6IlRvZ2dsZVN5bWJvbFByZXZDbG9zZUxpbmUiLG9uRGVzdHJveTooKT0+cy5tYWluU2VyaWVzKCkub25SZXN0YXJ0ZWQoKS51bnN1YnNjcmliZUFsbChhKX19LHtwcm9wZXJ0eTpzLm1haW5TZXJpZXMoKS5wcm9wZXJ0aWVzKCkuY2hpbGRzKCkuc2hvd1ByZXZDbG9zZVByaWNlTGluZSx1bmRvTW9kZWw6cyx1bmRvVGV4dDpJbX0pO3MubWFpblNlcmllcygpLm9uUmVzdGFydGVkKCkuc3Vic2NyaWJlKGEsKCgpPT57YS51cGRhdGUoe2Rpc2FibGVkOnMubWFpblNlcmllcygpLmlzRFdNKCl9KX0pKSxuZS5zaG93QmlkQXNrTGFiZWxzPW5ldyBpcyh7YWN0aW9uSWQ6IkNoYXJ0LlByaWNlU2NhbGUuTGFiZWxzLlRvZ2dsZUJpZEFza0xhYmVsc1Zpc2liaWxpdHkiLG9wdGlvbnM6e2xhYmVsOnAudChudWxsLHZvaWQgMCxpKDIzMTUwNCkpLGNoZWNrYWJsZTohMCxjaGVja2VkOiExLHN0YXROYW1lOiJUb2dnbGVCaWRBc2tMYWJlbHMifX0se3Byb3BlcnR5OnIuY2hpbGRzKCkuc2NhbGVzUHJvcGVydGllcy5jaGlsZHMoKS5zaG93QmlkQXNrTGFiZWxzLHVuZG9Nb2RlbDpzLHVuZG9UZXh0OkRtfSksbmUuc2hvd0JpZEFza0xpbmVzPW5ldyBpcyh7YWN0aW9uSWQ6IkNoYXJ0LkxpbmVzLlRvZ2dsZUJpZEFza0xpbmVzVmlzaWJpbGl0eSIsb3B0aW9uczp7bGFiZWw6cC50KG51bGwsdm9pZCAwLGkoOTE5Mzc2KSksY2hlY2thYmxlOiEwLGNoZWNrZWQ6ITEsc3RhdE5hbWU6IlRvZ2dsZUJpZEFza0xpbmVzIn19LHtwcm9wZXJ0eTpzLm1haW5TZXJpZXMoKS5wcm9wZXJ0aWVzKCkuY2hpbGRzKCkuYmlkQXNrLmNoaWxkcygpLnZpc2libGUsdW5kb01vZGVsOnMsdW5kb1RleHQ6RW19KQo7Y29uc3QgbD1lLmNoYXJ0V2lkZ2V0Q29sbGVjdGlvbigpLmFjdGl2ZUNoYXJ0Q2FuQmVNb3ZlZCgpLnNwYXduKCksYz1uZS5tb3ZlQ2hhcnRBY3Rpb249bmV3IGVzLkFjdGlvbih7YWN0aW9uSWQ6IkNoYXJ0Lk1vdmVDaGFydEluTGF5b3V0IixvcHRpb25zOntsYWJlbDpwLnQobnVsbCx2b2lkIDAsaSgyODgzOTYpKSxzdWJJdGVtczpbbmV3IGVzLkFjdGlvbih7YWN0aW9uSWQ6IkNoYXJ0Lk1vdmVDaGFydEluTGF5b3V0LkZvcndhcmQiLG9wdGlvbnM6e2xhYmVsOnAudChudWxsLHZvaWQgMCxpKDU5NTgzOCkpLHN0YXROYW1lOiJNb3ZlQ2hhcnRSaWdodCIsb25FeGVjdXRlOigpPT5lLmNoYXJ0V2lkZ2V0Q29sbGVjdGlvbigpLm1vdmVBY3RpdmVDaGFydFdpdGhVbmRvKCExKX19KSxuZXcgZXMuQWN0aW9uKHthY3Rpb25JZDoiQ2hhcnQuTW92ZUNoYXJ0SW5MYXlvdXQuQmFjayIsb3B0aW9uczp7bGFiZWw6cC50KG51bGwsdm9pZCAwLGkoNTAwMTQ3KSksc3RhdE5hbWU6Ik1vdmVDaGFydExlZnQiLG9uRXhlY3V0ZTooKT0+ZS5jaGFydFdpZGdldENvbGxlY3Rpb24oKS5tb3ZlQWN0aXZlQ2hhcnRXaXRoVW5kbyghMCl9fSldLG9uRGVzdHJveTooKT0+bC5kZXN0cm95KCl9fSk7aWYobC5zdWJzY3JpYmUoKGU9PmMudXBkYXRlKHtkaXNhYmxlZDohZX0pKSx7Y2FsbFdpdGhMYXN0OiEwfSksbi5hZGRUb1dhdGNobGlzdEVuYWJsZWQpe2NvbnN0IGk9e2hvdGtleUdyb3VwOnQsc3RhdE5hbWU6IkFkZFRvV2F0Y2hsaXN0In07bmUuYWRkVG9XYXRjaGxpc3Q9bmV3IGxtKGUsaSksdC5hZGQoe2Rlc2M6IkFkZCBzeW1ib2wgdG8gd2F0Y2hsaXN0Iixob3RrZXk6Sy5Nb2RpZmllcnMuTW9kK0suTW9kaWZpZXJzLkFsdCs4NyxoYW5kbGVyOigpPT4oMCxRXy5zaG93QWRkU3ltYm9sRGlhbG9nKShbdG0oZSldKX0pfX1yZXR1cm4gbmV9dmFyIHFtPWkoMzIyNjAxKSwkbT1pKDc0OTQwMik7aSgyODI3MTApO2NvbnN0IFltPSgwLGMuZ2V0TG9nZ2VyKSgiQ2hhcnRXaWRnZXQiLHtjb2xvcjoiIzYwNiJ9KSxLbT0oMCxxLmlzRmVhdHVyZXNldEVuYWJsZWQpKCJjaGFydF9jb250ZW50X292ZXJyaWRlc19ieV9kZWZhdWx0cyIpLFhtPW5ldyB5LlRyYW5zbGF0ZWRTdHJpbmcoImhpZGUge3RpdGxlfSIscC50KG51bGwsdm9pZCAwLGkoNTg5ODE1KSkpLFptPW5ldyB5LlRyYW5zbGF0ZWRTdHJpbmcoInVubG9jayB7dGl0bGV9IixwLnQobnVsbCx2b2lkIDAsaSg3NzA2MzkpKSksSm09bmV3IHkuVHJhbnNsYXRlZFN0cmluZygibG9jayB7dGl0bGV9IixwLnQobnVsbCx2b2lkIDAsaSg2MjA5MjcpKSksUW09bmV3IHkuVHJhbnNsYXRlZFN0cmluZygiY2hhbmdlIHNlc3Npb24iLHAudChudWxsLHZvaWQgMCxpKDcyMzQyNikpKTtsZXQgZWc9bnVsbDtpZihsb2NhdGlvbi5zZWFyY2gudG9Mb3dlckNhc2UoKS5pbmNsdWRlcygibG9nY2FudmFzc2F2ZXJlc3RvcmVsZWFrcyIpKXtpZighSi5pc0Nocm9tZSl0aHJvdyBuZXcgRXJyb3IoIkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCBzYXZlL3Jlc3RvcmUgbGVhayBkZXRlY3Rpb24gaXMgYXZhaWxhYmxlIGZvciBub3cgaW4gQ2hyb21lIG9ubHkiKTtpLmUoMTYxMjYpLnRoZW4oaS5iaW5kKGksNDI4OTEyKSkudGhlbigoZT0+e2UuZW5hYmxlQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEU2F2ZVJlc3RvcmVMZWFrc0RldGVjdGlvbigpLGVnPWUucmVwb3J0Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEU2F2ZVJlc3RvcmVMZWFrc30pKX1jb25zdCB0Zz17YWRkVG9XYXRjaGxpc3RFbmFibGVkOiEwLHNob3dGaW5hbmNpYWxzRW5hYmxlZDohMSxzb3VyY2VTZWxlY3Rpb25FbmFibGVkOiEwLHByb3BlcnR5UGFnZXNFbmFibGVkOiEwLHBhbmVDb250ZXh0TWVudUVuYWJsZWQ6ITAscHJpY2VTY2FsZUNvbnRleHRNZW51RW5hYmxlZDohMCxjdXJyZW5jeUNvbnZlcnNpb25FbmFibGVkOiExLHVuaXRDb252ZXJzaW9uRW5hYmxlZDohMSxnb1RvRGF0ZUVuYWJsZWQ6ITEsbWFya2V0U3RhdHVzV2lkZ2V0RW5hYmxlZDohMCxjaGFydFdhcm5pbmdXaWRnZXRFbmFibGVkOiEwLGRhdGFQcm9ibGVtV2lkZ2V0RW5hYmxlZDohMCxwYW5lQ29udHJvbHNFbmFibGVkOiEwLGlzU3ltYm9sQXZhaWxhYmxlOmU9PlByb21pc2UucmVzb2x2ZSghMCksbGVnZW5kV2lkZ2V0RW5hYmxlZDohMCxjaGFydEV2ZW50c0VuYWJsZWQ6ITAsbmV3c05vdGlmaWNhdGlvbnNFbmFibGVkOiEwLGVzZEVuYWJsZWQ6ITEsbGF0ZXN0VXBkYXRlc0VuYWJsZWQ6ITEsY29udGludW91c0NvbnRyYWN0U3dpdGNoZXNFbmFibGVkOiExLGZ1dHVyZXNDb250cmFjdEV4cGlyYXRpb25FbmFibGVkOiExLGNyb3BwZWRUaWNrTWFya3M6ITAsY291bnRkb3duRW5hYmxlZDohMCxsYXN0UHJpY2VBbmltYXRpb25FbmFibGVkOiEwLHVzZUtpbmV0aWNTY3JvbGw6Si5DaGVja01vYmlsZS5hbnkoKSxpbmRpY2F0b3JzRGlhbG9nU2hvcnRjdXRFbmFibGVkOiEwLGhhbmRsZVNjYWxlOnttb3VzZVdoZWVsOiEwLHBpbmNoOiEwLGF4aXNQcmVzc2VkTW91c2VNb3ZlOnt0aW1lOiEwLHByaWNlOiEwfX0saGFuZGxlU2Nyb2xsOnttb3VzZVdoZWVsOiEwLHByZXNzZWRNb3VzZU1vdmU6ITAsaG9yelRvdWNoRHJhZzohMCx2ZXJ0VG91Y2hEcmFnOiEwfX0saWc9KDAsR3IuZXh0cmFjdFRoZW1lZENvbG9ycykoeHQubGlnaHRUaGVtZS5jb250ZW50LmNoYXJ0UHJvcGVydGllcyx4dC5kYXJrVGhlbWUuY29udGVudC5jaGFydFByb3BlcnRpZXMpO3ZhciBzZztmdW5jdGlvbiBuZyhlLHQsaSxzPTApe2NvbnN0IG49dC5tYWluU2VyaWVzKCkuc3luY01vZGVsKCkscj1lLm1haW5TZXJpZXMoKS5zeW5jTW9kZWwoKTtsZXQgbz1pO2lmKG51bGwhPT1uJiZudWxsIT09cil7Y29uc3QgdD1lLmNyZWF0ZVN5bmNQb2ludChuLnN5bmNTb3VyY2VUYXJnZXQoKSxyLnN5bmNTb3VyY2VUYXJnZXQoKSk7MCE9PXMmJihpPW4ucHJvamVjdFRpbWUoaSxzKSksbz10LnNvdXJjZVRpbWVUb1RhcmdldFRpbWUoaSl9cmV0dXJuIGUudGltZVNjYWxlKCkucG9pbnRzKCkucm91Z2hJbmRleChvLHImJnIuZGlzdGFuY2UuYmluZChyKSl9IWZ1bmN0aW9uKGUpewplW2UuU2hvd1RpbWVBeGlzTWluQ2hhcnRIZWlnaHQ9NjFdPSJTaG93VGltZUF4aXNNaW5DaGFydEhlaWdodCIsZVtlLlNob3dQcmljZUF4aXNNaW5DaGFydFdpZHRoPTEwMl09IlNob3dQcmljZUF4aXNNaW5DaGFydFdpZHRoIn0oc2d8fChzZz17fSkpO2NvbnN0IHJnPW5ldyBTZXQoWyJWb2x1bWVAdHYtYmFzaWNzdHVkaWVzIiwiQ29tcGFyZUB0di1iYXNpY3N0dWRpZXMiLCJPdmVybGF5QHR2LWJhc2ljc3R1ZGllcyIsIkRpdmlkZW5kc0B0di1iYXNpY3N0dWRpZXMiLCJFYXJuaW5nc0B0di1iYXNpY3N0dWRpZXMiLCJTcGxpdHNAdHYtYmFzaWNzdHVkaWVzIiwiQmFyU2V0Q29udGludW91c1JvbGxEYXRlc0B0di1jb3Jlc3R1ZGllcyIsIlNlc3Npb25zQHR2LWJhc2ljc3R1ZGllcyIsIkluYWN0aXZpdHlHYXBzQHR2LWJhc2ljc3R1ZGllcyIsIlZiUFNlc3Npb25zUm91Z2hAdHYtdm9sdW1lYnlwcmljZSIsIkFuY2hvcmVkVldBUEB0di1iYXNpY3N0dWRpZXMiLCJSZWdyZXNzaW9uVHJlbmRAdHYtYmFzaWNzdHVkaWVzIiwiVmJQQW5jaG9yZWRAdHYtYmFzaWNzdHVkaWVzIiwiVmJQRml4ZWRAdHYtYmFzaWNzdHVkaWVzIiwiVmJQRml4ZWRAdHYtdm9sdW1lYnlwcmljZSIsIkxvbmdTaG9ydFBvc2l0aW9uQHR2LWJhc2ljc3R1ZGllcyIsIlJlcGxheVN0cmF0ZWd5QHR2LXNjcmlwdGluZyJdKSxvZz0oMCxidC5kZWZhdWx0KSgoKCk9Pnt3aW5kb3cuQ2hhcnRBcGlJbnN0YW5jZS5zZXRJc05vbkNvdW50ZWRTdHVkeUZuKChlPT5yZy5oYXMoZSkpKX0pKTt2YXIgYWc7IWZ1bmN0aW9uKGUpe2UuQ2FuY2VsZWQ9ImNhbmNlbGVkIixlLkxpbWl0cz0ibGltaXRzIn0oYWd8fChhZz17fSkpO2NsYXNzIGxnIGV4dGVuZHMgRXJyb3J7Y29uc3RydWN0b3IoZSl7c3VwZXIoYENyZWF0ZVN0dWR5RXJyb3I6ICR7ZX1gKSx0aGlzLnJlYXNvbj1lfX1sZy5SZWFzb25zPWFnO2NsYXNzIGNne2NvbnN0cnVjdG9yKGUsdCl7dGhpcy5fYWN0aXZlUGFuZVdpZGdldD1uZXcgaC5XYXRjaGVkVmFsdWUobnVsbCksdGhpcy5fbWFpbkRpdj1udWxsLHRoaXMuX3BhcmVudD1udWxsLHRoaXMuX2VsVG9vbHRpcERpdj1udWxsLHRoaXMuX3BhbmVXaWRnZXRzPW5ldyBoLldhdGNoZWRWYWx1ZShbXSksdGhpcy5fdGltZUF4aXNXaWRnZXQ9bnVsbCx0aGlzLl9wYW5lU2VwYXJhdG9ycz1bXSx0aGlzLl9jb250cm9sQmFyTmF2aWdhdGlvbj1udWxsLHRoaXMuX2xpbmVUb29sc1N5bmNocm9uaXplcj1udWxsLHRoaXMuX2xpbmVUb29sc1N5bmNocm9uaXplckhhc0NoYW5nZXM9bnVsbCx0aGlzLl9tb2RlbENyZWF0ZWQ9bmV3IGYuRGVsZWdhdGUsdGhpcy5faXNEZXN0cm95ZWQ9ITEsdGhpcy5fY3VzdG9tTGVnZW5kV2lkZ2V0c0ZhY3RvcnlNYXA9bmV3IE1hcCx0aGlzLl9iYWNrZ3JvdW5kVG9wVGhlbWU9bmV3IGguV2F0Y2hlZFZhbHVlKCJsaWdodCIpLHRoaXMuX2JhY2tncm91bmRCYXNlZFRoZW1lPW5ldyBoLldhdGNoZWRWYWx1ZSgibGlnaHQiKSx0aGlzLl9iYWNrZ3JvdW5kQm90dG9tVGhlbWU9bmV3IGguV2F0Y2hlZFZhbHVlKCJsaWdodCIpLHRoaXMuX2JhY2tncm91bmRUb3BDb2xvclNwYXduPW51bGwsdGhpcy5fYmFja2dyb3VuZEJvdHRvbUNvbG9yU3Bhd249bnVsbCx0aGlzLl9saHNBeGVzV2lkdGg9MCx0aGlzLl9yaHNBeGVzV2lkdGg9MCx0aGlzLl9saHNQcmljZUF4aXNXaWR0aENoYW5nZWQ9bmV3IGYuRGVsZWdhdGUsdGhpcy5fcmhzUHJpY2VBeGlzV2lkdGhDaGFuZ2VkPW5ldyBmLkRlbGVnYXRlLHRoaXMuX2hvdGtleXNMaXN0ZW5lcj1udWxsLHRoaXMuX21vdXNlV2hlZWxIZWxwZXI9bnVsbCx0aGlzLl9vbldoZWVsQm91bmQ9bnVsbCx0aGlzLl9qdXN0QWN0aXZhdGVkPSExLHRoaXMuX2luaXRlZD0hMSx0aGlzLl9jb250YWluc0RhdGE9ITEsdGhpcy5faW5pdGlhbExvYWRpbmc9ITEsdGhpcy5fb25XaWRnZXQ9ITEsdGhpcy5fd2lkZ2V0Q3VzdG9tZXI9dm9pZCAwLHRoaXMuX2RlZkludGVydmFsPW51bGwsdGhpcy5fZGVmU3R5bGU9bnVsbCx0aGlzLl9kZWZUaW1lZnJhbWU9bnVsbCx0aGlzLl9kZWZNZXRyaWM9bnVsbCx0aGlzLl9yZW1vdmVNYXhpbWl6ZUhvdGtleT1udWxsLHRoaXMuX2ludmFsaWRhdGlvbk1hc2s9bnVsbCx0aGlzLl9kcmF3UGxhbm5lZD0hMSx0aGlzLl9kcmF3UmFmSWQ9MCx0aGlzLl9kcmF3VGltZT1uZXcgaC5XYXRjaGVkVmFsdWUocGVyZm9ybWFuY2Uubm93KCkpLHRoaXMuX2luTG9hZGluZ1N0YXRlPSExLHRoaXMuX3RpbWluZ3NNZXRlcj1udWxsLHRoaXMuX3RhZ3NDaGFuZ2VkPW5ldyBmLkRlbGVnYXRlLHRoaXMuX3JlZHJhdz1uZXcgZi5EZWxlZ2F0ZSx0aGlzLl9pc1Zpc2libGU9bmV3IGguV2F0Y2hlZFZhbHVlKCEwKSx0aGlzLl9jb2xsYXBzZWQ9bmV3IGguV2F0Y2hlZFZhbHVlKCExKSx0aGlzLl9kYXRhV2luZG93V2lkZ2V0PW51bGwsdGhpcy5fcmVzaXplSGFuZGxlcj1udWxsLHRoaXMuX3NwaW5uZXI9bnVsbCx0aGlzLl9zeW1ib2xXVj1uZXcgaC5XYXRjaGVkVmFsdWUsdGhpcy5fcmVzb2x1dGlvbldWPW5ldyBoLldhdGNoZWRWYWx1ZSx0aGlzLl9hY3Rpb25zPW51bGwsdGhpcy5fdXBkYXRlVGhlbWVkQ29sb3JCb3VuZD10aGlzLl91cGRhdGVUaGVtZWRDb2xvci5iaW5kKHRoaXMpLHRoaXMuX2Rpc2Nvbm5lY3RlZD1uZXcgZi5EZWxlZ2F0ZSx0aGlzLl9yZWNvbm5lY3RCYWlsb3V0PW5ldyBmLkRlbGVnYXRlLHRoaXMuX2Nvbm5lY3RlZD1uZXcgZi5EZWxlZ2F0ZSx0aGlzLl9jaGFydFdpZGdldEluaXRpYWxpemVkPW5ldyBmLkRlbGVnYXRlLHRoaXMuX2Fib3V0VG9CZURlc3Ryb3llZD1uZXcgZi5EZWxlZ2F0ZSx0aGlzLl9zYXZlQ2hhcnRTZXJ2aWNlPW51bGwsdGhpcy5fb2JqZWN0VHJlZURpYWxvZ0NvbnRyb2xsZXI9bnVsbCx0aGlzLl9jaGFydFBhaW50ZWRQcm9taXNlPW51bGwsdGhpcy5fbm9FeGNoYW5nZVN1YnNjcnB0aW9uV2FybmluZz1udWxsLHRoaXMuX2hpcDNEaXNjbGFpbWVyUmVzb3VyY2U9bnVsbCx0aGlzLl9wYW5lV2lkZ2V0c1NoYXJlZFN0YXRlPW5ldyB3bix0aGlzLl9vblpvb209bmV3IGYuRGVsZWdhdGUsdGhpcy5fb25TY3JvbGw9bmV3IGYuRGVsZWdhdGUsCnRoaXMuX2F2YWlsYWJsZVNjcmVlbj1udWxsLHRoaXMuX3dpZGdldFN5bWJvbENoYW5nZVJlc3RyaWN0aW9ucz1udWxsLHRoaXMuX2hvdmVyZWRQcmljZUF4ZXM9bmV3IFNldCx0aGlzLl9hbnlBeGlzSG92ZXJlZD1uZXcgaC5XYXRjaGVkVmFsdWUoITEpLHRoaXMuX2xpbmtpbmdHcm91cEluZGV4PW5ldyBoLldhdGNoZWRWYWx1ZShudWxsKSx0aGlzLl9pc0hvdmVyZWQ9bmV3IGguV2F0Y2hlZFZhbHVlKCExKSx0aGlzLl9hY3RpdmVIaW50PW51bGwsdGhpcy5fZXZlbnRIaW50RGVmZXJyZWRQcm9taXNlPW51bGwsdGhpcy5fd2FybmluZ0hpbnREZWZlcnJlZFByb21pc2U9bnVsbCx0aGlzLl9zZXRTeW1ib2xJbnRlcnZhbENvbnRlbnRPdmVycmlkZXM9e30sdGhpcy5fYXJpYVByaWNlRGVzY3JpcHRpb249bnVsbCx0aGlzLl9kZWZpbml0aW9uc1ZpZXdNb2RlbD1udWxsLHRoaXMuX2JhcnNCdXR0b249bnVsbCx0aGlzLl9tb2RlbFdWPW5ldyBoLldhdGNoZWRWYWx1ZShudWxsKSx0aGlzLl91cGRhdGVTY2FsZXNBY3Rpb25zPSgpPT57Y29uc3QgZT10aGlzLmFjdGlvbnMoKSx0PXRoaXMubW9kZWwoKS5tYWluU2VyaWVzKCksaT10LnByaWNlU2NhbGUoKSxzPXQucHJvcGVydGllcygpLG49aS5pc0xvY2tTY2FsZSgpLHI9Nj09PXMuY2hpbGRzKCkuc3R5bGUudmFsdWUoKTtlLnBlcmNlbnRTZXJpZXNTY2FsZS51cGRhdGUoe2Rpc2FibGVkOm58fHIsY2hlY2tlZDppLmlzUGVyY2VudGFnZSgpfSksZS5sb2dTZXJpZXNTY2FsZS51cGRhdGUoe2Rpc2FibGVkOm58fHIsY2hlY2tlZDppLmlzTG9nKCl9KSxlLnJlZ3VsYXJTZXJpZXNTY2FsZS51cGRhdGUoe2Rpc2FibGVkOm58fHIsY2hlY2tlZDppLmlzUmVndWxhcigpfSksZS5pbmRleGVkVG8xMDBTZXJpZXNTY2FsZS51cGRhdGUoe2Rpc2FibGVkOm58fHIsY2hlY2tlZDppLmlzSW5kZXhlZFRvMTAwKCl9KSxlLmludmVydFNlcmllc1NjYWxlLnVwZGF0ZSh7Y2hlY2tlZDppLmlzSW52ZXJ0ZWQoKX0pLGUubG9ja1Nlcmllc1NjYWxlLnVwZGF0ZSh7Y2hlY2tlZDppLmlzTG9ja1NjYWxlKCl9KSxlLmF1dG9TZXJpZXNTY2FsZS51cGRhdGUoe2NoZWNrZWQ6aS5pc0F1dG9TY2FsZSgpLGRpc2FibGVkOmkucHJvcGVydGllcygpLmNoaWxkcygpLmF1dG9TY2FsZURpc2FibGVkLnZhbHVlKCl9KX0sdGhpcy5faW52YWxpZGF0aW9uSGFuZGxlcj1lPT57aWYoIShlIGluc3RhbmNlb2YgTGUuSW52YWxpZGF0aW9uTWFzaykpdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIG1hc2siKTtudWxsIT09dGhpcy5faW52YWxpZGF0aW9uTWFzaz90aGlzLl9pbnZhbGlkYXRpb25NYXNrLm1lcmdlKGUpOnRoaXMuX2ludmFsaWRhdGlvbk1hc2s9ZSx0aGlzLl9kcmF3UGxhbm5lZHx8KHRoaXMuX2RyYXdQbGFubmVkPSEwLHRoaXMuX29wdGlvbnMudmlzaWJsZS53aGVuKCgoKT0+e2NvbnN0IGU9IWRvY3VtZW50LmhpZGRlbix0PXRoaXMuc2NyZWVuJiZ0aGlzLnNjcmVlbi5pc1Nob3duKCk7bnVsbCE9PXRoaXMuX3RpbWluZ3NNZXRlciYmZSYmIXQmJnRoaXMuX3RpbWluZ3NNZXRlci5zdGFydFdhaXRpbmdEcmF3KCk7Y29uc3QgaT0oMCxsLmVuc3VyZU5vdE51bGwpKCgwLGwuZW5zdXJlTm90TnVsbCkodGhpcy5fcGFyZW50KS5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3KTt0aGlzLl9kcmF3UmFmSWQ9aS5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUodGhpcy5faW52YWxpZGF0aW9uUkFGQ2FsbGJhY2suYmluZCh0aGlzKSl9KSkpfSx0aGlzLl9vbkNoYXJ0U2Vzc2lvbklzQ29ubmVjdGVkQ2hhbmdlZD1lPT57ZT90aGlzLl9vbkNvbm5lY3Rpb24oKTp0aGlzLl9vbkRpc2Nvbm5lY3QoKX0sdGhpcy5fc3Vic2NyaWJlVG9CYW5JbmZvPWU9PntlP3RoaXMuX3NwaW5uZXI/LnN0b3AoKTp0aGlzLl9zcGlubmVyPy5zcGluKCl9LHRoaXMuX2lkPXQsdGhpcy5fb3B0aW9ucz0oMCxhLm1lcmdlKSgoMCxhLmNsb25lKSh0ZyksZSksdGhpcy5fb3B0aW9ucy5leHRlcm5hbFNlcnZpY2VzPWUuZXh0ZXJuYWxTZXJ2aWNlcyx0aGlzLl9jaGFydFdpZGdldENvbGxlY3Rpb249dGhpcy5fb3B0aW9ucy5jaGFydFdpZGdldENvbGxlY3Rpb24sdGhpcy5faXNBY3RpdmU9bmV3IGguV2F0Y2hlZFZhbHVlKCEhdGhpcy5fb3B0aW9ucy5pc0FjdGl2ZSksdGhpcy5fYWN0aXZlQ2hhcnRXaWRnZXRXVj10aGlzLl9jaGFydFdpZGdldENvbGxlY3Rpb24uYWN0aXZlQ2hhcnRXaWRnZXQuc3Bhd24oKSx0aGlzLl9vcHRpb25zLmN1c3RvbUxlZ2VuZFdpZGdldEZhY3RvcmllcyYmKHRoaXMuX2N1c3RvbUxlZ2VuZFdpZGdldHNGYWN0b3J5TWFwPXRoaXMuX29wdGlvbnMuY3VzdG9tTGVnZW5kV2lkZ2V0RmFjdG9yaWVzKSx0aGlzLl9zdWJzY3JpYmVUb0RyYXdpbmdTdGF0ZSgpLHRoaXMud2l0aE1vZGVsKHRoaXMsKCgpPT57Y29uc3QgZT10aGlzLm1vZGVsKCkubW9kZWwoKTtlLmJhY2tncm91bmRUb3BDb2xvcigpLnN1YnNjcmliZSh0aGlzLl91cGRhdGVUaGVtZWRDb2xvckJvdW5kKSxlLmJhY2tncm91bmRDb2xvcigpLnN1YnNjcmliZSh0aGlzLl91cGRhdGVUaGVtZWRDb2xvckJvdW5kKX0pKTtjb25zdCBzPSgwLHUuY29tYmluZSkoKGU9PltlP2UubWFpblNlcmllcygpLnN5bWJvbEluZm9XVigpLndlYWtSZWZlcmVuY2UoKTpuZXcgaC5XYXRjaGVkVmFsdWUobnVsbCkub3duZXJzaGlwKCldKSx0aGlzLl9tb2RlbFdWLndlYWtSZWZlcmVuY2UoKSk7dGhpcy5fc3ltYm9sSW5mb1dWPSgwLHUuYWNjdW11bGF0ZSkoKGU9PmVbMF0pLHMub3duZXJzaGlwKCkpLm93bmVyc2hpcCgpLCgwLFEuZ2V0Qm9vbCkoImhpcDMuZGlzY2xhaW1lckFjY2VwdGVkIil8fCh0aGlzLl9oaXAzRGlzY2xhaW1lclJlc291cmNlPW5ldyB0YS5Bc3luY1Jlc291cmNlV3JhcHBlcihpLmUoNTk3OSkudGhlbihpLmJpbmQoaSwzNjM2NTMpKS50aGVuKChlPT50aGlzLl9pc0Rlc3Ryb3llZD9udWxsOm5ldyBlLkhpcDNEaXNjbGFpbWVyKHRoaXMuX21vZGVsV1Yud2Vha1JlZmVyZW5jZSgpKSkpLChlPT57ZT8uZGVzdHJveSgpfSkpKSwKdGhpcy5fZXJyb3JSZW5kZXJlclJlc291cmNlPW5ldyB0YS5Bc3luY1Jlc291cmNlV3JhcHBlcihQcm9taXNlLmFsbChbaS5lKDUyODgyKSxpLmUoNjA5NjkpXSkudGhlbihpLmJpbmQoaSwyNDU4NjEpKS50aGVuKChlPT50aGlzLl9pc0Rlc3Ryb3llZD9udWxsOm5ldyBlLkVycm9yUmVuZGVyZXIobmV3IGguV2F0Y2hlZFZhbHVlKHRoaXMpKSkpLChlPT57ZT8uZGVzdHJveSgpfSkpLHRoaXMuX3Njcm9sbEhlbHBlcj1uZXcgWnQodGhpcyksdGhpcy5fb2JqZWN0VHJlZURpYWxvZ0NvbnRyb2xsZXI9QnQuZ2V0SW5zdGFuY2UoKSx0aGlzLl9wcm9wZXJ0aWVzPW5ldyBHci5EZWZhdWx0UHJvcGVydHkoe2RlZmF1bHROYW1lOiJjaGFydHByb3BlcnRpZXMiLHVzZVVzZXJQcmVmZXJlbmNlczp0aGlzLl9vcHRpb25zLnVzZVVzZXJDaGFydFByZWZlcmVuY2VzLGV4Y2x1ZGVkRGVmYXVsdHNLZXlzOlsic2NhbGVzUHJvcGVydGllcy5heGlzSGlnaGxpZ2h0Q29sb3IiLCJzY2FsZXNQcm9wZXJ0aWVzLmF4aXNMaW5lVG9vbExhYmVsQmFja2dyb3VuZENvbG9yQWN0aXZlIiwic2NhbGVzUHJvcGVydGllcy5heGlzTGluZVRvb2xMYWJlbEJhY2tncm91bmRDb2xvckNvbW1vbiIsInNjYWxlc1Byb3BlcnRpZXMuc2hvd1ByaWNlU2NhbGVDcm9zc2hhaXJMYWJlbCIsInNjYWxlc1Byb3BlcnRpZXMuc2hvd1RpbWVTY2FsZUNyb3NzaGFpckxhYmVsIiwic2NhbGVzUHJvcGVydGllcy5jcm9zc2hhaXJMYWJlbEJnQ29sb3JMaWdodCIsInNjYWxlc1Byb3BlcnRpZXMuY3Jvc3NoYWlyTGFiZWxCZ0NvbG9yRGFyayIsImFsZXJ0c1Byb3BlcnRpZXMiLCJtYWluU2VyaWVzUHJvcGVydGllcyIsInBhbmVQcm9wZXJ0aWVzLmdyaWRMaW5lc01vZGUiXSxleGNsdWRlZFRlbXBsYXRlS2V5czpbInRpbWV6b25lIiwidHJhZGluZ1Byb3BlcnRpZXMiLCJtYWluU2VyaWVzUHJvcGVydGllcyIsImNoYXJ0RXZlbnRzU291cmNlUHJvcGVydGllcyIsInByaWNlU2NhbGVTZWxlY3Rpb25TdHJhdGVneU5hbWUiLCJwYW5lUHJvcGVydGllcy50b3BNYXJnaW4iLCJwYW5lUHJvcGVydGllcy5ib3R0b21NYXJnaW4iLCJ2b2x1bWVQYW5lU2l6ZSIsImFsZXJ0c1Byb3BlcnRpZXMiXSxleGNsdWRlZFN0YXRlS2V5czpbImFsZXJ0c1Byb3BlcnRpZXMiLCJtYWluU2VyaWVzUHJvcGVydGllcyJdLHRoZW1lZENvbG9yczppZ30pLHRoaXMuX21haW5TZXJpZXNQcm9wZXJ0aWVzPW5ldyBqXy5TZXJpZXNQcm9wZXJ0aWVzSW1wbCx0aGlzLl9zdGFydFNwaW5uZXIodGhpcy5fb3B0aW9ucy5jb250YWluZXIudmFsdWUoKSksd2luZG93LkNoYXJ0QXBpSW5zdGFuY2UuY29ubmVjdGlvbkJhbkluZm8oKS5zdWJzY3JpYmUodGhpcy5fc3Vic2NyaWJlVG9CYW5JbmZvLHtjYWxsV2l0aExhc3Q6ITB9KSx0aGlzLl9jaGFydFNlc3Npb249bmV3IFR0LkNoYXJ0U2Vzc2lvbih3aW5kb3cuQ2hhcnRBcGlJbnN0YW5jZSksb2coKSx0aGlzLl9pc011bHRpcGxlTGF5b3V0PSgwLHUuY29tYmluZSkoKGU9PigwLE8uaXNNdWx0aXBsZUxheW91dCkoZSkpLHRoaXMuX2NoYXJ0V2lkZ2V0Q29sbGVjdGlvbi5sYXlvdXQud2Vha1JlZmVyZW5jZSgpKSx0aGlzLl9wcm9wZXJ0aWVzLmNoaWxkcygpLnNjYWxlc1Byb3BlcnRpZXMuY2hpbGRzKCkuc2NhbGVTZXJpZXNPbmx5LnN1YnNjcmliZShudWxsLCgoKT0+e2NvbnN0IGU9dGhpcy5tb2RlbCgpLm1vZGVsKCk7ZS5yZWNhbGN1bGF0ZUFsbFBhbmVzKCgwLHRuLnZpZXdwb3J0Q2hhbmdlRXZlbnQpKCkpLGUuaW52YWxpZGF0ZShMZS5JbnZhbGlkYXRpb25NYXNrLmZ1bGwoKSl9KSksdGhpcy5faG90a2V5cz1ZLmNyZWF0ZUdyb3VwKHtkZXNjOiJDaGFydCBhY3Rpb25zIixpc0Rpc2FibGVkOigpPT4hdGhpcy5pc0FjdGl2ZSgpLnZhbHVlKCl9KSwoMCxKLm9uV2lkZ2V0KSgpfHwodGhpcy5fcGVyc2lzdGVudExvZ1N3aXRjaGVyPW5ldyBQXy5GZWF0dXJlVG9nZ2xlV2F0Y2hlZFZhbHVlKCJzdXBwb3J0X3BlcnNpc3RlbnRfbG9ncyIsITEpLHRoaXMuX3BlcnNpc3RlbnRMb2dTd2l0Y2hlci5zdWJzY3JpYmUoKGFzeW5jIGU9PntpZihlKXtpZigoMCxsbC5nZXRQZXJzaXN0ZW50TG9nZ2VyKSgpKXJldHVybjsoMCxsbC5zZXRQZXJzaXN0ZW50TG9nZ2VyKShuZXcgTV8pO2NvbnN0e2luaXRQZXJzaXN0ZW50TG9nZ2VyOmV9PWF3YWl0IGkuZSg2NTkwOSkudGhlbihpLmJpbmQoaSwzOTE0MykpO3RoaXMuX3BlcnNpc3RlbnRMb2dTd2l0Y2hlcj8udmFsdWUoKT9lKCk6KDAsbGwuc2V0UGVyc2lzdGVudExvZ2dlcikobnVsbCl9ZWxzZSgwLGxsLnNldFBlcnNpc3RlbnRMb2dnZXIpKG51bGwpfSkse2NhbGxXaXRoTGFzdDohMH0pKSx0aGlzLl9jb21wYXJlRGlhbG9nPXRoaXMuX2NoYXJ0V2lkZ2V0Q29sbGVjdGlvbi5nZXRDb21wYXJlRGlhbG9nUmVuZGVyZXIoKSx0aGlzLl9vcHRpb25zLnRpbWVTY2FsZVdpZGdldCYmKHRoaXMuX29wdGlvbnMudGltZVNjYWxlV2lkZ2V0LnByZXNzZWRNb3VzZU1vdmVTY2FsZT10aGlzLl9vcHRpb25zLmhhbmRsZVNjYWxlLmF4aXNQcmVzc2VkTW91c2VNb3ZlLnRpbWUpO2NvbnN0IG49dGhpcy5fb3B0aW9ucy5vbkNtZVdpZGdldDtuJiZZbS5sb2dXYXJuKCJbQ2hhcnRXaWRnZXRdICdvbkNtZVdpZGdldCcgb3B0aW9uIGlzIGRlcHJpY2F0ZWQiKTtjb25zdCByPXRoaXMuX29wdGlvbnMud2lkZ2V0Q3VzdG9tZXIsbz10aGlzLl9vcHRpb25zLnRpbWV6b25lO2xldCBjPXRoaXMuX29wdGlvbnMuZGVmU3ltYm9sPz8iIixkPXguSW50ZXJ2YWwuaXNWYWxpZCh0aGlzLl9vcHRpb25zLmRlZkludGVydmFsKT90aGlzLl9vcHRpb25zLmRlZkludGVydmFsOm51bGw7Y29uc3QgcD10aGlzLl9vcHRpb25zLmRlZlN0eWxlO2xldCBfPSgwLEEuaXNWYWxpZFN0eWxlKShwKT9wOm51bGw7Y29uc3QgbT10aGlzLl9vcHRpb25zLmRlZlNlc3Npb25JZCxnPXZvaWQgMCE9PXRoaXMuX29wdGlvbnMuZGVmVGltZWZyYW1lPyJzdHJpbmciPT10eXBlb2YgdGhpcy5fb3B0aW9ucy5kZWZUaW1lZnJhbWU/e3ZhbHVlOnRoaXMuX29wdGlvbnMuZGVmVGltZWZyYW1lLnRvVXBwZXJDYXNlKCksdHlwZToicGVyaW9kLWJhY2sifTp7Ci4uLnRoaXMuX29wdGlvbnMuZGVmVGltZWZyYW1lLHR5cGU6InRpbWUtcmFuZ2UifTpudWxsO2xldCBTPXRoaXMuX29wdGlvbnMuZGVmTWV0cmljPz9udWxsO3RoaXMuX2NvbnRlbnQ9dGhpcy5fb3B0aW9ucy5jb250ZW50LHRoaXMuX2luaXRpYWxMb2FkaW5nPXRoaXMuX29wdGlvbnMuaW5pdGlhbExvYWRpbmcsdGhpcy5fY29udGFpbnNEYXRhPSEhdGhpcy5fb3B0aW9ucy5jb250YWluc0RhdGEsdGhpcy5fb25XaWRnZXQ9ISF0aGlzLl9vcHRpb25zLm9uV2lkZ2V0LHRoaXMuX2NvbXBhcmVTeW1ib2xzPXRoaXMuX29wdGlvbnMuY29tcGFyZVN5bWJvbHMsdGhpcy5fZGVmU3ltYm9sPWMsdGhpcy5fZGVmSW50ZXJ2YWw9ZCx0aGlzLl9kZWZUaW1lZnJhbWU9Zyx0aGlzLl9kZWZTdHlsZT1fLHRoaXMuX2RlZk1ldHJpYz1TLHRoaXMuX29uV2lkZ2V0JiYobj90aGlzLl93aWRnZXRDdXN0b21lcj0iY21lIjpyJiYodGhpcy5fd2lkZ2V0Q3VzdG9tZXI9cikpLHRoaXMuX2NvbXBhcmVEaWFsb2c9dGhpcy5fY2hhcnRXaWRnZXRDb2xsZWN0aW9uLmdldENvbXBhcmVEaWFsb2dSZW5kZXJlcigpO2NvbnN0IHY9dGhpcy5fY29udGVudFNlcmllc1Byb3BlcnRpZXMoKTt2JiYoYz12LnN5bWJvbCxkPXYuaW50ZXJ2YWwsUz12Lm1ldHJpY0lkKSx2b2lkIDA9PT10aGlzLl9vcHRpb25zLnVzZVVzZXJDaGFydFByZWZlcmVuY2VzJiYodGhpcy5fb3B0aW9ucy51c2VVc2VyQ2hhcnRQcmVmZXJlbmNlcz0hMCk7Y29uc3QgeT0iY2hhcnRwcm9wZXJ0aWVzLm1haW5TZXJpZXNQcm9wZXJ0aWVzIixiPXRoaXMuX29wdGlvbnMudXNlVXNlckNoYXJ0UHJlZmVyZW5jZXM/KDAsJGwuZGVmYXVsdHMpKHkpOigwLCRsLmZhY3RvcnlEZWZhdWx0cykoeSksdz10aGlzLl9tYWluU2VyaWVzUHJvcGVydGllcyxDPWR8fGIuaW50ZXJ2YWx8fCJEIjtudWxsIT09XyYmKDAsQS5pc1ZhbGlkU3R5bGUpKF8pfHwoXz0oMCxBLmlzVmFsaWRTdHlsZSkoYi5zdHlsZSk/Yi5zdHlsZTooMCxBLmdldERlZmF1bHRTdHlsZSkoeC5JbnRlcnZhbC5pc1JhbmdlKEMpKSk7Y29uc3QgUD0oMCxDdC5kZWZhdWx0KSh7dmlzaWJsZTohMCxzeW1ib2w6Y3x8KDAsRHQuZ2V0RGVmYXVsdFN5bWJvbCkoKSxzaG9ydE5hbWU6IiIsdGltZWZyYW1lOiIiLGludGVydmFsOkMsY3VycmVuY3lJZDpudWxsLHVuaXRJZDpudWxsLHN0eWxlOl8sc2Vzc2lvbklkOm0sbWV0cmljSWQ6U30sYS5ub3RVbmRlZmluZWQpO3cubWVyZ2UoUCksdGhpcy5fc3ltYm9sV1Yuc2V0VmFsdWUoYyksdGhpcy5fcmVzb2x1dGlvbldWLnNldFZhbHVlKEMpLHRoaXMuX2NvbnRhaW5zRGF0YSYmdGhpcy5fbWFpblNlcmllc1Byb3BlcnRpZXMubWVyZ2Uoe3Nob3dDb3VudGRvd246ITF9KSxvJiYoMCxqdC50aW1lem9uZUlzQXZhaWxhYmxlKShvKSYmdGhpcy5fcHJvcGVydGllcy5jaGlsZHMoKS50aW1lem9uZS5zZXRWYWx1ZShvKSx0aGlzLl9vcHRpb25zLmNvbnRhaW5lci5zdWJzY3JpYmUoKGU9Pnt0aGlzLl9zZXRFbGVtZW50KGUpfSkse2NhbGxXaXRoTGFzdDohMH0pO2NvbnN0IFQ9KCk9Pnt0aGlzLnJlc2l6ZSgpfTt0aGlzLl9vcHRpb25zLndpZHRoLnN1YnNjcmliZShUKSx0aGlzLl9vcHRpb25zLmhlaWdodC5zdWJzY3JpYmUoVCksdGhpcy5fb3B0aW9ucy52aXNpYmxlLnN1YnNjcmliZSh0aGlzLl91cGRhdGVUaW1pbmdzTWV0ZXJTdGF0ZS5iaW5kKHRoaXMpKX1yZWZyZXNoTWFya3MoKXt0aGlzLm1vZGVsKCkuYmFyc01hcmtzU291cmNlcygpLmZvckVhY2goKGU9PmUucmVmcmVzaERhdGEoKSkpfWNsZWFyTWFya3MoZSl7dGhpcy5tb2RlbCgpLmJhcnNNYXJrc1NvdXJjZXMoKS5mb3JFYWNoKCh0PT50LmNsZWFyTWFya3MoZSkpKX1zZXRUaW1lem9uZShlKXtjb25zdCB0PWU7dCYmKDAsanQudGltZXpvbmVJc0F2YWlsYWJsZSkodCk/dGhpcy5wcm9wZXJ0aWVzKCkuY2hpbGRzKCkudGltZXpvbmUuc2V0VmFsdWUodCk6Y29uc29sZS53YXJuKCJJbmNvcnJlY3QgdGltZXpvbmU6ICIrSlNPTi5zdHJpbmdpZnkodCkpfWdldFRpbWV6b25lKCl7cmV0dXJuIHRoaXMucHJvcGVydGllcygpLmNoaWxkcygpLnRpbWV6b25lLnZhbHVlKCl9ZGVzdHJveSgpe3RoaXMuX2NoYXJ0U2Vzc2lvbi5kaXNjb25uZWN0KCksdGhpcy5fdW5zZXRBY3Rpb25zKCksdGhpcy5faG90a2V5cz8uZGVzdHJveSgpLHRoaXMuX2xpbmVUb29sc1N5bmNocm9uaXplcj8uZGVzdHJveSgpLHRoaXMuX25vRXhjaGFuZ2VTdWJzY3JwdGlvbldhcm5pbmc/LmRlc3Ryb3koKSx0aGlzLl9oaXAzRGlzY2xhaW1lclJlc291cmNlPy5kZXN0cm95KCksd2luZG93LmxvZ2luU3RhdGVDaGFuZ2UudW5zdWJzY3JpYmUodGhpcyx0aGlzLl9oYW5kbGVMb2dpblN0YXRlQ2hhbmdlZCksdGhpcy5oYXNNb2RlbCgpJiYodGhpcy5tb2RlbCgpLm1vZGVsKCkuYmFja2dyb3VuZFRvcENvbG9yKCkudW5zdWJzY3JpYmUodGhpcy5fdXBkYXRlVGhlbWVkQ29sb3JCb3VuZCksdGhpcy5tb2RlbCgpLm1vZGVsKCkuYmFja2dyb3VuZENvbG9yKCkudW5zdWJzY3JpYmUodGhpcy5fdXBkYXRlVGhlbWVkQ29sb3JCb3VuZCksdGhpcy5tb2RlbCgpLm1vZGVsKCkuY3Jvc3NoYWlyU291cmNlKCkubW92ZWQoKS51bnN1YnNjcmliZSh0aGlzLHRoaXMuX3VwZGF0ZUFyaWFQcmljZURlc2NyaXB0aW9uKSx0aGlzLm1vZGVsKCkuZGVzdHJveSgpKSx0aGlzLl9tb2RlbFdWLmRlc3Ryb3koKSx3aW5kb3cuQ2hhcnRBcGlJbnN0YW5jZS5jb25uZWN0aW9uQmFuSW5mbygpLnVuc3Vic2NyaWJlKHRoaXMuX3N1YnNjcmliZVRvQmFuSW5mbyksdGhpcy5fYXJpYVByaWNlRGVzY3JpcHRpb249bnVsbCx0aGlzLl9jdXN0b21MZWdlbmRXaWRnZXRzRmFjdG9yeU1hcC5jbGVhcigpLHRoaXMuX3Njcm9sbEhlbHBlci5kZXN0cm95KCksdGhpcy5fZXJyb3JSZW5kZXJlclJlc291cmNlLmRlc3Ryb3koKSx0aGlzLl9jaGFydFNlc3Npb24uY3JpdGljYWxFcnJvcigpLnVuc3Vic2NyaWJlKHRoaXMsdGhpcy5fb25DaGFydFNlc3Npb25Dcml0aWNhbEVycm9yKSwKdGhpcy5fY2hhcnRTZXNzaW9uLmlzQ29ubmVjdGVkKCkudW5zdWJzY3JpYmUodGhpcy5fb25DaGFydFNlc3Npb25Jc0Nvbm5lY3RlZENoYW5nZWQpLHRoaXMuX2NoYXJ0U2Vzc2lvbi5kZXN0cm95KCksdGhpcy5fcGVyc2lzdGVudExvZ1N3aXRjaGVyPy5kZXN0cm95KCksdGhpcy5faXNEZXN0cm95ZWQ9ITAsdGhpcy5fYWJvdXRUb0JlRGVzdHJveWVkLmZpcmUoKSx0aGlzLl9yZW1vdmVNYXhpbWl6ZUhvdGtleT8uKCksdGhpcy5fcmVtb3ZlTWF4aW1pemVIb3RrZXk9bnVsbCwwIT09dGhpcy5fZHJhd1JhZklkJiZ0aGlzLl9wYXJlbnQ/Lm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXc/LmNhbmNlbEFuaW1hdGlvbkZyYW1lKHRoaXMuX2RyYXdSYWZJZCksdGhpcy5fYmFja2dyb3VuZFRvcENvbG9yU3Bhd24/LmRlc3Ryb3koKSx0aGlzLl9iYWNrZ3JvdW5kQm90dG9tQ29sb3JTcGF3bj8uZGVzdHJveSgpLHRoaXMuX3RpbWluZ3NNZXRlcj8uc3RvcENvbGxlY3QoKSx0aGlzLl90aW1pbmdzTWV0ZXI9bnVsbDtjb25zdCBlPXRoaXMuX3BhbmVXaWRnZXRzLnZhbHVlKCk7Zm9yKGxldCB0PTA7dDxlLmxlbmd0aDt0KyspZVt0XS5kZXN0cm95KCk7dGhpcy5fcGFuZVdpZGdldHMuc2V0VmFsdWUoW10pO2ZvcihsZXQgZT0wO2U8dGhpcy5fcGFuZVNlcGFyYXRvcnMubGVuZ3RoO2UrKyl0aGlzLl9wYW5lU2VwYXJhdG9yc1tlXS5kZXN0cm95KCk7dGhpcy5fcGFuZVNlcGFyYXRvcnMubGVuZ3RoPTAsdGhpcy5faG90a2V5c0xpc3RlbmVyPy5kZXN0cm95KCksdGhpcy5fYmFyc0J1dHRvbj8uZGVzdHJveSgpLHRoaXMuX2NvbnRyb2xCYXJOYXZpZ2F0aW9uPy5kZXN0cm95KCksdGhpcy5fY29udHJvbEJhck5hdmlnYXRpb249bnVsbCx0aGlzLl9tYWluRGl2JiYodGhpcy5fb25XaGVlbEJvdW5kJiZ0aGlzLl9tYWluRGl2LnJlbW92ZUV2ZW50TGlzdGVuZXIoIndoZWVsIix0aGlzLl9vbldoZWVsQm91bmQpLHRoaXMuX21haW5EaXYucmVtb3ZlKCkpLHRoaXMuX3RpbWVBeGlzV2lkZ2V0Py5kZXN0cm95KCksdGhpcy5fdGltZUF4aXNXaWRnZXQ9bnVsbCx0aGlzLl9kZWZpbml0aW9uc1ZpZXdNb2RlbD8uZGVzdHJveSgpLHRoaXMuX2lzTXVsdGlwbGVMYXlvdXQuZGVzdHJveSgpLFQuY3JlYXRlZExpbmVUb29sLnVuc3Vic2NyaWJlQWxsKHRoaXMpLFQuY29udGludWVkTGluZVRvb2wudW5zdWJzY3JpYmVBbGwodGhpcyksVC5jYW5jZWxsZWRMaW5lVG9vbC51bnN1YnNjcmliZUFsbCh0aGlzKSxULmJlZW5TZXRMaW5lVG9vbExhc3RQb2ludC51bnN1YnNjcmliZUFsbCh0aGlzKSxULnN0YXJ0ZWRNb3ZpbmdMaW5lVG9vbC51bnN1YnNjcmliZUFsbCh0aGlzKSxULm1vdmVkTGluZVRvb2wudW5zdWJzY3JpYmVBbGwodGhpcyksVC5maW5pc2hlZE1vdmluZ0xpbmVUb29sLnVuc3Vic2NyaWJlQWxsKHRoaXMpLFQuc3RhcnRlZENoYW5naW5nTGluZVRvb2wudW5zdWJzY3JpYmVBbGwodGhpcyksVC5jaGFuZ2VkTGluZVRvb2wudW5zdWJzY3JpYmVBbGwodGhpcyksVC5maW5pc2hlZENoYW5naW5nTGluZVRvb2wudW5zdWJzY3JpYmVBbGwodGhpcyksVC5yZW1vdmVkTGluZVRvb2wudW5zdWJzY3JpYmVBbGwodGhpcyksVC5maW5pc2hlZExpbmVUb29sLnVuc3Vic2NyaWJlQWxsKHRoaXMpLFQuY2hhbmdlZExpbmVTdHlsZS51bnN1YnNjcmliZUFsbCh0aGlzKSxULnJlc3RvcmVkTGluZVRvb2xTdGF0ZS51bnN1YnNjcmliZUFsbCh0aGlzKSxULnJlc3RvcmVkTGluZVRvb2wudW5zdWJzY3JpYmVBbGwodGhpcyksVC5jb3BpZWRMaW5lVG9vbC51bnN1YnNjcmliZUFsbCh0aGlzKSx0aGlzLl9hY3RpdmVDaGFydFdpZGdldFdWLmRlc3Ryb3koKX10aXRsZSgpe3JldHVybiBwLnQobnVsbCx2b2lkIDAsaSg2MjU3ODgpKX1lbXVsYXRlQ3JpdGljYWxFcnJvcigpe3RoaXMuX2NoYXJ0U2Vzc2lvbi5yZW1vdmVTZXJpZXMoIi0xIil9Y2hhcnRTZXNzaW9uKCl7cmV0dXJuIHRoaXMuX2NoYXJ0U2Vzc2lvbn1vbkRpc2Nvbm5lY3RlZCgpe3JldHVybiB0aGlzLl9kaXNjb25uZWN0ZWR9b25SZWNvbm5lY3RCYWlsb3V0KCl7cmV0dXJuIHRoaXMuX3JlY29ubmVjdEJhaWxvdXR9b25Db25uZWN0ZWQoKXtyZXR1cm4gdGhpcy5fY29ubmVjdGVkfWNoYXJ0V2lkZ2V0SW5pdGlhbGl6ZWQoKXtyZXR1cm4gdGhpcy5fY2hhcnRXaWRnZXRJbml0aWFsaXplZH1zZXRCYXJzQnV0dG9uKGUpe3RoaXMuX2JhcnNCdXR0b249ZX1zZXRWaXNpYmxlVGltZVJhbmdlKGUsdCxpLHMsbil7dGhyb3cgbmV3IEVycm9yKCJOb3QgaW1wbGVtZW50ZWQiKX1jaGFydFdpZGdldENvbGxlY3Rpb24oKXtyZXR1cm4gdGhpcy5fY2hhcnRXaWRnZXRDb2xsZWN0aW9ufWlzSW5pdGlhbGl6ZWQoKXtyZXR1cm4gdGhpcy5faW5pdGVkfWxpbmVUb29sc1N5bmNocm9uaXplcigpe3JldHVybiB0aGlzLl9saW5lVG9vbHNTeW5jaHJvbml6ZXJ9YWN0aW9ucygpe3JldHVybiBudWxsPT09dGhpcy5fYWN0aW9ucz90aGlzLl9zZXRBY3Rpb25zKCk6dGhpcy5fYWN0aW9uc31kZWZhdWx0U3ltYm9sKCl7cmV0dXJuIHRoaXMuX2RlZlN5bWJvbH1yZXF1ZXN0RnVsbHNjcmVlbigpe3RoaXMuZ2V0UmVzaXplckRldGFjaGVyKCkucmVxdWVzdEZ1bGxzY3JlZW4oKX1leGl0RnVsbHNjcmVlbigpe3RoaXMuZ2V0UmVzaXplckRldGFjaGVyKCkuZXhpdEZ1bGxzY3JlZW4oKX1pbkZ1bGxzY3JlZW4oKXtyZXR1cm4gdGhpcy5nZXRSZXNpemVyRGV0YWNoZXIoKS5mdWxsc2NyZWVuLnZhbHVlKCl9bW9kZWxDcmVhdGVkKCl7cmV0dXJuIHRoaXMuX21vZGVsQ3JlYXRlZH1jb250YWluc1N0dWR5QnlQcmVkaWNhdGUoZSl7cmV0dXJuISF0aGlzLmhhc01vZGVsKCkmJnRoaXMubW9kZWwoKS5kYXRhU291cmNlcygpLnNvbWUoKHQ9PiEhKDAsdGkuaXNTdHVkeSkodCkmJmUodC5tZXRhSW5mbygpKSkpfW1vZGVsKCl7cmV0dXJuKDAsbC5lbnN1cmVOb3ROdWxsKSh0aGlzLl9tb2RlbFdWLnZhbHVlKCkpfWlkKCl7cmV0dXJuIHRoaXMuX2lkfWxheW91dElkKCl7cmV0dXJuIHRoaXMuX2NoYXJ0V2lkZ2V0Q29sbGVjdGlvbi5tZXRhSW5mby51aWQudmFsdWUoKX1wcm9wZXJ0aWVzKCl7cmV0dXJuIHRoaXMuX3Byb3BlcnRpZXN9Cm1haW5TZXJpZXNQcm9wZXJ0aWVzKCl7cmV0dXJuIHRoaXMuX21haW5TZXJpZXNQcm9wZXJ0aWVzfXJlYWRPbmx5KCl7cmV0dXJuIEJvb2xlYW4odGhpcy5fb3B0aW9ucy5yZWFkT25seSl9aXNBY3RpdmUoKXtyZXR1cm4gdGhpcy5faXNBY3RpdmUucmVhZG9ubHkoKX1pc0hvdmVyZWQoKXtyZXR1cm4gdGhpcy5faXNIb3ZlcmVkLnJlYWRvbmx5KCl9Y3Jvc3NIYWlyU3luY0VuYWJsZWQoKXtyZXR1cm4gdGhpcy5fY2hhcnRXaWRnZXRDb2xsZWN0aW9uLmxvY2suY3Jvc3NoYWlyLnZhbHVlKCl9aXNWaXNpYmxlKCl7cmV0dXJuIHRoaXMuX2lzVmlzaWJsZS52YWx1ZSgpfXNldFZpc2libGUoZSl7dGhpcy5faXNWaXNpYmxlLnNldFZhbHVlKGUpfXZpc2libGUoKXtyZXR1cm4gdGhpcy5faXNWaXNpYmxlLnJlYWRvbmx5KCl9aXNDb2xsYXBzZWQoKXtyZXR1cm4gdGhpcy5fY29sbGFwc2VkLnZhbHVlKCl9c2V0Q29sbGFwc2VkKGUpe3RoaXMuX2NvbGxhcHNlZC5zZXRWYWx1ZShlKX1jb2xsYXBzZWQoKXtyZXR1cm4gdGhpcy5fY29sbGFwc2VkLnJlYWRvbmx5KCl9aXNKdXN0Q2xvbmVkQ2hhcnQoKXtyZXR1cm4hISh0aGlzLl9vcHRpb25zfHx7fSkuanVzdENsb25lZH1yZW1vdmVBbGxEcmF3aW5nVG9vbHMoKXshIXRoaXMubW9kZWwoKS5tb2RlbCgpLmFsbExpbmVUb29scygpLmZpbmQoKGU9PmUuaXNMb2NrZWQ/LigpKSk/KDAsJG0uY29uZmlybVJlbW92aW5nTG9ja2VkTGluZVRvb2xzKSgkbS5EZWxldGVMb2NrZWRMaW5lVG9vbFJlYXNvbi5SZW1vdmVBbGwpLnRoZW4oKGU9Pnt0aGlzLm1vZGVsKCkucmVtb3ZlQWxsRHJhd2luZ1Rvb2xzKGUpfSkpOnRoaXMubW9kZWwoKS5yZW1vdmVBbGxEcmF3aW5nVG9vbHMoITApfXJlbW92ZUFsbFN0dWRpZXMoKXt0aGlzLm1vZGVsKCkucmVtb3ZlQWxsU3R1ZGllcygpfXJlbW92ZUFsbFN0dWRpZXNEcmF3aW5nVG9vbHMoKXshIXRoaXMubW9kZWwoKS5tb2RlbCgpLmFsbExpbmVUb29scygpLmZpbmQoKGU9PmUuaXNMb2NrZWQ/LigpKSk/KDAsJG0uY29uZmlybVJlbW92aW5nTG9ja2VkTGluZVRvb2xzKSgkbS5EZWxldGVMb2NrZWRMaW5lVG9vbFJlYXNvbi5SZW1vdmVBbGwpLnRoZW4oKGU9Pnt0aGlzLm1vZGVsKCkucmVtb3ZlQWxsU3R1ZGllc0FuZERyYXdpbmdUb29scyhlKX0pKTp0aGlzLm1vZGVsKCkucmVtb3ZlQWxsU3R1ZGllc0FuZERyYXdpbmdUb29scyghMCl9cmVtb3ZlU2VsZWN0ZWRTb3VyY2VzKCl7dGhpcy5yZW1vdmVEYXRhU291cmNlcyh0aGlzLm1vZGVsKCkuc2VsZWN0aW9uKCkuZGF0YVNvdXJjZXMoKSl9cmVtb3ZlRGF0YVNvdXJjZXMoZSl7Y29uc3QgdD10aGlzLm1vZGVsKCksaT1lLmZpbHRlcigoZT0+ZSE9PXQubWFpblNlcmllcygpJiZlIT09dC5saW5lQmVpbmdDcmVhdGVkKCkmJmUuaXNVc2VyRGVsZXRhYmxlKCkpKTtpZigwPT09aS5sZW5ndGgpcmV0dXJuO2xldCBzPW51bGw7KDAsdGkuaXNTdHVkeSkoaVswXSkmJigoMCxsLmFzc2VydCkoMT09PWkubGVuZ3RoLCJDYW5ub3QgcmVtb3ZlIHNldmVyYWwgc3R1ZGllcyAobm8gbXVsdGkgc2VsZWN0IGZvciBzdHVkaWVzKSIpLHM9aVswXSk7Y29uc3Qgbj1pLmZpbmQoKGU9PmUuaGFzQWxlcnQoKS52YWx1ZSgpKSkscj0hIWkuZmluZCgoZT0+KDAscmkuaXNMaW5lVG9vbCkoZSkmJmUuaXNMb2NrZWQ/LigpKSk7aWYobikoMCxSXy5jb25maXJtRGF0YXNvdXJjZVJlbW92aW5nKSh7aGFzTG9ja2VkU291cmNlczpyfSkudGhlbigoZT0+e2UmJnQucmVtb3ZlU2VsZWN0ZWRTb3VyY2VzKCl9KSk7ZWxzZSBpZihzJiZzLmhhc0NoaWxkcmVuKCkpe2NvbnN0IGU9cy5nZXRBbGxDaGlsZHJlbigpLm1hcCgoZT0+ZS5uYW1lKCEwKSkpOygwLEx0LnNob3dEZWxldGVTdHVkeVRyZWVDb25maXJtKShlLCgoKT0+e3QucmVtb3ZlU2VsZWN0ZWRTb3VyY2VzKCl9KSl9ZWxzZSByPygwLCRtLnNob3dEZWxldGVMb2NrZWRMaW5lVG9vbHNDb25maXJtKSgkbS5EZWxldGVMb2NrZWRMaW5lVG9vbFJlYXNvbi5SZW1vdmVTZWxlY3RlZCwoZT0+e2V8fHQuc2VsZWN0aW9uTWFjcm8oKGU9PntpLmZpbHRlcigoZT0+KDAscmkuaXNMaW5lVG9vbCkoZSkmJmUuaXNMb2NrZWQ/LigpKSkuZm9yRWFjaCgodD0+e2UucmVtb3ZlSXRlbUZyb21TZWxlY3Rpb24odCl9KSl9KSksdC5yZW1vdmVTZWxlY3RlZFNvdXJjZXMoKX0pKTp0LnJlbW92ZVNlbGVjdGVkU291cmNlcygpfWdldFN5bWJvbChlKXtpZighdGhpcy5oYXNNb2RlbCgpKXJldHVybiB0aGlzLl9zZXRTeW1ib2xJbnRlcnZhbENvbnRlbnRPdmVycmlkZXMuc3ltYm9sfHwoMCxEdC5nZXREZWZhdWx0U3ltYm9sKSgpO2lmKCFlKXJldHVybiB0aGlzLl9zeW1ib2xXVi52YWx1ZSgpO2NvbnN0IHQ9dGhpcy5tb2RlbCgpLm1haW5TZXJpZXMoKS5wcm9wZXJ0aWVzKCkuY2hpbGRzKCk7cmV0dXJuIHQuc2hvcnROYW1lJiZ0LnNob3J0TmFtZS52YWx1ZSgpP3Quc2hvcnROYW1lPy52YWx1ZSgpPz8iIjp0LnN5bWJvbD8udmFsdWUoKT8/IiJ9c2V0U3ltYm9sKGUpe2lmKHRoaXMuaGFzTW9kZWwoKSl7dGhpcy5fc3ltYm9sV1Yuc2V0VmFsdWUoZSk7Y29uc3QgdD10aGlzLm1vZGVsKCk7dC5zZXRTeW1ib2wodC5tYWluU2VyaWVzKCksZSl9ZWxzZSB0aGlzLl9tYWluU2VyaWVzUHJvcGVydGllcy5tZXJnZSh7c3ltYm9sOmV9KSx0aGlzLl9zeW1ib2xXVi5zZXRWYWx1ZShlKSx0aGlzLl9zZXRTeW1ib2xJbnRlcnZhbENvbnRlbnRPdmVycmlkZXMuc3ltYm9sPWV9c2V0UmVzb2x1dGlvbihlKXtpZih0aGlzLmhhc01vZGVsKCkpe3RoaXMuX3Jlc29sdXRpb25XVi5zZXRWYWx1ZShlKTtjb25zdCB0PXRoaXMubW9kZWwoKTt0LnNldFJlc29sdXRpb24odC5tYWluU2VyaWVzKCksZSl9ZWxzZSB0aGlzLl9tYWluU2VyaWVzUHJvcGVydGllcy5tZXJnZSh7aW50ZXJ2YWw6ZX0pLHRoaXMuX3Jlc29sdXRpb25XVi5zZXRWYWx1ZShlKSx0aGlzLl9zZXRTeW1ib2xJbnRlcnZhbENvbnRlbnRPdmVycmlkZXMuaW50ZXJ2YWw9ZX1nZXRSZXNvbHV0aW9uKCl7cmV0dXJuIHRoaXMuX3Jlc29sdXRpb25XVi52YWx1ZSgpfXN5bWJvbFdWKCl7cmV0dXJuIHRoaXMuX3N5bWJvbFdWLnJlYWRvbmx5KCl9CnN5bWJvbEluZm9XVigpe3JldHVybiB0aGlzLl9zeW1ib2xJbmZvV1Z9cmVzb2x1dGlvbldWKCl7cmV0dXJuIHRoaXMuX3Jlc29sdXRpb25XVi5yZWFkb25seSgpfWxvYWRSYW5nZShlKXtpZih0aGlzLmhhc01vZGVsKCkpe3RoaXMuc2NyZWVuLnNob3coKTt0aGlzLm1vZGVsKCkubG9hZFJhbmdlKGUpfHx0aGlzLnNjcmVlbi5oaWRlKCl9fWFzeW5jIHNob3dHZW5lcmFsQ2hhcnRQcm9wZXJ0aWVzKGUsdCl7aWYoISgwLHEuaXNGZWF0dXJlc2V0RW5hYmxlZCkoInNob3dfY2hhcnRfcHJvcGVydHlfcGFnZSIpKXJldHVybiBQcm9taXNlLnJlc29sdmUobnVsbCk7Y29uc3Qgcz1hd2FpdCB0aGlzLl9zaG93Q2hhcnRQcm9wZXJ0aWVzKHRoaXMubW9kZWwoKS5tYWluU2VyaWVzKCksZSx7ZG9Ob3RDbG9zZU9uQmdDbGljazohMCxvblJlc2V0VG9EZWZhdWx0OmFzeW5jKCk9Pnt0aGlzLm1vZGVsKCkucmVzdG9yZVByZWZlcmVuY2VzKCk7Y29uc3RbZSx0XT1hd2FpdCBQcm9taXNlLmFsbChbUHJvbWlzZS5hbGwoW2kuZSg3NDExNCksaS5lKDY0MjUpXSkudGhlbihpLmJpbmQoaSw2NjUxODcpKSxQcm9taXNlLmFsbChbaS5lKDc0MTE0KSxpLmUoNjQyNSldKS50aGVuKGkuYmluZChpLDQxMzQ1MSkpXSkscz1lLmdldEN1cnJlbnRUaGVtZSgpLm5hbWU7dC5sb2FkVGhlbWUodGhpcy5jaGFydFdpZGdldENvbGxlY3Rpb24oKSx7dGhlbWVOYW1lOnMsc3RhbmRhcmRUaGVtZTohMH0pfSxzaG91bGRSZXR1cm5Gb2N1czp0Py5zaG91bGRSZXR1cm5Gb2N1c30pO2lmKG51bGw9PT1zKXJldHVybiBudWxsO2NvbnN0IG49KCk9PntzLmhpZGUoKSx0aGlzLl9hY3RpdmVDaGFydFdpZGdldFdWLnVuc3Vic2NyaWJlKG4pfTtyZXR1cm4gdGhpcy5fYWN0aXZlQ2hhcnRXaWRnZXRXVi5zdWJzY3JpYmUobiksc31zaG93Q2hhcnRQcm9wZXJ0aWVzRm9yU291cmNlKGUsdCxpLHMpe3JldHVybigwLHEuaXNGZWF0dXJlc2V0RW5hYmxlZCkoInByb3BlcnR5X3BhZ2VzIikmJmUudXNlckVkaXRFbmFibGVkKCk/ZT09PXRoaXMubW9kZWwoKS5tb2RlbCgpLm1haW5TZXJpZXMoKT90aGlzLnNob3dHZW5lcmFsQ2hhcnRQcm9wZXJ0aWVzKHQpOigoaT1pfHx7fSkub25SZXNldFRvRGVmYXVsdD0oKT0+eygoMCxyaS5pc0xpbmVUb29sKShlKXx8KDAsdGkuaXNTdHVkeSkoZSkpJiZ0aGlzLm1vZGVsKCkucmVzdG9yZVByb3BlcnRpZXNGb3JTb3VyY2UuYmluZCh0aGlzLm1vZGVsKCksZSl9LHRoaXMuX3Nob3dDaGFydFByb3BlcnRpZXMoZSx0LGkscykpOlByb21pc2UucmVzb2x2ZShudWxsKX10b2dnbGVDb21wYXJlT3JBZGQoKXt0aGlzLl9jb21wYXJlRGlhbG9nLnZpc2libGUoKS52YWx1ZSgpP3RoaXMuX2NvbXBhcmVEaWFsb2cuaGlkZSgpOnRoaXMuX2NvbXBhcmVEaWFsb2cuc2hvdygpfXRhZ3MoKXtyZXR1cm4gdGhpcy5oYXNNb2RlbCgpP3RoaXMubW9kZWwoKS5jYWxjdWxhdGVEZWZhdWx0VGFncygpOltdfW9wdGlvbnMoKXtyZXR1cm4gdGhpcy5fb3B0aW9uc31vd25lckRvY3VtZW50KCl7cmV0dXJuKDAsbC5lbnN1cmVOb3ROdWxsKSh0aGlzLl9wYXJlbnQpLm93bmVyRG9jdW1lbnR9YXN5bmMgc2hvd0NoYXJ0UHJvcGVydGllc0ZvclNvdXJjZXMoZSl7aWYoISgwLHEuaXNGZWF0dXJlc2V0RW5hYmxlZCkoInByb3BlcnR5X3BhZ2VzIikpcmV0dXJuIFByb21pc2UucmVzb2x2ZShudWxsKTtjb25zdHtzb3VyY2VzOnQsdGl0bGU6cyx0YWJOYW1lOm4scmVuYW1hYmxlOnJ9PWUsbz10aGlzLm1vZGVsKCksYT0kdCh0Lm1hcCgoZT0+ZS5wcm9wZXJ0aWVzKCkuY2hpbGRzKCkpKSksbD0kdCh0Lm1hcCgoZT0+ZS5wcm9wZXJ0aWVzKCkuY2hpbGRzKCkuaW50ZXJ2YWxzVmlzaWJpbGl0aWVzKSkpLFt7Y3JlYXRlUHJvcGVydHlQYWdlOmN9LHtnZXRTZWxlY3Rpb25TdHlsZVByb3BlcnRpZXNEZWZpbml0aW9uczpofSx7Z2V0U2VsZWN0aW9uSW50ZXJ2YWxzVmlzaWJpbGl0aWVzUHJvcGVydGllc0RlZmluaXRpb246ZH0se2dldFNlbGVjdGlvbkNvb3JkaW5hdGVzUHJvcGVydHlEZWZpbml0aW9uOnV9XT1hd2FpdCBQcm9taXNlLmFsbChbUHJvbWlzZS5hbGwoW2kuZSg5MDkwNyksaS5lKDU5MzI4KV0pLnRoZW4oaS5iaW5kKGksNTAxNTIyKSksUHJvbWlzZS5hbGwoW2kuZSg5MDkwNyksaS5lKDU5MzI4KV0pLnRoZW4oaS5iaW5kKGksOTkzOTQpKSxQcm9taXNlLmFsbChbaS5lKDkwOTA3KSxpLmUoNTkzMjgpXSkudGhlbihpLmJpbmQoaSw0ODUwMCkpLFByb21pc2UuYWxsKFtpLmUoOTA5MDcpLGkuZSg1OTMyOCldKS50aGVuKGkuYmluZChpLDU3NjgxNykpXSk7cmV0dXJuIGFzeW5jIGZ1bmN0aW9uKGUpewpjb25zdHtTb3VyY2VzUHJvcGVydGllc0VkaXRvclJlbmRlcmVyOnR9PWF3YWl0IFByb21pc2UuYWxsKFtpLmUoMzcwMTIpLGkuZSg4NDMwNiksaS5lKDI5Mjk2KSxpLmUoNTIzOTYpLGkuZSg2MDA2MiksaS5lKDQ2OTA3KSxpLmUoMjAzNTQpLGkuZSgxMzQ5MiksaS5lKDM3NzQ2KSxpLmUoMTIzODUpLGkuZSg4MTA3MiksaS5lKDk0OTQ4KSxpLmUoMjM2MjQpLGkuZSgzNjIyMiksaS5lKDI5NTM2KSxpLmUoNTYyNTIpLGkuZSgxOTU5NSksaS5lKDE5Nzg3KSxpLmUoNjc3OTkpLGkuZSgxMTQ2MSksaS5lKDI0NTgxKSxpLmUoOTY1ODcpLGkuZSgxMTIxOCksaS5lKDg2NDIzKSxpLmUoMzc1MTMpLGkuZSg4NTc5KSxpLmUoNDA4MzUpLGkuZSgxNzA4NyksaS5lKDcyNjY2KSxpLmUoOTM0MjEpLGkuZSg3ODY1MiksaS5lKDEwMzg1KSxpLmUoNTIwNjUpLGkuZSg2NjA1KSxpLmUoNzA4MTUpLGkuZSg3NDM4MSksaS5lKDE1NTI2KSxpLmUoOTM0MTYpLGkuZSg2MTgyMSksaS5lKDU3MzAwKSxpLmUoODk1NTgpLGkuZSgxMDM2NiksaS5lKDUxNjgyKSxpLmUoMjAyKSxpLmUoOTc2NjApLGkuZSg3MjUxMiksaS5lKDM1MTk4KSxpLmUoMzMxMjApLGkuZSg0MDg2NyksaS5lKDM5Nzg2KSxpLmUoNTA4MDApLGkuZSg1MDYyMiksaS5lKDYwODIpLGkuZSgyNzMzNyksaS5lKDQwOTE0KSxpLmUoMjc3MzYpLGkuZSg4Nzc0MCksaS5lKDY3NTQzKSxpLmUoMzg0NzkpLGkuZSg5MDMzMCksaS5lKDk2MTgxKSxpLmUoMjA1NjQpLGkuZSg1MTI1NiksaS5lKDQ1MzMxKSxpLmUoNDUyNDIpLGkuZSg3ODYzKSxpLmUoNDYyNDUpLGkuZSg1NTI5MCksaS5lKDc0NDcxKSxpLmUoMjAzNzApLGkuZSgxNzg2MSksaS5lKDMyMzg3KSxpLmUoODA5MTUpLGkuZSgxODUxMiksaS5lKDQwNzU0KSxpLmUoOTU1NTQpLGkuZSgyMzc0MyksaS5lKDcyMTEpLGkuZSg5OTMwOSksaS5lKDU1MjI5KSxpLmUoNzM1MzUpLGkuZSgyNjUwMSksaS5lKDEwOTk5KSxpLmUoMzg5NzMpLGkuZSg5Njk3MCksaS5lKDEyMDYwKV0pLnRoZW4oaS5iaW5kKGksMjgyNDA0KSkscz1uZXcgdChlKTtyZXR1cm4gbnVsbCE9PXp0JiYoenQuaGlkZSgpLHp0PXMpLHMuc2hvdygpLHN9KHtzb3VyY2VzOnQscHJvcGVydHlQYWdlczpbYyhoKGEsbyksInN0eWxlIixwLnQobnVsbCx2b2lkIDAsaSg5MzE5OTIpKSksYyh7ZGVmaW5pdGlvbnM6W3UodCxvKV19LCJkaXNwbGFjZW1lbnQiLHAudChudWxsLHZvaWQgMCxpKDM3MTU0OSkpKSxjKGQobCxvKSwidmlzaWJpbGl0eSIscC50KG51bGwsdm9pZCAwLGkoOTg3NzMzKSkpXSx1bmRvTW9kZWw6byx0aXRsZTpzLGFjdGl2ZVRhYklkOm4scmVuYW1hYmxlOnJ9KX1nZXRQcmljZUF4aXNXaWR0aENoYW5nZWRCeU5hbWUoZSl7cmV0dXJuImxlZnQiPT09ZT90aGlzLl9saHNQcmljZUF4aXNXaWR0aENoYW5nZWQ6dGhpcy5fcmhzUHJpY2VBeGlzV2lkdGhDaGFuZ2VkfWdldFByaWNlQXhpc01heFdpZHRoQnlOYW1lKGUpe3JldHVybiJsZWZ0Ij09PWU/dGhpcy5fbGhzQXhlc1dpZHRoOnRoaXMuX3Joc0F4ZXNXaWR0aH10aW1lQXhpc0hlaWdodCgpe3JldHVybiBudWxsIT09dGhpcy5fdGltZUF4aXNXaWRnZXQ/dGhpcy5fdGltZUF4aXNXaWRnZXQuc2l6ZS5oZWlnaHQ6MH13aXRoTW9kZWwoZSx0KXt0aGlzLmhhc01vZGVsKCk/dC5jYWxsKGUpOnRoaXMubW9kZWxDcmVhdGVkKCkuc3Vic2NyaWJlKGUsdCwhMCl9bW9kZWxXVigpe3JldHVybiB0aGlzLl9tb2RlbFdWLnJlYWRvbmx5KCl9aGFzTW9kZWwoKXtyZXR1cm4gbnVsbCE9PXRoaXMuX21vZGVsV1YudmFsdWUoKX1vblJlZHJhdygpe3JldHVybiB0aGlzLl9yZWRyYXd9Y29weUxpbmVUb090aGVyQ2hhcnRzKCl7Y29uc3QgZT10aGlzLm1vZGVsKCksdD1lLnNlbGVjdGlvbigpLmxpbmVEYXRhU291cmNlcygpLmZpbHRlcigoZT0+ZS5pc1N5bmNocm9uaXphYmxlKCkpKTtlLm1vZGVsKCkuY29weVRvT3RoZXJDaGFydHModCwhMCl9dG9nZ2xlTG9ja1NlbGVjdGVkT2JqZWN0KCl7Y29uc3QgZT10aGlzLm1vZGVsKCk7ZS5zZWxlY3Rpb24oKS5saW5lRGF0YVNvdXJjZXMoKS5mb3JFYWNoKCh0PT57Y29uc3QgaT10LnByb3BlcnRpZXMoKS5mcm96ZW4udmFsdWUoKTtlLnNldFByb3BlcnR5KHQucHJvcGVydGllcygpLmZyb3plbiwhaSwoaT9abTpKbSkuZm9ybWF0KHt0aXRsZTpuZXcgeS5UcmFuc2xhdGVkU3RyaW5nKHQubmFtZSgpLHQudGl0bGUoTm4uVGl0bGVEaXNwbGF5VGFyZ2V0LlN0YXR1c0xpbmUpKX0pLFFuLmxpbmVUb29sc0RvTm90QWZmZWN0Q2hhcnRJbnZhbGlkYXRpb24pfSkpfWhpZGVEYXRhU291cmNlcyhlKXtpZihlLmxlbmd0aCl7Y29uc3QgdD1lLm1hcCgoZT0+ZS5wcm9wZXJ0aWVzKCkudmlzaWJsZSkpLGk9ZS5tYXAoKCgpPT4hMSkpO3RoaXMubW9kZWwoKS5zZXRQcm9wZXJ0aWVzKHQsaSxYbS5mb3JtYXQoe3RpdGxlOm5ldyB5LlRyYW5zbGF0ZWRTdHJpbmcoZVswXS5uYW1lKCksZVswXS50aXRsZShObi5UaXRsZURpc3BsYXlUYXJnZXQuU3RhdHVzTGluZSkpfSkpfX1oaWRlU2VsZWN0ZWRPYmplY3QoKXt0aGlzLmhpZGVEYXRhU291cmNlcyh0aGlzLm1vZGVsKCkuc2VsZWN0aW9uKCkuZGF0YVNvdXJjZXMoKS5maWx0ZXIoKGU9PiEoMCxxaS5pc0FsZXJ0TGFiZWwpKGUpKSkpfXVubGlua1NlbGVjdGVkTGluZSgpe2NvbnN0IGU9dGhpcy5tb2RlbCgpLHQ9ZS5zZWxlY3Rpb24oKS5saW5lRGF0YVNvdXJjZXMoKTtlLnVubGlua0xpbmVzKHQpfXBhbmVXaWRnZXRzV1YoKXtyZXR1cm4gdGhpcy5fcGFuZVdpZGdldHN9cGFuZVdpZGdldHMoKXtyZXR1cm4gdGhpcy5fcGFuZVdpZGdldHMudmFsdWUoKX1wYW5lV2lkZ2V0U2VwYXJhdG9ycyhlKXtjb25zdCB0PXRoaXMucGFuZVdpZGdldHMoKS5pbmRleE9mKGUpLGk9e307cmV0dXJuIHRoaXMuX3BhbmVTZXBhcmF0b3JzLmZvckVhY2goKGU9PntlLnRvcFBhbmVJbmRleCgpPT09dCYmKGkuc2VwYXJhdG9yQmVsb3c9ZSksZS5ib3R0b21QYW5lSW5kZXgoKT09PXQmJihpLnNlcGFyYXRvckFib3ZlPWUpfSkpLGl9YWN0aXZlUGFuZVdpZGdldCgpe3JldHVybiB0aGlzLl9hY3RpdmVQYW5lV2lkZ2V0LnJlYWRvbmx5KCl9cGFuZUJ5U3RhdGUoZSl7CnJldHVybiB0aGlzLl9wYW5lV2lkZ2V0cy52YWx1ZSgpLmZpbmQoKHQ9PnQuaGFzU3RhdGUoKSYmdC5zdGF0ZSgpPT09ZSkpPz9udWxsfXBhbmVCeUNhbnZhcyhlKXtyZXR1cm4gdGhpcy5fcGFuZVdpZGdldHMudmFsdWUoKS5maW5kKCh0PT50Lmhhc0NhbnZhcyhlKSkpPz9udWxsfXRpbWVBeGlzQnlDYW52YXMoZSl7cmV0dXJuIHRoaXMuX3RpbWVBeGlzV2lkZ2V0Py5oYXNDYW52YXMoZSk/dGhpcy5fdGltZUF4aXNXaWRnZXQ6bnVsbH1zZWxlY3RQb2ludE1vZGUoKXtyZXR1cm4gdGhpcy5tb2RlbCgpLm1vZGVsKCkuc2VsZWN0UG9pbnRNb2RlKCl9Y2FuY2VsUmVxdWVzdFNlbGVjdFBvaW50KCl7Y29uc3QgZT10aGlzLm1vZGVsKCkubW9kZWwoKTtlLmNhbmNlbFJlcXVlc3RTZWxlY3RQb2ludCgpLGUuc2V0UmVwbGF5U3RhdHVzKGUuaXNJblJlcGxheSgpLnZhbHVlKCk/MzowKSxlLmNsZWFyQ3VycmVudFBvc2l0aW9uKCl9cmVxdWVzdFNlbGVjdFBvaW50KGUsdCl7Y29uc3QgaT10aGlzLm1vZGVsKCk7cmV0dXJuIGUuc2VsZWN0UG9pbnRNb2RlPT09VC5TZWxlY3RQb2ludE1vZGUuUmVwbGF5JiZpLm1vZGVsKCkuc2V0UmVwbGF5U3RhdHVzKDEpLG5ldyBQcm9taXNlKCgocyxuKT0+e2NvbnN0IHI9KCk9PiEhdGhpcy5pc1Zpc2libGUoKXx8KG4oIkNoYXJ0d2lkZ2V0IG11c3QgYmUgdmlzaWJsZSIpLHRoaXMuY2FuY2VsUmVxdWVzdFNlbGVjdFBvaW50KCksITEpO2lmKCFyKCkpcmV0dXJuOygwLFQucmVzZXRUb0N1cnNvcikoITApLGkubGluZUJlaW5nQ3JlYXRlZCgpJiZpLmNhbmNlbENyZWF0aW5nTGluZSgpO2xldCBvPSExO2NvbnN0IGE9e307aS5tb2RlbCgpLm9uUG9pbnRTZWxlY3RlZCgpLnN1YnNjcmliZShhLCgoZSx0KT0+e289ITAsdGhpcy5faXNWaXNpYmxlLnVuc3Vic2NyaWJlKHIpLHRoaXMuX2hpZGVIaW50KCkscyh7cG9pbnQ6ZSxwYW5lOnR9KX0pLCEwKSxpLm1vZGVsKCkucmVxdWVzdFNlbGVjdFBvaW50KGUpLHRoaXMuc3RhcnRUcmFja2luZ01vZGUoKSx2b2lkIDAhPT10JiZ0aGlzLl9zaG93RXZlbnRIaW50KHQpLHRoaXMuX2lzVmlzaWJsZS5zdWJzY3JpYmUociksdGhpcy5zZWxlY3RQb2ludE1vZGUoKS5zdWJzY3JpYmUoKCgpPT57c2V0VGltZW91dCgoKCk9PntvfHwodGhpcy5zZWxlY3RQb2ludE1vZGUoKS52YWx1ZSgpPT09VC5TZWxlY3RQb2ludE1vZGUuTm9uZSYmdGhpcy5faGlkZUhpbnQoKSxpLm1vZGVsKCkub25Qb2ludFNlbGVjdGVkKCkudW5zdWJzY3JpYmVBbGwoYSksdGhpcy5faXNWaXNpYmxlLnVuc3Vic2NyaWJlKHIpLG4oImNhbmNlbGxlZCIpKX0pKX0pLHtvbmNlOiEwfSl9KSl9c2hvd1JlcGxheU9yZGVyQ29uZmlybWF0aW9uRGlhbG9nKCl7cmV0dXJuIHRoaXMubW9kZWwoKS5pc0luUmVwbGF5KCkudmFsdWUoKT9uZXcgUHJvbWlzZSgoKGUsdCk9PnsoMCxoZS5zaG93Q29uZmlybSkoe3RleHQ6cC50KG51bGwsdm9pZCAwLGkoNTU4NDQ0KSksb25Db25maXJtOnQ9PntlKCksdC5kaWFsb2dDbG9zZSgpfSxvbkNsb3NlOnR9KX0pKTpQcm9taXNlLnJlc29sdmUoKX1zaG93U291cmNlUHJvcGVydGllcyhlLHQpe2U9PT10aGlzLm1vZGVsKCkubWFpblNlcmllcygpJiYodD1KdC5UYWJOYW1lcy5zeW1ib2wpLHRoaXMuc2hvd0NoYXJ0UHJvcGVydGllc0ZvclNvdXJjZShlLHQpfW9uU2Nyb2xsKCl7cmV0dXJuIHRoaXMuX29uU2Nyb2xsfW9uWm9vbSgpe3JldHVybiB0aGlzLl9vblpvb219b25UYWdzQ2hhbmdlZCgpe3JldHVybiB0aGlzLl90YWdzQ2hhbmdlZH1vbldpZGdldCgpe3JldHVybiB0aGlzLl9vbldpZGdldH1jb250YWluc1ZvbHVtZSgpe3JldHVybiB0aGlzLm1vZGVsKCkuZGF0YVNvdXJjZXMoKS5zb21lKChlPT4oMCx0aS5pc1N0dWR5KShlKSYmIlZvbHVtZSI9PT1lLm1ldGFJbmZvKCkuc2hvcnRJZCkpfWNvbnRhaW5zU3R1ZHkoZSl7cmV0dXJuIHRoaXMuY29udGFpbnNTdHVkeUJ5UHJlZGljYXRlKCh0PT50LmlkPT09ZXx8dC5mdWxsSWQ9PT1lKSl9aXNTbWFsbCgpe3JldHVybiB0aGlzLl93aWR0aCgpPDU1MHx8dGhpcy5faGVpZ2h0KCk8MzAwfW9uQ21lV2lkZ2V0KCl7cmV0dXJuImNtZSI9PT10aGlzLl93aWRnZXRDdXN0b21lcn13aWRnZXRDdXN0b21lcigpe3JldHVybiB0aGlzLl93aWRnZXRDdXN0b21lcn1jb21wYXJlU3ltYm9scygpe3JldHVybiB0aGlzLl9jb21wYXJlU3ltYm9sc31pbWFnZXMoZSl7d2luZG93LlRyYWRpbmdWaWV3LnByaW50aW5nPSEwO2NvbnN0IHQ9dGhpcy5tb2RlbCgpLnNlbGVjdGlvbigpLmFsbFNvdXJjZXMoKTt0aGlzLm1vZGVsKCkuc2VsZWN0aW9uTWFjcm8oKGU9PmUuY2xlYXJTZWxlY3Rpb24oKSkpLHRoaXMubW9kZWwoKS5tb2RlbCgpLnJlY2FsY3VsYXRlQWxsUGFuZXMoKDAsdG4uZ2xvYmFsQ2hhbmdlRXZlbnQpKCkpO2NvbnN0IGk9KHQsaSk9Pnt0LnBhaW50KGksTGUuSW52YWxpZGF0aW9uTWFzay50aW1lU2NhbGUoTGUuSW52YWxpZGF0aW9uTGV2ZWwuTGlnaHQsITApLmludmFsaWRhdGlvbkZvclRpbWVTY2FsZSgpKTtjb25zdCBzPXtzaG93Q29sbGFwc2VkU3R1ZGllczpCb29sZWFuKGU/LnNob3dDb2xsYXBzZWRTdHVkaWVzKSxzdGF0dXM6ZT8uc3RhdHVzfTtyZXR1cm4gdC5nZXRTY3JlZW5zaG90RGF0YShzKX0scz1bXSxuPXRoaXMubWF4aW1pemVkUGFuZVdpZGdldCgpO2lmKG51bGwhPT1uKXtjb25zdCBlPXRoaXMuX3BhbmVXaWRnZXRzLnZhbHVlKCkuaW5kZXhPZihuKTtzLnB1c2goaShuLExlLkludmFsaWRhdGlvbk1hc2subGlnaHQoKS5pbnZhbGlkYXRpb25Gb3JQYW5lKGUpKSl9ZWxzZXtjb25zdCBlPXRoaXMuX3BhbmVXaWRnZXRzLnZhbHVlKCk7ZS5mb3JFYWNoKCgodCxuKT0+e3MucHVzaChpKHQsTGUuSW52YWxpZGF0aW9uTWFzay5saWdodCgpLmludmFsaWRhdGlvbkZvclBhbmUobikpKSxuPGUubGVuZ3RoLTEmJnMucHVzaCh0aGlzLl9wYW5lU2VwYXJhdG9yc1tuXS5pbWFnZSgpKX0pKX1sZXQgcgo7dGhpcy5fdGltZUF4aXNXaWRnZXQmJih0aGlzLl90aW1lQXhpc1dpZGdldC5wYWludChMZS5JbnZhbGlkYXRpb25NYXNrLnRpbWVTY2FsZShMZS5JbnZhbGlkYXRpb25MZXZlbC5MaWdodCwhMCkuaW52YWxpZGF0aW9uRm9yVGltZVNjYWxlKCkpLHI9dGhpcy5fdGltZUF4aXNXaWRnZXQuZ2V0U2NyZWVuc2hvdERhdGEoKSksd2luZG93LlRyYWRpbmdWaWV3LnByaW50aW5nPSExLHRoaXMubW9kZWwoKS5zZWxlY3Rpb25NYWNybygoZT0+e3QuZm9yRWFjaCgodD0+e2UuYWRkSXRlbVRvU2VsZWN0aW9uKHQpfSkpfSkpLHRoaXMubW9kZWwoKS5tb2RlbCgpLnJlY2FsY3VsYXRlQWxsUGFuZXMoKDAsdG4uZ2xvYmFsQ2hhbmdlRXZlbnQpKCkpLHRoaXMubW9kZWwoKS5tb2RlbCgpLmxpZ2h0VXBkYXRlKCk7Y29uc3Qgbz10aGlzLm1haW5TZXJpZXNRdW90ZXNBbmRNZXRhaW5mbygpO3JldHVybntwYW5lczpzLHRpbWVBeGlzOnIsY29sb3JzOnt0ZXh0OnRoaXMucHJvcGVydGllcygpLmNoaWxkcygpLnNjYWxlc1Byb3BlcnRpZXMuY2hpbGRzKCkudGV4dENvbG9yLnZhbHVlKCksYmc6dGhpcy5wcm9wZXJ0aWVzKCkuY2hpbGRzKCkucGFuZVByb3BlcnRpZXMuY2hpbGRzKCkuYmFja2dyb3VuZC52YWx1ZSgpLHNjYWxlczp0aGlzLnByb3BlcnRpZXMoKS5jaGlsZHMoKS5zY2FsZXNQcm9wZXJ0aWVzLmNoaWxkcygpLmxpbmVDb2xvci52YWx1ZSgpfSxtZXRhOm8ubWV0YSxvaGxjOm8ub2hsYyxxdW90ZXM6by5xdW90ZXN9fWluc2VydFN0dWR5KGUsdCxpLHMsbil7cmV0dXJuIHRoaXMuX2luc2VydFN0dWR5T3JSZXBsYWNlU3R1YihlLHQsdm9pZCAwLGkscyxuKX1yZXBsYWNlU3R1YkJ5U3R1ZHkoZSx0LGkscyxuLHIpe3JldHVybiBlLnVwZGF0ZURlc2NyaXB0b3IodCksdGhpcy5faW5zZXJ0U3R1ZHlPclJlcGxhY2VTdHViKHQsaSxlLHMsbixyKX1hZGRPdmVybGF5U3R1ZHkoZSx0LGkpe2NvbnN0IHM9dGhpcy5tb2RlbCgpO3JldHVybiB0aGlzLl9vcHRpb25zJiZ0aGlzLl9vcHRpb25zLmlzU3ltYm9sQXZhaWxhYmxlP3RoaXMuX29wdGlvbnMuaXNTeW1ib2xBdmFpbGFibGUoZSkudGhlbigoYXN5bmMgbj0+e2lmKCFuKXJldHVybiBudWxsO2F3YWl0KDAsYXQuc3R1ZHlNZXRhSW5mb1JlcG9zaXRvcnkpKCkucmVxdWVzdE1ldGFJbmZvKCk7Y29uc3Qgcj1zLmNyZWF0ZVN0dWR5SW5zZXJ0ZXIoe3R5cGU6ImphdmEiLHN0dWR5SWQ6Ik92ZXJsYXlAdHYtYmFzaWNzdHVkaWVzIn0sW10pLG89e2FsbG93RXh0ZW5kVGltZVNjYWxlOml9O2lmKCgwLHEuaXNGZWF0dXJlc2V0RW5hYmxlZCkoInVzZV9vdmVycmlkZXNfZm9yX292ZXJsYXkiKSl7Y29uc3QgZT0oMCwkbC5mYWN0b3J5RGVmYXVsdHMpKCJzdHVkeV9PdmVybGF5QHR2LWJhc2ljc3R1ZGllcy5zdHlsZSIpO28uc3R5bGU9ZX1yZXR1cm4gci5zZXRQcm9wZXJ0aWVzU3RhdGUobyksci5zZXRGb3JjZU92ZXJsYXkodCksci5pbnNlcnQoKCgpPT5Qcm9taXNlLnJlc29sdmUoe2lucHV0czp7c3ltYm9sOmV9LHBhcmVudFNvdXJjZXM6W119KSkpfSkpOlByb21pc2UucmVzb2x2ZShudWxsKX1zaG93SW5kaWNhdG9ycyhlLHQpe2lmKHdpbmRvdy5zdHVkeU1hcmtldClyZXR1cm4gd2luZG93LnN0dWR5TWFya2V0LnZpc2libGUoKS52YWx1ZSgpP3ZvaWQgd2luZG93LnN0dWR5TWFya2V0LmhpZGUoKTood2luZG93LnN0dWR5TWFya2V0LnNob3coZSx0KSwoMCx4Xy50cmFja0J1dHRvbkNsaWNrKSgiaG90a2V5IiwiaW5kaWNhdG9ycyIsdm9pZCAwLCEwKSx3aW5kb3cuc3R1ZHlNYXJrZXQpfXNldFNhdmVDaGFydFNlcnZpY2UoZSl7dGhpcy5fc2F2ZUNoYXJ0U2VydmljZT1lLG51bGwhPT10aGlzLl9saW5lVG9vbHNTeW5jaHJvbml6ZXImJnRoaXMuX2xpbmVUb29sc1N5bmNocm9uaXplci5zZXRTYXZlQ2hhcnRTZXJ2aWNlKGUpfWdldFNhdmVDaGFydFNlcnZpY2UoKXtyZXR1cm4gdGhpcy5fc2F2ZUNoYXJ0U2VydmljZX1tYWluU2VyaWVzUXVvdGVzQW5kTWV0YWluZm8oKXtsZXQgZSx0LGk7Y29uc3Qgcz10aGlzLmhhc01vZGVsKCkmJnRoaXMubW9kZWwoKS5tYWluU2VyaWVzKCk7aWYocyl7Y29uc3Qgbj1lPT5udWxsPT1lPyIiOnMuZm9ybWF0dGVyKCkuZm9ybWF0KGUse3NpZ25OZWdhdGl2ZTohMCx1c2VSdGxGb3JtYXQ6ITF9KSxyPWU9Pm51bGw9PWU/IiI6ZSsiIjtlPXtyZXNvbHV0aW9uOnMuaW50ZXJ2YWwoKSxzeW1ib2w6cy5zeW1ib2woKSx2YWx1ZXM6cy5sZWdlbmRWYWx1ZXNQcm92aWRlcigpLmdldFZhbHVlcyhudWxsKX07Y29uc3Qgbz1zLnN5bWJvbEluZm8oKTtvJiYoZS5zeW1ib2w9by5mdWxsX25hbWUsZS5kZXNjcmlwdGlvbj1vLmRlc2NyaXB0aW9uLGUuZXhjaGFuZ2U9by5leGNoYW5nZSk7Y29uc3QgYT1zLmJhcnMoKS5sYXN0KCk7bnVsbCE9PWEmJih0PWEudmFsdWUuc2xpY2UoMSw1KS5tYXAobikpO2NvbnN0IGw9cy5xdW90ZXMoKTtsJiYoaT17Y2hhbmdlOm4obC5jaGFuZ2UpLGNoYW5nZVBlcmNlbnQ6cihsLmNoYW5nZV9wZXJjZW50KSxsYXN0Om4obC5sYXN0X3ByaWNlKX0pfXJldHVybnttZXRhOmUsb2hsYzp0LHF1b3RlczppfX1pc011bHRpcGxlTGF5b3V0KCl7cmV0dXJuIHRoaXMuX2lzTXVsdGlwbGVMYXlvdXR9dXBkYXRlQ3Jvc3NIYWlyUG9zaXRpb25JZk5lZWRlZCgpe2lmKHRoaXMuaGFzTW9kZWwoKSl7Y29uc3QgZT0oMCx1aS5sYXN0TW91c2VPclRvdWNoRXZlbnRJbmZvKSgpO2lmKGUuaXNUb3VjaCl7Y29uc3QgdD10aGlzLm1heGltaXplZFBhbmVXaWRnZXQoKXx8dGhpcy5fcGFuZVdpZGdldHMudmFsdWUoKVswXTtpZih0Lmhhc1N0YXRlKCkmJighZS5zdHlsdXMmJih0aGlzLl9pc0xpbmVUb29sTW9kZUV4Y2VwdEJydXNoKCl8fCgwLFQudG9vbElzTWVhc3VyZSkoVC50b29sLnZhbHVlKCkpKXx8dGhpcy5zZWxlY3RQb2ludE1vZGUoKS52YWx1ZSgpIT09VC5TZWxlY3RQb2ludE1vZGUuTm9uZSkpe2NvbnN0IGU9LjUqdGhpcy5tb2RlbCgpLm1vZGVsKCkudGltZVNjYWxlKCkud2lkdGgoKSxpPS41KnQuc3RhdGUoKS5kZWZhdWx0UHJpY2VTY2FsZSgpLmhlaWdodCgpO3Quc2V0Q3Vyc29yUG9zaXRpb24oZSxpKX0KY29uc3QgaT10aGlzLm1vZGVsKCkubW9kZWwoKS5jcm9zc2hhaXJTb3VyY2UoKTtpLnVwZGF0ZUFsbFZpZXdzKCgwLHRuLnNvdXJjZUNoYW5nZUV2ZW50KShpLmlkKCkpKX19fXRyYWNraW5nTW9kZVBhbmVXaWRnZXQoKXtpZighKDAsdWkubGFzdE1vdXNlT3JUb3VjaEV2ZW50SW5mbykoKS5pc1RvdWNoKXJldHVybiBudWxsO2Zvcihjb25zdCBlIG9mIHRoaXMucGFuZVdpZGdldHMoKSlpZihlLnRyYWNraW5nTW9kZUVuYWJsZWQoKSlyZXR1cm4gZTtyZXR1cm4gbnVsbH1zdGFydFRyYWNraW5nTW9kZSgpe2lmKCgwLHVpLmxhc3RNb3VzZU9yVG91Y2hFdmVudEluZm8pKCkuaXNUb3VjaCl7dGhpcy5leGl0VHJhY2tpbmdNb2RlKCksdGhpcy51cGRhdGVDcm9zc0hhaXJQb3NpdGlvbklmTmVlZGVkKCk7Y29uc3QgZT10aGlzLm1heGltaXplZFBhbmVXaWRnZXQoKXx8dGhpcy5fcGFuZVdpZGdldHMudmFsdWUoKVswXSx0PXRoaXMubW9kZWwoKS5tb2RlbCgpLmNyb3NzaGFpclNvdXJjZSgpLmN1cnJlbnRQb2ludCgpO2Uuc3RhcnRUcmFja2luZ01vZGUodCx0KX19ZXhpdFRyYWNraW5nTW9kZSgpeygwLHVpLmxhc3RNb3VzZU9yVG91Y2hFdmVudEluZm8pKCkuaXNUb3VjaCYmdGhpcy5wYW5lV2lkZ2V0cygpLnNvbWUoKGU9PmUudHJhY2tpbmdNb2RlRW5hYmxlZCgpKSkmJih0aGlzLnBhbmVXaWRnZXRzKCkuZm9yRWFjaCgoZT0+ZS5leGl0VHJhY2tpbmdNb2RlKCkpKSx0aGlzLm1vZGVsKCkubW9kZWwoKS5jbGVhckN1cnJlbnRQb3NpdGlvbigpKX1vblRvb2xDaGFuZ2VkKCl7Y29uc3QgZT10aGlzLm1vZGVsKCkubW9kZWwoKTtlLmxpbmVCZWluZ0NyZWF0ZWQoKSYmIWUubGluZUJlaW5nQ3JlYXRlRnJvbUV4dGVybmFsKCkmJnRoaXMuX2NhbmNlbENyZWF0aW5nTGluZSgpLHRoaXMuc2VsZWN0UG9pbnRNb2RlKCkudmFsdWUoKSE9PVQuU2VsZWN0UG9pbnRNb2RlLk5vbmUmJnRoaXMuY2FuY2VsUmVxdWVzdFNlbGVjdFBvaW50KCksdGhpcy5leGl0VHJhY2tpbmdNb2RlKCl9c2V0SW5Mb2FkaW5nU3RhdGUoZSl7dGhpcy5faW5Mb2FkaW5nU3RhdGU9ZX1wYWludChlKXt0aGlzLl9kcmF3VGltZS5zZXRWYWx1ZShwZXJmb3JtYW5jZS5ub3coKSk7Y29uc3QgdD1lPz9MZS5JbnZhbGlkYXRpb25NYXNrLmZ1bGwoKTt0LnZhbGlkYXRpb25BY3Rpb25zKCkuZm9yRWFjaCgoZT0+ZSgpKSk7Y29uc3QgaT10aGlzLm1heGltaXplZFBhbmVXaWRnZXQoKTt0aGlzLl9wYW5lV2lkZ2V0cy52YWx1ZSgpLmZvckVhY2goKChlLHMpPT57bnVsbCE9PWkmJmkhPT1lfHxlLnBhaW50KHQuaW52YWxpZGF0aW9uRm9yUGFuZShzKSx0LmludmFsaWRhdGlvbkZvclRpbWVTY2FsZSgpKX0pKSx0aGlzLl90aW1lQXhpc1dpZGdldCYmdGhpcy5fdGltZUF4aXNXaWRnZXQucGFpbnQodC5pbnZhbGlkYXRpb25Gb3JUaW1lU2NhbGUoKSksZWc/LigpLHRoaXMuX3JlZHJhdy5maXJlKCl9R1VJUmVzZXRTY2FsZXMoKXsoMCxNdC50cmFja0V2ZW50KSgiR1VJIiwiUmVzZXQgU2NhbGVzIiksdGhpcy5oYXNNb2RlbCgpJiZ0aGlzLm1vZGVsKCkucmVzZXRTY2FsZXMoKX1hcHBseU92ZXJyaWRlcyhlKXtjb25zdCB0PXt9O2Zvcihjb25zdFtpLHNdb2YgT2JqZWN0LmVudHJpZXMoZSkpaS5zdGFydHNXaXRoKCJtYWluU2VyaWVzUHJvcGVydGllcy5wcmljZUF4aXNQcm9wZXJ0aWVzIil8fCh0W2ldPXMpO2lmKCgwLHlhLmFwcGx5UHJvcGVydGllc092ZXJyaWRlcykodGhpcy5wcm9wZXJ0aWVzKCksdm9pZCAwLCExLHQsdm9pZCAwKSx0aGlzLmhhc01vZGVsKCkpeygwLHlhLmFwcGx5UHJvcGVydGllc092ZXJyaWRlcykodGhpcy5tb2RlbCgpLm1vZGVsKCkucHJvcGVydGllcygpLHZvaWQgMCwhMSx0KSwoMCx5YS5hcHBseVByb3BlcnRpZXNPdmVycmlkZXMpKHRoaXMubW9kZWwoKS5tYWluU2VyaWVzKCkucHJvcGVydGllcygpLHZvaWQgMCwhMSx0LCJtYWluU2VyaWVzUHJvcGVydGllcyIpLHRoaXMubW9kZWwoKS5tb2RlbCgpLnNlc3Npb25zKCkuYXBwbHlPdmVycmlkZXModCk7Y29uc3QgZT10aGlzLm1vZGVsKCkubW9kZWwoKS53YXRlcm1hcmtTb3VyY2UoKTtudWxsIT09ZSYmZS5hcHBseU92ZXJyaWRlcyh0KX19c2hvd0Z1bmRhbWVudGFscyhlKXt0aGlzLnNob3dJbmRpY2F0b3JzKGU/W2VdOnZvaWQgMCwiZnVuZGFtZW50YWxzIil9bWF4aW1pemVkUGFuZVdpZGdldCgpe3JldHVybiB0aGlzLl9wYW5lV2lkZ2V0cy52YWx1ZSgpLmZpbmQoKGU9PmUubWF4aW1pemVkKCkudmFsdWUoKSkpPz9udWxsfWhhc01heGltaXplZFBhbmUoKXtyZXR1cm4gbnVsbCE9PXRoaXMubWF4aW1pemVkUGFuZVdpZGdldCgpfXNldEFjdGl2ZShlKXsoMCx1aS5sYXN0TW91c2VPclRvdWNoRXZlbnRJbmZvKSgpLmlzVG91Y2gmJihlJiZ0aGlzLnNlbGVjdFBvaW50TW9kZSgpLnZhbHVlKCkhPT1ULlNlbGVjdFBvaW50TW9kZS5Ob25lP3RoaXMuc3RhcnRUcmFja2luZ01vZGUoKTp0aGlzLmV4aXRUcmFja2luZ01vZGUoKSk7Zm9yKGNvbnN0IGUgb2YgdGhpcy5fcGFuZVdpZGdldHMudmFsdWUoKSllLnVwZGF0ZSgpO2V8fHRoaXMubW9kZWwoKS5zZWxlY3Rpb25NYWNybygoZT0+e2UuY2xlYXJTZWxlY3Rpb24oKX0pKSx0aGlzLl9pc0FjdGl2ZS5zZXRWYWx1ZShlKX1qdXN0QWN0aXZhdGVkKCl7cmV0dXJuIHRoaXMuX2p1c3RBY3RpdmF0ZWR9c2V0QWN0aXZlUGFuZVdpZGdldChlKXt0aGlzLl9hY3RpdmVQYW5lV2lkZ2V0LnNldFZhbHVlKGUpfW9uUGFuZVdpZGdldERlc3Ryb3llZChlKXt0aGlzLl9hY3RpdmVQYW5lV2lkZ2V0LnZhbHVlKCk9PT1lJiZ0aGlzLl9hY3RpdmVQYW5lV2lkZ2V0LnNldFZhbHVlKG51bGwpfWdldFJlc2l6ZXJEZXRhY2hlcigpe3JldHVybiB0aGlzLl9vcHRpb25zfXRvZ2dsZUZ1bGxzY3JlZW4oKXtjb25zdCBlPXRoaXMuZ2V0UmVzaXplckRldGFjaGVyKCk7ZS5mdWxsc2NyZWVuYWJsZS52YWx1ZSgpJiYoZS5mdWxsc2NyZWVuLnZhbHVlKCk/ZS5leGl0RnVsbHNjcmVlbigpOmUucmVxdWVzdEZ1bGxzY3JlZW4oKSl9YXN5bmMgZ2VuZXJhbFByb3BlcnRpZXNEZWZpbml0aW9ucygpe3JldHVybiBhd2FpdCgwLAphdC5zdHVkeU1ldGFJbmZvUmVwb3NpdG9yeSkoKS5maW5kQWxsSmF2YVN0dWRpZXMoKSx0aGlzLl9nZXRDaGFydFByb3BlcnR5RGVmaW5pdGlvbnNWaWV3TW9kZWwoKS50aGVuKChlPT5lLnByb3BlcnR5UGFnZXMoKSkpfXByb3BlcnRpZXNEZWZpbml0aW9uc0ZvclNvdXJjZShlKXtyZXR1cm4oMCxyaS5pc0xpbmVUb29sKShlKXx8KDAsdGkuaXNTdHVkeSkoZSl8fCgwLG9pLmlzU3R1ZHlMaW5lVG9vbCkoZSk/ZS5nZXRQcm9wZXJ0eURlZmluaXRpb25zVmlld01vZGVsKCkudGhlbigoZT0+bnVsbD09PWU/bnVsbDplLnByb3BlcnR5UGFnZXMoKSkpLmNhdGNoKChlPT4oWW0ubG9nV2FybihlKSxudWxsKSkpOlByb21pc2UucmVzb2x2ZShudWxsKX1iYWNrZ3JvdW5kVG9wVGhlbWUoKXtyZXR1cm4gdGhpcy5fYmFja2dyb3VuZFRvcFRoZW1lLnJlYWRvbmx5KCl9YmFja2dyb3VuZEJhc2VkVGhlbWUoKXtyZXR1cm4gdGhpcy5fYmFja2dyb3VuZEJhc2VkVGhlbWUucmVhZG9ubHkoKX1iYWNrZ3JvdW5kQm90dG9tVGhlbWUoKXtyZXR1cm4gdGhpcy5fYmFja2dyb3VuZEJvdHRvbVRoZW1lLnJlYWRvbmx5KCl9c3RhdGUoZSl7aWYodGhpcy5oYXNNb2RlbCgpKXtjb25zdCB0PXRoaXMubW9kZWwoKS5zdGF0ZShlKTtyZXR1cm4gdC5jaGFydElkPXRoaXMuaWQoKSx0fXJldHVybiB0aGlzLl9jb250ZW50fWxpbmVUb29sc0FuZEdyb3Vwc0RUTygpe3JldHVybigwLGwuZW5zdXJlTm90TnVsbCkodGhpcy5fbGluZVRvb2xzU3luY2hyb25pemVyKS5wcmVwYXJlRFRPKCl9YXBwbHlMaW5lVG9vbFVwZGF0ZU5vdGlmaWNhdGlvbihlLHQpe3JldHVybiBudWxsPT09dGhpcy5fbGluZVRvb2xzU3luY2hyb25pemVyP1Byb21pc2UucmVzb2x2ZSgpOnRoaXMuX2xpbmVUb29sc1N5bmNocm9uaXplci5hcHBseUxpbmVUb29sVXBkYXRlTm90aWZpY2F0aW9uKGUsdCl9cmVsb2FkQWxsTGluZVRvb2xzKCl7dGhpcy5fbGluZVRvb2xzU3luY2hyb25pemVyPy5yZWxvYWRBbGxMaW5lVG9vbHMoKX1zdGFydEFwcGx5aW5nTGluZVRvb2xVcGRhdGVOb3RpZmljYXRpb24oKXt0aGlzLl9saW5lVG9vbHNTeW5jaHJvbml6ZXI/LnN0YXJ0QXBwbHlpbmdMaW5lVG9vbFVwZGF0ZU5vdGlmaWNhdGlvbigpfWVuZEFwcGx5aW5nTGluZVRvb2xVcGRhdGVOb3RpZmljYXRpb24oKXt0aGlzLl9saW5lVG9vbHNTeW5jaHJvbml6ZXI/LmVuZEFwcGx5aW5nTGluZVRvb2xVcGRhdGVOb3RpZmljYXRpb24oKX1hcHBseUFsZXJ0SWRCeUV4dGVybmFsU291cmNlKGUsdCl7dGhpcy5fbGluZVRvb2xzU3luY2hyb25pemVyPy5hcHBseUFsZXJ0SWRCeUV4dGVybmFsU291cmNlKGUsdCl9ZGVsZXRlQWxlcnRCeUV4dGVybmFsU291cmNlKGUsdCl7dGhpcy5fbGluZVRvb2xzU3luY2hyb25pemVyPy5kZWxldGVBbGVydEJ5RXh0ZXJuYWxTb3VyY2UoZSl9c2hvdWxkQmVTYXZlZEV2ZW5JZkhpZGRlbigpe3JldHVybiB0aGlzLmhhc01vZGVsKCk/dGhpcy5tb2RlbCgpLm1vZGVsKCkuc2hvdWxkQmVTYXZlZEV2ZW5JZkhpZGRlbigpOiEhdGhpcy5fb3B0aW9ucy5jb250ZW50LnNob3VsZEJlU2F2ZWRFdmVuSWZIaWRkZW59Z2V0VGltZVNjYWxlKCl7cmV0dXJuIHRoaXMuX3RpbWVBeGlzV2lkZ2V0fXNob3dPYmplY3RzVHJlZVBhbmVsT3JEaWFsb2coKXtsZXQgZT0hMTtjb25zdCB0PXdpbmRvdy53aWRnZXRiYXI7aWYodCYmdC5pc1Zpc2libGUoKSl7Y29uc3QgaT0oMCxsLmVuc3VyZU5vdE51bGwpKHQuc2V0UGFnZSgib2JqZWN0X3RyZWUiKSkscz0oMCxsLmVuc3VyZU5vdE51bGwpKGkud2lkZ2V0KCJvYmplY3RfdHJlZSIpKTsoMCxsLmVuc3VyZURlZmluZWQpKHMucHJvcGVydGllcykuc2V0VmFsdWUoe3NlbGVjdGVkUGFnZToib2JqZWN0X3RyZWUifSksZT0ib2JqZWN0X3RyZWUiPT09aS5uYW1lfWV8fHRoaXMuc2hvd09iamVjdHNUcmVlRGlhbG9nKCl9c2hvd09iamVjdHNUcmVlRGlhbG9nKCl7dGhpcy5fb2JqZWN0VHJlZURpYWxvZ0NvbnRyb2xsZXI/LnNob3coKX1hZGRDdXN0b21XaWRnZXRUb0xlZ2VuZChlLHQpe3RoaXMuX2N1c3RvbUxlZ2VuZFdpZGdldHNGYWN0b3J5TWFwLnNldChlLHQpO2Zvcihjb25zdCBpIG9mIHRoaXMucGFuZVdpZGdldHMoKSlpLmFkZEN1c3RvbVdpZGdldFRvTGVnZW5kKGUsdCl9YXBwbHlJbmRpY2F0b3JzVG9BbGxDaGFydHNBdmFpbGFibGUoKXtpZighdGhpcy5jaGFydFdpZGdldENvbGxlY3Rpb24oKS5hcHBseUluZGljYXRvcnNUb0FsbENoYXJ0c0F2YWlsYWJsZSgpKXJldHVybiExO2Zvcihjb25zdCBlIG9mIHRoaXMubW9kZWwoKS5tb2RlbCgpLnBhbmVzKCkpe2lmKGUuc291cmNlc0J5R3JvdXAoKS5hbGwoKS5zb21lKChlPT4oMCx0aS5pc1N0dWR5KShlKSYmIXNpKGUpKSkpcmV0dXJuITB9cmV0dXJuITF9d2lkZ2V0KCl7cmV0dXJuKDAsbC5lbnN1cmVOb3ROdWxsKSh0aGlzLl9tYWluRGl2KX1hZGRDb21wYXJlQXNPdmVybGF5KGUsdCxpKXtjb25zdCBzPXRoaXMubW9kZWwoKTtyZXR1cm4oMCxsLmVuc3VyZURlZmluZWQpKHRoaXMuX29wdGlvbnMuaXNTeW1ib2xBdmFpbGFibGUpKGUpLnRoZW4oKGFzeW5jIG49PntpZighbilyZXR1cm4gbnVsbDthd2FpdCgwLGF0LnN0dWR5TWV0YUluZm9SZXBvc2l0b3J5KSgpLnJlcXVlc3RNZXRhSW5mbygpO2NvbnN0IHI9cy5jcmVhdGVTdHVkeUluc2VydGVyKHt0eXBlOiJqYXZhIixzdHVkeUlkOiJPdmVybGF5QHR2LWJhc2ljc3R1ZGllcyJ9LFtdKTtyZXR1cm4gci5zZXRGb3JjZU92ZXJsYXkoITApLHIuc2V0UHJlZmVycmVkUHJpY2VTY2FsZSgiYXMtc2VyaWVzIiksITAhPT1pJiZyLnNldFRhcmdldFByaWNlU2NhbGVNb2RlKHtwZXJjZW50YWdlOiEwfSksdm9pZCAwIT09dCYmci5zZXRQcm9wZXJ0aWVzU3RhdGUoe2FsbG93RXh0ZW5kVGltZVNjYWxlOnR9KSxyLmluc2VydCgoYXN5bmMoKT0+KHtpbnB1dHM6e3N5bWJvbDplfSxwYXJlbnRTb3VyY2VzOltdfSkpKX0pKX1zY3JvbGxIZWxwZXIoKXtyZXR1cm4gdGhpcy5fc2Nyb2xsSGVscGVyfXJlc2l6ZSgpe2NvbnN0IGU9dGhpcy5faGVpZ2h0KCkrInB4Iix0PXRoaXMuX3dpZHRoKCkrInB4IixpPSgwLApsLmVuc3VyZU5vdE51bGwpKHRoaXMuX21haW5EaXYpO2kuc3R5bGUuaGVpZ2h0PWUsaS5zdHlsZS53aWR0aD10LHRoaXMuX2VsTWFpblRhYmxlLnN0eWxlLmhlaWdodD1lLHRoaXMuX2VsTWFpblRhYmxlLnN0eWxlLndpZHRoPXQsdGhpcy5fcmVzaXplSGFuZGxlciYmdGhpcy5fbWFpbkRpdiYmdGhpcy5fcmVzaXplSGFuZGxlcigpfWNoYXJ0UGFpbnRlZCgpe3JldHVybiB0aGlzLl9kcmF3UGxhbm5lZD8obnVsbD09PXRoaXMuX2NoYXJ0UGFpbnRlZFByb21pc2UmJih0aGlzLl9jaGFydFBhaW50ZWRQcm9taXNlPSgwLEF0LmNyZWF0ZURlZmVycmVkUHJvbWlzZSkoKSksdGhpcy5fY2hhcnRQYWludGVkUHJvbWlzZS5wcm9taXNlKTpQcm9taXNlLnJlc29sdmUoKX1zZXREYXRhV2luZG93V2lkZ2V0KGUpe3RoaXMuX2RhdGFXaW5kb3dXaWRnZXQ9ZX1yZW1vdmVEYXRhV2luZG93V2lkZ2V0KCl7dGhpcy5fZGF0YVdpbmRvd1dpZGdldD1udWxsfXNob3dTZWxlY3RlZFNvdXJjZXNQcm9wZXJ0aWVzKGUpe2NvbnN0IHQ9dGhpcy5tb2RlbCgpLnNlbGVjdGlvbigpLmRhdGFTb3VyY2VzKCk7aWYoMT09PXQubGVuZ3RoKXRoaXMuc2hvd1NvdXJjZVByb3BlcnRpZXModFswXSxlKTtlbHNle2NvbnN0IGk9dC5maWx0ZXIocmkuaXNMaW5lVG9vbCk7aS5sZW5ndGg+MCYmdGhpcy5zaG93Q2hhcnRQcm9wZXJ0aWVzRm9yU291cmNlcyh7c291cmNlczppLHRhYk5hbWU6ZX0pfX1zZXRUaW1pbmdzTWV0ZXIoZSl7dGhpcy5fdGltaW5nc01ldGVyPWUsdGhpcy5fdXBkYXRlVGltaW5nc01ldGVyU3RhdGUoKX1vbkFib3V0VG9CZURlc3Ryb3llZCgpe3JldHVybiB0aGlzLl9hYm91dFRvQmVEZXN0cm95ZWR9ZXhlY3V0ZUFjdGlvbkJ5SWQoZSl7aWYoInRha2VTY3JlZW5zaG90Ij09PWUpcmV0dXJuIGNvbnNvbGUud2FybignQWN0aW9uICJ0YWtlU2NyZWVuc2hvdCIgaXMgZGVwcmVjYXRlZC4gVXNlIG1ldGhvZCAidGFrZVNjcmVlbnNob3QiIGluc3RlYWQnKSx2b2lkIHRoaXMuX2NoYXJ0V2lkZ2V0Q29sbGVjdGlvbi50YWtlU2NyZWVuc2hvdCgpO2NvbnN0IHQ9dGhpcy5hY3Rpb25zKClbZV07dD90LmV4ZWN1dGUoKTpjb25zb2xlLndhcm4oIlVua25vd24gYWN0aW9uIGlkOiAiK2UpfWdldENoZWNrYWJsZUFjdGlvblN0YXRlKGUpe2NvbnN0IHQ9dGhpcy5hY3Rpb25zKClbZV07aWYodCl7aWYodC5pc0NoZWNrYWJsZSgpKXJldHVybiB0LmlzQ2hlY2tlZCgpO2NvbnNvbGUud2FybigiQWN0aW9uICIrZSsiIGhhcyBubyBzdGF0ZSIpfWVsc2UgY29uc29sZS53YXJuKCJVbmtub3duIGFjdGlvbiBpZDogIitlKTtyZXR1cm4gbnVsbH1jb25uZWN0KCl7dGhpcy5fY2hhcnRTZXNzaW9uLmlzQ29ubmVjdGVkKCkuc3Vic2NyaWJlKHRoaXMuX29uQ2hhcnRTZXNzaW9uSXNDb25uZWN0ZWRDaGFuZ2VkKSx0aGlzLl9jaGFydFNlc3Npb24uY3JpdGljYWxFcnJvcigpLnN1YnNjcmliZSh0aGlzLHRoaXMuX29uQ2hhcnRTZXNzaW9uQ3JpdGljYWxFcnJvciksdGhpcy5fY2hhcnRTZXNzaW9uLmNvbm5lY3QodGhpcy5fb25EYXRhLmJpbmQodGhpcykpfWZpbmlzaEluaXRXaXRob3V0Q29ubmVjdCgpe3RoaXMuX2NoYXJ0U2Vzc2lvbi5kaXNhYmxlKCksdGhpcy5faW5pdCgpLHRoaXMuX2NoYXJ0V2lkZ2V0SW5pdGlhbGl6ZWQuZmlyZSgpfXJlY29ubmVjdCgpe3RoaXMuX2NoYXJ0U2Vzc2lvbi5kaXNjb25uZWN0KCksdGhpcy5fY2hhcnRTZXNzaW9uLmNvbm5lY3QoKX11cGRhdGUoKXtpZih0aGlzLmhhc01vZGVsKCkpe2Zvcihjb25zdCBlIG9mIHRoaXMuX3BhbmVXaWRnZXRzLnZhbHVlKCkpZS51cGRhdGUoKTt0aGlzLl90aW1lQXhpc1dpZGdldCYmdGhpcy5fdGltZUF4aXNXaWRnZXQudXBkYXRlKCl9fXNldFByaWNlQXhpc0hvdmVyZWQoZSx0KXt0P3RoaXMuX2hvdmVyZWRQcmljZUF4ZXMuYWRkKGUpOnRoaXMuX2hvdmVyZWRQcmljZUF4ZXMuZGVsZXRlKGUpLHRoaXMuX2FueUF4aXNIb3ZlcmVkLnNldFZhbHVlKHRoaXMuX2hvdmVyZWRQcmljZUF4ZXMuc2l6ZT4wKX1hbnlQcmljZUF4aXNIb3ZlcmVkKCl7cmV0dXJuIHRoaXMuX2FueUF4aXNIb3ZlcmVkLnJlYWRvbmx5KCl9bGlua2luZ0dyb3VwSW5kZXgoKXtyZXR1cm4gdGhpcy5fbGlua2luZ0dyb3VwSW5kZXh9b2Zmc2V0SW5Eb2N1bWVudChlKXtjb25zdCB0PXRoaXMucGFuZUJ5U3RhdGUoZSk7aWYoIXQpcmV0dXJue2xlZnQ6TmFOLHRvcDpOYU59O2NvbnN0IGk9dC5nZXRFbGVtZW50KCkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7cmV0dXJue2xlZnQ6TWF0aC5yb3VuZChpLmxlZnQrZG9jdW1lbnQuYm9keS5zY3JvbGxMZWZ0KSx0b3A6TWF0aC5yb3VuZChpLnRvcCtkb2N1bWVudC5ib2R5LnNjcm9sbFRvcCl9fXNob3dIaW50KGUsLi4udCl7MD09PWU/dGhpcy5fc2hvd0V2ZW50SGludCguLi50KToxPT09ZSYmdGhpcy5fc2hvd1dhcm5pbmdIaW50KC4uLnQpfWhvdGtleXMoKXtyZXR1cm4gdGhpcy5faG90a2V5c31vbkFib3V0VG9Mb2FkQ29udGVudCgpe2lmKHRoaXMuX2xpbmVUb29sc1N5bmNocm9uaXplcj8uZGVzdHJveSgpLHRoaXMuX2xpbmVUb29sc1N5bmNocm9uaXplcj1udWxsLHRoaXMuaGFzTW9kZWwoKSl7Y29uc3QgZT10aGlzLm1vZGVsKCk7Zm9yKGNvbnN0IHQgb2YgZS5kYXRhU291cmNlcygpKSgwLHJpLmlzTGluZVRvb2wpKHQpJiZ0LmRldGFjaEFsZXJ0KCk7ZS5pc0luUmVwbGF5KCkudmFsdWUoKSYmZS5zd2l0Y2hUb1JlYWx0aW1lKCl9dGhpcy5fY2hhcnRTZXNzaW9uLmRpc2Nvbm5lY3QoKX1hc3luYyBsb2FkQ29udGVudChlLHQpe3RoaXMuc2NyZWVuLnNob3coKTtjb25zdCBpPXRoaXMubW9kZWwoKTtpLm1vZGVsKCkuc2V0TWF4aW1pemVkUGFuZShudWxsKSxpLm1vZGVsKCkuc2VsZWN0aW9uTWFjcm8oKGU9PmUuY2xlYXJTZWxlY3Rpb24oKSkpO2NvbnN0IHM9aS5tYWluU2VyaWVzKCk7aS5tb2RlbCgpLmlzSW5SZXBsYXkoKS52YWx1ZSgpJiZpLm1vZGVsKCkuc3dpdGNoVG9SZWFsdGltZSgpO2xldCBuLHI7aS5jcm9zc2hhaXJTb3VyY2UoKS5jbGVhck1lYXN1cmUoKSxpLnVubG9hZERhdGFTb3VyY2VzKCksCmkubW9kZWwoKS5hbGVydHNXYXRjaGVyKCk/LmRldGFjaFNvdXJjZUFsZXJ0TGFiZWxzKHMpLHRoaXMuX2NoYXJ0U2Vzc2lvbi5jb25uZWN0KHRoaXMuX29uRGF0YS5iaW5kKHRoaXMpKSx0aGlzLl9hY3RpdmVQYW5lV2lkZ2V0LnNldFZhbHVlKG51bGwpLHMucHVyZ2VTeW1ib2xJbmZvKCksZS5sb2FkaW5nPSEwLHRoaXMuX2lkPSgwLGwuZW5zdXJlRGVmaW5lZCkoZS5jaGFydElkKSxhd2FpdCgwLHJpLmVuc3VyZUFsbExpbmVUb29sc0xvYWRlZEZvckxheW91dCkoW2VdKSx0aGlzLl9jb250ZW50PWUsdGhpcy5fc2V0U3ltYm9sSW50ZXJ2YWxDb250ZW50T3ZlcnJpZGVzPXt9LHRoaXMuX2luaXRpYWxMb2FkaW5nPXQ7Y29uc3Qgbz10aGlzLl9jb250ZW50U2VyaWVzUHJvcGVydGllcygpO2lmKG8mJihuPW8scj1lLmNoYXJ0UHJvcGVydGllcy5wcmljZVNjYWxlU2VsZWN0aW9uU3RyYXRlZ3lOYW1lKSwhbil0aHJvdyBFcnJvcigiQW4gZXJyb3Igb2NjdXJyZWQgd2hpbGUgZGV0ZXJtaW5pbmcgbWFpbiBzZXJpZXMgb24gdGhlIGNoYXJ0Iik7Y29uc3QgYT1zLnN0eWxlKCk7dGhpcy5fbWFpblNlcmllc1Byb3BlcnRpZXMubWVyZ2VBbmRGaXJlKHt2aXNpYmxlOiEwLHN5bWJvbDpuLnN5bWJvbCx0aW1lZnJhbWU6IiIsaW50ZXJ2YWw6bi5pbnRlcnZhbHx8IkQiLHN0eWxlOm4uc3R5bGV9KSx2b2lkIDAhPT1yJiZ0aGlzLl9wcm9wZXJ0aWVzLmNoaWxkcygpLnByaWNlU2NhbGVTZWxlY3Rpb25TdHJhdGVneU5hbWUuc2V0VmFsdWUociksYSE9PXMuc3R5bGUoKSYmcy5vbkNoYXJ0U3R5bGVDaGFuZ2VkKCksdGhpcy5faW5pdCgpLGkudW5kb0hpc3RvcnkoKS5jbGVhclN0YWNrKCksdGhpcy5fY2hhcnRXaWRnZXRJbml0aWFsaXplZC5maXJlKCksaS5tb2RlbCgpLmFsZXJ0c1dhdGNoZXIoKT8uc3luY1NvdXJjZUFsZXJ0TGFiZWxzKHMpfXJlc2V0RHJhd2luZ1N0YXRlKCl7aWYoKDAsVC5yZXNldFRvQ3Vyc29yKSghMCksdGhpcy5oYXNNb2RlbCgpKXtjb25zdCBlPSgwLGwuZW5zdXJlTm90TnVsbCkodGhpcy5tb2RlbCgpLmNyb3NzaGFpclNvdXJjZSgpLnBhbmUpOygwLGwuZW5zdXJlTm90TnVsbCkodGhpcy5wYW5lQnlTdGF0ZShlKSkuY2FuY2VsQ3JlYXRpbmdMaW5lVG9vbCgpLHRoaXMubW9kZWwoKS5zZWxlY3Rpb25NYWNybygoZT0+e2UuY2xlYXJTZWxlY3Rpb24oKX0pKX19Y2hhcnRGbG9hdGluZ1Rvb2x0aXBWaXNpYmxlKCl7cmV0dXJuIHRoaXMuX2NoYXJ0V2lkZ2V0Q29sbGVjdGlvbi5jaGFydEZsb2F0aW5nVG9vbHRpcFZpc2libGUoKS52YWx1ZSgpfV9jbGVhclNlbGVjdGlvbkhvdGtleSgpe3JldHVybntkZXNjOiJDYW5jZWwgc2VsZWN0aW9uIixob3RrZXk6MjcsaGFuZGxlcjooKT0+e2lmKHRoaXMuX2NoZWNrSXNUcmFkZWRHcm91cFNlbGVjdGVkKCkmJnRoaXMuX29wdGlvbnMuZXh0ZXJuYWxTZXJ2aWNlcy50cmFkaW5nLnRyYWRlZENvbnRleHRMaW5raW5nLnZhbHVlKCk/LmNsZWFyKCksdGhpcy5zZWxlY3RQb2ludE1vZGUoKS52YWx1ZSgpIT09VC5TZWxlY3RQb2ludE1vZGUuTm9uZSlyZXR1cm4gdGhpcy5zZWxlY3RQb2ludE1vZGUoKS52YWx1ZSgpPT09VC5TZWxlY3RQb2ludE1vZGUuUmVwbGF5JiZ0aGlzLl9jaGFydFdpZGdldENvbGxlY3Rpb24uZ2V0QWxsKCkuZm9yRWFjaCgoZT0+e2UhPT10aGlzJiZlLnNlbGVjdFBvaW50TW9kZSgpLnZhbHVlKCk9PT1ULlNlbGVjdFBvaW50TW9kZS5SZXBsYXkmJmUuY2FuY2VsUmVxdWVzdFNlbGVjdFBvaW50KCl9KSksdm9pZCB0aGlzLmNhbmNlbFJlcXVlc3RTZWxlY3RQb2ludCgpO2lmKHRoaXMuaGFzTW9kZWwoKSl7Y29uc3QgZT10aGlzLm1vZGVsKCkuc2VsZWN0aW9uKCkubGluZURhdGFTb3VyY2VzKCk7MT09PWUubGVuZ3RoJiYoMCxyaS5pc0VkaXRhYmxlVGV4dExpbmVUb29sKShlWzBdKSYmZVswXS50ZXh0RWRpdGluZ0p1c3RGaW5pc2hlZCgpfHx0aGlzLm1vZGVsKCkuc2VsZWN0aW9uTWFjcm8oKGU9Pnt0aGlzLl9jYW5jZWxDcmVhdGluZ0xpbmUoKSxlLmNsZWFyU2VsZWN0aW9uKCl9KSk7Y29uc3QgdD10aGlzLm1vZGVsKCkubW9kZWwoKS5jdXN0b21Tb3VyY2VNb3ZpbmdIaXRUZXN0RGF0YSgpO3QmJnQuY2FuY2VsTW92ZUhhbmRsZXImJnQuY2FuY2VsTW92ZUhhbmRsZXIoKSYmKHQuY2FuY2VsbGVkPSEwLHRoaXMubW9kZWwoKS5tb2RlbCgpLnNldE1vdmluZ0N1c3RvbVNvdXJjZShudWxsLG51bGwpLHRoaXMubW9kZWwoKS5tb2RlbCgpLmxpZ2h0VXBkYXRlKCkpfX0saXNEaXNhYmxlZDooKT0+e2lmKCF0aGlzLmhhc01vZGVsKCkpcmV0dXJuITA7Y29uc3QgZT10aGlzLm1vZGVsKCksdD1lLnNlbGVjdGlvbigpLmlzRW1wdHkoKSxpPW51bGw9PT1lLmNyb3NzaGFpclNvdXJjZSgpLm1lYXN1cmVQYW5lKCkudmFsdWUoKSxzPXRoaXMuc2VsZWN0UG9pbnRNb2RlKCkudmFsdWUoKT09PVQuU2VsZWN0UG9pbnRNb2RlLk5vbmU7cmV0dXJuIHQmJmkmJnN9fX1hc3luYyBfaW5zZXJ0U3R1ZHlPclJlcGxhY2VTdHViKGUsdCxpLHMsbixyKXt0cnl7e2NvbnN0IGk9dGhpcy5tb2RlbCgpLm1vZGVsKCkuY2hhcnRBcGkoKS5jYW5DcmVhdGVTdHVkeSh7aWQ6ImphdmEiPT09ZS50eXBlP2Uuc3R1ZHlJZDoiIixjaGlsZDp0Lmxlbmd0aD4wLGZ1bmRhbWVudGFsOnM/LmlzRnVuZGFtZW50YWwsZm9yZWNhc3Q6cz8uaXNGb3JlY2FzdCxzdHViVGl0bGU6cz8uc3R1YlRpdGxlfSk7aWYoIWkuc3VjY2Vzcyl0aHJvdygwLFluLnNob3dTdHVkaWVzTGltaXRHb1Byb0RpYWxvZykodGhpcy5tb2RlbCgpLm1vZGVsKCksaSksbmV3IGxnKGxnLlJlYXNvbnMuTGltaXRzKX1yZXR1cm4gdC5sZW5ndGgmJmF3YWl0IG5ldyBQcm9taXNlKCgoZSx0KT0+eygwLFV0LnJ1bk9yU2lnbkluKShlLHtzb3VyY2U6InN0dWR5IG9uIHN0dWR5IixvblVubW91bnRFdmVudDooKT0+dChuZXcgbGcoYWcuQ2FuY2VsZWQpKX0pfSkpLHI/LigpLCJqYXZhIj09PWUudHlwZSYmYXdhaXQoMCxhdC5zdHVkeU1ldGFJbmZvUmVwb3NpdG9yeSkoKS5yZXF1ZXN0TWV0YUluZm8oKSxhd2FpdCB0aGlzLl9pbnNlcnRPclJlcGxhY2VTdHViQnlTdHVkeUltcGwoZSx0LGkscyxuKX1jYXRjaChlKXsKcmV0dXJuIGkmJmUgaW5zdGFuY2VvZiBsZyYmdGhpcy5tb2RlbCgpLm1vZGVsKCkucmVtb3ZlU291cmNlKGksITApLG51bGx9fV9pbnNlcnRPclJlcGxhY2VTdHViQnlTdHVkeUltcGwoZSx0LHMsbixyKXtjb25zdCBvPXRoaXMubW9kZWwoKS5jcmVhdGVTdHVkeUluc2VydGVyKGUsdCxuKTtvLnNldEV2ZW50U291cmNlKG4/LmV2ZW50U291cmNlKSxvLnNldEZvcmNlT3ZlcmxheSgiamF2YSI9PT1lLnR5cGUmJiJWb2x1bWVAdHYtYmFzaWNzdHVkaWVzIj09PWUuc3R1ZHlJZCYmKDAscS5pc0ZlYXR1cmVzZXRFbmFibGVkKSgidm9sdW1lX2ZvcmNlX292ZXJsYXkiKSk7Y29uc3QgYT1vLmluc2VydCgoKGUsaSxzKT0+bmV3IFByb21pc2UoKChuLG8pPT57dGhpcy5zZWxlY3RQb2ludE1vZGUoKS52YWx1ZSgpIT09VC5TZWxlY3RQb2ludE1vZGUuTm9uZSYmdGhpcy5jYW5jZWxSZXF1ZXN0U2VsZWN0UG9pbnQoKSxyP24ocihlLGkscykpOiFmdW5jdGlvbihlKXtyZXR1cm4gaGEuaW5jbHVkZXMoZS5pZCl9KHMpPyhpPz9bXSkuc29tZSgoZT0+ZS5jb25maXJtKSk/KCgwLE10LnRyYWNrRXZlbnQpKCJHVUkiLCJDb25maXJtYXRpb24gZGlhbG9ncyIsIklucHV0cyBjb25maXJtYXRpb24gZGlhbG9nIiksSHQodGhpcyxlLHMsbiwoKCk9Pm8obmV3IGxnKGxnLlJlYXNvbnMuQ2FuY2VsZWQpKSkpKTpuKHtpbnB1dHM6e30scGFyZW50U291cmNlczp0fSk6KCgwLE10LnRyYWNrRXZlbnQpKCJHVUkiLCJDb25maXJtYXRpb24gZGlhbG9ncyIsIlN5bWJvbCBjb25maXJtYXRpb24gZGlhbG9nIiksSHQodGhpcyxlLHMsbiwoKCk9Pm8obmV3IGxnKGxnLlJlYXNvbnMuQ2FuY2VsZWQpKSksInN5bWJvbCIpKX0pKSksdm9pZCAwLHMpO3JldHVybiBhLnRoZW4oKCgpPT57KDAsVC5oaWRlQWxsSW5kaWNhdG9ycykoKS52YWx1ZSgpJiYoMCxSdC50b2dnbGVIaWRlT3B0aW9ucykoITEpfSkpLmNhdGNoKChlPT57c3x8KGU9PT1wdS5JbnNlcnRpb25FcnJvckNvZGUuU3R1ZHlDYW5ub3RCZUNoaWxkJiYoMCxoZS5zaG93V2FybmluZykoe3RpdGxlOnAudChudWxsLHZvaWQgMCxpKDYzMzkwNykpLHRleHQ6cC50KG51bGwsdm9pZCAwLGkoOTAwMDQxKSksYnV0dG9uVGV4dDpwLnQobnVsbCx2b2lkIDAsaSgxMTE4OTgpKSxiYWNrZHJvcDohMH0pLGU9PT1wdS5JbnNlcnRpb25FcnJvckNvZGUuQ2Fubm90Q29tcGlsZVB1YiYmKDAsaGUuc2hvd1dhcm5pbmcpKHt0aXRsZTpwLnQobnVsbCx2b2lkIDAsaSg2MjE5ODQpKSx0ZXh0OnAudChudWxsLHZvaWQgMCxpKDM4NjM3NykpLGJ1dHRvblRleHQ6cC50KG51bGwsdm9pZCAwLGkoMTExODk4KSksYmFja2Ryb3A6ITB9KSxlPT09cHUuSW5zZXJ0aW9uRXJyb3JDb2RlLkNhbm5vdEdldE1ldGFpbmZvJiYoMCxoZS5zaG93V2FybmluZykoe3RpdGxlOnAudChudWxsLHZvaWQgMCxpKDIxMjU2NCkpLHRleHQ6cC50KG51bGwsdm9pZCAwLGkoMjg1ZTMpKSxidXR0b25UZXh0OnAudChudWxsLHZvaWQgMCxpKDExMTg5OCkpLGJhY2tkcm9wOiEwfSkpfSkpLGF9YXN5bmMgX3Nob3dDaGFydFByb3BlcnRpZXMoZSx0LGkscyl7aWYoIXRoaXMuaGFzTW9kZWwoKSlyZXR1cm4gbnVsbDt0JiYoKDAsUS5zZXRWYWx1ZSkoInByb3BlcnRpZXNfZGlhbG9nLmFjdGl2ZV90YWIuY2hhcnQiLHQpLGkudGFiTmFtZT10KTtjb25zdCBuPWF3YWl0IGNpKGUsdGhpcy5tb2RlbCgpLGksdGhpcy5fb3B0aW9ucy5jaGFydFdpZGdldENvbGxlY3Rpb24scyk7cmV0dXJuIG4/LnZpc2libGUoKS52YWx1ZSgpP246bnVsbH1fY3JlYXRlTGluZVRvb2xzU3luY2hyb25pemVySWZOZWVkZWQoKXt7dGhpcy5fbGluZVRvb2xzU3luY2hyb25pemVyPy5kZXN0cm95KCksdGhpcy5fbGluZVRvb2xzU3luY2hyb25pemVySGFzQ2hhbmdlcz8/PW5ldyBoLldhdGNoZWRWYWx1ZSghMSksdGhpcy5fbGluZVRvb2xzU3luY2hyb25pemVySGFzQ2hhbmdlcy5zZXRWYWx1ZSghMSk7Y29uc3QgZT17cmVhZE9ubHlNb2RlOnRoaXMucmVhZE9ubHkoKSxtaWdyYXRlU3luY2VkTGluZVRvb2xzOnRoaXM9PT10aGlzLl9vcHRpb25zLmNoYXJ0V2lkZ2V0Q29sbGVjdGlvbi5nZXRBbGwoKVswXX0sdD17bGF5b3V0SWQ6dGhpcy5sYXlvdXRJZCgpLGNoYXJ0SWQ6dGhpcy5faWQsY2xpZW50SWQ6dGhpcy5fY2hhcnRXaWRnZXRDb2xsZWN0aW9uLmNsaWVudElkfSxpPXFfLkxpbmVUb29sc1N5bmNocm9uaXplcjt0aGlzLl9saW5lVG9vbHNTeW5jaHJvbml6ZXI9bmV3IGkodCx0aGlzLm1vZGVsKCkubW9kZWwoKSxlLHRoaXMuX2xpbmVUb29sc1N5bmNocm9uaXplckhhc0NoYW5nZXMpLG51bGwhPT10aGlzLl9zYXZlQ2hhcnRTZXJ2aWNlJiZ0aGlzLl9saW5lVG9vbHNTeW5jaHJvbml6ZXIuc2V0U2F2ZUNoYXJ0U2VydmljZSh0aGlzLl9zYXZlQ2hhcnRTZXJ2aWNlKSx0aGlzLl9saW5lVG9vbHNTeW5jaHJvbml6ZXIuaW52YWxpZGF0ZUFsbCghMCksdGhpcy5oYXNNb2RlbCgpJiZ0aGlzLm1vZGVsKCkubW9kZWwoKS5zZXRMaW5lVG9vbHNTeW5jaHJvbml6ZXIodGhpcy5fbGluZVRvb2xzU3luY2hyb25pemVyKX19X3VwZGF0ZVRoZW1lZENvbG9yKCl7Y29uc3QgZT10aGlzLm1vZGVsKCkubW9kZWwoKSx0PWUuYmFja2dyb3VuZENvbG9yQXRZUGVyY2VudEZyb21Ub3AoLjUpO2xldCBpPWUuYmFja2dyb3VuZFRvcENvbG9yKCkudmFsdWUoKSxzPWUuYmFja2dyb3VuZENvbG9yKCkudmFsdWUoKTtjb25zdCBuPSgwLEl0LmlzQ29sb3JEYXJrKSh0KSxyPSgwLEl0LmlzQ29sb3JEYXJrKShpKSxvPSgwLEl0LmlzQ29sb3JEYXJrKShzKTt0aGlzLndpZGdldCgpLmNsYXNzTGlzdC50b2dnbGUoImNoYXJ0LXdpZGdldC0tdGhlbWVkLWRhcmsiLG4pLHRoaXMud2lkZ2V0KCkuY2xhc3NMaXN0LnRvZ2dsZSgiY2hhcnQtd2lkZ2V0LS10aGVtZWQtbGlnaHQiLCFuKSx0aGlzLndpZGdldCgpLmNsYXNzTGlzdC50b2dnbGUoImNoYXJ0LXdpZGdldF9fdG9wLS10aGVtZWQtZGFyayIsciksdGhpcy53aWRnZXQoKS5jbGFzc0xpc3QudG9nZ2xlKCJjaGFydC13aWRnZXRfX3RvcC0tdGhlbWVkLWxpZ2h0IiwhciksCnRoaXMud2lkZ2V0KCkuY2xhc3NMaXN0LnRvZ2dsZSgiY2hhcnQtd2lkZ2V0X19ib3R0b20tLXRoZW1lZC1kYXJrIixvKSx0aGlzLndpZGdldCgpLmNsYXNzTGlzdC50b2dnbGUoImNoYXJ0LXdpZGdldF9fYm90dG9tLS10aGVtZWQtbGlnaHQiLCFvKSx0aGlzLl9iYWNrZ3JvdW5kVG9wVGhlbWUuc2V0VmFsdWUocj8iZGFyayI6ImxpZ2h0IiksdGhpcy5fYmFja2dyb3VuZEJhc2VkVGhlbWUuc2V0VmFsdWUobj8iZGFyayI6ImxpZ2h0IiksdGhpcy5fYmFja2dyb3VuZEJvdHRvbVRoZW1lLnNldFZhbHVlKG8/ImRhcmsiOiJsaWdodCIpLGk9PT1zJiYoMCxrLmlzU3RkVGhlbWVkRGVmYXVsdFZhbHVlKSgiY2hhcnRQcm9wZXJ0aWVzLnBhbmVQcm9wZXJ0aWVzLmJhY2tncm91bmQiLGksdGhpcy5fYmFja2dyb3VuZEJhc2VkVGhlbWUudmFsdWUoKSkmJihpPW51bGwscz1udWxsKTtmb3IoY29uc3QgZSBvZiB0aGlzLl9wYW5lV2lkZ2V0cy52YWx1ZSgpKWUudXBkYXRlVGhlbWVkQ29sb3JzKHt0b3BDb2xvcjppLGJvdHRvbUNvbG9yOnN9KX1faXNMaW5lVG9vbE1vZGVFeGNlcHRCcnVzaCgpe2NvbnN0IGU9VC50b29sLnZhbHVlKCk7cmV0dXJuKDAsbS5pc0xpbmVUb29sTmFtZSkoZSkmJiEoMCxtLmlzTGluZURyYXduV2l0aFByZXNzZWRCdXR0b24pKGUpJiZ0aGlzLnNlbGVjdFBvaW50TW9kZSgpLnZhbHVlKCk9PT1ULlNlbGVjdFBvaW50TW9kZS5Ob25lfV9jYW5jZWxDcmVhdGluZ0xpbmUoKXtjb25zdCBlPXRoaXMubW9kZWwoKS5tb2RlbCgpLHQ9ZS5saW5lQmVpbmdDcmVhdGVkKCk7aWYobnVsbCE9PXQpe2NvbnN0IGk9ZS5saW5lVG9vbHNHcm91cE1vZGVsKCkuZ3JvdXBGb3JMaW5lVG9vbCh0KTtpJiZpLmV4Y2x1ZGVJdGVtcyhbdF0pO2NvbnN0IHM9KDAsbC5lbnN1cmVOb3ROdWxsKShlLnBhbmVGb3JTb3VyY2UodCkpOygwLGwuZW5zdXJlTm90TnVsbCkodGhpcy5wYW5lQnlTdGF0ZShzKSkuY2FuY2VsQ3JlYXRpbmdMaW5lVG9vbCgpLHQudG9vbG5hbWU9PT1ULnRvb2wudmFsdWUoKSYmKDAsVC5yZXNldFRvQ3Vyc29yKSgpfWNvbnN0IGk9ZS5jcm9zc2hhaXJTb3VyY2UoKS5tZWFzdXJlUGFuZSgpLnZhbHVlKCk7aWYobnVsbCE9PWkpeygwLGwuZW5zdXJlTm90TnVsbCkodGhpcy5wYW5lQnlTdGF0ZShpKSkuY2FuY2VsTWVhc3VyaW5nKCl9fV9hZGp1c3RTaXplKGUpe2xldCB0PTA7Y29uc3QgaT10aGlzLmhhc01vZGVsKCk/dGhpcy5tb2RlbCgpLm1vZGVsKCkucHJpY2VTY2FsZVNsb3RzQ291bnQoKTpudWxsLHM9bmV3IFVpbnQzMkFycmF5KG51bGw9PT1pPzA6aS5sZWZ0KSxuPW5ldyBVaW50MzJBcnJheShudWxsPT09aT8wOmkucmlnaHQpLHI9e3ZhbHVlOjB9LG89e3ZhbHVlOjB9LGE9KDAsZGkuZ2V0Q2FudmFzRGV2aWNlUGl4ZWxSYXRpbykoZG9jdW1lbnQuYm9keSksbD0oZSx0KT0+ZSt0LGM9KGUsdCxpKT0+e0FycmF5LmlzQXJyYXkoaSk/aS5mb3JFYWNoKCgodCxpKT0+e2VbaV09TWF0aC5tYXgoZVtpXSx0KX0pKTp0LnZhbHVlPU1hdGgubWF4KHQudmFsdWUsaSl9LGg9KGUsdCxpKT0+e2lmKGkudmFsdWU+dCl7Y29uc3Qgcz1pLnZhbHVlL3Q7bGV0IG49MDtmb3IobGV0IHQ9MDt0PGUubGVuZ3RoO3QrKyllW3RdPU1hdGguY2VpbChlW3RdKnMpLG4rPWVbdF07cmV0dXJuIG59cmV0dXJuIHR9LGQ9dGhpcy5fd2lkdGgoKSx1PXRoaXMuX2hlaWdodCgpLHA9dGhpcy5fcGFuZVNlcGFyYXRvcnMubGVuZ3RoLF89dGhpcy5oYXNNYXhpbWl6ZWRQYW5lKCk/MDpQaS5oZWlnaHQoKSpwLG09bnVsbCE9PXRoaXMuX3RpbWVBeGlzV2lkZ2V0P3RoaXMuX3RpbWVBeGlzV2lkZ2V0Lm9wdGltYWxIZWlnaHQoKTowO2xldCBnPXUtbT49NjE/bTowO2clMiYmKGcrPTEpO2NvbnN0IGY9dGhpcy5fcGFuZVdpZGdldHMudmFsdWUoKSxTPU1hdGgubWF4KDEsTWF0aC5mbG9vcigodS1fLWcpL2YubGVuZ3RoKSk7bGV0IHY9MCx5PW51bGw7Y29uc3QgYj10aGlzLm1heGltaXplZFBhbmVXaWRnZXQoKTtmb3IoY29uc3QgZSBvZiBmKWlmKCFifHxiPT09ZSl7ZS5sZWZ0UHJpY2VBeGlzZXNDb250YWluZXIoKS51cGRhdGVDdXJyZW5jeUxhYmVscygpO2NvbnN0IGk9ZS5sZWZ0UHJpY2VBeGlzZXNDb250YWluZXIoKS5vcHRpbWFsV2lkdGhzKCk7ZS5yaWdodFByaWNlQXhpc2VzQ29udGFpbmVyKCkudXBkYXRlQ3VycmVuY3lMYWJlbHMoKTtjb25zdCBhPWUucmlnaHRQcmljZUF4aXNlc0NvbnRhaW5lcigpLm9wdGltYWxXaWR0aHMoKTtjKHMscixpKSxjKG4sbyxhKSxiIT09ZSYmZS5zdGF0ZSgpLmNvbGxhcHNlZCgpLnZhbHVlKCk/dis9TWF0aC5taW4oUyxlLmNvbGxhcHNlZEhlaWdodCgpKToodCs9ZS5zdHJldGNoRmFjdG9yKCkseT1lKX1sZXQgdz1zLnJlZHVjZShsLDApOzA9PT13JiYwIT09cy5sZW5ndGgmJjAhPT1yLnZhbHVlJiYoc1swXT13PXIudmFsdWUpO2xldCBDPW4ucmVkdWNlKGwsMCk7MD09PUMmJjAhPT1uLmxlbmd0aCYmMCE9PW8udmFsdWUmJihuWzBdPUM9by52YWx1ZSksdz1oKHMsdyxyKSxDPWgobixDLG8pO2xldCBQPU1hdGgubWF4KGQtdy1DLDApO2lmKFA8PTEwMil7dz0wLEM9MCxQPWQ7Zm9yKGxldCBlPTA7ZTxzLmxlbmd0aDtlKyspc1tlXT0wO2ZvcihsZXQgZT0wO2U8bi5sZW5ndGg7ZSsrKW5bZV09MH1mb3IoY29uc3QgZSBvZiB0aGlzLl9wYW5lU2VwYXJhdG9ycyllLmFkanVzdFNpemUoKTtjb25zdCBUPV8rditnLHg9dTxUPzA6dS1ULE09eC90O2xldCBJPTAsTD0hMTtjb25zdCBBPXRoaXMuaGFzTW9kZWwoKT90aGlzLm1vZGVsKCkubW9kZWwoKTp2b2lkIDA7dGhpcy5fcGFuZVdpZGdldHMudmFsdWUoKS5mb3JFYWNoKCgoZSx0KT0+e3ZvaWQgMCE9PUEmJmUuc2V0U3RhdGUoQS5wYW5lcygpW3RdKTtsZXQgaT0wO2lmKHRoaXMuaGFzTWF4aW1pemVkUGFuZSgpKWk9dGhpcy5tYXhpbWl6ZWRQYW5lV2lkZ2V0KCk9PT1lP3g6MDtlbHNlIGlmKGUuc3RhdGUoKS5jb2xsYXBzZWQoKS52YWx1ZSgpKWk9TWF0aC5taW4oUyxlLmNvbGxhcHNlZEhlaWdodCgpKTtlbHNle2NvbnN0IHQ9ZT09PXk/TWF0aC5jZWlsKCh4LUkpKmEpL2E6TWF0aC5yb3VuZChlLnN0cmV0Y2hGYWN0b3IoKSpNKmEpL2EKO2k9TWF0aC5tYXgodCwyKSxJKz1pfWUuc2V0UHJpY2VBeGlzU2l6ZXMoImxlZnQiLGkscyksZS5zZXRQcmljZUF4aXNTaXplcygicmlnaHQiLGksbiksTD1MfHxpIT09ZS5oZWlnaHQoKSxlLnNldFNpemUoKDAseXQuc2l6ZSkoe3dpZHRoOlAsaGVpZ2h0Oml9KSksQSYmZS5zdGF0ZSgpJiZBLnNldFBhbmVIZWlnaHQoZS5zdGF0ZSgpLGkpfSkpLG51bGwhPT10aGlzLl90aW1lQXhpc1dpZGdldCYmdGhpcy5fdGltZUF4aXNXaWRnZXQuc2V0U2l6ZXMoKDAseXQuc2l6ZSkoe3dpZHRoOlAsaGVpZ2h0Omd9KSxzLG4pLEEmJkEuc2V0V2lkdGgoUCxlKSx0aGlzLl9jb250cm9sQmFyTmF2aWdhdGlvbiYmdGhpcy5fY29udHJvbEJhck5hdmlnYXRpb24udXBkYXRlUG9zaXRpb24oKSx0aGlzLl9saHNBeGVzV2lkdGghPT13JiYodGhpcy5fbGhzQXhlc1dpZHRoPXcsdGhpcy5fbGhzUHJpY2VBeGlzV2lkdGhDaGFuZ2VkLmZpcmUodykpLHRoaXMuX3Joc0F4ZXNXaWR0aCE9PUMmJih0aGlzLl9yaHNBeGVzV2lkdGg9Qyx0aGlzLl9yaHNQcmljZUF4aXNXaWR0aENoYW5nZWQuZmlyZShDKSksTCYmJC5lbWl0KCJwYW5lc19oZWlnaHRfY2hhbmdlZCIpfV9tYWtlUGFuZVdpZGdldHNBbmRTZXBhcmF0b3JzKCl7Y29uc3QgZT10aGlzLm1vZGVsKCkubW9kZWwoKS5wYW5lcygpLHQ9ZS5sZW5ndGgsaT10aGlzLl9wYW5lV2lkZ2V0cy52YWx1ZSgpLmxlbmd0aCxzPXRoaXMuX3BhbmVXaWRnZXRzLnZhbHVlKCkuc2xpY2UoKTtmb3IobGV0IGU9dDtlPGk7ZSsrKXsoMCxsLmVuc3VyZURlZmluZWQpKHMucG9wKCkpLmRlc3Ryb3koKTtjb25zdCBlPXRoaXMuX3BhbmVTZXBhcmF0b3JzLnBvcCgpO2UmJmUuZGVzdHJveSgpfWNvbnN0IG49dGhpcy5fb3B0aW9ucy5jb250YWluc0RhdGE7Zm9yKGxldCByPTA7cjx0O3IrKyl7Y29uc3QgdD1yPj1pLG89e2NvbnRleHRNZW51RW5hYmxlZDp0aGlzLl9vcHRpb25zLnBhbmVDb250ZXh0TWVudUVuYWJsZWQsY3VycmVuY3lDb252ZXJzaW9uRW5hYmxlZDp0aGlzLl9vcHRpb25zLmN1cnJlbmN5Q29udmVyc2lvbkVuYWJsZWQsdW5pdENvbnZlcnNpb25FbmFibGVkOnRoaXMuX29wdGlvbnMudW5pdENvbnZlcnNpb25FbmFibGVkLG1ldHJpY0NvbnZlcnNpb25FbmFibGVkOnRoaXMuX29wdGlvbnMubWV0cmljQ29udmVyc2lvbkVuYWJsZWQsaGFuZGxlU2NhbGU6dGhpcy5fb3B0aW9ucy5oYW5kbGVTY2FsZSxoYW5kbGVTY3JvbGw6dGhpcy5fb3B0aW9ucy5oYW5kbGVTY3JvbGwscHJpY2VTY2FsZUNvbnRleHRNZW51RW5hYmxlZDp0aGlzLl9vcHRpb25zLnByaWNlU2NhbGVDb250ZXh0TWVudUVuYWJsZWQsbGVnZW5kV2lkZ2V0RW5hYmxlZDp0aGlzLl9vcHRpb25zLmxlZ2VuZFdpZGdldEVuYWJsZWQmJmVbcl0ubW9kZSgpPT09TS5QYW5lTW9kZS5SZWd1bGFyLHNvdXJjZVN0YXR1c2VzV2lkZ2V0RW5hYmxlZDohbixzb3VyY2VTdGF0dXNlc1dpZGdldDp0aGlzLl9vcHRpb25zLnNvdXJjZVN0YXR1c2VzV2lkZ2V0LG1hcmtldFN0YXR1c1dpZGdldEVuYWJsZWQ6dGhpcy5fb3B0aW9ucy5tYXJrZXRTdGF0dXNXaWRnZXRFbmFibGVkJiYhbixjaGFydFdhcm5pbmdXaWRnZXRFbmFibGVkOnRoaXMuX29wdGlvbnMuY2hhcnRXYXJuaW5nV2lkZ2V0RW5hYmxlZCYmIW4sY2hhcnRXYXJuaW5nV2lkZ2V0OnRoaXMuX29wdGlvbnMuY2hhcnRXYXJuaW5nV2lkZ2V0LGRhdGFQcm9ibGVtV2lkZ2V0RW5hYmxlZDp0aGlzLl9vcHRpb25zLmRhdGFQcm9ibGVtV2lkZ2V0RW5hYmxlZCYmIW4sbGVnZW5kV2lkZ2V0OnRoaXMuX29wdGlvbnMubGVnZW5kV2lkZ2V0LHByb3BlcnR5UGFnZXNFbmFibGVkOnRoaXMuX29wdGlvbnMucHJvcGVydHlQYWdlc0VuYWJsZWQsc291cmNlU2VsZWN0aW9uRW5hYmxlZDp0aGlzLl9vcHRpb25zLnNvdXJjZVNlbGVjdGlvbkVuYWJsZWQsY29udHJvbHNFbmFibGVkOnRoaXMuX29wdGlvbnMucGFuZUNvbnRyb2xzRW5hYmxlZCxjcm9wcGVkVGlja01hcmtzOnRoaXMuX29wdGlvbnMuY3JvcHBlZFRpY2tNYXJrcyxjb3VudGRvd25FbmFibGVkOnRoaXMuX29wdGlvbnMuY291bnRkb3duRW5hYmxlZCxjdXN0b21MZWdlbmRXaWRnZXRGYWN0b3JpZXM6bmV3IE1hcCh0aGlzLl9jdXN0b21MZWdlbmRXaWRnZXRzRmFjdG9yeU1hcCksdXNlS2luZXRpY1Njcm9sbDp0aGlzLl9vcHRpb25zLnVzZUtpbmV0aWNTY3JvbGwscGluZVNvdXJjZVN0YXR1c0VuYWJsZWQ6IXRoaXMucmVhZE9ubHkoKSxhbGVydFN0YXR1c0VuYWJsZWQ6IXRoaXMucmVhZE9ubHkoKSYmIXRoaXMuX29uV2lkZ2V0fTtpZih2b2lkIDAhPT10aGlzLl9vcHRpb25zLnBhbmVDb250ZXh0TWVudSYmKG8uY29udGV4dE1lbnU9dGhpcy5fb3B0aW9ucy5wYW5lQ29udGV4dE1lbnUpLHZvaWQgMCE9PXRoaXMuX29wdGlvbnMucHJpY2VTY2FsZUNvbnRleHRNZW51JiYoby5wcmljZVNjYWxlQ29udGV4dE1lbnU9dGhpcy5fb3B0aW9ucy5wcmljZVNjYWxlQ29udGV4dE1lbnUpLHQpe2NvbnN0IHQ9bmV3IGJuKHRoaXMsZVtyXSxvLHRoaXMuX3BhbmVXaWRnZXRzU2hhcmVkU3RhdGUpO2lmKHMucHVzaCh0KSxyPjApe2NvbnN0IGU9bmV3IFBpKHRoaXMsci0xLHIpO3RoaXMuX3BhbmVTZXBhcmF0b3JzLnB1c2goZSksdGhpcy5fdGltZUF4aXNXaWRnZXQ/dGhpcy5fZWxNYWluVGFibGUuaW5zZXJ0QmVmb3JlKGUuZ2V0RWxlbWVudCgpLHRoaXMuX3RpbWVBeGlzV2lkZ2V0LmdldEVsZW1lbnQoKSk6dGhpcy5fZWxNYWluVGFibGUuYXBwZW5kQ2hpbGQoZS5nZXRFbGVtZW50KCkpfXRoaXMuX3RpbWVBeGlzV2lkZ2V0P3RoaXMuX2VsTWFpblRhYmxlLmluc2VydEJlZm9yZSh0LmdldEVsZW1lbnQoKSx0aGlzLl90aW1lQXhpc1dpZGdldC5nZXRFbGVtZW50KCkpOnRoaXMuX2VsTWFpblRhYmxlLmFwcGVuZENoaWxkKHQuZ2V0RWxlbWVudCgpKX1lbHNle3Nbcl0udXBkYXRlT3B0aW9ucyhvKX19Y29uc3Qgcj10aGlzLm1heGltaXplZFBhbmVXaWRnZXQoKTtmb3IoY29uc3QgZSBvZiB0aGlzLl9wYW5lU2VwYXJhdG9ycylyP2UuaGlkZSgpOmUuc2hvdygpO2ZvcihsZXQgaT0wO2k8dDtpKyspe2NvbnN0IHQ9ZVtpXSxuPXNbaV0KO24uaGFzU3RhdGUoKSYmbi5zdGF0ZSgpPT09dD9uLnVwZGF0ZVByaWNlQXhpc1dpZGdldHNTdGF0ZXMoKTpuLnNldFN0YXRlKHQpfWZvcihsZXQgZT10O2UtLTspc1tlXS51cGRhdGVDb250cm9scygpO3RoaXMuX3BhbmVXaWRnZXRzLnNldFZhbHVlKFsuLi5zXSksdGhpcy5fZXJyb3JSZW5kZXJlclJlc291cmNlLmNhbGxGdW5jdGlvbigoZT0+e2U/LnVwZGF0ZVBhbmVXaWRnZXRzKCl9KSksdGhpcy5fdXBkYXRlVGhlbWVkQ29sb3IoKX1fd2lkdGgoKXtyZXR1cm4gdGhpcy5fb3B0aW9ucy53aWR0aC52YWx1ZSgpfV9oZWlnaHQoKXtyZXR1cm4gdGhpcy5fb3B0aW9ucy5oZWlnaHQudmFsdWUoKX1fdXBkYXRlKGUsdCl7Y29uc3QgaT1lP2UuZnVsbEludmFsaWRhdGlvbigpOkxlLkludmFsaWRhdGlvbkxldmVsLkZ1bGwscz0hIWUmJmUuaXNWaXNpYmxlVGltZVJhbmdlTG9ja2VkT25SZXNpemUoKTtpZihudWxsIT09dGhpcy5fdGltaW5nc01ldGVyJiZ0aGlzLl90aW1pbmdzTWV0ZXIuc3RhcnREcmF3KGksdGhpcy5tb2RlbCgpLm1vZGVsKCkubWFpblNlcmllcygpLnN0eWxlKCkpLGk9PT1MZS5JbnZhbGlkYXRpb25MZXZlbC5GdWxsJiYodGhpcy5oYXNNb2RlbCgpP3RoaXMuX3VwZGF0ZUd1aShzKTp0aGlzLl9hZGp1c3RTaXplKHMpKSxpPkxlLkludmFsaWRhdGlvbkxldmVsLkN1cnNvciYmKHRoaXMuX3RpbWVBeGlzV2lkZ2V0Py51cGRhdGUoKSx0aGlzLl9wYW5lV2lkZ2V0cy52YWx1ZSgpLmZvckVhY2goKGU9PntlLnVwZGF0ZVByaWNlQXhpc1dpZGdldHMoKX0pKSx0aGlzLl9hcHBseVRpbWVTY2FsZUludmFsaWRhdGlvbnMoZSx0KSx0aGlzLl9pbnZhbGlkYXRpb25NYXNrPy5mdWxsSW52YWxpZGF0aW9uKCk9PT1MZS5JbnZhbGlkYXRpb25MZXZlbC5GdWxsJiYodGhpcy5faW52YWxpZGF0aW9uTWFzay5tZXJnZShlKSx0aGlzLl9hZGp1c3RTaXplKHRoaXMuX2ludmFsaWRhdGlvbk1hc2suaXNWaXNpYmxlVGltZVJhbmdlTG9ja2VkT25SZXNpemUoKSksdGhpcy5fYXBwbHlUaW1lU2NhbGVJbnZhbGlkYXRpb25zKHRoaXMuX2ludmFsaWRhdGlvbk1hc2ssdCksZT10aGlzLl9pbnZhbGlkYXRpb25NYXNrLHRoaXMuX2ludmFsaWRhdGlvbk1hc2s9bnVsbCkpLHRoaXMucGFpbnQoZSksdGhpcy5fZGF0YVdpbmRvd1dpZGdldCl7Y29uc3QgdD1lLm1heFBhbmVJbnZhbGlkYXRpb24oKTt0PT09TGUuSW52YWxpZGF0aW9uTGV2ZWwuRnVsbD90aGlzLl9kYXRhV2luZG93V2lkZ2V0LmZ1bGxVcGRhdGUoKTp0PkxlLkludmFsaWRhdGlvbkxldmVsLk5vbmUmJnRoaXMuX2RhdGFXaW5kb3dXaWRnZXQudXBkYXRlKCl9dGhpcy5fcGFuZVdpZGdldHMudmFsdWUoKS5mb3JFYWNoKCgodCxpKT0+e3QudXBkYXRlU3RhdHVzV2lkZ2V0KGUuaW52YWxpZGF0aW9uRm9yUGFuZShpKSl9KSksbnVsbCE9PXRoaXMuX3RpbWluZ3NNZXRlciYmdGhpcy5fdGltaW5nc01ldGVyLnN0b3BEcmF3KCksZSYmZS5wYW5lc09yZGVySW52YWxpZGF0ZWQoKSYmJC5lbWl0KCJwYW5lc19vcmRlcl9jaGFuZ2VkIil9X2luaXRNYXhpbWl6ZUhvdGtleShlKXtjb25zdCB0PWU9PiFlLmRlZmF1bHRQcmV2ZW50ZWQmJigwLEsubW9kaWZpZXJzRnJvbUV2ZW50KShlKT09PUsuTW9kaWZpZXJzLkFsdCYmISgwLFQudG9vbElzRGVtb25zdHJhdGlvbikoVC50b29sLnZhbHVlKCkpLGk9ZT0+e3QoZSkmJmUuc3RvcFByb3BhZ2F0aW9uKCl9LHM9ZT0+e3QoZSkmJihlLnByZXZlbnREZWZhdWx0KCksZS5zdG9wUHJvcGFnYXRpb24oKSx0aGlzLnRvZ2dsZUZ1bGxzY3JlZW4oKSl9O3JldHVybiBlLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsaSwhMCksZS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIscywhMCksKCk9PntlLnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsaSwhMCksZS5yZW1vdmVFdmVudExpc3RlbmVyKCJjbGljayIscywhMCl9fV9vbk1vdXNld2hlZWwoZSl7aWYoIXRoaXMuaGFzTW9kZWwoKSlyZXR1cm47aWYoIXRoaXMubW9kZWwoKS5tb2RlbCgpLnpvb21FbmFibGVkKCl8fG51bGw9PT10aGlzLl9tb3VzZVdoZWVsSGVscGVyKXJldHVybjtpZih0aGlzLm1vZGVsKCkudGltZVNjYWxlKCkuaXNFbXB0eSgpKXJldHVybjtjb25zdCB0PXRoaXMuX21vdXNlV2hlZWxIZWxwZXIucHJvY2Vzc1doZWVsKGUpLGk9dC5kZWx0YVgscz0tdC5kZWx0YVk7aWYoMCE9PWkmJnRoaXMuX29wdGlvbnMuaGFuZGxlU2Nyb2xsLm1vdXNlV2hlZWx8fDAhPT1zJiZ0aGlzLl9vcHRpb25zLmhhbmRsZVNjYWxlLm1vdXNlV2hlZWwpe2lmKGUuY2FuY2VsYWJsZSYmZS5wcmV2ZW50RGVmYXVsdCgpLDAhPT1zJiZ0aGlzLl9vcHRpb25zLmhhbmRsZVNjYWxlLm1vdXNlV2hlZWwpe2NvbnN0IHQ9TWF0aC5zaWduKHMpKk1hdGgubWluKDEsTWF0aC5hYnMocykpLGk9KDAsbC5lbnN1cmVOb3ROdWxsKSh0aGlzLl9tYWluRGl2KS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxuPWUuY2xpZW50WC10aGlzLl9saHNBeGVzV2lkdGgtaS5sZWZ0O2lmKCFOdW1iZXIuaXNGaW5pdGUobil8fCFOdW1iZXIuaXNGaW5pdGUodCkpcmV0dXJuIHZvaWQgWW0ubG9nV2FybigiSW5jb3JyZWN0IG1vdXNlIHdoZWVsIHByb2Nlc3Npbmc6IHNjcm9sbFBvc2l0aW9uOiAiK24rIiwgem9vbVNjYWxlOiAiK3QpO2NvbnN0IHI9bmV3IExpLkVudmlyb25tZW50U3RhdGUoZSkubW9kKCk7dGhpcy5tb2RlbCgpLm1vZGVsKCkuem9vbVRpbWUobix0LCEhcnx8dm9pZCAwKSx0aGlzLl9vblpvb20uZmlyZShyKX0wIT09aSYmdGhpcy5fb3B0aW9ucy5oYW5kbGVTY3JvbGwubW91c2VXaGVlbCYmdGhpcy5tb2RlbCgpLnNjcm9sbENoYXJ0KC04MCppKX19X2JlZ2luUmVxdWVzdEFjdGl2ZSgpe2NvbnN0IGU9dGhpcy5fYWN0aXZlQ2hhcnRXaWRnZXRXVi52YWx1ZSgpIT09dGhpcztpZih0aGlzLl9jaGFydFdpZGdldENvbGxlY3Rpb24uYWN0aXZlQ2hhcnRXaWRnZXQuc2V0VmFsdWUodGhpcyksZSl7dGhpcy5fY2hhcnRXaWRnZXRDb2xsZWN0aW9uLmFyaWFEZXNjcmliZUNoYXJ0KHRoaXMuX2FjdGl2ZUNoYXJ0V2lkZ2V0V1YudmFsdWUoKSk7Y29uc3QgZT0oMCwKdWkubGFzdE1vdXNlT3JUb3VjaEV2ZW50SW5mbykoKTtlLmlzVG91Y2gmJiFlLnN0eWx1cyYmdGhpcy5faXNMaW5lVG9vbE1vZGVFeGNlcHRCcnVzaCgpJiZ0aGlzLnVwZGF0ZUNyb3NzSGFpclBvc2l0aW9uSWZOZWVkZWQoKSx0aGlzLl9qdXN0QWN0aXZhdGVkPSEwfX1fZW5kUmVxdWVzdEFjdGl2ZSgpe3RoaXMuX2p1c3RBY3RpdmF0ZWQmJnNldFRpbWVvdXQoKCgpPT50aGlzLl9qdXN0QWN0aXZhdGVkPSExKSwwKX1fcmVxdWVzdEFjdGl2ZSgpe3RoaXMuX2JlZ2luUmVxdWVzdEFjdGl2ZSgpLHRoaXMuX2VuZFJlcXVlc3RBY3RpdmUoKX1fY3JlYXRlU2Vzc2lvbnMoZSl7Y29uc3QgdD10aGlzLnNob3dHZW5lcmFsQ2hhcnRQcm9wZXJ0aWVzLmJpbmQodGhpcyxKdC5UYWJOYW1lcy5ldmVudHMpO2UuY3JlYXRlU2Vzc2lvbnModCl9X2NyZWF0ZVByZVBvc3RNYXJrZXQoZSl7e2NvbnN0IHQ9dGhpcy5zaG93R2VuZXJhbENoYXJ0UHJvcGVydGllcy5iaW5kKHRoaXMsSnQuVGFiTmFtZXMuc2NhbGVzKTtlLmNyZWF0ZVByZVBvc3RNYXJrZXQodCl9fV9jcmVhdGVWb2x1bWVJZk5lZWRlZCgpe2NvbnN0IGU9KDAscS5pc0ZlYXR1cmVzZXRFbmFibGVkKSgiY3JlYXRlX3ZvbHVtZV9pbmRpY2F0b3JfYnlfZGVmYXVsdCIpJiZ0aGlzLl9vcHRpb25zLmFkZFZvbHVtZSx0PSF0aGlzLl9jb250ZW50LGk9KDAscS5pc0ZlYXR1cmVzZXRFbmFibGVkKSgiY3JlYXRlX3ZvbHVtZV9pbmRpY2F0b3JfYnlfZGVmYXVsdF9vbmNlIik7dGhpcy5fY29udGVudCYmdGhpcy5fY29udGVudC5sb2FkaW5nO2lmKGUmJnQpe2NvbnN0IGU9KCk9PntzZXRUaW1lb3V0KChhc3luYygpPT57Y29uc3QgZT10aGlzLm1vZGVsKCkubW9kZWwoKSx0PWUubWFpblNlcmllcygpLnN5bWJvbEluZm8oKTtpZighdClyZXR1cm47Y29uc3QgaT0oMCxBLmhhc1ZvbHVtZSkodCk7aWYoIXRoaXMuY29udGFpbnNWb2x1bWUoKSYmaSl7Y29uc3QgdD0oMCwkbC5mYWN0b3J5RGVmYXVsdHMpKCJjaGFydHByb3BlcnRpZXMudm9sdW1lUGFuZVNpemUiKTthd2FpdCgwLGF0LnN0dWR5TWV0YUluZm9SZXBvc2l0b3J5KSgpLnJlcXVlc3RNZXRhSW5mbygpO2NvbnN0IGk9ZS5jcmVhdGVTdHVkeUluc2VydGVyKHt0eXBlOiJqYXZhIixzdHVkeUlkOiJWb2x1bWVAdHYtYmFzaWNzdHVkaWVzIn0pO2kuc2V0Rm9yY2VPdmVybGF5KCgwLHEuaXNGZWF0dXJlc2V0RW5hYmxlZCkoInZvbHVtZV9mb3JjZV9vdmVybGF5IikpLGkuc2V0UGFuZVNpemUodCksKDAscS5pc0ZlYXR1cmVzZXRFbmFibGVkKSgiaGlkZV92b2x1bWVfbWEiKSYmaS5zZXRQcm9wZXJ0aWVzU3RhdGUoe3N0eWxlczp7dm9sX21hOntkaXNwbGF5OlZoLlN0dWR5UGxvdERpc3BsYXlUYXJnZXQuTm9uZX19fSksaS5pbnNlcnQoKX1lbHNlIGlmKCFpJiZ0aGlzLmNvbnRhaW5zVm9sdW1lKCkpe2NvbnN0IHQ9dGhpcy5tb2RlbCgpLmRhdGFTb3VyY2VzKCkuZmlsdGVyKChlPT4oMCx0aS5pc1N0dWR5KShlKSYmIlZvbHVtZSI9PT1lLm1ldGFJbmZvKCkuc2hvcnRJZCkpWzBdO2UucmVtb3ZlU291cmNlKHQpfX0pKX07dGhpcy5tb2RlbCgpLm1haW5TZXJpZXMoKS5kYXRhRXZlbnRzKCkuc3ltYm9sUmVzb2x2ZWQoKS5zdWJzY3JpYmUodGhpcyxlLGkpfX1vbk1vZGVsVGFnc0NoYW5nZWQoKXt0aGlzLl90YWdzQ2hhbmdlZC5maXJlKCl9X2luaXRCYWNrZ3JvdW5kQ29sb3IoKXtudWxsPT09dGhpcy5fYmFja2dyb3VuZFRvcENvbG9yU3Bhd24mJih0aGlzLl9iYWNrZ3JvdW5kVG9wQ29sb3JTcGF3bj10aGlzLm1vZGVsKCkubW9kZWwoKS5iYWNrZ3JvdW5kVG9wQ29sb3IoKS5zcGF3bigpLHRoaXMuX2JhY2tncm91bmRUb3BDb2xvclNwYXduLnN1YnNjcmliZSh0aGlzLl9vbkJhY2tncm91bmRDb2xvckNoYW5nZWQuYmluZCh0aGlzKSkpLG51bGw9PT10aGlzLl9iYWNrZ3JvdW5kQm90dG9tQ29sb3JTcGF3biYmKHRoaXMuX2JhY2tncm91bmRCb3R0b21Db2xvclNwYXduPXRoaXMubW9kZWwoKS5tb2RlbCgpLmJhY2tncm91bmRDb2xvcigpLnNwYXduKCksdGhpcy5fYmFja2dyb3VuZEJvdHRvbUNvbG9yU3Bhd24uc3Vic2NyaWJlKHRoaXMuX29uQmFja2dyb3VuZENvbG9yQ2hhbmdlZC5iaW5kKHRoaXMpKSl9X3VwZGF0ZUd1aShlKXt0aGlzLmhhc01vZGVsKCkmJih0aGlzLl9tYWtlVGltZUF4aXNXaWRnZXQoKSx0aGlzLl9tYWtlUGFuZVdpZGdldHNBbmRTZXBhcmF0b3JzKCksdGhpcy5fZWxNYWluVGFibGUuc3R5bGUudXNlclNlbGVjdD0ibm9uZSIsdGhpcy5fYWRqdXN0U2l6ZShlKSl9X29uQ2hhcnRTdHlsZUNoYW5nZWQoKXsoMCxNdC50cmFja0V2ZW50KSgiQ2hhcnQiLGBDaGFydCBTdHlsZSAke3RoaXMubW9kZWwoKS5tYWluU2VyaWVzKCkuZ2V0U3R5bGVTaG9ydE5hbWUoKS50b1VwcGVyQ2FzZSgpfWApfV9hZGRQZXJmTWFyayhlKXsoMCxxbS5hZGRQZXJmTWFyaykoYENoYXJ0V2lkZ2V0LiR7dGhpcy5faWR9LiR7ZX1gKX1fc2V0RWxlbWVudChlKXtpZighZSlyZXR1cm47aWYodGhpcy5fbWFpbkRpdil7dGhpcy5fbWFpbkRpdi5yZW1vdmUoKTtjb25zdCBlPWRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7ZS5zZWxlY3ROb2RlQ29udGVudHMoKDAsbC5lbnN1cmVOb3ROdWxsKSh0aGlzLl9wYXJlbnQpKSxlLmRlbGV0ZUNvbnRlbnRzKCl9dGhpcy5fY29udHJvbEJhck5hdmlnYXRpb24mJih0aGlzLl9jb250cm9sQmFyTmF2aWdhdGlvbi5kZXN0cm95KCksdGhpcy5fY29udHJvbEJhck5hdmlnYXRpb249bnVsbCksbnVsbCE9PXRoaXMuX3JlbW92ZU1heGltaXplSG90a2V5JiZ0aGlzLl9yZW1vdmVNYXhpbWl6ZUhvdGtleSgpLHRoaXMuX3JlbW92ZU1heGltaXplSG90a2V5PXRoaXMuX2luaXRNYXhpbWl6ZUhvdGtleShlKTtjb25zdCB0PWUub3duZXJEb2N1bWVudCxzPXQuY3JlYXRlRWxlbWVudCgiZGl2Iik7cy5jbGFzc0xpc3QuYWRkKCJjaGFydC1jb250YWluZXItYm9yZGVyIiksZS5pbnNlcnRCZWZvcmUocyxlLmZpcnN0Q2hpbGQpLHRoaXMuX3BhcmVudD1zO2NvbnN0IG49dC5jcmVhdGVFbGVtZW50KCJkaXYiKTtpZihuLmNsYXNzTGlzdC5hZGQoImNoYXJ0LXdpZGdldCIpLHRoaXMuX21haW5EaXY9biwKdGhpcy5fZWxUb29sdGlwRGl2PXQuY3JlYXRlRWxlbWVudCgiZGl2IiksdGhpcy5fZWxUb29sdGlwRGl2LmNsYXNzTmFtZT0idG9vbHRpcC13cmFwcGVyIix0aGlzLl9tYWluRGl2LmFwcGVuZENoaWxkKHRoaXMuX2VsVG9vbHRpcERpdiksdGhpcy5fZWxNYWluVGFibGU9dC5jcmVhdGVFbGVtZW50KCJkaXYiKSx0aGlzLl9lbE1haW5UYWJsZS5jbGFzc05hbWU9ImNoYXJ0LW1hcmt1cC10YWJsZSIsdGhpcy5fbWFpbkRpdi5hcHBlbmRDaGlsZCh0aGlzLl9lbE1haW5UYWJsZSksbi5zZXRBdHRyaWJ1dGUoInJvbGUiLCJyZWdpb24iKSxuLnNldEF0dHJpYnV0ZSgiYXJpYS1sYWJlbCIscC50KG51bGwse3JlcGxhY2U6e2luZGV4OnRoaXMuaWQoKX19LGkoODQzMzY3KSkpLHRoaXMuX2hvdGtleXNMaXN0ZW5lciYmdGhpcy5faG90a2V5c0xpc3RlbmVyLmRlc3Ryb3koKSx0aGlzLl9lcnJvclJlbmRlcmVyUmVzb3VyY2UuY2FsbEZ1bmN0aW9uKChlPT57ZT8uc2V0Q29udGFpbmVyKHRoaXMuX3BhcmVudCl9KSksdGhpcy5faG90a2V5c0xpc3RlbmVyPW5ldyBYdC5DaGFydEhvdGtleXNMaXN0ZW5lcih0aGlzLHRoaXMuX21haW5EaXYpLCh0aGlzLl9vcHRpb25zLmNvbnRyb2xCYXJFbmFibGVkfHwoMCxxLmlzRmVhdHVyZXNldEVuYWJsZWQpKCJjb250cm9sX2JhciIpKSYmdGhpcy5fY3JlYXRlQ29udHJvbEJhcigpLHRoaXMuX29wdGlvbnMuaGFuZGxlU2NhbGUubW91c2VXaGVlbHx8dGhpcy5fb3B0aW9ucy5oYW5kbGVTY3JvbGwubW91c2VXaGVlbCl7dGhpcy5fbW91c2VXaGVlbEhlbHBlcj1uZXcgU2k7Y29uc3QgZT10aGlzLl9vbk1vdXNld2hlZWwuYmluZCh0aGlzKTt0aGlzLl9vbldoZWVsQm91bmQ9ZSx0aGlzLl9tYWluRGl2LmFkZEV2ZW50TGlzdGVuZXIoIndoZWVsIixlLHtwYXNzaXZlOiExfSl9dGhpcy5fbWFpbkRpdi5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWVudGVyIiwoKCk9PnRoaXMuX2lzSG92ZXJlZC5zZXRWYWx1ZSghMCkpKSx0aGlzLl9tYWluRGl2LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlbGVhdmUiLCgoKT0+dGhpcy5faXNIb3ZlcmVkLnNldFZhbHVlKCExKSkpLHRoaXMucmVzaXplKCksdGhpcy5fanVzdEFjdGl2YXRlZD0hMSx0aGlzLndpdGhNb2RlbCh0aGlzLCgoKT0+e3MuYXBwZW5kQ2hpbGQobiksbi5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWRvd24iLHRoaXMuX2JlZ2luUmVxdWVzdEFjdGl2ZS5iaW5kKHRoaXMpKSxuLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLHRoaXMuX2VuZFJlcXVlc3RBY3RpdmUuYmluZCh0aGlzKSksbi5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaHN0YXJ0Iix0aGlzLl9iZWdpblJlcXVlc3RBY3RpdmUuYmluZCh0aGlzKSksbi5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaG1vdmUiLHRoaXMuX2VuZFJlcXVlc3RBY3RpdmUuYmluZCh0aGlzKSksbi5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaGVuZCIsdGhpcy5fZW5kUmVxdWVzdEFjdGl2ZS5iaW5kKHRoaXMpKSxuLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIix0aGlzLl9yZXF1ZXN0QWN0aXZlLmJpbmQodGhpcykpfSkpLHRoaXMuX2luaXRlZCYmKG51bGwhPT10aGlzLl90aW1lQXhpc1dpZGdldCYmKHRoaXMuX3RpbWVBeGlzV2lkZ2V0LmRlc3Ryb3koKSx0aGlzLl90aW1lQXhpc1dpZGdldD1udWxsKSx0aGlzLl9wYW5lV2lkZ2V0cy52YWx1ZSgpLmZvckVhY2goKGU9PntlLmRlc3Ryb3koKX0pKSx0aGlzLl9wYW5lV2lkZ2V0cy5zZXRWYWx1ZShbXSksdGhpcy5fcGFuZVNlcGFyYXRvcnMuZm9yRWFjaCgoZT0+e2UuZGVzdHJveSgpfSkpLHRoaXMuX3BhbmVTZXBhcmF0b3JzLmxlbmd0aD0wLHRoaXMuX3VwZGF0ZShMZS5JbnZhbGlkYXRpb25NYXNrLmZ1bGwoKSxwZXJmb3JtYW5jZS5ub3coKSkpfV9pbml0KCl7dGhpcy5oYXNNb2RlbCgpJiZ0aGlzLm1vZGVsKCkubWFpblNlcmllcygpLmNsZWFyRGF0YSgpLHRoaXMuX2luaXRDb2xvcnMoKSx0aGlzLl9tYWtlRGVmYXVsdEd1aSgpO3RoaXMuX21ha2VEZWZhdWx0TW9kZWwoKSwoKCk9Pnt0aGlzLl9jaGVja09ic29sZXRlVGltZXpvbmUoKSx0aGlzLl9jaGFydFNlc3Npb24mJnRoaXMuX2NoYXJ0U2Vzc2lvbi5jb25uZWN0ZWQoKSYmdGhpcy5tb2RlbCgpLm1vZGVsKCkucmVzdGFydCgpLHRoaXMuX2NvbnRlbnQmJih0aGlzLl9pbml0Q29sb3JzKCksdGhpcy5fdXBkYXRlR3VpKCksdGhpcy51cGRhdGUoKSksdGhpcy5fcmVzaXplSGFuZGxlcj0oKT0+e3RoaXMuX2ludmFsaWRhdGlvbkhhbmRsZXIoTGUuSW52YWxpZGF0aW9uTWFzay5mdWxsKCkpfSx0aGlzLl9yZXNpemVIYW5kbGVyKCksKDAsbC5lbnN1cmVOb3ROdWxsKSh0aGlzLl9wYXJlbnQpLmFwcGVuZENoaWxkKCgwLGwuZW5zdXJlTm90TnVsbCkodGhpcy5fbWFpbkRpdikpLHRoaXMuX3NwaW5uZXImJih0aGlzLl9zcGlubmVyLnN0b3AoKSx0aGlzLl9zcGlubmVyPW51bGwpLHRoaXMuX2FjdGl2YXRlU3ltYm9sU2VhcmNoSG90a2V5cygpLHRoaXMubW9kZWwoKS50aW1lU2NhbGUoKS5vblNjcm9sbCgpLnN1YnNjcmliZSh0aGlzLCgoKT0+dGhpcy5fb25TY3JvbGwuZmlyZSgpKSksdGhpcy5faW5pdGVkPSEwfSkoKX1fbWFrZURlZmF1bHRNb2RlbCgpe2xldCBlO2lmKHRoaXMuX2NvbnRlbnQmJnRoaXMuX2NvbnRlbnQudGltZVNjYWxlLnBvaW50cyl7Y29uc3QgdD10aGlzLl9jb250ZW50LnRpbWVTY2FsZS5wb2ludHMuaXRlbXNbMF07ZT17c3RhcnREYXRlOnR9fWNvbnN0IHQ9KCk9Pntjb25zdCB0PXtyZWFkT25seTp0aGlzLnJlYWRPbmx5KCksaXNTbmFwc2hvdDohIXRoaXMuX2NvbnRhaW5zRGF0YSwuLi4oMCwKa3QucGlja0ZpZWxkcykodGhpcy5fb3B0aW9ucyxbInRpbWVTY2FsZSIsImNyb3NzSGFpciIsImNoYXJ0RXZlbnRzRW5hYmxlZCIsIm5ld3NOb3RpZmljYXRpb25zRW5hYmxlZCIsImVzZEVuYWJsZWQiLCJsYXRlc3RVcGRhdGVzRW5hYmxlZCIsImNvbnRpbnVvdXNDb250cmFjdFN3aXRjaGVzRW5hYmxlZCIsImZ1dHVyZXNDb250cmFjdEV4cGlyYXRpb25FbmFibGVkIiwiY291bnRkb3duRW5hYmxlZCIsImxhc3RQcmljZUFuaW1hdGlvbkVuYWJsZWQiLCJjdXJyZW5jeUNvbnZlcnNpb25FbmFibGVkIiwidW5pdENvbnZlcnNpb25FbmFibGVkIiwibWV0cmljQ29udmVyc2lvbkVuYWJsZWQiLCJ3YXRlcm1hcmtFbmFibGVkIiwic2hpZnRWaXNpYmxlUmFuZ2VPbk5ld0JhciIsImhpZGVJZGVhcyIsIm9uV2lkZ2V0Il0pfTt2b2lkIDAhPT10LmNyb3NzSGFpciYmKHQuY3Jvc3NIYWlyLmV4dGVybmFsU2VydmljZXM9dGhpcy5fb3B0aW9ucy5leHRlcm5hbFNlcnZpY2VzLnRyYWRpbmcpO2NvbnN0IGk9bmV3IENfKHtjaGFydFNlc3Npb246dGhpcy5fY2hhcnRTZXNzaW9uLGludmFsaWRhdGVIYW5kbGVyOnRoaXMuX2ludmFsaWRhdGlvbkhhbmRsZXIscHJvcGVydGllczp0aGlzLl9wcm9wZXJ0aWVzLHNlcmllc1Byb3BlcnRpZXM6dGhpcy5fbWFpblNlcmllc1Byb3BlcnRpZXMsZGF0YVJlcXVlc3Q6ZSxjaGFydFdpZGdldDp0aGlzLHVuZG9IaXN0b3J5OnRoaXMuX29wdGlvbnMudW5kb0hpc3RvcnksYmFyc01hcmtzQ29udGFpbmVyc0ZhY3Rvcnk6dGhpcy5fb3B0aW9ucy5iYXJzTWFya3NDb250YWluZXJzRmFjdG9yeSxvcHRpb25zOnQsaGliZXJuYXRlVlc6dGhpcy5fY29sbGFwc2VkLGxpbmtpbmdHcm91cFdWOnRoaXMuX2xpbmtpbmdHcm91cEluZGV4LGlzQXV0b1NhdmVFbmFibGVkOnRoaXMuX3NhdmVDaGFydFNlcnZpY2U/LmF1dG9TYXZlRW5hYmxlZCgpPz9uZXcgaC5XYXRjaGVkVmFsdWUoITApLGRyYXdUaW1lOnRoaXMuX2RyYXdUaW1lLnJlYWRvbmx5KCksdHJhZGluZ1ByZWZlcmVuY2VzU2VydmljZTp0aGlzLl9vcHRpb25zLmV4dGVybmFsU2VydmljZXMudHJhZGluZy50cmFkaW5nUHJlZmVyZW5jZXNTZXJ2aWNlfSk7cmV0dXJuIGkubW9kZWwoKS5mdWxsVXBkYXRlKCksdGhpcy5fY3JlYXRlU2Vzc2lvbnMoaS5tb2RlbCgpKSx0aGlzLl9jcmVhdGVQcmVQb3N0TWFya2V0KGkubW9kZWwoKSksaX07dGhpcy5fbW9kZWxXVi5zZXRWYWx1ZSh0aGlzLl9tb2RlbFdWLnZhbHVlKCl8fHQoKSwhMCksdGhpcy5tb2RlbCgpLm1vZGVsKCkuc2V0Q2hhcnRTYXZlVGltZSgxZTMqdGhpcy5fY2hhcnRXaWRnZXRDb2xsZWN0aW9uLm1ldGFJbmZvLmxhc3RNb2RpZmllZC52YWx1ZSgpKSx0aGlzLl9jcmVhdGVWb2x1bWVJZk5lZWRlZCgpO2lmKHRoaXMuX2NvbnRlbnQpe2xldCBlPXRoaXMuX3NldFN5bWJvbEludGVydmFsQ29udGVudE92ZXJyaWRlcztLbSYmdGhpcy5faW5pdGlhbExvYWRpbmcmJihlPXsuLi5lLHN5bWJvbDp0aGlzLl9kZWZTeW1ib2wsaW50ZXJ2YWw6dGhpcy5fZGVmSW50ZXJ2YWw/P3ZvaWQgMCxzdHlsZTp0aGlzLl9kZWZTdHlsZT8/dm9pZCAwfSx0aGlzLl9kZWZJbnRlcnZhbCYmeC5JbnRlcnZhbC5pc1JhbmdlKHRoaXMuX2RlZkludGVydmFsKSYmKGUuc3R5bGU9MTEpKSx0aGlzLl9hcHBseVNhdmVkTW9kZWxTdGF0ZSh0aGlzLl9jb250YWluc0RhdGEsZSksdGhpcy5fc2V0U3ltYm9sSW50ZXJ2YWxDb250ZW50T3ZlcnJpZGVzPXt9LEttJiZ0aGlzLl9kZWZTeW1ib2wmJnRoaXMubW9kZWwoKS5tb2RlbCgpLnJlY2FsY3VsYXRlUHJpY2VSYW5nZU9uY2UoKX10aGlzLl9zZXRBY3Rpb25zKCksdGhpcy5fY3JlYXRlTGluZVRvb2xzU3luY2hyb25pemVySWZOZWVkZWQoKSwoKCk9Pntjb25zdCBlPXRoaXMubW9kZWwoKTtlLm9uVGFnc0NoYW5nZWQoKS5zdWJzY3JpYmUodGhpcywoKCk9PnRoaXMub25Nb2RlbFRhZ3NDaGFuZ2VkKCkpKSx0aGlzLl9pbml0QmFja2dyb3VuZENvbG9yKCksdGhpcy5fdXBkYXRlR3VpKCksdGhpcy5fbW9kZWxDcmVhdGVkLmZpcmUoZSksdGhpcy5fdGFnc0NoYW5nZWQuZmlyZSgpO2NvbnN0IHQ9ZS5tYWluU2VyaWVzKCksaT10LnByb3BlcnRpZXMoKS5jaGlsZHMoKTt0aGlzLl9kZWZUaW1lZnJhbWUmJnQuc2V0RGVmYXVsdFRpbWVmcmFtZSh0aGlzLl9kZWZUaW1lZnJhbWUpLHRoaXMuX2RlZk1ldHJpYyYmdC5zZXRNZXRyaWModGhpcy5fZGVmTWV0cmljKSx0LmRhdGFFdmVudHMoKS5zeW1ib2xOb3RQZXJtaXR0ZWQoKS5zdWJzY3JpYmUobnVsbCwoZT0+dC5zZXRTeW1ib2xQYXJhbXMoe3N5bWJvbDplfSkpKSx0aGlzLl9zeW1ib2xXVi5zZXRWYWx1ZShpLnN5bWJvbC52YWx1ZSgpKSxpLnN5bWJvbC5zdWJzY3JpYmUodGhpcywoZT0+dGhpcy5fc3ltYm9sV1Yuc2V0VmFsdWUoZS52YWx1ZSgpKSkpLHRoaXMuX3Jlc29sdXRpb25XVi5zZXRWYWx1ZShpLmludGVydmFsLnZhbHVlKCkpLGkuaW50ZXJ2YWwuc3Vic2NyaWJlKHRoaXMsKGU9PnRoaXMuX3Jlc29sdXRpb25XVi5zZXRWYWx1ZShlLnZhbHVlKCkpKSksd2luZG93LmxvZ2luU3RhdGVDaGFuZ2Uuc3Vic2NyaWJlKHRoaXMsdGhpcy5faGFuZGxlTG9naW5TdGF0ZUNoYW5nZWQpLHRoaXMuX2hhbmRsZUxvZ2luU3RhdGVDaGFuZ2VkKCksdC5kYXRhRXZlbnRzKCkuc3ltYm9sUmVzb2x2ZWQoKS5zdWJzY3JpYmUodGhpcywoZT0+e2NvbnN0IGk9ZS5wcm9fbmFtZSxzPWUucHJvX3Blcm07aSYmdGhpcy5fb3B0aW9ucy5pc1N5bWJvbEF2YWlsYWJsZSYmdGhpcy5fb3B0aW9ucy5pc1N5bWJvbEF2YWlsYWJsZShpLHMpLnRoZW4oKGU9PntlfHx0LnNldFN5bWJvbFBhcmFtcyh7c3ltYm9sOigwLER0LmdldERlZmF1bHRTeW1ib2wpKCl9KX0pKX0pKSx2b2lkIDAhPT10aGlzLl9vcHRpb25zLnJlcXVlc3RGYWxsYmFja1N5bWJvbCYmdC5kYXRhRXZlbnRzKCkuc3ltYm9sR3JvdXBOb3RQZXJtaXR0ZWQoKS5zdWJzY3JpYmUodGhpcywoZT0+eygwLGwuZW5zdXJlRGVmaW5lZCkodGhpcy5fb3B0aW9ucy5yZXF1ZXN0RmFsbGJhY2tTeW1ib2wpKGkuc3ltYm9sLnZhbHVlKCkse3R5cGU6Imdyb3VwX25vdF9wZXJtaXR0ZWQiLApzeW1ib2xHcm91cDplfSkudGhlbigoZT0+e2UmJnQuc2V0U3ltYm9sUGFyYW1zKHtzeW1ib2w6ZX0pfSkpfSkpLCgwLGwuZW5zdXJlRGVmaW5lZCkodC5vbkluUmVwbGF5U3RhdGVDaGFuZ2VkKS5iaW5kKHQpKCkuc3Vic2NyaWJlKHRoaXMuc2NyZWVuLHRoaXMuc2NyZWVuLnNob3cpLGkuc3R5bGUudW5zdWJzY3JpYmUodGhpcyx0aGlzLl9vbkNoYXJ0U3R5bGVDaGFuZ2VkKSxpLnN0eWxlLnN1YnNjcmliZSh0aGlzLHRoaXMuX29uQ2hhcnRTdHlsZUNoYW5nZWQpLHQuZGF0YUV2ZW50cygpLmNvbXBsZXRlZCgpLnN1YnNjcmliZSh0aGlzLCgoKT0+dGhpcy5fYWRkUGVyZk1hcmsoIlNlcmllc0NvbXBsZXRlZCIpKSwhMCksdC5kYXRhRXZlbnRzKCkuYmFyUmVjZWl2ZWQoKS5zdWJzY3JpYmUodGhpcywoKCk9PnRoaXMuX2FkZFBlcmZNYXJrKCJTZXJpZXNGaXJzdERhdGFSZWNlaXZlZCIpKSwhMCk7Y29uc3Qgcz10aGlzLl9vcHRpb25zO3QuZGF0YUV2ZW50cygpLmNoYXJ0VHlwZU5vdFBlcm1pdHRlZCgpLnN1YnNjcmliZShudWxsLCgoKT0+e3Quc2V0U3ltYm9sUGFyYW1zKHtpbnRlcnZhbDoiRCJ9KSxzLm11dGVTZXNzaW9uRXJyb3JzfHwoKDAsTWUudHJhY2tHb1Byb0ZlYXR1cmUpKCJrYWdpUmVua28iKSwoMCxXdS5yZWxvZ2luT3JHb1Bybykoe2ZlYXR1cmU6ImthZ2lSZW5rbyJ9KSl9KSksdC5kYXRhRXZlbnRzKCkuaW50cmFkYXlTcHJlYWROb3RQZXJtaXR0ZWQoKS5zdWJzY3JpYmUobnVsbCwoKCk9Pnt0LnNldFN5bWJvbFBhcmFtcyh7aW50ZXJ2YWw6IkQifSkscy5tdXRlU2Vzc2lvbkVycm9yc3x8KDAsV3UucmVsb2dpbk9yR29Qcm8pKHtmZWF0dXJlOiJpbnRyYWRheVNwcmVhZCJ9KX0pKSx0LmRhdGFFdmVudHMoKS5jdXN0b21JbnRlcnZhbE5vdFBlcm1pdHRlZCgpLnN1YnNjcmliZShudWxsLChpPT57Y29uc3Qgbj1lLm1vZGVsKCkuZGVmYXVsdFJlc29sdXRpb25zKCkscj1uLmZpbmQoKGU9PigwLEkuY29tcGFyZVJlc29sdXRpb25zKShlLGkpPj0wKSk/P25bbi5sZW5ndGgtMV07dC5zZXRTeW1ib2xQYXJhbXMoe2ludGVydmFsOnJ9KSxzLm11dGVTZXNzaW9uRXJyb3JzfHwoMCxXdS5yZWxvZ2luT3JHb1Bybykoe2ZlYXR1cmU6ImN1c3RvbUludGVydmFscyJ9KX0pKSx0LmRhdGFFdmVudHMoKS5zZWNvbmRzSW50ZXJ2YWxOb3RQZXJtaXR0ZWQoKS5zdWJzY3JpYmUobnVsbCwoKCk9Pnt0LnNldFN5bWJvbFBhcmFtcyh7aW50ZXJ2YWw6IjEifSkscy5tdXRlU2Vzc2lvbkVycm9yc3x8KDAsV3UucmVsb2dpbk9yR29Qcm8pKHtmZWF0dXJlOiJzZWNvbmRzSW50ZXJ2YWxzIn0pfSkpLHQuZGF0YUV2ZW50cygpLnRpY2tzSW50ZXJ2YWxOb3RQZXJtaXR0ZWQoKS5zdWJzY3JpYmUobnVsbCwoKCk9Pnt0LnNldFN5bWJvbFBhcmFtcyh7aW50ZXJ2YWw6IjEifSkscy5tdXRlU2Vzc2lvbkVycm9yc3x8KDAsV3UucmVsb2dpbk9yR29Qcm8pKHtmZWF0dXJlOiJ0aWNrSW50ZXJ2YWxzIn0pfSkpLHQuZGF0YUV2ZW50cygpLmludHJhZGF5RXhjaGFuZ2VOb3RQZXJtaXR0ZWQoKS5zdWJzY3JpYmUobnVsbCwoKCk9PntpZih0LnNldFN5bWJvbFBhcmFtcyh7aW50ZXJ2YWw6IkQifSksIXMubXV0ZVNlc3Npb25FcnJvcnMpe2xldCBlPSgwLGwuZW5zdXJlTm90TnVsbCkodC5zeW1ib2xJbmZvKCkpLmxpc3RlZF9leGNoYW5nZTsoMCxUXy5nZXRFeGNoYW5nZXMpKCkuZm9yRWFjaCgodD0+e3QudmFsdWU9PT1lJiYoZT10Lm5hbWUpfSkpLCgwLFd1LnJlbG9naW5PckdvUHJvKSh7ZmVhdHVyZToiaW50cmFkYXlFeGNoYW5nZSJ9KX19KSksdC5yZXF1ZXN0aW5nU3R5bGVJc05vdFN1cHBvcnRlZC5zdWJzY3JpYmUobnVsbCwoKCk9Pntjb25zdCBpPXQuaW50ZXJ2YWwoKSxzPWUubW9kZWwoKS5kZWZhdWx0UmVzb2x1dGlvbnMoKSxuPSgwLEEuZ2V0TGFzdFVzZWRTaW5nbGVWYWx1ZUJhc2VkU3R5bGUpKCkscj0oMCxJLmdldFJlc29sdXRpb25CeUNoYXJ0U3R5bGUpKG4saSxzKTt0LnNldENoYXJ0U3R5bGVXaXRoSW50ZXJ2YWxJZk5lZWRlZChuLHIpfSkpLHQucmVxdWVzdGluZ1N0eWxlU3VwcG9ydFJlY292ZXJlZC5zdWJzY3JpYmUobnVsbCwoaT0+e2NvbnN0IHM9dC5pbnRlcnZhbCgpLG49ZS5tb2RlbCgpLmRlZmF1bHRSZXNvbHV0aW9ucygpLHI9KDAsSS5nZXRSZXNvbHV0aW9uQnlDaGFydFN0eWxlKShpLHMsbik7dC5zZXRDaGFydFN0eWxlV2l0aEludGVydmFsSWZOZWVkZWQoaSxyKX0pKX0pKCl9X2FwcGx5U2F2ZWRNb2RlbFN0YXRlKGUsdCl7dGhpcy5fYWRqdXN0U2l6ZSgpO2NvbnN0IHM9dGhpcy5tb2RlbCgpLG49cy5yZXN0b3JlU3RhdGUodGhpcy5fY29udGVudCxlLHQpLHI9cy5tYWluU2VyaWVzKCkucHJvcGVydGllcygpLmNoaWxkcygpO3RoaXMuX3N5bWJvbFdWLnNldFZhbHVlKHIuc3ltYm9sLnZhbHVlKCkpLHRoaXMuX3Jlc29sdXRpb25XVi5zZXRWYWx1ZShyLmludGVydmFsLnZhbHVlKCkpLG4mJm4ubGluZXNfbGltaXRfZXhjZWVkZWQmJiF0aGlzLnJlYWRPbmx5KCkmJlByb21pc2UuYWxsKFtpLmUoODM0NTApLGkuZSg1NDY4MSksaS5lKDMxODM3KSxpLmUoMjA5NzEpLGkuZSg0OTUxOCksaS5lKDc1MzA0KSxpLmUoMzgwMDIpLGkuZSg3MDM2NCksaS5lKDg5MTk1KSxpLmUoNzUwNCksaS5lKDgzMjI1KSxpLmUoNDY2MDApLGkuZSgxNzUxNSldKS50aGVuKGkuYmluZChpLDQwODMwOSkpLnRoZW4oKCh7c2hvd0xpbmV0b29sc0xpbWl0RXhjZWVkZWREaWFsb2c6ZX0pPT57ZSh0aGlzKX0pKX1fYWRkSG90a2V5cygpe2lmKHRoaXMuX2hvdGtleXMuYWRkKHtkZXNjOiJNYXhpbWl6ZSIsaG90a2V5OksuTW9kaWZpZXJzLkFsdCsxMyxoYW5kbGVyOigpPT50aGlzLnRvZ2dsZUZ1bGxzY3JlZW4oKSxpc0Rpc2FibGVkOigpPT4hdGhpcy5nZXRSZXNpemVyRGV0YWNoZXIoKS5mdWxsc2NyZWVuYWJsZS52YWx1ZSgpfSksdGhpcy5faG90a2V5cy5hZGQodGhpcy5fY2xlYXJTZWxlY3Rpb25Ib3RrZXkoKSksdGhpcy5fb3B0aW9ucy5pbmRpY2F0b3JzRGlhbG9nU2hvcnRj"}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/52396.ed76caf2ffe014460ba6.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:13.871Z","timestamp":1785148033871,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/52396.ed76caf2ffe014460ba6.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:13 GMT\r\ncontent-type: text/css; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a58ab11-37a\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Thu, 16 Jul 2026 09:57:37 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/16/2026 11:03:21\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 54b04a120ce30922e546a0665578a0ab\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":890,"size_decoded":1183,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with very long lines (890), with no line terminators","md5":"4ea5d0b6056033b75774e42fe5d68067","sha1":"748282414e5e498bf7540bb4c9a4871cb5ace801","sha256":"650d170333b85bddb948d847ac00379ef6939e1848f4e0a777b76a0413292927","sha512":"ff316d259a766190a4f00a012288d5790d1e7f304f11afb9f4d5c3e82f90cac799c49c72f2c77633bf15cf4a3b3f2573ec1b42426e65a0c959dbbdf448902c91","ssdeep":"","tlshash":"5b117aa5f54996a7f83b693b0bd89b4f1128e0055e075f69ea26b130458b3fa30b13d4","first_seen":"2026-07-17T03:30:51.146413Z","last_seen":"2026-07-27T12:53:06.222463Z","times_seen":171,"resource_available":false,"data":"W2RhdGEtdGhlbWU9bGlnaHRdey0tXzAtTEtQODp2YXIoLS1jb2xvci13aGl0ZSk7LS1fMS1MS1A4OnZhcigtLWNvbG9yLWNvbGQtZ3JheS00MDApfVtkYXRhLXRoZW1lPWRhcmtdey0tXzAtTEtQODp2YXIoLS1jb2xvci1jb2xkLWdyYXktOTAwKTstLV8xLUxLUDg6dmFyKC0tY29sb3ItY29sZC1ncmF5LTk1MCl9LmRpYWxvZy1HSFVINl8xWHtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLWJnLXByaW1hcnkpO2JveC1zaXppbmc6Ym9yZGVyLWJveDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO21pbi13aWR0aDoyODBweDt0ZXh0LWFsaWduOnN0YXJ0fS5kaWFsb2ctR0hVSDZfMVgucm91bmRlZC1HSFVINl8xWHtib3JkZXItcmFkaXVzOjZweH0uZGlhbG9nLUdIVUg2XzFYLnNoYWRvd2VkLUdIVUg2XzFYe2JveC1zaGFkb3c6MCAycHggNHB4IHZhcigtLWNvbG9yLXNoYWRvdy1wcmltYXJ5LW5ldXRyYWwtZXh0cmEtaGVhdnkpfS5kaWFsb2ctR0hVSDZfMVguZnVsbHNjcmVlbi1HSFVINl8xWHtib3R0b206MDtoZWlnaHQ6MTAwJTtpbnNldC1pbmxpbmUtZW5kOjA7aW5zZXQtaW5saW5lLXN0YXJ0OjA7bWF4LWhlaWdodDoxMDAlO21heC13aWR0aDoxMDAlO21pbi1oZWlnaHQ6MTAwJTtwb3NpdGlvbjpmaXhlZDt0b3A6MDt3aWR0aDoxMDAlfS5kaWFsb2ctR0hVSDZfMVguZGFya2VyLUdIVUg2XzFYe2JhY2tncm91bmQtY29sb3I6dmFyKC0tXzAtTEtQOCl9LmJhY2tkcm9wLUdIVUg2XzFYe2JhY2tncm91bmQtY29sb3I6dmFyKC0tXzEtTEtQOCk7Ym90dG9tOjA7aW5zZXQtaW5saW5lLWVuZDowO2luc2V0LWlubGluZS1zdGFydDowO29wYWNpdHk6LjU7cG9zaXRpb246Zml4ZWQ7dG9wOjA7dHJhbnNmb3JtOnRyYW5zbGF0ZVooMCk7ei1pbmRleDotMX0="}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/24581.45df02181c4509732d20.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:13.897Z","timestamp":1785148033897,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/24581.45df02181c4509732d20.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:13 GMT\r\ncontent-type: text/css; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a58ab11-399\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Thu, 16 Jul 2026 09:57:37 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/16/2026 11:03:21\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: de10a4a8e5e8d694ce14cf109596c33a\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":921,"size_decoded":1137,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with very long lines (921), with no line terminators","md5":"7508df616380d228cd815ae2f451930e","sha1":"85644755c1e5d7bcc3ab17ab37a76bd5f60ceffa","sha256":"98ef25505ae9dff3c961255429596f2ffdc5cf7a6eb679c08e5b2844c68e3332","sha512":"272814590c3e8b26149c112ef510d070c1cd5521cca4ef7e3bf4f28f663c19a2ff2b44912cd075b967d3ee6646cf5b2edb29bf7ade0ed8652f4b37a259b34a89","ssdeep":"","tlshash":"1711bd3c919dcb6ab4974b145240cfcf01bd2d10ab169fa7b2cc70328cc88ac1833823","first_seen":"2026-07-17T03:30:51.220732Z","last_seen":"2026-07-27T12:51:16.037756Z","times_seen":163,"resource_available":false,"data":"LmJveC1YZkdrQkJxZntib3JkZXItcmFkaXVzOjNweDtib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLXdpZHRoOjFweDtib3gtc2l6aW5nOmJvcmRlci1ib3g7aGVpZ2h0OjE4cHg7b3ZlcmZsb3c6aGlkZGVuO3Bvc2l0aW9uOnJlbGF0aXZlO3RyYW5zaXRpb246YmFja2dyb3VuZC1jb2xvciAuMzVzIGVhc2UsYm9yZGVyLWNvbG9yIC4zNXMgZWFzZTt3aWR0aDoxOHB4fS5ib3gtWGZHa0JCcWYudW5jaGVja2VkLVhmR2tCQnFme2JhY2tncm91bmQtY29sb3I6aW5pdGlhbH0uYm94LVhmR2tCQnFmLmNoZWNrZWQtWGZHa0JCcWYsLmJveC1YZkdrQkJxZi5taXhlZC1YZkdrQkJxZntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXVpLWxpYi1wcml2YXRlLWNoZWNrYm94Vmlld0ltcGwtY29sb3ItYm94KTtjb2xvcjp2YXIoLS11aS1saWItcHJpdmF0ZS1jaGVja2JveFZpZXdJbXBsLWNvbG9yLW1hcmspfS51bmNoZWNrZWQtWGZHa0JCcWZ7Ym9yZGVyLWNvbG9yOnZhcigtLXVpLWxpYi1wcml2YXRlLWNoZWNrYm94Vmlld0ltcGwtY29sb3ItYm9yZGVyKX0uY2hlY2tlZC1YZkdrQkJxZiwubWl4ZWQtWGZHa0JCcWZ7Ym9yZGVyLWNvbG9yOnZhcigtLXVpLWxpYi1wcml2YXRlLWNoZWNrYm94Vmlld0ltcGwtY29sb3ItYm94KX0uZGlzYWJsZWQtWGZHa0JCcWZ7b3BhY2l0eTouNX0uY2hlY2tlZE1hcmstWGZHa0JCcWZ7aW5zZXQtaW5saW5lLXN0YXJ0OmNhbGMoNTAlIC0gNS41cHgpO3Bvc2l0aW9uOmFic29sdXRlO3RvcDpjYWxjKDUwJSAtIDQuNXB4KX0ubWl4ZWRNYXJrLVhmR2tCQnFme2JhY2tncm91bmQtY29sb3I6Y3VycmVudENvbG9yO2JvcmRlci1yYWRpdXM6MTAwJTtoZWlnaHQ6NnB4O2luc2V0LWlubGluZS1zdGFydDpjYWxjKDUwJSAtIDNweCk7cG9zaXRpb246YWJzb2x1dGU7dG9wOmNhbGMoNTAlIC0gM3B4KTt3aWR0aDo2cHh9"}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"widget-sheriff.tradingview-widget.com/sheriff/api/v1/rules/search?origin=https%3A%2F%2Fdigital-assettrade.com","fqdn":"widget-sheriff.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"143.204.238.21","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"fetch","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.663Z","timestamp":1785148034663,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"Amazon RSA 2048 M04","organization":"Amazon"},"validity":{"start":"Sat, 27 Dec 2025 00:00:00 GMT","end":"Sun, 24 Jan 2027 23:59:59 GMT"},"fingerprint":{"sha1":"0A:93:73:BB:95:EC:D1:52:11:5B:CC:2D:92:43:D4:FD:5A:2E:BE:A4","sha256":"70:E8:96:A5:F6:09:13:92:CB:0D:3F:A5:37:C4:A1:0D:4A:F7:52:C0:C1:B6:21:DB:D5:92:33:3F:B5:7D:EE:0F"}}},"request":{"raw":"GET /sheriff/api/v1/rules/search?origin=https%3A%2F%2Fdigital-assettrade.com HTTP/1.1\r\nHost: widget-sheriff.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: empty\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=4\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 204 \r\ndate: Mon, 27 Jul 2026 10:27:15 GMT\r\naccess-control-allow-methods: GET, HEAD, POST, OPTIONS\r\ncache-control: public, max-age=3600, s-maxage=3600\r\nserver: tv\r\nvia: 443, 1.1 b418063dcc03162b1d63103f1a01b6a0.cloudfront.net (CloudFront)\r\naccess-control-allow-origin: https://s.tradingview.com\r\ncross-origin-resource-policy: same-site\r\naccess-control-max-age: 86400\r\nvary: Origin\r\nx-cache: Miss from cloudfront\r\nx-amz-cf-pop: ARN53-P4\r\nalt-svc: h3=\":443\"; ma=86400\r\nx-amz-cf-id: j0indztvNiU_uMUMX2tu55OAQYwa0jKy1ZYp6Vr8bv1tJXLNgBmAMw==\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"204","status_text":"","fingerprints":[{"name":"Amazon Web Services","description":"Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.","website":"https://aws.amazon.com/","common_platform_enumeration":"","icon":"Amazon Web Services.svg","categories":["PaaS"]},{"name":"Amazon CloudFront","description":"Amazon CloudFront is a fast content delivery network (CDN) service that securely delivers data, videos, applications, and APIs to customers globally with low latency, high transfer speeds.","website":"https://aws.amazon.com/cloudfront/","common_platform_enumeration":"","icon":"Amazon Cloudfront.svg","categories":["CDN"]}],"data":{"size":0,"size_decoded":566,"mime_type":"text/plain","magic":"","md5":"d41d8cd98f00b204e9800998ecf8427e","sha1":"da39a3ee5e6b4b0d3255bfef95601890afd80709","sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha512":"cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e","ssdeep":"","tlshash":"","first_seen":"0001-01-01T00:00:00Z","last_seen":"2026-07-27T13:01:10.036638Z","times_seen":17563461,"resource_available":true,"data":""}},"time_used":528,"timings":{"blocked":-1,"dns":2,"connect":8,"send":0,"wait":501,"receive":0,"ssl":17},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/67853.80fea23931bf469b1187.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.867Z","timestamp":1785148034867,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/67853.80fea23931bf469b1187.js HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a632877-10b16\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Fri, 24 Jul 2026 08:55:19 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/24/2026 10:32:20\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 20c9c7526c5dc579660926471f90c62c\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":68374,"size_decoded":25817,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, Unicode text, UTF-8 text, with very long lines (3072)","md5":"f8344990775b2c2a5171bc2ad8f52ac0","sha1":"7c46b140f220b741fbc8a8a661683e6192bf10c8","sha256":"961c82f2020f89f91bf79ec000e28242371935bfd48a7cd4820592ef7de43835","sha512":"2a13778509f4ad27ffb8c369876aeccbd0b8a01505fbb11d048583b9a70caa3193b54fe64180782c33824fb04ba2fda710baadc3aed631f1bea1368b78e853b7","ssdeep":"1536:RB/H2wHd36c/qmPGro3meMIjhcBvvF6f8bqL9GzjTWOnhAlfDT:RBP2K36cS9roWMlvf9L0TWOnh0T","tlshash":"3f633c94b540b76963f301ebd0aa4045e3343a45b80e89a1f16ddcee39aec1c6275f7e","first_seen":"2026-07-27T03:26:08.714164Z","last_seen":"2026-07-27T10:53:39.236509Z","times_seen":8,"resource_available":true,"data":"KHNlbGYud2VicGFja0NodW5rdHJhZGluZ3ZpZXc9c2VsZi53ZWJwYWNrQ2h1bmt0cmFkaW5ndmlld3x8W10pLnB1c2goW1s2Nzg1M10sezM1Mzc0NyhlKXtlLmV4cG9ydHM9e2NvbnRhaW5lcjoiY29udGFpbmVyLUQ2X25oT01GIix0aXRsZToidGl0bGUtRDZfbmhPTUYiLHRpdGxlX2xhcmdlOiJ0aXRsZV9sYXJnZS1ENl9uaE9NRiIsaWNvbjoiaWNvbi1ENl9uaE9NRiIsdGV4dDoidGV4dC1ENl9uaE9NRiIsdGV4dF9ub3JtYWw6InRleHRfbm9ybWFsLUQ2X25oT01GIixhY3Rpb246ImFjdGlvbi1ENl9uaE9NRiJ9fSwxMjk2NjEoZSl7ZS5leHBvcnRzPXtzcXVhcmVUYWJCdXR0b246InNxdWFyZVRhYkJ1dHRvbi1VN0dZdThBbSIseGxhcmdlOiJ4bGFyZ2UtVTdHWXU4QW0iLHNlbGVjdGVkOiJzZWxlY3RlZC1VN0dZdThBbSIsbWVkaXVtOiJtZWRpdW0tVTdHWXU4QW0iLHNtYWxsOiJzbWFsbC1VN0dZdThBbSIseHNtYWxsOiJ4c21hbGwtVTdHWXU4QW0iLG1lZGl1bVdpdGhTbWFsbEZvbnQ6Im1lZGl1bVdpdGhTbWFsbEZvbnQtVTdHWXU4QW0ifX0sMzQ4ODQ5KGUpe2UuZXhwb3J0cz17c3F1YXJlVGFiQnV0dG9uOiJzcXVhcmVUYWJCdXR0b24tUktLVFJoWjYiLHNlbGVjdGVkOiJzZWxlY3RlZC1SS0tUUmhaNiIsZGlzYWJsZUFjdGl2ZVN0YXRlU3R5bGVzOiJkaXNhYmxlQWN0aXZlU3RhdGVTdHlsZXMtUktLVFJoWjYiLGRpc2FibGVkOiJkaXNhYmxlZC1SS0tUUmhaNiIsZGlzYWJsZUZvY3VzT3V0bGluZToiZGlzYWJsZUZvY3VzT3V0bGluZS1SS0tUUmhaNiIseGxhcmdlOiJ4bGFyZ2UtUktLVFJoWjYiLHRhYkhpZGRlbkNvbnRlbnQ6InRhYkhpZGRlbkNvbnRlbnQtUktLVFJoWjYiLG1lZGl1bToibWVkaXVtLVJLS1RSaFo2IixzbWFsbDoic21hbGwtUktLVFJoWjYiLHhzbWFsbDoieHNtYWxsLVJLS1RSaFo2IixtZWRpdW1XaXRoU21hbGxGb250OiJtZWRpdW1XaXRoU21hbGxGb250LVJLS1RSaFo2IixmYWtlOiJmYWtlLVJLS1RSaFo2Iix2ZXJ0aWNhbFRhYnNXcmFwcGVyOiJ2ZXJ0aWNhbFRhYnNXcmFwcGVyLVJLS1RSaFo2Iix2ZXJ0aWNhbEJ1dHRvbjoidmVydGljYWxCdXR0b24tUktLVFJoWjYiLGNvbnRlbnQ6ImNvbnRlbnQtUktLVFJoWjYiLHRhYkNvbnRlbnQ6InRhYkNvbnRlbnQtUktLVFJoWjYiLGVuZFNsb3RJbkRpc2Nsb3N1cmU6ImVuZFNsb3RJbkRpc2Nsb3N1cmUtUktLVFJoWjYifX0sNzM4ODI2KGUpe2UuZXhwb3J0cz17YXJyb3dJY29uOiJhcnJvd0ljb24tWVRqenV5OHkiLGRyb3BwZWQ6ImRyb3BwZWQtWVRqenV5OHkifX0sMzM2ODUxKGUpe2UuZXhwb3J0cz17ImNzcy12YWx1ZS1zcXVhcmUtdGFicy14c21hbGwtZ2FwIjoiNHB4IiwiY3NzLXZhbHVlLXNxdWFyZS10YWJzLXNtYWxsLWdhcCI6IjhweCIsImNzcy12YWx1ZS1zcXVhcmUtdGFicy1tZWRpdW0tZ2FwIjoiMTJweCIsImNzcy12YWx1ZS1zcXVhcmUtdGFicy14bGFyZ2UtZ2FwIjoiMTJweCJ9fSwxMzUyODcoZSl7ZS5leHBvcnRzPXtzY3JvbGxXcmFwOiJzY3JvbGxXcmFwLUZhVjBiSzdlIixvdmVyZmxvd1Njcm9sbDoib3ZlcmZsb3dTY3JvbGwtRmFWMGJLN2UiLHNxdWFyZVRhYnM6InNxdWFyZVRhYnMtRmFWMGJLN2UiLG92ZXJmbG93V3JhcDoib3ZlcmZsb3dXcmFwLUZhVjBiSzdlIixjb250ZW50OiJjb250ZW50LUZhVjBiSzdlIix2ZXJ0aWNhbENvbnRlbnQ6InZlcnRpY2FsQ29udGVudC1GYVYwYks3ZSIsdmVydGljYWw6InZlcnRpY2FsLUZhVjBiSzdlIix4c21hbGw6InhzbWFsbC1GYVYwYks3ZSIsc3F1YXJlVGFiQnV0dG9uOiJzcXVhcmVUYWJCdXR0b24tRmFWMGJLN2UiLHN0YXJ0U2xvdFdyYXA6InN0YXJ0U2xvdFdyYXAtRmFWMGJLN2UiLGVuZFNsb3RXcmFwOiJlbmRTbG90V3JhcC1GYVYwYks3ZSIsZW5kVXBwZXJTbG90OiJlbmRVcHBlclNsb3QtRmFWMGJLN2UiLHN0YXJ0U2xvdFdyYXBJY29uT25seToic3RhcnRTbG90V3JhcEljb25Pbmx5LUZhVjBiSzdlIixzbWFsbDoic21hbGwtRmFWMGJLN2UiLG1lZGl1bToibWVkaXVtLUZhVjBiSzdlIixtZWRpdW1XaXRoU21hbGxGb250OiJtZWRpdW1XaXRoU21hbGxGb250LUZhVjBiSzdlIix4bGFyZ2U6InhsYXJnZS1GYVYwYks3ZSIsc3F1YXJlVGFiQ291bnRlcjoic3F1YXJlVGFiQ291bnRlci1GYVYwYks3ZSJ9fSw0NzMxNTkoZSl7ZS5leHBvcnRzPXtidXR0b246ImJ1dHRvbi1tTEVoQ3JWdyIsaWNvbk9ubHk6Imljb25Pbmx5LW1MRWhDclZ3Iix3aXRoU3RhcnRTbG90OiJ3aXRoU3RhcnRTbG90LW1MRWhDclZ3Iix3aXRoRW5kU2xvdDoid2l0aEVuZFNsb3QtbUxFaENyVnciLHN0YXJ0U2xvdFdyYXA6InN0YXJ0U2xvdFdyYXAtbUxFaENyVnciLGVuZFNsb3RXcmFwOiJlbmRTbG90V3JhcC1tTEVoQ3JWdyIseHNtYWxsOiJ4c21hbGwtbUxFaENyVnciLHNtYWxsOiJzbWFsbC1tTEVoQ3JWdyIsbWVkaXVtOiJtZWRpdW0tbUxFaENyVnciLGxhcmdlOiJsYXJnZS1tTEVoQ3JWdyIseGxhcmdlOiJ4bGFyZ2UtbUxFaENyVnciLGNvbnRlbnQ6ImNvbnRlbnQtbUxFaENyVnciLGxpbms6ImxpbmstbUxFaENyVnciLGJsdWU6ImJsdWUtbUxFaENyVnciLHByaW1hcnk6InByaW1hcnktbUxFaENyVnciLHNlY29uZGFyeToic2Vjb25kYXJ5LW1MRWhDclZ3IixncmF5OiJncmF5LW1MRWhDclZ3IixncmVlbjoiZ3JlZW4tbUxFaENyVnciLHJlZDoicmVkLW1MRWhDclZ3IixibGFjazoiYmxhY2stbUxFaENyVnciLHNsb3Q6InNsb3QtbUxFaENyVnciLHN0cmV0Y2g6InN0cmV0Y2gtbUxFaENyVnciLGdyb3VwZWQ6Imdyb3VwZWQtbUxFaENyVnciLGFkanVzdFBvc2l0aW9uOiJhZGp1c3RQb3NpdGlvbi1tTEVoQ3JWdyIsZmlyc3RSb3c6ImZpcnN0Um93LW1MRWhDclZ3IixmaXJzdENvbDoiZmlyc3RDb2wtbUxFaENyVnciLCJuby1jb3JuZXItdG9wLWxlZnQiOiJuby1jb3JuZXItdG9wLWxlZnQtbUxFaENyVnciLCJuby1jb3JuZXItdG9wLXJpZ2h0Ijoibm8tY29ybmVyLXRvcC1yaWdodC1tTEVoQ3JWdyIsIm5vLWNvcm5lci1ib3R0b20tcmlnaHQiOiJuby1jb3JuZXItYm90dG9tLXJpZ2h0LW1MRWhDclZ3IiwKIm5vLWNvcm5lci1ib3R0b20tbGVmdCI6Im5vLWNvcm5lci1ib3R0b20tbGVmdC1tTEVoQ3JWdyIsdGV4dFdyYXA6InRleHRXcmFwLW1MRWhDclZ3IixtdWx0aWxpbmVDb250ZW50OiJtdWx0aWxpbmVDb250ZW50LW1MRWhDclZ3IixwcmltYXJ5VGV4dDoicHJpbWFyeVRleHQtbUxFaENyVnciLHNlY29uZGFyeVRleHQ6InNlY29uZGFyeVRleHQtbUxFaENyVncifX0sMTI4MTI4KGUpe2UuZXhwb3J0cz17bGlnaHR3ZWlnaHRDaGFydFRvb2x0aXA6ImxpZ2h0d2VpZ2h0Q2hhcnRUb29sdGlwLXpTbno1Z3c2In19LDY5ODAxMChlKXtlLmV4cG9ydHM9e3Rvb2x0aXA6InRvb2x0aXAtSmxZZ2RfMWciLGxhYmVsOiJsYWJlbC1KbFlnZF8xZyIsY3VycmVuY3k6ImN1cnJlbmN5LUpsWWdkXzFnIixkaXZpZGVyOiJkaXZpZGVyLUpsWWdkXzFnIixncm91cDoiZ3JvdXAtSmxZZ2RfMWciLGdyb3VwUm93OiJncm91cFJvdy1KbFlnZF8xZyIsZ3JvdXBSb3dUaXRsZUNvbnRhaW5lcjoiZ3JvdXBSb3dUaXRsZUNvbnRhaW5lci1KbFlnZF8xZyIsZ3JvdXBSb3dEb3Q6Imdyb3VwUm93RG90LUpsWWdkXzFnIixncm91cFJvd0xhYmVsOiJncm91cFJvd0xhYmVsLUpsWWdkXzFnIixncm91cFJvd1ByaWNlOiJncm91cFJvd1ByaWNlLUpsWWdkXzFnIix1bmRlcmx5aW5nUHJpY2VWYWx1ZToidW5kZXJseWluZ1ByaWNlVmFsdWUtSmxZZ2RfMWciLHByb2JhYmlsaXRpZXNDb250YWluZXI6InByb2JhYmlsaXRpZXNDb250YWluZXItSmxZZ2RfMWciLHByb2JhYmlsaXRpZXNBcnJvd3NDb250YWluZXI6InByb2JhYmlsaXRpZXNBcnJvd3NDb250YWluZXItSmxZZ2RfMWciLHByb2JhYmlsaXR5OiJwcm9iYWJpbGl0eS1KbFlnZF8xZyIscHJvYmFiaWxpdGllc0RvdDoicHJvYmFiaWxpdGllc0RvdC1KbFlnZF8xZyIsYXJyb3dJY29uOiJhcnJvd0ljb24tSmxZZ2RfMWciLGFycm93SWNvblJpZ2h0OiJhcnJvd0ljb25SaWdodC1KbFlnZF8xZyJ9fSwxOTM4NDcoZSx0LHIpeyJ1c2Ugc3RyaWN0IjtyLmQodCx7UG9wdXBNZW51RGlzY2xvc3VyZVZpZXc6KCk9PnV9KTt2YXIgbz1yKDc3OTQ3NCksbj1yKDgwOTQzNiksYT1yKDgzNTk2NCksaT1yKDEzODYzOCk7Y29uc3QgbD17eDowLHk6MH07ZnVuY3Rpb24gcyhlLHQscil7cmV0dXJuKDAsby51c2VDYWxsYmFjaykoKCgpPT5mdW5jdGlvbihlLHQse3g6cj1sLngseTpvPWwueX09bCl7Y29uc3Qgbj0oMCxpLmVuc3VyZU5vdE51bGwpKGUpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLGE9e3g6bi5sZWZ0K3IseTpuLnRvcCtuLmhlaWdodCtvLGluZGVudEZyb21XaW5kb3c6e3RvcDo0LGJvdHRvbTo0LGxlZnQ6NCxyaWdodDo0fX07cmV0dXJuIHQmJihhLm92ZXJyaWRlV2lkdGg9bi53aWR0aCksYX0oZS5jdXJyZW50LHQscikpLFtlLHRdKX1jb25zdCBjPXBhcnNlSW50KG5bInNpemUtaGVhZGVyLWhlaWdodCJdKTtmdW5jdGlvbiB1KGUpe2NvbnN0e2J1dHRvbjp0LHBvcHVwQ2hpbGRyZW46cixidXR0b25SZWY6bixsaXN0Ym94SWQ6aSxsaXN0Ym94Q2xhc3NOYW1lOmwsbGlzdGJveFRhYkluZGV4OnUsbWF0Y2hCdXR0b25BbmRMaXN0Ym94V2lkdGhzOmQsaXNPcGVuZWQ6cCxzY3JvbGxXcmFwUmVmZXJlbmNlOm0sbGlzdGJveFJlZmVyZW5jZTpoLG9uQ2xvc2U6Uyxvbk9wZW46RSxvbkxpc3Rib3hGb2N1czpfLG9uTGlzdGJveEJsdXI6Zyxvbkxpc3Rib3hLZXlEb3duOmYsbGlzdGJveEFyaWE6QyxyZXBvc2l0aW9uT25TY3JvbGw6VD0hMCxjbG9zZU9uSGVhZGVyT3ZlcmxhcDp5PSExLHBvcHVwUG9zaXRpb25Db3JyZWN0aW9uOlI9e3g6MCx5OjB9LHBvcHVwUG9zaXRpb246YixkYXRhUWFJZDpPfT1lLEw9cyhuLGQsUiksdj15P2M6MDtyZXR1cm4gby5jcmVhdGVFbGVtZW50KG8uRnJhZ21lbnQsbnVsbCx0LG8uY3JlYXRlRWxlbWVudChhLlBvcHVwTWVudSx7Li4uQyxkYXRhUWFJZDpPLGlkOmksY2xhc3NOYW1lOmwsdGFiSW5kZXg6dSxpc09wZW5lZDpwLHBvc2l0aW9uOmJ8fEwscmVwb3NpdGlvbk9uU2Nyb2xsOlQsb25DbG9zZTpTLG9uT3BlbjpFLGRvTm90Q2xvc2VPbjpuLmN1cnJlbnQscmVmZXJlbmNlOmgsc2Nyb2xsV3JhcFJlZmVyZW5jZTptLG9uRm9jdXM6XyxvbkJsdXI6ZyxvbktleURvd246ZixjbG9zZU9uU2Nyb2xsT3V0c2lkZU9mZnNldDp2fSxyKSl9fSw3OTczNTcoZSx0LHIpeyJ1c2Ugc3RyaWN0IjtyLmQodCx7RW1wdHlTdGF0ZUJsb2NrVGl0bGU6KCk9Pmx9KTt2YXIgbz1yKDkxNDQ4Nyksbj1yLm4obyksYT1yKDc3OTQ3NCksaT1yKDM1Mzc0Nyk7ZnVuY3Rpb24gbChlKXtjb25zdHt0aXRsZTp0LHRhZ05hbWU6cix0aXRsZVNpemU6byxjbGFzc05hbWU6bH09ZSxzPXJ8fCJzdHJvbmciO3JldHVybiBhLmNyZWF0ZUVsZW1lbnQocyx7Y2xhc3NOYW1lOm4oKShpLnRpdGxlLGlbYHRpdGxlXyR7b31gXSxsKX0sdCl9fSw3NjU5MTQoZSx0LHIpeyJ1c2Ugc3RyaWN0IjtyLmQodCx7RW1wdHlTdGF0ZUJsb2NrOigpPT5zfSk7dmFyIG89cig3Nzk0NzQpLG49cig5MTQ0ODcpLGE9ci5uKG4pLGk9cig3OTczNTcpLGw9cigzNTM3NDcpO2NvbnN0IHM9KDAsby5mb3J3YXJkUmVmKSgoZnVuY3Rpb24oZSx0KXtyZXR1cm4gby5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6YSgpKGwuY29udGFpbmVyLGUuY2xhc3NOYW1lKSxyZWY6dCwiZGF0YS1xYS1pZCI6ZS5kYXRhUWFJZH0sby5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6YSgpKGwuaWNvbixlLmljb25DbGFzcyl9LGUuaWNvbiksZS50aXRsZSYmby5jcmVhdGVFbGVtZW50KGkuRW1wdHlTdGF0ZUJsb2NrVGl0bGUse3RpdGxlOmUudGl0bGUsdGl0bGVTaXplOmUudGl0bGVTaXplLHRhZ05hbWU6ZS50aXRsZVRhZ05hbWUsY2xhc3NOYW1lOmUudGl0bGVDbGFzc30pLGUudGV4dCYmby5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6YSgpKGwudGV4dCwibm9ybWFsIj09PWUudGV4dFNpemUmJmwudGV4dF9ub3JtYWwsZS50ZXh0Q2xhc3MpfSxlLnRleHQpLGUuYWN0aW9uJiZvLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTphKCkobC5hY3Rpb24sZS5hY3Rpb25DbGFzcyl9LGUuYWN0aW9uKSl9KSl9LAo2NTk4NzgoZSx0LHIpeyJ1c2Ugc3RyaWN0IjtyLmQodCx7bWFrZU92ZXJsYXBhYmxlOigpPT5hfSk7dmFyIG89cig3Nzk0NzQpLG49cig1ODU0OCk7ZnVuY3Rpb24gYShlLHQpe3JldHVybiBjbGFzcyBleHRlbmRzIG8uUHVyZUNvbXBvbmVudHtyZW5kZXIoKXtjb25zdHtpc09wZW5lZDpyLHJvb3Q6YX09dGhpcy5wcm9wcztpZighcilyZXR1cm4gbnVsbDtjb25zdCBpPW8uY3JlYXRlRWxlbWVudChlLHsuLi50aGlzLnByb3BzLHJlZjp0aGlzLnByb3BzLmNvbXBvbmVudFJlZix6SW5kZXg6MTUwfSk7cmV0dXJuInBhcmVudCI9PT1hP2k6by5jcmVhdGVFbGVtZW50KG4uUG9ydGFsLHtzaG91bGRUcmFwRm9jdXM6dH0saSl9fX19LDg1NTM5MShlLHQscil7InVzZSBzdHJpY3QiO3IuZCh0LHtTcXVhcmVUYWJzU2l6ZUNvbnRleHQ6KCk9Pm99KTtjb25zdCBvPSgwLHIoNzc5NDc0KS5jcmVhdGVDb250ZXh0KSgic21hbGwiKX0sOTg2ODg4KGUsdCxyKXsidXNlIHN0cmljdCI7ci5kKHQse1NxdWFyZVRhYkJ1dHRvbjooKT0+bX0pO3ZhciBvPXIoNzc5NDc0KSxuPXIoOTE0NDg3KSxhPXIubihuKSxpPXIoMzA5OTIwKSxsPXIoODA5NDM2KSxzPXIoNzcwMTQzKSxjPXIoNzE3OTMyKSx1PXIoODU1MzkxKSxkPXIoNjY5MjY1KSxwPXIoMzQ4ODQ5KTtjb25zdCBtPSgwLG8uZm9yd2FyZFJlZikoKChlLHQpPT57Y29uc3Qgcj1vLnVzZUNvbnRleHQodS5TcXVhcmVUYWJzU2l6ZUNvbnRleHQpLG49KDAsby51c2VDb250ZXh0KShpLkN1c3RvbUJlaGF2aW91ckNvbnRleHQpLHtpZDptLGFjdGl2ZTpoLGZha2U6Uyx0aGVtZTpFPXAsZW5hYmxlQWN0aXZlU3RhdGVTdHlsZXM6Xz1uLmVuYWJsZUFjdGl2ZVN0YXRlU3R5bGVzLGhpZGVGb2N1c091dGxpbmU6Zz0hMSxlbmRTbG90OmYsc3RhcnRTbG90OkMsY2hpbGRyZW46VCxpc1ZlcnRpY2FsOnksZGlzYWJsZWQ6UixoaWdobGlnaHRlZDpiLGVuZFVwcGVyU2xvdDpPLGljb25Pbmx5T25BZGFwdGl2ZTpMLG92ZXJmbG93QWRhcHRpdmU6dj0ibWVkaWEtbWYtcGhvbmUtbGFuZHNjYXBlIiwuLi5BfT1lLEk9KDAscy5nZXRUZXh0Rm9yVG9vbHRpcCkoVCksTj0hKDAsYy51c2VTYWZlTWF0Y2hNZWRpYSkobFt2XSkmJkwseD1lPT5vLmNyZWF0ZUVsZW1lbnQoZC5TcXVhcmVUYWJDb250ZW50LHsiYXJpYS1oaWRkZW4iOmUsZW5kU2xvdDpmLHN0YXJ0U2xvdDpDLGVuZFVwcGVyU2xvdDpPLGNsYXNzTmFtZTplP3AudGFiSGlkZGVuQ29udGVudDpwLnRhYkNvbnRlbnQsaXNWZXJ0aWNhbDp5LGRpc2FibGVkOlIsc2l6ZTpyLGljb25Pbmx5Ok59LFQpO3JldHVybiBvLmNyZWF0ZUVsZW1lbnQoImJ1dHRvbiIsey4uLkEsaWQ6bSxyZWY6dCxjbGFzc05hbWU6YSgpKCJhcHBseS1jb21tb24tdG9vbHRpcCIsImFwcGx5LW92ZXJmbG93LXRvb2x0aXAiLCJhcHBseS1vdmVyZmxvdy10b29sdGlwLS1jaGVjay1jaGlsZHJlbi1yZWN1cnNpdmVseSIsImFwcGx5LW92ZXJmbG93LXRvb2x0aXAtLWFsbG93LXRleHQiLEUuc3F1YXJlVGFiQnV0dG9uLGgmJkUuc2VsZWN0ZWQsRVtyXSxTJiZFLmZha2UsIV8mJkUuZGlzYWJsZUFjdGl2ZVN0YXRlU3R5bGVzLGcmJkUuZGlzYWJsZUZvY3VzT3V0bGluZSx5JiZFLnZlcnRpY2FsQnV0dG9uLFImJkUuZGlzYWJsZWQpLCJkYXRhLW92ZXJmbG93LXRvb2x0aXAtdGV4dCI6SSwiZGF0YS10b29sdGlwLXNob3ctb24tZm9jdXMiOiJ0cnVlIix0aXRsZTpOP0k6dm9pZCAwfSx4KCExKSx4KCEwKSl9KSk7bS5kaXNwbGF5TmFtZT0iU3F1YXJlVGFiQnV0dG9uIn0sMzUzOTcxKGUsdCxyKXsidXNlIHN0cmljdCI7ci5kKHQse1NxdWFyZVRhYjooKT0+aX0pO3ZhciBvPXIoNzc5NDc0KSxuPXIoOTY0NTk0KSxhPXIoOTg2ODg4KTtjb25zdCBpPSgwLG8uZm9yd2FyZFJlZikoKChlLHQpPT57Y29uc3R7aXRlbTpyLGhhbmRsZUl0ZW1SZWY6aSxvbkNsaWNrOmwsLi4uc309ZSxjPSgwLG8udXNlQ2FsbGJhY2spKCgoKT0+e2wmJmwocil9KSxbbCxyXSksdT0oMCxvLnVzZUNhbGxiYWNrKSgoZT0+e2kmJmkocixlKSwoMCxuLmlzb21vcnBoaWNSZWYpKHQpKGUpfSksW3IsaSx0XSk7cmV0dXJuIG8uY3JlYXRlRWxlbWVudChhLlNxdWFyZVRhYkJ1dHRvbix7Li4ucyxpZDpyLmlkLCJkYXRhLXFhLWlkIjpyLmlkLG9uQ2xpY2s6YyxyZWY6dSxlbmRTbG90OnIuZW5kU2xvdCxzdGFydFNsb3Q6ci5zdGFydFNsb3QsZW5kVXBwZXJTbG90OnIuZW5kVXBwZXJTbG90LCJhcmlhLWxhYmVsIjoicmFkaW8iPT09cy5yb2xlP3IubGFiZWw6dm9pZCAwfSxyLmxhYmVsKX0pKTtpLmRpc3BsYXlOYW1lPSJTcXVhcmVUYWIifSw2NjkyNjUoZSx0LHIpeyJ1c2Ugc3RyaWN0IjtyLmQodCx7U3F1YXJlVGFiQ29udGVudDooKT0+cyxnZXRTcXVhcmVUYWJzU2Nyb2xsV3JhcENsYXNzTmFtZXM6KCk9PmN9KTt2YXIgbz1yKDc3OTQ3NCksbj1yKDkxNDQ4NyksYT1yLm4obiksaT1yKDM5NjQzMSksbD1yKDEzNTI4Nyk7ZnVuY3Rpb24gcyh7c3RhcnRTbG90OmUsZW5kU2xvdDp0LGNoaWxkcmVuOnIsY2xhc3NOYW1lOm4sImFyaWEtaGlkZGVuIjpzLGlzVmVydGljYWw6YyxlbmRVcHBlclNsb3Q6dSxpY29uT25seTpkLHNpemU6cH0pe2NvbnN0IG09ZSYmby5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOmEoKShsLnN0YXJ0U2xvdFdyYXAsZCYmbC5zdGFydFNsb3RXcmFwSWNvbk9ubHkpfSxlKSxoPXImJiEoYyYmZCkmJm8uY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZTphKCkobC5jb250ZW50LGMmJmwudmVydGljYWxDb250ZW50KX0sciksUz0oMCxvLnVzZU1lbW8pKCgoKT0+e2lmKGMmJmQmJm8uaXNWYWxpZEVsZW1lbnQodCkpe2NvbnN0IGU9dC5wcm9wcz8uY291bnQ7cmV0dXJuIGU/by5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOmwuZW5kVXBwZXJTbG90fSwoMCxpLmdldFRhYkNvdW50ZXIpKHtjb3VudDplLHNpemU6KDAsaS5jb3VudGVyU2l6ZUZyb21TcXVhcmVUYWJzU2l6ZSkocCl9KSk6bnVsbH1yZXR1cm4gby5jcmVhdGVFbGVtZW50KG8uRnJhZ21lbnQsbnVsbCx0JiZvLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6bC5lbmRTbG90V3JhcAp9LHQpLHUmJm8uY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZTpsLmVuZFVwcGVyU2xvdH0sdSkpfSksW2MsZCx0LHUscF0pO3JldHVybiBvLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHsiYXJpYS1oaWRkZW4iOnMsY2xhc3NOYW1lOm59LG0saCxTKX1mdW5jdGlvbiBjKGUpe2NvbnN0e292ZXJmbG93QmVoYXZpb3VyOnR9PWU7cmV0dXJuIGEoKShsLnNjcm9sbFdyYXAsInNjcm9sbCI9PT10JiZsLm92ZXJmbG93U2Nyb2xsLCJ3cmFwIj09PXQmJmwub3ZlcmZsb3dXcmFwKX19LDM3MzU3NChlLHQscil7InVzZSBzdHJpY3QiO3IuZCh0LHtTcXVhcmVUYWJzOigpPT52fSk7dmFyIG89cig3Nzk0NzQpLG49cig5MTQ0ODcpLGE9ci5uKG4pLGk9cig3ODMyNTQpLGw9cigyMTIxMjUpLHM9cig4NDY4NTgpLGM9cigzNTM5NzEpLHU9cigzMTk2OSksZD1yKDM4NzIzMSkscD1yKDE5Mzg0NyksbT1yKDE1MzczNCksaD1yKDk4Njg4OCksUz1yKDI3MzMxMCksRT1yKDkzNTEpLF89cig3Mzg4MjYpO2Z1bmN0aW9uIGcoZSl7Y29uc3R7aXNEcm9wcGVkOnQ9ITF9PWU7cmV0dXJuIG8uY3JlYXRlRWxlbWVudChTLkljb24se2ljb246RSxjbGFzc05hbWU6YSgpKF8uYXJyb3dJY29uLHQmJl8uZHJvcHBlZCl9KX12YXIgZj1yKDEyOTY2MSk7ZnVuY3Rpb24gQyhlKXtjb25zdHtkaXNhYmxlZDp0LGlzT3BlbmVkOnIsaGlkZUZvY3VzT3V0bGluZTpuLGZha2U6YSxpdGVtczppLGJ1dHRvbkNvbnRlbnQ6bCxidXR0b25SZWY6cyxidXR0b25UaGVtZTpjLGlzSGlnaGxpZ2h0ZWQ6UyxvbkJ1dHRvbkNsaWNrOkUsb25JdGVtQ2xpY2s6XyxvbkNsb3NlOkN9PWUsVD0oMCxvLnVzZVJlZikobnVsbCkseT0oMCx1LnVzZU1lcmdlZFJlZnMpKFtzLFRdKTtyZXR1cm4gby5jcmVhdGVFbGVtZW50KHAuUG9wdXBNZW51RGlzY2xvc3VyZVZpZXcse2J1dHRvblJlZjpULGxpc3Rib3hUYWJJbmRleDotMSxpc09wZW5lZDpyLG9uQ2xvc2U6QyxsaXN0Ym94QXJpYTp7ImFyaWEtaGlkZGVuIjohMH0sYnV0dG9uOm8uY3JlYXRlRWxlbWVudChoLlNxdWFyZVRhYkJ1dHRvbix7ImFyaWEtaGlkZGVuIjohMCxkaXNhYmxlZDp0LGFjdGl2ZTpyLG9uQ2xpY2s6RSxyZWY6eSx0YWJJbmRleDotMSx0aGVtZTooMCxkLm1lcmdlVGhlbWVzKShjLGYpLGhpZGVGb2N1c091dGxpbmU6bixmYWtlOmF9LGwsby5jcmVhdGVFbGVtZW50KGcse2lzRHJvcHBlZDpyfSkpLHBvcHVwQ2hpbGRyZW46aS5tYXAoKGU9Pm8uY3JlYXRlRWxlbWVudChtLlBvcHVwTWVudUl0ZW0se2tleTplLmlkLG9uQ2xpY2s6XyxvbkNsaWNrQXJnOmUsaXNBY3RpdmU6UyhlKSxsYWJlbDplLmxhYmVsLGlzRGlzYWJsZWQ6ZS5kaXNhYmxlZHx8dCxzdGFydFNsb3Q6ZS5zdGFydFNsb3QsdG9vbGJveDplLmVuZFVwcGVyU2xvdD9vLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6Yy5lbmRTbG90SW5EaXNjbG9zdXJlfSxlLmVuZFVwcGVyU2xvdCk6ZS5lbmRTbG90LGRvbnRDbG9zZVBvcHVwOiEwfSkpKX0pfXZhciBUPXIoODU1MzkxKSx5PXIoNjkwMDk3KSxSPXIoMTE1MjkzKSxiPXIoNjY5MjY1KSxPPXIoMzM2ODUxKTtmdW5jdGlvbiBMKGUpe2NvbnN0e2Rpc2FibGVkOnQsbW9yZUJ1dHRvbkNvbnRlbnQ6bj0oKT0+aS50KG51bGwsdm9pZCAwLHIoMzk0OTQ3KSksc2l6ZTp1PSJzbWFsbCIsdGhlbWU6ZD15LmRlZmF1bHRUaGVtZSxjbGFzc05hbWU6cCxzdHlsZTptLCJkYXRhLW5hbWUiOmgsImFyaWEtY29udHJvbHMiOlMsaXNSYWRpb0dyb3VwOkV9PWUsXz1wYXJzZUludChPW2Bjc3MtdmFsdWUtc3F1YXJlLXRhYnMtJHt1fS1nYXBgXSkse2VuYWJsZUFjdGl2ZVN0YXRlU3R5bGVzOmcsbW9yZUJ1dHRvblJlZjpmLHNldEl0ZW1SZWY6TCxnZXRCaW5kaW5nczp2LGhhbmRsZU1vcmVCdXR0b25DbGljazpBLGhhbmRsZUNvbGxhcHNlZEl0ZW1DbGljazpJLHNjcm9sbFdyYXBCaW5kaW5nOk4sb3ZlcmZsb3dCZWhhdmlvdXI6eCx0YWJsaXN0QmluZGluZzp3LHZpc2libGVUYWJzOlAsaGlkZGVuVGFiczpELGhhbmRsZUFjdGl2YXRlOk0saXNNb2JpbGVUb3VjaDpGLGdldEl0ZW1JZDprLGlzRGlzY2xvc3VyZU9wZW5lZDpWLGlzSGlnaGxpZ2h0ZWQ6VSxjbG9zZURpc2Nsb3N1cmU6Qn09KDAscy51c2VUYWJzTWFpbkhhbmRsZXJzKShsLlRhYk5hbWVzLlNxdWFyZUJ1dHRvblRhYnMsZSx7aXNSdGw6Ui5pc1J0bCxzY3JvbGxJbnRvVmlld09wdGlvbnM6e2FkZGl0aW9uYWxTY3JvbGw6X30saXNSYWRpb0dyb3VwOkUsZ2FwOl99KTtyZXR1cm4gby5jcmVhdGVFbGVtZW50KFQuU3F1YXJlVGFic1NpemVDb250ZXh0LlByb3ZpZGVyLHt2YWx1ZTp1fSxvLmNyZWF0ZUVsZW1lbnQoImRpdiIsey4uLk4sY2xhc3NOYW1lOmEoKSgoMCxiLmdldFNxdWFyZVRhYnNTY3JvbGxXcmFwQ2xhc3NOYW1lcykoe292ZXJmbG93QmVoYXZpb3VyOnh9KSxwKSxzdHlsZTp7Li4ubSwiLS11aS1saWItcHJpdmF0ZS1zcXVhcmVUYWJzLWdhcCI6YCR7X31weGB9LCJkYXRhLW5hbWUiOmh9LG8uY3JlYXRlRWxlbWVudCgiZGl2Iix7Li4udyxjbGFzc05hbWU6YSgpKGQuc3F1YXJlVGFicyxkW3VdKX0sUC5tYXAoKGU9Pm8uY3JlYXRlRWxlbWVudChjLlNxdWFyZVRhYix7Li4udihlKT8/e30sa2V5OmUuaWQsaXRlbTplLG9uQ2xpY2s6KCk9Pk0oZSksdGhlbWU6ZCxlbmFibGVBY3RpdmVTdGF0ZVN0eWxlczpnLGhpZGVGb2N1c091dGxpbmU6RixyZWY6TChrKGUpKSwuLi5lLmRhdGFJZCYmeyJkYXRhLWlkIjplLmRhdGFJZH0sImFyaWEtY29udHJvbHMiOlN9KSkpLEQubWFwKChlPT5vLmNyZWF0ZUVsZW1lbnQoYy5TcXVhcmVUYWIsey4uLnYoZSk/P3t9LGtleTplLmlkLGl0ZW06ZSx0aGVtZTpkLGVuYWJsZUFjdGl2ZVN0YXRlU3R5bGVzOmcsZmFrZTohMCwiYXJpYS1jb250cm9scyI6U30pKSksby5jcmVhdGVFbGVtZW50KEMse2Rpc2FibGVkOnQsaXNPcGVuZWQ6VixpdGVtczpELGJ1dHRvbkNvbnRlbnQ6bih7aGlkZGVuVGFiczpEfSksYnV0dG9uUmVmOmYsYnV0dG9uVGhlbWU6ZCxpc0hpZ2hsaWdodGVkOlUsb25CdXR0b25DbGljazpBLG9uSXRlbUNsaWNrOkksb25DbG9zZTpCLGhpZGVGb2N1c091dGxpbmU6RiwKZmFrZTowPT09RC5sZW5ndGh9KSkpKX1mdW5jdGlvbiB2KGUpe2NvbnN0eyJkYXRhLW5hbWUiOnQ9InNxdWFyZS10YWJzLWJ1dHRvbnMiLC4uLnJ9PWU7cmV0dXJuIG8uY3JlYXRlRWxlbWVudChMLHsuLi5yLCJkYXRhLW5hbWUiOnR9KX19LDY5MDA5NyhlLHQscil7InVzZSBzdHJpY3QiO3IuZCh0LHtkZWZhdWx0VGhlbWU6KCk9Pml9KTt2YXIgbz1yKDM4NzIzMSksbj1yKDEzNTI4NyksYT1yKDM0ODg0OSk7Y29uc3QgaT0oMCxvLm1lcmdlVGhlbWVzKShhLG4pfSwyNDMyMDcoZSx0LHIpeyJ1c2Ugc3RyaWN0IjtyLmQodCx7U3F1YXJlQnV0dG9uQ29udGVudDooKT0+ZCxnZXRTcXVhcmVCdXR0b25DbGFzc2VzOigpPT51fSk7dmFyIG89cig3Nzk0NzQpLG49cig5MTQ0ODcpLGE9ci5uKG4pLGk9cig2MDUxNDEpLGw9cig0NzMxNTkpLHM9ci5uKGwpO2NvbnN0IGM9ImFwcGx5LW92ZXJmbG93LXRvb2x0aXAgYXBwbHktb3ZlcmZsb3ctdG9vbHRpcC0tY2hlY2stY2hpbGRyZW4tcmVjdXJzaXZlbHkgYXBwbHktb3ZlcmZsb3ctdG9vbHRpcC0tYWxsb3ctdGV4dCBhcHBseS1jb21tb24tdG9vbHRpcCI7ZnVuY3Rpb24gdShlKXtjb25zdHtzaXplOnQ9Im1lZGl1bSIsdmFyaWFudDpyPSJwcmltYXJ5Iixjb2xvcjpvPSJicmFuZCIsc3RyZXRjaDpuPSExLHN0YXJ0U2xvdDpsLGVuZFNsb3Q6dSxpY29uT25seTpkPSExLGNsYXNzTmFtZTpwLGlzR3JvdXBlZDptLGNlbGxTdGF0ZTpoLGRpc2FibGVQb3NpdGlvbkFkanVzdG1lbnQ6Uz0hMSxwcmltYXJ5VGV4dDpFLHNlY29uZGFyeVRleHQ6Xyxpc0FuY2hvcjpnPSExfT1lLGY9ImJyYW5kIj09PW8/ImJsYWNrIjpvLEM9ZnVuY3Rpb24oZSl7bGV0IHQ9IiI7cmV0dXJuIDAhPT1lJiYoMSZlJiYodD1hKCkodCxzKClbIm5vLWNvcm5lci10b3AtbGVmdCJdKSksMiZlJiYodD1hKCkodCxzKClbIm5vLWNvcm5lci10b3AtcmlnaHQiXSkpLDQmZSYmKHQ9YSgpKHQscygpWyJuby1jb3JuZXItYm90dG9tLXJpZ2h0Il0pKSw4JmUmJih0PWEoKSh0LHMoKVsibm8tY29ybmVyLWJvdHRvbS1sZWZ0Il0pKSksdH0oKDAsaS5nZXRHcm91cENlbGxSZW1vdmVSb3VuZEJvcmRlcnMpKGgpKSxUPWQmJihsfHx1KTtyZXR1cm4gYSgpKHAscygpLmJ1dHRvbixzKClbdF0scygpW2ZdLHMoKVtyXSxuJiZzKCkuc3RyZXRjaCxsJiZzKCkud2l0aFN0YXJ0SWNvbix1JiZzKCkud2l0aEVuZEljb24sVCYmcygpLmljb25Pbmx5LEMsbSYmcygpLmdyb3VwZWQsbSYmIVMmJnMoKS5hZGp1c3RQb3NpdGlvbixtJiZoLmlzVG9wJiZzKCkuZmlyc3RSb3csbSYmaC5pc0xlZnQmJnMoKS5maXJzdENvbCxFJiZfJiZzKCkubXVsdGlsaW5lQ29udGVudCxnJiZzKCkubGluayxjKX1mdW5jdGlvbiBkKGUpe2NvbnN0e3N0YXJ0U2xvdDp0LGljb25Pbmx5OnIsY2hpbGRyZW46bixlbmRTbG90OmkscHJpbWFyeVRleHQ6bCxzZWNvbmRhcnlUZXh0OnV9PWU7aWYodCYmaSYmcilyZXR1cm4gby5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOmEoKShzKCkuc2xvdCxzKCkuc3RhcnRTbG90V3JhcCl9LHQpO2NvbnN0IGQ9ciYmKHQ/P2kpLHA9IXQmJiFpJiYhciYmIW4mJmwmJnU7cmV0dXJuIG8uY3JlYXRlRWxlbWVudChvLkZyYWdtZW50LG51bGwsdCYmby5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOmEoKShzKCkuc2xvdCxzKCkuc3RhcnRTbG90V3JhcCl9LHQpLG4mJiFkJiZvLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6cygpLmNvbnRlbnR9LG4pLGkmJm8uY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZTphKCkocygpLnNsb3QscygpLmVuZFNsb3RXcmFwKX0saSkscCYmIWQmJmZ1bmN0aW9uKGUpe3JldHVybiBlLnByaW1hcnlUZXh0JiZlLnNlY29uZGFyeVRleHQmJm8uY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOmEoKShzKCkudGV4dFdyYXAsYyl9LG8uY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZTpzKCkucHJpbWFyeVRleHR9LCIgIixlLnByaW1hcnlUZXh0LCIgIiksInN0cmluZyI9PXR5cGVvZiBlLnNlY29uZGFyeVRleHQ/by5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOnMoKS5zZWNvbmRhcnlUZXh0fSwiICIsZS5zZWNvbmRhcnlUZXh0LCIgIik6by5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOnMoKS5zZWNvbmRhcnlUZXh0fSxvLmNyZWF0ZUVsZW1lbnQoInNwYW4iLG51bGwsZS5zZWNvbmRhcnlUZXh0LmZpcnN0TGluZSksby5jcmVhdGVFbGVtZW50KCJzcGFuIixudWxsLGUuc2Vjb25kYXJ5VGV4dC5zZWNvbmRMaW5lKSkpfShlKSl9fSwyOTU3NDQoZSx0LHIpeyJ1c2Ugc3RyaWN0IjtyLmQodCx7U3F1YXJlQnV0dG9uOigpPT51fSk7dmFyIG89cig3Nzk0NzQpLG49cig3NzAxNDMpLGE9cig1MzIwMTEpLGk9cigzNDUxMTYpO2Z1bmN0aW9uIGwoZSx0KXtyZXR1cm4gcj0+e2lmKHQpcmV0dXJuIHIucHJldmVudERlZmF1bHQoKSx2b2lkIHIuc3RvcFByb3BhZ2F0aW9uKCk7ZT8uKHIpfX12YXIgcz1yKDI0MzIwNyk7ZnVuY3Rpb24gYyhlKXtjb25zdHtjbGFzc05hbWU6dCxjb2xvcjpyLHZhcmlhbnQ6byxzaXplOm4sc3RyZXRjaDphLGljb25Pbmx5Omwsc3RhcnRTbG90OnMsZW5kU2xvdDpjLHByaW1hcnlUZXh0OnUsc2Vjb25kYXJ5VGV4dDpkLC4uLnB9PWU7cmV0dXJuey4uLnAsLi4uKDAsaS5maWx0ZXJEYXRhUHJvcHMpKGUpLC4uLigwLGkuZmlsdGVyQXJpYVByb3BzKShlKX19ZnVuY3Rpb24gdShlKXtjb25zdHtyZWZlcmVuY2U6dCx0b29sdGlwVGV4dDpyLGRpc2FibGVkOmksb25DbGljazp1LG9uTW91c2VPdmVyOmQsb25Nb3VzZU91dDpwLG9uTW91c2VEb3duOm0sb25Nb3VzZUVudGVyOmgsYXJpYURpc2FibGVkOlMsLi4uRX09ZSx7aXNHcm91cGVkOl8sY2VsbFN0YXRlOmcsZGlzYWJsZVBvc2l0aW9uQWRqdXN0bWVudDpmfT0oMCxvLnVzZUNvbnRleHQpKGEuQ29udHJvbEdyb3VwQ29udGV4dCksQz0oMCxzLmdldFNxdWFyZUJ1dHRvbkNsYXNzZXMpKHsuLi5FLGlzR3JvdXBlZDpfLGNlbGxTdGF0ZTpnLGRpc2FibGVQb3NpdGlvbkFkanVzdG1lbnQ6Zgp9KSxUPXI/PyhlLnByaW1hcnlUZXh0P1tlLnByaW1hcnlUZXh0LGUuc2Vjb25kYXJ5VGV4dF0uam9pbigiICIpOigwLG4uZ2V0VGV4dEZvclRvb2x0aXApKGUuY2hpbGRyZW4pKTtyZXR1cm4gby5jcmVhdGVFbGVtZW50KCJidXR0b24iLHsuLi5jKEUpLCJhcmlhLWRpc2FibGVkIjppfHxTLHRhYkluZGV4OmUudGFiSW5kZXg/PyhpPy0xOjApLGNsYXNzTmFtZTpDLHJlZjp0LG9uQ2xpY2s6bCh1LGkpLG9uTW91c2VEb3duOmwobSxpKSxvbk1vdXNlT3ZlcjpsKGQsaSksb25Nb3VzZU91dDpsKHAsaSksb25Nb3VzZUVudGVyOmwoaCxpKSwiZGF0YS1vdmVyZmxvdy10b29sdGlwLXRleHQiOlR9LG8uY3JlYXRlRWxlbWVudChzLlNxdWFyZUJ1dHRvbkNvbnRlbnQsey4uLkV9KSl9fSw3NjM1NDkoZSx0LHIpeyJ1c2Ugc3RyaWN0IjtyLmQodCx7dXNlQ29tcG9zZWRLZXlib2FyZEFjdGlvbkhhbmRsZXJzOigpPT5sLHVzZUtleWJvYXJkQWN0aW9uSGFuZGxlcjooKT0+aSx1c2VLZXlib2FyZENsb3NlOigpPT51LHVzZUtleWJvYXJkRXZlbnRIYW5kbGVyOigpPT5zLHVzZUtleWJvYXJkT3BlbjooKT0+ZCx1c2VLZXlib2FyZFRvZ2dsZTooKT0+Y30pO3ZhciBvPXIoNzc5NDc0KSxuPXIoMjM1NzI0KTtjb25zdCBhPSgpPT4hMDtmdW5jdGlvbiBpKGUsdCxyPWEsbil7cmV0dXJuKDAsby51c2VDYWxsYmFjaykoKG89PntpZihuKXtpZigiaG9yaXpvbnRhbCI9PT1uJiYoNDA9PT1vfHwzOD09PW8pKXJldHVybjtpZigidmVydGljYWwiPT09biYmKDM3PT09b3x8Mzk9PT1vKSlyZXR1cm59Y29uc3QgYT1lLm1hcCgoZT0+ImZ1bmN0aW9uIj09dHlwZW9mIGU/ZSgpOmUpKTtyZXR1cm4hKCFyKG8pfHwhYS5pbmNsdWRlcyhvKSkmJih0KG8pLCEwKX0pLFsuLi5lLHQscl0pfWZ1bmN0aW9uIGwoLi4uZSl7cmV0dXJuKDAsby51c2VDYWxsYmFjaykoKHQ9Pntmb3IoY29uc3QgciBvZiBlKWlmKHIodCkpcmV0dXJuITA7cmV0dXJuITF9KSxbLi4uZV0pfWZ1bmN0aW9uIHMoZSx0PSEwLHI9ITEpe2NvbnN0IGE9bCguLi5lKTtyZXR1cm4oMCxvLnVzZUNhbGxiYWNrKSgoZT0+e2NvbnN0IG89YSgoMCxuLmhhc2hGcm9tRXZlbnQpKGUpKTtvJiZ0JiZlLnByZXZlbnREZWZhdWx0KCksbyYmciYmZS5zdG9wUHJvcGFnYXRpb24oKX0pLFthXSl9ZnVuY3Rpb24gYyhlLHQ9ITApe3JldHVybiBpKFsxMywzMl0sZSwoZnVuY3Rpb24oZSl7aWYoMTM9PT1lKXJldHVybiB0O3JldHVybiEwfSkpfWZ1bmN0aW9uIHUoZSx0KXtyZXR1cm4gaShbOSwoMCxvLnVzZUNhbGxiYWNrKSgoKCk9Pm4uTW9kaWZpZXJzLlNoaWZ0KzkpLFtdKSwyN10sdCwoMCxvLnVzZUNhbGxiYWNrKSgoKCk9PmUpLFtlXSkpfWZ1bmN0aW9uIGQoZSx0KXtyZXR1cm4gaShbNDAsMzhdLHQsKDAsby51c2VDYWxsYmFjaykoKCgpPT4hZSksW2VdKSl9fSw1Nzc4MzIoZSx0LHIpeyJ1c2Ugc3RyaWN0IjtyLmQodCx7aXNJbkV4Y2x1ZGVkQXJlYTooKT0+bn0pO3ZhciBvPXIoNzcxNDQ3KTtmdW5jdGlvbiBuKGUsdCl7aWYoIXQpcmV0dXJuITE7Y29uc3Qgcj0iY3VycmVudCJpbiB0P3QuY3VycmVudD8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk6dDtyZXR1cm4hIXImJigwLG8uaXNJblJlY3QpKGUscil9fSw0MTkxODEoZSx0LHIpeyJ1c2Ugc3RyaWN0IjtyLmQodCx7Y3JlYXRlRG9tSWQ6KCk9PnMsam9pbkRvbUlkczooKT0+Y30pO2NvbnN0IG89L1xzL2c7ZnVuY3Rpb24gbihlKXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIGV9ZnVuY3Rpb24gYShlKXtzd2l0Y2godHlwZW9mIGUpe2Nhc2Uic3RyaW5nIjpyZXR1cm4gZTtjYXNlIm51bWJlciI6Y2FzZSJiaWdpbnQiOnJldHVybiBlLnRvU3RyaW5nKDEwKTtjYXNlImJvb2xlYW4iOmNhc2Uic3ltYm9sIjpyZXR1cm4gZS50b1N0cmluZygpO2RlZmF1bHQ6cmV0dXJuIG51bGx9fWZ1bmN0aW9uIGkoZSl7cmV0dXJuIGUudHJpbSgpLmxlbmd0aD4wfWZ1bmN0aW9uIGwoZSl7cmV0dXJuIGUucmVwbGFjZShvLCItIil9ZnVuY3Rpb24gcyguLi5lKXtjb25zdCB0PWUubWFwKGEpLmZpbHRlcihuKS5maWx0ZXIoaSkubWFwKGwpO3JldHVybih0Lmxlbmd0aD4wJiZ0WzBdLnN0YXJ0c1dpdGgoImlkXyIpP3Q6WyJpZCIsLi4udF0pLmpvaW4oIl8iKX1mdW5jdGlvbiBjKC4uLmUpe3JldHVybiBlLm1hcChhKS5maWx0ZXIobikuZmlsdGVyKGkpLmpvaW4oIiAiKX19LDEwOTk3MShlLHQscil7InVzZSBzdHJpY3QiO3IuZCh0LHtMaWdodHdlaWdodENoYXJ0VG9vbHRpcDooKT0+U30pO3ZhciBvPXIoNzc5NDc0KSxuPXIoOTE0NDg3KSxhPXIubihuKSxpPXIoMTM4NjM4KSxsPXIoNjQwNTEzKSxzPXIoMjg2MzEwKSxjPXIoMTU5MjU2KSx1PXIoNDc5Mjk3KSxkPXIoNTc3ODMyKSxwPXIoODM0OTQzKSxtPXIoMTI4MTI4KTtjb25zdCBoPSgwLHUud2luZG93RXZlbnQpKCJzY3JvbGwiKTtmdW5jdGlvbiBTKGUpe2NvbnN0e2NoaWxkcmVuOnQsaXNPcGVuOnIsY2hhcnQ6bixza2lwVGltZUNoZWNrT25Dcm9zc2hhaXJNb3ZlOmw9ITEsY2xhc3NOYW1lOnV9PWUsW1MsX109KDAsby51c2VTdGF0ZSkobnVsbCksZz0oMCxvLnVzZVJlZikobnVsbCksZj0oMCxvLnVzZVJlZikobi5jaGFydEVsZW1lbnQoKSksQz0oMCxvLnVzZVJlZikobnVsbCk7cmV0dXJuKDAsby51c2VFZmZlY3QpKCgoKT0+e2NvbnN0IGU9KCk9PntDLmN1cnJlbnQ9Zi5jdXJyZW50Py5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKT8/bnVsbH07cmV0dXJuIGUoKSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicmVzaXplIixlKSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigic2Nyb2xsIixlLCEwKSwoKT0+e3dpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJyZXNpemUiLGUpLHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJzY3JvbGwiLGUsITApfX0pLFtdKSwoMCxjLnVzZUNvbmRpdGlvbmFsRWZmZWN0KShyJiZudWxsIT09UywoKCk9Pntjb25zdFtlLHRdPSgwLHAucmFmVGhyb3R0bGUpKCgoKT0+eygwLGQuaXNJbkV4Y2x1ZGVkQXJlYSkoKDAsaS5lbnN1cmVOb3ROdWxsKShTKSxmKXx8XyhudWxsKX0pKSxyPWgoZSwhMCk7cmV0dXJuKCk9PntyPy4oKSx0KCl9fSksW10pLCgwLApvLnVzZUVmZmVjdCkoKCgpPT57aWYobnVsbD09PW4pcmV0dXJuO2NvbnN0IGU9ZT0+e2lmKHZvaWQgMD09PWUucG9pbnR8fCFsJiZ2b2lkIDA9PT1lLnRpbWUpXyhudWxsKTtlbHNlIGlmKHZvaWQgMCE9PWUuc291cmNlRXZlbnQpe2NvbnN0IHQ9Qy5jdXJyZW50O2lmKG51bGwhPT10KXtjb25zdHtjbGllbnRYOnIsY2xpZW50WTpvfT1lLnNvdXJjZUV2ZW50O2lmKCEocj49dC5sZWZ0JiZyPD10LnJpZ2h0JiZvPj10LnRvcCYmbzw9dC5ib3R0b20pKXJldHVybiB2b2lkIF8obnVsbCl9Xyh7eDplLnNvdXJjZUV2ZW50LmNsaWVudFgseTplLnNvdXJjZUV2ZW50LmNsaWVudFl9KX19O3JldHVybiBuLnN1YnNjcmliZUNyb3NzaGFpck1vdmUoZSksKCk9PntuLnVuc3Vic2NyaWJlQ3Jvc3NoYWlyTW92ZShlKX19KSxbbixsXSksbnVsbD09PVM/bnVsbDpvLmNyZWF0ZUVsZW1lbnQocy5SZWN0YW5nbGVQb3NpdGlvbmVyLHtpc09wZW46cixhbmNob3JlZEF0Ont4OlMueC0xMix5OlMueSx3aWR0aDoyNCxoZWlnaHQ6MH0sd2lkdGg6e2J5OiJjb250ZW50In0saGVpZ2h0OntieToiY29udGVudCJ9LGlzUnRsOiExLGFuY2hvclBvc2l0aW9uZXJDYXJkQXBwZWFyYW5jZUNsYXNzbmFtZTphKCkobS5saWdodHdlaWdodENoYXJ0VG9vbHRpcCx1KSxwbGFjZW1lbnRSdWxlczpFLHJlZk9iamVjdFRvQ29udGVudFdyYXBwZXJFbGVtZW50Omd9LHQpfWNvbnN0IEU9W3suLi5sLlBMQUNFTUVOVF9SSUdIVF9BTElHTl9DRU5URVIsb3ZlcmZsb3dIb3Jpem9udGFsOiJrZWVwTm9uRml0dGluZyJ9LHsuLi5sLlBMQUNFTUVOVF9MRUZUX0FMSUdOX0NFTlRFUixvdmVyZmxvd0hvcml6b250YWw6ImtlZXBOb25GaXR0aW5nIn1dfSw3MjE4MjMoZSx0LHIpeyJ1c2Ugc3RyaWN0IjtyLmQodCx7T0NTSHR0cEVycm9yOigpPT5uLG9wdGlvbnNDaGFydGluZ1NlcnZpY2U6KCk9PmF9KTt2YXIgbz1yKDM4NDAxNyk7cigxODUyNzEpO2NsYXNzIG4gZXh0ZW5kcyBFcnJvcntjb25zdHJ1Y3RvcihlLHQpe3N1cGVyKGUubWVzc2FnZSksdGhpcy5leHBlY3RlZEVycm9yQ29kZXM9WyJ1bmtub3duX3N5bWJvbCIsInVua25vd25fb3B0aW9uX3NlcmllcyIsIm5vX21hcmtldF9kYXRhIl0sdGhpcy5kYXRhPWUsdGhpcy5pc0V4cGVjdGVkRXJyb3I9dDw1MDAmJnRoaXMuZXhwZWN0ZWRFcnJvckNvZGVzLmluY2x1ZGVzKGUuY29kZSl9fWNvbnN0IGE9bmV3IGNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5faG9zdD1uZXcgVVJMU2VhcmNoUGFyYW1zKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2gpLmdldCgib3B0aW9uc19jaGFydGluZ19ob3N0Iil8fHdpbmRvdy5PUFRJT05TX0NIQVJUSU5HX0hPU1R9bWFrZVN0cmF0ZWdpZXNDaGFydFJlcXVlc3QoZSx0LHIpe3JldHVybiB0aGlzLl9tYWtlUmVxdWVzdCh7bWV0aG9kOiJQT1NUIixwYXRoOiIvdjEvc3RyYXRlZ2llcy1jaGFydCIsc291cmNlOnQsc2lnbmFsOnIsYm9keTpKU09OLnN0cmluZ2lmeShlKX0pfW1ha2VWb2xhdGlsaXR5Q2hhcnRSZXF1ZXN0KGUsdCxyKXtpZigxPT09ZS5vcHRpb25TZXJpZXNJZHMubGVuZ3RoKXtjb25zdCBvPW5ldyBVUkxTZWFyY2hQYXJhbXM7cmV0dXJuIGUucmFuZ2UmJm8uc2V0KCJyYW5nZV9mcm9tIixlLnJhbmdlWzBdLnRvU3RyaW5nKCkpLGUucmFuZ2UmJm8uc2V0KCJyYW5nZV90byIsZS5yYW5nZVsxXS50b1N0cmluZygpKSxlLnJlc29sdXRpb24mJm8uc2V0KCJyZXNvbHV0aW9uIixlLnJlc29sdXRpb24udG9TdHJpbmcoKSksZS54QXhpc1R5cGUmJm8uc2V0KCJ4YXhpcyIsZS54QXhpc1R5cGUpLHRoaXMuX21ha2VSZXF1ZXN0KHttZXRob2Q6IkdFVCIscGF0aDpgL3YxL3ZvbGF0aWxpdHktY2hhcnQvJHtlLm9wdGlvblNlcmllc0lkc1swXX1gLHNvdXJjZTp0LHNpZ25hbDpyLHNlYXJjaFBhcmFtczpvfSl9cmV0dXJuIHRoaXMuX21ha2VSZXF1ZXN0KHttZXRob2Q6IlBPU1QiLHBhdGg6Ii92MS92b2xhdGlsaXR5LWNoYXJ0Iixzb3VyY2U6dCxzaWduYWw6cixib2R5OkpTT04uc3RyaW5naWZ5KGUpfSl9bWFrZUluVGltZUlWUmVxdWVzdChlLHQscil7cmV0dXJuIHRoaXMuX21ha2VSZXF1ZXN0KHttZXRob2Q6IkdFVCIscGF0aDpgL3YxL2luLXRpbWUtaXYvJHtlbmNvZGVVUklDb21wb25lbnQoZSl9YCxzb3VyY2U6dCxzaWduYWw6cn0pfW1ha2VVbmRlcmx5aW5nQWdncmVnYXRlc1JlcXVlc3QoZSx0LHIpe3JldHVybiB0aGlzLl9tYWtlUmVxdWVzdCh7bWV0aG9kOiJHRVQiLHBhdGg6YC92MS91bmRlcmx5aW5nLWFnZ3JlZ2F0ZXMvJHtlbmNvZGVVUklDb21wb25lbnQoZSl9YCxzb3VyY2U6dCxzaWduYWw6cn0pfW1ha2VWb2lMZW5zUmVxdWVzdChlLHQscil7cmV0dXJuIHRoaXMuX21ha2VSZXF1ZXN0KHttZXRob2Q6IkdFVCIscGF0aDpgL3YxL3ZvaS1sZW5zLyR7ZW5jb2RlVVJJQ29tcG9uZW50KGUpfWAsc291cmNlOnQsc2lnbmFsOnJ9KX1tYWtlT3B0aW9uc1N0cnVjdHVyZVJlcXVlc3QoZSx0LHIpe3JldHVybiB0aGlzLl9tYWtlUmVxdWVzdCh7bWV0aG9kOiJHRVQiLHBhdGg6YC92MS9vcHRpb25zLXN0cnVjdHVyZS8ke2VuY29kZVVSSUNvbXBvbmVudChlKX1gLHNvdXJjZTp0LHNpZ25hbDpyfSl9X21ha2VSZXF1ZXN0KGUpe2NvbnN0e2JvZHk6dCxtZXRob2Q6cixwYXRoOmEsc2VhcmNoUGFyYW1zOmk9bmV3IFVSTFNlYXJjaFBhcmFtcyxzaWduYWw6bCxzb3VyY2U6c309ZTtyZXR1cm4gaS5zZXQoImxhYmVsLXByb2R1Y3QiLHMpLCgwLG8uZmV0Y2gpKGAke3RoaXMuX2hvc3R9JHthfT8ke2kudG9TdHJpbmcoKX1gLHtib2R5OnQsbWV0aG9kOnIsc2lnbmFsOmx9LHtsb2dPbkVycm9yU3RhdHVzOiExfSkudGhlbigoZT0+ZS5vaz9lLmpzb24oKTplLmpzb24oKS50aGVuKCh0PT57dGhyb3cgbmV3IG4odCxlLnN0YXR1cyl9KSkpKX19fSw1MTg0NTAoZSx0LHIpeyJ1c2Ugc3RyaWN0IjtyLmQodCx7U3RyYXRlZ3lDaGFydFRvb2x0aXA6KCk9Pl99KTt2YXIgbz1yKDQ1Mzc4Miksbj1yKDI3MzMxMCksYT1yKDQ3MzIwMCksaT1yKDkxNDQ4NyksbD1yLm4oaSkscz1yKDE4NTI3MSksYz1yKDc3OTQ3NCksdT1yKDEwOTk3MSksZD1yKDEzODYzOCkscD1yKDUwNTU2KQo7ZnVuY3Rpb24gbSgpe3JldHVybntkZWx0YTpzLnQobnVsbCx7Y29udGV4dDoiZ3JlZWtzIn0scig2NTc1MzMpKSxnYW1tYTpzLnQobnVsbCx7Y29udGV4dDoiZ3JlZWtzIn0scig4NzI2MjkpKSxyaG86cy50KG51bGwse2NvbnRleHQ6ImdyZWVrcyJ9LHIoNzk5NDU5KSksdGhldGE6cy50KG51bGwse2NvbnRleHQ6ImdyZWVrcyJ9LHIoOTcyNzY2KSksdmVnYTpzLnQobnVsbCx7Y29udGV4dDoiZ3JlZWtzIn0scigxMDQ1OCkpfX1mdW5jdGlvbiBoKGUsdCxvLG4sYSxpKXtjb25zdCBsPXQueC5kYXRhLmluZGV4T2YoZSksYz1bXTtmb3IobGV0IGU9MDtlPHQuY2hhcnRzLmxlbmd0aDtlKyspe2NvbnN0IHU9dC5jaGFydHNbZV0sZD1hP3UuY29sb3I6KDAscC5nZXRIZXhDb2xvckJ5TmFtZSkoImNvbG9yLXR2LWJsdWUtMzAwIiksbT1wLmNvbG9yc1BhbGV0dGVbImNvbG9yLXRhbi1vcmFuZ2UtNjAwIl0saD17bmFtZTphP3UubmFtZTpudWxsLHJvd3M6W119O2lmKGkmJnUucG5sJiZoLnJvd3MucHVzaCh7Y29sb3I6ZCxjdXJyZW5jeTohMCxsYWJlbDpzLnQobnVsbCx2b2lkIDAscig4Mzc1MzkpKSx2YWx1ZTp1LnBubC5mb3JtYXR0ZXIuZm9ybWF0KHUucG5sLmRhdGFbbF0pfSksaSYmdS5wYXlvZmYpe2NvbnN0IGU9YT91LmNvbG9yOnAuY29sb3JzUGFsZXR0ZVt1LnBheW9mZi5kYXRhW2xdPDA/ImNvbG9yLWJlcnJ5LXBpbmstNTAwIjoiY29sb3ItbWludHktZ3JlZW4tYTYwMCJdO2gucm93cy5wdXNoKHtjb2xvcjplLGN1cnJlbmN5OiEwLGxhYmVsOnMudChudWxsLHZvaWQgMCxyKDY0MjUwNCkpLHZhbHVlOnUucGF5b2ZmLmZvcm1hdHRlci5mb3JtYXQodS5wYXlvZmYuZGF0YVtsXSl9KX1jb25zdCBTPW4mJnVbbl07UyYmIWEmJmgucm93cy5wdXNoKHtjb2xvcjptLGN1cnJlbmN5OiExLGxhYmVsOm9bbl0sdmFsdWU6Uy5mb3JtYXR0ZXIuZm9ybWF0KFMuZGF0YVtsXSl9KSxjLnB1c2goaCl9aWYodC5uZXRTdHJhdGVneSl7Y29uc3QgZT17bmFtZTpzLnQobnVsbCx2b2lkIDAscig5NjE5MykpLHJvd3M6W119O3QubmV0U3RyYXRlZ3kucG5sJiZlLnJvd3MucHVzaCh7Y29sb3I6dC5uZXRTdHJhdGVneS5jb2xvcixjdXJyZW5jeTohMCxsYWJlbDpzLnQobnVsbCx2b2lkIDAscig4Mzc1MzkpKSx2YWx1ZTp0Lm5ldFN0cmF0ZWd5LnBubC5mb3JtYXR0ZXIuZm9ybWF0KHQubmV0U3RyYXRlZ3kucG5sLmRhdGFbbF0pfSksdC5uZXRTdHJhdGVneS5wYXlvZmYmJmUucm93cy5wdXNoKHtjb2xvcjp0Lm5ldFN0cmF0ZWd5LmNvbG9yLGN1cnJlbmN5OiEwLGxhYmVsOnMudChudWxsLHZvaWQgMCxyKDY0MjUwNCkpLHZhbHVlOnQubmV0U3RyYXRlZ3kucGF5b2ZmLmZvcm1hdHRlci5mb3JtYXQodC5uZXRTdHJhdGVneS5wYXlvZmYuZGF0YVtsXSl9KSxjLnB1c2goZSl9cmV0dXJuIGN9ZnVuY3Rpb24gUyhlLHQpe2NvbnN0IHI9dC54LmRhdGEuaW5kZXhPZihlKSxvPXQuY2hhcnRzLmZpbmQoKGU9PmUuaXNBY3RpdmUpKTtpZihvPy5wcm9iYWJpbGl0aWVzKXtjb25zdCBlPW8ucHJvYmFiaWxpdGllc1tyXTtyZXR1cm5bMTAwKigxLWUpLDEwMCplXX1yZXR1cm4gbnVsbH12YXIgRT1yKDY5ODAxMCk7ZnVuY3Rpb24gXyhlKXtjb25zdHtjaGFydDp0LGNvbnRhaW5lclJlZjppLGN1cnJlbmN5Q29kZTpwLGRhdGE6XyxncmVlazpnLGlzQ29tcGFyZU1vZGU6Zj0hMSxzaG93UHJvYmFiaWxpdHk6Qz0hMCxzaG93RGF0YUdyb3VwczpUPSEwfT1lLHk9ZnVuY3Rpb24oZSx0LHIsbyxuLGEpe2NvbnN0W2ksbF09KDAsYy51c2VTdGF0ZSkobnVsbCkscz0oMCxjLnVzZU1lbW8pKG0sW10pO3JldHVybigwLGMudXNlRWZmZWN0KSgoKCk9PntpZihudWxsPT09ZSlyZXR1cm47Y29uc3QgaT0oMCxkLmVuc3VyZU5vdE51bGwpKHIuY3VycmVudCksYz17fTtsZXQgdT1udWxsO2NvbnN0IHA9ZT0+e2MucGFyYW09ZSxudWxsPT09dSYmKHU9cmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgoKT0+e3ZvaWQgMD09PWMucGFyYW0/LnBvaW50fHwhYy5wYXJhbS50aW1lfHxjLnBhcmFtLnBvaW50Lng8MHx8Yy5wYXJhbS5wb2ludC54PmkuY2xpZW50V2lkdGh8fGMucGFyYW0ucG9pbnQueTwwfHxjLnBhcmFtLnBvaW50Lnk+aS5jbGllbnRIZWlnaHR8fDA9PT10LmNoYXJ0cy5sZW5ndGg/bChudWxsKTpsKHtncm91cHM6aChjLnBhcmFtLnRpbWUsdCxzLG8sYSxuKSxwcm9iYWJpbGl0aWVzOmE/bnVsbDpTKGMucGFyYW0udGltZSx0KSx1bmRlcmx5aW5nUHJpY2U6dC54LmZvcm1hdHRlci5mb3JtYXQoYy5wYXJhbS50aW1lKX0pLHU9bnVsbH0pKSl9O3JldHVybiBlLnN1YnNjcmliZUNyb3NzaGFpck1vdmUocCksKCk9PntlLnVuc3Vic2NyaWJlQ3Jvc3NoYWlyTW92ZShwKSxudWxsIT09dSYmKGNhbmNlbEFuaW1hdGlvbkZyYW1lKHUpLHU9bnVsbCl9fSksW3IsZSx0LG8scyxuLGFdKSxpfSh0LF8saSxnPz9udWxsLFQsZik7cmV0dXJuIG51bGw9PXQ/bnVsbDpjLmNyZWF0ZUVsZW1lbnQodS5MaWdodHdlaWdodENoYXJ0VG9vbHRpcCx7Y2hhcnQ6dCxpc09wZW46bnVsbCE9PXl9LGMuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOkUudG9vbHRpcH0seT8uZ3JvdXBzLm1hcCgoKGUsdCk9PmMuY3JlYXRlRWxlbWVudCgiZGl2Iix7a2V5OnQsY2xhc3NOYW1lOkUuZ3JvdXB9LGUubmFtZSYmYy5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6RS5sYWJlbH0sZS5uYW1lKSxlLnJvd3MubWFwKCgoZSx0KT0+Yy5jcmVhdGVFbGVtZW50KCJkaXYiLHtrZXk6dCxjbGFzc05hbWU6RS5ncm91cFJvd30sYy5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6RS5ncm91cFJvd1RpdGxlQ29udGFpbmVyfSxjLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpFLmdyb3VwUm93RG90LHN0eWxlOnsiLS10b29sdGlwLWRvdC1jb2xvciI6ZS5jb2xvcn19KSxjLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpFLmdyb3VwUm93TGFiZWx9LGUubGFiZWwpKSxjLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpFLmdyb3VwUm93UHJpY2V9LGUudmFsdWUscCYmZS5jdXJyZW5jeSYmYy5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOkUuY3VycmVuY3kKfSxwKSkpKSkpKSksYy5jcmVhdGVFbGVtZW50KCJkaXYiLG51bGwsYy5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6bCgpKEUudW5kZXJseWluZ1ByaWNlVmFsdWUpfSx5Py51bmRlcmx5aW5nUHJpY2UscCYmYy5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOkUuY3VycmVuY3l9LHApKSxjLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpFLmxhYmVsfSxzLnQobnVsbCx2b2lkIDAscig2MDI2OTcpKSkpLEMmJnk/LnByb2JhYmlsaXRpZXMmJmMuY3JlYXRlRWxlbWVudChjLkZyYWdtZW50LG51bGwsYy5jcmVhdGVFbGVtZW50KG8uRGl2aWRlcix7Y2xhc3NOYW1lOkUuZGl2aWRlcixzaXplOiJ4c21hbGwifSksYy5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6RS5wcm9iYWJpbGl0aWVzQ29udGFpbmVyfSxjLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpFLnByb2JhYmlsaXRpZXNBcnJvd3NDb250YWluZXJ9LGMuY3JlYXRlRWxlbWVudChuLkljb24se2NsYXNzTmFtZTpFLmFycm93SWNvbixpY29uOmF9KSxjLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpFLnByb2JhYmlsaXR5fSx5LnByb2JhYmlsaXRpZXNbMF0/LnRvRml4ZWQoMSksIiUiKSxjLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpFLnByb2JhYmlsaXRpZXNEb3R9KSxjLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpFLnByb2JhYmlsaXR5fSx5LnByb2JhYmlsaXRpZXNbMV0udG9GaXhlZCgxKSwiJSIpLGMuY3JlYXRlRWxlbWVudChuLkljb24se2NsYXNzTmFtZTpsKCkoRS5hcnJvd0ljb24sRS5hcnJvd0ljb25SaWdodCksaWNvbjphfSkpLGMuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOkUubGFiZWx9LHMudChudWxsLHZvaWQgMCxyKDQ1MTQxOCkpKSkpKSl9fSw3NDIxMzgoZSx0LHIpeyJ1c2Ugc3RyaWN0IjtyLmQodCx7dXNlQnJlYWtldmVuRG90c1ByaW1pdGl2ZTooKT0+YSx1c2VDaGFydFByZWNpc2lvbjooKT0+VCx1c2VDaGFydFRoZW1lOigpPT5SLHVzZUNoYXJ0VGlja3NXZWlnaHRzOigpPT5iLHVzZUdyZWVrU2VyaWVzOigpPT5JLHVzZUluaXRpYWxpemVkQ2hhcnQ6KCk9PncsdXNlUGF5b2ZmU2VyaWVzOigpPT5QLHVzZVBubFNlcmllczooKT0+TSx1c2VSZXNldFNjYWxlczooKT0+ayx1c2VTa2VsZXRvblNlcmllczooKT0+VSx1c2VVbmRlcmx5aW5nTGluZVByaW1pdGl2ZTooKT0+cX0pO3ZhciBvPXIoNzc5NDc0KSxuPXIoMjIyODgwKTtmdW5jdGlvbiBhKGUsdCl7Y29uc3Rbcl09KDAsby51c2VTdGF0ZSkoKCgpPT5uZXcgbi5WZXJ0aWNhbExpbmVzKFtdKSkpOygwLG8udXNlTGF5b3V0RWZmZWN0KSgoKCk9PntpZihlKXJldHVybiBlLmF0dGFjaFByaW1pdGl2ZShyKSwoKT0+e2UuZGV0YWNoUHJpbWl0aXZlKHIpfX0pLFtlLHJdKSwoMCxvLnVzZUxheW91dEVmZmVjdCkoKCgpPT57Y29uc3QgZT1bXTtmb3IoY29uc3QgciBvZiB0LmNoYXJ0cylpZihyLmJyZWFrZXZlbnMpZm9yKGNvbnN0IHQgb2Ygci5icmVha2V2ZW5zKWUucHVzaCh7dmFsdWU6dCxvcHRpb25zOntzaG93RG90OiEwLGxhYmVsOiJCUkVBS0VWRU4ifX0pO3Iuc2V0UG9pbnRzKGUpfSksW3QuY2hhcnRzLHJdKX12YXIgaT1yKDEzNDY3KSxsPXIoNTA1NTYpLHM9cig2NzgzMTIpLGM9cig4MTA0MSk7ZnVuY3Rpb24gdShlKXtyZXR1cm4oMCxsLmdldEhleENvbG9yQnlOYW1lKShlPT09Yy5TdGRUaGVtZS5MaWdodD8iY29sb3ItY29sZC1ncmF5LTkwMCI6ImNvbG9yLWNvbGQtZ3JheS0yMDAiKX1mdW5jdGlvbiBkKGUpe3JldHVybigwLGwuZ2V0SGV4Q29sb3JCeU5hbWUpKGU9PT1jLlN0ZFRoZW1lLkxpZ2h0PyJjb2xvci1jb2xkLWdyYXktMjAwIjoiY29sb3ItY29sZC1ncmF5LTcwMCIpfWZ1bmN0aW9uIHAoZSl7cmV0dXJuKDAsbC5nZXRIZXhDb2xvckJ5TmFtZSkoZT09PWMuU3RkVGhlbWUuTGlnaHQ/ImNvbG9yLWNvbGQtZ3JheS0xMDAiOiJjb2xvci1jb2xkLWdyYXktODAwIil9ZnVuY3Rpb24gbShlKXtyZXR1cm4oMCxsLmdldEhleENvbG9yQnlOYW1lKShlPT09Yy5TdGRUaGVtZS5MaWdodD8iY29sb3ItY29sZC1ncmF5LTkwMCI6ImNvbG9yLWNvbGQtZ3JheS00NTAiKX1jb25zdCBoPSh7YWxsU3RyaWtlczplLHRoZW1lOnQseFByZWNpc2lvbjpyLG92ZXJyaWRlT3B0aW9uczpvPXt9fSk9PkMoe2F1dG9TaXplOiEwLGhhbmRsZVNjYWxlOntheGlzRG91YmxlQ2xpY2tSZXNldDp7dGltZTohMX0sYXhpc1ByZXNzZWRNb3VzZU1vdmU6e3RpbWU6ITEscHJpY2U6ITF9LG1vdXNlV2hlZWw6ITB9LGhhbmRsZVNjcm9sbDp7aG9yelRvdWNoRHJhZzohMSx2ZXJ0VG91Y2hEcmFnOiExLG1vdXNlV2hlZWw6ITAscHJlc3NlZE1vdXNlTW92ZTohMH0sbGF5b3V0OntiYWNrZ3JvdW5kOnt0eXBlOnMuQ29sb3JUeXBlLlNvbGlkLGNvbG9yOiJ0cmFuc3BhcmVudCJ9LHRleHRDb2xvcjp1KHQpLGF0dHJpYnV0aW9uTG9nbzohMX0sbG9jYWxpemF0aW9uOnthbGxTdHJpa2VzOmUscHJlY2lzaW9uOnJ9LGxlZnRQcmljZVNjYWxlOntlbnRpcmVUZXh0T25seTohMCx2aXNpYmxlOiEwLGJvcmRlclZpc2libGU6ITEsc2NhbGVNYXJnaW5zOnt0b3A6LjAzLGJvdHRvbTouMDN9fSxyaWdodFByaWNlU2NhbGU6e2VudGlyZVRleHRPbmx5OiEwLGJvcmRlclZpc2libGU6ITEsdmlzaWJsZTohMH0sZ3JpZDp7aG9yekxpbmVzOnt2aXNpYmxlOiEwLGNvbG9yOnAodCl9LHZlcnRMaW5lczp7dmlzaWJsZTohMCxjb2xvcjpwKHQpfX0sdGltZVNjYWxlOntib3JkZXJWaXNpYmxlOiExLGZpeExlZnRFZGdlOiEwLGZpeFJpZ2h0RWRnZTohMCxhbGxvd0JvbGRMYWJlbHM6ITEsbG9ja1Zpc2libGVUaW1lUmFuZ2VPblJlc2l6ZTohMH0sY3Jvc3NoYWlyOntob3J6TGluZTp7dmlzaWJsZTohMSxsYWJlbFZpc2libGU6ITF9LHZlcnRMaW5lOntsYWJlbFZpc2libGU6ITEsY29sb3I6ZCh0KSxzdHlsZTpzLkxpbmVTdHlsZS5Tb2xpZH19fSxvKTtmdW5jdGlvbiBTKGUpe3JldHVybntwcmljZTowLGNvbG9yOm0oZSksbGluZVdpZHRoOjEsbGluZVN0eWxlOnMuTGluZVN0eWxlLlNvbGlkLGF4aXNMYWJlbFZpc2libGU6ITF9fQpjb25zdCBFPShlLHQpPT57dC5hcHBseU9wdGlvbnMoe2NvbG9yOm0oZSl9KX07ZnVuY3Rpb24gXyhlLHQscixvLG4pe2NvbnN0IGE9cj8oMCxpLnJnYmFUb1N0cmluZykoKDAsaS5yZ2JhKSgoMCxpLnBhcnNlUmdiKShlKSwuMSkpOiJ0cmFuc3BhcmVudCIsbD1yPygwLGkucmdiYVRvU3RyaW5nKSgoMCxpLnJnYmEpKCgwLGkucGFyc2VSZ2IpKHQpLC4xKSk6InRyYW5zcGFyZW50IjtyZXR1cm57YmFzZVZhbHVlOnt0eXBlOiJwcmljZSIscHJpY2U6MH0sdG9wTGluZUNvbG9yOmUsdG9wRmlsbENvbG9yMTphLHRvcEZpbGxDb2xvcjI6YSxib3R0b21MaW5lQ29sb3I6dCxib3R0b21GaWxsQ29sb3IxOmwsYm90dG9tRmlsbENvbG9yMjpsLHByaWNlTGluZVZpc2libGU6ITEsbGFzdFZhbHVlVmlzaWJsZTohMSxwcmljZVNjYWxlSWQ6bnx8ImxlZnQiLGxpbmVXaWR0aDozLGNyb3NzaGFpck1hcmtlclZpc2libGU6ITEscHJpY2VGb3JtYXQ6e21pbk1vdmU6MS8xMCoqbyxwcmVjaXNpb246b319fWZ1bmN0aW9uIGcoZSx0LHIsbyl7cmV0dXJue2NvbG9yOmV8fCF0P2wuY29sb3JzUGFsZXR0ZVsiY29sb3ItdHYtYmx1ZS01MDAiXTp0LGxpbmVTdHlsZTpzLkxpbmVTdHlsZS5EYXNoZWQsbGluZVdpZHRoOjIscHJpY2VMaW5lVmlzaWJsZTohMSxsYXN0VmFsdWVWaXNpYmxlOiExLHByaWNlU2NhbGVJZDpvfHwibGVmdCIsY3Jvc3NoYWlyTWFya2VyVmlzaWJsZTohMSxwcmljZUZvcm1hdDp7bWluTW92ZToxLzEwKipyLHByZWNpc2lvbjpyfX19ZnVuY3Rpb24gZihlLHQscil7ZS5hcHBseU9wdGlvbnMoe2xvY2FsaXphdGlvbjp7cHJlY2lzaW9uOnR9LHRpbWVTY2FsZTp7dGlja01hcmtNYXhDaGFyYWN0ZXJMZW5ndGg6cn19KX1mdW5jdGlvbiBDKGUsLi4udCl7Zm9yKGNvbnN0IHIgb2YgdClmb3IoY29uc3QgdCBpbiByKXZvaWQgMCE9PXJbdF0mJk9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChyLHQpJiYhWyJfX3Byb3RvX18iLCJjb25zdHJ1Y3RvciIsInByb3RvdHlwZSJdLmluY2x1ZGVzKHQpJiYoIm9iamVjdCIhPXR5cGVvZiByW3RdfHx2b2lkIDA9PT1lW3RdfHxBcnJheS5pc0FycmF5KHJbdF0pP2VbdF09clt0XTpDKGVbdF0sclt0XSkpO3JldHVybiBlfWZ1bmN0aW9uIFQoZSx0KXsoMCxvLnVzZUxheW91dEVmZmVjdCkoKCgpPT57Y29uc3R7ZGF0YTpyLHByZWNpc2lvbjpvfT10Lng7bnVsbCE9PWUmJjAhPT1yLmxlbmd0aCYmZihlLG8scltyLmxlbmd0aC0xXS50b0ZpeGVkKG8pLmxlbmd0aCsxKX0pLFtlLHQueF0pfXZhciB5PXIoNjE2NjQzKTtmdW5jdGlvbiBSKGUpe2NvbnN0IHQ9KDAseS51c2VUaGVtZSkoKTsoMCxvLnVzZUxheW91dEVmZmVjdCkoKCgpPT57bnVsbCE9PWUmJigoZSx0KT0+e3QuYXBwbHlPcHRpb25zKHtsYXlvdXQ6e2JhY2tncm91bmQ6e3R5cGU6cy5Db2xvclR5cGUuU29saWQsY29sb3I6InRyYW5zcGFyZW50In0sdGV4dENvbG9yOnUoZSl9LGNyb3NzaGFpcjp7dmVydExpbmU6e2NvbG9yOmQoZSl9fSxncmlkOntob3J6TGluZXM6e2NvbG9yOnAoZSl9LHZlcnRMaW5lczp7Y29sb3I6cChlKX19fSl9KSh0LGUpfSksW2UsdF0pfWZ1bmN0aW9uIGIoZSx0KXsoMCxvLnVzZUxheW91dEVmZmVjdCkoKCgpPT57bnVsbCE9PWUmJigoZSx0KT0+e2UuYXBwbHlPcHRpb25zKHtsb2NhbGl6YXRpb246e2FsbFN0cmlrZXM6dH19KX0pKGUsdCl9KSxbZSx0XSl9dmFyIE89cigyMDA2NjYpLEw9cig1NTE1MDUpO2lmKDc5Nzk1PT1yLmopdmFyIHY9cigxNDAxNDgpO2NvbnN0IEE9Nzk3OTU9PXIuaj9bXTpudWxsO2Z1bmN0aW9uIEkoZSx0LHIsbj0hMSxhPUEpe2NvbnN0IGk9KDAseS51c2VUaGVtZSkoKSxjPSgwLG8udXNlUmVmKShbXSksdT0oMCxvLnVzZVJlZikobnVsbCksZD0oMCxvLnVzZVJlZikobnVsbCkscD1udWxsPT09cjsoMCxvLnVzZUxheW91dEVmZmVjdCkoKCgpPT57aWYobnVsbD09PWV8fDEhPT10LmNoYXJ0cy5sZW5ndGh8fHApcmV0dXJuO2NvbnN0IHI9ZS5hZGRTZXJpZXMocy5MaW5lU2VyaWVzLHtjb2xvcjpsLmNvbG9yc1BhbGV0dGVbImNvbG9yLXRhbi1vcmFuZ2UtNjAwIl0sbGluZVN0eWxlOnMuTGluZVN0eWxlLkxhcmdlRGFzaGVkLGxpbmVXaWR0aDoyLHByaWNlTGluZVZpc2libGU6ITEsbGFzdFZhbHVlVmlzaWJsZTohMSxjcm9zc2hhaXJNYXJrZXJWaXNpYmxlOiExfSk7dS5jdXJyZW50PXIsbiYmKGQuY3VycmVudD11LmN1cnJlbnQuY3JlYXRlUHJpY2VMaW5lKFMoTy53YXRjaGVkVGhlbWUudmFsdWUoKSkpKTtjb25zdCBvPXQud2hhdElmU2NlbmFyaW9zLm1hcCgoKHQscik9PmUuYWRkU2VyaWVzKHMuTGluZVNlcmllcyx7Y29sb3I6YVtyXSxsaW5lU3R5bGU6cy5MaW5lU3R5bGUuTGFyZ2VEYXNoZWQsbGluZVdpZHRoOjEscHJpY2VMaW5lVmlzaWJsZTohMSxsYXN0VmFsdWVWaXNpYmxlOiExLGNyb3NzaGFpck1hcmtlclZpc2libGU6ITF9KSkpO2MuY3VycmVudD1vO2NvbnN0IGk9ZnVuY3Rpb24oZSx0LHIpe2NvbnN0IG89dC5tYXAoKGU9PmUuY3JlYXRlUHJpY2VMaW5lKHtwcmljZTowLGF4aXNMYWJlbFZpc2libGU6ITEsbGluZVZpc2libGU6ITEsY29sb3I6ZS5vcHRpb25zKCkuY29sb3J9KSkpLG49ZT0+e2lmKHZvaWQgMD09PWUudGltZSlmb3IobGV0IGU9MDtlPHQubGVuZ3RoO2UrKylvW2VdLmFwcGx5T3B0aW9ucyh7YXhpc0xhYmVsVmlzaWJsZTohMX0pO2Vsc2V7Y29uc3Qgbj1yLmluZGV4T2YoZS50aW1lKTtmb3IobGV0IGU9MDtlPHQubGVuZ3RoO2UrKyl7Y29uc3Qgcj10W2VdLmRhdGFCeUluZGV4KG4pLGE9dFtlXS5vcHRpb25zKCkucHJpY2VGb3JtYXQucHJlY2lzaW9uPz8wO29bZV0uYXBwbHlPcHRpb25zKHtwcmljZTpyPygwLEwuZ2V0Um91bmROdW1iZXIpKHIudmFsdWUsYSk6MCxheGlzTGFiZWxWaXNpYmxlOiEwfSl9fX07cmV0dXJuIGUuc3Vic2NyaWJlQ3Jvc3NoYWlyTW92ZShuKSwoKT0+e2UudW5zdWJzY3JpYmVDcm9zc2hhaXJNb3ZlKG4pO2ZvcihsZXQgZT0wO2U8dC5sZW5ndGg7ZSsrKXRbZV0ucmVtb3ZlUHJpY2VMaW5lKG9bZV0pfX0oZSxvLHQueC5kYXRhKTtyZXR1cm4oKT0+e2koKSwKZC5jdXJyZW50JiZyLnJlbW92ZVByaWNlTGluZShkLmN1cnJlbnQpLGUucmVtb3ZlU2VyaWVzKHIpO2ZvcihsZXQgcj0wO3I8dC53aGF0SWZTY2VuYXJpb3MubGVuZ3RoO3IrKyllLnJlbW92ZVNlcmllcyhvW3JdKTtkLmN1cnJlbnQ9bnVsbCx1LmN1cnJlbnQ9bnVsbCxjLmN1cnJlbnQ9W119fSksW2UsdCxwLG4sYV0pLCgwLG8udXNlTGF5b3V0RWZmZWN0KSgoKCk9PntpZihudWxsPT09ZXx8bnVsbD09PXUuY3VycmVudClyZXR1cm47Y29uc3Qgbz1yJiZ0LmNoYXJ0c1swXVtyXTtpZihvKXt1LmN1cnJlbnQuYXBwbHlPcHRpb25zKHtwcmljZUZvcm1hdDp7bWluTW92ZToxLzEwKipvLnByZWNpc2lvbixwcmVjaXNpb246by5wcmVjaXNpb259fSksdS5jdXJyZW50LnNldERhdGEoKDAsdi5tYXBUb1Nlcmllc0RhdGEpKHQueCxvLmRhdGEpKTtmb3IobGV0IGU9MDtlPHQud2hhdElmU2NlbmFyaW9zLmxlbmd0aDtlKyspe2NvbnN0IG49dC53aGF0SWZTY2VuYXJpb3NbZV1bMF1bcl07biYmKGMuY3VycmVudFtlXS5hcHBseU9wdGlvbnMoe3ByaWNlRm9ybWF0OnttaW5Nb3ZlOjEvMTAqKm8ucHJlY2lzaW9uLHByZWNpc2lvbjpvLnByZWNpc2lvbn19KSxjLmN1cnJlbnRbZV0uc2V0RGF0YSgoMCx2Lm1hcFRvU2VyaWVzRGF0YSkodC54LG4uZGF0YSkpKX19ZWxzZXt1LmN1cnJlbnQuc2V0RGF0YShbXSk7Zm9yKGxldCBlPTA7ZTx0LndoYXRJZlNjZW5hcmlvcy5sZW5ndGg7ZSsrKWMuY3VycmVudFtlXS5zZXREYXRhKFtdKX19KSxbZSx0LHJdKSwoMCxvLnVzZUxheW91dEVmZmVjdCkoKCgpPT57ZSYmZC5jdXJyZW50JiZFKGksZC5jdXJyZW50KX0pLFtlLGldKX12YXIgTj1yKDEzODYzOCk7Y2xhc3MgeHtvcHRpb25zKCl7cmV0dXJuIHRoaXMuX29wdGlvbnN9c2V0T3B0aW9ucyhlKXt0aGlzLl9vcHRpb25zPWV9cHJlcHJvY2Vzc0RhdGEoZSl7fXVwZGF0ZUZvcm1hdHRlcihlKXt0aGlzLl9vcHRpb25zJiYodGhpcy5fb3B0aW9ucy5sb2NhbGl6YXRpb249ZSl9Y3JlYXRlQ29udmVydGVyVG9JbnRlcm5hbE9iaihlKXtyZXR1cm4gZT0+ZX1rZXkoZSl7cmV0dXJuIGV9Y2FjaGVLZXkoZSl7cmV0dXJuIGV9Y29udmVydEhvcnpJdGVtVG9JbnRlcm5hbChlKXtyZXR1cm4gZX1mb3JtYXRIb3J6SXRlbShlKXtyZXR1cm4gZS50b0ZpeGVkKHRoaXMuX3ByZWNpc2lvbigpKX1mb3JtYXRUaWNrbWFyayhlLHQpe3JldHVybiBlLnRpbWUudG9GaXhlZCh0aGlzLl9wcmVjaXNpb24oKSl9bWF4VGlja01hcmtXZWlnaHQoZSl7cmV0dXJuIE1hdGgubWF4KC4uLmUubWFwKChlPT5lLndlaWdodCkpKX1maWxsV2VpZ2h0c0ZvclBvaW50cyhlLHQpe2NvbnN0IHI9dGhpcy5fYWxsU3RyaWtlcygpO2lmKHIpZm9yKGxldCBvPXQ7bzxlLmxlbmd0aDsrK28pe2NvbnN0IHQ9ZVtvXS50aW1lLG49ci5oYXModCk/MjoxO2Vbb10udGltZVdlaWdodD1ufX1fcHJlY2lzaW9uKCl7cmV0dXJuIHRoaXMuX29wdGlvbnMubG9jYWxpemF0aW9uLnByZWNpc2lvbn1fYWxsU3RyaWtlcygpe3JldHVybiB0aGlzLl9vcHRpb25zLmxvY2FsaXphdGlvbi5hbGxTdHJpa2VzfX1mdW5jdGlvbiB3KGUsdCl7Y29uc3Qgcj0oMCxvLnVzZVJlZikobnVsbCk7cmV0dXJuKDAsby51c2VMYXlvdXRFZmZlY3QpKCgoKT0+e2NvbnN0IG89KDAsTi5lbnN1cmVOb3ROdWxsKShyLmN1cnJlbnQpLG49bmV3IHgsYT1oKHt0aGVtZTpPLndhdGNoZWRUaGVtZS52YWx1ZSgpLHhQcmVjaXNpb246MCxvdmVycmlkZU9wdGlvbnM6dH0pLGk9KDAscy5jcmVhdGVDaGFydEV4KShvLG4sYSk7cmV0dXJuIGUoaSksKCk9PntpLnJlbW92ZSgpLGUobnVsbCl9fSksW2UsdF0pLHJ9aWYoOTQzODk9PXIuail2PXIoMTQwMTQ4KTtmdW5jdGlvbiBQKGUsdCxyLG49ITEpe2NvbnN0IGE9KDAseS51c2VUaGVtZSkoKSxpPSgwLG8udXNlTWVtbykoKCgpPT57aWYobnVsbD09PWUpcmV0dXJuW107Y29uc3Qgbz1PLndhdGNoZWRUaGVtZS52YWx1ZSgpLGE9W107Zm9yKGNvbnN0IGkgb2YgdC5jaGFydHMpe2NvbnN0IGw9RChpLGUsbixvLHQueCxyKTtsJiZhLnB1c2gobCl9aWYodC5uZXRTdHJhdGVneSl7Y29uc3QgaT1EKHQubmV0U3RyYXRlZ3ksZSxuLG8sdC54LHIpO2kmJmEucHVzaChpKX1yZXR1cm4gYX0pLFtlLHQscixuXSk7cmV0dXJuKDAsby51c2VMYXlvdXRFZmZlY3QpKCgoKT0+e2lmKG51bGwhPT1lKWZvcihjb25zdCBlIG9mIGkpRShhLGUucHJpY2VMaW5lKX0pLFtlLGksYV0pLCgwLG8udXNlTGF5b3V0RWZmZWN0KSgoKCk9PigpPT57aWYobnVsbCE9PWUpZm9yKGNvbnN0e3ByaWNlTGluZTp0LHNlcmllczpyfW9mIGkpci5yZW1vdmVQcmljZUxpbmUodCksZS5yZW1vdmVTZXJpZXMocil9KSxbZSxpXSksaX1mdW5jdGlvbiBEKGUsdCxyLG8sbixhKXtpZighZS5wYXlvZmYpcmV0dXJuIG51bGw7Y29uc3QgaT1lLmNvbG9yLGM9XyhyP2k6bC5jb2xvcnNQYWxldHRlWyJjb2xvci1taW50eS1ncmVlbi1hNjAwIl0scj9pOmwuY29sb3JzUGFsZXR0ZVsiY29sb3ItYmVycnktcGluay01MDAiXSwhcixlLnBheW9mZi5wcmVjaXNpb24sYSksdT10LmFkZFNlcmllcyhzLkJhc2VsaW5lU2VyaWVzLGMpLGQ9KDAsdi5tYXBUb1Nlcmllc0RhdGEpKG4sZS5wYXlvZmYuZGF0YSk7dS5zZXREYXRhKGQpO2NvbnN0IHA9dS5jcmVhdGVQcmljZUxpbmUoUyhvKSk7cmV0dXJue3Nlcmllczp1LHByaWNlTGluZTpwfX1mdW5jdGlvbiBNKGUsdCxyLG49ITEpe2NvbnN0IGE9KDAsby51c2VNZW1vKSgoKCk9PntpZihudWxsPT09ZSlyZXR1cm5bXTtjb25zdCBvPVtdO2Zvcihjb25zdCBhIG9mIHQuY2hhcnRzKXtjb25zdCBpPUYoYSxlLG4sdC54LHIpO2kmJm8ucHVzaChpKX1pZih0Lm5ldFN0cmF0ZWd5KXtjb25zdCBhPUYodC5uZXRTdHJhdGVneSxlLG4sdC54LHIpO2EmJm8ucHVzaChhKX1yZXR1cm4gb30pLFtlLHQscixuXSk7KDAsby51c2VMYXlvdXRFZmZlY3QpKCgoKT0+KCk9PntpZihudWxsIT09ZSlmb3IoY29uc3QgdCBvZiBhKWUucmVtb3ZlU2VyaWVzKHQpfSksW2UsYV0pfWZ1bmN0aW9uIEYoZSx0LHIsbyxuKXtpZighZS5wbmwpcmV0dXJuIG51bGwKO2NvbnN0IGE9ZyghcixlLmNvbG9yLGUucG5sLnByZWNpc2lvbixuKSxpPXQuYWRkU2VyaWVzKHMuTGluZVNlcmllcyxhKTtyZXR1cm4gaS5zZXREYXRhKCgwLHYubWFwVG9TZXJpZXNEYXRhKShvLGUucG5sLmRhdGEpKSxpfWZ1bmN0aW9uIGsoZSx0KXsoMCxvLnVzZUxheW91dEVmZmVjdCkoKCgpPT57bnVsbCE9PWUmJih0LnguZGlzcGxheVJhbmdlP2UudGltZVNjYWxlKCkuc2V0VmlzaWJsZVJhbmdlKHtmcm9tOnQueC5kaXNwbGF5UmFuZ2UubWluLHRvOnQueC5kaXNwbGF5UmFuZ2UubWF4fSk6ZS50aW1lU2NhbGUoKS5maXRDb250ZW50KCksZS5wcmljZVNjYWxlKCJsZWZ0IikuYXBwbHlPcHRpb25zKHthdXRvU2NhbGU6ITB9KSxlLnByaWNlU2NhbGUoInJpZ2h0IikuYXBwbHlPcHRpb25zKHthdXRvU2NhbGU6ITB9KSl9KSxbZSx0XSl9ZnVuY3Rpb24gVihlKXtyZXR1cm4oMCxsLmdldEhleENvbG9yQnlOYW1lKShlPT09Yy5TdGRUaGVtZS5MaWdodD8iY29sb3ItY29sZC1ncmF5LTEwMCI6ImNvbG9yLWNvbGQtZ3JheS04MDAiKX1mdW5jdGlvbiBVKGUsdCl7Y29uc3Qgcj0oMCx5LnVzZVRoZW1lKSgpLG49KDAsby51c2VNZW1vKSgoKCk9PntpZihudWxsPT09ZXx8IXQpcmV0dXJuIG51bGw7Y29uc3Qgcj1WKE8ud2F0Y2hlZFRoZW1lLnZhbHVlKCkpLG89XyhyLHIsITAsQiksbj1lLmFkZFNlcmllcyhzLkJhc2VsaW5lU2VyaWVzLG8pO24uc2V0RGF0YShXKTtjb25zdCBhPWcoITEscixCKSxpPWUuYWRkU2VyaWVzKHMuTGluZVNlcmllcyxhKTtpLnNldERhdGEoSCk7Y29uc3QgbD1lLmFkZFNlcmllcyhzLkxpbmVTZXJpZXMse2NvbG9yOnIsbGluZVN0eWxlOnMuTGluZVN0eWxlLkxhcmdlRGFzaGVkLGxpbmVXaWR0aDoyLHByaWNlTGluZVZpc2libGU6ITEsbGFzdFZhbHVlVmlzaWJsZTohMX0pO3JldHVybiBsLnNldERhdGEoWSkse2dyZWVrU2VyaWVzOmwscGF5b2ZmU2VyaWVzOm4scG5sU2VyaWVzOml9fSksW2UsdF0pOygwLG8udXNlTGF5b3V0RWZmZWN0KSgoKCk9PntpZihudWxsIT09ZSYmdCYmbnVsbCE9PW4pcmV0dXJuIGUuYXBwbHlPcHRpb25zKHtncmlkOntob3J6TGluZXM6e3Zpc2libGU6ITF9LHZlcnRMaW5lczp7dmlzaWJsZTohMX19fSksZihlLEIsR1tHLmxlbmd0aC0xXS50b0ZpeGVkKEIpLmxlbmd0aCsxKSwoKT0+e2UuYXBwbHlPcHRpb25zKHtncmlkOntob3J6TGluZXM6e3Zpc2libGU6ITB9LHZlcnRMaW5lczp7dmlzaWJsZTohMH19fSksZS5yZW1vdmVTZXJpZXMobi5ncmVla1NlcmllcyksZS5yZW1vdmVTZXJpZXMobi5wYXlvZmZTZXJpZXMpLGUucmVtb3ZlU2VyaWVzKG4ucG5sU2VyaWVzKX19KSxbZSxuLHRdKSwoMCxvLnVzZUxheW91dEVmZmVjdCkoKCgpPT57aWYobnVsbD09PWV8fCF0fHxudWxsPT09bilyZXR1cm47Y29uc3Qgbz1WKHIpO24uZ3JlZWtTZXJpZXMuYXBwbHlPcHRpb25zKHtjb2xvcjpvfSksbi5wYXlvZmZTZXJpZXMuYXBwbHlPcHRpb25zKHt0b3BMaW5lQ29sb3I6byxib3R0b21MaW5lQ29sb3I6b30pLG4ucG5sU2VyaWVzLmFwcGx5T3B0aW9ucyh7Y29sb3I6b30pfSksW2Usbix0LHJdKX0KY29uc3QgQj0wLEc9WzE5NTUwLDE5NjAwLDE5NjUwLDE5NzAwLDE5NzUwLDE5ODAwLDE5ODUwLDE5OTAwLDE5OTUwLDJlNCwyMDA1MCwyMDEwMCwyMDE1MCwyMDIwMCwyMDI1MCwyMDMwMCwyMDM1MCwyMDQwMCwyMDQ1MCwyMDUwMCwyMDU1MCwyMDYwMCwyMDY1MCwyMDcwMCwyMDc1MCwyMDgwMCwyMDg1MCwyMDkwMCwyMDk1MCwyMWUzLDIxMDUwLDIxMTAwLDIxMTUwLDIxMjAwLDIxMjUwLDIxMzAwLDIxMzUwLDIxNDAwLDIxNDUwLDIxNTAwLDIxNTUwLDIxNjAwLDIxNjUwLDIxNzAwLDIxNzUwLDIxODAwLDIxODUwLDIxOTAwLDIxOTUwLDIyZTMsMjIwNTAsMjIxMDAsMjIxNTAsMjIyMDAsMjIyNTAsMjIzMDAsMjIzNTAsMjI0MDAsMjI0NTAsMjI1MDAsMjI1NTAsMjI2MDAsMjI2NTAsMjI3MDAsMjI3NTAsMjI4MDAsMjI4NTAsMjI5MDAsMjI5NTAsMjNlMywyMzA1MCwyMzEwMCwyMzE1MCwyMzIwMCwyMzI1MCwyMzMwMCwyMzM1MCwyMzQwMCwyMzQ1MCwyMzUwMCwyMzU1MCwyMzYwMCwyMzY1MCwyMzcwMCwyMzc1MCwyMzgwMCwyMzg1MF0sSD1LKEcsWy0yNDMsLTI0MywtMjQzLC0yNDMsLTI0MywtMjQzLC0yNDMsLTI0MywtMjQzLC0yNDMsLTI0MywtMjQyLC0yNDIsLTI0MiwtMjQyLC0yNDEsLTI0MCwtMjQwLC0yMzksLTIzOCwtMjM3LC0yMzUsLTIzMywtMjMxLC0yMjgsLTIyNSwtMjIxLC0yMTYsLTIxMSwtMjA1LC0xOTgsLTE5MSwtMTgyLC0xNzIsLTE2MSwtMTQ4LC0xMzUsLTExOSwtMTAzLC04NSwtNjUsLTQ0LC0yMSwzLDI5LDU2LDg2LDExNywxNDksMTgzLDIxOCwyNTQsMjkyLDMzMSwzNzEsNDEzLDQ1NSw0OTgsNTQyLDU4Niw2MzIsNjc4LDcyNCw3NzEsODE5LDg2Nyw5MTUsOTYzLDEwMTIsMTA2MSwxMTEwLDExNTksMTIwOSwxMjU4LDEzMDgsMTM1NywxNDA3LDE0NTcsMTUwNywxNTU2LDE2MDYsMTY1NiwxNzA2LDE3NTYsMTgwNiwxODU2LDE5MDZdKSxXPUsoRyxbLTI0MywtMjQzLC0yNDMsLTI0MywtMjQzLC0yNDMsLTI0MywtMjQzLC0yNDMsLTI0MywtMjQzLC0yNDMsLTI0MywtMjQzLC0yNDMsLTI0MywtMjQzLC0yNDMsLTI0MywtMjQzLC0yNDMsLTI0MywtMjQzLC0yNDMsLTI0MywtMjQzLC0yNDMsLTI0MywtMjQzLC0yNDMsLTI0MywtMjQzLC0yNDMsLTI0MywtMjQzLC0yNDMsLTI0MywtMjQzLC0yNDMsLTI0MywtMjQzLC0yNDMsLTI0MywtMjQzLC0xOTMsLTE0MywtOTMsLTQzLDYsNTYsMTA2LDE1NiwyMDYsMjU2LDMwNiwzNTYsNDA2LDQ1Niw1MDYsNTU2LDYwNiw2NTYsNzA2LDc1Niw4MDYsODU2LDkwNiw5NTYsMTAwNiwxMDU2LDExMDYsMTE1NiwxMjA2LDEyNTYsMTMwNiwxMzU2LDE0MDYsMTQ1NiwxNTA2LDE1NTYsMTYwNiwxNjU2LDE3MDYsMTc1NiwxODA2LDE4NTYsMTkwNl0pLFk9SyhHLFsuMDIsLjAyNywuMDM4LC4wNTEsLjA3LC4wOTMsLjEyNCwuMTYzLC4yMTIsLjI3NSwuMzUyLC40NDgsLjU2NSwuNzA3LC44NzcsMS4wNzksMS4zMTgsMS41OTYsMS45MTgsMi4yODgsMi43MDcsMy4xNzksMy43MDQsNC4yODQsNC45MTcsNS42MDEsNi4zMzQsNy4xMSw3LjkyMyw4Ljc2NCw5LjYyNiwxMC40OTcsMTEuMzY1LDEyLjIxOSwxMy4wNDUsMTMuODMsMTQuNTYxLDE1LjIyNiwxNS44MTMsMTYuMzEyLDE2LjcxNCwxNy4wMTEsMTcuMiwxNy4yNzYsMTcuMjQsMTcuMDkyLDE2LjgzNiwxNi40NzksMTYuMDI2LDE1LjQ4OCwxNC44NzQsMTQuMTk2LDEzLjQ2NSwxMi42OTQsMTEuODkzLDExLjA3NiwxMC4yNTMsOS40MzQsOC42Myw3Ljg0Nyw3LjA5NCw2LjM3Niw1LjY5Nyw1LjA2Miw0LjQ3MSwzLjkyNywzLjQzLDIuOTgsMi41NzQsMi4yMTEsMS44ODksMS42MDUsMS4zNTYsMS4xNCwuOTUzLC43OTIsLjY1NSwuNTM5LC40NDEsLjM1OSwuMjkxLC4yMzUsLjE4OCwuMTUsLjExOSwuMDk0LC4wNzRdKTtmdW5jdGlvbiBLKGUsdCl7cmV0dXJuIGUubWFwKCgoZSxyKT0+KHt0aW1lOmUsdmFsdWU6dFtyXX0pKSl9ZnVuY3Rpb24gcShlLHQpe2NvbnN0W3JdPSgwLG8udXNlU3RhdGUpKCgoKT0+bmV3IG4uVmVydGljYWxMaW5lcyhbXSkpKTsoMCxvLnVzZUxheW91dEVmZmVjdCkoKCgpPT57aWYoZSlyZXR1cm4gZS5hdHRhY2hQcmltaXRpdmUociksKCk9PntlLmRldGFjaFByaW1pdGl2ZShyKX19KSxbZSxyXSksKDAsby51c2VMYXlvdXRFZmZlY3QpKCgoKT0+e251bGwhPT10JiZyLnNldFBvaW50cyhbe3ZhbHVlOnQsb3B0aW9uczp7c2hvd0xpbmU6ITAsbGFiZWw6IlVOREVSTFlJTkcifX1dKX0pLFtyLHRdKX19LDIyMjg4MChlLHQscil7InVzZSBzdHJpY3QiO3IuZCh0LHtWZXJ0aWNhbExpbmVzOigpPT51fSk7dmFyIG89cig1MDU1Niksbj1yKDc4NjQzNiksYT1yKDgxMDQxKSxpPXIoMjAwNjY2KTtmdW5jdGlvbiBsKGUpe3JldHVybigwLG8uZ2V0SGV4Q29sb3JCeU5hbWUpKGU9PT1hLlN0ZFRoZW1lLkxpZ2h0PyJjb2xvci1jb2xkLWdyYXktNTUwIjoiY29sb3ItY29sZC1ncmF5LTQ1MCIpfWNsYXNzIHN7Y29uc3RydWN0b3IoZSl7dGhpcy5fcG9pbnRzPVtdLHRoaXMuX3RoZW1lPWV9ZHJhdyhlKXtlLnVzZU1lZGlhQ29vcmRpbmF0ZVNwYWNlKChlPT57Zm9yKGNvbnN0IHQgb2YgdGhpcy5fcG9pbnRzKXQub3B0aW9ucy5sYWJlbCYmKHQuaXNIb3ZlcmluZ3x8dC5vcHRpb25zLmFsd2F5c1Nob3dMYWJlbCkmJigicHJpY2UiPT09dC5vcHRpb25zLmxhYmVsU3R5bGU/dGhpcy5fZHJhd1ByaWNlTGFiZWwoZSx0LngsdC5vcHRpb25zLmxhYmVsLHQub3B0aW9ucy5jb2xvcik6dGhpcy5fZHJhd0xhYmVsKGUsdC54LHQub3B0aW9ucy5sYWJlbCkpfSkpfWRyYXdCYWNrZ3JvdW5kKGUpe2UudXNlTWVkaWFDb29yZGluYXRlU3BhY2UoKGU9Pntmb3IoY29uc3QgdCBvZiB0aGlzLl9wb2ludHMpdC5vcHRpb25zLnNob3dMaW5lJiZ0aGlzLl9kcmF3TGluZShlLHQueCx0Lm9wdGlvbnMuY29sb3IpLHQub3B0aW9ucy5zaG93RG90JiZ0LnkmJnRoaXMuX2RyYXdEb3QoZSx0LngsdC55LHQuaXNIb3ZlcmluZyl9KSl9dXBkYXRlKGUsdCl7dGhpcy5fcG9pbnRzPWUsdGhpcy5fdGhlbWU9dH1fZHJhd0xpbmUoZSx0LHIpe2NvbnN0IG89ZS5jb250ZXh0LG49TWF0aC5yb3VuZCh0KSsuNQo7by5zdHJva2VTdHlsZT1yPz9sKHRoaXMuX3RoZW1lKSxvLmxpbmVXaWR0aD0xLG8uc2V0TGluZURhc2goWzQsNF0pLG8uYmVnaW5QYXRoKCksby5tb3ZlVG8obiwwKSxvLmxpbmVUbyhuLGUubWVkaWFTaXplLmhlaWdodCksby5zdHJva2UoKSxvLnNldExpbmVEYXNoKFtdKX1fZHJhd0RvdChlLHQscixuKXtjb25zdCBpPWUuY29udGV4dCxzPU1hdGgucm91bmQodCkrLjUsYz1NYXRoLnJvdW5kKHIpKy41O2kuYmVnaW5QYXRoKCksaS5hcmMocyxjLG4/Nzo1LDAsMipNYXRoLlBJLCExKSxpLmZpbGxTdHlsZT1sKHRoaXMuX3RoZW1lKSxpLmZpbGwoKSxpLmxpbmVXaWR0aD1uPzQ6MixpLnN0cm9rZVN0eWxlPSgwLG8uZ2V0SGV4Q29sb3JCeU5hbWUpKHRoaXMuX3RoZW1lPT09YS5TdGRUaGVtZS5MaWdodD8iY29sb3Itd2hpdGUiOiJjb2xvci1ibGFjayIpLGkuc3Ryb2tlKCl9X2RyYXdMYWJlbChlLHQscil7Y29uc3QgaT1lLmNvbnRleHQsbD1NYXRoLnJvdW5kKHQpKy41O2kudGV4dEJhc2VsaW5lPSJib3R0b20iLGkuc2hhZG93Q29sb3I9InRyYW5zcGFyZW50IixpLmZvbnQ9IjU5MCAxMXB4IHNhbnMtc2VyaWYiO2NvbnN0IHM9aS5tZWFzdXJlVGV4dChyKSxjPXMud2lkdGgrMTYsdT0oMjAtcy5mb250Qm91bmRpbmdCb3hBc2NlbnQpLzI7aS5iZWdpblBhdGgoKSxpLnNoYWRvd09mZnNldFg9MCxpLnNoYWRvd09mZnNldFk9MixpLnNoYWRvd0JsdXI9OCxpLnNoYWRvd0NvbG9yPSgwLG8uZ2V0SGV4Q29sb3JCeU5hbWUpKHRoaXMuX3RoZW1lPT09YS5TdGRUaGVtZS5MaWdodD8iY29sb3ItY29sZC1ncmF5LTE1MCI6ImNvbG9yLWNvbGQtZ3JheS03NTAiKSxpLmZpbGxTdHlsZT0oMCxvLmdldEhleENvbG9yQnlOYW1lKSh0aGlzLl90aGVtZT09PWEuU3RkVGhlbWUuTGlnaHQ/ImNvbG9yLXdoaXRlIjoiY29sb3ItYmxhY2siKSwoMCxuLmRyYXdSb3VuZFJlY3QpKGksbC1jLzIsZS5tZWRpYVNpemUuaGVpZ2h0LTIwLTUsYywyMCw0KSxpLmZpbGwoKSxpLmxpbmVXaWR0aD0xLGkuc3Ryb2tlU3R5bGU9KDAsby5nZXRIZXhDb2xvckJ5TmFtZSkodGhpcy5fdGhlbWU9PT1hLlN0ZFRoZW1lLkxpZ2h0PyJjb2xvci1jb2xkLWdyYXktMTUwIjoiY29sb3ItY29sZC1ncmF5LTc1MCIpLGkuZmlsbFN0eWxlPSgwLG8uZ2V0SGV4Q29sb3JCeU5hbWUpKHRoaXMuX3RoZW1lPT09YS5TdGRUaGVtZS5MaWdodD8iY29sb3ItY29sZC1ncmF5LTU1MCI6ImNvbG9yLWNvbGQtZ3JheS0yMDAiKSxpLmZpbGxUZXh0KHIsbC1zLndpZHRoLzIsZS5tZWRpYVNpemUuaGVpZ2h0LTUtdSl9X2RyYXdQcmljZUxhYmVsKGUsdCxyLGk9KDAsby5nZXRIZXhDb2xvckJ5TmFtZSkodGhpcy5fdGhlbWU9PT1hLlN0ZFRoZW1lLkxpZ2h0PyJjb2xvci13aGl0ZSI6ImNvbG9yLWJsYWNrIikpe2NvbnN0IGw9ZS5jb250ZXh0LHM9TWF0aC5yb3VuZCh0KSsuNTtsLnRleHRCYXNlbGluZT0iYm90dG9tIixsLnNoYWRvd0NvbG9yPSJ0cmFuc3BhcmVudCIsbC5mb250PSI0MDAgMTJweCBzYW5zLXNlcmlmIjtjb25zdCBjPWwubWVhc3VyZVRleHQociksdT1jLndpZHRoKzgsZD0oMTctYy5mb250Qm91bmRpbmdCb3hBc2NlbnQpLzI7bC5iZWdpblBhdGgoKSxsLmZpbGxTdHlsZT1pLCgwLG4uZHJhd1JvdW5kUmVjdCkobCxzLXUvMixlLm1lZGlhU2l6ZS5oZWlnaHQtMTctLjUsdSwxNywyKSxsLmZpbGwoKSxsLmZpbGxTdHlsZT0id2hpdGUiLGwuZmlsbFRleHQocixzLWMud2lkdGgvMixlLm1lZGlhU2l6ZS5oZWlnaHQtLjUtZCl9fWNsYXNzIGN7Y29uc3RydWN0b3IoZSl7dGhpcy5fcmVuZGVyZXI9bmV3IHMoZSl9cmVuZGVyZXIoKXtyZXR1cm4gdGhpcy5fcmVuZGVyZXJ9ek9yZGVyKCl7cmV0dXJuInRvcCJ9dXBkYXRlKGUsdCl7dGhpcy5fcmVuZGVyZXIudXBkYXRlKHQsZSl9fWNsYXNzIHV7Y29uc3RydWN0b3IoZSx0PXt9KXt0aGlzLl9yZXF1ZXN0VXBkYXRlPW51bGwsdGhpcy5fY2hhcnQ9bnVsbCx0aGlzLl9zZXJpZXM9bnVsbCx0aGlzLl9sYXN0TW91c2VVcGRhdGU9bnVsbCx0aGlzLl9zZXRUaGVtZT1lPT57dGhpcy5fdGhlbWU9ZSx0aGlzLl9yZXF1ZXN0VXBkYXRlPy4oKX0sdGhpcy5fbW91c2VFdmVudEhhbmRsZXI9ZT0+e251bGw9PT10aGlzLl9jaGFydHx8dm9pZCAwPT09ZT8ucG9pbnQ/dGhpcy5fbGFzdE1vdXNlVXBkYXRlPW51bGw6dGhpcy5fbGFzdE1vdXNlVXBkYXRlPXt4OmUucG9pbnQueCx5OmUucG9pbnQueX0sdGhpcy5fcmVxdWVzdFVwZGF0ZT8uKCl9LHRoaXMuX3BvaW50cz1lLHRoaXMuX3RoZW1lPWkud2F0Y2hlZFRoZW1lLnZhbHVlKCksdGhpcy5fb3B0aW9ucz10LHRoaXMuX3BhbmVWaWV3cz1bbmV3IGModGhpcy5fdGhlbWUpXX11cGRhdGVBbGxWaWV3cygpe2lmKG51bGw9PT10aGlzLl9jaGFydHx8bnVsbD09PXRoaXMuX3NlcmllcylyZXR1cm47Y29uc3QgZT10aGlzLl9tYXBQb2ludHNUb0Nvb3JkaW5hdGVQb2ludHModGhpcy5fcG9pbnRzLHRoaXMuX2xhc3RNb3VzZVVwZGF0ZSx0aGlzLl9jaGFydCx0aGlzLl9zZXJpZXMpO3RoaXMuX3BhbmVWaWV3cy5mb3JFYWNoKCh0PT50LnVwZGF0ZSh0aGlzLl90aGVtZSxlKSkpfXBhbmVWaWV3cygpe3JldHVybiB0aGlzLl9wYW5lVmlld3N9YXR0YWNoZWQoe2NoYXJ0OmUsc2VyaWVzOnQscmVxdWVzdFVwZGF0ZTpyfSl7ZS5zdWJzY3JpYmVDcm9zc2hhaXJNb3ZlKHRoaXMuX21vdXNlRXZlbnRIYW5kbGVyKSxlLnN1YnNjcmliZUNsaWNrKHRoaXMuX21vdXNlRXZlbnRIYW5kbGVyKSx0aGlzLl9yZXF1ZXN0VXBkYXRlPXIsdGhpcy5fY2hhcnQ9ZSx0aGlzLl9zZXJpZXM9dCxpLndhdGNoZWRUaGVtZS5zdWJzY3JpYmUodGhpcy5fc2V0VGhlbWUpfWRldGFjaGVkKCl7dGhpcy5fY2hhcnQ/LnVuc3Vic2NyaWJlQ3Jvc3NoYWlyTW92ZSh0aGlzLl9tb3VzZUV2ZW50SGFuZGxlciksdGhpcy5fY2hhcnQ/LnVuc3Vic2NyaWJlQ2xpY2sodGhpcy5fbW91c2VFdmVudEhhbmRsZXIpLHRoaXMuX3JlcXVlc3RVcGRhdGU9bnVsbCx0aGlzLl9jaGFydD1udWxsLHRoaXMuX3Nlcmllcz1udWxsLGkud2F0Y2hlZFRoZW1lLnVuc3Vic2NyaWJlKHRoaXMuX3NldFRoZW1lKX1zZXRQb2ludHMoZSl7CnRoaXMuX3BvaW50cz1lLHRoaXMuX3JlcXVlc3RVcGRhdGU/LigpfV9nZXRQb2ludFJhbmdlKGUsdCl7Zm9yKGxldCByPTE7cjx0Lmxlbmd0aDtyKyspaWYodFtyLTFdLnRpbWU8PWUmJmU8PXRbcl0udGltZSlyZXR1cm5bdFtyLTFdLnRpbWUsZSx0W3JdLnRpbWVdO3JldHVybiBudWxsfV9tYXBQb2ludHNUb0Nvb3JkaW5hdGVQb2ludHMoZSx0LHIsbyl7Y29uc3R7aG92ZXJPZmZzZXQ6bj01fT10aGlzLl9vcHRpb25zLGE9ci50aW1lU2NhbGUoKSxpPW8uZGF0YSgpLGw9W107bGV0IHM9e2luZGV4Oi0xLGRpc3RhbmNlOjEvMH07Zm9yKGxldCByPTA7cjxlLmxlbmd0aDtyKyspe2NvbnN0e3ZhbHVlOmMsb3B0aW9uczp1fT1lW3JdLGQ9dGhpcy5fZ2V0UG9pbnRSYW5nZShjLGkpO2lmKG51bGw9PT1kKWNvbnRpbnVlO2NvbnN0W3AsbSxoXT1kLFM9YS50aW1lVG9Db29yZGluYXRlKHApLEU9YS50aW1lVG9Db29yZGluYXRlKGgpO2lmKG51bGw9PT1TfHxudWxsPT09RSljb250aW51ZTtjb25zdCBfPUUtUyxnPWgtcCxmPW0tcCxDPVMrTWF0aC5yb3VuZChfKmYvZyksVD1vLnByaWNlVG9Db29yZGluYXRlKDApO2lmKHQpe2NvbnN0IGU9TWF0aC5hYnModC54LUMpO01hdGguYWJzKHQueC1DKTxuJiZzLmRpc3RhbmNlPmUmJihzPXtpbmRleDpyLGRpc3RhbmNlOmV9KX1sLnB1c2goe3g6Qyx5OlQsaXNIb3ZlcmluZzohMSxvcHRpb25zOnV9KX1yZXR1cm4tMSE9PXMuaW5kZXgmJihsW3MuaW5kZXhdLmlzSG92ZXJpbmc9ITApLGx9fX0sMTQwMTQ4KGUsdCxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbyhlLHQscj0xNTAwLG89MjUwKXtjb25zdHtkYXRhOm4sc3RlcDphLG9yaWdpbmFsOmksc3RyaWtlUmFuZ2U6bD17bWluOm5bMF0sbWF4Om5bbi5sZW5ndGgtMV19fT1lLHM9bmV3IFNldChpKSxjPU1hdGgubWF4KDAsKGwubWluLW5bMF0pL2EpLHU9TWF0aC5tYXgoMCwobltuLmxlbmd0aC0xXS1sLm1heCkvYSksZD1NYXRoLm1heCgwLChsLm1heC1sLm1pbikvYSkscD1NYXRoLm1heCgxLE1hdGguY2VpbChjL28pKSxtPU1hdGgubWF4KDEsTWF0aC5jZWlsKHUvbykpLGg9TWF0aC5tYXgoMSxNYXRoLmNlaWwoZC9yKSk7cmV0dXJuIG4ubWFwKCgoZSxyKT0+cy5oYXMoZSl8fGU8bC5taW4mJnIlcD09MHx8ZT5sLm1heCYmciVtPT0wfHxlPj1sLm1pbiYmZTw9bC5tYXgmJnIlaD09MD97dGltZTplLHZhbHVlOnRbcl19Ont0aW1lOmV9KSl9ci5kKHQse21hcFRvU2VyaWVzRGF0YTooKT0+b30pfSw0ODAyODQoZSx0LHIpeyJ1c2Ugc3RyaWN0IjtyLmQodCx7T3B0aW9uc1NvdXJjZVRyYWNrRXZlbnRQcm92aWRlcjooKT0+aSx1c2VPcHRpb25zU291cmNlVHJhY2tFdmVudDooKT0+YX0pO3ZhciBvPXIoNzc5NDc0KTtjb25zdCBuPSgwLG8uY3JlYXRlQ29udGV4dCkobnVsbCk7ZnVuY3Rpb24gYSgpe2NvbnN0IGU9KDAsby51c2VDb250ZXh0KShuKTtpZihudWxsPT09ZSl0aHJvdyBuZXcgRXJyb3IoIk9wdGlvbnNTb3VyY2VUcmFja0V2ZW50Q29udGV4dCBpcyBub3QgaW5pdGlhbGl6ZWQuIEFsbCBvcHRpb25zIGZlYXR1cmVzIG11c3QgaGF2ZSBhIHNvdXJjZSB0byB0cmFjayBldmVudHMuIE1ha2Ugc3VyZSB0byB3cmFwIHlvdXIgY29tcG9uZW50cyBpbiA8T3B0aW9uc1NvdXJjZVRyYWNrRXZlbnRQcm92aWRlcj4gcHJvdmlkZXIuIik7cmV0dXJuIGV9ZnVuY3Rpb24gaShlKXtjb25zdHtjaGlsZHJlbjp0LHNvdXJjZTpyfT1lO3JldHVybiBvLmNyZWF0ZUVsZW1lbnQobi5Qcm92aWRlcix7dmFsdWU6cn0sdCl9fSw3Nzc2ODAoZSx0LHIpeyJ1c2Ugc3RyaWN0IjtyLmQodCx7dXNlR2V0U2VyaWVzOigpPT5hfSk7dmFyIG89cig3Nzk0NzQpLG49cigzNjM5NTgpO2Z1bmN0aW9uIGEoZSl7cmV0dXJuKDAsby51c2VNZW1vKSgoKCk9PigwLG4uYnVpbGRTZXJpZXMpKGUpKSxbZV0pfX0sODU5NjUyKGUsdCxyKXsidXNlIHN0cmljdCI7ci5kKHQse3VzZUluVGltZUlWRGF0YTooKT0+dX0pO3ZhciBvPXIoMjIxMDYxKSxuPXIoMjE0OTg3KSxhPXIoNTg5NzQ5KSxpPXIoNzc5NDc0KSxsPXIoNzIxODIzKSxzPXIoNDgwMjg0KTtjb25zdCBjPSgwLG8uZ2V0TG9nZ2VyKSgiT3B0aW9ucy5EZXRhaWxzLkluVGltZUlWIik7ZnVuY3Rpb24gdShlKXtjb25zdFt0LHJdPSgwLGkudXNlU3RhdGUpKHt0eXBlOiJsb2FkaW5nIn0pLG89KDAscy51c2VPcHRpb25zU291cmNlVHJhY2tFdmVudCkoKTtyZXR1cm4oMCxpLnVzZUVmZmVjdCkoKCgpPT57cih7dHlwZToibG9hZGluZyJ9KTtjb25zdCB0PW5ldyBBYm9ydENvbnRyb2xsZXI7cmV0dXJuKGFzeW5jIGU9Pnt0cnl7Y29uc3Qgbj1hd2FpdCBsLm9wdGlvbnNDaGFydGluZ1NlcnZpY2UubWFrZUluVGltZUlWUmVxdWVzdChlLGAke28udG9Mb3dlckNhc2UoKX1faW5fdGltZV9pdl9jaGFydGAsdC5zaWduYWwpO3Ioe3R5cGU6InN1Y2Nlc3MiLGRhdGE6bn0pfWNhdGNoKGUpe2lmKCgwLG4uaXNBYm9ydEVycm9yKShlKSlyZXR1cm47cih7dHlwZToiZXJyb3IiLGVycm9yOigwLGEuZXJyb3JUb1N0cmluZykoZSl9KSxlIGluc3RhbmNlb2YgbC5PQ1NIdHRwRXJyb3ImJiFlLmlzRXhwZWN0ZWRFcnJvciYmYy5sb2dFcnJvcihgT3B0aW9ucyBjaGFydGluZyBzZXJ2aWNlIGxvYWQgZGF0YSBlcnJvcjogJHsoMCxhLmVycm9yVG9TdHJpbmcpKGUpfWApfX0pKGUudW5kZXJseWluZyksKCk9PnQuYWJvcnQoKX0pLFtlLG9dKSx0fX0sMjU1ODkxKGUsdCxyKXsidXNlIHN0cmljdCI7ci5kKHQse3VzZVN0cmF0ZWd5Q2hhcnREYXRhOigpPT52fSk7dmFyIG89cig3NTU2MjcpLG49cigyMTQ5ODcpLGE9cig1ODk3NDkpLGk9cig3Nzk0NzQpLGw9cig3MjE4MjMpLHM9cig1MzQ0NDApLGM9cigxODUyNzEpLHU9cig2ODA3NTUpO2Z1bmN0aW9uIGQoZSl7cmV0dXJuIGlzTmFOKGUpfHxNYXRoLmFicyhlKT09PTEvMH12YXIgcD1yKDU1MTUwNSk7Y2xhc3MgbXtjb25zdHJ1Y3RvcihlLHQpe3RoaXMuX3hzPWUsdGhpcy5feXM9dH1hdChlKXtjb25zdCB0PXRoaXMuX3hzLmZpbmRJbmRleCgodD0+dD49ZSkpO2lmKC0xPT09dClyZXR1cm4gMDtpZih0aGlzLl94c1t0XT09PWUpcmV0dXJuIHRoaXMuX3lzW3RdO2NvbnN0IHI9dC0xCjtpZihyPDApcmV0dXJuIDA7Y29uc3Qgbz17eDp0aGlzLl94c1tyXSx5OnRoaXMuX3lzW3JdfSxuPXRoaXMuX3hzW3RdO3JldHVybih0aGlzLl95c1t0XS1vLnkpLyhuLW8ueHx8MSkqKGUtby54KStvLnl9fWZ1bmN0aW9uIGgoZSx0LHIpe2NvbnN0IG89bmV3IG0oZSx0KTtyZXR1cm4gci5tYXAoKGU9Pm8uYXQoZSkpKX1mdW5jdGlvbiBTKGUsdCl7cmV0dXJuIDA9PT1lfHwwPT09dD8wOmU+MD90PjA/MTotMTp0PjA/LTE6MX1mdW5jdGlvbiBFKGUsdCl7aWYoZS5sZW5ndGghPT10Lmxlbmd0aCl0aHJvdyBuZXcgRXJyb3IoImlucHV0IGFycmF5IGxlbmd0aHMgbXVzdCBtYXRjaCIpO2NvbnN0IHI9ZS5sZW5ndGg7aWYocjwyKXRocm93IG5ldyBFcnJvcigibnVtYmVyIG9mIGRhdGEgcG9pbnRzIGxlc3MgdGhhbiB0d28iKTtmb3IobGV0IHQ9MTt0PHI7Kyt0KWlmKGVbdF08PWVbdC0xXSl0aHJvdyBuZXcgRXJyb3IoIngtYXJyYXkgbm90IHN0cmljdGx5IGluY3JlYXNpbmciKTtpZigyPT09cil7Y29uc3Qgcj0odFsxXS10WzBdKS8oZVsxXS1lWzBdKTtyZXR1cm5bcixyXX1jb25zdCBvPW5ldyBBcnJheShyKTtsZXQgbj1lWzFdLWVbMF0sYT0odFsxXS10WzBdKS9uLGk9ZVsyXS1lWzFdLGw9KHRbMl0tdFsxXSkvaSxzPW4raSxjPShuK3MpL3MsdT0tbi9zO2lmKG9bMF09YyphK3UqbCxTKG9bMF0sYSk8MClvWzBdPTA7ZWxzZSBpZihTKGEsbCk8MCl7Y29uc3QgZT0zKmE7TWF0aC5hYnMob1swXSk+TWF0aC5hYnMoZSkmJihvWzBdPWUpfWZvcihsZXQgZD0xO2Q8ci0xOysrZClpZihkPjEmJihuPWksaT1lW2QrMV0tZVtkXSxzPW4raSxhPWwsbD0odFtkKzFdLXRbZF0pL2kpLG9bZF09MCxTKGEsbCk+MCl7Y29uc3QgZT0zKnM7Yz0ocytuKS9lLHU9KHMraSkvZTtjb25zdCB0PU1hdGgubWF4KE1hdGguYWJzKGEpLE1hdGguYWJzKGwpKSxyPU1hdGgubWluKE1hdGguYWJzKGEpLE1hdGguYWJzKGwpKSxwPWEvdCxtPWwvdDtvW2RdPXIvKGMqcCt1Km0pfWVsc2Ugb1tkXT0wO2lmKGM9LWkvcyx1PShpK3MpL3Msb1tyLTFdPWMqYSt1KmwsUyhvW3ItMV0sbCk8MClvW3ItMV09MDtlbHNlIGlmKFMoYSxsKTwwKXtjb25zdCBlPTMqbDtNYXRoLmFicyhvW3ItMV0pPk1hdGguYWJzKGUpJiYob1tyLTFdPWUpfXJldHVybiBvfWZ1bmN0aW9uIF8oZSx0KXtpZigwPT09ZS5sZW5ndGgpcmV0dXJuIDA7bGV0IHI9MCxvPWUubGVuZ3RoO2Zvcig7cjxvOyl7Y29uc3Qgbj1NYXRoLmZsb29yKChyK28pLzIpO2Vbbl08dD9yPW4rMTpvPW59cmV0dXJuIG99ZnVuY3Rpb24gZyhlLHQscixvKXtjb25zdCBuPW5ldyBBcnJheShvLmxlbmd0aCk7Zm9yKGxldCBhPTA7YTxlLmxlbmd0aC0xOysrYSl7Y29uc3QgaT1lW2ErMV0tZVthXSxsPXRbYSsxXS10W2FdLHM9KGwvaS1yW2FdKS9pLGM9KHJbYV0rclthKzFdLTIqbC9pKS8oaSppKSx1PV8obyxlW2FdKTtsZXQgZD1fKG8sZVthKzFdKTthPT09ZS5sZW5ndGgtMiYmb1tkXT09PWVbYSsxXSYmKytkO2NvbnN0IHA9by5zbGljZSh1LGQpLm1hcCgobz0+dFthXSsoby1lW2FdKSooclthXSsoby1lW2FdKSoocytjKihvLWVbYSsxXSkpKSkpO2ZvcihsZXQgZT0wO2U8cC5sZW5ndGg7KytlKW5bZSt1XT1wW2VdfXJldHVybiBufWZ1bmN0aW9uIGYoZSx0LHIpe3JldHVybiBnKGUsdCxFKGUsdCkscil9Y29uc3QgQz1lPT57aWYoIm51bWJlciI9PXR5cGVvZiBlKXJldHVybiBlO2NvbnN0IHQ9cGFyc2VGbG9hdChlKTtyZXR1cm4gaXNOYU4odCk/dm9pZCAwOnR9O2Z1bmN0aW9uIFQoZSl7cmV0dXJuIGUuZXZlcnkoKGU9PiJudW1iZXIiPT10eXBlb2YgZSkpfWZ1bmN0aW9uIHkoZSx0LHIsbixhLGkpe2xldCBsPSExO2Z1bmN0aW9uIHMoZSl7aWYoMD09PWUubGVuZ3RofHwhVChlKSlyZXR1cm4gdm9pZChsPSEwKTtjb25zdCBuPSgwLHAuZmluZFByZWNpc2lvbkJ5TWF4VmFsdWUpKGUpO3JldHVybntkYXRhOmYodCxlLHIpLGZvcm1hdHRlcjpuZXcgby5QcmljZUZvcm1hdHRlcih7cHJpY2VTY2FsZToxMCoqbn0pLHByZWNpc2lvbjpufX1yZXR1cm57YnJlYWtldmVuczplLnBheW9mZiYmZnVuY3Rpb24oZSl7Y29uc3QgdD1bXTtmb3IoY29uc3QgciBvZiBlWyJzcGVjaWFsLXBvaW50cyJdPz9bXSl7Y29uc3QgZT1DKHIueCk7Inplcm8iPT09ci50eXBlJiZ2b2lkIDAhPT1lJiZ0LnB1c2goZSl9cmV0dXJuIHR9KGUucGF5b2ZmKSxjb2xvcjppLGRlbHRhOmUuZGVsdGEmJnMoZS5kZWx0YS55KSxnYW1tYTplLmdhbW1hJiZzKGUuZ2FtbWEueSkscGF5b2ZmOmUucGF5b2ZmJiZmdW5jdGlvbihlKXtpZigwPT09ZS55Lmxlbmd0aHx8IVQoZS55KSlyZXR1cm4gdm9pZChsPSEwKTtjb25zdCBuPSgwLHAuZmluZFByZWNpc2lvbkJ5TWF4VmFsdWUpKGUueSksYT1lWyJzcGVjaWFsLXBvaW50cyJdPy5maW5kKChlPT4icGF5b2ZmLW1heCI9PT1lLnR5cGUpKT8ueSxpPWVbInNwZWNpYWwtcG9pbnRzIl0/LmZpbmQoKGU9PiJwYXlvZmYtbWluIj09PWUudHlwZSkpPy55O3JldHVybntkYXRhOmgodCxlLnksciksZm9ybWF0dGVyOm5ldyBvLlByaWNlRm9ybWF0dGVyKHtwcmljZVNjYWxlOjEwKipufSksbWF4OmEmJkMoYSksbWluOmkmJkMoaSkscHJlY2lzaW9uOm59fShlLnBheW9mZikscG5sOmUucG5sJiZmdW5jdGlvbihlKXtjb25zdCB0PXMoZS55KTtpZighdClyZXR1cm47Y29uc3Qgcj1lWyJzcGVjaWFsLXBvaW50cyJdPy5maW5kKChlPT4idW5kZXJseWluZyI9PT1lLnR5cGUpKT8ueTtyZXR1cm57Li4udCx1bmRlcmx5aW5nOnImJkMocil9fShlLnBubCkscHJvYmFiaWxpdGllczplLnByb2JhYmlsaXRpZXMmJmZ1bmN0aW9uKGUpe2lmKDAhPT1lLmxlbmd0aCYmVChlKSlyZXR1cm4gZih0LGUscik7bD0hMH0oZS5wcm9iYWJpbGl0aWVzKSxyaG86ZS5yaG8mJnMoZS5yaG8ueSksc29tZURhdGFVbmF2YWlsYWJsZTpsLHRoZXRhOmUudGhldGEmJnMoZS50aGV0YS55KSx2ZWdhOmUudmVnYSYmcyhlLnZlZ2EueSksd2luUmF0ZTpDKGUud2luUmF0ZSksbmFtZTpuLGlzQWN0aXZlOmF9fWZ1bmN0aW9uIFIoZSl7Y29uc3QgdD1lWyJtaW4tc3RlcCJdLHI9ZS54LG49ZnVuY3Rpb24oZSx0KXsKaWYoaXNOYU4odCl8fHQ8PTApcmV0dXJuIGU7Y29uc3Qgcj1bXTtmb3IobGV0IG89MDtvPGUubGVuZ3RoO28rKyl7Y29uc3Qgbj1lW29dLGE9ZVtvKzFdO2lmKGQobikpdGhyb3cgbmV3IEVycm9yKCJkaXN0cmlidXRlRXZlbmx5IGV4cGVjdCBvbmx5IHZhbGlkIG51bWJlciIpO2lmKG89PT1lLmxlbmd0aC0xKXtyLnB1c2gobik7YnJlYWt9aWYoZChhKSl0aHJvdyBuZXcgRXJyb3IoImRpc3RyaWJ1dGVFdmVubHkgZXhwZWN0IG9ubHkgdmFsaWQgbnVtYmVyIik7bGV0IGk9bjtkb3tyLnB1c2goaSksaSs9dCxpPU51bWJlcihpLnRvUHJlY2lzaW9uKDE1KSl9d2hpbGUodm9pZCAwIT09YSYmaTxhKX1yZXR1cm4gcn0ocix0KSxhPSgwLHMubnVtT2ZEZWNpbWFsUGxhY2VzKSh0KTtyZXR1cm57ZGF0YTpuLGRpc3BsYXlSYW5nZTplWyJkaXNwbGF5LXJhbmdlIl0sZm9ybWF0dGVyOm5ldyBvLlByaWNlRm9ybWF0dGVyKHtwcmljZVNjYWxlOjEwKiphfSksb3JpZ2luYWw6cixwcmVjaXNpb246YSxzdGVwOnQsc3RyaWtlUmFuZ2U6ZVsic3RyaWtlLXJhbmdlIl19fWZ1bmN0aW9uIGIoZSx0PTAsbz1bXSxuPVtdLGE9W10pe2NvbnN0IGk9ZVsid2hhdC1pZi1zY2VuYXJpb3MiXT8/W10sbD1lWyJ4LWF4aXMiXS54LHM9UihlWyJ4LWF4aXMiXSksZD17Y2hhcnRzOkFycmF5KGUuY2hhcnRzLmxlbmd0aCkseDpzLHdoYXRJZlNjZW5hcmlvczpBcnJheShpLmxlbmd0aCkuZmlsbChudWxsKS5tYXAoKCgpPT5BcnJheShlLmNoYXJ0cy5sZW5ndGgpKSksbmV0U3RyYXRlZ3k6dm9pZCAwfTtmb3IobGV0IHI9MDtyPGUuY2hhcnRzLmxlbmd0aDtyKyspe2NvbnN0IGM9dS5MSU5FX0NPTE9SU1thW3JdPz9yXTtkLmNoYXJ0c1tyXT15KGUuY2hhcnRzW3JdLGwscy5kYXRhLG9bcl0scj09PXQsYyk7Zm9yKGxldCBlPTA7ZTxpLmxlbmd0aDtlKyspZC53aGF0SWZTY2VuYXJpb3NbZV1bcl09eShpW2VdW3JdLGwscy5kYXRhLG5bZV0scj09PXQsYyl9cmV0dXJuIGVbIm5ldC1zdHJhdGVneSJdJiYoZC5uZXRTdHJhdGVneT15KGVbIm5ldC1zdHJhdGVneSJdLGwscy5kYXRhLGMudChudWxsLHZvaWQgMCxyKDk2MTkzKSksITEsdS5ORVRfU1RSQVRFR1lfTElORV9DT0xPUikpLGR9Y29uc3QgTz1bInBheW9mZiIsInBubCIsImRlbHRhIiwiZ2FtbWEiLCJ0aGV0YSIsInZlZ2EiLCJyaG8iXSxMPWwub3B0aW9uc0NoYXJ0aW5nU2VydmljZS5tYWtlU3RyYXRlZ2llc0NoYXJ0UmVxdWVzdC5iaW5kKGwub3B0aW9uc0NoYXJ0aW5nU2VydmljZSk7ZnVuY3Rpb24gdihlLHQscj1PLG89TCl7Y29uc3RbbCxzXT0oMCxpLnVzZVN0YXRlKShBKSxjPSgwLGkudXNlUmVmKShudWxsKTtyZXR1cm4oMCxpLnVzZUVmZmVjdCkoKCgpPT57KGFzeW5jKCk9PntjLmN1cnJlbnQmJmMuY3VycmVudC5hYm9ydCgpLGMuY3VycmVudD1uZXcgQWJvcnRDb250cm9sbGVyLHMoKGU9Pih7ZGF0YTplLmRhdGEsc3RhdGU6ImxvYWRpbmcifSkpKTt0cnl7Y29uc3Qgbj1hd2FpdCBvKHtzdHJhdGVnaWVzOltlXSx0eXBlczpyfSx0LGMuY3VycmVudC5zaWduYWwpO3Moe3N0YXRlOiJzdWNjZXNzIixkYXRhOmIobil9KX1jYXRjaChlKXsoMCxuLmlzQWJvcnRFcnJvcikoZSl8fHMoKHQ9Pih7c3RhdGU6ImVycm9yIixlcnJvcjooMCxhLmVycm9yVG9TdHJpbmcpKGUpLGRhdGE6dC5kYXRhfSkpKX19KSgpfSksW28sZSxyLHRdKSx7ZGF0YTpsLmRhdGEsZXJyb3I6ImVycm9yIj09PWwuc3RhdGUmJmwuZXJyb3IsbG9hZGluZzoibG9hZGluZyI9PT1sLnN0YXRlfX1mdW5jdGlvbiBBKCl7cmV0dXJue3N0YXRlOiJpbml0aWFsIixkYXRhOntjaGFydHM6W10sbmV0U3RyYXRlZ3k6dm9pZCAwLHdoYXRJZlNjZW5hcmlvczpbXSx4OntkYXRhOltdLGRpc3BsYXlSYW5nZTp2b2lkIDAsZm9ybWF0dGVyOm5ldyBvLlByaWNlRm9ybWF0dGVyLG9yaWdpbmFsOltdLHByZWNpc2lvbjowLHN0ZXA6MCxzdHJpa2VSYW5nZTp2b2lkIDB9fX19fSw2ODA3NTUoZSx0LHIpeyJ1c2Ugc3RyaWN0IjtyLmQodCx7TElORV9DT0xPUlM6KCk9Pm4sTkVUX1NUUkFURUdZX0xJTkVfQ09MT1I6KCk9PmF9KTt2YXIgbz1yKDUwNTU2KTtjb25zdCBuPVtvLmNvbG9yc1BhbGV0dGVbImNvbG9yLXR2LWJsdWUtNDAwIl0sby5jb2xvcnNQYWxldHRlWyJjb2xvci1pZ3VhbmEtZ3JlZW4tYTcwMCJdLG8uY29sb3JzUGFsZXR0ZVsiY29sb3ItdGFuLW9yYW5nZS1hNTAwIl0sby5jb2xvcnNQYWxldHRlWyJjb2xvci1za3ktYmx1ZS00MDAiXSxvLmNvbG9yc1BhbGV0dGVbImNvbG9yLWJlcnJ5LXBpbmstYTcwMCJdLG8uY29sb3JzUGFsZXR0ZVsiY29sb3ItYmFuYW5hLXllbGxvdy03MDAiXSxvLmNvbG9yc1BhbGV0dGVbImNvbG9yLW1pbnR5LWdyZWVuLWE0MDAiXSxvLmNvbG9yc1BhbGV0dGVbImNvbG9yLWJlcnJ5LXBpbmstYTIwMCJdLG8uY29sb3JzUGFsZXR0ZVsiY29sb3ItdHYtYmx1ZS1hMTAwIl0sby5jb2xvcnNQYWxldHRlWyJjb2xvci1ncmFwZXMtcHVycGxlLWE3MDAiXSxvLmNvbG9yc1BhbGV0dGVbImNvbG9yLXJpcGUtcmVkLWE0MDAiXSxvLmNvbG9yc1BhbGV0dGVbImNvbG9yLW1pbnR5LWdyZWVuLTUwMCJdLG8uY29sb3JzUGFsZXR0ZVsiY29sb3ItZ3JhcGVzLXB1cnBsZS1hMTAwIl0sby5jb2xvcnNQYWxldHRlWyJjb2xvci1kZWVwLWJsdWUtYTIwMCJdLG8uY29sb3JzUGFsZXR0ZVsiY29sb3ItdGFuLW9yYW5nZS04MDAiXV0sYT1vLmNvbG9yc1BhbGV0dGVbImNvbG9yLWNvbGQtZ3JheS01MDAiXTtuLnNsaWNlKDMpfSwyNTI4NjYoZSx0LHIpeyJ1c2Ugc3RyaWN0IjtyLmQodCx7RU1QVFlfVkFMVUU6KCk9Pm99KTtjb25zdCBvPSLigJQifSw1NTE1MDUoZSx0LHIpeyJ1c2Ugc3RyaWN0IjtyLmQodCx7ZmluZE1heFByZWNpc2lvbjooKT0+cyxmaW5kUHJlY2lzaW9uQnlNYXhWYWx1ZTooKT0+bCxmaW5kUHJlY2lzaW9uQnlNaW5WYWx1ZTooKT0+aSxnZXRSb3VuZE51bWJlcjooKT0+dX0pO3ZhciBvPXIoNzEyNzQ1KTtjb25zdCBuPU1hdGgucG93KDEwLC0xMik7ZnVuY3Rpb24gYShlLHQscixvPTIpe2xldCBhPWUsaT0wCjtmb3IobGV0IGU9MDtlPHIubGVuZ3RoO2UrKylNYXRoLmFicyhyW2VdKTxufHwoYT10KGEsTWF0aC5hYnMocltlXSkpLGk9TWF0aC5tYXgoaSxjKHJbZV0pLmxlbmd0aCkpO2lmKGE+PTEpcmV0dXJuIG87Y29uc3QgbD1jKGEpO2lmKGk9PT1sLmxlbmd0aCYmMT09PWwucmVwbGFjZSgvXjAqLywiIikubGVuZ3RoKXJldHVybiBsLmxlbmd0aDtmb3IobGV0IGU9MDtlPGwubGVuZ3RoO2UrKylpZigiMCIhPT1sW2VdKXJldHVybiBlK287cmV0dXJuIG99ZnVuY3Rpb24gaShlLHQ9Mil7cmV0dXJuIE1hdGgubWluKDEyLGEoMSxNYXRoLm1pbixlLHQpKX1mdW5jdGlvbiBsKGUsdD0yKXtyZXR1cm4gTWF0aC5taW4oMTIsYSgwLE1hdGgubWF4LGUsdCkpfWZ1bmN0aW9uIHMoZSl7bGV0IHQ9MDtmb3IobGV0IHI9MDtyPGUubGVuZ3RoO3IrKyl7Y29uc3Qgbz1jKGVbcl0pO3Q9TWF0aC5tYXgodCxvLmxlbmd0aCl9cmV0dXJuIE1hdGgubWluKDEyLHQpfWZ1bmN0aW9uIGMoZSl7cmV0dXJuIG5ldyBvLkJpZyhlKS50b0ZpeGVkKCkuc3BsaXQoIi4iKVsxXXx8IiJ9ZnVuY3Rpb24gdShlLHQpe2NvbnN0IHI9TWF0aC5wb3coMTAsdCk7cmV0dXJuIE1hdGgucm91bmQoKGUrTnVtYmVyLkVQU0lMT04pKnIpL3J9fSwzNzIwNjAoZSx0LHIpeyJ1c2Ugc3RyaWN0IjtyLmQodCx7Z2V0TW9zdFN1aXRhYmxlU2VyaWU6KCk9Pm59KTt2YXIgbz1yKDc5OTY1Mik7ZnVuY3Rpb24gbihlLHQ9MTQpe2lmKDA9PT1lLmxlbmd0aCl0aHJvdyBuZXcgRXJyb3IoIk5lZWQgYXQgbGVhc3Qgb25lIHNlcmllcy4iKTtjb25zdCByPSgwLG8uYWRkRGF5cykobmV3IERhdGUsdCk7bGV0IG49bnVsbCxhPW51bGw7Zm9yKGNvbnN0IHQgb2YgZSl7Y29uc3QgZT1NYXRoLmFicyh0LmV4cERhdGUuZ2V0VGltZSgpLXIuZ2V0VGltZSgpKTsobnVsbD09PWF8fGE+ZSkmJihhPWUsbj10KX1yZXR1cm4gbj8/ZVtlLmxlbmd0aC0xXX19LDM4OTY1NChlLHQscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG8oKXtyZXR1cm4iL29wdGlvbnMvIn1mdW5jdGlvbiBuKGUsdCl7cmV0dXJuYC9vcHRpb25zL3N0cmF0ZWdpZXMvaGFuZGJvb2svPyR7YShlLHQpfWB9ZnVuY3Rpb24gYShlLHQpe2lmKCJzdHJpbmciPT10eXBlb2YgdCl7Y29uc3Qgcj1uZXcgVVJMU2VhcmNoUGFyYW1zKHQpO3JldHVybiByLnNldCgic3ltYm9sIixlKSxyLnRvU3RyaW5nKCl9Y29uc3Qgcj1uZXcgVVJMU2VhcmNoUGFyYW1zKHtzeW1ib2w6ZX0pO2Zvcihjb25zdFtlLG9db2YgT2JqZWN0LmVudHJpZXModD8/e30pKXZvaWQgMCE9PW8mJnIuc2V0KGUsU3RyaW5nKG8pKTtyZXR1cm4gci50b1N0cmluZygpfXIuZCh0LHtnZXRIYW5kYm9va1BhdGg6KCk9Pm4sZ2V0SW5kZXhQYXRoOigpPT5vfSl9LDM2Mzk1OChlLHQscil7InVzZSBzdHJpY3QiO3IuZCh0LHtidWlsZFNlcmllczooKT0+cCxidWlsZFNlcmllc1BpY2tlckdyb3VwczooKT0+Yyxmb3JtYXRFeHBpcmF0aW9uRGF0ZTooKT0+bCxmb3JtYXRFeHBpcmF0aW9uRGF0ZUxvbmc6KCk9PnMsZ2V0RGF5c1VudGlsRXhwaXJhdGlvbjooKT0+ZCxnZXRTZXJpZXNTdHJpa2VzOigpPT5oLGdldFNlcmllc1VuZGVybHlpbmdzOigpPT5tLGlzQ29udGludW91c1NlcmllczooKT0+U30pO3ZhciBvPXIoNTgzMDM4KSxuPXIoNDAyMzkpLGE9cigxNjg4MjQpLGk9cig4OTMxMTUpO2Z1bmN0aW9uIGwoZSx0PSgwLGkuZ2V0TG9jYWxlSXNvKSgpKXtyZXR1cm4gbmV3IEludGwuRGF0ZVRpbWVGb3JtYXQodCx7eWVhcjoibnVtZXJpYyIsZGF5OiJudW1lcmljIixtb250aDoic2hvcnQifSkuZm9ybWF0KGUpfWZ1bmN0aW9uIHMoZSx0PSJsb25nIixyPSgwLGkuZ2V0TG9jYWxlSXNvKSgpKXtyZXR1cm4gZS5nZXRGdWxsWWVhcigpPT09KG5ldyBEYXRlKS5nZXRGdWxsWWVhcigpP25ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KHIse2RheToibnVtZXJpYyIsbW9udGg6dH0pLmZvcm1hdChlKTpuZXcgSW50bC5EYXRlVGltZUZvcm1hdChyLHt5ZWFyOiJudW1lcmljIixkYXk6Im51bWVyaWMiLG1vbnRoOnR9KS5mb3JtYXQoZSl9ZnVuY3Rpb24gYyhlKXtjb25zdCB0PVtdLHI9ZnVuY3Rpb24oZT0oMCxpLmdldExvY2FsZUlzbykoKSl7Y29uc3QgdD1uZXcgSW50bC5EYXRlVGltZUZvcm1hdChlLHtkYXk6Im51bWVyaWMifSk7cmV0dXJuIGU9PnQuZm9ybWF0KGUpfSgpLG89ZnVuY3Rpb24oZT0oMCxpLmdldExvY2FsZUlzbykoKSl7Y29uc3QgdD1uZXcgSW50bC5EYXRlVGltZUZvcm1hdChlLHt5ZWFyOiIyLWRpZ2l0In0pLHI9bmV3IEludGwuRGF0ZVRpbWVGb3JtYXQoZSx7bW9udGg6InNob3J0In0pO3JldHVybihlLG89ITEpPT5vP2Ake3IuZm9ybWF0KGUpfSAnJHt0LmZvcm1hdChlKX1gOnIuZm9ybWF0KGUpfSgpO2ZvcihsZXQgYT0wO2E8ZS5sZW5ndGg7YSsrKXtjb25zdCBpPWVbYV0sbD1lW2ErMV0scz1lW2EtMV0sYz10W3QubGVuZ3RoLTFdLHU9cihpLmV4cERhdGUpLGQ9KG49aS5leHBEYXRlLG5ldyBEYXRlKG4uZ2V0RnVsbFllYXIoKSxuLmdldE1vbnRoKCksMSkpLHA9aS5leHA9PT1sPy5leHB8fGkuZXhwPT09cz8uZXhwLG09ISFzJiZzLmV4cERhdGUuZ2V0RnVsbFllYXIoKSE9PWkuZXhwRGF0ZS5nZXRGdWxsWWVhcigpLGg9e3RpdGxlOnA/YCR7dX0gJHtpLmZhbWlseU5hbWV9YDp1LHZhbHVlOmkuaWQsdG9vbHRpcDppLmxhYmVsfTtjPy5pZD09PWQudG9JU09TdHJpbmcoKT9jLml0ZW1zLnB1c2goaCk6dC5wdXNoKHtpZDpkLnRvSVNPU3RyaW5nKCksaXRlbXM6W2hdLHRpdGxlOm8oZCxtKSxzdWJncm91cDptfSl9dmFyIG47cmV0dXJuIHR9ZnVuY3Rpb24gdShlLHQscil7Y29uc3Qgbj1sKHIpLGE9ZChyKSxpPSgwLG8uc3BsaXRTeW1ib2xOYW1lKShlKVsxXS5yZXBsYWNlKC8yMChcZFxkKS8sIiQxIik7cmV0dXJuYCR7bn0gKCR7YX0pICR7aT09PXQ/dDpgJHtpfSAke3R9YH1gfWZ1bmN0aW9uIGQoZSl7cmV0dXJuIE1hdGgubWF4KDAsKDAsbi5nZXRDYWxlbmRhckRheXNEaWZmKShlLG5ldyBEYXRlKSl9ZnVuY3Rpb24gcChlKXtjb25zdCB0PVtdO2Zvcihjb25zdCByIG9mIGUpZm9yKGNvbnN0IGUgb2Ygci5zZXJpZXMpe2NvbnN0IG89KDAsCmEuZ2V0RGF0ZUZyb21ZWVlZTU1ERCkoZS5leHApLG49ey4uLmUsZXhwRGF0ZTpvLGZhbWlseURlc2NyaXB0aW9uOnIuZGVzY3JpcHRpb24sZmFtaWx5TmFtZTpyLm5hbWUsbGFiZWw6dShlLnVuZGVybHlpbmcsci5uYW1lLG8pLHNob3J0SWQ6YCR7ZS5leHB9YH07dC5wdXNoKG4pfXJldHVybiB0LnNvcnQoKChlLHQpPT5lLmV4cC10LmV4cCkpLm1hcCgoKGUsdCxyKT0+KHsuLi5lLHNob3J0SWQ6ZS5leHA9PT1yW3QtMV0/LmV4cHx8ZS5leHA9PT1yW3QrMV0/LmV4cD9gJHtlLmV4cH0ke2Uucm9vdH1gOmAke2UuZXhwfWB9KSkpfWZ1bmN0aW9uIG0oZSl7Y29uc3QgdD1uZXcgU2V0O2Zvcihjb25zdCByIG9mIGUpdC5hZGQoci51bmRlcmx5aW5nKTtyZXR1cm4gQXJyYXkuZnJvbSh0KX1mdW5jdGlvbiBoKGUpe2NvbnN0IHQ9bmV3IFNldCxyPXt9O2Zvcihjb25zdCBvIG9mIGUpZm9yKGNvbnN0IGUgb2Ygby5zdHJpa2VzKXQuYWRkKGUpLHJbZV09KHJbZV0/PzApKzE7cmV0dXJue3N0cmlrZXNDb3VudDpyLHN0cmlrZXM6QXJyYXkuZnJvbSh0KS5zb3J0KCgoZSx0KT0+ZS10KSksc3RyaWtlc01hcDp0fX1mdW5jdGlvbiBTKGUpe3JldHVybigwLG8uc3BsaXRTeW1ib2xOYW1lKShlLnVuZGVybHlpbmcpWzFdIT09ZS5yb290fX0sODM0OTQzKGUsdCxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbyhlKXtsZXQgdCxyLG89bnVsbDtyZXR1cm5bZnVuY3Rpb24oLi4ubil7dD1uLHI9dGhpcyxudWxsPT09byYmKG89cmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgoKT0+e289bnVsbCxlLmFwcGx5KHIsdCl9KSkpfSwoKT0+e251bGwhPT1vJiYoY2FuY2VsQW5pbWF0aW9uRnJhbWUobyksbz1udWxsKX1dfXIuZCh0LHtyYWZUaHJvdHRsZTooKT0+b30pfSwzMzgxMTUoZSx0LHIpeyJ1c2Ugc3RyaWN0IjtyLmQodCx7RXJyb3JCb3VuZGFyeTooKT0+YX0pO3ZhciBvPXIoNzc5NDc0KTtjb25zdCBuPSgwLHIoMjIxMDYxKS5nZXRMb2dnZXIpKCJFcnJvckJvdW5kYXJ5Iik7Y2xhc3MgYSBleHRlbmRzIG8uQ29tcG9uZW50e2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLnN0YXRlPXtoYXNFcnJvcjohMX19Y29tcG9uZW50RGlkQ2F0Y2goZSl7dGhpcy5wcm9wcy5vbkVycm9yP3RoaXMucHJvcHMub25FcnJvcihlKTpuLmxvZ0Vycm9yKGUubWVzc2FnZSl9cmVuZGVyKCl7cmV0dXJuIHRoaXMuc3RhdGUuaGFzRXJyb3I/by5jcmVhdGVFbGVtZW50KG8uRnJhZ21lbnQsbnVsbCx0aGlzLnByb3BzLmZhbGxiYWNrKTp0aGlzLnByb3BzLndpdGhTdXNwZW5zZT9vLmNyZWF0ZUVsZW1lbnQoby5TdXNwZW5zZSx7ZmFsbGJhY2s6dGhpcy5wcm9wcy5mYWxsYmFja30sdGhpcy5wcm9wcy5jaGlsZHJlbik6by5jcmVhdGVFbGVtZW50KG8uRnJhZ21lbnQsbnVsbCx0aGlzLnByb3BzLmNoaWxkcmVuKX1zdGF0aWMgZ2V0RGVyaXZlZFN0YXRlRnJvbUVycm9yKGUpe3JldHVybntoYXNFcnJvcjohMH19fX0sMTgwMTk4KGUsdCxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbyhlKXtjb25zdCB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2xldCBvPW51bGwsbj0hMTtyZXR1cm4gUHJvbWlzZS5hbGwoW3IuZSg2NDY0NCkudGhlbihyLnQuYmluZChyLDc3OTQ3NCwxOSkpLFByb21pc2UuYWxsKFtyLmUoMzIzODcpLHIuZSg3MTMwMCldKS50aGVuKHIuYmluZChyLDU3MTMwMCkpLFByb21pc2UuYWxsKFtyLmUoMzYyMjIpLHIuZSg0NzU1MSksci5lKDcxNjMpLHIuZSgzMjM4Nyksci5lKDQ1MzIyKV0pLnRoZW4oci5iaW5kKHIsNzMyOTQ2KSldKS50aGVuKCgoW3IsYSxpXSk9PntufHwobz1hLmNyZWF0ZVJlYWN0Um9vdChyLmNyZWF0ZUVsZW1lbnQoaS5MaWdodHdlaWdodENoYXJ0UHJpY2VUaW1lVG9vbHRpcCx7Li4uZX0pLHQpKX0pKSwoKT0+e249ITAsdC5yZW1vdmUoKSxvPy51bm1vdW50KCl9fXIuZCh0LHtjcmVhdGVMaWdodHdlaWdodENoYXJ0UHJpY2VUaW1lVG9vbHRpcDooKT0+b30pfSw1ODk5MTUoZSx0LHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbyxuLGEsaSxsLHMsYyx1O3IuZCh0LHtPcHRpb25zVHJhY2tlcjooKT0+c30pLGZ1bmN0aW9uKGUpe2UuVG9wVG9vbGJhcj0idG9wIHRvb2xiYXIiLGUuTGVmdFRvb2xiYXI9ImxlZnQgdG9vbGJhciIsZS5Cb3R0b21Ub29sYmFyPSJib3R0b20gdG9vbGJhciIsZS5Cb3R0b21QYW5lbD0iYm90dG9tIHBhbmVsIixlLlJpZ2h0UGFuZWw9InJpZ2h0IHBhbmVsIixlLldhdGNobGlzdD0id2F0Y2hsaXN0IixlLk1hbmFnZUxheW91dD0ibWFuYWdlIGxheW91dCIsZS5Ib3RrZXk9ImhvdGtleSJ9KG98fChvPXt9KSksZnVuY3Rpb24oZSl7ZS5TeW1ib2xTZWFyY2g9InN5bWJvbCBzZWFyY2giLGUuSW50ZXJ2YWw9ImludGVydmFsIixlLkNoYXJ0U3R5bGU9ImNoYXJ0IHN0eWxlIixlLkNvbXBhcmU9ImNvbXBhcmUiLGUuSW5kaWNhdG9ycz0iaW5kaWNhdG9ycyIsZS5GaW5hbmNpYWxzPSJmaW5hbmNpYWxzIixlLkluZGljYXRvclRlbXBsYXRlcz0iaW5kaWNhdG9yIHRlbXBsYXRlcyIsZS5BbGVydD0iYWxlcnQiLGUuQmFyUmVwbGF5PSJiYXIgcmVwbGF5IixlLlVuZG89InVuZG8iLGUuUmVkbz0icmVkbyIsZS5MYXlvdXRUeXBlPSJsYXlvdXQgdHlwZSIsZS5NYW5hZ2VMYXlvdXRzPSJtYW5hZ2UgbGF5b3V0cyIsZS5DaGFydFNldHRpbmdzPSJjaGFydCBzZXR0aW5ncyIsZS5GdWxsc2NyZWVuTW9kZT0iZnVsbHNjcmVlbiBtb2RlIixlLlNuYXBzaG90PSJzbmFwc2hvdCIsZS5UZWxlZ3JhbVNoYXJlPSJ0ZWxlZ3JhbSBzaGFyZSIsZS5QdWJsaXNoPSJwdWJsaXNoIixlLkNvcHk9ImNvcHkiLGUuVG9wVG9vbGJhclRyYWRlQnV0dG9uPSJ0b3BfdG9vbGJhcl90cmFkZV9idXR0b24iLGUuQ3Vyc29ycz0iY3Vyc29ycyIsZS5UcmVuZExpbmVUb29scz0idHJlbmQgbGluZSB0b29scyIsZS5HYW5BbmRGaWJUb29scz0iZ2FuIGFuZCBmaWIgdG9vbHMiLGUuR2VvbWV0cmljU2hhcGVzPSJnZW9tZXRyaWMgc2hhcGVzIixlLkFubm90YXRpb25Ub29scz0iYW5ub3RhdGlvbiB0b29scyIsZS5QYXR0ZXJucz0icGF0dGVybnMiLGUuUHJlZGljdGlvblRvb2xzPSJwcmVkaWN0aW9uIHRvb2xzIiwKZS5JY29ucz0iaWNvbnMiLGUuTWVhc3VyZT0ibWVhc3VyZSIsZS5ab29tSW49Inpvb20gaW4iLGUuWm9vbU91dD0iem9vbSBvdXQiLGUuTWFnbmV0TW9kZT0ibWFnbmV0IG1vZGUiLGUuTWFnbmV0U25hcHM9Im1hZ25ldCBzbmFwcyIsZS5EcmF3aW5nTW9kZT0iZHJhd2luZyBtb2RlIixlLkxvY2s9ImxvY2siLGUuSGlkZURyYXdpbmdzPSJoaWRlIixlLlN5bmM9InN5bmMiLGUuUmVtb3ZlPSJyZW1vdmUiLGUuRmF2b3JpdGVUb29sYmFyPSJmYXZvcml0ZSB0b29sYmFyIixlLk9iamVjdFRyZWU9Im9iamVjdCB0cmVlIixlLkRheT0iMWQiLGUuRml2ZURheXM9IjVkIixlLk1vbnRoPSIxbSIsZS5UaHJlZU1vbnRocz0iM20iLGUuU2l4TW9udGhzPSI2bSIsZS5ZVEQ9Inl0ZCIsZS5ZZWFyPSIxeSIsZS5GaXZlWWVhcnM9IjV5IixlLkFsbD0iYWxsIixlLkdvVG89ImdvIHRvIixlLkRhdGVSYW5nZT0iZGF0ZSByYW5nZSIsZS5UaW1lem9uZT0idGltZXpvbmUiLGUuU2Vzc2lvbj0ic2Vzc2lvbiIsZS5BZGo9ImFkaiIsZS5QZXJjZW50PSJwZXJjZW50IixlLkxvZz0ibG9nIixlLkF1dG89ImF1dG8iLGUuTWF4aW1pemVDaGFydD0ibWF4aW1pemUgY2hhcnQiLGUuV2F0Y2hsaXN0PSJ3YXRjaGxpc3QiLGUuQWxlcnRzPSJhbGVydHMiLGUuRGF0YVdpbmRvdz0iZGF0YSB3aW5kb3ciLGUuSG90bGlzdD0iaG90bGlzdCIsZS5DYWxlbmRhcj0iY2FsZW5kYXIiLGUuQ2FsZW5kYXJEaWFsb2c9ImNhbGVuZGFyIGRpYWxvZyIsZS5VbmlvbkNoYXRzPSJjaGF0cyIsZS5PcmRlclBhbmVsPSJvcmRlciBwYW5lbCIsZS5ET009ImRvbSIsZS5IZWxwQ2VudGVyPSJoZWxwIGNlbnRlciIsZS5FeHBvcnQ9ImV4cG9ydCIsZS5NYWtlQUNvcHk9Im1ha2UgYSBjb3B5In0obnx8KG49e30pKSxmdW5jdGlvbihlKXtlLk1lbnU9Im1lbnUiLGUuT249Im9uIixlLk9mZj0ib2ZmIn0oYXx8KGE9e30pKSxmdW5jdGlvbihlKXtlLkNvcHk9ImNvcHkiLGUuU2hhcmU9InNoYXJlIn0oaXx8KGk9e30pKSxmdW5jdGlvbihlKXtsZXQgdCxyOyFmdW5jdGlvbihlKXtlLkZpbHRlclBpbGw9IkZJTFRFUl9QSUxMIixlLkZpbHRlclBpbGxSZXNldD0iRklMVEVSX1BJTExfUkVTRVQiLGUuRmlsdGVyUmVzZXRBbGw9IkZJTFRFUl9SRVNFVF9BTEwiLGUuRmlsdGVyUmVtb3ZlQWxsPSJGSUxURVJfUkVNT1ZFX0FMTCIsZS5GaWx0ZXJSZW1vdmVJbmFjdGl2ZT0iRklMVEVSX1JFTU9WRV9JTkFDVElWRSIsZS5BZGRGaWx0ZXI9IkFERF9GSUxURVIiLGUuRWRpdEZpbHRlcj0iRURJVF9GSUxURVIiLGUuRmlsdGVyUG9wb3ZlclJlc2V0PSJGSUxURVJfUE9QT1ZFUl9SRVNFVCIsZS5GaWx0ZXJQb3BvdmVyUHJlc2V0PSJGSUxURVJfUE9QT1ZFUl9QUkVTRVQiLGUuRmlsdGVyUG9wb3ZlckRlbGV0ZT0iRklMVEVSX1BPUE9WRVJfREVMRVRFIixlLkZpbHRlclBvcG92ZXJDdXN0b209IkZJTFRFUl9QT1BPVkVSX0NVU1RPTSIsZS5GaWx0ZXJQb3BvdmVyQXBwbHk9IkZJTFRFUl9QT1BPVkVSX0FQUExZIixlLlNlYXJjaEZpbHRlckRpYWxvZ09wZW5Gcm9tUGlsbD0iU0VBUkNIX0ZJTFRFUl9ESUFMT0dfT1BFTl9GUk9NX1BJTEwiLGUuU2VhcmNoRmlsdGVyRGlhbG9nQ2xpY2tGaWx0ZXI9IlNFQVJDSF9GSUxURVJfRElBTE9HX0NMSUNLX0ZJTFRFUiIsZS5TZWFyY2hGaWx0ZXJEaWFsb2dDaGFuZ2VHcm91cD0iU0VBUkNIX0ZJTFRFUl9ESUFMT0dfQ0hBTkdFX0dST1VQIixlLlNlYXJjaEZpbHRlckRpYWxvZ0ZpbHRlck9wdGlvbj0iU0VBUkNIX0ZJTFRFUl9ESUFMT0dfRklMVEVSX09QVElPTiIsZS5TZWFyY2hGaWx0ZXJEaWFsb2dGaWx0ZXJTb2x1dGlvbj0iU0VBUkNIX0ZJTFRFUl9ESUFMT0dfRklMVEVSX1NPTFVUSU9OIixlLlNlYXJjaEZpbHRlckRpYWxvZ0ZpbHRlck91dHNpZGU9IlNFQVJDSF9GSUxURVJfRElBTE9HX0ZJTFRFUl9PVVRTSURFIixlLlNlYXJjaEZpbHRlckRpYWxvZ0ZpbHRlckNsb3NlPSJTRUFSQ0hfRklMVEVSX0RJQUxPR19GSUxURVJfQ0xPU0UiLGUuU2VhcmNoRmlsdGVyRGlhbG9nRmlsdGVyTWVudUFwcGx5PSJTRUFSQ0hfRklMVEVSX0RJQUxPR19GSUxURVJfTUVOVV9BUFBMWSIsZS5DcmVhdGVFZGl0RmlsdGVyRGlhbG9nUmVzZXQ9IkNSRUFURV9FRElUX0ZJTFRFUl9ESUFMT0dfUkVTRVQiLGUuQ3JlYXRlRWRpdEZpbHRlckRpYWxvZ1NlbGVjdEFsbD0iQ1JFQVRFX0VESVRfRklMVEVSX0RJQUxPR19TRUxFQ1RfQUxMIixlLkNyZWF0ZUVkaXRGaWx0ZXJEaWFsb2dVbnNlbGVjdEFsbD0iQ1JFQVRFX0VESVRfRklMVEVSX0RJQUxPR19VTlNFTEVDVF9BTEwiLGUuQ3JlYXRlRWRpdEZpbHRlckRpYWxvZ0NhbmNlbD0iQ1JFQVRFX0VESVRfRklMVEVSX0RJQUxPR19DQU5DRUwiLGUuQ3JlYXRlRWRpdEZpbHRlckRpYWxvZ0FwcGx5PSJDUkVBVEVfRURJVF9GSUxURVJfRElBTE9HX0FQUExZIixlLkNyZWF0ZUVkaXRGaWx0ZXJEaWFsb2dGaWx0ZXJTb2x1dGlvbj0iQ1JFQVRFX0VESVRfRklMVEVSX0RJQUxPR19GSUxURVJfU09MVVRJT04iLGUuQ3JlYXRlRWRpdEZpbHRlckRpYWxvZ091dHNpZGU9IkNSRUFURV9FRElUX0ZJTFRFUl9ESUFMT0dfT1VUU0lERSIsZS5DcmVhdGVFZGl0RmlsdGVyRGlhbG9nQ2xvc2U9IkNSRUFURV9FRElUX0ZJTFRFUl9ESUFMT0dfQ0xPU0UiLGUuU2NyZWVuZXJWaWV3VHlwZT0iU0NSRUVORVJfVklFV19UWVBFIixlLlNlYXJjaENvbHVtbkRpYWxvZ09wZW5Gcm9tVGFibGVIZWFkZXI9IlNFQVJDSF9DT0xVTU5fRElBTE9HX09QRU5fRlJPTV9UQUJMRV9IRUFERVIiLGUuU2VhcmNoQ29sdW1uRGlhbG9nQ2xpY2tDb2x1bW49IlNFQVJDSF9DT0xVTU5fRElBTE9HX0NMSUNLX0NPTFVNTiIsZS5TZWFyY2hDb2x1bW5EaWFsb2dDbGVhckFsbD0iU0VBUkNIX0NPTFVNTl9ESUFMT0dfQ0xFQVJfQUxMIixlLlNlYXJjaENvbHVtbkRpYWxvZ1JlbW92ZUNvbHVtbj0iU0VBUkNIX0NPTFVNTl9ESUFMT0dfUkVNT1ZFX0NPTFVNTiIsZS5TZWFyY2hDb2x1bW5EaWFsb2dBcHBseT0iU0VBUkNIX0NPTFVNTl9ESUFMT0dfQVBQTFkiLGUuU2VhcmNoQ29sdW1uRGlhbG9nQ2FuY2VsPSJTRUFSQ0hfQ09MVU1OX0RJQUxPR19DQU5DRUwiLAplLlNlYXJjaENvbHVtbkRpYWxvZ091dHNpZGU9IlNFQVJDSF9DT0xVTU5fRElBTE9HX09VVFNJREUiLGUuU2VhcmNoQ29sdW1uRGlhbG9nQ2xvc2U9IlNFQVJDSF9DT0xVTU5fRElBTE9HX0NMT1NFIixlLlNlYXJjaENvbHVtbkRpYWxvZ0NoYW5nZUdyb3VwPSJTRUFSQ0hfQ09MVU1OX0RJQUxPR19DSEFOR0VfR1JPVVAiLGUuQ3JlYXRlRWRpdENvbHVtbkRpYWxvZ0FwcGx5PSJDUkVBVEVfRURJVF9DT0xVTU5fRElBTE9HX0FQUExZIixlLkNyZWF0ZUVkaXRDb2x1bW5EaWFsb2dDYW5jZWw9IkNSRUFURV9FRElUX0NPTFVNTl9ESUFMT0dfQ0FOQ0VMIixlLkNyZWF0ZUVkaXRDb2x1bW5EaWFsb2dPdXRzaWRlPSJDUkVBVEVfRURJVF9DT0xVTU5fRElBTE9HX09VVFNJREUiLGUuQ3JlYXRlRWRpdENvbHVtbkRpYWxvZ0Nsb3NlPSJDUkVBVEVfRURJVF9DT0xVTU5fRElBTE9HX0NMT1NFIixlLkNyZWF0ZUVkaXRDb2x1bW5Qb3BvdmVyTWVudUFwcGx5PSJDUkVBVEVfRURJVF9DT0xVTU5fUE9QT1ZFUl9NRU5VX0FQUExZIixlLkNyZWF0ZUVkaXRDb2x1bW5Qb3BvdmVyTWVudUNhbmNlbD0iQ1JFQVRFX0VESVRfQ09MVU1OX1BPUE9WRVJfTUVOVV9DQU5DRUwiLGUuU2NyZWVuQ2FyZFBvcHVsYXJTZWxlY3Q9IlNDUkVFTl9DQVJEX1BPUFVMQVJfU0VMRUNUIixlLkNvbHVtblNldFNlbGVjdD0iQ09MVU1OX1NFVF9TRUxFQ1QiLGUuSGVhZGVyQ29sbGFwc2U9IkhFQURFUl9DT0xMQVBTRSIsZS5GdWxsc2NyZWVuPSJGVUxMU0NSRUVOIixlLkV4cG9ydENTVj0iRVhQT1JUX0NTViIsZS5TY3JlZW5lclNldHRpbmdzT3BlbkZyb21CdXR0b249IlNDUkVFTkVSX1NFVFRJTkdTX09QRU5fRlJPTV9CVVRUT04iLGUuU2NyZWVuZXJTZXR0aW5nc0NsaWNrQXV0b1JlZnJlc2hPcHRpb249IlNDUkVFTkVSX1NFVFRJTkdTX0NMSUNLX0FVVE9fUkVGUkVTSF9PUFRJT04iLGUuU2NyZWVuZXJTZXR0aW5nc0NsaWNrQ29udmVydEN1cnJlbmN5T3B0aW9uPSJTQ1JFRU5FUl9TRVRUSU5HU19DTElDS19DT05WRVJUX0NVUlJFTkNZX09QVElPTiIsZS5TY3JlZW5lclNldHRpbmdzR3JvdXBCeUlzaW5Ub2dnbGVSZWd3YWxsT3Blbj0iU0VUVElOR1NfR1JPVVBfQllfSVNJTl9UT0dHTEVfUkVHV0FMTF9PUEVOIixlLkNvbHVtblNlYXJjaFN5bWJvbFJlZ3dhbGxPcGVuPSJDT0xVTU5fU0VBUkNIX1NZTUJPTF9SRUdXQUxMX09QRU4iLGUuQ29sdW1uQ29udGV4dE1lbnVTb3J0QXNjPSJDT0xVTU5fQ09OVEVYVF9NRU5VX1NPUlRfQVNDIixlLkNvbHVtbkNvbnRleHRNZW51U29ydERlc2M9IkNPTFVNTl9DT05URVhUX01FTlVfU09SVF9ERVNDIixlLkNvbHVtbkNvbnRleHRNZW51U29ydFJlZ3dhbGxPcGVuPSJDT0xVTU5fQ09OVEVYVF9NRU5VX1NPUlRfUkVHV0FMTF9PUEVOIixlLkNvbHVtbkNvbnRleHRNZW51TW92ZUxlZnQ9IkNPTFVNTl9DT05URVhUX01FTlVfTU9WRV9MRUZUIixlLkNvbHVtbkNvbnRleHRNZW51TW92ZVJpZ2h0PSJDT0xVTU5fQ09OVEVYVF9NRU5VX01PVkVfUklHSFQiLGUuQ29sdW1uQ29udGV4dE1lbnVNb3ZlVG9UaGVFbmQ9IkNPTFVNTl9DT05URVhUX01FTlVfTU9WRV9UT19USEVfRU5EIixlLkNvbHVtbkNvbnRleHRNZW51TW92ZVRvVGhlU3RhcnQ9IkNPTFVNTl9DT05URVhUX01FTlVfTU9WRV9UT19USEVfU1RBUlQiLGUuQ29sdW1uQ29udGV4dE1lbnVSZW1vdmVDb2x1bW49IkNPTFVNTl9DT05URVhUX01FTlVfUkVNT1ZFX0NPTFVNTiIsZS5Db2x1bW5Db250ZXh0TWVudUNoYW5nZVBhcmFtPSJDT0xVTU5fQ09OVEVYVF9NRU5VX0NIQU5HRV9QQVJBTSIsZS5Tb3J0U2VsZWN0T3BlbkZyb21CdXR0b249IlNPUlRfU0VMRUNUX09QRU5fRlJPTV9CVVRUT04iLGUuU29ydFNlbGVjdENsaWNrQ29sdW1uPSJTT1JUX1NFTEVDVF9DTElDS19DT0xVTU4iLGUuU2NyZWVuZXJNYW51YWxSZWZyZXNoT3B0aW9uPSJTQ1JFRU5FUl9NQU5VQUxfUkVGUkVTSF9PUFRJT04iLGUuTWFya2V0UHJpbWFyeUxpc3RpbmdUb2dnbGU9Ik1BUktFVF9QUklNQVJZX0xJU1RJTkdfVE9HR0xFIixlLk1hcmtldENoYW5nZU9wdGlvbj0iTUFSS0VUX0NIQU5HRV9PUFRJT04iLGUuTWFya2V0U2VsZWN0TXVsdGlwbGU9Ik1BUktFVF9TRUxFQ1RfTVVMVElQTEUiLGUuT3BlblNjcmVlbmVyPSJPUEVOX1NDUkVFTkVSIixlLkNoYW5nZVN0YW5kYWxvbmVUeXBlPSJDSEFOR0VfU1RBTkRBTE9ORV9UWVBFIixlLlRhYmxlQ29udGV4dE1lbnVBZGRTeW1ib2xUb1dhdGNobGlzdD0iVEFCTEVfQ09OVEVYVF9NRU5VX0FERF9TWU1CT0xfVE9fV0FUQ0hMSVNUIixlLlRhYmxlUm93QWRkU3ltYm9sVG9XYXRjaGxpc3Q9IlRBQkxFX1JPV19BRERfU1lNQk9MX1RPX1dBVENITElTVCIsZS5XYXRjaGxpc3RBcHBsaWVkU2Nhbj0iV0FUQ0hMSVNUX0FQUExJRURfU0NBTiIsZS5XYXRjaGxpc3RQb3BvdmVyT3Blbj0iV0FUQ0hMSVNUX1BPUE9WRVJfT1BFTiIsZS5TY3JlZW5BY3Rpb25zRHJvcGRvd25Jc09wZW49IlNDUkVFTkVSX01FTlVfT1BFTiIsZS5TY3JlZW5BY3Rpb25zRHJvcGRvd25SZWNlbnRTY3JlZW49Ik9QRU5fUkVDRU5UTFlfVVNFRCIsZS5TYXZlZFNjcmVlblNoYXJlPSJTQVZFRF9TQ1JFRU5fU0hBUkUiLGUuU2hhcmVkU2NyZWVuT3Blbj0iU0hBUkVEX1NDUkVFTl9PUEVOIixlLlNoYXJlZFNjcmVlbkNvcHk9IlNIQVJFRF9TQ1JFRU5fQ09QWSIsZS5TYXZlZFNjcmVlbkF1dG9zYXZlPSJTQVZFRF9TQ1JFRU5fQVVUT1NBVkUiLGUuU2F2ZWRTY3JlZW5NYWtlQ29weT0iU0FWRURfU0NSRUVOX01BS0VfQ09QWSIsZS5TYXZlU2NyZWVuPSJTQVZFX1NDUkVFTiIsZS5DcmVhdGVTY3JlZW49IkNSRUFURV9TQ1JFRU4iLGUuRmlsdGVyQ3VzdG9tUGFyYW1BcHBseT0iRklMVEVSX0NVU1RPTV9QQVJBTV9BUFBMWSIsZS5Db2x1bW5DdXN0b21QYXJhbUFwcGx5PSJDT0xVTU5fQ1VTVE9NX1BBUkFNX0FQUExZIixlLlNjcmVlblVuZG89IlNDUkVFTl9VTkRPIixlLlNjcmVlblJlZG89IlNDUkVFTl9SRURPIixlLlNjcmVlbkNvbHVtbkFycm93U29ydD0iU0NSRUVOX0NPTFVNTl9BUlJPV19TT1JUIiwKZS5TY3JlZW5Db2x1bW5Tb3J0UmVnd2FsbE9wZW49IlNDUkVFTl9DT0xVTU5fU09SVF9SRUdXQUxMX09QRU4iLGUuUmVnaXN0cmF0aW9uQm90dG9tQmFyQ2xpY2tSZWdpc3Rlcj0iUkVHSVNUUkFUSU9OX0JPVFRPTV9CQVJfQ0xJQ0tfUkVHSVNURVIiLGUuU2NyZWVuZXJTYXZlQXM9IlNDUkVFTkVSX1NBVkVfQVMiLGUuUGluZVNjcmVlbmVyU2VsZWN0V2F0Y2hsaXN0PSJQSU5FX1NDUkVFTkVSX1NFTEVDVF9XQVRDSExJU1QiLGUuUGluZVNjcmVlbmVyU2VsZWN0SW5kaWNhdG9yPSJQSU5FX1NDUkVFTkVSX1NFTEVDVF9JTkRJQ0FUT1IiLGUuUGluZVNjcmVlbmVyQ2xpY2tTY2FuPSJQSU5FX1NDUkVFTkVSX0NMSUNLX1NDQU4iLGUuUGluZVNjcmVlbmVyQ2xpY2tTdG9wU2Nhbj0iUElORV9TQ1JFRU5FUl9DTElDS19TVE9QX1NDQU4iLGUuUGluZVNjcmVlbmVyRG93bmxvYWRSZXN1bHRzQXNDU1Y9IlBJTkVfU0NSRUVORVJfRE9XTkxPQURfUkVTVUxUU19BU19DU1YiLGUuUGluZVNjcmVlbmVyU2F2ZVJlc3VsdHNBc1dhdGNobGlzdD0iUElORV9TQ1JFRU5FUl9TQVZFX1JFU1VMVFNfQVNfV0FUQ0hMSVNUIixlLlBpbmVTY3JlZW5lclJlc3VsdHNBc1dhdGNobGlzdFN1Y2Nlc3NmdWxseVNhdmVkPSJQSU5FX1NDUkVFTkVSX1JFU1VMVFNfQVNfV0FUQ0hMSVNUX1NVQ0NFU1NGVUxMWV9TQVZFRCIsZS5QaW5lU2NyZWVuZXJBYm91dD0iUElORV9TQ1JFRU5FUl9BQk9VVCIsZS5TY3JlZW5lckFpU3RhcnQ9IlNDUkVFTkVSX0FJX1NUQVJUIixlLlNjcmVlbmVyQWlFeHBsYW5hdGlvbj0iU0NSRUVORVJfQUlfRVhQTEFOQVRJT04iLGUuU2NyZWVuZXJBaUdlbmVyYXRlRmlsdGVycz0iU0NSRUVORVJfQUlfR0VORVJBVEVfRklMVEVSUyIsZS5TY3JlZW5lckFpU3RvcD0iU0NSRUVORVJfQUlfU1RPUCIsZS5TY3JlZW5lckFpUG9wdWxhclNlbGVjdD0iU0NSRUVORVJfQUlfUE9QVUxBUl9TRUxFQ1QifSh0PWUuQnV0dG9ufHwoZS5CdXR0b249e30pKSxmdW5jdGlvbihlKXtlLlNjcm9sbERlcHRoPSJTQ1JPTExfREVQVEgifShyPWUuU2Nyb2xsfHwoZS5TY3JvbGw9e30pKX0obHx8KGw9e30pKSxmdW5jdGlvbihlKXtsZXQgdCxyOyFmdW5jdGlvbihlKXtlLkRldGFpbHNXaWRnZXQ9IkRFVEFJTFNfV0lER0VUIixlLk1vcmVEaWFsb2c9Ik1PUkVfRElBTE9HIixlLlByb2R1Y3REaWFsb2c9IlBST0RVQ1RfRElBTE9HIixlLlByb2R1Y3RQYWdlPSJQUk9EVUNUX1BBR0UiLGUuU3ltYm9sUGFnZVRhYj0iU1lNQk9MX1BBR0VfVEFCIixlLlN5bWJvbFNlYXJjaD0iU1lNQk9MX1NFQVJDSCIsZS5PcHRpb25zV2Vidmlldz0iT1BUSU9OU19XRUJWSUVXIn0odD1lLlNvdXJjZXx8KGUuU291cmNlPXt9KSksZnVuY3Rpb24oZSl7ZS5Ccm9rZXJDb25uZWN0PSJCUk9LRVJfQ09OTkVDVCIsZS5Ccm9rZXJTZWxlY3Q9IkJST0tFUl9TRUxFQ1QiLGUuQnVpbGRlckZ1bGxzY3JlZW5Nb2RlPSJCVUlMREVSX0ZVTExTQ1JFRU5fTU9ERSIsZS5CdWlsZGVyVGFicz0iQlVJTERFUl9UQUJTIixlLkNvbm5lY3RCcm9rZXJCdXR0b249IkNPTk5FQ1RfQlJPS0VSX0JVVFRPTiIsZS5Db3B5U2hhcmVkU3RyYXRlZ3k9IkNPUFlfU0hBUkVEX1NUUkFURUdZIixlLkNyZWF0ZVN0cmF0ZWd5VGVtcGxhdGVCdXR0b249IkNSRUFURV9TVFJBVEVHWV9URU1QTEFURV9CVVRUT04iLGUuRHJhZ1N0cmF0ZWd5Q2hhcnRQb3NpdGlvblBvaW50PSJEUkFHX1NUUkFURUdZX0NIQVJUX1BPU0lUSU9OX1BPSU5UIixlLkdyZWVrU2VsZWN0PSJHUkVFS19TRUxFQ1QiLGUuTmV0U3RyYXRlZ3lDaGFydD0iTkVUX1NUUkFURUdZX0NIQVJUIixlLk9wZW5GdWxsc2NyZWVuVGFibGVCdXR0b249Ik9QRU5fRlVMTFNDUkVFTl9UQUJMRV9CVVRUT04iLGUuT3B0aW9uc0NoYWluQWRkQ29sdW1uPSJPUFRJT05TX0NIQUlOX0FERF9DT0xVTU4iLGUuT3B0aW9uc0NoYWluRXhwYW5kUm93PSJPUFRJT05TX0NIQUlOX0VYUEFORF9ST1ciLGUuT3B0aW9uc0NoYWluSW52b2tlT3JkZXI9Ik9QVElPTlNfQ0hBSU5fSU5WT0tFX09SREVSIixlLk9wdGlvbnNDaGFpbk1hbnVhbERhdGVSYW5nZVNlbGVjdD0iT1BUSU9OU19DSEFJTl9NQU5VQUxfREFURV9SQU5HRV9TRUxFQ1QiLGUuT3B0aW9uc0NoYWluTWFudWFsU3RyaWtlUmFuZ2VTZWxlY3Q9Ik9QVElPTlNfQ0hBSU5fTUFOVUFMX1NUUklLRV9SQU5HRV9TRUxFQ1QiLGUuT3B0aW9uc0NoYWluT3Blbj0iT1BUSU9OU19DSEFJTl9PUEVOIixlLk9wdGlvbnNDaGFpblJlbW92ZUNvbHVtbj0iT1BUSU9OU19DSEFJTl9SRU1PVkVfQ09MVU1OIixlLk9wdGlvbnNDaGFpblNlbGVjdFNlcmllcz0iT1BUSU9OU19DSEFJTl9TRUxFQ1RfU0VSSUVTIixlLk9wdGlvbnNDaGFpblNlbGVjdFN0cmlrZXM9Ik9QVElPTlNfQ0hBSU5fU0VMRUNUX1NUUklLRVMiLGUuT3B0aW9uc0NoYWluU3BlY2lmaWNEYXRlc1NlbGVjdD0iT1BUSU9OU19DSEFJTl9TUEVDSUZJQ19EQVRFU19TRUxFQ1QiLGUuT3B0aW9uc0NoYWluU3BlY2lmaWNTdHJpa2VzU2VsZWN0PSJPUFRJT05TX0NIQUlOX1NQRUNJRklDX1NUUklLRVNfU0VMRUNUIixlLk9wdGlvbnNDaGFpblRpbWVTcGVudD0iT1BUSU9OU19DSEFJTl9USU1FX1NQRU5UIixlLlBvc2l0aW9uVmlzaWJpbGl0eUJ1dHRvbj0iUE9TSVRJT05fVklTSUJJTElUWV9CVVRUT04iLGUuU2lnbmluV2l0aEZlYXR1cmU9IlNJR05JTl9XSVRIX0ZFQVRVUkUiLGUuU3ByZWFkZXhGaWx0ZXJDaGFuZ2U9IlNQUkVBREVYX0ZJTFRFUl9DSEFOR0UiLGUuU3RyYXRlZ2llc0dyb3VwPSJTVFJBVEVHSUVTX0dST1VQIixlLlN0cmF0ZWd5QWRkUG9zaXRpb25CdXR0b249IlNUUkFURUdZX0FERF9QT1NJVElPTl9CVVRUT04iLGUuU3RyYXRlZ3lBZGp1c3REaXNjbG9zdXJlPSJTVFJBVEVHWV9BREpVU1RfRElTQ0xPU1VSRSIsZS5TdHJhdGVneUNoYXJ0RXJyb3I9IlNUUkFURUdZX0NIQVJUX0VSUk9SIixlLlN0cmF0ZWd5Q2hhcnRTaGFyaW5nPSJTVFJBVEVHWV9DSEFSVF9TSEFSSU5HIixlLlN0cmF0ZWd5RmluZGVyQ3JlYXRlU3RyYXRlZ3k9IlNUUkFURUdZX0ZJTkRFUl9DUkVBVEVfU1RSQVRFR1kiLAplLlN0cmF0ZWd5TGlzdFNldHRpbmdzQnV0dG9uPSJTVFJBVEVHWV9MSVNUX1NFVFRJTkdTX0JVVFRPTiIsZS5TdHJhdGVneU1vZFBvc2l0aW9uQ2hhaW49IlNUUkFURUdZX01PRF9QT1NJVElPTl9DSEFJTiIsZS5TdHJhdGVneU1vZFBvc2l0aW9uRXhwPSJTVFJBVEVHWV9NT0RfUE9TSVRJT05fRVhQIixlLlN0cmF0ZWd5TmFtZURpc2Nsb3N1cmU9IlNUUkFURUdZX05BTUVfRElTQ0xPU1VSRSIsZS5TdHJhdGVneVNldHRpbmdzRGlzY2xvc3VyZT0iU1RSQVRFR1lfU0VUVElOR1NfRElTQ0xPU1VSRSIsZS5TdHJhdGVneVNoYXJlPSJTVFJBVEVHWV9TSEFSRSIsZS5TdHJhdGVneVZpc2liaWxpdHlCdXR0b249IlNUUkFURUdZX1ZJU0lCSUxJVFlfQlVUVE9OIixlLlN5bWJvbFNlYXJjaERpYWxvZz0iU1lNQk9MX1NFQVJDSF9ESUFMT0ciLGUuU3luY092ZXJsYXlDaGFydD0iU1lOQ19PVkVSTEFZX0NIQVJUIixlLlZpc2l0U2hhcmVkU3RyYXRlZ3k9IlZJU0lUX1NIQVJFRF9TVFJBVEVHWSIsZS5Wb2xhdGlsaXR5U2VsZWN0U2VyaWVzPSJWT0xBVElMSVRZX1NFTEVDVF9TRVJJRVMiLGUuV2hhdElmU2NlbmFyaW9BZGQ9IldIQVRfSUZfU0NFTkFSSU9fQUREIixlLldoYXRJZlNjZW5hcmlvRGVsZXRlPSJXSEFUX0lGX1NDRU5BUklPX0RFTEVURSIsZS5XaGF0SWZTY2VuYXJpb0VkaXQ9IldIQVRfSUZfU0NFTkFSSU9fRURJVCIsZS5XaGF0SWZTY2VuYXJpb1NlbGVjdD0iV0hBVF9JRl9TQ0VOQVJJT19TRUxFQ1QifShyPWUuRWxlbWVudHx8KGUuRWxlbWVudD17fSkpfShzfHwocz17fSkpLGZ1bmN0aW9uKGUpe2xldCB0OyFmdW5jdGlvbihlKXtlLkZhdm9yaXRlU3RhdGU9ImZhdm9yaXRlIHN0YXRlIixlLlJlbW92ZUZyb21GYXZvcml0ZXM9InJlbW92ZSBmcm9tIGZhdm9yaXRlcyIsZS5BZGRUb0Zhdm9yaXRlcz0iYWRkIHRvIGZhdm9yaXRlcyIsZS5PcGVuRHJhd2VyPSJvcGVuIGRyYXdlciIsZS5DbG9zZURyYXdlcj0iY2xvc2UgZHJhd2VyIixlLk9wZW5TcGxpdFZpZXc9Im9wZW4gc3BsaXQgdmlldyIsZS5DbG9zZVNwbGl0Vmlldz0iY2xvc2Ugc3BsaXQgdmlldyIsZS5Nb3ZlU3BsaXRWMT0ibW92ZV9zcGxpdF92MSIsZS5Nb3ZlU3BsaXRWMj0ibW92ZV9zcGxpdF92MiIsZS5Nb3ZlT3ZlcmxheVYxPSJtb3ZlX292ZXJsYXlfdjEiLGUuTW92ZU92ZXJsYXlWMj0ibW92ZV9vdmVybGF5X3YyIn0odD1lLkFjdGlvblR5cGV8fChlLkFjdGlvblR5cGU9e30pKX0oY3x8KGM9e30pKSxmdW5jdGlvbihlKXtsZXQgdDshZnVuY3Rpb24oZSl7ZS5DbGljaz0iY2xpY2siLGUuU2hvdz0ic2hvdyJ9KHQ9ZS5UeXBlfHwoZS5UeXBlPXt9KSl9KHV8fCh1PXt9KSl9LDc5OTY1MihlLHQscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG8oZSx0KXtjb25zdCByPW5ldyBEYXRlKGUpO3JldHVybiByLnNldE1vbnRoKHIuZ2V0TW9udGgoKSt0KSxyfWZ1bmN0aW9uIG4oZSx0KXtjb25zdCByPW5ldyBEYXRlKGUpO3JldHVybiByLnNldERhdGUoci5nZXREYXRlKCkrNyp0KSxyfWZ1bmN0aW9uIGEoZSx0KXtjb25zdCByPW5ldyBEYXRlKGUpO3JldHVybiByLnNldERhdGUoci5nZXREYXRlKCkrdCkscn1mdW5jdGlvbiBpKGUsdCl7Y29uc3Qgcj1uZXcgRGF0ZShlKTtyZXR1cm4gci5zZXRNaW51dGVzKHIuZ2V0TWludXRlcygpK3QpLHJ9ci5kKHQse2FkZERheXM6KCk9PmEsYWRkTWludXRlczooKT0+aSxhZGRNb250aHM6KCk9Pm8sYWRkV2Vla3M6KCk9Pm59KX0sNDAyMzkoZSx0LHIpeyJ1c2Ugc3RyaWN0IjtyLmQodCx7Zm9ybWF0Q2FsZW5kYXJEYXlzRGlmZjooKT0+aSxnZXRDYWxlbmRhckRheXNEaWZmOigpPT5ufSk7dmFyIG89cigxODUyNzEpO2Z1bmN0aW9uIG4oZSx0LHIpe2NvbnN0IG89bmV3IERhdGUodCksbj1uZXcgRGF0ZShlKSxpPXI/MDo2MCooYShvKS1hKG4pKSoxZTM7cmV0dXJuIHI/KG8uc2V0VVRDSG91cnMoMTIsMCwwLDApLG4uc2V0VVRDSG91cnMoMTIsMCwwLDApKTooby5zZXRIb3VycygxMiwwLDAsMCksbi5zZXRIb3VycygxMiwwLDAsMCkpLChsPShuLmdldFRpbWUoKS1vLmdldFRpbWUoKS1pKS84NjRlNSk8MD9NYXRoLmNlaWwobCk6TWF0aC5mbG9vcihsKTt2YXIgbH1mdW5jdGlvbiBhKGUpe3JldHVybiAxNSotTWF0aC5yb3VuZChlLmdldFRpbWV6b25lT2Zmc2V0KCkvMTUpfWZ1bmN0aW9uIGkoZSl7aWYoMD09PWUpcmV0dXJuIG8udChudWxsLHZvaWQgMCxyKDYxNDQ1MCkpO2lmKDE9PT1lKXJldHVybiBvLnQobnVsbCx2b2lkIDAscig5NDA0ODMpKTtpZigtMT09PWUpcmV0dXJuIG8udChudWxsLHZvaWQgMCxyKDk2NTU3MykpO2NvbnN0IHQ9TWF0aC5hYnMoZSksbj1vLnQobnVsbCx7cGx1cmFsOiIlZCBkYXlzIixjb3VudDp0fSxyKDU1MDI2KSkucmVwbGFjZSgiJWQiLFN0cmluZyh0KSk7cmV0dXJuIGU+MT9vLnQobnVsbCx7Y29udGV4dDoidGltZV9yYW5nZSJ9LHIoNDkwNzQwKSkucmVwbGFjZSgiJXMiLG4pOm8udChudWxsLHtjb250ZXh0OiJ0aW1lX3JhbmdlIn0scig1MDI2OTIpKS5yZXBsYWNlKCIlcyIsbil9fSw0NzMyMDAoZSl7ZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDE4IDE4IiB3aWR0aD0iMTgiIGhlaWdodD0iMTgiPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZD0ibTMuODMzIDguNTE1LjI4LjM0IDMuNSA0IC43Ni0uNjYtMi43OC0zLjE3aDguNHYtMS4wMWgtOC40bDIuNzgtMy4xNi0uNzYtLjY2LTMuNSA0LS4yOC4zM3YtLjAxWiIvPjwvc3ZnPid9fV0pOw=="}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/en.95114.3b57335a3d1cb4c80bdd.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:12.980Z","timestamp":1785148032980,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/en.95114.3b57335a3d1cb4c80bdd.js HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:12 GMT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a61b1a7-6fa\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Thu, 23 Jul 2026 06:16:07 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/23/2026 10:17:24\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 2b2e8bda8259e15d559243b207ff0a03\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":1786,"size_decoded":1551,"mime_type":"application/javascript; charset=utf-8","magic":"Unicode text, UTF-8 text, with very long lines (1784), with no line terminators","md5":"b387ba60284a5ea232d8b146d9a92222","sha1":"b0e7409a69216356392ad22b0802cfb4f3264701","sha256":"ede33045a90b91e44e7924729039086ba1b6c0c80af85a0270d6bfbd73b16016","sha512":"edb4fe9a9cef5244ac53909f955bd5b705ae3d7c47b9b1f9a4324774d86b8c6bd769cc14e2ed495e65651937070330be7df4571f581c873e655b1782f152180d","ssdeep":"","tlshash":"b731f01bf01032e9aff2a232725aec70bc1474d810f3c5c95ab7b716da17e6c4976688","first_seen":"2026-07-23T13:54:09.147041Z","last_seen":"2026-07-27T12:53:06.239074Z","times_seen":289,"resource_available":true,"data":"KHNlbGYud2VicGFja0NodW5rdHJhZGluZ3ZpZXc9c2VsZi53ZWJwYWNrQ2h1bmt0cmFkaW5ndmlld3x8W10pLnB1c2goW1s5NTExNF0sezgxOTA3OCh0KXt0LmV4cG9ydHM9WyIzTSJdfSwyNzIwOTgodCl7dC5leHBvcnRzPVsiM1kiXX0sOTk1MDY2KHQpe3QuZXhwb3J0cz1bIjEwWSJdfSw4MzI3MzModCl7dC5leHBvcnRzPVsiMU0iXX0sOTM4MTAwKHQpe3QuZXhwb3J0cz1bIjFEIl19LDQ5MjEzNSh0KXt0LmV4cG9ydHM9WyIxVyJdfSw3NzAzMDModCl7dC5leHBvcnRzPVsiMVkiXX0sOTM0Nzc3KHQpe3QuZXhwb3J0cz1bIjJZIl19LDgyODU1KHQpe3QuZXhwb3J0cz1bIjVEIl19LDQ0NjU2MCh0KXt0LmV4cG9ydHM9WyI1WSJdfSw2ODA3Nih0KXt0LmV4cG9ydHM9WyI2TSJdfSwzODg3NzAodCl7dC5leHBvcnRzPVsiQ2hhcnQgaW1hZ2UgY29waWVkIHRvIGNsaXBib2FyZCB7ZW1vaml9Il19LDgzNDgyMih0KXt0LmV4cG9ydHM9WyJDaGFydCBpbWFnZSBlbWJlZCBjb2RlIGNvcGllZCB0byBjbGlwYm9hcmQge2Vtb2ppfSJdfSwxNjE1MjgodCl7dC5leHBvcnRzPVsiQ2xpY2sgdG8gc2V0IGEgcG9pbnQiXX0sMjMzNjkwKHQpe3QuZXhwb3J0cz1bIkFsbCJdfSwyOTY0NzEodCl7dC5leHBvcnRzPVsiRG91YmxlLWNsaWNrIGFueSBlZGdlIHRvIHJlc2V0IGxheW91dCBncmlkIl19LDY0MTE2MSh0KXt0LmV4cG9ydHM9WyJEb3VibGUtY2xpY2sgdG8gZmluaXNoIHBhdGgiXX0sNTgwOTg1KHQpe3QuZXhwb3J0cz1bIkRvdWJsZS1jbGljayB0byBmaW5pc2ggcG9seWxpbmUiXX0sMTM3MTQ5KHQpe3QuZXhwb3J0cz1bIkRvdWJsZS10YXAgYW55IGVkZ2UgdG8gcmVzZXQgbGF5b3V0IGdyaWQiXX0sODIxMjQ4KHQpe3QuZXhwb3J0cz1bIkhvdGxpc3RzIl19LDU4MjMwMyh0KXt0LmV4cG9ydHM9WyJIb2xkIHtrZXl9IGZvciB0ZW1wb3JhcnkgZHJhd2luZyJdfSw5NDQ3MDgodCl7dC5leHBvcnRzPVsiSGVhZHMgdXAg4oCUIHRoZSBhbmNob3JlZCB0ZXh0IHRvb2wgd2lsbCBiZSByZW1vdmVkIHNvb24uIFVzZSB0aGUgdGV4dCB0b29sIHdpdGggdGhlIGFuY2hvciBvcHRpb24gc3dpdGNoZWQgb24gdG8gZ2V0IHRoZSBzYW1lIHJlc3VsdHMuIl19LDIyMjkodCl7dC5leHBvcnRzPVsiTGluayB0byB0aGUgY2hhcnQgaW1hZ2UgY29waWVkIHRvIGNsaXBib2FyZCB7ZW1vaml9Il19LDczMDkzNSh0KXt0LmV4cG9ydHM9WyJNb3ZlIHRoZSBwb2ludCB0byBwb3NpdGlvbiB0aGUgYW5jaG9yIHRoZW4gdGFwIHRvIHBsYWNlIl19LDQ3NTI5OSh0KXt0LmV4cG9ydHM9WyJQcmVzcyBhbmQgaG9sZCB7a2V5fSB3aGlsZSB6b29taW5nIHRvIG1haW50YWluIHRoZSBjaGFydCBwb3NpdGlvbiJdfSwzOTc3ODgodCl7dC5leHBvcnRzPVsiV2F0Y2hsaXN0Il19LDcxNjA2Nih0KXt0LmV4cG9ydHM9WyJXaWRnZXRzIl19LDQyMjM2OSh0KXt0LmV4cG9ydHM9WyJZVEQiXX0sNDg1NDIwKHQpe3QuZXhwb3J0cz1bIlllYXIgdG8gZGF0ZSJdfSwxMDMwMzAodCl7dC5leHBvcnRzPVsie3N0cn0gZGF5Iiwie3N0cn0gZGF5cyJdfSwyMTA1NzQodCl7dC5leHBvcnRzPVsie3N0cn0gaG91ciIsIntzdHJ9IGhvdXJzIl19LDY5NDYxNyh0KXt0LmV4cG9ydHM9WyJ7c3RyfSBtb250aCIsIntzdHJ9IG1vbnRocyJdfSw0MzkwKHQpe3QuZXhwb3J0cz1bIntzdHJ9IG1pbnV0ZSIsIntzdHJ9IG1pbnV0ZXMiXX0sNjQ0NjI1KHQpe3QuZXhwb3J0cz1bIntzdHJ9IHdlZWsiLCJ7c3RyfSB3ZWVrcyJdfSwyMTY0MDIodCl7dC5leHBvcnRzPVsie3N0cn0geWVhciIsIntzdHJ9IHllYXJzIl19fV0pOw=="}},"time_used":4,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":4,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/39166.21343209d8750da3693a.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.108Z","timestamp":1785148034108,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/39166.21343209d8750da3693a.js HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a608293-15be\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Wed, 22 Jul 2026 08:42:59 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/22/2026 11:01:21\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: c28790ce36215b1efd100bab4d77a19d\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":5566,"size_decoded":3492,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (3066)","md5":"b68d046060944bd28bdaa7f0e942ac50","sha1":"d67bd155c5a81d6207a36c06d87e373a2d1274d9","sha256":"ddee550aa6471222ab57b074664f8cbb7c653a66cda78327bc070e5ec00115bf","sha512":"3cef94486ec2c6ca58ba870ecb861078fc7582080cab43eb1197124b05e744d9e7cd1d3fd61274210e0e79f3823865041f7ed106e3157d5d9965a576c67ce742","ssdeep":"96:xAWBjuVYfVYcU4pp0hv+CN8fhLV4QJF2KBzo3s/t7ooT9e+N0Q0ZsJgqGq/uA:qWBDUI0hv+1hjF2KzSwk340t2JrGqt","tlshash":"12b1f898b3a0780c2127507f91376f29bf1d7e98241d5871f43cecae309ea969335e26","first_seen":"2026-07-22T16:00:00.545232Z","last_seen":"2026-07-27T12:48:39.769648Z","times_seen":107,"resource_available":true,"data":"KHNlbGYud2VicGFja0NodW5rdHJhZGluZ3ZpZXc9c2VsZi53ZWJwYWNrQ2h1bmt0cmFkaW5ndmlld3x8W10pLnB1c2goW1szOTE2Nl0sezMxMjEyMihlKXtlLmV4cG9ydHM9eyJ0YWJsZXQtc21hbGwtYnJlYWtwb2ludCI6IihtYXgtd2lkdGg6IDQ0MHB4KSIsaXRlbToiaXRlbS1ZUlcwSnNEZCIsc2hvcnRjdXQ6InNob3J0Y3V0LVlSVzBKc0RkIixsb2FkaW5nOiJsb2FkaW5nLVlSVzBKc0RkIixpY29uOiJpY29uLVlSVzBKc0RkIn19LDkzOTE2NihlLHQsYSl7InVzZSBzdHJpY3QiO2Eucih0KSxhLmQodCx7Z2V0VG9vbFNldDooKT0+an0pO3ZhciBuPWEoOTMwMjMxKSxyPWEoNzc5NDc0KSxvPWEoNDM4NTM5KSxpPWEoMTg1MjcxKSxsPWEoMTg2MDk3KSxzPWEoMzQ1MTUxKSxjPWEoMjM1NzI0KSxkPWEoMzEyMzA2KTtjb25zdCB1PSgwLHMuaG90S2V5U2VyaWFsaXplKSh7a2V5czpbKDAsYy5odW1hblJlYWRhYmxlTW9kaWZpZXJzKShjLk1vZGlmaWVycy5BbHQsITEpLCJBIl0sdGV4dDoiezB9ICsgezF9In0pO2Z1bmN0aW9uIG0oZSl7cmV0dXJuIHIuY3JlYXRlRWxlbWVudChsLlRvb2xiYXJDb2xsYXBzaWJsZUJ1dHRvbix7Li4uZSxpY29uOmQsdGV4dDppLnQobnVsbCx2b2lkIDAsYSgxNjE3MzUpKSx0b29sdGlwOmkudChudWxsLHtjb250ZXh0OiJ0b29sYmFyX2FsZXJ0X3Rvb2x0aXAifSxhKDQ4NjM2MSkpLGlzT3BlbmVkOmUuaXNPcGVuZWQsImRhdGEtdG9vbHRpcC1ob3RrZXkiOnV9KX1mdW5jdGlvbiBoKCl7KDAsby5zaG93R29Ub1RyYWRpbmdWaWV3UmVmZXJyYWxEaWFsb2cpKHtmZWF0dXJlOiJhbGVydHMifSl9ZnVuY3Rpb24gcChlKXtyZXR1cm4gci5jcmVhdGVFbGVtZW50KG0sey4uLmUsb25DbGljazpofSl9dmFyIGc9YSg5MDY2ODMpO2Z1bmN0aW9uIHcoKXsoMCxvLnNob3dHb1RvVHJhZGluZ1ZpZXdSZWZlcnJhbERpYWxvZykoe2ZlYXR1cmU6InNhdmVsb2FkIn0pfWZ1bmN0aW9uIGIoZSl7cmV0dXJuIHIuY3JlYXRlRWxlbWVudChnLlRvb2xXaWRnZXRTYXZlTG9hZFZpZXcsey4uLmUsaXNBdXRoZW50aWNhdGVkOiExLGlzUHJvY2Vzc2luZzohMSx3YXNDaGFuZ2VzOiEwLGhpZGVNZW51OiEwLG9uU2F2ZUNoYXJ0OncsaXNOZXdWaWV3OigwLG4uaXNGZWF0dXJlc2V0RW5hYmxlZCkoInNob3dfbmV3X21lbnVfaXRlbXNfaW5fY2hhcnRfbWVudXMiKX0pfXZhciBfPWEoNjU5MzY1KSxmPWEoOTE0NDg3KSx2PWEubihmKSxFPWEoMTUzNzM0KSx5PWEoMjc2MDE5KSxrPWEoMzg3MjMxKSxTPWEoNzU0MTgwKSxUPWEoOTcxNjU5KSxDPWEoODUwMTA4KSxNPWEoMTk5MTcyKSxCPWEoNTY5Mzk4KSxGPWEoMzEyMTIyKTtjb25zdCBSPSgwLGsubWVyZ2VUaGVtZXMpKEUuREVGQVVMVF9QT1BVUF9NRU5VX0lURU1fVEhFTUUsRik7ZnVuY3Rpb24gVyhlLHQpe3dpbmRvdy5wYXJlbnQhPT13aW5kb3cmJndpbmRvdy5wYXJlbnQucG9zdE1lc3NhZ2Uoe25hbWU6ZSxkZXRhaWw6dH0sIioiKX1mdW5jdGlvbiBEKGUpe3JldHVybiBCb29sZWFuKGUuY2hhcnRXaWRnZXQubW9kZWwpfWNvbnN0IE49KDAsQi5pc0ZlYXR1cmVFbmFibGVkKSgidGVsZWdyYW1fbWluaV9hcHBfc2hhcmVfc25hcHNob3RfdXNlX2ZhbGxiYWNrIik7ZnVuY3Rpb24gUChlKXtjb25zdHtzZXJ2ZXJTbmFwc2hvdDp0LGNsaWVudFNuYXBzaG90Om59PWUsW28sbF09KDAsci51c2VTdGF0ZSkoITEpLHM9KDAsVC51c2VJc01vdW50ZWQpKCksYz0oMCxyLnVzZUNhbGxiYWNrKSgoYXN5bmMoKT0+e2lmKCFEKHdpbmRvdykpcmV0dXJuO2NvbnN0IGU9d2luZG93LmNoYXJ0V2lkZ2V0Lm1vZGVsKCkubWFpblNlcmllcygpLHQ9ZS5xdW90ZXMoKTtpZighdCl0aHJvdyBuZXcgRXJyb3IoIlF1b3RlcyBkYXRhIG1pc3NpbmcgZm9yIHRlbGVncmFtIG1lc3NhZ2UiKTtXKCJ0ZWxlZ3JhbS1zaGFyZS1sYXN0LXByaWNlIix7Y3VycmVuY3k6dC5jdXJyZW5jeV9jb2RlfHwiIixzeW1ib2xOYW1lOmUuZ2V0U3ltYm9sTmFtZSgpLGxhc3RQcmljZTp0Lmxhc3RfcHJpY2UsbGFzdFByaWNlVGltZTp0LmxwX3RpbWUsc3ltYm9sOnRbInN5bWJvbC1wcmltYXJ5bmFtZSJdPz9lLmdldFN5bWJvbE5hbWUoKSxpbnRlcnZhbDplLmludGVydmFsKCl8fCIxIn0pfSksW10pLGQ9KDAsci51c2VDYWxsYmFjaykoKGFzeW5jKCk9Pnt0cnl7Y29uc3QgZT1hd2FpdCBuZXcgUHJvbWlzZSgoZT0+e3RyeXtjb25zdCB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpO2lmKHQud2lkdGg9MSx0LmhlaWdodD0xLCF0LnRvQmxvYilyZXR1cm4gdm9pZCBlKCExKTt0LnRvQmxvYigodD0+e2UoQm9vbGVhbih0JiYiaW1hZ2UvanBlZyI9PT10LnR5cGUpKX0pLCJpbWFnZS9qcGVnIil9Y2F0Y2h7ZSghMSl9fSkpO2lmKE58fCFlKXtyZXR1cm4gVygidGVsZWdyYW0tc2hhcmUtc25hcHNob3QiLGF3YWl0IHQoKSksITB9aWYoIUQod2luZG93KSlyZXR1cm4hMTtjb25zdCBhPXdpbmRvdy5jaGFydFdpZGdldC5tb2RlbCgpLm1haW5TZXJpZXMoKS5nZXRTeW1ib2xOYW1lKCkscj1hd2FpdCBuKCksbz0oMCxCLmlzRmVhdHVyZUVuYWJsZWQpKCJ0ZWxlZ3JhbV9taW5pX2FwcF9yZWR1Y2Vfc25hcHNob3RfcXVhbGl0eSIpPy4zOi44LGk9YXdhaXQgYXN5bmMgZnVuY3Rpb24oZSx0PS44KXtyZXR1cm4gbmV3IFByb21pc2UoKChhLG4pPT57ZS50b0Jsb2IoKGU9PntpZihudWxsPT09ZSlyZXR1cm4gdm9pZCBuKG5ldyBFcnJvcigiRmFpbGVkIHRvIGNyZWF0ZSBCbG9iIikpO2NvbnN0IHQ9bmV3IEZpbGVSZWFkZXI7dC5vbmxvYWRlbmQ9YXN5bmMoKT0+e3RyeXtjb25zdCBlPXQucmVzdWx0O2lmKCJzdHJpbmciIT10eXBlb2YgZSl0aHJvdyBuZXcgRXJyb3IoIlVuZXhwZWN0ZWQgcmVhZGVyIHJlc3VsdCIpO2NvbnN0IG49ZS5zcGxpdCgiLCIpWzFdO2Eobil9Y2F0Y2goZSl7bihlKX19LHQub25lcnJvcj0oKT0+e24obmV3IEVycm9yKCJGYWlsZWQgdG8gcmVhZCBibG9iIGFzIGRhdGEgVVJMIikpfSx0LnJlYWRBc0RhdGFVUkwoZSl9KSwiaW1hZ2UvanBlZyIsdCl9KSl9KHIuY2FudmFzLG8pO3JldHVybiBXKCJ0ZWxlZ3JhbS1zaGFyZS1zbmFwc2hvdC1iYXNlNjQiLHtjb250ZW50OmksCnN5bWJvbDphfSksITB9ZmluYWxseXtzLmN1cnJlbnQmJihsKCExKSwoMCx5Lmdsb2JhbENsb3NlTWVudSkoKSl9fSksW3Qsbl0pO3JldHVybiByLmNyZWF0ZUVsZW1lbnQoci5GcmFnbWVudCxudWxsLHIuY3JlYXRlRWxlbWVudChNLlRvb2xXaWRnZXRNZW51U3VtbWFyeSxudWxsLGkudChudWxsLHZvaWQgMCxhKDI5NjQ1NykpKSwhKDAsQi5pc0ZlYXR1cmVFbmFibGVkKSgidGVsZWdyYW1fbWluaV9hcHBfZGlzYWJsZV9zaGFyZV9zbmFwc2hvdCIpJiZyLmNyZWF0ZUVsZW1lbnQoQy5BY2Nlc3NpYmxlTWVudUl0ZW0se3JvbGU6InJvdyIsImRhdGEtbmFtZSI6InNoYXJlLWNoYXJ0LWltYWdlIixsYWJlbDpyLmNyZWF0ZUVsZW1lbnQoUy5MYWJlbFdpdGhMb2FkZXIse2lzTG9hZGluZzpvfSxpLnQobnVsbCx2b2lkIDAsYSg4NzA2NzgpKSksb25DbGljazooKT0+e2woITApLGQoKX0sZG9udENsb3NlUG9wdXA6ITAsaXNEaXNhYmxlZDpvLHNob3J0Y3V0OnZvaWQgMCxjbGFzc05hbWU6digpKG8mJkYubG9hZGluZyksdGhlbWU6Un0pLCEoMCxCLmlzRmVhdHVyZUVuYWJsZWQpKCJ0ZWxlZ3JhbV9taW5pX2FwcF9kaXNhYmxlX3NoYXJlX2xhc3RfcHJpY2UiKSYmci5jcmVhdGVFbGVtZW50KEMuQWNjZXNzaWJsZU1lbnVJdGVtLHtyb2xlOiJyb3ciLCJkYXRhLW5hbWUiOiJzaGFyZS1sYXN0LXByaWNlIixsYWJlbDppLnQobnVsbCx2b2lkIDAsYSg1NDAwNDIpKSxvbkNsaWNrOmMsc2hvcnRjdXQ6dm9pZCAwLHRoZW1lOlJ9KSl9dmFyIHg9YSg3NzEyODUpLEE9YSg5OTU3MTkpLEw9YSg2MDk1MjgpLFU9YSgxMTczMTMpO2NvbnN0IHo9KDAsQi5pc0ZlYXR1cmVFbmFibGVkKSgidGVsZWdyYW1fbWluaV9hcHBfc2hhcmVfc25hcHNob3RfdXNlX2ZhbGxiYWNrIik7ZnVuY3Rpb24gSShlKXtjb25zdFt0LGFdPSgwLHIudXNlU3RhdGUpKCExKSxuPSgwLFQudXNlSXNNb3VudGVkKSgpLG89KDAsci51c2VDYWxsYmFjaykoKGFzeW5jKCk9PnthKCEwKSx6P2F3YWl0IGUuc2VydmVyU25hcHNob3QoKTphd2FpdCBlLmNsaWVudFNuYXBzaG90KCksbi5jdXJyZW50JiZhKCExKX0pLFtlLnNlcnZlclNuYXBzaG90LGUuY2xpZW50U25hcHNob3RdKTtyZXR1cm4gci5jcmVhdGVFbGVtZW50KEEuVG9vbFdpZGdldEJ1dHRvbix7aWQ6ZS5pZCxjbGFzc05hbWU6ZS5jbGFzc05hbWUsaXNEaXNhYmxlZDp0LG9uQ2xpY2s6byx0aXRsZTplLnRvb2x0aXAsaWNvbjplLmljb259KX12YXIgSj1hKDIxNjA4MyksTz1hKDg1ODIzNik7Y29uc3QgVj0oMCxfLmJpbmRTY3JlZW5zaG90KSgoZnVuY3Rpb24oZSl7cmV0dXJuKDAsVS5pc09uTW9iaWxlQXBwUGFnZSkoImFueSIpP3IuY3JlYXRlRWxlbWVudChJLHsuLi5lLGljb246T30pOnIuY3JlYXRlRWxlbWVudCh4LlRvb2xiYXJNZW51QnV0dG9uLHtjb250ZW50OnIuY3JlYXRlRWxlbWVudChBLlRvb2xXaWRnZXRCdXR0b24se3RhZzoiZGl2IixpZDplLmlkLGNsYXNzTmFtZTplLmNsYXNzTmFtZSxpY29uOk99KSxkcmF3ZXJQb3NpdGlvbjoiQm90dG9tIixkcmF3ZXJCcmVha3BvaW50OkwuRGlhbG9nQnJlYWtwb2ludHMuVGFibGV0U21hbGwsYXJyb3c6ITEsb25DbGljazpmdW5jdGlvbigpeygwLEoudHJhY2tCdXR0b25DbGljaykoInRvcCB0b29sYmFyIiwidGVsZWdyYW0gc2hhcmUiKX0sdG9vbHRpcDplLnRvb2x0aXAsbWVudVJvbGU6ImdyaWQifSxyLmNyZWF0ZUVsZW1lbnQoUCx7Li4uZX0pKX0pKTt2YXIgWT1hKDMzMDcyMSk7ZnVuY3Rpb24gaigpe3JldHVybnsuLi4oMCxZLmdldFJlc3RyaWN0ZWRUb29sU2V0KSgpLEFsZXJ0UmVmZXJyYWw6KDAsbi5pc0ZlYXR1cmVzZXRFbmFibGVkKSgiaGVhZGVyX2Zha2VfZmVhdHVyZXNfYnV0dG9ucyIpP3A6dm9pZCAwLFNhdmVMb2FkUmVmZXJyYWw6KDAsbi5pc0ZlYXR1cmVzZXRFbmFibGVkKSgiaGVhZGVyX2Zha2VfZmVhdHVyZXNfYnV0dG9ucyIpP2I6dm9pZCAwLFRlbGVncmFtU2hhcmU6KDAsbi5pc0ZlYXR1cmVzZXRFbmFibGVkKSgiaGVhZGVyX3RlbGVncmFtX3NoYXJlIik/Vjp2b2lkIDB9fX0sODU4MjM2KGUpe2UuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyOCAyOCIgd2lkdGg9IjI4IiBoZWlnaHQ9IjI4Ij48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTIxIDguNWEyLjUgMi41IDAgMSAxLTUgMCAyLjUgMi41IDAgMCAxIDUgMHptMSAwYTMuNSAzLjUgMCAwIDEtNi4yMSAyLjIxbC00LjA2IDIuNDRhMy40OSAzLjQ5IDAgMCAxIDAgMi43bDQuMDYgMi40NGEzLjUgMy41IDAgMSAxLS41Mi44NmwtNC4wNi0yLjQ0YTMuNSAzLjUgMCAxIDEgMC00LjQybDQuMDYtMi40NEEzLjQ5IDMuNDkgMCAwIDEgMTguNSA1IDMuNSAzLjUgMCAwIDEgMjIgOC41em0tMSAxMmEyLjUgMi41IDAgMSAxLTUgMCAyLjUgMi41IDAgMCAxIDUgMHpNOC41IDE3YTIuNSAyLjUgMCAxIDAgMC01IDIuNSAyLjUgMCAwIDAgMCA1eiIvPjwvc3ZnPid9fV0pOw=="}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"s3-symbol-logo.tradingview.com/crypto/XTVCBTC.svg","fqdn":"s3-symbol-logo.tradingview.com","domain":"tradingview.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.940Z","timestamp":1785148034940,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_256_GCM_SHA384","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.tradingview.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 21 Oct 2025 00:00:00 GMT","end":"Tue, 17 Nov 2026 23:59:59 GMT"},"fingerprint":{"sha1":"C4:FE:64:00:30:2A:CD:16:30:95:7E:E1:70:D1:31:3A:D6:33:3A:CC","sha256":"87:D2:67:7D:3E:02:F0:3B:58:BD:38:17:DA:FE:73:C0:CA:25:F9:58:CC:11:14:E0:3A:6E:C3:58:84:9E:BF:52"}}},"request":{"raw":"GET /crypto/XTVCBTC.svg HTTP/1.1\r\nHost: s3-symbol-logo.tradingview.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\nReferer: https://s.tradingview.com/\r\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-site\r\nPriority: u=5, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\ncontent-type: image/svg+xml\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 1827952\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-methods: GET\r\naccess-control-allow-origin: *\r\naccess-control-max-age: 30\r\ncache-control: max-age=2592000, s-maxage=3600\r\ncontent-encoding: zstd\r\netag: \"107060b925841745f310697bd9f1f83d\"\r\nlast-modified: Wed, 08 Sep 2021 09:03:52 GMT\r\ncdn-cachedat: 08/09/2025 14:29:15\r\nx-amz-id-2: mS6txdd/WwgLrAcd/6no+TxP/dPK7pUj8E19SG87xGMdnJzq7GTFUtT6mRz2dzI97J9VRTiSHig=\r\nx-amz-request-id: 7A2W5B1DC5DG6A3C\r\nx-amz-meta-hash: 107060b925841745f310697bd9f1f83d\r\ncdn-proxyver: 1.33\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: acd74aeb27f805c68b483553d2af5a41\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]},{"name":"Amazon Web Services","description":"Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.","website":"https://aws.amazon.com/","common_platform_enumeration":"","icon":"Amazon Web Services.svg","categories":["PaaS"]}],"data":{"size":801,"size_decoded":1365,"mime_type":"image/svg+xml","magic":"exported SGML document, ASCII text, with very long lines (801), with no line terminators","md5":"107060b925841745f310697bd9f1f83d","sha1":"40a2e01da20c164a3c3f774a72f3feadf17cafa2","sha256":"4dfca512e957e14f05da07751a96061cf4bfd5df438504f65287fa0a8c3cadb6","sha512":"fb7b987074d4701281c49fee08b1d44f2be2b3aa9ecffd0a88a6cc682aac06a6cd823598c8c8ba5ad43f8f1430a73c814148dea60d5740162cc41af7da324c76","ssdeep":"","tlshash":"24011ec55310f6046ec7c09dbf74a9e4110f60ae14a6c7dcf2c89f0835aae8ba614d48","first_seen":"2023-04-21T01:30:48Z","last_seen":"2026-07-27T13:00:41.418308Z","times_seen":6174,"resource_available":false,"data":"PCEtLSBieSBUcmFkaW5nVmlldyAtLT48c3ZnIHdpZHRoPSIxOCIgaGVpZ2h0PSIxOCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBmaWxsPSIjRjc5MzFBIiBkPSJNMCAwaDE4djE4SDB6Ii8+PHBhdGggZD0iTTEyLjgzNiA3Ljk0Yy4xNjYtMS4xMjMtLjY4NC0xLjcyMS0xLjg1NS0yLjEyOGwuMzgtMS41MTMtLjkyNi0uMjMtLjM2OSAxLjQ3Ni0uNzM4LS4xNzcuMzc1LTEuNDg2LS45MjUtLjIzLS4zOCAxLjUxOC0uNTg4LS4xMzl2LS4wMDVsLTEuMjc4LS4zMi0uMjQ2Ljk4OHMuNjg0LjE2LjY3NC4xNjZjLjM3NC4wOTYuNDM4LjM0Mi40MjcuNTM1TDYuOTYgOC4xMjhsLjA5Ni4wMzItLjEwMi0uMDIyLS42MDQgMi40MjNjLS4wNDMuMTEyLS4xNi4yODMtLjQyMy4yMTQuMDExLjAxNi0uNjY4LS4xNi0uNjY4LS4xNmwtLjQ2IDEuMDUzIDEuMjAzLjMuNjU4LjE3LS4zODUgMS41MzUuOTI1LjIzLjM3NC0xLjUxOS43NDQuMTkzLS4zOCAxLjUxMy45MjUuMjMuMzgtMS41MzVjMS41NzcuMyAyLjc2NS4xODIgMy4yNjItMS4yNDYuNDAxLTEuMTUtLjAyMS0xLjgwNy0uODUtMi4yNDYuNjA0LS4xMzMgMS4wNTktLjUzNCAxLjE3Ni0xLjM1M2guMDA1em0tMi4xMTIgMi45NjNjLS4yODMgMS4xNS0yLjIxOS41MjQtMi44NDUuMzc0bC41MDgtMi4wMzdjLjYyNi4xNiAyLjYzNy40NjUgMi4zMzcgMS42NTh2LjAwNXptLjI4NC0yLjk3OWMtLjI1NyAxLjA0My0xLjg3Mi41MTQtMi4zOS4zODVsLjQ2LTEuODQ0Yy41MjMuMTI4IDIuMjAyLjM3NCAxLjkzIDEuNDZ6IiBmaWxsPSIjZmZmIi8+PC9zdmc+"}},"time_used":5,"timings":{"blocked":-1,"dns":2,"connect":2,"send":0,"wait":3,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/62630.53732daea8178447393f.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:15.322Z","timestamp":1785148035322,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/62630.53732daea8178447393f.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:15 GMT\r\ncontent-type: text/css; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a2900e8-81\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Wed, 10 Jun 2026 06:15:04 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.55\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 06/10/2026 10:16:48\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: adb5342893f3f63e8d53da3846781032\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":129,"size_decoded":881,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with no line terminators","md5":"e5f07c5aaef58d5986915a301b87421f","sha1":"bb55df8bc52b7214dada6d5d4ae37eb47151784f","sha256":"49d455199479291a3af612b0f532703169f142725fde325723b363a726fd0ea1","sha512":"9d6d6ae7362ec7e4be470196877102b5a670aa65a7dd5005699788845f5ccd947c955a0b7621e3ad9caf3290a852edf6c6d446adc1f4418e2e91fec9146f22f0","ssdeep":"","tlshash":"8ab02b90a2c00b9800534289e4ff330b007954c77f60108c089dcc804a03120c073bd1","first_seen":"2026-06-10T15:56:02.644043Z","last_seen":"2026-07-27T12:57:37.003465Z","times_seen":1011,"resource_available":false,"data":"LmZhZGUtTU9kVWlCWUQgY2FudmFze2ZpbHRlcjpvcGFjaXR5KC4zKTtwb2ludGVyLWV2ZW50czpub25lO3RyYW5zaXRpb246ZmlsdGVyIC4zcyBlYXNlLWluLW91dCAuMXN9LmhpZGRlbi1NT2RVaUJZRHtkaXNwbGF5Om5vbmV9"}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/gauge-small.9ecb810f3491735e20e3.svg","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:16.005Z","timestamp":1785148036005,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/gauge-small.9ecb810f3491735e20e3.svg HTTP/1.1\r\nHost: www.tradingview-widget.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\nReferer: https://www.tradingview-widget.com/static/bundles/embed/26100.7677fc7ff8fc4a0d75f1.css\r\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=4, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Mon, 27 Jul 2026 10:27:16 GMT\r\ncontent-type: image/svg+xml; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"688320b9-157\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Fri, 25 Jul 2025 06:14:17 GMT\r\ncdn-cachedat: 08/14/2025 09:20:38\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.33\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 2e3602fcec32d2a76816709f2d5e2e06\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":343,"size_decoded":1016,"mime_type":"image/svg+xml; charset=utf-8","magic":"SVG Scalable Vector Graphics image","md5":"3a17e4858d1fbd333632e741af66abd3","sha1":"5cf9829a67e814978114f5f84c6e0b9ff0d8bdb5","sha256":"cec6226ab17b2ad63ea04c52e7ed922d942ee3ae839c30521b209809506ea184","sha512":"24919f8d11d1588a12cae87f5df95308ae15d1aa7a0834935c3959968e3aa2773afe9adf546fe86114c8a0a5e9a5850101279dafb17469759f681d31b4024e88","ssdeep":"","tlshash":"a5e026e5110e008cc0a39da8ab299115336fd0e3320001e1ae4c9206f103af7fb775e8","first_seen":"2023-05-18T21:44:30Z","last_seen":"2026-07-27T10:28:13.932338Z","times_seen":120,"resource_available":false,"data":"PHN2ZyB3aWR0aD0iMTU0IiBoZWlnaHQ9Ijc3IiB2aWV3Qm94PSIwIDAgMTU0IDc3IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIG9wYWNpdHk9Ii4yNSIgZD0iTTQgNzdhNzMgNzMgMCAwIDEgMTQ2IDBoLTUuMTFhNjcuODkgNjcuODkgMCAwIDAtNDEuOTEtNjIuNzIgNjcuODkgNjcuODkgMCAwIDAtNzMuOTkgMTQuNzFBNjcuOSA2Ny45IDAgMCAwIDkuMTEgNzdINHoiIGZpbGw9ImN1cnJlbnRDb2xvciIvPjxwYXRoIGQ9Ik0wIDc3YTc3IDc3IDAgMSAxIDE1NCAwaC00LjYyQTcyLjM4IDcyLjM4IDAgMCAwIDQuNjIgNzdIMHoiIGZpbGw9ImN1cnJlbnRDb2xvciIvPjwvc3ZnPg=="}},"time_used":2,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/44031.2691fc2c3468293bfd16.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:13.906Z","timestamp":1785148033906,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/44031.2691fc2c3468293bfd16.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:13 GMT\r\ncontent-type: text/css; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a61b1ff-90\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Thu, 23 Jul 2026 06:17:35 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/23/2026 10:17:26\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: a718d5ddd270afee6e0a46e9e59e4cbf\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":144,"size_decoded":886,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with no line terminators","md5":"669466b98876123099594e1a8ff0556e","sha1":"f7b7d85273ef4a6de745e7d1977d6eaeb4e25f41","sha256":"634134c6e0cfe9953231051ead0975df8ee84bfbd6df8222218fdea0f1b04497","sha512":"ecd87db6f1f0eb9c5d7b76d4b2a7f4dbff140856b0addb002e166951b7c534f59c42c8acf7638bb7b769ecbb39022454b989196dfe7b376e759e63163119856f","ssdeep":"","tlshash":"48c02b8871c0302aba0f312ac33cc55830301940ec001f6a992de4f288c0fda13e2f39","first_seen":"2026-07-23T14:00:31.42266Z","last_seen":"2026-07-27T12:53:42.627387Z","times_seen":346,"resource_available":false,"data":"LnNlcGFyYXRvci1LSHR5TVRZR3tiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXR2LWNvbG9yLXBvcHVwLWVsZW1lbnQtZGl2aWRlci1iYWNrZ3JvdW5kLHZhcigtLWNvbG9yLXBvcHVwLW1lbnUtc2VwYXJhdG9yKSk7aGVpZ2h0OjFweDttYXJnaW46NnB4IDB9"}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/50316.31d6cfe0d16ae931b73c.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.011Z","timestamp":1785148034011,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/50316.31d6cfe0d16ae931b73c.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\ncontent-type: text/css; charset=utf-8\r\ncontent-length: 0\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\netag: \"6a43614c-0\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Tue, 30 Jun 2026 06:25:16 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.57\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 06/30/2026 11:55:11\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: fab17a58ab326c6445baded10db867d6\r\ncdn-cache: HIT\r\naccept-ranges: bytes\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":0,"size_decoded":782,"mime_type":"text/css; charset=utf-8","magic":"","md5":"d41d8cd98f00b204e9800998ecf8427e","sha1":"da39a3ee5e6b4b0d3255bfef95601890afd80709","sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha512":"cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e","ssdeep":"","tlshash":"","first_seen":"0001-01-01T00:00:00Z","last_seen":"2026-07-27T13:01:10.036638Z","times_seen":17563461,"resource_available":true,"data":""}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/32427.6d166f87b73672e561da.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.079Z","timestamp":1785148034079,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/32427.6d166f87b73672e561da.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\ncontent-type: text/css; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a435fcb-6854\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Tue, 30 Jun 2026 06:18:51 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.57\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 06/30/2026 11:55:10\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: a963885817d0aff23e99c0214ffd707a\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":26708,"size_decoded":6118,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with very long lines (26708), with no line terminators","md5":"32fcdfd8c316846fd66f3170427e7c77","sha1":"6cd395666698972688086231acc7c92869c526c2","sha256":"611cc3a9b9a962bd86a58946c40f4db83ee7464d2fd0f96e5bdc128adc47279e","sha512":"c87b402782fb530431f851e0cdf6eea7fe311cf40f98235daa0427b63b098ffd61cf0bfac44287a5cacf81a5e799f4807074eb6a6d868fd6f35e7dd1313f3154","ssdeep":"384:NuoYQ+hStFKAD8LjW2KegDJbJiSFCJvkJrTKbA:YSPqW2KeuTKk","tlshash":"81c2e68af340717eba0b963c8746e1ec2748ec66d9024efef971e19045c27e652b6d1c","first_seen":"2026-06-30T21:57:43.46701Z","last_seen":"2026-07-27T12:48:39.683893Z","times_seen":222,"resource_available":false,"data":"LndyYXAtVWZER3loNUt7YWxpZ24taXRlbXM6Y2VudGVyO2Rpc3BsYXk6ZmxleDtmbGV4OjEgMCBhdXRvO2ZsZXgtZGlyZWN0aW9uOnJvdztoZWlnaHQ6MTAwJX0uYnV0dG9uLUk4ckFuWFRSLndpdGhUZXh0LUk4ckFuWFRSe3BhZGRpbmctYmxvY2s6MCAwO3BhZGRpbmctaW5saW5lOjVweCAxMHB4fS5idXR0b24tSThyQW5YVFIud2l0aG91dFRleHQtSThyQW5YVFIsLmJ1dHRvbi1oRHRJb3hqVXtwYWRkaW5nOjAgNXB4fS5ncm91cC1oRHRJb3hqVXtkaXNwbGF5OmNvbnRlbnRzfS5tZW51LWhEdElveGpVOm9ubHktY2hpbGR7cGFkZGluZzowIDVweH0uYmV0YUJhZGdlLWhEdElveGpVLC5uZXdCYWRnZS1oRHRJb3hqVXstLXVpLWxpYi1iYWRnZS1jb2xvci1jb250ZW50OnZhcigtLWNvbG9yLXdoaXRlKTttYXJnaW4taW5saW5lLXN0YXJ0OjRweH0uYmV0YUJhZGdlLWhEdElveGpVOmZpcnN0LWNoaWxkLC5uZXdCYWRnZS1oRHRJb3hqVTpmaXJzdC1jaGlsZHttYXJnaW4taW5saW5lLXN0YXJ0OjZweH0uYmV0YUJhZGdlLWhEdElveGpVey0tdWktbGliLWJhZGdlLWJhY2tncm91bmQ6dmFyKC0tY29sb3ItY29sZC1ncmF5LTU1MCl9LmxhYmVsLWhEdElveGpVe2FsaWduLWl0ZW1zOmNlbnRlcjtkaXNwbGF5OmZsZXg7ZmxleDowIDAgYXV0b30uY29udGFpbmVyLWhEdElveGpVLm5ld1ZpZXctaER0SW94alV7cGFkZGluZzowIDZweDstLXVpLWxpYi1pbi1saXN0SXRlbS1zaXplSXNEZXNrdG9wOjA7LS11aS1saWItaW4tbGlzdEl0ZW0tc2l6ZUlzTW9iaWxlOjF9LmNvbnRhaW5lci1oRHRJb3hqVS5uZXdWaWV3LWhEdElveGpVLmRlc2t0b3AtaER0SW94alV7LS11aS1saWItaW4tbGlzdEl0ZW0tc2l6ZUlzRGVza3RvcDoxOy0tdWktbGliLWluLWxpc3RJdGVtLXNpemVJc01vYmlsZTowfS5mdWxsLXVfUkFwbmlOLmxhc3QtdV9SQXBuaU4sLm1lZGl1bS11X1JBcG5pTi5sYXN0LXVfUkFwbmlOe21hcmdpbi1pbmxpbmUtZW5kOjdweH0uZHJvcGRvd24tTWJ3Qk1XRHl7bWluLXdpZHRoOjIwMHB4fS5kcm9wZG93bi1NYndCTVdEeS5uZXdWaWV3LU1id0JNV0R5e3BhZGRpbmc6MCA2cHg7LS11aS1saWItaW4tbGlzdEl0ZW0tc2l6ZUlzRGVza3RvcDoxOy0tdWktbGliLWluLWxpc3RJdGVtLXNpemVJc01vYmlsZTowfS5kcm9wZG93bi1NYndCTVdEeS5uZXdWaWV3LU1id0JNV0R5LnNtYWxsV2lkdGhXcmFwcGVyLU1id0JNV0R5ey0tdWktbGliLWluLWxpc3RJdGVtLXNpemVJc0Rlc2t0b3A6MDstLXVpLWxpYi1pbi1saXN0SXRlbS1zaXplSXNNb2JpbGU6MX0ubWVudS1NYndCTVdEeXttYXgtd2lkdGg6MzE0cHh9LmxhYmVsLU1id0JNV0R5e292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3doaXRlLXNwYWNlOm5vd3JhcH0uc21hbGxXaWR0aFRpdGxlLU1id0JNV0R5e21hcmdpbi1ib3R0b206OHB4O21hcmdpbi10b3A6MnB4O3BhZGRpbmctaW5saW5lLWVuZDoyMHB4O3BhZGRpbmctaW5saW5lLXN0YXJ0OjIwcHh9LnNtYWxsV2lkdGhNZW51SXRlbS1NYndCTVdEeXtwYWRkaW5nOjZweCAxNnB4fS5zbWFsbFdpZHRoV3JhcHBlci1NYndCTVdEeTpub3QoLm5ld1ZpZXctTWJ3Qk1XRHkpe3BhZGRpbmctdG9wOjhweH0uc3RhdGVUaXRsZS1ya3ZrRll6Mntjb2xvcjp2YXIoLS10di1jb2xvci10b29sYmFyLWJ1dHRvbi10ZXh0LWFjdGl2ZSx2YXIoLS1jb2xvci10b29sYmFyLWJ1dHRvbi10ZXh0LWFjdGl2ZSkpO2ZvbnQtc2l6ZToxMHB4O2xpbmUtaGVpZ2h0OjEwcHh9LnN0YXRlVGl0bGUtcmt2a0ZZejIuaGlkZGVuLXJrdmtGWXoye2hlaWdodDowO292ZXJmbG93OmhpZGRlbn0ubG9hZGVyLXJrdmtGWXoyey0tdWktbGliLWxvYWRlci1jb2xvcjp2YXIoLS10di1jb2xvci10b29sYmFyLXNhdmUtbGF5b3V0LWxvYWRlcix2YXIoLS1jb2xvci1kZWZhdWx0LWdyYXkpKX0udmFsdWUtZHIzdkdpblR7Zm9udC1zaXplOjE0cHg7dGV4dC1hbGlnbjpzdGFydH0udmFsdWUtZHIzdkdpblQuc2VsZWN0ZWQtZHIzdkdpblR7Y29sb3I6dmFyKC0tY29sb3ItdG9vbGJhci1idXR0b24tdGV4dC1hY3RpdmUpfS5wb3B1cEl0ZW1Sb3dUYWJsZXRTbWFsbC1FWEdfMGhhSjpmaXJzdC1jaGlsZHttYXJnaW4tYm90dG9tOjZweDttYXJnaW4tdG9wOjZweDtwYWRkaW5nLWlubGluZS1zdGFydDoxMnB4fS5sYXlvdXRJdGVtLUVYR18waGFKe2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47cGFkZGluZzo0cHggMH0ubGF5b3V0SXRlbS1FWEdfMGhhSiAubGF5b3V0TWV0YS1FWEdfMGhhSntmb250LWZhbWlseTotYXBwbGUtc3lzdGVtLEJsaW5rTWFjU3lzdGVtRm9udCxUcmVidWNoZXQgTVMsUm9ib3RvLFVidW50dSxzYW5zLXNlcmlmO2ZvbnQtZmVhdHVyZS1zZXR0aW5nczoidG51bSIgb24sImxudW0iIG9uO2ZvbnQtc3R5bGU6bm9ybWFsO21hcmdpbi10b3A6MnB4Oy0tdWktbGliLXR5cG9ncmFwaHktZm9udC1zaXplOjEycHg7Zm9udC1zaXplOnZhcigtLXVpLWxpYi10eXBvZ3JhcGh5LWZvbnQtc2l6ZSk7Zm9udC13ZWlnaHQ6NDAwOy0tdWktbGliLXR5cG9ncmFwaHktbGluZS1oZWlnaHQ6MTZweDtsaW5lLWhlaWdodDp2YXIoLS11aS1saWItdHlwb2dyYXBoeS1saW5lLWhlaWdodCl9LnRvb2xib3gtRVhHXzBoYUp7YWxpZ24tc2VsZjpmbGV4LXN0YXJ0O3BhZGRpbmctdG9wOjNweH0udG9vbGJveFNtYWxsLUVYR18waGFKe2FsaWduLXNlbGY6ZmxleC1zdGFydDtwYWRkaW5nLXRvcDo5cHh9LmxheW91dFRpdGxlLUVYR18waGFKe2ZvbnQtZmFtaWx5Oi1hcHBsZS1zeXN0ZW0sQmxpbmtNYWNTeXN0ZW1Gb250LFRyZWJ1Y2hldCBNUyxSb2JvdG8sVWJ1bnR1LHNhbnMtc2VyaWY7Zm9udC1mZWF0dXJlLXNldHRpbmdzOiJ0bnVtIiBvbiwibG51bSIgb247Zm9udC1zdHlsZTpub3JtYWw7LS11aS1saWItdHlwb2dyYXBoeS1mb250LXNpemU6MTRweDtmb250LXNpemU6dmFyKC0tdWktbGliLXR5cG9ncmFwaHktZm9udC1zaXplKTtmb250LXdlaWdodDo0MDA7LS11aS1saWItdHlwb2dyYXBoeS1saW5lLWhlaWdodDoxOHB4O2xpbmUtaGVpZ2h0OnZhcigtLXVpLWxpYi10eXBvZ3JhcGh5LWxpbmUtaGVpZ2h0KX0ubGF5b3V0SXRlbVdyYXAtRVhHXzBoYUp7cGFkZGluZy1ibG9jazoycHggMnB4O3BhZGRpbmctaW5saW5lOjhweCAxMHB4fS5sYXlvdXRJdGVtV3JhcFNtYWxsLUVYR18waGFKe3BhZGRpbmctaW5saW5lLWVuZDoyMHB4fS5sYXlvdXRUaXRsZVNtYWxsLUVYR18waGFKe2ZvbnQtZmFtaWx5Oi1hcHBsZS1zeXN0ZW0sQmxpbmtNYWNTeXN0ZW1Gb250LFRyZWJ1Y2hldCBNUyxSb2JvdG8sVWJ1bnR1LHNhbnMtc2VyaWY7Zm9udC1mZWF0dXJlLXNldHRpbmdzOiJ0bnVtIiBvbiwibG51bSIgb247Zm9udC1zdHlsZTpub3JtYWw7LS11aS1saWItdHlwb2dyYXBoeS1mb250LXNpemU6MTZweDtmb250LXNpemU6dmFyKC0tdWktbGliLXR5cG9ncmFwaHktZm9udC1zaXplKTtmb250LXdlaWdodDo0MDA7LS11aS1saWItdHlwb2dyYXBoeS1saW5lLWhlaWdodDoyNHB4O2xpbmUtaGVpZ2h0OnZhcigtLXVpLWxpYi10eXBvZ3JhcGh5LWxpbmUtaGVpZ2h0KX0uZWxsaXBzaXMtRVhHXzBoYUp7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7d2hpdGUtc3BhY2U6bm93cmFwfS5zbWFsbFdpZHRoTWVudUl0ZW0tcldCY2Qxak17cGFkZGluZzo2cHggMTZweH0ubWVudUl0ZW0tcldCY2Qxak06aGFzKDpmb2N1cy12aXNpYmxlKSAucmVtb3ZlLXJXQmNkMWpNe3Zpc2liaWxpdHk6dmlzaWJsZX0ubWVudUl0ZW0tcldCY2Qxak0uc2lnbmFsLXJXQmNkMWpNe2FuaW1hdGlvbi1kdXJhdGlvbjouOHM7YW5pbWF0aW9uLWZpbGwtbW9kZTpmb3J3YXJkczthbmltYXRpb24taXRlcmF0aW9uLWNvdW50OjE7YW5pbWF0aW9uLW5hbWU6aGlnaGxpZ2h0LWFuaW1hdGlvbi1yV0JjZDFqTTstLW1peGluLWlubmVyLWJhc2UtY29sb3I6IzAwMDA7LS1taXhpbi1pbm5lci1oaWdobGlnaHQtY29sb3I6dmFyKC0tY29sb3ItYmFja2dyb3VuZC1zcGVjaWFsLXNlY29uZGFyeSl9QGtleWZyYW1lcyBoaWdobGlnaHQtYW5pbWF0aW9uLXJXQmNkMWpNezAle2JhY2tncm91bmQtY29sb3I6dmFyKC0tbWl4aW4taW5uZXItYmFzZS1jb2xvcil9MzAle2JhY2tncm91bmQtY29sb3I6dmFyKC0tbWl4aW4taW5uZXItaGlnaGxpZ2h0LWNvbG9yKX02MCV7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1taXhpbi1pbm5lci1iYXNlLWNvbG9yKX10b3tiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLW1peGluLWlubmVyLWhpZ2hsaWdodC1jb2xvcil9fS5zaGFyaW5nTGFiZWxXcmFwLV9VQ2xRVHQ2e2FsaWduLWl0ZW1zOmNlbnRlcjtkaXNwbGF5OmZsZXg7b3ZlcmZsb3c6aGlkZGVufS50aXRsZVNoYXJpbmdMYWJlbC1fVUNsUVR0NntvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpczt3aGl0ZS1zcGFjZTpub3dyYXB9Lmljb25XcmFwLV9VQ2xRVHQ2e21hcmdpbi1pbmxpbmUtc3RhcnQ6N3B4fS5pbmZvSWNvbi1fVUNsUVR0Nntjb2xvcjp2YXIoLS1jb2xvci1jb250ZW50LXByaW1hcnktbmV1dHJhbC1saWdodCk7ZGlzcGxheTpmbGV4fUBtZWRpYSAoYW55LWhvdmVyOmhvdmVyKXsuaW5mb0ljb24tX1VDbFFUdDY6aG92ZXJ7Y29sb3I6dmFyKC0tY29sb3ItZGVmYXVsdC1ncmF5KX19LmFjY2Vzc2libGVMYWJlbC1fVUNsUVR0NntvdXRsaW5lOm5vbmU7b3ZlcmZsb3c6dmlzaWJsZTtwb3NpdGlvbjpyZWxhdGl2ZX0uYWNjZXNzaWJsZUxhYmVsLV9VQ2xRVHQ2OmZvY3Vze291dGxpbmU6bm9uZX0uYWNjZXNzaWJsZUxhYmVsLV9VQ2xRVHQ2OmZvY3VzLXZpc2libGV7b3V0bGluZTpub25lfS5hY2Nlc3NpYmxlTGFiZWwtX1VDbFFUdDY6YWZ0ZXJ7Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci13aWR0aDoycHg7Ym94LXNpemluZzpib3JkZXItYm94O2NvbnRlbnQ6IiI7ZGlzcGxheTpub25lO2hlaWdodDpjYWxjKDEwMCUgKyA4cHgpO2luc2V0LWlubGluZS1zdGFydDotNHB4O3BvaW50ZXItZXZlbnRzOm5vbmU7cG9zaXRpb246YWJzb2x1dGU7dG9wOi00cHg7d2lkdGg6Y2FsYygxMDAlICsgOHB4KTt6LWluZGV4OjF9LmFjY2Vzc2libGVMYWJlbC1fVUNsUVR0Njpmb2N1czphZnRlcntkaXNwbGF5OmJsb2NrfS5hY2Nlc3NpYmxlTGFiZWwtX1VDbFFUdDY6Zm9jdXMtdmlzaWJsZTphZnRlcntkaXNwbGF5OmJsb2NrfS5hY2Nlc3NpYmxlTGFiZWwtX1VDbFFUdDY6Zm9jdXM6bm90KDpmb2N1cy12aXNpYmxlKTphZnRlcntkaXNwbGF5Om5vbmV9LmFjY2Vzc2libGVMYWJlbC1fVUNsUVR0NjphZnRlcntib3JkZXItY29sb3I6dmFyKC0tY29sb3ItdHYtYmx1ZS01MDApO2JvcmRlci1yYWRpdXM6NnB4fS5oaW50LV9VQ2xRVHQ2e2Rpc3BsYXk6ZmxleH0uYWNjZXNzaWJsZS1tRUdaQmZ1THtvdXRsaW5lOm5vbmU7b3ZlcmZsb3c6dmlzaWJsZTtwb3NpdGlvbjpyZWxhdGl2ZX0uYWNjZXNzaWJsZS1tRUdaQmZ1TDpmb2N1c3tvdXRsaW5lOm5vbmV9LmFjY2Vzc2libGUtbUVHWkJmdUw6Zm9jdXMtdmlzaWJsZXtvdXRsaW5lOm5vbmV9LmFjY2Vzc2libGUtbUVHWkJmdUw6YWZ0ZXJ7Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci13aWR0aDoycHg7Ym94LXNpemluZzpib3JkZXItYm94O2NvbnRlbnQ6IiI7ZGlzcGxheTpub25lO2hlaWdodDoxMDAlO2luc2V0LWlubGluZS1zdGFydDowO3BvaW50ZXItZXZlbnRzOm5vbmU7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7d2lkdGg6MTAwJTt6LWluZGV4OjF9LmFjY2Vzc2libGUtbUVHWkJmdUw6Zm9jdXM6YWZ0ZXJ7ZGlzcGxheTpibG9ja30uYWNjZXNzaWJsZS1tRUdaQmZ1TDpmb2N1cy12aXNpYmxlOmFmdGVye2Rpc3BsYXk6YmxvY2t9LmFjY2Vzc2libGUtbUVHWkJmdUw6Zm9jdXM6bm90KDpmb2N1cy12aXNpYmxlKTphZnRlcntkaXNwbGF5Om5vbmV9LmFjY2Vzc2libGUtbUVHWkJmdUw6YWZ0ZXJ7Ym9yZGVyLWNvbG9yOnZhcigtLWNvbG9yLXR2LWJsdWUtNTAwKTtib3JkZXItcmFkaXVzOjZweH0udGl0bGUtdHNUb2JzeXB7Y3Vyc29yOmRlZmF1bHR9LnNtYWxsVGFibGV0U2VjdGlvblRpdGxlLW91SkpzVlU2LC50aXRsZS10c1RvYnN5cHtjb2xvcjp2YXIoLS10di1jb2xvci1wb3B1cC1lbGVtZW50LXNlY29uZGFyeS10ZXh0LHZhcigtLWNvbG9yLXBvcHVwLWVsZW1lbnQtc2Vjb25kYXJ5LXRleHQpKTtmb250LXNpemU6MTFweDtsZXR0ZXItc3BhY2luZzouNHB4O2xpbmUtaGVpZ2h0OjE2cHg7cGFkZGluZzoxMHB4IDIwcHggOHB4O3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZX0uc21hbGxUYWJsZXRTZWN0aW9uVGl0bGUtb3VKSnNWVTZ7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7d2hpdGUtc3BhY2U6bm93cmFwfS5jb3B5TGluay1lM0JabVpYSHtjdXJzb3I6cG9pbnRlcjtkaXNwbGF5OmlubGluZS1ibG9jaztmb250LXNpemU6MTJweDtsaW5lLWhlaWdodDoxOHB4O21hcmdpbjowIDEycHggNnB4fS5jb3B5TGluay1lM0JabVpYSCwuY29weUxpbmstZTNCWm1aWEg6dmlzaXRlZHtjb2xvcjp2YXIoLS1jb2xvci1icmFuZCk7ZmlsbDp2YXIoLS1jb2xvci1icmFuZCl9QG1lZGlhIChhbnktaG92ZXI6aG92ZXIpey5jb3B5TGluay1lM0JabVpYSDpob3Zlcntjb2xvcjp2YXIoLS1jb2xvci1icmFuZC1ob3Zlcik7ZmlsbDp2YXIoLS1jb2xvci1icmFuZC1ob3Zlcil9fS5jb3B5TGluay1lM0JabVpYSDphY3RpdmV7Y29sb3I6dmFyKC0tY29sb3ItYnJhbmQpO2ZpbGw6dmFyKC0tY29sb3ItYnJhbmQpfS5jb3B5TGluay1lM0JabVpYSDpmb2N1c3tvdXRsaW5lOmF1dG87b3V0bGluZS1vZmZzZXQ6MnB4fS5jb3B5TGluay1lM0JabVpYSDpmb2N1cy12aXNpYmxle291dGxpbmU6YXV0bztvdXRsaW5lLW9mZnNldDoycHh9LmNvcHlMaW5rLWUzQlptWlhIOmZvY3VzOm5vdCg6Zm9jdXMtdmlzaWJsZSl7b3V0bGluZTpub25lfS5jb3B5TGluay1lM0JabVpYSC5jb3B5TGlua01vYmlsZS1lM0JabVpYSHttYXJnaW46MCAyMHB4fS5hY2Nlc3NpYmxlTGFiZWwtZTNCWm1aWEh7b3V0bGluZTpub25lO292ZXJmbG93OnZpc2libGU7cG9zaXRpb246cmVsYXRpdmV9LmFjY2Vzc2libGVMYWJlbC1lM0JabVpYSDpmb2N1c3tvdXRsaW5lOm5vbmV9LmFjY2Vzc2libGVMYWJlbC1lM0JabVpYSDpmb2N1cy12aXNpYmxle291dGxpbmU6bm9uZX0uYWNjZXNzaWJsZUxhYmVsLWUzQlptWlhIOmFmdGVye2JvcmRlci1zdHlsZTpzb2xpZDtib3JkZXItd2lkdGg6MnB4O2JveC1zaXppbmc6Ym9yZGVyLWJveDtjb250ZW50OiIiO2Rpc3BsYXk6bm9uZTtoZWlnaHQ6Y2FsYygxMDAlICsgOHB4KTtpbnNldC1pbmxpbmUtc3RhcnQ6LTRweDtwb2ludGVyLWV2ZW50czpub25lO3Bvc2l0aW9uOmFic29sdXRlO3RvcDotNHB4O3dpZHRoOmNhbGMoMTAwJSArIDhweCk7ei1pbmRleDoxfS5hY2Nlc3NpYmxlTGFiZWwtZTNCWm1aWEg6Zm9jdXM6YWZ0ZXJ7ZGlzcGxheTpibG9ja30uYWNjZXNzaWJsZUxhYmVsLWUzQlptWlhIOmZvY3VzLXZpc2libGU6YWZ0ZXJ7ZGlzcGxheTpibG9ja30uYWNjZXNzaWJsZUxhYmVsLWUzQlptWlhIOmZvY3VzOm5vdCg6Zm9jdXMtdmlzaWJsZSk6YWZ0ZXJ7ZGlzcGxheTpub25lfS5hY2Nlc3NpYmxlTGFiZWwtZTNCWm1aWEg6YWZ0ZXJ7Ym9yZGVyLWNvbG9yOnZhcigtLWNvbG9yLXR2LWJsdWUtNTAwKTtib3JkZXItcmFkaXVzOjZweH0uc2VjdGlvbi1DcVBRQmc0WnttYXJnaW46LTJweCAwfS5zZWN0aW9uLUNxUFFCZzRaOmZpcnN0LWNoaWxke21hcmdpbi10b3A6NHB4fS5zZWN0aW9uLUNxUFFCZzRaW2RhdGEtb3Blbj10cnVlXXttYXJnaW4tYm90dG9tOjRweH0uYWRkQ3VzdG9tSW50ZXJ2YWwtQ3FQUUJnNFp7cGFkZGluZy1ib3R0b206NnB4O3BhZGRpbmctdG9wOjZweH0uYWRkQ3VzdG9tSW50ZXJ2YWxEZXNrdG9wLUNxUFFCZzRae3BhZGRpbmctYm90dG9tOjNweDtwYWRkaW5nLXRvcDozcHh9W2RhdGEtdGhlbWU9bGlnaHRdey0tXzAtVXVQdjp2YXIoLS1jb2xvci13aGl0ZSk7LS1fMS1VdVB2OnZhcigtLWNvbG9yLWNvbGQtZ3JheS0zMDApfVtkYXRhLXRoZW1lPWRhcmtdey0tXzAtVXVQdjp2YXIoLS1jb2xvci1jb2xkLWdyYXktMjAwKTstLV8xLVV1UHY6dmFyKC0tY29sb3ItY29sZC1ncmF5LTY1MCl9Lm1lbnVCdG5XcmFwLXphcExoMHJSe2hlaWdodDoxMDAlO3Bvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOmF1dG99Lm1lbnUtemFwTGgwclJ7bWF4LXdpZHRoOjM0MHB4fS5uZXdNZW51V3JhcHBlci16YXBMaDByUntwYWRkaW5nOjAgNnB4Oy0tdWktbGliLWluLWxpc3RJdGVtLXNpemVJc0Rlc2t0b3A6MDstLXVpLWxpYi1pbi1saXN0SXRlbS1zaXplSXNNb2JpbGU6MX0ubmV3TWVudVdyYXBwZXItemFwTGgwclIuZGVza3RvcC16YXBMaDByUnstLXVpLWxpYi1pbi1saXN0SXRlbS1zaXplSXNEZXNrdG9wOjE7LS11aS1saWItaW4tbGlzdEl0ZW0tc2l6ZUlzTW9iaWxlOjB9Lm9wZW5lZC16YXBMaDByUi5ob3Zlci16YXBMaDByUjpiZWZvcmUsLm9wZW5lZC16YXBMaDByUjphY3RpdmU6YmVmb3JlLC5vcGVuZWQtemFwTGgwclI6YmVmb3Jle2JhY2tncm91bmQtY29sb3I6dmFyKC0tdHYtY29sb3ItdG9vbGJhci1idXR0b24tYmFja2dyb3VuZC1leHBhbmRlZCx2YXIoLS1jb2xvci10b29sYmFyLW9wZW5lZC1lbGVtZW50LWJnKSk7Ym9yZGVyLXJhZGl1czp2YXIoLS10di10b29sYmFyLW9wZW5lZC1lbGVtZW50LWhvdmVyLWJvcmRlci1yYWRpdXMsMCk7Ym90dG9tOnZhcigtLXR2LXRvb2xiYXItb3BlbmVkLWVsZW1lbnQtaG92ZXItbWFyZ2luLDApO2NvbnRlbnQ6IiI7ZGlzcGxheTpibG9jaztpbnNldC1pbmxpbmUtZW5kOnZhcigtLXR2LXRvb2xiYXItb3BlbmVkLWVsZW1lbnQtaG92ZXItbWFyZ2luLDApO2luc2V0LWlubGluZS1zdGFydDp2YXIoLS10di10b29sYmFyLW9wZW5lZC1lbGVtZW50LWhvdmVyLW1hcmdpbiwwKTtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6dmFyKC0tdHYtdG9vbGJhci1vcGVuZWQtZWxlbWVudC1ob3Zlci1tYXJnaW4sMCk7ei1pbmRleDotMX1AbWVkaWEgKGFueS1ob3Zlcjpob3Zlcil7Lm9wZW5lZC16YXBMaDByUjpob3ZlcjpiZWZvcmV7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS10di1jb2xvci10b29sYmFyLWJ1dHRvbi1iYWNrZ3JvdW5kLWV4cGFuZGVkLHZhcigtLWNvbG9yLXRvb2xiYXItb3BlbmVkLWVsZW1lbnQtYmcpKTtib3JkZXItcmFkaXVzOnZhcigtLXR2LXRvb2xiYXItb3BlbmVkLWVsZW1lbnQtaG92ZXItYm9yZGVyLXJhZGl1cywwKTtib3R0b206dmFyKC0tdHYtdG9vbGJhci1vcGVuZWQtZWxlbWVudC1ob3Zlci1tYXJnaW4sMCk7Y29udGVudDoiIjtkaXNwbGF5OmJsb2NrO2luc2V0LWlubGluZS1lbmQ6dmFyKC0tdHYtdG9vbGJhci1vcGVuZWQtZWxlbWVudC1ob3Zlci1tYXJnaW4sMCk7aW5zZXQtaW5saW5lLXN0YXJ0OnZhcigtLXR2LXRvb2xiYXItb3BlbmVkLWVsZW1lbnQtaG92ZXItbWFyZ2luLDApO3Bvc2l0aW9uOmFic29sdXRlO3RvcDp2YXIoLS10di10b29sYmFyLW9wZW5lZC1lbGVtZW50LWhvdmVyLW1hcmdpbiwwKTt6LWluZGV4Oi0xfX0ub3BlbmVkLXphcExoMHJSLmNsaWNrZWQtemFwTGgwclI6YmVmb3JlLC5vcGVuZWQtemFwTGgwclI6YWN0aXZlOmJlZm9yZXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXR2LWNvbG9yLXRvb2xiYXItYnV0dG9uLWJhY2tncm91bmQtY2xpY2tlZCx2YXIoLS10di1jb2xvci10b29sYmFyLWJ1dHRvbi1iYWNrZ3JvdW5kLWV4cGFuZGVkLHZhcigtLWNvbG9yLXRvb2xiYXItb3BlbmVkLWVsZW1lbnQtYmcpKSk7Y29udGVudDoiIjtkaXNwbGF5OmJsb2NrfS5hdXRvU2F2ZVdyYXBwZXItemFwTGgwclIsLnNoYXJpbmdXcmFwcGVyLXphcExoMHJSe21pbi13aWR0aDpjYWxjKDEwMCUgLSAyMnB4KTt3aWR0aDoxOTJweH0uYnV0dG9uLXphcExoMHJSLmJ1dHRvblNtYWxsUGFkZGluZy16YXBMaDByUntwYWRkaW5nLWlubGluZS1lbmQ6NnB4fS5idXR0b24temFwTGgwclJ7ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpjZW50ZXI7bWluLXdpZHRoOjY1cHh9LmhpbnRQbGFjZUhvbGRlci16YXBMaDByUntoZWlnaHQ6MTI4cHh9LnNtYWxsSGludFBsYWNlSG9sZGVyLXphcExoMHJSe2hlaWdodDoxMDAlO3dpZHRoOjEwMCV9LnBvcHVwSXRlbVJvd1RhYmxldFNtYWxsLXphcExoMHJSOmZpcnN0LWNoaWxke21hcmdpbi1ib3R0b206NnB4O21hcmdpbi10b3A6NnB4O3BhZGRpbmctaW5saW5lLXN0YXJ0OjEycHh9LnNob3J0Y3V0LXphcExoMHJSe2ZsZXgtc2hyaW5rOjA7bWFyZ2luLWlubGluZS1lbmQ6MDt0ZXh0LWFsaWduOmVuZH0udG9vbFRpdGxlLXphcExoMHJSe3BhZGRpbmc6NHB4IDEycHh9LnRvb2xUaXRsZU1vYmlsZS16YXBMaDByUntwYWRkaW5nOjhweCAyMHB4fS50ZXh0V3JhcC16YXBMaDByUnthbGlnbi1pdGVtczpjZW50ZXI7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbn0udGV4dC16YXBMaDByUnttYXgtd2lkdGg6MTAwcHg7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXN9LndpdGhJY29uLXphcExoMHJSe3BhZGRpbmctYm90dG9tOjJweDtwYWRkaW5nLXRvcDoycHh9LnN3aXRjaGVyTGFiZWwtemFwTGgwclJ7b3ZlcmZsb3c6dmlzaWJsZX0uZWxsaXBzaXMtemFwTGgwclJ7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7d2hpdGUtc3BhY2U6bm93cmFwfS5idXR0b24tVTliMFRBczR7cGFkZGluZzowIDZweH0ubWVudUJ0bi1VOWIwVEFzNDpvbmx5LWNoaWxke3BhZGRpbmc6MCAxMHB4fS5kcm9wZG93bi1VOWIwVEFzNHttaW4td2lkdGg6MTQwcHh9LmRyb3Bkb3duLVU5YjBUQXM0Lm5ld1ZpZXctVTliMFRBczR7cGFkZGluZzowIDZweDstLXVpLWxpYi1pbi1saXN0SXRlbS1zaXplSXNEZXNrdG9wOjA7LS11aS1saWItaW4tbGlzdEl0ZW0tc2l6ZUlzTW9iaWxlOjF9LmRyb3Bkb3duLVU5YjBUQXM0Lm5ld1ZpZXctVTliMFRBczQuZGVza3RvcC1VOWIwVEFzNHstLXVpLWxpYi1pbi1saXN0SXRlbS1zaXplSXNEZXNrdG9wOjE7LS11aS1saWItaW4tbGlzdEl0ZW0tc2l6ZUlzTW9iaWxlOjB9Lm1lbnVDb250ZW50LVU5YjBUQXM0e2p1c3RpZnktY29udGVudDpjZW50ZXJ9Lmdyb3VwLVU5YjBUQXM0e2Rpc3BsYXk6Y29udGVudHN9LmJ1dHRvbi13X2dES243Ty5pc0Rpc2FibGVkLXdfZ0RLbjdPe29wYWNpdHk6MSFpbXBvcnRhbnR9LmJ1dHRvbi13b0szVnhtbXtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3dpZHRoOjM3cHh9Lm5ld1ZpZXctcDVBbkcwR097cGFkZGluZzowIDZweDstLXVpLWxpYi1pbi1saXN0SXRlbS1zaXplSXNEZXNrdG9wOjA7LS11aS1saWItaW4tbGlzdEl0ZW0tc2l6ZUlzTW9iaWxlOjF9Lm5ld1ZpZXctcDVBbkcwR08uZGVza3RvcC1wNUFuRzBHT3stLXVpLWxpYi1pbi1saXN0SXRlbS1zaXplSXNEZXNrdG9wOjE7LS11aS1saWItaW4tbGlzdEl0ZW0tc2l6ZUlzTW9iaWxlOjB9LmNvbnRhaW5lci1KUVowSEtENHtoZWlnaHQ6MjhweDtwb3NpdGlvbjpyZWxhdGl2ZTt3aWR0aDoxMDAlfS5idXR0b24tSlFaMEhLRDR7YWxsOnVuc2V0O2FsaWduLWl0ZW1zOmNlbnRlcjtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLWNvbnRhaW5lci1maWxsLXByaW1hcnktbmV1dHJhbC1saWdodCk7Ym9yZGVyLXJhZGl1czoxNHB4O2JveC1zaXppbmc6Ym9yZGVyLWJveDtkaXNwbGF5OmZsZXg7aGVpZ2h0OjEwMCU7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47b3V0bGluZTpub25lO292ZXJmbG93OnZpc2libGU7cGFkZGluZy1pbmxpbmUtZW5kOjMwcHg7cGFkZGluZy1pbmxpbmUtc3RhcnQ6MTJweDtwb3NpdGlvbjpyZWxhdGl2ZTt3aWR0aDoxMDAlfS5idXR0b24tSlFaMEhLRDQ6Zm9jdXN7b3V0bGluZTpub25lfS5idXR0b24tSlFaMEhLRDQ6Zm9jdXMtdmlzaWJsZXtvdXRsaW5lOm5vbmV9LmJ1dHRvbi1KUVowSEtENDphZnRlcntib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLXdpZHRoOjJweDtib3gtc2l6aW5nOmJvcmRlci1ib3g7Y29udGVudDoiIjtkaXNwbGF5Om5vbmU7aGVpZ2h0OmNhbGMoMTAwJSArIDhweCk7aW5zZXQtaW5saW5lLXN0YXJ0Oi00cHg7cG9pbnRlci1ldmVudHM6bm9uZTtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6LTRweDt3aWR0aDpjYWxjKDEwMCUgKyA4cHgpO3otaW5kZXg6MX0uYnV0dG9uLUpRWjBIS0Q0OmZvY3VzOmFmdGVye2Rpc3BsYXk6YmxvY2t9LmJ1dHRvbi1KUVowSEtENDpmb2N1cy12aXNpYmxlOmFmdGVye2Rpc3BsYXk6YmxvY2t9LmJ1dHRvbi1KUVowSEtENDpmb2N1czpub3QoOmZvY3VzLXZpc2libGUpOmFmdGVye2Rpc3BsYXk6bm9uZX0uYnV0dG9uLUpRWjBIS0Q0OmFmdGVye2JvcmRlci1jb2xvcjp2YXIoLS1jb2xvci1mb2N1cy1vdXRsaW5lLWNvbG9yLWJsdWUpO2JvcmRlci1yYWRpdXM6MThweH1AbWVkaWEgKGFueS1ob3Zlcjpob3Zlcil7LmJ1dHRvbi1KUVowSEtENDpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLWNvbnRhaW5lci1maWxsLXByaW1hcnktbmV1dHJhbC1ub3JtYWwpfS5idXR0b24tSlFaMEhLRDQ6aG92ZXIgLnZhbHVlLUpRWjBIS0Q0OmJlZm9yZXtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCg5MGRlZywjNGE0YTRhMDAgMCx2YXIoLS1jb2xvci1jb250YWluZXItZmlsbC1wcmltYXJ5LW5ldXRyYWwtbm9ybWFsKSAxMDAlKX19QG1lZGlhIChhbnktaG92ZXI6aG92ZXIpey5idXR0b24tSlFaMEhLRDQ6aG92ZXIgLnZhbHVlLUpRWjBIS0Q0OmJlZm9yZTpkaXIocnRsKXtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgtOTBkZWcsIzRhNGE0YTAwIDAsdmFyKC0tY29sb3ItY29udGFpbmVyLWZpbGwtcHJpbWFyeS1uZXV0cmFsLW5vcm1hbCkgMTAwJSl9fS5idXR0b24tSlFaMEhLRDQ6YWN0aXZle2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItY29udGFpbmVyLWZpbGwtcHJpbWFyeS1uZXV0cmFsLWxpZ2h0KX0uYnV0dG9uLUpRWjBIS0Q0OmFjdGl2ZSAudmFsdWUtSlFaMEhLRDQ6YmVmb3Jle2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDkwZGVnLCMzZDNkM2QwMCAwLHZhcigtLWNvbG9yLWNvbnRhaW5lci1maWxsLXByaW1hcnktbmV1dHJhbC1saWdodCkgMTAwJSl9LmJ1dHRvbi1KUVowSEtENDphY3RpdmUgLnZhbHVlLUpRWjBIS0Q0OmJlZm9yZTpkaXIocnRsKXtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgtOTBkZWcsIzNkM2QzZDAwIDAsdmFyKC0tY29sb3ItY29udGFpbmVyLWZpbGwtcHJpbWFyeS1uZXV0cmFsLWxpZ2h0KSAxMDAlKX0udmFsdWUtSlFaMEhLRDR7Zm9udC1mYW1pbHk6LWFwcGxlLXN5c3RlbSxCbGlua01hY1N5c3RlbUZvbnQsVHJlYnVjaGV0IE1TLFJvYm90byxVYnVudHUsc2Fucy1zZXJpZjtmb250LWZlYXR1cmUtc2V0dGluZ3M6InRudW0iIG9uLCJsbnVtIiBvbjtmb250LXN0eWxlOm5vcm1hbDstLXVpLWxpYi10eXBvZ3JhcGh5LWZvbnQtc2l6ZToxNHB4O2ZvbnQtc2l6ZTp2YXIoLS11aS1saWItdHlwb2dyYXBoeS1mb250LXNpemUpO2ZvbnQtd2VpZ2h0OjYwMDstLXVpLWxpYi10eXBvZ3JhcGh5LWxpbmUtaGVpZ2h0OjE4cHg7Y29sb3I6dmFyKC0tY29sb3ItY29udGVudC1wcmltYXJ5LW5ldXRyYWwtYm9sZCk7bGluZS1oZWlnaHQ6dmFyKC0tdWktbGliLXR5cG9ncmFwaHktbGluZS1oZWlnaHQpO292ZXJmbG93OmhpZGRlbjtwb3NpdGlvbjpyZWxhdGl2ZTt3aWR0aDoxMDAlfS52YWx1ZS1KUVowSEtENDpiZWZvcmV7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoOTBkZWcsIzNkM2QzZDAwIDAsdmFyKC0tY29sb3ItY29udGFpbmVyLWZpbGwtcHJpbWFyeS1uZXV0cmFsLWxpZ2h0KSAxMDAlKTtjb250ZW50OiIiO2hlaWdodDoxOHB4O2luc2V0LWlubGluZS1lbmQ6MDtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDoxOHB4fS52YWx1ZS1KUVowSEtENDpiZWZvcmU6ZGlyKHJ0bCl7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoLTkwZGVnLCMzZDNkM2QwMCAwLHZhcigtLWNvbG9yLWNvbnRhaW5lci1maWxsLXByaW1hcnktbmV1dHJhbC1saWdodCkgMTAwJSl9LmFjdGlvbi1KUVowSEtENHthbGw6dW5zZXQ7Ym9yZGVyLXJhZGl1czo1MCU7aGVpZ2h0OjI0cHg7aW5zZXQtaW5saW5lLWVuZDowO291dGxpbmU6bm9uZTtvdmVyZmxvdzp2aXNpYmxlO3BhZGRpbmc6MnB4O3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO3dpZHRoOjI0cHh9LmFjdGlvbi1KUVowSEtENDpmb2N1c3tvdXRsaW5lOm5vbmV9LmFjdGlvbi1KUVowSEtENDpmb2N1cy12aXNpYmxle291dGxpbmU6bm9uZX0uYWN0aW9uLUpRWjBIS0Q0OmFmdGVye2JvcmRlci1zdHlsZTpzb2xpZDtib3JkZXItd2lkdGg6MnB4O2JveC1zaXppbmc6Ym9yZGVyLWJveDtjb250ZW50OiIiO2Rpc3BsYXk6bm9uZTtoZWlnaHQ6Y2FsYygxMDAlICsgOHB4KTtpbnNldC1pbmxpbmUtc3RhcnQ6LTRweDtwb2ludGVyLWV2ZW50czpub25lO3Bvc2l0aW9uOmFic29sdXRlO3RvcDotNHB4O3dpZHRoOmNhbGMoMTAwJSArIDhweCk7ei1pbmRleDoxfS5hY3Rpb24tSlFaMEhLRDQ6Zm9jdXM6YWZ0ZXJ7ZGlzcGxheTpibG9ja30uYWN0aW9uLUpRWjBIS0Q0OmZvY3VzLXZpc2libGU6YWZ0ZXJ7ZGlzcGxheTpibG9ja30uYWN0aW9uLUpRWjBIS0Q0OmZvY3VzOm5vdCg6Zm9jdXMtdmlzaWJsZSk6YWZ0ZXJ7ZGlzcGxheTpub25lfS5hY3Rpb24tSlFaMEhLRDQ6YWZ0ZXJ7Ym9yZGVyLWNvbG9yOnZhcigtLWNvbG9yLWZvY3VzLW91dGxpbmUtY29sb3ItYmx1ZSk7Ym9yZGVyLXJhZGl1czpjYWxjKDUwJSArIDRweCl9QG1lZGlhIChhbnktaG92ZXI6aG92ZXIpey5hY3Rpb24tSlFaMEhLRDQ6aG92ZXIgLmljb24tSlFaMEhLRDR7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1jb250YWluZXItZmlsbC1wcmltYXJ5LW5ldXRyYWwtbm9ybWFsKX19LmFjdGlvbi1KUVowSEtENDphY3RpdmUgLmljb24tSlFaMEhLRDR7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1jb250YWluZXItZmlsbC1zZWNvbmRhcnktaW52ZXJzZSl9Lmljb24tSlFaMEhLRDR7YWxpZ24taXRlbXM6Y2VudGVyO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItYWN0aW9uLWljb24tYmFja2dyb3VuZC1jb2xvcix2YXIoLS1jb2xvci1jb250YWluZXItZmlsbC1zZWNvbmRhcnktaW52ZXJzZSkpO2JvcmRlci1yYWRpdXM6NTAlO2Rpc3BsYXk6ZmxleDtoZWlnaHQ6MjRweDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO21pbi13aWR0aDoyNHB4O3dpZHRoOjI0cHh9QG1lZGlhIChhbnktaG92ZXI6aG92ZXIpey5pY29uLUpRWjBIS0Q0OmhvdmVye2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItY29udGFpbmVyLWZpbGwtcHJpbWFyeS1uZXV0cmFsLW5vcm1hbCl9fS5pY29uLUpRWjBIS0Q0OmFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLWNvbnRhaW5lci1maWxsLXNlY29uZGFyeS1pbnZlcnNlKX0uYnV0dG9uLW80MHQ5TDVue3BhZGRpbmc6NXB4IDEwcHg7d2lkdGg6MTAwcHh9LmJ1dHRvbi1vNDB0OUw1bi5zbWFsbExlZnRQYWRkaW5nLW80MHQ5TDVue3BhZGRpbmctaW5saW5lLXN0YXJ0OjhweH0udGV4dC1vNDB0OUw1bntmb250LWZhbWlseTotYXBwbGUtc3lzdGVtLEJsaW5rTWFjU3lzdGVtRm9udCxUcmVidWNoZXQgTVMsUm9ib3RvLFVidW50dSxzYW5zLXNlcmlmO2ZvbnQtZmVhdHVyZS1zZXR0aW5nczoidG51bSIgb24sImxudW0iIG9uO2ZvbnQtc3R5bGU6bm9ybWFsOy0tdWktbGliLXR5cG9ncmFwaHktZm9udC1zaXplOjE0cHg7Zm9udC1zaXplOnZhcigtLXVpLWxpYi10eXBvZ3JhcGh5LWZvbnQtc2l6ZSk7Zm9udC13ZWlnaHQ6NjAwOy0tdWktbGliLXR5cG9ncmFwaHktbGluZS1oZWlnaHQ6MThweDtsaW5lLWhlaWdodDp2YXIoLS11aS1saWItdHlwb2dyYXBoeS1saW5lLWhlaWdodCk7b3ZlcmZsb3c6aGlkZGVufS5zZWFyY2hCdXR0b24tbzQwdDlMNW4sLnRleHQtbzQwdDlMNW57bWFyZ2luOjAgNHB4O3dpZHRoOjEyOHB4fS5tZW51T3BlbmVkLW80MHQ5TDVuey0tY29sb3ItYWN0aW9uLWljb24tYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1jb250YWluZXItZmlsbC1wcmltYXJ5LW5ldXRyYWwtbm9ybWFsKX0udXBwZXJjYXNlLW80MHQ5TDVue3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZX0uZGVzY3JpcHRpb24taFZTM0k5cnN7Y29sb3I6dmFyKC0tdHYtY29sb3ItcG9wdXAtZWxlbWVudC1zZWNvbmRhcnktdGV4dCx2YXIoLS1jb2xvci1wb3B1cC1lbGVtZW50LXNlY29uZGFyeS10ZXh0KSk7Zm9udC1zaXplOjEycHg7bGluZS1oZWlnaHQ6MThweDttYXgtd2lkdGg6MjgwcHg7bWluLXdpZHRoOjE3MHB4O3BhZGRpbmctYm90dG9tOjRweDt3aGl0ZS1zcGFjZTpub3JtYWw7d29yZC13cmFwOmJyZWFrLXdvcmR9W2RhdGEtdGhlbWU9ZGFya10sW2RhdGEtdGhlbWU9bGlnaHRdey0tXzAtaVpHNDojMDAwMH0ubGFiZWxSb3ctX3VYalNTUTV7ZGlzcGxheTpibG9jaztvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpczt3aGl0ZS1zcGFjZTpub3dyYXA7d2lkdGg6Y2FsYygxMDAlIC0gNjBweCl9LnRvb2xib3gtX3VYalNTUTV7bWFyZ2luLWlubGluZS1zdGFydDphdXRvfS5kZXNjcmlwdGlvbi1fdVhqU1NRNXtwYWRkaW5nOjB9LmRlc2NyaXB0aW9uVGFibGV0U21hbGwtX3VYalNTUTV7bWF4LXdpZHRoOjEwMCU7cGFkZGluZy1pbmxpbmUtZW5kOjU2cHh9Lml0ZW0tX3VYalNTUTV7bWFyZ2luLXRvcDotM3B4O3BhZGRpbmctYm90dG9tOjhweDtwYWRkaW5nLXRvcDowfS5pdGVtLV91WGpTU1E1OmJlZm9yZXtjb250ZW50Om5vbmV9Lml0ZW0tX3VYalNTUTUsLml0ZW0tX3VYalNTUTU6YWN0aXZlLC50aXRsZUl0ZW0tX3VYalNTUTUsLnRpdGxlSXRlbS1fdVhqU1NRNTphY3RpdmV7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1fMC1pWkc0KX1AbWVkaWEgKGFueS1ob3Zlcjpob3Zlcil7Lml0ZW0tX3VYalNTUTU6aG92ZXIsLnRpdGxlSXRlbS1fdVhqU1NRNTpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLV8wLWlaRzQpfX0udGl0bGVJdGVtLV91WGpTU1E1e3Bvc2l0aW9uOnN0YXRpY30udGl0bGVJdGVtLV91WGpTU1E1OmZvY3VzLXdpdGhpbiAucmVtb3ZlLV91WGpTU1E1e3Zpc2liaWxpdHk6dmlzaWJsZX1AbWVkaWEgKGFueS1ob3Zlcjpob3Zlcil7LnRpdGxlSXRlbS1fdVhqU1NRNSAucmVtb3ZlLV91WGpTU1E1LmFjdGl2ZS1fdVhqU1NRNTpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLWNvbnRhaW5lci1maWxsLXByaW1hcnktbmV1dHJhbC1ib2xkKTtjb2xvcjp2YXIoLS1jb2xvci1jb250ZW50LXNlY29uZGFyeS1pbnZlcnNlKX19Lml0ZW1UYWJsZXRTbWFsbC1fdVhqU1NRNTpiZWZvcmUsLnRpdGxlSXRlbVRhYmxldFNtYWxsLV91WGpTU1E1OmJlZm9yZXtjb250ZW50Om5vbmV9Lml0ZW1UYWJsZXRTbWFsbC1fdVhqU1NRNSwuaXRlbVRhYmxldFNtYWxsLV91WGpTU1E1OmFjdGl2ZSwudGl0bGVJdGVtVGFibGV0U21hbGwtX3VYalNTUTUsLnRpdGxlSXRlbVRhYmxldFNtYWxsLV91WGpTU1E1OmFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLV8wLWlaRzQpfUBtZWRpYSAoYW55LWhvdmVyOmhvdmVyKXsuaXRlbVRhYmxldFNtYWxsLV91WGpTU1E1OmhvdmVyLC50aXRsZUl0ZW1UYWJsZXRTbWFsbC1fdVhqU1NRNTpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLV8wLWlaRzQpfX0udGl0bGVJdGVtVGFibGV0U21hbGwtX3VYalNTUTV7bGluZS1oZWlnaHQ6MjRweDtwYWRkaW5nLWJsb2NrOjRweCAwO3BhZGRpbmctaW5saW5lOjE2cHggMjBweH0uaXRlbVRhYmxldFNtYWxsLV91WGpTU1E1e2xpbmUtaGVpZ2h0OjE3cHg7cGFkZGluZy1ibG9jazoxcHggOHB4O3BhZGRpbmctaW5saW5lOjE2cHggMjBweH0uaXRlbUxhYmVsVGFibGV0U21hbGwtX3VYalNTUTV7Zm9udC1zaXplOjE2cHh9LndyYXAtX3VYalNTUTV7Y29sb3I6dmFyKC0tdHYtY29sb3ItcG9wdXAtZWxlbWVudC10ZXh0LHZhcigtLWNvbG9yLXBvcHVwLWVsZW1lbnQtdGV4dCkpO3Bvc2l0aW9uOnJlbGF0aXZlfS53cmFwLV91WGpTU1E1LmhvdmVyZWQtX3VYalNTUTUsLndyYXAtX3VYalNTUTU6YWN0aXZle2NvbG9yOnZhcigtLXR2LWNvbG9yLXBvcHVwLWVsZW1lbnQtdGV4dC1ob3Zlcix2YXIoLS1jb2xvci1wb3B1cC1lbGVtZW50LXRleHQtaG92ZXIpKX1AbWVkaWEgKGFueS1ob3Zlcjpob3Zlcil7LndyYXAtX3VYalNTUTU6aG92ZXJ7Y29sb3I6dmFyKC0tdHYtY29sb3ItcG9wdXAtZWxlbWVudC10ZXh0LWhvdmVyLHZhcigtLWNvbG9yLXBvcHVwLWVsZW1lbnQtdGV4dC1ob3ZlcikpfX0ud3JhcC1fdVhqU1NRNS5ob3ZlcmVkLV91WGpTU1E1e2JhY2tncm91bmQtY29sb3I6dmFyKC0tdHYtY29sb3ItcG9wdXAtZWxlbWVudC1iYWNrZ3JvdW5kLWhvdmVyLHZhcigtLWNvbG9yLXBvcHVwLWVsZW1lbnQtYmFja2dyb3VuZC1ob3ZlcikpfUBtZWRpYSAoYW55LWhvdmVyOmhvdmVyKXsud3JhcC1fdVhqU1NRNTpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXR2LWNvbG9yLXBvcHVwLWVsZW1lbnQtYmFja2dyb3VuZC1ob3Zlcix2YXIoLS1jb2xvci1wb3B1cC1lbGVtZW50LWJhY2tncm91bmQtaG92ZXIpKX19LndyYXAtX3VYalNTUTU6YWN0aXZle2JhY2tncm91bmQtY29sb3I6dmFyKC0tdHYtY29sb3ItcG9wdXAtZWxlbWVudC1iYWNrZ3JvdW5kLWhvdmVyLHZhcigtLWNvbG9yLWNvbnRhaW5lci1maWxsLXByaW1hcnktbmV1dHJhbC1saWdodCkpfS53cmFwLXJCdEVmWlFJe3BhZGRpbmctaW5saW5lLXN0YXJ0OjRweH0udGl0bGVXcmFwLXJCdEVmWlFJe2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW59LmluZGljYXRvcnMtckJ0RWZaUUl7bWFyZ2luLWlubGluZS1lbmQ6MTJweDttYXJnaW4taW5saW5lLXN0YXJ0OjMzcHh9LnRpdGxlLXJCdEVmWlFJe2FsaWduLWl0ZW1zOmNlbnRlcjtjb2xvcjp2YXIoLS10di1jb2xvci1wb3B1cC1lbGVtZW50LXRleHQsdmFyKC0tY29sb3ItcG9wdXAtZWxlbWVudC10ZXh0KSk7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOnJvdzt3aGl0ZS1zcGFjZTpub3dyYXB9LnRpdGxlLXJCdEVmWlFJIC5pY29uLXJCdEVmWlFJe2Rpc3BsYXk6ZmxleDtmbGV4Om5vbmV9LnRpdGxlLXJCdEVmWlFJIC50ZXh0LXJCdEVmWlFJe2ZvbnQtc2l6ZToxNHB4O21hcmdpbi1ibG9jazowIDA7bWFyZ2luLWlubGluZTo1cHggMjBweH0udGl0bGVUYWJsZXRTbWFsbC1yQnRFZlpRSXtwYWRkaW5nLWJvdHRvbTo0cHg7cGFkZGluZy10b3A6NHB4fS50aXRsZVRhYmxldFNtYWxsLXJCdEVmWlFJIC50ZXh0LXJCdEVmWlFJe2ZvbnQtc2l6ZToxNnB4fS5sYWJlbFJvdy1yQnRFZlpRSXtmbGV4OjEgMCAxMDAlO21pbi13aWR0aDoxMDAlfS5sYWJlbC1yQnRFZlpRSXtmbGV4OjAgMCAxMDAlO21pbi13aWR0aDoxMDAlfS5tZW51LXNXUDJYV0Ewe21heC13aWR0aDozNDBweH0ubWVudS1zV1AyWFdBMC5uZXdWaWV3LXNXUDJYV0Ewe3BhZGRpbmc6MCA2cHg7LS11aS1saWItaW4tbGlzdEl0ZW0tc2l6ZUlzRGVza3RvcDowOy0tdWktbGliLWluLWxpc3RJdGVtLXNpemVJc01vYmlsZToxfS5tZW51LXNXUDJYV0EwLm5ld1ZpZXctc1dQMlhXQTAuZGVza3RvcC1zV1AyWFdBMHstLXVpLWxpYi1pbi1saXN0SXRlbS1zaXplSXNEZXNrdG9wOjE7LS11aS1saWItaW4tbGlzdEl0ZW0tc2l6ZUlzTW9iaWxlOjB9Lm1lbnVTbWFsbFRhYmxldC1zV1AyWFdBMHttYXgtd2lkdGg6MTAwJX0ubWVudUl0ZW1IZWFkZXJUYWJsZXRTbWFsbC1zV1AyWFdBMHtwYWRkaW5nOjEwcHggMjBweCAycHh9Lm1lbnVJdGVtSGVhZGVyVGFibGV0U21hbGwtc1dQMlhXQTAubmV3Vmlldy1zV1AyWFdBMHtwYWRkaW5nLWlubGluZToxNnB4fS5tZW51SXRlbUhlYWRlci1zV1AyWFdBMHtjdXJzb3I6ZGVmYXVsdDttYXJnaW46MDtwYWRkaW5nLWJvdHRvbTozcHg7cGFkZGluZy10b3A6NHB4fS5tZW51SXRlbUhlYWRlci1zV1AyWFdBMC5uZXdWaWV3LXNXUDJYV0Ewe3BhZGRpbmctaW5saW5lOjhweH0ud3JhcC1ISjdTM1A0OS5mdWxsLUhKN1MzUDQ5IC5maXJzdC1ISjdTM1A0OXttYXJnaW4taW5saW5lLXN0YXJ0OjB9LndyYXAtSEo3UzNQNDkuZnVsbC1ISjdTM1A0OSAubGFzdC1ISjdTM1A0OXttYXJnaW4taW5saW5lLWVuZDo3cHh9LndyYXAtSEo3UzNQNDkubWVkaXVtLUhKN1MzUDQ5IC5maXJzdC1ISjdTM1A0OXttYXJnaW4taW5saW5lLXN0YXJ0OjB9LndyYXAtSEo3UzNQNDkubWVkaXVtLUhKN1MzUDQ5IC5sYXN0LUhKN1MzUDQ5e21hcmdpbi1pbmxpbmUtZW5kOjdweH0uYnV0dG9uV2l0aEZhdm9yaXRlcy1ISjdTM1A0OXtwYWRkaW5nLWlubGluZS1lbmQ6N3B4fS5pY29uLW9ORGlRQ21Oe3BhZGRpbmc6NXB4fS5yb3ctWDZTMDNPVmp7cGFkZGluZzowIDEycHh9LnJvdy1YNlMwM09WajpsYXN0LWNoaWxke3BhZGRpbmc6MH0ucm93LVg2UzAzT1ZqOmxhc3QtY2hpbGQgLnJvd0lubmVyLVg2UzAzT1Zqe3BhZGRpbmctaW5saW5lLXN0YXJ0OjEycHh9LnNtYWxsUm93LVg2UzAzT1Zqe3BhZGRpbmc6MCAyMHB4fS5zbWFsbFJvdy1YNlMwM09WajpsYXN0LWNoaWxkIC5yb3dJbm5lci1YNlMwM09WantwYWRkaW5nLWlubGluZS1zdGFydDoyMHB4fS5yb3dJbm5lci1YNlMwM09WanthbGlnbi1pdGVtczpjZW50ZXI7ZGlzcGxheTpmbGV4O3BhZGRpbmctdG9wOjFweH0ucm93TGFiZWwtWDZTMDNPVmp7Y29sb3I6dmFyKC0tdHYtY29sb3ItcG9wdXAtZWxlbWVudC1zZWNvbmRhcnktdGV4dCx2YXIoLS1jb2xvci1wb3B1cC1lbGVtZW50LXNlY29uZGFyeS10ZXh0KSk7Zm9udC1zaXplOjEzcHg7d2lkdGg6MThweH0uc21hbGxSb3dMYWJlbC1YNlMwM09Wantmb250LXNpemU6MTFweDtsaW5lLWhlaWdodDoxNnB4O3dpZHRoOjE0cHh9LnJvd0J1dHRvbnMtWDZTMDNPVmp7YWxpZ24taXRlbXM6Y2VudGVyO2Rpc3BsYXk6ZmxleH0ubGF5b3V0QnV0dG9uV3JhcC1YNlMwM09WanthbGw6dW5zZXQ7ZGlzcGxheTpmbGV4O21hcmdpbi1pbmxpbmUtZW5kOjEwcHg7bWluLXdpZHRoOjIwcHg7cG9zaXRpb246cmVsYXRpdmV9LmxheW91dEJ1dHRvbldyYXAtWDZTMDNPVmouYWNjZXNzaWJsZS1YNlMwM09WajpiZWZvcmV7Ym9yZGVyLXJhZGl1czo0cHg7Y29udGVudDoiIjtoZWlnaHQ6MjdweDtvdXRsaW5lOnZhcigtLWNvbG9yLXR2LWJsdWUtNTAwKSBub25lIDJweDtwb2ludGVyLWV2ZW50czpub25lO3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjI5cHh9LmxheW91dEJ1dHRvbldyYXAtWDZTMDNPVmouYWNjZXNzaWJsZS1YNlMwM09Wajpmb2N1cy12aXNpYmxlLmxheW91dEJ1dHRvbldyYXAtWDZTMDNPVmouYWNjZXNzaWJsZS1YNlMwM09WajpiZWZvcmV7b3V0bGluZS1zdHlsZTpzb2xpZH0uc21hbGxXaWR0aC1YNlMwM09WanttYXJnaW4taW5saW5lLWVuZDo3cHh9LnNtYWxsV2lkdGgtWDZTMDNPVmo6bGFzdC1jaGlsZHttYXJnaW4taW5saW5lLWVuZDowfS5sYXlvdXRCdXR0b24tWDZTMDNPVmp7Ym9yZGVyLXJhZGl1czo0cHg7Y29sb3I6dmFyKC0tdHYtY29sb3ItcG9wdXAtZWxlbWVudC10ZXh0LHZhcigtLWNvbG9yLXBvcHVwLWVsZW1lbnQtdGV4dCkpO3BhZGRpbmc6NHB4fS5sYXlvdXRCdXR0b24tWDZTMDNPVmogc3Zne2Rpc3BsYXk6YmxvY2t9LmxheW91dEJ1dHRvbi1YNlMwM09Wai5ob3ZlcmVkLVg2UzAzT1ZqLC5sYXlvdXRCdXR0b24tWDZTMDNPVmo6YWN0aXZle2NvbG9yOnZhcigtLXR2LWNvbG9yLXBvcHVwLWVsZW1lbnQtdGV4dC1ob3Zlcix2YXIoLS1jb2xvci1wb3B1cC1lbGVtZW50LXRleHQtaG92ZXIpKX1AbWVkaWEgKGFueS1ob3Zlcjpob3Zlcil7LmxheW91dEJ1dHRvbi1YNlMwM09Wajpob3Zlcntjb2xvcjp2YXIoLS10di1jb2xvci1wb3B1cC1lbGVtZW50LXRleHQtaG92ZXIsdmFyKC0tY29sb3ItcG9wdXAtZWxlbWVudC10ZXh0LWhvdmVyKSl9fS5sYXlvdXRCdXR0b24tWDZTMDNPVmouaG92ZXJlZC1YNlMwM09WantiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXR2LWNvbG9yLXBvcHVwLWVsZW1lbnQtYmFja2dyb3VuZC1ob3Zlcix2YXIoLS1jb2xvci1wb3B1cC1lbGVtZW50LWJhY2tncm91bmQtaG92ZXIpKX1AbWVkaWEgKGFueS1ob3Zlcjpob3Zlcil7LmxheW91dEJ1dHRvbi1YNlMwM09Wajpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXR2LWNvbG9yLXBvcHVwLWVsZW1lbnQtYmFja2dyb3VuZC1ob3Zlcix2YXIoLS1jb2xvci1wb3B1cC1lbGVtZW50LWJhY2tncm91bmQtaG92ZXIpKX19LmxheW91dEJ1dHRvbi1YNlMwM09WajphY3RpdmV7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS10di1jb2xvci1wb3B1cC1lbGVtZW50LWJhY2tncm91bmQtaG92ZXIsdmFyKC0tY29sb3ItY29udGFpbmVyLWZpbGwtcHJpbWFyeS1uZXV0cmFsLWxpZ2h0KSl9LmxheW91dEJ1dHRvbi1YNlMwM09Wai5pc0FjdGl2ZS1YNlMwM09WantiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXR2LWNvbG9yLXBvcHVwLWVsZW1lbnQtYmFja2dyb3VuZC1hY3RpdmUsdmFyKC0tY29sb3ItY29udGFpbmVyLWZpbGwtcHJpbWFyeS1uZXV0cmFsLWV4dHJhLWJvbGQpKTtjb2xvcjp2YXIoLS10di1jb2xvci1wb3B1cC1lbGVtZW50LXRleHQtYWN0aXZlLHZhcigtLWNvbG9yLWNvbnRlbnQtcHJpbWFyeS1pbnZlcnNlKSl9LnNtYWxsV2lkdGhMYXlvdXRCdXR0b24tWDZTMDNPVmp7cGFkZGluZzo3LjVweCA2LjVweH0ubGF5b3V0QnV0dG9ucy1YNlMwM09WanttYXJnaW4tYm90dG9tOjEwcHh9LmxheW91dEJ1dHRvbnMtWDZTMDNPVmosLnRvZ2dsZXItcDVHaTJoSTF7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOnJvdztqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2Vlbn0udG9nZ2xlci1wNUdpMmhJMXthbGlnbi1pdGVtczpjZW50ZXI7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS10di1jb2xvci1wb3B1cC1iYWNrZ3JvdW5kLHZhcigtLWNvbG9yLXBvcHVwLWJhY2tncm91bmQpKTtjb2xvcjp2YXIoLS10di1jb2xvci1wb3B1cC1lbGVtZW50LXRleHQsdmFyKC0tY29sb3ItcG9wdXAtZWxlbWVudC10ZXh0KSk7cGFkZGluZzoxNHB4IDE0cHggMTJweH0udG9nZ2xlci1wNUdpMmhJMS5ob3ZlcmVkLXA1R2kyaEkxLC50b2dnbGVyLXA1R2kyaEkxOmFjdGl2ZXtjb2xvcjp2YXIoLS10di1jb2xvci1wb3B1cC1lbGVtZW50LXRleHQtaG92ZXIsdmFyKC0tY29sb3ItcG9wdXAtZWxlbWVudC10ZXh0LWhvdmVyKSl9QG1lZGlhIChhbnktaG92ZXI6aG92ZXIpey50b2dnbGVyLXA1R2kyaEkxOmhvdmVye2NvbG9yOnZhcigtLXR2LWNvbG9yLXBvcHVwLWVsZW1lbnQtdGV4dC1ob3Zlcix2YXIoLS1jb2xvci1wb3B1cC1lbGVtZW50LXRleHQtaG92ZXIpKX19LnRvZ2dsZXItcDVHaTJoSTEuaG92ZXJlZC1wNUdpMmhJMXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXR2LWNvbG9yLXBvcHVwLWVsZW1lbnQtYmFja2dyb3VuZC1ob3Zlcix2YXIoLS1jb2xvci1wb3B1cC1lbGVtZW50LWJhY2tncm91bmQtaG92ZXIpKX1AbWVkaWEgKGFueS1ob3Zlcjpob3Zlcil7LnRvZ2dsZXItcDVHaTJoSTE6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS10di1jb2xvci1wb3B1cC1lbGVtZW50LWJhY2tncm91bmQtaG92ZXIsdmFyKC0tY29sb3ItcG9wdXAtZWxlbWVudC1iYWNrZ3JvdW5kLWhvdmVyKSl9fS50b2dnbGVyLXA1R2kyaEkxOmFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXR2LWNvbG9yLXBvcHVwLWVsZW1lbnQtYmFja2dyb3VuZC1ob3Zlcix2YXIoLS1jb2xvci1jb250YWluZXItZmlsbC1wcmltYXJ5LW5ldXRyYWwtbGlnaHQpKX0udG9nZ2xlci1wNUdpMmhJMSAubGFiZWwtcDVHaTJoSTF7Zm9udC1zaXplOjE0cHg7bWFyZ2luLWlubGluZS1lbmQ6MTRweH0udG9nZ2xlci1wNUdpMmhJMSAubGFiZWwtcDVHaTJoSTEuY2VudGVyZWQtcDVHaTJoSTF7bWFyZ2luLWlubGluZS1zdGFydDo0MXB4O3RleHQtYWxpZ246Y2VudGVyO3dpZHRoOjEwMCV9LnRvZ2dsZXItcDVHaTJoSTEuY2hlY2tlZC1wNUdpMmhJMXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXR2LWNvbG9yLXBvcHVwLWVsZW1lbnQtYmFja2dyb3VuZC1hY3RpdmUsdmFyKC0tY29sb3ItcG9wdXAtZWxlbWVudC1iYWNrZ3JvdW5kLWFjdGl2ZSkpO2NvbG9yOnZhcigtLXR2LWNvbG9yLXBvcHVwLWVsZW1lbnQtdGV4dC1hY3RpdmUsdmFyKC0tY29sb3ItcG9wdXAtZWxlbWVudC10ZXh0LWFjdGl2ZSkpfS50b2dnbGVyLXA1R2kyaEkxLmNoZWNrZWQtcDVHaTJoSTEuaG92ZXJlZC1wNUdpMmhJMSwudG9nZ2xlci1wNUdpMmhJMS5jaGVja2VkLXA1R2kyaEkxOmFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXR2LWNvbG9yLXRvb2xiYXItdG9nZ2xlLWJ1dHRvbi1iYWNrZ3JvdW5kLWFjdGl2ZS1ob3Zlcix2YXIoLS1jb2xvci10b29sYmFyLXRvZ2dsZS1idXR0b24tYmFja2dyb3VuZC1hY3RpdmUtaG92ZXIpKX1AbWVkaWEgKGFueS1ob3Zlcjpob3Zlcil7LnRvZ2dsZXItcDVHaTJoSTEuY2hlY2tlZC1wNUdpMmhJMTpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXR2LWNvbG9yLXRvb2xiYXItdG9nZ2xlLWJ1dHRvbi1iYWNrZ3JvdW5kLWFjdGl2ZS1ob3Zlcix2YXIoLS1jb2xvci10b29sYmFyLXRvZ2dsZS1idXR0b24tYmFja2dyb3VuZC1hY3RpdmUtaG92ZXIpKX19LnRvZ2dsZXItcDVHaTJoSTEuY2hlY2tlZC1wNUdpMmhJMSBzdmd7Y29sb3I6dmFyKC0tY29sb3Itd2hpdGUpfS50b2dnbGVyLXA1R2kyaEkxIHN2Z3tjb2xvcjp2YXIoLS1jb2xvci10b29sYmFyLXRvZ2dsZS1idXR0b24taWNvbik7ZGlzcGxheTppbmxpbmUtYmxvY2s7dmVydGljYWwtYWxpZ246bWlkZGxlfWh0bWwudGhlbWUtZGFyayAudG9nZ2xlci1wNUdpMmhJMS5jaGVja2VkLXA1R2kyaEkxIHN2Z3tjb2xvcjp2YXIoLS1jb2xvci13aGl0ZSl9LnN3aXRjaGVyTGFiZWwtcDVHaTJoSTF7b3ZlcmZsb3c6dmlzaWJsZX0uYnV0dG9uLVBWTHhLaElJe2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3dpZHRoOjM4cHh9LmRyb3Bkb3duLVBWTHhLaElJe2NvbG9yOnZhcigtLWNvbG9yLWNvbGQtZ3JheS00NTApO2N1cnNvcjpkZWZhdWx0O21hcmdpbi1ib3R0b206LTZweDttYXJnaW4tdG9wOjdweH0ubGF5b3V0VHlwZS1QVkx4S2hJSXttYXJnaW4tYm90dG9tOjNweDtwYWRkaW5nOjEwcHggMTJweDt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2V9LnRpdGxlLVBWTHhLaElJe2NvbG9yOnZhcigtLXR2LWNvbG9yLXBvcHVwLWVsZW1lbnQtc2Vjb25kYXJ5LXRleHQsdmFyKC0tY29sb3ItcG9wdXAtZWxlbWVudC1zZWNvbmRhcnktdGV4dCkpO2ZvbnQtc2l6ZToxMnB4O2xldHRlci1zcGFjaW5nOjEuNHB4O21hcmdpbi10b3A6OHB4O3BhZGRpbmc6MTJweDt0ZXh0LWFsaWduOmNlbnRlcjt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2V9LnN5bmNDaGFydHMtUFZMeEtoSUl7bWFyZ2luLXRvcDo4cHg7cGFkZGluZzoxMHB4IDEycHh9LnN5bmNDaGFydHMtUFZMeEtoSUkubW9iaWxlLVBWTHhLaElJe3BhZGRpbmc6MTBweCAyMHB4fS50YWJsZXRXcmFwcGVyLVBWTHhLaElJe3BhZGRpbmctYmxvY2s6MCAxNnB4O3BhZGRpbmctaW5saW5lOjAgMH0uaWNvbi1QVkx4S2hJSXtkaXNwbGF5OmJsb2NrfS5pY29uLVBWTHhLaElJIHN2Z3tkaXNwbGF5OmJsb2NrO3BvaW50ZXItZXZlbnRzOm5vbmV9LnN5bmNMaXN0V3JhcHBlci1QVkx4S2hJSXttYXJnaW4tYm90dG9tOjEwcHh9LnN3aXRjaGVyLVBWTHhLaElJe2FsaWduLWl0ZW1zOmNlbnRlcjtib3gtc2l6aW5nOmJvcmRlci1ib3g7ZGlzcGxheTpmbGV4O2hlaWdodDozMnB4O3BhZGRpbmc6NXB4IDEycHh9LnN3aXRjaGVyLVBWTHhLaElJLm1vYmlsZS1QVkx4S2hJSXtoZWlnaHQ6NDBweDtwYWRkaW5nOjEwcHggMjBweH0uc3dpdGNoTGFiZWxXcmFwLVBWTHhLaElJe2Rpc3BsYXk6ZmxleH0uc3dpdGNoTGFiZWwtUFZMeEtoSUl7Zm9udC1zaXplOjE0cHg7bGluZS1oZWlnaHQ6MThweH0uaWNvbldyYXAtUFZMeEtoSUl7bWFyZ2luLWlubGluZS1zdGFydDo3cHh9LmluZm9JY29uLVBWTHhLaElJe2NvbG9yOnZhcigtLWNvbG9yLWNvbnRlbnQtcHJpbWFyeS1uZXV0cmFsLWxpZ2h0KTtkaXNwbGF5OmZsZXh9QG1lZGlhIChhbnktaG92ZXI6aG92ZXIpey5pbmZvSWNvbi1QVkx4S2hJSTpob3Zlcntjb2xvcjp2YXIoLS1jb2xvci1kZWZhdWx0LWdyYXkpfX0uYWNjZXNzaWJsZUxhYmVsLVBWTHhLaElJe291dGxpbmU6bm9uZTtvdmVyZmxvdzp2aXNpYmxlO3Bvc2l0aW9uOnJlbGF0aXZlfS5hY2Nlc3NpYmxlTGFiZWwtUFZMeEtoSUk6Zm9jdXN7b3V0bGluZTpub25lfS5hY2Nlc3NpYmxlTGFiZWwtUFZMeEtoSUk6Zm9jdXMtdmlzaWJsZXtvdXRsaW5lOm5vbmV9LmFjY2Vzc2libGVMYWJlbC1QVkx4S2hJSTphZnRlcntib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLXdpZHRoOjJweDtib3gtc2l6aW5nOmJvcmRlci1ib3g7Y29udGVudDoiIjtkaXNwbGF5Om5vbmU7aGVpZ2h0OmNhbGMoMTAwJSArIDhweCk7aW5zZXQtaW5saW5lLXN0YXJ0Oi00cHg7cG9pbnRlci1ldmVudHM6bm9uZTtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6LTRweDt3aWR0aDpjYWxjKDEwMCUgKyA4cHgpO3otaW5kZXg6MX0uYWNjZXNzaWJsZUxhYmVsLVBWTHhLaElJOmZvY3VzOmFmdGVye2Rpc3BsYXk6YmxvY2t9LmFjY2Vzc2libGVMYWJlbC1QVkx4S2hJSTpmb2N1cy12aXNpYmxlOmFmdGVye2Rpc3BsYXk6YmxvY2t9LmFjY2Vzc2libGVMYWJlbC1QVkx4S2hJSTpmb2N1czpub3QoOmZvY3VzLXZpc2libGUpOmFmdGVye2Rpc3BsYXk6bm9uZX0uYWNjZXNzaWJsZUxhYmVsLVBWTHhLaElJOmFmdGVye2JvcmRlci1jb2xvcjp2YXIoLS1jb2xvci10di1ibHVlLTUwMCk7Ym9yZGVyLXJhZGl1czo2cHh9LmN1c3RvbVRyYWRpbmdWaWV3U3R5bGVCdXR0b24tRTJ2N1didW4ud2l0aG91dEljb24tRTJ2N1didW57cGFkZGluZzowIDVweH0="}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/67685.13755296d7d26eb7dbcc.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.082Z","timestamp":1785148034082,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/67685.13755296d7d26eb7dbcc.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\ncontent-type: text/css; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a435fcb-15f\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Tue, 30 Jun 2026 06:18:51 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.57\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 06/30/2026 11:55:10\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 50c4b310a20b57fe2a2653a54d79c6ff\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":351,"size_decoded":962,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with very long lines (351), with no line terminators","md5":"e318e6f9288c2f57bc947bf5784073b5","sha1":"a8b58198db65d302cc3fbf15118ab6bc7d525299","sha256":"71a4dbafdc173ecf98b93d11ac6a6ee8c80cbc2ea048858bcffa5e40d5254862","sha512":"dd5a0eddb94f41914f89297eba707a66a3471917598a8b67f2a6305092870bbc68f08e9af7598c1481a6fc82a2b44452c0b8f13d9ccc3eb9f059726a689bc62f","ssdeep":"","tlshash":"d8e020e355cd600d012f064cfd5774be920955037b5b6ccbea50e185edc82402535c08","first_seen":"2026-06-30T21:57:43.299741Z","last_seen":"2026-07-27T12:48:39.786558Z","times_seen":222,"resource_available":false,"data":"Lml0ZW0tWVJXMEpzRGR7cGFkZGluZy1ib3R0b206MnB4O3BhZGRpbmctdG9wOjJweDtwb3NpdGlvbjpyZWxhdGl2ZX1AbWVkaWEgKG1heC13aWR0aDo0NDBweCl7Lml0ZW0tWVJXMEpzRGR7Zm9udC1zaXplOjE2cHg7cGFkZGluZy1ib3R0b206NnB4O3BhZGRpbmctdG9wOjZweH19LnNob3J0Y3V0LVlSVzBKc0Rke21hcmdpbi1pbmxpbmUtZW5kOjA7bWluLXdpZHRoOmF1dG99QG1lZGlhIChtYXgtd2lkdGg6NDc5cHgpey5zaG9ydGN1dC1ZUlcwSnNEZHtkaXNwbGF5Om5vbmV9fS5sb2FkaW5nLVlSVzBKc0RkIC5pY29uLVlSVzBKc0RkLC5sb2FkaW5nLVlSVzBKc0RkIC5zaG9ydGN1dC1ZUlcwSnNEZHtvcGFjaXR5OjB9"}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/53297.a6f6547cdad8d37971fc.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.094Z","timestamp":1785148034094,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/53297.a6f6547cdad8d37971fc.js HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a632877-103a6\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Fri, 24 Jul 2026 08:55:19 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/24/2026 10:31:24\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: f7720ca15dd07118a3669c22d90769b5\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":66470,"size_decoded":23266,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (3072)","md5":"c6a3f4550b8b4efa1a9ac0a26ab757a6","sha1":"376e5c7e4bf11c4c576ba0a644af8f841f17c662","sha256":"e673211228f9cec0ee6b36576c556da8959897ff56e4baa281606d9694f888fc","sha512":"fbe34869d39b17339388031748218f6816d1fe3b5a9dea653c536c49ea8fa574d3164227efd1dceb114737127e80c52c98fa1f254d7bbc7863dcf4fb37759723","ssdeep":"1536:QGwKmjvbKAmbj5HdO/Z8y+xp2PFg4PPNn42M:9XA299O/Z8DxpyFg4PP6b","tlshash":"ee535c40b160b0fc45e7809ad52f049ae33b1558b46648e8f53ddcec2a9adcdb267e7c","first_seen":"2026-07-24T11:36:48.185143Z","last_seen":"2026-07-27T12:48:39.791498Z","times_seen":97,"resource_available":true,"data":"KHNlbGYud2VicGFja0NodW5rdHJhZGluZ3ZpZXc9c2VsZi53ZWJwYWNrQ2h1bmt0cmFkaW5ndmlld3x8W10pLnB1c2goW1szNTk2NCw1MzI5Nyw2MzU5NV0sezg1MzMzNihlLHQpe3ZhciBvLG4scztuPVt0XSxvPWZ1bmN0aW9uKGUpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiB0KGUpe2lmKEFycmF5LmlzQXJyYXkoZSkpe2Zvcih2YXIgdD0wLG89QXJyYXkoZS5sZW5ndGgpO3Q8ZS5sZW5ndGg7dCsrKW9bdF09ZVt0XTtyZXR1cm4gb31yZXR1cm4gQXJyYXkuZnJvbShlKX1PYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIG89ITE7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3cpe3ZhciBuPXtnZXQgcGFzc2l2ZSgpe289ITB9fTt3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigidGVzdFBhc3NpdmUiLG51bGwsbiksd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoInRlc3RQYXNzaXZlIixudWxsLG4pfXZhciBzPSJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93JiZ3aW5kb3cubmF2aWdhdG9yJiZ3aW5kb3cubmF2aWdhdG9yLnBsYXRmb3JtJiYvaVAoYWR8aG9uZXxvZCkvLnRlc3Qod2luZG93Lm5hdmlnYXRvci5wbGF0Zm9ybSksaT1bXSxyPSExLGE9LTEsbD12b2lkIDAsYz12b2lkIDAsdT1mdW5jdGlvbihlKXtyZXR1cm4gaS5zb21lKChmdW5jdGlvbih0KXtyZXR1cm4hKCF0Lm9wdGlvbnMuYWxsb3dUb3VjaE1vdmV8fCF0Lm9wdGlvbnMuYWxsb3dUb3VjaE1vdmUoZSkpfSkpfSxkPWZ1bmN0aW9uKGUpe3ZhciB0PWV8fHdpbmRvdy5ldmVudDtyZXR1cm4hIXUodC50YXJnZXQpfHwxPHQudG91Y2hlcy5sZW5ndGh8fCh0LnByZXZlbnREZWZhdWx0JiZ0LnByZXZlbnREZWZhdWx0KCksITEpfSxoPWZ1bmN0aW9uKCl7c2V0VGltZW91dCgoZnVuY3Rpb24oKXt2b2lkIDAhPT1jJiYoZG9jdW1lbnQuYm9keS5zdHlsZS5wYWRkaW5nUmlnaHQ9YyxjPXZvaWQgMCksdm9pZCAwIT09bCYmKGRvY3VtZW50LmJvZHkuc3R5bGUub3ZlcmZsb3c9bCxsPXZvaWQgMCl9KSl9O2UuZGlzYWJsZUJvZHlTY3JvbGw9ZnVuY3Rpb24oZSxuKXtpZihzKXtpZighZSlyZXR1cm4gdm9pZCBjb25zb2xlLmVycm9yKCJkaXNhYmxlQm9keVNjcm9sbCB1bnN1Y2Nlc3NmdWwgLSB0YXJnZXRFbGVtZW50IG11c3QgYmUgcHJvdmlkZWQgd2hlbiBjYWxsaW5nIGRpc2FibGVCb2R5U2Nyb2xsIG9uIElPUyBkZXZpY2VzLiIpO2lmKGUmJiFpLnNvbWUoKGZ1bmN0aW9uKHQpe3JldHVybiB0LnRhcmdldEVsZW1lbnQ9PT1lfSkpKXt2YXIgaD17dGFyZ2V0RWxlbWVudDplLG9wdGlvbnM6bnx8e319O2k9W10uY29uY2F0KHQoaSksW2hdKSxlLm9udG91Y2hzdGFydD1mdW5jdGlvbihlKXsxPT09ZS50YXJnZXRUb3VjaGVzLmxlbmd0aCYmKGE9ZS50YXJnZXRUb3VjaGVzWzBdLmNsaWVudFkpfSxlLm9udG91Y2htb3ZlPWZ1bmN0aW9uKHQpe3ZhciBvLG4scyxpOzE9PT10LnRhcmdldFRvdWNoZXMubGVuZ3RoJiYobj1lLGk9KG89dCkudGFyZ2V0VG91Y2hlc1swXS5jbGllbnRZLWEsIXUoby50YXJnZXQpJiYobiYmMD09PW4uc2Nyb2xsVG9wJiYwPGl8fChzPW4pJiZzLnNjcm9sbEhlaWdodC1zLnNjcm9sbFRvcDw9cy5jbGllbnRIZWlnaHQmJmk8MD9kKG8pOm8uc3RvcFByb3BhZ2F0aW9uKCkpKX0scnx8KGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoInRvdWNobW92ZSIsZCxvP3twYXNzaXZlOiExfTp2b2lkIDApLHI9ITApfX1lbHNle209bixzZXRUaW1lb3V0KChmdW5jdGlvbigpe2lmKHZvaWQgMD09PWMpe3ZhciBlPSEhbSYmITA9PT1tLnJlc2VydmVTY3JvbGxCYXJHYXAsdD13aW5kb3cuaW5uZXJXaWR0aC1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50V2lkdGg7ZSYmMDx0JiYoYz1kb2N1bWVudC5ib2R5LnN0eWxlLnBhZGRpbmdSaWdodCxkb2N1bWVudC5ib2R5LnN0eWxlLnBhZGRpbmdSaWdodD10KyJweCIpfXZvaWQgMD09PWwmJihsPWRvY3VtZW50LmJvZHkuc3R5bGUub3ZlcmZsb3csZG9jdW1lbnQuYm9keS5zdHlsZS5vdmVyZmxvdz0iaGlkZGVuIil9KSk7dmFyIHA9e3RhcmdldEVsZW1lbnQ6ZSxvcHRpb25zOm58fHt9fTtpPVtdLmNvbmNhdCh0KGkpLFtwXSl9dmFyIG19LGUuY2xlYXJBbGxCb2R5U2Nyb2xsTG9ja3M9ZnVuY3Rpb24oKXtzPyhpLmZvckVhY2goKGZ1bmN0aW9uKGUpe2UudGFyZ2V0RWxlbWVudC5vbnRvdWNoc3RhcnQ9bnVsbCxlLnRhcmdldEVsZW1lbnQub250b3VjaG1vdmU9bnVsbH0pKSxyJiYoZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigidG91Y2htb3ZlIixkLG8/e3Bhc3NpdmU6ITF9OnZvaWQgMCkscj0hMSksaT1bXSxhPS0xKTooaCgpLGk9W10pfSxlLmVuYWJsZUJvZHlTY3JvbGw9ZnVuY3Rpb24oZSl7aWYocyl7aWYoIWUpcmV0dXJuIHZvaWQgY29uc29sZS5lcnJvcigiZW5hYmxlQm9keVNjcm9sbCB1bnN1Y2Nlc3NmdWwgLSB0YXJnZXRFbGVtZW50IG11c3QgYmUgcHJvdmlkZWQgd2hlbiBjYWxsaW5nIGVuYWJsZUJvZHlTY3JvbGwgb24gSU9TIGRldmljZXMuIik7ZS5vbnRvdWNoc3RhcnQ9bnVsbCxlLm9udG91Y2htb3ZlPW51bGwsaT1pLmZpbHRlcigoZnVuY3Rpb24odCl7cmV0dXJuIHQudGFyZ2V0RWxlbWVudCE9PWV9KSksciYmMD09PWkubGVuZ3RoJiYoZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigidG91Y2htb3ZlIixkLG8/e3Bhc3NpdmU6ITF9OnZvaWQgMCkscj0hMSl9ZWxzZSAxPT09aS5sZW5ndGgmJmlbMF0udGFyZ2V0RWxlbWVudD09PWU/KGgoKSxpPVtdKTppPWkuZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4gdC50YXJnZXRFbGVtZW50IT09ZX0pKX19LHZvaWQgMD09PShzPSJmdW5jdGlvbiI9PXR5cGVvZiBvP28uYXBwbHkodCxuKTpvKXx8KGUuZXhwb3J0cz1zKX0sOTU4NjM5KGUpe2UuZXhwb3J0cz17bWVudVdyYXA6Im1lbnVXcmFwLWxCSXhJd3R6Iixpc01lYXN1cmluZzoiaXNNZWFzdXJpbmctbEJJeEl3dHoiLHNjcm9sbFdyYXA6InNjcm9sbFdyYXAtbEJJeEl3dHoiLG1vbWVudHVtQmFzZWQ6Im1vbWVudHVtQmFzZWQtbEJJeEl3dHoiLG1lbnVCb3g6Im1lbnVCb3gtbEJJeEl3dHoiLAppc0hpZGRlbjoiaXNIaWRkZW4tbEJJeEl3dHoifX0sNDcwMjk1KGUpe2UuZXhwb3J0cz17InRhYmxldC1zbWFsbC1icmVha3BvaW50IjoiKG1heC13aWR0aDogNDQwcHgpIixpdGVtOiJpdGVtLU1pMF90NXVOIixob3ZlcmVkOiJob3ZlcmVkLU1pMF90NXVOIixpc0Rpc2FibGVkOiJpc0Rpc2FibGVkLU1pMF90NXVOIixpc0FjdGl2ZToiaXNBY3RpdmUtTWkwX3Q1dU4iLHNob3J0Y3V0OiJzaG9ydGN1dC1NaTBfdDV1TiIsdG9vbGJveDoidG9vbGJveC1NaTBfdDV1TiIsd2l0aEljb246IndpdGhJY29uLU1pMF90NXVOIiwicm91bmQtaWNvbiI6InJvdW5kLWljb24tTWkwX3Q1dU4iLGljb246Imljb24tTWkwX3Q1dU4iLHN0YXJ0U2xvdDoic3RhcnRTbG90LU1pMF90NXVOIixsYWJlbFJvdzoibGFiZWxSb3ctTWkwX3Q1dU4iLGxhYmVsOiJsYWJlbC1NaTBfdDV1TiIsc2hvd09uSG92ZXI6InNob3dPbkhvdmVyLU1pMF90NXVOIiwiZGlzY2xvc3VyZS1pdGVtLWNpcmNsZS1sb2dvIjoiZGlzY2xvc3VyZS1pdGVtLWNpcmNsZS1sb2dvLU1pMF90NXVOIixzaG93T25Gb2N1czoic2hvd09uRm9jdXMtTWkwX3Q1dU4ifX0sNzYxMDkzKGUpe2UuZXhwb3J0cz17dGl0bGU6InRpdGxlLW5ma0dtN05HIn19LDk3Nzc3KGUpe2UuZXhwb3J0cz17YmFkZ2U6ImJhZGdlLXg0VVZaYWJNIixoYXNDaGlsZHJlbjoiaGFzQ2hpbGRyZW4teDRVVlphYk0iLGNvbnRlbnQ6ImNvbnRlbnQteDRVVlphYk0iLHNsb3Q6InNsb3QteDRVVlphYk0iLHhzbWFsbDoieHNtYWxsLXg0VVZaYWJNIixzbWFsbDoic21hbGwteDRVVlphYk0iLG1lZGl1bToibWVkaXVtLXg0VVZaYWJNIixsYXJnZToibGFyZ2UteDRVVlphYk0iLHhsYXJnZToieGxhcmdlLXg0VVZaYWJNIix4eGxhcmdlOiJ4eGxhcmdlLXg0VVZaYWJNIn19LDk5NDUoZSl7ZS5leHBvcnRzPXtkZWZhdWx0OiJkZWZhdWx0LUdaTHlrTlFQIixkYW5nZXI6ImRhbmdlci1HWkx5a05RUCIsd2FybmluZzoid2FybmluZy1HWkx5a05RUCIsc3VjY2Vzczoic3VjY2Vzcy1HWkx5a05RUCIsbmV1dHJhbDoibmV1dHJhbC1HWkx5a05RUCIsIm5ldXRyYWwtbGlnaHQiOiJuZXV0cmFsLWxpZ2h0LUdaTHlrTlFQIixzbWFsbDoic21hbGwtR1pMeWtOUVAiLG1lZGl1bToibWVkaXVtLUdaTHlrTlFQIixsYXJnZToibGFyZ2UtR1pMeWtOUVAiLGljb25XcmFwcGVyOiJpY29uV3JhcHBlci1HWkx5a05RUCIsaWNvbjoiaWNvbi1HWkx5a05RUCJ9fSw0MjQyNjIoZSl7ZS5leHBvcnRzPXtidXR0b246ImJ1dHRvbi1zWHNwWk5uWiIsaG92ZXI6ImhvdmVyLXNYc3BaTm5aIixjbGlja2VkOiJjbGlja2VkLXNYc3BaTm5aIixhY2Nlc3NpYmxlOiJhY2Nlc3NpYmxlLXNYc3BaTm5aIixhcnJvdzoiYXJyb3ctc1hzcFpObloiLGFycm93V3JhcDoiYXJyb3dXcmFwLXNYc3BaTm5aIixpc09wZW5lZDoiaXNPcGVuZWQtc1hzcFpObloifX0sMTk4MjA5KGUpe2UuZXhwb3J0cz17Imljb24td3JhcHBlciI6Imljb24td3JhcHBlci1kaWtkZXd3eCIsIndpdGgtbGluayI6IndpdGgtbGluay1kaWtkZXd3eCIsIndpdGgtdG9vbHRpcCI6IndpdGgtdG9vbHRpcC1kaWtkZXd3eCIsIm5vLWFjdGl2ZS1zdGF0ZSI6Im5vLWFjdGl2ZS1zdGF0ZS1kaWtkZXd3eCJ9fSw4MTAyODEoZSl7ZS5leHBvcnRzPXtpY29uOiJpY29uLVdCMnkwRW5QIixkcm9wcGVkOiJkcm9wcGVkLVdCMnkwRW5QIn19LDQwNjExMChlLHQsbyl7InVzZSBzdHJpY3QiO28uZCh0LHtNYXRjaE1lZGlhOigpPT5zfSk7dmFyIG49byg3Nzk0NzQpO2NsYXNzIHMgZXh0ZW5kcyBuLlB1cmVDb21wb25lbnR7Y29uc3RydWN0b3IoZSl7c3VwZXIoZSksdGhpcy5faGFuZGxlQ2hhbmdlPSgpPT57dGhpcy5mb3JjZVVwZGF0ZSgpfSx0aGlzLnN0YXRlPXtxdWVyeTp3aW5kb3cubWF0Y2hNZWRpYSh0aGlzLnByb3BzLnJ1bGUpfX1jb21wb25lbnREaWRNb3VudCgpe3RoaXMuX3N1YnNjcmliZSh0aGlzLnN0YXRlLnF1ZXJ5KX1jb21wb25lbnREaWRVcGRhdGUoZSx0KXt0aGlzLnN0YXRlLnF1ZXJ5IT09dC5xdWVyeSYmKHRoaXMuX3Vuc3Vic2NyaWJlKHQucXVlcnkpLHRoaXMuX3N1YnNjcmliZSh0aGlzLnN0YXRlLnF1ZXJ5KSl9Y29tcG9uZW50V2lsbFVubW91bnQoKXt0aGlzLl91bnN1YnNjcmliZSh0aGlzLnN0YXRlLnF1ZXJ5KX1yZW5kZXIoKXtyZXR1cm4gdGhpcy5wcm9wcy5jaGlsZHJlbih0aGlzLnN0YXRlLnF1ZXJ5Lm1hdGNoZXMpfXN0YXRpYyBnZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMoZSx0KXtyZXR1cm4gZS5ydWxlIT09dC5xdWVyeS5tZWRpYT97cXVlcnk6d2luZG93Lm1hdGNoTWVkaWEoZS5ydWxlKX06bnVsbH1fc3Vic2NyaWJlKGUpe2UuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIix0aGlzLl9oYW5kbGVDaGFuZ2UpfV91bnN1YnNjcmliZShlKXtlLnJlbW92ZUV2ZW50TGlzdGVuZXIoImNoYW5nZSIsdGhpcy5faGFuZGxlQ2hhbmdlKX19fSw2ODEyMjQoZSx0LG8peyJ1c2Ugc3RyaWN0IjtvLmQodCx7TWVudUNvbnRleHQ6KCk9Pm59KTtjb25zdCBuPW8oNzc5NDc0KS5jcmVhdGVDb250ZXh0KG51bGwpfSwxNDUxNTAoZSx0LG8peyJ1c2Ugc3RyaWN0IjtvLmQodCx7REVGQVVMVF9NRU5VX1RIRU1FOigpPT5mLE1lbnU6KCk9PmJ9KTt2YXIgbj1vKDc3OTQ3NCkscz1vKDkxNDQ4NyksaT1vLm4ocykscj1vKDEzODYzOCksYT1vKDYwNzgzMiksbD1vKDkwMzQyKSxjPW8oODkxMjA5KSx1PW8oNjQwNzQ0KSxkPW8oNTE4NzUpLGg9byg3MjcwOSkscD1vKDI3NjAxOSksbT1vKDY4MTIyNCksdj1vKDk1ODYzOSk7Y29uc3QgZj12O3ZhciBnOyFmdW5jdGlvbihlKXtlW2UuSW5kZW50RnJvbVdpbmRvdz0wXT0iSW5kZW50RnJvbVdpbmRvdyJ9KGd8fChnPXt9KSk7Y2xhc3MgYiBleHRlbmRzIG4uUHVyZUNvbXBvbmVudHtjb25zdHJ1Y3RvcihlKXtzdXBlcihlKSx0aGlzLl9jb250YWluZXJSZWY9bnVsbCx0aGlzLl9zY3JvbGxXcmFwUmVmPW51bGwsdGhpcy5fcmFmPW51bGwsdGhpcy5fc2Nyb2xsUmFmPW51bGwsdGhpcy5fc2Nyb2xsVGltZW91dD12b2lkIDAsdGhpcy5fbWFuYWdlcj1uZXcgbC5PdmVybGFwTWFuYWdlcix0aGlzLl9ob3RrZXlzPW51bGwsCnRoaXMuX3Njcm9sbD0wLHRoaXMuX2hhbmRsZUNvbnRhaW5lclJlZj1lPT57dGhpcy5fY29udGFpbmVyUmVmPWUsdGhpcy5wcm9wcy5yZWZlcmVuY2UmJigiZnVuY3Rpb24iPT10eXBlb2YgdGhpcy5wcm9wcy5yZWZlcmVuY2UmJnRoaXMucHJvcHMucmVmZXJlbmNlKGUpLCJvYmplY3QiPT10eXBlb2YgdGhpcy5wcm9wcy5yZWZlcmVuY2UmJih0aGlzLnByb3BzLnJlZmVyZW5jZS5jdXJyZW50PWUpKX0sdGhpcy5faGFuZGxlU2Nyb2xsV3JhcFJlZj1lPT57dGhpcy5fc2Nyb2xsV3JhcFJlZj1lLCJmdW5jdGlvbiI9PXR5cGVvZiB0aGlzLnByb3BzLnNjcm9sbFdyYXBSZWZlcmVuY2UmJnRoaXMucHJvcHMuc2Nyb2xsV3JhcFJlZmVyZW5jZShlKSwib2JqZWN0Ij09dHlwZW9mIHRoaXMucHJvcHMuc2Nyb2xsV3JhcFJlZmVyZW5jZSYmKHRoaXMucHJvcHMuc2Nyb2xsV3JhcFJlZmVyZW5jZS5jdXJyZW50PWUpfSx0aGlzLl9oYW5kbGVDdXN0b21SZW1lYXN1cmVEZWxlZ2F0ZT0oKT0+e3RoaXMuX3Jlc2l6ZUZvcmNlZCgpLHRoaXMuX2hhbmRsZU1lYXN1cmUoKX0sdGhpcy5faGFuZGxlTWVhc3VyZT0oe2NhbGxiYWNrOmUsZm9yY2VSZWNhbGNQb3NpdGlvbjp0fT17fSk9PntpZih0aGlzLnN0YXRlLmlzTWVhc3VyZVZhbGlkJiYhdClyZXR1cm47Y29uc3R7cG9zaXRpb246b309dGhpcy5wcm9wcyxuPSgwLHIuZW5zdXJlTm90TnVsbCkodGhpcy5fY29udGFpbmVyUmVmKTtsZXQgcz1uLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO2NvbnN0IGk9ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodCxhPWRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aCxsPXRoaXMucHJvcHMuY2xvc2VPblNjcm9sbE91dHNpZGVPZmZzZXQ/PzA7bGV0IGM9aS0wLWw7Y29uc3QgZD1zLmhlaWdodD5jO2lmKGQpeygwLHIuZW5zdXJlTm90TnVsbCkodGhpcy5fc2Nyb2xsV3JhcFJlZikuc3R5bGUub3ZlcmZsb3dZPSJzY3JvbGwiLHM9bi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKX1jb25zdHt3aWR0aDpoLGhlaWdodDpwfT1zLG09ImZ1bmN0aW9uIj09dHlwZW9mIG8/byh7Y29udGVudFdpZHRoOmgsY29udGVudEhlaWdodDpwLGF2YWlsYWJsZVdpZHRoOmEsYXZhaWxhYmxlSGVpZ2h0Oml9KTpvLHY9bT8uaW5kZW50RnJvbVdpbmRvdz8ubGVmdD8/MCxmPWEtKG0ub3ZlcnJpZGVXaWR0aD8/aCktKG0/LmluZGVudEZyb21XaW5kb3c/LnJpZ2h0Pz8wKSxnPSgwLHUuY2xhbXApKG0ueCx2LE1hdGgubWF4KHYsZikpLGI9KG0/LmluZGVudEZyb21XaW5kb3c/LnRvcD8/MCkrbCx3PWktKG0ub3ZlcnJpZGVIZWlnaHQ/P3ApLShtPy5pbmRlbnRGcm9tV2luZG93Py5ib3R0b20/PzApO2xldCB5PSgwLHUuY2xhbXApKG0ueSxiLE1hdGgubWF4KGIsdykpO2lmKG0uZm9yYmlkQ29ycmVjdFlDb29yZCYmeTxtLnkmJihjLT1tLnkteSx5PW0ueSksdCYmdm9pZCAwIT09dGhpcy5wcm9wcy5jbG9zZU9uU2Nyb2xsT3V0c2lkZU9mZnNldCYmbS55PD10aGlzLnByb3BzLmNsb3NlT25TY3JvbGxPdXRzaWRlT2Zmc2V0KXJldHVybiB2b2lkIHRoaXMuX2hhbmRsZUdsb2JhbENsb3NlKCEwKTtjb25zdCBfPW0ub3ZlcnJpZGVIZWlnaHQ/PyhkP2M6dm9pZCAwKTt0aGlzLnNldFN0YXRlKHthcHBlYXJpbmdNZW51SGVpZ2h0OnQ/dGhpcy5zdGF0ZS5hcHBlYXJpbmdNZW51SGVpZ2h0Ol8sYXBwZWFyaW5nTWVudVdpZHRoOnQ/dGhpcy5zdGF0ZS5hcHBlYXJpbmdNZW51V2lkdGg6bS5vdmVycmlkZVdpZHRoLGFwcGVhcmluZ1Bvc2l0aW9uOnt4OmcseX0saXNNZWFzdXJlVmFsaWQ6ITB9LCgoKT0+e3RoaXMucHJvcHMuZG9Ob3RSZXN0b3JlUG9zaXRpb258fHRoaXMuX3Jlc3RvcmVTY3JvbGxQb3NpdGlvbigpLGUmJmUoKX0pKX0sdGhpcy5fcmVzdG9yZVNjcm9sbFBvc2l0aW9uPSgpPT57Y29uc3QgZT0oMCxyLmVuc3VyZU5vdE51bGwpKHRoaXMuX3Njcm9sbFdyYXBSZWYpO2Uuc2Nyb2xsVG9wPXRoaXMuX3Njcm9sbDtjb25zdCB0PWRvY3VtZW50LmFjdGl2ZUVsZW1lbnQsbz0oMCxyLmVuc3VyZU5vdE51bGwpKHRoaXMuX2NvbnRhaW5lclJlZik7aWYodCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50JiZvLmNvbnRhaW5zKHQpJiYhdGhpcy5faXNFbGVtZW50RnVsbHlWaXNpYmxlKHQsZSkpdHJ5e3Quc2Nyb2xsSW50b1ZpZXcoKX1jYXRjaChlKXt9fSx0aGlzLl9pc0VsZW1lbnRGdWxseVZpc2libGU9KGUsdCk9Pntjb25zdCBvPWUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksbj10LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3JldHVybiBvLnRvcD49bi50b3AmJm8uYm90dG9tPD1uLmJvdHRvbX0sdGhpcy5fcmVzaXplRm9yY2VkPSgpPT57dGhpcy5zZXRTdGF0ZSh7YXBwZWFyaW5nTWVudUhlaWdodDp2b2lkIDAsYXBwZWFyaW5nTWVudVdpZHRoOnZvaWQgMCxhcHBlYXJpbmdQb3NpdGlvbjp2b2lkIDAsaXNNZWFzdXJlVmFsaWQ6dm9pZCAwfSl9LHRoaXMuX3Jlc2l6ZT0oKT0+e251bGw9PT10aGlzLl9yYWYmJih0aGlzLl9yYWY9cmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgoKT0+e3RoaXMuc2V0U3RhdGUoe2FwcGVhcmluZ01lbnVIZWlnaHQ6dm9pZCAwLGFwcGVhcmluZ01lbnVXaWR0aDp2b2lkIDAsYXBwZWFyaW5nUG9zaXRpb246dm9pZCAwLGlzTWVhc3VyZVZhbGlkOnZvaWQgMH0pLHRoaXMuX3JhZj1udWxsfSkpKX0sdGhpcy5faGFuZGxlR2xvYmFsQ2xvc2U9ZT0+e3RoaXMucHJvcHMub25DbG9zZShlKX0sdGhpcy5faGFuZGxlU2xvdD1lPT57dGhpcy5fbWFuYWdlci5zZXRDb250YWluZXIoZSl9LHRoaXMuX2hhbmRsZVNjcm9sbD0oKT0+e3RoaXMuX3Njcm9sbD0oMCxyLmVuc3VyZU5vdE51bGwpKHRoaXMuX3Njcm9sbFdyYXBSZWYpLnNjcm9sbFRvcH0sdGhpcy5faGFuZGxlU2Nyb2xsT3V0c2lkZUVuZD0oKT0+e2NsZWFyVGltZW91dCh0aGlzLl9zY3JvbGxUaW1lb3V0KSx0aGlzLl9zY3JvbGxUaW1lb3V0PXNldFRpbWVvdXQoKCgpPT57dGhpcy5faGFuZGxlTWVhc3VyZSh7Zm9yY2VSZWNhbGNQb3NpdGlvbjohMH0pfSksODApfSx0aGlzLl9oYW5kbGVTY3JvbGxPdXRzaWRlPWU9PnsKZS50YXJnZXQhPT10aGlzLl9zY3JvbGxXcmFwUmVmJiYodGhpcy5faGFuZGxlU2Nyb2xsT3V0c2lkZUVuZCgpLG51bGw9PT10aGlzLl9zY3JvbGxSYWYmJih0aGlzLl9zY3JvbGxSYWY9cmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgoKT0+e3RoaXMuX2hhbmRsZU1lYXN1cmUoe2ZvcmNlUmVjYWxjUG9zaXRpb246ITB9KSx0aGlzLl9zY3JvbGxSYWY9bnVsbH0pKSkpfSx0aGlzLnN0YXRlPXt9fWNvbXBvbmVudERpZE1vdW50KCl7dGhpcy5faGFuZGxlTWVhc3VyZSh7Y2FsbGJhY2s6dGhpcy5wcm9wcy5vbk9wZW59KTtjb25zdHtjdXN0b21DbG9zZURlbGVnYXRlOmU9cC5nbG9iYWxDbG9zZURlbGVnYXRlLGN1c3RvbVJlbWVhc3VyZURlbGVnYXRlOnR9PXRoaXMucHJvcHM7ZS5zdWJzY3JpYmUodGhpcyx0aGlzLl9oYW5kbGVHbG9iYWxDbG9zZSksdD8uc3Vic2NyaWJlKG51bGwsdGhpcy5faGFuZGxlQ3VzdG9tUmVtZWFzdXJlRGVsZWdhdGUpLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJyZXNpemUiLHRoaXMuX3Jlc2l6ZSk7Y29uc3Qgbz1udWxsIT09dGhpcy5jb250ZXh0O3RoaXMuX2hvdGtleXN8fG98fCh0aGlzLl9ob3RrZXlzPWguY3JlYXRlR3JvdXAoe2Rlc2M6IlBvcHVwIG1lbnUifSksdGhpcy5faG90a2V5cy5hZGQoe2Rlc2M6IkNsb3NlIixob3RrZXk6MjcsaGFuZGxlcjooKT0+e3RoaXMucHJvcHMub25LZXlib2FyZENsb3NlJiZ0aGlzLnByb3BzLm9uS2V5Ym9hcmRDbG9zZSgpLHRoaXMuX2hhbmRsZUdsb2JhbENsb3NlKCl9fSkpLHRoaXMucHJvcHMucmVwb3NpdGlvbk9uU2Nyb2xsJiZ3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigic2Nyb2xsIix0aGlzLl9oYW5kbGVTY3JvbGxPdXRzaWRlLHtjYXB0dXJlOiEwfSl9Y29tcG9uZW50RGlkVXBkYXRlKCl7dGhpcy5faGFuZGxlTWVhc3VyZSgpfWNvbXBvbmVudFdpbGxVbm1vdW50KCl7Y29uc3R7Y3VzdG9tQ2xvc2VEZWxlZ2F0ZTplPXAuZ2xvYmFsQ2xvc2VEZWxlZ2F0ZSxjdXN0b21SZW1lYXN1cmVEZWxlZ2F0ZTp0fT10aGlzLnByb3BzO2UudW5zdWJzY3JpYmUodGhpcyx0aGlzLl9oYW5kbGVHbG9iYWxDbG9zZSksdD8udW5zdWJzY3JpYmUobnVsbCx0aGlzLl9oYW5kbGVDdXN0b21SZW1lYXN1cmVEZWxlZ2F0ZSksd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsdGhpcy5fcmVzaXplKSx3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigic2Nyb2xsIix0aGlzLl9oYW5kbGVTY3JvbGxPdXRzaWRlLHtjYXB0dXJlOiEwfSksdGhpcy5faG90a2V5cyYmKHRoaXMuX2hvdGtleXMuZGVzdHJveSgpLHRoaXMuX2hvdGtleXM9bnVsbCksbnVsbCE9PXRoaXMuX3JhZiYmKGNhbmNlbEFuaW1hdGlvbkZyYW1lKHRoaXMuX3JhZiksdGhpcy5fcmFmPW51bGwpLG51bGwhPT10aGlzLl9zY3JvbGxSYWYmJihjYW5jZWxBbmltYXRpb25GcmFtZSh0aGlzLl9zY3JvbGxSYWYpLHRoaXMuX3Njcm9sbFJhZj1udWxsKSx0aGlzLl9zY3JvbGxUaW1lb3V0JiZjbGVhclRpbWVvdXQodGhpcy5fc2Nyb2xsVGltZW91dCl9cmVuZGVyKCl7Y29uc3R7aWQ6ZSxyb2xlOnQsImFyaWEtbGFiZWwiOm8sImFyaWEtbGFiZWxsZWRieSI6cywiYXJpYS1hY3RpdmVkZXNjZW5kYW50IjpyLCJhcmlhLWhpZGRlbiI6bCwiYXJpYS1kZXNjcmliZWRieSI6dSwiYXJpYS1pbnZhbGlkIjpoLGNoaWxkcmVuOnAsbWluV2lkdGg6Zix0aGVtZTpnPXYsY2xhc3NOYW1lOmIsbWF4SGVpZ2h0Onksb25Nb3VzZU92ZXI6Xyxvbk1vdXNlT3V0Ongsb25LZXlEb3duOkUsb25Gb2N1czpDLG9uQmx1cjpTfT10aGlzLnByb3BzLHthcHBlYXJpbmdNZW51SGVpZ2h0Ok0sYXBwZWFyaW5nTWVudVdpZHRoOkEsYXBwZWFyaW5nUG9zaXRpb246ayxpc01lYXN1cmVWYWxpZDpOfT10aGlzLnN0YXRlLEQ9eyItLXVpLWtpdC1tZW51LW1heC13aWR0aCI6YCR7ayYmay54fXB4YCxtYXhXaWR0aDoiY2FsYygxMDB2dyAtIHZhcigtLXVpLWtpdC1tZW51LW1heC13aWR0aCkgLSA2cHgpIn07cmV0dXJuIG4uY3JlYXRlRWxlbWVudChtLk1lbnVDb250ZXh0LlByb3ZpZGVyLHt2YWx1ZTp0aGlzfSxuLmNyZWF0ZUVsZW1lbnQoYy5TdWJtZW51SGFuZGxlcixudWxsLG4uY3JlYXRlRWxlbWVudChhLlNsb3RDb250ZXh0LlByb3ZpZGVyLHt2YWx1ZTp0aGlzLl9tYW5hZ2VyfSxuLmNyZWF0ZUVsZW1lbnQoImRpdiIse2lkOmUscm9sZTp0LCJhcmlhLWxhYmVsIjpvLCJhcmlhLWxhYmVsbGVkYnkiOnMsImFyaWEtYWN0aXZlZGVzY2VuZGFudCI6ciwiYXJpYS1oaWRkZW4iOmwsImFyaWEtZGVzY3JpYmVkYnkiOnUsImFyaWEtaW52YWxpZCI6aCxjbGFzc05hbWU6aSgpKGIsZy5tZW51V3JhcCwhTiYmZy5pc01lYXN1cmluZyksc3R5bGU6e2hlaWdodDpNLGxlZnQ6ayYmay54LG1pbldpZHRoOmYscG9zaXRpb246ImZpeGVkIix0b3A6ayYmay55LHdpZHRoOkEsLi4udGhpcy5wcm9wcy5saW1pdE1heFdpZHRoJiZEfSwiZGF0YS1uYW1lIjp0aGlzLnByb3BzWyJkYXRhLW5hbWUiXSwiZGF0YS1xYS1pZCI6dGhpcy5wcm9wcy5kYXRhUWFJZCwiZGF0YS10b29sdGlwLXNob3ctb24tZm9jdXMiOnRoaXMucHJvcHNbImRhdGEtdG9vbHRpcC1zaG93LW9uLWZvY3VzIl0scmVmOnRoaXMuX2hhbmRsZUNvbnRhaW5lclJlZixvblNjcm9sbENhcHR1cmU6dGhpcy5wcm9wcy5vblNjcm9sbCxvbkNvbnRleHRNZW51OmQucHJldmVudERlZmF1bHRGb3JDb250ZXh0TWVudSx0YWJJbmRleDp0aGlzLnByb3BzLnRhYkluZGV4LG9uTW91c2VPdmVyOl8sb25Nb3VzZU91dDp4LG9uS2V5RG93bjpFLG9uRm9jdXM6QyxvbkJsdXI6U30sbi5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6aSgpKGcuc2Nyb2xsV3JhcCwhdGhpcy5wcm9wcy5ub01vbWVudHVtQmFzZWRTY3JvbGwmJmcubW9tZW50dW1CYXNlZCksc3R5bGU6e292ZXJmbG93WTp2b2lkIDAhPT1NPyJzY3JvbGwiOiJhdXRvIixtYXhIZWlnaHQ6eX0sb25TY3JvbGxDYXB0dXJlOnRoaXMuX2hhbmRsZVNjcm9sbCxyZWY6dGhpcy5faGFuZGxlU2Nyb2xsV3JhcFJlZn0sbi5jcmVhdGVFbGVtZW50KHcse2NsYXNzTmFtZTpnLm1lbnVCb3h9LHApKSkpLG4uY3JlYXRlRWxlbWVudChhLlNsb3QsewpyZWZlcmVuY2U6dGhpcy5faGFuZGxlU2xvdH0pKSl9dXBkYXRlKGUpe2U/dGhpcy5fcmVzaXplRm9yY2VkKCk6dGhpcy5fcmVzaXplKCl9Zm9jdXMoZSl7dGhpcy5fY29udGFpbmVyUmVmPy5mb2N1cyhlKX1ibHVyKCl7dGhpcy5fY29udGFpbmVyUmVmPy5ibHVyKCl9fWZ1bmN0aW9uIHcoZSl7Y29uc3QgdD0oMCxyLmVuc3VyZU5vdE51bGwpKCgwLG4udXNlQ29udGV4dCkoYy5TdWJtZW51Q29udGV4dCkpLG89bi51c2VSZWYobnVsbCk7cmV0dXJuIG4uY3JlYXRlRWxlbWVudCgiZGl2Iix7cmVmOm8sY2xhc3NOYW1lOmUuY2xhc3NOYW1lLG9uTW91c2VPdmVyOmZ1bmN0aW9uKGUpe2lmKCEobnVsbCE9PXQuY3VycmVudCYmZS50YXJnZXQgaW5zdGFuY2VvZiBOb2RlJiYobj1lLnRhcmdldCxvLmN1cnJlbnQ/LmNvbnRhaW5zKG4pKSkpcmV0dXJuO3ZhciBuO3QuaXNTdWJtZW51Tm9kZShlLnRhcmdldCl8fHQuc2V0Q3VycmVudChudWxsKX0sImRhdGEtcWEtaWQiOiJtZW51LWlubmVyIn0sZS5jaGlsZHJlbil9Yi5jb250ZXh0VHlwZT1jLlN1Ym1lbnVDb250ZXh0fSwxNTM3MzQoZSx0LG8peyJ1c2Ugc3RyaWN0IjtvLmQodCx7REVGQVVMVF9QT1BVUF9NRU5VX0lURU1fVEhFTUU6KCk9PnUsUG9wdXBNZW51SXRlbTooKT0+aH0pO3ZhciBuPW8oNzc5NDc0KSxzPW8oOTE0NDg3KSxpPW8ubihzKSxyPW8oMzg3Nzc0KSxhPW8oODQ4OTg4KSxsPW8oMjc2MDE5KSxjPW8oNDcwMjk1KTtjb25zdCB1PWM7ZnVuY3Rpb24gZChlKXtlLnN0b3BQcm9wYWdhdGlvbigpfWZ1bmN0aW9uIGgoZSl7Y29uc3R7aWQ6dCxyb2xlOm8sY2xhc3NOYW1lOnMsdGl0bGU6dSxsYWJlbFJvd0NsYXNzTmFtZTpoLGxhYmVsQ2xhc3NOYW1lOnAsdG9vbGJveENsYXNzTmFtZTptLHNob3J0Y3V0OnYsZm9yY2VTaG93U2hvcnRjdXRzOmYsaWNvbjpnLGljb25DbGFzc25hbWU6Yixpc0FjdGl2ZTp3LGlzRGlzYWJsZWQ6eSxpc0hvdmVyZWQ6XyxhcHBlYXJBc0Rpc2FibGVkOngsbGFiZWw6RSxsaW5rOkMsc2hvd1Rvb2xib3hPbkhvdmVyOlMsc2hvd1Rvb2xib3hPbkZvY3VzOk0sdGFyZ2V0OkEscmVsOmssdG9vbGJveDpOLHRvb2xib3hSb2xlOkQscmVmZXJlbmNlOk8sb25Nb3VzZU91dDpQLG9uTW91c2VPdmVyOkwsb25LZXlEb3duOkIsc3VwcHJlc3NUb29sYm94Q2xpY2s6VD0hMCx0aGVtZTpSPWMsdGFiSW5kZXg6eix0YWdOYW1lOkYscmVuZGVyQ29tcG9uZW50Okkscm91bmRlZEljb246VyxpY29uQXJpYVByb3BzOkgsY2lyY2xlTG9nbzpWLGRvbnRDbG9zZVBvcHVwOlEsb25DbGljazpVLG9uQ2xpY2tBcmc6WixvbkNvbnRleHRNZW51OnEsb25Nb3VzZVVwOkcsc3RhcnRTbG90OkssZGF0YVFhSWQ6JCwuLi5qfT1lLFk9KDAsbi51c2VSZWYpKG51bGwpLFg9KDAsbi51c2VNZW1vKSgoKCk9PmZ1bmN0aW9uKGUpe2Z1bmN0aW9uIHQodCl7Y29uc3R7cmVmZXJlbmNlOm8sLi4uc309dCxpPWU/PyhzLmhyZWY/ImEiOiJkaXYiKSxyPSJhIj09PWk/czpmdW5jdGlvbihlKXtjb25zdHtkb3dubG9hZDp0LGhyZWY6byxocmVmTGFuZzpuLG1lZGlhOnMscGluZzppLHJlbDpyLHRhcmdldDphLHR5cGU6bCxyZWZlcnJlclBvbGljeTpjLC4uLnV9PWU7cmV0dXJuIHV9KHMpO3JldHVybiBuLmNyZWF0ZUVsZW1lbnQoaSx7Li4ucixyZWY6b30pfXJldHVybiB0LmRpc3BsYXlOYW1lPWBEZWZhdWx0Q29tcG9uZW50KCR7ZX0pYCx0fShGKSksW0ZdKSxKPUk/P1g7cmV0dXJuIG4uY3JlYXRlRWxlbWVudChKLHsuLi5qLGlkOnQscm9sZTpvLGNsYXNzTmFtZTppKCkocyxSLml0ZW0sZyYmUi53aXRoSWNvbix7W1IuaXNBY3RpdmVdOncsW1IuaXNEaXNhYmxlZF06eXx8eCxbUi5ob3ZlcmVkXTpffSksdGl0bGU6dSxocmVmOkMsdGFyZ2V0OkEscmVsOmsscmVmZXJlbmNlOmZ1bmN0aW9uKGUpe1kuY3VycmVudD1lLCJmdW5jdGlvbiI9PXR5cGVvZiBPJiZPKGUpOyJvYmplY3QiPT10eXBlb2YgTyYmKE8uY3VycmVudD1lKX0sb25DbGljazpmdW5jdGlvbihlKXtpZih5KXJldHVybjtVJiZVKFosZSk7UXx8KGUuY3VycmVudFRhcmdldC5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgicG9wdXAtbWVudS1jbG9zZS1ldmVudCIse2J1YmJsZXM6ITAsZGV0YWlsOntjbGlja1R5cGU6KDAsYS5pc0tleWJvYXJkQ2xpY2spKGUpPyJrZXlib2FyZCI6Im1vdXNlIn19KSksKDAsbC5nbG9iYWxDbG9zZU1lbnUpKCkpfSxvbkNvbnRleHRNZW51OnEsb25Nb3VzZVVwOkcsb25Nb3VzZU92ZXI6TCxvbk1vdXNlT3V0OlAsb25LZXlEb3duOkIsdGFiSW5kZXg6eiwiZGF0YS1xYS1pZCI6JH0sViYmbi5jcmVhdGVFbGVtZW50KHIuQ2lyY2xlTG9nbyx7Li4uSCxjbGFzc05hbWU6Y1siZGlzY2xvc3VyZS1pdGVtLWNpcmNsZS1sb2dvIl0sc2l6ZToieHh4c21hbGwiLGxvZ29Vcmw6Vi5sb2dvVXJsLHBsYWNlaG9sZGVyTGV0dGVyOiJwbGFjZWhvbGRlckxldHRlciJpbiBWP1YucGxhY2Vob2xkZXJMZXR0ZXI6dm9pZCAwfSksSyYmbi5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOlIuc3RhcnRTbG90fSxLKSxnJiZuLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHsiYXJpYS1sYWJlbCI6SCYmSFsiYXJpYS1sYWJlbCJdLCJhcmlhLWhpZGRlbiI6SCYmQm9vbGVhbihIWyJhcmlhLWhpZGRlbiJdKSxjbGFzc05hbWU6aSgpKFIuaWNvbixXJiZjWyJyb3VuZC1pY29uIl0sYiksZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUw6e19faHRtbDpnfX0pLG4uY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZTppKCkoUi5sYWJlbFJvdyxoKX0sbi5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOmkoKShSLmxhYmVsLHApfSxFKSksKHZvaWQgMCE9PXZ8fGYpJiZuLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6Ui5zaG9ydGN1dH0sKGVlPXYpJiZlZS5zcGxpdCgiKyIpLmpvaW4oIiArICIpKSx2b2lkIDAhPT1OJiZuLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtyb2xlOkQsb25DbGljazpUP2Q6dm9pZCAwLGNsYXNzTmFtZTppKCkobSxSLnRvb2xib3gse1tSLnNob3dPbkhvdmVyXTpTLFtSLnNob3dPbkZvY3VzXTpNfSl9LE4pKTt2YXIgZWV9fSw2MzI5OTIoZSx0LG8peyJ1c2Ugc3RyaWN0Igo7by5kKHQse0Nsb3NlRGVsZWdhdGVDb250ZXh0OigpPT5pfSk7dmFyIG49byg3Nzk0NzQpLHM9bygyNzYwMTkpO2NvbnN0IGk9bi5jcmVhdGVDb250ZXh0KHMuZ2xvYmFsQ2xvc2VEZWxlZ2F0ZSl9LDgzNTk2NChlLHQsbyl7InVzZSBzdHJpY3QiO28uZCh0LHtQb3B1cE1lbnU6KCk9Pmh9KTt2YXIgbj1vKDc3OTQ3NCkscz1vKDEyOTM2NSksaT1vKDkyODEzMikscj1vKDU4NTQ4KSxhPW8oMjM2NzY1KSxsPW8oMjI3OTQ5KSxjPW8oMTQ1MTUwKSx1PW8oNjMyOTkyKSxkPW8oMzAxOTM3KTtmdW5jdGlvbiBoKGUpe2NvbnN0e2NvbnRyb2xsZXI6dCxjaGlsZHJlbjpvLGlzT3BlbmVkOmgsY2xvc2VPbkNsaWNrT3V0c2lkZTpwPSEwLGRvTm90Q2xvc2VPbjptLG9uQ2xpY2tPdXRzaWRlOnYsb25DbG9zZTpmLG9uS2V5Ym9hcmRDbG9zZTpnLGRhdGFRYUlkOmI9InBvcHVwLW1lbnUtY29udGFpbmVyIixjbG9zZU9uU2Nyb2xsT3V0c2lkZU9mZnNldDp3LC4uLnl9PWUsXz0oMCxuLnVzZUNvbnRleHQpKHUuQ2xvc2VEZWxlZ2F0ZUNvbnRleHQpLHg9bi51c2VDb250ZXh0KGwuTWVudVdpZHRoQ29udGV4dCksRT0oMCxuLnVzZUNvbnRleHQpKGQuUmVtZWFzdXJlRGVsZWdhdGVDb250ZXh0KSxDPSgwLGEudXNlT3V0c2lkZUV2ZW50KSh7aGFuZGxlcjpmdW5jdGlvbihlKXt2JiZ2KGUpO2lmKCFwKXJldHVybjtjb25zdCB0PSgwLGkuZGVmYXVsdCkobSk/bSgpOm51bGw9PW0/W106W21dO2lmKHQubGVuZ3RoPjAmJmUudGFyZ2V0IGluc3RhbmNlb2YgTm9kZSlmb3IoY29uc3QgbyBvZiB0KXtjb25zdCB0PXMuZmluZERPTU5vZGUobyk7aWYodCBpbnN0YW5jZW9mIE5vZGUmJnQuY29udGFpbnMoZS50YXJnZXQpKXJldHVybn1mKCl9LG1vdXNlRG93bjohMCx0b3VjaFN0YXJ0OiEwfSk7cmV0dXJuIGg/bi5jcmVhdGVFbGVtZW50KHIuUG9ydGFsLHt0b3A6IjAiLGxlZnQ6IjAiLHJpZ2h0OiIwIixib3R0b206IjAiLHBvaW50ZXJFdmVudHM6Im5vbmUifSxuLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtyZWY6QyxzdHlsZTp7cG9pbnRlckV2ZW50czoiYXV0byJ9fSxuLmNyZWF0ZUVsZW1lbnQoYy5NZW51LHsuLi55LG9uQ2xvc2U6ZixvbktleWJvYXJkQ2xvc2U6ZyxvblNjcm9sbDpmdW5jdGlvbih0KXtjb25zdHtvblNjcm9sbDpvfT1lO28mJm8odCl9LGN1c3RvbUNsb3NlRGVsZWdhdGU6XyxjdXN0b21SZW1lYXN1cmVEZWxlZ2F0ZTpFLHJlZjp0LGRhdGFRYUlkOmIsbGltaXRNYXhXaWR0aDp4LnNldE1lbnVNYXhXaWR0aCwiZGF0YS10b29sdGlwLXNob3ctb24tZm9jdXMiOiJ0cnVlIixjbG9zZU9uU2Nyb2xsT3V0c2lkZU9mZnNldDp3fSxvKSkpOm51bGx9fSwzMDE5MzcoZSx0LG8peyJ1c2Ugc3RyaWN0IjtvLmQodCx7UmVtZWFzdXJlRGVsZWdhdGVDb250ZXh0OigpPT5ufSk7Y29uc3Qgbj1vKDc3OTQ3NCkuY3JlYXRlQ29udGV4dCh2b2lkIDApfSwxOTkxNzIoZSx0LG8peyJ1c2Ugc3RyaWN0IjtvLmQodCx7VG9vbFdpZGdldE1lbnVTdW1tYXJ5OigpPT5hfSk7dmFyIG49byg3Nzk0NzQpLHM9byg5MTQ0ODcpLGk9by5uKHMpLHI9byg3NjEwOTMpO2Z1bmN0aW9uIGEoZSl7cmV0dXJuIG4uY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOmkoKShlLmNsYXNzTmFtZSxyLnRpdGxlKX0sZS5jaGlsZHJlbil9fSw1NTgwMzAoZSx0LG8peyJ1c2Ugc3RyaWN0IjtvLmQodCx7VG91Y2hTY3JvbGxDb250YWluZXI6KCk9PmN9KTt2YXIgbj1vKDc3OTQ3NCkscz1vKDg1MzMzNiksaT1vKDEzODYzOCkscj1vKDczODQ1OCk7Y29uc3QgYT1DU1Muc3VwcG9ydHMoIm92ZXJzY3JvbGwtYmVoYXZpb3IiLCJub25lIik7bGV0IGw9MDtjb25zdCBjPSgwLG4uZm9yd2FyZFJlZikoKChlLHQpPT57Y29uc3R7Y2hpbGRyZW46bywuLi5pfT1lLGM9KDAsbi51c2VSZWYpKG51bGwpO3JldHVybigwLG4udXNlSW1wZXJhdGl2ZUhhbmRsZSkodCwoKCk9PmMuY3VycmVudCkpLCgwLG4udXNlTGF5b3V0RWZmZWN0KSgoKCk9PntpZihyLmlzSU9TKXJldHVybiBsKyssbnVsbCE9PWMuY3VycmVudCYmKGE/MT09PWwmJihkb2N1bWVudC5ib2R5LnN0eWxlLm92ZXJzY3JvbGxCZWhhdmlvcj0ibm9uZSIpOigwLHMuZGlzYWJsZUJvZHlTY3JvbGwpKGMuY3VycmVudCx7YWxsb3dUb3VjaE1vdmU6dShjKX0pKSwoKT0+e2wtLSxudWxsIT09Yy5jdXJyZW50JiYoYT8wPT09bCYmKGRvY3VtZW50LmJvZHkuc3R5bGUub3ZlcnNjcm9sbEJlaGF2aW9yPSIiKTooMCxzLmVuYWJsZUJvZHlTY3JvbGwpKGMuY3VycmVudCkpfX0pLFtdKSxuLmNyZWF0ZUVsZW1lbnQoImRpdiIse3JlZjpjLC4uLml9LG8pfSkpO2Z1bmN0aW9uIHUoZSl7cmV0dXJuIHQ9Pntjb25zdCBvPSgwLGkuZW5zdXJlTm90TnVsbCkoZS5jdXJyZW50KSxuPWRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ7cmV0dXJuIW8uY29udGFpbnModCl8fG51bGwhPT1uJiZvLmNvbnRhaW5zKG4pJiZuLmNvbnRhaW5zKHQpfX19LDM4NzIzMShlLHQsbyl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4oZSx0LG89e30pe3JldHVybiBPYmplY3QuYXNzaWduKHt9LGUsZnVuY3Rpb24oZSx0LG89e30pe2NvbnN0IG49T2JqZWN0LmFzc2lnbih7fSx0KTtmb3IoY29uc3QgcyBvZiBPYmplY3Qua2V5cyh0KSl7Y29uc3QgaT1vW3NdfHxzO2kgaW4gZSYmKG5bc109W2VbaV0sdFtzXV0uam9pbigiICIpKX1yZXR1cm4gbn0oZSx0LG8pKX1vLmQodCx7bWVyZ2VUaGVtZXM6KCk9Pm59KX0sNTkwNDg2KGUsdCxvKXsidXNlIHN0cmljdCI7by5kKHQse0JhZGdlOigpPT5jfSk7dmFyIG49byg3Nzk0NzQpLHM9byg5MTQ0ODcpLGk9by5uKHMpLHI9byg5Nzc3NyksYT1vLm4ocik7ZnVuY3Rpb24gbCh7aHJlZjplLG9uQ2xpY2s6dCxyZWZlcmVuY2U6bywuLi5zfSl7cmV0dXJuIGU/bi5jcmVhdGVFbGVtZW50KCJhIix7aHJlZjplLG9uQ2xpY2s6dCx0YXJnZXQ6Il9ibGFuayIscmVmOm8sLi4uc30pOnQ/bi5jcmVhdGVFbGVtZW50KCJidXR0b24iLHtvbkNsaWNrOnQscmVmOm8sLi4uc30pOm4uY3JlYXRlRWxlbWVudCgic3BhbiIse3JlZjpvLC4uLnN9KX0KZnVuY3Rpb24gYyh7Y2xhc3NOYW1lOmUsc2l6ZTp0LGxlZnRTbG90Om8scmlnaHRTbG90OnMsY2hpbGRyZW46ciwuLi5jfSl7Y29uc3QgdT1pKCkoZSxhKCkuYmFkZ2UsdCYmYSgpW3RdLHImJmEoKS5oYXNDaGlsZHJlbik7cmV0dXJuIG4uY3JlYXRlRWxlbWVudChsLHtjbGFzc05hbWU6dSwuLi5jfSxvJiZuLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTphKCkuc2xvdH0sbyksciYmbi5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOmEoKS5jb250ZW50fSxyKSxzJiZuLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTphKCkuc2xvdH0scykpfX0sOTAwODQxKGUsdCxvKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbihlLHQsbyxuLHMpe2Z1bmN0aW9uIGkocyl7aWYoZT5zLnRpbWVTdGFtcClyZXR1cm47Y29uc3QgaT1zLnRhcmdldDt2b2lkIDAhPT1vJiZudWxsIT09dCYmbnVsbCE9PWkmJmkub3duZXJEb2N1bWVudD09PW4mJih0LmNvbnRhaW5zKGkpfHxvKHMpKX1yZXR1cm4gcy5jbGljayYmbi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsaSwhMSkscy5tb3VzZURvd24mJm4uYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vkb3duIixpLCExKSxzLnRvdWNoRW5kJiZuLmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoZW5kIixpLCExKSxzLnRvdWNoU3RhcnQmJm4uYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hzdGFydCIsaSwhMSksKCk9PntuLnJlbW92ZUV2ZW50TGlzdGVuZXIoImNsaWNrIixpLCExKSxuLnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsaSwhMSksbi5yZW1vdmVFdmVudExpc3RlbmVyKCJ0b3VjaGVuZCIsaSwhMSksbi5yZW1vdmVFdmVudExpc3RlbmVyKCJ0b3VjaHN0YXJ0IixpLCExKX19by5kKHQse2FkZE91dHNpZGVFdmVudExpc3RlbmVyOigpPT5ufSl9LDIzNjc2NShlLHQsbyl7InVzZSBzdHJpY3QiO28uZCh0LHt1c2VPdXRzaWRlRXZlbnQ6KCk9PnJ9KTt2YXIgbj1vKDc3OTQ3NCkscz1vKDYxNjMxMSksaT1vKDkwMDg0MSk7ZnVuY3Rpb24gcihlKXtjb25zdHtjbGljazp0LG1vdXNlRG93bjpvLHRvdWNoRW5kOnIsdG91Y2hTdGFydDphLGhhbmRsZXI6bCxyZWZlcmVuY2U6Y309ZSx1PSgwLG4udXNlUmVmKShudWxsKSxkPSgwLG4udXNlUmVmKSgidW5kZWZpbmVkIj09dHlwZW9mIHdpbmRvdz8wOm5ldyB3aW5kb3cuQ3VzdG9tRXZlbnQoInRpbWVzdGFtcCIpLnRpbWVTdGFtcCk7cmV0dXJuKDAscy51c2VJc29tb3JwaGljTGF5b3V0RWZmZWN0KSgoKCk9Pntjb25zdCBlPXtjbGljazp0LG1vdXNlRG93bjpvLHRvdWNoRW5kOnIsdG91Y2hTdGFydDphfSxuPWM/Yy5jdXJyZW50OnUuY3VycmVudDtyZXR1cm4oMCxpLmFkZE91dHNpZGVFdmVudExpc3RlbmVyKShkLmN1cnJlbnQsbixsLGRvY3VtZW50LGUpfSksW3QsbyxyLGEsbF0pLGN8fHV9fSwyOTAyNDMoZSx0LG8peyJ1c2Ugc3RyaWN0IjtvLmQodCx7dXNlU2FmZU1vYmlsZVRvdWNoOigpPT5pfSk7dmFyIG49byg3Nzk0NzQpLHM9byg3Mzg0NTgpO2Z1bmN0aW9uIGkoKXtjb25zdFtlLHRdPSgwLG4udXNlU3RhdGUpKCExKTtyZXR1cm4oMCxuLnVzZUVmZmVjdCkoKCgpPT57dChzLm1vYmlsZXRvdWNoKX0pLFtdKSxlfX0sMTE5NzUwKGUsdCxvKXsidXNlIHN0cmljdCI7by5kKHQse0ljb25RdWVzdGlvbkluZm9ybWF0aW9uOigpPT5DLEljb25RdWVzdGlvbkluZm9ybWF0aW9uQnV0dG9uOigpPT5TfSk7dmFyIG4scz1vKDc3OTQ3NCksaT1vKDkxNDQ4Nykscj1vLm4oaSksYT1vKDM0NTExNiksbD1vKDI3MzMxMCksYz1vKDc4NTk5NSksdT1vLm4oYyksZD1vKDUyNzIxOSksaD1vLm4oZCkscD1vKDY3MzA2NSksbT1vLm4ocCksdj1vKDQwMDA0NiksZj1vLm4odiksZz1vKDk5NDUpLGI9by5uKGcpOyFmdW5jdGlvbihlKXtlLlNtYWxsPSJzbWFsbCIsZS5NZWRpdW09Im1lZGl1bSIsZS5MYXJnZT0ibGFyZ2UifShufHwobj17fSkpO2NvbnN0IHc9InNtYWxsIjt2YXIgeSxfOyFmdW5jdGlvbihlKXtlLkRlZmF1bHQ9ImRlZmF1bHQiLGUuRGFuZ2VyPSJkYW5nZXIiLGUuV2FybmluZz0id2FybmluZyIsZS5TdWNjZXNzPSJzdWNjZXNzIixlLk5ldXRyYWw9Im5ldXRyYWwiLGUuTmV1dHJhbExpZ2h0PSJuZXV0cmFsLWxpZ2h0In0oeXx8KHk9e30pKSxmdW5jdGlvbihlKXtlLkluZm89ImluZm8iLGUuUXVlc3Rpb249InF1ZXN0aW9uIixlLkNoZWNrPSJjaGVjayIsZS5FeGNsYW1hdGlvbj0iZXhjbGFtYXRpb24ifShffHwoXz17fSkpO2NvbnN0IHg9e2luZm86aCgpLHF1ZXN0aW9uOnUoKSxjaGVjazptKCksZXhjbGFtYXRpb246ZigpfSxFPXMuZm9yd2FyZFJlZigoKGUsdCk9PnMuY3JlYXRlRWxlbWVudCgic3BhbiIsey4uLmUscmVmOnQsY2xhc3NOYW1lOnIoKShlLmNsYXNzTmFtZSxiKClbIm5vLWFjdGl2ZS1zdGF0ZSJdKX0pKSksQz1zLmZvcndhcmRSZWYoKChlLHQpPT57Y29uc3R7aWNvbjpvPSJleGNsYW1hdGlvbiIsaW50ZW50Om49ImRlZmF1bHQiLGFyaWFMYWJlbDppLHRvb2x0aXA6YyxjbGFzc05hbWU6dSxyZW5kZXJDb21wb25lbnQ6ZD1FLHRhYkluZGV4Omg9MCxzaXplOnA9dyxvbkZvY3VzOm0sb25CbHVyOnYsb25DbGljazpmLC4uLmd9PWUseT14W29dPz9vO3JldHVybiBzLmNyZWF0ZUVsZW1lbnQoZCx7Y2xhc3NOYW1lOnIoKSh1LGIoKS5pY29uV3JhcHBlcixiKClbbl0sYigpW3BdKSx0aXRsZTpjLHJlZjp0LHRhYkluZGV4Omgsb25Gb2N1czptLG9uQmx1cjp2LG9uQ2xpY2s6ZiwuLi4oMCxhLmZpbHRlckRhdGFQcm9wcykoZyl9LHMuY3JlYXRlRWxlbWVudChsLkljb24seyJhcmlhLWhpZGRlbiI6IWksImFyaWEtbGFiZWwiOmksaWNvbjp5LGNsYXNzTmFtZTpiKCkuaWNvbn0pKX0pKTtmdW5jdGlvbiBTKGUpe2NvbnN0e2ljb246dD0iZXhjbGFtYXRpb24iLGludGVudDpvPSJkZWZhdWx0IixzaXplOm49dyxvbkNsaWNrOmksb25Nb3VzZUVudGVyOmEsb25Nb3VzZUxlYXZlOmMsb25Gb2N1czp1LG9uQmx1cjpkLHJlZmVyZW5jZTpoLGFyaWFMYWJlbDpwfT1lLG09eFt0XT8/dDtyZXR1cm4gcy5jcmVhdGVFbGVtZW50KCJidXR0b24iLHtjbGFzc05hbWU6cigpKGIoKS5pY29uV3JhcHBlcixiKClbb10sYigpW25dKSwKcmVmOmgsb25DbGljazppLG9uTW91c2VFbnRlcjphLG9uTW91c2VMZWF2ZTpjLG9uRm9jdXM6dSxvbkJsdXI6ZCwiYXJpYS1sYWJlbCI6cH0scy5jcmVhdGVFbGVtZW50KGwuSWNvbix7aWNvbjptLGNsYXNzTmFtZTpiKCkuaWNvbn0pKX19LDg2NTA5MihlLHQsbyl7InVzZSBzdHJpY3QiO28uZCh0LHt1c2VUb29sdGlwOigpPT5yfSk7dmFyIG49byg3Nzk0NzQpLHM9bygyOTAyNDMpLGk9byg3ODc4OTUpO2Z1bmN0aW9uIHIoZSx0PW51bGwpe2NvbnN0e3Nob3dUb29sdGlwOm8saGlkZVRvb2x0aXA6cixvbkNsaWNrOmEsZG9Ob3RTaG93VG9vbHRpcE9uVG91Y2g6bD0hMX09ZSxjPSgwLGkudXNlRnVuY3Rpb25hbFJlZk9iamVjdCkodCksdT0oMCxzLnVzZVNhZmVNb2JpbGVUb3VjaCkoKSxkPXUmJmw/dm9pZCAwOmUudG9vbHRpcDsoMCxuLnVzZUVmZmVjdCkoKCgpPT57Y29uc3QgZT0oKT0+ciYmcigpO3JldHVybiBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJzY3JvbGwiLGUsITApLCgpPT5kb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJzY3JvbGwiLGUsITApfSksW2Mscl0pO3JldHVybntvbkJsdXI6KDAsbi51c2VDYWxsYmFjaykoKGU9PntyJiZyKCl9KSxbcl0pLG9uRm9jdXM6KDAsbi51c2VDYWxsYmFjaykoKGU9PnshZS50YXJnZXQubWF0Y2hlcygiOmhvdmVyIikmJm8mJmUudGFyZ2V0Lm1hdGNoZXMoIjpmb2N1cy12aXNpYmxlIikmJm8oZS5jdXJyZW50VGFyZ2V0LHt0b29sdGlwRGVsYXk6MjAwfSl9KSxbb10pLG9uQ2xpY2s6KDAsbi51c2VDYWxsYmFjaykoKGU9Pnt1JiZjPy5jdXJyZW50Py5mb2N1cygpLGEmJmEoZSl9KSxbYSxjLHVdKSx0b29sdGlwOmQsY2xhc3NOYW1lOnZvaWQgMCE9PWQ/ImFwcGx5LWNvbW1vbi10b29sdGlwIjp2b2lkIDAscmVmOmN9fX0sMjI3OTQ5KGUsdCxvKXsidXNlIHN0cmljdCI7by5kKHQse01lbnVXaWR0aENvbnRleHQ6KCk9Pm59KTtjb25zdCBuPW8oNzc5NDc0KS5jcmVhdGVDb250ZXh0KHtzZXRNZW51TWF4V2lkdGg6ITF9KX0sODkxMjA5KGUsdCxvKXsidXNlIHN0cmljdCI7by5kKHQse1N1Ym1lbnVDb250ZXh0OigpPT5zLFN1Ym1lbnVIYW5kbGVyOigpPT5pfSk7dmFyIG49byg3Nzk0NzQpO2NvbnN0IHM9bi5jcmVhdGVDb250ZXh0KG51bGwpO2Z1bmN0aW9uIGkoZSl7Y29uc3RbdCxvXT0oMCxuLnVzZVN0YXRlKShudWxsKSxpPSgwLG4udXNlUmVmKShudWxsKSxyPSgwLG4udXNlUmVmKShuZXcgTWFwKTtyZXR1cm4oMCxuLnVzZUVmZmVjdCkoKCgpPT4oKT0+e251bGwhPT1pLmN1cnJlbnQmJmNsZWFyVGltZW91dChpLmN1cnJlbnQpfSksW10pLG4uY3JlYXRlRWxlbWVudChzLlByb3ZpZGVyLHt2YWx1ZTp7Y3VycmVudDp0LHNldEN1cnJlbnQ6ZnVuY3Rpb24oZSl7bnVsbCE9PWkuY3VycmVudCYmKGNsZWFyVGltZW91dChpLmN1cnJlbnQpLGkuY3VycmVudD1udWxsKTtudWxsPT09dD9vKGUpOmkuY3VycmVudD1zZXRUaW1lb3V0KCgoKT0+e2kuY3VycmVudD1udWxsLG8oZSl9KSwxMDApfSxyZWdpc3RlclN1Ym1lbnU6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gci5jdXJyZW50LnNldChlLHQpLCgpPT57ci5jdXJyZW50LmRlbGV0ZShlKX19LGlzU3VibWVudU5vZGU6ZnVuY3Rpb24oZSl7cmV0dXJuIEFycmF5LmZyb20oci5jdXJyZW50LnZhbHVlcygpKS5zb21lKCh0PT50KGUpKSl9fX0sZS5jaGlsZHJlbil9fSwxNDc5MDEoZSx0LG8peyJ1c2Ugc3RyaWN0IjtvLmQodCx7VUlfTElCX0RBVEFfUUFfSURfUFJFRklYOigpPT5yLGNvbmNhdElmTm90TnVsbDooKT0+aSxkYXRhUWFJZHM6KCk9PnN9KTt2YXIgbj1vKDU2NTc0NSk7ZnVuY3Rpb24gcyhlLHQpe3JldHVybltlLHRdLmZpbHRlcihuLmlzRXhpc3RlbnQpLmpvaW4oIiAiKX1mdW5jdGlvbiBpKGUsdCl7aWYoKDAsbi5pc0V4aXN0ZW50KSh0KSlyZXR1cm5bZSx0XS5qb2luKCIgIil9Y29uc3Qgcj0idWktbGliLSJ9LDIzMTMzMChlLHQsbyl7InVzZSBzdHJpY3QiO28uZCh0LHtpc05ld3NBbGxvd2VkOigpPT5pLGlzTmV3c1N0cmVhbWluZ0VuYWJsZWQ6KCk9PnJ9KTt2YXIgbj1vKDkzMDIzMSkscz1vKDU2OTM5OCk7Y29uc3QgaT0hKDAsbi5pc0ZlYXR1cmVzZXRFbmFibGVkKSgid2lkZ2V0Iikscj0oMCxzLmlzRmVhdHVyZUVuYWJsZWQpKCJuZXdzX2VuYWJsZV9zdHJlYW1pbmciKSYmKDAscy5pc0ZlYXR1cmVFbmFibGVkKSgiZW5hYmxlX2RldGFpbHNfbmV3c19zdHJlYW1pbmciKX0sMjU4NDkoZSx0LG8peyJ1c2Ugc3RyaWN0IjtvLmQodCx7dXNlRGlhbG9nQWN0aW9uczooKT0+X30pO3ZhciBuPW8oNzc5NDc0KSxzPW8oNTUxNzkpLGk9byg5MjgwMDIpO2Z1bmN0aW9uIHIoZSx0KXtjb25zdFtvLHNdPSgwLG4udXNlU3RhdGUpKCgoKT0+ZT8uaXNEaXNhYmxlZCgpPz8hMCkpO3JldHVybigwLG4udXNlRWZmZWN0KSgoKCk9PntpZighZSlyZXR1cm4gdm9pZCBzKCEwKTtjb25zdCB0PSgpPT5zKGUuaXNEaXNhYmxlZCgpKTtyZXR1cm4gZS5vblVwZGF0ZSgpLnN1YnNjcmliZShudWxsLHQpLCgpPT57ZS5vblVwZGF0ZSgpLnVuc3Vic2NyaWJlKG51bGwsdCl9fSksW2VdKSwoMCxuLnVzZUVmZmVjdCkoKCgpPT57ZSYmZS51cGRhdGVFeGVjdXRlKHQpfSksW3QsZV0pLG99dmFyIGE9byg2ODA5MzMpLGw9byg1NTI2OTUpLGM9byg4NjIwODApLHU9byg2MzA3ODcpLGQ9byg4OTIxMzMpLGg9byg0ODQ0NCkscD1vKDcwNzcxNiksbT1vKDE4NTI3MSksdj1vKDU4MzAzOCksZj1vKDc2Mjg1MSksZz1vKDkxNzk4NiksYj1vKDE3MDQ0KSx3PW8oODkwODM1KTtjbGFzcyB5IGV4dGVuZHMgZy5EaWFsb2dBY3Rpb257Y29uc3RydWN0b3IoZSl7Y29uc3QgdD0oMCxiLmFjdGl2ZVByb1N5bWJvbFF1b3Rlc1Byb3ZpZGVyKSgpLnJlcXVlc3RlZFN5bWJvbCgpLG49dD8oMCx2LnNwbGl0U3ltYm9sTmFtZSkodClbMV06IiI7c3VwZXIoe2xhYmVsOigwLGYuYXBwZW5kRWxsaXBzaXMpKG0udChudWxsLHtyZXBsYWNlOntzeW1ib2w6bn0sY29udGV4dDoiQ29tbXVuaXR5IHBvc3RzIGRpYWxvZyJ9LG8oOTk0MDE2KSkpLGlkOiJDb21tdW5pdHkgRGlhbG9nIixpY29uOm8oODQ0NjQxKSxjYXRlZ29yeToiZnVuY3Rpb25BY3Rpb25zIiwKZGlzYWJsZWQ6ITB9KSx0aGlzLl9vdmVydmlld09wdGlvbnM9ZTtjb25zdCBzPSgwLGIuYWN0aXZlUHJvU3ltYm9sUXVvdGVzUHJvdmlkZXIpKCkucXVvdGVzKCk7dGhpcy51cGRhdGUoe2Rpc2FibGVkOnRoaXMuX2lzRGlzYWJsZWQocyl9KSx0aGlzLnVwZGF0ZUV4ZWN1dGUoKX11cGRhdGVFeGVjdXRlKGUpe3RoaXMudXBkYXRlKHtvbkV4ZWN1dGU6KCk9Pnt2YXIgdDtlP3dpbmRvdy5sb2NhdGlvbi5hc3NpZ24oZSk6KHQ9dGhpcy5fb3ZlcnZpZXdPcHRpb25zLHcuY3VycmVudExheW91dC52YWx1ZSgpPy5zaG93QW5hbHlzaXNWaWV3KCJjb21tdW5pdHkiLHQpKX19KX1zdGF0aWMgY3JlYXRlQWN0aW9uKGUpe3JldHVybiBuZXcgeShlKX1faXNEaXNhYmxlZChlKXtyZXR1cm4hKGUmJiJvayI9PT1lLnN0YXR1cyl9fWZ1bmN0aW9uIF8oZT17fSl7Y29uc3R7c2Vhc29uYWxzTGluazp0LGZvcmVjYXN0TGluazpvLG9wdGlvbnNMaW5rOm0sZWNvbm9teUluZGljYXRvcnNMaW5rOnYsc3RvY2tCb25kc0xpbms6ZixuZXdzTGluazpnLGNvbW11bml0eUxpbms6Yixjb21tdW5pdHlPdmVydmlld09wdGlvbnM6d309ZSxfPSgwLG4udXNlTWVtbykoKCgpPT5sLlNlYXNvbmFsc0FjdGlvbi5jcmVhdGVBY3Rpb24oKSksW10pO3IoXyx0KTtjb25zdCB4PSgwLG4udXNlTWVtbykoKCgpPT5jLkFuYWx5c2lzQWN0aW9uLmNyZWF0ZUFjdGlvbigpKSxbXSk7cih4KTtjb25zdCBFPSgwLG4udXNlTWVtbykoKCgpPT5zLkZvcmVjYXN0QWN0aW9uLmNyZWF0ZUFjdGlvbigpKSxbXSk7cihFLG8pO2NvbnN0IEM9KDAsbi51c2VNZW1vKSgoKCk9PmEuT3B0aW9uc0FjdGlvbi5jcmVhdGVBY3Rpb24oKSksW10pO3IoQyxtKTtjb25zdCBTPSgwLG4udXNlTWVtbykoKCgpPT5pLkVjb25vbXlJbmRpY2F0b3JzQWN0aW9uLmNyZWF0ZUFjdGlvbigpKSxbXSk7cihTLHYpO2NvbnN0IE09KDAsbi51c2VNZW1vKSgoKCk9PnUuU3RvY2tCb25kc0FjdGlvbi5jcmVhdGVBY3Rpb24oKSksW10pO3IoTSxmKTtjb25zdCBBPSgwLG4udXNlTWVtbykoKCgpPT5kLkRvY3VtZW50c0FjdGlvbi5jcmVhdGVBY3Rpb24oKSksW10pO3IoQSk7Y29uc3Qgaz0oMCxuLnVzZU1lbW8pKCgoKT0+cC5OZXdzQWN0aW9uLmNyZWF0ZUFjdGlvbigpKSxbXSk7cihrLGcpO2NvbnN0IE49KDAsbi51c2VNZW1vKSgoKCk9PmguRXRmc0FjdGlvbi5jcmVhdGVBY3Rpb24oKSksW10pO3IoTik7Y29uc3QgRD0oMCxuLnVzZVJlZikodyksTz0oMCxuLnVzZU1lbW8pKCgoKT0+eS5jcmVhdGVBY3Rpb24oRC5jdXJyZW50KSksW10pO3JldHVybiByKE8sYikse3NlYXNvbmFsc0FjdGlvbjpfLGZvcmVjYXN0QWN0aW9uOkUsYW5hbHlzaXNBY3Rpb246eCxvcHRpb25zQWN0aW9uOkMsZWNvbm9teUluZGljYXRvcnNBY3Rpb246UyxzdG9ja0JvbmRzQWN0aW9uOk0sZG9jdW1lbnRzQWN0aW9uOkEsZXRmc0FjdGlvbjpOLG5ld3NBY3Rpb246ayxjb21tdW5pdHlBY3Rpb246T319fSw5MjgwMDIoZSx0LG8peyJ1c2Ugc3RyaWN0IjtvLmQodCx7RWNvbm9teUluZGljYXRvcnNBY3Rpb246KCk9PnV9KTt2YXIgbj1vKDE4NTI3MSkscz1vKDc2Mjg1MSksaT1vKDkzMDIzMSkscj1vKDkxNzk4NiksYT1vKDE3MDQ0KSxsPW8oODkwODM1KTt2YXIgYz1vKDE1NjgyOSk7Y2xhc3MgdSBleHRlbmRzIHIuRGlhbG9nQWN0aW9ue2NvbnN0cnVjdG9yKCl7c3VwZXIoe2xhYmVsOigwLHMuYXBwZW5kRWxsaXBzaXMpKG4udChudWxsLHZvaWQgMCxvKDI1MzUzKSkpLGlkOiJFY29ub215SW5kaWNhdG9yc0RpYWxvZyIsaWNvbjpvKDY3NDkwNSksY2F0ZWdvcnk6ImZ1bmN0aW9uQWN0aW9ucyIsZGlzYWJsZWQ6ITB9KSx0aGlzLnVwZGF0ZSh7ZGlzYWJsZWQ6dGhpcy5faXNEaXNhYmxlZCgoMCxhLmFjdGl2ZVByb1N5bWJvbFF1b3Rlc1Byb3ZpZGVyKSgpLnF1b3RlcygpKX0pLHRoaXMudXBkYXRlRXhlY3V0ZSgpfXVwZGF0ZUV4ZWN1dGUoZSl7dGhpcy51cGRhdGUoe29uRXhlY3V0ZTooKT0+e3ZhciB0O2U/d2luZG93LmxvY2F0aW9uLmFzc2lnbihlKTpsLmN1cnJlbnRMYXlvdXQudmFsdWUoKT8uc2hvd0FuYWx5c2lzVmlldygiZWNvbm9teS1pbmRpY2F0b3JzIix0KX19KX1zdGF0aWMgY3JlYXRlQWN0aW9uKCl7cmV0dXJuKDAsaS5pc0ZlYXR1cmVzZXRFbmFibGVkKSgid2lkZ2V0Iik/bnVsbDpuZXcgdX1zdGF0aWMgY2hlY2tBdmFpbGFiaWxpdHkoZSx0KXtyZXR1cm4gQm9vbGVhbihlJiYoMCxjLmlzRWNvbm9taWNTeW1ib2wpKGUpJiZ0KX1faXNEaXNhYmxlZChlKXtpZihlJiYib2siPT09ZS5zdGF0dXMpe2NvbnN0e3ZhbHVlczp0fT1lO3JldHVybiF1LmNoZWNrQXZhaWxhYmlsaXR5KHQudHlwZSx0WyJmaW5hbmNpYWwtaW5kaWNhdG9yLWlkIl0pfXJldHVybiEwfX19LDU1MTc5KGUsdCxvKXsidXNlIHN0cmljdCI7by5kKHQse0ZvcmVjYXN0QWN0aW9uOigpPT5ofSk7dmFyIG49bygxODUyNzEpLHM9byg1ODMwMzgpLGk9byg5MzAyMzEpLHI9byg3NjI4NTEpLGE9byg4OTA4MzUpO3ZhciBsPW8oOTE3OTg2KSxjPW8oMTcwNDQpLHU9byg5MjY2OTgpLGQ9by5uKHUpO2NsYXNzIGggZXh0ZW5kcyBsLkRpYWxvZ0FjdGlvbntjb25zdHJ1Y3Rvcigpe2NvbnN0IGU9KDAsYy5hY3RpdmVQcm9TeW1ib2xRdW90ZXNQcm92aWRlcikoKS5yZXF1ZXN0ZWRTeW1ib2woKSx0PWU/KDAscy5zcGxpdFN5bWJvbE5hbWUpKGUpWzFdOiIiO3N1cGVyKHtsYWJlbDooMCxyLmFwcGVuZEVsbGlwc2lzKShuLnQobnVsbCx7cmVwbGFjZTp7c3ltYm9sOnR9fSxvKDQ1MDE2NikpKSxpZDoiRm9yZWNhc3REaWFsb2ciLGljb246ZCgpLGNhdGVnb3J5OiJmdW5jdGlvbkFjdGlvbnMiLGRpc2FibGVkOiEwfSk7Y29uc3QgaT0oMCxjLmFjdGl2ZVByb1N5bWJvbFF1b3Rlc1Byb3ZpZGVyKSgpLnF1b3RlcygpO3RoaXMudXBkYXRlKHtkaXNhYmxlZDp0aGlzLl9pc0Rpc2FibGVkKGkpfSksdGhpcy51cGRhdGVFeGVjdXRlKCl9dXBkYXRlRXhlY3V0ZShlKXt0aGlzLnVwZGF0ZSh7b25FeGVjdXRlOigpPT57dmFyIHQKO2U/d2luZG93LmxvY2F0aW9uLmFzc2lnbihlKTphLmN1cnJlbnRMYXlvdXQudmFsdWUoKT8uc2hvd0FuYWx5c2lzVmlldygiZm9yZWNhc3QiLHQpfX0pfXN0YXRpYyBjcmVhdGVBY3Rpb24oKXtyZXR1cm4oMCxpLmlzRmVhdHVyZXNldEVuYWJsZWQpKCJ3aWRnZXQiKT9udWxsOm5ldyBofXN0YXRpYyBjaGVja0F2YWlsYWJpbGl0eShlKXtyZXR1cm4gQm9vbGVhbihlKX1faXNEaXNhYmxlZChlKXtpZihlJiYib2siPT09ZS5zdGF0dXMpe2NvbnN0e3ZhbHVlczp0fT1lO3JldHVybiFoLmNoZWNrQXZhaWxhYmlsaXR5KHQucmVjb21tZW5kYXRpb25fbWFyayl9cmV0dXJuITB9fX0sOTcxMTgzKGUsdCxvKXsidXNlIHN0cmljdCI7dmFyIG47by5kKHQse0xhYmVsUHJvZHVjdDooKT0+bn0pLGZ1bmN0aW9uKGUpe2UuSG90bGlzdHM9ImhvdGxpc3RzIixlLk1hcmtldEVhcm5pbmdzPSJtYXJrZXRzLWVhcm5pbmdzIixlLktleVN0YXRzPSJzeW1ib2xzLWtleXN0YXRzIixlLlRlY2huaWNhbHM9InN5bWJvbHMtdGVjaG5pY2FscyIsZS5QZXJmb3JtYW5jZT0ic3ltYm9scy1wZXJmb3JtYW5jZSIsZS5Cb25kc1lpZWxkQ3VydmU9ImJvbmRzLXlpZWxkLWN1cnZlIixlLkZ1dHVyZXNGb3J3YXJkQ3VydmU9ImZ1dHVyZXMtZm9yd2FyZC1jdXJ2ZSIsZS5NYXJrZXRzRm9yZXhIZWF0bWFwPSJtYXJrZXRzLWZvcmV4LWhlYXRtYXAiLGUuTWFya2V0c0JvbmRzWWllbGRIZWF0bWFwPSJtYXJrZXRzLWJvbmRzLXlpZWxkLWhlYXRtYXAiLGUuTWFya2V0c1NlY3RvclBlcmZvcm1hbmNlSGVhdG1hcD0ibWFya2V0cy1zZWN0b3ItcGVyZm9ybWFuY2UtaGVhdG1hcCIsZS5DYWxlbmRhckVhcm5pbmdzPSJjYWxlbmRhci1lYXJuaW5ncyIsZS5DYWxlbmRhckRpdmlkZW5kcz0iY2FsZW5kYXItZGl2aWRlbmRzIixlLkNhbGVuZGFySXBvPSJjYWxlbmRhci1pcG8iLGUuUXVpY2tTZWFyY2hEaWFsb2c9InF1aWNrLXNlYXJjaC1kaWFsb2ciLGUuUG9wdXBFVEZBbmFseXNpcz0icG9wdXAtZXRmLWFuYWx5c2lzIixlLkNoYXJ0U3ltYm9saW5mbz0iY2hhcnQtc3ltYm9saW5mbyIsZS5FeHRlcm5hbFdpZGdldHM9ImV4dGVybmFsLXdpZGdldHMiLGUuUmVsYXRlZFN5bWJvbHM9InJlbGF0ZWQtc3ltYm9scyIsZS5SaWdodERldGFpbHM9InJpZ2h0LWRldGFpbHMiLGUuRm9yZXhQZXJmb3JtYW5jZT0iZm9yZXgtcGVyZm9ybWFuY2UiLGUuTWFya2V0U2VjdG9yUGVyZm9ybWFuY2U9Im1hcmtldC1zZWN0b3ItcGVyZm9ybWFuY2UiLGUuQ2hhcnRNZXRyaWNzQWN0aW9uPSJjaGFydC1tZXRyaWNzLWFjdGlvbiIsZS5HbG9iYWxTZWFyY2g9Imdsb2JhbC1zZWFyY2giLGUuU3ltYm9sU2VhcmNoQnV0dG9uPSJzeW1ib2wtc2VhcmNoLWJ1dHRvbiJ9KG58fChuPXt9KSl9LDgzMzQwOShlLHQsbyl7InVzZSBzdHJpY3QiO28uZCh0LHtzaG93VGVjaG5pY2Fsc0RpYWxvZzooKT0+c30pO3ZhciBuPW8oODkwODM1KTtmdW5jdGlvbiBzKGUpe24uY3VycmVudExheW91dC52YWx1ZSgpPy5zaG93QW5hbHlzaXNWaWV3KCJ0ZWNobmljYWxzIixlKX19LDkxNzk4NihlLHQsbyl7InVzZSBzdHJpY3QiO28uZCh0LHtEaWFsb2dBY3Rpb246KCk9PmF9KTt2YXIgbixzPW8oNTA5MDQpOyFmdW5jdGlvbihlKXtlLkRyYXdpbmdzPSJkcmF3aW5nc0FjdGlvbnMiLGUuRnVuY3Rpb249ImZ1bmN0aW9uQWN0aW9ucyIsZS5TZXR0aW5ncz0ic2V0dGluZ3NBY3Rpb25zIn0obnx8KG49e30pKTtjbGFzcyBpIGV4dGVuZHMgcy5BY3Rpb257Y29uc3RydWN0b3Ioe2lkOmUsY2F0ZWdvcnk6dCxmYXZvdXJpdGU6byxvbkZhdm91cml0ZUNsaWNrOm4saG90a2V5R3JvdXA6cyxob3RrZXlIYXNoOmksYWxpYXNlczpyLG9wdGlvbnNMb2FkZXI6YSxvblN0YXJ0TGlzdGVuaW5nOmwsLi4uY30pe3N1cGVyKHthY3Rpb25JZDoiVW5rbm93bkFjdGlvbiIsb3B0aW9uczp7Li4uYyxkb05vdENsb3NlT25DbGljazohMH0saWQ6ZSxvcHRpb25zTG9hZGVyOmEsb25TdGFydExpc3RlbmluZzpsfSksdGhpcy5leGVjdXRlPSgpPT57c3VwZXIuZXhlY3V0ZSgpfSx0aGlzLmdldFN0YXRlPSgpPT4oey4uLnN1cGVyLmdldFN0YXRlKCksaWQ6dGhpcy5fc2VhcmNoT3B0aW9ucy5pZCxjYXRlZ29yeTp0aGlzLl9zZWFyY2hPcHRpb25zLmNhdGVnb3J5LGZhdm91cml0ZTp0aGlzLl9zZWFyY2hPcHRpb25zLmZhdm91cml0ZSxvbkZhdm91cml0ZUNsaWNrOnRoaXMuX29uRmF2b3VyaXRlQ2xpY2ssYWxpYXNlczp0aGlzLl9zZWFyY2hPcHRpb25zLmFsaWFzZXN9KSx0aGlzLnVwZGF0ZT1lPT57dGhpcy5fc2VhcmNoT3B0aW9ucz1PYmplY3QuYXNzaWduKHRoaXMuX3NlYXJjaE9wdGlvbnMsZSksc3VwZXIudXBkYXRlKGUpfSx0aGlzLl9vbkZhdm91cml0ZUNsaWNrPWU9Pnt0aGlzLl9zZWFyY2hPcHRpb25zLm9uRmF2b3VyaXRlQ2xpY2smJih0aGlzLnVwZGF0ZSh7ZmF2b3VyaXRlOiF0aGlzLl9zZWFyY2hPcHRpb25zLmZhdm91cml0ZX0pLHRoaXMuX3NlYXJjaE9wdGlvbnMub25GYXZvdXJpdGVDbGljayhlKSl9LHRoaXMuX3NlYXJjaE9wdGlvbnM9e2lkOmUsY2F0ZWdvcnk6dCxmYXZvdXJpdGU6byxvbkZhdm91cml0ZUNsaWNrOm4sYWxpYXNlczpyfX19dmFyIHI9bygxNzA0NCk7Y2xhc3MgYSBleHRlbmRzIGl7Y29uc3RydWN0b3IoZSl7c3VwZXIoey4uLmUsb25TdGFydExpc3RlbmluZzooKT0+KCgwLHIuYWN0aXZlUHJvU3ltYm9sUXVvdGVzUHJvdmlkZXIpKCkucXVvdGVzVXBkYXRlKCkuc3Vic2NyaWJlKHRoaXMsdGhpcy5fb25RdW90ZXNVcGRhdGUpLCgpPT4oMCxyLmFjdGl2ZVByb1N5bWJvbFF1b3Rlc1Byb3ZpZGVyKSgpLnF1b3Rlc1VwZGF0ZSgpLnVuc3Vic2NyaWJlKHRoaXMsdGhpcy5fb25RdW90ZXNVcGRhdGUpKX0pfWRlc3Ryb3koKXtzdXBlci5kZXN0cm95KCl9X29uUXVvdGVzVXBkYXRlKGUpe3RoaXMudXBkYXRlKHtkaXNhYmxlZDp0aGlzLl9pc0Rpc2FibGVkKGUpfSl9fX0sMTMxMzIxKGUsdCxvKXsidXNlIHN0cmljdCI7by5kKHQse0hvcml6b250YWxBdHRhY2hFZGdlOigpPT5zLEhvcml6b250YWxEcm9wRGlyZWN0aW9uOigpPT5yLFZlcnRpY2FsQXR0YWNoRWRnZTooKT0+biwKVmVydGljYWxEcm9wRGlyZWN0aW9uOigpPT5pLGdldFBvcHVwUG9zaXRpb25lcjooKT0+Y30pO3ZhciBuLHMsaSxyLGE9bygxMzg2MzgpOyFmdW5jdGlvbihlKXtlW2UuVG9wPTBdPSJUb3AiLGVbZS5Cb3R0b209MV09IkJvdHRvbSIsZVtlLkF1dG9TdHJpY3Q9Ml09IkF1dG9TdHJpY3QifShufHwobj17fSkpLGZ1bmN0aW9uKGUpe2VbZS5MZWZ0PTBdPSJMZWZ0IixlW2UuUmlnaHQ9MV09IlJpZ2h0In0oc3x8KHM9e30pKSxmdW5jdGlvbihlKXtlW2UuRnJvbVRvcFRvQm90dG9tPTBdPSJGcm9tVG9wVG9Cb3R0b20iLGVbZS5Gcm9tQm90dG9tVG9Ub3A9MV09IkZyb21Cb3R0b21Ub1RvcCJ9KGl8fChpPXt9KSksZnVuY3Rpb24oZSl7ZVtlLkZyb21MZWZ0VG9SaWdodD0wXT0iRnJvbUxlZnRUb1JpZ2h0IixlW2UuRnJvbVJpZ2h0VG9MZWZ0PTFdPSJGcm9tUmlnaHRUb0xlZnQifShyfHwocj17fSkpO2NvbnN0IGw9e3ZlcnRpY2FsQXR0YWNoRWRnZTpuLkJvdHRvbSxob3Jpem9udGFsQXR0YWNoRWRnZTpzLkxlZnQsdmVydGljYWxEcm9wRGlyZWN0aW9uOmkuRnJvbVRvcFRvQm90dG9tLGhvcml6b250YWxEcm9wRGlyZWN0aW9uOnIuRnJvbUxlZnRUb1JpZ2h0LHZlcnRpY2FsTWFyZ2luOjAsaG9yaXpvbnRhbE1hcmdpbjowLG1hdGNoQnV0dG9uQW5kTGlzdGJveFdpZHRoczohMX07ZnVuY3Rpb24gYyhlLHQpe3JldHVybiBvPT57Y29uc3R7Y29udGVudFdpZHRoOmMsY29udGVudEhlaWdodDp1LGF2YWlsYWJsZUhlaWdodDpkfT1vLGg9KDAsYS5lbnN1cmVOb3ROdWxsKShlKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSx7aG9yaXpvbnRhbEF0dGFjaEVkZ2U6cD1sLmhvcml6b250YWxBdHRhY2hFZGdlLGhvcml6b250YWxEcm9wRGlyZWN0aW9uOm09bC5ob3Jpem9udGFsRHJvcERpcmVjdGlvbixob3Jpem9udGFsTWFyZ2luOnY9bC5ob3Jpem9udGFsTWFyZ2luLHZlcnRpY2FsTWFyZ2luOmY9bC52ZXJ0aWNhbE1hcmdpbixtYXRjaEJ1dHRvbkFuZExpc3Rib3hXaWR0aHM6Zz1sLm1hdGNoQnV0dG9uQW5kTGlzdGJveFdpZHRoc309dDtsZXQgYj10LnZlcnRpY2FsQXR0YWNoRWRnZT8/bC52ZXJ0aWNhbEF0dGFjaEVkZ2Usdz10LnZlcnRpY2FsRHJvcERpcmVjdGlvbj8/bC52ZXJ0aWNhbERyb3BEaXJlY3Rpb247Yj09PW4uQXV0b1N0cmljdCYmKGQ8aC55K2guaGVpZ2h0K2YrdT8oYj1uLlRvcCx3PWkuRnJvbUJvdHRvbVRvVG9wKTooYj1uLkJvdHRvbSx3PWkuRnJvbVRvcFRvQm90dG9tKSk7Y29uc3QgeT1iPT09bi5Ub3A/LTEqZjpmLF89cD09PXMuUmlnaHQ/aC5yaWdodDpoLmxlZnQseD1iPT09bi5Ub3A/aC50b3A6aC5ib3R0b20sRT17eDpfLShtPT09ci5Gcm9tUmlnaHRUb0xlZnQ/YzowKSt2LHk6eC0odz09PWkuRnJvbUJvdHRvbVRvVG9wP3U6MCkreX07cmV0dXJuIGcmJihFLm92ZXJyaWRlV2lkdGg9aC53aWR0aCksRX19fSwyOTY0NDkoZSx0LG8peyJ1c2Ugc3RyaWN0IjtvLmQodCx7REVGQVVMVF9UT09MX1dJREdFVF9NRU5VX1RIRU1FOigpPT5mLFRvb2xXaWRnZXRNZW51OigpPT5ifSk7dmFyIG49byg3Nzk0NzQpLHM9byg5MTQ0ODcpLGk9by5uKHMpLHI9bygyMzU3MjQpLGE9byg4MzU5NjQpLGw9byg3MDg4NDIpLGM9bygzNDUxMTYpLHU9bygzMTM3NzIpLGQ9byg5NjQyMTQpLGg9bygxMzEzMjEpLHA9byg0MDYxMTApLG09byg4NDg5ODgpLHY9byg0MjQyNjIpO2NvbnN0IGY9djt2YXIgZzshZnVuY3Rpb24oZSl7ZVtlLlZlcnRpY2FsPTJdPSJWZXJ0aWNhbCIsZVtlLkhvcml6b250YWw9MF09Ikhvcml6b250YWwifShnfHwoZz17fSkpO2NsYXNzIGIgZXh0ZW5kcyBuLlB1cmVDb21wb25lbnR7Y29uc3RydWN0b3IoZSl7c3VwZXIoZSksdGhpcy5fd3JhcHBlclJlZj1udWxsLHRoaXMuX3Njcm9sbFdyYXBSZWY9bnVsbCx0aGlzLl9zY3JvbGxDb21wZW5zYXRpb25PYnNlcnZlcj1udWxsLHRoaXMuX2NvbnRyb2xsZXI9bi5jcmVhdGVSZWYoKSx0aGlzLl9vblBvcHVwQ2xvc2VPbkNsaWNrPWU9Pnsia2V5Ym9hcmQiPT09ZS5kZXRhaWwuY2xpY2tUeXBlJiZ0aGlzLmZvY3VzKCl9LHRoaXMuX2hhbmRsZU1lbnVGb2N1cz1lPT57ZS5yZWxhdGVkVGFyZ2V0PT09dGhpcy5fd3JhcHBlclJlZiYmdGhpcy5zZXRTdGF0ZSgoZT0+KHsuLi5lLGlzT3BlbmVkQnlCdXR0b246ITB9KSkpLHRoaXMucHJvcHMub25NZW51Rm9jdXM/LihlKX0sdGhpcy5faGFuZGxlV3JhcHBlclJlZj1lPT57dGhpcy5fd3JhcHBlclJlZj1lLHRoaXMucHJvcHMucmVmZXJlbmNlJiZ0aGlzLnByb3BzLnJlZmVyZW5jZShlKX0sdGhpcy5faGFuZGxlU2Nyb2xsV3JhcFJlZj1lPT57dGhpcy5fc2Nyb2xsV3JhcFJlZj1lLHRoaXMuX3N5bmNTY3JvbGxDb21wZW5zYXRpb25PYnNlcnZlcigpLHRoaXMuX3VwZGF0ZVNjcm9sbENvbXBlbnNhdGlvbigpfSx0aGlzLl9zeW5jU2Nyb2xsQ29tcGVuc2F0aW9uT2JzZXJ2ZXI9KCk9Pnt0aGlzLl9kZXN0cm95U2Nyb2xsQ29tcGVuc2F0aW9uT2JzZXJ2ZXIoKSx0aGlzLnByb3BzLmVuYWJsZVNjcm9sbENvbXBlbnNhdGlvbiYmbnVsbCE9PXRoaXMuX3Njcm9sbFdyYXBSZWYmJih0aGlzLl9zY3JvbGxDb21wZW5zYXRpb25PYnNlcnZlcj1uZXcgUmVzaXplT2JzZXJ2ZXIodGhpcy5fdXBkYXRlU2Nyb2xsQ29tcGVuc2F0aW9uKSx0aGlzLl9zY3JvbGxDb21wZW5zYXRpb25PYnNlcnZlci5vYnNlcnZlKHRoaXMuX3Njcm9sbFdyYXBSZWYpKX0sdGhpcy5fZGVzdHJveVNjcm9sbENvbXBlbnNhdGlvbk9ic2VydmVyPSgpPT57bnVsbCE9PXRoaXMuX3Njcm9sbENvbXBlbnNhdGlvbk9ic2VydmVyJiYodGhpcy5fc2Nyb2xsQ29tcGVuc2F0aW9uT2JzZXJ2ZXIuZGlzY29ubmVjdCgpLHRoaXMuX3Njcm9sbENvbXBlbnNhdGlvbk9ic2VydmVyPW51bGwpfSx0aGlzLl91cGRhdGVTY3JvbGxDb21wZW5zYXRpb249KCk9PntpZihudWxsPT09dGhpcy5fc2Nyb2xsV3JhcFJlZilyZXR1cm4gdm9pZCB0aGlzLnNldFN0YXRlKHtzY3JvbGxDb21wZW5zYXRpb246bnVsbH0pO2NvbnN0IGU9dGhpcy5fc2Nyb2xsV3JhcFJlZi5vZmZzZXRXaWR0aC10aGlzLl9zY3JvbGxXcmFwUmVmLmNsaWVudFdpZHRoLHQ9ZT4wPy1lKyJweCI6bnVsbAo7dGhpcy5zZXRTdGF0ZSh7c2Nyb2xsQ29tcGVuc2F0aW9uOnR9KX0sdGhpcy5faGFuZGxlT3Blbj0oKT0+eyJkaXYiIT09dGhpcy5wcm9wcy50YWcmJih0aGlzLnNldFN0YXRlKChlPT4oey4uLmUsaXNPcGVuZWRCeUJ1dHRvbjohMX0pKSksdGhpcy5wcm9wcy5tZW51UmVmZXJlbmNlPy5jdXJyZW50Py5hZGRFdmVudExpc3RlbmVyKCJwb3B1cC1tZW51LWNsb3NlLWV2ZW50Iix0aGlzLl9vblBvcHVwQ2xvc2VPbkNsaWNrKSx0aGlzLl9jb250cm9sbGVyLmN1cnJlbnQ/LmZvY3VzKCkpfSx0aGlzLl9oYW5kbGVDbGljaz1lPT57ZS50YXJnZXQgaW5zdGFuY2VvZiBOb2RlJiZlLmN1cnJlbnRUYXJnZXQuY29udGFpbnMoZS50YXJnZXQpJiYodGhpcy5faGFuZGxlVG9nZ2xlRHJvcGRvd24odm9pZCAwLCgwLG0uaXNLZXlib2FyZENsaWNrKShlKSksdGhpcy5wcm9wcy5vbkNsaWNrJiZ0aGlzLnByb3BzLm9uQ2xpY2soZSwhdGhpcy5zdGF0ZS5pc09wZW5lZCkpfSx0aGlzLl9oYW5kbGVUb2dnbGVEcm9wZG93bj0oZSx0PSExKT0+e2NvbnN0e29uQ2xvc2U6byxvbk9wZW46bn09dGhpcy5wcm9wcyx7aXNPcGVuZWQ6c309dGhpcy5zdGF0ZSxpPSJib29sZWFuIj09dHlwZW9mIGU/ZTohczt0aGlzLnNldFN0YXRlKHtpc09wZW5lZDppLHNob3VsZFJldHVybkZvY3VzOiEhaSYmdH0pLGkmJm4mJm4oKSwhaSYmbyYmbygpfSx0aGlzLl9oYW5kbGVDbG9zZT0oKT0+e3RoaXMuY2xvc2UoKX0sdGhpcy5faGFuZGxlS2V5RG93bj1lPT57Y29uc3R7b3JpZW50YXRpb246dD0iaG9yaXpvbnRhbCJ9PXRoaXMucHJvcHM7aWYoZS5kZWZhdWx0UHJldmVudGVkKXJldHVybjtpZighKGUudGFyZ2V0IGluc3RhbmNlb2YgTm9kZSkpcmV0dXJuO2NvbnN0IG89KDAsci5oYXNoRnJvbUV2ZW50KShlKTtpZihlLmN1cnJlbnRUYXJnZXQuY29udGFpbnMoZS50YXJnZXQpKXN3aXRjaChvKXtjYXNlIDQwOmlmKCJkaXYiPT09dGhpcy5wcm9wcy50YWd8fCJob3Jpem9udGFsIiE9PXQpcmV0dXJuO2lmKHRoaXMuc3RhdGUuaXNPcGVuZWQpcmV0dXJuO2UucHJldmVudERlZmF1bHQoKSx0aGlzLl9oYW5kbGVUb2dnbGVEcm9wZG93bighMCwhMCk7YnJlYWs7Y2FzZSAyNzppZighdGhpcy5zdGF0ZS5pc09wZW5lZHx8IXRoaXMucHJvcHMuY2xvc2VPbkVzYylyZXR1cm47ZS5wcmV2ZW50RGVmYXVsdCgpLGUuc3RvcFByb3BhZ2F0aW9uKCksdGhpcy5faGFuZGxlVG9nZ2xlRHJvcGRvd24oITEpfWVsc2V7aWYoImRpdiI9PT10aGlzLnByb3BzLnRhZylyZXR1cm47c3dpdGNoKG8pe2Nhc2UgMjc6e2UucHJldmVudERlZmF1bHQoKTtjb25zdHtzaG91bGRSZXR1cm5Gb2N1czp0LGlzT3BlbmVkQnlCdXR0b246b309dGhpcy5zdGF0ZTt0aGlzLl9oYW5kbGVUb2dnbGVEcm9wZG93bighMSksdCYmbyYmdGhpcy5fd3JhcHBlclJlZj8uZm9jdXMoKTticmVha319fX0sdGhpcy5zdGF0ZT17aXNPcGVuZWQ6ITEsc2hvdWxkUmV0dXJuRm9jdXM6ITEsaXNPcGVuZWRCeUJ1dHRvbjohMSxzY3JvbGxDb21wZW5zYXRpb246bnVsbH19cmVuZGVyKCl7Y29uc3R7dGFnOmU9ImRpdiIsaWQ6dCxhcnJvdzpvLGNvbnRlbnQ6cyxpc0Rpc2FibGVkOnIsaXNEcmF3ZXI6YSxpc1Nob3dUb29sdGlwOnUsdGl0bGU6ZCxjbGFzc05hbWU6aCxob3RLZXk6bSx0aGVtZTp2LGRyYXdlckJyZWFrcG9pbnQ6Zix0YWJJbmRleDpnLGlzQ2xpY2tlZDpifT10aGlzLnByb3BzLHtpc09wZW5lZDp5fT10aGlzLnN0YXRlLF89aSgpKGgsdi5idXR0b24seyJhcHBseS1jb21tb24tdG9vbHRpcCI6dXx8IXIsW3YuaXNEaXNhYmxlZF06cixbdi5pc09wZW5lZF06eSxbdi5jbGlja2VkXTpifSkseD13KHMpP3Moe2lzT3BlbmVkOnl9KTpzO3JldHVybiJidXR0b24iPT09ZT9uLmNyZWF0ZUVsZW1lbnQoImJ1dHRvbiIse3R5cGU6ImJ1dHRvbiIsaWQ6dCxjbGFzc05hbWU6aSgpKF8sdi5hY2Nlc3NpYmxlKSxkaXNhYmxlZDpyLG9uQ2xpY2s6dGhpcy5faGFuZGxlQ2xpY2ssdGl0bGU6ZCwiZGF0YS10b29sdGlwLWhvdGtleSI6bSxyZWY6dGhpcy5faGFuZGxlV3JhcHBlclJlZixvbktleURvd246dGhpcy5faGFuZGxlS2V5RG93bix0YWJJbmRleDpnLC4uLigwLGMuZmlsdGVyRGF0YVByb3BzKSh0aGlzLnByb3BzKSwuLi4oMCxjLmZpbHRlckFyaWFQcm9wcykodGhpcy5wcm9wcyl9LHgsbyYmbi5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6di5hcnJvd30sbi5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6di5hcnJvd1dyYXB9LG4uY3JlYXRlRWxlbWVudChsLlRvb2xXaWRnZXRDYXJldCx7ZHJvcHBlZDp5fSkpKSx0aGlzLnN0YXRlLmlzT3BlbmVkJiYoZj9uLmNyZWF0ZUVsZW1lbnQocC5NYXRjaE1lZGlhLHtydWxlOmZ9LChlPT50aGlzLl9yZW5kZXJDb250ZW50KGUpKSk6dGhpcy5fcmVuZGVyQ29udGVudChhKSkpOm4uY3JlYXRlRWxlbWVudCgiZGl2Iix7aWQ6dCxjbGFzc05hbWU6XyxvbkNsaWNrOnI/dm9pZCAwOnRoaXMuX2hhbmRsZUNsaWNrLHRpdGxlOmQsImRhdGEtdG9vbHRpcC1ob3RrZXkiOm0scmVmOnRoaXMuX2hhbmRsZVdyYXBwZXJSZWYsImRhdGEtcm9sZSI6ImJ1dHRvbiIsdGFiSW5kZXg6ZyxvbktleURvd246dGhpcy5faGFuZGxlS2V5RG93biwiYXJpYS1oYXNwb3B1cCI6dGhpcy5wcm9wc1siYXJpYS1oYXNwb3B1cCJdLC4uLigwLGMuZmlsdGVyRGF0YVByb3BzKSh0aGlzLnByb3BzKX0seCxvJiZuLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTp2LmFycm93fSxuLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTp2LmFycm93V3JhcH0sbi5jcmVhdGVFbGVtZW50KGwuVG9vbFdpZGdldENhcmV0LHtkcm9wcGVkOnl9KSkpLHRoaXMuc3RhdGUuaXNPcGVuZWQmJihmP24uY3JlYXRlRWxlbWVudChwLk1hdGNoTWVkaWEse3J1bGU6Zn0sKGU9PnRoaXMuX3JlbmRlckNvbnRlbnQoZSkpKTp0aGlzLl9yZW5kZXJDb250ZW50KGEpKSl9Y29tcG9uZW50RGlkVXBkYXRlKGUpeyF0aGlzLnByb3BzLmVuYWJsZVNjcm9sbENvbXBlbnNhdGlvbiYmZS5lbmFibGVTY3JvbGxDb21wZW5zYXRpb24mJih0aGlzLl9kZXN0cm95U2Nyb2xsQ29tcGVuc2F0aW9uT2JzZXJ2ZXIoKSwKdGhpcy5zZXRTdGF0ZSh7c2Nyb2xsQ29tcGVuc2F0aW9uOm51bGx9KSl9Y29tcG9uZW50V2lsbFVubW91bnQoKXt0aGlzLl9kZXN0cm95U2Nyb2xsQ29tcGVuc2F0aW9uT2JzZXJ2ZXIoKX1jbG9zZSgpe3RoaXMucHJvcHMubWVudVJlZmVyZW5jZT8uY3VycmVudD8ucmVtb3ZlRXZlbnRMaXN0ZW5lcigicG9wdXAtbWVudS1jbG9zZS1ldmVudCIsdGhpcy5fb25Qb3B1cENsb3NlT25DbGljayksdGhpcy5faGFuZGxlVG9nZ2xlRHJvcGRvd24oITEpfWZvY3VzKCl7dGhpcy5fd3JhcHBlclJlZj8uZm9jdXMoKX11cGRhdGUoKXtudWxsIT09dGhpcy5fY29udHJvbGxlci5jdXJyZW50JiZ0aGlzLl9jb250cm9sbGVyLmN1cnJlbnQudXBkYXRlKCl9X3JlbmRlckNvbnRlbnQoZSl7Y29uc3R7bWVudURhdGFOYW1lOnQsbWluV2lkdGg6byxtZW51Q2xhc3NOYW1lOnMsZHJhd2VyQ2xhc3NOYW1lOmksbWVudVJvbGU6cixtYXhIZWlnaHQ6bCxkcmF3ZXJQb3NpdGlvbjpjPSJCb3R0b20iLGNoaWxkcmVuOnAsbm9Nb21lbnR1bUJhc2VkU2Nyb2xsOm0sZW5hYmxlU2Nyb2xsQ29tcGVuc2F0aW9uOnZ9PXRoaXMucHJvcHMse2lzT3BlbmVkOmZ9PXRoaXMuc3RhdGUsZz17aG9yaXpvbnRhbE1hcmdpbjp0aGlzLnByb3BzLmhvcml6b250YWxNYXJnaW58fDAsdmVydGljYWxNYXJnaW46dGhpcy5wcm9wcy52ZXJ0aWNhbE1hcmdpbnx8Mix2ZXJ0aWNhbEF0dGFjaEVkZ2U6dGhpcy5wcm9wcy52ZXJ0aWNhbEF0dGFjaEVkZ2UsaG9yaXpvbnRhbEF0dGFjaEVkZ2U6dGhpcy5wcm9wcy5ob3Jpem9udGFsQXR0YWNoRWRnZSx2ZXJ0aWNhbERyb3BEaXJlY3Rpb246dGhpcy5wcm9wcy52ZXJ0aWNhbERyb3BEaXJlY3Rpb24saG9yaXpvbnRhbERyb3BEaXJlY3Rpb246dGhpcy5wcm9wcy5ob3Jpem9udGFsRHJvcERpcmVjdGlvbixtYXRjaEJ1dHRvbkFuZExpc3Rib3hXaWR0aHM6dGhpcy5wcm9wcy5tYXRjaEJ1dHRvbkFuZExpc3Rib3hXaWR0aHN9LGI9Qm9vbGVhbihmJiZlJiZjKSx5PXcocCk/cCh7aXNEcmF3ZXI6Yn0pOnA7cmV0dXJuIGI/bi5jcmVhdGVFbGVtZW50KHUuRHJhd2VyTWFuYWdlcixudWxsLG4uY3JlYXRlRWxlbWVudChkLkRyYXdlcix7Y2xhc3NOYW1lOmkscmVmZXJlbmNlOnRoaXMucHJvcHMuZHJhd2VyUmVmZXJlbmNlLG9uQ2xvc2U6dGhpcy5faGFuZGxlQ2xvc2UscG9zaXRpb246YywiZGF0YS1uYW1lIjp0fSx5KSk6bi5jcmVhdGVFbGVtZW50KGEuUG9wdXBNZW51LHtyZWZlcmVuY2U6dGhpcy5wcm9wcy5tZW51UmVmZXJlbmNlLHNjcm9sbFdyYXBSZWZlcmVuY2U6dj90aGlzLl9oYW5kbGVTY3JvbGxXcmFwUmVmOnZvaWQgMCxyb2xlOnIsY29udHJvbGxlcjp0aGlzLl9jb250cm9sbGVyLGNsb3NlT25DbGlja091dHNpZGU6dGhpcy5wcm9wcy5jbG9zZU9uQ2xpY2tPdXRzaWRlLGRvTm90Q2xvc2VPbjp0aGlzLGlzT3BlbmVkOmYsbWluV2lkdGg6byxvbkNsb3NlOnRoaXMuX2hhbmRsZUNsb3NlLHBvc2l0aW9uOigwLGguZ2V0UG9wdXBQb3NpdGlvbmVyKSh0aGlzLl93cmFwcGVyUmVmLGcpLGNsYXNzTmFtZTpzLG1heEhlaWdodDpsLGRhdGFRYUlkOnQsdGFiSW5kZXg6ImRpdiIhPT10aGlzLnByb3BzLnRhZz8tMTp2b2lkIDAsb25PcGVuOnRoaXMuX2hhbmRsZU9wZW4sb25LZXlEb3duOnRoaXMucHJvcHMub25NZW51S2V5RG93bixvbkZvY3VzOnRoaXMuX2hhbmRsZU1lbnVGb2N1cyxub01vbWVudHVtQmFzZWRTY3JvbGw6bX0sdj9uLmNyZWF0ZUVsZW1lbnQoImRpdiIse3N0eWxlOnRoaXMuc3RhdGUuc2Nyb2xsQ29tcGVuc2F0aW9uP3ttYXJnaW5JbmxpbmVFbmQ6dGhpcy5zdGF0ZS5zY3JvbGxDb21wZW5zYXRpb259OnZvaWQgMH0seSk6eSl9fWZ1bmN0aW9uIHcoZSl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIGV9Yi5kZWZhdWx0UHJvcHM9e2Fycm93OiEwLGNsb3NlT25DbGlja091dHNpZGU6ITAsdGhlbWU6dn19LDEzNjYzKGUsdCxvKXsidXNlIHN0cmljdCI7by5kKHQse3VzZUVuc3VyZWRDb250ZXh0OigpPT5pfSk7dmFyIG49byg3Nzk0NzQpLHM9bygxMzg2MzgpO2Z1bmN0aW9uIGkoZSl7cmV0dXJuKDAscy5lbnN1cmVOb3ROdWxsKSgoMCxuLnVzZUNvbnRleHQpKGUpKX19LDU1MzY2OShlLHQsbyl7InVzZSBzdHJpY3QiO28uZCh0LHt0cmFja01ldHJpY3NNZW51QWN0aW9uOigpPT5zfSk7dmFyIG49bygzNjIyMzkpO2Z1bmN0aW9uIHMoZSl7KDAsbi5nZXRUcmFja2VyKSgpLnRoZW4oKHQ9PntudWxsIT09dCYmdC50cmFja0NoYXJ0TWV0cmljc01lbnUoZSl9KSl9fSw2MzEyNTQoZSx0LG8peyJ1c2Ugc3RyaWN0IjtvLmQodCx7c2hvd0JvbmRZaWVsZEN1cnZlRGlhbG9nOigpPT5zfSk7dmFyIG49byg4OTA4MzUpO2Z1bmN0aW9uIHMoZSl7bi5jdXJyZW50TGF5b3V0LnZhbHVlKCk/LnNob3dBbmFseXNpc1ZpZXcoInlpZWxkLWN1cnZlIixlKX19LDg2MjA4MChlLHQsbyl7InVzZSBzdHJpY3QiO28uZCh0LHtBbmFseXNpc0FjdGlvbjooKT0+ZH0pO3ZhciBuPW8oMTg1MjcxKSxzPW8oNTgzMDM4KSxpPW8oOTMwMjMxKSxyPW8oNzYyODUxKSxhPW8oMTU2ODI5KSxsPW8oODkwODM1KTt2YXIgYz1vKDE3MDQ0KSx1PW8oOTE3OTg2KTtjbGFzcyBkIGV4dGVuZHMgdS5EaWFsb2dBY3Rpb257Y29uc3RydWN0b3IoKXtjb25zdCBlPSgwLGMuYWN0aXZlUHJvU3ltYm9sUXVvdGVzUHJvdmlkZXIpKCkucmVxdWVzdGVkU3ltYm9sKCksdD1lPygwLHMuc3BsaXRTeW1ib2xOYW1lKShlKVsxXToiIjtzdXBlcih7bGFiZWw6KDAsci5hcHBlbmRFbGxpcHNpcykobi50KG51bGwse2NvbnRleHQ6InByb2ZpbGVfYWN0aW9uIixyZXBsYWNlOntzeW1ib2w6dH19LG8oNjg1NTc1KSkpLGlkOiJBbmFseXNpcyIsaWNvbjpvKDg1OTc5MSksY2F0ZWdvcnk6ImZ1bmN0aW9uQWN0aW9ucyIsZGlzYWJsZWQ6ITB9KTtjb25zdCBpPSgwLGMuYWN0aXZlUHJvU3ltYm9sUXVvdGVzUHJvdmlkZXIpKCkucXVvdGVzKCk7dGhpcy51cGRhdGUoe2Rpc2FibGVkOnRoaXMuX2lzRGlzYWJsZWQoaSl9KSx0aGlzLnVwZGF0ZUV4ZWN1dGUoKX11cGRhdGVFeGVjdXRlKCl7dGhpcy51cGRhdGUoe29uRXhlY3V0ZTooKT0+e3ZhciBlCjtsLmN1cnJlbnRMYXlvdXQudmFsdWUoKT8uc2hvd0FuYWx5c2lzVmlldygiYW5hbHlzaXMiLGUpfX0pfXN0YXRpYyBjcmVhdGVBY3Rpb24oKXtyZXR1cm4oMCxpLmlzRmVhdHVyZXNldEVuYWJsZWQpKCJ3aWRnZXQiKT9udWxsOm5ldyBkfXN0YXRpYyBjaGVja0F2YWlsYWJpbGl0eShlLHQpe3JldHVybiBCb29sZWFuKGUmJnQmJigoMCxhLmlzRnVuZEV0ZikoZSx0KXx8KDAsYS5pc0NvcnBvcmF0ZUJvbmQpKGUsdCl8fCgwLGEuaXNHb3Zlcm5tZW50T25seUJvbmQpKGUsdCkpKX1faXNEaXNhYmxlZChlKXtpZihlJiYib2siPT09ZS5zdGF0dXMpe2NvbnN0e3ZhbHVlczp0fT1lO3JldHVybiFkLmNoZWNrQXZhaWxhYmlsaXR5KHQudHlwZSx0LnR5cGVzcGVjcyl9cmV0dXJuITB9fX0sODkyMTMzKGUsdCxvKXsidXNlIHN0cmljdCI7by5kKHQse0RvY3VtZW50c0FjdGlvbjooKT0+Y30pO3ZhciBuPW8oMTg1MjcxKSxzPW8oNTgzMDM4KSxpPW8oNzYyODUxKSxyPW8oOTE3OTg2KSxhPW8oMTcwNDQpLGw9byg4OTA4MzUpO2NsYXNzIGMgZXh0ZW5kcyByLkRpYWxvZ0FjdGlvbntjb25zdHJ1Y3Rvcigpe2NvbnN0IGU9KDAsYS5hY3RpdmVQcm9TeW1ib2xRdW90ZXNQcm92aWRlcikoKS5yZXF1ZXN0ZWRTeW1ib2woKSx0PWU/KDAscy5zcGxpdFN5bWJvbE5hbWUpKGUpWzFdOiIiO3N1cGVyKHtsYWJlbDooMCxpLmFwcGVuZEVsbGlwc2lzKShuLnQobnVsbCx7cmVwbGFjZTp7c3ltYm9sOnR9fSxvKDc1MTI4MykpKSxpZDoiRG9jdW1lbnRzIixpY29uOm8oMjI4OTU4KSxjYXRlZ29yeToiZnVuY3Rpb25BY3Rpb25zIixkaXNhYmxlZDohMH0pO2NvbnN0IHI9KDAsYS5hY3RpdmVQcm9TeW1ib2xRdW90ZXNQcm92aWRlcikoKS5xdW90ZXMoKTt0aGlzLnVwZGF0ZSh7ZGlzYWJsZWQ6dGhpcy5faXNEaXNhYmxlZChyKX0pLHRoaXMudXBkYXRlRXhlY3V0ZSgpfXVwZGF0ZUV4ZWN1dGUoZSl7dGhpcy51cGRhdGUoe29uRXhlY3V0ZTooKT0+e3ZhciB0O2U/d2luZG93LmxvY2F0aW9uLmFzc2lnbihlKTpsLmN1cnJlbnRMYXlvdXQudmFsdWUoKT8uc2hvd0FuYWx5c2lzVmlldygiZG9jdW1lbnRzIix0KX19KX1zdGF0aWMgY3JlYXRlQWN0aW9uKCl7cmV0dXJuIG5ldyBjfXN0YXRpYyBjaGVja0F2YWlsYWJpbGl0eShlKXtyZXR1cm4gMT09PWV9X2lzRGlzYWJsZWQoZSl7aWYoZSYmIm9rIj09PWUuc3RhdHVzKXtjb25zdHt2YWx1ZXM6dH09ZTtyZXR1cm4hYy5jaGVja0F2YWlsYWJpbGl0eSh0LmRvY3VtZW50cyl9cmV0dXJuITB9fX0sNDg0NDQoZSx0LG8peyJ1c2Ugc3RyaWN0IjtvLmQodCx7RXRmc0FjdGlvbjooKT0+Y30pO3ZhciBuPW8oMTg1MjcxKSxzPW8oNTgzMDM4KSxpPW8oNzYyODUxKSxyPW8oOTE3OTg2KSxhPW8oMTcwNDQpLGw9byg4OTA4MzUpO2NsYXNzIGMgZXh0ZW5kcyByLkRpYWxvZ0FjdGlvbntjb25zdHJ1Y3Rvcigpe2NvbnN0IGU9KDAsYS5hY3RpdmVQcm9TeW1ib2xRdW90ZXNQcm92aWRlcikoKS5yZXF1ZXN0ZWRTeW1ib2woKSx0PWU/KDAscy5zcGxpdFN5bWJvbE5hbWUpKGUpWzFdOiIiO3N1cGVyKHtsYWJlbDooMCxpLmFwcGVuZEVsbGlwc2lzKShuLnQobnVsbCx7cmVwbGFjZTp7c3ltYm9sOnR9LGNvbnRleHQ6ImV0ZnNfZGlhbG9nIn0sbyg1MjcxKSkpLGlkOiJFVEZzIixpY29uOm8oMTg3MTQ3KSxjYXRlZ29yeToiZnVuY3Rpb25BY3Rpb25zIixkaXNhYmxlZDohMH0pO2NvbnN0IHI9KDAsYS5hY3RpdmVQcm9TeW1ib2xRdW90ZXNQcm92aWRlcikoKS5xdW90ZXMoKTt0aGlzLnVwZGF0ZSh7ZGlzYWJsZWQ6dGhpcy5faXNEaXNhYmxlZChyKX0pLHRoaXMudXBkYXRlRXhlY3V0ZSgpfXVwZGF0ZUV4ZWN1dGUoZSl7dGhpcy51cGRhdGUoe29uRXhlY3V0ZTooKT0+e3ZhciB0O2U/d2luZG93LmxvY2F0aW9uLmFzc2lnbihlKTpsLmN1cnJlbnRMYXlvdXQudmFsdWUoKT8uc2hvd0FuYWx5c2lzVmlldygiZXRmcyIsdCl9fSl9c3RhdGljIGNyZWF0ZUFjdGlvbigpe3JldHVybiBuZXcgY31zdGF0aWMgY2hlY2tBdmFpbGFiaWxpdHkoZSl7cmV0dXJuIEJvb2xlYW4oZS5oYXNfZXRmX293bmVyc2hpcCYmZS5zeW1ib2xfcHJpbWFyeV9saXN0aW5nKXx8Qm9vbGVhbigic3BvdCI9PT1lLnR5cGUmJmUuc2hvcnRfbmFtZSYmWyJCVENVU0QiLCJCSVRDT0lOIiwiRVRIVVNEIiwiRVRIRVJFVU0iXS5pbmNsdWRlcyhlLnNob3J0X25hbWUpKX1faXNEaXNhYmxlZChlKXtpZihlJiYib2siPT09ZS5zdGF0dXMpe2NvbnN0e3ZhbHVlczp0fT1lO3JldHVybiFjLmNoZWNrQXZhaWxhYmlsaXR5KHQpfXJldHVybiEwfX19LDE5OTc0KGUsdCxvKXsidXNlIHN0cmljdCI7by5kKHQse3Nob3dGb3J3YXJkQ3VydmVEaWFsb2c6KCk9PnN9KTt2YXIgbj1vKDg5MDgzNSk7ZnVuY3Rpb24gcyhlKXtuLmN1cnJlbnRMYXlvdXQudmFsdWUoKT8uc2hvd0FuYWx5c2lzVmlldygiZm9yd2FyZC1jdXJ2ZSIsZSl9fSw3MDc3MTYoZSx0LG8peyJ1c2Ugc3RyaWN0IjtvLmQodCx7TmV3c0FjdGlvbjooKT0+dX0pO3ZhciBuPW8oMTg1MjcxKSxzPW8oNTgzMDM4KSxpPW8oNzYyODUxKSxyPW8oOTE3OTg2KSxhPW8oMTcwNDQpLGw9bygxMjI5MzIpLGM9bygyMzEzMzApO2NsYXNzIHUgZXh0ZW5kcyByLkRpYWxvZ0FjdGlvbntjb25zdHJ1Y3Rvcigpe2NvbnN0IGU9KDAsYS5hY3RpdmVQcm9TeW1ib2xRdW90ZXNQcm92aWRlcikoKS5yZXF1ZXN0ZWRTeW1ib2woKSx0PWU/KDAscy5zcGxpdFN5bWJvbE5hbWUpKGUpWzFdOiIiO3N1cGVyKHtsYWJlbDooMCxpLmFwcGVuZEVsbGlwc2lzKShuLnQobnVsbCx7cmVwbGFjZTp7c3ltYm9sOnR9LGNvbnRleHQ6Im5ld3NfZGlhbG9nIn0sbygxMDE0MzUpKSksaWQ6Ik5ld3MgRGlhbG9nIixpY29uOm8oMzc0NjAwKSxjYXRlZ29yeToiZnVuY3Rpb25BY3Rpb25zIixkaXNhYmxlZDohMH0pO2NvbnN0IHI9KDAsYS5hY3RpdmVQcm9TeW1ib2xRdW90ZXNQcm92aWRlcikoKS5xdW90ZXMoKTt0aGlzLnVwZGF0ZSh7ZGlzYWJsZWQ6dGhpcy5faXNEaXNhYmxlZChyKX0pLHRoaXMudXBkYXRlRXhlY3V0ZSgpfXVwZGF0ZUV4ZWN1dGUoZSl7dGhpcy51cGRhdGUoe29uRXhlY3V0ZTooKT0+ewplP3dpbmRvdy5sb2NhdGlvbi5hc3NpZ24oZSk6KDAsbC5zaG93TmV3c0RpYWxvZykoKX19KX1zdGF0aWMgY3JlYXRlQWN0aW9uKCl7cmV0dXJuIG5ldyB1fXN0YXRpYyBjaGVja0F2YWlsYWJpbGl0eShlKXtyZXR1cm4gYy5pc05ld3NBbGxvd2VkJiZ2b2lkIDAhPT1lfV9pc0Rpc2FibGVkKGUpe2lmKGUmJiJvayI9PT1lLnN0YXR1cyl7Y29uc3R7dmFsdWVzOnR9PWU7cmV0dXJuIXUuY2hlY2tBdmFpbGFiaWxpdHkodC50eXBlKX1yZXR1cm4hMH19fSwxMjI5MzIoZSx0LG8peyJ1c2Ugc3RyaWN0IjtvLmQodCx7c2hvd05ld3NEaWFsb2c6KCk9PnN9KTt2YXIgbj1vKDg5MDgzNSk7ZnVuY3Rpb24gcyhlKXtuLmN1cnJlbnRMYXlvdXQudmFsdWUoKT8uc2hvd0FuYWx5c2lzVmlldygibmV3cyIsZSl9fSw2ODA5MzMoZSx0LG8peyJ1c2Ugc3RyaWN0IjtvLmQodCx7T3B0aW9uc0FjdGlvbjooKT0+ZH0pO3ZhciBuPW8oMTg1MjcxKSxzPW8oNTgzMDM4KSxpPW8oMTcwNDQpLHI9byg5MzAyMzEpLGE9byg3NjI4NTEpLGw9byg5MTc5ODYpLGM9byg4OTA4MzUpO3ZhciB1PW8oODg3NjYzKTtjbGFzcyBkIGV4dGVuZHMgbC5EaWFsb2dBY3Rpb257Y29uc3RydWN0b3IoKXtjb25zdCBlPSgwLGkuYWN0aXZlUHJvU3ltYm9sUXVvdGVzUHJvdmlkZXIpKCkucmVxdWVzdGVkU3ltYm9sKCksdD1lPygwLHMuc3BsaXRTeW1ib2xOYW1lKShlKVsxXToiIjtzdXBlcih7bGFiZWw6KDAsYS5hcHBlbmRFbGxpcHNpcykobi50KG51bGwse3JlcGxhY2U6e3N5bWJvbDp0fX0sbyg0MTI3NzYpKSksaWQ6Ik9wdGlvbnNEaWFsb2ciLGljb246dSxjYXRlZ29yeToiZnVuY3Rpb25BY3Rpb25zIixkaXNhYmxlZDohMH0pO2NvbnN0IHI9KDAsaS5hY3RpdmVQcm9TeW1ib2xRdW90ZXNQcm92aWRlcikoKS5xdW90ZXMoKTt0aGlzLnVwZGF0ZSh7ZGlzYWJsZWQ6dGhpcy5faXNEaXNhYmxlZChyKX0pLHRoaXMudXBkYXRlRXhlY3V0ZSgpfXVwZGF0ZUV4ZWN1dGUoZSl7dGhpcy51cGRhdGUoe29uRXhlY3V0ZTooKT0+e3ZhciB0O2U/d2luZG93LmxvY2F0aW9uLmFzc2lnbihlKTpjLmN1cnJlbnRMYXlvdXQudmFsdWUoKT8uc2hvd0FuYWx5c2lzVmlldygib3B0aW9ucyIsdCl9fSl9c3RhdGljIGNyZWF0ZUFjdGlvbigpe3JldHVybigwLHIuaXNGZWF0dXJlc2V0RW5hYmxlZCkoIndpZGdldCIpP251bGw6bmV3IGR9c3RhdGljIGNoZWNrQXZhaWxhYmlsaXR5KGUpe3JldHVybiBCb29sZWFuKGUpfV9pc0Rpc2FibGVkKGUpe2lmKGUmJiJvayI9PT1lLnN0YXR1cyl7Y29uc3R7dmFsdWVzOnR9PWU7cmV0dXJuIWQuY2hlY2tBdmFpbGFiaWxpdHkodFsib3B0aW9ucy1pbmZvIl0pfXJldHVybiEwfX19LDk5NTEyNihlLHQsbyl7InVzZSBzdHJpY3QiO28uZCh0LHtoYXNTZWFzb25hbHM6KCk9PnN9KTt2YXIgbj1vKDE1NjgyOSk7ZnVuY3Rpb24gcyhlLHQsbyl7cmV0dXJuISgoMCxuLmlzQm9uZCkoZSl8fCgwLG4uaXNFY29ub21pY1N5bWJvbCkoZSl8fCgwLG4uaXNPcHRpb24pKGUpfHwoMCxuLmlzU3ByZWFkKShlKXx8KDAsbi5pc1N5bWJvbERlbGlzdGVkKSh0KXx8KDAsbi5pc1N0b2Nrc1N5bWJvbCkoZSx0Pz9bXSkmJnZvaWQgMD09PW98fHZvaWQgMCE9PW8mJmZ1bmN0aW9uKGUpe2NvbnN0IHQ9bmV3IERhdGUoMWUzKmUpLmdldEZ1bGxZZWFyKCksbz0obmV3IERhdGUpLmdldEZ1bGxZZWFyKCk7cmV0dXJuIHQ9PT1vfShvKSl9fSw1NTI2OTUoZSx0LG8peyJ1c2Ugc3RyaWN0IjtvLmQodCx7U2Vhc29uYWxzQWN0aW9uOigpPT5kfSk7dmFyIG49bygxODUyNzEpLHM9byg1ODMwMzgpLGk9byg3NjI4NTEpLHI9bygxNTY4MjkpLGE9byg5OTUxMjYpLGw9byg4OTA4MzUpO3ZhciBjPW8oOTE3OTg2KSx1PW8oMTcwNDQpO2NsYXNzIGQgZXh0ZW5kcyBjLkRpYWxvZ0FjdGlvbntjb25zdHJ1Y3Rvcigpe2NvbnN0IGU9KDAsdS5hY3RpdmVQcm9TeW1ib2xRdW90ZXNQcm92aWRlcikoKS5yZXF1ZXN0ZWRTeW1ib2woKSx0PWU/KDAscy5zcGxpdFN5bWJvbE5hbWUpKGUpWzFdOiIiO3N1cGVyKHtsYWJlbDooMCxpLmFwcGVuZEVsbGlwc2lzKShuLnQobnVsbCx7cmVwbGFjZTp7c3ltYm9sOnR9fSxvKDY4NTk2MykpKSxpZDoiU2Vhc29uYWxzRGlhbG9nIixpY29uOm8oNjI3NjAyKSxjYXRlZ29yeToiZnVuY3Rpb25BY3Rpb25zIixkaXNhYmxlZDohMH0pO2NvbnN0IHI9KDAsdS5hY3RpdmVQcm9TeW1ib2xRdW90ZXNQcm92aWRlcikoKS5xdW90ZXMoKTt0aGlzLnVwZGF0ZSh7ZGlzYWJsZWQ6dGhpcy5faXNEaXNhYmxlZChyKX0pLHRoaXMudXBkYXRlRXhlY3V0ZSgpfXVwZGF0ZUV4ZWN1dGUoZSl7dGhpcy51cGRhdGUoe29uRXhlY3V0ZTooKT0+e3ZhciB0O2U/d2luZG93LmxvY2F0aW9uLmFzc2lnbihlKTpsLmN1cnJlbnRMYXlvdXQudmFsdWUoKT8uc2hvd0FuYWx5c2lzVmlldygic2Vhc29uYWxzIix0KX19KX1zdGF0aWMgY3JlYXRlQWN0aW9uKCl7cmV0dXJuIG5ldyBkfXN0YXRpYyBjaGVja0F2YWlsYWJpbGl0eShlLHQsbyxuKXtyZXR1cm4gQm9vbGVhbihlJiZ0JiYhKDAsci5pc0RleCkobikmJigwLGEuaGFzU2Vhc29uYWxzKShlLHQsbykpfV9pc0Rpc2FibGVkKGUpe2lmKGUmJiJvayI9PT1lLnN0YXR1cyl7Y29uc3R7dmFsdWVzOnR9PWU7cmV0dXJuIWQuY2hlY2tBdmFpbGFiaWxpdHkodC50eXBlLHQudHlwZXNwZWNzLHQuZmlyc3RfYmFyX3RpbWVfMWQsdFsiZXhjaGFuZ2UtaW5mbyJdKX1yZXR1cm4hMH19fSw2MzA3ODcoZSx0LG8peyJ1c2Ugc3RyaWN0IjtvLmQodCx7U3RvY2tCb25kc0FjdGlvbjooKT0+Y30pO3ZhciBuPW8oMTg1MjcxKSxzPW8oNTgzMDM4KSxpPW8oNzYyODUxKSxyPW8oOTE3OTg2KSxhPW8oMTcwNDQpLGw9byg4OTA4MzUpO2NsYXNzIGMgZXh0ZW5kcyByLkRpYWxvZ0FjdGlvbntjb25zdHJ1Y3Rvcigpe2NvbnN0IGU9KDAsYS5hY3RpdmVQcm9TeW1ib2xRdW90ZXNQcm92aWRlcikoKS5yZXF1ZXN0ZWRTeW1ib2woKSx0PWU/KDAscy5zcGxpdFN5bWJvbE5hbWUpKGUpWzFdOiIiO3N1cGVyKHtsYWJlbDooMCxpLmFwcGVuZEVsbGlwc2lzKShuLnQobnVsbCx7cmVwbGFjZTp7c3ltYm9sOnR9fSxvKDg5MzU3NikpKSxpZDoiU3RvY2tCb25kcyIsCmljb246byg0MDk0NTUpLGNhdGVnb3J5OiJmdW5jdGlvbkFjdGlvbnMiLGRpc2FibGVkOiEwfSk7Y29uc3Qgcj0oMCxhLmFjdGl2ZVByb1N5bWJvbFF1b3Rlc1Byb3ZpZGVyKSgpLnF1b3RlcygpO3RoaXMudXBkYXRlKHtkaXNhYmxlZDp0aGlzLl9pc0Rpc2FibGVkKHIpfSksdGhpcy51cGRhdGVFeGVjdXRlKCl9dXBkYXRlRXhlY3V0ZShlKXt0aGlzLnVwZGF0ZSh7b25FeGVjdXRlOigpPT57dmFyIHQ7ZT93aW5kb3cubG9jYXRpb24uYXNzaWduKGUpOmwuY3VycmVudExheW91dC52YWx1ZSgpPy5zaG93QW5hbHlzaXNWaWV3KCJib25kcyIsdCl9fSl9c3RhdGljIGNyZWF0ZUFjdGlvbigpe3JldHVybiBuZXcgY31zdGF0aWMgY2hlY2tBdmFpbGFiaWxpdHkoZSx0LG8pe3JldHVybiBCb29sZWFuKGUmJnQmJm8pfV9pc0Rpc2FibGVkKGUpe2lmKGUmJiJvayI9PT1lLnN0YXR1cyl7Y29uc3R7dmFsdWVzOnR9PWU7cmV0dXJuIWMuY2hlY2tBdmFpbGFiaWxpdHkodC50eXBlLHQudHlwZXNwZWNzLHQuaGFzX2JvbmRzKX1yZXR1cm4hMH19fSw5Mjk0ODgoZSx0LG8peyJ1c2Ugc3RyaWN0IjtvLmQodCx7aXNTZXBhcmF0b3JJdGVtOigpPT5zfSk7dmFyIG49byg5MDEwMjIpO2Z1bmN0aW9uIHMoZSl7cmV0dXJuKDAsbi5pc1NlcGFyYXRvckl0ZW0pKGUpfX0sMzIwNTUoZSx0LG8peyJ1c2Ugc3RyaWN0IjtvLnIodCksby5kKHQse3Jlc29sdmVTeW1ib2xOYW1lOigpPT5jLHJlc29sdmVTeW1ib2xOYW1lRm9yQWxsOigpPT51LHJlc29sdmVTeW1ib2xOYW1lRm9yQWxsRGlzdGluY3Q6KCk9PmQsc25hcHNob3RlcjooKT0+YX0pO3ZhciBuPW8oMTI4ODE0KSxzPW8oNjIzNTExKSxpPW8oOTI5NDg4KTtjb25zdCByPW5ldyBTZXQoWyJwcm9fbmFtZSIsImJhc2VfbmFtZSIsInNob3J0X25hbWUiLCJkZXNjcmlwdGlvbiIsInR5cGUiLCJleGNoYW5nZSIsInR5cGVzcGVjcyIsImxpc3RlZF9leGNoYW5nZSIsImxhc3RfcHJpY2UiLCJjb3VudHJ5X2NvZGUiLCJwcm92aWRlcl9pZCIsInN5bWJvbC1wcmltYXJ5bmFtZSIsImxvZ29pZCIsImxvZ28iLCJiYXNlLWN1cnJlbmN5LWxvZ29pZCIsImN1cnJlbmN5LWxvZ29pZCIsInNvdXJjZS1sb2dvaWQiLCJ1cGRhdGVfbW9kZSIsInVwZGF0ZV9tb2RlX3NlY29uZHMiLCJwcm9fcGVybSIsInNvdXJjZSIsInNvdXJjZTIiLCJwcmljZXNjYWxlIiwibWlubW92IiwiZnJhY3Rpb25hbCIsInZpc2libGUtcGxvdHMtc2V0IiwibG9jYWxfZGVzY3JpcHRpb24iLCJsYW5ndWFnZSIsInVuZGVybHlpbmctc3ltYm9sIl0pLGE9KDAscy5sYXp5VmFsdWUpKCgoKT0+bmV3IG4uUXVvdGVTZXNzaW9uU25hcHNob3Rlcih7bmFtZToiYmFzaWMtc3ltYm9sLXF1b3RlcyIsZmllbGRzOlsuLi5yXSxhcGk6d2luZG93LkNoYXJ0QXBpSW5zdGFuY2V9KSkpLGw9bmV3IFNldChbInByb19uYW1lIl0pO2FzeW5jIGZ1bmN0aW9uIGMoZSl7cmV0dXJuKDAsaS5pc1NlcGFyYXRvckl0ZW0pKGUpP2U6YSgpLmdldFNuYXBzaG90KGUsbCkudGhlbigoZT0+ImVycm9yIj09PWUuc3RhdHVzP2Uuc3ltYm9sbmFtZTplLnZhbHVlcy5wcm9fbmFtZSkpfWZ1bmN0aW9uIHUoZSl7cmV0dXJuIFByb21pc2UuYWxsKGUubWFwKGMpKX1mdW5jdGlvbiBkKGUpe3JldHVybiB1KGUpLnRoZW4oKGU9PlsuLi5uZXcgU2V0KGUpXSkpfX0sODUxNDU4KGUsdCxvKXsidXNlIHN0cmljdCI7by5kKHQse2ZhY3Rvck91dEJyYWNlczooKT0+cCxnZXRUb2tlbkF0UG9zOigpPT5oLGlzQmluYXJ5T3BlcmF0b3I6KCk9PnUsaXNTcHJlYWQ6KCk9PmQscGFyc2VUb2tlbjooKT0+dixzaG9ydE5hbWU6KCk9Pm0sc3ltYm9sVG9rZW5Fc2NhcGVSZTooKT0+YSx0b2tlbml6ZTooKT0+Y30pO3ZhciBuLHM9byg5MDEwMjIpLGk9byg1NjkzOTgpOyFmdW5jdGlvbihlKXtlLlN5bWJvbD0ic3ltYm9sIixlLkluY29tcGxldGVTeW1ib2w9ImluY29tcGxldGVTeW1ib2wiLGUuTnVtYmVyPSJudW1iZXIiLGUuSW5jb21wbGV0ZU51bWJlcj0iaW5jb21wbGV0ZU51bWJlciIsZS5TZXBhcmF0b3JQcmVmaXg9InNlcGFyYXRvclByZWZpeCIsZS5PcGVuQnJhY2U9Im9wZW5CcmFjZSIsZS5DbG9zZUJyYWNlPSJjbG9zZUJyYWNlIixlLlBsdXM9InBsdXMiLGUuTWludXM9Im1pbnVzIixlLk11bHRpcGx5PSJtdWx0aXBseSIsZS5EaXZpZGU9ImRpdmlkZSIsZS5Qb3dlcj0icG93ZXIiLGUuV2hpdGVzcGFjZT0id2hpdGVzcGFjZSIsZS5VbnBhcnNlZD0idW5wYXJzZWQifShufHwobj17fSkpO2NvbnN0IHI9Lyg/OlteLStcLypeXHNdJ3xbYS16QS1aMC05X1x1MDM3MC1cdTFGRkZfXHUyRTgwLVx1RkZGRl0pKD86W14tK1wvKl5cc10nfFthLXpBLVowLTlfXHUwMDIwXHUwMzcwLVx1MUZGRl9cdTJFODAtXHVGRkZGXyF8Oi4mXSkqfCcuKz8nLyxhPS9bK1wtLypdLyxsPShlPSgwLGkuaXNGZWF0dXJlRW5hYmxlZCkoImFsbG93X3RyYWlsaW5nX3doaXRlc3BhY2VfaW5fbnVtYmVyX3Rva2VuIikpPT4oe251bWJlcjplPy9cZCsoPzpcLlxkKnwoPyFbYS16QS1aMC05XyE6LiZdKSkoPzpccyooPz1ccyokKSk/fFwuXGQrKD86XHMqKD89XHMqJCkpPy86L1xkKyg/OlwuXGQqfCg/IVthLXpBLVowLTlfITouJl0pKXxcLlxkKy8saW5jb21wbGV0ZU51bWJlcjovXC4vLHN5bWJvbDpyLGluY29tcGxldGVTeW1ib2w6LydbXiddKi8sc2VwYXJhdG9yUHJlZml4OnMuU0VQQVJBVE9SX1BSRUZJWCxvcGVuQnJhY2U6IigiLGNsb3NlQnJhY2U6IikiLHBsdXM6IisiLG1pbnVzOiItIixtdWx0aXBseToiKiIsZGl2aWRlOiIvIixwb3dlcjoiXiIsd2hpdGVzcGFjZTovW1wwLVx4MjBcc10rLyx1bnBhcnNlZDpudWxsfSk7ZnVuY3Rpb24gYyhlLHQ9bCgpKXtpZighZSlyZXR1cm5bXTtjb25zdCBvPVtdLG49T2JqZWN0LmtleXModCk7bGV0IHM7Y29uc3QgaT0oKGU9bCgpKT0+bmV3IFJlZ0V4cChPYmplY3QudmFsdWVzKGUpLm1hcCgoZT0+e3JldHVybiBudWxsPT09ZT8iIjpgKCR7InN0cmluZyI9PXR5cGVvZiBlPyh0PWUsdC5yZXBsYWNlKC9bXF4kKClbXF17fSorP3xcXF0vZywiXFwkJiIpKTplLnNvdXJjZX0pYDt2YXIgdAp9KSkuZmlsdGVyKChlPT4iIiE9PWUpKS5jb25jYXQoIi4iKS5qb2luKCJ8IiksImciKSkodCk7Zm9yKDtzPWkuZXhlYyhlKTspe2xldCBlPSExO2ZvcihsZXQgdD1uLmxlbmd0aDt0LS07KWlmKHNbdCsxXSl7blt0XSYmby5wdXNoKHt2YWx1ZTpzW3QrMV0sdHlwZTpuW3RdLHByZWNlZGVuY2U6MCxvZmZzZXQ6cy5pbmRleH0pLGU9ITA7YnJlYWt9ZXx8by5wdXNoKHt2YWx1ZTpzWzBdLHR5cGU6InVucGFyc2VkIixwcmVjZWRlbmNlOjAsb2Zmc2V0OnMuaW5kZXh9KX1yZXR1cm4gb31mdW5jdGlvbiB1KGUpe3JldHVybiJwbHVzIj09PWV8fCJtaW51cyI9PT1lfHwibXVsdGlwbHkiPT09ZXx8ImRpdmlkZSI9PT1lfHwicG93ZXIiPT09ZX1mdW5jdGlvbiBkKGUpe3JldHVybiBlLmxlbmd0aD4xJiZlLnNvbWUoKGU9PnUoZS50eXBlKSkpfWZ1bmN0aW9uIGgoZSx0KXtmb3IobGV0IG89MDtvPGUubGVuZ3RoO28rKyl7Y29uc3Qgbj1lW29dLHM9InN5bWJvbCI9PT1uLnR5cGV8fCJpbmNvbXBsZXRlU3ltYm9sIj09PW4udHlwZXx8Im51bWJlciI9PT1uLnR5cGU7aWYobi5vZmZzZXQ8PXQmJnQ8PW4ub2Zmc2V0K24udmFsdWUubGVuZ3RoJiZzKXJldHVybiBufXJldHVybiBudWxsfWZ1bmN0aW9uIHAoZSl7ZT1mdW5jdGlvbihlKXtjb25zdCB0PVtdO2Zvcihjb25zdCBvIG9mIGUpIndoaXRlc3BhY2UiIT09by50eXBlJiZ0LnB1c2gobyk7cmV0dXJuIHR9KGUpO2NvbnN0IHQ9W10sbz1bXTtsZXQgbjtmb3IobGV0IHM9MDtzPGUubGVuZ3RoO3MrKyl7Y29uc3QgaT1lW3NdO3N3aXRjaChpLnR5cGUpe2Nhc2UicGx1cyI6Y2FzZSJtaW51cyI6Y2FzZSJtdWx0aXBseSI6Y2FzZSJkaXZpZGUiOmNhc2UicG93ZXIiOm8ubGVuZ3RoJiZvW28ubGVuZ3RoLTFdLm1pblByZWNlZGVuY2U+aS5wcmVjZWRlbmNlJiYob1tvLmxlbmd0aC0xXS5taW5QcmVjZWRlbmNlPWkucHJlY2VkZW5jZSk7YnJlYWs7Y2FzZSJvcGVuQnJhY2UiOm49e21pblByZWNlZGVuY2U6MS8wLG9wZW5CcmFjZUluZGV4OnN9LG8ucHVzaChuKTticmVhaztjYXNlImNsb3NlQnJhY2UiOntpZihuPW8ucG9wKCksIW4pYnJlYWs7Y29uc3QgaT1lW24ub3BlbkJyYWNlSW5kZXgtMV0scj1lW3MrMV0sYT1pJiYoInBsdXMiPT09aS50eXBlfHwibXVsdGlwbHkiPT09aS50eXBlKTsoIXUocj8udHlwZSl8fHI/LnByZWNlZGVuY2U8PW4ubWluUHJlY2VkZW5jZSkmJighdShpPy50eXBlKXx8aT8ucHJlY2VkZW5jZTxuPy5taW5QcmVjZWRlbmNlfHxpPy5wcmVjZWRlbmNlPT09bj8ubWluUHJlY2VkZW5jZSYmYSkmJih0LnVuc2hpZnQobi5vcGVuQnJhY2VJbmRleCksdC5wdXNoKHMpLG8ubGVuZ3RoJiZvW28ubGVuZ3RoLTFdLm1pblByZWNlZGVuY2U+bi5taW5QcmVjZWRlbmNlJiYob1tvLmxlbmd0aC0xXS5taW5QcmVjZWRlbmNlPW4ubWluUHJlY2VkZW5jZSkpfX19Zm9yKGxldCBvPXQubGVuZ3RoO28tLTspZS5zcGxpY2UodFtvXSwxKTtyZXR1cm4gZX1mdW5jdGlvbiBtKGUpe3JldHVybiBwKGMoZSkpLnJlZHVjZSgoKGUsdCk9PntpZigic3ltYm9sIiE9PXQudHlwZSlyZXR1cm4gZSt0LnZhbHVlO2NvbnN0WyxvXT12KHQpO3JldHVybiBvP2UrbzplfSksIiIpfWZ1bmN0aW9uIHYoZSl7Y29uc3QgdD0vXic/KD86KFtBLVowLTlfXSspOik/KC4qPyknPyQvaS5leGVjKGUudmFsdWUpO3JldHVybiBudWxsPT09dD9bdm9pZCAwLHZvaWQgMF06W3RbMV0sdFsyXV19fSwxMzg5OTQoZSx0LG8peyJ1c2Ugc3RyaWN0IjtvLmQodCx7SWNvblF1ZXN0aW9uSW5mb3JtYXRpb246KCk9PnAsSWNvblF1ZXN0aW9uSW5mb3JtYXRpb25CdXR0b246KCk9PnYsSWNvblF1ZXN0aW9uSW5mb3JtYXRpb25MaW5rOigpPT5tfSk7dmFyIG49byg3Nzk0NzQpLHM9byg5MTQ0ODcpLGk9by5uKHMpLHI9bygxMTk3NTApLGE9byg4NjUwOTIpLGw9bygzNDQ3ODUpLGM9bygxOTgyMDkpLHU9by5uKGMpO2Z1bmN0aW9uIGQoKXtkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJzY3JvbGwiLGQpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInRvdWNoc3RhcnQiLGQpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlb3V0IixkKSwoMCxsLmhpZGUpKCl9Y29uc3QgaD1lPT57KDAsbC5zaG93T25FbGVtZW50KShlLmN1cnJlbnRUYXJnZXQse3Rvb2x0aXBEZWxheTowfSksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigic2Nyb2xsIixkKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaHN0YXJ0IixkKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZW91dCIsZCl9LHA9KDAsbi5mb3J3YXJkUmVmKSgoKGUsdCk9Pntjb25zdHtjbGFzc05hbWU6byxvbkNsaWNrOnM9aCxkb05vdFNob3dUb29sdGlwT25Ub3VjaDpjLHNpemU6ZCwuLi5wfT1lLHt0b29sdGlwOm0sY2xhc3NOYW1lOnYsLi4uZn09KDAsYS51c2VUb29sdGlwKSh7dG9vbHRpcDplLnRvb2x0aXAsZG9Ob3RTaG93VG9vbHRpcE9uVG91Y2g6ITEsc2hvd1Rvb2x0aXA6bC5zaG93T25FbGVtZW50LGhpZGVUb29sdGlwOmwuaGlkZSxvbkNsaWNrOnN9LHQpO3JldHVybiBuLmNyZWF0ZUVsZW1lbnQoci5JY29uUXVlc3Rpb25JbmZvcm1hdGlvbix7Y2xhc3NOYW1lOmkoKShvLHUoKVsiaWNvbi13cmFwcGVyIl0sbSYmdSgpWyJ3aXRoLXRvb2x0aXAiXSx2KSx0b29sdGlwOm0sc2l6ZTpkLC4uLnAsLi4uZn0pfSkpLG09KDAsbi5mb3J3YXJkUmVmKSgoKGUsdCk9Pntjb25zdHtjbGFzc05hbWU6byxocmVmOnMscmVsOnIsdGFyZ2V0OmEsLi4ubH09ZSxjPSgwLG4udXNlTWVtbykoKCgpPT4oMCxuLmZvcndhcmRSZWYpKCgoZSx0KT0+bi5jcmVhdGVFbGVtZW50KCJhIix7aHJlZjpzLHJlbDpyLHRhcmdldDphLHJlZjp0LC4uLmV9KSkpKSxbcyxyLGFdKTtyZXR1cm4gbi5jcmVhdGVFbGVtZW50KHAsey4uLmwsY2xhc3NOYW1lOmkoKShvLHUoKVsid2l0aC1saW5rIl0pLHJlbmRlckNvbXBvbmVudDpjLHJlZjp0LGRvTm90U2hvd1Rvb2x0aXBPblRvdWNoOiEwfSl9KSksdj0oMCxuLmZvcndhcmRSZWYpKCgoZSx0KT0+e2NvbnN0e2NsYXNzTmFtZTpvLHdpdGhBY3RpdmVTdGF0ZTpzLC4uLnJ9PWUsYT0oMCwKbi51c2VNZW1vKSgoKCk9PigwLG4uZm9yd2FyZFJlZikoKChlLHQpPT5uLmNyZWF0ZUVsZW1lbnQoImJ1dHRvbiIsey4uLmUscmVmOnQsdHlwZToiYnV0dG9uIn0pKSkpLFtdKTtyZXR1cm4gbi5jcmVhdGVFbGVtZW50KHAsey4uLnIsY2xhc3NOYW1lOmkoKShvLCFzJiZ1KClbIm5vLWFjdGl2ZS1zdGF0ZSJdKSxyZW5kZXJDb21wb25lbnQ6YSxyZWY6dH0pfSkpfSw3MDg4NDIoZSx0LG8peyJ1c2Ugc3RyaWN0IjtvLmQodCx7VG9vbFdpZGdldENhcmV0OigpPT5jfSk7dmFyIG49byg3Nzk0NzQpLHM9byg5MTQ0ODcpLGk9by5uKHMpLHI9bygyNzMzMTApLGE9byg4MTAyODEpLGw9bygzNTY3MjEpO2Z1bmN0aW9uIGMoZSl7Y29uc3R7ZHJvcHBlZDp0LGNsYXNzTmFtZTpvfT1lO3JldHVybiBuLmNyZWF0ZUVsZW1lbnQoci5JY29uLHtjbGFzc05hbWU6aSgpKG8sYS5pY29uLHtbYS5kcm9wcGVkXTp0fSksaWNvbjpsfSl9fSwxNzA0NChlLHQsbyl7InVzZSBzdHJpY3QiO28uZCh0LHthY3RpdmVQcm9TeW1ib2xRdW90ZXNQcm92aWRlcjooKT0+bH0pO3ZhciBuPW8oODM5NDI2KSxzPW8oMTU5NTEzKSxpPW8oMzA5MDUyKSxyPW8oMjI1Mjk4KSxhPW8oOTQ4MzgwKTtjb25zdCBsPSgwLG4uZGVmYXVsdCkoKCgpPT57Y29uc3QgZT0oMCxzLmdldFF1b3RlU2Vzc2lvbkluc3RhbmNlKSgiZnVsbCIpO2xldCB0PW51bGw7Y29uc3Qgbz1uZXcgYS5EZWxlZ2F0ZSxuPShlLHQpPT57by5maXJlKGUsdCl9O3JldHVybiByLmxpbmtpbmcucHJvU3ltYm9sLnN1YnNjcmliZSgobz0+e3QmJmUudW5zdWJzY3JpYmUoIkFDVElWRV9QUk9fU1lNQk9MX1FVT1RFU19QUk9WSURFUiIsdCxuKSx0PW8sbyYmZS5zdWJzY3JpYmUoIkFDVElWRV9QUk9fU1lNQk9MX1FVT1RFU19QUk9WSURFUiIsbyxuKX0pLHtjYWxsV2l0aExhc3Q6ITB9KSx7cXVvdGVzOigpPT50P2kuUVVPVEVfRklFTERTX0NBQ0hFLmdldCh0KTpudWxsLHF1b3Rlc1VwZGF0ZTooKT0+byxyZXF1ZXN0ZWRTeW1ib2w6KCk9PnR9fSkpfSwyNjE5MzYoZSx0LG8peyJ1c2Ugc3RyaWN0IjtvLmQodCx7ZGVib3VuY2VIaWRlVG9vbHRpcDooKT0+YSxzaG93VG9vbHRpcDooKT0+dX0pO3ZhciBuPW8oNTQ3ODUxKSxzPW8oMzQ0Nzg1KSxpPW8oNDgzNDA5KSxyPW8oMTg1MjcxKTtjb25zdCBhPSgwLG4uZGVmYXVsdCkobCwxNTAwKTtmdW5jdGlvbiBsKCl7ZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigic2Nyb2xsIixsKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJ0b3VjaHN0YXJ0IixsKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZW91dCIsbCksKDAscy5oaWRlKSgpfWNvbnN0IGM9NDAwO2Z1bmN0aW9uIHUoZSx0PXt9KXtjb25zdHtpbml0aWFsRGVsYXk6bj1jLGxlYXZlT25Nb3VzZU91dDphLHdpdGhvdXRUaHVtYnN1cEljb246dSx0ZXh0OmQ9ci50KG51bGwsdm9pZCAwLG8oNDQ3MTUwKSl9PXQ7KDAscy5zaG93T25FbGVtZW50KShlLHtiZWxvdzohMCx0b29sdGlwRGVsYXk6bixjb250ZW50Ont0eXBlOiJodG1sIixkYXRhOmAke2R9JHt1PyIiOmAgPHNwYW4gc3R5bGU9InZlcnRpY2FsLWFsaWduOiBtaWRkbGU7Ij4ke2l9PC9zcGFuPmB9YH19KSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJzY3JvbGwiLGwpLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoc3RhcnQiLGwpLGF8fGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlb3V0IixsKX19LDkxMTMyNyhlLHQsbyl7InVzZSBzdHJpY3QiO28uZCh0LHtleHRyYWN0VGFiUGF0aDooKT0+ZyxnZXRTeW1ib2xQYWdlUGF0aDooKT0+YyxtYWtlU3ltYm9sQ2hhcnRVcmw6KCk9PmYsbWFrZVN5bWJvbFBhZ2VVcmw6KCk9PnZ9KTtvKDk2MzkwMCk7dmFyIG49bygzMDk4MzYpLHM9bygyNDE5MzcpLGk9byg4NTE0NTgpLHI9bygxNTY4MjkpO2NvbnN0IGE9bmV3IFNldChbIlNQOlNQWCIsIkNCT0U6U1BYIl0pO2Z1bmN0aW9uIGwoZSl7Y29uc3QgdD17Li4uZX07aWYoInNwcmVhZCI9PT10LnR5cGV8fCJleHByZXNzaW9uIj09PXQudHlwZSl7Y29uc3QgZT10LnNob3J0TmFtZSYmdSh0LnNob3J0TmFtZSksbz10LnByb05hbWUmJnUodC5wcm9OYW1lKTt0LnR5cGU9dm9pZCAwLHQuc2hvcnROYW1lPWUsdC5wcm9OYW1lPW99cmV0dXJuIHR9ZnVuY3Rpb24gYyhlLHQpe2NvbnN0IG89bChlKTtyZXR1cm4gaChwKG8sdCksZChvKSl9ZnVuY3Rpb24gdShlKXtyZXR1cm4oMCxpLnRva2VuaXplKShlKS5maW5kKChlPT4ic3ltYm9sIj09PWUudHlwZSkpPy52YWx1ZX1mdW5jdGlvbiBkKGUpe2NvbnN0IHQ9e3Nob3J0TmFtZTplLnNob3J0TmFtZSxleGNoYW5nZTplLmV4Y2hhbmdlLHByb05hbWU6ZS5wcm9OYW1lLHR5cGU6ZS50eXBlLHR5cGVzcGVjczplLnR5cGVzcGVjcyxyb290OmUucm9vdH07cmV0dXJuIHQucHJvTmFtZSYmdC5wcm9OYW1lLmluY2x1ZGVzKCI6IikmJihbdC5leGNoYW5nZSx0LnNob3J0TmFtZV09dC5wcm9OYW1lLnNwbGl0KCI6IikpLHR9ZnVuY3Rpb24gaChlLHQpe2NvbnN0IG89ZW5jb2RlVVJJQ29tcG9uZW50KHQuc2hvcnROYW1lfHwiIiksbj1lbmNvZGVVUklDb21wb25lbnQodC5leGNoYW5nZXx8IiIpLHM9ZW5jb2RlVVJJQ29tcG9uZW50KHQucHJvTmFtZXx8IiIpLGk9ZW5jb2RlVVJJQ29tcG9uZW50KHQucm9vdHx8IiIpO3JldHVybiBlLnJlcGxhY2UoInt0dmV4Y2hhbmdlfSIsbikucmVwbGFjZSgie3R2c3ltYm9sfSIsbykucmVwbGFjZSgie3R2cHJvc3ltYm9sfSIscykucmVwbGFjZSgie3R2cm9vdH0iLGkpfWZ1bmN0aW9uIHAoZSx0PSIiKXtjb25zdCBvPWQoZSkse3R5cGU6bix0eXBlc3BlY3M6cyxzaG9ydE5hbWU6aSxwcm9OYW1lOmwsZXhjaGFuZ2U6Yyxyb290OnV9PW87cmV0dXJuIHZvaWQgMD09PWkmJnZvaWQgMD09PWw/KGNvbnNvbGUud2FybigiUGFyYW1zIG1pc3NlZCIpLAoiLyIpOmwmJmEuaGFzKGwpP2Avc3ltYm9scy97dHZzeW1ib2x9LyR7dH1gOm58fHM/ImNvbW1vZGl0eSI9PT1uJiZzJiZzLmluY2x1ZGVzKCJjZmQiKT8iL3N5bWJvbHMve3R2c3ltYm9sfS8/ZXhjaGFuZ2U9e3R2ZXhjaGFuZ2V9IjohdXx8IXN8fCJmdXR1cmVzIiE9PW58fHMuaW5jbHVkZXMoImNvbnRpbnVvdXMiKSYmaT8uZW5kc1dpdGgoIjEhIil8fHMuaW5jbHVkZXMoImV4Y2hhbmdlLWNvbnRpbnVvdXMiKT9jJiYoImZvcmV4Ij09PW58fHMmJigwLHIuaGFzQ3J5cHRvVHlwZXNwZWMpKHMpKT8iL3N5bWJvbHMve3R2c3ltYm9sfS8/ZXhjaGFuZ2U9e3R2ZXhjaGFuZ2V9IjpjP2Avc3ltYm9scy97dHZleGNoYW5nZX0te3R2c3ltYm9sfS8ke3R9YDpgL3N5bWJvbHMve3R2c3ltYm9sfS8ke3R9YDpgL3N5bWJvbHMve3R2ZXhjaGFuZ2V9LXt0dnJvb3R9MSEvJHt0fT9jb250cmFjdD17dHZzeW1ib2x9YDpjP2Avc3ltYm9scy97dHZleGNoYW5nZX0te3R2c3ltYm9sfS8ke3R9YDpgL3N5bWJvbHMve3R2c3ltYm9sfS8ke3R9YH1mdW5jdGlvbiBtKGUsdCxvLGkpe2NvbnN0IHI9KHdpbmRvdy5sb2NhbGVfZG9tYWlucz8oMCxzLmRldGVybWluZUJhc2VVcmwpKHdpbmRvdy5sb2NhbGVfZG9tYWlucyxpKTp3aW5kb3cubG9jYXRpb24ub3JpZ2luKStoKGUsZChsKHQpKSk7cmV0dXJuIG8/KDAsbi5hZGRVdG1Ub1VybCkocixvKTpyfWZ1bmN0aW9uIHYoZSx0LG8sbil7Y29uc3Qgcz1sKGUpO3JldHVybiBtKHAocyxuKSxzLHQsbyl9ZnVuY3Rpb24gZihlLHQpe3JldHVybiBtKCIvY2hhcnQvP3N5bWJvbD17dHZwcm9zeW1ib2x9IixlLHQpfWZ1bmN0aW9uIGcoZSx0KXtjb25zdCBvPWMoe3Byb05hbWU6ZX0pO3JldHVybiB0LnN0YXJ0c1dpdGgobyk/dC5yZXBsYWNlKG8uc2xpY2UoMCxvLmxlbmd0aC0xKSwiIik6bnVsbH19LDY3MzA2NShlKXtlLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMTggMTgiIHdpZHRoPSIxOCIgaGVpZ2h0PSIxOCI+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik05IDE3QTggOCAwIDEgMCA5IDFhOCA4IDAgMCAwIDAgMTZabTQtOS45N0wxMS45IDYgOC4zIDkuODIgNi4xIDcuNDYgNC45OSA4LjUgOC4zMiAxMiAxMyA3LjAzWiIvPjwvc3ZnPid9LDQwMDA0NihlKXtlLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMTggMTgiIHdpZHRoPSIxOCIgaGVpZ2h0PSIxOCI+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik05IDE3QTggOCAwIDEgMCA5IDFhOCA4IDAgMCAwIDAgMTZaTTkgNGMtLjc5IDAtMS4zOC43LTEuMjUgMS40OGwuNjcgNC4wM2EuNTkuNTkgMCAwIDAgMS4xNiAwbC42Ny00LjAzQTEuMjcgMS4yNyAwIDAgMCA5IDRabTAgOGExIDEgMCAxIDAgMCAyIDEgMSAwIDAgMCAwLTJaIi8+PC9zdmc+J30sNTI3MjE5KGUpe2UuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxOCAxOCIgd2lkdGg9IjE4IiBoZWlnaHQ9IjE4Ij48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGQ9Ik05IDE3QTggOCAwIDEgMCA5IDFhOCA4IDAgMCAwIDAgMTZabTEtMTJhMSAxIDAgMSAxLTIgMCAxIDEgMCAwIDEgMiAwWk04LjUgOS41SDdWOGgzdjZIOC41VjkuNVoiLz48L3N2Zz4nfSw3ODU5OTUoZSl7ZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDE4IDE4IiB3aWR0aD0iMTgiIGhlaWdodD0iMTgiPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNOSAxN0E4IDggMCAxIDAgOSAxYTggOCAwIDAgMCAwIDE2Wm0tMS00YTEgMSAwIDEgMCAyIDAgMSAxIDAgMCAwLTIgMFptMi44My0zLjUyYy0uNDkuNDMtLjk3Ljg1LTEuMDYgMS41Mkg4LjI2Yy4wOC0xLjE4Ljc0LTEuNjkgMS4zMi0yLjEzLjQ5LS4zOC45Mi0uNzEuOTItMS4zN0MxMC41IDYuNjcgOS44MiA2IDkgNnMtMS41LjY3LTEuNSAxLjVWOEg2di0uNWEzIDMgMCAxIDEgNiAwYzAgLjk2LS42IDEuNDgtMS4xNyAxLjk4WiIvPjwvc3ZnPid9LDQwOTQ1NShlKXtlLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMjggMjgiIHdpZHRoPSIyOCIgaGVpZ2h0PSIyOCIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBkPSJNMTcgNEg2djE5aDE1VjEwaDF2MTRINVYzaDEyem0tMyAydjJoMWEzIDMgMCAwIDEgMyAzaC0xYTIgMiAwIDAgMC0yLTJoLTNhMiAyIDAgMSAwIDAgNGgzYTMgMyAwIDEgMSAwIDZoLTF2MmgtMXYtMmgtMWEzIDMgMCAwIDEtMy0zaDFhMiAyIDAgMCAwIDIgMmgzYTIgMiAwIDEgMCAwLTRoLTNhMyAzIDAgMSAxIDAtNmgxVjZ6bTExLS41LTIuMzM5IDIuMzU0LS43MDctLjcwOEwyMy4xMDEgNkgxOVY1aDQuMWwtMS4xNDYtMS4xNDYuNzA3LS43MDh6Ii8+PC9zdmc+J30sODQ0NjQxKGUpewplLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMjggMjgiIHdpZHRoPSIyOCIgaGVpZ2h0PSIyOCIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBkPSJNMTIgMTZhNSA1IDAgMCAxIDUgNWgtMWE0IDQgMCAwIDAtNC00SDhhNCA0IDAgMCAwLTQgNEgzYTUgNSAwIDAgMSA1LTV6bTkgMWE0IDQgMCAwIDEgNCA0aC0xYTMgMyAwIDAgMC0zLTNoLTN2LTF6bS0xLjUtOWMuNDY0IDAgLjY5NyAwIC44OTIuMDI1YTMgMyAwIDAgMSAyLjU4MyAyLjU4M2MuMDI1LjE5NS4wMjUuNDI4LjAyNS44OTJzMCAuNjk3LS4wMjUuODkxbC0uMDQ0LjI1YTMgMyAwIDAgMS0yLjU0IDIuMzMzbC0uMTU2LjAxNWMtLjE2OS4wMS0uMzg3LjAxLS43MzUuMDFzLS41NjYgMC0uNzM1LS4wMWwtLjE1Ny0uMDE1YTMgMyAwIDAgMS0yLjUzOS0yLjMzNGwtLjA0NC0uMjQ5QzE2IDEyLjE5NyAxNiAxMS45NjQgMTYgMTEuNXMwLS42OTcuMDI1LS44OTJhMyAzIDAgMCAxIDIuNTgzLTIuNTgzQzE4LjgwMyA4IDE5LjAzNiA4IDE5LjUgOE0xMCA2Yy40NjQgMCAuNjk2IDAgLjg5Mi4wMjJhMy41IDMuNSAwIDAgMSAzLjA4NSAzLjA4NkMxNCA5LjMwMyAxNCA5LjUzNiAxNCAxMHMwIC42OTYtLjAyMy44OTFhMy41IDMuNSAwIDAgMS0zLjA4NSAzLjA4NkMxMC42OTYgMTQgMTAuNDY0IDE0IDEwIDE0Yy0uMzQ4IDAtLjU2NiAwLS43MzUtLjAxbC0uMTU3LS4wMTNhMy41IDMuNSAwIDAgMS0zLjAzOS0yLjc4NWwtLjA0Ny0uM0M2LjAwMSAxMC42OTUgNiAxMC40NjMgNiAxMGMwLS4zNDggMC0uNTY2LjAxLS43MzZsLjAxMi0uMTU2QTMuNSAzLjUgMCAwIDEgOC44MDggNi4wN2wuMy0uMDQ3QzkuMzA0IDYgOS41MzYgNiAxMCA2bTkuNSAzYy0uNDk2IDAtLjY0Ny4wMDItLjc2LjAxN2EyIDIgMCAwIDAtMS43MjIgMS43MjJjLS4wMTUuMTE0LS4wMTguMjY1LS4wMTguNzYgMCAuNDk2LjAwMy42NDguMDE4Ljc2MWEyIDIgMCAwIDAgMS43MjEgMS43MjJjLjExNC4wMTUuMjY1LjAxOC43NjEuMDE4cy42NDctLjAwMy43Ni0uMDE4YTIgMiAwIDAgMCAxLjcyMi0xLjcyMWMuMDE1LS4xMTQuMDE4LS4yNjYuMDE4LS43NjEgMC0uNDk2LS4wMDMtLjY0Ny0uMDE4LS43NjFhMiAyIDAgMCAwLTEuNzIxLTEuNzIyQzIwLjE0NyA5LjAwMiAxOS45OTYgOSAxOS41IDlNMTAgN2MtLjQ5MiAwLS42NTUuMDAxLS43OC4wMTVBMi41IDIuNSAwIDAgMCA3LjAxNiA5LjIyQzcgOS4zNDUgNyA5LjUxIDcgMTBjMCAuNDkyLjAwMi42NTYuMDE2Ljc4MWEyLjUgMi41IDAgMCAwIDIuMjA0IDIuMjA0Yy4xMjUuMDE0LjI4OC4wMTYuNzguMDE2cy42NTUtLjAwMi43OC0uMDE2YTIuNSAyLjUgMCAwIDAgMi4yMDQtMi4yMDRjLjAxNC0uMTI1LjAxNi0uMjg5LjAxNi0uNzhzLS4wMDItLjY1NS0uMDE2LS43OGEyLjUgMi41IDAgMCAwLTIuMjA0LTIuMjA1QzEwLjY1NSA3LjAwMSAxMC40OTIgNyAxMCA3Ii8+PC9zdmc+J30sMjI4OTU4KGUpe2UuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyOCAyOCIgd2lkdGg9IjI4IiBoZWlnaHQ9IjI4IiBmaWxsPSJub25lIj48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGQ9Ik0yMiAxMC41VjI0SDZWNGgxMC41ek03IDIzaDE0VjExaC01VjVIN3ptMTItNEg5di0xaDEwem0wLTRIOXYtMWgxMHptLTYtNEg5di0xaDR6bTQtMWgzLjI2N0wxNyA2LjEzOXoiLz48L3N2Zz4nfSwxODcxNDcoZSl7ZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDI4IDI4IiB3aWR0aD0iMjgiIGhlaWdodD0iMjgiIGZpbGw9Im5vbmUiPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZD0ibTE3LjM5NCA2LjAxNC4yMTIuMTUzQTEzIDEzIDAgMCAxIDIzIDE2LjcwOVYyM2wtLjAwNC4xNTRhMyAzIDAgMCAxLTIuODQyIDIuODQyTDIwIDI2SDhhMyAzIDAgMCAxLTIuOTk2LTIuODQ2TDUgMjN2LTYuMjkxQTEzIDEzIDAgMCAxIDEwLjA4IDYuNGwuMzE0LS4yMzMuMjExLS4xNTNMOSAyaDEwek0xMC45NDkgN0ExMiAxMiAwIDAgMCA2IDE2LjcwOVYyM2EyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJ2LTYuMjkxQTEyIDEyIDAgMCAwIDE3LjA1IDd6TTExIDE3SDl2MWgxLjc0M3YxSDl2MWgydjFIOHYtNWgzem01IDBoLTEuNDgydjRoLTEuMDMzdi00SDEydi0xaDR6bTQgMGgtMnYxaDEuNzcxdjFIMTh2MmgtMXYtNWgzek0xMS42NzcgNmg0LjY0NmwxLjItM2gtNy4wNDZ6Ii8+PC9zdmc+J30sOTI2Njk4KGUpe2UuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyOCAyOCIgd2lkdGg9IjI4IiBoZWlnaHQ9IjI4IiBmaWxsPSJub25lIj48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGQ9Ik0xNSAyNWgtMXYtMmgxem0wLTRoLTF2LTJoMXptOC0xM3Y1aC0xVjkuNzA3bC03LjQ2MyA3LjQ2My01LTQtNC42ODMgNC42ODQtLjcwOC0uNzA3IDUuMzE3LTUuMzE3IDUgNEwyMS4yOTMgOUgxOFY4em0tOCA1aC0xdi0yaDF6bTAtNGgtMVY3aDF6bTAtNGgtMVYzaDF6Ii8+PC9zdmc+J30sODU5NzkxKGUpewplLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMjggMjgiIHdpZHRoPSIyOCIgaGVpZ2h0PSIyOCIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBkPSJNOSAxMmMxLjI5NiAwIDIuNDkzLjIzMiAzLjM4NS42MjkuNDQ1LjE5Ny44MzcuNDQ3IDEuMTI0Ljc0OC4yODkuMzAzLjQ5LjY4NC40OTEgMS4xMjN2Mi40NnEuMjg0LS4xODQuNjE1LS4zMzFjLjg5Mi0uMzk3IDIuMDktLjYzIDMuMzg1LS42MyAxLjI5NiAwIDIuNDkzLjIzMyAzLjM4NS42My40NDUuMTk3LjgzNy40NDcgMS4xMjQuNzQ4LjI4OS4zMDMuNDkuNjg0LjQ5MSAxLjEyM3YzYzAgLjQzOC0uMjAyLjgxOS0uNDkxIDEuMTIzLS4yODcuMzAxLS42NzkuNTUtMS4xMjQuNzQ4LS44OTIuMzk2LTIuMDkuNjI5LTMuMzg1LjYyOS0xLjI5NiAwLTIuNDkzLS4yMzMtMy4zODUtLjYzLS40NDUtLjE5Ny0uODM3LS40NDYtMS4xMjQtLjc0N2ExLjggMS44IDAgMCAxLS40MDctLjY0MnEtLjMxNi4yMi0uNy4zOWMtLjg5LjM5Ni0yLjA4Ny42MjktMy4zODQuNjI5cy0yLjQ5My0uMjMzLTMuMzg1LS42M2MtLjQ0NS0uMTk3LS44MzctLjQ0Ni0xLjEyNC0uNzQ3QzQuMjAyIDIxLjMxOSA0IDIwLjkzOCA0IDIwLjV2LTZjMC0uNDM5LjIwMi0uODIuNDkxLTEuMTIzLjI4Ny0uMzAyLjY3OS0uNTUgMS4xMjQtLjc0OC44OTItLjM5NyAyLjA5LS42MyAzLjM4NS0uNjNtMTMgOC4wMzlhNC40IDQuNCAwIDAgMS0uNjE1LjMzMmMtLjg5Mi4zOTYtMi4wOS42MjktMy4zODUuNjI5LTEuMjk2IDAtMi40OTMtLjIzMy0zLjM4NS0uNjNBNC4zIDQuMyAwIDAgMSAxNCAyMC4wNHYxLjQ2YzAgLjExNC4wNS4yNi4yMTYuNDM0LjE2OC4xNzcuNDM3LjM2LjgwNi41MjQuNzM2LjMyNyAxLjc4OS41NDMgMi45NzguNTQzczIuMjQyLS4yMTYgMi45NzktLjU0M2MuMzY4LS4xNjQuNjM3LS4zNDcuODA1LS41MjQuMTY2LS4xNzQuMjE2LS4zMi4yMTYtLjQzM3ptLTE3IC40NmMwIC4xMTQuMDUuMjYuMjE2LjQzNC4xNjguMTc3LjQzNy4zNi44MDUuNTI0LjczNy4zMjcgMS43OS41NDMgMi45NzkuNTQzczIuMjQyLS4yMTYgMi45NzktLjU0M2MuMzY4LS4xNjQuNjM3LS4zNDcuODA1LS41MjQuMTY2LS4xNzQuMjE2LS4zMi4yMTYtLjQzM3YtMS40NmE0LjQgNC40IDAgMCAxLS42MTUuMzNjLS44OTIuMzk3LTIuMDkuNjMtMy4zODUuNjMtMS4yOTYgMC0yLjQ5My0uMjMzLTMuMzg1LS42M0E0LjQgNC40IDAgMCAxIDUgMTkuMDR6TTE4IDE3Yy0xLjE5IDAtMi4yNDIuMjE2LTIuOTc5LjU0NC0uMzY4LjE2NC0uNjM3LjM0Ni0uODA1LjUyMy0uMTY2LjE3NS0uMjE2LjMyLS4yMTYuNDM0cy4wNS4yNTkuMjE2LjQzM2MuMTY4LjE3Ny40MzcuMzYuODA2LjUyNC43MzYuMzI3IDEuNzg5LjU0MyAyLjk3OC41NDNzMi4yNDItLjIxNiAyLjk3OS0uNTQzYy4zNjgtLjE2NC42MzctLjM0Ny44MDUtLjUyNC4xNjYtLjE3NC4yMTYtLjMyLjIxNi0uNDMzIDAtLjExNC0uMDUtLjI2LS4yMTYtLjQzNC0uMTY4LS4xNzctLjQzNy0uMzYtLjgwNS0uNTIzQzIwLjI0MiAxNy4yMTUgMTkuMTg5IDE3IDE4IDE3bS01LS45NmE0LjQgNC40IDAgMCAxLS42MTUuMzMyYy0uODkyLjM5Ni0yLjA5LjYyOS0zLjM4NS42MjktMS4yOTYgMC0yLjQ5My0uMjMzLTMuMzg1LS42M0E0LjMgNC4zIDAgMCAxIDUgMTYuMDR2MS40NmMwIC4xMTQuMDUuMjYuMjE2LjQzNC4xNjguMTc3LjQzNy4zNi44MDUuNTI0LjczNy4zMjcgMS43OS41NDMgMi45NzkuNTQzczIuMjQyLS4yMTYgMi45NzktLjU0M2MuMzY4LS4xNjQuNjM3LS4zNDcuODA1LS41MjQuMTY2LS4xNzQuMjE2LS4zMi4yMTYtLjQzM3pNOSAxM2MtMS4xOSAwLTIuMjQyLjIxNi0yLjk3OS41NDQtLjM2OC4xNjQtLjYzNy4zNDYtLjgwNS41MjMtLjE2Ni4xNzUtLjIxNi4zMi0uMjE2LjQzNHMuMDUuMjU5LjIxNi40MzNjLjE2OC4xNzguNDM3LjM2LjgwNS41MjQuNzM3LjMyNyAxLjc5LjU0MyAyLjk3OS41NDNzMi4yNDItLjIxNiAyLjk3OS0uNTQzYy4zNjgtLjE2NC42MzctLjM0Ny44MDUtLjUyNC4xNjYtLjE3NC4yMTYtLjMyLjIxNi0uNDMzIDAtLjExNC0uMDUtLjI2LS4yMTYtLjQzNC0uMTY4LS4xNzctLjQzNy0uMzYtLjgwNi0uNTIzQzExLjI0MyAxMy4yMTUgMTAuMTkgMTMgOSAxM20xMi41LTRhMi41IDIuNSAwIDEgMSAwIDUuMDAyQTIuNSAyLjUgMCAwIDEgMjEuNSA5bS40OTktMy4zNEwxNS43NjYgMTNsLS43NjQtLjYzTDIxLjIzNSA1ek0yMS41IDEwYTEuNSAxLjUgMCAxIDAgMCAzLjAwMSAxLjUgMS41IDAgMCAwIDAtM20tNi02YTIuNSAyLjUgMCAxIDEgMCA1LjAwMkEyLjUgMi41IDAgMCAxIDE1LjUgNG0wIDFhMS41IDEuNSAwIDEgMCAwIDMgMS41IDEuNSAwIDAgMCAwLTMiLz48L3N2Zz4nfSwzNzQ2MDAoZSl7ZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDI4IDI4IiB3aWR0aD0iMjgiIGhlaWdodD0iMjgiIGZpbGw9Im5vbmUiPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZD0iTTIxIDEzaDN2OC41YTIuNSAyLjUgMCAwIDEtMi41IDIuNWgtMTVhMi41IDIuNSAwIDAgMS0yLjQ4Ny0yLjI0NEw0IDIxLjVWNWgxN3pNNSAyMS41QTEuNSAxLjUgMCAwIDAgNi41IDIzSDIwVjZINXpNMjEgMjNoLjVhMS41IDEuNSAwIDAgMCAxLjUtMS41VjE0aC0yem0tNy0zSDd2LTFoN3ptNC0zSDd2LTFoMTF6bS03LTRIN1Y5aDR6bTcgMGgtNXYtMWg1ek04IDEyaDJ2LTJIOHptMTAtMmgtNVY5aDV6Ii8+PC9zdmc+J30sODg3NjYzKGUpe2UuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyOCAyOCIgd2lkdGg9IjI4IiBoZWlnaHQ9IjI4IiBmaWxsPSJub25lIj48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGQ9Ik04IDEyaDguMTdsMi45NTgtNS45ODEuODk2LjQ0M0wxNy4yODYgMTJoLjA1MmwtLjQ5MyAxaC0uMDUzbC0zLjMyMiA2LjcyLS4xMzguMjhIOHY1SDdWM2gxem0wIDdoNC43MWwyLjk2Ny02SDh6bTE1LTZoLTUuMDRsLjQ5My0xSDIzeiIvPjwvc3ZnPid9LDYyNzYwMihlKXsKZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDI4IDI4IiB3aWR0aD0iMjgiIGhlaWdodD0iMjgiIGZpbGw9Im5vbmUiPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZD0ibTIwLjUwNSA5LjQyOS4zOTQuNzg4YTguMSA4LjEgMCAwIDEgLjUwMiA2LjAxM2MxLjQwNy0uMzI5IDIuNjkyLS4xNzIgNC4xMDMuMjgzbC40OTYuMTU3LS4xNzguNDg0Yy0uNzgxIDIuMjItMi43MjUgMy44Ni00LjY3OCA0LjU3Ni41NS41NzIuOTI2IDEuMjUzIDEuMjcgMS44NzVsLjA3My4xMzEuMjQ1LjQ0NC0uNDQ1LjIzOWMtMi4yNDIgMS4yMDctNSAuNDA4LTYuNjE0LTEuMzU1bC0uNTMxIDEuNDAyLS45MzUtLjM1NC41MTUtMS4zNmMtMi4zNi4zNDEtNS4wMTItLjc3NC01Ljk5OC0zLjEwOGwtLjE5OC0uNDY3LjQ3LS4xOWMuNjk1LS4yODQgMS40MTItLjU3IDIuMi0uNzEtMS41NDItMi4yNDEtMS40Mi00LjE3NS0uNjM2LTYuNDA0bC4xNi0uNDUxLjQ1Ny4xMzhjMS4zOTguNDI0IDIuNjA5IDEuMDQxIDMuNDQzIDIuMjY0YTkuMDIgOS4wMiAwIDAgMSA0LjMxMi00LjIwMmwuOTE3LS40MjMuNDQtLjIwM3pNMTkuMzUgMTAuNTNhOC4wMiA4LjAyIDAgMCAwLTQuMTEyIDQuMzY3bC0uMDk4LjI1Mi0uNDQ2IDEuMTQtLjQ4LTEuMTI1Yy0uNTczLTEuMzQyLTEuNTMxLTIuMDI0LTIuODYtMi40OTQtLjYwNCAyLjA4My0uNTQ0IDMuODY3IDEuMTc0IDUuNjg0bC43NTMuODMyLTEuMTIzLjAwM2MtLjc5Ni4wMDMtMS41MDguMjIxLTIuMjgzLjUyMiAxLjA1NiAxLjc2OCAzLjQ5NyAyLjUzIDUuNDg2IDEuODY2bC4zNy0uMTIzLjIxLjMyN2MxLjEzMSAxLjc2MiAzLjQ4MyAyLjY4NSA1LjQwNyAxLjk2OC0uNDI5LS43NTQtLjg0NS0xLjM4Ny0xLjUxNi0xLjgxNWwtMS4wMjYtLjY1NiAxLjE5MS0uMjU1YzEuOC0uMzg0IDMuNzgxLTEuNzY3IDQuNjgzLTMuNzEyLTEuMzU0LS4zNjQtMi41NC0uMzY3LTMuOTI2LjE2MmwtMS4wODcuNDE1LjQ0Ny0xLjA3NS4wOTctLjIzYTcuMSA3LjEgMCAwIDAtLjIwNi01LjkxOGwtLjE3OC0uMzU1em0tMTMuOTc5IDYuNy0xLjg3IDEuMDk4LS41MDYtLjg2MyAxLjg3LTEuMDk3ek0xMi41IDZhNi40OSA2LjQ5IDAgMCAxIDUuMiAyLjU5OWwtLjcxNi43MTVhNS41IDUuNSAwIDEgMC03LjY3IDcuNjdMOC42IDE3LjdBNi41IDYuNSAwIDAgMSAxMi41IDZNNCAxMnYxSDJ2LTF6bTEuNDMtNC4yNzQtLjUwNy44NjItMS45MjctMS4xMzQuNTA4LS44NjF6TTE4LjMxNSAzLjUgMTcuMjEgNS40MDNsLS44NjQtLjUwMkwxNy40NSAzek04LjY0NyA0Ljg0OWwtLjg2NS41MDItMS4wNy0xLjg0Ljg2NS0uNTAyek0xMyA0aC0xVjJoMXoiLz48L3N2Zz4nfSw2NzQ5MDUoZSl7ZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDI4IDI4IiB3aWR0aD0iMjgiIGhlaWdodD0iMjgiIGZpbGw9Im5vbmUiPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZD0iTTQuNSAyMmgtMXYtM2gxem0zIDBoLTF2LTZoMXptMyAwaC0xdi04aDF6bTMgMGgtMXYtNmgxem0zIDBoLTF2LTRoMXptMyAwaC0xdi02aDF6bTMgMGgtMXYtOGgxem0tLjE0Ni0xNC4xNDYtNC41ODYgNC41ODZhMi41IDIuNSAwIDAgMS0zLjUzNiAwbC0zLjE3MS0zLjE3MmExLjUgMS41IDAgMCAwLTIuMTIyIDBsLTQuNTg1IDQuNTg2LS43MDgtLjcwN0w4LjIzMiA4LjU2YTIuNSAyLjUgMCAwIDEgMy41MzYgMGwzLjE3MiAzLjE3MWExLjUgMS41IDAgMCAwIDIuMTIgMGw0LjU4Ny00LjU4NnoiLz48L3N2Zz4nfSwzNTY3MjEoZSl7ZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDE2IDgiIHdpZHRoPSIxNiIgaGVpZ2h0PSI4Ij48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGQ9Ik0wIDEuNDc1bDcuMzk2IDYuMDQuNTk2LjQ4NS41OTMtLjQ5TDE2IDEuMzkgMTQuODA3IDAgNy4zOTMgNi4xMjIgOC41OCA2LjEyIDEuMTg2LjA4eiIvPjwvc3ZnPid9LDQ4MzQwOShlKXsKZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiBmaWxsPSJub25lIj48ZyBjbGlwLXBhdGg9InVybCgjY2xpcDApIj48cGF0aCBmaWxsPSIjRkZEQjVFIiBkPSJNMTMuNjUxIDcuOTcyYzAtLjE2OC0uMDQtLjMyNS0uMTA3LS40NjgtLjQ0Ny0xLjQ0Mi0yLjU0LTEuMzM3LTUuNTE2LTEuNDA3LS40OTgtLjAxMi0uMjEzLS42LS4wMzgtMS44OS4xMTMtLjgzOC0uNDI4LTIuMTI3LTEuMzM3LTIuMTI3LTEuNSAwLS4wNTcgMS4xODMtMS4zODMgNC4xMDgtLjcwOCAxLjU2Mi0yLjI5MS42ODctMi4yOTEgMi4yNTd2My41NzNjMCAuNjEuMDYgMS4xOTguOTE5IDEuMjk1LjgzMy4wOTMuNjQ2LjY4NyAxLjg0Ny42ODdoNi4wMTVhMS4xMTIgMS4xMTIgMCAwIDAgMS4xMS0xLjExMWMwLS4yNTQtLjA4OC0uNDg2LS4yMzItLjY3My4zNC0uMTkuNTczLS41NS41NzMtLjk2NmExLjEgMS4xIDAgMCAwLS4yMzItLjY3MmMuMzQxLS4xOS41NzYtLjU1LjU3Ni0uOTY3IDAtLjMwMy0uMTIzLS41NzgtLjMyLS43NzlhMS4xMDUgMS4xMDUgMCAwIDAgLjQxNi0uODZ6Ii8+PHBhdGggZmlsbD0iI0VFOTU0NyIgZD0iTTkuNjczIDkuMDgzaDIuODY3Yy4zOSAwIC43NTctLjIwOS45NTYtLjU0NGEuMjkyLjI5MiAwIDAgMC0uNTAyLS4yOTguNTMuNTMgMCAwIDEtLjQ1NC4yNTlIOS42MDRhLjUyOC41MjggMCAwIDEgMC0xLjA1NmgxLjk2MmEuMjkyLjI5MiAwIDAgMCAwLS41ODNIOS42MDNhMS4xMTIgMS4xMTIgMCAwIDAtMS4xMSAxLjExMWMwIC4zNDIuMTU4LjY0NC40Ljg0OGExLjEwNyAxLjEwNyAwIDAgMC0uMzMyLjc5MWMwIC4zNDMuMTYuNjQ2LjQwNC44NWExLjEwNSAxLjEwNSAwIDAgMCAuMTQgMS42OTMgMS4xMDIgMS4xMDIgMCAwIDAgLjA0MiAxLjUyYy4yMDguMjA4LjQ5LjMyNS43ODUuMzI2aDEuODI4YTEuMTE3IDEuMTE3IDAgMCAwIC45NTYtLjU0NC4yOTIuMjkyIDAgMCAwLS41MDItLjI5OC41MzEuNTMxIDAgMCAxLS40NTQuMjU4SDkuOTMyYS41MjguNTI4IDAgMCAxIDAtMS4wNTVIMTIuMWExLjExNyAxLjExNyAwIDAgMCAuOTU2LS41NDQuMjkyLjI5MiAwIDEgMC0uNTAxLS4yOTguNTI2LjUyNiAwIDAgMS0uNDU0LjI1OUg5Ljc0NWEuNTI5LjUyOSAwIDAgMSAwLTEuMDU2aDIuNjk3YTEuMTE2IDEuMTE2IDAgMCAwIC45NTYtLjU0NC4yOTIuMjkyIDAgMCAwLS41MDEtLjI5OC41MjUuNTI1IDAgMCAxLS40NTUuMjU5aC0yLjc3YS41MjkuNTI5IDAgMCAxIDAtMS4wNTZ6Ii8+PC9nPjxkZWZzPjxjbGlwUGF0aCBpZD0iY2xpcDAiPjxwYXRoIGZpbGw9IiNmZmYiIGQ9Ik0wIDBoMTJ2MTJIMHoiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDIgMikiLz48L2NsaXBQYXRoPjwvZGVmcz48L3N2Zz4nfX1dKTs="}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/66522.661a97161c3cad9690d2.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.348Z","timestamp":1785148034348,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/66522.661a97161c3cad9690d2.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\ncontent-type: text/css; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding, Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\netag: W/\"69f98b74-3a7\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Tue, 05 May 2026 06:17:24 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.51\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 05/05/2026 10:16:42\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 1014e45d88e9c82d7ee3fe4fb30532ce\r\ncdn-cache: HIT\r\ncontent-encoding: br\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":935,"size_decoded":1223,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with very long lines (935), with no line terminators","md5":"9295c27fd4daa554b8dc928ab0c03a98","sha1":"2f33253bdbb14763a9e94d92768f77ec5ec2416f","sha256":"1936404f933cb5460b13710ba8fbe6e85d647437100f0ab98916d094a14d0bdf","sha512":"e4fbc74b9e0e953c709284d47e4093018617cabcd5525629f6f8152d3b8dd8fe175c8281e80fdfea7c397d218d86b578389aab6640dc1cb9a6cd7d0c37679c80","ssdeep":"","tlshash":"4b115631f150ca2d7c67a8290781d28e6128ec0e66c7a65dbb16e22948cf7d32263318","first_seen":"2026-02-24T15:20:08.929924Z","last_seen":"2026-07-27T12:47:44.696815Z","times_seen":608,"resource_available":false,"data":"W2RhdGEtdGhlbWU9bGlnaHRdey0tXzAtQktiLTp2YXIoLS1jb2xvci1jb2xkLWdyYXktOTAwKX1bZGF0YS10aGVtZT1kYXJrXXstLV8wLUJLYi06dmFyKC0tY29sb3ItY29sZC1ncmF5LTIwMCl9LmRpYWxvZy1VR2RDNjlzd3ttaW4td2lkdGg6MjU0cHg7cGFkZGluZzo0MHB4O3dpZHRoOmF1dG99LmRpYWxvZ0lubmVyLVVHZEM2OXN3e2FsaWduLWl0ZW1zOmNlbnRlcjtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1ufS50aXRsZVdyYXBwZXItVUdkQzY5c3d7YWxpZ24taXRlbXM6Y2VudGVyO2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO21hcmdpbi1ib3R0b206MTZweDttYXgtd2lkdGg6MTAwJX0udGl0bGUtVUdkQzY5c3d7Y29sb3I6dmFyKC0tXzAtQktiLSk7Y3Vyc29yOmRlZmF1bHQ7Zm9udC1zaXplOjIwcHg7Zm9udC13ZWlnaHQ6NzAwO2xpbmUtaGVpZ2h0OjI4cHg7b3ZlcmZsb3c6aGlkZGVuO3doaXRlLXNwYWNlOm5vd3JhcH0uaW5mb0hpbnQtVUdkQzY5c3d7Y29sb3I6dmFyKC0tY29sb3ItZGVmYXVsdC1ncmF5KTtoZWlnaHQ6MThweDttYXJnaW4taW5saW5lLXN0YXJ0OjhweDt3aWR0aDoxOHB4fS5mb3JtLVVHZEM2OXN3e2Rpc3BsYXk6ZmxleDttYXgtd2lkdGg6MjAwcHg7d2lkdGg6MTAwJX0uaW5wdXRXcmFwcGVyLVVHZEM2OXN3e2ZsZXgtZ3JvdzoxfS5pbnB1dC1VR2RDNjlzd3tmb250LXNpemU6MjRweDt0ZXh0LWFsaWduOmNlbnRlcn0uaGludC1VR2RDNjlzd3tjb2xvcjp2YXIoLS1jb2xvci1kZWZhdWx0LWdyYXkpO2N1cnNvcjpkZWZhdWx0O2ZvbnQtc2l6ZToxMnB4O2xpbmUtaGVpZ2h0OjE4cHg7bWFyZ2luLXRvcDozcHg7bWF4LXdpZHRoOjEwMCU7b3ZlcmZsb3c6aGlkZGVuO3doaXRlLXNwYWNlOm5vd3JhcH0uZXJyb3ItVUdkQzY5c3d7Y29sb3I6dmFyKC0tY29sb3ItcmlwZS1yZWQtNTAwKX0="}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/43644.0f7c140019a67fd50be6.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.769Z","timestamp":1785148034769,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/43644.0f7c140019a67fd50be6.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\ncontent-type: text/css; charset=utf-8\r\ncontent-length: 37\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\netag: \"69f98b70-25\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Tue, 05 May 2026 06:17:20 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.51\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 05/05/2026 10:18:38\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 3291476e8cadc73159a3c565a6cb321e\r\ncdn-cache: HIT\r\naccept-ranges: bytes\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":37,"size_decoded":821,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with no line terminators","md5":"40e7cdfa5fbbec9974c8ff508c5b737e","sha1":"b94192497b31c714250d61b05c282d286e55261d","sha256":"582ea1fe7d215016aeb35e182c73a8c84b8d0938111a644d0298ba4719fa041f","sha512":"62e373a6019a91ff86c10637189c72a0d1db71df35ccb168330a115accc1eb05bbe880857da38d4afafe81c027200eba58108bcd5d4c251f373f47293ebc3f6d","ssdeep":"","tlshash":"79800080f82a2a280330820c8c8032a03008e20cc8f302c88822ea22a00eab30203880","first_seen":"2024-11-26T05:27:28.665532Z","last_seen":"2026-07-27T12:54:15.41109Z","times_seen":805,"resource_available":false,"data":"Lm5vQnJlYWstSGtHWEs1MjR7d2hpdGUtc3BhY2U6bm93cmFwfQ=="}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/80207.3e5e7d68c875b367cad0.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.857Z","timestamp":1785148034857,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/80207.3e5e7d68c875b367cad0.js HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a3a25bf-d2fc\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Tue, 23 Jun 2026 06:20:47 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.57\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 06/23/2026 10:37:07\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: c0af7a74a5f3b3f6c888c3a152a39d44\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":54012,"size_decoded":13968,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (51870)","md5":"efb45a2a5e9dedce76162279dc170b0e","sha1":"38843307f1bc14de893dfe253b89aa9ec4532bfa","sha256":"c4adc1700ca5f8538ca44843bf76da33e0bc360cdf11ff0ddafbd8856c5bad4d","sha512":"3ef5908b8c8ed8de392171a9c51bbea83f11fdb7542f8fb58439589ee43db4b6785bdb1a3e71993950d28351eb79c5548d8567cfb5f4a5991ab3488d323d675e","ssdeep":"1536:guE5AIu9J3vqcJNT6FuEckfLVnddIwc99EkRIWEEPk2SYHj28kxu:DGxu95vqcHT6gT8VnddPgTRCEgYDDkxu","tlshash":"7f33a56091880f44656183d0bcff24602d9c3d5b4ab665bcde9f0d5b4e99ac83e3bd3a","first_seen":"2026-06-24T00:20:51.960912Z","last_seen":"2026-07-27T12:53:42.460102Z","times_seen":397,"resource_available":true,"data":"InVzZSBzdHJpY3QiOyhzZWxmLndlYnBhY2tDaHVua3RyYWRpbmd2aWV3PXNlbGYud2VicGFja0NodW5rdHJhZGluZ3ZpZXd8fFtdKS5wdXNoKFtbODAyMDddLHszODAyMDcobCxpLG4pe24uZChpLHt0cmllc1RyYW5zbGF0ZVNjcmVlbmVyRGF0YTooKT0+dX0pO3ZhciB0PW4oMTg1MjcxKTtjb25zdCBlPW5ldyBNYXAoW1siQmFzaWMgTWF0ZXJpYWxzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNDAxMTY4KSldLFsiQ2FwaXRhbCBHb29kcyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDk4NjU4OSkpXSxbIkNvbW1lcmNpYWwgU2VydmljZXMiLCgpPT50LnQobnVsbCx2b2lkIDAsbig0Mzc3MDEpKV0sWyJDb21tdW5pY2F0aW9ucyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDg1ODE4KSldLFsiQ29uZ2xvbWVyYXRlcyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDcyMTMzMykpXSxbIkNvbnN1bWVyIEN5Y2xpY2FsIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oOTU5MjUyKSldLFsiQ29uc3VtZXIgQ3ljbGljYWxzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNTQ1Mzk1KSldLFsiQ29uc3VtZXIgRHVyYWJsZXMiLCgpPT50LnQobnVsbCx2b2lkIDAsbig3NTQ4NDMpKV0sWyJDb25zdW1lciBOb24tQ3ljbGljYWxzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oODMxODgyKSldLFsiQ29uc3VtZXIgTm9uLUR1cmFibGVzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNTU2NDc1KSldLFsiQ29uc3VtZXIgU2VydmljZXMiLCgpPT50LnQobnVsbCx2b2lkIDAsbigxNTI4MDgpKV0sWyJDb25zdW1lci9Ob24tQ3ljbGljYWwiLCgpPT50LnQobnVsbCx2b2lkIDAsbigyNjQ5KSldLFsiRGlzdHJpYnV0aW9uIFNlcnZpY2VzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oMTcxMzQyKSldLFsiRWxlY3Ryb25pYyBUZWNobm9sb2d5IiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNzU5NjE1KSldLFsiRW5lcmd5IiwoKT0+dC50KG51bGwsdm9pZCAwLG4oODI1NTQyKSldLFsiRW5lcmd5IE1pbmVyYWxzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNTYwMzg5KSldLFsiRmluYW5jZSIsKCk9PnQudChudWxsLHZvaWQgMCxuKDQ2MjE5MykpXSxbIkZpbmFuY2lhbCIsKCk9PnQudChudWxsLHZvaWQgMCxuKDEyODQ3OSkpXSxbIkZpbmFuY2lhbHMiLCgpPT50LnQobnVsbCx2b2lkIDAsbigzNjkzMjUpKV0sWyJHb3Zlcm5tZW50IiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNzgzMzE4KSldLFsiSGVhbHRoIFNlcnZpY2VzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNjIwNjAxKSldLFsiSGVhbHRoIFRlY2hub2xvZ3kiLCgpPT50LnQobnVsbCx2b2lkIDAsbig0MTg0NTcpKV0sWyJIZWFsdGhjYXJlIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oODA2ODY3KSldLFsiSW5kdXN0cmlhbCBTZXJ2aWNlcyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDk5OTU2MCkpXSxbIkluZHVzdHJpYWxzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oOTc4NTcyKSldLFsiTWlzY2VsbGFuZW91cyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDE1NzAyMykpXSxbIk5vbi1FbmVyZ3kgTWluZXJhbHMiLCgpPT50LnQobnVsbCx2b2lkIDAsbig1OTI1MzgpKV0sWyJQcm9jZXNzIEluZHVzdHJpZXMiLCgpPT50LnQobnVsbCx2b2lkIDAsbig4MjA2OTgpKV0sWyJQcm9kdWNlciBNYW51ZmFjdHVyaW5nIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNTI3NjQwKSldLFsiUmV0YWlsIFRyYWRlIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNTkwMDY2KSldLFsiU2VydmljZXMiLCgpPT50LnQobnVsbCx2b2lkIDAsbig1MzcwNTkpKV0sWyJUZWNobm9sb2d5IiwoKT0+dC50KG51bGwsdm9pZCAwLG4oMjcxMDc5KSldLFsiVGVjaG5vbG9neSBTZXJ2aWNlcyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDY0MDk1MykpXSxbIlRlbGVjb21tdW5pY2F0aW9ucyBTZXJ2aWNlcyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDg1MjU4NSkpXSxbIlRyYW5zcG9ydGF0aW9uIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNzY4MzkwKSldLFsiVXRpbGl0aWVzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oODkxMTM2KSldXSkKO2NvbnN0IG89bmV3IE1hcChbWyJFeG90aWMiLCgpPT50LnQobnVsbCx2b2lkIDAsbig1ODA4MzIpKV0sWyJNYWpvciIsKCk9PnQudChudWxsLHZvaWQgMCxuKDQ0Nzc1MykpXSxbIk1pbm9yIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oMjA2OTgzKSldLFsiQWNjZXNzb3JpZXMiLCgpPT50LnQobnVsbCx2b2lkIDAsbigyMzkwMjcpKV0sWyJBY2NvdW50aW5nICYgVGF4IFByZXBhcmF0aW9uIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNjAzMjkyKSldLFsiQWRoZXNpdmUiLCgpPT50LnQobnVsbCx2b2lkIDAsbig5MTgzMTApKV0sWyJBZHVsdCBFbnRlcnRhaW5tZW50IFByb2R1Y3Rpb24gJiBCcm9hZGNhc3RpbmciLCgpPT50LnQobnVsbCx2b2lkIDAsbigxODcwNzUpKV0sWyJBZHVsdCBQcm9kdWN0cyBSZXRhaWxlcnMiLCgpPT50LnQobnVsbCx2b2lkIDAsbigyOTA3ODQpKV0sWyJBZHZhbmNlZCBFbGVjdHJvbmljIEVxdWlwbWVudCIsKCk9PnQudChudWxsLHZvaWQgMCxuKDcwOTkzKSldLFsiQWR2YW5jZWQgTWVkaWNhbCBFcXVpcG1lbnQgJiBUZWNobm9sb2d5IiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNjI5NjQwKSldLFsiQWR2YW5jZWQgTWVkaWNhbCBFcXVpcG1lbnQgV2hvbGVzYWxlIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oMjk0MDMzKSldLFsiQWR2YW5jZWQgUG9seW1lciIsKCk9PnQudChudWxsLHZvaWQgMCxuKDU4MDM0MCkpXSxbIkFkdmVudHVyZSBTcG9ydHMgRmFjaWxpdGllcyAmIFNraSBSZXNvcnRzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oMzc1ODc2KSldLFsiQWR2ZXJ0aXNpbmcgJiBNYXJrZXRpbmciLCgpPT50LnQobnVsbCx2b2lkIDAsbigyNjgzNjkpKV0sWyJBZHZlcnRpc2luZy9NYXJrZXRpbmcgU2VydmljZXMiLCgpPT50LnQobnVsbCx2b2lkIDAsbigyODU2NzcpKV0sWyJBZHZlcnRpc2luZyBBZ2VuY3kiLCgpPT50LnQobnVsbCx2b2lkIDAsbigxMjY4NjkpKV0sWyJBZXJvc3BhY2UgJiBEZWZlbnNlIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oMTMwOTY5KSldLFsiQWdyaWN1bHR1cmFsIEJpb3RlY2hub2xvZ3kiLCgpPT50LnQobnVsbCx2b2lkIDAsbig2ODUxNTApKV0sWyJBZ3JpY3VsdHVyYWwgQ2hlbWljYWxzIFdob2xlc2FsZSIsKCk9PnQudChudWxsLHZvaWQgMCxuKDM2Mjg3OCkpXSxbIkFncmljdWx0dXJhbCBDaGVtaWNhbHMiLCgpPT50LnQobnVsbCx2b2lkIDAsbigzOTE2NzIpKV0sWyJBZ3JpY3VsdHVyYWwgQ29tbW9kaXRpZXMvTWlsbGluZyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDYwMjY4MCkpXSxbIkFncmljdWx0dXJhbCBNYWNoaW5lcnkiLCgpPT50LnQobnVsbCx2b2lkIDAsbig0ODIxMDEpKV0sWyJBZ3JpY3VsdHVyZSBTdXBwb3J0IFNlcnZpY2VzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oODg3MzkyKSldLFsiQWlyICYgR2FzIENvbXByZXNzb3JzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oMjA4OTY0KSldLFsiQWlyIEZyZWlnaHQgJiBDb3VyaWVyIFNlcnZpY2VzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oODA3MDQyKSldLFsiQWlyIEZyZWlnaHQgJiBMb2dpc3RpY3MiLCgpPT50LnQobnVsbCx2b2lkIDAsbig5NjQ4MTApKV0sWyJBaXIgRnJlaWdodCIsKCk9PnQudChudWxsLHZvaWQgMCxuKDcwNDg0NikpXSxbIkFpciBGcmVpZ2h0L0NvdXJpZXJzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNzkwNDkzKSldLFsiQWlyIEZyZWlnaHQvRGVsaXZlcnkgU2VydmljZXMiLCgpPT50LnQobnVsbCx2b2lkIDAsbig1NjgzMzYpKV0sWyJBaXJjcmFmdCBFcXVpcG1lbnQgV2hvbGVzYWxlIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNjQ4MDkxKSldLFsiQWlyY3JhZnQgUGFydHMgTWFudWZhY3R1cmluZyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDcwMjE3MSkpXSxbIkFpcmxpbmUgQ2F0ZXJpbmcgU2VydmljZXMiLCgpPT50LnQobnVsbCx2b2lkIDAsbig2MDgyNzYpKV0sWyJBaXJsaW5lcyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDM1MDQwMykpXSxbIkFpcnBvcnQgT3BlcmF0b3JzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNzg2NDcwKSldLFsiQWlycG9ydCBTZXJ2aWNlcyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDMwMjMwMykpXSxbIkFsbCBPdGhlciBGb29kIE1hbnVmYWN0dXJpbmciLCgpPT50LnQobnVsbCx2b2lkIDAsbig5NjIwMTYpKV0sWyJBbHRlcm5hdGl2ZSBNZWRpY2luZSBGYWNpbGl0aWVzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oMjEwMDgxKSldLFsiQWx0ZXJuYXRpdmUgTWVkaWNpbmUiLCgpPT50LnQobnVsbCx2b2lkIDAsbig3MTQ1MDApKV0sWyJBbHRlcm5hdGl2ZSBQb3dlciBHZW5lcmF0aW9uIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oMTk1NzQ1KSldLFsiQWx1bWludW0gUm9sbGluZyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDIwNzc3MSkpXSxbIkFsdW1pbnVtIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNjY3OTkzKSldLFsiQW1idWxhbmNlICYgRW1lcmdlbmN5IFNlcnZpY2VzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNzgxMDg4KSldLFsiQW11c2VtZW50IFBhcmtzIGFuZCBab29zIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNDE5NTMpKV0sWyJBbmltYWwgQnJlZWRpbmciLCgpPT50LnQobnVsbCx2b2lkIDAsbig0NzM4MzQpKV0sWyJBbmltYWwgRmVlZCIsKCk9PnQudChudWxsLHZvaWQgMCxuKDY2MDY4NCkpXSxbIkFuaW1hbCBTbGF1Z2h0ZXJpbmcgJiBQcm9jZXNzaW5nIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNTQzODY2KSldLFsiQW50aXF1ZSBEZWFsZXJzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oMzgwMzUwKSldLFsiQXBwYXJlbCAmIEFjY2Vzc29yaWVzIFJldGFpbGVycyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDM5NTcyNSkpXSxbIkFwcGFyZWwgJiBBY2Nlc3NvcmllcyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDI0MTc4NykpXSxbIkFwcGFyZWwgV2hvbGVzYWxlIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oOTI4MDkpKV0sWyJBcHBhcmVsL0Zvb3R3ZWFyIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNTI2NzM0KSldLFsiQXBwYXJlbC9Gb290d2VhciBSZXRhaWwiLCgpPT50LnQobnVsbCx2b2lkIDAsbig5MDI5ODQpKV0sWyJBcHBsaWFuY2UgJiBIb3VzZXdhcmUgV2hvbGVzYWxlIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oMzAyNDQ3KSldLFsiQXBwbGlhbmNlcywgVG9vbHMgJiBIb3VzZXdhcmVzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oMTE4NDApKV0sWyJBcHBsaWNhdGlvbiBTb2Z0d2FyZSIsKCk9PnQudChudWxsLHZvaWQgMCxuKDg0MjE1NCkpXSxbIkFxdWFjdWx0dXJlIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNTgxMjYwKSldLFsiQXJtcyAmIEFtbXVuaXRpb25zIE1hbnVmYWN0dXJpbmciLCgpPT50LnQobnVsbCx2b2lkIDAsbig4ODY0NjUpKV0sWyJBdXRvICYgVHJ1Y2sgTWFudWZhY3R1cmVycyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDEyNTY2MikpXSxbIkF1dG8gJiBUcnVjayBQYXJ0cyBXaG9sZXNhbGUiLCgpPT50LnQobnVsbCx2b2lkIDAsbig4NzU1NzkpKV0sWyJBdXRvICYgVHJ1Y2sgV2hvbGVzYWxlIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oODc4NzIzKSldLFsiQXV0byBDbGVhbmluZyBQcm9kdWN0cyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDk1ODIzNSkpXSxbIkF1dG8gUGFydHM6IE9FTSIsKCk9PnQudChudWxsLHZvaWQgMCxuKDM3MDEyKSldLFsiQXV0byBWZWhpY2xlcywgUGFydHMgJiBTZXJ2aWNlIFJldGFpbGVycyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDk5Njk3MikpXSxbIkF1dG8sIFRydWNrICYgTW90b3JjeWNsZSBQYXJ0cyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDY2MTk4MykpXSxbIkF1dG9tYXRpYyBWZW5kaW5nIE1hY2hpbmVzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNDY1MjIyKSldLFsiQXV0b21vdGl2ZSBBZnRlcm1hcmtldCIsKCk9PnQudChudWxsLHZvaWQgMCxuKDU0MzE1NykpXSxbIkF1dG9tb2JpbGVzICYgTXVsdGkgVXRpbGl0eSBWZWhpY2xlcyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDI5ODY2MikpXSxbIkF1dG9tb3RpdmUgQWNjZXNzb3JpZXMiLCgpPT50LnQobnVsbCx2b2lkIDAsbigzNjk2NDYpKV0sWyJBdXRvbW90aXZlIEJhdHRlcmllcyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDE3NTc0NCkpXSxbIkF1dG9tb3RpdmUgQm9keSBQYXJ0cyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDM4NTU5MSkpXSxbIkF1dG9tb3RpdmUgUGFydHMgJiBBY2Nlc3NvcmllcyBSZXRhaWxlcnMiLCgpPT50LnQobnVsbCx2b2lkIDAsbig5NTcwODkpKV0sWyJBdXRvbW90aXZlIFN5c3RlbXMiLCgpPT50LnQobnVsbCx2b2lkIDAsbigxNTcyNTQpKV0sWyJCYWJ5IEZvb2QiLCgpPT50LnQobnVsbCx2b2lkIDAsbig1MDg1NDkpKV0sWyJCYWxsICYgUm9sbGVyIEJlYXJpbmdzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNjg4OTY5KSldLFsiQmFua3MiLCgpPT50LnQobnVsbCx2b2lkIDAsbig0OTc4MzcpKV0sWyJCYW5xdWV0IEhhbGxzICYgQ2F0ZXJpbmciLCgpPT50LnQobnVsbCx2b2lkIDAsbig4MjQ1OTUpKV0sWyJCYXRocm9vbSBGaXh0dXJlcyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDUzNTkwOCkpXSxbIkJhdHRlcmllcyAmIFVuaW50ZXJydXB0aWJsZSBQb3dlciBzdXBwbGllcyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDY4ODU1MikpXSxbIkJhdXhpdGUgTWluaW5nIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNDk4Mjg4KSldLFsiQmVhdXR5IFN1cHBseSBTaG9wIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oMjczMTQyKSldLFsiQmVlZiAmIFZlYWwgRmFybWluZyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDUwMTE2KSldLFsiQmVlciwgV2luZSAmIExpcXVvciBTdG9yZXMiLCgpPT50LnQobnVsbCx2b2lkIDAsbig5NDk2MzYpKV0sWyJCZXZlcmFnZXM6IEFsY29ob2xpYyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDY1NzQ3MSkpXSxbIkJldmVyYWdlczogTm9uLUFsY29ob2xpYyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDg5Mzg4NSkpXSxbIkJldmVyYWdlcyAoUHJvZHVjdGlvbi9EaXN0cmlidXRpb24pIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNzkyODY2KSldLFsiQmljeWNsZSBNYW51ZmFjdHVyaW5nIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oODk0NzM4KSldLFsiQmlvIERpYWdub3N0aWNzICYgVGVzdGluZyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDYzNTE1NykpXSxbIkJpbyBNZWRpY2FsIERldmljZXMiLCgpPT50LnQobnVsbCx2b2lkIDAsbig1MzIzMTYpKV0sWyJCaW8gVGhlcmFwZXV0aWMgRHJ1Z3MiLCgpPT50LnQobnVsbCx2b2lkIDAsbig2NDgyNDkpKV0sWyJCaW9kaWVzZWwiLCgpPT50LnQobnVsbCx2b2lkIDAsbig3OTYyNikpXSxbIkJpb21hc3MgJiBCaW9nYXMgRnVlbHMiLCgpPT50LnQobnVsbCx2b2lkIDAsbig1NTcyMzkpKV0sWyJCaW9tZXRyaWMgUHJvZHVjdHMiLCgpPT50LnQobnVsbCx2b2lkIDAsbig2Mzc0MDkpKV0sWyJCaW9waGFybWFjZXV0aWNhbHMiLCgpPT50LnQobnVsbCx2b2lkIDAsbigzNDU3NTMpKV0sWyJCaW90ZWNobm9sb2d5IiwoKT0+dC50KG51bGwsdm9pZCAwLG4oMTc5NDEzKSldLFsiQmlvdGVjaG5vbG9neSAmIE1lZGljYWwgUmVzZWFyY2giLCgpPT50LnQobnVsbCx2b2lkIDAsbig4OTIxNDMpKV0sWyJCaXJ0aCBDb250cm9sIFByb2R1Y3RzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oOTA0NzU3KSldLFsiQm9vayAmIE1hZ2F6aW5lIFJldGFpbGVycyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDk3NjM0NikpXSxbIkJvb2sgUHJpbnRpbmcgU2VydmljZXMiLCgpPT50LnQobnVsbCx2b2lkIDAsbig0NDYyNDcpKV0sWyJCb29rIFB1Ymxpc2hpbmciLCgpPT50LnQobnVsbCx2b2lkIDAsbig3NTAxODIpKV0sWyJCb3R0bGVkIFdhdGVyICYgSWNlIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oMTk2NzAwKSldLFsiQnJhbmRpbmcgJiBOYW1pbmciLCgpPT50LnQobnVsbCx2b2lkIDAsbig4MjEzOTkpKV0sWyJCcmVhZCAmIEJha2VyeSBQcm9kdWN0IE1hbnVmYWN0dXJpbmciLCgpPT50LnQobnVsbCx2b2lkIDAsbig3ODkxODApKV0sWyJCcmVha2Zhc3QgQ2VyZWFsIE1hbnVmYWN0dXJpbmciLCgpPT50LnQobnVsbCx2b2lkIDAsbigyNDMwNDIpKV0sWyJCcmV3ZXJzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNDgwNDEzKSldLFsiQnJvYWRjYXN0aW5nIEVxdWlwbWVudCIsKCk9PnQudChudWxsLHZvaWQgMCxuKDk1MTk2MykpXSxbIkJyb2FkY2FzdGluZyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDgxODYxNikpXSxbIkJyb2tlcmFnZSBTZXJ2aWNlcyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDYyODQ4MSkpXSxbIkJyb29tcywgQnJ1c2hlcyAmIER1c3RwYW5zIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNjU1MDc3KSldLFsiQnVpbGRlciBNZXJjaGFudHMiLCgpPT50LnQobnVsbCx2b2lkIDAsbigxNjE3MTcpKV0sWyJCdWlsZGluZyBDb250cmFjdG9ycyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDM4NjcxOSkpXSxbIkJ1aWxkaW5nIFByb2R1Y3RzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oMjU3MjM0KSldLFsiQnVzaW5lc3MgU2VydmljZXMiLCgpPT50LnQobnVsbCx2b2lkIDAsbigzNzI2NDcpKV0sWyJCdXNpbmVzcyBTdXBwb3J0IFNlcnZpY2VzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oOTczNSkpXSxbIkJ1c2luZXNzIFN1cHBvcnQgU3VwcGxpZXMiLCgpPT50LnQobnVsbCx2b2lkIDAsbig4NzAyOTkpKV0sWyJDYWJsZSBTZXJ2aWNlIFByb3ZpZGVycyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDkxMjgyNikpXSxbIkNhYmxlL1NhdGVsbGl0ZSBUViIsKCk9PnQudChudWxsLHZvaWQgMCxuKDMxMjg4NykpXSxbIkNhZmVzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oMzI5ODMwKSldLFsiQ2FsbCBDZW50ZXIgU2VydmljZXMiLCgpPT50LnQobnVsbCx2b2lkIDAsbig5NjQ4MzQpKV0sWyJDYXJib24gQ2FwdHVyZSAmIFN0b3JhZ2UiLCgpPT50LnQobnVsbCx2b2lkIDAsbigyNzUxMjEpKV0sWyJDYXJib25hdGVkIFNvZnQgRHJpbmtzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oMzMwNTczKSldLFsiQ2FycGV0cyAmIEN1cnRhaW5zIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oMzkxNzYpKV0sWyJDYXNpbm9zICYgR2FtaW5nIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNjU4MjU2KSldLFsiQ2FzaW5vcyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDYwNjIwNykpXSxbIkNhc2lub3MvR2FtaW5nIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oODU3MzQ1KSldLFsiQ2FzdWFsdHkgSW5zdXJhbmNlIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oOTEwNDY4KSldLFsiQ2F0YWxvZy9TcGVjaWFsdHkgRGlzdHJpYnV0aW9uIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oOTE1NzA1KSldLFsiQ2VsbHVsYXIgRmliZXIiLCgpPT50LnQobnVsbCx2b2lkIDAsbigxNDM1MTgpKV0sWyJDZW1lbnQgJiBDb25jcmV0ZSBNYW51ZmFjdHVyaW5nIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oOTA4NDU2KSldLFsiQ2hhcnRlciAmIFByaXZhdGUgQWlyIFNlcnZpY2VzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNTk1NDQxKSldLFsiQ2hhcnRlciBCdXMgU2VydmljZXMiLCgpPT50LnQobnVsbCx2b2lkIDAsbig4MTg0OTYpKV0sWyJDaGVtaWNhbHM6IEFncmljdWx0dXJhbCIsKCk9PnQudChudWxsLHZvaWQgMCxuKDI0MDE5MSkpXSxbIkNoZW1pY2FsczogTWFqb3IgRGl2ZXJzaWZpZWQiLCgpPT50LnQobnVsbCx2b2lkIDAsbigyMzM3MikpXSxbIkNoZW1pY2FsczogU3BlY2lhbHR5IiwoKT0+dC50KG51bGwsdm9pZCAwLG4oOTYzMDU1KSldLFsiQ2hpbGQgQ2FyZSAmIEZhbWlseSBTZXJ2aWNlcyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDQ0MTUyNikpXSxbIkNoaWxkcmVuICYgSW5mYW50cyBDbG90aGluZyBSZXRhaWxlcnMiLCgpPT50LnQobnVsbCx2b2lkIDAsbig3ODY4NTgpKV0sWyJDaGlsZHJlbiAmIEluZmFudHMgQ2xvdGhpbmciLCgpPT50LnQobnVsbCx2b2lkIDAsbig3Mzg0MzIpKV0sWyJDaG9jb2xhdGUgJiBDb25mZWN0aW9uZXJ5IiwoKT0+dC50KG51bGwsdm9pZCAwLG4oMTQ4OTA5KSldLFsiQ2lnYXJzICYgQ2lnYXJldHRlIE1hbnVmYWN0dXJpbmciLCgpPT50LnQobnVsbCx2b2lkIDAsbigyNDM2ODcpKV0sWyJDaXZpbCBFbmdpbmVlcnMgJiBBcmNoaXRlY3RzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNTc0ODk1KSldLFsiQ2xlYW5pbmcgU2VydmljZXMiLCgpPT50LnQobnVsbCx2b2lkIDAsbigxNjUxOTgpKV0sWyJDbGVhcmluZywgU2V0dGxlbWVudCAmIEN1c3RvZGlhbCBTZXJ2aWNlIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oMjA0NDM3KSldLFsiQ2xvc2VkIEVuZCBGdW5kcyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDY4OTg0KSldLFsiQ2xvdWQgQ29tcHV0aW5nIFNlcnZpY2VzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNjk3NTM0KSldLFsiQ29hbCBNaW5pbmcgU3VwcG9ydCIsKCk9PnQudChudWxsLHZvaWQgMCxuKDMxMDQpKV0sWyJDb2FsIFdob2xlc2FsZSIsKCk9PnQudChudWxsLHZvaWQgMCxuKDgzNTg5NCkpXSxbIkNvYWwiLCgpPT50LnQobnVsbCx2b2lkIDAsbig2ODM3NDApKV0sWyJDb2ZmZWUgJiBUZWEiLCgpPT50LnQobnVsbCx2b2lkIDAsbigzMjcwODQpKV0sWyJDb2ZmZWUsIFRlYSAmIENvY29hIEZhcm1pbmciLCgpPT50LnQobnVsbCx2b2lkIDAsbigzNTUwMikpXSxbIkNva2UgQ29hbCBNaW5pbmciLCgpPT50LnQobnVsbCx2b2lkIDAsbig2MjM4MDkpKV0sWyJDb2xsZWN0aXZlIEludmVzdG1lbnQgRnVuZCBPcGVyYXRvcnMiLCgpPT50LnQobnVsbCx2b2lkIDAsbig3MTg2NzMpKV0sWyJDb2xvcmluZyBBZ2VudCIsKCk9PnQudChudWxsLHZvaWQgMCxuKDQ5MjY3OSkpXSxbIkNvbW1lcmNpYWwgQWlyY3JhZnQgTWFudWZhY3R1cmluZyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDQxNTY5KSldLFsiQ29tbWVyY2lhbCBCYW5rcyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDM2NzU4MykpXSxbIkNvbW1lcmNpYWwgQnVpbGRpbmdzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oODg5MjM4KSldLFsiQ29tbWVyY2lhbCBEb2N1bWVudCBNYW5hZ2VtZW50IiwoKT0+dC50KG51bGwsdm9pZCAwLG4oODAyNTE5KSldLFsiQ29tbWVyY2lhbCBFcXVpcG1lbnQgUmVudGFsIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNjkyNTE2KSldLFsiQ29tbWVyY2lhbCBGaXNoaW5nIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNTc5ODM1KSldLFsiQ29tbWVyY2lhbCBGb29kIFNlcnZpY2VzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNTM1MDcpKV0sWyJDb21tZXJjaWFsIExlYXNpbmciLCgpPT50LnQobnVsbCx2b2lkIDAsbig2NDk1MTApKV0sWyJDb21tZXJjaWFsIExvYW5zIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNDU4OTc5KSldLFsiQ29tbWVyY2lhbCBOdXJzZXJpZXMiLCgpPT50LnQobnVsbCx2b2lkIDAsbig1MjUxNjMpKV0sWyJDb21tZXJjaWFsIFByaW50aW5nIFNlcnZpY2VzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNzY2NDAyKSldLFsiQ29tbWVyY2lhbCBQcmludGluZy9Gb3JtcyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDk1NzkzNSkpXSxbIkNvbW1lcmNpYWwgUkVJVHMiLCgpPT50LnQobnVsbCx2b2lkIDAsbig1NDcyMzIpKV0sWyJDb21tb2RpdHkgQ2hlbWljYWxzIFdob2xlc2FsZSIsKCk9PnQudChudWxsLHZvaWQgMCxuKDE1ODA4NSkpXSxbIkNvbW1vZGl0eSBDaGVtaWNhbHMiLCgpPT50LnQobnVsbCx2b2lkIDAsbigxNTI5MTMpKV0sWyJDb21tdW5pY2F0aW9uICYgU2F0ZWxsaXRlIEVxdWlwbWVudCIsKCk9PnQudChudWxsLHZvaWQgMCxuKDY4NzUyKSldLFsiQ29tbXVuaWNhdGlvbnMgJiBOZXR3b3JraW5nIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oODg1Njg4KSldLFsiQ29tbXV0ZXIgRmVycnkiLCgpPT50LnQobnVsbCx2b2lkIDAsbig1MDUyMDkpKV0sWyJDb21tdXRpbmcgU2VydmljZXMiLCgpPT50LnQobnVsbCx2b2lkIDAsbigzNTY2NjEpKV0sWyJDb21wdXRlciBDb21tdW5pY2F0aW9ucyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDYxNzI2MykpXSxbIkNvbXB1dGVyICYgRWxlY3Ryb25pY3MgUmV0YWlsZXJzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oMjI1MDI4KSldLFsiQ29tcHV0ZXIgSGFyZHdhcmUgJiBTb2Z0d2FyZSBSZXRhaWxlcnMiLCgpPT50LnQobnVsbCx2b2lkIDAsbig0MTI2NjUpKV0sWyJDb21wdXRlciBIYXJkd2FyZSBDb21wb25lbnQgQXNzZW1ibHkiLCgpPT50LnQobnVsbCx2b2lkIDAsbigyODIyMTcpKV0sWyJDb21wdXRlciBIYXJkd2FyZSIsKCk9PnQudChudWxsLHZvaWQgMCxuKDY2NTQyMikpXSxbIkNvbXB1dGVyIFBlcmlwaGVyYWxzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oMzk0OTQpKV0sWyJDb21wdXRlciBQcm9jZXNzaW5nIEhhcmR3YXJlIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNzI1ODMwKSldLFsiQ29tcHV0ZXIgUHJvZ3JhbW1pbmciLCgpPT50LnQobnVsbCx2b2lkIDAsbig1NzA3NCkpXSxbIkNvbnN1bWVyIFN1bmRyaWVzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oODQ3Mzk4KSldLFsiQ29tcHV0ZXIgVHJhaW5pbmciLCgpPT50LnQobnVsbCx2b2lkIDAsbig4OTY0NSkpXSxbIkNvbmZlcmVuY2luZyBUb29scyAmIFN5c3RlbXMiLCgpPT50LnQobnVsbCx2b2lkIDAsbigxMzA4MzMpKV0sWyJDb250YWluZXJzL1BhY2thZ2luZyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDQ4NTM0OSkpXSxbIkNvbnRyYWN0IERyaWxsaW5nIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oMjk2NTI1KSldLFsiQ29uc3RydWN0aW9uICYgRW5naW5lZXJpbmciLCgpPT50LnQobnVsbCx2b2lkIDAsbig4MzU5NDcpKV0sWyJDb25zdHJ1Y3Rpb24gTWFjaGluZXJ5IiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNjYyODE0KSldLFsiQ29uc3RydWN0aW9uIE1hdGVyaWFsIFByb2Nlc3NpbmciLCgpPT50LnQobnVsbCx2b2lkIDAsbigxNzg1OTQpKV0sWyJDb25zdHJ1Y3Rpb24gTWF0ZXJpYWwgV2hvbGVzYWxlIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oOTk2NykpXSxbIkNvbnN0cnVjdGlvbiBNYXRlcmlhbHMiLCgpPT50LnQobnVsbCx2b2lkIDAsbig1MDE0ODIpKV0sWyJDb25zdHJ1Y3Rpb24gU3VwcGxpZXMgJiBGaXh0dXJlcyBXaG9sZXNhbGUiLCgpPT50LnQobnVsbCx2b2lkIDAsbigxMjY4MzkpKV0sWyJDb25zdHJ1Y3Rpb24gU3VwcGxpZXMgJiBGaXh0dXJlcyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDgyNDI3MykpXSxbIkNvbnN0cnVjdGlvbiBTdXBwbGllcyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDI3NzQ1NCkpXSxbIkNvbnN1bWVyIENyZWRpdCBDYXJkcyBTZXJ2aWNlcyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDM5NzkwOCkpXSxbIkNvbnN1bWVyIERvY3VtZW50IE1hbmFnZW1lbnQiLCgpPT50LnQobnVsbCx2b2lkIDAsbig3MzE5ODMpKV0sWyJDb25zdW1lciBFbGVjdHJvbmljIFdob2xlc2FsZSIsKCk9PnQudChudWxsLHZvaWQgMCxuKDkyNDM5MykpXSxbIkNvbnN1bWVyIEVsZWN0cm9uaWNzIFJldGFpbGVycyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDU1NTA4OCkpXSxbIkNvbnN1bWVyIEVsZWN0cm9uaWNzL0FwcGxpYW5jZXMiLCgpPT50LnQobnVsbCx2b2lkIDAsbigyMjg0KSldLFsiQ29uc3VtZXIgR29vZHMgUmVudGFsIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNzkwNzE2KSldLFsiQ29uc3VtZXIgTGVhc2luZyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDM5NDY2NikpXSxbIkNvbnN1bWVyIExlbmRpbmciLCgpPT50LnQobnVsbCx2b2lkIDAsbigzMTkzOTMpKV0sWyJDb25zdW1lciBQdWJsaXNoaW5nIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oMTY5MjkxKSldLFsiQ29uc3VtZXIgUmVwYWlyIFNlcnZpY2VzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oMzIyNTI5KSldLFsiQ29udGFpbmVyICYgUGFja2FnaW5nIE1hdGVyaWFsIFdob2xlc2FsZSIsKCk9PnQudChudWxsLHZvaWQgMCxuKDM2OTQzNikpXSxbIkNvbnRlbnQgJiBTaXRlIE1hbmFnZW1lbnQgU2VydmljZXMiLCgpPT50LnQobnVsbCx2b2lkIDAsbig2OTc5MzQpKV0sWyJDb29raWUsIENyYWNrZXIgJiBQYXN0YSBNYW51ZmFjdHVyaW5nIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNzIzMjgyKSldLFsiQ29wcGVyIE9yZSAgTWluaW5nIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oMjIyNzU5KSldLFsiQ29weXJpZ2h0IE1hbmFnZW1lbnQiLCgpPT50LnQobnVsbCx2b2lkIDAsbigyMjQ0MDYpKV0sWyJDb3Jwb3JhdGUgQWNjb3VudGluZyBTZXJ2aWNlcyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDI3MjIzOSkpXSxbIkNvcnBvcmF0ZSBGaW5hbmNpYWwgU2VydmljZXMiLCgpPT50LnQobnVsbCx2b2lkIDAsbigzNTA3NDMpKV0sWyJDb3NtZXRpY3MgJiBQZXJmdW1lcyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDc0Mzc3OCkpXSxbIkNvdXJpZXIgU2VydmljZXMiLCgpPT50LnQobnVsbCx2b2lkIDAsbig4MjUxNzgpKV0sWyJDcmFmdCAmIE1pY3JvIEJyZXdlcnMiLCgpPT50LnQobnVsbCx2b2lkIDAsbig1MDk5ODIpKV0sWyJDcmVkaXQgVW5pb25zIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNDc0NzI4KSldLFsiQ3J1aXNlIExpbmVzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oMzU5NTMwKSldLFsiQ3V0bGVyeSAmIEZsYXR3YXJlIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oOTY1ODgzKSldLFsiRGFpcnkgUHJvZHVjdHMiLCgpPT50LnQobnVsbCx2b2lkIDAsbig3ODkwMTUpKV0sWyJEYXRhIFByb2Nlc3NpbmcgU2VydmljZXMiLCgpPT50LnQobnVsbCx2b2lkIDAsbig4ODQ3ODApKV0sWyJEZWVwIFNlYSBGcmVpZ2h0IiwoKT0+dC50KG51bGwsdm9pZCAwLG4oODI0NDAzKSldLFsiRGVwYXJ0bWVudCBTdG9yZXMiLCgpPT50LnQobnVsbCx2b2lkIDAsbig0MTUxMDUpKV0sWyJEZXBhcnRtZW50L1NwZWNpYWx0eSBSZXRhaWwgU3RvcmVzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNDM2OTcwKSldLFsiRGVzaWduIFNlcnZpY2VzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNzAyMjA2KSldLFsiRGlhZ25vc3RpYyAmIFRlc3RpbmcgU3Vic3RhbmNlcyBNYW51ZmFjdHVyZXJzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oMTg4MTIxKSldLFsiRGlhZ25vc3RpYyAmIFRlc3RpbmcgU3Vic3RhbmNlcyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDU3ODU3MSkpXSxbIkRpYW1vbmQgTWluaW5nIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oOTUyMDg5KSldLFsiRGlnaXRhbCBNZWRpYSBBZ2VuY2llcyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDEzNzM3NykpXSxbIkRpZ2l0YWwgUHVibGlzaGluZyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDQzNjQ4MCkpXSxbIkRpcmVjdCBNYXJrZXRpbmciLCgpPT50LnQobnVsbCx2b2lkIDAsbigyNTE0OTYpKV0sWyJEaXJlY3RvcnkgUHVibGlzaGluZyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDg2NTAzMSkpXSxbIkRpc2NvdW50IFN0b3JlcyB3aXRoIGdyb2NlcmllcyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDYzNzE4NCkpXSxbIkRpc2NvdW50IFN0b3JlcyB3aXRob3V0IGdyb2NlcmllcyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDc5NTEyNCkpXSxbIkRpc2NvdW50IFN0b3JlcyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDUxODExNykpXSxbIkRpc3BsYXkgU2NyZWVucyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDI5OTgyNCkpXSxbIkRpc3RpbGxlcmllcyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDEzMDIwKSldLFsiRGlzdGlsbGVycyAmIFdpbmVyaWVzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNTU4MDk1KSldLFsiRGl2ZXJzaWZpZWQgQ2hlbWljYWxzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oODgyOTE5KSldLFsiRGl2ZXJzaWZpZWQgSW52ZXN0bWVudCBTZXJ2aWNlcyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDY2OTE4NSkpXSxbIkRpdmVyc2lmaWVkIFJFSVRzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oMzYwMDYpKV0sWyJEaXZlcnNpZmllZCBUcmFkaW5nICYgRGlzdHJpYnV0aW5nIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oOTAzNzMxKSldLFsiRG9jdG9yJ3MgT2ZmaWNlIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oODMyNTYyKSldLFsiRG9sbHMgJiBTdHVmZmVkIFRveXMiLCgpPT50LnQobnVsbCx2b2lkIDAsbig1MjQ1NykpXSxbIkRvb3JzICYgV2luZG93IEZyYW1lcyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDE4MjE0MykpXSxbIkRydWcgRGVsaXZlcnkgU3lzdGVtcyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDU2MTA2MCkpXSxbIkRydWcgUmV0YWlsZXJzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNTU5MjA2KSldLFsiRHJ1Z3N0b3JlIENoYWlucyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDg5Njc3MikpXSxbIkUtY29tbWVyY2UgJiBBdWN0aW9uIFNlcnZpY2VzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNDcwMTA1KSldLFsiRWR1Y2F0aW9uICYgVHJhaW5pbmcgSW5mb3JtYXRpb24gUHJvdmlkZXJzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oMjQzMDgyKSldLFsiRWR1Y2F0aW9uYWwgU2VydmljZXMiLCgpPT50LnQobnVsbCx2b2lkIDAsbigxNDQyNjApKV0sWyJFbGVjdHJpYyBDb25zdHJ1Y3Rpb24iLCgpPT50LnQobnVsbCx2b2lkIDAsbigyNzQ3ODIpKV0sWyJFbGVjdHJpYyBFcXVpcG1lbnQgV2hvbGVzYWxlIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNzg3MTcwKSldLFsiRWxlY3RyaWMgVXRpbGl0aWVzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oODExODcwKSldLFsiRWxlY3RyaWMgVXRpbGl0aWVzOiBDZW50cmFsIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oMzQ2NzExKSldLFsiRWxlY3RyaWNhbCAoQWx0ZXJuYXRpdmUpIFZlaGljbGVzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oOTk5MDE0KSldLFsiRWxlY3RyaWNhbCBDb21wb25lbnRzICYgRXF1aXBtZW50IiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNDYxMjI3KSldLFsiRWxlY3RyaWNhbCBNZWFzdXJpbmcgJiBUZXN0aW5nIEluc3RydW1lbnRzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNDE2NTM3KSldLFsiRWxlY3RyaWNhbCBQcm9kdWN0cyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDYxNDQ0MCkpXSxbIkVsZWN0cm9uIFR1YmVzICYgSW5zdWxhdG9ycyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDMyMTQ2NSkpXSxbIkVsZWN0cm9uaWMgQ29tcG9uZW50IiwoKT0+dC50KG51bGwsdm9pZCAwLG4oMzY4NTYwKSldLFsiRWxlY3Ryb25pYyBDb21wb25lbnRzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNDQ5NDE5KSldLFsiRWxlY3Ryb25pYyBFcXVpcG1lbnQgJiBQYXJ0cyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDE1NDA0NykpXSxbIkVsZWN0cm9uaWMgRXF1aXBtZW50cyAmIFBhcnRzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNzczMTQ0KSldLFsiRWxlY3Ryb25pYyBFcXVpcG1lbnQvSW5zdHJ1bWVudHMiLCgpPT50LnQobnVsbCx2b2lkIDAsbigzOTYzMTYpKV0sWyJFbGVjdHJvbmljIFByb2R1Y3Rpb24gRXF1aXBtZW50IiwoKT0+dC50KG51bGwsdm9pZCAwLG4oODk0NzM3KSldLFsiRWxlY3Ryb25pYyBSZXBhaXIgU2VydmljZXMiLCgpPT50LnQobnVsbCx2b2lkIDAsbig2NTQzMikpXSxbIkVsZWN0cm9uaWNzIERpc3RyaWJ1dG9ycyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDEwMjI0NykpXSxbIkVsZWN0cm9uaWNzL0FwcGxpYW5jZSBTdG9yZXMiLCgpPT50LnQobnVsbCx2b2lkIDAsbig5NzcwMDkpKV0sWyJFbGVjdHJvbmljcy9BcHBsaWFuY2VzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oMjYwMDM3KSldLFsiRWxldmF0b3IgJiBDb252ZXlpbmcgRXF1aXBtZW50IiwoKT0+dC50KG51bGwsdm9pZCAwLG4oOTIyNDU5KSldLFsiRW1wbG95bWVudCBTZXJ2aWNlcyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDQ4NTc5MCkpXSxbIkVuZXJneSBEcmlua3MiLCgpPT50LnQobnVsbCx2b2lkIDAsbigzNjc3NjApKV0sWyJFbmdpbmUgJiBQb3dlcnRyYWluIFN5c3RlbXMiLCgpPT50LnQobnVsbCx2b2lkIDAsbigyOTczMDQpKV0sWyJFbmdpbmVlcmluZyAmIENvbnN0cnVjdGlvbiIsKCk9PnQudChudWxsLHZvaWQgMCxuKDIyMzI2MikpXSxbIkVudGVycHJpc2UgU29mdHdhcmUiLCgpPT50LnQobnVsbCx2b2lkIDAsbig2NzQ0ODEpKV0sWyJFbnRlcnRhaW5tZW50IFByb2R1Y3Rpb24gRXF1aXBtZW50ICYgU2VydmljZXMiLCgpPT50LnQobnVsbCx2b2lkIDAsbigyMTg3NjcpKV0sWyJFbnRlcnRhaW5tZW50IFByb2R1Y3Rpb24iLCgpPT50LnQobnVsbCx2b2lkIDAsbig0NTgwMTEpKV0sWyJFbnZpcm9ubWVudGFsIEJpb3RlY2hub2xvZ3kiLCgpPT50LnQobnVsbCx2b2lkIDAsbigyMDUyMDkpKV0sWyJFbnZpcm9ubWVudGFsIENvbnN1bHRhbmN5IFNlcnZpY2VzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNTgwNjcyKSldLFsiRW52aXJvbm1lbnRhbCBTZXJ2aWNlcyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDMwNzAxNykpXSxbIkVudmlyb25tZW50YWwgU2VydmljZXMgJiBFcXVpcG1lbnQiLCgpPT50LnQobnVsbCx2b2lkIDAsbig2OTAwOTApKV0sWyJFcG94eSIsKCk9PnQudChudWxsLHZvaWQgMCxuKDg3MzQwMykpXSxbIkV0aGFub2wgRnVlbHMiLCgpPT50LnQobnVsbCx2b2lkIDAsbig0NTA2MjMpKV0sWyJFeGNoYW5nZSBUcmFkZWQgRnVuZCIsKCk9PnQudChudWxsLHZvaWQgMCxuKDU0ODc1MykpXSxbIkV4Y2hhbmdlIFRyYWRlZCBGdW5kcyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDIyMjUzMikpXSxbIkV4ZWN1dGl2ZSBTZWFyY2ggU2VydmljZXMiLCgpPT50LnQobnVsbCx2b2lkIDAsbigyOTkzMTYpKV0sWyJFeGhpYml0aW9uICYgQ29uZmVyZW5jZSBTZXJ2aWNlcyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDkxOTE3NykpXSxbIkV4cGxvc2l2ZXMiLCgpPT50LnQobnVsbCx2b2lkIDAsbigzOTEyNTEpKV0sWyJGYWJyaWMgRHllaW5nICYgRmluaXNoaW5nIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNTgwNjU4KSldLFsiRmFjdG9yaW5nIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNzUyNDMwKSldLFsiRmFzaGlvbiBFeWV3ZWFyIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNzQ1NTE2KSldLFsiRmVydGlsaXplciIsKCk9PnQudChudWxsLHZvaWQgMCxuKDYzNjA2NCkpXSxbIkZpYmVyIE9wdGljIENhYmxlIE1hbnVmYWN0dXJpbmciLCgpPT50LnQobnVsbCx2b2lkIDAsbigyMTQ4NSkpXSxbIkZpbmFuY2U6IENvbnN1bWVyIFNlcnZpY2VzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNjY1OTA1KSldLFsiRmluYW5jZS9SZW50YWwvTGVhc2luZyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDk5MjI5NikpXSxbIkZpbmFuY2lhbCBDb25nbG9tZXJhdGVzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNTAwMjQ3KSldLFsiRmluYW5jaWFsICYgQ29tbW9kaXR5IE1hcmtldCBPcGVyYXRvcnMiLCgpPT50LnQobnVsbCx2b2lkIDAsbig5MjA2NDIpKV0sWyJGaW5hbmNpYWwgSW5mb3JtYXRpb24gUHJvdmlkZXJzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNjE0NDMzKSldLFsiRmluYW5jaWFsIFB1Ymxpc2hpbmcvU2VydmljZXMiLCgpPT50LnQobnVsbCx2b2lkIDAsbig5MzcyNjQpKV0sWyJGaW5hbmNpYWwgVGVjaG5vbG9neSAmIEluZnJhc3RydWN0dXJlIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNDQzNDk2KSldLFsiRmlzaGluZyAmIEZhcm1pbmcgV2hvbGVzYWxlIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oMjE2MTg5KSldLFsiRmlzaGluZyAmIEZhcm1pbmciLCgpPT50LnQobnVsbCx2b2lkIDAsbigzMDE2OTUpKV0sWyJGbG9vciBDb3ZlcmluZyBSZXRhaWxlcnMiLCgpPT50LnQobnVsbCx2b2lkIDAsbig0ODU0MjkpKV0sWyJGbG9vcmluZyAmIEludGVyaW9yIFRpbGUgTWFudWZhY3R1cmVycyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDgxODYyOCkpXSxbIkZsb3Jpc3RzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oMzg5NDg3KSldLFsiRmxvdXIgTWlsbGluZyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDM5ODIzNykpXSxbIkZsdWlkIFBvd2VyIEN5bGluZGVyICYgQWN0dWF0b3JzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNDc1MjI1KSldLFsiRm9vZCBEaXN0cmlidXRvcnMiLCgpPT50LnQobnVsbCx2b2lkIDAsbig2MzI4NDcpKV0sWyJGb29kIEluZ3JlZGllbnRzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNDAzOTQzKSldLFsiRm9vZCBNYXJrZXRzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNTE0Mzg3KSldLFsiRm9vZCBQcm9jZXNzaW5nIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oMTQ2MDQzKSldLFsiRm9vZCBSZXRhaWwiLCgpPT50LnQobnVsbCx2b2lkIDAsbigyMzE0MzQpKV0sWyJGb29kIFJldGFpbCAmIERpc3RyaWJ1dGlvbiIsKCk9PnQudChudWxsLHZvaWQgMCxuKDg2MzY2MSkpXSxbIkZvb2QgV2hvbGVzYWxlIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oOTc2ODIyKSldLFsiRm9vZDogTWFqb3IgRGl2ZXJzaWZpZWQiLCgpPT50LnQobnVsbCx2b2lkIDAsbigyNTc3MDkpKV0sWyJGb29kOiBNZWF0L0Zpc2gvRGFpcnkiLCgpPT50LnQobnVsbCx2b2lkIDAsbig0MjQ2ODUpKV0sWyJGb29kOiBTcGVjaWFsdHkvQ2FuZHkiLCgpPT50LnQobnVsbCx2b2lkIDAsbig5MzE4ODMpKV0sWyJGb290d2VhciBSZXRhaWxlcnMiLCgpPT50LnQobnVsbCx2b2lkIDAsbig5MTUwMzcpKV0sWyJGb290d2VhciBXaG9sZXNhbGUiLCgpPT50LnQobnVsbCx2b2lkIDAsbig5NzMyOTUpKV0sWyJGb290d2VhciIsKCk9PnQudChudWxsLHZvaWQgMCxuKDY5ODA1NykpXSxbIkZvcmVzdCAmIFdvb2QgUHJvZHVjdHMiLCgpPT50LnQobnVsbCx2b2lkIDAsbig4MDgwMDgpKV0sWyJGb3Jlc3QgTnVyc2VyaWVzICYgR2F0aGVyaW5nIG9mIEZvcmVzdCBQcm9kdWN0cyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDQ2NDIzOSkpXSxbIkZvcmVzdCBQcm9kdWN0cyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDM0NDY1MykpXSxbIkZvcmVzdCBTdXBwb3J0ICYgU2VydmljZXMiLCgpPT50LnQobnVsbCx2b2lkIDAsbig4MzE4NzUpKV0sWyJGb3NzaWwgRnVlbCBFbGVjdHJpYyBVdGlsaXRpZXMiLCgpPT50LnQobnVsbCx2b2lkIDAsbigyNDk4MikpXSxbIkZvc3NpbCBGdWVsIElQUHMiLCgpPT50LnQobnVsbCx2b2lkIDAsbigxOTM3MTEpKV0sWyJGcmVpZ2h0IExvZ2lzdGljcyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDk2OTIzNykpXSxbIkZyZWlnaHQgVHJ1Y2tpbmciLCgpPT50LnQobnVsbCx2b2lkIDAsbigzNDI3MDYpKV0sWyJGcm96ZW4gRm9vZCBNYW51ZmFjdHVyaW5nIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNzgyOTY0KSldLFsiRnJ1aXQgJiBWZWdldGFibGUgUHJvY2Vzc2luZyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDkxNjYyKSldLFsiRnJ1aXQgRHJpbmtzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNzc0MjE2KSldLFsiRnVuZXJhbCBTZXJ2aWNlcyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDg4MTkxOSkpXSxbIkZ1cm5pdHVyZSBSZXRhaWxlcnMiLCgpPT50LnQobnVsbCx2b2lkIDAsbig4Mzg1KSldLFsiRnVybml0dXJlIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oMjY2NjcxKSldLFsiR2FtYmxpbmcgJiBHYW1pbmcgTWFjaGluZSBNYW51ZmFjdHVyZXJzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oMjIwMTU2KSldLFsiR2FtZXMsIFRveXMgJiBDaGlsZHJlbiBWZWhpY2xlcyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDU4NDg0MSkpXSxbIkdhbWluZyBNYWNoaW5lIE9wZXJhdG9ycyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDQ4NTkzNSkpXSxbIkdhcyBEaXN0cmlidXRvcnMiLCgpPT50LnQobnVsbCx2b2lkIDAsbigyMzc5OTYpKV0sWyJHYXMgRHJpbGxpbmcgLSBPbnNob3JlIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNTI1MTExKSldLFsiR2Fzb2xpbmUgc3RhdGlvbnMiLCgpPT50LnQobnVsbCx2b2lkIDAsbig2NjczMTYpKV0sWyJHZW5lcmFsIEVkdWNhdGlvbiBTZXJ2aWNlcyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDg1NTE3NykpXSxbIkdlbmVyYWwgR292ZXJubWVudCIsKCk9PnQudChudWxsLHZvaWQgMCxuKDI0MTk5NSkpXSxbIkdlbmVyaWMgUGhhcm1hY2V1dGljYWxzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oMzQ2MTQ2KSldLFsiR2VvcGh5c2ljYWwgU3VydmV5aW5nICYgTWFwcGluZyBTZXJ2aWNlcyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDgyNDEyMykpXSxbIkdpZnQsIE5vdmVsdHkgJiBTb3V2ZW5pciBTdG9yZXMiLCgpPT50LnQobnVsbCx2b2lkIDAsbigxNTMyNDEpKV0sWyJHbGFzcyBDb250YWluZXJzICYgUGFja2FnaW5nIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oMjM2MjIxKSldLFsiR2xhc3NlcywgU3BlY3RhY2xlcyAmIENvbnRhY3QgbGVuc2VzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNjA5NDYxKSldLFsiR29sZCBNaW5pbmciLCgpPT50LnQobnVsbCx2b2lkIDAsbig2ODM1KSldLFsiR29sZCIsKCk9PnQudChudWxsLHZvaWQgMCxuKDU2NTI5NCkpXSxbIkdvbGYgQ291cnNlcyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDY5ODMyNSkpXSxbIkdyYWluIChDcm9wKSBQcm9kdWN0aW9uIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNzUwMjc3KSldLFsiR3JvdW5kIEZyZWlnaHQgJiBMb2dpc3RpY3MiLCgpPT50LnQobnVsbCx2b2lkIDAsbigzMjkyOTEpKV0sWyJHdWlkZWQgVG91ciBPcGVyYXRvcnMiLCgpPT50LnQobnVsbCx2b2lkIDAsbig1ODQzMykpXSxbIkd5bXMsIEZpdG5lc3MgYW5kIFNwYSBDZW50ZXJzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNzE3NzgxKSldLFsiSGFpciBBY2Nlc3NvcmllcyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDEzNjk0NikpXSxbIkhhbGFsIEFuaW1hbCBTbGF1Z2h0ZXJpbmcgJiBQcm9jZXNzaW5nIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oODI4NjQxKSldLFsiSGFuZGJhZ3MgJiBMdWdnYWdlIFJldGFpbGVycyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDE0NDAxKSldLFsiSGFuZGJhZ3MgJiBMdWdnYWdlIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNDY2NDc5KSldLFsiSGVhbHRoIEZvb2QgU3RvcmVzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oMTAwOTU2KSldLFsiSGVhbHRoIEluc3VyYW5jZSIsKCk9PnQudChudWxsLHZvaWQgMCxuKDM1MDA5MCkpXSxbIkhlYWx0aGNhcmUgRmFjaWxpdGllcyAmIFNlcnZpY2VzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNjkzMTg1KSldLFsiSGVhbHRoY2FyZSBSRUlUcyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDE2ODcyOCkpXSxbIkhlYXRpbmcsIFZlbnRpbGF0aW9uICYgQWlyIENvbmRpdGlvbmluZyBTeXN0ZW1zIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNTM5OTIyKSldLFsiSGVhdnkgQnVzZXMgJiBDb2FjaGVzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oMjYyOTgzKSldLFsiSGVhdnkgRWxlY3RyaWNhbCBFcXVpcG1lbnQiLCgpPT50LnQobnVsbCx2b2lkIDAsbig0NTgxMjcpKV0sWyJIZWF2eSBNYWNoaW5lcnkgJiBWZWhpY2xlcyBXaG9sZXNhbGUiLCgpPT50LnQobnVsbCx2b2lkIDAsbig1MTgwNDQpKV0sWyJIZWF2eSBNYWNoaW5lcnkgJiBWZWhpY2xlcyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDM4MTYwNCkpXSxbIkhlYXZ5IE1vdG9ycyAmIEdlbmVyYXRvcnMiLCgpPT50LnQobnVsbCx2b2lkIDAsbigyNTA1MikpXSxbIkhlYXZ5IFRydWNrcyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDk5ODA2NykpXSxbIkhlZGdlIEZ1bmRzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oODk4MzM2KSldLFsiSGlnaHdheSAmIEJyaWRnZSBDb25zdHJ1Y3Rpb24iLCgpPT50LnQobnVsbCx2b2lkIDAsbig0NzM3NjIpKV0sWyJIaWdod2F5IE9wZXJhdG9ycyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDc3Mjg4NikpXSxbIkhpZ2h3YXlzICYgUmFpbCBUcmFja3MiLCgpPT50LnQobnVsbCx2b2lkIDAsbig1MTM3NzYpKV0sWyJIb2xkaW5nIENvbXBhbmllcyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDczMDQ5NikpXSxbIkhvbWUgQXVkaW8iLCgpPT50LnQobnVsbCx2b2lkIDAsbig2NzQxMDUpKV0sWyJIb21lIERlY29yIFJldGFpbGVycyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDI2NTQyKSldLFsiSG9tZSBGdXJuaXNoaW5ncyBSZXRhaWxlcnMiLCgpPT50LnQobnVsbCx2b2lkIDAsbigyOTEyMDMpKV0sWyJIb21lIEZ1cm5pc2hpbmdzIFdob2xlc2FsZSIsKCk9PnQudChudWxsLHZvaWQgMCxuKDQ2MTQ1MikpXSxbIkhvbWUgRnVybmlzaGluZ3MiLCgpPT50LnQobnVsbCx2b2lkIDAsbig3OTc4NikpXSxbIkhvbWUgSGVhbHRoY2FyZSBTZXJ2aWNlcyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDI5Njc4MSkpXSxbIkhvbWUgSW1wcm92ZW1lbnQgQ2hhaW5zIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oMTE2Mjg3KSldLFsiSG9tZSBJbXByb3ZlbWVudCBQcm9kdWN0cyAmIFNlcnZpY2VzIFJldGFpbGVycyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDY2MTE0NykpXSxbIkhvbWVidWlsZGluZyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDg1MjcyNCkpXSxbIkhvcnNlICYgRG9nIFJhY2UgVHJhY2tzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNTQ1OTI1KSldLFsiSG9zaWVyeSAmIFNvY2siLCgpPT50LnQobnVsbCx2b2lkIDAsbigxMjQ0MDIpKV0sWyJIb3NwaXRhbC9OdXJzaW5nIE1hbmFnZW1lbnQiLCgpPT50LnQobnVsbCx2b2lkIDAsbigzODA5NDQpKV0sWyJIb3NwaXRhbGl0eSBSRUlUcyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDU0OTEzNykpXSxbIkhvc3BpdGFscywgQ2xpbmljcyAmIFByaW1hcnkgQ2FyZSBTZXJ2aWNlcyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDc3MjU0OCkpXSxbIkhvdGVscyAmIE1vdGVscyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDg4MzYyMCkpXSxbIkhvdGVscywgTW90ZWxzICYgQ3J1aXNlIExpbmVzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oMzk5NzkxKSldLFsiSG90ZWxzL1Jlc29ydHMvQ3J1aXNlIGxpbmVzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oMTY0Mjc3KSldLFsiSG91c2Vob2xkIEFwcGxpYW5jZXMiLCgpPT50LnQobnVsbCx2b2lkIDAsbig3MTg2MDcpKV0sWyJIb3VzZWhvbGQgRWxlY3Ryb25pY3MiLCgpPT50LnQobnVsbCx2b2lkIDAsbigyNzU0OTgpKV0sWyJIb3VzZWhvbGQgUHJvZHVjdHMiLCgpPT50LnQobnVsbCx2b2lkIDAsbig2OTkyODkpKV0sWyJIb3VzZWhvbGQvUGVyc29uYWwgQ2FyZSIsKCk9PnQudChudWxsLHZvaWQgMCxuKDI5MzcwNykpXSxbIkh1bWFuIFJlc291cmNlcyBDb25zdWx0aW5nIFNlcnZpY2VzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNTk1OTk2KSldLFsiSHlkcm9nZW4gRnVlbCIsKCk9PnQudChudWxsLHZvaWQgMCxuKDM0NzI0OSkpXSxbIkh5ZHJvcG93ZXIgRXF1aXBtZW50IiwoKT0+dC50KG51bGwsdm9pZCAwLG4oODg3ODM3KSldLFsiSVQgU2VydmljZXMgJiBDb25zdWx0aW5nIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNTc0NTQzKSldLFsiSW5kZXBlbmRlbnQgUG93ZXIgUHJvZHVjZXJzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oMTcyMjk1KSldLFsiSW5kdXN0cmlhbCAgUmVhbCBFc3RhdGUgRGV2ZWxvcG1lbnQiLCgpPT50LnQobnVsbCx2b2lkIDAsbigxOTU4NzgpKV0sWyJJbmR1c3RyaWFsIEJpb3RlY2hub2xvZ3kgQ2hlbWljYWxzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNjUwMTAzKSldLFsiSW5kdXN0cmlhbCBDbG90aGluZyAmIFVuaWZvcm1zIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oODE3OTUxKSldLFsiSW5kdXN0cmlhbCBDb25nbG9tZXJhdGVzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oOTQ4MzEwKSldLFsiSW5kdXN0cmlhbCBFbGVjdHJpY2FsIFN3aXRjaGdlYXIiLCgpPT50LnQobnVsbCx2b2lkIDAsbig2NjI2NjgpKV0sWyJJbmR1c3RyaWFsIEdhcyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDIyNjY3MCkpXSxbIkluZHVzdHJpYWwgTWFjaGluZXJ5ICYgRXF1aXBtZW50IFdob2xlc2FsZSIsKCk9PnQudChudWxsLHZvaWQgMCxuKDc2Njc3NykpXSxbIkluZHVzdHJpYWwgTWFjaGluZXJ5ICYgRXF1aXBtZW50IiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNjU3MzcxKSldLFsiSW5kdXN0cmlhbCBNYWNoaW5lcnkiLCgpPT50LnQobnVsbCx2b2lkIDAsbig0OTQ1ODgpKV0sWyJJbmR1c3RyaWFsIE1vdWxkcyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDI3NjI0NykpXSxbIkluZHVzdHJpYWwgUGFydHMgJiBDb21wb25lbnRzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNjQxNjkpKV0sWyJJbmR1c3RyaWFsIFBsYW50IiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNTE3MjY0KSldLFsiSW5kdXN0cmlhbCBQcm9jZXNzIEZ1cm5hY2UgJiBPdmVucyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDMyMjA4MikpXSxbIkluZHVzdHJpYWwgUkVJVHMiLCgpPT50LnQobnVsbCx2b2lkIDAsbigxMDgzNjEpKV0sWyJJbmR1c3RyaWFsIFJ1YmJlciBQcm9kdWN0cyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDczNTcyMykpXSxbIkluZHVzdHJpYWwgU3BlY2lhbHRpZXMiLCgpPT50LnQobnVsbCx2b2lkIDAsbigyMTQzOTYpKV0sWyJJbmR1c3RyaWFsIFZhbHZlIE1hbnVmYWN0dXJpbmciLCgpPT50LnQobnVsbCx2b2lkIDAsbigyNDkyNDkpKV0sWyJJbmZvcm1hdGlvbiBUZWNobm9sb2d5IFNlcnZpY2VzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oODk5MDgwKSldLFsiSW5sYW5kIFdhdGVyIEZyZWlnaHQiLCgpPT50LnQobnVsbCx2b2lkIDAsbig0MjA4NCkpXSxbIklucHV0IERldmljZXMiLCgpPT50LnQobnVsbCx2b2lkIDAsbig0MDM0NzQpKV0sWyJJbnN1cmFuY2UgLSBBdXRvbW9iaWxlIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNDY3NTUyKSldLFsiSW5zdXJhbmNlIEJyb2tlcnMiLCgpPT50LnQobnVsbCx2b2lkIDAsbig4NzExNTYpKV0sWyJJbnN1cmFuY2UgQnJva2Vycy9TZXJ2aWNlcyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDY2NDY3MCkpXSxbIkludGVncmF0ZWQgIE1pbmluZyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDcxNTEwNykpXSxbIkludGVncmF0ZWQgQ2lyY3VpdHMiLCgpPT50LnQobnVsbCx2b2lkIDAsbig4ODZlMykpXSxbIkludGVncmF0ZWQgTG9naXN0aWNzIE9wZXJhdG9ycyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDQxNDg3MykpXSxbIkludGVncmF0ZWQgT2lsIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oMjYyMDQ1KSldLFsiSW50ZWdyYXRlZCBPaWwgJiBHYXMiLCgpPT50LnQobnVsbCx2b2lkIDAsbig5OTkxMzEpKV0sWyJJbnRlZ3JhdGVkIFRlbGVjb21tdW5pY2F0aW9ucyBTZXJ2aWNlcyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDc0NTU5MCkpXSxbIkludGVyLWRlYWxlciBCcm9rZXIiLCgpPT50LnQobnVsbCx2b2lkIDAsbig1OTgwODMpKV0sWyJJbnRlcmlvciBEZXNpZ24gU2VydmljZXMiLCgpPT50LnQobnVsbCx2b2lkIDAsbigyNjc3MjIpKV0sWyJJbnRlcm5hdGlvbmFsIFRyYWRlIEZpbmFuY2luZyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDgyNzQ1NikpXSxbIkludGVybmV0ICYgTWFpbCBPcmRlciBEZXBhcnRtZW50IFN0b3JlcyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDgyMDQ2NCkpXSxbIkludGVybmV0ICYgTWFpbCBPcmRlciBEaXNjb3VudCBTdG9yZXMiLCgpPT50LnQobnVsbCx2b2lkIDAsbig3NzEyOTIpKV0sWyJJbnRlcm5ldCBHYW1pbmciLCgpPT50LnQobnVsbCx2b2lkIDAsbigzMDY4KSldLFsiSW50ZXJuZXQgUmV0YWlsIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oMjc1MDEyKSldLFsiSW50ZXJuZXQgU2VjdXJpdHkgJiBUcmFuc2FjdGlvbnMgU2VydmljZXMiLCgpPT50LnQobnVsbCx2b2lkIDAsbig3OTc5OTcpKV0sWyJJbnRlcm5ldCBTZXJ2aWNlIFByb3ZpZGVycyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDkwNTU5MykpXSxbIkludGVybmV0IFNlcnZpY2VzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNjc0NzI5KSldLFsiSW50ZXJuZXQgU29mdHdhcmUvU2VydmljZXMiLCgpPT50LnQobnVsbCx2b2lkIDAsbig0NjM1MjMpKV0sWyJJbnZlc3RtZW50IEJhbmtzL0Jyb2tlcnMiLCgpPT50LnQobnVsbCx2b2lkIDAsbig5NzM3MjQpKV0sWyJJbnZlc3RtZW50IEJhbmtlcnMvQnJva2Vycy9TZXJ2aWNlIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oOTg2OTE0KSldLFsiSW52ZXN0bWVudCBCYW5raW5nICYgQnJva2VyYWdlIFNlcnZpY2VzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oOTEyNjU4KSldLFsiSW52ZXN0bWVudCBCYW5raW5nIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNDc1MTc0KSldLFsiSW52ZXN0bWVudCBNYW5hZ2VtZW50ICYgRnVuZCBPcGVyYXRvcnMiLCgpPT50LnQobnVsbCx2b2lkIDAsbig1OTE5NjIpKV0sWyJJbnZlc3RtZW50IE1hbmFnZW1lbnQiLCgpPT50LnQobnVsbCx2b2lkIDAsbig0MDkyNzIpKV0sWyJJbnZlc3RtZW50IE1hbmFnZXJzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oMzc5MDY1KSldLFsiSW52ZXN0bWVudCBTdXBwb3J0IFRvb2xzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNzU2MTM2KSldLFsiSW52ZXN0bWVudCBUcnVzdHMiLCgpPT50LnQobnVsbCx2b2lkIDAsbig3ODQzMzIpKV0sWyJJbnZlc3RtZW50IFRydXN0cy9NdXR1YWwgRnVuZHMiLCgpPT50LnQobnVsbCx2b2lkIDAsbigyOTU5NzIpKV0sWyJJcm9uIE9yZSBNaW5pbmciLCgpPT50LnQobnVsbCx2b2lkIDAsbig3MDk3OTQpKV0sWyJJcm9uLCBTdGVlbCBNaWxscyAmIEZvdW5kcmllcyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDI2MzQyMSkpXSxbIkplYW5zIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oMTYxODQwKSldLFsiSmV3ZWxyeSAmIFdhdGNoIFJldGFpbGVycyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDQ1NDk4MykpXSxbIkpld2VscnkiLCgpPT50LnQobnVsbCx2b2lkIDAsbig2NjAyOTQpKV0sWyJKdXZlbmlsZSBGdXJuaXR1cmUiLCgpPT50LnQobnVsbCx2b2lkIDAsbig2Njk2OTEpKV0sWyJLaXRjaGVuIEFwcGxpYW5jZXMiLCgpPT50LnQobnVsbCx2b2lkIDAsbig0NTcyNDIpKV0sWyJLaXRjaGVuIENhYmluZXRzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNDIyNjE5KSldLFsiS25pdHdlYXIiLCgpPT50LnQobnVsbCx2b2lkIDAsbig1ODE2NzkpKV0sWyJMTkcgVHJhbnNwb3J0YXRpb24gJiBTdG9yYWdlIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oODYzOTE2KSldLFsiTGFuZCBEaXZpc2lvbiAmIFN1YmRpdmlzaW9uIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNDU2NTM3KSldLFsiTGFwdG9wICYgRGVza3RvcCBDb21wdXRlcnMiLCgpPT50LnQobnVsbCx2b2lkIDAsbig1NTIyNzMpKV0sWyJMYXNlciBFcXVpcG1lbnQiLCgpPT50LnQobnVsbCx2b2lkIDAsbig2MDk2NjYpKV0sWyJMYXVuZHJ5IFN1cHBsaWVzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNDcxOTgxKSldLFsiTGVhZCBPcmUgTWluaW5nIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNDU4ODg4KSldLFsiTGVhdGhlciBHb29kcyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDkwODA0MykpXSxbIkxlZ2FsIFNlcnZpY2VzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oODY2MTc2KSldLFsiTGVpc3VyZSAmIFJlY3JlYXRpb24iLCgpPT50LnQobnVsbCx2b2lkIDAsbig3NTIyNikpXSxbIkxlaXN1cmUgUHJvZHVjdHMgV2hvbGVzYWxlIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNjE0MzMwKSldLFsiTGlmZSAmIEhlYWx0aCBJbnN1cmFuY2UiLCgpPT50LnQobnVsbCx2b2lkIDAsbig0ODc2NjApKV0sWyJMaWZlICYgSGVhbHRoIFJlaW5zdXJhbmNlIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNDkzMjY4KSldLFsiTGlmZS9IZWFsdGggSW5zdXJhbmNlIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNjQzMzY1KSldLFsiTGlmZSBJbnN1cmFuY2UiLCgpPT50LnQobnVsbCx2b2lkIDAsbig5OTQxOTIpKV0sWyJMaWdodCBUcnVja3MiLCgpPT50LnQobnVsbCx2b2lkIDAsbig3Mjg2NDkpKV0sWyJMaWdodGluZyBFcXVpcG1lbnQiLCgpPT50LnQobnVsbCx2b2lkIDAsbigxOTE2MzApKV0sWyJMaWdodGluZyBGaXh0dXJlcyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDQ3OTA5MSkpXSxbIkxpbmdlcmllIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNjg0OTAxKSldLFsiTG9jYWwgQWdlbmNpZXMiLCgpPT50LnQobnVsbCx2b2lkIDAsbig0NDM0MykpXSxbIkxvY29tb3RpdmUgRW5naW5lcyAmIFJvbGxpbmcgU3RvY2siLCgpPT50LnQobnVsbCx2b2lkIDAsbigyOTkxNzUpKV0sWyJMb2dnaW5nICYgU2F3bWlsbHMiLCgpPT50LnQobnVsbCx2b2lkIDAsbig5ODAyNDYpKV0sWyJMb3R0ZXJ5IE9wZXJhdG9ycyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDczODQwNykpXSxbIkx1eHVyeSBBY2Nlc3NvcmllcyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDY3NTEwKSldLFsiTHV4dXJ5IENhciBEZWFsZXJzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNDA5MzU3KSldLFsiTWFjaGluZSBUb29scyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDc0NTAwMykpXSxbIk1hZ2F6aW5lIFB1Ymxpc2hpbmciLCgpPT50LnQobnVsbCx2b2lkIDAsbigxMjc2MzMpKV0sWyJNYWludGVuYW5jZSAmIFJlcGFpciBTZXJ2aWNlcyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDk4MDc4NikpXSxbIk1ham9yIEJhbmtzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oMTQzNzc0KSldLFsiTWFqb3IgUGhhcm1hY2V1dGljYWxzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oOTE3NTc4KSldLFsiTWFqb3IgVGVsZWNvbW11bmljYXRpb25zIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oMjczMTAzKSldLFsiTWFsdCBwcm9kdWNlcnMiLCgpPT50LnQobnVsbCx2b2lkIDAsbig4NDIzMTIpKV0sWyJNYW5hZ2VkIEhlYWx0aCBjYXJlIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNTI5MzQ3KSldLFsiTWFuYWdlZCBIZWFsdGggQ2FyZSIsKCk9PnQudChudWxsLHZvaWQgMCxuKDgxMTQ4MykpXSxbIk1hbmFnZW1lbnQgQ29uc3VsdGluZyBTZXJ2aWNlcyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDEyMjEwMikpXSxbIk1hcmluYXMiLCgpPT50LnQobnVsbCx2b2lkIDAsbigyMzcxNTIpKV0sWyJNYXJpbmUgQ2FyZ28gSGFuZGxpbmcgU2VydmljZXMiLCgpPT50LnQobnVsbCx2b2lkIDAsbigyMzU5OTQpKV0sWyJNYXJpbmUgRnJlaWdodCAmIExvZ2lzdGljcyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDY5MDM4OCkpXSxbIk1hcmluZSBMb2dpc3RpY3MiLCgpPT50LnQobnVsbCx2b2lkIDAsbig3NjQwOTkpKV0sWyJNYXJpbmUgUGFzc2VuZ2VyIFRyYW5zcG9ydGF0aW9uIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNjk0ODQ5KSldLFsiTWFyaW5lIFBvcnQgU2VydmljZXMiLCgpPT50LnQobnVsbCx2b2lkIDAsbig1MTE0NTIpKV0sWyJNYXJpbmUgU2hpcHBpbmciLCgpPT50LnQobnVsbCx2b2lkIDAsbig4MDc1NjEpKV0sWyJNYXJrZXQgUmVzZWFyY2giLCgpPT50LnQobnVsbCx2b2lkIDAsbig4NDE3NjEpKV0sWyJNYXJrZXRpbmcgQ29uc3VsdGluZyBTZXJ2aWNlcyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDg5NzM5MykpXSxbIk1lZGlhIEJ1eWluZyBBZ2VuY3kiLCgpPT50LnQobnVsbCx2b2lkIDAsbigyNjYwMjApKV0sWyJNZWRpYSBDb25nbG9tZXJhdGVzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oMjUyMjAzKSldLFsiTWVkaWNhbCAmIERpYWdub3N0aWMgTGFib3JhdG9yaWVzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNDMyNjYyKSldLFsiTWVkaWNhbCBEZXZpY2VzICYgSW1wbGFudHMiLCgpPT50LnQobnVsbCx2b2lkIDAsbig4NzA1NTkpKV0sWyJNZWRpY2FsIERpYWdub3N0aWMgJiBUZXN0aW5nIEVxdWlwbWVudCIsKCk9PnQudChudWxsLHZvaWQgMCxuKDY1OTk3MSkpXSxbIk1lZGljYWwgRGlzdHJpYnV0b3JzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNTA3ODUpKV0sWyJNZWRpY2FsIEVxdWlwbWVudCBXaG9sZXNhbGUiLCgpPT50LnQobnVsbCx2b2lkIDAsbig1MzI4NTcpKV0sWyJNZWRpY2FsIEVxdWlwbWVudCIsKCk9PnQudChudWxsLHZvaWQgMCxuKDc5MjIwMCkpXSxbIk1lZGljYWwgRXF1aXBtZW50LCBTdXBwbGllcyAmIERpc3RyaWJ1dGlvbiIsKCk9PnQudChudWxsLHZvaWQgMCxuKDcyMjU1NikpXSxbIk1lZGljYWwgSW1hZ2luZyBTeXN0ZW1zIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNzcxNDU3KSldLFsiTWVkaWNhbCBNb25pdG9yaW5nIFN5c3RlbXMiLCgpPT50LnQobnVsbCx2b2lkIDAsbig0NjY3NDgpKV0sWyJNZWRpY2FsIFByb3N0aGV0aWNzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNzc3NzgpKV0sWyJNZWRpY2FsIFNvZnR3YXJlICYgVGVjaG5vbG9neSBTZXJ2aWNlcyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDQzMzI2NCkpXSxbIk1lZGljYWwgU3BlY2lhbHRpZXMiLCgpPT50LnQobnVsbCx2b2lkIDAsbigzNzYzMTYpKV0sWyJNZWRpY2FsIFN1cHBsaWVzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oMjYwNDMyKSldLFsiTWVkaWNhbC9OdXJzaW5nIFNlcnZpY2VzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNTk5MTUwKSldLFsiTWVtb3J5IENoaXBzIChSQU0pIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNjAzODMpKV0sWyJNZW4ncyBBcHBhcmVsIFJldGFpbGVycyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDk5NjY0OSkpXSxbIk1lbidzIENsb3RoaW5nIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNzk2MTApKV0sWyJNZW4ncyBGb290d2VhciIsKCk9PnQudChudWxsLHZvaWQgMCxuKDc5NjA4MikpXSxbIk1lcmNoYW50IEJhbmtzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNzA2NjYpKV0sWyJNZXRhbCBDb250YWluZXJzICYgUGFja2FnaW5nIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oMTA5MzcyKSldLFsiTWV0YWwgRmFicmljYXRpb24iLCgpPT50LnQobnVsbCx2b2lkIDAsbig1MzY3OTUpKV0sWyJNZXRhbCBNZXJjaGFudCBXaG9sZXNhbGVycyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDU1OTc2MCkpXSxbIk1ldGFsIFNlcnZpY2UgQ2VudGVycyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDIyOTU0MCkpXSxbIk1ldGFsbGljIFJvbGxpbmcgJiBEcmF3aW5nIFByb2R1Y3RzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oOTYyNDI3KSldLFsiTWljcm9maW5hbmNpbmciLCgpPT50LnQobnVsbCx2b2lkIDAsbig2MDYyNjYpKV0sWyJNaW5pbmcgTWFjaGluZXJ5ICYgRXF1aXBtZW50IE1hbnVmYWN0dXJpbmciLCgpPT50LnQobnVsbCx2b2lkIDAsbig4MzgzMzApKV0sWyJNaW5pbmcgU3VwcG9ydCBBY3Rpdml0aWVzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNDA0ODU2KSldLFsiTWluaW5nIFN1cHBvcnQgU2VydmljZXMgJiBFcXVpcG1lbnQiLCgpPT50LnQobnVsbCx2b2lkIDAsbig4MTY4NDUpKV0sWyJNaXNjZWxsYW5lb3VzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oMTU3MDIzKSldLFsiTWlzY2VsbGFuZW91cyBDb21tZXJjaWFsIFNlcnZpY2VzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oMTMyOTg0KSldLFsiTWlzY2VsbGFuZW91cyBNYW51ZmFjdHVyaW5nIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oOTQ3NzE0KSldLFsiTW9iaWxlIEFwcGxpY2F0aW9uIFNvZnR3YXJlIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNjgyNTU3KSldLFsiTW9iaWxlIFBob25lIFJldGFpbGVycyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDYyNTQ1MykpXSxbIk1vYmlsZSBTeXN0ZW0gU29mdHdhcmUiLCgpPT50LnQobnVsbCx2b2lkIDAsbig3NTAwMzMpKV0sWyJNb3J0Z2FnZSBSRUlUcyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDQ5ODE1NCkpXSxbIk1vdG9yIFZlaGljbGVzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oMzIwMDU4KSldLFsiTW90b3JjeWNsZSBEZWFsZXJzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNDgwMDQ1KSldLFsiTW90b3JjeWNsZSBQYXJ0cyAmIEFjY2Vzc29yaWVzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oOTIyNjIpKV0sWyJNb3RvcmN5Y2xlcyAmIFNjb290ZXJzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNTQyNjgpKV0sWyJNb3ZpZSBUaGVhdGVycyAmIE1vdmllIFByb2R1Y3RzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNTg1ODQ1KSldLFsiTW92aWUsIFRWIFByb2R1Y3Rpb24gJiBEaXN0cmlidXRpb24iLCgpPT50LnQobnVsbCx2b2lkIDAsbigxOTI5MzEpKV0sWyJNb3ZpZXMvRW50ZXJ0YWlubWVudCIsKCk9PnQudChudWxsLHZvaWQgMCxuKDM3MDEwKSldLFsiTXVsdGlsaW5lIEluc3VyYW5jZSAmIEJyb2tlcnMiLCgpPT50LnQobnVsbCx2b2lkIDAsbig2NzY1MTgpKV0sWyJNdWx0aWxpbmUgVXRpbGl0aWVzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oMTczMDczKSldLFsiTXVsdGktTGluZSBJbnN1cmFuY2UiLCgpPT50LnQobnVsbCx2b2lkIDAsbig5MTM1NjEpKV0sWyJNdW5pY2lwYWxpdHkiLCgpPT50LnQobnVsbCx2b2lkIDAsbig0NDc2NTEpKV0sWyJNdXNldW1zICYgSGlzdG9yaWMgUGxhY2VzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oMjQ0NTQ1KSldLFsiTXVzaWMsIE11c2ljIFZpZGVvIFByb2R1Y3Rpb24gJiBEaXN0cmlidXRpb24iLCgpPT50LnQobnVsbCx2b2lkIDAsbig2MjczNDApKV0sWyJNdXNpY2FsIEluc3RydW1lbnQgUmV0YWlsZXJzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oOTA4NzY5KSldLFsiTXVzaWNhbCBJbnN0cnVtZW50cyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDcxNjY2OSkpXSxbIk11dHVhbCBGdW5kcyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDEwMDAzKSldLFsiTmF0aW9uYWwgQWdlbmN5IiwoKT0+dC50KG51bGwsdm9pZCAwLG4oOTU2NDYyKSldLFsiTmF0aW9uYWwgQWdlbmNpZXMiLCgpPT50LnQobnVsbCx2b2lkIDAsbigyMzEzMzQpKV0sWyJOYXR1cmFsIEZhYnJpY3MiLCgpPT50LnQobnVsbCx2b2lkIDAsbigyMjgyMTEpKV0sWyJOYXR1cmFsIEdhcyBEaXN0cmlidXRpb24iLCgpPT50LnQobnVsbCx2b2lkIDAsbigxMDU1MzIpKV0sWyJOYXR1cmFsIEdhcyBFeHBsb3JhdGlvbiAmIFByb2R1Y3Rpb24gLSBPZmZzaG9yZSIsKCk9PnQudChudWxsLHZvaWQgMCxuKDIzNzM0OSkpXSxbIk5hdHVyYWwgR2FzIEV4cGxvcmF0aW9uICYgUHJvZHVjdGlvbiAtIE9uc2hvcmUiLCgpPT50LnQobnVsbCx2b2lkIDAsbig2NTMwMzApKV0sWyJOYXR1cmFsIEdhcyBQaXBlbGluZSIsKCk9PnQudChudWxsLHZvaWQgMCxuKDEyNDk5OCkpXSxbIk5hdHVyYWwgR2FzIFV0aWxpdGllcyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDI1ODc4NSkpXSxbIk5ldHdvcmsgRXF1aXBtZW50IiwoKT0+dC50KG51bGwsdm9pZCAwLG4oMzYzMDgzKSldLFsiTmV3IENhciBEZWFsZXJzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oMjI5NTU2KSldLFsiTmV3cyBBZ2VuY2llcyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDM1MjI4NSkpXSxbIk5ld3NwYXBlciAmIE1hZ2F6aW5lIFByaW50aW5nIFNlcnZpY2VzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oMjIxMzcxKSldLFsiTmV3c3BhcGVyIFB1Ymxpc2hpbmciLCgpPT50LnQobnVsbCx2b2lkIDAsbigxODY3KSldLFsiTmV3c3ByaW50IE1pbGxzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oODE5NDczKSldLFsiTmlja2VsIE9yZSBNaW5pbmciLCgpPT50LnQobnVsbCx2b2lkIDAsbig2MDY4NTQpKV0sWyJOb24tQWxjb2hvbGljIEJldmVyYWdlcyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDk4NzcxNSkpXSxbIk5vbi1QYXBlciBDb250YWluZXJzICYgUGFja2FnaW5nIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNTQyMjM1KSldLFsiTm9uLWZlcnJvdXMgTWV0YWwgTWluaW5nIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oOTg5OTQwKSldLFsiTm9uLWZlcnJvdXMgTWV0YWwgUHJvY2Vzc2luZyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDgxOTU2NikpXSxbIk51Y2xlYXIgSVBQcyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDQ0MjQxMykpXSxbIk51Y2xlYXIgVXRpbGl0aWVzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNjQ0ODU2KSldLFsiTnVyc2VyeSAmIEdhcmRlbiBDZW50ZXJzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNzA2NjcxKSldLFsiT2ZmaWNlIEVxdWlwbWVudCAmIFN1cHBsaWVzIFJlbnRhbCIsKCk9PnQudChudWxsLHZvaWQgMCxuKDQyNDg2MSkpXSxbIk9mZmljZSBFcXVpcG1lbnQgV2hvbGVzYWxlIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oMTM3NTI1KSldLFsiT2ZmaWNlIEVxdWlwbWVudCIsKCk9PnQudChudWxsLHZvaWQgMCxuKDEyODc0KSldLFsiT2ZmaWNlIEVxdWlwbWVudC9TdXBwbGllcyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDg0OTExOCkpXSxbIk9mZmljZSBGdXJuaXR1cmUiLCgpPT50LnQobnVsbCx2b2lkIDAsbig3OTc3NDgpKV0sWyJPZmZpY2UgUkVJVHMiLCgpPT50LnQobnVsbCx2b2lkIDAsbig5Mjc3MTIpKV0sWyJPZmZpY2UgUmVhbCBFc3RhdGUgRGV2ZWxvcG1lbnQiLCgpPT50LnQobnVsbCx2b2lkIDAsbig0MzM5MTEpKV0sWyJPZmZpY2UgUmVhbCBFc3RhdGUgU2VydmljZXMiLCgpPT50LnQobnVsbCx2b2lkIDAsbig3MDYzNDkpKV0sWyJPZmZpY2UgU3VwcGxpZXMgJiBTdGF0aW9uZXJ5IFN0b3JlcyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDk0MDExNSkpXSxbIk9mZmljZSBTdXBwbGllcyBXaG9sZXNhbGUiLCgpPT50LnQobnVsbCx2b2lkIDAsbigzNzk1MDcpKV0sWyJPZmZpY2UgU3VwcGxpZXMiLCgpPT50LnQobnVsbCx2b2lkIDAsbig4NTYzMikpXSxbIk9mZmljZSBUZWNobm9sb2d5IEVxdWlwbWVudCIsKCk9PnQudChudWxsLHZvaWQgMCxuKDI5MDM3MCkpXSxbIk9pbCAmIEdhcyBEcmlsbGluZyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDY0NzQzOSkpXSxbIk9pbCAmIEdhcyBFeHBsb3JhdGlvbiBhbmQgUHJvZHVjdGlvbiIsKCk9PnQudChudWxsLHZvaWQgMCxuKDE5NDQ1MCkpXSxbIk9pbCAmIEdhcyBQaXBlbGluZXMiLCgpPT50LnQobnVsbCx2b2lkIDAsbigyODM4ODUpKV0sWyJPaWwgJiBHYXMgUHJvZHVjdGlvbiIsKCk9PnQudChudWxsLHZvaWQgMCxuKDM5MTcpKV0sWyJPaWwgJiBHYXMgUmVmaW5pbmcgYW5kIE1hcmtldGluZyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDUwMzMxNykpXSxbIk9pbCAmIEdhcyBTdG9yYWdlIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oOTIyNDkzKSldLFsiT2lsICYgR2FzIFRyYW5zcG9ydGF0aW9uIFNlcnZpY2VzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oODk2ODE5KSldLFsiT2lsIERyaWxsaW5nIC0gT2Zmc2hvcmUiLCgpPT50LnQobnVsbCx2b2lkIDAsbigxNzk0OTcpKV0sWyJPaWwgRHJpbGxpbmcgLSBPbnNob3JlIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oMjk4MDUwKSldLFsiT2lsIEV4cGxvcmF0aW9uICYgUHJvZHVjdGlvbiAtIE9mZnNob3JlIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oODU3OTE4KSldLFsiT2lsIEV4cGxvcmF0aW9uICYgUHJvZHVjdGlvbiAtIE9uc2hvcmUiLCgpPT50LnQobnVsbCx2b2lkIDAsbig3MzcyMzApKV0sWyJPaWwgUGlwZWxpbmUiLCgpPT50LnQobnVsbCx2b2lkIDAsbigxMjg4NzkpKV0sWyJPaWwgUmVmaW5pbmcvTWFya2V0aW5nIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNzkyMDMyKSldLFsiT2lsIFJlbGF0ZWQgLSBTdXJ2ZXlpbmcgJiBNYXBwaW5nIFNlcnZpY2VzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNjY5MTU2KSldLFsiT2lsIFJlbGF0ZWQgRXF1aXBtZW50IiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNTYxNjE1KSldLFsiT2lsIFJlbGF0ZWQgU2VydmljZXMgYW5kIEVxdWlwbWVudCIsKCk9PnQudChudWxsLHZvaWQgMCxuKDIyMDUzKSldLFsiT2lsIFJlbGF0ZWQgU2VydmljZXMiLCgpPT50LnQobnVsbCx2b2lkIDAsbig1NzMxNjcpKV0sWyJPaWxmaWVsZCBTZXJ2aWNlcy9FcXVpcG1lbnQiLCgpPT50LnQobnVsbCx2b2lkIDAsbig4ODU1NDYpKV0sWyJPbmxpbmUgSm9iIHBvcnRhbHMiLCgpPT50LnQobnVsbCx2b2lkIDAsbigyNDAyMikpXSxbIk9wdGljYWwgR29vZHMgU3RvcmVzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNzY4NDAxKSldLFsiT3JnYW5pYyAmIEVjb2xvZ2ljYWxseSBQcm9kdWNlZCBGYWJyaWMiLCgpPT50LnQobnVsbCx2b2lkIDAsbig4MTMyMTgpKV0sWyJPcmdhbmljIEZlcnRpbGl6ZXIiLCgpPT50LnQobnVsbCx2b2lkIDAsbigzMDE3MzEpKV0sWyJPdGhlciBDb25zdW1lciBTZXJ2aWNlcyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDQ2MzgwKSldLFsiT3RoZXIgQ29uc3VtZXIgU3BlY2lhbHRpZXMiLCgpPT50LnQobnVsbCx2b2lkIDAsbig5MDc3NTApKV0sWyJPdGhlciBNZXRhbHMvTWluZXJhbHMiLCgpPT50LnQobnVsbCx2b2lkIDAsbigxMDU4NzEpKV0sWyJPdGhlciBTcGVjaWFsdHkgUmV0YWlsZXJzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oMzY2Nzg5KSldLFsiT3RoZXIgVHJhbnNwb3J0YXRpb24iLCgpPT50LnQobnVsbCx2b2lkIDAsbig1MTE1ODYpKV0sWyJPdXRkb29yIEFkdmVydGlzaW5nIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNDMwNzk4KSldLFsiT3V0c291cmNpbmcgJiBTdGFmZmluZyBTZXJ2aWNlcyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDI3Nzk0MikpXSxbIlBhY2thZ2VkIFNvZnR3YXJlIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNzkxMjcxKSldLFsiUGFpbnQgJiBDb2F0aW5nIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oMTYzODE3KSldLFsiUGFwZXIgTWlsbHMgJiBQcm9kdWN0cyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDM4OTIzNSkpXSxbIlBhcGVyIFBhY2thZ2luZyBXaG9sZXNhbGUiLCgpPT50LnQobnVsbCx2b2lkIDAsbigzMjY0NzcpKV0sWyJQYXBlciBQYWNrYWdpbmciLCgpPT50LnQobnVsbCx2b2lkIDAsbig4MDM0NDYpKV0sWyJQYXBlciBQcm9kdWN0IFdob2xlc2FsZSIsKCk9PnQudChudWxsLHZvaWQgMCxuKDU5Mjg0KSldLFsiUGFwZXIgUHJvZHVjdHMiLCgpPT50LnQobnVsbCx2b2lkIDAsbig5NDk5NjApKV0sWyJQYXJraW5nIExvdCBPcGVyYXRvcnMiLCgpPT50LnQobnVsbCx2b2lkIDAsbigyMTgzNTcpKV0sWyJQYXNzZW5nZXIgQ2FyIHJlbnRhbCIsKCk9PnQudChudWxsLHZvaWQgMCxuKDg4NDMzOCkpXSxbIlBhc3NlbmdlciBUcmFuc3BvcnRhdGlvbiwgR3JvdW5kICYgU2VhIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNjA3NDI3KSldLFsiUGVuc2lvbiBGdW5kcyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDg4ODU2OCkpXSxbIlBlcnNvbmFsICYgQ2FyIExvYW5zIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oMTg3MzUyKSldLFsiUGVyc29uYWwgQ2FyZSBTZXJ2aWNlcyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDk1OTMzOCkpXSxbIlBlcnNvbmFsIExlZ2FsIFNlcnZpY2VzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oMzA1NjA0KSldLFsiUGVyc29uYWwgTXVzaWMgUGxheWVycyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDk1NjA2MCkpXSxbIlBlcnNvbmFsIFByb2R1Y3RzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNjUyNjczKSldLFsiUGVyc29uYWwgU2VydmljZXMiLCgpPT50LnQobnVsbCx2b2lkIDAsbig2NzIzOTkpKV0sWyJQZXJzb25uZWwgU2VydmljZXMiLCgpPT50LnQobnVsbCx2b2lkIDAsbig5MjcyNikpXSxbIlBlc3QgQ29udHJvbCBTZXJ2aWNlcyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDI3NjkwMCkpXSxbIlBlc3RpY2lkZSIsKCk9PnQudChudWxsLHZvaWQgMCxuKDU4NzYwMikpXSxbIlBldCAmIFBldCBTdXBwbGllcyBSZXRhaWxlcnMiLCgpPT50LnQobnVsbCx2b2lkIDAsbigxNDIwMTMpKV0sWyJQZXQgRm9vZCBNYW51ZmFjdHVyaW5nIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNTU5MDMxKSldLFsiUGV0cm9sZXVtIFByb2R1Y3QgV2hvbGVzYWxlIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNjcxOTIxKSldLFsiUGV0cm9sZXVtIFJlZmluaW5nIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oMjg2Nzg3KSldLFsiUGhhcm1hY2V1dGljYWxzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNjk5NzIzKSldLFsiUGhhcm1hY2V1dGljYWxzOiBHZW5lcmljIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oMzYxODQ5KSldLFsiUGhhcm1hY2V1dGljYWxzOiBNYWpvciIsKCk9PnQudChudWxsLHZvaWQgMCxuKDE4MjY0MykpXSxbIlBoYXJtYWNldXRpY2FsczogT3RoZXIiLCgpPT50LnQobnVsbCx2b2lkIDAsbig3NDUxODApKV0sWyJQaG9uZXMgJiBIYW5kaGVsZCBEZXZpY2VzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oMTMzMzMyKSldLFsiUGhvbmVzICYgU21hcnQgUGhvbmVzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNTIzNzY0KSldLFsiUGhvdG9ncmFwaGljIEVxdWlwbWVudCIsKCk9PnQudChudWxsLHZvaWQgMCxuKDgzMDc5NykpXSxbIlBob3Rvdm9sdGFpYyBTb2xhciBTeXN0ZW1zICYgRXF1aXBtZW50IiwoKT0+dC50KG51bGwsdm9pZCAwLG4oMTQ1NzYyKSldLFsiUGxhc3RpYyBDb250YWluZXIgJiBQYWNrYWdpbmciLCgpPT50LnQobnVsbCx2b2lkIDAsbig2ODkzOTMpKV0sWyJQbGFzdGljcyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDkwNTkzNCkpXSxbIlBsYXRpbnVtIE1pbmluZyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDkzNjI2MCkpXSxbIlBsYXlzICYgQ29uY2VydCBQcm9kdWN0aW9uIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNzQwMDMpKV0sWyJQbHVtYmluZyBGaXh0dXJlcyAmIEZpdHRpbmdzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oMzg2NTYpKV0sWyJQb2ludCBvZiBTYWxlIFN5c3RlbXMiLCgpPT50LnQobnVsbCx2b2lkIDAsbig4MDkyKSldLFsiUG9ydCBPcGVyYXRvcnMiLCgpPT50LnQobnVsbCx2b2lkIDAsbigyOTUxNjApKV0sWyJQb3J0IFdhcmVob3VzaW5nIFNlcnZpY2VzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNzU3MDYwKSldLFsiUG9ydGFibGUgTW90b3JzICYgR2VuZXJhdG9ycyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDI3NzQ0MykpXSxbIlBvcnRhYmxlIFNhdGVsbGl0ZSBOYXZpZ2F0aW9uIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oMjYyMjQzKSldLFsiUG91bHRyeSBGYXJtaW5nIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNjM1NDE1KSldLFsiUHJlY2lvdXMgTWV0YWxzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oODY0MjEyKSldLFsiUHJlY2lvdXMgTWV0YWxzICYgTWluZXJhbHMiLCgpPT50LnQobnVsbCx2b2lkIDAsbigxNzYwODkpKV0sWyJQcmVmYWJyaWNhdGVkIEhvbWVzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oODcxMDg4KSldLFsiUHJpbWFyeSBBbHVtaW51bSBQcm9kdWN0aW9uIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oMjU1MzcpKV0sWyJQcml2YXRlIEJhbmtzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oMjQzNzU2KSldLFsiUHJpdmF0ZSBFcXVpdHkiLCgpPT50LnQobnVsbCx2b2lkIDAsbig5Nzk1MzIpKV0sWyJQcm9jZXNzb3JzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNTQ4MzYpKV0sWyJQcm9mZXNzaW9uYWwgSW5mb3JtYXRpb24gU2VydmljZXMiLCgpPT50LnQobnVsbCx2b2lkIDAsbig1NTMzMzApKV0sWyJQcm9mZXNzaW9uYWwgU3BvcnRzIFZlbnVlcyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDEwNDAxNCkpXSxbIlByb2dyYW1taW5nIFNvZnR3YXJlICYgVGVzdGluZyBUb29scyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDUzNDM5KSldLFsiUHJvcGVydHkgJiBDYXN1YWx0eSBJbnN1cmFuY2UiLCgpPT50LnQobnVsbCx2b2lkIDAsbig3MzYwNjYpKV0sWyJQcm9wZXJ0eSAmIENhc3VhbHR5IFJlaW5zdXJhbmNlIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oODk2MjMwKSldLFsiUHJvcGVydHkgSW5zdXJhbmNlIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oMzY0ODc3KSldLFsiUHJvcGVydHktQ2FzdWFsdHkgSW5zdXJlcnMiLCgpPT50LnQobnVsbCx2b2lkIDAsbigzNTE2MTQpKV0sWyJQcm9wZXJ0eS9DYXN1YWx0eSBJbnN1cmFuY2UiLCgpPT50LnQobnVsbCx2b2lkIDAsbig2OTY0NzcpKV0sWyJQcm92aW5jZS9TdGF0ZSIsKCk9PnQudChudWxsLHZvaWQgMCxuKDc2NjkyKSldLFsiUHVibGljIFJlbGF0aW9ucyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDU2ODMwKSldLFsiUHVibGljIFNwb3J0IEZhY2lsaXRpZXMiLCgpPT50LnQobnVsbCx2b2lkIDAsbigxODIwOTcpKV0sWyJQdWJsaXNoaW5nOiBCb29rcy9NYWdhemluZXMiLCgpPT50LnQobnVsbCx2b2lkIDAsbigzMTMwNTYpKV0sWyJQdWJsaXNoaW5nOiBOZXdzcGFwZXJzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNzAwNDQyKSldLFsiUHVicywgQmFycyAmIE5pZ2h0IENsdWJzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oOTMzNDYxKSldLFsiUHVscCBNaWxscyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDM1Mjg1NikpXSxbIlB1bHAgJiBQYXBlciIsKCk9PnQudChudWxsLHZvaWQgMCxuKDM2NzM2MSkpXSxbIlB1bXAgJiBQdW1waW5nIEVxdWlwbWVudCIsKCk9PnQudChudWxsLHZvaWQgMCxuKDMyMTE3KSldLFsiUHVyaWZpY2F0aW9uICYgVHJlYXRtZW50IEVxdWlwbWVudCIsKCk9PnQudChudWxsLHZvaWQgMCxuKDg0MDM4NikpXSxbIlF1aWNrIFNlcnZpY2UgUmVzdGF1cmFudHMiLCgpPT50LnQobnVsbCx2b2lkIDAsbig5NDcyOTkpKV0sWyJSRklEIFN5c3RlbXMiLCgpPT50LnQobnVsbCx2b2lkIDAsbig5NjcwMjMpKV0sWyJSYWRpbyBCcm9hZGNhc3RpbmciLCgpPT50LnQobnVsbCx2b2lkIDAsbigxMTk4OTIpKV0sWyJSYWlsIFNlcnZpY2VzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNjAwNTc2KSldLFsiUmFpbHJvYWRzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNzY3MTQ3KSldLFsiUmFpbHdheSBDb25zdHJ1Y3Rpb24iLCgpPT50LnQobnVsbCx2b2lkIDAsbig2NjY1NDcpKV0sWyJSYWlsd2F5IEZyZWlnaHQgT3BlcmF0b3JzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oMzE5NzEzKSldLFsiUmFyZSBFYXJ0aCBNaW5lcmFscyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDkxODQpKV0sWyJSYXRpbmcgQWdlbmNpZXMiLCgpPT50LnQobnVsbCx2b2lkIDAsbigyMjc3NTQpKV0sWyJSZWFkeS1NYWRlIE1lYWxzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNjEzOTUxKSldLFsiUmVhbCBFc3RhdGUgRGV2ZWxvcG1lbnQiLCgpPT50LnQobnVsbCx2b2lkIDAsbig0NDEwNDUpKV0sWyJSZWFsIEVzdGF0ZSBEZXZlbG9wbWVudCAmIE9wZXJhdGlvbnMiLCgpPT50LnQobnVsbCx2b2lkIDAsbig3MTIwMDQpKV0sWyJSZWFsIEVzdGF0ZSBJbnZlc3RtZW50IFRydXN0cyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDE0MjA4NikpXSxbIlJlYWwgRXN0YXRlIFNlcnZpY2VzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oMzc2MzY1KSldLFsiUmVjcmVhdGlvbmFsIFByb2R1Y3RzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oMTA1NzEpKV0sWyJSZWdpb25hbCBBaXJsaW5lcyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDc2NjE2NSkpXSxbIlJlZ2lvbmFsIEJhbmtzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oMzU4NjIzKSldLFsiUmVpbnN1cmFuY2UiLCgpPT50LnQobnVsbCx2b2lkIDAsbig3MzQ0NzcpKV0sWyJSZW5ld2FibGUgRW5lcmd5IEVxdWlwbWVudCAmIFNlcnZpY2VzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNTc4OTMwKSldLFsiUmVuZXdhYmxlIEVuZXJneSBTZXJ2aWNlcyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDkxOTYzOSkpXSxbIlJlbmV3YWJsZSBGdWVscyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDM5NDE3NCkpXSxbIlJlbmV3YWJsZSBJUFBzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oOTg0OTkzKSldLFsiUmVuZXdhYmxlIFV0aWxpdGllcyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDE4MDA5MCkpXSxbIlJlc2lkZW50aWFsICBSZWFsIEVzdGF0ZSBEZXZlbG9wbWVudCIsKCk9PnQudChudWxsLHZvaWQgMCxuKDIwNjE0NCkpXSxbIlJlc2lkZW50aWFsICYgTG9uZyBUZXJtIENhcmUiLCgpPT50LnQobnVsbCx2b2lkIDAsbigxMjIxODkpKV0sWyJSZXNpZGVudGlhbCBBcmNoaXRlY3R1cmFsICYgSW50ZXJpb3IgRGVzaWduIFNlcnZpY2VzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oMTA5MDA3KSldLFsiUmVzaWRlbnRpYWwgQnVpbGRlcnMgLSBNdWx0aWZhbWlseSBIb21lcyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDU3ODgxMikpXSxbIlJlc2lkZW50aWFsIEJ1aWxkZXJzIC0gU2luZ2xlIEhvbWVzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oMTgyNzk3KSldLFsiUmVzaWRlbnRpYWwgUkVJVHMiLCgpPT50LnQobnVsbCx2b2lkIDAsbigyMjAyNjQpKV0sWyJSZXNpZGVudGlhbCBSZWFsIEVzdGF0ZSBTZXJ2aWNlcyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDE0NTI4MSkpXSxbIlJlc29ydCBPcGVyYXRvcnMiLCgpPT50LnQobnVsbCx2b2lkIDAsbig4NDMxODEpKV0sWyJSZXN0YXVyYW50cyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDMyMzg4OSkpXSxbIlJlc3RhdXJhbnRzICYgQmFycyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDMxNTIxMykpXSxbIlJldGFpbCAgUmVhbCBFc3RhdGUgRGV2ZWxvcG1lbnQiLCgpPT50LnQobnVsbCx2b2lkIDAsbig0MTI2MjApKV0sWyJSZXRhaWwgJiBNb3J0Z2FnZSBCYW5rcyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDc5MjkyNikpXSxbIlJldGFpbCAtIERlcGFydG1lbnQgU3RvcmVzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oOTYxMjA1KSldLFsiUmV0YWlsIC0gRHJ1Z3Mgd2l0aCBHcm9jZXJ5IiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNjU5NzYxKSldLFsiUmV0YWlsIC0gRHJ1Z3Mgd2l0aG91dCBHcm9jZXJ5IiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNjA5NzI4KSldLFsiUmV0YWlsIFJFSVRzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oMTAxMTQwKSldLFsiUmV0YWlsIFJlYWwgRXN0YXRlIFNlcnZpY2VzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNzA5NjI1KSldLFsiUmV0aXJlbWVudCBIb21lIEJ1aWxkZXJzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oOTE4ODkpKV0sWyJSb2NrIE1pbmluZyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDg5MTM5OSkpXSxbIlJvb2ZpbmcgU3VwcGxpZXMiLCgpPT50LnQobnVsbCx2b2lkIDAsbigyOTIxMzUpKV0sWyJSdWJiZXIgUGxhbnRhdGlvbiIsKCk9PnQudChudWxsLHZvaWQgMCxuKDQ2MTk3MikpXSxbIlNhaWxpbmcgWWFjaHRzICYgTW90b3Jib2F0cyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDIyNzg2MSkpXSxbIlNhbGVzIFByb21vdGlvbnMgJiBFdmVudHMgTWFuYWdlbWVudCIsKCk9PnQudChudWxsLHZvaWQgMCxuKDIxOTcxNykpXSxbIlNhbml0YXJ5IFByb2R1Y3RzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNjI3MzU1KSldLFsiU2F0ZWxsaXRlICBTeXN0ZW1zICYgQWNjZXNzb3JpZXMiLCgpPT50LnQobnVsbCx2b2lkIDAsbig3MzQwNzQpKV0sWyJTYXRlbGxpdGUgU2VydmljZSBPcGVyYXRvcnMiLCgpPT50LnQobnVsbCx2b2lkIDAsbig4NTkxMTYpKV0sWyJTYXZpbmdzIEJhbmtzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oMzM0NTA3KSldLFsiU2NpZW50aWZpYyAmIFByZWNpc2lvbiBFcXVpcG1lbnQiLCgpPT50LnQobnVsbCx2b2lkIDAsbigxOTg2MjgpKV0sWyJTY2llbnRpZmljICYgU3VwZXIgQ29tcHV0ZXJzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNzY2NzA0KSldLFsiU2VhLUJvcm5lIFRhbmtlcnMiLCgpPT50LnQobnVsbCx2b2lkIDAsbig0MDQ0MTIpKV0sWyJTZWFmb29kIFByb2R1Y3QgUHJlcGFyYXRpb24gJiBQYWNrYWdpbmciLCgpPT50LnQobnVsbCx2b2lkIDAsbigyMzI2NjkpKV0sWyJTZWFyY2ggRW5naW5lcyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDg5MjE2MikpXSxbIlNlY29uZGFyeSBTbWVsdGluZyAmIEFsbG95aW5nIG9mIEFsdW1pbnVtIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oOTc4NzM4KSldLFsiU2VjdXJpdGllcyAmIENvbW1vZGl0eSBFeGNoYW5nZXMiLCgpPT50LnQobnVsbCx2b2lkIDAsbig3ODYwMTUpKV0sWyJTZWN1cml0eSAmIFN1cnZlaWxsYW5jZSIsKCk9PnQudChudWxsLHZvaWQgMCxuKDk0OTI2NSkpXSxbIlNlY3VyaXR5IFNlcnZpY2VzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oMTI3MjUyKSldLFsiU2VsZi1TdG9yYWdlIFJFSVRzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oMTkyMjYpKV0sWyJTZW1pY29uZHVjdG9yIEVxdWlwbWVudCAmIFRlc3RpbmciLCgpPT50LnQobnVsbCx2b2lkIDAsbigzOTIzODEpKV0sWyJTZW1pY29uZHVjdG9yIEVxdWlwbWVudCBXaG9sZXNhbGVycyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDE4MzIwOSkpXSxbIlNlbWljb25kdWN0b3IgTWFjaGluZXJ5IE1hbnVmYWN0dXJpbmciLCgpPT50LnQobnVsbCx2b2lkIDAsbig1NDk0NTkpKV0sWyJTZW1pY29uZHVjdG9yIFRlc3RpbmcgRXF1aXBtZW50ICYgU2VydmljZSIsKCk9PnQudChudWxsLHZvaWQgMCxuKDMxNjg0NSkpXSxbIlNlbWljb25kdWN0b3IgV2hvbGVzYWxlIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oOTUxMzQ2KSldLFsiU2VtaWNvbmR1Y3RvcnMiLCgpPT50LnQobnVsbCx2b2lkIDAsbig4NTUyODIpKV0sWyJTZW1pcHJlY2lvdXMgR2VtIFN0b25lcyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDc3MDc3NSkpXSxbIlNlcnZlciAmIERhdGFiYXNlIFNvZnR3YXJlIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oMjg2Mzg1KSldLFsiU2VydmVycyAmIFN5c3RlbXMiLCgpPT50LnQobnVsbCx2b2lkIDAsbigxNTUwOTYpKV0sWyJTZXJ2aWNlcyB0byB0aGUgSGVhbHRoIEluZHVzdHJ5IiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNjU0NDA4KSldLFsiU2V3YWdlIFRyZWF0bWVudCBGYWNpbGl0aWVzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oOTA0MTM5KSldLFsiU2hlbGwgQ29tcGFuaWVzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNDE4NjgpKV0sWyJTaGlwIFBhcnQgTWFudWZhY3R1cmVyIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNTExODM2KSldLFsiU2hpcCBSZXBhaXJpbmcgJiBNYWludGFuYW5jZSIsKCk9PnQudChudWxsLHZvaWQgMCxuKDg5NDg5MSkpXSxbIlNoaXBidWlsZGluZyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDM5OTgzMSkpXSxbIlNpZ25zICYgQWR2ZXJ0aXNpbmcgU3BlY2lhbHR5IFByb2R1Y2VycyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDMyNTA3NykpXSxbIlNpbHZlciBNaW5pbmciLCgpPT50LnQobnVsbCx2b2lkIDAsbigyNTYxMDMpKV0sWyJTbWFydCBHcmlkICYgRWxlY3RyaWNhbCBUcmFuc21pc3Npb24iLCgpPT50LnQobnVsbCx2b2lkIDAsbig1NzMzMTEpKV0sWyJTbWFydCBHcmlkICYgUG93ZXIgRGlzdHJpYnV0aW9uIENvbnN0cnVjdGlvbiIsKCk9PnQudChudWxsLHZvaWQgMCxuKDE4NDI3MCkpXSxbIlNuYWNrIEZvb2QgJiBOb24tY2hvY29sYXRlIENvbmZlY3Rpb25hcnkiLCgpPT50LnQobnVsbCx2b2lkIDAsbig5MDg0NSkpXSxbIlNvY2lhbCBNZWRpYSAmIE5ldHdvcmtpbmciLCgpPT50LnQobnVsbCx2b2lkIDAsbig4MTgyMjIpKV0sWyJTb2Z0IEZ1cm5pc2hpbmcgUmV0YWlsZXJzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oODI0NTc4KSldLFsiU29mdHdhcmUiLCgpPT50LnQobnVsbCx2b2lkIDAsbig1OTcxMDMpKV0sWyJTb3ZlcmVpZ24iLCgpPT50LnQobnVsbCx2b2lkIDAsbig3ODE5MzIpKV0sWyJTcGFjZWNyYWZ0IE1hbnVmYWN0dXJpbmciLCgpPT50LnQobnVsbCx2b2lkIDAsbigzNTk3NjEpKV0sWyJTcGVjaWFsIEZvb2RzICYgV2VsYmVpbmcgUHJvZHVjdHMiLCgpPT50LnQobnVsbCx2b2lkIDAsbig4MjY1NzApKV0sWyJTcGVjaWFsIEZvb2RzICYgV2VsbGJlaW5nIFByb2R1Y3RzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNzA5NjEwKSldLFsiU3BlY2lhbGl6ZWQgQXZpYXRpb24gU2VydmljZXMiLCgpPT50LnQobnVsbCx2b2lkIDAsbigyMTc2MjkpKV0sWyJTcGVjaWFsaXplZCBQcmludGluZyBTZXJ2aWNlcyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDY3ODEyNikpXSxbIlNwZWNpYWxpemVkIFJFSVRzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNzI0NTExKSldLFsiU3BlY2lhbHR5ICYgQWR2YW5jZWQgUGhhcm1hY2V1dGljYWxzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNDM2NTQ5KSldLFsiU3BlY2lhbHR5IENoZW1pY2FscyBXaG9sZXNhbGUiLCgpPT50LnQobnVsbCx2b2lkIDAsbig2NzE3ODYpKV0sWyJTcGVjaWFsdHkgQ2hlbWljYWxzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oMzkwOTY0KSldLFsiU3BlY2lhbHR5IEluc3VyYW5jZSIsKCk9PnQudChudWxsLHZvaWQgMCxuKDIxMTI4NykpXSxbIlNwZWNpYWx0eSBJbnN1cmVycyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDU1NTk3OSkpXSxbIlNwZWNpYWx0eSBNaW5pbmcgJiBNZXRhbHMgV2hvbGVzYWxlIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oMzA1NTQ2KSldLFsiU3BlY2lhbHR5IE1pbmluZyAmIE1ldGFscyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDgxODcwOCkpXSxbIlNwZWNpYWx0eSBTdG9yZXMiLCgpPT50LnQobnVsbCx2b2lkIDAsbigzNTUyODEpKV0sWyJTcGVjaWFsdHkgVGVsZWNvbW11bmljYXRpb25zIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oMzQ1NjUzKSldLFsiU3BvcnRpbmcgJiBPdXRkb29yIEdvb2RzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oOTg1ODk5KSldLFsiU3BvcnRpbmcgR29vZHMgU3RvcmVzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNTQ0NDk0KSldLFsiU3BvcnRzICYgT3V0ZG9vciBGb290d2VhciIsKCk9PnQudChudWxsLHZvaWQgMCxuKDIxMzk4NykpXSxbIlNwb3J0cyAmIE91dGRvb3JzIFJldGFpbGVycyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDM3MjE3MykpXSxbIlNwb3J0c3dlYXIgJiBPdXRkb29ycyBDbG90aGluZyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDY0NjE0NCkpXSxbIlN0YXJjaCwgVmVnZXRhYmxlIEZhdCAmIE9pbCBNYW51ZmFjdHVyaW5nIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oMjkxNDU2KSldLFsiU3RhdGUgQWdlbmN5IiwoKT0+dC50KG51bGwsdm9pZCAwLG4oMTQyMTg4KSldLFsiU3RhdGlvbmFyeSBGdWVsIENlbGxzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNzUxMDc0KSldLFsiU3RlYW0gJiBBaXItQ29uZGl0aW9uaW5nIFN1cHBseSIsKCk9PnQudChudWxsLHZvaWQgMCxuKDQ5ODYzOCkpXSxbIlN0ZWVsIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNTcyNzUzKSldLFsiU3RvcmFnZSBEZXZpY2VzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNzQ2MzMwKSldLFsiU3VnYXIgJiBBcnRpZmljaWFsIFN3ZWV0ZW5lcnMiLCgpPT50LnQobnVsbCx2b2lkIDAsbig4MjYxMDcpKV0sWyJTdWdhcmNhbmUgRmFybWluZyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDMzNjk4OCkpXSxbIlN1cGVybWFya2V0cyAmIENvbnZlbmllbmNlIFN0b3JlcyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDc4MDIyKSldLFsiU3VwcmFuYXRpb25hbCIsKCk9PnQudChudWxsLHZvaWQgMCxuKDc3NDM4NikpXSxbIlN3aXRjaGdlYXIiLCgpPT50LnQobnVsbCx2b2lkIDAsbig3OTYzMDcpKV0sWyJTeW50aGV0aWMgRmFicmljcyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDQ1NTU1MCkpXSxbIlN5c3RlbSBTb2Z0d2FyZSIsKCk9PnQudChudWxsLHZvaWQgMCxuKDU3MTcyNykpXSxbIlRWICYgVmlkZW8iLCgpPT50LnQobnVsbCx2b2lkIDAsbigyMzc3NDgpKV0sWyJUYWJsZXQgJiBOZXRib29rIENvbXB1dGVycyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDY5OTEyMikpXSxbIlRhbm5pbmcgJiBTb2Z0ZW5pbmcgYWdlbnRzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNTk3MzQ4KSldLFsiVGF4aSAmIExpbW91c2luZSIsKCk9PnQudChudWxsLHZvaWQgMCxuKDE4OTQ4KSldLFsiVGVjaG5vbG9neSBDb25zdWx0aW5nICYgT3V0c291cmNpbmcgU2VydmljZXMiLCgpPT50LnQobnVsbCx2b2lkIDAsbig3NjA1MTMpKV0sWyJUZWxlY29tbXVuaWNhdGlvbiBDb25zdHJ1Y3Rpb24iLCgpPT50LnQobnVsbCx2b2lkIDAsbig5MTYxODUpKV0sWyJUZWxlY29tbXVuaWNhdGlvbnMgRXF1aXBtZW50IiwoKT0+dC50KG51bGwsdm9pZCAwLG4oMzg5Njg5KSldLFsiVGVsZWNvbW11bmljYXRpb25zIE5ldHdvcmsgSW5mcmFzdHJ1Y3R1cmUiLCgpPT50LnQobnVsbCx2b2lkIDAsbigxODUxNjQpKV0sWyJUZWxlY29tbXVuaWNhdGlvbnMgUmVzZWxsZXJzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNTczMjY3KSldLFsiVGVsZW1lZGljaW5lIFNlcnZpY2VzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oMjU1ODIwKSldLFsiVGVsZXZpc2lvbiBCcm9hZGNhc3RpbmciLCgpPT50LnQobnVsbCx2b2lkIDAsbig4Mjc5ODApKV0sWyJUZXN0aW5nICYgTWVhc3VyaW5nIEVxdWlwbWVudCIsKCk9PnQudChudWxsLHZvaWQgMCxuKDIyMTM1NSkpXSxbIlRlc3RpbmcgTGFib3JhdG9yaWVzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oOTIxNzg2KSldLFsiVGVzdGluZyBTZXJ2aWNlcyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDQ5MjU3NykpXSxbIlRleHRpbGVzICYgTGVhdGhlciBHb29kcyBXaG9sZXNhbGUiLCgpPT50LnQobnVsbCx2b2lkIDAsbig4MjA2NDcpKV0sWyJUZXh0aWxlcyAmIExlYXRoZXIgR29vZHMiLCgpPT50LnQobnVsbCx2b2lkIDAsbigyMjM2NDQpKV0sWyJUZXh0aWxlcyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDg1MTk5MykpXSxbIlRoZWF0cmVzICYgUGVyZm9ybWluZyBBcnRzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNDE1NDEpKV0sWyJUaGVybWFsIFNvbGFyIFN5c3RlbXMgJiBFcXVpcG1lbnQiLCgpPT50LnQobnVsbCx2b2lkIDAsbigzNTg0MjEpKV0sWyJUaWxlICYgUGF2aW5nIE1hdGVyaWFsIE1hbnVmYWN0dXJpbmciLCgpPT50LnQobnVsbCx2b2lkIDAsbig1ODE1MSkpXSxbIlRpbWJlciBSRUlUcyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDc3NTc1NSkpXSxbIlRpbWJlciBUcmFjdCBPcGVyYXRpb25zIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oMzIwNykpXSxbIlRpcmUgJiBUdWJlIE1hbnVmYWN0dXJlcnMiLCgpPT50LnQobnVsbCx2b2lkIDAsbig5NjAwNTMpKV0sWyJUaXJlIERlYWxlcnMiLCgpPT50LnQobnVsbCx2b2lkIDAsbigxMzUwMzMpKV0sWyJUaXJlIFJldHJlYWRpbmciLCgpPT50LnQobnVsbCx2b2lkIDAsbig1MjYwMDEpKV0sWyJUaXJlcyAmIFJ1YmJlciBQcm9kdWN0cyBXaG9sZXNhbGUiLCgpPT50LnQobnVsbCx2b2lkIDAsbigxNjIxMzMpKV0sWyJUaXJlcyAmIFJ1YmJlciBQcm9kdWN0cyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDI0Mjc3NSkpXSxbIlRvYmFjY28iLCgpPT50LnQobnVsbCx2b2lkIDAsbig0NzI5NzEpKV0sWyJUb29scyAmIEhhcmR3YXJlIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNjQ3MDgzKSldLFsiVG9vbHMgJiBIb3VzZXdhcmVzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oMTE4MDkyKSldLFsiVG95cyAmIEdhbWVzIFJldGFpbGVycyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDE1MjgzMykpXSxbIlRveXMgJiBKdXZlbmlsZSBQcm9kdWN0cyBXaG9sZXNhbGUiLCgpPT50LnQobnVsbCx2b2lkIDAsbig2MjIzMjcpKV0sWyJUb3lzICYgSnV2ZW5pbGUgUHJvZHVjdHMiLCgpPT50LnQobnVsbCx2b2lkIDAsbigzNTc4MDQpKV0sWyJUcmFkZSAmIEJ1c2luZXNzIFB1Ymxpc2hpbmciLCgpPT50LnQobnVsbCx2b2lkIDAsbigzMzg4NjUpKV0sWyJUcmFuc2FjdGlvbiAmIFBheW1lbnQgU2VydmljZXMiLCgpPT50LnQobnVsbCx2b2lkIDAsbig4MTg2MCkpXSxbIlRyYW5zbGF0aW9uICYgSW50ZXJwcmV0YXRpb24gU2VydmljZXMiLCgpPT50LnQobnVsbCx2b2lkIDAsbig1MzMyNjkpKV0sWyJUcmF2ZWwgQWdlbnRzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNTMzNTkxKSldLFsiVHJ1Y2tpbmciLCgpPT50LnQobnVsbCx2b2lkIDAsbig3MjEyMjUpKV0sWyJUcnVja3MvQ29uc3RydWN0aW9uL0Zhcm0gTWFjaGluZXJ5IiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNDIxNjQ3KSldLFsiVHVyYmluZSBNYW51ZmFjdHVyaW5nIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNjg3NzI1KSldLFsiVW5jb252ZW50aW9uYWwgT2lsICYgR2FzIERyaWxsaW5nIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oMTM3ODg4KSldLFsiVW5jb252ZW50aW9uYWwgT2lsICYgR2FzIFByb2R1Y3Rpb24iLCgpPT50LnQobnVsbCx2b2lkIDAsbig2NjE5NzYpKV0sWyJVcmFuaXVtIE1pbmluZyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDEwNzQwNSkpXSxbIlVyYW5pdW0iLCgpPT50LnQobnVsbCx2b2lkIDAsbigzMjMxMzIpKV0sWyJVc2VkIENhciBEZWFsZXJzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNDg3MDA2KSldLFsiVXNlZCBNZXJjaGFuZGlzZSBTdG9yZXMiLCgpPT50LnQobnVsbCx2b2lkIDAsbig1OTI2MjcpKV0sWyJWT0lQIEVxdWlwbWVudCAmIFN5c3RlbXMiLCgpPT50LnQobnVsbCx2b2lkIDAsbigzNzI1MjMpKV0sWyJWT0lQIFNlcnZpY2VzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oMjk4MTEzKSldLFsiVmVnZXRhYmxlLCBGcnVpdCAmIE51dCBGYXJtaW5nIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNjEwNjgwKSldLFsiVmVuZGluZyBNYWNoaW5lIFByb3ZpZGVycyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDI0OTY4NSkpXSxbIlZlbnR1cmUgQ2FwaXRhbCIsKCk9PnQudChudWxsLHZvaWQgMCxuKDM4NjU4NikpXSxbIlZldGVyaW5hcnkgRHJ1Z3MiLCgpPT50LnQobnVsbCx2b2lkIDAsbigxMjY3NCkpXSxbIlZldGVyaW5hcnkgTWVkaWNhbCBFcXVpcG1lbnQgJiBTdXBwbGllcyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDYxOTQ5MCkpXSxbIlZldGVyaW5hcnkgU2VydmljZXMiLCgpPT50LnQobnVsbCx2b2lkIDAsbig3OTEzODQpKV0sWyJXYWxscGFwZXIiLCgpPT50LnQobnVsbCx2b2lkIDAsbig1NTQxNzMpKV0sWyJXYXJlaG91c2luZyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDkwNjM3OSkpXSxbIldhc3RlIE1hbmFnZW1lbnQsIERpc3Bvc2FsICYgUmVjeWNsaW5nIFNlcnZpY2VzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNDkzMzMzKSldLFsiV2FzdGUgdG8gRW5lcmd5IFN5c3RlbXMgJiBFcXVpcG1lbnQiLCgpPT50LnQobnVsbCx2b2lkIDAsbigxMjEzMDEpKV0sWyJXYXRjaGVzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNjMxMDUyKSldLFsiV2F0ZXIgJiBTZXdhZ2UgQ29uc3RydWN0aW9uIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oODYxNjU1KSldLFsiV2F0ZXIgU3VwcGx5ICYgSXJyaWdhdGlvbiBTeXN0ZW1zIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNDM1OTgwKSldLFsiV2F0ZXIgVXRpbGl0aWVzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oMzY5OTQ0KSldLFsiV2F2ZSBQb3dlciBFbmVyZ3kgRXF1aXBtZW50IiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNDA1Nzc5KSldLFsiV2VhbHRoIE1hbmFnZW1lbnQiLCgpPT50LnQobnVsbCx2b2lkIDAsbig3OTU3NykpXSxbIldlbGRpbmcgJiBTb2xkZXJpbmcgRXF1aXBtZW50IiwoKT0+dC50KG51bGwsdm9pZCAwLG4oOTE0ODE2KSldLFsiV2hvbGVzYWxlIERpc3RyaWJ1dG9ycyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDYwOTQ1NSkpXSxbIldpLUZpICYgV2ktTWF4IFByb3ZpZGVycyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDYyODk1KSldLFsiV2luZCBTeXN0ZW1zICYgRXF1aXBtZW50IiwoKT0+dC50KG51bGwsdm9pZCAwLG4oMTk5Nzg4KSldLFsiV2luZXJpZXMiLCgpPT50LnQobnVsbCx2b2lkIDAsbig2MTM2NzUpKV0sWyJXaXJlZCBUZWxlY29tbXVuaWNhdGlvbnMgQ2FycmllcnMiLCgpPT50LnQobnVsbCx2b2lkIDAsbigyNDcxNjUpKV0sWyJXaXJlbGVzcyBUZWxlY29tIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oMTc4MzA1KSldLFsiV2lyZWxlc3MgVGVsZWNvbW11bmljYXRpb25zIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oODUzMTY0KSldLFsiV2lyZWxlc3MgVGVsZWNvbW11bmljYXRpb25zIFNlcnZpY2VzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oMTI1NzQzKSldLFsiV2lyZXMgJiBDYWJsZXMiLCgpPT50LnQobnVsbCx2b2lkIDAsbig4MDA4NDUpKV0sWyJXb21lbidzIEFwcGFyZWwgUmV0YWlsZXJzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNTQxNDA1KSldLFsiV29tZW4ncyBDbG90aGluZyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDUwMzcxMykpXSxbIldvbWVuJ3MgRm9vdHdlYXIiLCgpPT50LnQobnVsbCx2b2lkIDAsbig0MzQwNzcpKV0sWyJXb29kIENvbnRhaW5lciAmIFBhY2thZ2luZyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDUyNDUzOSkpXSxbIldvb2QgUHJvZHVjdCBXaG9sZXNhbGUiLCgpPT50LnQobnVsbCx2b2lkIDAsbigxMDM2NDApKV0sWyJXb29kIFByb2R1Y3RzIiwoKT0+dC50KG51bGwsdm9pZCAwLG4oNzA2MDY1KSldLFsiWWFybiBHb29kcyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDMwOTUyMykpXSxbIlppbmMgT3JlIE1pbmluZyIsKCk9PnQudChudWxsLHZvaWQgMCxuKDk1MDIwNykpXV0pCjtmdW5jdGlvbiB1KGwpe2NvbnN0IGk9by5nZXQobCk7cmV0dXJuIHZvaWQgMCE9PWk/aSgpOmZ1bmN0aW9uKGwpe2NvbnN0IGk9ZS5nZXQobCk7cmV0dXJuIHZvaWQgMCE9PWk/aSgpOmx9KGwpfX19XSk7"}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"fonts.gstatic.com/s/spacemono/v17/i7dMIFZifjKcF5UAWdDRaPpZUFWaHg.woff2","fqdn":"fonts.gstatic.com","domain":"gstatic.com","tld":"com"},"ip":{"addr":"142.250.178.67","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"font","requested_by":"https://digital-assettrade.com/","date":"2026-07-27T10:27:12.716Z","timestamp":1785148032716,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.gstatic.com","organization":""},"issuer":{"commonName":"WE2","organization":"Google Trust Services"},"validity":{"start":"Mon, 29 Jun 2026 08:39:25 GMT","end":"Mon, 21 Sep 2026 08:39:24 GMT"},"fingerprint":{"sha1":"4E:F2:73:C6:27:16:58:35:FE:55:D5:30:6B:E8:6D:2B:DA:B0:E8:7B","sha256":"82:EF:6A:61:96:A5:23:D6:2C:2C:9D:77:67:04:D8:7B:3B:6A:50:DA:3C:6C:6A:5F:4E:2D:55:F3:FC:DA:0B:EE"}}},"request":{"raw":"GET /s/spacemono/v17/i7dMIFZifjKcF5UAWdDRaPpZUFWaHg.woff2 HTTP/1.1\r\nHost: fonts.gstatic.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: application/font-woff2;q=1.0,application/font-woff;q=0.9,*/*;q=0.8\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: identity\r\nOrigin: https://digital-assettrade.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://fonts.googleapis.com/\r\nSec-Fetch-Dest: font\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=5\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccept-ranges: bytes\r\naccess-control-allow-origin: *\r\ncontent-security-policy-report-only: require-trusted-types-for 'script'; report-uri https://csp.withgoogle.com/csp/apps-themes\r\ncross-origin-resource-policy: cross-origin\r\ncross-origin-opener-policy: same-origin; report-to=\"apps-themes\"\r\nreport-to: {\"group\":\"apps-themes\",\"max_age\":2592000,\"endpoints\":[{\"url\":\"https://csp.withgoogle.com/csp/report-to/apps-themes\"}]}\r\ntiming-allow-origin: *\r\ncontent-length: 16724\r\nx-content-type-options: nosniff\r\nserver: sffe\r\nx-xss-protection: 0\r\ndate: Wed, 22 Jul 2026 13:11:35 GMT\r\nexpires: Thu, 22 Jul 2027 13:11:35 GMT\r\ncache-control: public, max-age=31536000\r\nlast-modified: Wed, 25 Jun 2025 16:58:05 GMT\r\ncontent-type: font/woff2\r\nage: 422137\r\nalt-svc: h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":null,"data":{"size":16724,"size_decoded":17537,"mime_type":"font/woff2","magic":"Web Open Font Format (Version 2), TrueType, length 16724, version 1.0","md5":"e5e908997a453e21f2fe41cb72e186d2","sha1":"d0c504bd8f896d39883e0ddfc81c511af526656b","sha256":"2d46bd159b53f55c41167a4f1540a074649464194fd1e416f5b4694a6c0f282c","sha512":"dd6bf730a4b16a50b0977b2d8efe865be0805da41c50aa86d39b4892c79db91f354e91b1a2ce4198e4b58e26752d4e9a06e33e9911e63f2df2e004d610685cd8","ssdeep":"384:ZRyfvfqIrJOZA3s5dQsQLR7JIWapcGsukRYRv5fpD:ZUXfNs5IRQ3zkCZ5fpD","tlshash":"8f72d0b8fe064610c2542fbf06209de1831895fe192e4f24f8aa74ac4f1715e3f117ba","first_seen":"2025-02-19T12:54:04.600022Z","last_seen":"2026-07-27T10:28:13.838968Z","times_seen":2117,"resource_available":false,"data":"d09GMgABAAAAAEFUABEAAAAAoJQAAEDvAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGoFWG4wwHINwBmAAhRAIgRAJnAwRCAqB7mSB0nwLhAgAATYCJAOHfgQgBYQoB4gCDIFWG32PNWybFvO7HQTpZ3e/0UiEbieEqIIfHRmoXZTTUMH/f0pSGUOTytIUQGXOH+JMyw6y+piFpd6HhVWo4hP2NdAxVb6dsih5XNjnl00Wi8ViiR75V+RAB3cofuM7qiOOqvmKBxQp/vuUfPllxQs6+oOkwdtuNfdTuCiDPjLslVFmNtz6F523dpDISk5MJC8kTwx3usNqI6zvy/aNx7R2RgVp8SuMYLU7A9tG/iQnL8Hz6+B/zt0nKZmIUoIzGIUmfkZrj8fTv3tRpUH9aT1n6Ywv2KMGeLf147qXysPxoEJBBEHGYw0Z87EeKjhWISla4sJFmi/Ld1o0runV2dLGtrm9vnVlXb8x1o3drW3/b+rrzNzw3i7AH1KCwCjnvIfBCaIaAPxhCVU0HEqcdexqleb5l3t27v1fWltbErcw8oDSlgUeYBJ4GGIgAT/+/+Oe317n1iT6jeI8ahLgtOeXtt/mm6G2/JAbJnl4BRXD3iGip9NDUVGKVy1F0eD/p/Pzvhl7k7wrJbzAVAbbhQFb+qycVcJ12CojtQsMVZj9ner3d0MmV10tzG07oqnfO1AifhFDtSWxwW2yyiuhPrRn7/EV0asmRN3/zKVOAUiFr/7yjl2ggKfj0VIQ9ItS1tnDeQ9n3U5PCjmln9ysf4MFSIIMJgEGPLpZk3ei0tX/d032tD2Ix/30Ag+S/HYEGYFCDewmTCOkH0k1g9zsf2aNXVjEkwAxiB3PrboO6l9LVz3YAeN+yrZJWyDktF/nPxpRztjOwT8QCMbGrvfK1DKd2SVo3gL3CiDPl+XLmZxHeRNECiJFg95Z7u4MDLEL4IAljgIXPD4JngFA/h3P1AsLgC/QvETe8VV473mylIcAnvcyzoXeZcaHPgmV5IoSa4I0VhCJ4GnsW91ZuTtEUyLE0xrYL/pOEtDVQnEvXSOdkCgNTbfs6K0GEjROXt1JDUtmxqeQdnM87sNfCYN306VLbD8/z+9lrZofFDywByYUoQxFDCFEtJlzr0Pe7jKm9fTk5hQBBwVZiQTUX4bTCVwdaqwO1JMg96ECoVL5U7kboYckkJwcUlJCanbIyQkFCICCpEBp0qFMmVBNzaAWOkFddIG66Qb11AvqYwSU7QeZQn/KlPlbpjxiACEG6Al0BpoB9YAqECXHT/4QiCJ/C5xsk/abzv8o1o9KBNb8pgqgGLvaSO/PwaOpFv+sXkqFBuQ5AYFMWYLno5FJsfBnfyqqCxR4f3w/4QrU1EPZdtNF0mBpIBkKRsfcYTRNAdEwpNS8ECpjI+LOiu7Xpmx/dU64EE5mvtyZ7pBQA1w21XKtGyWC6antQrL3mRf0XNEhI9tkEboLNnzPjxRMd560aGL8pulzjZVaqy0FOUEAoXb3VkaejP0Yzi0XoigaXa6rEMQ3KjmalhcrUYLamuigvyoZUA2oAJSC+SVliNPm7RjGBCVpuV65ElmxGGPoEOtOq4MRfksEl4Hh1PJm44JAoZjgqDJUJOlO+/3dlLpvuV++8sYzD9xyxagRneTVTzlinyGbS4DvDVMbBLyyvM9CI7UeK2KjSHjCjnCYsJCgAJ/iWqYXCmHAympSMDY6CkiRcM1iILLsvigcXRlMqiDPFdQQURvpvy+C9jlR8DE9bCOaLoltXQ7Hh7i6YcNh1PHWgJ96GymAoZLbGbBtacZ7+WAJ7mTxKohyzlmI4aIojhVEI1zSLuMlifkiLxrFnoLx+LCasbdTA0q3EsfHZZeEmn+K61rwDHPcYZBYXLQmAT/hnIUoYhGAO/lYOyx2EtqlwGF1EiWiVJSJZtEiWsVYHL96AwkaaSZjjRJri83E5mKL2Vspj2jojluPcFtfm3UJN0C1jJCEy3vEll/TxDLxhHC6MSSF1itlObtjIUZTTL0wPZNQe+pIUDUhwpgCFQBMhSKelsNH/aaLE9S+4tjvjexlSWAL8Fh0pD5CaD295nIPXE9ECTG3DPFpL8pc3oEYL+qwePEkmpTjZpBssY7YXGwhtlyxdWKQQI/V5oRFfCVfNp6MAF1zvywcBD3rd8lywq152RIB9/CMWTZsbKwUVBN2cEZCSkaL3JZBQlNEMl6/PbGL9y831cB8DSdvuG4a87sUT2HHKIgDKARwXcWRganmAQ72nV/nmm8FjtKV4p1s/rWp9bFzGciYHh2TFUebAhQy84G6RlyYdZUJHKwgFMOogoE8uuRi5kSxCqdBhzGeLfpLHo2rZBogGmr+pXCAsFLYhAGdgJ7DaG5mbjplBb5BqIwaolPXDccA0biFIXuK1yY+JVdGCkZKEQKkwMRgHrBQBbafXtFG/KmvEPgnALiP6l/AwwHx44YDdRCQ40yrABwLF53Gfrh1xqP5ChVjvL2qI2GYoo3u0Z5cNEVTUsry6uVhHuc2e7zEK+wzrtetN/lb93C9cu2+/xzUIYi10X4RR+GpUVRGSe7Yw4M8+qQWedkYqHLEeeR1wP/tZ2Z7+9/P/PfqiwuAL15fzPtiS3i9i19IP3987n9e/uz6Z09FiwfG++h3iGPBFft6mmKPvv6vYxftc8cRb3zjmitOO+uIj3Y6Yadjdtvjuzc+td890WTklNQM3Ljz4MuPUQ08swBBgoUIJYgQKUq0WBccd9FXTqnQSZp0mWqqp74GGmqupVZaa6OdbnroqZc++hpksCGGGuGcF874aYf9XnnqkWceuOEvz2Bu+NKtRMNTn1tvg0rfuO5gYmCdUW5aa5U1DmIRNAkGR0pBT0NLx4cnL95UTOwsrJxsPuMKF0bkEiNQb0niJUiRKFmqDHXVUlsdzTTWRFNZ2uqkvQ666OiLagP1098Aw3Q3nL+usv3mgVFnfey8cz54q+ytvE0RNBRQTWspNIhg4wGNhCVPEJgV8vbp8vPjXvlXEK3dLqgldLUfOU0QZP4o7ZyVp9EeA3MCvLFdIZproB3NwZx8tfgwgvbKDSm8uYQw/shShZIBbyutAR+AW9xJICTO5CBAFg5zcGDNOgcPqndl783MtFEKOWei6G2beMkLhKyPCBMNTtq+hjocJZHLiTM4Zfe1MTMlfWNr92mWwSaVqsdTiwHP7Y6kRuUGRkIG7+CIJXKKXLnjkSqqCf8Oobyv6a6a0h10YQKrwRtZ/Wa3MlV4z3h++KRh03FMLD6+Eoro9jXuQSaJT1iztQX6l0ZDCv9FM6RqzmAZh6mEcIgOo05kZyvgDCYyAF5a4FGhaV1VQdhnpzu+yWjArNhoikVqL6DrciBIdgONsJEcIqhLEIyve2Iky5YS2sBSTGm9mwxzSNNOCLlUDGJDnWDcXjUO0KLQYSE1aPVSVCiwo94pF9dFA8FbsW5Z+VWxLFoIeGJBp+Ij39JcOUaAIq0E3HwjOV3RhgnQ78tDxEMwiSKwxVRAXqdrMmgUxUUDMv+E0tVwnWxTKpLSIumaV/oOQmP7HeWdiMWIYzsBZZy6JIwR1ZOuQzQzy3AcAU5cFNI4vZ2hJjLtJ4jpGKPgDmkwst3fjRuUD5atVqzllc6hI3K5AP/7u3MYKCqBqctsT54J2VTFBBK/xAbBoAlFmpxK1AiUhDFCLsdqKESSRcSbpZhbt1GlHXmCacYjA1k9K3Zu7RhUuohWSxsRaHtDLcQqYGSQOxlbShgT0xPOhoH9TOBNZ3EaO6CezPCXh+/OrOb9dsqreEh4uFT2CVLpTwh6zDyzVsxcbjMCergDCnCZiFLnN5mDLMIF6xaFNtRFog1iDTE05A43g2PUlV3PjDGRQHZlMIpVxeF/N/JYQpqLCE5LIk8gyBc4FAg8CgUBRYKIYkFCiTBCqSCjmaB0DeA0VIUJ59YtUwFy99SQd+zL806rTX1cv1i91qffliHDkgv3IhjtHzseCVMuU2AMK7EKq7EGa7EO67GY5BJU3rlolemwCanNc96eW5V/7NXS7VjDpbry8rE5NiDqU1It9uP8Dl88k6kooD16sGJSChZeLWxsFFVf176RYH3baSqam9wHfQxg4QEyjBO4NkHnU2HzVsHdAyAi/wuPx33VF/IL5BBUUj+MKHArk/cr6AjF7TLH8TUdoMOzN/wEkaP+p1QkE2BPTd9M+LuhWcqT3Var73Bt0hel+m68CpmnALjwrqAyo9Q9Gj3NK0bS2gmvNFEZjqGNsxAVsr2QtLEyCd/XluF4ZHcVn2QlUt7JYTEr7oAqFJhllHsujymPLXOrHv3iVEEQVzNE8XX2TINeEXMrXl7bmGc6SvO458dVMVXpfeEyVHG2Tkc7xtDYwdysxETjed7OJpR3M4LReCGvqDkuVbn85zHRyAyLHqJcjq80XBhQeWoPYHBIpv+SI42KRpwY9/HaFlSyVsqRkX8+oWPQGHXUzLcwdDYLLno5aUzf+/6rj1IS5JK5r3Tyjr19rqMI9kM0Cd98K3ZZrYqlUoq4Vr0t1/w3nnBVLY9/U6Joyxt8Czh1A6ffBs5cyBostWmGL9dkQJIC60N0xwB3mXq9BEQ9fKVTABeVdxdRweNusu8iqgVjcFbf278V/cUMocF6ds2Sx5VeNmEt/qJ7XXDaio52XyUtrHkvB6VMBX7gdR5/PeFJV6/bjYf2wXnY9wgRyDSII1Ife7WTO3qyMXC7TAX1whhFTX+KOzuIZZbxDAlgPWXieSbpxWFCXmaVXp0C2PA6k/TmMCFvs7r3HXYBSKL3haQPR9Ri+kUanIYow9I0OoIZF/OJa0GedpWEwxgxS9IpyCY5NymHMWq20PzjF71nyTiCMYuFhQ52aXKOYNzijocIm8mFTx6g866B7jyc/IHSm0YLgdwUNyxJw5Seg4vL6uX18wLDN7PRW5o3TIuGs+W1ilXFumJTsR0h7RqmfcPZAVZ1rDpVnasuI6Rrw3Rr6Egl7+D4G3+De/AwI0nI5QPLWmkR04KcIcyM/YV91jZFwF9N+El2GRAZAKkQQFQJyn1A5TfI1gdpddB2TxSSV8L080fLCAKNnLDRSpEjpLNcqRW2lAi760am5K0JJqUEE1VRYijqQgslTMVNgVjY3dr504WcLiAcxS9bVlRNQa5OKSoo0jbjWBSUSCpqjBlYukCEbJVEktn8DlFNGI6/k7BIfHj1vslM5ZNs611hkzALN1kbvrWFbTLv++SkXZPsv8WjusRdUA5J7cPQx3EWXpoi6W2w1UGT5P3d/LmstxO93/ofqEnZ4/g6Rfp69vnk/dknSTz0kd533qlaMaZqifval0jp6nxtT/amV5V73e2mqShqMURppUdyDnP3OauyY86ogspm3vSEWnt7zu5B8LTfKFmSKyprvdobu8m8GlEGbWrxiQ5qSEcV6Vj9q/W6ZzdKoGekg9egjqMc1mvlzFRGUygIPRFTt1VKqyVp0wO97mX8kG1SMzalSFWomiI2Xg+kj7xGVVCHp1id9Y+0PnXfo/CcrCaEpfECqfe3itONQ1TiwLbPzeahO/XYGCqfMMEXFPCIGo+NZVzhwLiGsJ0iQV2h4ma8vgnYy3sCkBE60FZUUqOixzu2aWjZUqsmJhoUDT+R/GS1lWz09mDk/EnFbs3U6KzlOovDoIyKZUYd0hH1Dj0dZqnJ1NeKoDwKHvKcKVnkQ/ySNzCN3n3R+YG0vk0N+UE8xPmRL9xNTSVzEhqfsPXUGu10xASW9VWNTR+xywgWGEpiUTNq4OP6HHoTIvPU7iC5HQ/0KS15DcWbe4RGDfcELu/366uDFCzOMOReTmc7sjRCpqWx52MDcWSPcJijHNKl2NLS0yqIYoi5ZOzChthBVzPtUJT+EhSUUhJJ8TpSLIHUGgrN+MhfryF6PQ1EAJK6HInlKbU0PXw19+po1Fn+dqc5K2PpiB31Yw8/rbUKDYfIrdG5xaiGR8u7k83v1Ebnt8j3c2WiPw6zpYndOIhdCOQil+CMVzC1c3aYd3DkNH7JPD97cmifd+EOzNKTE0k6fJY/XPUznizcvEpO4uStLYMQRJbxkjZgEaN1aUgu3dM0uw3QZQOQ2spMS2/XjeIhTY2heiP7PCnAH/KJ6Q24U1vaFPVcGmMjkXDw0KB6UCtIy9OOmWz0GcVfLgG9Sh/fQG+6QBtX3FKUl7vCpl/5kO0Lm/z6X4SztcY1xO9vza//SbJkrrJwbJn2fgcDgfZiqD6ItKkmn/pK+cdoRNc5btdl9D5GLeVJ/JRfmuGkcjotAPe6B3PjEbqGKpXyqroNfTPDHVW0ljDESSwPQU/+hxMusqrhtSpIp7E5MfIyfkimtSFCnAAGmcn8vCH9fTUORFU0y5kNXz3oy59jHc2AmPnKnBQYnuOxqkoIyE5KgQx4DJUS3AXlF646NL+m6mGJm0aoWj9OL2UG7raJjADMS2PgSs5WHfA8IkHv4vjTX7cYZ1OgTnqJ7vv+dSAFkFLr8mhCiYPwzFQSyWn6erCPVjuyfJwkW5quNkWyzop0nrBmbf/zqgAQox1oJCm+v7UKTxOdyx/EusFl/LVMHqZHz2ZcyBU5s6b0FjjPumZIBssIw1lIATPmy2QNuXNg5aZEbemJsdAw6i1prckUlQvFsc5IoDxebnsEowiSnT9YW3z/PEbQxljqDwhUsMo2KsT2LugYqlI0mYqgF2SiPIARZyZkCEsoeO1BelOWpc/RctyBYgUfk2apEgS/kYqwZMXMiuP1uf0ksN+Y3Ox7T5ODL0Qlyvsez+PCE6Z8fubMzzRaQ8OZVQh7S0mI7r/kEscVtmG/w8ZQeEeVjmciBYcF++HfPHGylj1LOz/Z/y6ooPV466Q1rxktjfuZv/2F6ks5Go0CUo7b0UDB9WlB0ML8D5C8EsLR2tmG9+VACg1jFUi2UiFxqnMhivtWoZ8WQvRk5oZ7IWoOCLg1PO+1ABz+kp6PJ46HNqpAjzl9+MiPfxg/iJKCxZ6Cl/q7NWAgSwYJYnmHjtqkBj7hI2haA1VZXmwSyrzvXnIo/RoBlmZE1dMuBE1XQAvthUwkfmMYrxll1E/+x/QEXNrfluFZPxRc4YK/TiiJoZxKyHcoJgrePAdL3ePmEgufClLtBJIf1JTcEoQLXMICqVADe0u5+IuSy/gsRvJ9vovXlzrYLvEMbMALBpw0ilwBeWZjph7WQuNKDRHv2Rze+Zr8+JV0hk3BE30MJWZQhf7WVYiGKkurhojJKLav2Hmh5xfxluq19eKvX7LaTzt4tJEEAlf9guG65YcaA/v8gSMFWTv03L/04MWp+79hLjlwoZQDpxy4tNUBBw588uReRC1RMJWwhnE1R6rLeNFCXvYMFyhAH+IKAdfO0nItpLqGQKcGSSQJRAtQDTCaOqKsDHFd1mYt/r6NsZX9Y5ySW5ohHilkL5F6TYjJhyxnq3nkznrtQbD3a5Vo2HsVsqrNnrj72kNqxV6/68psrOW73Z4i3bcyNuV3hTklXf06LrL/KIRqdH6XyEinuP9vo/YLT0XzmMjkPAndlL/0NpcsLeohoAm9Xr5gdxOOloOK+oW1Rnqv86e7fhTOXWn0i3+ANwWTZOLXzgCLqAjFKZbfaIEhj9yoAOzndpIiLMiwMbkvRQqZkHG8PyEFxjCut25Mv6Smw/4dOcDmPi16d17SWpl69KDWl+fpZTLP2aWipe2drKWihyWu6ExFXlXe0E4ofEfMitaIV8HBb0bAZ4stiyljd8uVv0OIkWZOpLE09VWWEkoqj7ViLtHk0srkoiWktFLKFoSosmP36bfJX7PNcCQRhubBK7drlYksWtGEfkLhRdt72KU7jgcknFicKz6tpAjn3+mWEJrZ3XIP3xreoGgubpb8Uv6/uOJjStf6+DKMqnKixs0TKs9QPDZXJG4//bt7IbP/uzWMpKP5NZAoNlejnqvvwPds3I5v33wIV68M896ApTBkFuPICIIrauprvaABcYkgIZKtB/Pqa2tC6wKwgg/wFXBgRMFKpHwjmRREbNHyRYPzF63EumcvwqAIxBxnmSQVLkx1wgfs2jKnokzCNn9Azpo9X994m9YQm2JroiaKwLjB+CRjFZiUF4yf3tcjc5jt4bmh2ACI+kn8FWzxp/91Ld9D/ofg//biM/Ar+G23erO6NQ61xTFiaHJoBGIc2YpgVFTHzW2txqr1hcOncPVGGIc3rzNJbD7sJg6P4IaNalzN4CcTLbUmY/fkreVId4fFk99m04ddYAQ0Wyz6LNTt/3BzRH9dOYQLqzEvdMymHDEOR+iv6JHhCOMVg4viQyND+B2N8R185HKJ9b3hJiSCiB1i4TvSZnRW7CxDc2j6NJVnOJKedoLeD9z3Qq+9wMAZelq6uHA4YjLh6eOHv+ASg5Qgl/jFMHaHsIGimDaqmkYhbLijNg7HFMyAuiLnLH6sjIi9Px/ofRXj0fmDi9Td6exEVWXOPcIUV71INIPiEu5xZuk+qPHc38RM89+SdRZdWZVxdAIaYlJLjkjb83qYC0vcdFY3PH/QcuDd3UCKu9aX3GsW2VGpiU0dUugJSBfSTxlV94hNV4L0OVUFZnQYQit0Yr+CohRXVhjQpbHzeoUSDsiRCHsFzuFIZGm3kyMxn5SkYC+vlucsTwouxUalYiox/qBBtBQT1j8BVU1yDglT0AaRqIuCCoecqkl69zCIVilkpWqKQJz9GmItYf0YuUVZkrY6dh4uTeOBLEiKK/VE/yzENM1Nj1DM7uxcwwr2hNLBiQ5CSGQqdABavS+kcBe16XXVWnaEAluMetkQi/11aWITNK3CD1bNb9e/NZ3Cf8dPmZgy4qz3FnRejlw26pxGk9ZpvKxOfAE7xunH1p1esGAGNKoLJlthMiacxhJJPoovnXQnfUemKvbU4rN0UoASqCRiLiuBlhUt60ijjOqyCSmoBKVXSpe+/ZV+6ULfMg+Eah+m038VxkoeLPKZ8/AfyzfwalwcQ9RP0evb8pPytG0Bg05lYWVCBtxHp5Kw0oyhdEiEckmdWVbUDJqTPyv7RJhJJVqDDL1TA0okiJclifeSZm4pKIkLCrKLphkNjfbiES9laqTGfLdFUqK0IkzN7fcngIUgaSuZvHXSFKLNqYyiKD6MkyFNrlCnr9LrW/OhAm1rla6mU4+6TaAJWup17mwjaEzvzCK6O3R2588mMN/R3mFC63obE8tmppf/pzv05NgAm8em1n3SM5OeWPZeoyz0HvHCyv+82qhpQPuZoaCl1j+26hT1CMR6dDptawGUb2idqjcYnEIeRMaHcRR6YVemdepRP8nN1OvcnhNI6xQSHWFDOpp8sMAYnqLXSfq50C1SxtEq2ic/jRFSm3Uem9odDzvQIewvqbHPn27L7tS50Bxzi+p0zvKOAhAnalMTs9tM5o4iINfW1mp2WMoFOgetkGsLUR0aqYTZ36gfyixhn0S/KvxWKhkx3ceW9IpBwVrBZWwlla7+GHv1SZZfxGIC67rdcVxjealRvCFjd8YR2eHN0J0/jNMgoVuqzg5UBjV4qkoozcrKNsdIDSzudB5vOlfbNMjChqLYPBXrw+rLmqZwu7hfmupr7AiduWMEMxUq20Q1bReb38mZ04fx2ZQ5RxcCG15B+78D+pacpZyT52D7rgxhHPtmjMt+i0sh36EM5qsGqEueKdcj+h7cP86eTOqklE5cU5Ogjmrv+ieXDcXliBRSL09catfdeOVSGdHeoXe1FYIFrjAye2MiXAAWGgQq2Dqzcp1GsinXsUN41EQ2qhsQvYs2MeHJ9tY8u7nGEvO5ISa3wt7ivfrH2w6MAPa1+b+S7HYdOT2vW0FGbDqyTpGZRXTM0Oe2FYJ52WHM6ATyWo365wC1i9ovezcx3gvb5TLYZlRcPIGjDwA3PhznnTRHpl4gYcntPpx85ROnzTFesekHLyYtgXWciD78fRKGsWCUL7+FQg9sQnH2JH/l+F5CAr8Phv9QbwxjW41ET4VM6qqalolLlRJhMnndm0JgitsJyFS2kgypuYDz5WCbaOEZVjqQTCFZx+aMrcy2Ae7GibJlRBXK4yKqGRPIi1NS+1K4cmHFGw4dT087woZl0rc4ZsAMEKKfWCXU6SoEmgIN4CkteAUJJSVstdcC5Pir/6NnGbsz4BXYiiv4lcPY4Vd06jxM9Q9xQx4snmhX4zSlQKZVouYx+FschRgl5SeXfL+g/TA0Vlyw5HumlPF9+7hOA4XMzhsUnUzV9qfjHlHJrZJSj/8MYV8sLj8KpcSizi+geeID/1kIUtIdF7HHj9J5M0qaBpTe3i3q8ltZqyB5+/orWWsgOyYm9qs9uW6X15tFh/bF0fLPJieRvbmQnB73QQnBQ+cwmRy6VmGmrJ9nY/IQmSx5ZC61GteTPp7JHJ+ePVtEX5CXujZkJGdU/5dqQvDRvyHr9zhYlBlj2oerrQvdmvJ6pTMxp6c8Db6o1trsRmFEgxiaW5G84hajeooGLKtub0n5FmEsoIF1uFhPzJtmNTVa4AhbanIYVfMEkssS7429EsiPX3pyUgVR5D6+psgCmtRTGrSuiojm2NneP08F8WDEHT2KQYdr1EZiSYfB0GCnREClxWE2ozaDdqIwTWN5ELmD55+B7nk0FutkrTxoA5yGjg7XXBnR0apDau3/Zd8OtegQW6PcXIFEWBlq9XcKHxSTA0t1k5XqKQ7QZQi1GHO6FVaDYv+G94Tp1KFFeWO6oXb8m2t/txkbqBSOjOiJaqNMZTpAzkLmfwHtN7ktgM6W3wgbjS8iozrAYuzbfuj3ThYiB3TGsrDMc1z0EYv1kajcJ6FW/wuP/7NeZ1HyeRaVS0W0h7w7IYP1XXrzL72hQpMVtIM2Y0OrMdfZorXUOv7LxcZmLTrD00BcZU1Zv/yU2Cc+Jf80Q+ZKfpOcz4NJP8N/Rz/n/n8A9UYAlx7wuVS+ByhqvziAiBrGjk0gEL5LSGd7AcmoUtLB5s38rX5f4ny0K6tfW88GvQCNTqfRM1Kdz+KmOc9W34ibYmcK2t+aB6SzqxxLF+6CnbD0/Q7D9Dh5SK3t17rZ3tjvEpNvEcGRhESff98lZ5c4biyb8Uwknfw/Wb/gU3G19BeecFOcN3aYSLxG4MXdZzKv8MUXhS7wr3j+CSZ/EvSvv78YSEy6dLAsEteLjtaXzGnoIYAcWX9q9Kf0tO9/iu3vTmOvheG17LTdd2LfeZ5G/zQ65aO4y3GnjNgOGoVCwzfPLkW/4DrsJacmHCAw4tBsiH2OKzkiFp2XVEs/hQ+DfxP4N1ikn5z0Ec9z/wc4e0BE2xQ8BPwHv/BBDj4kyofOrAfV89BmP3Rs5T0y4pftV5v622yvlEoHq+O5nQZUZ+7isDg8mbnzZI6ncbSoSzhwrh/FBHh80/fE0i270lX5rNLvb38R+cL6su1cQln0Taov136yIrwHt0u5di5JAAjgNXK13imBI2qDtr7ZmudqMOiDFkAN+/O1WhqdaezzEXo9oeDL3prfFcI7ZY/CJb7l5AKN5pL/5Zt/i4rpsqtcK4dj5fI4Funm8iwcN4/LsVZOja5poKK/MtwoiiB8mJvRglIbAg1RbZnRtmaG+1cqOnL2SjkbJoWDoWAud4dD4Vw72fEsd9ic8+6sMAv6eHkbC1gyCzosoXEY0P8wrAnTkY6eoXfRxN0wbAp/FeYkDmTPgWt82iXVsdVEPiRUzIZxtiMkN7f6f/cjwQwHGxfwB6x5TXITQdaEsWH7LfFqBkQLRJI0qrnPTE2TaN9pEayASidm7GYBEMDanUGkUwuw7BkDxrEiArqtQNLPk2KX1HGCJZTyRVjnz/utfXmOX9c+bka+ULd5FcEt3ZrDBL4SHjdOXTTGulXyj7pKtm7Bb331ZSt/WTUyNgNL9wagqUtTyXCsqYED7aNT1dTYXTaPCBwZCnSt6u76njbgddC+7+qWN3eI4n11C8XgO5Gxn+jwh8KAR1SVIxFzFkcgNsajUQEqDcAwBqarnlZbVwyX8GdmyjKhuS/HtvFFEkAi4mcuue/Oko/+mNpQmwfqkWwhJEJcBtCLb4qpTVgAVvMBWAW3FOKFftzP+KazZV8LrOMDfN2KMQ+vgY/NPCuP94nEi3kbWkhf2KkAS8GkD8eP/3BB1kOn250F+IDx9ygUGQgqVl6YmJA5bmNXeR2kQtUqK4JIAN+YBOYEKC2e+N4q9w5FUts6tD5Z4USgZyQgARrtJfWyYuNjPu8lr5WN006Fc3PhqVotJ0C0sbR0JY1HM0ml8mVpVJOkW5PlU5FEkOD+Fcg+EfvFn8jkJ8VJ3iTwdXLya9C/8+DFJD65d4g3PpfRIPqeoXovLun3hMzrIlwFCYGhpFQKJTWpMWWAESFcYINswoUII/crkE28ECDC7n31z4Mc9A2a88ApGxC4+HyXQMh3SrdA6OS7hQK+a6mgkXyFXJ1Dq1yRk5jSRXOPn/XrZvb/Cm1qW2tUsdvC+F8GfsZ+pv+y5gx2plN1e0NIxlLNOyeb1fUu0KluqLCusQYsHkLtFIK7JaWwzMfzNbRMjhREg1PzQHPlftZSZY4KyFK4JM2e3NwrQpIt0x26EvvO2siZmZydpZw0so0Ao2GHo+5MG+ncXDvvl0oer/IXnv57Njuaas0nolVGcjhhPDQpZCd4rWZAtARhdZgDiA10F+sSwgng6Oe+NWQcsOUXobGmynl5434mpIc7XgbjiYkPVjnzyvJ6cmkuW0BKlwZsNHR2Xp6lRmIpmd+S0rjflF6mbAwspy8PNCyw8s0jvpaUVZaSoKS8tiZkQA0Bg6G4clJuTmBiERQmU/oZ6dsoFjSAoo9CM36sQXoCPfSegLb0+rz862B+IoVrDQfRg1j7ZjXJqaQ5ITnw++LVq8PVysIAO7w5TN/zfn7+nNnkzs+PzM6hVgdkoywmm81kacGfNp1MvvHYELMGZsbgpr23dH6gFyvyQSkT2zTtBhDTWwhQw+nA75vmDK3PiRPbO03ovMOPlRPPU1nz+w79d6tgZYlJ3Qd4gZqxYP/hfxPwKlXfuSoN6b84rTvmku6M7sW+m1AlcfbFEzhZJnQaDPFwZGT8LU6Hlq9msVYvhz6bemKA48wQ2CRSASLdHK4jwy2VCGzb4xSlFKYzClJSChjphQ7ZV2rneN5pq81V/m7b0Q1Q7YFAfv7A4KWR3MmMzGcEunewr9p2pWF2ORunfYYuHUdVVMzVFs2fp5jP6dUqJCrSZLq6B94GM+AyEC4rOarRuS3aBB8AucaNc0GAL0GLWorXZYm+E1XvIvQQo/Q37OAcVKeycdtSuHtfeAhE8YyP3Zosx7hpqWRGTJ2ZSDR2aWTaICfIcTBJ5WCVMSl+MA4UJVKbUmyxDTTJGwl7BZ/kR8Fsve5hHvjP33VwT/9s1SVI384TPwe1S0IRYg9BFIZcm9wlHz/f5sfPM/au2WAPy3Os55QXOIJTCrX3qR1J0iemXmfjqDYB1bbh9vCwZtUn9VCPk/fCuo9mMTWrWc00W3sVVFBBhTEaKe5RCL55oEJez5B9WHNm79H9bceYCzu0moLYlGtibK6Jc66J9a2RXbeCCnmDl+xjAZa2Ni4xzrfz7Xw7tjtQJKb2sb6+r+/r+/ZDcQ3lblRhWPv+P1tyHddzAzdyEzdzC7dim1/gvuCwbkIgut4aHEYAVm6ioFE3tlEc1MxCmi+ySW6YIJZ3NaLZzNKOoqifDKCfo+NcOVgOz4UcE9D0oiUmVurrN6fb88cfpw7r825jBt74mJf635aruLr94IylQRpzS/WxltBt7XY8cQ3WWK1i51OB3cA1x66BwG7ghOGNbzBhfp5Sz6fG2g3ix5FYbFcElKxfCtIk1JxwXvadwxiPceIluW6kV/l2PhV4jGuWgVQSYmHgDbA3XmM3/CV6vmysxyB+7MU0uyKQm5Vq1L497vz8aSNO10XFJYxuigK/aSaAz2u3QLsLeDvg1EGcXpWcggIkZqROGy5c4gE4BPfcc7Hfena7a9u0xZI33a3Osp2TKdHzphbgJ1sercb6S6p/uX7fjTbgx96FbezJCONA0P16QTg1Vec12Cm3MI+hNSpVtWgAkA7rKWqJ2iNSMyTOK4pHPgF72742rt94ddyffyXDYbCr3tyesQcF0dXTwBzgaZGayAlXELVNRUG5mpsjd3e+Fvz6C4Hz0Nd/tJ13gHgOAlZlPYf0mn1BOt1viMe8DkVM9ArKwjQgxeWrlejYPfzOls+0WMXZERR46YWQGqXDkgBy7swmcgWPW5HNEt+FGtXp5VTc3b0/BmFhioG6hW+wcQm5ews6lkJv+bdYQx7vQ58ak6gmnvEcuFvzo110vED9S1euKEEZQev6o13ePn9oIDVkU8pJO/Z4Nz5IvbcOQWfNqANXspZN1RSxWbNGsWjFpC+J7y5A4qwBXmMdcqwLkShfiZ+DbTPwVBptesP3h+TWV4msyDYsjMX6Pp+LiOcVOSKITx+jZh3DjyEmBN/9cniwXg0dy5M48PRka1QCP+Qv727N2M60KNTrmm1taNjC+OnCvE88lqmGRLA372KfE18ci/S8WlrtmyZeI7Ap5MhOBbrP5oYJTsHzxGRYdQlEGJ1ADjS6+w4qX+XYr+M6sFabJXKfKI3zHJqfQpK7Nz/aueMFLkFYmnLgHFHXDMIz+iA1bYm3B8SolfSV8oqBT8atJCoPssS3TJhR3FQZHzAgeH7OMws2hv6qetJWvOQl9FKtEgg3eh+hRvjRs91t54E1v5rPGgt/EntAk1GDrHQ5SBmsX8sRLtjWZN5kfbFwUGw6TqxbMkCNf2LeOAqqkFok0kT8c2pEbcHdmXFLx8acjsRLHPNo2HI29xGmWi2ZMzcpiUxBr7XUIDORhcMUg0t63+giQ+vylpcucbvWhnSwBlvcyteIoPhY8ECLJEx3nJRIs252hN8G/I0LlwK8Wab9FPa4XtZ9K7h70L2qhId5rzYVhPluUdB655g7YMa6SgmubWlQXlZvm5q4yjxMZSdIdBjriXGv6GAll62t1yfJyc1zIEKPviAJBkzJ/M5tSzcGciRfUlQQsjXxnGzPTQMKQvhA3In7pNYdn+DpwW+CxrUnIW6zDY4Wm3EoedFb35zHfeBBg2aM81ERaaGC4WymgnI2rMn28NI2Xo7ZLArGLgO7fDPukpQjYEO/YJa8rWJRxzxVaFCfdJZpQINFsR5ZlpSmQVl4tFV7MIl5LvVH/OmMhRddCzXqyG2/e6EtVCd6AqFStDbRCYRCiMGkEeW7hYMceKEH7LATlVfMoMy8nluM4h8qnEigc7NyOWbqYFGHsCsgkMeWvYVI2qaLBKOTwF2DyG6ZUtBuLzBJYoIX57hLusB3bcsMZ8/nVvfZRW+etzrZJVIPqP0hEd6dE8HfKVZ60FdIQSEtakHEFJUva4J393rZLIs8fKkeBSdRcj3hQb42swLlakZEZu/AuGUsaRwsy2ViGad5rBN/EFoE0mSQ36/MGXnuVh/1LvOY5tumlgw3bBTClZZROPVuyhHJSgtseLPpkDuNqYcVDzloGrRJdz6kiWDiKoOkPciJa/58fjsZgx622qghqjUyS4plzdQxOI9v1B00FJxbS7BJPQg0r7JoZNL43uZ2uMx0wcC+8ehYfw5wzQw21Y2ihWuGAusb7zdrKhqOgsrmkt/h19Dz9yYQUCCeRLbKIP4g/AJDnEEFTSNZuXRgHMki9NiBwt8iOuUDccW6JArqpMZFRfDZU7WpN6pu9YJTUOPMJVK3CRN81pktiuo1+8k+jmxqRFLnPe60aHOnXAtwERRRXpXTZSRzYnh6gSKnOSsLZffAXoE+8AddtaVIs60pRUukvQUAs3CGvmOSXxlkNBiyYgcSeFt4aQK4jEmf9tCjy2lT0HzsHsy4AMpFHyihpGfUAQYOqVCNVoFr5qNdjVDJEQGn4H1KU/h0yzNz7lcLs22RAQsxHaz6Dh8YTDwxvsl81XqesQRGHDXEixIq13Thp6Pm9SWu15VLy6LwjA3tkIpmjiwsSKrozbvjW59+K9RWRRwA7BZ3kJ93tcjXhisSxuhAtjgippj6ELzDeY2ZzGQwY9jcHC+TdRXjZR2ZIKMnxwPh9IEUgIk1jpZZ0KI58D2eiEUGIPChOsZReQI7KkLwd4F4IcGrbbCh0Q6Z3AqvjYOqa5Tg3obOrJlqCz82G8eiTwxOEeyWLnXrAH5ACZt5f8KRp52ezhJO8VHFSd0kzJK05Dw/60W/tw2tmaKKO2wNKileimwxFrJFSqSuvUWOmkAnDoI+SK/xDmTOMND1XEAlsERT0WCVYrJNY+un4icvrj+t4Iq9KNc7RAI0aIxkHHEKeVHEI3FmlymSsZwDq/YnuyxAdp+7NCcNkBvj4kFIzoFPW9QzBQtXyiTY4rRhAwWcVPjjcUIwNIKdlL2InafmPENDt4oBwA670jXcrPWADpwqKqeFbcaWA8mqPB48Rwnwjk//9D+6vINxOEKbfSzZ2poPYqtz4nXJ1V2LDSlztkzVTpW9h2V7CoLF4Cx7wu1DfgiVHlUTaroFeKHg+XrZZtO+TRA6+cRi0O6rxbwuW+Lake9SQ4+bgm/yE+N7W7XkZ3EOiuNY2E4pGnL1KDweEbJluMbCpuFqEWhBAQItTHuxzC8V0GYu5A6HCkDZd9DHuEVQMKTW4/FusJroy13BLBvb5JjsmoOHxcsH7+UZtkCXN+6SEbaCXGdVATrsSmbnNK8BCrUHD/a09a2hd/xCPJvvGfcNPxV/gRetfyY+m2FA2sG+Mixdp+uG5snZS+AON1F0C9Rb/wI9kwNGWtxoZEZHKVzm5exSZ6ArPVqyavLxSGH6Yfqynpdj2s26Zh83QdzugP0Hi6AwrK8KFThYubPH+GpRGwcgDLQBwAPSjt9WWu/2gktfWsPG8HbgW1Qwzu68Ral35QZKPnapN/3B7lTZMPUIvNVzjvbAtrqUkp2QES70TO7y/KMZwHGBhRbtcQmXN3Z88K/jJpuFs7iG9hkYtoSVEyVcdIHl0OfnYF5tpcL2LJH04KP+PxlcgdfiysFW4OFBsTNRZi8DRckoa2evvs3Tghw4D1+wRei7DjW6h055ytNlsLHRHjfnZOmOGbLcu4/bUag6D4UM6c8ddbLsfHqv7tZVSfCtj+uzzdnQlatqZZnW97oraOH0NJftcubChDN9tV8UdgtfAKJ6mxLOVrqG/v9f4+PkweTZ1R9juc/yj3bd8Xv0DKVRbIql4CasaswWSadD+NiXSaSDBJnhVqV1aXf+xf6eu9GtFt8D9JCFnrixl0StSa8UDfZBaAnXgZNUCTUmiODRm7z51x09tpXyLDJVbWRJmlKFhRdg1HNFB938/Zt0nlprGqBHv2Fml3Srqr/a1pMwNwTHsxYgnW7rRwBALjnKS0fd6GUS54ADx4eGTJPrPIRPQxnF8aUhv25KvJACQ0sL0ctxasNhw1TKkjGNYutS99kF6PB8GYf/DyPGNwy39zGHoFotljqnMdelJ8UCbSh4G9jKNsYiTpgoXsX0cC0dUnPNdi0+HpSzu5hCS3FqXNPt+KQh7J6DFkXXBDbsF2yq5CaRcgHLulniCzUDx949QPKt/2OlqMB2QbB1uGt7e2XMy4ZNG9fSHveMlUh8Sk5Y8f2P4ojg2TGq49q1LarHo7Ym7nEHg8ereoVE0P/A0A+ywJrLsj9VEVFZospJBbeDVnxh8GzRWNLVEhVzDGbNoB6aBj6t2PC1YinhcayQhOPjUKY9undR1yYxwXRuV92K5XGTNHocyNhR/+y0VpjFmOvMWOwCZKllZ+AyIoOR70kFSzZmx/JNgQpxI63E4vzyRFaPpIpVUaIw24rojnXbW8KNaT977/58TXBem9A3OrYIhlSyIjNozI+9qEaw5tUg+N9IQC5Y2XO5Amy9rY9WFEBhVYOg510dY+As2C8Pa9PixJHL0KUXIcz7o3SskREgV18UKUFaW6ygcOEbbB2bWSBSzP4OiE/bzwWLG9Tvn0lcU2SN7Lli9ZQNM76ahb/M9VID0AflrXxsT0Xik2Bx4h9yP5ho/nUwtFMfifDgMzoL31xKqZCKfioaI7B15E6I2Yg+kZ6LW2TDiLx9RIUm5ZAjNBaXuvV2lgFkerG1FemylTppimSuUk+NdFjRGQg33Gsm62IohD6KJlhjJUIV6SrF/5GMD+2RYoyXE6PRrtELBLBWumSae0+ss0Nczydt3KYu5KlnJpE+qwpD8VHTCMVpE0OutJ75xB+cuva9tRCl1B7kvShDdX3HL249jwefBaxQoVnQCREcdhVrSAeixi/H5RCTJuMCFbngfQ/oOJShHkJW06xxUATTv9zsHMwxvHisAVTAV5COt9CWSaxpz4y1kpx+GTiQNwtZAcvgNeGE0620yi1dhMt9XyoszCxrIpPbwECe+qoydW7YRmN9R482uOKrxFcNSw782V/n+lAfp4nzhDMYYfHxHuYWOJf6jDplybkrMuLDq7cZbqVRvAs81fRzEycs4nFayKYmQOGwtH+b30+TMHAdasrUq5PmHNx+2XeSFmvAOsTQLKETQfQOxYqKI4DXeJ2H4QhXR4O3tCWOW2FE9MqvxGLko/dLUxfM0InwVER/nA4dOvCnPAgrh3mSPlsNIwCJ2aoFRRd4BP0Zy2eZ0JW6Nh8+BBH6WyAUll9hQJ765kzDCbsfPR63uMut5EtCVLnjhjS4ADmnwU4AtticmqFkL+9BlYocGCq5wXDZrGGCJZ29XCCYsQULh4LjkGfHOHRZNhraghJQ874QFAzxtcpgbggs3HqKROQKBAUz8MdKKMcAI86nkpmFnSNJSjXFXpiJc3S08EoSxQ/Y92IvzMQ5PoIwHs72RQ2pbU6so1AUEixrpV7tXlccCfBhGw6gfjhtXJREvpuBoLY4LaYC1mys8ceHYWBXrJuO819N+yKnc7vyWDdYhdjpibvA77wRDYzV2F1OhnYzBa2lvoq5EgTUsVLkvdlOyQzcnHIzSKc3KeSUsC77rcl0FxiD6YIzH8xvNajyQQqfbbWa/jtuDdqX89I2jJ/SlkQ90MfGlN6LXmluM+HwN1yXPkD6kLlbBxL+aoZQkx1BenTGYQYQw5ISpffdgkEwo982Wme7QqhQPZ+Wop0cm46S+hIWFhFby58dWARXQGHkCaUF4d7lfUew97o77A/rimVR4LuWsdgb3BS84T2e1tB11T+2KI1dfwFXbTwDoLBEWr18RvaE14DjgaKRwsI7r/76bVqd7Z0dMDjMlbCC4NVUDGxArPXQt2fAeHBEyQErHSltznqVZllagF56NwIHjemLhT3mDIAIrORAX3zFx4LQTgZtJW7oU89MyyXQOBm1HGoC6tIMaIB+WWadKzjI6uP/88nRxpXIcefNwmzGWBMRSrCNNAXia0kufrlBbXgIC9FpcuB0TV/l1ZTPkki1YYg+DmDApoq1PAFTmpLuV2tzScJi3bttbkxX9a8aAeK0QShUhwgnHc+ygKhIVFE9q27fLANZVTo2wY+fz08PtuvVvC9vVbeSyGYOGztcZxkrbODns8vi7wPRzXoZezpB23iL+OGms1t1Igj107U4iY2f5aj+kKLH5RF7CYf7m/Vi3lT3jmTvXm5JvMJnpYSWlag9PQPPDsTmsz0uEUY7WrcBVWdPuhASpxYE+0bNSIoHlrCTKiaKmPNj6O1qbEUvCr8BeIP1kgwhTss0VLeMgN+oq4Zzd+ZqNK+tSIE9MtNsUbpNYbKj3AFVvGTIiab6LI0D37FNYxpyPF4VLOTWA4burX+PGqp1w91yJFz2tA+JoqxbUQR+2wl/AyAFW2UidZrRoK2IJ6fF0BUbtlnNxcrs0a1u5lqC4Dfu2VhBO1eVTjl+gDUhCdtAtQRMkccb7+6GW5061d9Tk5P+6sJR6mZr7G8z45Umt75QS47Enh+ITvlHWE4wwknIs38YNtm1I4nib/kY4nhKcDWrUDg3fbR4pVQicffToWkwc4CbVw2ao44LuXOugVP3fP+AITdjiJl7Ey8llJX9d5HH69g96Lxgy6WgtPL79IwWk5GNjgFaXDRMp43dctMetlZ030LG+Kmy5ZcRFYK2rUILWU/d45QGJpUKP1kx7qmWn8ckHYd4dNYg9DHwfnt1fi+56iadbOnEOwUPqpGojEy892d6i/u3ZzpAgUrFsCpZo94bvagluyX4LV3iqZbKC4Aa1MlZU5aCu2eJNGrZ8HjbXeMvEOAMlYcQRx1dxC/vB8oHjiNpqQrpTJCieOKGEJyAuLSgI0clLRrnZi5Ry8vcBt/mcUthi5sb7Zxnx0oUhDqB3Aj598SpN7y7RVtQyGL7r8TnlAh7TOghg7DO9UNpOl6cuwczlunLyn1PrXfrPDMN38x6uiZb5atBDI8HYa7FbQNy5HFkKP4rkv9APdhtXRqpKK3BzpYn+NITbkm5nRdEBaARRwY9zkphavwtAxAgNQBBfJHQzE18Ycdw7T7O8CFYSuZt55w5V/WBTv/SxKBB4pn++655Kh21bv7f7w/U4dI4VHaS9dPPNE/faNMF/nmClKmb20dhz7UZRX/XLmVbhEjHV0kefjfHI28kTkImH2QiHZlj73nB6r8E8MSXAWDmJpFHFxc70PA/zHJ8eSO5Reh6490bYAz0fLOL7wMmvuDsY1wdz5Z32px1cmGp47v7RTncyansHjTSMxALD9emfG8caUqvaOGlyYbsjEJiuDxyeM+pfFlsr8OMuZf9wkDPtrooZ36v22x5Q+aybTE+IfGnuJL8Jm14r7G5A/w7iTsKJL38gL1tjiUUIeD/kRAI1y5d5T+flmj4i02kfhbFV//jzQFff2tP/e/+fVr+5guxCECAP8M+SLMHuFJGt360Mv3XcVCtz07UwBYQN2kTb1VoIiHj5uiwDI+N8c34tlIVFIlwZtzYb6NWKGIxWxzJdnk0tE0ZQts36SEbLH+zsijUhYRNl4MdXmxXSviykgLzSWB5kxcEEl+nNyu30DrSUHPpgkPTMoSCct5oXKo7E1ew99D8nPhk5JTvS2wvStTrbtdfHkdBmtnm0KFNsZINEEYu2HZdvomlMi9Vq4mbgFGPTDgtQb2hoAFdfzyxiV9BI0NdMHQlWFEF/q2qgguIHIy5HCe4V2DnI3RrK9AOcPVe9yyZzXRdsw2eiAaRQUusjhhEiHbmAft3IFAQKKI7ChaQArgUiLozMqjSiNdRdGeK6OqdaUbb78xoqvGdWb4iucrj2HxD2WkHGiJWqDYg9HfTX/ek9XcM9NVLF4M2pGshqX+wHpq4eSfF611I6A+WasCRq6vmeDDvxdgWL0wIgcAlDu+0v7tOhsmBAXrq5WyA5zTcQovuWnj45KMEi9BVhM783Qb4op63O4rV14Bf4Axxvip6QXmeFovVRxmslx56eukSCf2ReE0N3K0Iz2INDUatt8m72POUcEniAyIDyBv3zh56MYm/v7MQXTLvZ9QGsGU99NUtIdoQOzDEua9fnvRHVJ6+/DpigfB+jAxAA7cSAzdU26eL/RaysevK4Reebm667P/4AgQKctdV11zfTMChh+lO9NBNtZ74wAEHufyj3GbAgT11V53ntGLFifeHUXq5b731189GGTINkOU31MC4+Ab9K/47quuFdsONMEy9vLM1gbdmIyM1NsoYY422yTiHNPFfsWaam6WFlsabaJIJWxjYdFt/ndLOOuvpt0hANxjwz6cP34xBBlnkUIJSlKEcFahEFapRIxmEhGyc8SZ0VoHf/B4UKVJR0aShS8fAjApzWmp+jPagbWG22RXzKbF0kmgcdkQqOYX2OkqU7KoLjjjmuBN22e28CxgyFlIzTTfHbHNNCQu7Dn6KOIcLW9MsDyeVbG/dwjOpYYlOtkoJN0k48cEEhETEvhWJQmOwOHyW6gWf3vrknfc+K7RiqKRKLXENilby38WDV7boqXuu0hCKMwNvbsSeFqzxijYyETZS/i0iI5deSIeepe3l0HPYNXqmruBVMAC0AQCgkC4UcKIAAKQTBb1QACjgBGFZDArlbSn8cdBnPJ/DEY50lKNlmfjivI6Pt7olHVZ+6Wnp2MhHhyChQwgfk1niNwDbxpEYKxlatFBIvzDYERuClMSEzPGxdOR6VmLDlplruuqeZwmiJ5Rsy168uZ2c4y1Yl/X/cMd2YOff45H2wVKBf2R5K/6jwv8bgyZQuW3cQXWhOjl+YvoMnxg8Uay11egeL4/Nn5o6Nnrsw5Yna/+z1UvVuepMdarKSvWIzDCwRrHVI+CJ/Dipl5VL/Hn5h0apcI83lvZZ5IuKTZH22z5npOCP/HfaASq7XV0wxyeP2VPtY8PHii3bkP8jCp8xt5a9q9NTmd8BAAA="}},"time_used":87,"timings":{"blocked":22,"dns":0,"connect":0,"send":0,"wait":63,"receive":2,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/hip3-disclaimer.4f3e3bf9c345c3f3e07a.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:13.814Z","timestamp":1785148033814,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/hip3-disclaimer.4f3e3bf9c345c3f3e07a.js HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:13 GMT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a435fca-602\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Tue, 30 Jun 2026 06:18:50 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.57\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 06/30/2026 11:55:10\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 6ad0a1f5f0241121feacfc2b8c3e1ca9\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":1538,"size_decoded":1517,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (1538), with no line terminators","md5":"ca16eedb4932efab6658de430f67af2a","sha1":"fce9eb628927ab71953c562e3a65fe13ca72be21","sha256":"14234f0a1c16909a4af2c7348f8265146e98794a1c52017555b2d96561ba5459","sha512":"40ed5707b4aab15ea10be9fe2d32430f9597821ea08af6d9bdfbaa33010702af2e601fdfc65223136d87284c27acb6ee7fdb3f1897206295648d507f3a43b779","ssdeep":"","tlshash":"bb31125030b2245c20ac9bea967b6637860091547645e33cb3ee3cec479de1cbeb167b","first_seen":"2026-06-30T14:35:40.516552Z","last_seen":"2026-07-27T12:53:06.200913Z","times_seen":318,"resource_available":true,"data":"InVzZSBzdHJpY3QiOyhzZWxmLndlYnBhY2tDaHVua3RyYWRpbmd2aWV3PXNlbGYud2VicGFja0NodW5rdHJhZGluZ3ZpZXd8fFtdKS5wdXNoKFtbNTk3OV0sezM2MzY1MyhlLHMsbyl7by5kKHMse0hpcDNEaXNjbGFpbWVyOigpPT5hfSk7dmFyIHQ9byg1OTY3MDYpLGw9byg5NTY0MzcpLG49byg5MzA1NjYpO2Z1bmN0aW9uIGkoZSl7bnVsbCE9PWUmJigwLHQuaXNIaXAzU3ltYm9sKShlLnR5cGVzcGVjcykmJihCb29sZWFuKG4uZ2V0Qm9vbCgiaGlwMy5kaXNjbGFpbWVyQWNjZXB0ZWQiKSl8fFByb21pc2UuYWxsKFtvLmUoODcwMDcpLG8uZSg0NjYwKSxvLmUoNDE1MjQpXSkudGhlbihvLmJpbmQobywzMTkwMTEpKS50aGVuKChlPT5lLnNob3dIaXAzRGlzY2xhaW1lckRpYWxvZyh7b25BY2NlcHQ6KCk9Pm4uc2V0VmFsdWUoImhpcDMuZGlzY2xhaW1lckFjY2VwdGVkIiwhMCx7Zm9yY2VGbHVzaDohMH0pfSkpKSl9Y2xhc3MgYXtjb25zdHJ1Y3RvcihlKXt0aGlzLl9zeW1ib2xJbmZvU3Bhd25zPVtdLHRoaXMuX2F0dGFjaGVkTW9kZWw9bnVsbCx0aGlzLl9vbk1vZGVsQ2hhbmdlZD1lPT57dGhpcy5fZGV0YWNoRnJvbU1vZGVsKCksdGhpcy5fYXR0YWNoZWRNb2RlbD1lLG51bGwhPT1lJiYoZS5tb2RlbCgpLmRhdGFTb3VyY2VDb2xsZWN0aW9uQ2hhbmdlZCgpLnN1YnNjcmliZSh0aGlzLHRoaXMuX3N5bmNTeW1ib2xJbmZvU3Bhd25zKSx0aGlzLl9zeW5jU3ltYm9sSW5mb1NwYXducygpKX0sdGhpcy5fc3luY1N5bWJvbEluZm9TcGF3bnM9KCk9PntpZih0aGlzLl9yZWxlYXNlU3ltYm9sSW5mb1NwYXducygpLG51bGw9PT10aGlzLl9hdHRhY2hlZE1vZGVsKXJldHVybjtjb25zdCBlPXRoaXMuX2F0dGFjaGVkTW9kZWwubW9kZWwoKSxzPW5ldyBTZXQoW2UubWFpblNlcmllcygpLC4uLmUuZGF0YVNvdXJjZXMoKS5maWx0ZXIobC5pc0NvbXBhcmVPck92ZXJsYXlTdHVkeSldKTtmb3IoY29uc3QgZSBvZiBzKXtjb25zdCBzPWUuc3ltYm9sSW5mb1dWKCkuc3Bhd25Pd25lcnNoaXAoKTtzLnN1YnNjcmliZShpKSx0aGlzLl9zeW1ib2xJbmZvU3Bhd25zLnB1c2gocyl9fSx0aGlzLl9tb2RlbFdWPWUsdGhpcy5fbW9kZWxXVi5zdWJzY3JpYmUodGhpcy5fb25Nb2RlbENoYW5nZWQse2NhbGxXaXRoTGFzdDohMH0pfWRlc3Ryb3koKXt0aGlzLl9tb2RlbFdWLnVuc3Vic2NyaWJlKHRoaXMuX29uTW9kZWxDaGFuZ2VkKSx0aGlzLl9kZXRhY2hGcm9tTW9kZWwoKSx0aGlzLl9tb2RlbFdWLnJlbGVhc2UoKX1fZGV0YWNoRnJvbU1vZGVsKCl7dGhpcy5fYXR0YWNoZWRNb2RlbD8ubW9kZWwoKS5kYXRhU291cmNlQ29sbGVjdGlvbkNoYW5nZWQoKS51bnN1YnNjcmliZSh0aGlzLHRoaXMuX3N5bmNTeW1ib2xJbmZvU3Bhd25zKSx0aGlzLl9yZWxlYXNlU3ltYm9sSW5mb1NwYXducygpLHRoaXMuX2F0dGFjaGVkTW9kZWw9bnVsbH1fcmVsZWFzZVN5bWJvbEluZm9TcGF3bnMoKXt0aGlzLl9zeW1ib2xJbmZvU3Bhd25zLmZvckVhY2goKGU9PmUucmVsZWFzZSgpKSksdGhpcy5fc3ltYm9sSW5mb1NwYXducy5sZW5ndGg9MH19fX1dKTs="}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/97558.94bb0c2643d74eb6f8a9.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.167Z","timestamp":1785148034167,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/97558.94bb0c2643d74eb6f8a9.js HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a5dbd31-6018\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Mon, 20 Jul 2026 06:16:17 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/20/2026 11:21:48\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 1415820e58dc165aaf104f798a2f23dd\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":24600,"size_decoded":7957,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (3071)","md5":"d746cbb1cbb3033c0484bc6acc81a55f","sha1":"25835aa4b4538d7962fa37c481b6f7bfcda4defb","sha256":"32489cc5023595f6e286bacc217f9666840467c5cb7f6a71e6fb993778a0f9f6","sha512":"88e18428248f514fce026ba9332b9229d8c5a25977939e792b749ec42051dc847c18d6dcc6d9880fff271e42f1b5e048da19ecc06a555fd9b1e0b749752b605e","ssdeep":"768:ncRuzQtjfXqCO3EDR9kE9OO4f5B1i/RHUFLqhBRso7HiqZEFhSoO0JJyERE+wOjb:nPanOeH9TO+eFNrWJfeZP","tlshash":"83b29612655d58eb97f207a3ad70284bd2339da71b0fad54309d44df3cae821227eb71","first_seen":"2026-07-20T16:56:18.378997Z","last_seen":"2026-07-27T12:48:39.853984Z","times_seen":90,"resource_available":true,"data":"InVzZSBzdHJpY3QiOyhzZWxmLndlYnBhY2tDaHVua3RyYWRpbmd2aWV3PXNlbGYud2VicGFja0NodW5rdHJhZGluZ3ZpZXd8fFtdKS5wdXNoKFtbOTc1NThdLHs5NjA0NjQoZSx0LG4pe3ZhciBpO24uZCh0LHtNYXJrTG9jYXRpb246KCk9Pml9KSxmdW5jdGlvbihlKXtlLkFib3ZlQmFyPSJBYm92ZUJhciIsZS5CZWxvd0Jhcj0iQmVsb3dCYXIiLGUuVG9wPSJUb3AiLGUuQm90dG9tPSJCb3R0b20iLGUuUmlnaHQ9IlJpZ2h0IixlLkxlZnQ9IkxlZnQiLGUuQWJzb2x1dGU9IkFic29sdXRlIixlLkFic29sdXRlVXA9IkFic29sdXRlVXAiLGUuQWJzb2x1dGVEb3duPSJBYnNvbHV0ZURvd24ifShpfHwoaT17fSkpfSw1MTI0MzcoZSx0LG4pe24uZCh0LHtUZXh0SW1hZ2VDYWNoZXNDb250YWluZXI6KCk9PmR9KTt2YXIgaSxvPW4oMTM4NjM4KSxyPW4oMTQxNjUpLHM9big1OTA4OTQpOyFmdW5jdGlvbihlKXtlLkxlZnQ9ImxlZnQiLGUuQ2VudGVyPSJjZW50ZXIiLGUuUmlnaHQ9InJpZ2h0In0oaXx8KGk9e30pKTt2YXIgYT1uKDkxODc3OSksaD1uKDE1MTIxKTtjb25zdCBsPSgwLGguY3JlYXRlRGlzY29ubmVjdGVkQ2FudmFzKShkb2N1bWVudCwoMCxhLnNpemUpKHt3aWR0aDowLGhlaWdodDowfSksMSk7Y2xhc3MgY3tjb25zdHJ1Y3RvcihlLHQsbixpLHIsYT0iY2VudGVyIixoPTApe3RoaXMuX2xpbmVzPWUuc3BsaXQoL1teXFNcclxuXSooPzpcclxufFxyfFxuKS8pLHRoaXMuX2ZvbnQ9ZnVuY3Rpb24oZSx0LG4saSl7cmV0dXJuKDAscy5tYWtlRm9udCkoaSxuLGAke2U/ImJvbGQgIjoiIn0ke3Q/Iml0YWxpYyAiOiIifWApfSh0LG4saSxyKSx0aGlzLl9mb250U2l6ZT1yLHRoaXMuX3ZlcnRpY2FsUGFkZGluZz1+fihyLzYpLHRoaXMuX3RleHRBbGlnbj1hLHRoaXMuX2xpbmVTcGFjaW5nPWg7Y29uc3QgYz0oMCxvLmVuc3VyZU5vdE51bGwpKGwuZ2V0Q29udGV4dCgiMmQiKSk7Yy5mb250PXRoaXMuX2ZvbnQsYy50ZXh0QmFzZWxpbmU9InRvcCI7bGV0IGQ9MDtmb3IobGV0IGU9MDtlPHRoaXMuX2xpbmVzLmxlbmd0aDsrK2Upe2NvbnN0IHQ9dGhpcy5fbGluZXNbZV0sbj1jLm1lYXN1cmVUZXh0KHQpLndpZHRoO2Q9TWF0aC5tYXgoZCxuKX10aGlzLnRleHRJbWFnZVdpZHRoPWQrMSx0aGlzLnRleHRJbWFnZUhlaWdodD10aGlzLl9saW5lcy5sZW5ndGgqcisodGhpcy5fbGluZXMubGVuZ3RoLTEpKnRoaXMuX2xpbmVTcGFjaW5nK3RoaXMuX3ZlcnRpY2FsUGFkZGluZ31wYWludFRvKGUsdCl7Y29uc3R7Y29udGV4dDpuLGhvcml6b250YWxQaXhlbFJhdGlvOmksdmVydGljYWxQaXhlbFJhdGlvOm99PWU7bi5zYXZlKCk7Y29uc3Qgcj10LmxvY2F0aW9uO24udHJhbnNsYXRlKE1hdGgucm91bmQoZnVuY3Rpb24oZSx0LG4pe2xldCBpPWU7c3dpdGNoKHQpe2Nhc2UibGVmdCI6YnJlYWs7Y2FzZSJyaWdodCI6aS09bjticmVhaztjYXNlImNlbnRlciI6aS09bi8yfXJldHVybiBNYXRoLnJvdW5kKGkpfShyLngsci5ob3J6QWxpZ24sdGhpcy50ZXh0SW1hZ2VXaWR0aCkqaSksTWF0aC5yb3VuZChmdW5jdGlvbihlLHQsbil7bGV0IGk9ZTtzd2l0Y2godCl7Y2FzZSJ0b3AiOmJyZWFrO2Nhc2UiYm90dG9tIjppLT1uO2JyZWFrO2Nhc2UibWlkZGxlIjppLT1uLzJ9cmV0dXJuIE1hdGgucm91bmQoaSl9KHIueSxyLnZlcnRBbGlnbix0aGlzLnRleHRJbWFnZUhlaWdodCkqbykpO2NvbnN0IHM9dC5zdHlsZTtsZXQgYTtzd2l0Y2gobi50ZXh0QmFzZWxpbmU9InRvcCIsbi5mb250PXRoaXMuX2ZvbnQsbi5saW5lSm9pbj0icm91bmQiLG4uZmlsbFN0eWxlPXMuZmlsbFN0eWxlLHMuc3Ryb2tlU3R5bGUmJihuLnN0cm9rZVN0eWxlPXMuc3Ryb2tlU3R5bGUpLHMubGluZVdpZHRoJiYobi5saW5lV2lkdGg9cy5saW5lV2lkdGgpLHRoaXMuX3RleHRBbGlnbil7Y2FzZSJsZWZ0IjphPTAsbi50ZXh0QWxpZ249ImxlZnQiO2JyZWFrO2Nhc2UicmlnaHQiOmE9dGhpcy50ZXh0SW1hZ2VXaWR0aC0xLG4udGV4dEFsaWduPSJyaWdodCI7YnJlYWs7ZGVmYXVsdDphPXRoaXMudGV4dEltYWdlV2lkdGgvMixuLnRleHRBbGlnbj0iY2VudGVyIn1sZXQgbD10aGlzLl92ZXJ0aWNhbFBhZGRpbmc7KDAsaC5kcmF3U2NhbGVkKShuLGksbywoKCk9Pntmb3IoY29uc3QgZSBvZiB0aGlzLl9saW5lcylzLnN0cm9rZVN0eWxlJiZuLnN0cm9rZVRleHQoZSxhLGwpLG4uZmlsbFRleHQoZSxhLGwpLGwrPXRoaXMuX2ZvbnRTaXplLGwrPXRoaXMuX2xpbmVTcGFjaW5nfSkpLG4ucmVzdG9yZSgpfX1jbGFzcyBkIGV4dGVuZHMgci5BYnN0cmFjdE1hcENvbnRhaW5lcntjb25zdHJ1Y3RvcihlKXtzdXBlcigpLHRoaXMuX21heFNpemU9ZSx0aGlzLl9rZXlzUXVldWU9W119Z2V0KGUpe2NvbnN0e2ZvbnRTaXplOnQsdGV4dDpuLGFsaWduOmksZm9udDpvLGJvbGQ6YSxpdGFsaWM6aCxsaW5lU3BhY2luZzpsPTB9PWU7aWYoIW58fCF0fHwhaSlyZXR1cm4gbnVsbDtjb25zdCBkPSgwLHMubWFrZUZvbnQpKHQsbyxoPyJpdGFsaWMiOiIiLGE/ImJvbGQiOiIiKSxmPSgwLHIuZ2V0RGVmYXVsdDMpKHRoaXMuX21hcCxsLGksZCxuZXcgTWFwKTtsZXQgZz1mLmdldChuKTtyZXR1cm4gdm9pZCAwIT09Z3x8KHRoaXMuX3NpemU+PXRoaXMuX21heFNpemU/dGhpcy5fZGVsZXRlRmlyc3RLZXkoKTorK3RoaXMuX3NpemUsdGhpcy5fa2V5c1F1ZXVlLnB1c2goW2QsaSxsLG5dKSxnPW5ldyBjKG4sYSxoLG8sdCxpLGwpLGYuc2V0KG4sZykpLGd9X2RlbGV0ZUZpcnN0S2V5KCl7Y29uc3QgZT10aGlzLl9rZXlzUXVldWUuc2hpZnQoKSxbdCxuLGkscl09ZSxzPSgwLG8uZW5zdXJlRGVmaW5lZCkodGhpcy5fbWFwLmdldChpKSksYT0oMCxvLmVuc3VyZURlZmluZWQpKHMuZ2V0KG4pKSxoPSgwLG8uZW5zdXJlRGVmaW5lZCkoYS5nZXQodCkpO2guZGVsZXRlKHIpLDA9PT1oLnNpemUmJmEuZGVsZXRlKHQpLDA9PT1hLnNpemUmJnMuZGVsZXRlKG4pLDA9PT1zLnNpemUmJnRoaXMuX21hcC5kZWxldGUoaSl9fX0sMjkzNDE4KGUsdCxuKXtuLmQodCx7Y29udmVydFBvaW50c1RvU2NyZWVuRGltZW5zaW9uOigpPT5hLGRvZXNJdGVtQWZmZWN0VmlzaWJsZVJhbmdlOigpPT5oLAppc0V4dGVuZEluU2FtZURpcmVjdGlvbjooKT0+c30pO3ZhciBpPW4oMTM4NjM4KSxvPW4oMTc5Njc0KTtmdW5jdGlvbiByKGUsdCl7cmV0dXJuIGU9PT1vLkR3Z0V4dGVuZC5Ob25lP3Q6dD09PW8uRHdnRXh0ZW5kLk5vbmU/ZTplPT09by5Ed2dFeHRlbmQuQm90aHx8dD09PW8uRHdnRXh0ZW5kLkJvdGg/by5Ed2dFeHRlbmQuQm90aDplPT09dD90Om8uRHdnRXh0ZW5kLkJvdGh9ZnVuY3Rpb24gcyhlLHQpe3JldHVybiBlPT09by5Ed2dFeHRlbmQuQm90aHx8ZT09PXR9ZnVuY3Rpb24gYShlLHQsbixzLGEsaCxsLGMsZCxmKXtsZXQgZyx4O2lmKG51bGw9PT1lJiZudWxsPT09bil7aWYoYSE9PW8uRHdnRXh0ZW5kLlJpZ2h0JiZhIT09by5Ed2dFeHRlbmQuQm90aClyZXR1cm4gbnVsbDthPW8uRHdnRXh0ZW5kLkJvdGgsZz0wLHg9Y31lbHNlIG51bGw9PT1lPyhnPWwuaW5kZXhUb0Nvb3JkaW5hdGUoKDAsaS5lbnN1cmVOb3ROdWxsKShuKS0xKSxhPXIoYSxvLkR3Z0V4dGVuZC5MZWZ0KSk6Zz1sLmluZGV4VG9Db29yZGluYXRlKGUpLG51bGw9PT1uPyh4PWwuaW5kZXhUb0Nvb3JkaW5hdGUoKDAsaS5lbnN1cmVOb3ROdWxsKShlKS0xKSxhPXIoYSxvLkR3Z0V4dGVuZC5SaWdodCkpOng9bC5pbmRleFRvQ29vcmRpbmF0ZShuKTtjb25zdCB1PWcsXz1oLnByaWNlVG9Db29yZGluYXRlKHQsZCksdz14LHA9aC5wcmljZVRvQ29vcmRpbmF0ZShzLGQpO3JldHVybiB2b2lkIDAhPT1mPyhmLngxPXUsZi55MT1fLGYueDI9dyxmLnkyPXAsZi5leHRlbmQ9YSxmKTp7eDE6dSx5MTpfLHgyOncseTI6cCxleHRlbmQ6YX19ZnVuY3Rpb24gaChlLHQsbixpLHIpe2xldCBzPSExO3N3aXRjaChuKXtjYXNlIG8uRHdnRXh0ZW5kLkJvdGg6cz0hMDticmVhaztjYXNlIG8uRHdnRXh0ZW5kLlJpZ2h0OnM9bnVsbD09PXR8fG51bGw9PT1lfHxlPD1yO2JyZWFrO2Nhc2Ugby5Ed2dFeHRlbmQuTGVmdDpzPW51bGw9PT10fHx0Pj1pO2JyZWFrO2RlZmF1bHQ6bnVsbCE9PWUmJm51bGwhPT10P3M9KGU+PWl8fHQ+PWkpJiYoZTw9cnx8dDw9cik6bnVsbCE9PWUmJm51bGw9PT10P3M9ZTw9cjpudWxsPT09ZSYmbnVsbCE9PXQmJihzPXQ+PWkpfXJldHVybiBzfX0sNDc3Mzg4KGUsdCxuKXtuLmQodCx7RHdnTGFiZWxQYW5lVmlld0NvbnN0YW50czooKT0+aSxjYWxjdWxhdGVEd2dMYWJlbHNNYXJnaW5zOigpPT5hLGNhbGN1bGF0ZUxhYmVsSGVpZ2h0OigpPT5zfSk7dmFyIGksbz1uKDU4OTUxMSkscj1uKDU0ODU2MCk7ZnVuY3Rpb24gcyhlLHQsbil7bGV0IHI9bjtzd2l0Y2godCl7Y2FzZSBvLlBsb3RTeW1ib2xTaXplLlRpbnk6cj0uNiplO2JyZWFrO2Nhc2Ugby5QbG90U3ltYm9sU2l6ZS5TbWFsbDpyPS44KmU7YnJlYWs7Y2FzZSBvLlBsb3RTeW1ib2xTaXplLk5vcm1hbDpyPWU7YnJlYWs7Y2FzZSBvLlBsb3RTeW1ib2xTaXplLkxhcmdlOnI9MS41KmU7YnJlYWs7Y2FzZSBvLlBsb3RTeW1ib2xTaXplLkh1Z2U6cj0yKmU7YnJlYWs7ZGVmYXVsdDoibnVtYmVyIj09dHlwZW9mIHQmJnQ+MCYmKHI9dC9pLkZPTlRfU0laRV9NVUxUKX1yZXR1cm4gcn1mdW5jdGlvbiBhKGUsdCxuKXtjb25zdCBvPWUubW9kZWwoKS50aW1lU2NhbGUoKS5iYXJTcGFjaW5nKCksYT1NYXRoLnJvdW5kKG8qaS5BVVRPX1NJWkVfTVVMVCksaD1zKGkuTk9STUFMX1NJWkUsdC5zaXplLGEpKmkuU0hBUEVfSEVJR0hUX01VTFQsbD1NYXRoLnJvdW5kKGgvMik7c3dpdGNoKHQuc3R5bGUpe2Nhc2Ugci5Ed2dMYWJlbFN0eWxlLkxhYmVsVXA6Y2FzZSByLkR3Z0xhYmVsU3R5bGUuTGFiZWxMZWZ0VXA6Y2FzZSByLkR3Z0xhYmVsU3R5bGUuTGFiZWxSaWdodFVwOnJldHVybntib3R0b21QaXhlbE1hcmdpbjpsLHRvcFBpeGVsTWFyZ2luOjB9O2Nhc2Ugci5Ed2dMYWJlbFN0eWxlLkxhYmVsRG93bjpjYXNlIHIuRHdnTGFiZWxTdHlsZS5MYWJlbExlZnREb3duOmNhc2Ugci5Ed2dMYWJlbFN0eWxlLkxhYmVsUmlnaHREb3duOnJldHVybntib3R0b21QaXhlbE1hcmdpbjowLHRvcFBpeGVsTWFyZ2luOmx9O2Nhc2Ugci5Ed2dMYWJlbFN0eWxlLkxhYmVsTGVmdDpjYXNlIHIuRHdnTGFiZWxTdHlsZS5MYWJlbFJpZ2h0OmNhc2Ugci5Ed2dMYWJlbFN0eWxlLkxhYmVsQ2VudGVyOnJldHVybntib3R0b21QaXhlbE1hcmdpbjpsLHRvcFBpeGVsTWFyZ2luOmx9fXJldHVybntib3R0b21QaXhlbE1hcmdpbjowLHRvcFBpeGVsTWFyZ2luOjB9fSFmdW5jdGlvbihlKXtlLk5PUk1BTF9TSVpFPTUwLGUuQVVUT19TSVpFX01VTFQ9MSxlLlNIQVBFX0hFSUdIVF9NVUxUPS41LGUuU0hBUEVfV0lEVEhfTVVMVD0uNixlLkZPTlRfU0laRV9NVUxUPS4yNH0oaXx8KGk9e30pKX0sODc0MTM1KGUsdCxuKXtuLmQodCx7UGFuZVJlbmRlcmVyQWJzdHJhY3RGaWxsU3Ryb2tlU2hhcGU6KCk9PncsUGFuZVJlbmRlcmVyQWJzdHJhY3RTaGFwZTooKT0+dSxQYW5lUmVuZGVyZXJBYnN0cmFjdFN0cm9rZVNoYXBlOigpPT5ffSk7dmFyIGksbz1uKDEzODYzOCkscj1uKDczNjUzMSkscz1uKDc2ODMwNSksYT1uKDYwMTg0MSksaD1uKDg4NDI4KSxsPW4oNzYzKSxjPW4oNTEyNDM3KSxkPW4oOTI2MTQ5KSxmPW4oOTM0MzA1KSxnPW4oMTUxMjEpLHg9bigzMTg5NzQpOyFmdW5jdGlvbihlKXtlLlRyYW5zcGFyZW50PSJyZ2JhKDAsIDAsIDAsIDApIn0oaXx8KGk9e30pKTtjbGFzcyB1IGV4dGVuZHMgZi5CaXRtYXBDb29yZGluYXRlc1BhbmVSZW5kZXJlcntjb25zdHJ1Y3RvcihlLHQ9e3NraXBSZW5kZXJpbmdPcHRpbWl6YXRpb25zOiExfSl7c3VwZXIoKSx0aGlzLl9pdGVtcz1bXSx0aGlzLl9iYXJTcGFjaW5nPTAsdGhpcy5fdmVydE9mZnNldD0wLHRoaXMuX3RleHRDYWNoZT10LnRleHRDYWNoZXx8bmV3IGMuVGV4dEltYWdlQ2FjaGVzQ29udGFpbmVyKDVlMyksdGhpcy5fZHJhd09wZXJhdGlvbj10LnNraXBSZW5kZXJpbmdPcHRpbWl6YXRpb25zP3RoaXMuX2RyYXdXaXRob3V0T3B0aW1pemF0aW9ucy5iaW5kKHRoaXMpOnRoaXMuX2RyYXdXaXRoT3B0aW1pemF0aW9ucy5iaW5kKHRoaXMpLG51bGwhPT1lJiZ0aGlzLnNldERhdGEoZSl9aGl0VGVzdChlKXtjb25zdCB0PWwuSGl0VGFyZ2V0LlJlZ3VsYXI7bGV0IG49bnVsbAo7Zm9yKGNvbnN0IGkgb2YgdGhpcy5faXRlbXMpe2lmKCFpKWNvbnRpbnVlO2NvbnN0IG89dGhpcy5fY2FsY0JvdW5kaW5nQm94KGkpO2lmKG8mJigwLHMucG9pbnRJbkJveCkoZSxvKSl7Y29uc3QgZT17dG9vbHRpcDp0aGlzLl9nZXRUb29sdGlwKGksbyl9O249bmV3IGwuSGl0VGVzdFJlc3VsdCh0LGUpfX1yZXR1cm4gbn1zZXREYXRhKGUpe2lmKHRoaXMuX2hlaWdodD12b2lkIDAhPT1lLmhlaWdodD9lLmhlaWdodDplLndpZHRoLHRoaXMuX3dpZHRoPXZvaWQgMCE9PWUud2lkdGg/ZS53aWR0aDplLmhlaWdodCx0aGlzLl9jb2xvcj1lLmNvbG9yLHRoaXMuX2JvcmRlckNvbG9yPWUuYm9yZGVyQ29sb3IsdGhpcy5fdmVydE9mZnNldD1lLnZlcnRPZmZzZXR8fDAsZS50ZXh0JiYodGhpcy5fdGV4dD1lLnRleHQsdGhpcy5fZm9udFNpemU9ZS5mb250U2l6ZSx0aGlzLl9saW5lU3BhY2luZz1lLmxpbmVTcGFjaW5nLHRoaXMuX3RleHRDb2xvcj1lLnRleHRDb2xvcix0aGlzLl90ZXh0QWxpZ249ZS50ZXh0QWxpZ258fCJjZW50ZXIiKSx2b2lkIDAhPT1lLml0ZW1zJiZ2b2lkIDAhPT1lLmJhclNwYWNpbmcpe2NvbnN0IHQ9ZS52aXNpYmxlSXRlbXNSYW5nZT8uc3RhcnRJdGVtSW5kZXg/PzAsbj1lLnZpc2libGVJdGVtc1JhbmdlPy5lbmRJdGVtSW5kZXg/P2UuaXRlbXMubGVuZ3RoO3RoaXMuc2V0SXRlbXMobj50P2UuaXRlbXMuc2xpY2UodCxuKTpbXSxlLmJhclNwYWNpbmcpfX1zZXRJdGVtcyhlLHQpe3RoaXMuX3NldEJhc2VEYXRhKGUsdCl9X2RyYXdJbXBsKGUpe3RoaXMuX3ByZURyYXdJbml0KCksdGhpcy5fZHJhd09wZXJhdGlvbihlKX1fY2FsY0JvdW5kaW5nQm94KGUpe2NvbnN0IHQ9ZS52ZXJ0T2Zmc2V0LG49dGhpcy5fZ2V0VGV4dENhY2hlKGUpO2lmKCFuKXJldHVybjtjb25zdCBpPW4udGV4dEltYWdlV2lkdGgsbz1uLnRleHRJbWFnZUhlaWdodCxzPWkvMixhPWUueSt0K2UudGV4dFZlcnRPZmZzZXQsaD10PjA/MDotbyxsPXQ+MD9vOjAsYz1uZXcgci5Qb2ludChlLmNlbnRlci1zLGEraCksZD1uZXcgci5Qb2ludChlLmNlbnRlcitzLGErbCk7cmV0dXJuKDAsci5ib3gpKGMsZCl9X3VuaW9uQm94KGUsdCl7Y29uc3Qgbj1NYXRoLm1pbihlLm1pbi54LHQubWluLngpLGk9TWF0aC5tYXgoZS5tYXgueCx0Lm1heC54KSxvPU1hdGgubWluKGUubWluLnksdC5taW4ueSkscz1NYXRoLm1heChlLm1heC55LHQubWF4LnkpLGE9bmV3IHIuUG9pbnQobixvKSxoPW5ldyByLlBvaW50KGkscyk7cmV0dXJuKDAsci5ib3gpKGEsaCl9X2dldFRvb2x0aXAoZSx0KXtpZihlLnRvb2x0aXApcmV0dXJue2NvbnRlbnQ6e3R5cGU6InRleHQiLGRhdGE6ZS50b29sdGlwfSx0b29sdGlwRGVsYXk6MjAwLGV4dGVuZE1hcmdpbjohMCxyZWN0Ont4OnQubWluLngseTp0Lm1pbi55LHc6TWF0aC5hYnModC5tYXgueC10Lm1pbi54KSxoOk1hdGguYWJzKHQubWF4LnktdC5taW4ueSl9fX1fc2V0QmFzZURhdGEoZSx0KXt0aGlzLl9pdGVtcy5sZW5ndGg9MCx0aGlzLl9iYXJTcGFjaW5nPXQ7Zm9yKGNvbnN0IHQgb2YgZSl7aWYoKDAsYS5pc05hTikodC55KSljb250aW51ZTtjb25zdCBlPXZvaWQgMD09PXQud2lkdGg/KDAsby5lbnN1cmVEZWZpbmVkKSh0aGlzLl93aWR0aCk6dC53aWR0aCxuPXZvaWQgMD09PXQuaGVpZ2h0PygwLG8uZW5zdXJlRGVmaW5lZCkodGhpcy5faGVpZ2h0KTp0LmhlaWdodCxpPXZvaWQgMD09PXQudmVydE9mZnNldD90aGlzLl92ZXJ0T2Zmc2V0OnQudmVydE9mZnNldCxyPWk+MD9uOi1uO3RoaXMuX2l0ZW1zLnB1c2goe3dpZHRoOmUsaGVpZ2h0Om4sdmVydE9mZnNldDppLHRleHRWZXJ0T2Zmc2V0OnIsc2hhcGVXaWR0aDowLHNoYXBlSGVpZ2h0OjAsc3RlcFg6MCxzdGVwWTowLC4uLnR9KX19X2RyYXdJdGVtVGV4dChlLHQpe2NvbnN0IG49dGhpcy5fZ2V0VGV4dENhY2hlKHQpO2lmKG51bGw9PT1uKXJldHVybjtjb25zdCBpPXQuY2VudGVyLG89dC52ZXJ0T2Zmc2V0LHI9dC55K28rdC50ZXh0VmVydE9mZnNldDtsZXQgcztzPXQuc3R5bGUmJnZvaWQgMCE9PXQuc3R5bGUudGV4dENvbG9yP3Quc3R5bGUudGV4dENvbG9yOnRoaXMuX3RleHRDb2xvcjtjb25zdCBhPXtzdHlsZTp7ZmlsbFN0eWxlOnN9LGxvY2F0aW9uOnt4OmkseTpyLGhvcnpBbGlnbjpoLkhvcml6b250YWxBbGlnbi5DZW50ZXIsdmVydEFsaWduOm8+MD9oLlZlcnRpY2FsQWxpZ24uVG9wOmguVmVydGljYWxBbGlnbi5Cb3R0b219fTtuLnBhaW50VG8oZSxhKX1fZHJhd1dpdGhPcHRpbWl6YXRpb25zKGUpe2xldCB0LG4saT1udWxsLG89ITE7Zm9yKGNvbnN0IHIgb2YgdGhpcy5faXRlbXMpKDAsYS5pc05hTikoci55KXx8KHIuc3R5bGUmJnZvaWQgMCE9PXIuc3R5bGUuY29sb3I/KHQ9ci5zdHlsZS5jb2xvcnx8InJnYmEoMCwgMCwgMCwgMCkiLG49ci5zdHlsZS5ib3JkZXJDb2xvcnx8InJnYmEoMCwgMCwgMCwgMCkiKToodD10aGlzLl9jb2xvcixuPXRoaXMuX2JvcmRlckNvbG9yKSwoaSE9PXR8fHguaXNTYWZhcmkpJiYoaT10LG8mJnRoaXMuX2VuZFBhdGgoZSksdGhpcy5fc3RhcnRQYXRoKGUsdCxuKSksdGhpcy5fZHJhd0l0ZW1TaGFwZShlLHIpLG89ITApO28mJnRoaXMuX2VuZFBhdGgoZSk7Zm9yKGNvbnN0IHQgb2YgdGhpcy5faXRlbXMpKDAsYS5pc05hTikodC55KXx8dGhpcy5fZHJhd0l0ZW1UZXh0KGUsdCl9X2RyYXdXaXRob3V0T3B0aW1pemF0aW9ucyhlKXtsZXQgdCxuO2Zvcihjb25zdCBpIG9mIHRoaXMuX2l0ZW1zKXtpZigoMCxhLmlzTmFOKShpLnkpKWNvbnRpbnVlO2NvbnN0IHI9KDAsby5lbnN1cmVEZWZpbmVkKShpLnN0eWxlKTt0PXIuY29sb3J8fCJyZ2JhKDAsIDAsIDAsIDApIixuPXIuYm9yZGVyQ29sb3J8fCJyZ2JhKDAsIDAsIDAsIDApIix0aGlzLl9zdGFydFBhdGgoZSx0LG4pLHRoaXMuX2RyYXdJdGVtU2hhcGUoZSxpKSx0aGlzLl9lbmRQYXRoKGUpLHRoaXMuX2RyYXdJdGVtVGV4dChlLGkpfX1fZHJhd0l0ZW1TaGFwZShlLHQpe2NvbnN0e2NvbnRleHQ6bixob3Jpem9udGFsUGl4ZWxSYXRpbzppLHZlcnRpY2FsUGl4ZWxSYXRpbzpvfT1lOygwLApnLmRyYXdTY2FsZWQpKG4saSxvLCgoKT0+dGhpcy5fZHJhd0l0ZW1TaGFwZVVzaW5nQ1NTUGl4ZWxzKG4sdCkpKX1fZHJhd0l0ZW1TaGFwZVVzaW5nQ1NTUGl4ZWxzKGUsdCl7fV9wcmVEcmF3SW5pdCgpe31fc3RhcnRQYXRoKGUsdCxuKXt9X2VuZFBhdGgoZSl7fV9nZXRUZXh0Q2FjaGUoZSl7Y29uc3QgdD1lLnRleHR8fHRoaXMuX3RleHQsbj1lLmZvbnRTaXplfHx0aGlzLl9mb250U2l6ZSxpPWUubGluZVNwYWNpbmc/P3RoaXMuX2xpbmVTcGFjaW5nLG89ZS50ZXh0QWxpZ258fHRoaXMuX3RleHRBbGlnbixyPWUuZm9udD8/ZC5DSEFSVF9GT05UX0ZBTUlMWV9XVi52YWx1ZSgpLHM9ZS5ib2xkPz8hMSxhPWUuaXRhbGljPz8hMTtyZXR1cm4gdGhpcy5fdGV4dENhY2hlLmdldCh7dGV4dDp0LGJvbGQ6cyxpdGFsaWM6YSxmb250OnIsZm9udFNpemU6bixsaW5lU3BhY2luZzppLGFsaWduOm99KX19Y2xhc3MgXyBleHRlbmRzIHV7X3N0YXJ0UGF0aChlLHQsbil7Y29uc3QgaT1lLmNvbnRleHQ7aS5iZWdpblBhdGgoKSxpLmxpbmVXaWR0aD10aGlzLl9saW5lV2lkdGgoZSksaS5saW5lQ2FwPSJidXR0IixpLnN0cm9rZVN0eWxlPXR9X2VuZFBhdGgoZSl7ZS5jb250ZXh0LnN0cm9rZSgpfV9saW5lV2lkdGgoZSl7cmV0dXJuIE1hdGgubWF4KDEsTWF0aC5mbG9vcigyKmUuaG9yaXpvbnRhbFBpeGVsUmF0aW8pKX19Y2xhc3MgdyBleHRlbmRzIHV7X3N0YXJ0UGF0aChlLHQsbil7Y29uc3QgaT1lLmNvbnRleHQ7aS5iZWdpblBhdGgoKSxpLmxpbmVXaWR0aD10aGlzLl9saW5lV2lkdGgoZSksaS5saW5lQ2FwPSJidXR0IixpLmZpbGxTdHlsZT10LGkuc3Ryb2tlU3R5bGU9bn1fZW5kUGF0aChlKXtjb25zdCB0PWUuY29udGV4dDt0LmZpbGwoKSx0LnN0cm9rZSgpfV9saW5lV2lkdGgoZSl7cmV0dXJuIE1hdGgubWF4KDEsTWF0aC5mbG9vcihlLmhvcml6b250YWxQaXhlbFJhdGlvKSl9fX0sNjUxOTY2KGUsdCxuKXtuLmQodCx7UGFuZVJlbmRlcmVyQXJyb3dEb3duOigpPT5oLFBhbmVSZW5kZXJlckFycm93VXA6KCk9PmF9KTt2YXIgaT1uKDczNjUzMSksbz1uKDg3NDEzNSkscj1uKDY0MDc0NCk7Y2xhc3MgcyBleHRlbmRzIG8uUGFuZVJlbmRlcmVyQWJzdHJhY3RGaWxsU3Ryb2tlU2hhcGV7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMuX3NpZ249MCx0aGlzLl90aGluQXJyb3c9ITEsdGhpcy5fdGhpbkFycm93TGluZVdpZHRoPTAsdGhpcy5faGVhZEhlaWdodD0wLHRoaXMuX2Fycm93V2lkdGg9MH1zZXRJdGVtcyhlLHQpe3RoaXMuX3NldEJhc2VEYXRhKGUsdCl9X2RyYXdJdGVtU2hhcGUoZSx0KXtjb25zdHtjb250ZXh0Om4saG9yaXpvbnRhbFBpeGVsUmF0aW86aSx2ZXJ0aWNhbFBpeGVsUmF0aW86b309ZSxzPXRoaXMuX2xpbmVXaWR0aChlKSUyPy41OjAsYT10aGlzLl9zaWduLGg9dGhpcy5fYXJyb3dXaWR0aCxsPXRoaXMuX2hlYWRIZWlnaHQsYz1NYXRoLmFicyh0LmhlaWdodCksZD1NYXRoLnJvdW5kKHQuY2VudGVyKmkpK3MsZj10LnZlcnRPZmZzZXQsZz1NYXRoLnJvdW5kKCh0LnkrZithKmMvMikqbykrcyx4PSgwLHIuY2VpbGVkRXZlbikoaCppKSx1PXgvMixfPU1hdGgucm91bmQoYypvKSx3PU1hdGgucm91bmQobCpvKTtuLnRyYW5zbGF0ZShkLGcpLHRoaXMuX3RoaW5BcnJvdz8obi5tb3ZlVG8oMCwwKSxuLmxpbmVUbygtdSwtdSphKSxuLm1vdmVUbygwLDApLG4ubGluZVRvKHUsLXUqYSksbi5tb3ZlVG8oMCwwKSxuLmxpbmVUbygwLC1fKmEpLG4ubW92ZVRvKC11LC1fKmEpLG4ubGluZVRvKHUsLV8qYSkpOihuLm1vdmVUbygwLDApLF88dz8obi5saW5lVG8oeCwtXyphKSxuLmxpbmVUbygteCwtXyphKSk6KG4ubGluZVRvKHgsLXcqYSksbi5saW5lVG8odSwtdyphKSxuLmxpbmVUbyh1LC1fKmEpLG4ubGluZVRvKC11LC1fKmEpLG4ubGluZVRvKC11LC13KmEpLG4ubGluZVRvKC14LC13KmEpKSxuLmxpbmVUbygwLDApKSxuLnRyYW5zbGF0ZSgtZCwtZyl9X3ByZURyYXdJbml0KCl7Y29uc3QgZT10aGlzLl9jYWxjdWxhdGVXaWR0aCgpO3RoaXMuX2Fycm93V2lkdGg9ZSx0aGlzLl9zaWduPXRoaXMuX2lzVXAoKT8tMToxLHRoaXMuX3RoaW5BcnJvdz1lPDQsdGhpcy5fdGhpbkFycm93TGluZVdpZHRoPU1hdGgubWF4KGUvMiwxKSx0aGlzLl9oZWFkSGVpZ2h0PU1hdGgucm91bmQoZSl9X3N0YXJ0UGF0aChlLHQsbil7Y29uc3QgaT1lLmNvbnRleHQ7aS5iZWdpblBhdGgoKSxpLmZpbGxTdHlsZT10LGkuc3Ryb2tlU3R5bGU9bixpLmxpbmVXaWR0aD10aGlzLl9saW5lV2lkdGgoZSl9X2xpbmVXaWR0aChlKXtyZXR1cm4gdGhpcy5fdGhpbkFycm93P3RoaXMuX3RoaW5BcnJvd0xpbmVXaWR0aDpzdXBlci5fbGluZVdpZHRoKGUpfV9jYWxjQm91bmRpbmdCb3goZSl7Y29uc3QgdD1lLnZlcnRPZmZzZXQsbj10aGlzLl9zaWduLG89dGhpcy5fYXJyb3dXaWR0aCxyPXRoaXMuX2hlYWRIZWlnaHQscz1NYXRoLmFicyhlLmhlaWdodCksYT1lLmNlbnRlci1vLGg9YSsyKm8sbD1lLnkrdCtuKk1hdGgucm91bmQocy8yKSxjPWwrKC1zLXIpKm4sZD1uZXcgaS5Qb2ludChhLGwpLGY9bmV3IGkuUG9pbnQoaCxjKTtsZXQgZz0oMCxpLmJveCkoZCxmKTtjb25zdCB4PXN1cGVyLl9jYWxjQm91bmRpbmdCb3goZSk7cmV0dXJuIHgmJihnPXRoaXMuX3VuaW9uQm94KGcseCkpLGd9X2NhbGN1bGF0ZVdpZHRoKCl7cmV0dXJuIE1hdGgucm91bmQodGhpcy5fYmFyU3BhY2luZy80KX19Y2xhc3MgYSBleHRlbmRzIHN7X2lzVXAoKXtyZXR1cm4hMH19Y2xhc3MgaCBleHRlbmRzIHN7X2lzVXAoKXtyZXR1cm4hMX19fSwzMzA4NjEoZSx0LG4pe24uZCh0LHtQYW5lUmVuZGVyZXJDaXJjbGVTaGFwZTooKT0+c30pO3ZhciBpPW4oNzM2NTMxKSxvPW4oODc0MTM1KTtjb25zdCByPTIqTWF0aC5QSTtjbGFzcyBzIGV4dGVuZHMgby5QYW5lUmVuZGVyZXJBYnN0cmFjdEZpbGxTdHJva2VTaGFwZXtfZHJhd0l0ZW1TaGFwZVVzaW5nQ1NTUGl4ZWxzKGUsdCl7Y29uc3Qgbj1NYXRoLm1heCh0LndpZHRoLHQuaGVpZ2h0KS8yLGk9dC5jZW50ZXIsbz10LnZlcnRPZmZzZXQscz10LnkrbztlLm1vdmVUbyhpK24scyksCmUuYXJjKGkscyxuLDAsciwhMSl9X2NhbGNCb3VuZGluZ0JveChlKXtjb25zdCB0PU1hdGgubWF4KGUud2lkdGgsZS5oZWlnaHQpLzIsbj1lLmNlbnRlcixvPWUudmVydE9mZnNldCxyPWUueStvLHM9bi10LGE9bit0LGg9ci10LGw9cit0LGM9bmV3IGkuUG9pbnQocyxoKSxkPW5ldyBpLlBvaW50KGEsbCk7bGV0IGY9KDAsaS5ib3gpKGMsZCk7Y29uc3QgZz1zdXBlci5fY2FsY0JvdW5kaW5nQm94KGUpO3JldHVybiBnJiYoZj10aGlzLl91bmlvbkJveChmLGcpKSxmfX19LDMwMjQ2OShlLHQsbil7bi5kKHQse1BhbmVSZW5kZXJlckNyb3NzU2hhcGU6KCk9PnJ9KTt2YXIgaT1uKDczNjUzMSksbz1uKDg3NDEzNSk7Y2xhc3MgciBleHRlbmRzIG8uUGFuZVJlbmRlcmVyQWJzdHJhY3RTdHJva2VTaGFwZXtfZHJhd0l0ZW1TaGFwZShlLHQpe2NvbnN0e2NvbnRleHQ6bixob3Jpem9udGFsUGl4ZWxSYXRpbzppLHZlcnRpY2FsUGl4ZWxSYXRpbzpvfT1lLHI9dC53aWR0aCxzPXQuaGVpZ2h0LGE9dC5jZW50ZXItci8yLGg9dC52ZXJ0T2Zmc2V0LGw9dC55LXMvMitoLGM9dGhpcy5fbGluZVdpZHRoKGUpLGQ9YyUyPy41OjAsZj1NYXRoLnJvdW5kKGEqaSk7bGV0IGc9TWF0aC5yb3VuZCgoYStyKSppKTsoZy1mKSUyIT1jJTImJihnKz0xKTtjb25zdCB4PU1hdGguZmxvb3IoKGYrZykvMikrZCx1PU1hdGgucm91bmQobCpvKTtsZXQgXz1NYXRoLnJvdW5kKChsK3MpKm8pOyhfLXUpJTIhPWMlMiYmKF8rPTEpO2NvbnN0IHc9TWF0aC5mbG9vcigodStfKS8yKStkO24ubW92ZVRvKHgsdSksbi5saW5lVG8oeCxfKSxuLm1vdmVUbyhmLHcpLG4ubGluZVRvKGcsdyl9X2NhbGNCb3VuZGluZ0JveChlKXtjb25zdCB0PWUud2lkdGgsbj1lLmhlaWdodCxvPWUuY2VudGVyLXQvMixyPWUudmVydE9mZnNldCxzPWUueS1uLzIrcixhPW8saD1vK3QsbD1zLGM9cytuLGQ9bmV3IGkuUG9pbnQoYSxsKSxmPW5ldyBpLlBvaW50KGgsYyk7bGV0IGc9KDAsaS5ib3gpKGQsZik7Y29uc3QgeD1zdXBlci5fY2FsY0JvdW5kaW5nQm94KGUpO3JldHVybiB4JiYoZz10aGlzLl91bmlvbkJveChnLHgpKSxnfX19LDc0NzQ2NShlLHQsbil7bi5kKHQse1BhbmVSZW5kZXJlckRpYW1vbmQ6KCk9PnJ9KTt2YXIgaT1uKDczNjUzMSksbz1uKDg3NDEzNSk7Y2xhc3MgciBleHRlbmRzIG8uUGFuZVJlbmRlcmVyQWJzdHJhY3RGaWxsU3Ryb2tlU2hhcGV7X2RyYXdJdGVtU2hhcGVVc2luZ0NTU1BpeGVscyhlLHQpe2NvbnN0IG49TWF0aC5yb3VuZCh0LmhlaWdodC8yKSxpPXQuY2VudGVyLG89dC52ZXJ0T2Zmc2V0LHI9dC55K287ZS5tb3ZlVG8oaSxyLW4pLGUubGluZVRvKGkrbixyKSxlLmxpbmVUbyhpLHIrbiksZS5saW5lVG8oaS1uLHIpLGUubGluZVRvKGksci1uKX1fY2FsY0JvdW5kaW5nQm94KGUpe2NvbnN0IHQ9TWF0aC5yb3VuZChlLmhlaWdodC8yKSxuPWUuY2VudGVyLG89ZS52ZXJ0T2Zmc2V0LHI9ZS55K28scz1uLXQsYT1uK3QsaD1yLXQsbD1yK3QsYz1uZXcgaS5Qb2ludChzLGgpLGQ9bmV3IGkuUG9pbnQoYSxsKTtsZXQgZj0oMCxpLmJveCkoYyxkKTtjb25zdCBnPXN1cGVyLl9jYWxjQm91bmRpbmdCb3goZSk7cmV0dXJuIGcmJihmPXRoaXMuX3VuaW9uQm94KGYsZykpLGZ9fX0sNTQ0MjQzKGUsdCxuKXtuLmQodCx7UGFuZVJlbmRlcmVyRmxhZ1NoYXBlOigpPT5yfSk7dmFyIGk9big3MzY1MzEpLG89big4NzQxMzUpO2NsYXNzIHIgZXh0ZW5kcyBvLlBhbmVSZW5kZXJlckFic3RyYWN0RmlsbFN0cm9rZVNoYXBle19kcmF3SXRlbVNoYXBlVXNpbmdDU1NQaXhlbHMoZSx0KXtjb25zdCBuPXQud2lkdGgsaT10LmhlaWdodCxvPWkvMixyPShuLTMpLzMscz10LmNlbnRlci1uLzIsYT10LnZlcnRPZmZzZXQsaD10LnktbythO2UubW92ZVRvKHMsaCksZS5saW5lVG8ocyszLGgpLGUuYmV6aWVyQ3VydmVUbyhzK3IsaC1yLHMrMipyLGgrcixzK24saCksZS5saW5lVG8ocytuLGgrbyksZS5iZXppZXJDdXJ2ZVRvKHMrbi1yLGgrbytyLHMrbi0yKnIsaCtvLXIscyszLGgrbyksZS5saW5lVG8ocyszLGgraSksZS5saW5lVG8ocyxoK2kpLGUubGluZVRvKHMsaCl9X2NhbGNCb3VuZGluZ0JveChlKXtjb25zdCB0PWUud2lkdGgsbj1lLmhlaWdodCxvPW4vMixyPWUuY2VudGVyLXQvMixzPWUudmVydE9mZnNldCxhPWUueS1vK3MsaD1yLGw9cit0LGM9YSxkPWErbixmPW5ldyBpLlBvaW50KGgsYyksZz1uZXcgaS5Qb2ludChsLGQpO2xldCB4PSgwLGkuYm94KShmLGcpO2NvbnN0IHU9c3VwZXIuX2NhbGNCb3VuZGluZ0JveChlKTtyZXR1cm4gdSYmKHg9dGhpcy5fdW5pb25Cb3goeCx1KSkseH19fSw4NDY1MjkoZSx0LG4pe24uZCh0LHtDb3JuZXJWZWN0b3JzQ2xvY2t3aXNlOigpPT5pLFBhbmVSZW5kZXJlckxhYmVsQmFzZTooKT0+YX0pO3ZhciBpLG89bigxMzg2MzgpLHI9big4ODQyOCkscz1uKDg3NDEzNSk7Y2xhc3MgYSBleHRlbmRzIHMuUGFuZVJlbmRlcmVyQWJzdHJhY3RGaWxsU3Ryb2tlU2hhcGV7c2V0SXRlbXMoZSx0KXt0aGlzLl9zZXRCYXNlRGF0YShlLHQpO2Zvcihjb25zdCBlIG9mIHRoaXMuX2l0ZW1zKXtpZihlLmZvbnRTaXplKXtjb25zdCB0PWUuZm9udFNpemU7ZS5zdGVwWD1NYXRoLnJvdW5kKHQvMS41KSxlLnN0ZXBZPU1hdGgucm91bmQodC8yKS0xfWVsc2V7Y29uc3QgdD1lLmhlaWdodDtlLnN0ZXBYPU1hdGgucm91bmQodC8yKi42NSkrLjUsZS5zdGVwWT1lLnN0ZXBYfWUudmVydE9mZnNldD10aGlzLl9jYWxjVmVydE9mZnNldChlKTtjb25zdCB0PXRoaXMuX2dldFRleHRDYWNoZShlKTtpZihudWxsPT09dCl7ZS5zaGFwZVdpZHRoPTIqZS5zdGVwWCxlLnNoYXBlSGVpZ2h0PTIuNSplLnN0ZXBZO2NvbnRpbnVlfWNvbnN0IG49dC50ZXh0SW1hZ2VXaWR0aCxpPXQudGV4dEltYWdlSGVpZ2h0O2Uuc2hhcGVXaWR0aD1uKzIqZS5zdGVwWCxlLnNoYXBlSGVpZ2h0PWkrMiplLnN0ZXBZLGUudmVydE9mZnNldD10aGlzLl9jYWxjVmVydE9mZnNldChlKSxlLnRleHRIb3Jpek9mZnNldD10aGlzLl9nZXRIb3Jpem9udGFsVGV4dE9mZnNldChlKSxlLnRleHRWZXJ0T2Zmc2V0PXRoaXMuX2dldFZlcnRpY2FsVGV4dE9mZnNldChlKX19Cl9jYWxjVmVydE9mZnNldChlKXtyZXR1cm4gZS52ZXJ0T2Zmc2V0fV9kcmF3Q29ybmVyKGUsdCxuLGkpe2NvbnN0e2NvbnRleHQ6byxob3Jpem9udGFsUGl4ZWxSYXRpbzpyfT1lLHM9TWF0aC5tYXgoMSxNYXRoLmZsb29yKDIqcikpO28ubGluZVRvKHQtcyppLnByZXZQb2ludFNpZ25YLG4tcyppLnByZXZQb2ludFNpZ25ZKSxvLmFyY1RvKHQsbix0K3MqaS5uZXh0UG9pbnRTaWduWCxuK3MqaS5uZXh0UG9pbnRTaWduWSxzKX1fZ2V0QXJyb3dTaXplKGUpe3JldHVybiBlLnN0ZXBYfV9nZXRIb3Jpem9udGFsVGV4dE9mZnNldChlKXtyZXR1cm4gMH1fZ2V0VmVydGljYWxUZXh0T2Zmc2V0KGUpe3JldHVybiAwfV9oYXNUZXh0KGUpe3JldHVybiBCb29sZWFuKGUudGV4dCl8fEJvb2xlYW4odGhpcy5fdGV4dCl9X2RyYXdJdGVtVGV4dChlLHQpe2NvbnN0IG49dGhpcy5fZ2V0VGV4dENhY2hlKHQpO2lmKG51bGw9PT1uKXJldHVybjtjb25zdCBpPXQudGV4dEhvcml6T2Zmc2V0fHwwLHM9dC5jZW50ZXIraSxhPXQudmVydE9mZnNldCxoPXQueSthK3QudGV4dFZlcnRPZmZzZXQsbD10LnN0eWxlPy50ZXh0Q29sb3J8fHRoaXMuX3RleHRDb2xvcixjPXtzdHlsZTp7ZmlsbFN0eWxlOigwLG8uZW5zdXJlRGVmaW5lZCkobCl9LGxvY2F0aW9uOnt4OnMseTpNYXRoLmZsb29yKGgpLGhvcnpBbGlnbjpyLkhvcml6b250YWxBbGlnbi5DZW50ZXIsdmVydEFsaWduOnIuVmVydGljYWxBbGlnbi5NaWRkbGV9fTtuLnBhaW50VG8oZSxjKX19Y2xhc3MgaHtjb25zdHJ1Y3RvcihlLHQsbixpKXt0aGlzLnByZXZQb2ludFNpZ25YPWUsdGhpcy5wcmV2UG9pbnRTaWduWT10LHRoaXMubmV4dFBvaW50U2lnblg9bix0aGlzLm5leHRQb2ludFNpZ25ZPWl9fSFmdW5jdGlvbihlKXtlLnJpZ2h0VXA9bmV3IGgoMSwwLDAsMSksZS5yaWdodERvd249bmV3IGgoMCwxLC0xLDApLGUubGVmdERvd249bmV3IGgoLTEsMCwwLC0xKSxlLmxlZnRVcD1uZXcgaCgwLC0xLDEsMCl9KGl8fChpPXt9KSl9LDE2ODQ4NyhlLHQsbil7bi5kKHQse1BhbmVSZW5kZXJlckxhYmVsQ2VudGVyOigpPT5sLFBhbmVSZW5kZXJlckxhYmVsRG93bjooKT0+cyxQYW5lUmVuZGVyZXJMYWJlbExlZnQ6KCk9PmEsUGFuZVJlbmRlcmVyTGFiZWxSaWdodDooKT0+aCxQYW5lUmVuZGVyZXJMYWJlbFVwOigpPT5yfSk7dmFyIGk9big3MzY1MzEpLG89big4NDY1MjkpO2NsYXNzIHIgZXh0ZW5kcyBvLlBhbmVSZW5kZXJlckxhYmVsQmFzZXtfY2FsY0JvdW5kaW5nQm94KGUpe2NvbnN0IHQ9ZS5jZW50ZXItZS5zaGFwZVdpZHRoLzIsbj1lLmNlbnRlcitlLnNoYXBlV2lkdGgvMixvPWUueStlLnZlcnRPZmZzZXQscj1lLnkrZS5zaGFwZUhlaWdodCtlLnZlcnRPZmZzZXQscz1uZXcgaS5Qb2ludCh0LG8pLGE9bmV3IGkuUG9pbnQobixyKTtyZXR1cm4oMCxpLmJveCkocyxhKX1fZHJhd0l0ZW1TaGFwZShlLHQpe2NvbnN0e2NvbnRleHQ6bixob3Jpem9udGFsUGl4ZWxSYXRpbzppLHZlcnRpY2FsUGl4ZWxSYXRpbzpyfT1lLHM9dGhpcy5fbGluZVdpZHRoKGUpJTI/LjU6MCxhPU1hdGgubWF4KDEsTWF0aC5mbG9vcihpKSklMj8uNTowLGg9dGhpcy5fZ2V0QXJyb3dTaXplKHQpO2xldCBsPU1hdGgucm91bmQoaCppKTsoYStsKSUxIT1zJTEmJihsKz0uNSk7bGV0IGM9TWF0aC5yb3VuZCh0LnNoYXBlV2lkdGgvMippKTsoYStjKSUxIT1zJTEmJihjKz0uNSk7Y29uc3QgZD1NYXRoLnJvdW5kKHQuY2VudGVyKmkpK2EsZj1NYXRoLnJvdW5kKCh0LnkrdC52ZXJ0T2Zmc2V0KSpyKStzLGc9ZC1sLHg9TWF0aC5yb3VuZCgodC55K3QudmVydE9mZnNldCtoKSpyKStzLHU9ZCtsLF89ZCtjLHc9TWF0aC5yb3VuZCgodC55K3QudmVydE9mZnNldCtoK3Quc2hhcGVIZWlnaHQpKnIpK3MscD1kLWM7bi5tb3ZlVG8oZyx4KSxuLmxpbmVUbyhkLGYpLG4ubGluZVRvKHUseCksdC5zaGFwZVdpZHRoPD0yKmg/KG4ubGluZVRvKF8seCksdGhpcy5fZHJhd0Nvcm5lcihlLF8sdyxvLkNvcm5lclZlY3RvcnNDbG9ja3dpc2UucmlnaHREb3duKSx0aGlzLl9kcmF3Q29ybmVyKGUscCx3LG8uQ29ybmVyVmVjdG9yc0Nsb2Nrd2lzZS5sZWZ0RG93biksbi5saW5lVG8ocCx4KSk6KHRoaXMuX2RyYXdDb3JuZXIoZSxfLHgsby5Db3JuZXJWZWN0b3JzQ2xvY2t3aXNlLnJpZ2h0VXApLHRoaXMuX2RyYXdDb3JuZXIoZSxfLHcsby5Db3JuZXJWZWN0b3JzQ2xvY2t3aXNlLnJpZ2h0RG93biksdGhpcy5fZHJhd0Nvcm5lcihlLHAsdyxvLkNvcm5lclZlY3RvcnNDbG9ja3dpc2UubGVmdERvd24pLHRoaXMuX2RyYXdDb3JuZXIoZSxwLHgsby5Db3JuZXJWZWN0b3JzQ2xvY2t3aXNlLmxlZnRVcCkpLG4ubGluZVRvKGcseCl9X2dldFZlcnRpY2FsVGV4dE9mZnNldChlKXtyZXR1cm4gZS5zaGFwZUhlaWdodC8yK3RoaXMuX2dldEFycm93U2l6ZShlKX1fY2FsY1ZlcnRPZmZzZXQoZSl7cmV0dXJuIE1hdGguc2lnbihlLnZlcnRPZmZzZXQpPj0wP2UudmVydE9mZnNldDplLnZlcnRPZmZzZXQtZS5zaGFwZUhlaWdodH19Y2xhc3MgcyBleHRlbmRzIG8uUGFuZVJlbmRlcmVyTGFiZWxCYXNle19jYWxjQm91bmRpbmdCb3goZSl7Y29uc3QgdD1lLmNlbnRlci1lLnNoYXBlV2lkdGgvMixuPWUuY2VudGVyK2Uuc2hhcGVXaWR0aC8yLG89ZS55LWUuc2hhcGVIZWlnaHQrZS52ZXJ0T2Zmc2V0LHI9ZS55K2UudmVydE9mZnNldCxzPW5ldyBpLlBvaW50KHQsbyksYT1uZXcgaS5Qb2ludChuLHIpO3JldHVybigwLGkuYm94KShzLGEpfV9kcmF3SXRlbVNoYXBlKGUsdCl7Y29uc3R7Y29udGV4dDpuLGhvcml6b250YWxQaXhlbFJhdGlvOmksdmVydGljYWxQaXhlbFJhdGlvOnJ9PWUscz10aGlzLl9saW5lV2lkdGgoZSklMj8uNTowLGE9TWF0aC5tYXgoMSxNYXRoLmZsb29yKGkpKSUyPy41OjAsaD10aGlzLl9nZXRBcnJvd1NpemUodCk7bGV0IGw9TWF0aC5yb3VuZChoKmkpOyhhK2wpJTEhPXMlMSYmKGwrPS41KTtsZXQgYz1NYXRoLnJvdW5kKHQuc2hhcGVXaWR0aC8yKmkpOyhhK2MpJTEhPXMlMSYmKGMrPS41KQo7Y29uc3QgZD1NYXRoLnJvdW5kKHQuY2VudGVyKmkpK2EsZj1NYXRoLnJvdW5kKCh0LnkrdC52ZXJ0T2Zmc2V0KSpyKStzLGc9ZCtsLHg9TWF0aC5yb3VuZCgodC55K3QudmVydE9mZnNldC1oKSpyKStzLHU9ZC1sLF89ZCtjLHc9TWF0aC5yb3VuZCgodC55K3QudmVydE9mZnNldC10LnNoYXBlSGVpZ2h0LWgpKnIpK3MscD1kLWM7bi5tb3ZlVG8oZyx4KSxuLmxpbmVUbyhkLGYpLG4ubGluZVRvKHUseCksdC5zaGFwZVdpZHRoPD0yKmg/KG4ubGluZVRvKHAseCksdGhpcy5fZHJhd0Nvcm5lcihlLHAsdyxvLkNvcm5lclZlY3RvcnNDbG9ja3dpc2UubGVmdFVwKSx0aGlzLl9kcmF3Q29ybmVyKGUsXyx3LG8uQ29ybmVyVmVjdG9yc0Nsb2Nrd2lzZS5yaWdodFVwKSxuLmxpbmVUbyhfLHgpKToodGhpcy5fZHJhd0Nvcm5lcihlLHAseCxvLkNvcm5lclZlY3RvcnNDbG9ja3dpc2UubGVmdERvd24pLHRoaXMuX2RyYXdDb3JuZXIoZSxwLHcsby5Db3JuZXJWZWN0b3JzQ2xvY2t3aXNlLmxlZnRVcCksdGhpcy5fZHJhd0Nvcm5lcihlLF8sdyxvLkNvcm5lclZlY3RvcnNDbG9ja3dpc2UucmlnaHRVcCksdGhpcy5fZHJhd0Nvcm5lcihlLF8seCxvLkNvcm5lclZlY3RvcnNDbG9ja3dpc2UucmlnaHREb3duKSksbi5saW5lVG8oZyx4KX1fZ2V0VmVydGljYWxUZXh0T2Zmc2V0KGUpe3JldHVybi1lLnNoYXBlSGVpZ2h0LzItdGhpcy5fZ2V0QXJyb3dTaXplKGUpfV9jYWxjVmVydE9mZnNldChlKXtyZXR1cm4gTWF0aC5zaWduKGUudmVydE9mZnNldCk8PTA/ZS52ZXJ0T2Zmc2V0OmUudmVydE9mZnNldCtlLnNoYXBlSGVpZ2h0fX1jbGFzcyBhIGV4dGVuZHMgby5QYW5lUmVuZGVyZXJMYWJlbEJhc2V7X2NhbGNCb3VuZGluZ0JveChlKXtjb25zdCB0PWUuY2VudGVyLG49ZS5jZW50ZXIrZS5zaGFwZVdpZHRoLG89ZS55LWUuc2hhcGVIZWlnaHQvMitlLnZlcnRPZmZzZXQscj1lLnkrZS5zaGFwZUhlaWdodC8yK2UudmVydE9mZnNldCxzPW5ldyBpLlBvaW50KHQsbyksYT1uZXcgaS5Qb2ludChuLHIpO3JldHVybigwLGkuYm94KShzLGEpfV9kcmF3SXRlbVNoYXBlKGUsdCl7Y29uc3R7Y29udGV4dDpuLGhvcml6b250YWxQaXhlbFJhdGlvOmksdmVydGljYWxQaXhlbFJhdGlvOnJ9PWUscz10aGlzLl9saW5lV2lkdGgoZSklMj8uNTowLGE9dGhpcy5fZ2V0QXJyb3dTaXplKHQpLGg9dGhpcy5faGFzVGV4dCh0KSxsPWg/dC5zaGFwZUhlaWdodC8yOmEsYz1NYXRoLnJvdW5kKHQuY2VudGVyKmkpK3MsZD1NYXRoLnJvdW5kKCh0LnkrdC52ZXJ0T2Zmc2V0KSpyKStzLGY9TWF0aC5yb3VuZCgodC5jZW50ZXIrYSkqaSkrcyxnPU1hdGgucm91bmQoKHQueSt0LnZlcnRPZmZzZXQrYSkqcikrcyx4PU1hdGgucm91bmQoKHQueSt0LnZlcnRPZmZzZXQtYSkqcikrcyx1PU1hdGgucm91bmQoKHQueSt0LnZlcnRPZmZzZXQtbCkqcikrcyxfPU1hdGgucm91bmQoKHQuY2VudGVyK3Quc2hhcGVXaWR0aCthKSppKStzLHc9TWF0aC5yb3VuZCgodC55K3QudmVydE9mZnNldCtsKSpyKStzO24ubW92ZVRvKGYsZyksbi5saW5lVG8oYyxkKSxuLmxpbmVUbyhmLHgpLGg/dGhpcy5fZHJhd0Nvcm5lcihlLGYsdSxvLkNvcm5lclZlY3RvcnNDbG9ja3dpc2UubGVmdFVwKTpuLmxpbmVUbyhmLHUpLHRoaXMuX2RyYXdDb3JuZXIoZSxfLHUsby5Db3JuZXJWZWN0b3JzQ2xvY2t3aXNlLnJpZ2h0VXApLHRoaXMuX2RyYXdDb3JuZXIoZSxfLHcsby5Db3JuZXJWZWN0b3JzQ2xvY2t3aXNlLnJpZ2h0RG93biksaD90aGlzLl9kcmF3Q29ybmVyKGUsZix3LG8uQ29ybmVyVmVjdG9yc0Nsb2Nrd2lzZS5sZWZ0RG93bik6bi5saW5lVG8oZix3KSxuLmxpbmVUbyhmLGcpfV9nZXRIb3Jpem9udGFsVGV4dE9mZnNldChlKXtyZXR1cm4gZS5zaGFwZVdpZHRoLzIrdGhpcy5fZ2V0QXJyb3dTaXplKGUpfX1jbGFzcyBoIGV4dGVuZHMgby5QYW5lUmVuZGVyZXJMYWJlbEJhc2V7X2NhbGNCb3VuZGluZ0JveChlKXtjb25zdCB0PWUuY2VudGVyLWUuc2hhcGVXaWR0aCxuPWUuY2VudGVyLG89ZS55LWUuc2hhcGVIZWlnaHQvMitlLnZlcnRPZmZzZXQscj1lLnkrZS5zaGFwZUhlaWdodC8yK2UudmVydE9mZnNldCxzPW5ldyBpLlBvaW50KHQsbyksYT1uZXcgaS5Qb2ludChuLHIpO3JldHVybigwLGkuYm94KShzLGEpfV9kcmF3SXRlbVNoYXBlKGUsdCl7Y29uc3R7Y29udGV4dDpuLGhvcml6b250YWxQaXhlbFJhdGlvOmksdmVydGljYWxQaXhlbFJhdGlvOnJ9PWUscz10aGlzLl9saW5lV2lkdGgoZSklMj8uNTowLGE9dGhpcy5fZ2V0QXJyb3dTaXplKHQpLGg9dGhpcy5faGFzVGV4dCh0KSxsPWg/dC5zaGFwZUhlaWdodC8yOmEsYz1NYXRoLnJvdW5kKHQuY2VudGVyKmkpK3MsZD1NYXRoLnJvdW5kKCh0LnkrdC52ZXJ0T2Zmc2V0KSpyKStzLGY9TWF0aC5yb3VuZCgodC5jZW50ZXItYSkqaSkrcyxnPU1hdGgucm91bmQoKHQueSt0LnZlcnRPZmZzZXQtYSkqcikrcyx4PU1hdGgucm91bmQoKHQueSt0LnZlcnRPZmZzZXQrYSkqcikrcyx1PU1hdGgucm91bmQoKHQueSt0LnZlcnRPZmZzZXQtbCkqcikrcyxfPU1hdGgucm91bmQoKHQuY2VudGVyLXQuc2hhcGVXaWR0aC1hKSppKStzLHc9TWF0aC5yb3VuZCgodC55K3QudmVydE9mZnNldCtsKSpyKStzO24ubW92ZVRvKGYsZyksbi5saW5lVG8oYyxkKSxuLmxpbmVUbyhmLHgpLGg/dGhpcy5fZHJhd0Nvcm5lcihlLGYsdyxvLkNvcm5lclZlY3RvcnNDbG9ja3dpc2UucmlnaHREb3duKTpuLmxpbmVUbyhmLHcpLHRoaXMuX2RyYXdDb3JuZXIoZSxfLHcsby5Db3JuZXJWZWN0b3JzQ2xvY2t3aXNlLmxlZnREb3duKSx0aGlzLl9kcmF3Q29ybmVyKGUsXyx1LG8uQ29ybmVyVmVjdG9yc0Nsb2Nrd2lzZS5sZWZ0VXApLGg/dGhpcy5fZHJhd0Nvcm5lcihlLGYsdSxvLkNvcm5lclZlY3RvcnNDbG9ja3dpc2UucmlnaHRVcCk6bi5saW5lVG8oZix1KSxuLmxpbmVUbyhmLGcpfV9nZXRIb3Jpem9udGFsVGV4dE9mZnNldChlKXtyZXR1cm4tZS5zaGFwZVdpZHRoLzItdGhpcy5fZ2V0QXJyb3dTaXplKGUpfX1jbGFzcyBsIGV4dGVuZHMgby5QYW5lUmVuZGVyZXJMYWJlbEJhc2V7X2NhbGNCb3VuZGluZ0JveChlKXsKY29uc3QgdD1lLmNlbnRlci1lLnNoYXBlV2lkdGgvMixuPWUuY2VudGVyK2Uuc2hhcGVXaWR0aC8yLG89ZS55LWUuc2hhcGVIZWlnaHQvMitlLnZlcnRPZmZzZXQscj1lLnkrZS5zaGFwZUhlaWdodC8yK2UudmVydE9mZnNldCxzPW5ldyBpLlBvaW50KHQsbyksYT1uZXcgaS5Qb2ludChuLHIpO3JldHVybigwLGkuYm94KShzLGEpfV9kcmF3SXRlbVNoYXBlKGUsdCl7Y29uc3R7Y29udGV4dDpuLGhvcml6b250YWxQaXhlbFJhdGlvOmksdmVydGljYWxQaXhlbFJhdGlvOnJ9PWUscz10aGlzLl9saW5lV2lkdGgoZSklMj8uNTowLGE9dC5zaGFwZUhlaWdodC8yLGg9dC5zaGFwZVdpZHRoLzIsbD1NYXRoLnJvdW5kKHQuY2VudGVyKmkpK3MsYz1NYXRoLnJvdW5kKCh0LmNlbnRlci1oKSppKStzLGQ9TWF0aC5yb3VuZCgodC5jZW50ZXIraCkqaSkrcyxmPU1hdGgucm91bmQoKHQueSt0LnZlcnRPZmZzZXQtYSkqcikrcyxnPU1hdGgucm91bmQoKHQueSt0LnZlcnRPZmZzZXQrYSkqcikrcztuLm1vdmVUbyhsLGYpLHRoaXMuX2RyYXdDb3JuZXIoZSxkLGYsby5Db3JuZXJWZWN0b3JzQ2xvY2t3aXNlLnJpZ2h0VXApLHRoaXMuX2RyYXdDb3JuZXIoZSxkLGcsby5Db3JuZXJWZWN0b3JzQ2xvY2t3aXNlLnJpZ2h0RG93biksdGhpcy5fZHJhd0Nvcm5lcihlLGMsZyxvLkNvcm5lclZlY3RvcnNDbG9ja3dpc2UubGVmdERvd24pLHRoaXMuX2RyYXdDb3JuZXIoZSxjLGYsby5Db3JuZXJWZWN0b3JzQ2xvY2t3aXNlLmxlZnRVcCksbi5saW5lVG8obCxmKX19fSw0MDc1ODQoZSx0LG4pe24uZCh0LHtQYW5lUmVuZGVyZXJTcXVhcmU6KCk9PnJ9KTt2YXIgaT1uKDczNjUzMSksbz1uKDg3NDEzNSk7Y2xhc3MgciBleHRlbmRzIG8uUGFuZVJlbmRlcmVyQWJzdHJhY3RGaWxsU3Ryb2tlU2hhcGV7X2RyYXdJdGVtU2hhcGUoZSx0KXtjb25zdHtjb250ZXh0Om4saG9yaXpvbnRhbFBpeGVsUmF0aW86aSx2ZXJ0aWNhbFBpeGVsUmF0aW86b309ZSxyPU1hdGgubWF4KDEsTWF0aC5mbG9vcihpKSklMj8uNTowLHM9dGhpcy5fbGluZVdpZHRoKGUpJTI/LjU6MDtsZXQgYT1NYXRoLnJvdW5kKHQuaGVpZ2h0LzIqbyk7KHIrYSklMSE9cyUxJiYoYSs9LjUpO2NvbnN0IGg9TWF0aC5yb3VuZCh0LmNlbnRlcippKStyLGw9TWF0aC5yb3VuZCgodC55K3QudmVydE9mZnNldCkqbykrcixjPWgtYSxkPWwtYSxmPWgrYSxnPWwrYTtuLnJlY3QoYyxkLGYtYyxnLWQpfV9jYWxjQm91bmRpbmdCb3goZSl7Y29uc3QgdD1lLmhlaWdodCxuPU1hdGgucm91bmQodC8yKSxvPWUuY2VudGVyLW4scj1lLnZlcnRPZmZzZXQscz1lLnkrci1uLGE9byxoPW8rdCxsPXMsYz1zK3QsZD1uZXcgaS5Qb2ludChhLGwpLGY9bmV3IGkuUG9pbnQoaCxjKTtsZXQgZz0oMCxpLmJveCkoZCxmKTtjb25zdCB4PXN1cGVyLl9jYWxjQm91bmRpbmdCb3goZSk7cmV0dXJuIHgmJihnPXRoaXMuX3VuaW9uQm94KGcseCkpLGd9fX0sMTE4NzUyKGUsdCxuKXtuLmQodCx7UGFuZVJlbmRlcmVyVHJpYW5nbGVBcGV4RG93bjooKT0+YSxQYW5lUmVuZGVyZXJUcmlhbmdsZUFwZXhVcDooKT0+c30pO3ZhciBpPW4oNzM2NTMxKSxvPW4oODc0MTM1KTtjbGFzcyByIGV4dGVuZHMgby5QYW5lUmVuZGVyZXJBYnN0cmFjdEZpbGxTdHJva2VTaGFwZXtfY2FsY0JvdW5kaW5nQm94KGUpe2NvbnN0IHQ9ZS53aWR0aCxuPWUuaGVpZ2h0LG89dC8yLHI9TWF0aC5yb3VuZChuLzMpLHM9ZS5jZW50ZXIsYT1lLnZlcnRPZmZzZXQtMipyLGg9ZS55K2EsbD1zLW8sYz1zK28sZD1oLGY9aCtuLGc9bmV3IGkuUG9pbnQobCxkKSx4PW5ldyBpLlBvaW50KGMsZik7bGV0IHU9KDAsaS5ib3gpKGcseCk7Y29uc3QgXz1zdXBlci5fY2FsY0JvdW5kaW5nQm94KGUpO3JldHVybiBfJiYodT10aGlzLl91bmlvbkJveCh1LF8pKSx1fX1jbGFzcyBzIGV4dGVuZHMgcntfZHJhd0l0ZW1TaGFwZShlLHQpe2NvbnN0e2NvbnRleHQ6bixob3Jpem9udGFsUGl4ZWxSYXRpbzppLHZlcnRpY2FsUGl4ZWxSYXRpbzpvfT1lLHI9dC53aWR0aCxzPXQuaGVpZ2h0LGE9TWF0aC5yb3VuZChzLzMpLGg9dC52ZXJ0T2Zmc2V0LTIqYSxsPXRoaXMuX2xpbmVXaWR0aChlKSUyPy41OjAsYz1NYXRoLm1heCgxLE1hdGguZmxvb3IoaSkpLGQ9YyUyPy41OjA7bGV0IGY9TWF0aC5yb3VuZChyKmkpO2YlMiE9YyUyJiYoZis9MSk7Y29uc3QgZz1NYXRoLnJvdW5kKHQuY2VudGVyKmkpK2QseD1NYXRoLnJvdW5kKCh0LnkraCkqbyksdT1nK2YvMixfPU1hdGgucm91bmQoKHQueStoK3MpKm8pK2wsdz1nLWYvMjtuLm1vdmVUbyhnLHgpLG4ubGluZVRvKHUsXyksbi5saW5lVG8odyxfKSxuLmxpbmVUbyhnLHgpfX1jbGFzcyBhIGV4dGVuZHMgcntfZHJhd0l0ZW1TaGFwZShlLHQpe2NvbnN0e2NvbnRleHQ6bixob3Jpem9udGFsUGl4ZWxSYXRpbzppLHZlcnRpY2FsUGl4ZWxSYXRpbzpvfT1lLHI9dC53aWR0aCxzPXQuaGVpZ2h0LGE9TWF0aC5yb3VuZChzLzMpLGg9dC52ZXJ0T2Zmc2V0LWEsbD10aGlzLl9saW5lV2lkdGgoZSklMj8uNTowLGM9TWF0aC5tYXgoMSxNYXRoLmZsb29yKGkpKSxkPWMlMj8uNTowO2xldCBmPU1hdGgucm91bmQocippKTtmJTIhPWMlMiYmKGYrPTEpO2NvbnN0IGc9TWF0aC5yb3VuZCh0LmNlbnRlcippKStkLHg9TWF0aC5yb3VuZCgodC55K2gpKm8pK2wsdT1nK2YvMixfPU1hdGgucm91bmQoKHQueStoK3MpKm8pLHc9Zy1mLzI7bi5tb3ZlVG8odyx4KSxuLmxpbmVUbyh1LHgpLG4ubGluZVRvKGcsXyksbi5saW5lVG8odyx4KX19fSwzNjMzMjYoZSx0LG4pe24uZCh0LHtQYW5lUmVuZGVyZXJYQ3Jvc3M6KCk9PnJ9KTt2YXIgaT1uKDczNjUzMSksbz1uKDg3NDEzNSk7Y2xhc3MgciBleHRlbmRzIG8uUGFuZVJlbmRlcmVyQWJzdHJhY3RTdHJva2VTaGFwZXtfZHJhd0l0ZW1TaGFwZVVzaW5nQ1NTUGl4ZWxzKGUsdCl7Y29uc3Qgbj10LndpZHRoLGk9dC5oZWlnaHQsbz10LmNlbnRlci1uLzIscj10LnZlcnRPZmZzZXQscz10LnktaS8yK3I7ZS5tb3ZlVG8obyxzKSxlLmxpbmVUbyhvK24scytpKSxlLm1vdmVUbyhvLHMraSksZS5saW5lVG8obytuLHMpfV9jYWxjQm91bmRpbmdCb3goZSl7CmNvbnN0IHQ9ZS53aWR0aCxuPWUuaGVpZ2h0LG89ZS5jZW50ZXItdC8yLHI9ZS52ZXJ0T2Zmc2V0LHM9ZS55LW4vMityLGE9byxoPW8rdCxsPXMsYz1zK24sZD1uZXcgaS5Qb2ludChhLGwpLGY9bmV3IGkuUG9pbnQoaCxjKTtsZXQgZz0oMCxpLmJveCkoZCxmKTtjb25zdCB4PXN1cGVyLl9jYWxjQm91bmRpbmdCb3goZSk7cmV0dXJuIHgmJihnPXRoaXMuX3VuaW9uQm94KGcseCkpLGd9fX19XSk7"}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/50221.f49da2a7279774aa5fe8.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.516Z","timestamp":1785148034516,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/50221.f49da2a7279774aa5fe8.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\ncontent-type: text/css; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a58ab11-c5\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Thu, 16 Jul 2026 09:57:37 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/16/2026 11:03:22\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 0eb6bca4332575cf3676a105486ac796\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":197,"size_decoded":911,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with no line terminators","md5":"bc1901314fcc62f8ef539d88faeaca36","sha1":"ba55a4ec0d7824f8528bc278b9be78720717c84a","sha256":"026507e65d33327e7d6d98823d6fc3811034aa4a37822b71b643c63ed67730f4","sha512":"a067df264905a867bbb63d375d50b57eef2e9fbc7ee4f71675080a6027ba1e03725e3ad8d526bd8fd83638e2f7266526cbe7703db7bb22f0cf6c4ef13c7fa32d","ssdeep":"","tlshash":"3ed022b1e3b23017b921883ffe882acd12792036e210022c38dc266c4312b00d3204b1","first_seen":"2026-07-19T14:58:49.002434Z","last_seen":"2026-07-27T12:51:16.026704Z","times_seen":93,"resource_available":false,"data":"LndyYXBwZXItYm9IeW5lMTN7Ym9yZGVyOjFweCBzb2xpZH0ud3JhcHBlci1FaVNJQnY0ZHtib3JkZXItcmFkaXVzOjUwJX0ud3JhcHBlci1FaVNJQnY0ZCwud3JhcHBlci1hRGNTNGxlRywud3JhcHBlci1oVHpmYXQ5NXtiYWNrZ3JvdW5kLWNvbG9yOmN1cnJlbnRDb2xvcn0ud3JhcHBlci1hRGNTNGxlR3toZWlnaHQ6MjRweDt3aWR0aDoxMDBweH0="}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/94182.20dcc78c0e8481d43470.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.881Z","timestamp":1785148034881,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/94182.20dcc78c0e8481d43470.js HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a632877-b02f\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Fri, 24 Jul 2026 08:55:19 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/24/2026 10:32:20\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: df18e9dddda2e5b234a429d23493ea9e\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":45103,"size_decoded":16668,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (3072)","md5":"5a2380075925f18578f9043511cb5b12","sha1":"a89076a99f906900ebf6a78bc305b7b2907d7794","sha256":"7f56a7ac4a4376433411c3cd6213d48206bb2ed08ba1b8ee1519620f3eb132cf","sha512":"d60a540c2abc402cab06057de531847ef6070b0c5ad402f1181bd89685f8be78a4d1815106dca4af25d9c113e462c9987a00ff0c9ce3f721e2e94a23594cfa78","ssdeep":"768:E2CI3hNueL6Qan+eNW3jLNL+eZvCB3vZGvWw8UlXyKbuCq:E2CMZEWv30AP6","tlshash":"f61319a17120a4ed43ebc5efd11e0948f36b7a1cf4425c21f1bdccdd66a4498b13aba9","first_seen":"2026-07-27T03:26:09.115016Z","last_seen":"2026-07-27T10:53:39.262308Z","times_seen":8,"resource_available":true,"data":"KHNlbGYud2VicGFja0NodW5rdHJhZGluZ3ZpZXc9c2VsZi53ZWJwYWNrQ2h1bmt0cmFkaW5ndmlld3x8W10pLnB1c2goW1s2ODMwNCw5MjkxNiw5NDE4Ml0sezY3MzM1KGUpe2UuZXhwb3J0cz17Y29udGFpbmVyOiJjb250YWluZXItQnJ3cG9KWEsiLGltYWdlOiJpbWFnZS1Ccndwb0pYSyIsdGl0bGU6InRpdGxlLUJyd3BvSlhLIixkZXNjcmlwdGlvbjoiZGVzY3JpcHRpb24tQnJ3cG9KWEsiLGJ1dHRvbjoiYnV0dG9uLUJyd3BvSlhLIn19LDkyNTc5MShlKXtlLmV4cG9ydHM9e2Vycm9yczoiZXJyb3JzLVJzVExfRjNLIixzaG93OiJzaG93LVJzVExfRjNLIixlcnJvcjoiZXJyb3ItUnNUTF9GM0siLCJ2aXN1YWxseS1oaWRkZW4iOiJ2aXN1YWxseS1oaWRkZW4tUnNUTF9GM0sifX0sMjA3MzQyKGUpe2UuZXhwb3J0cz17Y29udGFpbmVyOiJjb250YWluZXItTjg0WFNjR24iLCJjb250YWluZXIteHhzbWFsbCI6ImNvbnRhaW5lci14eHNtYWxsLU44NFhTY0duIiwiY29udGFpbmVyLXhzbWFsbCI6ImNvbnRhaW5lci14c21hbGwtTjg0WFNjR24iLCJjb250YWluZXItc21hbGwiOiJjb250YWluZXItc21hbGwtTjg0WFNjR24iLCJjb250YWluZXItbWVkaXVtIjoiY29udGFpbmVyLW1lZGl1bS1OODRYU2NHbiIsImNvbnRhaW5lci1sYXJnZSI6ImNvbnRhaW5lci1sYXJnZS1OODRYU2NHbiIsImludGVudC1kZWZhdWx0IjoiaW50ZW50LWRlZmF1bHQtTjg0WFNjR24iLGZvY3VzZWQ6ImZvY3VzZWQtTjg0WFNjR24iLHJlYWRvbmx5OiJyZWFkb25seS1OODRYU2NHbiIsZGlzYWJsZWQ6ImRpc2FibGVkLU44NFhTY0duIiwid2l0aC1oaWdobGlnaHQiOiJ3aXRoLWhpZ2hsaWdodC1OODRYU2NHbiIsZ3JvdXBlZDoiZ3JvdXBlZC1OODRYU2NHbiIsImFkanVzdC1wb3NpdGlvbiI6ImFkanVzdC1wb3NpdGlvbi1OODRYU2NHbiIsImZpcnN0LXJvdyI6ImZpcnN0LXJvdy1OODRYU2NHbiIsImZpcnN0LWNvbCI6ImZpcnN0LWNvbC1OODRYU2NHbiIsc3RyZXRjaDoic3RyZXRjaC1OODRYU2NHbiIsImZvbnQtc2l6ZS1tZWRpdW0iOiJmb250LXNpemUtbWVkaXVtLU44NFhTY0duIiwiZm9udC1zaXplLWxhcmdlIjoiZm9udC1zaXplLWxhcmdlLU44NFhTY0duIiwibm8tY29ybmVyLXRvcC1sZWZ0Ijoibm8tY29ybmVyLXRvcC1sZWZ0LU44NFhTY0duIiwibm8tY29ybmVyLXRvcC1yaWdodCI6Im5vLWNvcm5lci10b3AtcmlnaHQtTjg0WFNjR24iLCJuby1jb3JuZXItYm90dG9tLXJpZ2h0Ijoibm8tY29ybmVyLWJvdHRvbS1yaWdodC1OODRYU2NHbiIsIm5vLWNvcm5lci1ib3R0b20tbGVmdCI6Im5vLWNvcm5lci1ib3R0b20tbGVmdC1OODRYU2NHbiIsInNpemUteHhzbWFsbCI6InNpemUteHhzbWFsbC1OODRYU2NHbiIsInNpemUteHNtYWxsIjoic2l6ZS14c21hbGwtTjg0WFNjR24iLCJzaXplLXNtYWxsIjoic2l6ZS1zbWFsbC1OODRYU2NHbiIsInNpemUtbWVkaXVtIjoic2l6ZS1tZWRpdW0tTjg0WFNjR24iLCJzaXplLWxhcmdlIjoic2l6ZS1sYXJnZS1OODRYU2NHbiIsImludGVudC1zdWNjZXNzIjoiaW50ZW50LXN1Y2Nlc3MtTjg0WFNjR24iLCJpbnRlbnQtd2FybmluZyI6ImludGVudC13YXJuaW5nLU44NFhTY0duIiwiaW50ZW50LWRhbmdlciI6ImludGVudC1kYW5nZXItTjg0WFNjR24iLCJpbnRlbnQtcHJpbWFyeSI6ImludGVudC1wcmltYXJ5LU44NFhTY0duIiwiYm9yZGVyLW5vbmUiOiJib3JkZXItbm9uZS1OODRYU2NHbiIsImJvcmRlci10aGluIjoiYm9yZGVyLXRoaW4tTjg0WFNjR24iLCJib3JkZXItdGhpY2siOiJib3JkZXItdGhpY2stTjg0WFNjR24iLGhpZ2hsaWdodDoiaGlnaGxpZ2h0LU44NFhTY0duIixzaG93bjoic2hvd24tTjg0WFNjR24ifX0sODk0NDY0KGUpe2UuZXhwb3J0cz17ImlubmVyLXNsb3QiOiJpbm5lci1zbG90LU5iR3B0RDVqIixpbnRlcmFjdGl2ZToiaW50ZXJhY3RpdmUtTmJHcHRENWoiLGljb246Imljb24tTmJHcHRENWoiLCJpbm5lci1taWRkbGUtc2xvdCI6ImlubmVyLW1pZGRsZS1zbG90LU5iR3B0RDVqIiwiYmVmb3JlLXNsb3QiOiJiZWZvcmUtc2xvdC1OYkdwdEQ1aiIsImFmdGVyLXNsb3QiOiJhZnRlci1zbG90LU5iR3B0RDVqIn19LDUyNzc0NChlKXtlLmV4cG9ydHM9eyJ0ZXh0YXJlYS1jb250YWluZXIiOiJ0ZXh0YXJlYS1jb250YWluZXItbXFoc2xhZUkiLCJjaGFuZ2UtaGlnaGxpZ2h0IjoiY2hhbmdlLWhpZ2hsaWdodC1tcWhzbGFlSSIsZm9jdXNlZDoiZm9jdXNlZC1tcWhzbGFlSSIsInJlc2l6ZS12ZXJ0aWNhbCI6InJlc2l6ZS12ZXJ0aWNhbC1tcWhzbGFlSSIsInJlc2l6ZS1ob3Jpem9udGFsIjoicmVzaXplLWhvcml6b250YWwtbXFoc2xhZUkiLCJyZXNpemUtYm90aCI6InJlc2l6ZS1ib3RoLW1xaHNsYWVJIix0ZXh0YXJlYToidGV4dGFyZWEtbXFoc2xhZUkiLCJ3aXRoLWljb24iOiJ3aXRoLWljb24tbXFoc2xhZUkiLGVuZHNsb3Q6ImVuZHNsb3QtbXFoc2xhZUkifX0sNDI5MzUzKGUpe2UuZXhwb3J0cz17ZGlzYWJsZVNlbGZQb3NpdGlvbmluZzoiZGlzYWJsZVNlbGZQb3NpdGlvbmluZy1MclpwNFJPQyJ9fSwyMTY2MzQoZSl7ZS5leHBvcnRzPXtoZWFkZXI6ImhlYWRlci1LajVEMHdTRiIsYmFja0J0bjoiYmFja0J0bi1LajVEMHdTRiIsbG9nb0ljb246ImxvZ29JY29uLUtqNUQwd1NGIixyaWdodFNsb3Q6InJpZ2h0U2xvdC1LajVEMHdTRiIsdGV4dDoidGV4dC1LajVEMHdTRiIsbW9iaWxlOiJtb2JpbGUtS2o1RDB3U0YifX0sNzc1MjIwKGUpe2UuZXhwb3J0cz17Y29udGVudElucHV0OiJjb250ZW50SW5wdXQta1V4cXNQWmkiLGlucHV0QXJlYToiaW5wdXRBcmVhLWtVeHFzUFppIixpbnB1dDoiaW5wdXQta1V4cXNQWmkiLGVubGFyZ2VkSW5wdXRBcmVhOiJlbmxhcmdlZElucHV0QXJlYS1rVXhxc1BaaSIsbW9iaWxlOiJtb2JpbGUta1V4cXNQWmkiLHRvb2xzOiJ0b29scy1rVXhxc1BaaSIsYWN0aW9uczoiYWN0aW9ucy1rVXhxc1BaaSIsYWN0aW9uQnRuOiJhY3Rpb25CdG4ta1V4cXNQWmkiLHByZXZpZXdXcmFwOiJwcmV2aWV3V3JhcC1rVXhxc1BaaSIsZW5sYXJnZWRQcmV2aWV3V3JhcDoiZW5sYXJnZWRQcmV2aWV3V3JhcC1rVXhxc1BaaSIsCnByZXZpZXdJbWFnZVdyYXA6InByZXZpZXdJbWFnZVdyYXAta1V4cXNQWmkiLHByZXZpZXdJbWFnZToicHJldmlld0ltYWdlLWtVeHFzUFppIixyZW1vdmVCdXR0b246InJlbW92ZUJ1dHRvbi1rVXhxc1BaaSIscmVtb3ZlSWNvbjoicmVtb3ZlSWNvbi1rVXhxc1BaaSIsc3Bpbm5lcjoic3Bpbm5lci1rVXhxc1BaaSIsc25hcHNob3RCdXR0b246InNuYXBzaG90QnV0dG9uLWtVeHFzUFppIixkaXNhYmxlZDoiZGlzYWJsZWQta1V4cXNQWmkifX0sNDU1MjQ2KGUpe2UuZXhwb3J0cz17Z3JvdXBEZXRhaWxlZDoiZ3JvdXBEZXRhaWxlZC12elVZYk9OMCIsc21hbGxIZWlnaHQ6InNtYWxsSGVpZ2h0LXZ6VVliT04wIixpdGVtc0NvbnRhaW5lcjoiaXRlbXNDb250YWluZXItdnpVWWJPTjAiLGVtcHR5OiJlbXB0eS12elVZYk9OMCIsaXRlbXNXcmFwcGVyOiJpdGVtc1dyYXBwZXItdnpVWWJPTjAiLGNvbnRlbnRJbnB1dDoiY29udGVudElucHV0LXZ6VVliT04wIixpbnB1dFNlcGFyYXRvcjoiaW5wdXRTZXBhcmF0b3ItdnpVWWJPTjAiLGVtcHR5U3RhdGU6ImVtcHR5U3RhdGUtdnpVWWJPTjAifX0sNzY4NDc0KGUpe2UuZXhwb3J0cz17Z3JvdXBQcmV2aWV3OiJncm91cFByZXZpZXctb0RFXzZIbEMiLGhlYWRlcjoiaGVhZGVyLW9ERV82SGxDIixsb2dvSWNvbjoibG9nb0ljb24tb0RFXzZIbEMiLHRpdGxlOiJ0aXRsZS1vREVfNkhsQyIsY29udGVudDoiY29udGVudC1vREVfNkhsQyIsZW1wdHk6ImVtcHR5LW9ERV82SGxDIixkYXRlOiJkYXRlLW9ERV82SGxDIn19LDUzOTkwMChlKXtlLmV4cG9ydHM9e3N5bWJvbE5vdGVJdGVtOiJzeW1ib2xOb3RlSXRlbS1lZmxXNFlzZSIsZWRpdE1vZGU6ImVkaXRNb2RlLWVmbFc0WXNlIixidXR0b25XcmFwOiJidXR0b25XcmFwLWVmbFc0WXNlIixidXR0b246ImJ1dHRvbi1lZmxXNFlzZSIsY29udGVudDoiY29udGVudC1lZmxXNFlzZSIsbW9iaWxlOiJtb2JpbGUtZWZsVzRZc2UiLGluZm86ImluZm8tZWZsVzRZc2UiLGRhdGU6ImRhdGUtZWZsVzRZc2UiLGZvcmNlVmlzaWJsZToiZm9yY2VWaXNpYmxlLWVmbFc0WXNlIixjaGFydFByZXZpZXc6ImNoYXJ0UHJldmlldy1lZmxXNFlzZSIsZHJhd2VySXRlbToiZHJhd2VySXRlbS1lZmxXNFlzZSJ9fSw2NDE4NzYoZSl7ZS5leHBvcnRzPXtidXR0b246ImJ1dHRvbi1FMXE3Rm1pZSJ9fSw5MTYwODYoZSl7ZS5leHBvcnRzPXtzeW1ib2xOb3Rlczoic3ltYm9sTm90ZXMtdTAwUTdxcnciLGVtcHR5OiJlbXB0eS11MDBRN3FydyJ9fSwxMDIyODAoZSl7ZS5leHBvcnRzPXtoZWFkZXI6ImhlYWRlci1zMzMxa1JKUyIsYmFja0J0bjoiYmFja0J0bi1zMzMxa1JKUyIsdGV4dDoidGV4dC1zMzMxa1JKUyIsbW9iaWxlOiJtb2JpbGUtczMzMWtSSlMifX0sMjk4MDg2KGUpe2UuZXhwb3J0cz17YnV0dG9uOiJidXR0b24tRkR0aURieWoifX0sODcxNzQ1KGUpe2UuZXhwb3J0cz17Zm9ybVRleHRhcmVhOiJmb3JtVGV4dGFyZWEtTTRSUWRibU0iLCJlbmQtc2xvdCI6ImVuZC1zbG90LU00UlFkYm1NIn19LDg2ODExMChlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHthbmNob3JzOigpPT5zLG1ha2VBbmNob3JhYmxlOigpPT5yfSk7dmFyIG8sYT1uKDc3OTQ3NCk7IWZ1bmN0aW9uKGUpe2UuVG9wPSJ0b3AiLGUuQm90dG9tPSJib3R0b20iLGUuVG9wUmlnaHQ9InRvcFJpZ2h0In0ob3x8KG89e30pKTtjb25zdCBzPXtib3R0b206e2F0dGFjaG1lbnQ6e2hvcml6b250YWw6ImxlZnQiLHZlcnRpY2FsOiJ0b3AifSx0YXJnZXRBdHRhY2htZW50Ontob3Jpem9udGFsOiJsZWZ0Iix2ZXJ0aWNhbDoiYm90dG9tIn19LHRvcDp7YXR0YWNobWVudDp7aG9yaXpvbnRhbDoibGVmdCIsdmVydGljYWw6ImJvdHRvbSJ9LHRhcmdldEF0dGFjaG1lbnQ6e2hvcml6b250YWw6ImxlZnQiLHZlcnRpY2FsOiJ0b3AifX0sdG9wUmlnaHQ6e2F0dGFjaG1lbnQ6e2hvcml6b250YWw6InJpZ2h0Iix2ZXJ0aWNhbDoiYm90dG9tIn0sdGFyZ2V0QXR0YWNobWVudDp7aG9yaXpvbnRhbDoicmlnaHQiLHZlcnRpY2FsOiJ0b3AifX0sYm90dG9tUmlnaHQ6e2F0dGFjaG1lbnQ6e2hvcml6b250YWw6InJpZ2h0Iix2ZXJ0aWNhbDoidG9wIn0sdGFyZ2V0QXR0YWNobWVudDp7aG9yaXpvbnRhbDoicmlnaHQiLHZlcnRpY2FsOiJib3R0b20ifX19O2Z1bmN0aW9uIHIoZSl7dmFyIHQ7cmV0dXJuKHQ9Y2xhc3MgZXh0ZW5kcyBhLlB1cmVDb21wb25lbnR7cmVuZGVyKCl7Y29uc3R7YW5jaG9yOnQ9ImJvdHRvbSJ9PXRoaXMucHJvcHM7cmV0dXJuIGEuY3JlYXRlRWxlbWVudChlLHsuLi50aGlzLnByb3BzLGF0dGFjaG1lbnQ6c1t0XS5hdHRhY2htZW50LHRhcmdldEF0dGFjaG1lbnQ6c1t0XS50YXJnZXRBdHRhY2htZW50fSl9fSkuZGlzcGxheU5hbWU9IkFuY2hvcmFibGUgQ29tcG9uZW50Iix0fX0sMzg0MzcwKGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse21ha2VBdHRhY2hhYmxlOigpPT5zfSk7dmFyIG89big3Nzk0NzQpLGE9bigxMjkzNjUpO2Z1bmN0aW9uIHMoZSl7dmFyIHQ7cmV0dXJuKHQ9Y2xhc3MgZXh0ZW5kcyBvLlB1cmVDb21wb25lbnR7Y29uc3RydWN0b3IoZSl7c3VwZXIoZSksdGhpcy5fZ2V0Q29tcG9uZW50SW5zdGFuY2U9ZT0+e3RoaXMuX2luc3RhbmNlPWV9LHRoaXMuX3Rocm90dGxlQ2FsY1Byb3BzPSgpPT57cmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgoKT0+dGhpcy5zZXRTdGF0ZSh0aGlzLl9jYWxjUHJvcHModGhpcy5wcm9wcykpKSl9LHRoaXMuc3RhdGU9dGhpcy5fZ2V0U3RhdGVGcm9tUHJvcHMoKX1jb21wb25lbnREaWRNb3VudCgpe3RoaXMuX2luc3RhbmNlRWxlbT1hLmZpbmRET01Ob2RlKHRoaXMuX2luc3RhbmNlKSx0aGlzLnByb3BzLmF0dGFjaE9uY2V8fHRoaXMuX3N1YnNjcmliZSgpLHRoaXMuc2V0U3RhdGUodGhpcy5fY2FsY1Byb3BzKHRoaXMucHJvcHMpKX1jb21wb25lbnREaWRVcGRhdGUoZSl7CmUuY2hpbGRyZW49PT10aGlzLnByb3BzLmNoaWxkcmVuJiZlLnRvcD09PXRoaXMucHJvcHMudG9wJiZlLmxlZnQ9PT10aGlzLnByb3BzLmxlZnQmJmUud2lkdGg9PT10aGlzLnByb3BzLndpZHRofHx0aGlzLnNldFN0YXRlKHRoaXMuX2dldFN0YXRlRnJvbVByb3BzKCksKCgpPT50aGlzLnNldFN0YXRlKHRoaXMuX2NhbGNQcm9wcyh0aGlzLnByb3BzKSkpKX1yZW5kZXIoKXtyZXR1cm4gby5jcmVhdGVFbGVtZW50KCJkaXYiLHtzdHlsZTp7cG9zaXRpb246ImFic29sdXRlIix3aWR0aDoiMTAwJSIsdG9wOjAsbGVmdDowfX0sby5jcmVhdGVFbGVtZW50KGUsey4uLnRoaXMucHJvcHMscmVmOnRoaXMuX2dldENvbXBvbmVudEluc3RhbmNlLHRvcDp0aGlzLnN0YXRlLnRvcCxib3R0b206dm9pZCAwIT09dGhpcy5zdGF0ZS5ib3R0b20/dGhpcy5zdGF0ZS5ib3R0b206ImF1dG8iLHJpZ2h0OnZvaWQgMCE9PXRoaXMuc3RhdGUucmlnaHQ/dGhpcy5zdGF0ZS5yaWdodDoiYXV0byIsbGVmdDp0aGlzLnN0YXRlLmxlZnQsd2lkdGg6dGhpcy5zdGF0ZS53aWR0aCxtYXhXaWR0aDp0aGlzLnN0YXRlLm1heFdpZHRofSx0aGlzLnByb3BzLmNoaWxkcmVuKSl9Y29tcG9uZW50V2lsbFVubW91bnQoKXt0aGlzLl91bnN1YnNyaWJlKCl9X2dldFN0YXRlRnJvbVByb3BzKCl7cmV0dXJue2JvdHRvbTp0aGlzLnByb3BzLmJvdHRvbSxsZWZ0OnRoaXMucHJvcHMubGVmdCxyaWdodDp0aGlzLnByb3BzLnJpZ2h0LHRvcDp2b2lkIDAhPT10aGlzLnByb3BzLnRvcD90aGlzLnByb3BzLnRvcDotMWU0LHdpZHRoOnRoaXMucHJvcHMuaW5oZXJpdFdpZHRoRnJvbVRhcmdldD90aGlzLnByb3BzLnRhcmdldCYmdGhpcy5wcm9wcy50YXJnZXQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGg6dGhpcy5wcm9wcy53aWR0aCxtYXhXaWR0aDp0aGlzLnByb3BzLmluaGVyaXRNYXhXaWR0aEZyb21UYXJnZXQmJnRoaXMucHJvcHMudGFyZ2V0JiZ0aGlzLnByb3BzLnRhcmdldC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aH19X2NhbGNQcm9wcyhlKXtpZihlLnRhcmdldCYmZS5hdHRhY2htZW50JiZlLnRhcmdldEF0dGFjaG1lbnQpe2NvbnN0IHQ9dGhpcy5fY2FsY1RhcmdldFByb3BzKGUudGFyZ2V0LGUuYXR0YWNobWVudCxlLnRhcmdldEF0dGFjaG1lbnQpO2lmKG51bGw9PT10KXJldHVybnt9O2NvbnN0e3dpZHRoOm4saW5oZXJpdFdpZHRoRnJvbVRhcmdldDpvPSEwLGluaGVyaXRNYXhXaWR0aEZyb21UYXJnZXQ6YT0hMX09dGhpcy5wcm9wcyxzPXt3aWR0aDpvP3Qud2lkdGg6bixtYXhXaWR0aDphP3Qud2lkdGg6dm9pZCAwfTtzd2l0Y2goZS5hdHRhY2htZW50LnZlcnRpY2FsKXtjYXNlImJvdHRvbSI6Y2FzZSJtaWRkbGUiOnMudG9wPXQueTticmVhaztkZWZhdWx0OnNbZS5hdHRhY2htZW50LnZlcnRpY2FsXT10Lnl9c3dpdGNoKGUuYXR0YWNobWVudC5ob3Jpem9udGFsKXtjYXNlInJpZ2h0IjpjYXNlImNlbnRlciI6cy5sZWZ0PXQueDticmVhaztkZWZhdWx0OnNbZS5hdHRhY2htZW50Lmhvcml6b250YWxdPXQueH1yZXR1cm4gc31yZXR1cm57fX1fY2FsY1RhcmdldFByb3BzKGUsdCxuKXtjb25zdCBvPWUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksYT10aGlzLl9pbnN0YW5jZUVsZW0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkscz0icGFyZW50Ij09PXRoaXMucHJvcHMucm9vdD90aGlzLl9nZXRDb29yZHNSZWxUb1BhcmVudEVsKGUsbyk6dGhpcy5fZ2V0Q29vcmRzUmVsVG9Eb2N1bWVudChvKTtpZihudWxsPT09cylyZXR1cm4gbnVsbDtjb25zdCByPXRoaXMuX2dldERpbWVuc2lvbnMoYSksaT10aGlzLl9nZXREaW1lbnNpb25zKG8pLndpZHRoO2xldCBsPTAsYz0wO3N3aXRjaCh0LnZlcnRpY2FsKXtjYXNlInRvcCI6Yz1zW24udmVydGljYWxdO2JyZWFrO2Nhc2UiYm90dG9tIjpjPXNbbi52ZXJ0aWNhbF0tci5oZWlnaHQ7YnJlYWs7Y2FzZSJtaWRkbGUiOmM9c1tuLnZlcnRpY2FsXS1yLmhlaWdodC8yfXN3aXRjaCh0Lmhvcml6b250YWwpe2Nhc2UibGVmdCI6bD1zW24uaG9yaXpvbnRhbF07YnJlYWs7Y2FzZSJyaWdodCI6bD1zW24uaG9yaXpvbnRhbF0tci53aWR0aDticmVhaztjYXNlImNlbnRlciI6bD1zW24uaG9yaXpvbnRhbF0tci53aWR0aC8yfXJldHVybiJudW1iZXIiPT10eXBlb2YgdGhpcy5wcm9wcy5hdHRhY2htZW50T2Zmc2V0WSYmKGMrPXRoaXMucHJvcHMuYXR0YWNobWVudE9mZnNldFkpLCJudW1iZXIiPT10eXBlb2YgdGhpcy5wcm9wcy5hdHRhY2htZW50T2Zmc2V0WCYmKGwrPXRoaXMucHJvcHMuYXR0YWNobWVudE9mZnNldFgpLHt4OmwseTpjLHdpZHRoOml9fV9nZXRDb29yZHNSZWxUb0RvY3VtZW50KGUpe2NvbnN0IHQ9cGFnZVlPZmZzZXQsbj1wYWdlWE9mZnNldCxvPWUudG9wK3QsYT1lLmJvdHRvbSt0LHM9ZS5sZWZ0K247cmV0dXJue3RvcDpvLGJvdHRvbTphLGxlZnQ6cyxyaWdodDplLnJpZ2h0K24sbWlkZGxlOihvK2UuaGVpZ2h0KS8yLGNlbnRlcjpzK2Uud2lkdGgvMn19X2dldENvb3Jkc1JlbFRvUGFyZW50RWwoZSx0KXtjb25zdCBuPWUub2Zmc2V0UGFyZW50O2lmKG51bGw9PT1uKXJldHVybiBudWxsO2NvbnN0IG89bi5zY3JvbGxUb3AsYT1uLnNjcm9sbExlZnQscz1lLm9mZnNldFRvcCtvLHI9ZS5vZmZzZXRMZWZ0K2EsaT10LndpZHRoK3I7cmV0dXJue3RvcDpzLGJvdHRvbTp0LmhlaWdodCtzLGxlZnQ6cixyaWdodDppLG1pZGRsZToocyt0LmhlaWdodCkvMixjZW50ZXI6KHIrdC53aWR0aCkvMn19X2dldERpbWVuc2lvbnMoZSl7cmV0dXJue2hlaWdodDplLmhlaWdodCx3aWR0aDplLndpZHRofX1fc3Vic2NyaWJlKCl7ImRvY3VtZW50Ij09PXRoaXMucHJvcHMucm9vdCYmKHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJzY3JvbGwiLHRoaXMuX3Rocm90dGxlQ2FsY1Byb3BzLCEwKSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicmVzaXplIix0aGlzLl90aHJvdHRsZUNhbGNQcm9wcykpfV91bnN1YnNyaWJlKCl7d2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoInNjcm9sbCIsdGhpcy5fdGhyb3R0bGVDYWxjUHJvcHMsITApLAp3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigicmVzaXplIix0aGlzLl90aHJvdHRsZUNhbGNQcm9wcyl9fSkuZGlzcGxheU5hbWU9IkF0dGFjaGFibGUgQ29tcG9uZW50Iix0fX0sNjU2NDQyKGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse0NvbnRlbnRJc05vdEZvdW5kOigpPT51fSk7dmFyIG89big3Nzk0NzQpLGE9big5MTQ0ODcpLHM9bi5uKGEpLHI9bigyNzMzMTApLGk9big2NzQ3NDkpLGw9big2NzMzNSksYz1uLm4obCk7ZnVuY3Rpb24gdShlKXtjb25zdHtjbGFzc05hbWU6dCxpY29uOm4sdGl0bGU6YSxkZXNjcmlwdGlvbjpsLGJ1dHRvblRleHQ6dSxidXR0b25BY3Rpb246ZH09ZTtyZXR1cm4gby5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6cygpKGMoKS5jb250YWluZXIsdCl9LG4mJm8uY3JlYXRlRWxlbWVudChyLkljb24se2ljb246bixjbGFzc05hbWU6YygpLmltYWdlfSksYSYmby5jcmVhdGVFbGVtZW50KCJoMyIse2NsYXNzTmFtZTpjKCkudGl0bGV9LGEpLGwmJm8uY3JlYXRlRWxlbWVudCgicCIse2NsYXNzTmFtZTpjKCkuZGVzY3JpcHRpb259LGwpLHUmJmQmJm8uY3JlYXRlRWxlbWVudChpLkJ1dHRvbix7b25DbGljazpkLGNsYXNzTmFtZTpjKCkuYnV0dG9ufSx1KSl9fSw2NzQ3NDkoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7QnV0dG9uOigpPT5tfSk7dmFyIG8sYSxzLHI9big3Nzk0NzQpLGk9bigyOTU3NDQpO2Z1bmN0aW9uIGwoZT0iZGVmYXVsdCIpe3N3aXRjaChlKXtjYXNlImRlZmF1bHQiOnJldHVybiJwcmltYXJ5IjtjYXNlInN0cm9rZSI6cmV0dXJuInNlY29uZGFyeSJ9fWZ1bmN0aW9uIGMoZT0icHJpbWFyeSIpe3N3aXRjaChlKXtjYXNlInByaW1hcnkiOnJldHVybiJicmFuZCI7Y2FzZSJzdWNjZXNzIjpyZXR1cm4iZ3JlZW4iO2Nhc2UiZGVmYXVsdCI6cmV0dXJuImdyYXkiO2Nhc2UiZGFuZ2VyIjpyZXR1cm4icmVkIn19ZnVuY3Rpb24gdShlPSJtIil7c3dpdGNoKGUpe2Nhc2UicyI6cmV0dXJuInhzbWFsbCI7Y2FzZSJtIjpyZXR1cm4ic21hbGwiO2Nhc2UibCI6cmV0dXJuImxhcmdlIn19ZnVuY3Rpb24gZChlKXtjb25zdHtpbnRlbnQ6dCxzaXplOm4sYXBwZWFyYW5jZTpvLHVzZUZ1bGxXaWR0aDphLGljb246cywuLi5yfT1lO3JldHVybnsuLi5yLGNvbG9yOmModCksc2l6ZTp1KG4pLHZhcmlhbnQ6bChvKSxzdHJldGNoOmF9fWZ1bmN0aW9uIG0oZSl7cmV0dXJuIHIuY3JlYXRlRWxlbWVudChpLlNxdWFyZUJ1dHRvbix7Li4uZChlKX0pfSFmdW5jdGlvbihlKXtlLlByaW1hcnk9InByaW1hcnkiLGUuU3VjY2Vzcz0ic3VjY2VzcyIsZS5EZWZhdWx0PSJkZWZhdWx0IixlLkRhbmdlcj0iZGFuZ2VyIn0ob3x8KG89e30pKSxmdW5jdGlvbihlKXtlLlNtYWxsPSJzIixlLk1lZGl1bT0ibSIsZS5MYXJnZT0ibCJ9KGF8fChhPXt9KSksZnVuY3Rpb24oZSl7ZS5EZWZhdWx0PSJkZWZhdWx0IixlLlN0cm9rZT0ic3Ryb2tlIn0oc3x8KHM9e30pKX0sNTYwNDkxKGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse0NvbnRyb2xTa2VsZXRvbjooKT0+dyxJbnB1dENsYXNzZXM6KCk9PmZ9KTt2YXIgbz1uKDc3OTQ3NCksYT1uKDkxNDQ4Nykscz1uLm4oYSkscj1uKDEzODYzOCksaT1uKDMxOTY5KSxsPW4oMzQ1MTE2KSxjPW4oNTMyMDExKSx1PW4oNjA1MTQxKTt2YXIgZD1uKDIwNzM0MiksbT1uLm4oZCk7ZnVuY3Rpb24gaChlKXtsZXQgdD0iIjtyZXR1cm4gMCE9PWUmJigxJmUmJih0PXMoKSh0LG0oKVsibm8tY29ybmVyLXRvcC1sZWZ0Il0pKSwyJmUmJih0PXMoKSh0LG0oKVsibm8tY29ybmVyLXRvcC1yaWdodCJdKSksNCZlJiYodD1zKCkodCxtKClbIm5vLWNvcm5lci1ib3R0b20tcmlnaHQiXSkpLDgmZSYmKHQ9cygpKHQsbSgpWyJuby1jb3JuZXItYm90dG9tLWxlZnQiXSkpKSx0fWZ1bmN0aW9uIHAoZSx0LG4sbyl7Y29uc3R7cmVtb3ZlUm91bmRCb3JkZXI6YSxjbGFzc05hbWU6cixpbnRlbnQ6aT0iZGVmYXVsdCIsYm9yZGVyU3R5bGU6bD0idGhpbiIsc2l6ZTpjLGhpZ2hsaWdodDpkLGRpc2FibGVkOnAscmVhZG9ubHk6ZyxzdHJldGNoOmYsbm9SZWFkb25seVN0eWxlczp2LGlzRm9jdXNlZDpifT1lLHc9aChhPz8oMCx1LmdldEdyb3VwQ2VsbFJlbW92ZVJvdW5kQm9yZGVycykobikpO3JldHVybiBzKCkobSgpLmNvbnRhaW5lcixtKClbYGNvbnRhaW5lci0ke2N9YF0sbSgpW2BpbnRlbnQtJHtpfWBdLG0oKVtgYm9yZGVyLSR7bH1gXSxjJiZtKClbYHNpemUtJHtjfWBdLHcsZCYmbSgpWyJ3aXRoLWhpZ2hsaWdodCJdLHAmJm0oKS5kaXNhYmxlZCxnJiYhdiYmbSgpLnJlYWRvbmx5LGImJm0oKS5mb2N1c2VkLGYmJm0oKS5zdHJldGNoLHQmJm0oKS5ncm91cGVkLCFvJiZtKClbImFkanVzdC1wb3NpdGlvbiJdLG4uaXNUb3AmJm0oKVsiZmlyc3Qtcm93Il0sbi5pc0xlZnQmJm0oKVsiZmlyc3QtY29sIl0scil9ZnVuY3Rpb24gZyhlLHQsbil7Y29uc3R7aGlnaGxpZ2h0Om8saGlnaGxpZ2h0UmVtb3ZlUm91bmRCb3JkZXI6YX09ZTtpZighbylyZXR1cm4gbSgpLmhpZ2hsaWdodDtjb25zdCByPWgoYT8/KDAsdS5nZXRHcm91cENlbGxSZW1vdmVSb3VuZEJvcmRlcnMpKHQpKTtyZXR1cm4gcygpKG0oKS5oaWdobGlnaHQsbSgpLnNob3duLG0oKVtgc2l6ZS0ke259YF0scil9Y29uc3QgZj17Rm9udFNpemVNZWRpdW06KDAsci5lbnN1cmVEZWZpbmVkKShtKClbImZvbnQtc2l6ZS1tZWRpdW0iXSksRm9udFNpemVMYXJnZTooMCxyLmVuc3VyZURlZmluZWQpKG0oKVsiZm9udC1zaXplLWxhcmdlIl0pfSx2PXtwYXNzaXZlOiExfTtmdW5jdGlvbiBiKGUsdCl7CmNvbnN0e3N0eWxlOm4saWQ6YSxyb2xlOnMsb25Gb2N1czpyLG9uQmx1cjp1LG9uTW91c2VPdmVyOmQsb25Nb3VzZU91dDptLG9uTW91c2VFbnRlcjpoLG9uTW91c2VMZWF2ZTpmLG9uTW91c2VEb3duOmIsb25Nb3VzZVVwOncsb25LZXlEb3duOlMsb25DbGljazpOLHRhYkluZGV4OkUsc3RhcnRTbG90OnksbWlkZGxlU2xvdDpJLGVuZFNsb3Q6eCxvbldoZWVsOkMsb25XaGVlbE5vUGFzc2l2ZTpNPW51bGwsc2l6ZTprLHRhZzpEPSJzcGFuIix0eXBlOkF9PWUse2lzR3JvdXBlZDpGLGNlbGxTdGF0ZTpSLGRpc2FibGVQb3NpdGlvbkFkanVzdG1lbnQ6Qj0hMX09KDAsby51c2VDb250ZXh0KShjLkNvbnRyb2xHcm91cENvbnRleHQpLHo9ZnVuY3Rpb24oZSx0PW51bGwsbil7Y29uc3QgYT0oMCxvLnVzZVJlZikobnVsbCkscz0oMCxvLnVzZVJlZikobnVsbCkscj0oMCxvLnVzZUNhbGxiYWNrKSgoKCk9PntpZihudWxsPT09YS5jdXJyZW50fHxudWxsPT09cy5jdXJyZW50KXJldHVybjtjb25zdFtlLHQsbl09cy5jdXJyZW50O251bGwhPT10JiZhLmN1cnJlbnQuYWRkRXZlbnRMaXN0ZW5lcihlLHQsbil9KSxbXSksaT0oMCxvLnVzZUNhbGxiYWNrKSgoKCk9PntpZihudWxsPT09YS5jdXJyZW50fHxudWxsPT09cy5jdXJyZW50KXJldHVybjtjb25zdFtlLHQsbl09cy5jdXJyZW50O251bGwhPT10JiZhLmN1cnJlbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihlLHQsbil9KSxbXSksbD0oMCxvLnVzZUNhbGxiYWNrKSgoZT0+e2koKSxhLmN1cnJlbnQ9ZSxyKCl9KSxbXSk7cmV0dXJuKDAsby51c2VFZmZlY3QpKCgoKT0+KHMuY3VycmVudD1bZSx0LG5dLHIoKSxpKSksW2UsdCxuXSksbH0oIndoZWVsIixNLHYpLFA9RDtyZXR1cm4gby5jcmVhdGVFbGVtZW50KFAse3R5cGU6QSxzdHlsZTpuLGlkOmEscm9sZTpzLGNsYXNzTmFtZTpwKGUsRixSLEIpLHRhYkluZGV4OkUscmVmOigwLGkudXNlTWVyZ2VkUmVmcykoW3Qsel0pLG9uRm9jdXM6cixvbkJsdXI6dSxvbk1vdXNlT3ZlcjpkLG9uTW91c2VPdXQ6bSxvbk1vdXNlRW50ZXI6aCxvbk1vdXNlTGVhdmU6Zixvbk1vdXNlRG93bjpiLG9uTW91c2VVcDp3LG9uS2V5RG93bjpTLG9uQ2xpY2s6TixvbldoZWVsOkMsLi4uKDAsbC5maWx0ZXJEYXRhUHJvcHMpKGUpLC4uLigwLGwuZmlsdGVyQXJpYVByb3BzKShlKX0seSxJLHgsby5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOmcoZSxSLGspfSkpfWIuZGlzcGxheU5hbWU9IkNvbnRyb2xTa2VsZXRvbiI7Y29uc3Qgdz1vLmZvcndhcmRSZWYoYil9LDUwNTYzOShlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtBZnRlclNsb3Q6KCk9Pm0sQmVmb3JlU2xvdDooKT0+bCxFbmRTbG90OigpPT5kLE1pZGRsZVNsb3Q6KCk9PnUsU3RhcnRTbG90OigpPT5jfSk7dmFyIG89big3Nzk0NzQpLGE9big5MTQ0ODcpLHM9bi5uKGEpLHI9big4OTQ0NjQpLGk9bi5uKHIpO2Z1bmN0aW9uIGwoZSl7Y29uc3R7Y2xhc3NOYW1lOnQsY2hpbGRyZW46bn09ZTtyZXR1cm4gby5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOnMoKShpKClbImJlZm9yZS1zbG90Il0sdCl9LG4pfWZ1bmN0aW9uIGMoZSl7Y29uc3R7Y2xhc3NOYW1lOnQsaW50ZXJhY3RpdmU6bj0hMCxpY29uOmE9ITEsY2hpbGRyZW46cn09ZTtyZXR1cm4gby5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOnMoKShpKClbImlubmVyLXNsb3QiXSxuJiZpKCkuaW50ZXJhY3RpdmUsYSYmaSgpLmljb24sdCl9LHIpfWZ1bmN0aW9uIHUoZSl7Y29uc3R7Y2xhc3NOYW1lOnQsY2hpbGRyZW46bn09ZTtyZXR1cm4gby5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOnMoKShpKClbImlubmVyLXNsb3QiXSxpKClbImlubmVyLW1pZGRsZS1zbG90Il0sdCl9LG4pfWZ1bmN0aW9uIGQoZSl7Y29uc3R7Y2xhc3NOYW1lOnQsaW50ZXJhY3RpdmU6bj0hMCxpY29uOmE9ITEsY2hpbGRyZW46cixkYXRhUWFJZDpsfT1lO3JldHVybiBvLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6cygpKGkoKVsiaW5uZXItc2xvdCJdLG4mJmkoKS5pbnRlcmFjdGl2ZSxhJiZpKCkuaWNvbix0KSwiZGF0YS1xYS1pZCI6bH0scil9ZnVuY3Rpb24gbShlKXtjb25zdHtjbGFzc05hbWU6dCxjaGlsZHJlbjpuLGRhdGFRYUlkOmF9PWU7cmV0dXJuIG8uY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZTpzKCkoaSgpWyJhZnRlci1zbG90Il0sdCksImRhdGEtcWEtaWQiOmF9LG4pfX0sNzQ0OTQyKGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse1RleHRhcmVhOigpPT5OLFRleHRhcmVhUmVzaXplOigpPT5vfSk7dmFyIG8sYT1uKDc3OTQ3NCkscz1uKDkxNDQ4Nykscj1uLm4ocyksaT1uKDMxOTY5KSxsPW4oMTQ1OTg0KSxjPW4oOTA4MDk3KSx1PW4oNTY0MjEpLGQ9big4MzM5MDMpLG09big3ODA2NTEpLGg9big1NjA0OTEpLHA9big1MDU2MzkpLGc9bigxNDc5MDEpLGY9big1Mjc3NDQpLHY9bi5uKGYpOyFmdW5jdGlvbihlKXtlLk5vbmU9Im5vbmUiLGUuVmVydGljYWw9InZlcnRpY2FsIixlLkhvcml6b250YWw9Imhvcml6b250YWwiLGUuQm90aD0iYm90aCJ9KG98fChvPXt9KSk7Y29uc3QgYj1hLmZvcndhcmRSZWYoKChlLHQpPT57Y29uc3R7aWQ6bix0aXRsZTpvLHRhYkluZGV4OnMsY29udGFpbmVyVGFiSW5kZXg6aSxyb2xlOmwsaW5wdXRDbGFzc05hbWU6YyxhdXRvQ29tcGxldGU6dSxhdXRvRm9jdXM6ZCxjb2xzOm0sZGlzYWJsZWQ6Zixpc0ZvY3VzZWQ6Yixmb3JtOncsbWF4TGVuZ3RoOlMsbWluTGVuZ3RoOk4sbmFtZTpFLHBsYWNlaG9sZGVyOnkscmVhZG9ubHk6SSxyZXF1aXJlZDp4LHJvd3M6Qyx2YWx1ZTpNLGRlZmF1bHRWYWx1ZTprLHdyYXA6RCxjb250YWluZXJSZWZlcmVuY2U6QSxvbkNoYW5nZTpGLG9uU2VsZWN0OlIsb25Gb2N1czpCLG9uQ29udGFpbmVyRm9jdXM6eixvbkJsdXI6UCxvblBhc3RlOlQsZGF0YVFhSWQ6VywiYXJpYS1kZXNjcmliZWRieSI6XywiYXJpYS1yZXF1aXJlZCI6RywiYXJpYS1pbnZhbGlkIjpMLGhhc0ljb246SCxlbmRTbG90OlgsaGFzQXR0YWNoSW1hZ2U6VSwuLi5afT1lLHE9e2lkOm4sdGl0bGU6byx0YWJJbmRleDpzLHJvbGU6bCwKYXV0b0NvbXBsZXRlOnUsYXV0b0ZvY3VzOmQsY29sczptLGRpc2FibGVkOmYsZm9ybTp3LG1heExlbmd0aDpTLG1pbkxlbmd0aDpOLG5hbWU6RSxwbGFjZWhvbGRlcjp5LHJlYWRPbmx5OkkscmVxdWlyZWQ6eCxyb3dzOkMsdmFsdWU6TSxkZWZhdWx0VmFsdWU6ayx3cmFwOkQsb25DaGFuZ2U6RixvblNlbGVjdDpSLG9uRm9jdXM6QixvbkJsdXI6UCxvblBhc3RlOlQsImFyaWEtZGVzY3JpYmVkYnkiOl8sImFyaWEtcmVxdWlyZWQiOkcsImFyaWEtaW52YWxpZCI6TH07cmV0dXJuIGEuY3JlYXRlRWxlbWVudChoLkNvbnRyb2xTa2VsZXRvbix7Li4uWiwiZGF0YS1xYS1pZCI6Vyx0YWJJbmRleDppLGRpc2FibGVkOmYscmVhZG9ubHk6SSxpc0ZvY3VzZWQ6YixyZWY6QSxvbkZvY3VzOnosbWlkZGxlU2xvdDphLmNyZWF0ZUVsZW1lbnQocC5NaWRkbGVTbG90LG51bGwsYS5jcmVhdGVFbGVtZW50KCJ0ZXh0YXJlYSIsey4uLnEsImRhdGEtcWEtaWQiOmAke2cuVUlfTElCX0RBVEFfUUFfSURfUFJFRklYfXRleHRhcmVhLW1pZGRsZS1zbG90YCxjbGFzc05hbWU6cigpKHYoKS50ZXh0YXJlYSxjLFgmJnYoKS5lbmRzbG90KSxyZWY6dH0pKSwuLi5YJiZ7ZW5kU2xvdDphLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6cigpKCFVJiZ2KClbIndpdGgtaWNvbiJdKX0sWCl9fSl9KSk7Yi5kaXNwbGF5TmFtZT0iVGV4dGFyZWFWaWV3Ijtjb25zdCB3PShlLHQsbik9PnQ/dm9pZCAwOmU/LTE6bixTPShlLHQsbik9PnQ/dm9pZCAwOmU/bjotMSxOPWEuZm9yd2FyZFJlZigoKGUsdCk9PntlPSgwLGMudXNlQ29udHJvbCkoZSk7Y29uc3R7Y2xhc3NOYW1lOm4sZGlzYWJsZWQ6cyxhdXRvU2VsZWN0T25Gb2N1czpoLHRhYkluZGV4OnA9MCxib3JkZXJTdHlsZTpnLGhpZ2hsaWdodDpmLHJlc2l6ZTpOLGNvbnRhaW5lclJlZmVyZW5jZTpFPW51bGwsb25Gb2N1czp5LG9uQmx1cjpJLGhhc0ljb246eCwuLi5DfT1lLE09KDAsYS51c2VSZWYpKG51bGwpLGs9KDAsYS51c2VSZWYpKG51bGwpLHtpc01vdXNlRG93bjpELGhhbmRsZU1vdXNlRG93bjpBLGhhbmRsZU1vdXNlVXA6Rn09KDAsdS51c2VJc01vdXNlRG93bikoKSxbUixCXT0oMCxsLnVzZUZvY3VzKSgpLHo9KDAsZC5jcmVhdGVTYWZlTXVsdGljYXN0RXZlbnRIYW5kbGVyKShCLm9uRm9jdXMsKGZ1bmN0aW9uKGUpe2gmJiFELmN1cnJlbnQmJigwLG0uc2VsZWN0QWxsQ29udGVudCkoZS5jdXJyZW50VGFyZ2V0KX0pLHkpLFA9KDAsZC5jcmVhdGVTYWZlTXVsdGljYXN0RXZlbnRIYW5kbGVyKShCLm9uQmx1cixJKSxUPXZvaWQgMCE9PU4mJk4hPT1vLk5vbmUsVz1nPz8oVD9mPyJ0aGljayI6InRoaW4iOnZvaWQgMCksXz1mPz8oIVQmJnZvaWQgMCk7cmV0dXJuIGEuY3JlYXRlRWxlbWVudChiLHsuLi5DLGNsYXNzTmFtZTpyKCkodigpWyJ0ZXh0YXJlYS1jb250YWluZXIiXSxUJiZ2KClbImNoYW5nZS1oaWdobGlnaHQiXSxOJiZOIT09by5Ob25lJiZ2KClbYHJlc2l6ZS0ke059YF0sUiYmdigpLmZvY3VzZWQsbiksZGlzYWJsZWQ6cyxpc0ZvY3VzZWQ6Uixjb250YWluZXJUYWJJbmRleDp3KFIscyxwKSx0YWJJbmRleDpTKFIscyxwKSxib3JkZXJTdHlsZTpXLGhpZ2hsaWdodDpfLG9uQ29udGFpbmVyRm9jdXM6ZnVuY3Rpb24oZSl7ay5jdXJyZW50PT09ZS50YXJnZXQmJm51bGwhPT1NLmN1cnJlbnQmJk0uY3VycmVudC5mb2N1cygpfSxvbkZvY3VzOnosb25CbHVyOlAsb25Nb3VzZURvd246QSxvbk1vdXNlVXA6RixyZWY6ZnVuY3Rpb24oZSl7TS5jdXJyZW50PWUsImZ1bmN0aW9uIj09dHlwZW9mIHQ/dChlKTp0JiYodC5jdXJyZW50PWUpfSxjb250YWluZXJSZWZlcmVuY2U6KDAsaS51c2VNZXJnZWRSZWZzKShbRSxrXSksaGFzSWNvbjp4fSl9KSk7Ti5kaXNwbGF5TmFtZT0iVGV4dGFyZWEifSw5MDgwOTcoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7dXNlQ29udHJvbDooKT0+c30pO3ZhciBvPW4oODMzOTAzKSxhPW4oMTQ1OTg0KTtmdW5jdGlvbiBzKGUpe2NvbnN0e29uRm9jdXM6dCxvbkJsdXI6bixpbnRlbnQ6cyxoaWdobGlnaHQ6cixkaXNhYmxlZDppfT1lLFtsLGNdPSgwLGEudXNlRm9jdXMpKHZvaWQgMCxpKSx1PSgwLG8uY3JlYXRlU2FmZU11bHRpY2FzdEV2ZW50SGFuZGxlcikoaT92b2lkIDA6Yy5vbkZvY3VzLHQpLGQ9KDAsby5jcmVhdGVTYWZlTXVsdGljYXN0RXZlbnRIYW5kbGVyKShpP3ZvaWQgMDpjLm9uQmx1cixuKTtyZXR1cm57Li4uZSxpbnRlbnQ6c3x8KGw/InByaW1hcnkiOiJkZWZhdWx0IiksaGlnaGxpZ2h0OnI/P2wsb25Gb2N1czp1LG9uQmx1cjpkfX19LDU2NDIxKGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse3VzZUlzTW91c2VEb3duOigpPT5hfSk7dmFyIG89big3Nzk0NzQpO2Z1bmN0aW9uIGEoKXtjb25zdCBlPSgwLG8udXNlUmVmKSghMSksdD0oMCxvLnVzZUNhbGxiYWNrKSgoKCk9PntlLmN1cnJlbnQ9ITB9KSxbZV0pLG49KDAsby51c2VDYWxsYmFjaykoKCgpPT57ZS5jdXJyZW50PSExfSksW2VdKTtyZXR1cm57aXNNb3VzZURvd246ZSxoYW5kbGVNb3VzZURvd246dCxoYW5kbGVNb3VzZVVwOm59fX0sNjQxOTAoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7U3Bpbm5lcjooKT0+Y30pO3ZhciBvPW4oNzc5NDc0KSxhPW4oOTE0NDg3KSxzPW4ubihhKSxyPW4oNTY3NDc5KSxpPShuKDg0NTU3Nyksbig0MjkzNTMpKSxsPW4ubihpKTtmdW5jdGlvbiBjKGUpe2NvbnN0e2FyaWFMYWJlbDp0LGFyaWFMYWJlbGxlZGJ5Om4sY2xhc3NOYW1lOmEsc3R5bGU6aSxzaXplOmMsaWQ6dSxkaXNhYmxlU2VsZlBvc2l0aW9uaW5nOmR9PWU7cmV0dXJuIG8uY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOnMoKShhLCJ0di1zcGlubmVyIiwidHYtc3Bpbm5lci0tc2hvd24iLGB0di1zcGlubmVyLS1zaXplXyR7ci5zcGlubmVyU2l6ZU1hcFtjfHxyLkRFRkFVTFRfU0laRV19YCxkJiZsKCkuZGlzYWJsZVNlbGZQb3NpdGlvbmluZyksc3R5bGU6aSxyb2xlOiJwcm9ncmVzc2JhciIsaWQ6dSwiYXJpYS1sYWJlbCI6dCwiYXJpYS1sYWJlbGxlZGJ5IjpufSl9fSw3ODA2NTEoZSx0LG4peyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBvKGUpewpudWxsIT09ZSYmZS5zZXRTZWxlY3Rpb25SYW5nZSgwLGUudmFsdWUubGVuZ3RoKX1uLmQodCx7c2VsZWN0QWxsQ29udGVudDooKT0+b30pfSwzODY4MjQoZSx0LG4peyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBvKGUpe2NvbnN0IHQ9bmV3IEFib3J0Q29udHJvbGxlcixvPWU9PntQcm9taXNlLmFsbChbbi5lKDE3MDkyKSxuLmUoODQzMDYpLG4uZSg1MjM5Niksbi5lKDEzNDkyKSxuLmUoMzc3NDYpLG4uZSgxMjM4NSksbi5lKDI5MzI3KSxuLmUoMzk2MDkpLG4uZSg2ODE1NSldKS50aGVuKG4uYmluZChuLDg0OTQwKSkudGhlbigodD0+dC5yZW5kZXJJbWFnZURpYWxvZyhlKSkpfTtpZigic3RyaW5nIiE9dHlwZW9mIGUpcmV0dXJuIGUuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCh0PT57dC5wcmV2ZW50RGVmYXVsdCgpLHQuc3RvcFByb3BhZ2F0aW9uKCksZS5ocmVmJiZvKGUuaHJlZil9KSksKCk9Pnt0LmFib3J0KCl9O28oZSl9bi5kKHQse29wZW5JbWFnZURpYWxvZzooKT0+b30pfSw4MzUwMzAoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7R3JvdXBOb3RlczooKT0+d2V9KTt2YXIgbz1uKDc3OTQ3NCksYT1uKDcxODk4Mykscz1uKDk0NDc4MCkscj1uKDY0MTkwKSxpPW4oODA0MzEpLGw9bigyMjUyOTgpLGM9bigxNDM4MDIpLHU9big3MDUyNzMpLGQ9big5MTQ0ODcpLG09bi5uKGQpLGg9bigyMDA2NjYpLHA9bigxMzg2MzgpLGc9big3ODMyNTQpLGY9big5NDgzODApLHY9bigxMDY5MDApLGI9bigxMzY2Myksdz1uKDY1NjQ0MiksUz1uKDgxMDQxKSxOPW4oNjc0NzQ5KSxFPW4oMjczMzEwKSx5PW4oOTMxMjUwKSxJPW4oMzg2ODI0KSx4PW4oNTE4NzUpLEM9big5OTU3MTkpLE09bigyMzU3MjQpLGs9big5MjU0NzYpLEQ9big5ODc3OTgpLEE9big4MDY4MzUpLEY9big5ODgyMDYpO2NvbnN0IFI9by5jcmVhdGVDb250ZXh0KHtncm91cE5hbWU6IiIsc3ltYm9sRnVsbE5hbWU6IiIsaW5wdXRTbmFwc2hvdDpudWxsLHNldElucHV0U25hcHNob3Q6KCk9Pnt9LGVkaXRpbmdOb3RlSWQ6bnVsbCxzZXRFZGl0aW5nTm90ZUlkOigpPT57fSxjb250ZW50SW5wdXRWYWw6IiIsc2V0Q29udGVudElucHV0VmFsOigpPT57fX0pO3ZhciBCPW4oOTIzMDYwKSx6PW4oOTcxMDUxKSxQPW4oNTc5MDE2KSxUPW4oMTg2Mzg0KSxXPW4oNzk1OTg2KSxfPW4oNzc1MjIwKTtmdW5jdGlvbiBHKGUpe2NvbnN0e2NsYXNzTmFtZTp0fT1lLHticmlkZ2U6YSxpc0RpYWxvZzppfT0oMCxiLnVzZUVuc3VyZWRDb250ZXh0KShBLkRldGFpbHNDb250ZXh0KSxsPWE/LmdldENoYXJ0V2lkZ2V0Q29sbGVjdGlvbj8uKCkse2dyb3VwTmFtZTpjLGlucHV0U25hcHNob3Q6dSxzZXRJbnB1dFNuYXBzaG90OmQsZWRpdGluZ05vdGVJZDpoLHNldEVkaXRpbmdOb3RlSWQ6cCxjb250ZW50SW5wdXRWYWw6ZixzZXRDb250ZW50SW5wdXRWYWw6dixjb250YWluZXJSZWY6dyxyZXNldENvbnRlbnRJbnB1dERlbGVnYXRlOlMsc3ltYm9sRnVsbE5hbWU6R309KDAsby51c2VDb250ZXh0KShSKSxbTCxIXT0oMCxvLnVzZVN0YXRlKSghMSksW1gsVV09KDAsby51c2VTdGF0ZSkodm9pZCAwKSxbWixxXT0oMCxvLnVzZVN0YXRlKSghMSksW08sVl09KDAsby51c2VTdGF0ZSkoaT8xOnZvaWQgMCksWT0oMCxCLnVzZU5vdGVzRGlzcGF0Y2gpKCksSz0oMCxvLnVzZVJlZikobnVsbCksUT0oMCxvLnVzZVJlZikobnVsbCksaj0oMCxvLnVzZVJlZikobnVsbCksJD0oMCxzLnVzZUhpc3RvcnkpKCksSj1mdW5jdGlvbigpe2NvbnN0e3NlYXJjaDplfT0oMCxzLnVzZUxvY2F0aW9uKSgpO3JldHVybiBvLnVzZU1lbW8oKCgpPT5uZXcgVVJMU2VhcmNoUGFyYW1zKGUpKSxbZV0pfSgpOygwLG8udXNlRWZmZWN0KSgoKCk9PntpZih1JiZRLmN1cnJlbnQpcmV0dXJuKDAsSS5vcGVuSW1hZ2VEaWFsb2cpKFEuY3VycmVudCl9KSxbdV0pLCgwLG8udXNlRWZmZWN0KSgoKCk9PihzZShMKSwoKT0+e3NlKCExKX0pKSxbTF0pLCgwLG8udXNlRWZmZWN0KSgoKCk9PntKLmhhcygibmV3IikmJiFpJiZLLmN1cnJlbnQ/LmZvY3VzKCl9KSxbSl0pLCgwLG8udXNlTGF5b3V0RWZmZWN0KSgoKCk9PntoJiYoSy5jdXJyZW50Py5mb2N1cygpLFUodm9pZCAwKSl9KSxbaF0pLCgwLG8udXNlRWZmZWN0KSgoKCk9PihTPy5zdWJzY3JpYmUobnVsbCxhZSksKCk9PntqLmN1cnJlbnQ9bnVsbCxTPy51bnN1YnNjcmliZShudWxsLGFlKX0pKSxbU10pO2NvbnN0IGVlPUJvb2xlYW4odSksdGU9ZWV8fFo/IiI6Zy50KG51bGwsdm9pZCAwLG4oOTEzODI5KSksbmU9IiI9PT1mLnRyaW0oKXx8WjtyZXR1cm4gby5jcmVhdGVFbGVtZW50KCJmb3JtIix7Y2xhc3NOYW1lOm0oKShfLmNvbnRlbnRJbnB1dCx0KSxvblN1Ym1pdDpvZX0sby5jcmVhdGVFbGVtZW50KGsuRm9ybVRleHRhcmVhLHtyZWY6Syxyb3dzOk8sY2xhc3NOYW1lOm0oKShfLmlucHV0QXJlYSxMJiZfLmVubGFyZ2VkSW5wdXRBcmVhLGkmJl8ubW9iaWxlKSxpbnB1dENsYXNzTmFtZTohTCYmXy5pbnB1dCx2YWx1ZTpmLHBsYWNlaG9sZGVyOmcudChudWxsLHZvaWQgMCxuKDYxMzY5NykpLG9uQ2hhbmdlOmZ1bmN0aW9uKGUpe3YoZS50YXJnZXQudmFsdWUpfSxvbkZvY3VzOmZ1bmN0aW9uKCl7SCghMCl9LG9uS2V5RG93bjpmdW5jdGlvbihlKXtpZigoMCxNLmhhc2hGcm9tRXZlbnQpKGUpPT09TS5Nb2RpZmllcnMuTW9kKzEzKXtpZihuZSlyZXR1cm47b2UoKX0yNz09PSgwLE0uaGFzaEZyb21FdmVudCkoZSkmJmFlKCl9LGVuZFNsb3Q6dXx8bD9vLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpfLnRvb2xzfSx1JiZvLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTptKCkoXy5wcmV2aWV3V3JhcCxMJiZfLmVubGFyZ2VkUHJldmlld1dyYXApfSxvLmNyZWF0ZUVsZW1lbnQoImEiLHtyZWY6USxjbGFzc05hbWU6Xy5wcmV2aWV3SW1hZ2VXcmFwLGhyZWY6dS51cmx9LG8uY3JlYXRlRWxlbWVudCgiaW1nIix7Y2xhc3NOYW1lOl8ucHJldmlld0ltYWdlLHNyYzp1LnRodW1iLGFsdDpnLnQobnVsbCx2b2lkIDAsbig1NTI5NjIpKX0pKSxvLmNyZWF0ZUVsZW1lbnQoImRpdiIsewpjbGFzc05hbWU6bSgpKF8ucmVtb3ZlQnV0dG9uLCJhcHBseS1jb21tb24tdG9vbHRpcCIpLHRpdGxlOmcudChudWxsLHZvaWQgMCxuKDQ4MjMzMCkpLG9uQ2xpY2s6ZnVuY3Rpb24oKXtkKG51bGwpLFUoIiIpfSwiZGF0YS1yb2xlIjoiYnV0dG9uIiwiZGF0YS1uYW1lIjoicmVtb3ZlLWNoYXJ0LXNuYXBzaG90In0sby5jcmVhdGVFbGVtZW50KEUuSWNvbix7Y2xhc3NOYW1lOl8ucmVtb3ZlSWNvbixpY29uOlR9KSkpLGwmJm8uY3JlYXRlRWxlbWVudChDLlRvb2xXaWRnZXRCdXR0b24se2NsYXNzTmFtZTptKCkoXy5zbmFwc2hvdEJ1dHRvbixlZSYmXy5kaXNhYmxlZCksaXNEaXNhYmxlZDplZSx0aXRsZTp0ZSxpY29uOlo/by5jcmVhdGVFbGVtZW50KHIuU3Bpbm5lcix7Y2xhc3NOYW1lOl8uc3Bpbm5lcixzaXplOiJzbWFsbCJ9KTpXLG9uQ2xpY2s6Wj92b2lkIDA6ZnVuY3Rpb24oKXtpZighbClyZXR1cm47Sy5jdXJyZW50Py5mb2N1cygpLHEoITApO2NvbnN0IGU9ai5jdXJyZW50PSgwLHkudGFrZUNoYXJ0U25hcHNob3QpKGwsKHQ9PntpZihlIT09ai5jdXJyZW50KXJldHVybjtVKHQpLHEoITEpO2NvbnN0IG49KDAsRC5jcmVhdGVTbmFwc2hvdEltYWdlVXJscykodCk7biYmZCh7dGh1bWI6bi5wcmV2aWV3LHVybDpuLnVybH0pfSksKCgpPT57ZT09PWouY3VycmVudCYmcSghMSl9KSx7cHJldmlld3M6WyJ0aHVtYiJdfSl9LG9uTW91c2VEb3duOngucHJldmVudERlZmF1bHQsImRhdGEtbmFtZSI6ImF0dGFjaC1jaGFydC1zbmFwc2hvdCJ9KSk6dm9pZCAwLGhhc0F0dGFjaEltYWdlOiEwfSksTCYmby5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6Xy5hY3Rpb25zfSxvLmNyZWF0ZUVsZW1lbnQoTi5CdXR0b24se2NsYXNzTmFtZTptKCkoXy5hY3Rpb25CdG4saSYmXy5tb2JpbGUpLHR5cGU6ImJ1dHRvbiIsYXBwZWFyYW5jZToic3Ryb2tlIixpbnRlbnQ6ImRlZmF1bHQiLHNpemU6aT8ibSI6InMiLG9uQ2xpY2s6YWV9LGcudChudWxsLHZvaWQgMCxuKDc0MzU2MykpKSxvLmNyZWF0ZUVsZW1lbnQoTi5CdXR0b24se2NsYXNzTmFtZTptKCkoXy5hY3Rpb25CdG4saSYmXy5tb2JpbGUpLHR5cGU6InN1Ym1pdCIsYXBwZWFyYW5jZToiZGVmYXVsdCIsc2l6ZTppPyJtIjoicyIsZGlzYWJsZWQ6bmV9LG51bGw9PT1oP2cudChudWxsLHZvaWQgMCxuKDMwMzY4KSk6Zy50KG51bGwsdm9pZCAwLG4oNjEyNjU1KSkpKSk7ZnVuY3Rpb24gb2UoZSl7ZT8ucHJldmVudERlZmF1bHQoKSxoP1koKDAsRi5lZGl0Tm90ZVRodW5rKSh7bm90ZUlkOmgsY29udGVudDpmLHNuYXBzaG90VWlkOlh9KSk6KHc/LmN1cnJlbnQmJih3LmN1cnJlbnQuc2Nyb2xsVG9wPTApLFkoKDAsRi5hZGROb3RlVGh1bmspKHtjb250ZW50OmYsZ3JvdXA6YyxzeW1ib2xGdWxsTmFtZTpHLHNuYXBzaG90VWlkOlh9KSkpLGFlKCl9ZnVuY3Rpb24gYWUoKXt2KCIiKSxkKG51bGwpLHAobnVsbCksSCghMSksVSh2b2lkIDApLEsuY3VycmVudD8uYmx1cigpLHEoITEpLGouY3VycmVudD1udWxsLCQucmVwbGFjZSgoMCx6LnBhdGhUb0dyb3VwKShHKSl9ZnVuY3Rpb24gc2UoZSl7aWYoaSl7aWYoVihlPzM6MSksIWUpcmV0dXJuO0suY3VycmVudCYmKEsuY3VycmVudC5zZWxlY3Rpb25TdGFydD1LLmN1cnJlbnQuc2VsZWN0aW9uRW5kPWYubGVuZ3RoKX1lbHNlIGE/LnNldE1pbkhlaWdodChlP1AuTUlOX05PVEVTX1dJREdFVF9IRUlHSFRfSU5fSU5QVVRfTU9ERTowKX19dmFyIEw9big2NDE1OTMpLEg9big3Mzg0NTgpLFg9bigxNTM3MzQpLFU9bigyNTA0MzkpLFo9big1MDkwNCkscT1uKDk2NDIxNCksTz1uKDMzOTI2MCksVj1uKDM1MDUwOCksWT1uKDQ2MjcwNCksSz1uKDIzMjMyNyksUT1uKDIxNTI5Miksaj1uKDU1ODk3OSksJD1uKDUzOTkwMCk7Y29uc3QgSj1nLnQobnVsbCx2b2lkIDAsbig4MjY3MSkpLGVlPWcudChudWxsLHZvaWQgMCxuKDkxMTI2KSk7ZnVuY3Rpb24gdGUoZSl7Y29uc3R7aWQ6dCxjb250ZW50OmEscmF3OntzbmFwc2hvdF90aHVtYjpzLHNuYXBzaG90X3BhZ2U6cn0sZGF0ZUNyZWF0ZWQ6aX09ZSx7c2V0SW5wdXRTbmFwc2hvdDpsLGVkaXRpbmdOb3RlSWQ6YyxzZXRFZGl0aW5nTm90ZUlkOnUsc2V0Q29udGVudElucHV0VmFsOmQscmVzZXRDb250ZW50SW5wdXREZWxlZ2F0ZTpofT0oMCxvLnVzZUNvbnRleHQpKFIpLHtpc0RpYWxvZzpwfT0oMCxiLnVzZUVuc3VyZWRDb250ZXh0KShBLkRldGFpbHNDb250ZXh0KSxbZix2XT0oMCxvLnVzZVN0YXRlKSghMSksW3csU109KDAsby51c2VTdGF0ZSkoITEpLE49KDAsQi51c2VOb3Rlc0Rpc3BhdGNoKSgpLEU9dD09PWMseT0oMCxWLmdldE5vdGVEYXRlU3RyaW5nKShpKSx4PW5ldyBPLlVybGl6ZUJ1ZmZlcigoMCxMLmh0bWxFc2NhcGUpKGEpKSxNPSgwLE8uY2hhaW5lZFVybGl6ZSkoeCxbTy5saW5rc10pLGs9KDAsby51c2VSZWYpKG51bGwpO3JldHVybigwLG8udXNlRWZmZWN0KSgoKCk9PntpZihyJiZrLmN1cnJlbnQpcmV0dXJuKDAsSS5vcGVuSW1hZ2VEaWFsb2cpKGsuY3VycmVudCl9KSxbcl0pLG8uY3JlYXRlRWxlbWVudChvLkZyYWdtZW50LG51bGwsby5jcmVhdGVFbGVtZW50KCJkaXYiLHtvbkNvbnRleHRNZW51OmZ1bmN0aW9uKGUpe2UucHJldmVudERlZmF1bHQoKSxVLkNvbnRleHRNZW51TWFuYWdlci5zaG93TWVudShbbmV3IFouQWN0aW9uKHthY3Rpb25JZDoiTm90ZS5FZGl0IixvcHRpb25zOntsYWJlbDpKLGljb246USxvbkV4ZWN1dGU6RH19KSxuZXcgWi5BY3Rpb24oe2FjdGlvbklkOiJOb3RlLlJlbW92ZSIsb3B0aW9uczp7bGFiZWw6ZWUsaWNvbjpqLG9uRXhlY3V0ZTp6fX0pXSxlLHZvaWQgMCx7bWVudU5hbWU6Ik5vdGVzSXRlbUNvbnRleHRNZW51In0sKCgpPT57UyghMSl9KSkudGhlbigoKCk9PntTKCEwKX0pKX0sb25DbGljazpmdW5jdGlvbigpe2lmKCFwKXJldHVybjt2KCEwKX0sY2xhc3NOYW1lOm0oKSgkLnN5bWJvbE5vdGVJdGVtLChFfHxmfHx3KSYmJC5lZGl0TW9kZSl9LHMmJnImJm8uY3JlYXRlRWxlbWVudCgiYSIse3JlZjprLGhyZWY6cn0sby5jcmVhdGVFbGVtZW50KCJpbWciLHtjbGFzc05hbWU6JC5jaGFydFByZXZpZXcsc3JjOnMsCmFsdDpnLnQobnVsbCx2b2lkIDAsbig1NTI5NjIpKX0pKSxvLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTptKCkoJC5jb250ZW50LHAmJiQubW9iaWxlKSxkYW5nZXJvdXNseVNldElubmVySFRNTDp7X19odG1sOk19fSksby5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6JC5pbmZvfSxvLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6JC5kYXRlfSx5KSwhcCYmby5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6bSgpKCQuYnV0dG9uV3JhcCxILm1vYmlsZXRvdWNoJiYkLmZvcmNlVmlzaWJsZSl9LG8uY3JlYXRlRWxlbWVudChDLlRvb2xXaWRnZXRCdXR0b24se2NsYXNzTmFtZTokLmJ1dHRvbix0aXRsZTpKLGljb246SyxvbkNsaWNrOkQsImRhdGEtbmFtZSI6ImRldGFpbHMtZWRpdC1ub3RlIn0pLG8uY3JlYXRlRWxlbWVudChDLlRvb2xXaWRnZXRCdXR0b24se2NsYXNzTmFtZTokLmJ1dHRvbix0aXRsZTplZSxpY29uOlksb25DbGljazp6LCJkYXRhLW5hbWUiOiJkZXRhaWxzLXJlbW92ZS1ub3RlIn0pKSkpLGYmJm8uY3JlYXRlRWxlbWVudChxLkRyYXdlcix7b25DbG9zZTpmdW5jdGlvbigpe3YoITEpfX0sby5jcmVhdGVFbGVtZW50KFguUG9wdXBNZW51SXRlbSx7aWNvbjpLLGNsYXNzTmFtZTokLmRyYXdlckl0ZW0sb25DbGljazpELGxhYmVsOkp9KSxvLmNyZWF0ZUVsZW1lbnQoWC5Qb3B1cE1lbnVJdGVtLHtpY29uOlksY2xhc3NOYW1lOiQuZHJhd2VySXRlbSxvbkNsaWNrOnosbGFiZWw6ZWV9KSkpO2Z1bmN0aW9uIEQoKXtmJiZ2KCExKSxsKHMmJnI/e3RodW1iOnMsdXJsOnJ9Om51bGwpLGQoYSksdSh0KX1mdW5jdGlvbiB6KCl7RSYmaD8uZmlyZSgpLE4oKDAsRi5yZW1vdmVOb3RlVGh1bmspKHtub3RlSWQ6dH0pKSxmJiZ2KCExKX19dmFyIG5lPW4oMTQwODk1KSxvZT1uKDQ4Nzc1MCksYWU9big0NTUyNDYpO2Z1bmN0aW9uIHNlKGUpe2NvbnN0e2dyb3VwTmFtZTp0LHN5bWJvbEZ1bGxOYW1lOnMsLi4ucn09ZSxpPSgwLGEudXNlU2VsZWN0b3IpKChlPT4oMCxjLnNlbGVjdFN5bWJvbE5vdGVzQnlHcm91cCkoZSx0KSkpLGw9KDAsdi51c2VXYXRjaGVkVmFsdWVSZWFkb25seSkoe3dhdGNoZWRWYWx1ZTpoLndhdGNoZWRUaGVtZX0pLHtpc0RpYWxvZzp1LGZ1bGxIZWlnaHROb3RlczpkfT0oMCxiLnVzZUVuc3VyZWRDb250ZXh0KShBLkRldGFpbHNDb250ZXh0KSxwPWw9PT1TLlN0ZFRoZW1lLkRhcms/bmU6b2UsTj0oMCxvLnVzZVJlZikobnVsbCksW0UseV09KDAsby51c2VTdGF0ZSkoIiIpLFtJLHhdPSgwLG8udXNlU3RhdGUpKG51bGwpLFtDLE1dPSgwLG8udXNlU3RhdGUpKG51bGwpLGs9KDAsby51c2VNZW1vKSgoKCk9Pm5ldyBmLkRlbGVnYXRlKSxbXSksRD0oMCxvLnVzZU1lbW8pKCgoKT0+KHtncm91cE5hbWU6dCxpbnB1dFNuYXBzaG90OkMsc2V0SW5wdXRTbmFwc2hvdDpNLGVkaXRpbmdOb3RlSWQ6SSxzZXRFZGl0aW5nTm90ZUlkOngsY29udGVudElucHV0VmFsOkUsc2V0Q29udGVudElucHV0VmFsOnksY29udGFpbmVyUmVmOk4scmVzZXRDb250ZW50SW5wdXREZWxlZ2F0ZTprLHN5bWJvbEZ1bGxOYW1lOnN9KSksW3QsQyxNLEkseCxFLHksTixrLHNdKTtyZXR1cm4gby5jcmVhdGVFbGVtZW50KFIuUHJvdmlkZXIse3ZhbHVlOkR9LG8uY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOm0oKShhZS5ncm91cERldGFpbGVkLHUmJiFkJiZhZS5zbWFsbEhlaWdodCksLi4ucn0sby5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6bSgpKGFlLml0ZW1zQ29udGFpbmVyLDA9PT1pLmxlbmd0aCYmYWUuZW1wdHkpLHJlZjpOfSxpLmxlbmd0aD4wP28uY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOmFlLml0ZW1zV3JhcHBlcn0saS5tYXAoKGU9Pm8uY3JlYXRlRWxlbWVudChyZSx7a2V5OmUsaWQ6ZX0pKSkpOm8uY3JlYXRlRWxlbWVudCh3LkNvbnRlbnRJc05vdEZvdW5kLHtjbGFzc05hbWU6YWUuZW1wdHlTdGF0ZSxpY29uOnAsZGVzY3JpcHRpb246Zy50KG51bGwsdm9pZCAwLG4oMjE0MTIzKSl9KSksby5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6YWUuZm9ybUNvbnRhaW5lcn0sby5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6YWUuaW5wdXRTZXBhcmF0b3J9KSxvLmNyZWF0ZUVsZW1lbnQoRyx7Y2xhc3NOYW1lOmFlLmNvbnRlbnRJbnB1dH0pKSkpfWZ1bmN0aW9uIHJlKGUpe2NvbnN0e2lkOnR9PWUsbj0oMCxhLnVzZVNlbGVjdG9yKSgoZT0+KDAscC5lbnN1cmVEZWZpbmVkKShlLnN5bWJvbE5vdGVzLm5vdGVzW3RdKSkpO3JldHVybiBvLmNyZWF0ZUVsZW1lbnQodGUsey4uLm59KX12YXIgaWU9big0MDg0MSksbGU9big2NDM5MDMpLGNlPW4oMTI5MzY1KSx1ZT1uKDU3NzEwOSksZGU9big3NTg2MjIpLG1lPW4oNjc5NjU0KSxoZT1uKDIxNjYzNCk7ZnVuY3Rpb24gcGUoZSl7Y29uc3R7aGVhZGVyOnR9PSgwLGIudXNlRW5zdXJlZENvbnRleHQpKEEuRGV0YWlsc0NvbnRleHQpO3JldHVybiBudWxsPT09dD9udWxsOmNlLmNyZWF0ZVBvcnRhbChvLmNyZWF0ZUVsZW1lbnQoZ2Usey4uLmV9KSx0KX1mdW5jdGlvbiBnZShlKXtjb25zdHtzeW1ib2w6dCxyaWdodFNsb3Q6bix0ZXh0OmEsb25CYWNrOnMsLi4ucn09ZSx7aXNEaWFsb2c6aX09KDAsYi51c2VFbnN1cmVkQ29udGV4dCkoQS5EZXRhaWxzQ29udGV4dCksbD0oMCxkZS51c2VMb2dvRGF0YSkodCk7cmV0dXJuIG8uY3JlYXRlRWxlbWVudCgiZGl2Iix7Li4ucixjbGFzc05hbWU6aGUuaGVhZGVyfSwhaSYmby5jcmVhdGVFbGVtZW50KGllLlRvb2xXaWRnZXRJY29uQnV0dG9uLHtjbGFzc05hbWU6aGUuYmFja0J0bixpY29uOm1lLG9uQ2xpY2s6c30pLEJvb2xlYW4odCkmJm8uY3JlYXRlRWxlbWVudCh1ZS5TeW1ib2xMb2dvLHtjbGFzc05hbWU6aGUubG9nb0ljb24sbG9nbzpsLHBsYWNlaG9sZGVyOigwLGxlLnNhZmVTaG9ydE5hbWUpKHQpWzBdLHNpemU6aT8ic21hbGwiOiJ4c21hbGwifSksby5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOm0oKShoZS50ZXh0LGkmJmhlLm1vYmlsZSl9LGEpLG4mJm8uY3JlYXRlRWxlbWVudCgiZGl2Iix7CmNsYXNzTmFtZTpoZS5yaWdodFNsb3R9LG4pKX12YXIgZmU9big1NTE0MjQpLHZlPW4oNjQxODc2KTtmdW5jdGlvbiBiZShlKXtjb25zdHtzeW1ib2w6dCwuLi5hfT1lLHI9KDAscy51c2VIaXN0b3J5KSgpO3JldHVybiBvLmNyZWF0ZUVsZW1lbnQocGUse29uQmFjazpmdW5jdGlvbigpe3IucmVwbGFjZSgiLyIpfSx0ZXh0OnQ/Zy50KG51bGwse3JlcGxhY2U6e25vdGVHcm91cE5hbWU6KDAsbGUuc2FmZVNob3J0TmFtZSkodCl9fSxuKDMzMTY1NykpOmcudChudWxsLHZvaWQgMCxuKDQ4OTY0NykpLHN5bWJvbDp0LHJpZ2h0U2xvdDpvLmNyZWF0ZUVsZW1lbnQoaWUuVG9vbFdpZGdldEljb25CdXR0b24se2NsYXNzTmFtZTptKCkodmUuYnV0dG9uLCJhcHBseS1jb21tb24tdG9vbHRpcCIpLGljb246ZmUsb25DbGljazooKT0+ci5yZXBsYWNlKHouTk9URVNfUEFUSF9QQVRURVJOLHtmcm9tOnIubG9jYXRpb24ucGF0aG5hbWV9KSx0aXRsZTpnLnQobnVsbCx2b2lkIDAsbig4NzY2MDQpKX0pLC4uLmF9KX1mdW5jdGlvbiB3ZShlKXtjb25zdCB0PWRlY29kZVVSSUNvbXBvbmVudCgoMCxzLnVzZVBhcmFtcykoKS5zeW1ib2w/PyIiKSxuPSgwLHMudXNlSGlzdG9yeSkoKSxkPSgwLGkudXNlTm90ZXNHcm91cEtleSkodCksbT0oMCxhLnVzZVNlbGVjdG9yKShjLnNlbGVjdE5vdGVzU3RhdHVzKTtyZXR1cm4oMCxvLnVzZUVmZmVjdCkoKCgpPT57ZnVuY3Rpb24gZShlKXtuLnJlcGxhY2UoKDAsei5wYXRoVG9Hcm91cCkoZSkpfXJldHVybiBsLmxpbmtpbmcucHJvU3ltYm9sLnN1YnNjcmliZShlKSwoKT0+e2wubGlua2luZy5wcm9TeW1ib2wudW5zdWJzY3JpYmUoZSl9fSksW10pLG09PT11LlN5bWJvbE5vdGVzU3RhdHVzLkZldGNoaW5nP28uY3JlYXRlRWxlbWVudChyLlNwaW5uZXIsbnVsbCk6by5jcmVhdGVFbGVtZW50KG8uRnJhZ21lbnQsbnVsbCxvLmNyZWF0ZUVsZW1lbnQoYmUse3N5bWJvbDp0LCJkYXRhLW5hbWUiOiJkZXRhaWxzLXN5bWJvbC1ub3Rlcy1oZWFkZXIifSksKCF0fHxkKSYmby5jcmVhdGVFbGVtZW50KHNlLHtncm91cE5hbWU6ZD8ubm90ZXNHcm91cEtleXx8IiIsc3ltYm9sRnVsbE5hbWU6ZD8uc3ltYm9sRnVsbE5hbWV8fCIiLCJkYXRhLW5hbWUiOiJkZXRhaWxzLXN5bWJvbC1ub3Rlcy1jb250ZW50In0pKX19LDQxNzI2MyhlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtHcm91cHNMaXN0OigpPT5QfSk7dmFyIG89big3Nzk0NzQpLGE9big3MTg5ODMpLHM9big5NDQ3ODApLHI9bigyMDA2NjYpLGk9big2NDE5MCksbD1uKDc4MzI1NCksYz1uKDEwNjkwMCksdT1uKDY1NjQ0MiksZD1uKDIyNTI5OCksbT1uKDgxMDQxKSxoPW4oOTE0NDg3KSxwPW4ubihoKSxnPW4oMTM2NjMpLGY9big2NDM5MDMpLHY9big1NzcxMDkpLGI9big3NTg2MjIpLHc9big4MDY4MzUpLFM9bigxNDM4MDIpLE49bigzNTA1MDgpLEU9big5NzEwNTEpLHk9big3Njg0NzQpO2Z1bmN0aW9uIEkoZSl7Y29uc3R7bmFtZTp0LG5vdGVzOnIsc3ltYm9sOml9PWUse2JyaWRnZTpjfT0oMCxnLnVzZUVuc3VyZWRDb250ZXh0KSh3LkRldGFpbHNDb250ZXh0KSx1PWM/LmdldENoYXJ0V2lkZ2V0Q29sbGVjdGlvbj8uKCksbT0oMCxzLnVzZUhpc3RvcnkpKCksaD1yW3IubGVuZ3RoLTFdLEk9dC5sZW5ndGg+MCx4PSgwLGEudXNlU2VsZWN0b3IpKChlPT5lLnN5bWJvbE5vdGVzLm5vdGVzW2hdKSksQz0oMCxhLnVzZVNlbGVjdG9yKSgoZT0+KDAsUy5zZWxlY3RMYXN0TW9kaWZpZWROb3RlSW5Hcm91cCkoZSx0KSkpLE09eD8uY29udGVudD8/bC50KG51bGwsdm9pZCAwLG4oNTQ1NzQ1KSksaz0oMCxOLmdldE5vdGVEYXRlU3RyaW5nKShDLmRhdGVNb2RpZmllZCksRD1pfHx0LEE9KDAsYi51c2VMb2dvRGF0YSkoRCk7cmV0dXJuIG8uY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOnkuZ3JvdXBQcmV2aWV3LG9uQ2xpY2s6ZnVuY3Rpb24oKXt1JiZEJiZkLmxpbmtpbmcuc2V0U3ltYm9sQW5kTG9nSW5pdGlhdG9yKEQsInN5bWJvbCBub3RlcyIpO20ucmVwbGFjZSgoMCxFLnBhdGhUb0dyb3VwKShEKSl9fSxvLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTp5LmhlYWRlcn0sSSYmby5jcmVhdGVFbGVtZW50KHYuU3ltYm9sTG9nbyx7Y2xhc3NOYW1lOnkubG9nb0ljb24sbG9nbzpBLHBsYWNlaG9sZGVyOigwLGYuc2FmZVNob3J0TmFtZSkodClbMF0sc2l6ZToieHh4c21hbGwifSksby5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOnkudGl0bGV9LEk/KDAsZi5zYWZlU2hvcnROYW1lKSh0KTpsLnQobnVsbCx2b2lkIDAsbig0ODk2NDcpKS50b1VwcGVyQ2FzZSgpKSksby5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6cCgpKHkuY29udGVudCwheCYmeS5lbXB0eSl9LE0pLG8uY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOnkuZGF0ZX0seCYmYCR7bC50KG51bGwsdm9pZCAwLG4oNDAyMTI4KSl9ICR7a31gKSl9dmFyIHg9big3MDUyNzMpLEM9bigxMzg2MzgpO3ZhciBNPW4oMTI5MzY1KSxrPW4oNDA4NDEpLEQ9big2Nzk2NTQpLEE9bigxMDIyODApO2Z1bmN0aW9uIEYoZSl7Y29uc3R7aGVhZGVyOnQsaXNEaWFsb2c6YX09KDAsZy51c2VFbnN1cmVkQ29udGV4dCkody5EZXRhaWxzQ29udGV4dCkscj0oMCxzLnVzZUhpc3RvcnkpKCkse3N0YXRlOml9PSgwLHMudXNlTG9jYXRpb24pKCk7cmV0dXJuIG51bGw9PT10P251bGw6TS5jcmVhdGVQb3J0YWwoby5jcmVhdGVFbGVtZW50KCJkaXYiLHsuLi5lLGNsYXNzTmFtZTpBLmhlYWRlcn0sby5jcmVhdGVFbGVtZW50KGsuVG9vbFdpZGdldEljb25CdXR0b24se2NsYXNzTmFtZTpBLmJhY2tCdG4saWNvbjpELG9uQ2xpY2s6KCk9Pmk/LmZyb20/ci5yZXBsYWNlKGkuZnJvbSk6ci5yZXBsYWNlKCIvIil9KSxvLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6cCgpKEEudGV4dCxhJiZBLm1vYmlsZSl9LGwudChudWxsLHZvaWQgMCxuKDg3NjYwNCkpKSksdCl9dmFyIFI9bigxNDA4OTUpLEI9big0ODc3NTApLHo9big5MTYwODYpO2Z1bmN0aW9uIFAoZSl7Y29uc3QgdD0oMCxzLnVzZUhpc3RvcnkpKCksaD0oMCwKYS51c2VTdG9yZSkoKSxwPWZ1bmN0aW9uKGUsdCl7cmV0dXJuKDAsby51c2VNZW1vKSgoKCk9Pntjb25zdHtub3RlczpufT10LmdldFN0YXRlKCkuc3ltYm9sTm90ZXM7cmV0dXJuIE9iamVjdC52YWx1ZXMoZSkuZmlsdGVyKChlPT52b2lkIDAhPT1lJiZlLm5vdGVzLmxlbmd0aD4wKSkuc29ydCgoKGUsdCk9PntpZigiIj09PWUubmFtZSlyZXR1cm4gMTtpZigiIj09PXQubmFtZSlyZXR1cm4tMTtjb25zdCBvPSgwLE4uZ2V0TGFzdE1vZGlmaWVkTm90ZUlkKShlLm5vdGVzLG4pLGE9KDAsTi5nZXRMYXN0TW9kaWZpZWROb3RlSWQpKHQubm90ZXMsbik7cmV0dXJuKDAsQy5lbnN1cmVEZWZpbmVkKShuW2FdKS5kYXRlTW9kaWZpZWQtKDAsQy5lbnN1cmVEZWZpbmVkKShuW29dKS5kYXRlTW9kaWZpZWR9KSl9KSxbZV0pfSgoMCxhLnVzZVNlbGVjdG9yKShTLnNlbGVjdEFsbFN5bWJvbE5vdGVzR3JvdXBzKSxoKSxnPSgwLGEudXNlU2VsZWN0b3IpKFMuc2VsZWN0Tm90ZXNTdGF0dXMpLGY9KDAsYy51c2VXYXRjaGVkVmFsdWVSZWFkb25seSkoe3dhdGNoZWRWYWx1ZTpyLndhdGNoZWRUaGVtZX0pPT09bS5TdGRUaGVtZS5EYXJrP1I6QjtyZXR1cm4oMCxvLnVzZUVmZmVjdCkoKCgpPT57ZnVuY3Rpb24gZShlKXt0LnJlcGxhY2UoRS5OT1RFU19QQVRIX1BBVFRFUk4se2Zyb206KDAsRS5wYXRoVG9Hcm91cCkoZSl9KX1yZXR1cm4gZC5saW5raW5nLnByb1N5bWJvbC5zdWJzY3JpYmUoZSksKCk9PntkLmxpbmtpbmcucHJvU3ltYm9sLnVuc3Vic2NyaWJlKGUpfX0pLFtdKSxnPT09eC5TeW1ib2xOb3Rlc1N0YXR1cy5GZXRjaGluZz9vLmNyZWF0ZUVsZW1lbnQoaS5TcGlubmVyLG51bGwpOm8uY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOnouc3ltYm9sTm90ZXMsImRhdGEtbmFtZSI6ImRldGFpbHMtYWxsLW5vdGVzLWNvbnRlbnQifSxvLmNyZWF0ZUVsZW1lbnQoRix7ImRhdGEtbmFtZSI6ImRldGFpbHMtYWxsLW5vdGVzLWhlYWRlciJ9KSxwLmxlbmd0aD4wP3AubWFwKChlPT5vLmNyZWF0ZUVsZW1lbnQoSSx7a2V5OmUubmFtZSxuYW1lOmUubmFtZSxzeW1ib2w6ZS5zeW1ib2wsbm90ZXM6ZS5ub3Rlc30pKSk6by5jcmVhdGVFbGVtZW50KHUuQ29udGVudElzTm90Rm91bmQse2NsYXNzTmFtZTp6LmVtcHR5LGljb246ZixkZXNjcmlwdGlvbjpsLnQobnVsbCx2b2lkIDAsbig4NDUzMDUpKX0pKX19LDc2MzEzOShlLHQsbil7InVzZSBzdHJpY3QiO2FzeW5jIGZ1bmN0aW9uIG8oZSl7cmV0dXJuKGF3YWl0IFByb21pc2UuYWxsKFtuLmUoMTg5MTEpLG4uZSg1NDY4MSksbi5lKDMxODM3KSxuLmUoMjA5NzEpLG4uZSg0OTUxOCksbi5lKDc1MzA0KSxuLmUoMzgwMDIpLG4uZSg3MDM2NCksbi5lKDg5MTk1KSxuLmUoMjU2NDcpLG4uZSg3NTA0KSxuLmUoNzY3Niksbi5lKDQ2NjAwKSxuLmUoNDYzODMpXSkudGhlbihuLmJpbmQobiw3OTk1OTApKSkuY3JlYXRlRGlhbG9nKGUpfWZ1bmN0aW9uIGEoZSl7byhlKS50aGVuKChlPT5lLm9wZW4oKSkpfW4uZCh0LHtjcmVhdGVFcnJvckRpYWxvZzooKT0+byxzaG93RXJyb3JEaWFsb2c6KCk9PmF9KX0sODA0MzEoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7dXNlTm90ZXNHcm91cEtleTooKT0+cn0pO3ZhciBvPW4oMzUwNTA4KSxhPW4oMzIwNTUpLHM9big0NzA1NTYpO2Z1bmN0aW9uIHIoZSl7Y29uc3QgdD0oMCxzLnVzZVF1b3Rlc1NuYXBzaG90KShlLFsicHJvX25hbWUiLCJzeW1ib2wtcHJpbWFyeW5hbWUiLCJ0eXBlIiwic2hvcnRfbmFtZSIsInR5cGVzcGVjcyJdLGEuc25hcHNob3Rlcik7aWYobnVsbD09PXQpcmV0dXJuIG51bGw7aWYoIm9rIiE9PXQuc3RhdHVzKXJldHVybntub3Rlc0dyb3VwS2V5OmUsc3ltYm9sRnVsbE5hbWU6ZX07Y29uc3Qgbj0oMCxvLmdldE5vdGVzR3JvdXBLZXlEYXRhKSh0LnZhbHVlcyk7cmV0dXJuIG4/e25vdGVzR3JvdXBLZXk6bi5ub3Rlc0dyb3VwS2V5LHN5bWJvbEZ1bGxOYW1lOm4uc3ltYm9sRnVsbE5hbWU/P2V9Om51bGx9fSw0MDg0MShlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtUb29sV2lkZ2V0SWNvbkJ1dHRvbjooKT0+bH0pO3ZhciBvPW4oNzc5NDc0KSxhPW4oOTE0NDg3KSxzPW4ubihhKSxyPW4oOTk1NzE5KSxpPW4oMjk4MDg2KTtjb25zdCBsPW8uZm9yd2FyZFJlZigoZnVuY3Rpb24oZSx0KXtjb25zdHtjbGFzc05hbWU6bixpZDphLC4uLmx9PWU7cmV0dXJuIG8uY3JlYXRlRWxlbWVudChyLlRvb2xXaWRnZXRCdXR0b24se2lkOmEsImRhdGEtbmFtZSI6YSwuLi5sLHJlZjp0LGNsYXNzTmFtZTpzKCkobixpLmJ1dHRvbil9KX0pKX0sNzU4NjIyKGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse3VzZUxvZ29EYXRhOigpPT5zLHVzZUxvZ29zOigpPT5yfSk7dmFyIG89bigyNDYxNzUpLGE9bigzMjA1NSk7ZnVuY3Rpb24gcyhlLHQpe3JldHVybigwLG8udXNlUXVvdGVzQ2FjaGVkRGF0YSkoZSxbImxvZ28iXSx7fSxhLnNuYXBzaG90ZXIsdCkubG9nb31mdW5jdGlvbiByKGUsdCl7cmV0dXJuKDAsby51c2VRdW90ZXNDYWNoZWREYXRhKShlLFsibG9nb2lkIiwiY3VycmVuY3ktbG9nb2lkIiwiYmFzZS1jdXJyZW5jeS1sb2dvaWQiXSx7fSxhLnNuYXBzaG90ZXIsdCl9fSw0NzA1NTYoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7dXNlUXVvdGVzU25hcHNob3Q6KCk9PmF9KTt2YXIgbz1uKDc3OTQ3NCk7ZnVuY3Rpb24gYShlLHQsbixhPSEwKXtyZXR1cm4gZnVuY3Rpb24oZSx0LG4sYT0hMCl7Y29uc3RbcyxyXT0oMCxvLnVzZVN0YXRlKShhPygpPT5uKCkuZ2V0U25hcHNob3RzRm9yQWxsU3luYyhlLG5ldyBTZXQodCkpOigpPT5BcnJheShlLmxlbmd0aCkuZmlsbChudWxsKSk7cmV0dXJuKDAsby51c2VFZmZlY3QpKCgoKT0+e2xldCBvPSExO3JldHVybiBuKCkuZ2V0U25hcHNob3RzRm9yQWxsKGUsbmV3IFNldCh0KSkudGhlbigoZT0+e298fHIoZSl9KSksKCk9PntvPSEwfX0pLFtlXSksc30oKDAsby51c2VNZW1vKSgoKCk9Pm51bGw9PT1lP1tdOltlXSksW2VdKSx0LG4sYSlbMF0/P251bGx9fSw5MjU0NzYoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7Rm9ybVRleHRhcmVhOigpPT5tfSkKO3ZhciBvPW4oNzc5NDc0KSxhPW4oOTE0NDg3KSxzPW4ubihhKSxyPW4oNzQ0OTQyKSxpPW4oNjgzMDQpLGw9big1MDU2MzkpLGM9big4MzM5MDMpLHU9bigzMTk2OSksZD1uKDg3MTc0NSk7Y29uc3QgbT1vLmZvcndhcmRSZWYoKChlLHQpPT57Y29uc3R7Y2xhc3NOYW1lOm4saW50ZW50OmEsb25Gb2N1czptLG9uQmx1cjpoLG9uTW91c2VFbnRlcjpwLG9uTW91c2VMZWF2ZTpnLGNvbnRhaW5lclJlZmVyZW5jZTpmPW51bGwsZW5kU2xvdDp2LGhhc0Vycm9yczpiLGhhc1dhcm5pbmdzOncsZXJyb3JzOlMsd2FybmluZ3M6TixhbHdheXNTaG93QXR0YWNoZWRFcnJvcnM6RSxpY29uSGlkZGVuOnksbWVzc2FnZXNQb3NpdGlvbjpJLG1lc3NhZ2VzQXR0YWNobWVudDp4LC4uLkN9PWUsTT1Cb29sZWFuKHZ8fGJ8fHcpLGs9KDAsaS51c2VDb250cm9sVmFsaWRhdGlvbkxheW91dCkoe2hhc0Vycm9yczpiLGhhc1dhcm5pbmdzOncsZXJyb3JzOlMsd2FybmluZ3M6TixhbHdheXNTaG93QXR0YWNoZWRFcnJvcnM6RSxpY29uSGlkZGVuOnksbWVzc2FnZXNQb3NpdGlvbjpJLG1lc3NhZ2VzQXR0YWNobWVudDp4fSksRD0oMCxjLmNyZWF0ZVNhZmVNdWx0aWNhc3RFdmVudEhhbmRsZXIpKG0say5vbkZvY3VzKSxBPSgwLGMuY3JlYXRlU2FmZU11bHRpY2FzdEV2ZW50SGFuZGxlcikoaCxrLm9uQmx1ciksRj0oMCxjLmNyZWF0ZVNhZmVNdWx0aWNhc3RFdmVudEhhbmRsZXIpKHAsay5vbk1vdXNlRW50ZXIpLFI9KDAsYy5jcmVhdGVTYWZlTXVsdGljYXN0RXZlbnRIYW5kbGVyKShnLGsub25Nb3VzZUxlYXZlKTtyZXR1cm4gby5jcmVhdGVFbGVtZW50KG8uRnJhZ21lbnQsbnVsbCxvLmNyZWF0ZUVsZW1lbnQoci5UZXh0YXJlYSx7Li4uQyxjbGFzc05hbWU6cygpKGQuZm9ybVRleHRhcmVhLG4pLGludGVudDprLmludGVudD8/YSxvbkZvY3VzOkQsb25CbHVyOkEsb25Nb3VzZUVudGVyOkYsb25Nb3VzZUxlYXZlOlIsY29udGFpbmVyUmVmZXJlbmNlOigwLHUudXNlTWVyZ2VkUmVmcykoW2Ysay5jb250YWluZXJSZWZlcmVuY2VdKSxyZWY6dCwiYXJpYS1pbnZhbGlkIjpiLC4uLk0mJntlbmRTbG90Om8uY3JlYXRlRWxlbWVudChvLkZyYWdtZW50LG51bGwsay5pY29uJiZvLmNyZWF0ZUVsZW1lbnQobC5FbmRTbG90LHtkYXRhUWFJZDoidmFsaWRhdGlvbi10ZXh0YXJlYS1pY29uIixpY29uOiEwLGNsYXNzTmFtZTpkWyJlbmQtc2xvdCJdfSxrLmljb24pLHYpfSwiYXJpYS1kZXNjcmliZWRieSI6ay5hcmlhSWRzfSksay5yZW5kZXJlZEVycm9ycyl9KSk7bS5kaXNwbGF5TmFtZT0iRm9ybVRleHRhcmVhIn0sNjgzMDQoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7Q29udHJvbE1lc3NhZ2VzQXR0YWNobWVudDooKT0+UyxNZXNzYWdlc1Bvc2l0aW9uOigpPT53LHVzZUNvbnRyb2xWYWxpZGF0aW9uTGF5b3V0OigpPT5EfSk7dmFyIG89big3Nzk0NzQpLGE9big5MTQ0ODcpLHM9bi5uKGEpO2Z1bmN0aW9uIHIoZSx0KXsoMCxvLnVzZUVmZmVjdCkoKCgpPT4odCYmdChlKSwoKT0+e3QmJnQoZSl9KSksW10pfXZhciBpPW4oMTQ1OTg0KSxsPW4oNjg5ODk0KSxjPW4oNTA1NjM5KSx1PW4oODY4MTEwKSxkPW4oNjU5ODc4KSxtPW4oMzg0MzcwKSxoPW4oMTE1MjkzKSxwPW4oOTI1NzkxKTtjbGFzcyBnIGV4dGVuZHMgby5QdXJlQ29tcG9uZW50e3JlbmRlcigpe2NvbnN0e2NoaWxkcmVuOmU9W10sc2hvdzp0PSExLGN1c3RvbUVycm9yQ2xhc3M6bixkaXNhYmxlUnRsU3R5bGVzOmEsbWVzc2FnZUlkQ2FsbGJhY2s6cixkYXRhUWFJZDppfT10aGlzLnByb3BzLGw9cygpKHAuZXJyb3JzLHtbcC5zaG93XTp0fSxuKSxjPWUubWFwKCgoZSx0KT0+by5jcmVhdGVFbGVtZW50KHYse2tleTp0LG1lc3NhZ2VJZENhbGxiYWNrOnJ9LGUpKSk7bGV0IHU9e3Bvc2l0aW9uOiJhYnNvbHV0ZSIsdG9wOnRoaXMucHJvcHMudG9wLHdpZHRoOnRoaXMucHJvcHMud2lkdGgsaGVpZ2h0OnRoaXMucHJvcHMuaGVpZ2h0LGJvdHRvbTp2b2lkIDAhPT10aGlzLnByb3BzLmJvdHRvbT90aGlzLnByb3BzLmJvdHRvbToiMTAwJSIscmlnaHQ6dm9pZCAwIT09dGhpcy5wcm9wcy5yaWdodD90aGlzLnByb3BzLnJpZ2h0OjAsbGVmdDp0aGlzLnByb3BzLmxlZnQsekluZGV4OnRoaXMucHJvcHMuekluZGV4LG1heFdpZHRoOnRoaXMucHJvcHMubWF4V2lkdGh9O2lmKCgwLGguaXNSdGwpKCkmJiFhKXtjb25zdHtsZWZ0OmUscmlnaHQ6dH09dTt1PXsuLi51LGxlZnQ6dCxyaWdodDplfX1yZXR1cm4gby5jcmVhdGVFbGVtZW50KCJkaXYiLHsiZGF0YS1xYS1pZCI6aSxzdHlsZTp1LGNsYXNzTmFtZTpsfSxjKX19Y29uc3QgZj0oMCxkLm1ha2VPdmVybGFwYWJsZSkoKDAsbS5tYWtlQXR0YWNoYWJsZSkoZykpO2Z1bmN0aW9uIHYoZSl7Y29uc3R7Y2hpbGRyZW46dCxtZXNzYWdlSWRDYWxsYmFjazpuLC4uLmF9PWU7cmV0dXJuIG8uY3JlYXRlRWxlbWVudCgiZGl2Iix7Li4uYSxjbGFzc05hbWU6cC5lcnJvcn0sdCl9ZnVuY3Rpb24gYihlKXtjb25zdHtjaGlsZHJlbjp0LG1lc3NhZ2VJZENhbGxiYWNrOm4sLi4uYX09ZSxzPW8udXNlSWQoKTtyZXR1cm4gcihzLG4pLG8uY3JlYXRlRWxlbWVudCgic3BhbiIsey4uLmEsY2xhc3NOYW1lOnBbInZpc3VhbGx5LWhpZGRlbiJdLGlkOnN9LHQpfXZhciB3LFMsTj1uKDM2MTMwNyksRT1uKDIwODg5OSk7IWZ1bmN0aW9uKGUpe2VbZS5BdHRhY2hlZD0wXT0iQXR0YWNoZWQiLGVbZS5TdGF0aWM9MV09IlN0YXRpYyIsZVtlLkhpZGRlbj0yXT0iSGlkZGVuIn0od3x8KHc9e30pKSxmdW5jdGlvbihlKXtlLlRvcD0idG9wIixlLkJvdHRvbT0iYm90dG9tIn0oU3x8KFM9e30pKTtjb25zdCB5PXt0b3A6e2F0dGFjaG1lbnQ6dS5hbmNob3JzLnRvcFJpZ2h0LmF0dGFjaG1lbnQsdGFyZ2V0QXR0YWNobWVudDp1LmFuY2hvcnMudG9wUmlnaHQudGFyZ2V0QXR0YWNobWVudCxhdHRhY2htZW50T2Zmc2V0WTotNH0sYm90dG9tOnthdHRhY2htZW50OnUuYW5jaG9ycy5ib3R0b21SaWdodC5hdHRhY2htZW50LHRhcmdldEF0dGFjaG1lbnQ6dS5hbmNob3JzLmJvdHRvbVJpZ2h0LnRhcmdldEF0dGFjaG1lbnQsYXR0YWNobWVudE9mZnNldFk6NH19O2Z1bmN0aW9uIEkoZSl7CmNvbnN0e2lzT3BlbmVkOnQsdGFyZ2V0Om4sZXJyb3JBdHRhY2htZW50OmE9Uy5Ub3AsY3VzdG9tRXJyb3JzQXR0YWNobWVudDpzLHJvb3Q6cj0icGFyZW50Iixpbmhlcml0V2lkdGhGcm9tVGFyZ2V0Omk9ITEsZGlzYWJsZVJ0bFN0eWxlczpsLGNoaWxkcmVuOmMsbWVzc2FnZUlkQ2FsbGJhY2s6dSxkYXRhUWFJZDpkfT1lLHthdHRhY2htZW50Om0sdGFyZ2V0QXR0YWNobWVudDpoLGF0dGFjaG1lbnRPZmZzZXRZOnB9PXM/P3lbYV07cmV0dXJuIG8uY3JlYXRlRWxlbWVudChvLkZyYWdtZW50LG51bGwsby5jcmVhdGVFbGVtZW50KGYse2lzT3BlbmVkOnQsdGFyZ2V0OnM/LnRhcmdldD8/bixyb290OnIsaW5oZXJpdFdpZHRoRnJvbVRhcmdldDppLGF0dGFjaG1lbnQ6bSx0YXJnZXRBdHRhY2htZW50OmgsYXR0YWNobWVudE9mZnNldFk6cCxkaXNhYmxlUnRsU3R5bGVzOmwsbWVzc2FnZUlkQ2FsbGJhY2s6dSxpbmhlcml0TWF4V2lkdGhGcm9tVGFyZ2V0OiEwLHNob3c6ITAsZGF0YVFhSWQ6ZH0sYyksby5jcmVhdGVFbGVtZW50KGIse21lc3NhZ2VJZENhbGxiYWNrOnV9LGMpKX1mdW5jdGlvbiB4KGUsdCl7cmV0dXJuIEJvb2xlYW4oZSkmJnZvaWQgMCE9PXQmJnQubGVuZ3RoPjB9ZnVuY3Rpb24gQyhlLHQsbil7cmV0dXJuIGU9PT13LkF0dGFjaGVkJiZ4KHQsbil9ZnVuY3Rpb24gTShlLHQsbil7cmV0dXJuIGU9PT13LlN0YXRpYyYmeCh0LG4pfWZ1bmN0aW9uIGsoZSx0LG4pe2NvbnN0e2hhc0Vycm9yczpvLGhhc1dhcm5pbmdzOmEsaGFzU3VjY2Vzc01lc3NhZ2VzOnMsYWx3YXlzU2hvd0F0dGFjaGVkRXJyb3JzOnIsaWNvbkhpZGRlbjppLGVycm9yczpsLHdhcm5pbmdzOmMsc3VjY2Vzc01lc3NhZ2VzOnUsbWVzc2FnZXNQb3NpdGlvbjpkPXcuU3RhdGljfT1lLG09QyhkLG8sbCksaD1DKGQsYSxjKSxwPW0mJih0fHxufHxCb29sZWFuKHIpKSxnPSFwJiZoJiYodHx8biksZj1NKGQsbyxsKSx2PSFmJiZNKGQsYSxjKSxiPSFmJiYhdiYmTShkLHMsdSksUz0haSYmQm9vbGVhbihvKSxOPSFpJiYhUyYmQm9vbGVhbihhKSxFPWZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gQm9vbGVhbihuKT8ic3VjY2VzcyI6Qm9vbGVhbihlKT8iZGFuZ2VyIjpCb29sZWFuKHQpPyJ3YXJuaW5nIjp2b2lkIDB9KG8sYSxzKTtyZXR1cm57aGFzQXR0YWNoZWRFcnJvck1lc3NhZ2VzOm0saGFzQXR0YWNoZWRXYXJuaW5nTWVzc2FnZXM6aCxzaG93QXR0YWNoZWRFcnJvck1lc3NhZ2VzOnAsc2hvd0F0dGFjaGVkV2FybmluZ01lc3NhZ2VzOmcsc2hvd1N0YXRpY0Vycm9yTWVzc2FnZXM6ZixzaG93U3RhdGljV2FybmluZ01lc3NhZ2VzOnYsc2hvd1N0YXRpY1N1Y2Nlc3NNZXNzYWdlczpiLHNob3dFcnJvckljb246UyxzaG93V2FybmluZ0ljb246TixpbnRlbnQ6RX19ZnVuY3Rpb24gRChlKXtjb25zdHtlcnJvcnM6dCx3YXJuaW5nczpuLHN1Y2Nlc3NNZXNzYWdlczphLG1lc3NhZ2VzQXR0YWNobWVudDpyLGN1c3RvbUVycm9yc0F0dGFjaG1lbnQ6dSxtZXNzYWdlc1Jvb3Q6ZCxpbmhlcml0TWVzc2FnZXNXaWR0aEZyb21UYXJnZXQ6bSxkaXNhYmxlTWVzc2FnZXNSdGxTdHlsZXM6aCxpbnB1dERlc2NyaXB0aW9uOnB9PWUsW2csZl09KDAsaS51c2VGb2N1cykoKSxbdixiXT0oMCxsLnVzZUhvdmVyKSgpLHc9KDAsby51c2VSZWYpKG51bGwpLFtTLHldPW8udXNlU3RhdGUodm9pZCAwKSx4PSgwLG8udXNlUmVmKShuZXcgTWFwKSxDPW8udXNlQ2FsbGJhY2soKGU9PntpZighZSlyZXR1cm47Y29uc3QgdD14LmN1cnJlbnQ7dC5oYXMoZSk/dC5kZWxldGUoZSk6dC5zZXQoZSxlKSwwIT09dC5zaXplP3koQXJyYXkuZnJvbSh0LmtleXMoKSkuam9pbigiICIpKTp5KHZvaWQgMCl9KSxbeSx4LmN1cnJlbnRdKSx7aGFzQXR0YWNoZWRFcnJvck1lc3NhZ2VzOk0saGFzQXR0YWNoZWRXYXJuaW5nTWVzc2FnZXM6RCxzaG93QXR0YWNoZWRFcnJvck1lc3NhZ2VzOkYsc2hvd0F0dGFjaGVkV2FybmluZ01lc3NhZ2VzOlIsc2hvd1N0YXRpY0Vycm9yTWVzc2FnZXM6QixzaG93U3RhdGljV2FybmluZ01lc3NhZ2VzOnosc2hvd1N0YXRpY1N1Y2Nlc3NNZXNzYWdlczpQLHNob3dFcnJvckljb246VCxzaG93V2FybmluZ0ljb246VyxpbnRlbnQ6X309ayhlLGcsdiksRz1UfHxXP28uY3JlYXRlRWxlbWVudChOLkVycm9ySWNvbix7aW50ZW50OlQ/ImRhbmdlciI6Indhcm5pbmcifSk6dm9pZCAwLEw9TT9vLmNyZWF0ZUVsZW1lbnQoSSx7ZXJyb3JBdHRhY2htZW50OnIsY3VzdG9tRXJyb3JzQXR0YWNobWVudDp1LGlzT3BlbmVkOkYsdGFyZ2V0OncuY3VycmVudCxyb290OmQsaW5oZXJpdFdpZHRoRnJvbVRhcmdldDptLGRpc2FibGVSdGxTdHlsZXM6aCxjaGlsZHJlbjp0LG1lc3NhZ2VJZENhbGxiYWNrOkMsZGF0YVFhSWQ6ImF0dGFjaGVkLWVycm9yLWJveCJ9KTp2b2lkIDAsSD1EP28uY3JlYXRlRWxlbWVudChJLHtlcnJvckF0dGFjaG1lbnQ6cixpc09wZW5lZDpSLHRhcmdldDp3LmN1cnJlbnQscm9vdDpkLGluaGVyaXRXaWR0aEZyb21UYXJnZXQ6bSxkaXNhYmxlUnRsU3R5bGVzOmgsY2hpbGRyZW46bixtZXNzYWdlSWRDYWxsYmFjazpDLGRhdGFRYUlkOiJhdHRhY2hlZC13YXJuaW5nLWJveCJ9KTp2b2lkIDAsWD1CP28uY3JlYXRlRWxlbWVudChjLkFmdGVyU2xvdCx7ZGF0YVFhSWQ6InN0YXRpYy1lcnJvcnMiLGNsYXNzTmFtZTpzKCkoRVsic3RhdGljLW1lc3NhZ2VzIl0sRS5lcnJvcnMpfSx0Py5tYXAoKChlLHQpPT5vLmNyZWF0ZUVsZW1lbnQoQSx7a2V5OnQsbWVzc2FnZUlkQ2FsbGJhY2s6Q30sZSkpKSk6dm9pZCAwLFU9ej9vLmNyZWF0ZUVsZW1lbnQoYy5BZnRlclNsb3Qse2RhdGFRYUlkOiJzdGF0aWMtd2FybmluZ3MiLGNsYXNzTmFtZTpzKCkoRVsic3RhdGljLW1lc3NhZ2VzIl0sRS53YXJuaW5ncyl9LG4/Lm1hcCgoKGUsdCk9Pm8uY3JlYXRlRWxlbWVudChBLHtrZXk6dCxtZXNzYWdlSWRDYWxsYmFjazpDfSxlKSkpKTp2b2lkIDAsWj1QP28uY3JlYXRlRWxlbWVudChjLkFmdGVyU2xvdCx7ZGF0YVFhSWQ6InN1Y2Nlc3MtbWVzc2FnZSIsY2xhc3NOYW1lOnMoKShFWyJzdGF0aWMtbWVzc2FnZXMiXSxFWyJzdWNjZXNzLW1lc2FnZXMiXSkKfSxhPy5tYXAoKChlLHQpPT5vLmNyZWF0ZUVsZW1lbnQoQSx7a2V5OnQsbWVzc2FnZUlkQ2FsbGJhY2s6Q30sZSkpKSk6dm9pZCAwLHE9IUImJiF6JiYhUCYmcD9vLmNyZWF0ZUVsZW1lbnQoYy5BZnRlclNsb3Qse2RhdGFRYUlkOiJzdWNjZXNzLW1lc3NhZ2VzIixjbGFzc05hbWU6cygpKEVbInN0YXRpYy1tZXNzYWdlcyJdLEVbImlucHV0LWRlc2NyaXB0aW9uIl0pfSxvLmNyZWF0ZUVsZW1lbnQoQSx7bWVzc2FnZUlkQ2FsbGJhY2s6Q30scCkpOnZvaWQgMDtyZXR1cm57YXJpYUlkczpTLGljb246RyxyZW5kZXJlZEVycm9yczpMPz9IPz9YPz9VPz9aPz9xLGNvbnRhaW5lclJlZmVyZW5jZTp3LGludGVudDpfLC4uLmYsLi4uYn19ZnVuY3Rpb24gQShlKXtjb25zdHtjaGlsZHJlbjp0LG1lc3NhZ2VJZENhbGxiYWNrOm4sLi4uYX09ZSxzPW8udXNlSWQoKTtyZXR1cm4gcihzLG4pLG8uY3JlYXRlRWxlbWVudCgic3BhbiIsey4uLmEsY2xhc3NOYW1lOkUubWVzc2FnZSwiYXJpYS1saXZlIjoiYXNzZXJ0aXZlIixpZDpzfSx0KX19LDkzMTI1MChlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHttYWtlU25hcHNob3RSZXF1ZXN0OigpPT5sLHRha2VDaGFydFNuYXBzaG90OigpPT5pLHRha2VDaGFydFNuYXBzaG90UHJvbWlzZTooKT0+cn0pO24oODI5MTgwKTt2YXIgbz1uKDE4NTI3MSksYT1uKDc2MzEzOSkscz1uKDM4NDAxNyk7ZnVuY3Rpb24gcihlLHQ9e30pe3JldHVybiBuZXcgUHJvbWlzZSgoKG4sbyk9PntpKGUsbixvLHQpLmNhdGNoKG8pfSkpfWFzeW5jIGZ1bmN0aW9uIGkoZSx0LG4sbz17fSl7Y29uc3QgYT1uZXcgRm9ybURhdGE7aWYodm9pZCAwIT09by5wcmV2aWV3cylmb3IoY29uc3QgZSBvZiBvLnByZXZpZXdzKWEuYXBwZW5kKCJwcmV2aWV3c1tdIixlKTt2b2lkIDAhPT1vLmNtZSYmYS5hcHBlbmQoImNtZSIsU3RyaW5nKG8uY21lKSksdm9pZCAwIT09by53bCYmYS5hcHBlbmQoIndsIixTdHJpbmcoby53bCkpLHZvaWQgMCE9PW8ub25XaWRnZXQmJmEuYXBwZW5kKCJvbldpZGdldCIsU3RyaW5nKG8ub25XaWRnZXQpKSxvLmlzUmVwb3J0JiZhLmFwcGVuZCgiaXNSZXBvcnQiLFN0cmluZyhvLmlzUmVwb3J0KSksby5hc3luY1NhdmUmJmEuYXBwZW5kKCJhc3luY1NhdmUiLFN0cmluZyhvLmFzeW5jU2F2ZSkpO2NvbnN0IHM9d2luZG93LnVybFBhcmFtcztzJiZzLmxvY2FsZSYmYS5hcHBlbmQoImxhbmd1YWdlIixzLmxvY2FsZSk7Y29uc3Qgcj1lLmFjdGl2ZUNoYXJ0V2lkZ2V0LnZhbHVlKCksaT1yLndpZGdldEN1c3RvbWVyKCk7dm9pZCAwIT09aSYmYS5hcHBlbmQoImN1c3RvbWVyIixpKTtjb25zdCBjPXIubW9kZWwoKS5tb2RlbCgpLnRpbWV6b25lRXhjZXB0RXhjaGFuZ2UoKS52YWx1ZSgpPz8iZXhjaGFuZ2UiO2EuYXBwZW5kKCJ0aW1lem9uZSIsYyksYS5hcHBlbmQoInN5bWJvbCIsci5tb2RlbCgpLm1haW5TZXJpZXMoKS5zeW1ib2woKSk7Y29uc3QgdT1hd2FpdCBlLmNsaWVudFNuYXBzaG90KHtzaG93SGVhZGVyTWFpblN5bWJvbDpvLnNob3dIZWFkZXJNYWluU3ltYm9sfSksZD1hd2FpdCBuZXcgUHJvbWlzZSgoZT0+dS50b0Jsb2IoZSkpKTtudWxsIT09ZCYmYS5hcHBlbmQoInByZXBhcmVkSW1hZ2UiLGQpLGwoYSx0LG4sbyl9YXN5bmMgZnVuY3Rpb24gbChlLHQscixpPXt9KXt0cnl7Y29uc3QgbD1hd2FpdCgwLHMuZmV0Y2gpKCIvc25hcHNob3QvIix7Ym9keTplLG1ldGhvZDoiUE9TVCIsY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIn0pLGM9YXdhaXQgbC50ZXh0KCk7aWYobC5vayl0KGMpO2Vsc2V7aWYoInN1c3BpY2lvdXNfY2hhcnRfc25hcHNob3RzX2Vycm9yIj09PWMpe2NvbnN0IGU9by50KG51bGwsdm9pZCAwLG4oNzgzODM1KSkuZm9ybWF0KHtzdGFydF9saW5rOic8YSBjbGFzcz0idHYtZGlhbG9nX19saW5rIGpzLXNlbmQtcmVwb3J0LWxpbmsiIGhyZWY9IiMiIGRhdGEtaXNzdWUtdHlwZT0ib3RoZXIiPicsZW5kX2xpbms6IjwvYT4ifSk7aS5vbkludmFsaWRTbmFwc2hvdEltYWdlJiZpLm9uSW52YWxpZFNuYXBzaG90SW1hZ2UoKTtyZXR1cm4oMCxhLmNyZWF0ZUVycm9yRGlhbG9nKSh7dGl0bGU6by50KG51bGwsdm9pZCAwLG4oNDM1MjQxKSksY29udGVudDplLGJ0blR5cGU6ImRhbmdlciJ9KS50aGVuKChlPT57ZS5vbigiYWZ0ZXJPcGVuIiwoKCk9PntuLmUoMzQxODkpLnRoZW4obi5iaW5kKG4sMTI5MjIpKS50aGVuKCgoe2J1Z0RpYWxvZ0NyZWF0aW9uSGFuZGxlcjp0fSk9Pnt0KCksZS4kZWwuZmluZCgiLmpzLXNlbmQtcmVwb3J0LWxpbmsiKS5jbGljaygoKCk9PntlLmNsb3NlKCl9KSl9KSl9KSksZS5vcGVuKCl9KSl9cigpfX1jYXRjaHtyKCl9fX0sMTg2Mzg0KGUpe2UuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxOCAxOCIgd2lkdGg9IjE4IiBoZWlnaHQ9IjE4Ij48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGQ9Ik0xMy4zNSA1LjM1YS41LjUgMCAwIDAtLjctLjdMOSA4LjI5IDUuMzUgNC42NWEuNS41IDAgMSAwLS43LjdMOC4yOSA5bC0zLjY0IDMuNjVhLjUuNSAwIDAgMCAuNy43TDkgOS43MWwzLjY1IDMuNjRhLjUuNSAwIDAgMCAuNy0uN0w5LjcxIDlsMy42NC0zLjY1eiIvPjwvc3ZnPid9LDIzMjMyNyhlKXtlLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMTggMTgiIHdpZHRoPSIxOCIgaGVpZ2h0PSIxOCI+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBkPSJNMTEuNDQgMy4zNGExLjUgMS41IDAgMCAxIDIuMTIgMGwxLjA5IDEuMDlhMS41IDEuNSAwIDAgMSAwIDIuMTJsLTcgN2ExLjUgMS41IDAgMCAxLTEuMDYuNDRINFYxMS40YzAtLjQuMTYtLjc4LjQ0LTEuMDZsNy03Wm0xLjQxLjdhLjUuNSAwIDAgMC0uNyAwbC0uNy43IDEuOCAxLjc5LjY5LS43YS41LjUgMCAwIDAgMC0uN2wtMS4wOS0xLjA4Wm0tLjMgMy4yLTEuOC0xLjgtNS42IDUuNmEuNS41IDAgMCAwLS4xNS4zNnYxLjU5aDEuNTlhLjUuNSAwIDAgMCAuMzUtLjE1bDUuNi01LjZaIi8+PC9zdmc+J30sNDYyNzA0KGUpewplLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMTggMTgiIHdpZHRoPSIxOCIgaGVpZ2h0PSIxOCI+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBkPSJNMTIgNGgzdjFoLTEuMDRsLS44OCA5LjY0YTEuNSAxLjUgMCAwIDEtMS41IDEuMzZINi40MmExLjUgMS41IDAgMCAxLTEuNS0xLjM2TDQuMDUgNUgzVjRoM3YtLjVDNiAyLjY3IDYuNjcgMiA3LjUgMmgzYy44MyAwIDEuNS42NyAxLjUgMS41VjRaTTcuNSAzYS41LjUgMCAwIDAtLjUuNVY0aDR2LS41YS41LjUgMCAwIDAtLjUtLjVoLTNaTTUuMDUgNWwuODcgOS41NWEuNS41IDAgMCAwIC41LjQ1aDUuMTdhLjUuNSAwIDAgMCAuNS0uNDVMMTIuOTQgNWgtNy45WiIvPjwvc3ZnPid9LDY3OTY1NChlKXtlLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMjggMjgiIHdpZHRoPSIyOCIgaGVpZ2h0PSIyOCI+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBkPSJNMTcuNyA4bC02IDYgNiA2LS43LjctNi43LTYuN0wxNyA3LjNsLjcuN3oiLz48L3N2Zz4nfSw1NTE0MjQoZSl7ZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDI4IDI4IiB3aWR0aD0iMjgiIGhlaWdodD0iMjgiPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZD0iTTcuNSA5YTEuNSAxLjUgMCAxIDAgMC0zIDEuNSAxLjUgMCAwIDAgMCAzWk0yMiA3SDEydjFoMTBWN1pNNy41IDE1YTEuNSAxLjUgMCAxIDAgMC0zIDEuNSAxLjUgMCAwIDAgMCAzWk0yMiAxM0gxMnYxaDEwdi0xWk05IDE5LjVhMS41IDEuNSAwIDEgMS0zIDAgMS41IDEuNSAwIDAgMSAzIDBabTMtLjVoMTB2MUgxMnYtMVoiLz48L3N2Zz4nfSw3OTU5ODYoZSl7ZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjI4IiBoZWlnaHQ9IjI4IiBmaWxsPSJjdXJyZW50Q29sb3IiPjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMTEuMTE4IDZhLjUuNSAwIDAgMC0uNDQ3LjI3Nkw5LjgwOSA4SDUuNUExLjUgMS41IDAgMCAwIDQgOS41djEwQTEuNSAxLjUgMCAwIDAgNS41IDIxaDE2YTEuNSAxLjUgMCAwIDAgMS41LTEuNXYtMTBBMS41IDEuNSAwIDAgMCAyMS41IDhoLTQuMzA5bC0uODYyLTEuNzI0QS41LjUgMCAwIDAgMTUuODgyIDZoLTQuNzY0em0tMS4zNDItLjE3QTEuNSAxLjUgMCAwIDEgMTEuMTE4IDVoNC43NjRhMS41IDEuNSAwIDAgMSAxLjM0Mi44M0wxNy44MDkgN0gyMS41QTIuNSAyLjUgMCAwIDEgMjQgOS41djEwYTIuNSAyLjUgMCAwIDEtMi41IDIuNWgtMTZBMi41IDIuNSAwIDAgMSAzIDE5LjV2LTEwQTIuNSAyLjUgMCAwIDEgNS41IDdoMy42OTFsLjU4NS0xLjE3eiIvPjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMTMuNSAxOGEzLjUgMy41IDAgMSAwIDAtNyAzLjUgMy41IDAgMCAwIDAgN3ptMCAxYTQuNSA0LjUgMCAxIDAgMC05IDQuNSA0LjUgMCAwIDAgMCA5eiIvPjwvc3ZnPid9LDE0MDg5NShlKXtlLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMTIwIDEyMCIgd2lkdGg9IjEyMCIgaGVpZ2h0PSIxMjAiPjxwYXRoIGZpbGw9IiNCMkI1QkUiIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTIzIDM5YTM2IDM2IDAgMCAxIDcyIDB2MTMuMTVsMTUuMSA4LjQ0IDIuMTYgMS4yLTEuNjQgMS44Ni0xMi44NSAxNC41OSAzLjczIDQuMDNMOTguNTcgODUgOTUgODEuMTNWMTE3SDc3di0xMkg2N3Y5SDUwVjk1SDQwdjIySDIzVjgxLjI4bC0zLjggMy42MS0yLjc2LTIuOSA0LjA1LTMuODQtMTIuNzctMTQuNS0xLjY0LTEuODYgMi4xNi0xLjJMMjMgNTIuMzRWMzlabTcyIDM2LjMzIDEwLjk4LTEyLjQ2TDk1IDU2LjczdjE4LjZaTTIzIDU2LjkydjE4LjAzTDEyLjM1IDYyLjg3IDIzIDU2LjkyWk01OSA3YTMyIDMyIDAgMCAwLTMyIDMydjc0aDlWOTFoMTh2MTloOXYtOWgxOHYxMmgxMFYzOUEzMiAzMiAwIDAgMCA1OSA3Wm0tNyAzNmEzIDMgMCAxIDEtNiAwIDMgMyAwIDAgMSA2IDBabTE5IDNhMyAzIDAgMSAwIDAtNiAzIDMgMCAwIDAgMCA2WiIvPjwvc3ZnPid9LDQ4Nzc1MChlKXtlLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMTIwIDEyMCIgd2lkdGg9IjEyMCIgaGVpZ2h0PSIxMjAiPjxwYXRoIGZpbGw9IiMxMzE3MjIiIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTIzIDM5YTM2IDM2IDAgMCAxIDcyIDB2MTMuMTVsMTUuMSA4LjQ0IDIuMTYgMS4yLTEuNjQgMS44Ni0xMi44NSAxNC41OSAzLjczIDQuMDNMOTguNTcgODUgOTUgODEuMTNWMTE3SDc3di0xMkg2N3Y5SDUwVjk1SDQwdjIySDIzVjgxLjI4bC0zLjggMy42MS0yLjc2LTIuOSA0LjA1LTMuODQtMTIuNzctMTQuNS0xLjY0LTEuODYgMi4xNi0xLjJMMjMgNTIuMzRWMzlabTcyIDM2LjMzIDEwLjk4LTEyLjQ2TDk1IDU2LjczdjE4LjZaTTIzIDU2LjkydjE4LjAzTDEyLjM1IDYyLjg3IDIzIDU2LjkyWk01OSA3YTMyIDMyIDAgMCAwLTMyIDMydjc0aDlWOTFoMTh2MTloOXYtOWgxOHYxMmgxMFYzOUEzMiAzMiAwIDAgMCA1OSA3Wm0tNyAzNmEzIDMgMCAxIDEtNiAwIDMgMyAwIDAgMSA2IDBabTE5IDNhMyAzIDAgMSAwIDAtNiAzIDMgMCAwIDAgMCA2WiIvPjwvc3ZnPid9fV0pOw=="}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.gstatic.com/images/branding/googlelogo/1x/googlelogo_color_42x16dp.png","fqdn":"www.gstatic.com","domain":"gstatic.com","tld":"com"},"ip":{"addr":"142.250.178.67","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://digital-assettrade.com/","date":"2026-07-27T10:27:13.614Z","timestamp":1785148033614,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.gstatic.com","organization":""},"issuer":{"commonName":"WE2","organization":"Google Trust Services"},"validity":{"start":"Mon, 29 Jun 2026 08:39:25 GMT","end":"Mon, 21 Sep 2026 08:39:24 GMT"},"fingerprint":{"sha1":"4E:F2:73:C6:27:16:58:35:FE:55:D5:30:6B:E8:6D:2B:DA:B0:E8:7B","sha256":"82:EF:6A:61:96:A5:23:D6:2C:2C:9D:77:67:04:D8:7B:3B:6A:50:DA:3C:6C:6A:5F:4E:2D:55:F3:FC:DA:0B:EE"}}},"request":{"raw":"GET /images/branding/googlelogo/1x/googlelogo_color_42x16dp.png HTTP/1.1\r\nHost: www.gstatic.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-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://digital-assettrade.com/\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=6, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccept-ranges: bytes\r\ncross-origin-resource-policy: cross-origin\r\ncross-origin-opener-policy-report-only: same-origin; report-to=\"static-on-bigtable\"\r\nreport-to: {\"group\":\"static-on-bigtable\",\"max_age\":2592000,\"endpoints\":[{\"url\":\"https://csp.withgoogle.com/csp/report-to/static-on-bigtable\"}]}\r\ncontent-length: 910\r\nx-content-type-options: nosniff\r\nserver: sffe\r\nx-xss-protection: 0\r\ndate: Wed, 22 Jul 2026 13:10:14 GMT\r\nexpires: Thu, 22 Jul 2027 13:10:14 GMT\r\ncache-control: public, max-age=31536000\r\nlast-modified: Thu, 02 Nov 2023 22:48:00 GMT\r\ncontent-type: image/png\r\nvary: Origin\r\nage: 422219\r\nalt-svc: h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":null,"data":{"size":910,"size_decoded":1583,"mime_type":"image/png","magic":"PNG image data, 42 x 16, 8-bit/color RGBA, non-interlaced","md5":"efa6bb2bfe459bc6f4bdafa3db0383f6","sha1":"52d15ce52fe50643e542c17812de43f4ed1b6ee0","sha256":"6318394f737c66f0e2ccfcd88e3935c6667633a1b95fa29fba2b75431d55eef2","sha512":"e23c04d8997f5c2f92070e09261b7ee50d9df8753f45cf66f604f0874ffa8d99e947c97c528ec02a2c3fbe8e43d840b343a7d0225532980d5da95031216415b7","ssdeep":"","tlshash":"491184a73cd1dc6854a47a87aa91b864ec250f1b91a220981237b42277313444fdc8f7","first_seen":"2023-04-05T07:39:29Z","last_seen":"2026-07-27T13:00:41.387025Z","times_seen":54773,"resource_available":false,"data":"iVBORw0KGgoAAAANSUhEUgAAACoAAAAQCAYAAABgIu2QAAADVUlEQVR4AcxUA9AdPRRNbdu2+7K//+4mW9vWqNbYU2z21bZt27Zt+6nK5lUftrkPO7V1Zu7iZnJycoUc2HYC4hZVKROjqCnmEdMaoDJRHv1g4HmNKuCFjVX0OajeO5CWML5eCrSlnaGMr5VCr4X+mdXrhwpd0GgKXtDgAPoUIJIgTDPFE42JalF37952QspE+6rG0zy/hVDdsDSInHy3Qp8Jr6pk99A/s7333ttRdrD3ramDRHbd/STTp4QG6F+5fNUq5kCvg5qWmxr8qWuincTxsWAu1bRKR42avCT4H1TFeXxU2ePTFRvMo7t2AmlI4ObkeWM2J9kTsyWJDSa/d8ZvSRFaU3vzzJohNkFA5Fnx8sz9mmGJt4XeVV2ZvTreFuWXZy29rqrJEYAwMUYKuYccgM+aAKRR0wweayOUwEdc++Tm034dK/e1in96CT7nocoO20YJpLh9MVsSnX65ObHyclviP+X3ORAbvri1kjJ+mxi8EmWiIjHFKeB9W6hXV+Z7iXITuMF8RBHyPDeKkHSDTeqAYO7XU6SavDgYYWKEjEYgoP6RG27pp7iOUwI6bgQ+MShn+XAkkzprMZuTNgLfxlmNC0AUNca7OIEwecP3CZXCglLsCMk7xEtcDyAwcAYC/GfyLHKTRQ2xEBoIvYbave2U0n8exhWkPZKS2o7Qyrgh+F70z1khnO5EzlrMpqQNwbdhVuvC4cwEO0bXNBas9yGhYF6qTPRWUd4ZjRDVJprJ42TktgEJzE/ZXM3k/0kp9CExHheC1Huo67CPuo7fr4JLy2YqC2Ughe6NpP6wTPfxFxuTlH6xJUlZKAOoWeCH0QfjTmVBHM4SP/Zeoboy20OUu16C//GSioW8FM/1UNwavQ4pVKUmP/x6bRJTbAdiFAFslkTHosXuJcqhe6RCPlh7tjlZwZhNiY46zbQpycH4rcnzRUuJGmKPw834ifcJffzffxl8FG8A7ohd9tGKFdEHR0g/q4wzRt5CKLI6LggG36+vQWRB8LONyQrAt8PZ25ta7/+sIBhMFBnd7pAp9AFAP/gJLmb3RgnRz4QUNhm6HsqKuIN1iclvUWZNQ78b/hnoT0MMMVsz+Qtq8JfQuGrvR+nR74omi+xEYOjVBgEYBQDoQD6ep9ySZwAAAABJRU5ErkJggg=="}},"time_used":17,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":17,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/46756.bec55fa050a11db80b1e.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:13.795Z","timestamp":1785148033795,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/46756.bec55fa050a11db80b1e.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:13 GMT\r\ncontent-type: text/css; charset=utf-8\r\ncontent-length: 69\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\netag: \"6a435fcb-45\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Tue, 30 Jun 2026 06:18:51 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.57\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 06/30/2026 11:56:13\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 7be7bf104eb0d6844b31cd3396f0d898\r\ncdn-cache: HIT\r\naccept-ranges: bytes\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":69,"size_decoded":853,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with no line terminators","md5":"40190b3ff5ed98ff98fcb0cdbafb0ecd","sha1":"5f5d22ba673c2ddfa0836c0a94994926c5fedf51","sha256":"eb6973911bca5a50d7fd0bb3ce4fe809567814a70ac4a017fd59fa67fb5e2000","sha512":"57c23f31a350c5c5aaa254f8026842f6ef975fde998ed17348d88e9ea40f2c5fdb6556173d3f27bcc9e457700f7d90da7922168797ce81da6058a2ef0f9311d7","ssdeep":"","tlshash":"72a002b50b567a354e3bb0b1db516a8f9d25f01489128a59bb986e3e090e01b5834ad4","first_seen":"2026-07-01T01:14:49.694493Z","last_seen":"2026-07-27T11:42:49.759068Z","times_seen":73,"resource_available":false,"data":"LndyYXAtSktoN2R3RXZ7ZGlzcGxheTpmbGV4O2hlaWdodDoxMDAlfS5pdGVtLUpLaDdkd0V2e3BhZGRpbmc6MCA2cHh9"}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/29296.b408f2822fa5b9569bac.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:13.868Z","timestamp":1785148033868,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/29296.b408f2822fa5b9569bac.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:13 GMT\r\ncontent-type: text/css; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a58ab11-18f6\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Thu, 16 Jul 2026 09:57:37 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/16/2026 11:03:21\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 4d9acd49bc93bb7b12cab74800a7dda1\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":6390,"size_decoded":2047,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with very long lines (6390), with no line terminators","md5":"957eadc9c9c17f6df0058d57c5f46abb","sha1":"ebd276baca6cb1f539b1d5d55c63086002fbb8a0","sha256":"3c1391b8c83795fd1a1e8dcd3782d384a51181899c0b980dbfc6395ebecea139","sha512":"deba4ca12f353c877b0d4ff15a6b5a54f9e9f70e7e52a7a40d58a010dc96c67ff4f35d259f3bf9376c3528af502bd784d7a4721cd8fe63c155520fc9cbda1148","ssdeep":"96:DyL+izWjN/vprafnnWuMY/XjioIJMpTRB+LGkn0R:CWj3SnWzY/XjTvB+LG3R","tlshash":"21d188da21d84cbe392aa1619f1e4ecd37481c365e026c8fbae778a305c1a7d02f555f","first_seen":"2026-07-17T03:30:51.144553Z","last_seen":"2026-07-27T12:53:06.221935Z","times_seen":135,"resource_available":false,"data":"W2RhdGEtdGhlbWU9bGlnaHRdey0tXzAtTEZsQTp2YXIoLS1jb2xvci1jb2xkLWdyYXktOTAwKTstLV8xLUxGbEE6dmFyKC0tY29sb3ItY29sZC1ncmF5LTEwMCk7LS1fMi1MRmxBOnZhcigtLWNvbG9yLWNvbGQtZ3JheS05MDApOy0tXzMtTEZsQTp2YXIoLS1jb2xvci1jb2xkLWdyYXktMTUwKTstLV80LUxGbEE6dmFyKC0tY29sb3ItY29sZC1ncmF5LTMwMCk7LS1fNS1MRmxBOiM3NDc0NzQ7LS1fNi1MRmxBOiM0MjQyNDJ9W2RhdGEtdGhlbWU9ZGFya117LS1fMC1MRmxBOnZhcigtLWNvbG9yLXdoaXRlKTstLV8xLUxGbEE6dmFyKC0tY29sb3ItY29sZC1ncmF5LTgwMCk7LS1fMi1MRmxBOnZhcigtLWNvbG9yLXdoaXRlKTstLV8zLUxGbEE6dmFyKC0tY29sb3ItY29sZC1ncmF5LTc1MCk7LS1fNC1MRmxBOnZhcigtLWNvbG9yLWNvbGQtZ3JheS02MDApOy0tXzUtTEZsQTojNzQ3NDc0Oy0tXzYtTEZsQTojNDI0MjQyfS5uYXZCdXR0b24taGJTSlZ4a1F7Ym9yZGVyOm5vbmU7Ym94LXNpemluZzppbml0aWFsO2Rpc3BsYXk6ZmxleDtvdXRsaW5lOm5vbmU7cGFkZGluZzowO3Bvc2l0aW9uOnJlbGF0aXZlOy0tdWktbGliLXByaXZhdGUtbmF2QnV0dG9uLWRlZmF1bHRDb2xvckNvbnRlbnQ6dmFyKC0tY29sb3ItdGV4dC1wcmltYXJ5KTstLXVpLWxpYi1wcml2YXRlLW5hdkJ1dHRvbi1kZWZhdWx0Q29sb3JCZzojMDAwMDtiYWNrZ3JvdW5kOiMwMDAwO2NvbG9yOnZhcigtLXVpLWxpYi1pbi1uYXZCdXR0b24tY29sb3JDb250ZW50LHZhcigtLXVpLWxpYi1wcml2YXRlLW5hdkJ1dHRvbi1kZWZhdWx0Q29sb3JDb250ZW50KSl9Lm5hdkJ1dHRvbi1oYlNKVnhrUS5saW5rLWhiU0pWeGtRe2N1cnNvcjpwb2ludGVyfUBtZWRpYSAoYW55LWhvdmVyOmhvdmVyKXsubmF2QnV0dG9uLWhiU0pWeGtROmhvdmVyey0tdWktbGliLXByaXZhdGUtbmF2QnV0dG9uLWRlZmF1bHRDb2xvckNvbnRlbnQ6dmFyKC0tXzAtTEZsQSk7LS11aS1saWItcHJpdmF0ZS1uYXZCdXR0b24tZGVmYXVsdENvbG9yQmc6dmFyKC0tXzEtTEZsQSl9fS5uYXZCdXR0b24taGJTSlZ4a1E6YWN0aXZley0tdWktbGliLXByaXZhdGUtbmF2QnV0dG9uLWRlZmF1bHRDb2xvckNvbnRlbnQ6dmFyKC0tXzItTEZsQSk7LS11aS1saWItcHJpdmF0ZS1uYXZCdXR0b24tZGVmYXVsdENvbG9yQmc6dmFyKC0tXzMtTEZsQSl9Lm5hdkJ1dHRvbi1oYlNKVnhrUTpmb2N1cyAuYmFja2dyb3VuZC1oYlNKVnhrUTphZnRlcntkaXNwbGF5OmJsb2NrfS5uYXZCdXR0b24taGJTSlZ4a1E6Zm9jdXMtdmlzaWJsZSAuYmFja2dyb3VuZC1oYlNKVnhrUTphZnRlcntkaXNwbGF5OmJsb2NrfS5uYXZCdXR0b24taGJTSlZ4a1E6Zm9jdXM6bm90KDpmb2N1cy12aXNpYmxlKSAuYmFja2dyb3VuZC1oYlNKVnhrUTphZnRlcntkaXNwbGF5Om5vbmV9Lm5hdkJ1dHRvbi1oYlNKVnhrUTpkaXNhYmxlZCwubmF2QnV0dG9uLWhiU0pWeGtRW2FyaWEtZGlzYWJsZWQ9dHJ1ZV17LS11aS1saWItcHJpdmF0ZS1uYXZCdXR0b24tZGVmYXVsdENvbG9yQ29udGVudDp2YXIoLS1fNC1MRmxBKTtjdXJzb3I6ZGVmYXVsdH0ubmF2QnV0dG9uLWhiU0pWeGtROmRpc2FibGVkIC5iYWNrZ3JvdW5kLWhiU0pWeGtRLC5uYXZCdXR0b24taGJTSlZ4a1FbYXJpYS1kaXNhYmxlZD10cnVlXSAuYmFja2dyb3VuZC1oYlNKVnhrUXtkaXNwbGF5Om5vbmV9LmJhY2tncm91bmQtaGJTSlZ4a1F7LS11aS1saWItcHJpdmF0ZS1uYXZCdXR0b24tY29sb3JPdXRsaW5lRGVmYXVsdDp2YXIoLS1jb2xvci10di1ibHVlLTUwMCk7ZGlzcGxheTpibG9jaztvdXRsaW5lOm5vbmU7b3ZlcmZsb3c6dmlzaWJsZTtwb3NpdGlvbjphYnNvbHV0ZX0uYmFja2dyb3VuZC1oYlNKVnhrUTpmb2N1c3tvdXRsaW5lOm5vbmV9LmJhY2tncm91bmQtaGJTSlZ4a1E6Zm9jdXMtdmlzaWJsZXtvdXRsaW5lOm5vbmV9LmJhY2tncm91bmQtaGJTSlZ4a1E6YWZ0ZXJ7Ym9yZGVyLWNvbG9yOnZhcigtLXVpLWxpYi1pbi1uYXZCdXR0b24tY29sb3JPdXRsaW5lLHZhcigtLXVpLWxpYi1wcml2YXRlLW5hdkJ1dHRvbi1jb2xvck91dGxpbmVEZWZhdWx0KSk7Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci13aWR0aDoycHg7Ym94LXNpemluZzpib3JkZXItYm94O2NvbnRlbnQ6IiI7ZGlzcGxheTpub25lO2hlaWdodDpjYWxjKDEwMCUgKyA4cHgpO2luc2V0LWlubGluZS1zdGFydDotNHB4O3BvaW50ZXItZXZlbnRzOm5vbmU7cG9zaXRpb246YWJzb2x1dGU7dG9wOi00cHg7d2lkdGg6Y2FsYygxMDAlICsgOHB4KTt6LWluZGV4OjF9LmJhY2tncm91bmQtaGJTSlZ4a1E6YmVmb3Jle2JhY2tncm91bmQ6dmFyKC0tdWktbGliLWluLW5hdkJ1dHRvbi1jb2xvckJnLHZhcigtLXVpLWxpYi1wcml2YXRlLW5hdkJ1dHRvbi1kZWZhdWx0Q29sb3JCZykpO2JvcmRlci1yYWRpdXM6aW5oZXJpdDtjb250ZW50OiIiO2luc2V0OjA7cG9zaXRpb246YWJzb2x1dGV9Lmljb24taGJTSlZ4a1F7ei1pbmRleDowfS5mbGlwSWNvbi1oYlNKVnhrUSwuZmxpcEljb24taGJTSlZ4a1Egc3Zne3RyYW5zZm9ybTpyb3RhdGUoOTBkZWcpfS5mbGlwSWNvbi1oYlNKVnhrUSBzdmc6ZGlyKHJ0bCksLmZsaXBJY29uLWhiU0pWeGtROmRpcihydGwpe3RyYW5zZm9ybTpyb3RhdGUoLTkwZGVnKX0ubGFyZ2UtaGJTSlZ4a1F7aGVpZ2h0OjI0cHg7d2lkdGg6MjRweDstLXVpLWxpYi1vdXQtbmF2QnV0dG9uLWJhc2ljT2Zmc2V0OjhweDstLXVpLWxpYi1vdXQtbmF2QnV0dG9uLXNhZmVPZmZzZXQ6MTJweDstLXVpLWxpYi1wcml2YXRlLW5hdkJ1dHRvbi1ib3JkZXJSYWRpdXM6OHB4fS5sYXJnZS1oYlNKVnhrUS5wcmVzZXJ2ZVBhZGRpbmdzLWhiU0pWeGtRe3BhZGRpbmc6OHB4fS5sYXJnZS1oYlNKVnhrUSAuYmFja2dyb3VuZC1oYlNKVnhrUXtib3JkZXItcmFkaXVzOnZhcigtLXVpLWxpYi1wcml2YXRlLW5hdkJ1dHRvbi1ib3JkZXJSYWRpdXMpO2hlaWdodDpjYWxjKDEwMCUgKyAxNnB4KTtpbnNldC1pbmxpbmUtc3RhcnQ6LThweDt0b3A6LThweDt3aWR0aDpjYWxjKDEwMCUgKyAxNnB4KX0ubGFyZ2UtaGJTSlZ4a1EgLmJhY2tncm91bmQtaGJTSlZ4a1E6YWZ0ZXJ7Ym9yZGVyLXJhZGl1czpjYWxjKHZhcigtLXVpLWxpYi1wcml2YXRlLW5hdkJ1dHRvbi1ib3JkZXJSYWRpdXMpICsgNHB4KX0ubGFyZ2UtaGJTSlZ4a1EucHJlc2VydmVQYWRkaW5ncy1oYlNKVnhrUSAuYmFja2dyb3VuZC1oYlNKVnhrUXtoZWlnaHQ6MTAwJTtpbnNldC1pbmxpbmUtc3RhcnQ6MDt0b3A6MDt3aWR0aDoxMDAlfS5tZWRpdW0taGJTSlZ4a1F7aGVpZ2h0OjE4cHg7d2lkdGg6MThweDstLXVpLWxpYi1vdXQtbmF2QnV0dG9uLWJhc2ljT2Zmc2V0OjhweDstLXVpLWxpYi1vdXQtbmF2QnV0dG9uLXNhZmVPZmZzZXQ6MTJweDstLXVpLWxpYi1wcml2YXRlLW5hdkJ1dHRvbi1ib3JkZXJSYWRpdXM6OHB4fS5tZWRpdW0taGJTSlZ4a1EucHJlc2VydmVQYWRkaW5ncy1oYlNKVnhrUXtwYWRkaW5nOjhweH0ubWVkaXVtLWhiU0pWeGtRIC5iYWNrZ3JvdW5kLWhiU0pWeGtRe2JvcmRlci1yYWRpdXM6dmFyKC0tdWktbGliLXByaXZhdGUtbmF2QnV0dG9uLWJvcmRlclJhZGl1cyk7aGVpZ2h0OmNhbGMoMTAwJSArIDE2cHgpO2luc2V0LWlubGluZS1zdGFydDotOHB4O3RvcDotOHB4O3dpZHRoOmNhbGMoMTAwJSArIDE2cHgpfS5tZWRpdW0taGJTSlZ4a1EgLmJhY2tncm91bmQtaGJTSlZ4a1E6YWZ0ZXJ7Ym9yZGVyLXJhZGl1czpjYWxjKHZhcigtLXVpLWxpYi1wcml2YXRlLW5hdkJ1dHRvbi1ib3JkZXJSYWRpdXMpICsgNHB4KX0ubWVkaXVtLWhiU0pWeGtRLnByZXNlcnZlUGFkZGluZ3MtaGJTSlZ4a1EgLmJhY2tncm91bmQtaGJTSlZ4a1F7aGVpZ2h0OjEwMCU7aW5zZXQtaW5saW5lLXN0YXJ0OjA7dG9wOjA7d2lkdGg6MTAwJX0uc21hbGwtaGJTSlZ4a1F7aGVpZ2h0OjE0cHg7d2lkdGg6MTRweDstLXVpLWxpYi1vdXQtbmF2QnV0dG9uLWJhc2ljT2Zmc2V0OjhweDstLXVpLWxpYi1vdXQtbmF2QnV0dG9uLXNhZmVPZmZzZXQ6MTJweDstLXVpLWxpYi1wcml2YXRlLW5hdkJ1dHRvbi1ib3JkZXJSYWRpdXM6NnB4fS5zbWFsbC1oYlNKVnhrUS5wcmVzZXJ2ZVBhZGRpbmdzLWhiU0pWeGtRe3BhZGRpbmc6OHB4fS5zbWFsbC1oYlNKVnhrUSAuYmFja2dyb3VuZC1oYlNKVnhrUXtib3JkZXItcmFkaXVzOnZhcigtLXVpLWxpYi1wcml2YXRlLW5hdkJ1dHRvbi1ib3JkZXJSYWRpdXMpO2hlaWdodDpjYWxjKDEwMCUgKyAxNnB4KTtpbnNldC1pbmxpbmUtc3RhcnQ6LThweDt0b3A6LThweDt3aWR0aDpjYWxjKDEwMCUgKyAxNnB4KX0uc21hbGwtaGJTSlZ4a1EgLmJhY2tncm91bmQtaGJTSlZ4a1E6YWZ0ZXJ7Ym9yZGVyLXJhZGl1czpjYWxjKHZhcigtLXVpLWxpYi1wcml2YXRlLW5hdkJ1dHRvbi1ib3JkZXJSYWRpdXMpICsgNHB4KX0uc21hbGwtaGJTSlZ4a1EucHJlc2VydmVQYWRkaW5ncy1oYlNKVnhrUSAuYmFja2dyb3VuZC1oYlNKVnhrUXtoZWlnaHQ6MTAwJTtpbnNldC1pbmxpbmUtc3RhcnQ6MDt0b3A6MDt3aWR0aDoxMDAlfS54c21hbGwtaGJTSlZ4a1F7aGVpZ2h0OjEycHg7d2lkdGg6MTJweDstLXVpLWxpYi1vdXQtbmF2QnV0dG9uLWJhc2ljT2Zmc2V0OjRweDstLXVpLWxpYi1vdXQtbmF2QnV0dG9uLXNhZmVPZmZzZXQ6OHB4Oy0tdWktbGliLXByaXZhdGUtbmF2QnV0dG9uLWJvcmRlclJhZGl1czo0cHh9LnhzbWFsbC1oYlNKVnhrUS5wcmVzZXJ2ZVBhZGRpbmdzLWhiU0pWeGtRe3BhZGRpbmc6NHB4fS54c21hbGwtaGJTSlZ4a1EgLmJhY2tncm91bmQtaGJTSlZ4a1F7Ym9yZGVyLXJhZGl1czp2YXIoLS11aS1saWItcHJpdmF0ZS1uYXZCdXR0b24tYm9yZGVyUmFkaXVzKTtoZWlnaHQ6Y2FsYygxMDAlICsgOHB4KTtpbnNldC1pbmxpbmUtc3RhcnQ6LTRweDt0b3A6LTRweDt3aWR0aDpjYWxjKDEwMCUgKyA4cHgpfS54c21hbGwtaGJTSlZ4a1EgLmJhY2tncm91bmQtaGJTSlZ4a1E6YWZ0ZXJ7Ym9yZGVyLXJhZGl1czpjYWxjKHZhcigtLXVpLWxpYi1wcml2YXRlLW5hdkJ1dHRvbi1ib3JkZXJSYWRpdXMpICsgNHB4KX0ueHNtYWxsLWhiU0pWeGtRLnByZXNlcnZlUGFkZGluZ3MtaGJTSlZ4a1EgLmJhY2tncm91bmQtaGJTSlZ4a1F7aGVpZ2h0OjEwMCU7aW5zZXQtaW5saW5lLXN0YXJ0OjA7dG9wOjA7d2lkdGg6MTAwJX0ueHhzbWFsbC1oYlNKVnhrUXtoZWlnaHQ6MTBweDt3aWR0aDoxMHB4Oy0tdWktbGliLW91dC1uYXZCdXR0b24tYmFzaWNPZmZzZXQ6NHB4Oy0tdWktbGliLW91dC1uYXZCdXR0b24tc2FmZU9mZnNldDo4cHg7LS11aS1saWItcHJpdmF0ZS1uYXZCdXR0b24tYm9yZGVyUmFkaXVzOjRweH0ueHhzbWFsbC1oYlNKVnhrUS5wcmVzZXJ2ZVBhZGRpbmdzLWhiU0pWeGtRe3BhZGRpbmc6NHB4fS54eHNtYWxsLWhiU0pWeGtRIC5iYWNrZ3JvdW5kLWhiU0pWeGtRe2JvcmRlci1yYWRpdXM6dmFyKC0tdWktbGliLXByaXZhdGUtbmF2QnV0dG9uLWJvcmRlclJhZGl1cyk7aGVpZ2h0OmNhbGMoMTAwJSArIDhweCk7aW5zZXQtaW5saW5lLXN0YXJ0Oi00cHg7dG9wOi00cHg7d2lkdGg6Y2FsYygxMDAlICsgOHB4KX0ueHhzbWFsbC1oYlNKVnhrUSAuYmFja2dyb3VuZC1oYlNKVnhrUTphZnRlcntib3JkZXItcmFkaXVzOmNhbGModmFyKC0tdWktbGliLXByaXZhdGUtbmF2QnV0dG9uLWJvcmRlclJhZGl1cykgKyA0cHgpfS54eHNtYWxsLWhiU0pWeGtRLnByZXNlcnZlUGFkZGluZ3MtaGJTSlZ4a1EgLmJhY2tncm91bmQtaGJTSlZ4a1F7aGVpZ2h0OjEwMCU7aW5zZXQtaW5saW5lLXN0YXJ0OjA7dG9wOjA7d2lkdGg6MTAwJX1AbWVkaWEgKGFueS1ob3Zlcjpob3Zlcil7Lm5hdkJ1dHRvbi1oYlNKVnhrUS5ibGVuZE1vZGUtaGJTSlZ4a1E6aG92ZXJ7LS11aS1saWItcHJpdmF0ZS1uYXZCdXR0b24tZGVmYXVsdENvbG9yQmc6dmFyKC0tXzUtTEZsQSl9fS5uYXZCdXR0b24taGJTSlZ4a1EuYmxlbmRNb2RlLWhiU0pWeGtROmFjdGl2ZXstLXVpLWxpYi1wcml2YXRlLW5hdkJ1dHRvbi1kZWZhdWx0Q29sb3JCZzp2YXIoLS1fNi1MRmxBKX1bZGF0YS10aGVtZT1saWdodF0gLm5hdkJ1dHRvbi1oYlNKVnhrUS5ibGVuZE1vZGUtaGJTSlZ4a1EgLmJhY2tncm91bmQtaGJTSlZ4a1E6YmVmb3Jle21peC1ibGVuZC1tb2RlOnZhcigtLXVpLWxpYi1wcml2YXRlLW5hdkJ1dHRvbi1ibGVuZE1peExpZ2h0LG5vcm1hbCl9W2RhdGEtdGhlbWU9ZGFya10gLm5hdkJ1dHRvbi1oYlNKVnhrUS5ibGVuZE1vZGUtaGJTSlZ4a1EgLmJhY2tncm91bmQtaGJTSlZ4a1E6YmVmb3Jle21peC1ibGVuZC1tb2RlOnZhcigtLXVpLWxpYi1wcml2YXRlLW5hdkJ1dHRvbi1ibGVuZE1peERhcmssbm9ybWFsKX0udmlzdWFsbHlIaWRkZW4taGJTSlZ4a1F7Ym9yZGVyOjA7aGVpZ2h0OjFweDttYXJnaW46LTFweDtwYWRkaW5nOjA7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MXB4O2NsaXA6cmVjdCgwIDAgMCAwKTtvdmVyZmxvdzpoaWRkZW59"}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/81750.0786fea607d007e76f0f.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.124Z","timestamp":1785148034124,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/81750.0786fea607d007e76f0f.js HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a476e68-4bd1\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Fri, 03 Jul 2026 08:10:16 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/03/2026 10:54:55\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 50fc683eef18fbf8d5bca61671e04b90\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":19409,"size_decoded":8305,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (3071)","md5":"114d8824b2e22145ea5dda6d9bde67b3","sha1":"ba3f19e904493f92d11892a8f0af11d8d4523c00","sha256":"2b5998a53779eac81388b175ba21e1e20b67d6a10d179f243ef6cf2ff28bb453","sha512":"7ac52cd946ce22c0e872dfa164e51f4beaad26498d92afc7dee5f8b14190e38afb10d7605e1c3a7c1dc85a3aa680b8d1067805dd31d52bab409ed731b1a4b45b","ssdeep":"384:9sKrtsrd3TykRQgngEfchXUqNtrM2v2ivWhUVZ:s2NEqHtLWCT","tlshash":"9b92d9c971d1b47a4ee364a1417f118bf27f2c893c9da050a261f8d47cb8a5e812bf6d","first_seen":"2026-07-04T06:34:19.890668Z","last_seen":"2026-07-27T10:54:11.672386Z","times_seen":38,"resource_available":true,"data":"KHNlbGYud2VicGFja0NodW5rdHJhZGluZ3ZpZXc9c2VsZi53ZWJwYWNrQ2h1bmt0cmFkaW5ndmlld3x8W10pLnB1c2goW1s2NDY0NCw4MTc1MF0sezkxNDQ4NyhuLHQpe3ZhciBlOyFmdW5jdGlvbigpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj17fS5oYXNPd25Qcm9wZXJ0eTtmdW5jdGlvbiBvKCl7Zm9yKHZhciBuPVtdLHQ9MDt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgZT1hcmd1bWVudHNbdF07aWYoZSl7dmFyIGk9dHlwZW9mIGU7aWYoInN0cmluZyI9PT1pfHwibnVtYmVyIj09PWkpbi5wdXNoKGUpO2Vsc2UgaWYoQXJyYXkuaXNBcnJheShlKSYmZS5sZW5ndGgpe3ZhciBhPW8uYXBwbHkobnVsbCxlKTthJiZuLnB1c2goYSl9ZWxzZSBpZigib2JqZWN0Ij09PWkpZm9yKHZhciB1IGluIGUpci5jYWxsKGUsdSkmJmVbdV0mJm4ucHVzaCh1KX19cmV0dXJuIG4uam9pbigiICIpfW4uZXhwb3J0cz8oby5kZWZhdWx0PW8sbi5leHBvcnRzPW8pOnZvaWQgMD09PShlPWZ1bmN0aW9uKCl7cmV0dXJuIG99LmFwcGx5KHQsW10pKXx8KG4uZXhwb3J0cz1lKX0oKX0sODE5NTkxKG4sdCxlKXsidXNlIHN0cmljdCI7ZS5kKHQse2NyZWF0ZUJyb3dzZXJIaXN0b3J5OigpPT5rLGNyZWF0ZUhhc2hIaXN0b3J5OigpPT5ULGNyZWF0ZUxvY2F0aW9uOigpPT52LGNyZWF0ZU1lbW9yeUhpc3Rvcnk6KCk9PkwsY3JlYXRlUGF0aDooKT0+ZCxsb2NhdGlvbnNBcmVFcXVhbDooKT0+eX0pO3ZhciByPWUoNjQ0MzIwKTtmdW5jdGlvbiBvKG4pe3JldHVybiIvIj09PW4uY2hhckF0KDApfWZ1bmN0aW9uIGkobix0KXtmb3IodmFyIGU9dCxyPWUrMSxvPW4ubGVuZ3RoO3I8bztlKz0xLHIrPTEpbltlXT1uW3JdO24ucG9wKCl9Y29uc3QgYT1mdW5jdGlvbihuLHQpe3ZvaWQgMD09PXQmJih0PSIiKTt2YXIgZSxyPW4mJm4uc3BsaXQoIi8iKXx8W10sYT10JiZ0LnNwbGl0KCIvIil8fFtdLHU9biYmbyhuKSxjPXQmJm8odCksZj11fHxjO2lmKG4mJm8obik/YT1yOnIubGVuZ3RoJiYoYS5wb3AoKSxhPWEuY29uY2F0KHIpKSwhYS5sZW5ndGgpcmV0dXJuIi8iO2lmKGEubGVuZ3RoKXt2YXIgcz1hW2EubGVuZ3RoLTFdO2U9Ii4iPT09c3x8Ii4uIj09PXN8fCIiPT09c31lbHNlIGU9ITE7Zm9yKHZhciBsPTAscD1hLmxlbmd0aDtwPj0wO3AtLSl7dmFyIGg9YVtwXTsiLiI9PT1oP2koYSxwKToiLi4iPT09aD8oaShhLHApLGwrKyk6bCYmKGkoYSxwKSxsLS0pfWlmKCFmKWZvcig7bC0tO2wpYS51bnNoaWZ0KCIuLiIpOyFmfHwiIj09PWFbMF18fGFbMF0mJm8oYVswXSl8fGEudW5zaGlmdCgiIik7dmFyIGQ9YS5qb2luKCIvIik7cmV0dXJuIGUmJiIvIiE9PWQuc3Vic3RyKC0xKSYmKGQrPSIvIiksZH07ZnVuY3Rpb24gdShuKXtyZXR1cm4gbi52YWx1ZU9mP24udmFsdWVPZigpOk9iamVjdC5wcm90b3R5cGUudmFsdWVPZi5jYWxsKG4pfWNvbnN0IGM9ZnVuY3Rpb24gbih0LGUpe2lmKHQ9PT1lKXJldHVybiEwO2lmKG51bGw9PXR8fG51bGw9PWUpcmV0dXJuITE7aWYoQXJyYXkuaXNBcnJheSh0KSlyZXR1cm4gQXJyYXkuaXNBcnJheShlKSYmdC5sZW5ndGg9PT1lLmxlbmd0aCYmdC5ldmVyeSgoZnVuY3Rpb24odCxyKXtyZXR1cm4gbih0LGVbcl0pfSkpO2lmKCJvYmplY3QiPT10eXBlb2YgdHx8Im9iamVjdCI9PXR5cGVvZiBlKXt2YXIgcj11KHQpLG89dShlKTtyZXR1cm4gciE9PXR8fG8hPT1lP24ocixvKTpPYmplY3Qua2V5cyhPYmplY3QuYXNzaWduKHt9LHQsZSkpLmV2ZXJ5KChmdW5jdGlvbihyKXtyZXR1cm4gbih0W3JdLGVbcl0pfSkpfXJldHVybiExfTt2YXIgZj1lKDI1Mzg1KTtmdW5jdGlvbiBzKG4pe3JldHVybiIvIj09PW4uY2hhckF0KDApP246Ii8iK259ZnVuY3Rpb24gbChuKXtyZXR1cm4iLyI9PT1uLmNoYXJBdCgwKT9uLnN1YnN0cigxKTpufWZ1bmN0aW9uIHAobix0KXtyZXR1cm4gZnVuY3Rpb24obix0KXtyZXR1cm4gMD09PW4udG9Mb3dlckNhc2UoKS5pbmRleE9mKHQudG9Mb3dlckNhc2UoKSkmJi0xIT09Ii8/IyIuaW5kZXhPZihuLmNoYXJBdCh0Lmxlbmd0aCkpfShuLHQpP24uc3Vic3RyKHQubGVuZ3RoKTpufWZ1bmN0aW9uIGgobil7cmV0dXJuIi8iPT09bi5jaGFyQXQobi5sZW5ndGgtMSk/bi5zbGljZSgwLC0xKTpufWZ1bmN0aW9uIGQobil7dmFyIHQ9bi5wYXRobmFtZSxlPW4uc2VhcmNoLHI9bi5oYXNoLG89dHx8Ii8iO3JldHVybiBlJiYiPyIhPT1lJiYobys9Ij8iPT09ZS5jaGFyQXQoMCk/ZToiPyIrZSksciYmIiMiIT09ciYmKG8rPSIjIj09PXIuY2hhckF0KDApP3I6IiMiK3IpLG99ZnVuY3Rpb24gdihuLHQsZSxvKXt2YXIgaTsic3RyaW5nIj09dHlwZW9mIG4/KGk9ZnVuY3Rpb24obil7dmFyIHQ9bnx8Ii8iLGU9IiIscj0iIixvPXQuaW5kZXhPZigiIyIpOy0xIT09byYmKHI9dC5zdWJzdHIobyksdD10LnN1YnN0cigwLG8pKTt2YXIgaT10LmluZGV4T2YoIj8iKTtyZXR1cm4tMSE9PWkmJihlPXQuc3Vic3RyKGkpLHQ9dC5zdWJzdHIoMCxpKSkse3BhdGhuYW1lOnQsc2VhcmNoOiI/Ij09PWU/IiI6ZSxoYXNoOiIjIj09PXI/IiI6cn19KG4pLGkuc3RhdGU9dCk6KHZvaWQgMD09PShpPSgwLHIuZGVmYXVsdCkoe30sbikpLnBhdGhuYW1lJiYoaS5wYXRobmFtZT0iIiksaS5zZWFyY2g/Ij8iIT09aS5zZWFyY2guY2hhckF0KDApJiYoaS5zZWFyY2g9Ij8iK2kuc2VhcmNoKTppLnNlYXJjaD0iIixpLmhhc2g/IiMiIT09aS5oYXNoLmNoYXJBdCgwKSYmKGkuaGFzaD0iIyIraS5oYXNoKTppLmhhc2g9IiIsdm9pZCAwIT09dCYmdm9pZCAwPT09aS5zdGF0ZSYmKGkuc3RhdGU9dCkpO3RyeXtpLnBhdGhuYW1lPWRlY29kZVVSSShpLnBhdGhuYW1lKX1jYXRjaChuKXt0aHJvdyBuIGluc3RhbmNlb2YgVVJJRXJyb3I/bmV3IFVSSUVycm9yKCdQYXRobmFtZSAiJytpLnBhdGhuYW1lKyciIGNvdWxkIG5vdCBiZSBkZWNvZGVkLiBUaGlzIGlzIGxpa2VseSBjYXVzZWQgYnkgYW4gaW52YWxpZCBwZXJjZW50LWVuY29kaW5nLicpOm59cmV0dXJuIGUmJihpLmtleT1lKSwKbz9pLnBhdGhuYW1lPyIvIiE9PWkucGF0aG5hbWUuY2hhckF0KDApJiYoaS5wYXRobmFtZT1hKGkucGF0aG5hbWUsby5wYXRobmFtZSkpOmkucGF0aG5hbWU9by5wYXRobmFtZTppLnBhdGhuYW1lfHwoaS5wYXRobmFtZT0iLyIpLGl9ZnVuY3Rpb24geShuLHQpe3JldHVybiBuLnBhdGhuYW1lPT09dC5wYXRobmFtZSYmbi5zZWFyY2g9PT10LnNlYXJjaCYmbi5oYXNoPT09dC5oYXNoJiZuLmtleT09PXQua2V5JiZjKG4uc3RhdGUsdC5zdGF0ZSl9ZnVuY3Rpb24gbSgpe3ZhciBuPW51bGw7dmFyIHQ9W107cmV0dXJue3NldFByb21wdDpmdW5jdGlvbih0KXtyZXR1cm4gbj10LGZ1bmN0aW9uKCl7bj09PXQmJihuPW51bGwpfX0sY29uZmlybVRyYW5zaXRpb25UbzpmdW5jdGlvbih0LGUscixvKXtpZihudWxsIT1uKXt2YXIgaT0iZnVuY3Rpb24iPT10eXBlb2Ygbj9uKHQsZSk6bjsic3RyaW5nIj09dHlwZW9mIGk/ImZ1bmN0aW9uIj09dHlwZW9mIHI/cihpLG8pOm8oITApOm8oITEhPT1pKX1lbHNlIG8oITApfSxhcHBlbmRMaXN0ZW5lcjpmdW5jdGlvbihuKXt2YXIgZT0hMDtmdW5jdGlvbiByKCl7ZSYmbi5hcHBseSh2b2lkIDAsYXJndW1lbnRzKX1yZXR1cm4gdC5wdXNoKHIpLGZ1bmN0aW9uKCl7ZT0hMSx0PXQuZmlsdGVyKChmdW5jdGlvbihuKXtyZXR1cm4gbiE9PXJ9KSl9fSxub3RpZnlMaXN0ZW5lcnM6ZnVuY3Rpb24oKXtmb3IodmFyIG49YXJndW1lbnRzLmxlbmd0aCxlPW5ldyBBcnJheShuKSxyPTA7cjxuO3IrKyllW3JdPWFyZ3VtZW50c1tyXTt0LmZvckVhY2goKGZ1bmN0aW9uKG4pe3JldHVybiBuLmFwcGx5KHZvaWQgMCxlKX0pKX19fXZhciBnPSEoInVuZGVmaW5lZCI9PXR5cGVvZiB3aW5kb3d8fCF3aW5kb3cuZG9jdW1lbnR8fCF3aW5kb3cuZG9jdW1lbnQuY3JlYXRlRWxlbWVudCk7ZnVuY3Rpb24gdyhuLHQpe3Qod2luZG93LmNvbmZpcm0obikpfXZhciBiPSJwb3BzdGF0ZSIsXz0iaGFzaGNoYW5nZSI7ZnVuY3Rpb24gTygpe3RyeXtyZXR1cm4gd2luZG93Lmhpc3Rvcnkuc3RhdGV8fHt9fWNhdGNoKG4pe3JldHVybnt9fX1mdW5jdGlvbiBrKG4pe3ZvaWQgMD09PW4mJihuPXt9KSxnfHwoMCxmLmRlZmF1bHQpKCExKTt2YXIgdCxlPXdpbmRvdy5oaXN0b3J5LG89KC0xPT09KHQ9d2luZG93Lm5hdmlnYXRvci51c2VyQWdlbnQpLmluZGV4T2YoIkFuZHJvaWQgMi4iKSYmLTE9PT10LmluZGV4T2YoIkFuZHJvaWQgNC4wIil8fC0xPT09dC5pbmRleE9mKCJNb2JpbGUgU2FmYXJpIil8fC0xIT09dC5pbmRleE9mKCJDaHJvbWUiKXx8LTEhPT10LmluZGV4T2YoIldpbmRvd3MgUGhvbmUiKSkmJndpbmRvdy5oaXN0b3J5JiYicHVzaFN0YXRlImluIHdpbmRvdy5oaXN0b3J5LGk9ISgtMT09PXdpbmRvdy5uYXZpZ2F0b3IudXNlckFnZW50LmluZGV4T2YoIlRyaWRlbnQiKSksYT1uLHU9YS5mb3JjZVJlZnJlc2gsYz12b2lkIDAhPT11JiZ1LGw9YS5nZXRVc2VyQ29uZmlybWF0aW9uLHk9dm9pZCAwPT09bD93Omwsaz1hLmtleUxlbmd0aCxFPXZvaWQgMD09PWs/NjprLFA9bi5iYXNlbmFtZT9oKHMobi5iYXNlbmFtZSkpOiIiO2Z1bmN0aW9uIHgobil7dmFyIHQ9bnx8e30sZT10LmtleSxyPXQuc3RhdGUsbz13aW5kb3cubG9jYXRpb24saT1vLnBhdGhuYW1lK28uc2VhcmNoK28uaGFzaDtyZXR1cm4gUCYmKGk9cChpLFApKSx2KGkscixlKX1mdW5jdGlvbiBTKCl7cmV0dXJuIE1hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cigyLEUpfXZhciBBPW0oKTtmdW5jdGlvbiBUKG4peygwLHIuZGVmYXVsdCkoQixuKSxCLmxlbmd0aD1lLmxlbmd0aCxBLm5vdGlmeUxpc3RlbmVycyhCLmxvY2F0aW9uLEIuYWN0aW9uKX1mdW5jdGlvbiBDKG4peyhmdW5jdGlvbihuKXtyZXR1cm4gdm9pZCAwPT09bi5zdGF0ZSYmLTE9PT1uYXZpZ2F0b3IudXNlckFnZW50LmluZGV4T2YoIkNyaU9TIil9KShuKXx8aih4KG4uc3RhdGUpKX1mdW5jdGlvbiBMKCl7aih4KE8oKSkpfXZhciBSPSExO2Z1bmN0aW9uIGoobil7aWYoUilSPSExLFQoKTtlbHNle0EuY29uZmlybVRyYW5zaXRpb25UbyhuLCJQT1AiLHksKGZ1bmN0aW9uKHQpe3Q/VCh7YWN0aW9uOiJQT1AiLGxvY2F0aW9uOm59KTpmdW5jdGlvbihuKXt2YXIgdD1CLmxvY2F0aW9uLGU9SS5pbmRleE9mKHQua2V5KTstMT09PWUmJihlPTApO3ZhciByPUkuaW5kZXhPZihuLmtleSk7LTE9PT1yJiYocj0wKTt2YXIgbz1lLXI7byYmKFI9ITAsSChvKSl9KG4pfSkpfX12YXIgJD14KE8oKSksST1bJC5rZXldO2Z1bmN0aW9uIFUobil7cmV0dXJuIFArZChuKX1mdW5jdGlvbiBIKG4pe2UuZ28obil9dmFyIEQ9MDtmdW5jdGlvbiBGKG4pezE9PT0oRCs9bikmJjE9PT1uPyh3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihiLEMpLGkmJndpbmRvdy5hZGRFdmVudExpc3RlbmVyKF8sTCkpOjA9PT1EJiYod2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoYixDKSxpJiZ3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihfLEwpKX12YXIgVj0hMTt2YXIgQj17bGVuZ3RoOmUubGVuZ3RoLGFjdGlvbjoiUE9QIixsb2NhdGlvbjokLGNyZWF0ZUhyZWY6VSxwdXNoOmZ1bmN0aW9uKG4sdCl7dmFyIHI9IlBVU0giLGk9dihuLHQsUygpLEIubG9jYXRpb24pO0EuY29uZmlybVRyYW5zaXRpb25UbyhpLHIseSwoZnVuY3Rpb24obil7aWYobil7dmFyIHQ9VShpKSxhPWkua2V5LHU9aS5zdGF0ZTtpZihvKWlmKGUucHVzaFN0YXRlKHtrZXk6YSxzdGF0ZTp1fSxudWxsLHQpLGMpd2luZG93LmxvY2F0aW9uLmhyZWY9dDtlbHNle3ZhciBmPUkuaW5kZXhPZihCLmxvY2F0aW9uLmtleSkscz1JLnNsaWNlKDAsZisxKTtzLnB1c2goaS5rZXkpLEk9cyxUKHthY3Rpb246cixsb2NhdGlvbjppfSl9ZWxzZSB3aW5kb3cubG9jYXRpb24uaHJlZj10fX0pKX0scmVwbGFjZTpmdW5jdGlvbihuLHQpe3ZhciByPSJSRVBMQUNFIixpPXYobix0LFMoKSxCLmxvY2F0aW9uKTtBLmNvbmZpcm1UcmFuc2l0aW9uVG8oaSxyLHksKGZ1bmN0aW9uKG4pe2lmKG4pe3ZhciB0PVUoaSksYT1pLmtleSx1PWkuc3RhdGU7aWYobylpZihlLnJlcGxhY2VTdGF0ZSh7a2V5OmEsc3RhdGU6dX0sbnVsbCx0KSwKYyl3aW5kb3cubG9jYXRpb24ucmVwbGFjZSh0KTtlbHNle3ZhciBmPUkuaW5kZXhPZihCLmxvY2F0aW9uLmtleSk7LTEhPT1mJiYoSVtmXT1pLmtleSksVCh7YWN0aW9uOnIsbG9jYXRpb246aX0pfWVsc2Ugd2luZG93LmxvY2F0aW9uLnJlcGxhY2UodCl9fSkpfSxnbzpILGdvQmFjazpmdW5jdGlvbigpe0goLTEpfSxnb0ZvcndhcmQ6ZnVuY3Rpb24oKXtIKDEpfSxibG9jazpmdW5jdGlvbihuKXt2b2lkIDA9PT1uJiYobj0hMSk7dmFyIHQ9QS5zZXRQcm9tcHQobik7cmV0dXJuIFZ8fChGKDEpLFY9ITApLGZ1bmN0aW9uKCl7cmV0dXJuIFYmJihWPSExLEYoLTEpKSx0KCl9fSxsaXN0ZW46ZnVuY3Rpb24obil7dmFyIHQ9QS5hcHBlbmRMaXN0ZW5lcihuKTtyZXR1cm4gRigxKSxmdW5jdGlvbigpe0YoLTEpLHQoKX19fTtyZXR1cm4gQn12YXIgRT0iaGFzaGNoYW5nZSIsUD17aGFzaGJhbmc6e2VuY29kZVBhdGg6ZnVuY3Rpb24obil7cmV0dXJuIiEiPT09bi5jaGFyQXQoMCk/bjoiIS8iK2wobil9LGRlY29kZVBhdGg6ZnVuY3Rpb24obil7cmV0dXJuIiEiPT09bi5jaGFyQXQoMCk/bi5zdWJzdHIoMSk6bn19LG5vc2xhc2g6e2VuY29kZVBhdGg6bCxkZWNvZGVQYXRoOnN9LHNsYXNoOntlbmNvZGVQYXRoOnMsZGVjb2RlUGF0aDpzfX07ZnVuY3Rpb24geChuKXt2YXIgdD1uLmluZGV4T2YoIiMiKTtyZXR1cm4tMT09PXQ/bjpuLnNsaWNlKDAsdCl9ZnVuY3Rpb24gUygpe3ZhciBuPXdpbmRvdy5sb2NhdGlvbi5ocmVmLHQ9bi5pbmRleE9mKCIjIik7cmV0dXJuLTE9PT10PyIiOm4uc3Vic3RyaW5nKHQrMSl9ZnVuY3Rpb24gQShuKXt3aW5kb3cubG9jYXRpb24ucmVwbGFjZSh4KHdpbmRvdy5sb2NhdGlvbi5ocmVmKSsiIyIrbil9ZnVuY3Rpb24gVChuKXt2b2lkIDA9PT1uJiYobj17fSksZ3x8KDAsZi5kZWZhdWx0KSghMSk7dmFyIHQ9d2luZG93Lmhpc3RvcnksZT0od2luZG93Lm5hdmlnYXRvci51c2VyQWdlbnQuaW5kZXhPZigiRmlyZWZveCIpLG4pLG89ZS5nZXRVc2VyQ29uZmlybWF0aW9uLGk9dm9pZCAwPT09bz93Om8sYT1lLmhhc2hUeXBlLHU9dm9pZCAwPT09YT8ic2xhc2giOmEsYz1uLmJhc2VuYW1lP2gocyhuLmJhc2VuYW1lKSk6IiIsbD1QW3VdLHk9bC5lbmNvZGVQYXRoLGI9bC5kZWNvZGVQYXRoO2Z1bmN0aW9uIF8oKXt2YXIgbj1iKFMoKSk7cmV0dXJuIGMmJihuPXAobixjKSksdihuKX12YXIgTz1tKCk7ZnVuY3Rpb24gayhuKXsoMCxyLmRlZmF1bHQpKFYsbiksVi5sZW5ndGg9dC5sZW5ndGgsTy5ub3RpZnlMaXN0ZW5lcnMoVi5sb2NhdGlvbixWLmFjdGlvbil9dmFyIFQ9ITEsQz1udWxsO2Z1bmN0aW9uIEwoKXt2YXIgbix0LGU9UygpLHI9eShlKTtpZihlIT09cilBKHIpO2Vsc2V7dmFyIG89XygpLGE9Vi5sb2NhdGlvbjtpZighVCYmKHQ9bywobj1hKS5wYXRobmFtZT09PXQucGF0aG5hbWUmJm4uc2VhcmNoPT09dC5zZWFyY2gmJm4uaGFzaD09PXQuaGFzaCkpcmV0dXJuO2lmKEM9PT1kKG8pKXJldHVybjtDPW51bGwsZnVuY3Rpb24obil7aWYoVClUPSExLGsoKTtlbHNle3ZhciB0PSJQT1AiO08uY29uZmlybVRyYW5zaXRpb25UbyhuLHQsaSwoZnVuY3Rpb24oZSl7ZT9rKHthY3Rpb246dCxsb2NhdGlvbjpufSk6ZnVuY3Rpb24obil7dmFyIHQ9Vi5sb2NhdGlvbixlPUkubGFzdEluZGV4T2YoZCh0KSk7LTE9PT1lJiYoZT0wKTt2YXIgcj1JLmxhc3RJbmRleE9mKGQobikpOy0xPT09ciYmKHI9MCk7dmFyIG89ZS1yO28mJihUPSEwLFUobykpfShuKX0pKX19KG8pfX12YXIgUj1TKCksaj15KFIpO1IhPT1qJiZBKGopO3ZhciAkPV8oKSxJPVtkKCQpXTtmdW5jdGlvbiBVKG4pe3QuZ28obil9dmFyIEg9MDtmdW5jdGlvbiBEKG4pezE9PT0oSCs9bikmJjE9PT1uP3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKEUsTCk6MD09PUgmJndpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKEUsTCl9dmFyIEY9ITE7dmFyIFY9e2xlbmd0aDp0Lmxlbmd0aCxhY3Rpb246IlBPUCIsbG9jYXRpb246JCxjcmVhdGVIcmVmOmZ1bmN0aW9uKG4pe3ZhciB0PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImJhc2UiKSxlPSIiO3JldHVybiB0JiZ0LmdldEF0dHJpYnV0ZSgiaHJlZiIpJiYoZT14KHdpbmRvdy5sb2NhdGlvbi5ocmVmKSksZSsiIyIreShjK2QobikpfSxwdXNoOmZ1bmN0aW9uKG4sdCl7dmFyIGU9IlBVU0giLHI9dihuLHZvaWQgMCx2b2lkIDAsVi5sb2NhdGlvbik7Ty5jb25maXJtVHJhbnNpdGlvblRvKHIsZSxpLChmdW5jdGlvbihuKXtpZihuKXt2YXIgdD1kKHIpLG89eShjK3QpO2lmKFMoKSE9PW8pe0M9dCxmdW5jdGlvbihuKXt3aW5kb3cubG9jYXRpb24uaGFzaD1ufShvKTt2YXIgaT1JLmxhc3RJbmRleE9mKGQoVi5sb2NhdGlvbikpLGE9SS5zbGljZSgwLGkrMSk7YS5wdXNoKHQpLEk9YSxrKHthY3Rpb246ZSxsb2NhdGlvbjpyfSl9ZWxzZSBrKCl9fSkpfSxyZXBsYWNlOmZ1bmN0aW9uKG4sdCl7dmFyIGU9IlJFUExBQ0UiLHI9dihuLHZvaWQgMCx2b2lkIDAsVi5sb2NhdGlvbik7Ty5jb25maXJtVHJhbnNpdGlvblRvKHIsZSxpLChmdW5jdGlvbihuKXtpZihuKXt2YXIgdD1kKHIpLG89eShjK3QpO1MoKSE9PW8mJihDPXQsQShvKSk7dmFyIGk9SS5pbmRleE9mKGQoVi5sb2NhdGlvbikpOy0xIT09aSYmKElbaV09dCksayh7YWN0aW9uOmUsbG9jYXRpb246cn0pfX0pKX0sZ286VSxnb0JhY2s6ZnVuY3Rpb24oKXtVKC0xKX0sZ29Gb3J3YXJkOmZ1bmN0aW9uKCl7VSgxKX0sYmxvY2s6ZnVuY3Rpb24obil7dm9pZCAwPT09biYmKG49ITEpO3ZhciB0PU8uc2V0UHJvbXB0KG4pO3JldHVybiBGfHwoRCgxKSxGPSEwKSxmdW5jdGlvbigpe3JldHVybiBGJiYoRj0hMSxEKC0xKSksdCgpfX0sbGlzdGVuOmZ1bmN0aW9uKG4pe3ZhciB0PU8uYXBwZW5kTGlzdGVuZXIobik7cmV0dXJuIEQoMSksZnVuY3Rpb24oKXtEKC0xKSx0KCl9fX07cmV0dXJuIFZ9ZnVuY3Rpb24gQyhuLHQsZSl7cmV0dXJuIE1hdGgubWluKE1hdGgubWF4KG4sdCksZSl9ZnVuY3Rpb24gTChuKXt2b2lkIDA9PT1uJiYobj17fSkKO3ZhciB0PW4sZT10LmdldFVzZXJDb25maXJtYXRpb24sbz10LmluaXRpYWxFbnRyaWVzLGk9dm9pZCAwPT09bz9bIi8iXTpvLGE9dC5pbml0aWFsSW5kZXgsdT12b2lkIDA9PT1hPzA6YSxjPXQua2V5TGVuZ3RoLGY9dm9pZCAwPT09Yz82OmMscz1tKCk7ZnVuY3Rpb24gbChuKXsoMCxyLmRlZmF1bHQpKGIsbiksYi5sZW5ndGg9Yi5lbnRyaWVzLmxlbmd0aCxzLm5vdGlmeUxpc3RlbmVycyhiLmxvY2F0aW9uLGIuYWN0aW9uKX1mdW5jdGlvbiBwKCl7cmV0dXJuIE1hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cigyLGYpfXZhciBoPUModSwwLGkubGVuZ3RoLTEpLHk9aS5tYXAoKGZ1bmN0aW9uKG4pe3JldHVybiB2KG4sdm9pZCAwLCJzdHJpbmciPT10eXBlb2Ygbj9wKCk6bi5rZXl8fHAoKSl9KSksZz1kO2Z1bmN0aW9uIHcobil7dmFyIHQ9QyhiLmluZGV4K24sMCxiLmVudHJpZXMubGVuZ3RoLTEpLHI9Yi5lbnRyaWVzW3RdO3MuY29uZmlybVRyYW5zaXRpb25UbyhyLCJQT1AiLGUsKGZ1bmN0aW9uKG4pe24/bCh7YWN0aW9uOiJQT1AiLGxvY2F0aW9uOnIsaW5kZXg6dH0pOmwoKX0pKX12YXIgYj17bGVuZ3RoOnkubGVuZ3RoLGFjdGlvbjoiUE9QIixsb2NhdGlvbjp5W2hdLGluZGV4OmgsZW50cmllczp5LGNyZWF0ZUhyZWY6ZyxwdXNoOmZ1bmN0aW9uKG4sdCl7dmFyIHI9IlBVU0giLG89dihuLHQscCgpLGIubG9jYXRpb24pO3MuY29uZmlybVRyYW5zaXRpb25UbyhvLHIsZSwoZnVuY3Rpb24obil7aWYobil7dmFyIHQ9Yi5pbmRleCsxLGU9Yi5lbnRyaWVzLnNsaWNlKDApO2UubGVuZ3RoPnQ/ZS5zcGxpY2UodCxlLmxlbmd0aC10LG8pOmUucHVzaChvKSxsKHthY3Rpb246cixsb2NhdGlvbjpvLGluZGV4OnQsZW50cmllczplfSl9fSkpfSxyZXBsYWNlOmZ1bmN0aW9uKG4sdCl7dmFyIHI9IlJFUExBQ0UiLG89dihuLHQscCgpLGIubG9jYXRpb24pO3MuY29uZmlybVRyYW5zaXRpb25UbyhvLHIsZSwoZnVuY3Rpb24obil7biYmKGIuZW50cmllc1tiLmluZGV4XT1vLGwoe2FjdGlvbjpyLGxvY2F0aW9uOm99KSl9KSl9LGdvOncsZ29CYWNrOmZ1bmN0aW9uKCl7dygtMSl9LGdvRm9yd2FyZDpmdW5jdGlvbigpe3coMSl9LGNhbkdvOmZ1bmN0aW9uKG4pe3ZhciB0PWIuaW5kZXgrbjtyZXR1cm4gdD49MCYmdDxiLmVudHJpZXMubGVuZ3RofSxibG9jazpmdW5jdGlvbihuKXtyZXR1cm4gdm9pZCAwPT09biYmKG49ITEpLHMuc2V0UHJvbXB0KG4pfSxsaXN0ZW46ZnVuY3Rpb24obil7cmV0dXJuIHMuYXBwZW5kTGlzdGVuZXIobil9fTtyZXR1cm4gYn19LDk5NDE3OChuLHQsZSl7InVzZSBzdHJpY3QiO3ZhciByPWUoOTY3MTIxKTtmdW5jdGlvbiBvKCl7fWZ1bmN0aW9uIGkoKXt9aS5yZXNldFdhcm5pbmdDYWNoZT1vLG4uZXhwb3J0cz1mdW5jdGlvbigpe2Z1bmN0aW9uIG4obix0LGUsbyxpLGEpe2lmKGEhPT1yKXt2YXIgdT1uZXcgRXJyb3IoIkNhbGxpbmcgUHJvcFR5cGVzIHZhbGlkYXRvcnMgZGlyZWN0bHkgaXMgbm90IHN1cHBvcnRlZCBieSB0aGUgYHByb3AtdHlwZXNgIHBhY2thZ2UuIFVzZSBQcm9wVHlwZXMuY2hlY2tQcm9wVHlwZXMoKSB0byBjYWxsIHRoZW0uIFJlYWQgbW9yZSBhdCBodHRwOi8vZmIubWUvdXNlLWNoZWNrLXByb3AtdHlwZXMiKTt0aHJvdyB1Lm5hbWU9IkludmFyaWFudCBWaW9sYXRpb24iLHV9fWZ1bmN0aW9uIHQoKXtyZXR1cm4gbn1uLmlzUmVxdWlyZWQ9bjt2YXIgZT17YXJyYXk6bixib29sOm4sZnVuYzpuLG51bWJlcjpuLG9iamVjdDpuLHN0cmluZzpuLHN5bWJvbDpuLGFueTpuLGFycmF5T2Y6dCxlbGVtZW50Om4sZWxlbWVudFR5cGU6bixpbnN0YW5jZU9mOnQsbm9kZTpuLG9iamVjdE9mOnQsb25lT2Y6dCxvbmVPZlR5cGU6dCxzaGFwZTp0LGV4YWN0OnQsY2hlY2tQcm9wVHlwZXM6aSxyZXNldFdhcm5pbmdDYWNoZTpvfTtyZXR1cm4gZS5Qcm9wVHlwZXM9ZSxlfX0sMjIxODk2KG4sdCxlKXtuLmV4cG9ydHM9ZSg5OTQxNzgpKCl9LDk2NzEyMShuKXsidXNlIHN0cmljdCI7bi5leHBvcnRzPSJTRUNSRVRfRE9fTk9UX1BBU1NfVEhJU19PUl9ZT1VfV0lMTF9CRV9GSVJFRCJ9LDEyOTM2NShuLHQsZSl7InVzZSBzdHJpY3QiOyFmdW5jdGlvbiBuKCl7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBfX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18mJiJmdW5jdGlvbiI9PXR5cGVvZiBfX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18uY2hlY2tEQ0UpdHJ5e19fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXy5jaGVja0RDRShuKX1jYXRjaChuKXtjb25zb2xlLmVycm9yKG4pfX0oKSxuLmV4cG9ydHM9ZSg1MzIzODcpfSwxMjI3NDkobix0KXsidXNlIHN0cmljdCI7dmFyIGU9U3ltYm9sLmZvcigicmVhY3QuZWxlbWVudCIpLHI9U3ltYm9sLmZvcigicmVhY3QucG9ydGFsIiksbz1TeW1ib2wuZm9yKCJyZWFjdC5mcmFnbWVudCIpLGk9U3ltYm9sLmZvcigicmVhY3Quc3RyaWN0X21vZGUiKSxhPVN5bWJvbC5mb3IoInJlYWN0LnByb2ZpbGVyIiksdT1TeW1ib2wuZm9yKCJyZWFjdC5wcm92aWRlciIpLGM9U3ltYm9sLmZvcigicmVhY3QuY29udGV4dCIpLGY9U3ltYm9sLmZvcigicmVhY3QuZm9yd2FyZF9yZWYiKSxzPVN5bWJvbC5mb3IoInJlYWN0LnN1c3BlbnNlIiksbD1TeW1ib2wuZm9yKCJyZWFjdC5tZW1vIikscD1TeW1ib2wuZm9yKCJyZWFjdC5sYXp5IiksaD1TeW1ib2wuaXRlcmF0b3I7dmFyIGQ9e2lzTW91bnRlZDpmdW5jdGlvbigpe3JldHVybiExfSxlbnF1ZXVlRm9yY2VVcGRhdGU6ZnVuY3Rpb24oKXt9LGVucXVldWVSZXBsYWNlU3RhdGU6ZnVuY3Rpb24oKXt9LGVucXVldWVTZXRTdGF0ZTpmdW5jdGlvbigpe319LHY9T2JqZWN0LmFzc2lnbix5PXt9O2Z1bmN0aW9uIG0obix0LGUpe3RoaXMucHJvcHM9bix0aGlzLmNvbnRleHQ9dCx0aGlzLnJlZnM9eSx0aGlzLnVwZGF0ZXI9ZXx8ZH1mdW5jdGlvbiBnKCl7fWZ1bmN0aW9uIHcobix0LGUpe3RoaXMucHJvcHM9bix0aGlzLmNvbnRleHQ9dCx0aGlzLnJlZnM9eSx0aGlzLnVwZGF0ZXI9ZXx8ZH1tLnByb3RvdHlwZS5pc1JlYWN0Q29tcG9uZW50PXt9LAptLnByb3RvdHlwZS5zZXRTdGF0ZT1mdW5jdGlvbihuLHQpe2lmKCJvYmplY3QiIT10eXBlb2YgbiYmImZ1bmN0aW9uIiE9dHlwZW9mIG4mJm51bGwhPW4pdGhyb3cgRXJyb3IoInNldFN0YXRlKC4uLik6IHRha2VzIGFuIG9iamVjdCBvZiBzdGF0ZSB2YXJpYWJsZXMgdG8gdXBkYXRlIG9yIGEgZnVuY3Rpb24gd2hpY2ggcmV0dXJucyBhbiBvYmplY3Qgb2Ygc3RhdGUgdmFyaWFibGVzLiIpO3RoaXMudXBkYXRlci5lbnF1ZXVlU2V0U3RhdGUodGhpcyxuLHQsInNldFN0YXRlIil9LG0ucHJvdG90eXBlLmZvcmNlVXBkYXRlPWZ1bmN0aW9uKG4pe3RoaXMudXBkYXRlci5lbnF1ZXVlRm9yY2VVcGRhdGUodGhpcyxuLCJmb3JjZVVwZGF0ZSIpfSxnLnByb3RvdHlwZT1tLnByb3RvdHlwZTt2YXIgYj13LnByb3RvdHlwZT1uZXcgZztiLmNvbnN0cnVjdG9yPXcsdihiLG0ucHJvdG90eXBlKSxiLmlzUHVyZVJlYWN0Q29tcG9uZW50PSEwO3ZhciBfPUFycmF5LmlzQXJyYXksTz1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LGs9e2N1cnJlbnQ6bnVsbH0sRT17a2V5OiEwLHJlZjohMCxfX3NlbGY6ITAsX19zb3VyY2U6ITB9O2Z1bmN0aW9uIFAobix0LHIpe3ZhciBvLGk9e30sYT1udWxsLHU9bnVsbDtpZihudWxsIT10KWZvcihvIGluIHZvaWQgMCE9PXQucmVmJiYodT10LnJlZiksdm9pZCAwIT09dC5rZXkmJihhPSIiK3Qua2V5KSx0KU8uY2FsbCh0LG8pJiYhRS5oYXNPd25Qcm9wZXJ0eShvKSYmKGlbb109dFtvXSk7dmFyIGM9YXJndW1lbnRzLmxlbmd0aC0yO2lmKDE9PT1jKWkuY2hpbGRyZW49cjtlbHNlIGlmKDE8Yyl7Zm9yKHZhciBmPUFycmF5KGMpLHM9MDtzPGM7cysrKWZbc109YXJndW1lbnRzW3MrMl07aS5jaGlsZHJlbj1mfWlmKG4mJm4uZGVmYXVsdFByb3BzKWZvcihvIGluIGM9bi5kZWZhdWx0UHJvcHMpdm9pZCAwPT09aVtvXSYmKGlbb109Y1tvXSk7cmV0dXJueyQkdHlwZW9mOmUsdHlwZTpuLGtleTphLHJlZjp1LHByb3BzOmksX293bmVyOmsuY3VycmVudH19ZnVuY3Rpb24geChuKXtyZXR1cm4ib2JqZWN0Ij09dHlwZW9mIG4mJm51bGwhPT1uJiZuLiQkdHlwZW9mPT09ZX12YXIgUz0vXC8rL2c7ZnVuY3Rpb24gQShuLHQpe3JldHVybiJvYmplY3QiPT10eXBlb2YgbiYmbnVsbCE9PW4mJm51bGwhPW4ua2V5P2Z1bmN0aW9uKG4pe3ZhciB0PXsiPSI6Ij0wIiwiOiI6Ij0yIn07cmV0dXJuIiQiK24ucmVwbGFjZSgvWz06XS9nLChmdW5jdGlvbihuKXtyZXR1cm4gdFtuXX0pKX0oIiIrbi5rZXkpOnQudG9TdHJpbmcoMzYpfWZ1bmN0aW9uIFQobix0LG8saSxhKXt2YXIgdT10eXBlb2YgbjsidW5kZWZpbmVkIiE9PXUmJiJib29sZWFuIiE9PXV8fChuPW51bGwpO3ZhciBjPSExO2lmKG51bGw9PT1uKWM9ITA7ZWxzZSBzd2l0Y2godSl7Y2FzZSJzdHJpbmciOmNhc2UibnVtYmVyIjpjPSEwO2JyZWFrO2Nhc2Uib2JqZWN0Ijpzd2l0Y2gobi4kJHR5cGVvZil7Y2FzZSBlOmNhc2UgcjpjPSEwfX1pZihjKXJldHVybiBhPWEoYz1uKSxuPSIiPT09aT8iLiIrQShjLDApOmksXyhhKT8obz0iIixudWxsIT1uJiYobz1uLnJlcGxhY2UoUywiJCYvIikrIi8iKSxUKGEsdCxvLCIiLChmdW5jdGlvbihuKXtyZXR1cm4gbn0pKSk6bnVsbCE9YSYmKHgoYSkmJihhPWZ1bmN0aW9uKG4sdCl7cmV0dXJueyQkdHlwZW9mOmUsdHlwZTpuLnR5cGUsa2V5OnQscmVmOm4ucmVmLHByb3BzOm4ucHJvcHMsX293bmVyOm4uX293bmVyfX0oYSxvKyghYS5rZXl8fGMmJmMua2V5PT09YS5rZXk/IiI6KCIiK2Eua2V5KS5yZXBsYWNlKFMsIiQmLyIpKyIvIikrbikpLHQucHVzaChhKSksMTtpZihjPTAsaT0iIj09PWk/Ii4iOmkrIjoiLF8obikpZm9yKHZhciBmPTA7ZjxuLmxlbmd0aDtmKyspe3ZhciBzPWkrQSh1PW5bZl0sZik7Yys9VCh1LHQsbyxzLGEpfWVsc2UgaWYocz1mdW5jdGlvbihuKXtyZXR1cm4gbnVsbD09PW58fCJvYmplY3QiIT10eXBlb2Ygbj9udWxsOiJmdW5jdGlvbiI9PXR5cGVvZihuPWgmJm5baF18fG5bIkBAaXRlcmF0b3IiXSk/bjpudWxsfShuKSwiZnVuY3Rpb24iPT10eXBlb2Ygcylmb3Iobj1zLmNhbGwobiksZj0wOyEodT1uLm5leHQoKSkuZG9uZTspYys9VCh1PXUudmFsdWUsdCxvLHM9aStBKHUsZisrKSxhKTtlbHNlIGlmKCJvYmplY3QiPT09dSl0aHJvdyB0PVN0cmluZyhuKSxFcnJvcigiT2JqZWN0cyBhcmUgbm90IHZhbGlkIGFzIGEgUmVhY3QgY2hpbGQgKGZvdW5kOiAiKygiW29iamVjdCBPYmplY3RdIj09PXQ/Im9iamVjdCB3aXRoIGtleXMgeyIrT2JqZWN0LmtleXMobikuam9pbigiLCAiKSsifSI6dCkrIikuIElmIHlvdSBtZWFudCB0byByZW5kZXIgYSBjb2xsZWN0aW9uIG9mIGNoaWxkcmVuLCB1c2UgYW4gYXJyYXkgaW5zdGVhZC4iKTtyZXR1cm4gY31mdW5jdGlvbiBDKG4sdCxlKXtpZihudWxsPT1uKXJldHVybiBuO3ZhciByPVtdLG89MDtyZXR1cm4gVChuLHIsIiIsIiIsKGZ1bmN0aW9uKG4pe3JldHVybiB0LmNhbGwoZSxuLG8rKyl9KSkscn1mdW5jdGlvbiBMKG4pe2lmKC0xPT09bi5fc3RhdHVzKXt2YXIgdD1uLl9yZXN1bHQ7KHQ9dCgpKS50aGVuKChmdW5jdGlvbih0KXswIT09bi5fc3RhdHVzJiYtMSE9PW4uX3N0YXR1c3x8KG4uX3N0YXR1cz0xLG4uX3Jlc3VsdD10KX0pLChmdW5jdGlvbih0KXswIT09bi5fc3RhdHVzJiYtMSE9PW4uX3N0YXR1c3x8KG4uX3N0YXR1cz0yLG4uX3Jlc3VsdD10KX0pKSwtMT09PW4uX3N0YXR1cyYmKG4uX3N0YXR1cz0wLG4uX3Jlc3VsdD10KX1pZigxPT09bi5fc3RhdHVzKXJldHVybiBuLl9yZXN1bHQuZGVmYXVsdDt0aHJvdyBuLl9yZXN1bHR9dmFyIFI9e2N1cnJlbnQ6bnVsbH0saj17dHJhbnNpdGlvbjpudWxsfSwkPXtSZWFjdEN1cnJlbnREaXNwYXRjaGVyOlIsUmVhY3RDdXJyZW50QmF0Y2hDb25maWc6aixSZWFjdEN1cnJlbnRPd25lcjprfTt0LkNoaWxkcmVuPXttYXA6Qyxmb3JFYWNoOmZ1bmN0aW9uKG4sdCxlKXtDKG4sKGZ1bmN0aW9uKCl7dC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9KSxlKX0sY291bnQ6ZnVuY3Rpb24obil7dmFyIHQ9MDtyZXR1cm4gQyhuLChmdW5jdGlvbigpe3QrK30pKSx0fSx0b0FycmF5OmZ1bmN0aW9uKG4pewpyZXR1cm4gQyhuLChmdW5jdGlvbihuKXtyZXR1cm4gbn0pKXx8W119LG9ubHk6ZnVuY3Rpb24obil7aWYoIXgobikpdGhyb3cgRXJyb3IoIlJlYWN0LkNoaWxkcmVuLm9ubHkgZXhwZWN0ZWQgdG8gcmVjZWl2ZSBhIHNpbmdsZSBSZWFjdCBlbGVtZW50IGNoaWxkLiIpO3JldHVybiBufX0sdC5Db21wb25lbnQ9bSx0LkZyYWdtZW50PW8sdC5Qcm9maWxlcj1hLHQuUHVyZUNvbXBvbmVudD13LHQuU3RyaWN0TW9kZT1pLHQuU3VzcGVuc2U9cyx0Ll9fU0VDUkVUX0lOVEVSTkFMU19ET19OT1RfVVNFX09SX1lPVV9XSUxMX0JFX0ZJUkVEPSQsdC5jbG9uZUVsZW1lbnQ9ZnVuY3Rpb24obix0LHIpe2lmKG51bGw9PW4pdGhyb3cgRXJyb3IoIlJlYWN0LmNsb25lRWxlbWVudCguLi4pOiBUaGUgYXJndW1lbnQgbXVzdCBiZSBhIFJlYWN0IGVsZW1lbnQsIGJ1dCB5b3UgcGFzc2VkICIrbisiLiIpO3ZhciBvPXYoe30sbi5wcm9wcyksaT1uLmtleSxhPW4ucmVmLHU9bi5fb3duZXI7aWYobnVsbCE9dCl7aWYodm9pZCAwIT09dC5yZWYmJihhPXQucmVmLHU9ay5jdXJyZW50KSx2b2lkIDAhPT10LmtleSYmKGk9IiIrdC5rZXkpLG4udHlwZSYmbi50eXBlLmRlZmF1bHRQcm9wcyl2YXIgYz1uLnR5cGUuZGVmYXVsdFByb3BzO2ZvcihmIGluIHQpTy5jYWxsKHQsZikmJiFFLmhhc093blByb3BlcnR5KGYpJiYob1tmXT12b2lkIDA9PT10W2ZdJiZ2b2lkIDAhPT1jP2NbZl06dFtmXSl9dmFyIGY9YXJndW1lbnRzLmxlbmd0aC0yO2lmKDE9PT1mKW8uY2hpbGRyZW49cjtlbHNlIGlmKDE8Zil7Yz1BcnJheShmKTtmb3IodmFyIHM9MDtzPGY7cysrKWNbc109YXJndW1lbnRzW3MrMl07by5jaGlsZHJlbj1jfXJldHVybnskJHR5cGVvZjplLHR5cGU6bi50eXBlLGtleTppLHJlZjphLHByb3BzOm8sX293bmVyOnV9fSx0LmNyZWF0ZUNvbnRleHQ9ZnVuY3Rpb24obil7cmV0dXJuKG49eyQkdHlwZW9mOmMsX2N1cnJlbnRWYWx1ZTpuLF9jdXJyZW50VmFsdWUyOm4sX3RocmVhZENvdW50OjAsUHJvdmlkZXI6bnVsbCxDb25zdW1lcjpudWxsLF9kZWZhdWx0VmFsdWU6bnVsbCxfZ2xvYmFsTmFtZTpudWxsfSkuUHJvdmlkZXI9eyQkdHlwZW9mOnUsX2NvbnRleHQ6bn0sbi5Db25zdW1lcj1ufSx0LmNyZWF0ZUVsZW1lbnQ9UCx0LmNyZWF0ZUZhY3Rvcnk9ZnVuY3Rpb24obil7dmFyIHQ9UC5iaW5kKG51bGwsbik7cmV0dXJuIHQudHlwZT1uLHR9LHQuY3JlYXRlUmVmPWZ1bmN0aW9uKCl7cmV0dXJue2N1cnJlbnQ6bnVsbH19LHQuZm9yd2FyZFJlZj1mdW5jdGlvbihuKXtyZXR1cm57JCR0eXBlb2Y6ZixyZW5kZXI6bn19LHQuaXNWYWxpZEVsZW1lbnQ9eCx0Lmxhenk9ZnVuY3Rpb24obil7cmV0dXJueyQkdHlwZW9mOnAsX3BheWxvYWQ6e19zdGF0dXM6LTEsX3Jlc3VsdDpufSxfaW5pdDpMfX0sdC5tZW1vPWZ1bmN0aW9uKG4sdCl7cmV0dXJueyQkdHlwZW9mOmwsdHlwZTpuLGNvbXBhcmU6dm9pZCAwPT09dD9udWxsOnR9fSx0LnN0YXJ0VHJhbnNpdGlvbj1mdW5jdGlvbihuKXt2YXIgdD1qLnRyYW5zaXRpb247ai50cmFuc2l0aW9uPXt9O3RyeXtuKCl9ZmluYWxseXtqLnRyYW5zaXRpb249dH19LHQudW5zdGFibGVfYWN0PWZ1bmN0aW9uKCl7dGhyb3cgRXJyb3IoImFjdCguLi4pIGlzIG5vdCBzdXBwb3J0ZWQgaW4gcHJvZHVjdGlvbiBidWlsZHMgb2YgUmVhY3QuIil9LHQudXNlQ2FsbGJhY2s9ZnVuY3Rpb24obix0KXtyZXR1cm4gUi5jdXJyZW50LnVzZUNhbGxiYWNrKG4sdCl9LHQudXNlQ29udGV4dD1mdW5jdGlvbihuKXtyZXR1cm4gUi5jdXJyZW50LnVzZUNvbnRleHQobil9LHQudXNlRGVidWdWYWx1ZT1mdW5jdGlvbigpe30sdC51c2VEZWZlcnJlZFZhbHVlPWZ1bmN0aW9uKG4pe3JldHVybiBSLmN1cnJlbnQudXNlRGVmZXJyZWRWYWx1ZShuKX0sdC51c2VFZmZlY3Q9ZnVuY3Rpb24obix0KXtyZXR1cm4gUi5jdXJyZW50LnVzZUVmZmVjdChuLHQpfSx0LnVzZUlkPWZ1bmN0aW9uKCl7cmV0dXJuIFIuY3VycmVudC51c2VJZCgpfSx0LnVzZUltcGVyYXRpdmVIYW5kbGU9ZnVuY3Rpb24obix0LGUpe3JldHVybiBSLmN1cnJlbnQudXNlSW1wZXJhdGl2ZUhhbmRsZShuLHQsZSl9LHQudXNlSW5zZXJ0aW9uRWZmZWN0PWZ1bmN0aW9uKG4sdCl7cmV0dXJuIFIuY3VycmVudC51c2VJbnNlcnRpb25FZmZlY3Qobix0KX0sdC51c2VMYXlvdXRFZmZlY3Q9ZnVuY3Rpb24obix0KXtyZXR1cm4gUi5jdXJyZW50LnVzZUxheW91dEVmZmVjdChuLHQpfSx0LnVzZU1lbW89ZnVuY3Rpb24obix0KXtyZXR1cm4gUi5jdXJyZW50LnVzZU1lbW8obix0KX0sdC51c2VSZWR1Y2VyPWZ1bmN0aW9uKG4sdCxlKXtyZXR1cm4gUi5jdXJyZW50LnVzZVJlZHVjZXIobix0LGUpfSx0LnVzZVJlZj1mdW5jdGlvbihuKXtyZXR1cm4gUi5jdXJyZW50LnVzZVJlZihuKX0sdC51c2VTdGF0ZT1mdW5jdGlvbihuKXtyZXR1cm4gUi5jdXJyZW50LnVzZVN0YXRlKG4pfSx0LnVzZVN5bmNFeHRlcm5hbFN0b3JlPWZ1bmN0aW9uKG4sdCxlKXtyZXR1cm4gUi5jdXJyZW50LnVzZVN5bmNFeHRlcm5hbFN0b3JlKG4sdCxlKX0sdC51c2VUcmFuc2l0aW9uPWZ1bmN0aW9uKCl7cmV0dXJuIFIuY3VycmVudC51c2VUcmFuc2l0aW9uKCl9LHQudmVyc2lvbj0iMTguMi4wIn0sNzc5NDc0KG4sdCxlKXsidXNlIHN0cmljdCI7bi5leHBvcnRzPWUoMTIyNzQ5KX0sMzY0MzUwKG4sdCxlKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gcihuLHQpe3JldHVybiBuPT09dH1lLmQodCx7Y3JlYXRlU2VsZWN0b3I6KCk9Pm99KTt2YXIgbz1mdW5jdGlvbihuKXtmb3IodmFyIHQ9YXJndW1lbnRzLmxlbmd0aCxlPUFycmF5KHQ+MT90LTE6MCkscj0xO3I8dDtyKyspZVtyLTFdPWFyZ3VtZW50c1tyXTtyZXR1cm4gZnVuY3Rpb24oKXtmb3IodmFyIHQ9YXJndW1lbnRzLmxlbmd0aCxyPUFycmF5KHQpLG89MDtvPHQ7bysrKXJbb109YXJndW1lbnRzW29dO3ZhciBpPTAsYT1yLnBvcCgpLHU9ZnVuY3Rpb24obil7dmFyIHQ9QXJyYXkuaXNBcnJheShuWzBdKT9uWzBdOm47aWYoIXQuZXZlcnkoKGZ1bmN0aW9uKG4pe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBufSkpKXt2YXIgZT10Lm1hcCgoZnVuY3Rpb24obil7CnJldHVybiB0eXBlb2Ygbn0pKS5qb2luKCIsICIpO3Rocm93IG5ldyBFcnJvcigiU2VsZWN0b3IgY3JlYXRvcnMgZXhwZWN0IGFsbCBpbnB1dC1zZWxlY3RvcnMgdG8gYmUgZnVuY3Rpb25zLCBpbnN0ZWFkIHJlY2VpdmVkIHRoZSBmb2xsb3dpbmcgdHlwZXM6IFsiK2UrIl0iKX1yZXR1cm4gdH0ociksYz1uLmFwcGx5KHZvaWQgMCxbZnVuY3Rpb24oKXtyZXR1cm4gaSsrLGEuYXBwbHkobnVsbCxhcmd1bWVudHMpfV0uY29uY2F0KGUpKSxmPW4oKGZ1bmN0aW9uKCl7Zm9yKHZhciBuPVtdLHQ9dS5sZW5ndGgsZT0wO2U8dDtlKyspbi5wdXNoKHVbZV0uYXBwbHkobnVsbCxhcmd1bWVudHMpKTtyZXR1cm4gYy5hcHBseShudWxsLG4pfSkpO3JldHVybiBmLnJlc3VsdEZ1bmM9YSxmLmRlcGVuZGVuY2llcz11LGYucmVjb21wdXRhdGlvbnM9ZnVuY3Rpb24oKXtyZXR1cm4gaX0sZi5yZXNldFJlY29tcHV0YXRpb25zPWZ1bmN0aW9uKCl7cmV0dXJuIGk9MH0sZn19KChmdW5jdGlvbihuKXt2YXIgdD1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06cixlPW51bGwsbz1udWxsO3JldHVybiBmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbihuLHQsZSl7aWYobnVsbD09PXR8fG51bGw9PT1lfHx0Lmxlbmd0aCE9PWUubGVuZ3RoKXJldHVybiExO2Zvcih2YXIgcj10Lmxlbmd0aCxvPTA7bzxyO28rKylpZighbih0W29dLGVbb10pKXJldHVybiExO3JldHVybiEwfSh0LGUsYXJndW1lbnRzKXx8KG89bi5hcHBseShudWxsLGFyZ3VtZW50cykpLGU9YXJndW1lbnRzLG99fSkpfSw2NDQzMjAobix0LGUpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiByKCl7cmV0dXJuIHI9T2JqZWN0LmFzc2lnbj9PYmplY3QuYXNzaWduLmJpbmQoKTpmdW5jdGlvbihuKXtmb3IodmFyIHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgZT1hcmd1bWVudHNbdF07Zm9yKHZhciByIGluIGUpKHt9KS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUscikmJihuW3JdPWVbcl0pfXJldHVybiBufSxyLmFwcGx5KG51bGwsYXJndW1lbnRzKX1lLmQodCx7ZGVmYXVsdDooKT0+cn0pfSwyNTM4NShuLHQsZSl7InVzZSBzdHJpY3QiO2UuZCh0LHtkZWZhdWx0OigpPT5vfSk7dmFyIHI9IkludmFyaWFudCBmYWlsZWQiO2Z1bmN0aW9uIG8obix0KXtpZighbil0aHJvdyBuZXcgRXJyb3Iocil9fX1dKTs="}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/19787.bbb66fa0fd2bd04d0875.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.344Z","timestamp":1785148034344,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/19787.bbb66fa0fd2bd04d0875.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\ncontent-type: text/css; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a58ab11-20c3\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Thu, 16 Jul 2026 09:57:37 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/16/2026 11:03:22\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 16e2b55c58e89d0cff7ede344058477f\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":8387,"size_decoded":2212,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with very long lines (8387), with no line terminators","md5":"c76f82404888743630c3d86c6931b984","sha1":"0effb39e719c9998b27c227db4b853aba32f119e","sha256":"1196f60553689bc67d6287aaac7773cab51d29c33e4fb4892caefae123cd5457","sha512":"f666bbef0cab0de8c5308c44eb68226e8037afd2e73be527dc8033c9f0a8147c7f08bf72a1fdaecfd64cc53656d5990a9d621e6722bb9aec0844cdc9e725a756","ssdeep":"192:r4jkmQQNWw64jkmQQuFQu3ZfXQb0JRQ//gUTxhi27lHuePk/ouJp:oV/Dhi27Y","tlshash":"3a026556f393453e7933d28e1e28b788e2569db2e5233ac2b534e554f5ecaf20c06d21","first_seen":"2026-07-17T03:30:51.091379Z","last_seen":"2026-07-27T12:47:44.786914Z","times_seen":91,"resource_available":false,"data":"W2RhdGEtdGhlbWU9bGlnaHRdey0tXzAtY2tOSzp2YXIoLS1jb2xvci1jb2xkLWdyYXktMzAwKTstLV8xLWNrTks6dmFyKC0tY29sb3ItY29udHJvbC1pbnRlbnQtc3VjY2Vzcyk7LS1fMi1ja05LOnZhcigtLWNvbG9yLWNvbnRyb2wtaW50ZW50LXByaW1hcnkpOy0tXzMtY2tOSzp2YXIoLS1jb2xvci1jb250cm9sLWludGVudC13YXJuaW5nKTstLV80LWNrTks6dmFyKC0tY29sb3ItY29udHJvbC1pbnRlbnQtZGFuZ2VyKTstLV81LWNrTks6dmFyKC0tY29sb3ItY29sZC1ncmF5LTM1MCk7LS1fNi1ja05LOnZhcigtLWNvbG9yLWNvbGQtZ3JheS0xMDApOy0tXzctY2tOSzp2YXIoLS1jb2xvci1jb2xkLWdyYXktNTUwKX1bZGF0YS10aGVtZT1kYXJrXXstLV8wLWNrTks6dmFyKC0tY29sb3ItY29sZC1ncmF5LTQ1MCk7LS1fMS1ja05LOnZhcigtLWNvbG9yLWNvbnRyb2wtaW50ZW50LXN1Y2Nlc3MpOy0tXzItY2tOSzp2YXIoLS1jb2xvci1jb250cm9sLWludGVudC1wcmltYXJ5KTstLV8zLWNrTks6dmFyKC0tY29sb3ItY29udHJvbC1pbnRlbnQtd2FybmluZyk7LS1fNC1ja05LOnZhcigtLWNvbG9yLWNvbnRyb2wtaW50ZW50LWRhbmdlcik7LS1fNS1ja05LOnZhcigtLWNvbG9yLWNvbGQtZ3JheS01NTApOy0tXzYtY2tOSzp2YXIoLS1jb2xvci1jb2xkLWdyYXktODAwKTstLV83LWNrTks6dmFyKC0tY29sb3ItY29sZC1ncmF5LTY1MCl9LmNvbnRhaW5lci1OODRYU2NHbnthbGlnbi1pdGVtczpjZW50ZXI7Ym9yZGVyLWNvbG9yOnZhcigtLXVpLWxpYi1pbnRlbnQtY29sb3IsdmFyKC0tY29sb3ItY29udHJvbC1pbnRlbnQtZGVmYXVsdCkpO2JvcmRlci1yYWRpdXM6OHB4O2JvcmRlci1zdHlsZTpzb2xpZDtib3JkZXItd2lkdGg6dmFyKC0tdWktbGliLWNvbnRyb2wtYm9yZGVyLXdpZHRoLDFweCk7Ym94LXNpemluZzpib3JkZXItYm94O2NvbG9yOnZhcigtLWNvbG9yLXRleHQtcHJpbWFyeSk7ZGlzcGxheTppbmxpbmUtZmxleDtwb3NpdGlvbjpyZWxhdGl2ZTstLXVpLWxpYi1jb250cm9sLWRlZmF1bHQtc2xvdC1jb2xvcjp2YXIoLS1jb2xvci10ZXh0LXNlY29uZGFyeSk7aGVpZ2h0OnZhcigtLXVpLWxpYi1jb250cm9sLXNrZWxldG9uLWhlaWdodCxhdXRvKX0uY29udGFpbmVyLU44NFhTY0duLmNvbnRhaW5lci14eHNtYWxsLU44NFhTY0due2JvcmRlci1yYWRpdXM6NHB4fS5jb250YWluZXItTjg0WFNjR24uY29udGFpbmVyLXNtYWxsLU44NFhTY0duLC5jb250YWluZXItTjg0WFNjR24uY29udGFpbmVyLXhzbWFsbC1OODRYU2NHbntib3JkZXItcmFkaXVzOjZweH0uY29udGFpbmVyLU44NFhTY0duLmNvbnRhaW5lci1sYXJnZS1OODRYU2NHbiwuY29udGFpbmVyLU44NFhTY0duLmNvbnRhaW5lci1tZWRpdW0tTjg0WFNjR257Ym9yZGVyLXJhZGl1czo4cHh9QG1lZGlhIChhbnktaG92ZXI6aG92ZXIpey5jb250YWluZXItTjg0WFNjR24uaW50ZW50LWRlZmF1bHQtTjg0WFNjR246aG92ZXJ7Ym9yZGVyLWNvbG9yOnZhcigtLV81LWNrTkspOy0tdWktbGliLWNvbnRyb2wtZGVmYXVsdC1zbG90LWNvbG9yOnZhcigtLWNvbG9yLXRleHQtcHJpbWFyeSl9fS5jb250YWluZXItTjg0WFNjR24uZm9jdXNlZC1OODRYU2NHbntib3JkZXItY29sb3I6dmFyKC0tY29sb3ItY29udHJvbC1pbnRlbnQtcHJpbWFyeSl9QG1lZGlhIChhbnktaG92ZXI6aG92ZXIpey5jb250YWluZXItTjg0WFNjR24uZm9jdXNlZC1OODRYU2NHbjpob3Zlcntib3JkZXItY29sb3I6dmFyKC0tY29sb3ItY29udHJvbC1pbnRlbnQtcHJpbWFyeSl9fS5jb250YWluZXItTjg0WFNjR24ucmVhZG9ubHktTjg0WFNjR257YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1fNi1ja05LKTtib3JkZXItY29sb3I6dmFyKC0tY29sb3ItY29udHJvbC1pbnRlbnQtZGVmYXVsdCl9QG1lZGlhIChhbnktaG92ZXI6aG92ZXIpey5jb250YWluZXItTjg0WFNjR24ucmVhZG9ubHktTjg0WFNjR246aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1fNi1ja05LKTtib3JkZXItY29sb3I6dmFyKC0tY29sb3ItY29udHJvbC1pbnRlbnQtZGVmYXVsdCl9fS5jb250YWluZXItTjg0WFNjR24uZGlzYWJsZWQtTjg0WFNjR257YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1fNi1ja05LKTtib3JkZXItY29sb3I6dmFyKC0tY29sb3ItY29udHJvbC1pbnRlbnQtZGVmYXVsdCk7Y29sb3I6dmFyKC0tXzctY2tOSyk7LS11aS1saWItY29udHJvbC10ZXh0LWZpbGwtY29sb3I6dmFyKC0tXzctY2tOSyk7LS11aS1saWItY29udHJvbC1kZWZhdWx0LXNsb3QtY29sb3I6dmFyKC0tY29sb3ItdGV4dC1zZWNvbmRhcnkpfUBtZWRpYSAoYW55LWhvdmVyOmhvdmVyKXsuY29udGFpbmVyLU44NFhTY0duLmRpc2FibGVkLU44NFhTY0duOmhvdmVye2JhY2tncm91bmQtY29sb3I6dmFyKC0tXzYtY2tOSyk7Ym9yZGVyLWNvbG9yOnZhcigtLWNvbG9yLWNvbnRyb2wtaW50ZW50LWRlZmF1bHQpO2NvbG9yOnZhcigtLV83LWNrTkspOy0tdWktbGliLWNvbnRyb2wtdGV4dC1maWxsLWNvbG9yOnZhcigtLV83LWNrTkspOy0tdWktbGliLWNvbnRyb2wtZGVmYXVsdC1zbG90LWNvbG9yOnZhcigtLWNvbG9yLXRleHQtc2Vjb25kYXJ5KX19LmNvbnRhaW5lci1OODRYU2NHbi53aXRoLWhpZ2hsaWdodC1OODRYU2NHbiwuY29udGFpbmVyLU44NFhTY0duLndpdGgtaGlnaGxpZ2h0LU44NFhTY0duLmZvY3VzZWQtTjg0WFNjR257Ym9yZGVyLWNvbG9yOnZhcigtLWNvbG9yLWNvbnRyb2wtaW50ZW50LWRlZmF1bHQpO291dGxpbmU6bm9uZX1AbWVkaWEgKGFueS1ob3Zlcjpob3Zlcil7LmNvbnRhaW5lci1OODRYU2NHbi53aXRoLWhpZ2hsaWdodC1OODRYU2NHbjpob3Zlcntib3JkZXItY29sb3I6dmFyKC0tY29sb3ItY29udHJvbC1pbnRlbnQtZGVmYXVsdCk7b3V0bGluZTpub25lfX0uY29udGFpbmVyLU44NFhTY0duLmdyb3VwZWQtTjg0WFNjR24uYWRqdXN0LXBvc2l0aW9uLU44NFhTY0duOm5vdCguZmlyc3Qtcm93LU44NFhTY0duKXttYXJnaW4tdG9wOmNhbGModmFyKC0tdWktbGliLWNvbnRyb2wtYm9yZGVyLXdpZHRoLCAxcHgpKi0xKX0uY29udGFpbmVyLU44NFhTY0duLmdyb3VwZWQtTjg0WFNjR24uYWRqdXN0LXBvc2l0aW9uLU44NFhTY0duOm5vdCguZmlyc3QtY29sLU44NFhTY0duKXttYXJnaW4taW5saW5lLXN0YXJ0OmNhbGModmFyKC0tdWktbGliLWNvbnRyb2wtYm9yZGVyLXdpZHRoLCAxcHgpKi0xKX1AbWVkaWEgKGFueS1ob3Zlcjpob3Zlcil7LmNvbnRhaW5lci1OODRYU2NHbi5ncm91cGVkLU44NFhTY0duOmhvdmVye3otaW5kZXg6MX19LmNvbnRhaW5lci1OODRYU2NHbi5ncm91cGVkLU44NFhTY0duLmZvY3VzZWQtTjg0WFNjR257ei1pbmRleDoyfS5jb250YWluZXItTjg0WFNjR24uc3RyZXRjaC1OODRYU2NHbnt3aWR0aDoxMDAlfS5jb250YWluZXItTjg0WFNjR24uZm9udC1zaXplLW1lZGl1bS1OODRYU2NHbnstLXVpLWxpYi10eXBvZ3JhcGh5LWZvbnQtc2l6ZToxNHB4Oy0tdWktbGliLXR5cG9ncmFwaHktbGluZS1oZWlnaHQ6MThweH0uY29udGFpbmVyLU44NFhTY0duLmZvbnQtc2l6ZS1sYXJnZS1OODRYU2NHbiwuY29udGFpbmVyLU44NFhTY0duLmZvbnQtc2l6ZS1tZWRpdW0tTjg0WFNjR257Zm9udC1mYW1pbHk6LWFwcGxlLXN5c3RlbSxCbGlua01hY1N5c3RlbUZvbnQsVHJlYnVjaGV0IE1TLFJvYm90byxVYnVudHUsc2Fucy1zZXJpZjtmb250LWZlYXR1cmUtc2V0dGluZ3M6InRudW0iIG9uLCJsbnVtIiBvbjtmb250LXNpemU6dmFyKC0tdWktbGliLXR5cG9ncmFwaHktZm9udC1zaXplKTtmb250LXN0eWxlOm5vcm1hbDtmb250LXdlaWdodDo0MDA7bGluZS1oZWlnaHQ6dmFyKC0tdWktbGliLXR5cG9ncmFwaHktbGluZS1oZWlnaHQpfS5jb250YWluZXItTjg0WFNjR24uZm9udC1zaXplLWxhcmdlLU44NFhTY0duey0tdWktbGliLXR5cG9ncmFwaHktZm9udC1zaXplOjE2cHg7LS11aS1saWItdHlwb2dyYXBoeS1saW5lLWhlaWdodDoyNHB4fS5jb250YWluZXItTjg0WFNjR24ubm8tY29ybmVyLXRvcC1sZWZ0LU44NFhTY0due2JvcmRlci1zdGFydC1zdGFydC1yYWRpdXM6MH0uY29udGFpbmVyLU44NFhTY0duLm5vLWNvcm5lci10b3AtcmlnaHQtTjg0WFNjR257Ym9yZGVyLXN0YXJ0LWVuZC1yYWRpdXM6MH0uY29udGFpbmVyLU44NFhTY0duLm5vLWNvcm5lci1ib3R0b20tcmlnaHQtTjg0WFNjR257Ym9yZGVyLWVuZC1lbmQtcmFkaXVzOjB9LmNvbnRhaW5lci1OODRYU2NHbi5uby1jb3JuZXItYm90dG9tLWxlZnQtTjg0WFNjR257Ym9yZGVyLWVuZC1zdGFydC1yYWRpdXM6MH0uc2l6ZS14eHNtYWxsLU44NFhTY0duey0tdWktbGliLWNvbnRyb2wtc2tlbGV0b24taGVpZ2h0OjI0cHg7Ym9yZGVyLXJhZGl1czo0cHh9LnNpemUteHNtYWxsLU44NFhTY0duey0tdWktbGliLWNvbnRyb2wtc2tlbGV0b24taGVpZ2h0OjI4cHg7Ym9yZGVyLXJhZGl1czo2cHh9LnNpemUtc21hbGwtTjg0WFNjR257LS11aS1saWItY29udHJvbC1za2VsZXRvbi1oZWlnaHQ6MzRweDtib3JkZXItcmFkaXVzOjZweH0uc2l6ZS1tZWRpdW0tTjg0WFNjR257LS11aS1saWItY29udHJvbC1za2VsZXRvbi1oZWlnaHQ6NDBweDtib3JkZXItcmFkaXVzOjhweH0uc2l6ZS1sYXJnZS1OODRYU2NHbnstLXVpLWxpYi1jb250cm9sLXNrZWxldG9uLWhlaWdodDo0OHB4O2JvcmRlci1yYWRpdXM6OHB4fS5pbnRlbnQtZGVmYXVsdC1OODRYU2NHbnstLXVpLWxpYi1pbnRlbnQtY29sb3I6dmFyKC0tY29sb3ItY29udHJvbC1pbnRlbnQtZGVmYXVsdCk7LS11aS1saWItaW50ZW50LWhpZ2hsaWdodC1jb2xvcjp2YXIoLS1fMC1ja05LKX0uaW50ZW50LXN1Y2Nlc3MtTjg0WFNjR257LS11aS1saWItaW50ZW50LWNvbG9yOnZhcigtLWNvbG9yLWNvbnRyb2wtaW50ZW50LXN1Y2Nlc3MpOy0tdWktbGliLWludGVudC1oaWdobGlnaHQtY29sb3I6dmFyKC0tXzEtY2tOSyl9LmludGVudC13YXJuaW5nLU44NFhTY0duey0tdWktbGliLWludGVudC1jb2xvcjp2YXIoLS1jb2xvci1jb250cm9sLWludGVudC13YXJuaW5nKTstLXVpLWxpYi1pbnRlbnQtaGlnaGxpZ2h0LWNvbG9yOnZhcigtLV8zLWNrTkspfS5pbnRlbnQtZGFuZ2VyLU44NFhTY0duey0tdWktbGliLWludGVudC1jb2xvcjp2YXIoLS1jb2xvci1jb250cm9sLWludGVudC1kYW5nZXIpOy0tdWktbGliLWludGVudC1oaWdobGlnaHQtY29sb3I6dmFyKC0tXzQtY2tOSyl9LmludGVudC1wcmltYXJ5LU44NFhTY0duey0tdWktbGliLWludGVudC1jb2xvcjp2YXIoLS1jb2xvci1jb250cm9sLWludGVudC1wcmltYXJ5KTstLXVpLWxpYi1pbnRlbnQtaGlnaGxpZ2h0LWNvbG9yOnZhcigtLV8yLWNrTkspfS5ib3JkZXItbm9uZS1OODRYU2NHbnstLXVpLWxpYi1jb250cm9sLWJvcmRlci13aWR0aDowcHh9LmJvcmRlci10aGluLU44NFhTY0duey0tdWktbGliLWNvbnRyb2wtYm9yZGVyLXdpZHRoOjFweH0uYm9yZGVyLXRoaWNrLU44NFhTY0duey0tdWktbGliLWNvbnRyb2wtYm9yZGVyLXdpZHRoOjJweH0uaGlnaGxpZ2h0LU44NFhTY0due2JvcmRlcjoycHggc29saWQ7Ym9yZGVyLWNvbG9yOnZhcigtLXVpLWxpYi1pbnRlbnQtaGlnaGxpZ2h0LWNvbG9yLHZhcigtLV8wLWNrTkspKTtib3JkZXItcmFkaXVzOnZhcigtLXVpLWxpYi1jb250cm9sLWhpZ2hsaWdodC1ib3JkZXItcmFkaXVzLDhweCk7Ym90dG9tOjA7aW5zZXQtaW5saW5lLWVuZDowO2luc2V0LWlubGluZS1zdGFydDowO21hcmdpbjpjYWxjKHZhcigtLXVpLWxpYi1jb250cm9sLWJvcmRlci13aWR0aCwgMXB4KSotMSk7cG9pbnRlci1ldmVudHM6bm9uZTtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDt2aXNpYmlsaXR5OmhpZGRlbjt6LWluZGV4OjN9LmhpZ2hsaWdodC1OODRYU2NHbi5zaG93bi1OODRYU2NHbnt2aXNpYmlsaXR5OnZpc2libGV9LmhpZ2hsaWdodC1OODRYU2NHbi5uby1jb3JuZXItdG9wLWxlZnQtTjg0WFNjR257Ym9yZGVyLXN0YXJ0LXN0YXJ0LXJhZGl1czowfS5oaWdobGlnaHQtTjg0WFNjR24ubm8tY29ybmVyLXRvcC1yaWdodC1OODRYU2NHbntib3JkZXItc3RhcnQtZW5kLXJhZGl1czowfS5oaWdobGlnaHQtTjg0WFNjR24ubm8tY29ybmVyLWJvdHRvbS1yaWdodC1OODRYU2NHbntib3JkZXItZW5kLWVuZC1yYWRpdXM6MH0uaGlnaGxpZ2h0LU44NFhTY0duLm5vLWNvcm5lci1ib3R0b20tbGVmdC1OODRYU2NHbntib3JkZXItZW5kLXN0YXJ0LXJhZGl1czowfS5oaWdobGlnaHQtTjg0WFNjR24uc2l6ZS14eHNtYWxsLU44NFhTY0due2JvcmRlci1yYWRpdXM6NHB4fS5oaWdobGlnaHQtTjg0WFNjR24uc2l6ZS14eHNtYWxsLU44NFhTY0duLm5vLWNvcm5lci10b3AtbGVmdC1OODRYU2NHbntib3JkZXItc3RhcnQtc3RhcnQtcmFkaXVzOjB9LmhpZ2hsaWdodC1OODRYU2NHbi5zaXplLXh4c21hbGwtTjg0WFNjR24ubm8tY29ybmVyLXRvcC1yaWdodC1OODRYU2NHbntib3JkZXItc3RhcnQtZW5kLXJhZGl1czowfS5oaWdobGlnaHQtTjg0WFNjR24uc2l6ZS14eHNtYWxsLU44NFhTY0duLm5vLWNvcm5lci1ib3R0b20tcmlnaHQtTjg0WFNjR257Ym9yZGVyLWVuZC1lbmQtcmFkaXVzOjB9LmhpZ2hsaWdodC1OODRYU2NHbi5zaXplLXh4c21hbGwtTjg0WFNjR24ubm8tY29ybmVyLWJvdHRvbS1sZWZ0LU44NFhTY0due2JvcmRlci1lbmQtc3RhcnQtcmFkaXVzOjB9LmhpZ2hsaWdodC1OODRYU2NHbi5zaXplLXhzbWFsbC1OODRYU2NHbntib3JkZXItcmFkaXVzOjZweH0uaGlnaGxpZ2h0LU44NFhTY0duLnNpemUteHNtYWxsLU44NFhTY0duLm5vLWNvcm5lci10b3AtbGVmdC1OODRYU2NHbntib3JkZXItc3RhcnQtc3RhcnQtcmFkaXVzOjB9LmhpZ2hsaWdodC1OODRYU2NHbi5zaXplLXhzbWFsbC1OODRYU2NHbi5uby1jb3JuZXItdG9wLXJpZ2h0LU44NFhTY0due2JvcmRlci1zdGFydC1lbmQtcmFkaXVzOjB9LmhpZ2hsaWdodC1OODRYU2NHbi5zaXplLXhzbWFsbC1OODRYU2NHbi5uby1jb3JuZXItYm90dG9tLXJpZ2h0LU44NFhTY0due2JvcmRlci1lbmQtZW5kLXJhZGl1czowfS5oaWdobGlnaHQtTjg0WFNjR24uc2l6ZS14c21hbGwtTjg0WFNjR24ubm8tY29ybmVyLWJvdHRvbS1sZWZ0LU44NFhTY0due2JvcmRlci1lbmQtc3RhcnQtcmFkaXVzOjB9LmhpZ2hsaWdodC1OODRYU2NHbi5zaXplLXNtYWxsLU44NFhTY0due2JvcmRlci1yYWRpdXM6NnB4fS5oaWdobGlnaHQtTjg0WFNjR24uc2l6ZS1zbWFsbC1OODRYU2NHbi5uby1jb3JuZXItdG9wLWxlZnQtTjg0WFNjR257Ym9yZGVyLXN0YXJ0LXN0YXJ0LXJhZGl1czowfS5oaWdobGlnaHQtTjg0WFNjR24uc2l6ZS1zbWFsbC1OODRYU2NHbi5uby1jb3JuZXItdG9wLXJpZ2h0LU44NFhTY0due2JvcmRlci1zdGFydC1lbmQtcmFkaXVzOjB9LmhpZ2hsaWdodC1OODRYU2NHbi5zaXplLXNtYWxsLU44NFhTY0duLm5vLWNvcm5lci1ib3R0b20tcmlnaHQtTjg0WFNjR257Ym9yZGVyLWVuZC1lbmQtcmFkaXVzOjB9LmhpZ2hsaWdodC1OODRYU2NHbi5zaXplLXNtYWxsLU44NFhTY0duLm5vLWNvcm5lci1ib3R0b20tbGVmdC1OODRYU2NHbntib3JkZXItZW5kLXN0YXJ0LXJhZGl1czowfS5oaWdobGlnaHQtTjg0WFNjR24uc2l6ZS1tZWRpdW0tTjg0WFNjR257Ym9yZGVyLXJhZGl1czo4cHh9LmhpZ2hsaWdodC1OODRYU2NHbi5zaXplLW1lZGl1bS1OODRYU2NHbi5uby1jb3JuZXItdG9wLWxlZnQtTjg0WFNjR257Ym9yZGVyLXN0YXJ0LXN0YXJ0LXJhZGl1czowfS5oaWdobGlnaHQtTjg0WFNjR24uc2l6ZS1tZWRpdW0tTjg0WFNjR24ubm8tY29ybmVyLXRvcC1yaWdodC1OODRYU2NHbntib3JkZXItc3RhcnQtZW5kLXJhZGl1czowfS5oaWdobGlnaHQtTjg0WFNjR24uc2l6ZS1tZWRpdW0tTjg0WFNjR24ubm8tY29ybmVyLWJvdHRvbS1yaWdodC1OODRYU2NHbntib3JkZXItZW5kLWVuZC1yYWRpdXM6MH0uaGlnaGxpZ2h0LU44NFhTY0duLnNpemUtbWVkaXVtLU44NFhTY0duLm5vLWNvcm5lci1ib3R0b20tbGVmdC1OODRYU2NHbntib3JkZXItZW5kLXN0YXJ0LXJhZGl1czowfS5oaWdobGlnaHQtTjg0WFNjR24uc2l6ZS1sYXJnZS1OODRYU2NHbntib3JkZXItcmFkaXVzOjhweH0uaGlnaGxpZ2h0LU44NFhTY0duLnNpemUtbGFyZ2UtTjg0WFNjR24ubm8tY29ybmVyLXRvcC1sZWZ0LU44NFhTY0due2JvcmRlci1zdGFydC1zdGFydC1yYWRpdXM6MH0uaGlnaGxpZ2h0LU44NFhTY0duLnNpemUtbGFyZ2UtTjg0WFNjR24ubm8tY29ybmVyLXRvcC1yaWdodC1OODRYU2NHbntib3JkZXItc3RhcnQtZW5kLXJhZGl1czowfS5oaWdobGlnaHQtTjg0WFNjR24uc2l6ZS1sYXJnZS1OODRYU2NHbi5uby1jb3JuZXItYm90dG9tLXJpZ2h0LU44NFhTY0due2JvcmRlci1lbmQtZW5kLXJhZGl1czowfS5oaWdobGlnaHQtTjg0WFNjR24uc2l6ZS1sYXJnZS1OODRYU2NHbi5uby1jb3JuZXItYm90dG9tLWxlZnQtTjg0WFNjR257Ym9yZGVyLWVuZC1zdGFydC1yYWRpdXM6MH0="}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/36986.ce77cbd66e605250d4ff.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.823Z","timestamp":1785148034823,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/36986.ce77cbd66e605250d4ff.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\ncontent-type: text/css; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding, Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\netag: W/\"69f98b71-3d8\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Tue, 05 May 2026 06:17:21 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.51\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 05/05/2026 10:18:38\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: fe39b2b5ae4043344d5955da8b09f9dc\r\ncdn-cache: HIT\r\ncontent-encoding: br\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":984,"size_decoded":1129,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with very long lines (984), with no line terminators","md5":"1e52231bbfdb814df669595ca93fb424","sha1":"945b53c90360396a775d96f4e9e30f2da59f389d","sha256":"7b9d9d092a689107e7cdc9c10ab49642eaafd3b6c37d1326026ab75f0366f750","sha512":"4c08b54881bf090c290768a2fd9872bd0cf160c0cd891511e38fad390f8b757d37c87aa14a727e99729eb814e790eeb30221f6a49f501a599371fe5ede1410a0","ssdeep":"","tlshash":"0011044cb442653aacda276d3e18831e3d48ec57de801ee4b356982d88e1fb37e30102","first_seen":"2025-07-12T14:31:51.898289Z","last_seen":"2026-07-27T10:28:13.97039Z","times_seen":134,"resource_available":false,"data":"W2RhdGEtdGhlbWU9ZGFya10sW2RhdGEtdGhlbWU9bGlnaHRdey0tXzAtcWlRSzp2YXIoLS1jb2xvci1yaXBlLXJlZC01MDApOy0tXzEtcWlRSzp2YXIoLS1jb2xvci1yaXBlLXJlZC00MDApOy0tXzItcWlRSzp2YXIoLS1jb2xvci10di1ibHVlLTQwMCk7LS1fMy1xaVFLOnZhcigtLWNvbG9yLXR2LWJsdWUtNTAwKX0uY29udGFpbmVyLXN0cm9uZy1zZWxsLVRhdF82Wm1BIC5zcGVlZG9tZXRlclRleHQtVGF0XzZabUEsLmNvbnRhaW5lci1zdHJvbmctc2VsbC1UYXRfNlptQSAuc3Ryb25nLXNlbGwtVGF0XzZabUF7Y29sb3I6dmFyKC0tXzAtcWlRSyl9LmNvbnRhaW5lci1zZWxsLVRhdF82Wm1BIC5zZWxsLVRhdF82Wm1BLC5jb250YWluZXItc2VsbC1UYXRfNlptQSAuc3BlZWRvbWV0ZXJUZXh0LVRhdF82Wm1Be2NvbG9yOnZhcigtLV8xLXFpUUspfS5jb250YWluZXItbmV1dHJhbC1UYXRfNlptQSAubmV1dHJhbC1UYXRfNlptQSwuY29udGFpbmVyLW5ldXRyYWwtVGF0XzZabUEgLnNwZWVkb21ldGVyVGV4dC1UYXRfNlptQXtjb2xvcjp2YXIoLS1jb2xvci10ZXh0LXByaW1hcnkpfS5jb250YWluZXItYnV5LVRhdF82Wm1BIC5idXktVGF0XzZabUEsLmNvbnRhaW5lci1idXktVGF0XzZabUEgLnNwZWVkb21ldGVyVGV4dC1UYXRfNlptQXtjb2xvcjp2YXIoLS1fMi1xaVFLKX0uY29udGFpbmVyLXN0cm9uZy1idXktVGF0XzZabUEgLnNwZWVkb21ldGVyVGV4dC1UYXRfNlptQSwuY29udGFpbmVyLXN0cm9uZy1idXktVGF0XzZabUEgLnN0cm9uZy1idXktVGF0XzZabUF7Y29sb3I6dmFyKC0tXzMtcWlRSyl9LnNwZWVkb21ldGVyVGV4dERlZmF1bHQtVGF0XzZabUF7Y29sb3I6dmFyKC0tY29sb3ItdGV4dC1wcmltYXJ5KX0uc2NhbGUtVGF0XzZabUF7YmFja2dyb3VuZDpjb25pYy1ncmFkaWVudChmcm9tIC05MGRlZyBhdCA1MCUgNTAlLCMxZTUzZTUgLTE4MGRlZywjZjIzNjQ1IDBkZWcsIzFlNTNlNSAxODBkZWcsI2YyMzY0NSAxdHVybil9"}},"time_used":4,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":4,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/en.40528.289cbeb8632c78beb058.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.342Z","timestamp":1785148034342,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/en.40528.289cbeb8632c78beb058.js HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding, Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\netag: W/\"69f98b70-271\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Tue, 05 May 2026 06:17:20 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.51\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 05/05/2026 10:16:50\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 40be286a698efa77341381bfb20da2af\r\ncdn-cache: HIT\r\ncontent-encoding: br\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":625,"size_decoded":1094,"mime_type":"application/javascript; charset=utf-8","magic":"ASCII text, with very long lines (625), with no line terminators","md5":"9cc57475f4bc0e83551677f01ccb8326","sha1":"7788d2091a21e10ce4b20002d0875d298f78abdf","sha256":"aa7b0b72c05e6c30b63168c1ba891445e1f0b8805b81cb23935b9223f1388695","sha512":"441f0b713c7694da019960f7436a51911c9fed2b5b0175690d67e8ed7cee4263fa6e48b0b551d23792bf6a38cae5f76b7a06562338a3c793337c2d3eaaa09765","ssdeep":"","tlshash":"34f0a233c10959303f15639473c566518169714fe39280575123b1e053c3ca8e4ceedd","first_seen":"2026-05-05T12:17:23.734679Z","last_seen":"2026-07-27T12:47:44.702755Z","times_seen":378,"resource_available":true,"data":"KHNlbGYud2VicGFja0NodW5rdHJhZGluZ3ZpZXc9c2VsZi53ZWJwYWNrQ2h1bmt0cmFkaW5ndmlld3x8W10pLnB1c2goW1s0MDUyOF0sezE0MzQxMihlKXtlLmV4cG9ydHM9WyJOb3QgYXBwbGljYWJsZSJdfSw0ODc3NjMoZSl7ZS5leHBvcnRzPVsiVHlwZSB0aGUgaW50ZXJ2YWwgbnVtYmVyIGZvciBtaW51dGUgY2hhcnRzIChpLmUuIDUgaWYgaXQgaXMgZ29pbmcgdG8gYmUgYSBmaXZlIG1pbnV0ZSBjaGFydCkuIE9yIG51bWJlciBwbHVzIGxldHRlciBmb3IgSCAoSG91cmx5KSwgRCAoRGFpbHkpLCBXIChXZWVrbHkpLCBNIChNb250aGx5KSBpbnRlcnZhbHMgKGkuZS4gRCBvciAySCkiXX0sMjEyMDUoZSl7ZS5leHBvcnRzPVsiVHlwZSB0aGUgaW50ZXJ2YWwgbnVtYmVyIGZvciBtaW51dGUgY2hhcnRzIChpLmUuIDUgaWYgaXQncyBnb2luZyB0byBiZSBhIGZpdmUgbWludXRlIGNoYXJ0KS4gT3IgbnVtYmVyIHBsdXMgbGV0dGVyIGZvciBvdGhlciBpbnRlcnZhbHM6IFMgZm9yIDEgc2Vjb25kIGNoYXJ0ICgxNVMgZm9yIDE1IHNlY29uZCBjaGFydCwgZXRjLiksIEggKEhvdXJseSksIEQgKERhaWx5KSwgVyAoV2Vla2x5KSwgTSAoTW9udGhseSkgaW50ZXJ2YWxzIChpLmUuIEQgb3IgMkgpIl19fV0pOw=="}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/74381.fd6b90153c6c16b2bc9a.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.762Z","timestamp":1785148034762,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/74381.fd6b90153c6c16b2bc9a.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\ncontent-type: text/css; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a61b1ff-624\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Thu, 23 Jul 2026 06:17:35 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/23/2026 10:21:28\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 5300cda647fb62075c5223d5d7850e4f\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":1572,"size_decoded":1382,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with very long lines (1572), with no line terminators","md5":"f99eaf632161d1025f40a4caf96da8e8","sha1":"b52e0040302af50fb19dc8e1c8d790505bebf9d7","sha256":"97dee1b87f6a7bbd75303b6c2436001c2ba1309d6ffd2fda45ab5df87ef9a018","sha512":"ce42e9c500ba65b475a3dba95b7f99d0c7df66ad05c095e47033f68845e1a558e0f1716d4603a29c87432e55be662aa9048d1296dd81fe1ee547967be07f6aeb","ssdeep":"","tlshash":"b5317166a974e0257c2752fd3745f55962029c11b83ba39ff966e704c7c1a7b2d0d600","first_seen":"2026-07-27T03:26:08.753324Z","last_seen":"2026-07-27T10:28:13.707385Z","times_seen":7,"resource_available":false,"data":"W2RhdGEtdGhlbWU9bGlnaHRdey0tXzAtZUF6LTp2YXIoLS1jb2xvci1jb2xkLWdyYXktODAwKX1bZGF0YS10aGVtZT1kYXJrXXstLV8wLWVBei06dmFyKC0tY29sb3ItY29sZC1ncmF5LTc1MCl9LmVycm9ycy1Sc1RMX0YzS3tiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLV8wLWVBei0pO2JvcmRlci1yYWRpdXM6M3B4O2JveC1zaXppbmc6Ym9yZGVyLWJveDtjb2xvcjp2YXIoLS1jb2xvci13aGl0ZSk7b3BhY2l0eTowO3BhZGRpbmc6MTBweCAxNXB4O3BvaW50ZXItZXZlbnRzOm5vbmU7cG9zaXRpb246YWJzb2x1dGU7dGV4dC1hbGlnbjpjZW50ZXI7ei1pbmRleDoyfS5lcnJvcnMtUnNUTF9GM0s6ZW1wdHl7ZGlzcGxheTpub25lfS5lcnJvcnMtUnNUTF9GM0suc2hvdy1Sc1RMX0YzS3tvcGFjaXR5OjF9LmVycm9ycy1Sc1RMX0YzSyAuZXJyb3ItUnNUTF9GM0t7Zm9udC1zaXplOjEycHg7bGluZS1oZWlnaHQ6MS40O21hcmdpbi10b3A6MTBweDt0ZXh0LXRyYW5zZm9ybTpub25lO3dvcmQtYnJlYWs6YnJlYWstd29yZH0uZXJyb3JzLVJzVExfRjNLIC5lcnJvci1Sc1RMX0YzSzpmaXJzdC1jaGlsZHttYXJnaW4tdG9wOjB9LnZpc3VhbGx5LWhpZGRlbi1Sc1RMX0YzS3tib3JkZXI6MDtoZWlnaHQ6MXB4O21hcmdpbjotMXB4O3BhZGRpbmc6MDtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDoxcHg7Y2xpcDpyZWN0KDAgMCAwIDApO292ZXJmbG93OmhpZGRlbn0uZXJyb3ItaWNvbi1VaEtBb3VJZ3tkaXNwbGF5OmlubGluZS1mbGV4fS5lcnJvci1pY29uLVVoS0FvdUlnLmludGVudC1kYW5nZXItVWhLQW91SWd7Y29sb3I6dmFyKC0tY29sb3ItY29udHJvbC1pbnRlbnQtZGFuZ2VyKX0uZXJyb3ItaWNvbi1VaEtBb3VJZy5pbnRlbnQtd2FybmluZy1VaEtBb3VJZ3tjb2xvcjp2YXIoLS1jb2xvci1jb250cm9sLWludGVudC13YXJuaW5nKX0uc3RhdGljLW1lc3NhZ2VzLWNGNHZTOUo4e2ZsZXgtZmxvdzpjb2x1bW4gbm93cmFwOy0tdWktbGliLXR5cG9ncmFwaHktbGluZS1oZWlnaHQ6MTdweDtsaW5lLWhlaWdodDp2YXIoLS11aS1saWItdHlwb2dyYXBoeS1saW5lLWhlaWdodCk7LS11aS1saWItdHlwb2dyYXBoeS1mb250LXNpemU6MTJweDtmb250LXNpemU6dmFyKC0tdWktbGliLXR5cG9ncmFwaHktZm9udC1zaXplKTtmb250LXN0eWxlOm5vcm1hbDtmb250LXdlaWdodDo0MDB9LnN0YXRpYy1tZXNzYWdlcy1jRjR2UzlKOC5lcnJvcnMtY0Y0dlM5Sjh7Y29sb3I6dmFyKC0tY29sb3ItY29udHJvbC1pbnRlbnQtZGFuZ2VyKX0uc3RhdGljLW1lc3NhZ2VzLWNGNHZTOUo4Lndhcm5pbmdzLWNGNHZTOUo4e2NvbG9yOnZhcigtLWNvbG9yLWNvbnRyb2wtaW50ZW50LXdhcm5pbmcpfS5zdGF0aWMtbWVzc2FnZXMtY0Y0dlM5Sjguc3VjY2Vzcy1tZXNhZ2VzLWNGNHZTOUo4e2NvbG9yOnZhcigtLWNvbG9yLWNvbnRyb2wtaW50ZW50LXN1Y2Nlc3MpfS5zdGF0aWMtbWVzc2FnZXMtY0Y0dlM5SjguaW5wdXQtZGVzY3JpcHRpb24tY0Y0dlM5Sjh7Y29sb3I6dmFyKC0tY29sb3ItdGV4dC1zZWNvbmRhcnkpfS5zdGF0aWMtbWVzc2FnZXMtY0Y0dlM5SjggLm1lc3NhZ2UtY0Y0dlM5Sjh7bWFyZ2luOjB9"}},"time_used":5,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":5,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/lightweight-minichart-study-data-source.b08f2aa28bf4069a8f4c.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:15.388Z","timestamp":1785148035388,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/lightweight-minichart-study-data-source.b08f2aa28bf4069a8f4c.js HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:15 GMT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a61b1a8-42a3\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Thu, 23 Jul 2026 06:16:08 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/23/2026 10:21:30\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: eb97bdd39cf46d6be65c80dbd510e9d2\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":17059,"size_decoded":7243,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, Unicode text, UTF-8 text, with very long lines (3065)","md5":"589a4a272c03750c5c9e271c0d8d8291","sha1":"bf25be3d225156df83353c6a925a8d02f19b96c3","sha256":"fc37c616e40ee071b5fd544365a65830d9eccddfcd7b08b16a6a4fabccd9a84e","sha512":"62a033befa51909f5dfd5a65ae57dad2e77aa2a33ff65a11546ea70b0e726d4c20e722bcfa86ef09d661fced8370e156f0ddb0176ffbe7b533f011858be84fa3","ssdeep":"384:VHbBrSp3LKXyYYNANbm7k/mOWbEZeMfuY11GO4Jm62PKfyHu9WV:VHbB+J2XPYNAtm7gmOWIZeWuYvJEm7PN","tlshash":"2772b791b1a5b42e17c51094147b4213c72c5c973686849cf5ec2ceda82c79aa3bffbe","first_seen":"2026-07-27T03:26:09.048435Z","last_seen":"2026-07-27T10:28:13.955209Z","times_seen":6,"resource_available":true,"data":"InVzZSBzdHJpY3QiOyhzZWxmLndlYnBhY2tDaHVua3RyYWRpbmd2aWV3PXNlbGYud2VicGFja0NodW5rdHJhZGluZ3ZpZXd8fFtdKS5wdXNoKFtbODcxOTZdLHsyMjM4NjkodCxlLHMpe2Z1bmN0aW9uIGkodCl7cmV0dXJuL15ccypzdHJhdGVneVxzKlwoL20udGVzdCh0KX1zLmQoZSx7aXNTdHJhdGVneTooKT0+aX0pfSw0MDM2KHQsZSxzKXtmdW5jdGlvbiBpKHQpe2NvbnN0IGU9e307aWYoLTE9PT10LmluZGV4T2YoIkAiKSllLnNob3J0SWQ9dCxlLnBhY2thZ2VJZD0idHYtYmFzaWNzdHVkaWVzIixlLmlkPXQrIkAiK2UucGFja2FnZUlkLGUudmVyc2lvbj0xO2Vsc2V7Y29uc3Qgcz10LnNwbGl0KCJAIik7ZS5zaG9ydElkPXNbMF07Y29uc3QgaT1zWzFdLnNwbGl0KCItIik7aWYoMz09PWkubGVuZ3RoKWUucGFja2FnZUlkPWkuc2xpY2UoMCwyKS5qb2luKCItIiksZS5pZD1lLnNob3J0SWQrIkAiK2UucGFja2FnZUlkLGUudmVyc2lvbj1wYXJzZUludChpWzJdKTtlbHNlIGlmKDE9PT1pLmxlbmd0aCYmImRlY2lzaW9uYmFyIj09PWlbMF0pZS5wYWNrYWdlSWQ9Imxlcy0iK2lbMF0sZS5pZD1lLnNob3J0SWQrIkAiK2UucGFja2FnZUlkLGUudmVyc2lvbj0xO2Vsc2V7aWYoMSE9PWkubGVuZ3RoKXRocm93IG5ldyBFcnJvcigidW5leHBlY3RlZCBzdHVkeSBpZDoiK3QpO2UucGFja2FnZUlkPSJ0di0iK2lbMF0sZS5pZD1lLnNob3J0SWQrIkAiK2UucGFja2FnZUlkLGUudmVyc2lvbj0xfX1pZihlLmZ1bGxJZD1lLmlkKyItIitlLnZlcnNpb24sInR2LXNjcmlwdGluZyI9PT1lLnBhY2thZ2VJZCl7Y29uc3QgdD1lLnNob3J0SWQ7aWYoMD09PXQuaW5kZXhPZigiU2NyaXB0JCIpfHwwPT09dC5pbmRleE9mKCJTdHJhdGVneVNjcmlwdCQiKSl7Y29uc3Qgcz10LmluZGV4T2YoIl8iKTtlLnByb2R1Y3RJZD1zPj0wP3Quc3Vic3RyaW5nKDAscyk6ZS5wYWNrYWdlSWR9ZWxzZSBlLnByb2R1Y3RJZD1lLnBhY2thZ2VJZH1lbHNlIGUucHJvZHVjdElkPWUucGFja2FnZUlkO3JldHVybiBlfXMuZChlLHtwYXJzZUlkU3RyaW5nOigpPT5pfSl9LDE2NDE1Nih0LGUscyl7dmFyIGk7cy5kKGUse1BpbmVLaW5kOigpPT5pfSksZnVuY3Rpb24odCl7dC5TdHVkeT0ic3R1ZHkiLHQuU3RyYXRlZ3k9InN0cmF0ZWd5Iix0LkxpYnJhcnk9ImxpYnJhcnkifShpfHwoaT17fSkpfSwxOTg1NDEodCxlLHMpe3MucihlKSxzLmQoZSx7U3R1ZHlEYXRhU291cmNlOigpPT55fSk7dmFyIGk9cygxMzg2MzgpLG49cyg5NDgzODApLHI9cygyMjEwNjEpLGE9cyg1NTA5MDQpLG89cyg4NTcxNTEpLHU9cyg3OTE0MjcpLGQ9cygxNDIzODkpLGM9cyg5NjU3OTUpLGw9cyg1MDQ0MzEpO2NvbnN0IGg9KDAsci5nZXRMb2dnZXIpKCJDaGFydC5TdHVkeURhdGFTb3VyY2UiKTt2YXIgcDshZnVuY3Rpb24odCl7dFt0LklkbGU9MF09IklkbGUiLHRbdC5Bd2FpdGluZ0Nvbm5lY3Rpb249MV09IkF3YWl0aW5nQ29ubmVjdGlvbiIsdFt0LkF3YWl0aW5nUGFyZW50PTJdPSJBd2FpdGluZ1BhcmVudCIsdFt0LkF3YWl0aW5nRmlyc3REYXRhVXBkYXRlPTNdPSJBd2FpdGluZ0ZpcnN0RGF0YVVwZGF0ZSIsdFt0LkFjdGl2ZT00XT0iQWN0aXZlIn0ocHx8KHA9e30pKTtjbGFzcyB5e2NvbnN0cnVjdG9yKHQsZSxzLGkscj0hMSl7dGhpcy5faW5wdXRzPW51bGwsdGhpcy5fc3RhdHVzPXAuSWRsZSx0aGlzLl9zdHVkeUlkPW51bGwsdGhpcy5fdHVybmFyb3VuZENvdW50ZXI9MSx0aGlzLl9zdHVkeVN0YXR1cz17dHlwZTpkLlN0dWR5U3RhdHVzVHlwZS5VbmRlZmluZWR9LHRoaXMuX3N0dWR5U3RhdHVzQ2hhbmdlZD1uZXcgbi5EZWxlZ2F0ZSx0aGlzLl9kYXRhQ2xlYXJlZD1uZXcgbi5EZWxlZ2F0ZSx0aGlzLl9kYXRhVXBkYXRlZD1uZXcgbi5EZWxlZ2F0ZSx0aGlzLl9ib3VuZE9uR2F0ZXdheUlzQ29ubmVjdGVkQ2hhbmdlZD10aGlzLl9vbkdhdGV3YXlJc0Nvbm5lY3RlZENoYW5nZWQuYmluZCh0aGlzKSx0aGlzLl9vbmdvaW5nRGF0YVVwZGF0ZT1Qcm9taXNlLnJlc29sdmUoKSx0aGlzLl9nYXRld2F5PXQsdGhpcy5fbWV0YUluZm89aSx0aGlzLl9mb3JjZVVzZUV4Y2xhbWF0aW9uTWFyaz1yLHRoaXMuX3Nlcmllc1NvdXJjZT1lLHRoaXMuX3R1cm5hcm91bmRQcmVmaXg9cyx0aGlzLl9jcmVhdGVQbG90cygpLHRoaXMuX2dhdGV3YXkuaXNDb25uZWN0ZWQoKS5zdWJzY3JpYmUodGhpcy5fYm91bmRPbkdhdGV3YXlJc0Nvbm5lY3RlZENoYW5nZWQpfWRlc3Ryb3koKXt0aGlzLnN0b3AoKSx0aGlzLl9nYXRld2F5LmlzQ29ubmVjdGVkKCkudW5zdWJzY3JpYmUodGhpcy5fYm91bmRPbkdhdGV3YXlJc0Nvbm5lY3RlZENoYW5nZWQpLHRoaXMuX3Nlcmllc1NvdXJjZS5kYXRhRXZlbnRzKCkuY3JlYXRlZCgpLnVuc3Vic2NyaWJlQWxsKHRoaXMpfW1ldGFJbmZvKCl7cmV0dXJuIHRoaXMuX21ldGFJbmZvfWlucHV0cygpe3JldHVybiB0aGlzLl9pbnB1dHN9c2V0SW5wdXRzKHQpe3RoaXMuX2lucHV0cz10LG51bGwhPT10aGlzLl9zdHVkeUlkJiYodGhpcy5fdHVybmFyb3VuZENvdW50ZXIrKyx0aGlzLl9vblN0dWR5U3RhdHVzQ2hhbmdlZFRvKHt0eXBlOmQuU3R1ZHlTdGF0dXNUeXBlLlVuZGVmaW5lZH0pLHRoaXMuX2dhdGV3YXkubW9kaWZ5U3R1ZHkodGhpcy5fc3R1ZHlJZCx0aGlzLl90dXJuYXJvdW5kKCksdCx0aGlzLl9vbk1lc3NhZ2UuYmluZCh0aGlzKSksdGhpcy5fc3RhdHVzPT09cC5BY3RpdmUmJnRoaXMuX2NoYW5nZVN0YXR1c1RvKHAuQXdhaXRpbmdGaXJzdERhdGFVcGRhdGUpKX1pc1N0YXJ0ZWQoKXtyZXR1cm4gdGhpcy5fc3RhdHVzIT09cC5JZGxlfWlzQWN0aXZlKCl7cmV0dXJuIHRoaXMuX3N0YXR1cz09PXAuQWN0aXZlfXN0YXJ0KCl7dGhpcy5pc1N0YXJ0ZWQoKT9oLmxvZ05vcm1hbCgic3RhcnQ6IGRhdGEgc291cmNlIGlzIGFscmVhZHkgc3RhcnRlZCwgbm90aGluZyB0byBkbyIpOigoMCxpLmFzc2VydCkobnVsbCE9PXRoaXMuX2lucHV0cywiSW5wdXRzIHNob3VsZCBiZSBkZWZpbmVkIHdoZW4gc3RhcnRpbmcgYSBzdHVkeSBkYXRhIHNvdXJjZSIpLAp0aGlzLl9nYXRld2F5LmlzQ29ubmVjdGVkKCkudmFsdWUoKT90aGlzLl9jcmVhdGVTdHVkeSgpOnRoaXMuX2NoYW5nZVN0YXR1c1RvKHAuQXdhaXRpbmdDb25uZWN0aW9uKSl9c3RvcCgpe3RoaXMuaXNTdGFydGVkKCk/KG51bGwhPT10aGlzLl9zdHVkeUlkJiYodGhpcy5fZ2F0ZXdheS5pc0Nvbm5lY3RlZCgpLnZhbHVlKCkmJnRoaXMuX2dhdGV3YXkucmVtb3ZlU3R1ZHkodGhpcy5fc3R1ZHlJZCksdGhpcy5fc3R1ZHlJZD1udWxsLHRoaXMuX29uU3R1ZHlTdGF0dXNDaGFuZ2VkVG8oe3R5cGU6ZC5TdHVkeVN0YXR1c1R5cGUuVW5kZWZpbmVkfSkpLHRoaXMuX2NoYW5nZVN0YXR1c1RvKHAuSWRsZSkpOmgubG9nTm9ybWFsKCJzdG9wOiBkYXRhIHNvdXJjZSBpcyBhbHJlYWR5IHN0b3BwZWQsIG5vdGhpbmcgdG8gZG8iKX1zdHVkeUlkKCl7cmV0dXJuIHRoaXMuX3N0dWR5SWR9c3R1ZHlTdGF0dXMoKXtyZXR1cm4gdGhpcy5fc3R1ZHlTdGF0dXN9c3R1ZHlTdGF0dXNDaGFuZ2VkKCl7cmV0dXJuIHRoaXMuX3N0dWR5U3RhdHVzQ2hhbmdlZH1wbG90cygpe3JldHVybiB0aGlzLl9wbG90c31jbGVhckRhdGEoKXt0aGlzLl9wbG90cy5jbGVhcigpLHRoaXMuX2RhdGFDbGVhcmVkLmZpcmUoKX1kYXRhQ2xlYXJlZCgpe3JldHVybiB0aGlzLl9kYXRhQ2xlYXJlZH1kYXRhVXBkYXRlZCgpe3JldHVybiB0aGlzLl9kYXRhVXBkYXRlZH1tb3ZlRGF0YSh0KXt0aGlzLl9vbmdvaW5nRGF0YVVwZGF0ZT10aGlzLl9vbmdvaW5nRGF0YVVwZGF0ZS50aGVuKCgoKT0+e3RoaXMuX3Bsb3RzLm1vdmUodCl9KSl9cGVuZGluZ1VwZGF0ZXNSZWFkeSgpe3JldHVybiB0aGlzLl9vbmdvaW5nRGF0YVVwZGF0ZX1zdGF0aWMgc2V0Tm9uU2VyaWVzRGF0YVVucGFja2VyKHQpe3kuX25vblNlcmllc0RhdGFVbnBhY2tlcj10fV9jcmVhdGVTdHVkeUVycm9yKHQpe3JldHVybnt0eXBlOmQuU3R1ZHlTdGF0dXNUeXBlLkVycm9yLGVycm9yRGVzY3JpcHRpb246dGhpcy5fZ2V0U3R1ZHlFcnJvckRlc2NyaXB0aW9uKHQpfX1fZ2V0U3R1ZHlFcnJvckRlc2NyaXB0aW9uKHQpe3JldHVybiJzdHJpbmciPT10eXBlb2YgdD97ZXJyb3I6dC5zcGxpdCgiOiIsMilbMF19OnR9X2NyZWF0ZVBsb3RzKCl7dGhpcy5fcGxvdHM9bmV3IG8uUGxvdExpc3QoKDAsbC5zdHVkeVBsb3RGdW5jdGlvbk1hcCkodGhpcy5tZXRhSW5mbygpKSxsLnN0dWR5RW1wdHlQbG90VmFsdWVQcmVkaWNhdGUpfV9jaGFuZ2VTdGF0dXNUbyh0KXsoMCxpLmFzc2VydCkodGhpcy5fc3RhdHVzIT09dCwiU291cmNlIGFuZCBkZXN0aW5hdGlvbiBzdGF0dXMgc2hvdWxkIGJlIGRpc3RpbmN0IiksaC5sb2dOb3JtYWwoYFN0YXR1cyBjaGFuZ2VkIGZyb20gJHtwW3RoaXMuX3N0YXR1c119IHRvICR7cFt0XX1gKSx0aGlzLl9zdGF0dXM9dH1fY3JlYXRlU3R1ZHkoKXtjb25zdCB0PXRoaXMuX3Nlcmllc1NvdXJjZS5pbnN0YW5jZUlkKCk7bnVsbCE9PXQ/dGhpcy5fY3JlYXRlU3R1ZHlVc2luZ1BhcmVudElkKHQpOih0aGlzLl9jaGFuZ2VTdGF0dXNUbyhwLkF3YWl0aW5nUGFyZW50KSx0aGlzLl9zZXJpZXNTb3VyY2UuZGF0YUV2ZW50cygpLmNyZWF0ZWQoKS5zdWJzY3JpYmUodGhpcyx0aGlzLl9vblNlcmllc0NyZWF0ZWQsITApKX1fY3JlYXRlU3R1ZHlVc2luZ1BhcmVudElkKHQpeygwLGkuYXNzZXJ0KSh0aGlzLl9zdGF0dXMhPT1wLkFjdGl2ZSwnU3RhdHVzIHNob3VsZCBub3QgYmUgIkFjdGl2ZSIgd2hlbiBjcmVhdGluZyBhIHN0dWR5JyksKDAsaS5hc3NlcnQpKHRoaXMuX3N0dWR5U3RhdHVzLnR5cGU9PT1kLlN0dWR5U3RhdHVzVHlwZS5VbmRlZmluZWQsJ1N0dWR5IHN0YXR1cyBzaG91bGQgYmUgIlVuZGVmaW5lZCIgd2hlbiBjcmVhdGluZyBhIHN0dWR5JyksKDAsaS5hc3NlcnQpKG51bGw9PT10aGlzLl9zdHVkeUlkLCJTdHVkeSBpZCBzaG91bGQgYmUgZW1wdHkgd2hlbiBjcmVhdGluZyBhIHN0dWR5IiksdGhpcy5fc3R1ZHlJZD0oMCxjLm1ha2VOZXh0U3R1ZHlJZCkoKSx0aGlzLl9nYXRld2F5LmNyZWF0ZVN0dWR5KHRoaXMuX3N0dWR5SWQsdGhpcy5fdHVybmFyb3VuZCgpLHQsdS5TdHVkeU1ldGFJbmZvLmdldFN0dWR5SWRXaXRoTGF0ZXN0VmVyc2lvbih0aGlzLm1ldGFJbmZvKCksdGhpcy5fZm9yY2VVc2VFeGNsYW1hdGlvbk1hcmspLCgwLGkuZW5zdXJlTm90TnVsbCkodGhpcy5faW5wdXRzKSx0aGlzLl9vbk1lc3NhZ2UuYmluZCh0aGlzKSx7aWQ6dGhpcy5fbWV0YUluZm8uaWR9KSx0aGlzLl9jaGFuZ2VTdGF0dXNUbyhwLkF3YWl0aW5nRmlyc3REYXRhVXBkYXRlKX1fb25HYXRld2F5SXNDb25uZWN0ZWRDaGFuZ2VkKHQpe3Q/dGhpcy5fb25HYXRld2F5Q29ubmVjdGVkKCk6dGhpcy5fb25HYXRld2F5RGlzY29ubmVjdGVkKCl9X29uR2F0ZXdheUNvbm5lY3RlZCgpe3RoaXMuX3N0YXR1cz09PXAuQXdhaXRpbmdDb25uZWN0aW9uJiZ0aGlzLl9jcmVhdGVTdHVkeSgpfV9vbkdhdGV3YXlEaXNjb25uZWN0ZWQoKXt0aGlzLl9zdGF0dXMhPT1wLklkbGUmJnRoaXMuX3N0YXR1cyE9PXAuQXdhaXRpbmdDb25uZWN0aW9uJiYodGhpcy5fc3R1ZHlJZD1udWxsLHRoaXMuX2NoYW5nZVN0YXR1c1RvKHAuQXdhaXRpbmdDb25uZWN0aW9uKSx0aGlzLl9zdHVkeVN0YXR1cy50eXBlIT09ZC5TdHVkeVN0YXR1c1R5cGUuVW5kZWZpbmVkJiZ0aGlzLl9vblN0dWR5U3RhdHVzQ2hhbmdlZFRvKHt0eXBlOmQuU3R1ZHlTdGF0dXNUeXBlLlVuZGVmaW5lZH0pKSx0aGlzLl90dXJuYXJvdW5kQ291bnRlcj0xfV9vblNlcmllc0NyZWF0ZWQoKXt0aGlzLl9zdGF0dXM9PT1wLkF3YWl0aW5nUGFyZW50JiZ0aGlzLl9jcmVhdGVTdHVkeVVzaW5nUGFyZW50SWQoKDAsaS5lbnN1cmUpKHRoaXMuX3Nlcmllc1NvdXJjZS5pbnN0YW5jZUlkKCkpKX1fb25TdHVkeVN0YXR1c0NoYW5nZWRUbyh0KXtjb25zdCBlPXRoaXMuX3N0dWR5U3RhdHVzO3RoaXMuX3N0dWR5U3RhdHVzPXQsaC5sb2dOb3JtYWwoYFN0dWR5IHN0YXR1cyB0eXBlIGNoYW5nZWQgZnJvbSAke2QuU3R1ZHlTdGF0dXNUeXBlW2UudHlwZV19IHRvICR7ZC5TdHVkeVN0YXR1c1R5cGVbdC50eXBlXX1gKSwKdGhpcy5fc3R1ZHlTdGF0dXNDaGFuZ2VkLmZpcmUoZSx0KX1fb25NZXNzYWdlKHQpe2lmKCJkYXRhX3VwZGF0ZSI9PT10Lm1ldGhvZCl7Y29uc3R7Y3VzdG9tSWQ6ZSx0dXJuYXJvdW5kOnMscGxvdHM6bixub25zZXJpZXM6cn09dC5wYXJhbXM7ZT09PXRoaXMuX3N0dWR5SWQmJnRoaXMuX2NoZWNrVHVybmFyb3VuZChzKSYmdGhpcy5fb25EYXRhVXBkYXRlKG4sKDAsaS5lbnN1cmVEZWZpbmVkKShyKSl9ZWxzZSBpZigic3R1ZHlfbG9hZGluZyI9PT10Lm1ldGhvZCl7Y29uc3RbZSxzXT10LnBhcmFtcztlPT09dGhpcy5fc3R1ZHlJZCYmdGhpcy5fY2hlY2tUdXJuYXJvdW5kKHMpJiZ0aGlzLl9vblN0dWR5TG9hZGluZyh0LnRpbWUpfWVsc2UgaWYoInN0dWR5X2NvbXBsZXRlZCI9PT10Lm1ldGhvZCl7Y29uc3RbZSxzXT10LnBhcmFtcztlPT09dGhpcy5fc3R1ZHlJZCYmdGhpcy5fY2hlY2tUdXJuYXJvdW5kKHMpJiZ0aGlzLl9vblN0dWR5Q29tcGxldGVkKHQudGltZSl9ZWxzZSBpZigic3R1ZHlfZXJyb3IiPT09dC5tZXRob2Qpe2NvbnN0W2UscyxpLG5dPXQucGFyYW1zO2U9PT10aGlzLl9zdHVkeUlkJiZ0aGlzLl9jaGVja1R1cm5hcm91bmQocykmJnRoaXMuX29uU3R1ZHlFcnJvcihpLG4sdC50aW1lKX1lbHNlImNsZWFyX2RhdGEiPT09dC5tZXRob2QmJnRoaXMuX2NoZWNrVHVybmFyb3VuZCh0LnBhcmFtcy50dXJuYXJvdW5kKSYmdGhpcy5jbGVhckRhdGEoKX1fb25EYXRhVXBkYXRlKHQsZSl7Y29uc3Qgcz15Ll9ub25TZXJpZXNEYXRhVW5wYWNrZXIoZS5kKTtyZXR1cm4gdGhpcy5fb25nb2luZ0RhdGFVcGRhdGU9dGhpcy5fb25nb2luZ0RhdGFVcGRhdGUudGhlbigoKCk9PnMpLCgoKT0+cykpLnRoZW4odGhpcy5fb25EYXRhVW5wYWNrZWQuYmluZCh0aGlzLHQsZS5pbmRleGVzKSksdGhpcy5fb25nb2luZ0RhdGFVcGRhdGV9X29uRGF0YVVucGFja2VkKHQsZSxzKXt0aGlzLl9zdGF0dXMhPT1wLklkbGUmJih0aGlzLl9zdGF0dXM9PT1wLkF3YWl0aW5nRmlyc3REYXRhVXBkYXRlJiYodGhpcy5fY2hhbmdlU3RhdHVzVG8ocC5BY3RpdmUpLHRoaXMuY2xlYXJEYXRhKCkpLHRoaXMuX21lcmdlUGxvdHModCksdGhpcy5fZGF0YVVwZGF0ZWQuZmlyZSh0LHMsZSkpfV9vblN0dWR5TG9hZGluZyh0KXt0aGlzLl9vblN0dWR5U3RhdHVzQ2hhbmdlZFRvKHt0eXBlOmQuU3R1ZHlTdGF0dXNUeXBlLkxvYWRpbmcsc3RhcnRUaW1lOkRhdGUubm93KCl9KX1fb25TdHVkeUVycm9yKHQsZSxzKXt0aGlzLmNsZWFyRGF0YSgpLHRoaXMuX29uU3R1ZHlTdGF0dXNDaGFuZ2VkVG8odGhpcy5fY3JlYXRlU3R1ZHlFcnJvcih0KSl9X29uU3R1ZHlDb21wbGV0ZWQodCl7dGhpcy5fb25TdHVkeVN0YXR1c0NoYW5nZWRUbyh7dHlwZTpkLlN0dWR5U3RhdHVzVHlwZS5Db21wbGV0ZWR9KX1fbWVyZ2VQbG90cyh0KXt0aGlzLl9wbG90cy5tZXJnZSh0KX1fdHVybmFyb3VuZCgpe3JldHVybmAke3RoaXMuX3R1cm5hcm91bmRQcmVmaXh9JHt0aGlzLl90dXJuYXJvdW5kQ291bnRlcn1gfV9jaGVja1R1cm5hcm91bmQodCl7Y29uc3QgZT10aGlzLl90dXJuYXJvdW5kKCk7cmV0dXJuIHQ9PT1lfHx0PT09dGhpcy5fc2VyaWVzU291cmNlLnR1cm5hcm91bmQoKXx8dD09PWAke3RoaXMuX3Nlcmllc1NvdXJjZS50dXJuYXJvdW5kKCl9XyR7ZX1gfX15Ll9ub25TZXJpZXNEYXRhVW5wYWNrZXI9YS51bnBhY2tOb25TZXJpZXNEYXRhfSw1MDQ0MzEodCxlLHMpe2Z1bmN0aW9uIGkodCl7Y29uc3QgZT1uZXcgTWFwO3JldHVybiB0LnBsb3RzLmZvckVhY2goKCh0LHMpPT57ZS5zZXQodC5pZCwodD0+dFtzKzFdKSl9KSksZX1mdW5jdGlvbiBuKHQsZSl7cmV0dXJuIG51bGw9PXRbZV19cy5kKGUse3N0dWR5RW1wdHlQbG90VmFsdWVQcmVkaWNhdGU6KCk9Pm4sc3R1ZHlQbG90RnVuY3Rpb25NYXA6KCk9Pml9KX0sNjI4MDYodCxlLHMpe2lmKHMuZChlLHtDaGFydENvbG9yRGVwZW5kZW50U3R1ZHlJbnB1dE5hbWVzOigpPT5nLElucHV0RGlzcGxheUZsYWdzOigpPT5yLFJhbmdlRGVwZW5kZW50U3R1ZHlJbnB1dE5hbWVzOigpPT5kLFN0dWR5U3RyYXRlZ3lJbnB1dEludGVybmFsSUQ6KCk9PmEsU3R1ZHlTdHJhdGVneVF0eVR5cGVJbnB1dFZhbHVlOigpPT5vLGFyZVN0dWR5SW5wdXRzRXF1YWw6KCk9PnksZWRpdGFibGVTdHVkeUlucHV0czooKT0+SSxnZXRJbnB1dFZhbHVlOigpPT5oLGlzRXh0ZW5kZWRJbnB1dDooKT0+Yyxpc0V4dGVuZGVkSW5wdXRCb29sOigpPT5DLGlzRXh0ZW5kZWRJbnB1dFNvdXJjZTooKT0+bCxpc1N0cmF0ZWd5SW5wdXQ6KCk9PncsaXNTdHVkeUlucHV0RGVwZW5kc09uQ2hhcnQ6KCk9PnYsaXNTdHVkeUlucHV0RGVwZW5kc09uQ2hhcnRDb2xvcnM6KCk9Pm0saXNTdHVkeUlucHV0T3B0aW9uc0luZm86KCk9PnAsaXNUaW1lT3JQcmljZU5vdEhpZGRlbklucHV0OigpPT5mLHJhbmdlRGVwZW5kZW50U3R1ZHlJbnB1dE5hbWVzTGlzdDooKT0+XyxyYW5nZURlcGVuZGVudFN0dWR5SW5wdXRzVG9UaW1lUmFuZ2U6KCk9PlMsdXNlckVkaXRhYmxlSW5wdXRGaWx0ZXI6KCk9PmJ9KSwvXig3OTc5NXw5NDM4OSkkLy50ZXN0KHMuaikpdmFyIGk9cyg4ODAxMTUpO3ZhciBuLHIsYSxvLHUsZDtmdW5jdGlvbiBjKHQpe3JldHVybigwLGkuZGVmYXVsdCkodCl9ZnVuY3Rpb24gbCh0KXtyZXR1cm4ic291cmNlIj09PXQudH1mdW5jdGlvbiBoKHQpe3JldHVybiBjKHQpP3Qudjp0fWZ1bmN0aW9uIHAodCl7cmV0dXJuWyJ0ZXh0IiwiaW50ZWdlciIsImZsb2F0IiwicHJpY2UiLCJzZXNzaW9uIiwicmVzb2x1dGlvbiJdLmluY2x1ZGVzKHQudHlwZSkmJnQuaGFzT3duUHJvcGVydHkoIm9wdGlvbnMiKX1mdW5jdGlvbiB5KHQsZSxzKXtmb3IoY29uc3QgaSBvZiB0KWlmKGVbaS5pZF0hPT1zW2kuaWRdKXJldHVybiExO3JldHVybiEwfSFmdW5jdGlvbih0KXt0LkludGVnZXI9ImludGVnZXIiLHQuRmxvYXQ9ImZsb2F0Iix0LlByaWNlPSJwcmljZSIsdC5Cb29sPSJib29sIix0LlRleHQ9InRleHQiLHQuU3ltYm9sPSJzeW1ib2wiLHQuU2Vzc2lvbj0ic2Vzc2lvbiIsdC5Tb3VyY2U9InNvdXJjZSIsdC5SZXNvbHV0aW9uPSJyZXNvbHV0aW9uIiwKdC5UaW1lPSJ0aW1lIix0LkJhclRpbWU9ImJhcl90aW1lIix0LkNvbG9yPSJjb2xvciIsdC5UZXh0YXJlYT0idGV4dF9hcmVhIn0obnx8KG49e30pKSxmdW5jdGlvbih0KXt0W3QuTm9uZT0wXT0iTm9uZSIsdFt0LkRhdGFXaW5kb3c9Ml09IkRhdGFXaW5kb3ciLHRbdC5TdGF0dXNMaW5lPThdPSJTdGF0dXNMaW5lIix0W3QuQWxsPTE1XT0iQWxsIn0ocnx8KHI9e30pKSxmdW5jdGlvbih0KXt0LkluaXRpYWxDYXBpdGFsPSJpbml0aWFsX2NhcGl0YWwiLHQuQ3VycmVuY3k9ImN1cnJlbmN5Iix0LkRlZmF1bHRRVFlWYWx1ZT0iZGVmYXVsdF9xdHlfdmFsdWUiLHQuRGVmYXVsdFFUWVR5cGU9ImRlZmF1bHRfcXR5X3R5cGUiLHQuUHlyYW1pZGluZz0icHlyYW1pZGluZyIsdC5Db21pc3Npb25WYWx1ZT0iY29tbWlzc2lvbl92YWx1ZSIsdC5Db21pc3Npb25UeXBlPSJjb21taXNzaW9uX3R5cGUiLHQuQmFja3Rlc3RGaWxsTGltaXRzQXNzdW10aW9uPSJiYWNrdGVzdF9maWxsX2xpbWl0c19hc3N1bXB0aW9uIix0LlNsaXBwYWdlPSJzbGlwcGFnZSIsdC5DYWxjT25PcmRlckZpbGxzPSJjYWxjX29uX29yZGVyX2ZpbGxzIix0LkNhbGNPbkV2ZXJ5VGljaz0iY2FsY19vbl9ldmVyeV90aWNrIix0LkNhbGNPbkhpc3RvcnlCYXI9ImNhbGNfb25fZXZlcnlfaGlzdG9yeV90aWNrIix0Lk1hcmdpbkxvbmc9Im1hcmdpbl9sb25nIix0Lk1hcmdpblNob3J0PSJtYXJnaW5fc2hvcnQiLHQuQmFyRGV0YWxpemF0aW9uPSJ1c2VfYmFyX21hZ25pZmllciIsdC5Qcm9jZXNzT3JkZXJzT25DbG9zZT0icHJvY2Vzc19vcmRlcnNfb25fY2xvc2UiLHQuRmlsbE9yZGVyc09uU3RhbmRhcmRPSExDPSJmaWxsX29yZGVyc19vbl9zdGFuZGFyZF9vaGxjIn0oYXx8KGE9e30pKSxmdW5jdGlvbih0KXt0LkZpeGVkPSJmaXhlZCIsdC5DYXNoUGVyT3JkZXI9ImNhc2hfcGVyX29yZGVyIix0LlBlcmNlbnRPZkVxdWl0eT0icGVyY2VudF9vZl9lcXVpdHkifShvfHwobz17fSkpLGZ1bmN0aW9uKHQpe3QuUGVyY2VudD0icGVyY2VudCIsdC5DYXNoUGVyQ29udHJhY3Q9ImNhc2hfcGVyX2NvbnRyYWN0Iix0LkNhc2hQZXJPcmRlcj0iY2FzaF9wZXJfb3JkZXIifSh1fHwodT17fSkpLGZ1bmN0aW9uKHQpe3QuRmlyc3RCYXI9ImZpcnN0X3Zpc2libGVfYmFyX3RpbWUiLHQuTGFzdEJhcj0ibGFzdF92aXNpYmxlX2Jhcl90aW1lIix0LlJlYWx0aW1lPSJzdWJzY3JpYmVSZWFsdGltZSJ9KGR8fChkPXt9KSk7Y29uc3QgXz1PYmplY3QudmFsdWVzKGQpO3ZhciBnO2Z1bmN0aW9uIFModCl7cmV0dXJue2Zyb206TWF0aC5yb3VuZCh0LmZpcnN0X3Zpc2libGVfYmFyX3RpbWUvMWUzKSx0bzpNYXRoLnJvdW5kKHQubGFzdF92aXNpYmxlX2Jhcl90aW1lLzFlMyl9fWZ1bmN0aW9uIGYodCl7cmV0dXJuKCJ0aW1lIj09PXQudHlwZXx8InByaWNlIj09PXQudHlwZSkmJiEwIT09dC5pc0hpZGRlbn1mdW5jdGlvbiBJKHQpe2NvbnN0IGU9dC5maWx0ZXIoZik7aWYoMD09PWUubGVuZ3RoKXJldHVybltdO2NvbnN0IHM9bmV3IE1hcCxpPVtdO2UuZm9yRWFjaCgodD0+e2NvbnN0e2dyb3VwOmUsaW5saW5lOm59PXQ7aWYodm9pZCAwPT09bilyZXR1cm4gdm9pZCBpLnB1c2godCk7Y29uc3Qgcj1uKyhlfHwiIik7aWYocy5oYXMocikpcy5nZXQocik/LnB1c2godCk7ZWxzZXtjb25zdCBlPVt0XTtzLnNldChyLGUpLGkucHVzaChlKX19KSk7Y29uc3Qgbj1bXTtmb3IobGV0IHQ9MDt0PGkubGVuZ3RoO3QrKyl7Y29uc3QgZT1pW3RdO0FycmF5LmlzQXJyYXkoZSk/Mj09PWUubGVuZ3RoJiZlWzBdLnR5cGUhPT1lWzFdLnR5cGU/bi5wdXNoKGUpOm4ucHVzaCguLi5lKTpuLnB1c2goZSl9cmV0dXJuIG59ZnVuY3Rpb24gbSh0KXtyZXR1cm4gT2JqZWN0LnZhbHVlcyhnKS5tYXAoKHQ9PnQpKS5pbmNsdWRlcyh0LmlkKX1mdW5jdGlvbiB2KHQpe3JldHVybiEhbSh0KXx8Xy5pbmNsdWRlcyh0LmlkKX1mdW5jdGlvbiBDKHQpe3JldHVybigwLGkuZGVmYXVsdCkodCkmJiJ0ImluIHQmJiJib29sIj09PXQudCYmInYiaW4gdCYmImJvb2xlYW4iPT10eXBlb2YgdC52fWZ1bmN0aW9uIHcodCl7cmV0dXJuInN0cmF0ZWd5X3Byb3BzIj09PXQuZ3JvdXBJZH1mdW5jdGlvbiBiKHQpe3JldHVybiF0Lmdyb3VwSWQmJiF0LmlzSGlkZGVuJiZ0LmlkIT09ZC5GaXJzdEJhciYmdC5pZCE9PWQuTGFzdEJhcn0hZnVuY3Rpb24odCl7dC5GZ0NvbG9yPSJfX2NoYXJ0X2ZnY29sb3IiLHQuQmdDb2xvcj0iX19jaGFydF9iZ2NvbG9yIn0oZ3x8KGc9e30pKX0sNzkxNDI3KHQsZSxzKXtzLmQoZSx7U3R1ZHlNZXRhSW5mbzooKT0+dyxnZXRTdHVkeUlkV2l0aFZlcnNpb246KCk9Pm0scmVwbGF5U3RyYXRlZ3lTdHVkeUlkOigpPT52fSk7dmFyIGk9cygzMDQyMjEpLG49cygyMDM2ODEpLHI9cygxMzg2MzgpLGE9cyg2MDE4NDEpLG89cygyMjEwNjEpLHU9cygxNjQxNTYpLGQ9cygyNTA0NjcpLGM9cyg2MjgwNiksbD1zKDQwMzYpLGg9cygyMjM4NjkpO2NvbnN0IHA9KDAsby5nZXRMb2dnZXIpKCJDaGFydC5TdHVkeS5NZXRhSW5mbyIpLHk9bmV3IFNldChbIkNvcnJlbGF0aW9uQ29lZmZpY2llbnRAdHYtYmFzaWNzdHVkaWVzIiwiQ29ycmVsYXRpb24gLSBMb2dAdHYtYmFzaWNzdHVkaWVzLTEiXSksXz1uZXcgU2V0KFtdKSxnPW5ldyBTZXQoWyJsaW5lIiwic2hhcGVzIiwiY2hhcnMiLCJhcnJvd3MiLCJhbGVydGNvbmRpdGlvbiJdKSxTPW5ldyBNYXAoW1siQW5jaG9yZWRWV0FQQHR2LWJhc2ljc3R1ZGllcyIsImxpbmV0b29sYW5jaG9yZWR2d2FwIl0sWyJSZWdyZXNzaW9uVHJlbmRAdHYtYmFzaWNzdHVkaWVzIiwibGluZXRvb2xyZWdyZXNzaW9udHJlbmQiXSxbIlZiUEFuY2hvcmVkQHR2LWJhc2ljc3R1ZGllcyIsImxpbmV0b29sYW5jaG9yZWR2cCJdXSksZj1bImZvcmVjYXN0cyIsImVzdGltYXRlcyJdLEk9WyJib29sIiwiY29sb3IiLCJ0aW1lIiwidGV4dF9hcmVhIl07ZnVuY3Rpb24gbSh0KXtyZXR1cm4gdy5jdXREb2xsYXJIYXNoKHQuaWQpKyItIit0LnZlcnNpb259CmNvbnN0IHY9IlJlcGxheVN0cmF0ZWd5QHR2LXNjcmlwdGluZyIsQz1bInVzZVZlcnNpb25Gcm9tTWV0YUluZm8iLCJfZm9yY2VPdmVybGF5UGxvdElkcyJdO2NsYXNzIHd7Y29uc3RydWN0b3IodCxlPSExKXt0aGlzLl9mb3JjZU92ZXJsYXlQbG90SWRzPW5ldyBTZXQsKDAsYS5tZXJnZSkodGhpcyx7cGFsZXR0ZXM6e30saW5wdXRzOltdLHBsb3RzOltdLGdyYXBoaWNzOnt9LGRlZmF1bHRzOnt9fSksKDAsYS5tZXJnZSkodGhpcyx0KTtjb25zdCBzPXQuZnVsbElkfHx0LmlkOygwLGEubWVyZ2UpKHRoaXMsdy5wYXJzZUlkU3RyaW5nKHMpKSx0aGlzLl91cGRhdGVJbnB1dERpc3BsYXlEZWZhdWx0cygpLHRoaXMudXNlVmVyc2lvbkZyb21NZXRhSW5mbz1lLHRoaXMucGxvdHMuZm9yRWFjaCgodD0+e2NvbnN0IGU9dC5pZCxzPXRoaXMuc3R5bGVzPy5bZV07bGV0IGk9ISFzPy5mb3JjZU92ZXJsYXk7IWkmJigwLGQuaXNPaGxjUGxvdCkodCkmJihpPXRoaXMub2hsY1Bsb3RzPy5bdC50YXJnZXRdPy5mb3JjZU92ZXJsYXk/PyExLGkmJnRoaXMuX2ZvcmNlT3ZlcmxheVBsb3RJZHMuYWRkKHQudGFyZ2V0KSksaSYmdGhpcy5fZm9yY2VPdmVybGF5UGxvdElkcy5hZGQoZSl9KSl9ZGVmYXVsdElucHV0cygpe3JldHVybiB0aGlzLmlucHV0cy5tYXAoKHQ9PnQuZGVmdmFsKSkuZmlsdGVyKGEuaXNFeGlzdGVudCl9c3RhdGUoKXtjb25zdCB0PXt9O2Zvcihjb25zdFtlLHNdb2YgT2JqZWN0LmVudHJpZXModGhpcykpQy5pbmNsdWRlcyhlKXx8dGhpcy5oYXNPd25Qcm9wZXJ0eShlKSYmKHRbZV09KDAsbi5kZWZhdWx0KShzKSwiaWQiPT09ZSYmKHRbZV0rPSItIit0aGlzLnZlcnNpb24pKTtyZXR1cm4gdH1pc1BpbmUoKXtyZXR1cm4gdm9pZCAwIT09dGhpcy5waW5lfWlzU3RhbmRhcmRQaW5lKCl7cmV0dXJuIHRoaXMuaXNQaW5lKCkmJncuaXNTdGFuZGFyZFBpbmUodGhpcy5pZCl9aXNGb3JlY2FzdCgpe3JldHVybiBmLmluY2x1ZGVzKHRoaXMuZnVuZGFtZW50YWxDYXRlZ29yeT8udG9Mb3dlckNhc2UoKT8/IiIpfXN5bWJvbElucHV0SWQoKXtyZXR1cm4gdGhpcy5pbnB1dHMuZmluZCgodD0+InN5bWJvbCI9PT10LnR5cGUpKT8uaWR8fG51bGx9aW5wdXRCeUlkKHQpe3JldHVybigwLHIuZW5zdXJlRGVmaW5lZCkodGhpcy5pbnB1dHMuZmluZCgoZT0+ZS5pZD09PXQpKSl9aXNQbG90Rm9yY2VPdmVybGF5KHQpe3JldHVybiB0aGlzLl9mb3JjZU92ZXJsYXlQbG90SWRzLmhhcyh0KX1oYXNGb3JjZU92ZXJsYXlQbG90cygpe3JldHVybiAwIT09dGhpcy5fZm9yY2VPdmVybGF5UGxvdElkcy5zaXplfXN0YXRpYyBnZXRTb3VyY2VJZHNCeUlucHV0cyh0LGUpe2lmKCFBcnJheS5pc0FycmF5KHQpfHwhZSlyZXR1cm5bXTtjb25zdCBzPVtdO2Zvcihjb25zdCBuIG9mIHQpaWYody5pc1NvdXJjZUlucHV0KG4pJiYoMCxpLmRlZmF1bHQpKGVbbi5pZF0pKXtjb25zdCB0PWVbbi5pZF07dC5pbmNsdWRlcygiJCIpJiZzLnB1c2godC5zcGxpdCgiJCIpWzBdKX1yZXR1cm4gc31zdGF0aWMgaXNTb3VyY2VJbnB1dCh0KXtyZXR1cm4gQm9vbGVhbih0LmlkJiYoKCJzb3VyY2UiPT09dC5pZHx8InNyYyI9PT10LmlkKSYmKCJ0ZXh0Ij09PXQudHlwZXx8InNvdXJjZSI9PT10LnR5cGUpfHwic291cmNlIj09PXQudHlwZSkpfXN0YXRpYyBnZXRTb3VyY2VJbnB1dElkcyh0KXtjb25zdCBlPVtdO2Zvcihjb25zdCBzIG9mIHQuaW5wdXRzKXcuaXNTb3VyY2VJbnB1dChzKSYmZS5wdXNoKHMuaWQpO3JldHVybiBlfXN0YXRpYyBjYW5CZUNoaWxkKHQsZSl7aWYoKDAsaS5kZWZhdWx0KSh0KSlyZXR1cm4hMDtpZighdClyZXR1cm4hMTtpZih0LmV4dHJhJiYhdy5pc0FsbG93ZWRTb3VyY2VJbnB1dHNDb3VudCh0LmV4dHJhLnNvdXJjZUlucHV0c0NvdW50LGUpfHwhMD09PXQuY2FuTm90QmVDaGlsZHx8ITE9PT10LmNhbkJlQ2hpbGR8fHkuaGFzKHQuaWQpKXJldHVybiExO2xldCBzPTA7Zm9yKGNvbnN0IGUgb2YgdC5pbnB1dHMpdy5pc1NvdXJjZUlucHV0KGUpJiYocys9MSk7cmV0dXJuIHcuaXNBbGxvd2VkU291cmNlSW5wdXRzQ291bnQocyxlKX1zdGF0aWMgaXNBbGxvd2VkU291cmNlSW5wdXRzQ291bnQodCxlKXtyZXR1cm4gZSYmdD4wfHwxPT09dH1zdGF0aWMgY2FuSGF2ZUNoaWxkcmVuKHQpe2lmKHQpe2lmKHQuaXNUVlNjcmlwdFN0cmF0ZWd5fHx0LlRWU2NyaXB0U291cmNlQ29kZSYmKDAsaC5pc1N0cmF0ZWd5KSh0LlRWU2NyaXB0U291cmNlQ29kZSkpcmV0dXJuITE7aWYodC5pZCYmIV8uaGFzKHQuaWQpJiZBcnJheS5pc0FycmF5KHQucGxvdHMpKWZvcihjb25zdCBlIG9mIHQucGxvdHMpaWYoZy5oYXMoZS50eXBlKSlyZXR1cm4hMH1yZXR1cm4hMX1zdGF0aWMgZ2V0Q2hpbGRTb3VyY2VJbnB1dFRpdGxlcyh0LGUscyl7Y29uc3QgaT17fTtpZihlLnBsb3RzJiZlLnBsb3RzLmxlbmd0aCYmdC5vcHRpb25zJiZ0Lm9wdGlvbnMubGVuZ3RoKWZvcihjb25zdCBuIG9mIHQub3B0aW9ucyl7Y29uc3QgdD1uPytuLnNwbGl0KCIkIilbMV06TmFOLHI9aXNGaW5pdGUodCkmJmUucGxvdHNbdF07ciYmZy5oYXMoci50eXBlKSYmKGlbbl09ZS5zdHlsZXMmJmUuc3R5bGVzW3IuaWRdJiZlLnN0eWxlc1tyLmlkXT8udGl0bGV8fHIuaWQscyYmKGlbbl09cysiOuKAiSIraVtuXSkpfXJldHVybiBpfXN0YXRpYyBjYW5QbG90QmVTb3VyY2VPZkNoaWxkU3R1ZHkodCl7cmV0dXJuIGcuaGFzKHQpfXN0YXRpYyBnZXRTdHVkeVByb3BlcnR5Um9vdE5hbWUodCl7Y29uc3QgZT1TLmdldCh0LmlkKTtpZih2b2lkIDAhPT1lKXJldHVybiBlO2xldCBzPSJzdHVkeV8iK3QuaWQ7cmV0dXJuIHQucGluZSYmdC5waW5lLnZlcnNpb24mJihzKz0iXyIrdC5waW5lLnZlcnNpb24ucmVwbGFjZSgiLiIsIl8iKSksc31zdGF0aWMgZ2V0U3R1ZHlQcm9wZXJ0eVJvb3ROYW1lQnlJZCh0KXtjb25zdCBlPVMuZ2V0KHQpO3JldHVybiB2b2lkIDAhPT1lP2U6InN0dWR5XyIrdH1zdGF0aWMgaXNTY3JpcHRTdHJhdGVneSh0KXtpZih0LmV4dHJhJiZ0LmV4dHJhLmtpbmQpcmV0dXJuIHQuZXh0cmEua2luZD09PXUuUGluZUtpbmQuU3RyYXRlZ3kKO2lmKCEwPT09dC5pc1RWU2NyaXB0U3RyYXRlZ3kpcmV0dXJuITA7Y29uc3QgZT10LlRWU2NyaXB0U291cmNlQ29kZXx8dC5zY3JpcHRTb3VyY2U7cmV0dXJuISFlJiYoMCxoLmlzU3RyYXRlZ3kpKGUpfXN0YXRpYyBpc1JlcGxheVN0cmF0ZWd5KHQpe3JldHVybiB0LmlkPT09dn1zdGF0aWMgcGFyc2VJZFN0cmluZyh0KXtyZXR1cm4oMCxsLnBhcnNlSWRTdHJpbmcpKHQpfXN0YXRpYyB2ZXJzaW9uT2YodCl7Y29uc3QgZT0iX21ldGFpbmZvVmVyc2lvbiJpbiB0JiYoMCxhLmlzTnVtYmVyKSh0Ll9tZXRhaW5mb1ZlcnNpb24pP3QuX21ldGFpbmZvVmVyc2lvbjowO3JldHVybiBlPDAmJnAubG9nRXJyb3IoIk1ldGFpbmZvIGZvcm1hdCB2ZXJzaW9uIGNhbm5vdCBiZSBuZWdhdGl2ZTogIitlKSxlfXN0YXRpYyBnZXRQYWNrYWdlTmFtZSh0KXtjb25zdCBlPS9eW15AXStAKFteLV0rLVteLV0rKS8uZXhlYyh0fHwiIiksWyxzPSJ0di1iYXNpY3N0dWRpZXMiXT1lfHxbXTtyZXR1cm4gc31zdGF0aWMgY3V0QmVmb3JlRG9sbGFyKHQpe2NvbnN0IGU9dC5pbmRleE9mKCIkIik7cmV0dXJuLTE9PT1lP3Q6dC5zdWJzdHJpbmcoZSsxKX1zdGF0aWMgY3V0RG9sbGFySGFzaCh0KXtjb25zdCBlPXQuaW5kZXhPZigiJCIpO2lmKC0xPT09ZSlyZXR1cm4gdDtjb25zdCBzPXQuaW5kZXhPZigiQCIpLGk9cz49MD90LnN1YnN0cmluZyhzKToiIjtyZXR1cm4gdC5zdWJzdHJpbmcoMCxlKStpfXN0YXRpYyBoYXNQdWJTdWZmaXgodCl7cmV0dXJuL15QVUI7LiskLy50ZXN0KHQpfXN0YXRpYyBoYXNTdGRTdWZmaXgodCl7cmV0dXJuL15TVEQ7LiskLy50ZXN0KHQpfXN0YXRpYyBpc1N0YW5kYXJkUGluZSh0KXtyZXR1cm4vXihTdHJhdGVneSk/U2NyaXB0XCRTVEQ7LipAdHYtc2NyaXB0aW5nJC8udGVzdCh0KX1zdGF0aWMgZ2V0U3R1ZHlJZFdpdGhMYXRlc3RWZXJzaW9uKHQsZSl7Y29uc3Qgcz13LmN1dERvbGxhckhhc2godC5pZCk7bGV0IGk9cztyZXR1cm4gcy5pbmRleE9mKCJQb3J0Zm9saW9AdHYtc2NyaXB0aW5nIik+PTA/aSs9ZT8iISI6IiI6IlJlcGxheVN0cmF0ZWd5QHR2LXNjcmlwdGluZyI9PT1pP2krPSItNTgxISI6cy5pbmRleE9mKCJAdHYtc2NyaXB0aW5nIik+PTA/aSs9Ii0xMDEhIjpzLmVuZHNXaXRoKCJDUEB0di1iYXNpY3N0dWRpZXMiKT9pKz0iLSIrTWF0aC5taW4odC52ZXJzaW9uLDIwNyk6cy5lbmRzV2l0aCgiQ1BAdHYtY2hhcnRwYXR0ZXJucyIpP2krPSItIitNYXRoLm1pbih0LnZlcnNpb24sOSk6cy5lbmRzV2l0aCgiQHR2LXZvbHVtZWJ5cHJpY2UiKXx8ZT9pKz0iLSIrdC52ZXJzaW9uKyIhIjppKz0iLSIrdC52ZXJzaW9uLGl9c3RhdGljIHNhdmVkU3R1ZGllc092ZXJyaWRlcygpe3JldHVybiB0aGlzLl9zYXZlZFN0dWRpZXNPdmVycmlkZXN9c3RhdGljIG1lcmdlRGVmYXVsdHNPdmVycmlkZXModCl7KDAsYS5tZXJnZSkodGhpcy5fc2F2ZWRTdHVkaWVzT3ZlcnJpZGVzLHQpfXN0YXRpYyBmaW5kU3R1ZHlNZXRhSW5mb0J5RGVzY3JpcHRpb24odCxlKXtpZih0KXtjb25zdCBzPWUudG9Mb3dlckNhc2UoKTtmb3IoY29uc3QgZSBvZiB0KWlmKGUuZGVzY3JpcHRpb24udG9Mb3dlckNhc2UoKT09PXMpcmV0dXJuIGU7dGhyb3cgbmV3IEVycm9yKCJ1bmV4cGVjdGVkIHN0dWR5IGlkOiIrZSl9dGhyb3cgbmV3IEVycm9yKCJUaGVyZSBpcyBubyBzdHVkaWVzIG1ldGFpbmZvIil9X3VwZGF0ZUlucHV0RGlzcGxheURlZmF1bHRzKCl7dGhpcy5pbnB1dHMuZmlsdGVyKCh0PT52b2lkIDA9PT10LmRpc3BsYXkpKS5mb3JFYWNoKCh0PT57SS5pbmNsdWRlcyh0LnR5cGUpP3QuZGlzcGxheT1jLklucHV0RGlzcGxheUZsYWdzLk5vbmU6dC5kaXNwbGF5PWMuSW5wdXREaXNwbGF5RmxhZ3MuQWxsfSkpfX13Ll9zYXZlZFN0dWRpZXNPdmVycmlkZXM9e319fV0pOw=="}},"time_used":2,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"wss","addr":"wss://widgetdata.tradingview.com/socket.io/websocket?from=widgetembed%2F\u0026date=2026-07-24T11%3A40%3A08\u0026page-uri=digital-assettrade.com%2F\u0026ancestor-origin=digital-assettrade.com\u0026api_key=tradingview","fqdn":"widgetdata.tradingview.com","domain":"tradingview.com","tld":"com"},"ip":{"addr":"5.101.223.86","port":443,"asn":199524,"as":"G-Core Labs S.A.","country":"The Netherlands","country_code":"NL"},"is_navigation_request":false,"resource_type":"websocket","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:13.439Z","timestamp":1785148033439,"http_version":"HTTP/1.1","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_256_GCM_SHA384","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.tradingview.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 21 Oct 2025 00:00:00 GMT","end":"Wed, 18 Nov 2026 23:59:59 GMT"},"fingerprint":{"sha1":"96:06:76:35:9F:2C:2D:1C:89:55:E8:92:7C:4F:4B:FD:E9:F6:FF:1A","sha256":"BC:FA:33:CE:19:85:7A:43:44:BA:17:CE:87:15:42:E2:02:0C:7A:4E:83:42:1F:58:8F:59:B4:20:BF:4B:35:00"}}},"request":{"raw":"GET /socket.io/websocket?from=widgetembed%2F\u0026date=2026-07-24T11%3A40%3A08\u0026page-uri=digital-assettrade.com%2F\u0026ancestor-origin=digital-assettrade.com\u0026api_key=tradingview HTTP/1.1\r\nHost: widgetdata.tradingview.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-WebSocket-Version: 13\r\nOrigin: https://s.tradingview.com\r\nSec-WebSocket-Extensions: permessage-deflate\r\nSec-WebSocket-Key: hkHMQUQio8zuKNIzFs8kmw==\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: Upgrade\r\nSec-Fetch-Dest: empty\r\nSec-Fetch-Mode: websocket\r\nSec-Fetch-Site: same-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\nUpgrade: websocket\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/1.1 101 Switching Protocols\r\nDate: Mon, 27 Jul 2026 10:27:13 GMT\r\nConnection: upgrade\r\nsec-websocket-accept: cpasEjwltpDe/2qujny1Ci0acHY=\r\nsec-websocket-extensions: permessage-deflate\r\nupgrade: websocket\r\nServer: tv\r\n\r\n","headers":null,"cookies":null,"status_code":"101","status_text":"Switching Protocols","fingerprints":null,"data":{"size":0,"size_decoded":224,"mime_type":"text/plain","magic":"","md5":"d41d8cd98f00b204e9800998ecf8427e","sha1":"da39a3ee5e6b4b0d3255bfef95601890afd80709","sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha512":"cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e","ssdeep":"","tlshash":"","first_seen":"0001-01-01T00:00:00Z","last_seen":"2026-07-27T13:01:10.036638Z","times_seen":17563461,"resource_available":true,"data":""}},"time_used":74,"timings":{"blocked":0,"dns":3,"connect":16,"send":0,"wait":16,"receive":0,"ssl":39},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/86360.a9492d3774aba7603479.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:13.797Z","timestamp":1785148033797,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/86360.a9492d3774aba7603479.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:13 GMT\r\ncontent-type: text/css; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a435fcb-137d\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Tue, 30 Jun 2026 06:18:51 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.57\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 06/30/2026 11:56:13\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: dd78ab3ab6bc2ec3855e5d7a8ebd887f\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":4989,"size_decoded":2271,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with very long lines (4989), with no line terminators","md5":"225fb7ba9c7c46eb8f87ead119ec19e7","sha1":"53ffdbd1d7bb8abdac18cff30108079aecc63d49","sha256":"7cd0b7c9a5385d9b37fc384e02ad232193c5bc649deeaef310b4a57dc4f5f8b5","sha512":"ea28db2cacbed01c063e1470ad0d2288e9bf9d1992416ecd8e0fa59d24d50c0c38bde99d493cc7a9059e41fa903f3b241f9572be92109981c184e5201be3ff60","ssdeep":"96:sB+yTRehctIM6BA7P5oSlFSn7ljLahZ2Apbzz8L+:sBZVNIM6B2+ahZ2A5u+","tlshash":"c3a19756f255e67afe27e13e434082889619b443d9025bfddd35f36152cf1ea02ef848","first_seen":"2026-07-01T01:14:49.635275Z","last_seen":"2026-07-27T11:42:49.859395Z","times_seen":72,"resource_available":false,"data":"LmJ1dHRvbi1haEZHR241QXtwYWRkaW5nOjAgNnB4fS5idXR0b24tRVBGcUNSZW97YWxpZ24taXRlbXM6Y2VudGVyO2Rpc3BsYXk6ZmxleDtoZWlnaHQ6MTAwJTtwYWRkaW5nOjAgNXB4fS5idXR0b24tTEpub1lzTkd7d2hpdGUtc3BhY2U6bm93cmFwfS5idXR0b24tTEpub1lzTkcuZGlzYWJsZWQtTEpub1lzTkd7b3BhY2l0eToxO3Bvc2l0aW9uOnJlbGF0aXZlO3otaW5kZXg6MH0uYnV0dG9uLUxKbm9Zc05HLmRpc2FibGVkLUxKbm9Zc05HOmJlZm9yZXtiYWNrZ3JvdW5kLWNvbG9yOmluaXRpYWw7Ym9yZGVyLXJhZGl1czp2YXIoLS10di10b29sYmFyLWV4cGxpY2l0LWhvdmVyLWJvcmRlci1yYWRpdXMsMnB4KTtib3R0b206dmFyKC0tdHYtdG9vbGJhci1leHBsaWNpdC1ob3Zlci1tYXJnaW4tYm90dG9tLHZhcigtLXR2LXRvb2xiYXItZXhwbGljaXQtaG92ZXItbWFyZ2luLDJweCkpO2Rpc3BsYXk6YmxvY2s7aW5zZXQtaW5saW5lLWVuZDp2YXIoLS10di10b29sYmFyLWV4cGxpY2l0LWhvdmVyLW1hcmdpbi1yaWdodCx2YXIoLS10di10b29sYmFyLWV4cGxpY2l0LWhvdmVyLW1hcmdpbiwycHgpKTtpbnNldC1pbmxpbmUtc3RhcnQ6dmFyKC0tdHYtdG9vbGJhci1leHBsaWNpdC1ob3Zlci1tYXJnaW4tbGVmdCx2YXIoLS10di10b29sYmFyLWV4cGxpY2l0LWhvdmVyLW1hcmdpbiwycHgpKTtvdXRsaW5lOnZhcigtLWNvbG9yLXR2LWJsdWUtNTAwKSBub25lIDJweDtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6dmFyKC0tdHYtdG9vbGJhci1leHBsaWNpdC1ob3Zlci1tYXJnaW4tdG9wLHZhcigtLXR2LXRvb2xiYXItZXhwbGljaXQtaG92ZXItbWFyZ2luLDJweCkpO3otaW5kZXg6LTF9LmJ1dHRvbi1MSm5vWXNORy5kaXNhYmxlZC1MSm5vWXNORy5ob3Zlci1MSm5vWXNORzpiZWZvcmUsLmJ1dHRvbi1MSm5vWXNORy5kaXNhYmxlZC1MSm5vWXNORzphY3RpdmU6YmVmb3Jle2JhY2tncm91bmQtY29sb3I6dmFyKC0tdHYtY29sb3ItdG9vbGJhci1idXR0b24tYmFja2dyb3VuZC1ob3Zlcix2YXIoLS1jb2xvci10b29sYmFyLWJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyKSk7Y29udGVudDoiIn1AbWVkaWEgKGFueS1ob3Zlcjpob3Zlcil7LmJ1dHRvbi1MSm5vWXNORy5kaXNhYmxlZC1MSm5vWXNORzpob3ZlcjpiZWZvcmV7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS10di1jb2xvci10b29sYmFyLWJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyLHZhcigtLWNvbG9yLXRvb2xiYXItYnV0dG9uLWJhY2tncm91bmQtaG92ZXIpKTtjb250ZW50OiIifX0uYnV0dG9uLUxKbm9Zc05HLmRpc2FibGVkLUxKbm9Zc05HLmNsaWNrZWQtTEpub1lzTkc6YmVmb3JlLC5idXR0b24tTEpub1lzTkcuZGlzYWJsZWQtTEpub1lzTkc6YWN0aXZlOmJlZm9yZXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXR2LWNvbG9yLXRvb2xiYXItYnV0dG9uLWJhY2tncm91bmQtY2xpY2tlZCx2YXIoLS10di1jb2xvci10b29sYmFyLWJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyLHZhcigtLWNvbG9yLXRvb2xiYXItYnV0dG9uLWJhY2tncm91bmQtaG92ZXIpKSk7Y29udGVudDoiIn0uYnV0dG9uLUxKbm9Zc05HLmRpc2FibGVkLUxKbm9Zc05HLmFjY2Vzc2libGUtTEpub1lzTkc6Zm9jdXMtdmlzaWJsZTpiZWZvcmV7Y29udGVudDoiIjtvdXRsaW5lLXN0eWxlOnNvbGlkfS5zZXBhcmF0b3ItR05kZXlONjJ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS10di1jb2xvci10b29sYmFyLWRpdmlkZXItYmFja2dyb3VuZCx2YXIoLS1jb2xvci10b29sYmFyLWRpdmlkZXItYmFja2dyb3VuZCkpO2Rpc3BsYXk6aW5saW5lLWJsb2NrO2hlaWdodDpjYWxjKDEwMCUgLSAxNnB4KTttYXJnaW46OHB4IDRweDt3aWR0aDoxcHh9W2RhdGEtdGhlbWU9bGlnaHRdey0tXzAtbGJnUzp2YXIoLS1jb2xvci1jb2xkLWdyYXktOTAwKTstLV8xLWxiZ1M6dmFyKC0tY29sb3ItY29sZC1ncmF5LTUwKTstLV8yLWxiZ1M6dmFyKC0tY29sb3Itd2hpdGUpOy0tXzMtbGJnUzp2YXIoLS1jb2xvci10di1ibHVlLTUwMCl9W2RhdGEtdGhlbWU9ZGFya117LS1fMC1sYmdTOnZhcigtLWNvbG9yLWNvbGQtZ3JheS0yMDApOy0tXzEtbGJnUzp2YXIoLS1jb2xvci1jb2xkLWdyYXktNTApOy0tXzItbGJnUzp2YXIoLS1jb2xvci1jb2xkLWdyYXktODUwKTstLV8zLWxiZ1M6dmFyKC0tY29sb3ItdHYtYmx1ZS03MDApfS5zd2F0Y2gtU0VpRURTMlF7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1fMi1sYmdTKTtib3JkZXItcmFkaXVzOjRweDtib3gtc2l6aW5nOmJvcmRlci1ib3g7ZGlzcGxheTpmbGV4O2ZsZXg6YXV0bztmbGV4LWRpcmVjdGlvbjpjb2x1bW47bWFyZ2luOjJweDtwYWRkaW5nOjEycHg7d29yZC1icmVhazpicmVhay1hbGx9LnN3YXRjaC1TRWlFRFMyUS5hY3RpdmUtU0VpRURTMlF7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1fMy1sYmdTKX0uc3dhdGNoSW5uZXItU0VpRURTMlF7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtvdmVyZmxvdzpoaWRkZW59LnRleHQtU0VpRURTMlF7Y29sb3I6dmFyKC0tXzAtbGJnUyk7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtmb250LXNpemU6MTZweH0udGV4dC1TRWlFRFMyUS5hY3RpdmUtU0VpRURTMlF7Y29sb3I6dmFyKC0tXzEtbGJnUyl9LnJlc29sdXRpb24tU0VpRURTMlF7Y29sb3I6dmFyKC0tY29sb3ItZGVmYXVsdC1ncmF5KTtmbGV4Om5vbmV9LnJlc29sdXRpb24tU0VpRURTMlEuYWN0aXZlLVNFaUVEUzJRe2NvbG9yOnZhcigtLV8xLWxiZ1MpfVtkYXRhLXRoZW1lPWxpZ2h0XXstLV8wLUh5Xzk6dmFyKC0tY29sb3ItY29sZC1ncmF5LTEwMCk7LS1fMS1IeV85OnZhcigtLWNvbG9yLXdoaXRlKX1bZGF0YS10aGVtZT1kYXJrXXstLV8wLUh5Xzk6dmFyKC0tY29sb3ItY29sZC1ncmF5LTgwMCk7LS1fMS1IeV85OnZhcigtLWNvbG9yLWNvbGQtZ3JheS04NTApfS5jb250YWluZXItR1dUX2lpcG97YWxpZ24taXRlbXM6Y2VudGVyO2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3Bvc2l0aW9uOmZpeGVkfS5iYWNrZHJvcC1HV1RfaWlwbywuY29udGFpbmVyLUdXVF9paXBve2JvdHRvbTowO2luc2V0LWlubGluZS1lbmQ6MDtpbnNldC1pbmxpbmUtc3RhcnQ6MDt0b3A6MH0uYmFja2Ryb3AtR1dUX2lpcG97YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1jb2xkLWdyYXktODAwKTtvcGFjaXR5Oi4zO3Bvc2l0aW9uOmFic29sdXRlfS5zd2F0Y2hDb250YWluZXJCYWNrZHJvcC1HV1RfaWlwb3tiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLV8wLUh5XzkpO3Bvc2l0aW9uOmFic29sdXRlfS5zd2F0Y2hDb250YWluZXItR1dUX2lpcG97ZGlzcGxheTpmbGV4O21hcmdpbjowIC0ycHg7cG9zaXRpb246YWJzb2x1dGV9LnN3YXRjaENvbnRhaW5lci1HV1RfaWlwby5jb2x1bW4tR1dUX2lpcG97ZmxleC1kaXJlY3Rpb246Y29sdW1ufS5zd2F0Y2hDb250YWluZXItR1dUX2lpcG8udHdvQ29sdW1ucy1HV1RfaWlwb3tmbGV4LXdyYXA6d3JhcH0uYm90dG9tVG9vbGJhckNvbnRhaW5lci1HV1RfaWlwb3tiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLV8xLUh5XzkpO2JvcmRlci1yYWRpdXM6NHB4O2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmQ7cG9zaXRpb246YWJzb2x1dGV9LmJvdHRvbVRvb2xiYXJCdXR0b24tR1dUX2lpcG97cGFkZGluZzowIDdweH0uYm90dG9tVG9vbGJhckJ1dHRvbi1HV1RfaWlwbzpsYXN0LWNoaWxke21hcmdpbi1pbmxpbmUtZW5kOjlweH0uaGVhZGVyTWVudVRleHQtUGFIMFY0UHN7bWFyZ2luOjRweCAwfS50b29sYmFyLU16TTAxek9Fe2N1cnNvcjpkZWZhdWx0O2ZvbnQtc2l6ZToxNHB4O2hlaWdodDoxMDAlO3Bvc2l0aW9uOnJlbGF0aXZlO3doaXRlLXNwYWNlOm5vd3JhcH0uZGF0ZVJhbmdlV3JhcHBlci1Nek0wMXpPRXtkaXNwbGF5OmJsb2NrO2hlaWdodDoxMDAlO2luc2V0LWlubGluZS1zdGFydDowO3Bvc2l0aW9uOmFic29sdXRlfS5kYXRlUmFuZ2VXcmFwcGVyLU16TTAxek9FLm5vcmFuZ2VzLU16TTAxek9FIC5kYXRlUmFuZ2VFeHBhbmRlZC1Nek0wMXpPRSAuc2VwYXJhdG9yLU16TTAxek9Fe2Rpc3BsYXk6bm9uZX0uc2VyaWVzQ29udHJvbFdyYXBwZXItTXpNMDF6T0V7ZGlzcGxheTpibG9jaztoZWlnaHQ6MTAwJTtpbnNldC1pbmxpbmUtZW5kOjA7cGFkZGluZy1pbmxpbmUtZW5kOjRweDtwb3NpdGlvbjphYnNvbHV0ZX0uZGF0ZVJhbmdlQ29sbGFwc2VkLU16TTAxek9FLC5kYXRlUmFuZ2VFeHBhbmRlZC1Nek0wMXpPRXtkaXNwbGF5OmlubGluZS1mbGV4O2ZsZXg6MCAxIDAlO2hlaWdodDoxMDAlfS5pdGVtLU16TTAxek9Fe2ZsZXg6MCAwIGF1dG87Zm9udC1mYW1pbHk6LWFwcGxlLXN5c3RlbSxCbGlua01hY1N5c3RlbUZvbnQsVHJlYnVjaGV0IE1TLFJvYm90byxVYnVudHUsc2Fucy1zZXJpZjtmb250LWZlYXR1cmUtc2V0dGluZ3M6InRudW0iIG9uLCJsbnVtIiBvbjtmb250LXN0eWxlOm5vcm1hbDtoZWlnaHQ6MTAwJTtwYWRkaW5nOjAgNnB4Oy0tdWktbGliLXR5cG9ncmFwaHktZm9udC1zaXplOjE0cHg7Zm9udC1zaXplOnZhcigtLXVpLWxpYi10eXBvZ3JhcGh5LWZvbnQtc2l6ZSk7Zm9udC13ZWlnaHQ6NDAwOy0tdWktbGliLXR5cG9ncmFwaHktbGluZS1oZWlnaHQ6MThweDtsaW5lLWhlaWdodDp2YXIoLS11aS1saWItdHlwb2dyYXBoeS1saW5lLWhlaWdodCl9LmlubGluZS1Nek0wMXpPRXtkaXNwbGF5OmlubGluZS1ibG9jaztoZWlnaHQ6MTAwJTt2ZXJ0aWNhbC1hbGlnbjp0b3B9LmRhdGVSYW5nZS1Nek0wMXpPRXttYXJnaW4taW5saW5lLXN0YXJ0OjhweH0uZnVsbHNjcmVlbkJ1dHRvbi1Nek0wMXpPRXtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3dpZHRoOjM4cHh9LmhpZGRlbi1Nek0wMXpPRXt2aXNpYmlsaXR5OmhpZGRlbn0uY29sbGFwc2VkLU16TTAxek9Fe2hlaWdodDoxMDAlO2luc2V0LWlubGluZS1zdGFydDowO3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO3Zpc2liaWxpdHk6aGlkZGVufS5mdWxsc2NyZWVuQnRuLU16TTAxek9Fe2Rpc3BsYXk6aW5saW5lLWZsZXh9"}},"time_used":3,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":3,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/47632.33d2a3745af497e3da5d.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.513Z","timestamp":1785148034513,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/47632.33d2a3745af497e3da5d.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\ncontent-type: text/css; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a58ab11-b2\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Thu, 16 Jul 2026 09:57:37 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/16/2026 11:03:22\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 4b157fcfe8f3f8e0e01e6e986e710d2c\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":178,"size_decoded":890,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with no line terminators","md5":"6b0e113b7611f749d459a146078f9a58","sha1":"5b1aec3af3fe370284f6a23557895bd0490a484c","sha256":"5d823f4989976ca71db5dbc63763c653f7f997d13757235fde75755413631b18","sha512":"93cc8381bee6b3f9f3ad64202f4c08c80830f96e99758b28c9a981feda509a38e4fd34bd149a5a7e549c7a7454930a4bdcf3e44a6d270087c2bcd027a72c82a0","ssdeep":"","tlshash":"7bc0801d13d4b410145701ef69e8662c247554fdf7136e5c36d4173b435fe1c0751970","first_seen":"2026-07-16T13:40:49.787877Z","last_seen":"2026-07-27T12:54:15.390917Z","times_seen":272,"resource_available":false,"data":"LmhpZGRlbi1uTXR4WFRYX3tvcGFjaXR5OjB9LmZhZGVJbldyYXBwZXItbk10eFhUWF97d2lkdGg6MTAwJX0uZmFkZUluV3JhcHBlci1uTXR4WFRYXy5pc0FuaW1hdGVkLW5NdHhYVFhfe3RyYW5zaXRpb246b3BhY2l0eSB2YXIoLS11aS1saWItZmFkZUluV3JhcHBlci10cmFuc2l0aW9uLWR1cmF0aW9uLC4zNXMpfQ=="}},"time_used":3,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":3,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/symbol-search-dialog.2bd5ad4a50f11c55181d.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.567Z","timestamp":1785148034567,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/symbol-search-dialog.2bd5ad4a50f11c55181d.js HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a632877-f1ae\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Fri, 24 Jul 2026 08:55:19 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/24/2026 10:31:24\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: ea8bee1770e6087a4f1b7fdc11c0e35b\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":61870,"size_decoded":24219,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, Unicode text, UTF-8 text, with very long lines (8724)","md5":"a33d79b36d31bad99801ac951429ec12","sha1":"0132a8f4734c731690767f7346c30377761aed71","sha256":"42e14e00fdcb59805d9b1fc3225db0713e0a8ce22f25639326da817409380856","sha512":"b85e7f37730215e956573da5116e3901e2dc95b7c20bf9dba114b73817e363a0af560933b8f1193dae05ec6d87310bb3f73d9facec95f9521a846a4a0bacee6f","ssdeep":"768:1VZTM7OTm7FZkgTGJPrOvJ1UKxQcGhXEwpMALDw0Iv6CCVmXRfoUUUh3W//YWXgK:1MT2AbUKuXEgMPCVmpRK","tlshash":"0353f953b3045e4e75abe1e7ce2d8d49978e50a3304ac234f5efaed8229647fd623844","first_seen":"2026-07-24T15:28:44.934306Z","last_seen":"2026-07-27T12:48:39.654284Z","times_seen":55,"resource_available":true,"data":"KHNlbGYud2VicGFja0NodW5rdHJhZGluZ3ZpZXc9c2VsZi53ZWJwYWNrQ2h1bmt0cmFkaW5ndmlld3x8W10pLnB1c2goW1s2ODQ4MV0sezQ3NDEzNihlLGQsdSl7InVzZSBzdHJpY3QiO3UuZChkLHthcnJheTooKT0+bCxjaGFubmVsOigpPT5mLGZ1bmM6KCk9Pm8saXRlcmF0b3I6KCk9PmksbXVsdGljYXN0OigpPT5wLG5vdFVuZGVmOigpPT5uLHBhdHRlcm46KCk9PnMscHJvbWlzZTooKT0+cixzdHJpbmc6KCk9PmEsc3RyaW5nYWJsZUZ1bmM6KCk9Pm0sc3ltYm9sOigpPT5oLHVuZGVmOigpPT5jfSk7dmFyIHQ9dSg1NjQ1MjEpLGM9ZnVuY3Rpb24oZSl7cmV0dXJuIG51bGw9PWV9LG49ZnVuY3Rpb24oZSl7cmV0dXJuIG51bGwhPWV9LG89ZnVuY3Rpb24oZSl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIGV9LGE9ZnVuY3Rpb24oZSl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiBlfSxsPUFycmF5LmlzQXJyYXkscj1mdW5jdGlvbihlKXtyZXR1cm4gZSYmbyhlLnRoZW4pfSxpPWZ1bmN0aW9uKGUpe3JldHVybiBlJiZvKGUubmV4dCkmJm8oZS50aHJvdyl9LHM9ZnVuY3Rpb24gZShkKXtyZXR1cm4gZCYmKGEoZCl8fGgoZCl8fG8oZCl8fGwoZCkmJmQuZXZlcnkoZSkpfSxmPWZ1bmN0aW9uKGUpe3JldHVybiBlJiZvKGUudGFrZSkmJm8oZS5jbG9zZSl9LG09ZnVuY3Rpb24oZSl7cmV0dXJuIG8oZSkmJmUuaGFzT3duUHJvcGVydHkoInRvU3RyaW5nIil9LGg9ZnVuY3Rpb24oZSl7cmV0dXJuIEJvb2xlYW4oZSkmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJmUuY29uc3RydWN0b3I9PT1TeW1ib2wmJmUhPT1TeW1ib2wucHJvdG90eXBlfSxwPWZ1bmN0aW9uKGUpe3JldHVybiBmKGUpJiZlW3QuTVVMVElDQVNUXX19LDIzNTgyNyhlKXtlLmV4cG9ydHM9e2ljb25XcmFwOiJpY29uV3JhcC1HY3pxM2FMWSIsc2ZXYXJuaW5nSWNvbjoic2ZXYXJuaW5nSWNvbi1HY3pxM2FMWSJ9fSw2OTg1MDEoZSl7ZS5leHBvcnRzPXtjb250YWluZXI6ImNvbnRhaW5lci1aVVc2YnBSMCJ9fSwxMjc5MShlKXtlLmV4cG9ydHM9e2J1YmJsZXM6ImJ1YmJsZXMtZFJBc1hWdmEiLG11bHRpTGluZToibXVsdGlMaW5lLWRSQXNYVnZhIixidWJibGU6ImJ1YmJsZS1kUkFzWFZ2YSJ9fSw4MTA3ODUoZSl7ZS5leHBvcnRzPXtidWJibGU6ImJ1YmJsZS1BVTloT3dFcyIsYW5pbWF0ZWQ6ImFuaW1hdGVkLUFVOWhPd0VzIixjb250ZW50OiJjb250ZW50LUFVOWhPd0VzIiwiYXBwZWFyYW5jZS1kZWZhdWx0IjoiYXBwZWFyYW5jZS1kZWZhdWx0LUFVOWhPd0VzIixhY3RpdmU6ImFjdGl2ZS1BVTloT3dFcyIsZ3JheToiZ3JheS1BVTloT3dFcyIscmVkOiJyZWQtQVU5aE93RXMiLGJsdWU6ImJsdWUtQVU5aE93RXMiLGdyZWVuOiJncmVlbi1BVTloT3dFcyIsb3JhbmdlOiJvcmFuZ2UtQVU5aE93RXMiLHB1cnBsZToicHVycGxlLUFVOWhPd0VzIixjeWFuOiJjeWFuLUFVOWhPd0VzIixwaW5rOiJwaW5rLUFVOWhPd0VzIiwiYXBwZWFyYW5jZS10ZXh0IjoiYXBwZWFyYW5jZS10ZXh0LUFVOWhPd0VzIiwiZm9udFNpemUtcyI6ImZvbnRTaXplLXMtQVU5aE93RXMiLCJmb250U2l6ZS1tIjoiZm9udFNpemUtbS1BVTloT3dFcyIsInNpemUtbSI6InNpemUtbS1BVTloT3dFcyIsInNpemUtbCI6InNpemUtbC1BVTloT3dFcyJ9fSw5MjEwMzEoZSl7ZS5leHBvcnRzPXtzeW1ib2xMaXN0OiJzeW1ib2xMaXN0LVJveWpBbVI0In19LDg1NjQwMChlKXtlLmV4cG9ydHM9e2RpYWxvZzoiZGlhbG9nLWlpcWhEY2NzIix0YWJsZXREaWFsb2c6InRhYmxldERpYWxvZy1paXFoRGNjcyIsZGVza3RvcERpYWxvZzoiZGVza3RvcERpYWxvZy1paXFoRGNjcyJ9fSw0MjgwOTcoZSl7ZS5leHBvcnRzPXtlbW9qaToiZW1vamktQnNFUkdjWjEiLGNsZWFyQnV0dG9uOiJjbGVhckJ1dHRvbi1Cc0VSR2NaMSJ9fSw0MDIyMyhlKXtlLmV4cG9ydHM9e3dyYXBwZXI6IndyYXBwZXItbXowODY2TTIiLGhvdmVyZWQ6ImhvdmVyZWQtbXowODY2TTIifX0sOTk1ODUxKGUpe2UuZXhwb3J0cz17ZW1vamlXcmFwOiJlbW9qaVdyYXAtUjJDVHBtSHIiLGVtb2ppOiJlbW9qaS1SMkNUcG1IciIsdG9vbHRpcEVtb2ppOiJ0b29sdGlwRW1vamktUjJDVHBtSHIiLHRvb2x0aXBFbW9qaVdyYXA6InRvb2x0aXBFbW9qaVdyYXAtUjJDVHBtSHIifX0sMjI4NTgxKGUpe2UuZXhwb3J0cz17YnV0dG9uOiJidXR0b24tdzZsVmVfb0kiLGhvdmVyZWQ6ImhvdmVyZWQtdzZsVmVfb0kiLGRpc2FibGVkOiJkaXNhYmxlZC13NmxWZV9vSSJ9fSw1MDg3NDcoZSxkLHUpeyJ1c2Ugc3RyaWN0Ijt1LmQoZCx7U1lNQk9MX0xJU1RfUkVQT1NJVE9SWV9CQUNLRU5EX1NFUlZJQ0U6KCk9PnR9KTtjb25zdCB0PSgwLHUoNDczMDY4KS5jcmVhdGVTZXJ2aWNlRGVzY3JpcHRvcikoIlN5bWJvbExpc3RSZXBvc2l0b3J5QmFja2VuZCIpfSwyNTMyNShlLGQsdSl7InVzZSBzdHJpY3QiO3UuZChkLHtTeW1ib2xTZWFyY2hXYXRjaGxpc3RDb250ZXh0OigpPT5ufSk7dmFyIHQsYz11KDc3OTQ3NCk7IWZ1bmN0aW9uKGUpe2VbZS5BZGQ9MF09IkFkZCIsZVtlLkZpbmQ9MV09IkZpbmQiLGVbZS5SZW1vdmU9Ml09IlJlbW92ZSJ9KHR8fCh0PXt9KSk7Y29uc3Qgbj1jLmNyZWF0ZUNvbnRleHQobnVsbCl9LDgyODc0NyhlLGQsdSl7InVzZSBzdHJpY3QiO3UucihkKSx1LmQoZCx7Q29tcG9uZW50czooKT0+UmUsc2hvd0RlZmF1bHRTZWFyY2hEaWFsb2c6KCk9Pl9lLHNob3dTeW1ib2xTZWFyY2hJdGVtc0RpYWxvZzooKT0+bX0pO3ZhciB0PXUoMjI1Mjk4KSxjPXUoNzM4NDU4KSxuPXUoMjQzOTM4KSxvPXUoMjc5NDA1KSxhPXUoNzc5NDc0KSxsPXUoNjA3ODMyKSxyPXUoODYzNDQpLGk9dSg2MTM4NzApLHM9dSg1OTc2NTQpLGY9dSg1NzEzMDApO2Z1bmN0aW9uIG0oZSl7CmNvbnN0e2luaXRpYWxNb2RlOmQ9InN5bWJvbFNlYXJjaCIsYXV0b2ZvY3VzOnU9ITAsZGVmYXVsdFZhbHVlOnQsc2hvd1NwcmVhZEFjdGlvbnM6YyxzZWxlY3RTZWFyY2hPbkluaXQ6bixvblNlYXJjaENvbXBsZXRlOm8sZGlhbG9nVGl0bGU6bSxwbGFjZWhvbGRlcjpoLGZ1bGxzY3JlZW46cCxpbml0aWFsU2NyZWVuOmIsd3JhcHBlcjpnLGRpYWxvZzp2LGNvbnRlbnRJdGVtOlMsb25DbG9zZTp5LG9uT3Blbjp3LGZvb3RlcjpFLHN5bWJvbFR5cGVzOkMsc2VhcmNoSW5wdXQ6eCxlbXB0eVN0YXRlOkksaGlkZU1hcmtlZExpc3RGbGFnOkEsZGlhbG9nV2lkdGg6ej0iYXV0byIsbWFuYWdlcjpULHNob3VsZFJldHVybkZvY3VzOk0sb25TeW1ib2xGaWx0ZXJzUGFyYW1zQ2hhbmdlOmssb25FbXB0eVJlc3VsdHM6RCxjdXN0b21TZWFyY2hTeW1ib2xzOk4sZW5hYmxlT3B0aW9uc0NoYWluOkwsZGlzYWJsZVJlY2VudHM6aixvdmVycmlkZVF1ZXJ5UGFyYW1zOl8saGlkZGVuRmlsdGVySWRzOlIsc2hvd1JlY2VudHM6VyxzZWFyY2hJbml0aWF0aW9uUG9pbnQ6TyxzZWxlY3RlZFN5bWJvbFNldHRpbmdzS2V5OkYsZmlsdGVyVmFsdWVzU2V0dGluZ3NLZXk6SH09ZTtpZihyLmRpYWxvZ3NPcGVuZXJNYW5hZ2VyLmlzT3BlbmVkKCJTeW1ib2xTZWFyY2giKXx8ci5kaWFsb2dzT3BlbmVyTWFuYWdlci5pc09wZW5lZCgiQ2hhbmdlSW50ZXJ2YWxEaWFsb2ciKXx8KDAsaS5pc1NpZ25Nb2RhbE9wZW4pKCkpcmV0dXJuO2NvbnN0IFY9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksUD1hLmNyZWF0ZUVsZW1lbnQobC5TbG90Q29udGV4dC5Qcm92aWRlcix7dmFsdWU6VD8/bnVsbH0sYS5jcmVhdGVFbGVtZW50KHMuU3ltYm9sU2VhcmNoSXRlbXNEaWFsb2cse29uQ2xvc2U6VSxpbml0aWFsTW9kZTpkLGRlZmF1bHRWYWx1ZTp0LHNob3dTcHJlYWRBY3Rpb25zOmMsaGlkZU1hcmtlZExpc3RGbGFnOkEsc2VsZWN0U2VhcmNoT25Jbml0Om4sb25TZWFyY2hDb21wbGV0ZTpvLGRpYWxvZ1RpdGxlOm0scGxhY2Vob2xkZXI6aCxmdWxsc2NyZWVuOnAsaW5pdGlhbFNjcmVlbjpiLHdyYXBwZXI6ZyxkaWFsb2c6dixjb250ZW50SXRlbTpTLGZvb3RlcjpFLHN5bWJvbFR5cGVzOkMsc2VhcmNoSW5wdXQ6eCxlbXB0eVN0YXRlOkksYXV0b2ZvY3VzOnUsZGlhbG9nV2lkdGg6eixzaG91bGRSZXR1cm5Gb2N1czpNLG9uU3ltYm9sRmlsdGVyc1BhcmFtc0NoYW5nZTprLG9uRW1wdHlSZXN1bHRzOkQsY3VzdG9tU2VhcmNoU3ltYm9sczpOLGVuYWJsZU9wdGlvbnNDaGFpbjpMLGRpc2FibGVSZWNlbnRzOmosb3ZlcnJpZGVRdWVyeVBhcmFtczpfLGhpZGRlbkZpbHRlcklkczpSLHNob3dSZWNlbnRzOlcsc2VhcmNoSW5pdGlhdGlvblBvaW50Ok8sc2VsZWN0ZWRTeW1ib2xTZXR0aW5nc0tleTpGLGZpbHRlclZhbHVlc1NldHRpbmdzS2V5Okh9KSksQj0oMCxmLmNyZWF0ZVJlYWN0Um9vdCkoUCxWKTtmdW5jdGlvbiBVKCl7Qi51bm1vdW50KCksci5kaWFsb2dzT3BlbmVyTWFuYWdlci5zZXRBc0Nsb3NlZCgiU3ltYm9sU2VhcmNoIikseSYmeSgpfXJldHVybiByLmRpYWxvZ3NPcGVuZXJNYW5hZ2VyLnNldEFzT3BlbmVkKCJTeW1ib2xTZWFyY2giKSx3JiZ3KCkse2Nsb3NlOlV9fXZhciBoLHAsYixnPXUoMjMyMzY0KSx2PXUoOTMwMjMxKSxTPXUoMTM4NjM4KSx5PXUoMzg2OTMxKSx3PXUoOTE0NDg3KSxFPXUubih3KSxDPXUoMzQ1MTE2KSx4PXUoODEwNzg1KTtmdW5jdGlvbiBJKGUpe2NvbnN0e3RpdGxlOmQsaXNBY3RpdmU6dSxpc0FuaW1hdGVkOnQsYWN0aXZlQ29sb3I6YyxzaXplOm49Im0iLGFwcGVhcmFuY2U6bz0iZGVmYXVsdCIsZm9udFNpemU6YT0ibSIsZ3JheVN0eWxlczpsLGNsYXNzTmFtZTpyfT1lO3JldHVybiBFKCkoeC5idWJibGUsdSYmeC5hY3RpdmUsYyYmeFtjXSxkJiYiYXBwbHktY29tbW9uLXRvb2x0aXAiLG4mJnhbYHNpemUtJHtufWBdLGEmJnhbYGZvbnRTaXplLSR7YX1gXSxvJiZ4W2BhcHBlYXJhbmNlLSR7b31gXSx0JiZ4LmFuaW1hdGVkLGwmJnguZ3JheSxyKX1mdW5jdGlvbiBBKGUpe2NvbnN0e2lkOmQsdGl0bGU6dSx0YWJJbmRleDp0LHJvbGU6Yyxjb250ZW50Q2xhc3NOYW1lOm4sY2hpbGRyZW46byxvbkNsaWNrOmwsb25Nb3VzZURvd246cixyZWZlcmVuY2U6aSxncmF5U3R5bGVzOnMsLi4uZn09ZTtyZXR1cm4gYS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Li4uKDAsQy5maWx0ZXJBcmlhUHJvcHMpKGYpLC4uLigwLEMuZmlsdGVyRGF0YVByb3BzKShmKSxpZDpkLHRpdGxlOnUsdGFiSW5kZXg6dCxyb2xlOmMsY2xhc3NOYW1lOkkoZSksb25DbGljazpsLG9uTW91c2VEb3duOnIscmVmOml9LGEuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZTpFKCkoeC5jb250ZW50LG4pfSxvKSl9IWZ1bmN0aW9uKGUpe2UuTWVkaXVtPSJtIixlLkxhcmdlPSJsIn0oaHx8KGg9e30pKSxmdW5jdGlvbihlKXtlLkRlZmF1bHQ9ImRlZmF1bHQiLGUuVGV4dD0idGV4dCJ9KHB8fChwPXt9KSksZnVuY3Rpb24oZSl7ZS5TbWFsbD0icyIsZS5NZWRpdW09Im0ifShifHwoYj17fSkpO3ZhciB6PXUoMTI3OTEpO2Z1bmN0aW9uIFQoZSl7Y29uc3R7Y2xhc3NOYW1lOmQsaXRlbUNsYXNzTmFtZTp1LGl0ZW1Db250ZW50Q2xhc3NOYW1lOnQsaXRlbXM6YyxnZXRJdGVtVGl0bGU6bixnZXRJdGVtVG9vbHRpcDpvLGdldEl0ZW1LZXk6bCxjaGVja0l0ZW1Jc0FjdGl2ZTpyLGdldEl0ZW1Db2xvcjppLG9uQnViYmxlQ2xpY2s6cyxtdWx0aWxpbmU6ZixjaGlsZHJlbjptLEJ1YmJsZUNvbXBvbmVudDpoPUEscmVmZXJlbmNlOnAsZm9udFNpemU6YixncmF5U3R5bGVzOmd9PWU7cmV0dXJuIGEuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOkUoKShkLHouYnViYmxlcyxmJiZ6Lm11bHRpTGluZSkscmVmOnB9LGMubWFwKCgoZSxkKT0+YS5jcmVhdGVFbGVtZW50KGgse2tleTpsP2woZSk6ZCxpZDpsP2woZSk6ZC50b1N0cmluZygpLGNsYXNzTmFtZTpFKCkoei5idWJibGUsdSksY29udGVudENsYXNzTmFtZTp0LG9uQ2xpY2s6ZnVuY3Rpb24oKXtzKGUpfSxvbk1vdXNlRG93bjpmdW5jdGlvbihlKXtlLnByZXZlbnREZWZhdWx0KCl9LAppc0FjdGl2ZTohIXImJnIoZSksYWN0aXZlQ29sb3I6aT9pKGUpOnZvaWQgMCxmb250U2l6ZTpiLHRpdGxlOm8/byhlKTp2b2lkIDAsZ3JheVN0eWxlczpnfSxuKGUpKSkpLG0pfWNvbnN0IE09bmV3IFNldChbInR5cGUiLCJzaG9ydF9uYW1lIiwiZXhjaGFuZ2UiLCJ1cGRhdGVfbW9kZSIsImxvZ28iLCJjdXJyZW5jeV9jb2RlIiwidHlwZXNwZWNzIiwicHJvX25hbWUiLCJsYW5ndWFnZSIsImRlc2NyaXB0aW9uIiwibG9jYWxfZGVzY3JpcHRpb24iLCJzaG9ydF9kZXNjcmlwdGlvbiJdKTt2YXIgaz11KDIwMTk2MSksRD11KDQ1NjcwNSksTj11KDkxOTk4NSksTD11KDkyOTQ4OCksaj11KDEzNjYzKSxfPXUoNzgzMjU0KSxSPXUoNTI4Mzk2KSxXPXUoMzQ0MTAzKSxPPXUoNjk3NDcyKSxGPXUoNjY0Mzg2KSxIPXUoNjQzOTAzKSxWPXUoMjczMzEwKSxQPXUoMTU2ODI5KSxCPXUoMTI4ODE0KTtjb25zdCBVPSgwLHUoNjIzNTExKS5sYXp5VmFsdWUpKCgoKT0+bmV3IEIuUXVvdGVTZXNzaW9uU25hcHNob3Rlcih7bmFtZToic3ltYm9sLXNlYXJjaC13YXRjaGxpc3QiLGZpZWxkczpbLi4uTV0sYXBpOndpbmRvdy5DaGFydEFwaUluc3RhbmNlfSkpKTt2YXIgRyxLPXUoMTAxNzEyKSwkPXUoNDk4NjUxKSxZPXUoNDc5MzQpLHE9dSg1NjEyMDUpLFo9dSg2MDA1MzgpLEo9dSgyMzU4MjcpO2Z1bmN0aW9uIFEoZSl7Y29uc3R7c3ltYm9sOmQsb25DbGljazpjfT1lLHthY3RpdmVTeW1ib2w6bn09KDAsai51c2VFbnN1cmVkQ29udGV4dCkocS5TeW1ib2xTZWFyY2hJdGVtc0RpYWxvZ0NvbnRleHQpLFtvLGxdPSgwLGEudXNlU3RhdGUpKCgoKT0+e2NvbnN0IGU9VSgpLmdldFNuYXBzaG90U3luYyhkLE0pO3JldHVybiBudWxsPT09ZT9HLkxvYWRpbmc6ImVycm9yIj09PWUuc3RhdHVzP0cuSW52YWxpZDpHLlJlc29sdmVkfSkpO2lmKCgwLGEudXNlRWZmZWN0KSgoKCk9PntpZihvPT09Ry5Mb2FkaW5nKXtsZXQgZT0hMDtyZXR1cm4gVSgpLmdldFNuYXBzaG90KGQsTSkudGhlbigoKCk9PntlJiZsKEcuUmVzb2x2ZWQpfSkpLCgpPT5lPSExfXJldHVybigpPT57fX0pLFtdKSxvPT09Ry5Mb2FkaW5nKXJldHVybiBhLmNyZWF0ZUVsZW1lbnQoRi5TeW1ib2xTZWFyY2hEaWFsb2dDb250ZW50SXRlbSx7dGl0bGU6KDAsSC5zYWZlU2hvcnROYW1lKShkKSxkYW5nZXJvdXNEZXNjcmlwdGlvbkhUTUw6IiAiLG9uQ2xpY2s6RSxpc0FjdGl2ZTohMSxoaWRlRXhjaGFuZ2U6ITAsaGlkZU1hcmtlZExpc3RGbGFnOiEwLHNob3J0TmFtZTooMCxILnNhZmVTaG9ydE5hbWUpKGQpfSk7Y29uc3Qgcj1VKCkuZ2V0U25hcHNob3RTeW5jKGQsTSk7aWYobz09PUcuSW52YWxpZHx8bnVsbD09PXJ8fCJlcnJvciI9PT1yLnN0YXR1cylyZXR1cm4gYS5jcmVhdGVFbGVtZW50KEYuU3ltYm9sU2VhcmNoRGlhbG9nQ29udGVudEl0ZW0se3RpdGxlOigwLEguc2FmZVNob3J0TmFtZSkoZCksc2hvcnROYW1lOigwLEguc2FmZVNob3J0TmFtZSkoZCksaW52YWxpZDohMH0pO2NvbnN0IGk9bj9uPT09ci52YWx1ZXMucHJvX25hbWU6dm9pZCAwO2lmKCEoMCxZLmVuYWJsZWQpKCJJRENfQVZBSUxBQkxFX0RFTEFZIikmJigoMCxLLmlzU2ZRdW90ZURhdGEpKHIpfHwoMCwkLmlzSURDRXhjaGFuZ2UpKCgwLFcuZ2V0RXhjaGFuZ2UpKHIuc3ltYm9sbmFtZSkpKSlyZXR1cm4gYS5jcmVhdGVFbGVtZW50KEYuU3ltYm9sU2VhcmNoRGlhbG9nQ29udGVudEl0ZW0se3RpdGxlOmEuY3JlYXRlRWxlbWVudChYLG51bGwsKDAsSC5zYWZlU2hvcnROYW1lKShkKSksZGFuZ2Vyb3VzRGVzY3JpcHRpb25IVE1MOl8udChudWxsLHZvaWQgMCx1KDc0NDg3MCkpLnRvVXBwZXJDYXNlKCksb25DbGljazpFLGlzQWN0aXZlOmksaGlkZUV4Y2hhbmdlOiEwLGhpZGVNYXJrZWRMaXN0RmxhZzohMCxzaG9ydE5hbWU6KDAsSC5zYWZlU2hvcnROYW1lKShkKX0pO2NvbnN0IHM9ci52YWx1ZXMudXBkYXRlX21vZGUse3R5cGU6Zix0eXBlc3BlY3M6bSxzaG9ydF9uYW1lOmgsZXhjaGFuZ2U6cCxsb2dvOmJ9PXIudmFsdWVzLGc9KDAsUi5nZXRUcmFuc2xhdGVkU3ltYm9sRGVzY3JpcHRpb24pKHIudmFsdWVzKSx2PSgwLFcuZ2V0RXhjaGFuZ2UpKGQpLFM9KDAsTy5nZXRFeGNoYW5nZXMpKCkuZmluZCgoZT0+ZS52YWx1ZT09PXYpKSx3PSgwLFAuaGFzQ3J5cHRvVHlwZXNwZWMpKG0/P1tdKT8iY3J5cHRvIjpmO3JldHVybiBhLmNyZWF0ZUVsZW1lbnQoRi5TeW1ib2xTZWFyY2hEaWFsb2dDb250ZW50SXRlbSx7dGl0bGU6aCxmdWxsU3ltYm9sTmFtZTpkLGlzRW9kOiJlbmRvZmRheSI9PT1zJiYiZWNvbm9taWMiIT09ZixkYW5nZXJvdXNEZXNjcmlwdGlvbkhUTUw6ZyxvbkNsaWNrOkUsaXNBY3RpdmU6aSxzb3VyY2VMb2dvczpbe2NvdW50cnk6Uz8uY291bnRyeSxwcm92aWRlcklkOlM/LnByb3ZpZGVySWR9XSxleGNoYW5nZU5hbWU6cCxtYXJrZXRUeXBlOncsaGlkZU1hcmtlZExpc3RGbGFnOiEwLGxvZ29EYXRhOmIsdHlwZTpmLHNob3J0TmFtZTooMCxILnNhZmVTaG9ydE5hbWUpKGQpfSk7ZnVuY3Rpb24gRSgpeygwLHkudHJhY2tFdmVudCkoIldhdGNobGlzdCIsIk1vYmlsZSBTUyIsIlNlbGVjdCBzeW1ib2wiKSxvIT09Ry5JbnZhbGlkJiZ0Lmxpbmtpbmcuc2V0U3ltYm9sQW5kTG9nSW5pdGlhdG9yKGQsInN5bWJvbCBzZWFyY2giKSxjJiZjKCl9fWZ1bmN0aW9uIFgoZSl7cmV0dXJuIGEuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOkouaWNvbldyYXB9LGUuY2hpbGRyZW4sYS5jcmVhdGVFbGVtZW50KFYuSWNvbix7aWNvbjpaLGNsYXNzTmFtZTpKLnNmV2FybmluZ0ljb259KSl9IWZ1bmN0aW9uKGUpe2UuTG9hZGluZz0ibG9hZGluZyIsZS5SZXNvbHZlZD0icmVzb2x2ZWQiLGUuSW52YWxpZD0iaW52YWxpZCJ9KEd8fChHPXt9KSk7dmFyIGVlPXUoNjk4NTAxKTtmdW5jdGlvbiBkZShlKXtyZXR1cm4gYS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6ZWUuY29udGFpbmVyfSxlLmNoaWxkcmVuKX12YXIgdWU9dSg3MzI1MzMpLHRlPXUoMzY2MjYyKSxjZT11KDQyOTk5MiksbmU9dSg3Nzk5MzkpLG9lPXUoNzYwMzkwKSxhZT11KDUxMDU5OCksbGU9dSg5MjEwMzEpCjtmdW5jdGlvbiByZShlKXtjb25zdFtkLHVdPSgwLGEudXNlU3RhdGUpKFtdKSx7c2VhcmNoUmVmOnQsb25DbG9zZTpjfT0oMCxqLnVzZUVuc3VyZWRDb250ZXh0KShxLlN5bWJvbFNlYXJjaEl0ZW1zRGlhbG9nQ29udGV4dCksW24sb109KDAsYS51c2VTdGF0ZSkobnVsbCksW2wscl09KDAsYS51c2VTdGF0ZSkoW10pLGk9KDAsYS51c2VSZWYpKG51bGwpLHM9KDAsYS51c2VSZWYpKG51bGwpLGY9KDAsYS51c2VNZW1vKSgoKCk9PmQubWFwKChlPT4oMCxMLmlzU2VwYXJhdG9ySXRlbSkoZSk/YS5jcmVhdGVFbGVtZW50KGRlLHtrZXk6ZSxzeW1ib2w6ZSxjaGlsZHJlbjooMCxOLnNlcGFyYXRvclZhbFRvRGlzcGxheVZhbCkoZSl9KTphLmNyZWF0ZUVsZW1lbnQoUSx7a2V5OmUsc3ltYm9sOmUsb25DbGljazpjfSkpKSksW2RdKSxtPSgwLGEudXNlQ2FsbGJhY2spKChlPT4oMCxMLmlzU2VwYXJhdG9ySXRlbSkoZFtlXSk/MzY6dWUuUk9XX0hFSUdIVCksW2RdKTtyZXR1cm4oMCxhLnVzZUVmZmVjdCkoKCgpPT57bGV0IGUsZD0hMDtyZXR1cm4oMCxELmluaXRTeW1ib2xMaXN0U2VydmljZSkoKS50aGVuKCh1PT57aWYoIWQpcmV0dXJuO2NvbnN0e3N0b3JlOnR9PXUsYz10LmdldFN0YXRlKCksbj0oMCx0ZS5nZXRHbG9iYWxBY3RpdmVJRCkoYyk7KDAsdGUuZ2V0SXNSZWFkeUN1c3RvbUxpc3RzKShjKSYmbnVsbCE9PW4/cChjKTooZT10LnN1YnNjcmliZSgoKCk9PntpZighZClyZXR1cm47Y29uc3QgdT10LmdldFN0YXRlKCksYz0oMCx0ZS5nZXRHbG9iYWxBY3RpdmVJRCkodSk7KDAsdGUuZ2V0SXNSZWFkeUN1c3RvbUxpc3RzKSh1KSYmbnVsbCE9PWMmJigoMCxTLmVuc3VyZURlZmluZWQpKGUpKCkscCh1KSl9KSksdC5kaXNwYXRjaCgoMCxuZS5nZXRDdXN0b21XYXRjaGxpc3RzVGh1bmspKG51bGwpKSx0LmRpc3BhdGNoKCgwLG5lLmdldEFjdGl2ZVdhdGNobGlzdFRodW5rKShudWxsKSkpfSkpLCgpPT57ZD0hMSxlJiZlKCl9fSksW10pLGEuY3JlYXRlRWxlbWVudChhLkZyYWdtZW50LG51bGwsYS5jcmVhdGVFbGVtZW50KFQse2l0ZW1DbGFzc05hbWU6bGUuc3ltYm9sTGlzdCxpdGVtczpsLGdldEl0ZW1UaXRsZTplPT5hLmNyZWF0ZUVsZW1lbnQoYWUuTGVhZGluZ0Vtb2ppVGV4dCx7dGV4dDooMCxOLmdldFRyYW5zbGF0ZWRMaXN0VGl0bGUpKGUpfSksZ2V0SXRlbUtleTplPT5lLmlkLGNoZWNrSXRlbUlzQWN0aXZlOmU9PmUuaWQ9PT1uLGdldEl0ZW1Db2xvcjplPT4iY3VzdG9tIj09PWUudHlwZT9udWxsOmUuY29sb3Isb25CdWJibGVDbGljazpmdW5jdGlvbihlKXtoKGUuaWQsZS5zeW1ib2xzKSwoMCx5LnRyYWNrRXZlbnQpKCJXYXRjaGxpc3QiLCJNb2JpbGUgU1MiLCJTZWxlY3QgbGlzdCIpfSxncmF5U3R5bGVzOiEwfSksYS5jcmVhdGVFbGVtZW50KGsuU3ltYm9sU2VhcmNoRmVlZCx7dmlydHVhbExpc3RLZXk6bnx8dm9pZCAwLGxpc3RXcmFwUmVmOnMsbGlzdFJlZjppLG9uVG91Y2hNb3ZlOmZ1bmN0aW9uKCl7dC5jdXJyZW50Py5ibHVyKCl9LGl0ZW1zOmYsZ2V0SXRlbVNpemU6bX0pKTtmdW5jdGlvbiBoKGUsZCl7Y29uc3QgdD1kLmZpbHRlcigoZT0+ISgwLEwuaXNTZXBhcmF0b3JJdGVtKShlKSkpO1UoKS5nZXRTbmFwc2hvdHNGb3JBbGwodCxNKSxvKGUpLHUoZCksaS5jdXJyZW50Py5zY3JvbGxUbygwKX1mdW5jdGlvbiBwKGUpe2NvbnN0IGQ9KDAsdGUuZ2V0R2xvYmFsQWN0aXZlSUQpKGUpO2lmKCFkKXJldHVybjtjb25zdCB1PVsuLi4oMCxjZS5nZXRNYXJrZWRMaXN0cykoZSksLi4uKDAsdGUuZ2V0Q3VzdG9tTGlzdHMpKGUpXS5maWx0ZXIoKGU9PnZvaWQgMCE9PWUmJmUuc3ltYm9scy5sZW5ndGg+MCkpLnNvcnQoZnVuY3Rpb24oZSl7cmV0dXJuKGQsdSk9PigwLG9lLmlzRGVsZXRlZFN5bWJvbHNMaXN0KShkLmlkKSYmZC5pZCE9PWU/MTooMCxvZS5pc0RlbGV0ZWRTeW1ib2xzTGlzdCkoZC5pZCkmJnUuaWQhPT1lfHxkLmlkPT09ZT8tMTp1LmlkPT09ZT8xOiJjb2xvcmVkIj09PWQudHlwZSYmImNvbG9yZWQiIT09dS50eXBlPy0xOiJjb2xvcmVkIj09PXUudHlwZSYmImNvbG9yZWQiIT09ZC50eXBlPzE6ImN1c3RvbSI9PT1kLnR5cGUmJiJjdXN0b20iPT09dS50eXBlP2QubmFtZS5sb2NhbGVDb21wYXJlKHUubmFtZSk6MH0oZCkpO2lmKHIodSksIXUubGVuZ3RoKXJldHVybiB2b2lkIHQuY3VycmVudD8uZm9jdXMoKTtjb25zdCBjPXUuZmluZCgoZT0+ZS5pZD09PWQpKSxuPXZvaWQgMCE9PWM/Yy5zeW1ib2xzOltdO2lmKG4ubGVuZ3RoKWgoZCxuKTtlbHNle2NvbnN0IGU9dS5maW5kKChlPT5lLnN5bWJvbHMubGVuZ3RoKSk7ZSYmaChlLmlkLGUuc3ltYm9scyl9fX12YXIgaWU9dSgzNjY1OTcpLHNlPXUoNzIwNjc3KSxmZT11KDUwNDA3KTtmdW5jdGlvbiBtZShlKXtjb25zdHttb2RlOmQsc2V0TW9kZTp1LHNlYXJjaFJlZjp0LHNlYXJjaFNwcmVhZHM6YyxzZWxlY3RlZFN5bWJvbFR5cGU6bixzZWxlY3RlZFNlYXJjaFNvdXJjZTpvLGNhY2hlZElucHV0VmFsdWU6bH09KDAsai51c2VFbnN1cmVkQ29udGV4dCkocS5TeW1ib2xTZWFyY2hJdGVtc0RpYWxvZ0NvbnRleHQpLHtyZXNldFJlY29tbWVuZHM6cix1cGRhdGVSZWNvbW1lbmRzOmksbGlzdFJlZjpzLHNlYXJjaFRva2VuOmYsaXNCcm9rZXJDaGVja2VkOm0saXNBY2NvdW50RmlsdGVyQ2hlY2tlZDpofT0oMCxqLnVzZUVuc3VyZWRDb250ZXh0KShmZS5TeW1ib2xTZWFyY2hEaWFsb2dCb2R5Q29udGV4dCk7cmV0dXJuKDAsYS51c2VFZmZlY3QpKCgoKT0+e3ZvaWQgMCE9PWYmJnImJmkmJigiIiE9PWYudHJpbSgpfHxjP2koZixuLG8pOnIoKSxiKCkpfSksW2YsYyxuLG8sbSxoXSksKDAsdi5pc0ZlYXR1cmVzZXRFbmFibGVkKSgid2lkZ2V0Iik/YS5jcmVhdGVFbGVtZW50KGllLkRpYWxvZ1NlYXJjaCx7Li4uZSxjaGlsZHJlbjp2b2lkIDAsb25DYW5jZWw6InN5bWJvbFNlYXJjaCI9PT1kP3A6dm9pZCAwfSk6YS5jcmVhdGVFbGVtZW50KHNlLlNlYXJjaElucHV0LHsuLi5lLGVuZFNsb3Q6dm9pZCAwLG9uUmVzZXQ6cCxzaG93Q2xlYXJBbHdheXM6InN5bWJvbFNlYXJjaCI9PT1kfSk7ZnVuY3Rpb24gcCgpe2Uub25SZXNldD8uKCksCiJzeW1ib2xTZWFyY2giPT09ZCYmdC5jdXJyZW50JiZyJiYodC5jdXJyZW50LmJsdXIoKSx1KCJ3YXRjaGxpc3QiKSxyKCksYigpLGwmJmwuY3VycmVudCYmKGwuY3VycmVudD0iIikpfWZ1bmN0aW9uIGIoKXtzPy5jdXJyZW50Py5zY3JvbGxUbygwKX19dmFyIGhlPXUoNzE3MjYzKTtmdW5jdGlvbiBwZShlKXtjb25zdHttb2RlOmQsc3ltYm9sU2VhcmNoQ29udGVudDp0fT0oMCxqLnVzZUVuc3VyZWRDb250ZXh0KShxLlN5bWJvbFNlYXJjaEl0ZW1zRGlhbG9nQ29udGV4dCkse2VtcHR5VGV4dENsYXNzTmFtZTpjLHN5bWJvbFNlYXJjaFN0YXRlOm59PSgwLGoudXNlRW5zdXJlZENvbnRleHQpKGZlLlN5bWJvbFNlYXJjaERpYWxvZ0JvZHlDb250ZXh0KTtyZXR1cm4icmVzZXRGaWx0ZXIiPT09bnx8InJlc2V0VGFiRmlsdGVyIj09PW4/YS5jcmVhdGVFbGVtZW50KGhlLlN5bWJvbFNlYXJjaE5vUmVzdWx0LHsuLi5lLGNsYXNzTmFtZTp2b2lkIDB9KTphLmNyZWF0ZUVsZW1lbnQoaGUuU3ltYm9sU2VhcmNoTm9SZXN1bHQsbnVsbCxhLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpjfSxmdW5jdGlvbigpe2lmKCJleGNoYW5nZSI9PT1kKXJldHVybiBfLnQobnVsbCx2b2lkIDAsdSg0NzIyOTkpKTtyZXR1cm4iIiE9PXQudG9rZW4udHJpbSgpP18udChudWxsLHZvaWQgMCx1KDQxNzc3KSk6Xy50KG51bGwsdm9pZCAwLHUoMTkyOTEwKSl9KCkpKX12YXIgYmUsZ2UsdmUsU2U9dSgzNjIyMzkpO2FzeW5jIGZ1bmN0aW9uIHllKGUpe2NvbnN0e3NlYXJjaFR5cGU6ZCxzZWFyY2hSZXN1bHQ6dT0iIixpbnB1dFZhbHVlOnQ9IiJ9PWUsYz1hd2FpdCgwLFNlLmdldFRyYWNrZXIpKCk7YyYmYy50cmFja1NlYXJjaFRvb2xiYXIoZCx0LHUsZnVuY3Rpb24oZSl7Y29uc3R7ZmlsdGVyUGFyYW1zOmQsYWN0aW9uOnUsbnVtYmVySW5MaXN0OnQsdGFyZ2V0OmMsZmVhdHVyZWRTeW1ib2xOYW1lOm4sc2VhcmNoUmVzdWx0Om99PWUsYT17YWN0aW9uOnV9O3ZvaWQgMCE9PWMmJihhLnRhcmdldD1jKTt2b2lkIDAhPT1uJiYoYS5zaG93X2ZlYXR1cmVkX3N5bWJvbD1uLGEuc2VsZWN0X2ZlYXR1cmVkX3N5bWJvbD1uPT09bz9uOm51bGwpO3ZvaWQgMCE9PXQmJihhLnNlbGVjdGVkX2lkeF9vYmplY3Q9dCk7ZC5yZXN1bHRfbGlzdD8ubGVuZ3RoJiYoYS5udW1iZXJfb2ZfcmVzdWx0X2xpc3Q9ZC5yZXN1bHRfbGlzdC5sZW5ndGgpO3JldHVybiBPYmplY3Qua2V5cyhkKS5mb3JFYWNoKChlPT57InJlc3VsdF9saXN0Ij09PWU/ZFtlXT8ubGVuZ3RoJiYoYVtlXT1kW2VdKTphW2VdPWRbZV0/ZFtlXToiQWxsIn0pKSxKU09OLnN0cmluZ2lmeShhKX0oZSkpfSFmdW5jdGlvbihlKXtlLkNsaWNrPSJjbGljayIsZS5FbnRlcj0iZW50ZXIiLGUuRW1wdHk9ImVtcHR5X3Jlc3VsdCJ9KGJlfHwoYmU9e30pKSxmdW5jdGlvbihlKXtlLlJlc3VsdExpc3Q9InJlc3VsdF9saXN0IixlLkNvdW50cnk9ImNvdW50cnkiLGUuRXhjaGFuZ2U9ImV4Y2hhbmdlIn0oZ2V8fChnZT17fSkpLGZ1bmN0aW9uKGUpe2UuRW1wdHlSZXN1bHRNZW51PSJlbXB0eV9yZXN1bHRfX21lbnUiLGUuRW1wdHlSZXN1bHRDaGFydD0iZW1wdHlfcmVzdWx0X19zdXBlcmNoYXJ0cyJ9KHZlfHwodmU9e30pKTt2YXIgd2U9dSgyNTMyNSksRWU9dSg0OTI5NzgpLENlPXUoNTU4OTc5KSx4ZT11KDU4Mzg0MiksSWU9dSgzODQxNTQpLEFlPXUoMzg0NDU4KTtmdW5jdGlvbiB6ZShlKXtjb25zdHtpc1NlbGVjdGVkOmQsZXhpc3RJbldhdGNobGlzdDp0LGZpbmRJbldhdGNobGlzdDpjLGFkZFRvV2F0Y2hsaXN0Om4scmVtb3ZlRnJvbVdhdGNobGlzdDpvfT1lLHtzZWxlY3RlZEFjdGlvbjpsfT0oMCxTLmVuc3VyZU5vdE51bGwpKCgwLGEudXNlQ29udGV4dCkod2UuU3ltYm9sU2VhcmNoV2F0Y2hsaXN0Q29udGV4dCkpO3JldHVybiBhLmNyZWF0ZUVsZW1lbnQoYS5GcmFnbWVudCxudWxsLHQ/YS5jcmVhdGVFbGVtZW50KGEuRnJhZ21lbnQsbnVsbCxhLmNyZWF0ZUVsZW1lbnQoRWUuTGlzdEl0ZW1CdXR0b24se2NsYXNzTmFtZTpFKCkoQWUuYWN0aW9uLEFlLnJlbW92ZUFjdGlvbixkJiYyPT09bCYmQWUuc2VsZWN0ZWQsImFwcGx5LWNvbW1vbi10b29sdGlwIiksb25DbGljazpvLGljb246Q2UsdGl0bGU6Xy50KG51bGwsdm9pZCAwLHUoOTY4MDQ3KSl9KSxhLmNyZWF0ZUVsZW1lbnQoRWUuTGlzdEl0ZW1CdXR0b24se2NsYXNzTmFtZTpFKCkoQWUuYWN0aW9uLEFlLnRhcmdldEFjdGlvbixkJiYxPT09bCYmQWUuc2VsZWN0ZWQsImFwcGx5LWNvbW1vbi10b29sdGlwIiksb25DbGljazpjLGljb246SWUsdGl0bGU6Xy50KG51bGwsdm9pZCAwLHUoNzY2NjIyKSl9KSk6YS5jcmVhdGVFbGVtZW50KEVlLkxpc3RJdGVtQnV0dG9uLHtjbGFzc05hbWU6RSgpKEFlLmFjdGlvbixBZS5hZGRBY3Rpb24sZCYmMD09PWwmJkFlLnNlbGVjdGVkLCJhcHBseS1jb21tb24tdG9vbHRpcCIpLG9uQ2xpY2s6bixpY29uOnhlLHRpdGxlOl8udChudWxsLHZvaWQgMCx1KDQxODIzOCkpfSkpfXZhciBUZT11KDIzNTcyNCksTWU9dSg1MTk1MTUpLGtlPXUoNjU0NjM2KTt2YXIgRGU9dSg5NjQzNjEpLE5lPXUoOTgzNjE2KSxMZT11KDg1NjQwMCk7Y29uc3QgamU9KDAsdSgxNTM1ODIpLmlzUGxhdGZvcm1Nb2JpbGUpKCk7ZnVuY3Rpb24gX2UoZSl7Y29uc3QgZD1uZXcgZy5XYXRjaGVkVmFsdWUoe30pLHU9KDAsby5nZXRTeW1ib2xTZWFyY2hDb21wbGV0ZU92ZXJyaWRlRnVuY3Rpb24pKCkse2RlZmF1bHRWYWx1ZTphLHNob3dTcHJlYWRBY3Rpb25zOmwsc291cmNlOnIsb25TZWFyY2hDb21wbGV0ZTppLHRyYWNrUmVzdWx0c09wdGlvbnM6cyxzZXRTeW1ib2w6Zj0oZSxkKT0+dC5saW5raW5nLnNldFN5bWJvbEFuZExvZ0luaXRpYXRvcihlLnN5bWJvbCxkKSxzZWFyY2hUeXBlOmgsLi4ucH09ZSxiPXsuLi5wLHNob3dTcHJlYWRBY3Rpb25zOmw/PygwLG4uY2FuU2hvd1NwcmVhZEFjdGlvbnMpKCksb25TeW1ib2xGaWx0ZXJzUGFyYW1zQ2hhbmdlOnM/LnRyYWNrUmVzdWx0cz9lPT5kLnNldFZhbHVlKGUpOnZvaWQgMCxvblNlYXJjaENvbXBsZXRlOihlLHQpPT57Y29uc3QgYz10Py5zeW1ib2xUeXBlCjt1KGVbMF0uc3ltYm9sLGVbMF0ucmVzdWx0KS50aGVuKChlPT57ZihlLCJzeW1ib2wgc2VhcmNoIiksaT8uKGUpLCgwLHkudHJhY2tFdmVudCkoIk5ldyBTUyIsIiI9PT1jPyJBbGwiOigwLFMuZW5zdXJlRGVmaW5lZCkoYyksIkNoYXJ0IiksciYmYSE9PWUuc3ltYm9sJiYoMCxTZS5nZXRUcmFja2VyKSgpLnRoZW4oKGQ9PntudWxsIT09ZCYmZC50cmFja0NoYW5nZVN5bWJvbChlLnN5bWJvbCxyKX0pKSwhcz8udHJhY2tSZXN1bHRzfHx0Py5pc1NwcmVhZHx8Im9wdGlvbnMiPT09YyYmcC5lbmFibGVPcHRpb25zQ2hhaW58fHllKHsuLi50LGZpbHRlclBhcmFtczpkLnZhbHVlKCksc2VhcmNoUmVzdWx0OmUuc3ltYm9sLHNlYXJjaFR5cGU6aCxhY3Rpb246dD8uaXNLZXlib2FyZEV2ZW50PyJlbnRlciI6ImNsaWNrIn0pfSkpfSxvbkVtcHR5UmVzdWx0czpzPy50cmFja1Jlc3VsdHM/ZnVuY3Rpb24oZSl7eWUoe2lucHV0VmFsdWU6ZSxmaWx0ZXJQYXJhbXM6ZC52YWx1ZSgpLHNlYXJjaFR5cGU6KDAsUy5lbnN1cmVEZWZpbmVkKShzKS5lbXB0eVNlYXJjaFR5cGUsYWN0aW9uOiJlbXB0eV9yZXN1bHQifSl9OnZvaWQgMH07amUmJiEoMCx2LmlzRmVhdHVyZXNldEVuYWJsZWQpKCJ3aWRnZXQiKT9tKHsuLi5iLGluaXRpYWxNb2RlOiJ3YXRjaGxpc3QiLGluaXRpYWxTY3JlZW46cmUsc2VhcmNoSW5wdXQ6bWUsZW1wdHlTdGF0ZTpwZSxmdWxsc2NyZWVuOiEwLGRpYWxvZ1dpZHRoOiJmaXhlZCIsYXV0b2ZvY3VzOiFjLm1vYmlsZXRvdWNofSk6bSh7Li4uYixkZWZhdWx0VmFsdWU6YX0pfWNvbnN0IFJlPXtTeW1ib2xTZWFyY2hXYXRjaGxpc3REaWFsb2dDb250ZW50SXRlbTpmdW5jdGlvbihlKXtjb25zdHthZGRUb1dhdGNobGlzdDpkLHJlbW92ZUZyb21XYXRjaGxpc3Q6dSxmaW5kSW5XYXRjaGxpc3Q6dCxleGlzdEluV2F0Y2hsaXN0Om4saXNTZWxlY3RlZDpvLGZ1bGxTeW1ib2xOYW1lOmwsLi4ucn09ZSx7b25DbG9zZTppLHNlYXJjaFJlZjpzLHNlYXJjaFNwcmVhZHM6Zn09KDAsUy5lbnN1cmVOb3ROdWxsKSgoMCxhLnVzZUNvbnRleHQpKHEuU3ltYm9sU2VhcmNoSXRlbXNEaWFsb2dDb250ZXh0KSkse3NldFNlbGVjdGVkQWN0aW9uOm0saXNTcHJlYWRPck11bHRpcGxlTW9kZTpoLGFkZEFmdGVyOnAsY2xlYXJUYXJnZXRTeW1ib2w6YixoaWdobGlnaHRlZDpnLGhpZ2hsaWdodDp2fT0oMCxTLmVuc3VyZU5vdE51bGwpKCgwLGEudXNlQ29udGV4dCkod2UuU3ltYm9sU2VhcmNoV2F0Y2hsaXN0Q29udGV4dCkpLHc9aChmLHMpO3JldHVybigwLGEudXNlTGF5b3V0RWZmZWN0KSgoKCk9PntvJiZtKHZvaWQgMCE9PW4/bj8yOjA6bnVsbCl9KSxbbyxuXSksYS5jcmVhdGVFbGVtZW50KEYuU3ltYm9sU2VhcmNoRGlhbG9nQ29udGVudEl0ZW0sey4uLnIsZnVsbFN5bWJvbE5hbWU6bCxvbkNsaWNrOnc/ZS5vbkNsaWNrOmZ1bmN0aW9uKHUpe2lmKHZvaWQgMD09PWwpcmV0dXJuO2lmKHZvaWQgMD09PW4pcmV0dXJuIHZvaWQoMCxTLmVuc3VyZURlZmluZWQpKGUub25DbGljaykodSk7bj8oeCgpLEMoIndhdGNobGlzdCByZW1vdmUgY2xpY2siLHUpLHA9PT1sJiZiKCkpOigoMCxrZS5ydW5PclNpZ25JbldpdGhQcm9tbykoIndhdGNoTGlzdCIse3NvdXJjZToiYWRkIHN5bWJvbCB0byB3YXRjaGxpc3QifSwoKCk9PntkKE1lLldBVENITElTVF9XSURHRVRfSUQsW2xdLHApLGUuaWQmJnYoZS5pZCl9KSksQygid2F0Y2hsaXN0IGFkZCBjbGljayIsdSkpO0UodSl9LGlzSGlnaGxpZ2h0ZWQ6Zz09PWUuaWQsaXNTZWxlY3RlZDpvLGFjdGlvbnM6dm9pZCAwPT09bnx8dz92b2lkIDA6YS5jcmVhdGVFbGVtZW50KHplLHtpc1NlbGVjdGVkOm8sZXhpc3RJbldhdGNobGlzdDpuLGFkZFRvV2F0Y2hsaXN0OmZ1bmN0aW9uKHUpe2lmKHUuc3RvcFByb3BhZ2F0aW9uKCksdm9pZCAwPT09bClyZXR1cm47KDAsa2UucnVuT3JTaWduSW5XaXRoUHJvbW8pKCJ3YXRjaExpc3QiLHtzb3VyY2U6ImFkZCBzeW1ib2wgdG8gd2F0Y2hsaXN0In0sKCgpPT57ZChNZS5XQVRDSExJU1RfV0lER0VUX0lELFtsXSxwKSxlLmlkJiZ2KGUuaWQpfSkpLEUodSksQygid2F0Y2hsaXN0IGFkZCBidXR0b24iLHUpfSxyZW1vdmVGcm9tV2F0Y2hsaXN0OmZ1bmN0aW9uKGUpe2lmKGUuc3RvcFByb3BhZ2F0aW9uKCksdm9pZCAwPT09bClyZXR1cm47eCgpLEUoZSksQygid2F0Y2hsaXN0IHJlbW92ZSBidXR0b24iLGUpLHA9PT1sJiZiKCl9LGZpbmRJbldhdGNobGlzdDpmdW5jdGlvbihlKXtpZihlLnN0b3BQcm9wYWdhdGlvbigpLHZvaWQgMD09PWwpcmV0dXJuO3QoTWUuV0FUQ0hMSVNUX1dJREdFVF9JRCxsKSxpKCksQygid2F0Y2hsaXN0IGdvdG8gYnV0dG9uIil9fSl9KTtmdW5jdGlvbiBFKGUpe2UmJigwLFRlLm1vZGlmaWVyc0Zyb21FdmVudCkoZSk9PT1UZS5Nb2RpZmllcnMuU2hpZnQ/aSgpOmMubW9iaWxldG91Y2h8fHMuY3VycmVudD8uc2VsZWN0KCl9ZnVuY3Rpb24gQyhlLGQpe2xldCB1PWU7ZCYmKDAsVGUubW9kaWZpZXJzRnJvbUV2ZW50KShkKT09PVRlLk1vZGlmaWVycy5TaGlmdCYmKHUrPSIgc2hpZnQiKSwoMCx5LnRyYWNrRXZlbnQpKCJHVUkiLCJTUyIsdSl9ZnVuY3Rpb24geCgpe3ZvaWQgMCE9PWwmJnUoTWUuV0FUQ0hMSVNUX1dJREdFVF9JRCxbbF0sdm9pZCAwLCEwKX19LFN5bWJvbFNlYXJjaFdhdGNobGlzdERpYWxvZzpmdW5jdGlvbihlKXtjb25zdHthZGRUb1dhdGNobGlzdDpkLHJlbW92ZUZyb21XYXRjaGxpc3Q6dSxmaW5kSW5XYXRjaGxpc3Q6dCwuLi5jfT1lLHtmZWVkSXRlbXM6bixzZWFyY2hSZWY6byxzZWFyY2hTcHJlYWRzOmwsc2VsZWN0ZWRJbmRleDpyLG9uU3VibWl0Omksb3BlbmVkSXRlbXM6cyxzZXRTZWxlY3RlZEluZGV4OmYsb25DbG9zZTptLGlzTW9iaWxlOmgsaXNUYWJsZXQ6cCxtb2RlOmIsc2V0TW9kZTpnLHN5bWJvbFNlYXJjaFN0YXRlOnYsdG9nZ2xlRXhwYW5kOnl9PSgwLFMuZW5zdXJlTm90TnVsbCkoKDAsCmEudXNlQ29udGV4dCkocS5TeW1ib2xTZWFyY2hJdGVtc0RpYWxvZ0NvbnRleHQpKSx7c2VsZWN0ZWRBY3Rpb246dyxzZXRTZWxlY3RlZEFjdGlvbjpDLGlzU3ByZWFkT3JNdWx0aXBsZU1vZGU6eCxhZGRBZnRlcjpJLGNsZWFyVGFyZ2V0U3ltYm9sOkEsaGlnaGxpZ2h0Onp9PSgwLFMuZW5zdXJlTm90TnVsbCkoKDAsYS51c2VDb250ZXh0KSh3ZS5TeW1ib2xTZWFyY2hXYXRjaGxpc3RDb250ZXh0KSksVD1uW3JdLE09ImV4Y2hhbmdlIj09PWI7cmV0dXJuIGEuY3JlYXRlRWxlbWVudChEZS5BZGFwdGl2ZVBvcHVwRGlhbG9nLHsuLi5jLGNsYXNzTmFtZTpFKCkoTGUuZGlhbG9nLCFoJiYocD9MZS50YWJsZXREaWFsb2c6TGUuZGVza3RvcERpYWxvZykpLGRhdGFOYW1lOiJ3YXRjaGxpc3Qtc3ltYm9sLXNlYXJjaC1kaWFsb2ciLG9uS2V5RG93bjpmdW5jdGlvbihlKXtpZihlLnRhcmdldCYmZS50YXJnZXQhPT1vLmN1cnJlbnQpcmV0dXJuO2NvbnN0IGQ9KDAsVGUuaGFzaEZyb21FdmVudCkoZSk7c3dpdGNoKGQpe2Nhc2UgMTM6cmV0dXJuIHgobCxvKT92b2lkIGkoITApOihUP2soITEpOmkoITEpLHZvaWQgby5jdXJyZW50Py5zZWxlY3QoKSk7Y2FzZSAxMytUZS5Nb2RpZmllcnMuU2hpZnQ6cmV0dXJuIHgobCxvKT92b2lkIGkoITApOnZvaWQoVD9rKCEwKTppKCEwKSk7Y2FzZSAyNzpyZXR1cm4gZS5wcmV2ZW50RGVmYXVsdCgpLE0/dm9pZCBnKCJzeW1ib2xTZWFyY2giKTp2b2lkIG0oKX1zd2l0Y2goKDAsTmUubWFwS2V5Q29kZVRvRGlyZWN0aW9uKShkKSl7Y2FzZSJibG9ja1ByZXYiOmlmKGUucHJldmVudERlZmF1bHQoKSwwPT09cnx8Imdvb2QiIT09dilyZXR1cm47aWYoLTE9PT1yKXJldHVybiB2b2lkIGYoMCk7ZihyLTEpO2JyZWFrO2Nhc2UiYmxvY2tOZXh0IjppZihlLnByZXZlbnREZWZhdWx0KCkscj09PW4ubGVuZ3RoLTF8fCJnb29kIiE9PXYpcmV0dXJuO2YocisxKTticmVhaztjYXNlImlubGluZVByZXYiOmlmKCFUKXJldHVybjtpZihULmlkJiZULm9uRXhwYW5kQ2xpY2smJnMuaGFzKFQuaWQpJiYoMj09PXd8fDA9PT13KSlyZXR1cm4gZS5wcmV2ZW50RGVmYXVsdCgpLHZvaWQgeShULmlkKTsxPT09dyYmKGUucHJldmVudERlZmF1bHQoKSxDKDIpKTticmVhaztjYXNlImlubGluZU5leHQiOmlmKCFUKXJldHVybjtpZihULmlkJiZULm9uRXhwYW5kQ2xpY2smJiFzLmhhcyhULmlkKSYmKDE9PT13fHwwPT09dykpcmV0dXJuIGUucHJldmVudERlZmF1bHQoKSx2b2lkIHkoVC5pZCk7Mj09PXcmJihlLnByZXZlbnREZWZhdWx0KCksQygxKSl9fSxiYWNrZHJvcDohMCxkcmFnZ2FibGU6ITF9KTtmdW5jdGlvbiBrKGUpe2lmKCFUfHx2b2lkIDA9PT1ULmZ1bGxTeW1ib2xOYW1lKXJldHVybjtjb25zdHtmdWxsU3ltYm9sTmFtZTpjfT1UO3N3aXRjaCh3KXtjYXNlIDA6KDAsa2UucnVuT3JTaWduSW5XaXRoUHJvbW8pKCJ3YXRjaExpc3QiLHtzb3VyY2U6ImFkZCBzeW1ib2wgdG8gd2F0Y2hsaXN0In0sKCgpPT57ZChNZS5XQVRDSExJU1RfV0lER0VUX0lELFtjXSxJKSxULmlkJiZ6KFQuaWQpfSkpO2JyZWFrO2Nhc2UgMTpyZXR1cm4gdChNZS5XQVRDSExJU1RfV0lER0VUX0lELGMpLHZvaWQgbSgpO2Nhc2UgMjp1KE1lLldBVENITElTVF9XSURHRVRfSUQsW2NdKSxJPT09YyYmQSgpfWUmJm0oKX19fX0sNDI3NzczKGUsZCx1KXsidXNlIHN0cmljdCI7dS5kKGQse0VNUFRZX0VNT0pJOigpPT50fSk7Y29uc3QgdD0iIn0sMzE1MTU0KGUsZCx1KXsidXNlIHN0cmljdCI7dS5kKGQse2Vtb2ppR3JvdXBzOigpPT5OLGlzU3VwcG9ydGVkRW1vamk6KCk9Pk0sbG9jYWxlQ29tcGFyZUVtb2ppVGl0bGVzOigpPT5ELHJlbW92ZVVuYXZhaWxhYmxlRW1vamk6KCk9PlQsc2VwYXJhdGVFbW9qaTooKT0+a30pO3ZhciB0PXUoNzc5NDc0KSxjPXUoMTg1MjcxKSxuPXUoNjYzMDQ2KSxvPXUoNjQxNTkzKSxhPXUoMTM4NjM4KSxsPXUoMjczNzMyKSxyPXUoODE0NjcwKSxpPXUoNjIwNzgxKSxzPXUoMTYxMTc3KSxmPXUoMTg1NjA1KSxtPXUoMjAyNTExKSxoPXUoNzUwNzY5KSxwPXUoNjk0NTMyKSxiPXUoOTAwMzExKSxnPXUoNTY5Nzg1KQo7Y29uc3Qgdj1bIvCfmIAiLCLwn5iDIiwi8J+YhCIsIvCfmIEiLCLwn5iGIiwi8J+YhSIsIvCfmIIiLCLwn6SjIiwi4pi677iPIiwi8J+YiiIsIvCfmIciLCLwn5mCIiwi8J+ZgyIsIvCfmIkiLCLwn5iMIiwi8J+YjSIsIvCfpbAiLCLwn5iYIiwi8J+YlyIsIvCfmJkiLCLwn5iaIiwi8J+YiyIsIvCfmJsiLCLwn5idIiwi8J+YnCIsIvCfpKoiLCLwn6SoIiwi8J+nkCIsIvCfpJMiLCLwn5iOIiwi8J+kqSIsIvCfpbMiLCLwn5iPIiwi8J+YkiIsIvCfmJ4iLCLwn5iUIiwi8J+YnyIsIvCfmJUiLCLwn5mBIiwi4pi577iPIiwi8J+YoyIsIvCfmJYiLCLwn5irIiwi8J+YqSIsIvCfpboiLCLwn5iiIiwi8J+YrSIsIvCfmKQiLCLwn5igIiwi8J+YoSIsIvCfpKwiLCLwn6SvIiwi8J+YsyIsIvCfpbUiLCLwn6W2Iiwi8J+YsSIsIvCfmKgiLCLwn5iwIiwi8J+YpSIsIvCfmJMiLCLwn6SXIiwi8J+klCIsIvCfpK0iLCLwn6SrIiwi8J+kpSIsIvCfmLYiLCLwn5iQIiwi8J+YkSIsIvCfmKwiLCLwn5mEIiwi8J+YryIsIvCfmKYiLCLwn5inIiwi8J+YriIsIvCfmLIiLCLwn6WxIiwi8J+YtCIsIvCfpKQiLCLwn5iqIiwi8J+YtSIsIvCfpJAiLCLwn6W0Iiwi8J+koiIsIvCfpK4iLCLwn6SnIiwi8J+YtyIsIvCfpJIiLCLwn6SVIiwi8J+kkSIsIvCfpKAiLCLwn5iIIiwi8J+RvyIsIvCfkbkiLCLwn5G6Iiwi8J+koSIsIvCfkqkiLCLwn5G7Iiwi8J+SgCIsIuKYoO+4jyIsIvCfkb0iLCLwn5G+Iiwi8J+kliIsIvCfjoMiLCLwn5i6Iiwi8J+YuCIsIvCfmLkiLCLwn5i7Iiwi8J+YvCIsIvCfmL0iLCLwn5mAIiwi8J+YvyIsIvCfmL4iLCLwn5GLIiwi8J+kmiIsIvCflpAiLCLinIsiLCLwn5aWIiwi8J+RjCIsIvCfpI8iLCLinIzvuI8iLCLwn6SeIiwi8J+knyIsIvCfpJgiLCLwn6SZIiwi8J+RiCIsIvCfkYkiLCLwn5GGIiwi8J+WlSIsIvCfkYciLCLimJ3vuI8iLCLwn5GNIiwi8J+RjiIsIuKciiIsIvCfkYoiLCLwn6SbIiwi8J+knCIsIvCfkY8iLCLwn5mMIiwi8J+RkCIsIvCfpLIiLCLwn6SdIiwi8J+ZjyIsIuKcje+4jyIsIvCfkoUiLCLwn6SzIiwi8J+SqiIsIvCfpr4iLCLwn6a1Iiwi8J+mvyIsIvCfprYiLCLwn5GCIiwi8J+muyIsIvCfkYMiLCLwn6egIiwi8J+mtyIsIvCfprQiLCLwn5GAIiwi8J+RgSIsIvCfkYUiLCLwn5GEIiwi8J+SiyIsIvCfqbgiLCLwn5G2Iiwi8J+nkiIsIvCfkaYiLCLwn5GnIiwi8J+nkSIsIvCfkbEiLCLwn5GoIiwi8J+nlCIsIvCfkajigI3wn6awIiwi8J+RqOKAjfCfprEiLCLwn5Go4oCN8J+msyIsIvCfkajigI3wn6ayIiwi8J+RqSIsIvCfkanigI3wn6awIiwi8J+nkeKAjfCfprAiLCLwn5Gp4oCN8J+msSIsIvCfp5HigI3wn6axIiwi8J+RqeKAjfCfprMiLCLwn6eR4oCN8J+msyIsIvCfkanigI3wn6ayIiwi8J+nkeKAjfCfprIiLCLwn5Gx4oCN4pmA77iPIiwi8J+RseKAjeKZgu+4jyIsIvCfp5MiLCLwn5G0Iiwi8J+RtSIsIvCfmY0iLCLwn5mN4oCN4pmC77iPIiwi8J+ZjeKAjeKZgO+4jyIsIvCfmY4iLCLwn5mO4oCN4pmC77iPIiwi8J+ZjuKAjeKZgO+4jyIsIvCfmYUiLCLwn5mF4oCN4pmC77iPIiwi8J+ZheKAjeKZgO+4jyIsIvCfmYYiLCLwn5mG4oCN4pmC77iPIiwi8J+ZhuKAjeKZgO+4jyIsIvCfkoEiLCLwn5KB4oCN4pmC77iPIiwi8J+SgeKAjeKZgO+4jyIsIvCfmYsiLCLwn5mL4oCN4pmC77iPIiwi8J+Zi+KAjeKZgO+4jyIsIvCfp48iLCLwn6eP4oCN4pmC77iPIiwi8J+nj+KAjeKZgO+4jyIsIvCfmYciLCLwn5mH4oCN4pmC77iPIiwi8J+Zh+KAjeKZgO+4jyIsIvCfpKYiLCLwn6Sm4oCN4pmC77iPIiwi8J+kpuKAjeKZgO+4jyIsIvCfpLciLCLwn6S34oCN4pmC77iPIiwi8J+kt+KAjeKZgO+4jyIsIvCfp5HigI3impXvuI8iLCLwn5Go4oCN4pqV77iPIiwi8J+RqeKAjeKale+4jyIsIvCfp5HigI3wn46TIiwi8J+RqOKAjfCfjpMiLCLwn5Gp4oCN8J+OkyIsIvCfp5HigI3wn4+rIiwi8J+RqOKAjfCfj6siLCLwn5Gp4oCN8J+PqyIsIvCfp5HigI3impbvuI8iLCLwn5Go4oCN4pqW77iPIiwi8J+RqeKAjeKalu+4jyIsIvCfp5HigI3wn4y+Iiwi8J+RqOKAjfCfjL4iLCLwn5Gp4oCN8J+MviIsIvCfp5HigI3wn42zIiwi8J+RqOKAjfCfjbMiLCLwn5Gp4oCN8J+NsyIsIvCfp5HigI3wn5SnIiwi8J+RqOKAjfCflKciLCLwn5Gp4oCN8J+UpyIsIvCfp5HigI3wn4+tIiwi8J+RqOKAjfCfj60iLCLwn5Gp4oCN8J+PrSIsIvCfp5HigI3wn5K8Iiwi8J+RqOKAjfCfkrwiLCLwn5Gp4oCN8J+SvCIsIvCfp5HigI3wn5SsIiwi8J+RqOKAjfCflKwiLCLwn5Gp4oCN8J+UrCIsIvCfp5HigI3wn5K7Iiwi8J+RqOKAjfCfkrsiLCLwn5Gp4oCN8J+SuyIsIvCfp5HigI3wn46kIiwi8J+RqOKAjfCfjqQiLCLwn5Gp4oCN8J+OpCIsIvCfp5HigI3wn46oIiwi8J+RqOKAjfCfjqgiLCLwn5Gp4oCN8J+OqCIsIvCfp5HigI3inIjvuI8iLCLwn5Go4oCN4pyI77iPIiwi8J+RqeKAjeKciO+4jyIsIvCfp5HigI3wn5qAIiwi8J+RqOKAjfCfmoAiLCLwn5Gp4oCN8J+agCIsIvCfp5HigI3wn5qSIiwi8J+RqOKAjfCfmpIiLCLwn5Gp4oCN8J+akiIsIvCfka4iLCLwn5Gu4oCN4pmC77iPIiwi8J+RruKAjeKZgO+4jyIsIvCflbUiLCLwn5W177iP4oCN4pmC77iPIiwi8J+Vte+4j+KAjeKZgO+4jyIsIvCfkoIiLCLwn5KC4oCN4pmC77iPIiwi8J+SguKAjeKZgO+4jyIsIvCfkbciLCLwn5G34oCN4pmC77iPIiwi8J+Rt+KAjeKZgO+4jyIsIvCfpLQiLCLwn5G4Iiwi8J+RsyIsIvCfkbPigI3imYLvuI8iLCLwn5Gz4oCN4pmA77iPIiwi8J+RsiIsIvCfp5UiLCLwn6S1Iiwi8J+RsCIsIvCfpLAiLCLwn6SxIiwi8J+RvCIsIvCfjoUiLCLwn6S2Iiwi8J+muCIsIvCfprjigI3imYLvuI8iLCLwn6a44oCN4pmA77iPIiwi8J+muSIsIvCfprnigI3imYLvuI8iLCLwn6a54oCN4pmA77iPIiwi8J+nmSIsIvCfp5nigI3imYLvuI8iLCLwn6eZ4oCN4pmA77iPIiwi8J+nmiIsIvCfp5rigI3imYLvuI8iLCLwn6ea4oCN4pmA77iPIiwi8J+nmyIsIvCfp5vigI3imYLvuI8iLCLwn6eb4oCN4pmA77iPIiwi8J+nnCIsIvCfp5zigI3imYLvuI8iLCLwn6ec4oCN4pmA77iPIiwi8J+nnSIsIvCfp53igI3imYLvuI8iLCLwn6ed4oCN4pmA77iPIiwi8J+nniIsIvCfp57igI3imYLvuI8iLCLwn6ee4oCN4pmA77iPIiwi8J+nnyIsIvCfp5/igI3imYLvuI8iLCLwn6ef4oCN4pmA77iPIiwi8J+ShiIsIvCfkobigI3imYLvuI8iLCLwn5KG4oCN4pmA77iPIiwi8J+ShyIsIvCfkofigI3imYLvuI8iLCLwn5KH4oCN4pmA77iPIiwi8J+atiIsIvCfmrbigI3imYLvuI8iLCLwn5q24oCN4pmA77iPIiwi8J+njSIsIvCfp43igI3imYLvuI8iLCLwn6eN4oCN4pmA77iPIiwi8J+njiIsIvCfp47igI3imYLvuI8iLCLwn6eO4oCN4pmA77iPIiwi8J+nkeKAjfCfpq8iLCLwn5Go4oCN8J+mryIsIvCfkanigI3wn6avIiwi8J+nkeKAjfCfprwiLCLwn5Go4oCN8J+mvCIsIvCfkanigI3wn6a8Iiwi8J+nkeKAjfCfpr0iLCLwn5Go4oCN8J+mvSIsIvCfkanigI3wn6a9Iiwi8J+PgyIsIvCfj4PigI3imYLvuI8iLCLwn4+D4oCN4pmA77iPIiwi8J+SgyIsIvCflboiLCLwn5W0Iiwi8J+RryIsIvCfka/igI3imYLvuI8iLCLwn5Gv4oCN4pmA77iPIiwi8J+nliIsIvCfp5bigI3imYLvuI8iLCLwn6eW4oCN4pmA77iPIiwi8J+nkeKAjfCfpJ3igI3wn6eRIiwi8J+RrSIsIvCfkasiLCLwn5GsIiwi8J+SjyIsIvCfkajigI3inaTvuI/igI3wn5KL4oCN8J+RqCIsIvCfkanigI3inaTvuI/igI3wn5KL4oCN8J+RqSIsIvCfkpEiLCLwn5Go4oCN4p2k77iP4oCN8J+RqCIsIvCfkanigI3inaTvuI/igI3wn5GpIiwi8J+RqiIsIvCfkajigI3wn5Gp4oCN8J+RpiIsIvCfkajigI3wn5Gp4oCN8J+RpyIsIvCfkajigI3wn5Gp4oCN8J+Rp+KAjfCfkaYiLCLwn5Go4oCN8J+RqeKAjfCfkabigI3wn5GmIiwi8J+RqOKAjfCfkanigI3wn5Gn4oCN8J+RpyIsIvCfkajigI3wn5Go4oCN8J+RpiIsIvCfkajigI3wn5Go4oCN8J+RpyIsIvCfkajigI3wn5Go4oCN8J+Rp+KAjfCfkaYiLCLwn5Go4oCN8J+RqOKAjfCfkabigI3wn5GmIiwi8J+RqOKAjfCfkajigI3wn5Gn4oCN8J+RpyIsIvCfkanigI3wn5Gp4oCN8J+RpiIsIvCfkanigI3wn5Gp4oCN8J+RpyIsIvCfkanigI3wn5Gp4oCN8J+Rp+KAjfCfkaYiLCLwn5Gp4oCN8J+RqeKAjfCfkabigI3wn5GmIiwi8J+RqeKAjfCfkanigI3wn5Gn4oCN8J+RpyIsIvCfkajigI3wn5GmIiwi8J+RqOKAjfCfkabigI3wn5GmIiwi8J+RqOKAjfCfkaciLCLwn5Go4oCN8J+Rp+KAjfCfkaYiLCLwn5Go4oCN8J+Rp+KAjfCfkaciLCLwn5Gp4oCN8J+RpiIsIvCfkanigI3wn5Gm4oCN8J+RpiIsIvCfkanigI3wn5GnIiwi8J+RqeKAjfCfkafigI3wn5GmIiwi8J+RqeKAjfCfkafigI3wn5GnIiwi8J+XoyIsIvCfkaQiLCLwn5GlIiwi8J+RoyJdLFM9WyLwn5C2Iiwi8J+QsSIsIvCfkK0iLCLwn5C5Iiwi8J+QsCIsIvCfpooiLCLwn5C7Iiwi8J+QvCIsIvCfkKgiLCLwn5CvIiwi8J+mgSIsIvCfkK4iLCLwn5C3Iiwi8J+QvSIsIvCfkLgiLCLwn5C1Iiwi8J+ZiCIsIvCfmYkiLCLwn5mKIiwi8J+QkiIsIvCfkJQiLCLwn5CnIiwi8J+QpiIsIvCfkKQiLCLwn5CjIiwi8J+QpSIsIvCfpoYiLCLwn6aFIiwi8J+miSIsIvCfpociLCLwn5C6Iiwi8J+QlyIsIvCfkLQiLCLwn6aEIiwi8J+QnSIsIvCfkJsiLCLwn6aLIiwi8J+QjCIsIvCfkJ4iLCLwn5CcIiwi8J+mnyIsIvCfppciLCLwn5W3Iiwi8J+VuCIsIvCfpoIiLCLwn5CiIiwi8J+QjSIsIvCfpo4iLCLwn6aWIiwi8J+mlSIsIvCfkJkiLCLwn6aRIiwi8J+mkCIsIvCfpp4iLCLwn6aAIiwi8J+QoSIsIvCfkKAiLCLwn5CfIiwi8J+QrCIsIvCfkLMiLCLwn5CLIiwi8J+miCIsIvCfkIoiLCLwn5CFIiwi8J+QhiIsIvCfppMiLCLwn6aNIiwi8J+mpyIsIvCfkJgiLCLwn6abIiwi8J+mjyIsIvCfkKoiLCLwn5CrIiwi8J+mkiIsIvCfppgiLCLwn5CDIiwi8J+QgiIsIvCfkIQiLCLwn5COIiwi8J+QliIsIvCfkI8iLCLwn5CRIiwi8J+mmSIsIvCfkJAiLCLwn6aMIiwi8J+QlSIsIvCfkKkiLCLwn6auIiwi8J+QleKAjfCfproiLCLwn5CIIiwi8J+QkyIsIvCfpoMiLCLwn6aaIiwi8J+mnCIsIvCfpqIiLCLwn6apIiwi8J+ViiIsIvCfkIciLCLwn6adIiwi8J+mqCIsIvCfpqEiLCLwn6amIiwi8J+mpSIsIvCfkIEiLCLwn5CAIiwi8J+QvyIsIvCfppQiLCLwn5C+Iiwi8J+QiSIsIvCfkLIiLCLwn4y1Iiwi8J+OhCIsIvCfjLIiLCLwn4yzIiwi8J+MtCIsIvCfjLEiLCLwn4y/Iiwi4piY77iPIiwi8J+NgCIsIvCfjo0iLCLwn46LIiwi8J+NgyIsIvCfjYIiLCLwn42BIiwi8J+NhCIsIvCfkJoiLCLwn4y+Iiwi8J+SkCIsIvCfjLciLCLwn4y5Iiwi8J+lgCIsIvCfjLoiLCLwn4y4Iiwi8J+MvCIsIvCfjLsiLCLwn4yeIiwi8J+MnSIsIvCfjJsiLCLwn4ycIiwi8J+MmiIsIvCfjJUiLCLwn4yWIiwi8J+MlyIsIvCfjJgiLCLwn4yRIiwi8J+MkiIsIvCfjJMiLCLwn4yUIiwi8J+MmSIsIvCfjI4iLCLwn4yNIiwi8J+MjyIsIvCfqpAiLCLwn5KrIiwi4q2Q77iPIiwi8J+MnyIsIuKcqCIsIuKaoe+4jyIsIuKYhO+4jyIsIvCfkqUiLCLwn5SlIiwi8J+MqiIsIvCfjIgiLCLimIDvuI8iLCLwn4ykIiwi4puF77iPIiwi8J+MpSIsIuKYge+4jyIsIvCfjKYiLCLwn4ynIiwi4puIIiwi8J+MqSIsIvCfjKgiLCLinYTvuI8iLCLimIPvuI8iLCLim4TvuI8iLCLwn4ysIiwi8J+SqCIsIvCfkqciLCLwn5KmIiwi4piU77iPIiwi8J+MiiIsIvCfjKsiXSx5PVsi8J+NjyIsIvCfjY4iLCLwn42QIiwi8J+NiiIsIvCfjYsiLCLwn42MIiwi8J+NiSIsIvCfjYciLCLwn42TIiwi8J+NiCIsIvCfjZIiLCLwn42RIiwi8J+lrSIsIvCfjY0iLCLwn6WlIiwi8J+lnSIsIvCfjYUiLCLwn42GIiwi8J+lkSIsIvCfpaYiLCLwn6WsIiwi8J+lkiIsIvCfjLYiLCLwn4y9Iiwi8J+llSIsIvCfp4QiLCLwn6eFIiwi8J+llCIsIvCfjaAiLCLwn6WQIiwi8J+lryIsIvCfjZ4iLCLwn6WWIiwi8J+lqCIsIvCfp4AiLCLwn6WaIiwi8J+NsyIsIvCfp4giLCLwn6WeIiwi8J+nhyIsIvCfpZMiLCLwn6WpIiwi8J+NlyIsIvCfjZYiLCLwn4ytIiwi8J+NlCIsIvCfjZ8iLCLwn42VIiwi8J+lqiIsIvCfpZkiLCLwn6eGIiwi8J+MriIsIvCfjK8iLCLwn6WXIiwi8J+lmCIsIvCfpasiLCLwn42dIiwi8J+NnCIsIvCfjbIiLCLwn42bIiwi8J+NoyIsIvCfjbEiLCLwn6WfIiwi8J+mqiIsIvCfjaQiLCLwn42ZIiwi8J+NmiIsIvCfjZgiLCLwn42lIiwi8J+loCIsIvCfpa4iLCLwn42iIiwi8J+NoSIsIvCfjaciLCLwn42oIiwi8J+NpiIsIvCfpaciLCLwn6eBIiwi8J+NsCIsIvCfjoIiLCLwn42uIiwi8J+NrSIsIvCfjawiLCLwn42rIiwi8J+NvyIsIvCfjakiLCLwn42qIiwi8J+MsCIsIvCfpZwiLCLwn42vIiwi8J+lmyIsIvCfjbwiLCLimJXvuI8iLCLwn421Iiwi8J+ngyIsIvCfpaQiLCLwn422Iiwi8J+NuiIsIvCfjbsiLCLwn6WCIiwi8J+NtyIsIvCfpYMiLCLwn424Iiwi8J+NuSIsIvCfp4kiLCLwn42+Iiwi8J+niiIsIvCfpYQiLCLwn420Iiwi8J+NvSIsIvCfpaMiLCLwn6WhIiwi8J+loiIsIvCfp4IiXSx3PVsi4pq977iPIiwi8J+PgCIsIvCfj4giLCLimr7vuI8iLCLwn6WOIiwi8J+OviIsIvCfj5AiLCLwn4+JIiwi8J+ljyIsIvCfjrEiLCLwn6qAIiwi8J+PkyIsIvCfj7giLCLwn4+SIiwi8J+PkSIsIvCfpY0iLCLwn4+PIiwi8J+lhSIsIuKbs++4jyIsIvCfqoEiLCLwn4+5Iiwi8J+OoyIsIvCfpL8iLCLwn6WKIiwi8J+liyIsIvCfjr0iLCLwn5u5Iiwi8J+btyIsIuKbuCIsIvCfpYwiLCLwn46/Iiwi4pu3Iiwi8J+PgiIsIvCfqoIiLCLwn4+L77iPIiwi8J+Pi++4j+KAjeKZgu+4jyIsIvCfj4vvuI/igI3imYDvuI8iLCLwn6S8Iiwi8J+kvOKAjeKZgu+4jyIsIvCfpLzigI3imYDvuI8iLCLwn6S44oCN4pmA77iPIiwi8J+kuCIsIvCfpLjigI3imYLvuI8iLCLim7nvuI8iLCLim7nvuI/igI3imYLvuI8iLCLim7nvuI/igI3imYDvuI8iLCLwn6S6Iiwi8J+kviIsIvCfpL7igI3imYLvuI8iLCLwn6S+4oCN4pmA77iPIiwi8J+PjO+4jyIsIvCfj4zvuI/igI3imYLvuI8iLCLwn4+M77iP4oCN4pmA77iPIiwi8J+PhyIsIvCfp5giLCLwn6eY4oCN4pmC77iPIiwi8J+nmOKAjeKZgO+4jyIsIvCfj4QiLCLwn4+E4oCN4pmC77iPIiwi8J+PhOKAjeKZgO+4jyIsIvCfj4oiLCLwn4+K4oCN4pmC77iPIiwi8J+PiuKAjeKZgO+4jyIsIvCfpL0iLCLwn6S94oCN4pmC77iPIiwi8J+kveKAjeKZgO+4jyIsIvCfmqMiLCLwn5qj4oCN4pmC77iPIiwi8J+ao+KAjeKZgO+4jyIsIvCfp5ciLCLwn6eX4oCN4pmC77iPIiwi8J+nl+KAjeKZgO+4jyIsIvCfmrUiLCLwn5q14oCN4pmC77iPIiwi8J+ateKAjeKZgO+4jyIsIvCfmrQiLCLwn5q04oCN4pmC77iPIiwi8J+atOKAjeKZgO+4jyIsIvCfj4YiLCLwn6WHIiwi8J+liCIsIvCfpYkiLCLwn4+FIiwi8J+OliIsIvCfj7UiLCLwn46XIiwi8J+OqyIsIvCfjp8iLCLwn46qIiwi8J+kuSIsIvCfpLnigI3imYLvuI8iLCLwn6S54oCN4pmA77iPIiwi8J+OrSIsIvCfjqgiLCLwn46sIiwi8J+OpCIsIvCfjqciLCLwn468Iiwi8J+OuSIsIvCfpYEiLCLwn463Iiwi8J+OuiIsIvCfjrgiLCLwn6qVIiwi8J+OuyIsIvCfjrIiLCLwn46vIiwi8J+OsyIsIvCfjq4iLCLwn46wIiwi8J+nqSJdLEU9WyLwn5qXIiwi8J+alSIsIvCfmpkiLCLwn5qMIiwi8J+ajiIsIvCfj44iLCLwn5qTIiwi8J+akSIsIvCfmpIiLCLwn5qQIiwi8J+amiIsIvCfmpsiLCLwn5qcIiwi8J+mryIsIvCfpr0iLCLwn6a8Iiwi8J+btCIsIvCfmrIiLCLwn5u1Iiwi8J+PjSIsIvCfm7oiLCLwn5qoIiwi8J+alCIsIvCfmo0iLCLwn5qYIiwi8J+aliIsIvCfmqEiLCLwn5qgIiwi8J+anyIsIvCfmoMiLCLwn5qLIiwi8J+aniIsIvCfmp0iLCLwn5qEIiwi8J+ahSIsIvCfmogiLCLwn5qCIiwi8J+ahiIsIvCfmociLCLwn5qKIiwi8J+aiSIsIuKciO+4jyIsIvCfm6siLCLwn5usIiwi8J+bqSIsIvCfkroiLCLwn5uwIiwi8J+agCIsIvCfm7giLCLwn5qBIiwi8J+btiIsIuKbte+4jyIsIvCfmqQiLCLwn5ulIiwi8J+bsyIsIuKbtCIsIvCfmqIiLCLimpPvuI8iLCLim73vuI8iLCLwn5qnIiwi8J+apiIsIvCfmqUiLCLwn5qPIiwi8J+XuiIsIvCfl78iLCLwn5e9Iiwi8J+XvCIsIvCfj7AiLCLwn4+vIiwi8J+PnyIsIvCfjqEiLCLwn46iIiwi8J+OoCIsIuKbsu+4jyIsIuKbsSIsIvCfj5YiLCLwn4+dIiwi8J+PnCIsIvCfjIsiLCLim7AiLCLwn4+UIiwi8J+XuyIsIvCfj5UiLCLim7rvuI8iLCLwn4+gIiwi8J+PoSIsIvCfj5giLCLwn4+aIiwi8J+PlyIsIvCfj60iLCLwn4+iIiwi8J+PrCIsIvCfj6MiLCLwn4+kIiwi8J+PpSIsIvCfj6YiLCLwn4+oIiwi8J+PqiIsIvCfj6siLCLwn4+pIiwi8J+SkiIsIvCfj5siLCLim6rvuI8iLCLwn5WMIiwi8J+VjSIsIvCfm5UiLCLwn5WLIiwi4pupIiwi8J+bpCIsIvCfm6MiLCLwn5e+Iiwi8J+OkSIsIvCfj54iLCLwn4yFIiwi8J+MhCIsIvCfjKAiLCLwn46HIiwi8J+OhiIsIvCfjIciLCLwn4yGIiwi8J+PmSIsIvCfjIMiLCLwn4yMIiwi8J+MiSIsIvCfjIEiXSxDPVsi4oya77iPIiwi8J+TsSIsIvCfk7IiLCLwn5K7Iiwi4oyo77iPIiwi8J+WpSIsIvCflqgiLCLwn5axIiwi8J+WsiIsIvCflbkiLCLwn5ecIiwi8J+SvSIsIvCfkr4iLCLwn5K/Iiwi8J+TgCIsIvCfk7wiLCLwn5O3Iiwi8J+TuCIsIvCfk7kiLCLwn46lIiwi8J+TvSIsIvCfjp4iLCLwn5OeIiwi4piO77iPIiwi8J+TnyIsIvCfk6AiLCLwn5O6Iiwi8J+TuyIsIvCfjpkiLCLwn46aIiwi8J+OmyIsIvCfp60iLCLij7EiLCLij7IiLCLij7AiLCLwn5WwIiwi4oyb77iPIiwi4o+zIiwi8J+ToSIsIvCflIsiLCLwn5SMIiwi8J+SoSIsIvCflKYiLCLwn5WvIiwi8J+qlCIsIvCfp68iLCLwn5uiIiwi8J+SuCIsIvCfkrUiLCLwn5K0Iiwi8J+StiIsIvCfkrciLCLwn5KwIiwi8J+SsyIsIvCfko4iLCLimpbvuI8iLCLwn6ewIiwi8J+UpyIsIvCflKgiLCLimpIiLCLwn5ugIiwi4puPIiwi8J+UqSIsIuKame+4jyIsIvCfp7EiLCLim5MiLCLwn6eyIiwi8J+UqyIsIvCfkqMiLCLwn6eoIiwi8J+qkyIsIvCflKoiLCLwn5ehIiwi4pqU77iPIiwi8J+boSIsIvCfmqwiLCLimrDvuI8iLCLimrHvuI8iLCLwn4+6Iiwi8J+UriIsIvCfk78iLCLwn6e/Iiwi8J+SiCIsIuKal++4jyIsIvCflK0iLCLwn5SsIiwi8J+VsyIsIvCfqbkiLCLwn6m6Iiwi8J+SiiIsIvCfkokiLCLwn6esIiwi8J+moCIsIvCfp6siLCLwn6eqIiwi8J+MoSIsIvCfp7kiLCLwn6e6Iiwi8J+nuyIsIvCfmr0iLCLwn5qwIiwi8J+avyIsIvCfm4EiLCLwn5uAIiwi8J+nvCIsIvCfqpIiLCLwn6e9Iiwi8J+ntCIsIvCfm44iLCLwn5SRIiwi8J+XnSIsIvCfmqoiLCLwn6qRIiwi8J+biyIsIvCfm48iLCLwn5uMIiwi8J+nuCIsIvCflrwiLCLwn5uNIiwi8J+bkiIsIvCfjoEiLCLwn46IIiwi8J+OjyIsIvCfjoAiLCLwn46KIiwi8J+OiSIsIvCfjo4iLCLwn4+uIiwi8J+OkCIsIvCfp6ciLCLinInvuI8iLCLwn5OpIiwi8J+TqCIsIvCfk6ciLCLwn5KMIiwi8J+TpSIsIvCfk6QiLCLwn5OmIiwi8J+PtyIsIvCfk6oiLCLwn5OrIiwi8J+TrCIsIvCfk60iLCLwn5OuIiwi8J+TryIsIvCfk5wiLCLwn5ODIiwi8J+ThCIsIvCfk5EiLCLwn6e+Iiwi8J+TiiIsIvCfk4giLCLwn5OJIiwi8J+XkiIsIvCfl5MiLCLwn5OGIiwi8J+ThSIsIvCfl5EiLCLwn5OHIiwi8J+XgyIsIvCfl7MiLCLwn5eEIiwi8J+TiyIsIvCfk4EiLCLwn5OCIiwi8J+XgiIsIvCfl54iLCLwn5OwIiwi8J+TkyIsIvCfk5QiLCLwn5OSIiwi8J+TlSIsIvCfk5ciLCLwn5OYIiwi8J+TmSIsIvCfk5oiLCLwn5OWIiwi8J+UliIsIvCfp7ciLCLwn5SXIiwi8J+TjiIsIvCflociLCLwn5OQIiwi8J+TjyIsIvCfp64iLCLwn5OMIiwi8J+TjSIsIuKcgu+4jyIsIvCflooiLCLwn5aLIiwi4pyS77iPIiwi8J+WjCIsIvCflo0iLCLwn5OdIiwi4pyP77iPIiwi8J+UjSIsIvCflI4iLCLwn5SPIiwi8J+UkCIsIvCflJIiLCLwn5STIiwi8J+nsyIsIvCfjIIiLCLimILvuI8iLCLwn6e1Iiwi8J+ntiIsIvCfkZMiLCLwn5W2Iiwi8J+lvSIsIvCfpbwiLCLwn6a6Iiwi8J+RlCIsIvCfkZUiLCLwn5GWIiwi8J+noyIsIvCfp6QiLCLwn6elIiwi8J+npiIsIvCfkZciLCLwn5GYIiwi8J+luyIsIvCfqbEiLCLwn6myIiwi8J+psyIsIvCfkZkiLCLwn5GaIiwi8J+RmyIsIvCfkZwiLCLwn5GdIiwi8J+OkiIsIvCfkZ4iLCLwn5GfIiwi8J+lviIsIvCfpb8iLCLwn5GgIiwi8J+RoSIsIvCfqbAiLCLwn5GiIiwi8J+RkSIsIvCfkZIiLCLwn46pIiwi8J+OkyIsIvCfp6IiLCLim5EiLCLwn5KEIiwi8J+SjSIsIvCfkrwiXSx4PVsi4p2k77iPIiwi8J+noSIsIvCfkpsiLCLwn5KaIiwi8J+SmSIsIvCfkpwiLCLwn5akIiwi8J+kjSIsIvCfpI4iLCLwn5KUIiwi4p2j77iPIiwi8J+SlSIsIvCfkp4iLCLwn5KTIiwi8J+SlyIsIvCfkpYiLCLwn5KYIiwi8J+SnSIsIvCfkp8iLCLimK7vuI8iLCLinJ3vuI8iLCLimKrvuI8iLCLwn5WJIiwi4pi477iPIiwi4pyh77iPIiwi8J+UryIsIvCflY4iLCLimK/vuI8iLCLimKbvuI8iLCLwn5uQIiwi4puOIiwi4pmI77iPIiwi4pmJ77iPIiwi4pmK77iPIiwi4pmL77iPIiwi4pmM77iPIiwi4pmN77iPIiwi4pmO77iPIiwi4pmP77iPIiwi4pmQ77iPIiwi4pmR77iPIiwi4pmS77iPIiwi4pmT77iPIiwi8J+GlCIsIuKam++4jyIsIvCfiZEiLCLimKLvuI8iLCLimKPvuI8iLCLwn5O0Iiwi8J+TsyIsIvCfiLYiLCLwn4ia77iPIiwi8J+IuCIsIvCfiLoiLCLwn4i377iPIiwi4py077iPIiwi8J+GmiIsIvCfkq4iLCLwn4mQIiwi44qZ77iPIiwi44qX77iPIiwi8J+ItCIsIvCfiLUiLCLwn4i5Iiwi8J+IsiIsIvCfhbDvuI8iLCLwn4Wx77iPIiwi8J+GjiIsIvCfhpEiLCLwn4W+77iPIiwi8J+GmCIsIuKdjCIsIuKtle+4jyIsIvCfm5EiLCLim5TvuI8iLCLwn5ObIiwi8J+aqyIsIvCfkq8iLCLwn5KiIiwi4pmo77iPIiwi8J+atyIsIvCfmq8iLCLwn5qzIiwi8J+asSIsIvCflJ4iLCLwn5O1Iiwi8J+arSIsIuKdl++4jyIsIuKdlSIsIuKdkyIsIuKdlCIsIuKAvO+4jyIsIuKBie+4jyIsIvCflIUiLCLwn5SGIiwi44C977iPIiwi4pqg77iPIiwi8J+auCIsIvCflLEiLCLimpzvuI8iLCLwn5SwIiwi4pm777iPIiwi4pyFIiwi8J+Ir++4jyIsIvCfkrkiLCLinYfvuI8iLCLinLPvuI8iLCLinY4iLCLwn4yQIiwi8J+SoCIsIuKTgu+4jyIsIvCfjIAiLCLwn5KkIiwi8J+PpyIsIvCfmr4iLCLimb/vuI8iLCLwn4W/77iPIiwi8J+IsyIsIvCfiILvuI8iLCLwn5uCIiwi8J+bgyIsIvCfm4QiLCLwn5uFIiwi8J+auSIsIvCfmroiLCLwn5q8Iiwi8J+auyIsIvCfmq4iLCLwn46mIiwi8J+TtiIsIvCfiIEiLCLwn5SjIiwi4oS577iPIiwi8J+UpCIsIvCflKEiLCLwn5SgIiwi8J+GliIsIvCfhpciLCLwn4aZIiwi8J+GkiIsIvCfhpUiLCLwn4aTIiwiMO+4j+KDoyIsIjHvuI/ig6MiLCIy77iP4oOjIiwiM++4j+KDoyIsIjTvuI/ig6MiLCI177iP4oOjIiwiNu+4j+KDoyIsIjfvuI/ig6MiLCI477iP4oOjIiwiOe+4j+KDoyIsIvCflJ8iLCLwn5SiIiwiI++4j+KDoyIsIirvuI/ig6MiLCLij4/vuI8iLCLilrbvuI8iLCLij7giLCLij68iLCLij7kiLCLij7oiLCLij60iLCLij64iLCLij6kiLCLij6oiLCLij6siLCLij6wiLCLil4DvuI8iLCLwn5S8Iiwi8J+UvSIsIuKeoe+4jyIsIuKshe+4jyIsIuKshu+4jyIsIuKsh++4jyIsIuKGl++4jyIsIuKGmO+4jyIsIuKGme+4jyIsIuKGlu+4jyIsIuKGle+4jyIsIuKGlO+4jyIsIuKGqu+4jyIsIuKGqe+4jyIsIuKktO+4jyIsIuKkte+4jyIsIvCflIAiLCLwn5SBIiwi8J+UgiIsIvCflIQiLCLwn5SDIiwi8J+OtSIsIvCfjrYiLCLinpUiLCLinpYiLCLinpciLCLinJbvuI8iLCLimb4iLCLwn5KyIiwi8J+SsSIsIuKEou+4jyIsIsKp77iPIiwiwq7vuI8iLCLjgLDvuI8iLCLinrAiLCLinr8iLCLwn5SaIiwi8J+UmSIsIvCflJsiLCLwn5SdIiwi8J+UnCIsIuKclO+4jyIsIuKYke+4jyIsIvCflJgiLCLwn5S0Iiwi8J+foCIsIvCfn6EiLCLwn5+iIiwi8J+UtSIsIvCfn6MiLCLimqvvuI8iLCLimqrvuI8iLCLwn5+kIiwi8J+UuiIsIvCflLsiLCLwn5S4Iiwi8J+UuSIsIvCflLYiLCLwn5S3Iiwi8J+UsyIsIvCflLIiLCLilqrvuI8iLCLilqvvuI8iLCLil77vuI8iLCLil73vuI8iLCLil7zvuI8iLCLil7vvuI8iLCLwn5+lIiwi8J+fpyIsIvCfn6giLCLwn5+pIiwi8J+fpiIsIvCfn6oiLCLirJvvuI8iLCLirJzvuI8iLCLwn5+rIiwi8J+UiCIsIvCflIciLCLwn5SJIiwi8J+UiiIsIvCflJQiLCLwn5SVIiwi8J+ToyIsIvCfk6IiLCLwn5GB4oCN8J+XqCIsIvCfkqwiLCLwn5KtIiwi8J+XryIsIuKZoO+4jyIsIuKZo++4jyIsIuKZpe+4jyIsIuKZpu+4jyIsIvCfg48iLCLwn460Iiwi8J+AhO+4jyIsIvCflZAiLCLwn5WRIiwi8J+VkiIsIvCflZMiLCLwn5WUIiwi8J+VlSIsIvCflZYiLCLwn5WXIiwi8J+VmCIsIvCflZkiLCLwn5WaIiwi8J+VmyIsIvCflZwiLCLwn5WdIiwi8J+VniIsIvCflZ8iLCLwn5WgIiwi8J+VoSIsIvCflaIiLCLwn5WjIiwi8J+VpCIsIvCflaUiLCLwn5WmIiwi8J+VpyJdLEk9WyLwn4+z77iPIiwi8J+PtCIsIvCfj4EiLCLwn5qpIiwi8J+Ps++4j+KAjfCfjIgiLCLwn4+04oCN4pig77iPIiwi8J+HpvCfh6siLCLwn4em8J+HvSIsIvCfh6bwn4exIiwi8J+HqfCfh78iLCLwn4em8J+HuCIsIvCfh6bwn4epIiwi8J+HpvCfh7QiLCLwn4em8J+HriIsIvCfh6bwn4e2Iiwi8J+HpvCfh6wiLCLwn4em8J+HtyIsIvCfh6bwn4eyIiwi8J+HpvCfh7wiLCLwn4em8J+HuiIsIvCfh6bwn4e5Iiwi8J+HpvCfh78iLCLwn4en8J+HuCIsIvCfh6fwn4etIiwi8J+Hp/Cfh6kiLCLwn4en8J+HpyIsIvCfh6fwn4e+Iiwi8J+Hp/Cfh6oiLCLwn4en8J+HvyIsIvCfh6fwn4evIiwi8J+Hp/Cfh7IiLCLwn4en8J+HuSIsIvCfh6fwn4e0Iiwi8J+Hp/Cfh6YiLCLwn4en8J+HvCIsIvCfh6fwn4e3Iiwi8J+HrvCfh7QiLCLwn4e78J+HrCIsIvCfh6fwn4ezIiwi8J+Hp/Cfh6wiLCLwn4en8J+HqyIsIvCfh6fwn4euIiwi8J+HsPCfh60iLCLwn4eo8J+HsiIsIvCfh6jwn4emIiwi8J+HrvCfh6giLCLwn4eo8J+HuyIsIvCfh6fwn4e2Iiwi8J+HsPCfh74iLCLwn4eo8J+HqyIsIvCfh7nwn4epIiwi8J+HqPCfh7EiLCLwn4eo8J+HsyIsIvCfh6jwn4e9Iiwi8J+HqPCfh6giLCLwn4eo8J+HtCIsIvCfh7Dwn4eyIiwi8J+HqPCfh6wiLCLwn4eo8J+HqSIsIvCfh6jwn4ewIiwi8J+HqPCfh7ciLCLwn4eo8J+HriIsIvCfh63wn4e3Iiwi8J+HqPCfh7oiLCLwn4eo8J+HvCIsIvCfh6jwn4e+Iiwi8J+HqPCfh78iLCLwn4ep8J+HsCIsIvCfh6nwn4evIiwi8J+HqfCfh7IiLCLwn4ep8J+HtCIsIvCfh6rwn4eoIiwi8J+HqvCfh6wiLCLwn4e48J+HuyIsIvCfh6zwn4e2Iiwi8J+HqvCfh7ciLCLwn4eq8J+HqiIsIvCfh6rwn4e5Iiwi8J+HqvCfh7oiLCLwn4er8J+HsCIsIvCfh6vwn4e0Iiwi8J+Hq/Cfh68iLCLwn4er8J+HriIsIvCfh6vwn4e3Iiwi8J+HrPCfh6siLCLwn4e18J+HqyIsIvCfh7nwn4erIiwi8J+HrPCfh6YiLCLwn4es8J+HsiIsIvCfh6zwn4eqIiwi8J+HqfCfh6oiLCLwn4es8J+HrSIsIvCfh6zwn4euIiwi8J+HrPCfh7ciLCLwn4es8J+HsSIsIvCfh6zwn4epIiwi8J+HrPCfh7UiLCLwn4es8J+HuiIsIvCfh6zwn4e5Iiwi8J+HrPCfh6wiLCLwn4es8J+HsyIsIvCfh6zwn4e8Iiwi8J+HrPCfh74iLCLwn4et8J+HuSIsIvCfh63wn4ezIiwi8J+HrfCfh7AiLCLwn4et8J+HuiIsIvCfh67wn4e4Iiwi8J+HrvCfh7MiLCLwn4eu8J+HqSIsIvCfh67wn4e3Iiwi8J+HrvCfh7YiLCLwn4eu8J+HqiIsIvCfh67wn4eyIiwi8J+HrvCfh7EiLCLwn4eu8J+HuSIsIvCfh6/wn4eyIiwi8J+Hr/Cfh7UiLCLwn46MIiwi8J+Hr/Cfh6oiLCLwn4ev8J+HtCIsIvCfh7Dwn4e/Iiwi8J+HsPCfh6oiLCLwn4ew8J+HriIsIvCfh73wn4ewIiwi8J+HsPCfh7wiLCLwn4ew8J+HrCIsIvCfh7Hwn4emIiwi8J+HsfCfh7siLCLwn4ex8J+HpyIsIvCfh7Hwn4e4Iiwi8J+HsfCfh7ciLCLwn4ex8J+HviIsIvCfh7Hwn4euIiwi8J+HsfCfh7kiLCLwn4ex8J+HuiIsIvCfh7Lwn4e0Iiwi8J+HsvCfh7AiLCLwn4ey8J+HrCIsIvCfh7Lwn4e8Iiwi8J+HsvCfh74iLCLwn4ey8J+HuyIsIvCfh7Lwn4exIiwi8J+HsvCfh7kiLCLwn4ey8J+HrSIsIvCfh7Lwn4e2Iiwi8J+HsvCfh7ciLCLwn4ey8J+HuiIsIvCfh77wn4e5Iiwi8J+HsvCfh70iLCLwn4er8J+HsiIsIvCfh7Lwn4epIiwi8J+HsvCfh6giLCLwn4ey8J+HsyIsIvCfh7Lwn4eqIiwi8J+HsvCfh7giLCLwn4ey8J+HpiIsIvCfh7Lwn4e/Iiwi8J+HsvCfh7IiLCLwn4ez8J+HpiIsIvCfh7Pwn4e3Iiwi8J+Hs/Cfh7UiLCLwn4ez8J+HsSIsIvCfh7Pwn4eoIiwi8J+Hs/Cfh78iLCLwn4ez8J+HriIsIvCfh7Pwn4eqIiwi8J+Hs/Cfh6wiLCLwn4ez8J+HuiIsIvCfh7Pwn4erIiwi8J+HsPCfh7UiLCLwn4ey8J+HtSIsIvCfh7Pwn4e0Iiwi8J+HtPCfh7IiLCLwn4e18J+HsCIsIvCfh7Xwn4e8Iiwi8J+HtfCfh7giLCLwn4e18J+HpiIsIvCfh7Xwn4esIiwi8J+HtfCfh74iLCLwn4e18J+HqiIsIvCfh7Xwn4etIiwi8J+HtfCfh7MiLCLwn4e18J+HsSIsIvCfh7Xwn4e5Iiwi8J+HtfCfh7ciLCLwn4e28J+HpiIsIvCfh7fwn4eqIiwi8J+Ht/Cfh7QiLCLwn4e38J+HuiIsIvCfh7fwn4e8Iiwi8J+HvPCfh7giLCLwn4e48J+HsiIsIvCfh7jwn4emIiwi8J+HuPCfh7MiLCLwn4e38J+HuCIsIvCfh7jwn4eoIiwi8J+HuPCfh7EiLCLwn4e48J+HrCIsIvCfh7jwn4e9Iiwi8J+HuPCfh7AiLCLwn4e48J+HriIsIvCfh6zwn4e4Iiwi8J+HuPCfh6ciLCLwn4e48J+HtCIsIvCfh7/wn4emIiwi8J+HsPCfh7ciLCLwn4e48J+HuCIsIvCfh6rwn4e4Iiwi8J+HsfCfh7AiLCLwn4en8J+HsSIsIvCfh7jwn4etIiwi8J+HsPCfh7MiLCLwn4ex8J+HqCIsIvCfh7Xwn4eyIiwi8J+Hu/Cfh6giLCLwn4e48J+HqSIsIvCfh7jwn4e3Iiwi8J+HuPCfh78iLCLwn4e48J+HqiIsIvCfh6jwn4etIiwi8J+HuPCfh74iLCLwn4e58J+HvCIsIvCfh7nwn4evIiwi8J+HufCfh78iLCLwn4e58J+HrSIsIvCfh7nwn4exIiwi8J+HufCfh6wiLCLwn4e58J+HsCIsIvCfh7nwn4e0Iiwi8J+HufCfh7kiLCLwn4e58J+HsyIsIvCfh7nwn4e3Iiwi8J+HufCfh7IiLCLwn4e58J+HqCIsIvCfh7nwn4e7Iiwi8J+Hu/Cfh64iLCLwn4e68J+HrCIsIvCfh7rwn4emIiwi8J+HpvCfh6oiLCLwn4es8J+HpyIsIvCfj7TzoIGn86CBovOggaXzoIGu86CBp/Oggb8iLCLwn4+086CBp/OggaLzoIGz86CBo/OggbTzoIG/Iiwi8J+PtPOggafzoIGi86CBt/OggazzoIGz86CBvyIsIvCfh7rwn4ezIiwi8J+HuvCfh7giLCLwn4e68J+HviIsIvCfh7rwn4e/Iiwi8J+Hu/Cfh7oiLCLwn4e78J+HpiIsIvCfh7vwn4eqIiwi8J+Hu/Cfh7MiLCLwn4e88J+HqyIsIvCfh6rwn4etIiwi8J+HvvCfh6oiLCLwn4e/8J+HsiIsIvCfh7/wn4e8Il0sQT1bLi4udiwuLi5TLC4uLnksLi4udywuLi5FLC4uLkMsLi4ueCwuLi5JXSx6PW5ldyBTZXQoQSkKO2Z1bmN0aW9uIFQoZSl7cmV0dXJuIGUuZmlsdGVyKChlPT56LmhhcyhlKSkpfWZ1bmN0aW9uIE0oZSl7cmV0dXJuIHouaGFzKGUpfWNvbnN0IGs9KDAsbi5kZWZhdWx0KSgoZT0+e2NvbnN0IGQ9KDAsby5nZXRGaXJzdFNlZ21lbnRPckNvZGVQb2ludFN0cmluZykoZSksdT1udWxsIT09ZCYmTShkKT9kOiIiO3JldHVybntlbW9qaTp1LGVtb2ppTGVzc1N0cmluZzplLnJlcGxhY2UodSwiIil9fSkpO2Z1bmN0aW9uIEQoZSxkLC4uLnUpe2NvbnN0IHQ9aygoMCxhLmVuc3VyZU5vdE51bGwpKGUpKS5lbW9qaUxlc3NTdHJpbmcudHJpbSgpLGM9aygoMCxhLmVuc3VyZU5vdE51bGwpKGQpKS5lbW9qaUxlc3NTdHJpbmcudHJpbSgpO3JldHVybiB0PT09Yz9lLmxvY2FsZUNvbXBhcmUoZCwuLi51KTp0LmxvY2FsZUNvbXBhcmUoYywuLi51KX1jb25zdCBOPSgpPT5be3RpdGxlOmMudChudWxsLHtjb250ZXh0OiJlbW9qaV9ncm91cCJ9LHUoNDY1NDU2KSksZW1vamlzOltdLGNvbnRlbnQ6dC5jcmVhdGVFbGVtZW50KGwuSWNvbkl0ZW0se2ljb246cn0pfSx7dGl0bGU6Yy50KG51bGwse2NvbnRleHQ6ImVtb2ppX2dyb3VwIn0sdSgzMDYwNzApKSxlbW9qaXM6dixjb250ZW50OnQuY3JlYXRlRWxlbWVudChsLkljb25JdGVtLHtpY29uOml9KX0se3RpdGxlOmMudChudWxsLHtjb250ZXh0OiJlbW9qaV9ncm91cCJ9LHUoNjY4NDQ5KSksZW1vamlzOlMsY29udGVudDp0LmNyZWF0ZUVsZW1lbnQobC5JY29uSXRlbSx7aWNvbjpzfSl9LHt0aXRsZTpjLnQobnVsbCx7Y29udGV4dDoiZW1vamlfZ3JvdXAifSx1KDE0NzUwMCkpLGVtb2ppczp5LGNvbnRlbnQ6dC5jcmVhdGVFbGVtZW50KGwuSWNvbkl0ZW0se2ljb246Zn0pfSx7dGl0bGU6Yy50KG51bGwse2NvbnRleHQ6ImVtb2ppX2dyb3VwIn0sdSg1NzQ3MTUpKSxlbW9qaXM6dyxjb250ZW50OnQuY3JlYXRlRWxlbWVudChsLkljb25JdGVtLHtpY29uOm19KX0se3RpdGxlOmMudChudWxsLHtjb250ZXh0OiJlbW9qaV9ncm91cCJ9LHUoMTIzMTM4KSksZW1vamlzOkUsY29udGVudDp0LmNyZWF0ZUVsZW1lbnQobC5JY29uSXRlbSx7aWNvbjpofSl9LHt0aXRsZTpjLnQobnVsbCx7Y29udGV4dDoiZW1vamlfZ3JvdXAifSx1KDk0MzM5MykpLGVtb2ppczpDLGNvbnRlbnQ6dC5jcmVhdGVFbGVtZW50KGwuSWNvbkl0ZW0se2ljb246cH0pfSx7dGl0bGU6Yy50KG51bGwse2NvbnRleHQ6ImVtb2ppX2dyb3VwIn0sdSgyNzY2MDkpKSxlbW9qaXM6eCxjb250ZW50OnQuY3JlYXRlRWxlbWVudChsLkljb25JdGVtLHtpY29uOmJ9KX0se3RpdGxlOmMudChudWxsLHtjb250ZXh0OiJlbW9qaV9ncm91cCJ9LHUoMTc0MTc4KSksZW1vamlzOkksY29udGVudDp0LmNyZWF0ZUVsZW1lbnQobC5JY29uSXRlbSx7aWNvbjpnfSl9XX0sNDI4OTI0KGUsZCx1KXsidXNlIHN0cmljdCI7dS5kKGQse0Vtb2ppSXRlbTooKT0+Zn0pO3ZhciB0PXUoNzc5NDc0KSxjPXUoOTE0NDg3KSxuPXUubihjKSxvPXUoMjczMzEwKSxhPXUoMTg1MjcxKSxsPXUoMzMzMzEyKSxyPXUoNDI3NzczKSxpPXUoNDI4MDk3KSxzPXUoODg5NTQ2KTtmdW5jdGlvbiBmKGUpe2NvbnN0e2Vtb2ppOmQsY2xhc3NOYW1lOmN9PWU7aWYoZD09PXIuRU1QVFlfRU1PSkkpcmV0dXJuIHQuY3JlYXRlRWxlbWVudChvLkljb24se2NsYXNzTmFtZTpuKCkoYyxpLmNsZWFyQnV0dG9uLCJhcHBseS1jb21tb24tdG9vbHRpcCIpLGljb246cyx0aXRsZTphLnQobnVsbCx2b2lkIDAsdSg3NTQzODIpKX0pO2NvbnN0IGY9KDAsbC5nZXRUd2Vtb2ppVXJsKShkLCJwbmciKTtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KCJpbWciLHtjbGFzc05hbWU6bigpKGMsaS5lbW9qaSksc3JjOmYsZGVjb2Rpbmc6ImFzeW5jIix3aWR0aDoiMjQiLGhlaWdodDoiMjQiLGFsdDoiIixkcmFnZ2FibGU6ITEsb25Db250ZXh0TWVudTpmdW5jdGlvbihlKXtpZihlLnRhcmdldCBpbnN0YW5jZW9mIEVsZW1lbnQmJmUudGFyZ2V0LmNsb3Nlc3QoImEiKSlyZXR1cm47ZS5wcmV2ZW50RGVmYXVsdCgpfX0pfX0sMjczNzMyKGUsZCx1KXsidXNlIHN0cmljdCI7dS5kKGQse0ljb25JdGVtOigpPT5sfSk7dmFyIHQ9dSg3Nzk0NzQpLGM9dSg5MTQ0ODcpLG49dS5uKGMpLG89dSgyNzMzMTApLGE9dSg0MDIyMyk7ZnVuY3Rpb24gbChlKXtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6bigpKGEud3JhcHBlcixlLmNsYXNzTmFtZSl9LHQuY3JlYXRlRWxlbWVudChvLkljb24se2ljb246ZS5pY29ufSkpfX0sNTEwNTk4KGUsZCx1KXsidXNlIHN0cmljdCI7dS5kKGQse0xlYWRpbmdFbW9qaVRleHQ6KCk9PmF9KTt2YXIgdD11KDc3OTQ3NCksYz11KDI0OWUzKSxuPXUoNDI4OTI0KSxvPXUoOTk1ODUxKTtmdW5jdGlvbiBhKGUpe2NvbnN0e3RleHQ6ZCx0ZXh0UmVuZGVyOnUsZmlyc3RTZWdtZW50T25seTphPSExLHNwYWNlQWZ0ZXJFbW9qaTpsPSEwfT1lLHtsZWFkaW5nRW1vamk6cixwcm9jZXNzZWRUZXh0Oml9PSgwLHQudXNlTWVtbykoKCgpPT4oMCxjLnByb2Nlc3NUZXh0V2l0aExlYWRpbmdFbW9qaSkoe3RleHQ6ZCx0ZXh0UmVuZGVyOnUsZmlyc3RTZWdtZW50T25seTphfSkpLFtkLHUsYV0pO3JldHVybiByP3QuY3JlYXRlRWxlbWVudCh0LkZyYWdtZW50LG51bGwsdC5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOm8uZW1vamlXcmFwfSwiwqAiLHQuY3JlYXRlRWxlbWVudChuLkVtb2ppSXRlbSx7Y2xhc3NOYW1lOm8uZW1vamksZW1vamk6cn0pKSwiIiE9PWkmJnQuY3JlYXRlRWxlbWVudCh0LkZyYWdtZW50LG51bGwsbCYmdC5jcmVhdGVFbGVtZW50KHQuRnJhZ21lbnQsbnVsbCwiwqAiKSxpKSk6dC5jcmVhdGVFbGVtZW50KHQuRnJhZ21lbnQsbnVsbCxpKX19LDI0OWUzKGUsZCx1KXsidXNlIHN0cmljdCI7dS5kKGQse2dldExlYWRpbmdFbW9qaUh0bWw6KCk9PnMscHJvY2Vzc1RleHRXaXRoTGVhZGluZ0Vtb2ppOigpPT5pfSk7dmFyIHQ9dSg2NDE1OTMpLGM9dSg5MzAyMzEpLG49dSgzMTUxNTQpLG89dSg0Mjc3NzMpLGE9dSgzMzMzMTIpLGw9dSg5OTU4NTEpO2NvbnN0IHI9KDAsCmMuaXNGZWF0dXJlc2V0RW5hYmxlZCkoImFkdmFuY2VkX2Vtb2ppX2luX3RpdGxlcyIpO2Z1bmN0aW9uIGkoZSl7Y29uc3R7dGV4dDpkLHRleHRSZW5kZXI6dT1lPT5lLGZpcnN0U2VnbWVudE9ubHk6Yz0hMX09ZSxhPSgwLHQuZ2V0Rmlyc3RTZWdtZW50T3JDb2RlUG9pbnRTdHJpbmcpKGQpLGw9bnVsbCE9PWEmJigwLG4uaXNTdXBwb3J0ZWRFbW9qaSkoYSk/YTpvLkVNUFRZX0VNT0pJLGk9Yz9hfHwiIjpkO2lmKCFyfHxsPT09by5FTVBUWV9FTU9KSSlyZXR1cm57bGVhZGluZ0Vtb2ppOiIiLHByb2Nlc3NlZFRleHQ6dShpKX07cmV0dXJue2xlYWRpbmdFbW9qaTpsLHByb2Nlc3NlZFRleHQ6dShpLnJlcGxhY2UobCwiIikpfX1mdW5jdGlvbiBzKGUpe2NvbnN0e3Byb2Nlc3NlZFRleHQ6ZCxsZWFkaW5nRW1vamk6dX09aSh7dGV4dDplfSksYz0oMCx0Lmh0bWxFc2NhcGUpKGQpO2lmKCF1KXJldHVybiBjO3JldHVybmAke2Z1bmN0aW9uKGUpe2NvbnN0IGQ9KDAsYS5nZXRUd2Vtb2ppVXJsKShlLCJwbmciKTtyZXR1cm5gPHNwYW4gY2xhc3M9JHtsLnRvb2x0aXBFbW9qaVdyYXB9PiZuYnNwPGltZyBjbGFzcz0ke2wudG9vbHRpcEVtb2ppfSBzcmM9JHtkfSBkZWNvZGluZz0iYXN5bmMiIHdpZHRoPSIxMiIgaGVpZ2h0PSIxMiIgYWx0PSIiIGRyYWdnYWJsZT0iZmFsc2UiLz48L3NwYW4+YH0odSl9Jm5ic3A7JHtjfWB9fSw0OTI5NzgoZSxkLHUpeyJ1c2Ugc3RyaWN0Ijt1LmQoZCx7TGlzdEl0ZW1CdXR0b246KCk9Pmx9KTt2YXIgdD11KDc3OTQ3NCksYz11KDkxNDQ4Nyksbj11Lm4oYyksbz11KDI3MzMxMCksYT11KDIyODU4MSk7ZnVuY3Rpb24gbChlKXtjb25zdHtjbGFzc05hbWU6ZCxkaXNhYmxlZDp1LC4uLmN9PWU7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChvLkljb24se2NsYXNzTmFtZTpuKCkoYS5idXR0b24sdSYmYS5kaXNhYmxlZCxkKSwuLi5jfSl9fSwzMzMzMTIoZSxkLHUpeyJ1c2Ugc3RyaWN0Ijt1LmQoZCx7Z2V0VHdlbW9qaVVybDooKT0+Y30pO3ZhciB0PXUoMjYwNjAzKTtmdW5jdGlvbiBjKGUsZCl7bGV0IHU9IiI7cmV0dXJuIHQuZGVmYXVsdC5wYXJzZShlLChlPT4odT10LmRlZmF1bHQuYmFzZSsoInN2ZyI9PT1kP2BzdmcvJHtlfS5zdmdgOmA3Mng3Mi8ke2V9LnBuZ2ApLCExKSkpLHV9dC5kZWZhdWx0LmJhc2U9Imh0dHBzOi8vY2RuanMuY2xvdWRmbGFyZS5jb20vYWpheC9saWJzL3R3ZW1vamkvMTMuMC4xLyJ9LDYwMDUzOChlKXtlLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIGZpbGw9Im5vbmUiPjxjaXJjbGUgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIGN4PSI2IiBjeT0iNiIgcj0iNS41Ii8+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBkPSJNNS4xIDIuOTk1YS45MDUuOTA1IDAgMCAxIDEuODAxIDBMNi41IDdoLTFsLS40LTQuMDA1eiIvPjxyZWN0IHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGZpbGw9ImN1cnJlbnRDb2xvciIgcng9IjEiIHg9IjUiIHk9IjgiLz48L3N2Zz4nfSw4ODk1NDYoZSl7ZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDI4IDI4IiB3aWR0aD0iMjgiIGhlaWdodD0iMjgiPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZD0iTTcuMzMyIDYuNTQ4IDIxLjQyIDIwLjcwNEE5Ljk2MiA5Ljk2MiAwIDAgMCAyNCAxNGMwLTUuNTIzLTQuNDc3LTEwLTEwLTEwYTkuOTYxIDkuOTYxIDAgMCAwLTYuNjY4IDIuNTQ4Wm0xMy4zODEgMTQuODY0TDYuNjIxIDcuMjUyQTkuOTYyIDkuOTYyIDAgMCAwIDQgMTRjMCA1LjUyMyA0LjQ3NyAxMCAxMCAxMCAyLjU4NCAwIDQuOTM4LS45OCA2LjcxMy0yLjU4OFpNNi4yNjMgNi4xODFBMTAuOTY3IDEwLjk2NyAwIDAgMSAxNCAzYzYuMDc1IDAgMTEgNC45MjUgMTEgMTEgMCAzLjAzNi0xLjIzIDUuNzg1LTMuMjE4IDcuNzc1QTEwLjk2NyAxMC45NjcgMCAwIDEgMTQgMjVDNy45MjUgMjUgMyAyMC4wNzUgMyAxNGMwLTMuMDU4IDEuMjQ5LTUuODI2IDMuMjYzLTcuODJaIi8+PC9zdmc+J30sNTgzODQyKGUpe2UuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyOCAyOCIgd2lkdGg9IjI4IiBoZWlnaHQ9IjI4IiBmaWxsPSJub25lIj48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMTMuOSAxNC4xVjIyaDEuMnYtNy45SDIzdi0xLjJoLTcuOVY1aC0xLjJ2Ny45SDZ2MS4yaDcuOXoiLz48L3N2Zz4nfSwzODQxNTQoZSl7ZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDI4IDI4IiB3aWR0aD0iMjgiIGhlaWdodD0iMjgiIGZpbGw9Im5vbmUiPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xNCA5LjVhLjUuNSAwIDAgMCAxIDBWNy4wMkE2LjUgNi41IDAgMCAxIDIwLjk4IDEzSDE4LjVhLjUuNSAwIDAgMCAwIDFoMi40OEE2LjUgNi41IDAgMCAxIDE1IDE5Ljk4VjE3LjVhLjUuNSAwIDAgMC0xIDB2Mi40OEE2LjUgNi41IDAgMCAxIDguMDIgMTRoMi40OGEuNS41IDAgMCAwIDAtMUg4LjAyQTYuNSA2LjUgMCAwIDEgMTQgNy4wMlY5LjV6bTEtMy40OFY0LjVhLjUuNSAwIDAgMC0xIDB2MS41MkE3LjUgNy41IDAgMCAwIDcuMDIgMTNINS41YS41LjUgMCAwIDAgMCAxaDEuNTJBNy41IDcuNSAwIDAgMCAxNCAyMC45OHYxLjUyYS41LjUgMCAwIDAgMSAwdi0xLjUyQTcuNSA3LjUgMCAwIDAgMjEuOTggMTRoMS41MmEuNS41IDAgMCAwIDAtMWgtMS41MkE3LjUgNy41IDAgMCAwIDE1IDYuMDJ6Ii8+PC9zdmc+J30sMjAyNTExKGUpewplLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMjggMjgiIHdpZHRoPSIyOCIgaGVpZ2h0PSIyOCI+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xMy45OCA2LjAyTDE0LjUgNmMyLjE4IDAgNC4xNi44IDUuNjYgMi4xNGwtNS42NiA1LjY1LTIuMzEtMi4zYTguNDMgOC40MyAwIDAgMCAxLjU1LTMuNjQgMTQuMDEgMTQuMDEgMCAwIDAgLjI0LTEuODN6bS0xLjAxLjEyYTguNDUgOC40NSAwIDAgMC00LjEzIDJsMi42NCAyLjYzYTcuNTkgNy41OSAwIDAgMCAxLjI4LTMuMTJjLjEyLS41OS4xOC0xLjEyLjItMS41MXptLTQuODMgMi43YTguNDUgOC40NSAwIDAgMC0yIDQuMTNjLjM5LS4wMy45Mi0uMSAxLjUxLS4yMWE3LjU5IDcuNTkgMCAwIDAgMy4xMi0xLjI4TDguMTQgOC44NHptLTIuMTIgNS4xNGE4LjQ4IDguNDggMCAwIDAgMi4xMiA2LjE4bDUuNjUtNS42Ni0yLjMtMi4zMWE4LjQzIDguNDMgMCAwIDEtMy42NCAxLjU1IDE0LjAzIDE0LjAzIDAgMCAxLTEuODMuMjR6bTIuODIgNi44OGE4LjQ2IDguNDYgMCAwIDAgNS4xMyAyLjEydi0uMDdBOC45NSA4Ljk1IDAgMCAxIDE2LjMgMTdsLTEuOC0xLjgtNS42NiA1LjY1ek0xNC45NyAyM2MyLS4xIDMuOC0uOSA1LjE5LTIuMTNMMTcgMTcuNzJhNy45NCA3Ljk0IDAgMCAwLTIuMDQgNS4yN3ptNS45LTIuODNhOC40NiA4LjQ2IDAgMCAwIDIuMTEtNS4xM2gtLjAyYTEwLjYyIDEwLjYyIDAgMCAwLTUuMiAybDMuMSAzLjEzem0yLjEyLTYuMTNjLS4xLTItLjktMy44LTIuMTMtNS4xOWwtNS42NSA1LjY2IDEuODMgMS44M2ExMS42IDExLjYgMCAwIDEgNS45NS0yLjN6TTE0LjUgNUE5LjQ2IDkuNDYgMCAwIDAgNSAxNC41YzAgNS4yOCA0LjIyIDkuNSA5LjUgOS41czkuNS00LjIyIDkuNS05LjVTMTkuNzggNSAxNC41IDV6Ii8+PC9zdmc+J30sMTYxMTc3KGUpewplLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMjggMjgiIHdpZHRoPSIyOCIgaGVpZ2h0PSIyOCI+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBkPSJNNC41NCAzLjJsLjc4LS41OSA1LjQ5IDQuNSAxLjQzIDEuMDdhNS4yOCA1LjI4IDAgMCAxIDIuMTktMi4zIDkuMTkgOS4xOSAwIDAgMSAxLjg4LS44NWguMDRsLjAxLS4wMS4xNC40OC40Mi0uMjh2LjAxbC4wMS4wMmEzLjE0IDMuMTQgMCAwIDEgLjE2LjI2bC4zNy43MmMuMi40NS40IDEuMDIuNSAxLjY0YTIuMTMgMi4xMyAwIDAgMSAxLjg5LjQ2bC4xOC4xNi4wMy4wMi4xOC4xNmMuMjIuMTYuNDIuMjcuODEuMjVhNS45IDUuOSAwIDAgMCAyLjItLjg2bC42Ni0uMzYuMDkuNzVhNS45OCA1Ljk4IDAgMCAxLTEuNyA1LjEgNi44NyA2Ljg3IDAgMCAxLTEuNyAxLjIzIDE5Ljk3IDE5Ljk3IDAgMCAxIC40OCAyLjQ4Yy4yNSAxLjczLjQyIDQuMDguMDYgNi41QTEuNDYgMS40NiAwIDAgMSAxOS42OCAyNWgtNy43MWExLjUgMS41IDAgMCAxLTEuNC0yLjA2bDEtMi40N2MtLjE4LjAyLS4zNy4wMy0uNTguMDNhMyAzIDAgMCAxLTEuNTMtLjQgNi44NCA2Ljg0IDAgMCAxLTEuNi42NGMtMS4wOC4yNy0yLjU1LjI5LTMuNzItLjg5YTQuMDYgNC4wNiAwIDAgMS0uOTYtMyA1LjEgNS4xIDAgMCAxIDItMy43NCA5OC41IDk4LjUgMCAwIDAgMi43LTIuMjRMNC41NSAzLjJ6TTE2LjUgNS41bC0uMTQtLjQ4LjM1LS4xLjIuMy0uNDEuMjh6bS03Ljg3IDYuMDZhNTcuNDggNTcuNDggMCAwIDEtMi4xOSAxLjgybC40OS4yNmMuNjUuMzcgMS40OC45IDEuOTcgMS41NmE1Ljc4IDUuNzggMCAwIDEgMS4xNCA0LjA3bC4wNi4wM2MuMTkuMS40OS4yLjkuMi42OCAwIC45NS0uMTEgMS4wMy0uMTZ2LS4wM2wuOTcuMTloLS41LjV2LjAzYS43NS43NSAwIDAgMS0uMDEuMS43NC43NCAwIDAgMS0uMDkuMjFsLTEuMzkgMy40N2EuNS41IDAgMCAwIC40Ny42OWg3LjcxYy4yNCAwIC40My0uMTcuNDctLjM4YTIyIDIyIDAgMCAwLS4wNi02LjIyIDI0LjQgMjQuNCAwIDAgMC0uNTYtMi43MSAxMS4zNSAxMS4zNSAwIDAgMC0uOTQtMS41MiA3LjEgNy4xIDAgMCAwLTIuMzEtMi4yMmwtLjYyLS4zMS40OS0uNUEzLjAzIDMuMDMgMCAwIDAgMTcgOC42YTEuMiAxLjIgMCAwIDAgLjAxLS4xYzAtLjY1LS4yMi0xLjMzLS40Ni0xLjg2LS4xLS4yMS0uMTgtLjQtLjI2LS41NGE4LjA3IDguMDcgMCAwIDAtMS4zNC42NGMtLjkuNTQtMS43NCAxLjMyLTEuOTUgMi4zNnYuMDNsLS4wMi4wM0wxMi41IDlsLjQ3LjE2di4wMmEyLjk3IDIuOTcgMCAwIDEtLjEuMjYgNS45IDUuOSAwIDAgMS0uMzEuNjJjLS4yNy40Ni0uNyAxLjA3LTEuMzQgMS4zOS0uNjMuMzEtMS4zOC4zLTEuOS4yM2E1LjgzIDUuODMgMCAwIDEtLjctLjEyem0zLjI2LTIuMzlMMTAuMiA3LjlsLS4wMi0uMDFMNi4zIDQuN2wyLjU3IDUuODhoLjAxYy4xNC4wNC4zNC4wOC41Ny4xMS40Ny4wNi45Ny4wNSAxLjM0LS4xNC4zNi0uMTguNjgtLjU3LjkxLS45OS4wOC0uMTQuMTUtLjI3LjItLjM5em04LjMyIDQuNjhhNS40NyA1LjQ3IDAgMCAwIDEuMzctMS4wMiA0Ljg4IDQuODggMCAwIDAgMS40Ni0zLjUzYy0uOC4zOS0xLjQxLjU4LTEuOTIuNjEtLjcuMDUtMS4xNC0uMTgtMS40OS0uNDVhNS42IDUuNiAwIDAgMS0uMjItLjE5bC0uMDMtLjAzLS4xNy0uMTNhMS40IDEuNCAwIDAgMC0uMzMtLjIyYy0uMTgtLjA3LS40NC0uMTItLjkzIDBsLS4xLjRjLS4xLjMtLjI4LjY5LS41OCAxLjA5Ljg3LjU5IDEuNiAxLjQ2IDIuMTQgMi4yYTE0LjkyIDE0LjkyIDAgMCAxIC44IDEuMjd6TTkuMDUgMTkuMTl2LS4wOWE0Ljc4IDQuNzggMCAwIDAtLjk2LTMuMyA1LjU2IDUuNTYgMCAwIDAtMS42NS0xLjI5Yy0uMy0uMTctLjYtLjMtLjgtLjRsLS4wNS0uMDNhNC4wNSA0LjA1IDAgMCAwLTEuNCAyLjgyIDMuMSAzLjEgMCAwIDAgLjY2IDIuMjVjLjgzLjgyIDEuODYuODQgMi43OC42MmE1LjcxIDUuNzEgMCAwIDAgMS40Mi0uNTh6bTQuMjYtNS44N2MtLjMuMjQtLjc0LjU0LTEuMTguNjYtLjM3LjEtLjgxLjEtMS4xMi4wOGE2Ljk1IDYuOTUgMCAwIDEtLjU0LS4wNmgtLjA1bC4wOC0uNS4wOC0uNS4wMy4wMWE1LjAyIDUuMDIgMCAwIDAgMS4yNiAwYy4yNC0uMDYuNTQtLjI1LjgzLS40N2E2LjEgNi4xIDAgMCAwIC40Mi0uMzdsLjAyLS4wMi4zNi4zNS4zNS4zNmgtLjAxbC0uMDMuMDRhNi4wOSA2LjA5IDAgMCAxLS41LjQyek02IDE3aDF2LTFINnYxeiIvPjwvc3ZnPid9LDU2OTc4NShlKXtlLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMjggMjgiIHdpZHRoPSIyOCIgaGVpZ2h0PSIyOCIgZmlsbD0ibm9uZSI+PHBhdGggc3Ryb2tlPSJjdXJyZW50Q29sb3IiIGQ9Ik03LjUgMjR2LTUuNW0wIDBzMi43LTEuMSA0LjUtMWMyLjEuMTIgMi45IDEuODggNSAyIDEuOC4xIDQuNS0xIDQuNS0xdi02bS0xNCA2di02bTAgMHYtNnMyLjctMS4xIDQuNS0xYzIuMS4xMiAyLjkgMS44OCA1IDIgMS44LjEgNC41LTEgNC41LTF2Nm0tMTQgMHMyLjctMS4xIDQuNS0xYzIuMS4xMiAyLjkgMS44OCA1IDIgMS44LjEgNC41LTEgNC41LTEiLz48L3N2Zz4nfSwxODU2MDUoZSl7CmUuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyOCAyOCIgd2lkdGg9IjI4IiBoZWlnaHQ9IjI4Ij48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTEyLjUgOGgxLjM2bC0uODUtMy4zOC45OC0uMjQuOSAzLjYyaDcuNjRhMS4zNCAxLjM0IDAgMCAxIC4yLjAyYy4xMy4wMi4zMS4wNy41LjE2LjE4LjA5LjM4LjI0LjUzLjQ2LjE1LjI0LjI0LjUyLjI0Ljg2IDAgLjM0LS4wOS42Mi0uMjQuODZhMS4zOCAxLjM4IDAgMCAxLS43OS41NkwyMiAyNC41NGwtLjAzLjQ2SDYuNWMtMSAwLTEuNjQtLjY4LTEuOTktMS4yM2E0LjQgNC40IDAgMCAxLS4zOC0uNzhsLS4wMS0uMDRjLS4xLS4wMy0uMjItLjA3LS4zNC0uMTNhMS4zNiAxLjM2IDAgMCAxLS41NC0uNDZBMS41MSAxLjUxIDAgMCAxIDMgMjEuNWMwLS4zNC4wOS0uNjIuMjQtLjg2LjE1LS4yMi4zNS0uMzcuNTQtLjQ2LjEtLjA1LjItLjA5LjI4LS4xMWE2LjYgNi42IDAgMCAxIC45Ni0yLjM0QzUuOTIgMTYuMzUgNy41NiAxNSAxMC41IDE1Yy43MiAwIDEuMzYuMDggMS45My4yMmwtLjQtNC4zYTEuMzggMS4zOCAwIDAgMS0uOC0uNTdBMS41MSAxLjUxIDAgMCAxIDExIDkuNWMwLS4zNC4wOS0uNjIuMjQtLjg2LjE1LS4yMi4zNS0uMzcuNTQtLjQ2YTEuNzMgMS43MyAwIDAgMSAuNy0uMThoLjAydi41Vjh6bS45NiA3LjU3YTUuNzMgNS43MyAwIDAgMSAyLjUyIDIuMTYgNi44NiA2Ljg2IDAgMCAxIC45NSAyLjM0IDEuMzggMS4zOCAwIDAgMSAuODIuNThjLjE2LjIzLjI1LjUxLjI1Ljg1IDAgLjM0LS4wOS42Mi0uMjQuODYtLjE1LjIyLS4zNS4zNy0uNTQuNDYtLjEyLjA2LS4yNC4xLS4zNC4xM2wtLjAxLjA0YTQuNCA0LjQgMCAwIDEtLjU0IDEuMDFoNC43bC45My0xM2gtOC45MWwuNDEgNC41N3pNMTQuNSA5aDhhLjczLjczIDAgMCAxIC4yOC4wN2MuMDYuMDQuMTEuMDguMTUuMTMuMDMuMDUuMDcuMTQuMDcuMyAwIC4xNi0uMDQuMjUtLjA3LjNhLjM4LjM4IDAgMCAxLS4xNS4xMy43My43MyAwIDAgMS0uMjcuMDdIMTIuNWEuNzMuNzMgMCAwIDEtLjI4LS4wNy4zOC4zOCAwIDAgMS0uMTUtLjEzLjUyLjUyIDAgMCAxLS4wNy0uM2MwLS4xNi4wNC0uMjUuMDctLjMuMDQtLjA1LjA5LS4xLjE1LS4xM0EuNzMuNzMgMCAwIDEgMTIuNSA5aDIuMDF6bTEuNCAxMWE1LjggNS44IDAgMCAwLS43Ni0xLjczQzE0LjQxIDE3LjE1IDEzLjA2IDE2IDEwLjUgMTZjLTIuNTYgMC0zLjkxIDEuMTUtNC42NCAyLjI3QTUuODYgNS44NiAwIDAgMCA1LjEgMjBoMTAuNzh6TTQuNSAyMWEuNzIuNzIgMCAwIDAtLjI4LjA3LjM4LjM4IDAgMCAwLS4xNS4xMy41Mi41MiAwIDAgMC0uMDcuM2MwIC4xNi4wNC4yNS4wNy4zLjA0LjA1LjA5LjEuMTUuMTNhLjczLjczIDAgMCAwIC4yNy4wN0gxNi41YS43Mi43MiAwIDAgMCAuMjgtLjA3LjM4LjM4IDAgMCAwIC4xNS0uMTMuNTIuNTIgMCAwIDAgLjA3LS4zLjUyLjUyIDAgMCAwLS4wNy0uMy4zOC4zOCAwIDAgMC0uMTUtLjEzLjczLjczIDAgMCAwLS4yNy0uMDdINC41em0uNzMgMmwuMTMuMjNjLjI4LjQ1LjY1Ljc3IDEuMTQuNzdoOGMuNSAwIC44Ni0uMzIgMS4xNC0uNzcuMDUtLjA3LjEtLjE1LjEzLS4yM0g1LjIzek0xMSAxN3YxaC0xdi0xaDF6bS0zIDFoMXYxSDh2LTF6bTQgMXYtMWgxdjFoLTF6Ii8+PC9zdmc+J30sNjk0NTMyKGUpe2UuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyOCAyOCIgd2lkdGg9IjI4IiBoZWlnaHQ9IjI4Ij48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGQ9Ik05LjUgMjFIOWguNXptOCAwSDE3aC41em0tNi0xMEgxMXYxaC41di0xem00IDFoLjV2LTFoLS41djF6bTIgNy41aC41LS41em0uMjktMS41OUE3Ljk3IDcuOTcgMCAwIDAgMjEgMTEuNWgtMWE2Ljk3IDYuOTcgMCAwIDEtMi43OSA1LjU5bC41OC44MnpNMjEgMTEuNUE3LjUgNy41IDAgMCAwIDEzLjUgNHYxYTYuNSA2LjUgMCAwIDEgNi41IDYuNWgxek0xMy41IDRBNy41IDcuNSAwIDAgMCA2IDExLjVoMUE2LjUgNi41IDAgMCAxIDEzLjUgNVY0ek02IDExLjVhNy45OCA3Ljk4IDAgMCAwIDMuMjEgNi40MWwuNTctLjgyQTYuOTggNi45OCAwIDAgMSA3IDExLjVINnpNOSAyMWExIDEgMCAwIDAgMSAxdi0xSDl6bTggMWExIDEgMCAwIDAgMS0xaC0xdjF6bS02LS41VjIzaDF2LTEuNWgtMXptMCAxLjVhMSAxIDAgMCAwIDEgMXYtMWgtMXptMSAxaDN2LTFoLTN2MXptMyAwYTEgMSAwIDAgMCAxLTFoLTF2MXptMS0xdi0xLjVoLTFWMjNoMXptLTMtMTEuNXY2aDF2LTZoLTF6TTkuNSAyMGg4di0xaC04djF6TTkgMTcuNXYyaDF2LTJIOXptMCAyVjIxaDF2LTEuNUg5em05IDEuNXYtMS41aC0xVjIxaDF6bTAtMS41di0yaC0xdjJoMXpNOS41IDE4aDR2LTFoLTR2MXptNCAwaDR2LTFoLTR2MXptLTItNmgydi0xaC0ydjF6bTIgMGgydi0xaC0ydjF6TTEwIDIyaDEuNXYtMUgxMHYxem0xLjUgMGg0di0xaC00djF6bTQgMEgxN3YtMWgtMS41djF6Ii8+PC9zdmc+J30sODE0NjcwKGUpe2UuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyOCAyOCIgd2lkdGg9IjI4IiBoZWlnaHQ9IjI4Ij48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGQ9Ik02IDE0LjVDNiA5Ljc4IDkuNzggNiAxNC41IDZjNC43MiAwIDguNSAzLjc4IDguNSA4LjUgMCA0LjcyLTMuNzggOC41LTguNSA4LjVBOC40NiA4LjQ2IDAgMCAxIDYgMTQuNXpNMTQuNSA1QTkuNDYgOS40NiAwIDAgMCA1IDE0LjVjMCA1LjI4IDQuMjIgOS41IDkuNSA5LjVzOS41LTQuMjIgOS41LTkuNVMxOS43OCA1IDE0LjUgNXpNMTQgMTZWOWgxdjZoNHYxaC01eiIvPjwvc3ZnPid9LDYyMDc4MShlKXsKZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDI4IDI4IiB3aWR0aD0iMjgiIGhlaWdodD0iMjgiPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZD0iTTYgMTQuNUM2IDkuNzggOS43OCA2IDE0LjUgNmM0LjcyIDAgOC41IDMuNzggOC41IDguNSAwIDQuNzItMy43OCA4LjUtOC41IDguNUE4LjQ2IDguNDYgMCAwIDEgNiAxNC41ek0xNC41IDVBOS40NiA5LjQ2IDAgMCAwIDUgMTQuNWMwIDUuMjggNC4yMiA5LjUgOS41IDkuNXM5LjUtNC4yMiA5LjUtOS41UzE5Ljc4IDUgMTQuNSA1ek0xMiAxMmExIDEgMCAxIDAgMCAyIDEgMSAwIDAgMCAwLTJ6bTQgMWExIDEgMCAxIDEgMiAwIDEgMSAwIDAgMS0yIDB6bS02IDRsLS40My4yNnYuMDFsLjAzLjAzYTMuNTUgMy41NSAwIDAgMCAuMy40IDUuNyA1LjcgMCAwIDAgOS4yMiAwIDUuNDIgNS40MiAwIDAgMCAuMjgtLjRsLjAyLS4wM3YtLjAxTDE5IDE3bC0uNDMtLjI2di4wMmEyLjQ1IDIuNDUgMCAwIDEtLjI0LjMyYy0uMTcuMjEtLjQzLjUtLjc4Ljc5YTQuNzEgNC43MSAwIDAgMS02Ljg4LS44IDQuMzIgNC4zMiAwIDAgMS0uMjMtLjMxbC0uMDEtLjAyTDEwIDE3eiIvPjwvc3ZnPid9LDkwMDMxMShlKXtlLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMjggMjgiIHdpZHRoPSIyOCIgaGVpZ2h0PSIyOCI+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik01LjYgMTUuNDNBNi4xOSA2LjE5IDAgMCAxIDE0IDYuMzZhNi4xOSA2LjE5IDAgMCAxIDguNCA5LjA4bC0uMDMuMDItNy4zIDcuMzFhMS41IDEuNSAwIDAgMS0yLjEzIDBsLTcuMy03LjMtLjAzLS4wM20uNzEtLjd2LS4wMWE1LjE5IDUuMTkgMCAwIDEgNy4zMy03LjM0di4wMWMuMi4yLjUxLjE5LjcgMGE1LjE5IDUuMTkgMCAwIDEgNy4zNCA3LjMzbC0uMDMuMDItNy4zIDcuMzFhLjUuNSAwIDAgMS0uNzEgMGwtNy4zLTcuMy0uMDMtLjAyeiIvPjwvc3ZnPid9LDc1MDc2OShlKXtlLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMjggMjgiIHdpZHRoPSIyOCIgaGVpZ2h0PSIyOCI+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBkPSJNMjIuODcgNi40NGMuMDktLjc4LS41My0xLjQtMS4zLTEuMzEtMS40My4xNS0zLjQzLjQ4LTUuNDIgMS4yYTExLjggMTEuOCAwIDAgMC01LjIzIDMuNDRMOS44NiAxMS45bDYuMjQgNi4yNCAyLjEzLTEuMDZhMTEuOCAxMS44IDAgMCAwIDMuNDQtNS4yM2MuNzItMS45OSAxLjA1LTQgMS4yLTUuNDF6bS00LjkzIDExLjlsLTEuNzIuODYtLjA0LjAyaC0uMDRsLTIuMi42N3YuMDFhMTkuNjggMTkuNjggMCAwIDAtLjEzIDMuMzNjLjAxLjE0LjA4LjIyLjE3LjI2LjA4LjA0LjIuMDUuMzItLjAzYTE4LjgzIDE4LjgzIDAgMCAwIDIuNzktMi4yNiA4LjE4IDguMTggMCAwIDAgLjQ0LTEuMWMuMTYtLjUxLjMzLTEuMTIuNDEtMS43NnptLS40NCAzLjE2bC4zNS4zNS0uMDEuMDItLjA1LjA1YTE2Ljg1IDE2Ljg1IDAgMCAxLS44My43NmMtLjU0LjQ3LTEuMyAxLjA4LTIuMSAxLjYxYTEuMyAxLjMgMCAwIDEtMi4wNS0uOTggMTYuNDYgMTYuNDYgMCAwIDEgLjA5LTMuMDhsLS4xNi4wNWExLjUgMS41IDAgMCAxLTEuNTMtLjM2bC0zLjEzLTMuMTNjLS40LS40LS41NC0xLS4zNi0xLjUzbC4wNS0uMTYtLjM2LjA0Yy0uNy4wNi0xLjYyLjExLTIuNTQuMDZhMS4zIDEuMyAwIDAgMS0xLjEzLS44Yy0uMTgtLjQyLS4xMy0uOTQuMTctMS4zNWE4Ny41NSA4Ny41NSAwIDAgMSAyLjE1LTIuOGwuMDQtLjA0di0uMDJsLjQuMzEtLjIyLS40NS4wMy0uMDFhNS45MyA1LjkzIDAgMCAxIC4zNC0uMTZjLjIzLS4xLjU1LS4yMi45NC0uMzVBOS43NyA5Ljc3IDAgMCAxIDEwLjI2IDlhMTIuOSAxMi45IDAgMCAxIDUuNTUtMy42MWMyLjA5LS43NiA0LjE4LTEuMSA1LjY1LTEuMjYgMS40MS0uMTUgMi41NiAxIDIuNCAyLjQxYTI0LjA0IDI0LjA0IDAgMCAxLTEuMjUgNS42NUExMi45IDEyLjkgMCAwIDEgMTkgMTcuNzRhOS43NyA5Ljc3IDAgMCAxLS44OCAzLjYxIDkuMTggOS4xOCAwIDAgMS0uMTYuMzR2LjAzaC0uMDFsLS40NS0uMjJ6bTAgMGwuNDUuMjItLjA0LjA4LS4wNi4wNS0uMzUtLjM1em0tMTEtMTFsLS40LS4zMS4wOC0uMDkuMS0uMDUuMjIuNDV6bTMuMTYtLjQ0YTkuNjEgOS42MSAwIDAgMC0yLjg0Ljg0bC0uMTMuMTZhMTA5LjgzIDEwOS44MyAwIDAgMC0xLjk3IDIuNTguNC40IDAgMCAwLS4wNi4zOGMuMDQuMS4xMi4xNy4yNy4xOGExNi4wNSAxNi4wNSAwIDAgMCAzLjE4LS4xNWwuNjYtMi4yLjAxLS4wMy4wMi0uMDQuODYtMS43MnptNS40IDguNDVsLTUuNTctNS41Ni0uNTEgMS43LS4zMS45MmEuNS41IDAgMCAwIC4xMi41MWwzLjEzIDMuMTNhLjUuNSAwIDAgMCAuNS4xMmwuOTItLjNoLjAybDEuNy0uNTJ6bS0xMC45MS42NGwyLTIgLjcuNy0yIDItLjctLjd6bTAgNGw0LTQgLjcuNy00IDQtLjctLjd6bTQgMGwyLTIgLjcuNy0yIDItLjctLjd6TTE2IDEwLjVhMS41IDEuNSAwIDEgMSAzIDAgMS41IDEuNSAwIDAgMS0zIDB6TTE3LjUgOGEyLjUgMi41IDAgMSAwIDAgNSAyLjUgMi41IDAgMCAwIDAtNXoiLz48L3N2Zz4nfSwyNjA2MDMoZSxkLHUpeyJ1c2Ugc3RyaWN0Ijt1LmQoZCx7ZGVmYXVsdDooKT0+dH0pO2NvbnN0IHQ9ZnVuY3Rpb24oKXt2YXIgZT17YmFzZToiaHR0cHM6Ly90d2Vtb2ppLm1heGNkbi5jb20vdi8xMy4wLjEvIixleHQ6Ii5wbmciLHNpemU6IjcyeDcyIixjbGFzc05hbWU6ImVtb2ppIixjb252ZXJ0Ontmcm9tQ29kZVBvaW50OmZ1bmN0aW9uKGUpe3ZhciBkPSJzdHJpbmciPT10eXBlb2YgZT9wYXJzZUludChlLDE2KTplO2lmKGQ8NjU1MzYpcmV0dXJuIGEoZCk7cmV0dXJuIGEoNTUyOTYrKChkLT02NTUzNik+PjEwKSw1NjMyMCsoMTAyMyZkKSl9LHRvQ29kZVBvaW50Omd9LG9uZXJyb3I6ZnVuY3Rpb24oKXt0aGlzLnBhcmVudE5vZGUmJnRoaXMucGFyZW50Tm9kZS5yZXBsYWNlQ2hpbGQobCh0aGlzLmFsdCwhMSksdGhpcyl9LApwYXJzZTpmdW5jdGlvbihkLHUpe3UmJiJmdW5jdGlvbiIhPXR5cGVvZiB1fHwodT17Y2FsbGJhY2s6dX0pO3JldHVybigic3RyaW5nIj09dHlwZW9mIGQ/bTpmKShkLHtjYWxsYmFjazp1LmNhbGxiYWNrfHxyLGF0dHJpYnV0ZXM6ImZ1bmN0aW9uIj09dHlwZW9mIHUuYXR0cmlidXRlcz91LmF0dHJpYnV0ZXM6cCxiYXNlOiJzdHJpbmciPT10eXBlb2YgdS5iYXNlP3UuYmFzZTplLmJhc2UsZXh0OnUuZXh0fHxlLmV4dCxzaXplOnUuZm9sZGVyfHwodD11LnNpemV8fGUuc2l6ZSwibnVtYmVyIj09dHlwZW9mIHQ/dCsieCIrdDp0KSxjbGFzc05hbWU6dS5jbGFzc05hbWV8fGUuY2xhc3NOYW1lLG9uZXJyb3I6dS5vbmVycm9yfHxlLm9uZXJyb3J9KTt2YXIgdH0scmVwbGFjZTpiLHRlc3Q6ZnVuY3Rpb24oZSl7dS5sYXN0SW5kZXg9MDt2YXIgZD11LnRlc3QoZSk7cmV0dXJuIHUubGFzdEluZGV4PTAsZH19LGQ9eyImIjoiJmFtcDsiLCI8IjoiJmx0OyIsIj4iOiImZ3Q7IiwiJyI6IiYjMzk7IiwnIic6IiZxdW90OyIKfSx1PS8oPzpcdWQ4M2RcdWRjNjhcdWQ4M2NcdWRmZmJcdTIwMGRcdWQ4M2VcdWRkMWRcdTIwMGRcdWQ4M2RcdWRjNjhcdWQ4M2NbXHVkZmZjLVx1ZGZmZl18XHVkODNkXHVkYzY4XHVkODNjXHVkZmZjXHUyMDBkXHVkODNlXHVkZDFkXHUyMDBkXHVkODNkXHVkYzY4XHVkODNjW1x1ZGZmYlx1ZGZmZC1cdWRmZmZdfFx1ZDgzZFx1ZGM2OFx1ZDgzY1x1ZGZmZFx1MjAwZFx1ZDgzZVx1ZGQxZFx1MjAwZFx1ZDgzZFx1ZGM2OFx1ZDgzY1tcdWRmZmJcdWRmZmNcdWRmZmVcdWRmZmZdfFx1ZDgzZFx1ZGM2OFx1ZDgzY1x1ZGZmZVx1MjAwZFx1ZDgzZVx1ZGQxZFx1MjAwZFx1ZDgzZFx1ZGM2OFx1ZDgzY1tcdWRmZmItXHVkZmZkXHVkZmZmXXxcdWQ4M2RcdWRjNjhcdWQ4M2NcdWRmZmZcdTIwMGRcdWQ4M2VcdWRkMWRcdTIwMGRcdWQ4M2RcdWRjNjhcdWQ4M2NbXHVkZmZiLVx1ZGZmZV18XHVkODNkXHVkYzY5XHVkODNjXHVkZmZiXHUyMDBkXHVkODNlXHVkZDFkXHUyMDBkXHVkODNkXHVkYzY4XHVkODNjW1x1ZGZmYy1cdWRmZmZdfFx1ZDgzZFx1ZGM2OVx1ZDgzY1x1ZGZmYlx1MjAwZFx1ZDgzZVx1ZGQxZFx1MjAwZFx1ZDgzZFx1ZGM2OVx1ZDgzY1tcdWRmZmMtXHVkZmZmXXxcdWQ4M2RcdWRjNjlcdWQ4M2NcdWRmZmNcdTIwMGRcdWQ4M2VcdWRkMWRcdTIwMGRcdWQ4M2RcdWRjNjhcdWQ4M2NbXHVkZmZiXHVkZmZkLVx1ZGZmZl18XHVkODNkXHVkYzY5XHVkODNjXHVkZmZjXHUyMDBkXHVkODNlXHVkZDFkXHUyMDBkXHVkODNkXHVkYzY5XHVkODNjW1x1ZGZmYlx1ZGZmZC1cdWRmZmZdfFx1ZDgzZFx1ZGM2OVx1ZDgzY1x1ZGZmZFx1MjAwZFx1ZDgzZVx1ZGQxZFx1MjAwZFx1ZDgzZFx1ZGM2OFx1ZDgzY1tcdWRmZmJcdWRmZmNcdWRmZmVcdWRmZmZdfFx1ZDgzZFx1ZGM2OVx1ZDgzY1x1ZGZmZFx1MjAwZFx1ZDgzZVx1ZGQxZFx1MjAwZFx1ZDgzZFx1ZGM2OVx1ZDgzY1tcdWRmZmJcdWRmZmNcdWRmZmVcdWRmZmZdfFx1ZDgzZFx1ZGM2OVx1ZDgzY1x1ZGZmZVx1MjAwZFx1ZDgzZVx1ZGQxZFx1MjAwZFx1ZDgzZFx1ZGM2OFx1ZDgzY1tcdWRmZmItXHVkZmZkXHVkZmZmXXxcdWQ4M2RcdWRjNjlcdWQ4M2NcdWRmZmVcdTIwMGRcdWQ4M2VcdWRkMWRcdTIwMGRcdWQ4M2RcdWRjNjlcdWQ4M2NbXHVkZmZiLVx1ZGZmZFx1ZGZmZl18XHVkODNkXHVkYzY5XHVkODNjXHVkZmZmXHUyMDBkXHVkODNlXHVkZDFkXHUyMDBkXHVkODNkXHVkYzY4XHVkODNjW1x1ZGZmYi1cdWRmZmVdfFx1ZDgzZFx1ZGM2OVx1ZDgzY1x1ZGZmZlx1MjAwZFx1ZDgzZVx1ZGQxZFx1MjAwZFx1ZDgzZFx1ZGM2OVx1ZDgzY1tcdWRmZmItXHVkZmZlXXxcdWQ4M2VcdWRkZDFcdWQ4M2NcdWRmZmJcdTIwMGRcdWQ4M2VcdWRkMWRcdTIwMGRcdWQ4M2VcdWRkZDFcdWQ4M2NbXHVkZmZiLVx1ZGZmZl18XHVkODNlXHVkZGQxXHVkODNjXHVkZmZjXHUyMDBkXHVkODNlXHVkZDFkXHUyMDBkXHVkODNlXHVkZGQxXHVkODNjW1x1ZGZmYi1cdWRmZmZdfFx1ZDgzZVx1ZGRkMVx1ZDgzY1x1ZGZmZFx1MjAwZFx1ZDgzZVx1ZGQxZFx1MjAwZFx1ZDgzZVx1ZGRkMVx1ZDgzY1tcdWRmZmItXHVkZmZmXXxcdWQ4M2VcdWRkZDFcdWQ4M2NcdWRmZmVcdTIwMGRcdWQ4M2VcdWRkMWRcdTIwMGRcdWQ4M2VcdWRkZDFcdWQ4M2NbXHVkZmZiLVx1ZGZmZl18XHVkODNlXHVkZGQxXHVkODNjXHVkZmZmXHUyMDBkXHVkODNlXHVkZDFkXHUyMDBkXHVkODNlXHVkZGQxXHVkODNjW1x1ZGZmYi1cdWRmZmZdfFx1ZDgzZVx1ZGRkMVx1MjAwZFx1ZDgzZVx1ZGQxZFx1MjAwZFx1ZDgzZVx1ZGRkMXxcdWQ4M2RcdWRjNmJcdWQ4M2NbXHVkZmZiLVx1ZGZmZl18XHVkODNkXHVkYzZjXHVkODNjW1x1ZGZmYi1cdWRmZmZdfFx1ZDgzZFx1ZGM2ZFx1ZDgzY1tcdWRmZmItXHVkZmZmXXxcdWQ4M2RbXHVkYzZiLVx1ZGM2ZF0pfCg/Olx1ZDgzZFtcdWRjNjhcdWRjNjldfFx1ZDgzZVx1ZGRkMSkoPzpcdWQ4M2NbXHVkZmZiLVx1ZGZmZl0pP1x1MjAwZCg/Olx1MjY5NVx1ZmUwZnxcdTI2OTZcdWZlMGZ8XHUyNzA4XHVmZTBmfFx1ZDgzY1tcdWRmM2VcdWRmNzNcdWRmN2NcdWRmODRcdWRmOTNcdWRmYTRcdWRmYThcdWRmZWJcdWRmZWRdfFx1ZDgzZFtcdWRjYmJcdWRjYmNcdWRkMjdcdWRkMmNcdWRlODBcdWRlOTJdfFx1ZDgzZVtcdWRkYWYtXHVkZGIzXHVkZGJjXHVkZGJkXSl8KD86XHVkODNjW1x1ZGZjYlx1ZGZjY118XHVkODNkW1x1ZGQ3NFx1ZGQ3NV18XHUyNmY5KSgoPzpcdWQ4M2NbXHVkZmZiLVx1ZGZmZl18XHVmZTBmKVx1MjAwZFtcdTI2NDBcdTI2NDJdXHVmZTBmKXwoPzpcdWQ4M2NbXHVkZmMzXHVkZmM0XHVkZmNhXXxcdWQ4M2RbXHVkYzZlXHVkYzcwXHVkYzcxXHVkYzczXHVkYzc3XHVkYzgxXHVkYzgyXHVkYzg2XHVkYzg3XHVkZTQ1LVx1ZGU0N1x1ZGU0Ylx1ZGU0ZFx1ZGU0ZVx1ZGVhM1x1ZGViNC1cdWRlYjZdfFx1ZDgzZVtcdWRkMjZcdWRkMzVcdWRkMzctXHVkZDM5XHVkZDNkXHVkZDNlXHVkZGI4XHVkZGI5XHVkZGNkLVx1ZGRjZlx1ZGRkNi1cdWRkZGRdKSg/Olx1ZDgzY1tcdWRmZmItXHVkZmZmXSk/XHUyMDBkW1x1MjY0MFx1MjY0Ml1cdWZlMGZ8KD86XHVkODNkXHVkYzY4XHUyMDBkXHUyNzY0XHVmZTBmXHUyMDBkXHVkODNkXHVkYzhiXHUyMDBkXHVkODNkXHVkYzY4fFx1ZDgzZFx1ZGM2OFx1MjAwZFx1ZDgzZFx1ZGM2OFx1MjAwZFx1ZDgzZFx1ZGM2Nlx1MjAwZFx1ZDgzZFx1ZGM2NnxcdWQ4M2RcdWRjNjhcdTIwMGRcdWQ4M2RcdWRjNjhcdTIwMGRcdWQ4M2RcdWRjNjdcdTIwMGRcdWQ4M2RbXHVkYzY2XHVkYzY3XXxcdWQ4M2RcdWRjNjhcdTIwMGRcdWQ4M2RcdWRjNjlcdTIwMGRcdWQ4M2RcdWRjNjZcdTIwMGRcdWQ4M2RcdWRjNjZ8XHVkODNkXHVkYzY4XHUyMDBkXHVkODNkXHVkYzY5XHUyMDBkXHVkODNkXHVkYzY3XHUyMDBkXHVkODNkW1x1ZGM2Nlx1ZGM2N118XHVkODNkXHVkYzY5XHUyMDBkXHUyNzY0XHVmZTBmXHUyMDBkXHVkODNkXHVkYzhiXHUyMDBkXHVkODNkW1x1ZGM2OFx1ZGM2OV18XHVkODNkXHVkYzY5XHUyMDBkXHVkODNkXHVkYzY5XHUyMDBkXHVkODNkXHVkYzY2XHUyMDBkXHVkODNkXHVkYzY2fFx1ZDgzZFx1ZGM2OVx1MjAwZFx1ZDgzZFx1ZGM2OVx1MjAwZFx1ZDgzZFx1ZGM2N1x1MjAwZFx1ZDgzZFtcdWRjNjZcdWRjNjddfFx1ZDgzZFx1ZGM2OFx1MjAwZFx1Mjc2NFx1ZmUwZlx1MjAwZFx1ZDgzZFx1ZGM2OHxcdWQ4M2RcdWRjNjhcdTIwMGRcdWQ4M2RcdWRjNjZcdTIwMGRcdWQ4M2RcdWRjNjZ8XHVkODNkXHVkYzY4XHUyMDBkXHVkODNkXHVkYzY3XHUyMDBkXHVkODNkW1x1ZGM2Nlx1ZGM2N118XHVkODNkXHVkYzY4XHUyMDBkXHVkODNkXHVkYzY4XHUyMDBkXHVkODNkW1x1ZGM2Nlx1ZGM2N118XHVkODNkXHVkYzY4XHUyMDBkXHVkODNkXHVkYzY5XHUyMDBkXHVkODNkW1x1ZGM2Nlx1ZGM2N118XHVkODNkXHVkYzY5XHUyMDBkXHUyNzY0XHVmZTBmXHUyMDBkXHVkODNkW1x1ZGM2OFx1ZGM2OV18XHVkODNkXHVkYzY5XHUyMDBkXHVkODNkXHVkYzY2XHUyMDBkXHVkODNkXHVkYzY2fFx1ZDgzZFx1ZGM2OVx1MjAwZFx1ZDgzZFx1ZGM2N1x1MjAwZFx1ZDgzZFtcdWRjNjZcdWRjNjddfFx1ZDgzZFx1ZGM2OVx1MjAwZFx1ZDgzZFx1ZGM2OVx1MjAwZFx1ZDgzZFtcdWRjNjZcdWRjNjddfFx1ZDgzY1x1ZGZmM1x1ZmUwZlx1MjAwZFx1MjZhN1x1ZmUwZnxcdWQ4M2NcdWRmZjNcdWZlMGZcdTIwMGRcdWQ4M2NcdWRmMDh8XHVkODNjXHVkZmY0XHUyMDBkXHUyNjIwXHVmZTBmfFx1ZDgzZFx1ZGMxNVx1MjAwZFx1ZDgzZVx1ZGRiYXxcdWQ4M2RcdWRjM2JcdTIwMGRcdTI3NDRcdWZlMGZ8XHVkODNkXHVkYzQxXHUyMDBkXHVkODNkXHVkZGU4fFx1ZDgzZFx1ZGM2OFx1MjAwZFx1ZDgzZFtcdWRjNjZcdWRjNjddfFx1ZDgzZFx1ZGM2OVx1MjAwZFx1ZDgzZFtcdWRjNjZcdWRjNjddfFx1ZDgzZFx1ZGM2Zlx1MjAwZFx1MjY0MFx1ZmUwZnxcdWQ4M2RcdWRjNmZcdTIwMGRcdTI2NDJcdWZlMGZ8XHVkODNlXHVkZDNjXHUyMDBkXHUyNjQwXHVmZTBmfFx1ZDgzZVx1ZGQzY1x1MjAwZFx1MjY0Mlx1ZmUwZnxcdWQ4M2VcdWRkZGVcdTIwMGRcdTI2NDBcdWZlMGZ8XHVkODNlXHVkZGRlXHUyMDBkXHUyNjQyXHVmZTBmfFx1ZDgzZVx1ZGRkZlx1MjAwZFx1MjY0MFx1ZmUwZnxcdWQ4M2VcdWRkZGZcdTIwMGRcdTI2NDJcdWZlMGZ8XHVkODNkXHVkYzA4XHUyMDBkXHUyYjFiKXxbIyowLTldXHVmZTBmP1x1MjBlM3woPzpbwqnCrlx1MjEyMlx1MjY1Zl1cdWZlMGYpfCg/Olx1ZDgzY1tcdWRjMDRcdWRkNzBcdWRkNzFcdWRkN2VcdWRkN2ZcdWRlMDJcdWRlMWFcdWRlMmZcdWRlMzdcdWRmMjFcdWRmMjQtXHVkZjJjXHVkZjM2XHVkZjdkXHVkZjk2XHVkZjk3XHVkZjk5LVx1ZGY5Ylx1ZGY5ZVx1ZGY5Zlx1ZGZjZFx1ZGZjZVx1ZGZkNC1cdWRmZGZcdWRmZjNcdWRmZjVcdWRmZjddfFx1ZDgzZFtcdWRjM2ZcdWRjNDFcdWRjZmRcdWRkNDlcdWRkNGFcdWRkNmZcdWRkNzBcdWRkNzNcdWRkNzYtXHVkZDc5XHVkZDg3XHVkZDhhLVx1ZGQ4ZFx1ZGRhNVx1ZGRhOFx1ZGRiMVx1ZGRiMlx1ZGRiY1x1ZGRjMi1cdWRkYzRcdWRkZDEtXHVkZGQzXHVkZGRjLVx1ZGRkZVx1ZGRlMVx1ZGRlM1x1ZGRlOFx1ZGRlZlx1ZGRmM1x1ZGRmYVx1ZGVjYlx1ZGVjZC1cdWRlY2ZcdWRlZTAtXHVkZWU1XHVkZWU5XHVkZWYwXHVkZWYzXXxbXHUyMDNjXHUyMDQ5XHUyMTM5XHUyMTk0LVx1MjE5OVx1MjFhOVx1MjFhYVx1MjMxYVx1MjMxYlx1MjMyOFx1MjNjZlx1MjNlZC1cdTIzZWZcdTIzZjFcdTIzZjJcdTIzZjgtXHUyM2ZhXHUyNGMyXHUyNWFhXHUyNWFiXHUyNWI2XHUyNWMwXHUyNWZiLVx1MjVmZVx1MjYwMC1cdTI2MDRcdTI2MGVcdTI2MTFcdTI2MTRcdTI2MTVcdTI2MThcdTI2MjBcdTI2MjJcdTI2MjNcdTI2MjZcdTI2MmFcdTI2MmVcdTI2MmZcdTI2MzgtXHUyNjNhXHUyNjQwXHUyNjQyXHUyNjQ4LVx1MjY1M1x1MjY2MFx1MjY2M1x1MjY2NVx1MjY2Nlx1MjY2OFx1MjY3Ylx1MjY3Zlx1MjY5Mi1cdTI2OTdcdTI2OTlcdTI2OWJcdTI2OWNcdTI2YTBcdTI2YTFcdTI2YTdcdTI2YWFcdTI2YWJcdTI2YjBcdTI2YjFcdTI2YmRcdTI2YmVcdTI2YzRcdTI2YzVcdTI2YzhcdTI2Y2ZcdTI2ZDFcdTI2ZDNcdTI2ZDRcdTI2ZTlcdTI2ZWFcdTI2ZjAtXHUyNmY1XHUyNmY4XHUyNmZhXHUyNmZkXHUyNzAyXHUyNzA4XHUyNzA5XHUyNzBmXHUyNzEyXHUyNzE0XHUyNzE2XHUyNzFkXHUyNzIxXHUyNzMzXHUyNzM0XHUyNzQ0XHUyNzQ3XHUyNzU3XHUyNzYzXHUyNzY0XHUyN2ExXHUyOTM0XHUyOTM1XHUyYjA1LVx1MmIwN1x1MmIxYlx1MmIxY1x1MmI1MFx1MmI1NVx1MzAzMFx1MzAzZFx1MzI5N1x1MzI5OV0pKD86XHVmZTBmfCg/IVx1ZmUwZSkpfCg/Oig/Olx1ZDgzY1tcdWRmY2JcdWRmY2NdfFx1ZDgzZFtcdWRkNzRcdWRkNzVcdWRkOTBdfFtcdTI2MWRcdTI2ZjdcdTI2ZjlcdTI3MGNcdTI3MGRdKSg/Olx1ZmUwZnwoPyFcdWZlMGUpKXwoPzpcdWQ4M2NbXHVkZjg1XHVkZmMyLVx1ZGZjNFx1ZGZjN1x1ZGZjYV18XHVkODNkW1x1ZGM0Mlx1ZGM0M1x1ZGM0Ni1cdWRjNTBcdWRjNjYtXHVkYzY5XHVkYzZlXHVkYzcwLVx1ZGM3OFx1ZGM3Y1x1ZGM4MS1cdWRjODNcdWRjODUtXHVkYzg3XHVkY2FhXHVkZDdhXHVkZDk1XHVkZDk2XHVkZTQ1LVx1ZGU0N1x1ZGU0Yi1cdWRlNGZcdWRlYTNcdWRlYjQtXHVkZWI2XHVkZWMwXHVkZWNjXXxcdWQ4M2VbXHVkZDBjXHVkZDBmXHVkZDE4LVx1ZGQxY1x1ZGQxZVx1ZGQxZlx1ZGQyNlx1ZGQzMC1cdWRkMzlcdWRkM2RcdWRkM2VcdWRkNzdcdWRkYjVcdWRkYjZcdWRkYjhcdWRkYjlcdWRkYmJcdWRkY2QtXHVkZGNmXHVkZGQxLVx1ZGRkZF18W1x1MjcwYVx1MjcwYl0pKSg/Olx1ZDgzY1tcdWRmZmItXHVkZmZmXSk/fCg/Olx1ZDgzY1x1ZGZmNFx1ZGI0MFx1ZGM2N1x1ZGI0MFx1ZGM2Mlx1ZGI0MFx1ZGM2NVx1ZGI0MFx1ZGM2ZVx1ZGI0MFx1ZGM2N1x1ZGI0MFx1ZGM3ZnxcdWQ4M2NcdWRmZjRcdWRiNDBcdWRjNjdcdWRiNDBcdWRjNjJcdWRiNDBcdWRjNzNcdWRiNDBcdWRjNjNcdWRiNDBcdWRjNzRcdWRiNDBcdWRjN2Z8XHVkODNjXHVkZmY0XHVkYjQwXHVkYzY3XHVkYjQwXHVkYzYyXHVkYjQwXHVkYzc3XHVkYjQwXHVkYzZjXHVkYjQwXHVkYzczXHVkYjQwXHVkYzdmfFx1ZDgzY1x1ZGRlNlx1ZDgzY1tcdWRkZTgtXHVkZGVjXHVkZGVlXHVkZGYxXHVkZGYyXHVkZGY0XHVkZGY2LVx1ZGRmYVx1ZGRmY1x1ZGRmZFx1ZGRmZl18XHVkODNjXHVkZGU3XHVkODNjW1x1ZGRlNlx1ZGRlN1x1ZGRlOS1cdWRkZWZcdWRkZjEtXHVkZGY0XHVkZGY2LVx1ZGRmOVx1ZGRmYlx1ZGRmY1x1ZGRmZVx1ZGRmZl18XHVkODNjXHVkZGU4XHVkODNjW1x1ZGRlNlx1ZGRlOFx1ZGRlOVx1ZGRlYi1cdWRkZWVcdWRkZjAtXHVkZGY1XHVkZGY3XHVkZGZhLVx1ZGRmZl18XHVkODNjXHVkZGU5XHVkODNjW1x1ZGRlYVx1ZGRlY1x1ZGRlZlx1ZGRmMFx1ZGRmMlx1ZGRmNFx1ZGRmZl18XHVkODNjXHVkZGVhXHVkODNjW1x1ZGRlNlx1ZGRlOFx1ZGRlYVx1ZGRlY1x1ZGRlZFx1ZGRmNy1cdWRkZmFdfFx1ZDgzY1x1ZGRlYlx1ZDgzY1tcdWRkZWUtXHVkZGYwXHVkZGYyXHVkZGY0XHVkZGY3XXxcdWQ4M2NcdWRkZWNcdWQ4M2NbXHVkZGU2XHVkZGU3XHVkZGU5LVx1ZGRlZVx1ZGRmMS1cdWRkZjNcdWRkZjUtXHVkZGZhXHVkZGZjXHVkZGZlXXxcdWQ4M2NcdWRkZWRcdWQ4M2NbXHVkZGYwXHVkZGYyXHVkZGYzXHVkZGY3XHVkZGY5XHVkZGZhXXxcdWQ4M2NcdWRkZWVcdWQ4M2NbXHVkZGU4LVx1ZGRlYVx1ZGRmMS1cdWRkZjRcdWRkZjYtXHVkZGY5XXxcdWQ4M2NcdWRkZWZcdWQ4M2NbXHVkZGVhXHVkZGYyXHVkZGY0XHVkZGY1XXxcdWQ4M2NcdWRkZjBcdWQ4M2NbXHVkZGVhXHVkZGVjLVx1ZGRlZVx1ZGRmMlx1ZGRmM1x1ZGRmNVx1ZGRmN1x1ZGRmY1x1ZGRmZVx1ZGRmZl18XHVkODNjXHVkZGYxXHVkODNjW1x1ZGRlNi1cdWRkZThcdWRkZWVcdWRkZjBcdWRkZjctXHVkZGZiXHVkZGZlXXxcdWQ4M2NcdWRkZjJcdWQ4M2NbXHVkZGU2XHVkZGU4LVx1ZGRlZFx1ZGRmMC1cdWRkZmZdfFx1ZDgzY1x1ZGRmM1x1ZDgzY1tcdWRkZTZcdWRkZThcdWRkZWEtXHVkZGVjXHVkZGVlXHVkZGYxXHVkZGY0XHVkZGY1XHVkZGY3XHVkZGZhXHVkZGZmXXxcdWQ4M2NcdWRkZjRcdWQ4M2NcdWRkZjJ8XHVkODNjXHVkZGY1XHVkODNjW1x1ZGRlNlx1ZGRlYS1cdWRkZWRcdWRkZjAtXHVkZGYzXHVkZGY3LVx1ZGRmOVx1ZGRmY1x1ZGRmZV18XHVkODNjXHVkZGY2XHVkODNjXHVkZGU2fFx1ZDgzY1x1ZGRmN1x1ZDgzY1tcdWRkZWFcdWRkZjRcdWRkZjhcdWRkZmFcdWRkZmNdfFx1ZDgzY1x1ZGRmOFx1ZDgzY1tcdWRkZTYtXHVkZGVhXHVkZGVjLVx1ZGRmNFx1ZGRmNy1cdWRkZjlcdWRkZmJcdWRkZmQtXHVkZGZmXXxcdWQ4M2NcdWRkZjlcdWQ4M2NbXHVkZGU2XHVkZGU4XHVkZGU5XHVkZGViLVx1ZGRlZFx1ZGRlZi1cdWRkZjRcdWRkZjdcdWRkZjlcdWRkZmJcdWRkZmNcdWRkZmZdfFx1ZDgzY1x1ZGRmYVx1ZDgzY1tcdWRkZTZcdWRkZWNcdWRkZjJcdWRkZjNcdWRkZjhcdWRkZmVcdWRkZmZdfFx1ZDgzY1x1ZGRmYlx1ZDgzY1tcdWRkZTZcdWRkZThcdWRkZWFcdWRkZWNcdWRkZWVcdWRkZjNcdWRkZmFdfFx1ZDgzY1x1ZGRmY1x1ZDgzY1tcdWRkZWJcdWRkZjhdfFx1ZDgzY1x1ZGRmZFx1ZDgzY1x1ZGRmMHxcdWQ4M2NcdWRkZmVcdWQ4M2NbXHVkZGVhXHVkZGY5XXxcdWQ4M2NcdWRkZmZcdWQ4M2NbXHVkZGU2XHVkZGYyXHVkZGZjXXxcdWQ4M2NbXHVkY2NmXHVkZDhlXHVkZDkxLVx1ZGQ5YVx1ZGRlNi1cdWRkZmZcdWRlMDFcdWRlMzItXHVkZTM2XHVkZTM4LVx1ZGUzYVx1ZGU1MFx1ZGU1MVx1ZGYwMC1cdWRmMjBcdWRmMmQtXHVkZjM1XHVkZjM3LVx1ZGY3Y1x1ZGY3ZS1cdWRmODRcdWRmODYtXHVkZjkzXHVkZmEwLVx1ZGZjMVx1ZGZjNVx1ZGZjNlx1ZGZjOFx1ZGZjOVx1ZGZjZi1cdWRmZDNcdWRmZTAtXHVkZmYwXHVkZmY0XHVkZmY4LVx1ZGZmZl18XHVkODNkW1x1ZGMwMC1cdWRjM2VcdWRjNDBcdWRjNDRcdWRjNDVcdWRjNTEtXHVkYzY1XHVkYzZhXHVkYzZmXHVkYzc5LVx1ZGM3Ylx1ZGM3ZC1cdWRjODBcdWRjODRcdWRjODgtXHVkY2E5XHVkY2FiLVx1ZGNmY1x1ZGNmZi1cdWRkM2RcdWRkNGItXHVkZDRlXHVkZDUwLVx1ZGQ2N1x1ZGRhNFx1ZGRmYi1cdWRlNDRcdWRlNDgtXHVkZTRhXHVkZTgwLVx1ZGVhMlx1ZGVhNC1cdWRlYjNcdWRlYjctXHVkZWJmXHVkZWMxLVx1ZGVjNVx1ZGVkMC1cdWRlZDJcdWRlZDUtXHVkZWQ3XHVkZWViXHVkZWVjXHVkZWY0LVx1ZGVmY1x1ZGZlMC1cdWRmZWJdfFx1ZDgzZVtcdWRkMGRcdWRkMGVcdWRkMTAtXHVkZDE3XHVkZDFkXHVkZDIwLVx1ZGQyNVx1ZGQyNy1cdWRkMmZcdWRkM2FcdWRkM2NcdWRkM2YtXHVkZDQ1XHVkZDQ3LVx1ZGQ3Nlx1ZGQ3OFx1ZGQ3YS1cdWRkYjRcdWRkYjdcdWRkYmFcdWRkYmMtXHVkZGNiXHVkZGQwXHVkZGRlLVx1ZGRmZlx1ZGU3MC1cdWRlNzRcdWRlNzgtXHVkZTdhXHVkZTgwLVx1ZGU4Nlx1ZGU5MC1cdWRlYThcdWRlYjAtXHVkZWI2XHVkZWMwLVx1ZGVjMlx1ZGVkMC1cdWRlZDZdfFtcdTIzZTktXHUyM2VjXHUyM2YwXHUyM2YzXHUyNjdlXHUyNmNlXHUyNzA1XHUyNzI4XHUyNzRjXHUyNzRlXHUyNzUzLVx1Mjc1NVx1Mjc5NS1cdTI3OTdcdTI3YjBcdTI3YmZcdWU1MGFdKXxcdWZlMGYvZyx0PS9cdUZFMEYvZyxjPVN0cmluZy5mcm9tQ2hhckNvZGUoODIwNSksbj0vWyY8PiciXS9nLG89L14oPzppZnJhbWV8bm9mcmFtZXN8bm9zY3JpcHR8c2NyaXB0fHNlbGVjdHxzdHlsZXx0ZXh0YXJlYSkkLyxhPVN0cmluZy5mcm9tQ2hhckNvZGUKO3JldHVybiBlO2Z1bmN0aW9uIGwoZSxkKXtyZXR1cm4gZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoZD9lLnJlcGxhY2UodCwiIik6ZSl9ZnVuY3Rpb24gcihlLGQpe3JldHVybiIiLmNvbmNhdChkLmJhc2UsZC5zaXplLCIvIixlLGQuZXh0KX1mdW5jdGlvbiBpKGUsZCl7Zm9yKHZhciB1LHQsYz1lLmNoaWxkTm9kZXMsbj1jLmxlbmd0aDtuLS07KTM9PT0odD0odT1jW25dKS5ub2RlVHlwZSk/ZC5wdXNoKHUpOjEhPT10fHwib3duZXJTVkdFbGVtZW50ImluIHV8fG8udGVzdCh1Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkpfHxpKHUsZCk7cmV0dXJuIGR9ZnVuY3Rpb24gcyhlKXtyZXR1cm4gZyhlLmluZGV4T2YoYyk8MD9lLnJlcGxhY2UodCwiIik6ZSl9ZnVuY3Rpb24gZihlLGQpe2Zvcih2YXIgdCxjLG4sbyxhLHIsZixtLGgscCxiLGcsdixTPWkoZSxbXSkseT1TLmxlbmd0aDt5LS07KXtmb3Iobj0hMSxvPWRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKSxyPShhPVNbeV0pLm5vZGVWYWx1ZSxtPTA7Zj11LmV4ZWMocik7KXtpZigoaD1mLmluZGV4KSE9PW0mJm8uYXBwZW5kQ2hpbGQobChyLnNsaWNlKG0saCksITApKSxnPXMoYj1mWzBdKSxtPWgrYi5sZW5ndGgsdj1kLmNhbGxiYWNrKGcsZCksZyYmdil7Zm9yKGMgaW4ocD1uZXcgSW1hZ2UpLm9uZXJyb3I9ZC5vbmVycm9yLHAuc2V0QXR0cmlidXRlKCJkcmFnZ2FibGUiLCJmYWxzZSIpLHQ9ZC5hdHRyaWJ1dGVzKGIsZykpdC5oYXNPd25Qcm9wZXJ0eShjKSYmMCE9PWMuaW5kZXhPZigib24iKSYmIXAuaGFzQXR0cmlidXRlKGMpJiZwLnNldEF0dHJpYnV0ZShjLHRbY10pO3AuY2xhc3NOYW1lPWQuY2xhc3NOYW1lLHAuYWx0PWIscC5zcmM9dixuPSEwLG8uYXBwZW5kQ2hpbGQocCl9cHx8by5hcHBlbmRDaGlsZChsKGIsITEpKSxwPW51bGx9biYmKG08ci5sZW5ndGgmJm8uYXBwZW5kQ2hpbGQobChyLnNsaWNlKG0pLCEwKSksYS5wYXJlbnROb2RlLnJlcGxhY2VDaGlsZChvLGEpKX1yZXR1cm4gZX1mdW5jdGlvbiBtKGUsZCl7cmV0dXJuIGIoZSwoZnVuY3Rpb24oZSl7dmFyIHUsdCxjPWUsbz1zKGUpLGE9ZC5jYWxsYmFjayhvLGQpO2lmKG8mJmEpe2Zvcih0IGluIGM9IjxpbWcgIi5jb25jYXQoJ2NsYXNzPSInLGQuY2xhc3NOYW1lLCciICcsJ2RyYWdnYWJsZT0iZmFsc2UiICcsJ2FsdD0iJyxlLCciJywnIHNyYz0iJyxhLCciJyksdT1kLmF0dHJpYnV0ZXMoZSxvKSl1Lmhhc093blByb3BlcnR5KHQpJiYwIT09dC5pbmRleE9mKCJvbiIpJiYtMT09PWMuaW5kZXhPZigiICIrdCsiPSIpJiYoYz1jLmNvbmNhdCgiICIsdCwnPSInLHVbdF0ucmVwbGFjZShuLGgpLCciJykpO2M9Yy5jb25jYXQoIi8+Iil9cmV0dXJuIGN9KSl9ZnVuY3Rpb24gaChlKXtyZXR1cm4gZFtlXX1mdW5jdGlvbiBwKCl7cmV0dXJuIG51bGx9ZnVuY3Rpb24gYihlLGQpe3JldHVybiBTdHJpbmcoZSkucmVwbGFjZSh1LGQpfWZ1bmN0aW9uIGcoZSxkKXtmb3IodmFyIHU9W10sdD0wLGM9MCxuPTA7bjxlLmxlbmd0aDspdD1lLmNoYXJDb2RlQXQobisrKSxjPyh1LnB1c2goKDY1NTM2KyhjLTU1Mjk2PDwxMCkrKHQtNTYzMjApKS50b1N0cmluZygxNikpLGM9MCk6NTUyOTY8PXQmJnQ8PTU2MzE5P2M9dDp1LnB1c2godC50b1N0cmluZygxNikpO3JldHVybiB1LmpvaW4oZHx8Ii0iKX19KCl9fV0pOw=="}},"time_used":3,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":3,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/36521.8ea19d18c6f0b26ae250.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.841Z","timestamp":1785148034841,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/36521.8ea19d18c6f0b26ae250.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\ncontent-type: text/css; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding, Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\netag: W/\"69f98b75-1fb\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Tue, 05 May 2026 06:17:25 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.51\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 05/05/2026 10:18:38\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 4d54548fe482c3727c428254699ce381\r\ncdn-cache: HIT\r\ncontent-encoding: br\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":507,"size_decoded":1096,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with very long lines (507), with no line terminators","md5":"2d3b7e0374b1674985869f52f8020c64","sha1":"5c535a76e94938e27e4dd97a57e55be428ed5fb3","sha256":"653a6cf5c7c608d1fa8be295a13e8c38a149bb3cf677603014d23be2e4d492e4","sha512":"e68140937cd4a38fece720a561caa4eb74b506c106f02049166e52a3c11e731bd8e2b29d6be6e1e662f1f434abeb3d59a008c37896edc1b88d042a209942858c","ssdeep":"","tlshash":"d4f08b48b3a0e478b89a0caa7a29b5187548c875900381eaca932f5c50d22bb1359b18","first_seen":"2025-10-21T03:35:35.833075Z","last_seen":"2026-07-27T10:28:13.875532Z","times_seen":24,"resource_available":false,"data":"LmxhYmVsLW91MktrVnI1e2FsaWduLWl0ZW1zOmNlbnRlcjtjb2xvcjp2YXIoLS1jb2xvci1jb250ZW50LXByaW1hcnktZGFuZ2VyLXNlbWktYm9sZCk7ZGlzcGxheTppbmxpbmUtZmxleDt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9LnRleHQtb3UyS2tWcjV7Zm9udC1mYW1pbHk6LWFwcGxlLXN5c3RlbSxCbGlua01hY1N5c3RlbUZvbnQsVHJlYnVjaGV0IE1TLFJvYm90byxVYnVudHUsc2Fucy1zZXJpZjtmb250LWZlYXR1cmUtc2V0dGluZ3M6InRudW0iIG9uLCJsbnVtIiBvbjtmb250LXN0eWxlOm5vcm1hbDstLXVpLWxpYi10eXBvZ3JhcGh5LWZvbnQtc2l6ZToxM3B4O2ZvbnQtc2l6ZTp2YXIoLS11aS1saWItdHlwb2dyYXBoeS1mb250LXNpemUpO2ZvbnQtd2VpZ2h0OjQwMDstLXVpLWxpYi10eXBvZ3JhcGh5LWxpbmUtaGVpZ2h0OjE4cHg7bGluZS1oZWlnaHQ6dmFyKC0tdWktbGliLXR5cG9ncmFwaHktbGluZS1oZWlnaHQpfS5pY29uLW91MktrVnI1e2hlaWdodDoxOHB4O3dpZHRoOjE4cHh9"}},"time_used":3,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":3,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/90960.ec941accfaa3ed2cd6e2.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.062Z","timestamp":1785148034062,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/90960.ec941accfaa3ed2cd6e2.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\ncontent-type: text/css; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding, Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\netag: W/\"69f98b70-186\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Tue, 05 May 2026 06:17:20 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.51\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 05/05/2026 10:16:42\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 365ccee41d32bcc5df36bba67932afad\r\ncdn-cache: HIT\r\ncontent-encoding: br\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":390,"size_decoded":966,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with very long lines (390), with no line terminators","md5":"82a666c7923903c7a4ea82a3e676d054","sha1":"86c016b68d5ebe6c7ea2171a5c77c3977beae537","sha256":"0d86f8d898eadd5474e95eb88236cad4371819f433c109cb51775d8afe54db99","sha512":"f3e21eff0524a1d3b54afc7e6a639a4982798ecfff9b03e99280419d100ca7233723e5a8384c39e2f02bb6d17afa7bb1b083a3b5086fdf52f7b3ea52c9171867","ssdeep":"","tlshash":"26e09b8a5003791d3c3573145ddc9b09023c515261d71dfd8847a23bd2ca3e13e5b861","first_seen":"2024-12-10T03:17:08.854058Z","last_seen":"2026-07-27T12:48:39.751378Z","times_seen":1168,"resource_available":false,"data":"LmVtb2ppV3JhcC1SMkNUcG1IcnthbGlnbi1pdGVtczpjZW50ZXI7ZGlzcGxheTppbmxpbmUtZmxleDttaW4td2lkdGg6dmFyKC0tdHYtbGVhZGluZy1lbW9qaS1zaXplLDE4cHgpfS5lbW9qaS1SMkNUcG1IciwuZW1vamlXcmFwLVIyQ1RwbUhye3dpZHRoOnZhcigtLXR2LWxlYWRpbmctZW1vamktc2l6ZSwxOHB4KX0uZW1vamktUjJDVHBtSHJ7aGVpZ2h0OnZhcigtLXR2LWxlYWRpbmctZW1vamktc2l6ZSwxOHB4KTtwb3NpdGlvbjphYnNvbHV0ZX0udG9vbHRpcEVtb2ppLVIyQ1RwbUhye2Rpc3BsYXk6YmxvY2s7cG9zaXRpb246YWJzb2x1dGV9LnRvb2x0aXBFbW9qaVdyYXAtUjJDVHBtSHJ7YWxpZ24taXRlbXM6Y2VudGVyO2Rpc3BsYXk6aW5saW5lLWZsZXg7bWluLXdpZHRoOjEycHh9"}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/73960.334b13dac9f5529b2e45.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.832Z","timestamp":1785148034832,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/73960.334b13dac9f5529b2e45.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\ncontent-type: text/css; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a4f5c14-10f5\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Thu, 09 Jul 2026 08:30:12 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/09/2026 11:43:46\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: cca91a3785d61022619f37d3526c1322\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":4341,"size_decoded":1843,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with very long lines (4341), with no line terminators","md5":"5ed0faa1bef184121f56c29040f448e2","sha1":"f1b12347de016b42da8514cdfcd1f531c476c159","sha256":"682c2c6c05802ac64da5ae4a2c9879738aa061eeae71f1b5f1468d7e1f3a9e71","sha512":"b129df100ee89f43f6e4e92ca1a8ddecdeff91c98b194c21a3c9db277dfea3de230fa1c487e596e09b4b10d046d7633ccb72aca468129291de111d73abf9d9c4","ssdeep":"48:sO2K1FwKIv1DVCo5uk9IiawKqY7awKVMjlawKVMLWDawKVMEqwKZk9vZJ/5ozVIC:s81Ov1DozAbEW4UgPqaT2","tlshash":"f191ef88b3506274f9679c6f7656a03d2508dc7ae902c9fedb516a6ca9c27bb1308309","first_seen":"2026-07-10T15:18:12.122322Z","last_seen":"2026-07-27T10:28:13.72656Z","times_seen":11,"resource_available":false,"data":"W2RhdGEtdGhlbWU9ZGFya10sW2RhdGEtdGhlbWU9bGlnaHRdey0tXzAtclRkYzp2YXIoLS1jb2xvci1taW50eS1ncmVlbi00MDApOy0tXzEtclRkYzp2YXIoLS1jb2xvci1yaXBlLXJlZC01MDApfS5oaWdobGlnaHQtbWFKMlduekEuZ3Jvd2luZy1tYUoyV256QXtjb2xvcjp2YXIoLS1fMC1yVGRjKX0uaGlnaGxpZ2h0LW1hSjJXbnpBLmZhbGxpbmctbWFKMlduekF7Y29sb3I6dmFyKC0tXzEtclRkYyl9LmNoYW5nZS1TTnZQdmxKM3tmb250LWZhbWlseTotYXBwbGUtc3lzdGVtLEJsaW5rTWFjU3lzdGVtRm9udCxUcmVidWNoZXQgTVMsUm9ib3RvLFVidW50dSxzYW5zLXNlcmlmO2ZvbnQtZmVhdHVyZS1zZXR0aW5nczoidG51bSIgb24sImxudW0iIG9uO2ZvbnQtc3R5bGU6bm9ybWFsOy0tdWktbGliLXR5cG9ncmFwaHktZm9udC1zaXplOjE2cHg7Zm9udC1zaXplOnZhcigtLXVpLWxpYi10eXBvZ3JhcGh5LWZvbnQtc2l6ZSk7Zm9udC13ZWlnaHQ6NjAwOy0tdWktbGliLXR5cG9ncmFwaHktbGluZS1oZWlnaHQ6MjRweDtsaW5lLWhlaWdodDp2YXIoLS11aS1saWItdHlwb2dyYXBoeS1saW5lLWhlaWdodCk7dW5pY29kZS1iaWRpOmJpZGktb3ZlcnJpZGV9LmNoYW5nZS1TTnZQdmxKMysuY2hhbmdlLVNOdlB2bEoze21hcmdpbi1pbmxpbmUtc3RhcnQ6OHB4fS5jaGFuZ2UtU052UHZsSjMrLmNoYW5nZS1TTnZQdmxKMzpkaXIocnRsKXttYXJnaW4tbGVmdDo4cHg7bWFyZ2luLXJpZ2h0OjB9LndyYXAtU052UHZsSjN7ZGlyZWN0aW9uOmx0cjtkaXNwbGF5OmlubGluZS1mbGV4fS5jb250YWluZXItcVdjTzRicDl7YWxpZ24taXRlbXM6YmFzZWxpbmU7ZGlzcGxheTpmbGV4O2ZsZXgtd3JhcDp3cmFwfS5wcmljZS1xV2NPNGJwOXtjb2xvcjp2YXIoLS1jb2xvci1jb250ZW50LXByaW1hcnktbmV1dHJhbC1ib2xkKX0ucHJpY2UtcVdjTzRicDksW2RhdGEtcXVlcnktdHlwZT1jb250YWluZXJdIC5wcmljZS1xV2NPNGJwOXtmb250LWZhbWlseTotYXBwbGUtc3lzdGVtLEJsaW5rTWFjU3lzdGVtRm9udCxUcmVidWNoZXQgTVMsUm9ib3RvLFVidW50dSxzYW5zLXNlcmlmO2ZvbnQtZmVhdHVyZS1zZXR0aW5nczoidG51bSIgb24sImxudW0iIG9uOy0tdWktbGliLXR5cG9ncmFwaHktbGluZS1oZWlnaHQ6MzJweDtsaW5lLWhlaWdodDp2YXIoLS11aS1saWItdHlwb2dyYXBoeS1saW5lLWhlaWdodCk7LS11aS1saWItdHlwb2dyYXBoeS1mb250LXNpemU6MjRweDtmb250LXNpemU6dmFyKC0tdWktbGliLXR5cG9ncmFwaHktZm9udC1zaXplKTtmb250LXN0eWxlOm5vcm1hbDtmb250LXdlaWdodDo2MDB9QG1lZGlhIChtaW4td2lkdGg6NzY4cHgpey5wcmljZS1xV2NPNGJwOXtmb250LWZhbWlseTotYXBwbGUtc3lzdGVtLEJsaW5rTWFjU3lzdGVtRm9udCxUcmVidWNoZXQgTVMsUm9ib3RvLFVidW50dSxzYW5zLXNlcmlmO2ZvbnQtZmVhdHVyZS1zZXR0aW5nczoidG51bSIgb24sImxudW0iIG9uOy0tdWktbGliLXR5cG9ncmFwaHktbGluZS1oZWlnaHQ6MzZweDtsaW5lLWhlaWdodDp2YXIoLS11aS1saWItdHlwb2dyYXBoeS1saW5lLWhlaWdodCk7LS11aS1saWItdHlwb2dyYXBoeS1mb250LXNpemU6MjhweDtmb250LXNpemU6dmFyKC0tdWktbGliLXR5cG9ncmFwaHktZm9udC1zaXplKTtmb250LXN0eWxlOm5vcm1hbDtmb250LXdlaWdodDo2MDB9fUBzdXBwb3J0cyBub3QgKGNvbnRhaW5lci10eXBlOmlubGluZS1zaXplKXtAbWVkaWEgKG1pbi13aWR0aDo3MDJweCl7W2RhdGEtcXVlcnktdHlwZT1jb250YWluZXJdIC5wcmljZS1xV2NPNGJwOXtmb250LWZhbWlseTotYXBwbGUtc3lzdGVtLEJsaW5rTWFjU3lzdGVtRm9udCxUcmVidWNoZXQgTVMsUm9ib3RvLFVidW50dSxzYW5zLXNlcmlmO2ZvbnQtZmVhdHVyZS1zZXR0aW5nczoidG51bSIgb24sImxudW0iIG9uOy0tdWktbGliLXR5cG9ncmFwaHktbGluZS1oZWlnaHQ6MzZweDtsaW5lLWhlaWdodDp2YXIoLS11aS1saWItdHlwb2dyYXBoeS1saW5lLWhlaWdodCk7LS11aS1saWItdHlwb2dyYXBoeS1mb250LXNpemU6MjhweDtmb250LXNpemU6dmFyKC0tdWktbGliLXR5cG9ncmFwaHktZm9udC1zaXplKTtmb250LXN0eWxlOm5vcm1hbDtmb250LXdlaWdodDo2MDB9fX1AY29udGFpbmVyIGNvbnRlbnQtY29udGFpbmVyIChtaW4td2lkdGg6IDcwMnB4KXtbZGF0YS1xdWVyeS10eXBlPWNvbnRhaW5lcl0gLnByaWNlLXFXY080YnA5e2ZvbnQtZmFtaWx5Oi1hcHBsZS1zeXN0ZW0sQmxpbmtNYWNTeXN0ZW1Gb250LFRyZWJ1Y2hldCBNUyxSb2JvdG8sVWJ1bnR1LHNhbnMtc2VyaWY7Zm9udC1mZWF0dXJlLXNldHRpbmdzOiJ0bnVtIiBvbiwibG51bSIgb247LS11aS1saWItdHlwb2dyYXBoeS1saW5lLWhlaWdodDozNnB4O2xpbmUtaGVpZ2h0OnZhcigtLXVpLWxpYi10eXBvZ3JhcGh5LWxpbmUtaGVpZ2h0KTstLXVpLWxpYi10eXBvZ3JhcGh5LWZvbnQtc2l6ZToyOHB4O2ZvbnQtc2l6ZTp2YXIoLS11aS1saWItdHlwb2dyYXBoeS1mb250LXNpemUpO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtd2VpZ2h0OjYwMH19LmluZm8tcVdjTzRicDl7YWxpZ24tc2VsZjpmbGV4LWVuZDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2ZvbnQtZmFtaWx5Oi1hcHBsZS1zeXN0ZW0sQmxpbmtNYWNTeXN0ZW1Gb250LFRyZWJ1Y2hldCBNUyxSb2JvdG8sVWJ1bnR1LHNhbnMtc2VyaWY7Zm9udC1mZWF0dXJlLXNldHRpbmdzOiJ0bnVtIiBvbiwibG51bSIgb247Zm9udC1zdHlsZTpub3JtYWw7anVzdGlmeS1jb250ZW50OmZsZXgtZW5kO21hcmdpbi1pbmxpbmUtc3RhcnQ6NHB4O21hcmdpbi1ib3R0b206NHB4Oy0tdWktbGliLXR5cG9ncmFwaHktZm9udC1zaXplOjEycHg7Zm9udC1zaXplOnZhcigtLXVpLWxpYi10eXBvZ3JhcGh5LWZvbnQtc2l6ZSk7Zm9udC13ZWlnaHQ6NDAwOy0tdWktbGliLXR5cG9ncmFwaHktbGluZS1oZWlnaHQ6MTZweDtjb2xvcjp2YXIoLS1jb2xvci1jb250ZW50LXByaW1hcnktbmV1dHJhbC1ib2xkKTtsaW5lLWhlaWdodDp2YXIoLS11aS1saWItdHlwb2dyYXBoeS1saW5lLWhlaWdodCl9LmluZm8tcVdjTzRicDk6ZGlyKHJ0bCl7bWFyZ2luLWxlZnQ6NHB4O21hcmdpbi1yaWdodDowO3RleHQtYWxpZ246bGVmdH0uY3VycmVuY3ktcVdjTzRicDl7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7d2hpdGUtc3BhY2U6bm93cmFwfS5wcmljZVdyYXBwZXItcVdjTzRicDl7YWxpZ24taXRlbXM6Y2VudGVyO2Rpc3BsYXk6ZmxleDttYXJnaW4taW5saW5lLWVuZDo4cHg7bWF4LXdpZHRoOjEwMCU7b3ZlcmZsb3c6aGlkZGVufS5wcmljZVdyYXBwZXItcVdjTzRicDk6ZGlyKHJ0bCl7ZmxleC1kaXJlY3Rpb246cm93LXJldmVyc2V9W2RhdGEtdGhlbWU9ZGFya10sW2RhdGEtdGhlbWU9bGlnaHRdey0tXzAtT2cyMjp2YXIoLS1jb2xvci10YW4tb3JhbmdlLTUwMCk7LS1fMS1PZzIyOnZhcigtLWNvbG9yLXRhbi1vcmFuZ2UtMzAwKTstLV8yLU9nMjI6dmFyKC0tY29sb3ItbWludHktZ3JlZW4tMzAwKTstLV8zLU9nMjI6dmFyKC0tY29sb3ItbWludHktZ3JlZW4tNTAwKX0uY29udGFpbmVyLXN0cm9uZy1zZWxsLWU3VXRFanZWIC5zcGVlZG9tZXRlclRleHQtZTdVdEVqdlYsLmNvbnRhaW5lci1zdHJvbmctc2VsbC1lN1V0RWp2ViAuc3Ryb25nLXNlbGwtZTdVdEVqdlZ7Y29sb3I6dmFyKC0tXzAtT2cyMil9LmNvbnRhaW5lci1zZWxsLWU3VXRFanZWIC5zZWxsLWU3VXRFanZWLC5jb250YWluZXItc2VsbC1lN1V0RWp2ViAuc3BlZWRvbWV0ZXJUZXh0LWU3VXRFanZWe2NvbG9yOnZhcigtLV8xLU9nMjIpfS5jb250YWluZXItbmV1dHJhbC1lN1V0RWp2ViAubmV1dHJhbC1lN1V0RWp2ViwuY29udGFpbmVyLW5ldXRyYWwtZTdVdEVqdlYgLnNwZWVkb21ldGVyVGV4dC1lN1V0RWp2Vntjb2xvcjp2YXIoLS1jb2xvci10ZXh0LXByaW1hcnkpfS5jb250YWluZXItYnV5LWU3VXRFanZWIC5idXktZTdVdEVqdlYsLmNvbnRhaW5lci1idXktZTdVdEVqdlYgLnNwZWVkb21ldGVyVGV4dC1lN1V0RWp2Vntjb2xvcjp2YXIoLS1fMi1PZzIyKX0uY29udGFpbmVyLXN0cm9uZy1idXktZTdVdEVqdlYgLnNwZWVkb21ldGVyVGV4dC1lN1V0RWp2ViwuY29udGFpbmVyLXN0cm9uZy1idXktZTdVdEVqdlYgLnN0cm9uZy1idXktZTdVdEVqdlZ7Y29sb3I6dmFyKC0tXzMtT2cyMil9LnNwZWVkb21ldGVyVGV4dERlZmF1bHQtZTdVdEVqdlZ7Y29sb3I6dmFyKC0tY29sb3ItdGV4dC1wcmltYXJ5KX0uc2NhbGUtZTdVdEVqdlZ7YmFja2dyb3VuZDpjb25pYy1ncmFkaWVudChmcm9tIC05MGRlZyBhdCA1MCUgNTAlLCMyNGIyOWIgLTE4MGRlZywjZmY5ODAwIDBkZWcsIzI0YjI5YiAxODBkZWcsI2ZmOTgwMCAxdHVybil9"}},"time_used":3,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":3,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/48854.b073f4f59ce9ddc09df4.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.856Z","timestamp":1785148034856,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/48854.b073f4f59ce9ddc09df4.js HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a61b1a8-19e33\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Thu, 23 Jul 2026 06:16:08 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/23/2026 10:21:28\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 959745c232be192fe80a214b29c1d3dd\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":106035,"size_decoded":36761,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, Unicode text, UTF-8 text, with very long lines (4300)","md5":"b38c80e3104987e372bb13f9591e1f2e","sha1":"df5e28eac8e55d9c813a9e837bc75956fa0428a4","sha256":"d4082ec6bd550c0de95c330de24298f9f94e5105d1d676573dcf41cab3e90390","sha512":"cffe021e65e5b2185532f89a567bdbe3ac288c794b5f6c4ce14da7939902f6fa6be4ddecbe480ce4b57452ecb66aec9844c29b862b76670a4c7db8a7e61e6562","ssdeep":"1536:vwadSJcTiYHbSU6bHHgcwfO4EqeLlwinfz582vpT6EWS:vwGGY0xnfz582vLf","tlshash":"96a3c8e6572c828c6587db58dfaba891670fb0f8b16981d4b96ec77061477eef807c00","first_seen":"2026-07-27T03:26:08.958081Z","last_seen":"2026-07-27T10:28:13.975112Z","times_seen":7,"resource_available":true,"data":"KHNlbGYud2VicGFja0NodW5rdHJhZGluZ3ZpZXc9c2VsZi53ZWJwYWNrQ2h1bmt0cmFkaW5ndmlld3x8W10pLnB1c2goW1s0ODg1NF0sezgxODczMChhKXthLmV4cG9ydHM9e319LDQ5MjY3NyhhLHQsYyl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGUoYSl7cmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudChhLnJlcGxhY2UoL1wrL2csIiAiKSkucmVwbGFjZSgvPFwvP1tePl0rKD58JCkvZywiIil9ZnVuY3Rpb24gbChhKXtjb25zdCB0PS8oW14mPV0rKT0/KFteJl0qKS9nLGM9e307aWYoIWEpcmV0dXJuIGM7bGV0IGw9dC5leGVjKGEpO2Zvcig7bDspY1tlKGxbMV0pXT1lKGxbMl0pLGw9dC5leGVjKGEpO3JldHVybiBjfWZ1bmN0aW9uIHIoKXtyZXR1cm4gbCh3aW5kb3cubG9jYXRpb24uc2VhcmNoLnN1YnN0cmluZygxKSl9ZnVuY3Rpb24gcygpe2NvbnN0IGE9d2luZG93LmxvY2F0aW9uLmhyZWYuc3BsaXQoIiMiKVswXTt3aW5kb3cuaGlzdG9yeS5yZXBsYWNlU3RhdGUoIiIsZG9jdW1lbnQudGl0bGUsYSl9ZnVuY3Rpb24gaChhKXtjb25zdCB0PVtdO2Zvcihjb25zdCBjIGluIGEpaWYoYS5oYXNPd25Qcm9wZXJ0eShjKSYmbnVsbCE9YVtjXSl7Y29uc3QgZT1hW2NdLGw9Im9iamVjdCI9PXR5cGVvZiBlP0pTT04uc3RyaW5naWZ5KGUpOlN0cmluZyhlKTt0LnB1c2goe2tleTpjLHBhaXI6ZW5jb2RlVVJJQ29tcG9uZW50KGMpKyI9IitlbmNvZGVVUklDb21wb25lbnQobCl9KX1yZXR1cm4gdC5zb3J0KCgoYSx0KT0+YS5rZXk+dC5rZXk/MTphLmtleTx0LmtleT8tMTowKSkubWFwKChhPT5hLnBhaXIpKS5qb2luKCImIil9Yy5kKHQse2NyZWF0ZVVybFBhcmFtczooKT0+aCxnZXRVcmxQYXJhbXM6KCk9PnIscmVtb3ZlSGFzaEZyb21Vcmw6KCk9PnN9KX0sOTg3Nzk4KGEsdCxjKXsidXNlIHN0cmljdCI7Yy5yKHQpLGMuZCh0LHtjcmVhdGVQdWJsaXNoZWRDaGFydEltYWdlVXJsOigpPT5vLGNyZWF0ZVB1Ymxpc2hlZENoYXJ0VXJsOigpPT5nLGNyZWF0ZVNuYXBzaG90SW1hZ2VVcmxzOigpPT5mLGlzU25hcHNob3RVcmw6KCk9PnYscGFyc2VQdWJsaXNoZWRDaGFydFVybDooKT0+bn0pO3ZhciBlPWMoNDkyMTg2KSxsPWMoMTYwMjk2KTtjb25zdCByPW5ldyBSZWdFeHAoZS51cmxzUmVnRXhwLnB1Ymxpc2hlZENoYXJ0T2xkKSxzPW5ldyBSZWdFeHAoZS51cmxzUmVnRXhwLnB1Ymxpc2hlZENoYXJ0KSxoPW5ldyBSZWdFeHAoZS51cmxzUmVnRXhwLnB1Ymxpc2hlZFNjcmlwdCksaT1uZXcgUmVnRXhwKGUudXJsc1JlZ0V4cC5pbWFnZVVybCk7ZnVuY3Rpb24gZyhhLHQsYyl7aWYoIWF8fCEvWzAtOWEtekEtWl17OH0vLnRlc3QoYSkpcmV0dXJuIiI7aWYoYSYmdCl7cmV0dXJuYC9jaGFydC8ke3R9LyR7YX0ke2M/YC0ke2N9YDoiIn0vYH1yZXR1cm5gL3YvJHthfS9gfWZ1bmN0aW9uIG4oYSl7aWYoci50ZXN0KGEpKXtyZXR1cm57aW1hZ2VfdXJsOihhLm1hdGNoKHIpfHxbXSlbMV19fWlmKHMudGVzdChhKSl7Y29uc3QgdD1hLm1hdGNoKHMpfHxbXTtyZXR1cm57aW1hZ2VfdXJsOnRbMl0sc3ltYm9sOnRbMV0sdGl0bGU6dFszXX19aWYoaC50ZXN0KGEpKXtjb25zdCB0PWEubWF0Y2goaCl8fFtdO3JldHVybntpbWFnZV91cmw6dFsxXSx0aXRsZTp0WzJdfX1yZXR1cm4gaS50ZXN0KGEpP3tpbWFnZV91cmw6YX06e319ZnVuY3Rpb24gbyhhKXtpZighYXx8IS9bMC05YS16QS1aXXs4fS8udGVzdChhKSlyZXR1cm4iIjtjb25zdCB0PSgwLGwuZW52aXJvbm1lbnQpKCk7aWYoImJhdHRsZSI9PT10fHwic3RhZ2luZyI9PT10KXtjb25zdCB0PWEuY2hhckF0KDApLnRvTG93ZXJDYXNlKCk7cmV0dXJuYCR7d2luZG93LkFXU19TM19DRE59LyR7dH0vJHthfS5wbmdgfXJldHVybmAvaS8ke2F9L2B9ZnVuY3Rpb24gZihhKXtpZighYXx8IS9bMC05YS16QS1aXXs4fS8udGVzdChhKSlyZXR1cm4gbnVsbDtjb25zdCB0PSgwLGwuZW52aXJvbm1lbnQpKCk7aWYoImJhdHRsZSI9PT10fHwic3RhZ2luZyI9PT10KXtjb25zdCB0PWEuY2hhckF0KDApLnRvTG93ZXJDYXNlKCksYz1gJHt3aW5kb3cuQVdTX1MzX0NETn0vc25hcHNob3RzLyR7dH1gO3JldHVybntwcmV2aWV3OmAke2N9LyR7YX1fdGh1bWIucG5nYCx1cmw6YCR7Y30vJHthfS5wbmdgfX17Y29uc3QgdD1gJHt3aW5kb3cubG9jYXRpb24ucHJvdG9jb2x9Ly8ke3dpbmRvdy5sb2NhdGlvbi5ob3N0fWA7cmV0dXJue3ByZXZpZXc6YCR7dH0veC8ke2F9L3MvYCx1cmw6YCR7dH0veC8ke2F9L2B9fX1mdW5jdGlvbiB2KGEpe3RyeXtjb25zdCB0PW5ldyBVUkwoYSk7cmV0dXJuL15cL3hcLyhbMC05YS16QS1aXXs4fSlcLz8oPzokfCg/PVtcczssLl0pKVwvPyQvLnRlc3QodC5wYXRobmFtZSl9Y2F0Y2goYSl7cmV0dXJuITF9fX0sNjA5MjE2KGEsdCxjKXsidXNlIHN0cmljdCI7Yy5kKHQse3BhcnNlUGluZVRhZ3M6KCk9PnN9KTtjb25zdCBlPS9cW3BpbmVcXShbXl0rPylcW1wvcGluZVxdL2dpbSxsPS8oXFtwaW5lXF1bXl0rP1xbXC9waW5lXF0pL2dpbSxyPS9eKDc5Nzk1fDk0Mzg5KSQvLnRlc3QoYy5qKT8nPGRpdiBjbGFzcz0ianMtcGluZS1jb2RlLXNuaXBwZXQiPlxuXHQ8ZGl2IGNsYXNzPSJ0di1waW5lLWNvZGUtdGFnLWNvbnRhaW5lciBpZ25vcmUtaG9yaXpvbnRhbC1zY3JvbGwiPiQxPC9kaXY+XG48L2Rpdj4nOm51bGw7ZnVuY3Rpb24gcyhhKXtjb25zdCB0PWEudGV4dC5zcGxpdChsKTtyZXR1cm4gYS50ZXh0PSIiLHQuZm9yRWFjaCgodD0+e2lmKCIiPT09dClyZXR1cm47Y29uc3QgYz1mdW5jdGlvbihhKXtyZXR1cm4gYS5yZXBsYWNlKGUscil9KHQpO2MhPT10PyhhLnRleHQrPSI8IithLmNvdW50KysrIj4iLGEudmFsdWVzLnB1c2goYykpOmEudGV4dCs9dH0pKSxhfX0sOTQwNTAxKGEsdCxjKXsidXNlIHN0cmljdCI7Yy5yKHQpLGMuZCh0LHtwYXJzZVF1b3RlczooKT0+ZyxyZW1vdmVCQkNvZGVzOigpPT5oLHJlbW92ZVF1b3RlczooKT0+aX0pO3ZhciBlPWMoMTg1MjcxKQo7Y29uc3QgbD0iXFxbXFwvcXVvdGVcXF0iLHI9J1xcW3F1b3RlPSg/OiJ8JnF1b3Q7fCYjMzQ7KShbYS16MC05XFwuX1xcLVxcdTAwQTBdKykoPzoifCZxdW90O3wmIzM0OylcXF0nLHM9L14oNzk3OTV8OTQzODkpJC8udGVzdChjLmopP2Ake3J9KFteXSopJHtsfWA6bnVsbDtmdW5jdGlvbiBoKGEpe3JldHVybiBhLnJlcGxhY2UobmV3IFJlZ0V4cChyLCJnaSIpLGUudChudWxsLHtyZXBsYWNlOnt1c2VybmFtZToiJDEifX0sYyg5OTU4MzYpKSsiOlxuIikucmVwbGFjZShuZXcgUmVnRXhwKGwsImdpIiksIiIpfWZ1bmN0aW9uIGkoYSl7cmV0dXJuIGEucmVwbGFjZShuZXcgUmVnRXhwKHMsImlnIiksIiIpLnRyaW0oKX1mdW5jdGlvbiBnKGEpe2NvbnN0IHQ9ZnVuY3Rpb24oYSl7Y29uc3QgdD1uZXcgUmVnRXhwKHIsImlnIikscz1uZXcgUmVnRXhwKGwsImlnIiksaD10LmV4ZWMoYSksZz1zLmV4ZWMoYSk7cmV0dXJuIWh8fCFnfHxnLmluZGV4PGguaW5kZXg/bnVsbDp7Y29udmVydGVkOic8ZGl2IGNsYXNzPSJjaC1pdGVtLXF1b3RlIj4nK2UudChudWxsLHtyZXBsYWNlOnt1c2VybmFtZTpoWzFdfX0sYyg5OTU4MzYpKSsiOjxici8+IitpKGEuc3Vic3RyaW5nKHQubGFzdEluZGV4LGcuaW5kZXgpKSsiPC9kaXY+IixlbmQ6cy5sYXN0SW5kZXgsc3RhcnQ6aC5pbmRleH19KGEpO3JldHVybiB0P2Euc3Vic3RyaW5nKDAsdC5zdGFydCkrdC5jb252ZXJ0ZWQrZyhhLnN1YnN0cmluZyh0LmVuZCkudHJpbSgpKTphfX0sNDkyMTg2KGEsdCxjKXsidXNlIHN0cmljdCI7Yy5kKHQse3VybHNSZWdFeHA6KCk9PmV9KTtjb25zdCBlPXthbWF6b25hd3NMaW5rczoiKD86aHR0cHM6Ly98aHR0cDovLykoczNcXC4oYW1hem9uYXdzfHRyYWRpbmd2aWV3KVxcLmNvbShcXC90cmFkaW5ndmlldyhfc3RhZ2luZyk/KT9cXC9zbmFwc2hvdHMpXFwvKD86XFxTKj8pXFwuKHBuZ3xibXB8anBnfGpwZWcpIixpbWFnZVVybDoiXlswLTlhLXpBLVpdezh9JCIscHVibGlzaGVkQ2hhcnQ6Ii9jaGFydC8oLis/KS8oWzAtOWEtekEtWl17OH0pKD86LShbXi9dKykpPy8/IixwdWJsaXNoZWRDaGFydE9sZDoiL3YvKFswLTlhLXpBLVpdezh9KS8/IixwdWJsaXNoZWRJbWFnZToiLyg/Oml8eCkvKFswLTlhLXpBLVpdezh9KS8/IixwdWJsaXNoZWRTY3JpcHQ6Ii9zY3JpcHQvKFswLTlhLXpBLVpdezh9KSg/Oi0oW14vXSspKT8vPyIsZXh0ZXJuYWxMaW5rczoiKChodHRwOi8vfGh0dHBzOi8vKXwod3d3XFwuKSlbXFx3LlxcLV0rIn19LDI0MTkzNyhhLHQsYyl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGUoYSx0KXtjb25zdCBjPXR8fHdpbmRvdy5sb2NhbGV8fCJlbiI7bGV0IGU9YVtjXT9hW2NdOmEuZW47cmV0dXJuIGU9InRyYWRpbmd2aWV3LmNvbSI9PT1lPyJ3d3cudHJhZGluZ3ZpZXcuY29tIjplLGU/ZG9jdW1lbnQubG9jYXRpb24ucHJvdG9jb2wrIi8vIitlOiIifWMuZCh0LHtkZXRlcm1pbmVCYXNlVXJsOigpPT5lfSl9LDkwMzQyOChhLHQsYyl7InVzZSBzdHJpY3QiO2MuZCh0LHtlbW9qaTooKT0+aX0pO3ZhciBlPWMoNDgyNTA0KTtjb25zdCBsPXsiOmFncmVlOiI6Yyg5MTQzOTMpLCI6ZGlzYWdyZWU6IjpjKDU4ODM2MyksIjpva2F5OiI6Yyg1MjQ5MDcpLCI6cGVhY2U6IjpjKDkxNTEwMyksIjp3YWl0OiI6Yyg3Nzg5MzQpLCI6d2F2ZToiOmMoMjA1ODUwKSwiOnJhaXNlZF9oYW5kczoiOmMoNDk4NTYxKSwiOnByYXk6IjpjKDc0OTg4NCksIjpcXCkiOmMoMTQ5MDIxKSwiOkQiOmMoMjE1MDkwKSwiOmpveToiOmMoNTU5NTQ4KSwiO1xcKSI6YygzNjExNTkpLCI6bG92ZToiOmMoMjYxMTQpLCI6UCI6Yyg3MzY3NzgpLCI6Zmx1c2hlZDoiOmMoNzY4MTkyKSwiOlxcfCI6YygyOTEyOSksIjp0aGlua2luZ19mYWNlOiI6Yyg3MTAxOTkpLCI6XFwoIjpjKDE3OTA5MSksIjp3ZWFyeToiOmMoNDM0OTA1KSwiOidcXCgiOmMoMTMwNDUwKSwiOmNyeToiOmMoNTUyNzYpLCI6cGFuaWM6IjpjKDkyNTQ3NCksIjpyYWdlOiI6Yyg0MzU0ODkpLCI6dHJpdW1waDoiOmMoOTM1ODM2KSwiOm1hc2s6IjpjKDIwNjYzNiksIjpzaGFkZXM6IjpjKDk4ODc1NSksIjpzbGVlcHk6IjpjKDM4NTY2Myksb19POmMoNTA3MDg1KSwiOmhhbG86IjpjKDMwODIyNSksIjpzYXJjYXNtOiI6Yyg2MzQyMDgpLCJcXF06LVxcKSI6Yyg1OTczMzQpLCI6bW9uZXlfbW91dGg6IjpjKDE4OTc2NyksIjp6eno6IjpjKDI1MjkxNSksIjpidXk6IjpjKDM5NTkyMSksIjpzZWxsOiI6Yyg2NjA3NDMpLCI6cHJvZml0OiI6Yyg1MDY2ODUpLCI6bG9zczoiOmMoNzc1MDcwKSwiOnVwdHJlbmQ6IjpjKDM4Nzc1NyksIjpkb3dudHJlbmQ6IjpjKDE4ODgxMiksIjpiZWFyOiI6Yyg2NzM0NTEpLCI6YnVsbDoiOmMoMzIyNzUwKSwiOmRvbGxhcjoiOmMoNDk4OTQ5KSwiOmV1cm86IjpjKDkzMzM5MiksIjpwb3VuZDoiOmMoNzk5NTU5KSwiOnllbjoiOmMoNzQwNjY5KSwiOmJpdGNvaW46IjpjKDI1MDEzMyksIjpldGhlcmV1bToiOmMoNTg2NTE4KSwiOm1vbmV5YmFnOiI6YygzODYwNTgpLCI6Y29va2llOiI6YygxNzM3ODApLCI6Y29mZmVlOiI6Yyg3NzAxMDMpLCI6cG9wY29ybjoiOmMoNzg0MTY0KSwiOmNvY2t0YWlsOiI6Yyg2MjMxMjIpLCI6aG90OiI6Yyg2NjU5OCksIjpwb29wOiI6Yyg2NTUxMTApLCI6aGVhcnQ6IjpjKDk5NTkzMCksIjpoZWFydGJyb2tlbjoiOmMoNDAzMjI3KSwiOnN1bjoiOmMoODIxNDI5KSwiOm1vb246IjpjKDI0MTYyNSksIjpzdW5mbG93ZXI6IjpjKDMxOTY2OCksIjpzdGFyOiI6Yyg4NDc5MCksIjpzdW5ueToiOmMoMzUyODUpLCI6cGFydGx5X3N1bm55OiI6Yyg0Mzg3NTMpLCI6Y2xvdWQ6IjpjKDE2MjY3NiksIjp6YXA6IjpjKDkyNTk3OSksIjpoYW1tZXI6IjpjKDUwNjc4NyksIjppZGVhOiI6YygxOTQ3MzQpLCI6c2xvdF9tYWNoaW5lOiI6YygxNzM3OTMpLCI6YnVsbHNleWU6IjpjKDYwNTc2NiksIjpyb2NrZXQ6IjpjKDI5MDAyMiksIjppbnZlcnRlZF9yb2NrZXQ6IjpjKDc5NjM0MSksIjpjaGVja2VyZWRfZmxhZzoiOmMoNzA2MTY0KSwiOmFsYXJtX2Nsb2NrOiI6Yyg4MDE1ODYpLCI6cmlwOiI6YygzODg1OTYpLCI6Z2hvc3Q6IjpjKDg3NDAwMyksCiI6dXA6IjpjKDIzMDE0MyksIjpjb29sOiI6YygzMTc3MzIpLCI6ZnJlZToiOmMoNjk1NzQ5KSwiOnNvczoiOmMoNjkyMjA2KSwiOjEwMDoiOmMoNDMyNzE4KSwiOnN0b3A6IjpjKDc4NzY5MyksIjpjcmVkaXRfY2FyZDoiOmMoNDc3NDMzKSwiOm5ldzoiOmMoMzY2MDkxKSwiOm9rOiI6Yyg1MDI3NjEpLCI6dGlwOiI6Yyg2NzgxNTgpfSxyPVsiOmNyZWRpdF9jYXJkOiIsIjpuZXc6IiwiOm9rOiIsIjp0aXA6Il0scz0vXFwvZzshZnVuY3Rpb24oKXtmb3IoY29uc3QgYSBpbiBsKXtjb25zdCB0PSF+ci5pbmRleE9mKGEpO2xbYV09e3JlOm5ldyBSZWdFeHAoYSwiZyIpLHN2Z0NvZGU6bFthXSxjb2RlOmEucmVwbGFjZShzLCIiKSxzaG93SW5Qb3BVcDp0fX1sWyI6J1xcKCJdLnJlPW5ldyBSZWdFeHAoIjooPzonfCYjMDM5OylcXCgiLCJnIil9KCk7bGV0IGg9bnVsbDtjb25zdCBpPW5ldyBjbGFzc3tjb25zdHJ1Y3Rvcigpe2lmKG51bGwhPT1oKXJldHVybiBoO2g9dGhpc31lYWNoKGEpe2Zvcihjb25zdCB0IGluIGwpYShsW3RdKX1nZXQoYSl7cmV0dXJuIGxbYV19aGVhcnQoKXtyZXR1cm4gbFsiOmhlYXJ0OiJdfWdldEVsZW1lbnQoYSl7cmV0dXJuIGUoYS5zdmdDb2RlKX1nZXRFbGVtZW50SFRNTChhKXtyZXR1cm5gPGRpdiBjbGFzcz0idHYtZW1vamktd3JhcHBlciIgdGl0bGU9IiR7YS5jb2RlfSI+JHthLnN2Z0NvZGV9PC9kaXY+YH19fSw5NjM5MDAoYSx0LGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgZTshZnVuY3Rpb24oYSl7YS5FbXB0eT0iIixhLlRlY2huaWNhbHNQYXRoPSJ0ZWNobmljYWxzLyIsYS5GaW5hbmNpYWxzT3ZlcnZpZXdQYXRoPSJmaW5hbmNpYWxzLW92ZXJ2aWV3LyIsYS5UaW1lbGluZVBhdGg9Imhpc3RvcnktdGltZWxpbmUvIixhLk5ld3NQYXRoPSJuZXdzLyIsYS5PcHRpb25zUGF0aD0ib3B0aW9ucy8iLGEuUHJvZmlsZVBhdGg9InByb2ZpbGUvIixhLkhvbGRpbmdzUGF0aD0iaG9sZGluZ3MvIn0oZXx8KGU9e30pKX0sMzM5MjYwKGEsdCxjKXsidXNlIHN0cmljdCI7Yy5yKHQpLGMuZCh0LHtVcmxpemVCdWZmZXI6KCk9PlYsY2hhaW5lZFVybGl6ZTooKT0+Uyxjb21tb25GdW5jdG9yczooKT0+SCxkZXByZWNhdGVkVXJsaXplRnVuY3RvcnM6KCk9PkIsbGlua3M6KCk9Pngsb2JzY2VuZVdvcmRzOigpPT55LHVybGl6ZUFuZFBhcnNlUXVvdGVzQW5kQ2xlYW46KCk9Pkx9KTt2YXIgZT1jKDE4NTI3MSksbD1jKDY0MTU5Mykscj1jKDkwMzQyOCkscz1jKDQ5MjE4NiksaD1jKDk4Nzc5OCksaT1jKDk0MDUwMSk7aWYoL14oNzk3OTV8OTQzODkpJC8udGVzdChjLmopKXZhciBnPWMoNjA5MjE2KTt2YXIgbj1jKDM2OTM4NCk7Y29uc3Qgbz1jKDY0MDU4Mik7ZnVuY3Rpb24gZihhKXtmb3IobGV0IHQ9MDt0PG8ubGVuZ3RoO3QrKylpZihhPj1vW3RdLnJhbmdlWzBdJiZhPD1vW3RdLnJhbmdlWzFdKXJldHVybiBvW3RdLmNhdGVnb3J5O3JldHVybiJTdXBwbGVtZW50YXJ5In12YXIgdj1jKDkxMTMyNyk7Yyg4MTg3MzApO2Z1bmN0aW9uIHAoYSl7dmFyIHQ9YS5tYXRjaCgvXig/Omh0dHBzPzpcL1wvKT8oPzpbXkAvXG5dK0ApPygoPzp3d3dcLik/KD86W146L1xuXSspKS8pO3JldHVybiB0P3RbMV06IiJ9ZnVuY3Rpb24gZChhKXt2YXIgdD1wKGEpLGM9dC5zcGxpdCgiLiIpO2Z1bmN0aW9uIGUoYSl7cmV0dXJuIGZ1bmN0aW9uKGEpe2xldCB0PSExO2ZvcihsZXQgYz0wO2M8YS5sZW5ndGg7YysrKXtjb25zdCBlPWEuY29kZVBvaW50QXQoYyk7aWYodCl7aWYodCE9PWYoZSkpcmV0dXJuIk1peGVkIn1lbHNlIHQ9ZihlKX1yZXR1cm4gdH0oYS5yZXBsYWNlKC9bXGQtXS9nLCIiKSl9ZnVuY3Rpb24gcih0LGMpe3ZhciBlPWEucmVwbGFjZSh0LGMpO3JldHVybiBlbmNvZGVVUkkoKDAsbC5odG1sRXNjYXBlKShiKGUpKSl9aWYoYy5sZW5ndGg+PTImJmUoY1tjLmxlbmd0aC0xXSkhPT1lKGNbYy5sZW5ndGgtMl0pKXJldHVybiByKHQsKDAsbi50b0FTQ0lJKSh0KSk7cmV0dXJuIHIodCxjLm1hcCgoZnVuY3Rpb24oYSl7dmFyIHQ9ZShhKTtyZXR1cm4iTWl4ZWQiPT09dHx8IlN1cHBsZW1lbnRhcnkiPT09dD8oMCxuLnRvQVNDSUkpKGEpOmF9KSkuam9pbigiLiIpKX1mdW5jdGlvbiBtKGEpe3ZhciB0PWEudGV4dC5tYXRjaChBLnNuYXBzaG90cyk7aWYodClmb3IodmFyIHI9MDtyPHQubGVuZ3RoO3IrKyl7dmFyIHM7YS50ZXh0PWEudGV4dC5yZXBsYWNlKHRbcl0sIjwiK2EuY291bnQrKysiPiIpLC0xIT09dFtyXS5pbmRleE9mKCJhbWF6b25hd3MiKSYmLTE9PT10W3JdLmluZGV4T2YoIl90aHVtYiIpJiYoKHM9dFtyXS5zcGxpdCgiLiIpKVtzLmxlbmd0aC0yXSs9Il90aHVtYiIscz1lbmNvZGVVUkkocy5qb2luKCIuIikpKTt2YXIgaD0oMCxsLmh0bWxFc2NhcGUpKGUudChudWxsLHZvaWQgMCxjKDc0Njc5NykpKSxpPWVuY29kZVVSSSh0W3JdKTthLnZhbHVlcy5wdXNoKGA8ZGl2IGNsYXNzPSJjaC1pdGVtLXNuYXBzaG90LWxpbmsiPjxpIGNsYXNzPSJpY29uIGljb24tc25hcHNob3Qtc21hbGwiIHRpdGxlPSIke2h9Ij48L2k+PGEgaHJlZj0iJHtpfSIgdGFyZ2V0PSJfYmxhbmsiPiR7aH08L2E+PC9kaXY+PGRpdiBjbGFzcz0iY2gtaXRlbS1zbmFwc2hvdC1wcmV2aWV3Ij48YSB0YXJnZXQ9Il9ibGFuayIgaHJlZj0iJHtpfSI+PGltZyBzcmM9IiR7c3x8aX0iIGxvYWRpbmc9ImxhenkiIGFsdD0iIi8+XHQ8L2E+PC9kaXY+YCl9cmV0dXJuIGF9ZnVuY3Rpb24gdyhhKXt2YXIgdD1hLnRleHQubWF0Y2goQS5jb21tZW50cyk7aWYodClmb3IodmFyIGM9MDtjPHQubGVuZ3RoO2MrKyl7YS50ZXh0PWEudGV4dC5yZXBsYWNlKHRbY10sIjwiK2EuY291bnQrKysiPiIpO3ZhciBlPWQodFtjXSk7YS52YWx1ZXMucHVzaCgnPGEgdGFyZ2V0PSJfYmxhbmsiIGhyZWY9IicrZSsnIj4nK2IoZSkrIjwvYT4iKX1yZXR1cm4gYX1mdW5jdGlvbiB4KGEpe2Z1bmN0aW9uIHQoYSl7cmV0dXJuL15bYS16QS1aMC05Li1dKnRyYWRpbmd2aWV3LmNvbSQvLnRlc3QoYSl9dmFyIGM9YS50ZXh0Lm1hdGNoKC8oKGh0dHBzPzpcL1wvKXwod3d3XC4pKSgtXC4pPyhbXlxzLz8uI10rXC4pKyhbXlxzPD5dKlteXHM8Pi5dKyk/L2cpCjtpZihjKWZvcih2YXIgZT0wO2U8Yy5sZW5ndGg7ZSsrKXt2YXIgbD0wPT09Y1tlXS5pbmRleE9mKCJodHRwOi8vIil8fDA9PT1jW2VdLmluZGV4T2YoImh0dHBzOi8vIik/IiI6Imh0dHA6Ly8iLHI9dChwKGNbZV0pKT8iIjoiIHJlbD0nbm9mb2xsb3cgbm9vcGVuZXIgbm9yZWZlcnJlciciO2EudGV4dD1hLnRleHQucmVwbGFjZShjW2VdLCI8IithLmNvdW50KysrIj4iKTt2YXIgcz1kKGwrY1tlXSk7YS52YWx1ZXMucHVzaCgiPGEgdGFyZ2V0PSdfYmxhbmsnIityKyIgaHJlZj0nIitzKyInPiIrYihzKSsiPC9hPiIpfXJldHVybiBhfWZ1bmN0aW9uIE0oYSl7dmFyIHQ9YS50ZXh0Lm1hdGNoKC8oXCQpW2Etel0oPzpbLl8tXT9bYS16MC05XSl7MCwxOX0vZ2kpO2lmKHQpZm9yKHZhciBjPTA7Yzx0Lmxlbmd0aDtjKyspYS50ZXh0PWEudGV4dC5yZXBsYWNlKHRbY10sIjwiK2EuY291bnQrKysiPiIpLGEudmFsdWVzLnB1c2goIjxhIHRhcmdldD0nX2JsYW5rJyBocmVmPSciKygwLHYuZ2V0U3ltYm9sUGFnZVBhdGgpKHtzaG9ydE5hbWU6dFtjXS5zdWJzdHJpbmcoMSl9KSthLnV0bSsiJz4iK3RbY10rIjwvYT4iKTtyZXR1cm4gYX1mdW5jdGlvbiB1KGEpe3ZhciB0PWEudGV4dC5tYXRjaCgvW2EtekEtWjAtOS4hIyQlJicqKy89P15fYHt8fX4tXStAW2EtekEtWjAtOV0oPzpbYS16QS1aMC05LV17MCw2MX1bYS16QS1aMC05XSk/KD86XC5bYS16QS1aMC05XSg/OlthLXpBLVowLTktXXswLDYxfVthLXpBLVowLTldKT8pKy9naSk7aWYodClmb3IodmFyIGM9MDtjPHQubGVuZ3RoO2MrKylhLnRleHQ9YS50ZXh0LnJlcGxhY2UodFtjXSwiPCIrYS5jb3VudCsrKyI+IiksYS52YWx1ZXMucHVzaCgnPGEgY2xhc3M9ImVtYWlsIiBocmVmPSJtYWlsdG86Jyt0W2NdKyciPicrdFtjXSsiPC9hPiIpO3JldHVybiBhfWZ1bmN0aW9uIHooYSl7Zm9yKHZhciB0LGM9Lyhcc3xefD58XG58XHUyMDJhKUAoW2EtejAtOS5fXC1cdTAwQTBdezIsNTB9KShcc3wkfDx8XG58LHwhfFw/fDp8O3xcdTIwMmMpL2dpO251bGwhPSh0PWMuZXhlYyhhLnRleHQpKTspYS50ZXh0PWEudGV4dC5yZXBsYWNlKHRbMF0sdFsxXSsiPCIrYS5jb3VudCsrKyI+Iit0WzNdKSxhLnZhbHVlcy5wdXNoKCI8YSBkaXI9XCJsdHJcIiB0YXJnZXQ9J19ibGFuaycgaHJlZj0nL3UvIit0WzJdLnJlcGxhY2UoIsKgIiwiICIpKyIvIithLnV0bSsiJz5AIit0WzJdKyI8L2E+IiksYy5sYXN0SW5kZXg9MDtyZXR1cm4gYX1mdW5jdGlvbiB5KGEpe3ZhciB0PS9mdWNrL2dpO3JldHVybiBhLnRleHQuc2VhcmNoKHQpPj0wJiYoYS50ZXh0PWEudGV4dC5yZXBsYWNlKHQsIjwiK2EuY291bnQrKysiPiIpLGEudmFsdWVzLnB1c2goci5lbW9qaS5nZXRFbGVtZW50SFRNTChyLmVtb2ppLmhlYXJ0KCkpKSksYX1mdW5jdGlvbiBDKGEpe3JldHVybiByLmVtb2ppLmVhY2goKGZ1bmN0aW9uKHQpe2lmKGEudGV4dC5zZWFyY2godC5yZSk+PTApe3ZhciBjPSI8IithLmNvdW50KyI+IjsiOyI9PT10LmNvZGVbMF0mJihjPWZ1bmN0aW9uKGEpe3ZhciB0PS8mIz9cdys7JC87cmV0dXJuIGZ1bmN0aW9uKGMsZSxsKXtyZXR1cm4gdC50ZXN0KGwuc3Vic3RyaW5nKGUtMTYsZSsxKSk/YzoiPCIrYS5jb3VudCsiPiJ9fShhKSksYS50ZXh0PWEudGV4dC5yZXBsYWNlKHQucmUsYyksYS5jb3VudCsrLGEudmFsdWVzLnB1c2goci5lbW9qaS5nZXRFbGVtZW50SFRNTCh0KSl9fSkpLGF9ZnVuY3Rpb24gYihhKXt2YXIgdDt0cnl7dD1kZWNvZGVVUkkoYSl9Y2F0Y2goYyl7dD1hfXJldHVybiB0fWNvbnN0IEE9ZnVuY3Rpb24oKXtmdW5jdGlvbiBhKGEsdCxjKXtyZXR1cm4iKD86KD86IithKyIpfCg/OiIrdCsiKXwoPzoiK2MrIikpIn12YXIgdD0iKD86aHR0cHM6XFwvXFwvfGh0dHA6XFwvXFwvKSg/Oig/OltcXHdcXGRcXC5cXF9cXC1dK1xcLik/dHJhZGluZ3ZpZXdcXC5jb218d2ViY2hhcnRzXFxkP3xsb2NhbGhvc3RcXDo2Mjg1KSIsYz0iI3RjWzEtOV1bMC05XSoiLGU9cy51cmxzUmVnRXhwLnB1Ymxpc2hlZEltYWdlLGw9cy51cmxzUmVnRXhwLnB1Ymxpc2hlZENoYXJ0T2xkLHI9cy51cmxzUmVnRXhwLnB1Ymxpc2hlZENoYXJ0LGg9cy51cmxzUmVnRXhwLnB1Ymxpc2hlZFNjcmlwdCxpPXMudXJsc1JlZ0V4cC5hbWF6b25hd3NMaW5rcztyZXR1cm57c25hcHNob3RzOm5ldyBSZWdFeHAodCtlKyJ8IitpLCJnIiksY29tbWVudHM6bmV3IFJlZ0V4cCh0K2EobCtjLHIrYyxoK2MpLCJnIiksZGVwcmVjYXRlZENoYXJ0czpuZXcgUmVnRXhwKHQrYShsLHIsaCksImciKX19KCksSD1bbSx3LHgsTSx1LHosQ10sQj1bbSx3LGZ1bmN0aW9uKGEpe3ZhciB0PWEudGV4dC5tYXRjaChBLmRlcHJlY2F0ZWRDaGFydHMpO2lmKHQpZm9yKHZhciByPTA7cjx0Lmxlbmd0aDtyKyspe2EudGV4dD1hLnRleHQucmVwbGFjZSh0W3JdLCI8IithLmNvdW50KysrIj4iKTt2YXIgcz0oMCxoLnBhcnNlUHVibGlzaGVkQ2hhcnRVcmwpKHRbcl0pLGk9KDAsbC5odG1sRXNjYXBlKSgoMCxoLmNyZWF0ZVB1Ymxpc2hlZENoYXJ0VXJsKShzLmltYWdlX3VybCxzLnN5bWJvbCxzLnRpdGxlKSksZz0oMCxoLmNyZWF0ZVB1Ymxpc2hlZENoYXJ0SW1hZ2VVcmwpKHMuaW1hZ2VfdXJsKSxuPWVuY29kZVVSSShzLmltYWdlX3VybCksbz1zLnN5bWJvbD8oMCxsLmh0bWxFc2NhcGUpKHMuc3ltYm9sKTp2b2lkIDAsZj1zLnRpdGxlPygwLGwuaHRtbEVzY2FwZSkocy50aXRsZSk6dm9pZCAwO2EudmFsdWVzLnB1c2goYDxkaXYgY2xhc3M9ImNoLWl0ZW0tY2hhcnQtbGluayI+PGkgY2xhc3M9Imljb24gaWNvbi1zbmFwc2hvdC1zbWFsbCIgdGl0bGU9IiR7ZS50KG51bGwsdm9pZCAwLGMoMzYwODUyKSl9Ij48L2k+PGEgaHJlZj0iJHtpfSIgdGFyZ2V0PSJfYmxhbmsiIGRhdGEtaWQ9IiR7bn0iIGArKG8/YGRhdGEtc3ltYm9sPSIke299ImA6IiIpKyIgIisoZj9gZGF0YS10aXRsZT0iJHtmfSJgOiIiKStgPiR7KDAsCmwuaHRtbEVzY2FwZSkoZS50KG51bGwsdm9pZCAwLGMoMzYwODUyKSkpfTwvYT48L2Rpdj48ZGl2IGNsYXNzPSJjaC1pdGVtLWNoYXJ0LXByZXZpZXciPjxhIGArYCBocmVmPSIke2l9IiB0YXJnZXQ9Il9ibGFuayJgK2AgZGF0YS1pZD0iJHtufSIgYCsobz9gIGRhdGEtc3ltYm9sPSIke299ImA6IiIpKyIgIisoZj9gIGRhdGEtdGl0bGU9IiR7Zn0iYDoiIikrIj4iK2A8aW1nIHNyYz0iJHtnfSIgbG9hZGluZz0ibGF6eSIgYWx0PSIiLz48L2E+PC9kaXY+YCl9cmV0dXJuIGF9LHgsTSx1LHosQ107ZnVuY3Rpb24gUyhhLHQpe2E9dFswXShhKTtmb3IodmFyIGM9MTtjPHQubGVuZ3RoO2MrKylhPXRbY10oYSk7cmV0dXJuIGEudmFsdWVzJiYoYS50ZXh0PWEudGV4dC5yZXBsYWNlKC88KFxkKyk+L2csKGZ1bmN0aW9uKHQsYyl7cmV0dXJuIGEudmFsdWVzW2NdP2EudmFsdWVzW2NdOiIifSkpKSxhLnRleHR9Y2xhc3MgVntjb25zdHJ1Y3RvcihhLHQsYyxlKXt0aGlzLnRleHQ9YSx0aGlzLnV0bT10fHwiIix0aGlzLmNvdW50PWN8fDAsdGhpcy52YWx1ZXM9ZXx8W119fWZ1bmN0aW9uIEwoYSx0KXt0PXR8fFtdO3ZhciBjPW5ldyBWKCgwLGwuaHRtbEVzY2FwZSkoYSkpO3JldHVybihjPXkoYykpLnRleHQ9KDAsaS5wYXJzZVF1b3RlcykoYy50ZXh0KSxTKGM9KDAsZy5wYXJzZVBpbmVUYWdzKShjKSxCLmNvbmNhdCh0KSl9fSwzMTc3MzIoYSl7YS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDQ3LjUgNDcuNSI+PGcgdHJhbnNmb3JtPSJtYXRyaXgoMS4yNSAwIDAgLTEuMjUgMCA0Ny41KSI+PHBhdGggZmlsbD0iIzNiODhjMyIgZD0iTTM3IDVhNCA0IDAgMCAwLTQtNEg1YTQgNCAwIDAgMC00IDR2MjhhNCA0IDAgMCAwIDQgNGgyOGE0IDQgMCAwIDAgNC00VjV6Ii8+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTYuOTcgMjQuMTQyYzEuMDIyIDAgMy4wMTItLjMzNiAzLjAxMi0xLjU3IDAtLjUwMy0uMzUtLjkzOC0uODctLjkzOC0uNTczIDAtLjk2NS40OS0yLjE0Mi40OS0xLjczNyAwLTIuNjMzLTEuNDctMi42MzMtMy4xOCAwLTEuNjY2LjkxLTMuMDk1IDIuNjMzLTMuMDk1IDEuMTc3IDAgMS42NTMuNTggMi4yMjcuNTguNjMgMCAuOTI1LS42My45MjUtLjk2IDAtMS4zNS0yLjExNS0xLjY2LTMuMTUyLTEuNjYtMi44NDMgMC00LjgxOCAyLjI1LTQuODE4IDUuMTUgMCAyLjkxMiAxLjk2IDUuMTUzIDQuODE4IDUuMTUzIi8+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTE3LjMxNyAxOC45ODZjMCAxLjY5NS0uODgyIDMuMjIyLTIuNjMzIDMuMjIyLTEuNzUgMC0yLjYzNC0xLjUyNy0yLjYzNC0zLjIyMiAwLTEuNzEuODU1LTMuMjIyIDIuNjM0LTMuMjIyIDEuNzggMCAyLjYzMyAxLjUxMyAyLjYzMyAzLjIyMm0tNy40NTIgMGMwIDIuOTE0IDEuOTYgNS4xNTUgNC44MiA1LjE1NSAyLjgxNCAwIDQuODE4LTIuMzEgNC44MTgtNS4xNSAwLTIuOS0xLjk0OC01LjE1LTQuODItNS4xNS0yLjg0MyAwLTQuODE4IDIuMjYtNC44MTggNS4xNm0xNy41NiAwYzAgMS43LS44ODIgMy4yMi0yLjYzNCAzLjIyLTEuNzUgMC0yLjYzLTEuNTItMi42My0zLjIyIDAtMS43MS44Ni0zLjIyIDIuNjQtMy4yMiAxLjc4IDAgMi42NCAxLjUyIDIuNjQgMy4yMm0tNy40NSAwYzAgMi45MiAxLjk2IDUuMTYgNC44MiA1LjE2IDIuODIgMCA0LjgyLTIuMzEgNC44Mi01LjE1IDAtMi45LTEuOTQtNS4xNS00LjgyLTUuMTUtMi44NCAwLTQuODEgMi4yNTUtNC44MSA1LjE1NG0xMC4yMTggMy45N2MwIC43LjQ0OCAxLjA5IDEuMDUgMS4wOS42MDMgMCAxLjA1My0uMzkyIDEuMDUzLTEuMDkydi03LjA0aDIuNDljLjcxNCAwIDEuMDItLjUzMiAxLjAxLTEuMDFBLjk4My45ODMgMCAwIDAgMzQuOCAxNGgtMy41MWMtLjY4NiAwLTEuMDkyLjQ1LTEuMDkyIDEuMTV2Ny44MTZ6Ii8+PC9nPjwvc3ZnPid9LDY5NTc0OShhKXsKYS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDQ3LjUgNDcuNSI+PGcgdHJhbnNmb3JtPSJtYXRyaXgoMS4yNSAwIDAgLTEuMjUgMCA0Ny41KSI+PHBhdGggZmlsbD0iIzNiODhjMyIgZD0iTTM3IDVhNCA0IDAgMCAwLTQtNEg1YTQgNCAwIDAgMC00IDR2MjhhNCA0IDAgMCAwIDQgNGgyOGE0IDQgMCAwIDAgNC00VjV6Ii8+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTIuODM2IDI0LjQxNmMwIC43MzguNTA0IDEuNDA0IDEuNDA1IDEuNDA0aDQuNjFjLjggMCAxLjIxLS42MTIgMS4yMS0xLjI0MiAwLS42MTItLjM5LTEuMjQzLTEuMi0xLjI0M0g1LjU0di0yLjYyOGgyLjc5Yy44NjUgMCAxLjI5Ny0uNjEzIDEuMjk3LTEuMjI0IDAtLjYzLS40MzItMS4yNi0xLjI5Ni0xLjI2SDUuNTR2LTMuOTI2YzAtLjktLjU3OC0xLjQwNS0xLjM1LTEuNDA1LS43NzcgMC0xLjM1My41MDUtMS4zNTMgMS40MDV2MTAuMTJ6bTEwLjY5NC00LjI2OGgxLjg1M2MuOTkgMCAxLjY3NS41OTQgMS42NzUgMS42MDMgMCAxLjAzLS42ODQgMS41OS0xLjY3NSAxLjU5SDEzLjUzdi0zLjE5em0tMi43MDIgNC4yNjdjMCAuODY0LjQ4NiAxLjQwNCAxLjM4NyAxLjQwNGgzLjE2OGMyLjc3MyAwIDQuNDg0LTEuMjUgNC40ODQtNC4wNyAwLTEuOTgtMS40OTUtMy4xMi0zLjMzLTMuNDFsMy4wNi0zLjI4Yy4yNTItLjI3LjM2LS41NC4zNi0uOCAwLS43LS41NTgtMS4zOS0xLjM1LTEuMzktLjMyNSAwLS43NTcuMTI2LTEuMDQ1LjQ3bC0zLjk5NyA0Ljg1aC0uMDM2di0zLjljMC0uOS0uNTgtMS40MDYtMS4zNi0xLjQwNi0uNzggMC0xLjM1LjUtMS4zNSAxLjR2MTAuMTJ6bTkuNjUtLjE2MmMwIC45LjQ1IDEuNTY2IDEuNDAzIDEuNTY2aDQuNDdjLjg3IDAgMS4yOC0uNjIgMS4yOC0xLjI1IDAtLjYxLS40My0xLjI0LTEuMjgtMS4yNGgtMy4xN1YyMC43aDIuOTVjLjg5IDAgMS4zMi0uNjEgMS4zMi0xLjI0IDAtLjYxLS40NS0xLjI0LTEuMzEtMS4yNGgtMi45NXYtMi43NGgzLjMzYy44NyAwIDEuMjgtLjYxIDEuMjgtMS4yNDIgMC0uNjEtLjQzLTEuMjQtMS4yOC0xLjI0aC00LjY1Yy0uNzkgMC0xLjM4LjU0LTEuMzggMS4zNXY5LjkwM3ptNy45NzIgMGMwIC45LjQ1IDEuNTY2IDEuNDA1IDEuNTY2aDQuNDY1Yy44NjMgMCAxLjI3Ny0uNjIgMS4yNzctMS4yNSAwLS42MS0uNDMtMS4yNC0xLjI3Ny0xLjI0aC0zLjE3VjIwLjdoMi45NTNjLjg4MyAwIDEuMzE1LS42MSAxLjMxNS0xLjI0IDAtLjYxLS40NS0xLjI0LTEuMzE1LTEuMjRIMzEuMTV2LTIuNzRoMy4zMzJjLjg2NCAwIDEuMjc4LS42MSAxLjI3OC0xLjI0MiAwLS42MS0uNDMyLTEuMjQtMS4yNzgtMS4yNGgtNC42NDZjLS43OSAwLTEuMzg1LjU0LTEuMzg1IDEuMzV2OS45MDN6Ii8+PC9nPjwvc3ZnPid9LDM2NjA5MShhKXthLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgNDcuNSA0Ny41Ij48ZyB0cmFuc2Zvcm09Im1hdHJpeCgxLjI1IDAgMCAtMS4yNSAwIDQ3LjUpIj48cGF0aCBmaWxsPSIjM2I4OGMzIiBkPSJNMzcgNWE0IDQgMCAwIDAtNC00SDVhNCA0IDAgMCAwLTQgNHYyOGE0IDQgMCAwIDAgNCA0aDI4YTQgNCAwIDAgMCA0LTRWNXoiLz48cGF0aCBmaWxsPSIjZmZmIiBkPSJNMi41MjcgMjMuODhjMCAuODUuNTQ0IDEuMzI1IDEuMjc1IDEuMzI1LjMyMyAwIC44NS0uMjU1IDEuMDctLjU2bDUuMzktNy4xOTJoLjAzM3Y2LjQyNmMwIC44NS41NDQgMS4zMiAxLjI3NSAxLjMyLjczIDAgMS4yNzUtLjQ4IDEuMjc1LTEuMzN2LTkuNjVjMC0uODUtLjU0NC0xLjMzLTEuMjc1LTEuMzMtLjMyMyAwLS44MzMuMjUtMS4wNy41NmwtNS4zOSA3LjExaC0uMDMzdi02LjM0YzAtLjg1LS41NDQtMS4zMy0xLjI3NS0xLjMzLS43MyAwLTEuMjc1LjQ3LTEuMjc1IDEuMzJ2OS42NXptMTEuMDY3LS4yNTZjMCAuODUuNDI1IDEuNDggMS4zMjYgMS40OGg0LjIxNWMuODE2IDAgMS4yMDctLjU4IDEuMjA3LTEuMTc0IDAtLjU3OC0uNDA4LTEuMTczLTEuMjA3LTEuMTczaC0yLjk5MnYtMi40ODJoMi43ODhjLjg0IDAgMS4yNS0uNTc4IDEuMjUtMS4xNzIgMC0uNTgtLjQyLTEuMTczLTEuMjQtMS4xNzNoLTIuNzl2LTIuNTg0aDMuMTVjLjgyIDAgMS4yMS0uNTc4IDEuMjEtMS4xNzMgMC0uNTc4LS40MS0xLjE3My0xLjIxLTEuMTczaC00LjM5Yy0uNzUgMC0xLjMxLjUxLTEuMzEgMS4yNzR2OS4zNXptNy4zMS0uMTJjLS4wNS4yMi0uMDY4LjM0LS4wNjguNTggMCAuNTQzLjQ2IDEuMTIgMS4yMDcgMS4xMi44MTYgMCAxLjIwNy0uNDc1IDEuMzYtMS4yMjNsMS40NDQtNy4yMmguMDM1bDIuMjEgNy40NWMuMTg3LjYxLjY5NyAxLjAxIDEuMzI2IDEuMDEuNjMgMCAxLjEzOC0uMzkgMS4zMjYtMWwyLjIxLTcuNDRoLjAzMkwzMy40MyAyNGMuMTYuNzUuNTUgMS4yMjIgMS4zNiAxLjIyMi43NSAwIDEuMjEtLjU4IDEuMjEtMS4xMjJhMi4wNCAyLjA0IDAgMCAwLS4wNy0uNThsLTIuMTUtOS4yOGMtLjE3LS43MTUtLjczLTEuMzI2LTEuNjgtMS4zMjZhMS43MyAxLjczIDAgMCAwLTEuNjggMS4yNGwtMS45NyA2LjU2aC0uMDRsLTEuOTctNi41NmExLjczMyAxLjczMyAwIDAgMC0xLjY4Mi0xLjI0Yy0uOTUyIDAtMS41MTQuNjEtMS42ODQgMS4zMjVsLTIuMTYgOS4yOHoiLz48L2c+PC9zdmc+J30sNTAyNzYxKGEpewphLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgNDcuNSA0Ny41Ij48ZyB0cmFuc2Zvcm09Im1hdHJpeCgxLjI1IDAgMCAtMS4yNSAwIDQ3LjUpIj48cGF0aCBmaWxsPSIjM2I4OGMzIiBkPSJNMzcgNWE0IDQgMCAwIDAtNC00SDVhNCA0IDAgMCAwLTQgNHYyOGE0IDQgMCAwIDAgNCA0aDI4YTQgNCAwIDAgMCA0LTRWNXoiLz48cGF0aCBmaWxsPSIjZmZmIiBkPSJNMTUuNzAyIDE5LjU0NWMwIDIuOTA0LTEuNTEyIDUuNTItNC41MTMgNS41Mi0zIDAtNC41Mi0yLjYxNi00LjUyLTUuNTIgMC0yLjkzIDEuNDYtNS41MiA0LjUxLTUuNTJzNC41MSAyLjU5IDQuNTEgNS41Mm0tMTIuNzcgMGMwIDQuOTkyIDMuMzYgOC44MzMgOC4yNSA4LjgzMyA0LjgyNSAwIDguMjU3LTMuOTYgOC4yNTctOC44MzMgMC00Ljk3LTMuMzM3LTguODMzLTguMjU4LTguODMzLTQuODc2IDAtOC4yNiAzLjg2NC04LjI2IDguODMzbTE4LjAwMiA2LjkxMmMwIC45ODQuNzIgMS43NzYgMS44IDEuNzc2IDEuMDMyIDAgMS44LS42NzIgMS44LTEuNzc2di01LjE4NWw1LjkwNiA2LjI5Yy4yNjQuMjg4LjcyLjY3MiAxLjM5LjY3Mi45MTMgMCAxLjc4LS42OTYgMS43OC0xLjcyOCAwLS42MjQtLjM4Ni0xLjEyOC0xLjE3Ny0xLjkybC00LjUzLTQuNDY2IDUuNTQ2LTUuNzgzYy41NzYtLjU3NiAxLjAxLTEuMTAzIDEuMDEtMS44MjQgMC0xLjEyNi0uODktMS42NTMtMS44NzUtMS42NTMtLjY5IDAtMS4xNS40MDYtMS44MiAxLjEyN2wtNi4yMTIgNi43MnYtNi4xMmMwLS45MzctLjcyLTEuNzMtMS44LTEuNzMtMS4wMy4wMDItMS44LjY3NC0xLjggMS43M1YyNi40NnoiLz48L2c+PC9zdmc+J30sNjkyMjA2KGEpe2EuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0Ny41IDQ3LjUiPjxnIHRyYW5zZm9ybT0ibWF0cml4KDEuMjUgMCAwIC0xLjI1IDAgNDcuNSkiPjxwYXRoIGZpbGw9IiNkZDJlNDQiIGQ9Ik0zNyA1YTQgNCAwIDAgMC00LTRINWE0IDQgMCAwIDAtNCA0djI4YTQgNCAwIDAgMCA0IDRoMjhhNCA0IDAgMCAwIDQtNFY1eiIvPjxwYXRoIGZpbGw9IiNmZmYiIGQ9Ik0xMC43NjIgMjQuNDgyYzAtLjc4LS41Mi0xLjQ4LTEuMzQtMS40OC0uODIgMC0xLjQ2LjYtMi42Ni42LS44NiAwLTEuNjQtLjQ2LTEuNjQtMS4zIDAtMi4wNiA2LjY4LS43NCA2LjY4LTUuOSAwLTIuODYyLTIuMzYtNC42NDMtNS4xMi00LjY0My0xLjU0IDAtNC44NjIuMzYtNC44NjIgMi4yNCAwIC43OC41MiAxLjQyIDEuMzQgMS40Mi45NCAwIDIuMDYtLjc4IDMuMzYtLjc4IDEuMzIyIDAgMi4wNDIuNzQgMi4wNDIgMS43MiAwIDIuMzYtNi42ODIuOTQtNi42ODIgNS41OCAwIDIuOCAyLjMgNC41NCA0Ljk2MiA0LjU0IDEuMTIgMCAzLjkyLS40MiAzLjkyLTJtMTItNS4zNmMwIDIuNDItMS4yNiA0LjYtMy43NiA0LjZzLTMuNzYtMi4xOC0zLjc2LTQuNmMwLTIuNDQgMS4yMi00LjYgMy43Ni00LjZzMy43NiAyLjE2IDMuNzYgNC42bS0xMC42NDIgMGMwIDQuMTYgMi44IDcuMzYgNi44ODIgNy4zNiA0LjAyIDAgNi44OC0zLjMgNi44OC03LjM2IDAtNC4xNC0yLjc4LTcuMzYtNi44OC03LjM2LTQuMDYgMC02Ljg4MiAzLjIyLTYuODgyIDcuMzZtMjMuMDIzIDUuMzZjMC0uNzgtLjUyLTEuNDgtMS4zNDItMS40OC0uODIgMC0xLjQ1LjYtMi42Ni42LS44NSAwLTEuNjQtLjQ2LTEuNjQtMS4zIDAtMi4wNiA2LjY5LS43NCA2LjY5LTUuOSAwLTIuODYtMi4zNi00LjY1LTUuMTItNC42NS0xLjU0IDAtNC44Ni4zNi00Ljg2IDIuMjQgMCAuNzguNTIgMS40MiAxLjM0IDEuNDIuOTQgMCAyLjA2Ny0uNzggMy4zNi0uNzggMS4zMiAwIDIuMDQ3Ljc0IDIuMDQ3IDEuNzIgMCAyLjM2LTYuNjgyLjk0LTYuNjgyIDUuNTggMCAyLjggMi4zIDQuNTQgNC45NiA0LjU0IDEuMTI0IDAgMy45MjUtLjQyIDMuOTI1LTIiLz48L2c+PC9zdmc+J30sMjMwMTQzKGEpe2EuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0Ny41IDQ3LjUiPjxnIHRyYW5zZm9ybT0ibWF0cml4KDEuMjUgMCAwIC0xLjI1IDAgNDcuNSkiPjxwYXRoIGZpbGw9IiMzYjg4YzMiIGQ9Ik0zNyA1YTQgNCAwIDAgMC00LTRINWE0IDQgMCAwIDAtNCA0djI4YTQgNCAwIDAgMCA0IDRoMjhhNCA0IDAgMCAwIDQtNFY1eiIvPjxwYXRoIGZpbGw9IiNmZmYiIGQ9Ik0zLjI4IDI1LjQzOGMwIDEuMDUuNjczIDEuNjM4IDEuNTc2IDEuNjM4czEuNTc0LS41OSAxLjU3NC0xLjY0VjE4LjExYzAtMS45MzIgMS4yNC0zLjQ2NCAzLjIzNC0zLjQ2NCAxLjkxIDAgMy4yMTIgMS42MTUgMy4yMTIgMy40NjN2Ny4zMmMwIDEuMDUuNjcyIDEuNjQgMS41NzUgMS42NC45MSAwIDEuNTgtLjU5IDEuNTgtMS42NHYtNy40OWMwLTMuNTMtMi45LTYuMi02LjM2LTYuMi0zLjUgMC02LjM4IDIuNjItNi4zOCA2LjE5djcuNXptMTcuNjYtNS43MWgyLjE0M2MxLjMyMyAwIDIuMTYzLjk2NSAyLjE2MyAyLjIyNXMtLjg0IDIuMjI1LTIuMTYzIDIuMjI1SDIwLjk0di00LjQ1em0tMy4xNDggNS41ODRjMCAuOTg3LjU4NyAxLjYzOCAxLjYzNyAxLjYzOGgzLjcxYzMuMDggMCA1LjM3LTIuMDE2IDUuMzctNS4wMTggMC0zLjA2Ni0yLjM4LTQuOTc2LTUuMjUtNC45NzZoLTIuMzN2LTMuNDQ0YzAtMS4wNS0uNjctMS42MzgtMS41OC0xLjYzOC0uOTA1IDAtMS41NzYuNTg4LTEuNTc2IDEuNjM4djExLjh6bTEyLjcyNi40NmMwIC44ODMuNjUgMS40MyAxLjUxMiAxLjQzLjg0IDAgMS41MS0uNTY3IDEuNTEtMS40MjhWMTcuNjljMC0uODYtLjY3LTEuNDMtMS41MS0xLjQzLS44NjIgMC0xLjUxMi41NDgtMS41MTIgMS40M3Y4LjA4M3ptLS4xMjctMTIuMzg3YTEuNjM4IDEuNjM4IDAgMSAwIDEuNjQtMS42MzcgMS42NCAxLjY0IDAgMCAwLTEuNjQgMS42MzciLz48L2c+PC9zdmc+J30sMjQxNjI1KGEpewphLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgNDcuNSA0Ny41Ij48ZyB0cmFuc2Zvcm09Im1hdHJpeCgxLjI1IDAgMCAtMS4yNSAwIDQ3LjUpIj48cGF0aCBmaWxsPSIjNjY3NTdmIiBkPSJNMzcgMTljMC05Ljk0LTguMDYtMTgtMTgtMThTMSA5LjA2IDEgMTlzOC4wNiAxOCAxOCAxOCAxOC04LjA2IDE4LTE4Ii8+PHBhdGggZmlsbD0iIzViNjg3NiIgZD0iTTE0IDI5LjVhMy41IDMuNSAwIDAgMC03IDAgMy41IDMuNSAwIDAgMCA3IDBtMTUtMjFBMy41IDMuNSAwIDAgMCAyNS41IDUgMy41IDMuNSAwIDAgMCAyMiA4LjVhMy41IDMuNSAwIDAgMCAzLjUgMy41QTMuNSAzLjUgMCAwIDAgMjkgOC41TTI1IDMyYTIgMiAwIDEgMC00IDAgMiAyIDAgMCAwIDQgME0zIDE5YTEgMSAwIDEgMSAyIDAgMSAxIDAgMCAxLTIgMG0yNyA5YTEgMSAwIDEgMSAxLjk5OC0uMDAyQTEgMSAwIDAgMSAzMCAyOE0xNiA2YTEgMSAwIDAgMSAyIDAgMSAxIDAgMCAxLTIgMG0xOSAxMmEyIDIgMCAxIDAtNCAwIDIgMiAwIDAgMCA0IDBNOSAxMWEyIDIgMCAxIDAtNCAwIDIgMiAwIDAgMCA0IDAiLz48cGF0aCBmaWxsPSIjNGY1ODVkIiBkPSJNMTkgMTIuMDk2Yy03IDAtOSAyLjYxOC05IDEuMzhDMTAgMTIuMjQgMTQgOSAxOSA5czkgMy4yNCA5IDQuNDc3LTItMS4zOC05LTEuMzhNMjggMjJhMyAzIDAgMSAwLTYgMCAzIDMgMCAwIDAgNiAwbS0xMiAwYTMgMyAwIDEgMC02IDAgMyAzIDAgMCAwIDYgMCIvPjwvZz48L3N2Zz4nfSw4MjE0MjkoYSl7YS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDQ3LjUgNDcuNSI+PGcgdHJhbnNmb3JtPSJtYXRyaXgoMS4yNSAwIDAgLTEuMjUgMCA0Ny41KSI+PHBhdGggZmlsbD0iI2Y0OTAwYyIgZD0iTTE5IDEuMmMtLjM5IDAtLjc0NS4yMTgtLjkyLjU2NWwtMS44IDMuNTU0LTMuMDI1LTIuNmExLjA0NCAxLjA0NCAwIDAgMC0xLjA2Ni0uMTcgMS4wMyAxLjAzIDAgMCAwLS42NC44N2wtLjMgMy45Ny0zLjc5LTEuMjRhMS4wMzUgMS4wMzUgMCAwIDAtMS4zIDEuM2wxLjI0IDMuNzktMy45OC4zYTEuMDQgMS4wNCAwIDAgMC0uODguNjMgMS4wNCAxLjA0IDAgMCAwIC4xNyAxLjA3bDIuNiAzLjAyNC0zLjU2IDEuOGExLjAzMiAxLjAzMiAwIDAgMCAwIDEuODRsMy41NTQgMS44LTIuNiAzLjAyYTEuMDMyIDEuMDMyIDAgMCAwIC43MDYgMS43bDMuOTcuMzA3LTEuMjQgMy43ODZjLS4xMi4zNy0uMDIyLjc3NS4yNSAxLjA1YTEuMDM3IDEuMDM3IDAgMCAwIDEuMDUuMjVsMy43OS0xLjI0LjMwNSAzLjk3YTEuMDMgMS4wMyAwIDAgMCAxLjcuNzA1bDMuMDMtMi41OTQgMS44IDMuNTU1YTEuMDMyIDEuMDMyIDAgMCAwIDEuODQgMGwxLjgtMy41NTUgMy4wMjUgMi41OTNhMS4wMzYgMS4wMzYgMCAwIDAgMS4wNjguMTdjLjM2LS4xNS42MDYtLjQ5LjYzNy0uODhsLjMwNC0zLjk3MyAzLjc4MiAxLjI0YTEuMDMgMS4wMyAwIDAgMCAxLjMtMS4zbC0xLjI0LTMuNzkgMy45NzUtLjMxYTEuMDMyIDEuMDMyIDAgMCAwIC43MDQtMS43bC0yLjU5LTMuMDIgMy41NTUtMS44YTEuMDMzIDEuMDMzIDAgMCAwIDAtMS44NGwtMy41NS0xLjggMi42LTMuMDI1YTEuMDMzIDEuMDMzIDAgMCAwLS43MS0xLjdsLTMuOTc0LS4zIDEuMjQtMy43OWExLjAzIDEuMDMgMCAwIDAtLjI1LTEuMDUgMS4wMjggMS4wMjggMCAwIDAtMS4wNS0uMjUzbC0zLjc4IDEuMjYtLjMtMy45N2ExLjAzNyAxLjAzNyAwIDAgMC0xLjAzLS45NTdjLS4yNCAwLS40OC4wODctLjY3LjI0OGwtMy4wMzMgMi42LTEuOC0zLjU1NUExLjAzIDEuMDMgMCAwIDAgMTkgMS4yIi8+PHBhdGggZmlsbD0iI2ZmY2M0ZCIgZD0iTTMyIDE5YzAtNy4xOC01LjgyLTEzLTEzLTEzUzYgMTEuODIgNiAxOXM1LjgyIDEzIDEzIDEzIDEzLTUuODIgMTMtMTMiLz48cGF0aCBmaWxsPSIjZjQ5MDBjIiBkPSJNMTkgMTMuNTNjLTYuMjIyIDAtOCAyLjMyNy04IDEuMjI4IDAtMS4xMDIgMy41NTYtMy45OCA4LTMuOThzOCAyLjg3OCA4IDMuOThjMCAxLjEtMS43NzctMS4yMy04LTEuMjNtOCA4LjgwNmEyLjY2NyAyLjY2NyAwIDEgMC01LjMzNCAwIDIuNjY3IDIuNjY3IDAgMCAwIDUuMzM0IDBtLTEwLjY2NiAwYTIuNjY4IDIuNjY4IDAgMSAwLTUuMzM2IDAgMi42NjggMi42NjggMCAwIDAgNS4zMzYgMCIvPjwvZz48L3N2Zz4nfSw4NDc5MChhKXsKYS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDQ3LjUgNDcuNSI+PGcgdHJhbnNmb3JtPSJtYXRyaXgoMS4yNSAwIDAgLTEuMjUgMCA0Ny41KSI+PHBhdGggZmlsbD0iI2ZmY2M0ZCIgZD0iTTI5Ljg0IDE5LjM2MmMtLjk4Ny0xLjA0NC0xLjYzMy0zLjA2Ny0xLjQzNy00LjQ5M2wuODktNi40NWMuMi0xLjQzLS43LTIuMDktMS45OTMtMS40N2wtNS44NSAyLjhjLTEuMjk2LjYyLTMuNDEuNjEtNC43LS4wMmwtNS44MjYtMi44NGMtMS4yOS0uNjMtMi4xOTQuMDItMi4wMDggMS40NWwuODQzIDYuNDVjLjE4IDEuNDItLjQ4IDMuNDQtMS40NyA0LjQ4bC00LjUgNC42OWMtLjk5IDEuMDMtLjY1IDIuMS43NiAyLjM2bDYuMzcgMS4xOWMxLjQxLjI2IDMuMTEgMS41MiAzLjc5IDIuNzlsMy4wNSA1LjczYy42NyAxLjI3IDEuNzkgMS4yNzIgMi40Ny4wMWwzLjA5LTUuNzE1Yy42OS0xLjI2NSAyLjQtMi41MDYgMy44Mi0yLjc1OGw2LjM3LTEuMTRjMS40MS0uMjU1IDEuNzYtMS4zMTYuNzctMi4zNmwtNC40Ni00LjcyeiIvPjxwYXRoIGZpbGw9IiNmZmQ5ODMiIGQ9Ik0xMC43ODMgMzQuODJjMS4wMjMtMS40MTQgMi40NDYtNC45MTggMS43MTctNS40NDgtLjcyOC0uNTMtMy42MDcgMS45MS00LjYzIDMuMzIzLTEuMDIyIDEuNDEzLS45MzUgMi42NjgtLjEzIDMuMjU0LjgwMy41OCAyLjAyLjI4IDMuMDQzLTEuMTNtMTkuMzQ3LTIuMTNjLTEuMDItMS40Mi0zLjktMy44Ni00LjYzLTMuMzMtLjcyOC41My42OTUgNC4wMyAxLjcyIDUuNDQgMS4wMjIgMS40MSAyLjIzNyAxLjcyIDMuMDQyIDEuMTMuODA0LS41OS44OS0xLjg0LS4xMy0zLjI2TTE3LjYyNSAzLjcxYzAgMS43NDUuODk4IDUuNDIgMS44IDUuNDIuODk4IDAgMS43OTgtMy42NzUgMS43OTctNS40MiAwLTEuNzQ3LS44MDQtMi43MTItMS44LTIuNzEtLjk5NC0uMDAyLTEuNzk4Ljk2Mi0xLjc5OCAyLjcxbTE2LjE4IDkuMjZjLTEuNjU1LjU0LTQuODU4IDIuNTM0LTQuNTggMy4zOTYuMjc4Ljg1NyA0LjAzOC41OCA1LjY5LjA0IDEuNjU2LS41NCAyLjMyMi0xLjYwNSAyLjAxMy0yLjU1NS0uMzA3LS45NC0xLjQ2OC0xLjQyLTMuMTIzLS44OG0tMzAuNzIgMy40NGMxLjY1NC41NCA1LjQxMy44MiA1LjY5My0uMDQuMjc2LS44NS0yLjkyOC0yLjg1LTQuNTgtMy4zOS0xLjY1NS0uNTQtMi44Mi0uMDctMy4xMjQuODgtLjMwOC45NS4zNTQgMi4wMiAyLjAxIDIuNTYiLz48L2c+PC9zdmc+J30sMzE5NjY4KGEpe2EuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0Ny41IDQ3LjUiPjxnIHRyYW5zZm9ybT0ibWF0cml4KDEuMjUgMCAwIC0xLjI1IDAgNDcuNSkiPjxwYXRoIGZpbGw9IiMzZTcyMWQiIGQ9Ik0yOSAxMGMtOCAwLTgtNi04LTZ2MTFoLTRWNHMwIDYtOCA2Yy00IDAtNyAyLTcgMnMwLTkgOS05aDZzMC0yIDItMiAyIDIgMiAyaDZjOSAwIDkgOSA5IDlzLTMtMi03LTIiLz48cGF0aCBmaWxsPSIjZmZhYzMzIiBkPSJNMjIuMTI1IDkuMzM4Yy0uMzI4IDAtLjY1LjA5Ny0uOTI3LjI4M2wtMi4zMjMgMS41OC0yLjMyMi0xLjU3YTEuNjY3IDEuNjY3IDAgMCAwLTEuMzU4LS4yMiAxLjY1IDEuNjUgMCAwIDAtMS4wNi44NzZMMTIuOTEgMTIuOGwtMi43OTUtLjIwNWExLjY1NiAxLjY1NiAwIDAgMC0xLjc3IDEuNzY4bC4yIDIuOC0yLjUyMiAxLjIyNmExLjY1NCAxLjY1NCAwIDAgMC0uNjQ2IDIuNDFsMS41NzMgMi4zMy0xLjU3NCAyLjMyYTEuNjU3IDEuNjU3IDAgMCAwIC42NDcgMi40MmwyLjUyMyAxLjIyLS4yIDIuNzkzYy0uMDM1LjQ4LjE0Ljk1LjQ4IDEuMjg3LjMxLjMxMy43MzMuNDg2IDEuMTcuNDg2LjA0IDAgLjA4IDAgLjEyLS4wMDRsMi43OTctLjIgMS4yMjUgMi41MmExLjY2IDEuNjYgMCAwIDAgMS40OS45M2MuMzI3IDAgLjY1LS4wOTYuOTI4LS4yODNsMi4zMjItMS41NzVMMjEuMiAzNi42MmExLjY1MiAxLjY1MiAwIDAgMCAyLjQyLS42NDhsMS4yMy0yLjUyNSAyLjguMmExLjY2MiAxLjY2MiAwIDAgMCAxLjI5LS40OCAxLjY0IDEuNjQgMCAwIDAgLjQ4LTEuMjg4bC0uMjAyLTIuOCAyLjUyNy0xLjIzYTEuNjYgMS42NiAwIDAgMCAuNjQ4LTIuNDJsLTEuNTczLTIuMzIgMS41NzYtMi4zMmMuMjY4LS40LjM1LS44OTYuMjI1LTEuMzZhMS42NDcgMS42NDcgMCAwIDAtLjg3LTEuMDZsLTIuNTIzLTEuMjI1LjIwNi0yLjhhMS42NjYgMS42NjYgMCAwIDAtLjQ4LTEuMjg2IDEuNjcgMS42NyAwIDAgMC0xLjI4Ny0uNDhsLTIuOC4yLTEuMjI1LTIuNTI3YTEuNjQ0IDEuNjQ0IDAgMCAwLTEuMDYtLjg3NSAxLjU4OCAxLjU4OCAwIDAgMC0uNDMtLjA1NiIvPjxwYXRoIGZpbGw9IiM3MzI3MDAiIGQ9Ik0yNiAyM2E3IDcgMCAxIDEtMTQgMCA3IDcgMCAwIDEgMTQgMCIvPjwvZz48L3N2Zz4nfSwxNzM3ODAoYSl7CmEuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0Ny41IDQ3LjUiPjxnIHRyYW5zZm9ybT0ibWF0cml4KDEuMjUgMCAwIC0xLjI1IDAgNDcuNSkiPjxwYXRoIGZpbGw9IiNkOTllODIiIGQ9Ik0zNiAxOWMwLTkuMzktNy42MS0xNy0xNy0xN1MyIDkuNjEgMiAxOXM3LjYxIDE3IDE3IDE3IDE3LTcuNjEgMTctMTciLz48cGF0aCBmaWxsPSIjOGE0YjM4IiBkPSJNMjMuNjM4IDIwLjA1M2EyLjI0NSAyLjI0NSAwIDEgMCAxLjM4Ni00LjI3Yy0xLjE4LS4zODUtMy44Ny0uMjAyLTQuMjU1Ljk3Ny0uMzkgMS4xOCAxLjY4IDIuOTEgMi44NiAzLjI5M204LjU3LjY3MmExLjA3IDEuMDcgMCAwIDAtMS42NCAxLjM3N2MuMzguNDUgMS41MSAxLjA1NyAxLjk2LjY3Ny40NS0uMzguMDUtMS42MS0uMzMtMi4wNm0tMjIgN2ExLjA3IDEuMDcgMCAwIDAtMS42MyAxLjM4Yy4zOC40NSAxLjUxIDEuMDUgMS45NjIuNjcuNDUzLS4zOC4wNTMtMS42MDctLjMyOC0yLjA2bTEyLjA5MyAxLjlhMS42MDcgMS42MDcgMCAxIDAgMS43MzIgMi43MWMuNzUtLjQ4IDEuODctMi4wNSAxLjM5LTIuOC0uNDgtLjc1LTIuMzc1LS4zOS0zLjEyNC4wOW0tNy45Mi02LjIyYTIuMTQ1IDIuMTQ1IDAgMSAwIDMuODcgMS44NTdjLjUxMy0xLjA3LjY4LTMuNjQzLS4zODctNC4xNTQtMS4wNy0uNTE0LTIuOTcgMS4yMjctMy40OCAyLjNNMTUuNCA5LjNhMS45MiAxLjkyIDAgMCAwIDIuNjcuNDkyIDEuOTIzIDEuOTIzIDAgMCAwIC40OS0yLjY3NWMtLjYtLjg3NS0yLjUyNi0yLjE0OC0zLjQtMS41NDUtLjg3My42MDQtLjM2NCAyLjg1NC4yNCAzLjcyN20xMC4wMTMuNEExLjQ3MiAxLjQ3MiAwIDEgMCAyNyAxMi4xOWMuNjg0LS40MzggMS43MTQtMS44NzcgMS4yNzUtMi41NjItLjQzOC0uNjg4LTIuMTc2LS4zNi0yLjg2Mi4wOE02LjUzNiAxOC41OGEyLjA3IDIuMDcgMCAxIDAgMy4wODMtMi43NmMtLjc3LS44NTQtMy0xLjk1NC0zLjg1LTEuMTktLjg2Ljc2My0uMDEgMy4xLjc2IDMuOTUiLz48L2c+PC9zdmc+J30sNjIzMTIyKGEpe2EuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0Ny41IDQ3LjUiPjxnIHRyYW5zZm9ybT0ibWF0cml4KDEuMjUgMCAwIC0xLjI1IDAgNDcuNSkiPjxwYXRoIGZpbGw9IiM4ODk5YTYiIGQ9Ik0yMCAxNi43NDVzMTEuNDU4IDExLjA0IDEyLjU4MyAxMi4wMDVjMS4xMjUuOTY0LS43MDggMi4yNS0yLjk1NyAyLjI1SDcuMTNjLTEuMTI2IDAtNC40ODQtLjczLTIuNzk3LTIuNDE3QzUuNTM3IDI3LjM4IDE3IDE2Ljc0NSAxNyAxNi43NDVWNi42MjJzLTQuNTg0LTIuMzQtNS40OTgtMi44ODNjLS45ODQtLjU3LS4zMy0xLjQ3LjA2My0xLjYyLjY1Ny0uMjYgMi4yNTQtMS4xIDYuNzgtMS4xIDQuNjQgMCA2LjIwMy45MSA2Ljc2NSAxLjEuMjE3LjA3IDEuMzQ3LjkzLjAxIDEuNzJDMjIuNzQ0IDUuMjUgMjAgNi42MiAyMCA2LjYydjEwLjEyM3oiLz48cGF0aCBmaWxsPSIjY2NkNmRkIiBkPSJNMzMgMjkuNTU4YzAtMS42Mi02LjU0Ny0yLjkzNS0xNC42MjMtMi45MzVTMy43NTQgMjcuOTM3IDMuNzU0IDI5LjU1OGMwIDEuNjIyIDYuNTQ3IDIuOTM1IDE0LjYyMyAyLjkzNVMzMyAzMS4xOCAzMyAyOS41NTgiLz48cGF0aCBmaWxsPSIjY2NkNmRkIiBkPSJNNS40NTggMjkuNDE2YzEuMjY1LTEuMjMyIDguNTM4LTcuMjM1IDExLjctOS44MzUuOS0uNzQgMi4xMzMtLjYyIDIuOC0uMTIuNjY4LjUgMTEuMTY4IDkuNTggMTEuMTY4IDkuNThsLTI1LjY2OC4zOHoiLz48L2c+PGcgdHJhbnNmb3JtPSJtYXRyaXgoMS4yNSAwIDAgLTEuMjUgMCA0Ny41KSI+PHBhdGggZmlsbD0iIzY2MjExMyIgZD0iTTE3Ljg2OCAyMC40NjhjLS4yMzcuMTI1LS4wNS44LjI1IDEuMzI4bDcuNDQ3IDE0LjUxOGExLjEgMS4xIDAgMCAwIDEuOTE0LTEuMDgybC04LjY3LTEzLjg4NWMtLjE1LS4yNjQtLjY4LTEuMDItLjk1LS44OCIvPjxwYXRoIGZpbGw9IiM1YzkxM2IiIGQ9Ik0yMi43NDUgMjkuMTQ1YzEuMTMzLS42NCAxLjk5Ni0yLjYzNiAxLjItNC4wNDYtLjc5Ny0xLjQyLTIuOTU0LTEuNy00LjA4Ny0xLjA2LTEuMTMyLjY0LTIuMDY1IDIuNTEtMS4yIDQuMDQuODY2IDEuNTMgMi45NTQgMS43IDQuMDg3IDEuMDYiLz48cGF0aCBmaWxsPSIjZmZmIiBkPSJNMTcuNzk3IDI2LjI0Yy0zLjc3NSAwLTcuMzYuNDktMTAuNzM3IDEuNDdsLS4xMy4wMzdhMS4wMDIgMS4wMDIgMCAwIDAgLjU1NiAxLjkyMmwuMTMyLS4wNGM2LjUzMy0xLjkgMTMuOTQzLTEuODYgMjIuMDE4LjEzYS45OTguOTk4IDAgMCAwIDEuMjEtLjczIDEgMSAwIDAgMC0uNzMyLTEuMjFjLTQuMjg4LTEuMDYtOC40MDMtMS41OC0xMi4zMTctMS41OCIvPjwvZz48L3N2Zz4nfSw3ODQxNjQoYSl7CmEuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0NSA0NSI+PGcgdHJhbnNmb3JtPSJtYXRyaXgoMS4yNSAwIDAgLTEuMjUgMCA0NSkiPjxwYXRoIGZpbGw9IiNlMWU4ZWQiIGQ9Ik03IDIyLjVhMi41IDIuNSAwIDEgMC01IDAgMi41IDIuNSAwIDAgMCA1IDBNMzQgMjIuNWEyLjUgMi41IDAgMSAwLTUgMCAyLjUgMi41IDAgMCAwIDUgMCIvPjxwYXRoIGZpbGw9IiNlMWU4ZWQiIGQ9Ik0zMS41OTQgMTlINC40NXY0aDI3LjE0NHYtNHoiLz48cGF0aCBmaWxsPSIjZTFlOGVkIiBkPSJNMzEgMjFINC44NTV2NGgyNi43N0wzMSAyMXoiLz48cGF0aCBmaWxsPSIjZmZkOTgzIiBkPSJNMTIgMjYuNWEzLjUgMy41IDAgMSAwLTcgMCAzLjUgMy41IDAgMCAwIDcgMCIvPjxwYXRoIGZpbGw9IiNmZmQ5ODMiIGQ9Ik0xNCAyOS41YTIuNSAyLjUgMCAxIDAtNSAwIDIuNSAyLjUgMCAwIDAgNSAwIi8+PHBhdGggZmlsbD0iI2ZmZDk4MyIgZD0iTTE2IDI3LjVhMi41IDIuNSAwIDEgMC01IDAgMi41IDIuNSAwIDAgMCA1IDAiLz48cGF0aCBmaWxsPSIjZmZkOTgzIiBkPSJNMjAgMjkuNWEyLjUgMi41IDAgMSAwLTUgMCAyLjUgMi41IDAgMCAwIDUgMCIvPjxwYXRoIGZpbGw9IiNmZmQ5ODMiIGQ9Ik0yMCAyNy41YTIuNSAyLjUgMCAxIDAtNSAwIDIuNSAyLjUgMCAwIDAgNSAwTTI2IDMyLjVhMi41IDIuNSAwIDEgMC01IDAgMi41IDIuNSAwIDAgMCA1IDAiLz48cGF0aCBmaWxsPSIjZmZkOTgzIiBkPSJNMjYgMjcuNWEyLjUgMi41IDAgMSAwLTUgMCAyLjUgMi41IDAgMCAwIDUgMCIvPjxwYXRoIGZpbGw9IiNmZmQ5ODMiIGQ9Ik0yNyAyNC41YTIuNSAyLjUgMCAxIDAtNSAwIDIuNSAyLjUgMCAwIDAgNSAwIi8+PHBhdGggZmlsbD0iI2ZmZDk4MyIgZD0iTTIzIDI0LjVhMi41IDIuNSAwIDEgMC01IDAgMi41IDIuNSAwIDAgMCA1IDAiLz48cGF0aCBmaWxsPSIjZmZkOTgzIiBkPSJNMjAgMjMuNWEyLjUgMi41IDAgMSAwLTUgMCAyLjUgMi41IDAgMCAwIDUgMCIvPjxwYXRoIGZpbGw9IiNmZmQ5ODMiIGQ9Ik0xOCAyNC41YTIuNSAyLjUgMCAxIDAtNSAwIDIuNSAyLjUgMCAwIDAgNSAwIi8+PHBhdGggZmlsbD0iI2ZmZDk4MyIgZD0iTTE2IDI0LjVhMi41IDIuNSAwIDEgMC01IDAgMi41IDIuNSAwIDAgMCA1IDAiLz48cGF0aCBmaWxsPSIjZmZkOTgzIiBkPSJNMTQgMjMuNWEyLjUgMi41IDAgMSAwLTUgMCAyLjUgMi41IDAgMCAwIDUgMCIvPjxwYXRoIGZpbGw9IiNmZmQ5ODMiIGQ9Ik0xMSAyMy41YTIuNSAyLjUgMCAxIDAtNSAwIDIuNSAyLjUgMCAwIDAgNSAwTTMwIDIyLjVhMi41IDIuNSAwIDEgMC01IDAgMi41IDIuNSAwIDAgMCA1IDBNMjggMjguNWEyLjUgMi41IDAgMSAwLTUgMCAyLjUgMi41IDAgMCAwIDUgMCIvPjxwYXRoIGZpbGw9IiNmZmQ5ODMiIGQ9Ik0zMSAyNS41YTIuNSAyLjUgMCAxIDAtNSAwIDIuNSAyLjUgMCAwIDAgNSAwTTI0IDI5LjVhMi41IDIuNSAwIDEgMC01IDAgMi41IDIuNSAwIDAgMCA1IDAiLz48cGF0aCBmaWxsPSIjZmZkOTgzIiBkPSJNMjMgMjcuNWEyLjUgMi41IDAgMSAwLTUgMCAyLjUgMi41IDAgMCAwIDUgME0yOCAzMS41YTEuNSAxLjUgMCAxIDAtMyAwIDEuNSAxLjUgMCAwIDAgMyAwTTMxIDI4LjVhMS41IDEuNSAwIDEgMC0zIDAgMS41IDEuNSAwIDAgMCAzIDBNMzIgMjMuNWExLjUgMS41IDAgMSAwLTMgMCAxLjUgMS41IDAgMCAwIDMgME03IDIzLjVhMS41IDEuNSAwIDEgMC0zIDAgMS41IDEuNSAwIDAgMCAzIDAiLz48cGF0aCBmaWxsPSIjZmZkOTgzIiBkPSJNMjkgMjkuNWExLjUgMS41IDAgMSAwLTMgMCAxLjUgMS41IDAgMCAwIDMgMCIvPjxwYXRoIGZpbGw9IiNmZmFjMzMiIGQ9Ik0yNiAzMC41YTEuNSAxLjUgMCAxIDAtMyAwIDEuNSAxLjUgMCAwIDAgMyAwTTEyIDI1LjVhMS41IDEuNSAwIDEgMC0zIDAgMS41IDEuNSAwIDAgMCAzIDAiLz48cGF0aCBmaWxsPSIjZmZhYzMzIiBkPSJNMTQgMjQuNWExLjUgMS41IDAgMSAwLTMgMCAxLjUgMS41IDAgMCAwIDMgMCIvPjxwYXRoIGZpbGw9IiNmZmFjMzMiIGQ9Ik0xMiAyMy41YTEuNSAxLjUgMCAxIDAtMyAwIDEuNSAxLjUgMCAwIDAgMyAwIi8+PHBhdGggZmlsbD0iI2ZmYWMzMyIgZD0iTTExIDIzLjVhMS41IDEuNSAwIDEgMC0zIDAgMS41IDEuNSAwIDAgMCAzIDAiLz48cGF0aCBmaWxsPSIjZmZhYzMzIiBkPSJNOSAyMy41YTEuNSAxLjUgMCAxIDAtMyAwIDEuNSAxLjUgMCAwIDAgMyAwTTE2IDIyLjVhMS41IDEuNSAwIDEgMC0zIDAgMS41IDEuNSAwIDAgMCAzIDBNMjAgMjYuNWExLjUgMS41IDAgMSAwLTMgMCAxLjUgMS41IDAgMCAwIDMgME0zMSAyMy41YTEuNSAxLjUgMCAxIDAtMyAwIDEuNSAxLjUgMCAwIDAgMyAwIi8+PHBhdGggZmlsbD0iI2ZmYWMzMyIgZD0iTTE5IDI0LjVhMS41IDEuNSAwIDEgMC0zIDAgMS41IDEuNSAwIDAgMCAzIDAiLz48cGF0aCBmaWxsPSIjZmZhYzMzIiBkPSJNMTggMjIuNWExLjUgMS41IDAgMSAwLTMgMCAxLjUgMS41IDAgMCAwIDMgME0yOSAyOGExIDEgMCAxIDAtMiAwIDEgMSAwIDAgMCAyIDBNMjkgMjNhMSAxIDAgMSAwLTIgMCAxIDEgMCAwIDAgMiAwTTEzIDI5YTEgMSAwIDEgMC0yIDAgMSAxIDAgMCAwIDIgME0yNiAyNWEyIDIgMCAxIDAtNCAwIDIgMiAwIDAgMCA0IDAiLz48cGF0aCBmaWxsPSIjZmZhYzMzIiBkPSJNMjMgMjRhMiAyIDAgMSAwLTQgMCAyIDIgMCAwIDAgNCAwIi8+PHBhdGggZmlsbD0iI2ZmYWMzMyIgZD0iTTI2IDIyYTIgMiAwIDEgMC00IDAgMiAyIDAgMCAwIDQgME0yMyAyN2EyIDIgMCAxIDAtNCAwIDIgMiAwIDAgMCA0IDAiLz48cGF0aCBmaWxsPSIjZmZkOTgzIiBkPSJNMjIgMjUuNWExLjUgMS41IDAgMSAwLTMgMCAxLjUgMS41IDAgMCAwIDMgME0xMyAyMy41YTEuNSAxLjUgMCAxIDAtMyAwIDEuNSAxLjUgMCAwIDAgMyAwIi8+PHBhdGggZmlsbD0iI2ZmZDk4MyIgZD0iTTExIDIyLjVhMS41IDEuNSAwIDEgMC0zIDAgMS41IDEuNSAwIDAgMCAzIDBNMjAgMjMuNWExLjUgMS41IDAgMSAwLTMgMCAxLjUgMS41IDAgMCAwIDMgME0yMyAyMy41YTEuNSAxLjUgMCAxIDAtMyAwIDEuNSAxLjUgMCAwIDAgMyAwIi8+PHBhdGggZmlsbD0iI2ZmZDk4MyIgZD0iTTIyIDIzLjVhMS41IDEuNSAwIDEgMC0zIDAgMS41IDEuNSAwIDAgMCAzIDAiLz48cGF0aCBmaWxsPSIjZTFlOGVkIiBkPSJNMzAuMTgyIDQuOTk2QzMwLjA4MiAyLjc5OCAyOC4yMDIgMSAyNiAxSDEwQzcuOCAxIDUuOTIgMi43OTggNS44MiA0Ljk5Nkw1LjE4IDE5LjAwNEEzLjc5NyAzLjc5NyAwIDAgMCA5IDIzaDE4YzIuMiAwIDMuOTE4LTEuNzk4IDMuODItMy45OTZMMzAuMTggNC45OTZ6Ii8+PC9nPjxnIHRyYW5zZm9ybT0ibWF0cml4KDEuMjUgMCAwIC0xLjI1IDAgNDUpIj48cGF0aCBmaWxsPSIjZGEyZjQ3IiBkPSJNMTcuNjY4IDIwaDFjLS41IDAtMiAuNjU3LTItMVYxaDN2MThjMCAxLjY1Ny0xLjUgMS0yIDFNMjMuNjY4IDIwaDFjLS41IDAtMiAuNjU3LTItMVYxaDN2MThjMCAxLjY1Ny0xLjUgMS0yIDFNMjkuNjY4IDIwaDFjLS41IDAtMiAuNjU3LTItMVYxaDN2MThjMCAxLjY1Ny0xLjUgMS0yIDFNMTEuNjY4IDIwaDFjLS41IDAtMiAuNjU3LTItMVYxaDN2MThjMCAxLjY1Ny0xLjUgMS0yIDFNNS42NjggMjBoMWMtLjUgMC0yIC42NTctMi0xVjFoM3YxOGMwIDEuNjU3LTEuNSAxLTIgMSIvPjxnIG9wYWNpdHk9Ii42Ij48cGF0aCBmaWxsPSIjOTlhYWI1IiBkPSJNMzEgMTdINXYyaDI2di0yeiIvPjwvZz48L2c+PGcgdHJhbnNmb3JtPSJtYXRyaXgoMS4yNSAwIDAgLTEuMjUgMCA0NSkiPjxwYXRoIGZpbGw9IiNlMWU4ZWQiIGQ9Ik0zNCAyMWMwLTEuMTA0LTEuMTItMi0yLjUtMnMtMi41Ljg5Ni0yLjUgMmMwIDEuMTA1IDEuMTIgMiAyLjUgMnMyLjUtLjg5NSAyLjUtMk03IDIxYzAtMS4xMDQtMS4xMi0yLTIuNS0yUzIgMTkuODk2IDIgMjFjMCAxLjEwNSAxLjEyIDIgMi41IDJTNyAyMi4xMDUgNyAyMSIvPjxwYXRoIGZpbGw9IiNlMWU4ZWQiIGQ9Ik0zMS41OTQgMTlINC40NXY0aDI3LjE0NHYtNHoiLz48cGF0aCBmaWxsPSIjZmZmIiBkPSJNMzIgMjJhMSAxIDAgMCAwLTEtMUg1YTEgMSAwIDAgMCAwIDJoMjZhMSAxIDAgMCAwIDEtMSIvPjxwYXRoIGZpbGw9IiNlMWU4ZWQiIGQ9Ik0zMy4yOCAyNC4yNWMuMjgyLS4yOTcgMi4xNDItMi40MjIuMDMyLTQuNTk0LS4zNi4xMS0uNzUgMy44NzUtLjU2MiA0LjE0LjE4Ny4yNjcuNTMuNDU0LjUzLjQ1NE0yLjczNyAyNC4yNWMtLjI4LS4yOTctMi4yMi0yLjM5LS4xMTItNC41NjIuMzYuMTEuODMgMy44NDMuNjQzIDQuMTEtLjE4Ny4yNjUtLjUzLjQ1Mi0uNTMuNDUyIi8+PC9nPjwvc3ZnPicKfSw2MDU3NjYoYSl7YS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDQ3LjUgNDcuNSI+PGcgdHJhbnNmb3JtPSJtYXRyaXgoMS4yNSAwIDAgLTEuMjUgMCA0Ny41KSI+PHBhdGggZmlsbD0iI2NjZDZkZCIgZD0iTTM3IDE5YzAtOS45NC04LjA2LTE4LTE4LTE4UzEgOS4wNiAxIDE5czguMDYgMTggMTggMTggMTgtOC4wNiAxOC0xOCIvPjxwYXRoIGZpbGw9IiMzYjg4YzMiIGQ9Ik0zMyAxOWMwLTcuNzMyLTYuMjY4LTE0LTE0LTE0UzUgMTEuMjY4IDUgMTlzNi4yNjggMTQgMTQgMTQgMTQtNi4yNjggMTQtMTQiLz48cGF0aCBmaWxsPSIjZGQyZTQ0IiBkPSJNMjkgMTljMC01LjUyMi00LjQ3OC0xMC0xMC0xMC01LjUyMyAwLTEwIDQuNDc4LTEwIDEwIDAgNS41MjMgNC40NzcgMTAgMTAgMTAgNS41MjIgMCAxMC00LjQ3NyAxMC0xMCIvPjxwYXRoIGZpbGw9IiNmZmFjMzMiIGQ9Ik0yNSAxOWE2IDYgMCAxIDAtMTIuMDAyLjAwMkE2IDYgMCAwIDAgMjUgMTkiLz48cGF0aCBkPSJNMzUuODY0IDcuOGMtLjQyLS4zMDUtMS4yNTctLjU5LTEuOTM0LS41OS0xLjk2NCAwLTQuNjU0LjcxNi02LjMzNCAyLjM4NWwtMi45NTQgMy44NzJjLS4yNzQuMjc1LS4zNTcuNTc1LS4yMS45MzIuMTQ4LjM1LS43My42LS4zNDIuNmg1LjA1N2MxLjg2NyAwIDQuMzA4LTEuMjYgNS45MjUtMy4wMmwuMzctLjM1Yy43NzQtLjg1IDEuMTg0LTEuNjMgMS4xODMtMi4zOSAwLS42Mi0uMjctMS4wOS0uNzYtMS40NSIvPjxwYXRoIGQ9Ik0yOS4zMDUgMS43OTZjLS43NyAwLTEuNjMyLjQxNy0yLjQ5IDEuMjA0bC0uNDkuMzc4QzI0LjUzNSA1LjAyNCAyMyA3LjUwOCAyMyA5LjQxdjUuMTY0YzAgLjM5Ni41LS41MTMuODY2LS4zNjMuMzYzLjE1LjkxNS4wNyAxLjE5NS0uMjFsMy4xNy0zLjEyYzEuNy0xLjcxIDMuMDYtNC42MiAzLjA2LTYuNjIgMC0uNjktLjE0LTEuMjUtLjQ1LTEuNjhhMS44MzggMS44MzggMCAwIDAtMS41My0uNzciLz48cGF0aCBmaWxsPSIjYzE2OTRmIiBkPSJNMzIuMzQ1IDUuMDM2Yy0uMjU2IDAtLjQ4Ny4xMjItLjY4My4zMTdsLTE0IDE0YTEgMSAwIDAgMCAxLjQxNCAxLjQxNGwxNC0xNGMuMzktLjM5LjM3OC0xLjAzNi0uMDEyLTEuNDI2YTEuMDM2IDEuMDM2IDAgMCAwLS43Mi0uMyIvPjwvZz48L3N2Zz4nfSwxNzM3OTMoYSl7YS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDQ3LjUgNDcuNSI+PGcgdHJhbnNmb3JtPSJtYXRyaXgoMS4yNSAwIDAgLTEuMjUgMCA0Ny41KSI+PHBhdGggZmlsbD0iIzI5MmYzMyIgZD0iTTM3IDEwYTQgNCAwIDAgMC00LTRINWE0IDQgMCAwIDAtNCA0djE4YTQgNCAwIDAgMCA0IDRoMjhhNCA0IDAgMCAwIDQtNFYxMHoiLz48cGF0aCBmaWxsPSIjY2NkNmRkIiBkPSJNMTIgMTNjMC0yLjIxLS43OS0zLTMtM0g1Yy0yLjIxIDAtMyAuNzktMyAzdjEyYzAgMi4yMS43OSAzIDMgM2g0YzIuMjEgMCAzLS43OSAzLTNWMTN6bTEyIDBjMC0yLjIxLS43OS0zLTMtM2gtNGMtMi4yMSAwLTMgLjc5LTMgM3YxMmMwIDIuMjEuNzkgMyAzIDNoNGMyLjIxIDAgMy0uNzkgMy0zVjEzem0xMiAwYzAtMi4yMS0uNzktMy0zLTNoLTRjLTIuMjEgMC0zIC43OS0zIDN2MTJjMCAyLjIxLjc5IDMgMyAzaDRjMi4yMSAwIDMtLjc5IDMtM1YxM3oiLz48cGF0aCBmaWxsPSIjZTFlOGVkIiBkPSJNMTIgMTRIMnYxMGgxMFYxNHptMTIgMEgxNHYxMGgxMFYxNHptMTIgMEgyNnYxMGgxMFYxNHoiLz48cGF0aCBmaWxsPSIjYmUxOTMxIiBkPSJNMzEuNzk1IDIxLjMxNUgyOC45OGMtLjU5NSAwLS44MTUuMzg1LS44MTUuNzYgMCAuMzg0LjIxLjc1OC44MTQuNzU4aDMuOThjLjU2IDAgLjc5LS41MDYuNzktLjc5MiAwLS4yMi0uMTItLjQ1LS4yNi0uNzJsLTIuNzMtNS41NGMtLjMxLS42MS0uNDMtLjgzLS45My0uODMtLjYxIDAtLjkxLjQ3LS45MS43OCAwIC4xNC4wMy4yMy4xMS4zOWwyLjc1IDUuMjJ6bS0xMiAwSDE2Ljk4Yy0uNTk1IDAtLjgxNS4zODUtLjgxNS43NiAwIC4zODQuMjEuNzU4LjgxNC43NThoMy45OGMuNTYgMCAuNzktLjUwNi43OS0uNzkyIDAtLjIyLS4xMi0uNDUtLjI1LS43MmwtMi43My01LjU0Yy0uMzEtLjYxLS40My0uODMtLjkzLS44My0uNjEgMC0uOTIuNDctLjkyLjc4IDAgLjE0LjAzLjIzLjExLjM5bDIuNzUgNS4yMnptLTEyIDBINC45OGMtLjU5NSAwLS44MTUuMzg1LS44MTUuNzYgMCAuMzg0LjIxLjc1OC44MTQuNzU4aDMuOThjLjU2IDAgLjc5LS41MDYuNzktLjc5MiAwLS4yMi0uMTItLjQ1LS4yNS0uNzJsLTIuNzMtNS41NWMtLjMxLS42MS0uNDMtLjgzLS45My0uODMtLjYxIDAtLjkyLjQ3LS45Mi43OCAwIC4xNC4wMy4yMy4xMS4zOWwyLjc1IDUuMjJ6Ii8+PHBhdGggZmlsbD0iIzkyNjZjYyIgZD0iTTQuMDYgMjhhMi4wOCAyLjA4IDAgMCAxLS4wNi0uNUM0IDI2LjEyIDUuMzQ0IDI1IDcgMjVjMS42NTcgMCAzIDEuMTIgMyAyLjUgMCAuMTctLjAyLjMzOC0uMDYuNUg0LjA2em0xMiAwYTIuMDggMi4wOCAwIDAgMS0uMDYtLjVjMC0xLjM4IDEuMzQ0LTIuNSAzLTIuNSAxLjY1NyAwIDMgMS4xMiAzIDIuNSAwIC4xNy0uMDIuMzM4LS4wNi41aC01Ljg4em0xMiAwYTIuMTkzIDIuMTkzIDAgMCAxLS4wNi0uNWMwLTEuMzggMS4zNDQtMi41IDMtMi41IDEuNjU3IDAgMyAxLjEyIDMgMi41IDAgLjE3LS4wMjIuMzM4LS4wNi41aC01Ljg4eiIvPjxwYXRoIGZpbGw9IiNmNDkwMGMiIGQ9Ik05LjgxNiAxMGMuMTEuMTU3LjE4NC4zMjQuMTg0LjUgMCAuODI4LTEuMzQ0IDEuNS0zIDEuNS0xLjY1NyAwLTMtLjY3Mi0zLTEuNSAwLS4xNzYuMDcyLS4zNDMuMTgzLS41aDUuNjMzem0xMiAwYy4xMS4xNTcuMTg0LjMyNC4xODQuNSAwIC44MjgtMS4zNDQgMS41LTMgMS41LTEuNjU3IDAtMy0uNjcyLTMtMS41IDAtLjE3Ni4wNzItLjM0My4xODMtLjVoNS42MzN6bTEyIDBjLjExLjE1Ny4xODQuMzI0LjE4NC41IDAgLjgyOC0xLjM0NCAxLjUtMyAxLjUtMS42NTcgMC0zLS42NzItMy0xLjUgMC0uMTc2LjA3Mi0uMzQzLjE4My0uNWg1LjYzM3oiLz48L2c+PC9zdmc+J30sNzA2MTY0KGEpewphLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgNDcuNSA0Ny41Ij48ZyB0cmFuc2Zvcm09Im1hdHJpeCgxLjI1IDAgMCAtMS4yNSAwIDQ3LjUpIj48cGF0aCBmaWxsPSIjMjkyZjMzIiBkPSJNMzcgMTRhMiAyIDAgMCAwLTItMkg1YTIgMiAwIDAgMC0yIDJ2MjBhMiAyIDAgMCAwIDIgMmgzMGEyIDIgMCAwIDAgMi0yVjE0eiIvPjxwYXRoIGZpbGw9IiNlMWU4ZWQiIGQ9Ik0xMyAyOEg0djhoOXYtOHptOC04aC04djhoOHYtOHptOCA4aC04djhoOHYtOHpNMTMgMTJINXY4aDh2LTh6bTE2IDBoLTh2OGg4di04em04IDhoLTh2OGg4di04eiIvPjxwYXRoIGZpbGw9IiM1NTM3ODgiIGQ9Ik01IDNhMiAyIDAgMCAwLTQgMHYzMmEyIDIgMCAwIDAgNCAwVjN6Ii8+PC9nPjwvc3ZnPid9LDIwNTg1MChhKXthLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgNDcuNSA0Ny41Ij48ZyB0cmFuc2Zvcm09Im1hdHJpeCgxLjI1IDAgMCAtMS4yNSAwIDQ3LjUpIj48cGF0aCBmaWxsPSIjZDk5ZTgyIiBkPSJNMzQuMzA1IDE5LjY2NHMxLjEzMiAxLjY1LS41MiAyLjc4Yy0xLjY0OCAxLjEzMi0yLjc4LS41MTgtMi43OC0uNTE4bC01LjI1LTcuNjU4Yy0uMTguMzAyLS4zOC42LS42Ljg5NGw3LjI5IDEwLjYzczEuMTMgMS42NDgtLjUyIDIuNzhjLTEuNjUgMS4xMy0yLjc4LS41Mi0yLjc4LS41MmwtNi44NTYtOS45OTZjLS4yNi4yMS0uNTIuNDE3LS43OS42MjJsNy45NCAxMS41OXMxLjEzIDEuNjUtLjUyIDIuNzhjLTEuNjUgMS4xMzItMi43OC0uNTE4LTIuNzgtLjUxOEwxOC4yIDIwLjk0Yy0uMjkuMTgtLjU4LjMzNi0uODcuNWw3LjQyOCAxMC44M3MxLjEzIDEuNjUtLjUyIDIuNzhjLTEuNjQ4IDEuMTMzLTIuNzgtLjUxNy0yLjc4LS41MTdMMTMuNjEgMjMuMDhsLS42My0uOTE4LS41NjUtLjgyNWM0Ljk0OC0zLjM5MyA1LjQyLTkuNzggMi41OTItMTMuOTAyLS41NjYtLjgyNS0xLjM5LS4yNi0xLjM5LS4yNiAzLjM5MyA0Ljk1IDIuMzU2IDEwLjUxLTIuNTkzIDEzLjkwM2wxLjQ2MiA3LjMwMnMuNTQ1IDEuOTI1LTEuMzggMi40N2MtMS45MjMuNTQ1LTIuNDY4LTEuMzgtMi40NjgtMS4zOGwtMS42ODUtNS4wMDNjLS42NjgtMS45ODQtMS4zOC0zLjk2LTIuMzItNS44My0yLjY1Ny01LjI4LTEuMDctMTEuODQzIDMuOTQtMTUuMjhDMTQuMDQtLjM4OCAyMS41MSAxLjAwNCAyNS4yNTggNi40NjdhMTEgMTEgMCAwIDEgLjUyMi44NThsLjA0My0uMDMgOC40ODIgMTIuMzd6Ii8+PHBhdGggZmlsbD0iIzc3YjI1NSIgZD0iTTMuMDQyIDMwaC0yQTYuOTY2IDYuOTY2IDAgMCAwIDggMzYuOTU4di0yQTQuOTY0IDQuOTY0IDAgMCAxIDMuMDQyIDMwIi8+PHBhdGggZmlsbD0iIzc3YjI1NSIgZD0iTTUgMjVIM2MwIDUuNTE0IDQuNDg2IDEwIDEwIDEwdi0yYy00LjQxIDAtOC0zLjU5LTgtOE0zMCAxdjJjMyAwIDUgMiA1IDVoMmMwLTQtMy03LTctNyIvPjxwYXRoIGZpbGw9IiM3N2IyNTUiIGQ9Ik0yNSAyLjk1OHYyYzQgMCA4LjA0MiA0LjA0MiA4LjA0MiA4LjA0MmgyQzM1LjA0MiA3IDMxIDIuOTU4IDI1IDIuOTU4Ii8+PC9nPjwvc3ZnPid9LDUyNDkwNyhhKXthLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgNDcuNSA0Ny41Ij48ZyB0cmFuc2Zvcm09Im1hdHJpeCgxLjI1IDAgMCAtMS4yNSAwIDQ3LjUpIj48cGF0aCBmaWxsPSIjYzE2OTRmIiBkPSJNMjUuOTk3IDguNWEyLjUgMi41IDAgMCAwLTIuNDU3IDIuMDUzbC00IDIyYTIuNSAyLjUgMCAwIDAgMi4wMTMgMi45MDYgMi40OTYgMi40OTYgMCAwIDAgMi45MDctMi4wMmw0LTIyYTIuNSAyLjUgMCAwIDAtMi40NjMtMi45NCIvPjxwYXRoIGZpbGw9IiNkOTllODIiIGQ9Ik0yOS4zNzUgMTIuMjM1Yy4yNC43NDUuMTMgMS41OS0uMzc1IDIuMjY1LS4wNi4wNzgtLjQ0LjU4NS0xLjAxNyAxLjM0LjAwNS4wNS4wMTcuMTEyLjAxNy4xNiAwIC40NTgtMS45MTMgMi42MjMtMy43NCA0LjU4Ni0xLjU4NyAxLjk2NC0zLjI2IDMuOTUtNC40OTIgNS4xOGwtMS4yNzQgMS4yNzYtMS42MTItLjgwN2MtNS43MTgtMi44NTgtOC42NDctMy44NTUtOC42NzMtMy44NjRhMi41IDIuNSAwIDAgMSAxLjU4LTQuNzRjLjExLjA0IDIuNjYuOSA3LjY1IDMuMzEgMS4wOS0xLjIzIDIuMzctMi43OSAzLjU3LTQuMjlsLjctMS4xN2EuNzg0Ljc4NCAwIDAgMC0uMDYtLjg5bC0zLjUyLTQuMzlhLjc4Ny43ODcgMCAwIDAtLjM3LS4yNWwtMi41My0uODQyYS43ODYuNzg2IDAgMCAwLS41IDBsLTQuNzI2IDEuNTdjLS42NzYgMi4wOC0uNTMzIDQuMS0uNTMgNC4xMjVhMi41IDIuNSAwIDAgMS0yLjI3IDIuNzAzQTIuNDk2IDIuNDk2IDAgMCAxIDQuNSAxNS4yM2MtLjAxMy0uMjY4LS41LTYuNDMgMy4zMi0xMC42QzEwLjAzIDIuMjIgMTMuMTE4IDEgMTcgMWMuNjYgMCAxLjI4My0uMDEgMS44Ny0uMDJhODEuOTQgODEuOTQgMCAwIDEgMS41NC0uMDJjMi43NjQgMCA1LjAwNC4yMyA2LjczOCAxLjk0IDEuNjUgMS42MjggMi4zNTQgNC4xOTcgMi4zNTQgOC41OTQgMCAuMjYtLjA1LjUwNi0uMTI1Ljc0MiIvPjxwYXRoIGZpbGw9IiNjMTY5NGYiIGQ9Ik0yOCAxNmExIDEgMCAwIDAtLjkxNC41OTRsLTQgOWExIDEgMCAwIDAgMS44MjguODEybDQtOUExIDEgMCAwIDAgMjggMTYiLz48cGF0aCBmaWxsPSIjZDk5ZTgyIiBkPSJNMjUuNzY2IDIuNjJsLTEuNTMgNC43NnMtLjA2OC0uMDEtLjE3Ni0uMDY3Yy4wMTguMDEgMS44Mi45OTUgMi40NiA2LjAwMy43NzYgNi4wNzUtLjc3NCA5LjYtLjc5IDkuNjM1bC0uMDkyLjI0LTMuNSAxMC4xMWEyLjUgMi41IDAgMCAwIDQuNzI1IDEuNjRsMy40NjctMTAuMDJjLjM3OC0uODgyIDIuMDM3LTUuMjggMS4xNS0xMi4yMjItMS4wNDItOC4xNy00Ljk0My05LjgyLTUuNzE0LTEwLjA3Ii8+PC9nPjwvc3ZnPid9LDg3NDAwMyhhKXsKYS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDQ3LjUgNDcuNSI+PGcgdHJhbnNmb3JtPSJtYXRyaXgoMS4yNSAwIDAgLTEuMjUgMCA0Ny41KSI+PHBhdGggZmlsbD0iI2UxZThlZCIgZD0iTTM3IDI2YTIgMiAwIDAgMS00IDBzLS4wMS0zLjI4NS0zLTMuODk0VjI1YzAgNi4wNzUtNC45MjUgMTEtMTEgMTFTOCAzMS4wNzUgOCAyNXYtMy4yMzdDMi43NzggMjAuMTkzIDEgMTMuNzcgMSAxMGEyIDIgMCAwIDEgNCAwcy4wMDIgMy41NCAzLjMzNiAzLjk1OEM4LjgzOCA5LjExOCA5Ljk1NCA0IDEyIDRoMWM0IDAgMy0yIDctMnMzIDIgNiAyIDIuMzk1LTIgNi0yYTMgMyAwIDAgMSAzIDNjMCAuNjc1LTIuMjc0IDQuOTk0LTMuNzU1IDkuMjY4QzM2Ljk4IDE1LjY1MiAzNyAyMi40MiAzNyAyNiIvPjxwYXRoIGZpbGw9IiMyOTJmMzMiIGQ9Ik0xNiAyNWEyIDIgMCAxIDAtNCAwIDIgMiAwIDAgMCA0IDBtMTIgMGE0IDQgMCAxIDAtOCAwIDQgNCAwIDAgMCA4IDAiLz48cGF0aCBmaWxsPSIjOWFhYWI0IiBkPSJNMjYgMjRhMiAyIDAgMSAwLTQgMCAyIDIgMCAwIDAgNCAwIi8+PHBhdGggZmlsbD0iIzI5MmYzMyIgZD0iTTIzLjE5MiAxNy41MWMyLjY1LTEuOTg4IDMuNTktNS4yMTIgMi4xLTcuMi0xLjQ5Mi0xLjk5LTQuODUtMS45OS03LjUgMC0yLjY1IDEuOTg3LTMuNTkgNS4yMS0yLjEgNy4yIDEuNDkgMS45ODggNC44NSAxLjk4NyA3LjUgMCIvPjwvZz48L3N2Zz4nfSw0MDMyMjcoYSl7YS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDQ3LjUgNDcuNSI+PGcgZmlsbD0iI2U3NWE3MCIgdHJhbnNmb3JtPSJtYXRyaXgoMS4yNSAwIDAgLTEuMjUgMCA0Ny41KSI+PHBhdGggZD0iTTE0LjU5IDEwLjQ4YTEuNSAxLjUgMCAwIDAgLjAzNCAxLjU5Nmw0LjM5NSA2LjY0Ni02IDUuMTRhMS41IDEuNSAwIDAgMC0uMzEgMS45MDhsNC4zIDcuMTc1YTkuNzc4IDkuNzc4IDAgMCAxLTYuMDQgMi4wOWMtNS40NSAwLTkuODY4LTQuNDItOS44NjgtOS44NyAwLS43Ny4wOTctMS41Mi4yNjUtMi4yNEMyLjc1IDE0LjQxMyAxMi4yMTUgNS40MyAxOSAyLjk2NWMuMDI2LjAxLjA1Mi4wMjMuMDc3LjAzM2wtNC40ODggNy40OHoiLz48cGF0aCBkPSJNMjcuMDE4IDM1LjAzNGMtMi43NjUgMC01LjI0OC0xLjE1LTcuMDM3LTIuOTgzbC00LjA0LTYuNzMgNi4wNC01LjE3YTEuNSAxLjUgMCAwIDAgLjI4LTEuOTY0bC00LjYwMy02Ljk3IDQuMTYtNi45MzNjNi4zNCAzLjUzIDEzLjYyMyAxMS4yNjMgMTQuODEgMTguNjUuMTcuNzIuMjY4IDEuNDY4LjI2OCAyLjI0IDAgNS40NS00LjQxNyA5Ljg2OC05Ljg2NiA5Ljg2OCIvPjwvZz48L3N2Zz4nfSwxOTQ3MzQoYSl7YS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDQ3LjUgNDcuNSI+PGcgdHJhbnNmb3JtPSJtYXRyaXgoMS4yNSAwIDAgLTEuMjUgMCA0Ny41KSI+PHBhdGggZmlsbD0iI2ZmZDk4MyIgZD0iTTMwIDI1Ljk0YzAtNi40NC01LTcuNDQtNS0xMy40NCAwLTMuMDk4LTMuMTIzLTMuMzYtNS41LTMuMzYtMi4wNTMgMC02LjU4Ni43OC02LjU4NiAzLjM2MiAwIDYtNC45MTQgNy00LjkxNCAxMy40MzggMCA2LjAzIDUuMjg1IDEwLjkyIDExLjA4MyAxMC45MiA1LjggMCAxMC45MTctNC44OSAxMC45MTctMTAuOTIiLz48cGF0aCBmaWxsPSIjY2NkNmRkIiBkPSJNMjMuMTY3IDQuNWMwLS44MjgtMi4yMzQtMi41LTQuMTY3LTIuNS0xLjkzMyAwLTQuMTY2IDEuNjcyLTQuMTY2IDIuNSAwIC44MjggMi4yMzMuNSA0LjE2Ni41IDEuOTMzIDAgNC4xNjcuMzI4IDQuMTY3LS41Ii8+PHBhdGggZmlsbD0iI2ZmY2M0ZCIgZD0iTTIzLjcwNyAyNi43MDdhMSAxIDAgMCAxLTEuNDE0IDBMMTkgMjMuNDE0bC0zLjI5MyAzLjI5M2ExIDEgMCAwIDEtMS40MTQtMS40MTRMMTggMjEuNTg2VjExYTEgMSAwIDAgMSAyIDB2MTAuNTg2bDMuNzA3IDMuNzA3YTEgMSAwIDAgMSAwIDEuNDE0Ii8+PHBhdGggZmlsbD0iIzk5YWFiNSIgZD0iTTI1IDZhMiAyIDAgMCAwLTItMmgtOGEyIDIgMCAwIDAtMiAydjZoMTJWNnoiLz48cGF0aCBmaWxsPSIjY2NkNmRkIiBkPSJNMTMgNWExIDEgMCAwIDAtLjE2NSAxLjk4NmwxMiAyYS45OTQuOTk0IDAgMCAwIDEuMTUtLjgyMiAxIDEgMCAwIDAtLjgyLTEuMTVsLTEyLTJBLjk0Ni45NDYgMCAwIDAgMTMgNW0wIDRhMSAxIDAgMCAwLS4xNjUgMS45ODZsMTIgMmEuOTk1Ljk5NSAwIDAgMCAxLjE1LS44MjIgMSAxIDAgMCAwLS44Mi0xLjE1bC0xMi0yQS45NDYuOTQ2IDAgMCAwIDEzIDkiLz48L2c+PC9zdmc+J30sMjUyOTE1KGEpe2EuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0Ny41IDQ3LjUiPjxnIHRyYW5zZm9ybT0ibWF0cml4KDEuMjUgMCAwIC0xLjI1IDAgNDcuNSkiPjxwYXRoIGZpbGw9IiM0Mjg5YzEiIGQ9Ik0zNCAxOGMxLjE4NyAwIDItLjc4NiAyLTIgMC0xLjA3My0uOTgzLTItMi0ySDIzYy0xLjQ5NiAwLTIgLjgxMy0yIDIgMCAuNTY1LjYzMiAxLjQ5MiAxIDJsOCAxMmgtN2MtMS4xMjggMC0yIC44NDMtMiAyIDAgMS4wNzMuOTMgMiAyIDJoMTFjMS42NCAwIDItMS4wMTIgMi0yIDAtLjYyLS42MzUtMS41Mi0xLTJsLTgtMTJoN3ptLTE2LTVjLjYzMyAwIDEtLjM1MyAxLTEgMC0uNTczLS40NTgtMS0xLTFoLTZjLS43OTggMC0xIC4zNjctMSAxIDAgLjMuMzM3LjczLjUzMyAxTDE2IDE5aC00Yy0uNjAyIDAtMSAuMzg0LTEgMSAwIC41NzMuNDI4IDEgMSAxaDZjLjg3NCAwIDEtLjQ3MyAxLTEgMC0uMzMtLjMzOC0uODc3LS41MzMtMS4xMzNMMTQgMTNoNHpNOSA2Yy42MzMgMCAxLS4zNTMgMS0xIDAtLjU3My0uNDU4LTEtMS0xSDNjLS43OTggMC0xIC4zNjctMSAxIDAgLjMuMzM3LjczLjUzMyAxTDcgMTJIM2MtLjYwMiAwLTEgLjM4NC0xIDEgMCAuNTcyLjQyOCAxIDEgMWg2Yy44NzQgMCAxLS40NzMgMS0xIDAtLjMzLS4zMzgtLjg3Ny0uNTMzLTEuMTMzTDUgNmg0eiIvPjwvZz48L3N2Zz4nfSw2NTUxMTAoYSl7CmEuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0Ny41IDQ3LjUiPjxnIHRyYW5zZm9ybT0ibWF0cml4KDEuMjUgMCAwIC0xLjI1IDAgNDcuNSkiPjxwYXRoIGZpbGw9IiNiZjY5NTIiIGQ9Ik0zNC41NCAxMy44MDJjLjM2NSAxLjU3OC4yNDQgMy4yNjYtLjQ1NyA0Ljk0NmE4LjAxOCA4LjAxOCAwIDAgMS0zLjI3IDMuNzczYy4zMTggMS4yLjIzNCAyLjQ4LS4zMjUgMy43Ni0uODQgMS45Mi0yLjY2IDMuMi00LjcxMiAzLjU2LjI1LjU3LjMzIDEuMjkuMDM2IDIuMTctMSAzLTUgMS04IDUtMi40NC0xLjQ2LTIuOTctMy42NC0yLjg3Ny01LjQ4LTIuNDIyLS40MTItMy44LS45MzYtMy44LS45MzZ2LS4wMDJhMy43MTUgMy43MTUgMCAwIDEtMi4zMjMtMy40NGMwLS44OC4zMTgtMS42NzYuODMtMi4zMTJsLS42OTMtLjI2Yy0yLjMzLS44Ny0zLjk4LTIuOTc2LTMuOTgtNS40NCAwLTEuMDQ1LjMtMi4wMjYuODItMi44NzdDMi45NyAxNC45NzMgMSAxMi4yMiAxIDljMC00LjQxOCAzLjY5LTggOC4yNDQtOCAzLjI3IDAgNi41Ni43MDMgOS41MyAxLjY2NUMyMS4wMiAxLjYyNSAyNC40NyAxIDI5LjY2OCAxQTcuMzMzIDcuMzMzIDAgMCAxIDM3IDguMzMzYTcuMzEgNy4zMSAwIDAgMS0yLjQ2IDUuNDciLz48cGF0aCBmaWxsPSIjZjVmOGZhIiBkPSJNMTggMjEuNWMwLTIuNDg1LTEuNTY3LTQuNS0zLjUtNC41UzExIDE5LjAxNSAxMSAyMS41czEuNTY3IDQuNSAzLjUgNC41IDMuNS0yLjAxNSAzLjUtNC41bTEwIDBjMC0yLjQ4NS0xLjU2Ni00LjUtMy41LTQuNVMyMSAxOS4wMTUgMjEgMjEuNXMxLjU2NiA0LjUgMy41IDQuNSAzLjUtMi4wMTUgMy41LTQuNSIvPjxwYXRoIGZpbGw9IiMyOTJmMzMiIGQ9Ik0xNyAyMS41YzAtMS4zOC0uODk2LTIuNS0yLTIuNXMtMiAxLjEyLTIgMi41Ljg5NiAyLjUgMiAyLjUgMi0xLjEyIDItMi41bTkgMGMwLTEuMzgtLjg5Ni0yLjUtMi0yLjVzLTIgMS4xMi0yIDIuNS44OTYgMi41IDIgMi41IDItMS4xMiAyLTIuNW0tMTUuNTUzLTkuMzk1Yy0uMjQ2LjQ5Mi4wMDMuODk1LjU1My44OTVoMThjLjU1IDAgLjgtLjQwMy41NTItLjg5NUMyOS41NTIgMTIuMTA1IDI3IDcgMjAgN3MtOS41NTMgNS4xMDUtOS41NTMgNS4xMDUiLz48cGF0aCBmaWxsPSIjZjJhYmJhIiBkPSJNMjAgMTFjLTIuNzcgMC01LjE1Ny0uOTIyLTYuMjkyLTIuMjU2QzE1LjIgNy43OSAxNy4yNTMgNyAyMCA3czQuOC43OSA2LjI5MiAxLjc0NEMyNS4xNTcgMTAuMDc4IDIyLjc3MiAxMSAyMCAxMSIvPjwvZz48L3N2Zz4nfSw0MzI3MTgoYSl7YS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDQ3LjUgNDcuNSI+PGcgdHJhbnNmb3JtPSJtYXRyaXgoMS4yNSAwIDAgLTEuMjUgMCA0Ny41KSI+PHBhdGggZmlsbD0iI2JiMWEzNCIgZD0iTTIuNzI4IDE2Yy0uNjE4IDAtLjk1NC4yNTYtMS4xMjguNDctLjE3LjIxMi0uMzQ4LjU4Ni0uMjI1IDEuMTY2bDIuNzMgMTIuNzA2LTEuNzE2LS4wOTdoLS4wMmMtLjUyIDAtLjkuMTY3LTEuMTMuNDU4LS4yMi4yNzItLjMuNjItLjIyLjk4LjE1LjcwMi44OCAxLjI4NiAxLjY2IDEuMzNsNC4wMS4yMjdhMy4zIDMuMyAwIDAgMCAuMjEuMDA4Yy4xNSAwIC41MyAwIC43OC0uMzA3LjI1LS4zMS4xNi0uNy4xNC0uODNMNC43MSAxNy41NWMtLjE5LS44OC0uOTItMS40OS0xLjg2Ny0xLjU0bC0uMTItLjAxem0xNC4xNTcgMTUuNzQ2bC0uMTM3LS4wMDRjLTEuOTQtLjExLTMuNTU1LTIuMzA0LTQuMzItNS44NjYtLjQ3Ny0yLjIyOC0uMzgtMy45LjI3My00LjcwNy4zLS4zNy43Mi0uNTYgMS4yNS0uNTZoLjE0YzEuOTQuMTEgMy41NiAyLjMgNC4zMiA1Ljg2LjQ4IDIuMjMuMzkgMy45LS4yNyA0LjctLjI5LjM3LS43Mi41NS0xLjI1LjU1TTEzLjQ3IDE4Yy0xLjQzOCAwLTIuNjM0LjU0LTMuNDU4IDEuNTYtMS4xNjMgMS40MzctMS40NjcgMy42NS0uODc4IDYuMzk1IDEuMDMyIDQuODEyIDQuMjA4IDguMTg3IDcuOTAyIDguMzk1IDEuNTkuMDkgMi45MDYtLjQ1MiAzLjc5My0xLjU1IDEuMTYtMS40MzggMS40Ni0zLjY1Ljg3LTYuMzk2LTEuMDMtNC44MS00LjIxLTguMTg0LTcuOTEtOC4zOTRhNS4zMjYgNS4zMjYgMCAwIDAtLjMzLS4wMW0xOC40MiAxNS4zODZsLS4xNC0uMDA0Yy0xLjk0LS4xMS0zLjU2LTIuMzA0LTQuMzItNS44NjUtLjQ4LTIuMjI4LS4zOC0zLjkuMjctNC43MDguMjktLjM3LjcyLS41NiAxLjI1LS41NmguMTRjMS45NC4xMSAzLjU1IDIuMyA0LjMyIDUuODYuNDggMi4yMi4zOCAzLjktLjI3IDQuNy0uMy4zNy0uNzIuNTUtMS4yNi41NW0tMy40MS0xMy43NGMtMS40NCAwLTIuNjQuNTQtMy40NiAxLjU2LTEuMTYgMS40NC0xLjQ3IDMuNjUtLjg4IDYuMzkgMS4wNCA0LjgxIDQuMjEgOC4xODUgNy45MSA4LjM5MyAxLjYuMDkgMi45LS40NSAzLjc5LTEuNTUgMS4xNi0xLjQ0IDEuNDYtMy42NS44Ny02LjM5LTEuMDMtNC44MS00LjIwNi04LjE4LTcuOS04LjM5NGE0LjU3IDQuNTcgMCAwIDAtLjMzLS4wMU0xMiAyYTIgMiAwIDAgMC0uNzAyIDMuODczYy4zMzguMTI2IDguNCAzLjEwOCAyMC41MzYgNC4xMmEyIDIgMCAxIDAgLjMzMy0zLjk4NmMtMTEuNTktLjk2Ni0xOS4zODgtMy44NS0xOS40NjUtMy44OEEyLjAxMyAyLjAxMyAwIDAgMCAxMiAyTTMuMDAyIDhhMS45OTggMS45OTggMCAwIDAtLjcyIDMuODY2Yy41NDIuMjEgMTMuNTE1IDUuMTI2IDMyLjYxMyA2LjEzYTEuOTg3IDEuOTg3IDAgMCAwIDIuMTAyLTEuODkgMiAyIDAgMCAwLTEuODkyLTIuMTAzYy0xOC40MjItLjk3LTMxLjI2LTUuODItMzEuMzg4LTUuODdBMS45OTcgMS45OTcgMCAwIDAgMyA4Ii8+PC9nPjwvc3ZnPid9LDM4NjA1OChhKXsKYS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDQ3LjUgNDcuNSI+PGcgdHJhbnNmb3JtPSJtYXRyaXgoMS4yNSAwIDAgLTEuMjUgMCA0Ny41KSI+PHBhdGggZmlsbD0iI2ZkZDg4OCIgZD0iTTMyLjg5OCAxMy4wNjJDMzIuMjk4IDE5LjY4IDI5IDIzIDI5IDIzbC02IDhoLThsLTYtOHMtMS40Mi0xLjQzMi0yLjU2OC00LjI3NUM0LjQ0NCAxOC4wNjUgMyAxNi4yMSAzIDEzLjk5OGE0Ljk3IDQuOTcgMCAwIDEgMS42MS0zLjY1NkE0Ljk0MyA0Ljk0MyAwIDAgMSA0IDhjMC0xLjk2IDEuMTM2LTMuNjM2IDIuNzc1LTQuNDU3QzguMDU4IDEuNjIzIDkuNzcyIDEgMTEgMWgxNmMxLjM3OCAwIDMuMzczLjc4IDQuNjc3IDMuMzFDMzMuNjEgNSAzNSA2LjgzIDM1IDlhNC45ODYgNC45ODYgMCAwIDEtMi4xMDIgNC4wNk0xOSAzMWMuNTUgMCAxLjA1OC4xNTggMS41LjQxNi40NDMtLjI1OC45NS0uNDE2IDEuNS0uNDE2IDEuNjU3IDAgNCAyLjM0NCA0IDQgMCAwIDAgMi0yIDItLjc4OCAwLTEtMS0yLTFzLTEgMS0zIDEtMi0xLTMtMS0xLjIxIDEtMiAxYy0yIDAtMi0yLTItMiAwLTEuNjU2IDIuMzQ0LTQgNC00IC41NSAwIDEuMDU3LjE1OCAxLjUuNDE2LjQ0My0uMjU4Ljk1LS40MTYgMS41LS40MTYiLz48cGF0aCBmaWxsPSIjYmY2OTUyIiBkPSJNMjUgMzFhMSAxIDAgMCAwLTEtMUgxNGExIDEgMCAwIDAgMCAyaDEwYTEgMSAwIDAgMCAxLTEiLz48cGF0aCBmaWxsPSIjNjc3NTdmIiBkPSJNMjQuOSAxMi40NThjMCA0LjQ3Ny04LjU4IDQuMTg1LTguNTggNi44ODYgMCAxLjMwOCAxLjMwMiAxLjk0NyAyLjgxMiAxLjk0NyAyLjUzOCAwIDIuOTktMS41NiA0LjE0LTEuNTYuODEzIDAgMS4yMDQuNSAxLjIwNCAxLjA1IDAgMS4yOS0yLjAyNCAyLjI2LTMuOTY1IDIuNTl2MS4yNGMwIC43OC0uNjUgMS40LTEuNDUgMS40LS44IDAtMS40NS0uNjItMS40NS0xLjR2LTEuMjljLTIuMTEtLjQ2LTMuOTMtMS44Ny0zLjkzLTQuMTcgMC00LjMgOC41OC00LjEyIDguNTgtNy4xNCAwLTEuMDUtMS4xOC0yLjEtMy4xMS0yLjEtMi45IDAtMy44NiAxLjg5LTUuMDQgMS44OS0uNTczIDAtMS4wODYtLjQ2NC0xLjA4Ni0xLjE2NCAwLTEuMTEzIDEuOTM3LTIuNDUgNC42LTIuODI0VjYuMzljMC0uNzcuNjUtMS40IDEuNDU3LTEuNC44IDAgMS40NS42MyAxLjQ1IDEuNHYxLjRjMCAuMDE3LS4wMDcuMDMtLjAxLjA0NSAyLjQuNDMgNC40IDEuOTM1IDQuNCA0LjYyIi8+PC9nPjwvc3ZnPid9LDQ3NzQzMyhhKXthLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgNDcuNSA0Ny41Ij48ZyB0cmFuc2Zvcm09Im1hdHJpeCgxLjI1IDAgMCAtMS4yNSAwIDQ3LjUpIj48cGF0aCBmaWxsPSIjY2NkNmRkIiBkPSJNNSAzM2E0IDQgMCAwIDEtNC00VjExYTQgNCAwIDAgMSA0LTRoMjhhNCA0IDAgMCAxIDQgNHYxOHMwIDQtNCA0SDV6Ii8+PHBhdGggZmlsbD0iIzY3NzU3ZiIgZD0iTTM3IDIxLjkzN0gxVjI4aDM2di02LjA2M3oiLz48cGF0aCBmaWxsPSIjZjVmOGZhIiBkPSJNMzMgMTJINXY4aDI4di04eiIvPjxwYXRoIGZpbGw9IiM5YWFhYjQiIGQ9Ik03IDEzYTEgMSAwIDAgMC0uODk0IDEuNDQ3QzYuMTk4IDE0LjYzMyA4LjQyMiAxOSAxMiAxOWMuODE1IDAgMS4yNTYtLjM1NiAxLjQ4Mi0uNjU1LjU4Ni0uNzcyLjMtMS43OTUuMDQ2LTIuNy0uMDQ4LS4xNy0uMTE0LS40MDYtLjE2LS42MS44MTYuMTMgMS42NzIuNjMzIDIuNDQgMS4wODMuODQyLjQ5MiAxLjUwNi44ODIgMi4xOTIuODgyIDEuNDU2IDAgMS44MS0xLjIwNCAxLjk2LTEuNzJhNS4yIDUuMiAwIDAgMSAuMDg3LS4yNzZjLjc1Ni4wMzMgMS42MTQuNTA3IDIuNTIyIDEuMDA4IDIuMTkgMS4yMDcgNS4xOCAyLjg2IDkuMDUtLjIzYTEgMSAwIDAgMC0xLjI1LTEuNTYzYy0yLjgyIDIuMjYtNC42OSAxLjIzLTYuODQuMDRDMjIuNDEgMTMuNjQgMjEuMjUgMTMgMjAgMTNjLTEuNDU2IDAtMS44MSAxLjIwNC0xLjk2IDEuNzItLjAyMy4wNzgtLjA1My4xOC0uMDgyLjI2LS4yNjItLjA3NC0uNzYyLS4zNjgtMS4xNC0uNTg4QzE1Ljc2IDEzLjc3MiAxNC40NDQgMTMgMTMgMTNjLS43NCAwLTEuMTUuMzMzLTEuMzYuNjEyLS41NTUuNzMtLjI5MiAxLjY2OC0uMDM4IDIuNTc1LjA2My4yMjMuMTU0LjU0Ny4yLjc5Mi0yLjI1Ni0uMjUtMy44OS0zLjQtMy45MDctMy40M0ExIDEgMCAwIDAgNyAxMyIvPjwvZz48L3N2Zz4nfSwzODc3NTcoYSl7YS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDQ3LjUgNDcuNSI+PGcgdHJhbnNmb3JtPSJtYXRyaXgoMS4yNSAwIDAgLTEuMjUgMCA0Ny41KSI+PHBhdGggZmlsbD0iI2NjZDZkZCIgZD0iTTM2IDVhNCA0IDAgMCAwLTQtNEg2YTQgNCAwIDAgMC00IDR2MjhhNCA0IDAgMCAwIDQgNGgyNmE0IDQgMCAwIDAgNC00VjV6Ii8+PHBhdGggZmlsbD0iI2UxZThlZCIgZD0iTTI3IDExaDVWNmgtNXY1em0tNyAwaDVWNmgtNXY1em0tNyAwaDVWNmgtNXY1em0tNyAwaDVWNkg2djV6bTUgMTZINnY1aDV2LTV6bTcgMGgtNXY1aDV2LTV6bTcgMGgtNXY1aDV2LTV6bTIgNWg1di01aC01djV6bTAtN2g1di01aC01djV6bTAtN2g1di01aC01djV6bS03IDBoNXYtNWgtNXY1em0tNyAwaDV2LTVoLTV2NXptLTItNUg2djVoNXYtNXptMCA3SDZ2NWg1di01em05IDVoNXYtNWgtNXY1em0tMi01aC01djVoNXYtNXptMTUgMTRINWExIDEgMCAwIDEtMS0xVjVhMSAxIDAgMCAxIDEtMWgyOGExIDEgMCAwIDEgMSAxdjI4YTEgMSAwIDAgMS0xIDEiLz48cGF0aCBmaWxsPSIjM2U3MjFkIiBkPSJNNS45OTggNGEyIDIgMCAwIDAtMS43NiAyLjk0OGw3IDEzYTIgMiAwIDAgMCAzLjE3Ni40NjZsNi4wNzYtNi4wNzYgOS43MzggMTguNTlhMiAyIDAgMSAwIDMuNTQzLTEuODU2bC0xMS0yMWEyIDIgMCAwIDAtMS40Ni0xLjA1IDIuMDIgMi4wMiAwIDAgMC0xLjcxMi41NjRsLTYuMSA2LjFMNy43NiA1LjA1QTIgMiAwIDAgMCA2IDQiLz48L2c+PC9zdmc+J30sMTg4ODEyKGEpewphLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgNDcuNSA0Ny41Ij48ZyB0cmFuc2Zvcm09Im1hdHJpeCgxLjI1IDAgMCAtMS4yNSAwIDQ3LjUpIj48cGF0aCBmaWxsPSIjY2NkNmRkIiBkPSJNMzYgNWE0IDQgMCAwIDAtNC00SDZhNCA0IDAgMCAwLTQgNHYyOGE0IDQgMCAwIDAgNCA0aDI2YTQgNCAwIDAgMCA0LTRWNXoiLz48cGF0aCBmaWxsPSIjZTFlOGVkIiBkPSJNMjcgMTFoNVY2aC01djV6bS03IDBoNVY2aC01djV6bS03IDBoNVY2aC01djV6bS03IDBoNVY2SDZ2NXptNSAxNkg2djVoNXYtNXptNyAwaC01djVoNXYtNXptNyAwaC01djVoNXYtNXptMiA1aDV2LTVoLTV2NXptMC03aDV2LTVoLTV2NXptMC03aDV2LTVoLTV2NXptLTcgMGg1di01aC01djV6bS03IDBoNXYtNWgtNXY1em0tMi01SDZ2NWg1di01em0wIDdINnY1aDV2LTV6bTkgNWg1di01aC01djV6bS0yLTVoLTV2NWg1di01em0xNSAxNEg1YTEgMSAwIDAgMS0xLTFWNWExIDEgMCAwIDEgMS0xaDI4YTEgMSAwIDAgMSAxIDF2MjhhMSAxIDAgMCAxLTEgMSIvPjxwYXRoIGZpbGw9IiNkZDJlNDQiIGQ9Ik0zMi4wMDIgNGEyIDIgMCAwIDAtMS43NzMgMS4wNzJsLTkuNzQgMTguNTktNi4wOC02LjA3NmEyIDIgMCAwIDAtMy4xOC40NjZsLTcgMTNhMiAyIDAgMCAwIDMuNTIgMS44OThsNS43MjItMTAuNjMzIDYuMSA2LjFhMi4wMDIgMi4wMDIgMCAwIDAgMy4xODYtLjQ4N2wxMS0yMUEyIDIgMCAwIDAgMzIgNCIvPjwvZz48L3N2Zz4nfSw1NTk1NDgoYSl7YS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDQ3LjUgNDcuNSI+PGcgdHJhbnNmb3JtPSJtYXRyaXgoMS4yNSAwIDAgLTEuMjUgMCA0Ny41KSI+PHBhdGggZmlsbD0iI2ZmY2M0ZCIgZD0iTTM2IDE5YzAtOS4zOS03LjYxLTE3LTE3LTE3QzkuNjEyIDIgMiA5LjYxIDIgMTljMCA5LjM4OCA3LjYxMiAxNyAxNyAxNyA5LjM5IDAgMTctNy42MTIgMTctMTciLz48cGF0aCBmaWxsPSIjNjY0NTAwIiBkPSJNMjkuNDU3IDE5LjIwM2MtLjA2LjEzNS0xLjUgMy4yOTctNC40NTcgMy4yOTdzLTQuMzk3LTMuMTYyLTQuNDU3LTMuMjk3YS41LjUgMCAwIDEgLjE0NC0uNTkuNTA0LjUwNCAwIDAgMSAuNjEtLjAxNWMuMDEzLjAxIDEuMjYzLjkwMiAzLjcwMy45MDIgMi40MjYgMCAzLjY3NC0uODggMy43MDItLjlhLjQ5OC40OTggMCAwIDEgLjc1NS42MDNtLTEyIDBjLS4wNi4xMzUtMS41IDMuMjk3LTQuNDU3IDMuMjk3cy00LjM5Ny0zLjE2Mi00LjQ1Ny0zLjI5N2EuNS41IDAgMCAxIC43NTQtLjYwNWMuMDEzLjAxIDEuMjYyLjkwMiAzLjcwMy45MDIgMi40MjYgMCAzLjY3NC0uODggMy43MDItLjlhLjQ5OC40OTggMCAwIDEgLjc1NS42MDNNMzIgMjFjLS4zOTYgMC0uNzcyLjIzOC0uOTMuNjMtMS43NzcgNC40NDQtNi4yMiA1LjM4LTYuMjY2IDUuMzlhMSAxIDAgMSAwIC4zOTIgMS45NmMuMjI2LS4wNDQgNS41NTYtMS4xNjggNy43MzMtNi42MDhBMSAxIDAgMCAwIDMyIDIxTTYgMjFhMSAxIDAgMCAwLS45MjggMS4zNzJjMi4xNzYgNS40NCA3LjUwNiA2LjU2NCA3LjczMiA2LjYwOGExIDEgMCAwIDAgLjM5Ni0xLjk2Yy0uMTg1LS4wMzgtNC41MDctLjk4LTYuMjctNS4zOUExLjAwMyAxLjAwMyAwIDAgMCA2IDIxbTEzLTZjLTMuNjIzIDAtNi4wMjcuNDIyLTkgMS0uNjguMTMtMiAwLTItMiAwLTQgNC41OTUtOSAxMS05IDYuNDA0IDAgMTEgNSAxMSA5IDAgMi0xLjMyIDIuMTMyLTIgMi0yLjk3My0uNTc4LTUuMzc3LTEtOS0xIi8+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTEwIDE0czMtMSA5LTEgOSAxIDkgMS0yLTQtOS00LTkgNC05IDQiLz48cGF0aCBmaWxsPSIjNWRhZGVjIiBkPSJNMTEuODQ3IDguNzdBNSA1IDAgMCAwIDUuNzcgNS4xNTdhNC45OTggNC45OTggMCAwIDAtMy42MTUgNi4wNzVjLjY4IDIuNjggNi4zMzcgOC43MSA3LjMwNyA4LjQ2My45NjgtLjI0NSAzLjA2NC04LjI0NSAyLjM4NS0xMC45MjJtMTQuMjg2LS4wMDNhNSA1IDAgMCAxIDYuMDc3LTMuNjE0IDQuOTk4IDQuOTk4IDAgMCAxIDMuNjE2IDYuMDc1Yy0uNjggMi42OC02LjMzOCA4LjcxLTcuMzA3IDguNDctLjk3LS4yNC0zLjA3LTguMjQtMi4zOS0xMC45MiIvPjwvZz48L3N2Zz4nfSwxNDkwMjEoYSl7YS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDQ3LjUgNDcuNSI+PGcgdHJhbnNmb3JtPSJtYXRyaXgoMS4yNSAwIDAgLTEuMjUgMCA0Ny41KSI+PHBhdGggZmlsbD0iI2ZmY2M0ZCIgZD0iTTM2IDE5YzAtOS4zOS03LjYxLTE3LTE3LTE3QzkuNjEyIDIgMiA5LjYxIDIgMTljMCA5LjM4OCA3LjYxMiAxNyAxNyAxNyA5LjM5IDAgMTctNy42MTIgMTctMTciLz48cGF0aCBmaWxsPSIjNjY0NTAwIiBkPSJNMTUgMjQuNWMwLTIuNDg2LTEuMTItNS41LTIuNS01LjVTMTAgMjIuMDE0IDEwIDI0LjVjMCAyLjQ4NSAxLjEyIDUuNSAyLjUgNS41czIuNS0zLjAxNSAyLjUtNS41bTEzIDBjMC0yLjQ4Ni0xLjEyLTUuNS0yLjUtNS41UzIzIDIyLjAxNCAyMyAyNC41YzAgMi40ODUgMS4xMiA1LjUgMi41IDUuNXMyLjUtMy4wMTUgMi41LTUuNU0xOSAxNWMtMy42MjMgMC02LjAyNy40MjItOSAxLS42OC4xMy0yIDAtMi0yIDAtNCA0LjU5NS05IDExLTkgNi40MDQgMCAxMSA1IDExIDkgMCAyLTEuMzIgMi4xMzItMiAyLTIuOTczLS41NzgtNS4zNzctMS05LTEiLz48cGF0aCBmaWxsPSIjZmZmIiBkPSJNMTAgMTRzMy0xIDktMSA5IDEgOSAxLTItNC05LTQtOSA0LTkgNCIvPjwvZz48L3N2Zz4nfSwyMTUwOTAoYSl7CmEuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0Ny41IDQ3LjUiPjxnIHRyYW5zZm9ybT0ibWF0cml4KDEuMjUgMCAwIC0xLjI1IDAgNDcuNSkiPjxwYXRoIGZpbGw9IiNmZmNjNGQiIGQ9Ik0zNiAxOWMwLTkuMzktNy42MS0xNy0xNy0xN0M5LjYxMiAyIDIgOS42MSAyIDE5YzAgOS4zODggNy42MTIgMTcgMTcgMTcgOS4zOSAwIDE3LTcuNjEyIDE3LTE3Ii8+PHBhdGggZmlsbD0iIzY2NDUwMCIgZD0iTTI5LjQ1NyAxOS4yMDNjLS4wNi4xMzUtMS41IDMuMjk3LTQuNDU3IDMuMjk3cy00LjM5Ny0zLjE2Mi00LjQ1Ny0zLjI5N2EuNS41IDAgMCAxIC4xNDQtLjU5LjUwNC41MDQgMCAwIDEgLjYxLS4wMTVjLjAxMy4wMSAxLjI2My45MDIgMy43MDMuOTAyIDIuNDI2IDAgMy42NzQtLjg4IDMuNzAyLS45YS40OTguNDk4IDAgMCAxIC43NTUuNjAzbS0xMiAwYy0uMDYuMTM1LTEuNSAzLjI5Ny00LjQ1NyAzLjI5N3MtNC4zOTctMy4xNjItNC40NTctMy4yOTdhLjUuNSAwIDAgMSAuNzU0LS42MDVjLjAxMy4wMSAxLjI2Mi45MDIgMy43MDMuOTAyIDIuNDI2IDAgMy42NzQtLjg4IDMuNzAyLS45YS40OTguNDk4IDAgMCAxIC43NTUuNjAzTTE5IDE1Yy0zLjYyMyAwLTYuMDI3LjQyMi05IDEtLjY4LjEzLTIgMC0yLTIgMC00IDQuNTk1LTkgMTEtOSA2LjQwNCAwIDExIDUgMTEgOSAwIDItMS4zMiAyLjEzMi0yIDItMi45NzMtLjU3OC01LjM3Ny0xLTktMSIvPjxwYXRoIGZpbGw9IiNmZmYiIGQ9Ik0xMCAxNHMzLTEgOS0xIDkgMSA5IDEtMi00LTktNC05IDQtOSA0Ii8+PC9nPjwvc3ZnPid9LDMwODIyNShhKXthLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgNDcuNSA0Ny41Ij48ZyB0cmFuc2Zvcm09Im1hdHJpeCgxLjI1IDAgMCAtMS4yNSAwIDQ3LjUpIj48cGF0aCBmaWxsPSIjZmZjYzRkIiBkPSJNMzYgMTljMC05LjM5LTcuNjEtMTctMTctMTdDOS42MTIgMiAyIDkuNjEgMiAxOWMwIDkuMzg4IDcuNjEyIDE3IDE3IDE3IDkuMzkgMCAxNy03LjYxMiAxNy0xNyIvPjxwYXRoIGZpbGw9IiM2NjQ1MDAiIGQ9Ik0yOC4zMzUgMTQuMzdhLjUuNSAwIDAgMS0uNjM1LjAzYy0uMDQtLjAzLTMuOTIyLTIuOS04LjctMi45LTQuNzY2IDAtOC42NjIgMi44Ny04LjcgMi45YS41LjUgMCAwIDEtLjczLS42NTdDOS43IDEzLjUyOCAxMi43OSA4LjUgMTkgOC41czkuMyA1LjAyOCA5LjQzIDUuMjQzYS41LjUgMCAwIDEtLjA5NS42MjgiLz48cGF0aCBmaWxsPSIjNWRhZGVjIiBkPSJNMTkgMzBjLTYuNjI3IDAtMTIgLjU2Ny0xMiAyLjVTMTIuMzczIDM1IDE5IDM1czEyLS41NjcgMTItMi41UzI1LjYyNyAzMCAxOSAzMG0wIDdjLTguODM2IDAtMTYtMS42ODYtMTYtNSAwLTMuMzEzIDcuMTY0LTUgMTYtNXMxNiAxLjY4NyAxNiA1YzAgMy4zMTQtNy4xNjQgNS0xNiA1Ii8+PHBhdGggZmlsbD0iI2ZmY2M0ZCIgZD0iTTExLjM3NSAzMC45MzhjLTMuMzk3IDEuMzI0LTIuNSAxLjk5LS4wNjIgMy4yM0ExNi45MyAxNi45MyAwIDAgMCAxOSAzNS45OThjMi44OTMgMCA1LjYxNi0uNzIgOC0xLjk5Ny42OTYtLjM3IDEuNDMzLS44OCAyLjEyNS0xLjM0Ii8+PHBhdGggZmlsbD0iIzY2NDUwMCIgZD0iTTI3IDE4YTEgMSAwIDAgMC0uOTQ4LjY4NEMyNS44NSAxOS4yODQgMjUuMDMyIDIxIDI0IDIxYy0xLjA2MiAwLTEuODktMS44MjctMi4wNTItMi4zMTZhLjk5Ni45OTYgMCAwIDAtMS4yNjQtLjYzMi45OTguOTk4IDAgMCAwLS42MzIgMS4yNjRDMjAuMTc3IDE5LjY5MyAyMS4zNTUgMjMgMjQgMjNzMy44MjMtMy4zMDcgMy45NDgtMy42ODRBLjk5OC45OTggMCAwIDAgMjcgMThtLTEwIDBhMSAxIDAgMCAwLS45NS42ODRjLS4yLjYtMS4wMTUgMi4zMTYtMi4wNSAyLjMxNi0xLjA2MiAwLTEuODg4LTEuODI3LTIuMDUtMi4zMTZhLjk5OC45OTggMCAwIDAtMS4yNjYtLjYzMiAxIDEgMCAwIDAtLjYzMyAxLjI2NEMxMC4xOCAxOS42OTMgMTEuMzYgMjMgMTQgMjNjMi42NDUgMCAzLjgyMy0zLjMwNyAzLjk1LTMuNjg0QTEgMSAwIDAgMCAxNyAxOCIvPjwvZz48L3N2Zz4nfSw1OTczMzQoYSl7CmEuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0Ny41IDQ3LjUiPjxnIHRyYW5zZm9ybT0ibWF0cml4KDEuMjUgMCAwIC0xLjI1IDAgNDcuNSkiPjxwYXRoIGZpbGw9IiNhYThlZDYiIGQ9Ik0zNyAzNWEyIDIgMCAwIDEtMy40MTQgMS40MTRDMzIuNyAzNS41MjggMjkuNTkgMzMgMjcgMzNoLS4wMDRBMTYuOTIzIDE2LjkyMyAwIDAgMSAxOSAzNWMtMi44OTIgMC01LjYxMi0uNzI3LTcuOTk2LTJIMTFjLTIuNTggMC01LjYzIDIuNDY2LTYuNTg2IDMuNDE0QTIgMiAwIDAgMSAxIDM1YzAtMi4zODQuNzk1LTYuMjMgMy4zNi04LjM5QTE2LjkgMTYuOSAwIDAgMSAyIDE4QzIgOC42MSA5LjYxMiAxIDE5IDFjOS4zOSAwIDE3IDcuNjEgMTcgMTdhMTYuOSAxNi45IDAgMCAxLTIuMzYgOC42MUMzNi4yMDYgMjguNzcgMzcgMzIuNjE1IDM3IDM1Ii8+PHBhdGggZmlsbD0iIzU1Mzk4NiIgZD0iTTI4LjMzNSAxMS4zN2EuNS41IDAgMCAxLS42MzUuMDNjLS4wNC0uMDMtMy45MjItMi45LTguNy0yLjktNC43NjYgMC04LjY2MiAyLjg3LTguNyAyLjlhLjUuNSAwIDAgMS0uNzMtLjY1N0M5LjcgMTAuNTI4IDEyLjc5IDUuNSAxOSA1LjVzOS4zIDUuMDI4IDkuNDMgNS4yNDNhLjUuNSAwIDAgMS0uMDk1LjYyOG0tMTEuNjI4IDcuMzRDMTMuNDUyIDIxLjk3IDguMjIgMjIgOCAyMmExIDEgMCAxIDEgMC0yYy4wMjggMCAxLjkyNC0uMDIyIDMuOTgyLS43MzdDMTEuMzkgMTguNjIzIDExIDE3LjYzIDExIDE2LjVjMC0xLjkzNCAxLjEyLTMuNSAyLjUtMy41czIuNSAxLjU2NiAyLjUgMy41YzAgLjE3NC0uMDIuMzQtLjAzNy41MDcuMDEzIDAgLjAyNS0uMDA3LjAzNy0uMDA3YTEgMSAwIDAgMSAuNzA3IDEuNzA3TTMwIDIyYy0uMjIgMC01LjQ1LS4wMzgtOC43MDctMy4yOTNBMSAxIDAgMCAxIDIyIDE3Yy4wMTMgMCAuMDI0LjAwNy4wMzYuMDA3LS4wMTYtLjE2Ny0uMDM2LS4zMzMtLjAzNi0uNTA3IDAtMS45MzQgMS4xMi0zLjUgMi41LTMuNXMyLjUgMS41NjYgMi41IDMuNWMwIDEuMTMtLjM5IDIuMTIzLS45ODIgMi43NjMgMi4wNTguNzE1IDMuOTU0LjczNyAzLjk4NC43MzdBMSAxIDAgMCAxIDMwIDIyIi8+PC9nPjwvc3ZnPid9LDM2MTE1OShhKXthLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgNDcuNSA0Ny41Ij48ZyB0cmFuc2Zvcm09Im1hdHJpeCgxLjI1IDAgMCAtMS4yNSAwIDQ3LjUpIj48cGF0aCBmaWxsPSIjZmZjYzRkIiBkPSJNMzYgMTljMC05LjM5LTcuNjEtMTctMTctMTdDOS42MTIgMiAyIDkuNjEgMiAxOWMwIDkuMzg4IDcuNjEyIDE3IDE3IDE3IDkuMzkgMCAxNy03LjYxMiAxNy0xNyIvPjxwYXRoIGZpbGw9IiM2NjQ1MDAiIGQ9Ik0xNSAyMC41YzAtMS45MzQtMS4xMi0zLjUtMi41LTMuNVMxMCAxOC41NjYgMTAgMjAuNWMwIDEuOTMzIDEuMTIgMy41IDIuNSAzLjVzMi41LTEuNTY3IDIuNS0zLjVtMTQuNDU3LTEuMjk3Yy0uMDYuMTM1LTEuNSAzLjI5Ny00LjQ1NyAzLjI5N3MtNC4zOTctMy4xNjItNC40NTctMy4yOTdhLjUuNSAwIDAgMSAuMTQ0LS41OS41MDQuNTA0IDAgMCAxIC42MS0uMDE1Yy4wMTMuMDEgMS4yNjMuOTAyIDMuNzAzLjkwMiAyLjQyNiAwIDMuNjc0LS44OCAzLjcwMi0uOWEuNDk4LjQ5OCAwIDAgMSAuNzU1LjYwM003IDI0LjU0M2ExIDEgMCAwIDAtLjggMS42YzMuMjYyIDQuMzUgNy42MTYgNC40IDcuOCA0LjRhMSAxIDAgMCAwIC4wMDQtMmMtLjE1NS0uMDAzLTMuNTctLjA4Ny02LjIwNC0zLjZhMSAxIDAgMCAwLS44LS40bTIzLTIuMTI3YS45OTcuOTk3IDAgMCAwLS44LjRjLTIuNTkyIDMuNDU2LTYuOTYgMi42MjctNy4wMDQgMi42MmEuOTk4Ljk5OCAwIDAgMC0uMzkyIDEuOTZjLjIzLjA0NyA1LjY1NyAxLjA3MiA4Ljk5Ni0zLjM4YTEgMSAwIDAgMC0uOC0xLjZtLTUuNzQ2LTguOTkzYS41MTQuNTE0IDAgMCAxLS41OTctLjA2Yy0uMDEtLjAwNy0xLjAxMy0uODYzLTQuNjU3LS44NjMtMy42NCAwLTQuNjQ1Ljg1NC00LjY0Ni44NTRhLjUuNSAwIDAgMS0uODQtLjQ3NUMxMy41MjcgMTIuODMgMTQuNjYgOC41IDE5IDguNXM1LjQ3NCA0LjMzNSA1LjQ4NSA0LjM4YS40OTcuNDk3IDAgMCAxLS4yMy41NDMiLz48L2c+PC9zdmc+J30sMjYxMTQoYSl7YS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDQ3LjUgNDcuNSI+PGcgdHJhbnNmb3JtPSJtYXRyaXgoMS4yNSAwIDAgLTEuMjUgMCA0Ny41KSI+PHBhdGggZmlsbD0iI2ZmY2M0ZCIgZD0iTTM2IDE5YzAtOS4zOS03LjYxLTE3LTE3LTE3UzIgOS42MSAyIDE5czcuNjEgMTcgMTcgMTcgMTctNy42MSAxNy0xNyIvPjxwYXRoIGZpbGw9IiM2NjQ1MDAiIGQ9Ik0xOSAxNS4xNWMtMi45NjYgMC00LjkzNS4zNDctNy4zNy44Mi0uNTU2LjEwNy0xLjYzNyAwLTEuNjM3LTEuNjM3IDAtMy4yNzYgMy43NjMtNy4zNyA5LjAwNy03LjM3czkuMDA3IDQuMDk0IDkuMDA3IDcuMzdjMCAxLjYzNy0xLjA4MiAxLjc0NS0xLjYzOCAxLjYzNy0yLjQ0LS40NzMtNC40MS0uODItNy4zNy0uODIiLz48cGF0aCBmaWxsPSIjZTc1YTcwIiBkPSJNMTcuNjUgMzMuNzJhNC42NyA0LjY3IDAgMCAxLTUuOTU2IDIuODUgNC42NjcgNC42NjcgMCAwIDEtMi45MjgtMy4xMDYgNC42NiA0LjY2IDAgMCAxLTQuMjI0LjU4IDQuNjcgNC42NyAwIDAgMS0yLjg1LTUuOTU1IDQuNjkgNC42OSAwIDAgMSAuNDcyLS45NmMxLjk1LTMuNTggNy41ODgtNi4xIDExLjAwMi02LjEzIDIuNjM2IDIuMTYgNS40NDYgNy42NiA0LjcxNyAxMS42N2E0LjcxMiA0LjcxMiAwIDAgMS0uMjMzIDEuMDRtMi43IDBhNC42NyA0LjY3IDAgMCAwIDUuOTU2IDIuODUgNC42NyA0LjY3IDAgMCAwIDIuOTMtMy4xMSA0LjY2IDQuNjYgMCAwIDAgNC4yMjMuNTggNC42NyA0LjY3IDAgMCAwIDIuODUtNS45NiA0LjY5NCA0LjY5NCAwIDAgMC0uNDgtLjk2Yy0xLjk1LTMuNTgtNy41OS02LjEtMTEtNi4xMy0yLjY0IDIuMTY3LTUuNDUgNy42NjQtNC43MiAxMS42NzcuMDQuMzUuMTEuNy4yMyAxLjA0MiIvPjwvZz48L3N2Zz4nfSwKOTg4NzU1KGEpe2EuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0Ny41IDQ3LjUiPjxnIHRyYW5zZm9ybT0ibWF0cml4KDEuMjUgMCAwIC0xLjI1IDAgNDcuNSkiPjxwYXRoIGZpbGw9IiNmZmNjNGQiIGQ9Ik0zNiAxOWMwLTkuMzktNy42MS0xNy0xNy0xN1MyIDkuNjEgMiAxOXM3LjYxIDE3IDE3IDE3IDE3LTcuNjEgMTctMTciLz48cGF0aCBmaWxsPSIjMjkyZjMzIiBkPSJNMi4yNCAyNS45ODJjLjI0LS4yNCAxLjQzNy0uOTU4IDEuNjc3LTEuNjc1LjI0LS43MTcuNzItNC43ODQgMi4xNTgtNS45OCAxLjQ4NC0xLjIzNCA3LjA3Ny0uNzc1IDguMTUtLjI0IDIuMzk2IDEuMTk0IDIuNjkgNC41MyAzLjExNCA2LjIyLjIzLjk1NyAxLjY3Ljk1NyAxLjY3Ljk1N3MxLjQ0IDAgMS42OC0uOTU2Yy40Mi0xLjY5LjcyLTUuMDI3IDMuMTEtNi4yMiAxLjA3LS41MzYgNi42Ni0uOTk1IDguMTUuMjM4IDEuNDMyIDEuMTk3IDEuOTEyIDUuMjY0IDIuMTUyIDUuOTgyLjI0LjcxNyAxLjQzNyAxLjQzNSAxLjY3NyAxLjY3NC4yNC4yNC4yNCAxLjE5NiAwIDEuNDM2LS40OC40NzgtNi4xMzUuOTA0LTEyLjIyNC4yNC0xLjIxNS0uMTM0LTEuNjc3LS40OC00LjU1NC0uNDgtMi44NzYgMC0zLjM0LjM0Ni00LjU1NC40NzgtNi4wODguNjY2LTExLjc0NS4yNC0xMi4yMi0uMjM4LS4yNC0uMjQtLjI0LTEuMTk3IDAtMS40MzYiLz48cGF0aCBmaWxsPSIjNjY0NTAwIiBkPSJNMjguMzM1IDEzLjM3YS41LjUgMCAwIDEtLjYzNS4wM2MtLjA0LS4wMy0zLjkyMi0yLjktOC43LTIuOS00Ljc2NiAwLTguNjYyIDIuODctOC43IDIuOWEuNS41IDAgMCAxLS43My0uNjU3QzkuNyAxMi41MjggMTIuNzkgNy41IDE5IDcuNXM5LjMgNS4wMjggOS40MyA1LjI0M2EuNS41IDAgMCAxLS4wOTUuNjI4Ii8+PC9nPjwvc3ZnPid9LDYzNDIwOChhKXthLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgNDcuNSA0Ny41Ij48ZyB0cmFuc2Zvcm09Im1hdHJpeCgxLjI1IDAgMCAtMS4yNSAwIDQ3LjUpIj48cGF0aCBmaWxsPSIjZmZjYzRkIiBkPSJNMzYgMTljMC05LjM5LTcuNjEtMTctMTctMTdTMiA5LjYxIDIgMTlzNy42MSAxNyAxNyAxNyAxNy03LjYxIDE3LTE3Ii8+PHBhdGggZmlsbD0iIzY2NDUwMCIgZD0iTTI1LjMyNyAxMy4zNzhhLjUuNSAwIDAgMS0uNTUuMDdsLTQtMmMtMS44NzMtLjkzOC02LjczLS45NDgtNi43NzctLjk0OGEuNS41IDAgMCAxLS4yNS0uOTMzaC4wMDJhLjUuNSAwIDAgMSAuMjQtLjA2N0gyMWMyLjY1OCAwIDQuMDkgMi4xODYgNC40NzQgMy4zNDJhLjUuNSAwIDAgMS0uMTQ3LjUzNk0zMiAyMWEuOTk3Ljk5NyAwIDAgMC0uOC40Yy0yLjY0IDMuNTItNi4wNiAzLjYtNi4yMDYgMy42QTEgMSAwIDAgMCAyNSAyN2MuMTg0IDAgNC41MzctLjA1IDcuOC00LjRBMSAxIDAgMCAwIDMyIDIxTTYgMjFhMSAxIDAgMCAwLS44IDEuNkM4LjQ2MiAyNi45NSAxMi44MTYgMjcgMTMgMjdhMSAxIDAgMCAwIC4wMDQtMmMtLjE1NS0uMDAyLTMuNTY4LS4wODYtNi4yMDQtMy42QTEgMSAwIDAgMCA2IDIxbTEwLjg5Ny0xLjM5NmMuMDIzLjA1Mi4wNi4wOTYuMDczLjE1NGExIDEgMCAwIDEtLjcyNyAxLjIxM2MtLjE4LjA1LTQuNDY4IDEuMDgtNy43OTgtMS4xM2ExIDEgMCAwIDEgMS4xMS0xLjY2YzEuMDkyLjczIDIuMzYyLjk5NyAzLjQ2OCAxLjA2LS4wMS0uMDczLS4wMjMtLjE1LS4wMjMtLjIzYTIgMiAwIDAgMSA0IDBjMCAuMjE2LS4wNDIuNDE3LS4xMDMuNjA4bTEyIDBjLjAyMi4wNS4wNi4wOTUuMDcyLjE1YS45OTguOTk4IDAgMCAxLS43MyAxLjIxNWMtLjE4LjA0Ni00LjQ3IDEuMDgtNy44LTEuMTM3YTEgMSAwIDAgMSAxLjExLTEuNjYzYzEuMDkuNzMgMi4zNi45OSAzLjQ3IDEuMDYtLjAxLS4wOC0uMDMtLjE1LS4wMy0uMjNhMiAyIDAgMCAxIDQgMGMwIC4yMS0uMDQuNDEyLS4xMDYuNjA0Ii8+PC9nPjwvc3ZnPid9LDI5MTI5KGEpe2EuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0Ny41IDQ3LjUiPjxnIHRyYW5zZm9ybT0ibWF0cml4KDEuMjUgMCAwIC0xLjI1IDAgNDcuNSkiPjxwYXRoIGZpbGw9IiNmZmNjNGQiIGQ9Ik0zNiAxOWMwLTkuMzktNy42MS0xNy0xNy0xN0M5LjYxMiAyIDIgOS42MSAyIDE5YzAgOS4zODggNy42MTIgMTcgMTcgMTcgOS4zOSAwIDE3LTcuNjEyIDE3LTE3Ii8+PHBhdGggZmlsbD0iIzY2NDUwMCIgZD0iTTE1IDIwLjVjMC0xLjkzNC0xLjEyLTMuNS0yLjUtMy41UzEwIDE4LjU2NiAxMCAyMC41YzAgMS45MzMgMS4xMiAzLjUgMi41IDMuNXMyLjUtMS41NjcgMi41LTMuNW0xMyAwYzAtMS45MzQtMS4xMi0zLjUtMi41LTMuNVMyMyAxOC41NjYgMjMgMjAuNWMwIDEuOTMzIDEuMTIgMy41IDIuNSAzLjVzMi41LTEuNTY3IDIuNS0zLjVNMjYgMTFIMTJhMSAxIDAgMCAwIDAgMmgxNGExIDEgMCAwIDAgMC0yIi8+PC9nPjwvc3ZnPid9LDczNjc3OChhKXsKYS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDQ3LjUgNDcuNSI+PGcgdHJhbnNmb3JtPSJtYXRyaXgoMS4yNSAwIDAgLTEuMjUgMCA0Ny41KSI+PHBhdGggZmlsbD0iI2ZmY2M0ZCIgZD0iTTM2IDE5YzAtOS4zOS03LjYxLTE3LTE3LTE3QzkuNjEyIDIgMiA5LjYxIDIgMTljMCA5LjM4OCA3LjYxMiAxNyAxNyAxNyA5LjM5IDAgMTctNy42MTIgMTctMTciLz48cGF0aCBmaWxsPSIjNjY0NTAwIiBkPSJNMTYuNDU3IDIwLjE4NWMtLjA2LjEzNS0xLjUgMy4yOTctNC40NTcgMy4yOTdzLTQuMzk3LTMuMTYyLTQuNDU3LTMuMjk3YS41LjUgMCAwIDEgLjc1NC0uNjA1Yy4wMTMuMDEgMS4yNjIuOTAyIDMuNzAzLjkwMiAyLjQyNiAwIDMuNjc0LS44OCAzLjcwMi0uOWEuNDk4LjQ5OCAwIDAgMSAuNzU1LjYwMyIvPjxwYXRoIGZpbGw9IiNmNWY4ZmEiIGQ9Ik0zMiAyMi40ODJhNi41IDYuNSAwIDEgMC0xMyAwIDYuNSA2LjUgMCAwIDAgMTMgMCIvPjxwYXRoIGZpbGw9IiMyOTJmMzMiIGQ9Ik0yOCAyMi40ODJhMi41IDIuNSAwIDEgMC01IDAgMi41IDIuNSAwIDAgMCA1IDAiLz48cGF0aCBmaWxsPSIjNjY0NTAwIiBkPSJNOCAxMy45ODJjMC0zLjk2NCA0LjU5Ni05IDExLTlzMTEgNSAxMSA5YzAgMC0xMC4zMzMtMi43NTYtMjIgMCIvPjxwYXRoIGZpbGw9IiNlNzVhNzAiIGQ9Ik0xMyAxMi4xVjYuMDJjMC0zIDItNiA2LTZzNiAzIDYgNnY2LjA0MmMtNi4yOTItMS4yOTItMTIgLjA0LTEyIC4wNCIvPjwvZz48L3N2Zz4nfSw0MzU0ODkoYSl7YS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDQ3LjUgNDcuNSI+PGcgdHJhbnNmb3JtPSJtYXRyaXgoMS4yNSAwIDAgLTEuMjUgMCA0Ny41KSI+PHBhdGggZmlsbD0iI2RhMmY0NyIgZD0iTTM2IDE5YzAtOS4zOS03LjYxLTE3LTE3LTE3QzkuNjEyIDIgMiA5LjYxIDIgMTljMCA5LjM4OCA3LjYxMiAxNyAxNyAxNyA5LjM5IDAgMTctNy42MTIgMTctMTciLz48cGF0aCBmaWxsPSIjMjkyZjMzIiBkPSJNMjYuNDg1IDcuMTJDMjYuNDQgNy4zIDI1LjMxNyAxMS41IDE5IDExLjVjLTYuMzE4IDAtNy40NC00LjItNy40ODUtNC4zOGEuNS41IDAgMCAxIC44MzYtLjQ3NmMuMDIuMDIgMS45NiAxLjg1NiA2LjY1IDEuODU2IDQuNyAwIDYuNjMtMS44MzcgNi42NS0xLjg1NmEuNTA1LjUwNSAwIDAgMSAuNi0uMDguNS41IDAgMCAxIC4yNC41NTdtLTkuNzggMTIuNTlDMTMuNDUgMjIuOTYgOC4yMiAyMyA4IDIzYTEgMSAwIDEgMSAwLTJjLjAyOCAwIDEuOTI0LS4wMjIgMy45ODItLjczN0MxMS4zOSAxOS42MjMgMTEgMTguNjMgMTEgMTcuNWMwLTEuOTM0IDEuMTItMy41IDIuNS0zLjVzMi41IDEuNTY2IDIuNSAzLjVjMCAuMTc0LS4wMi4zNC0uMDM3LjUwNy4wMTMgMCAuMDI1LS4wMDcuMDM3LS4wMDdhMSAxIDAgMCAxIC43MDcgMS43MDdNMzAgMjNjLS4yMiAwLTUuNDUtLjAzOC04LjcwNy0zLjI5M0ExIDEgMCAwIDEgMjIgMThjLjAxMyAwIC4wMjQuMDA3LjAzNi4wMDctLjAxNi0uMTY3LS4wMzYtLjMzMy0uMDM2LS41MDcgMC0xLjkzNCAxLjEyLTMuNSAyLjUtMy41czIuNSAxLjU2NiAyLjUgMy41YzAgMS4xMy0uMzkgMi4xMjMtLjk4MiAyLjc2MyAyLjA1OC43MTUgMy45NTQuNzM3IDMuOTg0LjczN0ExIDEgMCAwIDEgMzAgMjMiLz48L2c+PC9zdmc+J30sMTMwNDUwKGEpe2EuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0Ny41IDQ3LjUiPjxnIHRyYW5zZm9ybT0ibWF0cml4KDEuMjUgMCAwIC0xLjI1IDAgNDcuNSkiPjxwYXRoIGZpbGw9IiNmZmNjNGQiIGQ9Ik0zNiAxOWMwLTkuMzktNy42MS0xNy0xNy0xN0M5LjYxMiAyIDIgOS42MSAyIDE5YzAgOS4zODggNy42MTIgMTcgMTcgMTcgOS4zOSAwIDE3LTcuNjEyIDE3LTE3Ii8+PHBhdGggZmlsbD0iIzY2NDUwMCIgZD0iTTE1IDIwLjVjMC0xLjkzNC0xLjEyLTMuNS0yLjUtMy41UzEwIDE4LjU2NiAxMCAyMC41YzAgMS45MzMgMS4xMiAzLjUgMi41IDMuNXMyLjUtMS41NjcgMi41LTMuNW0xMyAwYzAtMS45MzQtMS4xMi0zLjUtMi41LTMuNVMyMyAxOC41NjYgMjMgMjAuNWMwIDEuOTMzIDEuMTIgMy41IDIuNSAzLjVzMi41LTEuNTY3IDIuNS0zLjVNNyAyNGExIDEgMCAwIDAtLjggMS42QzkuNDYyIDI5Ljk1IDEzLjgxNiAzMCAxNCAzMGExIDEgMCAwIDAgLjAwNC0yYy0uMTU1LS4wMDItMy41Ny0uMDg2LTYuMjA0LTMuNkExIDEgMCAwIDAgNyAyNG0yNCAwYS45OTcuOTk3IDAgMCAwLS44LjRjLTIuNjQgMy41Mi02LjA2IDMuNi02LjIwNiAzLjZBMSAxIDAgMCAwIDI0IDMwYy4xODQgMCA0LjUzNy0uMDUgNy44LTQuNEExIDEgMCAwIDAgMzEgMjRNMjQuNDg1IDkuMTJjLS4wMTIuMDQ1LTEuMTQ2IDQuMzgtNS40ODUgNC4zOC00LjM0IDAtNS40NzUtNC4zMzUtNS40ODUtNC4zOGEuNDk1LjQ5NSAwIDAgMSAuMjMtLjU0My41MS41MSAwIDAgMSAuNTk3LjA2Yy4wMS4wMDcgMS4wMTQuODYzIDQuNjU4Ljg2MyAzLjU5IDAgNC42MTctLjgzIDQuNjU2LS44NjNhLjUuNSAwIDAgMSAuODMuNDg0Ii8+PHBhdGggZmlsbD0iIzVkYWRlYyIgZD0iTTE3IDVhNSA1IDAgMCAwLTUtNSA1IDUgMCAwIDAtNSA1YzAgMi43NjIgNCAxMCA1IDEwczUtNy4yMzggNS0xMCIvPjwvZz48L3N2Zz4nfSw5MzU4MzYoYSl7CmEuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0Ny41IDQ3LjUiPjxnIHRyYW5zZm9ybT0ibWF0cml4KDEuMjUgMCAwIC0xLjI1IDAgNDcuNSkiPjxwYXRoIGZpbGw9IiNmZmNjNGQiIGQ9Ik0zNiAxOWMwLTkuMzktNy42MS0xNy0xNy0xN1MyIDkuNjEgMiAxOXM3LjYxIDE3IDE3IDE3IDE3LTcuNjEgMTctMTciLz48cGF0aCBmaWxsPSIjNjY0NTAwIiBkPSJNMjEgMjRhMSAxIDAgMCAwLS45ODcgMS4xNjVDMjAuNDA4IDI3LjUzIDIyLjU4MyAzMiAyOCAzMmExIDEgMCAwIDAgMC0yYy01LjA5NSAwLTUuOTgtNC45NTQtNi4wMTQtNS4xNjVBMSAxIDAgMCAwIDIxIDI0bS00IDBhMSAxIDAgMCAwLS45ODYuODMzQzE1Ljk3NyAyNS4wNDMgMTUuMDYgMzAgMTAgMzBhMSAxIDAgMCAwIDAgMmM1LjQxNiAwIDcuNTkyLTQuNDcgNy45ODYtNi44MzVBMSAxIDAgMCAwIDE3IDI0bS00LjU5LTQuODkyYy0yLjMzNSAwLTMuODcuOTk3LTMuOTY0IDEuMDZhMSAxIDAgMSAwIDEuMTEgMS42NjRjLjA5OC0uMDY0IDIuNi0xLjYzNiA1Ljk5Ny4wNjNhMSAxIDAgMCAwIC44OTUtMS43OWMtMS40OTQtLjc0Ni0yLjg2Ny0uOTk3LTQuMDM4LS45OTdtMTMuMTggMGMtMS4xNyAwLTIuNTQ0LjI1LTQuMDM3Ljk5OGExIDEgMCAwIDAgLjg5NCAxLjc5YzMuNC0xLjcgNS45LS4xMjcgNi4wMDQtLjA2YTEuMDEgMS4wMSAwIDAgMCAxLjM5LS4yOS45OTcuOTk3IDAgMCAwLS4yOC0xLjM3OGMtLjA5LS4wNjMtMS42My0xLjA2LTMuOTYtMS4wNk0yNyAxMGEuOTk3Ljk5NyAwIDAgMC0uOC40Yy0uMDI1LjAzNC0yLjc4MiAzLjYtNy4yIDMuNnMtNy4xNzQtMy41NjYtNy4yMDItMy42MDJhMS4wMDQgMS4wMDQgMCAwIDAtMS40LS4xOTUuOTk4Ljk5OCAwIDAgMC0uMTk4IDEuMzk3Yy4xMzUuMTggMy4zNjIgNC40IDguOCA0LjQgNS40MzcgMCA4LjY2NS00LjIyIDguOC00LjRBMSAxIDAgMCAwIDI3IDEwIi8+PHBhdGggZmlsbD0iI2Y1ZjhmYSIgZD0iTTE2LjM5IDE2LjkyYS45OTcuOTk3IDAgMCAxLTEuMjM4LS4zOWwtNS04QS45OTguOTk4IDAgMCAxIDExIDdoM2ExIDEgMCAwIDEgLjk3Ljc1OGwyIDhhMSAxIDAgMCAxLS41OCAxLjE2Mm0xMS40NTgtOC4zOWwtNSA4YTEgMSAwIDAgMS0xLjgxNy0uNzcybDItOEEuOTk4Ljk5OCAwIDAgMSAyNCA3aDNhMSAxIDAgMCAxIC44NDggMS41MyIvPjxwYXRoIGZpbGw9IiNlMWU4ZWQiIGQ9Ik0zMi45ODIgNi44MjJjLjAwMy4wNi4wMTguMTE3LjAxOC4xNzhhMyAzIDAgMCAxLTMgMyAyLjk5NSAyLjk5NSAwIDAgMS0yLjQ3My0xLjMwNUE0IDQgMCAxIDEgMjYgMWMxLjM2NSAwIDIuNTY4LjY4NiAzLjI5IDEuNzNBMi45OTMgMi45OTMgMCAwIDEgMzIgMWEzIDMgMCAwIDEgMyAzIDIuOTkgMi45OSAwIDAgMS0yLjAxOCAyLjgyMk0xMiA5Yy0uNTQyIDAtMS4wNTYtLjExLTEuNTI3LS4zMDVBMi45OTYgMi45OTYgMCAwIDEgOCAxMGEzIDMgMCAwIDEtMy0zYzAtLjA2LjAxNC0uMTE4LjAxOC0uMTc4QTIuOTkgMi45OSAwIDAgMSAzIDRhMyAzIDAgMCAxIDMtM2MxLjIwMiAwIDIuMjMuNzEgMi43MSAxLjczQTMuOTk2IDMuOTk2IDAgMCAxIDEyIDFhNCA0IDAgMCAxIDAgOCIvPjwvZz48L3N2Zz4nfSw0MzQ5MDUoYSl7YS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDQ3LjUgNDcuNSI+PGcgdHJhbnNmb3JtPSJtYXRyaXgoMS4yNSAwIDAgLTEuMjUgMCA0Ny41KSI+PHBhdGggZmlsbD0iI2ZmY2M0ZCIgZD0iTTM2IDE5YzAtOS4zOS03LjYxLTE3LTE3LTE3QzkuNjEyIDIgMiA5LjYxIDIgMTljMCA5LjM4OCA3LjYxMiAxNyAxNyAxNyA5LjM5IDAgMTctNy42MTIgMTctMTciLz48cGF0aCBmaWxsPSIjNjY0NTAwIiBkPSJNMTcuNjY0IDI2LjQ1N2EuNS41IDAgMCAxLS41OTItLjE0OGMtLjAxLS4wMi0uOTgtMS4yMS0zLjMzNS0xLjg1YTguNTQzIDguNTQzIDAgMCAwLTIuMjQ0LS4zMmMtLjk5MyAwLTEuNTYuMjEtMS41NjIuMjFhLjUuNSAwIDAgMS0uNTctLjc4Yy4wNy0uMDkgMS43OC0yLjE1IDQuMTMtMi4xNS4zNSAwIC43LjA1IDEuMDUuMTQgMi44Ni43OCAzLjQxIDQuMjEgMy40MyA0LjM1YS41LjUgMCAwIDEtLjI5LjUzbTEwLjk3LTIuMTVhLjUwMi41MDIgMCAwIDEtLjU5LjE2Yy0uMDA0LS4wMDUtLjYzLS4yNTgtMS43MzUtLjI1OGE4LjcgOC43IDAgMCAwLTIuMDczLjI2NmMtMi4zNy41ODMtMy4zNyAxLjc1LTMuMzggMS43NmEuNS41IDAgMCAxLS44OC0uNDA2Yy4wMy0uMTQzLjY3LTMuNTYgMy41NC00LjI2NS4zMS0uMDc2LjYzLS4xMTUuOTQ4LS4xMTUgMi4zOTggMCA0LjEgMi4xNiA0LjE3IDIuMjVhLjQ5OC40OTggMCAwIDEgMCAuNjFNMTEgMjdhMSAxIDAgMCAwLS4yNDQgMS45N2MuMDM2LjAxIDMuNTkzLjk2IDUuMzUyIDQuNDc3YTEgMSAwIDEgMCAxLjc4OC0uODk0Yy0yLjE4LTQuMzYyLTYuNDctNS40NzgtNi42NTItNS41MjNBLjk3Ni45NzYgMCAwIDAgMTEgMjdtMTYgMGMtLjA4IDAtLjE2LjAxLS4yNDIuMDMtLjE4Mi4wNDUtNC40NzIgMS4xNi02LjY1MyA1LjUyM2ExIDEgMCAwIDAgMS43OS44OTRjMS43NTctMy41MTcgNS4zMTUtNC40NjggNS4zNS00LjQ3OEExIDEgMCAwIDAgMjcgMjdNMTkgOC4wMzVjLTMuNjIzIDAtNi4wMjctLjQyMi05LTEtLjY4LS4xMy0yIDAtMiAyIDAgNCA0LjU5NSA5IDExIDkgNi40MDQgMCAxMS01IDExLTkgMC0yLTEuMzItMi4xMzItMi0yLTIuOTczLjU3OC01LjM3NyAxLTkgMSIvPjxwYXRoIGZpbGw9IiNmZmYiIGQ9Ik0xMSAxMnMzIDEgOCAxIDgtMSA4LTEtMiA0LTggNC04LTQtOC00Ii8+PC9nPjwvc3ZnPid9LDU1Mjc2KGEpewphLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgNDcuNSA0Ny41Ij48ZyB0cmFuc2Zvcm09Im1hdHJpeCgxLjI1IDAgMCAtMS4yNSAwIDQ3LjUpIj48cGF0aCBmaWxsPSIjZmZjYzRkIiBkPSJNMzYgMTljMC05LjM5LTcuNjEtMTctMTctMTdTMiA5LjYxIDIgMTlzNy42MSAxNyAxNyAxNyAxNy03LjYxIDE3LTE3Ii8+PHBhdGggZmlsbD0iIzY2NDUwMCIgZD0iTTIzIDEwYzAtMi43NjMtMS43OS0zLTQtM3MtNCAuMjM3LTQgM2MwIDIuNzYgMS43OSA2IDQgNnM0LTMuMjQgNC02bTggMTJhLjk4Ny45ODcgMCAwIDAtLjM3LjA3MmMtNS4yMyAyLjA5LTcuMzczIDUuMjQtNy40NjIgNS4zNzRhMSAxIDAgMCAwIDEuNjYyIDEuMTEyYy4wMi0uMDI4IDEuOTMtMi43ODYgNi41NC00LjYzYTEgMSAwIDAgMC0uMzctMS45M003IDIyYTEgMSAwIDAgMC0uMzcyIDEuOTNjNC42MTIgMS44NDMgNi41MjMgNC42IDYuNTQyIDQuNjNhMSAxIDAgMCAwIDEuNjYyLTEuMTEzYy0uMDktLjEzNS0yLjIzMy0zLjI4NC03LjQ2LTUuMzc1QS45OS45OSAwIDAgMCA3IDIyIi8+PHBhdGggZmlsbD0iIzVkYWRlYyIgZD0iTTkgMmw0IC4wNDZWMjFIOVYyem0xNiAxOWg0VjJsLTQgLjA0NlYyMXoiLz48cGF0aCBmaWxsPSIjNjY0NTAwIiBkPSJNMTYgMTljLS4xNSAwLS4zMDQuMDM0LS40NDcuMTA1LTMuNTEyIDEuNzU3LTcuMDcuMDItNy4xMDYgMGExIDEgMCAwIDAtLjg5NCAxLjc5Yy4xODIuMDkgNC40OTggMi4xOTYgOC44OTQgMEExIDEgMCAwIDAgMTYgMTltMTQgMGMtLjE1IDAtLjMwNC4wMzQtLjQ0Ny4xMDUtMy41MTMgMS43NTYtNy4wNy4wMi03LjEwNiAwYTEgMSAwIDAgMC0uODk0IDEuNzljLjE4LjA5IDQuNSAyLjE5NiA4Ljg5NCAwQTEgMSAwIDAgMCAzMCAxOSIvPjxwYXRoIGZpbGw9IiM1ZGFkZWMiIGQ9Ik0zNyAzYzAtMS4xMDQtOC4wNi0yLTE4LTJTMSAxLjg5NiAxIDNzOC4wNiAyIDE4IDIgMTgtLjg5NiAxOC0yIi8+PHBhdGggZmlsbD0iI2U3NWE3MCIgZD0iTTIyIDEwYzAtMS42NTctMS4zNDMtMi0zLTJzLTMgLjM0My0zIDIgMS4zNDMgMiAzIDIgMy0uMzQzIDMtMiIvPjwvZz48L3N2Zz4nfSw1MDcwODUoYSl7YS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDQ3LjUgNDcuNSI+PGcgdHJhbnNmb3JtPSJtYXRyaXgoMS4yNSAwIDAgLTEuMjUgMCA0Ny41KSI+PHBhdGggZmlsbD0iI2ZmY2M0ZCIgZD0iTTM2IDE5YzAtOS4zOS03LjYxLTE3LTE3LTE3UzIgOS42MSAyIDE5czcuNjEgMTcgMTcgMTcgMTctNy42MSAxNy0xNyIvPjxwYXRoIGZpbGw9IiM2NjQ1MDAiIGQ9Ik0xNSAyM2MwLTEuNjU3LS45Ni0zLTIuMTQzLTMtMS4xODQgMC0yLjE0MyAxLjM0My0yLjE0MyAzcy45NiAzIDIuMTQzIDNDMTQuMDQgMjYgMTUgMjQuNjU3IDE1IDIzbTEyIC4yYzAtMS41NDctLjg5NS0yLjgtMi0yLjgtMS4xMDQgMC0yIDEuMjUzLTIgMi44IDAgMS41NDYuODk2IDIuOCAyIDIuOCAxLjEwNSAwIDItMS4yNTQgMi0yLjhNMjMgMTJjMC0yLjc2My0xLjc5Mi01LTQtNS0yLjIxIDAtNCAyLjIzNy00IDUgMCAyLjc2IDEuNzkgNSA0IDUgMi4yMDggMCA0LTIuMjQgNC01Ii8+PC9nPjwvc3ZnPid9LDkyNTQ3NChhKXsKYS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDQ3LjUgNDcuNSI+PGcgdHJhbnNmb3JtPSJtYXRyaXgoMS4yNSAwIDAgLTEuMjUgMCA0Ny41KSI+PHBhdGggZmlsbD0iI2ZmY2M0ZCIgZD0iTTE5IDM2QzkuNjEyIDM2IDIgMjguMzg4IDIgMTkgMiAxMy4yODUgNC44MyA4LjI0IDkuMTUzIDUuMTZjLjA5OCA2LjA4LTIuMTEyIDEyLjg5Ni01LjgyNyAxMi44OTZhMy4xIDMuMSAwIDAgMS0xLjA5LS4xNzNjLjI4Ny43MTQuOTA4IDEuMTE3IDIuMDcgMS4xMTcgNC4wMyAwIDYuMjk0LTguMDM0IDUuNzUzLTE0LjQ0YTE2Ljg5IDE2Ljg5IDAgMCAxIDE3Ljg4LjAwMkMyNy40IDEwLjk5MiAyOS42NiAxOSAzMy42OSAxOWMxLjE2NSAwIDEuNzg3LS40MDIgMi4wNy0xLjExN2EzLjExIDMuMTEgMCAwIDEtMS4wOTIuMTczYy0zLjcyIDAtNS45My02LjgtNS44MjYtMTIuODk3QzMzLjE3IDguMjQgMzYgMTMuMjggMzYgMTljMCA5LjM4OC03LjYxIDE3LTE3IDE3Ii8+PHBhdGggZmlsbD0iI2JkZGRmNCIgZD0iTTE5IDM2QzkuNjEyIDM2IDIgMjguMzg4IDIgMTljMC0xLjEyNi4xMTYtMi4yMjUuMzI1LTMuMjlhOS44NCA5Ljg0IDAgMCAwIDEgMi4zNDYgMy4wOSAzLjA5IDAgMCAxLTEuMDg4LS4xNzNjLjI1LjYyMy43NzcuOTkgMS42NyAxLjA3OCAyLjgyNiAzLjk1IDguNTE2IDYuNjUgMTUuMDkzIDYuNjVzMTIuMjY3LTIuNyAxNS4wOTMtNi42NGMuODk3LS4wOSAxLjQyNi0uNDUgMS42NzQtMS4wOGEzLjA5IDMuMDkgMCAwIDEtMS4wOS4xOCA5Ljg0IDkuODQgMCAwIDAgLjk5OC0yLjM0OEExNi45NyAxNi45NyAwIDAgMSAzNiAxOWMwIDkuMzg3LTcuNjEgMTctMTcgMTciLz48cGF0aCBmaWxsPSIjZjVmOGZhIiBkPSJNOC4zNDcgMjUuMDljLS45NDYtMy4xNzYuMTA3LTYuMjkzIDIuMzUzLTYuOTYyIDIuMjQ2LS42NyA0LjgzNCAxLjM2MiA1Ljc4IDQuNTM4Ljk0NSAzLjE3NS0uMTA4IDYuMjkzLTIuMzUyIDYuOTYyLTIuMjQ2LjY3LTQuODM0LTEuMzYzLTUuNzgtNC41MzhtMjEuMzA0IDBjLjk0Ni0zLjE3Ni0uMTA3LTYuMjkzLTIuMzUyLTYuOTYyLTIuMjQ3LS42Ny00LjgzNCAxLjM2Mi01Ljc4IDQuNTM4LS45NDYgMy4xNzUuMTA3IDYuMjkzIDIuMzUgNi45NjIgMi4yNDcuNjcgNC44MzUtMS4zNjMgNS43ODItNC41MzgiLz48cGF0aCBmaWxsPSIjNjY0NTAwIiBkPSJNMTkgMTljLTIuNzU3IDAtNS0yLjI0My01LTVWOGMwLTIuNzU3IDIuMjQzLTUgNS01czUgMi4yNDMgNSA1djZjMCAyLjc1Ny0yLjI0MyA1LTUgNSIvPjxwYXRoIGZpbGw9IiNmY2FiNDAiIGQ9Ik0zLjMyNiAxOC4wNTZhMy4xMiAzLjEyIDAgMCAxLTEuMDktLjE3MmMuMDcuMTY4LjE1OC4zMTcuMjY2LjQ1Qy43NDQgMTYuMTcgNC42OSA5LjA0NiAyLjc3MiAyaDYuMTAyYzEuMTIzIDYuNTc0LTEuMTY3IDE2LjA1Ni01LjU0OCAxNi4wNTZtMzIuNDQtLjE3M2MtLjI5NS4xMS0uNjUuMTcyLTEuMDkyLjE3MkMzMC4yOSAxOC4wNTUgMjggOC42MSAyOS4xMjcgMmg2LjFjLTEuNzk4IDYuNjUzIDEuNTY2IDEzLjMwNi41NCAxNS44ODMiLz48L2c+PC9zdmc+J30sNzY4MTkyKGEpe2EuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0Ny41IDQ3LjUiPjxnIHRyYW5zZm9ybT0ibWF0cml4KDEuMjUgMCAwIC0xLjI1IDAgNDcuNSkiPjxwYXRoIGZpbGw9IiNmZmNjNGQiIGQ9Ik0zNiAxOWMwLTkuMzktNy42MS0xNy0xNy0xN0M5LjYxMiAyIDIgOS42MSAyIDE5YzAgOS4zODggNy42MTIgMTcgMTcgMTcgOS4zOSAwIDE3LTcuNjEyIDE3LTE3Ii8+PHBhdGggZmlsbD0iI2ZmNzg5MiIgZD0iTTM0IDE1YTUgNSAwIDAgMC01LTUgNSA1IDAgMCAwLTUgNSA1IDUgMCAwIDAgNSA1IDUgNSAwIDAgMCA1LTVtLTIwIDBhNSA1IDAgMCAwLTUtNSA1IDUgMCAwIDAtNSA1IDUgNSAwIDAgMCA1IDUgNSA1IDAgMCAwIDUtNSIvPjxwYXRoIGZpbGw9IiNmNWY4ZmEiIGQ9Ik0zMSAyMC41YTUuNSA1LjUgMCAxIDAtMTEgMCA1LjUgNS41IDAgMCAwIDExIDBtLTEzIDBhNS41IDUuNSAwIDEgMC0xMSAwIDUuNSA1LjUgMCAwIDAgMTEgMCIvPjxwYXRoIGZpbGw9IiM2NjQ1MDAiIGQ9Ik0xNSAyMC41YTIuNSAyLjUgMCAxIDAtNSAwIDIuNSAyLjUgMCAwIDAgNSAwbTEzIDBhMi41IDIuNSAwIDEgMC01IDAgMi41IDIuNSAwIDAgMCA1IDBNMjMgN2gtOGExIDEgMCAwIDAgMCAyaDhhMSAxIDAgMCAwIDAtMm04IDE5YS45OTcuOTk3IDAgMCAwLS44LjRjLTIuNjQgMy41Mi02LjA2IDMuNi02LjIwNiAzLjZBMSAxIDAgMCAwIDI0IDMyYy4xODQgMCA0LjUzNy0uMDUgNy44LTQuNEExIDEgMCAwIDAgMzEgMjZNNyAyNmExIDEgMCAwIDAtLjggMS42QzkuNDYyIDMxLjk1IDEzLjgxNiAzMiAxNCAzMmExIDEgMCAwIDAgLjAwNC0yYy0uMTU1LS4wMDItMy41Ny0uMDg2LTYuMjA0LTMuNkExIDEgMCAwIDAgNyAyNiIvPjwvZz48L3N2Zz4nfSwzODU2NjMoYSl7CmEuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0Ny41IDQ3LjUiPjxnIHRyYW5zZm9ybT0ibWF0cml4KDEuMjUgMCAwIC0xLjI1IDAgNDcuNSkiPjxwYXRoIGZpbGw9IiNmZmNjNGQiIGQ9Ik0zNiAxOWMwLTkuMzktNy42MS0xNy0xNy0xN0M5LjYxMiAyIDIgOS42MSAyIDE5YzAgOS4zODggNy42MTIgMTcgMTcgMTcgOS4zOSAwIDE3LTcuNjEyIDE3LTE3Ii8+PHBhdGggZmlsbD0iIzY2NDUwMCIgZD0iTTIyIDExYTMgMyAwIDEgMC02IDAgMyAzIDAgMCAwIDYgMG0tMy42ODcgOS4zODhhLjUuNSAwIDAgMS0uNjEuMDE0Yy0uMDEzLS4wMS0xLjI2LS45MDItMy43MDItLjkwMi0yLjQ0IDAtMy42OS44OTItMy43LjlhLjUuNSAwIDAgMS0uNzUtLjYwM2MuMDYtLjEzNSAxLjUtMy4yOTcgNC40Ni0zLjI5N3M0LjQgMy4xNjIgNC40NiAzLjI5N2EuNS41IDAgMCAxLS4xNC41OW0xMCAwYS41LjUgMCAwIDEtLjYxLjAxNWMtLjAxLS4wMS0xLjI2LS45MDItMy43LS45MDItMi40NCAwLTMuNjkuODkyLTMuNy45YS41LjUgMCAwIDEtLjc1My0uNjAzYy4wNi0uMTM1IDEuNS0zLjI5NyA0LjQ1Ni0zLjI5NyAyLjk2IDAgNC40IDMuMTYyIDQuNDYgMy4yOTdhLjUuNSAwIDAgMS0uMTQ2LjU5Ii8+PHBhdGggZmlsbD0iIzJhNjc5NyIgZD0iTTE2Ljk5OCAzMS44N2gtMi4wMDNjLS40MyAwLS43OC4yNzUtLjc4Ljc1NXMuMzUuNzU1Ljc4Ljc1NWgzLjkyM2MuMTU2IDAgLjU2My0uMDcuNTYzLS41NCAwLS4yMjctLjA0LS4zMzUtLjE4LS41MTVsLTIuNzItMy44MTRoMi4yOGMuNDMgMCAuNzgtLjI3Ljc4LS43NXMtLjM1LS43NS0uNzgtLjc1aC00LjAyYy0uMzggMC0uNy4yLS43LjU5IDAgLjE5LjEuMzcuMTYuNDdsMi43IDMuOHptNy41MDQgMi44MTdoLTIuMzRjLS41MDQgMC0uOTEuMzIyLS45MS44ODJzLjQwNi44OC45MS44OGg0LjU4Yy4xODQgMCAuNjYtLjA5LjY2LS42MyAwLS4yNy0uMDU2LS4zOS0uMjEtLjYxbC0zLjE4LTQuNDZoMi42NjJjLjUwNCAwIC45MS0uMzIuOTEtLjg5IDAtLjU2LS40MDYtLjg4NC0uOTEtLjg4NEgyMS45OGMtLjQ0OCAwLS44MjYuMjI0LS44MjYuNjg3IDAgLjIyNC4xMTIuNDM0LjE4Mi41NDVsMy4xNjYgNC40NTJ6bTgtMy4zNzdoLTMuMDA4Yy0uNjQ4IDAtMS4xNy40MTQtMS4xNyAxLjEzNHMuNTIyIDEuMTM1IDEuMTcgMS4xMzVoNS44OWMuMjMzIDAgLjg0NS0uMTEuODQ1LS44MiAwLS4zNC0uMDgtLjUxLS4yNy0uNzhsLTQuMDktNS43M2gzLjQyYy42NCAwIDEuMTctLjQxOCAxLjE3LTEuMTM4UzM1Ljk0IDI0IDM1LjI5IDI0aC02LjAzYy0uNTc2IDAtMS4wNjIuMjg4LTEuMDYyLjg4MiAwIC4yODguMTQ0LjU1OC4yMzQuNzAybDQuMDcgNS43MjZ6Ii8+PC9nPjwvc3ZnPid9LDIwNjYzNihhKXthLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgNDcuNSA0Ny41Ij48ZyB0cmFuc2Zvcm09Im1hdHJpeCgxLjI1IDAgMCAtMS4yNSAwIDQ3LjUpIj48cGF0aCBmaWxsPSIjZmZjYzRkIiBkPSJNMzYgMTljMC05LjM5LTcuNjEtMTctMTctMTdDOS42MTIgMiAyIDkuNjEgMiAxOWMwIDkuMzg4IDcuNjEyIDE3IDE3IDE3IDkuMzkgMCAxNy03LjYxMiAxNy0xNyIvPjxwYXRoIGZpbGw9IiM2NjQ1MDAiIGQ9Ik04IDIyYTEgMSAwIDAgMC0uNTU1IDEuODMyQzcuNTc4IDIzLjkyIDEwLjc0NSAyNiAxNSAyNmExIDEgMCAwIDAgMC0yYy0zLjY1NSAwLTYuNDE4LTEuODE0LTYuNDQ1LTEuODMyQS45OTYuOTk2IDAgMCAwIDggMjJtMjIgMGEuOTk2Ljk5NiAwIDAgMC0uNTUzLjE2N0MyOS40MiAyMi4xODUgMjYuNjI3IDI0IDIzIDI0YTEgMSAwIDAgMCAwIDJjNC4yNTQgMCA3LjQyMi0yLjA4IDcuNTU1LTIuMTY4QTEgMSAwIDAgMCAzMCAyMiIvPjxwYXRoIGZpbGw9IiNmNWY4ZmEiIGQ9Ik0yLjAyMyAxOC41MzVMMTAgMTQuOTF2LTQuNTVsLTYuMjM2IDEuMTM1YTE3LjA0IDE3LjA0IDAgMCAxIDEuMzE4LTIuMjRMMTAgOC4zNjNWN2EyIDIgMCAwIDEgMi0yaDE0YTIgMiAwIDAgMSAyIDJ2MS4zNjNsNC45Mi44OTVhMTYuODIgMTYuODIgMCAwIDEgMS4zMTcgMi4yNEwyOCAxMC4zNjN2NC41NDZsNy45NzcgMy42MmMuMDA0LjE1LjAyNC4zMS4wMjQuNDYgMCAuNTEtLjAzIDEuMDEtLjA3IDEuNTFMMjggMTYuOTFWMThhMiAyIDAgMCAxLTIgMkgxMmEyIDIgMCAwIDEtMi0ydi0xLjA5bC03LjkyMyAzLjZDMi4wMzIgMjAuMDEzIDIgMTkuNTEgMiAxOWMwLS4xNTcuMDItLjMxLjAyMy0uNDY1Ii8+PC9nPjwvc3ZnPid9LDE3OTA5MShhKXthLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgNDcuNSA0Ny41Ij48ZyB0cmFuc2Zvcm09Im1hdHJpeCgxLjI1IDAgMCAtMS4yNSAwIDQ3LjUpIj48cGF0aCBmaWxsPSIjZmZjYzRkIiBkPSJNMzYgMTljMC05LjM5LTcuNjEtMTctMTctMTdDOS42MTIgMiAyIDkuNjEgMiAxOWMwIDkuMzg4IDcuNjEyIDE3IDE3IDE3IDkuMzkgMCAxNy03LjYxMiAxNy0xNyIvPjxwYXRoIGZpbGw9IiM2NjQ1MDAiIGQ9Ik0xMSAyNHMwIDIgMiAyIDItMiAyLTJ2LTJzMC0yLTItMi0yIDItMiAydjJ6bTEyIDBzMCAyIDIgMiAyLTIgMi0ydi0yczAtMi0yLTItMiAyLTIgMnYyek05LjY2NSA4LjYzYS41LjUgMCAwIDEgLjYzNS0uMDNjLjA0LjAzIDMuOTIyIDIuOSA4LjcgMi45IDQuNzY2IDAgOC42NjItMi44NyA4LjctMi45YS41LjUgMCAwIDEgLjczLjY1N0MyOC4zIDkuNDcyIDI1LjIxIDE0LjUgMTkgMTQuNVM5LjcgOS40NzIgOS41NyA5LjI1N2EuNS41IDAgMCAxIC4wOTUtLjYyOCIvPjwvZz48L3N2Zz4nfSw0OTg1NjEoYSl7CmEuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0Ny41IDQ3LjUiPjxwYXRoIGZpbGw9IiNlZGJiOWYiIGQ9Ik0xNSA0Ni4yNUg1di0xMi41aDEwdjEyLjV6bTI3LjUgMGgtMTB2LTEyLjVoMTB2MTIuNXoiLz48ZyB0cmFuc2Zvcm09Im1hdHJpeCgxLjI1IDAgMCAtMS4yNSAwIDQ3LjUpIj48cGF0aCBmaWxsPSIjZDc5ZTg0IiBkPSJNMzQgN3MtMy0yLTgtMXY1aDhWN3pNNCA3czMtMiA4LTF2NUg0Vjd6bTkgNEg1djhoOHYtOHptMjAgMGgtOHY4aDh2LTh6Ii8+PHBhdGggZmlsbD0iI2VkYmI5ZiIgZD0iTTEuMzczIDI1LjE2NXMuMDAzIDEuMjI1IDEuMjI3IDEuMjIyYzEuMjI2LS4wMDQgMS4yMjItMS4yMyAxLjIyMi0xLjIzbC0uMDE4LTUuNjgzYy4xOTQuMDkuNC4xNy42MTIuMjRsLjAyNSA3Ljg5cy4wMSAxLjIyNSAxLjIzIDEuMjJjMS4yMy0uMDAyIDEuMjItMS4yMjggMS4yMi0xLjIyOGwtLjAyLTcuNDJjLjIuMDE3LjQxLjAzMi42MS4wNGwuMDMgOC42MDNzLjAxIDEuMjIgMS4yMyAxLjIyYzEuMjMtLjAxIDEuMjItMS4yMyAxLjIyLTEuMjNsLS4wMy04LjZjLjIxLS4wMS40MS0uMDQuNjItLjA1bC4wMyA4LjAzcy4wMDggMS4yMiAxLjIzIDEuMjJjMS4yMjUtLjAxIDEuMjItMS4yMyAxLjIyLTEuMjNsLS4wMy04LjV2LTEuMjljLTMuNjc1LjAxLTYuMTM0LTMuMDQ3LTYuMTQ1LTYuMTEgMC0uNjEyLjYxLS42MTYuNjEtLjYxNi4wMSAzLjY4IDIuNDcgNi4xMTIgNi4xNDQgNi4xMDJsMS44IDQuMTlzLjM5IDEuMTU1IDEuNTUyLjc2YzEuMTYtLjM5Ljc3LTEuNTU0Ljc3LTEuNTU0bC0uODkzLTMuMTA1Yy0uMzU1LTEuMjM1LS42ODUtMi40NzctLjg2LTMuNzQ0QTcuMzU0IDcuMzU0IDAgMCAwIDguNjY2IDhjLTQuMDU3LjAxNy03LjMzNyAzLjMxNS03LjMyNCA3LjM3IDAgLjIxNC4wMTUuNDIuMDM1LjYxbC0uMDMyLjAwNS4wMyA5LjE4em0zNS4yNDQgMHMtLjAwMyAxLjIyNS0xLjIyNyAxLjIyMmMtMS4yMjYtLjAwNC0xLjIyMi0xLjIzLTEuMjIyLTEuMjNsLjAxOC01LjY4M2MtLjE5NC4wOS0uNC4xNy0uNjEyLjI0bC0uMDI1IDcuODlzLS4wMSAxLjIyNS0xLjIzIDEuMjJjLTEuMjMtLjAwMi0xLjIyLTEuMjI4LTEuMjItMS4yMjhsLjAyLTcuNDJhMTIuODQgMTIuODQgMCAwIDEtLjYxLjA0bC0uMDMgOC42MDNzLS4wMSAxLjIyLTEuMjMgMS4yMmMtMS4yMy0uMDEtMS4yMi0xLjIzLTEuMjItMS4yM2wuMDMtOC42Yy0uMjEtLjAxLS40MS0uMDQtLjYyLS4wNWwtLjAzIDguMDNzLS4wMDggMS4yMi0xLjIzIDEuMjJjLTEuMjI1LS4wMS0xLjIyLTEuMjMtMS4yMi0xLjIzbC4wMjUtOC41di0xLjI5YzMuNjc1LjAxIDYuMTMzLTMuMDUgNi4xNDUtNi4xMSAwLS42MTctLjYxMi0uNjItLjYxMi0uNjItLjAxIDMuNjgtMi40NyA2LjExLTYuMTQ1IDYuMWwtMS44IDQuMTlzLS4zOSAxLjE1Ni0xLjU1NC43NmMtMS4xNTgtLjM5LS43NjYtMS41NTMtLjc2Ni0xLjU1M2wuODk0LTMuMTA1Yy4zNTItMS4yMzUuNjgzLTIuNDc3Ljg2LTMuNzQ0QTcuMzU0IDcuMzU0IDAgMCAxIDI5LjMyNCA4YzQuMDU1LjAxNyA3LjMzNiAzLjMxNSA3LjMyMiA3LjM3IDAgLjIxNC0uMDEzLjQyLS4wMzQuNjFsLjAzMi4wMDUtLjAzIDkuMTh6Ii8+PHBhdGggZmlsbD0iI2ZmYWMzMyIgZD0iTTI0LjU0IDMwLjU0YTEgMSAwIDAgMC0uNzkgMS42MWwyLjk4IDMuODU4YTEgMSAwIDEgMCAxLjU4Mi0xLjIyMmwtMi45OC0zLjg1NWEuOTk2Ljk5NiAwIDAgMC0uNzktLjM5bS0xMS4wMjIgMGExIDEgMCAwIDAtLjc5LjM5bC0yLjk4IDMuODZhMSAxIDAgMCAwIDEuNTgzIDEuMjNsMi45OC0zLjg1YTEgMSAwIDAgMC0uNzkyLTEuNjFNMTkgMzFhMSAxIDAgMCAwLTEgMXY0YTEgMSAwIDAgMCAyIDB2LTRhMSAxIDAgMCAwLTEtMSIvPjwvZz48L3N2Zz4nfSw3NDk4ODQoYSl7YS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDQ3LjUgNDcuNSI+PGcgdHJhbnNmb3JtPSJtYXRyaXgoMS4yNSAwIDAgLTEuMjUgMCA0Ny41KSI+PHBhdGggZmlsbD0iIzJhNjc5NyIgZD0iTTMxIDE1Yy0zIDAtNy04LTctMTAgMC0zIDItNCAyLTRoMTF2MTBzLTQgNC02IDRNNyAxNWMzIDAgNy04IDctMTAgMC0zLTItNC0yLTRIMXYxMHM0IDQgNiA0Ii8+PHBhdGggZmlsbD0iI2MxNjk0ZiIgZD0iTTI2IDI2YTIgMiAwIDAgMS00IDB2Ny4yNzdjLjU5Ni4zNDcgMSAuOTg1IDEgMS43MjNhMiAyIDAgMCAxLTQgMCAyIDIgMCAwIDEtNCAwYzAtLjczOC40MDUtMS4zNzYgMS0xLjcyM1YyNmEyIDIgMCAwIDEtNCAwbC0xLTExLjUyNlYxMGg1VjloNnYxaDV2NC40NzRMMjYgMjZ6Ii8+PHBhdGggZmlsbD0iI2Q3OWU4NCIgZD0iTTI1IDIxbC0xIDEyYTIgMiAwIDAgMS00IDBWMTNjMC02IDYtOSA2LTlzNiA0IDYgOWwtNyA4em0tOSAxNGEyIDIgMCAwIDEtMi0ybC0xLTEyLTctOGMwLTUgNi05IDYtOXM2IDMgNiA5djIwYTIgMiAwIDAgMS0yIDIiLz48cGF0aCBmaWxsPSIjZmRjYjU4IiBkPSJNMTIgMzBsLTYgMy0xLTIgNi0yIDEgMXptMTQgMGw2IDMgMS0yLTYtMi0xIDF6bS0xNi00bC02IDEtMS0yaDd2MXptMTggMGw2IDEgMS0yaC03djF6Ii8+PC9nPjwvc3ZnPid9LDI5MDAyMihhKXsKYS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDQ3LjUgNDcuNSI+PGcgdHJhbnNmb3JtPSJtYXRyaXgoMS4yNSAwIDAgLTEuMjUgMCA0Ny41KSI+PHBhdGggZmlsbD0iI2EwMDQxZSIgZD0iTTIgMjBsOCA3IDE2LTEgMS0xNi03LThzMCA2LTYgMTItMTIgNi0xMiA2Ii8+PHBhdGggZmlsbD0iI2ZmYWMzMyIgZD0iTTEuOTczIDJzLS4wMzYgNy45OCAyLjk4NSAxMUM3Ljk3OCAxNi4wMiAxNiAxNS44MTMgMTYgMTUuODEzUzE2IDggMTMgNUMxMCAyIDEuOTcyIDIgMS45NzIgMiIvPjxwYXRoIGZpbGw9IiNmZmNjNGQiIGQ9Ik02IDEwYTQgNCAwIDEgMCA4IDAgNCA0IDAgMCAwLTggMCIvPjxwYXRoIGZpbGw9IiM1NWFjZWUiIGQ9Ik0zNyAzN3MtMTAgMC0yMi0xMGMtNi01LTYtMTQtNC0xNnMxMS0yIDE2IDRjMTAgMTIgMTAgMjIgMTAgMjIiLz48cGF0aCBkPSJNMjggMzJhMy45OTYgMy45OTYgMCAwIDEtMy42NDItMi4zNiAzLjk3IDMuOTcgMCAwIDAgMS42NC4zNiA0IDQgMCAwIDAgNC00YzAtLjU4NS0uMTMyLTEuMTM4LS4zNTgtMS42NEEzLjk5NSAzLjk5NSAwIDAgMSAyOCAzMiIvPjxwYXRoIGZpbGw9IiNhMDA0MWUiIGQ9Ik05IDlzMCA0IDEgNSAxMyAxMSAxNCAxMC05LTEzLTEwLTE0LTUtMS01LTEiLz48L2c+PC9zdmc+J30sMTg5NzY3KGEpe2EuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0NSA0NSI+PGcgdHJhbnNmb3JtPSJtYXRyaXgoMS4yNSAwIDAgLTEuMjUgMCA0NSkiPjxwYXRoIGZpbGw9IiNmZmNjNGQiIGQ9Ik0zNiAxOGMwLTkuOTQtOC4wNi0xOC0xOC0xOFMwIDguMDYgMCAxOHM4LjA2IDE4IDE4IDE4IDE4LTguMDYgMTgtMTgiLz48cGF0aCBmaWxsPSIjNjY0NTAwIiBkPSJNNyAxNC43MzdjMC0zLjk2NCA0LjU5Ni05IDExLTlzMTEgNSAxMSA5YzAgMC0xMC4zMzMtMi43NTYtMjIgMCIvPjxwYXRoIGZpbGw9IiM1ZDkwNDAiIGQ9Ik0xMiAxMi45OTd2LTYuOTZjMC0zIDItNiA2LTZzNiAzIDYgNnY2LjkyYy02LjI5LTEuMjkzLTEyIC4wNC0xMiAuMDQiLz48cGF0aCBmaWxsPSIjNjY0NTAwIiBkPSJNMTIuMjg0IDIzLjY3Yy0uNzU2LjI5Mi0xLjQ3LjU2OC0xLjQ3Ljk2OCAwIC42Ni44ODQuNjkzIDEuMDYuNjkzLjYyNiAwIC45MzYtLjIzNCAxLjIxLS40NC4yMS0uMTYuNDMtLjMyNC43My0uMzI0LjU2NiAwIC44MjMuMzk3LjgyMy43NjYgMCAuNzM2LS45MDIgMS4yNTYtMS44NiAxLjQ3M3YuMzk1YS45NC45NCAwIDAgMS0uOTM4Ljk0Ljk0Ljk0IDAgMCAxLS45NC0uOTR2LS40MjZDOS43NTYgMjYuNDQgOS4wNTUgMjUuNiA5LjA1NSAyNC41NGMwLTEuMzEyIDEuMjkzLTEuODUgMi40MzMtMi4zMjQuODE3LS4zNCAxLjU5LS42NiAxLjU5LTEuMTYyIDAtLjM2Ni0uNDYtLjc2LTEuMjAzLS43Ni0uNzUgMC0xLjE4LjI5OC0xLjU2LjU2My0uMjYyLjE4My0uNTEuMzU2LS44MDUuMzU2LS40MyAwLS43NjctLjM2Mi0uNzY3LS44MjQgMC0uNjguOTMtMS4zNTcgMi4xNTctMS41OTV2LS40N2EuOTQuOTQgMCAwIDEgMS44OCAwbC0uMDA2LjQ5N2MxLjI5Ni4zMTYgMi4wNjIgMS4yMjIgMi4wNjIgMi40NiAwIDEuNDAzLTEuNDE1IDEuOTUtMi41NTIgMi4zODhNMjYuNjk0IDIxLjI2NGMwIDEuNDA0LTEuNDE1IDEuOTUtMi41NTIgMi4zOS0uNzU2LjI5LTEuNDcuNTY2LTEuNDcuOTY2IDAgLjY2Ljg4NC42OTMgMS4wNi42OTMuNjI2IDAgLjkzNy0uMjM0IDEuMjEtLjQ0LjIxMi0uMTYuNDMtLjMyNC43My0uMzI0LjU2NiAwIC44MjQuMzk2LjgyNC43NjQgMCAuNzM3LS45MDMgMS4yNTctMS44NiAxLjQ3NHYuMzk0YS45NC45NCAwIDAgMS0xLjg4IDB2LS40MjZjLTEuMTQyLS4zMzItMS44NDMtMS4xNzQtMS44NDMtMi4yMzUgMC0xLjMxIDEuMjkzLTEuODQ3IDIuNDMzLTIuMzIyLjgxOC0uMzQgMS41OS0uNjYgMS41OS0xLjE2IDAtLjM2Ny0uNDYtLjc2My0xLjIwMy0uNzYzLS43NSAwLTEuMTguMy0xLjU2LjU2NS0uMjYuMTgzLS41MS4zNTYtLjgwNC4zNTYtLjQzMiAwLS43Ny0uMzYyLS43Ny0uODI1IDAtLjY3OC45MzItMS4zNTQgMi4xNTctMS41OTJ2LS40N2EuOTQuOTQgMCAwIDEgMS44OCAwbC0uMDA0LjQ5N2MxLjI5NC4zMTYgMi4wNiAxLjIyMyAyLjA2IDIuNDYiLz48cGF0aCBmaWxsPSIjZmZmIiBkPSJNMjAuOTcgNC45M2MwIDEuMzctMS4zOCAxLjkwMi0yLjQ4NyAyLjMzLS43MzguMjg0LTEuNDM0LjU1NC0xLjQzNC45NDMgMCAuNjQzLjg2LjY3NSAxLjAzMy42NzUuNjEgMCAuOTEyLS4yMjggMS4xOC0uNDMuMjA1LS4xNTUuNDE4LS4zMTUuNzEzLS4zMTUuNTUgMCAuOC4zODguOC43NDcgMCAuNzE3LS44NzggMS4yMjQtMS44MSAxLjQzN3YuMzg0YzAgLjUwNS0uNDEyLjkxNy0uOTE3LjkxN2EuOTE4LjkxOCAwIDAgMS0uOTE3LS45MTZ2LS40MTRjLTEuMTE1LS4zMjUtMS44LTEuMTQ1LTEuOC0yLjE4IDAtMS4yNzggMS4yNjItMS44MDIgMi4zNzQtMi4yNjQuNzk3LS4zMyAxLjU1LS42NDMgMS41NS0xLjEzMiAwLS4zNTctLjQ1LS43NDMtMS4xNzQtLjc0My0uNzMgMC0xLjE1LjI5Mi0xLjUyLjU1LS4yNTUuMTgtLjQ5Ni4zNDgtLjc4NC4zNDgtLjQyIDAtLjc1LS4zNTQtLjc1LS44MDQgMC0uNjYyLjkwOC0xLjMyIDIuMTAzLTEuNTUzdi0uNDZhLjkxNi45MTYgMCAwIDEgMS44MzIgMGwtLjAwMy40ODhjMS4yNjIuMzA3IDIuMDA4IDEuMTkgMi4wMDggMi4zOTYiLz48L2c+PC9zdmc+J30sODAxNTg2KGEpewphLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgNDcuNSA0Ny41Ij48ZyB0cmFuc2Zvcm09Im1hdHJpeCgxLjI1IDAgMCAtMS4yNSAwIDQ3LjUpIj48cGF0aCBmaWxsPSIjZmZjYzRkIiBkPSJNMjEgMzAuOTU5YTIuMDEyIDIuMDEyIDAgMCAwLTItMi4wMTVjLTEuMDk3IDAtMiAuOTAyLTIgMi4wMTR2NC4wMjZjMCAxLjExMy45MDMgMi4wMTUgMiAyLjAxNXMyLS45IDItMi4wMTN2LTQuMDN6Ii8+PHBhdGggZmlsbD0iI2ZmYWMzMyIgZD0iTTEwLjE4IDFjLS4yMjQgMC0uNDUyLjA1Mi0uNjY2LjE2YTEuNTIyIDEuNTIyIDAgMCAwLS42NjYgMi4wMjdsOC45NCAxOC4xMjZjLjI1My41MTIuNzY4LjgzNSAxLjMzMy44MzUuNTY2IDAgMS4wOC0uMzIzIDEuMzMzLS44MzVsOC45NDItMTguMTI2YTEuNTIyIDEuNTIyIDAgMCAwLS42NjYtMi4wMjggMS40ODIgMS40ODIgMCAwIDAtMiAuNjc1TDE5LjEyIDE3LjI2IDExLjUxNCAxLjgzNUExLjQ4NiAxLjQ4NiAwIDAgMCAxMC4xOCAxIi8+PHBhdGggZmlsbD0iIzU4NTk1YiIgZD0iTTE5LjEyIDE2LjYwOGEuOTg1Ljk4NSAwIDAgMC0uNy4yOTVMNC41MSAzMS4wMDNhMS4wMTcgMS4wMTcgMCAwIDAgMCAxLjQyMy45ODMuOTgzIDAgMCAwIDEuNDA0IDBMMTkuMTIgMTkuMDRsMTMuMjA0IDEzLjM4NmEuOTg1Ljk4NSAwIDAgMCAxLjQwNSAwIDEuMDE3IDEuMDE3IDAgMCAwIDAtMS40MjRsLTEzLjkwNi0xNC4xYS45ODguOTg4IDAgMCAwLS43MDMtLjI5NCIvPjxwYXRoIGZpbGw9IiNkZDJlNDQiIGQ9Ik0zNS4wMTUgMTcuNjE1YzAtOC44OTgtNy4xMTUtMTYuMTEtMTUuODk0LTE2LjExLTguNzc2IDAtMTUuODkyIDcuMjEyLTE1Ljg5MiAxNi4xMSAwIDguOSA3LjExNiAxNi4xMTMgMTUuODkzIDE2LjExMyA4Ljc4IDAgMTUuODk1LTcuMjEzIDE1Ljg5NS0xNi4xMTMiLz48cGF0aCBmaWxsPSIjZTZlN2U4IiBkPSJNMzEuMDQgMTcuNjE1YzAtNi42NzQtNS4zMzQtMTIuMDg0LTExLjkyLTEyLjA4NC02LjU4MiAwLTExLjkxOCA1LjQxLTExLjkxOCAxMi4wODUgMCA2LjY3NSA1LjMzNiAxMi4wODUgMTEuOTIgMTIuMDg1czExLjkyLTUuNDEgMTEuOTItMTIuMDg1Ii8+PHBhdGggZmlsbD0iI2ZmY2M0ZCIgZD0iTTMxLjA0IDM1Ljc0M2E1LjkgNS45IDAgMCAxLTQuMjE0LTEuNzdsOC40My04LjU0NEE2LjA2NiA2LjA2NiAwIDAgMSAzNyAyOS43YzAgMy4zMzctMi42NyA2LjA0My01Ljk2IDYuMDQzTTYuOTYgMzUuNzQzYTUuOSA1LjkgMCAwIDAgNC4yMTQtMS43N2wtOC40My04LjU0NEE2LjA3IDYuMDcgMCAwIDAgMSAyOS43YzAgMy4zMzcgMi42NjggNi4wNDMgNS45NiA2LjA0MyIvPjxwYXRoIGZpbGw9IiM0MTQwNDIiIGQ9Ik0yNCAxN2gtNWExIDEgMCAwIDAtMSAxdjlhMSAxIDAgMCAwIDIgMHYtOGg0YTEgMSAwIDAgMCAwLTIiLz48L2c+PC9zdmc+J30sMzUyODUoYSl7YS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDQ3LjUgNDcuNSI+PGcgdHJhbnNmb3JtPSJtYXRyaXgoMS4yNSAwIDAgLTEuMjUgMCA0Ny41KSI+PHBhdGggZmlsbD0iI2ZmYWMzMyIgZD0iTTE3IDM1czAgMiAyIDIgMi0yIDItMnYtMnMwLTItMi0yLTIgMi0yIDJ2MnptMTgtMTRzMiAwIDItMi0yLTItMi0yaC0ycy0yIDAtMiAyIDIgMiAyIDJoMnpNNSAyMXMyIDAgMi0yLTItMi0yLTJIM3MtMiAwLTIgMiAyIDIgMiAyaDJ6bTUuMTIgOC43MDZzMS40MTUtMS40MTQgMC0yLjgyOGMtMS40MTMtMS40MTQtMi44MjcgMC0yLjgyNyAwbC0xLjQxNSAxLjQxNHMtMS40MTQgMS40MTQgMCAyLjgzYzEuNDE1IDEuNDE0IDIuODMgMCAyLjgzIDBsMS40MTMtMS40MTV6bTIxLTIxczEuNDE1LTEuNDEzIDAtMi44MjdjLTEuNDEzLTEuNDItMi44MjcgMC0yLjgyNyAwTDI2Ljg4IDcuMjlzLTEuNDE1IDEuNDE0IDAgMi44MjhjMS40MTMgMS40MTUgMi44MjcgMCAyLjgyNyAwbDEuNDE0LTEuNDEzem0tLjQxMiAxOC4xNzRzLTEuNDE0LTEuNDE1LTIuODI4IDBjLTEuNDE0IDEuNDEzIDAgMi44MjcgMCAyLjgyN2wxLjQxNCAxLjQxNHMxLjQxNCAxLjQyIDIuODI4IDBjMS40MTQtMS40MSAwLTIuODIgMC0yLjgybC0xLjQxNC0xLjQxem0tMjEtMjFzLTEuNDE0LTEuNDE1LTIuODI4IDBjLTEuNDE0IDEuNDEzIDAgMi44MjcgMCAyLjgyN2wxLjQxNCAxLjQxNHMxLjQxNCAxLjQyIDIuODI4IDBjMS40MTQtMS40MSAwLTIuODIgMC0yLjgyTDkuNzA4IDUuODh6TTE3IDVzMCAyIDIgMiAyLTIgMi0yVjNzMC0yLTItMi0yIDItMiAydjJ6bTEyIDE0YzAgNS41MjMtNC40NzggMTAtMTAgMTAtNS41MjMgMC0xMC00LjQ3Ny0xMC0xMCAwLTUuNTIyIDQuNDc3LTEwIDEwLTEwIDUuNTIyIDAgMTAgNC40NzggMTAgMTAiLz48L2c+PC9zdmc+J30sMTYyNjc2KGEpe2EuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0Ny41IDQ3LjUiPjxnIHRyYW5zZm9ybT0ibWF0cml4KDEuMjUgMCAwIC0xLjI1IDAgNDcuNSkiPjxwYXRoIGZpbGw9IiNiNGMzY2MiIGQ9Ik0yOCAyOWE2Ljk4IDYuOTggMCAwIDEtMi4wMTUtLjI5OGMuMDA1LjEuMDE1LjE5Ny4wMTUuMjk4YTUuOTk4IDUuOTk4IDAgMCAxLTExLjc4NSAxLjU3M0E1Ljk3NCA1Ljk3NCAwIDAgMSAxMiAzMWE2IDYgMCAwIDEgMC0xMiA1Ljk5OCA1Ljk5OCAwIDAgMSA1Ljc4NSA0LjQyOEE1Ljk3NSA1Ljk3NSAwIDAgMSAyMCAyM2MuMzc1IDAgLjc0LjA0IDEuMDk2LjEwNEE2LjkyIDYuOTIgMCAwIDEgMjEgMjJhNyA3IDAgMCAxIDctNyA3IDcgMCAwIDEgMCAxNCIvPjxwYXRoIGZpbGw9IiM4ODk5YTYiIGQ9Ik0zMiAxNWE0Ljk4IDQuOTggMCAwIDEtMS4zNC0uMjA0Yy4yMTcuNTI2LjM0IDEuMS4zNCAxLjcwNGE0LjUgNC41IDAgMCAxLTQuNSA0LjUgNC40NiA0LjQ2IDAgMCAxLTIuNy0uOTJBNi40OTcgNi40OTcgMCAwIDEgMTcuNSAyNWE2LjQ5NyA2LjQ5NyAwIDAgMS02LjEzLTQuMzU3QTggOCAwIDEgMSA5IDVoMjNhNSA1IDAgMCAxIDUgNSA1IDUgMCAwIDEtNSA1Ii8+PC9nPjwvc3ZnPid9LDc3MDEwMyhhKXsKYS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDQ3LjUgNDcuNSI+PGcgdHJhbnNmb3JtPSJtYXRyaXgoMS4yNSAwIDAgLTEuMjUgMCA0Ny41KSI+PHBhdGggZmlsbD0iIzk5YWFiNSIgZD0iTTM3IDExYzAtNS41MjItOC4wNi0xMC0xOC0xMFMxIDUuNDc4IDEgMTFzOC4wNiAxMCAxOCAxMCAxOC00LjQ3OCAxOC0xMCIvPjxwYXRoIGZpbGw9IiNjY2Q2ZGQiIGQ9Ik0zNyAxM2MwLTUuNTIyLTguMDYtMTAtMTgtMTBTMSA3LjQ3OCAxIDEzczguMDYgMTAgMTggMTAgMTgtNC40NzggMTgtMTAiLz48cGF0aCBmaWxsPSIjZjVmOGZhIiBkPSJNMTkgNkM0LjA0MiA2IDIgMjEgMiAyNWgzNGMwLTItMS45NTgtMTktMTctMTkiLz48cGF0aCBmaWxsPSIjY2NkNmRkIiBkPSJNMzIuODgyIDMwLjA0OGMtMS4zNTcuOTM4LTMuMTAzIDEuNjk0LTUuMTIgMi4yNSAxLjg3NC41NzYgNC41NS4zMSA1LjEyLTIuMjVtMi41MDMtMi42OTJjMi40NDIgMTAuMTIyLTkuNzggNy43MDYtMTIuMjA0IDUuNzk4YTM3LjUzIDM3LjUzIDAgMCAxLTQuMTguMjM0Yy05LjM5IDAtMTctMy4yMjgtMTctOC40NDRDMiAxOS43MjggOS42MSAxNS41IDE5IDE1LjVzMTcgNC4yMjggMTcgOS40NDRjMCAuODYyLS4yMjUgMS42NjQtLjYxNSAyLjQxMiIvPjwvZz48ZyB0cmFuc2Zvcm09Im1hdHJpeCgxLjI1IDAgMCAtMS4yNSAwIDQ3LjUpIj48cGF0aCBmaWxsPSIjOGE0YjM4IiBkPSJNMzQgMjRjMC0zLjg2Ni02LjcxNi03LTE1LTctOC4yODQgMC0xNSAzLjEzNC0xNSA3czYuNzE2IDcgMTUgN2M4LjI4NCAwIDE1LTMuMTM0IDE1LTciLz48cGF0aCBmaWxsPSIjZDk5ZTgyIiBkPSJNMjEgMjBhLjk5Ny45OTcgMCAwIDAtLjcwNy4yOTNjLTIuMzM3IDIuMzM3LTIuMzc2IDQuODg1LS4xMjUgOC4yNjIuNzQgMS4xMS45IDIuMjQ1LjQ3OCAzLjM3Ny0uNDYgMS4yMzUtMS40MzggMS45OTYtMS43MyAyLjA3Ni0uNTU0IDAtLjk2LjQ0NC0uOTYuOTk2IDAgLjU1My40OTIuOTk2IDEuMDQ0Ljk5Ni45OTcgMCAyLjM5NS0xLjE1MyAzLjE4My0yLjYyNSAxLjAzNC0xLjkzMy45MS00LjA0LS4zNS01LjkzLTEuOTYyLTIuOTQyLTEuNTMyLTQuMzMyLS4xMjYtNS43MzhBMSAxIDAgMCAwIDIxIDIwbS02IDJhLjk5Ny45OTcgMCAwIDAtLjcwNy4yOTNjLTIuMzM3IDIuMzM3LTIuMzc2IDQuODg1LS4xMjUgOC4yNjIuNzI3IDEuMDkuODk0IDIuMDgyLjQ5NCAyLjk0Ny0uNDQ0Ljk2LTEuNDMgMS40Ny0xLjY4NCAxLjVhLjk5Ljk5IDAgMCAwLS45OS45OThjMCAuNTUzLjQ2IDEgMS4wMTIgMSAuOTk3IDAgMi41ODQtLjk3NCAzLjM2LTIuNDIzLjQ4LS45IDEuMDUzLTIuNzYtLjUyOC01LjEzMi0xLjk2LTIuOTQyLTEuNTMtNC4zMzItLjEyNS01LjczOEExIDEgMCAwIDAgMTUgMjIiLz48L2c+PC9zdmc+J30sNzc4OTM0KGEpe2EuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0Ny41IDQ3LjUiPjxnIGZpbGw9IiNkOTllODIiIHRyYW5zZm9ybT0ibWF0cml4KDEuMjUgMCAwIC0xLjI1IDAgNDcuNSkiPjxwYXRoIGQ9Ik0xNC41NzggMzEuMzVzLS4xODggMS45OS0yLjE4IDEuODAzYy0xLjk5LS4xODgtMS44MDItMi4xOC0xLjgwMi0yLjE4TDExLjc3IDE5aDQuMDEzbC0xLjIwNSAxMi4zNXpNMzEgMTQuOTE3YzAtMS4wNi0uODU3LTEuOTE3LTEuOTE2LTEuOTE3aC0uMTY4Yy0xLjA2IDAtMS45MTYuODU4LTEuOTE2IDEuOTE3djQuMTY2YzAgMS4wNi44NTcgMS45MTcgMS45MTYgMS45MTdoLjE2OGMxLjA2IDAgMS45MTYtLjg1OCAxLjkxNi0xLjkxN3YtNC4xNjZ6TTI0IDIzYTIgMiAwIDAgMS0yLTJ2LTIuNzc4Yy42MS0uNTUgMS0xLjMzNiAxLTIuMjIyIDAtLjc1My0uMjg3LTEuNDMzLS43NDUtMS45Ni4zNC0uNjE2Ljk5LTEuMDQgMS43NDUtMS4wNGEyIDIgMCAwIDEgMiAydjZhMiAyIDAgMCAxLTIgMiIvPjxwYXRoIGQ9Ik0yOS4wNjMgMTJoLS4xMjVhMi45MyAyLjkzIDAgMCAwLTIuNDUgMS4zMjIgMy4wNCAzLjA0IDAgMCAwLS40My0uNDk3Yy0uMDUtLjA0Ni0uMTA0LS4wODUtLjE1Ny0uMTI4YTMuMDU3IDMuMDU3IDAgMCAwLS41Ny0uMzc3IDIuOTkzIDIuOTkzIDAgMCAwLS40My0uMTcyYy0uMDY1LS4wMi0uMTMtLjA0NS0uMi0uMDZBMi45NDUgMi45NDUgMCAwIDAgMjQgMTJjLS4yMzcgMC0uNDYuMDM2LS42OC4wOWEyLjk3IDIuOTcgMCAwIDAtLjYxOC4yMjdjLS4wODMuMDQtLjE2NC4wNzYtLjI0Mi4xMjNhMy4wNzcgMy4wNzcgMCAwIDAtLjk5Ljk2bC4wMDMuMDAyQzIxLjI3MyAxMy4yODcgMjEgMTMgMjAgMTNoLTIuNTRjMS44MS0xLjM2NSAzLjAzNy0zLjk5IDMuMDM3LTdhLjUuNSAwIDAgMC0xIDBjMCAzLjg2LTIuMTg4IDctNC44NzYgN2gtLjEyYS41LjUgMCAwIDAgMCAxSDIwYTIgMiAwIDAgMSAwIDRoLThjLS4wMzMgMC0uMDYzLS4wMDgtLjA5NS0uMDFhMS45NzMgMS45NzMgMCAwIDEtLjc2NC0uMTkgMi4zOCAyLjM4IDAgMCAxLS4zMi0uMTk3IDIuMjQzIDIuMjQzIDAgMCAxLS4yOC0uMjU0IDEuOSAxLjkgMCAwIDEtLjIzLS4zMSAyLjE3IDIuMTcgMCAwIDEtLjE3LS4zN2MtLjAxLS4wMy0uMDI3LS4wNi0uMDQtLjFMOSAxM2MtLjEwMy0uMzM1LS40OC0xLjg3LS40MS0yLjE5QzguNTkgNiAxMy4yODQgMSAxOSAxYzYuNTM3IDAgMTEuODQzIDUuMjMgMTEuOTg2IDExLjczNEEyLjkxNyAyLjkxNyAwIDAgMCAyOS4wNjMgMTJNMjEgMTl2MmEyIDIgMCAwIDEtNCAwdi0yaDR6Ii8+PC9nPjwvc3ZnPid9LDkyNTk3OShhKXthLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgNDcuNSA0Ny41Ij48ZyB0cmFuc2Zvcm09Im1hdHJpeCgxLjI1IDAgMCAtMS4yNSAwIDQ3LjUpIj48cGF0aCBmaWxsPSIjZjQ5MDBjIiBkPSJNMTEgMWExIDEgMCAwIDAtLjg5IDEuNDU3TDE3LjA3NyAxNkg1YTEgMSAwIDAgMC0uNjU0IDEuNzU3bDIyIDE5YTEgMSAwIDAgMCAxLjU0NC0xLjIxNUwyMC45MjUgMjJIMzNhMSAxIDAgMCAwIC42NTMtMS43NTdsLTIyLTE5QTEgMSAwIDAgMCAxMSAxIi8+PC9nPjwvc3ZnPid9LAo0Mzg3NTMoYSl7YS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDQ3LjUgNDcuNSI+PGcgdHJhbnNmb3JtPSJtYXRyaXgoMS4yNSAwIDAgLTEuMjUgMCA0Ny41KSI+PHBhdGggZmlsbD0iI2ZmYWMzMyIgZD0iTTE1IDM1czAgMiAyIDIgMi0yIDItMnYtMnMwLTItMi0yLTIgMi0yIDJ2MnptMTYtMTJzMiAwIDItMi0yLTItMi0yaC0ycy0yIDAtMiAyIDIgMiAyIDJoMnpNNSAyM3MyIDAgMi0yLTItMi0yLTJIM3MtMiAwLTIgMiAyIDIgMiAyaDJ6bTMuODcyIDcuOTU2czEuNDE0LTEuNDE0IDAtMi44MjgtMi44MjggMC0yLjgyOCAwTDQuNjMgMjkuNTQzcy0xLjQxNSAxLjQxNCAwIDIuODNjMS40MTQgMS40MTMgMi44MjggMCAyLjgyOCAwbDEuNDE0LTEuNDE2em0xOS4wODUtMi44MjZzLTEuNDE0LTEuNDE1LTIuODI4IDBjLTEuNDIgMS40MTMgMCAyLjgyNyAwIDIuODI3bDEuNDEgMS40MTRzMS40MSAxLjQyIDIuODMgMGMxLjQxLTEuNDEgMC0yLjgyIDAtMi44MmwtMS40Mi0xLjQxek0yNiAyMWE5IDkgMCAwIDEtOSA5IDkgOSAwIDEgMSA5LTkiLz48cGF0aCBmaWxsPSIjYjRjM2NjIiBkPSJNMjkgMTdhNy45OSA3Ljk5IDAgMCAxLTIuMzctLjM1N0E2LjQ5OCA2LjQ5OCAwIDAgMSAyMC41IDIxYy0zLjA0NCAwLTUuNTkyLTIuMDk2LTYuMy00LjkyYTQuNDYgNC40NiAwIDAgMS0yLjcuOTJBNC41IDQuNSAwIDAgMSA3IDEyLjVjMC0uNjA0LjEyMy0xLjE3OC4zNC0xLjcwNEE0Ljk4IDQuOTggMCAwIDEgNiAxMWE1IDUgMCAwIDEtNS01IDUgNSAwIDAgMSA1LTVoMjNhOCA4IDAgMCAxIDAgMTYiLz48L2c+PC9zdmc+J30sNzg3NjkzKGEpe2EuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0Ny41IDQ3LjUiPjxnIHRyYW5zZm9ybT0ibWF0cml4KDEuMjUgMCAwIC0xLjI1IDAgNDcuNSkiPjxwYXRoIGZpbGw9IiNiZTE5MzEiIGQ9Ik0zNyAxOWMwLTkuOTQtOC4wNi0xOC0xOC0xOFMxIDkuMDYgMSAxOXM4LjA2IDE4IDE4IDE4IDE4LTguMDYgMTgtMTgiLz48cGF0aCBmaWxsPSIjZmZmIiBkPSJNMzMgMTdhMiAyIDAgMCAwLTItMkg3YTIgMiAwIDAgMC0yIDJ2NGEyIDIgMCAwIDAgMiAyaDI0YTIgMiAwIDAgMCAyLTJ2LTR6Ii8+PC9nPjwvc3ZnPid9LDkxNTEwMyhhKXthLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgNDcuNSA0Ny41Ij48ZyBmaWxsPSIjZDk5ZTgyIiB0cmFuc2Zvcm09Im1hdHJpeCgxLjI1IDAgMCAtMS4yNSAwIDQ3LjUpIj48cGF0aCBkPSJNMjIuNDEzIDM0LjA1M2MtMS45NTYuNDE2LTIuMzcyLTEuNTQtMi4zNzItMS41NGwtMy4wOS0xMS41N2EyNi42IDI2LjYgMCAwIDEtMS4zLS4xMDZMMTMuNTggMzEuMzVzLS4xODggMS45OS0yLjE4IDEuODAzYy0xLjk5LS4xODgtMS44MDMtMi4xOC0xLjgwMy0yLjE4TDExLjc3IDE5SDIwYy4yMDggMCAuNDEtLjAyMi42MDctLjA2MmwzLjM0NiAxMi43NDNzLjQxNiAxLjk2LTEuNTQgMi4zOE0zMSAxNC45MmMwLTEuMDYtLjg1Ny0xLjkxOC0xLjkxNi0xLjkxOGgtLjE2OGMtMS4wNiAwLTEuOTE2Ljg1Ny0xLjkxNiAxLjkxNnY0LjE2NmMwIDEuMDYuODU3IDEuOTE3IDEuOTE2IDEuOTE3aC4xNjhjMS4wNiAwIDEuOTE2LS44NiAxLjkxNi0xLjkydi00LjE2ek0yNCAyM2EyIDIgMCAwIDEtMi0ydi0yLjc3OGMuNjEtLjU1IDEtMS4zMzYgMS0yLjIyMiAwLS43NTMtLjI4Ny0xLjQzMy0uNzQ1LTEuOTYuMzQtLjYxNi45OS0xLjA0IDEuNzQ1LTEuMDRhMiAyIDAgMCAxIDIgMnY2YTIgMiAwIDAgMS0yIDIiLz48cGF0aCBkPSJNMjkuMDYzIDEyaC0uMTI1YTIuOTMgMi45MyAwIDAgMC0yLjQ1IDEuMzIyIDMuMDQgMy4wNCAwIDAgMC0uNDMtLjQ5N2MtLjA1LS4wNDYtLjEwNC0uMDg1LS4xNTctLjEyOGEzLjA1NyAzLjA1NyAwIDAgMC0uNTctLjM3NyAyLjk5MyAyLjk5MyAwIDAgMC0uNDMtLjE3MmMtLjA2NS0uMDItLjEzLS4wNDUtLjItLjA2QTIuOTQ1IDIuOTQ1IDAgMCAwIDI0IDEyYy0uMjM3IDAtLjQ2LjAzNi0uNjguMDlhMi45NyAyLjk3IDAgMCAwLS42MTguMjI3Yy0uMDgzLjA0LS4xNjQuMDc2LS4yNDIuMTIzYTMuMDc3IDMuMDc3IDAgMCAwLS45OS45NmwuMDAzLjAwMkMyMS4yNzMgMTMuMjg3IDIxIDEzIDIwIDEzaC0yLjU0YzEuODEtMS4zNjUgMy4wMzctMy45OSAzLjAzNy03YS41LjUgMCAwIDAtMSAwYzAgMy44Ni0yLjE4OCA3LTQuODc2IDdoLS4xMmEuNS41IDAgMCAwIDAgMUgyMGEyIDIgMCAwIDEgMCA0aC04Yy0uMDMzIDAtLjA2My0uMDA4LS4wOTUtLjAxYTEuOTczIDEuOTczIDAgMCAxLS43NjQtLjE5IDIuMzggMi4zOCAwIDAgMS0uMzItLjE5NyAyLjI0MyAyLjI0MyAwIDAgMS0uMjgtLjI1NCAxLjkgMS45IDAgMCAxLS4yMy0uMzEgMi4xNyAyLjE3IDAgMCAxLS4xNy0uMzdjLS4wMS0uMDMtLjAyNy0uMDYtLjA0LS4xTDkgMTNjLS4xMDMtLjMzNS0uNDgtMS44Ny0uNDEtMi4xOUM4LjU5IDYgMTMuMjg0IDEgMTkgMWM2LjUzNyAwIDExLjg0MyA1LjIzIDExLjk4NiAxMS43MzRBMi45MTcgMi45MTcgMCAwIDAgMjkuMDYzIDEyIi8+PC9nPjwvc3ZnPid9LDk5NTkzMChhKXthLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgNDcuNSA0Ny41Ij48ZyB0cmFuc2Zvcm09Im1hdHJpeCgxLjI1IDAgMCAtMS4yNSAwIDQ3LjUpIj48cGF0aCBmaWxsPSIjYmUxOTMxIiBkPSJNMzYuODg1IDI1LjE2NmMwIDUuNDUtNC40MTggOS44NjgtOS44NjcgOS44NjgtMy4zMDggMC02LjIyNy0xLjYzMi04LjAxOC00LjEyOC0xLjc5IDIuNDk2LTQuNzEgNC4xMy04LjAxNyA0LjEzLTUuNDUtLjAwMi05Ljg2OC00LjQyLTkuODY4LTkuODcgMC0uNzcyLjA5OC0xLjUyLjI2Ni0yLjI0QzIuNzYgMTQuNDEzIDEyLjIyIDUuNDMgMTkgMi45NjZjNi43ODMgMi40NjQgMTYuMjUgMTEuNDQ2IDE3LjYxNyAxOS45Ni4xNy43Mi4yNjggMS40Ny4yNjggMi4yNCIvPjwvZz48L3N2Zz4nfSw2NzM0NTEoYSl7CmEuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0OCA0OCIgd2lkdGg9IjQ4IiBoZWlnaHQ9IjQ4Ij48cGF0aCBmaWxsPSIjYzk0MDRiIiBkPSJNMzUuNTUzIDM5LjQ3N2MwIDEuMTI4LS4xNDIgNS4wNzYtNC4wODggNS4wNzYtMi4xMTUgMC0zLjEwMi0zLjUyNS03Ljc1LTMuNTI1LTMuMSAwLTIuNTM5IDEuMjY2LTguMzE1IDEuMjY2LTUuNzggMC05LjE2My0yLjgxNy05LjE2My03LjA0NCAwLTUuMDc2IDMuMDc2LTQuNDQ0IDYuMjAyLTYuOTIgMy4zODQtMi42NzcgMy4xMDEtNC43OTIgNy4zMy00Ljc5MiAzLjUyMiAwIDUuNDkgNC44MTUgNy44OTIgNS43NzggMy41MjMgMS40MDkgNy44OTIgNy4yMDIgNy44OTIgMTAuMTYxek05LjkzMiAyMi45MzRjLjA5Mi0yLjQwOS0uOTI4LTQuNDQ5LTIuODcyLTQuNDQ5LTIuMDQgMC0zLjA2IDIuMDQtMy4wNiAzLjcwNiAwIDIuMzE4IDEuMjk3IDQuNTQgMy4wNiA0LjU0IDEuNzYgMCAyLjc3OC0xLjM4NyAyLjg3Mi0zLjc5N3pNMjQuNTcgMjAuNzFjMS43NjEgMCA0LjA3OC0zLjI0MyA0LjE3LTUuNjUzLjA5My0yLjQxLS4xODUtNC45MDktMi4xMzEtNC45MDktMi4wMzkgMC00LjkxIDMuMDU2LTQuOTEgNS41NTkgMCAyLjMxNiAxLjExMiA1LjAwMyAyLjg3MSA1LjAwM3ptNy4wNDMgNS45M2MyLjU5MyAwIDQuMTcxLTIuODczIDQuMjYzLTUuMjgzLjA5Mi0yLjQxLS40NjMtNC40NDgtMi40MS00LjQ0OC0zLjE0OCAwLTQuNzI1IDMuMDYtNC43MjUgNS41NiAwIDIuMzE2IDEuMTEyIDQuMTcgMi44NzIgNC4xN3ptOC4yNDUtMS45NDVjLTMuMTUgMC01LjAwMyAzLjYxLTUuMDAzIDYuMTE0IDAgMi4zMTggMS40ODIgMy45ODUgMy4yNDQgMy45ODUgMi41OTMgMCA0LjI2My0yLjU5MyA0LjM1NC01LjAwMy4wOTItMi40MTItLjY1LTUuMDk2LTIuNTk1LTUuMDk2em0tMjUuMDE2LTMuMTUyYzEuNzYxIDAgMy4xNS0xLjI5NSAzLjE1LTMuNzA3IDAtNC4wNzYgMS44NTItOC4xNTMtLjA5Mi04LjE1My0zLjg5MyAwLTYuMTE3IDUuNjUtNi4xMTcgNy4zMiAwIDIuMzE3IDEuMjk3IDQuNTQgMy4wNiA0LjU0ek03LjMxNiAxNy4xYy41NC4xNDcgMS4wNDQuNDIgMS4wMy0uMzQyLS4wMjUtMS4xOS4wOTgtMy4xMzQtLjQ5LTMuMTg0LS4zNS0uMDI4LTEuMzMxIDIuMDE0LTEuNjEyIDMuMDI5LS4yNjIuOTY0LjQ1LjMzIDEuMDcyLjQ5N3pNMTguMjkgNy43NTZjLjU5LjE4IDEuMTM3LjQ4MyAxLjE3LS4yNC4wNTktMS4xMjguMzMyLTIuOTU0LS4zMi0zLjA0OC0uMzg1LS4wNTYtMS42MjQgMS43OS0yLjAwOSAyLjcyNi0uMzYuODkuNDc5LjM0NyAxLjE1OS41NjJ6bTEwLjQ0NS42NjljLjU0LjE0NyAxLjA1NS40MiAxLjAzLS4zNDUtLjA0OC0xLjM3MS0uMTQ1LTMuMjcyLS43MzEtMy4zMjItLjM1LS4wMy0xLjEzNiAxLjcxOC0xLjQxNSAyLjczMy0uMjY0Ljk2Ni40OTUuNzY0IDEuMTE2LjkzNHptNi41NjcgNi43NTZjLjUyMS4yMDQgMS4wMDcuNTMgMS4wNi0uMjMzLjA5Ni0xLjM3LjUzMi01LjA2NC0uMDQ4LTUuMTcyLS4zNDQtLjA2NS0xLjU2NCAzLjAxOC0yLjA5MyA0LjA3MS0uNDQ4Ljg5Mi40ODIgMS4xMDIgMS4wOCAxLjMzNHptNy4yODMgMy4zNWMtLjMzNi0uMS0xLjQ1NyAyLjI2Ny0xLjk0MiAzLjIwMy0uNDU2Ljg4OS4yNjYuOTMzLjgzOSAxLjIyOS40OTcuMjU1Ljk0NC42MyAxLjA3OC0uMTIyLjIzNi0xLjM1MS41OS00LjE0LjAyNS00LjMxeiIvPjwvc3ZnPid9LDI1MDEzMyhhKXsKYS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDQ4IDQ4IiB3aWR0aD0iNDgiIGhlaWdodD0iNDgiPjxwYXRoIGZpbGw9IiNmZmFjMzMiIGQ9Ik0zNy42MTkgMjQuOThjLS45MjUtMS4xOTYtMi4zMi0yLjAxNy00LjE4NS0yLjQ2MyAyLjM3Ni0xLjIxMiAzLjQyLTMuMjY4IDMuMTMzLTYuMTctLjA5Ni0xLjA1Mi0uMzg3LTEuOTY0LS44NzMtMi43MzdhNS40NzggNS40NzggMCAwIDAtMS45NzMtMS44NjUgMTAuODYgMTAuODYgMCAwIDAtMi43MDMtMS4wNzZjLS45NzItLjI0Ny0yLjA4OC0uNDI2LTMuMzQ3LS41Mzh2LTIuMjlhMS44NDEgMS44NDEgMCAwIDAtMy42ODIgMHYyLjEyM2MtLjYzOCAwLTEuNjEuMDE2LTIuOTE4LjA0OHYtMi4xN2ExLjg0MSAxLjg0MSAwIDAgMC0zLjY4MyAwdjIuMjljLS41MjUuMDE1LTEuMjk5LjAyMy0yLjMxOS4wMjNsLTQuMDY0LS4wMTlhMSAxIDAgMCAwLTEuMDA1IDF2MS45MTdhMSAxIDAgMCAwIDEgMWgxLjY1NGMxLjIxMiAwIDEuOTIxLjU0MiAyLjEyOCAxLjYyNnY2Ljg2M2MuMTYgMCAuMjg3LjAwOC4zODMuMDI0aC0uMzgzdjkuNjEyYy0uMTI3LjgxMy0uNTkgMS4yMi0xLjM4NyAxLjIyaC0xLjgwOWExIDEgMCAwIDAtLjk4Ni44MzNsLS40MDIgMi4zNzZhMSAxIDAgMCAwIC45ODYgMS4xNjdoMy41OTljLjMwMyAwIC43NC4wMDQgMS4zMTUuMDExLjU3NC4wMDggMS4wMDQuMDEyIDEuMjkuMDEydjIuMzYxYTEuODQyIDEuODQyIDAgMSAwIDMuNjgzIDBsLjAwMS0yLjI5Yy42Ny4wMTcgMS42NDIuMDI1IDIuOTE3LjAyNXYyLjI2NmExLjg0MSAxLjg0MSAwIDAgMCAzLjY4MiAwdi0yLjM2MmMxLjMwOC0uMDYzIDIuNDY4LS4xODIgMy40OC0uMzU4YTE0LjE1OSAxNC4xNTkgMCAwIDAgMi45MDUtLjgyNmMuOTI0LS4zNzQgMS42OTctLjg0IDIuMzE5LTEuMzk5LjYyMi0uNTU3IDEuMTM1LTEuMjY3IDEuNTQzLTIuMTI4LjQwNi0uODYuNjY1LTEuODU3Ljc3Ni0yLjk5LjIwOC0yLjIxNS0uMTUtMy45Mi0xLjA3NS01LjExNnpNMjIuMDg4IDE0LjMwM2MuNTE4LS4wMDguOTQ4LS4wMTYgMS4yOS0uMDI0LjM0NC0uMDA4LjgwNi4wMTIgMS4zODguMDYuNTgyLjA0OCAxLjA3Mi4xMTIgMS40Ny4xOTEuMzk5LjA4LjgzOC4yMTEgMS4zMTYuMzk1LjQ3OC4xODMuODYuNDA2IDEuMTQ3LjY3LjI4Ny4yNjIuNTMuNTk3LjczIDEuMDA0LjE5OS40MDYuMjk4Ljg3Mi4yOTggMS4zOTggMCAuNDQ3LS4wNzEuODUzLS4yMTQgMS4yMmEyLjI5OCAyLjI5OCAwIDAgMS0uNjQ2LjkyIDYuNTQgNi41NCAwIDAgMS0uODg1LjY0NmMtLjMwMy4xODQtLjY5LjMzMS0xLjE2LjQ0My0uNDcuMTExLS44OC4xOTktMS4yMy4yNjMtLjM1MS4wNjQtLjc5LjEwNy0xLjMxNi4xMzEtLjUyNi4wMjQtLjkyNS4wNC0xLjE5Ni4wNDgtLjI3LjAwOC0uNjQxLjAwOC0xLjExMiAwLS40Ny0uMDA4LS44ODguMDEyLS45NjguMDEydi03LjM0MWMuMTExIDAgLjU3LS4wMjggMS4wODgtLjAzNnptOS4xMSAxNi4yOTZhMy40IDMuNCAwIDAgMS0uNTg1Ljk1N2MtLjI0LjI3LS41NTUuNTEtLjk0NS43MTctLjM5LjIwOC0uNzcuMzc1LTEuMTM2LjUwMi0uMzY2LjEyOC0uODA5LjI0LTEuMzI3LjMzNS0uNTE4LjA5Ni0uOTcyLjE2My0xLjM2My4yMDMtLjM5LjA0LS44NTcuMDcyLTEuNC4wOTYtLjU0LjAyNC0uOTY0LjAzNi0xLjI2Ni4wMzYtLjMwMyAwLS42ODYtLjAwNC0xLjE0OC0uMDEyLS40NjMtLjAwOC0uOS4wNjctMS4wMjguMDY3di04LjA4M2MuMTI3IDAgLjY0OS0uMDg2IDEuMjc5LS4xMDJhNjIuNCA2Mi40IDAgMCAxIDEuNTQyLS4wMjRjLjM5OSAwIC45NDkuMDI0IDEuNjUuMDcyYTE0LjEgMTQuMSAwIDAgMSAxLjc3LjIxNGMuNDc4LjA5NiAxIC4yNDMgMS41NjYuNDQzLjU2Ni4xOTkgMS4wMjQuNDQyIDEuMzc1LjcyOXMuNjQ2LjY1NC44ODUgMS4xYy4yNC40NDYuMzU5Ljk1Ni4zNTkgMS41MyAwIC40NDctLjA3Ni44NTMtLjIyOCAxLjIyeiIvPjwvc3ZnPid9LDMyMjc1MChhKXsKYS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDQ4IDQ4IiB3aWR0aD0iNDgiIGhlaWdodD0iNDgiPjxwYXRoIGZpbGw9IiMxNTkyZTYiIGQ9Ik00My45MzkgMTYuMDc1Yy41MjgtNS4zNjgtNC4xNS0xMS4yNC02LjE2OS0xMi4wMDgtLjQ0OC0uMTctLjk5OS0uMDEyLTEuMjIuNDMtLjIxNi40MzItLjE1My45Mi4yMSAxLjIxMy4zNjQuMjkzIDIuMjQgMi4yOSAxLjQ2IDYuODI0LS4wODQuNDg5LS4wOSAxLjgxMy0yLjY1NSAxLjgxNC0uMjggMC0uNTM4LS4wMTgtLjc0OS0uMDQtLjE4Mi0uNC0uNDgyLS45MjQtLjkzOS0xLjY1Mi0uNzYtMS4yMTEtMS45NS0xLjg1LTMuNDQ0LTEuODUtLjg2NCAwLTEuODM0LjIzLTIuNjYzLjYzNC0uODg1LjQzMi0yLjk2LjY5LTMuNzguNzYyLS44MjEtLjA3Mi0yLjg5NS0uMzMtMy43OC0uNzYyLS44My0uNDAzLTEuOC0uNjM1LTIuNjYzLS42MzUtMS40OTQgMC0yLjY4NS42NC0zLjQ0NCAxLjg1LS40NTguNzMtLjc1NyAxLjI1My0uOTQgMS42NTNhNy4yNSA3LjI1IDAgMCAxLS43NDkuMDRjLTIuNTY1IDAtMi41NS0xLjMyOS0yLjY1NS0xLjgxNEM5IDkgMTEuMTE0IDUuODg2IDExLjIyIDUuNzFjLjEwNS0uMTc1LjQyNy0uNzguMjEtMS4yMTItLjIyLS40NDMtLjc3Mi0uNjAxLTEuMjItLjQzLTIuMDE4Ljc2OC02LjY5NiA2LjY0LTYuMTY4IDEyLjAwNy4zNjYgMy43MTUgMS45NDggNS4yMDggMy4zIDUuNzk5LTEuMDk1IDEuMS0yLjI3IDIuNTcyLTIuMzA0IDMuODQ3LS4wMjQuODguMTk2IDEuNTc1LjY1MSAyLjA2Ni40ODIuNTIgMS4xNzkuNzczIDIuMTI4Ljc3My40MzIgMCAuOTI3LS4wNTEgMS41MTUtLjE1NmEzOC44OCAzOC44OCAwIDAgMCAzLjUxOC0uODIyYy40NDIgMS4yNiAxLjI4NiAzLjU5NiAyLjAwOCA1LjE4YTE5LjQxNiAxOS40MTYgMCAwIDEgMS4yNTMgMy43ODJjLS4xNDUuOTI0LS41MDggNC4xODcgMS4yMDYgNS45ODUgMS4zNDUgMS40MTIgNCAxLjcwOCA1Ljk5IDEuNzA4LjMzNSAwIC41OC0uMDEuNjg0LS4wMTUuMTA0LjAwNS4zNDkuMDE1LjY4NC4wMTUgMS45OSAwIDQuNjQ1LS4yOTYgNS45OS0xLjcwOCAxLjcxNC0xLjc5OCAxLjM1LTUuMDYxIDEuMjA2LTUuOTg1YTE5LjQgMTkuNCAwIDAgMSAxLjI1My0zLjc4MmMuNzIyLTEuNTg0IDEuNTY2LTMuOTIgMi4wMDgtNS4xOC44MzYuMjM0IDIuMTY5LjU4MSAzLjUxOC44MjJhOC43MDYgOC43MDYgMCAwIDAgMS41MTUuMTU2Yy45NSAwIDEuNjQ2LS4yNTMgMi4xMjgtLjc3My40NTUtLjQ5MS42NzUtMS4xODYuNjUxLTIuMDY2LS4wMzQtMS4yNzUtMS4yMDktMi43NDctMi4zMDQtMy44NDcgMS4zNTItLjU5IDIuOTM0LTIuMDg0IDMuMy01Ljh6bS0yOC4xNCA4Ljg3NWMwLS44MjYuMzczLTEuNTk0IDEuMDIyLTIuMTA4YTEgMSAwIDAgMSAxLjI3OS4wM2wyLjUgMi4xODZhMSAxIDAgMCAxIC4yMDIgMS4yNjQgMi43MDMgMi43MDMgMCAwIDEtMi4zMTIgMS4zMTggMi42OTMgMi42OTMgMCAwIDEtMi42OS0yLjY5em01LjA4NSAxNi41MTNhMS41NCAxLjU0IDAgMCAxLS41NjEuMTA1Yy0uOTE4IDAtMS43Mi0uNzk4LTEuOTk1LTEuOTg2LS4zMTctMS4zNjQuMTU5LTIuNjMgMS4xMy0zLjAwNi4xOC0uMDcuMzctLjEwNi41NjEtLjEwNi45MTggMCAxLjcyLjc5OCAxLjk5NSAxLjk4Ni4zMTcgMS4zNjUtLjE1OSAyLjYzLTEuMTMgMy4wMDd6bTguNzY2LTEuODhjLS4yNzYgMS4xODctMS4wNzggMS45ODYtMS45OTYgMS45ODYtLjE5MiAwLS4zOC0uMDM2LS41Ni0uMTA2LS45NzItLjM3Ny0xLjQ0OC0xLjY0Mi0xLjEzMS0zLjAwNy4yNzUtMS4xODcgMS4wNzctMS45ODYgMS45OTUtMS45ODYuMTkyIDAgLjM4LjAzNi41Ni4xMDYuOTcyLjM3NyAxLjQ0OCAxLjY0MiAxLjEzMiAzLjAwN3ptLS4xOTEtMTEuOTQzYTIuNzAzIDIuNzAzIDAgMCAxLTIuMzEzLTEuMzE4IDEgMSAwIDAgMSAuMjAyLTEuMjY0bDIuNS0yLjE4NWExIDEgMCAwIDEgMS4yOC0uMDMxIDIuNjc1IDIuNjc1IDAgMCAxIDEuMDIgMi4xMDggMi42OTMgMi42OTMgMCAwIDEtMi42OSAyLjY5eiIvPjwvc3ZnPid9LDkxNDM5MyhhKXthLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMTcgMTciPjxwYXRoIGZpbGw9IiMzN2JjOWIiIGQ9Ik0xNS42MiA5LjMzNmMwLS4xODguMTY1LS4xOC4zMjItLjI1NC42MjQtLjI3OCAxLjA1OC0uODc4IDEuMDU4LTEuNTkgMC0uOTczLS44MDgtMS43NDgtMS44MDUtMS43NDhIOS4zNGMtLjExIDAtLjIwMi0uMTAzLS4yMDItLjIxMiAwLS4xMS4wOS0uMTk1LjIwMy0uMjA1LjQ5My0uMDQ1IDEuNDk1LS4wNDUgMS44MjQtLjQ0NS43Ny0xLjI5Ljk2LTIuNTEuOTgtMi42ODcuMDc0LS42MzMtLjA1My0xLjQyNi0uNjMyLTEuODE4LS44Mi0uNTUzLTEuNzY2LS41NzItMi40NC40NDYtLjQwMi42MDctMS41NjUgMS45Ny0yLjkxNyAzLjA5Ny0xLjc2NSAxLjQ3LTIuNjYgMi4yMTItMi42NjIgMi4yMTMtLjE5My4xNi0uNDQ2LjM1LS40NDYuNTU3LS4xMTYuMjA0LTEuMDIzIDEuOTMzLTEuMDIzIDQuNTk3IDAgMS41ODQuMzA3IDIuNzMuNTkgMy40Ni0xLjAwNy0uNDQ2LTEuNjAzLTEuNjg3LTEuNjAzLTMuNDYgMC0yLjUyNi44MjgtNC41MjUuODI4LTQuNTI1bC0uMDY2LS4wM2MtLjMzOC0uMTM2LS44LS4xMi0uOTc4LjI2NkMuNzUyIDcuMDg4IDAgOC41NjYgMCAxMS4yODhjMCAxLjM4NS4zMjcgMi41MzIuOTQ2IDMuMzIuNTEuNjQ4IDEuMzI2IDEuMDQ0IDIuMTU4IDEuMTQuMzI0LjUyOC45Mi43NyAxLjU1Mi44NzIuMzg2LjA2Mi44MDQuMTE0IDEuMjM2LjE1OC45ODcuMTEyIDIuNDMuMjIyIDQuMzA0LjIyMi42MDUgMCAxLjY5NyAwIDMuMjgyLS4wMzguNzk1LS4wMiAxLjM5OC0uNzEgMS4zNTItMS40ODdhMS4zNiAxLjM2IDAgMCAwLS4wOTUtLjQyNiAxLjc3IDEuNzcgMCAwIDAgMS4yNTMtMS42MDVjLjAyLS40NS0uMTQtLjg2OC0uNDEtMS4xOS41NjMtLjI4Ljk2LS44NC45ODctMS41MDNhMS43MSAxLjcxIDAgMCAwLS4yMDYtLjg4OGMtLjI2OC0uNDE1LS43NC0uMjMyLS43NC0uNTI4eiIvPjwvc3ZnPid9LAozOTU5MjEoYSl7YS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDE5IDE1Ij48cGF0aCBmaWxsPSIjM2JiM2U0IiBkPSJNOS41IDRMMTMgMEg2ek0wIDE1aDE5VjZIMHY5eiIvPjxwYXRoIGZpbGw9IiNmZmYiIGQ9Ik02LjE3MiAxMS44MjhBLjE3Mi4xNzIgMCAwIDEgNiAxMkg1di0xaDFjLjA5NSAwIC4xNzIuMDc3LjE3Mi4xN3YuNjU4ek01IDloMWMuMDk1IDAgLjE3Mi4wNzcuMTcyLjE3di42NThBLjE3Mi4xNzIgMCAwIDEgNiAxMEg1Vjl6bTIgLjE3QzcgOC41MjUgNi42NDcgOCA2IDhINHY1aDJjLjY0NyAwIDEtLjUyNSAxLTEuMTcydi0uNjU3YzAtLjI1NC0uMDk4LS40NzgtLjIzNy0uNjcuMTQtLjE5My4yMzctLjQxNy4yMzctLjY3MlY5LjE3ek05IDh2NGMwIC4wMDIgMSAwIDEgMCAuMDAzIDAgMC00IDAtNEg5em0yIDB2NGMwIC41NTItLjQ0MyAxLTEgMUg5Yy0uNTUzIDAtMS0uNDQ0LTEtMVY4aDN6Ii8+PHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSIjZmZmIiBkPSJNMTIgOGwxLjUgM0wxNSA4Ii8+PHBhdGggc3Ryb2tlPSIjZmZmIiBzdHJva2UtbGluZWNhcD0ic3F1YXJlIiBkPSJNMTMuNSAxMC41djIiLz48L3N2Zz4nfSw1ODgzNjMoYSl7YS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDE3IDE3Ij48cGF0aCBmaWxsPSIjZmY0YTY4IiBkPSJNMTUuOTQyIDcuOTE4Yy0uMTU3LS4wNzUtLjMyLS4wNjYtLjMyLS4yNTUgMC0uMjk1LjQ3LS4xMTIuNzM3LS41MjdhMS43MSAxLjcxIDAgMCAwIC4yMDUtLjg5IDEuNzU4IDEuNzU4IDAgMCAwLS45ODgtMS41Yy4yNzItLjMyNC40My0uNzQuNDEtMS4xOTJhMS43NjggMS43NjggMCAwIDAtMS4yNTItMS42MDMgMS4zOCAxLjM4IDAgMCAwIC4wOTUtLjQyNUMxNC44NzYuNzUgMTQuMjczLjA1NyAxMy40NzcuMDM4IDExLjg5MiAwIDEwLjggMCAxMC4xOTcgMCA4LjMyIDAgNi44NzYuMTEgNS44OS4yMjJjLS40MzIuMDQ0LS44NTIuMDk1LTEuMjQuMTU3LS42Ni4xMDYtMS4yOS4zNjQtMS42MDMuOTQ1LS4xMDUuMTk3LTEuMDQ0IDEuNjQtMS4wNDQgNC4zODcgMCAxLjMwMy4yMDUgMi4zODIuNDMyIDMuMTctLjktLjUwOC0xLjQyNS0xLjcwNi0xLjQyNS0zLjM3MiAwLTIuNTI2LjgyNy00LjUyNS44MjctNC41MjVMMS43Ny45NTVDMS40MzUuODE4Ljk3NC44MzQuNzk0IDEuMjIuNzUzIDEuMzEzIDAgMi43OSAwIDUuNTFjMCAxLjM4NS4zMjcgMi41MzMuOTQ2IDMuMzIuNDUuNTcgMS4xLjk0NyAxLjgyNSAxLjA5NS4wOTMuMjA1LjQ3My43ODIuNjY1Ljk0LjAwMi4wMDIuOTM3Ljc0NCAyLjcgMi4yMTQgMS4zNTMgMS4xMjYgMi41MjUgMi40OSAyLjkyOCAzLjA5Ny42NzQgMS4wMTcgMS42MjUgMSAyLjQ0NS40NDYuNTgtLjM5LjcwOC0xLjE4LjYzNS0xLjgxNC0uMDItLjE4LS4yMS0xLjM5My0uOTgtMi42ODMtLjMzLS40LTEuMzMtLjM5LTEuODIyLS40MzQtLjExLS4wMS0uMjAyLS4wNTUtLjIwMi0uMTY0IDAtLjExLjA5LS4xNS4yMDQtLjE1aDUuODUzYy45OTcgMCAxLjgwNS0uODM4IDEuODA1LTEuODFhMS44MyAxLjgzIDAgMCAwLTEuMDU4LTEuNjUyeiIvPjwvc3ZnPid9LDQ5ODk0OShhKXthLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMTkgMTgiPjxlbGxpcHNlIGZpbGw9IiMzN2JjOWIiIGN4PSI5IiBjeT0iOSIgcng9IjkiIHJ5PSI5Ii8+PHRleHQgZmlsbD0iI2ZmZiIgZm9udC1mYW1pbHk9IlRyZWJ1Y2hldCBNUyIgZm9udC1zaXplPSIxMSI+PHRzcGFuIHg9IjYiIHk9IjEzIj4kPC90c3Bhbj48L3RleHQ+PC9zdmc+J30sOTMzMzkyKGEpe2EuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxOSAxOCI+PGVsbGlwc2UgZmlsbD0iI2ZmNGE2OCIgY3g9IjkiIGN5PSI5IiByeD0iOSIgcnk9IjkiLz48dGV4dCBmaWxsPSIjZmZmIiBmb250LWZhbWlseT0iVHJlYnVjaGV0IE1TIiBmb250LXNpemU9IjExIj48dHNwYW4geD0iNiIgeT0iMTMiPuKCrDwvdHNwYW4+PC90ZXh0Pjwvc3ZnPid9LDc3NTA3MChhKXthLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMTcgMTciPjxwYXRoIGZpbGw9IiNmZjRhNjgiIGQ9Ik05Ljc5IDQuNDM1SDQuNTZDMiA3LjAzLTEuMTkgMTEuMTA1LjQ1IDE0LjA4YzEuMjk1IDIuMzUgNC4yMiAyLjk2IDcuMDYgMi45MTggMi44NC0uMDQgNS41OTItLjczIDYuNTM3LTIuOTE4IDEuMjA4LTIuNzk4LTEuODc0LTYuOTg3LTQuMjU1LTkuNjQ1em0tMS44MzMgOS4zM3YxLjAxOGgtLjg3NHYtLjk0N2MtLjU5Ny0uMDMtMS4xNzctLjIxLTEuNTE2LS40M2wuMjY4LTEuMTY0Yy4zNzQuMjMuOS40MzggMS40OC40MzguNTA4IDAgLjg1Ni0uMjIuODU2LS42MTggMC0uMzc4LS4yOC0uNjE3LS45NC0uODY3LS45NS0uMzU4LTEuNi0uODU3LTEuNi0xLjgyMyAwLS44NzcuNTYtMS41NjQgMS41MS0xLjc3M3YtLjk1SDh2Ljg3Yy42LjAzIDEgLjE3IDEuMjk0LjMzbC0uMjU4IDEuMTNjLS4yMzItLjExLS42NDItLjM0LTEuMjg0LS4zNC0uNTggMC0uNzY3LjI4LS43NjcuNTYgMCAuMzMuMzEyLjUzIDEuMDcuODUgMS4wNi40MiAxLjQ5Ljk2NCAxLjQ5IDEuODYgMCAuODg3LS41NjMgMS42NDQtMS41ODggMS44NDN6TTExLjMzNS40MjJjLS43MTctLjQxNy0xLjYgMS4wOTItMi4yMyAxLjA2OEM4LjQ3NSAxLjQ2NSA3Ljk3Ny0uMDI0IDcuMjU3IDBjLS43Mi4wMjUtMS4wMDQgMS4zOC0xLjU4MiAxLjUwNy0uNTc3LjEyNy0yLjAxNy0xLjYtMi41OTQtLjk5My0uNDYuNDkuOTcgMi40NTQgMS41MyAzLjE4Mmg1LjE2Yy41OS0uNzcgMi4xNi0yLjkzMiAxLjU3LTMuMjc1ek0xNC43NjMgNS4xTDE3IDIuNTVoLTQuNDc0eiIvPjwvc3ZnPid9LDc5OTU1OShhKXsKYS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDE5IDE4Ij48ZWxsaXBzZSBmaWxsPSIjM2JiM2U0IiBjeD0iOSIgY3k9IjkiIHJ4PSI5IiByeT0iOSIvPjx0ZXh0IGZpbGw9IiNmZmYiIGZvbnQtZmFtaWx5PSJUcmVidWNoZXQgTVMiIGZvbnQtc2l6ZT0iMTEiPjx0c3BhbiB4PSI2IiB5PSIxMyI+wqM8L3RzcGFuPjwvdGV4dD48L3N2Zz4nfSw1MDY2ODUoYSl7YS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDE3IDE3Ij48cGF0aCBmaWxsPSIjMzdiYzliIiBkPSJNOS41NzQgNC40MzVINC40NkMxLjk1NCA3LjAzLTEuMTYzIDExLjEwNS40NCAxNC4wOGMxLjI2NCAyLjM1IDQuMTI2IDIuOTYgNi45MDMgMi45MTggMi43NzYtLjA0IDUuNDY4LS43MyA2LjM5Mi0yLjkxOCAxLjE4LTIuNzk4LTEuODMzLTYuOTg3LTQuMTYtOS42NDV6bS0xLjc5MyA5LjMzdjEuMDE4aC0uODV2LS45NDdjLS41OC0uMDMtMS4xNS0uMjEtMS40OC0uNDNsLjI2LTEuMTY0Yy4zNy4yMy44OC40MzggMS40NS40MzguNSAwIC44NC0uMjIuODQtLjYxOCAwLS4zNzgtLjI4LS42MTctLjkyLS44NjctLjkzLS4zNTgtMS41Ny0uODU3LTEuNTctMS44MjMgMC0uODc3LjU0LTEuNTY0IDEuNDgtMS43NzN2LS45NWguODZ2Ljg3Yy41ODYuMDMuOTguMTcgMS4yNjYuMzNsLS4yNiAxLjEzYy0uMjMtLjExLS42My0uMzQtMS4yNi0uMzQtLjU2NSAwLS43NS4yOC0uNzUuNTYgMCAuMzMuMzA3LjUzIDEuMDQ4Ljg1IDEuMDM4LjQyIDEuNDU2Ljk2IDEuNDU2IDEuODYgMCAuODgtLjU1IDEuNjQtMS41NSAxLjg0ek0xMS4wOS40MjJjLS43LS40MTctMS41NjUgMS4wOTItMi4xOCAxLjA2OEM4LjI4OCAxLjQ2NSA3LjgtLjAyNCA3LjA5OCAwYy0uNzA2LjAyNS0uOTg0IDEuMzgtMS41NSAxLjUwN1MzLjU3Ni0uMDkzIDMuMDEuNTE0Yy0uNDU4LjQ5Ljk0MiAyLjQ1NCAxLjQ5IDMuMTgyaDUuMDVjLjU3My0uNzcgMi4xMDctMi45MzIgMS41MzItMy4yNzV6TTE0LjUgM0wxNyA2aC01eiIvPjwvc3ZnPid9LDM4ODU5NihhKXthLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMTcgMTgiPjxnIGZpbGw9IiM5ZDllOWUiPjxjaXJjbGUgY3g9IjguNSIgY3k9IjcuNSIgcj0iNy41Ii8+PHBhdGggZD0iTTEgOGgxNXY3SDF6Ii8+PC9nPjxwYXRoIGZpbGw9IiNkNWFkNDIiIGQ9Ik0xIDE1aDE1djNIMXoiLz48ZyBmaWxsPSJub25lIiBzdHJva2U9IiNmZmI3MDEiIHN0cm9rZS13aWR0aD0iLjc1Ij48cGF0aCBkPSJNMS4wMjIgMThjLS4zNS00IDMuNjctMy44OSAyLjg3My0uMzI2TTQuMDIyIDE4Yy0uMzUtNCAzLjY3LTMuODkgMi44NzMtLjMyNk03LjAyMiAxOGMtLjM1LTQgMy42Ny0zLjg5IDIuODczLS4zMjZNMTAuMDIyIDE4Yy0uMzUtNCAzLjY3LTMuODkgMi44NzMtLjMyNk0xMy4wMjIgMThjLS4zNS00IDMuNjctMy44OSAyLjg3My0uMzI2Ii8+PC9nPjxwYXRoIGZpbGw9IiMwMDAiIGQ9Ik0zLjA0IDEyVjUuNTU4aDIuMjQ2Yy41NzQgMCAuOTg1LjA1NyAxLjIzLjE3My4yNDcuMTE3LjQ1LjMxOC42MDcuNjAzLjE1OC4yODYuMjM3LjYyOC4yMzcgMS4wMjYgMCAuNTAzLS4xMi45MS0uMzYyIDEuMjE3LS4yNDIuMzA3LS41ODUuNS0xLjAzLjU4LjIyOC4xNjQuNDE3LjM0My41NjYuNTM4LjE1LjE5NS4zNTMuNTQ0LjYxIDEuMDQ4TDcuNzg4IDEyaC0xLjI3bC0uNzc0LTEuNDAyYy0uMjc4LS41MDctLjQ2Ny0uODI0LS41NjctLjk1YS44MzYuODM2IDAgMCAwLS4zMTYtLjI2NWMtLjExLS4wNDgtLjI5LS4wNzItLjUzNi0uMDcyaC0uMjJWMTJIMy4wNHptMS4wNjQtMy43MThoLjc5Yy40ODQgMCAuNzkyLS4wMi45MjQtLjA2M2EuNTkuNTkgMCAwIDAgLjMyLS4yNmMuMDgzLS4xMjcuMTI0LS4zLjEyNC0uNTEzIDAtLjIwNS0uMDQtLjM3LS4xMjMtLjQ5NGEuNjI3LjYyNyAwIDAgMC0uMzM1LS4yNTdjLS4xLS4wMzItLjM4OC0uMDUtLjg2Ni0uMDVoLS44MzZ2MS42MzZ6TTguMzMyIDEyVjUuNTU4aDEuMDYzVjEySDguMzMyem0yLjA4MyAwVjUuNTU4aDEuNzEzYy42NCAwIDEuMDU3LjAzIDEuMjUzLjA5Mi4zMTQuMS41NzMuMzEyLjc3Ni42MzcuMjA0LjMyNS4zMDYuNzQ0LjMwNiAxLjI1NyAwIC40NjYtLjA4OC44NTYtLjI2NCAxLjE3LS4xNzYuMzE2LS4zOTUuNTM3LS42Ni42NjUtLjI2My4xMjYtLjcxNy4xOS0xLjM2LjE5aC0uN1YxMmgtMS4wNjN6bTEuMDYzLTUuMzUzdjEuODNoLjU5Yy4zOTQgMCAuNjYzLS4wMy44MDUtLjA4NWEuNzIuNzIgMCAwIDAgLjM1LS4zLjk4Ny45ODcgMCAwIDAgLjEzNi0uNTM1Ljk4My45ODMgMCAwIDAtLjE0Mi0uNTQuNjk0LjY5NCAwIDAgMC0uMzQ3LS4yOTVjLS4xMzctLjA1LS40MjgtLjA3NS0uODczLS4wNzVoLS41MnoiLz48L3N2Zz4nfSw2NjA3NDMoYSl7YS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDE5IDE1Ij48cGF0aCBmaWxsPSIjZmY0YTY4IiBkPSJNOS41IDBMMTMgNEg2ek0wIDE1aDE5VjZIMHY5eiIvPjxwYXRoIGZpbGw9IiNmZmYiIGQ9Ik0xNSAxMlY4aC0xdjVoM3YtMWgtMnpNMTEgOGgtMXY1aDN2LTFoLTJWOHpNNiA4djVoM3YtMUg3di0xaDJ2LTFIN1Y5aDJWOEg2ek0yIDEzdi0xaDEuOThsLjAyLS45OC0uOTgtLjAyQzIuNDU4IDExIDIgMTAuNTQyIDIgOS45OHYtLjk2QzIgOC40NiAyLjQ2IDggMy4wMiA4SDV2MUgzLjAyTDMgOS45OGwuOTguMDJjLjU2MiAwIDEuMDIuNDU4IDEuMDIgMS4wMnYuOTZDNSAxMi41NCA0LjU0MiAxMyAzLjk4IDEzSDJ6Ii8+PC9zdmc+J30sNjc4MTU4KGEpewphLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMTkgMTgiPjxlbGxpcHNlIGZpbGw9IiNmZmM4NGEiIGN4PSI5IiBjeT0iOSIgcng9IjkiIHJ5PSI5Ii8+PHRleHQgZmlsbD0iI2ZmZiIgZm9udC1mYW1pbHk9IlRyZWJ1Y2hldCBNUyIgZm9udC1zaXplPSIxMSI+PHRzcGFuIHg9IjYiIHk9IjEzIj4xPC90c3Bhbj48L3RleHQ+PC9zdmc+J30sNzQwNjY5KGEpe2EuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxOSAxOCI+PGVsbGlwc2UgZmlsbD0iI2IxNjJkMSIgY3g9IjkiIGN5PSI5IiByeD0iOSIgcnk9IjkiLz48dGV4dCBmaWxsPSIjZmZmIiBmb250LWZhbWlseT0iVHJlYnVjaGV0IE1TIiBmb250LXNpemU9IjExIj48dHNwYW4geD0iNiIgeT0iMTMiPsKlPC90c3Bhbj48L3RleHQ+PC9zdmc+J30sNTg2NTE4KGEpe2EuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0OCA0OCIgd2lkdGg9IjQ4IiBoZWlnaHQ9IjQ4Ij48cGF0aCBmaWxsPSIjODI4Mzg0IiBkPSJNMTAgMjZsMTMgOHYxMXoiLz48cGF0aCBmaWxsPSIjMmYzMDMwIiBkPSJNMzYgMjZMMjMgNDVWMzR6Ii8+PHBhdGggZmlsbD0iIzgyODM4NCIgZD0iTTEwIDIzTDIzIDF2MTZ6Ii8+PHBhdGggZmlsbD0iIzJmMzAzMCIgZD0iTTM2IDIzTDIzIDF2MTZ6Ii8+PHBhdGggZmlsbD0iIzM0MzUzNSIgZD0iTTEwIDIzbDEzIDhWMTd6Ii8+PHBhdGggZmlsbD0iIzEzMTMxMyIgZD0iTTM2IDIzbC0xMyA4VjE3eiIvPjwvc3ZnPid9LDUwNjc4NyhhKXthLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgNDggNDgiIHdpZHRoPSI0OCIgaGVpZ2h0PSI0OCI+PHBhdGggZmlsbD0iI2Y0OTAwYyIgZD0iTTM5LjM0OSA0My41OTljMS40NTcgMS40NTcgMy43NzYgMS41MjYgNS4xNS4xNSAxLjM3Ni0xLjM3NCAxLjMwNy0zLjY5My0uMTUtNS4xNUwxNy4xNSAxMS40Yy0xLjQ1Ni0xLjQ1Ni0zLjc3NS0xLjUyNS01LjE1LS4xNXMtMS4zMDYgMy42OTQuMTUxIDUuMTUxTDM5LjM1IDQzLjZ6Ii8+PHBhdGggZmlsbD0iIzY2NzU3ZiIgZD0iTTI5LjUgNVMyMiAxLjI1IDE1Ljc1IDcuNUw3IDE2LjI1cy0xLjI1LTEuMjUtMi41IDBMMy4yNSAxNy41UzIgMTguNzUgMy4yNSAyMGw1IDVzMS4yNSAxLjI1IDIuNSAwTDEyIDIzLjc1czEuMjUtMS4yNSAwLTIuNWwtLjA5OC0uMDk4Yy45NjMtLjkyOCAyLjQwNC0xLjg3NSAzLjg0OC0xLjE1Mmw1LTVTMTkuNSAxMS4yNSAyMiA4Ljc1czMuNzUtMi41IDYuMjUtMi41UzI5LjUgNSAyOS41IDUiLz48L3N2Zz4nfSw2NjU5OChhKXthLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgNDggNDgiIHdpZHRoPSI0OCIgaGVpZ2h0PSI0OCI+PHBhdGggZmlsbD0iI2Y0OTAwYyIgZD0iTTQ1IDI1YzAtMi41NzktLjQ1OS01LjA0OS0xLjMtNy4zMzUtLjU3NSA2LjczNi00LjE2NiAxMC4xOTYtNy45MTkgOC41ODUtMy41MTYtMS41MS0xLjE0Ni03LjM5Ni0uOTcxLTEwLjIwNS4yOTUtNC43NjEtLjAxNS0xMC4yMTEtOC42NjQtMTQuNzQyIDMuNTk0IDYuODc1LjQxNiAxMS4xNDUtMi45MTcgMTEuNDA2LTMuNjk4LjI4Ny03LjA4My0zLjE3OC01LjgzMy04LjgwMy00LjA0NyAyLjk4My00LjE2NiA4LjAwMy0yLjkxNyAxMS4yNSAxLjMwMiAzLjM4NS0uMDUyIDYuMTk4LTMuMjI5IDYuNTEtMy41NDkuMzUtNS41MjEtMy44MDEtMy43MDMtMTAuNDE2QTIxLjE3IDIxLjE3IDAgMCAwIDIuNSAyNWMwIDExLjczNiA5LjUxNCAyMS4yNSAyMS4yNSAyMS4yNVM0NSAzNi43MzYgNDUgMjUiLz48cGF0aCBmaWxsPSIjZmZjYzRkIiBkPSJNMzguNzUgMzguNzVjMC0yLjczNC0uNzMtNS4yOTUtMi4wMDYtNy41MDEuMTgzIDMuODU1LTMuMjAzIDUuMzY2LTUuMDI1IDQuNjM2LTIuNjMyLTEuMDU0LTEuOTI3LTIuODY0LTIuNjA0LTYuNjE0cy0zLjI4MS02LjM1NS03LjEzNi03LjVjMi44MTIgNy45MTYtMS41NTkgMTAuODM0LTMuODUgMTEuMzU1LTIuMzQuNTMzLTQuNjkyLS4wMDEtNC45Ni01LjAwOEExNC45NiAxNC45NiAwIDAgMCA4Ljc1IDM4Ljc1YzAgLjUxOC4wNjUuOTI0LjA0MyAxLjIzMS0uMDE0LjIwMi4xNzUuMjg0LjIyNC4zMzUuMDY3LjA2Ny4xMi4xMzEuMjUxLjI1My4zMTYuMjk0LjY0LjU2MiAxLjA4LjkyLjg0OC42OSAyLjIyNCAxLjYxNSAzLjQ2NCAyLjMwOCAyLjI5NSAxLjI4MyA1Ljc5NiAyLjQ1OSA5LjkzOCAyLjQ1OXM3Ljc3NS0xLjM2NSAxMC4wMTMtMi40NmMxLjI3Ni0uNjIzIDMuMjI0LTIuMTcyIDMuMjI0LTIuMTcyIDEuOTcxLTEuNjc2IDEuODEzLTEuMTM4IDEuNzYzLTIuODc0Ii8+PC9zdmc+J30sNzk2MzQxKGEpewphLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgNDggNDgiIHdpZHRoPSI0OCIgaGVpZ2h0PSI0OCI+PHBhdGggZmlsbD0iI2EwMDQxZSIgZD0iTTI0LjUgMi4yNWw4Ljc1IDEwLTEuMjUgMjAtMjAgMS4yNS0xMC04Ljc1czcuNDk5IDAgMTUtNy41IDcuNS0xNSA3LjUtMTUiLz48cGF0aCBmaWxsPSIjZmZhYzMzIiBkPSJNMiAyLjIxNnM5Ljk3NC0uMDQ1IDEzLjc1IDMuNzMxIDMuNTE2IDEzLjgwMyAzLjUxNiAxMy44MDNTOS41IDE5Ljc0OCA1Ljc1IDE1Ljk5OCAyIDIuMjE2IDIgMi4yMTYiLz48cGF0aCBmaWxsPSIjZmZjYzRkIiBkPSJNMTIgNy4yNDlhNSA1IDAgMSAxIDAgMTAgNSA1IDAgMCAxIDAtMTAiLz48cGF0aCBmaWxsPSIjNTVhY2VlIiBkPSJNNDUuNzUgNDUuOTk5czAtMTIuNS0xMi41LTI3LjVjLTYuMjUtNy41LTE3LjUtNy41LTIwLTVzLTIuNSAxMy43NSA1IDIwYzE1IDEyLjUgMjcuNSAxMi41IDI3LjUgMTIuNSIvPjxwYXRoIGZpbGw9IiMwMDAiIGQ9Ik0zOS41IDM0Ljc0OWE0Ljk5NSA0Ljk5NSAwIDAgMC0yLjk1LTQuNTUyQTQuOTYgNC45NiAwIDAgMSAzNyAzMi4yNWE1IDUgMCAwIDEtNSA1IDQuOTcgNC45NyAwIDAgMS0yLjA1LS40NDkgNC45OTMgNC45OTMgMCAwIDAgOS41NS0yLjA1MSIvPjxwYXRoIGZpbGw9IiNhMDA0MWUiIGQ9Ik0xMC43NSAxMXM1IDAgNi4yNSAxLjI1IDEzLjc0OSAxNi4yNTEgMTIuNSAxNy41QzI4LjI1MSAzMC45OTkgMTMuMjUgMTguNDk5IDEyIDE3LjI0OVMxMC43NSAxMSAxMC43NSAxMSIvPjwvc3ZnPid9LDcxMDE5OShhKXthLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgNDggNDgiIHdpZHRoPSI0OCIgaGVpZ2h0PSI0OCI+PHBhdGggZmlsbD0iI2ZmY2M0ZCIgZD0iTTMuMDc1IDIxLjg4YzAgMTEuNTIxIDkuMzQgMjAuODYgMjAuODYgMjAuODZzMjAuODU3LTkuMzQgMjAuODU3LTIwLjg2YzAtMTEuNTE5LTkuMzM4LTIwLjg1OC0yMC44NTktMjAuODU4LTExLjUxOSAwLTIwLjg1OSA5LjM0LTIwLjg1OSAyMC44NTkiLz48ZyBmaWxsPSIjNjY0NTAwIj48cGF0aCBkPSJNMjAuNTUzIDE0LjcxYzAgMS44LTEuMTY4IDMuMjYtMi42MDggMy4yNi0xLjQ0IDAtMi42MDctMS40Ni0yLjYwNy0zLjI2IDAtMS43OTkgMS4xNjgtMy4yNTkgMi42MDctMy4yNTkgMS40NCAwIDIuNjA4IDEuNDYgMi42MDggMy4yNm0xMy44MTEgMS4zMDNjMCAxLjgtMS4xNjcgMy4yNi0yLjYwOCAzLjI2LTEuNDM5IDAtMi42MDctMS40Ni0yLjYwNy0zLjI2IDAtMS44IDEuMTY4LTMuMjYgMi42MDctMy4yNiAxLjQ0MSAwIDIuNjA4IDEuNDYgMi42MDggMy4yNk0xMy4wNzYgOS4yNzhhMS4xOTYgMS4xOTYgMCAwIDEtLjUxLS41MTljLS4yODEtLjU2LS4wNTItMS4yMDguNTEyLTEuNDUgNS41NjItMi4zODcgMTAuMDM4LS4wNTcgMTAuMjI1LjA0My41NjUuMzAyLjc5My45NzYuNTEgMS41MDUtLjI4Mi41MjgtLjk2NS43MTItMS41My40MTQtLjE2LS4wODMtMy42OTEtMS44NjYtOC4xODQuMDYyLS4zMzUuMTQyLS43MTMuMTEtMS4wMjMtLjA1NW02LjYxMiAxNy4yNTlhMS4xOTggMS4xOTggMCAwIDEtLjM2LS42MzNjLS4xMjktLjYxMi4yNTktMS4xODEuODY3LTEuMjcgNS45ODctLjg4NCA5LjcxNSAyLjUxNSA5Ljg3MyAyLjY2LjQ3LjQzNS41MTUgMS4xNDMuMTA3IDEuNTgzLS40MDcuNDM4LTEuMTE1LjQ0MS0xLjU4My4wMDgtLjEzNS0uMTItMy4wOTItMi43NDgtNy45MjktMi4wMzVhMS4xODIgMS4xODIgMCAwIDEtLjk3NS0uMzEzIi8+PHBhdGggZD0iTTI3LjEwNCAxNC4xNjdhMS4yMDUgMS4yMDUgMCAwIDEtLjQ3Mi0uNTUzYy0uMjQ0LS41NzYuMDMtMS4yMS42MDgtMS40MTMgNS43MTItMi4wMDMgMTAuMDIuNjI1IDEwLjIuNzM5LjU0MS4zMzkuNzIzIDEuMDI2LjQwNiAxLjUzNi0uMzE2LjUwOC0xLjAxMi42NDUtMS41NTMuMzEtLjE1Ni0uMDk1LTMuNTU2LTIuMTEzLTguMTctLjQ5Ni0uMzQ0LjEyLS43Mi4wNjMtMS4wMi0uMTIzIi8+PC9nPjxwYXRoIGZpbGw9IiNmNDkwMGMiIGQ9Ik0yMi45OSA0Ni44MjNzMS42NS0uNTM2IDEuODYzLTEuNzYzYy4yMjYtMS4yNjYtLjgxMy0xLjUyMS0uODEzLTEuNTIxczEuMzU3LS4yNzIgMS41MjgtMS43OTRjLjE2LTEuNDM0LTEuMTI0LTEuNzc3LTEuMTI0LTEuNzc3czEuMjY1LS41MjIgMS4zMjUtMi4wMDdjLjA1LTEuMjUtMS4yOTgtMS44NjEtMS4yOTgtMS44NjFzNi41NjgtMS41OSA3LjI0Mi0xLjc0N2MuNjczLS4xNTggMS43MjMtLjgwMyAxLjM5NS0yLjIxLS4zMjQtMS40MDgtMS41Ny0xLjQ1Ny0yLjIxMy0xLjMwNy0uNjQ0LjE1LTguNzkyIDIuMDQyLTExLjYwMyAyLjY5Ny0uMy4wNy0xLjcwNS4zOTQtMS44NzYuNDM1LS43MDQuMTY2LTEuMDI0LS4xNDQtLjUyOC0uNjY3LjY2My0uNjk5IDEuMDg2LTEuNDcyIDEuMjM1LTIuNzU1LjE1NS0xLjM1LS4zMDMtMy4wMTYtLjU2NS0zLjY2Mi0uNDg4LTEuMi0xLjMxLTIuMTUtMi4yNi0yLjQ3NS0xLjQ4NC0uNTA5LTIuNTM4LjQxOC0yLjAxIDIuMDM1Ljc4NyAyLjQxOC4yNzIgNC40LTEuMDg3IDUuNTk2LTMuMTkzIDIuODEyLTQuNjc5IDQuODE4LTMuNjkgOS4wOTEgMS4wNzkgNC42NiA1LjcwNyA3LjY2IDEwLjM2OCA2LjU4bDQuMTExLS44ODgiLz48L3N2Zz4nfSw2NDA1ODIoYSl7InVzZSBzdHJpY3QiCjthLmV4cG9ydHM9SlNPTi5wYXJzZSgnW3siY2F0ZWdvcnkiOiJCYXNpYyBMYXRpbiIsInJhbmdlIjpbMzIsMTI3XX0seyJjYXRlZ29yeSI6IkdyZWVrIGFuZCBDb3B0aWMiLCJyYW5nZSI6Wzg4MCwxMDIzXX0seyJjYXRlZ29yeSI6IkN5cmlsbGljIiwicmFuZ2UiOlsxMDI0LDEyNzldfSx7ImNhdGVnb3J5IjoiQXJtZW5pYW4iLCJyYW5nZSI6WzEzMjgsMTQyM119LHsiY2F0ZWdvcnkiOiJIZWJyZXciLCJyYW5nZSI6WzE0MjQsMTUzNV19LHsiY2F0ZWdvcnkiOiJBcmFiaWMiLCJyYW5nZSI6WzE1MzYsMTc5MV19LHsiY2F0ZWdvcnkiOiJTeXJpYWMiLCJyYW5nZSI6WzE3OTIsMTg3MV19LHsiY2F0ZWdvcnkiOiJUaGFhbmEiLCJyYW5nZSI6WzE5MjAsMTk4M119LHsiY2F0ZWdvcnkiOiJOS28iLCJyYW5nZSI6WzE5ODQsMjA0N119LHsiY2F0ZWdvcnkiOiJTYW1hcml0YW4iLCJyYW5nZSI6WzIwNDgsMjExMV19LHsiY2F0ZWdvcnkiOiJNYW5kYWljIiwicmFuZ2UiOlsyMTEyLDIxNDNdfSx7ImNhdGVnb3J5IjoiRGV2YW5hZ2FyaSIsInJhbmdlIjpbMjMwNCwyNDMxXX0seyJjYXRlZ29yeSI6IkJlbmdhbGkiLCJyYW5nZSI6WzI0MzIsMjU1OV19LHsiY2F0ZWdvcnkiOiJHdXJtdWtoaSIsInJhbmdlIjpbMjU2MCwyNjg3XX0seyJjYXRlZ29yeSI6Ikd1amFyYXRpIiwicmFuZ2UiOlsyNjg4LDI4MTVdfSx7ImNhdGVnb3J5IjoiT3JpeWEiLCJyYW5nZSI6WzI4MTYsMjk0M119LHsiY2F0ZWdvcnkiOiJUYW1pbCIsInJhbmdlIjpbMjk0NCwzMDcxXX0seyJjYXRlZ29yeSI6IlRlbHVndSIsInJhbmdlIjpbMzA3MiwzMTk5XX0seyJjYXRlZ29yeSI6Ikthbm5hZGEiLCJyYW5nZSI6WzMyMDAsMzMyN119LHsiY2F0ZWdvcnkiOiJNYWxheWFsYW0iLCJyYW5nZSI6WzMzMjgsMzQ1NV19LHsiY2F0ZWdvcnkiOiJTaW5oYWxhIiwicmFuZ2UiOlszNDU2LDM1ODNdfSx7ImNhdGVnb3J5IjoiVGhhaSIsInJhbmdlIjpbMzU4NCwzNzExXX0seyJjYXRlZ29yeSI6IkxhbyIsInJhbmdlIjpbMzcxMiwzODM5XX0seyJjYXRlZ29yeSI6IlRpYmV0YW4iLCJyYW5nZSI6WzM4NDAsNDA5NV19LHsiY2F0ZWdvcnkiOiJNeWFubWFyIiwicmFuZ2UiOls0MDk2LDQyNTVdfSx7ImNhdGVnb3J5IjoiR2VvcmdpYW4iLCJyYW5nZSI6WzQyNTYsNDM1MV19LHsiY2F0ZWdvcnkiOiJIYW5ndWwgSmFtbyIsInJhbmdlIjpbNDM1Miw0NjA3XX0seyJjYXRlZ29yeSI6IkV0aGlvcGljIiwicmFuZ2UiOls0NjA4LDQ5OTFdfSx7ImNhdGVnb3J5IjoiT2doYW0iLCJyYW5nZSI6WzU3NjAsNTc5MV19LHsiY2F0ZWdvcnkiOiJSdW5pYyIsInJhbmdlIjpbNTc5Miw1ODg3XX0seyJjYXRlZ29yeSI6IlRhZ2Fsb2ciLCJyYW5nZSI6WzU4ODgsNTkxOV19LHsiY2F0ZWdvcnkiOiJIYW51bm9vIiwicmFuZ2UiOls1OTIwLDU5NTFdfSx7ImNhdGVnb3J5IjoiQnVoaWQiLCJyYW5nZSI6WzU5NTIsNTk4M119LHsiY2F0ZWdvcnkiOiJUYWdiYW53YSIsInJhbmdlIjpbNTk4NCw2MDE1XX0seyJjYXRlZ29yeSI6IktobWVyIiwicmFuZ2UiOls2MDE2LDYxNDNdfSx7ImNhdGVnb3J5IjoiTW9uZ29saWFuIiwicmFuZ2UiOls2MTQ0LDYzMTldfSx7ImNhdGVnb3J5IjoiTGltYnUiLCJyYW5nZSI6WzY0MDAsNjQ3OV19LHsiY2F0ZWdvcnkiOiJUYWkgTGUiLCJyYW5nZSI6WzY0ODAsNjUyN119LHsiY2F0ZWdvcnkiOiJOZXcgVGFpIEx1ZSIsInJhbmdlIjpbNjUyOCw2NjIzXX0seyJjYXRlZ29yeSI6IkJ1Z2luZXNlIiwicmFuZ2UiOls2NjU2LDY2ODddfSx7ImNhdGVnb3J5IjoiVGFpIFRoYW0iLCJyYW5nZSI6WzY2ODgsNjgzMV19LHsiY2F0ZWdvcnkiOiJCYWxpbmVzZSIsInJhbmdlIjpbNjkxMiw3MDM5XX0seyJjYXRlZ29yeSI6IlN1bmRhbmVzZSIsInJhbmdlIjpbNzA0MCw3MTAzXX0seyJjYXRlZ29yeSI6IkJhdGFrIiwicmFuZ2UiOls3MTA0LDcxNjddfSx7ImNhdGVnb3J5IjoiTGVwY2hhIiwicmFuZ2UiOls3MTY4LDcyNDddfSx7ImNhdGVnb3J5IjoiRGluZ2JhdHMiLCJyYW5nZSI6Wzk5ODQsMTAxNzVdfSx7ImNhdGVnb3J5IjoiQ29wdGljIiwicmFuZ2UiOlsxMTM5MiwxMTUxOV19LHsiY2F0ZWdvcnkiOiJUaWZpbmFnaCIsInJhbmdlIjpbMTE1NjgsMTE2NDddfSx7ImNhdGVnb3J5IjoiSGlyYWdhbmEiLCJyYW5nZSI6WzEyMzUyLDEyNDQ3XX0seyJjYXRlZ29yeSI6IkthdGFrYW5hIiwicmFuZ2UiOlsxMjQ0OCwxMjU0M119LHsiY2F0ZWdvcnkiOiJCb3BvbW9mbyIsInJhbmdlIjpbMTI1NDQsMTI1OTFdfSx7ImNhdGVnb3J5IjoiSGFuZ3VsIENvbXBhdGliaWxpdHkgSmFtbyIsInJhbmdlIjpbMTI1OTIsMTI2ODddfSx7ImNhdGVnb3J5IjoiS2FuYnVuIiwicmFuZ2UiOlsxMjY4OCwxMjcwM119LHsiY2F0ZWdvcnkiOiJDSksgVW5pZmllZCBJZGVvZ3JhcGhzIiwicmFuZ2UiOlsxOTk2OCw0MDk1OV19LHsiY2F0ZWdvcnkiOiJZaSBTeWxsYWJsZXMiLCJyYW5nZSI6WzQwOTYwLDQyMTI3XX0seyJjYXRlZ29yeSI6IllpIFJhZGljYWxzIiwicmFuZ2UiOls0MjEyOCw0MjE5MV19LHsiY2F0ZWdvcnkiOiJMaXN1IiwicmFuZ2UiOls0MjE5Miw0MjIzOV19LHsiY2F0ZWdvcnkiOiJWYWkiLCJyYW5nZSI6WzQyMjQwLDQyNTU5XX0seyJjYXRlZ29yeSI6IkJhbXVtIiwicmFuZ2UiOls0MjY1Niw0Mjc1MV19LHsiY2F0ZWdvcnkiOiJTeWxvdGkgTmFncmkiLCJyYW5nZSI6WzQzMDA4LDQzMDU1XX0seyJjYXRlZ29yeSI6IlBoYWdzLXBhIiwicmFuZ2UiOls0MzA3Miw0MzEzNV19LHsiY2F0ZWdvcnkiOiJTYXVyYXNodHJhIiwicmFuZ2UiOls0MzEzNiw0MzIzMV19LHsiY2F0ZWdvcnkiOiJSZWphbmciLCJyYW5nZSI6WzQzMzEyLDQzMzU5XX0seyJjYXRlZ29yeSI6IkphdmFuZXNlIiwicmFuZ2UiOls0MzM5Miw0MzQ4N119LHsiY2F0ZWdvcnkiOiJDaGFtIiwicmFuZ2UiOls0MzUyMCw0MzYxNV19LHsiY2F0ZWdvcnkiOiJUYWkgVmlldCIsInJhbmdlIjpbNDM2NDgsNDM3NDNdfSx7ImNhdGVnb3J5IjoiTWVldGVpIE1heWVrIEV4dGVuc2lvbnMiLCJyYW5nZSI6WzQzNzQ0LDQzNzc1XX0seyJjYXRlZ29yeSI6Ik1lZXRlaSBNYXllayIsInJhbmdlIjpbNDM5NjgsNDQwMzFdfSx7ImNhdGVnb3J5IjoiSGFuZ3VsIFN5bGxhYmxlcyIsInJhbmdlIjpbNDQwMzIsNTUyMTVdfSx7ImNhdGVnb3J5IjoiTHljaWFuIiwicmFuZ2UiOls2NjE3Niw2NjIwN119LHsiY2F0ZWdvcnkiOiJDYXJpYW4iLCJyYW5nZSI6WzY2MjA4LDY2MjcxXX0seyJjYXRlZ29yeSI6IlVnYXJpdGljIiwicmFuZ2UiOls2NjQzMiw2NjQ2M119LHsiY2F0ZWdvcnkiOiJTaGF2aWFuIiwicmFuZ2UiOls2NjY0MCw2NjY4N119LHsiY2F0ZWdvcnkiOiJPc21hbnlhIiwicmFuZ2UiOls2NjY4OCw2NjczNV19LHsiY2F0ZWdvcnkiOiJFbGJhc2FuIiwicmFuZ2UiOls2NjgxNiw2Njg2M119LHsiY2F0ZWdvcnkiOiJDYXVjYXNpYW4gQWxiYW5pYW4iLCJyYW5nZSI6WzY2ODY0LDY2OTI3XX0seyJjYXRlZ29yeSI6IkN5cHJpb3QgU3lsbGFiYXJ5IiwicmFuZ2UiOls2NzU4NCw2NzY0N119LHsiY2F0ZWdvcnkiOiJQYWxteXJlbmUiLCJyYW5nZSI6WzY3NjgwLDY3NzExXX0seyJjYXRlZ29yeSI6Ik5hYmF0YWVhbiIsInJhbmdlIjpbNjc3MTIsNjc3NTldfSx7ImNhdGVnb3J5IjoiSGF0cmFuIiwicmFuZ2UiOls2NzgwOCw2NzgzOV19LHsiY2F0ZWdvcnkiOiJMeWRpYW4iLCJyYW5nZSI6WzY3ODcyLDY3OTAzXX0seyJjYXRlZ29yeSI6IktoYXJvc2h0aGkiLCJyYW5nZSI6WzY4MDk2LDY4MTkxXX0seyJjYXRlZ29yeSI6Ik1hbmljaGFlYW4iLCJyYW5nZSI6WzY4Mjg4LDY4MzUxXX0seyJjYXRlZ29yeSI6IkF2ZXN0YW4iLCJyYW5nZSI6WzY4MzUyLDY4NDE1XX0seyJjYXRlZ29yeSI6IlBzYWx0ZXIgUGFobGF2aSIsInJhbmdlIjpbNjg0ODAsNjg1MjddfSx7ImNhdGVnb3J5IjoiQnJhaG1pIiwicmFuZ2UiOls2OTYzMiw2OTc1OV19LHsiY2F0ZWdvcnkiOiJLYWl0aGkiLCJyYW5nZSI6WzY5NzYwLDY5ODM5XX0seyJjYXRlZ29yeSI6IlNvcmEgU29tcGVuZyIsInJhbmdlIjpbNjk4NDAsNjk4ODddfSx7ImNhdGVnb3J5IjoiQ2hha21hIiwicmFuZ2UiOls2OTg4OCw2OTk2N119LHsiY2F0ZWdvcnkiOiJNYWhhamFuaSIsInJhbmdlIjpbNjk5NjgsNzAwMTVdfSx7ImNhdGVnb3J5IjoiU2hhcmFkYSIsInJhbmdlIjpbNzAwMTYsNzAxMTFdfSx7ImNhdGVnb3J5IjoiS2hvamtpIiwicmFuZ2UiOls3MDE0NCw3MDIyM119LHsiY2F0ZWdvcnkiOiJNdWx0YW5pIiwicmFuZ2UiOls3MDI3Miw3MDMxOV19LHsiY2F0ZWdvcnkiOiJLaHVkYXdhZGkiLCJyYW5nZSI6WzcwMzIwLDcwMzk5XX0seyJjYXRlZ29yeSI6IkdyYW50aGEiLCJyYW5nZSI6WzcwNDAwLDcwNTI3XX0seyJjYXRlZ29yeSI6IlRpcmh1dGEiLCJyYW5nZSI6WzcwNzg0LDcwODc5XX0seyJjYXRlZ29yeSI6IlNpZGRoYW0iLCJyYW5nZSI6WzcxMDQwLDcxMTY3XX0seyJjYXRlZ29yeSI6Ik1vZGkiLCJyYW5nZSI6WzcxMTY4LDcxMjYzXX0seyJjYXRlZ29yeSI6IlRha3JpIiwicmFuZ2UiOls3MTI5Niw3MTM3NV19LHsiY2F0ZWdvcnkiOiJBaG9tIiwicmFuZ2UiOls3MTQyNCw3MTQ4N119LHsiY2F0ZWdvcnkiOiJQYXUgQ2luIEhhdSIsInJhbmdlIjpbNzIzODQsNzI0NDddfSx7ImNhdGVnb3J5IjoiQ3VuZWlmb3JtIiwicmFuZ2UiOls3MzcyOCw3NDc1MV19LHsiY2F0ZWdvcnkiOiJNcm8iLCJyYW5nZSI6WzkyNzM2LDkyNzgzXX0seyJjYXRlZ29yeSI6IkJhc3NhIFZhaCIsInJhbmdlIjpbOTI4ODAsOTI5MjddfSx7ImNhdGVnb3J5IjoiUGFoYXdoIEhtb25nIiwicmFuZ2UiOls5MjkyOCw5MzA3MV19LHsiY2F0ZWdvcnkiOiJNaWFvIiwicmFuZ2UiOls5Mzk1Miw5NDExMV19LHsiY2F0ZWdvcnkiOiJEdXBsb3lhbiIsInJhbmdlIjpbMTEzNjY0LDExMzgyM119XScpCn19XSk7"}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/51031.535f27b776f394c7e43a.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:12.996Z","timestamp":1785148032996,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/51031.535f27b776f394c7e43a.js HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:13 GMT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a632877-ab54\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Fri, 24 Jul 2026 08:55:19 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/24/2026 10:31:23\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 9e09c29c9a3b11053ffcc00aa06df14a\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":43860,"size_decoded":14999,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (12910)","md5":"cd701b7197ef255d09501c8c91343508","sha1":"d84cab0e7c13c5801a0a2c6df4aba3f32e6b316d","sha256":"714cb61cc6924e6d1e8241ff191fc5aeb03baebbbaa81c15949838a09fb406f6","sha512":"ae8f1406dc1e5c9e8082d922e8a0d6257582733129c26617fefb99243013fa5f0bc9eb178dd69665786b8fb7fd0b7ccdd7ed719fe60676564b82598253efca75","ssdeep":"768:CcDTi4tT8YE9xSrNtzDcsIj/XWm9hIz4dp9VUZ+n5Vz2mpehIeVeLh9zoJZemINE:hryj/XWgGET5Vz2mp9emzoJZemINyKfS","tlshash":"7e131a35652af5f79ee941ea543754829bbc00523444042876bccdec278caf9f23aef9","first_seen":"2026-07-24T11:36:48.046407Z","last_seen":"2026-07-27T13:00:41.41546Z","times_seen":1468,"resource_available":true,"data":"KHNlbGYud2VicGFja0NodW5rdHJhZGluZ3ZpZXc9c2VsZi53ZWJwYWNrQ2h1bmt0cmFkaW5ndmlld3x8W10pLnB1c2goW1s1MTAzMV0sezE1Njg1MChlLHQsXyl7InVzZSBzdHJpY3QiO18uZCh0LHt0ZWxlbWV0cnk6KCk9Pmh9KTt2YXIgcz1fKDk0ODM4MCksaT1fKDIyMTA2MSksbj1fKDM4NDAxNyksYT1fKDM3NzIyNikscj1fKDExNzMxMyk7XygzMDAyODYpO2NvbnN0IG89KDAsaS5nZXRMb2dnZXIpKCJDb21tb24uVGVsZW1ldHJ5IiksbD17ZGVmYXVsdDoxNWUzLHNpdGU6M2U1fSxjPVsiYmVmb3JlX3dlYnNvY2tldF9jb25uZWN0aW9uX3RpbWVfZnJhbWUiLCJ3ZWJzb2NrZXRfY29ubmVjdGlvbl90aW1lX2ZyYW1lIiwiZmlyc3Rfc2VyaWVzX2Z1bGxfdGltZV9mcmFtZSIsInBhZ2VfZnVsbF9sb2FkX3RpbWVfZnJhbWUiLCJwYWdlX2xvYWRfdGltZV9mcmFtZSJdO2NvbnN0IGg9bmV3IGNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5yZXBvcnRTZW50PW5ldyBzLkRlbGVnYXRlLHRoaXMudGltZUNvdW50ZXJzPXtzZXJpZXM6e21hcmtzOltdfSxzdHVkeTp7fSxwaW5lOnt9fSx0aGlzLl90aW1lb3V0SWRzPXt9LHRoaXMuX2NvbW1vbkFkZGl0aW9uYWxEYXRhPXtjbHVzdGVyOm51bGwsdXNlcklkOiIwIn0sdGhpcy5fcmVwb3J0U3Rhc2g9e319c2V0U2Vzc2lvbkluZm8oZSl7Y29uc3QgdD10aGlzLl9wYXJzZUNsdXN0ZXIoZSk7bnVsbCE9PXQmJih0aGlzLl9jb21tb25BZGRpdGlvbmFsRGF0YS5jbHVzdGVyPXQpfXNlbmRSZXBvcnQoZSx0LF8pe2lmKCF0aGlzLl9pc0FibGVUb1NlbmRSZXBvcnQodCkpcmV0dXJuO2NvbnN0IHM9dGhpcy5fZ2V0U3Vic2VydmljZVR5cGUoZSksaT10aGlzLl9nZXRIb3N0KGUscyk7aWYobnVsbCE9PWkpe2lmKF89dm9pZCAwPT09Xz97Y291bnQ6MX06Xyx0aGlzLl9hZGRSZXBvcnRUb1N0YXNoKF8sdCxpKSwhdGhpcy5fdGltZW91dElkc1tlXSl7Y29uc3QgdD1sW2VdPz9sLmRlZmF1bHQ7dGhpcy5fdGltZW91dElkc1tlXT1zZXRUaW1lb3V0KHRoaXMuX3NlbmRUZWxlbWV0cnlUb1NlcnZpY2UuYmluZCh0aGlzLGUsaSksdCl9fWVsc2Ugby5sb2dFcnJvcihgVW5hYmxlIHRvIGdldCBob3N0IGZvciBjb3VudGVyOiAke3R9LCBtZXRyaWMgdHlwZTogJHtlfSwgc2VyaXZjZSB0eXBlOiAke3N9YCl9c2VuZENoYXJ0UmVwb3J0KGUsdCxfPSEwKXt0aGlzLl9zZW5kU2VydmljZVNwZWNpZmllZFJlcG9ydCgiY2hhcnRzIixlLHQsXyl9c2VuZExpbmVUb29sc1N0b3JhZ2VSZXBvcnQoZSx0LF89ITApe3RoaXMuX3NlbmRTZXJ2aWNlU3BlY2lmaWVkUmVwb3J0KCJsaW5lX3Rvb2xzX3N0b3JhZ2UiLGUsdCxfKX1fc2VuZFNlcnZpY2VTcGVjaWZpZWRSZXBvcnQoZSx0LF8scz0hMCl7dGhpcy5fdXBkYXRlVXNlckluZm8oKSxfPXZvaWQgMD09PV8/e2NvdW50OjF9Ol8scyYmKF89dGhpcy5fYXBwZW5kQ29tbW9uQWRkaXRpb25hbEluZm8oXyxbImNsdXN0ZXIiLCJ1c2VySWQiXSkpLHRoaXMuc2VuZFJlcG9ydChlLHQsXyl9X3VwZGF0ZVVzZXJJbmZvKCl7Y29uc3QgZT0idXNlciJpbiB3aW5kb3cmJiJpZCJpbiB3aW5kb3cudXNlcj93aW5kb3cudXNlci5pZDoiMCI7dGhpcy5fY29tbW9uQWRkaXRpb25hbERhdGEudXNlcklkPVN0cmluZyhlKX1faXNBYmxlVG9TZW5kUmVwb3J0KGUpe2NvbnN0IHQ9d2luZG93LlRFTEVNRVRSWV9IT1NUUyxfPWMuaW5jbHVkZXMoZSkscz1Cb29sZWFuKHdpbmRvdy5UcmFkaW5nVmlldz8ub25DaGFydFBhZ2V8fCgwLGEub25XaWRnZXQpKCkpO3JldHVybiB0JiYoIV98fHMpfV9zZW5kVGVsZW1ldHJ5VG9TZXJ2aWNlKGUsdCl7aWYodGhpcy5fcmVwb3J0U3Rhc2guaGFzT3duUHJvcGVydHkodCkpe2NvbnN0IGU9dGhpcy5fY3JvcFBhcmFtcyh0aGlzLl9yZXBvcnRTdGFzaFt0XSksXz10aGlzLl9yZW5hbWVBbGxQYXJhbXMoZSkscz17ZXZlbnQ6InJlcG9ydF9zdGFzaCIscGFyYW1zOnRoaXMuX2NsZWFuQWxsUGFyYW1zKF8pfTtvLmxvZ0RlYnVnKGBSZXBvcnQgdG8gaG9zdDogJHt0fTsgc3Rhc2g6ICR7SlNPTi5zdHJpbmdpZnkodGhpcy5fcmVwb3J0U3Rhc2hbdF0pfWApLHRoaXMucmVwb3J0U2VudC5maXJlKHRoaXMuX3JlcG9ydFN0YXNoW3RdKSxkZWxldGUgdGhpcy5fcmVwb3J0U3Rhc2hbdF0sKDAsbi5mZXRjaCkoYCR7dH0vcmVwb3J0YCx7bWV0aG9kOiJQT1NUIixib2R5OkpTT04uc3RyaW5naWZ5KHMpfSl9dGhpcy5fdGltZW91dElkc1tlXT1udWxsfV9nZXRIb3N0KGUsdCl7Y29uc3QgXz13aW5kb3cuVEVMRU1FVFJZX0hPU1RTLHM9X1tlXSYmX1tlXVt0XTtyZXR1cm4gQm9vbGVhbihzKT9zOm51bGx9X2dldFN1YnNlcnZpY2VUeXBlKGUpe2lmKCFbImNoYXJ0cyIsInNpdGUiXS5pbmNsdWRlcyhlKSlyZXR1cm4iYWxsIjtsZXQgdD0iZnJlZSI7Y29uc3QgXz13aW5kb3cudXNlci5pc19wcm87cmV0dXJuImNoYXJ0cyI9PT1lJiYoMCxyLmlzT25Nb2JpbGVBcHBQYWdlKSgib2xkIik/dD1fPyJpb3NfcHJvIjoiaW9zX2ZyZWUiOiJjaGFydHMiPT09ZSYmKDAsci5pc09uTW9iaWxlQXBwUGFnZSkoIm5ldyIpP3Q9Xz8iYW5kcm9pZF9wcm8iOiJhbmRyb2lkX2ZyZWUiOigwLGEub25XaWRnZXQpKCk/dD0id2lkZ2V0IjpfJiYodD0icHJvIiksdH1fcGFyc2VDbHVzdGVyKGUpe2xldCB0O3RyeXt0PUpTT04ucGFyc2UoZSkuc2Vzc2lvbl9pZH1jYXRjaChlKXtyZXR1cm4gby5sb2dFcnJvcigiQ291bGQgbm90IHBhcnNlIGNsdXN0ZXIgaWQgKHNlc3Npb24gaWQpIiksbnVsbH1jb25zdCBfPS8oLipAKSguKikvZ2kuZXhlYyh0KTtyZXR1cm4gbnVsbCE9PV8mJl8ubGVuZ3RoPj0zP19bMl06bnVsbH1fYXBwZW5kQ29tbW9uQWRkaXRpb25hbEluZm8oZSx0KXtyZXR1cm4gdC5mb3JFYWNoKCh0PT57dCBpbiB0aGlzLl9jb21tb25BZGRpdGlvbmFsRGF0YSYmKGUuYWRkaXRpb25hbD1lLmFkZGl0aW9uYWx8fHt9LGUuYWRkaXRpb25hbFt0XT10aGlzLl9jb21tb25BZGRpdGlvbmFsRGF0YVt0XSl9KSksZX1fY3JvcFBhcmFtcyhlKXsKZm9yKGNvbnN0IHQgaW4gZSllLmhhc093blByb3BlcnR5KHQpJiZlW3RdLmxlbmd0aD4xZTMmJihlLnRvb19tdWNoX21ldHJpY3NfZnJhbWU9ZS50b29fbXVjaF9tZXRyaWNzX2ZyYW1lPz9bXSxlLnRvb19tdWNoX21ldHJpY3NfZnJhbWUucHVzaCh7dmFsdWU6ZVt0XS5sZW5ndGgsYWRkaXRpb25hbDp7ZXZlbnQ6dH19KSxkZWxldGUgZVt0XSk7cmV0dXJuIGV9X3JlbmFtZUFsbFBhcmFtcyhlKXtjb25zdCB0PXt9O2Zvcihjb25zdCBfIGluIGUpZS5oYXNPd25Qcm9wZXJ0eShfKSYmKHRbX109W10sZVtfXS5mb3JFYWNoKChlPT57dFtfXS5wdXNoKHRoaXMuX3JlbmFtZUVudHJ5UGFyYW1zKGUpKX0pKSk7cmV0dXJuIHR9X3JlbmFtZUVudHJ5UGFyYW1zKGUpe2NvbnN0IHQ9e2NvdW50OiJjIix2YWx1ZToidiIsdGV4dDoidCIsYWRkaXRpb25hbDoiYSJ9O3JldHVybiBPYmplY3Qua2V5cyhlKS5yZWR1Y2UoKChfLHMpPT4oX1t0W3NdXT1lW3NdLF8pKSx7fSl9X2NsZWFuQWxsUGFyYW1zKGUpe2NvbnN0IHQ9e307Zm9yKGNvbnN0IF8gaW4gZSlpZihlLmhhc093blByb3BlcnR5KF8pKXt0W19dPVtdO2NvbnN0IHM9e2M6MH07ZVtfXS5mb3JFYWNoKChlPT57Y29uc3QgaT10aGlzLl9jbGVhbkVudHJ5UGFyYW1zKGUpLG49T2JqZWN0LmtleXMoaSkubGVuZ3RoOzE9PT1uJiZ2b2lkIDAhPT1pLmM/cy5jKz1pLmM6bj4wJiZ0W19dLnB1c2goaSl9KSkscy5jPjAmJnRbX10ucHVzaChzKSwwPT09dFtfXS5sZW5ndGgmJmRlbGV0ZSB0W19dfXJldHVybiB0fV9jbGVhbkVudHJ5UGFyYW1zKGUpe2NvbnN0IHQ9T2JqZWN0LmtleXMoZSkucmVkdWNlKCgodCxfKT0+ImMiIT09XyYmInQiIT09X3x8ZVtfXT8odFtfXT1lW19dLHQpOnQpLHt9KTtyZXR1cm4iYyJpbiB0fHwidiJpbiB0fHwidCJpbiB0P3Q6e319X2FkZFJlcG9ydFRvU3Rhc2goZSx0LF8pe18gaW4gdGhpcy5fcmVwb3J0U3Rhc2h8fCh0aGlzLl9yZXBvcnRTdGFzaFtfXT17fSksdCBpbiB0aGlzLl9yZXBvcnRTdGFzaFtfXXx8KHRoaXMuX3JlcG9ydFN0YXNoW19dW3RdPVtdKSxPYmplY3Qua2V5cyhlKS5sZW5ndGg+MCYmdGhpcy5fcmVwb3J0U3Rhc2hbX11bdF0ucHVzaChlKX19fSw5NjQ0ODYoZSx0LF8peyJ1c2Ugc3RyaWN0IjtfLmQodCx7ZGVlcEV4dGVuZDooKT0+aX0pO2NvbnN0IHM9bmV3IFNldChbIl9fcHJvdG9fXyIsInByb3RvdHlwZSIsImNvbnN0cnVjdG9yIl0pO2Z1bmN0aW9uIGkoZSwuLi50KXtyZXR1cm4gZSYmIm9iamVjdCI9PXR5cGVvZiBlPygwPT09dC5sZW5ndGh8fHQuZm9yRWFjaCgodD0+e251bGwhPXQmJiJvYmplY3QiPT10eXBlb2YgdCYmT2JqZWN0LmtleXModCkuZm9yRWFjaCgoXz0+e2lmKGZ1bmN0aW9uKGUpe3JldHVybiBzLmhhcyhlKX0oXykpcmV0dXJuO2NvbnN0IGE9ZVtfXSxyPXRbX107aWYocj09PWUpcmV0dXJuO2NvbnN0IG89QXJyYXkuaXNBcnJheShyKTtpZihyJiYobihyKXx8bykpe2xldCB0O3Q9bz9hJiZBcnJheS5pc0FycmF5KGEpP2E6W106YSYmbihhKT9hOnt9LGVbX109aSh0LHIpfWVsc2Ugdm9pZCAwIT09ciYmKGVbX109cil9KSl9KSksZSk6ZX1mdW5jdGlvbiBuKGUpe2lmKCFlfHwiW29iamVjdCBPYmplY3RdIiE9PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChlKSlyZXR1cm4hMTtjb25zdCB0PU9iamVjdC5nZXRQcm90b3R5cGVPZihlKTtpZighdClyZXR1cm4hMDtjb25zdCBfPU9iamVjdC5oYXNPd25Qcm9wZXJ0eS50b1N0cmluZyxzPXQuaGFzT3duUHJvcGVydHkoImNvbnN0cnVjdG9yIikmJnQuY29uc3RydWN0b3I7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIHMmJl8uY2FsbChzKT09PV8uY2FsbChPYmplY3QpfX0sNzY4NzYwKGUsdCxfKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gcygpe2xldCBlLHQ7cmV0dXJue3Byb21pc2U6bmV3IFByb21pc2UoKChfLHMpPT57ZT1fLHQ9c30pKSxyZWplY3Q6dCxyZXNvbHZlOmV9fV8uZCh0LHtjcmVhdGVEZWZlcnJlZFByb21pc2U6KCk9PnN9KX0sNTg5NzQ5KGUsdCxfKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gcyhlKXtpZih2b2lkIDA9PT1lKXJldHVybiIiO2lmKGUgaW5zdGFuY2VvZiBFcnJvcil7bGV0IHQ9ZS5tZXNzYWdlO3JldHVybiBlLnN0YWNrJiYodCs9IiAiK2Uuc3RhY2spLHR9cmV0dXJuInN0cmluZyI9PXR5cGVvZiBlP2UudG9TdHJpbmcoKTpKU09OLnN0cmluZ2lmeShlKX1fLmQodCx7ZXJyb3JUb1N0cmluZzooKT0+c30pfSwxMTYzMTAoZSx0LF8peyJ1c2Ugc3RyaWN0IjtfLmQodCx7Y3JlYXRlSnNvblNlcmlhbGl6YWJsZUNhY2hlOigpPT5hfSk7dmFyIHM9XygxMzg2MzgpO2NsYXNzIGl7Y29uc3RydWN0b3IoZSl7dGhpcy5fY2FjaGU9ZX1hc3luYyBnZXRWYWx1ZShlKXtjb25zdCB0PWF3YWl0IHRoaXMuX2NhY2hlLm1hdGNoKGUpO2lmKCF0KXJldHVybiBudWxsO3JldHVybiJhcHBsaWNhdGlvbi9qc29uIj09PSgwLHMuZW5zdXJlTm90TnVsbCkodC5oZWFkZXJzLmdldCgiQ29udGVudC1UeXBlIikpP3QuanNvbigpOnQudGV4dCgpfWFzeW5jIHNldFZhbHVlKGUsdCl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiB0P3RoaXMuX2NhY2hlLnB1dChlLG5ldyBSZXNwb25zZSh0LHtoZWFkZXJzOnsiY29udGVudC10eXBlIjoidGV4dC9wbGFpbiJ9fSkpOnRoaXMuX2NhY2hlLnB1dChlLG5ldyBSZXNwb25zZShKU09OLnN0cmluZ2lmeSh0KSx7aGVhZGVyczp7ImNvbnRlbnQtdHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifX0pKX1hc3luYyBtaWdyYXRlVmFsdWUoZSx0KXtjb25zdCBfPWF3YWl0IHRoaXMuZ2V0VmFsdWUoZSk7XyYmKGF3YWl0IHRoaXMuc2V0VmFsdWUodCxfKSxhd2FpdCB0aGlzLl9jYWNoZS5kZWxldGUoZSkpfWFzeW5jIGRlbGV0ZVZhbHVlKGUpe3JldHVybiB0aGlzLl9jYWNoZS5kZWxldGUoZSl9fWNsYXNzIG57Y29uc3RydWN0b3IoKXt0aGlzLl9kYXRhPW5ldyBNYXB9YXN5bmMgZ2V0VmFsdWUoZSl7cmV0dXJuIHRoaXMuX2RhdGEuZ2V0KGUpPz9udWxsfWFzeW5jIHNldFZhbHVlKGUsdCl7dGhpcy5fZGF0YS5zZXQoZSx0KX1hc3luYyBtaWdyYXRlVmFsdWUoZSx0KXsKdGhpcy5fZGF0YS5oYXMoZSkmJih0aGlzLl9kYXRhLnNldCh0LHRoaXMuX2RhdGEuZ2V0KGUpKSx0aGlzLl9kYXRhLmRlbGV0ZShlKSl9YXN5bmMgZGVsZXRlVmFsdWUoZSl7cmV0dXJuIHRoaXMuX2RhdGEuZGVsZXRlKGUpfX1hc3luYyBmdW5jdGlvbiBhKGUpe3RyeXtjb25zdCB0PWF3YWl0IGNhY2hlcy5vcGVuKGUpO3JldHVybiBuZXcgaSh0KX1jYXRjaHtyZXR1cm4gbmV3IG59fX0sNDAzNihlLHQsXyl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHMoZSl7Y29uc3QgdD17fTtpZigtMT09PWUuaW5kZXhPZigiQCIpKXQuc2hvcnRJZD1lLHQucGFja2FnZUlkPSJ0di1iYXNpY3N0dWRpZXMiLHQuaWQ9ZSsiQCIrdC5wYWNrYWdlSWQsdC52ZXJzaW9uPTE7ZWxzZXtjb25zdCBfPWUuc3BsaXQoIkAiKTt0LnNob3J0SWQ9X1swXTtjb25zdCBzPV9bMV0uc3BsaXQoIi0iKTtpZigzPT09cy5sZW5ndGgpdC5wYWNrYWdlSWQ9cy5zbGljZSgwLDIpLmpvaW4oIi0iKSx0LmlkPXQuc2hvcnRJZCsiQCIrdC5wYWNrYWdlSWQsdC52ZXJzaW9uPXBhcnNlSW50KHNbMl0pO2Vsc2UgaWYoMT09PXMubGVuZ3RoJiYiZGVjaXNpb25iYXIiPT09c1swXSl0LnBhY2thZ2VJZD0ibGVzLSIrc1swXSx0LmlkPXQuc2hvcnRJZCsiQCIrdC5wYWNrYWdlSWQsdC52ZXJzaW9uPTE7ZWxzZXtpZigxIT09cy5sZW5ndGgpdGhyb3cgbmV3IEVycm9yKCJ1bmV4cGVjdGVkIHN0dWR5IGlkOiIrZSk7dC5wYWNrYWdlSWQ9InR2LSIrc1swXSx0LmlkPXQuc2hvcnRJZCsiQCIrdC5wYWNrYWdlSWQsdC52ZXJzaW9uPTF9fWlmKHQuZnVsbElkPXQuaWQrIi0iK3QudmVyc2lvbiwidHYtc2NyaXB0aW5nIj09PXQucGFja2FnZUlkKXtjb25zdCBlPXQuc2hvcnRJZDtpZigwPT09ZS5pbmRleE9mKCJTY3JpcHQkIil8fDA9PT1lLmluZGV4T2YoIlN0cmF0ZWd5U2NyaXB0JCIpKXtjb25zdCBfPWUuaW5kZXhPZigiXyIpO3QucHJvZHVjdElkPV8+PTA/ZS5zdWJzdHJpbmcoMCxfKTp0LnBhY2thZ2VJZH1lbHNlIHQucHJvZHVjdElkPXQucGFja2FnZUlkfWVsc2UgdC5wcm9kdWN0SWQ9dC5wYWNrYWdlSWQ7cmV0dXJuIHR9Xy5kKHQse3BhcnNlSWRTdHJpbmc6KCk9PnN9KX0sNzgwOTc1KGUsdCxfKXsidXNlIHN0cmljdCI7dmFyIHM7Xy5kKHQse0NoYXJ0QXBpTWVzc2FnZU1ldGhvZDooKT0+c30pLGZ1bmN0aW9uKGUpe2UuQ29ubmVjdGVkPSJjb25uZWN0ZWQiLGUuRGlzY29ubmVjdGVkPSJkaXNjb25uZWN0ZWQiLGUuUmVjb25uZWN0QmFpbG91dD0icmVjb25uZWN0X2JhaWxvdXQifShzfHwocz17fSkpfSwzMDkwNTIoZSx0LF8peyJ1c2Ugc3RyaWN0IjtfLmQodCx7UVVPVEVfRklFTERTOigpPT5pLFFVT1RFX0ZJRUxEU19DQUNIRTooKT0+bn0pO3ZhciBzPV8oMTM4NjM4KQo7Y29uc3QgaT1uZXcgU2V0KFsicHJvX25hbWUiLCJiYXNlX25hbWUiLCJsb2dvIiwibG9nb2lkIiwiY3VycmVuY3ktbG9nb2lkIiwiYmFzZS1jdXJyZW5jeS1sb2dvaWQiLCJzb3VyY2UtbG9nb2lkIiwic2hvcnRfbmFtZSIsIndlYl9zaXRlX3VybCIsInByb19wZXJtIiwidGltZXpvbmUiLCJjdXJyZW50X3Nlc3Npb24iLCJzZXNzaW9uX2hvbGlkYXlzIiwibGFzdF9wcmljZSIsImxwX3RpbWUiLCJzdWJzZXNzaW9ucyIsInByZXZfY2xvc2VfcHJpY2UiLCJvcGVuX3ByaWNlIiwiaGlnaF9wcmljZSIsImxvd19wcmljZSIsInByaWNlXzUyX3dlZWtfaGlnaCIsInByaWNlXzUyX3dlZWtfbG93IiwiYXNrIiwiYXNrX3NpemUiLCJiaWQiLCJiaWRfc2l6ZSIsInJjaCIsInJjaHAiLCJydGMiLCJydGNfdGltZSIsIm5jaCIsIm5jaHAiLCJudGMiLCJudGNfdGltZSIsImRhdGFfZnJlcXVlbmN5IiwicmVmZXJlbmNlLWxhc3QtcGVyaW9kLXN0YXJ0IiwiYnVzaW5lc3NfZGVzY3JpcHRpb24iLCJ3ZWJfc2l0ZV91cmwiLCJmaWdpIiwibnVtYmVyX29mX2VtcGxveWVlcyIsImZsb2F0X3NoYXJlc19vdXRzdGFuZGluZyIsImVhcm5pbmdzX3JlbGVhc2VfbmV4dF9jYWxlbmRhcl9kYXRlIiwicm9vdCIsImRlc2NyaXB0aW9uIiwiZXhjaGFuZ2UiLCJsaXN0ZWRfZXhjaGFuZ2UiLCJ0eXBlIiwiY291bnRyeV9jb2RlIiwicHJvdmlkZXJfaWQiLCJpc190cmFkYWJsZSIsInNlY3RvciIsInR5cGVzcGVjcyIsInZpc2libGUtcGxvdHMtc2V0IiwiaW5kdXN0cnkiLCJjdXJyZW5jeV9pZCIsImxhc3RfcHJpY2UiLCJmcmFjdGlvbmFsIiwibWlubW92IiwibWlubW92ZTIiLCJwcmljZXNjYWxlIiwidmFyaWFibGVfdGlja19zaXplIiwiY2hhbmdlIiwiY2hhbmdlX3BlcmNlbnQiLCJ2b2x1bWUiLCJhdmVyYWdlX3ZvbHVtZSIsIm1hcmtldF9jYXBfYmFzaWMiLCJtYXJrZXRfY2FwX2NhbGMiLCJ0b3RhbF9yZXZlbnVlIiwiZWFybmluZ3NfcGVyX3NoYXJlX2Jhc2ljX3R0bSIsInByaWNlX2Vhcm5pbmdzX3R0bSIsImJldGFfMV95ZWFyIiwiZHBzX2NvbW1vbl9zdG9ja19wcmltX2lzc3VlX2Z5IiwiZGl2aWRlbmRzX3lpZWxkIiwiZWFybmluZ3NfcmVsZWFzZV9uZXh0X2RhdGUiLCJlYXJuaW5nc19wZXJfc2hhcmVfZm9yZWNhc3RfbmV4dF9mcSIsImVhcm5pbmdzX3B1YmxpY2F0aW9uX3R5cGVfbmV4dF9mcSIsImVhcm5pbmdzX3JlbGVhc2VfZGF0ZSIsImVhcm5pbmdzX3Blcl9zaGFyZV9mcSIsImVhcm5pbmdzX3Blcl9zaGFyZV9mb3JlY2FzdF9mcSIsImZvcmVjYXN0X3JhdyIsImxhc3RfcmVsZWFzZV9kYXRlIiwibmV4dF9yZWxlYXNlX2RhdGUiLCJyZWZlcmVuY2VfbGFzdF9wZXJpb2QiLCJmdW5kYW1lbnRhbF9jdXJyZW5jeV9jb2RlIiwibnVtYmVyX29mX2VtcGxveWVlcyIsIndlYl9zaXRlX3VybCIsImJ1c2luZXNzX2Rlc2NyaXB0aW9uIiwiZm91bmRlZCIsImNlbyIsImZsb2F0X3NoYXJlc19vdXRzdGFuZGluZyIsInRvdGFsX3NoYXJlc19vdXRzdGFuZGluZyIsImRpdmlkZW5kX3BheW91dF9yYXRpb190dG0iLCJkaXZpZGVuZHNfeWllbGRfY3VycmVudCIsImRpdmlkZW5kX2V4X2RhdGVfdXBjb21pbmciLCJkaXZpZGVuZF9hbW91bnRfdXBjb21pbmciLCJkaXZpZGVuZF9hbW91bnRfcmVjZW50IiwiZGl2aWRlbmRfZXhfZGF0ZV9yZWNlbnQiLCJkaXZpZGVuZF9hbW91bnRfaCIsImRpdmlkZW5kX3BheW1lbnRfZGF0ZV91cGNvbWluZyIsImRpdmlkZW5kX3BheW1lbnRfZGF0ZV9yZWNlbnQiLCJ0b3RhbF9yZXZlbnVlX2ZxX2giLCJ0b3RhbF9yZXZlbnVlX2Z5X2giLCJuZXRfaW5jb21lX2Z5X2giLCJuZXRfaW5jb21lX2ZxX2giLCJ0b3RhbF9hc3NldHNfZnlfaCIsInRvdGFsX2Fzc2V0c19mcV9oIiwidG90YWxfbGlhYmlsaXRpZXNfZnlfaCIsInRvdGFsX2xpYWJpbGl0aWVzX2ZxX2giLCJjYXNoX2Zfb3BlcmF0aW5nX2FjdGl2aXRpZXNfZnlfaCIsImNhc2hfZl9vcGVyYXRpbmdfYWN0aXZpdGllc19mcV9oIiwiY2FzaF9mX2ludmVzdGluZ19hY3Rpdml0aWVzX2Z5X2giLCJjYXNoX2ZfaW52ZXN0aW5nX2FjdGl2aXRpZXNfZnFfaCIsImNhc2hfZl9maW5hbmNpbmdfYWN0aXZpdGllc19meV9oIiwiY2FzaF9mX2ZpbmFuY2luZ19hY3Rpdml0aWVzX2ZxX2giLCJmaXNjYWxfcGVyaW9kX2Z5X2giLCJmaXNjYWxfcGVyaW9kX2ZxX2giLCJmaXNjYWxfcGVyaW9kX2ZoX2giLCJlYXJuaW5nc19yZWxlYXNlX2RhdGVfZnFfaCIsImVhcm5pbmdzX3JlbGVhc2VfbmV4dF9kYXRlX2ZxIiwiZWFybmluZ3NfcGVyX3NoYXJlX2ZvcmVjYXN0X25leHRfZnEiLCJlYXJuaW5nc19wZXJfc2hhcmVfZm9yZWNhc3RfZnFfaCIsImVhcm5pbmdzX3Blcl9zaGFyZV9mcV9oIiwiZWFybmluZ3NfZmlzY2FsX3BlcmlvZF9mcV9oIiwibmV4dF9lYXJuaW5nc19maXNjYWxfcGVyaW9kX2ZxIiwiaXNfbmV4dF9lYXJuaW5nc19yZWxlYXNlX2RhdGVfZXN0aW1hdGVkIiwic3ltYm9sLXByaW1hcnluYW1lIiwiY3VycmVuY3lfY29kZSIsInJhdGVzX21jIiwicmF0ZXNfZnkiLCJyYXRlc190dG0iLCJtZWFzdXJlIiwidmFsdWVfdW5pdF9pZCIsInZhbHVlLXVuaXQtaWQiLCJ1cGRhdGVfbW9kZSIsImxhbmd1YWdlIiwibG9jYWxfZGVzY3JpcHRpb24iLCJzaG9ydF9kZXNjcmlwdGlvbiIsInNvdXJjZSIsInNvdXJjZTIiLCJmb3JtYXQiLCJyZWNvbW1lbmRhdGlvbl9tYXJrIiwibGFzdF9yZXBvcnRfZnJlcXVlbmN5IiwicHJpY2VfdGFyZ2V0X2VzdGltYXRlc19udW0iLCJwcmljZV90YXJnZXRfYXZlcmFnZSIsInVwZGF0ZV9tb2RlX3NlY29uZHMiLCJyZWNvbW1lbmRhdGlvbl90b3RhbCIsInJlY29tbWVuZGF0aW9uX2J1eSIsInJlY29tbWVuZGF0aW9uX292ZXIiLCJyZWNvbW1lbmRhdGlvbl9ob2xkIiwicmVjb21tZW5kYXRpb25fdW5kZXIiLCJyZWNvbW1lbmRhdGlvbl9zZWxsIiwicmVjb21tZW5kYXRpb25fdG90YWwiLCJwcmljZV90YXJnZXRfaGlnaCIsInByaWNlX3RhcmdldF9sb3ciLCJyYXRlc19wdCIsInJhdGVzX3B0IiwidG90YWxfcmV2ZW51ZV9meV9oIiwidG90YWxfcmV2ZW51ZV9mcV9oIiwidG90YWxfcmV2ZW51ZV9maF9oIiwibmV0X3JldmVudWVfZnlfaCIsIm5ldF9yZXZlbnVlX2ZxX2giLCJuZXRfcmV2ZW51ZV9maF9oIiwibmV0X2luY29tZV9meV9oIiwibmV0X2luY29tZV9mcV9oIiwibmV0X2luY29tZV9maF9oIiwidG90YWxfYXNzZXRzX2Z5X2giLCJ0b3RhbF9hc3NldHNfZnFfaCIsInRvdGFsX2Fzc2V0c19maF9oIiwidG90YWxfbGlhYmlsaXRpZXNfZnlfaCIsInRvdGFsX2xpYWJpbGl0aWVzX2ZxX2giLCJ0b3RhbF9saWFiaWxpdGllc19maF9oIiwiY2FzaF9mX29wZXJhdGluZ19hY3Rpdml0aWVzX2Z5X2giLCJjYXNoX2Zfb3BlcmF0aW5nX2FjdGl2aXRpZXNfZnFfaCIsImNhc2hfZl9vcGVyYXRpbmdfYWN0aXZpdGllc19maF9oIiwiY2FzaF9mX2ludmVzdGluZ19hY3Rpdml0aWVzX2Z5X2giLCJjYXNoX2ZfaW52ZXN0aW5nX2FjdGl2aXRpZXNfZnFfaCIsImNhc2hfZl9pbnZlc3RpbmdfYWN0aXZpdGllc19maF9oIiwiY2FzaF9mX2ZpbmFuY2luZ19hY3Rpdml0aWVzX2Z5X2giLCJjYXNoX2ZfZmluYW5jaW5nX2FjdGl2aXRpZXNfZnFfaCIsImNhc2hfZl9maW5hbmNpbmdfYWN0aXZpdGllc19maF9oIiwiZmlzY2FsX3BlcmlvZF9meSIsImZpc2NhbF9wZXJpb2RfZnEiLCJmaXNjYWxfcGVyaW9kX2ZoIiwiZWFybmluZ3NfcmVsZWFzZV9kYXRlX2ZxX2giLCJlYXJuaW5nc19yZWxlYXNlX2RhdGVfZnlfaCIsImVhcm5pbmdzX3JlbGVhc2VfZGF0ZV9maF9oIiwiZWFybmluZ3NfcmVsZWFzZV9uZXh0X2RhdGVfZnEiLCJlYXJuaW5nc19yZWxlYXNlX25leHRfZGF0ZV9meSIsImVhcm5pbmdzX3JlbGVhc2VfbmV4dF9kYXRlX2ZoIiwiZWFybmluZ3NfcmVsZWFzZV9uZXh0X3RpbWUiLCJlYXJuaW5nc19yZWxlYXNlX3RpbWUiLCJpc19uZXh0X2Vhcm5pbmdzX3JlbGVhc2VfZGF0ZV9lc3RpbWF0ZWQiLCJlYXJuaW5nc19wZXJfc2hhcmVfZm9yZWNhc3RfbmV4dF9mcSIsImVhcm5pbmdzX3Blcl9zaGFyZV9mb3JlY2FzdF9uZXh0X2Z5IiwiZWFybmluZ3NfcGVyX3NoYXJlX2ZvcmVjYXN0X25leHRfZmgiLCJlYXJuaW5nc19wZXJfc2hhcmVfZm9yZWNhc3RfZnFfaCIsImVhcm5pbmdzX3Blcl9zaGFyZV9mb3JlY2FzdF9meV9oIiwiZWFybmluZ3NfcGVyX3NoYXJlX2ZvcmVjYXN0X2ZoX2giLCJlYXJuaW5nc19wZXJfc2hhcmVfZnFfaCIsImVhcm5pbmdzX3Blcl9zaGFyZV9meV9oIiwiZWFybmluZ3NfcGVyX3NoYXJlX2ZoX2giLCJlYXJuaW5nc19maXNjYWxfcGVyaW9kX2ZxX2giLCJlYXJuaW5nc19maXNjYWxfcGVyaW9kX2Z5X2giLCJlYXJuaW5nc19maXNjYWxfcGVyaW9kX2ZoX2giLCJuZXh0X2Vhcm5pbmdzX2Zpc2NhbF9wZXJpb2RfZnEiLCJuZXh0X2Vhcm5pbmdzX2Zpc2NhbF9wZXJpb2RfZnkiLCJuZXh0X2Vhcm5pbmdzX2Zpc2NhbF9wZXJpb2RfZmgiLCJyZXZlbnVlX2ZxX2giLCJyZXZlbnVlX2Z5X2giLCJyZXZlbnVlX2ZoX2giLCJyZXZlbnVlX2ZvcmVjYXN0X2ZxX2giLCJyZXZlbnVlX2ZvcmVjYXN0X2Z5X2giLCJyZXZlbnVlX2ZvcmVjYXN0X2ZoX2giLCJyZXZlbnVlX2ZvcmVjYXN0X25leHRfZnEiLCJyZXZlbnVlX2ZvcmVjYXN0X25leHRfZnkiLCJyZXZlbnVlX2ZvcmVjYXN0X25leHRfZmgiLCJyZXZlbnVlX3NlZ19ieV9idXNpbmVzc19oIiwicmV2ZW51ZV9zZWdfYnlfcmVnaW9uX2giLCJ0b3RhbF9yZXZlbnVlX2Z5IiwidG90YWxfcmV2ZW51ZV9mcSIsInRvdGFsX3JldmVudWVfZmgiLCJncm9zc19wcm9maXRfZnkiLCJncm9zc19wcm9maXRfZnEiLCJncm9zc19wcm9maXRfZmgiLCJlYml0ZGFfZnkiLCJlYml0X2Z5IiwibmV0X2luY29tZV9meSIsIm5ldF9pbmNvbWVfZnEiLCJuZXRfaW5jb21lX2ZoIiwidG90YWxfZGVidF9meV9oIiwidG90YWxfZGVidF9mcV9oIiwidG90YWxfZGVidF9maF9oIiwiZnJlZV9jYXNoX2Zsb3dfZnlfaCIsImZyZWVfY2FzaF9mbG93X2ZxX2giLCJmcmVlX2Nhc2hfZmxvd19maF9oIiwiY2FzaF9uX2VxdWl2YWxlbnRzX2Z5X2giLCJjYXNoX25fZXF1aXZhbGVudHNfZnFfaCIsImNhc2hfbl9lcXVpdmFsZW50c19maF9oIiwidG90YWxfY3VycmVudF9hc3NldHNfZnkiLCJ0b3RhbF9jdXJyZW50X2Fzc2V0c19mcSIsInRvdGFsX2N1cnJlbnRfYXNzZXRzX2ZoIiwidG90YWxfY3VycmVudF9saWFiaWxpdGllc19meSIsInRvdGFsX2N1cnJlbnRfbGlhYmlsaXRpZXNfZnEiLCJ0b3RhbF9jdXJyZW50X2xpYWJpbGl0aWVzX2ZoIiwidG90YWxfbm9uX2N1cnJlbnRfYXNzZXRzX2Z5IiwidG90YWxfbm9uX2N1cnJlbnRfYXNzZXRzX2ZxIiwidG90YWxfbm9uX2N1cnJlbnRfYXNzZXRzX2ZoIiwidG90YWxfbm9uX2N1cnJlbnRfbGlhYmlsaXRpZXNfZnkiLCJ0b3RhbF9ub25fY3VycmVudF9saWFiaWxpdGllc19mcSIsInRvdGFsX25vbl9jdXJyZW50X2xpYWJpbGl0aWVzX2ZoIiwibG9hbnNfbmV0X2Z5IiwibG9hbnNfbmV0X2Z5X2giLCJsb2Fuc19uZXRfZnFfaCIsImxvYW5zX25ldF9maF9oIiwidG90YWxfZGVwb3NpdHNfZnkiLCJ0b3RhbF9kZXBvc2l0c19meV9oIiwidG90YWxfZGVwb3NpdHNfZnFfaCIsInRvdGFsX2RlcG9zaXRzX2ZoX2giLCJsb2FuX2xvc3NfYWxsb3dhbmNlc19meSIsImxvYW5fbG9zc19hbGxvd2FuY2VzX2Z5X2giLCJsb2FuX2xvc3NfYWxsb3dhbmNlc19mcV9oIiwibG9hbl9sb3NzX2FsbG93YW5jZXNfZmhfaCIsInJlc2VydmVfdG9fdG90YWxfY2FwaXRhbF9meV9oIiwicmVzZXJ2ZV90b190b3RhbF9jYXBpdGFsX2ZxX2giLCJyZXNlcnZlX3RvX3RvdGFsX2NhcGl0YWxfZmhfaCIsInVuZWFybmVkX3ByZW1pdW1fdG9fdG90YWxfY2FwaXRhbF9meV9oIiwidW5lYXJuZWRfcHJlbWl1bV90b190b3RhbF9jYXBpdGFsX2ZxX2giLCJ1bmVhcm5lZF9wcmVtaXVtX3RvX3RvdGFsX2NhcGl0YWxfZmhfaCIsImluc3VyYW5jZV9yZXNlcnZlc19meV9oIiwiaW5zdXJhbmNlX3Jlc2VydmVzX2ZxX2giLCJpbnN1cmFuY2VfcmVzZXJ2ZXNfZmhfaCIsInBvbGljeV9jbGFpbXNfZnlfaCIsInBvbGljeV9jbGFpbXNfZnFfaCIsInBvbGljeV9jbGFpbXNfZmhfaCIsInByZW1pdW1zX2Vhcm5lZF9meV9oIiwicHJlbWl1bXNfZWFybmVkX2ZxX2giLCJwcmVtaXVtc19lYXJuZWRfZmhfaCIsInByaWNlX2Vhcm5pbmdzX2ZxX2giLCJwcmljZV9lYXJuaW5nc19meV9oIiwicHJpY2VfZWFybmluZ3NfZmhfaCIsInByaWNlX3NhbGVzX2ZxX2giLCJwcmljZV9zYWxlc19meV9oIiwicHJpY2Vfc2FsZXNfZmhfaCIsImRpbHV0ZWRfbmV0X2luY29tZV90dG0iLCJ0b3RhbF9yZXZlbnVlX3R0bSIsIm5ldF9yZXZlbnVlX3R0bSIsInByaWNlX2Vhcm5pbmdzX2N1cnJlbnQiLCJwcmljZV9zYWxlc19jdXJyZW50IiwiaXNpbi1kaXNwbGF5ZWQiLCJjdXNpcCIsImNmaV9jb2RlIiwiaW50ZXJlc3RfaW5jb21lX2Z5X2giLCJpbnRlcmVzdF9pbmNvbWVfZnFfaCIsImludGVyZXN0X2luY29tZV9maF9oIiwibm9uX2ludGVyZXN0X2luY29tZV9meV9oIiwibm9uX2ludGVyZXN0X2luY29tZV9mcV9oIiwibm9uX2ludGVyZXN0X2luY29tZV9maF9oIiwid2Vic2l0ZSIsImRvYyIsImV4cGxvcmVyIiwic291cmNlcyIsImNvbnRyYWN0cyIsImNyeXB0b19jb21tb25fY2F0ZWdvcmllcyIsImNyeXB0b19hc3NldCIsImNvbW11bml0eSIsImRpdmlkZW5kc19hdmFpbGFiaWxpdHkiLCJlYXJuaW5nc19hdmFpbGFiaWxpdHkiLCJmaW5hbmNpYWxzX2F2YWlsYWJpbGl0eSIsImRvY3VtZW50cyIsImV0Zl9hc3NldF90eXBlX2V4cG9zdXJlIiwiZXRmX3JlZ2lvbl9leHBvc3VyZSIsInRvcF9ob2xkaW5ncyIsInVuaXQtaWQiLCJvcHRpb25zLWluZm8iLCJvcHRpb24tdHlwZSIsImludGVyZXN0X2luY29tZV9meSIsImludGVyZXN0X2luY29tZV9mcSIsImludGVyZXN0X2luY29tZV9maCIsIm5vbl9pbnRlcmVzdF9pbmNvbWVfZnkiLCJub25faW50ZXJlc3RfaW5jb21lX2ZxIiwibm9uX2ludGVyZXN0X2luY29tZV9maCIsImludGVyZXN0X2V4cGVuc2VfZnkiLCJpbnRlcmVzdF9leHBlbnNlX2ZxIiwiaW50ZXJlc3RfZXhwZW5zZV9maCIsImxvYW5fbG9zc19wcm92aXNpb25fZnkiLCJsb2FuX2xvc3NfcHJvdmlzaW9uX2ZxIiwibG9hbl9sb3NzX3Byb3Zpc2lvbl9maCIsIm5vbl9pbnRlcmVzdF9leHBlbnNlX2Z5Iiwibm9uX2ludGVyZXN0X2V4cGVuc2VfZnEiLCJub25faW50ZXJlc3RfZXhwZW5zZV9maCIsIm5vbl9vcGVyX2luY29tZV9meSIsIm5vbl9vcGVyX2luY29tZV9mcSIsIm5vbl9vcGVyX2luY29tZV9maCIsInVudXN1YWxfZXhwZW5zZV9pbmNfZnkiLCJ1bnVzdWFsX2V4cGVuc2VfaW5jX2ZxIiwidW51c3VhbF9leHBlbnNlX2luY19maCIsInByZXRheF9pbmNvbWVfZnkiLCJwcmV0YXhfaW5jb21lX2ZxIiwicHJldGF4X2luY29tZV9maCIsImluY29tZV90YXhfZnkiLCJpbmNvbWVfdGF4X2ZxIiwiaW5jb21lX3RheF9maCIsImFmdGVyX3RheF9vdGhlcl9pbmNvbWVfZnkiLCJhZnRlcl90YXhfb3RoZXJfaW5jb21lX2ZxIiwiYWZ0ZXJfdGF4X290aGVyX2luY29tZV9maCIsInRvdGFsX25vbl9vcGVyX2luY29tZV9meSIsInRvdGFsX25vbl9vcGVyX2luY29tZV9mcSIsInRvdGFsX25vbl9vcGVyX2luY29tZV9maCIsIm9wZXJfaW5jb21lX2Z5Iiwib3Blcl9pbmNvbWVfZnEiLCJvcGVyX2luY29tZV9maCIsIm9wZXJhdGluZ19leHBlbnNlc19meSIsIm9wZXJhdGluZ19leHBlbnNlc19mcSIsIm9wZXJhdGluZ19leHBlbnNlc19maCIsImNvc3Rfb2ZfZ29vZHNfZnkiLCJjb3N0X29mX2dvb2RzX2ZxIiwiY29zdF9vZl9nb29kc19maCIsImVxdWl0eV9pbl9lYXJuaW5nc19meSIsImVxdWl0eV9pbl9lYXJuaW5nc19mcSIsImVxdWl0eV9pbl9lYXJuaW5nc19maCIsIm1pbm9yaXR5X2ludGVyZXN0X2V4cF9meSIsIm1pbm9yaXR5X2ludGVyZXN0X2V4cF9mcSIsIm1pbm9yaXR5X2ludGVyZXN0X2V4cF9maCIsImRpc2NvbnRpbnVlZF9vcGVyYXRpb25zX2Z5IiwiZGlzY29udGludWVkX29wZXJhdGlvbnNfZnEiLCJkaXNjb250aW51ZWRfb3BlcmF0aW9uc19maCIsImZyb250X2NvbnRyYWN0IiwibWluX2NvbnRyYWN0IiwicG9pbnR2YWx1ZSIsInVuaXRfaWQiLCJleHBpcmF0aW9uIiwiYXVtIiwiYXNzZXRfY2xhc3MiLCJmb2N1cyIsImV4cGVuc2VfcmF0aW8iLCJsYXVuY2hfZGF0ZSIsImlzc3VlciIsImJyYW5kIiwiaG9tZXBhZ2UiLCJpbmRleF90cmFja2VkIiwiYWN0aXZlbHlfbWFuYWdlZCIsImZ1bmRfdmlld19tb2RlcyIsImNvbW1vbl9lcXVpdHlfdGllcjFfcmF0aW9fZnlfaCIsImNvbW1vbl9lcXVpdHlfdGllcjFfcmF0aW9fZnFfaCIsImNvbW1vbl9lcXVpdHlfdGllcjFfcmF0aW9fZmhfaCIsInRpZXIxX2NhcGl0YWxfcmF0aW9fZnlfaCIsInRpZXIxX2NhcGl0YWxfcmF0aW9fZnFfaCIsInRpZXIxX2NhcGl0YWxfcmF0aW9fZmhfaCIsInRvdGFsX2NhcGl0YWxfcmF0aW9fZnlfaCIsInRvdGFsX2NhcGl0YWxfcmF0aW9fZnFfaCIsInRvdGFsX2NhcGl0YWxfcmF0aW9fZmhfaCIsInByZWZlcnJlZF9zdG9ja19jYXJyeWluZ192YWx1ZV9maCIsInByZWZlcnJlZF9zdG9ja19jYXJyeWluZ192YWx1ZV9mcSIsInRvdGFsX2RlYnRfZnEiLCJtaW5vcml0eV9pbnRlcmVzdF9maCIsIm1pbm9yaXR5X2ludGVyZXN0X2ZxIiwiY2FzaF9uX3Nob3J0X3Rlcm1faW52ZXN0X2ZxIiwiY2FzaF9uX2R1ZV9mX2JhbmtzX2ZoIiwiY2FzaF9uX2R1ZV9mX2JhbmtzX2ZxIiwiZW50ZXJwcmlzZV92YWx1ZV9jdXJyZW50IiwiZXRmX2hvbGRpbmdzX2NvdW50IiwiY29udHJhY3QtZGVzY3JpcHRpb24iLCJyZWZlcmVuY2UtbGFzdC1wZXJpb2QiLCJhbGxfdGltZV9oaWdoIiwiYWxsX3RpbWVfaGlnaF9kYXkiLCJhbGxfdGltZV9sb3ciLCJhbGxfdGltZV9sb3dfZGF5Iiwib3V0c3RhbmRpbmdfYW1vdW50Iiwibm9taW5hbF92YWx1ZSIsImRlbm9tX21pbiIsImN1cnJlbnRfY291cG9uIiwiY291cG9uX3R5cGVfZ2VuZXJhbCIsImNvdXBvbl9mcmVxdWVuY3kiLCJ5aWVsZF90b19tYXR1cml0eSIsIm1hdHVyaXR5LWRhdGUiLCJkYXlzX3RvX21hdHVyaXR5IiwiYm9uZF9pc3N1ZXIiLCJpc3N1ZV9kYXRlIiwiYm9uZF9pc3N1ZXJfc3RvY2tfc3ltYm9sIiwidG90YWxfaXNzdWVkX2Ftb3VudCIsInBhaWRfYW1vdW50IiwiYm9uZF9zbnBfcmF0aW5nX2x0X2giLCJwbGFjZW1lbnRfdHlwZSIsImR1cmF0aW9uX3R5cGUiLCJtYXR1cml0eV90eXBlIiwib2ZmZXJfdHlwZSIsInJlZGVtcHRpb25fdHlwZSIsImNvbnZlcnNpb25fb3B0aW9uIiwic2lua2luZ19mdW5kIiwib3duZXJzaGlwX2Zvcm0iLCJkYWlseS1zdW1tYXJ5LWFzdCIsImlzc3VlX3N0YXR1cyIsImNvdXBvbl9oIiwic2lua2luZ19mdW5kX25leHRfZGF0ZSIsInNpbmtpbmdfZnVuZF9taW5fYW1vdW50X25leHQiLCJjYWxsX25leHRfZGF0ZSIsInJlZGVtcHRpb25zX2giLCJjYWxsX25vdGljZV9kYXlzIiwicHV0X25leHRfZGF0ZSIsInB1dF9ub3RpY2VfZGF5c19taW4iLCJzZW5pb3JpdHlfbGV2ZWwiLCJpbmZsYXRpb25fcHJvdGVjdGlvbiIsInBsZWRnZV9zdGF0dXMiLCJib25kX2lzc3Vlcl9jb3VudHJ5X29mX3Jpc2siLCJib25kX2lzc3Vlcl9jcl9wYXJlbnQiLCJjcmVkaXRfZW5oYW5jZW1lbnRfdHlwZSIsImNyZWRpdF9lbmhhbmNlbWVudF9zdGF0dXMiLCJ1c2Vfb2ZfcHJvY2VlZHMiLCJib25kX2lzc3Vlcl9zbnBfcmF0aW5nX2x0X2giLCJib25kX2lzc3Vlcl9zbnBfcmF0aW5nX3N0X2giLCJib25kX2FnZW50c190ciIsImZpcnN0X2Jhcl90aW1lXzFkIiwiZmluYW5jaWFsLWluZGljYXRvci1pZCIsImV4Y2hhbmdlLWluZm8iLCJ1bmRlcmx5aW5nLXN5bWJvbCIsInN0cmlrZSIsImxvdHNpemUiLCJvcHRpb24tc3R5bGUiLCJoYXNfYm9uZHMiLCJvcGVuX3RpbWUiLCJoYXNfYm9uZHMiLCJkZXhfYnV5c18xNW0iLCJkZXhfc2VsbHNfMTVtIiwiZGV4X2J1eV92b2x1bWVfMTVtIiwiZGV4X3NlbGxfdm9sdW1lXzE1bSIsImRleF9idXllcnNfMTVtIiwiZGV4X3NlbGxlcnNfMTVtIiwiZGV4X2J1eXNfMWgiLCJkZXhfc2VsbHNfMWgiLCJkZXhfYnV5X3ZvbHVtZV8xaCIsImRleF9zZWxsX3ZvbHVtZV8xaCIsImRleF9idXllcnNfMWgiLCJkZXhfc2VsbGVyc18xaCIsImRleF9idXlzXzRoIiwiZGV4X3NlbGxzXzRoIiwiZGV4X2J1eV92b2x1bWVfNGgiLCJkZXhfc2VsbF92b2x1bWVfNGgiLCJkZXhfYnV5ZXJzXzRoIiwiZGV4X3NlbGxlcnNfNGgiLCJkZXhfYnV5c18xMmgiLCJkZXhfc2VsbHNfMTJoIiwiZGV4X2J1eV92b2x1bWVfMTJoIiwiZGV4X3NlbGxfdm9sdW1lXzEyaCIsImRleF9idXllcnNfMTJoIiwiZGV4X3NlbGxlcnNfMTJoIiwiZGV4X2J1eXNfMjRoIiwiZGV4X3NlbGxzXzI0aCIsImRleF9idXlfdm9sdW1lXzI0aCIsImRleF9zZWxsX3ZvbHVtZV8yNGgiLCJkZXhfYnV5ZXJzXzI0aCIsImRleF9zZWxsZXJzXzI0aCIsImRleF9jb252ZXJ0ZWRfc3ltYm9sIiwiZGV4X3RyYWRpbmdfdm9sdW1lXzI0aCIsImRleF9jcmVhdGVkX3RpbWUiLCJkZXhfY3VycmVuY3kiLCJkZXhfY3VycmVuY3lfbG9nb2lkIiwiYmxvY2tjaGFpbl9hZGRyZXNzZXNfdXJscyIsImJsb2NrY2hhaW5fYWRkcmVzc2VzIiwiYmFzZV9jdXJyZW5jeSIsImlwb19vZmZlcl9zdGF0dXMiLCJoYXNfaXBvX2RldGFpbHNfdmlzaWJsZSIsImlwb19wcmljZV9yYW5nZV91c2RfbWF4IiwiaXBvX3ByaWNlX3JhbmdlX3VzZF9taW4iLCJpcG9fb2ZmZXJfcHJpY2VfdXNkIiwiaXBvX29mZmVyZWRfc2hhcmVzIiwiaXBvX2RlYWxfYW1vdW50X3VzZCIsImlwb19hbm5vdW5jZW1lbnRfZGF0ZSIsImlwb19vZmZlcl9kYXRlIiwiYXZhaWxhYmxlX2RhdGFfcmFuZ2VfYmVnaW5fZGF0ZSIsImF2YWlsYWJsZV9kYXRhX3JhbmdlX2VuZF9kYXRlIiwiaGFzX2V0Zl9vd25lcnNoaXAiLCJzeW1ib2xfcHJpbWFyeV9saXN0aW5nIiwibWV0cmljX3l0bSIsIm1ldHJpY3MiLCJlcHNfZXN0aW1hdGVzX2Z5X2giLCJlcHNfZXN0aW1hdGVzX2ZxX2giLCJlcHNfZXN0aW1hdGVzX2ZoX2giLCJyZXZlbnVlX2VzdGltYXRlc19meV9oIiwicmV2ZW51ZV9lc3RpbWF0ZXNfZnFfaCIsInJldmVudWVfZXN0aW1hdGVzX2ZoX2giLCJkcHNfZXN0aW1hdGVzX2Z5X2giLCJkcHNfZXN0aW1hdGVzX2ZxX2giLCJkcHNfZXN0aW1hdGVzX2ZoX2giLCJjb3N0X29mX2dvb2RzX2VzdGltYXRlc19meV9oIiwiY29zdF9vZl9nb29kc19lc3RpbWF0ZXNfZnFfaCIsImNvc3Rfb2ZfZ29vZHNfZXN0aW1hdGVzX2ZoX2giLCJncm9zc19wcm9maXRfZXN0aW1hdGVzX2Z5X2giLCJncm9zc19wcm9maXRfZXN0aW1hdGVzX2ZxX2giLCJncm9zc19wcm9maXRfZXN0aW1hdGVzX2ZoX2giLCJzZWxsX2dlbl9hZG1pbl9leHBfdG90YWxfZXN0aW1hdGVzX2Z5X2giLCJzZWxsX2dlbl9hZG1pbl9leHBfdG90YWxfZXN0aW1hdGVzX2ZxX2giLCJzZWxsX2dlbl9hZG1pbl9leHBfdG90YWxfZXN0aW1hdGVzX2ZoX2giLCJyZXNlYXJjaF9hbmRfZGV2X2VzdGltYXRlc19meV9oIiwicmVzZWFyY2hfYW5kX2Rldl9lc3RpbWF0ZXNfZnFfaCIsInJlc2VhcmNoX2FuZF9kZXZfZXN0aW1hdGVzX2ZoX2giLCJlYml0ZGFfZXN0aW1hdGVzX2Z5X2giLCJlYml0ZGFfZXN0aW1hdGVzX2ZxX2giLCJlYml0ZGFfZXN0aW1hdGVzX2ZoX2giLCJlYml0X2VzdGltYXRlc19meV9oIiwiZWJpdF9lc3RpbWF0ZXNfZnFfaCIsImViaXRfZXN0aW1hdGVzX2ZoX2giLCJuZXRfaW5jb21lX2VzdGltYXRlc19meV9oIiwibmV0X2luY29tZV9lc3RpbWF0ZXNfZnFfaCIsIm5ldF9pbmNvbWVfZXN0aW1hdGVzX2ZoX2giLCJ0b3RhbF9hc3NldHNfZXN0aW1hdGVzX2Z5X2giLCJ0b3RhbF9hc3NldHNfZXN0aW1hdGVzX2ZxX2giLCJ0b3RhbF9hc3NldHNfZXN0aW1hdGVzX2ZoX2giLCJjYXNoX25fc2hvcnRfdGVybV9pbnZlc3RfZXN0aW1hdGVzX2Z5X2giLCJjYXNoX25fc2hvcnRfdGVybV9pbnZlc3RfZXN0aW1hdGVzX2ZxX2giLCJjYXNoX25fc2hvcnRfdGVybV9pbnZlc3RfZXN0aW1hdGVzX2ZoX2giLCJ0b3RhbF9kZWJ0X2VzdGltYXRlc19meV9oIiwidG90YWxfZGVidF9lc3RpbWF0ZXNfZnFfaCIsInRvdGFsX2RlYnRfZXN0aW1hdGVzX2ZoX2giLCJib29rX3ZhbHVlX3Blcl9zaGFyZV9lc3RpbWF0ZXNfZnlfaCIsImJvb2tfdmFsdWVfcGVyX3NoYXJlX2VzdGltYXRlc19mcV9oIiwiYm9va192YWx1ZV9wZXJfc2hhcmVfZXN0aW1hdGVzX2ZoX2giLCJjYXNoX2Zfb3BlcmF0aW5nX2FjdGl2aXRpZXNfZXN0aW1hdGVzX2Z5X2giLCJjYXNoX2Zfb3BlcmF0aW5nX2FjdGl2aXRpZXNfZXN0aW1hdGVzX2ZxX2giLCJjYXNoX2Zfb3BlcmF0aW5nX2FjdGl2aXRpZXNfZXN0aW1hdGVzX2ZoX2giLCJjYXNoX2ZfaW52ZXN0aW5nX2FjdGl2aXRpZXNfZXN0aW1hdGVzX2Z5X2giLCJjYXNoX2ZfaW52ZXN0aW5nX2FjdGl2aXRpZXNfZXN0aW1hdGVzX2ZxX2giLCJjYXNoX2ZfaW52ZXN0aW5nX2FjdGl2aXRpZXNfZXN0aW1hdGVzX2ZoX2giLCJjYXBpdGFsX2V4cGVuZGl0dXJlc19lc3RpbWF0ZXNfZnlfaCIsImNhcGl0YWxfZXhwZW5kaXR1cmVzX2VzdGltYXRlc19mcV9oIiwiY2FwaXRhbF9leHBlbmRpdHVyZXNfZXN0aW1hdGVzX2ZoX2giLCJjYXNoX2ZfZmluYW5jaW5nX2FjdGl2aXRpZXNfZXN0aW1hdGVzX2Z5X2giLCJjYXNoX2ZfZmluYW5jaW5nX2FjdGl2aXRpZXNfZXN0aW1hdGVzX2ZxX2giLCJjYXNoX2ZfZmluYW5jaW5nX2FjdGl2aXRpZXNfZXN0aW1hdGVzX2ZoX2giLCJmcmVlX2Nhc2hfZmxvd19lc3RpbWF0ZXNfZnlfaCIsImZyZWVfY2FzaF9mbG93X2VzdGltYXRlc19mcV9oIiwiZnJlZV9jYXNoX2Zsb3dfZXN0aW1hdGVzX2ZoX2giLCJlc3RpbWF0ZXNfZmlzY2FsX3BlcmlvZF9meV9oIiwiZXN0aW1hdGVzX2Zpc2NhbF9wZXJpb2RfZnFfaCIsImVzdGltYXRlc19maXNjYWxfcGVyaW9kX2ZoX2giLCJmb3JlY2FzdF9hdmFpbGFiaWxpdHkiXSksbj1uZXcgY2xhc3N7CmNvbnN0cnVjdG9yKGUpe3RoaXMuX2NhY2hlPW5ldyBNYXAsdGhpcy5fdGltZXM9bmV3IE1hcCx0aGlzLl9maWVsZHM9Wy4uLmUuZmllbGRzXX11cGRhdGUoZSx0LF8pe2NvbnN0IGk9KDAscy5lbnN1cmVEZWZpbmVkKShlLnN5bWJvbG5hbWUpLG49RGF0ZS5ub3coKTtpZih0aGlzLl9jYWNoZS5oYXMoaSl8fHRoaXMuX2NhY2hlLnNldChpLHtzeW1ib2xuYW1lOmksc3RhdHVzOmUuc3RhdHVzLHZhbHVlczp7fX0pLHRoaXMuX3RpbWVzLmhhcyhpKXx8dGhpcy5fdGltZXMuc2V0KGksbmV3IE1hcCksImVycm9yIj09PWUuc3RhdHVzKXJldHVybjtjb25zdCBhPSgwLHMuZW5zdXJlRGVmaW5lZCkodGhpcy5fY2FjaGUuZ2V0KGkpKSxyPSgwLHMuZW5zdXJlRGVmaW5lZCkodGhpcy5fdGltZXMuZ2V0KGkpKTthLnN0YXR1cz1lLnN0YXR1cztmb3IoY29uc3QgcyBvZiB0aGlzLl9maWVsZHMpdC5oYXMocykmJihffHx2b2lkIDAhPT1lLnZhbHVlc1tzXSkmJihhLnZhbHVlc1tzXT1lLnZhbHVlc1tzXSxyLnNldChzLG4pKX1nZXQoZSl7cmV0dXJuIHRoaXMuX2NhY2hlLmdldChlKT8/bnVsbH1nZXRUaW1lcyhlKXtyZXR1cm4gdGhpcy5fdGltZXMuZ2V0KGUpPz9udWxsfWZpZWxkcygpe3JldHVybiB0aGlzLl9maWVsZHN9fSh7ZmllbGRzOml9KX0sOTI3NTkzKGUsdCxfKXsidXNlIHN0cmljdCI7Xy5kKHQse1F1b3RlU2Vzc2lvbk11bHRpcGxleGVyOigpPT5mfSk7dmFyIHM9Xyg1ODcxNjgpLGk9Xyg1NDc4NTEpLG49XygzNTI4MzcpLGE9XygxMzg2MzgpLHI9XygyMjEwNjEpLG89Xyg5NDgzODApLGw9Xyg5NjQ0ODYpLGM9XygxNTAxNTApLGg9XygzMDkwNTIpLGQ9XygzNjc5NDYpO2xldCB1PSExO3ZhciBtPV8oOTcwNzc0KTtjb25zdCBwPSgwLHIuZ2V0TG9nZ2VyKSgiV2ViY2hhcnRDbGllbnQuUXVvdGVTZXNzaW9uTXVsdGlwbGV4ZXIiKTtjbGFzcyBme2NvbnN0cnVjdG9yKGUpe3RoaXMub25Db25uZWN0PW5ldyBvLkRlbGVnYXRlLHRoaXMub25EaXNjb25uZWN0PW5ldyBvLkRlbGVnYXRlLHRoaXMuX2Nvbm5lY3RlZD0hMSx0aGlzLl9zdWJzY3JpcHRpb25zPXt9LHRoaXMuX3N5bWJvbF9kYXRhPXt9LHRoaXMuX2RlbGF5VXBkYXRlRmFzdFN5bWJvbHM9KDAsaS5kZWZhdWx0KSh0aGlzLl91cGRhdGVGYXN0U3ltYm9scywyNTApLHRoaXMuX3Rocm90dGxlZFN5bWJvbERhdGE9e30sdGhpcy5fZXh0ZW5zaW9ucz17fSx0aGlzLm9wdGlvbnM9e3Rocm90dGxlVGltZW91dDoxMjUsLi4uZX0sdGhpcy5fc2Vzc2lvbj1uZXcgbS5RdW90ZVNlc3Npb24oZS5hcGksWyJtdWx0aXBsZXhlciIsZS5uYW1lLCgwLGMucmFuZG9tSGFzaCkoKV0uZmlsdGVyKEJvb2xlYW4pLmpvaW4oIl8iKSksdGhpcy5vcHRpb25zLmV4dGVuc2lvbnM/LmZvcm1hdHRlciYmKHRoaXMuX2V4dGVuc2lvbnMuZm9ybWF0dGVyPXRoaXMub3B0aW9ucy5leHRlbnNpb25zLmZvcm1hdHRlcih0aGlzKSksdGhpcy5vcHRpb25zLmV4dGVuc2lvbnM/LnNuYXBzaG90JiYodGhpcy5fZXh0ZW5zaW9ucy5zbmFwc2hvdD10aGlzLm9wdGlvbnMuZXh0ZW5zaW9ucy5zbmFwc2hvdCh0aGlzKSksdGhpcy5jb25uZWN0KCl9ZGVzdHJveSgpe3RoaXMuX3Nlc3Npb24uZGVzdHJveSgpLHRoaXMuX2Nvbm5lY3RlZD0hMSx0aGlzLm9uRGlzY29ubmVjdC5maXJlKCl9aW50ZXJuYWxzKCl7cmV0dXJue3Nlc3Npb246KCk9PnRoaXMuX3Nlc3Npb24sc3Vic2NyaXB0aW9uczooKT0+dGhpcy5fc3Vic2NyaXB0aW9ucyxkYXRhOigpPT50aGlzLl9zeW1ib2xfZGF0YX19Y29ubmVjdCgpe3RoaXMuX3Nlc3Npb24uY29ubmVjdCh0aGlzLnF1b3RlSGFuZGxlci5iaW5kKHRoaXMpKX1xdW90ZUhhbmRsZXIoZSl7Y29uc3R7bWV0aG9kOnQscGFyYW1zOl99PWU7c3dpdGNoKHQpe2Nhc2UiY29ubmVjdGVkIjp0aGlzLl9jb25uZWN0ZWR8fCh0aGlzLl9jb25uZWN0ZWQ9ITAsdGhpcy5vbkNvbm5lY3RlZCgpKTticmVhaztjYXNlInF1b3RlX2xpc3RfZmllbGRzIjpicmVhaztjYXNlInF1b3RlX3N5bWJvbF9kYXRhIjp0aGlzLl9jb25uZWN0ZWQmJnRoaXMub25TeW1ib2xEYXRhKF9bMF0pO2JyZWFrO2Nhc2UicXVvdGVfY29tcGxldGVkIjp0aGlzLl9jb25uZWN0ZWQmJnRoaXMub25TeW1ib2xEYXRhKHtzeW1ib2xuYW1lOl9bMF0sY29tcGxldGU6cGVyZm9ybWFuY2Uubm93KCksdmFsdWVzOnt9fSk7YnJlYWs7Y2FzZSJkaXNjb25uZWN0ZWQiOnRoaXMuX2Nvbm5lY3RlZCYmKHRoaXMuX2Nvbm5lY3RlZD0hMSx0aGlzLm9uRGlzY29ubmVjdC5maXJlKCkpfX1vbkNvbm5lY3RlZCgpe3RoaXMuc2V0RmllbGRzKCk7Y29uc3QgZT1PYmplY3Qua2V5cyh0aGlzLl9zeW1ib2xfZGF0YSk7ZS5sZW5ndGgmJih0aGlzLl9zZXNzaW9uLnF1b3RlQWRkU3ltYm9scyhlKSx0aGlzLl9kZWxheVVwZGF0ZUZhc3RTeW1ib2xzKCkpLHRoaXMub25Db25uZWN0LmZpcmUoKX1zZXRGaWVsZHMoKXtjb25zdHtmaWVsZHM6ZX09dGhpcy5vcHRpb25zO2UmJmUubGVuZ3RoJiZ0aGlzLl9zZXNzaW9uLnF1b3RlU2V0RmllbGRzKGUpfW9uU3ltYm9sRGF0YShlKXt0cnl7ZS5zdGF0dXMmJmguUVVPVEVfRklFTERTX0NBQ0hFLnVwZGF0ZShlLGguUVVPVEVfRklFTERTLCExKX1jYXRjaChlKXt9Y29uc3QgdD1lLnN5bWJvbG5hbWU7bGV0IF89dGhpcy5fdGhyb3R0bGVkU3ltYm9sRGF0YVt0XTt1JiYoZGVsZXRlIGUudmFsdWVzLnByZXZfY2xvc2VfcHJpY2Usdm9pZCAwIT09ZS52YWx1ZXMucmVndWxhcl9jbG9zZSYmKGUudmFsdWVzLnByZXZfY2xvc2VfcHJpY2U9ZS52YWx1ZXMucmVndWxhcl9jbG9zZSkpLF98fChfPXRoaXMuX3Rocm90dGxlZFN5bWJvbERhdGFbdF09e2ZuRGlzcGF0Y2g6KDAscy5kZWZhdWx0KSh0aGlzLmRpc3BhdGNoU3ltYm9sRGF0YS5iaW5kKHRoaXMpLHRoaXMub3B0aW9ucy50aHJvdHRsZVRpbWVvdXQpfSksXy5jYWNoZT8oMCxsLmRlZXBFeHRlbmQpKF8uY2FjaGUsZSk6Xy5jYWNoZT1lLF8uZm5EaXNwYXRjaCh0KX1kaXNwYXRjaFN5bWJvbERhdGEoZSl7Y29uc3QgdD10aGlzLl9zeW1ib2xfZGF0YVtlXSxfPXRoaXMuX3Rocm90dGxlZFN5bWJvbERhdGFbZV0uY2FjaGUKO2lmKGRlbGV0ZSB0aGlzLl90aHJvdHRsZWRTeW1ib2xEYXRhW2VdLmNhY2hlLHRoaXMuX3N5bWJvbF9kYXRhW2VdKXsoMCxsLmRlZXBFeHRlbmQpKHQsXyksdC52YWx1ZXMmJnRoaXMuX3BhcnNlVXBkYXRlTW9kZSh0LnZhbHVlcyk7Zm9yKGNvbnN0IHMgaW4gdGhpcy5fc3Vic2NyaXB0aW9ucyl7Y29uc3QgaT10aGlzLl9zdWJzY3JpcHRpb25zW3NdO2lmKGkuaGFzKGUpKXtbLi4uKDAsYS5lbnN1cmVEZWZpbmVkKShpLmdldChlKSldLmZvckVhY2goKGU9PntlKHQsXyl9KSl9fX19c3Vic2NyaWJlKGUsdCxfKXt0aGlzLl9zdWJzY3JpcHRpb25zW2VdPXRoaXMuX3N1YnNjcmlwdGlvbnNbZV18fG5ldyBNYXA7Y29uc3Qgcz10aGlzLl9zdWJzY3JpcHRpb25zW2VdO3Q9QXJyYXkuaXNBcnJheSh0KT9bLi4udF06W3RdO2NvbnN0IGk9W107dC5mb3JFYWNoKChlPT57dGhpcy5fc3ltYm9sX2RhdGFbZV0/cyYmcy5oYXMoZSl8fHRoaXMuX3N5bWJvbF9kYXRhW2VdLnN1YnNjcmliZXJzX2NvdW50Kys6KHRoaXMuX3N5bWJvbF9kYXRhW2VdPXtzdWJzY3JpYmVyc19jb3VudDoxfSxpLnB1c2goZSkpLHMuaGFzKGUpfHxzLnNldChlLFtdKTtjb25zdCB0PSgwLGEuZW5zdXJlRGVmaW5lZCkocy5nZXQoZSkpO3QucHVzaChfKSx0LmZhc3Q9ITAsdGhpcy5fc3ltYm9sX2RhdGFbZV0mJnRoaXMuX3N5bWJvbF9kYXRhW2VdLnZhbHVlcyYmXyh0aGlzLl9zeW1ib2xfZGF0YVtlXSx0aGlzLl9zeW1ib2xfZGF0YVtlXSl9KSksaS5sZW5ndGgmJnRoaXMuX2Nvbm5lY3RlZCYmKHRoaXMuX3Nlc3Npb24ucXVvdGVBZGRTeW1ib2xzKGkpLHRoaXMuX2RlbGF5VXBkYXRlRmFzdFN5bWJvbHMoKSl9dW5zdWJzY3JpYmUoZSx0LF8pe3Q9QXJyYXkuaXNBcnJheSh0KT9bLi4udF06W3RdO2NvbnN0IHM9dGhpcy5fc3Vic2NyaXB0aW9uc1tlXSxpPVtdO2ZvcihsZXQgbj0wO248dC5sZW5ndGg7bisrKXtjb25zdCByPXRbbl07aWYocyYmcy5oYXMocikpe2lmKF8pe2NvbnN0IGU9KDAsYS5lbnN1cmVEZWZpbmVkKShzLmdldChyKSksdD1lLmluZGV4T2YoXyk7fnQmJmUuc3BsaWNlKHQsMSksZS5sZW5ndGh8fHMuZGVsZXRlKHIpfWVsc2Ugcy5kZWxldGUocik7MD09PXMuc2l6ZSYmZGVsZXRlIHRoaXMuX3N1YnNjcmlwdGlvbnNbZV0sdGhpcy5fc3ltYm9sX2RhdGEuaGFzT3duUHJvcGVydHkocikmJihzLmhhcyhyKXx8dGhpcy5fc3ltYm9sX2RhdGFbcl0uc3Vic2NyaWJlcnNfY291bnQtLSx0aGlzLl9zeW1ib2xfZGF0YVtyXS5zdWJzY3JpYmVyc19jb3VudHx8KGRlbGV0ZSB0aGlzLl9zeW1ib2xfZGF0YVtyXSxpLnB1c2gocikpKX1lbHNlIHAubG9nV2FybihgQ2hlY2sgeW91ciBzdWIvdW5zdWIgbG9va3MgaXQgaXMgbGVha2luZyAoY2xpZW50X2lkPSR7ZX0sIHN5bWJvbD0ke3J9KWApfWkubGVuZ3RoJiZ0aGlzLl9jb25uZWN0ZWQmJih0aGlzLl9zZXNzaW9uLnF1b3RlUmVtb3ZlU3ltYm9scyhpKSx0aGlzLl9kZWxheVVwZGF0ZUZhc3RTeW1ib2xzKCkpfXNldEZhc3RTeW1ib2xzKGUsdCl7aWYodGhpcy5fc3Vic2NyaXB0aW9uc1tlXSl7Y29uc3QgXz10aGlzLl9zdWJzY3JpcHRpb25zW2VdLHM9QXJyYXkuZnJvbShfLmtleXMoKSk7Zm9yKGxldCBlPTA7ZTxzLmxlbmd0aDsrK2Upe2NvbnN0IGk9c1tlXTsoMCxhLmVuc3VyZURlZmluZWQpKF8uZ2V0KGkpKS5mYXN0PS0xIT09dC5pbmRleE9mKGkpfX10aGlzLl9kZWxheVVwZGF0ZUZhc3RTeW1ib2xzKCl9c25hcHNob3QoZSl7cmV0dXJuIHZvaWQgMD09PXRoaXMuX2V4dGVuc2lvbnMuc25hcHNob3Q/UHJvbWlzZS5yZWplY3QoIk5vIGZvcm1hdHRlciBleHRlbnNpb24gcHJvdmlkZWQiKTp0aGlzLl9leHRlbnNpb25zLnNuYXBzaG90KGUpfWZvcm1hdHRlcihlLHQpe3JldHVybiB2b2lkIDA9PT10aGlzLl9leHRlbnNpb25zLmZvcm1hdHRlcj9Qcm9taXNlLnJlamVjdCgiTm8gZm9ybWF0dGVyIGV4dGVuc2lvbiBwcm92aWRlZCIpOnRoaXMuX2V4dGVuc2lvbnMuZm9ybWF0dGVyKGUsdCl9X3VwZGF0ZUZhc3RTeW1ib2xzKCl7aWYoIXRoaXMuX2Nvbm5lY3RlZClyZXR1cm47Y29uc3QgZT10aGlzLl9mYXN0U3ltYm9scygpOzA9PT1lLmxlbmd0aD90aGlzLl9zZXNzaW9uLnF1b3RlSGliZXJuYXRlQWxsKCk6dGhpcy5fc2Vzc2lvbi5xdW90ZUZhc3RTeW1ib2xzKGUpfV9mYXN0U3ltYm9scygpe2xldCBlPVtdO2Zvcihjb25zdCB0IGluIHRoaXMuX3N1YnNjcmlwdGlvbnMpe2NvbnN0IF89dGhpcy5fc3Vic2NyaXB0aW9uc1t0XSxzPUFycmF5LmZyb20oXy5rZXlzKCkpO2ZvcihsZXQgdD0wO3Q8cy5sZW5ndGg7Kyt0KXtjb25zdCBpPXNbdF07KDAsYS5lbnN1cmVEZWZpbmVkKShfLmdldChpKSkuZmFzdCYmZS5wdXNoKGkpfX1yZXR1cm4gZT0oMCxuLmRlZmF1bHQpKGUpLGV9X3BhcnNlVXBkYXRlTW9kZShlKXsoMCxkLm5vcm1hbGl6ZVVwZGF0ZU1vZGUpKGUpfX19LDk3MDc3NChlLHQsXyl7InVzZSBzdHJpY3QiO18uZCh0LHtRdW90ZVNlc3Npb246KCk9Pml9KTt2YXIgcz1fKDE1MDE1MCk7Y2xhc3MgaXtjb25zdHJ1Y3RvcihlLHQ9KDAscy5yYW5kb21IYXNoKSgpKXt0aGlzLl9zZXNzaW9uc3RhcnRlZD0hMSx0aGlzLl9nbG9iYWxIYW5kbGVyPW51bGwsdGhpcy5fY2hhcnRBcGk9ZSx0aGlzLl9zZXNzaW9uaWQ9InFzXyIrdH1kZXN0cm95KCl7dGhpcy5fc2Vzc2lvbnN0YXJ0ZWQmJih0aGlzLl9jaGFydEFwaS5xdW90ZURlbGV0ZVNlc3Npb24odGhpcy5fc2Vzc2lvbmlkKSx0aGlzLl9zZXNzaW9uc3RhcnRlZD0hMSl9Y29ubmVjdGVkKCl7cmV0dXJuIHRoaXMuX2NoYXJ0QXBpLmNvbm5lY3RlZCgpfWNvbm5lY3QoZSl7dGhpcy5fZ2xvYmFsSGFuZGxlcj1lLHRoaXMuX2NoYXJ0QXBpLmNyZWF0ZVNlc3Npb24odGhpcy5fc2Vzc2lvbmlkLHRoaXMpLHRoaXMuX2NoYXJ0QXBpLmNvbm5lY3QoKX1kaXNjb25uZWN0KCl7dGhpcy5fY2hhcnRBcGkuZGlzY29ubmVjdCgpfXF1b3RlQWRkU3ltYm9scyhlKXt0aGlzLl9jaGFydEFwaS5xdW90ZUFkZFN5bWJvbHModGhpcy5fc2Vzc2lvbmlkLGUpfXF1b3RlUmVtb3ZlU3ltYm9scyhlKXsKdGhpcy5fY2hhcnRBcGkucXVvdGVSZW1vdmVTeW1ib2xzKHRoaXMuX3Nlc3Npb25pZCxlKX1xdW90ZUZhc3RTeW1ib2xzKGUpe3RoaXMuX2NoYXJ0QXBpLnF1b3RlRmFzdFN5bWJvbHModGhpcy5fc2Vzc2lvbmlkLGUpfXF1b3RlU2V0RmllbGRzKGUpe3RoaXMuX2NoYXJ0QXBpLnF1b3RlU2V0RmllbGRzKHRoaXMuX3Nlc3Npb25pZCxlKX1vbk1lc3NhZ2UoZSl7c3dpdGNoKGUubWV0aG9kKXtjYXNlImNvbm5lY3RlZCI6dGhpcy5fc2Vzc2lvbnN0YXJ0ZWR8fCh0aGlzLl9jaGFydEFwaS5xdW90ZUNyZWF0ZVNlc3Npb24odGhpcy5fc2Vzc2lvbmlkKSx0aGlzLl9zZXNzaW9uc3RhcnRlZD0hMCk7YnJlYWs7Y2FzZSJkaXNjb25uZWN0ZWQiOnRoaXMuX3Nlc3Npb25zdGFydGVkPSExfXRoaXMuX2dsb2JhbEhhbmRsZXI/LihlKX1xdW90ZUhpYmVybmF0ZUFsbCgpe3RoaXMuX2NoYXJ0QXBpLnF1b3RlSGliZXJuYXRlQWxsKHRoaXMuX3Nlc3Npb25pZCl9fX0sNjYxODU4KGUsdCxfKXtlLmV4cG9ydHM9W3tuYW1lOl8uaTE4bmV4dChudWxsLHtjb250ZXh0OiJzeW1ib2xzX3R5cGUifSxfKDM1MDE0NikpLHZhbHVlOiIiLHNlYXJjaF90eXBlOiJ1bmRlZmluZWQifSx7bmFtZTpfLmkxOG5leHQobnVsbCx7Y29udGV4dDoic3ltYm9sc190eXBlIn0sXyg1NTU1MTApKSx2YWx1ZToic3RvY2tzIixzZWFyY2hfdHlwZToic3RvY2tzIn0se25hbWU6Xy5pMThuZXh0KG51bGwse2NvbnRleHQ6InN5bWJvbHNfdHlwZSJ9LF8oNTY0OTE3KSksdmFsdWU6ImZ1bmRzIixzZWFyY2hfdHlwZToiZnVuZHMifSx7bmFtZTpfLmkxOG5leHQobnVsbCx7Y29udGV4dDoic3ltYm9sc190eXBlIn0sXyg1MDUwNzkpKSx2YWx1ZToiZnV0dXJlcyIsc2VhcmNoX3R5cGU6ImZ1dHVyZXMifSx7bmFtZTpfLmkxOG5leHQobnVsbCx7Y29udGV4dDoic3ltYm9sc190eXBlIn0sXyg5Nzk5NykpLHZhbHVlOiJmb3JleCIsc2VhcmNoX3R5cGU6ImZvcmV4In0se25hbWU6Xy5pMThuZXh0KG51bGwse2NvbnRleHQ6InN5bWJvbHNfdHlwZSJ9LF8oMzg0NTk3KSksdmFsdWU6ImNmZCIsc2VhcmNoX3R5cGU6ImNmZCJ9LHtuYW1lOl8uaTE4bmV4dChudWxsLHtjb250ZXh0OiJzeW1ib2xzX3R5cGUifSxfKDY1NTIzNSkpLHZhbHVlOiJiaXRjb2luLGNyeXB0byIsc2VhcmNoX3R5cGU6ImNyeXB0byJ9LHtuYW1lOl8uaTE4bmV4dChudWxsLHtjb250ZXh0OiJzeW1ib2xzX3R5cGUifSxfKDkyNzQxMSkpLHZhbHVlOiJpbmRleCIsc2VhcmNoX3R5cGU6ImluZGV4In0se25hbWU6Xy5pMThuZXh0KG51bGwse2NvbnRleHQ6InN5bWJvbHNfdHlwZSJ9LF8oNzY1NDQwKSksdmFsdWU6ImJvbmQiLHNlYXJjaF90eXBlOiJib25kIn0se25hbWU6Xy5pMThuZXh0KG51bGwse2NvbnRleHQ6InN5bWJvbHNfdHlwZSJ9LF8oNTQ4MzIyKSksdmFsdWU6ImVjb25vbWljIixzZWFyY2hfdHlwZToiZWNvbm9taWMifSx7bmFtZTpfLmkxOG5leHQobnVsbCx7Y29udGV4dDoic3ltYm9sc190eXBlIn0sXyg3OTYwMCkpLHZhbHVlOiJvcHRpb25zIixzZWFyY2hfdHlwZToib3B0aW9ucyJ9XX0sNjA2MTAoZSx0LF8peyJ1c2Ugc3RyaWN0IjtfLmQodCx7QXV0aFRva2VuOigpPT5vfSk7dmFyIHM9XygyMjEwNjEpLGk9Xyg5NDgzODApLG49XygzODQwMTcpO2NvbnN0IGE9KDAscy5nZXRMb2dnZXIpKCJDaGFydEFwaS5BdXRoVG9rZW4iLHtjb2xvcjoiIzE3MyJ9KTt2YXIgcjshZnVuY3Rpb24oZSl7ZVtlLkV4cGlyYXRpb25SZXNlcnZlPTNlNV09IkV4cGlyYXRpb25SZXNlcnZlIixlW2UuTWF4UmV0cmllcz0zXT0iTWF4UmV0cmllcyIsZVtlLlJldHJ5RGVsYXlNdWx0aXBsaWVyPTFlM109IlJldHJ5RGVsYXlNdWx0aXBsaWVyIixlW2UuRmFsbGJhY2tFeHBpcmF0aW9uPTE0NGU1XT0iRmFsbGJhY2tFeHBpcmF0aW9uIixlW2UuTWluRXhwaXJhdGlvbj0zZTVdPSJNaW5FeHBpcmF0aW9uIn0ocnx8KHI9e30pKTtjbGFzcyBve2NvbnN0cnVjdG9yKCl7dGhpcy5pbnZhbGlkYXRlZD1uZXcgaS5EZWxlZ2F0ZSx0aGlzLl90aWQ9MCx0aGlzLl9vbkdvaW5nQXV0aFRva2VuUmVxdWVzdD1udWxsLHRoaXMuX29uT25saW5lPSgpPT57YS5sb2dJbmZvKCJPbmxpbmUsIG5ldyB0b2tlbiB3aWxsIGJlIGZldGNoZWQgaWYgbmVlZGVkIiksdGhpcy5fdHJ5VG9VcGRhdGVUb2tlbigpfSx0aGlzLl9vblZpc2liaWxpdHlDaGFuZ2U9KCk9PnsidmlzaWJsZSI9PT1kb2N1bWVudC52aXNpYmlsaXR5U3RhdGUmJihhLmxvZ0luZm8oIlBhZ2UgdmlzaWJsZSwgbmV3IHRva2VuIHNob3VsZCBiZSBmZXRjaGVkIiksdGhpcy5fdHJ5VG9VcGRhdGVUb2tlbigpKX0sd2luZG93LmxvZ2luU3RhdGVDaGFuZ2V8fCh3aW5kb3cubG9naW5TdGF0ZUNoYW5nZT1uZXcgaS5EZWxlZ2F0ZSksd2luZG93LmxvZ2luU3RhdGVDaGFuZ2Uuc3Vic2NyaWJlKHRoaXMsKGU9PntlfHwodGhpcy5fc2V0KHdpbmRvdy51c2VyLmF1dGhfdG9rZW4pLHRoaXMuaW52YWxpZGF0ZWQuZmlyZSgpKX0pKSx0aGlzLl9zZXQod2luZG93LnVzZXIuYXV0aF90b2tlbiksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm9ubGluZSIsdGhpcy5fb25PbmxpbmUpLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoInZpc2liaWxpdHljaGFuZ2UiLHRoaXMuX29uVmlzaWJpbGl0eUNoYW5nZSl9ZGVzdHJveSgpe3dpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJvbmxpbmUiLHRoaXMuX29uT25saW5lKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJ2aXNpYmlsaXR5Y2hhbmdlIix0aGlzLl9vblZpc2liaWxpdHlDaGFuZ2UpfWdldChlKXtyZXR1cm4gd2luZG93LmlzX2F1dGhlbnRpY2F0ZWQ/IWUmJnRoaXMuY3VycmVudFRva2VuSXNWYWxpZCgpPyhhLmxvZ0luZm8oYFVzaW5nIGNhY2hlZCB0b2tlbiAke3RoaXMuX2NhY2hlLnRva2VufWApLFByb21pc2UucmVzb2x2ZSh0aGlzLl9jYWNoZS50b2tlbikpOndpbmRvdy5uYXZpZ2F0b3Iub25MaW5lP3RoaXMuX29uR29pbmdBdXRoVG9rZW5SZXF1ZXN0fHw9dGhpcy5fZmV0Y2goQm9vbGVhbihlKSwwKS50aGVuKChlPT57CmlmKCF3aW5kb3cuaXNfYXV0aGVudGljYXRlZCl0aHJvdyBuZXcgRXJyb3IoIlVzZXIgbG9nZ2VkIG91dCB3aGlsZSB0aGUgcmVxdWVzdCB3YXMgaW4gZmxpZ2h0Iik7cmV0dXJuIHRoaXMuX3NldChlKSxlfSkpLmNhdGNoKChlPT4oYS5sb2dFcnJvcihgRXJyb3IgZmV0Y2hpbmcgbmV3IHRva2VuOiAke2UmJmUubWVzc2FnZX1gKSwiIikpKS5maW5hbGx5KCgoKT0+e3RoaXMuX29uR29pbmdBdXRoVG9rZW5SZXF1ZXN0PW51bGx9KSk6KGEubG9nV2FybigiT2ZmbGluZSwgY2Fubm90IGZldGNoIG5ldyB0b2tlbiwgdXNpbmcgY2FjaGVkIHRva2VuIiksUHJvbWlzZS5yZXNvbHZlKHRoaXMuX2NhY2hlLnRva2VuKSk6UHJvbWlzZS5yZXNvbHZlKCIiKX1yZXNldCgpe3RoaXMuX3NldCh2b2lkIDApLHRoaXMuaW52YWxpZGF0ZWQuZmlyZSgpfWN1cnJlbnRUb2tlbklzVmFsaWQoKXtyZXR1cm4hd2luZG93LmlzX2F1dGhlbnRpY2F0ZWR8fCEhdGhpcy5fY2FjaGUmJihwZXJmb3JtYW5jZS5ub3coKTx0aGlzLl9jYWNoZS5tb25vVmFsaWRUaHJ1JiZEYXRlLm5vdygpPHRoaXMuX2NhY2hlLndhbGxWYWxpZFRocnUpfV9zZXQoZSl7aWYod2luZG93LmlzX2F1dGhlbnRpY2F0ZWQmJnZvaWQgMCE9PWUpe2NvbnN0IHQ9ZnVuY3Rpb24oZSl7aWYoIiI9PT1lKXJldHVybiAxNDRlNTt0cnl7Y29uc3QgdD1KU09OLnBhcnNlKGF0b2IoZS5zcGxpdCgiLiIpWzFdLnJlcGxhY2UoLy0vZywiKyIpLnJlcGxhY2UoL18vZywiLyIpKSksXz0xZTMqKHQuZXhwLXQuaWF0KTtpZighaXNGaW5pdGUoXykpdGhyb3cgbmV3IEVycm9yKCJpbnZhbGlkIGV4cGlyYXRpb24iKTtyZXR1cm4gTWF0aC5tYXgoXy0zZTUsM2U1KX1jYXRjaCh0KXtyZXR1cm4gYS5sb2dFcnJvcihgJHtlfSBpcyBpbnZhbGlkOiAke3QubWVzc2FnZX1gKSwxNDRlNX19KGUpO3RoaXMuX2NhY2hlPXt0b2tlbjplLG1vbm9WYWxpZFRocnU6cGVyZm9ybWFuY2Uubm93KCkrdCx3YWxsVmFsaWRUaHJ1OkRhdGUubm93KCkrdH0sY2xlYXJUaW1lb3V0KHRoaXMuX3RpZCksdGhpcy5fdGlkPXNldFRpbWVvdXQoKCgpPT57d2luZG93Lm5hdmlnYXRvci5vbkxpbmU/dGhpcy5yZXNldCgpOmEubG9nSW5mbygiT2ZmbGluZSwgY2FjaGUgd2lsbCBub3QgYmUgaW52YWxpZGF0ZWQiKX0pLHQpLGEubG9nSW5mbyhgQ2FjaGVkIGZvciAke3R9IG1zOiAke2V9YCl9ZWxzZSB0aGlzLl9jYWNoZT17dG9rZW46IiIsbW9ub1ZhbGlkVGhydTotMS8wLHdhbGxWYWxpZFRocnU6LTEvMH0sY2xlYXJUaW1lb3V0KHRoaXMuX3RpZCksYS5sb2dJbmZvKCJDYWNoZSBkcm9wcGVkIil9X2ZldGNoKGUsdCl7cmV0dXJuIGEubG9nTm9ybWFsKGBGZXRjaGluZyBhIG5ldyB0b2tlbiwgZ3JhYlNlc3Npb249JHtlfWApLCgwLG4uZmV0Y2gpKCIvcXVvdGVfdG9rZW4vIix7bWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIn0sYm9keTplPyJncmFiU2Vzc2lvbj10cnVlIjoiIn0pLnRoZW4oKGU9PntpZighZS5vayl0aHJvdyBuZXcgRXJyb3IoYFJlc3BvbnNlIHN0YXR1cyBpcyBub3Qgb2s6ICR7ZS5zdGF0dXN9YCk7cmV0dXJuIGUuanNvbigpLnRoZW4oU3RyaW5nKX0pLChfPT57aWYodD49Myl0aHJvdyBfO3JldHVybiBhLmxvZ1dhcm4oIlJlcXVlc3QgZmFpbGVkLCB3aWxsIHJldHJ5IiksZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyBQcm9taXNlKCh0PT5zZXRUaW1lb3V0KHQsMWUzKmUpKSl9KHQpLnRoZW4oKCgpPT50aGlzLl9mZXRjaChlLHQrMSkpKX0pKX1hc3luYyBfdHJ5VG9VcGRhdGVUb2tlbigpe3RoaXMuX2NhY2hlLnRva2VuIT09YXdhaXQgdGhpcy5nZXQoKSYmdGhpcy5pbnZhbGlkYXRlZC5maXJlKCl9fX0sOTMwMDQ1KGUsdCxfKXsidXNlIHN0cmljdCI7Xy5kKHQse0pTT05EYXRhSGFuZGxlcjooKT0+YX0pO3ZhciBzPV8oNzgzMzQwKTtmdW5jdGlvbiBpKGUpe3JldHVybntpbmRleDplLmksdmFsdWU6ZS52fX1mdW5jdGlvbiBuKGUpe2Zvcihjb25zdCB0IG9mIE9iamVjdC5rZXlzKGUpKXtjb25zdCBfPWVbdF07Xy50JiYoXy50dXJuYXJvdW5kPWVbdF0udCksInMiaW4gZVt0XSYmZVt0XS5zJiYhXy5zZXJpZXMmJihfLnNlcmllcz1lW3RdLnMubWFwKGkpKSwic3QiaW4gZVt0XSYmZVt0XS5zdCYmIV8uc2VyaWVzJiYoXy5zZXJpZXM9ZVt0XS5zdC5tYXAoaSkpfX1jbGFzcyBhe3NldF9icm9rZXIoZSl7cmV0dXJuW2VdfXNldF9kYXRhX3F1YWxpdHkoKXtyZXR1cm5bImxvdyJdfXF1b3RlX2NyZWF0ZV9zZXNzaW9uKGUpe3JldHVybltlXX1xdW90ZV9kZWxldGVfc2Vzc2lvbihlKXtyZXR1cm5bZV19cXVvdGVfc2V0X2ZpZWxkcyhlLHQpe3JldHVybltlXS5jb25jYXQodCl9cXVvdGVfYWRkX3N5bWJvbHMoZSx0KXtyZXR1cm5bZV0uY29uY2F0KHQpfXF1b3RlX3JlbW92ZV9zeW1ib2xzKGUsdCl7cmV0dXJuW2VdLmNvbmNhdCh0KX1xdW90ZV9mYXN0X3N5bWJvbHMoZSx0KXtyZXR1cm5bZV0uY29uY2F0KHQpfXF1b3RlX2hpYmVybmF0ZV9hbGwoZSl7cmV0dXJuW2VdfWRlcHRoX2NyZWF0ZV9zZXNzaW9uKGUsdCxfKXtyZXR1cm5bZSx0LF9dfWRlcHRoX2RlbGV0ZV9zZXNzaW9uKGUpe3JldHVybltlXX1kZXB0aF9zZXRfc3ltYm9sKGUsdCl7cmV0dXJuW2UsdF19ZGVwdGhfY2xlYXJfc3ltYm9sKGUpe3JldHVybltlXX1kZXB0aF9zZXRfc2NhbGUoZSx0KXtyZXR1cm5bZSx0XX1jaGFydF9jcmVhdGVfc2Vzc2lvbihlLHQpe3JldHVybltlLHQ/ImRpc2FibGVfc3RhdGlzdGljcyI6IiJdfWNoYXJ0X2RlbGV0ZV9zZXNzaW9uKGUpe3JldHVybltlXX1zZXRfYXV0aF90b2tlbihlKXtyZXR1cm5bZV19c2V0X2xvY2FsZShlLHQpe3JldHVybltlLHRdfXN3aXRjaF90aW1lem9uZShlLHQpe3JldHVybltlLHRdfXJlc29sdmVfc3ltYm9sKGUsdCxfKXtyZXR1cm5bZSx0LF9dfWNyZWF0ZV9zZXJpZXMoZSx0LF8scyxpLG4sYSl7cmV0dXJuW2UsdCxfPV98fCIiLHMsaSxuLGFdfXJlbW92ZV9zZXJpZXMoZSx0KXtyZXR1cm5bZSx0XX1tb2RpZnlfc2VyaWVzKGUsdCxfLHMsaSxuKXtyZXR1cm5bZSx0LF89X3x8IiIscyxpLG5dfQpyZXF1ZXN0X21vcmVfZGF0YShlLHQsXyl7cmV0dXJuW2UsdCxfXX1zZXRfZnV0dXJlX3RpY2ttYXJrc19tb2RlKGUsdCl7cmV0dXJuW2UsdF19cmVxdWVzdF9zdHVkaWVzX21ldGFkYXRhKGUpe3JldHVybltlXX1jcmVhdGVfc3R1ZHkoZSx0LF8scyxpLG4pe3JldHVybltlLHQsXz1ffHwiIixzLGldLmNvbmNhdChuKX1jcmVhdGVfY2hpbGRfc3R1ZHkoZSx0LF8scyxpLG4pe3JldHVybiB0aGlzLmNyZWF0ZV9zdHVkeShlLHQsXyxzLGksbil9cmVtb3ZlX3N0dWR5KGUsdCl7cmV0dXJuW2UsdF19bW9kaWZ5X3N0dWR5KGUsdCxfLHMpe3JldHVybltlLHQsXz1ffHwiIl0uY29uY2F0KHMpfW5vdGlmeV9zdHVkeShlLHQsXyxzKXtyZXR1cm5bZSx0LF89X3x8IiIsc119Y3JlYXRlX3BvaW50c2V0KGUsdCxfLHMsaSxuKXtyZXR1cm5bZSx0LF89X3x8IiIscyxpXS5jb25jYXQobil9bW9kaWZ5X3BvaW50c2V0KGUsdCxfLHMpe3JldHVybltlLHQsXz1ffHwiIl0uY29uY2F0KHMpfXJlbW92ZV9wb2ludHNldChlLHQpe3JldHVybltlLHRdfXJlcXVlc3RfbW9yZV90aWNrbWFya3MoZSx0LF8pe3JldHVybltlLHQsX119Z2V0X2ZpcnN0X2Jhcl90aW1lKGUsdCxfKXtyZXR1cm5bZSx0LF9dfXJlcGxheV9jcmVhdGVfc2Vzc2lvbihlKXtyZXR1cm5bZV19cmVwbGF5X2RlbGV0ZV9zZXNzaW9uKGUpe3JldHVybltlXX1yZXBsYXlfcmVzZXQoZSx0LF8pe3JldHVybltlLHQsX119cmVwbGF5X3N0YXJ0KGUsdCxfKXtyZXR1cm5bZSx0LF9dfXJlcGxheV9zdG9wKGUsdCl7cmV0dXJuW2UsdF19cmVwbGF5X3N0ZXAoZSx0LF8pe3JldHVybltlLHQsX119cmVwbGF5X2FkZF9zZXJpZXMoZSx0LF8scyl7cmV0dXJuW2UsdCxfLHNdfXJlcGxheV9yZW1vdmVfc2VyaWVzKGUsdCxfLHMpe3JldHVybltlLHQsXyxzXX1yZXBsYXlfc2V0X3Jlc29sdXRpb24oZSx0LF8pe3JldHVybltlLHQsX119cmVwbGF5X2dldF9kZXB0aChlLHQsXyxzKXtyZXR1cm5bZSx0LF8sc119Y29udmVydFRpbWVzY2FsZVJlc3BvbnNlKGUpe2NvbnN0IHQ9ZS5tYXJrcy5tYXAoKGU9Pih7c3BhbjplWzBdLHRpbWU6ZVsxXSxpbmRleDplWzJdfSkpKSxfPXZvaWQgMD09PWUuaW5kZXhfZGlmZj9bXTplLmluZGV4X2RpZmYubWFwKChlPT4oe29sZDplWzBdLG5ldzplWzFdfSkpKTtyZXR1cm57Li4uZSxtYXJrczp0LGluZGV4X2RpZmY6XyxjbGVhcjowPT09ZS5jaGFuZ2VzLmxlbmd0aCYmMD09PV8ubGVuZ3RoJiYwPT09dC5sZW5ndGh9fWdldERhdGFVcGRhdGVPYmplY3RzKGUpe3JldHVybiBlLnBhcmFtc1swXX1nZXRUaW1lc2NhbGVPYmplY3RzKGUpe3JldHVybiBlLnBhcmFtc1swXX1nZXRUaW1lc2NhbGVDaGFuZ2VzZXQoZSl7cmV0dXJuIGUucGFyYW1zWzFdfXByZXBhcmVEYXRhVXBkYXRlT2JqZWN0cyhlLHQsXyl7Zm9yKGNvbnN0W2ksbl1vZiBPYmplY3QuZW50cmllcyh0KSl7Y29uc3QgdD0icGxvdHMiaW4gbj9uLnBsb3RzOm4uc2VyaWVzLGE9e2N1c3RvbUlkOmksdHVybmFyb3VuZDpuLnR1cm5hcm91bmQscGxvdHM6dH07Im5zImluIG4mJm4ubnMmJihhLm5vbnNlcmllcz1uLm5zKSwibGJzImluIG4mJm4ubGJzJiYoYS5sYXN0QmFyPXtjbG9zZVRpbWU6bi5sYnMuYmFyX2Nsb3NlX3RpbWV9KTtmb3IoY29uc3QgZSBvZiBhLnBsb3RzKWZvcihjb25zdFt0LF9db2YgT2JqZWN0LmVudHJpZXMoZS52YWx1ZSkpXyYmTWF0aC5hYnMoXyk+PTFlMTAwJiYoZS52YWx1ZVsrdF09dm9pZCAwKTtfKGUsaSx7bWV0aG9kOnMuV2ViY2hhcnRDaGFydFNlc3Npb25SZXNwb25zZU1ldGhvZC5EYXRhVXBkYXRlLHBhcmFtczphfSl9fXVucGFjayhlKXtjb25zdCB0PUpTT04ucGFyc2UoZSk7dC5tJiZ0LnAmJih0Lm1ldGhvZD10Lm0sdC5wYXJhbXM9dC5wLHQudGltZT10LnQpO2NvbnN0IF89dC5wYXJhbXNbMV07c3dpdGNoKHQubWV0aG9kKXtjYXNlInFzZCI6dC5tZXRob2Q9InF1b3RlX3N5bWJvbF9kYXRhIixfLnN5bWJvbG5hbWU9Xy5uLF8uc3RhdHVzPV8ucyxfLnZhbHVlcz1fLnYsXy52YWx1ZXMuY2hhbmdlPV8udi5jaCxfLnZhbHVlcy5sYXN0X3ByaWNlPV8udi5scCxfLnZhbHVlcy5jaGFuZ2VfcGVyY2VudD1fLnYuY2hwLGRlbGV0ZSBfLm4sZGVsZXRlIF8ucyxkZWxldGUgXy52LGRlbGV0ZSBfLnZhbHVlcy5jaCxkZWxldGUgXy52YWx1ZXMubHAsZGVsZXRlIF8udmFsdWVzLmNocDticmVhaztjYXNlImR1Ijp0Lm1ldGhvZD0iZGF0YV91cGRhdGUiLG4oXyk7YnJlYWs7Y2FzZSJjbGVhcl9kYXRhIjpmb3IoY29uc3QgZSBvZiBPYmplY3Qua2V5cyhfKSlfW2VdLnR1cm5hcm91bmQ9X1tlXS50O2JyZWFrO2Nhc2UidGltZXNjYWxlX3VwZGF0ZSI6bihfKX1yZXR1cm4gdH1wcmVwYXJlRW5jb2RlTWVzc2FnZShlLHQpe3JldHVybiBKU09OLnN0cmluZ2lmeSh7bTplLHA6dH0pfXJlcXVlc3RfZGF0YV9wcm9ibGVtcygpe3JldHVybltdfX19LDQ2MzQ0NyhlLHQsXyl7InVzZSBzdHJpY3QiO18uZCh0LHtIYW5kbGVySW5mbzooKT0+c30pO2NsYXNzIHN7Y29uc3RydWN0b3IoZSx0LF8pe3RoaXMuaGFuZGxlcj1lLHRoaXMuY3VzdG9tSWQ9dCx0aGlzLnNpbmdsZVNob3Q9X319fSw3ODMzNDAoZSx0LF8peyJ1c2Ugc3RyaWN0Ijt2YXIgcyxpLG47Xy5kKHQse1dlYmNoYXJ0Q2hhcnRTZXNzaW9uUmVzcG9uc2VNZXRob2Q6KCk9PmksV2ViY2hhcnRSZXBsYXlTZXNzaW9uUmVzcG9uc2VNZXRob2Q6KCk9Pm4sV2ViY2hhcnRSZXNwb25zZU1ldGhvZDooKT0+c30pLGZ1bmN0aW9uKGUpe2UuUmVxdWVzdERhdGFQcm9ibGVtcz0icmVxdWVzdF9kYXRhX3Byb2JsZW1zIixlLlByb3RvY29sRXJyb3I9InByb3RvY29sX2Vycm9yIixlLlByb3RvY29sU3dpdGNoZWQ9InByb3RvY29sX3N3aXRjaGVkIixlLkNyaXRpY2FsRXJyb3I9ImNyaXRpY2FsX2Vycm9yIn0oc3x8KHM9e30pKSxmdW5jdGlvbihlKXtlLlN0dWRpZXNNZXRhZGF0YT0ic3R1ZGllc19tZXRhZGF0YSIsZS5UaW1lU2NhbGVVcGRhdGU9InRpbWVzY2FsZV91cGRhdGUiLGUuVGlja01hcmtVcGRhdGU9InRpY2ttYXJrX3VwZGF0ZSIsZS5EVT0iZHUiLGUuRGF0YVVwZGF0ZT0iZGF0YV91cGRhdGUiLAplLkluZGV4VXBkYXRlPSJpbmRleF91cGRhdGUiLGUuVGltZVNjYWxlQ29tcGxldGVkPSJ0aW1lc2NhbGVfY29tcGxldGVkIixlLlFTRD0icXNkIixlLlF1b3RlTGlzdEZpZWxkPSJxdW90ZV9saXN0X2ZpZWxkcyIsZS5RdW90ZVN5bWJvbERhdGE9InF1b3RlX3N5bWJvbF9kYXRhIixlLlF1b3RlQ29tcGxldGVkPSJxdW90ZV9jb21wbGV0ZWQiLGUuRGVwdGhTeW1ib2xFcnJvcj0iZGVwdGhfc3ltYm9sX2Vycm9yIixlLkRlcHRoU3ltYm9sU3VjY2Vzcz0iZGVwdGhfc3ltYm9sX3N1Y2Nlc3MiLGUuRGVwdGhEYXRhPSJkZCIsZS5EZXB0aERhdGFVcGRhdGU9ImRwdSIsZS5EZXB0aEJhckxhc3RWYWx1ZT0iZGVwdGhfYmFyX2xhc3RfdmFsdWUiLGUuQ2xlYXJEYXRhPSJjbGVhcl9kYXRhIixlLlNlcmllc1RpbWVGcmFtZT0ic2VyaWVzX3RpbWVmcmFtZSIsZS5TeW1ib2xSZXNvbHZlZD0ic3ltYm9sX3Jlc29sdmVkIixlLlNlcmllc0Vycm9yPSJzZXJpZXNfZXJyb3IiLGUuU2VyaWVzQ29tcGxldGVkPSJzZXJpZXNfY29tcGxldGVkIixlLlN0dWR5TG9hZGluZz0ic3R1ZHlfbG9hZGluZyJ9KGl8fChpPXt9KSksZnVuY3Rpb24oZSl7ZS5SZXBsYXlFcnJvcj0icmVwbGF5X2Vycm9yIixlLlJlcGxheVBvaW50PSJyZXBsYXlfcG9pbnQiLGUuUmVwbGF5T2s9InJlcGxheV9vayIsZS5SZXBsYXlSZXNvbHV0aW9ucz0icmVwbGF5X3Jlc29sdXRpb25zIixlLlJlcGxheURhdGFFbmQ9InJlcGxheV9kYXRhX2VuZCIsZS5SZXBsYXlJbnN0YW5jZUlkPSJyZXBsYXlfaW5zdGFuY2VfaWQiLGUuUmVwbGF5RGVwdGg9InJlcGxheV9kZXB0aCJ9KG58fChuPXt9KSl9LDUyMTMzMyhlLHQsXyl7InVzZSBzdHJpY3QiO18uZCh0LHtnZXREZWZhdWx0UmVzb2x1dGlvbnM6KCk9Pm59KTt2YXIgcz1fKDkzMDIzMSksaT1fKDYxOTk5Mik7ZnVuY3Rpb24gbigpe2NvbnN0IGU9WyIxIiwiMyIsIjUiLCIxNSIsIjMwIiwiNDUiLCI2MCIsIjEyMCIsIjE4MCIsIjI0MCIsIjFEIiwiMVciLCIxTSIsIjNNIiwiNk0iLCIxMk0iLCIxUiIsIjEwUiIsIjEwMFIiLCIxMDAwUiJdO2lmKCEoMCxzLmlzRmVhdHVyZXNldEVuYWJsZWQpKCJ3aWRnZXQiKSl7bGV0IHQ9WyIxUyIsIjVTIiwiMTBTIiwiMTVTIiwiMzBTIiwiNDVzIl07cmV0dXJuKDAsaS5pc1RpY2tzRW5hYmxlZCkoKSYmKHQ9WyIxVCIsIjEwVCIsIjEwMFQiLCIxMDAwVCJdLmNvbmNhdCh0KSksdC5jb25jYXQoZSl9cmV0dXJuIGV9fSwyMTc1MjcoZSx0LF8peyJ1c2Ugc3RyaWN0IjtfLmQodCx7dHlwZXM6KCk9PnN9KTtjb25zdCBzPXtFQ09OT01JQzoiZWNvbm9taWMiLFFVQU5ETDoicXVhbmRsIn19LDEyNzcxMShlKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPUpTT04ucGFyc2UoJ3siY21lIjp7IklORElDQVRPUlNfT05fQ0hBUlQiOnsibGltaXQiOjk5OTk5fX0sImJvdmVzcGEiOnsiSU5ESUNBVE9SU19PTl9DSEFSVCI6eyJsaW1pdCI6OTk5OTl9fSwicWVjb21xYSI6eyJJTkRJQ0FUT1JTX09OX0NIQVJUIjp7ImxpbWl0Ijo5OTk5OX19LCJzYW50YW5kZXJjb21hciI6eyJJTkRJQ0FUT1JTX09OX0NIQVJUIjp7ImxpbWl0Ijo5OTk5OX19fScpfSw1MDI1ODcoZSl7InVzZSBzdHJpY3QiCjtlLmV4cG9ydHM9SlNPTi5wYXJzZSgneyJmcmVlIjp7IkNIQVRfQVNTSVNUQU5UIjp7ImxpbWl0Ijo1LCJkaXNhYmxlX29uX3RyaWFsIjp0cnVlfSwiQ0hBUlRfU1RPUkFHRSI6eyJsaW1pdCI6MX0sIk1VTFRJUExFX0NIQVJUUyI6eyJsaW1pdCI6MX0sIklORElDQVRPUlNfT05fQ0hBUlQiOnsibGltaXQiOjJ9LCJGVU5EQU1FTlRBTFNfT05fQ0hBUlQiOnsibGltaXQiOjF9LCJISVNUT1JJQ0FMX0JBUlMiOnsibGltaXQiOjV9LCJTVFVEWV9PTl9TVFVEWSI6eyJsaW1pdCI6ODAwLCJjaGlsZF9saW1pdCI6MX0sIlNFUlZFUl9TSURFX0FMRVJUUyI6eyJvdmVyYWxsX2xpbWl0Ijo1MCwibGltaXQiOjMsImNvbXBsZXhfbGltaXQiOjAsInByaW1pdGl2ZV9saW1pdCI6M30sIlNDUkVFTkVSX0lOVEVSVkFMUyI6eyJpbnRlcnZhbCI6WyIxRCIsIjFXIiwiMU0iXX0sIlNUVURZX1RFTVBMQVRFUyI6eyJsaW1pdCI6MX0sIlNJTVVMVEFORU9VU19DT05ORUNUSU9OUyI6eyJsaW1pdCI6MX0sIkJBQ0tFTkRfQ09OTkVDVElPTlMiOnsibGltaXQiOjJ9LCJJREVBX1NPQ0lBTF9MSU5LUyI6eyJzb2NpYWxzIjpbIlR3aXR0ZXIiLCJZb3V0dWJlIl19LCJNVUxUSUNPTE9SX0ZMQUdHRURfU1lNQk9MUyI6eyJsaW1pdCI6MX0sIldBVENITElTVF9TWU1CT0xTIjp7ImxpbWl0IjozMH0sIlZJREVPX0lERUFTX0xFTkdUSCI6eyJsaW1pdCI6MjB9LCJDUkVBVEVfTU9SRV9QT1JURk9MSU9TIjp7ImxpbWl0IjoxfSwiUE9SVEZPTElPX1RSQU5TQUNUSU9OUyI6eyJsaW1pdCI6MjAwMH0sIlBPUlRGT0xJT19IT0xESU5HUyI6eyJsaW1pdCI6MjB9fSwicHJvIjp7IkRSQVdJTkdTIjp7fSwiQkFDS1RFU1RJTkdfQ0hBUlRfRVhQQU5EIjp7fSwiQkFDS1RFU1RJTkdfRVhURU5ERURfTUVUUklDUyI6e30sIkJBQ0tURVNUSU5HX0VYUE9SVF9YTFNYIjp7fSwiQkFDS1RFU1RJTkdfRVhQT1JUX0NTViI6e30sIkNIQVRfQVNTSVNUQU5UIjp7ImxpbWl0Ijo1LCJkaXNhYmxlX29uX3RyaWFsIjp0cnVlfSwiUEVSU09OQUxfU1VQUE9SVCI6eyJkaXNhYmxlX29uX3RyaWFsIjp0cnVlfSwiQ0hBUlRfU1RPUkFHRSI6eyJsaW1pdCI6NX0sIk1VTFRJUExFX0NIQVJUUyI6eyJsaW1pdCI6Mn0sIk1BUktFVF9EQVRBX0xJTUlUUyI6eyJsaW1pdCI6MiwicHJpbWl0aXZlX2xpbWl0IjoyfSwiQ1VTVE9NX0lOVEVSVkFMUyI6e30sIk1VTFRJUExFX1dBVENITElTVFMiOnt9LCJJTVBPUlRfV0FUQ0hMSVNUUyI6e30sIkVYUE9SVF9XQVRDSExJU1RTIjp7fSwiSU5ESUNBVE9SU19PTl9DSEFSVCI6eyJsaW1pdCI6NX0sIkZVTkRBTUVOVEFMU19GT1JFQ0FTVCI6e30sIkZVTkRBTUVOVEFMU19PTl9DSEFSVCI6eyJsaW1pdCI6NH0sIlRWX1BST1NUVURJRVMiOnsic3R1ZHlfcGFja2FnZXMiOlsidHYtY2hhcnRwYXR0ZXJucyJdfSwiSElTVE9SSUNBTF9CQVJTIjp7ImxpbWl0IjoxMH0sIlRWX1ZPTFVNRUJZUFJJQ0UiOnsic3R1ZHlfcGFja2FnZXMiOlsidHYtdm9sdW1lYnlwcmljZSJdfSwiU1RVRFlfT05fU1RVRFkiOnsibGltaXQiOjgwMCwiY2hpbGRfbGltaXQiOjF9LCJUSUNLX0JZX1RJQ0tfUFVTSF9EQVRBIjp7fSwiU0VSVkVSX1NJREVfQUxFUlRTIjp7Im92ZXJhbGxfbGltaXQiOjIwMDAsImxpbWl0IjoyMCwiY29tcGxleF9saW1pdCI6MjAsInByaW1pdGl2ZV9saW1pdCI6MjB9LCJTQ1JFRU5FUl9BVVRPX1JFRlJFU0giOnt9LCJTQ1JFRU5FUl9ORVdfQVVUT19SRUZSRVNIIjp7fSwiU0NSRUVORVJfTkVXX0VYUE9SVF9DU1ZfREFUQSI6e30sIlNDUkVFTkVSX05FV19TSE9XX1JFU1RSSUNURURfREFUQSI6e30sIlNIT1dfQk9ORFNfUkVTVFJJQ1RFRF9EQVRBIjp7fSwiUE9SVEZPTElPX0RBVEFfTElNSVQiOnt9LCJDUkVBVEVfTU9SRV9QT1JURk9MSU9TIjp7ImxpbWl0IjozfSwiUE9SVEZPTElPX1RSQU5TQUNUSU9OUyI6eyJsaW1pdCI6NTAwMH0sIlBPUlRGT0xJT19IT0xESU5HUyI6eyJsaW1pdCI6NTB9LCJTQ1JFRU5FUl9JTlRFUlZBTFMiOnsiaW50ZXJ2YWwiOlsiMW0iLCI1bSIsIjE1bSIsIjMwbSIsIjFoIiwiMmgiLCI0aCIsIjFEIiwiMVciLCIxTSJdfSwiTk9fU1BPTlNPUkVEX0FEUyI6eyJkaXNhYmxlX29uX2xpdGVfcGxhbiI6ImV4Y2x1ZGVfbW9iaWxlIn0sIlNUVURZX1RFTVBMQVRFUyI6eyJsaW1pdCI6OTk5OTl9LCJTSU1VTFRBTkVPVVNfQ09OTkVDVElPTlMiOnsibGltaXQiOjF9LCJCQUNLRU5EX0NPTk5FQ1RJT05TIjp7ImxpbWl0IjoxMH0sIklEQ19BVkFJTEFCTEVfREVMQVkiOnt9LCJTVEFUVVMiOnsiZGlzYWJsZV9vbl90cmlhbCI6dHJ1ZX0sIkJBUl9SRVBMQVlfSU5UUkFEQVkiOnsibGltaXQiOjF9LCJNVUxUSUZMQUdHRURfU1lNQk9MU19MSVNUUyI6e30sIlNIT1dTIjp7ImRpc2FibGVfb25fdHJpYWwiOnRydWV9LCJBTEVSVFNfV0VCSE9PSyI6e30sIkFMRVJUU19PTl9FQVJOSU5HUyI6e30sIkFMRVJUU19PTl9GVU5EQU1FTlRBTF9NRVRSSUNTIjp7fSwiREVFUF9GVU5EQU1FTlRBTFNfSElTVE9SWSI6e30sIlBVQkxJU0hfUFJPVEVDVEVEX1NDUklQVFMiOnsiZGlzYWJsZV9vbl90cmlhbCI6dHJ1ZX0sIklERUFfU09DSUFMX0xJTktTIjp7InNvY2lhbHMiOlsiVHdpdHRlciIsIllvdXR1YmUiXX0sIkVYVEVOREVEX1NPQ0lBTF9MSU5LUyI6eyJzb2NpYWxzIjpbIkZhY2Vib29rIiwiSW5zdGFncmFtIl0sImRpc2FibGVfb25fdHJpYWwiOnRydWV9LCJNVUxUSV9NT05JVE9SIjp7fSwiTVVMVElDT0xPUl9GTEFHR0VEX1NZTUJPTFMiOnsibGltaXQiOjd9LCJJTlRSQURBWV9FWENIQU5HRSI6e30sIlZPTFVNRV9QUk9GSUxFIjp7fSwiU1RSRUFNU19BQ0NFU1MiOnsiZm9sbG93ZXJzIjoxMH0sIlNNU18yRkFfVkVSSUZJQ0FUSU9OIjp7ImRpc2FibGVfb25fdHJpYWwiOnRydWV9LCJTT0NJQUxfQUNUSVZJVFkiOnsiZGlzYWJsZV9vbl90cmlhbCI6dHJ1ZX0sIldBVENITElTVF9TWU1CT0xTIjp7ImxpbWl0IjoxMDAwfSwiRklFTERTX1BFUk1JU1NJT05TIjp7Iml0ZW1zIjpbInJlZmJvbmRzIl19LCJDVVNUT01fUkFOR0VfQkFSUyI6e30sIkZBU1RFU1RfREFUQV9GTE9XIjp7fSwiU0VTU0lPTl9WT0xVTUVfUFJPRklMRSI6e30sIlNIT1dfRVRGX0hPTERJTkdTX0RBVEEiOnt9fSwicHJvX3JlYWx0aW1lIjp7ImV4dGVuZHMiOiJwcm8iLCJDSEFSVF9TVE9SQUdFIjp7ImxpbWl0IjoxMH0sIk1VTFRJUExFX0NIQVJUUyI6eyJsaW1pdCI6NH0sIk1BUktFVF9EQVRBX0xJTUlUUyI6eyJsaW1pdCI6NCwicHJpbWl0aXZlX2xpbWl0Ijo0fSwiSU5ESUNBVE9SU19PTl9DSEFSVCI6eyJsaW1pdCI6MTB9LCJGVU5EQU1FTlRBTFNfT05fQ0hBUlQiOnsibGltaXQiOjd9LCJUVl9QUk9TVFVESUVTIjp7InN0dWR5X3BhY2thZ2VzIjpbInR2LXByb3N0dWRpZXMiLCJ0di1jaGFydHBhdHRlcm5zIl19LCJTVFVEWV9PTl9TVFVEWSI6eyJsaW1pdCI6ODAwLCJjaGlsZF9saW1pdCI6OX0sIlNFUlZFUl9TSURFX0FMRVJUUyI6eyJvdmVyYWxsX2xpbWl0IjoyMDAwLCJsaW1pdCI6MTAwLCJjb21wbGV4X2xpbWl0IjoxMDAsInByaW1pdGl2ZV9saW1pdCI6MTAwfSwiQUxFUlRTX01VTFRJQ09ORElUSU9OUyI6eyJjb25kaXRpb25fbGltaXQiOjV9LCJDSEFUX0FTU0lTVEFOVCI6eyJsaW1pdCI6NSwiZGlzYWJsZV9vbl90cmlhbCI6dHJ1ZX0sIkNBTl9FRElUX1BVQkxJQ19DSEFUUyI6eyJkaXNhYmxlX29uX3RyaWFsIjp0cnVlfSwiQkFDS0VORF9DT05ORUNUSU9OUyI6eyJsaW1pdCI6MjB9LCJFWFBPUlRfQ0hBUlRfREFUQSI6e30sIkNVU1RPTV9GT1JNVUxBUyI6e30sIklOVFJBREFZX0VYT1RJQ19DSEFSVFMiOnt9LCJLQUdJX1JFTktPIjp7fSwiSU5UUkFEQVlfU1BSRUFEIjp7fSwiQ1VTVE9NX0NIQVRTIjp7fSwiQ1JFQVRFX01PUkVfUE9SVEZPTElPUyI6eyJsaW1pdCI6NH0sIlBPUlRGT0xJT19IT0xESU5HUyI6eyJsaW1pdCI6NzV9fSwicHJvX3ByZW1pdW0iOnsiZXh0ZW5kcyI6InByb19yZWFsdGltZSIsIkJBUl9ERVRBTElaQVRJT04iOnt9LCJTQ1JJUFRfRVhFQ1VUSU9OX09OX0hJU1RPUllfQkFSUyI6e30sIkNIQVJUX1NUT1JBR0UiOnsibGltaXQiOjk5OTk5fSwiTVVMVElQTEVfQ0hBUlRTIjp7ImxpbWl0Ijo4fSwiTUFSS0VUX0RBVEFfTElNSVRTIjp7ImxpbWl0Ijo2LCJwcmltaXRpdmVfbGltaXQiOjZ9LCJJTkRJQ0FUT1JTX09OX0NIQVJUIjp7ImxpbWl0IjoyNX0sIkZVTkRBTUVOVEFMU19PTl9DSEFSVCI6eyJsaW1pdCI6MTB9LCJGVU5EQU1FTlRBTF9HUkFQSFNfTEFSR0VfVElNRV9SQU5HRSI6e30sIkNIQVRfQVNTSVNUQU5UIjp7ImxpbWl0Ijo5OTk5OSwiZGlzYWJsZV9vbl90cmlhbCI6dHJ1ZX0sIkNIQVJUX1BBVFRFUk5TIjp7InN0dWR5X3BhY2thZ2VzIjpbInR2LWNoYXJ0cGF0dGVybnMiLCJ0di1jaGFydF9wYXR0ZXJucyJdfSwiSElTVE9SSUNBTF9CQVJTIjp7ImxpbWl0IjoyMH0sIlNUVURZX09OX1NUVURZIjp7ImxpbWl0Ijo4MDAsImNoaWxkX2xpbWl0IjoyNH0sIlNFUlZFUl9TSURFX0FMRVJUUyI6eyJvdmVyYWxsX2xpbWl0IjoyMDAwLCJsaW1pdCI6NDAwLCJjb21wbGV4X2xpbWl0Ijo0MDAsInByaW1pdGl2ZV9saW1pdCI6NDAwLCJ3YXRjaGxpc3RfbGltaXQiOjIsIm92ZXJhbGxfd2F0Y2hsaXN0X2xpbWl0Ijo1fSwiU0lNVUxUQU5FT1VTX0NPTk5FQ1RJT05TIjp7ImxpbWl0IjoyfSwiQkFDS0VORF9DT05ORUNUSU9OUyI6eyJsaW1pdCI6NTB9LCJJREVBX1NJR05BVFVSRSI6eyJkaXNhYmxlX29uX3RyaWFsIjp0cnVlfSwiUFJPRklMRV9XRUJTSVRFX0ZJRUxEIjp7ImRpc2FibGVfb25fdHJpYWwiOnRydWV9LCJCQVJfUkVQTEFZX0lOVFJBREFZIjp7ImxpbWl0Ijo0fSwiQkFSX1JFUExBWV8xUyI6e30sIkFMRVJUU19OT19FWFBJUkFUSU9OIjp7fSwiUFVCTElTSF9JTlZJVEVfT05MWV9TQ1JJUFRTIjp7ImRpc2FibGVfb25fdHJpYWwiOnRydWV9LCJFWFBPUlRfQ0hBUlRfREFUQSI6e30sIkRFRVBfSElTVE9SWV9CQUNLVEVTVCI6e30sIkFMRVJUU19PTl9TRUNPTkRTIjp7fSwiUEVSTUFORU5UX1NUUkVBTV9SRUNPUkRTIjp7fSwiRVhURU5ERURfU09DSUFMX0xJTktTIjp7InNvY2lhbHMiOlsiRmFjZWJvb2siLCJJbnN0YWdyYW0iLCJXZWJzaXRlIl0sImRpc2FibGVfb25fdHJpYWwiOnRydWV9LCJTRUNPTkRTX0lOVEVSVkFMUyI6e30sIlRQT19QRVJJT0RJQyI6eyJzdHVkeV9wYWNrYWdlcyI6WyJ0di12b2x1bWVieXByaWNlIl19LCJUUE9fQ0hBUlRfU1RZTEUiOnt9LCJWT0xVTUVfQ0FORExFUyI6e30sIlZJREVPX0lERUFTX0xFTkdUSCI6eyJsaW1pdCI6NjB9LCJWT0xVTUVfRk9PVFBSSU5UIjp7fSwiUElORV9TQ1JFRU5FUiI6e30sIkNSRUFURV9NT1JFX1BPUlRGT0xJT1MiOnsibGltaXQiOjV9LCJQT1JURk9MSU9fSE9MRElOR1MiOnsibGltaXQiOjEwMH0sIlNPQ0lBTF9UUlVTVEVEX1VTRVIiOnsiZGlzYWJsZV9vbl90cmlhbCI6dHJ1ZX0sIkZPTExPV0VSU19PTkxZX01JTkRTIjp7ImRpc2FibGVfb25fdHJpYWwiOnRydWV9fSwicHJvX2V4cGVydCI6eyJleHRlbmRzIjoicHJvX3ByZW1pdW0iLCJJTkRJQ0FUT1JTX09OX0NIQVJUIjp7ImxpbWl0IjozMH0sIkZVTkRBTUVOVEFMU19PTl9DSEFSVCI6eyJsaW1pdCI6MTV9LCJTVFVEWV9PTl9TVFVEWSI6eyJsaW1pdCI6ODAwLCJjaGlsZF9saW1pdCI6Mjl9LCJNVUxUSVBMRV9DSEFSVFMiOnsibGltaXQiOjEwfSwiTUFSS0VUX0RBVEFfTElNSVRTIjp7ImxpbWl0IjoxMiwicHJpbWl0aXZlX2xpbWl0IjoxMn0sIkhJU1RPUklDQUxfQkFSUyI6eyJsaW1pdCI6MjV9LCJTRVJWRVJfU0lERV9BTEVSVFMiOnsib3ZlcmFsbF9saW1pdCI6MjAwMCwibGltaXQiOjYwMCwiY29tcGxleF9saW1pdCI6NjAwLCJwcmltaXRpdmVfbGltaXQiOjYwMCwid2F0Y2hsaXN0X2xpbWl0IjoxMCwib3ZlcmFsbF93YXRjaGxpc3RfbGltaXQiOjIwfSwiQkFDS0VORF9DT05ORUNUSU9OUyI6eyJsaW1pdCI6ODB9LCJCQVJfUkVQTEFZX0lOVFJBREFZIjp7ImxpbWl0Ijo2fSwiQkFSX1JFUExBWV8xUyI6e30sIkJBUl9SRVBMQVlfMVQiOnt9LCJFWFBPUlRfRklOQU5DSUFMU19EQVRBIjp7fSwiVElDS19JTlRFUlZBTFMiOnt9LCJGSVJTVF9QUklPUklUWV9TVVBQT1JUIjp7fSwiQlVZX1BST19EQVRBIjp7fSwiQ1JFQVRFX01PUkVfUE9SVEZPTElPUyI6eyJsaW1pdCI6Nn0sIlBPUlRGT0xJT19IT0xESU5HUyI6eyJsaW1pdCI6MTI1fX0sInByb19wcmVtaXVtX2V4cGVydCI6eyJleHRlbmRzIjoicHJvX2V4cGVydCIsIklORElDQVRPUlNfT05fQ0hBUlQiOnsibGltaXQiOjUwfSwiRlVOREFNRU5UQUxTX09OX0NIQVJUIjp7ImxpbWl0IjoyNX0sIlNUVURZX09OX1NUVURZIjp7ImxpbWl0Ijo4MDAsImNoaWxkX2xpbWl0Ijo0OX0sIk1VTFRJUExFX0NIQVJUUyI6eyJsaW1pdCI6MTZ9LCJNQVJLRVRfREFUQV9MSU1JVFMiOnsibGltaXQiOjk5OTk5LCJwcmltaXRpdmVfbGltaXQiOjI1fSwiSElTVE9SSUNBTF9CQVJTIjp7ImxpbWl0Ijo0MH0sIlNFUlZFUl9TSURFX0FMRVJUUyI6eyJvdmVyYWxsX2xpbWl0Ijo0MDAwLCJsaW1pdCI6MTAwMCwiY29tcGxleF9saW1pdCI6MTAwMCwicHJpbWl0aXZlX2xpbWl0IjoxMDAwLCJ3YXRjaGxpc3RfbGltaXQiOjE1LCJvdmVyYWxsX3dhdGNobGlzdF9saW1pdCI6MzB9LCJCQUNLRU5EX0NPTk5FQ1RJT05TIjp7ImxpbWl0IjoyMDB9LCJCQVJfUkVQTEFZX0lOVFJBREFZIjp7ImxpbWl0IjoxMH0sIkNSRUFURV9NT1JFX1BPUlRGT0xJT1MiOnsibGltaXQiOjd9LCJQT1JURk9MSU9fSE9MRElOR1MiOnsibGltaXQiOjE1MH19fScpCn19XSk7"}},"time_used":7,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":7,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/12181.b65a58355ff7cc34950f.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:13.002Z","timestamp":1785148033002,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/12181.b65a58355ff7cc34950f.js HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:13 GMT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a44af20-21c82\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Wed, 01 Jul 2026 06:09:36 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.57\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/01/2026 11:40:37\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: e2b9af7093ebe8274cac774d4c6e34c5\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":138370,"size_decoded":18187,"mime_type":"application/javascript; charset=utf-8","magic":"ASCII text, with very long lines (3070)","md5":"90cd4a18a60bc908d0840ba4fec27dc6","sha1":"bb5de7eba54b0d9323f872960612df642a27716e","sha256":"ae043b44480c283e0e50b84e353fe3e98e560fb8f9bd14638f61a5dfadc231ba","sha512":"1ff83bc8bcac42839140d927da7b753dc51b3ab887327bf07fef3ca3b194425621ed7376ef404517f818a80b9f3d96955fd5c9239c1dc05e599503f7118edc99","ssdeep":"1536:U4ecrc2hMNlbPWqfxN+fUE44ld4e44IJmuJY7+fHfvWr05KNyhLcSbWd4+o:4CxdswjaWyn","tlshash":"10d345b217f406f473b80d5293f77e591b3c74a359882c52d2a4d9a0dd40fc2a96ba3e","first_seen":"2026-07-01T19:46:28.364877Z","last_seen":"2026-07-27T12:57:37.147083Z","times_seen":1122,"resource_available":true,"data":"KHNlbGYud2VicGFja0NodW5rdHJhZGluZ3ZpZXc9c2VsZi53ZWJwYWNrQ2h1bmt0cmFkaW5ndmlld3x8W10pLnB1c2goW1sxMjE4MV0sezcxMjE4MShlKXtlLmV4cG9ydHMudHpEYXRhPXsiQWZyaWNhL0NhaXJvIjp7dGltZTpbLTIxODU0MDE2MDAsLTkyOTgzNjgwMCwtOTIzMDk3NjAwLC05MDYxNjMyMDAsLTg5Mjg1NzYwMCwtODc1ODM2ODAwLC04NTc3NzkyMDAsLTg0NDMwMDgwMCwtODI1ODExMjAwLC04MTI2Nzg0MDAsLTc5NDE4ODgwMCwtNzc5ODQ2NDAwLC03NjI2NTI4MDAsLTM5OTA4MTYwMCwtMzg2NjRlNCwtMzY4MzIzMjAwLC0zNTUxMDRlMywtMzM2NzgzNjAwLC0zMjM2NDM2MDAsLTMwNTE2MTIwMCwtMjkyMDIxMjAwLC0yNzM2MjUyMDAsLTI2MDQ4NTIwMCwtMjQyMDg5MjAwLC0yMjg5NDkyMDAsLTIxMDU1MzIwMCwtMTk3NDEzMjAwLC0xNzg5MzA4MDAsLTE2NTc5MDgwMCwtMTQ3Mzk0ODAwLC0xMzQyNTQ4MDAsLTExNTg1ODgwMCwtMTAyNjMyNDAwLC04NDMyMjgwMCwtNzEwOTY0MDAsLTUyNzAwNDAwLC0zOTQ3NGUzLC0yMTE2NDQwMCwtNzkzOGUzLDEwMzcxNjAwLDIzNTk4ZTMsNDE5MDc2MDAsNTUxMzRlMyw3MzUzZTQsODY3NTY0MDAsMTA1MDY2ZTMsMTE4MjkyNDAwLDEzNjYwMmUzLDE0OTgyODQwMCwxNjgxMzhlMywxODEzNjQ0MDAsMTk5NzYwNDAwLDIxMjk4NjgwMCwyMzEyOTY0MDAsMjQ0NTIyODAwLDI2MjgzMjQwMCwyNzYwNTg4MDAsMjk0MzY4NDAwLDMwNzU5NDgwMCwzMjU5OTA4MDAsMzM5MjE3MjAwLDM1NzUyNjgwMCwzNzA3NTMyMDAsMzk2NDA2ODAwLDQwMjI4OTIwMCw0MjY4MTk2MDAsNDMzODI1MjAwLDQ1MjIyMTIwMCw0NjU0NDc2MDAsNDgzNzU3MjAwLDQ5Njk4MzYwMCw1MTUyOTMyMDAsNTI4NTE5NjAwLDU0NjgyOTIwMCw1NjAwNTU2MDAsNTc4NDUxNjAwLDU5MTY3OGUzLDYxMDQxOTYwMCw2MjMyMTRlMyw2NDE1MjM2MDAsNjU0NzVlNCw2NzMwNTk2MDAsNjg2Mjg2ZTMsNzA0NjgyZTMsNzE3OTA4NDAwLDczNjIxOGUzLDc0OTQ0NDQwMCw3Njc3NTRlMyw3ODA5ODA0MDAsNzk5MDI3MjAwLDgxMjMzMjgwMCw4MzA0NzY4MDAsODQzNzgyNDAwLDg2MTkyNjQwMCw4NzUyMzJlMyw4OTMzNzZlMyw5MDY2ODE2MDAsOTI1NDMwNDAwLDkzODczNmUzLDk1Njg4ZTQsOTcwMTg1NjAwLDk4ODMyOTYwMCwxMDAxNjM1MjAwLDEwMTk3NzkyMDAsMTAzMzA4NDgwMCwxMDUxMjI4ODAwLDEwNjQ1MzQ0MDAsMTA4MzI4MzIwMCwxMDk2NTg4ODAwLDExMTQ3MzI4MDAsMTEyODAzODQwMCwxMTQ2MTgyNDAwLDExNTg4ODMyMDAsMTE3NzYzMmUzLDExODkxMjMyMDAsMTIwOTA4MTYwMCwxMjE5OTY4ZTMsMTI0MDUzMTIwMCwxMjUwODEyODAwLDEyNzI1ODU2MDAsMTI4MTQ4NDgwMCwxMjg0MDc2ODAwLDEyODU4OTEyMDAsMTQwMDE5ODQwMCwxNDAzODI3MjAwLDE0MDY4NTEyMDAsMTQxMTY4OTYwMCwxNjgyNjRlNCwxNjk4MzY0ODAwLDE3MTQwODk2MDAsMTczMDQxOTIwMCwxNzQ1NTM5MjAwLDE3NjE4Njg4MDAsMTc3Njk4ODgwMCwxNzkzMzE4NDAwLDE4MDkwNDMyMDAsMTgyNDc2OGUzLDE4NDA0OTI4MDAsMTg1NjIxNzYwMCwxODcxOTQyNDAwLDE4ODc2NjcyMDAsMTkwMzM5MmUzLDE5MTk3MjE2MDAsMTkzNDg0MTYwMF0sb2Zmc2V0Ols3NTA5LDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwXX0sIkFmcmljYS9DYXNhYmxhbmNhIjp7CnRpbWU6Wy0xNzczMDE0NDAwLC05NTYzNjE2MDAsLTk1MDQ4NjQwMCwtOTQyMDE5MjAwLC03NjExODRlMywtNjE3MjQxNjAwLC02MDUxNDU2MDAsLTgxNDMyZTMsLTcxMTA3MjAwLDE0MTI2NGUzLDE0NzIyNTYwMCwxOTk3NTY4MDAsMjA3NzA1NjAwLDIzMTI5MjgwMCwyNDQyNTI4MDAsMjY1NTA3MjAwLDI3MTAzNjgwMCw0NDgyNDMyMDAsNTA0OTIxNjAwLDEyMTIyNzg0MDAsMTIyMDIyNzIwMCwxMjQzODE0NDAwLDEyNTA4MTI4MDAsMTI3Mjc1ODQwMCwxMjgxMjI1NjAwLDEzMDE3ODg4MDAsMTMxMjA3MDQwMCwxMzM1NjY0ODAwLDEzNDI3NTMyMDAsMTM0NTQyOGUzLDEzNDg5NzRlMywxMzY3MTE0NDAwLDEzNzMxNjZlMywxMzc2MWU1LDEzODI4NDI4MDAsMTM5NjE0NDgwMCwxNDAzOTI0NDAwLDE0MDY5NDQ4MDAsMTQxNDI5MjQwMCwxNDI3NTk0NDAwLDE0MzQyNTA4MDAsMTQzNzI3MTIwMCwxNDQ1NzQyZTMsMTQ1OTA0NGUzLDE0NjUwOTU2MDAsMTQ2ODExNmUzLDE0Nzc3OTY0MDAsMTQ5MDQ5MzYwMCwxNDk1MzM1NjAwLDE0OTg5NjA4MDAsMTUwOTI0NmUzLDE1MjE5NDMyMDAsMTUyNjE4MDQwMCwxNTI5MjAwODAwLDE1NDA2OTU2MDAsMTU1NzAyNTIwMCwxNTYwMDQ1NjAwLDE1ODcyNjUyMDAsMTU5MDg5MDQwMCwxNjE4MTFlNCwxNjIxMTMwNDAwLDE2NDgzNWU0LDE2NTE5NzUyMDAsMTY3OTE5NDgwMCwxNjgyMjE1MjAwLDE3MTAwMzk2MDAsMTcxMzA2ZTQsMTc0MDI3OTYwMCwxNzQzOTA0ODAwLDE3NzExMjQ0MDAsMTc3NDE0NDgwMCwxODAxOTY5MjAwLDE4MDQ5ODk2MDAsMTgzMjIwOTIwMCwxODM1ODM0NDAwLDE4NjMwNTRlMywxODY2MDc0NDAwLDE4OTMyOTRlMywxODk2OTE5MjAwLDE5MjQxMzg4MDAsMTkyNzE1OTIwMF0sb2Zmc2V0OlstMTgyMCwwLDM2MDAsMCwzNjAwLDAsMzYwMCwwLDM2MDAsMCwzNjAwLDAsMzYwMCwwLDM2MDAsMCwzNjAwLDAsMzYwMCwwLDM2MDAsMCwzNjAwLDAsMzYwMCwwLDM2MDAsMCwzNjAwLDAsMzYwMCwwLDM2MDAsMCwzNjAwLDAsMzYwMCwwLDM2MDAsMCwzNjAwLDAsMzYwMCwwLDM2MDAsMCwzNjAwLDAsMzYwMCwwLDM2MDAsMCwzNjAwLDAsMzYwMCwzNjAwLDAsMzYwMCwwLDM2MDAsMCwzNjAwLDAsMzYwMCwwLDM2MDAsMCwzNjAwLDAsMzYwMCwwLDM2MDAsMCwzNjAwLDAsMzYwMCwwLDM2MDAsMCwzNjAwLDBdfSwiQWZyaWNhL0pvaGFubmVzYnVyZyI6e3RpbWU6Wy0yNDU4MTY2NDAwLC0yMTA5MjgzMjAwLC04NjA5Njg4MDAsLTg0NTI0NGUzLC04Mjk1MTkyMDAsLTgxMzc5NDQwMCwxOTI0OTk5MjAwXSxvZmZzZXQ6WzY3MjAsNTQwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMF19LCJBZnJpY2EvTGFnb3MiOnt0aW1lOlstMjAzNTU4NGUzLC0xOTQwODg5NjAwLC0xNzY3MjI1NjAwLC0xNTg4NDY0ZTMsMTkyNDk5NTYwMF0sb2Zmc2V0Ols4MTUsMCw4MTUsMTgwMCwzNjAwXX0sIkFmcmljYS9OYWlyb2JpIjp7dGltZTpbLTE5NDYxNmU0LC0xMzA5NzM3NjAwLC0xMjYxOTU4NDAwLC0xMDQxMzc5MjAwLC04NjUyOTZlMywxOTI1MDAyODAwXSxvZmZzZXQ6Wzg4MzYsOWUzLDEwODAwLDllMyw5OTAwLDEwODAwXX0sIkFmcmljYS9UdW5pcyI6e3RpbWU6Wy0yNzk3MmU1LC0xODU1OTU4NDAwLC05NjkyMzg4MDAsLTk1MDQ4NjQwMCwtOTQxOTM2NDAwLC04OTExMjk2MDAsLTg3NzgyNGUzLC04NTcyNWU0LC04NDQ1NTI4MDAsLTg0MjkxMTIwMCwtODQyMjJlNCwtODI4MjIzMjAwLC04MTI0OTg0MDAsLTc5NjI2MjQwMCwtNzgxMDQ4ODAwLC03NjY2MjcyMDAsMjMxMjA2NDAwLDI0MzkxMDgwMCwyNjI4Mjg4MDAsMjc2MDUxNjAwLDU4MTEyNjQwMCw1OTExNTI0MDAsNjA2ODczNjAwLDYyMjYwMmUzLDY0MTUyZTQsNjU0NjU2NDAwLDExMTQ5MDU2MDAsMTEyODA0NTYwMCwxMTQzMzM4NDAwLDExNjIwOTA4MDAsMTE3NDc4OGUzLDExOTM1NDA0MDAsMTIwNjg0MjQwMCwxMjI0OTllNCwxOTI0OTk1NjAwXSxvZmZzZXQ6WzI0NDQsNTYxLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwXX0sIkFtZXJpY2EvQW5jaG9yYWdlIjp7CnRpbWU6Wy0zMjI1MTczMzAzLC0yMTg4OTg3MjAwLC04ODAyMzZlMywtNzY5NDI4ZTMsLTc2NTQxMDQwMCwtODY5MTg0MDAsLTIxNTA2NDAwLC01NzgxNjAwLDk5NDMyMDAsMjU2NjhlMyw0MTM5MjgwMCw1NzcyMjQwMCw3MzQ0NzIwMCw4OTE3MmUzLDEwNDg5NjgwMCwxMjA2MjE2MDAsMTI2NjY5NjAwLDE1MjA3MTIwMCwxNjIzNTI4MDAsMTgzNTIwODAwLDE5OTI0NTYwMCwyMTU1NzUyMDAsMjMwNjk1MjAwLDI0NzAyNDgwMCwyNjI3NDk2MDAsMjc4NDc0NDAwLDI5NDE5OTIwMCwzMDk5MjRlMywzMjU2NDg4MDAsMzQxMzczNjAwLDM1NzA5ODQwMCwzNzI4MjMyMDAsMzg4NTQ4ZTMsNDA0ODc3NjAwLDQxOTk5NzYwMCw0MzYzMjcyMDAsNDM4OTk4NDAwLDQ1MjA1MmUzLDQ2Nzc3NjgwMCw0ODM1MDE2MDAsNDk5MjI2NDAwLDUxNDk1MTIwMCw1MzA2NzZlMyw1NDQ1ODY0MDAsNTYyMTI1NjAwLDU3NjAzNmUzLDU5NDE4ZTQsNjA3NDg1NjAwLDYyNTYyOTYwMCw2Mzg5MzUyMDAsNjU3MDc5MjAwLDY3MDk4OTYwMCw2ODg1Mjg4MDAsNzAyNDM5MjAwLDcxOTk3ODQwMCw3MzM4ODg4MDAsNzUyMDMyODAwLDc2NTMzODQwMCw3ODM0ODI0MDAsNzk2Nzg4ZTMsODE0OTMyZTMsODI4ODQyNDAwLDg0NjM4MTYwMCw4NjAyOTJlMyw4Nzc4MzEyMDAsODkxNzQxNjAwLDkwOTI4MDgwMCw5MjMxOTEyMDAsOTQxMzM1MjAwLDk1NDY0MDgwMCw5NzI3ODQ4MDAsOTg2MDkwNDAwLDEwMDQyMzQ0MDAsMTAxODE0NDgwMCwxMDM1Njg0ZTMsMTA0OTU5NDQwMCwxMDY3MTMzNjAwLDEwODEwNDRlMywxMDk5MTg4ZTMsMTExMjQ5MzYwMCwxMTMwNjM3NjAwLDExNDM5NDMyMDAsMTE2MjA4NzIwMCwxMTczNTc4NDAwLDExOTQxNDE2MDAsMTIwNTAyOGUzLDEyMjU1OTEyMDAsMTIzNjQ3NzYwMCwxMjU3MDQwODAwLDEyNjg1MzJlMywxMjg5MDk1MjAwLDEyOTk5ODE2MDAsMTMyMDU0NDgwMCwxMzMxNDMxMjAwLDEzNTE5OTQ0MDAsMTM2Mjg4MDgwMCwxMzgzNDQ0ZTMsMTM5NDMzMDQwMCwxNDE0ODkzNjAwLDE0MjU3OGU0LDE0NDYzNDMyMDAsMTQ1NzgzNDQwMCwxNDc4Mzk3NjAwLDE0ODkyODRlMywxNTA5ODQ3MjAwLDE1MjA3MzM2MDAsMTU0MTI5NjgwMCwxNTUyMTgzMjAwLDE1NzI3NDY0MDAsMTU4MzYzMjgwMCwxNjA0MTk2ZTMsMTYxNTY4NzIwMCwxNjM2MjUwNDAwLDE2NDcxMzY4MDAsMTY2NzdlNSwxNjc4NTg2NDAwLDE2OTkxNDk2MDAsMTcxMDAzNmUzLDE3MzA1OTkyMDAsMTc0MTQ4NTYwMCwxNzYyMDQ4ODAwLDE3NzI5MzUyMDAsMTc5MzQ5ODQwMCwxODA0OTg5NjAwLDE4MjU1NTI4MDAsMTgzNjQzOTIwMCwxODU3MDAyNDAwLDE4Njc4ODg4MDAsMTg4ODQ1MmUzLDE4OTkzMzg0MDAsMTkxOTkwMTYwMCwxOTMwNzg4ZTNdLG9mZnNldDpbNTA0MjQsLTM1OTc2LC0zNmUzLC0zMjQwMCwtMzI0MDAsLTM2ZTMsLTM2ZTMsLTMyNDAwLC0zNmUzLC0zMjQwMCwtMzZlMywtMzI0MDAsLTM2ZTMsLTMyNDAwLC0zNmUzLC0zMjQwMCwtMzZlMywtMzI0MDAsLTM2ZTMsLTMyNDAwLC0zNmUzLC0zMjQwMCwtMzZlMywtMzI0MDAsLTM2ZTMsLTMyNDAwLC0zNmUzLC0zMjQwMCwtMzZlMywtMzI0MDAsLTM2ZTMsLTMyNDAwLC0zNmUzLC0zMjQwMCwtMzZlMywtMzI0MDAsLTMyNDAwLC0zMjQwMCwtMjg4MDAsLTMyNDAwLC0yODgwMCwtMzI0MDAsLTI4ODAwLC0zMjQwMCwtMjg4MDAsLTMyNDAwLC0yODgwMCwtMzI0MDAsLTI4ODAwLC0zMjQwMCwtMjg4MDAsLTMyNDAwLC0yODgwMCwtMzI0MDAsLTI4ODAwLC0zMjQwMCwtMjg4MDAsLTMyNDAwLC0yODgwMCwtMzI0MDAsLTI4ODAwLC0zMjQwMCwtMjg4MDAsLTMyNDAwLC0yODgwMCwtMzI0MDAsLTI4ODAwLC0zMjQwMCwtMjg4MDAsLTMyNDAwLC0yODgwMCwtMzI0MDAsLTI4ODAwLC0zMjQwMCwtMjg4MDAsLTMyNDAwLC0yODgwMCwtMzI0MDAsLTI4ODAwLC0zMjQwMCwtMjg4MDAsLTMyNDAwLC0yODgwMCwtMzI0MDAsLTI4ODAwLC0zMjQwMCwtMjg4MDAsLTMyNDAwLC0yODgwMCwtMzI0MDAsLTI4ODAwLC0zMjQwMCwtMjg4MDAsLTMyNDAwLC0yODgwMCwtMzI0MDAsLTI4ODAwLC0zMjQwMCwtMjg4MDAsLTMyNDAwLC0yODgwMCwtMzI0MDAsLTI4ODAwLC0zMjQwMCwtMjg4MDAsLTMyNDAwLC0yODgwMCwtMzI0MDAsLTI4ODAwLC0zMjQwMCwtMjg4MDAsLTMyNDAwLC0yODgwMCwtMzI0MDAsLTI4ODAwLC0zMjQwMCwtMjg4MDAsLTMyNDAwLC0yODgwMCwtMzI0MDAsLTI4ODAwLC0zMjQwMCwtMjg4MDAsLTMyNDAwLC0yODgwMCwtMzI0MDAsLTI4ODAwLC0zMjQwMCwtMjg4MDAsLTMyNDAwLC0yODgwMCwtMzI0MDBdfSwiQW1lcmljYS9BcmdlbnRpbmEvQnVlbm9zX0FpcmVzIjp7dGltZTpbLTIzNzIxMTJlMywtMTU2NzQ2ODgwMCwtMTIzMzQ0NjQwMCwtMTIyMjk5MmUzLC0xMjA1OTcxMjAwLC0xMTk0MDQ4ZTMsLTExNzI4OGU0LC0xMTYyNTEyZTMsLTExNDEzNDRlMywtMTEzMDk3NmUzLC0xMTA5ODA4ZTMsLTEwOTk0NGU0LC0xMDc4MjcyZTMsLTEwNjc4MTc2MDAsLTEwNDY2NDk2MDAsLTEwMzYyODE2MDAsLTEwMTUxMTM2MDAsLTEwMDQ3NDU2MDAsLTk4MzU3NzYwMCwtOTczMjA5NjAwLC05NTIwNDE2MDAsLTk0MTU4NzIwMCwtOTMxMDQ2NDAwLC05MDA4OTI4MDAsLTg5MDM1MmUzLC04MzM3NmU0LC04MjcyOGU0LC03NTIyODQ4MDAsLTczMzc5NTIwMCwtMTk3MzM3NjAwLC0xOTA4NTc2MDAsLTE4NDIwNDgwMCwtMTY0NTA1NjAwLC0xNTI2Njg4MDAsLTEzMjk2OTYwMCwtMTIxMTMyODAwLC0xMDE0MzM2MDAsLTg2ODMyZTMsLTcxMTA3MjAwLC01NDc3NzYwMCwtMzkwNTI4MDAsLTIzMzI4ZTMsLTc2MDMyMDAsMTI4MTMxMjAwLDEzNjU5ODQwMCw1OTY5Mzc2MDAsNjA1MDU5MjAwLDYyNDQxMjgwMCw2MzY1MDg4MDAsNjU2NDY3MjAwLDY2Nzk1ODQwMCw2ODc5MTY4MDAsNjk5NDA4ZTMsNzE5MzY2NDAwLDczMTQ2MjQwMCw5Mzg5MDg4MDAsOTUyMDQxNjAwLDExOTg5NzI4MDAsMTIwNTYyNTYwMCwxMjI0Mzc0NDAwLDEyMzcwNzUyMDAsMTkyNDk4MTIwMF0sCm9mZnNldDpbLTE0MDI4LC0xNTQwOCwtMTQ0MDAsLTEwODAwLC0xNDQwMCwtMTA4MDAsLTE0NDAwLC0xMDgwMCwtMTQ0MDAsLTEwODAwLC0xNDQwMCwtMTA4MDAsLTE0NDAwLC0xMDgwMCwtMTQ0MDAsLTEwODAwLC0xNDQwMCwtMTA4MDAsLTE0NDAwLC0xMDgwMCwtMTQ0MDAsLTEwODAwLC0xNDQwMCwtMTA4MDAsLTE0NDAwLC0xMDgwMCwtMTQ0MDAsLTEwODAwLC0xNDQwMCwtMTA4MDAsLTE0NDAwLC0xMDgwMCwtMTQ0MDAsLTEwODAwLC0xNDQwMCwtMTA4MDAsLTE0NDAwLC0xMDgwMCwtMTQ0MDAsLTEwODAwLC0xNDQwMCwtMTA4MDAsLTE0NDAwLC0xMDgwMCwtNzIwMCwtMTA4MDAsLTcyMDAsLTEwODAwLC03MjAwLC0xMDgwMCwtNzIwMCwtMTA4MDAsLTcyMDAsLTEwODAwLC03MjAwLC0xMDgwMCwtMTA4MDAsLTEwODAwLC03MjAwLC0xMDgwMCwtNzIwMCwtMTA4MDBdfSwiQW1lcmljYS9Cb2dvdGEiOnt0aW1lOlstMjcwNzY4OTYwMCwtMTczOTA1OTIwMCw3MDQ4NTEyMDAsNzI5MDQzMjAwLDE5MjQ5NzRlM10sb2Zmc2V0OlstMTc3NzYsLTE3Nzc2LC0xOGUzLC0xNDQwMCwtMThlM119LCJBbWVyaWNhL0NhcmFjYXMiOnt0aW1lOlstMjUyNDUyMTYwMCwtMTgyNjc1NTIwMCwtMTU3NzY2NDAwLDExOTcxNjkyMDAsMTQ2MjA2OTgwMCwxOTI0OTc3NjAwXSxvZmZzZXQ6Wy0xNjA2NCwtMTYwNjAsLTE2MjAwLC0xNDQwMCwtMTYyMDAsLTE0NDAwXX0sIkFtZXJpY2EvQ2hpY2FnbyI6ewp0aW1lOlstMjcxNzY2ODIzNiwtMTYzMzI5ODQwMCwtMTYxNTE1NDQwMCwtMTYwMTg0ODgwMCwtMTU4MzcwNDgwMCwtMTU2Mzc0NjQwMCwtMTU1MTY1MDQwMCwtMTUzODk0OTYwMCwtMTUyMDIwMDgwMCwtMTUwNDQ3NmUzLC0xNDkxNzc1MjAwLC0xNDczMDI2NDAwLC0xNDU5NzIwODAwLC0xNDQxNTc2ODAwLC0xNDI4MjcxMjAwLC0xNDEwMTI3MjAwLC0xMzk2ODIxNjAwLC0xMzc4Njc3NjAwLC0xMzY1MzcyZTMsLTEzNDcyMjhlMywtMTMzMzkyMjQwMCwtMTMxNTE3MzYwMCwtMTMwMTg2OGUzLC0xMjgzNzI0ZTMsLTEyNzA0MTg0MDAsLTEyNTIyNzQ0MDAsLTEyMzg5Njg4MDAsLTEyMjA4MjQ4MDAsLTEyMDc1MTkyMDAsLTExODkzNzUyMDAsLTExNzYwNjk2MDAsLTExNTczMjA4MDAsLTExNDQ2MmU0LC0xMTI1ODcxMjAwLC0xMTEyNTY1NjAwLC0xMDk0NDIxNjAwLC0xMDgxMTE2ZTMsLTEwNjc4MTA0MDAsLTEwNDU0MzI4MDAsLTEwMzE1MjI0MDAsLTEwMTgyMTY4MDAsLTEwMDAwNzI4MDAsLTk4Njc2NzIwMCwtOTY4MDE4NDAwLC05NTUzMTc2MDAsLTkzNjU2ODgwMCwtOTIzMjYzMjAwLC05MDUxMTkyMDAsLTg5MTgxMzYwMCwtODgwMjM2ZTMsLTc2OTQxMzYwMCwtNzY1NDEwNDAwLC03NDcyNjY0MDAsLTczMzk2MDgwMCwtNzE1ODE2ODAwLC03MDI1MTEyMDAsLTY4NDM2NzIwMCwtNjcxMDYxNjAwLC02NTI5MTc2MDAsLTYzOTYxMmUzLC02MjA4NjMyMDAsLTYwODE2MjQwMCwtNTg5NDEzNjAwLC01NzYxMDhlMywtNTU3OTY0ZTMsLTU0NDY1ODQwMCwtNTI2NTE0NDAwLC01MTMyMDg4MDAsLTQ5NTA2NDgwMCwtNDgxNzU5MjAwLC00NjM2MTUyMDAsLTQ0NzI4NTYwMCwtNDMxNTYwODAwLC00MTU4MzZlMywtNDAwMTExMjAwLC0zODQzODY0MDAsLTM2ODY2MTYwMCwtMzUyOTM2ODAwLC0zMzcyMTJlMywtMzIxNDg3MjAwLC0zMDU3NjI0MDAsLTI4OTQzMjgwMCwtMjczNzA4ZTMsLTI1Nzk4MzIwMCwtMjQyMjU4NDAwLC0yMjY1MzM2MDAsLTIxMDgwODgwMCwtMTk1MDg0ZTMsLTE3OTM1OTIwMCwtMTYzNjM0NDAwLC0xNDc5MDk2MDAsLTEzMTU4ZTQsLTExNjQ2ZTQsLTEwMDEzMDQwMCwtODQ0MDU2MDAsLTY4NjgwODAwLC01Mjk1NmUzLC0zNzIzMTIwMCwtMjE1MDY0MDAsLTU3ODE2MDAsOTk0MzIwMCwyNTY2OGUzLDQxMzkyODAwLDU3NzIyNDAwLDczNDQ3MjAwLDg5MTcyZTMsMTA0ODk2ODAwLDEyMDYyMTYwMCwxMjY2Njk2MDAsMTUyMDcxMjAwLDE2MjM1MjgwMCwxODM1MjA4MDAsMTk5MjQ1NjAwLDIxNTU3NTIwMCwyMzA2OTUyMDAsMjQ3MDI0ODAwLDI2Mjc0OTYwMCwyNzg0NzQ0MDAsMjk0MTk5MjAwLDMwOTkyNGUzLDMyNTY0ODgwMCwzNDEzNzM2MDAsMzU3MDk4NDAwLDM3MjgyMzIwMCwzODg1NDhlMyw0MDQ4Nzc2MDAsNDE5OTk3NjAwLDQzNjMyNzIwMCw0NTIwNTJlMyw0Njc3NzY4MDAsNDgzNTAxNjAwLDQ5OTIyNjQwMCw1MTQ5NTEyMDAsNTMwNjc2ZTMsNTQ0NTg2NDAwLDU2MjEyNTYwMCw1NzYwMzZlMyw1OTQxOGU0LDYwNzQ4NTYwMCw2MjU2Mjk2MDAsNjM4OTM1MjAwLDY1NzA3OTIwMCw2NzA5ODk2MDAsNjg4NTI4ODAwLDcwMjQzOTIwMCw3MTk5Nzg0MDAsNzMzODg4ODAwLDc1MjAzMjgwMCw3NjUzMzg0MDAsNzgzNDgyNDAwLDc5Njc4OGUzLDgxNDkzMmUzLDgyODg0MjQwMCw4NDYzODE2MDAsODYwMjkyZTMsODc3ODMxMjAwLDg5MTc0MTYwMCw5MDkyODA4MDAsOTIzMTkxMjAwLDk0MTMzNTIwMCw5NTQ2NDA4MDAsOTcyNzg0ODAwLDk4NjA5MDQwMCwxMDA0MjM0NDAwLDEwMTgxNDQ4MDAsMTAzNTY4NGUzLDEwNDk1OTQ0MDAsMTA2NzEzMzYwMCwxMDgxMDQ0ZTMsMTA5OTE4OGUzLDExMTI0OTM2MDAsMTEzMDYzNzYwMCwxMTQzOTQzMjAwLDExNjIwODcyMDAsMTE3MzU3ODQwMCwxMTk0MTQxNjAwLDEyMDUwMjhlMywxMjI1NTkxMjAwLDEyMzY0Nzc2MDAsMTI1NzA0MDgwMCwxMjY4NTMyZTMsMTI4OTA5NTIwMCwxMjk5OTgxNjAwLDEzMjA1NDQ4MDAsMTMzMTQzMTIwMCwxMzUxOTk0NDAwLDEzNjI4ODA4MDAsMTM4MzQ0NGUzLDEzOTQzMzA0MDAsMTQxNDg5MzYwMCwxNDI1NzhlNCwxNDQ2MzQzMjAwLDE0NTc4MzQ0MDAsMTQ3ODM5NzYwMCwxNDg5Mjg0ZTMsMTUwOTg0NzIwMCwxNTIwNzMzNjAwLDE1NDEyOTY4MDAsMTU1MjE4MzIwMCwxNTcyNzQ2NDAwLDE1ODM2MzI4MDAsMTYwNDE5NmUzLDE2MTU2ODcyMDAsMTYzNjI1MDQwMCwxNjQ3MTM2ODAwLDE2Njc3ZTUsMTY3ODU4NjQwMCwxNjk5MTQ5NjAwLDE3MTAwMzZlMywxNzMwNTk5MjAwLDE3NDE0ODU2MDAsMTc2MjA0ODgwMCwxNzcyOTM1MjAwLDE3OTM0OTg0MDAsMTgwNDk4OTYwMCwxODI1NTUyODAwLDE4MzY0MzkyMDAsMTg1NzAwMjQwMCwxODY3ODg4ODAwLDE4ODg0NTJlMywxODk5MzM4NDAwLDE5MTk5MDE2MDAsMTkzMDc4OGUzXSwKb2Zmc2V0OlstMjEwMzYsLTIxNjAwLC0xOGUzLC0yMTYwMCwtMThlMywtMjE2MDAsLTE4ZTMsLTIxNjAwLC0xOGUzLC0yMTYwMCwtMThlMywtMjE2MDAsLTE4ZTMsLTIxNjAwLC0xOGUzLC0yMTYwMCwtMThlMywtMjE2MDAsLTE4ZTMsLTIxNjAwLC0xOGUzLC0yMTYwMCwtMThlMywtMjE2MDAsLTE4ZTMsLTIxNjAwLC0xOGUzLC0yMTYwMCwtMThlMywtMjE2MDAsLTE4ZTMsLTIxNjAwLC0xOGUzLC0yMTYwMCwtMThlMywtMjE2MDAsLTE4ZTMsLTIxNjAwLC0xOGUzLC0yMTYwMCwtMThlMywtMjE2MDAsLTE4ZTMsLTIxNjAwLC0xOGUzLC0yMTYwMCwtMThlMywtMjE2MDAsLTE4ZTMsLTIxNjAwLC0xOGUzLC0xOGUzLC0yMTYwMCwtMThlMywtMjE2MDAsLTE4ZTMsLTIxNjAwLC0xOGUzLC0yMTYwMCwtMThlMywtMjE2MDAsLTE4ZTMsLTIxNjAwLC0xOGUzLC0yMTYwMCwtMThlMywtMjE2MDAsLTE4ZTMsLTIxNjAwLC0xOGUzLC0yMTYwMCwtMThlMywtMjE2MDAsLTE4ZTMsLTIxNjAwLC0xOGUzLC0yMTYwMCwtMThlMywtMjE2MDAsLTE4ZTMsLTIxNjAwLC0xOGUzLC0yMTYwMCwtMThlMywtMjE2MDAsLTE4ZTMsLTIxNjAwLC0xOGUzLC0yMTYwMCwtMThlMywtMjE2MDAsLTE4ZTMsLTIxNjAwLC0xOGUzLC0yMTYwMCwtMThlMywtMjE2MDAsLTE4ZTMsLTIxNjAwLC0xOGUzLC0yMTYwMCwtMThlMywtMjE2MDAsLTE4ZTMsLTIxNjAwLC0xOGUzLC0yMTYwMCwtMThlMywtMjE2MDAsLTE4ZTMsLTIxNjAwLC0xOGUzLC0yMTYwMCwtMThlMywtMjE2MDAsLTE4ZTMsLTIxNjAwLC0xOGUzLC0yMTYwMCwtMThlMywtMjE2MDAsLTE4ZTMsLTIxNjAwLC0xOGUzLC0yMTYwMCwtMThlMywtMjE2MDAsLTE4ZTMsLTIxNjAwLC0xOGUzLC0yMTYwMCwtMThlMywtMjE2MDAsLTE4ZTMsLTIxNjAwLC0xOGUzLC0yMTYwMCwtMThlMywtMjE2MDAsLTE4ZTMsLTIxNjAwLC0xOGUzLC0yMTYwMCwtMThlMywtMjE2MDAsLTE4ZTMsLTIxNjAwLC0xOGUzLC0yMTYwMCwtMThlMywtMjE2MDAsLTE4ZTMsLTIxNjAwLC0xOGUzLC0yMTYwMCwtMThlMywtMjE2MDAsLTE4ZTMsLTIxNjAwLC0xOGUzLC0yMTYwMCwtMThlMywtMjE2MDAsLTE4ZTMsLTIxNjAwLC0xOGUzLC0yMTYwMCwtMThlMywtMjE2MDAsLTE4ZTMsLTIxNjAwLC0xOGUzLC0yMTYwMCwtMThlMywtMjE2MDAsLTE4ZTMsLTIxNjAwLC0xOGUzLC0yMTYwMCwtMThlMywtMjE2MDAsLTE4ZTMsLTIxNjAwLC0xOGUzLC0yMTYwMCwtMThlMywtMjE2MDAsLTE4ZTMsLTIxNjAwLC0xOGUzLC0yMTYwMCwtMThlMywtMjE2MDAsLTE4ZTMsLTIxNjAwLC0xOGUzLC0yMTYwMCwtMThlMywtMjE2MDAsLTE4ZTMsLTIxNjAwLC0xOGUzLC0yMTYwMCwtMThlMywtMjE2MDAsLTE4ZTMsLTIxNjAwLC0xOGUzLC0yMTYwMCwtMThlMywtMjE2MDAsLTE4ZTMsLTIxNjAwLC0xOGUzLC0yMTYwMCwtMThlMywtMjE2MDAsLTE4ZTMsLTIxNjAwLC0xOGUzLC0yMTYwMCwtMThlMywtMjE2MDBdfSwiQW1lcmljYS9FbF9TYWx2YWRvciI6e3RpbWU6Wy0xNTQ2MzAwODAwLDU0Njk5ODQwMCw1NTk2OTkyMDAsNTc4NDQ4ZTMsNTkxMTQ4ODAwLDE5MjQ5NzA0MDBdLG9mZnNldDpbLTIxNDA4LC0yMTYwMCwtMThlMywtMjE2MDAsLTE4ZTMsLTIxNjAwXX0sIkFtZXJpY2EvSGFsaWZheCI6ewp0aW1lOlstMjEzMTY2MDgwMCwtMTY5NjI5MTIwMCwtMTY4MDQ4ZTQsLTE2MzIwODg4MDAsLTE2MTUxNTQ0MDAsLTE1NjY3Nzc2MDAsLTE1NTcxMDA4MDAsLTE1MzU1MDA4MDAsLTE1MjQ5NmU0LC0xNTA0NDgzMjAwLC0xNDkzNDI0ZTMsLTE0NzI0Mjg4MDAsLTE0NjE5NzQ0MDAsLTE0NDA5NzkyMDAsLTE0Mjk0MDE2MDAsLTE0MDk1Mjk2MDAsLTEzOTY3NDI0MDAsLTEzNzY4NzA0MDAsLTEzNjY1MDI0MDAsLTEzNDY2MzA0MDAsLTEzMzM4NDMyMDAsLTEzMTM5NzEyMDAsLTEzMDM2ODk2MDAsLTEyODI1MjE2MDAsLTEyNzI2NzJlMywtMTI1MTA3MmUzLC0xMjQwMDk5MjAwLC0xMjE5NjIyNDAwLC0xMjA3NDRlNCwtMTE4ODc3NzYwMCwtMTE3NTk5MDQwMCwtMTE1NzMyOGUzLC0xMTQzOTM2ZTMsLTExMjQwNjRlMywtMTExMzc4MjQwMCwtMTA5MTQwNDgwMCwtMTA4MTAzNjgwMCwtMTA1OTg2ODgwMCwtMTA1MDc5NjgwMCwtMTAzMDkyNDgwMCwtMTAxODEzNzYwMCwtOTk5NDc1MjAwLC05ODY2ODhlMywtOTY1NjA2NDAwLC05NTUyMzg0MDAsLTkzNTk3MTIwMCwtOTIzMTg0ZTMsLTkwNDUyMTYwMCwtODkxNzM0NDAwLC04ODAyMzZlMywtNzY5NDA2NDAwLC03NjU0MTA0MDAsLTc0NzI2NjQwMCwtNzMzOTYwODAwLC03MTU4MTY4MDAsLTcwMjUxMTIwMCwtNjg0MzY3MjAwLC02NzEwNjE2MDAsLTY1MjkxNzYwMCwtNjM5NjEyZTMsLTU4OTQxMzYwMCwtNTc2MTA4ZTMsLTU1Nzk2NGUzLC01NDQ2NTg0MDAsLTUyNjUxNDQwMCwtNTEzMjA4ODAwLC00OTUwNjQ4MDAsLTQ4MTc1OTIwMCwtNDMxNTYwODAwLC00MTgyNTUyMDAsLTQwMDExMTIwMCwtMzg2ODA1NjAwLC0zNjg2NjE2MDAsLTM1NTM1NmUzLC0zMzcyMTJlMywtMzIzOTA2NDAwLC0yNDIyNTg0MDAsLTIyNjUzMzYwMCwtMjEwODA4ODAwLC0xOTUwODRlMywtMTc5MzU5MjAwLC0xNjM2MzQ0MDAsLTE0NzkwOTYwMCwtMTMxNThlNCwtMTE2NDZlNCwtMTAwMTMwNDAwLC04NDQwNTYwMCwtNjg2ODA4MDAsLTUyOTU2ZTMsLTM3MjMxMjAwLC0yMTUwNjQwMCwtNTc4MTYwMCw5OTQzMjAwLDI1NjY4ZTMsNDEzOTI4MDAsNTc3MjI0MDAsNzM0NDcyMDAsODkxNzJlMywxMDQ4OTY4MDAsMTIwNjIxNjAwLDEzNjM0NjQwMCwxNTIwNzEyMDAsMTY3Nzk2ZTMsMTgzNTIwODAwLDE5OTI0NTYwMCwyMTU1NzUyMDAsMjMwNjk1MjAwLDI0NzAyNDgwMCwyNjI3NDk2MDAsMjc4NDc0NDAwLDI5NDE5OTIwMCwzMDk5MjRlMywzMjU2NDg4MDAsMzQxMzczNjAwLDM1NzA5ODQwMCwzNzI4MjMyMDAsMzg4NTQ4ZTMsNDA0ODc3NjAwLDQxOTk5NzYwMCw0MzYzMjcyMDAsNDUyMDUyZTMsNDY3Nzc2ODAwLDQ4MzUwMTYwMCw0OTkyMjY0MDAsNTE0OTUxMjAwLDUzMDY3NmUzLDU0NDU4NjQwMCw1NjIxMjU2MDAsNTc2MDM2ZTMsNTk0MThlNCw2MDc0ODU2MDAsNjI1NjI5NjAwLDYzODkzNTIwMCw2NTcwNzkyMDAsNjcwOTg5NjAwLDY4ODUyODgwMCw3MDI0MzkyMDAsNzE5OTc4NDAwLDczMzg4ODgwMCw3NTIwMzI4MDAsNzY1MzM4NDAwLDc4MzQ4MjQwMCw3OTY3ODhlMyw4MTQ5MzJlMyw4Mjg4NDI0MDAsODQ2MzgxNjAwLDg2MDI5MmUzLDg3NzgzMTIwMCw4OTE3NDE2MDAsOTA5MjgwODAwLDkyMzE5MTIwMCw5NDEzMzUyMDAsOTU0NjQwODAwLDk3Mjc4NDgwMCw5ODYwOTA0MDAsMTAwNDIzNDQwMCwxMDE4MTQ0ODAwLDEwMzU2ODRlMywxMDQ5NTk0NDAwLDEwNjcxMzM2MDAsMTA4MTA0NGUzLDEwOTkxODhlMywxMTEyNDkzNjAwLDExMzA2Mzc2MDAsMTE0Mzk0MzIwMCwxMTYyMDg3MjAwLDExNzM1Nzg0MDAsMTE5NDE0MTYwMCwxMjA1MDI4ZTMsMTIyNTU5MTIwMCwxMjM2NDc3NjAwLDEyNTcwNDA4MDAsMTI2ODUzMmUzLDEyODkwOTUyMDAsMTI5OTk4MTYwMCwxMzIwNTQ0ODAwLDEzMzE0MzEyMDAsMTM1MTk5NDQwMCwxMzYyODgwODAwLDEzODM0NDRlMywxMzk0MzMwNDAwLDE0MTQ4OTM2MDAsMTQyNTc4ZTQsMTQ0NjM0MzIwMCwxNDU3ODM0NDAwLDE0NzgzOTc2MDAsMTQ4OTI4NGUzLDE1MDk4NDcyMDAsMTUyMDczMzYwMCwxNTQxMjk2ODAwLDE1NTIxODMyMDAsMTU3Mjc0NjQwMCwxNTgzNjMyODAwLDE2MDQxOTZlMywxNjE1Njg3MjAwLDE2MzYyNTA0MDAsMTY0NzEzNjgwMCwxNjY3N2U1LDE2Nzg1ODY0MDAsMTY5OTE0OTYwMCwxNzEwMDM2ZTMsMTczMDU5OTIwMCwxNzQxNDg1NjAwLDE3NjIwNDg4MDAsMTc3MjkzNTIwMCwxNzkzNDk4NDAwLDE4MDQ5ODk2MDAsMTgyNTU1MjgwMCwxODM2NDM5MjAwLDE4NTcwMDI0MDAsMTg2Nzg4ODgwMCwxODg4NDUyZTMsMTg5OTMzODQwMCwxOTE5OTAxNjAwLDE5MzA3ODhlM10sCm9mZnNldDpbLTE1MjY0LC0xNDQwMCwtMTA4MDAsLTE0NDAwLC0xMDgwMCwtMTQ0MDAsLTEwODAwLC0xNDQwMCwtMTA4MDAsLTE0NDAwLC0xMDgwMCwtMTQ0MDAsLTEwODAwLC0xNDQwMCwtMTA4MDAsLTE0NDAwLC0xMDgwMCwtMTQ0MDAsLTEwODAwLC0xNDQwMCwtMTA4MDAsLTE0NDAwLC0xMDgwMCwtMTQ0MDAsLTEwODAwLC0xNDQwMCwtMTA4MDAsLTE0NDAwLC0xMDgwMCwtMTQ0MDAsLTEwODAwLC0xNDQwMCwtMTA4MDAsLTE0NDAwLC0xMDgwMCwtMTQ0MDAsLTEwODAwLC0xNDQwMCwtMTA4MDAsLTE0NDAwLC0xMDgwMCwtMTQ0MDAsLTEwODAwLC0xNDQwMCwtMTA4MDAsLTE0NDAwLC0xMDgwMCwtMTQ0MDAsLTEwODAwLC0xNDQwMCwtMTA4MDAsLTEwODAwLC0xNDQwMCwtMTA4MDAsLTE0NDAwLC0xMDgwMCwtMTQ0MDAsLTEwODAwLC0xNDQwMCwtMTA4MDAsLTE0NDAwLC0xMDgwMCwtMTQ0MDAsLTEwODAwLC0xNDQwMCwtMTA4MDAsLTE0NDAwLC0xMDgwMCwtMTQ0MDAsLTEwODAwLC0xNDQwMCwtMTA4MDAsLTE0NDAwLC0xMDgwMCwtMTQ0MDAsLTEwODAwLC0xNDQwMCwtMTA4MDAsLTE0NDAwLC0xMDgwMCwtMTQ0MDAsLTEwODAwLC0xNDQwMCwtMTA4MDAsLTE0NDAwLC0xMDgwMCwtMTQ0MDAsLTEwODAwLC0xNDQwMCwtMTA4MDAsLTE0NDAwLC0xMDgwMCwtMTQ0MDAsLTEwODAwLC0xNDQwMCwtMTA4MDAsLTE0NDAwLC0xMDgwMCwtMTQ0MDAsLTEwODAwLC0xNDQwMCwtMTA4MDAsLTE0NDAwLC0xMDgwMCwtMTQ0MDAsLTEwODAwLC0xNDQwMCwtMTA4MDAsLTE0NDAwLC0xMDgwMCwtMTQ0MDAsLTEwODAwLC0xNDQwMCwtMTA4MDAsLTE0NDAwLC0xMDgwMCwtMTQ0MDAsLTEwODAwLC0xNDQwMCwtMTA4MDAsLTE0NDAwLC0xMDgwMCwtMTQ0MDAsLTEwODAwLC0xNDQwMCwtMTA4MDAsLTE0NDAwLC0xMDgwMCwtMTQ0MDAsLTEwODAwLC0xNDQwMCwtMTA4MDAsLTE0NDAwLC0xMDgwMCwtMTQ0MDAsLTEwODAwLC0xNDQwMCwtMTA4MDAsLTE0NDAwLC0xMDgwMCwtMTQ0MDAsLTEwODAwLC0xNDQwMCwtMTA4MDAsLTE0NDAwLC0xMDgwMCwtMTQ0MDAsLTEwODAwLC0xNDQwMCwtMTA4MDAsLTE0NDAwLC0xMDgwMCwtMTQ0MDAsLTEwODAwLC0xNDQwMCwtMTA4MDAsLTE0NDAwLC0xMDgwMCwtMTQ0MDAsLTEwODAwLC0xNDQwMCwtMTA4MDAsLTE0NDAwLC0xMDgwMCwtMTQ0MDAsLTEwODAwLC0xNDQwMCwtMTA4MDAsLTE0NDAwLC0xMDgwMCwtMTQ0MDAsLTEwODAwLC0xNDQwMCwtMTA4MDAsLTE0NDAwLC0xMDgwMCwtMTQ0MDAsLTEwODAwLC0xNDQwMCwtMTA4MDAsLTE0NDAwLC0xMDgwMCwtMTQ0MDAsLTEwODAwLC0xNDQwMCwtMTA4MDAsLTE0NDAwLC0xMDgwMCwtMTQ0MDAsLTEwODAwLC0xNDQwMCwtMTA4MDAsLTE0NDAwLC0xMDgwMCwtMTQ0MDAsLTEwODAwLC0xNDQwMCwtMTA4MDAsLTE0NDAwLC0xMDgwMCwtMTQ0MDAsLTEwODAwLC0xNDQwMCwtMTA4MDAsLTE0NDAwLC0xMDgwMCwtMTQ0MDAsLTEwODAwLC0xNDQwMCwtMTA4MDAsLTE0NDAwLC0xMDgwMCwtMTQ0MDAsLTEwODAwLC0xNDQwMF19LCJBbWVyaWNhL0p1bmVhdSI6e3RpbWU6Wy0zMjI1MTY5NTg4LC0yMTg4OTg3MjAwLC04ODAyMzZlMywtNzY5NDIwODAwLC03NjU0MTA0MDAsLTIxNTA2NDAwLC01NzgxNjAwLDk5NDMyMDAsMjU2NjhlMyw0MTM5MjgwMCw1NzcyMjQwMCw3MzQ0NzIwMCw4OTE3MmUzLDEwNDg5NjgwMCwxMjA2MjE2MDAsMTI2NjY5NjAwLDE1MjA3MTIwMCwxNjIzNTI4MDAsMTgzNTIwODAwLDE5OTI0NTYwMCwyMTU1NzUyMDAsMjMwNjk1MjAwLDI0NzAyNDgwMCwyNjI3NDk2MDAsMjc4NDc0NDAwLDI5NDE5OTIwMCwzMDk5MjRlMywzMjU2NDg4MDAsMzQxMzczNjAwLDM1NzA5ODQwMCwzNzI4MjMyMDAsMzg4NTQ4ZTMsNDA0ODc3NjAwLDQxOTk5NzYwMCw0MzYzMjcyMDAsNDM4OTk4NDAwLDQ1MjA1MmUzLDQ2Nzc3NjgwMCw0ODM1MDE2MDAsNDk5MjI2NDAwLDUxNDk1MTIwMCw1MzA2NzZlMyw1NDQ1ODY0MDAsNTYyMTI1NjAwLDU3NjAzNmUzLDU5NDE4ZTQsNjA3NDg1NjAwLDYyNTYyOTYwMCw2Mzg5MzUyMDAsNjU3MDc5MjAwLDY3MDk4OTYwMCw2ODg1Mjg4MDAsNzAyNDM5MjAwLDcxOTk3ODQwMCw3MzM4ODg4MDAsNzUyMDMyODAwLDc2NTMzODQwMCw3ODM0ODI0MDAsNzk2Nzg4ZTMsODE0OTMyZTMsODI4ODQyNDAwLDg0NjM4MTYwMCw4NjAyOTJlMyw4Nzc4MzEyMDAsODkxNzQxNjAwLDkwOTI4MDgwMCw5MjMxOTEyMDAsOTQxMzM1MjAwLDk1NDY0MDgwMCw5NzI3ODQ4MDAsOTg2MDkwNDAwLDEwMDQyMzQ0MDAsMTAxODE0NDgwMCwxMDM1Njg0ZTMsMTA0OTU5NDQwMCwxMDY3MTMzNjAwLDEwODEwNDRlMywxMDk5MTg4ZTMsMTExMjQ5MzYwMCwxMTMwNjM3NjAwLDExNDM5NDMyMDAsMTE2MjA4NzIwMCwxMTczNTc4NDAwLDExOTQxNDE2MDAsMTIwNTAyOGUzLDEyMjU1OTEyMDAsMTIzNjQ3NzYwMCwxMjU3MDQwODAwLDEyNjg1MzJlMywxMjg5MDk1MjAwLDEyOTk5ODE2MDAsMTMyMDU0NDgwMCwxMzMxNDMxMjAwLDEzNTE5OTQ0MDAsMTM2Mjg4MDgwMCwxMzgzNDQ0ZTMsMTM5NDMzMDQwMCwxNDE0ODkzNjAwLDE0MjU3OGU0LDE0NDYzNDMyMDAsMTQ1NzgzNDQwMCwxNDc4Mzk3NjAwLDE0ODkyODRlMywxNTA5ODQ3MjAwLDE1MjA3MzM2MDAsMTU0MTI5NjgwMCwxNTUyMTgzMjAwLDE1NzI3NDY0MDAsMTU4MzYzMjgwMCwxNjA0MTk2ZTMsMTYxNTY4NzIwMCwxNjM2MjUwNDAwLDE2NDcxMzY4MDAsMTY2NzdlNSwxNjc4NTg2NDAwLDE2OTkxNDk2MDAsMTcxMDAzNmUzLDE3MzA1OTkyMDAsMTc0MTQ4NTYwMCwxNzYyMDQ4ODAwLDE3NzI5MzUyMDAsMTc5MzQ5ODQwMCwxODA0OTg5NjAwLDE4MjU1NTI4MDAsMTgzNjQzOTIwMCwxODU3MDAyNDAwLDE4Njc4ODg4MDAsMTg4ODQ1MmUzLDE4OTkzMzg0MDAsMTkxOTkwMTYwMCwxOTMwNzg4ZTNdLApvZmZzZXQ6WzU0MTM5LC0zMjI2MSwtMjg4MDAsLTI1MjAwLC0yNTIwMCwtMjg4MDAsLTI1MjAwLC0yODgwMCwtMjUyMDAsLTI4ODAwLC0yNTIwMCwtMjg4MDAsLTI1MjAwLC0yODgwMCwtMjUyMDAsLTI4ODAwLC0yNTIwMCwtMjg4MDAsLTI1MjAwLC0yODgwMCwtMjUyMDAsLTI4ODAwLC0yNTIwMCwtMjg4MDAsLTI1MjAwLC0yODgwMCwtMjUyMDAsLTI4ODAwLC0yODgwMCwtMjg4MDAsLTI1MjAwLC0yODgwMCwtMjUyMDAsLTI4ODAwLC0yNTIwMCwtMzI0MDAsLTMyNDAwLC0yODgwMCwtMzI0MDAsLTI4ODAwLC0zMjQwMCwtMjg4MDAsLTMyNDAwLC0yODgwMCwtMzI0MDAsLTI4ODAwLC0zMjQwMCwtMjg4MDAsLTMyNDAwLC0yODgwMCwtMzI0MDAsLTI4ODAwLC0zMjQwMCwtMjg4MDAsLTMyNDAwLC0yODgwMCwtMzI0MDAsLTI4ODAwLC0zMjQwMCwtMjg4MDAsLTMyNDAwLC0yODgwMCwtMzI0MDAsLTI4ODAwLC0zMjQwMCwtMjg4MDAsLTMyNDAwLC0yODgwMCwtMzI0MDAsLTI4ODAwLC0zMjQwMCwtMjg4MDAsLTMyNDAwLC0yODgwMCwtMzI0MDAsLTI4ODAwLC0zMjQwMCwtMjg4MDAsLTMyNDAwLC0yODgwMCwtMzI0MDAsLTI4ODAwLC0zMjQwMCwtMjg4MDAsLTMyNDAwLC0yODgwMCwtMzI0MDAsLTI4ODAwLC0zMjQwMCwtMjg4MDAsLTMyNDAwLC0yODgwMCwtMzI0MDAsLTI4ODAwLC0zMjQwMCwtMjg4MDAsLTMyNDAwLC0yODgwMCwtMzI0MDAsLTI4ODAwLC0zMjQwMCwtMjg4MDAsLTMyNDAwLC0yODgwMCwtMzI0MDAsLTI4ODAwLC0zMjQwMCwtMjg4MDAsLTMyNDAwLC0yODgwMCwtMzI0MDAsLTI4ODAwLC0zMjQwMCwtMjg4MDAsLTMyNDAwLC0yODgwMCwtMzI0MDAsLTI4ODAwLC0zMjQwMCwtMjg4MDAsLTMyNDAwLC0yODgwMCwtMzI0MDAsLTI4ODAwLC0zMjQwMCwtMjg4MDAsLTMyNDAwLC0yODgwMCwtMzI0MDAsLTI4ODAwLC0zMjQwMF19LCJBbWVyaWNhL0xpbWEiOnt0aW1lOlstMjUyNDUyMTYwMCwtMTkzODU1NjgwMCwtMTAwOTg0MzIwMCwtMTAwMjA2NzIwMCwtOTg2Nzc0NDAwLC05NzEwNDk2MDAsLTk1NTMyNDgwMCwtOTM5NmU1LDUwNDkyMTYwMCw1MTI2OTc2MDAsNTM2NDU3NjAwLDU0NDIzMzYwMCw2MzExNTJlMyw2Mzg5MjhlMyw3NTczODI0MDAsNzY1MTU4NDAwLDE5MjQ5NzRlM10sb2Zmc2V0OlstMTg0OTIsLTE4NTE2LC0xOGUzLC0xNDQwMCwtMThlMywtMTQ0MDAsLTE4ZTMsLTE0NDAwLC0xOGUzLC0xNDQwMCwtMThlMywtMTQ0MDAsLTE4ZTMsLTE0NDAwLC0xOGUzLC0xNDQwMCwtMThlM119LCJBbWVyaWNhL0xvc19BbmdlbGVzIjp7dGltZTpbLTI3MTc2NjgzNzgsLTE2MzMyOTg0MDAsLTE2MTUxNTQ0MDAsLTE2MDE4NDg4MDAsLTE1ODM3MDQ4MDAsLTg4MDIzNmUzLC03Njk0MjA4MDAsLTc2NTQxMDQwMCwtNjg3OTk1OTQwLC02NjI2ODA4MDAsLTYyMDg2NjgwMCwtNjA4MTYyNDAwLC01ODk0MTcyMDAsLTU3NjEwOGUzLC01NTc5Njc2MDAsLTU0NDY1ODQwMCwtNTI2NTE4ZTMsLTUxMzIwODgwMCwtNDk1MDY4NDAwLC00ODE3NTkyMDAsLTQ2MzYxODgwMCwtNDUwMzA5NjAwLC00MzE1NjQ0MDAsLTQxODI1NTIwMCwtNDAwMTE0ODAwLC0zODY4MDU2MDAsLTM2ODY2NTIwMCwtMzU1MzU2ZTMsLTMzNzIxNTYwMCwtMzIzOTA2NDAwLC0zMDU3NjZlMywtMjkyNDU2ODAwLC0yNzM3MTE2MDAsLTI2MTAwNzIwMCwtMjQyMjYyZTMsLTIyNjUzMzYwMCwtMjEwODEyNDAwLC0xOTUwODRlMywtMTc5MzYyODAwLC0xNjM2MzQ0MDAsLTE0NzkxMzIwMCwtMTMxNThlNCwtMTE2NDYzNjAwLC0xMDAxMzA0MDAsLTg0NDA1NjAwLC02ODY4MDgwMCwtNTI5NTZlMywtMzcyMzEyMDAsLTIxNTA2NDAwLC01NzgxNjAwLDk5NDMyMDAsMjU2NjhlMyw0MTM5MjgwMCw1NzcyMjQwMCw3MzQ0NzIwMCw4OTE3MmUzLDEwNDg5NjgwMCwxMjA2MjE2MDAsMTI2NjY5NjAwLDE1MjA3MTIwMCwxNjIzNTI4MDAsMTgzNTIwODAwLDE5OTI0NTYwMCwyMTU1NzUyMDAsMjMwNjk1MjAwLDI0NzAyNDgwMCwyNjI3NDk2MDAsMjc4NDc0NDAwLDI5NDE5OTIwMCwzMDk5MjRlMywzMjU2NDg4MDAsMzQxMzczNjAwLDM1NzA5ODQwMCwzNzI4MjMyMDAsMzg4NTQ4ZTMsNDA0ODc3NjAwLDQxOTk5NzYwMCw0MzYzMjcyMDAsNDUyMDUyZTMsNDY3Nzc2ODAwLDQ4MzUwMTYwMCw0OTkyMjY0MDAsNTE0OTUxMjAwLDUzMDY3NmUzLDU0NDU4NjQwMCw1NjIxMjU2MDAsNTc2MDM2ZTMsNTk0MThlNCw2MDc0ODU2MDAsNjI1NjI5NjAwLDYzODkzNTIwMCw2NTcwNzkyMDAsNjcwOTg5NjAwLDY4ODUyODgwMCw3MDI0MzkyMDAsNzE5OTc4NDAwLDczMzg4ODgwMCw3NTIwMzI4MDAsNzY1MzM4NDAwLDc4MzQ4MjQwMCw3OTY3ODhlMyw4MTQ5MzJlMyw4Mjg4NDI0MDAsODQ2MzgxNjAwLDg2MDI5MmUzLDg3NzgzMTIwMCw4OTE3NDE2MDAsOTA5MjgwODAwLDkyMzE5MTIwMCw5NDEzMzUyMDAsOTU0NjQwODAwLDk3Mjc4NDgwMCw5ODYwOTA0MDAsMTAwNDIzNDQwMCwxMDE4MTQ0ODAwLDEwMzU2ODRlMywxMDQ5NTk0NDAwLDEwNjcxMzM2MDAsMTA4MTA0NGUzLDEwOTkxODhlMywxMTEyNDkzNjAwLDExMzA2Mzc2MDAsMTE0Mzk0MzIwMCwxMTYyMDg3MjAwLDExNzM1Nzg0MDAsMTE5NDE0MTYwMCwxMjA1MDI4ZTMsMTIyNTU5MTIwMCwxMjM2NDc3NjAwLDEyNTcwNDA4MDAsMTI2ODUzMmUzLDEyODkwOTUyMDAsMTI5OTk4MTYwMCwxMzIwNTQ0ODAwLDEzMzE0MzEyMDAsMTM1MTk5NDQwMCwxMzYyODgwODAwLDEzODM0NDRlMywxMzk0MzMwNDAwLDE0MTQ4OTM2MDAsMTQyNTc4ZTQsMTQ0NjM0MzIwMCwxNDU3ODM0NDAwLDE0NzgzOTc2MDAsMTQ4OTI4NGUzLDE1MDk4NDcyMDAsMTUyMDczMzYwMCwxNTQxMjk2ODAwLDE1NTIxODMyMDAsMTU3Mjc0NjQwMCwxNTgzNjMyODAwLDE2MDQxOTZlMywxNjE1Njg3MjAwLDE2MzYyNTA0MDAsMTY0NzEzNjgwMCwxNjY3N2U1LDE2Nzg1ODY0MDAsMTY5OTE0OTYwMCwxNzEwMDM2ZTMsMTczMDU5OTIwMCwxNzQxNDg1NjAwLDE3NjIwNDg4MDAsMTc3MjkzNTIwMCwxNzkzNDk4NDAwLDE4MDQ5ODk2MDAsMTgyNTU1MjgwMCwxODM2NDM5MjAwLDE4NTcwMDI0MDAsMTg2Nzg4ODgwMCwxODg4NDUyZTMsMTg5OTMzODQwMCwxOTE5OTAxNjAwLDE5MzA3ODhlM10sCm9mZnNldDpbLTI4Mzc4LC0yODgwMCwtMjUyMDAsLTI4ODAwLC0yNTIwMCwtMjg4MDAsLTI1MjAwLC0yNTIwMCwtMjg4MDAsLTI1MjAwLC0yODgwMCwtMjUyMDAsLTI4ODAwLC0yNTIwMCwtMjg4MDAsLTI1MjAwLC0yODgwMCwtMjUyMDAsLTI4ODAwLC0yNTIwMCwtMjg4MDAsLTI1MjAwLC0yODgwMCwtMjUyMDAsLTI4ODAwLC0yNTIwMCwtMjg4MDAsLTI1MjAwLC0yODgwMCwtMjUyMDAsLTI4ODAwLC0yNTIwMCwtMjg4MDAsLTI1MjAwLC0yODgwMCwtMjUyMDAsLTI4ODAwLC0yNTIwMCwtMjg4MDAsLTI1MjAwLC0yODgwMCwtMjUyMDAsLTI4ODAwLC0yNTIwMCwtMjg4MDAsLTI1MjAwLC0yODgwMCwtMjUyMDAsLTI4ODAwLC0yNTIwMCwtMjg4MDAsLTI1MjAwLC0yODgwMCwtMjUyMDAsLTI4ODAwLC0yNTIwMCwtMjg4MDAsLTI1MjAwLC0yODgwMCwtMjUyMDAsLTI4ODAwLC0yNTIwMCwtMjg4MDAsLTI1MjAwLC0yODgwMCwtMjUyMDAsLTI4ODAwLC0yNTIwMCwtMjg4MDAsLTI1MjAwLC0yODgwMCwtMjUyMDAsLTI4ODAwLC0yNTIwMCwtMjg4MDAsLTI1MjAwLC0yODgwMCwtMjUyMDAsLTI4ODAwLC0yNTIwMCwtMjg4MDAsLTI1MjAwLC0yODgwMCwtMjUyMDAsLTI4ODAwLC0yNTIwMCwtMjg4MDAsLTI1MjAwLC0yODgwMCwtMjUyMDAsLTI4ODAwLC0yNTIwMCwtMjg4MDAsLTI1MjAwLC0yODgwMCwtMjUyMDAsLTI4ODAwLC0yNTIwMCwtMjg4MDAsLTI1MjAwLC0yODgwMCwtMjUyMDAsLTI4ODAwLC0yNTIwMCwtMjg4MDAsLTI1MjAwLC0yODgwMCwtMjUyMDAsLTI4ODAwLC0yNTIwMCwtMjg4MDAsLTI1MjAwLC0yODgwMCwtMjUyMDAsLTI4ODAwLC0yNTIwMCwtMjg4MDAsLTI1MjAwLC0yODgwMCwtMjUyMDAsLTI4ODAwLC0yNTIwMCwtMjg4MDAsLTI1MjAwLC0yODgwMCwtMjUyMDAsLTI4ODAwLC0yNTIwMCwtMjg4MDAsLTI1MjAwLC0yODgwMCwtMjUyMDAsLTI4ODAwLC0yNTIwMCwtMjg4MDAsLTI1MjAwLC0yODgwMCwtMjUyMDAsLTI4ODAwLC0yNTIwMCwtMjg4MDAsLTI1MjAwLC0yODgwMCwtMjUyMDAsLTI4ODAwLC0yNTIwMCwtMjg4MDAsLTI1MjAwLC0yODgwMCwtMjUyMDAsLTI4ODAwLC0yNTIwMCwtMjg4MDAsLTI1MjAwLC0yODgwMCwtMjUyMDAsLTI4ODAwLC0yNTIwMCwtMjg4MDAsLTI1MjAwLC0yODgwMCwtMjUyMDAsLTI4ODAwLC0yNTIwMCwtMjg4MDAsLTI1MjAwLC0yODgwMCwtMjUyMDAsLTI4ODAwLC0yNTIwMCwtMjg4MDAsLTI1MjAwLC0yODgwMF19LCJBbWVyaWNhL01leGljb19DaXR5Ijp7dGltZTpbLTE1MTQ3NjMzOTYsLTEzNDMxNzQ0MDAsLTEyMzQ4Mjg4MDAsLTEyMjA0ODY0MDAsLTEyMDcxODA4MDAsLTExOTEzNjk2MDAsLTk3NTI4MzIwMCwtOTYzMTg3MjAwLC05MTcxMzZlMywtOTA3MzcyODAwLC04MjE5MjMyMDAsLTgxMDA4NjQwMCwtNjI3NTIzMjAwLC02MTMwMDhlMyw4Mjg4NDI0MDAsODQ2MzgxNjAwLDg2MDI5MmUzLDg3NzgzMTIwMCw4OTE3NDE2MDAsOTA5MjgwODAwLDkyMzE5MTIwMCw5NDEzMzUyMDAsOTU0NjQwODAwLDk3Mjc4NDgwMCw5ODkxMTQ0MDAsMTAwMTgxNTIwMCwxMDE4MTQ0ODAwLDEwMzU2ODRlMywxMDQ5NTk0NDAwLDEwNjcxMzM2MDAsMTA4MTA0NGUzLDEwOTkxODhlMywxMTEyNDkzNjAwLDExMzA2Mzc2MDAsMTE0Mzk0MzIwMCwxMTYyMDg3MjAwLDExNzUzOTI4MDAsMTE5MzUzNjgwMCwxMjA3NDQ3MjAwLDEyMjQ5ODY0MDAsMTIzODg5NjgwMCwxMjU2NDM2ZTMsMTI3MDM0NjQwMCwxMjg4NDkwNDAwLDEzMDE3OTZlMywxMzE5OTRlNCwxMzMzMjQ1NjAwLDEzNTEzODk2MDAsMTM2NTNlNSwxMzgyODM5MjAwLDEzOTY3NDk2MDAsMTQxNDI4ODgwMCwxNDI4MTk5MjAwLDE0NDU3Mzg0MDAsMTQ1OTY0ODgwMCwxNDc3NzkyODAwLDE0OTEwOTg0MDAsMTUwOTI0MjQwMCwxNTIyNTQ4ZTMsMTU0MDY5MmUzLDE1NTQ2MDI0MDAsMTU3MjE0MTYwMCwxNTg2MDUyZTMsMTYwMzU5MTIwMCwxNjE3NTAxNjAwLDE2MzU2NDU2MDAsMTY0ODk1MTIwMCwxNjY3MDk1MjAwLDE5MjQ5NzA0MDBdLG9mZnNldDpbLTIzNzk2LC0yNTIwMCwtMjE2MDAsLTI1MjAwLC0yMTYwMCwtMjUyMDAsLTIxNjAwLC0xOGUzLC0yMTYwMCwtMThlMywtMjE2MDAsLTE4ZTMsLTIxNjAwLC0xOGUzLC0yMTYwMCwtMThlMywtMjE2MDAsLTE4ZTMsLTIxNjAwLC0xOGUzLC0yMTYwMCwtMThlMywtMjE2MDAsLTE4ZTMsLTIxNjAwLC0xOGUzLC0yMTYwMCwtMThlMywtMjE2MDAsLTE4ZTMsLTIxNjAwLC0xOGUzLC0yMTYwMCwtMThlMywtMjE2MDAsLTE4ZTMsLTIxNjAwLC0xOGUzLC0yMTYwMCwtMThlMywtMjE2MDAsLTE4ZTMsLTIxNjAwLC0xOGUzLC0yMTYwMCwtMThlMywtMjE2MDAsLTE4ZTMsLTIxNjAwLC0xOGUzLC0yMTYwMCwtMThlMywtMjE2MDAsLTE4ZTMsLTIxNjAwLC0xOGUzLC0yMTYwMCwtMThlMywtMjE2MDAsLTE4ZTMsLTIxNjAwLC0xOGUzLC0yMTYwMCwtMThlMywtMjE2MDAsLTE4ZTMsLTIxNjAwLC0xOGUzLC0yMTYwMF19LCJBbWVyaWNhL05ld19Zb3JrIjp7CnRpbWU6Wy0yNzE3NjY4NTYyLC0xNjMzMjk4NDAwLC0xNjE1MTU0NDAwLC0xNjAxODQ4ODAwLC0xNTgzNzA0ODAwLC0xNTcwMzk5MjAwLC0xNTUxNjUwNDAwLC0xNTM2NTMwNDAwLC0xNTIzMjI0ODAwLC0xNTA0NDc2ZTMsLTE0OTE3NzUyMDAsLTE0NzMwMjY0MDAsLTE0NTk3MjA4MDAsLTE0NDE1NzY4MDAsLTE0MjgyNzEyMDAsLTE0MTAxMjcyMDAsLTEzOTY4MjE2MDAsLTEzNzg2Nzc2MDAsLTEzNjUzNzJlMywtMTM0NzIyOGUzLC0xMzMzOTIyNDAwLC0xMzE1MTczNjAwLC0xMzAxODY4ZTMsLTEyODM3MjRlMywtMTI3MDQxODQwMCwtMTI1MjI3NDQwMCwtMTIzODk2ODgwMCwtMTIyMDgyNDgwMCwtMTIwNzUxOTIwMCwtMTE4OTM3NTIwMCwtMTE3NjA2OTYwMCwtMTE1NzMyMDgwMCwtMTE0NDYyZTQsLTExMjU4NzEyMDAsLTExMTI1NjU2MDAsLTEwOTQ0MjE2MDAsLTEwODExMTZlMywtMTA2Mjk3MmUzLC0xMDQ5NjY2NDAwLC0xMDMxNTIyNDAwLC0xMDE4MjE2ODAwLC0xMDAwMDcyODAwLC05ODY3NjcyMDAsLTk2ODAxODQwMCwtOTU1MzE3NjAwLC05MzY1Njg4MDAsLTkyMzI2MzIwMCwtOTA1MTE5MjAwLC04OTE4MTM2MDAsLTg4MDIzNmUzLC03Njk0MWU0LC03NjU0MTA0MDAsLTc0NzI2NjQwMCwtNzMzOTYwODAwLC03MTU4MTY4MDAsLTcwMjUxMTIwMCwtNjg0MzY3MjAwLC02NzEwNjE2MDAsLTY1MjkxNzYwMCwtNjM5NjEyZTMsLTYyMDg2MzIwMCwtNjA4MTYyNDAwLC01ODk0MTM2MDAsLTU3NjEwOGUzLC01NTc5NjRlMywtNTQ0NjU4NDAwLC01MjY1MTQ0MDAsLTUxMzIwODgwMCwtNDk1MDY0ODAwLC00ODE3NTkyMDAsLTQ2MzYxNTIwMCwtNDQ3Mjg1NjAwLC00MzE1NjA4MDAsLTQxNTgzNmUzLC00MDAxMTEyMDAsLTM4NDM4NjQwMCwtMzY4NjYxNjAwLC0zNTI5MzY4MDAsLTMzNzIxMmUzLC0zMjE0ODcyMDAsLTMwNTc2MjQwMCwtMjg5NDMyODAwLC0yNzM3MDhlMywtMjU3OTgzMjAwLC0yNDIyNTg0MDAsLTIyNjUzMzYwMCwtMjEwODA4ODAwLC0xOTUwODRlMywtMTc5MzU5MjAwLC0xNjM2MzQ0MDAsLTE0NzkwOTYwMCwtMTMxNThlNCwtMTE2NDZlNCwtMTAwMTMwNDAwLC04NDQwNTYwMCwtNjg2ODA4MDAsLTUyOTU2ZTMsLTM3MjMxMjAwLC0yMTUwNjQwMCwtNTc4MTYwMCw5OTQzMjAwLDI1NjY4ZTMsNDEzOTI4MDAsNTc3MjI0MDAsNzM0NDcyMDAsODkxNzJlMywxMDQ4OTY4MDAsMTIwNjIxNjAwLDEyNjY2OTYwMCwxNTIwNzEyMDAsMTYyMzUyODAwLDE4MzUyMDgwMCwxOTkyNDU2MDAsMjE1NTc1MjAwLDIzMDY5NTIwMCwyNDcwMjQ4MDAsMjYyNzQ5NjAwLDI3ODQ3NDQwMCwyOTQxOTkyMDAsMzA5OTI0ZTMsMzI1NjQ4ODAwLDM0MTM3MzYwMCwzNTcwOTg0MDAsMzcyODIzMjAwLDM4ODU0OGUzLDQwNDg3NzYwMCw0MTk5OTc2MDAsNDM2MzI3MjAwLDQ1MjA1MmUzLDQ2Nzc3NjgwMCw0ODM1MDE2MDAsNDk5MjI2NDAwLDUxNDk1MTIwMCw1MzA2NzZlMyw1NDQ1ODY0MDAsNTYyMTI1NjAwLDU3NjAzNmUzLDU5NDE4ZTQsNjA3NDg1NjAwLDYyNTYyOTYwMCw2Mzg5MzUyMDAsNjU3MDc5MjAwLDY3MDk4OTYwMCw2ODg1Mjg4MDAsNzAyNDM5MjAwLDcxOTk3ODQwMCw3MzM4ODg4MDAsNzUyMDMyODAwLDc2NTMzODQwMCw3ODM0ODI0MDAsNzk2Nzg4ZTMsODE0OTMyZTMsODI4ODQyNDAwLDg0NjM4MTYwMCw4NjAyOTJlMyw4Nzc4MzEyMDAsODkxNzQxNjAwLDkwOTI4MDgwMCw5MjMxOTEyMDAsOTQxMzM1MjAwLDk1NDY0MDgwMCw5NzI3ODQ4MDAsOTg2MDkwNDAwLDEwMDQyMzQ0MDAsMTAxODE0NDgwMCwxMDM1Njg0ZTMsMTA0OTU5NDQwMCwxMDY3MTMzNjAwLDEwODEwNDRlMywxMDk5MTg4ZTMsMTExMjQ5MzYwMCwxMTMwNjM3NjAwLDExNDM5NDMyMDAsMTE2MjA4NzIwMCwxMTczNTc4NDAwLDExOTQxNDE2MDAsMTIwNTAyOGUzLDEyMjU1OTEyMDAsMTIzNjQ3NzYwMCwxMjU3MDQwODAwLDEyNjg1MzJlMywxMjg5MDk1MjAwLDEyOTk5ODE2MDAsMTMyMDU0NDgwMCwxMzMxNDMxMjAwLDEzNTE5OTQ0MDAsMTM2Mjg4MDgwMCwxMzgzNDQ0ZTMsMTM5NDMzMDQwMCwxNDE0ODkzNjAwLDE0MjU3OGU0LDE0NDYzNDMyMDAsMTQ1NzgzNDQwMCwxNDc4Mzk3NjAwLDE0ODkyODRlMywxNTA5ODQ3MjAwLDE1MjA3MzM2MDAsMTU0MTI5NjgwMCwxNTUyMTgzMjAwLDE1NzI3NDY0MDAsMTU4MzYzMjgwMCwxNjA0MTk2ZTMsMTYxNTY4NzIwMCwxNjM2MjUwNDAwLDE2NDcxMzY4MDAsMTY2NzdlNSwxNjc4NTg2NDAwLDE2OTkxNDk2MDAsMTcxMDAzNmUzLDE3MzA1OTkyMDAsMTc0MTQ4NTYwMCwxNzYyMDQ4ODAwLDE3NzI5MzUyMDAsMTc5MzQ5ODQwMCwxODA0OTg5NjAwLDE4MjU1NTI4MDAsMTgzNjQzOTIwMCwxODU3MDAyNDAwLDE4Njc4ODg4MDAsMTg4ODQ1MmUzLDE4OTkzMzg0MDAsMTkxOTkwMTYwMCwxOTMwNzg4ZTNdLApvZmZzZXQ6Wy0xNzc2MiwtMThlMywtMTQ0MDAsLTE4ZTMsLTE0NDAwLC0xOGUzLC0xNDQwMCwtMThlMywtMTQ0MDAsLTE4ZTMsLTE0NDAwLC0xOGUzLC0xNDQwMCwtMThlMywtMTQ0MDAsLTE4ZTMsLTE0NDAwLC0xOGUzLC0xNDQwMCwtMThlMywtMTQ0MDAsLTE4ZTMsLTE0NDAwLC0xOGUzLC0xNDQwMCwtMThlMywtMTQ0MDAsLTE4ZTMsLTE0NDAwLC0xOGUzLC0xNDQwMCwtMThlMywtMTQ0MDAsLTE4ZTMsLTE0NDAwLC0xOGUzLC0xNDQwMCwtMThlMywtMTQ0MDAsLTE4ZTMsLTE0NDAwLC0xOGUzLC0xNDQwMCwtMThlMywtMTQ0MDAsLTE4ZTMsLTE0NDAwLC0xOGUzLC0xNDQwMCwtMThlMywtMTQ0MDAsLTE0NDAwLC0xOGUzLC0xNDQwMCwtMThlMywtMTQ0MDAsLTE4ZTMsLTE0NDAwLC0xOGUzLC0xNDQwMCwtMThlMywtMTQ0MDAsLTE4ZTMsLTE0NDAwLC0xOGUzLC0xNDQwMCwtMThlMywtMTQ0MDAsLTE4ZTMsLTE0NDAwLC0xOGUzLC0xNDQwMCwtMThlMywtMTQ0MDAsLTE4ZTMsLTE0NDAwLC0xOGUzLC0xNDQwMCwtMThlMywtMTQ0MDAsLTE4ZTMsLTE0NDAwLC0xOGUzLC0xNDQwMCwtMThlMywtMTQ0MDAsLTE4ZTMsLTE0NDAwLC0xOGUzLC0xNDQwMCwtMThlMywtMTQ0MDAsLTE4ZTMsLTE0NDAwLC0xOGUzLC0xNDQwMCwtMThlMywtMTQ0MDAsLTE4ZTMsLTE0NDAwLC0xOGUzLC0xNDQwMCwtMThlMywtMTQ0MDAsLTE4ZTMsLTE0NDAwLC0xOGUzLC0xNDQwMCwtMThlMywtMTQ0MDAsLTE4ZTMsLTE0NDAwLC0xOGUzLC0xNDQwMCwtMThlMywtMTQ0MDAsLTE4ZTMsLTE0NDAwLC0xOGUzLC0xNDQwMCwtMThlMywtMTQ0MDAsLTE4ZTMsLTE0NDAwLC0xOGUzLC0xNDQwMCwtMThlMywtMTQ0MDAsLTE4ZTMsLTE0NDAwLC0xOGUzLC0xNDQwMCwtMThlMywtMTQ0MDAsLTE4ZTMsLTE0NDAwLC0xOGUzLC0xNDQwMCwtMThlMywtMTQ0MDAsLTE4ZTMsLTE0NDAwLC0xOGUzLC0xNDQwMCwtMThlMywtMTQ0MDAsLTE4ZTMsLTE0NDAwLC0xOGUzLC0xNDQwMCwtMThlMywtMTQ0MDAsLTE4ZTMsLTE0NDAwLC0xOGUzLC0xNDQwMCwtMThlMywtMTQ0MDAsLTE4ZTMsLTE0NDAwLC0xOGUzLC0xNDQwMCwtMThlMywtMTQ0MDAsLTE4ZTMsLTE0NDAwLC0xOGUzLC0xNDQwMCwtMThlMywtMTQ0MDAsLTE4ZTMsLTE0NDAwLC0xOGUzLC0xNDQwMCwtMThlMywtMTQ0MDAsLTE4ZTMsLTE0NDAwLC0xOGUzLC0xNDQwMCwtMThlMywtMTQ0MDAsLTE4ZTMsLTE0NDAwLC0xOGUzLC0xNDQwMCwtMThlMywtMTQ0MDAsLTE4ZTMsLTE0NDAwLC0xOGUzLC0xNDQwMCwtMThlMywtMTQ0MDAsLTE4ZTMsLTE0NDAwLC0xOGUzLC0xNDQwMCwtMThlMywtMTQ0MDAsLTE4ZTMsLTE0NDAwLC0xOGUzLC0xNDQwMCwtMThlMywtMTQ0MDAsLTE4ZTMsLTE0NDAwLC0xOGUzLC0xNDQwMCwtMThlMywtMTQ0MDAsLTE4ZTMsLTE0NDAwLC0xOGUzLC0xNDQwMCwtMThlMywtMTQ0MDAsLTE4ZTMsLTE0NDAwLC0xOGUzLC0xNDQwMCwtMThlM119LCJBbWVyaWNhL1Bob2VuaXgiOnt0aW1lOlstMjcxNzY3MDQ5OCwtMTYzMzI5ODQwMCwtMTYxNTE1NDQwMCwtMTYwMTg0ODgwMCwtMTU4MzcwNDgwMCwtODgwMjM2ZTMsLTgyMDU0MDc0MCwtODEyNjc4MzQwLC03OTY4NjcxNDAsLTg0NDA1NjAwLC02ODY4MDgwMCwxOTI0OTY2ODAwXSxvZmZzZXQ6Wy0yNjg5OCwtMjUyMDAsLTIxNjAwLC0yNTIwMCwtMjE2MDAsLTI1MjAwLC0yMTYwMCwtMjUyMDAsLTIxNjAwLC0yNTIwMCwtMjE2MDAsLTI1MjAwXX0sIkFtZXJpY2EvU2FudGlhZ28iOnsKdGltZTpbLTI1MjQ1MjE2MDAsLTE4OTI2Nzg0MDAsLTE2ODg0Mjg4MDAsLTE2MTkyMjI0MDAsLTE1OTM4MjA4MDAsLTEzMzYwMDMyMDAsLTEzMTc2ZTUsLTEzMDQzODA4MDAsLTEyODYwNjRlMywtMTI3Mjg0NDgwMCwtMTI1NDUyOGUzLC0xMjQxMzA4ODAwLC0xMjIyOTkyZTMsLTEyMDk3NzI4MDAsLTExOTEzNjk2MDAsLTExNzgxNTA0MDAsLTg3MDU2NjQwMCwtODY1Mjk2ZTMsLTc0MDUzNDQwMCwtNzM2NjQ2NDAwLC03MTgwNzA0MDAsLTcxMzY2NzYwMCwtMzY2MzM2MDAsLTIzOTMyODAwLC0zMzY5NjAwLDc1MTY4MDAsMjQ0NTEyMDAsMzc3NTY4MDAsNTU5MDA4MDAsNjkyMDY0MDAsODc5NTUyMDAsMTAwNjU2ZTMsMTE4MTk1MjAwLDEzMjEwNTYwMCwxNTA4NTQ0MDAsMTYzNTU1MjAwLDE4MjMwNGUzLDE5NTYwOTYwMCwyMTM3NTM2MDAsMjI3MDU5MjAwLDI0NTIwMzIwMCwyNTg1MDg4MDAsMjc3MjU3NjAwLDI4OTk1ODQwMCwzMDg3MDcyMDAsMzIxNDA4ZTMsMzQwMTU2ODAwLDM1MzQ2MjQwMCwzNzE2MDY0MDAsMzg0OTEyZTMsNDAzMDU2ZTMsNDE2MzYxNjAwLDQzNDUwNTYwMCw0NDc4MTEyMDAsNDY2NTZlNCw0NzkyNjA4MDAsNDk4MDA5NjAwLDUxMDcxMDQwMCw1Mjk0NTkyMDAsNTQ1MTg0ZTMsNTYwOTA4ODAwLDU3NDIxNDQwMCw1OTIzNTg0MDAsNjA1NjY0ZTMsNjI0NDEyODAwLDYzNzExMzYwMCw2NTM0NDMyMDAsNjY4NTYzMjAwLDY4NzMxMmUzLDcwMDYxNzYwMCw3MTg3NjE2MDAsNzMyMDY3MjAwLDc1MDIxMTIwMCw3NjM1MTY4MDAsNzgxNjYwODAwLDc5NDk2NjQwMCw4MTM3MTUyMDAsODI2NDE2ZTMsODQ1MTY0ODAwLDg1OTY4ZTQsODc2NjE0NDAwLDg4OTkyZTQsOTA2ODU0NDAwLDkyMzE4NGUzLDkzOTUxMzYwMCw5NTI4MTkyMDAsOTcxNTY4ZTMsOTg0MjY4ODAwLDEwMDMwMTc2MDAsMTAxNTcxODQwMCwxMDM0NDY3MjAwLDEwNDcxNjhlMywxMDY1OTE2ODAwLDEwNzkyMjI0MDAsMTA5NzM2NjQwMCwxMTEwNjcyZTMsMTEyODgxNmUzLDExNDIxMjE2MDAsMTE2MDg3MDQwMCwxMTczNTcxMjAwLDExOTIzMmU0LDEyMDY4MzUyMDAsMTIyMzc2OTYwMCwxMjM3MDc1MjAwLDEyNTUyMTkyMDAsMTI3MDMzOTIwMCwxMjg2NjY4ODAwLDEzMDQ4MTI4MDAsMTMxMzg4NDgwMCwxMzM1NjU3NjAwLDEzNDY1NDRlMywxMzY3MTA3MjAwLDEzNzg1OTg0MDAsMTM5ODU1NjgwMCwxNDEwMDQ4ZTMsMTQ2MzI3MDQwMCwxNDcxMTMyODAwLDE0OTQ3MmU0LDE1MDI1ODI0MDAsMTUyNjE2OTYwMCwxNTM0MDMyZTMsMTU1NDU5NTIwMCwxNTY3OTAwODAwLDE1ODYwNDQ4MDAsMTU5OTM1MDQwMCwxNjE3NDk0NDAwLDE2MzA4ZTUsMTY0ODk0NGUzLDE2NjI4NTQ0MDAsMTY4MDM5MzYwMCwxNjkzNjk5MjAwLDE3MTI0NDhlMywxNzI1NzUzNjAwLDE3NDM4OTc2MDAsMTc1NzIwMzIwMCwxNzc1MzQ3MjAwLDE3ODg2NTI4MDAsMTgwNjc5NjgwMCwxODIwMTAyNDAwLDE4MzgyNDY0MDAsMTg1MTU1MmUzLDE4NzAzMDA4MDAsMTg4MzAwMTYwMCwxOTAxNzUwNDAwLDE5MTUwNTZlMywxOTMzMmU1XSxvZmZzZXQ6Wy0xNjk2NSwtMTY5NjUsLTE4ZTMsLTE2OTY1LC0xNDQwMCwtMTY5NjUsLTE0NDAwLC0xOGUzLC0xNDQwMCwtMThlMywtMTQ0MDAsLTE4ZTMsLTE0NDAwLC0xOGUzLC0xNDQwMCwtMThlMywtMTQ0MDAsLTE4ZTMsLTE0NDAwLC0xMDgwMCwtMTQ0MDAsLTE4ZTMsLTE0NDAwLC0xMDgwMCwtMTQ0MDAsLTEwODAwLC0xNDQwMCwtMTA4MDAsLTE0NDAwLC0xMDgwMCwtMTQ0MDAsLTEwODAwLC0xNDQwMCwtMTA4MDAsLTE0NDAwLC0xMDgwMCwtMTQ0MDAsLTEwODAwLC0xNDQwMCwtMTA4MDAsLTE0NDAwLC0xMDgwMCwtMTQ0MDAsLTEwODAwLC0xNDQwMCwtMTA4MDAsLTE0NDAwLC0xMDgwMCwtMTQ0MDAsLTEwODAwLC0xNDQwMCwtMTA4MDAsLTE0NDAwLC0xMDgwMCwtMTQ0MDAsLTEwODAwLC0xNDQwMCwtMTA4MDAsLTE0NDAwLC0xMDgwMCwtMTQ0MDAsLTEwODAwLC0xNDQwMCwtMTA4MDAsLTE0NDAwLC0xMDgwMCwtMTQ0MDAsLTEwODAwLC0xNDQwMCwtMTA4MDAsLTE0NDAwLC0xMDgwMCwtMTQ0MDAsLTEwODAwLC0xNDQwMCwtMTA4MDAsLTE0NDAwLC0xMDgwMCwtMTQ0MDAsLTEwODAwLC0xNDQwMCwtMTA4MDAsLTE0NDAwLC0xMDgwMCwtMTQ0MDAsLTEwODAwLC0xNDQwMCwtMTA4MDAsLTE0NDAwLC0xMDgwMCwtMTQ0MDAsLTEwODAwLC0xNDQwMCwtMTA4MDAsLTE0NDAwLC0xMDgwMCwtMTQ0MDAsLTEwODAwLC0xNDQwMCwtMTA4MDAsLTE0NDAwLC0xMDgwMCwtMTQ0MDAsLTEwODAwLC0xNDQwMCwtMTA4MDAsLTE0NDAwLC0xMDgwMCwtMTQ0MDAsLTEwODAwLC0xNDQwMCwtMTA4MDAsLTE0NDAwLC0xMDgwMCwtMTQ0MDAsLTEwODAwLC0xNDQwMCwtMTA4MDAsLTE0NDAwLC0xMDgwMCwtMTQ0MDAsLTEwODAwLC0xNDQwMCwtMTA4MDAsLTE0NDAwLC0xMDgwMCwtMTQ0MDAsLTEwODAwLC0xNDQwMCwtMTA4MDAsLTE0NDAwLC0xMDgwMCwtMTQ0MDAsLTEwODAwLC0xNDQwMCwtMTA4MDAsLTE0NDAwLC0xMDgwMCwtMTQ0MDAsLTEwODAwLC0xNDQwMCwtMTA4MDAsLTE0NDAwLC0xMDgwMCwtMTQ0MDAsLTEwODAwXX0sIkFtZXJpY2EvU2FvX1BhdWxvIjp7CnRpbWU6Wy0xNzY3MjI1NjAwLC0xMjA2OTY4NDAwLC0xMTkxMzY5NjAwLC0xMTc1Mzg1NjAwLC0xMTU5ODMzNjAwLC02MzM4MzA0MDAsLTYyMjA3NjQwMCwtNjAyMjk0NDAwLC01OTE4NGU0LC01NzA3NTg0MDAsLTU2MDIxNzYwMCwtNTM5MTM2ZTMsLTUzMTM2ZTQsLTE5NTQzNjgwMCwtMTg0MjA0ODAwLC0xNTUxNzQ0MDAsLTE1MDA3NjgwMCwtMTI4OTA4ODAwLC0xMjExMzI4MDAsLTk5OTY0ODAwLC04OTU5NjgwMCwtNjg0Mjg4MDAsLTU3OTc0NDAwLDQ5OTczNzYwMCw1MTEyMjg4MDAsNTMwNTgyNDAwLDU0MDI1OTIwMCw1NjIxMTg0MDAsNTcxMTkwNDAwLDU5Mjk2MzIwMCw2MDIwMzUyMDAsNjI0NDEyODAwLDYzNDY5NDQwMCw2NTY0NjcyMDAsNjY2NzQ4ODAwLDY4NzkxNjgwMCw2OTc1OTM2MDAsNzE5OTcxMjAwLDcyODQzODQwMCw3NTA4MTZlMyw3NjE3MDI0MDAsNzgyMjY1NjAwLDc5MzE1MmUzLDgxMzcxNTIwMCw4MjM5OTY4MDAsODQ0NTZlNCw4NTYwNTEyMDAsODc2MDk2ZTMsODg4NzEwNDAwLDkwODA2NGUzLDkxOTU1NTIwMCw5Mzg5MDg4MDAsOTUxNjA5NjAwLDk3MDk2MzIwMCw5ODI0NTQ0MDAsMTAwMzAxNzYwMCwxMDEzOTA0ZTMsMTAzNjI4MTYwMCwxMDQ1MzUzNjAwLDEwNjY1MjE2MDAsMTA3NjgwMzIwMCwxMDk5MzUzNjAwLDExMDg4NTc2MDAsMTEyOTQyMDgwMCwxMTQwMzA3MjAwLDExNjI2ODQ4MDAsMTE3MjM2MTYwMCwxMTkyMzJlNCwxMjAzMjA2NDAwLDEyMjQzNzQ0MDAsMTIzNDY1NmUzLDEyNTU4MjRlMywxMjY2NzEwNDAwLDEyODcyNzM2MDAsMTI5ODE2ZTQsMTMxODcyMzIwMCwxMzMwMjE0NDAwLDEzNTA3Nzc2MDAsMTM2MTA1OTIwMCwxMzgyMjI3MjAwLDEzOTI1MDg4MDAsMTQxMzY3NjgwMCwxNDI0NTYzMjAwLDE0NDUxMjY0MDAsMTQ1NjAxMjgwMCwxNDc2NTc2ZTMsMTQ4NzQ2MjQwMCwxNTA4MDI1NjAwLDE1MTg5MTJlMywxNTQxMjg5NjAwLDE1NTAzNjE2MDAsMTkyNDk4MTIwMF0sb2Zmc2V0OlstMTExODgsLTEwODAwLC03MjAwLC0xMDgwMCwtNzIwMCwtMTA4MDAsLTcyMDAsLTEwODAwLC03MjAwLC0xMDgwMCwtNzIwMCwtMTA4MDAsLTcyMDAsLTEwODAwLC03MjAwLC0xMDgwMCwtNzIwMCwtMTA4MDAsLTcyMDAsLTEwODAwLC03MjAwLC0xMDgwMCwtNzIwMCwtMTA4MDAsLTcyMDAsLTEwODAwLC03MjAwLC0xMDgwMCwtNzIwMCwtMTA4MDAsLTcyMDAsLTEwODAwLC03MjAwLC0xMDgwMCwtNzIwMCwtMTA4MDAsLTcyMDAsLTEwODAwLC03MjAwLC0xMDgwMCwtNzIwMCwtMTA4MDAsLTcyMDAsLTEwODAwLC03MjAwLC0xMDgwMCwtNzIwMCwtMTA4MDAsLTcyMDAsLTEwODAwLC03MjAwLC0xMDgwMCwtNzIwMCwtMTA4MDAsLTcyMDAsLTEwODAwLC03MjAwLC0xMDgwMCwtNzIwMCwtMTA4MDAsLTcyMDAsLTEwODAwLC03MjAwLC0xMDgwMCwtNzIwMCwtMTA4MDAsLTcyMDAsLTEwODAwLC03MjAwLC0xMDgwMCwtNzIwMCwtMTA4MDAsLTcyMDAsLTEwODAwLC03MjAwLC0xMDgwMCwtNzIwMCwtMTA4MDAsLTcyMDAsLTEwODAwLC03MjAwLC0xMDgwMCwtNzIwMCwtMTA4MDAsLTcyMDAsLTEwODAwLC03MjAwLC0xMDgwMCwtNzIwMCwtMTA4MDAsLTcyMDAsLTEwODAwXX0sIkFtZXJpY2EvVG9yb250byI6ewp0aW1lOlstMjM2Njc1NTIwMCwtMTYzMjA4ODgwMCwtMTYxNTE1NDQwMCwtMTYwMTc3MTQwMCwtMTU4MzcxMmUzLC0xNTY3Mzc1MjAwLC0xNTU0NjgxNjAwLC0xNTM0NzE2ZTMsLTE1MjQwODg4MDAsLTE1MDMyNjY0MDAsLTE0OTIzOGU0LC0xNDcxODE2ODAwLC0xNDYwOTMwNDAwLC0xNDQwOTcyZTMsLTE0Mjg4NzZlMywtMTQwOTUyMjQwMCwtMTM5NzQyNjQwMCwtMTM3ODA3MjgwMCwtMTM2NTk3NjgwMCwtMTM0NjYyMzIwMCwtMTMzMzkyMjQwMCwtMTMxNTE3MzYwMCwtMTMwMTg2OGUzLC0xMjgzNzI0ZTMsLTEyNzA0MTg0MDAsLTEyNTIyNzQ0MDAsLTEyMzg5Njg4MDAsLTEyMjA4MjQ4MDAsLTEyMDc1MTkyMDAsLTExODg3NzA0MDAsLTExNzYwNjk2MDAsLTExNTczMjA4MDAsLTExNDQwMTUyMDAsLTExMjU4NzEyMDAsLTExMTI1NjU2MDAsLTEwOTQ0MjE2MDAsLTEwODExMTZlMywtMTA2Mjk3MmUzLC0xMDQ5NjY2NDAwLC0xMDMxNTIyNDAwLC0xMDE4MjE2ODAwLC0xMDAwMDcyODAwLC05ODY3NjcyMDAsLTk2ODAxODQwMCwtOTU1MzE3NjAwLC05MzY1Njg4MDAsLTg4MDIzMjQwMCwtNzY5NDFlNCwtNzY1NDEwNDAwLC03NDcyNjY0MDAsLTczMzk2MDgwMCwtNzE1ODE2ODAwLC03MDI1MTEyMDAsLTY4NDM2NzIwMCwtNjcxMDYxNjAwLC02NTI5MTc2MDAsLTYzNDE2ODgwMCwtNjIwODYzMjAwLC02MDI3MTkyMDAsLTU4OTQxMzYwMCwtNTc2MTA4ZTMsLTU1Nzk2NGUzLC01NDQ2NTg0MDAsLTUyNjUxNDQwMCwtNTEzMjA4ODAwLC00OTUwNjQ4MDAsLTQ4MTc1OTIwMCwtNDYzNjE1MjAwLC00NTAzMDk2MDAsLTQzMTU2MDgwMCwtNDE4MjU1MjAwLC00MDAxMTEyMDAsLTM4NDM4NjQwMCwtMzY4NjYxNjAwLC0zNTI5MzY4MDAsLTMzNzIxMmUzLC0zMjE0ODcyMDAsLTMwNTc2MjQwMCwtMjg5NDMyODAwLC0yNzM3MDhlMywtMjU3OTgzMjAwLC0yNDIyNTg0MDAsLTIyNjUzMzYwMCwtMjEwODA4ODAwLC0xOTUwODRlMywtMTc5MzU5MjAwLC0xNjM2MzQ0MDAsLTE0NzkwOTYwMCwtMTMxNThlNCwtMTE2NDZlNCwtMTAwMTMwNDAwLC04NDQwNTYwMCwtNjg2ODA4MDAsLTUyOTU2ZTMsLTM3MjMxMjAwLC0yMTUwNjQwMCwtNTc4MTYwMCw5OTQzMjAwLDI1NjY4ZTMsNDEzOTI4MDAsNTc3MjI0MDAsNzM0NDcyMDAsODkxNzJlMywxMDQ4OTY4MDAsMTIwNjIxNjAwLDEzNjM0NjQwMCwxNTIwNzEyMDAsMTY3Nzk2ZTMsMTgzNTIwODAwLDE5OTI0NTYwMCwyMTU1NzUyMDAsMjMwNjk1MjAwLDI0NzAyNDgwMCwyNjI3NDk2MDAsMjc4NDc0NDAwLDI5NDE5OTIwMCwzMDk5MjRlMywzMjU2NDg4MDAsMzQxMzczNjAwLDM1NzA5ODQwMCwzNzI4MjMyMDAsMzg4NTQ4ZTMsNDA0ODc3NjAwLDQxOTk5NzYwMCw0MzYzMjcyMDAsNDUyMDUyZTMsNDY3Nzc2ODAwLDQ4MzUwMTYwMCw0OTkyMjY0MDAsNTE0OTUxMjAwLDUzMDY3NmUzLDU0NDU4NjQwMCw1NjIxMjU2MDAsNTc2MDM2ZTMsNTk0MThlNCw2MDc0ODU2MDAsNjI1NjI5NjAwLDYzODkzNTIwMCw2NTcwNzkyMDAsNjcwOTg5NjAwLDY4ODUyODgwMCw3MDI0MzkyMDAsNzE5OTc4NDAwLDczMzg4ODgwMCw3NTIwMzI4MDAsNzY1MzM4NDAwLDc4MzQ4MjQwMCw3OTY3ODhlMyw4MTQ5MzJlMyw4Mjg4NDI0MDAsODQ2MzgxNjAwLDg2MDI5MmUzLDg3NzgzMTIwMCw4OTE3NDE2MDAsOTA5MjgwODAwLDkyMzE5MTIwMCw5NDEzMzUyMDAsOTU0NjQwODAwLDk3Mjc4NDgwMCw5ODYwOTA0MDAsMTAwNDIzNDQwMCwxMDE4MTQ0ODAwLDEwMzU2ODRlMywxMDQ5NTk0NDAwLDEwNjcxMzM2MDAsMTA4MTA0NGUzLDEwOTkxODhlMywxMTEyNDkzNjAwLDExMzA2Mzc2MDAsMTE0Mzk0MzIwMCwxMTYyMDg3MjAwLDExNzM1Nzg0MDAsMTE5NDE0MTYwMCwxMjA1MDI4ZTMsMTIyNTU5MTIwMCwxMjM2NDc3NjAwLDEyNTcwNDA4MDAsMTI2ODUzMmUzLDEyODkwOTUyMDAsMTI5OTk4MTYwMCwxMzIwNTQ0ODAwLDEzMzE0MzEyMDAsMTM1MTk5NDQwMCwxMzYyODgwODAwLDEzODM0NDRlMywxMzk0MzMwNDAwLDE0MTQ4OTM2MDAsMTQyNTc4ZTQsMTQ0NjM0MzIwMCwxNDU3ODM0NDAwLDE0NzgzOTc2MDAsMTQ4OTI4NGUzLDE1MDk4NDcyMDAsMTUyMDczMzYwMCwxNTQxMjk2ODAwLDE1NTIxODMyMDAsMTU3Mjc0NjQwMCwxNTgzNjMyODAwLDE2MDQxOTZlMywxNjE1Njg3MjAwLDE2MzYyNTA0MDAsMTY0NzEzNjgwMCwxNjY3N2U1LDE2Nzg1ODY0MDAsMTY5OTE0OTYwMCwxNzEwMDM2ZTMsMTczMDU5OTIwMCwxNzQxNDg1NjAwLDE3NjIwNDg4MDAsMTc3MjkzNTIwMCwxNzkzNDk4NDAwLDE4MDQ5ODk2MDAsMTgyNTU1MjgwMCwxODM2NDM5MjAwLDE4NTcwMDI0MDAsMTg2Nzg4ODgwMCwxODg4NDUyZTMsMTg5OTMzODQwMCwxOTE5OTAxNjAwLDE5MzA3ODhlM10sCm9mZnNldDpbLTE5MDUyLC0xOGUzLC0xNDQwMCwtMThlMywtMTQ0MDAsLTE4ZTMsLTE0NDAwLC0xOGUzLC0xNDQwMCwtMThlMywtMTQ0MDAsLTE4ZTMsLTE0NDAwLC0xOGUzLC0xNDQwMCwtMThlMywtMTQ0MDAsLTE4ZTMsLTE0NDAwLC0xOGUzLC0xNDQwMCwtMThlMywtMTQ0MDAsLTE4ZTMsLTE0NDAwLC0xOGUzLC0xNDQwMCwtMThlMywtMTQ0MDAsLTE4ZTMsLTE0NDAwLC0xOGUzLC0xNDQwMCwtMThlMywtMTQ0MDAsLTE4ZTMsLTE0NDAwLC0xOGUzLC0xNDQwMCwtMThlMywtMTQ0MDAsLTE4ZTMsLTE0NDAwLC0xOGUzLC0xNDQwMCwtMThlMywtMTQ0MDAsLTE0NDAwLC0xNDQwMCwtMThlMywtMTQ0MDAsLTE4ZTMsLTE0NDAwLC0xOGUzLC0xNDQwMCwtMThlMywtMTQ0MDAsLTE4ZTMsLTE0NDAwLC0xOGUzLC0xNDQwMCwtMThlMywtMTQ0MDAsLTE4ZTMsLTE0NDAwLC0xOGUzLC0xNDQwMCwtMThlMywtMTQ0MDAsLTE4ZTMsLTE0NDAwLC0xOGUzLC0xNDQwMCwtMThlMywtMTQ0MDAsLTE4ZTMsLTE0NDAwLC0xOGUzLC0xNDQwMCwtMThlMywtMTQ0MDAsLTE4ZTMsLTE0NDAwLC0xOGUzLC0xNDQwMCwtMThlMywtMTQ0MDAsLTE4ZTMsLTE0NDAwLC0xOGUzLC0xNDQwMCwtMThlMywtMTQ0MDAsLTE4ZTMsLTE0NDAwLC0xOGUzLC0xNDQwMCwtMThlMywtMTQ0MDAsLTE4ZTMsLTE0NDAwLC0xOGUzLC0xNDQwMCwtMThlMywtMTQ0MDAsLTE4ZTMsLTE0NDAwLC0xOGUzLC0xNDQwMCwtMThlMywtMTQ0MDAsLTE4ZTMsLTE0NDAwLC0xOGUzLC0xNDQwMCwtMThlMywtMTQ0MDAsLTE4ZTMsLTE0NDAwLC0xOGUzLC0xNDQwMCwtMThlMywtMTQ0MDAsLTE4ZTMsLTE0NDAwLC0xOGUzLC0xNDQwMCwtMThlMywtMTQ0MDAsLTE4ZTMsLTE0NDAwLC0xOGUzLC0xNDQwMCwtMThlMywtMTQ0MDAsLTE4ZTMsLTE0NDAwLC0xOGUzLC0xNDQwMCwtMThlMywtMTQ0MDAsLTE4ZTMsLTE0NDAwLC0xOGUzLC0xNDQwMCwtMThlMywtMTQ0MDAsLTE4ZTMsLTE0NDAwLC0xOGUzLC0xNDQwMCwtMThlMywtMTQ0MDAsLTE4ZTMsLTE0NDAwLC0xOGUzLC0xNDQwMCwtMThlMywtMTQ0MDAsLTE4ZTMsLTE0NDAwLC0xOGUzLC0xNDQwMCwtMThlMywtMTQ0MDAsLTE4ZTMsLTE0NDAwLC0xOGUzLC0xNDQwMCwtMThlMywtMTQ0MDAsLTE4ZTMsLTE0NDAwLC0xOGUzLC0xNDQwMCwtMThlMywtMTQ0MDAsLTE4ZTMsLTE0NDAwLC0xOGUzLC0xNDQwMCwtMThlMywtMTQ0MDAsLTE4ZTMsLTE0NDAwLC0xOGUzLC0xNDQwMCwtMThlMywtMTQ0MDAsLTE4ZTMsLTE0NDAwLC0xOGUzLC0xNDQwMCwtMThlMywtMTQ0MDAsLTE4ZTMsLTE0NDAwLC0xOGUzLC0xNDQwMCwtMThlMywtMTQ0MDAsLTE4ZTMsLTE0NDAwLC0xOGUzLC0xNDQwMCwtMThlMywtMTQ0MDAsLTE4ZTMsLTE0NDAwLC0xOGUzLC0xNDQwMCwtMThlMywtMTQ0MDAsLTE4ZTMsLTE0NDAwLC0xOGUzLC0xNDQwMCwtMThlMywtMTQ0MDAsLTE4ZTNdfSwiQW1lcmljYS9WYW5jb3V2ZXIiOnsKdGltZTpbLTI3MTM5MTA0MDAsLTE2MzIwODg4MDAsLTE2MTUxNTQ0MDAsLTg4MDIzNmUzLC03Njk0MjA4MDAsLTc2NTQxMDQwMCwtNzQ3MjY2NDAwLC03MzM5NjA4MDAsLTcxNTgxNjgwMCwtNzAyNTExMjAwLC02ODQzNjcyMDAsLTY3MTA2MTYwMCwtNjUyOTE3NjAwLC02Mzk2MTJlMywtNjIwODYzMjAwLC02MDgxNjI0MDAsLTU4OTQxMzYwMCwtNTc2MTA4ZTMsLTU1Nzk2NGUzLC01NDQ2NTg0MDAsLTUyNjUxNDQwMCwtNTEzMjA4ODAwLC00OTUwNjQ4MDAsLTQ4MTc1OTIwMCwtNDYzNjE1MjAwLC00NTAzMDk2MDAsLTQzMTU2MDgwMCwtNDE4MjU1MjAwLC00MDAxMTEyMDAsLTM4NjgwNTYwMCwtMzY4NjYxNjAwLC0zNTUzNTZlMywtMzM3MjEyZTMsLTMyMzkwNjQwMCwtMzA1NzYyNDAwLC0yOTI0NTY4MDAsLTI3MzcwOGUzLC0yNjEwMDcyMDAsLTI0MjI1ODQwMCwtMjI2NTMzNjAwLC0yMTA4MDg4MDAsLTE5NTA4NGUzLC0xNzkzNTkyMDAsLTE2MzYzNDQwMCwtMTQ3OTA5NjAwLC0xMzE1OGU0LC0xMTY0NmU0LC0xMDAxMzA0MDAsLTg0NDA1NjAwLC02ODY4MDgwMCwtNTI5NTZlMywtMzcyMzEyMDAsLTIxNTA2NDAwLC01NzgxNjAwLDk5NDMyMDAsMjU2NjhlMyw0MTM5MjgwMCw1NzcyMjQwMCw3MzQ0NzIwMCw4OTE3MmUzLDEwNDg5NjgwMCwxMjA2MjE2MDAsMTM2MzQ2NDAwLDE1MjA3MTIwMCwxNjc3OTZlMywxODM1MjA4MDAsMTk5MjQ1NjAwLDIxNTU3NTIwMCwyMzA2OTUyMDAsMjQ3MDI0ODAwLDI2Mjc0OTYwMCwyNzg0NzQ0MDAsMjk0MTk5MjAwLDMwOTkyNGUzLDMyNTY0ODgwMCwzNDEzNzM2MDAsMzU3MDk4NDAwLDM3MjgyMzIwMCwzODg1NDhlMyw0MDQ4Nzc2MDAsNDE5OTk3NjAwLDQzNjMyNzIwMCw0NTIwNTJlMyw0Njc3NzY4MDAsNDgzNTAxNjAwLDQ5OTIyNjQwMCw1MTQ5NTEyMDAsNTMwNjc2ZTMsNTQ0NTg2NDAwLDU2MjEyNTYwMCw1NzYwMzZlMyw1OTQxOGU0LDYwNzQ4NTYwMCw2MjU2Mjk2MDAsNjM4OTM1MjAwLDY1NzA3OTIwMCw2NzA5ODk2MDAsNjg4NTI4ODAwLDcwMjQzOTIwMCw3MTk5Nzg0MDAsNzMzODg4ODAwLDc1MjAzMjgwMCw3NjUzMzg0MDAsNzgzNDgyNDAwLDc5Njc4OGUzLDgxNDkzMmUzLDgyODg0MjQwMCw4NDYzODE2MDAsODYwMjkyZTMsODc3ODMxMjAwLDg5MTc0MTYwMCw5MDkyODA4MDAsOTIzMTkxMjAwLDk0MTMzNTIwMCw5NTQ2NDA4MDAsOTcyNzg0ODAwLDk4NjA5MDQwMCwxMDA0MjM0NDAwLDEwMTgxNDQ4MDAsMTAzNTY4NGUzLDEwNDk1OTQ0MDAsMTA2NzEzMzYwMCwxMDgxMDQ0ZTMsMTA5OTE4OGUzLDExMTI0OTM2MDAsMTEzMDYzNzYwMCwxMTQzOTQzMjAwLDExNjIwODcyMDAsMTE3MzU3ODQwMCwxMTk0MTQxNjAwLDEyMDUwMjhlMywxMjI1NTkxMjAwLDEyMzY0Nzc2MDAsMTI1NzA0MDgwMCwxMjY4NTMyZTMsMTI4OTA5NTIwMCwxMjk5OTgxNjAwLDEzMjA1NDQ4MDAsMTMzMTQzMTIwMCwxMzUxOTk0NDAwLDEzNjI4ODA4MDAsMTM4MzQ0NGUzLDEzOTQzMzA0MDAsMTQxNDg5MzYwMCwxNDI1NzhlNCwxNDQ2MzQzMjAwLDE0NTc4MzQ0MDAsMTQ3ODM5NzYwMCwxNDg5Mjg0ZTMsMTUwOTg0NzIwMCwxNTIwNzMzNjAwLDE1NDEyOTY4MDAsMTU1MjE4MzIwMCwxNTcyNzQ2NDAwLDE1ODM2MzI4MDAsMTYwNDE5NmUzLDE2MTU2ODcyMDAsMTYzNjI1MDQwMCwxNjQ3MTM2ODAwLDE2Njc3ZTUsMTY3ODU4NjQwMCwxNjk5MTQ5NjAwLDE3MTAwMzZlMywxNzMwNTk5MjAwLDE3NDE0ODU2MDAsMTc2MjA0ODgwMCwxNzcyOTM1MjAwLDE3OTM0OTg0MDAsMTgwNDk4OTYwMCwxODI1NTUyODAwLDE4MzY0MzkyMDAsMTg1NzAwMjQwMCwxODY3ODg4ODAwLDE4ODg0NTJlMywxODk5MzM4NDAwLDE5MTk5MDE2MDAsMTkzMDc4OGUzXSwKb2Zmc2V0OlstMjk1NDgsLTI4ODAwLC0yNTIwMCwtMjg4MDAsLTI1MjAwLC0yNTIwMCwtMjg4MDAsLTI1MjAwLC0yODgwMCwtMjUyMDAsLTI4ODAwLC0yNTIwMCwtMjg4MDAsLTI1MjAwLC0yODgwMCwtMjUyMDAsLTI4ODAwLC0yNTIwMCwtMjg4MDAsLTI1MjAwLC0yODgwMCwtMjUyMDAsLTI4ODAwLC0yNTIwMCwtMjg4MDAsLTI1MjAwLC0yODgwMCwtMjUyMDAsLTI4ODAwLC0yNTIwMCwtMjg4MDAsLTI1MjAwLC0yODgwMCwtMjUyMDAsLTI4ODAwLC0yNTIwMCwtMjg4MDAsLTI1MjAwLC0yODgwMCwtMjUyMDAsLTI4ODAwLC0yNTIwMCwtMjg4MDAsLTI1MjAwLC0yODgwMCwtMjUyMDAsLTI4ODAwLC0yNTIwMCwtMjg4MDAsLTI1MjAwLC0yODgwMCwtMjUyMDAsLTI4ODAwLC0yNTIwMCwtMjg4MDAsLTI1MjAwLC0yODgwMCwtMjUyMDAsLTI4ODAwLC0yNTIwMCwtMjg4MDAsLTI1MjAwLC0yODgwMCwtMjUyMDAsLTI4ODAwLC0yNTIwMCwtMjg4MDAsLTI1MjAwLC0yODgwMCwtMjUyMDAsLTI4ODAwLC0yNTIwMCwtMjg4MDAsLTI1MjAwLC0yODgwMCwtMjUyMDAsLTI4ODAwLC0yNTIwMCwtMjg4MDAsLTI1MjAwLC0yODgwMCwtMjUyMDAsLTI4ODAwLC0yNTIwMCwtMjg4MDAsLTI1MjAwLC0yODgwMCwtMjUyMDAsLTI4ODAwLC0yNTIwMCwtMjg4MDAsLTI1MjAwLC0yODgwMCwtMjUyMDAsLTI4ODAwLC0yNTIwMCwtMjg4MDAsLTI1MjAwLC0yODgwMCwtMjUyMDAsLTI4ODAwLC0yNTIwMCwtMjg4MDAsLTI1MjAwLC0yODgwMCwtMjUyMDAsLTI4ODAwLC0yNTIwMCwtMjg4MDAsLTI1MjAwLC0yODgwMCwtMjUyMDAsLTI4ODAwLC0yNTIwMCwtMjg4MDAsLTI1MjAwLC0yODgwMCwtMjUyMDAsLTI4ODAwLC0yNTIwMCwtMjg4MDAsLTI1MjAwLC0yODgwMCwtMjUyMDAsLTI4ODAwLC0yNTIwMCwtMjg4MDAsLTI1MjAwLC0yODgwMCwtMjUyMDAsLTI4ODAwLC0yNTIwMCwtMjg4MDAsLTI1MjAwLC0yODgwMCwtMjUyMDAsLTI4ODAwLC0yNTIwMCwtMjg4MDAsLTI1MjAwLC0yODgwMCwtMjUyMDAsLTI4ODAwLC0yNTIwMCwtMjg4MDAsLTI1MjAwLC0yODgwMCwtMjUyMDAsLTI4ODAwLC0yNTIwMCwtMjg4MDAsLTI1MjAwLC0yODgwMCwtMjUyMDAsLTI4ODAwLC0yNTIwMCwtMjg4MDAsLTI1MjAwLC0yODgwMCwtMjUyMDAsLTI4ODAwLC0yNTIwMCwtMjg4MDAsLTI1MjAwLC0yODgwMCwtMjUyMDAsLTI4ODAwLC0yNTIwMCwtMjg4MDAsLTI1MjAwLC0yODgwMCwtMjUyMDAsLTI4ODAwLC0yNTIwMCwtMjg4MDAsLTI1MjAwLC0yODgwMF19LCJBc2lhL0FsbWF0eSI6e3RpbWU6Wy0xNDQxMTUyZTMsLTEyNDc1Mjk2MDAsMzU0OTMxMjAwLDM3MDc0MjQwMCwzODY0NjcyMDAsNDAyMjc4NDAwLDQxODAwMzIwMCw0MzM4MTQ0MDAsNDQ5NjI1NjAwLDQ2NTM2MTIwMCw0ODEwODI0MDAsNDk2ODEwODAwLDUxMjUzMmUzLDUyODI2MDQwMCw1NDM5ODE2MDAsNTU5NzFlNCw1NzU0MzEyMDAsNTkxMTU5NjAwLDYwNjg4MDgwMCw2MjI2MDkyMDAsNjM4MzMwNDAwLDY1NDY2MzYwMCw2NzAzODQ4MDAsNjg2MTEzMjAwLDY5NTc4NjQwMCw3MDE4MzQ0MDAsNzE3NTYyODAwLDczMzI4NGUzLDc0OTAxMjQwMCw3NjQ3MzM2MDAsNzgwNDYyZTMsNzk2MTgzMjAwLDgxMTkxMTYwMCw4MjgyMzc2MDAsODQ2Mzg1MjAwLDg1OTY4NzIwMCw4Nzc4MzQ4MDAsODkxMTM2ODAwLDkwOTI4NDQwMCw5MjI1ODY0MDAsOTQxMzM4ODAwLDk1NDAzNmUzLDk3Mjc4ODQwMCw5ODU0ODU2MDAsMTAwNDIzOGUzLDEwMTc1NGU0LDEwMzU2ODc2MDAsMTA0ODk4OTYwMCwxMDY3MTM3MjAwLDEwODA0MzkyMDAsMTA5OTE5MTYwMCwxNzA5MjUxMjAwLDE5MjUwMWU0XSxvZmZzZXQ6WzE4NDY4LDE4ZTMsMjE2MDAsMjUyMDAsMjE2MDAsMjUyMDAsMjE2MDAsMjUyMDAsMjE2MDAsMjUyMDAsMjE2MDAsMjUyMDAsMjE2MDAsMjUyMDAsMjE2MDAsMjUyMDAsMjE2MDAsMjUyMDAsMjE2MDAsMjUyMDAsMjE2MDAsMjUyMDAsMjE2MDAsMjE2MDAsMThlMywyMTYwMCwyNTIwMCwyMTYwMCwyNTIwMCwyMTYwMCwyNTIwMCwyMTYwMCwyNTIwMCwyMTYwMCwyNTIwMCwyMTYwMCwyNTIwMCwyMTYwMCwyNTIwMCwyMTYwMCwyNTIwMCwyMTYwMCwyNTIwMCwyMTYwMCwyNTIwMCwyMTYwMCwyNTIwMCwyMTYwMCwyNTIwMCwyMTYwMCwyNTIwMCwyMTYwMCwxOGUzXX0sIkFzaWEvQXNoa2hhYmFkIjp7dGltZTpbLTE0NDExNTJlMywtMTI0NzUyOTYwMCwzNTQ5MzEyMDAsMzcwNzQyNDAwLDM4NjQ2NzIwMCw0MDIyNzg0MDAsNDE4MDAzMjAwLDQzMzgxNDQwMCw0NDk2MjU2MDAsNDY1MzYxMjAwLDQ4MTA4MjQwMCw0OTY4MTA4MDAsNTEyNTMyZTMsNTI4MjYwNDAwLDU0Mzk4MTYwMCw1NTk3MWU0LDU3NTQzMTIwMCw1OTExNTk2MDAsNjA2ODgwODAwLDYyMjYwOTIwMCw2MzgzMzA0MDAsNjU0NjYzNjAwLDY3MDM4NDgwMCw2ODYxMTMyMDAsNjk1Nzg2NDAwLDE5MjUwMWU0XSxvZmZzZXQ6WzE0MDEyLDE0NDAwLDE4ZTMsMjE2MDAsMThlMywyMTYwMCwxOGUzLDIxNjAwLDE4ZTMsMjE2MDAsMThlMywyMTYwMCwxOGUzLDIxNjAwLDE4ZTMsMjE2MDAsMThlMywyMTYwMCwxOGUzLDIxNjAwLDE4ZTMsMjE2MDAsMThlMywxOGUzLDE0NDAwLDE4ZTNdfSwiQXNpYS9CYWhyYWluIjp7dGltZTpbLTg5Nzg2ODgwMCwtODIwNTQwODAwLDc2MjA0ODAwLDE5MjUwMDI4MDBdLG9mZnNldDpbMTIxNDAsMTI2MDAsMTQ0MDAsMTA4MDBdfSwiQXNpYS9CYW5na29rIjp7dGltZTpbLTI4NDAxNDA4MDAsLTE1NzAwNjA4MDAsMTkyNTAxNzIwMF0sb2Zmc2V0OlsyNDEyNCwyNDEyNCwyNTIwMF19LCJBc2lhL0Nob25ncWluZyI6ewp0aW1lOlstMjE3NzQ1MjgwMCwtMTYwMDY0NjQwMCwtMTU4NTg3MmUzLC05MzM2Mzg0MDAsLTkyMjA2MDgwMCwtOTA4ODQxNjAwLC04ODg3OTY4MDAsLTg4MTAyMDgwMCwtNzY3ODM2ODAwLC03NDU4MDQ4MDAsLTczMzc5NTIwMCwtNzE2ODYwODAwLC02OTk1ODA4MDAsLTY4Mzg1NmUzLC02NzA2MzY4MDAsLTY1MjMyZTQsLTY0OTk4NzIwMCw1MTU1NTZlMyw1MjcwNDcyMDAsNTQ1MTkxMjAwLDU1ODQ5NjgwMCw1NzcyNDU2MDAsNTg5OTQ2NDAwLDYwODY5NTIwMCw2MjIwMDA4MDAsNjQwMTQ0ODAwLDY1MzQ1MDQwMCw2NzE1OTQ0MDAsNjg0OWU1LDE5MjUwMjA4MDBdLG9mZnNldDpbMjkxNDMsMjg4MDAsMzI0MDAsMjg4MDAsMzI0MDAsMjg4MDAsMzI0MDAsMjg4MDAsMzI0MDAsMjg4MDAsMzI0MDAsMjg4MDAsMzI0MDAsMjg4MDAsMzI0MDAsMjg4MDAsMzI0MDAsMjg4MDAsMzI0MDAsMjg4MDAsMzI0MDAsMjg4MDAsMzI0MDAsMjg4MDAsMzI0MDAsMjg4MDAsMzI0MDAsMjg4MDAsMzI0MDAsMjg4MDBdfSwiQXNpYS9Db2xvbWJvIjp7dGltZTpbLTI4NDAxNDA4MDAsLTIwMTk2ODY0MDAsLTg4MzI2NzIwMCwtODYyNjE3NjAwLC03NjQwMjhlMyw4MzI5ODI0MDAsODQ2Mjg5ODAwLDExNDUwNjFlMywxOTI1MDExODAwXSxvZmZzZXQ6WzE5MTY0LDE5MTcyLDE5ODAwLDIxNjAwLDIzNDAwLDE5ODAwLDIzNDAwLDIxNjAwLDE5ODAwXX0sIkFzaWEvRGhha2EiOnt0aW1lOlstMjUyNDUyMTYwMCwtODkxNTYxNjAwLC04NzIwMzUyMDAsLTg2MjYxNzYwMCwtNTc2MTE1MjAwLDEyNDU0NTI0MDAsMTI2MjMwMzk5OSwxOTI1MDEzNjAwXSxvZmZzZXQ6WzIxNzAwLDIxMjAwLDIzNDAwLDE5ODAwLDIzNDAwLDIxNjAwLDI1MjAwLDIxNjAwXX0sIkFzaWEvRHViYWkiOnt0aW1lOlstMTU3NzkyMzIwMCwxOTI1MDA2NDAwXSxvZmZzZXQ6WzEzMjcyLDE0NDAwXX0sIkFzaWEvSG9fQ2hpX01pbmgiOnt0aW1lOlstMjAwNDA0OGUzLC0xODUxNTUyZTMsLTg1MjA4MDQwMCwtNzgyNjE0ODAwLC03Njc4MzY4MDAsLTcxODA3MDQwMCwtNDU3NzQzNjAwLC0zMTU2MjI4MDAsMTcxODQ5NjAwLDE5MjUwMTcyMDBdLG9mZnNldDpbMjU1OTAsMjU1OTAsMjUyMDAsMjg4MDAsMzI0MDAsMjUyMDAsMjg4MDAsMjUyMDAsMjg4MDAsMjUyMDBdfSwiQXNpYS9Ib25nX0tvbmciOnt0aW1lOlstMjA1NjY2MzM5OCwtOTAwODgyZTMsLTg5MTU0NzIwMCwtODg0MjE3NjAwLC03NjExNzY4MDAsLTc0Nzg3ODQwMCwtNzI4NTA4NjAwLC03MTcwMjFlMywtNjk3MDU5ZTMsLTY4Mzc1N2UzLC02NjgwMjg2MDAsLTY1NDcyNjYwMCwtNjM2NTc5ZTMsLTYyMzI3N2UzLC02MDUxMjk0MDAsLTU5MTgyNzQwMCwtNTczNjc5ODAwLC01NTk3NzNlMywtNTQxNjI1NDAwLC01MjgzMjM0MDAsLTUxMDE3OTQwMCwtNDk4MDgzNDAwLC00Nzg3Mjk4MDAsLTQ2NjYzMzgwMCwtNDQ2Njc1NDAwLC00MzUxODQyMDAsLTQxNTIyNTgwMCwtNDAzMTI5ODAwLC0zODM3NzYyMDAsLTM3MTY4MDIwMCwtMzUyMzI2NjAwLC0zNDAyMzA2MDAsLTMyMDg3N2UzLC0zMDg3ODFlMywtMjg4ODIyNjAwLC0yNzczMzE0MDAsLTI1NzM3M2UzLC0yNDU4ODE4MDAsLTIyNTkyMzQwMCwtMjEzODI3NDAwLC0xOTQ0NzM4MDAsLTE4MjM3NzgwMCwtMTYzMDI0MjAwLC0xNDg1MDllMywtMTMyNzg0MjAwLC0xMTcwNTk0MDAsLTEwMTMzNDYwMCwtODU2MDk4MDAsLTY5MjgwMjAwLC01MzU1NTQwMCwtMzc4MzA2MDAsLTIyMTA1ODAwLC02MzgxZTMsOTM0MzgwMCwyNTA2ODYwMCw0MDc5MzQwMCw1NjUxODIwMCw3MjI0M2UzLDg4NTcyNjAwLDEwNDI5NzQwMCwxMjAwMjIyMDAsMTI2MDcwMjAwLDE1MTQ3MTgwMCwxNjcxOTY2MDAsMTgyOTIxNDAwLDE5ODY0NjIwMCwyMTQzNzFlMywyOTU0MTQyMDAsMzA5MzI0NjAwLDE5MjUwMjA4MDBdLG9mZnNldDpbMjc0MDIsMjg4MDAsMzI0MDAsMzA2MDAsMzI0MDAsMjg4MDAsMzI0MDAsMjg4MDAsMzI0MDAsMjg4MDAsMzI0MDAsMjg4MDAsMzI0MDAsMjg4MDAsMzI0MDAsMjg4MDAsMzI0MDAsMjg4MDAsMzI0MDAsMjg4MDAsMzI0MDAsMjg4MDAsMzI0MDAsMjg4MDAsMzI0MDAsMjg4MDAsMzI0MDAsMjg4MDAsMzI0MDAsMjg4MDAsMzI0MDAsMjg4MDAsMzI0MDAsMjg4MDAsMzI0MDAsMjg4MDAsMzI0MDAsMjg4MDAsMzI0MDAsMjg4MDAsMzI0MDAsMjg4MDAsMzI0MDAsMjg4MDAsMzI0MDAsMjg4MDAsMzI0MDAsMjg4MDAsMzI0MDAsMjg4MDAsMzI0MDAsMjg4MDAsMzI0MDAsMjg4MDAsMzI0MDAsMjg4MDAsMzI0MDAsMjg4MDAsMzI0MDAsMjg4MDAsMzI0MDAsMjg4MDAsMzI0MDAsMjg4MDAsMzI0MDAsMjg4MDAsMzI0MDAsMjg4MDAsMzI0MDAsMjg4MDBdfSwiQXNpYS9KYWthcnRhIjp7dGltZTpbLTMyMzEyNzM2MDAsLTE0NTE2OTM1NjgsLTExNzI4OGU0LC04NzY2MTQ0MDAsLTc2NjAyMjQwMCwtNjgzODU2ZTMsLTYyMDc4NGUzLC0xODkzODg4MDAsMTkyNTAxNzIwMF0sb2Zmc2V0OlsyNTYzMiwyNTYzMiwyNjQwMCwyN2UzLDMyNDAwLDI3ZTMsMjg4MDAsMjdlMywyNTIwMF19LCJBc2lhL0plcnVzYWxlbSI6ewp0aW1lOlstMjg0MDE0MDgwMCwtMTY0MDk5NTIwMCwtOTMzNjMxMjAwLC05MjMwODY4MDAsLTkxOTAyOTYwMCwtODU3MzM2NDAwLC04NDQyOTM2MDAsLTgyNTgwMDQwMCwtODEyNjcxMjAwLC03OTQxNzhlMywtNzc5ODM5MjAwLC03NjI2NDJlMywtNzQ4MzAzMjAwLC03MzExMDZlMywtNjgxOTQ4ZTMsLTY3MzIxNDQwMCwtNjY3OTQ3NjAwLC02NTIzMTI4MDAsLTYzNjQxMTYwMCwtNjIyMDcyODAwLC02MDg5MzY0MDAsLTU5MTgzMjgwMCwtNTcyNDc1NjAwLC01NTg1Njg4MDAsLTU0Mjg0MDQwMCwtNTI3NzI0ZTMsLTUxNDQxNDgwMCwtNDkwODMxMjAwLC00ODI5NjUyMDAsLTQ1OTM4MTYwMCwtNDUxNTE1NjAwLC00Mjg1MzY4MDAsLTQxODI1MTYwMCwtNDAwMTExMjAwLC0zODc0MDY4MDAsMTQyMzg3MjAwLDE1MDg1NDQwMCwxNjcxODRlMywxNzg2NzUyMDAsMzM0MTA4ODAwLDMzNzc0MTIwMCw0NTI2NDk2MDAsNDYyMzNlNCw0ODIyODQ4MDAsNDk0MzgwODAwLDUxNjc1ODQwMCw1MjY0MzUyMDAsNTQ1NDQzMjAwLDU1ODQ4OTYwMCw1NzY2MzM2MDAsNTg5MzM0NDAwLDYwOTg5NzYwMCw2MjA3ODRlMyw2MzgzMjMyMDAsNjUxNjI4ODAwLDY2OTc3MjgwMCw2ODM2ODMyMDAsNzAxODI3MjAwLDcxNTczNzYwMCw3MzM3MDg4MDAsNzQ3MTg3MjAwLDc2NTE1ODQwMCw3NzgwMzJlMyw3OTY2MDhlMyw4MTAwODY0MDAsODI2ODQ4ZTMsODQyODMyZTMsODU4OTAyNDAwLDg3NDE5NTIwMCw4OTAzNTJlMyw5MDUwNGU0LDkyMzAxODQwMCw5MzYzMjRlMyw5NTU2Nzc2MDAsOTcwNzk0ZTMsOTg2Nzc4ZTMsMTAwMTI5MzIwMCwxMDE3MzYzNjAwLDEwMzM5NTI0MDAsMTA0ODgxMzIwMCwxMDY1MTQyODAwLDEwODEyOTk2MDAsMTA5NTgxNDgwMCwxMTEyMzIwODAwLDExMjg4MjMyMDAsMTE0Mzc3MDQwMCwxMTU5NjY4ZTMsMTE3NTIyZTQsMTE4OTkwOGUzLDEyMDY2Njk2MDAsMTIyMzE3MmUzLDEyMzgxMTkyMDAsMTI1NDAxNjgwMCwxMjY5NTY4ODAwLDEyODQyNTY4MDAsMTMwMTYyMzIwMCwxMzE3NTIwODAwLDEzMzMwNzI4MDAsMTM0ODM2NTYwMCwxMzY0NTIyNDAwLDEzODI4MzkyMDAsMTM5NTk3MmUzLDE0MTQyODg4MDAsMTQyNzQyMTYwMCwxNDQ1NzM4NDAwLDE0NTg4NzEyMDAsMTQ3Nzc5MjgwMCwxNDkwMzIwODAwLDE1MDkyNDI0MDAsMTUyMTc3MDQwMCwxNTQwNjkyZTMsMTU1MzgyNDgwMCwxNTcyMTQxNjAwLDE1ODUyNzQ0MDAsMTYwMzU5MTIwMCwxNjE2NzI0ZTMsMTYzNTY0NTYwMCwxNjQ4MTczNjAwLDE2NjcwOTUyMDAsMTY3OTYyMzIwMCwxNjk4NTQ0ODAwLDE3MTE2Nzc2MDAsMTcyOTk5NDQwMCwxNzQzMTI3MjAwLDE3NjE0NDRlMywxNzc0NTc2ODAwLDE3OTI4OTM2MDAsMTgwNjAyNjQwMCwxODI0OTQ4ZTMsMTgzNzQ3NmUzLDE4NTYzOTc2MDAsMTg2ODkyNTYwMCwxODg3ODQ3MjAwLDE5MDA5OGU0LDE5MTkyOTY4MDAsMTkzMjQyOTYwMF0sb2Zmc2V0Ols4NDU0LDg0NDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxNDQwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMF19LCJBc2lhL0thYnVsIjp7dGltZTpbLTI1MjQ1MjE2MDAsLTc4ODkxODQwMCwxOTI1MDA4MjAwXSxvZmZzZXQ6WzE2NjA4LDE0NDAwLDE2MjAwXX0sIkFzaWEvS2FyYWNoaSI6e3RpbWU6Wy0xOTg4MTUwNDAwLC04NjI2MTc2MDAsLTc2NDEyMTYwMCwtNTc2MTE1MjAwLDM4NzkzNjAwLDEwMTgxMzc2MDAsMTAzMzg2MjQwMCwxMjEyMjc4NDAwLDEyMjU0OTc2MDAsMTIzOTc1MzYwMCwxMjU3MDMzNjAwLDE5MjUwMWU0XSxvZmZzZXQ6WzE2MDkyLDE5ODAwLDIzNDAwLDE5ODAwLDE4ZTMsMThlMywyMTYwMCwxOGUzLDIxNjAwLDE4ZTMsMjE2MDAsMThlM119LCJBc2lhL0thdGhtYW5kdSI6e3RpbWU6Wy0xNTc3OTIzMjAwLDUwNDkyMTYwMCwxOTI1MDEyNzAwXSxvZmZzZXQ6WzIwNDc2LDE5ODAwLDIwNzAwXX0sIkFzaWEvS29sa2F0YSI6e3RpbWU6Wy0zNjQ1MjE2ZTMsLTMxNTU2NzM2MDAsLTIwMTk2ODY0MDAsLTg5MTU2MTYwMCwtODcyMDM1MjAwLC04NjI2MTc2MDAsLTc2NDEyMTYwMCwxOTI1MDExODAwXSxvZmZzZXQ6WzIxMjA4LDIxMjAwLDE5MjcwLDE5ODAwLDIzNDAwLDE5ODAwLDIzNDAwLDE5ODAwXX0sIkFzaWEvS3VhbGFfTHVtcHVyIjp7dGltZTpbLTIxNzc0NTI4MDAsLTIwMzgxNzZlMywtMTE2NzYwOTYwMCwtMTA3MzAwMTYwMCwtODk0MTUzNjAwLC04Nzk2Mzg0MDAsLTc2Njk3MjgwMCwzNzg2ODk0MDAsMTkyNTAyMDgwMF0sb2Zmc2V0OlsyNDQwNiwyNDkyNSwyNTIwMCwyNjQwMCwyNjQwMCwyN2UzLDMyNDAwLDI3ZTMsMjg4MDBdfSwiQXNpYS9LdXdhaXQiOnt0aW1lOlstNjMxMTUyZTMsMTkyNTAwMjgwMF0sb2Zmc2V0OlsxMTUxNiwxMDgwMF19LCJBc2lhL01hbmlsYSI6ewp0aW1lOlstMzk0NDY3ODQwMCwtMjIxOTA1NDE2OCwtMTA0NjY0OTYwMCwtMTA0MDA4MzIwMCwtODg0OTk1MjAwLC04Nzk5ODRlMywtNzgzNTYxNjAwLC03NjAwNjA4MDAsLTQ5NjE5NTIwMCwtNDkxNTI5NjAwLDIyODM1NTIwMCwyNDM3MzQ0MDAsNjQzMjQ4ZTMsNjQ5MjA5NjAwLDE5MjUwMjA4MDBdLG9mZnNldDpbLTU3MzY4LDI5MDMyLDI4ODAwLDMyNDAwLDI4ODAwLDMyNDAwLDMyNDAwLDMyNDAwLDI4ODAwLDMyNDAwLDI4ODAwLDMyNDAwLDI4ODAwLDMyNDAwLDI4ODAwXX0sIkFzaWEvTXVzY2F0Ijp7dGltZTpbLTE1Nzc5MjMyMDAsMTkyNTAwNjQwMF0sb2Zmc2V0OlsxNDA2NCwxNDQwMF19LCJBc2lhL05pY29zaWEiOnt0aW1lOlstMTUxODkxMmUzLDE2NjU3OTIwMCwxODIzMDRlMywyMDA5NjY0MDAsMjEzODRlNCwyMjg4NzM2MDAsMjQzOTkzNjAwLDI2MDMyMzIwMCwyNzYxMzQ0MDAsMjkxNzcyODAwLDMwNzQ5NzYwMCwzMjM4MjcyMDAsMzM4OTQ3MjAwLDM1NDY3MmUzLDM3MDM5NjgwMCwzODYxMjE2MDAsNDAxODQ2NDAwLDQxNzU3MTIwMCw0MzMyOTZlMyw0NDkwMjA4MDAsNDY1MzUwNDAwLDQ4MTA3NTIwMCw0OTY4ZTUsNTEyNTI0ODAwLDUyODI0OTYwMCw1NDM5NzQ0MDAsNTU5Njk5MjAwLDU3NTQyNGUzLDU5MTE0ODgwMCw2MDY4NzM2MDAsNjIyNTk4NDAwLDYzODMyMzIwMCw2NTQ2NTI4MDAsNjcwMzc3NjAwLDY4NjEwMjQwMCw3MDE4MjcyMDAsNzE3NTUyZTMsNzMzMjc2ODAwLDc0OTAwMTYwMCw3NjQ3MjY0MDAsNzgwNDUxMjAwLDc5NjE3NmUzLDgxMTkwMDgwMCw4MjgyMzA0MDAsODQzOTU1MjAwLDg1OTY4ZTQsODc1NDA0ODAwLDg5MTEyOTYwMCw5MDkyODhlMyw5MjI1OWU0LDk0MTM0MjQwMCw5NTQwMzk2MDAsOTcyNzkyZTMsOTg1NDg5MjAwLDEwMDQyNDE2MDAsMTAxNzU0MzYwMCwxMDM1NjkxMjAwLDEwNDg5OTMyMDAsMTA2NzE0MDgwMCwxMDgwNDQyODAwLDEwOTkxOTUyMDAsMTExMTg5MjQwMCwxMTMwNjQ0ODAwLDExNDMzNDJlMywxMTYyMDk0NDAwLDExNzQ3OTE2MDAsMTE5MzU0NGUzLDEyMDY4NDZlMywxMjI0OTkzNjAwLDEyMzgyOTU2MDAsMTI1NjQ0MzIwMCwxMjY5NzQ1MjAwLDEyODg0OTc2MDAsMTMwMTE5NDgwMCwxMzE5OTQ3MjAwLDEzMzI2NDQ0MDAsMTM1MTM5NjgwMCwxMzY0Njk4ODAwLDEzODI4NDY0MDAsMTM5NjE0ODQwMCwxNDE0Mjk2ZTMsMTQyNzU5OGUzLDE0NDU3NDU2MDAsMTQ1OTA0NzYwMCwxNDc3OGU1LDE0OTA0OTcyMDAsMTUwOTI0OTYwMCwxNTIxOTQ2ODAwLDE1NDA2OTkyMDAsMTU1NDAwMTIwMCwxNTcyMTQ4ODAwLDE1ODU0NTA4MDAsMTYwMzU5ODQwMCwxNjE2OTAwNDAwLDE2MzU2NTI4MDAsMTY0ODM1ZTQsMTY2NzEwMjQwMCwxNjc5Nzk5NjAwLDE2OTg1NTJlMywxNzExODU0ZTMsMTczMDAwMTYwMCwxNzQzMzAzNjAwLDE3NjE0NTEyMDAsMTc3NDc1MzIwMCwxNzkyOTAwODAwLDE4MDYyMDI4MDAsMTgyNDk1NTIwMCwxODM3NjUyNDAwLDE4NTY0MDQ4MDAsMTg2OTEwMmUzLDE4ODc4NTQ0MDAsMTkwMTE1NjQwMCwxOTE5MzA0ZTMsMTkzMjYwNmUzXSxvZmZzZXQ6WzgwMDgsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDBdfSwiQXNpYS9RYXRhciI6e3RpbWU6Wy0xNTc3OTIzMjAwLDc2MjA0ODAwLDE5MjUwMDI4MDBdLG9mZnNldDpbMTIzNjgsMTQ0MDAsMTA4MDBdfSwiQXNpYS9SaXlhZGgiOnt0aW1lOlstNzE5NjI1NjAwLDE5MjUwMDI4MDBdLG9mZnNldDpbMTEyMTIsMTA4MDBdfSwiQXNpYS9TZW91bCI6e3RpbWU6Wy0xOTQ4NzUyZTMsLTE4MzAzODRlMywtNzY3MzE4NDAwLC02ODExNzc2MDAsLTY3MjE5MmUzLC02NTQ3MzkyMDAsLTY0MDgyODgwMCwtNjIzMzc2ZTMsLTYwOTM3OTIwMCwtNTg4ODE2ZTMsLTU3NzkyOTYwMCwtNDk4MDk2ZTMsLTQ2MjY3MmUzLC00NTE2OTkyMDAsLTQyOTc1MzYwMCwtNDE4MjYyNDAwLC0zOTk1MTM2MDAsLTM4NzQxNzYwMCwtMzY4MDY0ZTMsLTM1NTk2OGUzLC0zMzY2MTQ0MDAsLTMyNDUxODQwMCwtMzA1MTY0ODAwLC0yOTMwNjg4MDAsLTI2NDkwMjQwMCw1NDc2MTA0MDAsNTYwOTE5NjAwLDU3OTA2ZTQsNTkyMzY5MjAwLDE5MjUwMjQ0MDBdLG9mZnNldDpbMzA0NzIsMzA2MDAsMzI0MDAsMzI0MDAsMzZlMywzMjQwMCwzNmUzLDMyNDAwLDM2ZTMsMzI0MDAsMzZlMywzMjQwMCwzMDYwMCwzNDIwMCwzMDYwMCwzNDIwMCwzMDYwMCwzNDIwMCwzMDYwMCwzNDIwMCwzMDYwMCwzNDIwMCwzMDYwMCwzNDIwMCwzMDYwMCwzMjQwMCwzNmUzLDMyNDAwLDM2ZTMsMzI0MDBdfSwiQXNpYS9TaGFuZ2hhaSI6ewp0aW1lOlstMjE3NzQ1MjgwMCwtMTYwMDY0NjQwMCwtMTU4NTg3MmUzLC05MzM2Mzg0MDAsLTkyMjA2MDgwMCwtOTA4ODQxNjAwLC04ODg3OTY4MDAsLTg4MTAyMDgwMCwtNzY3ODM2ODAwLC03NDU4MDQ4MDAsLTczMzc5NTIwMCwtNzE2ODYwODAwLC02OTk1ODA4MDAsLTY4Mzg1NmUzLC02NzA2MzY4MDAsLTY1MjMyZTQsLTY0OTk4NzIwMCw1MTU1NTZlMyw1MjcwNDcyMDAsNTQ1MTkxMjAwLDU1ODQ5NjgwMCw1NzcyNDU2MDAsNTg5OTQ2NDAwLDYwODY5NTIwMCw2MjIwMDA4MDAsNjQwMTQ0ODAwLDY1MzQ1MDQwMCw2NzE1OTQ0MDAsNjg0OWU1LDE5MjUwMjA4MDBdLG9mZnNldDpbMjkxNDMsMjg4MDAsMzI0MDAsMjg4MDAsMzI0MDAsMjg4MDAsMzI0MDAsMjg4MDAsMzI0MDAsMjg4MDAsMzI0MDAsMjg4MDAsMzI0MDAsMjg4MDAsMzI0MDAsMjg4MDAsMzI0MDAsMjg4MDAsMzI0MDAsMjg4MDAsMzI0MDAsMjg4MDAsMzI0MDAsMjg4MDAsMzI0MDAsMjg4MDAsMzI0MDAsMjg4MDAsMzI0MDAsMjg4MDBdfSwiQXNpYS9TaW5nYXBvcmUiOnt0aW1lOlstMjE3NzQ1MjgwMCwtMjAzODE3NmUzLC0xMTY3NjA5NjAwLC0xMDczMDAxNjAwLC04OTQxNTM2MDAsLTg3OTYzODQwMCwtNzY2OTcyODAwLDM3ODY4OTQwMCwxOTI1MDIwODAwXSxvZmZzZXQ6WzI0OTI1LDI0OTI1LDI1MjAwLDI2NDAwLDI2NDAwLDI3ZTMsMzI0MDAsMjdlMywyODgwMF19LCJBc2lhL1RhaXBlaSI6e3RpbWU6Wy0yMzM1MjE5MjAwLC0xMDE3NzkyZTMsLTc2NjE5MTYwMCwtNzQ1ODA0ODAwLC03MzM3OTUyMDAsLTcxNjg2MDgwMCwtNjk5NTgwODAwLC02ODM4NTZlMywtNjcwNjM2ODAwLC02NTIzMmU0LC02MzkxMDA4MDAsLTYyMDc4NGUzLC02MDc1NjQ4MDAsLTU4OTI0OGUzLC01NzYwMjg4MDAsLTU2Mjg5NmUzLC01NDE3MjhlMywtNTI4NjgxNjAwLC01MTAxOTJlMywtNDk3MTQ1NjAwLC00Nzg2NTZlMywtNDY1NjA5NjAwLC00NDk3OTg0MDAsLTQzMzk4NzIwMCwtNDE4MTc2ZTMsLTQwMjQ1MTIwMCwtMzg2NjRlNCwtMzcwOTE1MjAwLC0zNTUxMDRlMywtMzM5Mzc5MjAwLC0zMjM1NjhlMywtMzAyNDg2NDAwLC0yOTE5NDU2MDAsLTI3MDk1MDQwMCwtMjYwNDA5NjAwLDEzNDAwNjQwMCwxNDk4MTc2MDAsMTY1NTQyNDAwLDE4MTM1MzYwMCwyOTk2MzUyMDAsMzA3NTg0ZTMsMTkyNTAyMDgwMF0sb2Zmc2V0OlsyOTE2MCwyODgwMCwzMjQwMCwyODgwMCwzMjQwMCwyODgwMCwzMjQwMCwyODgwMCwzMjQwMCwyODgwMCwzMjQwMCwyODgwMCwzMjQwMCwyODgwMCwzMjQwMCwyODgwMCwzMjQwMCwyODgwMCwzMjQwMCwyODgwMCwzMjQwMCwyODgwMCwzMjQwMCwyODgwMCwzMjQwMCwyODgwMCwzMjQwMCwyODgwMCwzMjQwMCwyODgwMCwzMjQwMCwyODgwMCwzMjQwMCwyODgwMCwzMjQwMCwyODgwMCwzMjQwMCwyODgwMCwzMjQwMCwyODgwMCwzMjQwMCwyODgwMF19LCJBc2lhL1RlaHJhbiI6e3RpbWU6Wy0xNzA0MTUzNjAwLC0xMDkwNDU0NDAwLDIyNzgzMzIwMCwyNDYyNGU0LDI1OTYzMmUzLDI3MTEyNjgwMCwyNzk1OTA0MDAsMjk2NjExMjAwLDMwNjU0NzIwMCwzMjI0NDQ4MDAsMzM4NTE1MjAwLDY3MzIyODgwMCw2ODU0OTc2MDAsNzAxMjIyNDAwLDcxNzEyZTQsNzMyNzU4NDAwLDc0ODY1NmUzLDc2NDI5NDQwMCw3ODAxOTJlMyw3OTU4MzA0MDAsODExNzI4ZTMsODI3MzY2NDAwLDg0MzI2NGUzLDg1ODk4ODgwMCw4NzQ4ODY0MDAsODkwNTI0ODAwLDkwNjQyMjQwMCw5MjIwNjA4MDAsOTM3OTU4NDAwLDk1MzU5NjgwMCw5Njk0OTQ0MDAsOTg1MjE5MjAwLDEwMDExMTY4MDAsMTAxNjc1NTIwMCwxMDMyNjUyODAwLDEwNDgyOTEyMDAsMTA2NDE4ODgwMCwxMDc5ODI3MjAwLDEwOTU3MjQ4MDAsMTExMTQ0OTYwMCwxMTI3MzQ3MjAwLDEyMDYwNTc2MDAsMTIyMTk1NTIwMCwxMjM3NjhlNCwxMjUzNTc3NjAwLDEyNjkyMTZlMywxMjg1MTEzNjAwLDEzMDA3NTJlMywxMzE2NjQ5NjAwLDEzMzIyODhlMywxMzQ4MTg1NjAwLDEzNjM5MTA0MDAsMTM3OTgwOGUzLDEzOTU0NDY0MDAsMTQxMTM0NGUzLDE0MjY5ODI0MDAsMTQ0Mjg4ZTQsMTQ1ODUxODQwMCwxNDc0NDE2ZTMsMTQ5MDE0MDgwMCwxNTA2MDM4NDAwLDE1MjE2NzY4MDAsMTUzNzU3NDQwMCwxNTUzMjEyODAwLDE1NjkxMTA0MDAsMTU4NDc0ODgwMCwxNjAwNjQ2NDAwLDE2MTYzNzEyMDAsMTYzMjI2ODgwMCwxNjQ3OTA3MjAwLDE2NjM4MDQ4MDAsMTkyNTAwNDYwMF0sb2Zmc2V0OlsxMjM0NCwxMjM0NCwxMjYwMCwxNjIwMCwxNDQwMCwxOGUzLDE0NDAwLDEyNjAwLDE2MjAwLDEyNjAwLDE2MjAwLDEyNjAwLDE2MjAwLDEyNjAwLDE2MjAwLDEyNjAwLDE2MjAwLDEyNjAwLDE2MjAwLDEyNjAwLDE2MjAwLDEyNjAwLDE2MjAwLDEyNjAwLDE2MjAwLDEyNjAwLDE2MjAwLDEyNjAwLDE2MjAwLDEyNjAwLDE2MjAwLDEyNjAwLDE2MjAwLDEyNjAwLDE2MjAwLDEyNjAwLDE2MjAwLDEyNjAwLDE2MjAwLDEyNjAwLDE2MjAwLDEyNjAwLDE2MjAwLDEyNjAwLDE2MjAwLDEyNjAwLDE2MjAwLDEyNjAwLDE2MjAwLDEyNjAwLDE2MjAwLDEyNjAwLDE2MjAwLDEyNjAwLDE2MjAwLDEyNjAwLDE2MjAwLDEyNjAwLDE2MjAwLDEyNjAwLDE2MjAwLDEyNjAwLDE2MjAwLDEyNjAwLDE2MjAwLDEyNjAwLDE2MjAwLDEyNjAwLDE2MjAwLDEyNjAwLDE2MjAwLDEyNjAwXX0sIkFzaWEvVG9reW8iOnt0aW1lOlstMjU4NzY3ODg2MSwtNjgzNzY5NjAwLC02NzIyNzQ4MDAsLTY1NDczOTIwMCwtNjQwODI1MjAwLC02MjAyNjU2MDAsLTYwOTM3NTYwMCwtNTg4ODE2ZTMsLTU3NzkyNmUzLDE5MjUwMjQ0MDBdLG9mZnNldDpbMzM1MzksMzI0MDAsMzZlMywzMjQwMCwzNmUzLDMyNDAwLDM2ZTMsMzI0MDAsMzZlMywzMjQwMF19LCJBc2lhL1lhbmdvbiI6e3RpbWU6Wy0yODQwMTQwODAwLC0xNTc3OTIzMjAwLC04NzMyNDQ4MDAsLTc3ODM3NzYwMCwxOTI1MDE1NDAwXSxvZmZzZXQ6WzIzMDg3LDIzMDg3LDIzNDAwLDMyNDAwLDIzNDAwXX0sIkF0bGFudGljL0F6b3JlcyI6ewp0aW1lOlstMjcxMzkxMDQwMCwtMTgzMDM4MzY3MiwtMTY4OTU1NTYwMCwtMTY3Nzc5OGUzLC0xNjY3NDMzNjAwLC0xNjQ3NzM0NDAwLC0xNjM1ODk3NjAwLC0xNjE2MTk4NDAwLC0xNjA0MzYxNjAwLC0xNTg0NjYyNDAwLC0xNTcyNzM5MjAwLC0xNTUzMDRlNCwtMTU0MTIwMzIwMCwtMTUyMTUwNGUzLC0xNDQyNDUxNjAwLC0xNDI3NjczNjAwLC0xMzc5MjkzMjAwLC0xMzY0Nzc0NDAwLC0xMzQ4NDQ4NDAwLC0xMzMzMzI0ODAwLC0xMzE2Mzk0ZTMsLTEzMDEyNzA0MDAsLTEyODQzMzk2MDAsLTEyNjk4MjA4MDAsLTEyMjE0NDA0MDAsLTEyMDY5MjE2MDAsLTExOTEyMDA0MDAsLTExNzU0NzJlMywtMTEyNzY5NjQwMCwtMTExMTk2OGUzLC0xMDk2ODUxNjAwLC0xMDgwNTE4NDAwLC0xMDYzNTg3NjAwLC0xMDQ5MDY4ODAwLC0xMDMzMzQ3NjAwLC0xMDE3NjE5MjAwLC0xMDAyNTAyODAwLC05ODYxNjk2MDAsLTk2OTIzODgwMCwtOTUwNDg2NDAwLC05NDIwMjI4MDAsLTkyMjQ5MjgwMCwtOTA2OTQ0NDAwLC04OTExMjk2MDAsLTg3NzMwOTIwMCwtODczNjgwNDAwLC04NjRlNiwtODU3OTUyZTMsLTg0NTg1OTYwMCwtODQyODM1NjAwLC04MzEzNDA4MDAsLTgyNTg5NzYwMCwtODE0NDFlNCwtODEwNzgxMjAwLC03OTk4OTEyMDAsLTc5NDQ0OGUzLC03ODI5NjA0MDAsLTc3OTMzMTYwMCwtNzY4NDQxNjAwLC03NjI5OTg0MDAsLTc0OTA5MTYwMCwtNzMzMzYzMjAwLC03MTc2MzEyMDAsLTcwMTkwMjgwMCwtNjg2MTgxNjAwLC02NzA0NTMyMDAsLTY1NDczMmUzLC02MzkwMDM2MDAsLTYyMzI4MjQwMCwtNjA3NTU0ZTMsLTU5MTgzMjgwMCwtNTc1NDk5NjAwLC01NTk3Nzg0MDAsLTU0NDA1ZTQsLTUyODMyODgwMCwtNTEyNjAwNDAwLC00OTY4NzkyMDAsLTQ4MTE1MDgwMCwtNDY1NDI5NjAwLC00NDk3MDEyMDAsLTQzMzk4ZTQsLTQxNzY0NjgwMCwtNDAxOTI1NjAwLC0zODYxOTcyMDAsLTM3MDQ3NmUzLC0zNTQ3NDc2MDAsLTMzOTAyNjQwMCwtMzIzMjk4ZTMsLTMwNzU3NjgwMCwtMjkxODQ4NDAwLC0yNzYxMjcyMDAsLTI2MDM5ODgwMCwtMjQ0Njc3NjAwLC0yMjgzNDQ0MDAsLTIxMjYyMzIwMCwtMTk2ODk0ODAwLC0xODExNzM2MDAsLTE2NTQ0NTIwMCwtMTQ5NzI0ZTMsLTEzMzk5NTYwMCwtMTE4Mjc0NDAwLC0xMDI1NDZlMywzODYxMjE2MDAsNDAxODVlNCw0MTc1NzEyMDAsNDMzMjk5NjAwLDQ0OTAyMDgwMCw0NjUzNTRlMyw0ODEwNzUyMDAsNDk2ODAzNjAwLDUxMjUyNDgwMCw1MjgyNTMyMDAsNTQzOTc0NDAwLDU1OTcwMjgwMCw1NzU0MjRlMyw1OTExNTI0MDAsNjA2ODczNjAwLDYyMjYwMmUzLDYzODMyMzIwMCw2NTQ2NTY0MDAsNjcwMzc3NjAwLDY4NjEwNmUzLDcwMTgyNzIwMCw3MTc1NTU2MDAsNzI1NDE4ZTMsNzMzMjgwNDAwLDc0MDI4MjQwMCw3NDkwMDUyMDAsNzY0NzI2NDAwLDc4MDQ1NDgwMCw3OTYxNzZlMyw4MTE5MDQ0MDAsODI4MjMwNDAwLDg0NjM3OGUzLDg1OTY4ZTQsODc3ODI3NjAwLDg5MTEyOTYwMCw5MDkyNzcyMDAsOTIyNTc5MjAwLDk0MTMzMTYwMCw5NTQwMjg4MDAsOTcyNzgxMjAwLDk4NTQ3ODQwMCwxMDA0MjMwODAwLDEwMTc1MzI4MDAsMTAzNTY4MDQwMCwxMDQ4OTgyNDAwLDEwNjcxM2U0LDEwODA0MzJlMywxMDk5MTg0NDAwLDExMTE4ODE2MDAsMTEzMDYzNGUzLDExNDMzMzEyMDAsMTE2MjA4MzYwMCwxMTc0NzgwODAwLDExOTM1MzMyMDAsMTIwNjgzNTIwMCwxMjI0OTgyODAwLDEyMzgyODQ4MDAsMTI1NjQzMjQwMCwxMjY5NzM0NDAwLDEyODg0ODY4MDAsMTMwMTE4NGUzLDEzMTk5MzY0MDAsMTMzMjYzMzYwMCwxMzUxMzg2ZTMsMTM2NDY4OGUzLDEzODI4MzU2MDAsMTM5NjEzNzYwMCwxNDE0Mjg1MjAwLDE0Mjc1ODcyMDAsMTQ0NTczNDgwMCwxNDU5MDM2ODAwLDE0Nzc3ODkyMDAsMTQ5MDQ4NjQwMCwxNTA5MjM4ODAwLDE1MjE5MzZlMywxNTQwNjg4NDAwLDE1NTM5OTA0MDAsMTU3MjEzOGUzLDE1ODU0NGU0LDE2MDM1ODc2MDAsMTYxNjg4OTYwMCwxNjM1NjQyZTMsMTY0ODMzOTIwMCwxNjY3MDkxNjAwLDE2Nzk3ODg4MDAsMTY5ODU0MTIwMCwxNzExODQzMjAwLDE3Mjk5OTA4MDAsMTc0MzI5MjgwMCwxNzYxNDQwNDAwLDE3NzQ3NDI0MDAsMTc5Mjg5ZTQsMTgwNjE5MmUzLDE4MjQ5NDQ0MDAsMTgzNzY0MTYwMCwxODU2Mzk0ZTMsMTg2OTA5MTIwMCwxODg3ODQzNjAwLDE5MDExNDU2MDAsMTkxOTI5MzIwMCwxOTMyNTk1MjAwXSwKb2Zmc2V0OlstNjE2MCwtNjg3MiwtNzIwMCwtMzYwMCwtNzIwMCwtMzYwMCwtNzIwMCwtMzYwMCwtNzIwMCwtMzYwMCwtNzIwMCwtMzYwMCwtNzIwMCwtMzYwMCwtNzIwMCwtMzYwMCwtNzIwMCwtMzYwMCwtNzIwMCwtMzYwMCwtNzIwMCwtMzYwMCwtNzIwMCwtMzYwMCwtNzIwMCwtMzYwMCwtNzIwMCwtMzYwMCwtNzIwMCwtMzYwMCwtNzIwMCwtMzYwMCwtNzIwMCwtMzYwMCwtNzIwMCwtMzYwMCwtNzIwMCwtMzYwMCwtNzIwMCwtMzYwMCwtNzIwMCwtMzYwMCwtNzIwMCwtMzYwMCwtNzIwMCwtMzYwMCwwLC0zNjAwLC03MjAwLC0zNjAwLDAsLTM2MDAsLTcyMDAsLTM2MDAsMCwtMzYwMCwtNzIwMCwtMzYwMCwwLC0zNjAwLC03MjAwLC0zNjAwLC03MjAwLC0zNjAwLC03MjAwLC0zNjAwLC03MjAwLC0zNjAwLC03MjAwLC0zNjAwLC03MjAwLC0zNjAwLC03MjAwLC0zNjAwLC03MjAwLC0zNjAwLC03MjAwLC0zNjAwLC03MjAwLC0zNjAwLC03MjAwLC0zNjAwLC03MjAwLC0zNjAwLC03MjAwLC0zNjAwLC03MjAwLC0zNjAwLC03MjAwLC0zNjAwLC03MjAwLC0zNjAwLC03MjAwLC0zNjAwLC03MjAwLC0zNjAwLC03MjAwLC0zNjAwLC03MjAwLC0zNjAwLC03MjAwLC0zNjAwLC0zNjAwLDAsLTM2MDAsMCwtMzYwMCwwLC0zNjAwLDAsLTM2MDAsMCwtMzYwMCwwLC0zNjAwLDAsLTM2MDAsMCwtMzYwMCwwLC0zNjAwLDAsLTM2MDAsMCwtMzYwMCwwLDM2MDAsMCwtMzYwMCwwLC0zNjAwLDAsLTM2MDAsMCwtMzYwMCwwLC0zNjAwLDAsLTM2MDAsMCwtMzYwMCwwLC0zNjAwLDAsLTM2MDAsMCwtMzYwMCwwLC0zNjAwLDAsLTM2MDAsMCwtMzYwMCwwLC0zNjAwLDAsLTM2MDAsMCwtMzYwMCwwLC0zNjAwLDAsLTM2MDAsMCwtMzYwMCwwLC0zNjAwLDAsLTM2MDAsMCwtMzYwMCwwLC0zNjAwLDAsLTM2MDAsMCwtMzYwMCwwLC0zNjAwLDAsLTM2MDAsMCwtMzYwMCwwLC0zNjAwLDAsLTM2MDAsMCwtMzYwMCwwLC0zNjAwLDAsLTM2MDAsMCwtMzYwMCwwLC0zNjAwLDAsLTM2MDAsMCwtMzYwMCwwLC0zNjAwXX0sIkF0bGFudGljL1JleWtqYXZpayI6e3RpbWU6Wy0xOTU2NjE0NDAwLC0xNjY4MjE0ODAwLC0xNjQ3MjEyNDAwLC0xNjM2Njc4ODAwLC0xNjEzNDNlNCwtMTYwNTE0MjgwMCwtMTU4MTg5NGUzLC0xNTM5NTY1MjAwLC0xNTMxMzVlNCwtOTY4MDI5MjAwLC05NTIyOTM2MDAsLTk0MjAxMmUzLC05MjAyMzkyMDAsLTkwOTk2MTIwMCwtODg4Nzg5NjAwLC04Nzc5MDY4MDAsLTg1Nzk0NDgwMCwtODQ2NDU3MjAwLC04MjY0OTUyMDAsLTgxNTAwNzYwMCwtNzk1MDQ1NjAwLC03ODM1NThlMywtNzYyOTkxMjAwLC03NTIxMDg0MDAsLTczMTU0MTYwMCwtNzE3NjM0ODAwLC03MDAwOTJlMywtNjg2MTg1MjAwLC02Njg2NDI0MDAsLTY1NDczNTYwMCwtNjM2NTg4ZTMsLTYyMzI4NmUzLC02MDU3NDMyMDAsLTU5MTgzNjQwMCwtNTczNjg4ODAwLC01NTk3ODJlMywtNTQyMjM5MjAwLC01MjgzMzI0MDAsLTUxMDc4OTYwMCwtNDk2ODgyODAwLC00NzkzNGU0LC00NjU0MzMyMDAsLTQ0Nzg5MDQwMCwtNDMzOTgzNjAwLC00MTU4MzZlMywtNDAxOTI5MjAwLC0zODQzODY0MDAsLTM3MDQ3OTYwMCwtMzUyOTM2ODAwLC0zMzkwM2U0LC0zMjE0ODcyMDAsLTMwNzU4MDQwMCwtMjkwMDM3NjAwLC0yNzYxMzA4MDAsLTI1ODU4OGUzLC0yNDQ2ODEyMDAsLTIyNjUzMzYwMCwtMjEyNjI2ODAwLC0xOTUwODRlMywtMTgxMTc3MjAwLC0xNjM2MzQ0MDAsLTE0OTcyNzYwMCwtMTMyMTg0ODAwLC0xMTgyNzhlMywtMTAwNzM1MjAwLC04NjgyODQwMCwtNjg2ODA4MDAsLTU0Nzc0ZTMsMTkyNDk5MmUzXSxvZmZzZXQ6Wy01MjgwLC0zNjAwLDAsLTM2MDAsMCwtMzYwMCwwLC0zNjAwLDAsLTM2MDAsMCwtMzYwMCwwLC0zNjAwLDAsLTM2MDAsMCwtMzYwMCwwLC0zNjAwLDAsLTM2MDAsMCwtMzYwMCwwLC0zNjAwLDAsLTM2MDAsMCwtMzYwMCwwLC0zNjAwLDAsLTM2MDAsMCwtMzYwMCwwLC0zNjAwLDAsLTM2MDAsMCwtMzYwMCwwLC0zNjAwLDAsLTM2MDAsMCwtMzYwMCwwLC0zNjAwLDAsLTM2MDAsMCwtMzYwMCwwLC0zNjAwLDAsLTM2MDAsMCwtMzYwMCwwLC0zNjAwLDAsLTM2MDAsMCwtMzYwMCwwLC0zNjAwLDBdfSwiQXVzdHJhbGlhL0FDVCI6ewp0aW1lOlstMjM2NDA3NjgwMCwtMTY3MjUyNGUzLC0xNjY1MzQ5MjAwLC04ODM2MDU2MDAsLTg3NjA4NTIwMCwtODYwMzY0ZTMsLTg0NDYzNTYwMCwtODI4MzA5NjAwLC04MTMxODZlMyw1NzcyMjQwMCw2ODAwNzYwMCw4OTE3MmUzLDEwMDA2MmUzLDEyMDYyMTYwMCwxMzE1MTE2MDAsMTUyMDcxMjAwLDE2Mjk2MTIwMCwxODM1MjA4MDAsMTk1MDE1NjAwLDIxNTU3NTIwMCwyMjY0NjUyMDAsMjQ3MDI0ODAwLDI1NzkxNDgwMCwyNzg0NzQ0MDAsMjg5MzY0NDAwLDMwOTkyNGUzLDMyMDgxNGUzLDM0MTM3MzYwMCwzNTIyNjM2MDAsMzcyODIzMjAwLDM4NjczNzIwMCw0MDQ4Nzc2MDAsNDE1NzY3NjAwLDQzNjMyNzIwMCw0NDcyMTcyMDAsNDY3Nzc2ODAwLDQ3ODY2NjgwMCw0OTkyMjY0MDAsNTExMzI2ZTMsNTMwMDcxMjAwLDU0Mjc3NTYwMCw1NjIxMjU2MDAsNTc0ODNlNCw1OTQxOGU0LDYwNjI3OTYwMCw2MjU2Mjk2MDAsNjM2NTE5NjAwLDY1NzA3OTIwMCw2Njc5NjkyMDAsNjg4NTI4ODAwLDY5OTQxODgwMCw3MTk5Nzg0MDAsNzMxNDczMjAwLDc1MjAzMjgwMCw3NjI5MjI4MDAsNzgzNDgyNDAwLDc5NDM3MjQwMCw4MTQ5MzJlMyw4MjgyNDEyMDAsODQ2MzgxNjAwLDg1OTY5MDgwMCw4Nzc4MzEyMDAsODkxMTQwNDAwLDkwOTI4MDgwMCw5MjI1OWU0LDk0MTMzNTIwMCw5NTQwMzk2MDAsOTY3MzQxNjAwLDk4NTQ4OTIwMCwxMDA0MjM0NDAwLDEwMTc1NDM2MDAsMTAzNTY4NGUzLDEwNDg5OTMyMDAsMTA2NzEzMzYwMCwxMDgwNDQyODAwLDEwOTkxODhlMywxMTExODkyNDAwLDExMzA2Mzc2MDAsMTE0Mzk0NjgwMCwxMTYyMDg3MjAwLDExNzQ3OTE2MDAsMTE5MzUzNjgwMCwxMjA3NDUwODAwLDEyMjMxNzJlMywxMjM4OTAwNDAwLDEyNTQ2MjE2MDAsMTI3MDM1ZTQsMTI4NjA3MTIwMCwxMzAxNzk5NjAwLDEzMTc1MjA4MDAsMTMzMzI0OTIwMCwxMzQ5NTc1MjAwLDEzNjUzMDM2MDAsMTM4MTAyNDgwMCwxMzk2NzUzMjAwLDE0MTI0NzQ0MDAsMTQyODIwMjgwMCwxNDQzOTI0ZTMsMTQ1OTY1MjQwMCwxNDc1MzczNjAwLDE0OTExMDJlMywxNTA2ODIzMjAwLDE1MjI1NTE2MDAsMTUzODg3NzYwMCwxNTU0NjA2ZTMsMTU3MDMyNzIwMCwxNTg2MDU1NjAwLDE2MDE3NzY4MDAsMTYxNzUwNTIwMCwxNjMzMjI2NDAwLDE2NDg5NTQ4MDAsMTY2NDY3NmUzLDE2ODA0MDQ0MDAsMTY5NjEyNTYwMCwxNzEyNDU4ODAwLDE3MjgxOGU0LDE3NDM5MDg0MDAsMTc1OTYyOTYwMCwxNzc1MzU4ZTMsMTc5MTA3OTIwMCwxODA2ODA3NjAwLDE4MjI1Mjg4MDAsMTgzODI1NzIwMCwxODUzOTc4NDAwLDE4Njk3MDY4MDAsMTg4NjAzMjgwMCwxOTAxNzYxMjAwLDE5MTc0ODI0MDAsMTkzMzIxMDgwMF0sb2Zmc2V0OlszNjI5MiwzNmUzLDM5NjAwLDM2ZTMsMzk2MDAsMzZlMywzOTYwMCwzNmUzLDM5NjAwLDM2ZTMsMzk2MDAsMzZlMywzOTYwMCwzNmUzLDM5NjAwLDM2ZTMsMzk2MDAsMzZlMywzOTYwMCwzNmUzLDM5NjAwLDM2ZTMsMzk2MDAsMzZlMywzOTYwMCwzNmUzLDM5NjAwLDM2ZTMsMzk2MDAsMzZlMywzOTYwMCwzNmUzLDM5NjAwLDM2ZTMsMzk2MDAsMzZlMywzOTYwMCwzNmUzLDM5NjAwLDM2ZTMsMzk2MDAsMzZlMywzOTYwMCwzNmUzLDM5NjAwLDM2ZTMsMzk2MDAsMzZlMywzOTYwMCwzNmUzLDM5NjAwLDM2ZTMsMzk2MDAsMzZlMywzOTYwMCwzNmUzLDM5NjAwLDM2ZTMsMzk2MDAsMzZlMywzOTYwMCwzNmUzLDM5NjAwLDM2ZTMsMzk2MDAsMzZlMywzOTYwMCwzNmUzLDM5NjAwLDM2ZTMsMzk2MDAsMzZlMywzOTYwMCwzNmUzLDM5NjAwLDM2ZTMsMzk2MDAsMzZlMywzOTYwMCwzNmUzLDM5NjAwLDM2ZTMsMzk2MDAsMzZlMywzOTYwMCwzNmUzLDM5NjAwLDM2ZTMsMzk2MDAsMzZlMywzOTYwMCwzNmUzLDM5NjAwLDM2ZTMsMzk2MDAsMzZlMywzOTYwMCwzNmUzLDM5NjAwLDM2ZTMsMzk2MDAsMzZlMywzOTYwMCwzNmUzLDM5NjAwLDM2ZTMsMzk2MDAsMzZlMywzOTYwMCwzNmUzLDM5NjAwLDM2ZTMsMzk2MDAsMzZlMywzOTYwMCwzNmUzLDM5NjAwLDM2ZTMsMzk2MDAsMzZlMywzOTYwMCwzNmUzLDM5NjAwLDM2ZTMsMzk2MDAsMzZlMywzOTYwMCwzNmUzLDM5NjAwXX0sIkF1c3RyYWxpYS9BZGVsYWlkZSI6ewp0aW1lOlstMjM2NDA3NjgwMCwtMjIzMDE1NjgwMCwtMTY3MjUyNGUzLC0xNjY1MzQ5MjAwLC04ODM2MDU2MDAsLTg3NjA4NTIwMCwtODYwMzY0ZTMsLTg0NDYzNTYwMCwtODI4MzA5NjAwLC04MTMxODZlMyw1NzcyMjQwMCw2ODAwNzYwMCw4OTE3MmUzLDEwMDA2MmUzLDEyMDYyMTYwMCwxMzE1MTE2MDAsMTUyMDcxMjAwLDE2Mjk2MTIwMCwxODM1MjA4MDAsMTk1MDE1NjAwLDIxNTU3NTIwMCwyMjY0NjUyMDAsMjQ3MDI0ODAwLDI1NzkxNDgwMCwyNzg0NzQ0MDAsMjg5MzY0NDAwLDMwOTkyNGUzLDMyMDgxNGUzLDM0MTM3MzYwMCwzNTIyNjM2MDAsMzcyODIzMjAwLDM4NDMxOGUzLDQwNDg3NzYwMCw0MTU3Njc2MDAsNDM2MzI3MjAwLDQ0NzIxNzIwMCw0Njc3NzY4MDAsNDc4NjY2ODAwLDQ5OTIyNjQwMCw1MTEzMjZlMyw1MzAwNzEyMDAsNTQyNzc1NjAwLDU2MjEyNTYwMCw1NzQ4M2U0LDU5NDE4ZTQsNjA2Mjc5NjAwLDYyNTYyOTYwMCw2Mzc3MjkyMDAsNjU3MDc5MjAwLDY2Nzk2OTIwMCw2ODg1Mjg4MDAsNzAxMjMzMjAwLDcxOTk3ODQwMCw3MzE0NzMyMDAsNzUyMDMyODAwLDc2NDEzMjQwMCw3ODM0ODI0MDAsNzk2MTg2ODAwLDgxNDkzMmUzLDgyODI0MTIwMCw4NDYzODE2MDAsODU5NjkwODAwLDg3NzgzMTIwMCw4OTExNDA0MDAsOTA5MjgwODAwLDkyMjU5ZTQsOTQxMzM1MjAwLDk1NDAzOTYwMCw5NzI3ODQ4MDAsOTg1NDg5MjAwLDEwMDQyMzQ0MDAsMTAxNzU0MzYwMCwxMDM1Njg0ZTMsMTA0ODk5MzIwMCwxMDY3MTMzNjAwLDEwODA0NDI4MDAsMTA5OTE4OGUzLDExMTE4OTI0MDAsMTEzMDYzNzYwMCwxMTQzOTQ2ODAwLDExNjIwODcyMDAsMTE3NDc5MTYwMCwxMTkzNTM2ODAwLDEyMDc0NTA4MDAsMTIyMzE3MmUzLDEyMzg5MDA0MDAsMTI1NDYyMTYwMCwxMjcwMzVlNCwxMjg2MDcxMjAwLDEzMDE3OTk2MDAsMTMxNzUyMDgwMCwxMzMzMjQ5MjAwLDEzNDk1NzUyMDAsMTM2NTMwMzYwMCwxMzgxMDI0ODAwLDEzOTY3NTMyMDAsMTQxMjQ3NDQwMCwxNDI4MjAyODAwLDE0NDM5MjRlMywxNDU5NjUyNDAwLDE0NzUzNzM2MDAsMTQ5MTEwMmUzLDE1MDY4MjMyMDAsMTUyMjU1MTYwMCwxNTM4ODc3NjAwLDE1NTQ2MDZlMywxNTcwMzI3MjAwLDE1ODYwNTU2MDAsMTYwMTc3NjgwMCwxNjE3NTA1MjAwLDE2MzMyMjY0MDAsMTY0ODk1NDgwMCwxNjY0Njc2ZTMsMTY4MDQwNDQwMCwxNjk2MTI1NjAwLDE3MTI0NTg4MDAsMTcyODE4ZTQsMTc0MzkwODQwMCwxNzU5NjI5NjAwLDE3NzUzNThlMywxNzkxMDc5MjAwLDE4MDY4MDc2MDAsMTgyMjUyODgwMCwxODM4MjU3MjAwLDE4NTM5Nzg0MDAsMTg2OTcwNjgwMCwxODg2MDMyODAwLDE5MDE3NjEyMDAsMTkxNzQ4MjQwMCwxOTMzMjEwODAwXSxvZmZzZXQ6WzMzMjYwLDMyNDAwLDM0MjAwLDM3ODAwLDM0MjAwLDM3ODAwLDM0MjAwLDM3ODAwLDM0MjAwLDM3ODAwLDM0MjAwLDM3ODAwLDM0MjAwLDM3ODAwLDM0MjAwLDM3ODAwLDM0MjAwLDM3ODAwLDM0MjAwLDM3ODAwLDM0MjAwLDM3ODAwLDM0MjAwLDM3ODAwLDM0MjAwLDM3ODAwLDM0MjAwLDM3ODAwLDM0MjAwLDM3ODAwLDM0MjAwLDM3ODAwLDM0MjAwLDM3ODAwLDM0MjAwLDM3ODAwLDM0MjAwLDM3ODAwLDM0MjAwLDM3ODAwLDM0MjAwLDM3ODAwLDM0MjAwLDM3ODAwLDM0MjAwLDM3ODAwLDM0MjAwLDM3ODAwLDM0MjAwLDM3ODAwLDM0MjAwLDM3ODAwLDM0MjAwLDM3ODAwLDM0MjAwLDM3ODAwLDM0MjAwLDM3ODAwLDM0MjAwLDM3ODAwLDM0MjAwLDM3ODAwLDM0MjAwLDM3ODAwLDM0MjAwLDM3ODAwLDM0MjAwLDM3ODAwLDM0MjAwLDM3ODAwLDM0MjAwLDM3ODAwLDM0MjAwLDM3ODAwLDM0MjAwLDM3ODAwLDM0MjAwLDM3ODAwLDM0MjAwLDM3ODAwLDM0MjAwLDM3ODAwLDM0MjAwLDM3ODAwLDM0MjAwLDM3ODAwLDM0MjAwLDM3ODAwLDM0MjAwLDM3ODAwLDM0MjAwLDM3ODAwLDM0MjAwLDM3ODAwLDM0MjAwLDM3ODAwLDM0MjAwLDM3ODAwLDM0MjAwLDM3ODAwLDM0MjAwLDM3ODAwLDM0MjAwLDM3ODAwLDM0MjAwLDM3ODAwLDM0MjAwLDM3ODAwLDM0MjAwLDM3ODAwLDM0MjAwLDM3ODAwLDM0MjAwLDM3ODAwLDM0MjAwLDM3ODAwLDM0MjAwLDM3ODAwLDM0MjAwLDM3ODAwLDM0MjAwLDM3ODAwLDM0MjAwLDM3ODAwLDM0MjAwLDM3ODAwLDM0MjAwLDM3ODAwLDM0MjAwLDM3ODAwXX0sIkF1c3RyYWxpYS9CcmlzYmFuZSI6e3RpbWU6Wy0yMzY2NzU1MjAwLC0xNjcyNTI0ZTMsLTE2NjUzNDkyMDAsLTg4MzYwNTYwMCwtODc2MDg1MjAwLC04NjAzNjRlMywtODQ0NjM1NjAwLC04MjgzMDk2MDAsLTgxMzE4NmUzLDU3NzIyNDAwLDY4MDA3NjAwLDYyNTYyOTYwMCw2MzY1MTk2MDAsNjU3MDc5MjAwLDY2Nzk2OTIwMCw2ODg1Mjg4MDAsNjk5NDE4ODAwLDE5MjUwMjhlM10sb2Zmc2V0OlszNjcyOCwzNmUzLDM5NjAwLDM2ZTMsMzk2MDAsMzZlMywzOTYwMCwzNmUzLDM5NjAwLDM2ZTMsMzk2MDAsMzZlMywzOTYwMCwzNmUzLDM5NjAwLDM2ZTMsMzk2MDAsMzZlM119LCJBdXN0cmFsaWEvUGVydGgiOnt0aW1lOlstMjMzNzg5NzYwMCwtMTY3MjUyNGUzLC0xNjY1MzQ5MjAwLC04ODM2MDU2MDAsLTg3NjA4NTIwMCwtODYwMzY0ZTMsLTg0NDYzNTYwMCwxNTIwNzEyMDAsMTYyOTYxMjAwLDQzNjMyNzIwMCw0NDcyMTcyMDAsNjkwMzQzMjAwLDY5OTQxODgwMCwxMTY1MTExMjAwLDExNzQ3OTE2MDAsMTE5MzUzNjgwMCwxMjA2ODQ2ZTMsMTIyNDk4NjQwMCwxMjM4Mjk1NjAwLDE5MjUwMjA4MDBdLG9mZnNldDpbMjc4MDQsMjg4MDAsMzI0MDAsMjg4MDAsMzI0MDAsMjg4MDAsMzI0MDAsMjg4MDAsMzI0MDAsMjg4MDAsMzI0MDAsMjg4MDAsMzI0MDAsMjg4MDAsMzI0MDAsMjg4MDAsMzI0MDAsMjg4MDAsMzI0MDAsMjg4MDBdfSwiQXVzdHJhbGlhL1N5ZG5leSI6ewp0aW1lOlstMjM2NDA3NjgwMCwtMTY3MjUyNGUzLC0xNjY1MzQ5MjAwLC04ODM2MDU2MDAsLTg3NjA4NTIwMCwtODYwMzY0ZTMsLTg0NDYzNTYwMCwtODI4MzA5NjAwLC04MTMxODZlMyw1NzcyMjQwMCw2ODAwNzYwMCw4OTE3MmUzLDEwMDA2MmUzLDEyMDYyMTYwMCwxMzE1MTE2MDAsMTUyMDcxMjAwLDE2Mjk2MTIwMCwxODM1MjA4MDAsMTk1MDE1NjAwLDIxNTU3NTIwMCwyMjY0NjUyMDAsMjQ3MDI0ODAwLDI1NzkxNDgwMCwyNzg0NzQ0MDAsMjg5MzY0NDAwLDMwOTkyNGUzLDMyMDgxNGUzLDM0MTM3MzYwMCwzNTIyNjM2MDAsMzcyODIzMjAwLDM4NjczNzIwMCw0MDQ4Nzc2MDAsNDE1NzY3NjAwLDQzNjMyNzIwMCw0NDcyMTcyMDAsNDY3Nzc2ODAwLDQ3ODY2NjgwMCw0OTkyMjY0MDAsNTExMzI2ZTMsNTMwMDcxMjAwLDU0Mjc3NTYwMCw1NjIxMjU2MDAsNTc0ODNlNCw1OTQxOGU0LDYwNjI3OTYwMCw2MjU2Mjk2MDAsNjM2NTE5NjAwLDY1NzA3OTIwMCw2Njc5NjkyMDAsNjg4NTI4ODAwLDY5OTQxODgwMCw3MTk5Nzg0MDAsNzMxNDczMjAwLDc1MjAzMjgwMCw3NjI5MjI4MDAsNzgzNDgyNDAwLDc5NDM3MjQwMCw4MTQ5MzJlMyw4MjgyNDEyMDAsODQ2MzgxNjAwLDg1OTY5MDgwMCw4Nzc4MzEyMDAsODkxMTQwNDAwLDkwOTI4MDgwMCw5MjI1OWU0LDk0MTMzNTIwMCw5NTQwMzk2MDAsOTY3MzQxNjAwLDk4NTQ4OTIwMCwxMDA0MjM0NDAwLDEwMTc1NDM2MDAsMTAzNTY4NGUzLDEwNDg5OTMyMDAsMTA2NzEzMzYwMCwxMDgwNDQyODAwLDEwOTkxODhlMywxMTExODkyNDAwLDExMzA2Mzc2MDAsMTE0Mzk0NjgwMCwxMTYyMDg3MjAwLDExNzQ3OTE2MDAsMTE5MzUzNjgwMCwxMjA3NDUwODAwLDEyMjMxNzJlMywxMjM4OTAwNDAwLDEyNTQ2MjE2MDAsMTI3MDM1ZTQsMTI4NjA3MTIwMCwxMzAxNzk5NjAwLDEzMTc1MjA4MDAsMTMzMzI0OTIwMCwxMzQ5NTc1MjAwLDEzNjUzMDM2MDAsMTM4MTAyNDgwMCwxMzk2NzUzMjAwLDE0MTI0NzQ0MDAsMTQyODIwMjgwMCwxNDQzOTI0ZTMsMTQ1OTY1MjQwMCwxNDc1MzczNjAwLDE0OTExMDJlMywxNTA2ODIzMjAwLDE1MjI1NTE2MDAsMTUzODg3NzYwMCwxNTU0NjA2ZTMsMTU3MDMyNzIwMCwxNTg2MDU1NjAwLDE2MDE3NzY4MDAsMTYxNzUwNTIwMCwxNjMzMjI2NDAwLDE2NDg5NTQ4MDAsMTY2NDY3NmUzLDE2ODA0MDQ0MDAsMTY5NjEyNTYwMCwxNzEyNDU4ODAwLDE3MjgxOGU0LDE3NDM5MDg0MDAsMTc1OTYyOTYwMCwxNzc1MzU4ZTMsMTc5MTA3OTIwMCwxODA2ODA3NjAwLDE4MjI1Mjg4MDAsMTgzODI1NzIwMCwxODUzOTc4NDAwLDE4Njk3MDY4MDAsMTg4NjAzMjgwMCwxOTAxNzYxMjAwLDE5MTc0ODI0MDAsMTkzMzIxMDgwMF0sb2Zmc2V0OlszNjI5MiwzNmUzLDM5NjAwLDM2ZTMsMzk2MDAsMzZlMywzOTYwMCwzNmUzLDM5NjAwLDM2ZTMsMzk2MDAsMzZlMywzOTYwMCwzNmUzLDM5NjAwLDM2ZTMsMzk2MDAsMzZlMywzOTYwMCwzNmUzLDM5NjAwLDM2ZTMsMzk2MDAsMzZlMywzOTYwMCwzNmUzLDM5NjAwLDM2ZTMsMzk2MDAsMzZlMywzOTYwMCwzNmUzLDM5NjAwLDM2ZTMsMzk2MDAsMzZlMywzOTYwMCwzNmUzLDM5NjAwLDM2ZTMsMzk2MDAsMzZlMywzOTYwMCwzNmUzLDM5NjAwLDM2ZTMsMzk2MDAsMzZlMywzOTYwMCwzNmUzLDM5NjAwLDM2ZTMsMzk2MDAsMzZlMywzOTYwMCwzNmUzLDM5NjAwLDM2ZTMsMzk2MDAsMzZlMywzOTYwMCwzNmUzLDM5NjAwLDM2ZTMsMzk2MDAsMzZlMywzOTYwMCwzNmUzLDM5NjAwLDM2ZTMsMzk2MDAsMzZlMywzOTYwMCwzNmUzLDM5NjAwLDM2ZTMsMzk2MDAsMzZlMywzOTYwMCwzNmUzLDM5NjAwLDM2ZTMsMzk2MDAsMzZlMywzOTYwMCwzNmUzLDM5NjAwLDM2ZTMsMzk2MDAsMzZlMywzOTYwMCwzNmUzLDM5NjAwLDM2ZTMsMzk2MDAsMzZlMywzOTYwMCwzNmUzLDM5NjAwLDM2ZTMsMzk2MDAsMzZlMywzOTYwMCwzNmUzLDM5NjAwLDM2ZTMsMzk2MDAsMzZlMywzOTYwMCwzNmUzLDM5NjAwLDM2ZTMsMzk2MDAsMzZlMywzOTYwMCwzNmUzLDM5NjAwLDM2ZTMsMzk2MDAsMzZlMywzOTYwMCwzNmUzLDM5NjAwLDM2ZTMsMzk2MDAsMzZlMywzOTYwMCwzNmUzLDM5NjAwXX0sIkV1cm9wZS9BbXN0ZXJkYW0iOnsKdGltZTpbLTQyNjAyMTEyMDAsLTE2OTM2OTkyMDAsLTE2ODA0OGU0LC0xNjYzNDUyZTMsLTE2NTAxNDI4MDAsLTE2MzMyMTJlMywtMTYxNzQ4MzYwMCwtMTYwMTE1NzYwMCwtMTU4NjAzNGUzLC0xNTY5NzA4ZTMsLTE1NTQ1ODQ0MDAsLTE1MzgyNTg0MDAsLTE1MjMxMzQ4MDAsLTE1MDc1ZTUsLTE0OTA1NjJlMywtMTQ3MDE3NTIwMCwtMTQ1OTExMjQwMCwtMTQ0Mzk5NmUzLC0xNDI3NjYyODAwLC0xNDA2NjcxMjAwLC0xMzk2MjEzMjAwLC0xMzc2OTQ5NjAwLC0xMzY0NzYzNjAwLC0xMzQ1NDEzNjAwLC0xMzMzMzE0ZTMsLTEzMTM3OTEyMDAsLTEzMDEyNTk2MDAsLTEyODIyNTUyMDAsLTEyNjk4MWU0LC0xMjUwNzE5MjAwLC0xMjM4MzYwNDAwLC0xMjE5MTgzMjAwLC0xMjA2OTEwODAwLC0xMTg2OTU2ZTMsLTExNzU0NjEyMDAsLTExNTYwMjQ4MDAsLTExNDM0MDY4MDAsLTExMjQ0ODg4MDAsLTExMTE5NTcyMDAsLTEwOTI5NTI4MDAsLTEwODA1MDc2MDAsLTEwNjEzMzA0MDAsLTEwNDkwNThlMywtMTAyOTE4OTYwMCwtMTAyNTc0MDgwMCwtMTAxNzYwODQwMCwtOTk4MjU4NDAwLC05ODYxNTg4MDAsLTk2NjcyMjQwMCwtOTU0MTA0NDAwLC05MzUwMjA4MDAsLTg1NzI1ZTQsLTg0NDU1MjgwMCwtODI4MjE5NjAwLC04MTI0OTg0MDAsLTc5Njc3ZTQsLTc4MTA0ODgwMCwtNzY2NjE2NDAwLDIyODg4MDgwMCwyNDQwMDQ0MDAsMjYwMzMwNDAwLDI3NjA1ODgwMCwyOTE3OGU0LDMwNzUwODQwMCwzMjM4MzQ0MDAsMzM4OTU4ZTMsMzU0Njc5MjAwLDM3MDQwNzYwMCwzODYxMjg4MDAsNDAxODU3MjAwLDQxNzU3ODQwMCw0MzMzMDY4MDAsNDQ5MDI4ZTMsNDY1MzYxMjAwLDQ4MTA4MjQwMCw0OTY4MTA4MDAsNTEyNTMyZTMsNTI4MjYwNDAwLDU0Mzk4MTYwMCw1NTk3MWU0LDU3NTQzMTIwMCw1OTExNTk2MDAsNjA2ODgwODAwLDYyMjYwOTIwMCw2MzgzMzA0MDAsNjU0NjYzNjAwLDY3MDM4NDgwMCw2ODYxMTMyMDAsNzAxODM0NDAwLDcxNzU2MjgwMCw3MzMyODRlMyw3NDkwMTI0MDAsNzY0NzMzNjAwLDc4MDQ2MmUzLDc5NjE4MzIwMCw4MTE5MTE2MDAsODI4MjM3NjAwLDg0NjM4NTIwMCw4NTk2ODcyMDAsODc3ODM0ODAwLDg5MTEzNjgwMCw5MDkyODQ0MDAsOTIyNTg2NDAwLDk0MTMzODgwMCw5NTQwMzZlMyw5NzI3ODg0MDAsOTg1NDg1NjAwLDEwMDQyMzhlMywxMDE3NTRlNCwxMDM1Njg3NjAwLDEwNDg5ODk2MDAsMTA2NzEzNzIwMCwxMDgwNDM5MjAwLDEwOTkxOTE2MDAsMTExMTg4ODgwMCwxMTMwNjQxMjAwLDExNDMzMzg0MDAsMTE2MjA5MDgwMCwxMTc0Nzg4ZTMsMTE5MzU0MDQwMCwxMjA2ODQyNDAwLDEyMjQ5OWU0LDEyMzgyOTJlMywxMjU2NDM5NjAwLDEyNjk3NDE2MDAsMTI4ODQ5NGUzLDEzMDExOTEyMDAsMTMxOTk0MzYwMCwxMzMyNjQwODAwLDEzNTEzOTMyMDAsMTM2NDY5NTIwMCwxMzgyODQyODAwLDEzOTYxNDQ4MDAsMTQxNDI5MjQwMCwxNDI3NTk0NDAwLDE0NDU3NDJlMywxNDU5MDQ0ZTMsMTQ3Nzc5NjQwMCwxNDkwNDkzNjAwLDE1MDkyNDZlMywxNTIxOTQzMjAwLDE1NDA2OTU2MDAsMTU1Mzk5NzYwMCwxNTcyMTQ1MjAwLDE1ODU0NDcyMDAsMTYwMzU5NDgwMCwxNjE2ODk2ODAwLDE2MzU2NDkyMDAsMTY0ODM0NjQwMCwxNjY3MDk4ODAwLDE2Nzk3OTZlMywxNjk4NTQ4NDAwLDE3MTE4NTA0MDAsMTcyOTk5OGUzLDE3NDMzZTUsMTc2MTQ0NzYwMCwxNzc0NzQ5NjAwLDE3OTI4OTcyMDAsMTgwNjE5OTIwMCwxODI0OTUxNjAwLDE4Mzc2NDg4MDAsMTg1NjQwMTIwMCwxODY5MDk4NDAwLDE4ODc4NTA4MDAsMTkwMTE1MjgwMCwxOTE5MzAwNDAwLDE5MzI2MDI0MDBdLG9mZnNldDpbMTE3MiwxMTcyLDQ3NzIsMTE3Miw0NzcyLDExNzIsNDc3MiwxMTcyLDQ3NzIsMTE3Miw0NzcyLDExNzIsNDc3MiwxMTcyLDQ3NzIsMTE3Miw0NzcyLDExNzIsNDc3MiwxMTcyLDQ3NzIsMTE3Miw0NzcyLDExNzIsNDc3MiwxMTcyLDQ3NzIsMTE3Miw0NzcyLDExNzIsNDc3MiwxMTcyLDQ3NzIsMTE3Miw0NzcyLDExNzIsNDc3MiwxMTcyLDQ3NzIsMTE3Miw0NzcyLDExNzIsNDc3MiwxMTcyLDQ3NzIsNDgwMCwxMjAwLDQ4MDAsMTIwMCw0ODAwLDEyMDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwXX0sIkV1cm9wZS9BdGhlbnMiOnsKdGltZTpbLTIzNDQ2MzY4MDAsLTE2ODYwOTU5NDAsLTExODI5ODg4MDAsLTExNzgxNTA0MDAsLTkwNjg1NDQwMCwtOTA0ODY3MjAwLC04NTcyNWU0LC04NDQ0NzM2MDAsLTgyODIzMDQwMCwtODEyNDE5MjAwLC01NTIzNTUyMDAsLTU0MTY0MTYwMCwxNjY0OTI4MDAsMTg2MTk1NjAwLDE5ODAzNmUzLDIxMzc2NDQwMCwyMjg4ODA4MDAsMjQ0MDkwODAwLDI2MDMzMDQwMCwyNzU0NTc2MDAsMjkxODA1MjAwLDMwNzQxODQwMCwzMjMzOTUyMDAsMzM4OTQ3MjAwLDM1NDY4MjgwMCwzNzA0MTEyMDAsMzg2MTMyNDAwLDQwMTg2MDgwMCw0MTc1ODJlMyw0MzMzMTA0MDAsNDQ5MDMxNjAwLDQ2NTM2NDgwMCw0ODEwODZlMyw0OTY4MTQ0MDAsNTEyNTM1NjAwLDUyODI2NGUzLDU0Mzk4NTIwMCw1NTk3MTM2MDAsNTc1NDM0ODAwLDU5MTE2MzIwMCw2MDY4ODQ0MDAsNjIyNjEyODAwLDYzODMzNGUzLDY1NDY2NzIwMCw2NzAzODg0MDAsNjg2MTE2ODAwLDcwMTgzOGUzLDcxNzU2NjQwMCw3MzMyODc2MDAsNzQ5MDE2ZTMsNzY0NzM3MjAwLDc4MDQ2NTYwMCw3OTYxODY4MDAsODExOTE1MjAwLDgyODI0MTIwMCw4NDYzODg4MDAsODU5NjkwODAwLDg3NzgzODQwMCw4OTExNDA0MDAsOTA5Mjg4ZTMsOTIyNTllNCw5NDEzNDI0MDAsOTU0MDM5NjAwLDk3Mjc5MmUzLDk4NTQ4OTIwMCwxMDA0MjQxNjAwLDEwMTc1NDM2MDAsMTAzNTY5MTIwMCwxMDQ4OTkzMjAwLDEwNjcxNDA4MDAsMTA4MDQ0MjgwMCwxMDk5MTk1MjAwLDExMTE4OTI0MDAsMTEzMDY0NDgwMCwxMTQzMzQyZTMsMTE2MjA5NDQwMCwxMTc0NzkxNjAwLDExOTM1NDRlMywxMjA2ODQ2ZTMsMTIyNDk5MzYwMCwxMjM4Mjk1NjAwLDEyNTY0NDMyMDAsMTI2OTc0NTIwMCwxMjg4NDk3NjAwLDEzMDExOTQ4MDAsMTMxOTk0NzIwMCwxMzMyNjQ0NDAwLDEzNTEzOTY4MDAsMTM2NDY5ODgwMCwxMzgyODQ2NDAwLDEzOTYxNDg0MDAsMTQxNDI5NmUzLDE0Mjc1OThlMywxNDQ1NzQ1NjAwLDE0NTkwNDc2MDAsMTQ3NzhlNSwxNDkwNDk3MjAwLDE1MDkyNDk2MDAsMTUyMTk0NjgwMCwxNTQwNjk5MjAwLDE1NTQwMDEyMDAsMTU3MjE0ODgwMCwxNTg1NDUwODAwLDE2MDM1OTg0MDAsMTYxNjkwMDQwMCwxNjM1NjUyODAwLDE2NDgzNWU0LDE2NjcxMDI0MDAsMTY3OTc5OTYwMCwxNjk4NTUyZTMsMTcxMTg1NGUzLDE3MzAwMDE2MDAsMTc0MzMwMzYwMCwxNzYxNDUxMjAwLDE3NzQ3NTMyMDAsMTc5MjkwMDgwMCwxODA2MjAyODAwLDE4MjQ5NTUyMDAsMTgzNzY1MjQwMCwxODU2NDA0ODAwLDE4NjkxMDJlMywxODg3ODU0NDAwLDE5MDExNTY0MDAsMTkxOTMwNGUzLDE5MzI2MDZlM10sb2Zmc2V0Ols1NjkyLDU2OTIsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMF19LCJFdXJvcGUvQmVsZ3JhZGUiOnsKdGltZTpbLTI3MTM5MTA0MDAsLTkwNTgyMTIwMCwtODU3MjVlNCwtODQ0NTUyODAwLC04MjgyMTk2MDAsLTgxMjQ5ODQwMCwtNzk2NzdlNCwtNzc3OTM4NDAwLC03NjY2MTY0MDAsNDE3NTc4NDAwLDQzMzMwNjgwMCw0NDkwMjhlMyw0NjUzNjEyMDAsNDgxMDgyNDAwLDQ5NjgxMDgwMCw1MTI1MzJlMyw1MjgyNjA0MDAsNTQzOTgxNjAwLDU1OTcxZTQsNTc1NDMxMjAwLDU5MTE1OTYwMCw2MDY4ODA4MDAsNjIyNjA5MjAwLDYzODMzMDQwMCw2NTQ2NjM2MDAsNjcwMzg0ODAwLDY4NjExMzIwMCw3MDE4MzQ0MDAsNzE3NTYyODAwLDczMzI4NGUzLDc0OTAxMjQwMCw3NjQ3MzM2MDAsNzgwNDYyZTMsNzk2MTgzMjAwLDgxMTkxMTYwMCw4MjgyMzc2MDAsODQ2Mzg1MjAwLDg1OTY4NzIwMCw4Nzc4MzQ4MDAsODkxMTM2ODAwLDkwOTI4NDQwMCw5MjI1ODY0MDAsOTQxMzM4ODAwLDk1NDAzNmUzLDk3Mjc4ODQwMCw5ODU0ODU2MDAsMTAwNDIzOGUzLDEwMTc1NGU0LDEwMzU2ODc2MDAsMTA0ODk4OTYwMCwxMDY3MTM3MjAwLDEwODA0MzkyMDAsMTA5OTE5MTYwMCwxMTExODg4ODAwLDExMzA2NDEyMDAsMTE0MzMzODQwMCwxMTYyMDkwODAwLDExNzQ3ODhlMywxMTkzNTQwNDAwLDEyMDY4NDI0MDAsMTIyNDk5ZTQsMTIzODI5MmUzLDEyNTY0Mzk2MDAsMTI2OTc0MTYwMCwxMjg4NDk0ZTMsMTMwMTE5MTIwMCwxMzE5OTQzNjAwLDEzMzI2NDA4MDAsMTM1MTM5MzIwMCwxMzY0Njk1MjAwLDEzODI4NDI4MDAsMTM5NjE0NDgwMCwxNDE0MjkyNDAwLDE0Mjc1OTQ0MDAsMTQ0NTc0MmUzLDE0NTkwNDRlMywxNDc3Nzk2NDAwLDE0OTA0OTM2MDAsMTUwOTI0NmUzLDE1MjE5NDMyMDAsMTU0MDY5NTYwMCwxNTUzOTk3NjAwLDE1NzIxNDUyMDAsMTU4NTQ0NzIwMCwxNjAzNTk0ODAwLDE2MTY4OTY4MDAsMTYzNTY0OTIwMCwxNjQ4MzQ2NDAwLDE2NjcwOTg4MDAsMTY3OTc5NmUzLDE2OTg1NDg0MDAsMTcxMTg1MDQwMCwxNzI5OTk4ZTMsMTc0MzNlNSwxNzYxNDQ3NjAwLDE3NzQ3NDk2MDAsMTc5Mjg5NzIwMCwxODA2MTk5MjAwLDE4MjQ5NTE2MDAsMTgzNzY0ODgwMCwxODU2NDAxMjAwLDE4NjkwOTg0MDAsMTg4Nzg1MDgwMCwxOTAxMTUyODAwLDE5MTkzMDA0MDAsMTkzMjYwMjQwMF0sb2Zmc2V0Ols0OTIwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwXX0sIkV1cm9wZS9CZXJsaW4iOnt0aW1lOlstMjQyMjA1MTIwMCwtMTY5MzcwMjgwMCwtMTY4MDQ3NjQwMCwtMTY2MzQ1MmUzLC0xNjUwMTQyODAwLC0xNjMyMDAyNDAwLC0xNjE4NjkzMjAwLC05Mzg5MDE2MDAsLTg1NzI1ZTQsLTg0NDU1MjgwMCwtODI4MjE5NjAwLC04MTI0OTg0MDAsLTc5Njc3ZTQsLTc4MTA0ODgwMCwtNzc2NTU2ZTMsLTc2NTkyNTIwMCwtNzYxMTczMjAwLC03NDg0NzZlMywtNzMzMjY2ZTMsLTcxNzYyNzYwMCwtNzE0NjAzNjAwLC03MTAzN2U0LC03MDE5MDI4MDAsLTY4NDk3MmUzLC02NzA0NTMyMDAsLTY1NDEyNzIwMCwtNjM5MDAzNjAwLDMyMzgzNDQwMCwzMzg5NThlMywzNTQ2NzkyMDAsMzcwNDA3NjAwLDM4NjEyODgwMCw0MDE4NTcyMDAsNDE3NTc4NDAwLDQzMzMwNjgwMCw0NDkwMjhlMyw0NjUzNjEyMDAsNDgxMDgyNDAwLDQ5NjgxMDgwMCw1MTI1MzJlMyw1MjgyNjA0MDAsNTQzOTgxNjAwLDU1OTcxZTQsNTc1NDMxMjAwLDU5MTE1OTYwMCw2MDY4ODA4MDAsNjIyNjA5MjAwLDYzODMzMDQwMCw2NTQ2NjM2MDAsNjcwMzg0ODAwLDY4NjExMzIwMCw3MDE4MzQ0MDAsNzE3NTYyODAwLDczMzI4NGUzLDc0OTAxMjQwMCw3NjQ3MzM2MDAsNzgwNDYyZTMsNzk2MTgzMjAwLDgxMTkxMTYwMCw4MjgyMzc2MDAsODQ2Mzg1MjAwLDg1OTY4NzIwMCw4Nzc4MzQ4MDAsODkxMTM2ODAwLDkwOTI4NDQwMCw5MjI1ODY0MDAsOTQxMzM4ODAwLDk1NDAzNmUzLDk3Mjc4ODQwMCw5ODU0ODU2MDAsMTAwNDIzOGUzLDEwMTc1NGU0LDEwMzU2ODc2MDAsMTA0ODk4OTYwMCwxMDY3MTM3MjAwLDEwODA0MzkyMDAsMTA5OTE5MTYwMCwxMTExODg4ODAwLDExMzA2NDEyMDAsMTE0MzMzODQwMCwxMTYyMDkwODAwLDExNzQ3ODhlMywxMTkzNTQwNDAwLDEyMDY4NDI0MDAsMTIyNDk5ZTQsMTIzODI5MmUzLDEyNTY0Mzk2MDAsMTI2OTc0MTYwMCwxMjg4NDk0ZTMsMTMwMTE5MTIwMCwxMzE5OTQzNjAwLDEzMzI2NDA4MDAsMTM1MTM5MzIwMCwxMzY0Njk1MjAwLDEzODI4NDI4MDAsMTM5NjE0NDgwMCwxNDE0MjkyNDAwLDE0Mjc1OTQ0MDAsMTQ0NTc0MmUzLDE0NTkwNDRlMywxNDc3Nzk2NDAwLDE0OTA0OTM2MDAsMTUwOTI0NmUzLDE1MjE5NDMyMDAsMTU0MDY5NTYwMCwxNTUzOTk3NjAwLDE1NzIxNDUyMDAsMTU4NTQ0NzIwMCwxNjAzNTk0ODAwLDE2MTY4OTY4MDAsMTYzNTY0OTIwMCwxNjQ4MzQ2NDAwLDE2NjcwOTg4MDAsMTY3OTc5NmUzLDE2OTg1NDg0MDAsMTcxMTg1MDQwMCwxNzI5OTk4ZTMsMTc0MzNlNSwxNzYxNDQ3NjAwLDE3NzQ3NDk2MDAsMTc5Mjg5NzIwMCwxODA2MTk5MjAwLDE4MjQ5NTE2MDAsMTgzNzY0ODgwMCwxODU2NDAxMjAwLDE4NjkwOTg0MDAsMTg4Nzg1MDgwMCwxOTAxMTUyODAwLDE5MTkzMDA0MDAsMTkzMjYwMjQwMF0sCm9mZnNldDpbMzIwOCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMTA4MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDEwODAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwXX0sIkV1cm9wZS9CcmF0aXNsYXZhIjp7dGltZTpbLTM3ODY4MjU2MDAsLTI0NjkzOTg0MDAsLTE2OTM3MDI4MDAsLTE2ODA0NzY0MDAsLTE2NjM0NTJlMywtMTY1MDE0MjgwMCwtMTYzMjAwMjQwMCwtMTYxODY5MzIwMCwtOTM4OTAxNjAwLC04NTcyNWU0LC04NDQ1NTI4MDAsLTgyODIxOTYwMCwtODEyNDk4NDAwLC03OTY3N2U0LC03ODEwNDg4MDAsLTc2NTMyMDQwMCwtNzQ2NTc1MjAwLC03MzMzNTI0MDAsLTcyODUxNGUzLC03MjEyNmU0LC03MTY0MjE2MDAsLTcwMTkwMjgwMCwtNjg0OTcyZTMsLTY3MDQ1MzIwMCwtNjU0MjEzNjAwLC02MzkwMDM2MDAsMjkxNzhlNCwzMDc1MDg0MDAsMzIzODM0NDAwLDMzODk1OGUzLDM1NDY3OTIwMCwzNzA0MDc2MDAsMzg2MTI4ODAwLDQwMTg1NzIwMCw0MTc1Nzg0MDAsNDMzMzA2ODAwLDQ0OTAyOGUzLDQ2NTM2MTIwMCw0ODEwODI0MDAsNDk2ODEwODAwLDUxMjUzMmUzLDUyODI2MDQwMCw1NDM5ODE2MDAsNTU5NzFlNCw1NzU0MzEyMDAsNTkxMTU5NjAwLDYwNjg4MDgwMCw2MjI2MDkyMDAsNjM4MzMwNDAwLDY1NDY2MzYwMCw2NzAzODQ4MDAsNjg2MTEzMjAwLDcwMTgzNDQwMCw3MTc1NjI4MDAsNzMzMjg0ZTMsNzQ5MDEyNDAwLDc2NDczMzYwMCw3ODA0NjJlMyw3OTYxODMyMDAsODExOTExNjAwLDgyODIzNzYwMCw4NDYzODUyMDAsODU5Njg3MjAwLDg3NzgzNDgwMCw4OTExMzY4MDAsOTA5Mjg0NDAwLDkyMjU4NjQwMCw5NDEzMzg4MDAsOTU0MDM2ZTMsOTcyNzg4NDAwLDk4NTQ4NTYwMCwxMDA0MjM4ZTMsMTAxNzU0ZTQsMTAzNTY4NzYwMCwxMDQ4OTg5NjAwLDEwNjcxMzcyMDAsMTA4MDQzOTIwMCwxMDk5MTkxNjAwLDExMTE4ODg4MDAsMTEzMDY0MTIwMCwxMTQzMzM4NDAwLDExNjIwOTA4MDAsMTE3NDc4OGUzLDExOTM1NDA0MDAsMTIwNjg0MjQwMCwxMjI0OTllNCwxMjM4MjkyZTMsMTI1NjQzOTYwMCwxMjY5NzQxNjAwLDEyODg0OTRlMywxMzAxMTkxMjAwLDEzMTk5NDM2MDAsMTMzMjY0MDgwMCwxMzUxMzkzMjAwLDEzNjQ2OTUyMDAsMTM4Mjg0MjgwMCwxMzk2MTQ0ODAwLDE0MTQyOTI0MDAsMTQyNzU5NDQwMCwxNDQ1NzQyZTMsMTQ1OTA0NGUzLDE0Nzc3OTY0MDAsMTQ5MDQ5MzYwMCwxNTA5MjQ2ZTMsMTUyMTk0MzIwMCwxNTQwNjk1NjAwLDE1NTM5OTc2MDAsMTU3MjE0NTIwMCwxNTg1NDQ3MjAwLDE2MDM1OTQ4MDAsMTYxNjg5NjgwMCwxNjM1NjQ5MjAwLDE2NDgzNDY0MDAsMTY2NzA5ODgwMCwxNjc5Nzk2ZTMsMTY5ODU0ODQwMCwxNzExODUwNDAwLDE3Mjk5OThlMywxNzQzM2U1LDE3NjE0NDc2MDAsMTc3NDc0OTYwMCwxNzkyODk3MjAwLDE4MDYxOTkyMDAsMTgyNDk1MTYwMCwxODM3NjQ4ODAwLDE4NTY0MDEyMDAsMTg2OTA5ODQwMCwxODg3ODUwODAwLDE5MDExNTI4MDAsMTkxOTMwMDQwMCwxOTMyNjAyNDAwXSxvZmZzZXQ6WzM0NjQsMzQ2NCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMF19LCJFdXJvcGUvQnJ1c3NlbHMiOnsKdGltZTpbLTI4NDAxNDA4MDAsLTI0NTA5OTQxNTAsLTE3NDAzNTUyMDAsLTE2OTM2OTkyMDAsLTE2ODA0NzY0MDAsLTE2NjM0NTJlMywtMTY1MDE0MjgwMCwtMTYzMjAwMjQwMCwtMTYxODY5MzIwMCwtMTYxMzgyMjQwMCwtMTYwNDI3ODgwMCwtMTU4NTUyNjQwMCwtMTU3NDAzODgwMCwtMTU1MjI2MjQwMCwtMTUzOTk5NzIwMCwtMTUyMDU1MzYwMCwtMTUwNzUxMDgwMCwtMTQ5MDU3MjgwMCwtMTQ3MzY0MmUzLC0xNDU5MTIzMjAwLC0xNDQ0MDA2ODAwLC0xNDI3NjczNjAwLC0xNDExOTUyNDAwLC0xMzk2MjI0ZTMsLTEzNzkyOTMyMDAsLTEzNjQ3NzQ0MDAsLTEzNDg0NDg0MDAsLTEzMzMzMjQ4MDAsLTEzMTYzOTRlMywtMTMwMTI1OTYwMCwtMTI4NDMyODgwMCwtMTI2OTgxZTQsLTEyNTM0ODRlMywtMTIzODM2MDQwMCwtMTIyMTQyOTYwMCwtMTIwNjkxMDgwMCwtMTE5MTE4OTYwMCwtMTE3NTQ2MTIwMCwtMTE2MDM0NDgwMCwtMTE0MzQwNjgwMCwtMTEyNzY4NTYwMCwtMTExMTk1NzIwMCwtMTA5Njg0MDgwMCwtMTA4MDUwNzYwMCwtMTA2MzU3NjgwMCwtMTA0OTA1OGUzLC0xMDMzMzM2ODAwLC0xMDE3NjA4NDAwLC0xMDAyNDkyZTMsLTk4NjE1ODgwMCwtOTY5MjI4ZTMsLTk1MDQ3NTYwMCwtOTQyMDEyZTMsLTkzNDY2NDQwMCwtODU3MjVlNCwtODQ0NTUyODAwLC04MjgyMTk2MDAsLTgxMjQ5ODQwMCwtNzk4MDY2ZTMsLTc4MTA0ODgwMCwtNzY2NjE2NDAwLC03NDU0NTJlMywtNzMzMjY2ZTMsMjI4ODgwODAwLDI0NDAwNDQwMCwyNjAzMzA0MDAsMjc2MDU4ODAwLDI5MTc4ZTQsMzA3NTA4NDAwLDMyMzgzNDQwMCwzMzg5NThlMywzNTQ2NzkyMDAsMzcwNDA3NjAwLDM4NjEyODgwMCw0MDE4NTcyMDAsNDE3NTc4NDAwLDQzMzMwNjgwMCw0NDkwMjhlMyw0NjUzNjEyMDAsNDgxMDgyNDAwLDQ5NjgxMDgwMCw1MTI1MzJlMyw1MjgyNjA0MDAsNTQzOTgxNjAwLDU1OTcxZTQsNTc1NDMxMjAwLDU5MTE1OTYwMCw2MDY4ODA4MDAsNjIyNjA5MjAwLDYzODMzMDQwMCw2NTQ2NjM2MDAsNjcwMzg0ODAwLDY4NjExMzIwMCw3MDE4MzQ0MDAsNzE3NTYyODAwLDczMzI4NGUzLDc0OTAxMjQwMCw3NjQ3MzM2MDAsNzgwNDYyZTMsNzk2MTgzMjAwLDgxMTkxMTYwMCw4MjgyMzc2MDAsODQ2Mzg1MjAwLDg1OTY4NzIwMCw4Nzc4MzQ4MDAsODkxMTM2ODAwLDkwOTI4NDQwMCw5MjI1ODY0MDAsOTQxMzM4ODAwLDk1NDAzNmUzLDk3Mjc4ODQwMCw5ODU0ODU2MDAsMTAwNDIzOGUzLDEwMTc1NGU0LDEwMzU2ODc2MDAsMTA0ODk4OTYwMCwxMDY3MTM3MjAwLDEwODA0MzkyMDAsMTA5OTE5MTYwMCwxMTExODg4ODAwLDExMzA2NDEyMDAsMTE0MzMzODQwMCwxMTYyMDkwODAwLDExNzQ3ODhlMywxMTkzNTQwNDAwLDEyMDY4NDI0MDAsMTIyNDk5ZTQsMTIzODI5MmUzLDEyNTY0Mzk2MDAsMTI2OTc0MTYwMCwxMjg4NDk0ZTMsMTMwMTE5MTIwMCwxMzE5OTQzNjAwLDEzMzI2NDA4MDAsMTM1MTM5MzIwMCwxMzY0Njk1MjAwLDEzODI4NDI4MDAsMTM5NjE0NDgwMCwxNDE0MjkyNDAwLDE0Mjc1OTQ0MDAsMTQ0NTc0MmUzLDE0NTkwNDRlMywxNDc3Nzk2NDAwLDE0OTA0OTM2MDAsMTUwOTI0NmUzLDE1MjE5NDMyMDAsMTU0MDY5NTYwMCwxNTUzOTk3NjAwLDE1NzIxNDUyMDAsMTU4NTQ0NzIwMCwxNjAzNTk0ODAwLDE2MTY4OTY4MDAsMTYzNTY0OTIwMCwxNjQ4MzQ2NDAwLDE2NjcwOTg4MDAsMTY3OTc5NmUzLDE2OTg1NDg0MDAsMTcxMTg1MDQwMCwxNzI5OTk4ZTMsMTc0MzNlNSwxNzYxNDQ3NjAwLDE3NzQ3NDk2MDAsMTc5Mjg5NzIwMCwxODA2MTk5MjAwLDE4MjQ5NTE2MDAsMTgzNzY0ODgwMCwxODU2NDAxMjAwLDE4NjkwOTg0MDAsMTg4Nzg1MDgwMCwxOTAxMTUyODAwLDE5MTkzMDA0MDAsMTkzMjYwMjQwMF0sb2Zmc2V0OlsxMDUwLDEwNTAsMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDAsMzYwMCwwLDM2MDAsMCwzNjAwLDAsMzYwMCwwLDM2MDAsMCwzNjAwLDAsMzYwMCwwLDM2MDAsMCwzNjAwLDAsMzYwMCwwLDM2MDAsMCwzNjAwLDAsMzYwMCwwLDM2MDAsMCwzNjAwLDAsMzYwMCwwLDM2MDAsMCwzNjAwLDAsMzYwMCwwLDM2MDAsMCwzNjAwLDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwXX0sIkV1cm9wZS9CdWNoYXJlc3QiOnsKdGltZTpbLTI0NjkzOTg0MDAsLTEyMTMxNDI0MDAsLTExODcwNDk2MDAsLTExNzU0Njg0MDAsLTExNTk3NDcyMDAsLTExNDQwMTg4MDAsLTExMjc2OTI4MDAsLTExMTE5NjQ0MDAsLTEwOTYyNDMyMDAsLTEwODA1MTQ4MDAsLTEwNjQ3OTM2MDAsLTEwNDkwNjUyMDAsLTEwMzMzNDRlMywtMTAxNzYxNTYwMCwtMTAwMTg5NDQwMCwtOTg2MTY2ZTMsLTk3MDQ0NDgwMCwtOTU0NzE2NDAwLDI5NjYxMTIwMCwzMDc0OTc2MDAsMzIzODIzNjAwLDMzODk1MDgwMCwzNTQ2NzkyMDAsMzcwNDA3NjAwLDM4NjEyODgwMCw0MDE4NTcyMDAsNDE3NTc4NDAwLDQzMzMwNjgwMCw0NDkwMjhlMyw0NjUzNjEyMDAsNDgxMDgyNDAwLDQ5NjgxMDgwMCw1MTI1MzJlMyw1MjgyNjA0MDAsNTQzOTgxNjAwLDU1OTcxZTQsNTc1NDMxMjAwLDU5MTE1OTYwMCw2MDY4ODA4MDAsNjIyNjA5MjAwLDYzODMzMDQwMCw2NTQ2NjM2MDAsNjcwMzc3NjAwLDY4NjEwNmUzLDcwMTgyNzIwMCw3MTc1NTU2MDAsNzMzMjc2ODAwLDc0OTAwNTIwMCw3NjQ3MjY0MDAsNzgwNDUxMjAwLDc5NjE3NmUzLDgxMTkwMDgwMCw4MjgyMzA0MDAsODQ2Mzc0NDAwLDg1OTY5MDgwMCw4Nzc4Mzg0MDAsODkxMTQwNDAwLDkwOTI4OGUzLDkyMjU5ZTQsOTQxMzQyNDAwLDk1NDAzOTYwMCw5NzI3OTJlMyw5ODU0ODkyMDAsMTAwNDI0MTYwMCwxMDE3NTQzNjAwLDEwMzU2OTEyMDAsMTA0ODk5MzIwMCwxMDY3MTQwODAwLDEwODA0NDI4MDAsMTA5OTE5NTIwMCwxMTExODkyNDAwLDExMzA2NDQ4MDAsMTE0MzM0MmUzLDExNjIwOTQ0MDAsMTE3NDc5MTYwMCwxMTkzNTQ0ZTMsMTIwNjg0NmUzLDEyMjQ5OTM2MDAsMTIzODI5NTYwMCwxMjU2NDQzMjAwLDEyNjk3NDUyMDAsMTI4ODQ5NzYwMCwxMzAxMTk0ODAwLDEzMTk5NDcyMDAsMTMzMjY0NDQwMCwxMzUxMzk2ODAwLDEzNjQ2OTg4MDAsMTM4Mjg0NjQwMCwxMzk2MTQ4NDAwLDE0MTQyOTZlMywxNDI3NTk4ZTMsMTQ0NTc0NTYwMCwxNDU5MDQ3NjAwLDE0Nzc4ZTUsMTQ5MDQ5NzIwMCwxNTA5MjQ5NjAwLDE1MjE5NDY4MDAsMTU0MDY5OTIwMCwxNTU0MDAxMjAwLDE1NzIxNDg4MDAsMTU4NTQ1MDgwMCwxNjAzNTk4NDAwLDE2MTY5MDA0MDAsMTYzNTY1MjgwMCwxNjQ4MzVlNCwxNjY3MTAyNDAwLDE2Nzk3OTk2MDAsMTY5ODU1MmUzLDE3MTE4NTRlMywxNzMwMDAxNjAwLDE3NDMzMDM2MDAsMTc2MTQ1MTIwMCwxNzc0NzUzMjAwLDE3OTI5MDA4MDAsMTgwNjIwMjgwMCwxODI0OTU1MjAwLDE4Mzc2NTI0MDAsMTg1NjQwNDgwMCwxODY5MTAyZTMsMTg4Nzg1NDQwMCwxOTAxMTU2NDAwLDE5MTkzMDRlMywxOTMyNjA2ZTNdLG9mZnNldDpbNjI2NCw2MjY0LDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDBdfSwiRXVyb3BlL0J1ZGFwZXN0Ijp7CnRpbWU6Wy0yNDk4MjU2ZTMsLTE2OTM3MDI4MDAsLTE2ODA0NzY0MDAsLTE2NjM0NTJlMywtMTY1MDE0MjgwMCwtMTYzMjAwMjQwMCwtMTYxODY5MzIwMCwtMTYwMDQ2NjQwMCwtMTU4NzI0MzYwMCwtMTU2OTcwOGUzLC0xNTU1MTg5MjAwLC05MDY3NzE2MDAsLTg1NzI1ZTQsLTg0NDU1MjgwMCwtODI4MjE5NjAwLC04MTI0OTg0MDAsLTc5Njc3ZTQsLTc3ODQ2NzYwMCwtNzYyNjQ5MjAwLC03NDk2ODU2MDAsLTczMzI2OTYwMCwtNzE3NjMxMjAwLC03MDE5MDI4MDAsLTY4NjE4MTYwMCwtNjcwNDUzMjAwLC02NTQxMjcyMDAsLTYzOTAwMzYwMCwtNDkyNjUyODAwLC00ODExNjE2MDAsLTQ2MTE5NmUzLC00NDk3MDEyMDAsLTQyODUzNjgwMCwtNDE4MjUxNjAwLC0zOTcwODcyMDAsLTM4NjgwMmUzLDMyMzgyNzIwMCwzMzg5NTA4MDAsMzU0NjcyZTMsMzcwNDAwNDAwLDM4NjEyMTYwMCw0MDE4NWU0LDQxNzU3MTIwMCw0MzMyOTk2MDAsNDQ5MDI4ZTMsNDY1MzYxMjAwLDQ4MTA4MjQwMCw0OTY4MTA4MDAsNTEyNTMyZTMsNTI4MjYwNDAwLDU0Mzk4MTYwMCw1NTk3MWU0LDU3NTQzMTIwMCw1OTExNTk2MDAsNjA2ODgwODAwLDYyMjYwOTIwMCw2MzgzMzA0MDAsNjU0NjYzNjAwLDY3MDM4NDgwMCw2ODYxMTMyMDAsNzAxODM0NDAwLDcxNzU2MjgwMCw3MzMyODRlMyw3NDkwMTI0MDAsNzY0NzMzNjAwLDc4MDQ2MmUzLDc5NjE4MzIwMCw4MTE5MTE2MDAsODI4MjM3NjAwLDg0NjM4NTIwMCw4NTk2ODcyMDAsODc3ODM0ODAwLDg5MTEzNjgwMCw5MDkyODQ0MDAsOTIyNTg2NDAwLDk0MTMzODgwMCw5NTQwMzZlMyw5NzI3ODg0MDAsOTg1NDg1NjAwLDEwMDQyMzhlMywxMDE3NTRlNCwxMDM1Njg3NjAwLDEwNDg5ODk2MDAsMTA2NzEzNzIwMCwxMDgwNDM5MjAwLDEwOTkxOTE2MDAsMTExMTg4ODgwMCwxMTMwNjQxMjAwLDExNDMzMzg0MDAsMTE2MjA5MDgwMCwxMTc0Nzg4ZTMsMTE5MzU0MDQwMCwxMjA2ODQyNDAwLDEyMjQ5OWU0LDEyMzgyOTJlMywxMjU2NDM5NjAwLDEyNjk3NDE2MDAsMTI4ODQ5NGUzLDEzMDExOTEyMDAsMTMxOTk0MzYwMCwxMzMyNjQwODAwLDEzNTEzOTMyMDAsMTM2NDY5NTIwMCwxMzgyODQyODAwLDEzOTYxNDQ4MDAsMTQxNDI5MjQwMCwxNDI3NTk0NDAwLDE0NDU3NDJlMywxNDU5MDQ0ZTMsMTQ3Nzc5NjQwMCwxNDkwNDkzNjAwLDE1MDkyNDZlMywxNTIxOTQzMjAwLDE1NDA2OTU2MDAsMTU1Mzk5NzYwMCwxNTcyMTQ1MjAwLDE1ODU0NDcyMDAsMTYwMzU5NDgwMCwxNjE2ODk2ODAwLDE2MzU2NDkyMDAsMTY0ODM0NjQwMCwxNjY3MDk4ODAwLDE2Nzk3OTZlMywxNjk4NTQ4NDAwLDE3MTE4NTA0MDAsMTcyOTk5OGUzLDE3NDMzZTUsMTc2MTQ0NzYwMCwxNzc0NzQ5NjAwLDE3OTI4OTcyMDAsMTgwNjE5OTIwMCwxODI0OTUxNjAwLDE4Mzc2NDg4MDAsMTg1NjQwMTIwMCwxODY5MDk4NDAwLDE4ODc4NTA4MDAsMTkwMTE1MjgwMCwxOTE5MzAwNDAwLDE5MzI2MDI0MDBdLG9mZnNldDpbNDU4MCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDBdfSwiRXVyb3BlL0NvcGVuaGFnZW4iOnsKdGltZTpbLTI1MjQ1MjE2MDAsLTIzOTgyOTEyMDAsLTE2OTI0OTMyMDAsLTE2ODA0ODM2MDAsLTkzNTEwNzIwMCwtODU3MjVlNCwtODQ0NTUyODAwLC04MjgyMTk2MDAsLTgxMjQ5ODQwMCwtNzk2NzdlNCwtNzgxMDQ4ODAwLC03NjkzODEyMDAsLTc0NzAwNzIwMCwtNzM2Mzc2NDAwLC03MTUyMTJlMywtNzA2NzQxMjAwLC02ODMxNTc2MDAsLTY3NTI5MTYwMCwzMjM4MzQ0MDAsMzM4OTU4ZTMsMzU0Njc5MjAwLDM3MDQwNzYwMCwzODYxMjg4MDAsNDAxODU3MjAwLDQxNzU3ODQwMCw0MzMzMDY4MDAsNDQ5MDI4ZTMsNDY1MzYxMjAwLDQ4MTA4MjQwMCw0OTY4MTA4MDAsNTEyNTMyZTMsNTI4MjYwNDAwLDU0Mzk4MTYwMCw1NTk3MWU0LDU3NTQzMTIwMCw1OTExNTk2MDAsNjA2ODgwODAwLDYyMjYwOTIwMCw2MzgzMzA0MDAsNjU0NjYzNjAwLDY3MDM4NDgwMCw2ODYxMTMyMDAsNzAxODM0NDAwLDcxNzU2MjgwMCw3MzMyODRlMyw3NDkwMTI0MDAsNzY0NzMzNjAwLDc4MDQ2MmUzLDc5NjE4MzIwMCw4MTE5MTE2MDAsODI4MjM3NjAwLDg0NjM4NTIwMCw4NTk2ODcyMDAsODc3ODM0ODAwLDg5MTEzNjgwMCw5MDkyODQ0MDAsOTIyNTg2NDAwLDk0MTMzODgwMCw5NTQwMzZlMyw5NzI3ODg0MDAsOTg1NDg1NjAwLDEwMDQyMzhlMywxMDE3NTRlNCwxMDM1Njg3NjAwLDEwNDg5ODk2MDAsMTA2NzEzNzIwMCwxMDgwNDM5MjAwLDEwOTkxOTE2MDAsMTExMTg4ODgwMCwxMTMwNjQxMjAwLDExNDMzMzg0MDAsMTE2MjA5MDgwMCwxMTc0Nzg4ZTMsMTE5MzU0MDQwMCwxMjA2ODQyNDAwLDEyMjQ5OWU0LDEyMzgyOTJlMywxMjU2NDM5NjAwLDEyNjk3NDE2MDAsMTI4ODQ5NGUzLDEzMDExOTEyMDAsMTMxOTk0MzYwMCwxMzMyNjQwODAwLDEzNTEzOTMyMDAsMTM2NDY5NTIwMCwxMzgyODQyODAwLDEzOTYxNDQ4MDAsMTQxNDI5MjQwMCwxNDI3NTk0NDAwLDE0NDU3NDJlMywxNDU5MDQ0ZTMsMTQ3Nzc5NjQwMCwxNDkwNDkzNjAwLDE1MDkyNDZlMywxNTIxOTQzMjAwLDE1NDA2OTU2MDAsMTU1Mzk5NzYwMCwxNTcyMTQ1MjAwLDE1ODU0NDcyMDAsMTYwMzU5NDgwMCwxNjE2ODk2ODAwLDE2MzU2NDkyMDAsMTY0ODM0NjQwMCwxNjY3MDk4ODAwLDE2Nzk3OTZlMywxNjk4NTQ4NDAwLDE3MTE4NTA0MDAsMTcyOTk5OGUzLDE3NDMzZTUsMTc2MTQ0NzYwMCwxNzc0NzQ5NjAwLDE3OTI4OTcyMDAsMTgwNjE5OTIwMCwxODI0OTUxNjAwLDE4Mzc2NDg4MDAsMTg1NjQwMTIwMCwxODY5MDk4NDAwLDE4ODc4NTA4MDAsMTkwMTE1MjgwMCwxOTE5MzAwNDAwLDE5MzI2MDI0MDBdLG9mZnNldDpbMzAyMCwzMDIwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMF19LCJFdXJvcGUvRHVibGluIjp7CnRpbWU6Wy0yODIxNjUxMjAwLC0xNjkxOTY0ZTMsLTE2ODA0NjkyMDAsLTE2NjQxNDMyMDAsLTE2NTAxNDI4MDAsLTE2MzM5MDMyMDAsLTE2MTc0ODM2MDAsLTE2MDE4NDg4MDAsLTE1ODYwMzRlMywtMTU3MDM5OTIwMCwtMTU1MjE2NTIwMCwtMTUzODM0NDgwMCwtMTUyMjUzZTQsLTE1MDc1ZTUsLTE0OTA1NjJlMywtMTQ3MzYzMTIwMCwtMTQ2MDkyNjgwMCwtMTQ0Mjc4NjQwMCwtMTQyODg3MjQwMCwtMTQxMDczMmUzLC0xMzk2MjEzMjAwLC0xMzc5MjgyNDAwLC0xMzY0NzYzNjAwLC0xMzQ4NDM3NjAwLC0xMzMzMzE0ZTMsLTEzMTU3Nzg0MDAsLTEzMDEyNTk2MDAsLTEyODQzMjg4MDAsLTEyNjk4MWU0LC0xMjUzNDg0ZTMsLTEyMzgzNjA0MDAsLTEyMjE0Mjk2MDAsLTEyMDY5MTA4MDAsLTExODk5OGU0LC0xMTc1NDYxMjAwLC0xMTU5MTM1MjAwLC0xMTQzNDA2ODAwLC0xMTI2NDc2ZTMsLTExMTE5NTcyMDAsLTEwOTU2MzEyMDAsLTEwODA1MDc2MDAsLTEwNjM1NzY4MDAsLTEwNDkwNThlMywtMTAzMjEyNzIwMCwtMTAxNzYwODQwMCwtMTAwMTI4MjQwMCwtOTg2MTU4ODAwLC05NjkyMjhlMywtOTUwNDc1NjAwLC05NDIwMTJlMywtNzMzMzUyNDAwLC03MTk0NDU2MDAsLTY5OTQ4MzYwMCwtNjg0OTcyZTMsLTY2ODAzNGUzLC02NTQ3MzJlMywtNjM2NTg0NDAwLC02MjIwNzI4MDAsLTYwNTczOTYwMCwtNTkwNjIzMjAwLC01NzQyOWU0LC01NTg1Njg4MDAsLTU0MjIzNTYwMCwtNTI3MTE5MjAwLC01MTI2MDA0MDAsLTQ5NjI3NDQwMCwtNDgxMTUwODAwLC00NjQyMmU0LC00NDk3MDEyMDAsLTQzMjE2NTYwMCwtNDE3NjQ2ODAwLC00MDEzMjA4MDAsLTM4NjE5NzIwMCwtMzY5MjY2NDAwLC0zNTQ3NDc2MDAsLTMzNzgxNjgwMCwtMzIzMjk4ZTMsLTMwNjk3MmUzLC0yOTE4NDg0MDAsLTI3NjczMmUzLC0yNTc5Nzk2MDAsLTI0NTI4MjQwMCwtMjI2NTNlNCwtMjEzMjI4ZTMsLTE5NTA4MDQwMCwtMTgyMzgzMjAwLC0xNjM2MzA4MDAsLTE1MDkzMzYwMCwtMTMyMTgxMjAwLC0xMTk0ODRlMywtMTAwNzMxNjAwLC04ODAzNDQwMCwtNjg2NzcyMDAsLTU5MDA0ZTMsNTc3MjZlMyw2OTgxODQwMCw4OTE3NTYwMCwxMDEyNjhlMywxMjA2MjUyMDAsMTMyNzE3NjAwLDE1MjA3NDgwMCwxNjQxNjcyMDAsMTgzNTI0NDAwLDE5NjIyMTYwMCwyMTQ5NzRlMywyMjc2NzEyMDAsMjQ2NDIzNjAwLDI1OTEyMDgwMCwyNzg0NzhlMywyOTA1NzA0MDAsMzA5OTI3NjAwLDMyMjAyZTQsMzQxMzc3MjAwLDM1NDY3NTYwMCwzNzI4MjMyMDAsMzg2MTI1MjAwLDQwNDI3MjgwMCw0MTc1NzQ4MDAsNDM1NzIyNDAwLDQ0OTAyNDQwMCw0Njc3NzY4MDAsNDgxMDc4ODAwLDQ5OTIyNjQwMCw1MTI1Mjg0MDAsNTMwNjc2ZTMsNTQzOTc4ZTMsNTYyMTI1NjAwLDU3NTQyNzYwMCw1OTM1NzUyMDAsNjA2ODc3MjAwLDYyNTYyOTYwMCw2MzgzMjY4MDAsNjU3MDc5MjAwLDY3MDM4MTIwMCw2ODg1Mjg4MDAsNzAxODMwODAwLDcxOTk3ODQwMCw3MzMyODA0MDAsNzUxNDI4ZTMsNzY0NzNlNCw3ODI4Nzc2MDAsNzk2MTc5NjAwLDgxNDMyNzIwMCw4MjgyMzRlMyw4NDYzODE2MDAsODU5NjgzNjAwLDg3NzgzMTIwMCw4OTExMzMyMDAsOTA5MjgwODAwLDkyMjU4MjgwMCw5NDEzMzUyMDAsOTU0MDMyNDAwLDk3Mjc4NDgwMCw5ODU0ODJlMywxMDA0MjM0NDAwLDEwMTc1MzY0MDAsMTAzNTY4NGUzLDEwNDg5ODZlMywxMDY3MTMzNjAwLDEwODA0MzU2MDAsMTA5OTE4OGUzLDExMTE4ODUyMDAsMTEzMDYzNzYwMCwxMTQzMzM0ODAwLDExNjIwODcyMDAsMTE3NDc4NDQwMCwxMTkzNTM2ODAwLDEyMDY4Mzg4MDAsMTIyNDk4NjQwMCwxMjM4Mjg4NDAwLDEyNTY0MzZlMywxMjY5NzM4ZTMsMTI4ODQ5MDQwMCwxMzAxMTg3NjAwLDEzMTk5NGU0LDEzMzI2MzcyMDAsMTM1MTM4OTYwMCwxMzY0NjkxNjAwLDEzODI4MzkyMDAsMTM5NjE0MTIwMCwxNDE0Mjg4ODAwLDE0Mjc1OTA4MDAsMTQ0NTczODQwMCwxNDU5MDQwNDAwLDE0Nzc3OTI4MDAsMTQ5MDQ5ZTQsMTUwOTI0MjQwMCwxNTIxOTM5NjAwLDE1NDA2OTJlMywxNTUzOTk0ZTMsMTU3MjE0MTYwMCwxNTg1NDQzNjAwLDE2MDM1OTEyMDAsMTYxNjg5MzIwMCwxNjM1NjQ1NjAwLDE2NDgzNDI4MDAsMTY2NzA5NTIwMCwxNjc5NzkyNDAwLDE2OTg1NDQ4MDAsMTcxMTg0NjgwMCwxNzI5OTk0NDAwLDE3NDMyOTY0MDAsMTc2MTQ0NGUzLDE3NzQ3NDZlMywxNzkyODkzNjAwLDE4MDYxOTU2MDAsMTgyNDk0OGUzLDE4Mzc2NDUyMDAsMTg1NjM5NzYwMCwxODY5MDk0ODAwLDE4ODc4NDcyMDAsMTkwMTE0OTIwMCwxOTE5Mjk2ODAwLDE5MzI1OTg4MDBdLG9mZnNldDpbLTE1MjEsLTE1MjEsMjA3OSwwLDM2MDAsMCwzNjAwLDAsMzYwMCwwLDM2MDAsMCwzNjAwLDAsMzYwMCwwLDM2MDAsMCwzNjAwLDAsMzYwMCwwLDM2MDAsMCwzNjAwLDAsMzYwMCwwLDM2MDAsMCwzNjAwLDAsMzYwMCwwLDM2MDAsMCwzNjAwLDAsMzYwMCwwLDM2MDAsMCwzNjAwLDAsMzYwMCwwLDM2MDAsMCwzNjAwLDAsMzYwMCwwLDM2MDAsMCwzNjAwLDAsMzYwMCwwLDM2MDAsMCwzNjAwLDAsMzYwMCwwLDM2MDAsMCwzNjAwLDAsMzYwMCwwLDM2MDAsMCwzNjAwLDAsMzYwMCwwLDM2MDAsMCwzNjAwLDAsMzYwMCwwLDM2MDAsMCwzNjAwLDAsMzYwMCwwLDM2MDAsMCwzNjAwLDAsMzYwMCwwLDM2MDAsMCwzNjAwLDAsMzYwMCwwLDM2MDAsMCwzNjAwLDAsMzYwMCwwLDM2MDAsMCwzNjAwLDAsMzYwMCwwLDM2MDAsMCwzNjAwLDAsMzYwMCwwLDM2MDAsMCwzNjAwLDAsMzYwMCwwLDM2MDAsMCwzNjAwLDAsMzYwMCwwLDM2MDAsMCwzNjAwLDAsMzYwMCwwLDM2MDAsMCwzNjAwLDAsMzYwMCwwLDM2MDAsMCwzNjAwLDAsMzYwMCwwLDM2MDAsMCwzNjAwLDAsMzYwMCwwLDM2MDAsMCwzNjAwLDAsMzYwMCwwLDM2MDAsMCwzNjAwLDAsMzYwMCwwLDM2MDAsMCwzNjAwLDAsMzYwMCwwLDM2MDAsMCwzNjAwLDAsMzYwMCwwLDM2MDAsMCwzNjAwLDAsMzYwMCwwLDM2MDAsMCwzNjAwLDAsMzYwMCwwLDM2MDAsMCwzNjAwLDAsMzYwMCwwLDM2MDAsMCwzNjAwLDAsMzYwMCwwLDM2MDAsMCwzNjAwLDAsMzYwMCwwLDM2MDAsMCwzNjAwLDAsMzYwMCwwXX0sIkV1cm9wZS9IZWxzaW5raSI6ewp0aW1lOlstMjg5MDI1MjgwMCwtMTUzNTkzMjgwMCwtODc1NjY0ZTMsLTg1OTc2MjgwMCwzNTQ2NzkyMDAsMzcwNDA3NjAwLDM4NjEyODgwMCw0MDE4NTcyMDAsNDE3NTgyZTMsNDMzMzEwNDAwLDQ0OTAzMTYwMCw0NjUzNjQ4MDAsNDgxMDg2ZTMsNDk2ODE0NDAwLDUxMjUzNTYwMCw1MjgyNjRlMyw1NDM5ODUyMDAsNTU5NzEzNjAwLDU3NTQzNDgwMCw1OTExNjMyMDAsNjA2ODg0NDAwLDYyMjYxMjgwMCw2MzgzMzRlMyw2NTQ2NjcyMDAsNjcwMzg4NDAwLDY4NjExNjgwMCw3MDE4MzhlMyw3MTc1NjY0MDAsNzMzMjg3NjAwLDc0OTAxNmUzLDc2NDczNzIwMCw3ODA0NjU2MDAsNzk2MTg2ODAwLDgxMTkxNTIwMCw4MjgyNDEyMDAsODQ2Mzg4ODAwLDg1OTY5MDgwMCw4Nzc4Mzg0MDAsODkxMTQwNDAwLDkwOTI4OGUzLDkyMjU5ZTQsOTQxMzQyNDAwLDk1NDAzOTYwMCw5NzI3OTJlMyw5ODU0ODkyMDAsMTAwNDI0MTYwMCwxMDE3NTQzNjAwLDEwMzU2OTEyMDAsMTA0ODk5MzIwMCwxMDY3MTQwODAwLDEwODA0NDI4MDAsMTA5OTE5NTIwMCwxMTExODkyNDAwLDExMzA2NDQ4MDAsMTE0MzM0MmUzLDExNjIwOTQ0MDAsMTE3NDc5MTYwMCwxMTkzNTQ0ZTMsMTIwNjg0NmUzLDEyMjQ5OTM2MDAsMTIzODI5NTYwMCwxMjU2NDQzMjAwLDEyNjk3NDUyMDAsMTI4ODQ5NzYwMCwxMzAxMTk0ODAwLDEzMTk5NDcyMDAsMTMzMjY0NDQwMCwxMzUxMzk2ODAwLDEzNjQ2OTg4MDAsMTM4Mjg0NjQwMCwxMzk2MTQ4NDAwLDE0MTQyOTZlMywxNDI3NTk4ZTMsMTQ0NTc0NTYwMCwxNDU5MDQ3NjAwLDE0Nzc4ZTUsMTQ5MDQ5NzIwMCwxNTA5MjQ5NjAwLDE1MjE5NDY4MDAsMTU0MDY5OTIwMCwxNTU0MDAxMjAwLDE1NzIxNDg4MDAsMTU4NTQ1MDgwMCwxNjAzNTk4NDAwLDE2MTY5MDA0MDAsMTYzNTY1MjgwMCwxNjQ4MzVlNCwxNjY3MTAyNDAwLDE2Nzk3OTk2MDAsMTY5ODU1MmUzLDE3MTE4NTRlMywxNzMwMDAxNjAwLDE3NDMzMDM2MDAsMTc2MTQ1MTIwMCwxNzc0NzUzMjAwLDE3OTI5MDA4MDAsMTgwNjIwMjgwMCwxODI0OTU1MjAwLDE4Mzc2NTI0MDAsMTg1NjQwNDgwMCwxODY5MTAyZTMsMTg4Nzg1NDQwMCwxOTAxMTU2NDAwLDE5MTkzMDRlMywxOTMyNjA2ZTNdLG9mZnNldDpbNTk4OSw1OTg5LDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDBdfSwiRXVyb3BlL0lzdGFuYnVsIjp7dGltZTpbLTI4NDAxNDA4MDAsLTE4Njk4Njg4MDAsLTE2OTM2OTkyMDAsLTE2ODA0OGU0LC0xNTcwNDA2NDAwLC0xNTUyMTc2ZTMsLTE1MzgzNTJlMywtMTUyMjU0MDgwMCwtMTUwNzUwNzIwMCwtMTQ5MDU3MjgwMCwtMTQ0MDIwMTYwMCwtMTQyODAxOTIwMCwtMTQwOTcwMjQwMCwtMTM5NjQ4MzIwMCwtOTMxMDQ2NDAwLC05MjI2NjU2MDAsLTkxNzgyNzIwMCwtODkyNDI1NjAwLC04NzU4MzY4MDAsLTc2NDcyNjQwMCwtNzQ0MzM2ZTMsLTczMzc5NTIwMCwtNzE2NDI4ODAwLC03MDE5MTM2MDAsLTY4NDk3OTIwMCwtNjcwNDY0ZTMsLTY1NDEzNDQwMCwtNjM5MDE0NDAwLC02MjIwOGU0LC02MDY5NmU0LC01OTAwMjU2MDAsLTU3NTUxMDQwMCwtMjM1NjEyODAwLC0xOTQ4MzJlMywtMTc3NzI0ODAwLC0xNjU3MTUyMDAsMTA3OTE3MjAwLDEyMTIyNjQwMCwxMzM5MjcyMDAsMTUyNjc2ZTMsMTY0Njg1NjAwLDE4NDEyNTYwMCwxOTYyMjE2MDAsMjE1NTc1MjAwLDIyODg4MDgwMCwyNDU4MTUyMDAsMjYwMzMwNDAwLDI2NzkyNjQwMCw0Mjg0NjQ4MDAsNDMzOTA4ZTMsNDY4MTIyNDAwLDQ4MjgwNjgwMCw0OTY3MjA4MDAsNTEyNTI4NDAwLDUyODI1NjgwMCw1NDM5NzhlMyw1NTk3MDY0MDAsNTc1NDI3NjAwLDU5MTE1NmUzLDYwNjg3NzIwMCw2MjI2MDU2MDAsNjM4MzI2ODAwLDY1NDY2ZTQsNjcwMzgxMjAwLDY4NjEwOTYwMCw3MDE4MzA4MDAsNzE3NTU5MjAwLDczMzI4MDQwMCw3NDkwMDg4MDAsNzY0MTI1MjAwLDc4MDQ1ODQwMCw3OTYxNzk2MDAsODExOTA4ZTMsODI4MjM0ZTMsODQ2MzgxNjAwLDg1OTY4MzYwMCw4Nzc4MzEyMDAsODkxMTMzMjAwLDkwOTI4MDgwMCw5MjI1ODI4MDAsOTQxMzM1MjAwLDk1NDAzMjQwMCw5NzI3ODQ4MDAsOTg1NDgyZTMsMTAwNDIzNDQwMCwxMDE3NTM2NDAwLDEwMzU2ODRlMywxMDQ4OTg2ZTMsMTA2NzEzMzYwMCwxMDgwNDM1NjAwLDEwOTkxODhlMywxMTExODg1MjAwLDExMzA2Mzc2MDAsMTE0MzMzNDgwMCwxMTYyMDg3MjAwLDExNzQ3OTE2MDAsMTE5MzU0NGUzLDEyMDY4NDZlMywxMjI0OTkzNjAwLDEyMzgyOTU2MDAsMTI1NjQ0MzIwMCwxMjY5NzQ1MjAwLDEyODg0OTc2MDAsMTMwMTI4MTIwMCwxMzE5OTQ3MjAwLDEzMzI2NDQ0MDAsMTM1MTM5NjgwMCwxMzY0Njk4ODAwLDEzODI4NDY0MDAsMTM5NjIzNDgwMCwxNDE0Mjk2ZTMsMTQyNzU5OGUzLDE0NDY5NTUyMDAsMTQ1OTA0NzYwMCwxNDczMjA2NDAwLDE5MjUwMDI4MDBdLApvZmZzZXQ6WzY5NTIsNzAxNiw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsMTA4MDAsMTQ0MDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDEwODAwXX0sIkV1cm9wZS9MaXNib24iOnt0aW1lOlstMTgzMDM4NjIwNSwtMTY4OTU1NTYwMCwtMTY3Nzc5OGUzLC0xNjY3NDMzNjAwLC0xNjQ3NzM0NDAwLC0xNjM1ODk3NjAwLC0xNjE2MTk4NDAwLC0xNjA0MzYxNjAwLC0xNTg0NjYyNDAwLC0xNTcyNzM5MjAwLC0xNTUzMDRlNCwtMTU0MTIwMzIwMCwtMTUyMTUwNGUzLC0xNDQyNDUxNjAwLC0xNDI3NjczNjAwLC0xMzc5MjkzMjAwLC0xMzY0Nzc0NDAwLC0xMzQ4NDQ4NDAwLC0xMzMzMzI0ODAwLC0xMzE2Mzk0ZTMsLTEzMDEyNzA0MDAsLTEyODQzMzk2MDAsLTEyNjk4MjA4MDAsLTEyMjE0NDA0MDAsLTEyMDY5MjE2MDAsLTExOTEyMDA0MDAsLTExNzU0NzJlMywtMTEyNzY5NjQwMCwtMTExMTk2OGUzLC0xMDk2ODUxNjAwLC0xMDgwNTE4NDAwLC0xMDYzNTg3NjAwLC0xMDQ5MDY4ODAwLC0xMDMzMzQ3NjAwLC0xMDE3NjE5MjAwLC0xMDAyNTAyODAwLC05ODYxNjk2MDAsLTk2OTIzODgwMCwtOTUwNDg2NDAwLC05NDIwMjI4MDAsLTkyMjQ5MjgwMCwtOTA2OTQ0NDAwLC04OTExMjk2MDAsLTg3NzMwOTIwMCwtODczNjgwNDAwLC04NjRlNiwtODU3OTUyZTMsLTg0NTg1OTYwMCwtODQyODM1NjAwLC04MzEzNDA4MDAsLTgyNTg5NzYwMCwtODE0NDFlNCwtODEwNzgxMjAwLC03OTk4OTEyMDAsLTc5NDQ0OGUzLC03ODI5NjA0MDAsLTc3OTMzMTYwMCwtNzY4NDQxNjAwLC03NjI5OTg0MDAsLTc0OTA5MTYwMCwtNzMzMzYzMjAwLC03MTc2MzEyMDAsLTcwMTkwMjgwMCwtNjg2MTgxNjAwLC02NzA0NTMyMDAsLTY1NDczMmUzLC02MzkwMDM2MDAsLTYyMzI4MjQwMCwtNjA3NTU0ZTMsLTU5MTgzMjgwMCwtNTc1NDk5NjAwLC01NTk3Nzg0MDAsLTU0NDA1ZTQsLTUyODMyODgwMCwtNTEyNjAwNDAwLC00OTY4NzkyMDAsLTQ4MTE1MDgwMCwtNDY1NDI5NjAwLC00NDk3MDEyMDAsLTQzMzk4ZTQsLTQxNzY0NjgwMCwtNDAxOTI1NjAwLC0zODYxOTcyMDAsLTM3MDQ3NmUzLC0zNTQ3NDc2MDAsLTMzOTAyNjQwMCwtMzIzMjk4ZTMsLTMwNzU3NjgwMCwtMjkxODQ4NDAwLC0yNzYxMjcyMDAsLTI2MDM5ODgwMCwtMjQ0Njc3NjAwLC0yMjgzNDQ0MDAsLTIxMjYyMzIwMCwtMTk2ODk0ODAwLC0xODExNzM2MDAsLTE2NTQ0NTIwMCwtMTQ5NzI0ZTMsLTEzMzk5NTYwMCwtMTE4Mjc0NDAwLC0xMDI1NDZlMywyMTI1NDc2MDAsMjI4MjY4ODAwLDI0Mzk5NzIwMCwyNjAzMjY4MDAsMjc2MDU1MjAwLDI5MTc3NjQwMCwzMDc1MDQ4MDAsMzIzODMwODAwLDMzODk1NDQwMCwzNTQ2NzJlMywzNzA0MDA0MDAsMzg2MTIxNjAwLDQwMTg1ZTQsNDE3NTcxMjAwLDQzMzI5OTYwMCw0NDkwMjA4MDAsNDY1MzU0ZTMsNDgxMDc1MjAwLDQ5NjgwMzYwMCw1MTI1Mjg0MDAsNTI4MjU2ODAwLDU0Mzk3OGUzLDU1OTcwNjQwMCw1NzU0Mjc2MDAsNTkxMTU2ZTMsNjA2ODc3MjAwLDYyMjYwNTYwMCw2MzgzMjY4MDAsNjU0NjZlNCw2NzAzODEyMDAsNjg2MTA5NjAwLDcwMTgzMDgwMCw3MTc1NTkyMDAsNzMzMjg0ZTMsNzQ5MDEyNDAwLDc2NDczMzYwMCw3ODA0NjJlMyw3OTYxODMyMDAsODExOTExNjAwLDgyODIzNzYwMCw4NDYzODE2MDAsODU5NjgzNjAwLDg3NzgzMTIwMCw4OTExMzMyMDAsOTA5MjgwODAwLDkyMjU4MjgwMCw5NDEzMzUyMDAsOTU0MDMyNDAwLDk3Mjc4NDgwMCw5ODU0ODJlMywxMDA0MjM0NDAwLDEwMTc1MzY0MDAsMTAzNTY4NGUzLDEwNDg5ODZlMywxMDY3MTMzNjAwLDEwODA0MzU2MDAsMTA5OTE4OGUzLDExMTE4ODUyMDAsMTEzMDYzNzYwMCwxMTQzMzM0ODAwLDExNjIwODcyMDAsMTE3NDc4NDQwMCwxMTkzNTM2ODAwLDEyMDY4Mzg4MDAsMTIyNDk4NjQwMCwxMjM4Mjg4NDAwLDEyNTY0MzZlMywxMjY5NzM4ZTMsMTI4ODQ5MDQwMCwxMzAxMTg3NjAwLDEzMTk5NGU0LDEzMzI2MzcyMDAsMTM1MTM4OTYwMCwxMzY0NjkxNjAwLDEzODI4MzkyMDAsMTM5NjE0MTIwMCwxNDE0Mjg4ODAwLDE0Mjc1OTA4MDAsMTQ0NTczODQwMCwxNDU5MDQwNDAwLDE0Nzc3OTI4MDAsMTQ5MDQ5ZTQsMTUwOTI0MjQwMCwxNTIxOTM5NjAwLDE1NDA2OTJlMywxNTUzOTk0ZTMsMTU3MjE0MTYwMCwxNTg1NDQzNjAwLDE2MDM1OTEyMDAsMTYxNjg5MzIwMCwxNjM1NjQ1NjAwLDE2NDgzNDI4MDAsMTY2NzA5NTIwMCwxNjc5NzkyNDAwLDE2OTg1NDQ4MDAsMTcxMTg0NjgwMCwxNzI5OTk0NDAwLDE3NDMyOTY0MDAsMTc2MTQ0NGUzLDE3NzQ3NDZlMywxNzkyODkzNjAwLDE4MDYxOTU2MDAsMTgyNDk0OGUzLDE4Mzc2NDUyMDAsMTg1NjM5NzYwMCwxODY5MDk0ODAwLDE4ODc4NDcyMDAsMTkwMTE0OTIwMCwxOTE5Mjk2ODAwLDE5MzI1OTg4MDBdLApvZmZzZXQ6Wy0yMjA1LDAsMzYwMCwwLDM2MDAsMCwzNjAwLDAsMzYwMCwwLDM2MDAsMCwzNjAwLDAsMzYwMCwwLDM2MDAsMCwzNjAwLDAsMzYwMCwwLDM2MDAsMCwzNjAwLDAsMzYwMCwwLDM2MDAsMCwzNjAwLDAsMzYwMCwwLDM2MDAsMCwzNjAwLDAsMzYwMCwwLDM2MDAsMCwzNjAwLDAsMzYwMCw3MjAwLDM2MDAsMCwzNjAwLDcyMDAsMzYwMCwwLDM2MDAsNzIwMCwzNjAwLDAsMzYwMCw3MjAwLDM2MDAsMCwzNjAwLDAsMzYwMCwwLDM2MDAsMCwzNjAwLDAsMzYwMCwwLDM2MDAsMCwzNjAwLDAsMzYwMCwwLDM2MDAsMCwzNjAwLDAsMzYwMCwwLDM2MDAsMCwzNjAwLDAsMzYwMCwwLDM2MDAsMCwzNjAwLDAsMzYwMCwwLDM2MDAsMCwzNjAwLDAsMzYwMCwwLDM2MDAsMzYwMCwwLDM2MDAsMCwzNjAwLDAsMzYwMCwwLDM2MDAsMCwzNjAwLDAsMzYwMCwwLDM2MDAsMCwzNjAwLDAsMzYwMCwwLDM2MDAsMCwzNjAwLDAsMzYwMCwwLDM2MDAsMCwzNjAwLDAsMzYwMCwwLDM2MDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCwzNjAwLDAsMzYwMCwwLDM2MDAsMCwzNjAwLDAsMzYwMCwwLDM2MDAsMCwzNjAwLDAsMzYwMCwwLDM2MDAsMCwzNjAwLDAsMzYwMCwwLDM2MDAsMCwzNjAwLDAsMzYwMCwwLDM2MDAsMCwzNjAwLDAsMzYwMCwwLDM2MDAsMCwzNjAwLDAsMzYwMCwwLDM2MDAsMCwzNjAwLDAsMzYwMCwwLDM2MDAsMCwzNjAwLDAsMzYwMCwwLDM2MDAsMCwzNjAwLDAsMzYwMCwwLDM2MDAsMCwzNjAwLDAsMzYwMCwwLDM2MDAsMCwzNjAwLDAsMzYwMCwwXX0sIkV1cm9wZS9ManVibGphbmEiOnt0aW1lOlstMjcxMzkxMDQwMCwtOTA1ODIxMjAwLC04NTcyNWU0LC04NDQ1NTI4MDAsLTgyODIxOTYwMCwtODEyNDk4NDAwLC03OTY3N2U0LC03ODEwNDg4MDAsLTc2NjYxNjQwMCw0MTc1Nzg0MDAsNDMzMzA2ODAwLDQ0OTAyOGUzLDQ2NTM2MTIwMCw0ODEwODI0MDAsNDk2ODEwODAwLDUxMjUzMmUzLDUyODI2MDQwMCw1NDM5ODE2MDAsNTU5NzFlNCw1NzU0MzEyMDAsNTkxMTU5NjAwLDYwNjg4MDgwMCw2MjI2MDkyMDAsNjM4MzMwNDAwLDY1NDY2MzYwMCw2NzAzODQ4MDAsNjg2MTEzMjAwLDcwMTgzNDQwMCw3MTc1NjI4MDAsNzMzMjg0ZTMsNzQ5MDEyNDAwLDc2NDczMzYwMCw3ODA0NjJlMyw3OTYxODMyMDAsODExOTExNjAwLDgyODIzNzYwMCw4NDYzODUyMDAsODU5Njg3MjAwLDg3NzgzNDgwMCw4OTExMzY4MDAsOTA5Mjg0NDAwLDkyMjU4NjQwMCw5NDEzMzg4MDAsOTU0MDM2ZTMsOTcyNzg4NDAwLDk4NTQ4NTYwMCwxMDA0MjM4ZTMsMTAxNzU0ZTQsMTAzNTY4NzYwMCwxMDQ4OTg5NjAwLDEwNjcxMzcyMDAsMTA4MDQzOTIwMCwxMDk5MTkxNjAwLDExMTE4ODg4MDAsMTEzMDY0MTIwMCwxMTQzMzM4NDAwLDExNjIwOTA4MDAsMTE3NDc4OGUzLDExOTM1NDA0MDAsMTIwNjg0MjQwMCwxMjI0OTllNCwxMjM4MjkyZTMsMTI1NjQzOTYwMCwxMjY5NzQxNjAwLDEyODg0OTRlMywxMzAxMTkxMjAwLDEzMTk5NDM2MDAsMTMzMjY0MDgwMCwxMzUxMzkzMjAwLDEzNjQ2OTUyMDAsMTM4Mjg0MjgwMCwxMzk2MTQ0ODAwLDE0MTQyOTI0MDAsMTQyNzU5NDQwMCwxNDQ1NzQyZTMsMTQ1OTA0NGUzLDE0Nzc3OTY0MDAsMTQ5MDQ5MzYwMCwxNTA5MjQ2ZTMsMTUyMTk0MzIwMCwxNTQwNjk1NjAwLDE1NTM5OTc2MDAsMTU3MjE0NTIwMCwxNTg1NDQ3MjAwLDE2MDM1OTQ4MDAsMTYxNjg5NjgwMCwxNjM1NjQ5MjAwLDE2NDgzNDY0MDAsMTY2NzA5ODgwMCwxNjc5Nzk2ZTMsMTY5ODU0ODQwMCwxNzExODUwNDAwLDE3Mjk5OThlMywxNzQzM2U1LDE3NjE0NDc2MDAsMTc3NDc0OTYwMCwxNzkyODk3MjAwLDE4MDYxOTkyMDAsMTgyNDk1MTYwMCwxODM3NjQ4ODAwLDE4NTY0MDEyMDAsMTg2OTA5ODQwMCwxODg3ODUwODAwLDE5MDExNTI4MDAsMTkxOTMwMDQwMCwxOTMyNjAyNDAwXSxvZmZzZXQ6WzM0ODQsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDBdfSwiRXVyb3BlL0xvbmRvbiI6ewp0aW1lOlstMzg1MjY2MjQwMCwtMTY5MTk2NGUzLC0xNjgwNDY5MjAwLC0xNjY0MTQzMjAwLC0xNjUwMTQyODAwLC0xNjMzOTAzMjAwLC0xNjE3NDgzNjAwLC0xNjAxODQ4ODAwLC0xNTg2MDM0ZTMsLTE1NzAzOTkyMDAsLTE1NTIxNjUyMDAsLTE1MzgzNDQ4MDAsLTE1MjI1M2U0LC0xNTA3NWU1LC0xNDkwNTYyZTMsLTE0NzM2MzEyMDAsLTE0NjA5MjY4MDAsLTE0NDI3ODY0MDAsLTE0Mjg4NzI0MDAsLTE0MTA3MzJlMywtMTM5NjIxMzIwMCwtMTM3OTI4MjQwMCwtMTM2NDc2MzYwMCwtMTM0ODQzNzYwMCwtMTMzMzMxNGUzLC0xMzE1Nzc4NDAwLC0xMzAxMjU5NjAwLC0xMjg0MzI4ODAwLC0xMjY5ODFlNCwtMTI1MzQ4NGUzLC0xMjM4MzYwNDAwLC0xMjIxNDI5NjAwLC0xMjA2OTEwODAwLC0xMTg5OThlNCwtMTE3NTQ2MTIwMCwtMTE1OTEzNTIwMCwtMTE0MzQwNjgwMCwtMTEyNjQ3NmUzLC0xMTExOTU3MjAwLC0xMDk1NjMxMjAwLC0xMDgwNTA3NjAwLC0xMDYzNTc2ODAwLC0xMDQ5MDU4ZTMsLTEwMzIxMjcyMDAsLTEwMTc2MDg0MDAsLTEwMDEyODI0MDAsLTk4NjE1ODgwMCwtOTY5MjI4ZTMsLTk1MDQ3NTYwMCwtOTQyMDEyZTMsLTkwNDUxNDQwMCwtODk2MDQzNjAwLC04NzU0ODRlMywtODY0NTk0ZTMsLTg0NDAzNDQwMCwtODMyNTM5NjAwLC04MTI1ODQ4MDAsLTc5ODA2NmUzLC03ODEwNDg4MDAsLTc3MjA1OTYwMCwtNzY0ODAyZTMsLTc0ODQ3NmUzLC03MzMzNTI0MDAsLTcxOTQ0NTYwMCwtNzE3MDI2NDAwLC03MDY3NDEyMDAsLTY5OTQ4MzYwMCwtNjg3OTk2ZTMsLTY2ODAzNGUzLC02NTQ3MzJlMywtNjM2NTg0NDAwLC02MjIwNzI4MDAsLTYwNTczOTYwMCwtNTkwNjIzMjAwLC01NzQyOWU0LC01NTg1Njg4MDAsLTU0MjIzNTYwMCwtNTI3MTE5MjAwLC01MTI2MDA0MDAsLTQ5NjI3NDQwMCwtNDgxMTUwODAwLC00NjQyMmU0LC00NDk3MDEyMDAsLTQzMjE2NTYwMCwtNDE3NjQ2ODAwLC00MDEzMjA4MDAsLTM4NjE5NzIwMCwtMzY5MjY2NDAwLC0zNTQ3NDc2MDAsLTMzNzgxNjgwMCwtMzIzMjk4ZTMsLTMwNjk3MmUzLC0yOTE4NDg0MDAsLTI3NjczMmUzLC0yNTc5Nzk2MDAsLTI0NTI4MjQwMCwtMjI2NTNlNCwtMjEzMjI4ZTMsLTE5NTA4MDQwMCwtMTgyMzgzMjAwLC0xNjM2MzA4MDAsLTE1MDkzMzYwMCwtMTMyMTgxMjAwLC0xMTk0ODRlMywtMTAwNzMxNjAwLC04ODAzNDQwMCwtNjg2NzcyMDAsLTU5MDA0ZTMsLTM3MjM4NDAwLDU3NzI2ZTMsNjk4MTg0MDAsODkxNzU2MDAsMTAxMjY4ZTMsMTIwNjI1MjAwLDEzMjcxNzYwMCwxNTIwNzQ4MDAsMTY0MTY3MjAwLDE4MzUyNDQwMCwxOTYyMjE2MDAsMjE0OTc0ZTMsMjI3NjcxMjAwLDI0NjQyMzYwMCwyNTkxMjA4MDAsMjc4NDc4ZTMsMjkwNTcwNDAwLDMwOTkyNzYwMCwzMjIwMmU0LDM0MTM3NzIwMCwzNTQ2NzU2MDAsMzcyODIzMjAwLDM4NjEyNTIwMCw0MDQyNzI4MDAsNDE3NTc0ODAwLDQzNTcyMjQwMCw0NDkwMjQ0MDAsNDY3Nzc2ODAwLDQ4MTA3ODgwMCw0OTkyMjY0MDAsNTEyNTI4NDAwLDUzMDY3NmUzLDU0Mzk3OGUzLDU2MjEyNTYwMCw1NzU0Mjc2MDAsNTkzNTc1MjAwLDYwNjg3NzIwMCw2MjU2Mjk2MDAsNjM4MzI2ODAwLDY1NzA3OTIwMCw2NzAzODEyMDAsNjg4NTI4ODAwLDcwMTgzMDgwMCw3MTk5Nzg0MDAsNzMzMjgwNDAwLDc1MTQyOGUzLDc2NDczZTQsNzgyODc3NjAwLDc5NjE3OTYwMCw4MTQzMjcyMDAsODI4MjM0ZTMsODQ2MzgxNjAwLDg1OTY4MzYwMCw4Nzc4MzEyMDAsODkxMTMzMjAwLDkwOTI4MDgwMCw5MjI1ODI4MDAsOTQxMzM1MjAwLDk1NDAzMjQwMCw5NzI3ODQ4MDAsOTg1NDgyZTMsMTAwNDIzNDQwMCwxMDE3NTM2NDAwLDEwMzU2ODRlMywxMDQ4OTg2ZTMsMTA2NzEzMzYwMCwxMDgwNDM1NjAwLDEwOTkxODhlMywxMTExODg1MjAwLDExMzA2Mzc2MDAsMTE0MzMzNDgwMCwxMTYyMDg3MjAwLDExNzQ3ODQ0MDAsMTE5MzUzNjgwMCwxMjA2ODM4ODAwLDEyMjQ5ODY0MDAsMTIzODI4ODQwMCwxMjU2NDM2ZTMsMTI2OTczOGUzLDEyODg0OTA0MDAsMTMwMTE4NzYwMCwxMzE5OTRlNCwxMzMyNjM3MjAwLDEzNTEzODk2MDAsMTM2NDY5MTYwMCwxMzgyODM5MjAwLDEzOTYxNDEyMDAsMTQxNDI4ODgwMCwxNDI3NTkwODAwLDE0NDU3Mzg0MDAsMTQ1OTA0MDQwMCwxNDc3NzkyODAwLDE0OTA0OWU0LDE1MDkyNDI0MDAsMTUyMTkzOTYwMCwxNTQwNjkyZTMsMTU1Mzk5NGUzLDE1NzIxNDE2MDAsMTU4NTQ0MzYwMCwxNjAzNTkxMjAwLDE2MTY4OTMyMDAsMTYzNTY0NTYwMCwxNjQ4MzQyODAwLDE2NjcwOTUyMDAsMTY3OTc5MjQwMCwxNjk4NTQ0ODAwLDE3MTE4NDY4MDAsMTcyOTk5NDQwMCwxNzQzMjk2NDAwLDE3NjE0NDRlMywxNzc0NzQ2ZTMsMTc5Mjg5MzYwMCwxODA2MTk1NjAwLDE4MjQ5NDhlMywxODM3NjQ1MjAwLDE4NTYzOTc2MDAsMTg2OTA5NDgwMCwxODg3ODQ3MjAwLDE5MDExNDkyMDAsMTkxOTI5NjgwMCwxOTMyNTk4ODAwXSwKb2Zmc2V0OlstNzUsMCwzNjAwLDAsMzYwMCwwLDM2MDAsMCwzNjAwLDAsMzYwMCwwLDM2MDAsMCwzNjAwLDAsMzYwMCwwLDM2MDAsMCwzNjAwLDAsMzYwMCwwLDM2MDAsMCwzNjAwLDAsMzYwMCwwLDM2MDAsMCwzNjAwLDAsMzYwMCwwLDM2MDAsMCwzNjAwLDAsMzYwMCwwLDM2MDAsMCwzNjAwLDAsMzYwMCwwLDM2MDAsMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsMCwzNjAwLDAsMzYwMCw3MjAwLDM2MDAsMCwzNjAwLDAsMzYwMCwwLDM2MDAsMCwzNjAwLDAsMzYwMCwwLDM2MDAsMCwzNjAwLDAsMzYwMCwwLDM2MDAsMCwzNjAwLDAsMzYwMCwwLDM2MDAsMCwzNjAwLDAsMzYwMCwwLDM2MDAsMCwzNjAwLDAsMzYwMCwwLDM2MDAsMCwzNjAwLDAsMzYwMCwwLDM2MDAsMzYwMCwwLDM2MDAsMCwzNjAwLDAsMzYwMCwwLDM2MDAsMCwzNjAwLDAsMzYwMCwwLDM2MDAsMCwzNjAwLDAsMzYwMCwwLDM2MDAsMCwzNjAwLDAsMzYwMCwwLDM2MDAsMCwzNjAwLDAsMzYwMCwwLDM2MDAsMCwzNjAwLDAsMzYwMCwwLDM2MDAsMCwzNjAwLDAsMzYwMCwwLDM2MDAsMCwzNjAwLDAsMzYwMCwwLDM2MDAsMCwzNjAwLDAsMzYwMCwwLDM2MDAsMCwzNjAwLDAsMzYwMCwwLDM2MDAsMCwzNjAwLDAsMzYwMCwwLDM2MDAsMCwzNjAwLDAsMzYwMCwwLDM2MDAsMCwzNjAwLDAsMzYwMCwwLDM2MDAsMCwzNjAwLDAsMzYwMCwwLDM2MDAsMCwzNjAwLDAsMzYwMCwwLDM2MDAsMCwzNjAwLDAsMzYwMCwwLDM2MDAsMCwzNjAwLDAsMzYwMCwwLDM2MDAsMCwzNjAwLDAsMzYwMCwwLDM2MDAsMCwzNjAwLDAsMzYwMCwwLDM2MDAsMCwzNjAwLDBdfSwiRXVyb3BlL0x1eGVtYm91cmciOnt0aW1lOlstMjA2OTcxMmUzLC0xNjkyNDkzMjAwLC0xNjgwNDc2NDAwLC0xNjYyMzM5NjAwLC0xNjUwMTVlNCwtMTYzMjAwMjQwMCwtMTYxODY5MzIwMCwtMTYxMjY1NmUzLC0xNjA0Mjc4ODAwLC0xNTg1NTE1NjAwLC0xNTc0MDM4ODAwLC0xNTUyMjU1MjAwLC0xNTM5OTk3MjAwLC0xNTIwNTQ2NDAwLC0xNTA3NTEwODAwLC0xNDkwNTY5MjAwLC0xNDczNjQyZTMsLTE0NTkxMTZlMywtMTQ0NDAwNjgwMCwtMTQyNzY3ZTQsLTE0MTE4NjZlMywtMTM5NjIyMDQwMCwtMTM3OTI5MzIwMCwtMTM2NDc3MDgwMCwtMTM0ODQ0ODQwMCwtMTMzMzMyMTIwMCwtMTMxNjM5NGUzLC0xMzAxMjY2ODAwLC0xMjg0MzM5NjAwLC0xMjY5ODFlNCwtMTI1MzQ4NGUzLC0xMjM4MzYwNDAwLC0xMjIxNDI5NjAwLC0xMjA2OTEwODAwLC0xMTkxMTg5NjAwLC0xMTc1NDYxMjAwLC0xMTYwMzQ0ODAwLC0xMTQzNDA2ODAwLC0xMTI3Njg1NjAwLC0xMTExOTU3MjAwLC0xMDk2ODQwODAwLC0xMDgwNTA3NjAwLC0xMDYzNTc2ODAwLC0xMDQ5MDU4ZTMsLTEwMzMzMzY4MDAsLTEwMTc2MDg0MDAsLTEwMDI0OTJlMywtOTg2MTU4ODAwLC05NjkyMjhlMywtOTUwNDc1NjAwLC05NDIwMTJlMywtOTM1MTgyODAwLC04NTcyNWU0LC04NDQ1NTI4MDAsLTgyODIxOTYwMCwtODEyNDk4NDAwLC03OTc5Nzk2MDAsLTc4MTA0ODgwMCwtNzY2NjE2NDAwLC03NDU0NTJlMywtNzMzMjY2ZTMsMjI4ODgwODAwLDI0NDAwNDQwMCwyNjAzMzA0MDAsMjc2MDU4ODAwLDI5MTc4ZTQsMzA3NTA4NDAwLDMyMzgzNDQwMCwzMzg5NThlMywzNTQ2NzkyMDAsMzcwNDA3NjAwLDM4NjEyODgwMCw0MDE4NTcyMDAsNDE3NTc4NDAwLDQzMzMwNjgwMCw0NDkwMjhlMyw0NjUzNjEyMDAsNDgxMDgyNDAwLDQ5NjgxMDgwMCw1MTI1MzJlMyw1MjgyNjA0MDAsNTQzOTgxNjAwLDU1OTcxZTQsNTc1NDMxMjAwLDU5MTE1OTYwMCw2MDY4ODA4MDAsNjIyNjA5MjAwLDYzODMzMDQwMCw2NTQ2NjM2MDAsNjcwMzg0ODAwLDY4NjExMzIwMCw3MDE4MzQ0MDAsNzE3NTYyODAwLDczMzI4NGUzLDc0OTAxMjQwMCw3NjQ3MzM2MDAsNzgwNDYyZTMsNzk2MTgzMjAwLDgxMTkxMTYwMCw4MjgyMzc2MDAsODQ2Mzg1MjAwLDg1OTY4NzIwMCw4Nzc4MzQ4MDAsODkxMTM2ODAwLDkwOTI4NDQwMCw5MjI1ODY0MDAsOTQxMzM4ODAwLDk1NDAzNmUzLDk3Mjc4ODQwMCw5ODU0ODU2MDAsMTAwNDIzOGUzLDEwMTc1NGU0LDEwMzU2ODc2MDAsMTA0ODk4OTYwMCwxMDY3MTM3MjAwLDEwODA0MzkyMDAsMTA5OTE5MTYwMCwxMTExODg4ODAwLDExMzA2NDEyMDAsMTE0MzMzODQwMCwxMTYyMDkwODAwLDExNzQ3ODhlMywxMTkzNTQwNDAwLDEyMDY4NDI0MDAsMTIyNDk5ZTQsMTIzODI5MmUzLDEyNTY0Mzk2MDAsMTI2OTc0MTYwMCwxMjg4NDk0ZTMsMTMwMTE5MTIwMCwxMzE5OTQzNjAwLDEzMzI2NDA4MDAsMTM1MTM5MzIwMCwxMzY0Njk1MjAwLDEzODI4NDI4MDAsMTM5NjE0NDgwMCwxNDE0MjkyNDAwLDE0Mjc1OTQ0MDAsMTQ0NTc0MmUzLDE0NTkwNDRlMywxNDc3Nzk2NDAwLDE0OTA0OTM2MDAsMTUwOTI0NmUzLDE1MjE5NDMyMDAsMTU0MDY5NTYwMCwxNTUzOTk3NjAwLDE1NzIxNDUyMDAsMTU4NTQ0NzIwMCwxNjAzNTk0ODAwLDE2MTY4OTY4MDAsMTYzNTY0OTIwMCwxNjQ4MzQ2NDAwLDE2NjcwOTg4MDAsMTY3OTc5NmUzLDE2OTg1NDg0MDAsMTcxMTg1MDQwMCwxNzI5OTk4ZTMsMTc0MzNlNSwxNzYxNDQ3NjAwLDE3NzQ3NDk2MDAsMTc5Mjg5NzIwMCwxODA2MTk5MjAwLDE4MjQ5NTE2MDAsMTgzNzY0ODgwMCwxODU2NDAxMjAwLDE4NjkwOTg0MDAsMTg4Nzg1MDgwMCwxOTAxMTUyODAwLDE5MTkzMDA0MDAsMTkzMjYwMjQwMF0sCm9mZnNldDpbMTQ3NiwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDAsMzYwMCwwLDM2MDAsMCwzNjAwLDAsMzYwMCwwLDM2MDAsMCwzNjAwLDAsMzYwMCwwLDM2MDAsMCwzNjAwLDAsMzYwMCwwLDM2MDAsMCwzNjAwLDAsMzYwMCwwLDM2MDAsMCwzNjAwLDAsMzYwMCwwLDM2MDAsMCwzNjAwLDAsMzYwMCwwLDM2MDAsMCwzNjAwLDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwXX0sIkV1cm9wZS9NYWRyaWQiOnt0aW1lOlstMjE3NzQ1MzY4NCwtMTYzMTkyNjgwMCwtMTYxNjg4NmUzLC0xNjAxMTY4NDAwLC0xNTg1MzVlNCwtMTQ0MjQ1MTYwMCwtMTQyNzY3ZTQsLTEzNzkyOTMyMDAsLTEzNjQ3NzA4MDAsLTEzNDg0NDg0MDAsLTEzMzMzMjEyMDAsLTEzMTYzOTA0MDAsLTEzMDEyNjY4MDAsLTEyODQzMzk2MDAsLTEyNjk4MTcyMDAsLTEwMjY5NTRlMywtMTAxNzYxNTYwMCwtMTAwMTg5OGUzLC05OTk0Nzg4MDAsLTk4NjA4MzIwMCwtOTU0MTExNjAwLC05NDAyMDg0MDAsLTg3MzA3NTYwMCwtODYyNjE0ZTMsLTg0MjgzNTYwMCwtODI4MzEzMjAwLC04MTEzODZlMywtNzk2ODYzNjAwLC03Nzk5MzY0MDAsLTc2NTQxNGUzLC03NDg0ODY4MDAsLTczMzk2NDQwMCwtNjUyMzIzNjAwLC02MzkwMTA4MDAsMTM1MTI2ZTMsMTUwMjUzMjAwLDE2NjU3NTYwMCwxODE3MDI4MDAsMTk2ODE1NjAwLDIxMjU0NzYwMCwyMjg4N2U0LDI0Mzk5NzIwMCwyNjAzMzA0MDAsMjc2MDU4ODAwLDI5MTc4ZTQsMzA3NTA4NDAwLDMyMzgzNDQwMCwzMzg5NThlMywzNTQ2NzkyMDAsMzcwNDA3NjAwLDM4NjEyODgwMCw0MDE4NTcyMDAsNDE3NTc4NDAwLDQzMzMwNjgwMCw0NDkwMjhlMyw0NjUzNjEyMDAsNDgxMDgyNDAwLDQ5NjgxMDgwMCw1MTI1MzJlMyw1MjgyNjA0MDAsNTQzOTgxNjAwLDU1OTcxZTQsNTc1NDMxMjAwLDU5MTE1OTYwMCw2MDY4ODA4MDAsNjIyNjA5MjAwLDYzODMzMDQwMCw2NTQ2NjM2MDAsNjcwMzg0ODAwLDY4NjExMzIwMCw3MDE4MzQ0MDAsNzE3NTYyODAwLDczMzI4NGUzLDc0OTAxMjQwMCw3NjQ3MzM2MDAsNzgwNDYyZTMsNzk2MTgzMjAwLDgxMTkxMTYwMCw4MjgyMzc2MDAsODQ2Mzg1MjAwLDg1OTY4NzIwMCw4Nzc4MzQ4MDAsODkxMTM2ODAwLDkwOTI4NDQwMCw5MjI1ODY0MDAsOTQxMzM4ODAwLDk1NDAzNmUzLDk3Mjc4ODQwMCw5ODU0ODU2MDAsMTAwNDIzOGUzLDEwMTc1NGU0LDEwMzU2ODc2MDAsMTA0ODk4OTYwMCwxMDY3MTM3MjAwLDEwODA0MzkyMDAsMTA5OTE5MTYwMCwxMTExODg4ODAwLDExMzA2NDEyMDAsMTE0MzMzODQwMCwxMTYyMDkwODAwLDExNzQ3ODhlMywxMTkzNTQwNDAwLDEyMDY4NDI0MDAsMTIyNDk5ZTQsMTIzODI5MmUzLDEyNTY0Mzk2MDAsMTI2OTc0MTYwMCwxMjg4NDk0ZTMsMTMwMTE5MTIwMCwxMzE5OTQzNjAwLDEzMzI2NDA4MDAsMTM1MTM5MzIwMCwxMzY0Njk1MjAwLDEzODI4NDI4MDAsMTM5NjE0NDgwMCwxNDE0MjkyNDAwLDE0Mjc1OTQ0MDAsMTQ0NTc0MmUzLDE0NTkwNDRlMywxNDc3Nzk2NDAwLDE0OTA0OTM2MDAsMTUwOTI0NmUzLDE1MjE5NDMyMDAsMTU0MDY5NTYwMCwxNTUzOTk3NjAwLDE1NzIxNDUyMDAsMTU4NTQ0NzIwMCwxNjAzNTk0ODAwLDE2MTY4OTY4MDAsMTYzNTY0OTIwMCwxNjQ4MzQ2NDAwLDE2NjcwOTg4MDAsMTY3OTc5NmUzLDE2OTg1NDg0MDAsMTcxMTg1MDQwMCwxNzI5OTk4ZTMsMTc0MzNlNSwxNzYxNDQ3NjAwLDE3NzQ3NDk2MDAsMTc5Mjg5NzIwMCwxODA2MTk5MjAwLDE4MjQ5NTE2MDAsMTgzNzY0ODgwMCwxODU2NDAxMjAwLDE4NjkwOTg0MDAsMTg4Nzg1MDgwMCwxOTAxMTUyODAwLDE5MTkzMDA0MDAsMTkzMjYwMjQwMF0sCm9mZnNldDpbLTg4NCwwLDM2MDAsMCwzNjAwLDAsMzYwMCwwLDM2MDAsMCwzNjAwLDAsMzYwMCwwLDM2MDAsMCwzNjAwLDAsMzYwMCw3MjAwLDM2MDAsMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwXX0sIkV1cm9wZS9NYWx0YSI6e3RpbWU6Wy0yNDAzNDc1MjAwLC0xNjkwNzYxNjAwLC0xNjgwNDhlNCwtMTY2NDc1NTIwMCwtMTY0ODk0NGUzLC0xNjM1MTJlNCwtMTYxNjg4OTYwMCwtMTYwNDI3NTIwMCwtMTU4NTUyNjQwMCwtMTU3MTAxMTIwMCwtMTU1NTI4NjQwMCwtOTMyNDI4ODAwLC04NTcyNWU0LC04NDQ1NTI4MDAsLTgyODIxOTYwMCwtODEyNTg0ODAwLC03OTgwNjZlMywtNzgxMDQ4ODAwLC03NjY3MWU0LC03NTA4OTUyMDAsLTczMzM1MjQwMCwtNzE5NDUyODAwLC03MDE5MWU0LC02ODkyMDU2MDAsLTY3MDQ1MzIwMCwtMTE0MDQ4ZTMsLTEwMzE2MTYwMCwtODE5OTM2MDAsLTcxNzA4NDAwLC01MDU0NGUzLC00MDI1ODgwMCwtMTg0ODk2MDAsLTgyMDQ0MDAsMTI5NmU0LDIzMjQ1MjAwLDQzODA0ODAwLDU0Njk0ODAwLDc1ODU5MjAwLDg2NzQ5MjAwLDEwMjM4NGUzLDExODExMjQwMCwxMzU3MzQ0MDAsMTQ4NTI1MjAwLDE2NzE5MTIwMCwxODA0OTY4MDAsMTk4NjQwODAwLDIxMTk0NjQwMCwyMzAwOTA0MDAsMjQzMzk2ZTMsMjYxNTRlNCwyNzQ4NDU2MDAsMjkyOTg5NjAwLDMwNjI5NTIwMCwzMjMzMTZlMywzMzgzNDk2MDAsMzU0Njc5MjAwLDM3MDQwNzYwMCwzODYxMjg4MDAsNDAxODU3MjAwLDQxNzU3ODQwMCw0MzMzMDY4MDAsNDQ5MDI4ZTMsNDY1MzYxMjAwLDQ4MTA4MjQwMCw0OTY4MTA4MDAsNTEyNTMyZTMsNTI4MjYwNDAwLDU0Mzk4MTYwMCw1NTk3MWU0LDU3NTQzMTIwMCw1OTExNTk2MDAsNjA2ODgwODAwLDYyMjYwOTIwMCw2MzgzMzA0MDAsNjU0NjYzNjAwLDY3MDM4NDgwMCw2ODYxMTMyMDAsNzAxODM0NDAwLDcxNzU2MjgwMCw3MzMyODRlMyw3NDkwMTI0MDAsNzY0NzMzNjAwLDc4MDQ2MmUzLDc5NjE4MzIwMCw4MTE5MTE2MDAsODI4MjM3NjAwLDg0NjM4NTIwMCw4NTk2ODcyMDAsODc3ODM0ODAwLDg5MTEzNjgwMCw5MDkyODQ0MDAsOTIyNTg2NDAwLDk0MTMzODgwMCw5NTQwMzZlMyw5NzI3ODg0MDAsOTg1NDg1NjAwLDEwMDQyMzhlMywxMDE3NTRlNCwxMDM1Njg3NjAwLDEwNDg5ODk2MDAsMTA2NzEzNzIwMCwxMDgwNDM5MjAwLDEwOTkxOTE2MDAsMTExMTg4ODgwMCwxMTMwNjQxMjAwLDExNDMzMzg0MDAsMTE2MjA5MDgwMCwxMTc0Nzg4ZTMsMTE5MzU0MDQwMCwxMjA2ODQyNDAwLDEyMjQ5OWU0LDEyMzgyOTJlMywxMjU2NDM5NjAwLDEyNjk3NDE2MDAsMTI4ODQ5NGUzLDEzMDExOTEyMDAsMTMxOTk0MzYwMCwxMzMyNjQwODAwLDEzNTEzOTMyMDAsMTM2NDY5NTIwMCwxMzgyODQyODAwLDEzOTYxNDQ4MDAsMTQxNDI5MjQwMCwxNDI3NTk0NDAwLDE0NDU3NDJlMywxNDU5MDQ0ZTMsMTQ3Nzc5NjQwMCwxNDkwNDkzNjAwLDE1MDkyNDZlMywxNTIxOTQzMjAwLDE1NDA2OTU2MDAsMTU1Mzk5NzYwMCwxNTcyMTQ1MjAwLDE1ODU0NDcyMDAsMTYwMzU5NDgwMCwxNjE2ODk2ODAwLDE2MzU2NDkyMDAsMTY0ODM0NjQwMCwxNjY3MDk4ODAwLDE2Nzk3OTZlMywxNjk4NTQ4NDAwLDE3MTE4NTA0MDAsMTcyOTk5OGUzLDE3NDMzZTUsMTc2MTQ0NzYwMCwxNzc0NzQ5NjAwLDE3OTI4OTcyMDAsMTgwNjE5OTIwMCwxODI0OTUxNjAwLDE4Mzc2NDg4MDAsMTg1NjQwMTIwMCwxODY5MDk4NDAwLDE4ODc4NTA4MDAsMTkwMTE1MjgwMCwxOTE5MzAwNDAwLDE5MzI2MDI0MDBdLApvZmZzZXQ6WzM0ODQsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwXX0sIkV1cm9wZS9Nb3Njb3ciOnt0aW1lOlstMjg0MDE0MDgwMCwtMTY4ODI1NmUzLC0xNjU2ODFlNCwtMTY0MTM0MDgwMCwtMTYyNzk1NmUzLC0xNjE4NzAwNDAwLC0xNTk2NDE2NDAwLC0xNTkzODA0NTIxLC0xNTg5ODQ2NDAwLC0xNTQyNDE2NDAwLC0xNTM5NDc4ODAwLC0xNTI1MzA1NjAwLC0xNTIyNzEzNjAwLC0xNDkxMTc3NjAwLC0xMjQ3NTI5NjAwLDM1NDkzMTIwMCwzNzA3NDI0MDAsMzg2NDY3MjAwLDQwMjI3ODQwMCw0MTgwMDMyMDAsNDMzODE0NDAwLDQ0OTYyNTYwMCw0NjUzNjEyMDAsNDgxMDgyNDAwLDQ5NjgxMDgwMCw1MTI1MzJlMyw1MjgyNjA0MDAsNTQzOTgxNjAwLDU1OTcxZTQsNTc1NDMxMjAwLDU5MTE1OTYwMCw2MDY4ODA4MDAsNjIyNjA5MjAwLDYzODMzMDQwMCw2NTQ2NjM2MDAsNjcwMzg0ODAwLDY4NjExMzIwMCw2OTU3ODY0MDAsNzAxODM0NDAwLDcxNzU2MjgwMCw3MzMyODRlMyw3NDkwMTI0MDAsNzY0NzMzNjAwLDc4MDQ2MmUzLDc5NjE4MzIwMCw4MTE5MTE2MDAsODI4MjM3NjAwLDg0NjM4NTIwMCw4NTk2ODcyMDAsODc3ODM0ODAwLDg5MTEzNjgwMCw5MDkyODQ0MDAsOTIyNTg2NDAwLDk0MTMzODgwMCw5NTQwMzZlMyw5NzI3ODg0MDAsOTg1NDg1NjAwLDEwMDQyMzhlMywxMDE3NTRlNCwxMDM1Njg3NjAwLDEwNDg5ODk2MDAsMTA2NzEzNzIwMCwxMDgwNDM5MjAwLDEwOTkxOTE2MDAsMTExMTg4ODgwMCwxMTMwNjQxMjAwLDExNDMzMzg0MDAsMTE2MjA5MDgwMCwxMTc0Nzg4ZTMsMTE5MzU0MDQwMCwxMjA2ODQyNDAwLDEyMjQ5OWU0LDEyMzgyOTJlMywxMjU2NDM5NjAwLDEyNjk3NDE2MDAsMTI4ODQ5NGUzLDEzMDExOTEyMDAsMTQxNDI4ODgwMCwxOTI1MDAyODAwXSxvZmZzZXQ6WzkwMTcsOTAxNyw5MDc5LDEyNjc5LDkwNzksMTYyNzksMTI2NzksMTYyNzksMTQ0MDAsMTA4MDAsMTQ0MDAsMThlMywxNDQwMCwxMDgwMCw3MjAwLDEwODAwLDE0NDAwLDEwODAwLDE0NDAwLDEwODAwLDE0NDAwLDEwODAwLDE0NDAwLDEwODAwLDE0NDAwLDEwODAwLDE0NDAwLDEwODAwLDE0NDAwLDEwODAwLDE0NDAwLDEwODAwLDE0NDAwLDEwODAwLDE0NDAwLDEwODAwLDEwODAwLDcyMDAsMTA4MDAsMTQ0MDAsMTA4MDAsMTQ0MDAsMTA4MDAsMTQ0MDAsMTA4MDAsMTQ0MDAsMTA4MDAsMTQ0MDAsMTA4MDAsMTQ0MDAsMTA4MDAsMTQ0MDAsMTA4MDAsMTQ0MDAsMTA4MDAsMTQ0MDAsMTA4MDAsMTQ0MDAsMTA4MDAsMTQ0MDAsMTA4MDAsMTQ0MDAsMTA4MDAsMTQ0MDAsMTA4MDAsMTQ0MDAsMTA4MDAsMTQ0MDAsMTA4MDAsMTQ0MDAsMTA4MDAsMTQ0MDAsMTA4MDAsMTQ0MDAsMTA4MDAsMTQ0MDAsMTA4MDAsMTQ0MDAsMTA4MDBdfSwiRXVyb3BlL09zbG8iOnsKdGltZTpbLTIzNjY3NTUyMDAsLTE2OTE4ODEyMDAsLTE2ODA1NjY0MDAsLTkyNzUwNzYwMCwtODU3MjVlNCwtODQ0NTUyODAwLC04MjgyMTk2MDAsLTgxMjQ5ODQwMCwtNzk2NzdlNCwtNzgxMDQ4ODAwLC03NjUzMjA0MDAsLTM0MDg0MDgwMCwtMzI0NTA3NjAwLC0zMDg3ODY0MDAsLTI5MzA1OGUzLC0yNzczMzY4MDAsLTI2MTYwODQwMCwtMjQ1ODg3MjAwLC0yMzAxNTg4MDAsLTIxNDQzNzYwMCwtMTk4NzA5MjAwLC0xODI5ODhlMywtMTY2NjU0ODAwLC0xNDc5MDk2MDAsLTEzNTIwNTIwMCwzMjM4MzQ0MDAsMzM4OTU4ZTMsMzU0Njc5MjAwLDM3MDQwNzYwMCwzODYxMjg4MDAsNDAxODU3MjAwLDQxNzU3ODQwMCw0MzMzMDY4MDAsNDQ5MDI4ZTMsNDY1MzYxMjAwLDQ4MTA4MjQwMCw0OTY4MTA4MDAsNTEyNTMyZTMsNTI4MjYwNDAwLDU0Mzk4MTYwMCw1NTk3MWU0LDU3NTQzMTIwMCw1OTExNTk2MDAsNjA2ODgwODAwLDYyMjYwOTIwMCw2MzgzMzA0MDAsNjU0NjYzNjAwLDY3MDM4NDgwMCw2ODYxMTMyMDAsNzAxODM0NDAwLDcxNzU2MjgwMCw3MzMyODRlMyw3NDkwMTI0MDAsNzY0NzMzNjAwLDc4MDQ2MmUzLDc5NjE4MzIwMCw4MTE5MTE2MDAsODI4MjM3NjAwLDg0NjM4NTIwMCw4NTk2ODcyMDAsODc3ODM0ODAwLDg5MTEzNjgwMCw5MDkyODQ0MDAsOTIyNTg2NDAwLDk0MTMzODgwMCw5NTQwMzZlMyw5NzI3ODg0MDAsOTg1NDg1NjAwLDEwMDQyMzhlMywxMDE3NTRlNCwxMDM1Njg3NjAwLDEwNDg5ODk2MDAsMTA2NzEzNzIwMCwxMDgwNDM5MjAwLDEwOTkxOTE2MDAsMTExMTg4ODgwMCwxMTMwNjQxMjAwLDExNDMzMzg0MDAsMTE2MjA5MDgwMCwxMTc0Nzg4ZTMsMTE5MzU0MDQwMCwxMjA2ODQyNDAwLDEyMjQ5OWU0LDEyMzgyOTJlMywxMjU2NDM5NjAwLDEyNjk3NDE2MDAsMTI4ODQ5NGUzLDEzMDExOTEyMDAsMTMxOTk0MzYwMCwxMzMyNjQwODAwLDEzNTEzOTMyMDAsMTM2NDY5NTIwMCwxMzgyODQyODAwLDEzOTYxNDQ4MDAsMTQxNDI5MjQwMCwxNDI3NTk0NDAwLDE0NDU3NDJlMywxNDU5MDQ0ZTMsMTQ3Nzc5NjQwMCwxNDkwNDkzNjAwLDE1MDkyNDZlMywxNTIxOTQzMjAwLDE1NDA2OTU2MDAsMTU1Mzk5NzYwMCwxNTcyMTQ1MjAwLDE1ODU0NDcyMDAsMTYwMzU5NDgwMCwxNjE2ODk2ODAwLDE2MzU2NDkyMDAsMTY0ODM0NjQwMCwxNjY3MDk4ODAwLDE2Nzk3OTZlMywxNjk4NTQ4NDAwLDE3MTE4NTA0MDAsMTcyOTk5OGUzLDE3NDMzZTUsMTc2MTQ0NzYwMCwxNzc0NzQ5NjAwLDE3OTI4OTcyMDAsMTgwNjE5OTIwMCwxODI0OTUxNjAwLDE4Mzc2NDg4MDAsMTg1NjQwMTIwMCwxODY5MDk4NDAwLDE4ODc4NTA4MDAsMTkwMTE1MjgwMCwxOTE5MzAwNDAwLDE5MzI2MDI0MDBdLG9mZnNldDpbMjU4MCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwXX0sIkV1cm9wZS9QYXJpcyI6ewp0aW1lOlstMjQ4NjU5MmUzLC0xODU1OTU4NDAwLC0xNjg5ODE0ODAwLC0xNjgwMzkzNjAwLC0xNjY1MzYzNjAwLC0xNjQ4MzM5MjAwLC0xNjM1MTIzNjAwLC0xNjE2ODg5NjAwLC0xNjA0Mjc4ODAwLC0xNTg1NDRlNCwtMTU3NDAzODgwMCwtMTU1MjI2MjQwMCwtMTUzOTk5NzIwMCwtMTUyMDU1MzYwMCwtMTUwNzUxMDgwMCwtMTQ5MDU3MjgwMCwtMTQ3MDYxOGUzLC0xNDU5MTIzMjAwLC0xNDQ0MDA2ODAwLC0xNDI3NjczNjAwLC0xNDExOTUyNDAwLC0xMzk2MjI0ZTMsLTEzNzkyOTMyMDAsLTEzNjQ3NzQ0MDAsLTEzNDg0NDg0MDAsLTEzMzMzMjQ4MDAsLTEzMTYzOTRlMywtMTMwMTI3MDQwMCwtMTI4NDMzOTYwMCwtMTI2OTgyMDgwMCwtMTI1MzQ5NDgwMCwtMTIzODM3MTIwMCwtMTIyMTQ0MDQwMCwtMTIwNjkyMTYwMCwtMTE5MTIwMDQwMCwtMTE3NTQ3MmUzLC0xMTYwMzU1NjAwLC0xMTQzNDE3NjAwLC0xMTI3Njk2NDAwLC0xMTExOTY4ZTMsLTEwOTY4NTE2MDAsLTEwODA1MTg0MDAsLTEwNjM1ODc2MDAsLTEwNDkwNjg4MDAsLTEwMzMzNDc2MDAsLTEwMTc2MTkyMDAsLTEwMDI1MDI4MDAsLTk4NjE2OTYwMCwtOTY5MjM4ODAwLC05NTA0ODY0MDAsLTk0MjAxMmUzLC05MzI0MzI0MDAsLTg1NzI1ZTQsLTg0NDU1MjgwMCwtODI4MjE5NjAwLC04MTI0OTg0MDAsLTgwMDA2NGUzLC03OTYyNTg4MDAsLTc4MTA0ODgwMCwtNzY2NjE2NDAwLDE5NjgyMjgwMCwyMTI1NDc2MDAsMjI4ODgwODAwLDI0NDAwNDQwMCwyNjAzMzA0MDAsMjc2MDU4ODAwLDI5MTc4ZTQsMzA3NTA4NDAwLDMyMzgzNDQwMCwzMzg5NThlMywzNTQ2NzkyMDAsMzcwNDA3NjAwLDM4NjEyODgwMCw0MDE4NTcyMDAsNDE3NTc4NDAwLDQzMzMwNjgwMCw0NDkwMjhlMyw0NjUzNjEyMDAsNDgxMDgyNDAwLDQ5NjgxMDgwMCw1MTI1MzJlMyw1MjgyNjA0MDAsNTQzOTgxNjAwLDU1OTcxZTQsNTc1NDMxMjAwLDU5MTE1OTYwMCw2MDY4ODA4MDAsNjIyNjA5MjAwLDYzODMzMDQwMCw2NTQ2NjM2MDAsNjcwMzg0ODAwLDY4NjExMzIwMCw3MDE4MzQ0MDAsNzE3NTYyODAwLDczMzI4NGUzLDc0OTAxMjQwMCw3NjQ3MzM2MDAsNzgwNDYyZTMsNzk2MTgzMjAwLDgxMTkxMTYwMCw4MjgyMzc2MDAsODQ2Mzg1MjAwLDg1OTY4NzIwMCw4Nzc4MzQ4MDAsODkxMTM2ODAwLDkwOTI4NDQwMCw5MjI1ODY0MDAsOTQxMzM4ODAwLDk1NDAzNmUzLDk3Mjc4ODQwMCw5ODU0ODU2MDAsMTAwNDIzOGUzLDEwMTc1NGU0LDEwMzU2ODc2MDAsMTA0ODk4OTYwMCwxMDY3MTM3MjAwLDEwODA0MzkyMDAsMTA5OTE5MTYwMCwxMTExODg4ODAwLDExMzA2NDEyMDAsMTE0MzMzODQwMCwxMTYyMDkwODAwLDExNzQ3ODhlMywxMTkzNTQwNDAwLDEyMDY4NDI0MDAsMTIyNDk5ZTQsMTIzODI5MmUzLDEyNTY0Mzk2MDAsMTI2OTc0MTYwMCwxMjg4NDk0ZTMsMTMwMTE5MTIwMCwxMzE5OTQzNjAwLDEzMzI2NDA4MDAsMTM1MTM5MzIwMCwxMzY0Njk1MjAwLDEzODI4NDI4MDAsMTM5NjE0NDgwMCwxNDE0MjkyNDAwLDE0Mjc1OTQ0MDAsMTQ0NTc0MmUzLDE0NTkwNDRlMywxNDc3Nzk2NDAwLDE0OTA0OTM2MDAsMTUwOTI0NmUzLDE1MjE5NDMyMDAsMTU0MDY5NTYwMCwxNTUzOTk3NjAwLDE1NzIxNDUyMDAsMTU4NTQ0NzIwMCwxNjAzNTk0ODAwLDE2MTY4OTY4MDAsMTYzNTY0OTIwMCwxNjQ4MzQ2NDAwLDE2NjcwOTg4MDAsMTY3OTc5NmUzLDE2OTg1NDg0MDAsMTcxMTg1MDQwMCwxNzI5OTk4ZTMsMTc0MzNlNSwxNzYxNDQ3NjAwLDE3NzQ3NDk2MDAsMTc5Mjg5NzIwMCwxODA2MTk5MjAwLDE4MjQ5NTE2MDAsMTgzNzY0ODgwMCwxODU2NDAxMjAwLDE4NjkwOTg0MDAsMTg4Nzg1MDgwMCwxOTAxMTUyODAwLDE5MTkzMDA0MDAsMTkzMjYwMjQwMF0sb2Zmc2V0Ols1NjEsNTYxLDAsMzYwMCwwLDM2MDAsMCwzNjAwLDAsMzYwMCwwLDM2MDAsMCwzNjAwLDAsMzYwMCwwLDM2MDAsMCwzNjAwLDAsMzYwMCwwLDM2MDAsMCwzNjAwLDAsMzYwMCwwLDM2MDAsMCwzNjAwLDAsMzYwMCwwLDM2MDAsMCwzNjAwLDAsMzYwMCwwLDM2MDAsMCwzNjAwLDAsMzYwMCwwLDM2MDAsMCwzNjAwLDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDBdfSwiRXVyb3BlL1ByYWd1ZSI6ewp0aW1lOlstMzc4NjgyNTYwMCwtMjQ2OTM5ODQwMCwtMTY5MzcwMjgwMCwtMTY4MDQ3NjQwMCwtMTY2MzQ1MmUzLC0xNjUwMTQyODAwLC0xNjMyMDAyNDAwLC0xNjE4NjkzMjAwLC05Mzg5MDE2MDAsLTg1NzI1ZTQsLTg0NDU1MjgwMCwtODI4MjE5NjAwLC04MTI0OTg0MDAsLTc5Njc3ZTQsLTc4MTA0ODgwMCwtNzY1MzIwNDAwLC03NDY1NzUyMDAsLTczMzM1MjQwMCwtNzI4NTE0ZTMsLTcyMTI2ZTQsLTcxNjQyMTYwMCwtNzAxOTAyODAwLC02ODQ5NzJlMywtNjcwNDUzMjAwLC02NTQyMTM2MDAsLTYzOTAwMzYwMCwyOTE3OGU0LDMwNzUwODQwMCwzMjM4MzQ0MDAsMzM4OTU4ZTMsMzU0Njc5MjAwLDM3MDQwNzYwMCwzODYxMjg4MDAsNDAxODU3MjAwLDQxNzU3ODQwMCw0MzMzMDY4MDAsNDQ5MDI4ZTMsNDY1MzYxMjAwLDQ4MTA4MjQwMCw0OTY4MTA4MDAsNTEyNTMyZTMsNTI4MjYwNDAwLDU0Mzk4MTYwMCw1NTk3MWU0LDU3NTQzMTIwMCw1OTExNTk2MDAsNjA2ODgwODAwLDYyMjYwOTIwMCw2MzgzMzA0MDAsNjU0NjYzNjAwLDY3MDM4NDgwMCw2ODYxMTMyMDAsNzAxODM0NDAwLDcxNzU2MjgwMCw3MzMyODRlMyw3NDkwMTI0MDAsNzY0NzMzNjAwLDc4MDQ2MmUzLDc5NjE4MzIwMCw4MTE5MTE2MDAsODI4MjM3NjAwLDg0NjM4NTIwMCw4NTk2ODcyMDAsODc3ODM0ODAwLDg5MTEzNjgwMCw5MDkyODQ0MDAsOTIyNTg2NDAwLDk0MTMzODgwMCw5NTQwMzZlMyw5NzI3ODg0MDAsOTg1NDg1NjAwLDEwMDQyMzhlMywxMDE3NTRlNCwxMDM1Njg3NjAwLDEwNDg5ODk2MDAsMTA2NzEzNzIwMCwxMDgwNDM5MjAwLDEwOTkxOTE2MDAsMTExMTg4ODgwMCwxMTMwNjQxMjAwLDExNDMzMzg0MDAsMTE2MjA5MDgwMCwxMTc0Nzg4ZTMsMTE5MzU0MDQwMCwxMjA2ODQyNDAwLDEyMjQ5OWU0LDEyMzgyOTJlMywxMjU2NDM5NjAwLDEyNjk3NDE2MDAsMTI4ODQ5NGUzLDEzMDExOTEyMDAsMTMxOTk0MzYwMCwxMzMyNjQwODAwLDEzNTEzOTMyMDAsMTM2NDY5NTIwMCwxMzgyODQyODAwLDEzOTYxNDQ4MDAsMTQxNDI5MjQwMCwxNDI3NTk0NDAwLDE0NDU3NDJlMywxNDU5MDQ0ZTMsMTQ3Nzc5NjQwMCwxNDkwNDkzNjAwLDE1MDkyNDZlMywxNTIxOTQzMjAwLDE1NDA2OTU2MDAsMTU1Mzk5NzYwMCwxNTcyMTQ1MjAwLDE1ODU0NDcyMDAsMTYwMzU5NDgwMCwxNjE2ODk2ODAwLDE2MzU2NDkyMDAsMTY0ODM0NjQwMCwxNjY3MDk4ODAwLDE2Nzk3OTZlMywxNjk4NTQ4NDAwLDE3MTE4NTA0MDAsMTcyOTk5OGUzLDE3NDMzZTUsMTc2MTQ0NzYwMCwxNzc0NzQ5NjAwLDE3OTI4OTcyMDAsMTgwNjE5OTIwMCwxODI0OTUxNjAwLDE4Mzc2NDg4MDAsMTg1NjQwMTIwMCwxODY5MDk4NDAwLDE4ODc4NTA4MDAsMTkwMTE1MjgwMCwxOTE5MzAwNDAwLDE5MzI2MDI0MDBdLG9mZnNldDpbMzQ2NCwzNDY0LDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCwwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwXX0sIkV1cm9wZS9SaWdhIjp7CnRpbWU6Wy0yODQwMTQwODAwLC0xNjMyMDAyNDAwLC0xNjE4NjkzMjAwLC0xNjAxNjc2ZTMsLTE1OTcyNjZlMywtMTM3NzMwMjQwMCwtOTI4MDIyNDAwLC04OTk1MTA0MDAsLTg1NzI1ZTQsLTg0NDU1MjgwMCwtODI4MjE5NjAwLC04MTI0OTg0MDAsLTc5Njc3ZTQsLTc5NTgzMDQwMCwzNTQ5MzEyMDAsMzcwNzQyNDAwLDM4NjQ2NzIwMCw0MDIyNzg0MDAsNDE4MDAzMjAwLDQzMzgxNDQwMCw0NDk2MjU2MDAsNDY1MzYxMjAwLDQ4MTA4MjQwMCw0OTY4MTA4MDAsNTEyNTMyZTMsNTI4MjYwNDAwLDU0Mzk4MTYwMCw1NTk3MWU0LDU3NTQzMTIwMCw1OTExNTk2MDAsNjA2ODgwODAwLDYyMjYwOTIwMCw2MzgzMzA0MDAsNjU0NjYzNjAwLDY3MDM4NDgwMCw2ODYxMTMyMDAsNzAxODM0NDAwLDcxNzU2MjgwMCw3MzMyODRlMyw3NDkwMTI0MDAsNzY0NzMzNjAwLDc4MDQ2MmUzLDc5NjE4MzIwMCw4MTE5MTE2MDAsODI4MjM3NjAwLDg0Mzk2NmUzLDg1OTY5MDgwMCw4Nzc4Mzg0MDAsODkxMTQwNDAwLDkwOTI4OGUzLDkyMjU5ZTQsOTQxMzQyNDAwLDk4NTQ4OTIwMCwxMDA0MjQxNjAwLDEwMTc1NDM2MDAsMTAzNTY5MTIwMCwxMDQ4OTkzMjAwLDEwNjcxNDA4MDAsMTA4MDQ0MjgwMCwxMDk5MTk1MjAwLDExMTE4OTI0MDAsMTEzMDY0NDgwMCwxMTQzMzQyZTMsMTE2MjA5NDQwMCwxMTc0NzkxNjAwLDExOTM1NDRlMywxMjA2ODQ2ZTMsMTIyNDk5MzYwMCwxMjM4Mjk1NjAwLDEyNTY0NDMyMDAsMTI2OTc0NTIwMCwxMjg4NDk3NjAwLDEzMDExOTQ4MDAsMTMxOTk0NzIwMCwxMzMyNjQ0NDAwLDEzNTEzOTY4MDAsMTM2NDY5ODgwMCwxMzgyODQ2NDAwLDEzOTYxNDg0MDAsMTQxNDI5NmUzLDE0Mjc1OThlMywxNDQ1NzQ1NjAwLDE0NTkwNDc2MDAsMTQ3NzhlNSwxNDkwNDk3MjAwLDE1MDkyNDk2MDAsMTUyMTk0NjgwMCwxNTQwNjk5MjAwLDE1NTQwMDEyMDAsMTU3MjE0ODgwMCwxNTg1NDUwODAwLDE2MDM1OTg0MDAsMTYxNjkwMDQwMCwxNjM1NjUyODAwLDE2NDgzNWU0LDE2NjcxMDI0MDAsMTY3OTc5OTYwMCwxNjk4NTUyZTMsMTcxMTg1NGUzLDE3MzAwMDE2MDAsMTc0MzMwMzYwMCwxNzYxNDUxMjAwLDE3NzQ3NTMyMDAsMTc5MjkwMDgwMCwxODA2MjAyODAwLDE4MjQ5NTUyMDAsMTgzNzY1MjQwMCwxODU2NDA0ODAwLDE4NjkxMDJlMywxODg3ODU0NDAwLDE5MDExNTY0MDAsMTkxOTMwNGUzLDE5MzI2MDZlM10sb2Zmc2V0Ols1Nzk0LDU3OTQsOTM5NCw1Nzk0LDkzOTQsNTc5NCw3MjAwLDEwODAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDEwODAwLDE0NDAwLDEwODAwLDE0NDAwLDEwODAwLDE0NDAwLDEwODAwLDE0NDAwLDEwODAwLDE0NDAwLDEwODAwLDE0NDAwLDEwODAwLDE0NDAwLDEwODAwLDE0NDAwLDEwODAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMF19LCJFdXJvcGUvUm9tZSI6ewp0aW1lOlstMzI1MjA5NmUzLC0yNDAzNTYyMjA0LC0xNjkwNzYxNjAwLC0xNjgwNDhlNCwtMTY2NDc1NTIwMCwtMTY0ODk0NGUzLC0xNjM1MTJlNCwtMTYxNjg4OTYwMCwtMTYwNDI3NTIwMCwtMTU4NTUyNjQwMCwtMTU3MTAxMTIwMCwtMTU1NTI4NjQwMCwtOTMyNDI4ODAwLC04NTcyNWU0LC04NDQ1NTI4MDAsLTgyODIxOTYwMCwtODEyNDk4NDAwLC03OTgwNjZlMywtNzgxMDQ4ODAwLC03NjY3MWU0LC03NTA4OTUyMDAsLTczMzM1MjQwMCwtNzE5NDUyODAwLC03MDE5MWU0LC02ODkyMDU2MDAsLTY3MDQ1MzIwMCwtMTE0MDQ4ZTMsLTEwMzE2MTYwMCwtODE5OTM2MDAsLTcxNzA4NDAwLC01MDU0NGUzLC00MDI1ODgwMCwtMTg0ODk2MDAsLTgyMDQ0MDAsMTI5NmU0LDIzMjQ1MjAwLDQzODA0ODAwLDU0Njk0ODAwLDc1ODU5MjAwLDg2NzQ5MjAwLDEwNzkxMzYwMCwxMTgxOTg4MDAsMTM4NzU4NDAwLDE0OTY0ODQwMCwxNzA4MTI4MDAsMTgxMDk4ZTMsMjAyMjYyNDAwLDIxMjU0NzYwMCwyMzMxMDcyMDAsMjQzOTk3MjAwLDI2NTE2MTYwMCwyNzYwNTE2MDAsMjk2NjExMjAwLDMwNzUwMTIwMCwzMjM4MzQ0MDAsMzM4OTU4ZTMsMzU0Njc5MjAwLDM3MDQwNzYwMCwzODYxMjg4MDAsNDAxODU3MjAwLDQxNzU3ODQwMCw0MzMzMDY4MDAsNDQ5MDI4ZTMsNDY1MzYxMjAwLDQ4MTA4MjQwMCw0OTY4MTA4MDAsNTEyNTMyZTMsNTI4MjYwNDAwLDU0Mzk4MTYwMCw1NTk3MWU0LDU3NTQzMTIwMCw1OTExNTk2MDAsNjA2ODgwODAwLDYyMjYwOTIwMCw2MzgzMzA0MDAsNjU0NjYzNjAwLDY3MDM4NDgwMCw2ODYxMTMyMDAsNzAxODM0NDAwLDcxNzU2MjgwMCw3MzMyODRlMyw3NDkwMTI0MDAsNzY0NzMzNjAwLDc4MDQ2MmUzLDc5NjE4MzIwMCw4MTE5MTE2MDAsODI4MjM3NjAwLDg0NjM4NTIwMCw4NTk2ODcyMDAsODc3ODM0ODAwLDg5MTEzNjgwMCw5MDkyODQ0MDAsOTIyNTg2NDAwLDk0MTMzODgwMCw5NTQwMzZlMyw5NzI3ODg0MDAsOTg1NDg1NjAwLDEwMDQyMzhlMywxMDE3NTRlNCwxMDM1Njg3NjAwLDEwNDg5ODk2MDAsMTA2NzEzNzIwMCwxMDgwNDM5MjAwLDEwOTkxOTE2MDAsMTExMTg4ODgwMCwxMTMwNjQxMjAwLDExNDMzMzg0MDAsMTE2MjA5MDgwMCwxMTc0Nzg4ZTMsMTE5MzU0MDQwMCwxMjA2ODQyNDAwLDEyMjQ5OWU0LDEyMzgyOTJlMywxMjU2NDM5NjAwLDEyNjk3NDE2MDAsMTI4ODQ5NGUzLDEzMDExOTEyMDAsMTMxOTk0MzYwMCwxMzMyNjQwODAwLDEzNTEzOTMyMDAsMTM2NDY5NTIwMCwxMzgyODQyODAwLDEzOTYxNDQ4MDAsMTQxNDI5MjQwMCwxNDI3NTk0NDAwLDE0NDU3NDJlMywxNDU5MDQ0ZTMsMTQ3Nzc5NjQwMCwxNDkwNDkzNjAwLDE1MDkyNDZlMywxNTIxOTQzMjAwLDE1NDA2OTU2MDAsMTU1Mzk5NzYwMCwxNTcyMTQ1MjAwLDE1ODU0NDcyMDAsMTYwMzU5NDgwMCwxNjE2ODk2ODAwLDE2MzU2NDkyMDAsMTY0ODM0NjQwMCwxNjY3MDk4ODAwLDE2Nzk3OTZlMywxNjk4NTQ4NDAwLDE3MTE4NTA0MDAsMTcyOTk5OGUzLDE3NDMzZTUsMTc2MTQ0NzYwMCwxNzc0NzQ5NjAwLDE3OTI4OTcyMDAsMTgwNjE5OTIwMCwxODI0OTUxNjAwLDE4Mzc2NDg4MDAsMTg1NjQwMTIwMCwxODY5MDk4NDAwLDE4ODc4NTA4MDAsMTkwMTE1MjgwMCwxOTE5MzAwNDAwLDE5MzI2MDI0MDBdLG9mZnNldDpbMjk5NiwyOTk2LDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMF19LCJFdXJvcGUvU29maWEiOnsKdGltZTpbLTI4NDAxNDA4MDAsLTIzNjk1MmU0LC04NTcyNWU0LC04NDQ1NTI4MDAsLTgyODIxOTYwMCwtODEyNDk4NDAwLC03OTY3N2U0LC03ODEwNDUyMDAsMjkxNzY5MjAwLDMwNzU4NzYwMCwzMjM4MjM2MDAsMzM5MDM3MjAwLDM1NTI3MzIwMCwzNzA0MDRlMywzODY3MjI4MDAsNDAxODU3MjAwLDQxNzU3ODQwMCw0MzMzMDY4MDAsNDQ5MDI4ZTMsNDY1MzYxMjAwLDQ4MTA4MjQwMCw0OTY4MTA4MDAsNTEyNTMyZTMsNTI4MjYwNDAwLDU0Mzk4MTYwMCw1NTk3MWU0LDU3NTQzMTIwMCw1OTExNTk2MDAsNjA2ODgwODAwLDYyMjYwOTIwMCw2MzgzMzA0MDAsNjU0NjYzNjAwLDY3MDM3NzYwMCw2ODYxMDI0MDAsNzAxODI3MjAwLDcxNzU1MmUzLDczMzI3NjgwMCw3NDkwMDE2MDAsNzY0NzI2NDAwLDc4MDQ1MTIwMCw3OTYxNzZlMyw4MTE5MDA4MDAsODI4MjMwNDAwLDg0NjM3NDQwMCw4NTk2OTA4MDAsODc3ODM4NDAwLDg5MTE0MDQwMCw5MDkyODhlMyw5MjI1OWU0LDk0MTM0MjQwMCw5NTQwMzk2MDAsOTcyNzkyZTMsOTg1NDg5MjAwLDEwMDQyNDE2MDAsMTAxNzU0MzYwMCwxMDM1NjkxMjAwLDEwNDg5OTMyMDAsMTA2NzE0MDgwMCwxMDgwNDQyODAwLDEwOTkxOTUyMDAsMTExMTg5MjQwMCwxMTMwNjQ0ODAwLDExNDMzNDJlMywxMTYyMDk0NDAwLDExNzQ3OTE2MDAsMTE5MzU0NGUzLDEyMDY4NDZlMywxMjI0OTkzNjAwLDEyMzgyOTU2MDAsMTI1NjQ0MzIwMCwxMjY5NzQ1MjAwLDEyODg0OTc2MDAsMTMwMTE5NDgwMCwxMzE5OTQ3MjAwLDEzMzI2NDQ0MDAsMTM1MTM5NjgwMCwxMzY0Njk4ODAwLDEzODI4NDY0MDAsMTM5NjE0ODQwMCwxNDE0Mjk2ZTMsMTQyNzU5OGUzLDE0NDU3NDU2MDAsMTQ1OTA0NzYwMCwxNDc3OGU1LDE0OTA0OTcyMDAsMTUwOTI0OTYwMCwxNTIxOTQ2ODAwLDE1NDA2OTkyMDAsMTU1NDAwMTIwMCwxNTcyMTQ4ODAwLDE1ODU0NTA4MDAsMTYwMzU5ODQwMCwxNjE2OTAwNDAwLDE2MzU2NTI4MDAsMTY0ODM1ZTQsMTY2NzEwMjQwMCwxNjc5Nzk5NjAwLDE2OTg1NTJlMywxNzExODU0ZTMsMTczMDAwMTYwMCwxNzQzMzAzNjAwLDE3NjE0NTEyMDAsMTc3NDc1MzIwMCwxNzkyOTAwODAwLDE4MDYyMDI4MDAsMTgyNDk1NTIwMCwxODM3NjUyNDAwLDE4NTY0MDQ4MDAsMTg2OTEwMmUzLDE4ODc4NTQ0MDAsMTkwMTE1NjQwMCwxOTE5MzA0ZTMsMTkzMjYwNmUzXSxvZmZzZXQ6WzU1OTYsNzAxNiw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDBdfSwiRXVyb3BlL1N0b2NraG9sbSI6e3RpbWU6Wy0yODcxNjc2ODAwLC0yMjA4OTg4ODAwLC0xNjkyNDkzMjAwLC0xNjgwNDc2NDAwLDMyMzgzNDQwMCwzMzg5NThlMywzNTQ2NzkyMDAsMzcwNDA3NjAwLDM4NjEyODgwMCw0MDE4NTcyMDAsNDE3NTc4NDAwLDQzMzMwNjgwMCw0NDkwMjhlMyw0NjUzNjEyMDAsNDgxMDgyNDAwLDQ5NjgxMDgwMCw1MTI1MzJlMyw1MjgyNjA0MDAsNTQzOTgxNjAwLDU1OTcxZTQsNTc1NDMxMjAwLDU5MTE1OTYwMCw2MDY4ODA4MDAsNjIyNjA5MjAwLDYzODMzMDQwMCw2NTQ2NjM2MDAsNjcwMzg0ODAwLDY4NjExMzIwMCw3MDE4MzQ0MDAsNzE3NTYyODAwLDczMzI4NGUzLDc0OTAxMjQwMCw3NjQ3MzM2MDAsNzgwNDYyZTMsNzk2MTgzMjAwLDgxMTkxMTYwMCw4MjgyMzc2MDAsODQ2Mzg1MjAwLDg1OTY4NzIwMCw4Nzc4MzQ4MDAsODkxMTM2ODAwLDkwOTI4NDQwMCw5MjI1ODY0MDAsOTQxMzM4ODAwLDk1NDAzNmUzLDk3Mjc4ODQwMCw5ODU0ODU2MDAsMTAwNDIzOGUzLDEwMTc1NGU0LDEwMzU2ODc2MDAsMTA0ODk4OTYwMCwxMDY3MTM3MjAwLDEwODA0MzkyMDAsMTA5OTE5MTYwMCwxMTExODg4ODAwLDExMzA2NDEyMDAsMTE0MzMzODQwMCwxMTYyMDkwODAwLDExNzQ3ODhlMywxMTkzNTQwNDAwLDEyMDY4NDI0MDAsMTIyNDk5ZTQsMTIzODI5MmUzLDEyNTY0Mzk2MDAsMTI2OTc0MTYwMCwxMjg4NDk0ZTMsMTMwMTE5MTIwMCwxMzE5OTQzNjAwLDEzMzI2NDA4MDAsMTM1MTM5MzIwMCwxMzY0Njk1MjAwLDEzODI4NDI4MDAsMTM5NjE0NDgwMCwxNDE0MjkyNDAwLDE0Mjc1OTQ0MDAsMTQ0NTc0MmUzLDE0NTkwNDRlMywxNDc3Nzk2NDAwLDE0OTA0OTM2MDAsMTUwOTI0NmUzLDE1MjE5NDMyMDAsMTU0MDY5NTYwMCwxNTUzOTk3NjAwLDE1NzIxNDUyMDAsMTU4NTQ0NzIwMCwxNjAzNTk0ODAwLDE2MTY4OTY4MDAsMTYzNTY0OTIwMCwxNjQ4MzQ2NDAwLDE2NjcwOTg4MDAsMTY3OTc5NmUzLDE2OTg1NDg0MDAsMTcxMTg1MDQwMCwxNzI5OTk4ZTMsMTc0MzNlNSwxNzYxNDQ3NjAwLDE3NzQ3NDk2MDAsMTc5Mjg5NzIwMCwxODA2MTk5MjAwLDE4MjQ5NTE2MDAsMTgzNzY0ODgwMCwxODU2NDAxMjAwLDE4NjkwOTg0MDAsMTg4Nzg1MDgwMCwxOTAxMTUyODAwLDE5MTkzMDA0MDAsMTkzMjYwMjQwMF0sCm9mZnNldDpbNDMzMiwzNjE0LDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwXX0sIkV1cm9wZS9UYWxsaW5uIjp7dGltZTpbLTI4NDAxNDA4MDAsLTE2MzgzMTY4MDAsLTE2MzIwMDI0MDAsLTE2MTg2OTMyMDAsLTE1OTM4MjA4MDAsLTE1MzU5MzI4MDAsLTkyNzkzNmUzLC04OTI5NDRlMywtODU3MjVlNCwtODQ0NTUyODAwLC04MjgyMTk2MDAsLTgxMjQ5ODQwMCwtNzk3NjQ0ODAwLDM1NDkzMTIwMCwzNzA3NDI0MDAsMzg2NDY3MjAwLDQwMjI3ODQwMCw0MTgwMDMyMDAsNDMzODE0NDAwLDQ0OTYyNTYwMCw0NjUzNjEyMDAsNDgxMDgyNDAwLDQ5NjgxMDgwMCw1MTI1MzJlMyw1MjgyNjA0MDAsNTQzOTgxNjAwLDU1OTcxZTQsNTc1NDMxMjAwLDU5MTE1OTYwMCw2MDY4ODA4MDAsNjIyNjA5MjAwLDYzODMzMDQwMCw2NTQ2NjM2MDAsNjcwMzg0ODAwLDY4NjExMzIwMCw3MDE4MzQ0MDAsNzE3NTYyODAwLDczMzI4NGUzLDc0OTAxMjQwMCw3NjQ3MzM2MDAsNzgwNDYyZTMsNzk2MTgzMjAwLDgxMTkxMTYwMCw4MjgyMzc2MDAsODQ2Mzg1MjAwLDg1OTY4NzIwMCw4Nzc4MzQ4MDAsODkxMTM2ODAwLDkwOTI4OGUzLDkyMjU5ZTQsOTQxMzQyNDAwLDEwMTc1NDM2MDAsMTAzNTY5MTIwMCwxMDQ4OTkzMjAwLDEwNjcxNDA4MDAsMTA4MDQ0MjgwMCwxMDk5MTk1MjAwLDExMTE4OTI0MDAsMTEzMDY0NDgwMCwxMTQzMzQyZTMsMTE2MjA5NDQwMCwxMTc0NzkxNjAwLDExOTM1NDRlMywxMjA2ODQ2ZTMsMTIyNDk5MzYwMCwxMjM4Mjk1NjAwLDEyNTY0NDMyMDAsMTI2OTc0NTIwMCwxMjg4NDk3NjAwLDEzMDExOTQ4MDAsMTMxOTk0NzIwMCwxMzMyNjQ0NDAwLDEzNTEzOTY4MDAsMTM2NDY5ODgwMCwxMzgyODQ2NDAwLDEzOTYxNDg0MDAsMTQxNDI5NmUzLDE0Mjc1OThlMywxNDQ1NzQ1NjAwLDE0NTkwNDc2MDAsMTQ3NzhlNSwxNDkwNDk3MjAwLDE1MDkyNDk2MDAsMTUyMTk0NjgwMCwxNTQwNjk5MjAwLDE1NTQwMDEyMDAsMTU3MjE0ODgwMCwxNTg1NDUwODAwLDE2MDM1OTg0MDAsMTYxNjkwMDQwMCwxNjM1NjUyODAwLDE2NDgzNWU0LDE2NjcxMDI0MDAsMTY3OTc5OTYwMCwxNjk4NTUyZTMsMTcxMTg1NGUzLDE3MzAwMDE2MDAsMTc0MzMwMzYwMCwxNzYxNDUxMjAwLDE3NzQ3NTMyMDAsMTc5MjkwMDgwMCwxODA2MjAyODAwLDE4MjQ5NTUyMDAsMTgzNzY1MjQwMCwxODU2NDA0ODAwLDE4NjkxMDJlMywxODg3ODU0NDAwLDE5MDExNTY0MDAsMTkxOTMwNGUzLDE5MzI2MDZlM10sb2Zmc2V0Ols1OTQwLDU5NDAsMzYwMCw3MjAwLDM2MDAsNTk0MCw3MjAwLDEwODAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwxMDgwMCwxNDQwMCwxMDgwMCwxNDQwMCwxMDgwMCwxNDQwMCwxMDgwMCwxNDQwMCwxMDgwMCwxNDQwMCwxMDgwMCwxNDQwMCwxMDgwMCwxNDQwMCwxMDgwMCwxNDQwMCwxMDgwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwXX0sIkV1cm9wZS9WaWVubmEiOnsKdGltZTpbLTI0MjIwNTEyMDAsLTE2OTM3MDI4MDAsLTE2ODA0NzY0MDAsLTE2NjM0NTJlMywtMTY1MDE0MjgwMCwtMTYzMjAwMjQwMCwtMTYxODY5MzIwMCwtMTU2OTcwOGUzLC0xNTU1Nzk0ZTMsLTkzODkwMTYwMCwtODU3MjVlNCwtODQ0NTUyODAwLC04MjgyMTk2MDAsLTgxMjQ5ODQwMCwtNzk2NzdlNCwtNzgxMDQ4ODAwLC03ODAxODEyMDAsLTc0ODQ3NmUzLC03MzMyNjZlMywtNzE3NjMxMjAwLC03MDE5MDI4MDAsLTY4NDk3MmUzLC02NzA0NTMyMDAsMzIzODI3MjAwLDMzODk0NzIwMCwzNTQ2NzkyMDAsMzcwNDA3NjAwLDM4NjEyODgwMCw0MDE4NTcyMDAsNDE3NTc4NDAwLDQzMzMwNjgwMCw0NDkwMjhlMyw0NjUzNjEyMDAsNDgxMDgyNDAwLDQ5NjgxMDgwMCw1MTI1MzJlMyw1MjgyNjA0MDAsNTQzOTgxNjAwLDU1OTcxZTQsNTc1NDMxMjAwLDU5MTE1OTYwMCw2MDY4ODA4MDAsNjIyNjA5MjAwLDYzODMzMDQwMCw2NTQ2NjM2MDAsNjcwMzg0ODAwLDY4NjExMzIwMCw3MDE4MzQ0MDAsNzE3NTYyODAwLDczMzI4NGUzLDc0OTAxMjQwMCw3NjQ3MzM2MDAsNzgwNDYyZTMsNzk2MTgzMjAwLDgxMTkxMTYwMCw4MjgyMzc2MDAsODQ2Mzg1MjAwLDg1OTY4NzIwMCw4Nzc4MzQ4MDAsODkxMTM2ODAwLDkwOTI4NDQwMCw5MjI1ODY0MDAsOTQxMzM4ODAwLDk1NDAzNmUzLDk3Mjc4ODQwMCw5ODU0ODU2MDAsMTAwNDIzOGUzLDEwMTc1NGU0LDEwMzU2ODc2MDAsMTA0ODk4OTYwMCwxMDY3MTM3MjAwLDEwODA0MzkyMDAsMTA5OTE5MTYwMCwxMTExODg4ODAwLDExMzA2NDEyMDAsMTE0MzMzODQwMCwxMTYyMDkwODAwLDExNzQ3ODhlMywxMTkzNTQwNDAwLDEyMDY4NDI0MDAsMTIyNDk5ZTQsMTIzODI5MmUzLDEyNTY0Mzk2MDAsMTI2OTc0MTYwMCwxMjg4NDk0ZTMsMTMwMTE5MTIwMCwxMzE5OTQzNjAwLDEzMzI2NDA4MDAsMTM1MTM5MzIwMCwxMzY0Njk1MjAwLDEzODI4NDI4MDAsMTM5NjE0NDgwMCwxNDE0MjkyNDAwLDE0Mjc1OTQ0MDAsMTQ0NTc0MmUzLDE0NTkwNDRlMywxNDc3Nzk2NDAwLDE0OTA0OTM2MDAsMTUwOTI0NmUzLDE1MjE5NDMyMDAsMTU0MDY5NTYwMCwxNTUzOTk3NjAwLDE1NzIxNDUyMDAsMTU4NTQ0NzIwMCwxNjAzNTk0ODAwLDE2MTY4OTY4MDAsMTYzNTY0OTIwMCwxNjQ4MzQ2NDAwLDE2NjcwOTg4MDAsMTY3OTc5NmUzLDE2OTg1NDg0MDAsMTcxMTg1MDQwMCwxNzI5OTk4ZTMsMTc0MzNlNSwxNzYxNDQ3NjAwLDE3NzQ3NDk2MDAsMTc5Mjg5NzIwMCwxODA2MTk5MjAwLDE4MjQ5NTE2MDAsMTgzNzY0ODgwMCwxODU2NDAxMjAwLDE4NjkwOTg0MDAsMTg4Nzg1MDgwMCwxOTAxMTUyODAwLDE5MTkzMDA0MDAsMTkzMjYwMjQwMF0sb2Zmc2V0OlszOTIxLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMF19LCJFdXJvcGUvVmlsbml1cyI6ewp0aW1lOlstMjg0MDE0MDgwMCwtMTY3MjUzMTIwMCwtMTU4NTA5NDQwMCwtMTU2MTI0OGUzLC0xNTUzNTU4NDAwLC05MjgxOTUyMDAsLTkwMDExNTIwMCwtODU3MjVlNCwtODQ0NTUyODAwLC04MjgyMTk2MDAsLTgxMjQ5ODQwMCwtODAyMTM3NjAwLDM1NDkzMTIwMCwzNzA3NDI0MDAsMzg2NDY3MjAwLDQwMjI3ODQwMCw0MTgwMDMyMDAsNDMzODE0NDAwLDQ0OTYyNTYwMCw0NjUzNjEyMDAsNDgxMDgyNDAwLDQ5NjgxMDgwMCw1MTI1MzJlMyw1MjgyNjA0MDAsNTQzOTgxNjAwLDU1OTcxZTQsNTc1NDMxMjAwLDU5MTE1OTYwMCw2MDY4ODA4MDAsNjIyNjA5MjAwLDYzODMzMDQwMCw2NTQ2NjM2MDAsNjcwMzg0ODAwLDY4NjExMzIwMCw3MDE4MzQ0MDAsNzE3NTYyODAwLDczMzI4NGUzLDc0OTAxMjQwMCw3NjQ3MzM2MDAsNzgwNDYyZTMsNzk2MTgzMjAwLDgxMTkxMTYwMCw4MjgyMzc2MDAsODQ2Mzg1MjAwLDg1OTY4NzIwMCw4Nzc4MzQ4MDAsODkxMTQwNDAwLDkwOTI4NDQwMCw5MjI1ODY0MDAsOTQxMzM4ODAwLDEwNDg5OTMyMDAsMTA2NzE0MDgwMCwxMDgwNDQyODAwLDEwOTkxOTUyMDAsMTExMTg5MjQwMCwxMTMwNjQ0ODAwLDExNDMzNDJlMywxMTYyMDk0NDAwLDExNzQ3OTE2MDAsMTE5MzU0NGUzLDEyMDY4NDZlMywxMjI0OTkzNjAwLDEyMzgyOTU2MDAsMTI1NjQ0MzIwMCwxMjY5NzQ1MjAwLDEyODg0OTc2MDAsMTMwMTE5NDgwMCwxMzE5OTQ3MjAwLDEzMzI2NDQ0MDAsMTM1MTM5NjgwMCwxMzY0Njk4ODAwLDEzODI4NDY0MDAsMTM5NjE0ODQwMCwxNDE0Mjk2ZTMsMTQyNzU5OGUzLDE0NDU3NDU2MDAsMTQ1OTA0NzYwMCwxNDc3OGU1LDE0OTA0OTcyMDAsMTUwOTI0OTYwMCwxNTIxOTQ2ODAwLDE1NDA2OTkyMDAsMTU1NDAwMTIwMCwxNTcyMTQ4ODAwLDE1ODU0NTA4MDAsMTYwMzU5ODQwMCwxNjE2OTAwNDAwLDE2MzU2NTI4MDAsMTY0ODM1ZTQsMTY2NzEwMjQwMCwxNjc5Nzk5NjAwLDE2OTg1NTJlMywxNzExODU0ZTMsMTczMDAwMTYwMCwxNzQzMzAzNjAwLDE3NjE0NTEyMDAsMTc3NDc1MzIwMCwxNzkyOTAwODAwLDE4MDYyMDI4MDAsMTgyNDk1NTIwMCwxODM3NjUyNDAwLDE4NTY0MDQ4MDAsMTg2OTEwMmUzLDE4ODc4NTQ0MDAsMTkwMTE1NjQwMCwxOTE5MzA0ZTMsMTkzMjYwNmUzXSxvZmZzZXQ6WzYwNzYsNTA0MCw1NzM2LDM2MDAsNzIwMCwzNjAwLDEwODAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwxMDgwMCwxNDQwMCwxMDgwMCwxNDQwMCwxMDgwMCwxNDQwMCwxMDgwMCwxNDQwMCwxMDgwMCwxNDQwMCwxMDgwMCwxNDQwMCwxMDgwMCwxNDQwMCwxMDgwMCwxNDQwMCwxMDgwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCw3MjAwLDM2MDAsNzIwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDAsMTA4MDAsNzIwMCwxMDgwMCw3MjAwLDEwODAwLDcyMDBdfSwiRXVyb3BlL1dhcnNhdyI6ewp0aW1lOlstMjg0MDE0MDgwMCwtMTcxNzAyNzIwMCwtMTY5MzcwMjgwMCwtMTY4MDQ3NjQwMCwtMTY2MzQ1MmUzLC0xNjUwMTQyODAwLC0xNjMyMDAyNDAwLC0xNjE4NjkzMjAwLC0xNjAwNDY2NDAwLC0xNTg3MTU3MjAwLC0xNTAxNzE4NDAwLC05MzE3MzA0MDAsLTg1NzI1ZTQsLTg0NDU1MjgwMCwtODI4MjE5NjAwLC04MTI0OTg0MDAsLTc5NjYwMDgwMCwtNzc4NzIzMjAwLC03NjI2NTI4MDAsLTc0ODQ4MzIwMCwtNzMzMjY2ZTMsLTcxNTIxMmUzLC03MDE5MDI4MDAsLTY4NDk3MmUzLC02NzA0NTMyMDAsLTY1NDEyNzIwMCwtNjM5MDAzNjAwLC0zOTcwOTA4MDAsLTM4NjgwNTYwMCwtMzcxMDg0NDAwLC0zNTUzNTZlMywtMzM0MTkxNjAwLC0zMjMzMDE2MDAsLTMwNzU4MDQwMCwtMjkxODUyZTMsLTI3MTI5MjQwMCwtMjYwNDAyNDAwLC0yMzk4NDI4MDAsLTIyODk1MjgwMCwtMjA4MzkzMjAwLC0xOTc1MDMyMDAsLTE3NjMzODgwMCwtMTY2MDUzNjAwLDIyODg3NzIwMCwyNDQwMDA4MDAsMjYwMzI2ODAwLDI3NjA1NTIwMCwyOTE3NzY0MDAsMzA3NTA0ODAwLDMyMzgzMDgwMCwzMzg5NTQ0MDAsMzU0Njc1NjAwLDM3MDQwNGUzLDM4NjEyNTIwMCw0MDE4NTM2MDAsNDE3NTc0ODAwLDQzMzMwMzIwMCw0NDkwMjQ0MDAsNDY1MzU3NjAwLDQ4MTA3ODgwMCw0OTY4MDcyMDAsNTEyNTI4NDAwLDUyODI1NjgwMCw1NDM5NzhlMyw1NTk3MDY0MDAsNTc1NDMxMjAwLDU5MTE1OTYwMCw2MDY4ODA4MDAsNjIyNjA5MjAwLDYzODMzMDQwMCw2NTQ2NjM2MDAsNjcwMzg0ODAwLDY4NjExMzIwMCw3MDE4MzQ0MDAsNzE3NTYyODAwLDczMzI4NGUzLDc0OTAxMjQwMCw3NjQ3MzM2MDAsNzgwNDYyZTMsNzk2MTgzMjAwLDgxMTkxMTYwMCw4MjgyMzc2MDAsODQ2Mzg1MjAwLDg1OTY4NzIwMCw4Nzc4MzQ4MDAsODkxMTM2ODAwLDkwOTI4NDQwMCw5MjI1ODY0MDAsOTQxMzM4ODAwLDk1NDAzNmUzLDk3Mjc4ODQwMCw5ODU0ODU2MDAsMTAwNDIzOGUzLDEwMTc1NGU0LDEwMzU2ODc2MDAsMTA0ODk4OTYwMCwxMDY3MTM3MjAwLDEwODA0MzkyMDAsMTA5OTE5MTYwMCwxMTExODg4ODAwLDExMzA2NDEyMDAsMTE0MzMzODQwMCwxMTYyMDkwODAwLDExNzQ3ODhlMywxMTkzNTQwNDAwLDEyMDY4NDI0MDAsMTIyNDk5ZTQsMTIzODI5MmUzLDEyNTY0Mzk2MDAsMTI2OTc0MTYwMCwxMjg4NDk0ZTMsMTMwMTE5MTIwMCwxMzE5OTQzNjAwLDEzMzI2NDA4MDAsMTM1MTM5MzIwMCwxMzY0Njk1MjAwLDEzODI4NDI4MDAsMTM5NjE0NDgwMCwxNDE0MjkyNDAwLDE0Mjc1OTQ0MDAsMTQ0NTc0MmUzLDE0NTkwNDRlMywxNDc3Nzk2NDAwLDE0OTA0OTM2MDAsMTUwOTI0NmUzLDE1MjE5NDMyMDAsMTU0MDY5NTYwMCwxNTUzOTk3NjAwLDE1NzIxNDUyMDAsMTU4NTQ0NzIwMCwxNjAzNTk0ODAwLDE2MTY4OTY4MDAsMTYzNTY0OTIwMCwxNjQ4MzQ2NDAwLDE2NjcwOTg4MDAsMTY3OTc5NmUzLDE2OTg1NDg0MDAsMTcxMTg1MDQwMCwxNzI5OTk4ZTMsMTc0MzNlNSwxNzYxNDQ3NjAwLDE3NzQ3NDk2MDAsMTc5Mjg5NzIwMCwxODA2MTk5MjAwLDE4MjQ5NTE2MDAsMTgzNzY0ODgwMCwxODU2NDAxMjAwLDE4NjkwOTg0MDAsMTg4Nzg1MDgwMCwxOTAxMTUyODAwLDE5MTkzMDA0MDAsMTkzMjYwMjQwMF0sb2Zmc2V0Ols1MDQwLDUwNDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsNzIwMCwxMDgwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwXX0sIkV1cm9wZS9aYWdyZWIiOnsKdGltZTpbLTI3MTM5MTA0MDAsLTkwNTgyMTIwMCwtODU3MjVlNCwtODQ0NTUyODAwLC04MjgyMTk2MDAsLTgxMjQ5ODQwMCwtNzk2NzdlNCwtNzgxMDQ4ODAwLC03NjY2MTY0MDAsNDE3NTc4NDAwLDQzMzMwNjgwMCw0NDkwMjhlMyw0NjUzNjEyMDAsNDgxMDgyNDAwLDQ5NjgxMDgwMCw1MTI1MzJlMyw1MjgyNjA0MDAsNTQzOTgxNjAwLDU1OTcxZTQsNTc1NDMxMjAwLDU5MTE1OTYwMCw2MDY4ODA4MDAsNjIyNjA5MjAwLDYzODMzMDQwMCw2NTQ2NjM2MDAsNjcwMzg0ODAwLDY4NjExMzIwMCw3MDE4MzQ0MDAsNzE3NTYyODAwLDczMzI4NGUzLDc0OTAxMjQwMCw3NjQ3MzM2MDAsNzgwNDYyZTMsNzk2MTgzMjAwLDgxMTkxMTYwMCw4MjgyMzc2MDAsODQ2Mzg1MjAwLDg1OTY4NzIwMCw4Nzc4MzQ4MDAsODkxMTM2ODAwLDkwOTI4NDQwMCw5MjI1ODY0MDAsOTQxMzM4ODAwLDk1NDAzNmUzLDk3Mjc4ODQwMCw5ODU0ODU2MDAsMTAwNDIzOGUzLDEwMTc1NGU0LDEwMzU2ODc2MDAsMTA0ODk4OTYwMCwxMDY3MTM3MjAwLDEwODA0MzkyMDAsMTA5OTE5MTYwMCwxMTExODg4ODAwLDExMzA2NDEyMDAsMTE0MzMzODQwMCwxMTYyMDkwODAwLDExNzQ3ODhlMywxMTkzNTQwNDAwLDEyMDY4NDI0MDAsMTIyNDk5ZTQsMTIzODI5MmUzLDEyNTY0Mzk2MDAsMTI2OTc0MTYwMCwxMjg4NDk0ZTMsMTMwMTE5MTIwMCwxMzE5OTQzNjAwLDEzMzI2NDA4MDAsMTM1MTM5MzIwMCwxMzY0Njk1MjAwLDEzODI4NDI4MDAsMTM5NjE0NDgwMCwxNDE0MjkyNDAwLDE0Mjc1OTQ0MDAsMTQ0NTc0MmUzLDE0NTkwNDRlMywxNDc3Nzk2NDAwLDE0OTA0OTM2MDAsMTUwOTI0NmUzLDE1MjE5NDMyMDAsMTU0MDY5NTYwMCwxNTUzOTk3NjAwLDE1NzIxNDUyMDAsMTU4NTQ0NzIwMCwxNjAzNTk0ODAwLDE2MTY4OTY4MDAsMTYzNTY0OTIwMCwxNjQ4MzQ2NDAwLDE2NjcwOTg4MDAsMTY3OTc5NmUzLDE2OTg1NDg0MDAsMTcxMTg1MDQwMCwxNzI5OTk4ZTMsMTc0MzNlNSwxNzYxNDQ3NjAwLDE3NzQ3NDk2MDAsMTc5Mjg5NzIwMCwxODA2MTk5MjAwLDE4MjQ5NTE2MDAsMTgzNzY0ODgwMCwxODU2NDAxMjAwLDE4NjkwOTg0MDAsMTg4Nzg1MDgwMCwxOTAxMTUyODAwLDE5MTkzMDA0MDAsMTkzMjYwMjQwMF0sb2Zmc2V0OlszODMyLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwXX0sIkV1cm9wZS9adXJpY2giOnt0aW1lOlstMzY3NTE5NjgwMCwtMjM4NTI0NDgwMCwtOTA0NDMxNjAwLC04OTExMjI0MDAsLTg3Mjk4MmUzLC04NTk2NzI4MDAsMzU0Njc5MjAwLDM3MDQwNzYwMCwzODYxMjg4MDAsNDAxODU3MjAwLDQxNzU3ODQwMCw0MzMzMDY4MDAsNDQ5MDI4ZTMsNDY1MzYxMjAwLDQ4MTA4MjQwMCw0OTY4MTA4MDAsNTEyNTMyZTMsNTI4MjYwNDAwLDU0Mzk4MTYwMCw1NTk3MWU0LDU3NTQzMTIwMCw1OTExNTk2MDAsNjA2ODgwODAwLDYyMjYwOTIwMCw2MzgzMzA0MDAsNjU0NjYzNjAwLDY3MDM4NDgwMCw2ODYxMTMyMDAsNzAxODM0NDAwLDcxNzU2MjgwMCw3MzMyODRlMyw3NDkwMTI0MDAsNzY0NzMzNjAwLDc4MDQ2MmUzLDc5NjE4MzIwMCw4MTE5MTE2MDAsODI4MjM3NjAwLDg0NjM4NTIwMCw4NTk2ODcyMDAsODc3ODM0ODAwLDg5MTEzNjgwMCw5MDkyODQ0MDAsOTIyNTg2NDAwLDk0MTMzODgwMCw5NTQwMzZlMyw5NzI3ODg0MDAsOTg1NDg1NjAwLDEwMDQyMzhlMywxMDE3NTRlNCwxMDM1Njg3NjAwLDEwNDg5ODk2MDAsMTA2NzEzNzIwMCwxMDgwNDM5MjAwLDEwOTkxOTE2MDAsMTExMTg4ODgwMCwxMTMwNjQxMjAwLDExNDMzMzg0MDAsMTE2MjA5MDgwMCwxMTc0Nzg4ZTMsMTE5MzU0MDQwMCwxMjA2ODQyNDAwLDEyMjQ5OWU0LDEyMzgyOTJlMywxMjU2NDM5NjAwLDEyNjk3NDE2MDAsMTI4ODQ5NGUzLDEzMDExOTEyMDAsMTMxOTk0MzYwMCwxMzMyNjQwODAwLDEzNTEzOTMyMDAsMTM2NDY5NTIwMCwxMzgyODQyODAwLDEzOTYxNDQ4MDAsMTQxNDI5MjQwMCwxNDI3NTk0NDAwLDE0NDU3NDJlMywxNDU5MDQ0ZTMsMTQ3Nzc5NjQwMCwxNDkwNDkzNjAwLDE1MDkyNDZlMywxNTIxOTQzMjAwLDE1NDA2OTU2MDAsMTU1Mzk5NzYwMCwxNTcyMTQ1MjAwLDE1ODU0NDcyMDAsMTYwMzU5NDgwMCwxNjE2ODk2ODAwLDE2MzU2NDkyMDAsMTY0ODM0NjQwMCwxNjY3MDk4ODAwLDE2Nzk3OTZlMywxNjk4NTQ4NDAwLDE3MTE4NTA0MDAsMTcyOTk5OGUzLDE3NDMzZTUsMTc2MTQ0NzYwMCwxNzc0NzQ5NjAwLDE3OTI4OTcyMDAsMTgwNjE5OTIwMCwxODI0OTUxNjAwLDE4Mzc2NDg4MDAsMTg1NjQwMTIwMCwxODY5MDk4NDAwLDE4ODc4NTA4MDAsMTkwMTE1MjgwMCwxOTE5MzAwNDAwLDE5MzI2MDI0MDBdLApvZmZzZXQ6WzIwNDgsMTc4NiwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMCw3MjAwLDM2MDAsNzIwMCwzNjAwLDcyMDAsMzYwMF19LCJQYWNpZmljL0F1Y2tsYW5kIjp7dGltZTpbLTMxOTIzOTM2MDAsLTEzMzAyOTM2MDAsLTEzMjAwMTJlMywtMTMwMDY1ODQwMCwtMTI4NzM1MjgwMCwtMTI2OTIwODgwMCwtMTI1NTkwMzIwMCwtMTIzNzc1OTIwMCwtMTIyNDQ1MzYwMCwtMTIwNjMwOTYwMCwtMTE5MjM5OTIwMCwtMTE3NDg2ZTQsLTExNjA5NDk2MDAsLTExNDM0MTA0MDAsLTExMjU4NzEyMDAsLTExMTI1NjU2MDAsLTEwOTQ0MjE2MDAsLTEwODExMTZlMywtMTA2Mjk3MmUzLC0xMDQ5NjY2NDAwLC0xMDMxNTIyNDAwLC0xMDE4MjE2ODAwLC0xMDAwMDcyODAwLC05ODY3NjcyMDAsLTk2ODAxODQwMCwtOTU1MzE3NjAwLC05MzY1Njg4MDAsLTkyMzI2MzIwMCwtNzU3MzgyNDAwLDE1MjY3NmUzLDE2MjM1NjQwMCwxODM1MjA4MDAsMTk1MDE1NjAwLDIxNTU3NTIwMCwyMjY0NjUyMDAsMjQ3MDI0ODAwLDI1NzkxNDgwMCwyNzg0NzQ0MDAsMjg5MzY0NDAwLDMwOTkyNGUzLDMyMDgxNGUzLDM0MTM3MzYwMCwzNTIyNjM2MDAsMzcyODIzMjAwLDM4NDMxOGUzLDQwNDg3NzYwMCw0MTU3Njc2MDAsNDM2MzI3MjAwLDQ0NzIxNzIwMCw0Njc3NzY4MDAsNDc4NjY2ODAwLDQ5OTIyNjQwMCw1MTAxMTY0MDAsNTMwNjc2ZTMsNTQxNTY2ZTMsNTYyMTI1NjAwLDU3MzYyMDQwMCw1OTQxOGU0LDYwNTA3ZTQsNjIzODE1MjAwLDYzNzcyOTIwMCw2NTUyNjQ4MDAsNjY5MTc4ODAwLDY4NjcxNDQwMCw3MDA2Mjg0MDAsNzE4MTY0ZTMsNzMyNjgyODAwLDc0OTYxMzYwMCw3NjQxMzI0MDAsNzgxMDYzMjAwLDc5NTU4MmUzLDgxMjUxMjgwMCw4MjcwMzE2MDAsODQ0NTY3MjAwLDg1ODQ4MTIwMCw4NzYwMTY4MDAsODg5OTMwODAwLDkwNzQ2NjQwMCw5MjE5ODUyMDAsOTM4OTE2ZTMsOTUzNDM0ODAwLDk3MDM2NTYwMCw5ODQ4ODQ0MDAsMTAwMjQyZTQsMTAxNjMzNGUzLDEwMzM4Njk2MDAsMTA0Nzc4MzYwMCwxMDY1MzE5MjAwLDEwNzk4MzhlMywxMDk2NzY4ODAwLDExMTEyODc2MDAsMTEyODIxODQwMCwxMTQyNzM3MjAwLDExNTk2NjhlMywxMTc0MTg2ODAwLDExOTExMTc2MDAsMTIwNzQ1MDgwMCwxMjIyNTY3MjAwLDEyMzg5MDA0MDAsMTI1NDAxNjgwMCwxMjcwMzVlNCwxMjg1NDY2NDAwLDEzMDE3OTk2MDAsMTMxNjkxNmUzLDEzMzMyNDkyMDAsMTM0ODk3MDQwMCwxMzY1MzAzNjAwLDEzODA0MmU0LDEzOTY3NTMyMDAsMTQxMTg2OTYwMCwxNDI4MjAyODAwLDE0NDMzMTkyMDAsMTQ1OTY1MjQwMCwxNDc0NzY4ODAwLDE0OTExMDJlMywxNTA2MjE4NDAwLDE1MjI1NTE2MDAsMTUzODI3MjgwMCwxNTU0NjA2ZTMsMTU2OTcyMjQwMCwxNTg2MDU1NjAwLDE2MDExNzJlMywxNjE3NTA1MjAwLDE2MzI2MjE2MDAsMTY0ODk1NDgwMCwxNjY0MDcxMjAwLDE2ODA0MDQ0MDAsMTY5NTUyMDgwMCwxNzEyNDU4ODAwLDE3Mjc1NzUyMDAsMTc0MzkwODQwMCwxNzU5MDI0ODAwLDE3NzUzNThlMywxNzkwNDc0NDAwLDE4MDY4MDc2MDAsMTgyMTkyNGUzLDE4MzgyNTcyMDAsMTg1MzM3MzYwMCwxODY5NzA2ODAwLDE4ODU0MjhlMywxOTAxNzYxMjAwLDE5MTY4Nzc2MDAsMTkzMzIxMDgwMF0sb2Zmc2V0Ols0MTk0NCw0MTQwMCw0NWUzLDQxNDAwLDQzMjAwLDQxNDAwLDQzMjAwLDQxNDAwLDQzMjAwLDQxNDAwLDQzMjAwLDQxNDAwLDQzMjAwLDQxNDAwLDQzMjAwLDQxNDAwLDQzMjAwLDQxNDAwLDQzMjAwLDQxNDAwLDQzMjAwLDQxNDAwLDQzMjAwLDQxNDAwLDQzMjAwLDQxNDAwLDQzMjAwLDQxNDAwLDQzMjAwLDQzMjAwLDQ2ODAwLDQzMjAwLDQ2ODAwLDQzMjAwLDQ2ODAwLDQzMjAwLDQ2ODAwLDQzMjAwLDQ2ODAwLDQzMjAwLDQ2ODAwLDQzMjAwLDQ2ODAwLDQzMjAwLDQ2ODAwLDQzMjAwLDQ2ODAwLDQzMjAwLDQ2ODAwLDQzMjAwLDQ2ODAwLDQzMjAwLDQ2ODAwLDQzMjAwLDQ2ODAwLDQzMjAwLDQ2ODAwLDQzMjAwLDQ2ODAwLDQzMjAwLDQ2ODAwLDQzMjAwLDQ2ODAwLDQzMjAwLDQ2ODAwLDQzMjAwLDQ2ODAwLDQzMjAwLDQ2ODAwLDQzMjAwLDQ2ODAwLDQzMjAwLDQ2ODAwLDQzMjAwLDQ2ODAwLDQzMjAwLDQ2ODAwLDQzMjAwLDQ2ODAwLDQzMjAwLDQ2ODAwLDQzMjAwLDQ2ODAwLDQzMjAwLDQ2ODAwLDQzMjAwLDQ2ODAwLDQzMjAwLDQ2ODAwLDQzMjAwLDQ2ODAwLDQzMjAwLDQ2ODAwLDQzMjAwLDQ2ODAwLDQzMjAwLDQ2ODAwLDQzMjAwLDQ2ODAwLDQzMjAwLDQ2ODAwLDQzMjAwLDQ2ODAwLDQzMjAwLDQ2ODAwLDQzMjAwLDQ2ODAwLDQzMjAwLDQ2ODAwLDQzMjAwLDQ2ODAwLDQzMjAwLDQ2ODAwLDQzMjAwLDQ2ODAwLDQzMjAwLDQ2ODAwLDQzMjAwLDQ2ODAwLDQzMjAwLDQ2ODAwLDQzMjAwLDQ2ODAwLDQzMjAwLDQ2ODAwLDQzMjAwLDQ2ODAwLDQzMjAwLDQ2ODAwLDQzMjAwLDQ2ODAwLDQzMjAwLDQ2ODAwLDQzMjAwLDQ2ODAwLDQzMjAwLDQ2ODAwLDQzMjAwLDQ2ODAwLDQzMjAwLDQ2ODAwLDQzMjAwLDQ2ODAwXX0sIlBhY2lmaWMvQ2hhdGhhbSI6ewp0aW1lOlstMzE5MjM5MzYwMCwtNzU3MzgyNDAwLDE1MjY3ODcwMCwxNjIzNTkxMDAsMTgzNTIzNTAwLDE5NTAxODMwMCwyMTU1Nzc5MDAsMjI2NDY3OTAwLDI0NzAyNzUwMCwyNTc5MTc1MDAsMjc4NDc3MTAwLDI4OTM2NzEwMCwzMDk5MjY3MDAsMzIwODE2NzAwLDM0MTM3NjMwMCwzNTIyNjYzMDAsMzcyODI1OTAwLDM4NDMyMDcwMCw0MDQ4ODAzMDAsNDE1NzcwMzAwLDQzNjMyOTkwMCw0NDcyMTk5MDAsNDY3Nzc5NTAwLDQ3ODY2OTUwMCw0OTkyMjkxMDAsNTEwMTE5MTAwLDUzMDY3ODcwMCw1NDE1Njg3MDAsNTYyMTI4MzAwLDU3MzYyMzEwMCw1OTQxODI3MDAsNjA1MDcyNzAwLDYyMzgxNzkwMCw2Mzc3MzE5MDAsNjU1MjY3NTAwLDY2OTE4MTUwMCw2ODY3MTcxMDAsNzAwNjMxMTAwLDcxODE2NjcwMCw3MzI2ODU1MDAsNzQ5NjE2MzAwLDc2NDEzNTEwMCw3ODEwNjU5MDAsNzk1NTg0NzAwLDgxMjUxNTUwMCw4MjcwMzQzMDAsODQ0NTY5OTAwLDg1ODQ4MzkwMCw4NzYwMTk1MDAsODg5OTMzNTAwLDkwNzQ2OTEwMCw5MjE5ODc5MDAsOTM4OTE4NzAwLDk1MzQzNzUwMCw5NzAzNjgzMDAsOTg0ODg3MTAwLDEwMDI0MjI3MDAsMTAxNjMzNjcwMCwxMDMzODcyMzAwLDEwNDc3ODYzMDAsMTA2NTMyMTkwMCwxMDc5ODQwNzAwLDEwOTY3NzE1MDAsMTExMTI5MDMwMCwxMTI4MjIxMTAwLDExNDI3Mzk5MDAsMTE1OTY3MDcwMCwxMTc0MTg5NTAwLDExOTExMjAzMDAsMTIwNzQ1MzUwMCwxMjIyNTY5OTAwLDEyMzg5MDMxMDAsMTI1NDAxOTUwMCwxMjcwMzUyNzAwLDEyODU0NjkxMDAsMTMwMTgwMjMwMCwxMzE2OTE4NzAwLDEzMzMyNTE5MDAsMTM0ODk3MzEwMCwxMzY1MzA2MzAwLDEzODA0MjI3MDAsMTM5Njc1NTkwMCwxNDExODcyMzAwLDE0MjgyMDU1MDAsMTQ0MzMyMTkwMCwxNDU5NjU1MTAwLDE0NzQ3NzE1MDAsMTQ5MTEwNDcwMCwxNTA2MjIxMTAwLDE1MjI1NTQzMDAsMTUzODI3NTUwMCwxNTU0NjA4NzAwLDE1Njk3MjUxMDAsMTU4NjA1ODMwMCwxNjAxMTc0NzAwLDE2MTc1MDc5MDAsMTYzMjYyNDMwMCwxNjQ4OTU3NTAwLDE2NjQwNzM5MDAsMTY4MDQwNzEwMCwxNjk1NTIzNTAwLDE3MTI0NjE1MDAsMTcyNzU3NzkwMCwxNzQzOTExMTAwLDE3NTkwMjc1MDAsMTc3NTM2MDcwMCwxNzkwNDc3MTAwLDE4MDY4MTAzMDAsMTgyMTkyNjcwMCwxODM4MjU5OTAwLDE4NTMzNzYzMDAsMTg2OTcwOTUwMCwxODg1NDMwNzAwLDE5MDE3NjM5MDAsMTkxNjg4MDMwMCwxOTMzMjEzNTAwXSxvZmZzZXQ6WzQ0MDI4LDQ0MTAwLDQ1OTAwLDQ5NTAwLDQ1OTAwLDQ5NTAwLDQ1OTAwLDQ5NTAwLDQ1OTAwLDQ5NTAwLDQ1OTAwLDQ5NTAwLDQ1OTAwLDQ5NTAwLDQ1OTAwLDQ5NTAwLDQ1OTAwLDQ5NTAwLDQ1OTAwLDQ5NTAwLDQ1OTAwLDQ5NTAwLDQ1OTAwLDQ5NTAwLDQ1OTAwLDQ5NTAwLDQ1OTAwLDQ5NTAwLDQ1OTAwLDQ5NTAwLDQ1OTAwLDQ5NTAwLDQ1OTAwLDQ5NTAwLDQ1OTAwLDQ5NTAwLDQ1OTAwLDQ5NTAwLDQ1OTAwLDQ5NTAwLDQ1OTAwLDQ5NTAwLDQ1OTAwLDQ5NTAwLDQ1OTAwLDQ5NTAwLDQ1OTAwLDQ5NTAwLDQ1OTAwLDQ5NTAwLDQ1OTAwLDQ5NTAwLDQ1OTAwLDQ5NTAwLDQ1OTAwLDQ5NTAwLDQ1OTAwLDQ5NTAwLDQ1OTAwLDQ5NTAwLDQ1OTAwLDQ5NTAwLDQ1OTAwLDQ5NTAwLDQ1OTAwLDQ5NTAwLDQ1OTAwLDQ5NTAwLDQ1OTAwLDQ5NTAwLDQ1OTAwLDQ5NTAwLDQ1OTAwLDQ5NTAwLDQ1OTAwLDQ5NTAwLDQ1OTAwLDQ5NTAwLDQ1OTAwLDQ5NTAwLDQ1OTAwLDQ5NTAwLDQ1OTAwLDQ5NTAwLDQ1OTAwLDQ5NTAwLDQ1OTAwLDQ5NTAwLDQ1OTAwLDQ5NTAwLDQ1OTAwLDQ5NTAwLDQ1OTAwLDQ5NTAwLDQ1OTAwLDQ5NTAwLDQ1OTAwLDQ5NTAwLDQ1OTAwLDQ5NTAwLDQ1OTAwLDQ5NTAwLDQ1OTAwLDQ5NTAwLDQ1OTAwLDQ5NTAwLDQ1OTAwLDQ5NTAwLDQ1OTAwLDQ5NTAwLDQ1OTAwLDQ5NTAwLDQ1OTAwLDQ5NTAwLDQ1OTAwLDQ5NTAwXX0sIlBhY2lmaWMvRmFrYW9mbyI6e3RpbWU6Wy0yMTc3NDUyODAwLDEzMjUyMDMyMDAsMTkyNTAzODgwMF0sb2Zmc2V0OlstNDEwOTYsLTM5NjAwLDQ2ODAwXX0sIlBhY2lmaWMvSG9ub2x1bHUiOnt0aW1lOlstMjMzNDEzOTIwMCwtMTE1NzMyMDgwMCwtMTE1NTQ3MDQwMCwtODgwMjM2ZTMsLTc2OTQyOTgwMCwtNzY1NDEwNDAwLC03MTIxODhlMywxOTI0OTU2ZTNdLG9mZnNldDpbLTM3ODg2LC0zNzgwMCwtMzQyMDAsLTM3ODAwLC0zNDIwMCwtMzQyMDAsLTM3ODAwLC0zNmUzXX0sIlBhY2lmaWMvTm9yZm9sayI6e3RpbWU6Wy0yMTc3NDUyODAwLC01OTk2MTZlMywxNTIwNzEyMDAsMTYyOTYxMjAwLDE0NDM5MjRlMywxNTcwMzI3MjAwLDE1ODYwNTU2MDAsMTYwMTc3NjgwMCwxNjE3NTA1MjAwLDE2MzMyMjY0MDAsMTY0ODk1NDgwMCwxNjY0Njc2ZTMsMTY4MDQwNDQwMCwxNjk2MTI1NjAwLDE3MTI0NTg4MDAsMTcyODE4ZTQsMTc0MzkwODQwMCwxNzU5NjI5NjAwLDE3NzUzNThlMywxNzkxMDc5MjAwLDE4MDY4MDc2MDAsMTgyMjUyODgwMCwxODM4MjU3MjAwLDE4NTM5Nzg0MDAsMTg2OTcwNjgwMCwxODg2MDMyODAwLDE5MDE3NjEyMDAsMTkxNzQ4MjQwMCwxOTMzMjEwODAwXSxvZmZzZXQ6WzQwMzEyLDQwMzIwLDQxNDAwLDQ1ZTMsNDE0MDAsMzk2MDAsNDMyMDAsMzk2MDAsNDMyMDAsMzk2MDAsNDMyMDAsMzk2MDAsNDMyMDAsMzk2MDAsNDMyMDAsMzk2MDAsNDMyMDAsMzk2MDAsNDMyMDAsMzk2MDAsNDMyMDAsMzk2MDAsNDMyMDAsMzk2MDAsNDMyMDAsMzk2MDAsNDMyMDAsMzk2MDAsNDMyMDBdfSwiVVMvTW91bnRhaW4iOnsKdGltZTpbLTI3MTc2Njg3OTYsLTE2MzMyOTg0MDAsLTE2MTUxNTQ0MDAsLTE2MDE4NDg4MDAsLTE1ODM3MDQ4MDAsLTE1NzAzOTkyMDAsLTE1NTE2NTA0MDAsLTE1Mzg5NDk2MDAsLTE1MzQxMTEyMDAsLTg4MDIzNmUzLC03Njk0MTcyMDAsLTc2NTQxMDQwMCwtMTQ3OTA5NjAwLC0xMzE1OGU0LC0xMTY0NmU0LC0xMDAxMzA0MDAsLTg0NDA1NjAwLC02ODY4MDgwMCwtNTI5NTZlMywtMzcyMzEyMDAsLTIxNTA2NDAwLC01NzgxNjAwLDk5NDMyMDAsMjU2NjhlMyw0MTM5MjgwMCw1NzcyMjQwMCw3MzQ0NzIwMCw4OTE3MmUzLDEwNDg5NjgwMCwxMjA2MjE2MDAsMTI2NjY5NjAwLDE1MjA3MTIwMCwxNjIzNTI4MDAsMTgzNTIwODAwLDE5OTI0NTYwMCwyMTU1NzUyMDAsMjMwNjk1MjAwLDI0NzAyNDgwMCwyNjI3NDk2MDAsMjc4NDc0NDAwLDI5NDE5OTIwMCwzMDk5MjRlMywzMjU2NDg4MDAsMzQxMzczNjAwLDM1NzA5ODQwMCwzNzI4MjMyMDAsMzg4NTQ4ZTMsNDA0ODc3NjAwLDQxOTk5NzYwMCw0MzYzMjcyMDAsNDUyMDUyZTMsNDY3Nzc2ODAwLDQ4MzUwMTYwMCw0OTkyMjY0MDAsNTE0OTUxMjAwLDUzMDY3NmUzLDU0NDU4NjQwMCw1NjIxMjU2MDAsNTc2MDM2ZTMsNTk0MThlNCw2MDc0ODU2MDAsNjI1NjI5NjAwLDYzODkzNTIwMCw2NTcwNzkyMDAsNjcwOTg5NjAwLDY4ODUyODgwMCw3MDI0MzkyMDAsNzE5OTc4NDAwLDczMzg4ODgwMCw3NTIwMzI4MDAsNzY1MzM4NDAwLDc4MzQ4MjQwMCw3OTY3ODhlMyw4MTQ5MzJlMyw4Mjg4NDI0MDAsODQ2MzgxNjAwLDg2MDI5MmUzLDg3NzgzMTIwMCw4OTE3NDE2MDAsOTA5MjgwODAwLDkyMzE5MTIwMCw5NDEzMzUyMDAsOTU0NjQwODAwLDk3Mjc4NDgwMCw5ODYwOTA0MDAsMTAwNDIzNDQwMCwxMDE4MTQ0ODAwLDEwMzU2ODRlMywxMDQ5NTk0NDAwLDEwNjcxMzM2MDAsMTA4MTA0NGUzLDEwOTkxODhlMywxMTEyNDkzNjAwLDExMzA2Mzc2MDAsMTE0Mzk0MzIwMCwxMTYyMDg3MjAwLDExNzM1Nzg0MDAsMTE5NDE0MTYwMCwxMjA1MDI4ZTMsMTIyNTU5MTIwMCwxMjM2NDc3NjAwLDEyNTcwNDA4MDAsMTI2ODUzMmUzLDEyODkwOTUyMDAsMTI5OTk4MTYwMCwxMzIwNTQ0ODAwLDEzMzE0MzEyMDAsMTM1MTk5NDQwMCwxMzYyODgwODAwLDEzODM0NDRlMywxMzk0MzMwNDAwLDE0MTQ4OTM2MDAsMTQyNTc4ZTQsMTQ0NjM0MzIwMCwxNDU3ODM0NDAwLDE0NzgzOTc2MDAsMTQ4OTI4NGUzLDE1MDk4NDcyMDAsMTUyMDczMzYwMCwxNTQxMjk2ODAwLDE1NTIxODMyMDAsMTU3Mjc0NjQwMCwxNTgzNjMyODAwLDE2MDQxOTZlMywxNjE1Njg3MjAwLDE2MzYyNTA0MDAsMTY0NzEzNjgwMCwxNjY3N2U1LDE2Nzg1ODY0MDAsMTY5OTE0OTYwMCwxNzEwMDM2ZTMsMTczMDU5OTIwMCwxNzQxNDg1NjAwLDE3NjIwNDg4MDAsMTc3MjkzNTIwMCwxNzkzNDk4NDAwLDE4MDQ5ODk2MDAsMTgyNTU1MjgwMCwxODM2NDM5MjAwLDE4NTcwMDI0MDAsMTg2Nzg4ODgwMCwxODg4NDUyZTMsMTg5OTMzODQwMCwxOTE5OTAxNjAwLDE5MzA3ODhlM10sb2Zmc2V0OlstMjUxOTYsLTI1MjAwLC0yMTYwMCwtMjUyMDAsLTIxNjAwLC0yNTIwMCwtMjE2MDAsLTI1MjAwLC0yMTYwMCwtMjUyMDAsLTIxNjAwLC0yMTYwMCwtMjUyMDAsLTIxNjAwLC0yNTIwMCwtMjE2MDAsLTI1MjAwLC0yMTYwMCwtMjUyMDAsLTIxNjAwLC0yNTIwMCwtMjE2MDAsLTI1MjAwLC0yMTYwMCwtMjUyMDAsLTIxNjAwLC0yNTIwMCwtMjE2MDAsLTI1MjAwLC0yMTYwMCwtMjUyMDAsLTIxNjAwLC0yNTIwMCwtMjE2MDAsLTI1MjAwLC0yMTYwMCwtMjUyMDAsLTIxNjAwLC0yNTIwMCwtMjE2MDAsLTI1MjAwLC0yMTYwMCwtMjUyMDAsLTIxNjAwLC0yNTIwMCwtMjE2MDAsLTI1MjAwLC0yMTYwMCwtMjUyMDAsLTIxNjAwLC0yNTIwMCwtMjE2MDAsLTI1MjAwLC0yMTYwMCwtMjUyMDAsLTIxNjAwLC0yNTIwMCwtMjE2MDAsLTI1MjAwLC0yMTYwMCwtMjUyMDAsLTIxNjAwLC0yNTIwMCwtMjE2MDAsLTI1MjAwLC0yMTYwMCwtMjUyMDAsLTIxNjAwLC0yNTIwMCwtMjE2MDAsLTI1MjAwLC0yMTYwMCwtMjUyMDAsLTIxNjAwLC0yNTIwMCwtMjE2MDAsLTI1MjAwLC0yMTYwMCwtMjUyMDAsLTIxNjAwLC0yNTIwMCwtMjE2MDAsLTI1MjAwLC0yMTYwMCwtMjUyMDAsLTIxNjAwLC0yNTIwMCwtMjE2MDAsLTI1MjAwLC0yMTYwMCwtMjUyMDAsLTIxNjAwLC0yNTIwMCwtMjE2MDAsLTI1MjAwLC0yMTYwMCwtMjUyMDAsLTIxNjAwLC0yNTIwMCwtMjE2MDAsLTI1MjAwLC0yMTYwMCwtMjUyMDAsLTIxNjAwLC0yNTIwMCwtMjE2MDAsLTI1MjAwLC0yMTYwMCwtMjUyMDAsLTIxNjAwLC0yNTIwMCwtMjE2MDAsLTI1MjAwLC0yMTYwMCwtMjUyMDAsLTIxNjAwLC0yNTIwMCwtMjE2MDAsLTI1MjAwLC0yMTYwMCwtMjUyMDAsLTIxNjAwLC0yNTIwMCwtMjE2MDAsLTI1MjAwLC0yMTYwMCwtMjUyMDAsLTIxNjAwLC0yNTIwMCwtMjE2MDAsLTI1MjAwLC0yMTYwMCwtMjUyMDAsLTIxNjAwLC0yNTIwMCwtMjE2MDAsLTI1MjAwLC0yMTYwMCwtMjUyMDAsLTIxNjAwLC0yNTIwMCwtMjE2MDAsLTI1MjAwLC0yMTYwMCwtMjUyMDBdfX19fV0pOw=="}},"time_used":4,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":4,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"digital-assettrade.com/assets/images/logoIcon/logo.png","fqdn":"digital-assettrade.com","domain":"digital-assettrade.com","tld":"com"},"ip":{"addr":"5.182.208.207","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://digital-assettrade.com/","date":"2026-07-27T10:27:12.053Z","timestamp":1785148032053,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"digital-assettrade.com","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Sat, 20 Jun 2026 16:59:16 GMT","end":"Fri, 18 Sep 2026 16:59:15 GMT"},"fingerprint":{"sha1":"01:E1:B4:F9:5D:C1:12:F0:96:4A:57:43:D3:BB:2D:2B:F2:BE:B0:FC","sha256":"A8:D5:A6:4E:32:4D:7C:DD:DA:A5:73:54:3A:4A:4B:A5:0E:50:6F:09:0E:F5:B9:74:AC:9A:03:38:4D:A3:42:85"}}},"request":{"raw":"GET /assets/images/logoIcon/logo.png HTTP/1.1\r\nHost: digital-assettrade.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://digital-assettrade.com/\r\nCookie: XSRF-TOKEN=eyJpdiI6IlBJZ3lRZTB2d214bVhnZk5JbmtvaWc9PSIsInZhbHVlIjoiOWllUUw0S1NpMERaV0d2c2FYTDF0YndkRm5iSHg5RGJOMTVmNEltV2lONmQ5RlhjdjhvR0syQVZyZGdYanU1OEMwUkhQVVdndjRJelQzdWxmQldFejlZc2c4K1RKbktYZ2NySWpkQkdLTEV3czBrQyt5RE9TTHRSQk5BYkRvZEMiLCJtYWMiOiJkZDhhNjRlM2IzMGU1NTc4NDFkOGUyNGM0M2IyYTFkYjk3MDUxYTIwOGM5OTUwNDM2MmNhNjYzNjUwMTliN2EyIiwidGFnIjoiIn0%3D; digitalassettrade_session=eyJpdiI6InppdHd5OXFTcGhzM0xrUzhKN0NmQ2c9PSIsInZhbHVlIjoiNytzaTJ2ekZZSE9MTU9oYTdHZWwxeWl5YUl6ZDJSZ2UxSDhBZ0FCUmoxbFlrYU5kNXpTZnRqMTNTNERMaEpGM0srWk1KZ2YrcFNUalloQVkrTGEvSXBCVFU2blExUlgyTDFhckFkdlg0bHNjSVYrQWltRENjeDJ5QWNnQUk3RGciLCJtYWMiOiJhZDEzNWUwOGYyMzcwOGNkYjRlMGY4NmJhMDBlY2Y5OTdjYmUyMjRkNWY1N2NmODMwNWE1MDUxNjg1ZDMxOWE2IiwidGFnIjoiIn0%3D\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=5, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncache-control: public, max-age=604800\r\nexpires: Mon, 03 Aug 2026 10:27:12 GMT\r\ncontent-type: image/png\r\nlast-modified: Tue, 21 Apr 2026 01:31:54 GMT\r\naccept-ranges: bytes\r\ncontent-length: 32263\r\ndate: Mon, 27 Jul 2026 10:27:12 GMT\r\nserver: LiteSpeed\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"LiteSpeed","description":"LiteSpeed is a high-scalability web server.","website":"https://litespeedtech.com","common_platform_enumeration":"cpe:2.3:a:litespeedtech:litespeed_web_server:*:*:*:*:*:*:*:*","icon":"LiteSpeed.svg","categories":["Web servers"]}],"data":{"size":32263,"size_decoded":32529,"mime_type":"image/png","magic":"PNG image data, 1318 x 369, 8-bit/color RGBA, non-interlaced","md5":"f458e999314410db42a0f19e6afc3c4b","sha1":"c0c2f2120cf89ada36291b7a01885e642ece7bc2","sha256":"f138ab483fab3df90d583cbc64ec0924b54fde52f2f485b05d3a05edf8b681a0","sha512":"31b0730d4dabff877e360a9455f0f8aff684a1c685193ef8a90be84d46428ada1ab9a7d30ae040c9c1ea8bcd8c66fb6823d1e390dac7d1640a064f49fc811c03","ssdeep":"768:l8hxx2ZiUVhoFK6B5c9QiL6SkAwM0uKIqXXTO:l8Hx2ZiriLYAwcKImO","tlshash":"62e2e088fba22788d4d5043eaed56ff837fc6569c1422763775788a46acf3ddc820a10","first_seen":"2026-07-27T07:37:36.925555Z","last_seen":"2026-07-27T10:28:13.723555Z","times_seen":3,"resource_available":false,"data":"iVBORw0KGgoAAAANSUhEUgAABSYAAAFxCAYAAABulnYXAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAgAElEQVR4nOzdeZxU9Z3v//dZamuaommgaZpVRERAJIiIBBEJwTVq1CRqzDLZzPJLHCeTmZuZn5NHbn6Z3Mzc3MRkMvklxiRmcZJxX6LGfcENURERERHZaRpomkPTp7qW871/nEKJYNPdVNWp7n49H/YDbKq/59Onqvt8z7u+i2WMEQAAAAAAAABUkh11AQAAAAAAAAAGHoJJAAAAAAAAABVHMAkAAAAAAACg4ggmAQAAAAAAAFQcwSQAAAAAAACAiiOYBAAAAAAAAFBxBJMAAAAAAAAAKo5gEgAAAAAAAEDFEUwCAAAAAAAAqDiCSQAAAAAAAAAVRzAJAAAAAAAAoOIIJgEAAAAAAABUHMEkAAAAAAAAgIojmAQAAAAAAABQcQSTAAAAAAAAACqOYBIAAAAAAABAxRFMAgAAAAAAAKg4gkkAAAAAAAAAFUcwCQAAAAAAAKDiCCYBAAAAAAAAVBzBJAAAAAAAAICKI5gEAAAAAAAAUHEEkwAAAAAAAAAqjmASAAAAAAAAQMURTAIAAAAAAACoOIJJAAAAAAAAABVHMAkAAAAAAACg4ggmAQAAAAAAAFQcwSQAAAAAAACAiiOYBAAAAAAAAFBxBJMAAAAAAAAAKo5gEgAAAAAAAEDFEUwCAAAAAAAAqDiCSQAAAAAAAAAVRzAJAAAAAAAAoOIIJgEAAAAAAABUHMEkAAAAAAAAgIojmAQAAAAAAABQcQSTAAAAAAAAACqOYBIAAAAAAABAxRFMAgAAAAAAAKg4gkkAAAAAAAAAFUcwCQAAAAAAAKDiCCYBAAAAAAAAVBzBJAAAAAAAAICKI5gEAAAAAAAAUHEEkwAAAAAAAAAqjmASAAAAAAAAQMURTAIAAAAAAACoOIJJAAAAAAAAABVHMAkAAAAAAACg4ggmAQAAAAAAAFQcwSQAAAAAAACAiiOYBAAAAAAAAFBxBJMAAAAAAAAAKo5gEgAAAAAAAEDFEUwCAAAAAAAAqDiCSQAAAAAAAAAVRzAJAAAAAAAAoOIIJgEAAAAAAABUHMEkAAAAAAAAgIojmAQAAAAAAABQcQSTAAAAAAAAACqOYBIAAAAAAABAxRFMAgAAAAAAAKg4gkkAAAAAAAAAFUcwCQAAAAAAAKDiCCYBAAAAAAAAVBzBJAAAAAAAAICKI5gEAAAAAAAAUHEEkwAAAAAAAAAqjmASAAAAAAAAQMURTAIAAAAAAACoOIJJAAAAAAAAABVHMAkAAAAAAACg4ggmAQAAAAAAAFQcwSQAAAAAAACAiiOYBAAAAAAAAFBxBJMAAAAAAAAAKo5gEgAAAAAAAEDFEUwCAAAAAAAAqDiCSQAAAAAAAAAVRzAJAAAAAAAAoOIIJgEAAAAAAABUHMEkAAAAAAAAgIojmAQAAAAAAABQcQSTAAAAAAAAACqOYBIAAAAAAABAxRFMAgAAAAAAAKg4gskBJjDb5+Z33zY56joAAAAAAAAwsFnGmKhrQJnt2/tEPLn1lqlWTtMzGvwVy8qtSzjez63GyVucYX+3Ier6AAAAAAAAMPAQTPZj+x84bZwZunBi3o5/yLxx08VWx4ZxKuRtWa4Uq/U0/KTV8SmfusHN7r0tfsLftkZdLwAAAAAAAAYOgsl+qP3Bn8TtqfULgxU/vTq/7YX5Rtm0FZOsmCRLkgk/TEaSlcq4Q054xJl27sPWkFOeSDZdsDza6gEAAAAAADAQEEz2J/t+Wpt97vb5fov5RBBrXWh3vtEks19yiv/+7qfakhRIJi8p2ZSxYsdvcO2aG5NTxt7iTLlgi7GmZC0dE1T2mwAAAAAAAMBAQDDZD3SuvaE+O37SZbknf/RhZ/ujU6W9TSaQLEdh+NgdBckEkhVzs0Fs8ipNv/L2mqZTf5SoW9ReztoBAAAAAAAwMBFM9lXmtdpCfve4zif+5dzc1lWfNW5+ogp745YVdD+MfK+mjSQl87LHrI6PnnBrbPYVj5j2wSvjIy/1SlE6AAAAAAAAQDDZx2Tbf2c77XvqC/sS3+x44/5zg51Pj3OclhpJRx1IHiKQgkJNYFLHtsQaZ98Tj02529Rmnk3O+JeWEh8JAAAAAAAAAwzBZB+RufEcV2d9ekmhY+upeu2OufnmFxbJ7XDlVqiAnGTyjuymRfcnTv3a7bG47rEHn7+tQkcHAAAAAABAP0Mw2QfkNv5weueDP/5srqbzCmNiDba/SVYqgkIsKeiQ7BHz2uOp2nti4465XsdeuMaNnUNACQAAAAAAgB4hmKxi2bd+19i5/YUvBLtevETeszNkcuF0bVuH7rBdKZakvCRjy6k7fkNQM31NcvSpN8QnTr5NyQ+xgzcAAAAAAAC6hWCyyniPfdkNZn9yrv3aby/UW0/NL3Ssmi0TuHY86soOZXLhTt52vK7VqZu+LJh20YPOsDPvGJSetT7q2gAAAAAAAFDdCCarRM572i68+C+f6dz06uWF2JgpVufrTba9T3KirqwbjGQKkrFH5e34uLVWZv3y5ILPXhc/5nsvRl0aAAAAAAAAqhPBZMRyj18Zz8XHzijEB10SvHb9lSpsHiPHlH6H7Uo48FIq1GRVd9Ly2PFX/C5eO+J+d8zHNkRZFgAAAAAAAKoPwWREOoMXmsy6B+eY1+8+I7Nj2Scl1VvJvKy+GEgehslLJheTO+x998ePnfsXq2nOCjvW8LQ75IPZqGsDAAAAAABA9AgmK23ff9Tuf/CmuZ0jpnzJbH74bKdzW40Vy0e7oU25WJKyUhCkpFGnr3cs+8ZEct9NiYVL10VdGgAAAAAAAKJFMFkhpmNVo7992WeCzX8+2TQ/uzBo31avpPpnIHk4OUmBJXvI8cvtMeesdI+98O7E8DPuiLosAAAAAAAARINgsswyemRC8NpdCwqvPf/5QmbdXNO507VdEwaSA5DJSUZx2bUzdrmDR/3KmXzan+2mU9fGE4uao64NAAAAAAAAlUMwWQbZTf/fhI77rr1B6frGwuCFu6z252c6/ua0XA3YQPIQBcmYeGBSJzRbqcZV2v1AZtDUT3zJmXH+Ljv5EdahBAAAAAAA6OfcqAvoV7w/2zmNmJXbs+/DViwxV4XWGnfPbeFai/Goi6syjmSZrG1lX25S9uUmaXA227rherdl591m3x8eSE77+PqoSwQAAAAAAED5MGKyBNr1Yjq25bbhZuOmJf72DV8v7F09KZbYHQaS6DZTkHK5UUo2nvxAbNTx3y6Mn7160LDL2qKuCwAAAAAAAKVHMHkUcs9e1JgzJ1yUH1J/ZrD+lulqWTbVikmWI3Fae8eyJNMpKTnGc6Z+9oH8upufrEklbomf++K2qGsDAAAAAABA6RBM9kKQX+dmd704r/DSddfkt664wASdttyCrETUlfUTlqS8ZDKSbEtu/bT7YzM//jMz/IyHkunTOqIuDwAAAAAAAEePYLIHCp1/qC2sfWpSriV7VXbPqxepfXmj7ebDIM2SxKksreI5NQVbxhrd6oycf0d81HE/t1LJDR2J8R21DRMyscS8fNRlAgAAAAAAoOcIJrsht+Zf4/mxH5yceeln37S3PjbX+G9NlCTLFetIVogpSDKSFRu7zQw6doOZcNbammNO/bO17c5741N+xChKAAAAAACAPoZgsgtB9pEx2vHUjMyqBz+S3f3m2dKORksFwsgoBZIsS0ZJyR7Tkjh2+i8TUz5wuzV47lrLPtmLujwAAAAAAAB0D8Hku3QUHnC17PfpwG6c1dm+/Rva/OAC12pJyuU8VZ1AKuTiKsTGtsYmXXxT7aT3X1/wN22wxp3UHteCIOryAAAAAAAA8N4IJg/SvuWGhUHW/6C17s8zg61PLpS1v0axqKtCl6xwAGvgS5ZT3+KMX/SIc/xFL2n72sdSJ397WdTlAQAAAAAA4PAGfDBZyK+2rd3Pj8mtuul8v3ndNUHBn2Rlt8tOiinbfYklqSAFnZKVmpi1OndtShyz5Nr4wo8/ZFsX7Yq6PAAAAAAAAPy1AR1MmtZlNe3r7v9yftszH3H2PTvVBG21OrChzcA9LX2bpXAdSiMZu6EtGDb/2cTEc38+aPJn74i6NAAAAAAAALxjwAWTHU99M25O+uB888ZtH9Rby+fn2lfOVsFP2q4kRwSS/YgpSEFeshINu9wh05Y5J539pHGn3z9o1Lkroq4NAAAAAABgoBswwaQxD9vZF//34szLy74eJBpmq7ClzlK7bdliynZ/F0gmkIzbmLdMusXKbF5ee/ql37Unf2qFZX0gG3V5AAAAAAAAA1G/DyYLLb+18+6YqZk37/qsWXv7RVZuywS5xQ2bCSQHFqPwOc/FAis1fr018bJlds2kP9gttz+ROvOO9qjLAwAAAAAAGEj6bTCZNS+OC7Y9NtfasmZa57qHLi74b023E5LsqCtDVTBS0OnIdoa1uiOn3mvPuPK/zOubnq1Z9O3WqEsDAAAAAAAYCPpfMNl5UzK3fvvizj1vfja//bEFanut3oqL9SNxqOImRyaIS6lJLZZn7h00ZeF33Hn/uT7q0gAAAAAAAPq7fhNMBnpjeMeWFz6nt+45Odhw98Ig4w23kmKEJLqnIJnAkj1k+ov2xPPujB338V8laqZvibosAAAAAACA/qpPB5OZ9T+2Nf6Eidar98zPbVl7ec57bbE6Ntp2TASS6JUgJxmnRm56xnIrXnu7c+rFS409evWgugt2RV0bAAAAAABAf9Jng8lg2UfH7PeCC/L+/s/be5ZNVqG1Ro7CKdvA0TAKd/JWMggGzdxkOTVrnX1Pra495ePX2lNuYJMcAAAAAACAEuhbwaR3n521hs7Nb7p/YWHVb84LMlvnys7bssQO2yg9o3d28s7XtdoN0x6wpl/1YGLEtCdiqVnrIq4OAAAAAACgT+sTwWS2sDRpNj810WzfuCTT/MZVhd0rpjjx3bKc6q+9qhjJFCTZksVU954xUiHjKueMV3zMrHsHDWm4oTD8xOWpiVdtiro0AAAAAACAvqjqg8nONd+fnrN0eWHdnReYHc9Mt2Jih+2eMpLJSla8LuvEB7eazvZ0kNtTI1dMfe8JS7KMFGQly6rJW2POetodd9YNNUOH3KURl7VFXR4AAAAAAEBfUpXBZCZY52bWP7wkvvW+D+W3vbSw4G2aYsUkKxF1ZX2MpXC3aQ2TNezk1fGG036XcLatMe7who695sLcxlvPtnMbbcvNhpsFVd9LoXoZKchIMnY2PvYD91gT5j5uH3PhI8nEyauiLg0AAAAAAKAvqLpgMrf2R5P8TS9cm9/9wvnW/tfqbVeSW/zH6iq1elnhCEmTjStWO2atM23hUmfSR2+29nU+FGu8IC9JnR3rxpmWBy8O1tz+gdz2F+ebQludlSywVmdPWHp7NGrg1gX28MWrnEF1N1j1s39VO/0qNskBAAAAAADoQlUFk4UNv27Y/8KP/xB4KxZbtt4JJNE9B3aTLgzJF8Z+cEPipCtvcV+76wZ77KBt8WN+3HG4L/EfPD+dHz53Zt6tuVqrb1xod6ytUywTrkBJSNl9gWTykjGD290TrvpRaspHr3eHnsL6kwAAAAAAAO+hqqK/IJeYEngrFlvxqCvpY4wkY8vY4zJ2YtiLNSNH3O2e8uF7CoOmrXVHXJjt6ktTH7zHk/REPr9slTM0PdNf98J5me3LLlLmrYlObE/4IALKI7MlKy4pv682v/npSwsj3/c8wSQAAAAAAMB7q6pg0hTy9RabsXSPJZmcZIwjOzV0l5uY3BI/85o/OZ2DfmE3nNMs9ezJdd05rRoz5xGnLbZ00MmX311Yc/dVwYaH5+S81RMst9O2quqVUsUsydaepJ3dnY66FAAAAAAAgGpWVXGT6dxVE3UNfUIQfhh7TIfGXPiQlev4SWJEfI0TL+yyhpyTOZqmE9M/lZX0mIa//GwucUVj3tvzlWDH0590vKca5OTYxbsbbOVcK5tl3C8AAAAAAEAXqiqYDPZvqJUddRVVqrihTZBLyqoZ1ZwaPGypPfm0R+2pX7zH1dTSTxk+5quZmLQh5b/2Tbv1+Mdzz2Wv6ty/ZaHJeLW23RbukF49y5NWDcuSpIKtPMEkAAAAAABAV6oqmJRhMcNDWJKVl0xGio2Y3modf8HT9tCF1yd3PfqEpv5rW7kPn0idkNfoE+4p1Ny6PDZx4SJ36IgP51+7Y15hy+NNVkIyjggoD2GkKtpUCgAAAAAAoBpVVTBpLAVR11BVClKQr1W+cfHqwTM//e24tX1FIeXuitV9sFWjPljRUpJn39ks6aZAj95rtjw/3Dr9V4s61t31j9aOZyfG7GYpLgLKt1mBjMNrGQAAAAAAoAtVFUwSbBUFUhDUB27dsatqR894zBx/8a3u4HOfkBT5THdbZ7al3n9mWyG3cVNiZOOaYPsp8zvfeuYD+Z3PzbHs3bWWguiLrAqM/gUAAAAAAOhKdQWTA5mRlCvOZh88c1fslL+/KVmbvsHZ9fAWDT63Nery3s2Jjc+qbvwTpmPDi8HkS37pTvvynNyG278ZbLpvpjq31FiuBuRGOUYKn0SrcsGk52uvpGrcBbxV0i5JLZI2SHpD0kpJy9MpbYmwrsPyfL0saUaJm/2f6ZS+VeI2oYH1fHm+hku6XtLfpFMq+xIe+Guer42SxpW42ap6rXm+zpX05wocakM6pWMqcBwAfUSpr3Ger+skfe2oC+u/rkmn9KOoiwA8X3dKuqDEzW5KpzS+xG2iAqoqmLRMoarqKTtL4XKEBckEtTJ1J7Ul6qffE58w9dfBuGNWupq3S/UfirrKLllNX2pPSu25vc/fm5x74apc09h5/tZNn81ve2yBnXnLtWOFMKAcaKNhGTApSfXFj8mS5h/8D56vTZIeknSzpIfSKeUrXx5Q/TxfF0v6uaThkv4m4nLQf51ToeNM8HxNSqe0rkLHA1DFuMYBAKQqCyY1kIJJIwUdkgJH8SGj11mTljxmT/vEg8nUMXdJYzNRl9dTsSGnBJI2xI87b4N93JtP5zbNvEybl52efevhJcG+ra5VI1kDaor3QEtie2ycpM8UP1o9X7+U9JNqHEkJRMHzVSfpp5KuiLoWDAhLKniscyX9uILHA1BluMYBAA5WVUGgCfr5fiGWZBnJ5CWZQbImnrUtNnbhb1KFlpvtxtq1Si3oiLrEUnB17AZ33Ff+l4YM+o09eu5XO1teuTRYe+tk5VpkuZLsfr9ptS1jBlQMe5TqJf2DpL/zfP2HpO+kU6q65QuASvF8nS3pBklNUdeC/s/zNUHhyPZKOUsEk8CAxTUOAPBu1RVMFjLxqGsoG0sKOh3lTWMQH3fmf6caJj/ujD5mtYbNWW5rcr8IJA8x5NPNTu0T3081Nd1uLDM9s/21Szr9whJr78p4LOmFr75+FlBaUjF97mffWGW4kv5W0pWer6+kU/rvqAsCKsnzVSvph5I+F3UtGFDOrvDxFnm+4umUshU+LoAIcY0DALyXqgomZZn+F0weyKeyiXysYc6qxAmX3ew2LbopnpyyIcqyKsV1FnhytFynXLjc2X7zE7FE3aJgy9LTzBsPnF/wljfIzYdpXr9ak9FI6uejf8truKQ/eb7Ok/SldEr9M7gHDuL5WiDpRkkTIi4FA0+l1pc8IClpgcJ1hgEMAFzjAABdqa5g0nb7T5pTUJhP2UNkDTljdaxu3M+So2uXWhOOWyt7yoAMWpxRH1mfktarZs8thRHHPu6/9cpX85sfnm51vpaUychyiruS93mBFARM5T56n5Q0w/P1IdaeRH/l+UpK+r7YQRQR8Hy5khZFcOhzRDAJ9Htc4wAA3VFVwaSl/rEun8nZsgZPyLiJiSvdholPOKd87lbXOuXZqOuqGsmPtll199yUmPfR1fEdE2aaN184NdO6bX627fkpTmer7KT6+hRvWwqq6merD5sp6TnP1xns4or+xvM1R9LvVNn1/YCDzZNUG8FxK7nZDoAIcI0DAHRXdYUnQb7PB5NWPqnYqLMy9klf+a2bnPBNt+44NvE4DDt1ft6WlmvkKcs1Ur/s8FbPdrY88cPYtjvmFbY+asvty0tPGZs1JkuqSdJTnq/3E06iP/B8xSV9S9L/kNTnr3vo0yo9jfuA6Z6vMYyGB/ofrnEAgJ6qrotFX9/J2EhWaopSS77cnGysv5NQsvuGpqcur5t6/n3JGZd0WL7bt9ecNGIqd+k1SHrQ89nBEX2b52umpOcl/ZOq7RqMgajSG98cjFGTQD/DNQ4A0BvVNWKyL4dRkmRJJtisjsd/XR9vmvTh2Pi7PCUuXSOduCvq0qqWWVGrtidnZF/+r9lZ96TzCjufSarG79tTua1AMgSTZTBB0u2er9PZzRV9TXEtv39QOIqk/230hj7H89WgcLmMqJwj6VcRHh9AiXCNAwAcjeoKJvvBG2smv1v59X9MF7bWf9pfN+NsZ9Kou1JjvJ/ZNe9fFXVt1SRo/a0te/SYzp3rL8utu+9vzO7NE1V4Jm4kWTH18WBS/eGlXK3mSLpO0peiLgToLs/XFIW7kc6JuhbgIFGOlpSkxZ4vO51S/9n4EBiAuMYBAI5WdQWTxvT9zqklKSEZ0+qa3Y+PCXa/8sXCmpmz45NOvdOdsOAJu2b6s7ZG56MuMyrB/qdq8mqfrz3bZ+TeuP2DuR1PLpDdmrQsIx2Ywd2XQ0kp3Fq8f2wvXq2+6Pm6L53SXVEXAnTF82Ur3In0e5KSEZcDvNtZER+/TtJcSU9HXAeAXuAaBwAoleoKJi2r7weTB1iSZRnJ2m0Hux+e09H62hx7+8Y1yQlLfuB2blxpNx6/wa7/aEvUZVaK8e+pN82vj8tm40v2b17+FWvrQ+McbZNVXa/A0giDyf7zWq5O13u+nkin1BZ1IcDheL4mKBxBsiDiUoBDFAOFaljj8RwRTAJ9Dtc4AEApVVcsZMf630hCI1lxydE2adsfpnSuv+n6QtOCbU5gHnOcpb+L5bY+oOEf69chVq718cmF3eu+VHjrzxfltz01wTVZKaG+PzLyvTCVuxIaFL5Dz5RuVJ3itLYXJNVEXQvwHmZJGh51EQrD0WujLgJA93GNAwCUWnUFk+rn6wzZkgYZZXc83hRsX36Fs+6ROamRx91h+1ufdMZ+ZKmtsf1qF+9c/rEZ5s1nlmRef/zC3M5n51lmr+2kiv/YX0NJSeE318d3mO8bvuD5+mk6JdZvRbVpFDdsqG5Rry95wBzPV306pX7V/wH6Oa5xAICSqq5g0nb6dzApSUayk5Jt9svseXxSx55n/15bT/xcrNm/w8msuzUxPLXaPuGqDdJJffRc3Ffb8fINEwu5qXPze9Z/3t5x3yzlWm03qXAkYb8OJA+w+v4O832DLenfFU4FBAB0X9TrSx5siaQ/Rl0EAAAAolFVwaSx7IExyqwYzllxyTKdMvuW1+VXv/xp4zZcoPz7VzoNO250rMfuceoX7oq20B545dtubsJZU3PtWz+S27brArPzR5Oswr4auZLixccMiFCyyHb637IE1elsz9fcdErPRl0IAPQFnq+0pHlR13GQc0QwCQAAMGBVVTCpQjZ+5Af1M1YYUEo5Bdpa37npzoXBttdnxYaMPi8+6Pt/cU/53BMy49c7g2dXZdDVaV6uj225e0rnxgcW+2uevDC/f/2MuLXZtdy85ERdXVSsgCGTFXWtpPOiLgIA+ojFqq6VkKthEx4AAABEpKqCSbuQq6aOciQst1OOeTkdtL18acfesRcEK+57MTZ2yXWx529+InXKac0afFF1TPH2fpwsbN83NVs3+er9ry5d6OxaMc5xO+S4IpOTFIaTqJBzPV9T0imtOcp23q/S/07MlLg9vIPnC+idalv+otHzNTOd0oqoCwEAAEDlVVUwaewBO8TurxWDPVub4/YbN8wtvPrruVb9cWuyrcf/zBr8+i0xHb8tyvJy+x5dqO0bL8ytfuT8wq7XJ9lxX4pFWVG1sSTLJpisrK9K+srRNJBOqb1EtaACeL6AXquWjW8OtkQimAQAABiIqiqYlFVVU4uqQ1yyE4EKHa9P8ZZ+/9/dbRedMaix4XoNHb4yVvepigSUGa2sCTpW1sbfeGZibr+zONO6/uNm51NTbLXJGqSBtXZkd1nsyl1hV3q+vpFOqSPqQgCgWnm+pkgaE3Udh3GOpH+LuggAAABUXnUFkyaXiLqEqmQkKybF8mvjwSv/dnH7W8fPV9Np62InzfxuYv+aR1xvRd4aeqwy1jQlG0/r8VqUG7ZutieMHvtXI/yy22+xncLmGnv4OXMCf9952XUvTM+tf2iq2bd2jG0r3NDGFqHk4ViBZOWr62er/0tLukjSTVEXAgBVrBpHS0rSfM9XLSOhAQAABp6qCk+M5eZkxBqFh2MkuZJdI5ns6w3BxvUNnS2rfqbhx6x0Gk98Jm/Smbzl1uza+uodw0dPW9WTpg+Ekls2bHQHq70uYe9tshLpecH+wqmdD319cS6zrsn4W20V9stKKXx+jAglD8MYyQTxwLjJbNS1DECXi2ASALpSbetLHuBKWiTprqgLAQAAQGVVVTBpDTlxi8kf2KUahyiGtlZMcpST8ZePy295adzeLc8t0aDjs/FxZydjTae/39v2/FXpplM29bT5QfH2OXZu/w/zLc/XZTf9pdHqWJW2C5slSbard/bwJJB8b0YySniKpVqiLqVEtkg6sYt/r5XUIGmipPdJWihprqLZ8fVsz1ddOqW2CI4NAFXN85WUtCDqOrpwlggmARy9f5T0rTK2/0VJ3ytj+x+XdG8Z22fZIwBVp6qCSTPsxGeDmhnLbP+VOZZjook2+hDLlaSCLLMpLn9TPL9mqbRx1iJNWPjz/aZlWTY1cXdHYVBbIessGzd69CE7Fu/c9kLc16g5aWfH7Lj/1gi39c3ZwaZ755i9q+Q4u8IHVdUrpIoVJBlLJnXiGmfMGd+X5T4WdUklEhwh6GtTGF6+KOkWSfJ8NUn6tKSvS6ovd+VpovcAACAASURBVIEHcRVOU/xjBY8JAH3FAknJqIvowrlRFwCg70unlJGUKVf7nl++tos6eJMdwEBTVbHToLFnrbbnbPp8fu09V2W3Lb3CVmudZUuWI6Z3d+XAubF8yX8qXlix4uzc2rsXm7FneDX1M9qdIdPvbd+y64eeldyWCVILXfle0mleEXecs93sii9p3V9mdm56KK3MettOZIqBJ47IklSQgrwjq2Zye2LEtHvsE5Z8z64dvyo2eMmA3ZU7ndI2Sf/q+foPSd+V9P9U8PDnaQAHk8VQ+AJJp0qaIWmcpDqFv+vzkjxJrZLWS1op6UlJD7FpEI6W52ucpFmSpkg6TuFrr1HScIVrwNYc5ss6FL4u2xW+LtuKf26T9KakDZLWSVqVTqnH6yfjENU6jfuACZ6vSemU1kVdyJF4vmxJkxW+5k8o/n2MwhkEtQpf77X667fY2yUFxT9bJDUrfGNvm6TXJK1Mp7S6Qt9CSXAeDq94XmZKmq13zstkhb8LD5yXA7IKr80txY8NCs/DaknL0in1lxk4wF/xfE2U9DcKl/GYqrC/KoX9gJWSHpX03+mUDhlcU+a66M+8S3HjvPMlnaLw/qJR7zxfHQq/3zWSVih83h5IpzRglzXjGtA7ljHVNy83u/NuO7NlxaXOnpUfDlpfnlnY++YUywoktsbpHktSXgpytixnhNyR53pm9OIX/WHTm7NWcrZV2N+hfW+st5uXTU+0PjPJ3veCLLdTcsQ07e7KSyYrOfHaFk0455HY1K/+OZnuvEeJxRV/h9PztVfhL7py2JROafzRNOD5uljSn1SZN0K2pFMaW4HjVBXP10WSviFpXi++PCPpNknXpVNaVtLCBijP10KFHbNSG1otoyiKHffzJX1Q0nyFHfZyySq8SVku6T6FHd5yj1h5m+dro8Ibk1L6n+lUWacaHsLz9ZrCG61SeVq9+53Tla+mU/qPErdZEp6vWoWbrF2o8Ea6HDMCWiU9IulmSXdU440d5+HwPF9xhb8TP6Jw9G+p+mXrJD0g6U5Jj1RDqDEQrnFd8Xz9raQflvEQH06ndEcZ24+U56te0g8Uzq7qjickfTed0gNlqmfA9Gd6wvPlSrpS0tUKQ7ae6FA4UOT76ZTWdnGMOxUOqCilo7537Y2BdA0ol6oMJt+25/qk/9yvJmdrT7gq6Nhxqdn0QIOTzDN6srsOjOjL2rJTx8nUz5ZxB8lk9yjvvSW7fZVcOyOLwLd7iuezkK9RYfhJzclR8/8Y3/vSnYmTz1umur+NbMRZtQeTkuT5WqLwAlyJBRqOSae0oadf5Pl6WeG7gKVU1vDB8zVf0s8VvtNcCncoDAa2dHHMkl400qne/UaP8vnyfE2Q9FaJj11qK9MpnVTKBoudrisVjnCYX8q2e1qKpN9K+vd0Sj1eT7nHB+sHwWTxxmtjiZv9sKTbS9zmvemUzitxm0fF8zVJ4Rs/V+rwI2XKZZfCm/cfVcONK+fh8DxfDQpv3L+g8gYaUjia5leSflbO330D9RrXXf0xmPR8fVrSr0vY5I/TKV19mONMl/Rn9e6a+oikL3UVdHXXQO3PdJfn61JJ31e4h8DR+q2kr6dT2nWY4/T5YLI/XgOiUt2rOA79fCZ19jMra0+95tqhS665vP6cb389kZi0yjV2YBFOHpmRZEt2KpByr8tq/oOcrdfL3XGzkpnliqcysqp5talqYqQg40pB7epE0+z/NXjeNZcnZ3/l64kPPPhYlKFkX1F8l/MbFTpclB2MivB8xT1f1ymcil2qUFIKR8G84vkl7ySgj/N8fUHhdKQbFP3PWFrhEhFver5+UBzBha4tKXF77Qo3qmkucbsLizeMkfN81Xm+firpdYU3HJUM46TwBud7kl73fJ1d4WO/jfNweJ6vGs/XdxQGeP+k8t+QSuEU+f+h8HffdZ5fkWMCJeH5mqpwpG1v3+hbpLCP+g/FqbK9rYP+zHvwfKU9XzcrHK1eilBSkj4p6bX+dm/BNaD0qjuYLHJiJ7ZKix/R6H/6P0/rs9c9um5aptNvlHIJ2RYDKI/IKJxEG5OMa2TikokVZ21X8YDZyJniRyA5NdNWOZO+8L9iIy66JDVm+rXJYR95LKbxA3Ydyd5Ip/R/pIpMFT69AseITPEi9Likr5XpEHWSbvf8iq4Niirl+Rrn+XpS4cjcMVHX8y6upL+T9LLna1bUxVS5Uo9CXJZOKZC0tMTt1ij6G0V5vhYrXOPpy4q+rzxO0n3Fm9aK1sJ5OLziLJDXJf2/qnxQK4W/+76mMKz9ZATHB3qkGLjdrqMPb+IKR/It7EUN9Ge6UFzz83lJl5ah+eGS7vR8/VMZ2q44rgHl0We2ObGd2uTw0RMnTjvxuON2bFVyxthRmtE0VFeclNGw2p1ynP0qyMhYImzD0QkkGcnYI7N27NisM/x9y+OzFl1jq329M/STXtTl9XFfVzjKr5zmlrn9yBRDyUclTS/zoWxJP/F8uemUflTmY6FKeb7mKbyRaIi6liOYKOkpz9fl/Xldrt4qrhO1qMTNPl388xmV/ibmPIVT9iLh+fp7Sf8e1fG78HeSJnq+PlaJNRc5D4cq/ix9T9LfV/K4XaiXdKPn6yxJn2cjO1Sx7yvc/KMU2hSuO9lt9Ge6Vpxi/6DCTW3K6buer7HplL5U5uOUBdeA8qr6YHLQkDHDA2MmDW0cvcTbu+eMxx9ZOiUWr7HXrJUeHT1Cr7ZP0NymBp0+aqsmNbTJsTuUN4EYyoaeMoGknGS5IwN36PRHdNxZt8fHzW8z8WPXxNyGFVHX1x+kU1rq+XpRKuu7gVOLgVq/WhzY85WW9LDKH0oe7Ieer+Z0auDudD5QFafc3Ko+0E8oSkq6tdiZ/++oi6kyc1X6dYifKv5Z6hGTUumnnXeb5+v7kv4hquN3w0UKX+cXFkeslgXn4VDFa/CtkhZX4ng9dIWk6Z6vs9Kpki+vABwVz9dshaOuS+W2nvTx6c90rbim7F9U/lDygC96vrx0Sv9YoeOVBNeA8qvqH9DkoIaJQ4YNv7qQzy8yQTB1cG3KNiYlqzgk0nS06a4Hdusu19ap08brc/OP18zhW9U0dJNipkMFOxz8xghKHNaBNQACSVnJTqTljj5zrdX04XuSYyf+xKo7fcOBh+7f/YY9aNhx5N2l8TNJ15exfVfSJElryniMKNyo0m/20h2/9nytSadEOD9AFKdv9qVO/AG2pD8Uw/Qejabo584pQ5vPFv9cISmj8EaqVKZ7vprSKW0rYZtHVJxiVs1h3AHnS/qJpK+Uo3HOw6GKsxUeVjTX4O6aoXCk1Qd6swEgUEY/KHF7N3f3gfRnulacYn+fpKZyHeM9/IPn66UKH7PXuAZURtTrxRzWH2+9acrY0VO+0JnJ/CxfKHzNGDNdkh0ERsYYBUYKjJTNB5IxynUU9NwrrfrW3R362m01umX1LLXm3ydbjUqZpOKWJasqv1NExpKUlYIOyXKOld14kRc78V9/m1rw9Y/Fjz31mweHkpLUnVAyr7Z0PmipikX7q9xdFThGJUcVlp3n6+8UjhCJQlLSzVEvyI3K8HxNVjjdqa914g9wFb5e+9WC4Eep1BuGrE6n1CZJxam0L5a4fan0NXfJ83WRpO9W8phH6cuer8tK3Sjn4VDFUTKPqrpvSA+YKOnh4i6xQOSKU6gXlLJJdXOpD/oz3fIzSVPK2H5XblA4kKSqcQ2onKr6Qe3Y8Fg8l909J9/61rWJpL3EjadkGckYHXaHG8e25NiOEnEpKGS1+a3tWtuR15Y9x+iFmeM1cfBwNaV2aubIFo0ZtktWLKuA0ZOQJD8hZ/BxHXbDwvudodNW2U2nbcwnx99rpeqanV40F/gvTLAsfb5j3958Z+vmGwfbmZbEcVe1l7zufiCdUovna5mkOWU8zImSbilj+xVTXPfl+xGXMUnhmipfjbgOlJHnK6mwE9/XQ+gGSddJ+njUhUSteENT6qUznn7X/y+VNK/ExzhH0q9K3OZheb6aJP26EscqsZ96vh5Kp7SrFI1xHg5V3CH+bvWtNzsnKtwk6P3plDJRF4MB71slbu+u7qwtS3/myDxfV0q6stTt9kCNpKkRHv+IuAZUVlUFk0EhO3Hvhmf+sclsWvKZS47T46+M1Auv7lTbnn2qSbhKxh0ZGRX/e5sxkmVbSsYcJYY42rR5q36zZbtSqYRqU5YmNY7Up+aM1gXTNsm1d6tg58NNcjCwGMnkkjKJ8c2J6Revc8effqdqGm8qtG1pTo44qVfTtE3Hq/M7961tLGxYep5pXn5ZZn+rrfrpkzVh/g2SHirxd9CfPKbyBpOlWmC7GvxU1fG7+suer99FXQTK6p9V5Z3EHrjC8/WDdKoso/n6knKs1/jUEf6/FBZ7vuwKrR/4U0l1FThOqdUrfNPqsyVqj/NwqOtU2tFelTJL4ZI5n4i6EAxcxTfWS30N+lM3H0d/pgvFNy1/Uqr2+jGuARVUDTe7b7M790yydrw0d2qsTXPOGKP3jarRr51Ber05qR2tOXmeL8sEcl3JtizZ1l+ni5ZtybYkySgf5LV/X167W6WtO5PavHewXmw+UZ+c6+u4IZslNUtWTpJRgVGU/deB5zaIy4pPUeykS5c6o2d8J5ZoWhvYiS1uakZe6fd1u7mstyHuOvtqC/tXxU0+NibYve2H/ht3Tzd7n0s6zj7FCpK1p7DAHjP7cRFMduW5Mrc/rsztV4Tn6wpVzwXRVnnXBkWEPF8T1TfWleuJ7yjc4XkgK8f6ku8eMfnsYR91dOoUvnlVjrbf5vlaoOiWySiFz3i+fnK0awBzHg5VvP5+sVTtReBKz9df0in9PupCMGBdVeL2PEkPHPFB/bM/812V9nr+PfXNN6IqhmtA5VVVMOm0LmtKdz5br0JO2v6q5g+xNf2Cer26d4r+tCzQvct2aH+HUWAC2Zalt3PJg0ZQGiPZtq24bSvuSoNSkjF5rV+3Xb/Z7mln50k64/jRaoptUmNyh0YMbtew9F4ZZVWwxEY5/YWRTEGS3SCrblZ7bPzi++2m92/rjDc9ngvcxxKDmrK9WXbUsjsXBZ17PpDdvrYp/+bdM0zbmqm2u99WcWVJy5Jsp1NW/oizDAa65WVuv88Hk54vW9K1UdfxLn1hfRX0zjck9bc1cs/1fE1Mp7Q+6kIiVOrRKq3plNYe/Ini8hzrVPq1os5RmYNJheF1X3etpEuOsg3Ow0E8X+MUrr3W1/3U8/VIpTeSAhSuT/7RErfZrWnc6p/9mbNL1Z/xfM2U9LkS1NRvcQ2IRlUFkypkXKU6bFlSofipIdqqM1LNmvD+YXrfyHqt29WgNbtq9PL6VrW27pFjjOIxS/G4I8uyZIwJ16QsOvD3IemUTBDo/ide0OPPJVRbE9OQmrTeN61Jnzst0ORB6xV3digXSObAIoOElH3LgWA5J1lOIlDNrF3W5I9nrNGzljqW9dXEsLmtvdk2NNe6Om2blkn5vW+OMfu2fKOz+bn5hc1PynbbZSV16OvESCoEbLfUhXRKmzxfHQrXFymHJs+Xm04pX6b2K+ECRbcgNQaQ4pSeT0ddR5lcJekfoy4iCp6vWVLJF0B/92jJgz9f6mDybJV+fbK3FW/OqmVE+tG42PM1NZ3S6t58MefhsH4mKV2CdqKWVrgj8uVRF4IB5yKVfkTeEadx05/pln8uQRv9HdeACFRVMGlsHRLyGElZu6CxI1v0uXpP7Wa/3to3Vr9fGtPdK2u1r9PI9wvK+TnZVkGOE26KYx08ovIAyyhbCJRp79BOT8obW+vbpE17Rmh+42jNmzhY0xra5BR2S66RnajQN46SML4ku1ZO+iQ5Y+f/0R5x0p9y6ZPafA3eNHjY2Naethe0P2EHrS/XBZp00f5ND383t/W+GnvfG2nHyslJ6p0g9NBKCLW7Z53KNwLPljRG0oYytV8J34i6AAwYlykc3dAfXaYBGkyqMutLHvz5T5b4WLM9X/XplHp8/e6mvylTu1G4Wr2fNsl5OEhxZ/JzS1NOVbjM8/XTdEpLoy4EA0qp3xTr1jRu0Z/pUnGa+8WlKad/4hoQnaoKJu1BE9r1Hjtw5wPJcjOqsTbrpKGbNf7MIfrQ9CZtyDRp6RsJ3fXERrXvb1fcctSZzSsWs5WIOW9nR6Y4dDLmujJOoJixZAIjb/de/eXRnXqg4Ouzn7lY3zp/odzsFgVb/qJg59Oy49nwLBE0VR+rmA1mJZnBgT3yzGc14vRtZtQpbZ2DjvnJ0GHjViYlDe5F0/kdD0/Jt7xxcb556SlB2y9nmn2rG+NOXkqpi0DywKftQIr15ZF6lVLOYFIKO0Ubyth+2Xi+Jqn0u9wC7+VjURdQRuM8XzNLufZcH1KJ9SWP9PmjYSsMV/9YhrYl6dIytRuFKzxf16RT6ujF13IeijxfrsLRJf3NdyWdEXURwFG4t5vTuOnPdO0ahddWHAbXgGhVVTAp5bv8QTFGKhipYEmDB+/VgsH7dVqwTUtGDdH7R8S0dFO9drQntas90I7d+7VvX0YygRzHklMcPmmMkWUkYwJJgeKuUSqR1ND6UZo1d5GGn3iFHGUUTFms/Lbn5a/8b5nW5+Sk/MMGpoiIkYJOV3mrKXBHzFg+uHHMjYXk5LtyQ2d5+UHjgqF149p70lx262O2kxrUWOjcUhfs2zap8MZj1+T3LJ1n8i1xKfjr0bNHDKmtQI5diZ1E+7qWMrdfX+b2y6lP7aKGvsvz1ShpftR1lNkF0sAKJj1ftSr9mxt5vff6wKsVjmgp9dSnc1SGYLK4W2xTiZvNSPq9pLslrZLUqrCf3aDwubhE4fT0cqhVGDD+tidfxHk4xOckTSxdOVVjgedrYTqlx6IuBOilm4/0AM9Xk+jPvKdi6HZZacvpd7gGRKi6gkmz3+1W+GfC3nHBysuy96qhfq8uPyWhs08YppbsSO1PTtR/PePrnqXrtd8vyLFtFQoFWTIKCoECY+S6jmoG1er4ycdqZEODPrDodF107lmKSfJl5A6aofhxU+WMPkWFzY+rsOpPyvsvySgflkhIGQ0jSbYsM7ItMebkldaEj92XTzXd645dtNKV1JvZ9x3r/9N2ndFTOze9de3+9bctsttXua7ZVCc7kBXrZZ2WCCaPbHOZ2+/LwWSpFwwH3sviChyjWdJdkp5T2KHepTDEciUNlzRb0oUKpxeV4538qn+XuAwWq/R9vBXvNRItnVLg+XpWpZ8+Xo7p6FLpb15XSzovnTrsKP1dxX//ZTEIvFHSrBIfX5I+pZ4HcpyHouKGc+VeQmWNpJ9LekzSJkmB9HaY8imVd6bE14vHBfqaDkn3duNxi8pdiPp2f2aJwhpxGFwDolddwaScHv0Am+JSfoGRrFin6oduU722y8qv1dh5IzR7zFitbBmsFW+2a+lL2+QWckoPSihdm9Lk447VqbNP1vEnTNKZC07XqMYRctycsoEnOwhkLFsyVj6WOG6DO37MtkLdQje/4dHa/OaHGtx9L9bL2hm3HEmOmOZdCYGkwFUQm95uhkxbFaut+U5yyIQncm4iO3zsol5vgZ3f+fACE+TnZF75t6tM64uTYvGMLFu9D56NZGTZxjJV9rNVlRgxeRjFneDY9AaV8oEytr1L4XpIv+1iI6pdCjtqv/d8zZN0p0rfcZ7XDzbD6qmzytDmkaZrP6XSB4mNnq8Z6ZRWlrjdk0vYlifpQ+8Rxv2VdEqrPF+nSbpV0vklrEEKR0TUpVNq68HXcB7ecYHKN1Imq/Cm8D/TqUPeuG5TGNj+wvN1gaRfqzz9l/M9XxO68/wAVeaedEqZbjyO/kzXmI3VNa4BEauu8MRxez3KzLy934iRnP0akd6vj05q1UXH1OmVUXHd4AzWi3tTmnjsFJ23aIGOPeYYnTzrRNUOqlEyGZcUyASWXDkysqWCZAK7TbJ/YtmJW5Ssk9M0060Z1TjGbJ64oKN55ccL7W9OtQrNtk1AWXqWpEAyeUl2TNKYjNsw697aplP+lEtNWZeXu8aefF7HkB40WWh7zXaSNWm/fZXr5v1as3vdYv+NR7+Z371iguPstK1EOM3/qEbDWhKb33RbT28aeqpPBpOqzAi2dkn/qfCmcF3xc1MlfUTSFyXFK1ADqsPCMrW7XtKZ6ZQ2dfcL0ik97fm6XNKDJa4lKWmm3nsacn9Ujqmy77XxzQHlWGdSCr+XUgeTk0vY1o/TKa3v7oPTKWU9Xx+T9LJKu5O5q3DB/pt68DWch3dcU8IaDpaRdE53ptClU7rL83WqpMdV+in2kvR5sSMv+p4j7sZdtLBMx+/z/ZniaMByzUDoL7gGRKyqgslw3cdStSUp6SlpeXr/VGn6uOF6qWOe6k45VzPmXajUQd96YPKyCgVZJhwqZwXhxjiWUY2R1W4lB21z40NVO+RYSdokf+MyM+n8hzJtGz9h3rx7gWl5ZoaVbbOVUDhom1Dq6GUlq2DLrZ2xzql73xZ/2Jy/aMiwXznHfaTFkdS+9s89Hh5vudasYPfGbxS2Pz/cb36pxt715CxpT9xNFR9QoufNkmQFvAi6oUfrgPZCb/Y9qgblGOl0sOWSPpxOacu7Pr9U0lLP108UBpbl3JgIVcDzVSdpQhmazkg6qyed+APSKT3k+XpC0oIS1zRDAySY9HxNVnme1yMFj88qnN9Q6ulr50j6txK3Oa6Ebd3e0y9Ip9Th+fqmurFuWg99SD0L5DgPevtnptS/cw64vCfreqVTWuf5Ok/hVNFSv0l4mar4phQ4jG5N46Y/c0Qz1XcHbJQd14DqUF3BZL6ztJ1ZE07zzljSoJpdWljzkKw9e2ReWaXOMUsUGzJJtl0ry8QVKKYgMDIqtFgyzbZl1coKdhkFnnzfdlKpd1LT4/85n5CWa+SKNQWzvck0zL8627r6IrPjkSYr0yw7YbrcuRmHcWCUYl4KgiEq1M1pDYad8Z91Cev2+NARzf6gU1tqm2a8PWy9dvJ5R0yxMy0r4jl35MSk2dxU2P96fbD1xcuDLU9dnNu7Spbly0qo5M9T+G0Etkyuqn62qpRX5vb76qi/2WVse4WkD6RT733uixfE0yU9qvKs/4XqMbNM7f7vdOrtkbi9cbtK30E8scTtVbNyjJbccpg3M/5KOqV2z9cqlf5Njfmer5re7rT8HhpK2NbaXn7dbZK2qfujIjqKj28u/rlN0nZJWw76XHMPa+A8hMq1rvMv0ind0dMvSqe0wvP1LUnfK3E9Ez1fc9IpLStxu0C5dHcaN/2ZrlVitGRG0n8oHOG6TuF92EyFU8ivUHXvBs41oApUV3gSBOV5wRY3y8lbHdLOJxXsfFqFV29XvG62ak44T27jDNlOnYydDCT9QrJvVMF1Zdl5qbPFSdYeNgRLaGa7psxca/a+8s+J3Pz/CrZMnJHd+NAluT1vzrdMS9xKiHCym4KMLRPEFasZvrJm1AV/Koycv9pLTn0gPvGkDkka2os27WD/Amvv8mv9DQ9MCJqfrFHnquFSQXZKZQ6OjWRMNf/yrRalvMnsFzxfaZVvfZOMpEu6CiUPSKfkeb4uVDjFjndY+69ydOQzkn5wlG08UopC3mUgrdsaxfqSBz+u1MGkq3CJi7tK2GZNidvq8QyA4oZB9yi8YTsQsB0I1t4dtG1Lp8oyy4DzEPpYGdpsVbgmXW/9SNLVkhpLU87bzpOq86YUA0qzpB8qHA25RVKtpLmSLlG4ccyBwQW3drM9+jNdO73kVfy19Qo3Plvzrs8/IOkBz9cPFIa0E8pcR29xDagCVRVMmkKJR0wecgBJMck2BVmZlxU0r9S+XY8qP+pMJWd8QrUjTpSl9FbJXae3d2M+8rbM1pAT21xpqdpeetqd+unHMlb6Y9k3/3SxaXlxohVsr5GbK+d31XcZSQUpiI3vCEacuD4/8vxfJ3Ysvz8Wr1sbm3p5PtnLZjtfv7mu4CavzL3+my+ZPaummuwmWXZGlqt3RmaWMzC2jCR25a4C6agL6IVyjpb8tx6u/7XF83W1pN+Vsaa+apO6fr9kvqS7y3Dc8er+SOPuLIz+C4Wd5snFj+MP+ntvA+mberHpxLv1duRVV8aUoc2q4/lKqjw7kx5pfcmDH/fFMhz/LJU2mCylWZLu780XplO6StJVpS0nMn3yPHi+JkmaXoam//+j+V2YTinj+fqFpH8pYU1SOKL6W0d4TH+5xqE63atweuvBz3WbpFsk3eL5alC4UcgX1L3duCX6M0dSzhlQ2ySd0dWsiuIIwNMVrp1YrgEYvcI1oHpUVzAZ5CtTjyVZMSmc671e7ta31LnlEZlJi+3U1LOutmob5cYm3qNCa7Ocad2/8E26OrCl1c7+l38YT178B+fYCxdktyy/NrfxL2Ns85ZtOYXqHsRcKUYyubhy1jFtdip+f83IE39nNc7btK9myoZBc67q1Tvh/rrbbCtdO1crr/twdsfr5wamdbKlPa5lis/10Wxo01PGqvAB+6xyh7d98adtapna7VD4znSPpFP6fTGcLGdg2ucUd9R7z86G55dt/VSvBJ3ktxWnxq7UYTYWKa7XNEVhp/644t8nFf+/q1FWR71WXLEz1qzSvktcjkXEq9F8hYvjl1pPRkyWQzmmp5fKNeplINfP9NXzUI4N54L/297dx2lV1/kff59z3cycYTiOIwIiIiIhASG6iIiGZKR4l3eV5U2t3axrbdtW27r7a/u1bj9rN7e1rXZrs7Y7yzJ1zTRJEdFVVCKWDBWRAHHEkZthPMCcubmu6/z+ONcEIjBzzXW+55xrrtfz8ZiHFDPf75cz13V9v+dzvt/PR9LXI2jnB4r+pnS258sdIKXLsJjjkEpLFeY57z3YN7iOtkq63vP1hcHukGY9c3Cer7ER97+/KwdK9SL9ccPDhZJ+KzPrlKFiDkiJVAUmZecO+iFlimVLlgLZwUYV1/6XXnth8VTriJNubJy08OrGo6f9Qi9uewAAIABJREFUqNC79icNoy+r6BfXMOLETo04sbOv/cE256STNuXGTJxbbHv41OL29XNK3RtHy+p7/e69OhH0SUGQlbJj2jMt45+1J1zxs2DkpO87Uy7olSr/hOp68eFsvrCx0e54dmxh6/oL+vZsu9byX5xiZ162rf5rm9Q1ti12TA4sdR+IKXCcoXbvrmKx/yUN/igNhony6+XJ8tfreL7G6cC7EsZKg0/wPYCoUz3US0qCcw202a0wP+2AXEcbPF9bFW3uQinMizS5ylxf+yooujXw2eVjap8pB3RqCddBepuBNh9znYrzXL5B+f20RtHu5rEVHpl9IMI2gcHoVBjEGtT9flRpG1jPGN0t+ZMKC7s86/n6nKSbzA2pYswBKZGuwKQiLMtdKUuynaJsvSTteKm1t/2Beb2jTptgHzXn9KDHebxh5MSfWC3TKgqk5Ma+o0vSkuxhJy7R4Var33X5eX1tq65Vx28ma9eqsUGhO8ygMdzzUJYkBY0Kmo7f3Xv4mcvtke43R+b9ZaXDx3q7+4Z2zH3bi0+Pb/Q7ruva8eKE4OVl04Jdq2Zl8oGdtlc0DqlWi9OYZOp4Q8XVUvdxj6TtkkZFNBbUONf5Yx64ZQa7iXxHjoECKmlkIsH9Ctep6NjkckkXGxjHIoWJ9aOwXdHuIPmUpPM8XzcqfBBkakdZ1LgO0gIDbd4XYVvLFP0xw1TelGLYuzGKYE2U6mQ9MyXq/vcxlCPBX1OYOzEtKXYWGGiTOWAIUhXGsexsskcv+wOEecnOdivoeHh8Yfvyq0pbll1cOvzk03WE84uGiResybhv2z+x68DGfrrDkW7NjH/zk5nNx48vvjJtbveWlR8rdr0w3srsCXdQDrcAZUkqFppk5UZszuXyDzhTzr8vGHvhqtaxZ2zu/5ZKH/l0tD08sdF7dkZmx0uX9736+FWlXc8pE+zcWwk9DSwrPWNJtyiT7h9ILdwQ7c9UYHLIybddRwXP192SPhzheIAD8nzNknSDoi+gIoUPQ4ZtYNLzNV5m8iRVejz7cZkJTJ6j6AKTmxX90bapCnPy9nq+lkp6WNJjklYNsqpsEur6Oni+Jin63b2S9GiEbT0u6S8ibE+STom4PWAguyV9K+lBxClF65njDfQvScuGcorBddTr+bpZ1RcWqhpzQLqkKzBppWQ4gcI8lI6UU4+CPU8193Y+dVWwbdZ5Pdt7VzeNXXtTg9X7gN78iYp3eObzp6zX5FPWZyZrmfXcHZsLLz9wWaH9vvmlvvZRytbSyZdDswqSZY/qzI+78NHukVN/rtIf7srP+ueuSgKRW9c9ao+eMr8kSaUXbrI7d5Uu7unY9XF1Lp9s735qvGV1KdtQjuemJKhbHsbw+UXWtlpMjG5ictzkOuqoso1fi8AkDPJ8nazwyfs7kx5LDTOxW1IafOGbfo8ZGYV0lucrP9hjgANYJ2lOBO0cSF7h7s7+vJglz9d6hbnPflf+79Ouo02G+q9EvV8HE4F86QB57lLSVj9T/27gYG6tkR3UVUvhemaioXarycH5Q4XHuZOuB8AckCIpiQSWlQxX5a5UUA402ZLVIAV7VrcGe545q6ttzOTe0W99TMFdTzSMmr0sP3rCmqE0nzv82Ntz1vSlBfeoOV07268NdjyxUL3r88r6tbnjriSp0KSSM6Wr0Dz+7sMd97bsmDet6W2YvrV56t9UvEvFUVu24+XlC/Pe6tNKr6ycbLWvPqOhr228FXTJykjKSEFKApKvF6TrdZxe6fr8SQcTefCimNBMFbRAHfN85SVdKuljCou2oDom8ktKB8jLNYBVknoVfbqOJoWvkyHvAN/HbyVdFUE7g2Frb96yd/X/n+UCIk8rvF6PKNx9sj2mMfWr9+tgouDcuohTRkSVV3VfEz1fzfUSKEIqVF1IJs1Svp6ZaKjdIR8Fdh1t93w9Jml+hOMZCuaAFElXYMBO13D2Z+clqU8qtU0otN99RfDqyveUDpu+pthc+EHumKkrsmPO2xxo4har5bjB7Zgbe0pBY09pz0r3NLz05LPqO3Vm8aUnLul96alLreILTbK6wwBlmoOUQfhVKjkKrGN2N0w87XZ7zOxf72ycvjQ76W3bJemwCprbuvEh28nuHj9yz/KJuY7X3t635sfv7931/AQreMW2M12vf8WmMiipP14TDKjZcPs1VdnR89UkM3k3q57QXEdbPJ88k4iG52uupMskvV9mdgnXHc+XLTOVJddVGiQqH9NapTCHUdTOVTSByTQ8bGmWNK/89ReS5PlaJ2mJpF9KWhrR7tBDqffrMN1AmxuibKz8fjJRUGqyBlnUCqhSp6I92poaNbKeMVGRuzOCYnQPKfnAJHNAiqQrEpjmANy+bMm2fUkvZIPOF2b1vnbEzN7dnRvyu45emR+l/870rLlDYy6s6DhvwzFz10tz13c1jF1uT7zmt5mXfnF+8OojE0t71k4ISq/llVHym533VQq/LMvttRombuk7YtHa3qPe+aO8teYuZ9q13c4Qmty94bt5q9t9f1/HC+fv2vbYLHnPT8hoRw0WtLGkUq28mBOVpld0GpiqGvxiRO2sVfqeAqMGeL6yCheflyncUWBikVzv5kpqMdDuUANXj8lMYHKRpM9E0M5KSR1KX7X2/h2FH5Xkeb5ul/Rd16l41+pg1ft1mBxxe5LUZqDNzYr+pnSiUnZTimHryQoLqKVWja5nTHy+r4qgjTQ8GGMOSJF0hXzSkmOyAlZOknbYpc7HJndv/93kUuvMubljT5ts7dqyxW45ZUOhz1recNRJg/4wbjr6vHZJX1Ww6dbgyFETvY49Z5deeeLj8n831ipulWUFspI4wlyu5xIUpEAZlexR6muevbZh9MQft4wY+UAmN33dqOmnd0qnV9z09nVPuA2FjWcF/qaZ2Rd+/WntWe8WMztl1UPF8vpm+kZoaCXfk2OqGNDWiNrZPPC3ACHP12iFQaRzJJ0nM0Ez7HWOoXYrzS/Z74lIR7HXDM/XuHIl1SFzHZU8X3dI+rOIxmWCqzC374c9Xyslfc51tDjSDrgOJoIKLxlos03S7IjbnBhxe8DBDHUeSYVaXs94vlpkZiNI5YWA38hE7sRKMQekSKoigbbsmn2aYuck5Xepb9fjE3vXPHOj1Tq9N3vEpnXZEeO+qczye+X8yRaNnDv4f9/EK7Zb0vbDpJUdLy5Z27jlwVNKry6f1bfzmYVBr5e1c8VYK3kHvVKhNEKW3dCZcWcsU8vMdd2jz79/zIxFy6ShRVR6Xrm11dq6ZorltVzWu2v5B+3XVrXa3S9Ljmr8OHQgBdS/GQTTgUnPcPtRMxWYrLbwTb+4c5+hhpR3EczT3oX7rGRHVHcWDfwtQ1LNjklTFkn6rwja+YHSHZDb12xJ95erXF8bwRG6fdXzdRgXwZj2d4Pn6wYD7UbtmKQHgLqxIukBVGKYrWdM3WttrLYB19FWz1enkg30MgekSKoCkyoVajuaE4SbPi11SjsfzxdefXxG4Bx1U3H7me/LjG+5P9NS+FpuzBkVJxltPXbhXTp24V09q/9pdPeYSz5pb1+7UK89OCXobnPtfCEstWIgiGdZkgpSqdigYv7Ezd0jF6wrtRx522GZHT9tPf1LFVXY3t/2dT+fb+/4/bW5LQ/Oy+1aMzEI+qScpAbVcECynI3AKtmyKIAzCKYDkzWVY9KgqHJzcT3xOp6vCQorQZ8v6SyFO5sQM89Xq6J/ki6F7/kh7Yoo33BskDQp2iFJCm8Wqw5Muo6Wl3Nhnlz9kGJzlqTfeb4+5jr6fhQN1ut18Hy5MpPXuVbUwhFUDA9R7K4zahivZ0z9O6o6tbCPNiUUmGQOSN8ckKrAZBAUUjWeqmQkq0kqFl5pKrTdeYb1ym9n58bOOb6448n77COmbe3JTl4z8ogpFd3oN8z6263dm5ff2Dx6zJ2ll3qn7Nnx+/N7u7xFGb+t1W7ojjZHZ1Hq6xut0ojx6xqbGu/Nt5x+n1pOXX/EzEuHfJxz64sPzWj2VkwJdqyZam1dd3ngb5hZCHbKzu0TiazhoOR+CEwO7HDD7ddaIM3UjsmoKq75EbWDGub5OllhbqULJM1MeDgInS0zc86TrqNqHhgvl5nA5NmeL7vKsfX7vMICK7WkSdL3PF9vcR19OqI26/E6pC2vZtwoZoc47HaddKYCYj1TlajSRLVJmhFRW5ViDkiZVAUCS0FxeAVzAsnKSJb6pNILjX0vbfpgz9ZnLs0cdUaHdezZ3+3rWHJXLpttL+SndWWPPmNQu5oOmzBvtzRvZeb4K1fqt/9xr9Vw+MXZbb95R6l98fxS7ysT7Ew5FjOUIGV/ULCkQpCfur5v2kd+VQiC25pevfvppvlf7q00avLK80vtw4IX3OyOR1t3FUedXPStj3dte/zkTO+GxqzdkVVuCGOsGcMnwmqQ6Sc1UR1hjoupz+OoUmR0R9QOakw5R9EHJX1I0rSEh4M3OtdQu9XmBXtc0lVRDGQ/LZLmSNUXQnEd3ev5WiZpQbVtJeBTnq9G19HHqm2oTq9DzeSJMyR1N6UYlqJMO1G1OlzPmPqci2rzR1dE7QwFc0DKpCowadkNtX2U+1Bsycr3KVNa3RK8+EyL2hd/ru/ImecER575WNC8+6W+jcuWOMctqOjDu+VPPupJ+uHup16+tTT9M/N7Ozd8vuHlB2dZvS80y+7Iygr7HShGZgXhtxR7R5V6m2atyTX2fNMZMen2ltmfKgd2hvhAvnvPwr5u723FnS8tyHQ+PM0pbHWtXDHcND2ci1YHSqA6UU0yUQltX7WWE9FUTsyodkxG1Q5qRPmI8GcV5p9rTng4OLizDbVbbcVMkxU3z1UEgcmy6yT9TrV5pOujnq+XXUdfjKAtrkN9GS5HVZFuJioUV4z1TOSi2vTAvUVyUjcHpCowKVnDNzDZz5KsXJ9UXN/Y/eKL80sv/e/87JjZyh05+/u93u9usZvGbOm2Rm9unnzWoK9F86l/Xep8+rYn86PmfcxtPnJKccf/nrSr4/fvDLrXz8oUXwtjgPv+pi2VI5FSKcgoyLV2WwVtybe8aXHmuPfd5meOWHXEzIuG9ARj64ZHR7duf2Byb09xUn7HM5/r3fnclGypTXZjt/64Q3I4ByVRCdOByXbD7deKqI6Is5CrE54vW9JfSPqCUrhwwV6er5kyt/v8IS+9CRwWKTx+XDXX0VrP1/WSbo6ivQR8wfP1pOtoaTWN1OF1qPfPNuZ0xCHRwCTrGWOiCigmuWOy3l8PqZsDUhWYtIKaLcpdOUvKOH3KBhtV2rZRhfZ7/7TQdPR7gqPftTLTdNh/as2dizViuqfjPjqoi9Iy833dkp6Vzn3Wlu7e9fQvf9649ZG/szuemKXda6eq2GFbOUl2WGHbKkp29qgtQdPstl1HX/jLxo6fLmkoHbGq+aQP9h42hH9Oz1OfaN3pNy4Isq3X7tq6dLbt/a41Z3VJeSnoD4TWk4Do66F4vpoljTbYRa/r1FyOSVMPZqLa/ZK6CQzR83yNk/QzSWckPRYMiqlq3Gk32/PV6jrRpOxwHX3V83W6pHdF0V7MbEk/8HxNd53qdt7X2XUYXumjKsecjji8mFTHrGeMiipoE1WBzqFgDkiZVAUmg2Jffb1AykeorayknC/1rG8KXvjK/FL2iJn+mFlL7DEznujesHR1r3LLjpz01oqCFsfOvHBNx5pt12Vaxk3o6fM+GWxde7b92mPjrL5uu9gwubM46tRbRwaF25zcqM27jjl56+h5HxnSB0P72idbR3Stfq86XjyzoWPNAvmbR1t2n9SwTyyy3oKSliS7VF+v5cqZzuuSykTbAzAVSI1q4mmIqB2klOdrtsICGKmr1IeDMpVfMu1sSQsl3R5hm1crzLm0IMI24zJe4THF6yNoi+tQH1J3U4phKZF876xnjOMIdu1L3RyQqsCkMvnhf5T7YAJJWcnO9Ul97S3d7Y+8K9i6bZE1csrW/JixNxX3PP5Ad3ZKR6c92Tv6hJmDuk6tMz7oSVqzdd39n284bOp9DV0nTCwV/Hx37rhNfc1v/lXzCQs8STqmwqFuff7OllZ/3ehSV8fo7M5XPtCzc+N7M32/a7aze/YeGq23YOQbsGNyAHMNt7/JcPsmmFq8RXWUu96r1w1rnq8Zkh5S8kdb1kq6SWFy43pITD9knq8m1fdOkHMVYWDSddTt+Tpf4Q6bC6JqN0Z/6fm62XWqS2NSR9ehfu85gPjEHphkPfM6pgpXRnVvkeRGHuaAlElVYNKyrVSNJxH9AcrAV1D8bbP12qrmUueom3a1zv5EadxhT9sjx/+g53//dWnDSZ8a9AfN6CnntklqK/3hP+1SoUdNJ1xX8Rtx+7qf2qOmvLe07Yl/m1DMZa/d3f6bS+3ONaNyPZtag1xfeEy8Ho9sH5BVkuw6ykswJO8w3P4mw+1HznW02/NVUvSTdFRH5nnqPEx5vkZJul/JLuKXS/qS6+je8pg+keBYasVCpWwdF7PIj7G7jro8XxdJ+ltJN6i2rm+jpE8qgt2CdXIdTBWcA7BXrIFJ1jNvYCowGdW9SpK/J+aAlEnVQiOgkvFeVvmItwLZwbbmoHPx1KDj6akNR82bZo867u7i0195Znf2hPVdwdg1R02fPagPHfv4a4d0vnjnqm/ng+bDZ+955PJz8i/95tJsqWOaMrvsQCWpQbLYHPh65Jc8JM+Xq/CG2qTnDLdvSofCI3RRGh9RO5Miagfpc4uie51UwpP0E0nfdR2tTKD/WndO0gNI2FjP10zX0dNRNuo6Kkn6oufrLkk3SrpYtZOL6sOer8+5TvV5u+rgOiRZdCEVPF9Z14ksVxxwIHHvmGQ983qmjly3RNROkrGoup8D0iZVgUnZBHQOyJKsTKBs5mUFr9wxY1fbYdOCpmO7g/GXbm1sPfFLvWvX/iQ/9arIP3hee+ZLLY2d691sV/cZfW2vfdr3nj85W9ooO7N3XMAQvFfhjgaTnjXcviltij4w+eZqGyhXNZwawViQMp6v8xQGHOK0TNJ3Jd3hOsae5teDei18s6+zpWgDk/1cR2slXeb5mqhwB94Viv7zOWqtCq/JvVE1OIyvQ60VyDOhWVwHmBXbHM965oBMBYajiiElmeeQz76USVlgMpf0CFLPygXK5DttFTubghfWTbQPm3tD4cg5f9L30od+Udpxz+aR7922pto+dv/w4vxrU+dd0ei3nd/X8btppZ2rpzVkiuGrJTPgj0NiG+mhfSSGPqp+HySkTdKsiNucGUEbU2U+mIxk3BhTP52Svi/pm66jdTH1OWx5viaJXcySdL6kfzHZgetok6RPeL4+rXC3//sU3vwmnb/sYN6tCAOT/YbhdUikKAdQZ+IM1rGe2Y/rqMPzzTQdUTtJ5q9nDkiZVAUmg6CY9BBqQ6BwF2XeV+A9PLb3taf+THbpPVbuiA2Fx679ulrnP7bbHtPRMnVhRW+47b+/d1LjjhUzStaWdzSuvfmKoK+rtWDvktUYkDuyIpYUBLVy3ClWnq+FkmYb7mar66jNcB+mmKgmPs3z5bpOVblU5kc2GqSG5+ssRR8I31+7pH+W9K2U7iaoVeclPYCUmOf5anId80eyykdeF0ta7PnKSpqnsADPeYrmAVBUzjbZ+HC5Dq6jgudrq6LLwwzgjWLJ48d65pA6Fd3R635RfW4m9vnLHJA+qQpMWkUCkxWxFOZ4DLokqSUodpy8e+MDX9dWb32x5YT1u3o3XT9y5oc3DKapl5/4t/OsbS9+Tt6KCTmtHpez+ySnHI8kKFk5y6LS137KNzBfiaGrJ2Pow5TnDbRpK9zdclcVbVwU0ViQLtcabLtX0hck/csQF/BJHu+pBfWeX7JfXtJZMrBD8FDKwblHy19/5/kaK2mBpLeV/zslzvHsZ6zna5zraIvpjobBdWhT9Deln5f0tYjbNMJ1OMoI4+K6H2I9c3BbFH1gMqo8nhMiameo6noOSJtUBSaDUh+7zCq1T9DQyvgKipuag91tszLeyFnaPWt8V7Htyd6maS90liYtnvjm2a8LUj733GPzRvb8/ozGHU9Mb3xl+VlW8ZXxtrqkLAHJ6nDhDuLzimc3xeMx9GGKqSPo79YQA5Oer9EyX6wIMfN8NUq6wFDzmyVdWGVRkqaoBjPceP4fg3EInauYA5P7cx21S/pp+UspCNBNk8wHJvdXg9dhs6STI+5zDAE/4I+MByZZzwxok8LPwiidUG0Dnq/xSj5NFHNAiqQrMElV7qpZGclSQbJ3qvTaw3OLO5+ZG4x8y+6Rx559avHpe39pB70d6u3K7yw2TWrctevy3MsPz7O1MZvJdKXs1VCb/vgK5rX8Op6vKyT9fUzdPRBTPyaYKtpzqedrbPmmsVIfE58Ow9F8mVksd0g6s5yPbkjKxZY4WnNwZyj5G500SV0RoIME6M5WmBNzkcznZZwhaYnhPgZUA9fBRH64pHcAAalRZRqhwWI9c2ibDLQZRUHMGRG0US3mgBRJ1c2mZdkcf42KFX5Z1lZZux9qtn7/v1ftzrVcIKuhW+rLWn27m1uCnU12tofq2pHjgvYrT8h/JemmmLrc6jpaHVNfkXMdtXu+2iWNjbjpvKTPSvp4JT9Uvon8VMRjQTqcaajdT1eziC8brTAFAQ7s3KQHkDKTPF+TXEeDSl2ThHKA7oeSflje8bpIYSE4U7t8jjbUblVSeB2eMdBnFDfsAAaP9cyhbTTQ5smeL9t1qtoROyey0Qwdc0CKJP1GeZ3AzhOYjJolKSNZuQ5b2tCq4nPjVFo/2s62N9k5gpJRCy8nxYI8X3nP16WSnlKYVzKuz5q7Y+rHpMcMtftRz9fcCn/mFiWfGwd75SNsy0QRqk0Kgw7VSsNT9DQzWtykRtVMMSDXUa/r6B7X0YWSTpGMBFRT/7mdkutg4kHmZM9PtNJsLYtyjkP9YD1zaCbSRDWp+iPQb4tiIFViDkiRVAUmFRTSNZ7hyBbBSOMCDffIZDnw2OL5Gu/5muT5muf5er/n6wbP132Sdki6U+YrcO/vzpj7M+EJQ+3akv67nNNlQJ6vG2RuF8twVzDUbpRHlUw80f1JlU/P+5murFmzPF/jlK7Kx2lRk8WAXEcrFe722R510xG3Z1SC12GNZKSiexp2AplUC3Mc6gfrmUMzlb9+yA8EPV+uwrQ0SWMOSJFUBQLtwNQ8B8TICmxZQareW1WY4PkK9v+S1CNpp6SXJP1BYcGZH0j6vwonqiR2a2yVtDSBfqNmMkfmWElPeP7BJ8xy0Plmhb9LDM1uQ+1GspvE85WVmRw4URWeekdE7QxH7JY8sLPKR4NrjuuoTdINSY8jaUlch3LgYaWBps830GaapHqOQ/1gPTOw8meriWIsV1bxs+9VClIKMgekS6qCJ0HKxgMMjVWSyJeagFtdx9hT/Ni4jtYorBJnynhJT3m+fuz5Os/zNba8+3WK5+svFOZb+SuD/WPoWiJqZ1RE7eyvrdoGPF/NCqv34sDIL3lgTTK0+8LzlS2fDFjk+foLz9e/eb7u83y94Pl6rVwRtlo/jaCNfUVecGIYX4dlEfcpSe8q59hGZaKa41A/WM8Mjong2xTP11mV/lD5s/GTBsYzVMsMtMkcMASJR6pfb9jsMgMQv1uSHkCE7pX0UcN9XFH+QvR6DbU7XtKKCNoxtZCP4oHMh8WumQMqL3IXJj2OFDtXQ9w1X951M1HSFEmTJb2p/N/J5f//UOvl8yTdNZR++7mOtnu+OhVdYGZIgck6vQ73K/oTAv3VxxdX25Dn668lfV7S+vLXOkkv9P/vckGhuKV9jkP9YD0zOP8jM+uHGyWdVuHPvF/pKhDDHJASKQtMAsNAICkgyB6zJa6jtUkPIkI/lvnAJMzpMNTuDFV5419mau6vKtm356tJ0qcjGstwNFtVXuNhbpGkzxzsLw8SdOv/80QN/dTO1YrmfRnljv9XD/YXXIc3WKHwMzvq99YNqvKm1PM1QeENabPCXHVvyFfn+fJ04BvWda4Tec7Ofmmf41A/WM8MzqOG2p3r+fpz19G3BvPN5TzZXzE0lqFiDkgJApMAhoO0TXJVcR0t93ytV3ijiNpjIpePJF0m6R8NtR2Fmapu8XujNLjiTHVqUdIDSLkZnq9xrqMtB/n7eZIeMdDvxZ6vSa4z9KrSnq8WRbvz51DFDrgO+3AdlTxfd0j6swj7laQ5nq+Puo7+Yyg/XN4h/SMNnLPbVVgd9w0Vcg3esNbrHIf6MdzWMysU7nQ2sYPzZs/XKtc59G7ncsGbXyhlD1iZA9IjXbu6giKBUgwHtkqldL23hrfVrlP9VvkU+s+kB4ChcR11S+o20PRMzz/4wqmcA+5dnq9HPN/Y8aZDGXJlZM/Xu0Ru04GQX3JghyoOtMpgv1+o8uffGcko9jpUQI7r8EY/i7jffl/xfM0e6s9Kml9l//03rO+R9PcKixQ+Lunmqhqt3zkO9WNYrWdcR10yk0tRkhol/fpQ+SbLO/8elob8eWgac0AKpCp4EpSoFwKgYp9PegCGfFsGChggNqaOun3T83Wj52tquWjRZM/Xez1f35O0TdLPFS5kRh+iDVOvq/M8X5Mq/SHP19kKnwrjIMo7yeYkPY4acNDgretotwYfqKrUFZ4/tB2t5SN/Uc5j2w+xa5TrcGDLJG2KsO9+jZLu9/w37mQ5GM+X7fn6kswGNm6KoI00z3GoH6xnBu8XBttukfRQubDmAs/XKM9Xq+drrufrZknP6QA7+lJkmZgDEpeqwCQwPATkmIzPctfRPUkPwgTXkScNLmcLUsnUEQlb0v9RuMjbqfBYxm2S/lSvLxhxqJs2U4mybVW407e8O+Y+KZKKvsPZQplbs3mSDo/p6xhD/4Z+CweohDmk4jiD9GPP14xKfsDzlVeYU7jiG+BDGMzxQ67DPlxHJUnfjLDvfY2S9D+erz8bqEqr52szz86rAAAdlUlEQVSawmP2f2toLJL0gOvo6QjaSfMch/rBembw4rhfukLhzshtknZIekJhgK0phr6HjDkgHVIVPAmKBY5yY3iwrKRHUC8+kfQADPuSzO1KgFmbEu7/oDdt5SM9pl5XCz1f3y0HGg7K8zXF83WfwoV/XHN/WqpjDsX5Btte4TrqjOmrTeZ260lh7qpDHZu633DfT3i+/nSgmw9J8nxNlvSgpIsjHsd9g/gersMb/ZfMHE+Wwpvy/5T0jOfrbzxfs/fZUTTF8/V+z9cvJT0j6QxDY+gX1a7UTRG1M1QEJsF6pgLl+Xe5gbEMF8wBCUtVIDAo9dXyTQNQZpVkZ6KsKokD+5braGXSgzDJddTp+fqszD3FgznrE+5/oPxbz8rc4ueDkhZ4vv5d0hLpj8cpR0uaK+kSSRcY6vtQUv3EfgCHyp1YrScNtn0gy6XKdtRVaJF00CT8SxUW7mg5yN9Xq1nS9yR9vnz09FFJGxTuSm1U+B6Yo/DI+TsV/Tq8IOnuQXwf12E/rqPtnq9vS/rLiMeyr6mS/tlg+wNZ7DqRvd/TPsehfiS5nrlI0efGHYyhrme+q7AAGvbDHJC8VAUmLSvTm/QYgOpZkmwCk2a1Sbo+6UHE5DuSPiazN/KDYaqa33D1h4T7HzPA36+S2aeykxQm7kaVysdixxns4gmDbR/I44q++uW+ztVBKvu6jno9X7cb7l+SJkq6wXAfB3Kv6wy8e4jrcFD/rPCapPUoZjVKinbdlPY5DvWD9czg3S7p66rtB7UmMQckKFVHua1Sgeo3GAaskjjJbVJJ0tXlHIzDnuuoIOkjCv/dSVkr6fsJ9l+L1iXc/0DH3B6OZRTpYmp3mGkmd0tK8e+YNN3fnHKxoIP5ruH+k1RJTjSuw37KxXK+FvFY0uLbEecVS/sch/rBemaQysXPbo14LMMGc0CyUhWYlJ0hMImaFvT/gRyTJn3edbQs6UHEqbzt/p8S6r4g6UqZy7syXK1OuP+BjrktUbgLtp6ka80zeCbzS64f4s6yIXMdrZO5whlS+Hs+aDDXdbRC0mMG+0/Ks66jxYP9Zq7DQX1JZl+fSdgu6bMRt5n2OQ71g/VMZVJZkTlFmAMSkqpFemDlCExiGCAoadDdkr6Y9CAS8jkpkYDsx11HqxLot6a5jrYr2Rxch9xNUn5qfm9MY0mLmtth4/lqktkjaknlGjLd77kD/P0XDPefhKEktOc67Md11Cnp0xGNJS2ui/oBRNrnONQP1jOVcR2tl3RXhGMZVpgDkpOqwKSlUqpyXgJDEchSYOfIMRm9FZKudJ1EjzQnpvzvvkzx3gh823X0rRj7G26q2bVTrcEsWm8xPop0GZ/0AIZggczmdo07v2S//zHc/iGPv7uOHpD0gOExxGm56+iOSn+I63BgrqMfavhclzuiuCYHkfY5DvWD9Uxl0vRQalPSA9gfc0AyUhWYVL7V23sWFqhBgRQoX1JDY70dKTBtjaRzXUddSQ8kSeWnXW/T3qqAJv1E0nUx9DOc/TzBvgc85lY+7pj0cbyD6VT0T/RNFpAxZaCdf9Uarjsmx3m+Zg7wPZ/U8Dj+16swD/FQcR0O7BrV/nG+9ZI+ZLD9VM9xqB+sZyrjOlot6acRjaUa3ZKuTXoQB8EcELNUBSbtw45vC/okFcVpWNSmkmRZdpflNHcmPZRhZIWkt9XCFvQ4uI7aJJ2qsCCNKd9WWGCoLnenRugxJfckeJTnD2qOr+rYoyElSe+W9OuI2z0u4vbiYLLwTbeUWCL0FQrz15o00K7JZyX9neExxOHT5X/LkHAdDqxcBOFKJVt4rhpdki4zXCiwFuY41A/WM5X5tKTdEbRTjc8o+UJaB8QcEL9UfaDnjnrTquCoS3/ap6N2B0U7DE4SoETa9b9G+6SSfcTu0lELfizHXZHomIaPeyS9vZzLCGX7BCfvibjpboV5SK4lKFm98jW8OcEhDGbX5D2SfhXDWCrxSdfREkkbIm53dsTtGeX5mihpisEuVrqO8eDgAbmOumV+d8tgdpt+VdF/jsbpO66jb0TQDtfhAMpH3Wsx11hB0iWmK7DWwhyH+sF6pjLlwNtnIhjLUP3KxOd2lJgD4pWqwGTm8AXt+QXXX9s466qP2WpZUfIzKnoKLy0BSqRUsEcKCk5vZuTMJU0nXvOZprdc9LXs2Evbkx5XjStI+jvX0UXlpNbYj+vIcx1dpOiOGtwraTo5JSP3bUlJfR4M9qbtWoVHjdLgs66jr5X/vCbitqd5vlojbtOkRYbbT+oYd7/lhts/o1w86KDKgZX3Kb1HAA/lbkWUboPrcHCuo69K+rKp9g0oSPpA+YY6DrUwx6F+sJ6pQHnNn0ThoA0KdyOmHnNAfFIVmJSkEc4cr3nml3+YbTj2yuzk6z9jnfzZu0uNU9pL3baskghQInmWZFmSeiT1NffaM/50sTX2Qx/KjpnygcYTb/pWvmVhzWyZTqknJf2J6+ifkh5ILXAdfV/S8ZI+q8pzT/ZKukPSqa6jC10n8ie6da+8Myypp62DKg5Q3oF7teGxDMaXXUdf7P8frqN2RXvDa0uaH2F7ppnOL5lU4Zt+jxtuPy/prIG+qZy7+B2K/sbRpO8rPKIV2Y5XrsPBuY6ul/T/TPYRkV6F1+MncXVYC3Mc6gfrmSG5WvEep94t6aJy9euawBwQj9QFJvs1vWfV+pFn3vgvmcnzP5Ydu/BCa9Rb/7HLPnFzwW9MemioY5akYret7r5p0gl//sMRMz90YX7aomsPO+frtzae8fM4CpIMZ08q3HZ+Wq1tPU9aeffkFyUdI+ntkv5F0qN64yKoQ9IqSd9RuBA5ynX0btcRqQcMKi8Qbk+g60HftLmO7pX0cYNjGchnygu//UV9LOuSiNszwvOV1SCCalUa7jsmJemcwXxTOV3I6Qo/N9OsIOl619E1JtJtcB0OznX0OYW7sdJaKGizpNPKx1ljVQtzHOoH65nKlAOE5yiewpr9R4xr6QGYJOaAOGSTHsBA3Nazt+jMs7f0bPjO05nGI/4nWPlvHwk6fnOBsl3h8Rx2UCIOgcLUt1br1vyks+5tmPruR/Kjpi7JZmduSf2bKN3WKtyx97NanKTSpnyDtrT89UeeL5uckYm7RtJESXNi7LOiY26uo2+UiwncrPgeXHYoLLR0sAX7nZI+GGF/7/R8ZZPKrViBeZKaDbbfVs4vlRjXUZvnq03SeIPdnKdB3qC6jjzP19sVFlD4G4U7LtNkrcLjWUYfJHEdDs519G3P10pJt8ls/tdK3SrpEwkXCUz9HIf6wXqmMq6jTZ6vMyXdL2ly9UM7oC6FOyWXGGrfOOYAs1K7Y3J/DZM+3Dty3CVLRk5c8BHLGfeNYPSHFwfWm7aqYJmv64j6VZCCoqPAelN7cOS773Zm/8PlzvS3f3zE2Pf8MJedyQ7Jyu2W9ICk6yW92XX0ZtfR5whKmhVRUNJkkGTY2+eY5GMxdjum0h8o50M6X9LW6IfzBndJesshFvGStFjRPsVvkfmdiFEwfYw76d2S/Uzvmpzk+Zo02G92HRXKuyKmK8xdmAaewjnzxLiCcVyHg3MdrZL0FoXpU7qSGkfZCoUFAq9O+oa0VuY41A/WM5VxHa1XWFhzcVRt7mODpLfWclCyH3OAOTUTmOxnzfwHz738hesbz/7MNZkTLvyA1XzyN4IRM9YViw0KyEGJKFhSUJSKhQYVm05eZTe96YvO7A9cmT/9fdfl3vzxZZkj/zzpD6G061ZYjGW9wsntqwq3vp8i6TDX0Tmuoy+7jtYmOEZULm27ZmqO68hTeNT+n6RYdrAOKZjsOlos6c0Kj/ybePS3WOFxk8sG2rVXDqr/V8T9XxZxeyaYLnyTdH7JfqbzTEpDuJauo/Wuo0sknSDpG0qmmMImhYG4Y8tzZuzHx7gOB+Y66i2nTzlW4c7SOB9UFxQGQd7hOjrVdV5/QiJJtTLHoX6wnqmM66jDdXSuwvu2KAJd3QrTS51YDugNC8wBZlhBECQ9hqp1d/5mas9T//ppbbvv4qB71ygrpxo4pI5UKkhBr2TZje3Wm6643Z724ZuaR53WlvSwDsXz5So9Dxl218ARyQPyfDUr+k+O7nJi+Jrn+fqlpAsibrbbdeQMcTw1/fsq7+L6hKSrpMgqRa9TuBPuYUnLXEebqm3Q8zVB4TivkDS2yrHdIekHrlNZkvVyvsUob0ALrqPdFfRv4jP2kK+1GD7XU/FZbeB3eyBVv6/L45wv6SJJZ0iaJTO/n6clLVF45O/JtKXg4DocWPnI6EKFOd/OkzQh4i62Slom6T5J99bCzphameOGwvOVl9RksIvYP59N/ZvSVOCE9UxlPF8tkj4q6TpVnnKlQ2EQ9uaBArblz093SIM8sFL5IUlsmAOiMSwCk5Kkl/6zsefJX5zV7Y67rFTYNF/bnphs2117b1uHyT8TBliSSlJQzKrUevq6/OhTFjdau36ZnXzKY2r90LAIKqF2eL6+p/BoxnqFubRe2OfPm5IKJni+/lfhTWikzbqODou4zZpSXszMVZhT8CSFuX3GKlykNWnvTtVehU+eOxQ+mW1TmOj6eYU38WvKR+lMjnO2wmDEqeVxTiiPc9/dtJ0KF1CbFL5mn5K0PKkbSMAEz1eTws/DKZLepL3v21Hlr0Yd+EarS+F7pEPhe3iT9r6HV6XpJn4wuA4H5vkapzDX4kxJx0uapLBQyyiFxy/3D+Z2KTyq3qG9n58vKPwMXVXLn5+1MsehfrCeqUz5es1TmKphjqSpksZp77UqKHzPrlNYYPPXkh5Nw8PPpDAHDM3wCUyW7Wl/rLm35+U5ua2/nVna+OtLiq+9MF+ZHtmNJYKTeKOiVOrJl+z8EWtz42f9qjTjff+dO2L+yobssYkfFUJ98nz9t6SLD/LXJYWT1bry175By80md5V4vnYp+p1NG1xHx0fcJgAAAACgRgy7wOS+it6j4/e8svqqwvpfXZLpWD1RpVdHc8QbfwxQ943oDg6fucae9qFv5np7l1g7l7Y3vvXnBCSRKM/XLyS9cwg/WlCYXHrfoOU6SetcR1WlIyg/+Xu5mjYO4lHX0ZkG2gUAAAAA1IBhHabLuPPbckHXl0ce3fT90osnTuva+Pw1fTt/f4EVtLXY6pUySY8QsQoklSyVrDHdduNxa7P5V3/VdPq7b7GO/NCm8BuuS3J0QL+h7krMKjxON2X/v/B8neY6VVXhnVfFzx7KJkPtAgAAAABqwLAOTEqSc9iikqT2zHS156a/tNzaunx+8MydlxXbV88r9bw41Qp6sza1Zoe1oCiVSrbsojqz7qQVDfP+6s7M0Wf+KqcZqS5qg7plIq/puVJVgcmLohrIfjYZahcAAAAAUAOG9VHuQ9m1/nsTu19efV3m1Sffae9ZMdXKau8Oyvq8JMOHpfLuyPAryE3YHow5/9Fstuu2EQ27F9tz7zBSvQyIQhVHuQ9lk+vouCGOZ5SkF2WmAuUlrqO7DbQLAAAAAKgBdRuYlKRC6ckmvfzEtN4Nv393b/vy9wS7/jDRyhRk5RQGt1CTgoKkQk5qmtSRzTrLGyfMucWec+2jtnVyTVd5RH3wfP1I0lUGmr7adXTrEMbz75I+amA8knS062iLobYBAAAAAClX14HJfsXCBrtr62/OCjb8+hJtWTmv9NrvZ9kNUpAVuydrhSVZgVTqlezMmLbguHOX2m+68MFG31ucO+5Ptyc9PGCwPF83SfprA013SDrddbS2grFcJelHBsYiSVtcR0cbahsAAAAAUAOGfY7JwchkJ5VGjpu0ZI/37GN289GjuzNXXu+vX/Ke3M7ftGRyr2VlJz1CDKgno67Gt3TkJ5z6HyOnzr+tq3vL5pFjL+XINmrRS4babZX0hOfrY66jnxzqGz1feUl/I+kGQ2ORpGUG2wYAAAAA1AB2TB5Ab3FlU6bQPr60+qcLuv+w/OOlYOs0BV22LK5VqgRSUBohZY/eMmL8lO/Y0y/5hd/e83Tz9OsKSQ8NGCrP1zsl/cJwN2sk/UBhcLBNYcGdRoUVvd8u6YOSxhsew+Wuo9sN9wEAAAAASDECkwMo9K6d2PXS/7y39Nuvf8DqeWZyUCxlrYzCQjlcuvgFYQ5JK7BKQcPxm4Npf7a0YdKCHzRs/OmKzIlfMVHNGIiV52uCwmIzw1lB0hGuIy/pgQAAAAAAkkNgchC6Ou9uzDx759Q+z17U528+R97Tc+3Ma42yinsrQMOc/kJExZyCUq5UyBy/xTn2tB/mjj7xR37DUW3ZlmO6RoyYXUp0jECEPF/bJI1KehwG/cp1dH7SgwAAAAAAJIvAZIV2v7p0bGbTT95feO62awuF7kkKSrIbJfJQGmJJgV/+Y37Muobj3nF7MGnRQ864K5clOi7AIM/XzyS9J+lxGHSJ6+jupAcBAAAAAEgWxW8q1DzmrPagsOxfu/4wfll2xjUnF3o2XRasv2OOVdzhWjkpYAdlJCxJQUlSwVIw8aLlQWnUj7Kdy1Y2TpqxSuOuZHckhrv7NXwDk1sl3Zv0IAAAAAAAyWPHZJV6/MWjMy8/O7l78+qzuresvs7q3jAu6+xJelg1rVSwVQyOacuOcJc1NR3+UM+M9z4w8tjrtiQ9LiAunq9WSa9Iyic9FgM+7zr6x6QHAQAAAABIHoHJiBS8p7KFnm0LtPEXby9uXHpxofvlqcr2hLsnrQF/vL7t+xIsZUv2Eacvzc/7yxtLbbtXO295f2di4wIS5Pm6TdJ7kx5HxDxJx7qOeF8DAAAAAAhMRi148f81l/zcjG57/DW9T9+yyNqzptUq7WhWTmEeSi736xUk2SMLpdykrfYRb1meazzmR1l3z5r8if+2IemhAUnyfM2X9EjS44jYZ11HX0x6EAAAAACAdCAwaYivTWMLG+4Zl9v29NSeV565pvDa82fZwU7bzoodlJYU9EklNZayzbOW5w476k7ruLmrrLEz1jWMOK896eEBaeH5elDSwqTHEZE2SSe4jrqSHggAAAAAIB0ITMbAb/+vcX3b2j+sDfedW9r+xGzLCrJqSHpUCQgk9YRFbeyWSet03OU/zk04/9vO6NMJRgIH4PmaLekphfuta92FrkPRGwAAAADAXgQmY9S74sqJ3dakub2vrb3aennJ2Rl1Zq2chv/xbktSSSrYx5SsiWeuyu8p/TKfL9yTP/Nnq5MeGpB2nq+vSPpU0uOo0ndcRx9JehAAAAAAgHQhMJmA7s7Fk4K25Qt7n/75lcXdG+db+R7ZeQ3LAGVQkIK+bCGbH/Gkffyin9vz/n6JY814NulxAbXC89Uk6TeSpiU9liFaKemtrqPupAcCAAAAAEgXApMJ6n35vkk9rz53RWnT7ZcE3vNTZHnNVjbpUUWg/JKyCiO7g9Fzn8wd/+5bcq/9blluzje2JDswoDZ5viZK+q2k1oSHUqkNkk5zHW1NeiAAAAAAgPQhMJmwUmFlvrThnknFzl0nd3fuuK6v/bdzMsHGvG37tZdVrhTmjyxZx3Rn3RlPZoqbHsud+oEf58dfvzbpoQG1zvM1R9KDktykxzJIayW9w3XUlvRAAAAAAADpRGAyRXZr84zuF5fOzm/89UnBKysWlLpfnGHZRTvtuyiDYviVaRzTbh8+Y3lp2oUPNkx43+0NGt2R9NiA4cTzdbKk+ySNTXosA1gi6d2uo86kBwIAAAAASC8CkynlP/dPU/1tbR/JvPLQu7Rn7QTllK4dlJakoqSSZDVNbi+MOHlF/rC3fL359L9fkvTQgOHM8zVa0i2S3pn0WA6gW9LnJP2r66iU9GAAAAAAAOlGYDLFevueaNbz987t3bHtnN5XHrlUXZsnZXLdUkbJFcopBySLvRlp5AmdmVzDY/nDW5/KnPjXX80fvmh3QqMC6o7n6zxJX5I0M+mxSCpJ+qmkz7qONiU8FgAAAABAjSAwWSO62u9YWHz2x1eXNj1wgeyuVmUV7qCM+dcX9GVkZ0dvyhx79qPWcec+bJd67y6u+Yf8iPP+QHELIAGer7MlfUjhDsrGmLtvl3SrpG+6jjbE3DcAAAAAoMYRmKwhhT/8Q7M2bp/RVcpeV/CeWmjtemaUnduVl2W446KlYvHw7uCw6VvsoLSieeLb/l1HjFqVm/iJLsM9Axgkz1ezpAskvU3SAklTDHW1WtJSSfdLWsqRbQAAAADAUBGYrEG9bQ+32Ef0TOp58PrLCx0vXVzKWhMtdeQtSZEFKQMpUEaWRnZb3f663NRF38vO+dTS7qd+sGnkW7/rRdQLAEM8X6MkTZM0VdJ0SeMkjd7nK6s3VvjuVZgn0pO0ReGOyDZJv5e0RtLTriPe/wAAAACASBCYrHHda7/b3H34UVfpNzdfY3esnFwqdbbKlqzM0NoLygVtlMl3aexFy3Ozrr058/xdDzSe8e+FKMcNAAAAAACA+kZgcjjY85At77lRPa+8NM/f8sLVgff0AjvY1CoVwx2UA/2Ky99jqVkl68it1sjpj+YzjQ8600+9Q8f+dUcM/wIAAAAAAADUGQKTw0x33/rm0rq7zyutueUjha4tC4I+P2s5xXAH5f6/aksKClLQk5VlFXqzjePW2Cd94isas/COplEn9yYxfgAAAAAAANQHApPDVNdtJ40vHnf62UU1XK6Nd8yyureMVr4gq5yDMihJ6ssqsFs7Neldy/Ijx/84WPfNDbn5/7A6P/aDFLMAAAAAAACAUQQmh7ldr9w6umH3xil9zz9yUU9n2xU93YVRlqVSQ06bGkcff3v+uNN+3XvUSWsd9yKObAMAAAAAACA2BCbrRNdD78nr2PMW9B42YoqKDbszf3hqVa77mWcb3343RW0AAAAAAAAQOwKTAAAAAAAAAGJnJz0AAAAAAAAAAPWHwCQAAAAAAACA2BGYBAAAAAAAABA7ApMAAAAAAAAAYkdgEgAAAAAAAEDsCEwCAAAAAAAAiB2BSQAAAAAAAACxIzAJAAAAAAAAIHYEJgEAAAAAAADEjsAkAAAAAAAAgNgRmAQAAAAAAAAQOwKTAAAAAAAAAGJHYBIAAAAAAABA7AhMAgAAAAAAAIgdgUkAAAAAAAAAsSMwCQAAAAAAACB2BCYBAAAAAAAAxI7AJAAAAAAAAIDYEZgEAAAAAAAAEDsCkwAAAAAAAABiR2ASAAAAAAAAQOwITAIAAAAAAACIHYFJAAAAAAAAALEjMAkAAAAAAAAgdgQmAQAAAAAAAMSOwCQAAAAAAACA2BGYBAAAAAAAABA7ApMAAAAAAAAAYkdgEgAAAAAAAEDsCEwCAAAAAAAAiB2BSQAAAAAAAACxIzAJAAAAAAAAIHYEJgEAAAAAAADEjsAkAAAAAAAAgNgRmAQAAAAAAAAQOwKTAAAAAAAAAGJHYBIAAAAAAABA7AhMAgAAAAAAAIgdgUkAAAAAAAAAsSMwCQAAAAAAACB2BCYBAAAAAAAAxI7AJAAAAAAAAIDYEZgEAAAAAAAAEDsCkwAAAAAAAABiR2ASAAAAAAAAQOwITAIAAAAAAACIHYFJAAAAAAAAALEjMAkAAAAAAAAgdgQmAQAAAAAAAMSOwCQAAAAAAACA2BGYBAAAAAAAABA7ApMAAAAAAAAAYkdgEgAAAAAAAEDsCEwCAAAAAAAAiB2BSQAAAAAAAACxIzAJAAAAAAAAIHYEJgEAAAAAAADEjsAkAAAAAAAAgNgRmAQAAAAAAAAQOwKTAAAAAAAAAGJHYBIAAAAAAABA7AhMAgAAAAAAAIgdgUkAAAAAAAAAsSMwCQAAAAAAACB2BCYBAAAAAAAAxI7AJAAAAAAAAIDYEZgEAAAAAAAAEDsCkwAAAAAAAABiR2ASAAAAAAAAQOwITAIAAAAAAACIHYFJAAAAAAAAALEjMAkAAAAAAAAgdgQmAQAAAAAAAMSOwCQAAAAAAACA2BGYBAAAAAAAABA7ApMAAAAAAAAAYkdgEgAAAAAAAEDsCEwCAAAAAAAAiB2BSQAAAAAAAACxIzAJAAAAAAAAIHYEJgEAAAAAAADEjsAkAAAAAAAAgNgRmAQAAAAAAAAQOwKTAAAAAAAAAGJHYBIAAAAAAABA7AhMAgAAAAAAAIgdgUkAAAAAAAAAsSMwCQAAAAAAACB2/x/Aoxd+oJXu7QAAAABJRU5ErkJggg=="}},"time_used":87,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":28,"receive":59,"ssl":0},"alerts":{"ids":null,"analyzer":[{"sensor_name":"dns4eu","sensor_type":"DNS","title":"DNS4EU","description":"DNS4EU","scan_date":"2026-07-27","alert":"Sinkholed","trigger":"digital-assettrade.com","verdict":"malicious","severity":"medium","comment":"","link":"https://www.joindns4.eu/","meta":null}],"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/80639.93402c009a27b4660c7b.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:13.941Z","timestamp":1785148033941,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/80639.93402c009a27b4660c7b.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:13 GMT\r\ncontent-type: text/css; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding, Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\netag: W/\"69f98b73-8b\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Tue, 05 May 2026 06:17:23 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.51\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 05/05/2026 10:16:42\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 87c645abf674cc794e157cf6cb4e588b\r\ncdn-cache: HIT\r\ncontent-encoding: br\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":139,"size_decoded":920,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with no line terminators","md5":"2faeea5bc235cb9ea4b573fb2a53b0d1","sha1":"c7e2a2b388edcf4bec4dce73bcfdd08d44b612a9","sha256":"8d1688c131c79f862e429de6507fa33049831254957d7218d945cee5cfc55e00","sha512":"6d47c18f801752be93b3f3c2c844704bfccaa800c25ece5507725d97e2a1bde8e419ef5029eb7670612b44ed976b6a25c0f4d4908b0476ad5cf3f5cae5e92cef","ssdeep":"","tlshash":"43c02b4c812ec441c8d70e42f4cce7041cdb1023006e460b820e0c284cfb4760b10f3c","first_seen":"2023-04-17T07:26:30Z","last_seen":"2026-07-27T12:48:39.642394Z","times_seen":1224,"resource_available":false,"data":"QGZvbnQtZmFjZXtmb250LWZhbWlseTpFdWNsaWRDaXJjdWxhcjtmb250LXN0eWxlOm5vcm1hbDtmb250LXdlaWdodDo0MDA7c3JjOnVybChFdWNsaWRDaXJjdWxhci5iZThmODYyZGI0OGMyOTc2MDA5Zi53b2ZmMikgZm9ybWF0KCJ3b2ZmMiIpfQ=="}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/93421.95381f8e004d0d2fa8cf.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.055Z","timestamp":1785148034055,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/93421.95381f8e004d0d2fa8cf.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\ncontent-type: text/css; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a58ab11-1dc\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Thu, 16 Jul 2026 09:57:37 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/16/2026 11:03:21\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 03c30e0a0be86dd8758bfdde2b3c943c\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":476,"size_decoded":971,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with very long lines (476), with no line terminators","md5":"37bae040f1b0c84be3c545c1c2303cd1","sha1":"4d4cca3a184846ae3b3aa7cacecbc00873e0f411","sha256":"d021bcce768a1fe978903b5a9ff7b2120d90ea6df9ef981ace4d7edc9904ab6e","sha512":"a722c067825d0bfc7bb3e24a0bd456d26d0abff0921bee7e68e4a4a0e8a3d44340c2674fe3aa8a445ab5bc9d5de47a7c827600a20ca4edb6a83709dded14d6f7","ssdeep":"","tlshash":"06f0e99652ccbf337da011a7e2d2421b5388bc24fe2a658d9affd91a05d527050b9846","first_seen":"2026-07-17T14:15:58.317943Z","last_seen":"2026-07-27T12:51:16.066895Z","times_seen":155,"resource_available":false,"data":"LmNvbnRleHRBY3Rpb25zLXVCSmhqVVY4e2Rpc3BsYXk6ZmxleH0uaGlkZUlmTm9Ib3Zlci11QkpoalVWOHstLXVpLWxpYi1wcml2YXRlLWxpc3RJdGVtLWlzLWhvdmVyZWQtb3ItZm9jdXNlZDptaW4oMSx2YXIoLS11aS1saWItcHJpdmF0ZS1saXN0SXRlbS1pcy1ob3ZlcmVkLDApICsgdmFyKC0tdWktbGliLXByaXZhdGUtbGlzdEl0ZW0taXMtZm9jdXNlZC12aXNpYmxlLDApKX1AbWVkaWEgbm90IChhbnktcG9pbnRlcjpjb2Fyc2Upey5oaWRlSWZOb0hvdmVyLXVCSmhqVVY4e29wYWNpdHk6bWluKDEsdmFyKC0tdWktbGliLXByaXZhdGUtbGlzdEl0ZW0taXMtaG92ZXJlZC1vci1mb2N1c2VkLDApICsgdmFyKC0tdWktbGliLXByaXZhdGUtY29udGV4dEFjdGlvbi1mb3JjZVZpc2libGUsMCkpfX0uc29tZUNvbnRleHRBY3Rpb25Gb2N1c2VkLXVCSmhqVVY4ey0tdWktbGliLXByaXZhdGUtY29udGV4dEFjdGlvbi1mb3JjZVZpc2libGU6MX0="}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/studies.c50f28eb9a346e093252.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.236Z","timestamp":1785148034236,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/studies.c50f28eb9a346e093252.js HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a632877-2dbb5\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Fri, 24 Jul 2026 08:55:19 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/24/2026 10:31:24\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: d79084c54b2c40a0cab5efbd3fb6a967\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":187317,"size_decoded":59413,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, Unicode text, UTF-8 text, with very long lines (5953)","md5":"7987bd9ad9ebf8cf88bfd546acda45a6","sha1":"9d7cd0f9c2870976e2d42691fcec9c54b559febe","sha256":"561baf84600f8c7de1b64b308c0ab5c5c64b4147787b87dc06b944c48ba625b6","sha512":"9b8f36f0dd7580b4de39537ae4436f51bc2c3209e74e6b6accddf56c1ae01b8f54a9b9c64310fd18ac27cc77a3823c6b038078c45fa7e8ecff7650e3008a8a9f","ssdeep":"3072:w9dsU/XupjW4Pz+u8HuG3x3TrbZ0jv8L2EChXqVIywmlgkOJGJcdbo5CgZPz4OyG:44PToPYEJYTgZPz4OyoczgJyylAt/W","tlshash":"19042a6172e178ea93eb10d949790543db1d2c86780984acf2bc4cee265dd4c723afbc","first_seen":"2026-07-24T11:36:47.85007Z","last_seen":"2026-07-27T12:47:44.713484Z","times_seen":72,"resource_available":true,"data":"KHNlbGYud2VicGFja0NodW5rdHJhZGluZ3ZpZXc9c2VsZi53ZWJwYWNrQ2h1bmt0cmFkaW5ndmlld3x8W10pLnB1c2goW1sxNTE5Niw0NzUzOCw1Mzc3MCw2NDY0NCw2Njg2Nl0sezkxNDQ4NyhlLHQpe3ZhciBzOyFmdW5jdGlvbigpeyJ1c2Ugc3RyaWN0Ijt2YXIgaT17fS5oYXNPd25Qcm9wZXJ0eTtmdW5jdGlvbiByKCl7Zm9yKHZhciBlPVtdLHQ9MDt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgcz1hcmd1bWVudHNbdF07aWYocyl7dmFyIG49dHlwZW9mIHM7aWYoInN0cmluZyI9PT1ufHwibnVtYmVyIj09PW4pZS5wdXNoKHMpO2Vsc2UgaWYoQXJyYXkuaXNBcnJheShzKSYmcy5sZW5ndGgpe3ZhciBvPXIuYXBwbHkobnVsbCxzKTtvJiZlLnB1c2gobyl9ZWxzZSBpZigib2JqZWN0Ij09PW4pZm9yKHZhciBhIGluIHMpaS5jYWxsKHMsYSkmJnNbYV0mJmUucHVzaChhKX19cmV0dXJuIGUuam9pbigiICIpfWUuZXhwb3J0cz8oci5kZWZhdWx0PXIsZS5leHBvcnRzPXIpOnZvaWQgMD09PShzPWZ1bmN0aW9uKCl7cmV0dXJuIHJ9LmFwcGx5KHQsW10pKXx8KGUuZXhwb3J0cz1zKX0oKX0sNTQxODIwKGUpe2UuZXhwb3J0cz17c3VidGl0bGU6InN1YnRpdGxlLWJMVEJoQ3dKIix0ZXh0OiJ0ZXh0LWJMVEJoQ3dKIixzdW1tYXJ5OiJzdW1tYXJ5LWJMVEJoQ3dKIixncm91cDoiZ3JvdXAtYkxUQmhDd0oiLGdyb3VwSWNvbjoiZ3JvdXBJY29uLWJMVEJoQ3dKIixiZWZvcmVNYXJrZXRPcGVuOiJiZWZvcmVNYXJrZXRPcGVuLWJMVEJoQ3dKIixhZnRlck1hcmtldENsb3NlOiJhZnRlck1hcmtldENsb3NlLWJMVEJoQ3dKIixncm91cFRpdGxlOiJncm91cFRpdGxlLWJMVEJoQ3dKIixncm91cFJvdzoiZ3JvdXBSb3ctYkxUQmhDd0oiLGdyb3VwQ2VsbDoiZ3JvdXBDZWxsLWJMVEJoQ3dKIn19LDgwNjQxNShlKXtlLmV4cG9ydHM9e29wZXJhdG9yOiJvcGVyYXRvci1JSE5RVkFRSSJ9fSwyNzMzMTAoZSx0LHMpeyJ1c2Ugc3RyaWN0IjtzLmQodCx7SWNvbjooKT0+cn0pO3ZhciBpPXMoNzc5NDc0KTtjb25zdCByPWkuZm9yd2FyZFJlZigoKGUsdCk9Pntjb25zdHtpY29uOnM9IiIsdGl0bGU6cixhcmlhTGFiZWw6bixhcmlhTGFiZWxsZWRieTpvLGFyaWFIaWRkZW46YSwuLi5sfT1lLHU9ISEocnx8bnx8byk7cmV0dXJuIGkuY3JlYXRlRWxlbWVudCgic3BhbiIse3JvbGU6ImltZyIsLi4ubCxyZWY6dCwiYXJpYS1sYWJlbCI6biwiYXJpYS1sYWJlbGxlZGJ5IjpvLCJhcmlhLWhpZGRlbiI6YXx8IXUsdGl0bGU6cixkYW5nZXJvdXNseVNldElubmVySFRNTDp7X19odG1sOnN9fSl9KSl9LDYyODAwOShlLHQscyl7InVzZSBzdHJpY3QiO3MuZCh0LHtpc0Z1bmRhbWVudGFsU3VwcG9ydGVkQnlBbGVydHM6KCk9PnJ9KTtjb25zdCBpPW5ldyBTZXQoWyJTVEQ7RnVuZF9idXliYWNrX3lpZWxkIiwiU1REO0Z1bmRfZGl2aWRlbmRfeWllbGRfY2FsY3VsYXRlZCIsIlNURDtGdW5kX2Vhcm5pbmdzX3lpZWxkIiwiU1REO0Z1bmRfbWFya2V0X2NhcF9iYXNpYyIsIlNURDtGdW5kX3ByaWNlX2Vhcm5pbmdzX2dyb3d0aF9yYXRpbyIsIlNURDtGdW5kX3ByaWNlX2Jvb2siLCJTVEQ7RnVuZF9wcmljZV9jYXNoX2Zsb3ciLCJTVEQ7RnVuZF9wcmljZV9lYXJuaW5ncyIsIlNURDtGdW5kX3ByaWNlX2ZyZWVfY2FzaF9mbG93IiwiU1REO0Z1bmRfcHJpY2Vfc2FsZXMiLCJTVEQ7RnVuZF9wcmljZV90YW5naWJsZV9ib29rIl0pO2Z1bmN0aW9uIHIoZSl7cmV0dXJuIGkuaGFzKGUpfX0sNTMyOTc1KGUsdCxzKXsidXNlIHN0cmljdCI7cy5kKHQse2dldERvY3VtZW50c0FwaTooKT0+dX0pO3ZhciBpPXMoODM5NDI2KSxyPXMoMzg0MDE3KTtjbGFzcyBue2NvbnN0cnVjdG9yKGUsdCl7dGhpcy5fcHVibGljUHJlZml4PSJwdWJsaWMvIix0aGlzLl9iYXNlVXJsPWUuZW5kc1dpdGgoIi8iKT9lOmAke2V9L2AsdGhpcy5fZmV0Y2g9dH1hc3luYyBfc2VuZFJlcXVlc3QoZSx0LHMpe2NvbnN0IGk9YXdhaXQgdGhpcy5fZmV0Y2godC50b1N0cmluZygpLHsuLi5zLG1ldGhvZDplfSk7aWYoIWkub2spe2NvbnN0IHM9YXdhaXQgaS50ZXh0KCk7dGhyb3cgbmV3IEVycm9yKGBFcnJvciB3aGlsZSBmZXRjaGluZyAke2V9ICR7dC50b1N0cmluZygpfS4gUmVzcG9uc2Ugc3RhdHVzICR7aS5zdGF0dXN9ICR7aS5zdGF0dXNUZXh0fS4gUmVzcG9uc2UgdGV4dDogJyR7c30nYCl9cmV0dXJuIGl9X3BhcnNlQm9keShlKXtyZXR1cm4gZS5qc29uKCl9X2dldFVSTChlLHQpe2NvbnN0IHM9bmV3IFVSTChlLHRoaXMuX2Jhc2VVcmwpO2lmKHQpe2NvbnN0IGU9bmV3IFVSTFNlYXJjaFBhcmFtcyh0KTtzLnNlYXJjaD1lLnRvU3RyaW5nKCl9cmV0dXJuIHN9fWZ1bmN0aW9uIG8oZSl7Y29uc3QgdD1uZXcgVVJMU2VhcmNoUGFyYW1zO3JldHVybiBudWxsIT1lLmNsaWVudCYmdC5zZXQoImNsaWVudCIsZS5jbGllbnQpLG51bGwhPWUuc3RyZWFtaW5nJiZ0LnNldCgic3RyZWFtaW5nIixTdHJpbmcoZS5zdHJlYW1pbmcpKSxudWxsIT1lLnB1YlVzYWdlJiZ0LnNldCgicHViX3VzYWdlIixlLnB1YlVzYWdlLmpvaW4oIiwiKSksZS5maWx0ZXJzLnNsaWNlKCkuc29ydCgoKGUsdCk9PmUuaWQ8dC5pZD8tMToxKSkuZm9yRWFjaCgoZT0+e2lmKDA9PT1lLnZhbHVlcy5sZW5ndGgpcmV0dXJuO2NvbnN0IHM9ZS52YWx1ZXMuc2xpY2UoKS5zb3J0KCkuam9pbigiLCIpO3QuYXBwZW5kKCJmaWx0ZXIiLGUuaWQrIjoiK3MpfSkpLHQuc29ydCgpLHQudG9TdHJpbmcoKX1jbGFzcyBhIGV4dGVuZHMgbntjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5fYXBpUGF0aD0iZG9jLXNjcmVlbmVyL3YxIn1hc3luYyBnZXREb2N1bWVudHMoZSx0KXtjb25zdCBzPW8oZSksaT10aGlzLl9nZXRVUkwoYCR7dGhpcy5fcHVibGljUHJlZml4fSR7dGhpcy5fYXBpUGF0aH0vZG9jdW1lbnRzYCxzKTtyZXR1cm4gdGhpcy5fc2VuZFJlcXVlc3QoIkdFVCIsaSx0KS50aGVuKHRoaXMuX3BhcnNlQm9keSl9fWNsYXNzIGwgZXh0ZW5kcyBue2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLl9hcGlQYXRoPSJuZXdzLWZsb3cvdjIifWFzeW5jIGdldFN1bW1hcmllcyhlLHQpewpjb25zdCBzPW8oZSksaT10aGlzLl9nZXRVUkwoYCR7dGhpcy5fcHVibGljUHJlZml4fSR7dGhpcy5fYXBpUGF0aH0vbmV3c2Ascyk7cmV0dXJuIHRoaXMuX3NlbmRSZXF1ZXN0KCJHRVQiLGksdCkudGhlbih0aGlzLl9wYXJzZUJvZHkpfX1jb25zdCB1PSgwLGkuZGVmYXVsdCkoKCgpPT57Y29uc3QgZT0oZSx0KT0+KDAsci5mZXRjaCkoZSx0KSx0PWZ1bmN0aW9uKCl7bGV0IGU9d2luZG93Lk5FV1NfTUVESUFUT1JfVVJMO2UuZW5kc1dpdGgoIi8iKXx8KGUrPSIvIik7cmV0dXJuIGV9KCk7cmV0dXJue2RvY1NjcmVlbmVyOnt2MTpuZXcgYSh0LGUpfSxkb2NTdW1tYXJpZXM6e3YyOm5ldyBsKHQsZSl9fX0pKX0sODExOTA0KGUsdCxzKXsidXNlIHN0cmljdCI7cy5kKHQse29wZW5DYXJkUG9wdXA6KCk9Pml9KTtjb25zdCBpPShlLHQsaSxyKT0+UHJvbWlzZS5hbGwoW3MuZSg4NzU0Mikscy5lKDg0MzA2KSxzLmUoMjkyOTYpLHMuZSg1MjM5Nikscy5lKDYwMDYyKSxzLmUoNDY5MDcpLHMuZSgyMDM1NCkscy5lKDEzNDkyKSxzLmUoMzc3NDYpLHMuZSgxMjM4NSkscy5lKDgxMDcyKSxzLmUoOTQ5NDgpLHMuZSgyMzYyNCkscy5lKDM2MjIyKSxzLmUoMjk1MzYpLHMuZSgzMjgxNikscy5lKDUxODQpLHMuZSg4MzQ4OCkscy5lKDE5NTk1KSxzLmUoMTk3ODcpLHMuZSg2Nzc5OSkscy5lKDExNDYxKSxzLmUoMjQ1ODEpLHMuZSg5NjU4Nykscy5lKDExMjE4KSxzLmUoODY0MjMpLHMuZSgzNzUxMykscy5lKDk1MDQpLHMuZSg0MDgzNSkscy5lKDkzNDIxKSxzLmUoNzg2NTIpLHMuZSg0OTU4OCkscy5lKDEwMzg1KSxzLmUoNTIwNjUpLHMuZSg0NzYzMikscy5lKDY2MDUpLHMuZSg3NDM4MSkscy5lKDE1NTI2KSxzLmUoNzE0MTQpLHMuZSg2MTgyMSkscy5lKDUyNjgwKSxzLmUoMzU3OTQpLHMuZSgzMjc0OCkscy5lKDE2NzYpLHMuZSg2NjI3MCkscy5lKDk3NDQpLHMuZSg4MzA0MSkscy5lKDcxNDgyKSxzLmUoMTk1MTMpLHMuZSgzNTE5OCkscy5lKDQ2NTkxKSxzLmUoNzE1MjgpLHMuZSg0NTM2OCkscy5lKDQ0NzcpLHMuZSgxNTA5KSxzLmUoNTUzMzYpLHMuZSg5MjM5Mykscy5lKDIwMjcxKSxzLmUoNTE4ODApLHMuZSg3NjMyOSkscy5lKDI3NTQ5KSxzLmUoMTY0MjEpLHMuZSg4MjI3MSkscy5lKDY5ODA5KSxzLmUoOWUzKSxzLmUoNzg0NzEpLHMuZSg4ODM4NSkscy5lKDUwMzI1KSxzLmUoNDcwMjEpLHMuZSg3MzU1MSkscy5lKDc4MjM3KSxzLmUoMTM2NzcpLHMuZSgzMjM4Nykscy5lKDc4MzEyKSxzLmUoMjM3NDMpLHMuZSg0MjI4OCkscy5lKDc3NTc4KSxzLmUoODk0Nikscy5lKDYxMTgzKSxzLmUoNzgxMDkpLHMuZSgxNjYwKSxzLmUoMjk3OTgpXSkudGhlbihzLmJpbmQocyw3MjE2NDcpKS50aGVuKChzPT5zLm9wZW5DYXJkUG9wdXAoZSx0LGkscikpKX0sMTEyNzI1KGUsdCxzKXsidXNlIHN0cmljdCI7aWYocy5kKHQse2J1aWxkU3VtbWFyaWVzTWFwOigpPT5fLGNhdGVnb3J5SGFzU3VtbWFyeTooKT0+YSxnZXREb2N1bWVudHNXaXRoU3VtbWFyeTooKT0+byxnZXRHcm91cGVkRG9jdW1lbnRzOigpPT5uLGxvb2t1cEJ5RG9jdW1lbnRJZDooKT0+cCxvcGVuRG9jdW1lbnRJbk5ld1RhYjooKT0+eSxwcmVwYXJlU3VtbWFyeTooKT0+bCxzb3J0Q2F0ZWdvcmllczooKT0+dSx0b0RvY3VtZW50Q2FyZFByb3BzOigpPT5jfSksNzk3OTU9PXMuail2YXIgaT1zKDMwNTEwOSk7Y29uc3Qgcj1uZXcgU2V0KFsiYW5udWFsX3JlcG9ydCIsImFubnVhbF9maW5hbmNpYWxfc3RhdGVtZW50Il0pO2Z1bmN0aW9uIG4oZSl7Y29uc3QgdD17fTtmb3IoY29uc3QgcyBvZiBlKXtpZighcy52aWV3cz8ubGVuZ3RoKWNvbnRpbnVlO2NvbnN0IGU9e2lkOnMuaWQsdGl0bGU6cy50aXRsZSxldmVudDpzLmV2ZW50LHJlcG9ydGVkOnMucmVwb3J0ZWQsZmlzY2FsWWVhcjpzLmZpc2NhbF95ZWFyLGZpc2NhbFBlcmlvZDpzLmZpc2NhbF9wZXJpb2QsY2F0ZWdvcmllczpbe2RvY3VtZW50SWQ6cy5pZCxpZDpzLmNhdGVnb3J5LmlkLHRpdGxlOnMuY2F0ZWdvcnkudGl0bGUsdmlld3M6cy52aWV3cyxmb3JtOnMuZm9ybX1dfTt0W3MuY29ycmVsYXRpb25faWRdP3Rbcy5jb3JyZWxhdGlvbl9pZF0uY2F0ZWdvcmllcy5wdXNoKC4uLmUuY2F0ZWdvcmllcyk6dFtzLmNvcnJlbGF0aW9uX2lkXT1lfXJldHVybiBPYmplY3QudmFsdWVzKHQpfWZ1bmN0aW9uIG8oZSx0LHMsaSl7Y29uc3Qgcj1uKGUpLG89T2JqZWN0LmtleXMocykubWFwKChlPT5OdW1iZXIoZSkpKTtyZXR1cm4gci5tYXAoKGU9PmMoZSxfKHQpLG8scyxpKSkpfWZ1bmN0aW9uIGEoe3ZpZXdzOmV9KXtyZXR1cm4gZS5zb21lKCgoe3R5cGU6ZX0pPT4ic3VtbWFyeSI9PT1lKSl9ZnVuY3Rpb24gbChlKXtyZXR1cm4gZT8iLiI9PT1lW2UubGVuZ3RoLTFdP2U6YCR7ZX0uYDp2b2lkIDB9ZnVuY3Rpb24gdShlKXtjb25zdCB0PVsidHJhbnNjcmlwdCIsImNhbGxfdHJhbnNjcmlwdCIsImV2ZW50X3RyYW5zY3JpcHQiLCJlYXJuaW5nc19yZWxlYXNlIiwicXVhcnRlcmx5X3JlcG9ydCIsImFubnVhbF9yZXBvcnQiLCJzbGlkZXMiXTtyZXR1cm4gZS5zb3J0KCgoZSxzKT0+e2NvbnN0IGk9dC5pbmRleE9mKGUuaWQpLHI9dC5pbmRleE9mKHMuaWQpO3JldHVybigtMT09PWk/dC5sZW5ndGg6aSktKC0xPT09cj90Lmxlbmd0aDpyKX0pKX1mdW5jdGlvbiBjKGUsdCxzLG4sbyl7bGV0IGE9ZS50aXRsZTtjb25zdCBjPSJlYXJuaW5nIj09PWUuZXZlbnQsaD1lLmNhdGVnb3JpZXMuc29tZSgoZT0+ci5oYXMoZS5pZCkpKSxkPW5ldyBEYXRlKDFlMyplLnJlcG9ydGVkKS5nZXRGdWxsWWVhcigpO2MmJmUuZmlzY2FsUGVyaW9kJiZlLmZpc2NhbFllYXImJihhPWBFYXJuaW5ncywgJHtlLmZpc2NhbFBlcmlvZH0gRlkke2UuZmlzY2FsWWVhcn1gKTtjb25zdCBfPXUoZS5jYXRlZ29yaWVzKSx5PWZ1bmN0aW9uKGUsdCl7Zm9yKGNvbnN0IHMgb2YgZSl7Y29uc3QgZT1wKHMuZG9jdW1lbnRJZCx0KTtpZih2b2lkIDAhPT1lKXJldHVybiBlfXJldHVybn0oXyx0KSx2PWwoeSksZj1jJiZmdW5jdGlvbihlLHQpe2NvbnN0IHM9ZS1tLGk9ZSttLHI9dC5maWx0ZXIoKGU9PmU+PXMmJmU8PWkpKQo7cmV0dXJuIHIubGVuZ3RoP3JbMF06dm9pZCAwfShlLnJlcG9ydGVkLHMpO3JldHVybnt0aXRsZTphLGlzQW5udWFsOmgsc3VtbWFyeTp2LGV2ZW50OmUuZXZlbnQsZGF0ZTplLnJlcG9ydGVkLHllYXI6ZS5maXNjYWxZZWFyfHxkLGNhdGVnb3JpZXM6XyxlYXJuaW5nOmYmJmYgaW4gbj8oMCxpLmdldERvY3VtZW50RWFybmluZ1NlcnZlcikobltmXSk6dm9pZCAwLGN1cnJlbmN5Om99fWZ1bmN0aW9uIGgoZSl7Y29uc3QgdD1lLmluZGV4T2YoIjoiKTtyZXR1cm4tMT09PXQ/ZTplLnN1YnN0cmluZyh0KzEpLnRyaW0oKX1mdW5jdGlvbiBkKGUpe2NvbnN0IHQ9ZS5tYXRjaCgvOihcZCspLyk/LlsxXTtyZXR1cm4gdHx8bnVsbH1mdW5jdGlvbiBfKGUpe2NvbnN0IHQ9bmV3IE1hcDtmb3IoY29uc3QgcyBvZiBlKXtjb25zdCBlPWQocy5pZCk7bnVsbCE9PWUmJnQuc2V0KGUsaChzLnRpdGxlKSl9cmV0dXJuIHR9ZnVuY3Rpb24gcChlLHQpe2NvbnN0IHM9ZChlKTtyZXR1cm4gbnVsbD09PXM/dm9pZCAwOnQuZ2V0KHMpfWZ1bmN0aW9uIHkoZSl7Y29uc3QgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJhIik7dC5ocmVmPWUsdC50YXJnZXQ9Il9ibGFuayIsdC5yZWw9Im5vb3BlbmVyIG5vcmVmZXJyZXIiLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodCksdC5jbGljaygpLGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQodCl9Y29uc3QgbT03OTc5NT09cy5qPzE3MjgwMDpudWxsfSwzMDUxMDkoZSx0LHMpeyJ1c2Ugc3RyaWN0IjtpZihzLmQodCx7Z2V0RG9jdW1lbnRFYXJuaW5nU2VydmVyOigpPT5yfSksNzk3OTU9PXMuail2YXIgaT1zKDk2MDk2Mik7ZnVuY3Rpb24gcihlKXtjb25zdCB0PWUuZGF0ZSxzPTE0PT09ZS50aW1lVHlwZSxyPXM/dm9pZCAwOigwLGkuaGFzTnVtYmVyKShlLnJlcG9ydGVkKT9lLnJlcG9ydGVkOnZvaWQgMCxuPSgwLGkuaGFzTnVtYmVyKShlLmVzdGltYXRlKT9lLmVzdGltYXRlOnZvaWQgMCxvPSgwLGkuaGFzTnVtYmVyKShyKSYmKDAsaS5oYXNOdW1iZXIpKG4pP3Itbjp2b2lkIDAsYT1vJiZuP01hdGguYWJzKG8vbioxMDApOnZvaWQgMCxsPXM/dm9pZCAwOigwLGkuaGFzTnVtYmVyKShlLnJldmVudWVWYWx1ZSk/MWU2KmUucmV2ZW51ZVZhbHVlOnZvaWQgMCx1PSgwLGkuaGFzTnVtYmVyKShlLnJldmVudWVFc3RpbWF0ZSk/MWU2KmUucmV2ZW51ZUVzdGltYXRlOnZvaWQgMCxjPSgwLGkuaGFzTnVtYmVyKShsKSYmKDAsaS5oYXNOdW1iZXIpKHUpP2wtdTp2b2lkIDAsaD1jJiZ1P01hdGguYWJzKGMvdSoxMDApOnZvaWQgMDtsZXQgZDtyZXR1cm4gZS50aW1lVHlwZT9lLnRpbWVUeXBlPDIwP2Q9MTA9PT1lLnRpbWVUeXBlPyJFc3RpbWF0ZWREYXRlIjoiRnV0dXJlIjpvJiYoZD1vPDA/Ik5lZ2F0aXZlIjoiUG9zaXRpdmUiKTpvP2Q9bzwwPyJOZWdhdGl2ZSI6IlBvc2l0aXZlIjp0JiZ0PkRhdGUubm93KCkmJihkPSJGdXR1cmUiKSx7ZGF0ZTp0LHR5cGU6ZCx0aW1lVHlwZTplLnRpbWVUeXBlLHBlcmlvZDplLnBlcmlvZHx8dm9pZCAwLHN0YW5kYXJkaXplZDplLnN0YW5kYXJkaXplZHx8dm9pZCAwLHJlcG9ydGVkOnIsZXN0aW1hdGU6bixzdXJwcmlzZTpvfHx2b2lkIDAsc3VycHJpc2VQZXJjZW50OmEscmV2ZW51ZVZhbHVlOmwscmV2ZW51ZUVzdGltYXRlOnUscmV2ZW51ZVN1cnByaXNlOmN8fHZvaWQgMCxyZXZlbnVlU3VycHJpc2VQZXJjZW50Omh9fX0sODg5Mzk3KGUsdCxzKXsidXNlIHN0cmljdCI7cy5kKHQse3Nob3dGaW5hbmNpYWxzRGlhbG9nOigpPT5yfSk7dmFyIGk9cyg4OTA4MzUpO2Z1bmN0aW9uIHIoZSl7aS5jdXJyZW50TGF5b3V0LnZhbHVlKCk/LnNob3dBbmFseXNpc1ZpZXcoImZpbmFuY2lhbHMiLGUpfX0sODg4NTYyKGUsdCxzKXsidXNlIHN0cmljdCI7cy5kKHQse29wZW5GaW5hbmNpYWxzV2VidmlldzooKT0+aH0pO3ZhciBpPXMoNzU3ODI5KSxyPXMoNjIzNTExKSxuPXMoMTI4ODE0KSxvPXMoMzA5MDUyKQo7Y29uc3QgYT1uZXcgU2V0KFsibnVtYmVyX29mX2VtcGxveWVlcyIsIndlYl9zaXRlX3VybCIsImZvdW5kZWQiLCJjZW8iLCJtYXJrZXRfY2FwX2Jhc2ljIiwiZGl2aWRlbmRzX3lpZWxkIiwicHJpY2VfZWFybmluZ3NfdHRtIiwiZWFybmluZ3NfcGVyX3NoYXJlX2Jhc2ljX3R0bSIsImN1cnJlbmN5X2NvZGUiLCJmdW5kYW1lbnRhbF9jdXJyZW5jeV9jb2RlIiwiZmxvYXRfc2hhcmVzX291dHN0YW5kaW5nIiwidG90YWxfc2hhcmVzX291dHN0YW5kaW5nIiwidG90YWxfcmV2ZW51ZV9meV9oIiwidG90YWxfcmV2ZW51ZV9mcV9oIiwidG90YWxfcmV2ZW51ZV9maF9oIiwibmV0X2luY29tZV9meV9oIiwibmV0X2luY29tZV9mcV9oIiwibmV0X2luY29tZV9maF9oIiwidG90YWxfYXNzZXRzX2Z5X2giLCJ0b3RhbF9hc3NldHNfZnFfaCIsInRvdGFsX2Fzc2V0c19maF9oIiwidG90YWxfbGlhYmlsaXRpZXNfZnlfaCIsInRvdGFsX2xpYWJpbGl0aWVzX2ZxX2giLCJ0b3RhbF9saWFiaWxpdGllc19maF9oIiwiY2FzaF9mX29wZXJhdGluZ19hY3Rpdml0aWVzX2Z5X2giLCJjYXNoX2Zfb3BlcmF0aW5nX2FjdGl2aXRpZXNfZnFfaCIsImNhc2hfZl9vcGVyYXRpbmdfYWN0aXZpdGllc19maF9oIiwiY2FzaF9mX2ludmVzdGluZ19hY3Rpdml0aWVzX2Z5X2giLCJjYXNoX2ZfaW52ZXN0aW5nX2FjdGl2aXRpZXNfZnFfaCIsImNhc2hfZl9pbnZlc3RpbmdfYWN0aXZpdGllc19maF9oIiwiY2FzaF9mX2ZpbmFuY2luZ19hY3Rpdml0aWVzX2Z5X2giLCJjYXNoX2ZfZmluYW5jaW5nX2FjdGl2aXRpZXNfZnFfaCIsImNhc2hfZl9maW5hbmNpbmdfYWN0aXZpdGllc19maF9oIiwiZmlzY2FsX3BlcmlvZF9meV9oIiwiZmlzY2FsX3BlcmlvZF9mcV9oIiwiZmlzY2FsX3BlcmlvZF9maF9oIiwiaW50ZXJlc3RfaW5jb21lX2Z5X2giLCJpbnRlcmVzdF9pbmNvbWVfZnFfaCIsImludGVyZXN0X2luY29tZV9maF9oIiwibm9uX2ludGVyZXN0X2luY29tZV9meV9oIiwibm9uX2ludGVyZXN0X2luY29tZV9mcV9oIiwibm9uX2ludGVyZXN0X2luY29tZV9maF9oIiwiZWFybmluZ3NfcmVsZWFzZV9kYXRlX2ZxX2giLCJlYXJuaW5nc19yZWxlYXNlX2RhdGVfZnlfaCIsImVhcm5pbmdzX3JlbGVhc2VfZGF0ZV9maF9oIiwiZWFybmluZ3NfcmVsZWFzZV9uZXh0X2RhdGVfZnEiLCJlYXJuaW5nc19yZWxlYXNlX25leHRfZGF0ZV9meSIsImVhcm5pbmdzX3JlbGVhc2VfbmV4dF9kYXRlX2ZoIiwiZWFybmluZ3NfcmVsZWFzZV9uZXh0X3RpbWUiLCJlYXJuaW5nc19yZWxlYXNlX25leHRfZGF0ZSIsImlzX25leHRfZWFybmluZ3NfcmVsZWFzZV9kYXRlX2VzdGltYXRlZCIsImVhcm5pbmdzX3Blcl9zaGFyZV9mb3JlY2FzdF9uZXh0X2ZxIiwiZWFybmluZ3NfcGVyX3NoYXJlX2ZvcmVjYXN0X25leHRfZnkiLCJlYXJuaW5nc19wZXJfc2hhcmVfZm9yZWNhc3RfbmV4dF9maCIsImVhcm5pbmdzX3Blcl9zaGFyZV9mb3JlY2FzdF9mcV9oIiwiZWFybmluZ3NfcGVyX3NoYXJlX2ZvcmVjYXN0X2Z5X2giLCJlYXJuaW5nc19wZXJfc2hhcmVfZm9yZWNhc3RfZmhfaCIsImVhcm5pbmdzX3Blcl9zaGFyZV9mcV9oIiwiZWFybmluZ3NfcGVyX3NoYXJlX2Z5X2giLCJlYXJuaW5nc19wZXJfc2hhcmVfZmhfaCIsImVhcm5pbmdzX2Zpc2NhbF9wZXJpb2RfZnFfaCIsImVhcm5pbmdzX2Zpc2NhbF9wZXJpb2RfZnlfaCIsImVhcm5pbmdzX2Zpc2NhbF9wZXJpb2RfZmhfaCIsIm5leHRfZWFybmluZ3NfZmlzY2FsX3BlcmlvZF9mcSIsIm5leHRfZWFybmluZ3NfZmlzY2FsX3BlcmlvZF9meSIsIm5leHRfZWFybmluZ3NfZmlzY2FsX3BlcmlvZF9maCIsInJldmVudWVfZnFfaCIsInJldmVudWVfZnlfaCIsInJldmVudWVfZmhfaCIsInJldmVudWVfZm9yZWNhc3RfZnFfaCIsInJldmVudWVfZm9yZWNhc3RfZnlfaCIsInJldmVudWVfZm9yZWNhc3RfZmhfaCIsInJldmVudWVfZm9yZWNhc3RfbmV4dF9mcSIsInJldmVudWVfZm9yZWNhc3RfbmV4dF9meSIsInJldmVudWVfZm9yZWNhc3RfbmV4dF9maCIsImZ1bmRhbWVudGFsX2N1cnJlbmN5X2NvZGUiLCJkaXZpZGVuZF9wYXlvdXRfcmF0aW9fdHRtIiwiZGl2aWRlbmRzX3lpZWxkX2N1cnJlbnQiLCJkaXZpZGVuZF9leF9kYXRlX3VwY29taW5nIiwiZGl2aWRlbmRfYW1vdW50X3VwY29taW5nIiwiZGl2aWRlbmRfYW1vdW50X3JlY2VudCIsImRpdmlkZW5kX2V4X2RhdGVfcmVjZW50IiwiZGl2aWRlbmRfYW1vdW50X2giLCJkaXZpZGVuZF9wYXltZW50X2RhdGVfdXBjb21pbmciLCJkaXZpZGVuZF9wYXltZW50X2RhdGVfcmVjZW50IiwidG90YWxfcmV2ZW51ZV9meSIsImdyb3NzX3Byb2ZpdF9meSIsImViaXRkYV9meSIsImViaXRfZnkiLCJuZXRfaW5jb21lX2Z5IiwiZmlzY2FsX3BlcmlvZF9meSIsImZpc2NhbF9wZXJpb2RfZnlfaCIsImZpc2NhbF9wZXJpb2RfZnFfaCIsImZpc2NhbF9wZXJpb2RfZmhfaCIsInRvdGFsX2RlYnRfZnlfaCIsInRvdGFsX2RlYnRfZnFfaCIsInRvdGFsX2RlYnRfZmhfaCIsImZyZWVfY2FzaF9mbG93X2Z5X2giLCJmcmVlX2Nhc2hfZmxvd19mcV9oIiwiZnJlZV9jYXNoX2Zsb3dfZmhfaCIsImNhc2hfbl9lcXVpdmFsZW50c19meV9oIiwiY2FzaF9uX2VxdWl2YWxlbnRzX2ZxX2giLCJjYXNoX25fZXF1aXZhbGVudHNfZmhfaCIsImxvYW5zX25ldF9meV9oIiwibG9hbnNfbmV0X2ZxX2giLCJsb2Fuc19uZXRfZmhfaCIsInRvdGFsX2RlcG9zaXRzX2Z5X2giLCJ0b3RhbF9kZXBvc2l0c19mcV9oIiwidG90YWxfZGVwb3NpdHNfZmhfaCIsImxvYW5fbG9zc19hbGxvd2FuY2VzX2Z5X2giLCJsb2FuX2xvc3NfYWxsb3dhbmNlc19mcV9oIiwibG9hbl9sb3NzX2FsbG93YW5jZXNfZmhfaCIsImluc3VyYW5jZV9yZXNlcnZlc19meV9oIiwiaW5zdXJhbmNlX3Jlc2VydmVzX2ZxX2giLCJpbnN1cmFuY2VfcmVzZXJ2ZXNfZmhfaCIsInBvbGljeV9jbGFpbXNfZnlfaCIsInBvbGljeV9jbGFpbXNfZnFfaCIsInBvbGljeV9jbGFpbXNfZmhfaCIsInByZW1pdW1zX2Vhcm5lZF9meV9oIiwicHJlbWl1bXNfZWFybmVkX2ZxX2giLCJwcmVtaXVtc19lYXJuZWRfZmhfaCIsImNvbW1vbl9lcXVpdHlfdGllcjFfcmF0aW9fZnlfaCIsImNvbW1vbl9lcXVpdHlfdGllcjFfcmF0aW9fZnFfaCIsImNvbW1vbl9lcXVpdHlfdGllcjFfcmF0aW9fZmhfaCIsInRpZXIxX2NhcGl0YWxfcmF0aW9fZnlfaCIsInRpZXIxX2NhcGl0YWxfcmF0aW9fZnFfaCIsInRpZXIxX2NhcGl0YWxfcmF0aW9fZmhfaCIsInRvdGFsX2NhcGl0YWxfcmF0aW9fZnlfaCIsInRvdGFsX2NhcGl0YWxfcmF0aW9fZnFfaCIsInRvdGFsX2NhcGl0YWxfcmF0aW9fZmhfaCIsImZpc2NhbF9wZXJpb2RfZnlfaCIsImZpc2NhbF9wZXJpb2RfZnFfaCIsImZpc2NhbF9wZXJpb2RfZmhfaCIsInJlc2VydmVfdG9fdG90YWxfY2FwaXRhbF9meV9oIiwicmVzZXJ2ZV90b190b3RhbF9jYXBpdGFsX2ZxX2giLCJyZXNlcnZlX3RvX3RvdGFsX2NhcGl0YWxfZmhfaCIsInVuZWFybmVkX3ByZW1pdW1fdG9fdG90YWxfY2FwaXRhbF9meV9oIiwidW5lYXJuZWRfcHJlbWl1bV90b190b3RhbF9jYXBpdGFsX2ZxX2giLCJ1bmVhcm5lZF9wcmVtaXVtX3RvX3RvdGFsX2NhcGl0YWxfZmhfaCIsImZ1bmRhbWVudGFsX2N1cnJlbmN5X2NvZGUiLCJ0b3RhbF9jdXJyZW50X2Fzc2V0c19meSIsInRvdGFsX2N1cnJlbnRfYXNzZXRzX2ZxIiwidG90YWxfY3VycmVudF9hc3NldHNfZmgiLCJ0b3RhbF9jdXJyZW50X2xpYWJpbGl0aWVzX2Z5IiwidG90YWxfY3VycmVudF9saWFiaWxpdGllc19mcSIsInRvdGFsX2N1cnJlbnRfbGlhYmlsaXRpZXNfZmgiLCJ0b3RhbF9ub25fY3VycmVudF9hc3NldHNfZnkiLCJ0b3RhbF9ub25fY3VycmVudF9hc3NldHNfZnEiLCJ0b3RhbF9ub25fY3VycmVudF9hc3NldHNfZmgiLCJ0b3RhbF9ub25fY3VycmVudF9saWFiaWxpdGllc19meSIsInRvdGFsX25vbl9jdXJyZW50X2xpYWJpbGl0aWVzX2ZxIiwidG90YWxfbm9uX2N1cnJlbnRfbGlhYmlsaXRpZXNfZmgiLCJmaXNjYWxfcGVyaW9kX2Z5IiwiZmlzY2FsX3BlcmlvZF9mcSIsImZpc2NhbF9wZXJpb2RfZmgiLCJmdW5kYW1lbnRhbF9jdXJyZW5jeV9jb2RlIiwicHJpY2VfZWFybmluZ3NfZnFfaCIsInByaWNlX2Vhcm5pbmdzX2Z5X2giLCJwcmljZV9lYXJuaW5nc19maF9oIiwicHJpY2Vfc2FsZXNfZnFfaCIsInByaWNlX3NhbGVzX2Z5X2giLCJwcmljZV9zYWxlc19maF9oIiwiZmlzY2FsX3BlcmlvZF9meV9oIiwiZmlzY2FsX3BlcmlvZF9mcV9oIiwiZmlzY2FsX3BlcmlvZF9maF9oIiwibWFya2V0X2NhcF9iYXNpYyIsImRpbHV0ZWRfbmV0X2luY29tZV90dG0iLCJ0b3RhbF9yZXZlbnVlX3R0bSIsIm5ldF9yZXZlbnVlX3R0bSIsImZ1bmRfdmlld19tb2RlcyIsInByaWNlX2Vhcm5pbmdzX2N1cnJlbnQiLCJwcmljZV9zYWxlc19jdXJyZW50IiwiZnVuZGFtZW50YWxfY3VycmVuY3lfY29kZSIsInJldmVudWVfc2VnX2J5X2J1c2luZXNzX2giLCJyZXZlbnVlX3NlZ19ieV9yZWdpb25faCIsImZpc2NhbF9wZXJpb2RfZnkiLCJpbnRlcmVzdF9pbmNvbWVfZnkiLCJpbnRlcmVzdF9pbmNvbWVfZnEiLCJpbnRlcmVzdF9pbmNvbWVfZmgiLCJub25faW50ZXJlc3RfaW5jb21lX2Z5Iiwibm9uX2ludGVyZXN0X2luY29tZV9mcSIsIm5vbl9pbnRlcmVzdF9pbmNvbWVfZmgiLCJpbnRlcmVzdF9leHBlbnNlX2Z5IiwiaW50ZXJlc3RfZXhwZW5zZV9mcSIsImludGVyZXN0X2V4cGVuc2VfZmgiLCJsb2FuX2xvc3NfcHJvdmlzaW9uX2Z5IiwibG9hbl9sb3NzX3Byb3Zpc2lvbl9mcSIsImxvYW5fbG9zc19wcm92aXNpb25fZmgiLCJub25faW50ZXJlc3RfZXhwZW5zZV9meSIsIm5vbl9pbnRlcmVzdF9leHBlbnNlX2ZxIiwibm9uX2ludGVyZXN0X2V4cGVuc2VfZmgiLCJub25fb3Blcl9pbmNvbWVfZnkiLCJub25fb3Blcl9pbmNvbWVfZnEiLCJub25fb3Blcl9pbmNvbWVfZmgiLCJ1bnVzdWFsX2V4cGVuc2VfaW5jX2Z5IiwidW51c3VhbF9leHBlbnNlX2luY19mcSIsInVudXN1YWxfZXhwZW5zZV9pbmNfZmgiLCJwcmV0YXhfaW5jb21lX2Z5IiwicHJldGF4X2luY29tZV9mcSIsInByZXRheF9pbmNvbWVfZmgiLCJ0b3RhbF9yZXZlbnVlX2Z5IiwidG90YWxfcmV2ZW51ZV9mcSIsInRvdGFsX3JldmVudWVfZmgiLCJncm9zc19wcm9maXRfZnkiLCJncm9zc19wcm9maXRfZnEiLCJncm9zc19wcm9maXRfZmgiLCJuZXRfaW5jb21lX2Z5IiwibmV0X2luY29tZV9mcSIsIm5ldF9pbmNvbWVfZmgiLCJjb3N0X29mX2dvb2RzX2Z5IiwiY29zdF9vZl9nb29kc19mcSIsImNvc3Rfb2ZfZ29vZHNfZmgiLCJvcGVyYXRpbmdfZXhwZW5zZXNfZnkiLCJvcGVyYXRpbmdfZXhwZW5zZXNfZnEiLCJvcGVyYXRpbmdfZXhwZW5zZXNfZmgiLCJvcGVyX2luY29tZV9meSIsIm9wZXJfaW5jb21lX2ZxIiwib3Blcl9pbmNvbWVfZmgiLCJ0b3RhbF9ub25fb3Blcl9pbmNvbWVfZnkiLCJ0b3RhbF9ub25fb3Blcl9pbmNvbWVfZnEiLCJ0b3RhbF9ub25fb3Blcl9pbmNvbWVfZmgiLCJpbmNvbWVfdGF4X2Z5IiwiaW5jb21lX3RheF9mcSIsImluY29tZV90YXhfZmgiLCJhZnRlcl90YXhfb3RoZXJfaW5jb21lX2Z5IiwiYWZ0ZXJfdGF4X290aGVyX2luY29tZV9mcSIsImFmdGVyX3RheF9vdGhlcl9pbmNvbWVfZmgiLCJmaXNjYWxfcGVyaW9kX2Z5IiwiZmlzY2FsX3BlcmlvZF9mcSIsImZpc2NhbF9wZXJpb2RfZmgiLCJlcXVpdHlfaW5fZWFybmluZ3NfZnkiLCJlcXVpdHlfaW5fZWFybmluZ3NfZnEiLCJlcXVpdHlfaW5fZWFybmluZ3NfZmgiLCJtaW5vcml0eV9pbnRlcmVzdF9leHBfZnkiLCJtaW5vcml0eV9pbnRlcmVzdF9leHBfZnEiLCJtaW5vcml0eV9pbnRlcmVzdF9leHBfZmgiLCJkaXNjb250aW51ZWRfb3BlcmF0aW9uc19meSIsImRpc2NvbnRpbnVlZF9vcGVyYXRpb25zX2ZxIiwiZGlzY29udGludWVkX29wZXJhdGlvbnNfZmgiLCJmdW5kYW1lbnRhbF9jdXJyZW5jeV9jb2RlIiwiZnVuZF92aWV3X21vZGVzIl0pLGw9KDAsCnIubGF6eVZhbHVlKSgoKCk9Pm5ldyBuLlF1b3RlU2Vzc2lvblNuYXBzaG90ZXIoe25hbWU6ImZpbmFuY2lhbHMtd2Vidmlldy1xdW90ZXMiLGZpZWxkczpbLi4uYV0sYXBpOndpbmRvdy5DaGFydEFwaUluc3RhbmNlfSkpKTtsZXQgdTtjbGFzcyBjIGV4dGVuZHMgaS5XZWJ2aWV3Q29udHJvbGxlckJhc2V7b3BlbihlKXtjb25zdCB0PXRoaXMuX2NyZWF0ZU9wZW5SZXF1ZXN0KGkuV2Vidmlld1BhZ2VOYW1lLkZpbmFuY2lhbHMsZSk7bCgpLmdldFNuYXBzaG90KHQuc3ltYm9sKCksYSk7dC5leGVjdXRlKCkuQ2hhcnRRdW90ZVNuYXBzaG90UHJvdmlkZXI9e2dldFF1b3RlU25hcHNob3QoKXtjb25zdCBlPW8uUVVPVEVfRklFTERTX0NBQ0hFLmdldCh0LnN5bWJvbCgpKTtyZXR1cm4gZT8udmFsdWVzPz97fX19fXN0YXRpYyBnZXRJbnN0YW5jZSgpe3JldHVybiB1fHwodT1uZXcgYyksdX19ZnVuY3Rpb24gaChlKXtjLmdldEluc3RhbmNlKCkub3BlbihlKX19LDQwNzAwNihlLHQscyl7InVzZSBzdHJpY3QiO3Mucih0KSxzLmQodCx7Z2V0TmV3c01lZGlhdG9yU2VydmljZTooKT0+aH0pO3ZhciBpPXMoODM5NDI2KSxyPXMoMzg0MDE3KTtjbGFzcyBue2NvbnN0cnVjdG9yKGUsdCl7dGhpcy5fcHVibGljUHJlZml4PSJwdWJsaWMvIix0aGlzLl9iYXNlVXJsPWUuZW5kc1dpdGgoIi8iKT9lOmAke2V9L2AsdGhpcy5fZmV0Y2g9dH1hc3luYyBfc2VuZFJlcXVlc3QoZSx0LHMpe2NvbnN0IGk9YXdhaXQgdGhpcy5fZmV0Y2godC50b1N0cmluZygpLHsuLi5zLG1ldGhvZDplfSk7aWYoIWkub2spe2NvbnN0IHM9YXdhaXQgaS50ZXh0KCkscj1uZXcgRXJyb3IoYEVycm9yIHdoaWxlIGZldGNoaW5nICR7ZX0gJHt0LnRvU3RyaW5nKCl9LiBSZXNwb25zZSBzdGF0dXMgJHtpLnN0YXR1c30gJHtpLnN0YXR1c1RleHR9LiBSZXNwb25zZSB0ZXh0OiAnJHtzfSdgKTt0aHJvdyByLnN0YXR1cz1pLnN0YXR1cyxyfXJldHVybiBpfWFzeW5jIF9zZW5kSnNvbihlLHQscyxpLHI9ITApe2NvbnN0IG49ey4uLmksYm9keTpKU09OLnN0cmluZ2lmeShzKSxoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9fTtyZXR1cm4gciYmKG4uY3JlZGVudGlhbHM9ImluY2x1ZGUiKSx0aGlzLl9zZW5kUmVxdWVzdChlLHRoaXMuX2dldFVSTCh0KSxuKX1fcGFyc2VCb2R5KGUpe3JldHVybiBlLmpzb24oKX1fZ2V0VVJMKGUsdCl7Y29uc3Qgcz1uZXcgVVJMKGUsdGhpcy5fYmFzZVVybCk7aWYodCl7Y29uc3QgZT1uZXcgVVJMU2VhcmNoUGFyYW1zKHQpO3Muc2VhcmNoPWUudG9TdHJpbmcoKX1yZXR1cm4gc319ZnVuY3Rpb24gbyhlKXtyZXR1cm5bKHM9ZS5maWx0ZXJzLHMuc2xpY2UoKS5zb3J0KCgoZSx0KT0+ZS5pZDx0LmlkPy0xOjEpKS5yZWR1Y2UoKChlLHQpPT57aWYoMD09PXQudmFsdWVzLmxlbmd0aClyZXR1cm4gZTtjb25zdCBzPXQudmFsdWVzLnNvcnQoKS5qb2luKCIsIiksaT1lbmNvZGVVUklDb21wb25lbnQodC5pZCsiOiIrcyk7cmV0dXJuIGUucHVzaChgZmlsdGVyPSR7aX1gKSxlfSksW10pLmpvaW4oIiYiKSksKHQ9ZSxsKHtjbGllbnQ6dC5jbGllbnQsc3RyZWFtaW5nOnQuc3RyZWFtaW5nLHB1Yl91c2FnZTp0LnB1YlVzYWdlP3QucHViVXNhZ2Uuam9pbigiLCIpOnZvaWQgMH0pKV0uZmlsdGVyKChlPT5lLmxlbmd0aD4wKSkuam9pbigiJiIpO3ZhciB0LHN9ZnVuY3Rpb24gYShlKXtyZXR1cm5bbCh7c3RyZWFtaW5nOmUuc3RyZWFtaW5nfSldLmZpbHRlcigoZT0+ZS5sZW5ndGg+MCkpLmpvaW4oIiYiKX1mdW5jdGlvbiBsKGUpe2NvbnN0IHQ9W107Zm9yKGNvbnN0IHMgaW4gZSllLmhhc093blByb3BlcnR5KHMpJiZudWxsIT1lW3NdJiZ0LnB1c2goe2tleTpzLHBhaXI6ZW5jb2RlVVJJQ29tcG9uZW50KHMpKyI9IitlbmNvZGVVUklDb21wb25lbnQoZVtzXSl9KTtyZXR1cm4gdC5zb3J0KCgoZSx0KT0+ZS5rZXk+dC5rZXk/MTplLmtleTx0LmtleT8tMTowKSkubWFwKChlPT5lLnBhaXIpKS5qb2luKCImIil9Y2xhc3MgdSBleHRlbmRzIG57Y29uc3RydWN0b3IoZSx0LHMpe3N1cGVyKGUsdCksdGhpcy5fYXBpUGF0aD0ibmV3cy1mbG93L3YxIix0aGlzLmdldE1ldGE9YXN5bmMoZSx0KT0+e2NvbnN0IHM9dGhpcy5fZ2V0VVJMKGAke3RoaXMuX3B1YmxpY1ByZWZpeH0ke3RoaXMuX2FwaVBhdGh9L21ldGFgLHtsYW5nOmV9KTtyZXR1cm4gdGhpcy5fc2VuZFJlcXVlc3QoIkdFVCIscyx0KS50aGVuKHRoaXMuX3BhcnNlQm9keSl9LHRoaXMuZ2V0U2NyZWVucz1hc3luYyhlLHQpPT57Y29uc3Qgcz1hKGUpLGk9YHZlcnNpb249JHt0aGlzLl9zY3JlZW5zRGF0YVZlcnNpb259YCxyPXM/YCR7c30mJHtpfWA6aSxuPXRoaXMuX2dldFVSTChgJHt0aGlzLl9hcGlQYXRofS9zY3JlZW5zYCxyKTtyZXR1cm4gdGhpcy5fc2VuZFJlcXVlc3QoIkdFVCIsbix7Li4udCxjcmVkZW50aWFsczoiaW5jbHVkZSJ9KS50aGVuKHRoaXMuX3BhcnNlQm9keSl9LHRoaXMuZ2V0U2luZ2xlU2NyZWVuPWFzeW5jKGUsdCk9Pntjb25zdCBzPXRoaXMuX2dldFVSTChgJHt0aGlzLl9hcGlQYXRofS9zY3JlZW5zLyR7ZX1gKTtyZXR1cm4gdGhpcy5fc2VuZFJlcXVlc3QoIkdFVCIscyx7Li4udCxjcmVkZW50aWFsczoiaW5jbHVkZSJ9KS50aGVuKHRoaXMuX3BhcnNlQm9keSl9LHRoaXMuZ2V0UmVjZW50U2NyZWVuPWFzeW5jIGU9Pntjb25zdCB0PXRoaXMuX2dldFVSTChgJHt0aGlzLl9hcGlQYXRofS9zY3JlZW5zL3JlY2VudGApO3JldHVybiB0aGlzLl9zZW5kUmVxdWVzdCgiR0VUIix0LHsuLi5lLGNyZWRlbnRpYWxzOiJpbmNsdWRlIn0pLnRoZW4odGhpcy5fcGFyc2VCb2R5KX0sdGhpcy5kZWxldGVTY3JlZW49YXN5bmMoZSx0KT0+e2NvbnN0IHM9dGhpcy5fZ2V0VVJMKGAke3RoaXMuX2FwaVBhdGh9L3NjcmVlbnMvJHtlfWApO3JldHVybiB0aGlzLl9zZW5kUmVxdWVzdCgiREVMRVRFIixzLHsuLi50LGNyZWRlbnRpYWxzOiJpbmNsdWRlIn0pLnRoZW4odGhpcy5fcGFyc2VCb2R5KX0sdGhpcy5jcmVhdGVTY3JlZW49YXN5bmMoZSx0KT0+e2NvbnN0IHM9ey4uLmUsdmVyc2lvbjp0aGlzLl9zY3JlZW5zRGF0YVZlcnNpb259CjtyZXR1cm4gdGhpcy5fc2VuZEpzb24oIlBPU1QiLGAke3RoaXMuX2FwaVBhdGh9L3NjcmVlbnNgLHMsdCwhMCkudGhlbih0aGlzLl9wYXJzZUJvZHkpfSx0aGlzLnVwZGF0ZVNjcmVlbj1hc3luYyhlLHQpPT57Y29uc3Qgcz17Li4uZSx2ZXJzaW9uOnRoaXMuX3NjcmVlbnNEYXRhVmVyc2lvbn07cmV0dXJuIHRoaXMuX3NlbmRKc29uKCJQVVQiLGAke3RoaXMuX2FwaVBhdGh9L3NjcmVlbnMvJHtlLmlkfWAscyx0LCEwKS50aGVuKHRoaXMuX3BhcnNlQm9keSl9LHRoaXMudXBkYXRlU2NyZWVuQWxlcnRzPWFzeW5jKGUsdCxzKT0+e2NvbnN0IGk9ey4uLnQsdmVyc2lvbjp0aGlzLl9zY3JlZW5zRGF0YVZlcnNpb259O3JldHVybiB0aGlzLl9zZW5kSnNvbigiUFVUIixgJHt0aGlzLl9hcGlQYXRofS9zY3JlZW5zLyR7ZX0vYWxlcnRzYCxpLHMsITApLnRoZW4odGhpcy5fcGFyc2VCb2R5KX0sdGhpcy50b3VjaFNjcmVlbj1hc3luYyhlLHQpPT57Y29uc3Qgcz17dmVyc2lvbjp0aGlzLl9zY3JlZW5zRGF0YVZlcnNpb259O3JldHVybiB0aGlzLl9zZW5kSnNvbigiUFVUIixgJHt0aGlzLl9hcGlQYXRofS9zY3JlZW5zL3RvdWNoLyR7ZX1gLHMsdCwhMCkudGhlbih0aGlzLl9wYXJzZUJvZHkpfSx0aGlzLmdldFN0b3J5PWFzeW5jKGUsdCk9Pntjb25zdCBzPXRoaXMuX2dldFVSTCgicHVibGljL25ld3MvdjEvc3RvcnkiLHsuLi5lfSksaT1hd2FpdCB0aGlzLl9zZW5kUmVxdWVzdCgiR0VUIixzLHR8fHt9KTtyZXR1cm4gaS5vaz90aGlzLl9wYXJzZUJvZHkoaSk6UHJvbWlzZS5yZWplY3QoaSl9LHRoaXMuX3NjcmVlbnNEYXRhVmVyc2lvbj1zfX1jbGFzcyBjIGV4dGVuZHMgbntjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5fYXBpUGF0aD0ibmV3cy1mbG93L3YyIn1hc3luYyBnZXROZXdzKGUsdCl7Y29uc3Qgcz10aGlzLl9nZXRVUkwoYCR7dGhpcy5fcHVibGljUHJlZml4fSR7dGhpcy5fYXBpUGF0aH0vbmV3c2AsbyhlKSk7cmV0dXJuIHRoaXMuX3NlbmRSZXF1ZXN0KCJHRVQiLHMsdCkudGhlbih0aGlzLl9wYXJzZUJvZHkpfWFzeW5jIGdldFByaXZhdGVOZXdzKGUsdCl7Y29uc3Qgcz10aGlzLl9nZXRVUkwoYCR7dGhpcy5fYXBpUGF0aH0vbmV3c2AsbyhlKSk7cmV0dXJuIHRoaXMuX3NlbmRSZXF1ZXN0KCJHRVQiLHMsey4uLnQsY3JlZGVudGlhbHM6ImluY2x1ZGUifSkudGhlbih0aGlzLl9wYXJzZUJvZHkpfWFzeW5jIGdldFNjcmVlbnMoZSx0KXtjb25zdCBzPWEoZSksaT10aGlzLl9nZXRVUkwoYCR7dGhpcy5fYXBpUGF0aH0vc2NyZWVuc2Ascyk7cmV0dXJuIHRoaXMuX3NlbmRSZXF1ZXN0KCJHRVQiLGksey4uLnQsY3JlZGVudGlhbHM6ImluY2x1ZGUifSkudGhlbih0aGlzLl9wYXJzZUJvZHkpfX1zKDMwMDI4Nik7Y29uc3QgaD0oMCxpLmRlZmF1bHQpKCgoKT0+e2NvbnN0IGU9KGUsdCk9PigwLHIuZmV0Y2gpKGUsdCksdD1mdW5jdGlvbigpe2xldCBlPWAke3dpbmRvdy5ORVdTX01FRElBVE9SX1VSTH1gO2UuZW5kc1dpdGgoIi8iKXx8KGUrPSIvIik7cmV0dXJuIGV9KCkscz13aW5kb3cuaW5pdERhdGEuTkVXU19TQ1JFRU5fREFUQV9WRVJTSU9OfHwxO3JldHVybnt2MTpuZXcgdSh0LGUscyksdjI6bmV3IGModCxlKX19KSl9LDg5MDgzNShlLHQscyl7InVzZSBzdHJpY3QiO3MuZCh0LHtjdXJyZW50TGF5b3V0OigpPT5pfSk7Y29uc3QgaT1uZXcocygyMzIzNjQpLldhdGNoZWRWYWx1ZSkobnVsbCl9LDUzNzQ4NyhlLHQscyl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGkoZSx0KXtjb25zdCBzPU1hdGguZmxvb3IodC8xZTQpJTFlNCxpPU1hdGguZmxvb3IodC8xMDApJTEwMC0xLHI9dCUxMDA7cmV0dXJuIGUuZm9ybWF0KG5ldyBEYXRlKERhdGUuVVRDKHMsaSxyKSkpfXMuZCh0LHtmb3JtYXRZWVlZTU1ERDooKT0+aX0pfSw1MjMwNzEoZSx0LHMpeyJ1c2Ugc3RyaWN0IjtzLmQodCx7TUFUSF9NSU5VU19TSUdOOigpPT5yLHJvdW5kVG9UaGlyZERpZ2l0OigpPT5ufSk7dmFyIGk9cygxMDcwNDUpO2NvbnN0IHI9IuKIkiI7ZnVuY3Rpb24gbihlLHQpe2NvbnN0IHM9TWF0aC5hYnMoTWF0aC5yb3VuZCgxZTMqZSkvMWUzKSxbLG5dPXMudG9GaXhlZCgzKS5zcGxpdCgiLiIpLG89IXQmJm4uZW5kc1dpdGgoIjAiKT9uZXcgaS5OdW1lcmljRm9ybWF0dGVyKHtwcmVjaXNpb246Mn0pOm5ldyBpLk51bWVyaWNGb3JtYXR0ZXIoe3ByZWNpc2lvbjozfSk7cmV0dXJuYCR7ZTwwP3I6IiJ9JHtvLmZvcm1hdChzKX1gfX0sMTI4ODE0KGUsdCxzKXsidXNlIHN0cmljdCI7cy5kKHQse1F1b3RlU2Vzc2lvblNuYXBzaG90ZXI6KCk9Pmh9KTt2YXIgaT1zKDk0ODM4MCkscj1zKDE1MDE1MCksbj1zKDIxNDk4Nyksbz1zKDEzODYzOCksYT1zKDM2Nzk0NiksbD1zKDk3MDc3NCksdT1zKDMwOTA1Mik7Y29uc3QgYz1uZXcgTWFwKFtbImNoYW5nZSIsImNoIl0sWyJsYXN0X3ByaWNlIiwibHAiXSxbImNoYW5nZV9wZXJjZW50IiwiY2hwIl0sWyJ1cGRhdGVfbW9kZV9zZWNvbmRzIixudWxsXV0pO25ldyBNYXAoW1siY2giLCJjaGFuZ2UiXSxbImxwIiwibGFzdF9wcmljZSJdLFsiY2hwIiwiY2hhbmdlX3BlcmNlbnQiXV0pO2NsYXNzIGh7Y29uc3RydWN0b3IoZSl7aWYodGhpcy5fb25TeW1ib2xEYXRhPW5ldyBpLkRlbGVnYXRlLHRoaXMuX2luY29tcGxldGU9bmV3IFNldCx0aGlzLl91cGRhdGVkRmllbGRzPW5ldyBNYXAsdGhpcy5fY29ubmVjdGVkPSExLHRoaXMuX2JhdGNoZXI9bnVsbCx0aGlzLl9oYW5kbGVyPWU9Pntzd2l0Y2goZS5tZXRob2Qpe2Nhc2UiY29ubmVjdGVkIjp0aGlzLl9jb25uZWN0ZWR8fCh0aGlzLl9jb25uZWN0ZWQ9ITAsdGhpcy5faGFuZGxlQ29ubmVjdGVkKCkpO2JyZWFrO2Nhc2UicXVvdGVfc3ltYm9sX2RhdGEiOnRoaXMuX2Nvbm5lY3RlZCYmdGhpcy5faGFuZGxlU3ltYm9sRGF0YShlLnBhcmFtc1swXSk7YnJlYWs7Y2FzZSJxdW90ZV9jb21wbGV0ZWQiOnRoaXMuX2Nvbm5lY3RlZCYmdGhpcy5faGFuZGxlQ29tcGxldGVEYXRhKGUucGFyYW1zWzBdKTticmVhaztjYXNlImRpc2Nvbm5lY3RlZCI6dGhpcy5fY29ubmVjdGVkJiYodGhpcy5fY29ubmVjdGVkPSExLHRoaXMuX2JhdGNoZXI9bnVsbCl9Cn0sMD09PWUuZmllbGRzLmxlbmd0aCl0aHJvdyBuZXcgRXJyb3IoJ1N1cHBvcnQgZm9yIGVtcHR5ICJmaWVsZHMiIGFycmF5IGlzIG5vdCBpbXBsZW1lbnRlZCcpO2NvbnN0e3Byb3ZpZGVyOnQ9bC5RdW90ZVNlc3Npb259PWU7dGhpcy5fZmllbGRzPW5ldyBTZXQoZS5maWVsZHMpLHRoaXMuX3Nlc3Npb249bmV3IHQoZS5hcGksWyJzbmFwc2hvdGVyIixlLm5hbWUsKDAsci5yYW5kb21IYXNoKSgpXS5maWx0ZXIoQm9vbGVhbikuam9pbigiXyIpKSx0aGlzLl9zZXNzaW9uLmNvbm5lY3QodGhpcy5faGFuZGxlcil9Z2V0U25hcHNob3RTeW5jKGUsdCl7Y29uc3Qgcz1oLmNhY2hlLmdldChlKTtyZXR1cm4gcyYmdGhpcy5faXNTbmFwc2hvdFJlYWR5KHMse2ZpZWxkczp0LHRpbWVzdGFtcDpudWxsfSk/czpudWxsfWdldFNuYXBzaG90c0ZvckFsbFN5bmMoZSx0KXtyZXR1cm4gZS5tYXAoKGU9PnRoaXMuZ2V0U25hcHNob3RTeW5jKGUsdCkpKX1nZXRTbmFwc2hvdChlLHQscyl7Y29uc3QgaT1zPy5zaWduYWw/P251bGwscj1zPy5mcmVzaG5lc3MsYT12b2lkIDAhPT1yP0RhdGUubm93KCktcjpudWxsO3JldHVybiBuZXcgUHJvbWlzZSgoKHMscik9PntpZihpJiZpLmFib3J0ZWQpdGhyb3coMCxuLmNyZWF0ZUFib3J0RXJyb3IpKCk7Y29uc3QgbD0oKT0+e3RoaXMuX29uU3ltYm9sRGF0YS51bnN1YnNjcmliZSh0aGlzLHUpLHIoKDAsbi5jcmVhdGVBYm9ydEVycm9yKSgpKX0sdT0ocj1lKT0+e2lmKHIhPT1lKXJldHVybjtjb25zdCBuPWguY2FjaGUuZ2V0KGUpO24mJnRoaXMuX2lzU25hcHNob3RSZWFkeShuLHt0aW1lc3RhbXA6YSxzeW1ib2w6ZSxmaWVsZHM6dH0pJiYodGhpcy5fb25TeW1ib2xEYXRhLnVuc3Vic2NyaWJlKHRoaXMsdSksaT8ucmVtb3ZlRXZlbnRMaXN0ZW5lcigiYWJvcnQiLGwpLHMobikpfTtpZighKCgpPT57Y29uc3QgaT1oLmNhY2hlLmdldChlKTtpZighaSlyZXR1cm4hMTtjb25zdCByPSgwLG8uZW5zdXJlTm90TnVsbCkoaC5jYWNoZS5nZXRUaW1lcyhlKSk7cmV0dXJuISF0aGlzLl9pc1NuYXBzaG90UmVhZHkoaSx7ZmllbGRzOnQsc3ltYm9sOmUsdGltZXN0YW1wOmEsdGltZXM6cn0pJiYocyhpKSwhMCl9KSgpJiYoaT8uYWRkRXZlbnRMaXN0ZW5lcigiYWJvcnQiLGwse29uY2U6ITB9KSx0aGlzLl9vblN5bWJvbERhdGEuc3Vic2NyaWJlKHRoaXMsdSksIXRoaXMuX2luY29tcGxldGUuaGFzKGUpKSl7aWYodGhpcy5fdXBkYXRlZEZpZWxkcy5zZXQoZSxuZXcgU2V0KSx0aGlzLl9pbmNvbXBsZXRlLmFkZChlKSwhdGhpcy5fY29ubmVjdGVkKXJldHVybjtpZihudWxsPT09dGhpcy5fYmF0Y2hlcil7Y29uc3QgdD10aGlzLl9iYXRjaGVyPXtzeW1ib2xzOm5ldyBTZXQoW2VdKSxwcm9taXNlOlByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCgpPT57dGhpcy5fYmF0Y2hlcj09PXQmJih0aGlzLl9zZXNzaW9uLnF1b3RlQWRkU3ltYm9scyhbLi4udC5zeW1ib2xzXSksdGhpcy5fYmF0Y2hlcj1udWxsKX0pKX19ZWxzZSB0aGlzLl9iYXRjaGVyLnN5bWJvbHMuYWRkKGUpfX0pKX1nZXRTbmFwc2hvdHNGb3JBbGwoZSx0LHMpe3JldHVybiBQcm9taXNlLmFsbChlLm1hcCgoZT0+dGhpcy5nZXRTbmFwc2hvdChlLHQscykpKSl9c3RhdGljIHJlbGF4KGUpe3JldHVybiBlfXN0YXRpYyBpc1N1Y2Nlc3MoZSl7cmV0dXJuImVycm9yIiE9PWUuc3RhdHVzfXN0YXRpYyBoYXNBbGxGaWVsZHMoZSx0KXtmb3IoY29uc3QgcyBvZiBBcnJheS5mcm9tKHQpKWlmKCFlLmhhc093blByb3BlcnR5KHMpKXJldHVybiExO3JldHVybiEwfV9pc1NuYXBzaG90UmVhZHkoZSx0KXtjb25zdHtmaWVsZHM6cyx0aW1lc3RhbXA6aSx0aW1lczpyLHN5bWJvbDpufT10O3JldHVybiJlcnJvciI9PT1lLnN0YXR1c3x8KG51bGwhPT1pJiZyP3RoaXMuX2lzQWxsRmllbGRzVXBUb0RhdGUoZSxyLHMsaSk6bnVsbCE9PWkmJm4/dGhpcy5faXNBbGxGaWVsZHNVcGRhdGVkKGUsbixzKTp0aGlzLl9oYXNBbGxGaWVsZHMoZSxzKSl9X2lzQWxsRmllbGRzVXBkYXRlZChlLHQscyl7aWYoImVycm9yIj09PWUuc3RhdHVzKXJldHVybiEwO2NvbnN0IGk9dGhpcy5fdXBkYXRlZEZpZWxkcy5nZXQodCk7aWYoIWl8fCFpLnNpemUpcmV0dXJuITE7Zm9yKGNvbnN0IGUgb2YgQXJyYXkuZnJvbShzKSlpZighaS5oYXMoZSkpcmV0dXJuITE7cmV0dXJuITB9X2hhc0FsbEZpZWxkcyhlLHQpe3JldHVybiBoLmhhc0FsbEZpZWxkcyhlLnZhbHVlcyxBcnJheS5mcm9tKHQpKX1faXNBbGxGaWVsZHNVcFRvRGF0ZShlLHQscyxpKXtpZigiZXJyb3IiPT09ZS5zdGF0dXMpcmV0dXJuITA7aWYoIXQpcmV0dXJuITE7Zm9yKGNvbnN0IGUgb2YgQXJyYXkuZnJvbShzKSl7Y29uc3Qgcz10LmdldChlKTtpZighdC5oYXMoZSl8fHZvaWQgMD09PXMpcmV0dXJuITE7aWYoczxpKXJldHVybiExfXJldHVybiEwfV9oYW5kbGVDb25uZWN0ZWQoKXtpZih0aGlzLl9maWVsZHMuc2l6ZT4wKXtjb25zdCBlPVsuLi50aGlzLl9maWVsZHNdLmZsYXRNYXAoKGU9Pntjb25zdCB0PWMuZ2V0KGUpO3JldHVybiBudWxsIT09dD90Pz9lOltdfSkpO3RoaXMuX3Nlc3Npb24ucXVvdGVTZXRGaWVsZHMoZSl9dGhpcy5faW5jb21wbGV0ZS5zaXplPjAmJnRoaXMuX3Nlc3Npb24ucXVvdGVBZGRTeW1ib2xzKFsuLi50aGlzLl9pbmNvbXBsZXRlXSl9X2hhbmRsZUNvbXBsZXRlRGF0YShlKXtjb25zdCB0PWguY2FjaGUuZ2V0KGUpPz97c3ltYm9sbmFtZTplLHN0YXR1czoib2siLHZhbHVlczp7fX07aC5jYWNoZS51cGRhdGUodCx0aGlzLl9maWVsZHMsITApLHRoaXMuX3VwZGF0ZWRGaWVsZHMuc2V0KGUsdGhpcy5fZmllbGRzKSx0aGlzLl9zZXNzaW9uLnF1b3RlUmVtb3ZlU3ltYm9scyhbZV0pLHRoaXMuX2luY29tcGxldGUuZGVsZXRlKGUpLHRoaXMuX29uU3ltYm9sRGF0YS5maXJlKGUpfV9oYW5kbGVTeW1ib2xEYXRhKGUpeygwLGEubm9ybWFsaXplVXBkYXRlTW9kZSkoZS52YWx1ZXMpLGguY2FjaGUudXBkYXRlKGUsdGhpcy5fZmllbGRzLCExKTtjb25zdCB0PWUuc3ltYm9sbmFtZSxzPSgwLG8uZW5zdXJlRGVmaW5lZCkodGhpcy5fdXBkYXRlZEZpZWxkcy5nZXQodCkpLGk9bmV3IFNldChzKQo7Zm9yKGNvbnN0IHQgb2YgdGhpcy5fZmllbGRzKWUudmFsdWVzLmhhc093blByb3BlcnR5KHQpJiZpLmFkZCh0KTt0aGlzLl91cGRhdGVkRmllbGRzLnNldCh0LGkpLCJlcnJvciI9PT1lLnN0YXR1cz90aGlzLl9oYW5kbGVDb21wbGV0ZURhdGEodCk6dGhpcy5fb25TeW1ib2xEYXRhLmZpcmUodCl9fWguY2FjaGU9dS5RVU9URV9GSUVMRFNfQ0FDSEV9LDEwMDIzOShlLHQscyl7InVzZSBzdHJpY3QiO3MuZCh0LHtnZXRWb2x1bWVVbml0OigpPT5yfSk7dmFyIGk9cygxODUyNzEpO2Z1bmN0aW9uIHIoZSl7c3dpdGNoKGUudm9sdW1lX3R5cGUpe2Nhc2UiYmFzZSI6cmV0dXJuIGUuYmFzZV9jdXJyZW5jeXx8dm9pZCAwO2Nhc2UicXVvdGUiOnJldHVybiBlLmN1cnJlbmN5fHx2b2lkIDA7Y2FzZSJ0aWNrIjpyZXR1cm4gaS50KG51bGwsdm9pZCAwLHMoMzcwMjQzKSl9fX0sNjIzNTExKGUsdCxzKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gaShlKXtsZXQgdD1udWxsO3JldHVybigpPT4obnVsbD09PXQmJih0PWUoKSksdCl9cy5kKHQse2xhenlWYWx1ZTooKT0+aX0pfSwxMjI3NDkoZSx0KXsidXNlIHN0cmljdCI7dmFyIHM9U3ltYm9sLmZvcigicmVhY3QuZWxlbWVudCIpLGk9U3ltYm9sLmZvcigicmVhY3QucG9ydGFsIikscj1TeW1ib2wuZm9yKCJyZWFjdC5mcmFnbWVudCIpLG49U3ltYm9sLmZvcigicmVhY3Quc3RyaWN0X21vZGUiKSxvPVN5bWJvbC5mb3IoInJlYWN0LnByb2ZpbGVyIiksYT1TeW1ib2wuZm9yKCJyZWFjdC5wcm92aWRlciIpLGw9U3ltYm9sLmZvcigicmVhY3QuY29udGV4dCIpLHU9U3ltYm9sLmZvcigicmVhY3QuZm9yd2FyZF9yZWYiKSxjPVN5bWJvbC5mb3IoInJlYWN0LnN1c3BlbnNlIiksaD1TeW1ib2wuZm9yKCJyZWFjdC5tZW1vIiksZD1TeW1ib2wuZm9yKCJyZWFjdC5sYXp5IiksXz1TeW1ib2wuaXRlcmF0b3I7dmFyIHA9e2lzTW91bnRlZDpmdW5jdGlvbigpe3JldHVybiExfSxlbnF1ZXVlRm9yY2VVcGRhdGU6ZnVuY3Rpb24oKXt9LGVucXVldWVSZXBsYWNlU3RhdGU6ZnVuY3Rpb24oKXt9LGVucXVldWVTZXRTdGF0ZTpmdW5jdGlvbigpe319LHk9T2JqZWN0LmFzc2lnbixtPXt9O2Z1bmN0aW9uIHYoZSx0LHMpe3RoaXMucHJvcHM9ZSx0aGlzLmNvbnRleHQ9dCx0aGlzLnJlZnM9bSx0aGlzLnVwZGF0ZXI9c3x8cH1mdW5jdGlvbiBmKCl7fWZ1bmN0aW9uIFMoZSx0LHMpe3RoaXMucHJvcHM9ZSx0aGlzLmNvbnRleHQ9dCx0aGlzLnJlZnM9bSx0aGlzLnVwZGF0ZXI9c3x8cH12LnByb3RvdHlwZS5pc1JlYWN0Q29tcG9uZW50PXt9LHYucHJvdG90eXBlLnNldFN0YXRlPWZ1bmN0aW9uKGUsdCl7aWYoIm9iamVjdCIhPXR5cGVvZiBlJiYiZnVuY3Rpb24iIT10eXBlb2YgZSYmbnVsbCE9ZSl0aHJvdyBFcnJvcigic2V0U3RhdGUoLi4uKTogdGFrZXMgYW4gb2JqZWN0IG9mIHN0YXRlIHZhcmlhYmxlcyB0byB1cGRhdGUgb3IgYSBmdW5jdGlvbiB3aGljaCByZXR1cm5zIGFuIG9iamVjdCBvZiBzdGF0ZSB2YXJpYWJsZXMuIik7dGhpcy51cGRhdGVyLmVucXVldWVTZXRTdGF0ZSh0aGlzLGUsdCwic2V0U3RhdGUiKX0sdi5wcm90b3R5cGUuZm9yY2VVcGRhdGU9ZnVuY3Rpb24oZSl7dGhpcy51cGRhdGVyLmVucXVldWVGb3JjZVVwZGF0ZSh0aGlzLGUsImZvcmNlVXBkYXRlIil9LGYucHJvdG90eXBlPXYucHJvdG90eXBlO3ZhciBnPVMucHJvdG90eXBlPW5ldyBmO2cuY29uc3RydWN0b3I9Uyx5KGcsdi5wcm90b3R5cGUpLGcuaXNQdXJlUmVhY3RDb21wb25lbnQ9ITA7dmFyIGI9QXJyYXkuaXNBcnJheSx3PU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHksQz17Y3VycmVudDpudWxsfSxQPXtrZXk6ITAscmVmOiEwLF9fc2VsZjohMCxfX3NvdXJjZTohMH07ZnVuY3Rpb24geChlLHQsaSl7dmFyIHIsbj17fSxvPW51bGwsYT1udWxsO2lmKG51bGwhPXQpZm9yKHIgaW4gdm9pZCAwIT09dC5yZWYmJihhPXQucmVmKSx2b2lkIDAhPT10LmtleSYmKG89IiIrdC5rZXkpLHQpdy5jYWxsKHQscikmJiFQLmhhc093blByb3BlcnR5KHIpJiYobltyXT10W3JdKTt2YXIgbD1hcmd1bWVudHMubGVuZ3RoLTI7aWYoMT09PWwpbi5jaGlsZHJlbj1pO2Vsc2UgaWYoMTxsKXtmb3IodmFyIHU9QXJyYXkobCksYz0wO2M8bDtjKyspdVtjXT1hcmd1bWVudHNbYysyXTtuLmNoaWxkcmVuPXV9aWYoZSYmZS5kZWZhdWx0UHJvcHMpZm9yKHIgaW4gbD1lLmRlZmF1bHRQcm9wcyl2b2lkIDA9PT1uW3JdJiYobltyXT1sW3JdKTtyZXR1cm57JCR0eXBlb2Y6cyx0eXBlOmUsa2V5Om8scmVmOmEscHJvcHM6bixfb3duZXI6Qy5jdXJyZW50fX1mdW5jdGlvbiBEKGUpe3JldHVybiJvYmplY3QiPT10eXBlb2YgZSYmbnVsbCE9PWUmJmUuJCR0eXBlb2Y9PT1zfXZhciBJPS9cLysvZztmdW5jdGlvbiBUKGUsdCl7cmV0dXJuIm9iamVjdCI9PXR5cGVvZiBlJiZudWxsIT09ZSYmbnVsbCE9ZS5rZXk/ZnVuY3Rpb24oZSl7dmFyIHQ9eyI9IjoiPTAiLCI6IjoiPTIifTtyZXR1cm4iJCIrZS5yZXBsYWNlKC9bPTpdL2csKGZ1bmN0aW9uKGUpe3JldHVybiB0W2VdfSkpfSgiIitlLmtleSk6dC50b1N0cmluZygzNil9ZnVuY3Rpb24gVihlLHQscixuLG8pe3ZhciBhPXR5cGVvZiBlOyJ1bmRlZmluZWQiIT09YSYmImJvb2xlYW4iIT09YXx8KGU9bnVsbCk7dmFyIGw9ITE7aWYobnVsbD09PWUpbD0hMDtlbHNlIHN3aXRjaChhKXtjYXNlInN0cmluZyI6Y2FzZSJudW1iZXIiOmw9ITA7YnJlYWs7Y2FzZSJvYmplY3QiOnN3aXRjaChlLiQkdHlwZW9mKXtjYXNlIHM6Y2FzZSBpOmw9ITB9fWlmKGwpcmV0dXJuIG89byhsPWUpLGU9IiI9PT1uPyIuIitUKGwsMCk6bixiKG8pPyhyPSIiLG51bGwhPWUmJihyPWUucmVwbGFjZShJLCIkJi8iKSsiLyIpLFYobyx0LHIsIiIsKGZ1bmN0aW9uKGUpe3JldHVybiBlfSkpKTpudWxsIT1vJiYoRChvKSYmKG89ZnVuY3Rpb24oZSx0KXtyZXR1cm57JCR0eXBlb2Y6cyx0eXBlOmUudHlwZSxrZXk6dCxyZWY6ZS5yZWYscHJvcHM6ZS5wcm9wcyxfb3duZXI6ZS5fb3duZXJ9fShvLHIrKCFvLmtleXx8bCYmbC5rZXk9PT1vLmtleT8iIjooIiIrby5rZXkpLnJlcGxhY2UoSSwiJCYvIikrIi8iKStlKSksCnQucHVzaChvKSksMTtpZihsPTAsbj0iIj09PW4/Ii4iOm4rIjoiLGIoZSkpZm9yKHZhciB1PTA7dTxlLmxlbmd0aDt1Kyspe3ZhciBjPW4rVChhPWVbdV0sdSk7bCs9VihhLHQscixjLG8pfWVsc2UgaWYoYz1mdW5jdGlvbihlKXtyZXR1cm4gbnVsbD09PWV8fCJvYmplY3QiIT10eXBlb2YgZT9udWxsOiJmdW5jdGlvbiI9PXR5cGVvZihlPV8mJmVbX118fGVbIkBAaXRlcmF0b3IiXSk/ZTpudWxsfShlKSwiZnVuY3Rpb24iPT10eXBlb2YgYylmb3IoZT1jLmNhbGwoZSksdT0wOyEoYT1lLm5leHQoKSkuZG9uZTspbCs9VihhPWEudmFsdWUsdCxyLGM9bitUKGEsdSsrKSxvKTtlbHNlIGlmKCJvYmplY3QiPT09YSl0aHJvdyB0PVN0cmluZyhlKSxFcnJvcigiT2JqZWN0cyBhcmUgbm90IHZhbGlkIGFzIGEgUmVhY3QgY2hpbGQgKGZvdW5kOiAiKygiW29iamVjdCBPYmplY3RdIj09PXQ/Im9iamVjdCB3aXRoIGtleXMgeyIrT2JqZWN0LmtleXMoZSkuam9pbigiLCAiKSsifSI6dCkrIikuIElmIHlvdSBtZWFudCB0byByZW5kZXIgYSBjb2xsZWN0aW9uIG9mIGNoaWxkcmVuLCB1c2UgYW4gYXJyYXkgaW5zdGVhZC4iKTtyZXR1cm4gbH1mdW5jdGlvbiBSKGUsdCxzKXtpZihudWxsPT1lKXJldHVybiBlO3ZhciBpPVtdLHI9MDtyZXR1cm4gVihlLGksIiIsIiIsKGZ1bmN0aW9uKGUpe3JldHVybiB0LmNhbGwocyxlLHIrKyl9KSksaX1mdW5jdGlvbiBBKGUpe2lmKC0xPT09ZS5fc3RhdHVzKXt2YXIgdD1lLl9yZXN1bHQ7KHQ9dCgpKS50aGVuKChmdW5jdGlvbih0KXswIT09ZS5fc3RhdHVzJiYtMSE9PWUuX3N0YXR1c3x8KGUuX3N0YXR1cz0xLGUuX3Jlc3VsdD10KX0pLChmdW5jdGlvbih0KXswIT09ZS5fc3RhdHVzJiYtMSE9PWUuX3N0YXR1c3x8KGUuX3N0YXR1cz0yLGUuX3Jlc3VsdD10KX0pKSwtMT09PWUuX3N0YXR1cyYmKGUuX3N0YXR1cz0wLGUuX3Jlc3VsdD10KX1pZigxPT09ZS5fc3RhdHVzKXJldHVybiBlLl9yZXN1bHQuZGVmYXVsdDt0aHJvdyBlLl9yZXN1bHR9dmFyIEw9e2N1cnJlbnQ6bnVsbH0sRT17dHJhbnNpdGlvbjpudWxsfSxNPXtSZWFjdEN1cnJlbnREaXNwYXRjaGVyOkwsUmVhY3RDdXJyZW50QmF0Y2hDb25maWc6RSxSZWFjdEN1cnJlbnRPd25lcjpDfTt0LkNoaWxkcmVuPXttYXA6Uixmb3JFYWNoOmZ1bmN0aW9uKGUsdCxzKXtSKGUsKGZ1bmN0aW9uKCl7dC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9KSxzKX0sY291bnQ6ZnVuY3Rpb24oZSl7dmFyIHQ9MDtyZXR1cm4gUihlLChmdW5jdGlvbigpe3QrK30pKSx0fSx0b0FycmF5OmZ1bmN0aW9uKGUpe3JldHVybiBSKGUsKGZ1bmN0aW9uKGUpe3JldHVybiBlfSkpfHxbXX0sb25seTpmdW5jdGlvbihlKXtpZighRChlKSl0aHJvdyBFcnJvcigiUmVhY3QuQ2hpbGRyZW4ub25seSBleHBlY3RlZCB0byByZWNlaXZlIGEgc2luZ2xlIFJlYWN0IGVsZW1lbnQgY2hpbGQuIik7cmV0dXJuIGV9fSx0LkNvbXBvbmVudD12LHQuRnJhZ21lbnQ9cix0LlByb2ZpbGVyPW8sdC5QdXJlQ29tcG9uZW50PVMsdC5TdHJpY3RNb2RlPW4sdC5TdXNwZW5zZT1jLHQuX19TRUNSRVRfSU5URVJOQUxTX0RPX05PVF9VU0VfT1JfWU9VX1dJTExfQkVfRklSRUQ9TSx0LmNsb25lRWxlbWVudD1mdW5jdGlvbihlLHQsaSl7aWYobnVsbD09ZSl0aHJvdyBFcnJvcigiUmVhY3QuY2xvbmVFbGVtZW50KC4uLik6IFRoZSBhcmd1bWVudCBtdXN0IGJlIGEgUmVhY3QgZWxlbWVudCwgYnV0IHlvdSBwYXNzZWQgIitlKyIuIik7dmFyIHI9eSh7fSxlLnByb3BzKSxuPWUua2V5LG89ZS5yZWYsYT1lLl9vd25lcjtpZihudWxsIT10KXtpZih2b2lkIDAhPT10LnJlZiYmKG89dC5yZWYsYT1DLmN1cnJlbnQpLHZvaWQgMCE9PXQua2V5JiYobj0iIit0LmtleSksZS50eXBlJiZlLnR5cGUuZGVmYXVsdFByb3BzKXZhciBsPWUudHlwZS5kZWZhdWx0UHJvcHM7Zm9yKHUgaW4gdCl3LmNhbGwodCx1KSYmIVAuaGFzT3duUHJvcGVydHkodSkmJihyW3VdPXZvaWQgMD09PXRbdV0mJnZvaWQgMCE9PWw/bFt1XTp0W3VdKX12YXIgdT1hcmd1bWVudHMubGVuZ3RoLTI7aWYoMT09PXUpci5jaGlsZHJlbj1pO2Vsc2UgaWYoMTx1KXtsPUFycmF5KHUpO2Zvcih2YXIgYz0wO2M8dTtjKyspbFtjXT1hcmd1bWVudHNbYysyXTtyLmNoaWxkcmVuPWx9cmV0dXJueyQkdHlwZW9mOnMsdHlwZTplLnR5cGUsa2V5Om4scmVmOm8scHJvcHM6cixfb3duZXI6YX19LHQuY3JlYXRlQ29udGV4dD1mdW5jdGlvbihlKXtyZXR1cm4oZT17JCR0eXBlb2Y6bCxfY3VycmVudFZhbHVlOmUsX2N1cnJlbnRWYWx1ZTI6ZSxfdGhyZWFkQ291bnQ6MCxQcm92aWRlcjpudWxsLENvbnN1bWVyOm51bGwsX2RlZmF1bHRWYWx1ZTpudWxsLF9nbG9iYWxOYW1lOm51bGx9KS5Qcm92aWRlcj17JCR0eXBlb2Y6YSxfY29udGV4dDplfSxlLkNvbnN1bWVyPWV9LHQuY3JlYXRlRWxlbWVudD14LHQuY3JlYXRlRmFjdG9yeT1mdW5jdGlvbihlKXt2YXIgdD14LmJpbmQobnVsbCxlKTtyZXR1cm4gdC50eXBlPWUsdH0sdC5jcmVhdGVSZWY9ZnVuY3Rpb24oKXtyZXR1cm57Y3VycmVudDpudWxsfX0sdC5mb3J3YXJkUmVmPWZ1bmN0aW9uKGUpe3JldHVybnskJHR5cGVvZjp1LHJlbmRlcjplfX0sdC5pc1ZhbGlkRWxlbWVudD1ELHQubGF6eT1mdW5jdGlvbihlKXtyZXR1cm57JCR0eXBlb2Y6ZCxfcGF5bG9hZDp7X3N0YXR1czotMSxfcmVzdWx0OmV9LF9pbml0OkF9fSx0Lm1lbW89ZnVuY3Rpb24oZSx0KXtyZXR1cm57JCR0eXBlb2Y6aCx0eXBlOmUsY29tcGFyZTp2b2lkIDA9PT10P251bGw6dH19LHQuc3RhcnRUcmFuc2l0aW9uPWZ1bmN0aW9uKGUpe3ZhciB0PUUudHJhbnNpdGlvbjtFLnRyYW5zaXRpb249e307dHJ5e2UoKX1maW5hbGx5e0UudHJhbnNpdGlvbj10fX0sdC51bnN0YWJsZV9hY3Q9ZnVuY3Rpb24oKXt0aHJvdyBFcnJvcigiYWN0KC4uLikgaXMgbm90IHN1cHBvcnRlZCBpbiBwcm9kdWN0aW9uIGJ1aWxkcyBvZiBSZWFjdC4iKX0sdC51c2VDYWxsYmFjaz1mdW5jdGlvbihlLHQpe3JldHVybiBMLmN1cnJlbnQudXNlQ2FsbGJhY2soZSx0KX0sdC51c2VDb250ZXh0PWZ1bmN0aW9uKGUpe3JldHVybiBMLmN1cnJlbnQudXNlQ29udGV4dChlKX0sCnQudXNlRGVidWdWYWx1ZT1mdW5jdGlvbigpe30sdC51c2VEZWZlcnJlZFZhbHVlPWZ1bmN0aW9uKGUpe3JldHVybiBMLmN1cnJlbnQudXNlRGVmZXJyZWRWYWx1ZShlKX0sdC51c2VFZmZlY3Q9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gTC5jdXJyZW50LnVzZUVmZmVjdChlLHQpfSx0LnVzZUlkPWZ1bmN0aW9uKCl7cmV0dXJuIEwuY3VycmVudC51c2VJZCgpfSx0LnVzZUltcGVyYXRpdmVIYW5kbGU9ZnVuY3Rpb24oZSx0LHMpe3JldHVybiBMLmN1cnJlbnQudXNlSW1wZXJhdGl2ZUhhbmRsZShlLHQscyl9LHQudXNlSW5zZXJ0aW9uRWZmZWN0PWZ1bmN0aW9uKGUsdCl7cmV0dXJuIEwuY3VycmVudC51c2VJbnNlcnRpb25FZmZlY3QoZSx0KX0sdC51c2VMYXlvdXRFZmZlY3Q9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gTC5jdXJyZW50LnVzZUxheW91dEVmZmVjdChlLHQpfSx0LnVzZU1lbW89ZnVuY3Rpb24oZSx0KXtyZXR1cm4gTC5jdXJyZW50LnVzZU1lbW8oZSx0KX0sdC51c2VSZWR1Y2VyPWZ1bmN0aW9uKGUsdCxzKXtyZXR1cm4gTC5jdXJyZW50LnVzZVJlZHVjZXIoZSx0LHMpfSx0LnVzZVJlZj1mdW5jdGlvbihlKXtyZXR1cm4gTC5jdXJyZW50LnVzZVJlZihlKX0sdC51c2VTdGF0ZT1mdW5jdGlvbihlKXtyZXR1cm4gTC5jdXJyZW50LnVzZVN0YXRlKGUpfSx0LnVzZVN5bmNFeHRlcm5hbFN0b3JlPWZ1bmN0aW9uKGUsdCxzKXtyZXR1cm4gTC5jdXJyZW50LnVzZVN5bmNFeHRlcm5hbFN0b3JlKGUsdCxzKX0sdC51c2VUcmFuc2l0aW9uPWZ1bmN0aW9uKCl7cmV0dXJuIEwuY3VycmVudC51c2VUcmFuc2l0aW9uKCl9LHQudmVyc2lvbj0iMTguMi4wIn0sNzc5NDc0KGUsdCxzKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXMoMTIyNzQ5KX0sNjMyNjA3KGUsdCxzKXsidXNlIHN0cmljdCI7cy5kKHQse0xvbGxpcG9wR3JvdXBJY29uczooKT0+aSxMb2xsaXBvcFRvb2x0aXBNYWluQ29tbW9uUm93OigpPT51fSk7dmFyIGkscj1zKDU0MTgyMCk7IWZ1bmN0aW9uKGUpe2VbZS5CZWZvcmVNYXJrZXRPcGVuPXIuYmVmb3JlTWFya2V0T3Blbl09IkJlZm9yZU1hcmtldE9wZW4iLGVbZS5BZnRlck1hcmtldENsb3NlPXIuYWZ0ZXJNYXJrZXRDbG9zZV09IkFmdGVyTWFya2V0Q2xvc2UifShpfHwoaT17fSkpO3ZhciBuPXMoNzc5NDc0KSxvPXMoOTE0NDg3KSxhPXMubihvKSxsPXMoMjczMzEwKTtmdW5jdGlvbiB1KGUpe2NvbnN0e25hbWU6dCx2YWx1ZTpzLHN0eWxlOmksdmFsdWVTdHlsZTpvLG9uVmFsdWVDbGljazp1LHZhbHVlUmlnaHRJY29uOmMsY2xhc3NOYW1lOmh9PWU7cmV0dXJuIG4uY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOmEoKShyLmdyb3VwUm93LGgpLHN0eWxlOml9LHQmJm4uY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOnIuZ3JvdXBDZWxsfSxuLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6ci50ZXh0fSx0KSksbi5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6ci5ncm91cENlbGx9LG4uY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZTpyLnRleHQsc3R5bGU6byxvbkNsaWNrOnV9LHMpLGMmJm4uY3JlYXRlRWxlbWVudChsLkljb24se2ljb246Yy5pY29uQ29udGVudCxjbGFzc05hbWU6YSgpKHIuZ3JvdXBJY29uLGMuaWNvbkNsYXNzLCJhcHBseS1jb21tb24tdG9vbHRpcCIpLHRpdGxlOmMudG9vbHRpcFRleHR9KSkpfX0sMjI4ODIoZSx0LHMpeyJ1c2Ugc3RyaWN0IjtzLmQodCx7Y3JlYXRlRGl2aWRlbmRzTG9sbGlwb3BUb29sdGlwQ29udGVudFByb3BzOigpPT5nZSxjcmVhdGVFYXJuaW5nc0xvbGxpcG9wVG9vbHRpcENvbnRlbnRQcm9wczooKT0+ZmUsY3JlYXRlU3BsaXRzTG9sbGlwb3BUb29sdGlwQ29udGVudFByb3BzOigpPT5iZSxnZXRNb3JlRmluYW5jaWFsc0RpdmlkZW5kc0xpbmtUZXh0OigpPT5TZSxnZXRNb3JlRmluYW5jaWFsc0xpbmtUZXh0OigpPT51ZX0pO3ZhciBpPXMoMTM4NjM4KSxyPXMoNjAxODQxKSxuPXMoMjE0OTg3KSxvPXMoMjIxMDYxKSxhPXMoMjc2MDE5KSxsPXMoNTIzMDcxKSx1PXMoNDkxMTY1KSxjPXMoOTI2OTk1KSxoPXMoNTMyOTc1KSxkPXMoNDA3MDA2KSxfPXMoMTEyNzI1KSxwPXMoODExOTA0KSx5PXMoMTg1MjcxKSxtPXMoNTE3MjkzKSx2PXMoNzcwNzU1KSxmPXMoOTY5MTY4KSxTPXMoNTU0NjU0KSxnPXMoODIyNzk1KSxiPXMoOTMwMjMxKSx3PXMoNTY5Mzk4KSxDPXMoODg4NTYyKSxQPXMoODg5Mzk3KSx4PXMoNzIxMDQyKSxEPXMoMjMzMjQ3KSxJPXMoNjMyNjA3KSxUPXMoODk0Njk3KSxWPXMoNDA4Mzc3KSxSPXMoMzUzMjA2KSxBPXMoNjkxOTgpLEw9cygyNDEyMjMpLEU9cygzMDc3MDgpLE09cyg1NTIwODQpLGs9cyg1MzY5MiksQj1zKDU1MTQzMCksTj1zKDQzNTI3MyksRj1zKDI0MTUzMik7Y29uc3QgTz0oMCxvLmdldExvZ2dlcikoIkNoYXJ0LkxvbGlwb3BDb250ZW50RmFjdG9yeSIpLEg9eS50KG51bGwse2NvbnRleHQ6IkZpbmFuY2lhbCBldmVudHMgbG9saXBvcHMifSxzKDY0MTg3NSkpLHE9eS50KG51bGwse2NvbnRleHQ6IkZpbmFuY2lhbCBldmVudHMgbG9saXBvcHMifSxzKDM4NTExMikpLHo9eS50KG51bGwse2NvbnRleHQ6IkZpbmFuY2lhbCBldmVudHMgbG9saXBvcHMifSxzKDEzNjk1MikpLFU9eS50KG51bGwse2NvbnRleHQ6IkZpbmFuY2lhbCBldmVudHMgbG9saXBvcHMifSxzKDc1Njc4NCkpLFc9eS50KG51bGwse2NvbnRleHQ6IkZpbmFuY2lhbCBldmVudHMgbG9saXBvcHMifSxzKDMzNjg3MSkpLCQ9eS50KG51bGwse2NvbnRleHQ6IkZpbmFuY2lhbCBldmVudHMgbG9saXBvcHMifSxzKDkzMDU4NikpLEc9eS50KG51bGwse2NvbnRleHQ6IkZpbmFuY2lhbCBldmVudHMgbG9saXBvcHMifSxzKDQ3MTEyNCkpLGo9eS50KG51bGwse2NvbnRleHQ6IkZpbmFuY2lhbCBldmVudHMgbG9saXBvcHMifSxzKDMyNDUxKSksWT15LnQobnVsbCx7Y29udGV4dDoiRmluYW5jaWFsIGV2ZW50cyBsb2xpcG9wcyJ9LHMoNDY0NjY3KSksSj15LnQobnVsbCx7Y29udGV4dDoiRmluYW5jaWFsIGV2ZW50cyBsb2xpcG9wcyJ9LHMoODQ3ODU4KSksUT15LnQobnVsbCx7CmNvbnRleHQ6IkZpbmFuY2lhbCBldmVudHMgbG9saXBvcHMifSxzKDQ2Mjk5KSksWj15LnQobnVsbCx7Y29udGV4dDoiRmluYW5jaWFsIGV2ZW50cyBsb2xpcG9wcyJ9LHMoNTE4MTQzKSksSz15LnQobnVsbCx7Y29udGV4dDoiRmluYW5jaWFsIGV2ZW50cyBsb2xpcG9wcyJ9LHMoNDEwMzQ1KSksWD15LnQobnVsbCx7Y29udGV4dDoiRmluYW5jaWFsIGV2ZW50cyBsb2xpcG9wcyJ9LHMoNzcyMTQ5KSksZWU9eS50KG51bGwse2NvbnRleHQ6IkZpbmFuY2lhbCBldmVudHMgbG9saXBvcHMifSxzKDQ2NTkzNikpLHRlPXkudChudWxsLHtjb250ZXh0OiJGaW5hbmNpYWwgZXZlbnRzIGxvbGlwb3BzIn0scyg2NTEyMjQpKSxzZT15LnQobnVsbCx7Y29udGV4dDoiRmluYW5jaWFsIGV2ZW50cyBsb2xpcG9wcyJ9LHMoNjQyODE3KSksaWU9eS50KG51bGwse2NvbnRleHQ6IkZpbmFuY2lhbCBldmVudHMgbG9saXBvcHMifSxzKDI5OTU5MykpLHJlPSgwLEQuZ2V0UGVyY2VudGFnZUZvcm1hdHRlcikoKSxuZT0oMCxELmdldFZvbHVtZUZvcm1hdHRlcikoKSxvZT1uZXcgbS5DaXJjdWxhckNhY2hlQnVmZmVyKDMyKSxhZT1bImluIiwiZW4iXS5pbmNsdWRlcyh3aW5kb3cubGFuZ3VhZ2U/PyJlbiIpO2Z1bmN0aW9uIGxlKGUsdCxzPSJvdmVydmlldyIpe2lmKCEvXGJldGZcYi9pLnRlc3QoZT8uZGVzY3JpcHRpb258fCIiKSlyZXR1cm57Y2hpbGRyZW46dCxvbkNsaWNrOmFzeW5jKCk9PnthLmdsb2JhbENsb3NlRGVsZWdhdGUuZmlyZSgpLCgwLGIuaXNGZWF0dXJlc2V0RW5hYmxlZCkoIm1vYmlsZV9hcHBfYWN0aW9uX29wZW5fZmluYW5jaWFsc193ZWJ2aWV3Iik/KDAsQy5vcGVuRmluYW5jaWFsc1dlYnZpZXcpKG5ldyBVUkxTZWFyY2hQYXJhbXMpOigwLFAuc2hvd0ZpbmFuY2lhbHNEaWFsb2cpKHtpbml0aWFsVGFiSWQ6c30pfX19ZnVuY3Rpb24gdWUoZSl7cmV0dXJuIHkudChudWxsLHtyZXBsYWNlOntzeW1ib2w6ZT8ubmFtZT8/IiJ9LGNvbnRleHQ6IkZpbmFuY2lhbCBldmVudHMgbG9saXBvcHMifSxzKDI0MTc3KSl9ZnVuY3Rpb24gY2UoZSx0KXtyZXR1cm57aWNvbjpGLGNsYXNzTmFtZToiYXBwbHktY29tbW9uLXRvb2x0aXAiLCJkYXRhLXRvb2x0aXAiOnkudChudWxsLHZvaWQgMCxzKDM0NDQ4MikpLG9uQ2xpY2s6YXN5bmMoKT0+eygwLHgudHJhY2tBbGVydENyZWF0aW9uQXR0ZW1wdCkoZS5tYWluU2VyaWVzKCkuYWN0dWFsU3ltYm9sKCksImVhcm5pbmdzX2xvbGxpcG9wIiwiY2hhcnQiKSx3aW5kb3cuaXNfYXV0aGVudGljYXRlZD8oMCxnLmludm9rZUFsZXJ0RWRpdG9yKSh7bW9kZTpnLkFsZXJ0RWRpdG9ySW52b2NhdGlvbk1vZGUuQ3JlYXRlQWxlcnQsZGF0YVNvdXJjZUh1YjplLGVhcm5pbmdzOnQsc291cmNlOiJjaGFydCIsbWV0aG9kOiJlYXJuaW5nc19sb2xsaXBvcCIsYWN0aW9uU291cmNlOiJlYXJuaW5nc19sb2xsaXBvcCJ9KTooMCx2Lm9wZW5QYXl3YWxsKSh7ZmVhdHVyZToiYWxlcnRzT25FYXJuaW5ncyJ9KX19fWZ1bmN0aW9uIGhlKGUpe3JldHVybntkb2N1bWVudElkOmUuaWQsaWQ6ZS5jYXRlZ29yeS5pZCx0aXRsZTplLmNhdGVnb3J5LnRpdGxlLHZpZXdzOmUudmlld3MsZm9ybTplLmZvcm0/P251bGx9fWZ1bmN0aW9uIGRlKGUsdCl7cmV0dXJuKDAsaC5nZXREb2N1bWVudHNBcGkpKCkuZG9jU2NyZWVuZXIudjEuZ2V0RG9jdW1lbnRzKHtjbGllbnQ6ImNoYXJ0IixmaWx0ZXJzOlt7aWQ6ImxhbmciLHZhbHVlczpbd2luZG93Lmxhbmd1YWdlPz8iZW4iXX0se2lkOiJzeW1ib2wiLHZhbHVlczpbZV19XX0se3NpZ25hbDp0fSl9Y29uc3QgX2U9W1sidXJuOnN1bW1hcnlfZG9jdW1lbnRfcmVwb3J0OnF1YXJ0ci5jb20iLCJ1cm46cmVwb3J0OnF1YXJ0ci5jb20iXSxbInVybjpzdW1tYXJ5X2RvY3VtZW50X3NsaWRlczpxdWFydHIuY29tIiwidXJuOnNsaWRlczpxdWFydHIuY29tIl0sWyJ1cm46c3VtbWFyeV9kb2N1bWVudF90cmFuc2NyaXB0OnF1YXJ0ci5jb20iLCJ1cm46dHJhbnNjcmlwdHM6cXVhcnRyLmNvbSJdXTtmdW5jdGlvbiBwZShlKXtjb25zdCB0PW5ldyBNYXA7cmV0dXJuIGUuaXRlbXMuZm9yRWFjaCgoZT0+e2NvbnN0IHM9KChpPWUuaWQpLmVuZHNXaXRoKCI6MCIpJiYoaT1pLnNsaWNlKDAsLTIpKSxfZS5yZWR1Y2UoKChlLHQpPT5lLnJlcGxhY2UodFswXSx0WzFdKSksaSkpO3ZhciBpO3Quc2V0KHMsZS50aXRsZSl9KSksdH1mdW5jdGlvbiB5ZShlLHQpe3JldHVybigwLGQuZ2V0TmV3c01lZGlhdG9yU2VydmljZSkoKS52Mi5nZXROZXdzKHtjbGllbnQ6ImxhbmRpbmciLHN0cmVhbWluZzohMSxmaWx0ZXJzOlt7aWQ6InN5bWJvbCIsdmFsdWVzOltlXX0se2lkOiJwcm92aWRlciIsdmFsdWVzOlsicXVhcnRyIl19XX0se3NpZ25hbDp0fSkudGhlbihwZSl9ZnVuY3Rpb24gbWUoZSx0KXtjb25zdCBzPW9lLmdldChlKTtpZihzKXJldHVybiBzO2NvbnN0IGk9e2RvY3VtZW50c1JlcXVlc3Q6ZGUoZSx0KSxuZXdzUmVxdWVzdDp5ZShlLHQpfTtyZXR1cm4gb2Uuc2V0KGUsaSksaX1mdW5jdGlvbiB2ZShlKXtjb25zdCB0PWUucmVwb3J0ZWQscz1udWxsIT10LGk9ZS5lc3RpbWF0ZSxyPW51bGwhPWksbj1zJiZyP3QtaTpudWxsO2xldCBvPWUucmV2ZW51ZUVzdGltYXRlLGE9ITE7bnVsbCE9byYmKGE9ITAsbyo9MWU2KTtsZXQgbD1lLnJldmVudWVWYWx1ZSx1PSExO251bGwhPWwmJih1PSEwLGwqPTFlNik7Y29uc3QgYz11JiZhP2wtbzpudWxsO3JldHVybntzdXJwcmlzZTpuLHJldmVudWVTdXJwcmlzZTpjLHJldmVudWVFc3RpbWF0ZTpvLGlzUmV2ZW51ZUVzdGltYXRlOmEsaXNSZXBvcnRlZDpzLHJldmVudWVWYWx1ZTpsLGlzUmV2ZW51ZVZhbHVlOnUsZXN0aW1hdGU6aSxyZXBvcnRlZDp0LGlzRXN0aW1hdGU6cixzdXJwcmlzZVBlcmNlbnQ6bnVsbD09bj9udWxsOjEwMCpNYXRoLmFicyhuL2kpLHJldmVudWVTdXJwcmlzZVBlcmNlbnQ6bnVsbD09Yz9udWxsOjEwMCpNYXRoLmFicyhjL28pfX1hc3luYyBmdW5jdGlvbiBmZShlLHQsbyxhLGgsZCxtKXsKY29uc3R7c3VycHJpc2U6dixyZXZlbnVlU3VycHJpc2U6ZyxyZXZlbnVlRXN0aW1hdGU6Yixpc1JldmVudWVFc3RpbWF0ZTpDLHJldmVudWVWYWx1ZTpQLGlzUmV2ZW51ZVZhbHVlOngsZXN0aW1hdGU6RCxpc1JlcG9ydGVkOkEscmVwb3J0ZWQ6TCxpc0VzdGltYXRlOkYsc3VycHJpc2VQZXJjZW50OkcscmV2ZW51ZVN1cnByaXNlUGVyY2VudDpqfT12ZShlKSxZPSJGdXR1cmUiPT09ZS50eXBlfHwiRXN0aW1hdGVkRGF0ZSI9PT1lLnR5cGUsWj1vJiYhWT9hd2FpdCBhc3luYyBmdW5jdGlvbihlLHQscyl7Y29uc3R7cGVyaW9kOmksZGF0ZTpyfT10LG89bmV3IERhdGUoMWUzKmkpLGE9IlEiKyhvLmdldFVUQ01vbnRoKCkrMSkvMyxsPW1lKGUucHJvX25hbWUscyk7dHJ5e2NvbnN0W2UsdF09YXdhaXQgUHJvbWlzZS5hbGwoW2wuZG9jdW1lbnRzUmVxdWVzdCxsLm5ld3NSZXF1ZXN0XSk7aWYocy5hYm9ydGVkKXJldHVybiBudWxsO2NvbnN0IGk9ZS5pdGVtcy5maW5kKChlPT5bInF1YXJ0ZXJseV9yZXBvcnQiLCJlYXJuaW5nc19yZWxlYXNlIiwiYW5udWFsX3JlcG9ydCJdLmluY2x1ZGVzKGUuY2F0ZWdvcnkuaWQpJiYiZWFybmluZyI9PT1lLmV2ZW50JiZlLmZpc2NhbF9wZXJpb2Q9PT1hJiZlLmZpc2NhbF95ZWFyPT09by5nZXRVVENGdWxsWWVhcigpKSk7aWYoIWkpcmV0dXJuIG51bGw7Y29uc3Qgbj1pLmlkLHU9aS5jb3JyZWxhdGlvbl9pZCxjPWUuaXRlbXMuZmlsdGVyKChlPT5lLmNvcnJlbGF0aW9uX2lkPT09dSkpO3JldHVybntzdW1tYXJ5OmFlP3QuZ2V0KG4pPz8iIjoiIixmaXNjYWxQZXJpb2Q6YSxmaXNjYWxZZWFyOm8uZ2V0VVRDRnVsbFllYXIoKSxldmVudERhdGU6ci8xZTMsY2F0ZWdvcmllczpjLm1hcChoZSl9fWNhdGNoKGUpe3JldHVybiBuLmlzQWJvcnRFcnJvcnx8Ty5sb2dFcnJvcihgRXJyb3IgcmVxdWVzdGluZyBkb2N1bWVudHMgYW5kIG5ld3M6ICR7ZX1gKSxudWxsfX0obyxlLGQpOm51bGwsSz1lLnN0YW5kYXJkaXplZCxlZT1udWxsIT1LLG9lPTEwPT09ZS50aW1lVHlwZXx8MTQ9PT1lLnRpbWVUeXBlLHVlPSgwLFYuZWFybmluZ3NTdHlsZXMpKGEpO2xldCBkZSxfZSxwZSx5ZSxmZTtzd2l0Y2goZS50eXBlKXtjYXNlIkZ1dHVyZSI6X2U9dWUuZnV0dXJlLGRlPWs7YnJlYWs7Y2FzZSJFc3RpbWF0ZWREYXRlIjpfZT11ZS5lc3RpbWF0ZWREYXRlLGRlPVI7YnJlYWs7Y2FzZSJOZWdhdGl2ZSI6X2U9dWUubmVnYXRpdmUsZGU9TTticmVhaztjYXNlIlBvc2l0aXZlIjpfZT11ZS5wb3NpdGl2ZSxkZT1FO2JyZWFrO2RlZmF1bHQ6X2U9dWUudW5rbm93bixkZT1rfXN3aXRjaChlLnRpbWVUeXBlKXtjYXNlIDEyOmNhc2UgMjI6cGU9Tix5ZT1JLkxvbGxpcG9wR3JvdXBJY29ucy5BZnRlck1hcmtldENsb3NlLGZlPWllO2JyZWFrO2Nhc2UgMTE6Y2FzZSAyMTpwZT1CLHllPUkuTG9sbGlwb3BHcm91cEljb25zLkJlZm9yZU1hcmtldE9wZW4sZmU9c2V9Y29uc3QgU2U9e25hbWU6IkVzdGltYXRlZERhdGUiPT09ZS50eXBlP1E6Six2YWx1ZTpoKGUuZGF0ZSxvZSl9O3BlJiYoU2UudmFsdWVSaWdodEljb249e2ljb25Db250ZW50OnBlLGljb25DbGFzczp5ZSx0b29sdGlwVGV4dDpmZX0pO2NvbnN0IGdlPVtTZV07ZS5wZXJpb2QmJmdlLnB1c2goe25hbWU6WCx2YWx1ZTp1LmRhdGVGb3JtYXRGdW5jdGlvbnNbIk1NTSAneXkiXShuZXcgRGF0ZSgxZTMqZS5wZXJpb2QpLCExKX0pO2NvbnN0IGJlPVo/ZnVuY3Rpb24oZSx0LHIsbyl7Y29uc3R7c3VycHJpc2U6YSxyZXZlbnVlU3VycHJpc2U6bCxzdXJwcmlzZVBlcmNlbnQ6dSxyZXZlbnVlU3VycHJpc2VQZXJjZW50OmN9PXZlKHQpO3JldHVybntjaGlsZHJlbjp5LnQobnVsbCx7Y29udGV4dDoiRWFybmluZyBsb2xsaXBvcCBvbiBjaGFydCJ9LHMoNzY3NzcxKSkuZm9ybWF0KHtzeW1ib2w6ZT8ubmFtZT8/IiJ9KSxvbkNsaWNrOmFzeW5jKCk9PntpZihlJiZyKXRyeXtjb25zdCBzPWFlP2F3YWl0IG1lKGUucHJvX25hbWUsbykubmV3c1JlcXVlc3Q6bmV3IE1hcDtpZihvLmFib3J0ZWQpcmV0dXJuO2NvbnN0IG49ci5jYXRlZ29yaWVzLm1hcCgoZT0+KHtpZDplLmRvY3VtZW50SWQsdGl0bGU6cy5nZXQoZS5kb2N1bWVudElkKT8/IiJ9KSkpLGg9e3RpdGxlOmBFYXJuaW5ncywgJHtyLmZpc2NhbFBlcmlvZH0gRlkke3IuZmlzY2FsWWVhcn1gLGlzQW5udWFsOiExLGV2ZW50OiJlYXJuaW5nIixkYXRlOnIuZXZlbnREYXRlLHllYXI6ci5maXNjYWxZZWFyLHN1bW1hcnk6ci5zdW1tYXJ5LGNhdGVnb3JpZXM6KDAsXy5zb3J0Q2F0ZWdvcmllcykoci5jYXRlZ29yaWVzKSxjdXJyZW5jeTplLmN1cnJlbmN5X2NvZGUsZWFybmluZzp7Li4udCxzdGFuZGFyZGl6ZWQ6dC5zdGFuZGFyZGl6ZWQ/P3ZvaWQgMCxyZXBvcnRlZDp0LnJlcG9ydGVkPz92b2lkIDAsZXN0aW1hdGU6dC5lc3RpbWF0ZT8/dm9pZCAwLHJldmVudWVFc3RpbWF0ZTp0LnJldmVudWVFc3RpbWF0ZT8/dm9pZCAwLHJldmVudWVWYWx1ZTp0LnJldmVudWVWYWx1ZT8/dm9pZCAwLHN1cnByaXNlOmE/P3ZvaWQgMCxyZXZlbnVlU3VycHJpc2U6bD8/dm9pZCAwLHN1cnByaXNlUGVyY2VudDp1Pz92b2lkIDAscmV2ZW51ZVN1cnByaXNlUGVyY2VudDpjPz92b2lkIDB9fTsoMCxwLm9wZW5DYXJkUG9wdXApKHtwcm9fc3ltYm9sOmUucHJvX25hbWUsc2hvcnRfbmFtZTplLm5hbWUsZXhjaGFuZ2U6ZS5leGNoYW5nZSx0eXBlOmUudHlwZSx0eXBlc3BlY3M6ZS50eXBlc3BlY3MsdHZfc3ltYm9sX3BhZ2VfdXJsX2ZvcmNlX2V4Y2hhbmdlOltdLGluc3RydW1lbnRfbmFtZTooMCxpLmVuc3VyZURlZmluZWQpKCgwLFQuZ2V0RGVzY3JpcHRpb25Gb3JUaXRsZUdlbmVyYXRpb24pKCJkZXNjcmlwdGlvbiIsZSkpfSxoLGguY2F0ZWdvcmllc1swXSxuKX1jYXRjaChlKXsoMCxuLmlzQWJvcnRFcnJvcikoZSl8fE8ubG9nRXJyb3IoYEVycm9yIHJlcXVlc3RpbmcgZG9jdW1lbnRzIGFuZCBuZXdzOiAke2V9YCl9fX19KG8sZSxaLGQpOmxlKG8sZnVuY3Rpb24oZSl7cmV0dXJuIHkudChudWxsLHtyZXBsYWNlOntzeW1ib2w6ZT8ubmFtZT8/IiJ9LGNvbnRleHQ6IkZpbmFuY2lhbCBldmVudHMgbG9saXBvcHMiCn0scyg3NTkxNTEpKX0obyksImVhcm5pbmdzIiksd2U9e3RpdGxlOnh8fEM/SDpxLGluZm9ybWF0aW9uQnV0dG9uUHJvcHM6e2FyaWFMYWJlbDp5LnQobnVsbCx2b2lkIDAscyg4Njk4NjcpKSxpY29uOiJxdWVzdGlvbiIsb25DbGljazooKT0+KDAsYy5zaG93U3VwcG9ydERpYWxvZykoe3NvbHV0aW9uSWQ6Uy5zb2x1dGlvbklkcy5FQVJOSU5HX0xPTExJUE9QX0ZJRUxEU30pfSxhbGVydDptLGljb246ZGUsc3R5bGU6e2NvbG9yOl9lfSxhY3Rpb25zOltiZSwoMCx3LmlzRmVhdHVyZUVuYWJsZWQpKCJhbGVydHMtb24tbG9sbGlwb3AiKSYmWT9jZSh0LHtlc3RpbWF0ZWREYXRlOm5ldyBEYXRlKGUuZGF0ZSksZXN0aW1hdGVkUmV2ZW51ZTpiPz92b2lkIDAsZXN0aW1hdGVkRWFybmluZ3M6RD8/dm9pZCAwfSk6dm9pZCAwXS5maWx0ZXIoci5pc0V4aXN0ZW50KSxtYWluOnt0eXBlOiJjb21tb24iLHRpdGxlOmdlLGNvbnRlbnQ6W119LGRvY3VtZW50c0luZm86Wn0sQ2U9e3RpdGxlOnEsY29udGVudDpbXX07aWYoZWUmJkNlLmNvbnRlbnQucHVzaCh7bmFtZTp6LHZhbHVlOigwLGwucm91bmRUb1RoaXJkRGlnaXQpKEspfSksQSYmQ2UuY29udGVudC5wdXNoKHtuYW1lOlUsdmFsdWU6KDAsbC5yb3VuZFRvVGhpcmREaWdpdCkoTCl9KSxGJiZDZS5jb250ZW50LnB1c2goe25hbWU6Vyx2YWx1ZTooMCxsLnJvdW5kVG9UaGlyZERpZ2l0KShEKX0pLG51bGwhPT12KXtsZXQgZT0oMCxsLnJvdW5kVG9UaGlyZERpZ2l0KSh2KTtpc0Zpbml0ZShHKSYmKGUrPSIgKCIrcmUuZm9ybWF0KEcpKyIpIiksQ2UuY29udGVudC5wdXNoKHtuYW1lOiQsdmFsdWU6KDAsZi5mb3JjZUxUUlN0cikoZSksc3R5bGU6e2ZvbnRXZWlnaHQ6ImJvbGQiLGNvbG9yOl9lfX0pfWlmKCgwLGkuZW5zdXJlRGVmaW5lZCkod2UubWFpbi5jb250ZW50KS5wdXNoKENlKSx4fHxDKXtjb25zdCBlPXt0aXRsZTp0ZSxjb250ZW50OltdfTtpZih4JiZlLmNvbnRlbnQucHVzaCh7bmFtZTpVLHZhbHVlOm5lLmZvcm1hdChQKX0pLEMmJmUuY29udGVudC5wdXNoKHtuYW1lOlcsdmFsdWU6bmUuZm9ybWF0KGIpfSksbnVsbCE9PWcpe2xldCB0PW5lLmZvcm1hdChnKTtpc0Zpbml0ZShqKSYmKHQrPSIgKCIrcmUuZm9ybWF0KGopKyIpIiksZS5jb250ZW50LnB1c2goe25hbWU6JCx2YWx1ZTooMCxmLmZvcmNlTFRSU3RyKSh0KSxzdHlsZTp7Zm9udFdlaWdodDoiYm9sZCIsY29sb3I6Zz49MD91ZS5wb3NpdGl2ZTp1ZS5uZWdhdGl2ZX19KX0oMCxpLmVuc3VyZURlZmluZWQpKHdlLm1haW4uY29udGVudCkucHVzaChlKX1yZXR1cm5bd2VdfWZ1bmN0aW9uIFNlKGUpe3JldHVybiB5LnQobnVsbCx7cmVwbGFjZTp7c3ltYm9sOmU/Lm5hbWU/PyIifSxjb250ZXh0OiJGaW5hbmNpYWwgZXZlbnRzIGxvbGlwb3BzIn0scygzODE0NzkpKX1mdW5jdGlvbiBnZShlLHQscyxpKXtjb25zdHtkYXRlOm4sYW1vdW50RGl2aWRlbmRzOm8scGF5bWVudERhdGU6YSxhZGp1c3RlZEFtb3VudERpdmlkZW5kczp1fT1lLGM9W3tuYW1lOlosdmFsdWU6aShuKX1dO3JldHVybigwLHIuaXNOdW1iZXIpKG8pJiZjLnB1c2goe25hbWU6aix2YWx1ZTooMCxsLnJvdW5kVG9UaGlyZERpZ2l0KShvKX0pLCgwLHIuaXNOdW1iZXIpKHUpJiZjLnB1c2goe25hbWU6WSx2YWx1ZTooMCxsLnJvdW5kVG9UaGlyZERpZ2l0KSh1KX0pLCgwLHIuaXNOdW1iZXIpKGEpJiZjLnB1c2goe25hbWU6ZWUsdmFsdWU6aShhKX0pLFt7dGl0bGU6RyxpY29uOkwsc3R5bGU6e2NvbG9yOigwLFYuZGl2aWRlbmRzU3R5bGVzKShzKX0sYWN0aW9uczpbbGUodCxTZSh0KSwiZGl2aWRlbmRzIildLmZpbHRlcihyLmlzRXhpc3RlbnQpLG1haW46e3R5cGU6ImNvbW1vbiIsdGl0bGU6Y319XX1mdW5jdGlvbiBiZShlLHQscyxpKXtsZXQgbj1LO3JldHVybigwLHIuaXNOdW1iZXIpKGUubnVtZXJhdG9yKSYmKDAsci5pc051bWJlcikoZS5kZW5vbWluYXRvcikmJihuKz0iOiAiK2UubnVtZXJhdG9yKyIvIitlLmRlbm9taW5hdG9yKSxbe3RpdGxlOm4saWNvbjpBLHN0eWxlOntjb2xvcjooMCxWLnNwbGl0c1N0eWxlKShzKX0sYWN0aW9uczpbbGUodCx1ZSh0KSldLmZpbHRlcihyLmlzRXhpc3RlbnQpLG1haW46e3R5cGU6ImNvbW1vbiIsdGl0bGU6aShlLmRhdGUpfX1dfX0sNDA4Mzc3KGUsdCxzKXsidXNlIHN0cmljdCI7cy5kKHQse2RhcmtUaGVtZUVhcm5pbmdzU3R5bGU6KCk9PnIsZGl2aWRlbmRzU3R5bGVzOigpPT51LGVhcm5pbmdzU3R5bGVzOigpPT5vLGxpZ2h0VGhlbWVFYXJuaW5nc1N0eWxlOigpPT5uLHNwbGl0c1N0eWxlOigpPT5kfSk7dmFyIGk9cyg1MDU1Nik7Y29uc3Qgcj17cG9zaXRpdmU6KDAsaS5nZXRIZXhDb2xvckJ5TmFtZSkoImNvbG9yLW1pbnR5LWdyZWVuLTYwMCIpLG5lZ2F0aXZlOigwLGkuZ2V0SGV4Q29sb3JCeU5hbWUpKCJjb2xvci1yaXBlLXJlZC02MDAiKSxmdXR1cmU6KDAsaS5nZXRIZXhDb2xvckJ5TmFtZSkoImNvbG9yLWdyYXBlcy1wdXJwbGUtYTQwMCIpLGVzdGltYXRlZERhdGU6KDAsaS5nZXRIZXhDb2xvckJ5TmFtZSkoImNvbG9yLWdyYXBlcy1wdXJwbGUtYTQwMCIpLHVua25vd246KDAsaS5nZXRIZXhDb2xvckJ5TmFtZSkoImNvbG9yLWNvbGQtZ3JheS0zNTAiKX0sbj17cG9zaXRpdmU6KDAsaS5nZXRIZXhDb2xvckJ5TmFtZSkoImNvbG9yLW1pbnR5LWdyZWVuLTUwMCIpLG5lZ2F0aXZlOigwLGkuZ2V0SGV4Q29sb3JCeU5hbWUpKCJjb2xvci1yaXBlLXJlZC01MDAiKSxmdXR1cmU6KDAsaS5nZXRIZXhDb2xvckJ5TmFtZSkoImNvbG9yLWdyYXBlcy1wdXJwbGUtYTIwMCIpLGVzdGltYXRlZERhdGU6KDAsaS5nZXRIZXhDb2xvckJ5TmFtZSkoImNvbG9yLWdyYXBlcy1wdXJwbGUtYTIwMCIpLHVua25vd246KDAsaS5nZXRIZXhDb2xvckJ5TmFtZSkoImNvbG9yLWNvbGQtZ3JheS03MDAiKX07ZnVuY3Rpb24gbyhlKXtyZXR1cm4gZT9yOm59Y29uc3QgYT0oMCxpLmdldEhleENvbG9yQnlOYW1lKSgiY29sb3ItdHYtYmx1ZS02MDAiKSxsPSgwLGkuZ2V0SGV4Q29sb3JCeU5hbWUpKCJjb2xvci10di1ibHVlLTUwMCIpO2Z1bmN0aW9uIHUoZSl7cmV0dXJuIGU/YTpsfWNvbnN0IGM9KDAsCmkuZ2V0SGV4Q29sb3JCeU5hbWUpKCJjb2xvci10YW4tb3JhbmdlLTYwMCIpLGg9KDAsaS5nZXRIZXhDb2xvckJ5TmFtZSkoImNvbG9yLXRhbi1vcmFuZ2UtNTAwIik7ZnVuY3Rpb24gZChlKXtyZXR1cm4gZT9jOmh9fSw3NTc4MjkoZSx0LHMpeyJ1c2Ugc3RyaWN0Ijt2YXIgaTtzLmQodCx7V2Vidmlld0NvbnRyb2xsZXJCYXNlOigpPT5uLFdlYnZpZXdQYWdlTmFtZTooKT0+aX0pLGZ1bmN0aW9uKGUpe2UuRmluYW5jaWFscz0iZmluYW5jaWFscyIsZS5Gb3JlY2FzdD0iZm9yZWNhc3QiLGUuRGV0YWlscz0iZGV0YWlscyIsZS5UZWNobmljYWxzPSJ0ZWNobmljYWxzIixlLkNvcnBvcmF0ZUJvbmRzPSJjb3Jwb3JhdGUtYm9uZHMiLGUuU2Vhc29uYWxzPSJzZWFzb25hbHMiLGUuU3RvY2tCb25kcz0ic3RvY2stYm9uZHMiLGUuRm9yd2FyZEN1cnZlPSJmb3J3YXJkLWN1cnZlIixlLkJvbmRZaWVsZEN1cnZlPSJib25kLXlpZWxkLWN1cnZlIixlLllpZWxkQ3VydmVzPSJ5aWVsZC1jdXJ2ZXMiLGUuRG9jdW1lbnRzPSJkb2N1bWVudHMiLGUuRXRmcz0iZXRmcyIsZS5Db250cmFjdHM9ImNvbnRyYWN0cyIsZS5EZXJpdmF0aXZlcz0iZGVyaXZhdGl2ZXMiLGUuTmV3cz0ibmV3cyIsZS5Db21tdW5pdHk9ImNvbW11bml0eSJ9KGl8fChpPXt9KSk7dmFyIHI9cygyMjUyOTgpO2NsYXNzIG57X2NyZWF0ZU9wZW5SZXF1ZXN0KGUsdD1uZXcgVVJMU2VhcmNoUGFyYW1zKXtjb25zdCBzPXQuZ2V0KCJzeW1ib2wiKT8/ci5saW5raW5nLnN5bWJvbC52YWx1ZSgpO3JldHVybiB0LnNldCgic3ltYm9sIixzKSx7ZXhlY3V0ZSgpe2NvbnN0IHM9bmV3IFVSTChgd2Vidmlldy8ke2V9L2AsbG9jYXRpb24ub3JpZ2luKTtyZXR1cm4gcy5zZWFyY2g9dC50b1N0cmluZygpLHdpbmRvdy5vcGVuKHMsIl9ibGFuayIpfSxzeW1ib2w6KCk9PnN9fX19LDcwNjI0OChlLHQscyl7InVzZSBzdHJpY3QiO3MuZCh0LHtTZXNzaW9uczooKT0+X30pO3ZhciBpPXMoMTM4NjM4KSxyPXMoOTMwMjMxKSxuPXMoNzkxNDI3KSxvPXMoNzk5Mzc1KSxhPXMoMjE4NzY1KSxsPXMoNzU1NjI3KSx1PXMoNTk2MjcyKSxjPXMoOTY2NDA0KSxoPXMoNjA1MjU3KTtjb25zdCBkPW5ldyBsLlByaWNlRm9ybWF0dGVyO2NsYXNzIF8gZXh0ZW5kcyB1LkN1c3RvbVNvdXJjZUJhc2V7Y29uc3RydWN0b3IoZSx0LHMsaSl7c3VwZXIoZSx0KSx0aGlzLl9zdHVkeVNvdXJjZT1udWxsLHRoaXMuX3BhbmVWaWV3cz1bXSx0aGlzLl9tZXRhSW5mbz1udWxsLHRoaXMuX2Rlc3Ryb3llZD0hMSx0aGlzLl9pc1N0YXJ0ZWQ9ITEsdGhpcy5fbG9hZGVkR3JhcGhpY3M9bnVsbCx0aGlzLl9kb3VibGVDbGlja0hhbmRsZXI9aSx0aGlzLl9wcm9wZXJ0aWVzPXMsdGhpcy5fcHJvcGVydGllcy5zdWJzY3JpYmUodGhpcyx0aGlzLl9vblByb3BlcnRpZXNDaGFuZ2VkKSx0aGlzLl9yZXF1ZXN0QW5kUHJvY2Vzc01ldGFJbmZvKCksdC50aW1lU2NhbGUoKS5vblJlc2V0KCkuc3Vic2NyaWJlKHRoaXMsdGhpcy5fY2xlYXJEYXRhKSx0LnRpbWVTY2FsZSgpLmxvZ2ljYWxSYW5nZUNoYW5nZWQoKS5zdWJzY3JpYmUodGhpcyx0aGlzLnVwZGF0ZUFsbFZpZXdzLmJpbmQodGhpcywoMCxjLnZpZXdwb3J0Q2hhbmdlRXZlbnQpKCkpKSx0Lm1haW5TZXJpZXMoKS5wcm9wZXJ0aWVzKCkuY2hpbGRzKCkuaW50ZXJ2YWwuc3Vic2NyaWJlKHRoaXMsdGhpcy5fcHJvY2Vzc0hpYmVybmF0ZSl9c3RhcnQoKXt0aGlzLl9pc1N0YXJ0ZWQ9ITAsdGhpcy5fcHJvY2Vzc0hpYmVybmF0ZSgpfXJlc3RhcnQoKXt0aGlzLl9jbGVhckRhdGEoKSwoMCxyLmlzRmVhdHVyZXNldEVuYWJsZWQpKCJzdG9wX3N0dWR5X29uX3Jlc3RhcnQiKSYmdGhpcy5zdG9wKCksdGhpcy5zdGFydCgpfWlzU3RhcnRlZCgpe3JldHVybiB0aGlzLl9pc1N0YXJ0ZWR9c3RvcCgpe3RoaXMuX2lzU3RhcnRlZD0hMSxudWxsIT09dGhpcy5fc3R1ZHlTb3VyY2UmJnRoaXMuX3N0dWR5U291cmNlLnN0b3AoKX1pc0hvdmVyZWRFbmFibGVkKCl7cmV0dXJuITF9cGFuZVZpZXdzKGUpe3JldHVybiB0aGlzLl9wYW5lVmlld3N9dXBkYXRlQWxsVmlld3MoZSl7dGhpcy5fcGFuZVZpZXdzLmZvckVhY2goKHQ9PnQudXBkYXRlKGUpKSl9dXBkYXRlVmlld3NGb3JQYW5lKGUsdCl7dGhpcy51cGRhdGVBbGxWaWV3cyh0KX1kZXN0cm95KCl7dGhpcy5fZGVzdHJveWVkPSEwLG51bGwhPT10aGlzLl9zdHVkeVNvdXJjZSYmKHRoaXMuX3N0dWR5U291cmNlLmRhdGFDbGVhcmVkKCkudW5zdWJzY3JpYmVBbGwodGhpcyksdGhpcy5fc3R1ZHlTb3VyY2UuZGF0YVVwZGF0ZWQoKS51bnN1YnNjcmliZUFsbCh0aGlzKSx0aGlzLl9zdHVkeVNvdXJjZS5kZXN0cm95KCksdGhpcy5fc3R1ZHlTb3VyY2U9bnVsbCksdGhpcy5fbW9kZWwudGltZVNjYWxlKCkubG9naWNhbFJhbmdlQ2hhbmdlZCgpLnVuc3Vic2NyaWJlQWxsKHRoaXMpLHRoaXMuX21vZGVsLnRpbWVTY2FsZSgpLm9uUmVzZXQoKS51bnN1YnNjcmliZUFsbCh0aGlzKSx0aGlzLl9tb2RlbC5tYWluU2VyaWVzKCkucHJvcGVydGllcygpLmNoaWxkcygpLmludGVydmFsLnVuc3Vic2NyaWJlQWxsKHRoaXMpLHRoaXMuX3Byb3BlcnRpZXMudW5zdWJzY3JpYmVBbGwodGhpcyl9c2VyaWVzKCl7cmV0dXJuIHRoaXMuX21vZGVsLm1haW5TZXJpZXMoKX1wcmljZVNjYWxlKCl7cmV0dXJuIHRoaXMuc2VyaWVzKCkucHJpY2VTY2FsZSgpfWdyYXBoaWNzKCl7cmV0dXJuIHRoaXMuX2xvYWRlZEdyYXBoaWNzfHwoMCxpLmVuc3VyZU5vdE51bGwpKHRoaXMuX3N0dWR5U291cmNlKS5ncmFwaGljcygpfXZhbHVlQXQoZSx0KXtyZXR1cm4gbnVsbH1wcm9wZXJ0aWVzKCl7cmV0dXJuIHRoaXMuX3Byb3BlcnRpZXN9Z3JhcGhpY3NJbmZvKCl7cmV0dXJuKDAsaS5lbnN1cmVOb3ROdWxsKSh0aGlzLl9tZXRhSW5mbykuZ3JhcGhpY3N9Zmlyc3RWYWx1ZShlKXtyZXR1cm4gdGhpcy5fbW9kZWwubWFpblNlcmllcygpLmZpcnN0VmFsdWUoKX1mb3JtYXR0ZXIoKXtyZXR1cm4gZH1zdGF0ZURhdGEoKXtyZXR1cm4gbnVsbCE9PXRoaXMuX21ldGFJbmZvP3tncmFwaGljczooMCwKYS5zYXZlU3R1ZHlHcmFwaGljcykodGhpcy5ncmFwaGljcygpLHRoaXMuX21vZGVsLnRpbWVTY2FsZSgpLnZpc2libGVCYXJzU3RyaWN0UmFuZ2UoKSksbWV0YUluZm86dGhpcy5fbWV0YUluZm8uc3RhdGUoKX06bnVsbH1yZXN0b3JlU3RhdGVEYXRhKGUpe3ZvaWQgMCE9PWUmJih0aGlzLl9sb2FkU3R1ZHlHcmFwaGljcyhlLmdyYXBoaWNzKSx0aGlzLl9zZXRNZXRhSW5mbyhuZXcgbi5TdHVkeU1ldGFJbmZvKGUubWV0YUluZm8pKSx0aGlzLl9jcmVhdGVQYW5lVmlld3MoKSl9bWV0YUluZm8oKXtyZXR1cm4oMCxpLmVuc3VyZU5vdE51bGwpKHRoaXMuX21ldGFJbmZvKX1hc3luYyBfcmVxdWVzdEFuZFByb2Nlc3NNZXRhSW5mbygpe2lmKHRoaXMuX21vZGVsLmlzU25hcHNob3QoKSlyZXR1cm47Y29uc3QgZT1hd2FpdCgwLGguc3R1ZHlNZXRhSW5mb1JlcG9zaXRvcnkpKCkuZmluZEJ5SWQoe3R5cGU6ImphdmEiLHN0dWR5SWQ6IlNlc3Npb25zQHR2LWJhc2ljc3R1ZGllcyJ9KTt0aGlzLl9kZXN0cm95ZWR8fG51bGw9PT10aGlzLl9sb2FkZWRHcmFwaGljcyYmKHRoaXMuX3NldE1ldGFJbmZvKGUpLG51bGwhPT10aGlzLl9tZXRhSW5mbyYmKHRoaXMuX3N0dWR5U291cmNlPW5ldyBvLkV4dGVuZGVkU3R1ZHlEYXRhU291cmNlKHRoaXMuX21vZGVsLmNoYXJ0QXBpKCksdGhpcy5fbW9kZWwubWFpblNlcmllcygpLCJzZXNzaW9uc18iLHRoaXMuX21ldGFJbmZvKSx0aGlzLl9jcmVhdGVQYW5lVmlld3MoKSx0aGlzLl9zdHVkeVNvdXJjZS5kYXRhQ2xlYXJlZCgpLnN1YnNjcmliZSh0aGlzLHRoaXMudXBkYXRlQWxsVmlld3MuYmluZCh0aGlzLCgwLGMuc291cmNlQ2hhbmdlRXZlbnQpKHRoaXMuaWQoKSkpKSx0aGlzLl9zdHVkeVNvdXJjZS5kYXRhVXBkYXRlZCgpLnN1YnNjcmliZSh0aGlzLHRoaXMudXBkYXRlQWxsVmlld3MuYmluZCh0aGlzLCgwLGMuc291cmNlQ2hhbmdlRXZlbnQpKHRoaXMuaWQoKSkpKSx0aGlzLl9zdHVkeVNvdXJjZS5zZXRJbnB1dHMoe30pLHRoaXMuX3Byb2Nlc3NIaWJlcm5hdGUoKSkpfV9sb2FkU3R1ZHlHcmFwaGljcyhlKXtjb25zdCB0PWUuYmFja2dyb3VuZHM7aWYodm9pZCAwIT09dCl7Y29uc3QgZT10LmZpbmRJbmRleCgoZT0+ImluU2Vzc2lvbiI9PT1lLnN0eWxlSWQpKTstMSE9PWUmJnQuc3BsaWNlKGUsMSl9dGhpcy5fbG9hZGVkR3JhcGhpY3M9KDAsYS5sb2FkU3R1ZHlHcmFwaGljcykoZSl9X3NldE1ldGFJbmZvKGUpe2NvbnN0IHQ9ZS5ncmFwaGljcy5iYWNrZ3JvdW5kczt2b2lkIDAhPT10JiZ2b2lkIDAhPT10LmluU2Vzc2lvbiYmZGVsZXRlIHQuaW5TZXNzaW9uLHRoaXMuX21ldGFJbmZvPWV9X2NsZWFyRGF0YSgpe251bGwhPT10aGlzLl9zdHVkeVNvdXJjZSYmdGhpcy5fc3R1ZHlTb3VyY2UuY2xlYXJEYXRhKCl9X2NyZWF0ZVBhbmVWaWV3cygpe2NvbnN0IGU9e2RvdWJsZUNsaWNrSGFuZGxlcjp0aGlzLl9kb3VibGVDbGlja0hhbmRsZXJ9OygwLGEuY3JlYXRlR3JhcGhpY3NQYW5lVmlld3MpKHRoaXMsdGhpcy5fbW9kZWwsZSkudGhlbigoZT0+e3RoaXMuX3BhbmVWaWV3cz1lLnJlZ3VsYXJQYW5lVmlld3MsdGhpcy5fbW9kZWwubGlnaHRVcGRhdGUoKX0pKX1fb25Qcm9wZXJ0aWVzQ2hhbmdlZCgpe3RoaXMuX3Byb2Nlc3NIaWJlcm5hdGUoKSx0aGlzLnVwZGF0ZUFsbFZpZXdzKCgwLGMuc291cmNlQ2hhbmdlRXZlbnQpKHRoaXMuaWQoKSkpfV9wcm9jZXNzSGliZXJuYXRlKCl7aWYobnVsbCE9PXRoaXMuX3N0dWR5U291cmNlKXtjb25zdCBlPXRoaXMuX2NhbkJlSGliZXJuYXRlZCgpLHQ9dGhpcy5faXNIaWJlcm5hdGVkKCkscz10aGlzLl9zdHVkeVNvdXJjZS5pc1N0YXJ0ZWQoKTshdCYmZSYmcz90aGlzLl9zdHVkeVNvdXJjZS5zdG9wKCk6IXR8fGV8fHN8fHRoaXMuX3N0dWR5U291cmNlLnN0YXJ0KCl9fV9jYW5CZUhpYmVybmF0ZWQoKXtpZih0aGlzLl9tb2RlbC5tYWluU2VyaWVzKCkuaXNEV00oKSlyZXR1cm4hMDtjb25zdCBlPXRoaXMuX3Byb3BlcnRpZXMuY2hpbGRzKCkuc2Vzc2lvbkhpZ2hsaWdodC5jaGlsZHMoKSx7cHJlTWFya2V0OnQscG9zdE1hcmtldDpzLGVsZWN0cm9uaWM6aSxvdXRPZlNlc3Npb246cn09ZS5iYWNrZ3JvdW5kcy5jaGlsZHMoKSx7c2Vzc0JyZWFrczpufT1lLnZlcnRsaW5lcy5jaGlsZHMoKSxvPXQuY2hpbGRzKCkuYXZhaWxhYmxlLnZhbHVlKCkmJnQuY2hpbGRzKCkudmlzaWJsZS52YWx1ZSgpfHxzLmNoaWxkcygpLmF2YWlsYWJsZS52YWx1ZSgpJiZzLmNoaWxkcygpLnZpc2libGUudmFsdWUoKXx8aS5jaGlsZHMoKS5hdmFpbGFibGUudmFsdWUoKSYmaS5jaGlsZHMoKS52aXNpYmxlLnZhbHVlKCl8fHIuY2hpbGRzKCkuYXZhaWxhYmxlLnZhbHVlKCkmJnIuY2hpbGRzKCkudmlzaWJsZS52YWx1ZSgpLGE9bi5jaGlsZHMoKS5hdmFpbGFibGUudmFsdWUoKSYmbi5jaGlsZHMoKS52aXNpYmxlLnZhbHVlKCk7cmV0dXJuIW8mJiFhfV9pc0hpYmVybmF0ZWQoKXtyZXR1cm4gdGhpcy5faXNTdGFydGVkJiYobnVsbD09PXRoaXMuX3N0dWR5U291cmNlfHwhdGhpcy5fc3R1ZHlTb3VyY2UuaXNTdGFydGVkKCkpfX19LDkwOTU5MyhlLHQscyl7InVzZSBzdHJpY3QiO3MuZCh0LHtzdHVkeV9FU0QkVFZfRElWSURFTkRTOigpPT5zZSxzdHVkeV9FU0QkVFZfRUFSTklOR1M6KCk9PnJlLHN0dWR5X0VTRCRUVl9TUExJVFM6KCk9PmllfSk7dmFyIGk9cyg1MDU1Nikscj1zKDk1MjkwMCksbj1zKDU1NjkxMSksbz1zKDYwMTg0MSksYT1zKDg3MzU3MyksbD1zKDIyODgyKSx1PXMoNDA4Mzc3KTt2YXIgYyxoPXMoNzYzKSxkPXMoMjYwNjkpOyFmdW5jdGlvbihlKXtlLlBvc2l0aXZlRWFybmluZ0ZpbGxQYXRoPSJNMTEuMDggMS4zNmEzIDMgMCAwIDEgMi44NiAwbDcuNDkgNC4wNkEzIDMgMCAwIDEgMjMgOC4wNlYyMGEzIDMgMCAwIDEtMyAzSDVhMyAzIDAgMCAxLTMtM1Y4LjA2YTMgMyAwIDAgMSAxLjU3LTIuNjR6IiwKZS5Qb3NpdGl2ZUVhcm5pbmdTdHJva2VQYXRoPSJNMTEuOSAyLjkxYy4zNy0uMjIuODQtLjIyIDEuMjIgMGw3LjUgNC4yNWMuMzkuMjIuNjMuNjQuNjMgMS4wOVYyMGMwIC42OS0uNTYgMS4yNS0xLjI1IDEuMjVINWMtLjY5IDAtMS4yNS0uNTYtMS4yNS0xLjI1VjguMjVjMC0uNDUuMjQtLjg3LjYzLTEuMDl6IixlLlBvc2l0aXZlRWFybmluZ0xhYmVsUGF0aD0iTTEwIDE4VjloNS41djEuNWgtNHYyLjI1aDN2MS41aC0zdjIuMjVoNFYxOHoiLGUuTmVnYXRpdmVFYXJuaW5nRmlsbFBhdGg9Ik0xMS4wOCAyMy42NGEzIDMgMCAwIDAgMi44NiAwbDcuNDktNC4wNkEzIDMgMCAwIDAgMjMgMTYuOTRWNWEzIDMgMCAwIDAtMy0zSDVhMyAzIDAgMCAwLTMgM3YxMS45NGEzIDMgMCAwIDAgMS41NyAyLjY0eiIsZS5OZWdhdGl2ZUVhcm5pbmdTdHJva2VQYXRoPSJNMTEuOSAyMi4xYy4zNy4yLjg0LjIgMS4yMiAwbDcuNS00LjI2Yy4zOS0uMjIuNjMtLjYzLjYzLTEuMDhWNWMwLS42OS0uNTYtMS4yNS0xLjI1LTEuMjVINWMtLjY5IDAtMS4yNS41Ni0xLjI1IDEuMjV2MTEuNzZjMCAuNDUuMjQuODYuNjMgMS4wOHoiLGUuTmVnYXRpdmVFYXJuaW5nTGFiZWxQYXRoPSJNMTAgMTdWOGg1LjJ2MS41aC0zLjd2Mi4yNWgyLjd2MS41aC0yLjd2Mi4yNWgzLjdWMTd6IixlLkRlZmF1bHRFYXJuaW5nRmlsbFBhdGg9Ik0yIDVhMyAzIDAgMCAxIDMtM2gxNWEzIDMgMCAwIDEgMyAzdjE1YTMgMyAwIDAgMS0zIDNINWEzIDMgMCAwIDEtMy0zeiIsZS5EZWZhdWx0RWFybmluZ1N0cm9rZVBhdGg9Ik01IDMuNWgxNWMuODMgMCAxLjUuNjcgMS41IDEuNXYxNWMwIC44My0uNjcgMS41LTEuNSAxLjVINUExLjUgMS41IDAgMCAxIDMuNSAyMFY0Ljg1QTEuNSAxLjUgMCAwIDEgNSAzLjVaIixlLkRlZmF1bHRFYXJuaW5nTGFiZWxQYXRoPSJNMTAgMTdWOGg1LjV2MS41aC00djIuMjVoM3YxLjVoLTN2Mi4yNWg0VjE3eiJ9KGN8fChjPXt9KSk7dmFyIF89cyg3MzY1MzEpLHA9cyg2MzcxMDQpLHk9cyg3ODY0MzYpO2Z1bmN0aW9uIG0oZSx0LHMpe0FycmF5LmlzQXJyYXkodCk/dC5mb3JFYWNoKCh0PT57bShlLHQscyl9KSk6ImZpbGwiPT09dC5tb2RlPyhlLmZpbGxTdHlsZT1zLGUuZmlsbCh0LnBhdGgpKToic3Ryb2tlIj09PXQubW9kZSYmKGUuc3Ryb2tlU3R5bGU9cyxlLnN0cm9rZSh0LnBhdGgpKX1mdW5jdGlvbiB2KGUsdCl7cmV0dXJue2JhY2tncm91bmQ6e2JvZHlQYXRoOntwYXRoOm5ldyBQYXRoMkQoZSksbW9kZToiZmlsbCJ9fSxmb3JlZ3JvdW5kOntib2R5UGF0aDp7cGF0aDpuZXcgUGF0aDJEKHQpLG1vZGU6ImZpbGwifSxib3JkZXJQYXRoOntwYXRoOm5ldyBQYXRoMkQodCksbW9kZToic3Ryb2tlIn19fX1jb25zdCBmPXYoIk0xMS4wOCAxLjM2YTMgMyAwIDAgMSAyLjg2IDBsNy40OSA0LjA2QTMgMyAwIDAgMSAyMyA4LjA2VjIwYTMgMyAwIDAgMS0zIDNINWEzIDMgMCAwIDEtMy0zVjguMDZhMyAzIDAgMCAxIDEuNTctMi42NHoiLCJNMTEuOSAyLjkxYy4zNy0uMjIuODQtLjIyIDEuMjIgMGw3LjUgNC4yNWMuMzkuMjIuNjMuNjQuNjMgMS4wOVYyMGMwIC42OS0uNTYgMS4yNS0xLjI1IDEuMjVINWMtLjY5IDAtMS4yNS0uNTYtMS4yNS0xLjI1VjguMjVjMC0uNDUuMjQtLjg3LjYzLTEuMDl6IiksUz12KCJNMTEuMDggMjMuNjRhMyAzIDAgMCAwIDIuODYgMGw3LjQ5LTQuMDZBMyAzIDAgMCAwIDIzIDE2Ljk0VjVhMyAzIDAgMCAwLTMtM0g1YTMgMyAwIDAgMC0zIDN2MTEuOTRhMyAzIDAgMCAwIDEuNTcgMi42NHoiLCJNMTEuOSAyMi4xYy4zNy4yLjg0LjIgMS4yMiAwbDcuNS00LjI2Yy4zOS0uMjIuNjMtLjYzLjYzLTEuMDhWNWMwLS42OS0uNTYtMS4yNS0xLjI1LTEuMjVINWMtLjY5IDAtMS4yNS41Ni0xLjI1IDEuMjV2MTEuNzZjMCAuNDUuMjQuODYuNjMgMS4wOHoiKSxnPXYoIk0yIDVhMyAzIDAgMCAxIDMtM2gxNWEzIDMgMCAwIDEgMyAzdjE1YTMgMyAwIDAgMS0zIDNINWEzIDMgMCAwIDEtMy0zeiIsIk01IDMuNWgxNWMuODMgMCAxLjUuNjcgMS41IDEuNXYxNWMwIC44My0uNjcgMS41LTEuNSAxLjVINUExLjUgMS41IDAgMCAxIDMuNSAyMFY0Ljg1QTEuNSAxLjUgMCAwIDEgNSAzLjVaIiksYj17YmFja2dyb3VuZDp7Ym9keVBhdGg6W3twYXRoOm5ldyBQYXRoMkQoIk0yMCAyYTMgMyAwIDAgMSAzIDN2MTVhMyAzIDAgMCAxLTMgM0g1YTMgMyAwIDAgMS0zLTN2LTQuODNxLS42My4xNi0xIC42M1Y5LjdxLjM2LS40MiAxLS42MlY1YTMgMyAwIDAgMSAzLTN6IiksbW9kZToiZmlsbCJ9XX0sZm9yZWdyb3VuZDp7Ym9keVBhdGg6W3twYXRoOm5ldyBQYXRoMkQoIk0yMCAzYTIgMiAwIDAgMSAyIDJ2MTVhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJ2LTQuODRhMS45NSAxLjk1IDAgMCAwLTIgLjY0VjkuN2EyLjEgMi4xIDAgMCAxIDItLjY2VjVjMC0xLjEuOS0yIDItMnoiKSxtb2RlOiJmaWxsIn1dLGJvcmRlclBhdGg6W3twYXRoOm5ldyBQYXRoMkQoIk0yMCAzYTIgMiAwIDAgMSAyIDJ2MTVhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJ2LTQuODRjLjQ4LjE0Ljk4LjQ1IDEuNS42NVYyMGMwIC4yOC4yMi41LjUuNWgxNWEuNS41IDAgMCAwIC41LS41VjVhLjUuNSAwIDAgMC0uNS0uNUg1YS41LjUgMCAwIDAtLjUuNXY0LjY1Yy0uNDgtLjIyLS45Ny0uNS0xLjUtLjYxVjVjMC0xLjEuOS0yIDItMnoiKSxtb2RlOiJmaWxsIn0se3BhdGg6bmV3IFBhdGgyRCgiTTIuNjMgMTIuNzVjMS4wMSAwIDEuOTIuOSAyLjc5LjlxMS4wNS0uMDIgMS41OC0uN3YxLjM0Yy0uMzUuNC0uODkuNzEtMS42Mi43MS0xLjAyIDAtMS45My0uOS0yLjgtLjktLjcgMC0xLjIzLjI2LTEuNTguN3YtMS4zNGMuMzUtLjQuODktLjcxIDEuNjMtLjcxTTIuNjMgMTBjMS4wMSAwIDEuOTIuOSAyLjc5LjkuNyAwIDEuMjMtLjI2IDEuNTgtLjd2MS40Yy0uMzUuNC0uODkuNy0xLjYyLjctMS4wMiAwLTEuOTMtLjktMi44LS45LS43IDAtMS4yMy4yNi0xLjU4Ljd2LTEuNGMuMzUtLjM5Ljg5LS43IDEuNjMtLjciKSxtb2RlOiJmaWxsIn1dLGFjdGl2ZVBhdGg6ewpwYXRoOm5ldyBQYXRoMkQoIk0yLjYzIDEyLjc1YzEuMDEgMCAxLjkyLjkgMi43OS45cTEuMDUtLjAyIDEuNTgtLjd2MS4zNGMtLjM1LjQtLjg5LjcxLTEuNjIuNzEtMS4wMiAwLTEuOTMtLjktMi44LS45LS43IDAtMS4yMy4yNi0xLjU4Ljd2LTEuMzRjLjM1LS40Ljg5LS43MSAxLjYzLS43MU0yLjYzIDEwYzEuMDEgMCAxLjkyLjkgMi43OS45LjcgMCAxLjIzLS4yNiAxLjU4LS43djEuNGMtLjM1LjQtLjg5LjctMS42Mi43LTEuMDIgMC0xLjkzLS45LTIuOC0uOS0uNyAwLTEuMjMuMjYtMS41OC43di0xLjRjLjM1LS4zOS44OS0uNyAxLjYzLS43IiksbW9kZToiZmlsbCJ9fX0sdz17YmFja2dyb3VuZDp7cGF0aDpuZXcgUGF0aDJEKCJNMjcgNEMyNi45OTk5IDEuMjM4NzkgMjQuNzYxMiAtMC45OTk4NTMgMjIgLTFDMTkuMjM4NyAtMSAxNy4wMDAxIDEuMjM4NjkgMTcgNEMxNyA2Ljc2MTQyIDE5LjIzODYgOSAyMiA5QzI0Ljc2MTMgOC45OTk4NSAyNyA2Ljc2MTMzIDI3IDRaTTIyLjUwMiAwLjk5OTk5OVY0Ljk5NjA5SDE5LjVWMy45OTYwOUgyMS41MDJWMC45OTk5OTlIMjIuNTAyWk0xNS4zNDg2IDAuMjk3ODUxTDE2LjA2MzUgMC45OTcwNjlMMTkuMjkxIC0yLjMwMDc4TDE4LjU3NjIgLTNMMTUuMzQ4NiAwLjI5Nzg1MVpNMjQuNzA5IC0yLjMwMDc4TDI3LjkzNjUgMC45OTcwNjlMMjguNjUwNCAwLjI5Nzg1MUwyNS40MjI5IC0zTDI0LjcwOSAtMi4zMDA3OFpNMTYuMzU3NCAxLjk1MzEyQzE2LjAxODcgMi4wNTY5MyAxNS42MzUzIDEuOTc3MDYgMTUuMzY0MyAxLjcxMTkxTDE0LjY0OTQgMS4wMTI2OUMxNC40NTk4IDAuODI3MjA4IDE0LjM1MTUgMC41NzM4NDEgMTQuMzQ4NiAwLjMwODU5M0MxNC4zNDU4IDAuMDQzNDk3MSAxNC40NDg0IC0wLjIxMTg0OSAxNC42MzM4IC0wLjQwMTM2OEwxNy44NjEzIC0zLjY5OTIyQzE4LjI0NzUgLTQuMDkzODUgMTguODgwNyAtNC4xMDA5NiAxOS4yNzU0IC0zLjcxNDg0TDE5Ljk5MDIgLTMuMDE1NjNDMjAuMTc5OSAtMi44MzAxNCAyMC4yODgxIC0yLjU3Njc3IDIwLjI5MSAtMi4zMTE1MkMyMC4yOTM1IC0yLjA4MjY2IDIwLjIxNjMgLTEuODYxODUgMjAuMDc2MiAtMS42ODM1OUMyMC42ODAyIC0xLjg4Nzk5IDIxLjMyNyAtMiAyMiAtMkMyMi42NzI0IC0xLjk5OTk2IDIzLjMxODQgLTEuODg3NjMgMjMuOTIxOSAtMS42ODM1OUMyMy42MTA2IC0yLjA3OTUxIDIzLjY0MDggLTIuNjU1MTYgMjQuMDA4OCAtMy4wMTU2M0wyNC43MjI3IC0zLjcxNDg0TDI0Ljc5NjkgLTMuNzgwMjdDMjQuOTc2NCAtMy45MjQzIDI1LjIwMTQgLTQuMDAyNDYgMjUuNDMzNiAtNEMyNS42OTg4IC0zLjk5NzE1IDI1Ljk1MjIgLTMuODg4NzggMjYuMTM3NyAtMy42OTkyMkwyOS4zNjUyIC0wLjQwMTM2OEMyOS43NTEyIC0wLjAwNjc2MzAxIDI5Ljc0NDkgMC42MjY0MTQgMjkuMzUwNiAxLjAxMjY5TDI4LjYzNjcgMS43MTE5MUMyOC40NDcyIDEuODk3NTUgMjguMTkxMSAxLjk5OTg3IDI3LjkyNTggMS45OTcwN0MyNy44MjgyIDEuOTk2MDIgMjcuNzMyMiAxLjk4MDUzIDI3LjY0MDYgMS45NTIxNUMyNy44NzI3IDIuNTkxMjMgMjggMy4yODA3NSAyOCA0QzI4IDcuMzEzNjcgMjUuMzEzNSA5Ljk5OTgyIDIyIDEwQzE4LjY4NjMgMTAgMTYgNy4zMTM3MSAxNiA0QzE2IDMuMjgxMzEgMTYuMTI1NyAyLjU5MTggMTYuMzU3NCAxLjk1MzEyWiIpLG1vZGU6ImZpbGwifSxmb3JlZ3JvdW5kOntwYXRoOm5ldyBQYXRoMkQoIk0yMiAtMUMyNC43NjEyIC0wLjk5OTg1MyAyNi45OTk5IDEuMjM4NzkgMjcgNEMyNyA2Ljc2MTMzIDI0Ljc2MTMgOC45OTk4NSAyMiA5QzE5LjIzODYgOSAxNyA2Ljc2MTQyIDE3IDRDMTcuMDAwMSAxLjIzODY5IDE5LjIzODcgLTEgMjIgLTFaTTIxLjUwMiAwLjk5OTk5OVYzLjk5NjA5SDE5LjVWNC45OTYwOUgyMi41MDJWMC45OTk5OTlIMjEuNTAyWk0xOS4yOTEgLTIuMzAwNzhMMTYuMDYzNSAwLjk5NzA2OUwxNS4zNDg2IDAuMjk3ODUxTDE4LjU3NjIgLTNMMTkuMjkxIC0yLjMwMDc4Wk0yOC42NTA0IDAuMjk3ODUxTDI3LjkzNjUgMC45OTcwNjlMMjQuNzA5IC0yLjMwMDc4TDI1LjQyMjkgLTNMMjguNjUwNCAwLjI5Nzg1MVoiKSxtb2RlOiJmaWxsIn19O2Z1bmN0aW9uIEMoZSx0LHMsaSl7ZS5zYXZlKCksZS5zZXRUcmFuc2Zvcm0odCkscy5sb2xsaXBvcC5maWxsQ2lyY2xlJiZzLmxvbGxpcG9wLmJhY2tncm91bmRDb2xvciYmbShlLGkuYmFja2dyb3VuZC5ib2R5UGF0aCxzLmxvbGxpcG9wLmJhY2tncm91bmRDb2xvcikscy5sb2xsaXBvcC5maWxsQ2lyY2xlJiZzLmxvbGxpcG9wLmZpbGxTdHlsZSYmbShlLGkuZm9yZWdyb3VuZC5ib2R5UGF0aCxzLmxvbGxpcG9wLmZpbGxTdHlsZSksZS5saW5lV2lkdGg9cy5sb2xsaXBvcC5saW5lV2lkdGgsKDAseS5zZXRMaW5lU3R5bGUpKGUsZC5MSU5FU1RZTEVfU09MSUQpLGkuZm9yZWdyb3VuZC5ib3JkZXJQYXRoJiZtKGUsaS5mb3JlZ3JvdW5kLmJvcmRlclBhdGgscy5sb2xsaXBvcC5zdHJva2VTdHlsZSkscy5sb2xsaXBvcC5hY3RpdmUmJmkuZm9yZWdyb3VuZC5hY3RpdmVQYXRoJiZtKGUsaS5mb3JlZ3JvdW5kLmFjdGl2ZVBhdGgscy5sb2xsaXBvcC50ZXh0LnN0cm9rZVN0eWxlKSxzLmxvbGxpcG9wLmhhc0FsZXJ0JiYobShlLHcuYmFja2dyb3VuZCxzLmxvbGxpcG9wLmJhY2tncm91bmRDb2xvcnx8InRyYW5zcGFyZW50IiksbShlLHcuZm9yZWdyb3VuZCxzLmxvbGxpcG9wLnN0cm9rZVN0eWxlKSksZS5yZXN0b3JlKCl9Y2xhc3MgUCBleHRlbmRzIHAuTG9sbGlwb3BSZW5kZXJlcntfaGl0VGVzdEJveCgpe2NvbnN0IGU9c3VwZXIuX2hpdFRlc3RCb3goKTtyZXR1cm4oMCxfLmJveCkoZS5taW4uYWRkKCgwLF8ucG9pbnQpKDIsMikpLGUubWF4LnN1YnRyYWN0KCgwLF8ucG9pbnQpKDIsMikpKX1fZHJhd0xvbGxpcG9wKGUpe2NvbnN0IHQ9dGhpcy5fZGF0YS5zdHlsZTtzd2l0Y2godC50eXBlKXtjYXNlIlBvc2l0aXZlIjohZnVuY3Rpb24oZSx0LHMpe0MoZSx0LHMsZil9KGUsdGhpcy5fbWF0cml4LHQpO2JyZWFrO2Nhc2UiTmVnYXRpdmUiOiFmdW5jdGlvbihlLHQscyl7QyhlLHQscyxTKX0oZSx0aGlzLl9tYXRyaXgsdCk7YnJlYWsKO2Nhc2UiRXN0aW1hdGVkRGF0ZSI6IWZ1bmN0aW9uKGUsdCxzKXtDKGUsdCxzLGIpfShlLHRoaXMuX21hdHJpeCx0KTticmVhaztkZWZhdWx0OiFmdW5jdGlvbihlLHQscyl7QyhlLHQscyxnKX0oZSx0aGlzLl9tYXRyaXgsdCl9fV9kcmF3TGFiZWwoZSl7bGV0IHQ7Y29uc3Qgcz10aGlzLl9kYXRhLnN0eWxlO3N3aXRjaChzLnR5cGUpe2Nhc2UiUG9zaXRpdmUiOnQ9bmV3IFBhdGgyRCgiTTEwIDE4VjloNS41djEuNWgtNHYyLjI1aDN2MS41aC0zdjIuMjVoNFYxOHoiKTticmVhaztjYXNlIkVzdGltYXRlZERhdGUiOnQ9bmV3IFBhdGgyRCgiTTEwIDE3VjhoNS41djEuNWgtNHYyLjI1aDN2MS41aC0zdjIuMjVoNFYxN3oiKTticmVhaztkZWZhdWx0OnQ9bmV3IFBhdGgyRCgiTTEwIDE3VjhoNS4ydjEuNWgtMy43djIuMjVoMi43djEuNWgtMi43djIuMjVoMy43VjE3eiIpfSgwLHAuZHJhd0xhYmVsKShlLHQsdGhpcy5fbWF0cml4LHtmaWxsQ29sb3I6cy5sb2xsaXBvcC50ZXh0LnN0cm9rZVN0eWxlfSl9fWNsYXNzIHggZXh0ZW5kcyBwLkxvbGxpcG9wUmVuZGVyZXJ7X2RyYXdMYWJlbChlKXsoMCxwLmRyYXdMYWJlbCkoZSx4Ll9sYWJlbFBhdGgsdGhpcy5fbWF0cml4LHtmaWxsQ29sb3I6dGhpcy5fZGF0YS5zdHlsZS5sb2xsaXBvcC50ZXh0LnN0cm9rZVN0eWxlfSl9fXguX2xhYmVsUGF0aD1uZXcgUGF0aDJEKCJNOS42OCAxNi42NnEuNzcuMzQgMS44Mi4zNCAxLjA3IDAgMS44Ni0uMzcuNzgtLjM4IDEuMjEtMS4wNC40My0uNjcuNDMtMS42IDAtLjc0LS4yOC0xLjI1YTIgMiAwIDAgMC0uODYtLjg3IDUgNSAwIDAgMC0xLjU0LS41NmwtLjk3LS4yMnEtLjU1LS4xMy0uOS0uM2ExLjMgMS4zIDAgMCAxLS41MS0uNDUgMSAxIDAgMCAxLS4xNy0uNnEwLS40LjIyLS43dC42MS0uNDVxLjM5LS4xNi44OC0uMTYuNTEgMCAuOS4xNnQuNjIuNDVxLjE3LjIuMjUuNDZoMS41NnEtLjA4LS42Ni0uNDUtMS4xOS0uNDItLjYtMS4xNS0uOTVBNCA0IDAgMCAwIDExLjUgN3EtLjk3IDAtMS43Mi4zNi0uNzYuMzYtMS4xOCAxdC0uNDIgMS41cTAgLjcuMjcgMS4yNS4yOS41NC44Ni45MS42LjM3IDEuNS41OGwuOTYuMnEuODguMjEgMS4yNi41NC4zNy4zMi4zNy44M3YuMDFxMCAuNDEtLjIzLjczLS4yNC4zLS42NS40OS0uNDIuMTctLjk2LjE3LS41NyAwLTEuMDEtLjE2LS40NS0uMTctLjcxLS40Ny0uMTgtLjItLjI1LS40NEg4cS4xLjY3LjQ3IDEuMi40NS42IDEuMjEuOTYiKTtjbGFzcyBEIGV4dGVuZHMgcC5Mb2xsaXBvcFJlbmRlcmVye19kcmF3TGFiZWwoZSl7KDAscC5kcmF3TGFiZWwpKGUsRC5fbGFiZWxQYXRoLHRoaXMuX21hdHJpeCx7ZmlsbENvbG9yOnRoaXMuX2RhdGEuc3R5bGUubG9sbGlwb3AudGV4dC5zdHJva2VTdHlsZX0pfX1ELl9sYWJlbFBhdGg9bmV3IFBhdGgyRCgiTTE0LjUgMTEuNWEzIDMgMCAwIDAtMy0zaC0ydjZoMlYxNkg4VjdoMy41YTQuNSA0LjUgMCAxIDEgMCA5di0xLjVhMyAzIDAgMCAwIDMtMyIpO3ZhciBJPXMoODg3MDI5KSxUPXMoMTg1MjcxKSxWPXMoNjQxNTkzKSxSPXMoMTE1MjkzKSxBPXMoNTY5Mzk4KSxMPXMoMTg2OTgzKSxFPXMoODA2NDE1KTtjb25zdCBNPVQudChudWxsLHtjb250ZXh0OiJGaW5hbmNpYWwgZXZlbnRzIGxvbGlwb3BzIn0scyg4NDQwMDkpKSxrPVQudChudWxsLHtjb250ZXh0OiJGaW5hbmNpYWwgZXZlbnRzIGxvbGlwb3BzIn0scyg0OTcwOTYpKTtmdW5jdGlvbiBCKGUpe2lmKCEoMCxBLmlzRmVhdHVyZUVuYWJsZWQpKCJhbGVydHMtb24tbG9sbGlwb3AiKXx8MD09PWUubGVuZ3RoKXJldHVybjtjb25zdCB0PVtNLC4uLmUuc2xpY2UoMCw1KS5tYXAoTildLGk9ZS5sZW5ndGgtNTt2YXIgcjtyZXR1cm4gaT4wJiZ0LnB1c2goKHI9aSxULnQobnVsbCx7cGx1cmFsOiJhbmQge2NvdW50fSBtb3JlIGFsZXJ0cyIscmVwbGFjZTp7Y291bnQ6ci50b1N0cmluZygpfSxjb3VudDpyLGNvbnRleHQ6IkZpbmFuY2lhbCBldmVudHMgbG9saXBvcHMifSxzKDUxODcxOSkpKSkse2ljb246TCx0b29sdGlwOnQuam9pbigiPGJyPiIpLGFyaWFMYWJlbDprfX1mdW5jdGlvbiBOKGUpe2NvbnN0IHQ9ZS5maW5hbmNpYWxDb25kaXRpb25Ub2tlbnMoKTtyZXR1cm4gdD9mdW5jdGlvbihlKXtjb25zdHtzZXJpZXM6dCxvcGVyYXRvcjpzLHZhbHVlOml9PWUscj1bKDAsVi5odG1sRXNjYXBlKSh0KSxgPHNwYW4gY2xhc3M9IiR7RS5vcGVyYXRvcn0iPiR7KDAsVi5odG1sRXNjYXBlKShzKX08L3NwYW4+YF07aSYmci5wdXNoKCgwLFYuaHRtbEVzY2FwZSkoaSkpO3JldHVybigwLFIuZm9yY2VSVExNYXJrc1N0cikoci5qb2luKCIgIikpfSh0KToiIn12YXIgRixPPXMoMjMyMzY0KSxIPXMoMTExOTUzKTtmdW5jdGlvbiBxKGUpe3JldHVybiBKU09OLnN0cmluZ2lmeShlLm1hcCgoZT0+e2NvbnN0IHQ9ZS5maW5hbmNpYWxDb25kaXRpb25Ub2tlbnMoKTtyZXR1cm5bZS5pZCgpLnZhbHVlKCksdD9bdC5zZXJpZXMsdC5vcGVyYXRvcix0LnZhbHVlXTpudWxsXX0pKSl9Y2xhc3Mgentjb25zdHJ1Y3RvcihlKXt0aGlzLl9tYXRjaGluZ0FsZXJ0cz1uZXcgTy5XYXRjaGVkVmFsdWUoW10pLHRoaXMuX21hdGNoaW5nQWxlcnRzU2lnbmF0dXJlPXEoW10pLHRoaXMuX3VwZGF0ZUFsZXJ0cz0oKT0+e2NvbnN0IGU9dGhpcy5fYWxlcnRzQ29sbGVjdGlvbi52YWx1ZSgpO2xldCB0PVtdO2lmKGUpe2NvbnN0IHM9KDAsSC51bndyYXBTaW1wbGVTeW1ib2wpKHRoaXMuX21vZGVsLm1haW5TZXJpZXMoKS5hY3R1YWxTeW1ib2woKSksaT0oMCxILnVud3JhcFNpbXBsZVN5bWJvbCkodGhpcy5fbW9kZWwubWFpblNlcmllcygpLnByb1N5bWJvbCgpKTt0PWUuYWxlcnRzKCkudmFsdWUoKS5maWx0ZXIoKGU9PihlLmNhbkRpc3BsYXlPbkVhcm5pbmdzTG9sbGlwb3Aocyl8fGUuY2FuRGlzcGxheU9uRWFybmluZ3NMb2xsaXBvcChpKSkmJmUuYWN0aXZlKCkudmFsdWUoKSkpfWNvbnN0IHM9cSh0KTtzIT09dGhpcy5fbWF0Y2hpbmdBbGVydHNTaWduYXR1cmUmJih0aGlzLl9tYXRjaGluZ0FsZXJ0c1NpZ25hdHVyZT1zLHRoaXMuX21hdGNoaW5nQWxlcnRzLnNldFZhbHVlKHQpKX0sdGhpcy5fbW9kZWw9ZSwKdGhpcy5fYWxlcnRzQ29sbGVjdGlvbj1lLmFsZXJ0c0NvbGxlY3Rpb24oKS5zcGF3bigpLHRoaXMuX2FsZXJ0c0NvbGxlY3Rpb24uc3Vic2NyaWJlKHRoaXMuX3VwZGF0ZUFsZXJ0c0xpc3QuYmluZCh0aGlzKSx7Y2FsbFdpdGhMYXN0OiEwfSksZS5tYWluU2VyaWVzKCkuZGF0YUV2ZW50cygpLnN5bWJvbFJlc29sdmVkKCkuc3Vic2NyaWJlKHRoaXMsdGhpcy5fdXBkYXRlQWxlcnRzKX1kZXN0cm95KCl7dGhpcy5fYWxlcnRzQ29sbGVjdGlvbi5kZXN0cm95KCksdGhpcy5fZGVzdHJveUFsZXJ0c0xpc3RTdWJzY3JpcHRpb25zPy4oKSx0aGlzLl9tb2RlbC5tYWluU2VyaWVzKCkuZGF0YUV2ZW50cygpLnN5bWJvbFJlc29sdmVkKCkudW5zdWJzY3JpYmUodGhpcyx0aGlzLl91cGRhdGVBbGVydHMpfW1hdGNoaW5nQWxlcnRzKCl7cmV0dXJuIHRoaXMuX21hdGNoaW5nQWxlcnRzLnJlYWRvbmx5KCl9X3VwZGF0ZUFsZXJ0c0xpc3QoZSl7dGhpcy5fZGVzdHJveUFsZXJ0c0xpc3RTdWJzY3JpcHRpb25zPy4oKSx0aGlzLl9kZXN0cm95QWxlcnRzTGlzdFN1YnNjcmlwdGlvbnM9dm9pZCAwLGUmJihlLmFsZXJ0cygpLnN1YnNjcmliZSh0aGlzLl91cGRhdGVBbGVydHMpLHRoaXMuX2Rlc3Ryb3lBbGVydHNMaXN0U3Vic2NyaXB0aW9ucz0oKT0+ZS5hbGVydHMoKS51bnN1YnNjcmliZSh0aGlzLl91cGRhdGVBbGVydHMpKSx0aGlzLl91cGRhdGVBbGVydHMoKX19IWZ1bmN0aW9uKGUpe2VbZS5Ib3ZlcmVkQ29sb3JUcmFuc3BhcmVuY3k9ODVdPSJIb3ZlcmVkQ29sb3JUcmFuc3BhcmVuY3kifShGfHwoRj17fSkpO2NvbnN0IFU9e2Rhcms6KDAsaS5nZXRIZXhDb2xvckJ5TmFtZSkoImNvbG9yLWNvbGQtZ3JheS05MDAiKSxsaWdodDooMCxpLmdldEhleENvbG9yQnlOYW1lKSgiY29sb3Itd2hpdGUiKX07Y2xhc3MgVyBleHRlbmRzIEkuTG9sbGlwb3BTdHVkeVBhbmVWaWV3QmFzZXt9Y2xhc3MgJCBleHRlbmRzIFd7Y29uc3RydWN0b3IoZSx0KXtzdXBlcihlLHQpLHRoaXMuX2VzZEFsZXJ0TW9kZWw9bmV3IHooZSksdGhpcy5fZXNkQWxlcnRJbmZvPSgwLHIuY29tYmluZSkoQix0aGlzLl9lc2RBbGVydE1vZGVsLm1hdGNoaW5nQWxlcnRzKCkud2Vha1JlZmVyZW5jZSgpKSx0aGlzLl9oYXNBbGVydD0oMCxyLmNvbWJpbmUpKGosdGhpcy5fZXNkQWxlcnRNb2RlbC5tYXRjaGluZ0FsZXJ0cygpLndlYWtSZWZlcmVuY2UoKSksdGhpcy5faGFzQWxlcnQuc3Vic2NyaWJlKHRoaXMuX29uSGFzQWxlcnRDaGFuZ2VkLmJpbmQodGhpcykpfWRlc3Ryb3koKXt0aGlzLl9lc2RBbGVydEluZm8uZGVzdHJveSgpLHRoaXMuX2hhc0FsZXJ0LmRlc3Ryb3koKSx0aGlzLl9lc2RBbGVydE1vZGVsLmRlc3Ryb3koKSxzdXBlci5kZXN0cm95KCl9c3R5bGVzKGUpe3JldHVybiBlP3UuZGFya1RoZW1lRWFybmluZ3NTdHlsZTp1LmxpZ2h0VGhlbWVFYXJuaW5nc1N0eWxlfWV4dHJhRGF0YShlKXtyZXR1cm4gZnVuY3Rpb24oZSl7Y29uc3QgdD1lLnR5cGUscz0xND09PXQsaT1lLnN0YW5kYXJkaXplZCxyPWUuZXN0aW1hdGUsbj1lLnBlcmlvZCxvPWUuZGF0ZSxhPXM/bnVsbDplLnJlcG9ydGVkLGw9bnVsbCE9YSYmbnVsbCE9cj9hLXI6bnVsbCx1PWUucmV2ZW51ZUVzdGltYXRlLGM9cz9udWxsOmUucmV2ZW51ZVZhbHVlO2xldCBoO3JldHVybiBudWxsIT10P3Q8MjA/aD0xMD09PXQ/IkVzdGltYXRlZERhdGUiOiJGdXR1cmUiOm51bGwhPT1sJiYoaD1sPDA/Ik5lZ2F0aXZlIjoiUG9zaXRpdmUiKTpudWxsIT09bD9oPWw8MD8iTmVnYXRpdmUiOiJQb3NpdGl2ZSI6bz5EYXRlLm5vdygpJiYoaD0iRnV0dXJlIikse3N0YW5kYXJkaXplZDppLHJlcG9ydGVkOmEsZXN0aW1hdGU6cixyZXZlbnVlVmFsdWU6YyxyZXZlbnVlRXN0aW1hdGU6dSxwZXJpb2Q6bixkYXRlOm8sdHlwZTpoLHRpbWVUeXBlOnQ/P3ZvaWQgMH19KHt0eXBlOmVbOF0sc3RhbmRhcmRpemVkOmVbMV0sZXN0aW1hdGU6ZVsyXSxwZXJpb2Q6ZVszXSxkYXRlOmVbNF0scmVwb3J0ZWQ6ZVs1XSxyZXZlbnVlRXN0aW1hdGU6ZVs2XSxyZXZlbnVlVmFsdWU6ZVs3XX0pfWFmdGVyVXBkYXRlKGUsdCxzLGkpe2NvbnN0IHI9dGhpcy5fc291cmNlLmdldEVzdGltYXRlKCk7aWYocil7Y29uc3Qgbj1yLnZhbHVlLnNsaWNlKCk7bls0XSo9MWUzLHRoaXMuYWRkTG9sbGlwb3AoZSx0LHMsaSxyLmluZGV4LG4pfX1nZXRTdHlsZShlKXtjb25zdCB0PXRoaXMuX2dldExvbGxpcG9wU3RhdHVzKGUpO2lmKHZvaWQgMD09PWUudHlwZSlyZXR1cm4gc3VwZXIuZ2V0U3R5bGUoZSx0KTtjb25zdCBzPXQ7bGV0IGk9cztlLnN0YWNrJiYoaSs9Il9zdGFjazoiK2Uuc3RhY2spO2xldCByPXRoaXMuX2dldFN0eWxlT2JqZWN0KGUudHlwZSxpKTtpZihudWxsIT09cilyZXR1cm4gdGhpcy5fd2l0aEFsZXJ0RmxhZyhyLGUudHlwZSk7aWYodGhpcy5fc3R5bGVzQ2FjaGV8fCh0aGlzLl9zdHlsZXNDYWNoZT17fSksIXRoaXMuX3N0eWxlc0NhY2hlW2ldKXtyPXRoaXMuX2dldFN0eWxlT2JqZWN0KGUudHlwZSxzKTtjb25zdCB0PSgwLG8uY2xvbmUpKHIpO3QmJihlLnN0YWNrJiYodC5sb2xsaXBvcC5pbmNIZWlnaHQ9MjUqZS5zdGFjayksdGhpcy5fc3R5bGVzQ2FjaGVbaV09dCl9cmV0dXJuIHRoaXMuX3dpdGhBbGVydEZsYWcodGhpcy5fc3R5bGVzQ2FjaGVbaV0sZS50eXBlKX1hc3luYyBfY3JlYXRlVG9vbHRpcENvbnRlbnQoZSx0KXtyZXR1cm4oMCxsLmNyZWF0ZUVhcm5pbmdzTG9sbGlwb3BUb29sdGlwQ29udGVudFByb3BzKShlLHRoaXMuX21vZGVsLHRoaXMuX21vZGVsLm1haW5TZXJpZXMoKS5zeW1ib2xJbmZvKCksdGhpcy5fbW9kZWwuZGFyaygpLnZhbHVlKCksKChlLHQpPT50aGlzLl9mb3JtYXREYXRlKGUsdCkpLHQsdGhpcy5fZ2V0RXNkQWxlcnRJbmZvKGUudHlwZSkpfV9zaG93QmFyTGluZShlKXtyZXR1cm4gc3VwZXIuX3Nob3dCYXJMaW5lKGUpfHx0aGlzLl9tb2RlbC5tYWluU2VyaWVzKCkucHJvcGVydGllcygpLmNoaWxkcygpLmVzZFNob3dCcmVha3MudmFsdWUoKX1fY3JlYXRlUmVuZGVyZXJGb3JMb2xsaXBvcChlLHQpewpyZXR1cm4gbmV3IFAoZSxuZXcgaC5IaXRUZXN0UmVzdWx0KGguSGl0VGFyZ2V0LkN1c3RvbSx0KSx0aGlzLl90ZXh0V2lkdGhDYWNoZSl9X3JlY3JlYXRlU3R5bGVzKCl7Y29uc3QgZT10aGlzLl9tb2RlbC5kYXJrKCkudmFsdWUoKSx0PSgwLHUuZWFybmluZ3NTdHlsZXMpKGUpLHM9dC51bmtub3duLHI9e2JhckxpbmU6e2xpbmVTdHlsZTpkLkxJTkVTVFlMRV9EQVNIRUQsbGluZVdpZHRoOjEsc3Ryb2tlU3R5bGU6c30sbG9sbGlwb3A6e3dpZHRoOjI1LGhlaWdodDoyNSxib3R0b206MCxsaW5lV2lkdGg6MS41LGltcG9ydGFuY2U6ImVhcm5pbmdzIixzdHJva2VTdHlsZTpzLGJhY2tncm91bmRDb2xvcjplP1UuZGFyazpVLmxpZ2h0LGZpbGxDaXJjbGU6ITAsdGV4dDp7bGFiZWw6IiIsc3Ryb2tlU3R5bGU6cyxmb250OiIifX19LGw9e2xvbGxpcG9wOntmaWxsU3R5bGU6KDAsYS5nZW5lcmF0ZUNvbG9yKShzLDg1KX19LGM9e2xvbGxpcG9wOnthY3RpdmU6ITAsZmlsbFN0eWxlOnMsdGV4dDp7c3Ryb2tlU3R5bGU6KDAsaS5nZXRIZXhDb2xvckJ5TmFtZSkoImNvbG9yLWNvbGQtZ3JheS01MCIpfX19O3RoaXMuX2RlZmF1bHRTdHlsZT0oMCxuLmRlZXBDb3B5KShyKSx0aGlzLl9ob3ZlcmVkU3R5bGU9KDAsby5tZXJnZSkoKDAsbi5kZWVwQ29weSkociksbCksdGhpcy5fYWN0aXZlU3R5bGU9KDAsby5tZXJnZSkoKDAsbi5kZWVwQ29weSkociksYyk7Y29uc3QgaD0oZSx0KT0+e2NvbnN0IHM9KDAsbi5kZWVwQ29weSkocik7cmV0dXJuIHMuYmFyTGluZS5zdHJva2VTdHlsZT1lLHMubG9sbGlwb3Auc3Ryb2tlU3R5bGU9ZSxzLmxvbGxpcG9wLnRleHQuc3Ryb2tlU3R5bGU9ZSxzLnR5cGU9dCxsLmxvbGxpcG9wLmZpbGxTdHlsZT0oMCxhLmdlbmVyYXRlQ29sb3IpKGUsODUpLGMubG9sbGlwb3AuZmlsbFN0eWxlPWUse2RlZmF1bHQ6cyxob3ZlcmVkOigwLG8ubWVyZ2UpKCgwLG4uZGVlcENvcHkpKHMpLGwpLGFjdGl2ZTooMCxvLm1lcmdlKSgoMCxuLmRlZXBDb3B5KShzKSxjKX19O2MubG9sbGlwb3AudGV4dC5zdHJva2VTdHlsZT0oMCxpLmdldEhleENvbG9yQnlOYW1lKSgiY29sb3ItZ3JhcGVzLXB1cnBsZS01MCIpO2NvbnN0IF89aCh0LmZ1dHVyZSwiRnV0dXJlIikscD1oKHQuZXN0aW1hdGVkRGF0ZSwiRXN0aW1hdGVkRGF0ZSIpO2MubG9sbGlwb3AudGV4dC5zdHJva2VTdHlsZT0oMCxpLmdldEhleENvbG9yQnlOYW1lKSgiY29sb3ItbWludHktZ3JlZW4tNTAiKTtjb25zdCB5PWgodC5wb3NpdGl2ZSwiUG9zaXRpdmUiKTtyLmxvbGxpcG9wLmJvdHRvbT0uNSxjLmxvbGxpcG9wLnRleHQuc3Ryb2tlU3R5bGU9KDAsaS5nZXRIZXhDb2xvckJ5TmFtZSkoImNvbG9yLXJpcGUtcmVkLTUwIik7Y29uc3QgbT1oKHQubmVnYXRpdmUsIk5lZ2F0aXZlIik7dGhpcy5fZWFybmluZ1R5cGVTdHlsZXM9e0Z1dHVyZTpfLFBvc2l0aXZlOnksTmVnYXRpdmU6bSxFc3RpbWF0ZWREYXRlOnB9LHRoaXMuX3N0eWxlc0NhY2hlPW51bGx9X2dldFN0eWxlT2JqZWN0KGUsdCl7Y29uc3Qgcz10aGlzLl9lYXJuaW5nVHlwZVN0eWxlc1tlXTtzd2l0Y2godCl7Y2FzZSJkZWZhdWx0IjpyZXR1cm4gcy5kZWZhdWx0O2Nhc2UiaG92ZXJlZCI6cmV0dXJuIHMuaG92ZXJlZDtjYXNlImFjdGl2ZSI6cmV0dXJuIHMuYWN0aXZlfXJldHVybiBudWxsfV9vbkhhc0FsZXJ0Q2hhbmdlZCgpe3RoaXMuX3NvdXJjZS51cGRhdGVBbGxWaWV3c0FuZFJlcGFpbnQoKX1fd2l0aEFsZXJ0RmxhZyhlLHQpe3JldHVybiBlLmxvbGxpcG9wLmhhc0FsZXJ0PUcodCkmJnRoaXMuX2hhc0FsZXJ0LnZhbHVlKCksZX1fZ2V0RXNkQWxlcnRJbmZvKGUpe3JldHVybiBHKGUpP3RoaXMuX2VzZEFsZXJ0SW5mbzp2b2lkIDB9fWZ1bmN0aW9uIEcoZSl7cmV0dXJuIkZ1dHVyZSI9PT1lfHwiRXN0aW1hdGVkRGF0ZSI9PT1lfWZ1bmN0aW9uIGooZSl7cmV0dXJuIGUubGVuZ3RoPjB9Y2xhc3MgWSBleHRlbmRzIFd7ZXh0cmFEYXRhKGUpe2NvbnN0IHQ9ZVsxXTtyZXR1cm57bnVtZXJhdG9yOmVbMl0sZGVub21pbmF0b3I6dCxkYXRlOmVbM119fV9jcmVhdGVSZW5kZXJlckZvckxvbGxpcG9wKGUsdCl7cmV0dXJuIG5ldyB4KGUsbmV3IGguSGl0VGVzdFJlc3VsdChoLkhpdFRhcmdldC5DdXN0b20sdCksdGhpcy5fdGV4dFdpZHRoQ2FjaGUpfWFzeW5jIF9jcmVhdGVUb29sdGlwQ29udGVudChlKXtyZXR1cm4oMCxsLmNyZWF0ZVNwbGl0c0xvbGxpcG9wVG9vbHRpcENvbnRlbnRQcm9wcykoZSx0aGlzLl9tb2RlbC5tYWluU2VyaWVzKCkuc3ltYm9sSW5mbygpLHRoaXMuX21vZGVsLmRhcmsoKS52YWx1ZSgpLCgoZSx0KT0+dGhpcy5fZm9ybWF0RGF0ZShlLHQpKSl9X3JlY3JlYXRlU3R5bGVzKCl7Y29uc3QgZT10aGlzLl9tb2RlbC5kYXJrKCkudmFsdWUoKSx0PSgwLHUuc3BsaXRzU3R5bGUpKGUpLHM9e2JhckxpbmU6e2xpbmVTdHlsZTpkLkxJTkVTVFlMRV9EQVNIRUQsbGluZVdpZHRoOjEsc3Ryb2tlU3R5bGU6dH0sbG9sbGlwb3A6e3dpZHRoOjIzLGhlaWdodDoyMyxib3R0b206MSxsaW5lV2lkdGg6MS41LGltcG9ydGFuY2U6InNwbGl0cyIsc3Ryb2tlU3R5bGU6dCxiYWNrZ3JvdW5kQ29sb3I6ZT9VLmRhcms6VS5saWdodCxmaWxsQ2lyY2xlOiEwLHRleHQ6e2xhYmVsOiIiLHN0cm9rZVN0eWxlOnQsZm9udDoiIn19fSxyPXtsb2xsaXBvcDp7ZmlsbFN0eWxlOigwLGEuZ2VuZXJhdGVDb2xvcikodCw4NSl9fSxsPXtsb2xsaXBvcDp7ZmlsbFN0eWxlOnQsdGV4dDp7c3Ryb2tlU3R5bGU6KDAsaS5nZXRIZXhDb2xvckJ5TmFtZSkoImNvbG9yLXRhbi1vcmFuZ2UtNTAiKX19fTt0aGlzLl9kZWZhdWx0U3R5bGU9cyx0aGlzLl9ob3ZlcmVkU3R5bGU9KDAsby5tZXJnZSkoKDAsbi5kZWVwQ29weSkocyksciksdGhpcy5fYWN0aXZlU3R5bGU9KDAsby5tZXJnZSkoKDAsbi5kZWVwQ29weSkocyksbCksdGhpcy5fc3R5bGVzQ2FjaGU9bnVsbH19Y2xhc3MgSiBleHRlbmRzIFd7ZXh0cmFEYXRhKGUpe3JldHVybnthbW91bnREaXZpZGVuZHM6ZVsxXSxkYXRlOmVbMl0sYWRqdXN0ZWRBbW91bnREaXZpZGVuZHM6ZVszXSxwYXltZW50RGF0ZTplWzRdfX0KX2NyZWF0ZVJlbmRlcmVyRm9yTG9sbGlwb3AoZSx0KXtyZXR1cm4gbmV3IEQoZSxuZXcgaC5IaXRUZXN0UmVzdWx0KGguSGl0VGFyZ2V0LkN1c3RvbSx0KSx0aGlzLl90ZXh0V2lkdGhDYWNoZSl9YXN5bmMgX2NyZWF0ZVRvb2x0aXBDb250ZW50KGUpe3JldHVybigwLGwuY3JlYXRlRGl2aWRlbmRzTG9sbGlwb3BUb29sdGlwQ29udGVudFByb3BzKShlLHRoaXMuX21vZGVsLm1haW5TZXJpZXMoKS5zeW1ib2xJbmZvKCksdGhpcy5fbW9kZWwuZGFyaygpLnZhbHVlKCksKChlLHQpPT50aGlzLl9mb3JtYXREYXRlKGUsdCkpKX1fcmVjcmVhdGVTdHlsZXMoKXtjb25zdCBlPXRoaXMuX21vZGVsLmRhcmsoKS52YWx1ZSgpLHQ9KDAsdS5kaXZpZGVuZHNTdHlsZXMpKGUpLHM9e2JhckxpbmU6e2xpbmVTdHlsZTpkLkxJTkVTVFlMRV9EQVNIRUQsbGluZVdpZHRoOjEsc3Ryb2tlU3R5bGU6dH0sbG9sbGlwb3A6e3dpZHRoOjIzLGhlaWdodDoyMyxib3R0b206MSxsaW5lV2lkdGg6MS41LGltcG9ydGFuY2U6ImRpdmlkZW5kcyIsc3Ryb2tlU3R5bGU6dCxiYWNrZ3JvdW5kQ29sb3I6ZT9VLmRhcms6VS5saWdodCxmaWxsQ2lyY2xlOiEwLGFjdGl2ZTohMSx0ZXh0OntsYWJlbDoiIixzdHJva2VTdHlsZTp0LGZvbnQ6IiJ9fX0scj17bG9sbGlwb3A6e2ZpbGxTdHlsZTooMCxhLmdlbmVyYXRlQ29sb3IpKHQsODUpfX0sbD17bG9sbGlwb3A6e2ZpbGxTdHlsZTp0LHRleHQ6e3N0cm9rZVN0eWxlOigwLGkuZ2V0SGV4Q29sb3JCeU5hbWUpKCJjb2xvci10di1ibHVlLTUwIil9fX07dGhpcy5fZGVmYXVsdFN0eWxlPXMsdGhpcy5faG92ZXJlZFN0eWxlPSgwLG8ubWVyZ2UpKCgwLG4uZGVlcENvcHkpKHMpLHIpLHRoaXMuX2FjdGl2ZVN0eWxlPSgwLG8ubWVyZ2UpKCgwLG4uZGVlcENvcHkpKHMpLGwpLHRoaXMuX3N0eWxlc0NhY2hlPW51bGx9X2dldE1vcmVGaW5hbmNpYWxzTGlua1RleHQoKXtyZXR1cm4oMCxsLmdldE1vcmVGaW5hbmNpYWxzRGl2aWRlbmRzTGlua1RleHQpKHRoaXMuX21vZGVsLm1haW5TZXJpZXMoKS5zeW1ib2xJbmZvKCkpfX12YXIgUT1zKDkwMDc5NyksWj1zKDYzMTUyMik7Y29uc3QgSz1RLnNvcnRTb3VyY2VzUHJlT3JkZXJlZC5EaXZpZGVuZHMsWD1RLnNvcnRTb3VyY2VzUHJlT3JkZXJlZC5TcGxpdHMsZWU9US5zb3J0U291cmNlc1ByZU9yZGVyZWQuRWFybmluZ3M7dmFyIHRlOyFmdW5jdGlvbihlKXtlW2UuSW5pdGlhbD0xXT0iSW5pdGlhbCIsZVtlLkFkanVzdGVkRGl2aWRlbmRzPTJdPSJBZGp1c3RlZERpdmlkZW5kcyJ9KHRlfHwodGU9e30pKTtjbGFzcyBzZSBleHRlbmRzIFouTG9sbGlwb3BTdHVkeUJhc2V7aWQoKXtyZXR1cm4iRVNEJFRWX0RJVklERU5EUyJ9em9yZGVyKCl7cmV0dXJuIEt9aXNWYWxpZChlKXtjb25zdCB0PWVbMl07cmV0dXJuKDAsby5pc051bWJlcikodCl9c3RhdGUoZSx0KXtjb25zdCBzPXN1cGVyLnN0YXRlKGUsdCk7cmV0dXJuIHMuZGF0YS52ZXJzaW9uPTIsc31yZXN0b3JlRGF0YShlKXsoZS52ZXJzaW9uPz8xKTwyJiZlLmRhdGEuZm9yRWFjaCgoZT0+e2UudmFsdWVbM109bnVsbH0pKSxzdXBlci5yZXN0b3JlRGF0YShlKX1fY3JlYXRlVmlld3MoKXt0aGlzLl9wYW5lVmlldz1uZXcgSih0aGlzLl9tb2RlbCx0aGlzKSxzdXBlci5fY3JlYXRlVmlld3MoKX1fZXh0ZXJuYWxWaXNpYmlsaXR5UHJvcGVydHkoKXtyZXR1cm4gdGhpcy5fbW9kZWwubWFpblNlcmllcygpLnByb3BlcnRpZXMoKS5jaGlsZHMoKS5lc2RTaG93RGl2aWRlbmRzfX1jbGFzcyBpZSBleHRlbmRzIFouTG9sbGlwb3BTdHVkeUJhc2V7aWQoKXtyZXR1cm4iRVNEJFRWX1NQTElUUyJ9em9yZGVyKCl7cmV0dXJuIFh9aXNWYWxpZChlKXtjb25zdCB0PWVbM107cmV0dXJuKDAsby5pc051bWJlcikodCl9X2NyZWF0ZVZpZXdzKCl7dGhpcy5fcGFuZVZpZXc9bmV3IFkodGhpcy5fbW9kZWwsdGhpcyksc3VwZXIuX2NyZWF0ZVZpZXdzKCl9X2V4dGVybmFsVmlzaWJpbGl0eVByb3BlcnR5KCl7cmV0dXJuIHRoaXMuX21vZGVsLm1haW5TZXJpZXMoKS5wcm9wZXJ0aWVzKCkuY2hpbGRzKCkuZXNkU2hvd1NwbGl0c319Y2xhc3MgcmUgZXh0ZW5kcyBaLkxvbGxpcG9wU3R1ZHlCYXNle2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLl9lc3RpbWF0ZVBsb3RSb3c9bnVsbH1pZCgpe3JldHVybiJFU0QkVFZfRUFSTklOR1MifXpvcmRlcigpe3JldHVybiBlZX1pc1ZhbGlkKGUpe2NvbnN0IHQ9ZVszXSxzPWVbNF07cmV0dXJuKDAsby5pc051bWJlcikodCkmJigwLG8uaXNOdW1iZXIpKHMpfXJlc3RvcmVEYXRhKGUpe3N1cGVyLnJlc3RvcmVEYXRhKGUpO2xldCB0PW51bGw7aWYoZS5lc3RpbWF0ZXx8ZS5wb2ludFNldHMmJm51bGw9PWUucG9pbnRTZXRzVmVyc2lvbik7ZWxzZSBpZihlLnBvaW50U2V0cyYmIjEiPT09ZS5wb2ludFNldHNWZXJzaW9uKXtjb25zdCBzPXRoaXMuX2dldFN5bWJvbCgpO2lmKG51bGwhPT1zKXtjb25zdCBpPXMuc3BsaXQoIjoiKVsxXS50b1VwcGVyQ2FzZSgpO2UucG9pbnRTZXRzW3NdP3Q9ZS5wb2ludFNldHNbc10uZXN0aW1hdGU6ZS5wb2ludFNldHNbaV0mJih0PWUucG9pbnRTZXRzW2ldLmVzdGltYXRlKX19ZWxzZSBudWxsIT1lLmVzdGltYXRlUGxvdFJvdyYmIjIiPT09ZS5wb2ludFNldHNWZXJzaW9uJiYodD1lLmVzdGltYXRlUGxvdFJvdyk7dGhpcy5fZXN0aW1hdGVQbG90Um93PXR9Z2V0RXN0aW1hdGUoKXtyZXR1cm4gdGhpcy5fZXN0aW1hdGVQbG90Um93fV9jcmVhdGVWaWV3cygpe3RoaXMuX3BhbmVWaWV3PW5ldyAkKHRoaXMuX21vZGVsLHRoaXMpLHN1cGVyLl9jcmVhdGVWaWV3cygpfV9leHRlcm5hbFZpc2liaWxpdHlQcm9wZXJ0eSgpe3JldHVybiB0aGlzLl9tb2RlbC5tYWluU2VyaWVzKCkucHJvcGVydGllcygpLmNoaWxkcygpLmVzZFNob3dFYXJuaW5nc31fZ2V0U3ltYm9sKCl7cmV0dXJuIHRoaXMuX3Nlcmllcy5zeW1ib2xJbmZvKCk/LmJhc2VfbmFtZVswXS50b0xvd2VyQ2FzZSgpPz9udWxsfX19LDEyNTEzNyhlLHQscyl7InVzZSBzdHJpY3QiO3MuZCh0LHtGdW5kYW1lbnRhbDooKT0+d30pCjt2YXIgaT1zKDMwNDIyMSkscj1zKDEzODYzOCksbj1zKDc4MzI1NCksbz1zKDYyODAwOSksYT1zKDU2OTM5OCksbD1zKDE5NzI3MiksdT1zKDI1NjMxNCksYz1zKDY4MDEyNik7Y2xhc3MgaCBleHRlbmRzIGMuU3R1ZHlQcmljZUF4aXNWaWV3e2NvbnN0cnVjdG9yKGUsdCl7c3VwZXIoZSx0KSx0aGlzLl9mdW5kYW1lbnRhbD1lfV91cGRhdGVQYW5lUmVuZGVyZXJEYXRhKGUpe2UudGV4dD0iIix0aGlzLl9zaG93UGFuZUxhYmVsKCkmJihlLnRleHQ9dGhpcy5fZnVuZGFtZW50YWwubGFiZWxUaXRsZSgpLGUudmlzaWJsZT0hMCl9fXZhciBkPXMoOTY5NCk7Y2xhc3MgXyBleHRlbmRzIGQuU3R1ZHlQcmljZUxpbmVBeGlzVmlld3tjb25zdHJ1Y3RvcihlLHQpe3N1cGVyKGUsdCksdGhpcy5fbW9kZWw9ZS5tb2RlbCgpfV9pc1Zpc2libGUoKXtyZXR1cm4gdGhpcy5fbW9kZWwucHJvcGVydGllcygpLmNoaWxkcygpLnNjYWxlc1Byb3BlcnRpZXMuY2hpbGRzKCkuc2hvd0Z1bmRhbWVudGFsTGFzdFZhbHVlLnZhbHVlKCkmJnRoaXMuX3N0dWR5LnByb3BlcnRpZXMoKS5jaGlsZHMoKS5zdHlsZXMuY2hpbGRzKClbdGhpcy5fcGxvdG5hbWVdLmNoaWxkcygpLnRyYWNrUHJpY2UudmFsdWUoKX19dmFyIHA9cygxODUyNzEpLHk9cygyNzU4NDkpLG09cyg4Njc4MzEpO2NvbnN0IHY9cC50KG51bGwsdm9pZCAwLHMoODQyNjM1KSk7Y2xhc3MgZiBleHRlbmRzIHkuU3R1ZHlTdGF0dXNQcm92aWRlcntzb3VyY2VTdGF0dXNUZXh0KCl7Y29uc3QgZT10aGlzLl9zb3VyY2Uuc3RhdHVzKCk7cmV0dXJuIGUudHlwZT09PW0uU3R1ZHlTdGF0dXNUeXBlLkVycm9yJiZbInJlc29sdmVfZXJyb3IiLCJTeW1ib2wgcmVzb2x2ZSBlcnJvcjoiLCJJbnZhbGlkIHN5bWJvbDoiXS5zb21lKCh0PT5lLmVycm9yRGVzY3JpcHRpb24uZXJyb3Iuc3RhcnRzV2l0aCh0KSkpP3Y6c3VwZXIuc291cmNlU3RhdHVzVGV4dCgpfX12YXIgUz1zKDc3NTg2OSksZz1zKDk0Mzk1KSxiPXMoNTk2NzA2KTtjbGFzcyB3IGV4dGVuZHMgbC5TdHVkeXtjb25zdHJ1Y3RvciguLi5lKXtzdXBlciguLi5lKSx0aGlzLl9zeW1ib2xQcm9wZXJ0eT1udWxsLHRoaXMuX3N5bWJvbElucHV0PW51bGwsdGhpcy5fYXZhaWxhYmxlQ3VycmVuY2llcy5zdWJzY3JpYmUoKGU9Pnt2b2lkIDAhPT10aGlzLl9wZW5kaW5nQ3VycmVuY3lJZCYmbnVsbCE9PWUmJih0aGlzLnNldEN1cnJlbmN5KHRoaXMuX3BlbmRpbmdDdXJyZW5jeUlkKSx0aGlzLl9wZW5kaW5nQ3VycmVuY3lJZD12b2lkIDApfSkse29uY2U6ITB9KSx0aGlzLl9zeW1ib2xJbnB1dD10aGlzLm1ldGFJbmZvKCkuaW5wdXRzLmZpbmQoKGU9PiJzeW1ib2wiPT09ZS50eXBlKSk/P251bGwsdGhpcy5fc3ltYm9sSW5wdXQmJih0aGlzLl9zeW1ib2xQcm9wZXJ0eT10aGlzLnByb3BlcnRpZXMoKS5jaGlsZHMoKS5pbnB1dHMuY2hpbGQodGhpcy5fc3ltYm9sSW5wdXQuaWQpPz9udWxsKSx0aGlzLnN5bWJvbFNvdXJjZSgpLnN5bWJvbENoYW5nZWQoKS5zdWJzY3JpYmUobnVsbCx0aGlzLl91cGRhdGVBbGVydENyZWF0aW9uQXZhaWxhYmxlQm91bmQpfXN5bWJvbCgpe3JldHVybiB0aGlzLl9zeW1ib2xQcm9wZXJ0eT8udmFsdWUoKXx8dGhpcy5zeW1ib2xTb3VyY2UoKS5zeW1ib2woKX1oYXNPd25TeW1ib2woKXtyZXR1cm4gQm9vbGVhbih0aGlzLl9zeW1ib2xQcm9wZXJ0eT8udmFsdWUoKSl9Y3VycmVuY3koKXtpZighdGhpcy5fY3VycmVuY3lJbnB1dFByb3BlcnR5KXJldHVybiBzdXBlci5jdXJyZW5jeSgpO2NvbnN0IGU9dGhpcy5fY3VycmVuY3lJbnB1dFByb3BlcnR5LnZhbHVlKCk7aWYoZSYmIkRlZmF1bHQiIT09ZSl7Y29uc3QgdD10aGlzLl9hdmFpbGFibGVDdXJyZW5jaWVzLnZhbHVlKCk7cmV0dXJuIG51bGwhPT10P3QuY3VycmVuY3lJZEJ5Q29kZShlKTpudWxsfXJldHVybiB0aGlzLnN5bWJvbFNvdXJjZSgpLmN1cnJlbmN5KCl9c2V0Q3VycmVuY3koZSl7aWYoIXRoaXMuX2N1cnJlbmN5SW5wdXRQcm9wZXJ0eSlyZXR1cm4gc3VwZXIuc2V0Q3VycmVuY3koZSk7Y29uc3QgdD10aGlzLl9hdmFpbGFibGVDdXJyZW5jaWVzLnZhbHVlKCk7aWYobnVsbD09PXQpcmV0dXJuIHZvaWQodGhpcy5fcGVuZGluZ0N1cnJlbmN5SWQ9ZSk7Y29uc3Qgcz1lP3QuY3VycmVuY3lDb2RlQnlJZChlKT8/IkRlZmF1bHQiOiJEZWZhdWx0Ijt0aGlzLl9jdXJyZW5jeUlucHV0UHJvcGVydHkuc2V0VmFsdWUocyl9bGFiZWxUaXRsZSgpe3JldHVybiB0aGlzLnRpdGxlKGcuVGl0bGVEaXNwbGF5VGFyZ2V0LlN0YXR1c0xpbmUsITApfWhhc1N0YXRlRm9yQWxlcnQoKXtpZighKDAsYS5pc0ZlYXR1cmVFbmFibGVkKSgiYWxlcnRzLW9uLWZ1bmRhbWVudGFsLW1ldHJpY3MiKSlyZXR1cm4hMTtjb25zdCBlPXRoaXMubWV0YUluZm8oKS5zY3JpcHRJZFBhcnQsdD10aGlzLnN5bWJvbFNvdXJjZSgpLnN5bWJvbEluZm8oKT8udHlwZTtyZXR1cm4oMCxvLmlzRnVuZGFtZW50YWxTdXBwb3J0ZWRCeUFsZXJ0cykoZSkmJiJzdG9jayI9PT10JiZzdXBlci5oYXNTdGF0ZUZvckFsZXJ0KCl9dGl0bGVJblBhcnRzKGUsdCxzLGkscil7cmV0dXJuW3RoaXMuX3RpdGxlKGUsISF0KV19c3RhdHVzUHJvdmlkZXIoZSl7cmV0dXJuIG5ldyBmKHRoaXMpfWRlc3Ryb3koKXt0aGlzLnN5bWJvbFNvdXJjZSgpLnN5bWJvbENoYW5nZWQoKS51bnN1YnNjcmliZShudWxsLHRoaXMuX3VwZGF0ZUFsZXJ0Q3JlYXRpb25BdmFpbGFibGVCb3VuZCksc3VwZXIuZGVzdHJveSgpfV9nZXRDdXJyZW5jeUlucHV0UHJvcGVydHkoKXtjb25zdCBlPXRoaXMubWV0YUluZm8oKS5pbnB1dHMuZmluZCgoZT0+IkN1cnJlbmN5Ij09PWUubmFtZSkpO3JldHVybiBlPygwLHIuZW5zdXJlRGVmaW5lZCkodGhpcy5wcm9wZXJ0aWVzKCkuY2hpbGRzKCkuaW5wdXRzLmNoaWxkKGUuaWQpKTpudWxsfV9jcmVhdGVQcmljZUF4aXNWaWV3KGUpe3JldHVybiBuZXcgaCh0aGlzLHtwbG90TmFtZTplfSl9X2NyZWF0ZVByaWNlTGluZUF4aXNWaWV3KGUpe3JldHVybiBuZXcgXyh0aGlzLGUpfV9kZWZhdWx0RXJyb3JUaXRsZSgpe3JldHVybiJNZXRyaWMgZXJyb3IifV9jcmVhdGVTdHVkeUVycm9yKGUpewpyZXR1cm4hKDAsaS5kZWZhdWx0KShlKSYmZS5lcnJvci5lbmRzV2l0aCgiaW5kaWNhdG9yIGF2YWlsYWJsZSBvbmx5IG9uIG91ciB1cGdyYWRlZCBwbGFucyIpP3N1cGVyLl9jcmVhdGVTdHVkeUVycm9yKHtlcnJvcjoiR2V0IGFjY2VzcyB0byBmb3JlY2FzdCBtZXRyaWNzIHdpdGggYW4gdXBncmFkZWQgcGxhbi4iLHRpdGxlOiJVcGdyYWRlIHRvIHVubG9jayBmb3JlY2FzdCBtZXRyaWNzIn0pOnN1cGVyLl9jcmVhdGVTdHVkeUVycm9yKGUpfV90aXRsZShlLHQpe2NvbnN0IGk9dGhpcy5tZXRhSW5mbygpO2xldCByO3I9dD9pLnNob3J0RGVzY3JpcHRpb246aS5kZXNjcmlwdGlvbixyPW4udChyLHtjb250ZXh0OiJzdHVkeSJ9LHMoODg0NjkzKSk7Y29uc3Qgbz1pLmZpbmFuY2lhbFBlcmlvZDtpZih2b2lkIDAhPT1vJiYhKDAsdS5pc05vQWdncmVnYXRlZEZpbmFuY2lhbFBlcmlvZCkobykpe2NvbnN0IGU9dD8oMCx1LmZpbmFuY2lhbFBlcmlvZFRvU2hvcnRTdHJpbmcpKG8pOigwLHUuZmluYW5jaWFsUGVyaW9kVG9TdHJpbmcpKG8pO3I9YCR7bi50KHIse2NvbnRleHQ6InN0dWR5In0scyg4ODQ2OTMpKX0gwrcgJHtlfWB9Y29uc3QgYT1lPT09Zy5UaXRsZURpc3BsYXlUYXJnZXQuQWxlcnRzP3t9OnRoaXMuX3RpdGxlSW5wdXRzKCgwLFMudG9JbnB1dERpc3BsYXlGbGFncykoZSksITApLGw9T2JqZWN0LmtleXMoYSk7cmV0dXJuIGwubGVuZ3RoPjAmJihyPWAke24udChhW2xbMF1dLHtjb250ZXh0OiJzdHVkeSJ9LHMoODg0NjkzKSl9IMK3ICR7cn1gKSxyfV90aXRsZUlucHV0c09wdGlvbnMoZSx0LHMpe3JldHVybnsuLi5zdXBlci5fdGl0bGVJbnB1dHNPcHRpb25zKGUsdCxzKSxza2lwT3B0aW9uYWxFbXB0eVN5bWJvbElucHV0czohMCxhbGxvd2VkSW5wdXRUeXBlczpbInN5bWJvbCJdfX1fdGl0bGVJbnB1dHMoZSx0LHMpe2NvbnN0IGk9c3VwZXIuX3RpdGxlSW5wdXRzKGUsdCxzKTtpZighdGhpcy5oYXNPd25TeW1ib2woKSlyZXR1cm4gaTtjb25zdCByPXRoaXMucmVzb2x2ZWRTeW1ib2xJbmZvQnlTeW1ib2wodGhpcy5zeW1ib2woKSk7aWYoIShudWxsIT09ciYmKDAsYi5pc0NyeXB0b1N5bWJvbCkoci50eXBlc3BlY3MpJiYhKDAsdS5pc05vQWdncmVnYXRlZEZpbmFuY2lhbFBlcmlvZCkodGhpcy5tZXRhSW5mbygpLmZpbmFuY2lhbFBlcmlvZCkpKXJldHVybiBpO2NvbnN0IG49cj8uYmFzZV9jdXJyZW5jeXx8bnVsbDtyZXR1cm4gdGhpcy5fc3ltYm9sSW5wdXQmJm4mJihpW3RoaXMuX3N5bWJvbElucHV0LmlkXT1uKSxpfX19LDUwMjcyNihlLHQscyl7InVzZSBzdHJpY3QiO3MuZCh0LHtMaW5lYXJSZWdyZXNzaW9uU3R1ZHk6KCk9PmF9KTt2YXIgaT1zKDEzODYzOCkscj1zKDgxNDU4OSksbj1zKDg0MTU1OCksbz1zKDE2ODI1OCk7Y2xhc3MgYSBleHRlbmRzIG4uTm9uU2VyaWVzU3R1ZHl7c3RhcnRJbmRleCgpe2NvbnN0IGU9dGhpcy5jdXN0b21EYXRhKCk7aWYobnVsbD09ZXx8bnVsbD09dGhpcy5faW5kZXhlcylyZXR1cm4gbnVsbDtjb25zdCB0PXRoaXMuX2luZGV4ZXNbZS5zdGFydEluZGV4XTtyZXR1cm4gdCE9PXIuSU5WQUxJRF9USU1FX1BPSU5UX0lOREVYP3Q6bnVsbH1lbmRJbmRleCgpe2NvbnN0IGU9dGhpcy5jdXN0b21EYXRhKCk7aWYobnVsbD09ZXx8bnVsbD09dGhpcy5faW5kZXhlcylyZXR1cm4gbnVsbDtjb25zdCB0PXRoaXMuX2luZGV4ZXNbZS5lbmRJbmRleF07cmV0dXJuIHQhPT1yLklOVkFMSURfVElNRV9QT0lOVF9JTkRFWD90Om51bGx9YmFzZUxpbmUoKXtjb25zdCBlPXRoaXMuY3VzdG9tRGF0YSgpO3JldHVybiBudWxsIT1lP2UuYmFzZUxpbmU6bnVsbH1kb3duTGluZSgpe2NvbnN0IGU9dGhpcy5jdXN0b21EYXRhKCk7cmV0dXJuIG51bGwhPWU/ZS5kb3duTGluZTpudWxsfXVwTGluZSgpe2NvbnN0IGU9dGhpcy5jdXN0b21EYXRhKCk7cmV0dXJuIG51bGwhPWU/ZS51cExpbmU6bnVsbH1wZWFyc29ucygpe2NvbnN0IGU9dGhpcy5jdXN0b21EYXRhKCk7cmV0dXJuIG51bGwhPWUmJnZvaWQgMCE9PWUucGVhcnNvbnM/ZS5wZWFyc29uczpudWxsfWlzVmlzaWJsZSgpe2lmKCF0aGlzLnByb3BlcnRpZXMoKS5jaGlsZHMoKS52aXNpYmxlLnZhbHVlKCl8fCF0aGlzLmlzQWN0dWFsSW50ZXJ2YWwoKSlyZXR1cm4hMTtjb25zdCBlPSgwLGkuZW5zdXJlRGVmaW5lZCkodGhpcy5wcm9wZXJ0aWVzKCkuY2hpbGRzKCkuc3R5bGVzLmNoaWxkcygpKTtyZXR1cm4gZS51cExpbmUuY2hpbGRzKCkuZGlzcGxheS52YWx1ZSgpIT09by5TdHVkeVBsb3REaXNwbGF5VGFyZ2V0Lk5vbmV8fGUuZG93bkxpbmUuY2hpbGRzKCkuZGlzcGxheS52YWx1ZSgpIT09by5TdHVkeVBsb3REaXNwbGF5VGFyZ2V0Lk5vbmV8fGUuYmFzZUxpbmUuY2hpbGRzKCkuZGlzcGxheS52YWx1ZSgpIT09by5TdHVkeVBsb3REaXNwbGF5VGFyZ2V0Lk5vbmV9X2NyZWF0ZVZpZXdzKCl7c3VwZXIuX2NyZWF0ZVZpZXdzKCksUHJvbWlzZS5hbGwoW3MuZSg5NzU1OCkscy5lKDQ1Mjc3KSxzLmUoOTE2NjgpXSkudGhlbihzLmJpbmQocyw1MDEzNjMpKS50aGVuKCgoe0xpbmVhclJlZ3Jlc3Npb25QYW5lVmlldzplfSk9Pnt0aGlzLl9zZXRQYW5lVmlld3MoW25ldyBlKHRoaXMubW9kZWwoKSx0aGlzKV0pfSkpfX19LDYzMTUyMihlLHQscyl7InVzZSBzdHJpY3QiO3MuZCh0LHtMb2xsaXBvcFN0dWR5QmFzZTooKT0+aH0pO3ZhciBpLHI9cygxOTcyNzIpLG49cyg4MTQ1ODkpLG89cyg3Nzk1MTYpLGE9cyg5MzI2OTMpLGw9cygxNDc5OTIpLHU9cyg5NjY0MDQpOyFmdW5jdGlvbihlKXtlW2UuTWF4TXNlY3NQZXJQeD00MzJlNl09Ik1heE1zZWNzUGVyUHgiLGVbZS5GaXZlRGF5c01zPTQzMmU2XT0iRml2ZURheXNNcyJ9KGl8fChpPXt9KSk7Y29uc3QgYz1EYXRlLlVUQygyMDI0LDEsMSk7Y2xhc3MgaCBleHRlbmRzIHIuU3R1ZHl7Y29uc3RydWN0b3IoZSx0LHMsaSxyLG4pe3N1cGVyKGUsdCxzLGkscixuKSx0aGlzLl9yZXN0YXJ0UmVxdWlyZWQ9ITEsdGhpcy5zZXRPd25lclNvdXJjZShlLm1haW5TZXJpZXMoKSk7Y29uc3Qgbz10aGlzLl9leHRlcm5hbFZpc2liaWxpdHlQcm9wZXJ0eSgpCjtudWxsIT09byYmKHRoaXMuX2Rlc3Ryb3lQcm9wZXJ0eUJpbmRlcj0oMCxsLmJpbmRQcm9wZXJ0aWVzKShvLHRoaXMuX3Byb3BlcnRpZXMuY2hpbGRzKCkudmlzaWJsZSkpfWRlc3Ryb3koKXt0aGlzLl9wYW5lVmlldy5kZXN0cm95KCksdGhpcy5fZGVzdHJveVByb3BlcnR5QmluZGVyPy4oKSxzdXBlci5kZXN0cm95KCl9dXBkYXRlQWxsVmlld3NBbmRSZXBhaW50KCl7dGhpcy51cGRhdGVBbGxWaWV3cygoMCx1LnNvdXJjZUNoYW5nZUV2ZW50KSh0aGlzLmlkKCkpKSx0aGlzLl9tb2RlbC51cGRhdGVTb3VyY2UodGhpcyl9YXV0b1NjYWxlSW5mbygpe3JldHVybntyYW5nZTpudWxsfX1sb2xsaXBvcHNBdEluZGV4KGUpe3JldHVybiF0aGlzLmhpZGVMb2xsaXBvcHMoKSYmdGhpcy5kYXRhKCkuY29udGFpbnMoZSk/MTowfWhpZGVMb2xsaXBvcHMoKXt7Y29uc3QgZT10aGlzLl9tb2RlbC5tYWluU2VyaWVzKCkuaW50ZXJ2YWxPYmooKS52YWx1ZSgpLmluTWlsbGlzZWNvbmRzKGMpO2lmKGU8NDMyZTYpcmV0dXJuITE7cmV0dXJuIGUvdGhpcy5fbW9kZWwudGltZVNjYWxlKCkuYmFyU3BhY2luZygpPjQzMmU2fX1hc3luYyBzdGFydCgpe2NvbnN0IGU9c3VwZXIuc3RhcnQoKTtyZXR1cm4gdGhpcy5fbW9kZWwubWFpblNlcmllcygpLmRhdGFFdmVudHMoKS5zeW1ib2xSZXNvbHZlZCgpLnN1YnNjcmliZSh0aGlzLHRoaXMuX2luaXRQbG90U3Rhc2gpLHRoaXMuX2luaXRQbG90U3Rhc2goKSxlfXN0b3AoKXtzdXBlci5zdG9wKCksdGhpcy5fbW9kZWwubWFpblNlcmllcygpLmRhdGFFdmVudHMoKS5zeW1ib2xSZXNvbHZlZCgpLnVuc3Vic2NyaWJlKHRoaXMsdGhpcy5faW5pdFBsb3RTdGFzaCl9cmVzdG9yZURhdGEoZSl7ZS5kYXRhPWUuZGF0YS5maWx0ZXIoKGU9PmUuaW5kZXghPT1uLklOVkFMSURfVElNRV9QT0lOVF9JTkRFWCYmdGhpcy5pc1ZhbGlkKGUudmFsdWUpKSksdGhpcy5fdHJhbnNmb3JtRGF0YShlLmRhdGEpLGUuZW5kPWUuZGF0YS5sZW5ndGgsc3VwZXIucmVzdG9yZURhdGEoZSl9b25DbGlja091dHNpZGUoZSx0KXt0aGlzLl9wYW5lVmlldy5wcm9jZXNzQ2xpY2tPdXRzaWRlKGUsdCl9cHJlZmVyTm9TY2FsZSgpe3JldHVybiEwfXNob3dJbk9iamVjdFRyZWUoKXtyZXR1cm4hMX1pc1NhdmVkSW5TdHVkeVRlbXBsYXRlcygpe3JldHVybiExfWlzUmVtb3ZlZEJ5U3R1ZHlUZW1wbGF0ZXMoKXtyZXR1cm4hMX1yZW1vdmVCeVJlbW92ZUFsbFN0dWRpZXMoKXtyZXR1cm4hMX1pc0RyYWdnYWJsZSgpe3JldHVybiExfWNvcGlhYmxlKCl7cmV0dXJuITF9c3RhdHVzVmlldygpe3JldHVybiBudWxsfWhhc1N0YXRlRm9yQWxlcnQoKXtyZXR1cm4hMX1pc1NhdmVkSW5DaGFydChlKXtyZXR1cm4gQm9vbGVhbihlKX1pc1NwZWNpYWxseVpPcmRlcmVkU291cmNlKCl7cmV0dXJuITB9aXNVc2VyRGVsZXRhYmxlKCl7cmV0dXJuITF9Y2FuSGF2ZUNoaWxkcmVuKCl7cmV0dXJuITF9aXNJbmNsdWRlZEluQXV0b1NjYWxlKCl7cmV0dXJuITF9aXNDdXJyZW5jeVNvdXJjZSgpe3JldHVybiExfWlzVW5pdFNvdXJjZSgpe3JldHVybiExfV9leHRlcm5hbFZpc2liaWxpdHlQcm9wZXJ0eSgpe3JldHVybiBudWxsfV90cmFuc2Zvcm1EYXRhKGUpe2ZvcihsZXQgdD1lLmxlbmd0aC0xO3Q+PTA7LS10KXtjb25zdCBzPWVbdF0saT1zLmluZGV4IT09bi5JTlZBTElEX1RJTUVfUE9JTlRfSU5ERVgmJnRoaXMuaXNWYWxpZChzLnZhbHVlKTt0aGlzLl91cGRhdGVQbG90U3Rhc2gocyxpKX19X2NyZWF0ZVZpZXdzKCl7dGhpcy5fcGFuZVZpZXdzPVt0aGlzLl9wYW5lVmlld10sdGhpcy5fcHJpY2VBeGlzVmlld3M9W10sdGhpcy5fZGF0YVdpbmRvd1ZpZXd8fCh0aGlzLl9kYXRhV2luZG93Vmlldz1uZXcgby5EYXRhV2luZG93VmlldyksdGhpcy5fbGVnZW5kVmlldz1udWxsLHRoaXMuX3N0YXR1c1ZpZXd8fCh0aGlzLl9zdGF0dXNWaWV3PW5ldyBhLlN0dWR5U3RhdHVzVmlldyh0aGlzKSl9X3Nlcmllc0RhdGFSYW5nZVRvU2F2ZShlKXtyZXR1cm4gdGhpcy5fbW9kZWwudGltZVNjYWxlKCkudmlzaWJsZUJhcnNTdHJpY3RSYW5nZSgpfV9pbml0UGxvdFN0YXNoKCl7dGhpcy5fcGxvdFN0YXNoPXt9fV91cGRhdGVQbG90U3Rhc2goZSx0KXtpZih0aGlzLl9yZXN0YXJ0UmVxdWlyZWR8fCF0aGlzLl9wbG90U3Rhc2gpcmV0dXJuO2NvbnN0IHM9ZS52YWx1ZS5zbGljZSgpLGk9cy5zaGlmdCgpLHI9U3RyaW5nKGkpO3Q/dGhpcy5fcGxvdFN0YXNoW3JdP1N0cmluZyh0aGlzLl9wbG90U3Rhc2hbcl0pIT09U3RyaW5nKHMpJiYodGhpcy5fcmVzdGFydFJlcXVpcmVkPSEwKTp0aGlzLl9wbG90U3Rhc2hbcl09czp0aGlzLl9wbG90U3Rhc2hbcl0mJih0aGlzLl9yZXN0YXJ0UmVxdWlyZWQ9ITApfX19LDg4NzAyOShlLHQscyl7InVzZSBzdHJpY3QiO3MuZCh0LHtMb2xsaXBvcFN0dWR5UGFuZVZpZXdCYXNlOigpPT5ffSk7dmFyIGk9cyg3MzY1MzEpLHI9cygxMzg2MzgpLG49cyg3MDA4MDkpLG89cyg5MzAyMzEpLGE9cygyMjg4MiksbD1zKDI3NjAxOSksdT1zKDg3NDMwNiksYz1zKDg4OTM5NyksaD1zKDg4ODU2MiksZD1zKDQ5NDA3OSk7Y2xhc3MgXyBleHRlbmRzIGQuTG9sbGlwb3BQYW5lVmlld3tjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5fZ2V0TW9yZUZpbmFuY2lhbHNMaW5rSW5pdGlhbFRhYklkPSJvdmVydmlldyIsdGhpcy5fc3ltYm9sTmFtZT1udWxsfWFkZExvbGxpcG9wKGUsdCxzLHIsbixvLGEpe2lmKG51bGw9PT10aGlzLl9zeW1ib2xOYW1lJiYodGhpcy5fc3ltYm9sTmFtZT10aGlzLl9tb2RlbC5tYWluU2VyaWVzKCkuc3ltYm9sSW5mbygpPy5uYW1lPz9udWxsLG51bGw9PT10aGlzLl9zeW1ib2xOYW1lKSlyZXR1cm4KO2NvbnN0IGw9YCR7dGhpcy5fc291cmNlLm1ldGFJbmZvKCkuaWR9XyR7dGhpcy5fbG9sbGlwb3BJZChvKX1fJHt0aGlzLl9zeW1ib2xOYW1lfWAsdT10aGlzLl9sb2xsaXBvcHNbbF0sYz12b2lkIDAhPT11P3UuaXRlbUluZGV4OnRoaXMuX2xvbGxpcG9wc0NvdW50ZXIrKyxoPXRoaXMuX21vZGVsLmxhc3RIaXR0ZXN0RGF0YSgpLGQ9dGhpcy5fbW9kZWwuaG92ZXJlZFNvdXJjZSgpPT09dGhpcy5fc291cmNlJiZudWxsIT09aCYmaC5hY3RpdmVJdGVtJiZoLmFjdGl2ZUl0ZW0uaXRlbUluZGV4PT09Yzt0aGlzLl9sb2xsaXBvcHNbbF09e2lkOmwsaXRlbUluZGV4OmMsdmlzaWJsZTohMCxiYXNlUG9pbnQ6bmV3IGkuUG9pbnQocy5pbmRleFRvQ29vcmRpbmF0ZShuKSxlKSxob3ZlcmVkOmQsc3RhY2s6YSwuLi50aGlzLmV4dHJhRGF0YShvKX19cmVuZGVyZXIoZSl7cmV0dXJuIHRoaXMuX2ludmFsaWRhdGVkJiYodGhpcy5fdXBkYXRlSW1wbChlKSx0aGlzLl9pbnZhbGlkYXRlZD0hMSksdGhpcy5fc291cmNlLmhpZGVMb2xsaXBvcHMoKT9udWxsOnRoaXMuX3JlbmRlcmVyfV9sb2xsaXBvcElkKGUpe3JldHVybiBlWzBdLnRvU3RyaW5nKCl9X3VwZGF0ZUltcGwoZSl7dGhpcy5fcmVuZGVyZXIuY2xlYXIoKTtjb25zdCB0PXRoaXMuX3NvdXJjZS5kYXRhKCkscz10aGlzLl9tb2RlbC50aW1lU2NhbGUoKSxpPXMudmlzaWJsZUJhcnNTdHJpY3RSYW5nZSgpLG49dGhpcy5fbW9kZWwubWFpblNlcmllcygpLmJhcnMoKSxvPXRoaXMuX21vZGVsLm1haW5TZXJpZXMoKSxhPW8ucHJpY2VTY2FsZSgpLGw9by5maXJzdEJhcigpO2lmKGEuaXNFbXB0eSgpfHxzLmlzRW1wdHkoKXx8IWx8fCF0fHxudWxsPT09aSlyZXR1cm47Y29uc3QgdT10aGlzLl9tb2RlbC5tYWluUGFuZSgpO2lmKCF1KXJldHVybjtpZih0aGlzLl9zb3VyY2UuaGlkZUxvbGxpcG9wcygpKXJldHVybiB2b2lkIHRoaXMuX2FjdGl2ZUxvbGxpcG9wSW5mby5zZXRWYWx1ZShudWxsKTtmb3IoY29uc3QgZSBpbiB0aGlzLl9sb2xsaXBvcHMpdGhpcy5fbG9sbGlwb3BzLmhhc093blByb3BlcnR5KGUpJiYoKDAsci5lbnN1cmVEZWZpbmVkKSh0aGlzLl9sb2xsaXBvcHNbZV0pLnZpc2libGU9ITEpO2NvbnN0IGM9dGhpcy5fZ2V0WSgpLGg9aS5maXJzdEJhcigpLGQ9aS5sYXN0QmFyKCksXz10aGlzLl9zb3VyY2Uuem9yZGVyKCkscD11LmxvbGxpcG9wRGF0YVNvdXJjZXMoKS5maWx0ZXIoKGU9PmUhPT10aGlzLl9zb3VyY2UmJmUuem9yZGVyKCk+XyYmZS5pc1Zpc2libGUoKSkpO3QucmFuZ2UoaCxkKS5lYWNoKCgoZSx0KT0+e2xldCBpPTA7Zm9yKGNvbnN0IHQgb2YgcClpKz10LmxvbGxpcG9wc0F0SW5kZXgoZSk7cmV0dXJuIHRoaXMuYWRkTG9sbGlwb3AoYyxuLHMsYSxlLHQsaSksITF9KSksdGhpcy5hZnRlclVwZGF0ZShjLG4scyxhKSx0aGlzLl9jcmVhdGVSZW5kZXJlcnMoZSl9X2Zvcm1hdERhdGUoZSx0KXtsZXQgcyxpPSEwO2lmKGk9dS5WZXJzaW9uLnBhcnNlKHRoaXMuX3NvdXJjZS5tZXRhSW5mbygpLnZlcnNpb24pLmlzTGVzc09yRXF1YWwobmV3IHUuVmVyc2lvbigxMzcsMCkpLGkpe2xldCB0PSJFdGMvVVRDIjt0aGlzLl9tb2RlbC5tYWluU2VyaWVzKCkuaXNEV00oKXx8KHQ9dGhpcy5fbW9kZWwudGltZXpvbmVFeGNlcHRFeGNoYW5nZSgpLnZhbHVlKCk/PyIiKTtjb25zdCBpPSgwLG4uZ2V0X3RpbWV6b25lKSh0KTtzPSgwLG4udXRjX3RvX2NhbCkoaSxlKX1lbHNlIHM9bmV3IERhdGUoZSk7cmV0dXJuKHQ/IuKJiCAiOiIiKSt0aGlzLl9tb2RlbC5kYXRlRm9ybWF0dGVyKCkuZm9ybWF0KHMpfV9nZXRNb3JlRmluYW5jaWFsc0xpbmsoKXtpZighL1xiZXRmXGIvaS50ZXN0KHRoaXMuX21vZGVsLm1haW5TZXJpZXMoKS5zeW1ib2xJbmZvKCk/LmRlc2NyaXB0aW9ufHwiIikpcmV0dXJue2NoaWxkcmVuOnRoaXMuX2dldE1vcmVGaW5hbmNpYWxzTGlua1RleHQoKSxvbkNsaWNrOigpPT57bC5nbG9iYWxDbG9zZURlbGVnYXRlLmZpcmUoKSwoMCxvLmlzRmVhdHVyZXNldEVuYWJsZWQpKCJtb2JpbGVfYXBwX2FjdGlvbl9vcGVuX2ZpbmFuY2lhbHNfd2VidmlldyIpPygwLGgub3BlbkZpbmFuY2lhbHNXZWJ2aWV3KShuZXcgVVJMU2VhcmNoUGFyYW1zKTooMCxjLnNob3dGaW5hbmNpYWxzRGlhbG9nKSh7aW5pdGlhbFRhYklkOnRoaXMuX2dldE1vcmVGaW5hbmNpYWxzTGlua0luaXRpYWxUYWJJZH0pfX19X2dldE1vcmVGaW5hbmNpYWxzTGlua1RleHQoKXtyZXR1cm4oMCxhLmdldE1vcmVGaW5hbmNpYWxzTGlua1RleHQpKHRoaXMuX21vZGVsLm1haW5TZXJpZXMoKS5zeW1ib2xJbmZvKCkpfV9vblN5bWJvbE9ySW50ZXJ2YWxDaGFuZ2VkKCl7c3VwZXIuX29uU3ltYm9sT3JJbnRlcnZhbENoYW5nZWQoKSx0aGlzLl9zeW1ib2xOYW1lPW51bGx9fX0sNDY3OTIxKGUsdCxzKXsidXNlIHN0cmljdCI7cy5yKHQpLHMuZCh0LHttaWdyYXRlSmF2YVN0YXRlVG9QaW5lOigpPT5oLHBpbmVJZEZvckphdmFJZDooKT0+bH0pO2NvbnN0IGk9KDAsCnMoNTA1NTYpLmdldEhleENvbG9yQnlOYW1lKSgiY29sb3ItdGFuLW9yYW5nZS02MDAiKSxyPW5ldyBNYXAoW1sic3R1ZHlBRFJAdHYtYmFzaWNzdHVkaWVzIiwiU1REO0FkdmFuY2VfRGVjbGluZV9SYXRpb19CYXJzIl0sWyJBVFJAdHYtYmFzaWNzdHVkaWVzIiwiU1REO0F2ZXJhZ2VfVHJ1ZV9SYW5nZSJdLFsiQUNDREB0di1iYXNpY3N0dWRpZXMiLCJTVEQ7QWNjdW11bGF0aW9uX0Rpc3RyaWJ1dGlvbiJdLFsiQVJPT05AdHYtYmFzaWNzdHVkaWVzIiwiU1REO0Fyb29uIl0sWyJBd2Vzb21lT3NjaWxsYXRvckB0di1iYXNpY3N0dWRpZXMiLCJTVEQ7QXdlc29tZV9Pc2NpbGxhdG9yIl0sWyJCQkB0di1iYXNpY3N0dWRpZXMiLCJTVEQ7Qm9sbGluZ2VyX0JhbmRzIl0sWyJCb2xsaW5nZXJCYW5kc1JAdHYtYmFzaWNzdHVkaWVzIiwiU1REO0JvbGxpbmdlcl9CYW5kc19CIl0sWyJCb2xsaW5nZXJCYW5kc1dpZHRoQHR2LWJhc2ljc3R1ZGllcyIsIlNURDtCb2xsaW5nZXJfQmFuZHNfV2lkdGgiXSxbIkNDSUB0di1iYXNpY3N0dWRpZXMiLCJTVEQ7Q0NJIl0sWyJDTUZAdHYtYmFzaWNzdHVkaWVzIiwiU1REO0NoYWlraW5fTW9uZXlfRmxvdyJdLFsiQ2hhaWtpbk9zY2lsbGF0b3JAdHYtYmFzaWNzdHVkaWVzIiwiU1REO0NoYWlraW5fT3NjaWxsYXRvciJdLFsiY2hhbmRlTU9AdHYtYmFzaWNzdHVkaWVzIiwiU1REO0NoYW5kZV9Nb21lbnR1bV9Pc2NpbGxhdG9yIl0sWyJDaG9wcGluZXNzSW5kZXhAdHYtYmFzaWNzdHVkaWVzIiwiU1REO0Nob3BwaW5lc3NfSW5kZXgiXSxbIkNvbXBhcmVAdHYtYmFzaWNzdHVkaWVzIiwiU1REO0NvbXBhcmUiXSxbIkNSU0lAdHYtYmFzaWNzdHVkaWVzIiwiU1REO0Nvbm5vcnNfUlNJIl0sWyJDb3JyZWxhdGlvbkNvZWZmaWNpZW50QHR2LWJhc2ljc3R1ZGllcyIsIlNURDtDb3JyZWxhdGlvbl9Db2VmZiJdLFsiRG91YmxlRU1BQHR2LWJhc2ljc3R1ZGllcyIsIlNURDtERU1BIl0sWyJETUB0di1iYXNpY3N0dWRpZXMiLCJTVEQ7RE1JIl0sWyJEZXRyZW5kZWRQcmljZU9zY2lsbGF0b3JAdHYtYmFzaWNzdHVkaWVzIiwiU1REO0RQTyJdLFsiRE9OQ0hAdHYtYmFzaWNzdHVkaWVzIiwiU1REO0RvbmNoaWFuX0NoYW5uZWxzIl0sWyJFYXNlT2ZNb3ZlbWVudEB0di1iYXNpY3N0dWRpZXMiLCJTVEQ7RU9NIl0sWyJFRklAdHYtYmFzaWNzdHVkaWVzIiwiU1REO0VGSSJdLFsiRU5WQHR2LWJhc2ljc3R1ZGllcyIsIlNURDtFTlYiXSxbIk1BRXhwQHR2LWJhc2ljc3R1ZGllcyIsIlNURDtFTUEiXSxbIkZpc2hlclRyYW5zZm9ybUB0di1iYXNpY3N0dWRpZXMiLCJTVEQ7RmlzaGVyX1RyYW5zZm9ybSJdLFsiSFZAdHYtYmFzaWNzdHVkaWVzIiwiU1REO0hpc3RvcmljYWxfVm9sYXRpbGl0eSJdLFsiaHVsbE1BQHR2LWJhc2ljc3R1ZGllcyIsIlNURDtIdWxsJTFNQSJdLFsiSWNoaW1va3VDbG91ZEB0di1iYXNpY3N0dWRpZXMiLCJTVEQ7SWNoaW1va3UlMUNsb3VkIl0sWyJLU1RAdHYtYmFzaWNzdHVkaWVzIiwiU1REO0tub3dfU3VyZV9UaGluZyJdLFsiS0xUTlJAdHYtYmFzaWNzdHVkaWVzIiwiU1REO0tlbHRuZXJfQ2hhbm5lbHMiXSxbIkxpbmVhclJlZ3Jlc3Npb25AdHYtYmFzaWNzdHVkaWVzIiwiU1REO0xpbmVhcl9SZWdyZXNzaW9uIl0sWyJNQUNEQHR2LWJhc2ljc3R1ZGllcyIsIlNURDtNQUNEIl0sWyJNQVdlaWdodGVkQHR2LWJhc2ljc3R1ZGllcyIsIlNURDtXTUEiXSxbIk1PTUB0di1iYXNpY3N0dWRpZXMiLCJTVEQ7TW9tZW50dW0iXSxbIk1GQHR2LWJhc2ljc3R1ZGllcyIsIlNURDtNb25leV9GbG93Il0sWyJNVFBDQHR2LWJhc2ljc3R1ZGllcyIsIlNURDtNdWx0aS1UaW1lJVBlcmlvZCVDaGFydHMiXSxbIk9CVkB0di1iYXNpY3N0dWRpZXMiLCJTVEQ7T25fQmFsYW5jZV9Wb2x1bWUiXSxbIlBTQVJAdHYtYmFzaWNzdHVkaWVzIiwiU1REO1BTQVIiXSxbIlBpdm90UG9pbnRzSGlnaExvd0B0di1iYXNpY3N0dWRpZXMiLCJTVEQ7UGl2b3QlMVBvaW50cyUxSGlnaCUxTG93Il0sWyJQaXZvdFBvaW50c1N0YW5kYXJkQHR2LWJhc2ljc3R1ZGllcyIsIlNURDtQaXZvdCUxUG9pbnRzJTFTdGFuZGFyZCJdLFsiUHJpY2VPc2NAdHYtYmFzaWNzdHVkaWVzIiwiU1REO1ByaWNlX09zY2lsbGF0b3IiXSxbIlByaWNlVm9sdW1lVHJlbmRAdHYtYmFzaWNzdHVkaWVzIiwiU1REO1ByaWNlX1ZvbHVtZV9UcmVuZCJdLFsiUlNJQHR2LWJhc2ljc3R1ZGllcyIsIlNURDtSU0kiXSxbIlJPQ0B0di1iYXNpY3N0dWRpZXMiLCJTVEQ7Uk9DIl0sWyJWaWdvckluZGV4QHR2LWJhc2ljc3R1ZGllcyIsIlNURDtSZWxhdGl2ZV9WaWdvcl9JbmRleCJdLFsiVm9sYXRpbGl0eUluZGV4QHR2LWJhc2ljc3R1ZGllcyIsIlNURDtSZWxhdGl2ZV9Wb2xhdGlsaXR5X0luZGV4Il0sWyJTTUlFcmdvZGljSW5kaWNhdG9yQHR2LWJhc2ljc3R1ZGllcyIsIlNURDtTTUlfRXJnb2RpY19JbmRpY2F0b3JfT3NjaWxsYXRvciJdLFsiU01JRXJnb2RpY09zY2lsbGF0b3JAdHYtYmFzaWNzdHVkaWVzIiwiU1REO1NNSV9FcmdvZGljX09zY2lsbGF0b3IiXSxbIk1BU2ltcGxlQHR2LWJhc2ljc3R1ZGllcyIsIlNURDtTTUEiXSxbIlN0b2NoYXN0aWNAdHYtYmFzaWNzdHVkaWVzIiwiU1REO1N0b2NoYXN0aWMiXSxbIlN0b2NoYXN0aWNSU0lAdHYtYmFzaWNzdHVkaWVzIiwiU1REO1N0b2NoYXN0aWNfUlNJIl0sWyJUcmlwbGVFTUFAdHYtYmFzaWNzdHVkaWVzIiwiU1REO1RFTUEiXSxbIlRyaXhAdHYtYmFzaWNzdHVkaWVzIiwiU1REO1RSSVgiXSxbIlVsdGltYXRlT3NjQHR2LWJhc2ljc3R1ZGllcyIsIlNURDtVbHRpbWF0ZV9Pc2NpbGxhdG9yIl0sWyJWV0FQQHR2LWJhc2ljc3R1ZGllcyIsIlNURDtWV0FQIl0sWyJNQVZvbHVtZVdlaWdodGVkQHR2LWJhc2ljc3R1ZGllcyIsIlNURDtWV01BIl0sWyJWU1RPUEB0di1iYXNpY3N0dWRpZXMiLCJTVEQ7Vm9sYXRpbGl0eV9TdG9wIl0sWyJXaWxsaWFtc0FsbGlnYXRvckB0di1iYXNpY3N0dWRpZXMiLCJTVEQ7V2lsbGlhbXNfQWxsaWdhdG9yIl0sWyJXaWxsaWFtc0ZyYWN0YWxAdHYtYmFzaWNzdHVkaWVzIiwiU1REO1doaWxsaWFtc19GcmFjdGFscyJdLFsiV2lsbGlhbVJAdHYtYmFzaWNzdHVkaWVzIiwiU1REO1dpbGxhbXNfUiJdLFsiWmlnWmFnQHR2LWJhc2ljc3R1ZGllcyIsIlNURDtaaWdfWmFnIl0sWyJNb29uUGhhc2VzQHR2LWJhc2ljc3R1ZGllcyIsIlNURDtNb29uJTFQaGFzZXMiXSxbIlByaWNlVm9sdW1lVHJlbmRAdHYtYmFzaWNzdHVkaWVzIiwiU1REO1ByaWNlX1ZvbHVtZV9UcmVuZCJdLFsiQ29ycmVsYXRpb25Db2VmZmljaWVudEB0di1iYXNpY3N0dWRpZXMiLCJTVEQ7Q29ycmVsYXRpb25fQ29lZmYiXV0pLG49bmV3IE1hcChbWyJBUk9PTkB0di1iYXNpY3N0dWRpZXMiLG5ldyBNYXAoW1siQXJvb25Eb3duIiwiQXJvb24gRG93biJdLFsiQXJvb25VcCIsIkFyb29uIFVwIl1dKV0sWyJETUB0di1iYXNpY3N0dWRpZXMiLG5ldyBNYXAoW1siRElfTiIsIi1ESSJdLFsiRElfUCIsIitESSJdXSldLFsiRE9OQ0hAdHYtYmFzaWNzdHVkaWVzIixuZXcgTWFwKFtbIkRvbmNoaWFuQmFzaXMiLCJCYXNpcyJdLFsiRG9uY2hpYW5Mb3dlciIsIkxvd2VyIl0sWyJEb25jaGlhblVwcGVyIiwiVXBwZXIiXV0pXSxbIk1BRXhwQHR2LWJhc2ljc3R1ZGllcyIsbmV3IE1hcChbWyJNb3ZBdmdFeHAiLCJFTUEiXV0pXSxbIkVOVkB0di1iYXNpY3N0dWRpZXMiLG5ldyBNYXAoW1siZW52YmFzaXMiLCJCYXNpcyJdLFsiZW52dXBwZXIiLCJVcHBlciJdLFsiZW52bG93ZXIiLCJMb3dlciJdXSldLFsiSWNoaW1va3VDbG91ZEB0di1iYXNpY3N0dWRpZXMiLG5ldyBNYXAoW1siVHVybmluZ0xpbmUiLCJDb252ZXJzaW9uIExpbmUiXSxbIlN0YW5kYXJkTGluZSIsIkJhc2UgTGluZSJdLFsiQ2xvc2VMaW5lIiwiTGFnZ2luZyBTcGFuIl0sWyJMZWFkMUxpbmUiLCJMZWFkaW5nIFNwYW4gQSJdLFsiTGVhZDJMaW5lIiwiTGVhZGluZyBTcGFuIEIiXV0pXSxbIktMVE5SQHR2LWJhc2ljc3R1ZGllcyIsbmV3IE1hcChbWyJLZWx0bmVyVXBwZXIiLCJVcHBlciJdLFsiS2VsdG5lckNlbnRlciIsIkJhc2lzIl0sWyJLZWx0bmVyTG93ZXIiLCJMb3dlciJdXSldLFsiS1NUQHR2LWJhc2ljc3R1ZGllcyIsbmV3IE1hcChbWyJTSUciLCJTaWduYWwiXV0pXSxbIk1BU2ltcGxlQHR2LWJhc2ljc3R1ZGllcyIsbmV3IE1hcChbWyJNb3ZBdmdTaW1wbGUiLCJNQSJdXSldLFsiUlNJQHR2LWJhc2ljc3R1ZGllcyIsbmV3IE1hcChbWyJSZWxhdGl2ZVN0cmVuZ3RoSW5kZXgiLCJSU0kiXV0pXSxbIlN0b2NoYXN0aWNAdHYtYmFzaWNzdHVkaWVzIixuZXcgTWFwKFtbIksiLCIlSyJdLFsiRCIsIiVEIl1dKV0sWyJWaWdvckluZGV4QHR2LWJhc2ljc3R1ZGllcyIsbmV3IE1hcChbWyJTSUciLCJTaWduYWwiXV0pXV0pLG89bmV3IE1hcChbWyJLU1RAdHYtYmFzaWNzdHVkaWVzIixuZXcgTWFwKFtbIlplcm8gTGluZSIsIlplcm8iXV0pXSxbIlJTSUB0di1iYXNpY3N0dWRpZXMiLG5ldyBNYXAoW1siVXBwZXIgQmFuZCIsIlJTSSBVcHBlciBCYW5kIl0sWyJMb3dlciBCYW5kIiwiUlNJIExvd2VyIEJhbmQiXV0pXV0pLGE9bmV3IE1hcChbWyJDUlNJQHR2LWJhc2ljc3R1ZGllcyIsbmV3IE1hcChbWyJMZW5ST0MiLHsKbmFtZToiUk9DIExlbmd0aCJ9XSxbIkxlblJTSSIse25hbWU6IlJTSSBMZW5ndGgifV0sWyJMZW5VUCIse25hbWU6IlVwRG93biBMZW5ndGgifV1dKV0sWyJQaXZvdFBvaW50c0hpZ2hMb3dAdHYtYmFzaWNzdHVkaWVzIixuZXcgTWFwKFtbImxlbmd0aCBoaWdoIix7Z3JvdXA6IkxFTkdUSCBMRUZUIC8gUklHSFQiLG5hbWU6IlBpdm90IEhpZ2gifV0sWyJsZW5ndGggbG93Iix7Z3JvdXA6IkxFTkdUSCBMRUZUIC8gUklHSFQiLG5hbWU6IlBpdm90IExvdyJ9XV0pXSxbIkljaGltb2t1Q2xvdWRAdHYtYmFzaWNzdHVkaWVzIixuZXcgTWFwKFtbInR1cm5pbmcgbGluZSBwZXJpb2RzIix7bmFtZToiQ29udmVyc2lvbiBMaW5lIExlbmd0aCJ9XSxbInN0YW5kYXJkIGxpbmUgcGVyaW9kcyIse25hbWU6IkJhc2UgTGluZSBMZW5ndGgifV0sWyJsZWFkaW5nIHNwYW4gMiBwZXJpb2RzIix7bmFtZToiTGVhZGluZyBTcGFuIEIgTGVuZ3RoIn1dLFsiZGlzcGxhY2VtZW50Iix7bmFtZToiTGFnZ2luZyBTcGFuIn1dXSldXSk7ZnVuY3Rpb24gbChlKXtyZXR1cm4gci5nZXQoZSk/P251bGx9Y29uc3QgdT1uZXcgU2V0KFsibGluZSIsInNoYXBlcyIsImNoYXJzIiwiYXJyb3dzIiwib2hsY19vcGVuIiwib2hsY19oaWdoIiwib2hsY19sb3ciLCJvaGxjX2Nsb3NlIl0pO2Z1bmN0aW9uIGMoZSx0LHMpe3JldHVybiBlLmlucHV0cy5maW5kKChlPT4oZS5uYW1lLnN0YXJ0c1dpdGgodCl8fGUubmFtZS5lbmRzV2l0aCh0KSkmJmUuZ3JvdXA9PT1zKSk/LmlkPz9udWxsfWZ1bmN0aW9uIGgoZSx0LHMpeyFmdW5jdGlvbihlKXtpZihlLmFyZWFCYWNrZ3JvdW5kKXtlLmZpbGxlZEFyZWFzU3R5bGU9ZS5maWxsZWRBcmVhc1N0eWxlPz97fTtjb25zdCB0PWUuZmlsbGVkQXJlYXNTdHlsZT8uZmlsbF8wPz97fTt0LmNvbG9yPWUuYXJlYUJhY2tncm91bmQuYmFja2dyb3VuZENvbG9yLHQudHJhbnNwYXJlbmN5PWUuYXJlYUJhY2tncm91bmQudHJhbnNwYXJlbmN5LHQudmlzaWJsZT1lLmFyZWFCYWNrZ3JvdW5kLmZpbGxCYWNrZ3JvdW5kLGUuZmlsbGVkQXJlYXNTdHlsZS5maWxsXzA9dH1kZWxldGUgZS5hcmVhQmFja2dyb3VuZH0oZSksZnVuY3Rpb24oZSx0LHMpe2NvbnN0IGk9e30scj1hLmdldCh0LmlkKT8/bmV3IE1hcDtzLmlucHV0cy5mb3JFYWNoKCh0PT57Y29uc3Qgcz10Lm5hbWUudG9Mb3dlckNhc2UoKSxuPXQuZ3JvdXA7Zm9yKGNvbnN0IG8gb2YgT2JqZWN0LmtleXMoZS5pbnB1dHMpKXtjb25zdCBhPXIuZ2V0KG8pPy5uYW1lPz9vLGw9ci5nZXQobyk/Lmdyb3VwPz9uO2lmKGEudG9Mb3dlckNhc2UoKT09PXMmJmw9PT1uKXtpW3QuaWRdPWUuaW5wdXRzW29dO2JyZWFrfX0ib2Zmc2V0Ij09PXMmJmUub2Zmc2V0JiYoaVt0LmlkXT1lLm9mZnNldC52YWwpfSkpLGUuaW5wdXRzPWksZGVsZXRlIGUub2Zmc2V0fShlLHQscyksZnVuY3Rpb24oZSx0LHMpe2NvbnN0IGk9dC5wYWxldHRlcz8/e30scj1zLnBhbGV0dGVzPz97fSxuPU9iamVjdC5rZXlzKGkpLG89T2JqZWN0LmtleXMocik7MT09PW4ubGVuZ3RoJiYxPT09by5sZW5ndGgmJihlLnBhbGV0dGVzW29bMF1dPWUucGFsZXR0ZXNbblswXV0sZGVsZXRlIGUucGFsZXR0ZXNbblswXV0pfShlLHQscyksZnVuY3Rpb24oZSx0LHMpe2NvbnN0IGk9bi5nZXQodC5pZCk/P25ldyBNYXAscj1zLnN0eWxlcz8/e30sbz1lLnN0eWxlcyxhPXt9LGw9dC5wbG90cy5maWx0ZXIoKGU9PnUuaGFzKGUudHlwZSkpKSxjPXMucGxvdHMuZmlsdGVyKChlPT51LmhhcyhlLnR5cGUpKSk7aWYoMT09PWMubGVuZ3RoJiYxPT09bC5sZW5ndGgpe2NvbnN0IGU9Y1swXS5pZCx0PWxbMF0uaWQ7dCYmKGFbZV09b1t0XSl9ZWxzZSBmb3IoY29uc3QgZSBvZiBjKXtjb25zdCB0PWUuaWQscz1yW3RdO2lmKHMpe2NvbnN0IGU9cy50aXRsZS50b0xvd2VyQ2FzZSgpO2Zvcihjb25zdCBzIG9mIE9iamVjdC5rZXlzKG8pKWlmKChpLmdldChzKT8/cykudG9Mb3dlckNhc2UoKT09PWUpe2FbdF09b1tzXTticmVha319fWUuc3R5bGVzPWF9KGUsdCxzKSxmdW5jdGlvbihlLHQscyl7Y29uc3QgaT1zLmJhbmRzLHI9ZS5iYW5kcyxuPW8uZ2V0KHQuaWQpPz9uZXcgTWFwO2lmKGkmJnIpe2NvbnN0IG89cy5kZWZhdWx0cy5iYW5kcz8ubGVuZ3RoPz8wLGE9QXJyYXkuZnJvbSh7bGVuZ3RoOm99KTsocy5kZWZhdWx0cy5iYW5kcz8/W10pLmZvckVhY2goKChlLHMpPT57Y29uc3Qgbz1pW3NdO2lmKG8pe2NvbnN0IGk9by5uYW1lLnRvTG93ZXJDYXNlKCksbD10LmJhbmRzPz9bXTthW3NdPWU7Zm9yKGxldCBlPTA7ZTxsLmxlbmd0aDtlKyspe2NvbnN0IHQ9bFtlXS5uYW1lO2lmKChuLmdldCh0KT8/dCkudG9Mb3dlckNhc2UoKT09PWkpe2Fbc109cltlXTticmVha319fX0pKSxlLmJhbmRzPWF9fShlLHQscyksZnVuY3Rpb24oZSx0LHMpe2lmKGUuYmFuZHNCYWNrZ3JvdW5kKXtjb25zdCB0PShzLmZpbGxlZEFyZWFzPz9bXSkuZmluZCgoZT0+ImhsaW5lX2hsaW5lIj09PWUudHlwZSkpO2lmKHQpe2UuZmlsbGVkQXJlYXNTdHlsZT1lLmZpbGxlZEFyZWFzU3R5bGU/P3t9O2NvbnN0IHM9dC5pZCxpPWUuZmlsbGVkQXJlYXNTdHlsZVtzXT8/e307aS5jb2xvcj1lLmJhbmRzQmFja2dyb3VuZC5iYWNrZ3JvdW5kQ29sb3IsaS52aXNpYmxlPWUuYmFuZHNCYWNrZ3JvdW5kLmZpbGxCYWNrZ3JvdW5kLGkudHJhbnNwYXJlbmN5PWUuYmFuZHNCYWNrZ3JvdW5kLnRyYW5zcGFyZW5jeSxlLmZpbGxlZEFyZWFzU3R5bGVbc109aX19ZGVsZXRlIGUuYmFuZHNCYWNrZ3JvdW5kfShlLDAscyksIlBpdm90UG9pbnRzU3RhbmRhcmRAdHYtYmFzaWNzdHVkaWVzIiE9PXQuaWQmJiJQaXZvdFBvaW50c1N0YW5kYXJkIiE9PXQuaWR8fGZ1bmN0aW9uKGUsdCxzKXtlLmdyYXBoaWNzPWUuZ3JhcGhpY3M/P3t9LGUuZ3JhcGhpY3MuZHdnbGFiZWxzPWUuZ3JhcGhpY3MuZHdnbGFiZWxzPz97fSxlLmdyYXBoaWNzLmR3Z2xhYmVscy5sYWJlbHM9ZS5ncmFwaGljcy5kd2dsYWJlbHMubGFiZWxzPz97dmlzaWJsZTplLmxldmVsc1N0eWxlPy5zaG93TGFiZWxzPz8hMH0sZS5wYWxldHRlcz1lLnBhbGV0dGVzPz97fSwKZS5wYWxldHRlcy5wYWxldHRlX2NvbW1vbj1lLnBhbGV0dGVzLnBhbGV0dGVfY29tbW9uPz97fSxlLnBhbGV0dGVzLnBhbGV0dGVfY29tbW9uLmNvbG9ycz1lLnBhbGV0dGVzLnBhbGV0dGVfY29tbW9uLmNvbG9ycz8/e307bGV0IHI9MTtbIlAiLCJTMS9SMSIsIlMyL1IyIiwiUzMvUjMiLCJTNC9SNCIsIlM1L1I1Il0uZm9yRWFjaCgodD0+e2NvbnN0IG49ZS5sZXZlbHNTdHlsZT8uY29sb3JzPy5bdF0/P2k7dC5zcGxpdCgiLyIpLmZvckVhY2goKHQ9Pntjb25zdCBpPWMocyx0LCJsZXZlbHMiKTtpJiYoZS5pbnB1dHNbaV09biksZS5wYWxldHRlcy5wYWxldHRlX2NvbW1vbi5jb2xvcnNbcl09ZS5wYWxldHRlcy5wYWxldHRlX2NvbW1vbi5jb2xvcnNbcl0/P3t9LGUucGFsZXR0ZXMucGFsZXR0ZV9jb21tb24uY29sb3JzW3JdLmNvbG9yPW4scisrfSkpfSkpO2NvbnN0IG49YyhzLCJMaW5lIFdpZHRoIiwibGV2ZWxzIik7aWYobil7Y29uc3QgdD1lLmxldmVsc1N0eWxlPy53aWR0aHM/LlA/PzE7ZS5pbnB1dHNbbl09dH19KGUsMCxzKX19LDg0MTU1OChlLHQscyl7InVzZSBzdHJpY3QiO3MuZCh0LHtOb25TZXJpZXNTdHVkeTooKT0+bn0pO3ZhciBpPXMoMTM4NjM4KSxyPXMoMTk3MjcyKTtjbGFzcyBuIGV4dGVuZHMgci5TdHVkeXtpc0xpbmtlZFRvU2VyaWVzKCl7cmV0dXJuITB9Y2xlYXJEYXRhKCl7dGhpcy5fY3VzdG9tRGF0YT1udWxsLHRoaXMuX2luZGV4ZXM9bnVsbH1yZXN0b3JlRGF0YShlLHQscyl7c3VwZXIucmVzdG9yZURhdGEoZSksdGhpcy5fY3VzdG9tRGF0YT10LHRoaXMuX2luZGV4ZXM9c31zdGF0ZShlKXtjb25zdCB0PXN1cGVyLnN0YXRlKGUpO3JldHVybiBlJiYodC5ub25TZXJpZXNEYXRhPXRoaXMuX2N1c3RvbURhdGEsdC5pbmRleGVzPXRoaXMuX2luZGV4ZXMpLHR9Y3VzdG9tRGF0YSgpe3JldHVybiB0aGlzLl9jdXN0b21EYXRhfV9zZXRQYW5lVmlld3MoZSl7dGhpcy5fcGFuZVZpZXdzPWUsdGhpcy5tb2RlbCgpLmxpZ2h0VXBkYXRlKCl9X29uRGF0YVVwZGF0ZWQoZSx0LHMpe251bGwhPT10JiYodC5pbmRleGVzX3JlcGxhY2U/KCgwLGkuYXNzZXJ0KSgibm9jaGFuZ2UiIT09cyksdGhpcy5faW5kZXhlcz1zKToodGhpcy5fY3VzdG9tRGF0YT10LmRhdGEsIm5vY2hhbmdlIiE9PXMmJih0aGlzLl9pbmRleGVzPXMpKSksc3VwZXIuX29uRGF0YVVwZGF0ZWQoZSx0LHMpfX19LDg0NDcyNyhlLHQscyl7InVzZSBzdHJpY3QiO3MuZCh0LHtzdHVkeV9QaXZvdFBvaW50c1N0YW5kYXJkOigpPT5BfSk7dmFyIGk9cygxMzg2MzgpLHI9cyg4NDE1NTgpLG49cyg5MTg3NzkpLG89cygxNTEyMSk7Y2xhc3MgYXtjb25zdHJ1Y3RvcihlLHQscyxpKXt0aGlzLl9wcmljZUF4aXNGb250U2l6ZT0xMSx0aGlzLl9wcmljZXM9W10sdGhpcy5fbGFiZWxXaWR0aD0wLHRoaXMuX3BpeGVsUmF0aW9QYXJhbXM9ZSx0aGlzLl9yZWNyZWF0ZUNhbnZhc0FuZENvbnRleHQoKDAsbi5zaXplKSh7d2lkdGg6MCxoZWlnaHQ6MH0pKSx0aGlzLnJlc2V0KHtmb250OnQsZm9udFNpemU6cyxiYWNrQ29sb3JzOml9KX1kZXN0cm95KCl7ZGVsZXRlIHRoaXMuX2NhbnZhcyxkZWxldGUgdGhpcy5fY2FjaGV9Y2FudmFzKCl7cmV0dXJuIHRoaXMuX2NhbnZhc31yZXNldChlKXt0aGlzLl9yZW5kZXJQYXJhbXM9ZSx0aGlzLl9wcmljZXM9W10sdGhpcy5fY2FjaGUuZm9udD1lLmZvbnRTaXplKyJweCAiK2UuZm9udCx0aGlzLl9sYWJlbFdpZHRoPVsiUCIsIlMxIiwiUjEiLCJTMiIsIlIyIiwiUzMiLCJSMyIsIlM0IiwiUjQiLCJTNSIsIlI1IiwiLyJdLnJlZHVjZSgoKGUsdCk9Pntjb25zdCBzPXRoaXMuX2NhY2hlLm1lYXN1cmVUZXh0KHQpLndpZHRoO3JldHVybiBNYXRoLm1heChzLGUpfSksMCl9cm93SGVpZ2h0KCl7cmV0dXJuIHRoaXMuX3ByaWNlQXhpc0ZvbnRTaXplKzR9bGFiZWxSZWN0QnlJbmRleChlKXtyZXR1cm57bGVmdDowLHRvcDpNYXRoLnJvdW5kKHRoaXMuX3RvcEJ5SW5kZXgoZSkpLHdpZHRoOk1hdGgucm91bmQodGhpcy5fbGFiZWxXaWR0aCs0KSxoZWlnaHQ6TWF0aC5yb3VuZCh0aGlzLl9yZW5kZXJQYXJhbXMuZm9udFNpemUrOCl9fXNldFByaWNlcyhlKXtsZXQgdD0hMTtjb25zdCBzPShlLHQpPT57Y29uc3Qgcz12b2lkIDA9PT1lLHI9dm9pZCAwPT09dDtyZXR1cm4oIXMmJiFyfHxzPT09cikmJigwLGkuZW5zdXJlRGVmaW5lZCkoZSkuZm9ybWF0dGVkPT09KDAsaS5lbnN1cmVEZWZpbmVkKSh0KS5mb3JtYXR0ZWR9O2lmKGUubGVuZ3RoIT09dGhpcy5fcHJpY2VzLmxlbmd0aCl0PSEwO2Vsc2UgZm9yKGxldCBpPTA7aTx0aGlzLl9wcmljZXMubGVuZ3RoO2krKylpZighcyh0aGlzLl9wcmljZXNbaV0sZVtpXSkpe3Q9ITA7YnJlYWt9aWYodCl7Y29uc3QgdD10aGlzLl9sYWJlbFdpZHRoKzYscz10aGlzLl9yZW5kZXJQYXJhbXMuZm9udFNpemUsaT1NYXRoLm1heChlLmxlbmd0aCwyMikqKHMrOCk7dGhpcy5fcmVjcmVhdGVDYW52YXNBbmRDb250ZXh0KCgwLG4uc2l6ZSkoe3dpZHRoOnQsaGVpZ2h0Oml9KSksdGhpcy5fcHJpY2VzPWUsdGhpcy5fY2FjaGUuc2F2ZSgpLCgwLG8uZHJhd1NjYWxlZCkodGhpcy5fY2FjaGUsdGhpcy5fcGl4ZWxSYXRpb1BhcmFtcy5ob3Jpem9udGFsUGl4ZWxSYXRpbyx0aGlzLl9waXhlbFJhdGlvUGFyYW1zLnZlcnRpY2FsUGl4ZWxSYXRpbywoKCk9Pnt0aGlzLl9jYWNoZS50cmFuc2xhdGUoLjUsLjUpLHRoaXMuX2NhY2hlLmZvbnQ9dGhpcy5fcmVuZGVyUGFyYW1zLmZvbnRTaXplKyJweCAiK3RoaXMuX3JlbmRlclBhcmFtcy5mb250LHRoaXMuX2NhY2hlLnRleHRCYXNlbGluZT0ibWlkZGxlIjtmb3IobGV0IGU9MDtlPHRoaXMuX3ByaWNlcy5sZW5ndGg7ZSsrKXtpZighdGhpcy5fcHJpY2VzW2VdKWNvbnRpbnVlO2NvbnN0IHQ9WyJQIiwiUzEiLCJSMSIsIlMyIiwiUjIiLCJTMyIsIlIzIiwiUzQiLCJSNCIsIlM1IiwiUjUiXVtlXTt0aGlzLl9jYWNoZS5maWxsU3R5bGU9dGhpcy5fcmVuZGVyUGFyYW1zLmJhY2tDb2xvcnNbZV0sdGhpcy5fY2FjaGUuZmlsbFRleHQodCwwLHRoaXMuX2NlbnRlckJ5SW5kZXgoZSkpLAp0aGlzLl9jYWNoZS5maWxsVGV4dCgiLyIsMCx0aGlzLl9jZW50ZXJCeUluZGV4KGUrMTEpKX19KSksdGhpcy5fY2FjaGUucmVzdG9yZSgpLHRoaXMuX3ByaWNlcz1lfX1fcmVjcmVhdGVDYW52YXNBbmRDb250ZXh0KGUpe3RoaXMuX2NhbnZhcz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKSx0aGlzLl9jYW52YXMud2lkdGg9ZS53aWR0aCp0aGlzLl9waXhlbFJhdGlvUGFyYW1zLmhvcml6b250YWxQaXhlbFJhdGlvLHRoaXMuX2NhbnZhcy5oZWlnaHQ9ZS5oZWlnaHQqdGhpcy5fcGl4ZWxSYXRpb1BhcmFtcy52ZXJ0aWNhbFBpeGVsUmF0aW8sdGhpcy5fY2FjaGU9KDAsaS5lbnN1cmVOb3ROdWxsKSh0aGlzLl9jYW52YXMuZ2V0Q29udGV4dCgiMmQiKSl9X2NlbnRlckJ5SW5kZXgoZSl7cmV0dXJuIE1hdGgucm91bmQoKGUrLjUpKih0aGlzLl9yZW5kZXJQYXJhbXMuZm9udFNpemUrOCkpfV90b3BCeUluZGV4KGUpe3JldHVybiBNYXRoLnJvdW5kKGUqKHRoaXMuX3JlbmRlclBhcmFtcy5mb250U2l6ZSs4KSl9fXZhciBsPXMoOTI2MTQ5KSx1PXMoNzE2NzgpLGM9cyg4NzM1NzMpO2NvbnN0IGg9WyJQIiwiUzEiLCJSMSIsIlMyIiwiUjIiLCJTMyIsIlIzIiwiUzQiLCJSNCIsIlM1IiwiUjUiXTtjbGFzcyBkIGV4dGVuZHMgdS5QcmljZUF4aXNWaWV3e2NvbnN0cnVjdG9yKGUsdCl7c3VwZXIoKSx0aGlzLl9zb3VyY2U9ZSx0aGlzLl9kYXRhPXQ7Y29uc3Qgcz10Lm5hbWU7dGhpcy5fY29tcGxldGVOYW1lPSJQIj09PXMudG9VcHBlckNhc2UoKT8iUCI6YFMke3NbMV19L1Ike3NbMV19YH1fdXBkYXRlUmVuZGVyZXJEYXRhKGUsdCxzKXtlLnZpc2libGU9ITEsdC52aXNpYmxlPSExO2NvbnN0IGk9dGhpcy5fc291cmNlLnByb3BlcnRpZXMoKS5jaGlsZHMoKTtpZighaS52aXNpYmxlLnZhbHVlKCkpcmV0dXJuO2NvbnN0IHI9dGhpcy5fY29tcGxldGVOYW1lLG49aS5sZXZlbHNTdHlsZS5jaGlsZHMoKS52aXNpYmlsaXR5LmNoaWxkcygpO2lmKCFuW3JdfHwhbltyXS52YWx1ZSgpKXJldHVybjtjb25zdCBvPXRoaXMuX3NvdXJjZS5tb2RlbCgpLGE9by50aW1lU2NhbGUoKSxsPXRoaXMuX3NvdXJjZS5wcmljZVNjYWxlKCk7aWYoYS5pc0VtcHR5KCl8fG51bGw9PT1hLnZpc2libGVCYXJzU3RyaWN0UmFuZ2UoKXx8bnVsbCE9PWwmJmwuaXNFbXB0eSgpKXJldHVybjtjb25zdCB1PXRoaXMuX3NvdXJjZS5jdXN0b21EYXRhKCk7aWYoIXV8fCF1LnBpdm90cylyZXR1cm47Y29uc3QgZD10aGlzLl9zb3VyY2UucHJpY2VzVmlldygpLnByaWNlcygpW2guaW5kZXhPZih0aGlzLl9kYXRhLm5hbWUudG9VcHBlckNhc2UoKSldO2lmKCFkKXJldHVybjtjb25zdCBfPSgwLGMucmVzZXRUcmFuc3BhcmVuY3kpKGQuY29sb3IpO3MuYmFja2dyb3VuZD1fLHMudGV4dENvbG9yPXRoaXMuZ2VuZXJhdGVUZXh0Q29sb3Iocy5iYWNrZ3JvdW5kKSxzLmNvb3JkaW5hdGU9ZC5jb29yZGluYXRlO2NvbnN0IHA9dGhpcy5fc291cmNlLm1vZGVsKCkucHJvcGVydGllcygpLmNoaWxkcygpLnNjYWxlc1Byb3BlcnRpZXMuY2hpbGRzKCk7cC5zaG93U3R1ZHlMYXN0VmFsdWUudmFsdWUoKSYmKGUudGV4dD1kLmZvcm1hdHRlZCxlLnZpc2libGU9ITApLHAuc2hvd1N0dWR5UGxvdExhYmVscy52YWx1ZSgpJiYodC50ZXh0PXRoaXMuX3NvdXJjZS5wcmljZUxhYmVsVGV4dCh0aGlzLl9kYXRhLm5hbWUpLHQudmlzaWJsZT0hMCksZS5zZWxlY3RlZE1hcmtDb2xvcj1vLnNlbGVjdGlvbigpLmlzU2VsZWN0ZWQodGhpcy5fc291cmNlKT9fOnZvaWQgMH19dmFyIF89cygzNzY2NDUpLHA9cyg1MzY3MTApLHk9cyg5MzI2OTMpLG09cyg5MzYzMjYpO2NvbnN0IHY9WyJwIiwiczEiLCJyMSIsInMyIiwicjIiLCJzMyIsInIzIiwiczQiLCJyNCIsInM1IiwicjUiXSxmPXtQOiJQIixTMToiUzEvUjEiLFMyOiJTMi9SMiIsUzM6IlMzL1IzIixTNDoiUzQvUjQiLFM1OiJTNS9SNSIsUjE6IlMxL1IxIixSMjoiUzIvUjIiLFIzOiJTMy9SMyIsUjQ6IlM0L1I0IixSNToiUzUvUjUifTtjbGFzcyBTe2NvbnN0cnVjdG9yKGUpe3RoaXMuX3Zpc2libGVQaXZvdHM9bmV3IFNldCx0aGlzLl9pbnZpZGF0ZWQ9ITAsdGhpcy5fcHJpY2VzPVtdLHRoaXMuX3NvdXJjZT1lfXZpc2libGVQaXZvdHMoKXtyZXR1cm4gdGhpcy5fdmlzaWJsZVBpdm90c311cGRhdGUoKXt0aGlzLl9pbnZpZGF0ZWQ9ITB9cHJpY2VzKCl7cmV0dXJuIHRoaXMuX2ludmlkYXRlZCYmKHRoaXMuX3VwZGF0ZUltcGwoKSx0aGlzLl9pbnZpZGF0ZWQ9ITEpLHRoaXMuX3ByaWNlc31fdXBkYXRlSW1wbCgpe3RoaXMuX3Zpc2libGVQaXZvdHMuY2xlYXIoKTtjb25zdCBlPXRoaXMuX3NvdXJjZS5tb2RlbCgpLHQ9dGhpcy5fc291cmNlLnByaWNlU2NhbGUoKTtpZihudWxsPT09dClyZXR1cm47aWYoZS50aW1lU2NhbGUoKS5pc0VtcHR5KCl8fHQuaXNFbXB0eSgpKXJldHVybjtjb25zdCBzPWUudGltZVNjYWxlKCkudmlzaWJsZUJhcnNTdHJpY3RSYW5nZSgpO2lmKG51bGw9PT1zKXJldHVybjtpZighdGhpcy5fc291cmNlLmN1c3RvbURhdGEoKXx8IXRoaXMuX3NvdXJjZS5jdXN0b21EYXRhKCkucGl2b3RzKXJldHVybjtjb25zdCBpPWUubWFpblNlcmllcygpLmJhcnMoKS5zZWFyY2gocy5sYXN0QmFyKCksbS5QbG90Um93U2VhcmNoTW9kZS5OZWFyZXN0TGVmdCk7aWYobnVsbD09PWkpcmV0dXJuO2NvbnN0IHI9dGhpcy5fc291cmNlLmluZGV4ZXMoKTtpZighcilyZXR1cm47Y29uc3Qgbj1pLmluZGV4LG89dGhpcy5fc291cmNlLmN1c3RvbURhdGEoKS5waXZvdHMsYT10aGlzLl9zb3VyY2UucHJvcGVydGllcygpLmNoaWxkcygpLGw9dGhpcy5fc291cmNlLmZpcnN0VmFsdWUoKTtmb3IobGV0IGU9MDtlPG8ubGVuZ3RoO2UrKyl7aWYoIW9bZV0pY29udGludWU7Y29uc3Qgcz1yW29bZV0uc3RhcnRJbmRleF0saT1yW29bZV0uZW5kSW5kZXhdLHU9YS5pbnB1dHMuY2hpbGRzKCkuc2hvd0hpc3RvcmljYWxQaXZvdHMudmFsdWUoKTtpZihzPD1uJiYoaT49bnx8dSkpe3RoaXMuX3Zpc2libGVQaXZvdHMuYWRkKG9bZV0pLHRoaXMuX3ByaWNlcz1bXTtmb3IobGV0IHM9MDtzPHYubGVuZ3RoO3MrKyl7CmNvbnN0IGk9dltzXSxyPW9bZV1baV07aWYodm9pZCAwPT09cnx8bnVsbD09PWwpY29udGludWU7Y29uc3Qgbj10LnByaWNlVG9Db29yZGluYXRlKHIsbCksdT1pLnRvVXBwZXJDYXNlKCksYz1mW3VdLGg9YS5sZXZlbHNTdHlsZS5jaGlsZHMoKS5jb2xvcnMuY2hpbGRzKClbY10udmFsdWUoKTt0aGlzLl9wcmljZXMucHVzaCh7Zm9ybWF0dGVkOnQuZm9ybWF0UHJpY2UocixsKSxwcmljZTpyLGNvb3JkaW5hdGU6bixjb2xvcjpofSl9fX19fXZhciBnPXMoNzM2NTMxKSxiPXMoMjYwNjkpLHc9cyg3ODkxOTApLEM9cyg2NTA0ODApLFA9cyg3NjMpLHg9cyg5MzQzMDUpO2NsYXNzIEQgZXh0ZW5kcyB4LkJpdG1hcENvb3JkaW5hdGVzUGFuZVJlbmRlcmVye2NvbnN0cnVjdG9yKGUsdCxzKXtzdXBlcigpLHRoaXMuX2RyYXdSZWN0cz1bXSx0aGlzLl9jYWNoZVByb3ZpZGVyPWUsdGhpcy5fcG9pbnQ9dCx0aGlzLl9sYWJlbD1zfWhpdFRlc3QoZSl7Zm9yKGNvbnN0IHQgb2YgdGhpcy5fZHJhd1JlY3RzKWlmKGUueD49dC5sZWZ0JiZlLng8PXQubGVmdCt0LndpZHRoJiZlLnk+PXQudG9wJiZlLnk8PXQudG9wK3QuaGVpZ2h0KXJldHVybiBuZXcgUC5IaXRUZXN0UmVzdWx0KFAuSGl0VGFyZ2V0LlJlZ3VsYXIpO3JldHVybiBudWxsfV9kcmF3SW1wbChlKXtjb25zdCB0PXRoaXMuX2NhY2hlUHJvdmlkZXIoZSkse2hvcml6b250YWxQaXhlbFJhdGlvOnMsdmVydGljYWxQaXhlbFJhdGlvOmksY29udGV4dDpyfT1lO3RoaXMuX2RyYXdSZWN0cz1bXTtjb25zdCBuPWU9Pntjb25zdCBuPXQubGFiZWxSZWN0QnlJbmRleChlKSxvPXtsZWZ0Ok1hdGgucm91bmQodGhpcy5fcG9pbnQueC1uLndpZHRoK2EpLHRvcDpNYXRoLnJvdW5kKHRoaXMuX3BvaW50Lnktbi5oZWlnaHQvMiksd2lkdGg6bi53aWR0aCxoZWlnaHQ6bi5oZWlnaHR9O3JldHVybiByLmRyYXdJbWFnZSh0LmNhbnZhcygpLE1hdGgucm91bmQobi5sZWZ0KnMpLE1hdGgucm91bmQobi50b3AqaSksbi53aWR0aCpzLG4uaGVpZ2h0KmksTWF0aC5yb3VuZChvLmxlZnQqcyksTWF0aC5yb3VuZChvLnRvcCppKSxvLndpZHRoKnMsby5oZWlnaHQqaSksdGhpcy5fZHJhd1JlY3RzLnB1c2gobyksbi53aWR0aH0sbz10aGlzLl9sYWJlbC5zcGxpdCgiLyIpO2xldCBhPTA7Zm9yKGxldCBlPTA7ZTxvLmxlbmd0aDtlKyspe2NvbnN0IHQ9WyJQIiwiUzEiLCJSMSIsIlMyIiwiUjIiLCJTMyIsIlIzIiwiUzQiLCJSNCIsIlM1IiwiUjUiXS5pbmRleE9mKG9bZV0pO2U+MCYmKGErPW4odCsxMSkvMiksYSs9bih0KS8yfX19ZnVuY3Rpb24gSShlKXtyZXR1cm4iUCI9PT1lP2U6IlMiK2VbMV0rIi9SIitlWzFdfWZ1bmN0aW9uIFQoZSx0LHMpe2NvbnN0IGk9dDt2b2lkIDA9PT1lW2ldP2VbaV09e3RleHQ6cyxpZHM6W0kocyldfTooZVtpXS50ZXh0Kz0iLyIrcyxlW2ldLmlkcy5wdXNoKEkocykpKX1jbGFzcyBWe2NvbnN0cnVjdG9yKGUsdCl7dGhpcy5fcGl2b3RzPVtdLHRoaXMuX2ludmFsaWRhdGVkPSEwLHRoaXMuX3JlbmRlcmVyPW5ldyB3LkNvbXBvc2l0ZVJlbmRlcmVyLHRoaXMuX21vZGVsPWUsdGhpcy5fc291cmNlPXQsdGhpcy5fY2FjaGVQcm92aWRlcj10aGlzLl9zb3VyY2UuZ2V0Q2FjaGUuYmluZCh0aGlzLl9zb3VyY2UpfXVwZGF0ZShlKXt0aGlzLl9pbnZhbGlkYXRlZD0hMH1yZW5kZXJlcigpe3JldHVybiB0aGlzLl9pbnZhbGlkYXRlZCYmKHRoaXMuX3VwZGF0ZUltcGwoKSx0aGlzLl9pbnZhbGlkYXRlZD0hMSksdGhpcy5fcmVuZGVyZXJ9X3VwZGF0ZUltcGwoKXt0aGlzLl9yZW5kZXJlci5jbGVhcigpO2NvbnN0IGU9dGhpcy5fc291cmNlLm93bmVyU291cmNlKCk7aWYobnVsbD09PWUpcmV0dXJuO3RoaXMuX3NvdXJjZS5wcmljZXNWaWV3KCkucHJpY2VzKCksdGhpcy5fcGl2b3RzPVtdO2NvbnN0IHQ9dGhpcy5fc291cmNlLmN1c3RvbURhdGEoKTtpZighdHx8IXQucGl2b3RzKXJldHVybjtjb25zdCBzPXRoaXMuX3NvdXJjZS5wcm9wZXJ0aWVzKCkuY2hpbGRzKCk7aWYoIXMudmlzaWJsZS52YWx1ZSgpKXJldHVybjtjb25zdCByPXQucGl2b3RzLG49dGhpcy5fc291cmNlLmluZGV4ZXMoKSxvPXRoaXMuX21vZGVsLnRpbWVTY2FsZSgpLGE9dGhpcy5fc291cmNlLnByaWNlU2NhbGUoKSxsPWUuZmlyc3RWYWx1ZSgpO2lmKCFhfHxhLmlzRW1wdHkoKXx8by5pc0VtcHR5KCl8fCFyfHwhbnx8bnVsbD09PWwpcmV0dXJuO2NvbnN0IHU9KDAsaS5lbnN1cmVOb3ROdWxsKShvLnZpc2libGVCYXJzU3RyaWN0UmFuZ2UoKSksYz11LmZpcnN0QmFyKCksaD11Lmxhc3RCYXIoKTtmb3IobGV0IGU9MDtlPHIubGVuZ3RoO2UrKyl7aWYoIXJbZV0pY29udGludWU7Y29uc3QgdD1uW3JbZV0uc3RhcnRJbmRleF0saT1uW3JbZV0uZW5kSW5kZXhdO2lmKGk8Y3x8dD5oKWNvbnRpbnVlO2NvbnN0IHU9e30sZD1zLmxldmVsc1N0eWxlLmNoaWxkcygpLnZpc2liaWxpdHkuY2hpbGRzKCk7ZC5QLnZhbHVlKCkmJlQodSxyW2VdLnAsIlAiKSxkWyJTMS9SMSJdLnZhbHVlKCkmJihUKHUscltlXS5zMSwiUzEiKSxUKHUscltlXS5yMSwiUjEiKSksZFsiUzIvUjIiXS52YWx1ZSgpJiYoVCh1LHJbZV0uczIsIlMyIiksVCh1LHJbZV0ucjIsIlIyIikpLGRbIlMzL1IzIl0udmFsdWUoKSYmKFQodSxyW2VdLnMzLCJTMyIpLFQodSxyW2VdLnIzLCJSMyIpKSxkWyJTNC9SNCJdLnZhbHVlKCkmJihUKHUscltlXS5zNCwiUzQiKSxUKHUscltlXS5yNCwiUjQiKSksZFsiUzUvUjUiXS52YWx1ZSgpJiYoVCh1LHJbZV0uczUsIlM1IiksVCh1LHJbZV0ucjUsIlI1IikpO2NvbnN0IF89by5pbmRleFRvQ29vcmRpbmF0ZSh0KSxwPW8uaW5kZXhUb0Nvb3JkaW5hdGUoaSk7Zm9yKGNvbnN0IHQgb2YgT2JqZWN0LmtleXModSkpe2NvbnN0IHM9cGFyc2VGbG9hdCh0KSxpPWEucHJpY2VUb0Nvb3JkaW5hdGUocyxsKTt0aGlzLl9waXZvdHMucHVzaCh7eDE6Xyx4MjpwLHk6aSxsYWJlbDp1W3RdLnRleHQsbGFiZWxJZHM6dVt0XS5pZHMsc3JjOnJbZV19KX19CmNvbnN0IGQ9cy5sZXZlbHNTdHlsZS5jaGlsZHMoKS5jb2xvcnMsXz1zLmxldmVsc1N0eWxlLmNoaWxkcygpLndpZHRocyxwPXRoaXMuX3NvdXJjZS52aXNpYmxlUGl2b3RzKCk7Zm9yKGxldCBlPTA7ZTx0aGlzLl9waXZvdHMubGVuZ3RoO2UrKyl7Y29uc3QgdD10aGlzLl9waXZvdHNbZV07aWYoIXAuaGFzKHQuc3JjKSljb250aW51ZTtjb25zdCBpPXtjb2xvcjpkLmNoaWxkcygpW3QubGFiZWxJZHNbMF1dLnZhbHVlKCksbGluZXdpZHRoOl8uY2hpbGRzKClbdC5sYWJlbElkc1swXV0udmFsdWUoKSxsaW5lc3R5bGU6Yi5MSU5FU1RZTEVfU09MSUQseTp0LnksbGVmdDp0LngxLHJpZ2h0OnQueDJ9LHI9bmV3IEMuSG9yaXpvbnRhbExpbmVSZW5kZXJlcjtyLnNldERhdGEoaSksci5zZXRIaXRUZXN0KG5ldyBQLkhpdFRlc3RSZXN1bHQoUC5IaXRUYXJnZXQuUmVndWxhcikpLHRoaXMuX3JlbmRlcmVyLmFwcGVuZChyKSxzLmxldmVsc1N0eWxlLmNoaWxkcygpLnNob3dMYWJlbHMudmFsdWUoKSYmdGhpcy5fcmVuZGVyZXIuYXBwZW5kKG5ldyBEKHRoaXMuX2NhY2hlUHJvdmlkZXIsbmV3IGcuUG9pbnQodC54MSx0LnkpLHQubGFiZWwpKX19fXZhciBSPXMoNjM1NTA5KTtjbGFzcyBBIGV4dGVuZHMgci5Ob25TZXJpZXNTdHVkeXtjb25zdHJ1Y3RvcihlLHQscyxpLHIsbil7c3VwZXIoZSx0LHMsaSxyLG4pLHRoaXMuX2NhY2hlPW51bGwsdGhpcy5fY2FjaGVkUGl4ZWxSYXRpb1BhcmFtcz1udWxsO2NvbnN0IG89WyJQIiwiUzEvUjEiLCJTMi9SMiIsIlMzL1IzIiwiUzQvUjQiLCJTNS9SNSJdLGE9dGhpcy5wcm9wZXJ0aWVzKCkuY2hpbGRzKCkubGV2ZWxzU3R5bGUuY2hpbGRzKCkudmlzaWJpbGl0eTtmb3IobGV0IGU9MDtlPG8ubGVuZ3RoO2UrKylhLmNoaWxkcygpW29bZV1dLnN1YnNjcmliZSh0aGlzLCgoKT0+dGhpcy5wcm9jZXNzSGliZXJuYXRlKCkpKX1wcmljZXNWaWV3KCl7cmV0dXJuIHRoaXMuX3ByaWNlc1ZpZXd9aW5kZXhlcygpe3JldHVybiB0aGlzLl9pbmRleGVzfXByb3BlcnRpZXMoKXtyZXR1cm4gdGhpcy5fcHJvcGVydGllc31nZXRDYWNoZShlKXtpZihudWxsPT09dGhpcy5fY2FjaGV8fG51bGw9PXRoaXMuX2NhY2hlZFBpeGVsUmF0aW9QYXJhbXN8fCh0PWUscz10aGlzLl9jYWNoZWRQaXhlbFJhdGlvUGFyYW1zLHQuaG9yaXpvbnRhbFBpeGVsUmF0aW8hPT1zLmhvcml6b250YWxQaXhlbFJhdGlvfHx0LnZlcnRpY2FsUGl4ZWxSYXRpbyE9PXMudmVydGljYWxQaXhlbFJhdGlvKSl7dGhpcy5fY2FjaGUmJnRoaXMuX2NhY2hlLmRlc3Ryb3koKTtjb25zdCB0PXRoaXMuX2dldEFjdHVhbENhY2hlUGFyYW1zKCkscz17aG9yaXpvbnRhbFBpeGVsUmF0aW86ZS5ob3Jpem9udGFsUGl4ZWxSYXRpbyx2ZXJ0aWNhbFBpeGVsUmF0aW86ZS52ZXJ0aWNhbFBpeGVsUmF0aW99O3RoaXMuX2NhY2hlPW5ldyBhKHMsdC5mb250LHQuZm9udFNpemUsdC5iYWNrQ29sb3JzKSx0aGlzLl9jYWNoZS5zZXRQcmljZXMoKDAsaS5lbnN1cmVOb3ROdWxsKSh0aGlzLl9wcmljZXNWaWV3KS5wcmljZXMoKSksdGhpcy5fY2FjaGVkUGl4ZWxSYXRpb1BhcmFtcz1zLHRoaXMuX2NhY2hlLnJlc2V0KHQpfXZhciB0LHM7cmV0dXJuIHRoaXMuX2NhY2hlfXByaWNlTGFiZWxUZXh0KGUpe3JldHVybiB0aGlzLl9tZXRhSW5mby52YWx1ZSgpLnNob3J0RGVzY3JpcHRpb24rIjoiK2UudG9VcHBlckNhc2UoKX11cGRhdGVBbGxWaWV3cyhlKXtzdXBlci51cGRhdGVBbGxWaWV3cyhlKSx0aGlzLl9wcmljZXNWaWV3LnVwZGF0ZSgpfXZpc2libGVQaXZvdHMoKXtyZXR1cm4gdGhpcy5fcHJpY2VzVmlldy52aXNpYmxlUGl2b3RzKCl9aXNWaXNpYmxlKCl7aWYoIXRoaXMucHJvcGVydGllcygpLmNoaWxkcygpLnZpc2libGUudmFsdWUoKXx8IXRoaXMuaXNBY3R1YWxJbnRlcnZhbCgpKXJldHVybiExO2NvbnN0IGU9WyJQIiwiUzEvUjEiLCJTMi9SMiIsIlMzL1IzIiwiUzQvUjQiLCJTNS9SNSJdLHQ9dGhpcy5wcm9wZXJ0aWVzKCkuY2hpbGRzKCkubGV2ZWxzU3R5bGUuY2hpbGRzKCkudmlzaWJpbGl0eTtmb3IobGV0IHM9MDtzPGUubGVuZ3RoO3MrKylpZih0LmNoaWxkcygpW2Vbc11dLnZhbHVlKCkpcmV0dXJuITA7cmV0dXJuITF9c3RvcCgpe3N1cGVyLnN0b3AoKSx0aGlzLl9jYWNoZSYmKHRoaXMuX2NhY2hlLmRlc3Ryb3koKSx0aGlzLl9jYWNoZT1udWxsKX1wcmljZVJhbmdlKGUpe2lmKGUudGFyZ2V0UHJpY2VTY2FsZSE9PXRoaXMucHJpY2VTY2FsZSgpKXJldHVybiBudWxsO2NvbnN0IHQ9dGhpcy5jdXN0b21EYXRhKCk/LnBpdm90cztpZighdHx8IXRoaXMuX2luZGV4ZXMpcmV0dXJuIG51bGw7aWYoIXRoaXMucHJpY2VTY2FsZSgpKXJldHVybiBudWxsO2NvbnN0IHM9dCxpPXRoaXMuX2luZGV4ZXMse3N0YXJ0VGltZVBvaW50OnIsZW5kVGltZVBvaW50Om59PWU7bGV0IG89bnVsbDtmb3IobGV0IGU9MDtlPHMubGVuZ3RoO2UrKyl7aWYoIXNbZV0pY29udGludWU7Y29uc3QgdD1pW3NbZV0uc3RhcnRJbmRleF07aWYoaVtzW2VdLmVuZEluZGV4XTxyfHx0Pm4pY29udGludWU7Y29uc3QgYT1bXSxsPXRoaXMucHJvcGVydGllcygpLmNoaWxkcygpLmxldmVsc1N0eWxlLmNoaWxkcygpLnZpc2liaWxpdHkuY2hpbGRzKCk7bC5QLnZhbHVlKCkmJmEucHVzaChzW2VdLnApLGxbIlMxL1IxIl0udmFsdWUoKSYmYS5wdXNoKHNbZV0uczEsc1tlXS5yMSksbFsiUzIvUjIiXS52YWx1ZSgpJiZhLnB1c2goc1tlXS5zMixzW2VdLnIyKSxsWyJTMy9SMyJdLnZhbHVlKCkmJmEucHVzaChzW2VdLnMzLHNbZV0ucjMpLGxbIlM0L1I0Il0udmFsdWUoKSYmYS5wdXNoKHNbZV0uczQsc1tlXS5yNCksbFsiUzUvUjUiXS52YWx1ZSgpJiZhLnB1c2goc1tlXS5zNSxzW2VdLnI1KTtmb3IobGV0IGU9MDtlPGEubGVuZ3RoO2UrKylhW2VdJiYobnVsbD09PW8/bz1uZXcgUi5QcmljZVJhbmdlKGFbZV0sYVtlXSk6by5hcHBseShhW2VdLGFbZV0pKX1jb25zdCBhPXRoaXMucHJpY2VTY2FsZSgpCjtyZXR1cm4gYSYmYS5pc0xvZygpJiZvP25ldyBSLlByaWNlUmFuZ2UoYS5wcmljZVRvTG9naWNhbChvLm1pblZhbHVlKCkpLGEucHJpY2VUb0xvZ2ljYWwoby5tYXhWYWx1ZSgpKSk6b31fY3JlYXRlVmlld3MoKXt0aGlzLl9jYWNoZSYmKHRoaXMuX2NhY2hlLmRlc3Ryb3koKSx0aGlzLl9jYWNoZT1udWxsKSx0aGlzLl9wcmljZUF4aXNWaWV3cz1bXTtjb25zdCBlPVsiUCIsIlMxIiwiUjEiLCJTMiIsIlIyIiwiUzMiLCJSMyIsIlM0IiwiUjQiLCJTNSIsIlI1Il07dGhpcy5fcGFuZVZpZXdzLmxlbmd0aD0wLHRoaXMuX2xhYmVsUGFuZVZpZXdzPVtdO2NvbnN0IHQ9bmV3IFYodGhpcy5fbW9kZWwsdGhpcyk7dGhpcy5fcGFuZVZpZXdzLnB1c2godCk7Zm9yKGxldCB0PTA7dDxlLmxlbmd0aDt0Kyspe2NvbnN0IHM9bmV3IGQodGhpcyx7bmFtZTplW3RdfSk7dGhpcy5fcHJpY2VBeGlzVmlld3MucHVzaChzKSx0aGlzLl9sYWJlbFBhbmVWaWV3cy5wdXNoKG5ldyBfLlBhbmVQcmljZUF4aXNWaWV3KHMsdGhpcyx0aGlzLl9tb2RlbCkpfXRoaXMuX2RhdGFXaW5kb3dWaWV3fHwodGhpcy5fZGF0YVdpbmRvd1ZpZXc9bmV3IHAuU3R1ZHlEYXRhV2luZG93Vmlldyh0aGlzLHRoaXMuX21vZGVsKSksdGhpcy5fc3RhdHVzVmlld3x8KHRoaXMuX3N0YXR1c1ZpZXc9bmV3IHkuU3R1ZHlTdGF0dXNWaWV3KHRoaXMpKSx0aGlzLl9sZWdlbmRWaWV3PW51bGwsdGhpcy5fcHJpY2VzVmlldz1uZXcgUyh0aGlzKX1fcG9zdFByb2Nlc3NHcmFwaGljcygpe31fZ2V0QWN0dWFsQ2FjaGVQYXJhbXMoKXtjb25zdCBlPXRoaXMucHJvcGVydGllcygpLmNoaWxkcygpLHQ9ZS5sZXZlbHNTdHlsZS5jaGlsZHMoKS5jb2xvcnMuY2hpbGRzKCk7cmV0dXJue2ZvbnQ6bC5DSEFSVF9GT05UX0ZBTUlMWV9XVi52YWx1ZSgpLGZvbnRTaXplOmUuZm9udHNpemUudmFsdWUoKSxiYWNrQ29sb3JzOlt0LlAudmFsdWUoKSx0WyJTMS9SMSJdLnZhbHVlKCksdFsiUzEvUjEiXS52YWx1ZSgpLHRbIlMyL1IyIl0udmFsdWUoKSx0WyJTMi9SMiJdLnZhbHVlKCksdFsiUzMvUjMiXS52YWx1ZSgpLHRbIlMzL1IzIl0udmFsdWUoKSx0WyJTNC9SNCJdLnZhbHVlKCksdFsiUzQvUjQiXS52YWx1ZSgpLHRbIlM1L1I1Il0udmFsdWUoKSx0WyJTNS9SNSJdLnZhbHVlKCldfX19fSwzNjM2MTgoZSx0LHMpeyJ1c2Ugc3RyaWN0IjtzLmQodCx7c3R1ZHlfRVNEJFRWX1JPTExEQVRFUzooKT0+a30pO3ZhciBpPXMoNjMxNTIyKSxyPXMoMjAzNjgxKSxuPXMoNzQwMTYyKSxvPXMoNTA1NTYpLGE9cygxODUyNzEpLGw9cyg1NTQ2NTQpLHU9cyg5MjY5OTUpLGM9cyg4ODcwMjkpLGg9cygyNjA2OSksZD1zKDU5MDg5NCksXz1zKDkyNjE0OSkscD1zKDg3MzU3MykseT1zKDUzNzQ4NyksbT1zKDgyMTk5MSk7Y29uc3Qgdj1bYS50KG51bGwsdm9pZCAwLHMoOTQ0Nzg0KSksYS50KG51bGwsdm9pZCAwLHMoMzM2MzApKSxhLnQobnVsbCx2b2lkIDAscyg2MzU2NDMpKSxhLnQobnVsbCx2b2lkIDAscygxNTU4NTIpKSxhLnQobnVsbCx2b2lkIDAscyg4NDk5NzMpKSxhLnQobnVsbCx2b2lkIDAscyg0MDI0ODIpKSxhLnQobnVsbCx2b2lkIDAscyg5MjQ2ODkpKSxhLnQobnVsbCx2b2lkIDAscyg5NTk3NzIpKSxhLnQobnVsbCx2b2lkIDAscyg0MTUyNjEpKSxhLnQobnVsbCx2b2lkIDAscyg4MTQ1MDEpKSxhLnQobnVsbCx2b2lkIDAscyg5NzE1NjEpKSxhLnQobnVsbCx2b2lkIDAscygzMDk2NjYpKV07dmFyIGY9cyg3NjMpLFM9cyg2MzcxMDQpO2NvbnN0IGc9bmV3IFBhdGgyRCgibTE4LjA2IDEyLjAzLjUzLS41My0uNTMtLjUzLTMuNS0zLjUtMS4wNiAxLjA2IDIuMjIgMi4yMmgtNS4zOEw2LjA2IDYuNDcgNSA3LjUzbDQuNSA0LjUuMjIuMjJoNmwtMi4yMiAyLjIyIDEuMDYgMS4wNnptLTEwLjU2LjQ0LTMgMyAxLjA2IDEuMDYgMy0zeiIpO2NsYXNzIGIgZXh0ZW5kcyBTLkxvbGxpcG9wUmVuZGVyZXJ7X2RyYXdMYWJlbChlKXsoMCxTLmRyYXdMYWJlbCkoZSxnLHRoaXMuX21hdHJpeCx7ZmlsbENvbG9yOnRoaXMuX2RhdGEuc3R5bGUuaWNvbkNvbG9yfSl9fXZhciB3PXMoNzUyNzIpO2NvbnN0IEM9YS50KG51bGwsdm9pZCAwLHMoMjE5MTA0KSksUD1hLnQobnVsbCx2b2lkIDAscyg2MTY0OTQpKSx4PWEudChudWxsLHZvaWQgMCxzKDM4Mzc1MSkpLEQ9YS50KG51bGwsdm9pZCAwLHMoNTA3NzI5KSksST17ZGFyazp7YmFja2dyb3VuZDooMCxvLmdldEhleENvbG9yQnlOYW1lKSgiY29sb3ItY29sZC1ncmF5LTkwMCIpLGZvcmVncm91bmQ6KDAsby5nZXRIZXhDb2xvckJ5TmFtZSkoImNvbG9yLWRlZXAtYmx1ZS1hMjAwIiksbGlua0NvbG9yOigwLG8uZ2V0SGV4Q29sb3JCeU5hbWUpKCJjb2xvci10di1ibHVlLTUwMCIpfSxsaWdodDp7YmFja2dyb3VuZDooMCxvLmdldEhleENvbG9yQnlOYW1lKSgiY29sb3Itd2hpdGUiKSxmb3JlZ3JvdW5kOigwLG8uZ2V0SGV4Q29sb3JCeU5hbWUpKCJjb2xvci1kZWVwLWJsdWUtYTQwMCIpLGxpbmtDb2xvcjooMCxvLmdldEhleENvbG9yQnlOYW1lKSgiY29sb3ItdHYtYmx1ZS01MDAiKX19O3ZhciBUOyFmdW5jdGlvbihlKXtlW2UuSG92ZXJlZENvbG9yQWxwaGE9LjE1XT0iSG92ZXJlZENvbG9yQWxwaGEiLGVbZS5PbmVJdGVtT2Zmc2V0PTNdPSJPbmVJdGVtT2Zmc2V0IixlW2UuTWF4SXRlbXNUb0V4dHJhY3Q9NF09Ik1heEl0ZW1zVG9FeHRyYWN0In0oVHx8KFQ9e30pKTtjb25zdCBWPXtiYXJMaW5lOntsaW5lU3R5bGU6aC5MSU5FU1RZTEVfREFTSEVELGxpbmVXaWR0aDoxLHN0cm9rZVN0eWxlOiIifSxsb2xsaXBvcDp7d2lkdGg6MjMsaGVpZ2h0OjIzLGJvdHRvbToxLGxpbmVXaWR0aDoxLjUsc3Ryb2tlU3R5bGU6IiIsYmFja2dyb3VuZENvbG9yOiIiLGZpbGxDaXJjbGU6ITAsZmlsbFN0eWxlOiIiLHRleHQ6e2xhYmVsOiIiLHN0cm9rZVN0eWxlOiIiLGZvbnQ6IiJ9fSxpY29uQ29sb3I6IiIsYmFja2dyb3VuZENvbG9yOiIiLG91dGVyQm9yZGVyQ29sb3I6IiJ9LFI9WyJGIiwiRyIsIkgiLCJKIiwiSyIsIk0iLCJOIiwiUSIsIlUiLCJWIiwiWCIsIloiXTtmdW5jdGlvbiBBKGUsdCl7Y29uc3Qgcz1NYXRoLmZsb29yKHQvMTAwKSxpPXQtMTAwKnMtMQo7cmV0dXJue25hbWU6YCR7ZX0ke1JbaV19JHtzfWAsZXhwaXJhdGlvbkRhdGU6YCR7dltpXX0gJHtzfWB9fWNsYXNzIEwgZXh0ZW5kcyBjLkxvbGxpcG9wU3R1ZHlQYW5lVmlld0Jhc2V7ZXh0cmFEYXRhKGUpe2NvbnN0IHQ9W107Zm9yKGxldCBzPTA7czw0Oysrcyl7Y29uc3QgaT0zKnMrMTtpZighQm9vbGVhbihlW2ldKSlicmVhazt0LnB1c2goe2N1cnJlbnRDb250cmFjdENvZGU6ZVtpXSxuZXh0Q29udHJhY3RDb2RlOmVbaSsxXSxzd2l0Y2hEYXRlOmVbaSsyXX0pfXJldHVybntpdGVtczp0fX1fY3JlYXRlUmVuZGVyZXJGb3JMb2xsaXBvcChlLHQpe3JldHVybiBuZXcgYihlLG5ldyBmLkhpdFRlc3RSZXN1bHQoZi5IaXRUYXJnZXQuQ3VzdG9tLHQpLHRoaXMuX3RleHRXaWR0aENhY2hlKX1hc3luYyBfY3JlYXRlVG9vbHRpcENvbnRlbnQoZSl7cmV0dXJuIGUuaXRlbXMubWFwKChlPT57Y29uc3QgdD1be25hbWU6RCx2YWx1ZTooMCx5LmZvcm1hdFlZWVlNTUREKSh0aGlzLl9tb2RlbC5kYXRlRm9ybWF0dGVyKCksZS5zd2l0Y2hEYXRlKX1dLGk9dGhpcy5fbW9kZWwuZGFyaygpLnZhbHVlKCk/SS5kYXJrOkkubGlnaHQscj10aGlzLl9tb2RlbC5tYWluU2VyaWVzKCksbj10aGlzLl9tb2RlbC5tYWluU2VyaWVzKCkuc3ltYm9sSW5mbygpO2lmKG51bGwhPT1uJiZ2b2lkIDAhPT1uLnJvb3Qpe2NvbnN0IHM9bi5saXN0ZWRfZXhjaGFuZ2Usbz17Y29sb3I6aS5saW5rQ29sb3IsY3Vyc29yOiJwb2ludGVyIn0sYT1BKG4ucm9vdCxlLmN1cnJlbnRDb250cmFjdENvZGUpO3QucHVzaCh7bmFtZTpQLHZhbHVlOmEubmFtZSx2YWx1ZVN0eWxlOm8sb25WYWx1ZUNsaWNrOigpPT50aGlzLl9tb2RlbC51bmRvTW9kZWwoKS5zZXRTeW1ib2wocixgJHtzfToke2EubmFtZX1gKX0pLHQucHVzaCh7bmFtZToiICIsdmFsdWU6YS5leHBpcmF0aW9uRGF0ZX0pO2NvbnN0IGw9QShuLnJvb3QsZS5uZXh0Q29udHJhY3RDb2RlKTt0LnB1c2goe25hbWU6eCx2YWx1ZTpsLm5hbWUsdmFsdWVTdHlsZTpvLG9uVmFsdWVDbGljazooKT0+dGhpcy5fbW9kZWwudW5kb01vZGVsKCkuc2V0U3ltYm9sKHIsYCR7c306JHtsLm5hbWV9YCl9KSx0LnB1c2goe25hbWU6IiAiLHZhbHVlOmwuZXhwaXJhdGlvbkRhdGV9KX1yZXR1cm57dGl0bGU6QyxpbmZvcm1hdGlvbkJ1dHRvblByb3BzOnthcmlhTGFiZWw6YS50KG51bGwsdm9pZCAwLHMoODY5ODY3KSksaWNvbjoicXVlc3Rpb24iLG9uQ2xpY2s6KCk9PigwLHUuc2hvd1N1cHBvcnREaWFsb2cpKHtzb2x1dGlvbklkOmwuc29sdXRpb25JZHMuU1dJVENISU5HX0NPTlRJTlVPVVNfRlVUVVJFU19DT05UUkFDVFN9KX0saWNvbjp3LHN0eWxlOntjb2xvcjppLmZvcmVncm91bmR9LG1haW46e3R5cGU6ImNvbW1vbiIsdGl0bGU6dH19fSkpfV9sb2xsaXBvcElkKGUpe3JldHVybiBlWzNdLnRvU3RyaW5nKCl9X3Nob3dCYXJMaW5lKGUpe3JldHVybiBzdXBlci5fc2hvd0JhckxpbmUoZSl8fHRoaXMuX21vZGVsLm1haW5TZXJpZXMoKS5wcm9wZXJ0aWVzKCkuY2hpbGRzKCkuc2hvd0NvbnRpbnVvdXNDb250cmFjdFN3aXRjaGVzQnJlYWtzLnZhbHVlKCl9X3JlY3JlYXRlU3R5bGVzKCl7Y29uc3QgZT10aGlzLl9tb2RlbC5kYXJrKCkudmFsdWUoKT9JLmRhcms6SS5saWdodCx0PWUuZm9yZWdyb3VuZCxzPWUuYmFja2dyb3VuZCxpPSgwLG4uZGVmYXVsdCkoKDAsci5kZWZhdWx0KShWKSx7bG9sbGlwb3A6e3RleHQ6e2ZvbnQ6KDAsZC5tYWtlRm9udCkoMTIsXy5DSEFSVF9GT05UX0ZBTUlMWV9XVi52YWx1ZSgpLCJib2xkIil9fX0pO2kuaWNvbkNvbG9yPXQsaS5sb2xsaXBvcC5zdHJva2VTdHlsZT10LGkubG9sbGlwb3AuYmFja2dyb3VuZENvbG9yPXMsaS5iYXJMaW5lLnN0cm9rZVN0eWxlPXQsdGhpcy5fZGVmYXVsdFN0eWxlPWk7e2NvbnN0IGU9KDAsci5kZWZhdWx0KShpKTtlLmxvbGxpcG9wLmZpbGxTdHlsZT0oMCxtLmJsZW5kQ29sb3JzKShzLCgwLHAuYXBwbHlBbHBoYSkodCwuMTUpKSx0aGlzLl9ob3ZlcmVkU3R5bGU9ZX17Y29uc3QgZT0oMCxyLmRlZmF1bHQpKGkpO2UubG9sbGlwb3AuZmlsbFN0eWxlPXQsZS5pY29uQ29sb3I9cyx0aGlzLl9hY3RpdmVTdHlsZT1lfXRoaXMuX3N0eWxlc0NhY2hlPW51bGx9fXZhciBFPXMoOTAwNzk3KSxNPXMoNjAxODQxKTtjbGFzcyBrIGV4dGVuZHMgaS5Mb2xsaXBvcFN0dWR5QmFzZXtpZCgpe3JldHVybiJFU0QkVFZfUk9MTERBVEVTIn16b3JkZXIoKXtyZXR1cm4gRS5zb3J0U291cmNlc1ByZU9yZGVyZWQuUm9sbERhdGVzfWlzVmFsaWQoZSl7Y29uc3QgdD1lWzRdO3JldHVybigwLE0uaXNOdW1iZXIpKHQpfV9jcmVhdGVWaWV3cygpe3RoaXMuX3BhbmVWaWV3PW5ldyBMKHRoaXMuX21vZGVsLHRoaXMpLHN1cGVyLl9jcmVhdGVWaWV3cygpfV9leHRlcm5hbFZpc2liaWxpdHlQcm9wZXJ0eSgpe3JldHVybiB0aGlzLl9tb2RlbC5tYWluU2VyaWVzKCkucHJvcGVydGllcygpLmNoaWxkcygpLnNob3dDb250aW51b3VzQ29udHJhY3RTd2l0Y2hlc319fSw1NDc1NzIoZSx0LHMpeyJ1c2Ugc3RyaWN0IjtzLmQodCx7UmVwbGF5U3R1ZHlTdHJhdGVneTooKT0+b30pO3ZhciBpPXMoODc0MzY5KSxyPXMoODY3ODMxKSxuPXMoNzY4NzYwKTtjbGFzcyBvIGV4dGVuZHMgaS5TdHVkeVN0cmF0ZWd5e2NvbnN0cnVjdG9yKGUsdCxzLGkscixuLG8pe3QubWVyZ2Uoe3N0cmF0ZWd5OntvcmRlcnM6e3Nob3dMYWJlbHM6ITAsc2hvd1F0eTohMCx2aXNpYmxlOiEwfX19KSxzdXBlcihlLHQscyxpLHIsbixvLCEwKSx0aGlzLl9ub3RpZnlTdHVkeVR1cm5hcm91bmRDb3VudGVyPTAsdGhpcy5fbm90aWZpY2F0aW9uc0luUHJvZ3Jlc3M9bmV3IE1hcCx0aGlzLl9yZXBsYXlTdHVkeVByb3BlcnRpZXM9bnVsbCx0aGlzLl9hc3NpZ25SZWNvdmVyeVN0YXRlPSgpPT57Y29uc3QgZT10aGlzLnByb3BlcnRpZXMoKS5jaGlsZHMoKS5pbnB1dHM7aWYoInJlY292ZXJ5U3RhdGUiaW4gZS5jaGlsZHMoKSl7Y29uc3QgdD10aGlzLl9yZWNvdmVyeVN0YXRlKCk7ZS5jaGlsZHMoKS5yZWNvdmVyeVN0YXRlLnNldFZhbHVlKEpTT04uc3RyaW5naWZ5KHQpKX19Cjtjb25zdCBhPXRoaXMucHJvcGVydGllcygpLmNoaWxkcygpLmlucHV0cztlLm1haW5TZXJpZXMoKS5vbkludGVydmFsQ2hhbmdlZCgpLnN1YnNjcmliZSh0aGlzLHRoaXMuX2Fzc2lnblJlY292ZXJ5U3RhdGUpLGUucmVwbGF5U3R1ZHlTdHJhdGVneVByb3BlcnRpZXMoKS50aGVuKChlPT57dGhpcy5faXNEZXN0cm95ZWR8fCh0aGlzLl9yZXBsYXlTdHVkeVByb3BlcnRpZXM9ZSx0aGlzLl9yZXBsYXlTdHVkeVByb3BlcnRpZXMuc3Vic2NyaWJlKHRoaXMsKCgpPT57dGhpcy5wcm9wZXJ0aWVzKCkuY2hpbGRzKCkuaW5wdXRzLm1lcmdlQW5kRmlyZShlLnN0YXRlKCkpfSkpLHRoaXMucHJvcGVydGllcygpLmNoaWxkcygpLmlucHV0cy5tZXJnZUFuZEZpcmUoZS5zdGF0ZSgpKSl9KSksYS5zdWJzY3JpYmUodGhpcywoKGUsdCk9PnsicmVjb3ZlcnlTdGF0ZSIhPT10JiZ0aGlzLl9hc3NpZ25SZWNvdmVyeVN0YXRlKCl9KSl9ZGVzdHJveSgpe3RoaXMuX25vdGlmaWNhdGlvbnNJblByb2dyZXNzLmZvckVhY2goKGU9PntlLnJlamVjdCgiVGhlIHN0dWR5IGhhcyBiZWVuIGRlc3Ryb3llZCIpfSkpLHRoaXMuX21vZGVsLm1haW5TZXJpZXMoKS5vbkludGVydmFsQ2hhbmdlZCgpLnVuc3Vic2NyaWJlQWxsKHRoaXMpLHRoaXMuX3JlcGxheVN0dWR5UHJvcGVydGllcz8udW5zdWJzY3JpYmVBbGwodGhpcyksc3VwZXIuZGVzdHJveSgpfWlzSGliZXJuYXRpb25BbGxvd2VkKCl7cmV0dXJuITF9Y2xlYXJSZWNvdmVyeVN0YXRlQW5kUmVwb3J0KCl7Y29uc3QgZT10aGlzLnByb3BlcnRpZXMoKS5jaGlsZHMoKS5pbnB1dHM7InJlY292ZXJ5U3RhdGUiaW4gZS5jaGlsZHMoKSYmZS5jaGlsZHMoKS5yZWNvdmVyeVN0YXRlLnNldFZhbHVlKCJ7fSIpLHRoaXMuX3JlcG9ydERhdGE9bnVsbH1yZWNvdmVyeVN0YXRlKCl7Y29uc3QgZT1KU09OLnN0cmluZ2lmeSh0aGlzLl9yZWNvdmVyeVN0YXRlKCkpO3JldHVybiJ7fSI9PT1lP251bGw6ZX1yZXN0b3JlUmVjb3ZlcnlTdGF0ZShlKXtjb25zdCB0PXRoaXMucHJvcGVydGllcygpLmNoaWxkcygpLmlucHV0czsicmVjb3ZlcnlTdGF0ZSJpbiB0LmNoaWxkcygpJiZ0LmNoaWxkcygpLnJlY292ZXJ5U3RhdGUuc2V0VmFsdWUoZSl9Y2xlYXJEYXRhKCl7dGhpcy5fYXNzaWduUmVjb3ZlcnlTdGF0ZSgpLHN1cGVyLmNsZWFyRGF0YSgpfXNob3dJbk9iamVjdFRyZWUoKXtyZXR1cm4hMX1zdGF0dXNWaWV3KCl7cmV0dXJuIG51bGx9YXN5bmMgbm90aWZ5U3R1ZHkoZSl7YXdhaXQgdGhpcy5fd2FpdEZvckNvbXBsZXRlKCk7Y29uc3QgdD0ibm90aWZ5XyIrICsrdGhpcy5fbm90aWZ5U3R1ZHlUdXJuYXJvdW5kQ291bnRlcixzPSgwLG4uY3JlYXRlRGVmZXJyZWRQcm9taXNlKSgpO3JldHVybiB0aGlzLl9ub3RpZmljYXRpb25zSW5Qcm9ncmVzcy5zZXQodCxzKSx0aGlzLl9zZW5kTm90aWZ5Q29tbWFuZCh0LGUpLHMucHJvbWlzZX1yZW1vdmVCeVJlbW92ZUFsbFN0dWRpZXMoKXtyZXR1cm4hMX1pc1JlbW92ZWRCeVN0dWR5VGVtcGxhdGVzKCl7cmV0dXJuITF9aXNTYXZlZEluQ2hhcnQoZSl7cmV0dXJuITF9aXNTYXZlZEluU3R1ZHlUZW1wbGF0ZXMoKXtyZXR1cm4hMX1fb25EYXRhKGUpe2lmKCJub3RpZnlfc3R1ZHlfb2siPT09ZS5tZXRob2Qpe2NvbnN0IHQ9ZS5wYXJhbXNbMV07dGhpcy5fbm90aWZpY2F0aW9uc0luUHJvZ3Jlc3MuZ2V0KHQpPy5yZXNvbHZlKCksdGhpcy5fbm90aWZpY2F0aW9uc0luUHJvZ3Jlc3MuZGVsZXRlKHQpfWlmKCJub3RpZnlfc3R1ZHlfZXJyb3IiPT09ZS5tZXRob2Qpe2NvbnN0IHQ9ZS5wYXJhbXNbMV0scz1lLnBhcmFtc1syXTt0aGlzLl9ub3RpZmljYXRpb25zSW5Qcm9ncmVzcy5nZXQodCk/LnJlamVjdChzKSx0aGlzLl9ub3RpZmljYXRpb25zSW5Qcm9ncmVzcy5kZWxldGUodCl9c3VwZXIuX29uRGF0YShlKX1hc3luYyBfd2FpdEZvckNvbXBsZXRlKCl7aWYodGhpcy5zdGF0dXMoKS50eXBlIT09ci5TdHVkeVN0YXR1c1R5cGUuQ29tcGxldGVkKXJldHVybiBuZXcgUHJvbWlzZSgoKGUsdCk9Pntjb25zdCBzPWk9PntpLnR5cGU9PT1yLlN0dWR5U3RhdHVzVHlwZS5Db21wbGV0ZWQ/KHRoaXMub25TdGF0dXNDaGFuZ2VkKCkudW5zdWJzY3JpYmUobnVsbCxzKSxlKCkpOmkudHlwZT09PXIuU3R1ZHlTdGF0dXNUeXBlLkVycm9yJiYodGhpcy5vblN0YXR1c0NoYW5nZWQoKS51bnN1YnNjcmliZShudWxsLHMpLHQoaS5lcnJvckRlc2NyaXB0aW9uKSl9O3RoaXMub25TdGF0dXNDaGFuZ2VkKCkuc3Vic2NyaWJlKG51bGwscyl9KSl9X3JlY292ZXJ5U3RhdGUoKXtjb25zdCBlPXRoaXMucmVwb3J0RGF0YSgpO2lmKCFlKXtjb25zdCBlPXRoaXMucHJvcGVydGllcygpLmNoaWxkcygpLmlucHV0cy5jaGlsZHMoKS5yZWNvdmVyeVN0YXRlLnZhbHVlKCk7dHJ5e3JldHVybiBKU09OLnBhcnNlKGUpfWNhdGNoe3JldHVybnt9fX1jb25zdHthY3RpdmVPcmRlcnM6dCxmaWxsZWRPcmRlcnM6cyxvcmRlcnNCcmFja2V0czppfT1lO3JldHVybnthY3RpdmVPcmRlcnM6dCxmaWxsZWRPcmRlcnM6cyxvcmRlcnNCcmFja2V0czppfX19fSwyMjI5MChlLHQscyl7InVzZSBzdHJpY3QiO3MuZCh0LHtzdHVkeV9TY3JpcHRXaXRoRGF0YU9mZnNldDooKT0+bH0pO3ZhciBpPXMoMTM4NjM4KSxyPXMoNjAxODQxKSxuPXMoODU3MTUxKSxvPXMoMTk3MjcyKSxhPXMoNTA0NDMxKTtjbGFzcyBsIGV4dGVuZHMgby5TdHVkeXtjb25zdHJ1Y3RvcihlLHQscyxpLHIsbyl7c3VwZXIoZSx0LHMsaSxyLG8pLHRoaXMuX3VuZGVybHlpbmdEYXRhPW5ldyBuLlBsb3RMaXN0KCgwLGEuc3R1ZHlQbG90RnVuY3Rpb25NYXApKGkpLGEuc3R1ZHlFbXB0eVBsb3RWYWx1ZVByZWRpY2F0ZSl9Y2xlYXJEYXRhKCl7c3VwZXIuY2xlYXJEYXRhKCksdGhpcy5fdW5kZXJseWluZ0RhdGEuY2xlYXIoKX1fbWVyZ2VEYXRhKGUpe3RoaXMuX2ludmFsaWRhdGVMYXN0Tm9uRW1wdHlQbG90Um93Q2FjaGUoKTtjb25zdCB0PXRoaXMuX3VuZGVybHlpbmdEYXRhLmZpcnN0SW5kZXgoKTt0aGlzLl91bmRlcmx5aW5nRGF0YS5tZXJnZShlKSwKdCE9PXRoaXMuX3VuZGVybHlpbmdEYXRhLmZpcnN0SW5kZXgoKSYmKHRoaXMuX2RhdGE9bmV3IG4uUGxvdExpc3QoKDAsYS5zdHVkeVBsb3RGdW5jdGlvbk1hcCkodGhpcy5fbWV0YUluZm8udmFsdWUoKSksYS5zdHVkeUVtcHR5UGxvdFZhbHVlUHJlZGljYXRlKSk7bGV0IHM9bnVsbDtjb25zdCBpPXRoaXMuX2RhdGEubGFzdEluZGV4KCk/P3RoaXMuX3VuZGVybHlpbmdEYXRhLmZpcnN0SW5kZXgoKSxvPXRoaXMuX3VuZGVybHlpbmdEYXRhLmxhc3RJbmRleCgpO2lmKG51bGwhPT1pJiZudWxsIT09bylmb3IoY29uc3QgZSBvZiB0aGlzLl91bmRlcmx5aW5nRGF0YS5yYW5nZUl0ZXJhdG9yKGksbykpbnVsbD09PXMmJihzPWUpLHRoaXMuX2RhdGEuYWRkKGUuaW5kZXgsKDAsci5jbG9uZSkoZS52YWx1ZSkpO2Zvcihjb25zdCBlIG9mIHRoaXMuX3Bsb3RzRm9yU3RyYXRlZ3lQcm9jZXNzaW5nKCkpe25ldyB1KGUuc3RyYXRlZ3lJbmRleCxlLnRhcmdldEluZGV4LGkpLnJlYnVpbGREYXRhKHRoaXMuX2RhdGEpfXJldHVybiBzfV9wbG90c0ZvclN0cmF0ZWd5UHJvY2Vzc2luZygpe2NvbnN0IGU9dGhpcy5fbWV0YUluZm8udmFsdWUoKSx0PVtdO3JldHVybiBlLnBsb3RzLmZvckVhY2goKChzLHIpPT57aWYoImRhdGFvZmZzZXQiIT09cy50eXBlKXJldHVybjtjb25zdCBuPWUucGxvdHMuZmluZEluZGV4KChlPT5lLmlkPT09cy50YXJnZXQpKTsoMCxpLmFzc2VydCkobj49MCxgdGFyZ2V0IHBsb3Qgbm90IGZvdW5kIGZvciBzdHJhdGVneSBwbG90ICR7cy5pZH1gKSx0LnB1c2goe3N0cmF0ZWd5SW5kZXg6cix0YXJnZXRJbmRleDpufSl9KSksdH19Y2xhc3MgdXtjb25zdHJ1Y3RvcihlLHQscyl7dGhpcy5fc3RyYXRlZ3lQbG90SW5kZXg9ZSx0aGlzLl90YXJnZXRQbG90SW5kZXg9dCx0aGlzLl9zdGFydEluZGV4PXN9cmVidWlsZERhdGEoZSl7Y29uc3QgdD10aGlzLl90YXJnZXRQbG90SW5kZXgrMSxzPXRoaXMuX3N0cmF0ZWd5UGxvdEluZGV4KzE7bGV0IGk9bnVsbCxyPW51bGw7Y29uc3Qgbj10aGlzLl9zdGFydEluZGV4Pz9lLmZpcnN0SW5kZXgoKSxvPWUubGFzdEluZGV4KCk7aWYobnVsbCE9PW4mJm51bGwhPT1vKWZvcihjb25zdHtpbmRleDphLHZhbHVlOmx9b2YgZS5yYW5nZUl0ZXJhdG9yKG4sbykpe2NvbnN0IG49bFt0XSxvPWxbc10/TWF0aC5yb3VuZChsW3NdKTpudWxsO2lmKGxbdF09bnVsbCxsW3NdPW51bGwsIW98fG8+MCljb250aW51ZTtjb25zdCB1PWErbyxjPXtwb2ludEluZGV4OnUsdmFsdWU6bn07aWYocil7aWYoci5wb2ludEluZGV4IT09Yy5wb2ludEluZGV4KXtpZih1Pj0wKXtjb25zdCBzPWUudmFsdWVBdCh1KTtzJiYoc1t0XT1uKX1sZXQgcz0hMTtpZihpJiZyJiYocz1pLnZhbHVlPD1yLnZhbHVlJiZyLnZhbHVlPD1ufHxpLnZhbHVlPj1yLnZhbHVlJiZyLnZhbHVlPj1uKSxzKXtpZihyLnBvaW50SW5kZXg+PTApe2NvbnN0IHM9ZS52YWx1ZUF0KHIucG9pbnRJbmRleCk7cyYmKHNbdF09bnVsbCl9fWVsc2UgaT1yO3I9Y319ZWxzZSByPWN9fX19LDcxNDEwKGUsdCxzKXsidXNlIHN0cmljdCI7cy5yKHQpLHMuZCh0LHtUcG9QZXJpb2RpY1N0dWR5OigpPT51LGNyZWF0ZVRwb1BlcmlvZGljU3R1ZHk6KCk9PmN9KTt2YXIgaT1zKDEyODk5OCkscj1zKDQzNzc0OSksbj1zKDYwNTI1Nyksbz1zKDg3MjM0MyksYT1zKDY4NDI2NSksbD1zKDc3NzY2MSk7Y2xhc3MgdSBleHRlbmRzIGEuVHBvU3R1ZHlCYXNle19zcGxpdHNBbmRNZXJnZXNBY3Rpb25zS2V5KGUpe2NvbnN0IHQ9dGhpcy5fbW9kZWwubWFpblNlcmllcygpLHM9dC5wcm9TeW1ib2woKSxyPXRoaXMucHJvcGVydGllcygpLmNoaWxkcygpLmlucHV0cy5jaGlsZHMoKSxuPVtzLHRoaXMuX2NoYXJ0U3R5bGVNb2RlfHwoMCxpLmlzVGltZUJhc2VkU3R5bGUpKHQuc3R5bGUoKSk/ImNvbW1vbiI6dC5zdHlsZSgpLHIuYmxvY2tTaXplLnZhbHVlKCksci5wZXJpb2RzTnVtLnZhbHVlKCksci5wZXJpb2QudmFsdWUoKV07cmV0dXJuIGU+MSYmbi5wdXNoKHQuc2Vzc2lvbklkKCkpLG4uam9pbigiOyIpfV9zcGxpdHNBbmRNZXJnZXNJbnB1dHNEZXBzKCl7cmV0dXJuWyJibG9ja1NpemUiLCJwZXJpb2RzTnVtIiwicGVyaW9kIl19fWFzeW5jIGZ1bmN0aW9uIGMoZSx0KXtjb25zdCBzPWF3YWl0KDAsbi5zdHVkeU1ldGFJbmZvUmVwb3NpdG9yeSkoKS5maW5kQnlJZCh7dHlwZToiamF2YSIsc3R1ZHlJZDpsLnN0dWR5VHBvUHJlcmlvZGljSWR9KSxpPSgwLHIucHJlcGFyZVN0dWR5UHJvcGVydGllcykocyx7fSxudWxsLCgwLG4uc3R1ZHlNZXRhSW5mb1JlcG9zaXRvcnkpKCkuc3R1ZHlWZXJzaW9uaW5nKCksW10pO3JldHVybigwLG8uYWRkU3R1ZHlJbmZvVG9NYXApKCJzdHVkeV9UUE9QZXJpb2RpYyIse3N0dWR5Q29uc3RydWN0b3I6dSxjb2xvclJvdGF0aW9uTW9kZToic2hpZnQifSksbmV3IHUoZSxpLFtdLHMscywhMSwhMCx0KX19LDMzNDc0MihlLHQscyl7InVzZSBzdHJpY3QiO3Mucih0KSxzLmQodCx7VHBvU2Vzc2lvbnNTdHVkeTooKT0+dSxjcmVhdGVUcG9TZXNzaW9uc1N0dWR5OigpPT5jfSk7dmFyIGk9cygxMjg5OTgpLHI9cyg2ODQyNjUpLG49cyg2MDUyNTcpLG89cyg4NzIzNDMpLGE9cyg0Mzc3NDkpLGw9cyg3Nzc2NjEpO2NsYXNzIHUgZXh0ZW5kcyByLlRwb1N0dWR5QmFzZXtfc3BsaXRzQW5kTWVyZ2VzQWN0aW9uc0tleShlKXtjb25zdCB0PXRoaXMuX21vZGVsLm1haW5TZXJpZXMoKSxzPXQucHJvU3ltYm9sKCkscj10aGlzLnByb3BlcnRpZXMoKS5jaGlsZHMoKS5pbnB1dHMuY2hpbGRzKCksbj1bcyx0aGlzLl9jaGFydFN0eWxlTW9kZXx8KDAsaS5pc1RpbWVCYXNlZFN0eWxlKSh0LnN0eWxlKCkpPyJjb21tb24iOnQuc3R5bGUoKSxyLmJsb2NrU2l6ZS52YWx1ZSgpLHIucHJvZmlsZXNTZXNzaW9ucy52YWx1ZSgpLHIuY3VzdG9tU2Vzc2lvbi52YWx1ZSgpLHIuY3VzdG9tU2Vzc2lvblRaLnZhbHVlKCksci5jdXN0b21TZXNzaW9uMi52YWx1ZSgpLHIuY3VzdG9tU2Vzc2lvbjMudmFsdWUoKSxyLmN1c3RvbVNlc3Npb240LnZhbHVlKCksci5jdXN0b21TZXNzaW9uNS52YWx1ZSgpXQo7cmV0dXJuIGU+MSYmbi5wdXNoKHQuc2Vzc2lvbklkKCkpLG4uam9pbigiOyIpfV9zcGxpdHNBbmRNZXJnZXNJbnB1dHNEZXBzKCl7cmV0dXJuWyJibG9ja1NpemUiLCJwcm9maWxlc1Nlc3Npb25zIiwiY3VzdG9tU2Vzc2lvbiIsImN1c3RvbVNlc3Npb25UWiIsImN1c3RvbVNlc3Npb24yIiwiY3VzdG9tU2Vzc2lvbjMiLCJjdXN0b21TZXNzaW9uNCIsImN1c3RvbVNlc3Npb241Il19fWFzeW5jIGZ1bmN0aW9uIGMoZSx0KXtjb25zdCBzPWF3YWl0KDAsbi5zdHVkeU1ldGFJbmZvUmVwb3NpdG9yeSkoKS5maW5kQnlJZCh7dHlwZToiamF2YSIsc3R1ZHlJZDpsLnN0dWR5VHBvU2Vzc2lvbnNJZH0pLGk9KDAsYS5wcmVwYXJlU3R1ZHlQcm9wZXJ0aWVzKShzLHt9LG51bGwsKDAsbi5zdHVkeU1ldGFJbmZvUmVwb3NpdG9yeSkoKS5zdHVkeVZlcnNpb25pbmcoKSxbXSk7cmV0dXJuKDAsby5hZGRTdHVkeUluZm9Ub01hcCkoInN0dWR5X1RQT1Nlc3Npb25zIix7c3R1ZHlDb25zdHJ1Y3Rvcjp1LGNvbG9yUm90YXRpb25Nb2RlOiJzaGlmdCJ9KSxuZXcgdShlLGksW10scyxzLCExLCEwLHQpfX0sODMzMTc3KGUsdCxzKXsidXNlIHN0cmljdCI7cy5kKHQse1Nlc3Npb25Wb2x1bWUyU3R1ZHk6KCk9PlJ9KTt2YXIgaT1zKDEzODYzOCk7Y2xhc3Mgcntjb25zdHJ1Y3RvcihlKXt0aGlzLl9zdGFydD0wLHRoaXMuX3NpemU9MCx0aGlzLl9idWZmZXI9bmV3IEFycmF5KGUpfXNpemUoKXtyZXR1cm4gdGhpcy5fc2l6ZX1jYXBhY2l0eSgpe3JldHVybiB0aGlzLl9idWZmZXIubGVuZ3RofWVucXVldWUoZSl7dGhpcy5fc2l6ZTx0aGlzLl9idWZmZXIubGVuZ3RoP3RoaXMuX3NpemUrKzp0aGlzLl9zdGFydD0odGhpcy5fc3RhcnQrMSkldGhpcy5fYnVmZmVyLmxlbmd0aDtjb25zdCB0PSh0aGlzLl9zdGFydCt0aGlzLl9zaXplLTEpJXRoaXMuX2J1ZmZlci5sZW5ndGg7dGhpcy5fYnVmZmVyW3RdPWV9ZGVxdWV1ZSgpe2lmKDA9PT10aGlzLl9zaXplKXRocm93IG5ldyBFcnJvcigiQnVmZmVyIGlzIGVtcHR5Iik7Y29uc3QgZT10aGlzLl9idWZmZXJbdGhpcy5fc3RhcnRdO3JldHVybiB0aGlzLl9idWZmZXJbdGhpcy5fc3RhcnRdPXZvaWQgMCx0aGlzLl9zdGFydD0odGhpcy5fc3RhcnQrMSkldGhpcy5fYnVmZmVyLmxlbmd0aCx0aGlzLl9zaXplLS0sZX1nZXQoZSl7aWYoZT49dGhpcy5fc2l6ZSl0aHJvdyBuZXcgRXJyb3IoIkluZGV4IGlzIG91dCBvZiByYW5nZSIpO2NvbnN0IHQ9KHRoaXMuX3N0YXJ0K2UpJXRoaXMuX2J1ZmZlci5sZW5ndGg7cmV0dXJuIHRoaXMuX2J1ZmZlclt0XX1mb3JFYWNoKGUsdCl7Zm9yKGxldCBzPTA7czx0aGlzLl9zaXplO3MrKyl7Y29uc3QgaT0odGhpcy5fc3RhcnQrcykldGhpcy5fYnVmZmVyLmxlbmd0aDtlLmNhbGwodCx0aGlzLl9idWZmZXJbaV0saSx0aGlzKX19Y2xlYXIoKXtjb25zdCBlPXRoaXMuX2J1ZmZlci5sZW5ndGg7Zm9yKGxldCB0PTA7dDxlO3QrKyl0aGlzLl9idWZmZXJbdF09dm9pZCAwO3RoaXMuX3N0YXJ0PTAsdGhpcy5fc2l6ZT0wfX12YXIgbj1zKDE4NTI3MSksbz1zKDg1NzE1MSksYT1zKDYzNDg2KSxsPXMoNjI4MDYpLHU9cygyMjcwNTYpLGM9cyg4Njc4MzEpLGg9cyg3OTkzNzUpLGQ9cyg1MDQ0MzEpLF89cygyMTg3NjUpO2NsYXNzIHB7Y29uc3RydWN0b3IoZSx0KXt0aGlzLl9yb3VnaD1lLHRoaXMuX2RldGFpbGVkPXR9Zm9yRWFjaChlLHQpe3RoaXMuX21vc3REZXRhaWxlZEhvcml6TGluZXMoKS5mb3JFYWNoKChzPT57ZS5jYWxsKHQscyxzLHRoaXMpfSkpfWhhcyhlKXtsZXQgdD0hMTtyZXR1cm4gdGhpcy5fbW9zdERldGFpbGVkSG9yaXpMaW5lcygpLmZvckVhY2goKHM9Pnt0PXR8fHM9PT1lfSkpLHR9Z2V0IHNpemUoKXtyZXR1cm4gdGhpcy5fcm91Z2guc2l6ZX1bU3ltYm9sLml0ZXJhdG9yXSgpe2NvbnN0IGU9dGhpcy5fbW9zdERldGFpbGVkSG9yaXpMaW5lcygpLmVudHJpZXMoKTtyZXR1cm57W1N5bWJvbC5pdGVyYXRvcl0oKXtyZXR1cm4gdGhpc30sbmV4dCgpe2NvbnN0IHQ9ZS5uZXh0KCk7cmV0dXJuITA9PT10LmRvbmU/dDp7dmFsdWU6dC52YWx1ZVsxXX19fX1lbnRyaWVzKCl7dGhyb3cgbmV3IEVycm9yKCJOb3QgaW1wbGVtZW50ZWQiKX1rZXlzKCl7dGhyb3cgbmV3IEVycm9yKCJOb3QgaW1wbGVtZW50ZWQiKX12YWx1ZXMoKXt0aHJvdyBuZXcgRXJyb3IoIk5vdCBpbXBsZW1lbnRlZCIpfV9tb3N0RGV0YWlsZWRIb3JpekxpbmVzKCl7Y29uc3QgZT1uZXcgTWFwO3RoaXMuX3JvdWdoLmZvckVhY2goKHQ9PmUuc2V0KHQuc3RhcnRJbmRleCx0KSkpO2ZvcihsZXQgdD10aGlzLl9kZXRhaWxlZC5sZW5ndGgtMTt0Pj0wO3QtLSl7dGhpcy5fZGV0YWlsZWRbdF0uZm9yRWFjaCgodD0+e2UuaGFzKHQuc3RhcnRJbmRleCkmJmUuc2V0KHQuc3RhcnRJbmRleCx0KX0pKX1yZXR1cm4gZX19Y2xhc3MgeXtjb25zdHJ1Y3RvcihlLHQpe3RoaXMuX21lcmdlZEhvcml6TGluZXNTZXQ9ZSx0aGlzLl9yb3VnaEl0ZXJhdG9yPXR9W1N5bWJvbC5pdGVyYXRvcl0oKXtyZXR1cm4gdGhpc31uZXh0KCl7Y29uc3QgZT10aGlzLl9yb3VnaEl0ZXJhdG9yLm5leHQoKTtpZighMD09PWUuZG9uZSlyZXR1cm4gZTtjb25zdCB0PWUudmFsdWVbMF07cmV0dXJue3ZhbHVlOlt0LCgwLGkuZW5zdXJlRGVmaW5lZCkodGhpcy5fbWVyZ2VkSG9yaXpMaW5lc1NldC5nZXQodCkpXX19fWNsYXNzIG17Y29uc3RydWN0b3IoZSx0KXt0aGlzLl9yb3VnaEhvcml6TGluZVNldHM9ZSx0aGlzLl9kZXRhaWxlZEhvcml6TGluZVNldHM9dH1mb3JFYWNoKGUsdCl7dGhpcy5fcm91Z2hIb3JpekxpbmVTZXRzLmZvckVhY2goKChzLHIpPT57ZS5jYWxsKHQsKDAsaS5lbnN1cmVEZWZpbmVkKSh0aGlzLmdldChyKSkscix0aGlzKX0pKX1nZXQoZSl7Y29uc3QgdD10aGlzLl9yb3VnaEhvcml6TGluZVNldHMuZ2V0KGUpO2lmKHZvaWQgMCE9PXQpcmV0dXJuIG5ldyBwKHQsdGhpcy5fZGV0YWlsZWRIb3JpekxpbmVTZXRzLm1hcCgodD0+dC5nZXQoZSkpKS5maWx0ZXIoKGU9PnZvaWQgMCE9PWUpKSl9aGFzKGUpe3JldHVybiB0aGlzLl9yb3VnaEhvcml6TGluZVNldHMuaGFzKGUpfWdldCBzaXplKCl7CnJldHVybiB0aGlzLl9yb3VnaEhvcml6TGluZVNldHMuc2l6ZX1bU3ltYm9sLml0ZXJhdG9yXSgpe3JldHVybiBuZXcgeSh0aGlzLHRoaXMuX3JvdWdoSG9yaXpMaW5lU2V0cy5lbnRyaWVzKCkpfWVudHJpZXMoKXt0aHJvdyBuZXcgRXJyb3IoIk5vdCBpbXBsZW1lbnRlZCIpfWtleXMoKXt0aHJvdyBuZXcgRXJyb3IoIk5vdCBpbXBsZW1lbnRlZCIpfXZhbHVlcygpe3Rocm93IG5ldyBFcnJvcigiTm90IGltcGxlbWVudGVkIil9fWNsYXNzIHZ7Y29uc3RydWN0b3IoZSx0KXt0aGlzLl9yb3VnaD1lLHRoaXMuX2RldGFpbGVkPXR9Zm9yRWFjaChlLHQpe3RoaXMuX3JvdWdoLmZvckVhY2goKChzLGkpPT57Zm9yKGNvbnN0IHMgb2YgdGhpcy5fZGV0YWlsZWQpe2NvbnN0IHI9cy5nZXQoaSk7aWYodm9pZCAwIT09cilyZXR1cm4gdm9pZCBlLmNhbGwodCxyLGksdGhpcyl9ZS5jYWxsKHQscyxpLHRoaXMpfSkpfWdldChlKXtmb3IoY29uc3QgdCBvZiB0aGlzLl9kZXRhaWxlZCl7Y29uc3Qgcz10LmdldChlKTtpZih2b2lkIDAhPT1zKXJldHVybiBzfXJldHVybiB0aGlzLl9yb3VnaC5nZXQoZSl9aGFzKGUpe2Zvcihjb25zdCB0IG9mIHRoaXMuX2RldGFpbGVkKXtpZih0LmhhcyhlKSlyZXR1cm4hMH1yZXR1cm4gdGhpcy5fcm91Z2guaGFzKGUpfWdldCBzaXplKCl7cmV0dXJuIHRoaXMuX3JvdWdoLnNpemV9W1N5bWJvbC5pdGVyYXRvcl0oKXt0aHJvdyBuZXcgRXJyb3IoIk5vdCBpbXBsZW1lbnRlZCIpfWVudHJpZXMoKXt0aHJvdyBuZXcgRXJyb3IoIk5vdCBpbXBsZW1lbnRlZCIpfWtleXMoKXt0aHJvdyBuZXcgRXJyb3IoIk5vdCBpbXBsZW1lbnRlZCIpfXZhbHVlcygpe3Rocm93IG5ldyBFcnJvcigiTm90IGltcGxlbWVudGVkIil9fWNsYXNzIGZ7Y29uc3RydWN0b3IoZSx0KXt0aGlzLl9ncmFwaGljcz1lLHRoaXMuX3N0eWxlSWQ9dH1mb3JFYWNoKGUsdCl7dGhpcy5fZ3JhcGhpY3MuaGhpc3RzQnlUaW1lUG9pbnRJbmRleCgpLmZvckVhY2goKHM9PntzLmZvckVhY2goKHM9PntpZihzLnN0eWxlSWQ9PT10aGlzLl9zdHlsZUlkKXtjb25zdCBpPXtmaXJzdEJhclRpbWU6cy5maXJzdEJhclRpbWUsbGFzdEJhclRpbWU6cy5sYXN0QmFyVGltZSxyYXRlOnMucmF0ZSxwcmljZUhpZ2g6cy5wcmljZUhpZ2gscHJpY2VMb3c6cy5wcmljZUxvd307ZS5jYWxsKHQsaSxpLHRoaXMpfX0pKX0pKX1oYXMoZSl7bGV0IHQ9ITE7cmV0dXJuIHRoaXMuX2dyYXBoaWNzLmhoaXN0c0J5VGltZVBvaW50SW5kZXgoKS5mb3JFYWNoKChzPT57cy5mb3JFYWNoKChzPT57cy5zdHlsZUlkPT09dGhpcy5fc3R5bGVJZCYmcz09PWUmJih0PSEwKX0pKX0pKSx0fWdldCBzaXplKCl7bGV0IGU9MDtyZXR1cm4gdGhpcy5fZ3JhcGhpY3MuaGhpc3RzQnlUaW1lUG9pbnRJbmRleCgpLmZvckVhY2goKHQ9Pnt0LmZvckVhY2goKHQ9Pnt0LnN0eWxlSWQ9PT10aGlzLl9zdHlsZUlkJiZlKyt9KSl9KSksZX1bU3ltYm9sLml0ZXJhdG9yXSgpe2NvbnN0IGU9dGhpcy5fZ3JhcGhpY3MuaGhpc3RzQnlUaW1lUG9pbnRJbmRleCgpW1N5bWJvbC5pdGVyYXRvcl0oKTtsZXQgdCxzO3JldHVybntbU3ltYm9sLml0ZXJhdG9yXSgpe3JldHVybiB0aGlzfSxuZXh0KCl7Zm9yKDs7KXtpZih2b2lkIDA9PT10JiYocz12b2lkIDAsdD1lLm5leHQoKSwhdC5kb25lJiYhdC52YWx1ZSkpcmV0dXJue2RvbmU6ITAsdmFsdWU6dm9pZCAwfTtjb25zdCBpPXQudmFsdWU7c3x8KHM9aVtTeW1ib2wuaXRlcmF0b3JdKCkpO2NvbnN0IHI9cy5uZXh0KCk7aWYoIXIuZG9uZSlyZXR1cm57dmFsdWU6ci52YWx1ZX07e2NvbnN0IGU9dDtpZih0PXZvaWQgMCxyLnZhbHVlKXJldHVybnt2YWx1ZTpyLnZhbHVlLGRvbmU6ZS5kb25lfX19fX19ZW50cmllcygpe3Rocm93IG5ldyBFcnJvcigiTm90IGltcGxlbWVudGVkIil9a2V5cygpe3Rocm93IG5ldyBFcnJvcigiTm90IGltcGxlbWVudGVkIil9dmFsdWVzKCl7dGhyb3cgbmV3IEVycm9yKCJOb3QgaW1wbGVtZW50ZWQiKX19Y2xhc3MgU3tjb25zdHJ1Y3RvcihlLHQpe3RoaXMuX2dyYXBoaWNzSW5mbz1lLHRoaXMuX2dyYXBoaWNzPXR9Zm9yRWFjaChlLHQpe2lmKHZvaWQgMD09PXRoaXMuX2dyYXBoaWNzSW5mby5oaGlzdHMpcmV0dXJuO2NvbnN0IHM9T2JqZWN0LmtleXModGhpcy5fZ3JhcGhpY3NJbmZvLmhoaXN0cyk7Zm9yKGNvbnN0IHIgb2YgcyllLmNhbGwodCwoMCxpLmVuc3VyZURlZmluZWQpKHRoaXMuZ2V0KHIpKSxyLHRoaXMpfWdldChlKXtpZih2b2lkIDAhPT10aGlzLl9ncmFwaGljc0luZm8uaGhpc3RzKXJldHVybiBuZXcgZih0aGlzLl9ncmFwaGljcyxlKX1oYXMoZSl7cmV0dXJuIHZvaWQgMCE9PXRoaXMuX2dyYXBoaWNzSW5mby5oaGlzdHMmJmUgaW4gdGhpcy5fZ3JhcGhpY3NJbmZvLmhoaXN0c31nZXQgc2l6ZSgpe3JldHVybiB2b2lkIDA9PT10aGlzLl9ncmFwaGljc0luZm8uaGhpc3RzPzA6T2JqZWN0LmtleXModGhpcy5fZ3JhcGhpY3NJbmZvLmhoaXN0cykubGVuZ3RofVtTeW1ib2wuaXRlcmF0b3JdKCl7Y29uc3QgZT1PYmplY3Qua2V5cyh0aGlzLl9ncmFwaGljc0luZm8/LmhoaXN0cz8/e30pW1N5bWJvbC5pdGVyYXRvcl0oKTtyZXR1cm57W1N5bWJvbC5pdGVyYXRvcl0oKXtyZXR1cm4gdGhpc30sbmV4dDooKT0+e2NvbnN0IHQ9ZS5uZXh0KCk7cmV0dXJuIHQuZG9uZT97ZG9uZTohMCx2YWx1ZTp0LnZhbHVlP1t0LnZhbHVlLCgwLGkuZW5zdXJlRGVmaW5lZCkodGhpcy5nZXQodC52YWx1ZSkpXTp2b2lkIDB9Ont2YWx1ZTpbdC52YWx1ZSwoMCxpLmVuc3VyZURlZmluZWQpKHRoaXMuZ2V0KHQudmFsdWUpKV0sZG9uZTp0LmRvbmV9fX19ZW50cmllcygpe3Rocm93IG5ldyBFcnJvcigiTm90IGltcGxlbWVudGVkIil9a2V5cygpe3Rocm93IG5ldyBFcnJvcigiTm90IGltcGxlbWVudGVkIil9dmFsdWVzKCl7dGhyb3cgbmV3IEVycm9yKCJOb3QgaW1wbGVtZW50ZWQiKX19Y2xhc3MgZ3tjb25zdHJ1Y3RvcihlLHQscyl7dGhpcy5fZ3JhcGhpY3NJbmZvPWUsdGhpcy5fcm91Z2hTdHVkeUdyYXBoaWNzPXQsdGhpcy5fZGV0YWlsZWRTdHVkeUdyYXBoaWNzPXN9aG9yaXpsaW5lcygpewpyZXR1cm4gbmV3IG0odGhpcy5fcm91Z2hTdHVkeUdyYXBoaWNzLmhvcml6bGluZXMoKSx0aGlzLl9kZXRhaWxlZFN0dWR5R3JhcGhpY3MubWFwKChlPT5lLmhvcml6bGluZXMoKSkpKX12ZXJ0bGluZXMoKXtyZXR1cm4gdGhpcy5fcm91Z2hTdHVkeUdyYXBoaWNzLnZlcnRsaW5lcygpfWxpbmVzKCl7cmV0dXJuIHRoaXMuX3JvdWdoU3R1ZHlHcmFwaGljcy5saW5lcygpfWhsaW5lcygpe3JldHVybiB0aGlzLl9yb3VnaFN0dWR5R3JhcGhpY3MuaGxpbmVzKCl9dGV4dG1hcmtzKCl7cmV0dXJuIHRoaXMuX3JvdWdoU3R1ZHlHcmFwaGljcy50ZXh0bWFya3MoKX1zaGFwZW1hcmtzKCl7cmV0dXJuIHRoaXMuX3JvdWdoU3R1ZHlHcmFwaGljcy5zaGFwZW1hcmtzKCl9YmFja2dyb3VuZHMoKXtyZXR1cm4gdGhpcy5fcm91Z2hTdHVkeUdyYXBoaWNzLmJhY2tncm91bmRzKCl9cG9seWdvbnMoKXtyZXR1cm4gdGhpcy5fcm91Z2hTdHVkeUdyYXBoaWNzLnBvbHlnb25zKCl9dHJlbmRjaGFubmVscygpe3JldHVybiB0aGlzLl9yb3VnaFN0dWR5R3JhcGhpY3MudHJlbmRjaGFubmVscygpfWhoaXN0cygpe3JldHVybiBuZXcgUyh0aGlzLl9ncmFwaGljc0luZm8sdGhpcyl9aGhpc3RzQnlUaW1lUG9pbnRJbmRleCgpe3JldHVybiBuZXcgdih0aGlzLl9yb3VnaFN0dWR5R3JhcGhpY3MuaGhpc3RzQnlUaW1lUG9pbnRJbmRleCgpLHRoaXMuX2RldGFpbGVkU3R1ZHlHcmFwaGljcy5tYXAoKGU9PmUuaGhpc3RzQnlUaW1lUG9pbnRJbmRleCgpKSkpfWR3Z2xhYmVscygpe3JldHVybiB0aGlzLl9yb3VnaFN0dWR5R3JhcGhpY3MuZHdnbGFiZWxzKCl9ZHdnbGluZXMoKXtyZXR1cm4gdGhpcy5fcm91Z2hTdHVkeUdyYXBoaWNzLmR3Z2xpbmVzKCl9ZHdncG9seWxpbmVzKCl7cmV0dXJuIHRoaXMuX3JvdWdoU3R1ZHlHcmFwaGljcy5kd2dwb2x5bGluZXMoKX1kd2dib3hlcygpe3JldHVybiB0aGlzLl9yb3VnaFN0dWR5R3JhcGhpY3MuZHdnYm94ZXMoKX1kd2d0YWJsZXMoKXtyZXR1cm4gdGhpcy5fcm91Z2hTdHVkeUdyYXBoaWNzLmR3Z3RhYmxlcygpfWR3Z3RhYmxlY2VsbHMoKXtyZXR1cm4gdGhpcy5fcm91Z2hTdHVkeUdyYXBoaWNzLmR3Z3RhYmxlY2VsbHMoKX1kd2dsaW5lZmlsbHMoKXtyZXR1cm4gdGhpcy5fcm91Z2hTdHVkeUdyYXBoaWNzLmR3Z2xpbmVmaWxscygpfXRwb3MoKXtyZXR1cm4gdGhpcy5fcm91Z2hTdHVkeUdyYXBoaWNzLnRwb3MoKX10cG9CbG9ja1NldHMoKXtyZXR1cm4gdGhpcy5fcm91Z2hTdHVkeUdyYXBoaWNzLnRwb0Jsb2NrU2V0cygpfXRwb0xldmVscygpe3JldHVybiB0aGlzLl9yb3VnaFN0dWR5R3JhcGhpY3MudHBvTGV2ZWxzKCl9dHBvVm9sdW1lUm93cygpe3JldHVybiB0aGlzLl9yb3VnaFN0dWR5R3JhcGhpY3MudHBvVm9sdW1lUm93cygpfXRwb1N1bW1hcnlJbmZvKCl7cmV0dXJuIHRoaXMuX3JvdWdoU3R1ZHlHcmFwaGljcy50cG9TdW1tYXJ5SW5mbygpfWxvZ3MoKXtyZXR1cm4gdGhpcy5fcm91Z2hTdHVkeUdyYXBoaWNzLmxvZ3MoKX1wZXJmb3JtYW5jZSgpe3JldHVybiB0aGlzLl9yb3VnaFN0dWR5R3JhcGhpY3MucGVyZm9ybWFuY2UoKX1mb290cHJpbnRzKCl7cmV0dXJuIHRoaXMuX3JvdWdoU3R1ZHlHcmFwaGljcy5mb290cHJpbnRzKCl9Zm9vdHByaW50TGV2ZWxzKCl7cmV0dXJuIHRoaXMuX3JvdWdoU3R1ZHlHcmFwaGljcy5mb290cHJpbnRMZXZlbHMoKX19dmFyIGI9cyg5NjY0MDQpLHc9cyg2MDUyNTcpO2NvbnN0IEM9InR2LXZvbHVtZWJ5cHJpY2UiLFA9KDAsYS5zdHVkeUlkU3RyaW5nKSgiVmJQU2Vzc2lvbnNSb3VnaCIsQykseD0oMCxhLnN0dWR5SWRTdHJpbmcpKCJWYlBTZXNzaW9uc0RldGFpbGVkIixDKSxEPSgwLGEuc3R1ZHlJZFN0cmluZykoIlZiUFNlc3Npb25zRGV0YWlsZWRBbGVydHMiLEMpLEk9TnVtYmVyLk1BWF9TQUZFX0lOVEVHRVI7dmFyIFQ7IWZ1bmN0aW9uKGUpe2VbZS5EZXRhaWxlZERhdGFCdWZmZXJDYXBhY2l0eT03XT0iRGV0YWlsZWREYXRhQnVmZmVyQ2FwYWNpdHkifShUfHwoVD17fSkpO2NvbnN0IFY9bi50KG51bGwsdm9pZCAwLHMoMzcxMjk3KSk7Y2xhc3MgUiBleHRlbmRzIHUuVm9sdW1lUHJvZmlsZVdpdGhQcmljZVJhbmdlU3R1ZHl7Y29uc3RydWN0b3IoZSx0LHMsaSxuLG8pe3N1cGVyKGUsdCxzLGksbixvKSx0aGlzLl9pc1BhY2thZ2VBdmFpbGFibGU9QSgpLHRoaXMuX2FsZXJ0c1N0dWR5TWV0YUluZm89bnVsbCx0aGlzLl9yb3VnaERhdGFTb3VyY2U9bnVsbCx0aGlzLl9kZXRhaWxlZERhdGFTb3VyY2U9bnVsbCx0aGlzLl9kZXRhaWxlZERhdGFCdWZmZXI9bmV3IHIoNyksdGhpcy5fbG9hZGVkR3JhcGhpY3M9bnVsbCx0aGlzLl9sb2FkZWRQbG90cz1udWxsLHRoaXMuX21lcmdlZEdyYXBoaWNzPSgwLF8uZW1wdHlTdHVkeUdyYXBoaWNzKSgpLHRoaXMuX21lcmdlZFBsb3RzPXRoaXMuX2VtcHR5UGxvdExpc3QoKSx0aGlzLl9pc1BhY2thZ2VBdmFpbGFibGV8fHRoaXMuX3NldFN0YXR1cyh7dHlwZTpjLlN0dWR5U3RhdHVzVHlwZS5FcnJvcixlcnJvckRlc2NyaXB0aW9uOntlcnJvcjpWfX0pLHRoaXMuX3NldEFsZXJ0c1N0dWR5TWV0YUluZm8oKX1kZXN0cm95KCl7bnVsbCE9PXRoaXMuX2RldGFpbGVkRGF0YVNvdXJjZSYmKHRoaXMuX2RldGFpbGVkRGF0YVNvdXJjZS5kYXRhVXBkYXRlZCgpLnVuc3Vic2NyaWJlKHRoaXMsdGhpcy5fb25Sb3VnaE9yRGV0YWlsZWREYXRhVXBkYXRlZCksdGhpcy5fZGV0YWlsZWREYXRhU291cmNlLmRhdGFDbGVhcmVkKCkudW5zdWJzY3JpYmUodGhpcyx0aGlzLl9vblJvdWdoT3JEZXRhaWxlZERhdGFDbGVhcmVkKSx0aGlzLl9kZXRhaWxlZERhdGFTb3VyY2Uuc3R1ZHlTdGF0dXNDaGFuZ2VkKCkudW5zdWJzY3JpYmUodGhpcyx0aGlzLl9vblN0dWR5U3RhdHVzQ2hhbmdlZCksdGhpcy5fZGV0YWlsZWREYXRhU291cmNlLmRlc3Ryb3koKSx0aGlzLl9kZXRhaWxlZERhdGFTb3VyY2U9bnVsbCksbnVsbCE9PXRoaXMuX3JvdWdoRGF0YVNvdXJjZSYmKHRoaXMuX3JvdWdoRGF0YVNvdXJjZS5kYXRhVXBkYXRlZCgpLnVuc3Vic2NyaWJlKHRoaXMsdGhpcy5fb25Sb3VnaE9yRGV0YWlsZWREYXRhVXBkYXRlZCksCnRoaXMuX3JvdWdoRGF0YVNvdXJjZS5kYXRhQ2xlYXJlZCgpLnVuc3Vic2NyaWJlKHRoaXMsdGhpcy5fb25Sb3VnaE9yRGV0YWlsZWREYXRhQ2xlYXJlZCksdGhpcy5fcm91Z2hEYXRhU291cmNlLnN0dWR5U3RhdHVzQ2hhbmdlZCgpLnVuc3Vic2NyaWJlKHRoaXMsdGhpcy5fb25TdHVkeVN0YXR1c0NoYW5nZWQpLHRoaXMuX3JvdWdoRGF0YVNvdXJjZS5kZXN0cm95KCksdGhpcy5fcm91Z2hEYXRhU291cmNlPW51bGwpLHN1cGVyLmRlc3Ryb3koKX1kYXRhKCl7cmV0dXJuIHRoaXMuX2xvYWRlZFBsb3RzfHx0aGlzLl9tZXJnZWRQbG90c31ncmFwaGljcygpe3JldHVybiB0aGlzLl9sb2FkZWRHcmFwaGljc3x8dGhpcy5fbWVyZ2VkR3JhcGhpY3N9Y2xlYXJEYXRhKCl7bnVsbCE9PXRoaXMuX3JvdWdoRGF0YVNvdXJjZSYmdGhpcy5fcm91Z2hEYXRhU291cmNlLmNsZWFyRGF0YSgpLG51bGwhPT10aGlzLl9kZXRhaWxlZERhdGFTb3VyY2UmJnRoaXMuX2RldGFpbGVkRGF0YVNvdXJjZS5jbGVhckRhdGEoKX1yZXN0b3JlRGF0YShlKXt0aGlzLl9pbnZhbGlkYXRlTGFzdE5vbkVtcHR5UGxvdFJvd0NhY2hlKCksdGhpcy5fbG9hZGVkUGxvdHM9dGhpcy5fZW1wdHlQbG90TGlzdCgpLHRoaXMuX2xvYWRlZFBsb3RzLnJlc3RvcmVTdGF0ZShlKSx2b2lkIDAhPT1lLmdyYXBoaWNzJiYodGhpcy5fbG9hZGVkR3JhcGhpY3M9KDAsXy5sb2FkU3R1ZHlHcmFwaGljcykoZS5ncmFwaGljcykpLHRoaXMuX3Bvc3RQcm9jZXNzR3JhcGhpY3MoKSx0aGlzLl9zZXRTdGF0dXMoe3R5cGU6Yy5TdHVkeVN0YXR1c1R5cGUuQ29tcGxldGVkfSwhMCl9aXNGYWlsZWQoKXtyZXR1cm4hdGhpcy5faXNQYWNrYWdlQXZhaWxhYmxlfHxudWxsIT09dGhpcy5fcm91Z2hEYXRhU291cmNlJiZ0aGlzLl9yb3VnaERhdGFTb3VyY2Uuc3R1ZHlTdGF0dXMoKS50eXBlPT09Yy5TdHVkeVN0YXR1c1R5cGUuRXJyb3J8fG51bGwhPT10aGlzLl9kZXRhaWxlZERhdGFTb3VyY2UmJnRoaXMuX2RldGFpbGVkRGF0YVNvdXJjZS5zdHVkeVN0YXR1cygpLnR5cGU9PT1jLlN0dWR5U3RhdHVzVHlwZS5FcnJvcn1pc0xvYWRpbmcoKXtyZXR1cm4gbnVsbCE9PXRoaXMuX3JvdWdoRGF0YVNvdXJjZSYmdGhpcy5fcm91Z2hEYXRhU291cmNlLnN0dWR5U3RhdHVzKCkudHlwZT09PWMuU3R1ZHlTdGF0dXNUeXBlLkxvYWRpbmd8fG51bGwhPT10aGlzLl9kZXRhaWxlZERhdGFTb3VyY2UmJnRoaXMuX2RldGFpbGVkRGF0YVNvdXJjZS5zdHVkeVN0YXR1cygpLnR5cGU9PT1jLlN0dWR5U3RhdHVzVHlwZS5Mb2FkaW5nfWlzU3RhcnRlZCgpe3JldHVybiBudWxsIT09dGhpcy5fcm91Z2hEYXRhU291cmNlJiZ0aGlzLl9yb3VnaERhdGFTb3VyY2UuaXNTdGFydGVkKCl8fG51bGwhPT10aGlzLl9kZXRhaWxlZERhdGFTb3VyY2UmJnRoaXMuX2RldGFpbGVkRGF0YVNvdXJjZS5pc1N0YXJ0ZWQoKX1zb3VyY2VJZCgpe3Rocm93IG5ldyBFcnJvcigiSW52YWxpZCBvcGVyYXRpb24iKX1pZEZvckFsZXJ0KCl7cmV0dXJuIHN1cGVyLl9jb2xsZWN0RGVwc0ZvckFsZXJ0KCkuaWRGb3JBbGVydH1jYW5IYXZlQ2hpbGRyZW4oKXtyZXR1cm4hMX1pc0NoaWxkU3R1ZHkoKXtyZXR1cm4hMX1oYXNDaGlsZHJlbigpe3JldHVybiExfWdldEFsbENoaWxkcmVuKCl7cmV0dXJuW119aXNIaWJlcm5hdGVkKCl7cmV0dXJuISh0aGlzLmlzVmlzaWJsZSgpfHxudWxsIT09dGhpcy5fcm91Z2hEYXRhU291cmNlJiZ0aGlzLl9yb3VnaERhdGFTb3VyY2UuaXNTdGFydGVkKCl8fG51bGwhPT10aGlzLl9kZXRhaWxlZERhdGFTb3VyY2UmJnRoaXMuX2RldGFpbGVkRGF0YVNvdXJjZS5pc1N0YXJ0ZWQoKSl9X2FsZXJ0TWV0YUluZm8oKXtyZXR1cm4gdGhpcy5fYWxlcnRzU3R1ZHlNZXRhSW5mb31fc3RvcFN0dWR5T25TZXJ2ZXIoKXt0aGlzLl9jaGFydEFwaSYmdGhpcy5fY2hhcnRBcGkuaXNDb25uZWN0ZWQoKS52YWx1ZSgpJiYodGhpcy5fcm91Z2hEYXRhU291cmNlPy5pc1N0YXJ0ZWQoKSYmdGhpcy5fcm91Z2hEYXRhU291cmNlLnN0b3AoKSx0aGlzLl9kZXRhaWxlZERhdGFTb3VyY2U/LmlzU3RhcnRlZCgpJiZ0aGlzLl9kZXRhaWxlZERhdGFTb3VyY2Uuc3RvcCgpKX1hc3luYyBfc3RhcnRBZnRlclN5bWJvbHNSZXNvbHZlZChlLHQpe2lmKCF0aGlzLmlzU3RhcnRlZCgpfHx0aGlzLmlzUmVzdGFydGluZygpKWlmKHRoaXMuX3Jlc3RhcnRpbmc9ITEsdGhpcy5faXNQYWNrYWdlQXZhaWxhYmxlPUEoKSx0aGlzLl9pc1BhY2thZ2VBdmFpbGFibGUpe2lmKHRoaXMuX2FsbElucHV0c0FyZVZhbGlkKCkpe2lmKHRoaXMuX2lucHV0cz10aGlzLl9hcGlJbnB1dHMoKSxudWxsPT09dGhpcy5fcm91Z2hEYXRhU291cmNlKXtjb25zdCBlPWF3YWl0KDAsdy5zdHVkeU1ldGFJbmZvUmVwb3NpdG9yeSkoKS5maW5kQnlJZCh7dHlwZToiamF2YSIsc3R1ZHlJZDpQfSk7dGhpcy5fcm91Z2hEYXRhU291cmNlPW5ldyBoLkV4dGVuZGVkU3R1ZHlEYXRhU291cmNlKHRoaXMubW9kZWwoKS5jaGFydEFwaSgpLHRoaXMubW9kZWwoKS5tYWluU2VyaWVzKCksInZicHNlc3Npb25zcm91Z2hfIixlKSx0aGlzLl9yb3VnaERhdGFTb3VyY2Uuc3R1ZHlTdGF0dXNDaGFuZ2VkKCkuc3Vic2NyaWJlKHRoaXMsdGhpcy5fb25TdHVkeVN0YXR1c0NoYW5nZWQpLHRoaXMuX3JvdWdoRGF0YVNvdXJjZS5kYXRhQ2xlYXJlZCgpLnN1YnNjcmliZSh0aGlzLHRoaXMuX29uUm91Z2hPckRldGFpbGVkRGF0YUNsZWFyZWQpLHRoaXMuX3JvdWdoRGF0YVNvdXJjZS5kYXRhVXBkYXRlZCgpLnN1YnNjcmliZSh0aGlzLHRoaXMuX29uUm91Z2hPckRldGFpbGVkRGF0YVVwZGF0ZWQpfWVsc2UgdGhpcy5fcm91Z2hEYXRhU291cmNlLnN0b3AoKTtpZih0aGlzLl9yb3VnaERhdGFTb3VyY2Uuc2V0SW5wdXRzKEwodGhpcy5fcm91Z2hEYXRhU291cmNlLm1ldGFJbmZvKCkuaW5wdXRzLHRoaXMuX2lucHV0cykpLG51bGw9PT10aGlzLl9kZXRhaWxlZERhdGFTb3VyY2Upe2NvbnN0IGU9YXdhaXQoMCx3LnN0dWR5TWV0YUluZm9SZXBvc2l0b3J5KSgpLmZpbmRCeUlkKHt0eXBlOiJqYXZhIixzdHVkeUlkOnh9KQo7dGhpcy5fZGV0YWlsZWREYXRhU291cmNlPW5ldyBoLkV4dGVuZGVkU3R1ZHlEYXRhU291cmNlKHRoaXMubW9kZWwoKS5jaGFydEFwaSgpLHRoaXMubW9kZWwoKS5tYWluU2VyaWVzKCksInZicHNlc3Npb25zZGV0YWlsZWRfIixlKSx0aGlzLl9kZXRhaWxlZERhdGFTb3VyY2Uuc3R1ZHlTdGF0dXNDaGFuZ2VkKCkuc3Vic2NyaWJlKHRoaXMsdGhpcy5fb25TdHVkeVN0YXR1c0NoYW5nZWQpLHRoaXMuX2RldGFpbGVkRGF0YVNvdXJjZS5kYXRhQ2xlYXJlZCgpLnN1YnNjcmliZSh0aGlzLHRoaXMuX29uUm91Z2hPckRldGFpbGVkRGF0YUNsZWFyZWQpLHRoaXMuX2RldGFpbGVkRGF0YVNvdXJjZS5kYXRhVXBkYXRlZCgpLnN1YnNjcmliZSh0aGlzLHRoaXMuX29uUm91Z2hPckRldGFpbGVkRGF0YVVwZGF0ZWQpfWVsc2UgdGhpcy5fZGV0YWlsZWREYXRhU291cmNlLnN0b3AoKTt0aGlzLl9kZXRhaWxlZERhdGFTb3VyY2Uuc2V0SW5wdXRzKEUodGhpcy5faW5wdXRzKSksdGhpcy5fcm91Z2hEYXRhU291cmNlLnN0YXJ0KCksdGhpcy5fZGV0YWlsZWREYXRhU291cmNlLnN0YXJ0KCksdGhpcy5fY3JlYXRlU3R1ZHlHcmFwaGljcygpLHRoaXMuX3N1YnNjcmliZVRvU2Vzc2lvbklkKCksdGhpcy5fc2V0U3RhdHVzKHRoaXMuX3N0YXR1c1ZhbHVlRnJvbURhdGFTb3VyY2VzKCkpLHRoaXMuX29uU3RhcnQuZmlyZSgpLG51bGw9PT10aGlzLl9hbGVydHNTdHVkeU1ldGFJbmZvJiZhd2FpdCB0aGlzLl9zZXRBbGVydHNTdHVkeU1ldGFJbmZvKCl9fWVsc2UgdGhpcy5fc2V0U3RhdHVzKHt0eXBlOmMuU3R1ZHlTdGF0dXNUeXBlLkVycm9yLGVycm9yRGVzY3JpcHRpb246e2Vycm9yOlZ9fSl9YXN5bmMgX2NoYW5nZUlucHV0c0ltcGwoZSx0KXtpZihudWxsIT09dGhpcy5fcm91Z2hEYXRhU291cmNlKXtpZigoMCxsLmFyZVN0dWR5SW5wdXRzRXF1YWwpKHRoaXMuX3JvdWdoRGF0YVNvdXJjZS5tZXRhSW5mbygpLmlucHV0cyx0LGUpKXtpZihudWxsIT09dGhpcy5fZGV0YWlsZWREYXRhU291cmNlKXtjb25zdCB0PUUoZSkscz0oMCxsLnJhbmdlRGVwZW5kZW50U3R1ZHlJbnB1dHNUb1RpbWVSYW5nZSkodCk7aWYodGhpcy5fbW9yZURldGFpbGVkRGF0YVJlcXVpcmVkRm9yVGltZVJhbmdlKHMpKXtpZih0aGlzLl9kZXRhaWxlZERhdGFTb3VyY2UuaXNBY3RpdmUoKSl7Y29uc3QgZT10aGlzLl9kZXRhaWxlZERhdGFTb3VyY2Uuc3RvcEFuZFN0ZWFsRGF0YSgpO2lmKGUucGxvdHMuc2l6ZSgpPjB8fCEoMCxfLmlzU3R1ZHlHcmFwaGljc0VtcHR5KShlLmdyYXBoaWNzKSl7Y29uc3QgdD0oMCxpLmVuc3VyZU5vdE51bGwpKHRoaXMuX2RldGFpbGVkRGF0YVNvdXJjZS5pbnB1dHMoKSk7ZS5wbG90cz10aGlzLl9leHRyYWN0RWZmZWN0aXZlRGV0YWlsZWRQbG90VmFsdWVzKGUucGxvdHMsdCksdGhpcy5fZGV0YWlsZWREYXRhQnVmZmVyLmVucXVldWUoe2xvZDpNKHQpLHZhbHVlOmV9KX19dGhpcy5fZGV0YWlsZWREYXRhU291cmNlLnNldElucHV0cyh0KSx0aGlzLl9kZXRhaWxlZERhdGFTb3VyY2Uuc3RhcnQoKX19fWVsc2UgdGhpcy5faW5wdXRzPWUsdGhpcy5fcm91Z2hEYXRhU291cmNlLnNldElucHV0cyhMKHRoaXMuX3JvdWdoRGF0YVNvdXJjZS5tZXRhSW5mbygpLmlucHV0cyxlKSksdGhpcy5fZGV0YWlsZWREYXRhQnVmZmVyLmNsZWFyKCksbnVsbCE9PXRoaXMuX2RldGFpbGVkRGF0YVNvdXJjZSYmdGhpcy5fZGV0YWlsZWREYXRhU291cmNlLnNldElucHV0cyhFKGUpKTtudWxsIT09dGhpcy5fZGV0YWlsZWREYXRhU291cmNlJiZ0aGlzLl9jcmVhdGVTdHVkeUdyYXBoaWNzKCl9fV9jb2xsZWN0RGVwc0ZvckFsZXJ0KCl7Y29uc3QgZT1zdXBlci5fY29sbGVjdERlcHNGb3JBbGVydCgpO2lmKG51bGw9PT10aGlzLl9hbGVydHNTdHVkeU1ldGFJbmZvKXRocm93IG5ldyBFcnJvcigiQWxlcnRzIHN0dWR5IG1ldGFpbmZvIGlzIG5vdCByZWFkeSB5ZXQuIEhhdmUgeW91IGNoZWNrZWQgdGhlIGFsZXJ0IGF2YWlsYWJpbGl0eSB1c2luZyBoYXNTdGF0ZUZvckFsZXJ0KCk/Iik7cmV0dXJuey4uLmUsc3R1ZHlEZXBlbmRlbmNpZXM6ZS5zdHVkeURlcGVuZGVuY2llcy5tYXAoKGU9Pntjb25zdCB0PWUuc3R1ZHk9PT1rKHRoaXMubWV0YUluZm8oKSk7cmV0dXJue2lkOmUuaWQsaW5wdXRzOnQ/KHM9ZS5pbnB1dHMsey4uLnMsc3Vic2NyaWJlUmVhbHRpbWU6ITB9KTplLmlucHV0cyxzdHVkeTp0JiZudWxsIT09dGhpcy5fYWxlcnRzU3R1ZHlNZXRhSW5mbz9rKHRoaXMuX2FsZXJ0c1N0dWR5TWV0YUluZm8pOmUuc3R1ZHl9O3ZhciBzfSkpfX1fZ2V0QWxlcnRDcmVhdGlvbkF2YWlsYWJsZSgpe3JldHVybiExfV9zdGF0dXNWYWx1ZUZyb21EYXRhU291cmNlcygpe2NvbnN0IGU9e3R5cGU6Yy5TdHVkeVN0YXR1c1R5cGUuVW5kZWZpbmVkfTtpZihudWxsPT09dGhpcy5fcm91Z2hEYXRhU291cmNlfHxudWxsPT09dGhpcy5fZGV0YWlsZWREYXRhU291cmNlKXJldHVybiBlO2NvbnN0IHQ9dGhpcy5fcm91Z2hEYXRhU291cmNlLnN0dWR5U3RhdHVzKCkscz10aGlzLl9kZXRhaWxlZERhdGFTb3VyY2Uuc3R1ZHlTdGF0dXMoKTtpZih0LnR5cGU9PT1jLlN0dWR5U3RhdHVzVHlwZS5FcnJvcilyZXR1cm4gdDtpZihzLnR5cGU9PT1jLlN0dWR5U3RhdHVzVHlwZS5FcnJvcilyZXR1cm4gcztpZih0LnR5cGU9PT1jLlN0dWR5U3RhdHVzVHlwZS5Mb2FkaW5nfHxzLnR5cGU9PT1jLlN0dWR5U3RhdHVzVHlwZS5Mb2FkaW5nKXtjb25zdCBlPXQudHlwZT09PWMuU3R1ZHlTdGF0dXNUeXBlLkxvYWRpbmc/dC5zdGFydFRpbWU6MS8wLGk9cy50eXBlPT09Yy5TdHVkeVN0YXR1c1R5cGUuTG9hZGluZz9zLnN0YXJ0VGltZToxLzA7cmV0dXJue3R5cGU6Yy5TdHVkeVN0YXR1c1R5cGUuTG9hZGluZyxzdGFydFRpbWU6TWF0aC5taW4oZSxpKX19cmV0dXJuIHQudHlwZT09PWMuU3R1ZHlTdGF0dXNUeXBlLkNvbXBsZXRlZD97dHlwZTpjLlN0dWR5U3RhdHVzVHlwZS5Db21wbGV0ZWR9OmV9X2VtcHR5UGxvdExpc3QoKXtyZXR1cm4gbmV3IG8uUGxvdExpc3QoKDAsCmQuc3R1ZHlQbG90RnVuY3Rpb25NYXApKHRoaXMubWV0YUluZm8oKSksZC5zdHVkeUVtcHR5UGxvdFZhbHVlUHJlZGljYXRlKX1fY3JlYXRlU3R1ZHlQbG90cygpe2NvbnN0IGU9KDAsaS5lbnN1cmVOb3ROdWxsKSh0aGlzLl9yb3VnaERhdGFTb3VyY2UpLHQ9KDAsaS5lbnN1cmVOb3ROdWxsKSh0aGlzLl9kZXRhaWxlZERhdGFTb3VyY2UpO3RoaXMuX21lcmdlZFBsb3RzLmNsZWFyKCk7Y29uc3Qgcz1bXTtzLnB1c2goe2xvZDpJLHZhbHVlOmUucGxvdHMoKX0pLHRoaXMuX2RldGFpbGVkRGF0YUJ1ZmZlci5mb3JFYWNoKChlPT57cy5wdXNoKHtsb2Q6ZS5sb2QsdmFsdWU6ZS52YWx1ZS5wbG90c30pfSkpO2NvbnN0IHI9KDAsaS5lbnN1cmVOb3ROdWxsKSh0LmlucHV0cygpKTtzLnB1c2goe2xvZDpNKHIpLHZhbHVlOnRoaXMuX2V4dHJhY3RFZmZlY3RpdmVEZXRhaWxlZFBsb3RWYWx1ZXModC5wbG90cygpLHIpfSkscy5zb3J0KCgoZSx0KT0+dC5sb2QtZS5sb2QpKTtmb3IoY29uc3QgZSBvZiBzKWUudmFsdWUuZWFjaCgoKGUsdCk9Pntmb3IoY29uc3QgZSBvZiB0KWlmKHZvaWQgMD09PWUpcmV0dXJuITE7cmV0dXJuIHRoaXMuX21lcmdlZFBsb3RzLmFkZChlLHQpLCExfSkpO3RoaXMuX2ludmFsaWRhdGVMYXN0Tm9uRW1wdHlQbG90Um93Q2FjaGUoKX1fY3JlYXRlU3R1ZHlHcmFwaGljcygpe2NvbnN0IGU9KDAsaS5lbnN1cmVOb3ROdWxsKSh0aGlzLl9yb3VnaERhdGFTb3VyY2UpLHQ9KDAsaS5lbnN1cmVOb3ROdWxsKSh0aGlzLl9kZXRhaWxlZERhdGFTb3VyY2UpLHM9W107dGhpcy5fZGV0YWlsZWREYXRhQnVmZmVyLmZvckVhY2goKGU9PntzLnB1c2goe2xvZDplLmxvZCx2YWx1ZTplLnZhbHVlLmdyYXBoaWNzfSl9KSksdm9pZCAwIT09dGhpcy5faW5wdXRzJiZzLnB1c2goe2xvZDpNKHRoaXMuX2lucHV0cyksdmFsdWU6dC5ncmFwaGljcygpfSkscy5zb3J0KCgoZSx0KT0+ZS5sb2QtdC5sb2QpKTtjb25zdCByPXMubWFwKChlPT5lLnZhbHVlKSk7dGhpcy5fbWVyZ2VkR3JhcGhpY3M9bmV3IGcodGhpcy5tZXRhSW5mbygpLmdyYXBoaWNzLGUuZ3JhcGhpY3MoKSxyKSx0aGlzLl9wb3N0UHJvY2Vzc0dyYXBoaWNzKCl9X2V4dHJhY3RFZmZlY3RpdmVEZXRhaWxlZFBsb3RWYWx1ZXMoZSx0KXtjb25zdCBzPSgwLGwucmFuZ2VEZXBlbmRlbnRTdHVkeUlucHV0c1RvVGltZVJhbmdlKSh0KSxyPXRoaXMubW9kZWwoKS50aW1lU2NhbGUoKS50aW1lUG9pbnRUb0luZGV4KHMuZnJvbSksbj10aGlzLm1vZGVsKCkudGltZVNjYWxlKCkudGltZVBvaW50VG9JbmRleChzLnRvKTtyZXR1cm4gZS5zaXplKCk+MD9lLnJhbmdlKHJ8fCgwLGkuZW5zdXJlTm90TnVsbCkoZS5maXJzdEluZGV4KCkpLG58fCgwLGkuZW5zdXJlTm90TnVsbCkoZS5sYXN0SW5kZXgoKSkpOnRoaXMuX2VtcHR5UGxvdExpc3QoKX1fbW9yZURldGFpbGVkRGF0YVJlcXVpcmVkRm9yVGltZVJhbmdlKGUpe2NvbnN0e2Zyb206dCx0bzpzfT1lO2xldCByPSExO3JldHVybigwLGkuZW5zdXJlTm90TnVsbCkodGhpcy5fcm91Z2hEYXRhU291cmNlKS5ncmFwaGljcygpLmhoaXN0c0J5VGltZVBvaW50SW5kZXgoKS5mb3JFYWNoKCgoZSxpKT0+e2lmKHIpcmV0dXJuO2lmKG51bGw9PT1pKXJldHVybjtjb25zdCBuPXRoaXMubW9kZWwoKS50aW1lU2NhbGUoKS5pbmRleFRvVGltZVBvaW50KGkpO2lmKG51bGw9PT1ufHxuPHR8fHM8bilyZXR1cm47Y29uc3Qgbz1zLXQ7bGV0IGE9ITE7dGhpcy5fZGV0YWlsZWREYXRhQnVmZmVyLmZvckVhY2goKGU9PntpZihlLmxvZDw9byl7ZS52YWx1ZS5ncmFwaGljcy5oaGlzdHNCeVRpbWVQb2ludEluZGV4KCkuaGFzKGkpJiYoYT0hMCl9fSkpLGF8fChyPSEwKX0pKSxyfV9vblN0dWR5U3RhdHVzQ2hhbmdlZCgpe2NvbnN0IGU9dGhpcy5zdGF0dXMoKTt0aGlzLl9zZXRTdGF0dXModGhpcy5fc3RhdHVzVmFsdWVGcm9tRGF0YVNvdXJjZXMoKSksZS50eXBlIT09dGhpcy5zdGF0dXMoKS50eXBlJiZ0aGlzLl91cGRhdGVBbGVydENyZWF0aW9uQXZhaWxhYmxlKCksKDAsaS5lbnN1cmVEZWZpbmVkKSh0aGlzLl9zdGF0dXNWaWV3KS51cGRhdGUoKDAsYi5zb3VyY2VDaGFuZ2VFdmVudCkodGhpcy5pZCgpKSl9X29uUm91Z2hPckRldGFpbGVkRGF0YUNsZWFyZWQoKXtudWxsIT09dGhpcy5fcm91Z2hEYXRhU291cmNlJiZudWxsIT09dGhpcy5fZGV0YWlsZWREYXRhU291cmNlJiYodGhpcy5faW52YWxpZGF0ZUxhc3ROb25FbXB0eVBsb3RSb3dDYWNoZSgpLHRoaXMuX2RldGFpbGVkRGF0YUJ1ZmZlci5jbGVhcigpLHRoaXMuX2NyZWF0ZVN0dWR5UGxvdHMoKSx0aGlzLl9jcmVhdGVTdHVkeUdyYXBoaWNzKCksdGhpcy51cGRhdGVBbGxWaWV3cygoMCxiLnNvdXJjZUNoYW5nZUV2ZW50KSh7c291cmNlSWQ6dGhpcy5pZCgpLGNsZWFyRGF0YTohMH0pKSx0aGlzLm1vZGVsKCkudXBkYXRlU291cmNlKHRoaXMpKX1fb25Sb3VnaE9yRGV0YWlsZWREYXRhVXBkYXRlZChlKXtudWxsIT09dGhpcy5fcm91Z2hEYXRhU291cmNlJiZudWxsIT09dGhpcy5fZGV0YWlsZWREYXRhU291cmNlJiYoZS5sZW5ndGg+MCYmdGhpcy5fY3JlYXRlU3R1ZHlQbG90cygpLHRoaXMudXBkYXRlQWxsVmlld3MoKDAsYi5zb3VyY2VDaGFuZ2VFdmVudCkodGhpcy5pZCgpKSksdGhpcy5tb2RlbCgpLnVwZGF0ZVNvdXJjZSh0aGlzKSl9YXN5bmMgX3NldEFsZXJ0c1N0dWR5TWV0YUluZm8oKXt0aGlzLl9hbGVydHNTdHVkeU1ldGFJbmZvPWF3YWl0KDAsdy5zdHVkeU1ldGFJbmZvUmVwb3NpdG9yeSkoKS5maW5kQnlJZCh7dHlwZToiamF2YSIsc3R1ZHlJZDpEfSksdGhpcy5fdXBkYXRlQWxlcnRDcmVhdGlvbkF2YWlsYWJsZSgpfX1mdW5jdGlvbiBBKCl7cmV0dXJuIHZvaWQgMCE9PXdpbmRvdy5wcm8mJndpbmRvdy5wcm8uaGFzUGFja2FnZShDKX1mdW5jdGlvbiBMKGUsdCl7Y29uc3Qgcz17fTtmb3IoY29uc3QgaSBvZiBlKXNbaS5pZF09dFtpLmlkXTtyZXR1cm4gc31mdW5jdGlvbiBFKGUpe2NvbnN0IHQ9ZS5sYXN0X3Zpc2libGVfYmFyX3RpbWUtZS5maXJzdF92aXNpYmxlX2Jhcl90aW1lO3JldHVybnsuLi5lLApmaXJzdF92aXNpYmxlX2Jhcl90aW1lOmUuZmlyc3RfdmlzaWJsZV9iYXJfdGltZS10LGxhc3RfdmlzaWJsZV9iYXJfdGltZTplLmxhc3RfdmlzaWJsZV9iYXJfdGltZSt0fX1mdW5jdGlvbiBNKGUpe2NvbnN0e2Zyb206dCx0bzpzfT0oMCxsLnJhbmdlRGVwZW5kZW50U3R1ZHlJbnB1dHNUb1RpbWVSYW5nZSkoZSk7cmV0dXJuIHMtdH1mdW5jdGlvbiBrKGUpe3JldHVybmAke2UuaWR9LSR7ZS52ZXJzaW9ufWB9fSwyNDM3MjMoZSx0LHMpeyJ1c2Ugc3RyaWN0IjtzLnIodCkscy5kKHQse1Nlc3Npb25Wb2x1bWVTdHVkeTooKT0+XyxjcmVhdGVTZXNzaW9uVm9sdW1lU3R1ZHk6KCk9Pnl9KTt2YXIgaT1zKDEzODYzOCkscj1zKDQzNzc0OSksbj1zKDYwNTI1Nyksbz1zKDE0MTM1MCksYT1zKDg3MjM0MyksbD1zKDIyNzA1NiksdT1zKDIzNDg2NiksYz1zKDg3MzYzKTtjbGFzcyBoIGV4dGVuZHMgYy5TdHVkeUNoYXJ0RmxvYXRpbmdUb29sdGlwVmFsdWVzUHJvdmlkZXJ7Y29uc3RydWN0b3IoZSx0LHMsaSl7c3VwZXIoZSx0LGkpLHRoaXMuX3Nlcmllc1ZhbHVlc1Byb3ZpZGVyPW5ldyB1LlNlcmllc0NoYXJ0RmxvYXRpbmdUb29sdGlwVmFsdWVzUHJvdmlkZXIocyx0KX1nZXRJdGVtcygpe3JldHVyblsuLi5zdXBlci5nZXRJdGVtcygpLHRoaXMuX3Nlcmllc1ZhbHVlc1Byb3ZpZGVyLmdldEl0ZW1zKClbN11dfWdldFZhbHVlcyhlKXtyZXR1cm5bLi4uc3VwZXIuZ2V0VmFsdWVzKGUpLHRoaXMuX3Nlcmllc1ZhbHVlc1Byb3ZpZGVyLmdldFZhbHVlcyhlKVs3XV19fXZhciBkPXMoNTUwMzkzKTtjbGFzcyBfIGV4dGVuZHMgbC5Wb2x1bWVQcm9maWxlV2l0aFByaWNlUmFuZ2VTdHVkeXt9Y2xhc3MgcCBleHRlbmRzIF97Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMuX2NoYXJ0RmxvYXRpbmdUb29sdGlwVmFsdWVzUHJvdmlkZXI9bnVsbH1wYW5lVmlld3MoZSl7cmV0dXJuIHRoaXMuX3BhbmVWaWV3c31wcmljZVNjYWxlKCl7cmV0dXJuIHRoaXMuX21vZGVsLm1haW5TZXJpZXMoKS5wcmljZVNjYWxlKCl9aGFzU3RhdGVGb3JBbGVydCgpe3JldHVybiExfWNoYXJ0RmxvYXRpbmdUb29sdGlwVmFsdWVzUHJvdmlkZXIoKXtyZXR1cm4gbnVsbD09PXRoaXMuX2NoYXJ0RmxvYXRpbmdUb29sdGlwVmFsdWVzUHJvdmlkZXImJih0aGlzLl9jaGFydEZsb2F0aW5nVG9vbHRpcFZhbHVlc1Byb3ZpZGVyPW5ldyBoKHRoaXMsdGhpcy5fbW9kZWwsdGhpcy5fbW9kZWwubWFpblNlcmllcygpKSksdGhpcy5fY2hhcnRGbG9hdGluZ1Rvb2x0aXBWYWx1ZXNQcm92aWRlcn1fY3JlYXRlZENoYXJ0RmxvYXRpbmdUb29sdGlwVmlldygpe3JldHVybiBuZXcgby5TdHVkeUNoYXJ0RmxvYXRpbmdUb29sdGlwVmlldyh0aGlzLHRoaXMuX21vZGVsLCEwKX19YXN5bmMgZnVuY3Rpb24geShlKXtjb25zdCB0PWF3YWl0KDAsbi5zdHVkeU1ldGFJbmZvUmVwb3NpdG9yeSkoKS5maW5kQnlJZCh7dHlwZToiamF2YSIsc3R1ZHlJZDpkLnN0dWR5VmJQU2Vzc2lvbnNJZH0pLHM9KDAsci5wcmVwYXJlU3R1ZHlQcm9wZXJ0aWVzKSh0LHt9LG51bGwsKDAsbi5zdHVkeU1ldGFJbmZvUmVwb3NpdG9yeSkoKS5zdHVkeVZlcnNpb25pbmcoKSxbXSksbz0iU2Vzc2lvblZvbHVtZUFzQ2hhcnRTdHlsZSI7KDAsYS5hZGRTdHVkeUluZm9Ub01hcCkobywoMCxhLmNyZWF0ZVN0dWR5SW5mbykoKGFzeW5jKCk9PnApLCJub1JvdGF0aW9ucyIpKTtjb25zdCBsPSgwLGkuZW5zdXJlRGVmaW5lZCkoKDAsYS5nZXRTdHVkeUluZm9CeU5hbWUpKG8pKTtyZXR1cm4gbC5zdHVkeUNvbnN0cnVjdG9yfHwobC5zdHVkeUNvbnN0cnVjdG9yPXApLG5ldyBwKGUscyxbXSx0LHQsITEpfX0sMjI3MDU2KGUsdCxzKXsidXNlIHN0cmljdCI7cy5kKHQse1ZiUFZpc2libGVXcmFwcGVyOigpPT55LFZvbHVtZVByb2ZpbGVTdHVkeVdpdGhUaGVtZWRDb2xvcnM6KCk9Pl8sVm9sdW1lUHJvZmlsZVdpdGhQcmljZVJhbmdlU3R1ZHk6KCk9PnB9KTt2YXIgaT1zKDEzODYzOCkscj1zKDIzMjM2NCksbj1zKDYzNTUwOSk7dmFyIG89cyg3MTY3OCksYT1zKDg3MzU3Myk7Y2xhc3MgbCBleHRlbmRzIG8uUHJpY2VBeGlzVmlld3tjb25zdHJ1Y3RvcihlLHQpe3N1cGVyKCksdGhpcy5fc291cmNlPWUsdGhpcy5fc3R5bGVJZD10fV91cGRhdGVSZW5kZXJlckRhdGEoZSx0LHMpe2UudmlzaWJsZT0hMTtjb25zdCBpPXRoaXMuX3NvdXJjZS5wcmljZVNjYWxlKCkscj10aGlzLl9zb3VyY2UucHJvcGVydGllcygpLmNoaWxkcygpO2lmKCFpfHxpLmlzRW1wdHkoKXx8IXIudmlzaWJsZS52YWx1ZSgpKXJldHVybjtjb25zdCBuPXRoaXMuX3NvdXJjZS5wcm9wZXJ0aWVzKCkuY2hpbGRzKCkuZ3JhcGhpY3MuY2hpbGRzKCkuaG9yaXpsaW5lcz8uY2hpbGRzKClbdGhpcy5fc3R5bGVJZF0uY2hpbGRzKCk7aWYoIShuJiZuLnZpc2libGUmJm4udmlzaWJsZS52YWx1ZSgpJiZ0aGlzLl9pc0xhYmVsVmlzaWJsZUFjY29yZGluZ2x5VG9Qcm9wZXJ0aWVzKCkpKXJldHVybjtjb25zdCBvPXRoaXMuX3NvdXJjZS5tb2RlbCgpLnRpbWVTY2FsZSgpLmxvZ2ljYWxSYW5nZSgpLGw9dGhpcy5fc291cmNlLmZpcnN0VmFsdWUoKTtpZihudWxsPT09bHx8bnVsbD09PW8pcmV0dXJuO2NvbnN0IHU9e3ByaWNlOk5hTix0aW1lOi0xLzB9LGM9dGhpcy5fc291cmNlLmdyYXBoaWNzKCkuaG9yaXpsaW5lcygpLmdldCh0aGlzLl9zdHlsZUlkKTtpZih2b2lkIDA9PT1jKXJldHVybjtmb3IoY29uc3QgZSBvZiBjKXtpZih2b2lkIDA9PT1lLmxldmVsKWNvbnRpbnVlO2NvbnN0IHQ9by5jb250YWlucyhlLnN0YXJ0SW5kZXgsITApO3Q9PT1vLmNvbnRhaW5zKGUuZW5kSW5kZXgsITApJiYwIT09dHx8dS50aW1lPGUuZW5kSW5kZXgmJih1LnRpbWU9ZS5lbmRJbmRleCx1LnByaWNlPWUubGV2ZWwpfWlmKGlzTmFOKHUucHJpY2UpKXJldHVybjtjb25zdCBoPSgwLGEucmVzZXRUcmFuc3BhcmVuY3kpKG4uY29sb3IudmFsdWUoKSk7cy5iYWNrZ3JvdW5kPWgscy50ZXh0Q29sb3I9dGhpcy5nZW5lcmF0ZVRleHRDb2xvcihoKSxzLmNvb3JkaW5hdGU9aS5wcmljZVRvQ29vcmRpbmF0ZSh1LnByaWNlLGwpLAplLnRleHQ9aS5mb3JtYXRQcmljZSh1LnByaWNlLGwse3NpZ25Qb3NpdGl2ZTppLmlzUGVyY2VudGFnZSgpfSksZS52aXNpYmxlPSEwLGUuc2VsZWN0ZWRNYXJrQ29sb3I9dGhpcy5fc291cmNlLm1vZGVsKCkuc2VsZWN0aW9uKCkuaXNTZWxlY3RlZCh0aGlzLl9zb3VyY2UpP2g6dm9pZCAwfV9pc0xhYmVsVmlzaWJsZUFjY29yZGluZ2x5VG9Qcm9wZXJ0aWVzKCl7Y29uc3QgZT10aGlzLl9zb3VyY2UubW9kZWwoKS5wcm9wZXJ0aWVzKCkuY2hpbGRzKCkuc2NhbGVzUHJvcGVydGllcy5jaGlsZHMoKTtyZXR1cm4oZS5zaG93U3R1ZHlMYXN0VmFsdWUudmFsdWUoKXx8ZS5zaG93RnVuZGFtZW50YWxMYXN0VmFsdWUudmFsdWUoKSkmJnRoaXMuX3NvdXJjZS5wcm9wZXJ0aWVzKCkuY2hpbGRzKCkuc2hvd0xhYmVsc09uUHJpY2VTY2FsZS52YWx1ZSgpfX12YXIgdT1zKDE5NzI3MiksYz1zKDMxNTY1NCksaD1zKDg5ODkyNyk7Y2xhc3MgZCBleHRlbmRzIHUuU3R1ZHl7Y29uc3RydWN0b3IoZSx0LHMsaSxyLG4pe3N1cGVyKGUsdCxzLGkscixuKX1wcmVmZXJyZWRaT3JkZXIoKXtyZXR1cm4gMH1hc3luYyBfY3JlYXRlR3JhcGhpY3NQYW5lVmlld3MoKXtjb25zdCBlPXRoaXMubWV0YUluZm8oKS5ncmFwaGljcyx0PXRoaXMubW9kZWwoKSxpPXtyZWd1bGFyUGFuZVZpZXdzOltdLGZvcmNlT3ZlcmxheVBhbmVWaWV3czpbXX0scj10aGlzLl9uZWVkRXh0ZW5kVG9CYXJzRW5kaW5nKCk7aWYoZS5oaGlzdHMpe2NvbnN0e0hIaXN0UGFuZVZpZXc6ZX09YXdhaXQgUHJvbWlzZS5hbGwoW3MuZSg5NzU1OCkscy5lKDQ1Mjc3KSxzLmUoOTE2NjgpXSkudGhlbihzLmJpbmQocywyMjExNjUpKSxuPXRoaXMucHJvcGVydGllcygpLmNoaWxkcygpLmdyYXBoaWNzLmNoaWxkcygpLnBvbHlnb25zPy5jaGlsZHMoKTtpLnJlZ3VsYXJQYW5lVmlld3MucHVzaChuZXcgZSh0aGlzLHQsdm9pZCAwLG4/Lmhpc3RCb3hCZyxyKSl9aWYoZS5ob3JpemxpbmVzKXtjb25zdHtIb3JpekxpbmVQYW5lVmlldzplfT1hd2FpdCBQcm9taXNlLmFsbChbcy5lKDk3NTU4KSxzLmUoNDUyNzcpLHMuZSg5MTY2OCldKS50aGVuKHMuYmluZChzLDY3NzkwOSkpO2kucmVndWxhclBhbmVWaWV3cy5wdXNoKG5ldyBlKHRoaXMsdCx2b2lkIDAscikpfXJldHVybiBpfV9jcmVhdGVHcmFwaGljc1ByaWNlQXhpc1ZpZXdzKCl7cmV0dXJuIE9iamVjdC5rZXlzKHRoaXMubWV0YUluZm8oKS5ncmFwaGljcy5ob3JpemxpbmVzPz97fSkubWFwKChlPT5uZXcgbCh0aGlzLGUpKSl9X2NyZWF0ZVN0dWR5UGxvdFBhbmVWaWV3KGUpe3JldHVybiBuZXcgYy5TdHVkeVBsb3RQYW5lVmlldyh0aGlzLHRoaXMuX3Nlcmllcyx0aGlzLl9tb2RlbCxlLHRoaXMuX25lZWRFeHRlbmRUb0JhcnNFbmRpbmcoKSl9X2FwaUlucHV0cygpe3JldHVybnsuLi5zdXBlci5fYXBpSW5wdXRzKCksbWFwUmlnaHRCb3VuZGFyeVRvQmFyU3RhcnRUaW1lOiEhdGhpcy5fbmVlZEV4dGVuZFRvQmFyc0VuZGluZygpfHx2b2lkIDB9fV9uZWVkRXh0ZW5kVG9CYXJzRW5kaW5nKCl7cmV0dXJuIHZvaWQgMCE9PXRoaXMubWV0YUluZm8oKS5kZWZhdWx0cy5pbnB1dHM/Lm1hcFJpZ2h0Qm91bmRhcnlUb0JhclN0YXJ0VGltZX19Y2xhc3MgXyBleHRlbmRzIGR7Y29uc3RydWN0b3IoZSx0LHMsaSxyLG4pe3Quc2V0VGhlbWVkQ29sb3JzKCgwLGgudm9sdW1lUHJvZmlsZVRoZW1lZENvbG9ycykodC5jaGlsZHMoKS5ncmFwaGljcy5jaGlsZHMoKS5wb2x5Z29ucz8uaGFzQ2hpbGQoImhpc3RCb3hCZyIpKSksc3VwZXIoZSx0LHMsaSxyLG4pfX1jbGFzcyBwIGV4dGVuZHMgX3twcmljZVJhbmdlKGUpe2lmKGUudGFyZ2V0UHJpY2VTY2FsZSE9PXRoaXMucHJpY2VTY2FsZSgpKXJldHVybiBudWxsO2xldCB0PSExO3RoaXMuZ3JhcGhpY3MoKS5oaGlzdHMoKS5mb3JFYWNoKCgoZSxzKT0+e3Q9dHx8KDAsaS5lbnN1cmVEZWZpbmVkKSh0aGlzLnByb3BlcnRpZXMoKS5jaGlsZHMoKS5ncmFwaGljcy5jaGlsZHMoKS5oaGlzdHM/LmNoaWxkcygpW3NdKS52YWx1ZSgpfSkpO2NvbnN0IHM9ZnVuY3Rpb24oZSx0LHMsaSl7bGV0IHI9bnVsbDtyZXR1cm4gZS5mb3JFYWNoKChlPT57ZS5mb3JFYWNoKChlPT57Y29uc3QgaT1lLmZpcnN0QmFyVGltZTtudWxsIT09aSYmaTw9cyYmZS5sYXN0QmFyVGltZT49dCYmKG51bGw9PT1yP3I9e2xvdzp7bDplLnByaWNlTG93LGg6ZS5wcmljZUhpZ2h9LGhpZ2g6e2g6ZS5wcmljZUhpZ2h9fTooZS5wcmljZUxvdzxyLmxvdy5sJiYoci5sb3cubD1lLnByaWNlTG93LHIubG93Lmg9ZS5wcmljZUhpZ2gpLHIuaGlnaC5oPU1hdGgubWF4KHIuaGlnaC5oLGUucHJpY2VIaWdoKSkpfSkpfSkpLG51bGw9PT1yP251bGw6aT9uZXcgbi5QcmljZVJhbmdlKHIubG93LmwtLjgqKHIubG93Lmgtci5sb3cubCksci5oaWdoLmgpOm5ldyBuLlByaWNlUmFuZ2Uoci5sb3cubCxyLmhpZ2guaCl9KHRoaXMuZ3JhcGhpY3MoKS5oaGlzdHMoKSxlLnN0YXJ0VGltZVBvaW50LGUuZW5kVGltZVBvaW50LHQpO2lmKG51bGw9PT1zKXJldHVybiBudWxsO2NvbnN0IHI9KDAsaS5lbnN1cmVOb3ROdWxsKSh0aGlzLnByaWNlU2NhbGUoKSk7cmV0dXJuIHIuaXNMb2coKT9uZXcgbi5QcmljZVJhbmdlKHIucHJpY2VUb0xvZ2ljYWwocy5taW5WYWx1ZSgpKSxyLnByaWNlVG9Mb2dpY2FsKHMubWF4VmFsdWUoKSkpOnN9fWNsYXNzIHkgZXh0ZW5kcyBwe2FsZXJ0Q3JlYXRpb25BdmFpbGFibGUoKXtyZXR1cm4gbmV3IHIuV2F0Y2hlZFZhbHVlKCExKS5yZWFkb25seSgpfV9uZWVkRXh0ZW5kVG9CYXJzRW5kaW5nKCl7cmV0dXJuITF9fX0sODk4OTI3KGUsdCxzKXsidXNlIHN0cmljdCI7cy5kKHQse3ZvbHVtZVByb2ZpbGVUaGVtZWRDb2xvcnM6KCk9Pl99KTt2YXIgaT1zKDUwNzYwNCk7Y29uc3R7Y29sb3JDb2xkR3JheTIwMDpyLGNvbG9yQ29sZEdyYXk5MDA6bixjb2xvckJlcnJ5UGluazQwMEFscGhhNTA6byxjb2xvckJlcnJ5UGluazQwMEFscGhhNzU6YSxjb2xvclNreUJsdWU0MDBBbHBoYTUwOmwsY29sb3JTa3lCbHVlNDAwQWxwaGE1OnUsY29sb3JTa3lCbHVlNDAwQWxwaGE3NTpjLGNvbG9yU2t5Qmx1ZTUwMDpofT1pLmNvbG9ycyxkPXsKdmFsOltuLHJdLHBvYzpbbixyXSx2YWg6W24scl0sZGV2ZWxvcGluZ1BvYzpbbixyXSxkZXZlbG9waW5nVkE6W2gsaF0sdmFsdWVzQ29sb3I6W24scl0sdm9sdW1lQ29sb3JVcDpbbCxsXSx2b2x1bWVDb2xvckRvd246W28sb10sdmFsdWVBcmVhQ29sb3JVcDpbYyxjXSx2YWx1ZUFyZWFDb2xvckRvd246W2EsYV0saGlzdG9ncmFtQm94Q29sb3I6W3UsdV19O2Z1bmN0aW9uIF8oZSl7Y29uc3QgdD0iZ3JhcGhpY3MuaG9yaXpsaW5lcyIscz0iZ3JhcGhpY3MuaGhpc3RzIixpPVt7cGF0aDpgJHt0fS5wb2NMaW5lcy5jb2xvcmAsY29sb3JzOmQucG9jfSx7cGF0aDpgJHt0fS52YWhMaW5lcy5jb2xvcmAsY29sb3JzOmQudmFofSx7cGF0aDpgJHt0fS52YWxMaW5lcy5jb2xvcmAsY29sb3JzOmQudmFsfSx7cGF0aDpgJHtzfS5oaXN0QmFyczIuY29sb3JzLjBgLGNvbG9yczpkLnZvbHVtZUNvbG9yVXB9LHtwYXRoOmAke3N9Lmhpc3RCYXJzMi5jb2xvcnMuMWAsY29sb3JzOmQudm9sdW1lQ29sb3JEb3dufSx7cGF0aDpgJHtzfS5oaXN0QmFyczIudmFsdWVzQ29sb3JgLGNvbG9yczpkLnZhbHVlc0NvbG9yfSx7cGF0aDpgJHtzfS5oaXN0QmFyc1ZBLmNvbG9ycy4wYCxjb2xvcnM6ZC52YWx1ZUFyZWFDb2xvclVwfSx7cGF0aDpgJHtzfS5oaXN0QmFyc1ZBLmNvbG9ycy4xYCxjb2xvcnM6ZC52YWx1ZUFyZWFDb2xvckRvd259LHtwYXRoOmAke3N9Lmhpc3RCYXJzVkEudmFsdWVzQ29sb3JgLGNvbG9yczpkLnZhbHVlc0NvbG9yfSx7cGF0aDoic3R5bGVzLmRldmVsb3BpbmdQb2MuY29sb3IiLGNvbG9yczpkLmRldmVsb3BpbmdQb2N9LHtwYXRoOiJzdHlsZXMuZGV2ZWxvcGluZ1ZBSGlnaC5jb2xvciIsY29sb3JzOmQuZGV2ZWxvcGluZ1ZBfSx7cGF0aDoic3R5bGVzLmRldmVsb3BpbmdWQUxvdy5jb2xvciIsY29sb3JzOmQuZGV2ZWxvcGluZ1ZBfV07cmV0dXJuIGUmJmkucHVzaCh7cGF0aDoiZ3JhcGhpY3MucG9seWdvbnMuaGlzdEJveEJnLmNvbG9yIixjb2xvcnM6ZC5oaXN0b2dyYW1Cb3hDb2xvcn0pLGl9fSw3MjAxMjAoZSx0LHMpeyJ1c2Ugc3RyaWN0IjtzLmQodCx7Vm9sdW1lU3R1ZHk6KCk9Pm99KTt2YXIgaT1zKDE5NzI3Mikscj1zKDEwMDIzOSksbj1zKDE2ODI1OCk7Y2xhc3MgbyBleHRlbmRzIGkuU3R1ZHl7YmFzZSgpe3JldHVybiAxfWRlc3Ryb3koKXtzdXBlci5kZXN0cm95KCl9c2hvd09uVG9wT25Ib3ZlcmluZygpe3JldHVybiExfWNoYXJ0RmxvYXRpbmdUb29sdGlwVmlldygpe3JldHVybiB0aGlzLl9tb2RlbC5wYW5lRm9yU291cmNlKHRoaXMpPT09dGhpcy5fbW9kZWwubWFpblBhbmUoKT9udWxsOnN1cGVyLmNoYXJ0RmxvYXRpbmdUb29sdGlwVmlldygpfV90aXRsZUluUGFydHMoZSx0LHMsaSxyLG4pe2NvbnN0IG89c3VwZXIuX3RpdGxlSW5QYXJ0cyhlLHQscyxpLHIpLGE9dGhpcy5fZ2V0Vm9sdW1lVW5pdCgpO3JldHVybiBhJiYhbiYmKG9bMF0rPWAgwrcgJHthfWApLG99X3NraXBwZWRUaXRsZUlucHV0cygpe2NvbnN0IGU9c3VwZXIuX3NraXBwZWRUaXRsZUlucHV0cygpO3RoaXMuX2dldFBsb3REaXNwbGF5VmFsdWUoInZvbF9tYSIpPT09bi5TdHVkeVBsb3REaXNwbGF5VGFyZ2V0Lk5vbmUmJiFlLmluY2x1ZGVzKCJsZW5ndGgiKSYmZS5wdXNoKCJsZW5ndGgiKTtyZXR1cm4gZX1fZ2V0Vm9sdW1lVW5pdCgpe2NvbnN0IGU9dGhpcy5zeW1ib2xTb3VyY2UoKS5zeW1ib2xJbmZvKCk7cmV0dXJuIGU/KDAsci5nZXRWb2x1bWVVbml0KSh7Li4uZSxjdXJyZW5jeTplLm9yaWdpbmFsX2N1cnJlbmN5X2NvZGV8fGUuY3VycmVuY3lfY29kZX0pOnZvaWQgMH19fSwxMjMyNjAoZSx0LHMpeyJ1c2Ugc3RyaWN0IjtzLmQodCx7c3R1ZHlfT3ZlcmxheTooKT0+T2V9KTt2YXIgaT1zKDEzODYzOCkscj1zKDYwMTg0MSksbj1zKDIzMjM2NCksbz1zKDk1MjkwMCksYT1zKDIyMTA2MSksbD1zKDQ3NTQ3OCksdT1zKDYxOTE2NSksYz1zKDg1NzE1MSksaD1zKDkzNjMyNiksZD1zKDkzMDIzMSksXz1zKDk2ODY3MSkscD1zKDU2OTg0NikseT1zKDMxODk3NCksbT1zKDE5NzI3Miksdj1zKDQ1OTY3MyksZj1zKDE1Mjc2NiksUz1zKDEyODk5OCksZz1zKDMxNDkxNCksYj1zKDc2ODI5Miksdz1zKDQwNzc5OSksQz1zKDY5OTU1MCksUD1zKDIwNjU3MCkseD1zKDMyMjU1NCksRD1zKDYzNTUwOSksST1zKDI1MDMzNCksVD1zKDkzMjY5MyksVj1zKDgwNjgxOCksUj1zKDcxNjc4KSxBPXMoMjI2NDc3KSxMPXMoMTIzNjE3KSxFPXMoODczNTczKTtjb25zdCBNPSgwLGQuaXNGZWF0dXJlc2V0RW5hYmxlZCkoImZvcmNlX2V4Y2hhbmdlX2FzX3RpdGxlIik7Y2xhc3MgayBleHRlbmRzIFIuUHJpY2VBeGlzVmlld3tjb25zdHJ1Y3RvcihlKXtzdXBlcigpLHRoaXMuX3NvdXJjZT1lfV91cGRhdGVSZW5kZXJlckRhdGEoZSx0LHMpe2UudmlzaWJsZT0hMSx0LnZpc2libGU9ITE7Y29uc3Qgcj10aGlzLl9zb3VyY2UubGFzdFZhbHVlRGF0YSgiY2xvc2UiLCExKTtpZihyLm5vRGF0YSlyZXR1cm47Y29uc3Qgbj10aGlzLl9zb3VyY2UubW9kZWwoKSxvPXRoaXMuX3NvdXJjZS5wcmljZVNjYWxlKCk7aWYobnVsbD09PW8pcmV0dXJuO2lmKCFuLmlzUHJpY2VTY2FsZVZpc2libGUobykpcmV0dXJuO2NvbnN0IGE9bi50aW1lU2NhbGUoKS52aXNpYmxlQmFyc1N0cmljdFJhbmdlKCksbD1uLm1haW5TZXJpZXMoKS5iYXJzKCkubGFzdEluZGV4KCk7aWYobnVsbD09PWF8fG51bGw9PT1sKXJldHVybjtsZXQgdTtpZihsPD1hLmxhc3RCYXIoKSlzLmJhY2tncm91bmQ9KDAsRS5yZXNldFRyYW5zcGFyZW5jeSkoci5jb2xvcikscy50ZXh0Q29sb3I9dGhpcy5nZW5lcmF0ZVRleHRDb2xvcihyLmNvbG9yKSxlLmJvcmRlclZpc2libGU9ITEsdC5ib3JkZXJWaXNpYmxlPSExLHU9cy5iYWNrZ3JvdW5kO2Vsc2V7Y29uc3Qgbz1uLmJhY2tncm91bmRDb2xvckF0WVBlcmNlbnRGcm9tVG9wKHIuY29vcmRpbmF0ZS8oMCxpLmVuc3VyZU5vdE51bGwpKG4ucGFuZUZvclNvdXJjZSh0aGlzLl9zb3VyY2UpKS5oZWlnaHQoKSk7cy5iYWNrZ3JvdW5kPW8scy50ZXh0Q29sb3I9KDAsRS5yZXNldFRyYW5zcGFyZW5jeSkoci5jb2xvciksCnMuYm9yZGVyQ29sb3I9cy50ZXh0Q29sb3IsdT1zLmJvcmRlckNvbG9yLGUuYm9yZGVyVmlzaWJsZT0hMCx0LmJvcmRlclZpc2libGU9ITB9cy5jb29yZGluYXRlPXIuY29vcmRpbmF0ZTtjb25zdCBjPXRoaXMuX3NvdXJjZS5tb2RlbCgpLnByb3BlcnRpZXMoKS5jaGlsZHMoKS5zY2FsZXNQcm9wZXJ0aWVzLmNoaWxkcygpO2Muc2hvd1Nlcmllc0xhc3RWYWx1ZS52YWx1ZSgpJiYoZS50ZXh0PSgwLEwuZ2V0Q3VycmVudE1vZGVQcmljZVRleHQpKG8sciksYy5zZXJpZXNMYXN0VmFsdWVNb2RlLnZhbHVlKCkhPT1BLlByaWNlQXhpc0xhc3RWYWx1ZU1vZGUuTGFzdFByaWNlQW5kUGVyY2VudGFnZVZhbHVlP2Uuc2Vjb25kTGluZT0iIjplLnNlY29uZExpbmU9KDAsTC5nZXRPcHBvc2l0ZU1vZGVQcmljZVRleHQpKG8sciksZS52aXNpYmxlPSEwKSx0LnRleHQ9IiIsYy5zaG93U3ltYm9sTGFiZWxzLnZhbHVlKCkmJih0LnRleHQ9dGhpcy5fcGFuZVRleHQoKSx0LnZpc2libGU9dC50ZXh0Lmxlbmd0aD4wKSxlLnNlbGVjdGVkTWFya0NvbG9yPW4uc2VsZWN0aW9uKCkuaXNTZWxlY3RlZCh0aGlzLl9zb3VyY2UpP3U6dm9pZCAwfV9wYW5lVGV4dCgpe2xldCBlPSIiO2NvbnN0IHQ9dGhpcy5fc291cmNlLmFsaWFzU3ltYm9sSW5mbygpO3JldHVybiBNP2U9KDAsUy5kaXNwbGF5ZWRTeW1ib2xFeGNoYW5nZSkodCk6dGhpcy5fc291cmNlLm1vZGVsKCkucHJvcGVydGllcygpLmNoaWxkcygpLnNjYWxlc1Byb3BlcnRpZXMuY2hpbGRzKCkuc2hvd1N5bWJvbExhYmVscy52YWx1ZSgpJiYoZT0oMCxTLmRpc3BsYXllZFN5bWJvbE5hbWUpKHQpKSxlfX12YXIgQj1zKDk2OTQpO2NsYXNzIE4gZXh0ZW5kcyBCLlByaWNlTGluZUF4aXNWaWV3e2NvbnN0cnVjdG9yKGUpe3N1cGVyKCksdGhpcy5fc3R1ZHk9ZX1fdmFsdWUoKXtyZXR1cm4gdGhpcy5fc3R1ZHkubGFzdFZhbHVlRGF0YSgiIiwhMCl9X3ByaWNlTGluZUNvbG9yKGUpe3JldHVybiBlfV9saW5lV2lkdGgoKXtyZXR1cm4gMX1faXNWaXNpYmxlKCl7Y29uc3QgZT10aGlzLl9zdHVkeS5tb2RlbCgpLnByb3BlcnRpZXMoKS5jaGlsZHMoKS5zY2FsZXNQcm9wZXJ0aWVzLmNoaWxkcygpLnNob3dTZXJpZXNMYXN0VmFsdWUudmFsdWUoKTtyZXR1cm4gdGhpcy5fc3R1ZHkucHJvcGVydGllcygpLmNoaWxkcygpLnNob3dQcmljZUxpbmUudmFsdWUoKSYmZX19dmFyIEY9cygyNjA2OSksTz1zKDY1MDQ4MCk7Y2xhc3MgSHtjb25zdHJ1Y3RvcihlKXt0aGlzLl9saW5lUmVuZGVyZXI9bmV3IE8uSG9yaXpvbnRhbExpbmVSZW5kZXJlcix0aGlzLl92aXNpYmxlPSExLHRoaXMuX3NvdXJjZT1lfXVwZGF0ZSgpe2lmKHRoaXMuX3Zpc2libGU9ITEsIXRoaXMuX3NvdXJjZS5wcm9wZXJ0aWVzKCkuY2hpbGRzKCkuc2hvd1ByaWNlTGluZS52YWx1ZSgpKXJldHVybjtjb25zdCBlPXRoaXMuX3NvdXJjZS5sYXN0VmFsdWVEYXRhKCIiLCEwKTtlLm5vRGF0YXx8KHRoaXMuX3Zpc2libGU9ITAsdGhpcy5fbGluZVJlbmRlcmVyLnNldERhdGEoe3k6ZS5jb29yZGluYXRlLGNvbG9yOmUuY29sb3IsbGluZXdpZHRoOjEsbGluZXN0eWxlOkYuTElORVNUWUxFX0RPVFRFRCx2aXNpYmxlOnRoaXMuX3Zpc2libGV9KSl9cmVuZGVyZXIoKXtyZXR1cm4gdGhpcy5fdmlzaWJsZT90aGlzLl9saW5lUmVuZGVyZXI6bnVsbH19dmFyIHEsej1zKDg2MDQ0MiksVT1zKDY3ODI4NSksVz1zKDk0Mzk1KTshZnVuY3Rpb24oZSl7ZVtlLk9wZW49MF09Ik9wZW4iLGVbZS5IaWdoPTFdPSJIaWdoIixlW2UuTG93PTJdPSJMb3ciLGVbZS5DbG9zZT0zXT0iQ2xvc2UiLGVbZS5Tb3VyY2U9NF09IlNvdXJjZSIsZVtlLkxhc3RQcmljZT01XT0iTGFzdFByaWNlIixlW2UuQ2hhbmdlPTZdPSJDaGFuZ2UiLGVbZS5MYXN0RGF5Q2hhbmdlPTddPSJMYXN0RGF5Q2hhbmdlIn0ocXx8KHE9e30pKTt2YXIgJD1zKDE4NTI3MSksRz1zKDk2OTE2OCksaj1zKDIzMzI0NyksWT1zKDE4OTgwMCksSj1zKDE2ODc3MSksUT1zKDQxNjM1KSxaPXMoODgyMDU2KSxLPXMoNjQwMjkyKTtjb25zdCBYPUoubGFzdERheUNoYW5nZUF2YWlsYWJsZXx8Si5hbHdheXNTaG93TGFzdFByaWNlQW5kTGFzdERheUNoYW5nZSxlZT15LkNoZWNrTW9iaWxlLmFueSgpLHRlPSgwLGouZ2V0UGVyY2VudGFnZUZvcm1hdHRlcikoKSxzZT1LLm5vdEF2YWlsYWJsZSxpZT1gJHtzZX0gKCR7c2V9JSlgO2NsYXNzIHJle2NvbnN0cnVjdG9yKGUsdCxpPSEwKXt0aGlzLl9zdHVkeT1lLHRoaXMuX21vZGVsPXQsdGhpcy5fc2VhcmNoTmVhcmVzdExlZnRWYWx1ZT1pLHRoaXMuX2VtcHR5VmFsdWVzPVt7dGl0bGU6JC50KG51bGwsdm9pZCAwLHMoOTc3ODEpKSx2aXNpYmxlOiExLHZhbHVlOiIiLGluZGV4OjAsb3JkZXJJbmRleDowLGlkOiJvcGVuIn0se3RpdGxlOiQudChudWxsLHZvaWQgMCxzKDg0NTU2MykpLHZpc2libGU6ITEsdmFsdWU6IiIsaW5kZXg6MSxvcmRlckluZGV4OjEsaWQ6ImhpZ2gifSx7dGl0bGU6JC50KG51bGwsdm9pZCAwLHMoODg4Njc4KSksdmlzaWJsZTohMSx2YWx1ZToiIixpbmRleDoyLG9yZGVySW5kZXg6MixpZDoibG93In0se3RpdGxlOiQudChudWxsLHtjb250ZXh0OiJpbnB1dCJ9LHMoMzEyMjk3KSksdmlzaWJsZTohMSx2YWx1ZToiIixpbmRleDozLG9yZGVySW5kZXg6MyxpZDoiY2xvc2UifSx7dGl0bGU6IiIsdmlzaWJsZTohMSx2YWx1ZToiIixpbmRleDo0LG9yZGVySW5kZXg6NCxpZDoic291cmNlIn0se3RpdGxlOiIiLHZpc2libGU6ITEsdmFsdWU6IiIsaW5kZXg6NSxvcmRlckluZGV4OjUsaWQ6Imxhc3RQcmljZSJ9LHt0aXRsZTokLnQobnVsbCx2b2lkIDAscyg2NzM0ODcpKSx2aXNpYmxlOiExLHZhbHVlOiIiLGluZGV4OjYsb3JkZXJJbmRleDo2LGlkOiJjaGFuZ2UifSx7dGl0bGU6JC50KG51bGwsdm9pZCAwLHMoMzE0NjcpKSx2aXNpYmxlOiExLHZhbHVlOiIiLGluZGV4Ojcsb3JkZXJJbmRleDo3LGlkOiJsYXN0RGF5Q2hhbmdlIn1dfWdldEl0ZW1zKCl7cmV0dXJuIHRoaXMuX2VtcHR5VmFsdWVzfWdldFZhbHVlcyhlKXtjb25zdCB0PXRoaXMuX2VtcHR5VmFsdWVzLm1hcCgoZT0+KHsuLi5lfSkpKQo7aWYodGhpcy5fbW9kZWwudGltZVNjYWxlKCkuaXNFbXB0eSgpKXJldHVybiB0O2NvbnN0IHM9dGhpcy5fc3R1ZHkuZGF0YSgpLGk9cy5sYXN0SW5kZXgoKTtpZigwPT09cy5zaXplKCl8fG51bGw9PT1pKXJldHVybiB0O2NvbnN0IG49dGhpcy5fc2VhcmNoTmVhcmVzdExlZnRWYWx1ZT9oLlBsb3RSb3dTZWFyY2hNb2RlLk5lYXJlc3RMZWZ0OmguUGxvdFJvd1NlYXJjaE1vZGUuRXhhY3Qsbz1zLnNlYXJjaChpLG4sMSk7aWYobnVsbD09PW8pcmV0dXJuIHQ7Y29uc3QgYT10aGlzLl9zaG93TGFzdFByaWNlQW5kQ2hhbmdlT25seSgpO2lmKCgwLHIuaXNOdW1iZXIpKGUpfHwoYT9lPWk6KGU9dGhpcy5fbW9kZWwuY3Jvc3NoYWlyU291cmNlKCkuYXBwbGllZEluZGV4KCksKDAsci5pc051bWJlcikoZSl8fChlPWkpKSksbnVsbD09PWV8fCEoMCxyLmlzTnVtYmVyKShlKSlyZXR1cm4gdDt0WzBdLnZhbHVlPXNlLHRbMV0udmFsdWU9c2UsdFsyXS52YWx1ZT1zZSx0WzNdLnZhbHVlPXNlLHRbN10udmFsdWU9aWUsdFs2XS52YWx1ZT1pZTtjb25zdCBsPXMuc2VhcmNoKGUsbiwxKSx1PXRoaXMuX21vZGVsLmJhY2tncm91bmRUb3BDb2xvcigpLnZhbHVlKCk7aWYobnVsbD09PWwpcmV0dXJuIHQ7Y29uc3QgYz1sLmluZGV4LGQ9bC52YWx1ZSxfPWRbMV0scD1kWzJdLHk9ZFszXSxtPWRbNF07Zm9yKGNvbnN0IGUgb2YgdCllLnZpc2libGU9IWE7Y29uc3Qgdj10WzRdO3YudmlzaWJsZT0hMTtjb25zdHtiYXJDaGFuZ2U6ZixsYXN0RGF5Q2hhbmdlOlN9PSgwLFkuY2hhbmdlc0RhdGEpKHMsdGhpcy5fc3R1ZHkucXVvdGVzKCksbC52YWx1ZSxsLmluZGV4LG8udmFsdWUpLGc9KDAsWi5nZXRQcmljZVZhbHVlRm9ybWF0dGVyRm9yU291cmNlKSh0aGlzLl9zdHVkeSk7aWYoKDAsWi5zaG91bGRCZUZvcm1hdHRlZEFzUGVyY2VudCkodGhpcy5fc3R1ZHkpfHwoMCxaLnNob3VsZEJlRm9ybWF0dGVkQXNJbmRleGVkVG8xMDApKHRoaXMuX3N0dWR5KSl0WzddLnZhbHVlPSIiLHRbNl0udmFsdWU9IiI7ZWxzZXtjb25zdCBlPXRoaXMuX3N0dWR5LmZvcm1hdHRlcigpLHM9e3NpZ25Qb3NpdGl2ZTohMH07aWYodm9pZCAwIT09Zil7Y29uc3R7Y3VycmVudFByaWNlOmkscHJldlByaWNlOnIsY2hhbmdlOm59PWYsbz1lLmZvcm1hdENoYW5nZT8uKGkscixzKT8/ZS5mb3JtYXQobixzKTt0WzZdLnZhbHVlPSgwLEcuZm9yY2VMVFJTdHIpKGAke299ICgke3RlLmZvcm1hdChmLnBlcmNlbnRDaGFuZ2Uscyl9KWApfWlmKHZvaWQgMCE9PVMpe2NvbnN0e2N1cnJlbnRQcmljZTppLHByZXZQcmljZTpyLGNoYW5nZTpuLHBlcmNlbnRDaGFuZ2U6b309UyxhPWUuZm9ybWF0Q2hhbmdlPy4oaSxyLHMpPz9lLmZvcm1hdChuLHMpO3RbN10udmFsdWU9KDAsRy5mb3JjZUxUUlN0cikoYCR7YX0gKCR7dGUuZm9ybWF0KG8scyl9KWApfX1sZXQgYj1udWxsO2lmKGEpdFs1XS52YWx1ZT1udWxsPT1tP3NlOmcobSksdFs1XS52aXNpYmxlPSEwLGI9dGhpcy5fZ2V0Q2hhbmdlQ29sb3IoUz8uY2hhbmdlKSx0WzZdLnZpc2libGU9dm9pZCAwIT09Zix0WzddLnZpc2libGU9dm9pZCAwIT09U3x8WDtlbHNle3RbMF0udmFsdWU9bnVsbD09Xz9zZTpnKF8pLHRbMV0udmFsdWU9bnVsbD09cD9zZTpnKHApLHRbMl0udmFsdWU9bnVsbD09eT9zZTpnKHkpLHRbM10udmFsdWU9bnVsbD09bT9zZTpnKG0pLHYudmFsdWU9Zyh0aGlzLl9zdHVkeS5iYXJGdW5jdGlvbigpKGQpKSx0WzVdLnZpc2libGU9ITE7Y29uc3QgZT10aGlzLl9tb2RlbC5tYWluU2VyaWVzKCkuaW50ZXJ2YWxPYmooKS52YWx1ZSgpLmlzMVRpY2soKSxzPTIxIT09dGhpcy5fc3R1ZHkucHJvcGVydGllcygpLmNoaWxkcygpLnN0eWxlLnZhbHVlKCk7dFswXS52aXNpYmxlPSFlJiZzLHRbMV0udmlzaWJsZT0hZSx0WzJdLnZpc2libGU9IWUsdFs3XS52aXNpYmxlPXZvaWQgMCE9PVN8fFgsdFs2XS52aXNpYmxlPXZvaWQgMCE9PWY7Y29uc3QgaT10aGlzLl9zdHVkeS5iYXJDb2xvcmVyKCkuYmFyU3R5bGUoYywhMSkscj1pLmJhckJvcmRlckNvbG9yPz9pLmJhckNvbG9yO2I9KDAsWS5jYWxjdWxhdGVDb2xvcikodSxyKX1iPSgwLEUucmVzZXRUcmFuc3BhcmVuY3kpKCgwLFkuY2FsY3VsYXRlQ29sb3IpKHUsYikpO2Zvcihjb25zdCBlIG9mIHQpZS5jb2xvcnx8KGUuY29sb3I9Yik7cmV0dXJuIHRbN10udmlzaWJsZSYmKHRbN10uY29sb3I9KDAsRS5yZXNldFRyYW5zcGFyZW5jeSkoKDAsWS5jYWxjdWxhdGVDb2xvcikodSx0aGlzLl9nZXRDaGFuZ2VDb2xvcihTPy5jaGFuZ2UpKSkpLHR9X21vYmlsZU5vblRyYWNraW5nTW9kZSgpe3JldHVybiBlZSYmKG51bGw9PT10aGlzLl9tb2RlbC5jcm9zc2hhaXJTb3VyY2UoKS5wYW5lfHwoMCx6LmlzTGluZVRvb2xOYW1lKShVLnRvb2wudmFsdWUoKSl8fG51bGwhPT10aGlzLl9tb2RlbC5saW5lQmVpbmdFZGl0ZWQoKSl9X3Nob3dMYXN0UHJpY2VBbmRDaGFuZ2VPbmx5KCl7cmV0dXJuIEouYWx3YXlzU2hvd0xhc3RQcmljZUFuZExhc3REYXlDaGFuZ2V8fHRoaXMuX21vYmlsZU5vblRyYWNraW5nTW9kZSgpfV9nZXRDaGFuZ2VDb2xvcihlKXtjb25zdCB0PXZvaWQgMD09PWV8fGU+PTA/US5TZXJpZXNCYXJDb2xvcmVyLnVwQ29sb3IodGhpcy5fc3R1ZHkucHJvcGVydGllcygpKTpRLlNlcmllc0JhckNvbG9yZXIuZG93bkNvbG9yKHRoaXMuX3N0dWR5LnByb3BlcnRpZXMoKSk7cmV0dXJuIHQuYmFyQm9yZGVyQ29sb3I/P3QuYmFyQ29sb3J9fXZhciBuZT1zKDUzNjcxMCk7Y29uc3Qgb2U9eS5DaGVja01vYmlsZS5hbnkoKTtjbGFzcyBhZSBleHRlbmRzIG5lLlN0dWR5RGF0YVdpbmRvd1ZpZXd7X3VwZGF0ZUltcGwoKXt0aGlzLl9oZWFkZXI9dGhpcy5fc3R1ZHkudGl0bGUoVy5UaXRsZURpc3BsYXlUYXJnZXQuRGF0YVdpbmRvdyk7bGV0IGU7dGhpcy5fc2hvd0xhc3RQcmljZUFuZENoYW5nZU9ubHkoKT9lPXRoaXMuX3N0dWR5LmRhdGEoKS5sYXN0SW5kZXgoKTooZT10aGlzLl9tb2RlbC5jcm9zc2hhaXJTb3VyY2UoKS5hcHBsaWVkSW5kZXgoKSwobnVsbD09PWV8fGlzTmFOKGUpKSYmKGU9dGhpcy5fc3R1ZHkuZGF0YSgpLmxhc3RJbmRleCgpLCgwLApkLmlzRmVhdHVyZXNldEVuYWJsZWQpKCJ1c2VfbGFzdF92aXNpYmxlX2Jhcl92YWx1ZV9pbl9sZWdlbmQiKSYmKGU9dGhpcy5fbW9kZWwudGltZVNjYWxlKCkudmlzaWJsZUJhcnNTdHJpY3RSYW5nZSgpPy5sYXN0QmFyKCk/P05hTikpKTtjb25zdCB0PXRoaXMuX3ZhbHVlUHJvdmlkZXIuZ2V0VmFsdWVzKGUpO2ZvcihsZXQgZT0wO2U8dC5sZW5ndGg7KytlKXtjb25zdCBzPXRbZV0saT10aGlzLl9pdGVtc1tlXTtpLnNldFZhbHVlKHMudmFsdWUpLGkuc2V0VmlzaWJsZShzLnZpc2libGUpLGkuc2V0Q29sb3Iocy5jb2xvcil9fV9zaG93TGFzdFByaWNlQW5kQ2hhbmdlT25seSgpe3JldHVybiBvZSYmKG51bGw9PT10aGlzLl9tb2RlbC5jcm9zc2hhaXJTb3VyY2UoKS5wYW5lfHwoMCx6LmlzTGluZVRvb2xOYW1lKShVLnRvb2wudmFsdWUoKSl8fG51bGwhPT10aGlzLl9tb2RlbC5saW5lQmVpbmdFZGl0ZWQoKSl9X2NyZWF0ZVZhbHVlc1Byb3ZpZGVyKGUsdCl7cmV0dXJuIG5ldyByZShlLHQpfX12YXIgbGU9cyg5NjY0MDQpO2NsYXNzIHVlIGV4dGVuZHMgcmV7Y29uc3RydWN0b3IoZSx0KXtzdXBlcihlLHQpO2NvbnN0IHM9dC5wcm9wZXJ0aWVzKCkuY2hpbGRzKCkucGFuZVByb3BlcnRpZXMuY2hpbGRzKCkubGVnZW5kUHJvcGVydGllcy5jaGlsZHMoKTt0aGlzLl9zaG93QmFyQ2hhbmdlUHJvcD1zLnNob3dCYXJDaGFuZ2UsdGhpcy5fc2hvd0xhc3REYXlDaGFuZ2VQcm9wPXMuc2hvd0xhc3REYXlDaGFuZ2UsdGhpcy5fc2hvd1Nlcmllc09ITENQcm9wPXMuc2hvd1Nlcmllc09ITEN9Z2V0VmFsdWVzKGUpe2NvbnN0IHQ9c3VwZXIuZ2V0VmFsdWVzKGUpLHM9dGhpcy5fc3R1ZHkucHJvcGVydGllcygpLmNoaWxkcygpLGk9cy5zdHlsZS52YWx1ZSgpLHI9MTIhPT1pLG49dGhpcy5fc2hvd1Nlcmllc09ITEMoKSxvPXImJnRoaXMuX3Nob3dCYXJDaGFuZ2VQcm9wLnZhbHVlKCksYT1yJiZ0aGlzLl9zaG93TGFzdERheUNoYW5nZVByb3AudmFsdWUoKTtpZih0aGlzLl9zaG93TGFzdFByaWNlQW5kQ2hhbmdlT25seSgpKXJldHVybiB0WzddLnZpc2libGUmJj1vLHRbNl0udmlzaWJsZT0hMSx0O2NvbnN0IGw9KDAsUy5pc1ByaWNlU291cmNlU3R5bGUpKGkpLHU9MTIhPT1pJiYxNiE9PWkmJjIxIT09aSxjPTEyIT09aSxoPXRoaXMuX21vZGVsLm1haW5TZXJpZXMoKS5pbnRlcnZhbE9iaigpLnZhbHVlKCkuaXMxVGljaygpLGQ9biYmIWwsXz1uJiZsO2lmKHRbMF0udmlzaWJsZT1kJiZ1JiYhaCx0WzFdLnZpc2libGU9ZCYmIWgsdFsyXS52aXNpYmxlPWQmJiFoLHRbM10udmlzaWJsZT1kJiZjLHRbN10udmlzaWJsZSYmPWEsdFs2XS52aXNpYmxlJiY9byx0WzRdLnZpc2libGU9XywxNj09PWkpe2NvbnN0IGU9cy5obGNBcmVhU3R5bGUuY2hpbGRzKCk7dFsxXS5jb2xvcj1lLmhpZ2hMaW5lQ29sb3IudmFsdWUoKSx0WzJdLmNvbG9yPWUubG93TGluZUNvbG9yLnZhbHVlKCksdFszXS5jb2xvcj1lLmNsb3NlTGluZUNvbG9yLnZhbHVlKCl9cmV0dXJuIHR9X3Nob3dTZXJpZXNPSExDKCl7cmV0dXJuIHRoaXMuX3Nob3dTZXJpZXNPSExDUHJvcC52YWx1ZSgpfX12YXIgY2U9cyg3NDE2OTApLGhlPXMoOTQ3MzgyKTtjbGFzcyBkZSBleHRlbmRzIGFle2NvbnN0cnVjdG9yKGUsdCl7c3VwZXIoZSx0KSx0aGlzLl9hZGRpdGlvbmFsPW51bGwsdGhpcy5fc3R1ZHlPdmVybGF5PWUsdGhpcy5fYmFja2dyb3VuZENvbG9yU3Bhd249dC5iYWNrZ3JvdW5kVG9wQ29sb3IoKS5zcGF3bigpLHRoaXMuX2JhY2tncm91bmRDb2xvclNwYXduLnN1YnNjcmliZSh0aGlzLnVwZGF0ZS5iaW5kKHRoaXMsKDAsbGUuc291cmNlQ2hhbmdlRXZlbnQpKGUuaWQoKSkpKTtjb25zdCBzPXQucHJvcGVydGllcygpLmNoaWxkcygpLnBhbmVQcm9wZXJ0aWVzLmNoaWxkcygpLmxlZ2VuZFByb3BlcnRpZXMuY2hpbGRzKCk7dGhpcy5fdmlzaWJpbGl0eVByb3BlcnR5PSgwLGNlLmNvbWJpbmVQcm9wZXJ0eSkoKChlLHQpPT5lfHx0KSxzLnNob3dCYXJDaGFuZ2Uud2Vha1JlZmVyZW5jZSgpLHMuc2hvd1Nlcmllc09ITEMud2Vha1JlZmVyZW5jZSgpKSx0aGlzLl92aXNpYmlsaXR5UHJvcGVydHkuc3Vic2NyaWJlKHRoaXMsdGhpcy51cGRhdGUuYmluZCh0aGlzLCgwLGxlLnNvdXJjZUNoYW5nZUV2ZW50KShlLmlkKCkpKSl9YXJlVmFsdWVzVmlzaWJsZSgpe3JldHVybiB0aGlzLl92aXNpYmlsaXR5UHJvcGVydHkudmFsdWUoKX1hZGRpdGlvbmFsKCl7cmV0dXJuIHRoaXMuX2ludmFsaWRhdGVkJiYodGhpcy5fdXBkYXRlSW1wbCgpLHRoaXMuX2ludmFsaWRhdGVkPSExKSx0aGlzLl9hZGRpdGlvbmFsfWRlc3Ryb3koKXt0aGlzLl9iYWNrZ3JvdW5kQ29sb3JTcGF3bi5kZXN0cm95KCksdGhpcy5fdmlzaWJpbGl0eVByb3BlcnR5LmRlc3Ryb3koKX1fdXBkYXRlSW1wbCgpe3N1cGVyLl91cGRhdGVJbXBsKCk7e2NvbnN0IGU9KDAsaGUuZ2V0RGF0YVZlbmRvclN0cmluZykodGhpcy5fc3R1ZHlPdmVybGF5LnN5bWJvbEluZm8oKSk7dGhpcy5fYWRkaXRpb25hbD1lPyQudChudWxsLHZvaWQgMCxzKDM2NzUzOCkpKyIgIitlOm51bGx9fV9jcmVhdGVWYWx1ZXNQcm92aWRlcihlLHQpe3JldHVybiBuZXcgdWUoZSx0KX19dmFyIF9lPXMoMzc2NjQ1KSxwZT1zKDI3MzE4NykseWU9cygzMjA2NjUpLG1lPXMoNjMyNTM1KSx2ZT1zKDIyODI1MSksZmU9cyg3MzQ0NzkpLFNlPXMoNjU5MjkxKSxnZT1zKDY5Nzc5OSksYmU9cygzMTE2MTkpLHdlPXMoMTU3ODUzKSxDZT1zKDcwMTUwNiksUGU9cygyNzU4NDkpO2NsYXNzIHhlIGV4dGVuZHMgUGUuU3R1ZHlTdGF0dXNQcm92aWRlcntnZXRTcGxpdFRpdGxlKCl7cmV0dXJuIHRoaXMuX3NvdXJjZS5nZXRTcGxpdFRpdGxlKCExKX10ZXh0KCl7CnJldHVybiB0aGlzLl9zb3VyY2UuaXNBY3R1YWxJbnRlcnZhbCgpP3RoaXMuX3NvdXJjZS5pc0ZhaWxlZCgpP2Ake3RoaXMuX3NvdXJjZS50aXRsZShXLlRpdGxlRGlzcGxheVRhcmdldC5TdGF0dXNMaW5lLCEwLHZvaWQgMCwhMSwhMSl9OiAke3RoaXMuc291cmNlU3RhdHVzVGV4dCgpfWA6YCR7dGhpcy5fc291cmNlLnRpdGxlKFcuVGl0bGVEaXNwbGF5VGFyZ2V0LlN0YXR1c0xpbmUsITAsdm9pZCAwLCExLCExKX0gJHt0aGlzLnNvdXJjZVN0YXR1c1RleHQoKX1gOnRoaXMuX3NvdXJjZS50aXRsZShXLlRpdGxlRGlzcGxheVRhcmdldC5TdGF0dXNMaW5lLCEwLHZvaWQgMCwhMSwhMSl9fXZhciBEZT1zKDE0MTM1MCk7Y2xhc3MgSWUgZXh0ZW5kcyB1ZXtfc2hvd1Nlcmllc09ITEMoKXtyZXR1cm4hMH19dmFyIFRlPXMoNDg5MDMxKSxWZT1zKDIwNTYyMik7Y2xhc3MgUmV7Y29uc3RydWN0b3IoZSx0KXt0aGlzLl9zdHVkeT1lLHRoaXMuX21vZGVsPXQsdGhpcy5fdmFsdWVzUHJvdmlkZXI9bmV3IHJlKGUsdCwhMSl9Z2V0SXRlbXMoKXtjb25zdCBlPXRoaXMuX3ZhbHVlc1Byb3ZpZGVyLmdldEl0ZW1zKCksdD10aGlzLl9zdHVkeS5zdHlsZSgpO3JldHVybigwLFZlLmZpbGxTeW1ib2xTb3VyY2VWYWx1ZXNQcm92aWRlckl0ZW1zVmlzaWJpbGl0eSkoZSx0aGlzLl9zdHVkeS5wcmljZVNvdXJjZSgpLHQsdGhpcy5fbW9kZWwpLGVbN10udmlzaWJsZT0hMSxlfWdldFZhbHVlcyhlKXtjb25zdCB0PXRoaXMuX3N0dWR5LmRhdGEoKS5sYXN0SW5kZXgoKSxzPXRoaXMuX3N0dWR5LmRhdGEoKS5maXJzdEluZGV4KCk7cmV0dXJuIG51bGw9PT10fHxudWxsPT09c3x8ZT50fHxlPHM/bnVsbDp0aGlzLl92YWx1ZXNQcm92aWRlci5nZXRWYWx1ZXMoZSl9fXZhciBBZT1zKDcyMzUyNSk7KDAsZC5pc0ZlYXR1cmVzZXRFbmFibGVkKSgibGVnZW5kX2xhc3RfZGF5X2NoYW5nZSIpO2NvbnN0IExlPSh5LkNoZWNrTW9iaWxlLmFueSgpLCEwKSxFZT0oMCxkLmlzRmVhdHVyZXNldEVuYWJsZWQpKCJzdHVkeV9vdmVybGF5X2NvbXBhcmVfbGVnZW5kX29wdGlvbiIpLE1lPSgoMCxkLmlzRmVhdHVyZXNldEVuYWJsZWQpKCJzZWNvbmRhcnlfc2VyaWVzX2V4dGVuZF90aW1lX3NjYWxlIiksKDAsZC5pc0ZlYXR1cmVzZXRFbmFibGVkKSgiaGlkZV91bnJlc29sdmVkX3N5bWJvbHNfaW5fbGVnZW5kIikpLGtlPSEoMCxkLmlzRmVhdHVyZXNldEVuYWJsZWQpKCJoaWRlX3N0dWR5X292ZXJsYXlfbGVnZW5kX2l0ZW0iKSxCZT0oMCxhLmdldExvZ2dlcikoIkNoYXJ0LlN0dWR5T3ZlcmxheSIpO3ZhciBOZTtmdW5jdGlvbiBGZShlLHQpe3JldHVybiBudWxsPT1lW3RdfSFmdW5jdGlvbihlKXtlLlNuYXBTaG90U3ltYm9sSW5mb0tleT0iX19fc25hcHNob3QifShOZXx8KE5lPXt9KSk7Y2xhc3MgT2UgZXh0ZW5kcyBtLlN0dWR5e2NvbnN0cnVjdG9yKGUsdCxzLHIsbyxhKXtzdXBlcihlLGZ1bmN0aW9uKGUpe2UuaGFzQ2hpbGQoImN1cnJlbmN5SWQiKXx8ZS5hZGRDaGlsZCgiY3VycmVuY3lJZCIsbmV3IGIuUHJvcGVydHkobnVsbCkpLGUuaGFzQ2hpbGQoInVuaXRJZCIpfHxlLmFkZENoaWxkKCJ1bml0SWQiLG5ldyBiLlByb3BlcnR5KG51bGwpKSxlLmhhc0NoaWxkKCJtZXRyaWNJZCIpfHxlLmFkZENoaWxkKCJtZXRyaWNJZCIsbmV3IGIuUHJvcGVydHkobnVsbCkpLCgwLENlLmFsbENoYXJ0U3R5bGVzKSgpLmluY2x1ZGVzKGUuY2hpbGRzKCkuc3R5bGUudmFsdWUoKSl8fGUuY2hpbGRzKCkuc3R5bGUuc2V0VmFsdWVTaWxlbnRseSgyKTtjb25zdCB0PWUuY2hpbGRzKCk7aWYodC5saW5lU3R5bGUuaGFzQ2hpbGQoInN0eWxlVHlwZSIpKXtjb25zdCBlPXQubGluZVN0eWxlLmNoaWxkcygpLHM9ZS5zdHlsZVR5cGUudmFsdWUoKTtsZXQgaSxyOzA9PT1zJiYocj0xNCxpPXQubGluZVdpdGhNYXJrZXJzU3R5bGUuY2hpbGRzKCkpLDE9PT1zJiYocj0xNSxpPXQuc3RlcGxpbmVTdHlsZS5jaGlsZHMoKSksaSYmKGkuY29sb3Iuc2V0VmFsdWVTaWxlbnRseShlLmNvbG9yLnZhbHVlKCkpLGkubGluZXN0eWxlLnNldFZhbHVlU2lsZW50bHkoZS5saW5lc3R5bGUudmFsdWUoKSksaS5saW5ld2lkdGguc2V0VmFsdWVTaWxlbnRseShlLmxpbmV3aWR0aC52YWx1ZSgpKSxpLnByaWNlU291cmNlLnNldFZhbHVlU2lsZW50bHkoZS5wcmljZVNvdXJjZS52YWx1ZSgpKSksdm9pZCAwIT09ciYmMj09PXQuc3R5bGUudmFsdWUoKSYmdC5zdHlsZS5zZXRWYWx1ZVNpbGVudGx5KHIpLHQubGluZVN0eWxlLnJlbW92ZVByb3BlcnR5KCJzdHlsZVR5cGUiKX1yZXR1cm4gZS5hZGRFeGNsdWRlZEtleSgiY3VycmVuY3lJZCIsMSksZS5hZGRFeGNsdWRlZEtleSgidW5pdElkIiwxKSxlLmFkZEV4Y2x1ZGVkS2V5KCJtZXRyaWNJZCIsMSksZX0odCkscyxyLG8sYSksdGhpcy5fc3ltYm9sUmVzb2x2aW5nQWN0aXZlPW5ldyBuLldhdGNoZWRWYWx1ZSghMSksdGhpcy5fc3ltYm9sSGliZXJuYXRlZD1uZXcgbi5XYXRjaGVkVmFsdWUoITEpLHRoaXMuX3N0eWxlVG9SZWNvdmVyPW51bGwsdGhpcy5fcmVhbGlnblRvb2xzTGFzdFBhcmFtcz1udWxsLHRoaXMuX2Jhc2U9MTAwLHRoaXMuX3ByZWNvbXB1dGVkQmFyU3R5bGVzPW5ldyBXZWFrTWFwLHRoaXMuX2xhc3RSZXNvbHZlZFN5bWJvbFNvdXJjZT0iIix0aGlzLl9kYXRhPW5ldyBjLlBsb3RMaXN0KCgwLHUuc2VyaWVzUGxvdEZ1bmN0aW9uTWFwKSgpLEZlKSx0aGlzLl9xdW90ZXNQcm92aWRlcj1uZXcgQy5RdW90ZXNQcm92aWRlcih2b2lkIDAsZS5jb2xsYXBzZWQoKS5zcGF3bk93bmVyc2hpcCgpKSxMZSYmdGhpcy5fcXVvdGVzUHJvdmlkZXIucXVvdGVzVXBkYXRlKCkuc3Vic2NyaWJlKHRoaXMsdGhpcy5fb25RdW90ZXNVcGRhdGUpO2NvbnN0IGg9dGhpcy5wcm9wZXJ0aWVzKCkuY2hpbGRzKCk7aC5jdXJyZW5jeUlkLnN1YnNjcmliZSh0aGlzLHRoaXMuX29uQ3VycmVuY3lDaGFuZ2VkKSxoLnVuaXRJZC5zdWJzY3JpYmUodGhpcyx0aGlzLl9vblVuaXRDaGFuZ2VkKSxoLm1ldHJpY0lkLnN1YnNjcmliZSh0aGlzLHRoaXMuX29uTWV0cmljQ2hhbmdlZCksCmguYWxsb3dFeHRlbmRUaW1lU2NhbGUuc3Vic2NyaWJlKHRoaXMsdGhpcy5fb25BbGxvd0V4dGVuZFRpbWVTY2FsZUNoYW5nZWQpLHRoaXMuX29uQWxsb3dFeHRlbmRUaW1lU2NhbGVDaGFuZ2VkKCksKDAsaS5lbnN1cmVEZWZpbmVkKSh0aGlzLl9tb2RlbC5tYWluU2VyaWVzKCkucHJvcGVydGllcygpLmNoaWxkcygpLmRpdmlkZW5kc0FkanVzdG1lbnQpLnN1YnNjcmliZSh0aGlzLCgoKT0+e3RoaXMuX3RyeUNoYW5nZUlucHV0cygpfSkpLGguc3R5bGUuc3Vic2NyaWJlKHRoaXMsdGhpcy5fb25DaGFydFN0eWxlQ2hhbmdlZCksaC5saW5lU3R5bGUuY2hpbGRzKCkucHJpY2VTb3VyY2Uuc3Vic2NyaWJlKHRoaXMsdGhpcy5fdXBkYXRlQmFyRnVuY3Rpb24pLGgubGluZVdpdGhNYXJrZXJzU3R5bGUuY2hpbGRzKCkucHJpY2VTb3VyY2Uuc3Vic2NyaWJlKHRoaXMsdGhpcy5fdXBkYXRlQmFyRnVuY3Rpb24pLGguc3RlcGxpbmVTdHlsZS5jaGlsZHMoKS5wcmljZVNvdXJjZS5zdWJzY3JpYmUodGhpcyx0aGlzLl91cGRhdGVCYXJGdW5jdGlvbiksaC5hcmVhU3R5bGUuY2hpbGRzKCkucHJpY2VTb3VyY2Uuc3Vic2NyaWJlKHRoaXMsdGhpcy5fdXBkYXRlQmFyRnVuY3Rpb24pLGguYmFzZWxpbmVTdHlsZS5jaGlsZHMoKS5wcmljZVNvdXJjZS5zdWJzY3JpYmUodGhpcyx0aGlzLl91cGRhdGVCYXJGdW5jdGlvbiksaC5jb2x1bW5TdHlsZS5jaGlsZHMoKS5wcmljZVNvdXJjZS5zdWJzY3JpYmUodGhpcyx0aGlzLl91cGRhdGVCYXJGdW5jdGlvbiksdGhpcy5fdXBkYXRlQmFyRnVuY3Rpb24oKSxoLm1pblRpY2suc3Vic2NyaWJlKHRoaXMsdGhpcy5fb25NaW5UaWNrQ2hhbmdlZCksdGhpcy5fZm9ybWF0dGVyPW51bGwsdGhpcy5fZGVmYXVsdEZvcm1hdHRlcj1udWxsLGUubWFpblNlcmllcygpLm9uSW50ZXJ2YWxDaGFuZ2VkKCkuc3Vic2NyaWJlKHRoaXMsKCgpPT5lLnJlYWxpZ25MaW5lVG9vbHModGhpcykpKSxlLm1haW5TZXJpZXMoKS5vbkludGVydmFsQ2hhbmdlZCgpLnN1YnNjcmliZSh0aGlzLCgoKT0+dGhpcy5fY2hlY2tTdHlsZSgpKSksdGhpcy5fY29uZmxhdGVkQ2h1bmtzQnVpbGRlcj1uZXcgbC5Db25mbGF0ZWRDaHVua3NCdWlsZGVyKHRoaXMuX2RhdGEsKGU9PnUuYmFyRnVuY3Rpb25zW2VdKSk7Y29uc3QgZD0oKT0+dGhpcy5fY3VycmVuY3lVbml0U291cmNlU3ltYm9sSW5mby5zZXRWYWx1ZSh0aGlzLnN5bWJvbEluZm8oKSk7dGhpcy5zeW1ib2xSZXNvbHZlZCgpLnN1YnNjcmliZSh0aGlzLGQpLHRoaXMub25TdGF0dXNDaGFuZ2VkKCkuc3Vic2NyaWJlKHRoaXMsZCksZCgpLHRoaXMuX2FsaWFzU3ltYm9sSW5mb1dWPSgwLHAuY3JlYXRlQWxpYXNTeW1ib2xJbmZvV1YpKHRoaXMuX2N1cnJlbmN5VW5pdFNvdXJjZVN5bWJvbEluZm8ud2Vha1JlZmVyZW5jZSgpLHRoaXMuX21vZGVsLnN5bWJvbEFsaWFzU2VydmljZSgpKSwodGhpcy5fYWxpYXNTeW1ib2xJbmZvV1Z8fHRoaXMuX2N1cnJlbmN5VW5pdFNvdXJjZVN5bWJvbEluZm8pLnN1YnNjcmliZSgoKCk9PnRoaXMuX3JlY3JlYXRlUHJpY2VGb3JtYXR0aW5nRGVwZW5kZW5jaWVzKCkpKSx0aGlzLl9vdmVybGF5VmFsdWVzUHJvdmlkZXI9bmV3IHJlKHRoaXMsZSksdGhpcy5fb3ZlcmxheUxlZ2VuZFZhbHVlc1Byb3ZpZGVyPW5ldyB1ZSh0aGlzLGUpLHRoaXMuX292ZXJsYXlUYWJsZVZpZXdWYWx1ZXNQcm92aWRlcj1uZXcgUmUodGhpcyxlKSx0aGlzLl9vdmVybGF5Q2hhcnRGbG9hdGluZ1Rvb2x0aXBWYWx1ZXNQcm92aWRlcj1uZXcgSWUodGhpcyxlKSx0aGlzLl9pc0N1cnJlbmN5T3JpZ2luLnNldFZhbHVlKCEwKSx0aGlzLl9pc1VuaXRPcmlnaW4uc2V0VmFsdWUoITApfWRlc3Ryb3koKXsoMCxpLmVuc3VyZURlZmluZWQpKHRoaXMuX21vZGVsLm1haW5TZXJpZXMoKS5wcm9wZXJ0aWVzKCkuY2hpbGRzKCkuZGl2aWRlbmRzQWRqdXN0bWVudCkudW5zdWJzY3JpYmVBbGwodGhpcyksdGhpcy5fbW9kZWwubWFpblNlcmllcygpLm9uSW50ZXJ2YWxDaGFuZ2VkKCkudW5zdWJzY3JpYmVBbGwodGhpcyksdGhpcy5fcXVvdGVzUHJvdmlkZXIuZGVzdHJveSgpLHRoaXMuX2FsaWFzU3ltYm9sSW5mb1dWPy5yZWxlYXNlKCksc3VwZXIuZGVzdHJveSgpfWJhc2UoKXtyZXR1cm4gdGhpcy5fYmFzZX1wcmVjb21wdXRlZEJhclN0eWxlKGUpe3JldHVybiB0aGlzLl9wcmVjb21wdXRlZEJhclN0eWxlcy5nZXQoZSl9c2V0UHJlY29tcHV0ZWRCYXJTdHlsZShlLHQpe3RoaXMuX3ByZWNvbXB1dGVkQmFyU3R5bGVzLnNldChlLHQpfXByb3BlcnRpZXMoKXtyZXR1cm4gdGhpcy5fcHJvcGVydGllc31iYXJDb2xvcmVyKCl7cmV0dXJuIG5ldyBRLlNlcmllc0JhckNvbG9yZXIoe2RhdGE6KCk9PnRoaXMuZGF0YSgpLGJhcnM6KCk9PnRoaXMuZGF0YSgpLG5zQmFyczooKT0+bmV3IGMuUGxvdExpc3QscHJpY2VTY2FsZTooKT0+KDAsaS5lbnN1cmVOb3ROdWxsKSh0aGlzLnByaWNlU2NhbGUoKSkscHJvcGVydGllczooKT0+dGhpcy5wcm9wZXJ0aWVzKCksZmlyc3RWYWx1ZTooKT0+dGhpcy5maXJzdFZhbHVlKCksYmFyRnVuY3Rpb246KCk9PnRoaXMuYmFyRnVuY3Rpb24oKSxsaW5lQ29sb3JBdFlQZXJjZW50RnJvbVRvcDplPT50aGlzLmxpbmVDb2xvckF0WVBlcmNlbnRGcm9tVG9wKGUpfSl9c3ltYm9sUGFyYW1zKCl7cmV0dXJuKDAsUC5zeW1ib2xQYXJhbXMpKHRoaXMpfWNvbXBhcmVTeW1ib2xQYXJhbXMoZSl7cmV0dXJuKDAsUC5jb21wYXJlU3ltYm9sUGFyYW1zKSh0aGlzLGUsdGhpcy5fbW9kZWwudW5pdENvbnZlcnNpb25FbmFibGVkKCksdGhpcy5fbW9kZWwubWV0cmljQ29udmVyc2lvbkVuYWJsZWQoKSl9YXN5bmMgc2V0U3ltYm9sUGFyYW1zKGUpe3RoaXMuX3NldFN5bWJvbFBhcmFtc0ludGVybmFsKGUpfXN5bWJvbCgpe3JldHVybiB0aGlzLnByb3BlcnRpZXMoKS5jaGlsZHMoKS5pbnB1dHMuY2hpbGRzKCkuc3ltYm9sLnZhbHVlKCl9c3ltYm9sT3JBbGlhcygpe2NvbnN0IGU9dGhpcy5zeW1ib2woKSx0PXRoaXMuX21vZGVsLnN5bWJvbEFsaWFzU2VydmljZSgpPy5nZXRBbGlhc0J5UHJvTmFtZShlKTtyZXR1cm4gdD8uYWxpYXNOYW1lPz9lfXN5bWJvbENoYW5nZWQoKXsKcmV0dXJuIHRoaXMucHJvcGVydGllcygpLmNoaWxkcygpLmlucHV0cy5jaGlsZHMoKS5zeW1ib2x9b25TeW1ib2xJbnRlcnZhbENoYW5nZWQoKXtyZXR1cm4gdGhpcy5zeW1ib2xDaGFuZ2VkKCl9c2V0U3ltYm9sKGUpe3RoaXMuc2V0U3ltYm9sUGFyYW1zKHtzeW1ib2w6ZX0pfXN5bWJvbEluZm8oKXtpZighdGhpcy5fcmVzb2x2ZWRTeW1ib2xzKXJldHVybiBudWxsO2NvbnN0IGU9dGhpcy5fcHJvcGVydGllcy5jaGlsZHMoKS5pbnB1dHMuY2hpbGRzKCkuc3ltYm9sLnZhbHVlKCk7aWYoIWUpcmV0dXJuIG51bGw7bGV0IHQ7cmV0dXJuIHQ9dGhpcy5fbW9kZWwuaXNTbmFwc2hvdCgpP3RoaXMuX3Jlc29sdmVkU3ltYm9scy5fX19zbmFwc2hvdHx8bnVsbDp0aGlzLl9yZXNvbHZlZFN5bWJvbHNbdGhpcy5fZ2V0U3ltYm9sRm9yUmVzb2x2ZShlKV18fG51bGwsdGhpcy5fbW9kZWwuaXNTbmFwc2hvdCgpJiZudWxsPT09dCYmKHQ9KDAsXy5nZXRPYnNvbGV0ZUlkZWFTeW1ib2xJbmZvKSh0aGlzLl9yZXNvbHZlZFN5bWJvbHMsZSx0aGlzLmN1cnJlbmN5KCkpLG51bGwhPT10JiYodGhpcy5fcmVzb2x2ZWRTeW1ib2xzLl9fX3NuYXBzaG90PXQpKSx0fXN5bWJvbEluZm9XVigpe3JldHVybiB0aGlzLl9jdXJyZW5jeVVuaXRTb3VyY2VTeW1ib2xJbmZvLnJlYWRvbmx5KCl9YWxpYXNTeW1ib2xJbmZvKCl7cmV0dXJuKHRoaXMuX2FsaWFzU3ltYm9sSW5mb1dWPz90aGlzLl9jdXJyZW5jeVVuaXRTb3VyY2VTeW1ib2xJbmZvPz9uZXcgbi5XYXRjaGVkVmFsdWUobnVsbCkpLnZhbHVlKCl9c3VwcG9ydHNDb25mbGF0ZWRDaHVua3MoKXtyZXR1cm4hMH1jb25mbGF0ZWRDaHVua3MoZSx0KXtyZXR1cm4gdGhpcy5fY29uZmxhdGVkQ2h1bmtzQnVpbGRlci5jb25mbGF0ZWRDaHVua3MoZSx0KX1zeW1ib2xSZXNvbHZlZCgpe3JldHVybiB0aGlzLnN5bWJvbHNSZXNvbHZlZCgpfXN5bWJvbFJlc29sdmluZ0FjdGl2ZSgpe3JldHVybiB0aGlzLl9zeW1ib2xSZXNvbHZpbmdBY3RpdmV9c3ltYm9sSGliZXJuYXRlZCgpe3JldHVybiB0aGlzLl9zeW1ib2xIaWJlcm5hdGVkfWlzVmlzaWJsZSgpe2NvbnN0IGU9c3VwZXIuaXNWaXNpYmxlKCk7cmV0dXJuIHRoaXMuX3N5bWJvbEhpYmVybmF0ZWQuc2V0VmFsdWUoIWUpLGV9c3ltYm9sU2FtZUFzQ3VycmVudChlKXtyZXR1cm4oMCxQLnN5bWJvbFNhbWVBc0N1cnJlbnQpKGUsdGhpcy5zeW1ib2xJbmZvKCkpfXN5bWJvbFNhbWVBc1Jlc29sdmVkKGUpe3JldHVybigwLHguc3ltYm9sU2FtZUFzUmVzb2x2ZWQpKGUsdGhpcy5fbGFzdFJlc29sdmVkU3ltYm9sU291cmNlLHRoaXMuc3ltYm9sKCkpfXByaWNlU291cmNlKCl7Y29uc3QgZT10aGlzLnByb3BlcnRpZXMoKS5jaGlsZHMoKTtzd2l0Y2goZS5zdHlsZS52YWx1ZSgpKXtjYXNlIDI6cmV0dXJuIGUubGluZVN0eWxlLmNoaWxkcygpLnByaWNlU291cmNlLnZhbHVlKCk7Y2FzZSAxNDpyZXR1cm4gZS5saW5lV2l0aE1hcmtlcnNTdHlsZS5jaGlsZHMoKS5wcmljZVNvdXJjZS52YWx1ZSgpO2Nhc2UgMTU6cmV0dXJuIGUuc3RlcGxpbmVTdHlsZS5jaGlsZHMoKS5wcmljZVNvdXJjZS52YWx1ZSgpO2Nhc2UgMzpyZXR1cm4gZS5hcmVhU3R5bGUuY2hpbGRzKCkucHJpY2VTb3VyY2UudmFsdWUoKTtjYXNlIDEwOnJldHVybiBlLmJhc2VsaW5lU3R5bGUuY2hpbGRzKCkucHJpY2VTb3VyY2UudmFsdWUoKTtjYXNlIDEzOnJldHVybiBlLmNvbHVtblN0eWxlLmNoaWxkcygpLnByaWNlU291cmNlLnZhbHVlKCl9cmV0dXJuIG51bGx9YmFyRnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYmFyRnVuY3Rpb259cXVvdGVzUHJvdmlkZXIoKXtyZXR1cm4gdGhpcy5fcXVvdGVzUHJvdmlkZXJ9cXVvdGVzKCl7cmV0dXJuIHRoaXMuX3F1b3Rlc1Byb3ZpZGVyLnF1b3RlcygpLnZhbHVlKCl9Y3VycmVuY3koKXtyZXR1cm4gdGhpcy5wcm9wZXJ0aWVzKCkuY2hpbGRzKCkuY3VycmVuY3lJZC52YWx1ZSgpfHxudWxsfXNldEN1cnJlbmN5KGUpe3RoaXMuc2V0U3ltYm9sUGFyYW1zKHtjdXJyZW5jeTplfSl9dW5pdCgpe3JldHVybiB0aGlzLnByb3BlcnRpZXMoKS5jaGlsZHMoKS51bml0SWQudmFsdWUoKXx8bnVsbH1zZXRVbml0KGUpe3RoaXMuc2V0U3ltYm9sUGFyYW1zKHt1bml0OmV9KX1tZXRyaWMoKXtyZXR1cm4gdGhpcy5wcm9wZXJ0aWVzKCkuY2hpbGRzKCkubWV0cmljSWQudmFsdWUoKXx8bnVsbH1zZXRNZXRyaWMoZSl7dGhpcy5zZXRTeW1ib2xQYXJhbXMoe21ldHJpYzplfSl9c3R5bGUoKXtyZXR1cm4gdGhpcy5wcm9wZXJ0aWVzKCkuY2hpbGRzKCkuc3R5bGUudmFsdWUoKX1zZXRTdHlsZShlKXt0aGlzLnNldFN5bWJvbFBhcmFtcyh7c3R5bGU6ZX0pfWludGVydmFsKCl7cmV0dXJuIHRoaXMuX21vZGVsLm1haW5TZXJpZXMoKS5pbnRlcnZhbCgpfXNldEludGVydmFsKGUpe312YWx1ZUF0KGUsdCl7cmV0dXJuIHRoaXMuZGF0YSgpLnNlYXJjaChlKT8udmFsdWVbdF0/P251bGx9YmFyc1Byb3ZpZGVyKCl7cmV0dXJuIHRoaXN9c3RhdGUoZSx0KXtjb25zdCBzPXN1cGVyLnN0YXRlKGUsdCk7dGhpcy5fbW9kZWwudW5pdENvbnZlcnNpb25FbmFibGVkKCl8fGRlbGV0ZSBzLnN0YXRlLnVuaXRJZDtjb25zdCByPXRoaXMuc3ltYm9sKCk7cmV0dXJuIHMuc3RhdGUuaW5wdXRzLnN5bWJvbD0oMCxTLnN5bWJvbFRvU2F2ZUluU3RhdGUpKHRoaXMuc3ltYm9sSW5mbygpPz90aGlzLl9tb2RlbC5jaGFydEFwaSgpLmxhc3RTeW1ib2xSZXNvbHZlSW5mbyhyKSxyKSxlJiYoKDAsaS5lbnN1cmVEZWZpbmVkKShzLmRhdGEpLnN5bWJvbHM9e19fX3NuYXBzaG90OnRoaXMuc3ltYm9sSW5mbygpfHx2b2lkIDB9KSxzfXN5bWJvbFRpdGxlKGUsdCxzKXtyZXR1cm4gdGhpcy50aXRsZShlLCEwLHt9LCExLHQpfXRpdGxlKGUsdCxzLGkscil7Y29uc3Qgbj10aGlzLl90aXRsZUluUGFydHMoZSx0LHMsaSxyKTtyZXR1cm5bblswXSwuLi5uWzFdPz9bXV0uam9pbihgICR7Uy5zeW1ib2xUaXRsZVNlcGFyYXRvcn0gYCl9dGl0bGVJblBhcnRzKGUsdCxzLGkscil7cmV0dXJuW3RoaXMudGl0bGUoZSx0LHMsaSxyKV19Zmlyc3RWYWx1ZSgpewpjb25zdCBlPXRoaXMuX21vZGVsLnRpbWVTY2FsZSgpLnZpc2libGVCYXJzU3RyaWN0UmFuZ2UoKTtpZihudWxsPT09ZSlyZXR1cm4gbnVsbDtjb25zdCB0PWUuZmlyc3RCYXIoKTtpZigwPT09dGhpcy5kYXRhKCkuc2l6ZSgpKXJldHVybiB0aGlzLl9vd25GaXJzdFZhbHVlO2NvbnN0IHM9dGhpcy5kYXRhKCkuc2VhcmNoKHQsaC5QbG90Um93U2VhcmNoTW9kZS5OZWFyZXN0UmlnaHQsMSk7cmV0dXJuIHRoaXMuX293bkZpcnN0VmFsdWU9bnVsbCE9PXM/dGhpcy5fYmFyRnVuY3Rpb24ocy52YWx1ZSwwKTpudWxsLHRoaXMuX293bkZpcnN0VmFsdWV9bGluZUNvbG9yQXRZUGVyY2VudEZyb21Ub3AoZSl7c3dpdGNoKHRoaXMuc3R5bGUoKSl7Y2FzZSAyOnJldHVybiB0aGlzLnByb3BlcnRpZXMoKS5jaGlsZHMoKS5saW5lU3R5bGUuY2hpbGRzKCkuY29sb3IudmFsdWUoKTtjYXNlIDE0OnJldHVybiB0aGlzLnByb3BlcnRpZXMoKS5jaGlsZHMoKS5saW5lV2l0aE1hcmtlcnNTdHlsZS5jaGlsZHMoKS5jb2xvci52YWx1ZSgpO2Nhc2UgMTU6cmV0dXJuIHRoaXMucHJvcGVydGllcygpLmNoaWxkcygpLnN0ZXBsaW5lU3R5bGUuY2hpbGRzKCkuY29sb3IudmFsdWUoKX1yZXR1cm4gbnVsbH1sYXN0VmFsdWVEYXRhKGUsdCxzKXtjb25zdCBpPXtub0RhdGE6ITB9LG49dGhpcy5wcmljZVNjYWxlKCk7aWYodGhpcy5fbW9kZWwudGltZVNjYWxlKCkuaXNFbXB0eSgpfHxudWxsPT09bnx8bi5pc0VtcHR5KCl8fHRoaXMuZGF0YSgpLmlzRW1wdHkoKSlyZXR1cm4gaTtjb25zdCBvPXRoaXMuX21vZGVsLnRpbWVTY2FsZSgpLnZpc2libGVCYXJzU3RyaWN0UmFuZ2UoKTtpZihudWxsPT09bylyZXR1cm4gaTtjb25zdCBhPXRoaXMucHJvcGVydGllcygpLmNoaWxkcygpO2lmKCFhLnZpc2libGUudmFsdWUoKSlyZXR1cm4gaTtjb25zdCBsPXRoaXMubmVhcmVzdEluZGV4KG8ubGFzdEJhcigpLGguUGxvdFJvd1NlYXJjaE1vZGUuTmVhcmVzdExlZnQsMSk7aWYodm9pZCAwPT09bClyZXR1cm4gaTtjb25zdCB1PXRoaXMuZmlyc3RWYWx1ZSgpO2lmKG51bGw9PT11KXJldHVybiBpO2NvbnN0IGM9dGhpcy5fbGFzdE5vbkVtcHR5UGxvdFJvdyg0KSxkPW51bGwhPT1jJiZvLmNvbnRhaW5zKGMuaW5kZXgpLF89bnVsbCE9PWM/Yy52YWx1ZTpudWxsLHA9dHx8ZD9fOnRoaXMuZGF0YSgpLnZhbHVlQXQobCk7aWYobnVsbD09PXApcmV0dXJuIGk7Y29uc3QgeT10aGlzLl9iYXJGdW5jdGlvbihwLDIpO2lmKCEoMCxyLmlzTnVtYmVyKSh5KSlyZXR1cm4gaTtjb25zdCBtPW4ucHJpY2VUb0Nvb3JkaW5hdGUoeSx1KTtsZXQgdjtzd2l0Y2goYS5zdHlsZS52YWx1ZSgpKXtjYXNlIDA6dj1wWzFdPD1wWzRdP2EuYmFyU3R5bGUuY2hpbGRzKCkudXBDb2xvci52YWx1ZSgpOmEuYmFyU3R5bGUuY2hpbGRzKCkuZG93bkNvbG9yLnZhbHVlKCk7YnJlYWs7Y2FzZSAxOnY9cFsxXTw9cFs0XT9hLmNhbmRsZVN0eWxlLmNoaWxkcygpLnVwQ29sb3IudmFsdWUoKTphLmNhbmRsZVN0eWxlLmNoaWxkcygpLmRvd25Db2xvci52YWx1ZSgpO2JyZWFrO2Nhc2UgOTp2PXBbMV08PXBbNF0/YS5ob2xsb3dDYW5kbGVTdHlsZS5jaGlsZHMoKS51cENvbG9yLnZhbHVlKCk6YS5ob2xsb3dDYW5kbGVTdHlsZS5jaGlsZHMoKS5kb3duQ29sb3IudmFsdWUoKTticmVhaztjYXNlIDEzOnY9cFsxXTw9cFs0XT9hLmNvbHVtblN0eWxlLmNoaWxkcygpLnVwQ29sb3IudmFsdWUoKTphLmNvbHVtblN0eWxlLmNoaWxkcygpLmRvd25Db2xvci52YWx1ZSgpO2JyZWFrO2Nhc2UgMjp2PWEubGluZVN0eWxlLmNoaWxkcygpLmNvbG9yLnZhbHVlKCk7YnJlYWs7Y2FzZSAxNDp2PWEubGluZVdpdGhNYXJrZXJzU3R5bGUuY2hpbGRzKCkuY29sb3IudmFsdWUoKTticmVhaztjYXNlIDE1OnY9YS5zdGVwbGluZVN0eWxlLmNoaWxkcygpLmNvbG9yLnZhbHVlKCk7YnJlYWs7Y2FzZSAzOnY9YS5hcmVhU3R5bGUuY2hpbGRzKCkubGluZWNvbG9yLnZhbHVlKCk7YnJlYWs7Y2FzZSAxNjp2PWEuaGxjQXJlYVN0eWxlLmNoaWxkcygpLmNsb3NlTGluZUNvbG9yLnZhbHVlKCk7YnJlYWs7Y2FzZSAxMDp7Y29uc3QgZT1hLmJhc2VsaW5lU3R5bGUuY2hpbGRzKCk7dj1tPE1hdGgucm91bmQobi5oZWlnaHQoKSooTWF0aC5hYnMoMTAwLWUuYmFzZUxldmVsUGVyY2VudGFnZS52YWx1ZSgpKS8xMDApKT9lLnRvcExpbmVDb2xvci52YWx1ZSgpOmUuYm90dG9tTGluZUNvbG9yLnZhbHVlKCk7YnJlYWt9Y2FzZSAxMjp2PWEuaGlsb1N0eWxlLmNoaWxkcygpLmNvbG9yLnZhbHVlKCk7YnJlYWs7Y2FzZSAyMTp2PWEuaGxjQmFyc1N0eWxlLmNoaWxkcygpLmNvbG9yLnZhbHVlKCk7YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoIk5vdCBzdXBwb3J0ZWQgb3ZlcmxheSBzdHlsZSIpfWNvbnN0IGY9ey4uLm4uZ2V0Rm9ybWF0dGVkVmFsdWVzKHksdSwhMCksbm9EYXRhOiExLGNvb3JkaW5hdGU6bSxjb2xvcjp2fTtyZXR1cm4gcyYmKGYucHJpY2U9eSksZn1wcmljZVJhbmdlKGUpe2NvbnN0e3N0YXJ0VGltZVBvaW50OnQsZW5kVGltZVBvaW50OnN9PWU7aWYoZS5mb3JjZU92ZXJsYXlPbmx5KXJldHVybiBudWxsO2lmKCEoMCxyLmlzSW50ZWdlcikodCkpcmV0dXJuIEJlLmxvZ0RlYnVnKCJwcmljZVJhbmdlOiBpbmNvcnJlY3Qgc3RhcnRCYXIiKSxudWxsO2lmKCEoMCxyLmlzSW50ZWdlcikocykpcmV0dXJuIEJlLmxvZ0RlYnVnKCJwcmljZVJhbmdlOiBpbmNvcnJlY3QgZW5kQmFyIiksbnVsbDtpZigwPT09dGhpcy5kYXRhKCkuc2l6ZSgpKXJldHVybiBudWxsO2NvbnN0IGk9dGhpcy5wcmljZVNvdXJjZSgpO2xldCBuO249bnVsbCE9PWk/dGhpcy5kYXRhKCkubWluTWF4T25SYW5nZUNhY2hlZCh0LHMsW3tuYW1lOmksb2Zmc2V0OjB9XSk6dGhpcy5kYXRhKCkubWluTWF4T25SYW5nZUNhY2hlZCh0LHMsW3tuYW1lOiJsb3ciLG9mZnNldDowfSx7bmFtZToiaGlnaCIsb2Zmc2V0OjB9XSk7Y29uc3Qgbz1udWxsIT09bj9uZXcgRC5QcmljZVJhbmdlKG4ubWluLG4ubWF4KTpudWxsO3JldHVybiB0aGlzLl9wb3N0UHJvY2Vzc1ByaWNlUmFuZ2UobyxlKX1iYXJzKCl7cmV0dXJuIHRoaXMuZGF0YSgpfW9wZW4oZSl7CnJldHVybigwLGkuZW5zdXJlTm90TnVsbCkodGhpcy5iYXJzKCkudmFsdWVBdChlKSlbMV19aGlnaChlKXtyZXR1cm4oMCxpLmVuc3VyZU5vdE51bGwpKHRoaXMuYmFycygpLnZhbHVlQXQoZSkpWzJdfWxvdyhlKXtyZXR1cm4oMCxpLmVuc3VyZU5vdE51bGwpKHRoaXMuYmFycygpLnZhbHVlQXQoZSkpWzNdfWNsb3NlKGUpe3JldHVybigwLGkuZW5zdXJlTm90TnVsbCkodGhpcy5iYXJzKCkudmFsdWVBdChlKSlbNF19aGwyKGUpe3JldHVybih0aGlzLmhpZ2goZSkrdGhpcy5sb3coZSkpLzJ9aGxjMyhlKXtyZXR1cm4odGhpcy5oaWdoKGUpK3RoaXMubG93KGUpK3RoaXMuY2xvc2UoZSkpLzN9b2hsYzQoZSl7cmV0dXJuKHRoaXMub3BlbihlKSt0aGlzLmhpZ2goZSkrdGhpcy5sb3coZSkrdGhpcy5jbG9zZShlKSkvNH1jYW5CZUhpZGRlbkJ5R2xvYmFsRmxhZygpe3JldHVybiExfWFzeW5jIHN0YXJ0KGUsdCl7dGhpcy5fZm9ybWF0dGVyPW51bGwsdGhpcy5fZGVmYXVsdEZvcm1hdHRlcj1udWxsO2NvbnN0IHM9c3VwZXIuc3RhcnQoZSx0KTtyZXR1cm4gdGhpcy5wcmljZVNjYWxlKCk/LnVwZGF0ZUZvcm1hdHRlcigpLExlJiZ0aGlzLl9zZXRRdW90ZXNTeW1ib2woKDAsdy5lbmNvZGVFeHRlbmRlZFN5bWJvbE9yR2V0U2ltcGxlU3ltYm9sU3RyaW5nKSh0aGlzLl9nZXRTeW1ib2xPYmplY3QodGhpcy5zeW1ib2woKSkpKSxzfXN0b3AoZSl7c3VwZXIuc3RvcChlKSx0aGlzLl9xdW90ZXNQcm92aWRlci5zZXRRdW90ZXNTZXNzaW9uU3ltYm9sKG51bGwpfWZvcm1hdHRlcigpe3JldHVybiB0aGlzLl9mb3JtYXR0ZXJ8fHRoaXMuX3JlY3JlYXRlRm9ybWF0dGVyKCksKDAsaS5lbnN1cmVOb3ROdWxsKSh0aGlzLl9mb3JtYXR0ZXIpfXN0YXR1c1ZpZXcoKXtyZXR1cm4ga2U/c3VwZXIuc3RhdHVzVmlldygpOm51bGx9bW92ZUl0ZW0oZSx0LHMpe2lmKDEwPT09dGhpcy5zdHlsZSgpJiYwPT09dCl7Y29uc3QgdD0oMCxpLmVuc3VyZU5vdE51bGwpKHRoaXMucHJpY2VTY2FsZSgpKSxzPXRoaXMucHJvcGVydGllcygpLmNoaWxkcygpLmJhc2VsaW5lU3R5bGUscj10LmhlaWdodCgpLG49MTAwLWUueS9yKjEwMCxvPW48MD8wOk1hdGgucm91bmQoMTAqbikvMTA7cy5jaGlsZHMoKS5iYXNlTGV2ZWxQZXJjZW50YWdlLnNldFZhbHVlKE1hdGgubWF4KE1hdGgubWluKG8sMTAwKSwwKSl9fW1lYXN1cmVVbml0SWQoKXtyZXR1cm4gdGhpcy5zeW1ib2xJbmZvKCk/Lm1ldHJpY3M/bnVsbDooMCxTLm1lYXN1cmVVbml0SWQpKHRoaXMuc3ltYm9sSW5mbygpKX1kYXRhVXBkYXRlZCgpe3JldHVybiB0aGlzLl9kYXRhVXBkYXRlZH1hbGVydENyZWF0aW9uQXZhaWxhYmxlKCl7cmV0dXJuIG5ldyBuLldhdGNoZWRWYWx1ZSghdGhpcy5wcmljZVNjYWxlKCk/LmlzUGVyY2VudGFnZSgpJiZzdXBlci5hbGVydENyZWF0aW9uQXZhaWxhYmxlKCkudmFsdWUoKSkucmVhZG9ubHkoKX1sZWdlbmRWYWx1ZXNQcm92aWRlcigpe3JldHVybiB0aGlzLl9vdmVybGF5TGVnZW5kVmFsdWVzUHJvdmlkZXJ9dGFibGVWaWV3VmFsdWVzUHJvdmlkZXIoKXtyZXR1cm4gdGhpcy5fb3ZlcmxheVRhYmxlVmlld1ZhbHVlc1Byb3ZpZGVyfXZhbHVlc1Byb3ZpZGVyKCl7cmV0dXJuIHRoaXMuX292ZXJsYXlWYWx1ZXNQcm92aWRlcn1jaGFydEZsb2F0aW5nVG9vbHRpcFZhbHVlc1Byb3ZpZGVyKCl7cmV0dXJuIHRoaXMuX292ZXJsYXlDaGFydEZsb2F0aW5nVG9vbHRpcFZhbHVlc1Byb3ZpZGVyfWRlZmF1bHRQbG90SWRGb3JBbGVydCgpe3JldHVybiIifXRhZ3MoKXtjb25zdCBlPVtdLHQ9dGhpcy5zeW1ib2xJbmZvKCk7aWYodCllLnB1c2godC5uYW1lKTtlbHNle2NvbnN0IHQ9dGhpcy5zeW1ib2woKTt0JiZlLnB1c2godCl9cmV0dXJuIGV9c3RhdHVzUHJvdmlkZXIoZSl7cmV0dXJuIG5ldyB4ZSh0aGlzKX1pbnB1dHNJblBhcnRzKGUsdCxzLGkscil7cmV0dXJuIG51bGx9X29uUHJvcGVydGllc0NoYW5nZWQoKXtzdXBlci5fb25Qcm9wZXJ0aWVzQ2hhbmdlZCgpLHRoaXMuX3ByZWNvbXB1dGVkQmFyU3R5bGVzPW5ldyBXZWFrTWFwfWFzeW5jIF90cnlDaGFuZ2VJbnB1dHMoKXthd2FpdCBzdXBlci5fdHJ5Q2hhbmdlSW5wdXRzKCksdGhpcy5fZm9ybWF0dGVyPW51bGwsdGhpcy5fZGVmYXVsdEZvcm1hdHRlcj1udWxsLHRoaXMucHJpY2VTY2FsZSgpPy51cGRhdGVGb3JtYXR0ZXIoKX1fdHJ5Q3JlYXRlRm9ybWF0dGVyKCl7SS5jdXN0b21Gb3JtYXR0ZXJzPy5wcmljZUZvcm1hdHRlckZhY3Rvcnk/Lih0aGlzLnN5bWJvbEluZm8oKSx0aGlzLnByb3BlcnRpZXMoKS5jaGlsZHMoKS5taW5UaWNrLnZhbHVlKCkpO3JldHVybigwLFMuY3JlYXRlU2VyaWVzRm9ybWF0dGVyKSh0aGlzLmFsaWFzU3ltYm9sSW5mbygpLHRoaXMucHJvcGVydGllcygpLmNoaWxkcygpLm1pblRpY2sudmFsdWUoKSl9X3RyeUNyZWF0ZURlZmF1bHRGb3JtYXR0ZXIoKXtyZXR1cm4oMCxTLmNyZWF0ZVNlcmllc0Zvcm1hdHRlcikodGhpcy5hbGlhc1N5bWJvbEluZm8oKSwiZGVmYXVsdCIpfV9nZXRTeW1ib2xTb3VyY2UoKXtyZXR1cm4gdGhpc31fb25Vbml0Q2hhbmdlZCgpeyJhbHdheXNPZmYiIT09KDAsZi5jdXJyZW5jeVVuaXRNZXRyaWNWaXNpYmlsaXR5UHJvcGVydHkpKCkudmFsdWUoKSYmdGhpcy5fbW9kZWwuZnVsbFVwZGF0ZSgpLHRoaXMuX21vZGVsLnVuaXRDb252ZXJzaW9uRW5hYmxlZCgpJiZ0aGlzLmlzU3RhcnRlZCgpJiZ0aGlzLl90cnlDaGFuZ2VJbnB1dHMoKSx0aGlzLl91bml0Q2hhbmdlZC5maXJlKCl9X29uTWV0cmljQ2hhbmdlZCgpeyJhbHdheXNPZmYiIT09KDAsZi5jdXJyZW5jeVVuaXRNZXRyaWNWaXNpYmlsaXR5UHJvcGVydHkpKCkudmFsdWUoKSYmdGhpcy5fbW9kZWwuZnVsbFVwZGF0ZSgpLHRoaXMuX21vZGVsLm1ldHJpY0NvbnZlcnNpb25FbmFibGVkKCkmJnRoaXMuaXNTdGFydGVkKCkmJnRoaXMuX3RyeUNoYW5nZUlucHV0cygpLHRoaXMuX21ldHJpY0NoYW5nZWQuZmlyZSgpfV9nZXRTeW1ib2xPYmplY3QoZSx0KXtjb25zdCBzPXN1cGVyLl9nZXRTeW1ib2xPYmplY3QoZSkscj10aGlzLmN1cnJlbmN5KCk7bnVsbCE9PXImJihzWyJjdXJyZW5jeS1pZCJdPXIpCjtjb25zdCBuPXRoaXMudW5pdCgpO3RoaXMuX21vZGVsLnVuaXRDb252ZXJzaW9uRW5hYmxlZCgpJiZudWxsIT09biYmKHNbInVuaXQtaWQiXT1uKTtjb25zdCBvPXRoaXMubWV0cmljKCk7cmV0dXJuIXQmJnRoaXMuX21vZGVsLm1ldHJpY0NvbnZlcnNpb25FbmFibGVkKCkmJm51bGwhPT1vJiYocy5tZXRyaWM9bykscy5hZGp1c3RtZW50PSgwLGkuZW5zdXJlRGVmaW5lZCkodGhpcy5fbW9kZWwubWFpblNlcmllcygpLnByb3BlcnRpZXMoKS5jaGlsZHMoKS5kaXZpZGVuZHNBZGp1c3RtZW50KS52YWx1ZSgpPyJkaXZpZGVuZHMiOiJzcGxpdHMiLHN9X29uU3ltYm9sUmVzb2x2aW5nU3RhcnQoZSx0KXt0aGlzLl9sYXN0UmVzb2x2ZWRTeW1ib2xTb3VyY2U9dCxzdXBlci5fb25TeW1ib2xSZXNvbHZpbmdTdGFydChlLHQpLHRoaXMuX3N5bWJvbFJlc29sdmluZ0FjdGl2ZS5zZXRWYWx1ZSghMCl9X29uU3ltYm9sRXJyb3IoKXtzdXBlci5fb25TeW1ib2xFcnJvcigpLHRoaXMuX3N5bWJvbFJlc29sdmluZ0FjdGl2ZS5zZXRWYWx1ZSghMSl9X29uU3ltYm9sUmVzb2x2ZWQoZSx0LHMpe3N1cGVyLl9vblN5bWJvbFJlc29sdmVkKGUsdCxzKSx0aGlzLl9iYXNlPXM/cy5wcmljZXNjYWxlL3MubWlubW92OjEwMCx0aGlzLl9yZWNyZWF0ZVByaWNlRm9ybWF0dGluZ0RlcGVuZGVuY2llcygpO2NvbnN0IGk9dD09PXRoaXMuc3ltYm9sKCk/KDAsZy5leHRyYWN0U3ltYm9sTmFtZUZyb21TeW1ib2xJbmZvKShzLHRoaXMuc3ltYm9sKCkpOm51bGwscj0oMCxTLnN5bWJvbEN1cnJlbmN5KShzKSxuPSgwLFMuc3ltYm9sVW5pdCkocyx0aGlzLl9tb2RlbC51bml0Q29udmVyc2lvbkVuYWJsZWQoKSksbz0oMCxTLnN5bWJvbE1ldHJpYykocyx0aGlzLl9tb2RlbC5tZXRyaWNDb252ZXJzaW9uRW5hYmxlZCgpKTt0aGlzLl9zZXRTeW1ib2xQYXJhbXNJbnRlcm5hbCh7c3ltYm9sOmk/P3ZvaWQgMCxjdXJyZW5jeTpyLHVuaXQ6bixtZXRyaWM6b30scyksTGUmJnRoaXMuX3NldFF1b3Rlc1N5bWJvbCgoMCx3LmVuY29kZUV4dGVuZGVkU3ltYm9sT3JHZXRTaW1wbGVTeW1ib2xTdHJpbmcpKHRoaXMuX2dldFN5bWJvbE9iamVjdCh0aGlzLnN5bWJvbCgpKSkpLHRoaXMuX2NoZWNrU3R5bGUoKSx0aGlzLl9zeW1ib2xSZXNvbHZpbmdBY3RpdmUuc2V0VmFsdWUoITEpfWFzeW5jIF9jaGFuZ2VJbnB1dHNJbXBsKGUsdCl7YXdhaXQgc3VwZXIuX2NoYW5nZUlucHV0c0ltcGwoZSx0KSx0aGlzLl9yZWFsaWduTGluZVRvb2xzSWZQYXJhbXNDaGFuZ2VkKCl9X2dldFByb3BlcnR5RGVmaW5pdGlvbnNWaWV3TW9kZWxDbGFzcygpe3JldHVybiBQcm9taXNlLmFsbChbcy5lKDE1OTk4KSxzLmUoNTUyNTMpLHMuZSg2ODM4MSldKS50aGVuKHMuYmluZChzLDQ2OTM5OCkpLnRoZW4oKGU9PmUuU3R1ZHlPdmVybGF5RGVmaW5pdGlvbnNWaWV3TW9kZWwpKX1fc2V0UXVvdGVzU3ltYm9sKGUpe2NvbnN0IHQ9dGhpcy5zeW1ib2xJbmZvKCkscz0oMCxnLmV4dHJhY3RTeW1ib2xOYW1lRnJvbVN5bWJvbEluZm8pKHQsZSksaT1zJiZ0aGlzLmdldFN5bWJvbFN0cmluZyhzLCEwKTt0aGlzLl9xdW90ZXNQcm92aWRlci5zZXRRdW90ZXNTZXNzaW9uU3ltYm9sKGkpfV9vblF1b3Rlc1VwZGF0ZShlLHQpeyF0aGlzLl9sZWdlbmRWaWV3fHx2b2lkIDA9PT10LnZhbHVlcy5jaGFuZ2UmJnZvaWQgMD09PXQudmFsdWVzLmNoYW5nZV9wZXJjZW50fHwodGhpcy5fbGVnZW5kVmlldy51cGRhdGUoKDAsbGUuc291cmNlQ2hhbmdlRXZlbnQpKHRoaXMuaWQoKSkpLHRoaXMuX21vZGVsLnVwZGF0ZVNvdXJjZSh0aGlzKSl9X2NyZWF0ZVZpZXdzKCl7dGhpcy5fcHJpY2VBeGlzVmlld3M9W107Y29uc3QgZT1uZXcgayh0aGlzKTt0aGlzLl9wcmljZUF4aXNWaWV3c0Jhc2U9W2VdO2NvbnN0IHQ9bmV3IE4odGhpcyk7dGhpcy5fcHJpY2VMaW5lc0F4aXNWaWV3cz1bdF0sdGhpcy5fcGFuZVZpZXdzPVtdLHRoaXMuX2xhYmVsUGFuZVZpZXdzPVtdO2xldCBzPW51bGwscj1udWxsO3N3aXRjaCh0aGlzLnByb3BlcnRpZXMoKS5jaGlsZHMoKS5zdHlsZS52YWx1ZSgpKXtjYXNlIDA6cj1uZXcgcGUuU2VyaWVzQmFyc1BhbmVWaWV3KHRoaXMsdGhpcy5fbW9kZWwpO2JyZWFrO2Nhc2UgMTpyPW5ldyB5ZS5TZXJpZXNDYW5kbGVzUGFuZVZpZXcodGhpcyx0aGlzLl9tb2RlbCk7YnJlYWs7Y2FzZSA5OnI9bmV3IGdlLlNlcmllc0hvbGxvd0NhbmRsZXNQYW5lVmlldyh0aGlzLHRoaXMuX21vZGVsKTticmVhaztjYXNlIDEzOnI9bmV3IGJlLlNlcmllc0NvbHVtbnNQYW5lVmlldyh0aGlzLHRoaXMuX21vZGVsKTticmVhaztjYXNlIDI6Y2FzZSAxNDpjYXNlIDE1OnI9bmV3IG1lLlNlcmllc0xpbmVQYW5lVmlldyh0aGlzLHRoaXMuX21vZGVsKTticmVhaztjYXNlIDM6cj1uZXcgdmUuU2VyaWVzQXJlYVBhbmVWaWV3KHRoaXMsdGhpcy5fbW9kZWwpO2JyZWFrO2Nhc2UgMTY6cj1uZXcgZmUuU2VyaWVzSExDQXJlYVBhbmVWaWV3KHRoaXMsdGhpcy5fbW9kZWwpO2JyZWFrO2Nhc2UgMTA6e3I9bmV3IFNlLlNlcmllc0Jhc2VsaW5lUGFuZVZpZXcodGhpcyx0aGlzLl9tb2RlbCk7Y29uc3QgZT10aGlzLnByb3BlcnRpZXMoKS5jaGlsZHMoKS5iYXNlbGluZVN0eWxlLmNoaWxkcygpO3M9bmV3IFYuU2VyaWVzV2F0ZXJsaW5lUGFuZVZpZXcoe3BhbmVIZWlnaHQ6KCk9PigwLGkuZW5zdXJlTm90TnVsbCkodGhpcy5wcmljZVNjYWxlKCkpLmhlaWdodCgpLGNvbG9yOigpPT5lLmJhc2VsaW5lQ29sb3IudmFsdWUoKSxiYXNlTGV2ZWxQZXJjZW50YWdlOigpPT5lLmJhc2VMZXZlbFBlcmNlbnRhZ2UudmFsdWUoKX0pO2JyZWFrfWNhc2UgMTI6cj1uZXcgd2UuU2VyaWVzSGlMb1BhbmVWaWV3KHRoaXMsdGhpcy5fbW9kZWwpO2JyZWFrO2Nhc2UgMjE6cj1uZXcgVGUuU2VyaWVzSExDQmFyc1BhbmVWaWV3KHRoaXMsdGhpcy5fbW9kZWwpfXImJnRoaXMuX3BhbmVWaWV3cy5wdXNoKHIpLG51bGwhPT1zJiZ0aGlzLl9wYW5lVmlld3MucHVzaChzKSx0aGlzLl9wYW5lVmlld3MucHVzaChuZXcgSCh0aGlzKSksCnRoaXMuX2RhdGFXaW5kb3dWaWV3fHwodGhpcy5fZGF0YVdpbmRvd1ZpZXc9bmV3IGFlKHRoaXMsdGhpcy5fbW9kZWwpKSx0aGlzLl9sZWdlbmRWaWV3fHwodGhpcy5fbGVnZW5kVmlldz1uZXcgZGUodGhpcyx0aGlzLl9tb2RlbCkpLHRoaXMuX3N0YXR1c1ZpZXd8fCh0aGlzLl9zdGF0dXNWaWV3PW5ldyBULlN0dWR5U3RhdHVzVmlldyh0aGlzKSksdGhpcy5fZmxvYXRpbmdUb29sdGlwVmlld3x8KHRoaXMuX2Zsb2F0aW5nVG9vbHRpcFZpZXc9bmV3IERlLlN0dWR5Q2hhcnRGbG9hdGluZ1Rvb2x0aXBWaWV3KHRoaXMsdGhpcy5fbW9kZWwpKSx0aGlzLl9wcmljZUF4aXNWaWV3cz1bLi4udGhpcy5fcHJpY2VBeGlzVmlld3NCYXNlXSx0aGlzLl9sYWJlbFBhbmVWaWV3cy5wdXNoKG5ldyBfZS5QYW5lUHJpY2VBeGlzVmlldyhlLHRoaXMsdGhpcy5fbW9kZWwpKX1fY3JlYXRlU3R1ZHlPblNlcnZlcigpe2NvbnN0IGU9c3VwZXIuX2NyZWF0ZVN0dWR5T25TZXJ2ZXIoKTtyZXR1cm4gdGhpcy5fcmVhbGlnbkxpbmVUb29sc0lmUGFyYW1zQ2hhbmdlZCgpLGV9X21vZGlmeVN0dWR5T25TZXJ2ZXIoZSl7c3VwZXIuX21vZGlmeVN0dWR5T25TZXJ2ZXIoZSwwKX1fdGl0bGVJblBhcnRzKGUsdCxzLGkscil7Y29uc3Qgbj10aGlzLl9nZXRTcGxpdFRpdGxlKHIpLG89W24ubGlzdGVkRXhjaGFuZ2Usbi5wcmljZVNvdXJjZV0uZmlsdGVyKChlPT52b2lkIDAhPT1lKSk7cmV0dXJuW24udGl0bGUsb119X2dldFNwbGl0VGl0bGUoZSl7Y29uc3QgdD10aGlzLnN5bWJvbEluZm8oKTtyZXR1cm57dGl0bGU6dGhpcy5fZ2V0U3ltYm9sVGl0bGVQYXJ0KHQpLGxpc3RlZEV4Y2hhbmdlOnRoaXMuX2dldEV4Y2hhbmdlVGl0bGVQYXJ0KHQsZSk/P3ZvaWQgMCxwcmljZVNvdXJjZTp0aGlzLl9nZXRQcmljZVNvdXJjZVRpdGxlUGFydCh0KT8/dm9pZCAwfX1fbWVyZ2VEYXRhKGUpe3JldHVybiB0aGlzLl9pbnZhbGlkYXRlTGFzdE5vbkVtcHR5UGxvdFJvd0NhY2hlKCksdGhpcy5fY29uZmxhdGVkQ2h1bmtzQnVpbGRlci5tZXJnZURhdGEoZSl9X2NsZWFyRGF0YSgpe3RoaXMuX2NvbmZsYXRlZENodW5rc0J1aWxkZXIuY2xlYXJEYXRhKCl9X21vdmVEYXRhKGUpe3RoaXMuX2NvbmZsYXRlZENodW5rc0J1aWxkZXIubW92ZURhdGEoZSl9X2luaXRDdXJyZW5jeU1ldGFEYXRhKCl7KDAsby5jb21iaW5lKSgoZT0+e2NvbnN0IHQ9KDAsUy5zeW1ib2xDdXJyZW5jeSkoZSk7bnVsbCE9PWUmJm51bGwhPT10P3RoaXMuX2N1cnJlbmN5TWV0YURhdGEuc2V0VmFsdWUoe29yaWdpbmFsQ3VycmVuY3k6KDAsUy5zeW1ib2xPcmlnaW5hbEN1cnJlbmN5KShlKSxjdXJyZW50Q3VycmVuY3k6dCxiYXNlQ3VycmVuY3k6KDAsUy5zeW1ib2xCYXNlQ3VycmVuY3kpKGUpLGlzQ3VycmVuY3lDb252ZXJ0aWJsZTooMCxTLnN5bWJvbEN1cnJlbmN5Q29udmVydGlibGUpKGUpLGlzQ29udmVydGVkVG9PdGhlckN1cnJlbmN5OigwLFMuaXNDb252ZXJ0ZWRUb090aGVyQ3VycmVuY3kpKGUpLGN1cnJlbmN5T3JpZ2luTmFtZTooMCxTLnByb1N5bWJvbCkoZSx0aGlzLnN5bWJvbCgpKX0pOnRoaXMuX2N1cnJlbmN5TWV0YURhdGEuc2V0VmFsdWUobnVsbCl9KSx0aGlzLl9zeW1ib2xTb3VyY2VTeW1ib2xJbmZvLndlYWtSZWZlcmVuY2UoKSl9X2luaXRVbml0TWV0YURhdGEoKXsoMCxvLmNvbWJpbmUpKCgoZSx0KT0+e2NvbnN0IHM9dGhpcy5fbW9kZWwsaT0oMCxTLnN5bWJvbFVuaXQpKGUscy51bml0Q29udmVyc2lvbkVuYWJsZWQoKSk7bnVsbCE9PWUmJm51bGwhPT1pJiZudWxsIT09dD90aGlzLl91bml0TWV0YURhdGEuc2V0VmFsdWUoe3VuaXRPcmlnaW5OYW1lOigwLFMucHJvU3ltYm9sKShlLHRoaXMuc3ltYm9sKCkpLGNvbnZlcnRpYmxlR3JvdXBzOigwLEFlLnVuaXRDb252ZXJ0aWJsZUdyb3VwcykoZSxpLHQpLGlzQ29udmVydGVkVG9PdGhlclVuaXQ6KDAsUy5pc0NvbnZlcnRlZFRvT3RoZXJVbml0KShlLHMudW5pdENvbnZlcnNpb25FbmFibGVkKCkpLG9yaWdpbmFsVW5pdDooMCxTLnN5bWJvbE9yaWdpbmFsVW5pdCkoZSxzLnVuaXRDb252ZXJzaW9uRW5hYmxlZCgpKSxjdXJyZW50VW5pdDppfSk6dGhpcy5fdW5pdE1ldGFEYXRhLnNldFZhbHVlKG51bGwpfSksdGhpcy5fc3ltYm9sU291cmNlU3ltYm9sSW5mby53ZWFrUmVmZXJlbmNlKCksdGhpcy5fYXZhaWxhYmxlVW5pdHMud2Vha1JlZmVyZW5jZSgpKX1fZ2V0U3ltYm9sVGl0bGVQYXJ0KGUpe2lmKG51bGw9PT1lKXJldHVybiBNZT8iIjooZT0+dGhpcy5fbW9kZWwuc3ltYm9sQWxpYXNTZXJ2aWNlKCk/LmdldEFsaWFzQnlQcm9OYW1lKGUpPy5hbGlhc05hbWU/P2UpKHRoaXMucHJvcGVydGllcygpLmNoaWxkcygpLmlucHV0cy5jaGlsZHMoKS5zeW1ib2wudmFsdWUoKSk7Y29uc3QgdD10aGlzLl9tb2RlbC5zeW1ib2xBbGlhc1NlcnZpY2UoKT8uZ2V0QWxpYXNCeVByb05hbWUoZS5wcm9fbmFtZSk/LmFsaWFzTmFtZT8/ZS5uYW1lO2lmKEVlKXN3aXRjaCh0aGlzLl9tb2RlbC5tYWluU2VyaWVzKCkuc3ltYm9sVGV4dFNvdXJjZVByb3h5UHJvcGVydHkoKS52YWx1ZSgpKXtjYXNlImRlc2NyaXB0aW9uIjpyZXR1cm4gZS5kZXNjcmlwdGlvbjtjYXNlInRpY2tlci1hbmQtZGVzY3JpcHRpb24iOnJldHVybmAke3R9LCAke2UuZGVzY3JpcHRpb259YDtjYXNlImxvbmctZGVzY3JpcHRpb24iOnJldHVybiBlLmxvbmdfZGVzY3JpcHRpb24/P2UuZGVzY3JpcHRpb259cmV0dXJuIHR9X2dldEV4Y2hhbmdlVGl0bGVQYXJ0KGUsdCl7cmV0dXJuIG51bGw9PT1lfHx0P251bGw6KDAsUy5nZXRTeW1ib2xMaXN0ZWRFeGNoYW5nZSkoZSl9X2dldFByaWNlU291cmNlVGl0bGVQYXJ0KGUpe3JldHVybiBudWxsfV9vbkFsbG93RXh0ZW5kVGltZVNjYWxlQ2hhbmdlZCgpe31fc2V0U3ltYm9sUGFyYW1zSW50ZXJuYWwoZSx0KXsKY29uc3R7c3ltYm9sOnMsY3VycmVuY3k6aSx1bml0OnIsbWV0cmljOm4sc3R5bGU6b309ZSxhPXRoaXMucHJvcGVydGllcygpLmNoaWxkcygpLGw9YS5pbnB1dHMuY2hpbGRzKCkuc3ltYm9sLnZhbHVlKCksdT1hLmN1cnJlbmN5SWQudmFsdWUoKSxjPWEudW5pdElkLnZhbHVlKCksaD1hLm1ldHJpY0lkLnZhbHVlKCksZD1hLnN0eWxlLnZhbHVlKCk7aWYodm9pZCAwIT09cyYmYS5pbnB1dHMuY2hpbGRzKCkuc3ltYm9sLnNldFZhbHVlU2lsZW50bHkocyksdm9pZCAwIT09aSYmYS5jdXJyZW5jeUlkLnNldFZhbHVlU2lsZW50bHkoaSksdm9pZCAwIT09ciYmYS51bml0SWQuc2V0VmFsdWVTaWxlbnRseShyKSx2b2lkIDAhPT1uJiZhLm1ldHJpY0lkLnNldFZhbHVlU2lsZW50bHkobiksdm9pZCAwIT09byYmYS5zdHlsZS5zZXRWYWx1ZVNpbGVudGx5KG8pLHQpdGhpcy5fcmVzb2x2ZWRTeW1ib2xzQnlJbnB1dFt0aGlzLnN5bWJvbCgpXT10LHRoaXMuX3Jlc29sdmVkU3ltYm9sc1t0aGlzLl9nZXRTeW1ib2xGb3JSZXNvbHZlKHRoaXMuc3ltYm9sKCkpXT10LHRoaXMuX3JlYWxpZ25Ub29sc0xhc3RQYXJhbXM9bnVsbDtlbHNle2NvbnN0IGU9dGhpcy5zeW1ib2xJbmZvKCk7bnVsbCE9PWUmJihhLmN1cnJlbmN5SWQuc2V0VmFsdWVTaWxlbnRseSgoMCxTLnN5bWJvbEN1cnJlbmN5KShlKSksYS51bml0SWQuc2V0VmFsdWVTaWxlbnRseSgoMCxTLnN5bWJvbFVuaXQpKGUsdGhpcy5fbW9kZWwudW5pdENvbnZlcnNpb25FbmFibGVkKCkpKSxhLm1ldHJpY0lkLnNldFZhbHVlU2lsZW50bHkoKDAsUy5zeW1ib2xNZXRyaWMpKGUsdGhpcy5fbW9kZWwubWV0cmljQ29udmVyc2lvbkVuYWJsZWQoKSkpLHRoaXMuX2N1cnJlbmN5VW5pdFNvdXJjZVN5bWJvbEluZm8uc2V0VmFsdWUoZSkpfWEuaW5wdXRzLmNoaWxkcygpLnN5bWJvbC52YWx1ZSgpIT09bCYmYS5pbnB1dHMuY2hpbGRzKCkuc3ltYm9sLmZpcmVDaGFuZ2VkKCksYS5jdXJyZW5jeUlkLnZhbHVlKCkhPT11JiZhLmN1cnJlbmN5SWQuZmlyZUNoYW5nZWQoKSxhLnVuaXRJZC52YWx1ZSgpIT09YyYmYS51bml0SWQuZmlyZUNoYW5nZWQoKSxhLm1ldHJpY0lkLnZhbHVlKCkhPT1oJiZhLm1ldHJpY0lkLmZpcmVDaGFuZ2VkKCksYS5zdHlsZS52YWx1ZSgpIT09ZCYmYS5zdHlsZS5maXJlQ2hhbmdlZCgpLHRoaXMuX2NoZWNrU3R5bGUoKSx0aGlzLl9yZWFsaWduTGluZVRvb2xzSWZQYXJhbXNDaGFuZ2VkKCl9X3VwZGF0ZUJhckZ1bmN0aW9uKCl7dGhpcy5fYmFyRnVuY3Rpb249KDAsdi5iYXJGdW5jdGlvbkJ5U3R5bGUpKHRoaXMuc3R5bGUoKSx0aGlzLnByaWNlU291cmNlKCkpfV9vbk1pblRpY2tDaGFuZ2VkKCl7dGhpcy5fcmVjcmVhdGVQcmljZUZvcm1hdHRpbmdEZXBlbmRlbmNpZXMoKSx0aGlzLnVwZGF0ZUFsbFZpZXdzKHt0eXBlOiJnbG9iYWwtY2hhbmdlIn0pLHRoaXMuX21vZGVsLmZ1bGxVcGRhdGUoKX1fb25DaGFydFN0eWxlQ2hhbmdlZCgpe3RoaXMuX3VwZGF0ZUJhckZ1bmN0aW9uKCksdGhpcy5fc3R5bGVUb1JlY292ZXI/Lm9yaWdpbmFsU3R5bGUhPT10aGlzLnN0eWxlKCkmJih0aGlzLl9zdHlsZVRvUmVjb3Zlcj1udWxsKX1fY2hlY2tTdHlsZSgpe2NvbnN0IGU9dGhpcy5zdHlsZSgpOygwLFMuaXNDbG9zZUJhc2VkU3ltYm9sKSh0aGlzLnN5bWJvbEluZm8oKSl8fHRoaXMubW9kZWwoKS5tYWluU2VyaWVzKCkuaW50ZXJ2YWxPYmooKS52YWx1ZSgpLmlzMVRpY2soKT8oMCxTLmlzU2luZ2xlVmFsdWVCYXNlZFN0eWxlKShlKXx8KHRoaXMuc2V0U3R5bGUoMiksdGhpcy5fc3R5bGVUb1JlY292ZXI9e2NvcnJlY3RlZFN0eWxlOnRoaXMuc3R5bGUoKSxvcmlnaW5hbFN0eWxlOmV9KTpudWxsIT09dGhpcy5fc3R5bGVUb1JlY292ZXImJih0aGlzLnNldFN0eWxlKHRoaXMuX3N0eWxlVG9SZWNvdmVyLm9yaWdpbmFsU3R5bGUpLHRoaXMuX3N0eWxlVG9SZWNvdmVyPW51bGwpfV9yZWFsaWduTGluZVRvb2xzSWZQYXJhbXNDaGFuZ2VkKCl7bGV0IGU9bnVsbD09PXRoaXMuX3JlYWxpZ25Ub29sc0xhc3RQYXJhbXM7aWYobnVsbCE9PXRoaXMuX3JlYWxpZ25Ub29sc0xhc3RQYXJhbXMpe2NvbnN0IHQ9dGhpcy5jb21wYXJlU3ltYm9sUGFyYW1zKHRoaXMuX3JlYWxpZ25Ub29sc0xhc3RQYXJhbXMpO2U9dC5zeW1ib2xDaGFuZ2VkfHx0LmludGVydmFsQ2hhbmdlZHx8dC5jdXJyZW5jeUNoYW5nZWR8fHQudW5pdENoYW5nZWR8fHQubWV0cmljQ2hhbmdlZH1lJiYodGhpcy5fbW9kZWwucmVhbGlnbkxpbmVUb29scyh0aGlzKSx0aGlzLl9yZWFsaWduVG9vbHNMYXN0UGFyYW1zPXRoaXMuc3ltYm9sUGFyYW1zKCkpfX19LDg3NDM2OShlLHQscyl7InVzZSBzdHJpY3QiO3MuZCh0LHtTdHVkeVN0cmF0ZWd5OigpPT5CfSk7dmFyIGk9cygxNjc1MDIpLHI9cygxMzg2MzgpLG49cygyMzIzNjQpLG89cyg5NDgzODApLGE9cyg0OTAzOTkpLGw9cygxOTcyNzIpLHU9cyg1MDU1NiksYz1zKDczNjUzMSksaD1zKDEzNDY3KSxkPXMoNzYzKSxfPXMoNTE1OTIpLHA9cygxNTEyMSkseT1zKDY0MDc0NCk7ZnVuY3Rpb24gbShlLHQscyl7cmV0dXJuIHM/TWF0aC5zaWduKGUpKihNYXRoLnJvdW5kKE1hdGguYWJzKGUpKSt0KTpNYXRoLnJvdW5kKGUpK3R9Y2xhc3Mgdntjb25zdHJ1Y3RvcihlLHQpe3RoaXMuX2RhdGE9ZSx0aGlzLl90ZXh0V2lkdGhzPXR9ZHJhdyhlLHQpe2NvbnN0e2hvcml6b250YWxQaXhlbFJhdGlvOnMsdmVydGljYWxQaXhlbFJhdGlvOml9PXQ7dm9pZCAwIT09dGhpcy5fdGV4dFdpZHRocy5yZW5kZXJpbmdJbmZvJiYoMCxfLmVxdWFsUmVuZGVyaW5nSW5mb3MpKHRoaXMuX3RleHRXaWR0aHMucmVuZGVyaW5nSW5mbyx0KXx8KHRoaXMuX3RleHRXaWR0aHMucmVuZGVyaW5nSW5mbz10LHRoaXMuX3RleHRXaWR0aHMud2lkdGguY2xlYXIoKSk7Y29uc3Qgcj10aGlzLl9kYXRhO2UubGluZUpvaW49Im1pdGVyIixlLm1pdGVyTGltaXQ9TWF0aC5yb3VuZCgyKnMpLGUuc3Ryb2tlU3R5bGU9ci5iZ0NvbG9yLGUubGluZVdpZHRoPU1hdGgubWF4KDIsKDAseS5jZWlsZWRFdmVuKSgyKnMpKTtmb3IoY29uc3QgcyBvZiByLml0ZW1zKXtlLmJlZ2luUGF0aCgpCjtjb25zdCBuPSJsb3dlciI9PT1zLnBvcztlLnNhdmUoKTtjb25zdCBvPU1hdGgucm91bmQoci5vcmRlckFycm93LnZNYXJnaW4qaSk7ZS50cmFuc2xhdGUoMCxuP286LW8pLHRoaXMuX2RyYXdPcmRlckFycm93KGUscy5vcmRlclBvaW50LHIub3JkZXJBcnJvdyxyLmV4aXRMaW5lV2lkdGgsbix0KSxlLnJlc3RvcmUoKSxlLnNhdmUoKSx0aGlzLl9kcmF3UHJpY2VBcnJvdyhlLHMucHJpY2VQb2ludCxyLnByaWNlQXJyb3csIW4sdCksZS5yZXN0b3JlKCksZS5jbG9zZVBhdGgoKSxlLnN0cm9rZSgpLGUuZmlsbFN0eWxlPXIuZXhpdExpbmVXaWR0aD9yLmV4aXRDb2xvcjoiYnV5Ij09PXMudHlwZT9yLmJ1eUNvbG9yOnIuc2VsbENvbG9yLGUuZmlsbCgpfWNvbnN0IG49ci50ZXh0O24udmlzaWJsZSYmKDAscC5kcmF3U2NhbGVkKShlLHMsaSwoKCk9PntlLmZvbnQ9bi5mb250U2l6ZSsicHggIituLmZvbnQsZS50ZXh0QWxpZ249ImNlbnRlciIsZS50ZXh0QmFzZWxpbmU9InRvcCIsZS5maWxsU3R5bGU9ci5sYWJlbENvbG9yLGUuc3Ryb2tlU3R5bGU9ci5iZ0NvbG9yLGUubGluZVdpZHRoPU1hdGgubWluKDIsTWF0aC5mbG9vcigyKnMpKTtmb3IoY29uc3QgdCBvZiByLml0ZW1zKXtjb25zdCBzPSJsb3dlciI9PT10LnBvcztlLnNhdmUoKTtjb25zdCBpPXM/MTotMSxvPXIub3JkZXJBcnJvdztlLnRyYW5zbGF0ZSgwLChvLmhlaWdodCtvLnZNYXJnaW4rci5leGl0TGluZVdpZHRoKSppKTtjb25zdCBhPXM/bi52TWFyZ2luOi1uLmZvbnRTaXplLW4udk1hcmdpbixsPWkqKG4uZm9udFNpemUrbi5saW5lU3BhY2luZyk7aWYodC5sYWJlbCYmKGUudHJhbnNsYXRlKDAsYSksZS5zdHJva2VUZXh0KHQubGFiZWwsTWF0aC5jZWlsKHQub3JkZXJQb2ludC54KSx0Lm9yZGVyUG9pbnQueSksZS5maWxsVGV4dCh0LmxhYmVsLE1hdGguY2VpbCh0Lm9yZGVyUG9pbnQueCksdC5vcmRlclBvaW50LnkpLHRoaXMuX3RleHRXaWR0aHMud2lkdGguaGFzKHQubGFiZWwpfHx0aGlzLl90ZXh0V2lkdGhzLndpZHRoLnNldCh0LmxhYmVsLGUubWVhc3VyZVRleHQodC5sYWJlbCkud2lkdGgpKSx0LnF0eSl7Y29uc3Qgcz1Cb29sZWFuKHQubGFiZWwpP2w6YTtlLnRyYW5zbGF0ZSgwLHMpLGUuc3Ryb2tlVGV4dCh0LnF0eSxNYXRoLmNlaWwodC5vcmRlclBvaW50LngpLHQub3JkZXJQb2ludC55KSxlLmZpbGxUZXh0KHQucXR5LE1hdGguY2VpbCh0Lm9yZGVyUG9pbnQueCksdC5vcmRlclBvaW50LnkpLHRoaXMuX3RleHRXaWR0aHMud2lkdGguaGFzKHQucXR5KXx8dGhpcy5fdGV4dFdpZHRocy53aWR0aC5zZXQodC5xdHksZS5tZWFzdXJlVGV4dCh0LnF0eSkud2lkdGgpfWUucmVzdG9yZSgpfX0pKX1oaXRUZXN0KGUpe2NvbnN0IHQ9dGhpcy5fdGVzdE9yZGVyQXJyb3dzKGUpLHM9IXQmJnRoaXMuX2RhdGEudGV4dCYmdGhpcy5fdGVzdFRleHQoZSk7cmV0dXJuIHR8fHM/bmV3IGQuSGl0VGVzdFJlc3VsdChkLkhpdFRhcmdldC5SZWd1bGFyKTpudWxsfV9kcmF3T3JkZXJBcnJvdyhlLHQscyxpLHIsbil7bGV0IG8sYTtyPyhlLnJvdGF0ZShNYXRoLlBJKSxvPS10LngsYT0tdC55KToobz10LngsYT10LnkpLGEtPXMuaGVpZ2h0K2k7Y29uc3R7aG9yaXpvbnRhbFBpeGVsUmF0aW86bCx2ZXJ0aWNhbFBpeGVsUmF0aW86dX09bixjPU1hdGgubWF4KDEsTWF0aC5mbG9vcihsKSksaD1jJTI/LjU6MCxkPXI/ImZsb29yIjoiY2VpbCI7bz1tKG8qbCxoLHIpLGE9TWF0aC5yb3VuZCgoTWF0aFtkXShhKSsuNSkqdSksZS50cmFuc2xhdGUobyxhKTtjb25zdCBfPSgwLHkuY2VpbGVkRXZlbikocy53aWR0aCpsKS8yK2gscD0oMCx5LmNlaWxlZEV2ZW4pKHMudGFpbFdpZHRoKmwpLzIraCx2PU1hdGgucm91bmQocy50YWlsSGVpZ2h0KnUpO2lmKGUubW92ZVRvKC1wLDApLGUubGluZVRvKHAsMCksZS5saW5lVG8ocCx2KSxlLmxpbmVUbyhfLHYpLGUubGluZVRvKDAsTWF0aC5yb3VuZChzLmhlaWdodCp1KSksaSl7Y29uc3QgdD1NYXRoLmZsb29yKGMvMik7ZS5saW5lVG8oXyt0LE1hdGgucm91bmQocy5oZWlnaHQqdSkpLGUubGluZVRvKF8rdCxNYXRoLnJvdW5kKChzLmhlaWdodCtpKSp1KSksZS5saW5lVG8oLV8tdCxNYXRoLnJvdW5kKChzLmhlaWdodCtpKSp1KSksZS5saW5lVG8oLV8tdCxNYXRoLnJvdW5kKHMuaGVpZ2h0KnUpKSxlLmxpbmVUbygwLE1hdGgucm91bmQocy5oZWlnaHQqdSkpfWUubGluZVRvKC1fLHYpLGUubGluZVRvKC1wLHYpLGUubGluZVRvKC1wLDApLGUubGluZVRvKHAsMCl9X2RyYXdQcmljZUFycm93KGUsdCxzLGkscil7bGV0IG4sbztpPyhlLnJvdGF0ZShNYXRoLlBJKSxuPS10Lngsbz0tdC55KToobj10Lngsbz10LnkpO2NvbnN0e2hvcml6b250YWxQaXhlbFJhdGlvOmEsdmVydGljYWxQaXhlbFJhdGlvOmx9PXIsdT1NYXRoLm1heCgxLE1hdGguZmxvb3IoYSkpLGM9dSUyPy41OjA7bj1tKG4qYSxjLGkpLXUsbz1tKG8qbCxjLGkpO2NvbnN0IGg9KDAseS5jZWlsZWRFdmVuKSgyKnMud2lkdGgqbCkvMixkPS0oTWF0aC5yb3VuZChzLndpZHRoKmEpK2MpO2UudHJhbnNsYXRlKG4sbyksZS5tb3ZlVG8oMCwwKSxlLmxpbmVUbyhkLC1oKSxlLmxpbmVUbyhkLGgpLGUubGluZVRvKDAsMCksZS5saW5lVG8oZCwtaCl9X3Rlc3RPcmRlckFycm93cyhlKXtjb25zdCB0PXRoaXMuX2RhdGEscz10Lm9yZGVyQXJyb3cud2lkdGgvMjtmb3IoY29uc3QgaSBvZiB0Lml0ZW1zKXtjb25zdCByPWkub3JkZXJQb2ludDtpZihlLng8ci54LXN8fGUueD5yLngrcyljb250aW51ZTtjb25zdCBuPSJsb3dlciI9PT1pLnBvcztsZXQgbz10Lm9yZGVyQXJyb3cuaGVpZ2h0K3QuZXhpdExpbmVXaWR0aDtufHwobz0tbyk7Y29uc3QgYT1yLnkrKG4/dC5vcmRlckFycm93LnZNYXJnaW46LXQub3JkZXJBcnJvdy52TWFyZ2luKSxsPU1hdGgubWluKGEsYStvKSx1PU1hdGgubWF4KGEsYStvKTtpZighKGUueTxsfHxlLnk+dSkpcmV0dXJuITB9cmV0dXJuITF9X3Rlc3RUZXh0KGUpe2NvbnN0IHQ9dGhpcy5fZGF0YSxzPXQudGV4dDtpZighcy52aXNpYmxlKXJldHVybiExO2Zvcihjb25zdCBpIG9mIHQuaXRlbXMpewpjb25zdCByPWkub3JkZXJQb2ludCxuPSJsb3dlciI9PT1pLnBvcztsZXQgbz10Lm9yZGVyQXJyb3cudk1hcmdpbit0Lm9yZGVyQXJyb3cuaGVpZ2h0K3QuZXhpdExpbmVXaWR0aDtufHwobz0tbyk7Y29uc3QgYT1yLnkrbyxsPShpLmxhYmVsPzE6MCkrKGkucXR5PzE6MCk7bGV0IHU9cy52TWFyZ2luK3MuZm9udFNpemUqbCtzLmxpbmVTcGFjaW5nKk1hdGgubWF4KDAsbC0xKTtufHwodT0tdSk7Y29uc3QgYz1NYXRoLm1pbihhLGErdSksaD1NYXRoLm1heChhLGErdSk7aWYoZS55PGN8fGUueT5oKWNvbnRpbnVlO2NvbnN0IGQ9aS5sYWJlbCYmaS5xdHk/biYmZS55PGErcy5mb250U2l6ZXx8IW4mJmUueT5hLXMuZm9udFNpemU/aS5sYWJlbDppLnF0eTppLmxhYmVsfHxpLnF0eSxfPXRoaXMuX3RleHRXaWR0aHMud2lkdGguZ2V0KGQpO2lmKCEodm9pZCAwPT09X3x8ZS54PHIueC1fLzJ8fGUueD5yLngrXy8yKSlyZXR1cm4hMH1yZXR1cm4hMX19dmFyIGYsUz1zKDkyNjE0OSksZz1zKDkzNjMyNiksYj1zKDc4OTE5MCk7IWZ1bmN0aW9uKGUpe2VbZS5PcmRlckFycm93Vk1hcmdpbj0xMV09Ik9yZGVyQXJyb3dWTWFyZ2luIixlW2UuT3JkZXJBcnJvd1dpZHRoPTEwXT0iT3JkZXJBcnJvd1dpZHRoIixlW2UuT3JkZXJBcnJvd0hlaWdodD0xNV09Ik9yZGVyQXJyb3dIZWlnaHQiLGVbZS5PcmRlckFycm93VGFpbFdpZHRoPTJdPSJPcmRlckFycm93VGFpbFdpZHRoIixlW2UuT3JkZXJBcnJvd1RhaWxIZWlnaHQ9MTBdPSJPcmRlckFycm93VGFpbEhlaWdodCIsZVtlLk9yZGVyQXJyb3dFeGl0TGluZVdpZHRoPTJdPSJPcmRlckFycm93RXhpdExpbmVXaWR0aCIsZVtlLlByaWNlQXJyb3dXaWR0aD01XT0iUHJpY2VBcnJvd1dpZHRoIixlW2UuVGV4dFZNYXJnaW49N109IlRleHRWTWFyZ2luIixlW2UuRm9udFNpemU9MTJdPSJGb250U2l6ZSIsZVtlLkxpbmVTcGFjaW5nPTJdPSJMaW5lU3BhY2luZyIsZVtlLlRleHRWaXNpYmlsaXR5TWluQmFyU3BhY2luZz0xMF09IlRleHRWaXNpYmlsaXR5TWluQmFyU3BhY2luZyJ9KGZ8fChmPXt9KSk7Y29uc3Qgdz17QnV5Q29sb3I6KDAsdS5nZXRIZXhDb2xvckJ5TmFtZSkoImNvbG9yLXR2LWJsdWUtNTAwIiksU2VsbENvbG9yOiIjRkYxNzQ0IixFeGl0Q29sb3I6IiNENTAwRjkiLExhYmVsRGFya0NvbG9yOigwLHUuZ2V0SGV4Q29sb3JCeU5hbWUpKCJjb2xvci1jb2xkLWdyYXktMzAwIiksTGFiZWxMaWdodENvbG9yOigwLHUuZ2V0SGV4Q29sb3JCeU5hbWUpKCJjb2xvci1jb2xkLWdyYXktOTAwIil9O2Z1bmN0aW9uIEMoZSl7cmV0dXJuITE9PT1lLmU/ImV4aXQiOmUuYj8iZW50cnlCdXkiOiJlbnRyeVNlbGwifWZ1bmN0aW9uIFAoZSl7cmV0dXJuIGUuYj8iYnV5Ijoic2VsbCJ9ZnVuY3Rpb24geChlLHQpe3JldHVybiB0PyFlLmI6ZS5ifWZ1bmN0aW9uIEQoZSx0KXtyZXR1cm4geChlLHQpPyJsb3dlciI6InVwcGVyIn1mdW5jdGlvbiBJKGUsdCxzKXtsZXQgaT1lW3RdLmdldChzKTtyZXR1cm4gdm9pZCAwPT09aSYmKGk9MCxlW3RdLnNldChzLGkpKSxpfWZ1bmN0aW9uIFQoZSx0LHMsaSl7Y29uc3Qgbj0oMCxyLmVuc3VyZURlZmluZWQpKGVbdF0uZ2V0KHMpKTtlW3RdLnNldChzLG4raSl9ZnVuY3Rpb24gVihlLHQpe3JldHVybiB0JiYoZS5jfHxlLmlkfHwiVW50aXRsZWQiKXx8IiJ9ZnVuY3Rpb24gUihlLHQpe3JldHVybiB0JiYoZS5iPyIrIjoiLSIpK2UucXx8IiJ9ZnVuY3Rpb24gQShlLHQscyl7cmV0dXJuKDAsci5lbnN1cmVOb3ROdWxsKShlLmI/cy52YWx1ZUF0KHQsMyk6cy52YWx1ZUF0KHQsMikpfWZ1bmN0aW9uIEwoZSx0KXtyZXR1cm4oImV4aXQiPT09QyhlKT8yOjApK3Qudk1hcmdpbit0LmhlaWdodH1jbGFzcyBFe2NvbnN0cnVjdG9yKGUsdCxzKXt0aGlzLl9pbnZhbGlkYXRlZD0hMCx0aGlzLl90ZXh0V2lkdGhzPXt3aWR0aDpuZXcgTWFwfSx0aGlzLl9zdHVkeT1lLHRoaXMuX3Nlcmllcz10LHRoaXMuX21vZGVsPXMsdGhpcy5fb3JkZXJBcnJvdz17dk1hcmdpbjoxMSx3aWR0aDoxMCxoZWlnaHQ6MTUsdGFpbFdpZHRoOjIsdGFpbEhlaWdodDoxMH0sdGhpcy5fcHJpY2VBcnJvdz17d2lkdGg6NX0sdGhpcy5fcHJldmlvdXNGb250PVMuQ0hBUlRfRk9OVF9GQU1JTFlfV1YudmFsdWUoKSx0aGlzLl90ZXh0PXt2TWFyZ2luOjcsZm9udDp0aGlzLl9wcmV2aW91c0ZvbnQsZm9udFNpemU6MTIsbGluZVNwYWNpbmc6Mix2aXNpYmxlOiEwfSx0aGlzLl9pdGVtcz17ZW50cnlCdXk6W10sZW50cnlTZWxsOltdLGV4aXQ6W119LHRoaXMuX3N0dWR5LnByb3BlcnRpZXMoKS5jaGlsZHMoKS5zdHJhdGVneS5jaGlsZHMoKS5vcmRlcnMuc3Vic2NyaWJlKHRoaXMsdGhpcy51cGRhdGUpfXVwZGF0ZSgpe3RoaXMuX2ludmFsaWRhdGVkPSEwfWNsZWFySXRlbXMoKXt0aGlzLl9pdGVtcy5lbnRyeUJ1eT1bXSx0aGlzLl9pdGVtcy5lbnRyeVNlbGw9W10sdGhpcy5faXRlbXMuZXhpdD1bXX1yZW5kZXJlcigpe2NvbnN0IGU9dGhpcy5fc3R1ZHkucHJvcGVydGllcygpLmNoaWxkcygpO2lmKCFlLnZpc2libGUudmFsdWUoKXx8IWUuc3RyYXRlZ3kuY2hpbGRzKCkub3JkZXJzLmNoaWxkcygpLnZpc2libGUudmFsdWUoKSlyZXR1cm4gbnVsbDtpZih0aGlzLl9pbnZhbGlkYXRlZCYmKHRoaXMuX3VwZGF0ZUltcGwoKSx0aGlzLl9pbnZhbGlkYXRlZD0hMSksdGhpcy5faXRlbXMuZW50cnlCdXkubGVuZ3RofHx0aGlzLl9pdGVtcy5lbnRyeVNlbGwubGVuZ3RofHx0aGlzLl9pdGVtcy5leGl0Lmxlbmd0aCl7Y29uc3QgZT1uZXcgYi5Db21wb3NpdGVSZW5kZXJlcjtyZXR1cm4gdGhpcy5faXRlbXMuZW50cnlCdXkubGVuZ3RoJiZlLmFwcGVuZCh0aGlzLl9zdHJhdGVneU9yZGVyc1JlbmRlcmVyKHRoaXMuX2l0ZW1zLmVudHJ5QnV5LCExKSksdGhpcy5faXRlbXMuZW50cnlTZWxsLmxlbmd0aCYmZS5hcHBlbmQodGhpcy5fc3RyYXRlZ3lPcmRlcnNSZW5kZXJlcih0aGlzLl9pdGVtcy5lbnRyeVNlbGwsITEpKSx0aGlzLl9pdGVtcy5leGl0Lmxlbmd0aCYmZS5hcHBlbmQodGhpcy5fc3RyYXRlZ3lPcmRlcnNSZW5kZXJlcih0aGlzLl9pdGVtcy5leGl0LCEwKSksZX1yZXR1cm4gbnVsbH0KX3N0cmF0ZWd5T3JkZXJzUmVuZGVyZXIoZSx0KXtjb25zdCBzPXRoaXMuX21vZGVsLmJhY2tncm91bmRDb2xvcigpLnZhbHVlKCksaT0iYmxhY2siPT09KDAsaC5yZ2JUb0JsYWNrV2hpdGVTdHJpbmcpKCgwLGgucGFyc2VSZ2IpKHMpLDE1MCk7cmV0dXJuIG5ldyB2KHtpdGVtczplLGJ1eUNvbG9yOncuQnV5Q29sb3Isc2VsbENvbG9yOncuU2VsbENvbG9yLGV4aXRDb2xvcjp3LkV4aXRDb2xvcixsYWJlbENvbG9yOmk/dy5MYWJlbERhcmtDb2xvcjp3LkxhYmVsTGlnaHRDb2xvcixiZ0NvbG9yOnMsb3JkZXJBcnJvdzp0aGlzLl9vcmRlckFycm93LGV4aXRMaW5lV2lkdGg6dD8yOjAscHJpY2VBcnJvdzp0aGlzLl9wcmljZUFycm93LHRleHQ6dGhpcy5fdGV4dH0sdGhpcy5fdGV4dFdpZHRocyl9X3VwZGF0ZUltcGwoKXt0aGlzLmNsZWFySXRlbXMoKSx0aGlzLl9wcmV2aW91c0ZvbnQhPT1TLkNIQVJUX0ZPTlRfRkFNSUxZX1dWLnZhbHVlKCkmJih0aGlzLl90ZXh0V2lkdGhzLndpZHRoLmNsZWFyKCksdGhpcy5fcHJldmlvdXNGb250PVMuQ0hBUlRfRk9OVF9GQU1JTFlfV1YudmFsdWUoKSx0aGlzLl90ZXh0LmZvbnQ9dGhpcy5fcHJldmlvdXNGb250KTtjb25zdCBlPXRoaXMuX3N0dWR5Lm9yZGVyc0RhdGEoKTtpZighZXx8IWUubGVuZ3RoKXJldHVybjtjb25zdCB0PXRoaXMuX21vZGVsLnRpbWVTY2FsZSgpLHM9dGhpcy5fc2VyaWVzLnByaWNlU2NhbGUoKSxpPXQudmlzaWJsZUJhcnNTdHJpY3RSYW5nZSgpO2lmKHQuaXNFbXB0eSgpfHxzLmlzRW1wdHkoKXx8bnVsbD09PWkpcmV0dXJuO2NvbnN0IG49dGhpcy5fc3R1ZHkuYmFyc0luZGV4ZXMoKSxvPXRoaXMuX3Nlcmllcy5uZWFyZXN0SW5kZXgoaS5maXJzdEJhcigpLGcuUGxvdFJvd1NlYXJjaE1vZGUuTmVhcmVzdFJpZ2h0KSxhPXRoaXMuX3Nlcmllcy5uZWFyZXN0SW5kZXgoaS5sYXN0QmFyKCksZy5QbG90Um93U2VhcmNoTW9kZS5OZWFyZXN0TGVmdCk7aWYodm9pZCAwPT09b3x8dm9pZCAwPT09YSlyZXR1cm47Y29uc3RbbCx1XT1mdW5jdGlvbihlLHQscyxpKXtjb25zdCByPVtdLG49W107Zm9yKGxldCBvPTA7bzxlLmxlbmd0aDsrK28pe2NvbnN0IGE9aVtvXTthPHR8fGE+c3x8KHIucHVzaChlW29dKSxuLnB1c2goYSkpfXJldHVybltyLG5dfShlLG8sYSxuKSxbaCxkXT10aGlzLl9sYWJlbEFuZFF0eVZpc2liaWxpdHkobC5sZW5ndGgpLF89aHx8ZCxwPXRoaXMuX3RleHRIZWlnaHQoaCxkKSx5PSgwLHIuZW5zdXJlTm90TnVsbCkodGhpcy5fc2VyaWVzLmZpcnN0VmFsdWUoKSksbT1zLmlzSW52ZXJ0ZWQoKSx2PXt1cHBlcjpuZXcgTWFwLGxvd2VyOm5ldyBNYXB9O2ZvcihsZXQgZT0wO2U8bC5sZW5ndGg7ZSsrKXtjb25zdCBpPWxbZV0scj14KGksbSksbj11W2VdLG89dC5pbmRleFRvQ29vcmRpbmF0ZShuKSxhPUEoaSxuLHRoaXMuX3Nlcmllcyk7bGV0IF89cy5wcmljZVRvQ29vcmRpbmF0ZShhLHkpO2NvbnN0IGY9RChpLG0pLFM9SSh2LGYsbik7Xys9cj9TOi1TO1QodixmLG4sTChpLHRoaXMuX29yZGVyQXJyb3cpK3ApO2NvbnN0IGc9cy5wcmljZVRvQ29vcmRpbmF0ZShpLnAseSksYj1DKGkpO3RoaXMuX2l0ZW1zW2JdLnB1c2goe29yZGVyUG9pbnQ6bmV3IGMuUG9pbnQobyxfKSxwcmljZVBvaW50Om5ldyBjLlBvaW50KG8sZyksbGFiZWw6VihpLGgpLHF0eTpSKGksZCkscG9zOmYsdHlwZTpQKGkpfSl9dGhpcy5fdGV4dC52aXNpYmxlPV99X2xhYmVsQW5kUXR5VmlzaWJpbGl0eShlKXtjb25zdCB0PXRoaXMuX21vZGVsLnRpbWVTY2FsZSgpO2lmKHQuYmFyU3BhY2luZygpPDEwJiZ0aGlzLl9vcmRlckFycm93LndpZHRoKmUqMj50LndpZHRoKCkpcmV0dXJuWyExLCExXTtjb25zdCBzPXRoaXMuX3N0dWR5LnByb3BlcnRpZXMoKS5jaGlsZHMoKS5zdHJhdGVneS5jaGlsZHMoKS5vcmRlcnMuY2hpbGRzKCk7cmV0dXJuW3Muc2hvd0xhYmVscy52YWx1ZSgpLHMuc2hvd1F0eS52YWx1ZSgpXX1fdGV4dEhlaWdodChlLHQpe3JldHVybiBlfHx0P2UmJnQ/Mip0aGlzLl90ZXh0LmZvbnRTaXplK3RoaXMuX3RleHQudk1hcmdpbit0aGlzLl90ZXh0LmxpbmVTcGFjaW5nOnRoaXMuX3RleHQuZm9udFNpemUrdGhpcy5fdGV4dC52TWFyZ2luOjB9fXZhciBNPXMoMjI2OTM3KTtjb25zdCBrPVsic3RyYXRlZ3lfcHJvcHMiXTtjbGFzcyBCIGV4dGVuZHMgbC5TdHVkeXtjb25zdHJ1Y3RvcihlLHQscyxpLHIsYSxsLHUpe3N1cGVyKGUsdCxzLGkscixhLGwpLHRoaXMud2F0Y2hlZERhdGE9bmV3IG4uV2F0Y2hlZFZhbHVlLHRoaXMuX3JlcG9ydERhdGE9bnVsbCx0aGlzLl9yZXBvcnRDaGFuZ2VkPW5ldyBvLkRlbGVnYXRlLHRoaXMuX2JhcnNJbmRleGVzPVtdLHRoaXMuX3NyY0JhcnNJbmRleGVzPVtdLHRoaXMuX3JlcG9ydERhdGFCdWZmZXI9bnVsbCx0aGlzLl9hY3RpdmVTdGF0ZT0hMSx1fHwodC5jaGlsZHMoKS52aXNpYmxlLnN1YnNjcmliZSh0aGlzLCgoKT0+e3RoaXMuX3Byb2Nlc3NDaGFuZ2VWaXNpYmlsaXR5KCl9KSksdGhpcy5vbklzQWN0dWFsSW50ZXJ2YWxDaGFuZ2UoKS5zdWJzY3JpYmUodGhpcywoKCk9PnRoaXMuX3Byb2Nlc3NDaGFuZ2VWaXNpYmlsaXR5KCkpKSx0aGlzLl9wcm9jZXNzQ2hhbmdlVmlzaWJpbGl0eShhKSl9ZGVzdHJveSgpe3RoaXMuX3Byb3BlcnRpZXMuY2hpbGRzKCkudmlzaWJsZS51bnN1YnNjcmliZUFsbCh0aGlzKSx0aGlzLm1vZGVsKCkucmVtb3ZlU3RyYXRlZ3lTb3VyY2UodGhpcywwKSxzdXBlci5kZXN0cm95KCl9cHJvcGVydGllcygpe3JldHVybiB0aGlzLl9wcm9wZXJ0aWVzfWhhc1N0YXRlRm9yQWxlcnQoKXtyZXR1cm4gYS5hbGVydHNBdmFpbGFibGUmJnRoaXMuX3Nlcmllcy5hbGVydENyZWF0aW9uQXZhaWxhYmxlKCkudmFsdWUoKX1jYW5IYXNBbGVydE9uTGluZVRvb2xzKCl7cmV0dXJuITF9aW5wdXRzRm9yQWxlcnRTdGF0ZSgpe2NvbnN0IGU9dGhpcy5pbnB1dHMoKTtyZXR1cm4gdGhpcy5fbWV0YUluZm8udmFsdWUoKS5pbnB1dHMuZm9yRWFjaCgodD0+e2NvbnN0IHM9ZVt0LmlkXTtzJiZ0LmludGVybmFsSUQmJihzLmludGVybmFsSUQ9dC5pbnRlcm5hbElEKX0pKSxlfXJlcG9ydERhdGEoKXsKcmV0dXJuIHRoaXMuX3JlcG9ydERhdGF9b3JkZXJzRGF0YSgpe3JldHVybiB0aGlzLl9yZXBvcnREYXRhPy5maWxsZWRPcmRlcnM/P251bGx9YmFyc0luZGV4ZXMoKXtyZXR1cm4gdGhpcy5fYmFyc0luZGV4ZXN9Y2xlYXJEYXRhKCl7c3VwZXIuY2xlYXJEYXRhKCksdGhpcy5fcmVwb3J0RGF0YUJ1ZmZlcj1udWxsLHRoaXMuX3JlcG9ydERhdGE9bnVsbCx0aGlzLl9zdHJhdGVneU9yZGVyc1BhbmVWaWV3JiZ0aGlzLl9zdHJhdGVneU9yZGVyc1BhbmVWaWV3LmNsZWFySXRlbXMoKSx0aGlzLl9yZXBvcnRDaGFuZ2VkLmZpcmUoe2FjdGl2ZU9yZGVyc0NoYW5nZWQ6ITAsZmlsbGVkT3JkZXJzQ2hhbmdlZDohMCxwb3NpdGlvbkNoYW5nZWQ6ITB9KX1yZXBvcnRDaGFuZ2VkKCl7cmV0dXJuIHRoaXMuX3JlcG9ydENoYW5nZWR9c3RyYXRlZ3lPcmRlcnNQYW5lVmlldygpe3JldHVybiB0aGlzLmlzU291cmNlSGlkZGVuKCk/bnVsbDp0aGlzLl9zdHJhdGVneU9yZGVyc1BhbmVWaWV3fXJlc3RvcmVEYXRhKGUpe3N1cGVyLnJlc3RvcmVEYXRhKGUpO2NvbnN0IHQ9ZTt0aGlzLm1vZGVsKCkuYWRkU3RyYXRlZ3lTb3VyY2UodGhpcywwKSx0LnJlcG9ydERhdGEmJnQuYmFyc0luZGV4ZXMmJih0aGlzLl9yZXBvcnREYXRhPXQucmVwb3J0RGF0YSx0aGlzLl9iYXJzSW5kZXhlcz10LmJhcnNJbmRleGVzLHRoaXMud2F0Y2hlZERhdGEuc2V0VmFsdWUoe21ldGhvZDoiZGF0YV91cGRhdGUiLG5vblNlcmllc0RhdGE6e2luZGV4ZXNfcmVwbGFjZTohMSxkYXRhOntyZXBvcnQ6dGhpcy5fcmVwb3J0RGF0YX19fSkpLHQuYWN0aXZlU3RhdGUmJih0aGlzLl9hY3RpdmVTdGF0ZT0hMCl9YWN0aXZlU3RhdGUoKXtyZXR1cm4gdGhpcy5fYWN0aXZlU3RhdGV9dXBkYXRlQWxsVmlld3MoZSl7c3VwZXIudXBkYXRlQWxsVmlld3MoZSksdGhpcy5fc3RyYXRlZ3lPcmRlcnNQYW5lVmlldyYmdGhpcy5fc3RyYXRlZ3lPcmRlcnNQYW5lVmlldy51cGRhdGUoKX1zdGF0ZShlLHQpe2NvbnN0IHM9c3VwZXIuc3RhdGUoZSx0KTtyZXR1cm4gZSYmdGhpcy5fcmVwb3J0RGF0YSYmdGhpcy5fYmFyc0luZGV4ZXMmJihzLmRhdGF8fChzLmRhdGE9e30pLHMuZGF0YS5yZXBvcnREYXRhPXRoaXMuX3JlcG9ydERhdGEscy5kYXRhLmJhcnNJbmRleGVzPXRoaXMuX2JhcnNJbmRleGVzLHMuZGF0YS5hY3RpdmVTdGF0ZT10aGlzLm1vZGVsKCkuYWN0aXZlU3RyYXRlZ3lTb3VyY2UoKS52YWx1ZSgpPT09dGhpcyksc31waW5lU291cmNlQ29kZU1vZGVsKCl7cmV0dXJuIHRoaXMubWV0YUluZm8oKS5waW5lPyh0aGlzLl9waW5lU291cmNlQ29kZU1vZGVsfHwodGhpcy5fcGluZVNvdXJjZUNvZGVNb2RlbD1uZXcgTS5Bc3luY1Jlc291cmNlV3JhcHBlcihQcm9taXNlLmFsbChbcy5lKDQyMDk2KSxzLmUoMjQxMDgpXSkudGhlbihzLmJpbmQocyw0ODMzNjApKS50aGVuKChlPT50aGlzLl9pc0Rlc3Ryb3llZD9udWxsOm5ldyBlLlBpbmVTdHJhdGVneVNvdXJjZUNvZGVNb2RlbCh0aGlzKSkpLChlPT57ZT8uZGVzdHJveSgpfSkpKSx0aGlzLl9waW5lU291cmNlQ29kZU1vZGVsLnByb21pc2UoKSk6UHJvbWlzZS5yZXNvbHZlKG51bGwpfV9vbkRhdGEoZSl7ZS5tZXRob2QmJiJkYXRhX3VwZGF0ZSIhPT1lLm1ldGhvZCYmdGhpcy53YXRjaGVkRGF0YS5zZXRWYWx1ZSh7bWV0aG9kOmUubWV0aG9kfSksc3VwZXIuX29uRGF0YShlKX1fb25EYXRhVXBkYXRlZChlLHQscyxuKXtsZXQgbz10JiYhdC5pbmRleGVzX3JlcGxhY2UmJnQuZGF0YSYmdC5kYXRhLnJlcG9ydDtpZihvKXtjb25zdCBlPSEoMCxpLmRlZmF1bHQpKG8uYWN0aXZlT3JkZXJzLHRoaXMuX3JlcG9ydERhdGE/LmFjdGl2ZU9yZGVycykscz0hKDAsaS5kZWZhdWx0KShvLmZpbGxlZE9yZGVycyx0aGlzLl9yZXBvcnREYXRhPy5maWxsZWRPcmRlcnMpLG49ISgwLGkuZGVmYXVsdCkoby5wb3NpdGlvbix0aGlzLl9yZXBvcnREYXRhPy5wb3NpdGlvbik7dCYmIXQuaW5kZXhlc19yZXBsYWNlJiZ0LmlzVXBkYXRlJiZ0aGlzLl9yZXBvcnREYXRhQnVmZmVyJiYobz17Li4udGhpcy5fcmVwb3J0RGF0YUJ1ZmZlciwuLi5vfSksdGhpcy5fcmVwb3J0RGF0YT17Li4udGhpcy5fcmVwb3J0RGF0YUJ1ZmZlciwuLi5vfSx0aGlzLl9yZXBvcnREYXRhQnVmZmVyPXRoaXMuX3JlcG9ydERhdGEsdGhpcy53YXRjaGVkRGF0YS5zZXRWYWx1ZSh7bWV0aG9kOiJkYXRhX3VwZGF0ZSIsbm9uU2VyaWVzRGF0YTooMCxyLmVuc3VyZU5vdE51bGwpKHQpfSksdGhpcy5fcmVwb3J0Q2hhbmdlZC5maXJlKHthY3RpdmVPcmRlcnNDaGFuZ2VkOmUsZmlsbGVkT3JkZXJzQ2hhbmdlZDpzLHBvc2l0aW9uQ2hhbmdlZDpufSl9ZWxzZSB0aGlzLndhdGNoZWREYXRhLnNldFZhbHVlKHttZXRob2Q6ImRhdGFfdXBkYXRlIixub25TZXJpZXNEYXRhOntpbmRleGVzX3JlcGxhY2U6ITEsZGF0YTp7cmVwb3J0OnRoaXMuX3JlcG9ydERhdGFCdWZmZXJ9fX0pO2NvbnN0IGE9ISghdHx8IXQuaW5kZXhlc19yZXBsYWNlKTsoIm5vY2hhbmdlIiE9PXMmJnMubGVuZ3RoPjB8fCh0aGlzLl9yZXBvcnREYXRhPy5maWxsZWRPcmRlcnM/Lmxlbmd0aD8/MCkhPT10aGlzLl9iYXJzSW5kZXhlcy5sZW5ndGgpJiYob3x8YSkmJnRoaXMuX2NvbGxhdGVCYXJzSW5kZXhlcyhBcnJheS5pc0FycmF5KHMpP3M6dGhpcy5fc3JjQmFyc0luZGV4ZXMpLHN1cGVyLl9vbkRhdGFVcGRhdGVkKGUsdCxzLG4pfV9jcmVhdGVWaWV3cygpe3N1cGVyLl9jcmVhdGVWaWV3cygpLHRoaXMuX3N0cmF0ZWd5T3JkZXJzUGFuZVZpZXc9bmV3IEUodGhpcyx0aGlzLl9zZXJpZXMsdGhpcy5fbW9kZWwpfV90aXRsZUlucHV0cyhlLHQscyl7cmV0dXJuIHRoaXMuaW5wdXRzKHtzeW1ib2xzRm9yRGlzcGxheTohMCxza2lwSGlkZGVuSW5wdXRzOiEwLHNraXBGYWtlSW5wdXRzOiExLGZha2VJbnB1dHNGb3JEaXNwbGF5OiEwLGFzT2JqZWN0OiEwLHNraXBwZWRHcm91cHM6ayxub0V4Y2hhbmdlczp0LGRpc3BsYXlNYXNrOmV9KX1fZ2V0VGVsZW1ldHJ5T2JqZWN0TmFtZSgpe3JldHVybiJzdHJhdGVneSJ9X2NvbGxhdGVCYXJzSW5kZXhlcyhlKXt0aGlzLl9zcmNCYXJzSW5kZXhlcz1lCjtjb25zdCB0PXRoaXMuX3JlcG9ydERhdGE/LmZpbGxlZE9yZGVycztpZih0JiZ0Lmxlbmd0aCl7dGhpcy5fYmFyc0luZGV4ZXMubGVuZ3RoPTA7Zm9yKGxldCBzPTA7czx0Lmxlbmd0aDtzKyspdGhpcy5fYmFyc0luZGV4ZXNbc109ZVt0W3NdLnRtXX19X3Byb2Nlc3NDaGFuZ2VWaXNpYmlsaXR5KGUpe2NvbnN0IHQ9ITA9PT1lPzI6MDt0aGlzLmlzU291cmNlSGlkZGVuKCk/dGhpcy5tb2RlbCgpLnJlbW92ZVN0cmF0ZWd5U291cmNlKHRoaXMsdCk6dGhpcy5tb2RlbCgpLmFkZFN0cmF0ZWd5U291cmNlKHRoaXMsdCl9fX0sOTYwOTYyKGUsdCxzKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gaShlKXtyZXR1cm4ibnVtYmVyIj09dHlwZW9mIGUmJmlzRmluaXRlKGUpfXMuZCh0LHtoYXNOdW1iZXI6KCk9Pml9KX0sMjQxNTMyKGUpe2UuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxOCAxOCIgd2lkdGg9IjE4IiBoZWlnaHQ9IjE4IiBmaWxsPSJub25lIj48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGQ9Ik03LjYzNSAzLjEzNUE3IDcgMCAwIDEgMTYgMTAuMDAxaC0xYTYuMDAzIDYuMDAzIDAgMCAwLTcuMTctNS44ODVBNiA2IDAgMCAwIDkgMTZ2MUE3LjAwMSA3LjAwMSAwIDAgMSA0LjA1IDUuMDVhNyA3IDAgMCAxIDMuNTg1LTEuOTE2TTE0IDE0LjAwMWgydjFoLTJ2MmgtMXYtMmgtMnYtMWgydi0yaDF6bS00LTNIN3YtMWgyVjdoMXpNNC44MzYgMS42OTdsLTMuNjIgMy43MTZMLjUgNC43MTYgNC4xMiAxem0xMi42NjEgMy4wMTgtLjcxNy42OTgtMy42MTktMy43MTYuNzE3LS42OTh6Ii8+PC9zdmc+J30sMTg2OTgzKGUpe2UuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxOCAxOCIgd2lkdGg9IjE4IiBoZWlnaHQ9IjE4IiBmaWxsPSJub25lIj48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGQ9Ik05IDVhNS41IDUuNSAwIDEgMSAwIDExQTUuNSA1LjUgMCAwIDEgOSA1bS0uNSA1SDZ2MS41aDRWN0g4LjV6TTYuMDAyIDMuMDYzIDIuMDYgNi45OTUgMSA1LjkzMyA0Ljk0MyAyem0xMSAyLjg3LTEuMDYgMS4wNjJMMTIgMy4wNjMgMTMuMDU5IDJ6Ii8+PC9zdmc+J30sNDM1MjczKGUpe2UuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxOCAxOCIgd2lkdGg9IjE4IiBoZWlnaHQ9IjE4Ij48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGQ9Ik0xMi41NyA1LjVoLS4wN2EzLjUgMy41IDAgMSAwIC4wNyA3QTQuOTggNC45OCAwIDAgMSA0IDlhNSA1IDAgMCAxIDguNTctMy41eiIvPjwvc3ZnPid9LDU1MTQzMChlKXtlLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMTggMTgiIHdpZHRoPSIxOCIgaGVpZ2h0PSIxOCI+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBkPSJNMTIuMjIgMTEuNzhBMy40NyAzLjQ3IDAgMCAwIDkgNi45OGEzLjQ4IDMuNDggMCAwIDAtMy4yMiA0LjggNi45NyA2Ljk3IDAgMCAxIDYuNDQgMHpNNC4xOCA5LjgzTDIuMSA5LjI4bC4zMy0xLjI0IDIuMDcuNTUtLjMzIDEuMjR6TTYuMzggNi4zNmwtLjktMS45NCAxLjE2LS41NC45IDEuOTQtMS4xNi41NHpNMTAuNDYgNS44MmwuOS0xLjk0IDEuMTYuNTQtLjkgMS45NC0xLjE2LS41NHpNMTMuNDkgOC42bDIuMDctLjU2LjMzIDEuMjQtMi4wNy41NS0uMzMtMS4yNHoiLz48L3N2Zz4nfSwyNDEyMjMoZSl7ZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDI4IDI4IiB3aWR0aD0iMjgiIGhlaWdodD0iMjgiPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZD0iTTI0LjUgMTRBMTAuNSAxMC41IDAgMSAwIDE0IDI0LjVWMjZhMTIgMTIgMCAxIDEgMC0yNCAxMiAxMiAwIDAgMSAwIDI0di0xLjVjNS44IDAgMTAuNS00LjcgMTAuNS0xMC41Ii8+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBkPSJNMTcuMyAxNEE0LjMgNC4zIDAgMCAwIDEzIDkuN2gtMS4zdjguNkgxM1YyMGgtM1Y4aDNhNiA2IDAgMCAxIC4zIDEySDEzdi0xLjdhNC4zIDQuMyAwIDAgMCA0LjMtNC4zIi8+PC9zdmc+J30sMzUzMjA2KGUpe2UuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyOCAyOCIgd2lkdGg9IjI4IiBoZWlnaHQ9IjI4Ij48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGQ9Ik0yMyAzYTIgMiAwIDAgMSAyIDJ2MThhMiAyIDAgMCAxLTEuOCAxLjk5TDIzIDI1SDVsLS4yLS4wMUEyIDIgMCAwIDEgMyAyMy4yTDMgMjN2LTYuMDhjLjQ5LjA1Ljk4LjMyIDEuNS41OFYyM2MwIC4yOC4yMi41LjUuNWgxOGEuNS41IDAgMCAwIC41LS41VjVhLjUuNSAwIDAgMC0uNS0uNUg1YS41LjUgMCAwIDAtLjUuNXY1LjVBNCA0IDAgMCAwIDMgMTBWNWMwLTEuMS45LTIgMi0yeiIvPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZD0iTTYuMSAxNi45NmMtMS4xOSAwLTIuMjQtMS4wOC0zLjI1LTEuMDhxLTEuMjMuMDItMS44NS44NVYxNS4xYTIuNCAyLjQgMCAwIDEgMS45LS44NWMxLjE5IDAgMi4yNCAxLjA5IDMuMjUgMS4wOXExLjIyLS4wMiAxLjg1LS44NXYxLjYyYy0uNC40Ny0xLjA0Ljg0LTEuOS44NE02LjEgMTMuN2MtMS4xOSAwLTIuMjQtMS4wOC0zLjI1LTEuMDhxLTEuMjMuMDItMS44NS44NHYtMS42MUEyLjQgMi40IDAgMCAxIDIuOSAxMWMxLjE5IDAgMi4yNCAxLjA5IDMuMjUgMS4wOS44MSAwIDEuNDQtLjMyIDEuODUtLjg1djEuNjFjLS40LjQ4LTEuMDQuODUtMS45Ljg1TTExIDIwVjloNi41djEuN2gtNC44djIuOTVoMy44djEuN2gtMy44djIuOTVoNC44VjIweiIvPjwvc3ZnPid9LDUzNjkyKGUpewplLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMjggMjgiIHdpZHRoPSIyOCIgaGVpZ2h0PSIyOCI+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBkPSJNMjMgMjMuNVYyNUg1di0xLjV6bS41LS41VjVhLjUuNSAwIDAgMC0uNS0uNUg1YS41LjUgMCAwIDAtLjUuNXYxOGMwIC4yOC4yMi41LjUuNVYyNWwtLjItLjAxQTIgMiAwIDAgMSAzIDIzLjJMMyAyM1Y1YzAtMS4xLjktMiAyLTJoMThhMiAyIDAgMCAxIDIgMnYxOGEyIDIgMCAwIDEtMS44IDEuOTlMMjMgMjV2LTEuNWEuNS41IDAgMCAwIC41LS41Ii8+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBkPSJNMTEgMjBWOWg2LjV2MS43aC00Ljh2Mi45NWgzLjh2MS43aC0zLjh2Mi45NWg0LjhWMjB6Ii8+PC9zdmc+J30sNTUyMDg0KGUpe2UuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyOCAyOCIgd2lkdGg9IjI4IiBoZWlnaHQ9IjI4Ij48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGQ9Ik01IDMuNVYyaDE4djEuNXptLS41LjV2MTQuMjNxLjAxLjI3LjIzLjQybDkgNS43N2MuMTYuMS4zNy4xLjU0IDBsOS01Ljc3YS41LjUgMCAwIDAgLjIzLS40MlY0YS41LjUgMCAwIDAtLjUtLjVWMmwuMi4wMWEyIDIgMCAwIDEgMS44IDJ2MTQuMjJhMiAyIDAgMCAxLS44MiAxLjYxbC0uMS4wNy05IDUuNzdhMiAyIDAgMCAxLTIuMTYgMGwtOS01Ljc3QTIgMiAwIDAgMSAzIDE4LjIzVjRhMiAyIDAgMCAxIDEuOC0xLjk5SDV2MS41YS41LjUgMCAwIDAtLjUuNSIvPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZD0iTTExIDE4VjdoNi41djEuN2gtNC44djIuOTVoMy44djEuN2gtMy44djIuOTVoNC44VjE4eiIvPjwvc3ZnPid9LDMwNzcwOChlKXtlLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMjggMjgiIHdpZHRoPSIyOCIgaGVpZ2h0PSIyOCI+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBkPSJNMjMgMjQuNVYyNkg1di0xLjV6bS41LS41VjkuNzhhLjUuNSAwIDAgMC0uMjMtLjQzbC05LTUuNzdhLjUuNSAwIDAgMC0uNTQgMGwtOSA1Ljc3YS41LjUgMCAwIDAtLjIzLjQzVjI0YzAgLjI4LjIyLjUuNS41VjI2bC0uMi0uMDFBMiAyIDAgMCAxIDMgMjRWOS43OGEyIDIgMCAwIDEgLjgyLTEuNjJsLjEtLjA3IDktNS43N2EyIDIgMCAwIDEgMi4xNiAwbDkgNS43N0EyIDIgMCAwIDEgMjUgOS43N1YyNGEyIDIgMCAwIDEtMiAydi0xLjVhLjUuNSAwIDAgMCAuNS0uNSIvPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZD0iTTExIDIxVjEwaDYuNXYxLjdoLTQuOHYyLjk1aDMuOHYxLjdoLTMuOHYyLjk1aDQuOFYyMXoiLz48L3N2Zz4nfSw3NTI3MihlKXtlLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMjggMjgiIHdpZHRoPSIyOCIgaGVpZ2h0PSIyOCI+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBkPSJNMjQuNSAxNEExMC41IDEwLjUgMCAxIDAgMTQgMjQuNVYyNmExMiAxMiAwIDEgMSAwLTI0IDEyIDEyIDAgMCAxIDAgMjR2LTEuNWM1LjggMCAxMC41LTQuNyAxMC41LTEwLjUiLz48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGQ9Ik0yMS4xIDE0LjAzIDE3LjA1IDEwIDE2IDExLjA2bDIuMjIgMi4yMmgtNS4zOEw4LjU2IDkgNy41IDEwLjA2bDQuNzIgNC43Mmg2TDE2IDE3bDEuMDYgMS4wNnpNMTAgMTVsLTMgMyAxLjA2IDEuMDYgMy0zeiIvPjwvc3ZnPid9LDY5MTk4KGUpe2UuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyOCAyOCIgd2lkdGg9IjI4IiBoZWlnaHQ9IjI4Ij48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGQ9Ik0yNC41IDE0QTEwLjUgMTAuNSAwIDEgMCAxNCAyNC41VjI2YTEyIDEyIDAgMSAxIDAtMjQgMTIgMTIgMCAwIDEgMCAyNHYtMS41YzUuOCAwIDEwLjUtNC43IDEwLjUtMTAuNSIvPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZD0iTTEzLjk5IDhxMS4xNCAwIDEuOTcuNDNBMy4zIDMuMyAwIDAgMSAxNy43OCAxMUgxNnEtLjEtLjMtLjI5LS41NWEyIDIgMCAwIDAtLjctLjU0IDMgMyAwIDAgMC0xLjAzLS4ycS0uNTcgMC0xIC4yLS40NS4xOS0uNy41NGExLjQgMS40IDAgMCAwLS4yNS44NHEwIC40LjE4LjcyLjIuMy41OC41My40LjIyIDEuMDQuMzdsMS4xLjI2cTEuMDkuMjYgMS43Ni42OC42Ny40MSAxIDEuMDQuMy42MS4zMSAxLjQ5IDAgMS4xMy0uNDkgMS45Mi0uNDguODEtMS4zOSAxLjI2VDE0IDIwcS0xLjIgMC0yLjA4LS40MUEzLjI4IDMuMjggMCAwIDEgMTAgMTdoMS44cS4wOS4zLjMuNTMuMy4zNi44LjU2YTMuMSAzLjEgMCAwIDAgMi4yNS0uMDFxLjQ4LS4yMi43NS0uNi4yNy0uMzYuMjctLjg2di0uMDFxMC0uNjItLjQ0LTFhMyAzIDAgMCAwLTEuNDMtLjY0bC0xLjEtLjI1cS0xLjA1LS4yNS0xLjcxLS43dC0uOTgtMS4xcS0uMzItLjY1LS4zMi0xLjQ5IDAtMS4wNC40OS0xLjguNDgtLjc2IDEuMzQtMS4yQTQgNCAwIDAgMSAxNCA4Ii8+PC9zdmc+J319XSk7"}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/33735.2cb844ad2b0f3c892162.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:12.973Z","timestamp":1785148032973,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/33735.2cb844ad2b0f3c892162.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:12 GMT\r\ncontent-type: text/css; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a3e1907-eb6\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Fri, 26 Jun 2026 06:15:35 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.57\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 06/26/2026 11:13:50\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 349b846839a8e2cb0d6a8a6efa042a84\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":3766,"size_decoded":1923,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with very long lines (3766), with no line terminators","md5":"c9433cd2c494e00bc1f5eeb71eecd363","sha1":"da37ba6947ef271416292a4bec7fd80696864e22","sha256":"83f03dfc765b467ce1c567e7c09720d3c654d84ee9ac41c94804ee40cd808af1","sha512":"b29c41b6ced30e594e30b98862f24c8824d4187d5bda612574fadeeb13c4f440d1f30c411d3803c9cd32479fbfabde86b44bc5257aa1f4144bacfc414d897a15","ssdeep":"","tlshash":"9e71001176a6973cfb279620c2a27daeb38ca9207b4f0ef99d0751740ace3d67071489","first_seen":"2026-06-26T14:56:44.439294Z","last_seen":"2026-07-27T12:53:06.233449Z","times_seen":728,"resource_available":false,"data":"Ym9keXtvdmVyZmxvdy15OnNjcm9sbH0udHYtbGF5b3V0LXdpZHRoe2JveC1zaXppbmc6Ym9yZGVyLWJveDttYXJnaW46MCBhdXRvO3BhZGRpbmc6MCAyMHB4O3dpZHRoOjEwMjBweH0udHYtbGF5b3V0LXdpZHRoLS1uby1wYWRkaW5ne3BhZGRpbmc6MDt3aWR0aDo5ODBweH0udHYtbGF5b3V0LXdpZHRoLS1zaW1wbGV7cGFkZGluZzowfS50di1kaWFsb2cgLnR2LWxheW91dC13aWR0aHttYXgtd2lkdGg6MTAwJX0uY2hhcnQtcGFnZSAudHYtbGF5b3V0LXdpZHRoe3dpZHRoOjEwMCV9QG1lZGlhIChtYXgtd2lkdGg6MTAxOXB4KXsudHYtbGF5b3V0LXdpZHRoe3dpZHRoOmF1dG99LnR2LWxheW91dC13aWR0aCAudHYtZmVlZHttYXJnaW4taW5saW5lLWVuZDotMjBweDttYXJnaW4taW5saW5lLXN0YXJ0Oi0yMHB4fS50di1sYXlvdXQtd2lkdGggLnR2LWZlZWQtLXRhYmxldC10b3AtaW5kZW50e21hcmdpbi10b3A6NDhweH19LnR2LWxheW91dC13aWR0aC5mdWxsLXdpZHRoLWxheW91dCxib2R5LnBhZ2Utd2lkZSAudHYtbGF5b3V0LXdpZHRoLmZ1bGwtd2lkdGgtbGF5b3V0e3dpZHRoOmF1dG87LS1hZGFwdGl2ZS1tZi1jb250YWluZXItcGFkZGluZzpjYWxjKHZhcigtLXNpZGUtZ2FwLW1vZGUtYWRhcHRpdmUsIDEpKjIwcHggKyB2YXIoLS1zaWRlLWdhcC1tb2RlLWZpeGVkLCAwKSoyMHB4KTstLWFkYXB0aXZlLW1mLWNvbnRhaW5lci1tYXgtd2lkdGg6MjM2MHB4O2JveC1zaXppbmc6aW5pdGlhbDtwYWRkaW5nLWlubGluZS1lbmQ6dmFyKC0tYWRhcHRpdmUtbWYtY29udGFpbmVyLXBhZGRpbmcpO3BhZGRpbmctaW5saW5lLXN0YXJ0OnZhcigtLWFkYXB0aXZlLW1mLWNvbnRhaW5lci1wYWRkaW5nKX1AbWVkaWEgKG1pbi13aWR0aDoxMDI0cHgpey50di1sYXlvdXQtd2lkdGguZnVsbC13aWR0aC1sYXlvdXQsYm9keS5wYWdlLXdpZGUgLnR2LWxheW91dC13aWR0aC5mdWxsLXdpZHRoLWxheW91dHstLWFkYXB0aXZlLW1mLWNvbnRhaW5lci1wYWRkaW5nOmNhbGModmFyKC0tc2lkZS1nYXAtbW9kZS1hZGFwdGl2ZSwgMSkqMzJweCArIHZhcigtLXNpZGUtZ2FwLW1vZGUtZml4ZWQsIDApKjIwcHgpfX1AbWVkaWEgKG1pbi13aWR0aDoxNDQwcHgpey50di1sYXlvdXQtd2lkdGguZnVsbC13aWR0aC1sYXlvdXQsYm9keS5wYWdlLXdpZGUgLnR2LWxheW91dC13aWR0aC5mdWxsLXdpZHRoLWxheW91dHstLWFkYXB0aXZlLW1mLWNvbnRhaW5lci1wYWRkaW5nOmNhbGModmFyKC0tc2lkZS1nYXAtbW9kZS1hZGFwdGl2ZSwgMSkqNDBweCArIHZhcigtLXNpZGUtZ2FwLW1vZGUtZml4ZWQsIDApKjIwcHgpfX1AbWVkaWEgKG1pbi13aWR0aDoxOTIwcHgpey50di1sYXlvdXQtd2lkdGguZnVsbC13aWR0aC1sYXlvdXQsYm9keS5wYWdlLXdpZGUgLnR2LWxheW91dC13aWR0aC5mdWxsLXdpZHRoLWxheW91dHstLWFkYXB0aXZlLW1mLWNvbnRhaW5lci1wYWRkaW5nOmNhbGModmFyKC0tc2lkZS1nYXAtbW9kZS1hZGFwdGl2ZSwgMSkqMTAwcHggKyB2YXIoLS1zaWRlLWdhcC1tb2RlLWZpeGVkLCAwKSoyMHB4KX19QG1lZGlhIChtaW4td2lkdGg6MjU2MHB4KXsudHYtbGF5b3V0LXdpZHRoLmZ1bGwtd2lkdGgtbGF5b3V0LGJvZHkucGFnZS13aWRlIC50di1sYXlvdXQtd2lkdGguZnVsbC13aWR0aC1sYXlvdXR7LS1hZGFwdGl2ZS1tZi1jb250YWluZXItcGFkZGluZzpjYWxjKHZhcigtLXNpZGUtZ2FwLW1vZGUtYWRhcHRpdmUsIDEpKigxMDB2dyAtIHZhcigtLWFkYXB0aXZlLW1mLWNvbnRhaW5lci1tYXgtd2lkdGgpKS8yICsgdmFyKC0tc2lkZS1nYXAtbW9kZS1maXhlZCwgMCkqMjBweCk7bWFyZ2luLWlubGluZS1lbmQ6YXV0bzttYXJnaW4taW5saW5lLXN0YXJ0OmF1dG87bWF4LXdpZHRoOnZhcigtLWFkYXB0aXZlLW1mLWNvbnRhaW5lci1tYXgtd2lkdGgpfX0uZmlsdGVyLWlkZWFzLWJ1dHRvbi13aXRoLXBhZGRpbmd7cGFkZGluZy1pbmxpbmU6NXB4fS50di1sYXlvdXQtcGFkZGluZ3twYWRkaW5nOjAgMjBweH1ib2R5LnBhZ2Utd2lkZSAudHYtbGF5b3V0LXdpZHRoe3dpZHRoOjE1MjBweH0udHYtbWFpbixib2R5LnBhZ2UtZnVsbHdpZHRoIC50di1sYXlvdXQtd2lkdGh7d2lkdGg6MTAwJX0udHYtbWFpbntkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO21pbi1oZWlnaHQ6MTAwJX0uY2xlYXJ7Y2xlYXI6Ym90aH0uY2xlYXJmaXg6YWZ0ZXJ7Y2xlYXI6Ym90aDtjb250ZW50OiIiO2Rpc3BsYXk6dGFibGV9LmhpZGV7ZGlzcGxheTpub25lIWltcG9ydGFudH0uc2hvd3tkaXNwbGF5OmJsb2NrIWltcG9ydGFudH0udHYtcmlnaHR7ZmxvYXQ6aW5saW5lLWVuZCFpbXBvcnRhbnR9LnR2LWxlZnR7ZmxvYXQ6aW5saW5lLXN0YXJ0IWltcG9ydGFudH0udHYtY29udGVudHtmbGV4OjEgMCBhdXRvfS50di1jb250ZW50X19jb250ZW50LWJsb2Nre3BhZGRpbmc6NzBweCAwfS50di1mZWVke21hcmdpbjo0OHB4IC0xMHB4O21pbi1oZWlnaHQ6NTAwcHh9LnR2LWZlZWQ6YWZ0ZXJ7Y2xlYXI6Ym90aDtjb250ZW50OiIiO2Rpc3BsYXk6dGFibGV9LnR2LWZlZWQtLW5vLW1pbi1oZWlnaHR7bWluLWhlaWdodDphdXRvfS50di1mZWVkLS1uby1oaW5kZW50e21hcmdpbi1pbmxpbmUtZW5kOjA7bWFyZ2luLWlubGluZS1zdGFydDowfUBtZWRpYSAobWF4LXdpZHRoOjEwMTlweCl7LnR2LWZlZWR7bWFyZ2luOjAgMCA0OHB4fX1AbWVkaWEgKG1heC13aWR0aDo3NjdweCl7LnR2LWZlZWR7bWFyZ2luOjB9fS50di1mZWVkLS1uby12ZXJ0aWNhbC1tYXJnaW57bWFyZ2luLWJvdHRvbTowO21hcmdpbi10b3A6MH0udHYtZmVlZF9fZW1wdHl7Y2xlYXI6Ym90aDtjb2xvcjp2YXIoLS1jb2xvci10ZXh0LXNlY29uZGFyeSk7ZmxleDoxIDEgYXV0bztmb250LXNpemU6MjBweDtwYWRkaW5nOjEwMHB4IDA7dGV4dC1hbGlnbjpjZW50ZXI7LXdlYmtpdC11c2VyLXNlbGVjdDpub25lO3VzZXItc2VsZWN0Om5vbmV9LnR2LWZlZWRfX2l0ZW17Zm9udC1zaXplOjEzcHg7bWFyZ2luLWJvdHRvbToyMHB4O3BhZGRpbmc6MCAxMHB4O3dpZHRoOjQ4MHB4fS50di1mZWVkX19pdGVtLS13aWR0aF90d28tY29sdW1uc3t3aWR0aDo5ODBweH0udHYtZmVlZF9faXRlbS0td2lkdGhfZnVsbHtib3gtc2l6aW5nOmJvcmRlci1ib3g7d2lkdGg6MTAwJX0udHYtZmVlZF9faXRlbS0td2lkdGhfaGFsZntib3gtc2l6aW5nOmJvcmRlci1ib3g7ZmxvYXQ6aW5saW5lLXN0YXJ0O3dpZHRoOjUwJX1AbWVkaWEgKG1heC13aWR0aDoxMDE5cHgpey50di1mZWVkX19pdGVte21hcmdpbi1ib3R0b206MTBweDtwYWRkaW5nOjA7d2lkdGg6MTAwJX0udHYtZmVlZF9faXRlbTpsYXN0LW9mLXR5cGV7Ym9yZGVyLWJvdHRvbTpub25lfX0udHYtZmVlZF9fc2VjdGlvbi10aXRsZXthbGlnbi1pdGVtczpjZW50ZXI7ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVufUBtZWRpYSAobWF4LXdpZHRoOjEwMTlweCl7LnR2LWZlZWRfX3NlY3Rpb24tdGl0bGV7YWxpZ24taXRlbXM6YmFzZWxpbmU7bWFyZ2luLWlubGluZS1zdGFydDoxMnB4fX1bZGF0YS10aGVtZT1saWdodF17LS1fMC1oN0RNOiNkOWRhZGJ9W2RhdGEtdGhlbWU9ZGFya117LS1fMC1oN0RNOnZhcigtLWNvbG9yLWNvbGQtZ3JheS03NTApfWJvZHksaHRtbHtiYWNrZ3JvdW5kOm5vbmU7aGVpZ2h0OjEwMCU7bWluLXdpZHRoOjI0MHB4O292ZXJmbG93OmhpZGRlbjt3aWR0aDoxMDAlfWJvZHl7Ym9yZGVyOjFweCBzb2xpZDtib3JkZXItY29sb3I6dmFyKC0tXzAtaDdETSk7Ym9yZGVyLXJhZGl1czozcHg7Ym94LXNpemluZzpib3JkZXItYm94fQ=="}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/65862.95764752c09f3f18f890.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:12.995Z","timestamp":1785148032995,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/65862.95764752c09f3f18f890.js HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:13 GMT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a632877-8593\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Fri, 24 Jul 2026 08:55:19 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/24/2026 10:31:23\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 16d9afad619c471929adc20004e22b56\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":34195,"size_decoded":11853,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, Unicode text, UTF-8 text, with very long lines (13834)","md5":"d5f37343643dde0b01c1d10dbbdb91df","sha1":"acf466d1f2aaa1c4e577a663cc0c197647ff1b0c","sha256":"ad4421c24189dacdd5b62aa07485176e838543c7e572a23a90b2e5d70b28c982","sha512":"b6fba60ec4a7056bdda7602c545749c4b49d93c597e471e20f312b470a5c949b390f959900f2267b02646d6ce1c6f9fcd1ebddb7b4fbc2383344305b5179923d","ssdeep":"768:8HXyKsaOA/R4POygg6FUOaovTBa81zNh3h6kIRdnNy84MnxbDE3xZwDZscCDjvFR:OWgDagTBa0zNhRIRdnNy84y4BZw1FCHz","tlshash":"41e2e892aa135c331ed5176ad87b3902d1d80679f5863c68bdf858de0d8dac070f355e","first_seen":"2026-07-24T11:36:47.857631Z","last_seen":"2026-07-27T13:00:41.436108Z","times_seen":1553,"resource_available":true,"data":"InVzZSBzdHJpY3QiOyhzZWxmLndlYnBhY2tDaHVua3RyYWRpbmd2aWV3PXNlbGYud2VicGFja0NodW5rdHJhZGluZ3ZpZXd8fFtdKS5wdXNoKFtbNjU4NjJdLHszNzcyMjYoZSx0LG8pe28uZCh0LHtvbldpZGdldDooKT0+c30pO2NvbnN0IHI9bmV3IE1hcDtmdW5jdGlvbiBzKCl7Y29uc3QgZT13aW5kb3cubG9jYXRpb24ucGF0aG5hbWUsdD13aW5kb3cubG9jYXRpb24uaG9zdCxvPWAke3R9JHtlfWA7cmV0dXJuIHIuaGFzKG8pfHxyLnNldChvLGZ1bmN0aW9uKGUsdCl7Y29uc3Qgbz1bIl53aWRnZXQtZG9jcyJdO2Zvcihjb25zdCBlIG9mIG8paWYobmV3IFJlZ0V4cChlKS50ZXN0KHQpKXJldHVybiEwO2NvbnN0IHI9WyJed2lkZ2V0ZW1iZWQvPyQiLCJeY21ld2lkZ2V0ZW1iZWQvPyQiLCJeKFswLTlhLXpBLVotXSspL3dpZGdldGVtYmVkLz8kIiwiXihbMC05YS16QS1aLV0rKS93aWRnZXRzdGF0aWMvPyQiLCJeKFswLTlhLXpBLVotXSspPy8/bWVkaXVtd2lkZ2V0ZW1iZWQvPyQiLCJedHdpdHRlci1jaGFydC8/JCIsIl50ZWxlZ3JhbS9jaGFydC8/JCIsIl5lbWJlZC8oWzAtOWEtekEtWl17OH0pLz8kIiwiXndpZGdldHBvcHVwLz8kIiwiXmV4dGVuc2lvbi8/JCIsIl5pZGVhLXBvcHVwLz8kIiwiXmhvdGxpc3Rzd2lkZ2V0ZW1iZWQvPyQiLCJeKFswLTlhLXpBLVotXSspL2hvdGxpc3Rzd2lkZ2V0ZW1iZWQvPyQiLCJebWFya2V0b3ZlcnZpZXd3aWRnZXRlbWJlZC8/JCIsIl4oWzAtOWEtekEtWi1dKykvbWFya2V0b3ZlcnZpZXd3aWRnZXRlbWJlZC8/JCIsIl5ldmVudHN3aWRnZXRlbWJlZC8/JCIsIl50aWNrZXJzd2lkZ2V0ZW1iZWQvPyQiLCJeZm9yZXhjcm9zc3JhdGVzd2lkZ2V0ZW1iZWQvPyQiLCJeZm9yZXhoZWF0bWFwd2lkZ2V0ZW1iZWQvPyQiLCJebWFya2V0cXVvdGVzd2lkZ2V0ZW1iZWQvPyQiLCJec2NyZWVuZXJ3aWRnZXQvPyQiLCJeY3J5cHRvbWt0c2NyZWVuZXJ3aWRnZXQvPyQiLCJeKFswLTlhLXpBLVotXSspL2NyeXB0b21rdHNjcmVlbmVyd2lkZ2V0Lz8kIiwiXihbMC05YS16QS1aLV0rKS9tYXJrZXRxdW90ZXN3aWRnZXRlbWJlZC8/JCIsIl50ZWNobmljYWwtYW5hbHlzaXMtd2lkZ2V0LWVtYmVkLyQiLCJec2luZ2xlcXVvdGV3aWRnZXRlbWJlZC8/JCIsIl4oWzAtOWEtekEtWi1dKykvc2luZ2xlcXVvdGV3aWRnZXRlbWJlZC8/JCIsIl5lbWJlZC13aWRnZXQvKFswLTlhLXpBLVotXSspLygoWzAtOWEtekEtWi1dKykvKT8kIiwiXndpZGdldC1kb2NzLyhbMC05YS16QS1aLV0rKS8oWzAtOWEtekEtWi0vXSspPyQiXSxzPWUucmVwbGFjZSgvXlwvLywiIik7bGV0IF87Zm9yKGxldCBlPXIubGVuZ3RoLTE7ZT49MDtlLS0paWYoXz1uZXcgUmVnRXhwKHJbZV0pLF8udGVzdChzKSlyZXR1cm4hMDtyZXR1cm4hMX0oZSx0KSksci5nZXQobyk/PyExfX0sMzAwMjg2KGUsdCxvKXsidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdyYmbmV3IGNsYXNze2NvbnN0cnVjdG9yKGUsdCl7dGhpcy5fdGVzdD1lW3RdPXt9fXByb3ZpZGUoZSx0KXt0aGlzLl90ZXN0W2VdPXR9fSh3aW5kb3csInFhR2xvYmFscyIpfSw1ODc0MzYoZSx0LG8pe2Z1bmN0aW9uIHIoZSx0LG8scixzKXtsZXQgXz0iIjtpZihyPXI/IjsgcGF0aD0iK3I6IiIscz1zPyI7IGRvbWFpbj0iK3M6IiIsbyl7Y29uc3QgZT1uZXcgRGF0ZTtlLnNldFRpbWUoZS5nZXRUaW1lKCkrMjQqbyo2MCo2MCoxZTMpLF89IjsgZXhwaXJlcz0iK2UudG9VVENTdHJpbmcoKX1lbHNlIF89IiI7ZG9jdW1lbnQuY29va2llPWUrIj0iK3QrXytzK3J9ZnVuY3Rpb24gcyhlKXtjb25zdCB0PWUrIj0iLG89ZG9jdW1lbnQuY29va2llLnNwbGl0KCI7Iik7Zm9yKGxldCBlPTA7ZTxvLmxlbmd0aDtlKyspe2xldCByPW9bZV07Zm9yKDsiICI9PT1yLmNoYXJBdCgwKTspcj1yLnN1YnN0cmluZygxLHIubGVuZ3RoKTtpZigwPT09ci5pbmRleE9mKHQpKXJldHVybiByLnN1YnN0cmluZyh0Lmxlbmd0aCxyLmxlbmd0aCl9cmV0dXJuIG51bGx9by5kKHQse2dldDooKT0+cyxzZXQ6KCk9PnJ9KX0sOTQ4MzgwKGUsdCxvKXtvLmQodCx7RGVsZWdhdGU6KCk9Pl99KTtjb25zdCByPSgwLG8oMjIxMDYxKS5nZXRMb2dnZXIpKCJDb21tb24uRGVsZWdhdGUiKTtmdW5jdGlvbiBzKGUpe3JldHVybiFlLnNpbmdsZVNob3R9Y2xhc3MgX3tjb25zdHJ1Y3Rvcigpe3RoaXMuZmlyZT10aGlzLl9maXJlSW1wbC5iaW5kKHRoaXMpLHRoaXMuX2xpc3RlbmVycz1bXX1zdWJzY3JpYmUoZSx0LG8pe3RoaXMuX2xpc3RlbmVycy5wdXNoKHtvYmplY3Q6ZSxtZW1iZXI6dCxzaW5nbGVTaG90OiEhbyxza2lwOiExfSl9dW5zdWJzY3JpYmUoZSx0KXtmb3IobGV0IG89MDtvPHRoaXMuX2xpc3RlbmVycy5sZW5ndGg7KytvKXtjb25zdCByPXRoaXMuX2xpc3RlbmVyc1tvXTtpZihyLm9iamVjdD09PWUmJnIubWVtYmVyPT09dCl7ci5za2lwPSEwLHRoaXMuX2xpc3RlbmVycy5zcGxpY2UobywxKTticmVha319fXVuc3Vic2NyaWJlQWxsKGUpe2ZvcihsZXQgdD10aGlzLl9saXN0ZW5lcnMubGVuZ3RoLTE7dD49MDstLXQpe2NvbnN0IG89dGhpcy5fbGlzdGVuZXJzW3RdO28ub2JqZWN0PT09ZSYmKG8uc2tpcD0hMCx0aGlzLl9saXN0ZW5lcnMuc3BsaWNlKHQsMSkpfX1kZXN0cm95KCl7dGhpcy5fbGlzdGVuZXJzPVtdfV9maXJlSW1wbCguLi5lKXtjb25zdCB0PXRoaXMuX2xpc3RlbmVyczt0aGlzLl9saXN0ZW5lcnM9dGhpcy5fbGlzdGVuZXJzLmZpbHRlcihzKTtjb25zdCBvPXQubGVuZ3RoO2ZvcihsZXQgcz0wO3M8bzsrK3Mpe2NvbnN0IG89dFtzXTtpZighby5za2lwKXRyeXtvLm1lbWJlci5hcHBseShvLm9iamVjdHx8bnVsbCxlKX1jYXRjaChlKXtyLmxvZ0Vycm9yKGAke2UmJihlLnN0YWNrfHxlLm1lc3NhZ2UpfWApfX19fX0sNTM0NDQwKGUsdCxvKXtvLmQodCx7bnVtT2ZEZWNpbWFsUGxhY2VzOigpPT5ffSk7dmFyIHI9byg3MTI3NDUpLHM9by5uKHIpO2Z1bmN0aW9uIF8oZSl7cmV0dXJuKG5ldyhzKCkpKGUpLnRvRml4ZWQoKS5zcGxpdCgiLiIpWzFdfHwiIikubGVuZ3RofX0sMjMyMzY0KGUsdCxvKXtvLmQodCx7V2F0Y2hlZFZhbHVlOigpPT5ffSk7Y29uc3Qgcj0oMCwKbygyMjEwNjEpLmdldExvZ2dlcikoIkNvbW1vbi5XYXRjaGVkVmFsdWUiKTtmdW5jdGlvbiBzKGUpe3IubG9nRXJyb3IoYCR7ZSYmKGUuc3RhY2t8fGUubWVzc2FnZSl9YCl9Y2xhc3MgX3tjb25zdHJ1Y3RvciguLi5lKXt0aGlzLl9saXN0ZW5lcnM9W10sZS5sZW5ndGg+MD90aGlzLl92YWx1ZT1lWzBdOmRlbGV0ZSB0aGlzLl92YWx1ZX1kZXN0cm95KCl7dGhpcy51bnN1YnNjcmliZSgpfXZhbHVlKCl7cmV0dXJuIHRoaXMuX293bmVyP3RoaXMuX293bmVyLl92YWx1ZTp0aGlzLl92YWx1ZX1zZXRWYWx1ZShlLHQpe2NvbnN0IG89dGhpcy5fb3duZXI/dGhpcy5fb3duZXI6dGhpcztpZihvLndyaXRlTG9jaylyZXR1cm47Y29uc3Qgcj1vLl92YWx1ZT09PWV8fE51bWJlci5pc05hTihvLl92YWx1ZSkmJk51bWJlci5pc05hTihlKTtpZighdCYmciYmby5oYXNPd25Qcm9wZXJ0eSgiX3ZhbHVlIikpcmV0dXJuO28uX3ZhbHVlPWU7Y29uc3QgXz1vLl9saXN0ZW5lcnMuc2xpY2UoKTtsZXQgaT0wO2ZvcihsZXQgdD0wO3Q8Xy5sZW5ndGg7dCsrKXtfW3RdLm9uY2UmJihvLl9saXN0ZW5lcnMuc3BsaWNlKHQtaSwxKSxpKyspO3RyeXtfW3RdLmNiKGUpfWNhdGNoKGUpe3MoZSl9fX1kZWxldGVWYWx1ZSgpe3RoaXMuc2V0VmFsdWUodm9pZCAwKX1zdWJzY3JpYmUoZSx0KXtpZigiZnVuY3Rpb24iIT10eXBlb2YgZSl0aHJvdyBuZXcgVHlwZUVycm9yKCJjYWxsYmFjayBtdXN0IGJlIGEgZnVuY3Rpb24iKTtjb25zdCBvPSEhdCYmISF0Lm9uY2Uscj0hIXQmJiEhdC5jYWxsV2l0aExhc3QsXz10aGlzLl9vd25lcj90aGlzLl9vd25lcjp0aGlzO2lmKHImJl8uaGFzT3duUHJvcGVydHkoIl92YWx1ZSIpKXt0cnl7ZShfLl92YWx1ZSl9Y2F0Y2goZSl7cyhlKX1pZihvKXJldHVybn1fLl9saXN0ZW5lcnMucHVzaCh7Y2I6ZSxvd25lcjp0aGlzLG9uY2U6ISF0JiYhIXQub25jZX0pfXVuc3Vic2NyaWJlKGUpe2NvbnN0IHQ9dGhpcy5fb3duZXI/dGhpcy5fb3duZXI6dGhpczt2b2lkIDA9PT1lJiYoZT1udWxsKTtjb25zdCBvPXQuX2xpc3RlbmVycztmb3IobGV0IHI9by5sZW5ndGg7ci0tOylvW3JdLm93bmVyIT09dGhpcyYmdCE9PXRoaXN8fG9bcl0uY2IhPT1lJiZudWxsIT09ZXx8by5zcGxpY2UociwxKX1yZWFkb25seSgpe2lmKHRoaXMuX3JlYWRvbmx5SW5zdGFuY2UpcmV0dXJuIHRoaXMuX3JlYWRvbmx5SW5zdGFuY2U7Y29uc3QgZT17c3Vic2NyaWJlOnRoaXMuc3Vic2NyaWJlLmJpbmQodGhpcyksdW5zdWJzY3JpYmU6dGhpcy51bnN1YnNjcmliZS5iaW5kKHRoaXMpLHZhbHVlOnRoaXMudmFsdWUuYmluZCh0aGlzKSx3aGVuOnRoaXMud2hlbi5iaW5kKHRoaXMpLG93bmVyc2hpcDp0aGlzLm93bmVyc2hpcC5iaW5kKHRoaXMpLHNwYXduT3duZXJzaGlwOnRoaXMuc3Bhd25Pd25lcnNoaXAuYmluZCh0aGlzKSx3ZWFrUmVmZXJlbmNlOnRoaXMud2Vha1JlZmVyZW5jZS5iaW5kKHRoaXMpLHNwYXduOmU9PnRoaXMuc3Bhd24oZSkucmVhZG9ubHkoKSxkZXN0cm95OnRoaXMuZGVzdHJveS5iaW5kKHRoaXMpfTtyZXR1cm4gdGhpcy5fcmVhZG9ubHlJbnN0YW5jZT1lLGV9c3Bhd24oZSl7cmV0dXJuIHRoaXMuX3NwYXduKGUpfXdoZW4oZSl7IWZ1bmN0aW9uKGUsdCxvKXtpZih0KGUudmFsdWUoKSkpcmV0dXJuIHZvaWQgbygpO2NvbnN0IHI9cz0+e3QocykmJihlLnVuc3Vic2NyaWJlKHIpLG8oKSl9O2Uuc3Vic2NyaWJlKHIse2NhbGxXaXRoTGFzdDohMH0pfSh0aGlzLChlPT5Cb29sZWFuKGUpKSwoKCk9Pnt0cnl7ZSh0aGlzLnZhbHVlKCkpfWNhdGNoKGUpe3MoZSl9fSkpfWFzc2VydE5vU3Vic2NyaXB0aW9ucygpezB9b3duZXJzaGlwKCl7cmV0dXJuIHRoaXN9cmVsZWFzZSgpe3RoaXMuZGVzdHJveSgpfXNwYXduT3duZXJzaGlwKCl7cmV0dXJuIHRoaXMuX3NwYXduKCl9d2Vha1JlZmVyZW5jZSgpe3JldHVybiB0aGlzLl9zcGF3bih2b2lkIDAsITApfV9zcGF3bihlLHQpe3JldHVybiBuZXcgaSh0aGlzLl9vd25lcnx8dGhpcyxlLHQpfX1jbGFzcyBpIGV4dGVuZHMgX3tjb25zdHJ1Y3RvcihlLHQsbyl7c3VwZXIoKSxkZWxldGUgdGhpcy5fbGlzdGVuZXJzLHRoaXMuX293bmVyPWUsdGhpcy5fb25EZXN0cm95PXQsdGhpcy5fd2Vha1JlZmVyZW5jZT0hIW99ZGVzdHJveSgpe3RyeXt0aGlzLl9vbkRlc3Ryb3k/LigpfWNhdGNoKGUpe3MoZSl9c3VwZXIuZGVzdHJveSgpfXJlYWRvbmx5KCl7cmV0dXJuIHRoaXMuX3JlYWRvbmx5U3Bhd25JbnN0YW5jZXx8KHRoaXMuX3JlYWRvbmx5U3Bhd25JbnN0YW5jZT17Li4uc3VwZXIucmVhZG9ubHkoKSxkZXN0cm95OigpPT50aGlzLmRlc3Ryb3koKSxyZWFkb25seSgpe3JldHVybiB0aGlzfX0pLHRoaXMuX3JlYWRvbmx5U3Bhd25JbnN0YW5jZX1yZWxlYXNlKCl7dGhpcy5fd2Vha1JlZmVyZW5jZXx8c3VwZXIucmVsZWFzZSgpfX19LDU5ODkyMihlLHQsbyl7by5kKHQse2Zvcm1hdE51bWJlcjooKT0+aSxwYXJzZU51bWJlcjooKT0+bn0pO3ZhciByPW8oNzEyNzQ1KSxzPW8oNjYzMDQ2KSxfPW8oMTE1MjkzKTtmdW5jdGlvbiBpKGUsdCxvLHMsXyl7aWYoIU51bWJlci5pc0Zpbml0ZShlKSlyZXR1cm5gJHtlfWA7Y29uc3QgaT0tMT09PU1hdGguc2lnbihlKT8iLSI6IiI7ZT1NYXRoLmFicyhlKTtsZXQgYT12b2lkIDA9PT1vP2UudG9TdHJpbmcoKTplLnRvRml4ZWQobyk7aWYoYS5pbmNsdWRlcygiZSIpKXtpZighcylyZXR1cm5gJHtpfSR7YS5yZXBsYWNlKCIuIix0LmRlY2ltYWxTaWduKX1gO3tjb25zdCBvPW5ldyByLkJpZyhlKTtpZihhPW8ubHQoMSk/by50b0ZpeGVkKCk6by50b1N0cmluZygpLGEuaW5jbHVkZXMoImUiKSlyZXR1cm5gJHtpfSR7YS5yZXBsYWNlKCIuIix0LmRlY2ltYWxTaWduKX1gfX1jb25zdCBuPWEuc3BsaXQoIi4iKSxsPW5bMF07bGV0IGM9blsxXTtjb25zdCBkPWZ1bmN0aW9uKGUsdCl7bGV0IG89ZS5sZW5ndGg7Y29uc3Qgcj1bXTtmb3IoO28+MDspci51bnNoaWZ0KGUuc2xpY2UoTWF0aC5tYXgoby0zLDApLG8pKSxvLT0zO3JldHVybiByLmpvaW4odCl9KGwsdC5ncm91cGluZ1NlcGFyYXRvcikKO3JldHVybiB2b2lkIDAhPT1vJiYoYz0wPT09bz92b2lkIDA6ZS50b0ZpeGVkKG8pLnNsaWNlKC1vKSksdm9pZCAwIT09XyYmdm9pZCAwIT09YyYmKGM9ZnVuY3Rpb24oZSx0KXtsZXQgbz1lLmxlbmd0aC0xO2ZvcihsZXQgcj1vO3I+PXQmJiIwIj09PWVbcl07ci09MSlvLT0xO3JldHVybiBlLnNsaWNlKDAsbysxKX0oYyxfKSksYz9gJHtpfSR7ZH0ke3QuZGVjaW1hbFNpZ259JHtjfWA6YCR7aX0ke2R9YH1jb25zdCBhPSgwLHMuZGVmYXVsdCkoKGU9Pntjb25zdCB0PWUucmVwbGFjZSgvWy1bXF17fSgpKis/LixcXF4kfCNcc10vZywiXFwkJiIpO3JldHVybiBuZXcgUmVnRXhwKHQsImdtIil9KSk7ZnVuY3Rpb24gbihlLHQpe2lmKC9eKE5hTnxbK3wtXT9JbmZpbml0eSkkLy50ZXN0KGUpKXJldHVybiBwYXJzZUZsb2F0KGUpO2U9KDAsXy5zdHJpcExUUk1hcmtzKShlKTtjb25zdCBvPWEodC5ncm91cGluZ1NlcGFyYXRvcik7cmV0dXJuIG8mJihlPWUucmVwbGFjZShvLCIiKSksZT1lLnJlcGxhY2UodC5kZWNpbWFsU2lnbiwiLiIpLC9eKFwrfC0pP1xkKyhcLlxkK3xcLik/KGUoXCt8LSk/XGQrKT8kLy50ZXN0KGUpP3BhcnNlRmxvYXQoZSk6TmFOfX0sNTQ2NDg1KGUsdCxvKXtvLmQodCx7Z2V0TnVtYmVyRm9ybWF0OigpPT5kfSk7bGV0IHI9bnVsbDt2YXIgcz1vKDg1NjMyNCk7ZnVuY3Rpb24gXyhlLHQpe3JldHVybntncm91cGluZ1NlcGFyYXRvcjplLGRlY2ltYWxTaWduOnR9fWNvbnN0IGk9XygiLCIsIi4iKSxhPV8oIi4iLCIsIiksbj1fKCLigK8iLCIsIiksbD1fKCIiLCIuIiksYz1uZXcgTWFwKFtbImVuIixpXSxbInRoIixpXSxbImphIixpXSxbImtvIixpXSxbInpoIixpXSxbInpoX1RXIixpXSxbImFyIixpXSxbImhlX0lMIixpXSxbIm1zX01ZIixpXSxbInZpIixpXSxbImRlIixhXSxbImVzIixhXSxbIml0IixhXSxbInRyIixhXSxbInB0IixhXSxbImlkX0lEIixhXSxbImZyIixuXSxbInBsIixuXSxbInJ1IixuXV0pO2Z1bmN0aW9uIGQoZSl7cmV0dXJuIGU/bDoodD1jLmdldCgoMCxzLmdldExhbmd1YWdlKSgpKXx8bCxyP3IodCk6dCk7dmFyIHR9fSw3NTU2MjcoZSx0LG8pe28uZCh0LHtQcmljZUZvcm1hdHRlcjooKT0+eX0pO3ZhciByPW8oNjAxODQxKTtmdW5jdGlvbiBzKGUsdCxvLHIpe2xldCBzPTA7aWYoZT4wJiZ0PjApe2xldCB0PWU7Zm9yKG8mJnImJih0Lz1yKTt0PjE7KXQvPTEwLHMrK31yZXR1cm4gc312YXIgXz1vKDcxMjc0NSksaT1vKDgyMjQzMSksYT1vKDU5ODkyMiksbj1vKDU0NjQ4NSksbD1vKDc4MzI1NCksYz1vKDEzODYzOCksZD1vKDExNTI5MyksdT1vKDUzNTMwKTtmdW5jdGlvbiBtKGUsdCxvKXtjb25zdCByPSgwLGMuZW5zdXJlTm90TnVsbCkoKDAsdS5nZXRNaW5UaWNrRGF0YSkoe3ByaWNlOm8sbWluVGljazpudWxsLHZhcmlhYmxlTWluVGlja0RhdGE6dCxzaG91bGRDaGVja0ZvckVxdWFsaXR5OiEwfSkpLHtwcmljZVNjYWxlOl8sbWluTW92ZTppLG1pbk1vdmUyOmF9PXI7cmV0dXJue3ByaWNlU2NhbGU6XyxtaW5Nb3ZlOmksZnJhY3Rpb25hbExlbmd0aDpzKF8saSxlLGEpfX1jbGFzcyBoe2NvbnN0cnVjdG9yKGUpe3RoaXMuX2Zvcm1hdHRlckVycm9ycz17Y3VzdG9tOmwudChudWxsLHZvaWQgMCxvKDYxNjE4KSksZnJhY3Rpb246bC50KG51bGwsdm9pZCAwLG8oOTY4ODE1KSksc2Vjb25kRnJhY3Rpb246bC50KG51bGwsdm9pZCAwLG8oODUwMjk4KSl9O2NvbnN0e3ByaWNlU2NhbGU6dCxtaW5Nb3ZlOnIsbWluTW92ZTI6cyxpZ25vcmVNaW5Nb3ZlOl8sdmFyaWFibGVNaW5UaWNrOmksZnJhY3Rpb25hbExlbmd0aDphfT1lO3RoaXMuX3ByaWNlU2NhbGU9dCx0aGlzLl9taW5Nb3ZlPXIsdGhpcy5fbWluTW92ZTI9cyx0aGlzLl9pZ25vcmVNaW5Nb3ZlPV8sdGhpcy5fZnJhY3Rpb25hbExlbmd0aD1hLHRoaXMuX3ZhcmlhYmxlTWluVGlja0RhdGE9dm9pZCAwPT09aT92b2lkIDA6KDAsdS5tYWtlVmFyaWFibGVNaW5UaWNrRGF0YSkoe3ByaWNlU2NhbGU6dCxtaW5Nb3ZlOnIsbWluTW92ZTI6c30saSl9Zm9ybWF0SW1wbChlLHQ9e30pe2NvbnN0e3NpZ25Qb3NpdGl2ZTpvLHNpZ25OZWdhdGl2ZTpyPSEwLHRhaWxTaXplOnMsY3V0RnJhY3Rpb25hbEJ5UHJlY2lzaW9uOl89ITEsdXNlUnRsRm9ybWF0Omk9ITAsdmFyaWFibGVNaW5UaWNrRGF0YVByaWNlOmEsaWdub3JlTG9jYWxlTnVtYmVyRm9ybWF0Om4sbm9FeHBvbmVudGlhbEZvcm06bCxyZW1vdmVBbGxFbmRpbmdaZXJvczpjfT10O2xldCB1PSIiO2U8MD91PSExPT09cj8iIjoi4oiSIjplJiYhMD09PW8mJih1PSIrIik7Y29uc3QgbT10aGlzLl9mb3JtYXRVbnNpZ25lZChNYXRoLmFicyhlKSx7dGFpbFNpemU6cyxjdXRGcmFjdGlvbmFsQnlQcmVjaXNpb246Xyx2YXJpYWJsZU1pblRpY2tEYXRhUHJpY2U6YSxpZ25vcmVMb2NhbGVOdW1iZXJGb3JtYXQ6bixub0V4cG9uZW50aWFsRm9ybTpsLHJlbW92ZUFsbEVuZGluZ1plcm9zOmN9KSxoPSIwIj09PW0/bTp1K207cmV0dXJuIGk/KDAsZC5mb3JjZUxUUlN0cikoaCk6aH1wYXJzZShlLHQpe3JldHVybiIrIj09PShlPShlPSgwLGQuc3RyaXBMVFJNYXJrcykoZSkpLnJlcGxhY2UoIuKIkiIsIi0iKSlbMF0mJihlPWUuc3Vic3RyaW5nKDEpKSx0aGlzLl9wYXJzZVVuc2lnbmVkKGUsdCl9X3JlbW92ZUVuZGluZ1plcm9zKGUsdCl7Zm9yKGxldCBvPTA7bzx0JiYiMCI9PT1lW2UubGVuZ3RoLTFdO28rKyllPWUuc3Vic3RyaW5nKDAsZS5sZW5ndGgtMSk7cmV0dXJuIGV9fWNsYXNzIGcgZXh0ZW5kcyBoe2NvbnN0cnVjdG9yKGUpe3N1cGVyKGUpO2NvbnN0e2lnbm9yZUxvY2FsZU51bWJlckZvcm1hdDp0LG5vRXhwb25lbnRpYWxGb3JtOm99PWU7dGhpcy5faWdub3JlTG9jYWxlTnVtYmVyRm9ybWF0PXQsdGhpcy5fbm9FeHBvbmVudGlhbEZvcm09b31oYXNGb3JleEFkZGl0aW9uYWxQcmVjaXNpb24oKXtyZXR1cm4gMTA9PT10aGlzLl9taW5Nb3ZlMn1fcGFyc2VVbnNpZ25lZChlLHQpe3JldHVybiB0aGlzLl9wYXJzZUFzRGVjaW1hbChlLHQpfV9mb3JtYXRVbnNpZ25lZChlLHQpewpjb25zdHt0YWlsU2l6ZTpvLGN1dEZyYWN0aW9uYWxCeVByZWNpc2lvbjpyPSExLHZhcmlhYmxlTWluVGlja0RhdGFQcmljZTpzLGlnbm9yZUxvY2FsZU51bWJlckZvcm1hdDpfLG5vRXhwb25lbnRpYWxGb3JtOmkscmVtb3ZlQWxsRW5kaW5nWmVyb3M6YT0hMX09dCxuPXtwcmljZTpNYXRoLmFicyhlKSxwcmljZVNjYWxlOnRoaXMuX3ByaWNlU2NhbGUsbWluTW92ZTp0aGlzLl9taW5Nb3ZlLGZyYWN0aW9uYWxMZW5ndGg6dGhpcy5fZnJhY3Rpb25hbExlbmd0aCx0YWlsU2l6ZTpvLGN1dEZyYWN0aW9uYWxCeVByZWNpc2lvbjpyLGlnbm9yZUxvY2FsZU51bWJlckZvcm1hdDpfLG5vRXhwb25lbnRpYWxGb3JtOmkscmVtb3ZlQWxsRW5kaW5nWmVyb3M6YX07cmV0dXJuIHZvaWQgMCE9PXRoaXMuX3ZhcmlhYmxlTWluVGlja0RhdGEmJihPYmplY3QuYXNzaWduKG4sbSghMSx0aGlzLl92YXJpYWJsZU1pblRpY2tEYXRhLHM/P24ucHJpY2UpKSx0aGlzLl9pZ25vcmVNaW5Nb3ZlJiYobi5taW5Nb3ZlPTEpKSx0aGlzLl9mb3JtYXRBc0RlY2ltYWwobil9X2Zvcm1hdEFzRGVjaW1hbChlKXtjb25zdHtwcmljZTp0LHByaWNlU2NhbGU6byxtaW5Nb3ZlOnIsZnJhY3Rpb25hbExlbmd0aDpzPTAsdGFpbFNpemU6bD0wLGN1dEZyYWN0aW9uYWxCeVByZWNpc2lvbjpjLGlnbm9yZUxvY2FsZU51bWJlckZvcm1hdDpkPXRoaXMuX2lnbm9yZUxvY2FsZU51bWJlckZvcm1hdCxub0V4cG9uZW50aWFsRm9ybTp1PXRoaXMuX25vRXhwb25lbnRpYWxGb3JtLHJlbW92ZUFsbEVuZGluZ1plcm9zOm19PWUsaD0oMCxuLmdldE51bWJlckZvcm1hdCkoZCk7aWYodD49MWUyMSYmIXUpcmV0dXJuIHQudG9TdHJpbmcoKS5yZXBsYWNlKCIuIixoLmRlY2ltYWxTaWduKTtjb25zdCBnPU1hdGgucG93KDEwLGwpKm8vKGM/MTpyKSxwPTEvZztsZXQgYjtpZihnPjEpYj1NYXRoLmZsb29yKHQpO2Vsc2V7Y29uc3QgZT1NYXRoLnJvdW5kKHQvcCkqcDtiPTA9PT1NYXRoLnJvdW5kKCh0LWUpL3ApP2U6ZStwfWxldCB3PSIiO2lmKGc+MSl7bGV0IGU9Yz9uZXcgXy5CaWcodCkubXVsKGcpLnJvdW5kKHZvaWQgMCwwKS5taW51cyhuZXcgXy5CaWcoYikubXVsKGcpKS50b051bWJlcigpOnBhcnNlRmxvYXQoKE1hdGgucm91bmQodCpnKS1iKmcpLnRvRml4ZWQocykpO2U+PWcmJihlLT1nLGIrPTEpLGU9Yz9uZXcgXy5CaWcoZSkucm91bmQocywwKS50b051bWJlcigpOnBhcnNlRmxvYXQoZS50b0ZpeGVkKHMpKSpyO2NvbnN0IG89KDAsaS5udW1iZXJUb1N0cmluZ1dpdGhMZWFkaW5nWmVybykoZSxzK2wpO2lmKCF1JiZ0PDEmJnM+PTEwJiZvLnN0YXJ0c1dpdGgoIjAwMDAiKSl7bGV0IGU9NDtmb3IobGV0IHQ9ZTt0PG8ubGVuZ3RoJiYiMCI9PT1vW3RdO3QrKyllKys7Y29uc3QgdD10aGlzLl9yZW1vdmVFbmRpbmdaZXJvcyhvLnNsaWNlKGUpLHMpO3JldHVybiIiPT09dD8iMCI6YDAke2guZGVjaW1hbFNpZ259JHt0fWUtJHtlfWB9Y29uc3QgYT10aGlzLl9yZW1vdmVFbmRpbmdaZXJvcyhvLG0/by5sZW5ndGg6bCk7dz1hP2guZGVjaW1hbFNpZ24rYTphfWNvbnN0IHk9KDAsYS5mb3JtYXROdW1iZXIpKGIsaCx2b2lkIDAsdSk7cmV0dXJuIHkuaW5jbHVkZXMoImUiKT95Onkrd31fcGFyc2VBc0RlY2ltYWwoZSx0PXt9KXtjb25zdHtpZ25vcmVMb2NhbGVOdW1iZXJGb3JtYXQ6b309dCxyPSgwLG4uZ2V0TnVtYmVyRm9ybWF0KSh0aGlzLl9pZ25vcmVMb2NhbGVOdW1iZXJGb3JtYXR8fG8pLHM9KDAsYS5wYXJzZU51bWJlcikoZSxyKTtyZXR1cm4gTnVtYmVyLmlzRmluaXRlKHMpP3t2YWx1ZTpzLHJlczohMCxzdWdnZXN0OnRoaXMuZm9ybWF0SW1wbChzKX06e2Vycm9yOnRoaXMuX2Zvcm1hdHRlckVycm9ycy5jdXN0b20scmVzOiExfX19Y29uc3QgcD0iJyIsYj1uZXcgUmVnRXhwKC9eKC0/KVswLTldKyQvKTtjbGFzcyB3IGV4dGVuZHMgaHtoYXNGb3JleEFkZGl0aW9uYWxQcmVjaXNpb24oKXtyZXR1cm4hMX1fcGFyc2VVbnNpZ25lZChlKXtyZXR1cm4gdGhpcy5fbWluTW92ZTI/dGhpcy5fcGFyc2VBc0RvdWJsZUZyYWN0aW9uYWwoZSk6dGhpcy5fcGFyc2VBc1NpbmdsZUZyYWN0aW9uYWwoZSl9X2Zvcm1hdFVuc2lnbmVkKGUsdCl7Y29uc3R7dGFpbFNpemU6byx2YXJpYWJsZU1pblRpY2tEYXRhUHJpY2U6cn09dCxzPXtwcmljZTpNYXRoLmFicyhlKSxwcmljZVNjYWxlOnRoaXMuX3ByaWNlU2NhbGUsbWluTW92ZTp0aGlzLl9taW5Nb3ZlLG1pbk1vdmUyOnRoaXMuX21pbk1vdmUyLGZyYWN0aW9uYWxMZW5ndGg6KDAsYy5lbnN1cmVEZWZpbmVkKSh0aGlzLl9mcmFjdGlvbmFsTGVuZ3RoKSx0YWlsU2l6ZTpvfTtyZXR1cm4gdm9pZCAwIT09dGhpcy5fdmFyaWFibGVNaW5UaWNrRGF0YSYmT2JqZWN0LmFzc2lnbihzLG0oITAsdGhpcy5fdmFyaWFibGVNaW5UaWNrRGF0YSxyPz9zLnByaWNlKSksdGhpcy5fZm9ybWF0QXNGcmFjdGlvbmFsKHMpfV9wYXJzZUFzU2luZ2xlRnJhY3Rpb25hbChlKXtsZXQgdD1iLmV4ZWMoZSk7aWYodCl7Y29uc3QgdD1wYXJzZUZsb2F0KGUpO3JldHVybnt2YWx1ZTp0LHJlczohMCxzdWdnZXN0OnRoaXMuZm9ybWF0SW1wbCh0KX19aWYodD1uZXcgUmVnRXhwKCJeKC0/KShbMC05XSspXFwnKFswLTldKykkIikuZXhlYyhlKSx0KXtjb25zdCBlPSEhdFsxXSxvPXBhcnNlSW50KHRbMl0pLHI9dGhpcy5fcHJpY2VTY2FsZSxzPXRoaXMuX3BhdGNoRnJhY3RQYXJ0KHBhcnNlSW50KHRbM10pLDEscik7aWYocz49cnx8czwwKXJldHVybntlcnJvcjp0aGlzLl9mb3JtYXR0ZXJFcnJvcnMuZnJhY3Rpb24scmVzOiExfTtsZXQgXz1vK3MvcjtyZXR1cm4gZSYmKF89LV8pLHt2YWx1ZTpfLHJlczohMCxzdWdnZXN0OnRoaXMuZm9ybWF0SW1wbChfKX19cmV0dXJue2Vycm9yOnRoaXMuX2Zvcm1hdHRlckVycm9ycy5jdXN0b20scmVzOiExfX1fcGFyc2VBc0RvdWJsZUZyYWN0aW9uYWwoZSl7bGV0IHQ9Yi5leGVjKGUpO2lmKHQpe2NvbnN0IHQ9cGFyc2VGbG9hdChlKTtyZXR1cm57dmFsdWU6dCxyZXM6ITAsc3VnZ2VzdDp0aGlzLmZvcm1hdEltcGwodCl9fQppZih0PW5ldyBSZWdFeHAoIl4oLT8pKFswLTldKylcXCcoWzAtOV0rKVxcJyhbMC05XSspJCIpLmV4ZWMoZSksdCl7Y29uc3QgZT0hIXRbMV0sbz1wYXJzZUludCh0WzJdKSxyPXZvaWQgMCE9PXRoaXMuX21pbk1vdmUyJiZudWxsIT09dGhpcy5fbWluTW92ZTI/dGhpcy5fbWluTW92ZTI6TmFOLHM9dGhpcy5fcHJpY2VTY2FsZS9yLF89dGhpcy5fbWluTW92ZTIsaT10aGlzLl9wYXRjaEZyYWN0UGFydChwYXJzZUludCh0WzNdKSwxLHMpLGE9dGhpcy5fcGF0Y2hGcmFjdFBhcnQocGFyc2VJbnQodFs0XSksMixfKTtpZihpPj1zfHxpPDApcmV0dXJue2Vycm9yOnRoaXMuX2Zvcm1hdHRlckVycm9ycy5mcmFjdGlvbixyZXM6ITF9O2lmKG51bGwhPV8mJmE+PV98fGE8MClyZXR1cm57ZXJyb3I6dGhpcy5fZm9ybWF0dGVyRXJyb3JzLnNlY29uZEZyYWN0aW9uLHJlczohMX07bGV0IG49bnVsbCE9Xz9vK2kvcythLyhzKl8pOk5hTjtyZXR1cm4gZSYmKG49LW4pLHt2YWx1ZTpuLHJlczohMCxzdWdnZXN0OnRoaXMuZm9ybWF0SW1wbChuKX19cmV0dXJue2Vycm9yOnRoaXMuX2Zvcm1hdHRlckVycm9ycy5jdXN0b20scmVzOiExfX1fcGF0Y2hGcmFjdFBhcnQoZSx0LG8pe2NvbnN0IHI9ezA6MCw1OjF9LHM9ezA6MCwyOjEsNToyLDc6M30sXz17MDowLDE6MSwyOjIsMzozLDU6NCw2OjUsNzo2LDg6N307cmV0dXJuIDI9PT1vP3ZvaWQgMD09PXJbZV0/LTE6cltlXTo0PT09bz92b2lkIDA9PT1zW2VdPy0xOnNbZV06OD09PW8mJjI9PT10P3ZvaWQgMD09PV9bZV0/LTE6X1tlXTplfV9mb3JtYXRBc0ZyYWN0aW9uYWwoZSl7Y29uc3R7cHJpY2U6dCx0YWlsU2l6ZTpvLHByaWNlU2NhbGU6cixtaW5Nb3ZlOnMsbWluTW92ZTI6XyxmcmFjdGlvbmFsTGVuZ3RoOmF9PWUsbj1yL3M7bGV0IGw9TWF0aC5mbG9vcih0KSxjPW8/TWF0aC5mbG9vcih0Km4pLWwqbjpNYXRoLnJvdW5kKHQqbiktbCpuO2M9PT1uJiYoYz0wLGwrPTEpO2xldCBkPSIiO2lmKG8pe2xldCBlPSh0LWwtYy9uKSpuO2U9TWF0aC5yb3VuZChlKk1hdGgucG93KDEwLG8pKSxkPSgwLGkubnVtYmVyVG9TdHJpbmdXaXRoTGVhZGluZ1plcm8pKGUsbyksZD10aGlzLl9yZW1vdmVFbmRpbmdaZXJvcyhkLG8pfWlmKCFhKXRocm93IG5ldyBFcnJvcigiX2ZyYWN0aW9uYWxMZW5ndGggaXMgbm90IGNhbGN1bGF0ZWQiKTtsZXQgdT0iIjtpZihfKXtjb25zdCBlPWMlXztjPShjLWUpL187Y29uc3QgdD0oMCxpLm51bWJlclRvU3RyaW5nV2l0aExlYWRpbmdaZXJvKShjLGEpLG89dGhpcy5fZ2V0RnJhY3RQYXJ0KGUsMixfKTt1PXQrcCtvfWVsc2UgYz10aGlzLl9nZXRGcmFjdFBhcnQoYywxLHIpLHU9KDAsaS5udW1iZXJUb1N0cmluZ1dpdGhMZWFkaW5nWmVybykoYypzLGEpO3JldHVybiBsLnRvU3RyaW5nKCkrcCt1K2R9X2dldEZyYWN0UGFydChlLHQsbyl7Y29uc3Qgcj1bMCw1XSxzPVswLDIsNSw3XSxfPVswLDEsMiwzLDUsNiw3LDhdO3JldHVybiAyPT09bz92b2lkIDA9PT1yW2VdPy0xOnJbZV06ND09PW8/dm9pZCAwPT09c1tlXT8tMTpzW2VdOjg9PT1vJiYyPT09dD92b2lkIDA9PT1fW2VdPy0xOl9bZV06ZX19Y2xhc3MgeXtjb25zdHJ1Y3RvcihlPXt9KXt0aGlzLnR5cGU9InByaWNlIjtjb25zdHttaW5Nb3ZlMjp0LGZyYWN0aW9uYWw6byx2YXJpYWJsZU1pblRpY2s6XyxpZ25vcmVNaW5Nb3ZlOmksaWdub3JlTG9jYWxlTnVtYmVyRm9ybWF0OmF9PWUsbj0oMCxyLmlzTnVtYmVyKShlLnByaWNlU2NhbGUpJiYoMCxyLmlzSW50ZWdlcikoZS5wcmljZVNjYWxlKT9lLnByaWNlU2NhbGU6MTAwO2lmKG48MCl0aHJvdyBuZXcgVHlwZUVycm9yKCJpbnZhbGlkIGJhc2UiKTtjb25zdCBsPSFlLm1pbk1vdmV8fGk/MTplLm1pbk1vdmUsYz1zKG4sbCxvLHQpLGQ9ey4uLmUsbWluTW92ZTpsLHByaWNlU2NhbGU6bixmcmFjdGlvbmFsTGVuZ3RoOmN9O3RoaXMuX3ByaWNlU2NhbGU9bix0aGlzLl9taW5Nb3ZlPWwsdGhpcy5fbWluTW92ZTI9dCx0aGlzLl9mcmFjdGlvbmFsPW8sdGhpcy5fdmFyaWFibGVNaW5UaWNrPV8sdGhpcy5faWdub3JlTWluTW92ZT1pLHRoaXMuX2ZyYWN0aW9uYWxMZW5ndGg9Yyx0aGlzLl9pZ25vcmVMb2NhbGVOdW1iZXJGb3JtYXQ9YSx0aGlzLl9ub0V4cG9uZW50aWFsRm9ybT1lLm5vRXhwb25lbnRpYWxGb3JtLHRoaXMuX2ltcGxlbWVudGF0aW9uPW8/bmV3IHcoZCk6bmV3IGcoZCl9aXNGcmFjdGlvbmFsKCl7cmV0dXJuISF0aGlzLl9mcmFjdGlvbmFsfXN0YXRlKCl7cmV0dXJue21pbk1vdmU6dGhpcy5fbWluTW92ZSxtaW5Nb3ZlMjp0aGlzLl9taW5Nb3ZlMixwcmljZVNjYWxlOnRoaXMuX3ByaWNlU2NhbGUsdmFyaWFibGVNaW5UaWNrOnRoaXMuX3ZhcmlhYmxlTWluVGljayxpZ25vcmVNaW5Nb3ZlOnRoaXMuX2lnbm9yZU1pbk1vdmUsZnJhY3Rpb25hbDp0aGlzLl9mcmFjdGlvbmFsLG5vRXhwb25lbnRpYWxGb3JtOnRoaXMuX25vRXhwb25lbnRpYWxGb3JtfX1mb3JtYXRDaGFuZ2UoZSx0LG8pe3JldHVybiB0aGlzLl9pbXBsZW1lbnRhdGlvbi5mb3JtYXRJbXBsKGUtdCx7Li4ubyx2YXJpYWJsZU1pblRpY2tEYXRhUHJpY2U6TWF0aC5taW4oTWF0aC5hYnMoZSksTWF0aC5hYnModCkpfSl9Zm9ybWF0KGUsdCl7cmV0dXJuIHRoaXMuX2ltcGxlbWVudGF0aW9uLmZvcm1hdEltcGwoZSx0KX1wYXJzZShlLHQpe3JldHVybiB0aGlzLl9pbXBsZW1lbnRhdGlvbi5wYXJzZShlLHQpfWhhc0ZvcmV4QWRkaXRpb25hbFByZWNpc2lvbigpe3JldHVybiB0aGlzLl9pbXBsZW1lbnRhdGlvbi5oYXNGb3JleEFkZGl0aW9uYWxQcmVjaXNpb24oKX1zdGF0aWMgc2VyaWFsaXplKGUpe3JldHVybiBlLnN0YXRlKCl9c3RhdGljIGRlc2VyaWFsaXplKGUpe3JldHVybiBuZXcgeShlKX19fSw3ODMyNTQoZSx0LG8pe28uZCh0LHt0OigpPT5yfSk7Y29uc3Qgcj1vLmkxOG5leHR9LDYyMDM1NChlLHQsbyl7dmFyIHI7by5kKHQse0xvZ29TaXplOigpPT5yfSksZnVuY3Rpb24oZSl7ZVtlLk1lZGl1bT0wXT0iTWVkaXVtIixlW2UuTGFyZ2U9MV09IkxhcmdlIn0ocnx8KHI9e30pKX0sNzQ5NjQ4KGUsdCxvKXtmdW5jdGlvbiByKGUsdD0hMSl7CiJsb2FkaW5nIiE9PWRvY3VtZW50LnJlYWR5U3RhdGU/dD9zZXRUaW1lb3V0KCgoKT0+ZSgpKSwxKTplKCk6ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiRE9NQ29udGVudExvYWRlZCIsKCgpPT5lKCkpKX1vLmQodCx7d2hlbkRvY3VtZW50UmVhZHk6KCk9PnJ9KTtuZXcgUHJvbWlzZSgoZT0+e3IoZSl9KSl9LDYzNTE4KGUpewplLmV4cG9ydHM9SlNPTi5wYXJzZSgneyIxNDg1MSI6e30sImN1c3RvbV9pdGVtc19pbl9jb250ZXh0X21lbnUiOnt9LCJjb3VudGRvd24iOnt9LCJzeW1ib2xfc2VhcmNoX3BhcnNlcl9taXhpbiI6e30sInBheV9hdHRlbnRpb25fdG9fdGlja2VyX25vdF9zeW1ib2wiOnt9LCJncmF5aW5nX2Rpc2FibGVkX3Rvb2xzX2VuYWJsZWQiOnt9LCJ1cGRhdGVfc3R1ZHlfZm9ybWF0dGVyX29uX3N5bWJvbF9yZXNvbHZlIjp7fSwiY29uc3RyYWludF9kaWFsb2dzX21vdmVtZW50Ijp7fSwicGhvbmVfdmVyaWZpY2F0aW9uIjp7fSwic2hvd190cmFkaW5nX25vdGlmaWNhdGlvbnNfaGlzdG9yeSI6e30sInNob3dfaW50ZXJ2YWxfZGlhbG9nX29uX2tleV9wcmVzcyI6e30sImhlYWRlcl9pbnRlcnZhbF9kaWFsb2dfYnV0dG9uIjp7InN1YnNldHMiOlsic2hvd19pbnRlcnZhbF9kaWFsb2dfb25fa2V5X3ByZXNzIl19LCJoZWFkZXJfZnVsbHNjcmVlbl9idXR0b24iOnt9LCJoZWFkZXJfc3ltYm9sX3NlYXJjaCI6e30sInN5bWJvbF9zZWFyY2hfaG90X2tleSI6e30sImhlYWRlcl9yZXNvbHV0aW9ucyI6eyJzdWJzZXRzIjpbImhlYWRlcl9pbnRlcnZhbF9kaWFsb2dfYnV0dG9uIl19LCJoZWFkZXJfY2hhcnRfdHlwZSI6e30sImhlYWRlcl9zZXR0aW5ncyI6e30sImhlYWRlcl9pbmRpY2F0b3JzIjp7fSwiaGVhZGVyX2NvbXBhcmUiOnt9LCJoZWFkZXJfdW5kb19yZWRvIjp7fSwiaGVhZGVyX3F1aWNrX3NlYXJjaCI6e30sImhlYWRlcl9zY3JlZW5zaG90Ijp7fSwiaGVhZGVyX3NhdmVsb2FkIjp7fSwic3R1ZHlfb25fc3R1ZHkiOnt9LCJzY2FsZXNfZGF0ZV9mb3JtYXQiOnt9LCJzY2FsZXNfdGltZV9ob3Vyc19mb3JtYXQiOnt9LCJoZWFkZXJfd2lkZ2V0Ijp7InN1YnNldHMiOlsiaGVhZGVyX3dpZGdldF9kb21fbm9kZSIsImhlYWRlcl9zeW1ib2xfc2VhcmNoIiwiaGVhZGVyX3Jlc29sdXRpb25zIiwiaGVhZGVyX2NoYXJ0X3R5cGUiLCJoZWFkZXJfc2V0dGluZ3MiLCJoZWFkZXJfaW5kaWNhdG9ycyIsImhlYWRlcl9jb21wYXJlIiwiaGVhZGVyX3VuZG9fcmVkbyIsImhlYWRlcl9xdWlja19zZWFyY2giLCJoZWFkZXJfZnVsbHNjcmVlbl9idXR0b24iLCJjb21wYXJlX3N5bWJvbCIsImhlYWRlcl9zY3JlZW5zaG90Il19LCJsZWdlbmRfd2lkZ2V0Ijp7fSwiY29tcGFyZV9zeW1ib2wiOnsic3Vic2V0cyI6WyJoZWFkZXJfY29tcGFyZSJdfSwicHJvcGVydHlfcGFnZXMiOnsic3Vic2V0cyI6WyJzaG93X2NoYXJ0X3Byb3BlcnR5X3BhZ2UiLCJjaGFydF9wcm9wZXJ0eV9wYWdlIl19LCJzaG93X2NoYXJ0X3Byb3BlcnR5X3BhZ2UiOnt9LCJjaGFydF9wcm9wZXJ0eV9wYWdlIjp7InN1YnNldHMiOlsiY2hhcnRfcHJvcGVydHlfcGFnZV9zY2FsZXMiLCJjaGFydF9wcm9wZXJ0eV9wYWdlX3RyYWRpbmciLCJjaGFydF9wcm9wZXJ0eV9wYWdlX3JpZ2h0X21hcmdpbl9lZGl0b3IiXX0sImxlZnRfdG9vbGJhciI6e30sInJpZ2h0X3Rvb2xiYXIiOnt9LCJoaWRlX2xlZnRfdG9vbGJhcl9ieV9kZWZhdWx0Ijp7fSwiY29udHJvbF9iYXIiOnt9LCJ3aWRnZXRfbG9nbyI6e30sInRpbWVmcmFtZXNfdG9vbGJhciI6e30sImVkaXRfYnV0dG9uc19pbl9sZWdlbmQiOnsic3Vic2V0cyI6WyJzaG93X2hpZGVfYnV0dG9uX2luX2xlZ2VuZCIsImZvcm1hdF9idXR0b25faW5fbGVnZW5kIiwic3R1ZHlfYnV0dG9uc19pbl9sZWdlbmQiLCJkZWxldGVfYnV0dG9uX2luX2xlZ2VuZCIsImxlZ2VuZF9pbnBsYWNlX2VkaXQiXX0sInNob3dfaGlkZV9idXR0b25faW5fbGVnZW5kIjp7fSwib2JqZWN0X3RyZWVfbGVnZW5kX21vZGUiOnt9LCJmb3JtYXRfYnV0dG9uX2luX2xlZ2VuZCI6e30sInN0dWR5X2J1dHRvbnNfaW5fbGVnZW5kIjp7fSwiZGVsZXRlX2J1dHRvbl9pbl9sZWdlbmQiOnt9LCJsZWdlbmRfaW5wbGFjZV9lZGl0Ijp7fSwiYnJva2VyX2J1dHRvbiI6e30sImJ1eV9zZWxsX2J1dHRvbnMiOnsic3Vic2V0cyI6WyJicm9rZXJfYnV0dG9uIl19LCJzaG93X2J1eV9zZWxsX2J1dHRvbnNfb25fdW5zdXBwb3J0ZWRfcmVzb2x1dGlvbiI6e30sInBhbmVfY29udGV4dF9tZW51Ijp7fSwic2NhbGVzX2NvbnRleHRfbWVudSI6e30sImxlZ2VuZF9jb250ZXh0X21lbnUiOnt9LCJjb250ZXh0X21lbnVzIjp7InN1YnNldHMiOlsicGFuZV9jb250ZXh0X21lbnUiLCJzY2FsZXNfY29udGV4dF9tZW51IiwibGVnZW5kX2NvbnRleHRfbWVudSIsIm9iamVjdHNfdHJlZV9jb250ZXh0X21lbnUiXX0sIml0ZW1zX2Zhdm9yaXRpbmciOnt9LCJzYXZlX2NoYXJ0X3Byb3BlcnRpZXNfdG9fbG9jYWxfc3RvcmFnZSI6e30sInVzZV9sb2NhbHN0b3JhZ2VfZm9yX3NldHRpbmdzIjp7InN1YnNldHMiOlsiaXRlbXNfZmF2b3JpdGluZyIsInNhdmVfY2hhcnRfcHJvcGVydGllc190b19sb2NhbF9zdG9yYWdlIl19LCJoYW5kbGVfc2NhbGUiOnsic3Vic2V0cyI6WyJtb3VzZV93aGVlbF9zY2FsZSIsInBpbmNoX3NjYWxlIiwiYXhpc19wcmVzc2VkX21vdXNlX21vdmVfc2NhbGUiXX0sImhhbmRsZV9zY3JvbGwiOnsic3Vic2V0cyI6WyJtb3VzZV93aGVlbF9zY3JvbGwiLCJwcmVzc2VkX21vdXNlX21vdmVfc2Nyb2xsIiwiaG9yel90b3VjaF9kcmFnX3Njcm9sbCIsInZlcnRfdG91Y2hfZHJhZ19zY3JvbGwiXX0sInBsYWluX3N0dWR5bWFya2V0Ijp7fSwiZGlzYWJsZV9yZXNvbHV0aW9uX3JlYnVpbGQiOnt9LCJib3JkZXJfYXJvdW5kX3RoZV9jaGFydCI6e30sImNoYXJ0aW5nX2xpYnJhcnlfZGVidWdfbW9kZSI6e30sInNhdmVsb2FkX3JlcXVpcmVzX2F1dGhlbnRpY2F0aW9uIjp7fSwic2F2ZWxvYWRfc3RvcmFnZV9jdXN0b21pemF0aW9uIjp7fSwidm9sdW1lX2ZvcmNlX292ZXJsYXkiOnt9LCJjcmVhdGVfdm9sdW1lX2luZGljYXRvcl9ieV9kZWZhdWx0Ijp7fSwiY3JlYXRlX3ZvbHVtZV9pbmRpY2F0b3JfYnlfZGVmYXVsdF9vbmNlIjp7fSwic2F2ZWRfY2hhcnRzX2NvdW50X3Jlc3RyaWN0aW9uIjp7fSwibGVhbl9jaGFydF9sb2FkIjp7fSwic3RvcF9zdHVkeV9vbl9yZXN0YXJ0Ijp7fSwic3Rhcl9zb21lX2ludGVydmFsc19ieV9kZWZhdWx0Ijp7fSwibW92ZV9sb2dvX3RvX21haW5fcGFuZSI6e30sInNob3dfYW5pbWF0ZWRfbG9nbyI6e30sImxpbmtfdG9fdHJhZGluZ3ZpZXciOnt9LCJsb2dvX3dpdGhvdXRfbGluayI6e30sImxvZ29fYWx3YXlzX21heGltaXplZCI6e30sInJpZ2h0X2Jhcl9zdGF5c19vbl9zY3JvbGwiOnt9LCJjaGFydF9jb250ZW50X292ZXJyaWRlc19ieV9kZWZhdWx0cyI6e30sInNuYXBzaG90X3RyYWRpbmdfZHJhd2luZ3MiOnt9LCJhbGxvd19zdXBwb3J0ZWRfcmVzb2x1dGlvbnNfc2V0X29ubHkiOnt9LCJ3aWRnZXRiYXJfdGFicyI6eyJzdWJzZXRzIjpbInJpZ2h0X3Rvb2xiYXIiXX0sInNob3dfb2JqZWN0X3RyZWUiOnsic3Vic2V0cyI6WyJyaWdodF90b29sYmFyIl19LCJkb21fd2lkZ2V0Ijp7InN1YnNldHMiOlsicmlnaHRfdG9vbGJhciJdfSwiY29sbGFwc2libGVfaGVhZGVyIjp7fSwic3R1ZHlfdGVtcGxhdGVzIjp7fSwia2VlcF9zZWxlY3RlZF9ncm91cF9vbl90b29sX2NyZWF0aW9uIjp7fSwic2lkZV90b29sYmFyX2luX2Z1bGxzY3JlZW5fbW9kZSI6e30sImhlYWRlcl9pbl9mdWxsc2NyZWVuX21vZGUiOnt9LCJyZW1vdmVfbGlicmFyeV9jb250YWluZXJfYm9yZGVyIjp7fSwid2hvdHJhZGVzX2F1dGhfb25seSI6e30sInN1cHBvcnRfbXVsdGljaGFydHMiOnt9LCJkaXNwbGF5X21hcmtldF9zdGF0dXMiOnt9LCJkaXNwbGF5X2RhdGFfbW9kZSI6e30sImRhdGFzb3VyY2VfY29weXBhc3RlIjp7fSwiZHJhd2luZ190ZW1wbGF0ZXMiOnsic3Vic2V0cyI6WyJsaW5ldG9vbHByb3BlcnRpZXN3aWRnZXRfdGVtcGxhdGVfYnV0dG9uIl19LCJleHBhbmRfc3ltYm9sc2VhcmNoX2l0ZW1zIjp7fSwic3ltYm9sX3NlYXJjaF90aHJlZV9jb2x1bW5zX2V4Y2hhbmdlcyI6e30sInN5bWJvbF9zZWFyY2hfZmxhZ3MiOnt9LCJzeW1ib2xfc2VhcmNoX2xpbWl0ZWRfZXhjaGFuZ2VzIjp7fSwiYnVncmVwb3J0X2J1dHRvbiI6eyJzdWJzZXRzIjpbInJpZ2h0X3Rvb2xiYXIiXX0sImhlYWRlcl90cmFkZV9idXR0b24iOnt9LCJzeW1ib2xfc2VhcmNoX2hpZ2hsaWdodF9hY3RpdmVfc3ltYm9sIjp7fSwiZm9vdGVyX3B1Ymxpc2hfaWRlYV9idXR0b24iOnt9LCJ0ZXh0X25vdGVzIjp7fSwic2hvd19zb3VyY2VfY29kZSI6e30sInN5bWJvbF9pbmZvIjp7fSwibm9fYmFyc19zdGF0dXMiOnt9LCJjbGVhcl9iYXJzX29uX3Nlcmllc19lcnJvciI6e30sImhpZGVfbG9hZGluZ19zY3JlZW5fb25fc2VyaWVzX2Vycm9yIjp7fSwic2Vjb25kc19yZXNvbHV0aW9uIjp7fSwiZG9udF9zaG93X2Jvb2xlYW5fc3R1ZHlfYXJndW1lbnRzIjp7fSwiaGlkZV9sYXN0X25hX3N0dWR5X291dHB1dCI6e30sInByaWNlX3NjYWxlX2Fsd2F5c19sYXN0X2Jhcl92YWx1ZSI6e30sInN0dWR5X2RpYWxvZ19mdW5kYW1lbnRhbHNfZWNvbm9teV9hZGRvbnMiOnt9LCJ1cHBlcmNhc2VfaW5zdHJ1bWVudF9uYW1lcyI6e30sInRyYWRpbmdfbm90aWZpY2F0aW9ucyI6e30sImNoYXJ0X2Nyb3NzaGFpcl9tZW51Ijp7fSwiamFwYW5lc2VfY2hhcnRfc3R5bGVzIjp7fSwiaGlkZV9zZXJpZXNfbGVnZW5kX2l0ZW0iOnt9LCJoaWRlX3N0dWR5X292ZXJsYXlfbGVnZW5kX2l0ZW0iOnt9LCJoaWRlX3N0dWR5X2NvbXBhcmVfbGVnZW5kX2l0ZW0iOnt9LCJsaW5ldG9vbHByb3BlcnRpZXN3aWRnZXRfdGVtcGxhdGVfYnV0dG9uIjp7fSwidXNlX292ZXJyaWRlc19mb3Jfb3ZlcmxheSI6e30sInRpbWV6b25lX21lbnUiOnt9LCJtYWluX3Nlcmllc19zY2FsZV9tZW51Ijp7fSwic2hvd19sb2dpbl9kaWFsb2ciOnt9LCJyZW1vdmVfaW1nX2Zyb21fcnNzIjp7fSwiYmFyc19tYXJrcyI6e30sImNoYXJ0X3Njcm9sbCI6e30sImNoYXJ0X3pvb20iOnt9LCJzb3VyY2Vfc2VsZWN0aW9uX21hcmtlcnMiOnt9LCJsb3dfZGVuc2l0eV9iYXJzIjp7fSwiZW5kX29mX3BlcmlvZF90aW1lc2NhbGVfbWFya3MiOnt9LCJvcGVuX2FjY291bnRfbWFuYWdlciI6e30sInNob3dfb3JkZXJfcGFuZWxfb25fc3RhcnQiOnt9LCJvcmRlcl9wYW5lbCI6eyJzdWJzZXRzIjpbIm9yZGVyX3BhbmVsX2Nsb3NlX2J1dHRvbiIsIm9yZGVyX3BhbmVsX3VuZG9jayIsInJpZ2h0X3Rvb2xiYXIiLCJvcmRlcl9pbmZvIl19LCJtdWx0aXBsZV93YXRjaGxpc3RzIjp7fSwid2F0Y2hsaXN0X2ltcG9ydF9leHBvcnQiOnt9LCJzdHVkeV9vdmVybGF5X2NvbXBhcmVfbGVnZW5kX29wdGlvbiI6e30sIm1vYmlsZV9hcHBfYWN0aW9uX29wZW5fZGV0YWlsc193ZWJ2aWV3Ijp7fSwiY3VzdG9tX3Jlc29sdXRpb25zIjp7fSwicmVmZXJyYWxfcHJvZ3JhbV9mb3Jfd2lkZ2V0X293bmVycyI6e30sIm1vYmlsZV90cmFkaW5nIjp7fSwicmVhbF9icm9rZXJzIjp7fSwicXVpY2tfdHJhZGluZ19wYW5lbCI6e30sIm5hdGl2ZV9tb2JpbGVfYnJva2Vyc19saXN0Ijp7fSwibm9fbWluX2NoYXJ0X3dpZHRoIjp7fSwibG9ja192aXNpYmxlX3RpbWVfcmFuZ2Vfb25fcmVzaXplIjp7fSwicHJpY2VzY2FsZV9jdXJyZW5jeSI6e30sImNyb3BwZWRfdGlja19tYXJrcyI6e30sInRyYWRpbmdfYWNjb3VudF9tYW5hZ2VyIjp7fSwiZGlzYWJsZV9zYW1laW50ZXJ2YWxfYWxpZ25pbmciOnt9LCJkaXNwbGF5X2xlZ2VuZF9vbl9hbGxfY2hhcnRzIjp7fSwiY2hhcnRfc3R5bGVfaGlsbyI6e30sImNoYXJ0X3N0eWxlX2hpbG9fbGFzdF9wcmljZSI6e30sInByaWNlc2NhbGVfdW5pdCI6e30sInNob3dfc3ByZWFkX29wZXJhdG9ycyI6e30sImhpZGVfZXhwb25lbnRpYXRpb25fc3ByZWFkX29wZXJhdG9yIjp7fSwiaGlkZV9yZWNpcHJvY2FsX3NwcmVhZF9vcGVyYXRvciI6e30sImNvbXBhcmVfc3ltYm9sX3NlYXJjaF9zcHJlYWRfb3BlcmF0b3JzIjp7fSwic3R1ZGllc19zeW1ib2xfc2VhcmNoX3NwcmVhZF9vcGVyYXRvcnMiOnt9LCJoaWRlX3Jlc29sdXRpb25faW5fbGVnZW5kIjp7fSwiaGlkZV91bnJlc29sdmVkX3N5bWJvbHNfaW5fbGVnZW5kIjp7fSwiZml4X2xlZnRfZWRnZSI6e30sInN0dWR5X3N5bWJvbF90aWNrZXJfZGVzY3JpcHRpb24iOnt9LCJ0d29fY2hhcmFjdGVyX2Jhcl9tYXJrc19sYWJlbHMiOnt9LCJwaW5fYmFyX21hcmtfdG9vbHRpcHNfb25fY2xpY2siOnt9LCJ0aWNrX3Jlc29sdXRpb24iOnt9LCJzZWNvbmRhcnlfc2VyaWVzX2V4dGVuZF90aW1lX3NjYWxlIjp7fSwiaGlkZV92b2x1bWVfbWEiOnt9LCJzbWFsbF9ub19kaXNwbGF5Ijp7fSwiY2hhcnRpbmdfbGlicmFyeV9zaW5nbGVfc3ltYm9sX3JlcXVlc3QiOnt9LCJ1c2VfdGlja2VyX29uX3N5bWJvbF9pbmZvX3VwZGF0ZSI6e30sInNob3dfem9vbV9hbmRfbW92ZV9idXR0b25zX29uX3RvdWNoIjp7fSwiaGlkZV9tYWluX3Nlcmllc19zeW1ib2xfZnJvbV9pbmRpY2F0b3JfbGVnZW5kIjp7fSwiY2hhcnRfaGlkZV9jbG9zZV9wb3NpdGlvbl9idXR0b24iOnt9LCJjaGFydF9oaWRlX2Nsb3NlX29yZGVyX2J1dHRvbiI6e30sImhpZGVfcHJpY2Vfc2NhbGVfZ2xvYmFsX2xhc3RfYmFyX3ZhbHVlIjp7InN1YnNldHMiOlsidXNlX2xhc3RfdmlzaWJsZV9iYXJfdmFsdWVfaW5fbGVnZW5kIl19LCJrZWVwX29iamVjdF90cmVlX3dpZGdldF9pbl9yaWdodF90b29sYmFyIjp7fSwic2hvd19hdmVyYWdlX2Nsb3NlX3ByaWNlX2xpbmVfYW5kX2xhYmVsIjp7fSwiaGlkZV9pbWFnZV9pbnZhbGlkX3N5bWJvbCI6e30sImhpZGVfb2JqZWN0X3RyZWVfYW5kX3ByaWNlX3NjYWxlX2V4Y2hhbmdlX2xhYmVsIjp7fSwiY29uZmlybV9vdmVyd3JpdGVfaWZfY2hhcnRfbGF5b3V0X3dpdGhfbmFtZV9leGlzdHMiOnt9LCJkZXRlcm1pbmVfZmlyc3RfZGF0YV9yZXF1ZXN0X3NpemVfdXNpbmdfdmlzaWJsZV9yYW5nZSI6e30sInVzZV9uYV9zdHJpbmdfZm9yX25vdF9hdmFpbGFibGVfdmFsdWVzIjp7fSwic2hvd19sYXN0X3ByaWNlX2FuZF9jaGFuZ2Vfb25seV9pbl9zZXJpZXNfbGVnZW5kIjp7fSwibGVnZW5kX2xhc3RfZGF5X2NoYW5nZSI6e30sImlmcmFtZV9sb2FkaW5nX2NvbXBhdGliaWxpdHlfbW9kZSI6e30sInNob3dfcGVyY2VudF9vcHRpb25fZm9yX3JpZ2h0X21hcmdpbiI6e30sIndhdGNobGlzdF9jb250ZXh0X21lbnUiOnt9LCJhY2Nlc3NpYmxlX2tleWJvYXJkX3Nob3J0Y3V0cyI6e30sImFkdmFuY2VkX2Vtb2ppX2luX3RpdGxlcyI6e30sImFwcF9waG9uZSI6e30sImFwcF90YWJsZXQiOnt9LCJtb2JpbGVfYXBwX2hpZGVfcmVwbGF5X3Rvb2xiYXIiOnt9LCJzeW1ib2xfc2VhcmNoX29wdGlvbl9jaGFpbl9zZWxlY3RvciI6e30sInNob3dfbmF0aXZlX3N5bWJvbF9zZWFyY2hfb25fdGFwX2luX2xlZ2VuZCI6e30sInNob3dfbmF0aXZlX3N5bWJvbF9zZWFyY2hfb25fbm9uX3RyYWRhYmxlIjp7fSwic2hvd19uZXdfbWVudV9pdGVtc19pbl9jaGFydF9tZW51cyI6e30sInByZV9wb3N0X21hcmtldF9wcmljZV9saW5lIjp7fSwicHJlX3Bvc3RfbWFya2V0X3Nlc3Npb25zIjp7fSwic3R1ZGllc19leHRlbmRfdGltZV9zY2FsZSI6e30sImluYWN0aXZpdHlfZ2FwcyI6e30sImFsaWduX2R3bV9iYXJzX3RvX21haW5fc2VyaWVzIjp7fSwicmVxdWVzdF9vbmx5X3Zpc2libGVfcmFuZ2Vfb25fcmVzZXQiOnt9LCJleHRlbmRlZF9leHRyYXBvbGF0aW9uX2xpbWl0Ijp7fSwidHZfcHJvZHVjdGlvbiI6eyJzdWJzZXRzIjpbIndhdGNobGlzdF9zZWN0aW9ucyIsImFkdmFuY2VkX2Vtb2ppX2luX3RpdGxlcyIsImF1dG9fZW5hYmxlX3N5bWJvbF9sYWJlbHMiLCJzeW1ib2xfc2VhcmNoX3BhcnNlcl9taXhpbiIsImhlYWRlcl9mdWxsc2NyZWVuX2J1dHRvbiIsImhlYWRlcl93aWRnZXQiLCJkb250X3Nob3dfYm9vbGVhbl9zdHVkeV9hcmd1bWVudHMiLCJsZWZ0X3Rvb2xiYXIiLCJyaWdodF90b29sYmFyIiwiYnV5X3NlbGxfYnV0dG9ucyIsImNvbnRyb2xfYmFyIiwic3ltYm9sX3NlYXJjaF9ob3Rfa2V5IiwiY29udGV4dF9tZW51cyIsImVkaXRfYnV0dG9uc19pbl9sZWdlbmQiLCJvYmplY3RfdHJlZV9sZWdlbmRfbW9kZSIsInVwcGVyY2FzZV9pbnN0cnVtZW50X25hbWVzIiwidXNlX2xvY2Fsc3RvcmFnZV9mb3Jfc2V0dGluZ3MiLCJzYXZlbG9hZF9yZXF1aXJlc19hdXRoZW50aWNhdGlvbiIsInZvbHVtZV9mb3JjZV9vdmVybGF5Iiwic2F2ZWRfY2hhcnRzX2NvdW50X3Jlc3RyaWN0aW9uIiwiY3JlYXRlX3ZvbHVtZV9pbmRpY2F0b3JfYnlfZGVmYXVsdCIsImNyZWF0ZV92b2x1bWVfaW5kaWNhdG9yX2J5X2RlZmF1bHRfb25jZSIsImNoYXJ0c19hdXRvX3NhdmUiLCJzYXZlX29sZF9jaGFydF9iZWZvcmVfc2F2ZV9hcyIsImNoYXJ0X2NvbnRlbnRfb3ZlcnJpZGVzX2J5X2RlZmF1bHRzIiwiYWxlcnRzIiwiaGVhZGVyX3NhdmVsb2FkIiwiaGVhZGVyX2xheW91dHRvZ2dsZSIsImRhdGFzb3VyY2VfY29weXBhc3RlIiwic2hvd19zYXZlZF93YXRjaGxpc3RzIiwid2F0Y2hsaXN0c19mcm9tX3RvX2ZpbGUiLCJhZGRfdG9fd2F0Y2hsaXN0IiwicHJvcGVydHlfcGFnZXMiLCJzdXBwb3J0X211bHRpY2hhcnRzIiwiZGlzcGxheV9tYXJrZXRfc3RhdHVzIiwiZGlzcGxheV9kYXRhX21vZGUiLCJzaG93X2NoYXJ0X3dhcm5fbWVzc2FnZSIsInN1cHBvcnRfbWFuYWdlX2RyYXdpbmdzIiwid2lkZ2V0YmFyX3RhYnMiLCJzdHVkeV90ZW1wbGF0ZXMiLCJjb2xsYXBzaWJsZV9oZWFkZXIiLCJkcmF3aW5nX3RlbXBsYXRlcyIsImhlYWRlcl90cmFkZV9idXR0b24iLCJzeW1ib2xfc2VhcmNoX2hpZ2hsaWdodF9hY3RpdmVfc3ltYm9sIiwiZm9vdGVyX3B1Ymxpc2hfaWRlYV9idXR0b24iLCJ0ZXh0X25vdGVzIiwic2hvd19zb3VyY2VfY29kZSIsInN5bWJvbF9pbmZvIiwibGluZXRvb2xwcm9wZXJ0aWVzd2lkZ2V0X3RlbXBsYXRlX2J1dHRvbiIsInRyYWRpbmdfbm90aWZpY2F0aW9ucyIsInN5bWJvbF9zZWFyY2hfdGhyZWVfY29sdW1uc19leGNoYW5nZXMiLCJzeW1ib2xfc2VhcmNoX2ZsYWdzIiwic3ltYm9sX3NlYXJjaF9saW1pdGVkX2V4Y2hhbmdlcyIsInBob25lX3ZlcmlmaWNhdGlvbiIsImN1c3RvbV9yZXNvbHV0aW9ucyIsImNvbXBhcmVfc3ltYm9sIiwic3R1ZHlfb25fc3R1ZHkiLCJqYXBhbmVzZV9jaGFydF9zdHlsZXMiLCJzaG93X2xvZ2luX2RpYWxvZyIsImRvbV93aWRnZXQiLCJiYXJzX21hcmtzIiwiY2hhcnRfc2Nyb2xsIiwiY2hhcnRfem9vbSIsInNob3dfdHJhZGluZ19ub3RpZmljYXRpb25zX2hpc3RvcnkiLCJzb3VyY2Vfc2VsZWN0aW9uX21hcmtlcnMiLCJzdHVkeV9kaWFsb2dfZnVuZGFtZW50YWxzX2Vjb25vbXlfYWRkb25zIiwibXVsdGlwbGVfd2F0Y2hsaXN0cyIsIm1hcmtlZF9zeW1ib2xzIiwib3JkZXJfcGFuZWwiLCJwcmljZXNjYWxlX2N1cnJlbmN5Iiwic2hvd19hbmltYXRlZF9sb2dvIiwicHJpY2VzY2FsZV9jdXJyZW5jeSIsInNob3dfb2JqZWN0X3RyZWUiLCJ3YXRjaGxpc3RfaW1wb3J0X2V4cG9ydCIsInNjYWxlc19kYXRlX2Zvcm1hdCIsInNjYWxlc190aW1lX2hvdXJzX2Zvcm1hdCIsInBvcHVwX2hpbnRzIiwic2hvd19yaWdodF93aWRnZXRzX3BhbmVsX2J5X2RlZmF1bHQiLCJjb21wYXJlX3JlY2VudF9zeW1ib2xzX2VuYWJsZWQiLCJjaGFydF9zdHlsZV9oaWxvX2xhc3RfcHJpY2UiLCJzeW1ib2xfc2VhcmNoX29wdGlvbl9jaGFpbl9zZWxlY3RvciIsInNob3dfbmV3X21lbnVfaXRlbXNfaW5fY2hhcnRfbWVudXMiLCJrZWVwX3NlbGVjdGVkX2dyb3VwX29uX3Rvb2xfY3JlYXRpb24iXX0sIndpZGdldCI6eyJzdWJzZXRzIjpbImF1dG9fZW5hYmxlX3N5bWJvbF9sYWJlbHMiLCJzeW1ib2xfc2VhcmNoX3BhcnNlcl9taXhpbiIsInVwcGVyY2FzZV9pbnN0cnVtZW50X25hbWVzIiwibGVmdF90b29sYmFyIiwicmlnaHRfdG9vbGJhciIsImNvbnRyb2xfYmFyIiwic3ltYm9sX3NlYXJjaF9ob3Rfa2V5IiwiY29udGV4dF9tZW51cyIsImVkaXRfYnV0dG9uc19pbl9sZWdlbmQiLCJvYmplY3RfdHJlZV9sZWdlbmRfbW9kZSIsInVzZV9sb2NhbHN0b3JhZ2VfZm9yX3NldHRpbmdzIiwic2F2ZWxvYWRfcmVxdWlyZXNfYXV0aGVudGljYXRpb24iLCJ2b2x1bWVfZm9yY2Vfb3ZlcmxheSIsImNyZWF0ZV92b2x1bWVfaW5kaWNhdG9yX2J5X2RlZmF1bHQiLCJjcmVhdGVfdm9sdW1lX2luZGljYXRvcl9ieV9kZWZhdWx0X29uY2UiLCJkb250X3Nob3dfYm9vbGVhbl9zdHVkeV9hcmd1bWVudHMiLCJoZWFkZXJfd2lkZ2V0X2RvbV9ub2RlIiwiaGVhZGVyX3N5bWJvbF9zZWFyY2giLCJoZWFkZXJfcmVzb2x1dGlvbnMiLCJoZWFkZXJfY2hhcnRfdHlwZSIsImhlYWRlcl9jb21wYXJlIiwiaGVhZGVyX2luZGljYXRvcnMiLCJzdGFyX3NvbWVfaW50ZXJ2YWxzX2J5X2RlZmF1bHQiLCJkaXNwbGF5X21hcmtldF9zdGF0dXMiLCJkaXNwbGF5X2RhdGFfbW9kZSIsInNob3dfY2hhcnRfd2Fybl9tZXNzYWdlIiwic3ltYm9sX2luZm8iLCJsaW5ldG9vbHByb3BlcnRpZXN3aWRnZXRfdGVtcGxhdGVfYnV0dG9uIiwic3ltYm9sX3NlYXJjaF90aHJlZV9jb2x1bW5zX2V4Y2hhbmdlcyIsInN5bWJvbF9zZWFyY2hfZmxhZ3MiLCJzeW1ib2xfc2VhcmNoX2xpbWl0ZWRfZXhjaGFuZ2VzIiwid2lkZ2V0YmFyX3RhYnMiLCJjb21wYXJlX3N5bWJvbCIsInNob3dfbG9naW5fZGlhbG9nIiwicGxhaW5fc3R1ZHltYXJrZXQiLCJqYXBhbmVzZV9jaGFydF9zdHlsZXMiLCJiYXJzX21hcmtzIiwiY2hhcnRfc2Nyb2xsIiwiY2hhcnRfem9vbSIsInNvdXJjZV9zZWxlY3Rpb25fbWFya2VycyIsInByb3BlcnR5X3BhZ2VzIiwic2hvd19yaWdodF93aWRnZXRzX3BhbmVsX2J5X2RlZmF1bHQiLCJjaGFydF9zdHlsZV9oaWxvX2xhc3RfcHJpY2UiLCJzeW1ib2xfc2VhcmNoX2hpZ2hsaWdodF9hY3RpdmVfc3ltYm9sIl19LCJib3Zlc3BhX3dpZGdldCI6eyJzdWJzZXRzIjpbIndpZGdldCIsImhlYWRlcl9zZXR0aW5ncyIsImxpbmV0b29scHJvcGVydGllc3dpZGdldF90ZW1wbGF0ZV9idXR0b24iLCJjb21wYXJlX3JlY2VudF9zeW1ib2xzX2VuYWJsZWQiXX0sImNoYXJ0aW5nX2xpYnJhcnlfYmFzZSI6eyJzdWJzZXRzIjpbIjE0ODUxIiwiYWxsb3dfc3VwcG9ydGVkX3Jlc29sdXRpb25zX3NldF9vbmx5IiwiYXV0b19lbmFibGVfc3ltYm9sX2xhYmVscyIsImJvcmRlcl9hcm91bmRfdGhlX2NoYXJ0IiwiY29sbGFwc2libGVfaGVhZGVyIiwiY29uc3RyYWludF9kaWFsb2dzX21vdmVtZW50IiwiY29udGV4dF9tZW51cyIsImNvbnRyb2xfYmFyIiwiY3JlYXRlX3ZvbHVtZV9pbmRpY2F0b3JfYnlfZGVmYXVsdCIsImN1c3RvbV9pdGVtc19pbl9jb250ZXh0X21lbnUiLCJkYXRhc291cmNlX2NvcHlwYXN0ZSIsInVwcGVyY2FzZV9pbnN0cnVtZW50X25hbWVzIiwiZGlzcGxheV9tYXJrZXRfc3RhdHVzIiwiZWRpdF9idXR0b25zX2luX2xlZ2VuZCIsIm9iamVjdF90cmVlX2xlZ2VuZF9tb2RlIiwiZ3JheWluZ19kaXNhYmxlZF90b29sc19lbmFibGVkIiwiaGVhZGVyX3dpZGdldCIsImxlZ2VuZF93aWRnZXQiLCJoZWFkZXJfc2F2ZWxvYWQiLCJkb250X3Nob3dfYm9vbGVhbl9zdHVkeV9hcmd1bWVudHMiLCJsZWFuX2NoYXJ0X2xvYWQiLCJsZWZ0X3Rvb2xiYXIiLCJyaWdodF90b29sYmFyIiwibGlua190b190cmFkaW5ndmlldyIsInBheV9hdHRlbnRpb25fdG9fdGlja2VyX25vdF9zeW1ib2wiLCJwbGFpbl9zdHVkeW1hcmtldCIsInJlZnJlc2hfc2F2ZWRfY2hhcnRzX2xpc3Rfb25fZGlhbG9nX3Nob3ciLCJyaWdodF9iYXJfc3RheXNfb25fc2Nyb2xsIiwic2F2ZWxvYWRfc3RvcmFnZV9jdXN0b21pemF0aW9uIiwic3RvcF9zdHVkeV9vbl9yZXN0YXJ0IiwidGltZWZyYW1lc190b29sYmFyIiwic3ltYm9sX3NlYXJjaF9ob3Rfa2V5IiwidXBkYXRlX3N0dWR5X2Zvcm1hdHRlcl9vbl9zeW1ib2xfcmVzb2x2ZSIsInVwZGF0ZV90aW1lZnJhbWVzX3NldF9vbl9zeW1ib2xfcmVzb2x2ZSIsInVzZV9sb2NhbHN0b3JhZ2VfZm9yX3NldHRpbmdzIiwidm9sdW1lX2ZvcmNlX292ZXJsYXkiLCJ3aWRnZXRfbG9nbyIsImNvdW50ZG93biIsInVzZV9vdmVycmlkZXNfZm9yX292ZXJsYXkiLCJ0cmFkaW5nX25vdGlmaWNhdGlvbnMiLCJjb21wYXJlX3N5bWJvbCIsInN5bWJvbF9pbmZvIiwidGltZXpvbmVfbWVudSIsIm1haW5fc2VyaWVzX3NjYWxlX21lbnUiLCJjcmVhdGVfdm9sdW1lX2luZGljYXRvcl9ieV9kZWZhdWx0X29uY2UiLCJiYXJzX21hcmtzIiwiY2hhcnRfc2Nyb2xsIiwiY2hhcnRfem9vbSIsInNvdXJjZV9zZWxlY3Rpb25fbWFya2VycyIsInByb3BlcnR5X3BhZ2VzIiwiZ29fdG9fZGF0ZSIsImFkYXB0aXZlX2xvZ28iLCJzaG93X2FuaW1hdGVkX2xvZ28iLCJoYW5kbGVfc2NhbGUiLCJoYW5kbGVfc2Nyb2xsIiwic2hpZnRfdmlzaWJsZV9yYW5nZV9vbl9uZXdfYmFyIiwiY2hhcnRfY29udGVudF9vdmVycmlkZXNfYnlfZGVmYXVsdHMiLCJjcm9wcGVkX3RpY2tfbWFya3MiLCJzY2FsZXNfZGF0ZV9mb3JtYXQiLCJzY2FsZXNfdGltZV9ob3Vyc19mb3JtYXQiLCJwb3B1cF9oaW50cyIsInNhdmVfc2hvcnRjdXQiLCJzaG93X3JpZ2h0X3dpZGdldHNfcGFuZWxfYnlfZGVmYXVsdCIsInNob3dfb2JqZWN0X3RyZWUiLCJpbnNlcnRfaW5kaWNhdG9yX2RpYWxvZ19zaG9ydGN1dCIsImNvbXBhcmVfcmVjZW50X3N5bWJvbHNfZW5hYmxlZCIsImhpZGVfbWFpbl9zZXJpZXNfc3ltYm9sX2Zyb21faW5kaWNhdG9yX2xlZ2VuZCIsImNoYXJ0X3N0eWxlX2hpbG8iLCJyZXF1ZXN0X29ubHlfdmlzaWJsZV9yYW5nZV9vbl9yZXNldCIsImNsZWFyX3ByaWNlX3NjYWxlX29uX2Vycm9yX29yX2VtcHR5X2JhcnMiLCJzaG93X3N5bWJvbF9sb2dvX2luX2xlZ2VuZCIsInNob3dfc3ltYm9sX2xvZ29fZm9yX2NvbXBhcmVfc3R1ZGllcyIsImxpYnJhcnlfY3VzdG9tX2NvbG9yX3RoZW1lcyIsImxvbmdfcHJlc3NfZmxvYXRpbmdfdG9vbHRpcCIsInN5bWJvbF9zZWFyY2hfaGlnaGxpZ2h0X2FjdGl2ZV9zeW1ib2wiXX0sImNoYXJ0aW5nX2xpYnJhcnkiOnsic3Vic2V0cyI6WyJjaGFydGluZ19saWJyYXJ5X2Jhc2UiXX0sInN0YXRpY19jaGFydHNfc2VydmljZSI6eyJzdWJzZXRzIjpbImNoYXJ0aW5nX2xpYnJhcnkiLCJkaXNhYmxlX3Jlc29sdXRpb25fcmVidWlsZCJdfSwidHJhZGluZ190ZXJtaW5hbCI6eyJzdWJzZXRzIjpbImNoYXJ0aW5nX2xpYnJhcnlfYmFzZSIsInN1cHBvcnRfbXVsdGljaGFydHMiLCJoZWFkZXJfbGF5b3V0dG9nZ2xlIiwiamFwYW5lc2VfY2hhcnRfc3R5bGVzIiwiY2hhcnRfcHJvcGVydHlfcGFnZV90cmFkaW5nIiwiYWRkX3RvX3dhdGNobGlzdCIsIm9wZW5fYWNjb3VudF9tYW5hZ2VyIiwic2hvd19kb21fZmlyc3RfdGltZSIsIm9yZGVyX3BhbmVsIiwiYnV5X3NlbGxfYnV0dG9ucyIsIm11bHRpcGxlX3dhdGNobGlzdHMiLCJzaG93X3RyYWRpbmdfbm90aWZpY2F0aW9uc19oaXN0b3J5IiwiYWx3YXlzX3Bhc3NfY2FsbGVkX29yZGVyX3RvX21vZGlmeSIsInNob3dfb2JqZWN0X3RyZWUiLCJ3YXRjaGxpc3RfaW1wb3J0X2V4cG9ydCIsImRyYXdpbmdfdGVtcGxhdGVzIiwidHJhZGluZ19hY2NvdW50X21hbmFnZXIiLCJjaGFydF9jcm9zc2hhaXJfbWVudSIsImNvbXBhcmVfcmVjZW50X3N5bWJvbHNfZW5hYmxlZCIsIndhdGNobGlzdF9jb250ZXh0X21lbnUiLCJzaG93X3N5bWJvbF9sb2dvX2luX2FjY291bnRfbWFuYWdlciIsInNob3dfc3ltYm9sX2xvZ29faW5fY2xvc2VfcG9zaXRpb25fZGlhbG9nIiwic2hvd19zeW1ib2xfbG9nb19pbl9jYW5jZWxfb3JkZXJfZGlhbG9nIiwid2F0Y2hsaXN0X3NlY3Rpb25zIiwicHJlZmVyX3F1b3RlX3Nob3J0X25hbWUiLCJlbmFibGVfZG9tX2RhdGFfZm9yX3VudHJhZGFibGVfc3ltYm9scyIsInByZWZlcl9zeW1ib2xfbmFtZV9vdmVyX2Z1bGxuYW1lIiwid2F0Y2hsaXN0X2Nyb3NzX3RhYl9zeW5jIl19fScpCn0sNzQ2OTQ5KGUpewplLmV4cG9ydHM9SlNPTi5wYXJzZSgneyJhZHgiOiJ3aWRnZXRfdXNlcl90b2tlbi1hZHgiLCJhZHhEIjoid2lkZ2V0X3VzZXJfdG9rZW4tYWR4RCIsImFnZW5jaWFsYm1jb21iciI6IndpZGdldF91c2VyX3Rva2VuLWFnZW5jaWFsYm1jb21iciIsImFsamF6aXJhY2FwaXRhbEQiOiJ3aWRnZXRfdXNlcl90b2tlbi1hbGphemlyYWNhcGl0YWxEIiwiYWxqYXppcmFjYXBpdGFsUlQiOiJ3aWRnZXRfdXNlcl90b2tlbi1hbGphemlyYWNhcGl0YWxSVCIsImFscmFqaGljYXBpdGFsY29tRCI6IndpZGdldF91c2VyX3Rva2VuLWFscmFqaGljYXBpdGFsY29tRCIsImFscmFqaGljYXBpdGFsY29tUlQiOiJ3aWRnZXRfdXNlcl90b2tlbi1hbHJhamhpY2FwaXRhbGNvbVJUIiwiYW1iaXRvIjoid2lkZ2V0X3VzZXJfdG9rZW4tYW1iaXRvIiwiYXJlbmF4dHJvIjoid2lkZ2V0X3VzZXJfdG9rZW4tYXJlbmF4dHJvIiwiYXJ0ZWNoZWNvbSI6IndpZGdldF91c2VyX3Rva2VuLUFydGVjaGVEIiwiYXRsY2FwaXRhbCI6IndpZGdldF91c2VyX3Rva2VuLWF0bGNhcGl0YWwiLCJiYW5raXJvc3J1Ijoid2lkZ2V0X3VzZXJfdG9rZW4tYmFua2lyb3NydSIsImJidmFjaCI6IndpZGdldF91c2VyX3Rva2VuLWJidmFjaCIsImJlZWtzZ3JvdXAiOiJ3aWRnZXRfdXNlcl90b2tlbi1iZWVrc2dyb3VwIiwiYmVsdWdhZ3JvdXBydSI6IndpZGdldF91c2VyX3Rva2VuLWJlbHVnYWdyb3VwcnUiLCJiaXZhY29tIjoid2lkZ2V0X3VzZXJfdG9rZW4tYml2YWNvbSIsImJsdWVmaWVsZCI6IndpZGdldF91c2VyX3Rva2VuLWJsdWVmaWVsZCIsImJsdWVsaW5lZnV0dXJlcyI6IndpZGdldF91c2VyX3Rva2VuLWJsdWVsaW5lZnV0dXJlcyIsImJvdmVzcGEiOiJ3aWRnZXRfdXNlcl90b2tlbi1ibWZib3Zlc3BhY29tYnIiLCJidmJybyI6IndpZGdldF91c2VyX3Rva2VuLWJ2YnJvIiwiYnl0ZXRyYXZlbCI6IndpZGdldF91c2VyX3Rva2VuLWJ5dGV0cmF2ZWwiLCJjYm9lY2FuYWRhIjoid2lkZ2V0X3VzZXJfdG9rZW4tY2JvZWNhbmFkYSIsImNoYW1waW9ubmF0Ym91cnNlIjoid2lkZ2V0X3VzZXJfdG9rZW4tY2hhbXBpb25uYXRib3Vyc2UiLCJjaW5jb2RpYXMiOiJ3aWRnZXRfdXNlcl90b2tlbi1jaW5jb2RpYXMiLCJjZW9jYUQiOiJ3aWRnZXRfdXNlcl90b2tlbi1jZW9jYUQiLCJjZW9jYVJUIjoid2lkZ2V0X3VzZXJfdG9rZW4tY2VvY2FSVCIsImNtY21hcmtldHMiOiJ3aWRnZXRfdXNlcl90b2tlbi1jbWNtYXJrZXRzIiwiY29wZWVzIjoid2lkZ2V0X3VzZXJfdG9rZW4tY29wZWVzIiwiY3NlbGsiOiJ3aWRnZXRfdXNlcl90b2tlbi1jc2VsayIsImRhaWx5ZngiOiJ3aWRnZXRfdXNlcl90b2tlbi1kYWlseWZ4IiwiZGVlcHNlYXJjaCI6IndpZGdldF91c2VyX3Rva2VuLWRlZXBzZWFyY2giLCJkZXJheWFoY29tIjoid2lkZ2V0X3VzZXJfdG9rZW4tZGVyYXlhaGNvbSIsImRmbWFlRCI6IndpZGdldF91c2VyX3Rva2VuLWRmbWFlRCIsImRmbWFlUlQiOiJ3aWRnZXRfdXNlcl90b2tlbi1kZm1hZVJUIiwiZGluYXJzYUQiOiJ3aWRnZXRfdXNlcl90b2tlbi1kaW5hcnNhRCIsImRpbmFyc2FSVCI6IndpZGdldF91c2VyX3Rva2VuLWRpbmFyc2FSVCIsImRvbGFyaG95Ijoid2lkZ2V0X3VzZXJfdG9rZW4tZG9sYXJob3kiLCJlYXN5bnZlc3Rjb21iciI6IndpZGdldF91c2VyX3Rva2VuLWVhc3ludmVzdGNvbWJyIiwiZWRhaWx5Ijoid2lkZ2V0X3VzZXJfdG9rZW4tZWRhaWx5IiwiZWxlc3Bhbm9sY29tIjoid2lkZ2V0X3VzZXJfdG9rZW4tZWxlc3Bhbm9sY29tIiwiZWxvYnJlcm9lcyI6IndpZGdldF91c2VyX3Rva2VuLWVsb2JyZXJvZXMiLCJlbG5hY2lvbmFsRCI6IndpZGdldF91c2VyX3Rva2VuLUVsTmFjaW9uYWxEIiwiZWxwYWlzZmluYW5jaWVybyI6IndpZGdldF91c2VyX3Rva2VuLWVscGFpc2ZpbmFuY2llcm8iLCJlbHBlcmlvZGljb2RlbGFlbmVyZ2lhIjoid2lkZ2V0X3VzZXJfdG9rZW4tZWxwZXJpb2RpY29kZWxhZW5lcmdpYSIsImV1cXVlcm9pbnZlc3RpciI6IndpZGdldF91c2VyX3Rva2VuLWV1cXVlcm9pbnZlc3RpcmNvbSIsImV1cmV4Ijoid2lkZ2V0X3VzZXJfdG9rZW4tZXVyZXgiLCJldXJvZmlucyI6IndpZGdldF91c2VyX3Rva2VuLWV1cm9maW5zIiwiZXBlIjoid2lkZ2V0X3VzZXJfdG9rZW4tZXBlIiwiZXVyb3BhcHJlc3NlcyI6IndpZGdldF91c2VyX3Rva2VuLWV1cm9wYXByZXNzZXMiLCJmaW5hbnphc0QiOiJ3aWRnZXRfdXNlcl90b2tlbi1GaW5hbnphc0QiLCJmb3JiZXNjb21iciI6IndpZGdldF91c2VyX3Rva2VuLWZvcmJlc2NvbWJyIiwiZ2VuaWFsaW52ZXN0aW1lbnRvcyI6IndpZGdldF91c2VyX3Rva2VuLWdlbmlhbGludmVzdGltZW50b3MiLCJoZWFsdGhpdGFsaWEiOiJ3aWRnZXRfdXNlcl90b2tlbi1oZWFsdGhpdGFsaWEiLCJoZWduYXJubyI6IndpZGdldF91c2VyX3Rva2VuLWhlZ25hcm5vIiwiaGlwb3RlY2FyaW9jb21hciI6IndpZGdldF91c2VyX3Rva2VuLWhpcG90ZWNhcmlvY29tYXIiLCJpZ2NvbSI6IndpZGdldF91c2VyX3Rva2VuLWlnY29tIiwiaW52ZXN0ZWdhdGVjb3VrIjoid2lkZ2V0X3VzZXJfdG9rZW4taW52ZXN0ZWdhdGVjb3VrIiwiaW52ZXN0b3BlZGlhIjoid2lkZ2V0X3VzZXJfdG9rZW4taW52ZXN0b3BlZGlhIiwiaW50ZWdyYWx5YXRpcmltIjoid2lkZ2V0X3VzZXJfdG9rZW4taW50ZWdyYWx5YXRpcmltIiwiaXZzZ3JvdXAiOiJ3aWRnZXRfdXNlcl90b2tlbi1pdnNncm91cCIsImpzZWNvemEiOiJ3aWRnZXRfdXNlcl90b2tlbi1qc2Vjb3phIiwiYm9lcnNlbnplaXR1bmciOiJ3aWRnZXRfdXNlcl90b2tlbi1ib2Vyc2VuemVpdHVuZyIsImxhaW5mb3JtYWNpb25jb20iOiJ3aWRnZXRfdXNlcl90b2tlbi1sYWluZm9ybWFjaW9uY29tIiwibWFyY29wb2xvY29tYnIiOiJ3aWRnZXRfdXNlcl90b2tlbi1tYXJjb3BvbG9jb21iciIsIm1lcmNhZG9maW5hbmNpZXJvY29tIjoid2lkZ2V0X3VzZXJfdG9rZW4tbWVyY2Fkb2ZpbmFuY2llcm9jb20iLCJtb2V4Ijoid2lkZ2V0X3VzZXJfdG9rZW4tbW9leCIsIm1vbmV5dGltZXNjb21iciI6IndpZGdldF91c2VyX3Rva2VuLW1vbmV5dGltZXNjb21iciIsIm1vbml0b3Jkb21lcmNhZG9EIjoid2lkZ2V0X3VzZXJfdG9rZW4tbW9uaXRvcmRvbWVyY2Fkb0QiLCJteW5ldGNvbSI6IndpZGdldF91c2VyX3Rva2VuLW15bmV0Y29tIiwibmVnb2Npb3MiOiJ3aWRnZXRfdXNlcl90b2tlbi1uZWdvY2lvcyIsIk5HWCI6IndpZGdldF91c2VyX3Rva2VuLU5HWCIsIk5vdGljaWFzYWdyaWNvbGFEIjoid2lkZ2V0X3VzZXJfdG9rZW4tbm90aWNpYXNhZ3JpY29sYUQiLCJub21tb21hIjoid2lkZ2V0X3VzZXJfdG9rZW4tbm9tbW9tYSIsIm5zZWNva3IiOiJ3aWRnZXRfdXNlcl90b2tlbi1uc2Vjb2tyIiwib2tkaWFyaW8iOiJ3aWRnZXRfdXNlcl90b2tlbi1va2RpYXJpbyIsInBhbmFmcmljYW5yZXNvdXJjZXNjb20iOiJ3aWRnZXRfdXNlcl90b2tlbi1wYW5hZnJpY2FucmVzb3VyY2VzY29tIiwicHNlIjoid2lkZ2V0X3VzZXJfdG9rZW4tcHNlIiwicG9kZXIzNjAiOiJ3aWRnZXRfdXNlcl90b2tlbi1wb2RlcjM2MCIsInBzZUQiOiJ3aWRnZXRfdXNlcl90b2tlbi1wc2VEIiwicml5YWRoY2FwaXRhbEQiOiJ3aWRnZXRfdXNlcl90b2tlbi1yaXlhZGhjYXBpdGFsRCIsInJpeWFkaGNhcGl0YWxSVCI6IndpZGdldF91c2VyX3Rva2VuLXJpeWFkaGNhcGl0YWxSVCIsInFlY29tcWEiOiJ3aWRnZXRfdXNlcl90b2tlbi1xZWNvbXFhIiwic2Ftb2xldCI6IndpZGdldF91c2VyX3Rva2VuLXNhbW9sZXQiLCJzZWVpbmdtYWNoaW5lc2NvbSI6IndpZGdldF91c2VyX3Rva2VuLXNlZWluZ21hY2hpbmVzY29tIiwic2V1ZGluaGVpcm8iOiJ3aWRnZXRfdXNlcl90b2tlbi1zZXVkaW5oZWlybyIsInNvZnR3YXJlYWciOiJ3aWRnZXRfdXNlcl90b2tlbi1zb2Z0d2FyZWFnIiwic29nZWNsYWlyIjoid2lkZ2V0X3VzZXJfdG9rZW4tc29nZWNsYWlyIiwic2djb21wYW55aXQiOiJ3aWRnZXRfdXNlcl90b2tlbi1zZ2NvbXBhbnlpdCIsInNoYXJlanVuY3Rpb24iOiJ3aWRnZXRfdXNlcl90b2tlbi1zaGFyZWp1bmN0aW9uIiwic21hcnRsYWItY3VzdG9tIjoid2lkZ2V0X3VzZXJfdG9rZW4tc21hcnRsYWIiLCJzbWFydGxhYiI6IndpZGdldF91c2VyX3Rva2VuLXNtYXJ0bGFiIiwic3BhY2Vtb25leWNvbWJyIjoid2lkZ2V0X3VzZXJfdG9rZW4tc3BhY2Vtb25leWNvbWJyIiwic3RvbmV4d2RnIjoid2lkZ2V0X3VzZXJfdG9rZW4tc3RvbmV4wqMtIXd3dy5zdG9uZXguY29tIiwic3RveGlvIjoid2lkZ2V0X3VzZXJfdG9rZW4tc3RveGlvIiwic3RvbmV4Ijoid2lkZ2V0X3VzZXJfdG9rZW4tc3RvbmV4IiwidG9yb2ludmVzdGltZW50b3Njb20iOiJ3aWRnZXRfdXNlcl90b2tlbi10b3JvaW52ZXN0aW1lbnRvc2NvbSIsInRoZWNzZWNvbSI6IndpZGdldF91c2VyX3Rva2VuLXRoZWNzZWNvbSIsInRyYWRlcnNjbHViYnJhc2lsIjoid2lkZ2V0X3VzZXJfdG9rZW4tdHJhZGVyc2NsdWJicmFzaWwiLCJ0cmFkZXJzY2x1YmJyYXNpbEQiOiJ3aWRnZXRfdXNlcl90b2tlbi10cmFkZXJzY2x1YmJyYXNpbEQiLCJ0cmFkaW5ndmlldyI6IndpZGdldF91c2VyX3Rva2VuLXRyYWRpbmd2aWV3IiwieHRvb2xzIjoid2lkZ2V0X3VzZXJfdG9rZW4teHRvb2xzIiwidHdpdHRlciI6IndpZGdldF91c2VyX3Rva2VuLXR3aXR0ZXIiLCJ2ZWxvY2l0eWNvbXBvc2l0ZXNjb20iOiJ3aWRnZXRfdXNlcl90b2tlbi12ZWxvY2l0eWNvbXBvc2l0ZXNjb20iLCJ2b2Nlc2FhYnJpbGNvbWJyIjoid2lkZ2V0X3VzZXJfdG9rZW4tdm9jZXNhYWJyaWxjb21iciIsIndlYWx0aHNpbXBsZSI6IndpZGdldF91c2VyX3Rva2VuLXdlYWx0aHNpbXBsZcKjLSFteS53ZWFsdGhzaW1wbGUuY29tIiwid29ybGRjaGVzc2NvbSI6IndpZGdldF91c2VyX3Rva2VuLXdvcmxkY2hlc3Njb20iLCJ4Q3J0eUprc3AiOiJ3aWRnZXRfdXNlcl90b2tlbi14Q3J0eUprc3AiLCJ4cGljb21iciI6IndpZGdldF91c2VyX3Rva2VuLXhwaWNvbWJyIn0nKQp9fV0pOw=="}},"time_used":12,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":12,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/3552.4c5535183b7a0330a89d.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:12.999Z","timestamp":1785148032999,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/3552.4c5535183b7a0330a89d.js HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:13 GMT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a608293-2fa2\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Wed, 22 Jul 2026 08:42:59 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/22/2026 11:01:37\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 246344c0d7ccde66a1f56d5bf1268c8d\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":12194,"size_decoded":4814,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, Unicode text, UTF-8 text, with very long lines (3071)","md5":"8cb7d12d58618d9e9433db7cf169e678","sha1":"dd2e2830dd9f4f8c3e4000fb90c94712f7315f67","sha256":"e54bba4bdf7867aec664fc0c023a4e77650464bb7e2e1a2d80ef75500363cd92","sha512":"9c9ce4a19d03df706a0fb6495901a15dd961b87797e48e43669a130ec51d4d3788fcd9e251dd54f1560134509553e5c7a1cc17249ad1f6f562d104b6b10d9a66","ssdeep":"192:ETCSGJXJ6h4GX8tWKEN7Nbj61RO2g6OQLgwF8TEz5XnC/x6/v60KjBHAH4yiFbBw:EmSGehtqWNN7Nbj61ROQLRF8TkVNjaAj","tlshash":"ab42b53d719358a8666780e980390b7ba6283980a58741bcfb78dccf46cddd46277f38","first_seen":"2026-07-22T11:33:41.980937Z","last_seen":"2026-07-27T13:00:41.43535Z","times_seen":1683,"resource_available":true,"data":"KHNlbGYud2VicGFja0NodW5rdHJhZGluZ3ZpZXc9c2VsZi53ZWJwYWNrQ2h1bmt0cmFkaW5ndmlld3x8W10pLnB1c2goW1szNTUyXSx7NDUwMjk1KHQpe3QuZXhwb3J0cz17fX0sNDYyMzUodCl7dC5leHBvcnRzPXt9fSw5NzMxMTkodCxlLHMpeyJ1c2Ugc3RyaWN0IjtzLmQoZSx7cXVvdGVUaWNrZXJGb3JtYXRDaGFuZ2U6KCk9Pm59KTt2YXIgaT1zKDc1NTYyNyksYT1zKDk4NDM3Nik7dmFyIG89cygyMTYxMSk7ZnVuY3Rpb24gbih0LGUscyl7Y29uc3Qgbj0oMCxvLnRvTnVtYmVyT3JVbmRlZmluZWQpKHQpO2lmKCJlY29ub21pYyI9PT1lPy50eXBlJiYwPT09bnx8dm9pZCAwPT09bilyZXR1cm47Y29uc3QgbD1zPy5jdXN0b21QcmljZUZvcm1hdHRlcnx8InZvbHVtZSI9PT1lLmZvcm1hdCYmbmV3IGEuVm9sdW1lRm9ybWF0dGVyKHtwcmVjaXNpb246Mn0pfHxuZXcgaS5QcmljZUZvcm1hdHRlcih7cHJpY2VTY2FsZTplLnByaWNlc2NhbGV8fDEwMCxtaW5Nb3ZlOmUubWlubW92fHwxLGZyYWN0aW9uYWw6ZS5mcmFjdGlvbmFsLG1pbk1vdmUyOmUubWlubW92ZTJ9KSxyPXZvaWQgMCE9PXM/LnNpZ25Qb3NpdGl2ZUNoYW5nZT9zLnNpZ25Qb3NpdGl2ZUNoYW5nZTpzPy5zaWduUG9zaXRpdmU7cmV0dXJuKCh0LGU9ITApPT5lP2AoJHt0fSlgOnQpKGwuZm9ybWF0KG4se3NpZ25Qb3NpdGl2ZTpyLHNpZ25OZWdhdGl2ZTpzPy5zaWduTmVnYXRpdmV9KSxzPy5jaGFuZ2VJbkJyYWNrZXRzKX19LDYwMjg3KHQsZSxzKXsidXNlIHN0cmljdCI7cy5kKGUse3F1b3RlVGlja2VyRm9ybWF0Q3VycmVuY3k6KCk9PmF9KTt2YXIgaT1zKDE4NTI3MSk7ZnVuY3Rpb24gYSh0KXtzd2l0Y2godCl7Y2FzZSJERUdDIjpyZXR1cm4i4oSDIjtjYXNlIlBDVERZIjpyZXR1cm4gaS50KG51bGwse2NvbnRleHQ6Il9tYXhfbGVuXzkifSxzKDQ0NTA1KSk7Y2FzZSJQQ1RQQVIiOnJldHVybiBpLnQobnVsbCx7Y29udGV4dDoiX21heF9sZW5fOSJ9LHMoNDY4NDYwKSk7ZGVmYXVsdDpyZXR1cm4gdH19Nzg2NzYwKHQsZSxzKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gaSh0KXtyZXR1cm4ibWN4X2ZyZWUiPT09dH1mdW5jdGlvbiBhKHQpe3JldHVybiEhdCYmKGkodC5zeW1ib2xuYW1lKXx8InBlcm1pc3Npb25fZGVuaWVkIj09PXQuc3RhdHVzJiZpKHQudmFsdWVzPy5hbHRlcm5hdGl2ZSkpfXMuZChlLHtpc01jeFF1b3RlRGF0YTooKT0+YX0pfSwxMDE3MTIodCxlLHMpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBpKHQpe3JldHVybiB0LmVuZHNXaXRoKCJfZGx5Iil9ZnVuY3Rpb24gYSh0KXtyZXR1cm4hIXQmJighKHZvaWQgMD09PXQuc3ltYm9sbmFtZXx8IWkodC5zeW1ib2xuYW1lKSl8fEJvb2xlYW4oInBlcm1pc3Npb25fZGVuaWVkIj09PXQuc3RhdHVzJiZ0LnZhbHVlcyYmdm9pZCAwIT09dC52YWx1ZXMuYWx0ZXJuYXRpdmUmJmkodC52YWx1ZXMuYWx0ZXJuYXRpdmUpKSl9cy5kKGUse2lzU2ZRdW90ZURhdGE6KCk9PmF9KX0sMjAyNDYwKHQsZSxzKXsidXNlIHN0cmljdCI7cy5kKGUse0Fic3RyYWN0SW5kaWNhdG9yOigpPT5sfSk7dmFyIGk9cygyMjEwNjEpLGE9cygxNTAxNTApLG89cygxNTk1MTMpO3MoMzQ0Nzg1KTtjb25zdCBuPSgwLGkuZ2V0TG9nZ2VyKSgiR1VJLkJsb2Nrcy5BYnN0cmFjdEluZGljYXRvciIpO2NsYXNzIGx7Y29uc3RydWN0b3IodCl7dGhpcy5fY2xhc3NTdWZmaXg9IiIsdGhpcy5fcXVvdGVTZXNzaW9uUHJlZml4PSJhYnN0cmFjdC1pbmRpY2F0b3IiLHRoaXMuX3Nob3J0TW9kZT0hMSx0aGlzLl9zaG93VG9vbHRpcD0hMCx0aGlzLl9zdWJzY3JpYmVkPSExLHRoaXMuX3Rvb2x0aXBUeXBlPSJjdXN0b20iLHRoaXMuX2xhc3RUb29sdGlwVGV4dD0iIix0aGlzLl9xdW90ZVNlc3Npb249dC5xdW90ZVNlc3Npb259Z2V0VmFsdWUoKXtyZXR1cm4gdGhpcy5fdmFsdWV9Z2V0VG9vbHRpcFRleHQoKXtyZXR1cm4gdGhpcy5fbGFiZWxNYXBbdGhpcy5fdmFsdWVdfHwiIn1nZXRMYWJlbCgpe3JldHVybiB0aGlzLl9sYWJlbE1hcFt0aGlzLl92YWx1ZV18fCIifWdldEVsZW1lbnQoKXtyZXR1cm4gdGhpcy5fZWx9dXBkYXRlKHQsZSl7dGhpcy5fdXBkYXRlVmFsdWUodCxlKSx0aGlzLl9yZW5kZXIoKX1zZXRUb29sdGlwRW5hYmxlZCh0PSExKXt0aGlzLl9zaG93VG9vbHRpcCE9PXQmJih0aGlzLl9zaG93VG9vbHRpcD10LHRoaXMuX3JlbmRlclRvb2x0aXAoKSl9ZW5hYmxlU2hvcnRNb2RlKCl7ITAhPT10aGlzLl9zaG9ydE1vZGUmJih0aGlzLl9zaG9ydE1vZGU9ITAsdGhpcy5fcmVuZGVyKCkpfWRpc2FibGVTaG9ydE1vZGUoKXshMSE9PXRoaXMuX3Nob3J0TW9kZSYmKHRoaXMuX3Nob3J0TW9kZT0hMSx0aGlzLl9yZW5kZXIoKSl9aXNTaG9ydE1vZGVFbmFibGVkKCl7cmV0dXJuIHRoaXMuX3Nob3J0TW9kZX1zdGFydCgpeyF0aGlzLl9zdWJzY3JpYmVkJiZ0aGlzLl9zeW1ib2xOYW1lJiYodGhpcy5fcXVvdGVTZXNzaW9ufHwodGhpcy5fcXVvdGVTZXNzaW9uPSgwLG8uZ2V0UXVvdGVTZXNzaW9uSW5zdGFuY2UpKCJzaW1wbGUiKSksdGhpcy5fcXVvdGVTZXNzaW9uLnN1YnNjcmliZSh0aGlzLl9nZXRRdW90ZVNlc3Npb25JZCgpLHRoaXMuX3N5bWJvbE5hbWUsdGhpcy51cGRhdGUuYmluZCh0aGlzKSksdGhpcy5fc3Vic2NyaWJlZD0hMCl9c3RvcCgpe3RoaXMuX3N1YnNjcmliZWQmJnRoaXMuX3F1b3RlU2Vzc2lvbiYmdGhpcy5fc3ltYm9sTmFtZSYmKHRoaXMuX3F1b3RlU2Vzc2lvbi51bnN1YnNjcmliZSh0aGlzLl9nZXRRdW90ZVNlc3Npb25JZCgpLHRoaXMuX3N5bWJvbE5hbWUpLHRoaXMuX3N1YnNjcmliZWQ9ITEpfXNldFNlc3Npb25TdGF0dXNJY29uKHQpe3RoaXMuX3Nlc3Npb25TdGF0dXNJY29uIT09dCYmKHRoaXMuX3Nlc3Npb25TdGF0dXNJY29uPXQsdGhpcy5fcmVuZGVyKCkpfV9pbml0KHQpe3RoaXMuX2VsPXQuZWw/dC5lbDpkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIiksdGhpcy5fZWwuaW5uZXJIVE1MPSIiLHRoaXMuX2NsYXNzTWFwPXQuY2xhc3NNYXAsdGhpcy5faWNvbkNsYXNzTWFwPXQuaWNvbkNsYXNzTWFwLHRoaXMuX2xhYmVsTWFwPXQubGFiZWxNYXAsCnRoaXMuX3Nob3dUb29sdGlwPXQuc2hvd1Rvb2x0aXAsdGhpcy5fY2xhc3NTdWZmaXg9dC5jbGFzc1N1ZmZpeCx0aGlzLl9zeW1ib2xOYW1lPXQuc3ltYm9sLHRoaXMuX3Nlc3Npb25TdGF0dXNJY29uPXQuc2Vzc2lvblN0YXR1c0ljb24sdGhpcy5fb25WYWx1ZUNoYW5nZT10Lm9uVmFsdWVDaGFuZ2UsdC50b29sdGlwVHlwZSYmKHRoaXMuX3Rvb2x0aXBUeXBlPXQudG9vbHRpcFR5cGUpLHRoaXMuX3F1b3RlU2Vzc2lvbkdVSUQ9KDAsYS5ndWlkKSgpLCEwPT09dC5zaG9ydCYmdGhpcy5lbmFibGVTaG9ydE1vZGUoKSx0LmRhdGEmJnRoaXMuX3VwZGF0ZVZhbHVlKHQuZGF0YSl9X2NsZWFyQ2xhc3Nlcygpe09iamVjdC52YWx1ZXModGhpcy5fY2xhc3NNYXApLm1hcCgodD0+e3RoaXMuX2VsLmNsYXNzTGlzdC5yZW1vdmUoYCR7dH1gKSx0aGlzLl9lbC5jbGFzc0xpc3QucmVtb3ZlKGAke3R9JHt0aGlzLl9jbGFzc1N1ZmZpeH1gKX0pKX1fcmVuZGVyKCl7dGhpcy5fcmVuZGVyQ2xhc3NlcygpLHRoaXMuX3JlbmRlclRvb2x0aXAoKSx0aGlzLl9yZW5kZXJMYWJlbCgpfV9yZW5kZXJMYWJlbCgpe3RoaXMuX2VsLnRleHRDb250ZW50PXRoaXMuZ2V0TGFiZWwoKX1fdXBkYXRlVmFsdWUodCxlKXtjb25zdCBzPXRoaXMuX2dldFZhbHVlRnJvbURhdGEodCk7KGV8fHMhPT10aGlzLl92YWx1ZSkmJih0aGlzLl92YWx1ZT1zLHRoaXMuX29uVmFsdWVDaGFuZ2U/Lih0aGlzLl92YWx1ZSkpfV9yZW5kZXJDbGFzc2VzKCl7Y29uc3QgdD10aGlzLl9lbC5jbGFzc0xpc3Q7dC5hZGQodGhpcy5fY29tcG9uZW50Q2xhc3MsdGhpcy5fY29tcG9uZW50Q2xhc3MrdGhpcy5fY2xhc3NTdWZmaXgpO2NvbnN0IGU9dGhpcy5fY2xhc3NNYXBbdGhpcy5fdmFsdWVdO2Zvcihjb25zdCBzIGluIHRoaXMuX2NsYXNzTWFwKXtjb25zdCBpPXRoaXMuX2NsYXNzTWFwW3NdO2kmJihpPT09ZT8odC5hZGQoaSxpK3RoaXMuX2NsYXNzU3VmZml4KSx0aGlzLl9zZXNzaW9uU3RhdHVzSWNvbiYmdC5hZGQoaSsiX193aXRoSWNvbiIpKToodC5yZW1vdmUoaSxpK3RoaXMuX2NsYXNzU3VmZml4KSx0aGlzLl9zZXNzaW9uU3RhdHVzSWNvbiYmdC5yZW1vdmUoaSsiX193aXRoSWNvbiIpKSl9IWUmJnRoaXMuX3ZhbHVlJiZuLmxvZ1dhcm4oYG5vIGNsYXNzTmFtZSBmb3Igc3RhdHVzICR7dGhpcy5fdmFsdWV9YCl9X3JlbmRlclRvb2x0aXAoKXtjb25zdCB0PXRoaXMuX3Nob3dUb29sdGlwP3RoaXMuZ2V0VG9vbHRpcFRleHQoKToiIjt0IT09dGhpcy5fbGFzdFRvb2x0aXBUZXh0JiYodGhpcy5fbGFzdFRvb2x0aXBUZXh0PXQsdGhpcy5fZWwuc2V0QXR0cmlidXRlKCJ0aXRsZSIsdCksImN1c3RvbSI9PT10aGlzLl90b29sdGlwVHlwZSYmdGhpcy5fZWwuY2xhc3NMaXN0LnRvZ2dsZSgiYXBwbHktY29tbW9uLXRvb2x0aXAiLHRoaXMuX3Nob3dUb29sdGlwKSl9X2dldFF1b3RlU2Vzc2lvbklkKCl7cmV0dXJuYCR7dGhpcy5fcXVvdGVTZXNzaW9uUHJlZml4fS4ke3RoaXMuX3F1b3RlU2Vzc2lvbkdVSUR9YH19fSwzMDY5MCh0LGUscyl7InVzZSBzdHJpY3QiO3MuZChlLHtEYXRhTW9kZUluZGljYXRvcjooKT0+ZH0pO3ZhciBpLGE9cygxODUyNzEpLG89KHMoODI5MTgwKSxzKDQ1MDI5NSkscygyMDI0NjApKTshZnVuY3Rpb24odCl7dC5EZWxheWVkPSJkZWxheWVkIix0LkRlbGF5ZWRTdHJlYW1pbmc9ImRlbGF5ZWRfc3RyZWFtaW5nIix0LkVuZE9mRGF5PSJlbmRvZmRheSIsdC5TbmFwc2hvdD0ic25hcHNob3QiLHQuUmVhbHRpbWU9InJlYWx0aW1lIix0LkNvbm5lY3Rpbmc9ImNvbm5lY3RpbmciLHQuTG9hZGluZz0ibG9hZGluZyIsdC5JbnZhbGlkPSJpbnZhbGlkIix0LkZvcmJpZGRlbj0iZm9yYmlkZGVuIix0LlN0cmVhbWluZz0ic3RyZWFtaW5nIn0oaXx8KGk9e30pKTtjb25zdCBuPXtjb25uZWN0aW5nOiJ0di1kYXRhLW1vZGUtLWNvbm5lY3RpbmciLGRlbGF5ZWQ6InR2LWRhdGEtbW9kZS0tZGVsYXllZCIsZGVsYXllZF9zdHJlYW1pbmc6InR2LWRhdGEtbW9kZS0tZGVsYXllZCIsZW5kb2ZkYXk6InR2LWRhdGEtbW9kZS0tZW5kb2ZkYXkiLGZvcmJpZGRlbjoidHYtZGF0YS1tb2RlLS1mb3JiaWRkZW4iLHJlYWx0aW1lOiJ0di1kYXRhLW1vZGUtLXJlYWx0aW1lIixzbmFwc2hvdDoidHYtZGF0YS1tb2RlLS1zbmFwc2hvdCIsbG9hZGluZzoidHYtZGF0YS1tb2RlLS1sb2FkaW5nIixyZXBsYXk6InR2LWRhdGEtbW9kZS0tcmVwbGF5In07ZnVuY3Rpb24gbCgpe3JldHVybntjb25uZWN0aW5nOmEudChudWxsLHtjb250ZXh0OiJkYXRhX21vZGVfY29ubmVjdGluZ19sZXR0ZXIifSxzKDg1OTk5NCkpLGRlbGF5ZWQ6YS50KG51bGwse2NvbnRleHQ6ImRhdGFfbW9kZV9kZWxheWVkX2xldHRlciJ9LHMoODkyMzYzKSksZGVsYXllZF9zdHJlYW1pbmc6YS50KG51bGwse2NvbnRleHQ6ImRhdGFfbW9kZV9kZWxheWVkX3N0cmVhbWluZ19sZXR0ZXIifSxzKDM5NDUwMSkpLGVuZG9mZGF5OmEudChudWxsLHtjb250ZXh0OiJkYXRhX21vZGVfZW5kX29mX2RheV9sZXR0ZXIifSxzKDU3MDkzOSkpLGZvcmJpZGRlbjphLnQobnVsbCx7Y29udGV4dDoiZGF0YV9tb2RlX2ZvcmJpZGRlbl9sZXR0ZXIifSxzKDM5NDkyMSkpLHJlYWx0aW1lOmEudChudWxsLHtjb250ZXh0OiJkYXRhX21vZGVfcmVhbHRpbWVfbGV0dGVyIn0scyg4NjY0NCkpLHNuYXBzaG90OmEudChudWxsLHtjb250ZXh0OiJkYXRhX21vZGVfc25hcHNob3RfbGV0dGVyIn0scygyNTczMjYpKSxsb2FkaW5nOiIiLHJlcGxheTphLnQobnVsbCx7Y29udGV4dDoiZGF0YV9tb2RlX3JlcGxheV9sZXR0ZXIifSxzKDc1NjQ1NykpfX1jb25zdCByPXtzdHJlYW1pbmc6InJlYWx0aW1lIn07Y2xhc3MgZCBleHRlbmRzIG8uQWJzdHJhY3RJbmRpY2F0b3J7Y29uc3RydWN0b3IodCl7c3VwZXIodCksdGhpcy5fcXVvdGVTZXNzaW9uUHJlZml4PSJkYXRhLW1vZGUtaW5kaWNhdG9yIix0aGlzLl9jb21wb25lbnRDbGFzcz0idHYtZGF0YS1tb2RlIix0aGlzLl9pbml0KHQpfWdldExhYmVsKCl7cmV0dXJuITA9PT10aGlzLl9zaG9ydE1vZGU/dGhpcy5fc2hvcnRMYWJlbE1hcFt0aGlzLl92YWx1ZV18fCIiOnN1cGVyLmdldExhYmVsKCl9CnNldE1vZGUodCxlKXt0aGlzLnVwZGF0ZSh7dmFsdWVzOnt1cGRhdGVfbW9kZTp0LHVwZGF0ZV9tb2RlX3NlY29uZHM6ZX19KX1oaWRlKCl7dGhpcy5fZWwuY2xhc3NMaXN0LmFkZCgiaS1oaWRkZW4iKX1zaG93KCl7dGhpcy5fZWwuY2xhc3NMaXN0LnJlbW92ZSgiaS1oaWRkZW4iKX1nZXRUb29sdGlwVGV4dCgpe2xldCB0PSIiO2NvbnN0IGU9dGhpcy5nZXRWYWx1ZSgpO2lmKCIiPT09ZSlyZXR1cm4gdDtzd2l0Y2goZSl7Y2FzZSJkZWxheWVkIjp0PWEudChudWxsLHZvaWQgMCxzKDc5MDUyNCkpO2JyZWFrO2Nhc2UiZGVsYXllZF9zdHJlYW1pbmciOnQ9YS50KG51bGwsdm9pZCAwLHMoODE0NjEpKTticmVhaztkZWZhdWx0OnQ9dGhpcy5fbGFiZWxNYXBbZV18fHR9cmV0dXJuWyJkZWxheWVkIiwiZGVsYXllZF9zdHJlYW1pbmciXS5pbmNsdWRlcyhlKSYmKHQ9dC5mb3JtYXQoe251bWJlcjpTdHJpbmcoTWF0aC5yb3VuZCh0aGlzLl9tb2RlSW50ZXJ2YWwvNjApKX0pKSx0fV9pbml0KHQ9e30pe2NvbnN0IGU9T2JqZWN0LmFzc2lnbih7fSx7Y2xhc3NNYXA6bixjbGFzc1N1ZmZpeDoiIixkYXRhOnt2YWx1ZXM6e3VwZGF0ZV9tb2RlOiJjb25uZWN0aW5nIn19LGxhYmVsTWFwOntjb25uZWN0aW5nOmEudChudWxsLHZvaWQgMCxzKDE5NDE5NCkpLGRlbGF5ZWQ6YS50KG51bGwsdm9pZCAwLHMoMjI5NTI1KSksZGVsYXllZF9zdHJlYW1pbmc6YS50KG51bGwsdm9pZCAwLHMoMjI5NTI1KSksZW5kb2ZkYXk6YS50KG51bGwsdm9pZCAwLHMoNjAxNzY0KSksZm9yYmlkZGVuOmEudChudWxsLHZvaWQgMCxzKDMyODMxMykpLHJlYWx0aW1lOmEudChudWxsLHZvaWQgMCxzKDg4MzkyOCkpLHNuYXBzaG90OmEudChudWxsLHZvaWQgMCxzKDU2MjM5NSkpLGxvYWRpbmc6IiIscmVwbGF5OmEudChudWxsLHZvaWQgMCxzKDk3NzI3KSl9LG1vZGVJbnRlcnZhbDo2MDAsc2hvcnQ6ITEsc2hvcnRMYWJlbE1hcDpsKCksc2hvd1Rvb2x0aXA6ITAsdG9vbHRpcFR5cGU6ImN1c3RvbSJ9LHQpO3RoaXMuX21vZGVJbnRlcnZhbD1lLm1vZGVJbnRlcnZhbHx8NjAwLHRoaXMuX3Nob3J0TGFiZWxNYXA9ZS5zaG9ydExhYmVsTWFwfHxsKCksc3VwZXIuX2luaXQoZSksdGhpcy5fcmVuZGVyKCl9X2dldFZhbHVlRnJvbURhdGEodCl7bGV0IGU7cmV0dXJuIGU9dm9pZCAwIT09dC52YWx1ZXMmJnZvaWQgMCE9PXQudmFsdWVzLnVwZGF0ZV9tb2RlP3QudmFsdWVzLnVwZGF0ZV9tb2RlOnRoaXMuZ2V0VmFsdWUoKSxyW2VdfHxlfV91cGRhdGVWYWx1ZSh0LGUpe3ZvaWQgMCE9PXQudmFsdWVzJiZ2b2lkIDAhPT10LnZhbHVlcy51cGRhdGVfbW9kZV9zZWNvbmRzJiYodGhpcy5fbW9kZUludGVydmFsPXQudmFsdWVzLnVwZGF0ZV9tb2RlX3NlY29uZHMpLHN1cGVyLl91cGRhdGVWYWx1ZSh0LGUpfX19LDU2MzkxOCh0LGUscyl7InVzZSBzdHJpY3QiO3MuZChlLHtNYXJrZXRTdGF0dXNJbmRpY2F0b3I6KCk9Pmx9KTt2YXIgaT1zKDE4NTI3MSksYT1zKDIwMjQ2MCk7cyg0NjIzNSk7Y29uc3Qgbz17aW52YWxpZDoidHYtbWFya2V0LXN0YXR1cy0taW52YWxpZCIsbWFya2V0OiJ0di1tYXJrZXQtc3RhdHVzLS1tYXJrZXQiLG91dF9vZl9zZXNzaW9uOiJ0di1tYXJrZXQtc3RhdHVzLS1vdXQtb2Ytc2Vzc2lvbiIscG9zdF9tYXJrZXQ6InR2LW1hcmtldC1zdGF0dXMtLXBvc3QtbWFya2V0IixwcmVfbWFya2V0OiJ0di1tYXJrZXQtc3RhdHVzLS1wcmUtbWFya2V0IixuaWdodDoidHYtbWFya2V0LXN0YXR1cy0tbmlnaHQiLGxvYWRpbmc6InR2LW1hcmtldC1zdGF0dXMtLWxvYWRpbmciLGhvbGlkYXk6InR2LW1hcmtldC1zdGF0dXMtLWhvbGlkYXkiLHJlcGxheToidHYtbWFya2V0LXN0YXR1cy0tcmVwbGF5IixkZWxpc3RlZDoidHYtbWFya2V0LXN0YXR1cy0tZGVsaXN0ZWQifSxuPXtpbnZhbGlkOiJ0di1tYXJrZXQtc3RhdHVzX19pY29uLS1pbnZhbGlkIixtYXJrZXQ6InR2LW1hcmtldC1zdGF0dXNfX2ljb24tLW1hcmtldCIsb3V0X29mX3Nlc3Npb246InR2LW1hcmtldC1zdGF0dXNfX2ljb24tLW91dC1vZi1zZXNzaW9uIixwb3N0X21hcmtldDoidHYtbWFya2V0LXN0YXR1c19faWNvbi0tcG9zdC1tYXJrZXQiLG5pZ2h0OiJ0di1tYXJrZXQtc3RhdHVzX19pY29uLS1uaWdodCIscHJlX21hcmtldDoidHYtbWFya2V0LXN0YXR1c19faWNvbi0tcHJlLW1hcmtldCIsbG9hZGluZzoidHYtbWFya2V0LXN0YXR1c19faWNvbi0tbG9hZGluZyIsaG9saWRheToidHYtbWFya2V0LXN0YXR1c19faWNvbi0taG9saWRheSIscmVwbGF5OiJ0di1tYXJrZXQtc3RhdHVzX19pY29uLS1yZXBsYXkiLGRlbGlzdGVkOiJ0di1tYXJrZXQtc3RhdHVzX19pY29uLS1kZWxpc3RlZCJ9O2NsYXNzIGwgZXh0ZW5kcyBhLkFic3RyYWN0SW5kaWNhdG9ye2NvbnN0cnVjdG9yKHQpe3N1cGVyKHQpLHRoaXMuX3F1b3RlU2Vzc2lvblByZWZpeD0ibWFya2V0LXN0YXR1cy1pbmRpY2F0b3IiLHRoaXMuX2NvbXBvbmVudENsYXNzPSJ0di1tYXJrZXQtc3RhdHVzIix0aGlzLl9leHRyYVRpdGxlPSIiLHRoaXMuX2luaXQodCl9c2V0U3RhdHVzKHQsZSl7Y29uc3Qgcz17dmFsdWVzOntjdXJyZW50X3Nlc3Npb246ImRlbGlzdGVkIj09PXRoaXMuZ2V0VmFsdWUoKT8iZGVsaXN0ZWQiOnR9fTt0aGlzLnVwZGF0ZShzLGUpfWdldFRvb2x0aXBUZXh0KCl7bGV0IHQ9c3VwZXIuZ2V0VG9vbHRpcFRleHQoKTtyZXR1cm4iIj09PXR8fCIiIT09dGhpcy5fZXh0cmFUaXRsZSYmKHQ9YCR7dH0sICR7dGhpcy5fZXh0cmFUaXRsZX1gKSx0fXNldEV4dHJhVGl0bGUodCl7dGhpcy5fZXh0cmFUaXRsZT10fXJlc2V0KCl7dGhpcy5fY2xlYXJDbGFzc2VzKCksdGhpcy5fbGFiZWxFbC50ZXh0Q29udGVudD0iIix0aGlzLl9leHRyYVRpdGxlPSIiLHRoaXMuX2VsLnNldEF0dHJpYnV0ZSgidGl0bGUiLCIiKSx0aGlzLl92YWx1ZT0iIn1lbmFibGVTaG9ydE1vZGUodD0hMCl7dm9pZCAwIT09dGhpcy5fbGFiZWxFbCYmdGhpcy5fbGFiZWxFbC5jbGFzc0xpc3QuYWRkKCJpLWhpZGRlbiIpLHN1cGVyLmVuYWJsZVNob3J0TW9kZSgpfWRpc2FibGVTaG9ydE1vZGUoKXsKdm9pZCAwIT09dGhpcy5fbGFiZWxFbCYmdGhpcy5fbGFiZWxFbC5jbGFzc0xpc3QucmVtb3ZlKCJpLWhpZGRlbiIpLHN1cGVyLmRpc2FibGVTaG9ydE1vZGUoKX1fcmVuZGVyTGFiZWwoKXt0aGlzLl9sYWJlbEVsLnRleHRDb250ZW50PXRoaXMuZ2V0TGFiZWwoKX1fZ2V0VmFsdWVGcm9tRGF0YSh0KXtyZXR1cm4gdC52YWx1ZXM/LnR5cGVzcGVjcz8uaW5jbHVkZXMoImRpc2NvbnRpbnVlZCIpPyJkZWxpc3RlZCI6dm9pZCAwIT09dC52YWx1ZXM/LmN1cnJlbnRfc2Vzc2lvbj90LnZhbHVlcy5jdXJyZW50X3Nlc3Npb246dGhpcy5nZXRWYWx1ZSgpfV9yZW5kZXIoKXt0aGlzLl9yZW5kZXJMYWJlbEVsZW1lbnQoKSx0aGlzLl9zZXNzaW9uU3RhdHVzSWNvbj90aGlzLl9yZW5kZXJJY29uRWxlbWVudCgpOnRoaXMuX3JlbmRlckRvdEVsZW1lbnQoKSxzdXBlci5fcmVuZGVyKCl9X2luaXQodCl7Y29uc3QgZT1PYmplY3QuYXNzaWduKHt9LGZ1bmN0aW9uKCl7Y29uc3QgdD17aW52YWxpZDppLnQobnVsbCx7Y29udGV4dDoibWFya2V0LXN0YXR1cyJ9LHMoNjM4NDA1KSksbWFya2V0OmkudChudWxsLHtjb250ZXh0OiJtYXJrZXQtc3RhdHVzIn0scyg3MDI3ODgpKSxvdXRfb2Zfc2Vzc2lvbjppLnQobnVsbCx7Y29udGV4dDoibWFya2V0LXN0YXR1cyJ9LHMoOTE0NTcyKSkscG9zdF9tYXJrZXQ6aS50KG51bGwse2NvbnRleHQ6Im1hcmtldC1zdGF0dXMifSxzKDg2NzQ1NSkpLHByZV9tYXJrZXQ6aS50KG51bGwse2NvbnRleHQ6Im1hcmtldC1zdGF0dXMifSxzKDkxODg0MikpLGxvYWRpbmc6aS50KG51bGwse2NvbnRleHQ6Im1hcmtldC1zdGF0dXMifSxzKDI3NDQxNSkpLGhvbGlkYXk6aS50KG51bGwse2NvbnRleHQ6Im1hcmtldC1zdGF0dXMifSxzKDY4NTEwNCkpLGRlbGlzdGVkOmkudChudWxsLHtjb250ZXh0OiJtYXJrZXQtc3RhdHVzIn0scyg1NTIxNSkpLG5pZ2h0OmkudChudWxsLHtjb250ZXh0OiJtYXJrZXQtc3RhdHVzIn0scyg4OTc1OTEpKSxyZXBsYXk6IiJ9O3JldHVybntjbGFzc01hcDpvLGljb25DbGFzc01hcDpuLGNsYXNzU3VmZml4OiIiLGRhdGE6e30sZXh0cmFUaXRsZToiIixsYWJlbE1hcDp0LHNob3J0OiExLHNob3dUb29sdGlwOiEwLHRvb2x0aXBUeXBlOiJjdXN0b20ifX0oKSx0KTtzdXBlci5faW5pdChlKSx0aGlzLnNldEV4dHJhVGl0bGUoZS5leHRyYVRpdGxlKSx0aGlzLl9yZW5kZXIoKX1fcmVuZGVyTGFiZWxFbGVtZW50KCl7dm9pZCAwPT09dGhpcy5fbGFiZWxFbCYmKHRoaXMuX2xhYmVsRWw9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpLHRoaXMuX2xhYmVsRWwuY2xhc3NMaXN0LmFkZChgJHt0aGlzLl9jb21wb25lbnRDbGFzc31fX2xhYmVsYCksdGhpcy5fbGFiZWxFbC5jbGFzc0xpc3QuYWRkKGAke3RoaXMuX2NvbXBvbmVudENsYXNzfV9fbGFiZWwke3RoaXMuX2NsYXNzU3VmZml4fWApLHRoaXMuX2VsLmFwcGVuZENoaWxkKHRoaXMuX2xhYmVsRWwpKX1fcmVuZGVyRG90RWxlbWVudCgpe3RoaXMuX2VsLmNvbnRhaW5zKHRoaXMuX2ljb25FbCkmJnRoaXMuX2VsLnJlbW92ZUNoaWxkKHRoaXMuX2ljb25FbCksdm9pZCAwPT09dGhpcy5fZG90RWwmJih0aGlzLl9kb3RFbD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIiksdGhpcy5fZG90RWwuY2xhc3NMaXN0LmFkZChgJHt0aGlzLl9jb21wb25lbnRDbGFzc31fX2RvdGApLHRoaXMuX2RvdEVsLmNsYXNzTGlzdC5hZGQoYCR7dGhpcy5fY29tcG9uZW50Q2xhc3N9X19kb3Qke3RoaXMuX2NsYXNzU3VmZml4fWApLHRoaXMuX2VsLmFwcGVuZENoaWxkKHRoaXMuX2RvdEVsKSl9X3JlbmRlckljb25FbGVtZW50KCl7dGhpcy5fZWwuY29udGFpbnModGhpcy5fZG90RWwpJiZ0aGlzLl9lbC5yZW1vdmVDaGlsZCh0aGlzLl9kb3RFbCksdm9pZCAwPT09dGhpcy5faWNvbkVsJiZ0aGlzLl92YWx1ZSYmKHRoaXMuX2ljb25FbD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIiksdGhpcy5faWNvbkVsLmNsYXNzTGlzdC5hZGQoYCR7dGhpcy5fY29tcG9uZW50Q2xhc3N9X19pY29uYCksdGhpcy5faWNvbkVsLmNsYXNzTGlzdC5hZGQoYCR7dGhpcy5fY29tcG9uZW50Q2xhc3N9X19pY29uJHt0aGlzLl9jbGFzc1N1ZmZpeH1gKSx0aGlzLl9lbC5hcHBlbmRDaGlsZCh0aGlzLl9pY29uRWwpKX19fSw4OTE3NzgodCxlLHMpeyJ1c2Ugc3RyaWN0IjtzLmQoZSx7UHJpY2VDb2xvcmVyOigpPT5pfSk7dmFyIGksYT1zKDIxODgxNCksbz1zKDUwNTU2KTshZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSh0LGUpe3JldHVybiAwPT09dD9lJiZ2b2lkIDAhPT1lLm5ldXRyYWw/ZS5uZXV0cmFsOmEuY29sb3IuYmxhY2s3MDp0PjA/ZSYmdm9pZCAwIT09ZS51cD9lLnVwOm8uY29sb3JzUGFsZXR0ZVsiY29sb3Itc3VjY2VzcyJdOmUmJnZvaWQgMCE9PWUuZG93bj9lLmRvd246by5jb2xvcnNQYWxldHRlWyJjb2xvci1kYW5nZXIiXX10LmZvcm1hdFNpZ249ZSx0LmZvcm1hdERpZmY9ZnVuY3Rpb24odCxzKXtyZXR1cm4gZShzLXQpfSx0LmRvbURpZmZlcmVuY2U9ZnVuY3Rpb24odCxlLHM9MCxpPSIiLGE9IiIpe2Z1bmN0aW9uIG8odCl7Y29uc3QgZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7cmV0dXJuIGUuaW5uZXJIVE1MPXQsZX1jb25zdCBuPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2lmKCFzKXJldHVybiBuLmFwcGVuZENoaWxkKG8odCkpLG47Y29uc3QgbD10KyIiLHI9ZSsiIjtsZXQgZD1udWxsO2lmKGwubGVuZ3RoPT09ci5sZW5ndGgpe2ZvcihsZXQgdD0wO3Q8bC5sZW5ndGg7dCsrKWlmKGwuY2hhckF0KHQpIT09ci5jaGFyQXQodCkpe2Q9dDticmVha319ZWxzZSBkPU51bWJlcigiMCIpO2lmKG51bGw9PT1kKXJldHVybiBuLmFwcGVuZENoaWxkKG8obCkpLG47Y29uc3QgXz1vKGwuc3Vic3RyaW5nKDAsZCkpLHU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpO3JldHVybiB1LmNsYXNzTmFtZT1zPDA/aTphLHUuYXBwZW5kQ2hpbGQobyhsLnN1YnN0cmluZyhkKSkpLG4uYXBwZW5kQ2hpbGQoXyksbi5hcHBlbmRDaGlsZCh1KSxufX0oaXx8KGk9e30pKX19XSk7"}},"time_used":5,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":5,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/6934.90edfef6ce98369ae04a.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:13.003Z","timestamp":1785148033003,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/6934.90edfef6ce98369ae04a.js HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:13 GMT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a61b1a8-138a8\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Thu, 23 Jul 2026 06:16:08 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/23/2026 10:17:24\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 8825db78734c47f2abcfaeb0a21ffaf8\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":80040,"size_decoded":25281,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (8855)","md5":"e360111388c7ca7cc416b65a333c1c13","sha1":"e46ada551fc22f5bd35034c2bca095f54b635503","sha256":"fcaf403c75b1a585c7a07556cb65bc683ba6feecbe0399257d62a34f85d430bd","sha512":"60b615d8b0f61e9026e63070379bd94624842f181c1c1fc3ebd02da9ec8b0937f58c344459767399d75cd658ba805c0033a4d1e60d237c8bf2cfd20377f72aa6","ssdeep":"1536:Rw7HUzRyKUuj/NJd07iwH2Hwzp0q2f70lq4Gf7TtJiO:RJzRyluj/NJ6kMpc7N4Gf7Tz3","tlshash":"0273b638f9d0a4b7b2e784fe6741e6919a26b88276265fe17235c6c47804ccf3135e1e","first_seen":"2026-07-23T13:54:09.170539Z","last_seen":"2026-07-27T12:53:06.140383Z","times_seen":293,"resource_available":true,"data":"KHNlbGYud2VicGFja0NodW5rdHJhZGluZ3ZpZXc9c2VsZi53ZWJwYWNrQ2h1bmt0cmFkaW5ndmlld3x8W10pLnB1c2goW1s2OTM0XSx7ODQ1NTc3KG8pe28uZXhwb3J0cz17InR2LXNwaW5uZXJfX2NvbnRhaW5lci1yb3RhdGUiOiJ0di1zcGlubmVyX19jb250YWluZXItcm90YXRlLWo0SmxyWVZIIiwidHYtc3Bpbm5lcl9fY29udGFpbmVyLXJvdGF0ZS1ydGwiOiJ0di1zcGlubmVyX19jb250YWluZXItcm90YXRlLXJ0bC1qNEpscllWSCJ9fSw3MzIwNDAobyxyLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgbDtmdW5jdGlvbiB0KG8scj13aW5kb3cpe2NvbnN0IGU9InRoZW1lLSIrbyxsPXIuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsYXNzTGlzdDtmb3IoY29uc3QgbyBvZiBBcnJheS5mcm9tKGwpKW8uc3RhcnRzV2l0aCgidGhlbWUtIikmJm8hPT1lJiZsLnJlbW92ZShvKTtsLmFkZChlKSxyLmRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5kYXRhc2V0LnRoZW1lPW99ZS5kKHIse2FwcGx5VGhlbWU6KCk9PnR9KSxmdW5jdGlvbihvKXtvLlRoZW1lQ2xhc3NQcmVmaXg9InRoZW1lLSJ9KGx8fChsPXt9KSl9LDIwMDY2NihvLHIsZSl7InVzZSBzdHJpY3QiO2UuZChyLHtzZXRUaGVtZTooKT0+YSx3YXRjaGVkVGhlbWU6KCk9PmN9KTt2YXIgbD1lKDIzMjM2NCksdD1lKDczMjA0MCk7Y29uc3QgYz1uZXcgbC5XYXRjaGVkVmFsdWU7ZnVuY3Rpb24gYShvKXtjLnNldFZhbHVlKG8pfWMuc3Vic2NyaWJlKChvPT57KDAsdC5hcHBseVRoZW1lKShvLHdpbmRvdyl9KSl9LDgzMDc4MyhvLHIsZSl7InVzZSBzdHJpY3QiO2UuZChyLHt0cnlQYXJzZU5hbWVkUmdiYTooKT0+dH0pCjtjb25zdCBsPW5ldyBNYXAoW1siYWxpY2VibHVlIiwiI2YwZjhmZiJdLFsiYW50aXF1ZXdoaXRlIiwiI2ZhZWJkNyJdLFsiYXF1YSIsIiMwMGZmZmYiXSxbImFxdWFtYXJpbmUiLCIjN2ZmZmQ0Il0sWyJhenVyZSIsIiNmMGZmZmYiXSxbImJlaWdlIiwiI2Y1ZjVkYyJdLFsiYmlzcXVlIiwiI2ZmZTRjNCJdLFsiYmxhY2siLCIjMDAwMDAwIl0sWyJibGFuY2hlZGFsbW9uZCIsIiNmZmViY2QiXSxbImJsdWUiLCIjMDAwMGZmIl0sWyJibHVldmlvbGV0IiwiIzhhMmJlMiJdLFsiYnJvd24iLCIjYTUyYTJhIl0sWyJidXJseXdvb2QiLCIjZGViODg3Il0sWyJjYWRldGJsdWUiLCIjNWY5ZWEwIl0sWyJjaGFydHJldXNlIiwiIzdmZmYwMCJdLFsiY2hvY29sYXRlIiwiI2QyNjkxZSJdLFsiY29yYWwiLCIjZmY3ZjUwIl0sWyJjb3JuZmxvd2VyYmx1ZSIsIiM2NDk1ZWQiXSxbImNvcm5zaWxrIiwiI2ZmZjhkYyJdLFsiY3JpbXNvbiIsIiNkYzE0M2MiXSxbImN5YW4iLCIjMDBmZmZmIl0sWyJkYXJrYmx1ZSIsIiMwMDAwOGIiXSxbImRhcmtjeWFuIiwiIzAwOGI4YiJdLFsiZGFya2dvbGRlbnJvZCIsIiNiODg2MGIiXSxbImRhcmtncmF5IiwiI2E5YTlhOSJdLFsiZGFya2dyZWVuIiwiIzAwNjQwMCJdLFsiZGFya2toYWtpIiwiI2JkYjc2YiJdLFsiZGFya21hZ2VudGEiLCIjOGIwMDhiIl0sWyJkYXJrb2xpdmVncmVlbiIsIiM1NTZiMmYiXSxbImRhcmtvcmFuZ2UiLCIjZmY4YzAwIl0sWyJkYXJrb3JjaGlkIiwiIzk5MzJjYyJdLFsiZGFya3JlZCIsIiM4YjAwMDAiXSxbImRhcmtzYWxtb24iLCIjZTk5NjdhIl0sWyJkYXJrc2VhZ3JlZW4iLCIjOGZiYzhmIl0sWyJkYXJrc2xhdGVibHVlIiwiIzQ4M2Q4YiJdLFsiZGFya3NsYXRlZ3JheSIsIiMyZjRmNGYiXSxbImRhcmt0dXJxdW9pc2UiLCIjMDBjZWQxIl0sWyJkYXJrdmlvbGV0IiwiIzk0MDBkMyJdLFsiZGVlcHBpbmsiLCIjZmYxNDkzIl0sWyJkZWVwc2t5Ymx1ZSIsIiMwMGJmZmYiXSxbImRpbWdyYXkiLCIjNjk2OTY5Il0sWyJkb2RnZXJibHVlIiwiIzFlOTBmZiJdLFsiZmVsZHNwYXIiLCIjZDE5Mjc1Il0sWyJmaXJlYnJpY2siLCIjYjIyMjIyIl0sWyJmbG9yYWx3aGl0ZSIsIiNmZmZhZjAiXSxbImZvcmVzdGdyZWVuIiwiIzIyOGIyMiJdLFsiZnVjaHNpYSIsIiNmZjAwZmYiXSxbImdhaW5zYm9ybyIsIiNkY2RjZGMiXSxbImdob3N0d2hpdGUiLCIjZjhmOGZmIl0sWyJnb2xkIiwiI2ZmZDcwMCJdLFsiZ29sZGVucm9kIiwiI2RhYTUyMCJdLFsiZ3JheSIsIiM4MDgwODAiXSxbImdyZWVuIiwiIzAwODAwMCJdLFsiZ3JlZW55ZWxsb3ciLCIjYWRmZjJmIl0sWyJob25leWRldyIsIiNmMGZmZjAiXSxbImhvdHBpbmsiLCIjZmY2OWI0Il0sWyJpbmRpYW5yZWQiLCIjY2Q1YzVjIl0sWyJpbmRpZ28iLCIjNGIwMDgyIl0sWyJpdm9yeSIsIiNmZmZmZjAiXSxbImtoYWtpIiwiI2YwZTY4YyJdLFsibGF2ZW5kZXIiLCIjZTZlNmZhIl0sWyJsYXZlbmRlcmJsdXNoIiwiI2ZmZjBmNSJdLFsibGF3bmdyZWVuIiwiIzdjZmMwMCJdLFsibGVtb25jaGlmZm9uIiwiI2ZmZmFjZCJdLFsibGlnaHRibHVlIiwiI2FkZDhlNiJdLFsibGlnaHRjb3JhbCIsIiNmMDgwODAiXSxbImxpZ2h0Y3lhbiIsIiNlMGZmZmYiXSxbImxpZ2h0Z29sZGVucm9keWVsbG93IiwiI2ZhZmFkMiJdLFsibGlnaHRncmVlbiIsIiM5MGVlOTAiXSxbImxpZ2h0Z3JleSIsIiNkM2QzZDMiXSxbImxpZ2h0cGluayIsIiNmZmI2YzEiXSxbImxpZ2h0c2FsbW9uIiwiI2ZmYTA3YSJdLFsibGlnaHRzZWFncmVlbiIsIiMyMGIyYWEiXSxbImxpZ2h0c2t5Ymx1ZSIsIiM4N2NlZmEiXSxbImxpZ2h0c2xhdGVibHVlIiwiIzg0NzBmZiJdLFsibGlnaHRzbGF0ZWdyYXkiLCIjNzc4ODk5Il0sWyJsaWdodHN0ZWVsYmx1ZSIsIiNiMGM0ZGUiXSxbImxpZ2h0eWVsbG93IiwiI2ZmZmZlMCJdLFsibGltZSIsIiMwMGZmMDAiXSxbImxpbWVncmVlbiIsIiMzMmNkMzIiXSxbImxpbmVuIiwiI2ZhZjBlNiJdLFsibWFnZW50YSIsIiNmZjAwZmYiXSxbIm1hcm9vbiIsIiM4MDAwMDAiXSxbIm1lZGl1bWFxdWFtYXJpbmUiLCIjNjZjZGFhIl0sWyJtZWRpdW1ibHVlIiwiIzAwMDBjZCJdLFsibWVkaXVtb3JjaGlkIiwiI2JhNTVkMyJdLFsibWVkaXVtcHVycGxlIiwiIzkzNzBkOCJdLFsibWVkaXVtc2VhZ3JlZW4iLCIjM2NiMzcxIl0sWyJtZWRpdW1zbGF0ZWJsdWUiLCIjN2I2OGVlIl0sWyJtZWRpdW1zcHJpbmdncmVlbiIsIiMwMGZhOWEiXSxbIm1lZGl1bXR1cnF1b2lzZSIsIiM0OGQxY2MiXSxbIm1lZGl1bXZpb2xldHJlZCIsIiNjNzE1ODUiXSxbIm1pZG5pZ2h0Ymx1ZSIsIiMxOTE5NzAiXSxbIm1pbnRjcmVhbSIsIiNmNWZmZmEiXSxbIm1pc3R5cm9zZSIsIiNmZmU0ZTEiXSxbIm1vY2Nhc2luIiwiI2ZmZTRiNSJdLFsibmF2YWpvd2hpdGUiLCIjZmZkZWFkIl0sWyJuYXZ5IiwiIzAwMDA4MCJdLFsib2xkbGFjZSIsIiNmZGY1ZTYiXSxbIm9saXZlIiwiIzgwODAwMCJdLFsib2xpdmVkcmFiIiwiIzZiOGUyMyJdLFsib3JhbmdlIiwiI2ZmYTUwMCJdLFsib3JhbmdlcmVkIiwiI2ZmNDUwMCJdLFsib3JjaGlkIiwiI2RhNzBkNiJdLFsicGFsZWdvbGRlbnJvZCIsIiNlZWU4YWEiXSxbInBhbGVncmVlbiIsIiM5OGZiOTgiXSxbInBhbGV0dXJxdW9pc2UiLCIjYWZlZWVlIl0sWyJwYWxldmlvbGV0cmVkIiwiI2Q4NzA5MyJdLFsicGFwYXlhd2hpcCIsIiNmZmVmZDUiXSxbInBlYWNocHVmZiIsIiNmZmRhYjkiXSxbInBlcnUiLCIjY2Q4NTNmIl0sWyJwaW5rIiwiI2ZmYzBjYiJdLFsicGx1bSIsIiNkZGEwZGQiXSxbInBvd2RlcmJsdWUiLCIjYjBlMGU2Il0sWyJwdXJwbGUiLCIjODAwMDgwIl0sWyJyZWQiLCIjZmYwMDAwIl0sWyJyb3N5YnJvd24iLCIjYmM4ZjhmIl0sWyJyb3lhbGJsdWUiLCIjNDE2OWUxIl0sWyJzYWRkbGVicm93biIsIiM4YjQ1MTMiXSxbInNhbG1vbiIsIiNmYTgwNzIiXSxbInNhbmR5YnJvd24iLCIjZjRhNDYwIl0sWyJzZWFncmVlbiIsIiMyZThiNTciXSxbInNlYXNoZWxsIiwiI2ZmZjVlZSJdLFsic2llbm5hIiwiI2EwNTIyZCJdLFsic2lsdmVyIiwiI2MwYzBjMCJdLFsic2t5Ymx1ZSIsIiM4N2NlZWIiXSxbInNsYXRlYmx1ZSIsIiM2YTVhY2QiXSxbInNsYXRlZ3JheSIsIiM3MDgwOTAiXSxbInNub3ciLCIjZmZmYWZhIl0sWyJzcHJpbmdncmVlbiIsIiMwMGZmN2YiXSxbInN0ZWVsYmx1ZSIsIiM0NjgyYjQiXSxbInRhbiIsIiNkMmI0OGMiXSxbInRlYWwiLCIjMDA4MDgwIl0sWyJ0aGlzdGxlIiwiI2Q4YmZkOCJdLFsidG9tYXRvIiwiI2ZmNjM0NyJdLFsidHVycXVvaXNlIiwiIzQwZTBkMCJdLFsidmlvbGV0IiwiI2VlODJlZSJdLFsidmlvbGV0cmVkIiwiI2QwMjA5MCJdLFsid2hlYXQiLCIjZjVkZWIzIl0sWyJ3aGl0ZSIsIiNmZmZmZmYiXSxbIndoaXRlc21va2UiLCIjZjVmNWY1Il0sWyJ5ZWxsb3ciLCIjZmZmZjAwIl0sWyJ5ZWxsb3dncmVlbiIsIiM5YWNkMzIiXV0pCjtmdW5jdGlvbiB0KG8pe2NvbnN0IHI9bC5nZXQobyk7aWYodm9pZCAwPT09cilyZXR1cm4gbnVsbDtyZXR1cm5bcGFyc2VJbnQoci5zbGljZSgxLDMpLDE2KSxwYXJzZUludChyLnNsaWNlKDMsNSksMTYpLHBhcnNlSW50KHIuc2xpY2UoNSw3KSwxNiksMV19fSw3Nzg0NTgobyxyLGUpeyJ1c2Ugc3RyaWN0IjtlLmQocix7YnJlYWtwb2ludHM6KCk9PmwsbW9iaWxlRmlyc3RCcmVha3BvaW50czooKT0+dCxtb2JpbGVGaXJzdExlZ2FjeUJyZWFrcG9pbnRzOigpPT5jfSk7Y29uc3QgbD17ZGVza3RvcDoxLzAsZGVza3RvcEhkOjE5MTkscGhvbmU6NzY3LCJwaG9uZS12ZXJ0aWNhbCI6NDc5LHRhYmxldDoxMDE5fSx0PXtiYXNlOjAsIm1lZGlhLW1mLXBob25lLXZlcnRpY2FsIjozMjAsIm1lZGlhLW1mLXBob25lLWxhbmRzY2FwZSI6NTY4LCJtZWRpYS1tZi10YWJsZXQtdmVydGljYWwiOjc2OCwibWVkaWEtbWYtdGFibGV0LWxhbmRzY2FwZSI6MTAyNCwibWVkaWEtbWYtbGFwdG9wIjoxMjgwLCJtZWRpYS1tZi1kZXNrdG9wLW1lZGl1bSI6MTQ0MCwibWVkaWEtbWYtZGVza3RvcC1sYXJnZSI6MTkyMCwibWVkaWEtbWYtZGVza3RvcC1leHRyYS1sYXJnZSI6MjU2MH0sYz17Im1lZGlhLW1mLWxlZ2FjeS1waG9uZS12ZXJ0aWNhbCI6MzMwLCJtZWRpYS1tZi1sZWdhY3ktcGhvbmUiOjQ4MCwibWVkaWEtbWYtbGVnYWN5LW5vdGVib29rIjoxMDIwLCJtZWRpYS1tZi1sZWdhY3ktZGVza3RvcC1tZWRpdW0iOjE0ODAsIm1lZGlhLW1mLWxlZ2FjeS1kZXNrdG9wIjoxNTMxfX0sMjc2MDE5KG8scixlKXsidXNlIHN0cmljdCI7ZS5kKHIse2dsb2JhbENsb3NlRGVsZWdhdGU6KCk9PmwsZ2xvYmFsQ2xvc2VNZW51OigpPT50fSk7Y29uc3QgbD1uZXcoZSg5NDgzODApLkRlbGVnYXRlKTtmdW5jdGlvbiB0KCl7bC5maXJlKCl9fSw1MDU1NihvLHIsZSl7InVzZSBzdHJpY3QiO2UuZChyLHtjb2xvcnNQYWxldHRlOigpPT5nLGdldEhleENvbG9yQnlOYW1lOigpPT51fSk7dmFyIGw9ZSgzMTc2NjMpLHQ9ZSg4Njc1MjIpLGM9ZSgxMzg2MzgpO2NvbnN0IGE9ey4uLmwsLi4udH0sbj17fSxpPU9iamVjdC5rZXlzKGEpLmxlbmd0aCxkPS9eIygoW2EtZjAtOV17Mn0pezIsNH18W2EtZjAtOV17M30pJC9pO2Z1bmN0aW9uIHMobyxyPVtdLGU9YSl7Y29uc3QgbD1lW29dO2lmKCFsKXJldHVybiBudWxsO2lmKGQudGVzdChsKSlyZXR1cm4gbDtjb25zdCB0PWw7cmV0dXJuIHIucHVzaChvKSwtMSE9PXIuaW5kZXhPZih0KT8oY29uc29sZS53YXJuKCJDb2xvcnMgZGVmaW5pdGlvbnMgY3ljbGVkIiksbCk6ci5sZW5ndGg+aT8oY29uc29sZS53YXJuKCJUb28gbWFueSB2YXJpYWJsZXMtbGluayBpbiBIRVgtY29sb3Igc2VhcmNoOiAiK3JbMF0pLG51bGwpOnModCxyLGUpfU9iamVjdC5rZXlzKGEpLmZvckVhY2goKG89Pntjb25zdCByPXMobyk7bltvXT0oMCxjLmVuc3VyZU5vdE51bGwpKHIpfSkpO2NvbnN0IGc9bjtmdW5jdGlvbiB1KG8scj1nKXtjb25zdCBlPXJbb107aWYoIWUpe2lmKGQudGVzdChvKSlyZXR1cm4gbzt0aHJvdyBuZXcgRXJyb3IoIk5vIHN1Y2ggY29sb3IgIitvKX1yZXR1cm4gZX19LDIxODgxNChvLHIsZSl7InVzZSBzdHJpY3QiO2UuZChyLHtDdWJpY0JlemllcjooKT0+Yyxjb2xvcjooKT0+YSxkdXI6KCk9PmwsZWFzaW5nRnVuYzooKT0+dH0pO2NvbnN0IGw9MzUwLHQ9e2xpbmVhcjpvPT5vLGVhc2VJblF1YWQ6bz0+bypvLGVhc2VPdXRRdWFkOm89Pm8qKDItbyksZWFzZUluT3V0UXVhZDpvPT5vPC41PzIqbypvOig0LTIqbykqby0xLGVhc2VJbkN1YmljOm89Pm8qbypvLGVhc2VPdXRDdWJpYzpvPT4tLW8qbypvKzEsZWFzZUluT3V0Q3ViaWM6bz0+bzwuNT80Km8qbypvOihvLTEpKigyKm8tMikqKDIqby0yKSsxLGVhc2VJblF1YXJ0Om89Pm8qbypvKm8sZWFzZU91dFF1YXJ0Om89PjEtIC0tbypvKm8qbyxlYXNlSW5PdXRRdWFydDpvPT5vPC41PzgqbypvKm8qbzoxLTgqLS1vKm8qbypvLGVhc2VJblF1aW50Om89Pm8qbypvKm8qbyxlYXNlT3V0UXVpbnQ6bz0+MSstLW8qbypvKm8qbyxlYXNlSW5PdXRRdWludDpvPT5vPC41PzE2Km8qbypvKm8qbzoxKzE2Ki0tbypvKm8qbypvfTtjbGFzcyBje2NvbnN0cnVjdG9yKG8scixlLGwpe3RoaXMuX21YMT1vLHRoaXMuX21ZMT1yLHRoaXMuX21YMj1lLHRoaXMuX21ZMj1sfWVhc2luZ0Z1bmMobyl7cmV0dXJuIHRoaXMuX21YMT09PXRoaXMuX21ZMSYmdGhpcy5fbVgyPT09dGhpcy5fbVkyP286dGhpcy5fY2FsY0Jlemllcih0aGlzLl9nZXRURm9yWChvKSl9X2EobyxyKXtyZXR1cm4gMS0zKnIrMypvfV9iKG8scil7cmV0dXJuIDMqci02Km99X2Mobyl7cmV0dXJuIDMqb31fY2FsY0JlemllcihvKXtyZXR1cm4oKHRoaXMuX2EodGhpcy5fbVkxLHRoaXMuX21ZMikqbyt0aGlzLl9iKHRoaXMuX21ZMSx0aGlzLl9tWTIpKSpvK3RoaXMuX2ModGhpcy5fbVkxKSkqb31fZ2V0U2xvcGUobyl7cmV0dXJuIDMqdGhpcy5fYSh0aGlzLl9tWDEsdGhpcy5fbVgyKSpvKm8rMip0aGlzLl9iKHRoaXMuX21YMSx0aGlzLl9tWDIpKm8rdGhpcy5fYyh0aGlzLl9tWDEpfV9nZXRURm9yWChvKXtsZXQgcj1vO2ZvcihsZXQgZT0wO2U8NDsrK2Upe2NvbnN0IGU9dGhpcy5fZ2V0U2xvcGUocik7aWYoMD09PWUpcmV0dXJuIHI7ci09KHRoaXMuX2NhbGNCZXppZXIociktbykvZX1yZXR1cm4gcn19Y29uc3QgYT17YmxhY2s3MDoiIzRBNEE0QSIsYmxhY2s4MDoiIzUzNTM1MyJ9fSw1Njc0NzkobyxyLGUpeyJ1c2Ugc3RyaWN0IjtlLmQocix7REVGQVVMVF9TSVpFOigpPT5sLHNwaW5uZXJTaXplTWFwOigpPT50fSk7Y29uc3QgbD0ibGFyZ2UiLHQ9e21pbmk6InhzbWFsbCIseHhzbWFsbDoieHhzbWFsbCIseHNtYWxsOiJ4c21hbGwiLHNtYWxsOiJzbWFsbCIsbWVkaXVtOiJtZWRpdW0iLGxhcmdlOiJsYXJnZSJ9fSwxMjEzMShvLHIsZSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGwobyxyKXtsZXQgZTtjb25zdCBsPSgpPT57Y2xlYXJUaW1lb3V0KGUpLGU9dm9pZCAwfTtyZXR1cm57c3RhcnQ6KCk9PntsKCksZT1zZXRUaW1lb3V0KG8scil9LHJlc2V0Omx9fWUuZChyLHtjcmVhdGVUaW1lcjooKT0+bH0pfSwKODQ4OTg4KG8scixlKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbChvKXtyZXR1cm4gMD09PW8uZGV0YWlsfWUuZChyLHtpc0tleWJvYXJkQ2xpY2s6KCk9Pmx9KX0sMzgyMjQyKG8scixlKXsidXNlIHN0cmljdCI7ZS5kKHIse2dldEZpcnN0RGVzY2VuZGFudDooKT0+YyxnZXRMYXN0RGVzY2VuZGFudDooKT0+YSxnZXRQcmV2aW91c05vblBhcmVudDooKT0+bixnZXRTZWxlY3RvclRyZWVXYWxrZXI6KCk9PnR9KTt2YXIgbD1lKDY4MjM4MSk7Y29uc3QgdD0obz1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQscik9PmRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIobyxOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwobz0+cj0+e2lmKDEhPT1yLm5vZGVUeXBlKXJldHVybiBOb2RlRmlsdGVyLkZJTFRFUl9TS0lQO2NvbnN0IGU9cjtyZXR1cm4oMCxsLmlzSW5lcnRSb290KShlKT9Ob2RlRmlsdGVyLkZJTFRFUl9SRUpFQ1Q6KDAsbC5pc1Zpc2liaWxpdHlWaXNpYmxlKShlKSYmZS5tYXRjaGVzKG8pP05vZGVGaWx0ZXIuRklMVEVSX0FDQ0VQVDpOb2RlRmlsdGVyLkZJTFRFUl9TS0lQfSkocikpO2Z1bmN0aW9uIGMobyl7cmV0dXJuIG8uY3VycmVudE5vZGU9by5yb290LG8ubmV4dE5vZGUoKX1mdW5jdGlvbiBhKG8pe2ZvcihvLmN1cnJlbnROb2RlPW8ucm9vdDtudWxsIT09by5sYXN0Q2hpbGQoKTspO3JldHVybiBvLmN1cnJlbnROb2RlPT09by5yb290P251bGw6by5jdXJyZW50Tm9kZX1mdW5jdGlvbiBuKG8pe2NvbnN0IHI9by5jdXJyZW50Tm9kZTtsZXQgZT1vLnByZXZpb3VzTm9kZSgpO2Zvcig7ZSYmZS5jb250YWlucyhyKTspZT1vLnByZXZpb3VzTm9kZSgpO3JldHVybiBlfX0sNzEwMTEyKG8scixlKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbCgpe2NvbnN0IG89bmV3IFNldCxyPW5ldyBTZXQ7Y29uc3QgZT17dXBkYXRlOmZ1bmN0aW9uKGwsdCl7bD9yLmFkZCh0KTpyLmRlbGV0ZSh0KTtjb25zdCBjPXIuc2l6ZT4wO2UudmFsdWUhPT1jJiYoZS52YWx1ZT1jLG8uZm9yRWFjaCgobz0+e28obCl9KSkpfSx2YWx1ZTohMSxzdWJzY3JpYmU6ZnVuY3Rpb24ocil7cmV0dXJuIG8uYWRkKHIpLCgpPT57by5kZWxldGUocil9fX07cmV0dXJuIGV9ZS5kKHIse2NyZWF0ZVVzZXJJbnRlcmFjdGlvblN0YXR1czooKT0+bH0pfSwyMjI0MjMobyxyLGUpeyJ1c2Ugc3RyaWN0IjtlLmQocix7QWdncmVnYXRlRXJyb3I6KCk9Pl8sQXBpRXJyb3I6KCk9Pm0sU01TX0JBTk5FRF9TVEFUVVM6KCk9PmMsYWNjdW11bGF0ZUVycm9yczooKT0+bixjaGVja1Bob25lQ29kZTooKT0+dSxjb250aW51ZVBhcnRpYWxBdXRoOigpPT53LGZpcnN0TG9naW5EYXRhOigpPT5zLGZpcnN0TG9naW5EYXRhVXJsOigpPT5hLGdlbmVyYXRlU2lnbmluQ2hhbGxlbmdlOigpPT5SLGdldEFwaUVycm9yTWVzc2FnZTooKT0+QSxyZWNvdmVyUGFzc3dvcmQ6KCk9PmYscmVjb3ZlclBhc3N3b3JkVXJsOigpPT5ULHJlY292ZXJ5UGFzc3dvcmQ6KCk9PnAscmVzZW5kTGluazooKT0+ZyxzZWNvbmRGYWN0b3JTaWduaW46KCk9Pk4sc2lnbmluOigpPT5iLHNpZ25pblVybDooKT0+QyxzaWdudXA6KCk9PkUsc2lnbnVwVXJsOigpPT5oLHNvY2lhbEF1dGg6KCk9PnZ9KTt2YXIgbD1lKDM4NDAxNyksdD1lKDE4NTI3MSk7Y29uc3QgYz00MDMsYT0iL2FjY291bnRzL2ZpcnN0X2xvZ2luX2RhdGEvIjtmdW5jdGlvbiBuKG8scil7cmV0dXJuIE9iamVjdC5lbnRyaWVzKG8pLm1hcCgobz0+bmV3IG0ob1sxXS5qb2luKCJcbiIpLHIsb1swXSkpKX1mdW5jdGlvbiBpKG8scil7cmV0dXJuKDAsbC5mZXRjaCkobyx7bWV0aG9kOiJQT1NUIixjcmVkZW50aWFsczoiaW5jbHVkZSIsbW9kZToic2FtZS1vcmlnaW4iLGJvZHk6cn0pfWFzeW5jIGZ1bmN0aW9uIGQobyl7dHJ5e3JldHVybiBhd2FpdCBvLmpzb24oKX1jYXRjaHt0aHJvdyBuZXcgbSh0LnQobnVsbCx7Y29udGV4dDoiYXBpIGVycm9yIn0sZSg2ODM2MjcpKSxvLnN0YXR1cywic2VydmVyX2Vycm9yIil9fWZ1bmN0aW9uIHMobyl7cmV0dXJuIGkoYSxvKS50aGVuKChvPT5vLm9rP2Qobyk6ZChvKS50aGVuKChyPT57dGhyb3cgbmV3IF8obihyLmVycm9ycyxvLnN0YXR1cykpfSkpKSl9ZnVuY3Rpb24gZygpe3JldHVybiBpKCIvYXBpL3YxL3VzZXJzL2Fub24vY2hhbmdlLWVtYWlsL3Jlc2VuZC8iKS50aGVuKChvPT5vLm9rP2Qobyk6ZChvKS50aGVuKChvPT57dGhyb3cgRXJyb3Ioby5lcnJvcil9KSkpKX1mdW5jdGlvbiB1KG8pe3JldHVybiBpKCIvYXBpL3YxL3JlY292ZXJfcGFzc3dvcmQvY2hlY2tfcGhvbmVfY29kZS8iLG8pLnRoZW4oKG89Pm8ub2s/ZChvKTpkKG8pLnRoZW4oKG89Pnt0aHJvdyBFcnJvcihvLmVycm9yKX0pKSkpfWZ1bmN0aW9uIHAobyl7cmV0dXJuIGkoIi9hcGkvdjEvcmVjb3Zlcl9wYXNzd29yZC8iLG8pLnRoZW4oKG89Pm8pKX1jb25zdCBDPSIvYWNjb3VudHMvc2lnbmluLyI7ZnVuY3Rpb24geShvKXtyZXR1cm4gZChvKS50aGVuKChyPT57aWYoImVycm9ycyJpbiByJiZPYmplY3Qua2V5cyhyLmVycm9ycykubGVuZ3RoKXRocm93IG5ldyBfKG4oci5lcnJvcnMsby5zdGF0dXMpKTtpZigiZXJyb3IiaW4gciYmIiIhPT1yLmVycm9yfHwiY29kZSJpbiByfHwhby5vayl0aHJvdyBuZXcgbShyLmVycm9yfHxyLmRldGFpbCxvLnN0YXR1cyxyLmNvZGUsci5jb25maXJtX2F1dGhfZGF0YSxyLnR3b19mYWN0b3JfdHlwZXMsZnVuY3Rpb24obyl7aWYoby5zaWduYXR1cmUpcmV0dXJue3NpZ25hdHVyZTpvLnNpZ25hdHVyZSxlbWFpbDpvLmVtYWlsfHwiIixwaG9uZTpvLnBob25lfHwiIixzb2NpYWxzOltdfTtyZXR1cm59KHIpKTtyZXR1cm4gcn0pKX1mdW5jdGlvbiBiKG8pe3JldHVybiBpKEMsbykudGhlbih5KX1jb25zdCBoPSIvYWNjb3VudHMvc2lnbnVwLyI7ZnVuY3Rpb24gRShvKXtyZXR1cm4gaShoLG8pLnRoZW4oKG89PmQobykudGhlbigocj0+e2lmKCJlcnJvcnMiaW4gciYmIiIhPT1yLmVycm9ycyl0aHJvdyBuZXcgXyhuKHIuZXJyb3JzLG8uc3RhdHVzKSl9KSkpKX1jbGFzcyBtIGV4dGVuZHMgRXJyb3J7Y29uc3RydWN0b3IobyxyLGUsbCx0LGMpe3N1cGVyKG8pLHRoaXMudHlwZT1lLAp0aGlzLnN0YXR1cz1yLHRoaXMuc2Vjb25kRmFjdG9yVHlwZXM9dCx0aGlzLnNvY2lhbENvbmZpcm1EYXRhPWwsdGhpcy5yZXNldFBhc3N3b3JkRGF0YT1jfX1mdW5jdGlvbiBBKG8scil7cmV0dXJuIG8gaW5zdGFuY2VvZiBtJiZ2b2lkIDAhPT1vLnN0YXR1cz9gJHtvLm1lc3NhZ2V8fHJ8fHQudChudWxsLHtjb250ZXh0OiJhcGkgZXJyb3IifSxlKDY4MzYyNykpfSAoJHtvLnN0YXR1c30pYDpvIGluc3RhbmNlb2YgRXJyb3ImJm8ubWVzc2FnZT9vLm1lc3NhZ2U6cnx8dC50KG51bGwse2NvbnRleHQ6ImFwaSBlcnJvciJ9LGUoNjgzNjI3KSl9Y2xhc3MgXyBleHRlbmRzIEVycm9ye2NvbnN0cnVjdG9yKG8pe3N1cGVyKG8ubWFwKChvPT5vLm1lc3NhZ2UpKS5qb2luKCJcbiIpKSx0aGlzLmVycm9ycz1bXSx0aGlzLmVycm9ycz1vfX1jb25zdCBUPSIvYXBpL3YxL3JlY292ZXJfcGFzc3dvcmQvc2VhcmNoLyI7ZnVuY3Rpb24gZihvKXtyZXR1cm4gaShULG8pLnRoZW4oeSl9Y29uc3QgUz17QWNjZXB0OiJhcHBsaWNhdGlvbi9qc29uIn07ZnVuY3Rpb24gdihvLHIpe2NvbnN0IGU9bmV3IFVSTCh3aW5kb3cub3JpZ2luKyIvYWNjb3VudHMvY29tcGxldGUvYW5kcm9pZC1qd3QvIik7cmV0dXJuIE9iamVjdC5lbnRyaWVzKHIpLmZvckVhY2goKChbbyxyXSk9PnImJmUuc2VhcmNoUGFyYW1zLmFwcGVuZChvLHIpKSksKDAsbC5mZXRjaCkoZS5ocmVmLHttZXRob2Q6IlBPU1QiLGJvZHk6byxoZWFkZXJzOlN9KS50aGVuKHkpfWZ1bmN0aW9uIHcobyxyKXtjb25zdCBlPW5ldyBVUkwod2luZG93Lm9yaWdpbitgL2FjY291bnRzL2NvbXBsZXRlLyR7b30vYCksdD1uZXcgRm9ybURhdGE7cmV0dXJuIHQuYXBwZW5kKCJwYXJ0aWFsX3Rva2VuIixyKSwoMCxsLmZldGNoKShlLmhyZWYse21ldGhvZDoiUE9TVCIsYm9keTp0LGhlYWRlcnM6U30pLnRoZW4oeSl9ZnVuY3Rpb24gUihvKXtyZXR1cm4gaShgL2FjY291bnRzL3R3by1mYWN0b3Ivc2lnbmluLyR7b30vZ2VuZXJhdGUtY2hhbGxlbmdlL2ApLnRoZW4oKG89Pm8ub2s/ZChvKTpkKG8pLnRoZW4oKCh7ZGV0YWlsOm99KT0+e3Rocm93IEVycm9yKG8pfSkpKSl9ZnVuY3Rpb24gTihvLHIpe3JldHVybiBpKGAvYWNjb3VudHMvdHdvLWZhY3Rvci9zaWduaW4vJHtvfS9gLHIpLnRoZW4oKG89Pm8ub2s/ZChvKTpkKG8pLnRoZW4oKHI9PntpZigicmVxdWlyZV9wYXJhbWV0ZXJzIj09PXIuY29kZSl0aHJvdyBuZXcgXyhuKHIuZXJyb3JzLG8uc3RhdHVzKSk7dGhyb3cgbmV3IG0oci5kZXRhaWwsby5zdGF0dXMsci5jb2RlKX0pKSkpfX0sODI3MDY3KG8scixlKXsidXNlIHN0cmljdCI7ZS5kKHIse2lzU2lnbmVkRXhjaGFuZ2VBZ3JlZW1lbnQ6KCk9Pm4sc2F2ZUV4Y2hhbmdlQWdyZWVtZW50OigpPT5jfSk7dmFyIGw9ZSgzODQwMTcpLHQ9ZSgyMjI0MjMpO2Z1bmN0aW9uIGMobyl7cmV0dXJuKDAsbC5mZXRjaCkoIi9leGNoYW5nZS1hZ3JlZW1lbnQvIix7aGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxtZXRob2Q6IlBPU1QiLGJvZHk6SlNPTi5zdHJpbmdpZnkobyl9KS50aGVuKChvPT5vLm9rP28uanNvbigpOm8uanNvbigpLnRoZW4oKHI9Pnt0aHJvdyBuZXcgdC5BZ2dyZWdhdGVFcnJvcigoMCx0LmFjY3VtdWxhdGVFcnJvcnMpKHIuZXJyb3JzLG8uc3RhdHVzKSl9KSkpKX1jb25zdCBhPXt9O2FzeW5jIGZ1bmN0aW9uIG4obyl7bGV0IHI9Ii9pcy1zaWduZWQtZXhjaGFuZ2UtYWdyZWVtZW50LyI7aWYoby5leGNoYW5nZSYmKHIrPWA/ZXhjaGFuZ2U9JHtvLmV4Y2hhbmdlfWAsYVtvLmV4Y2hhbmdlXSkpcmV0dXJuIGFbby5leGNoYW5nZV07Y29uc3QgZT1hd2FpdCgwLGwuZmV0Y2gpKHIpO2lmKCFlLm9rKXtjb25zdCBvPWF3YWl0IGUuanNvbigpO3Rocm93IEVycm9yKG8uZGV0YWlsKX1jb25zdCB0PWF3YWl0IGUuanNvbigpO3JldHVybiBvLmV4Y2hhbmdlJiYoYVtvLmV4Y2hhbmdlXT10KSx0fX0sNTU0NjU0KG8scixlKXsidXNlIHN0cmljdCI7ZS5kKHIse3NvbHV0aW9uSWRzOigpPT5sfSkKO2NvbnN0IGw9SlNPTi5wYXJzZSgneyJFWFRFTkRFRF9IT1VSUyI6NDMwMDA1MDIwMjMsIlBSRV9NQVJLRVQiOjQzMDAwNTAyMDIzLCJQT1NUX01BUktFVCI6NDMwMDA1MDIwMjMsIlNQUkVBRF9DSEFSVFMiOjQzMDAwNTAyMjk4LCJBTEVSVFMiOjQzMDAwNTIwMTQ5LCJBTEVSVF9PTl9TVFJBVEVHWSI6NDMwMDA0ODEzNjgsIkFMRVJUU19PTl9GVU5EQU1FTlRBTFMiOjQzMDAwNzg2ODMxLCJBTEVSVF9XRUJIT09LIjo0MzAwMDUyOTM0OCwiQUxFUlRfV0VCSE9PS19FUlJPUlMiOjQzMDAwNzc2ODk0LCJBTEVSVF9ERVNDUklQVElPTl9QTEFDRUhPTERFUiI6NDMwMDA1MzEwMjEsIkFMRVJUX1JFQ0VJVkVfTk9USUZJQ0FUSU9OU19PSF9QSE9ORSI6NDMwMDA0NzQzODksIkFMRVJUX1VTRV9BTFRFUk5BVElWRV9FTUFJTCI6NDMwMDA0NzQzOTQsIkFMRVJUX1dFQkhPT0tfQ1JFREVOVElBTFMiOjQzMDAwNzIyMDE1LCJBTEVSVF9LRUVQX1RPQVNUU19WSVNJQkxFIjo0MzAwMDczNzk4MiwiVk9MVU1FX1BST0ZJTEUiOjQzMDAwNTAyMDQwLCJWT0xVTUVfUFJPRklMRV9JTkRJQ0FUT1IiOjQzMDAwNTU3NDUwLCJSRU5LTyI6NDMwMDA1MDIyODQsIktBR0kiOjQzMDAwNTAyMjcyLCJMSU5FX0JSRUFLIjo0MzAwMDUwMjI3MywiUE5GIjo0MzAwMDUwMjI3NiwiRklOQU5DSUFMX0RBVEEiOjQzMDAwNTQzNTA2LCJCUk9LRVJfUkFUSU5HIjo0MzAwMDU0MjQ5MCwiQ1JZUFRPX01BUktFVF9DQVAiOjQzMDAwNTQwOTQxLCJDUllQVE9fUEFZTUVOVCI6NDMwMDA0ODU1MzYsIkFMRVJUX09OX1NQUkVBRCI6NDMwMDA0Nzg0MDYsIkFMRVJUX0RFR1JBREVEX1NUQVRFIjo0MzAwMDczOTUyMSwiQUxFUlRfT05fTE9HX1NDQUxFIjo0MzAwMDY5MDk0MiwiQUxFUlRfT05fQ1VTVE9NX1NDUklQVCI6NDMwMDA0Nzg0MTUsIkFMRVJUX09OX1BPU0lUSU9OIjo0MzAwMDUxNjk5MiwiQUxFUlRfRlVOQ1RJT04iOjQzMDAwNTk3NDk0LCJBTEVSVF9NVUxUSUNPTkRJVElPTlMiOjQzMDAwNzYxNDkyLCJBTEVSVF9OT1RJRklDQVRJT05fU0NIRURVTEUiOjQzMDAwNzg3MTk2LCJTTVNfVkVSSUZJQ0FUSU9OIjo0MzAwMDU1MzQyOSwiTUFHTkVUX01PREUiOjQzMDAwNTM3MjcwLCJQUklWQUNZX1NFVFRJTkdTIjo0MzAwMDU0ODMzNSwiUFVCTElDQVRJT05fVFlQRSI6NDMwMDA2MDk0OTcsIlNDUklQVF9BQ0NFU1MiOjQzMDAwNDgyNTczLCJGUkVFX1VTRVJfRkFRUyI6NDMwMDA1OTA5NDcsIlNUUkFURUdZX1VOUkVBTElTVElDX1JFU1VMVFMiOjQzMDAwNDgxMDI5LCJTVFJBVEVHWV9GVVRVUkVfREFUQSI6NDMwMDA2MTQ3MDUsIkhPV19UT19VU0VfUEFQRVIiOjQzMDAwNTE2NDY2LCJIT1dfVE9fVVNFX0NRRyI6NDMwMDA1MTYzNzIsIkhPV19UT19VU0VfT0FOREEiOjQzMDAwNTE2Mzc1LCJIT1dfVE9fVVNFX0ZPUkVYQ09NIjo0MzAwMDUxNjM3NCwiRkFWT1JJVEVfSURFQSI6NDMwMDA1NTUyMTYsIkFVVEhPUlNfSU5TVFJVQ1RJT05TX1BVQkNMSUNBVElPTiI6NDMwMDA1NDk5NTEsIkFVVEhPUlNfSU5TVFJVQ1RJT05TX0VESVQiOjQzMDAwNjE0NjE4LCJTQ1JJUFRfSU5TVFJVQ1RJT05TIjo0MzAwMDQ4MjU3MywiQkFSX1JFUExBWV9VTkFWQUlMQUJJTElUWSI6NDMwMDA0NzU0NzAsIldIQVRfSVNfQ0JPRV9CWlhfRVhDSEFOR0UiOjQzMDAwNDczOTI0LCJHT1BST19VUEdSQURFX0RFU0NSSVBUSU9OIjo0MzAwMDQ3MzMyNCwiR09QUk9fRE9XTkdSQURFX0RFU0NSSVBUSU9OIjo0MzAwMDQ4NTQzNywiR09QUk9fUkVORVdfQU5OVUFMX01PTlRITFlfREVTQ1JJUFRJT04iOjQzMDAwNjQ0NDkxLCJGSU5BTkNJQUxTX09XTkVSU0hJUCI6NDMwMDA2OTk0NzksIkZJTkFOQ0lBTFNfVkFMVUFUSU9OX1NVTU1BUlkiOjQzMDAwNjk5NDg0LCJGSU5BTkNJQUxTX1ZBTFVBVElPTl9SQVRJT1MiOjQzMDAwNjk5NDk1LCJGSU5BTkNJQUxTX0dST1dUSF9BTkRfUFJPRklUQUJJTElUWSI6NDMwMDA2OTk0ODUsIkZJTkFOQ0lBTFNfUkVWRU5VRV9UT19QUk9GSVRfQ09OVkVSU0lPTiI6NDMwMDA2OTk0OTYsIkZJTkFOQ0lBTFNfUkVWRU5VRV9CUkVBS0RPV05fQllfU09VUkNFIjo0MzAwMDY5OTQ4NywiRklOQU5DSUFMU19SRVZFTlVFX0JSRUFLRE9XTl9CWV9DT1VOVFJZIjo0MzAwMDY5OTQ5NywiRklOQU5DSUFMU19SRVZFTlVFX0VTVElNQVRFUyI6NDMwMDA2OTk0ODksIkZJTkFOQ0lBTFNfRUFSTklOR1NfRVNUSU1BVEVTIjo0MzAwMDY5OTQ5OCwiRklOQU5DSUFMU19ESVZJREVORF9TVU1NQVJZIjo0MzAwMDY5OTUwMCwiRklOQU5DSUFMU19ESVZJREVORF9ISVNUT1JZIjo0MzAwMDY5OTUwMSwiRklOQU5DSUFMU19ERUJUX0xFVkVMIjo0MzAwMDY5OTUwMiwiRklOQU5DSUFMU19QT1NJVElPTiI6NDMwMDA2OTk1MDMsIkZJUkVfQ09OVFJPTF9TT0xVVElPTiI6NDMwMDA2OTA5MzksIkJST0tFUkFHRV9SRVZJRVdTIjo0MzAwMDU5MTM1MSwiTElOS1NfVE9fU09DSUFMX01FRElBIjo0MzAwMDYzNTgwNiwiUElORV9MSUJSQVJZX0lORk8iOjQzMDAwNjM4MzcxLCJURUNITklDQUxfUkFUSU5HUyI6NDMwMDA2MTQzMzEsIkJBQ0tURVNUSU5HX1dJREdFVCI6NDMwMDA1NjIzNjIsIkJBQ0tURVNUSU5HX05PX0RBVEEiOjQzMDAwNDc4NDUwLCJCQUNLRU5EX0NPTk5FQ1RJT05TIjo0MzAwMDY5NDQ3NCwiREVFUF9CQUNLVEVTVElOR19XSURHRVQiOjQzMDAwNjcwNTY2LCJERUVQX0JBQ0tURVNUSU5HIjo0MzAwMDY2NjE5OSwiREVFUF9CQUNLVEVTVElOR19BVkFJTEFCTEVfREFUQSI6NDMwMDA2NjgyMTAsIkJFVEFfQlJPS0VSUyI6NDMwMDA2NzM0MzQsIlZJREVPX1VQTE9BRF9GQUlMRUQiOjQzMDAwNjY2NjA3LCJWSURFT19ERVZJQ0VfQUNDRVNTIjo0MzAwMDY3NzIwOSwiSU5WSVRFX09OTFlfU0NSSVBUUyI6NDMwMDA2MTQ2MTcsIkhPV19ET0VTX0JSQUNLRVRTX01BTkFHRU1FTlRfV09SSyI6NDMwMDA2MzE5ODcsIkhPV19UT19TRUVfVEhFX0RFRVBFU1RfSElTVF9EQVRBIjo0MzAwMDY4NzA1MywiSV9DQU5UX1NFRV9BTExfSElTVF9EQVRBX09OX1JFU19MT1dFUl9USEFOX0RBWSI6NDMwMDA0ODA2NzksIklERUFTX09OX0NIQVJUIjo0MzAwMDY5NDI4NSwiR0VUX0FfUkVGVU5EIjo0MzAwMDQ4NTQzMCwiVVNFX1NFVFRMRU1FTlRfQVNfQ0xPU0VfT05fREFJTFlfSU5UUkVWQUwiOjQzMDAwNjg1MjY4LCJBREpVU1RfRk9SX0NPTlRSQUNUX0NIQU5HRVMiOjQzMDAwNjg1MjY2LCJTV0lUQ0hJTkdfQ09OVElOVU9VU19GVVRVUkVTX0NPTlRSQUNUUyI6NDMwMDA2ODkzMTMsIkFESlVTVF9EQVRBX0ZPUl9ESVZJREVORFMiOjQzMDAwNTkwNTk3LCJXSFlfSVNfTVlfQUNDT1VOVF9CQU5ORUQiOjQzMDAwNjc0NzI2LCJURUxMX01FX01PUkVfQUJPVVRfVEhFX0NPTU1VTklUWV9TQ1JJUFRTIjo0MzAwMDU1ODUyMiwiSE9XX1RPX1BPU1RfQVdFU09NRV9JREVBU19BTkRfR0VUX0xPVFNfT0ZfTElLRVMiOjQzMDAwNjAzNzQ4LCJBQk9VVF9FWFBFUlRfUExBTiI6NDMwMDA2NzczODIsIkNPTk5FQ1RJT05TX0xJTUlUX0VYQ0VFREVEIjo0MzAwMDY5Mzg3NywiQUNDT1VOVF9SRUNPVkVSWSI6NDMwMDA2MTk1OTcsIkhPV19UT19TWU5DX0NIQVJUU19PTl9MQVlPVVQiOjQzMDAwNjI5OTkyLCJIT1dfVE9fU0VFX0JVSUxUSU5fSU5ESUNBVE9SX1NPVVJDRSI6NDMwMDA0ODE2NTksIk1VTFRJX0NIQVJUX01PREUiOjQzMDAwNjI5OTkwLCJRVUlDS19TRUFSQ0giOjQzMDAwNjU5NjcxLCJXSEFUU19BTl9JTkRJQ0FUT1IiOjQzMDAwNTQzNjI2LCJDSEFSVF9UWVBFUyI6NDMwMDA3MDM0MDcsIkRSQVdJTkdfVE9PTFMiOjQzMDAwNzAzMzk2LCJDVVNUT01fSU5URVJWQUxTIjo0MzAwMDU0Mzg4MywiQ1VTVE9NX1JBTkdFX0JBUlMiOjQzMDAwNDc0MDA3LCJDQU5ETEVTVElDS19QQVRURVJOUyI6NDMwMDA1ODQ0NjIsIk1VTFRJX1RJTUVGUkFNRV9DSEFSVFMiOjQzMDAwNTAyNTkxLCJCQVJfUkVQTEFZIjo0MzAwMDcxMjc0NywiUElORV9TQ1JJUFQiOjQzMDAwNTYxODM2LCJTQ1JFRU5FUl9PVkVSVklFVyI6NDMwMDA2MzU3OTYsIkFVVE9fQ0hBUlRfUEFUVEVSTlMiOjQzMDAwNjkwNDY0LCJIT1dfVE9fUFJPVEVDVF9ZT1VSX0FDQ09VTlQiOjQzMDAwNTgyMjc3LCJQTFVTX0JVVFRPTiI6NDMwMDA2NDUyNTYsIlBVUkNIQVNFX01BUktFVF9EQVRBIjo0MzAwMDQ3MTcwNSwiV0hZX1RBWF9IQVNfQkVFTl9BRERFRF9UT19NWV9CSUxMIjo0MzAwMDY4NDc0MSwiQ09NUEFSRV9TWU1CT0xTX1RPT0wiOjQzMDAwNTQzMDUzLCJTQVZFRF9DSEFSVCI6NDMwMDA2OTI0MDQsIkNVU1RPTV9JTkRJQ0FUT1IiOjQzMDAwNTQzMDQ4LCJCSVNUX01JWEVEX1NVQlNDUklQVElPTiI6NDMwMDA2MDkxMzcsIldIWV9SRU5LT19OT1RfV09SSyI6NDMwMDA3MTE1MDIsIkFMRVJUU19TRVBBUkFUSU9OX0JZX1RZUEUiOjQzMDAwNjk2NDAzLCJXQVRDSExJU1RfQUxFUlRTIjo0MzAwMDczOTcwOCwiSE9XX1RPX1NFVF9VUF9BTEVSVFMiOjQzMDAwNTk1MzE1LCJQSU5FX1NDUkVFTkVSIjo0MzAwMDc0MjQzNiwiRUNPTk9NSUNfQ0FMRU5EQVIiOjQzMDAwNzA3MzkxLCJTQ1JJUFRfUFVCTElTSElOR19SVUxFUyI6NDMwMDA1OTA1OTksIkhPV19UT19VU0VfTUlORFMiOjQzMDAwNjkwMjI2LCJIT1dfVE9fVVNFX1RSQURJTkdWSUVXX0NIQVQiOjQzMDAwNjA0NDQ4LCJQQVBFUl9DT01QRVRJVElPTiI6NDMwMDA1OTM1NzksIlBBUEVSX0NPTVBFVElUSU9OX0FDQ09VTlQiOjQzMDAwNzIxMzE1LCJQQVBFUl9DT01QRVRJVElPTl9QUklaRSI6NDMwMDA3MjEzMTcsIlBBUEVSX0NPTVBFVElUSU9OX0ZSRUVfQUNDT1VOVCI6NDMwMDA3MjEzMTAsIlBVQkxJU0hJTkdfQU5EX1VQREFUSU5HX0lERUFTIjo0MzAwMDU5MTMzOCwiVVNJTkdfTUlORFMiOjQzMDAwNjk2MzAxLCJQVUJMSVNIX1ZJREVPX0lERUEiOjQzMDAwNDc2NzUyLCJUQVJPVF9ERUNLIjo0MzAwMDcyNDAyMCwiVkFUX05VTUJFUl9HVUlERSI6NDMwMDA3MjE5MTAsIlBJTkVfUEVSRk9STUFOQ0VfUFJPRklMRVIiOjQzMDAwNzI1MjE2LCJQSU5FX0xPR1NfSU5GTyI6NDMwMDA3MTA4NzYsIklORElDQVRPUlMiOjQzMDAwNDc0MDQ4LCJDSEFSVF9EQVRBX0VYUE9SVCI6NDMwMDA1MzcyNTUsIlRJTUVfUFJJQ0VfT1BQT1JUVU5JVElFUyI6NDMwMDA3MTMzMDYsIlRJQ0tfSU5URVJWQUxTIjo0MzAwMDcwOTIyNSwiVk9MVU1FX0ZPT1RQUklOVCI6NDMwMDA3MjYxNjQsIlZPTFVNRV9DQU5ETEVTIjo0MzAwMDcyNDk5NSwiSEVJS0lOX0FTSEkiOjQzMDAwNjE5NDM2LCJITENfQVJFQSI6NDMwMDA3MDkwNjIsIkJBU0VMSU5FIjo0MzAwMDY5MDIzMiwiSElHSF9MT1ciOjQzMDAwNjc3MTk2LCJDT0xVTU5TIjo0MzAwMDY3MzkxMiwiR0lGVFMiOjQzMDAwNzM5NDAxLCJIT1dfVE9fQkVDT01FX01PREVSQVRPUiI6NDMwMDA1OTEzNTYsIkhPV19UT19GSU5EX1BJTkVfUFJPR1JBTU1FUiI6NDMwMDA2MDE2NzcsIkhPV19UT19DSEFOR0VfUkVQTEFZX0lOVEVSVkFMIjo0MzAwMDczOTE1OCwiU0VBU09OQUxTIjo0MzAwMDc0NTIwMSwiQkFSX0NIQVJUUyI6NDMwMDA2NzI0MDMsIkNBTkRMRVNfQ0hBUlRTIjo0MzAwMDc0NTI2OSwiSE9MTE9XX0NBTkRMRVNfQ0hBUlRTIjo0MzAwMDc0NTI3MCwiTElORV9DSEFSVFMiOjQzMDAwNzQ1MjcxLCJTVEVQX0xJTkVfQ0hBUlRTIjo0MzAwMDc0NTI3MiwiTElORV9XSVRIX01BUktFUlNfQ0hBUlRTIjo0MzAwMDc0NTI3MywiQVJFQV9DSEFSVFMiOjQzMDAwNzQ1Mjc0LCJTRVNTSU9OX1ZPTFVNRV9QUk9GSUxFX0NIQVJUUyI6NDMwMDA3NDUyNzUsIlRJTUVfUFJJQ0VfT1BQT1JUVU5JVElFU19DSEFSVFMiOjQzMDAwNzI1NTkwLCJCQUNLVEVTVElOR19CQVJfTUFHTklGSUVSIjo0MzAwMDY2OTI4NSwiQkFDS1RFU1RJTkdfQkFSX0RFVEFMSVpBVElPTiI6NDMwMDA3ODYxODAsIkJBQ0tURVNUSU5HX1NDUklQVF9FWEVDVVRJT04iOjQzMDAwNzg2MTc4LCJCUk9LRVJfRU1VTEFUT1IiOjQzMDAwNzg2MTgxLCJTT0NJQUxfTkVUV09SS19IT1VTRV9SVUxFUyI6NDMwMDA1OTE2MzgsIlFVSUNLX0FORF9FQVNZX0dVSURFIjo0MzAwMDcxODg4NSwiSE9XX1RPX1VTRV9GSUxURVJTIjo0MzAwMDcxODc0NSwiQ0hBUlRfVklFV19NT0RFIjo0MzAwMDcyNDIzMywiV0FUQ0hMSVNUX0FMRVJUU19IT1ciOjQzMDAwNjUzMzY5LCJXQVRDSExJU1RfQUxFUlRTX0NVU1RPTUlaRSI6NDMwMDA2NjI1MDYsIlBVQkxJU0hfQU5fSURFQSI6NDMwMDA1ODkwODMsIlNVUEVSQ0hBUlRTIjo0MzAwMDc0NjQ2NCwiQkFTSUNTIjo0MzAwMDc0NjY4MiwiVElNRV9JTlRFUlZBTFMiOjQzMDAwNzQ3OTM0LCJMQVlPVVRTIjo0MzAwMDc0Njk3NSwiQ09ORklHVVJFIjo0MzAwMDc0ODE2NiwiTUFTVEVSSU5HIjo0MzAwMDc0NTgyNSwiTVVMVElfVElNRUZSQU1FX0FOQUxZU0lTIjo0MzAwMDU5MTU1NSwiU0VUX1VQX0FMVEVSTkFUSVZFX0VNQUlMX0FERFJFU1MiOjQzMDAwNDc0Mzk4LCJERUxFVEVfQUNDT1VOVCI6NDMwMDA1NTA1MzQsIlNJR05BVFVSRV9PTl9QT1NUUyI6NDMwMDA0NzI3NzAsIlNDUkVFTkVSX0RFWCI6NDMwMDA3NDQ0NjUsIlNDUkVFTkVSX0NFWCI6NDMwMDA3NDYxMTAsIlNDUkVFTkVSX0NSWVBUTyI6NDMwMDA3MTg3NDIsIlNDUkVFTkVSX0JPTkQiOjQzMDAwNzQzOTUxLCJTQ1JFRU5FUl9FVEYiOjQzMDAwNzE4NzQzLCJTQ1JFRU5FUl9TVE9DSyI6NDMwMDA3MTg4NjYsIk9QVElPTlNfQlVJTERFUiI6NDMwMDA3MDcyMTQsIk5FV1NfRkxPVyI6NDMwMDA3Mjg4MjgsIkhPV19UT19DT05GSUdVUkVfMkZBIjo0MzAwMDU3MjQ2MCwiSU5UUkFEQVlfUkVOS09fS0FHSSI6NDMwMDA3NTg2MTcsIkRBVEFfRUNPTk9NSUNfQ0FMRU5EQVIiOjQzMDAwNzU5OTExLCJFQVJOSU5HU19DQUxFTkRBUiI6NDMwMDA3NTk5MTIsIkRJVklERU5EX0NBTEVOREFSIjo0MzAwMDc1OTkxMywiVEVDSE5JQ0FMX0FOQUxZU0lTIjo0MzAwMDc1OTU3NywiRlVOREFNRU5UQUxfQU5BTFlTSVMiOjQzMDAwNzU5NTc0LCJGSU5BTkNJQUxfU1RBVEVNRU5UU19IT1dUTyI6NDMwMDA3NjAwNTksIk9ORV9DTElDS19UUkFESU5HIjo0MzAwMDQ4MDkyMCwiT05FX1RBUF9UUkFESU5HIjo0MzAwMDc3NjI2NCwiUFJPRklUX0xPU1NfVFlQRV9TRUxFQ1RJT04iOjQzMDAwNzYxMTgxLCJUSVBTX0ZPUl9TQ1JJUFRfQVVUSE9SUyI6NDMwMDA1NDk5MzUsIlVQREFURV9QSU5FX1NDUklQVFMiOjQzMDAwNTMwNzIwLCJFWFBPUlRfU1RSQVRFR1lfREFUQSI6NDMwMDA2MTM2ODAsIllJRUxEX0NVUlZFUyI6NDMwMDA3NTgxMjMsIk5FV1NfQUxFUlRTIjo0MzAwMDc2MjgzOCwiUE9TSVRJT05TX0FORF9PUkRFUlNfT05fQ0hBUlQiOjQzMDAwNzYzMzYyLCJFWEVDVVRJT05TX01BUktTX09OX0NIQVJUIjo0MzAwMDc2MzM3MSwiUFJJQ0VfQUxFUlRTIjo0MzAwMDc2MzMxMywiVEVDSE5JQ0FMX0FMRVJUUyI6NDMwMDA3NjMzMTUsIkhJU1RPUklDQUxfREFUQSI6NDMwMDA2OTE4ODksIlBJTkVfRURJVE9SIjo0MzAwMDc2MzMyMCwiU1RSQVRFR1lfUFVCTElTSElOR19SVUxFUyI6NDMwMDA3NjQ2ODEsIkFTU0VUU19ZT1VfQ0FOX0FOQUxZWkUiOjQzMDAwNzY0ODg5LCJDSEFOR0VfQUNDT1VOVF9DVVJSRU5DWSI6NDMwMDA0ODA5MDMsIlNFVF9MRVZFUkFHRSI6NDMwMDA3NDI2OTksIlNDQU5fU1RPQ0tTIjo0MzAwMDY2OTg3NywiTUFDUk9fTUFQUyI6NDMwMDA3NjQ5MjUsIk9QVElPTlNfQ0hBSU4iOjQzMDAwNzYwODM3LCJHUkVFS1MiOjQzMDAwNzA4MTM3LCJTRUNPTkRfQkFTRURfSU5URVJWQUxTIjo0MzAwMDc2MjA2OCwiUEFJRF9TUEFDRSI6NDMwMDA3NjU4NzcsIlBBSURfU1BBQ0VfQVVUSE9SX1JVTEVTIjo0MzAwMDc2NTg3OCwiQ1JFQVRPUl9QUk9HUkFNX1BBSURfU1BBQ0VTX1RFUk1TIjo0MzAwMDc3MjE3NywiRUFSTklOR19MT0xMSVBPUF9GSUVMRFMiOjQzMDAwNjI5NzkwLCJFVkVSWVRISU5HX1lPVV9XQU5UX1RPX0tOT1ciOjQzMDAwNTgxODE3LCJNVUxUSVBMRV9MRVZFTFMiOjQzMDAwNzcyMzM0LCJIRUFUTUFQUyI6NDMwMDA3NjY0NDYsIldIQVRfSUZfU0NFTkFSSU9TIjo0MzAwMDc2Mjk1MywiT1BUSU9OU19TVFJBVEVHWSI6NDMwMDA3MDgxMDMsIk9QVElPTlNfRVhQSVJBVElPTiI6NDMwMDA3MzU2MTMsIk5FV1NfQllfTUFSS0VUIjo0MzAwMDczMjU2MiwiTkVXU19CWV9QUk9WSURFUiI6NDMwMDA3MzI1NjUsIk5FV1NfQllfQ09SUE9SQVRJT04iOjQzMDAwNzMyNTYzLCJDSEFSVFNfT1JERVJfVFJBQ0tJTkciOjQzMDAwNzY2MzM0LCJGVU5EQU1FTlRBTF9HUkFQSFMiOjQzMDAwNzYzMzc2LCJDT05URVhUX0hJTlRTIjo0MzAwMDU0Mjk2MywiSU5ESUNBVE9SU19WRVJTSU9OUyI6NDMwMDA3NDY3NTIsIlNUUkFURUdZX1RFU1RFUiI6NDMwMDA3NjQxMzgsIlRIRV9MRUFQIjo0MzAwMDc3MTU5NCwiUE9SVEZPTElPUyI6NDMwMDA3NjA5MzcsIldBVENITElTVF9TQ1JFRU5FUl9TRUFSQ0giOjQzMDAwNDczOTMwLCJIT1RMSVNUUyI6NDMwMDA3NjIwMjksIkRFUFRIX09GX01BUktFVCI6NDMwMDA1MTY0NTksIkxBU1RfT1BFTl9DSEFSVF9NT0JJTEUiOjQzMDAwNzU1NDc5LCJJT1NfUFVTSEVTIjo0MzAwMDQ3NDU5MCwiSU9TX0VESVRfV0lER0VUUyI6NDMwMDA3NTQ1MzYsIk1VTFRJQVBQX1dJTkRPV1MiOjQzMDAwNjExNTQzLCJTWU1CT0xfU1lOQ0lORyI6NDMwMDA2NzM4OTMsIkRFU0tUT1BfQVBQIjo0MzAwMDY3MTYxOCwiQ1VTVE9NRVJfU1VQUE9SVCI6NDMwMDA2NDgyNDgsIlJFTktPX0NIQVJUX0RJU1BMQVlfSVNTVUVTIjo0MzAwMDQ3NDMwNSwiQUNDRVNTX0FDUk9TU19ERVZJQ0VTIjo0MzAwMDc3NzcxOCwiV0FUQ0hMSVNUX0FTX0ZJTFRFUiI6NDMwMDA3MjQ1NDksIkRBVEFfRVhQT1JUIjo0MzAwMDQ3NDQzMiwiU0NSRUVORVJfVElNRUZSQU1FUyI6NDMwMDA3MjM2MTYsIlNIQVJFX1BPUlRGT0xJTyI6NDMwMDA3ODc1ODd9JykKfSwzODk4NDQobyxyLGUpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBsKG8pe3JldHVybiB0KCk/MDpjKCk/NDU6TWF0aC5taW4oTWF0aC5tYXgobyw0NSksNDUwKX1lLmQocix7Z2V0V2lkZ2V0QmFyUGFkZGluZzooKT0+bH0pO2NvbnN0IHQ9KCk9PiF3aW5kb3cubWF0Y2hNZWRpYSgiKG1pbi13aWR0aDogNzY4cHgpIikubWF0Y2hlcyxjPSgpPT4hd2luZG93Lm1hdGNoTWVkaWEoIihtaW4td2lkdGg6IDEyODBweCkiKS5tYXRjaGVzfSw1NTcwNjUobyxyLGUpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBsKCl7cmV0dXJuIG5hdmlnYXRvci5hbmRyb2lkQ2xpcGJvYXJkPz9uYXZpZ2F0b3IuY2xpcGJvYXJkfWZ1bmN0aW9uIHQobyl7cmV0dXJuIGMobyxudWxsKX1mdW5jdGlvbiBjKG8scil7Y29uc3QgZT1vLmZpbGVzJiZvLmZpbGVzLmxlbmd0aD4wO2lmKCFlJiZyJiZyLmV2ZW50UGhhc2U+MClyZXR1cm4gYShyLG8pLFByb21pc2UucmVzb2x2ZSgpO2lmKCFlKXtsZXQgcj0hMTtjb25zdCBlPWU9PntlLnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpLGEoZSxvKSxyPSEwfTt0cnl7ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY29weSIsZSwhMCksZG9jdW1lbnQuZXhlY0NvbW1hbmQoImNvcHkiKX1maW5hbGx5e2RvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoImNvcHkiLGUsITApfWlmKHIpcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpfXJldHVybiBhc3luYyBmdW5jdGlvbihvKXtjb25zdCByPWwoKTtpZighcnx8IXIud3JpdGV8fCF3aW5kb3cuQ2xpcGJvYXJkSXRlbSl0aHJvdyBuZXcgRE9NRXhjZXB0aW9uKCJDbGlwYm9hcmRBcGkgaXMgbm90IHN1cHBvcnRlZCIsIk5vdFN1cHBvcnRlZEVycm9yIik7Y29uc3QgZT17fTtmb3IoY29uc3QgciBvZiBvLmZpbGVzfHxbXSllW3IudHlwZV09cjtvLnRleHQmJihlWyJ0ZXh0L3BsYWluIl09by50ZXh0KTtvLmh0bWwmJihlWyJ0ZXh0L2h0bWwiXT1vLmh0bWwpO3JldHVybiByLndyaXRlKFtuZXcgd2luZG93LkNsaXBib2FyZEl0ZW0oZSldKX0obyl9ZnVuY3Rpb24gYShvLHIpe28ucHJldmVudERlZmF1bHQoKTtjb25zdCBlPW8uY2xpcGJvYXJkRGF0YTtyLnRleHQmJmUuc2V0RGF0YSgidGV4dC9wbGFpbiIsci50ZXh0KSxyLmh0bWwmJmUuc2V0RGF0YSgidGV4dC9odG1sIixyLmh0bWwpfWFzeW5jIGZ1bmN0aW9uIG4obyxyKXtjb25zdCBlPWwoKTtpZigidGV4dC9wbGFpbiI9PT1yJiYhZS53cml0ZSl7Y29uc3Qgcj1hd2FpdCBvO3JldHVybiBlLndyaXRlVGV4dChhd2FpdCByLnRleHQoKSl9aWYoIWV8fCFlLndyaXRlfHwhd2luZG93LkNsaXBib2FyZEl0ZW0pdGhyb3cgbmV3IERPTUV4Y2VwdGlvbigiQ2xpcGJvYXJkQXBpIGlzIG5vdCBzdXBwb3J0ZWQiLCJOb3RTdXBwb3J0ZWRFcnJvciIpO2xldCB0PW51bGw7dHJ5e3Q9bmV3IHdpbmRvdy5DbGlwYm9hcmRJdGVtKHtbcl06b30pfWNhdGNoKGUpe3Q9bmV3IHdpbmRvdy5DbGlwYm9hcmRJdGVtKHtbcl06YXdhaXQgb30pfWlmKHQpcmV0dXJuIGUud3JpdGUoW3RdKTt0aHJvdyBuZXcgRXJyb3IoIkNsaXBib2FyZEFwaSBpcyBub3Qgc3VwcG9ydGVkIil9ZS5kKHIse2NvcHlUb0NsaXBib2FyZDooKT0+dCxnZXRDbGlwYm9hcmQ6KCk9Pmwsd3JpdGVJbXBsOigpPT5jLHdyaXRlUHJvbWlzZVVzaW5nQXBpOigpPT5ufSl9LDcyNzA2NihvLHIsZSl7InVzZSBzdHJpY3QiO2UuZChyLHthZHdvcmRzQW5hbHl0aWNzRW5hYmxlZDooKT0+YSxjcmVhdGVJbWFnZTooKT0+dCxtYXJrZXRpbmdBbmFseXRpY3NFbmFibGVkOigpPT5jfSk7dmFyIGw9ZSg1NjkzOTgpO2Z1bmN0aW9uIHQobyl7Y29uc3Qgcj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbWciKTtyZXR1cm4gci5zcmM9byxyfWZ1bmN0aW9uIGMoKXtyZXR1cm4oMCxsLmlzRmVhdHVyZUVuYWJsZWQpKCJtYXJrZXRpbmctYW5hbHl0aWNzIil9ZnVuY3Rpb24gYSgpe3JldHVybigwLGwuaXNGZWF0dXJlRW5hYmxlZCkoImFkd29yZHMtYW5hbHl0aWNzIil9fSwxNTc5MTcobyxyLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgbDtlLmQocix7Q21FdmVudDooKT0+bCx0cmFja0NtRXZlbnQ6KCk9Pml9KSxmdW5jdGlvbihvKXtvLlBhZ2VWaWV3PSJwYWdlVmlldyIsby5BYm91dFZpc2l0PSJhYm91dFZpc2l0IixvLlJlZ2lzdHJhdGlvbkNvbXBsZXRlZD0icmVnaXN0cmF0aW9uQ29tcGxldGVkIixvLlRyaWFsU2lnblVwPSJ0cmlhbFNpZ25VcCIsby5QYWlkUGxhbkFjcXVpcmVkPSJwYWlkUGxhbkFjcXVpcmVkIn0obHx8KGw9e30pKTt2YXIgdD1lKDcyNzA2Nik7Y29uc3QgYz17W2wuUGFnZVZpZXddOnt0eXBlOiJ3Y291bnQiLGNhdDoidmlzaXQifSxbbC5BYm91dFZpc2l0XTp7dHlwZToid2NvdW50IixjYXQ6InRyYWRpMDAifSxbbC5SZWdpc3RyYXRpb25Db21wbGV0ZWRdOnt0eXBlOiJ3Y291bnQiLGNhdDoidHJhZGkwMDAifSxbbC5UcmlhbFNpZ25VcF06e3R5cGU6Indjb3VudCIsY2F0OiJ0cmFkaTAwMSJ9LFtsLlBhaWRQbGFuQWNxdWlyZWRdOnt0eXBlOiJ3c2FsZXMiLGNhdDoidHJhZGkwIn19O2Z1bmN0aW9uIGEoKXtyZXR1cm4gZnVuY3Rpb24obz0iX3NwXyIpe2NvbnN0IHI9bmV3IFJlZ0V4cChvKyJpZFxcLlthLWYwLTldKz0oW147XSspOz8iKSxlPWRvY3VtZW50LmNvb2tpZS5tYXRjaChyKTtyZXR1cm4gZSYmZVsxXT9lWzFdLnNwbGl0KCIuIilbMF06IiJ9KCl9ZnVuY3Rpb24gbihvLHIpe3JldHVybiBvJiZudWxsIT1yLnRyYW5zYWN0aW9uSWQ/ci50cmFuc2FjdGlvbklkOmAke0RhdGUubm93KCl9JHtNYXRoLmZsb29yKDFlOSpNYXRoLnJhbmRvbSgpKX1gfWZ1bmN0aW9uIGkobyxyPXt9KXsoMCx0LmNyZWF0ZUltYWdlKShmdW5jdGlvbihvLHI9e30pe2NvbnN0e3R5cGU6ZSxjYXQ6bH09Y1tvXSx0PSJ3c2FsZXMiPT09ZSxpPXQ/ZnVuY3Rpb24obyl7bGV0IHI9InF0eT0xOyI7cmV0dXJuIG51bGwhPW8udmFsdWUmJihyKz1gY29zdD0ke28udmFsdWV9O2ApLHJ9KHIpOiIiCjtyZXR1cm5gaHR0cHM6Ly9hZC5kb3VibGVjbGljay5uZXQvZGRtL2FjdGl2aXR5L3NyYz0xMzkxOTM5OTt0eXBlPSR7ZX07Y2F0PSR7bH07JHtpfSR7W2B1Mjc9JHthKCl9YCxgdTI4PSR7d2luZG93LnVzZXIuaWR9YCwiZGNfbGF0PSIsImRjX3JkaWQ9IiwidGFnX2Zvcl9jaGlsZF9kaXJlY3RlZF90cmVhdG1lbnQ9IiwidGZ1YT0iLCJucGE9Il0uam9pbigiOyIpfTtvcmQ9JHtuKHQscil9P2B9KG8scikpfX0sMTQxMzEobyxyLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgbDtlLmQocix7R1RhZ0V2ZW50OigpPT5sLHRyYWNrR1RhZ0Fkc0V2ZW50OigpPT55fSksZnVuY3Rpb24obyl7by5QYWdlVmlldz0ia3duUkNQNkF3cXNCRU9UdnZ1RUQiLG8uVHJpYWxTaWduVXA9IjZfZ0NDT3llanNBQ0VLM3NxNmdCIixvLlJlZ2lzdHJhdGlvbkNvbXBsZXRlZD0iSnpZaENJT3I1NzhDRUszc3E2Z0IiLG8uUGFpZFBsYW5BY3F1aXJlZD0iY2E4aUNOckc1NzhDRUszc3E2Z0IifShsfHwobD17fSkpO3ZhciB0PWUoMTc5NzcxKSxjPWUoNjgwODQyKSxhPWUoMTE3MzEzKSxuPWUoMzE4OTc0KSxpPWUoNjMxNjM0KSxkPWUoNzI3MDY2KSxzPWUoNDQ5NTA4KTtsZXQgZz0hMSx1PSExO2Z1bmN0aW9uIHAoKXtyZXR1cm4oMCxhLmlzT25Nb2JpbGVBcHBQYWdlKSgiYW55Iil8fG4uQ2hlY2tNb2JpbGUuaU9TKCl8fCgwLG4uaXNTeW1waG9ueUVtYmVkKSgpfHwoMCxuLmlzRGVza3RvcEFwcCkoKX1mdW5jdGlvbiBDKG8pe3JldHVybiEoIW98fHAoKSkmJigoMCxzLmVuc3VyZUd0YWdCb290c3RyYXApKG8pLHV8fCh3aW5kb3cuZ3RhZygiY29uc2VudCIsImRlZmF1bHQiLHthZF9zdG9yYWdlOigwLGMuZ2V0Q29va2llU2V0dGluZykoYy5Db29raWVTZXR0aW5ncy5BZHZlcnRpc2luZyk/ImdyYW50ZWQiOiJkZW5pZWQifSksdC5zdWJzY3JpYmUoYy5jb29raWVTZXR0aW5nc0NoYW5nZUV2ZW50LCgobyxyKT0+e289PT1jLkNvb2tpZVNldHRpbmdzLkFkdmVydGlzaW5nJiZ3aW5kb3cuZ3RhZygiY29uc2VudCIsInVwZGF0ZSIse2FkX3N0b3JhZ2U6cj8iZ3JhbnRlZCI6ImRlbmllZCJ9KX0pLG51bGwpLHU9ITApLCEwKX1mdW5jdGlvbiB5KG8scj17fSl7aWYoZnVuY3Rpb24oKXtpZihnfHwhKDAsZC5hZHdvcmRzQW5hbHl0aWNzRW5hYmxlZCkoKXx8cCgpKXJldHVybjsoMCxpLnVwZGF0ZUluaXREYXRhKSgpO2NvbnN0IG89KDAsaS5nZXRJbml0RGF0YSkoKTtvLmdhZHdJZCYmQyhvLmdhZHdJZCkmJihnPSEwLHdpbmRvdy5ndGFnKCJjb25maWciLG8uZ2Fkd0lkKSl9KCksIWcpcmV0dXJuO2NvbnN0IGU9KDAsaS5nZXRJbml0RGF0YSkoKS5nYWR3SWQ7d2luZG93Lmd0YWcoImV2ZW50IiwiY29udmVyc2lvbiIse3NlbmRfdG86YCR7ZX0vJHtvfWAsdXNlcl9pZDp3aW5kb3cudXNlci5pZCwuLi5yfSl9fSw0NDk1MDgobyxyLGUpeyJ1c2Ugc3RyaWN0IjtlLmQocix7ZW5zdXJlR3RhZ0Jvb3RzdHJhcDooKT0+YX0pO3ZhciBsPWUoMTk4NTgxKTtsZXQgdD0hMSxjPSExO2Z1bmN0aW9uIGEobyl7byYmKHR8fCgoMCxsLmFwcGVuZFNjcmlwdCkoKG89PmBodHRwczovL3d3dy5nb29nbGV0YWdtYW5hZ2VyLmNvbS9ndGFnL2pzP2lkPSR7b31gKShvKSksdD0hMCksQXJyYXkuaXNBcnJheSh3aW5kb3cuZGF0YUxheWVyKXx8KHdpbmRvdy5kYXRhTGF5ZXI9W10pLGN8fCh3aW5kb3cuZ3RhZz1mdW5jdGlvbigpe3dpbmRvdy5kYXRhTGF5ZXIucHVzaChhcmd1bWVudHMpfSx3aW5kb3cuZ3RhZygianMiLG5ldyBEYXRlKSxjPSEwKSl9fSw1NDkxOTkobyxyLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgbDtlLmQocix7VHdpdHRlckV2ZW50OigpPT5sLHRyYWNrVHdpdHRlckV2ZW50OigpPT5hfSksZnVuY3Rpb24obyl7by5TaXRlVmlzaXQ9Im8yZWcyIixvLlRyaWFsU2lnblVwPSJvMXdqbyIsby5SZWdpc3RyYXRpb25Db21wbGV0ZWQ9Im8xd2pxIixvLlBhaWRQbGFuQWNxdWlyZWQ9Im8xd2pyIn0obHx8KGw9e30pKTt2YXIgdD1lKDcyNzA2NiksYz1lKDY4MDg0Mik7ZnVuY3Rpb24gYShvKXsoMCx0Lm1hcmtldGluZ0FuYWx5dGljc0VuYWJsZWQpKCkmJigwLGMuZ2V0Q29va2llU2V0dGluZykoYy5Db29raWVTZXR0aW5ncy5BbmFseXRpY3MpJiYobz0+W2BodHRwczovL2FuYWx5dGljcy50d2l0dGVyLmNvbS9pL2Fkc2N0P3R4bl9pZD0ke299JnBfaWQ9VHdpdHRlciZ0d19zYWxlX2Ftb3VudD0wJnR3X29yZGVyX3F1YW50aXR5PTBgLGBodHRwczovL3QuY28vaS9hZHNjdD90eG5faWQ9JHtvfSZwX2lkPVR3aXR0ZXImdHdfc2FsZV9hbW91bnQ9MCZ0d19vcmRlcl9xdWFudGl0eT0wImBdKShvKS5tYXAodC5jcmVhdGVJbWFnZSl9fSwxOTg1ODEobyxyLGUpeyJ1c2Ugc3RyaWN0IjtlLmQocix7YXBwZW5kU2NyaXB0OigpPT50fSk7dmFyIGw9ZSg1ODQ2NzcpO2Z1bmN0aW9uIHQobyl7Y29uc3Qgcj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKTtyLmFzeW5jPSEwLHIuc3JjPW87Y29uc3QgZT0oMCxsLmdldENzcE5vbmNlKSgpO3JldHVybiBlJiZyLnNldEF0dHJpYnV0ZSgibm9uY2UiLGUpLGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQocikscn19LDY4MDg0MihvLHIsZSl7InVzZSBzdHJpY3QiO3ZhciBsO2UuZChyLHtDb29raWVTZXR0aW5nczooKT0+bCxiYW5uZXJQcml2YWN5UHJlZmVyZW5jZUtleTooKT0+cCxjaGVja0Jhbm5lclByaXZhY3lQcmVmZXJlbmNlS2V5OigpPT5mLGNvb2tpZVNldHRpbmdzQ2hhbmdlRXZlbnQ6KCk9PmQsZ2V0Q29va2llU2V0dGluZzooKT0+TixoaWRlQmFubmVyOigpPT5TLHJlamVjdEJhbm5lcjooKT0+dixzZXRDb29raWVTZXR0aW5nOigpPT5SfSksZnVuY3Rpb24obyl7by5BbmFseXRpY3M9ImFuYWx5dGljcyIsby5BZHZlcnRpc2luZz0iYWR2ZXJ0aXNpbmcifShsfHwobD17fSkpO3ZhciB0PWUoMTc5NzcxKSxjPWUoNzY4NzYwKSxhPWUoOTMyMzY1KSxuPWUoMTYwMjk2KSxpPWUoNTg3NDM2KTtjb25zdCBkPSJjb29raWVfc2V0dGluZ3NfY2hhbmdlZCIscz0oKDAsYy5jcmVhdGVEZWZlcnJlZFByb21pc2UpKCksd2luZG93LmxvY2F0aW9uLmhvc3RuYW1lLnNwbGl0KCIuIikpLGc9KDAsCm4uaXNMb2NhbCkoKT8iIjoiLiIrcy5zbGljZSgxLHMubGVuZ3RoKS5qb2luKCIuIiksdT0iY29va2llQmFubmVyIixwPSgwLG4uaXNQcm9kKSgpPyJjb29raWVQcml2YWN5UHJlZmVyZW5jZUJhbm5lclByb2R1Y3Rpb24iOiJjb29raWVQcml2YWN5UHJlZmVyZW5jZUJhbm5lckxvY2FsIixDPSJhY2NlcHRlZCIseT0ibm90QXBwbGljYWJsZSIsYj0icmVqZWN0IixoPSJjb29raWVzU2V0dGluZ3MiLEU9ImxvY2FsQ29va2llc1NldHRpbmdzIixtPSJjb29raWVQcml2YWN5UHJlZmVyZW5jZUJhbm5lciIsQT17W2wuQW5hbHl0aWNzXTohMSxbbC5BZHZlcnRpc2luZ106ITF9O2Z1bmN0aW9uIF8oKXtyZXR1cm4gYS5UVkxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKHUpfWZ1bmN0aW9uIFQobyl7cmV0dXJuW0MseSxiXS5pbmNsdWRlcyhhLlRWTG9jYWxTdG9yYWdlLmdldEl0ZW0obyk/PyIiKX1mdW5jdGlvbiBmKCl7cmV0dXJuIG89cCxbQyx5LGJdLmluY2x1ZGVzKGkuZ2V0KG8pPz8iIik7dmFyIG99ZnVuY3Rpb24gUygpe3coQyl9ZnVuY3Rpb24gdigpe3coYil9ZnVuY3Rpb24gdyhvKXtpLnNldChwLG8sMzY1MywiLyIsZyl9ZnVuY3Rpb24gUihvLHIpe0Fbb109cixpLnNldCgoMCxuLmlzUHJvZCkoKT9oOkUsSlNPTi5zdHJpbmdpZnkoQSksMzY1MywiLyIsZyksdC5lbWl0KGQsbyxyKX1mdW5jdGlvbiBOKG8pe3JldHVybiBBW29dfWZ1bmN0aW9uIEkoKXtyZXR1cm4gYS5UVkxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKG0pfSFmdW5jdGlvbigpe2NvbnN0IG89aS5nZXQoKDAsbi5pc1Byb2QpKCk/aDpFKSxyPWEuVFZMb2NhbFN0b3JhZ2UuZ2V0SXRlbShtKSxlPWEuVFZMb2NhbFN0b3JhZ2UuZ2V0SXRlbShoKTtpZihvKXtyJiZlJiYoSSgpLGEuVFZMb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShoKSksVCh1KSYmXygpO3RyeXtjb25zdCByPUpTT04ucGFyc2Uobyk7QVtsLkFuYWx5dGljc109cj8uW2wuQW5hbHl0aWNzXXx8ITEsQVtsLkFkdmVydGlzaW5nXT1yPy5bbC5BZHZlcnRpc2luZ118fCExfWNhdGNoe319ZWxzZSBpZihUKHUpJiYoUihsLkFuYWx5dGljcywhMCksUihsLkFkdmVydGlzaW5nLCEwKSxTKCksXygpKSxyJiZlKXtjb25zdCBvPUpTT04ucGFyc2UoZSk7dyhyKSxSKGwuQW5hbHl0aWNzLG8/LltsLkFuYWx5dGljc10pLFIobC5BZHZlcnRpc2luZyxvPy5bbC5BZHZlcnRpc2luZ10pLEkoKSxhLlRWTG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oaCl9fSgpfSw1ODQ2NzcobyxyLGUpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBsKCl7cmV0dXJuIGZ1bmN0aW9uKG8pe2lmKG51bGwhPT1vKXJldHVybiBvLmdldEF0dHJpYnV0ZSgibm9uY2UiKXx8by5ub25jZX0oZG9jdW1lbnQucXVlcnlTZWxlY3Rvcigic2NyaXB0W25vbmNlXSIpKX1lLmQocix7Z2V0Q3NwTm9uY2U6KCk9Pmx9KX0sMTEyNTQyKG8scixlKXsidXNlIHN0cmljdCI7ZS5kKHIse2dldENTU1Byb3BlcnR5OigpPT5uLGdldENTU1Byb3BlcnR5TnVtZXJpY1ZhbHVlOigpPT5pLGdldENvbnRlbnRXaWR0aDooKT0+YyxnZXRTY3JvbGxiYXJXaWR0aDooKT0+bCxtYXRjaE1lZGlhTWluTWF4OigpPT50LHNldFN0eWxlOigpPT5hfSk7Y29uc3QgbD0oKCk9PntsZXQgbztyZXR1cm4oKT0+e2lmKHZvaWQgMD09PW8pe2NvbnN0IHI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksZT1yLnN0eWxlO2UudmlzaWJpbGl0eT0iaGlkZGVuIixlLndpZHRoPSIxMDBweCIsZS5tc092ZXJmbG93U3R5bGU9InNjcm9sbGJhciIsZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChyKTtjb25zdCBsPXIub2Zmc2V0V2lkdGg7ci5zdHlsZS5vdmVyZmxvdz0ic2Nyb2xsIjtjb25zdCB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3Quc3R5bGUud2lkdGg9IjEwMCUiLHIuYXBwZW5kQ2hpbGQodCk7Y29uc3QgYz10Lm9mZnNldFdpZHRoO3IucGFyZW50Tm9kZT8ucmVtb3ZlQ2hpbGQociksbz1sLWN9cmV0dXJuIG99fSkoKTtmdW5jdGlvbiB0KG8scil7cmV0dXJuIHI9PT0xLzA/d2luZG93Lm1hdGNoTWVkaWEoYChtaW4td2lkdGg6ICR7b31weClgKTp3aW5kb3cubWF0Y2hNZWRpYShgKG1pbi13aWR0aDogJHtvfXB4KSBhbmQgKG1heC13aWR0aDogJHtyfXB4KWApfWZ1bmN0aW9uIGMobyl7cmV0dXJuIGkobywid2lkdGgiKS1pKG8sInBhZGRpbmctbGVmdCIpLWkobywicGFkZGluZy1yaWdodCIpfWZ1bmN0aW9uIGEobyxyLGUpe251bGwhPT1vJiZvLnN0eWxlLnNldFByb3BlcnR5KHIsZSl9ZnVuY3Rpb24gbihvLHIpe3JldHVybiBnZXRDb21wdXRlZFN0eWxlKG8sbnVsbCkuZ2V0UHJvcGVydHlWYWx1ZShyKX1mdW5jdGlvbiBpKG8scil7cmV0dXJuIHBhcnNlSW50KG4obyxyKSl9fSw4NzI1MTgobyxyLGUpeyJ1c2Ugc3RyaWN0IjtlLmQocix7c2V0Rml4ZWRCb2R5U3RhdGU6KCk9Pm59KTt2YXIgbD1lKDExMjU0MiksdD1lKDM4OTg0NCk7bGV0IGM9MCxhPSExO2Z1bmN0aW9uIG4obyl7Y29uc3R7Ym9keTpyfT1kb2N1bWVudCxlPXIucXVlcnlTZWxlY3RvcigiLndpZGdldGJhci13cmFwIik7aWYobyYmMT09KytjKXtjb25zdCBvPSgwLGwuZ2V0Q1NTUHJvcGVydHkpKHIsIm92ZXJmbG93IiksdD0oMCxsLmdldENTU1Byb3BlcnR5TnVtZXJpY1ZhbHVlKShyLCJwYWRkaW5nLXJpZ2h0Iik7ImhpZGRlbiIhPT1vLnRvTG93ZXJDYXNlKCkmJnIuc2Nyb2xsSGVpZ2h0PnIub2Zmc2V0SGVpZ2h0JiYoKDAsbC5zZXRTdHlsZSkoZSwicmlnaHQiLGAkeygwLGwuZ2V0U2Nyb2xsYmFyV2lkdGgpKCl9cHhgKSxyLnN0eWxlLnBhZGRpbmdSaWdodD1gJHt0KygwLGwuZ2V0U2Nyb2xsYmFyV2lkdGgpKCl9cHhgLGE9ITApLHIuY2xhc3NMaXN0LmFkZCgiaS1uby1zY3JvbGwiKX1lbHNlIGlmKCFvJiZjPjAmJjA9PS0tYyYmKHIuY2xhc3NMaXN0LnJlbW92ZSgiaS1uby1zY3JvbGwiKSxhKSl7KDAsbC5zZXRTdHlsZSkoZSwicmlnaHQiLCIwcHgiKTtsZXQgbz0wO289ZT8oMCx0LmdldFdpZGdldEJhclBhZGRpbmcpKCgwLGwuZ2V0Q29udGVudFdpZHRoKShlKSk6MCxyLnNjcm9sbEhlaWdodDw9ci5jbGllbnRIZWlnaHQmJihvLT0oMCxsLmdldFNjcm9sbGJhcldpZHRoKSgpKSwKci5zdHlsZS5wYWRkaW5nUmlnaHQ9KG88MD8wOm8pKyJweCIsYT0hMX19fSwxNTI3MTcobyxyLGUpeyJ1c2Ugc3RyaWN0IjtlLmQocix7c3luY1VzZXJDb252ZXJzaW9uRGF0YTooKT0+dSxzeW5jVXNlckRhdGE6KCk9Pmd9KTt2YXIgbD1lKDIyMTA2MSksdD1lKDM4NjkzMSksYz1lKDgyNzAxKSxhPWUoMzg0MDE3KSxuPWUoNTI0MDY5KTtjb25zdCBpPSgwLGwuZ2V0TG9nZ2VyKSgiVXNlci5TeW5jIik7ZnVuY3Rpb24gZChvKXtyZXR1cm5gJHtvfV8ke3dpbmRvdy51c2VyJiZ3aW5kb3cudXNlci51c2VybmFtZXx8IiJ9YH1mdW5jdGlvbiBzKG8pe2NvbnN0e3NvdXJjZTpyLGlzQXV0aGVudGljYXRlZDplLHByb1BsYW46bCxvZmZlcnM6YSxmaXJlTG9naW5DaGFuZ2U6bj0hMH09bztsIT09d2luZG93LnVzZXIucHJvX3BsYW4mJih3aW5kb3cudXNlci5wcm9fcGxhbj1sLHdpbmRvdy51c2VyLmlzX3Bybz1Cb29sZWFuKGwpLCgwLHQudHJhY2tFdmVudCkoIlN5bmMgVXNlciBEYXRhIiwiRGlmZmVyZW50IFBybyBQbGFuIixkKHIpKSksZSE9PXdpbmRvdy5pc19hdXRoZW50aWNhdGVkJiYod2luZG93LmlzX2F1dGhlbnRpY2F0ZWQ9ZSxuJiZ3aW5kb3cubG9naW5TdGF0ZUNoYW5nZS5maXJlKCksKDAsdC50cmFja0V2ZW50KSgiU3luYyBVc2VyIERhdGEiLCJEaWZmZXJlbnQgQXV0aCIsZChyKSkpLGEmJmMuYXZhaWxhYmxlT2ZmZXJzLnNldEluaXRpYWwoYSl9YXN5bmMgZnVuY3Rpb24gZyhvKXt0cnl7cyh7c291cmNlOm8saXNBdXRoZW50aWNhdGVkOiEwLHByb1BsYW46KGF3YWl0KDAsbi5nZXRQcm9QbGFuRGV0YWlsc0ZvclVzZXIpKCkpLnByb19wbGFufSl9Y2F0Y2gocil7IWZ1bmN0aW9uKG8scil7NDAzPT09ci5zdGF0dXMmJlsibm90X2F1dGhlbnRpY2F0ZWQiLCJsb2dpbl9yZXF1aXJlZCJdLmluY2x1ZGVzKHIudHlwZXx8IiIpP3Moe3NvdXJjZTpvLGlzQXV0aGVudGljYXRlZDohMSxwcm9QbGFuOnZvaWQgMH0pOmkubG9nRXJyb3Ioci5tZXNzYWdlKX0obyxyKX19YXN5bmMgZnVuY3Rpb24gdShvLHI9ITApe2NvbnN0IGU9bmV3IFVSTCgiL3ByaWNpbmcvIix3aW5kb3cubG9jYXRpb24ub3JpZ2luKSxsPW5ldyBVUkxTZWFyY2hQYXJhbXMod2luZG93LmxvY2F0aW9uLnNlYXJjaCk7bC5oYXMoIl90ZXN0X2NvdW50cnkiKSYmZS5zZWFyY2hQYXJhbXMuYXBwZW5kKCJfdGVzdF9jb3VudHJ5IixsLmdldCgiX3Rlc3RfY291bnRyeSIpPz8iIiksZS5zZWFyY2hQYXJhbXMuYXBwZW5kKCJjb21wb25lbnQtZGF0YS1vbmx5IiwiMSIpO2NvbnN0IHQ9YXdhaXQoMCxhLmZldGNoKShlLmhyZWYpLGM9YXdhaXQgdC5qc29uKCk7cmV0dXJuIHMoe3NvdXJjZTpvLGlzQXV0aGVudGljYXRlZDpjLmlzX2F1dGhlbnRpY2F0ZWQscHJvUGxhbjpjLnVzZXIucHJvX3BsYW4sZmlyZUxvZ2luQ2hhbmdlOnIsb2ZmZXJzOmMudXNlci5hdmFpbGFibGVfb2ZmZXJzfSksY319LDQzMjc4MyhvLHIsZSl7InVzZSBzdHJpY3QiO2UuZChyLHtERUZBVUxUX1RIRU1FOigpPT5sfSk7Y29uc3QgbD0ibGlnaHQifSwyNDQ2NjQobyxyLGUpeyJ1c2Ugc3RyaWN0IjtlLmQocix7dGhlbWVzOigpPT5ufSk7dmFyIGw9ZSg4MTA0MSksdD1lKDE4NTI3MSkKO2NvbnN0IGM9SlNPTi5wYXJzZSgneyJjb2xvci1oZWFkZXItYmciOiJjb2xvci1ibGFjayIsImNvbG9yLWJvZHktYmciOiJjb2xvci1ibGFjayIsImNvbG9yLWJvZHktc2Vjb25kYXJ5LWJnIjoiY29sb3ItY29sZC1ncmF5LTkwMCIsImNvbG9yLWJnLXByaW1hcnkiOiJjb2xvci1jb2xkLWdyYXktODUwIiwiY29sb3ItYmctcHJpbWFyeS1ob3ZlciI6ImNvbG9yLWNvbGQtZ3JheS04MDAiLCJjb2xvci1iZy1zZWNvbmRhcnkiOiJjb2xvci1jb2xkLWdyYXktOTAwIiwiY29sb3ItYmctaGlnaGxpZ2h0IjoiY29sb3ItY29sZC1ncmF5LTkwMCIsImNvbG9yLWJnLXNjcm9sbC1idXR0b25zIjoiY29sb3ItY29sZC1ncmF5LTgwMCIsImNvbG9yLWxlZ2FjeS1iZy1zY3JvbGwtYnV0dG9ucyI6ImNvbG9yLWNvbGQtZ3JheS01NTAiLCJjb2xvci1sZWdhY3ktYmctd2lkZ2V0IjoiY29sb3ItY29sZC1ncmF5LTkwMCIsImNvbG9yLXRleHQtcHJpbWFyeSI6ImNvbG9yLWNvbGQtZ3JheS0yMDAiLCJjb2xvci10ZXh0LXNlY29uZGFyeSI6ImNvbG9yLWNvbGQtZ3JheS00NTAiLCJjb2xvci10ZXh0LXRlcnRpYXJ5IjoiY29sb3ItY29sZC1ncmF5LTQwMCIsImNvbG9yLXRleHQtZGlzYWJsZWQiOiJjb2xvci1jb2xkLWdyYXktNjUwIiwiY29sb3ItYWNjZW50LWNvbnRlbnQiOiJjb2xvci13aGl0ZSIsImNvbG9yLWRpdmlkZXIiOiJjb2xvci1jb2xkLWdyYXktNzAwIiwiY29sb3ItZGl2aWRlci1ob3ZlciI6ImNvbG9yLWNvbGQtZ3JheS04MDAiLCJjb2xvci1kaXZpZGVyLXNlY29uZGFyeSI6ImNvbG9yLWNvbGQtZ3JheS04MDAiLCJjb2xvci1ib3gtc2hhZG93IjoiY29sb3ItY29sZC1ncmF5LTkwMCIsImNvbG9yLWFjdGl2ZS1ob3Zlci10ZXh0IjoiY29sb3ItY29sZC1ncmF5LTIwMCIsImNvbG9yLWFsZXJ0LXRleHQiOiJjb2xvci1jb2xkLWdyYXktMjAwIiwiY29sb3ItYm9yZGVyIjoiY29sb3ItY29sZC1ncmF5LTc1MCIsImNvbG9yLWJvcmRlci1jaGF0LWZpZWxkcyI6ImNvbG9yLWNvbGQtZ3JheS03NTAiLCJjb2xvci1ib3JkZXItaG92ZXIiOiJjb2xvci1jb2xkLWdyYXktNjUwIiwiY29sb3ItYm9yZGVyLXRhYmxlIjoiY29sb3ItY29sZC1ncmF5LTgwMCIsImNvbG9yLWJyYW5kIjoiY29sb3ItdHYtYmx1ZS01MDAiLCJjb2xvci1icmFuZC1ob3ZlciI6ImNvbG9yLXR2LWJsdWUtNjAwIiwiY29sb3ItYnJhbmQtYWN0aXZlIjoiY29sb3ItdHYtYmx1ZS03MDAiLCJjb2xvci1idXR0b24taG92ZXItYmciOiJjb2xvci1jb2xkLWdyYXktODUwIiwiY29sb3ItY2hhcnQtcGFnZS1iZyI6ImNvbG9yLWNvbGQtZ3JheS04MDAiLCJjb2xvci1jb21tb24tdG9vbHRpcC1iZyI6ImNvbG9yLWNvbGQtZ3JheS03NTAiLCJjb2xvci1kYW5nZXIiOiJjb2xvci1yaXBlLXJlZC02MDAiLCJjb2xvci1kYW5nZXItaG92ZXIiOiJjb2xvci1yaXBlLXJlZC01MDAiLCJjb2xvci1kYW5nZXItYWN0aXZlIjoiY29sb3ItcmlwZS1yZWQtNDAwIiwiY29sb3ItZGVwdGhyZW5kZXJlci1maWxsLXN0eWxlIjoiY29sb3ItY29sZC1ncmF5LTE1MCIsImNvbG9yLWRlcHRocmVuZGVyZXItc3Ryb2tlLXN0eWxlIjoiY29sb3ItY29sZC1ncmF5LTY1MCIsImNvbG9yLWRpc2FibGVkLWJvcmRlci1hbmQtY29sb3IiOiJjb2xvci1jb2xkLWdyYXktODAwIiwiY29sb3ItZGlzYWJsZWQtaW5wdXQiOiJjb2xvci1jb2xkLWdyYXktNzUwIiwiY29sb3ItZW1wdHktY29udGFpbmVyLW1lc3NhZ2UiOiJjb2xvci1jb2xkLWdyYXktNDUwIiwiY29sb3ItaGlnaGxpZ2h0LW5ldyI6ImNvbG9yLXR2LWJsdWUtYTgwMCIsImNvbG9yLWljb25zIjoiY29sb3ItY29sZC1ncmF5LTQ1MCIsImNvbG9yLWlucHV0LWJnIjoiY29sb3ItY29sZC1ncmF5LTgwMCIsImNvbG9yLWlucHV0LXRleHRhcmVhLXJlYWRvbmx5IjoiY29sb3ItY29sZC1ncmF5LTY1MCIsImNvbG9yLWlucHV0LXBsYWNlaG9sZGVyLXRleHQiOiJjb2xvci1jb2xkLWdyYXktNzAwIiwiY29sb3ItaW5wdXQtcHVibGlzaC1iZyI6ImNvbG9yLWNvbGQtZ3JheS05MDAiLCJjb2xvci1pdGVtLWFjdGl2ZS1ibHVlIjoiY29sb3ItdHYtYmx1ZS1hOTAwIiwiY29sb3ItaXRlbS1ob3Zlci1hY3RpdmUtYmciOiJjb2xvci1jb2xkLWdyYXktODAwIiwiY29sb3ItaXRlbS1ob3Zlci1iZyI6ImNvbG9yLWNvbGQtZ3JheS04MDAiLCJjb2xvci1pdGVtLWhvdmVyLWJsdWUiOiJjb2xvci10di1ibHVlLWE4MDAiLCJjb2xvci1pdGVtLXNlbGVjdGVkLWJsdWUiOiJjb2xvci10di1ibHVlLWE4MDAiLCJjb2xvci1pdGVtLWFjdGl2ZS10ZXh0IjoiY29sb3ItY29sZC1ncmF5LTIwMCIsImNvbG9yLWl0ZW0tYWN0aXZlLWJnIjoiY29sb3ItdHYtYmx1ZS01MDAiLCJjb2xvci1saW5rIjoiY29sb3ItdHYtYmx1ZS01MDAiLCJjb2xvci1saW5rLWhvdmVyIjoiY29sb3ItdHYtYmx1ZS02MDAiLCJjb2xvci1saW5rLWFjdGl2ZSI6ImNvbG9yLXR2LWJsdWUtNzAwIiwiY29sb3ItbGlzdC1pdGVtIjoiY29sb3ItY29sZC1ncmF5LTQ1MCIsImNvbG9yLWxpc3QtbnRoLWNoaWxkLWJnIjoiY29sb3ItY29sZC1ncmF5LTg1MCIsImNvbG9yLW5ld3MtaGlnaGxpZ2h0IjoiY29sb3ItY29sZC1ncmF5LTgwMCIsImNvbG9yLXBhbmUtYmciOiJjb2xvci1jb2xkLWdyYXktOTAwIiwiY29sb3ItcGFuZS1zZWNvbmRhcnktYmciOiJjb2xvci1jb2xkLWdyYXktODUwIiwiY29sb3ItcGxhY2Vob2xkZXIiOiJjb2xvci1jb2xkLWdyYXktNjUwIiwiY29sb3ItcG9wdXAtbWVudS1pdGVtLWhvdmVyLWJnIjoiY29sb3ItY29sZC1ncmF5LTgwMCIsImNvbG9yLXBvcHVwLW1lbnUtc2VwYXJhdG9yIjoiY29sb3ItY29sZC1ncmF5LTcwMCIsImNvbG9yLXByaW1hcnktc3ltYm9sIjoiY29sb3Itc2t5LWJsdWUtNTAwIiwiY29sb3Itcm93LWhvdmVyLWFjdGl2ZS1iZyI6ImNvbG9yLWNvbGQtZ3JheS04MDAiLCJjb2xvci1zYi1zY3JvbGxiYXItYm9keS1iZyI6ImNvbG9yLWNvbGQtZ3JheS02NTAiLCJjb2xvci1zY3JlZW5lci1kZXNjcmlwdGlvbiI6ImNvbG9yLWNvbGQtZ3JheS0yMDAiLCJjb2xvci1zZWN0aW9uLXNlcGFyYXRvci1ib3JkZXIiOiJjb2xvci1jb2xkLWdyYXktNzUwIiwiY29sb3Itc2VhcmNoLWJ1dHRvbi1ob3ZlciI6ImNvbG9yLWNvbGQtZ3JheS03MDAiLCJjb2xvci1zZXBhcmF0b3ItdGFibGUtY2hhdCI6ImNvbG9yLWNvbGQtZ3JheS03NTAiLCJjb2xvci1zdWNjZXNzIjoiY29sb3ItbWludHktZ3JlZW4tNzAwIiwiY29sb3Itc3VjY2Vzcy1ob3ZlciI6ImNvbG9yLW1pbnR5LWdyZWVuLTYwMCIsImNvbG9yLXN1Y2Nlc3MtYWN0aXZlIjoiY29sb3ItbWludHktZ3JlZW4tNTAwIiwiY29sb3ItdGFnLWFjdGl2ZS1iZyI6ImNvbG9yLWNvbGQtZ3JheS03NTAiLCJjb2xvci10YWctaG92ZXItYmciOiJjb2xvci1jb2xkLWdyYXktODAwIiwiY29sb3ItdGV4dC1yZWd1bGFyIjoiY29sb3ItY29sZC1ncmF5LTIwMCIsImNvbG9yLXRvb2xiYXItYnV0dG9uLXRleHQiOiJjb2xvci1jb2xkLWdyYXktMjAwIiwiY29sb3ItdG9vbGJhci1idXR0b24tdGV4dC1ob3ZlciI6ImNvbG9yLWNvbGQtZ3JheS0yMDAiLCJjb2xvci10b29sYmFyLWJ1dHRvbi10ZXh0LWFjdGl2ZSI6ImNvbG9yLXR2LWJsdWUtNTAwIiwiY29sb3ItdG9vbGJhci1idXR0b24tdGV4dC1hY3RpdmUtaG92ZXIiOiJjb2xvci10di1ibHVlLTYwMCIsImNvbG9yLXRvb2xiYXItYnV0dG9uLWJhY2tncm91bmQtaG92ZXIiOiJjb2xvci1jb2xkLWdyYXktODAwIiwiY29sb3ItdG9vbGJhci1idXR0b24tYmFja2dyb3VuZC1zZWNvbmRhcnktaG92ZXIiOiJjb2xvci1jb2xkLWdyYXktNzUwIiwiY29sb3ItdG9vbGJhci1idXR0b24tYmFja2dyb3VuZC1hY3RpdmUiOiJjb2xvci10di1ibHVlLWE5MDAiLCJjb2xvci10b29sYmFyLWJ1dHRvbi1iYWNrZ3JvdW5kLWFjdGl2ZS1ob3ZlciI6ImNvbG9yLXR2LWJsdWUtYTgwMCIsImNvbG9yLXRvb2xiYXItdG9nZ2xlLWJ1dHRvbi1iYWNrZ3JvdW5kLWFjdGl2ZSI6ImNvbG9yLXR2LWJsdWUtNTAwIiwiY29sb3ItdG9vbGJhci10b2dnbGUtYnV0dG9uLWJhY2tncm91bmQtYWN0aXZlLWhvdmVyIjoiY29sb3ItdHYtYmx1ZS02MDAiLCJjb2xvci10b29sYmFyLXRvZ2dsZS1idXR0b24taWNvbiI6ImNvbG9yLWNvbGQtZ3JheS02NTAiLCJjb2xvci10b29sYmFyLWludGVyYWN0aXZlLWVsZW1lbnQtdGV4dC1ub3JtYWwiOiJjb2xvci1jb2xkLWdyYXktMjAwIiwiY29sb3ItdG9vbGJhci1vcGVuZWQtZWxlbWVudC1iZyI6ImNvbG9yLWNvbGQtZ3JheS04MDAiLCJjb2xvci10b29sYmFyLWRpdmlkZXItYmFja2dyb3VuZCI6ImNvbG9yLWNvbGQtZ3JheS03MDAiLCJjb2xvci1wb3B1cC1iYWNrZ3JvdW5kIjoiY29sb3ItY29sZC1ncmF5LTg1MCIsImNvbG9yLXBvcHVwLWVsZW1lbnQtdGV4dCI6ImNvbG9yLWNvbGQtZ3JheS0yMDAiLCJjb2xvci1wb3B1cC1lbGVtZW50LXRleHQtaG92ZXIiOiJjb2xvci1jb2xkLWdyYXktMjUwIiwiY29sb3ItcG9wdXAtZWxlbWVudC1iYWNrZ3JvdW5kLWhvdmVyIjoiY29sb3ItY29sZC1ncmF5LTgwMCIsImNvbG9yLXBvcHVwLWVsZW1lbnQtc2Vjb25kYXJ5LXRleHQiOiJjb2xvci1jb2xkLWdyYXktNTAwIiwiY29sb3ItcG9wdXAtZWxlbWVudC1oaW50LXRleHQiOiJjb2xvci1jb2xkLWdyYXktNjAwIiwiY29sb3ItcG9wdXAtZWxlbWVudC10ZXh0LWFjdGl2ZSI6ImNvbG9yLWNvbGQtZ3JheS0yMDAiLCJjb2xvci1wb3B1cC1lbGVtZW50LWJhY2tncm91bmQtYWN0aXZlIjoiY29sb3ItdHYtYmx1ZS01MDAiLCJjb2xvci1wb3B1cC1lbGVtZW50LXRvb2xib3gtdGV4dCI6ImNvbG9yLWNvbGQtZ3JheS01MDAiLCJjb2xvci1wb3B1cC1lbGVtZW50LXRvb2xib3gtdGV4dC1ob3ZlciI6ImNvbG9yLWNvbGQtZ3JheS0yMDAiLCJjb2xvci1wb3B1cC1lbGVtZW50LXRvb2xib3gtdGV4dC1hY3RpdmUtaG92ZXIiOiJjb2xvci10di1ibHVlLTIwMCIsImNvbG9yLXBvcHVwLWVsZW1lbnQtdG9vbGJveC1iYWNrZ3JvdW5kLWhvdmVyIjoiY29sb3ItY29sZC1ncmF5LTc1MCIsImNvbG9yLXBvcHVwLWVsZW1lbnQtdG9vbGJveC1iYWNrZ3JvdW5kLWFjdGl2ZS1ob3ZlciI6ImNvbG9yLXR2LWJsdWUtNzAwIiwiY29sb3ItdG9vbHRpcC1iZyI6ImNvbG9yLWNvbGQtZ3JheS03NTAiLCJjb2xvci10di1idXR0b24tY2hlY2tlZCI6ImNvbG9yLWNvbGQtZ3JheS00NTAiLCJjb2xvci10di1kaWFsb2ctY2FwdGlvbiI6ImNvbG9yLWNvbGQtZ3JheS01MCIsImNvbG9yLXR2LWRyb3Bkb3duLWl0ZW0taG92ZXItYmciOiJjb2xvci1jb2xkLWdyYXktODAwIiwiY29sb3ItdW5kZXJsaW5lZC10ZXh0IjoiY29sb3ItY29sZC1ncmF5LTQ1MCIsImNvbG9yLXdpZGdldC1wYWdlcy1iZyI6ImNvbG9yLWNvbGQtZ3JheS05MDAiLCJjb2xvci13YXJuaW5nIjoiY29sb3ItdGFuLW9yYW5nZS03MDAiLCJjb2xvci1mb3JleC1pY29uIjoiY29sb3Itd2hpdGUiLCJjb2xvci1saXN0LWl0ZW0tYWN0aXZlLWJnIjoiY29sb3ItdHYtYmx1ZS01MDAiLCJjb2xvci1saXN0LWl0ZW0taG92ZXItYmciOiJjb2xvci1jb2xkLWdyYXktODAwIiwiY29sb3ItbGlzdC1pdGVtLXRleHQiOiJjb2xvci1jb2xkLWdyYXktMjAwIiwiY29sb3ItcHJpY2UtYXhpcy1sYWJlbC1iYWNrIjoiY29sb3ItY29sZC1ncmF5LTgwMCIsImNvbG9yLXByaWNlLWF4aXMtbGFiZWwtdGV4dCI6ImNvbG9yLWNvbGQtZ3JheS01MDAiLCJjb2xvci1wcmljZS1heGlzLWdlYXIiOiJjb2xvci1jb2xkLWdyYXktMjAwIiwiY29sb3ItcHJpY2UtYXhpcy1nZWFyLWhvdmVyIjoiY29sb3ItY29sZC1ncmF5LTQwMCIsImNvbG9yLXByaWNlLWF4aXMtaGlnaGxpZ2h0IjoiY29sb3ItY29sZC1ncmF5LTgwMCIsImNvbG9yLWJpZCI6ImNvbG9yLXR2LWJsdWUtNTAwIiwiY29sb3Itc2Nyb2xsLWJnIjoiY29sb3ItY29sZC1ncmF5LTc1MCIsImNvbG9yLXNjcm9sbC1ib3JkZXIiOiJjb2xvci1jb2xkLWdyYXktODUwIiwiY29sb3Itd2lkZ2V0LWJvcmRlciI6ImNvbG9yLWNvbGQtZ3JheS04MDAiLCJjb2xvci1zY3JvbGwtYnV0dG9ucy1hcnJvdyI6ImNvbG9yLXdoaXRlIiwiY29sb3ItY29udHJvbC1pbnRlbnQtZGVmYXVsdCI6ImNvbG9yLWNvbGQtZ3JheS02NTAiLCJjb2xvci1jb250cm9sLWludGVudC1zdWNjZXNzIjoiY29sb3ItbWludHktZ3JlZW4tNTAwIiwiY29sb3ItY29udHJvbC1pbnRlbnQtcHJpbWFyeSI6ImNvbG9yLXR2LWJsdWUtNTAwIiwiY29sb3ItY29udHJvbC1pbnRlbnQtd2FybmluZyI6ImNvbG9yLXRhbi1vcmFuZ2UtNTAwIiwiY29sb3ItY29udHJvbC1pbnRlbnQtZGFuZ2VyIjoiY29sb3ItcmlwZS1yZWQtNTAwIiwiY29sb3ItZ3Jvd2luZyI6ImNvbG9yLW1pbnR5LWdyZWVuLTUwMCIsImNvbG9yLWZhbGxpbmciOiJjb2xvci1yaXBlLXJlZC01MDAiLCJjb2xvci1nb3RvLWxhYmVsLWJhY2tncm91bmQiOiJjb2xvci1jb2xkLWdyYXktNjUwIiwiY29sb3ItcHJlLW1hcmtldCI6ImNvbG9yLXRhbi1vcmFuZ2UtNjAwIiwiY29sb3ItcG9zdC1tYXJrZXQiOiJjb2xvci10di1ibHVlLTUwMCIsImNvbG9yLW5vdGFjY3VyYXRlLW1vZGUiOiJjb2xvci1iZXJyeS1waW5rLWEyMDAiLCJjb2xvci1kZWxheS1tb2RlIjoiY29sb3ItdGFuLW9yYW5nZS03MDAiLCJjb2xvci1kZWxheS1tb2RlLWJnIjoiY29sb3ItdGFuLW9yYW5nZS00MDAiLCJjb2xvci1saXN0LWl0ZW0tYmctaGlnaGxpZ2h0ZWQiOiJjb2xvci10di1ibHVlLWE5MDAiLCJjb2xvci1saXN0LWl0ZW0tYmctc2VsZWN0ZWQiOiJjb2xvci10di1ibHVlLWE4MDAiLCJjb2xvci1saXN0LWl0ZW0tYmctaGlnaGxpZ2h0ZWQtaG92ZXIiOiJjb2xvci10di1ibHVlLWE4MDAiLCJjb2xvci1saXN0LWl0ZW0tYmctc2VsZWN0ZWQtaG92ZXIiOiJjb2xvci10di1ibHVlLWE3MDAiLCJjb2xvci1zY3JlZW5lci1oZWFkZXItYmciOiJjb2xvci1jb2xkLWdyYXktODUwIiwiY29sb3Itc2NyZWVuZXItaGVhZGVyLWJnLWhvdmVyIjoiY29sb3ItY29sZC1ncmF5LTgwMCIsImNvbG9yLW92ZXJsYXkiOiJjb2xvci1jb2xkLWdyYXktOTUwIiwiY29sb3ItYm9vc3QtYnV0dG9uLWNvbnRlbnQtc2VsZWN0ZWQiOiJjb2xvci10di1ibHVlLTEwMCIsImNvbG9yLWJvb3N0LWJ1dHRvbi1jb250ZW50LWhvdmVyIjoiY29sb3Itd2hpdGUiLCJjb2xvci1ib29zdC1idXR0b24tYmctaG92ZXIiOiJjb2xvci1jb2xkLWdyYXktNzUwIiwiY29sb3ItYm9vc3QtYnV0dG9uLWJvcmRlci1ob3ZlciI6ImNvbG9yLWNvbGQtZ3JheS03NTAiLCJjb2xvci1ib29zdC1idXR0b24tYm9yZGVyLWRlZmF1bHQiOiJjb2xvci1jb2xkLWdyYXktNzAwIiwiY29sb3IteC10d2l0dGVyLWNvbnRlbnQiOiJjb2xvci13aGl0ZSIsImNvbG9yLWNhcmQtYm9yZGVyIjoiY29sb3ItY29sZC1ncmF5LTcwMCIsImNvbG9yLWNhcmQtYm9yZGVyLWhvdmVyIjoiY29sb3ItY29sZC1ncmF5LTYwMCIsImNvbG9yLWJhY2tncm91bmQtc3BlY2lhbC1wcmltYXJ5IjoiY29sb3ItYmxhY2siLCJjb2xvci1zdHJva2Utc3BlY2lhbC1wcmltYXJ5IjoiY29sb3ItY29sZC1ncmF5LTgwMCIsImNvbG9yLXNlbGVjdGlvbi1iZyI6ImNvbG9yLXR2LWJsdWUtYTcwMCIsImNvbG9yLWRlZmF1bHQtZ3JheSI6ImNvbG9yLWNvbGQtZ3JheS00NTAiLCJjb2xvci1mZWF0dXJlZC1icm9rZXItYmFkZ2UtYmciOiJjb2xvci13aGl0ZSIsImNvbG9yLWZlYXR1cmVkLWJyb2tlci1iYWRnZS1iZy1ob3ZlciI6ImNvbG9yLWNvbGQtZ3JheS0xMDAiLCJjb2xvci1mZWF0dXJlZC1icm9rZXItYmFkZ2UtdGV4dCI6ImNvbG9yLWNvbGQtZ3JheS05MDAifScpCjt2YXIgYT1lKDUwNTU2KTtjb25zdCBuPXtbbC5TdGRUaGVtZS5MaWdodF06e25hbWU6bC5TdGRUaGVtZS5MaWdodCxsYWJlbDooKT0+dC50KG51bGwse2NvbnRleHQ6ImNvbG9yVGhlbWVOYW1lIn0sZSgyNDcxNjcpKSxvcmRlcjoyLGdldFRoZW1lZENvbG9yOm89PigwLGEuZ2V0SGV4Q29sb3JCeU5hbWUpKG8pfSxbbC5TdGRUaGVtZS5EYXJrXTp7bmFtZTpsLlN0ZFRoZW1lLkRhcmssbGFiZWw6KCk9PnQudChudWxsLHtjb250ZXh0OiJjb2xvclRoZW1lTmFtZSJ9LGUoOTQ1MzYyKSksb3JkZXI6MSxnZXRUaGVtZWRDb2xvcjpvPT57Y29uc3Qgcj1jW29dfHxvO3JldHVybigwLGEuZ2V0SGV4Q29sb3JCeU5hbWUpKHIpfX19fSw0NTM5NjgobyxyLGUpeyJ1c2Ugc3RyaWN0IjtlLmQocix7aXNTdGRUaGVtZU5hbWU6KCk9PnR9KTt2YXIgbD1lKDgxMDQxKTtmdW5jdGlvbiB0KG8pe3JldHVybiBvPT09bC5TdGRUaGVtZS5MaWdodHx8bz09PWwuU3RkVGhlbWUuRGFya319LDUwNzYwNChvLHIsZSl7InVzZSBzdHJpY3QiO2UuZChyLHtjb2xvcnM6KCk9Pm59KTt2YXIgbD1lKDUwNTU2KSx0PWUoODczNTczKTtjb25zdCBjPXtjb2xvckJsYWNrOigwLGwuZ2V0SGV4Q29sb3JCeU5hbWUpKCJjb2xvci1ibGFjayIpLGNvbG9yV2hpdGU6KDAsbC5nZXRIZXhDb2xvckJ5TmFtZSkoImNvbG9yLXdoaXRlIiksY29sb3JUdkJsdWU1MDooMCxsLmdldEhleENvbG9yQnlOYW1lKSgiY29sb3ItdHYtYmx1ZS01MCIpLGNvbG9yVHZCbHVlMjAwOigwLGwuZ2V0SGV4Q29sb3JCeU5hbWUpKCJjb2xvci10di1ibHVlLTIwMCIpLGNvbG9yVHZCbHVlNDAwOigwLGwuZ2V0SGV4Q29sb3JCeU5hbWUpKCJjb2xvci10di1ibHVlLTQwMCIpLGNvbG9yVHZCbHVlNTAwOigwLGwuZ2V0SGV4Q29sb3JCeU5hbWUpKCJjb2xvci10di1ibHVlLTUwMCIpLGNvbG9yVHZCbHVlNjAwOigwLGwuZ2V0SGV4Q29sb3JCeU5hbWUpKCJjb2xvci10di1ibHVlLTYwMCIpLGNvbG9yVHZCbHVlODAwOigwLGwuZ2V0SGV4Q29sb3JCeU5hbWUpKCJjb2xvci10di1ibHVlLTgwMCIpLGNvbG9yVHZCbHVlQTgwMDooMCxsLmdldEhleENvbG9yQnlOYW1lKSgiY29sb3ItdHYtYmx1ZS1hODAwIiksY29sb3JEZWVwQmx1ZTIwMDooMCxsLmdldEhleENvbG9yQnlOYW1lKSgiY29sb3ItZGVlcC1ibHVlLTIwMCIpLGNvbG9yRGVlcEJsdWUzMDA6KDAsbC5nZXRIZXhDb2xvckJ5TmFtZSkoImNvbG9yLWRlZXAtYmx1ZS0zMDAiKSxjb2xvckRlZXBCbHVlNTAwOigwLGwuZ2V0SGV4Q29sb3JCeU5hbWUpKCJjb2xvci1kZWVwLWJsdWUtNTAwIiksY29sb3JEZWVwQmx1ZUEyMDA6KDAsbC5nZXRIZXhDb2xvckJ5TmFtZSkoImNvbG9yLWRlZXAtYmx1ZS1hMjAwIiksY29sb3JEZWVwQmx1ZUE0MDA6KDAsbC5nZXRIZXhDb2xvckJ5TmFtZSkoImNvbG9yLWRlZXAtYmx1ZS1hNDAwIiksY29sb3JEZWVwQmx1ZUE3MDA6KDAsbC5nZXRIZXhDb2xvckJ5TmFtZSkoImNvbG9yLWRlZXAtYmx1ZS1hNzAwIiksY29sb3JTa3lCbHVlNDAwOigwLGwuZ2V0SGV4Q29sb3JCeU5hbWUpKCJjb2xvci1za3ktYmx1ZS00MDAiKSxjb2xvclNreUJsdWU1MDA6KDAsbC5nZXRIZXhDb2xvckJ5TmFtZSkoImNvbG9yLXNreS1ibHVlLTUwMCIpLGNvbG9yU2t5Qmx1ZTcwMDooMCxsLmdldEhleENvbG9yQnlOYW1lKSgiY29sb3Itc2t5LWJsdWUtNzAwIiksY29sb3JTa3lCbHVlQTQwMDooMCxsLmdldEhleENvbG9yQnlOYW1lKSgiY29sb3Itc2t5LWJsdWUtYTQwMCIpLGNvbG9yRGVmYXVsdFJlZDooMCxsLmdldEhleENvbG9yQnlOYW1lKSgiY29sb3IteW91dHViZSIpLGNvbG9yUmlwZVJlZDIwMDooMCxsLmdldEhleENvbG9yQnlOYW1lKSgiY29sb3ItcmlwZS1yZWQtMjAwIiksY29sb3JSaXBlUmVkMzAwOigwLGwuZ2V0SGV4Q29sb3JCeU5hbWUpKCJjb2xvci1yaXBlLXJlZC0zMDAiKSxjb2xvclJpcGVSZWQ0MDA6KDAsbC5nZXRIZXhDb2xvckJ5TmFtZSkoImNvbG9yLXJpcGUtcmVkLTQwMCIpLGNvbG9yUmlwZVJlZDUwMDooMCxsLmdldEhleENvbG9yQnlOYW1lKSgiY29sb3ItcmlwZS1yZWQtNTAwIiksY29sb3JSaXBlUmVkNjAwOigwLGwuZ2V0SGV4Q29sb3JCeU5hbWUpKCJjb2xvci1yaXBlLXJlZC02MDAiKSxjb2xvclJpcGVSZWQ4MDA6KDAsbC5nZXRIZXhDb2xvckJ5TmFtZSkoImNvbG9yLXJpcGUtcmVkLTgwMCIpLGNvbG9yUmlwZVJlZEE5MDA6KDAsbC5nZXRIZXhDb2xvckJ5TmFtZSkoImNvbG9yLXJpcGUtcmVkLWE5MDAiKSxjb2xvclJpcGVSZWRBNzAwOigwLGwuZ2V0SGV4Q29sb3JCeU5hbWUpKCJjb2xvci1yaXBlLXJlZC1hNzAwIiksY29sb3JHcmFwZXNQdXJwbGVBMjAwOigwLGwuZ2V0SGV4Q29sb3JCeU5hbWUpKCJjb2xvci1ncmFwZXMtcHVycGxlLWEyMDAiKSxjb2xvckdyYXBlc1B1cnBsZUE0MDA6KDAsbC5nZXRIZXhDb2xvckJ5TmFtZSkoImNvbG9yLWdyYXBlcy1wdXJwbGUtYTQwMCIpLGNvbG9yR3JhcGVzUHVycGxlNTAwOigwLGwuZ2V0SGV4Q29sb3JCeU5hbWUpKCJjb2xvci1ncmFwZXMtcHVycGxlLTUwMCIpLGNvbG9yR3JhcGVzUHVycGxlNjAwOigwLGwuZ2V0SGV4Q29sb3JCeU5hbWUpKCJjb2xvci1ncmFwZXMtcHVycGxlLTYwMCIpLGNvbG9yQmVycnlQaW5rNDAwOigwLGwuZ2V0SGV4Q29sb3JCeU5hbWUpKCJjb2xvci1iZXJyeS1waW5rLTQwMCIpLGNvbG9yQmVycnlQaW5rNTAwOigwLGwuZ2V0SGV4Q29sb3JCeU5hbWUpKCJjb2xvci1iZXJyeS1waW5rLTUwMCIpLGNvbG9yTWludHlHcmVlbjEwMDooMCxsLmdldEhleENvbG9yQnlOYW1lKSgiY29sb3ItbWludHktZ3JlZW4tMTAwIiksY29sb3JNaW50eUdyZWVuMjAwOigwLGwuZ2V0SGV4Q29sb3JCeU5hbWUpKCJjb2xvci1taW50eS1ncmVlbi0yMDAiKSxjb2xvck1pbnR5R3JlZW40MDA6KDAsbC5nZXRIZXhDb2xvckJ5TmFtZSkoImNvbG9yLW1pbnR5LWdyZWVuLTQwMCIpLGNvbG9yTWludHlHcmVlbjUwMDooMCxsLmdldEhleENvbG9yQnlOYW1lKSgiY29sb3ItbWludHktZ3JlZW4tNTAwIiksY29sb3JNaW50eUdyZWVuNjAwOigwLGwuZ2V0SGV4Q29sb3JCeU5hbWUpKCJjb2xvci1taW50eS1ncmVlbi02MDAiKSwKY29sb3JNaW50eUdyZWVuODAwOigwLGwuZ2V0SGV4Q29sb3JCeU5hbWUpKCJjb2xvci1taW50eS1ncmVlbi04MDAiKSxjb2xvck1pbnR5R3JlZW5BOTAwOigwLGwuZ2V0SGV4Q29sb3JCeU5hbWUpKCJjb2xvci1taW50eS1ncmVlbi1hOTAwIiksY29sb3JJZ3VhbmFHcmVlbjMwMDooMCxsLmdldEhleENvbG9yQnlOYW1lKSgiY29sb3ItaWd1YW5hLWdyZWVuLTMwMCIpLGNvbG9ySWd1YW5hR3JlZW41MDA6KDAsbC5nZXRIZXhDb2xvckJ5TmFtZSkoImNvbG9yLWlndWFuYS1ncmVlbi01MDAiKSxjb2xvcklndWFuYUdyZWVuQTcwMDooMCxsLmdldEhleENvbG9yQnlOYW1lKSgiY29sb3ItaWd1YW5hLWdyZWVuLWE3MDAiKSxjb2xvclRhbk9yYW5nZTMwMDooMCxsLmdldEhleENvbG9yQnlOYW1lKSgiY29sb3ItdGFuLW9yYW5nZS0zMDAiKSxjb2xvclRhbk9yYW5nZTUwMDooMCxsLmdldEhleENvbG9yQnlOYW1lKSgiY29sb3ItdGFuLW9yYW5nZS01MDAiKSxjb2xvclRhbk9yYW5nZTYwMDooMCxsLmdldEhleENvbG9yQnlOYW1lKSgiY29sb3ItdGFuLW9yYW5nZS02MDAiKSxjb2xvclRhbk9yYW5nZTcwMDooMCxsLmdldEhleENvbG9yQnlOYW1lKSgiY29sb3ItdGFuLW9yYW5nZS03MDAiKSxjb2xvckNvbGRHcmF5MTAwOigwLGwuZ2V0SGV4Q29sb3JCeU5hbWUpKCJjb2xvci1jb2xkLWdyYXktMTAwIiksY29sb3JDb2xkR3JheTE1MDooMCxsLmdldEhleENvbG9yQnlOYW1lKSgiY29sb3ItY29sZC1ncmF5LTE1MCIpLGNvbG9yQ29sZEdyYXkyMDA6KDAsbC5nZXRIZXhDb2xvckJ5TmFtZSkoImNvbG9yLWNvbGQtZ3JheS0yMDAiKSxjb2xvckNvbGRHcmF5MzAwOigwLGwuZ2V0SGV4Q29sb3JCeU5hbWUpKCJjb2xvci1jb2xkLWdyYXktMzAwIiksY29sb3JDb2xkR3JheTQwMDooMCxsLmdldEhleENvbG9yQnlOYW1lKSgiY29sb3ItY29sZC1ncmF5LTQwMCIpLGNvbG9yQ29sZEdyYXk0NTA6KDAsbC5nZXRIZXhDb2xvckJ5TmFtZSkoImNvbG9yLWNvbGQtZ3JheS00NTAiKSxjb2xvckNvbGRHcmF5NTAwOigwLGwuZ2V0SGV4Q29sb3JCeU5hbWUpKCJjb2xvci1jb2xkLWdyYXktNTAwIiksY29sb3JDb2xkR3JheTU1MDooMCxsLmdldEhleENvbG9yQnlOYW1lKSgiY29sb3ItY29sZC1ncmF5LTU1MCIpLGNvbG9yQ29sZEdyYXk2MDA6KDAsbC5nZXRIZXhDb2xvckJ5TmFtZSkoImNvbG9yLWNvbGQtZ3JheS02MDAiKSxjb2xvckNvbGRHcmF5NjUwOigwLGwuZ2V0SGV4Q29sb3JCeU5hbWUpKCJjb2xvci1jb2xkLWdyYXktNjUwIiksY29sb3JDb2xkR3JheTcwMDooMCxsLmdldEhleENvbG9yQnlOYW1lKSgiY29sb3ItY29sZC1ncmF5LTcwMCIpLGNvbG9yQ29sZEdyYXk3NTA6KDAsbC5nZXRIZXhDb2xvckJ5TmFtZSkoImNvbG9yLWNvbGQtZ3JheS03NTAiKSxjb2xvckNvbGRHcmF5ODAwOigwLGwuZ2V0SGV4Q29sb3JCeU5hbWUpKCJjb2xvci1jb2xkLWdyYXktODAwIiksY29sb3JDb2xkR3JheTg1MDooMCxsLmdldEhleENvbG9yQnlOYW1lKSgiY29sb3ItY29sZC1ncmF5LTg1MCIpLGNvbG9yQ29sZEdyYXk5MDA6KDAsbC5nZXRIZXhDb2xvckJ5TmFtZSkoImNvbG9yLWNvbGQtZ3JheS05MDAiKSxjb2xvckZvcmVzdEdyZWVuMzAwOigwLGwuZ2V0SGV4Q29sb3JCeU5hbWUpKCJjb2xvci1mb3Jlc3QtZ3JlZW4tMzAwIil9LGE9e2NvbG9yV2hpdGVBbHBoYTI1OigwLHQuZ2VuZXJhdGVDb2xvcikoYy5jb2xvcldoaXRlLDc1KSxjb2xvclR2Qmx1ZTUwMEFscGhhNDA6KDAsdC5nZW5lcmF0ZUNvbG9yKShjLmNvbG9yVHZCbHVlNTAwLDYwKSxjb2xvclR2Qmx1ZTUwMEFscGhhMzA6KDAsdC5nZW5lcmF0ZUNvbG9yKShjLmNvbG9yVHZCbHVlNTAwLDcwKSxjb2xvclR2Qmx1ZTUwMEFscGhhMjg6KDAsdC5nZW5lcmF0ZUNvbG9yKShjLmNvbG9yVHZCbHVlNTAwLDcyKSxjb2xvclR2Qmx1ZTUwMEFscGhhMjU6KDAsdC5nZW5lcmF0ZUNvbG9yKShjLmNvbG9yVHZCbHVlNTAwLDc1KSxjb2xvclR2Qmx1ZTUwMEFscGhhMjA6KDAsdC5nZW5lcmF0ZUNvbG9yKShjLmNvbG9yVHZCbHVlNTAwLDgwKSxjb2xvckRlZXBCbHVlNTAwQWxwaGEyMDooMCx0LmdlbmVyYXRlQ29sb3IpKGMuY29sb3JEZWVwQmx1ZTUwMCw4MCksY29sb3JTa3lCbHVlNDAwQWxwaGE1OigwLHQuZ2VuZXJhdGVDb2xvcikoYy5jb2xvclNreUJsdWU0MDAsOTUpLGNvbG9yU2t5Qmx1ZTQwMEFscGhhNTA6KDAsdC5nZW5lcmF0ZUNvbG9yKShjLmNvbG9yU2t5Qmx1ZTQwMCw1MCksY29sb3JTa3lCbHVlNDAwQWxwaGE3NTooMCx0LmdlbmVyYXRlQ29sb3IpKGMuY29sb3JTa3lCbHVlNDAwLDI1KSxjb2xvclNreUJsdWU1MDBBbHBoYTIwOigwLHQuZ2VuZXJhdGVDb2xvcikoYy5jb2xvclNreUJsdWU1MDAsODApLGNvbG9yU2t5Qmx1ZTUwMEFscGhhMjU6KDAsdC5nZW5lcmF0ZUNvbG9yKShjLmNvbG9yU2t5Qmx1ZTUwMCw3NSksY29sb3JTa3lCbHVlNzAwQWxwaGE3MDooMCx0LmdlbmVyYXRlQ29sb3IpKGMuY29sb3JTa3lCbHVlNzAwLDMwKSxjb2xvclJpcGVSZWQ0MDBBbHBoYTU6KDAsdC5nZW5lcmF0ZUNvbG9yKShjLmNvbG9yUmlwZVJlZDQwMCw5NSksY29sb3JSaXBlUmVkNTAwQWxwaGE1OigwLHQuZ2VuZXJhdGVDb2xvcikoYy5jb2xvclJpcGVSZWQ1MDAsOTUpLGNvbG9yUmlwZVJlZDUwMEFscGhhMjA6KDAsdC5nZW5lcmF0ZUNvbG9yKShjLmNvbG9yUmlwZVJlZDUwMCw4MCksY29sb3JSaXBlUmVkNTAwQWxwaGEyODooMCx0LmdlbmVyYXRlQ29sb3IpKGMuY29sb3JSaXBlUmVkNTAwLDcyKSxjb2xvclJpcGVSZWQ1MDBBbHBoYTMwOigwLHQuZ2VuZXJhdGVDb2xvcikoYy5jb2xvclJpcGVSZWQ1MDAsNzApLGNvbG9yUmlwZVJlZDUwMEFscGhhNTA6KDAsdC5nZW5lcmF0ZUNvbG9yKShjLmNvbG9yUmlwZVJlZDUwMCw1MCksY29sb3JHcmFwZXNQdXJwbGVBMjAwQWxwaGExNTooMCx0LmdlbmVyYXRlQ29sb3IpKGMuY29sb3JHcmFwZXNQdXJwbGVBMjAwLDg1KSxjb2xvckdyYXBlc1B1cnBsZTUwMEFscGhhMDooMCx0LmdlbmVyYXRlQ29sb3IpKGMuY29sb3JHcmFwZXNQdXJwbGU1MDAsMTAwKSxjb2xvckdyYXBlc1B1cnBsZTUwMEFscGhhMjA6KDAsCnQuZ2VuZXJhdGVDb2xvcikoYy5jb2xvckdyYXBlc1B1cnBsZTUwMCw4MCksY29sb3JHcmFwZXNQdXJwbGU1MDBBbHBoYTcwOigwLHQuZ2VuZXJhdGVDb2xvcikoYy5jb2xvckdyYXBlc1B1cnBsZTUwMCwzMCksY29sb3JCZXJyeVBpbms0MDBBbHBoYTUwOigwLHQuZ2VuZXJhdGVDb2xvcikoYy5jb2xvckJlcnJ5UGluazQwMCw1MCksY29sb3JCZXJyeVBpbms0MDBBbHBoYTc1OigwLHQuZ2VuZXJhdGVDb2xvcikoYy5jb2xvckJlcnJ5UGluazQwMCwyNSksY29sb3JCZXJyeVBpbms1MDBBbHBoYTIwOigwLHQuZ2VuZXJhdGVDb2xvcikoYy5jb2xvckJlcnJ5UGluazUwMCw4MCksY29sb3JCZXJyeVBpbms1MDBBbHBoYTI1OigwLHQuZ2VuZXJhdGVDb2xvcikoYy5jb2xvckJlcnJ5UGluazUwMCw3NSksY29sb3JNaW50eUdyZWVuNTAwQWxwaGEyMDooMCx0LmdlbmVyYXRlQ29sb3IpKGMuY29sb3JNaW50eUdyZWVuNTAwLDgwKSxjb2xvck1pbnR5R3JlZW41MDBBbHBoYTI4OigwLHQuZ2VuZXJhdGVDb2xvcikoYy5jb2xvck1pbnR5R3JlZW41MDAsNzIpLGNvbG9yTWludHlHcmVlbjUwMEFscGhhNTA6KDAsdC5nZW5lcmF0ZUNvbG9yKShjLmNvbG9yTWludHlHcmVlbjUwMCw1MCksY29sb3JNaW50eUdyZWVuNTAwQWxwaGE1OigwLHQuZ2VuZXJhdGVDb2xvcikoYy5jb2xvck1pbnR5R3JlZW41MDAsOTUpLGNvbG9ySWd1YW5hR3JlZW41MDBBbHBoYTIwOigwLHQuZ2VuZXJhdGVDb2xvcikoYy5jb2xvcklndWFuYUdyZWVuNTAwLDgwKSxjb2xvclRhbk9yYW5nZTUwMEFscGhhMjA6KDAsdC5nZW5lcmF0ZUNvbG9yKShjLmNvbG9yVGFuT3JhbmdlNTAwLDgwKSxjb2xvckZvcmVzdEdyZWVuMzAwQWxwaGE1OigwLHQuZ2VuZXJhdGVDb2xvcikoYy5jb2xvckZvcmVzdEdyZWVuMzAwLDk1KSxjb2xvckNvbGRHcmF5MTAwQWxwaGEwOigwLHQuZ2VuZXJhdGVDb2xvcikoYy5jb2xvckNvbGRHcmF5MTAwLDEwMCksY29sb3JDb2xkR3JheTEwMEFscGhhNjooMCx0LmdlbmVyYXRlQ29sb3IpKGMuY29sb3JDb2xkR3JheTEwMCw5NCksY29sb3JDb2xkR3JheTEwMEFscGhhMjA6KDAsdC5nZW5lcmF0ZUNvbG9yKShjLmNvbG9yQ29sZEdyYXkxMDAsODApLGNvbG9yQ29sZEdyYXk4MDBBbHBoYTA6KDAsdC5nZW5lcmF0ZUNvbG9yKShjLmNvbG9yQ29sZEdyYXk4MDAsMTAwKSxjb2xvckNvbGRHcmF5ODAwQWxwaGE2OigwLHQuZ2VuZXJhdGVDb2xvcikoYy5jb2xvckNvbGRHcmF5ODAwLDk0KSxjb2xvckNvbGRHcmF5ODAwQWxwaGEyMDooMCx0LmdlbmVyYXRlQ29sb3IpKGMuY29sb3JDb2xkR3JheTgwMCw4MCl9LG49ey4uLmMsLi4uYX19LDk4NDQyNihvLHIsZSl7InVzZSBzdHJpY3QiO2UuZChyLHtkYXJrOigpPT5jb30pO3ZhciBsPWUoMjI3ODI1KSx0PWUoNTA3NjA0KTtjb25zdHtjb2xvcldoaXRlOmMsY29sb3JDb2xkR3JheTEwMEFscGhhMDphLGNvbG9yQ29sZEdyYXkxMDBBbHBoYTIwOm4sY29sb3JDb2xkR3JheTIwMDppLGNvbG9yQ29sZEdyYXkzMDA6ZCxjb2xvckNvbGRHcmF5NDAwOnMsY29sb3JDb2xkR3JheTQ1MDpnLGNvbG9yQ29sZEdyYXk2MDA6dSxjb2xvckNvbGRHcmF5ODAwOnAsY29sb3JDb2xkR3JheTg1MDpDLGNvbG9yQ29sZEdyYXk5MDA6eSxjb2xvckRlZXBCbHVlQTIwMDpiLGNvbG9yR3JhcGVzUHVycGxlQTQwMDpoLGNvbG9yR3JhcGVzUHVycGxlQTIwMEFscGhhMTU6RSxjb2xvckdyYXBlc1B1cnBsZTYwMDptLGNvbG9yTWludHlHcmVlbjQwMDpBLGNvbG9yTWludHlHcmVlbjUwMDpfLGNvbG9yTWludHlHcmVlbjYwMDpULGNvbG9yTWludHlHcmVlbjgwMDpmLGNvbG9yTWludHlHcmVlbjUwMEFscGhhNTpTLGNvbG9yTWludHlHcmVlbjUwMEFscGhhMjg6dixjb2xvck1pbnR5R3JlZW41MDBBbHBoYTUwOncsY29sb3JNaW50eUdyZWVuQTkwMDpSLGNvbG9yUmlwZVJlZDQwMDpOLGNvbG9yUmlwZVJlZDUwMDpJLGNvbG9yUmlwZVJlZDYwMDpPLGNvbG9yUmlwZVJlZDgwMDprLGNvbG9yUmlwZVJlZDUwMEFscGhhNTpCLGNvbG9yUmlwZVJlZDUwMEFscGhhMjg6UCxjb2xvclJpcGVSZWQ1MDBBbHBoYTUwOkQsY29sb3JSaXBlUmVkQTkwMDpMLGNvbG9yQmVycnlQaW5rNTAwQWxwaGEyNTpGLGNvbG9yQmVycnlQaW5rNDAwQWxwaGE1MDp4LGNvbG9yQmVycnlQaW5rNDAwQWxwaGE3NTpILGNvbG9yQmVycnlQaW5rNTAwOlUsY29sb3JJZ3VhbmFHcmVlbkE3MDA6Ryxjb2xvclNreUJsdWVBNDAwOk0sY29sb3JTa3lCbHVlNDAwQWxwaGE1OlcsY29sb3JTa3lCbHVlNDAwQWxwaGE1MDpWLGNvbG9yU2t5Qmx1ZTQwMEFscGhhNzU6WSxjb2xvclNreUJsdWU1MDA6aixjb2xvclNreUJsdWU1MDBBbHBoYTI1OkssY29sb3JEZWVwQmx1ZUE0MDA6JCxjb2xvclR2Qmx1ZTQwMDpYLGNvbG9yVHZCbHVlNTAwOnEsY29sb3JUdkJsdWU1MDBBbHBoYTI4OkosY29sb3JUdkJsdWU2MDA6eixjb2xvclR2Qmx1ZTgwMDpRLGNvbG9yVHZCbHVlQTgwMDpaLGNvbG9yVGFuT3JhbmdlNTAwOm9vLGNvbG9yVGFuT3JhbmdlNjAwOnJvfT10LmNvbG9ycyxlbz17Y29sb3I6cSx0cG86e2NvbG9yczp7Z3JhZGllbnRDb2xvcnM6W1UsRyxqLCRdfX0sdm9sdW1lUHJvZmlsZTp7dmFsdWVzQ29sb3I6aSx2YWg6e2NvbG9yOml9LHZhbDp7Y29sb3I6aX0scG9jOntjb2xvcjppfSx2b2x1bWVDb2xvcjpWLHZhbHVlQXJlYUNvbG9yOll9LGxldmVsczp7cG9jQ29sb3I6aSxwb29ySGlnaENvbG9yOmIscG9vckxvd0NvbG9yOmIsc2luZ2xlcHJpbnRzQ29sb3I6RSx2YWhDb2xvcjppLHZhbENvbG9yOml9fSxsbz17dXBDb2xvcjpfLGRvd25Db2xvcjpJLGJvcmRlckNvbG9yOiIjMzc4NjU4Iixib3JkZXJVcENvbG9yOl8sYm9yZGVyRG93bkNvbG9yOkksd2lja0NvbG9yOiIjNzM3Mzc1Iix3aWNrVXBDb2xvcjpfLHdpY2tEb3duQ29sb3I6SSxpbWJhbGFuY2VIaWdobGlnaHQ6e2J1eUNvbG9yOl8sc2VsbENvbG9yOkl9LHVuZmluaXNoZWRBdWN0aW9uOntoaWdoQ29sb3I6aCxsb3dDb2xvcjpNfSxiZ0NvbG9yczp7YWRqQnV5QmdDb2xvcnM6W1IsZixULEFdLGFkalNlbGxCZ0NvbG9yczpbTCxrLE8sTl0sYWRqVG90YWxCZ0NvbG9yczpbWixRLHosWF0sYnV5QmdDb2xvcjpmLApzZWxsQmdDb2xvcjprLHRvdGFsQmdDb2xvcjpRLHBvY0NvbG9yOml9fSx0bz17dm9sdW1lUHJvZmlsZTp7dmFsdWVzQ29sb3I6aSx2b2x1bWVDb2xvclVwOlYsdm9sdW1lQ29sb3JEb3duOngsdmFsdWVBcmVhQ29sb3JVcDpZLHZhbHVlQXJlYUNvbG9yRG93bjpILGhpc3RvZ3JhbUJveENvbG9yOld9LHZhaDp7Y29sb3I6aX0sdmFsOntjb2xvcjppfSxwb2M6e2NvbG9yOml9LGRldmVsb3BpbmdQb2M6e2NvbG9yOml9LGRldmVsb3BpbmdWQTp7Y29sb3I6an19LGNvPXtjb250ZW50OntjaGFydFByb3BlcnRpZXM6e3NjYWxlc1Byb3BlcnRpZXM6e3RleHRDb2xvcjpkLGxpbmVDb2xvcjphLGJhY2tncm91bmRDb2xvcjpjfSxwYW5lUHJvcGVydGllczp7dmVydEdyaWRQcm9wZXJ0aWVzOntjb2xvcjpufSxob3J6R3JpZFByb3BlcnRpZXM6e2NvbG9yOm59LGNyb3NzSGFpclByb3BlcnRpZXM6e2NvbG9yOnN9LGJhY2tncm91bmQ6eSxiYWNrZ3JvdW5kR3JhZGllbnRTdGFydENvbG9yOkMsYmFja2dyb3VuZEdyYWRpZW50RW5kQ29sb3I6eSxiYWNrZ3JvdW5kVHlwZToic29saWQiLHNlcGFyYXRvckNvbG9yOnB9fSxzZXNzaW9uczp7c2Vzc2lvbkhpZ2hsaWdodDp7YmFja2dyb3VuZHM6e291dE9mU2Vzc2lvbjp7Y29sb3I6cSx0cmFuc3BhcmVuY3k6OTJ9LHByZU1hcmtldDp7Y29sb3I6b28sdHJhbnNwYXJlbmN5OjkyfSxwb3N0TWFya2V0Ontjb2xvcjpxLHRyYW5zcGFyZW5jeTo5Mn0sbmlnaHRNYXJrZXQ6e2NvbG9yOmgsdHJhbnNwYXJlbmN5OjkyfSxlbGVjdHJvbmljOntjb2xvcjpxLHRyYW5zcGFyZW5jeTo5Mn19LHZlcnRsaW5lczp7c2Vzc0JyZWFrczp7Y29sb3I6IiM0OTg1ZTcifX19fSxtYWluU291cmNlUHJvcGVydGllczp7YmFzZUxpbmVDb2xvcjp1LHByZXZDbG9zZVByaWNlTGluZUNvbG9yOiIjNTU1NTU1IixwcmljZUxpbmVDb2xvcjoiIixoaWdoTG93QXZnUHJpY2U6e2hpZ2hMb3dQcmljZUxpbmVzQ29sb3I6IiIsYXZlcmFnZVByaWNlTGluZUNvbG9yOiIifSxiaWRBc2s6e2JpZExpbmVDb2xvcjpxLGFza0xpbmVDb2xvcjpOfSxwcmVQb3N0TWFya2V0OntwcmVNYXJrZXRDb2xvcjpybyxwb3N0TWFya2V0Q29sb3I6cSxvdmVybmlnaHRNYXJrZXRDb2xvcjptfSxjYW5kbGVTdHlsZTp7Ym9yZGVyQ29sb3I6IiMzNzg2NTgiLHVwQ29sb3I6Xyx3aWNrQ29sb3I6IiM3MzczNzUiLHdpY2tVcENvbG9yOl8sd2lja0Rvd25Db2xvcjpJLGRvd25Db2xvcjpJLGJvcmRlclVwQ29sb3I6Xyxib3JkZXJEb3duQ29sb3I6SX0sdm9sQ2FuZGxlc1N0eWxlOntib3JkZXJDb2xvcjoiIzM3ODY1OCIsdXBDb2xvcjpfLHdpY2tDb2xvcjoiIzczNzM3NSIsd2lja1VwQ29sb3I6Xyx3aWNrRG93bkNvbG9yOkksZG93bkNvbG9yOkksYm9yZGVyVXBDb2xvcjpfLGJvcmRlckRvd25Db2xvcjpJfSxoYVN0eWxlOntib3JkZXJDb2xvcjoiIzM3ODY1OCIsdXBDb2xvcjpfLHdpY2tDb2xvcjoiIzczNzM3NSIsd2lja1VwQ29sb3I6Xyx3aWNrRG93bkNvbG9yOkksZG93bkNvbG9yOkksYm9yZGVyVXBDb2xvcjpfLGJvcmRlckRvd25Db2xvcjpJfSxobGNBcmVhU3R5bGU6e2hpZ2hMaW5lQ29sb3I6aixsb3dMaW5lQ29sb3I6VSxjbG9zZUxpbmVDb2xvcjpxLGhpZ2hDbG9zZUZpbGxDb2xvcjpLLGNsb3NlTG93RmlsbENvbG9yOkZ9LGhvbGxvd0NhbmRsZVN0eWxlOnt1cENvbG9yOl8sZG93bkNvbG9yOkksYm9yZGVyQ29sb3I6IiMzNzg2NTgiLGJvcmRlclVwQ29sb3I6Xyxib3JkZXJEb3duQ29sb3I6SSx3aWNrQ29sb3I6IiM3MzczNzUiLHdpY2tVcENvbG9yOl8sd2lja0Rvd25Db2xvcjpJfSxiYXJTdHlsZTp7ZG93bkNvbG9yOkksdXBDb2xvcjpffSxwbmZTdHlsZTp7ZG93bkNvbG9yOkksdXBDb2xvcjpfLHVwQ29sb3JQcm9qZWN0aW9uOiIjMzM2ODU0Iixkb3duQ29sb3JQcm9qZWN0aW9uOiIjN2YzMjNmIn0sYmFzZWxpbmVTdHlsZTp7YmFzZWxpbmVDb2xvcjpnLHRvcEZpbGxDb2xvcjE6dix0b3BGaWxsQ29sb3IyOlMsYm90dG9tRmlsbENvbG9yMTpCLGJvdHRvbUZpbGxDb2xvcjI6UCx0b3BMaW5lQ29sb3I6Xyxib3R0b21MaW5lQ29sb3I6SX0sYXJlYVN0eWxlOnt0cmFuc3BhcmVuY3k6MTAwLGNvbG9yMTpKLGNvbG9yMjpxLGxpbmVjb2xvcjpxfSxoaWxvU3R5bGU6e2NvbG9yOnEsYm9yZGVyQ29sb3I6cSxsYWJlbENvbG9yOnF9LGNvbHVtblN0eWxlOnt1cENvbG9yOncsZG93bkNvbG9yOkR9LHJlbmtvU3R5bGU6e3VwQ29sb3I6Xyxkb3duQ29sb3I6SSxib3JkZXJVcENvbG9yOl8sYm9yZGVyRG93bkNvbG9yOkksdXBDb2xvclByb2plY3Rpb246IiMzMzY4NTQiLGRvd25Db2xvclByb2plY3Rpb246IiM3ZjMyM2YiLGJvcmRlclVwQ29sb3JQcm9qZWN0aW9uOiIjMzM2ODU0Iixib3JkZXJEb3duQ29sb3JQcm9qZWN0aW9uOiIjN2YzMjNmIix3aWNrVXBDb2xvcjpfLHdpY2tEb3duQ29sb3I6SX0sbGluZVN0eWxlOntjb2xvclR5cGU6bC5Db2xvclR5cGUuR3JhZGllbnQsY29sb3I6cSxncmFkaWVudFN0YXJ0Q29sb3I6aCxncmFkaWVudEVuZENvbG9yOiIjMDBCQ0U1In0sbGluZVdpdGhNYXJrZXJzU3R5bGU6e2NvbG9yVHlwZTpsLkNvbG9yVHlwZS5HcmFkaWVudCxjb2xvcjpxLGdyYWRpZW50U3RhcnRDb2xvcjpoLGdyYWRpZW50RW5kQ29sb3I6IiMwMEJDRTUifSxzdGVwbGluZVN0eWxlOntjb2xvclR5cGU6bC5Db2xvclR5cGUuR3JhZGllbnQsY29sb3I6cSxncmFkaWVudFN0YXJ0Q29sb3I6aCxncmFkaWVudEVuZENvbG9yOiIjMDBCQ0U1In0sa2FnaVN0eWxlOntkb3duQ29sb3I6SSx1cENvbG9yOl8sdXBDb2xvclByb2plY3Rpb246IiMzMzY4NTQiLGRvd25Db2xvclByb2plY3Rpb246IiM3ZjMyM2YifSxwYlN0eWxlOnt1cENvbG9yOl8sZG93bkNvbG9yOkksYm9yZGVyVXBDb2xvcjpfLGJvcmRlckRvd25Db2xvcjpJLHVwQ29sb3JQcm9qZWN0aW9uOiIjMzM2ODU0Iixkb3duQ29sb3JQcm9qZWN0aW9uOiIjN2YzMjNmIixib3JkZXJVcENvbG9yUHJvamVjdGlvbjoiIzMzNjg1NCIsYm9yZGVyRG93bkNvbG9yUHJvamVjdGlvbjoiIzdmMzIzZiJ9LHJhbmdlU3R5bGU6e3VwQ29sb3I6Xyxkb3duQ29sb3I6SSwKdXBDb2xvclByb2plY3Rpb246IiMzMzY4NTQiLGRvd25Db2xvclByb2plY3Rpb246IiM3ZjMyM2YiLGNhbmRsZXNVcENvbG9yOl8sY2FuZGxlc0Rvd25Db2xvcjpJLGNhbmRsZXNCb3JkZXJVcENvbG9yOl8sY2FuZGxlc0JvcmRlckRvd25Db2xvcjpJLGNhbmRsZXNXaWNrVXBDb2xvcjpfLGNhbmRsZXNXaWNrRG93bkNvbG9yOkl9LHRwb1N0eWxlOmVvLHZvbEZvb3RwcmludFN0eWxlOmxvLHN2cFN0eWxlOnRvLGhsY0JhcnNTdHlsZTp7Y29sb3I6cX19fX19LDcxNjc2OChvLHIsZSl7InVzZSBzdHJpY3QiO2UuZChyLHtsaWdodDooKT0+bG99KTt2YXIgbD1lKDUwNzYwNCksdD1lKDIyNzgyNSk7Y29uc3R7Y29sb3JXaGl0ZTpjLGNvbG9yQmxhY2s6YSxjb2xvckNvbGRHcmF5MTUwOm4sY29sb3JDb2xkR3JheTMwMDppLGNvbG9yQ29sZEdyYXk0MDA6ZCxjb2xvckNvbGRHcmF5NDUwOnMsY29sb3JDb2xkR3JheTgwMEFscGhhMDpnLGNvbG9yQ29sZEdyYXk4MDBBbHBoYTIwOnUsY29sb3JDb2xkR3JheTkwMDpwLGNvbG9yR3JhcGVzUHVycGxlQTQwMDpDLGNvbG9yR3JhcGVzUHVycGxlQTIwMEFscGhhMTU6eSxjb2xvckdyYXBlc1B1cnBsZTYwMDpiLGNvbG9yTWludHlHcmVlbjIwMDpoLGNvbG9yTWludHlHcmVlbjQwMDpFLGNvbG9yTWludHlHcmVlbjUwMDptLGNvbG9yTWludHlHcmVlbjYwMDpBLGNvbG9yTWludHlHcmVlbjgwMDpfLGNvbG9yTWludHlHcmVlbjUwMEFscGhhNTpULGNvbG9yTWludHlHcmVlbjUwMEFscGhhMjg6Zixjb2xvck1pbnR5R3JlZW41MDBBbHBoYTUwOlMsY29sb3JSaXBlUmVkMjAwOnYsY29sb3JSaXBlUmVkNDAwOncsY29sb3JSaXBlUmVkNTAwOlIsY29sb3JSaXBlUmVkNjAwOk4sY29sb3JSaXBlUmVkQTcwMDpJLGNvbG9yUmlwZVJlZDUwMEFscGhhNTpPLGNvbG9yUmlwZVJlZDUwMEFscGhhMjg6ayxjb2xvclJpcGVSZWQ1MDBBbHBoYTUwOkIsY29sb3JEZWVwQmx1ZUE3MDA6UCxjb2xvckJlcnJ5UGluazUwMDpELGNvbG9yQmVycnlQaW5rNTAwQWxwaGEyNTpMLGNvbG9yQmVycnlQaW5rNDAwQWxwaGE1MDpGLGNvbG9yQmVycnlQaW5rNDAwQWxwaGE3NTp4LGNvbG9ySWd1YW5hR3JlZW5BNzAwOkgsY29sb3JTa3lCbHVlNDAwQWxwaGE1OlUsY29sb3JTa3lCbHVlNDAwQWxwaGE1MDpHLGNvbG9yU2t5Qmx1ZTQwMEFscGhhNzU6TSxjb2xvclNreUJsdWU1MDA6Vyxjb2xvclNreUJsdWU1MDBBbHBoYTI1OlYsY29sb3JTa3lCbHVlQTQwMDpZLGNvbG9yRGVlcEJsdWVBNDAwOmosY29sb3JUdkJsdWUyMDA6Syxjb2xvclR2Qmx1ZTQwMDokLGNvbG9yVHZCbHVlNTAwOlgsY29sb3JUdkJsdWU1MDBBbHBoYTI4OnEsY29sb3JUdkJsdWU2MDA6Sixjb2xvclR2Qmx1ZTgwMDp6LGNvbG9yVGFuT3JhbmdlNTAwOlEsY29sb3JUYW5PcmFuZ2U2MDA6Wn09bC5jb2xvcnMsb289e2NvbG9yOlgsdHBvOntjb2xvcnM6e2dyYWRpZW50Q29sb3JzOltELEgsVyxqXX19LHZvbHVtZVByb2ZpbGU6e3ZhbHVlc0NvbG9yOnAsdmFoOntjb2xvcjpwfSx2YWw6e2NvbG9yOnB9LHBvYzp7Y29sb3I6cH0sdm9sdW1lQ29sb3I6Ryx2YWx1ZUFyZWFDb2xvcjpNfSxsZXZlbHM6e3BvY0NvbG9yOnAscG9vckhpZ2hDb2xvcjpQLHBvb3JMb3dDb2xvcjpQLHNpbmdsZXByaW50c0NvbG9yOnksdmFoQ29sb3I6cCx2YWxDb2xvcjpwfX0scm89e3VwQ29sb3I6bSxkb3duQ29sb3I6Uixib3JkZXJDb2xvcjoiIzM3ODY1OCIsYm9yZGVyVXBDb2xvcjptLGJvcmRlckRvd25Db2xvcjpSLHdpY2tDb2xvcjoiIzczNzM3NSIsd2lja1VwQ29sb3I6bSx3aWNrRG93bkNvbG9yOlIsaW1iYWxhbmNlSGlnaGxpZ2h0OntidXlDb2xvcjptLHNlbGxDb2xvcjpSfSx1bmZpbmlzaGVkQXVjdGlvbjp7aGlnaENvbG9yOkMsbG93Q29sb3I6WX0sYmdDb2xvcnM6e2FkakJ1eUJnQ29sb3JzOltoLEUsQSxfXSxhZGpTZWxsQmdDb2xvcnM6W3YsdyxOLEldLGFkalRvdGFsQmdDb2xvcnM6W0ssJCxKLHpdLGJ1eUJnQ29sb3I6RSxzZWxsQmdDb2xvcjp3LHRvdGFsQmdDb2xvcjokLHBvY0NvbG9yOmF9fSxlbz17dm9sdW1lUHJvZmlsZTp7dmFsdWVzQ29sb3I6cCx2b2x1bWVDb2xvclVwOkcsdm9sdW1lQ29sb3JEb3duOkYsdmFsdWVBcmVhQ29sb3JVcDpNLHZhbHVlQXJlYUNvbG9yRG93bjp4LGhpc3RvZ3JhbUJveENvbG9yOlV9LHZhaDp7Y29sb3I6cH0sdmFsOntjb2xvcjpwfSxwb2M6e2NvbG9yOnB9LGRldmVsb3BpbmdQb2M6e2NvbG9yOnB9LGRldmVsb3BpbmdWQTp7Y29sb3I6V319LGxvPXtjb250ZW50OntjaGFydFByb3BlcnRpZXM6e3NjYWxlc1Byb3BlcnRpZXM6e3RleHRDb2xvcjpwLGxpbmVDb2xvcjpnLGJhY2tncm91bmRDb2xvcjpjfSxwYW5lUHJvcGVydGllczp7dmVydEdyaWRQcm9wZXJ0aWVzOntjb2xvcjp1fSxob3J6R3JpZFByb3BlcnRpZXM6e2NvbG9yOnV9LGNyb3NzSGFpclByb3BlcnRpZXM6e2NvbG9yOmR9LGJhY2tncm91bmRUeXBlOnQuQ29sb3JUeXBlLlNvbGlkLGJhY2tncm91bmQ6YyxiYWNrZ3JvdW5kR3JhZGllbnRTdGFydENvbG9yOmMsYmFja2dyb3VuZEdyYWRpZW50RW5kQ29sb3I6YyxzZXBhcmF0b3JDb2xvcjpufX0sc2Vzc2lvbnM6e3Nlc3Npb25IaWdobGlnaHQ6e2JhY2tncm91bmRzOntvdXRPZlNlc3Npb246e2NvbG9yOlgsdHJhbnNwYXJlbmN5OjkyfSxwcmVNYXJrZXQ6e2NvbG9yOlEsdHJhbnNwYXJlbmN5OjkyfSxwb3N0TWFya2V0Ontjb2xvcjpYLHRyYW5zcGFyZW5jeTo5Mn0sbmlnaHRNYXJrZXQ6e2NvbG9yOkMsdHJhbnNwYXJlbmN5OjkyfSxlbGVjdHJvbmljOntjb2xvcjpYLHRyYW5zcGFyZW5jeTo5Mn19LHZlcnRsaW5lczp7c2Vzc0JyZWFrczp7Y29sb3I6IiM0OTg1ZTcifX19fSxtYWluU291cmNlUHJvcGVydGllczp7YmFzZUxpbmVDb2xvcjppLHByZXZDbG9zZVByaWNlTGluZUNvbG9yOiIjNTU1NTU1IixwcmljZUxpbmVDb2xvcjoiIixoaWdoTG93QXZnUHJpY2U6e2hpZ2hMb3dQcmljZUxpbmVzQ29sb3I6IiIsYXZlcmFnZVByaWNlTGluZUNvbG9yOiIifSxiaWRBc2s6e2JpZExpbmVDb2xvcjpYLGFza0xpbmVDb2xvcjp3fSxwcmVQb3N0TWFya2V0OntwcmVNYXJrZXRDb2xvcjpaLApwb3N0TWFya2V0Q29sb3I6WCxvdmVybmlnaHRNYXJrZXRDb2xvcjpifSxjYW5kbGVTdHlsZTp7Ym9yZGVyQ29sb3I6IiMzNzg2NTgiLHVwQ29sb3I6bSx3aWNrQ29sb3I6IiM3MzczNzUiLHdpY2tVcENvbG9yOm0sd2lja0Rvd25Db2xvcjpSLGRvd25Db2xvcjpSLGJvcmRlclVwQ29sb3I6bSxib3JkZXJEb3duQ29sb3I6Un0sdm9sQ2FuZGxlc1N0eWxlOntib3JkZXJDb2xvcjoiIzM3ODY1OCIsdXBDb2xvcjptLHdpY2tDb2xvcjoiIzczNzM3NSIsd2lja1VwQ29sb3I6bSx3aWNrRG93bkNvbG9yOlIsZG93bkNvbG9yOlIsYm9yZGVyVXBDb2xvcjptLGJvcmRlckRvd25Db2xvcjpSfSxoYVN0eWxlOntib3JkZXJDb2xvcjoiIzM3ODY1OCIsdXBDb2xvcjptLHdpY2tDb2xvcjoiIzczNzM3NSIsd2lja1VwQ29sb3I6bSx3aWNrRG93bkNvbG9yOlIsZG93bkNvbG9yOlIsYm9yZGVyVXBDb2xvcjptLGJvcmRlckRvd25Db2xvcjpSfSxobGNBcmVhU3R5bGU6e2hpZ2hMaW5lQ29sb3I6Vyxsb3dMaW5lQ29sb3I6RCxjbG9zZUxpbmVDb2xvcjpYLGhpZ2hDbG9zZUZpbGxDb2xvcjpWLGNsb3NlTG93RmlsbENvbG9yOkx9LGhvbGxvd0NhbmRsZVN0eWxlOnt1cENvbG9yOm0sZG93bkNvbG9yOlIsYm9yZGVyQ29sb3I6IiMzNzg2NTgiLGJvcmRlclVwQ29sb3I6bSxib3JkZXJEb3duQ29sb3I6Uix3aWNrQ29sb3I6IiM3MzczNzUiLHdpY2tVcENvbG9yOm0sd2lja0Rvd25Db2xvcjpSfSxiYXJTdHlsZTp7ZG93bkNvbG9yOlIsdXBDb2xvcjptfSxwbmZTdHlsZTp7ZG93bkNvbG9yOlIsdXBDb2xvcjptLHVwQ29sb3JQcm9qZWN0aW9uOiIjYTlkY2MzIixkb3duQ29sb3JQcm9qZWN0aW9uOiIjZjVhNmFlIn0sYmFzZWxpbmVTdHlsZTp7YmFzZWxpbmVDb2xvcjpzLHRvcEZpbGxDb2xvcjE6Zix0b3BGaWxsQ29sb3IyOlQsYm90dG9tRmlsbENvbG9yMTpPLGJvdHRvbUZpbGxDb2xvcjI6ayx0b3BMaW5lQ29sb3I6bSxib3R0b21MaW5lQ29sb3I6Un0sYXJlYVN0eWxlOnt0cmFuc3BhcmVuY3k6MTAwLGNvbG9yMTpxLGNvbG9yMjpYLGxpbmVjb2xvcjpYfSxoaWxvU3R5bGU6e2NvbG9yOlgsYm9yZGVyQ29sb3I6WCxsYWJlbENvbG9yOlh9LGNvbHVtblN0eWxlOnt1cENvbG9yOlMsZG93bkNvbG9yOkJ9LHJlbmtvU3R5bGU6e3VwQ29sb3I6bSxkb3duQ29sb3I6Uixib3JkZXJVcENvbG9yOm0sYm9yZGVyRG93bkNvbG9yOlIsdXBDb2xvclByb2plY3Rpb246IiNhOWRjYzMiLGRvd25Db2xvclByb2plY3Rpb246IiNmNWE2YWUiLGJvcmRlclVwQ29sb3JQcm9qZWN0aW9uOiIjYTlkY2MzIixib3JkZXJEb3duQ29sb3JQcm9qZWN0aW9uOiIjZjVhNmFlIix3aWNrVXBDb2xvcjptLHdpY2tEb3duQ29sb3I6Un0sbGluZVN0eWxlOntjb2xvclR5cGU6dC5Db2xvclR5cGUuR3JhZGllbnQsY29sb3I6WCxncmFkaWVudFN0YXJ0Q29sb3I6QyxncmFkaWVudEVuZENvbG9yOiIjMDBCQ0U1In0sbGluZVdpdGhNYXJrZXJzU3R5bGU6e2NvbG9yVHlwZTp0LkNvbG9yVHlwZS5HcmFkaWVudCxjb2xvcjpYLGdyYWRpZW50U3RhcnRDb2xvcjpDLGdyYWRpZW50RW5kQ29sb3I6IiMwMEJDRTUifSxzdGVwbGluZVN0eWxlOntjb2xvclR5cGU6dC5Db2xvclR5cGUuR3JhZGllbnQsY29sb3I6WCxncmFkaWVudFN0YXJ0Q29sb3I6QyxncmFkaWVudEVuZENvbG9yOiIjMDBCQ0U1In0sa2FnaVN0eWxlOntkb3duQ29sb3I6Uix1cENvbG9yOm0sdXBDb2xvclByb2plY3Rpb246IiNhOWRjYzMiLGRvd25Db2xvclByb2plY3Rpb246IiNmNWE2YWUifSxwYlN0eWxlOnt1cENvbG9yOm0sZG93bkNvbG9yOlIsYm9yZGVyVXBDb2xvcjptLGJvcmRlckRvd25Db2xvcjpSLHVwQ29sb3JQcm9qZWN0aW9uOiIjYTlkY2MzIixkb3duQ29sb3JQcm9qZWN0aW9uOiIjZjVhNmFlIixib3JkZXJVcENvbG9yUHJvamVjdGlvbjoiI2E5ZGNjMyIsYm9yZGVyRG93bkNvbG9yUHJvamVjdGlvbjoiI2Y1YTZhZSJ9LHJhbmdlU3R5bGU6e3VwQ29sb3I6bSxkb3duQ29sb3I6Uix1cENvbG9yUHJvamVjdGlvbjoiI2E5ZGNjMyIsZG93bkNvbG9yUHJvamVjdGlvbjoiI2Y1YTZhZSIsY2FuZGxlc1VwQ29sb3I6bSxjYW5kbGVzRG93bkNvbG9yOlIsY2FuZGxlc0JvcmRlclVwQ29sb3I6bSxjYW5kbGVzQm9yZGVyRG93bkNvbG9yOlIsY2FuZGxlc1dpY2tVcENvbG9yOm0sY2FuZGxlc1dpY2tEb3duQ29sb3I6Un0sdHBvU3R5bGU6b28sdm9sRm9vdHByaW50U3R5bGU6cm8sc3ZwU3R5bGU6ZW8saGxjQmFyc1N0eWxlOntjb2xvcjpYfX19fX0sMTEzNjU2KG8scixlKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbCgpe3JldHVybi8oPzpefDspXHMqdGhlbWU9KGRhcmt8bGlnaHQpKD86O3wkKXwkLy5leGVjKGRvY3VtZW50LmNvb2tpZSlbMV19ZnVuY3Rpb24gdChvKXtjb25zdCByPWZ1bmN0aW9uKCl7Y29uc3Qgbz1sb2NhdGlvbi5ob3N0bmFtZS5zcGxpdCgiLiIpLmZpbHRlcihCb29sZWFuKTtyZXR1cm4gby5ldmVyeShpc0Zpbml0ZSk/bG9jYXRpb24uaG9zdDpvLnNsaWNlKC0yKS5qb2luKCIuIil9KCksZT12b2lkIDA9PT1vPy0xOjNlODtkb2N1bWVudC5jb29raWU9YHRoZW1lPSR7b307cGF0aD0vO2RvbWFpbj0ke3J9O21heC1hZ2U9JHtlfWB9ZS5kKHIse2dldFRoZW1lRnJvbUNvb2tpZTooKT0+bCxzZXRUaGVtZVRvQ29va2llOigpPT50fSl9LDQ4NTY1MShvLHIsZSl7InVzZSBzdHJpY3QiO2UuZChyLHtnZXRUaGVtZUZyb21Vc2VyU2V0dGluZ3M6KCk9PmMsc2F2ZVRoZW1lSW5Vc2VyU2V0dGluZ3M6KCk9PmF9KTt2YXIgbD1lKDkzMDU2NiksdD1lKDExMzY1Nik7ZnVuY3Rpb24gYygpe3JldHVybigwLHQuZ2V0VGhlbWVGcm9tQ29va2llKSgpfHwoMCxsLmdldFZhbHVlKSgiY3VycmVudF90aGVtZS5uYW1lIil8fG51bGx9ZnVuY3Rpb24gYShvKXsoMCx0LnNldFRoZW1lVG9Db29raWUpKG8pLCgwLGwuc2V0VmFsdWUpKCJjdXJyZW50X3RoZW1lLm5hbWUiLG8se2ZvcmNlRmx1c2g6ITB9KX19LDY2NTE4NyhvLHIsZSl7InVzZSBzdHJpY3QiO2UucihyKSxlLmQocix7REVGQVVMVF9USEVNRTooKT0+RS5ERUZBVUxUX1RIRU1FLGdldEN1cnJlbnRUaGVtZTooKT0+XyxnZXRTdGRUaGVtZTooKT0+SSwKZ2V0U3RkVGhlbWVOYW1lczooKT0+TixnZXRTdGRUaGVtZWRWYWx1ZTooKT0+TyxnZXRUaGVtZTooKT0+dyxnZXRUaGVtZU5hbWVzOigpPT5SLGdldFRoZW1lZENvbG9yOigpPT5ULGlzU3RkVGhlbWVOYW1lOigpPT5BLmlzU3RkVGhlbWVOYW1lLGlzU3RkVGhlbWVkRGVmYXVsdFZhbHVlOigpPT5rLGlzVGhlbWVFeGlzdDooKT0+RCxyZW1vdmVUaGVtZTooKT0+UCxyZXN0b3JlVGhlbWU6KCk9PmYsc2F2ZVRoZW1lOigpPT5CLHNhdmVkVGhlbWVOYW1lOigpPT5TLHN5bmNUaGVtZTooKT0+dix0aGVtZUxpc3RDaGFuZ2VkOigpPT5GLHRoZW1lczooKT0+bS50aGVtZXMsdHJhbnNsYXRlU3RkVGhlbWVOYW1lOigpPT5MfSk7dmFyIGw9e307aWYoZS5yKGwpLGUuZChsLHtpc1RoZW1lRXhpc3Q6KCk9PkMsbG9hZFRoZW1lOigpPT5zLGxvYWRUaGVtZXM6KCk9PmcscmVtb3ZlVGhlbWU6KCk9PnAsc2F2ZVRoZW1lOigpPT51fSksL14oNzk3OTV8OTQzODkpJC8udGVzdChlLmopKXZhciB0PWUoMTM0NjcpO3ZhciBjPWUoOTQ4MzgwKSxhPWUoNDg1NjUxKSxuPWUoMzg0MDE3KTtjb25zdCBpPSgwLGUoMjIxMDYxKS5nZXRMb2dnZXIpKCJUaGVtZXMuUHJvdmlkZXIiKTtsZXQgZD1udWxsO2Z1bmN0aW9uIHMobyl7cmV0dXJuKDAsbi5mZXRjaCkoIi90aGVtZS8/dGhlbWVOYW1lPSIrZW5jb2RlVVJJQ29tcG9uZW50KG8pLHtjcmVkZW50aWFsczoiaW5jbHVkZSIsbWV0aG9kOiJHRVQifSkudGhlbigobz0+by5qc29uKCkpKS50aGVuKChvPT57Y29uc3Qgcj17fTtyZXR1cm4gby5jb250ZW50JiYoci5jb250ZW50PUpTT04ucGFyc2Uoby5jb250ZW50KSkscn0pKX1mdW5jdGlvbiBnKCl7cmV0dXJuIGR8fCgwLG4uZmV0Y2gpKCIvdGhlbWVzLyIse2NyZWRlbnRpYWxzOiJpbmNsdWRlIixtZXRob2Q6IkdFVCJ9KS50aGVuKChvPT4oZD1vLmpzb24oKSxkKSkpfWZ1bmN0aW9uIHUobyxyKXtjb25zdCBlPW5ldyBGb3JtRGF0YTtyZXR1cm4gZS5hcHBlbmQoImNvbnRlbnQiLEpTT04uc3RyaW5naWZ5KHIpKSxlLmFwcGVuZCgibmFtZSIsbyksZD1udWxsLCgwLG4uZmV0Y2gpKCIvc2F2ZS10aGVtZS8iLHtjcmVkZW50aWFsczoiaW5jbHVkZSIsbWV0aG9kOiJQT1NUIixib2R5OmV9KS50aGVuKChvPT5vLmpzb24oKSksKG89PmkubG9nRXJyb3IobykpKX1mdW5jdGlvbiBwKG8pe2NvbnN0IHI9bmV3IEZvcm1EYXRhO3JldHVybiByLmFwcGVuZCgibmFtZSIsbyksZD1udWxsLCgwLG4uZmV0Y2gpKCIvcmVtb3ZlLXRoZW1lLyIse2NyZWRlbnRpYWxzOiJpbmNsdWRlIixtZXRob2Q6IlBPU1QiLGJvZHk6cn0pLnRoZW4oKG89Pm8uanNvbigpKSwobz0+aS5sb2dFcnJvcihvKSkpfWZ1bmN0aW9uIEMobyl7cmV0dXJuIHMobykudGhlbigobz0+Qm9vbGVhbihvLmNvbnRlbnQpKSl9Y29uc3QgeT0vXig3OTc5NXw5NDM4OSkkLy50ZXN0KGUuaik/bDpudWxsO3ZhciBiPWUoNzI4NTQpLGg9ZSgyMDA2NjYpLEU9ZSg0MzI3ODMpLG09ZSgyNDQ2NjQpLEE9ZSg0NTM5NjgpO2Z1bmN0aW9uIF8oKXtyZXR1cm4gbS50aGVtZXNbaC53YXRjaGVkVGhlbWUudmFsdWUoKV18fG0udGhlbWVzW0UuREVGQVVMVF9USEVNRV19ZnVuY3Rpb24gVChvKXtyZXR1cm4gXygpLmdldFRoZW1lZENvbG9yKG8pfWZ1bmN0aW9uIGYoKXsoMCxoLnNldFRoZW1lKSgoMCxhLmdldFRoZW1lRnJvbVVzZXJTZXR0aW5ncykoKXx8RS5ERUZBVUxUX1RIRU1FKX1mdW5jdGlvbiBTKCl7cmV0dXJuKDAsYS5nZXRUaGVtZUZyb21Vc2VyU2V0dGluZ3MpKCl9ZnVuY3Rpb24gdigpeygwLGEuc2F2ZVRoZW1lSW5Vc2VyU2V0dGluZ3MpKF8oKS5uYW1lKX1mdW5jdGlvbiB3KG8pe3JldHVybiB5LmxvYWRUaGVtZShvKX1mdW5jdGlvbiBSKCl7cmV0dXJuIHkubG9hZFRoZW1lcygpfWZ1bmN0aW9uIE4oKXtyZXR1cm4gYi5nZXRTdGRUaGVtZU5hbWVzKCl9ZnVuY3Rpb24gSShvKXtyZXR1cm4gYi5nZXRTdGRDaGFydFRoZW1lKG8pfHx7Y29udGVudDp2b2lkIDB9fWZ1bmN0aW9uIE8obyxyKXtjb25zdCBlPXJ8fF8oKS5uYW1lLGw9Yi5nZXRTdGRDaGFydFRoZW1lKGUpLHQ9MCE9PW8ubGVuZ3RoJiZvLnNwbGl0KCIuIik7cmV0dXJuIGwmJmwuY29udGVudCYmdD90LnJlZHVjZSgoKG8scik9Pm9bcl0pLGwuY29udGVudCk6bnVsbH1mdW5jdGlvbiBrKG8scixlKXtjb25zdCBsPU8obyxlKTtyZXR1cm4gbnVsbCE9PWwmJigwLHQuYXJlRXF1YWxSZ2JhKSgoMCx0LnBhcnNlUmdiYSkobCksKDAsdC5wYXJzZVJnYmEpKFN0cmluZyhyKSkpfWFzeW5jIGZ1bmN0aW9uIEIobyxyKXt0cnl7cmV0dXJuIGF3YWl0IHkuc2F2ZVRoZW1lKG8scil9ZmluYWxseXtGLmZpcmUoKX19YXN5bmMgZnVuY3Rpb24gUChvKXt0cnl7cmV0dXJuIGF3YWl0IHkucmVtb3ZlVGhlbWUobyl9ZmluYWxseXtGLmZpcmUoKX19ZnVuY3Rpb24gRChvKXtyZXR1cm4geS5pc1RoZW1lRXhpc3Qobyl9ZnVuY3Rpb24gTChvKXtyZXR1cm4gYi50cmFuc2xhdGVUaGVtZU5hbWUobyl9Y29uc3QgRj1uZXcgYy5EZWxlZ2F0ZX0sMjI3ODI1KG8scixlKXsidXNlIHN0cmljdCI7dmFyIGw7ZS5kKHIse0NvbG9yVHlwZTooKT0+bH0pLGZ1bmN0aW9uKG8pe28uU29saWQ9InNvbGlkIixvLkdyYWRpZW50PSJncmFkaWVudCJ9KGx8fChsPXt9KSl9LDg3MzU3MyhvLHIsZSl7InVzZSBzdHJpY3QiO2UuZChyLHthbHBoYVRvVHJhbnNwYXJlbmN5OigpPT5hLGFwcGx5QWxwaGE6KCk9PmMsYXBwbHlUcmFuc3BhcmVuY3k6KCk9PmksY29sb3JGcm9tQmFja2dyb3VuZDooKT0+Zyxjb2xvclRvSW50ZWdlcjooKT0+QyxnZW5lcmF0ZUNvbG9yOigpPT50LGdyYWRpZW50Q29sb3JBdFBlcmNlbnQ6KCk9PnUsaXNIZXhDb2xvcjooKT0+cyxyZXNldFRyYW5zcGFyZW5jeTooKT0+ZCxyZ2JhRnJvbUludGVnZXI6KCk9PnAsdHJhbnNwYXJlbmN5VG9BbHBoYTooKT0+bn0pO3ZhciBsPWUoMTM0NjcpO2Z1bmN0aW9uIHQobyxyLGUpe2lmKHI9cnx8MCwhcyhvKSlyZXR1cm4gZT8oMCxsLnJnYmFUb1N0cmluZykoKDAsbC5yZ2JhKSgoMCxsLnBhcnNlUmdiKShvKSwoMCxsLm5vcm1hbGl6ZUFscGhhQ29tcG9uZW50KShuKHIpKSkpOm87Y29uc3RbdCxjLGFdPSgwLApsLnBhcnNlUmdiKShvKSxpPSgwLGwubm9ybWFsaXplQWxwaGFDb21wb25lbnQpKG4ocikpO3JldHVybigwLGwucmdiYVRvU3RyaW5nKShbdCxjLGEsaV0pfWZ1bmN0aW9uIGMobyxyLGUpe2NvbnN0IHQ9KDAsbC50cnlQYXJzZVJnYmEpKG8pO2lmKG51bGw9PT10KXRocm93IG5ldyBFcnJvcihgSW52YWxpZCBjb2xvcjogJHtvfWApO2NvbnN0W2MsYSxuLGldPXQsZD0oMCxsLm5vcm1hbGl6ZUFscGhhQ29tcG9uZW50KShyKihlP2k6MSkpO3JldHVybigwLGwucmdiYVRvU3RyaW5nKSgoMCxsLnJnYmEpKFtjLGEsbl0sZCkpfWZ1bmN0aW9uIGEobyl7cmV0dXJuIDEwMCooMS1vKX1mdW5jdGlvbiBuKG8pe2lmKG88MHx8bz4xMDApdGhyb3cgbmV3IEVycm9yKCJpbnZhbGlkIHRyYW5zcGFyZW5jeSIpO3JldHVybiAxLW8vMTAwfWZ1bmN0aW9uIGkobyxyKXtpZigidHJhbnNwYXJlbnQiPT09bylyZXR1cm4gbztjb25zdCBlPSgwLGwucGFyc2VSZ2JhKShvKSx0PWVbM107cmV0dXJuKDAsbC5yZ2JhVG9TdHJpbmcpKCgwLGwucmdiYSkoZVswXSxlWzFdLGVbMl0sbihyKSp0KSl9ZnVuY3Rpb24gZChvKXtyZXR1cm4idHJhbnNwYXJlbnQiPT09bz9vOnMobyk/by5zbGljZSgwLDcpOigwLGwucmdiYVRvU3RyaW5nKSgoMCxsLnJnYmEpKCgwLGwucGFyc2VSZ2IpKG8pLCgwLGwubm9ybWFsaXplQWxwaGFDb21wb25lbnQpKDEpKSl9ZnVuY3Rpb24gcyhvKXtyZXR1cm4gMD09PW8uaW5kZXhPZigiIyIpfWZ1bmN0aW9uIGcobyl7cmV0dXJuImJsYWNrIj09PSgwLGwucmdiVG9CbGFja1doaXRlU3RyaW5nKSgoMCxsLnBhcnNlUmdiKShvKSwxNTApPyIjZmZmZmZmIjoiIzAwMDAwMCJ9ZnVuY3Rpb24gdShvLHIsZSl7Y29uc3RbdCxjLGEsbl09KDAsbC5wYXJzZVJnYmEpKG8pLFtpLGQscyxnXT0oMCxsLnBhcnNlUmdiYSkociksdT0oMCxsLnJnYmEpKE1hdGgucm91bmQodCtlKihpLXQpKSxNYXRoLnJvdW5kKGMrZSooZC1jKSksTWF0aC5yb3VuZChhK2UqKHMtYSkpLG4rZSooZy1uKSk7cmV0dXJuKDAsbC5yZ2JhVG9TdHJpbmcpKHUpfWZ1bmN0aW9uIHAobyl7Y29uc3Qgcj0obz1NYXRoLnJvdW5kKG8pKSUyNTY7by09cjtjb25zdCBlPShvLz0yNTYpJTI1NjtvLT1lO2NvbnN0IGw9KG8vPTI1NiklMjU2O28tPWw7cmV0dXJuYHJnYmEoJHtyfSwke2V9LCR7bH0sJHsoby89MjU2KS8yNTV9KWB9ZnVuY3Rpb24gQyhvKXtjb25zdCByPSgwLGwudHJ5UGFyc2VSZ2JhKShvKTtyZXR1cm4gbnVsbD09PXI/MDpmdW5jdGlvbihvKXtjb25zdCByPU1hdGgucm91bmQoMjU1Km9bM10pO3JldHVybiBvWzBdKzI1NipvWzFdKzY1NTM2Km9bMl0rMTY3NzcyMTYqcn0ocil9fSw5OTk2NDAobyxyLGUpeyJ1c2Ugc3RyaWN0IjtlLmQocix7cGF5d2FsbE1vYmlsZUludGVyY2VwdG9yOigpPT5sfSk7Y29uc3QgbD1uZXcgY2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLl9oaWRkZW5GZWF0dXJlcz1uZXcgU2V0LHRoaXMuX2xpc3RlbmVycz1bXSx0aGlzLmhpZGU9bz0+e3RoaXMuX2hpZGRlbkZlYXR1cmVzLmFkZChvKX0sdGhpcy5pc0hpZGRlbkZlYXR1cmU9bz0+dGhpcy5faGlkZGVuRmVhdHVyZXMuaGFzKG8pLHRoaXMuc3Vic2NyaWJlPW89Pnt0aGlzLl9saXN0ZW5lcnMucHVzaChvKX0sdGhpcy5pbnZva2U9bz0+e3RoaXMuX2xpc3RlbmVycy5mb3JFYWNoKChyPT5yKG8pKSl9fX19LDUwNzQyNihvLHIsZSl7InVzZSBzdHJpY3QiO2UuZChyLHtwYWlkQWNjb3VudENoZWNrOigpPT5hfSk7dmFyIGw9ZSg5MzIzNjUpLHQ9ZSgzMTg5NzQpO2NvbnN0IGM9KDAsZSgyMjEwNjEpLmdldExvZ2dlcikoIlBhaWRBY2NvdW50Q2hlY2siKTthc3luYyBmdW5jdGlvbiBhKG8pe2NvbnN0e29ubHlDaGVjazpyLHN1Y2Nlc3NCdXR0b25UZXh0OmEsaXNOZWVkQ2FuY2VsQnV0dG9uOm59PW8saT13aW5kb3cudXNlcixkPWwuVFZMb2NhbFN0b3JhZ2UuZ2V0SXRlbSgicHJldmlvdXNfdXNlcm5hbWUiKTtpZihpJiZ3aW5kb3cuaXNfYXV0aGVudGljYXRlZCYmIWkuaXNfcHJvJiZkJiYhKDAsdC5pc1N5bXBob255RW1iZWQpKCkpe2NvbnN0e2dldFByb2ZpbGU6b309YXdhaXQgZS5lKDM5NjEpLnRoZW4oZS5iaW5kKGUsNTY5MDE1KSk7dHJ5e2NvbnN0IGw9YXdhaXQgbyhkKTtpZihCb29sZWFuKGwucHJvX3BsYW4pKXtpZihyKXJldHVybiBkO3tjb25zdHtzaG93V3JvbmdBY2NvdW50RGlhbG9nOm99PWF3YWl0IFByb21pc2UuYWxsKFtlLmUoNjM1NTMpLGUuZSgxNjc4KSxlLmUoNjk4ODEpXSkudGhlbihlLmJpbmQoZSw2ODY5MDEpKTtyZXR1cm4gbyh7dXNlck5hbWU6ZCxpc05lZWRDYW5jZWxCdXR0b246bixzdWNjZXNzQnV0dG9uVGV4dDphfSl9fX1jYXRjaChvKXtjLmxvZ0Vycm9yKG8ubWVzc2FnZSl9fXJldHVybiExfX0sNDgyNTA0KG8scixlKXtjb25zdCBsPWUoMTk5ODI3KTtvLmV4cG9ydHM9bCxsKGRvY3VtZW50KS5hamF4U2VuZCgoKG8scixlKT0+e2UuY3Jvc3NEb21haW4mJiFlLmZvcmNlTGFuZ3VhZ2VIZWFkZXJ8fCh3aW5kb3cubG9jYWxlP3Iuc2V0UmVxdWVzdEhlYWRlcigiWC1MYW5ndWFnZSIsd2luZG93LmxvY2FsZSk6Y29uc29sZS53YXJuKCJ3aW5kb3cubG9jYWxlIGlzIG5vdCBkZWZpbmVkIikpfSkpfSw1MjQwNjkobyxyLGUpeyJ1c2Ugc3RyaWN0IjtlLmQocix7Z2V0UHJvUGxhbkRldGFpbHNGb3JVc2VyOigpPT5uLGdldFByb1BsYW5XZWlnaHQ6KCk9PmF9KTtlKDQ3OTM0KTt2YXIgbD1lKDIxMjIyOSksdD1lKDM4NDAxNyksYz1lKDIyMjQyMyk7ZnVuY3Rpb24gYShvKXtyZXR1cm4gd2luZG93LnBybz8iZnJlZSI9PT1vPy0xOndpbmRvdy5wcm8uZ2V0UHJvZHVjdCgoMCxsLmdldFByb2R1Y3RGb3JUcmlhbCkobykpLnVwZ3JhZGVfd2VpZ2h0OjB9YXN5bmMgZnVuY3Rpb24gbigpe2NvbnN0IG89YXdhaXQoMCx0LmZldGNoKSgiL3Byby1wbGFucy9wcm9maWxlLyIpLHI9YXdhaXQgby5qc29uKCk7aWYoby5vaylyZXR1cm4gcjtpZig0MDM9PT1vLnN0YXR1cyl7Y29uc3QgZT1yO3Rocm93IG5ldyBjLkFwaUVycm9yKGUuZGV0YWlsLG8uc3RhdHVzLGUuY29kZSl9CnRocm93IG5ldyBFcnJvcihgVW5hYmxlIHRvIGhhbmRsZSB1bmV4cGVjdGVkIHJlc3BvbnNlOiAke1N0cmluZyhvLnRleHQoKSl9YCl9fSwyMjE3MDAobyxyLGUpeyJ1c2Ugc3RyaWN0IjtlLmQocix7ZGlzYWJsZTooKT0+ZCxlbmFibGU6KCk9PnMscHVzaEJhY2tMaXN0ZW5lcjooKT0+aX0pO3ZhciBsPWUoMTUwMTUwKTtjb25zdCB0PVtdO2xldCBjPW51bGw7ZnVuY3Rpb24gYShvKXtmb3IobGV0IHI9MDtyPHQubGVuZ3RoO3IrKylpZih0W3JdLm5hbWU9PT1vKXJldHVybiByO3JldHVybi0xfWZ1bmN0aW9uIG4obyl7aWYoIWMpZm9yKGxldCByPXQubGVuZ3RoLTE7cj49MCYmITAhPT10W3JdLmZ1bmMobyk7ci0tKTt9ZnVuY3Rpb24gaShvLHIpe2NvbnN0IGU9e25hbWU6byxmdW5jOnJ9LGw9YShlLm5hbWUpO2w+LTEmJnQuc3BsaWNlKGwsMSksdC51bnNoaWZ0KGUpfWZ1bmN0aW9uIGQoKXtyZXR1cm4gYz9udWxsOihjPSgwLGwucmFuZG9tSGFzaE4pKDQpLGMpfWZ1bmN0aW9uIHMobyl7aWYobyE9PWMpdGhyb3cgRXJyb3IoIkxvY2sgaWQgaXMgb3V0ZGF0ZWQiKTtjPW51bGx9d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImtleXByZXNzIixuLCExKX0sMzE3NjYzKG8peyJ1c2Ugc3RyaWN0Igo7by5leHBvcnRzPUpTT04ucGFyc2UoJ3siY29sb3Itd2hpdGUiOiIjZmZmZmZmIiwiY29sb3ItYmxhY2siOiIjMDAwMDAwIiwiY29sb3ItdHJhbnNwYXJlbnQiOiIjMDAwMDAwMDAiLCJjb2xvci1jb2xkLWdyYXktNTAiOiIjRjlGOUY5IiwiY29sb3ItY29sZC1ncmF5LTEwMCI6IiNGMkYyRjIiLCJjb2xvci1jb2xkLWdyYXktMTUwIjoiI0VCRUJFQiIsImNvbG9yLWNvbGQtZ3JheS0yMDAiOiIjREJEQkRCIiwiY29sb3ItY29sZC1ncmF5LTI1MCI6IiNDOUM5QzkiLCJjb2xvci1jb2xkLWdyYXktMzAwIjoiI0I4QjhCOCIsImNvbG9yLWNvbGQtZ3JheS0zNTAiOiIjQThBOEE4IiwiY29sb3ItY29sZC1ncmF5LTQwMCI6IiM5QzlDOUMiLCJjb2xvci1jb2xkLWdyYXktNDUwIjoiIzhDOEM4QyIsImNvbG9yLWNvbGQtZ3JheS01MDAiOiIjODA4MDgwIiwiY29sb3ItY29sZC1ncmF5LTU1MCI6IiM3MDcwNzAiLCJjb2xvci1jb2xkLWdyYXktNjAwIjoiIzYzNjM2MyIsImNvbG9yLWNvbGQtZ3JheS02NTAiOiIjNTc1NzU3IiwiY29sb3ItY29sZC1ncmF5LTcwMCI6IiM0QTRBNEEiLCJjb2xvci1jb2xkLWdyYXktNzUwIjoiIzNEM0QzRCIsImNvbG9yLWNvbGQtZ3JheS04MDAiOiIjMkUyRTJFIiwiY29sb3ItY29sZC1ncmF5LTg1MCI6IiMxRjFGMUYiLCJjb2xvci1jb2xkLWdyYXktOTAwIjoiIzBGMEYwRiIsImNvbG9yLWNvbGQtZ3JheS05NTAiOiIjMDAwMDAwIiwiY29sb3ItcmlwZS1yZWQtNTAiOiIjRkZFQkVDIiwiY29sb3ItcmlwZS1yZWQtMTAwIjoiI0ZDQ0JDRCIsImNvbG9yLXJpcGUtcmVkLTIwMCI6IiNGQUExQTQiLCJjb2xvci1yaXBlLXJlZC0zMDAiOiIjRjc3QzgwIiwiY29sb3ItcmlwZS1yZWQtNDAwIjoiI0Y3NTI1RiIsImNvbG9yLXJpcGUtcmVkLTUwMCI6IiNGMjM2NDUiLCJjb2xvci1yaXBlLXJlZC02MDAiOiIjQ0MyRjNDIiwiY29sb3ItcmlwZS1yZWQtNzAwIjoiI0IyMjgzMyIsImNvbG9yLXJpcGUtcmVkLTgwMCI6IiM5OTFGMjkiLCJjb2xvci1yaXBlLXJlZC05MDAiOiIjODAxOTIyIiwiY29sb3ItcmlwZS1yZWQtYTEwMCI6IiNGRjgwODAiLCJjb2xvci1yaXBlLXJlZC1hMjAwIjoiI0ZGNTI1MiIsImNvbG9yLXJpcGUtcmVkLWE0MDAiOiIjRkYzMzMzIiwiY29sb3ItcmlwZS1yZWQtYTYwMCI6IiNDQzI5MjkiLCJjb2xvci1yaXBlLXJlZC1hNzAwIjoiIzgwMjAyOCIsImNvbG9yLXJpcGUtcmVkLWE4MDAiOiIjNEQxOTFEIiwiY29sb3ItcmlwZS1yZWQtYTkwMCI6IiMzMzFGMjAiLCJjb2xvci10YW4tb3JhbmdlLTUwIjoiI0ZGRjNFMCIsImNvbG9yLXRhbi1vcmFuZ2UtMTAwIjoiI0ZGRTBCMiIsImNvbG9yLXRhbi1vcmFuZ2UtMjAwIjoiI0ZGQ0M4MCIsImNvbG9yLXRhbi1vcmFuZ2UtMzAwIjoiI2ZmYjc0ZCIsImNvbG9yLXRhbi1vcmFuZ2UtNDAwIjoiI0ZGQTcyNiIsImNvbG9yLXRhbi1vcmFuZ2UtNTAwIjoiI0ZGOTgwMCIsImNvbG9yLXRhbi1vcmFuZ2UtNjAwIjoiI0ZCOEMwMCIsImNvbG9yLXRhbi1vcmFuZ2UtNzAwIjoiI0Y1N0MwMCIsImNvbG9yLXRhbi1vcmFuZ2UtODAwIjoiI0VGNkMwMCIsImNvbG9yLXRhbi1vcmFuZ2UtOTAwIjoiI2U2NTEwMCIsImNvbG9yLXRhbi1vcmFuZ2UtYTEwMCI6IiNGRkQxODAiLCJjb2xvci10YW4tb3JhbmdlLWEyMDAiOiIjZmZhYjQwIiwiY29sb3ItdGFuLW9yYW5nZS1hNDAwIjoiI0ZGOTEwMCIsImNvbG9yLXRhbi1vcmFuZ2UtYTUwMCI6IiNFNTdFMTciLCJjb2xvci10YW4tb3JhbmdlLWE2MDAiOiIjQ0M3MDE0IiwiY29sb3ItdGFuLW9yYW5nZS1hNzAwIjoiIzhDNTQxQyIsImNvbG9yLXRhbi1vcmFuZ2UtYTgwMCI6IiM1OTNBMUIiLCJjb2xvci10YW4tb3JhbmdlLWE5MDAiOiIjMzMyNjFBIiwiY29sb3ItaWd1YW5hLWdyZWVuLTUwIjoiI0U4RjVFOSIsImNvbG9yLWlndWFuYS1ncmVlbi0xMDAiOiIjQzhFNkM5IiwiY29sb3ItaWd1YW5hLWdyZWVuLTIwMCI6IiNBNUQ2QTciLCJjb2xvci1pZ3VhbmEtZ3JlZW4tMzAwIjoiIzgxYzc4NCIsImNvbG9yLWlndWFuYS1ncmVlbi00MDAiOiIjNjZCQjZBIiwiY29sb3ItaWd1YW5hLWdyZWVuLTUwMCI6IiM0Y2FmNTAiLCJjb2xvci1pZ3VhbmEtZ3JlZW4tNjAwIjoiIzQzYTA0NyIsImNvbG9yLWlndWFuYS1ncmVlbi03MDAiOiIjMzg4ZTNjIiwiY29sb3ItaWd1YW5hLWdyZWVuLTgwMCI6IiMyRTdEMzIiLCJjb2xvci1pZ3VhbmEtZ3JlZW4tOTAwIjoiIzFCNUUyMCIsImNvbG9yLWlndWFuYS1ncmVlbi1hMTAwIjoiI0I5RjZDQSIsImNvbG9yLWlndWFuYS1ncmVlbi1hMjAwIjoiIzY5RjBBRSIsImNvbG9yLWlndWFuYS1ncmVlbi1hNDAwIjoiIzAwRTY3NiIsImNvbG9yLWlndWFuYS1ncmVlbi1hNzAwIjoiIzAwYzg1MyIsImNvbG9yLWJhbmFuYS15ZWxsb3ctNTAiOiIjRkZGREU3IiwiY29sb3ItYmFuYW5hLXllbGxvdy0xMDAiOiIjRkZGOUM0IiwiY29sb3ItYmFuYW5hLXllbGxvdy0yMDAiOiIjRkZGNTlEIiwiY29sb3ItYmFuYW5hLXllbGxvdy0zMDAiOiIjRkZGMTc2IiwiY29sb3ItYmFuYW5hLXllbGxvdy00MDAiOiIjZmZlZTU4IiwiY29sb3ItYmFuYW5hLXllbGxvdy01MDAiOiIjZmZlYjNiIiwiY29sb3ItYmFuYW5hLXllbGxvdy02MDAiOiIjZmRkODM1IiwiY29sb3ItYmFuYW5hLXllbGxvdy03MDAiOiIjZmJjMDJkIiwiY29sb3ItYmFuYW5hLXllbGxvdy04MDAiOiIjZjlhODI1IiwiY29sb3ItYmFuYW5hLXllbGxvdy05MDAiOiIjRjU3RjE3IiwiY29sb3ItYmFuYW5hLXllbGxvdy1hMTAwIjoiI0ZGRkY4RCIsImNvbG9yLWJhbmFuYS15ZWxsb3ctYTIwMCI6IiNGRkZGMDAiLCJjb2xvci1iYW5hbmEteWVsbG93LWE0MDAiOiIjZmZlYTAwIiwiY29sb3ItYmFuYW5hLXllbGxvdy1hNzAwIjoiI0VFREEwMSIsImNvbG9yLXR2LWJsdWUtNTAiOiIjRTNFRkZEIiwiY29sb3ItdHYtYmx1ZS0xMDAiOiIjQkJEOUZCIiwiY29sb3ItdHYtYmx1ZS0yMDAiOiIjOTBCRkY5IiwiY29sb3ItdHYtYmx1ZS0zMDAiOiIjNUI5Q0Y2IiwiY29sb3ItdHYtYmx1ZS00MDAiOiIjMzE3OUY1IiwiY29sb3ItdHYtYmx1ZS01MDAiOiIjMjk2MkZGIiwiY29sb3ItdHYtYmx1ZS02MDAiOiIjMUU1M0U1IiwiY29sb3ItdHYtYmx1ZS03MDAiOiIjMTg0OENDIiwiY29sb3ItdHYtYmx1ZS04MDAiOiIjMTQzRUIyIiwiY29sb3ItdHYtYmx1ZS05MDAiOiIjMEMzMjk5IiwiY29sb3ItdHYtYmx1ZS1hMTAwIjoiIzgyYjFmZiIsImNvbG9yLXR2LWJsdWUtYTIwMCI6IiM0NDhhZmYiLCJjb2xvci10di1ibHVlLWE0MDAiOiIjMjk3OWZmIiwiY29sb3ItdHYtYmx1ZS1hNjAwIjoiIzI5NjJGRiIsImNvbG9yLXR2LWJsdWUtYTcwMCI6IiMxNDNBODciLCJjb2xvci10di1ibHVlLWE4MDAiOiIjMTQyRTYxIiwiY29sb3ItdHYtYmx1ZS1hOTAwIjoiIzEzMjA0MiIsImNvbG9yLWRlZXAtYmx1ZS01MCI6IiNFREU3RjYiLCJjb2xvci1kZWVwLWJsdWUtMTAwIjoiI0QxQzRFOSIsImNvbG9yLWRlZXAtYmx1ZS0yMDAiOiIjQjM5RERCIiwiY29sb3ItZGVlcC1ibHVlLTMwMCI6IiM5NTc1Y2QiLCJjb2xvci1kZWVwLWJsdWUtNDAwIjoiIzdlNTdjMiIsImNvbG9yLWRlZXAtYmx1ZS01MDAiOiIjNjczYWI3IiwiY29sb3ItZGVlcC1ibHVlLTYwMCI6IiM1RTM1QjEiLCJjb2xvci1kZWVwLWJsdWUtNzAwIjoiIzUxMmRhOCIsImNvbG9yLWRlZXAtYmx1ZS04MDAiOiIjNDUyN0EwIiwiY29sb3ItZGVlcC1ibHVlLTkwMCI6IiMzMTFCOTIiLCJjb2xvci1kZWVwLWJsdWUtYTEwMCI6IiNiMzg4ZmYiLCJjb2xvci1kZWVwLWJsdWUtYTIwMCI6IiM3QzRERkYiLCJjb2xvci1kZWVwLWJsdWUtYTQwMCI6IiM2NTFGRkYiLCJjb2xvci1kZWVwLWJsdWUtYTcwMCI6IiM2MjAwRUEiLCJjb2xvci1taW50eS1ncmVlbi01MCI6IiNEQUYyRUUiLCJjb2xvci1taW50eS1ncmVlbi0xMDAiOiIjQUNFNURDIiwiY29sb3ItbWludHktZ3JlZW4tMjAwIjoiIzcwQ0NCRCIsImNvbG9yLW1pbnR5LWdyZWVuLTMwMCI6IiM0MkJEQTgiLCJjb2xvci1taW50eS1ncmVlbi00MDAiOiIjMjJBQjk0IiwiY29sb3ItbWludHktZ3JlZW4tNTAwIjoiIzA4OTk4MSIsImNvbG9yLW1pbnR5LWdyZWVuLTYwMCI6IiMwNjgwNkIiLCJjb2xvci1taW50eS1ncmVlbi03MDAiOiIjMDU2NjU2IiwiY29sb3ItbWludHktZ3JlZW4tODAwIjoiIzAwNEQ0MCIsImNvbG9yLW1pbnR5LWdyZWVuLTkwMCI6IiMwMDMzMkEiLCJjb2xvci1taW50eS1ncmVlbi1hMTAwIjoiI0E3RkZGMCIsImNvbG9yLW1pbnR5LWdyZWVuLWEyMDAiOiIjNDVFNUNCIiwiY29sb3ItbWludHktZ3JlZW4tYTQwMCI6IiMyQkQ5QkMiLCJjb2xvci1taW50eS1ncmVlbi1hNjAwIjoiIzI0QjI5QiIsImNvbG9yLW1pbnR5LWdyZWVuLWE3MDAiOiIjMUI3NjY3IiwiY29sb3ItbWludHktZ3JlZW4tYTgwMCI6IiMxMDQ0M0IiLCJjb2xvci1taW50eS1ncmVlbi1hOTAwIjoiIzA4MjYyMSIsImNvbG9yLWdyYXBlcy1wdXJwbGUtNTAiOiIjRjNFNUY1IiwiY29sb3ItZ3JhcGVzLXB1cnBsZS0xMDAiOiIjRTFCRUU3IiwiY29sb3ItZ3JhcGVzLXB1cnBsZS0yMDAiOiIjQ0U5M0Q4IiwiY29sb3ItZ3JhcGVzLXB1cnBsZS0zMDAiOiIjYmE2OGM4IiwiY29sb3ItZ3JhcGVzLXB1cnBsZS00MDAiOiIjYWI0N2JjIiwiY29sb3ItZ3JhcGVzLXB1cnBsZS01MDAiOiIjOWMyN2IwIiwiY29sb3ItZ3JhcGVzLXB1cnBsZS02MDAiOiIjOGUyNGFhIiwiY29sb3ItZ3JhcGVzLXB1cnBsZS03MDAiOiIjN2IxZmEyIiwiY29sb3ItZ3JhcGVzLXB1cnBsZS04MDAiOiIjNkExQjlBIiwiY29sb3ItZ3JhcGVzLXB1cnBsZS05MDAiOiIjNEExNDhDIiwiY29sb3ItZ3JhcGVzLXB1cnBsZS1hMTAwIjoiI0VBODBGQyIsImNvbG9yLWdyYXBlcy1wdXJwbGUtYTIwMCI6IiNFMDQwRkIiLCJjb2xvci1ncmFwZXMtcHVycGxlLWE0MDAiOiIjRDUwMEY5IiwiY29sb3ItZ3JhcGVzLXB1cnBsZS1hNzAwIjoiI2FhMDBmZiIsImNvbG9yLWJlcnJ5LXBpbmstNTAiOiIjRkNFNEVDIiwiY29sb3ItYmVycnktcGluay0xMDAiOiIjRjhCQkQwIiwiY29sb3ItYmVycnktcGluay0yMDAiOiIjZjQ4ZmIxIiwiY29sb3ItYmVycnktcGluay0zMDAiOiIjZjA2MjkyIiwiY29sb3ItYmVycnktcGluay00MDAiOiIjZWM0MDdhIiwiY29sb3ItYmVycnktcGluay01MDAiOiIjZTkxZTYzIiwiY29sb3ItYmVycnktcGluay02MDAiOiIjRDgxQjYwIiwiY29sb3ItYmVycnktcGluay03MDAiOiIjQzIxODVCIiwiY29sb3ItYmVycnktcGluay04MDAiOiIjQUQxNDU3IiwiY29sb3ItYmVycnktcGluay05MDAiOiIjODgwRTRGIiwiY29sb3ItYmVycnktcGluay1hMTAwIjoiI2ZmODBhYiIsImNvbG9yLWJlcnJ5LXBpbmstYTIwMCI6IiNmZjQwODEiLCJjb2xvci1iZXJyeS1waW5rLWE0MDAiOiIjZjUwMDU3IiwiY29sb3ItYmVycnktcGluay1hNzAwIjoiI2M1MTE2MiIsImNvbG9yLXNreS1ibHVlLTUwIjoiI0UwRjdGQSIsImNvbG9yLXNreS1ibHVlLTEwMCI6IiNCMkVCRjIiLCJjb2xvci1za3ktYmx1ZS0yMDAiOiIjODBERUVBIiwiY29sb3Itc2t5LWJsdWUtMzAwIjoiIzRkZDBlMSIsImNvbG9yLXNreS1ibHVlLTQwMCI6IiMyNmM2ZGEiLCJjb2xvci1za3ktYmx1ZS01MDAiOiIjMDBiY2Q0IiwiY29sb3Itc2t5LWJsdWUtNjAwIjoiIzAwYWNjMSIsImNvbG9yLXNreS1ibHVlLTcwMCI6IiMwMDk3QTciLCJjb2xvci1za3ktYmx1ZS04MDAiOiIjMDA4MzhGIiwiY29sb3Itc2t5LWJsdWUtOTAwIjoiIzAwNjA2NCIsImNvbG9yLXNreS1ibHVlLWExMDAiOiIjODRGRkZGIiwiY29sb3Itc2t5LWJsdWUtYTIwMCI6IiMxOEZGRkYiLCJjb2xvci1za3ktYmx1ZS1hNDAwIjoiIzAwZTVmZiIsImNvbG9yLXNreS1ibHVlLWE3MDAiOiIjMDBCOEQ0IiwiY29sb3ItZm9yZXN0LWdyZWVuLTUwIjoiI0RBRjJFNiIsImNvbG9yLWZvcmVzdC1ncmVlbi0xMDAiOiIjQUNFNUM5IiwiY29sb3ItZm9yZXN0LWdyZWVuLTIwMCI6IiM3MENDOUUiLCJjb2xvci1mb3Jlc3QtZ3JlZW4tMzAwIjoiIzQyQkQ3RiIsImNvbG9yLWZvcmVzdC1ncmVlbi00MDAiOiIjMjJBQjY3IiwiY29sb3ItZm9yZXN0LWdyZWVuLTUwMCI6IiMwODk5NTAiLCJjb2xvci1mb3Jlc3QtZ3JlZW4tNjAwIjoiIzA2ODA0MyIsImNvbG9yLWZvcmVzdC1ncmVlbi03MDAiOiIjMDU2NjM2IiwiY29sb3ItZm9yZXN0LWdyZWVuLTgwMCI6IiMwMDREMjciLCJjb2xvci1mb3Jlc3QtZ3JlZW4tOTAwIjoiIzFBMzMyNiIsImNvbG9yLWZhY2Vib29rIjoiIzE4NzdGMiIsImNvbG9yLWRlZXAtZmFjZWJvb2siOiIjMTU2NENBIiwiY29sb3ItdHdpdHRlciI6IiMxREExRjIiLCJjb2xvci1kZWVwLXR3aXR0ZXIiOiIjMTg4Q0QzIiwiY29sb3IteW91dHViZSI6IiNGRjAwMDAiLCJjb2xvci1saW5rZWRpbiI6IiMwMDdCQjUiLCJjb2xvci1zZWVraW5nLWFscGhhLWJyYW5kIjoiI2ZmNzIwMCJ9JykKfSw4Njc1MjIobyl7InVzZSBzdHJpY3QiCjtvLmV4cG9ydHM9SlNPTi5wYXJzZSgneyJjb2xvci1oZWFkZXItYmciOiJjb2xvci13aGl0ZSIsImNvbG9yLWJvZHktYmciOiJjb2xvci13aGl0ZSIsImNvbG9yLWJvZHktc2Vjb25kYXJ5LWJnIjoiY29sb3ItY29sZC1ncmF5LTEwMCIsImNvbG9yLWJnLXByaW1hcnkiOiJjb2xvci13aGl0ZSIsImNvbG9yLWJnLXByaW1hcnktaG92ZXIiOiJjb2xvci1jb2xkLWdyYXktMTAwIiwiY29sb3ItYmctc2Vjb25kYXJ5IjoiY29sb3Itd2hpdGUiLCJjb2xvci1iZy1oaWdobGlnaHQiOiJjb2xvci1jb2xkLWdyYXktNTAiLCJjb2xvci1iZy1zY3JvbGwtYnV0dG9ucyI6ImNvbG9yLWNvbGQtZ3JheS0xMDAiLCJjb2xvci1sZWdhY3ktYmctc2Nyb2xsLWJ1dHRvbnMiOiJjb2xvci1jb2xkLWdyYXktODUwIiwiY29sb3ItbGVnYWN5LWJnLXdpZGdldCI6ImNvbG9yLXdoaXRlIiwiY29sb3ItdGV4dC1wcmltYXJ5IjoiY29sb3ItY29sZC1ncmF5LTkwMCIsImNvbG9yLXRleHQtc2Vjb25kYXJ5IjoiY29sb3ItY29sZC1ncmF5LTU1MCIsImNvbG9yLXRleHQtdGVydGlhcnkiOiJjb2xvci1jb2xkLWdyYXktNDAwIiwiY29sb3ItdGV4dC1kaXNhYmxlZCI6ImNvbG9yLWNvbGQtZ3JheS0zMDAiLCJjb2xvci1hY2NlbnQtY29udGVudCI6ImNvbG9yLWNvbGQtZ3JheS05MDAiLCJjb2xvci1ib3gtc2hhZG93IjoiY29sb3ItY29sZC1ncmF5LTMwMCIsImNvbG9yLWRpdmlkZXIiOiJjb2xvci1jb2xkLWdyYXktMTUwIiwiY29sb3ItZGl2aWRlci1ob3ZlciI6ImNvbG9yLWNvbGQtZ3JheS0xMDAiLCJjb2xvci1kaXZpZGVyLXNlY29uZGFyeSI6ImNvbG9yLWNvbGQtZ3JheS0xMDAiLCJjb2xvci1hY3RpdmUtaG92ZXItdGV4dCI6ImNvbG9yLWNvbGQtZ3JheS05MDAiLCJjb2xvci1hbGVydC10ZXh0IjoiY29sb3ItY29sZC1ncmF5LTkwMCIsImNvbG9yLWJvcmRlci10YWJsZSI6ImNvbG9yLWNvbGQtZ3JheS0xMDAiLCJjb2xvci1icmFuZCI6ImNvbG9yLXR2LWJsdWUtNTAwIiwiY29sb3ItYnJhbmQtYWN0aXZlIjoiY29sb3ItdHYtYmx1ZS03MDAiLCJjb2xvci1icmFuZC1ob3ZlciI6ImNvbG9yLXR2LWJsdWUtNjAwIiwiY29sb3ItY2hhcnQtcGFnZS1iZyI6ImNvbG9yLWNvbGQtZ3JheS0xNTAiLCJjb2xvci1jb21tb24tdG9vbHRpcC1iZyI6ImNvbG9yLWNvbGQtZ3JheS04MDAiLCJjb2xvci1kYW5nZXIiOiJjb2xvci1yaXBlLXJlZC00MDAiLCJjb2xvci1kYW5nZXItaG92ZXIiOiJjb2xvci1yaXBlLXJlZC01MDAiLCJjb2xvci1kYW5nZXItYWN0aXZlIjoiY29sb3ItcmlwZS1yZWQtNjAwIiwiY29sb3ItZGVwdGhyZW5kZXJlci1zdHJva2Utc3R5bGUiOiJjb2xvci1jb2xkLWdyYXktMTAwIiwiY29sb3ItaGlnaGxpZ2h0LW5ldyI6ImNvbG9yLXRhbi1vcmFuZ2UtNTAiLCJjb2xvci1pbnB1dC1iZyI6ImNvbG9yLXdoaXRlIiwiY29sb3ItaW5wdXQtcHVibGlzaC1iZyI6ImNvbG9yLXdoaXRlIiwiY29sb3ItbGluayI6ImNvbG9yLXR2LWJsdWUtNTAwIiwiY29sb3ItbGluay1ob3ZlciI6ImNvbG9yLXR2LWJsdWUtNjAwIiwiY29sb3ItbGluay1hY3RpdmUiOiJjb2xvci10di1ibHVlLTcwMCIsImNvbG9yLWxpc3QtbnRoLWNoaWxkLWJnIjoiY29sb3ItY29sZC1ncmF5LTUwIiwiY29sb3ItcGFuZS1iZyI6ImNvbG9yLXdoaXRlIiwiY29sb3ItcGFuZS1zZWNvbmRhcnktYmciOiJjb2xvci1jb2xkLWdyYXktMTAwIiwiY29sb3ItcG9wdXAtbWVudS1pdGVtLWhvdmVyLWJnIjoiY29sb3ItY29sZC1ncmF5LTEwMCIsImNvbG9yLXBvcHVwLW1lbnUtc2VwYXJhdG9yIjoiY29sb3ItY29sZC1ncmF5LTE1MCIsImNvbG9yLXByaW1hcnktc3ltYm9sIjoiY29sb3Itc2t5LWJsdWUtNTAwIiwiY29sb3Itc2NyZWVuZXItZGVzY3JpcHRpb24iOiJjb2xvci1jb2xkLWdyYXktNjUwIiwiY29sb3Itc3VjY2VzcyI6ImNvbG9yLW1pbnR5LWdyZWVuLTUwMCIsImNvbG9yLXN1Y2Nlc3MtaG92ZXIiOiJjb2xvci1taW50eS1ncmVlbi02MDAiLCJjb2xvci1zdWNjZXNzLWFjdGl2ZSI6ImNvbG9yLW1pbnR5LWdyZWVuLTcwMCIsImNvbG9yLXRvb2xiYXItYnV0dG9uLXRleHQiOiJjb2xvci1jb2xkLWdyYXktOTAwIiwiY29sb3ItdG9vbGJhci1idXR0b24tdGV4dC1ob3ZlciI6ImNvbG9yLWNvbGQtZ3JheS05MDAiLCJjb2xvci10b29sYmFyLWJ1dHRvbi10ZXh0LWFjdGl2ZSI6ImNvbG9yLXR2LWJsdWUtNTAwIiwiY29sb3ItdG9vbGJhci1idXR0b24tdGV4dC1hY3RpdmUtaG92ZXIiOiJjb2xvci10di1ibHVlLTYwMCIsImNvbG9yLXRvb2xiYXItYnV0dG9uLWJhY2tncm91bmQtaG92ZXIiOiJjb2xvci1jb2xkLWdyYXktMTAwIiwiY29sb3ItdG9vbGJhci1idXR0b24tYmFja2dyb3VuZC1zZWNvbmRhcnktaG92ZXIiOiJjb2xvci1jb2xkLWdyYXktMTUwIiwiY29sb3ItdG9vbGJhci1idXR0b24tYmFja2dyb3VuZC1hY3RpdmUiOiJjb2xvci10di1ibHVlLTUwIiwiY29sb3ItdG9vbGJhci1idXR0b24tYmFja2dyb3VuZC1hY3RpdmUtaG92ZXIiOiJjb2xvci10di1ibHVlLTEwMCIsImNvbG9yLXRvb2xiYXItdG9nZ2xlLWJ1dHRvbi1iYWNrZ3JvdW5kLWFjdGl2ZSI6ImNvbG9yLXR2LWJsdWUtNTAwIiwiY29sb3ItdG9vbGJhci10b2dnbGUtYnV0dG9uLWJhY2tncm91bmQtYWN0aXZlLWhvdmVyIjoiY29sb3ItdHYtYmx1ZS02MDAiLCJjb2xvci10b29sYmFyLXRvZ2dsZS1idXR0b24taWNvbiI6ImNvbG9yLWNvbGQtZ3JheS0yMDAiLCJjb2xvci10b29sYmFyLWludGVyYWN0aXZlLWVsZW1lbnQtdGV4dC1ub3JtYWwiOiJjb2xvci1jb2xkLWdyYXktOTAwIiwiY29sb3ItdG9vbGJhci1vcGVuZWQtZWxlbWVudC1iZyI6ImNvbG9yLWNvbGQtZ3JheS0xMDAiLCJjb2xvci10b29sYmFyLWRpdmlkZXItYmFja2dyb3VuZCI6ImNvbG9yLWNvbGQtZ3JheS0xNTAiLCJjb2xvci1wb3B1cC1iYWNrZ3JvdW5kIjoiY29sb3Itd2hpdGUiLCJjb2xvci1wb3B1cC1lbGVtZW50LXRleHQiOiJjb2xvci1jb2xkLWdyYXktOTAwIiwiY29sb3ItcG9wdXAtZWxlbWVudC10ZXh0LWhvdmVyIjoiY29sb3ItY29sZC1ncmF5LTkwMCIsImNvbG9yLXBvcHVwLWVsZW1lbnQtYmFja2dyb3VuZC1ob3ZlciI6ImNvbG9yLWNvbGQtZ3JheS0xMDAiLCJjb2xvci1wb3B1cC1lbGVtZW50LXNlY29uZGFyeS10ZXh0IjoiY29sb3ItY29sZC1ncmF5LTUwMCIsImNvbG9yLXBvcHVwLWVsZW1lbnQtaGludC10ZXh0IjoiY29sb3ItY29sZC1ncmF5LTQwMCIsImNvbG9yLXBvcHVwLWVsZW1lbnQtdGV4dC1hY3RpdmUiOiJjb2xvci13aGl0ZSIsImNvbG9yLXBvcHVwLWVsZW1lbnQtYmFja2dyb3VuZC1hY3RpdmUiOiJjb2xvci10di1ibHVlLTUwMCIsImNvbG9yLXBvcHVwLWVsZW1lbnQtdG9vbGJveC10ZXh0IjoiY29sb3ItY29sZC1ncmF5LTUwMCIsImNvbG9yLXBvcHVwLWVsZW1lbnQtdG9vbGJveC10ZXh0LWhvdmVyIjoiY29sb3ItY29sZC1ncmF5LTkwMCIsImNvbG9yLXBvcHVwLWVsZW1lbnQtdG9vbGJveC10ZXh0LWFjdGl2ZS1ob3ZlciI6ImNvbG9yLXR2LWJsdWUtMjAwIiwiY29sb3ItcG9wdXAtZWxlbWVudC10b29sYm94LWJhY2tncm91bmQtaG92ZXIiOiJjb2xvci1jb2xkLWdyYXktMTUwIiwiY29sb3ItcG9wdXAtZWxlbWVudC10b29sYm94LWJhY2tncm91bmQtYWN0aXZlLWhvdmVyIjoiY29sb3ItdHYtYmx1ZS03MDAiLCJjb2xvci10b29sdGlwLWJnIjoiY29sb3ItY29sZC1ncmF5LTgwMCIsImNvbG9yLXR2LWRpYWxvZy1jYXB0aW9uIjoiY29sb3ItY29sZC1ncmF5LTY1MCIsImNvbG9yLXR2LWRyb3Bkb3duLWl0ZW0taG92ZXItYmciOiJjb2xvci1jb2xkLWdyYXktMTAwIiwiY29sb3ItdW5kZXJsaW5lZC10ZXh0IjoiY29sb3ItY29sZC1ncmF5LTU1MCIsImNvbG9yLXdpZGdldC1wYWdlcy1iZyI6ImNvbG9yLXdoaXRlIiwiY29sb3Itd2FybmluZyI6ImNvbG9yLXRhbi1vcmFuZ2UtNTAwIiwiY29sb3ItZ3Jvd2luZyI6ImNvbG9yLW1pbnR5LWdyZWVuLTUwMCIsImNvbG9yLWZhbGxpbmciOiJjb2xvci1yaXBlLXJlZC01MDAiLCJjb2xvci1mb3JleC1pY29uIjoiY29sb3ItY29sZC1ncmF5LTc1MCIsImNvbG9yLWxpc3QtaXRlbS1hY3RpdmUtYmciOiJjb2xvci10di1ibHVlLTQwMCIsImNvbG9yLWxpc3QtaXRlbS1ob3Zlci1iZyI6ImNvbG9yLXR2LWJsdWUtNTAiLCJjb2xvci1saXN0LWl0ZW0tdGV4dCI6ImNvbG9yLWNvbGQtZ3JheS04MDAiLCJjb2xvci1wcmljZS1heGlzLWxhYmVsLWJhY2siOiJjb2xvci1jb2xkLWdyYXktMTUwIiwiY29sb3ItcHJpY2UtYXhpcy1sYWJlbC10ZXh0IjoiY29sb3ItY29sZC1ncmF5LTY1MCIsImNvbG9yLXByaWNlLWF4aXMtZ2VhciI6ImNvbG9yLWNvbGQtZ3JheS05MDAiLCJjb2xvci1wcmljZS1heGlzLWdlYXItaG92ZXIiOiJjb2xvci1ibGFjayIsImNvbG9yLXByaWNlLWF4aXMtaGlnaGxpZ2h0IjoiY29sb3ItY29sZC1ncmF5LTE1MCIsImNvbG9yLWJpZCI6ImNvbG9yLXR2LWJsdWUtNTAwIiwiY29sb3ItYm9yZGVyIjoiY29sb3ItY29sZC1ncmF5LTE1MCIsImNvbG9yLWJvcmRlci1jaGF0LWZpZWxkcyI6ImNvbG9yLWNvbGQtZ3JheS0yNTAiLCJjb2xvci1ib3JkZXItaG92ZXIiOiJjb2xvci1jb2xkLWdyYXktMjUwIiwiY29sb3ItYnV0dG9uLWhvdmVyLWJnIjoiY29sb3ItY29sZC1ncmF5LTE1MCIsImNvbG9yLWRlcHRocmVuZGVyZXItZmlsbC1zdHlsZSI6ImNvbG9yLWNvbGQtZ3JheS02NTAiLCJjb2xvci1kaXNhYmxlZC1ib3JkZXItYW5kLWNvbG9yIjoiY29sb3ItY29sZC1ncmF5LTE1MCIsImNvbG9yLWRpc2FibGVkLWlucHV0IjoiY29sb3ItY29sZC1ncmF5LTE1MCIsImNvbG9yLWVtcHR5LWNvbnRhaW5lci1tZXNzYWdlIjoiY29sb3ItY29sZC1ncmF5LTU1MCIsImNvbG9yLWljb25zIjoiY29sb3ItY29sZC1ncmF5LTU1MCIsImNvbG9yLWlucHV0LXRleHRhcmVhLXJlYWRvbmx5IjoiY29sb3ItY29sZC1ncmF5LTY1MCIsImNvbG9yLWlucHV0LXBsYWNlaG9sZGVyLXRleHQiOiJjb2xvci1jb2xkLWdyYXktMzUwIiwiY29sb3ItaXRlbS1hY3RpdmUtYmx1ZSI6ImNvbG9yLXR2LWJsdWUtNTAiLCJjb2xvci1pdGVtLWhvdmVyLWFjdGl2ZS1iZyI6ImNvbG9yLXR2LWJsdWUtMTAwIiwiY29sb3ItaXRlbS1ob3Zlci1iZyI6ImNvbG9yLXR2LWJsdWUtMTAwIiwiY29sb3ItaXRlbS1ob3Zlci1ibHVlIjoiY29sb3ItdHYtYmx1ZS0xMDAiLCJjb2xvci1pdGVtLXNlbGVjdGVkLWJsdWUiOiJjb2xvci10di1ibHVlLTUwIiwiY29sb3ItaXRlbS1hY3RpdmUtdGV4dCI6ImNvbG9yLXdoaXRlIiwiY29sb3ItaXRlbS1hY3RpdmUtYmciOiJjb2xvci10di1ibHVlLTUwMCIsImNvbG9yLWxpc3QtaXRlbSI6ImNvbG9yLWNvbGQtZ3JheS01NTAiLCJjb2xvci1uZXdzLWhpZ2hsaWdodCI6ImNvbG9yLXR2LWJsdWUtMTAwIiwiY29sb3ItcGxhY2Vob2xkZXIiOiJjb2xvci1jb2xkLWdyYXktMzUwIiwiY29sb3Itcm93LWhvdmVyLWFjdGl2ZS1iZyI6ImNvbG9yLWNvbGQtZ3JheS0xMDAiLCJjb2xvci1zYi1zY3JvbGxiYXItYm9keS1iZyI6ImNvbG9yLWNvbGQtZ3JheS0yMDAiLCJjb2xvci1zZWN0aW9uLXNlcGFyYXRvci1ib3JkZXIiOiJjb2xvci1jb2xkLWdyYXktMzAwIiwiY29sb3Itc2VwYXJhdG9yLXRhYmxlLWNoYXQiOiJjb2xvci1jb2xkLWdyYXktMTUwIiwiY29sb3ItdGFnLWFjdGl2ZS1iZyI6ImNvbG9yLWNvbGQtZ3JheS0yMDAiLCJjb2xvci10YWctaG92ZXItYmciOiJjb2xvci1jb2xkLWdyYXktMTUwIiwiY29sb3ItdGV4dC1yZWd1bGFyIjoiY29sb3ItY29sZC1ncmF5LTcwMCIsImNvbG9yLXR2LWJ1dHRvbi1jaGVja2VkIjoiY29sb3ItY29sZC1ncmF5LTU1MCIsImNvbG9yLXNjcm9sbC1iZyI6ImNvbG9yLWNvbGQtZ3JheS00MDAiLCJjb2xvci1zY3JvbGwtYm9yZGVyIjoiY29sb3ItY29sZC1ncmF5LTEwMCIsImNvbG9yLXdpZGdldC1ib3JkZXIiOiJjb2xvci1jb2xkLWdyYXktMTAwIiwiY29sb3Itc2Nyb2xsLWJ1dHRvbnMtYXJyb3ciOiJjb2xvci13aGl0ZSIsImNvbG9yLWNvbnRyb2wtaW50ZW50LWRlZmF1bHQiOiJjb2xvci1jb2xkLWdyYXktMjAwIiwiY29sb3ItY29udHJvbC1pbnRlbnQtc3VjY2VzcyI6ImNvbG9yLW1pbnR5LWdyZWVuLTUwMCIsImNvbG9yLWNvbnRyb2wtaW50ZW50LXByaW1hcnkiOiJjb2xvci10di1ibHVlLTUwMCIsImNvbG9yLWNvbnRyb2wtaW50ZW50LXdhcm5pbmciOiJjb2xvci10YW4tb3JhbmdlLTUwMCIsImNvbG9yLWNvbnRyb2wtaW50ZW50LWRhbmdlciI6ImNvbG9yLXJpcGUtcmVkLTUwMCIsImNvbG9yLWdvdG8tbGFiZWwtYmFja2dyb3VuZCI6ImNvbG9yLWNvbGQtZ3JheS04MDAiLCJjb2xvci1wcmUtbWFya2V0IjoiY29sb3ItdGFuLW9yYW5nZS02MDAiLCJjb2xvci1wb3N0LW1hcmtldCI6ImNvbG9yLXR2LWJsdWUtNTAwIiwiY29sb3Itbm90YWNjdXJhdGUtbW9kZSI6ImNvbG9yLWJlcnJ5LXBpbmstNjAwIiwiY29sb3ItZGVsYXktbW9kZSI6ImNvbG9yLXRhbi1vcmFuZ2UtNzAwIiwiY29sb3ItZGVsYXktbW9kZS1iZyI6ImNvbG9yLXRhbi1vcmFuZ2UtNDAwIiwiY29sb3ItbGlzdC1pdGVtLWJnLWhpZ2hsaWdodGVkIjoiY29sb3ItdHYtYmx1ZS01MCIsImNvbG9yLWxpc3QtaXRlbS1iZy1zZWxlY3RlZCI6ImNvbG9yLXR2LWJsdWUtMTAwIiwiY29sb3ItbGlzdC1pdGVtLWJnLWhpZ2hsaWdodGVkLWhvdmVyIjoiY29sb3ItdHYtYmx1ZS0xMDAiLCJjb2xvci1saXN0LWl0ZW0tYmctc2VsZWN0ZWQtaG92ZXIiOiJjb2xvci10di1ibHVlLTIwMCIsImNvbG9yLXNjcmVlbmVyLWhlYWRlci1iZyI6ImNvbG9yLXdoaXRlIiwiY29sb3Itc2NyZWVuZXItaGVhZGVyLWJnLWhvdmVyIjoiY29sb3ItY29sZC1ncmF5LTEwMCIsImNvbG9yLW1hcmtlci1mbGFnZ2VkIjoiY29sb3ItcmlwZS1yZWQtNDAwIiwiY29sb3ItbWFya2VyLWZsYWdnZWQtaG92ZXJlZCI6ImNvbG9yLXJpcGUtcmVkLTYwMCIsImNvbG9yLWFzayI6ImNvbG9yLXJpcGUtcmVkLTQwMCIsImNvbG9yLXNlbGwiOiJjb2xvci1yaXBlLXJlZC00MDAiLCJjb2xvci1idXkiOiJjb2xvci10di1ibHVlLTUwMCIsImNvbG9yLW5ldXRyYWwiOiJjb2xvci1jb2xkLWdyYXktNTUwIiwiY29sb3ItcHJvIjoiY29sb3ItbWludHktZ3JlZW4tNDAwIiwiY29sb3ItcHJvLWhvdmVyIjoiY29sb3ItbWludHktZ3JlZW4tNjAwIiwiY29sb3ItcHJvLXBsdXMiOiJjb2xvci10di1ibHVlLTUwMCIsImNvbG9yLXByby1wbHVzLWhvdmVyIjoiY29sb3ItdHYtYmx1ZS02MDAiLCJjb2xvci1wcm8tcHJlbWl1bSI6ImNvbG9yLXRhbi1vcmFuZ2UtNTAwIiwiY29sb3ItcHJvLXByZW1pdW0taG92ZXIiOiJjb2xvci10YW4tb3JhbmdlLTcwMCIsImNvbG9yLXRyaWFsIjoiY29sb3ItY29sZC1ncmF5LTU1MCIsImNvbG9yLXRyaWFsLWhvdmVyIjoiY29sb3ItY29sZC1ncmF5LTU1MCIsImNvbG9yLW1vZCI6ImNvbG9yLXJpcGUtcmVkLTQwMCIsImNvbG9yLW1vZC1ob3ZlciI6ImNvbG9yLXJpcGUtcmVkLTYwMCIsImNvbG9yLWFkIjoiY29sb3ItdGFuLW9yYW5nZS01MDAiLCJjb2xvci1icm9rZXItZmVhdHVyZWQiOiJjb2xvci1taW50eS1ncmVlbi00MDAiLCJjb2xvci1icm9rZXItZmVhdHVyZWQtaG92ZXIiOiJjb2xvci1taW50eS1ncmVlbi02MDAiLCJjb2xvci1hbGVydC1zdGF0dXMtYWN0aXZlIjoiY29sb3ItbWludHktZ3JlZW4tNTAwIiwiY29sb3ItYWxlcnQtc3RhdHVzLXN0b3BwZWQiOiJjb2xvci1yaXBlLXJlZC01MDAiLCJjb2xvci1hbGVydC1zdGF0dXMtdHJpZ2dlcmVkIjoiY29sb3ItdGFuLW9yYW5nZS01MDAiLCJjb2xvci1vdmVybGF5IjoiY29sb3ItY29sZC1ncmF5LTQwMCIsImNvbG9yLXNlYXJjaC1idXR0b24taG92ZXIiOiJjb2xvci1jb2xkLWdyYXktMTUwIiwiY29sb3ItYm9vc3QtYnV0dG9uLWNvbnRlbnQtc2VsZWN0ZWQiOiJjb2xvci10di1ibHVlLTYwMCIsImNvbG9yLWJvb3N0LWJ1dHRvbi1jb250ZW50LWhvdmVyIjoiY29sb3ItY29sZC1ncmF5LTkwMCIsImNvbG9yLWJvb3N0LWJ1dHRvbi1iZy1ob3ZlciI6ImNvbG9yLWNvbGQtZ3JheS0xNTAiLCJjb2xvci1ib29zdC1idXR0b24tYm9yZGVyLWhvdmVyIjoiY29sb3ItY29sZC1ncmF5LTE1MCIsImNvbG9yLWJvb3N0LWJ1dHRvbi1ib3JkZXItZGVmYXVsdCI6ImNvbG9yLWNvbGQtZ3JheS0xNTAiLCJjb2xvci1jb21tb24tdG9vbHRpcC10ZXh0IjoiY29sb3ItY29sZC1ncmF5LTEwMCIsImNvbG9yLXJlcGxheS1kYXRhLW1vZGUiOiJjb2xvci1yaXBlLXJlZC00MDAiLCJjb2xvci1sZWdhY3ktc3VjY2VzcyI6ImNvbG9yLW1pbnR5LWdyZWVuLTMwMCIsImNvbG9yLWNvbGxhcHNlLXRhYnMtYm9yZGVyIjoiY29sb3ItY29sZC1ncmF5LTEwMCIsImNvbG9yLXNpdGUtd2lkZ2V0LWhvdmVyIjoiY29sb3ItY29sZC1ncmF5LTUwIiwiY29sb3ItYXR0ZW50aW9uIjoiY29sb3ItYmFuYW5hLXllbGxvdy03MDAiLCJjb2xvci14LXR3aXR0ZXItY29udGVudCI6ImNvbG9yLWNvbGQtZ3JheS05MDAiLCJjb2xvci1jYXJkLWJvcmRlciI6ImNvbG9yLWNvbGQtZ3JheS0xNTAiLCJjb2xvci1jYXJkLWJvcmRlci1ob3ZlciI6ImNvbG9yLWNvbGQtZ3JheS0zMDAiLCJjb2xvci1iYWNrZ3JvdW5kLXNwZWNpYWwtcHJpbWFyeSI6ImNvbG9yLXdoaXRlIiwiY29sb3Itc3Ryb2tlLXNwZWNpYWwtcHJpbWFyeSI6ImNvbG9yLWNvbGQtZ3JheS0xNTAiLCJjb2xvci1zZWxlY3Rpb24tYmciOiJjb2xvci10di1ibHVlLTEwMCIsImNvbG9yLWRlZmF1bHQtZ3JheSI6ImNvbG9yLWNvbGQtZ3JheS01NTAiLCJjb2xvci1mZWF0dXJlZC1icm9rZXItYmFkZ2UtYmciOiJjb2xvci1jb2xkLWdyYXktOTAwIiwiY29sb3ItZmVhdHVyZWQtYnJva2VyLWJhZGdlLWJnLWhvdmVyIjoiY29sb3ItY29sZC1ncmF5LTgwMCIsImNvbG9yLWZlYXR1cmVkLWJyb2tlci1iYWRnZS10ZXh0IjoiY29sb3Itd2hpdGUifScpCn19XSk7"}},"time_used":4,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":4,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/71528.7c6c08c8eed01d841052.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.531Z","timestamp":1785148034531,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/71528.7c6c08c8eed01d841052.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\ncontent-type: text/css; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a58ab11-cf\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Thu, 16 Jul 2026 09:57:37 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/16/2026 11:03:22\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: aac0aa3e5871e208cd8de5d6f3dc45f3\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":207,"size_decoded":927,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with no line terminators","md5":"59c821709296397ada51b9c216f5c7bb","sha1":"960e0c054e516480ef63b30288834dbdf74de433","sha256":"12cab853e535a7f334166f97b48646a814935d98d7b080bc94ccddbae1aa0184","sha512":"57476d65b403a65d401ed958edb75bb17b0f5611d395f8cc073f2884ad790a835be959c08ca96a00bccb24ead3fc3ed5d11bac90568c95998b075d2994571bf1","ssdeep":"","tlshash":"9fd0a7a445e26fa8801294f217810561b008caa552634ecb55139a1ed7c568774b5095","first_seen":"2026-07-19T14:58:49.097554Z","last_seen":"2026-07-27T12:51:16.033139Z","times_seen":92,"resource_available":false,"data":"LnJpZ2h0LU9JQmtrM2dLe2FsaWduLWl0ZW1zOmNlbnRlcjtjb2xvcjp2YXIoLS1jb2xvci1jb250ZW50LXByaW1hcnktbmV1dHJhbCk7ZGlzcGxheTpmbGV4O2dhcDo0cHg7bWFyZ2luLWlubGluZS1lbmQ6LTRweH0uYXJyb3ctT0lCa2szZ0t7aGVpZ2h0OjE4cHg7d2lkdGg6MThweH0uYXJyb3ctT0lCa2szZ0s6ZGlyKHJ0bCl7dHJhbnNmb3JtOnNjYWxlWCgtMSl9"}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/44780.79d2051d3b84caeab4e6.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.851Z","timestamp":1785148034851,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/44780.79d2051d3b84caeab4e6.js HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a61b1a8-5f0f\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Thu, 23 Jul 2026 06:16:08 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/23/2026 10:21:28\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: bafbd54774fa09e65d0abde3a2938a4e\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":24335,"size_decoded":9859,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (3070)","md5":"88a58e6cc844e88f7d0de6e7e139d713","sha1":"4edbad9be5d86d504d6d71cca4f4868d04246769","sha256":"563bd980b55bc509d2a955dbf095609be8562096e91a6a13a9174f512daedeeb","sha512":"cd3886500bba9f28852814c2ff53c83a2ba4b750cc8dd0366d599a672e4418f8039d6d6a35c31ac4946cba7024da71090595922cd970deb2e7e74c3249bc4682","ssdeep":"384:tgN+e7/k4PjlL5nUhv+sX/TWHYHn32z+VdflhNDMfpStwr:4gz/TW4H32z+vfJMBB","tlshash":"f1b2a5d9b1d1b0641be32461c23f200ef37b7889285f95a0b2a1e9d43cbda9e4167f5d","first_seen":"2026-07-27T03:26:08.921826Z","last_seen":"2026-07-27T10:28:13.951473Z","times_seen":7,"resource_available":true,"data":"KHNlbGYud2VicGFja0NodW5rdHJhZGluZ3ZpZXc9c2VsZi53ZWJwYWNrQ2h1bmt0cmFkaW5ndmlld3x8W10pLnB1c2goW1s0NDc4MF0sezgxOTU5MSh0LG4sZSl7InVzZSBzdHJpY3QiO2UuZChuLHtjcmVhdGVCcm93c2VySGlzdG9yeTooKT0+TyxjcmVhdGVIYXNoSGlzdG9yeTooKT0+VCxjcmVhdGVMb2NhdGlvbjooKT0+dixjcmVhdGVNZW1vcnlIaXN0b3J5OigpPT5NLGNyZWF0ZVBhdGg6KCk9PmQsbG9jYXRpb25zQXJlRXF1YWw6KCk9Pnl9KTt2YXIgcj1lKDY0NDMyMCk7ZnVuY3Rpb24gbyh0KXtyZXR1cm4iLyI9PT10LmNoYXJBdCgwKX1mdW5jdGlvbiBpKHQsbil7Zm9yKHZhciBlPW4scj1lKzEsbz10Lmxlbmd0aDtyPG87ZSs9MSxyKz0xKXRbZV09dFtyXTt0LnBvcCgpfWNvbnN0IGE9ZnVuY3Rpb24odCxuKXt2b2lkIDA9PT1uJiYobj0iIik7dmFyIGUscj10JiZ0LnNwbGl0KCIvIil8fFtdLGE9biYmbi5zcGxpdCgiLyIpfHxbXSxjPXQmJm8odCksdT1uJiZvKG4pLHM9Y3x8dTtpZih0JiZvKHQpP2E9cjpyLmxlbmd0aCYmKGEucG9wKCksYT1hLmNvbmNhdChyKSksIWEubGVuZ3RoKXJldHVybiIvIjtpZihhLmxlbmd0aCl7dmFyIGY9YVthLmxlbmd0aC0xXTtlPSIuIj09PWZ8fCIuLiI9PT1mfHwiIj09PWZ9ZWxzZSBlPSExO2Zvcih2YXIgbD0wLHA9YS5sZW5ndGg7cD49MDtwLS0pe3ZhciBoPWFbcF07Ii4iPT09aD9pKGEscCk6Ii4uIj09PWg/KGkoYSxwKSxsKyspOmwmJihpKGEscCksbC0tKX1pZighcylmb3IoO2wtLTtsKWEudW5zaGlmdCgiLi4iKTshc3x8IiI9PT1hWzBdfHxhWzBdJiZvKGFbMF0pfHxhLnVuc2hpZnQoIiIpO3ZhciBkPWEuam9pbigiLyIpO3JldHVybiBlJiYiLyIhPT1kLnN1YnN0cigtMSkmJihkKz0iLyIpLGR9O2Z1bmN0aW9uIGModCl7cmV0dXJuIHQudmFsdWVPZj90LnZhbHVlT2YoKTpPYmplY3QucHJvdG90eXBlLnZhbHVlT2YuY2FsbCh0KX1jb25zdCB1PWZ1bmN0aW9uIHQobixlKXtpZihuPT09ZSlyZXR1cm4hMDtpZihudWxsPT1ufHxudWxsPT1lKXJldHVybiExO2lmKEFycmF5LmlzQXJyYXkobikpcmV0dXJuIEFycmF5LmlzQXJyYXkoZSkmJm4ubGVuZ3RoPT09ZS5sZW5ndGgmJm4uZXZlcnkoKGZ1bmN0aW9uKG4scil7cmV0dXJuIHQobixlW3JdKX0pKTtpZigib2JqZWN0Ij09dHlwZW9mIG58fCJvYmplY3QiPT10eXBlb2YgZSl7dmFyIHI9YyhuKSxvPWMoZSk7cmV0dXJuIHIhPT1ufHxvIT09ZT90KHIsbyk6T2JqZWN0LmtleXMoT2JqZWN0LmFzc2lnbih7fSxuLGUpKS5ldmVyeSgoZnVuY3Rpb24ocil7cmV0dXJuIHQobltyXSxlW3JdKX0pKX1yZXR1cm4hMX07aWYoL14oNzk3OTV8OTQzODkpJC8udGVzdChlLmopKXZhciBzPWUoMjUzODUpO2Z1bmN0aW9uIGYodCl7cmV0dXJuIi8iPT09dC5jaGFyQXQoMCk/dDoiLyIrdH1mdW5jdGlvbiBsKHQpe3JldHVybiIvIj09PXQuY2hhckF0KDApP3Quc3Vic3RyKDEpOnR9ZnVuY3Rpb24gcCh0LG4pe3JldHVybiBmdW5jdGlvbih0LG4pe3JldHVybiAwPT09dC50b0xvd2VyQ2FzZSgpLmluZGV4T2Yobi50b0xvd2VyQ2FzZSgpKSYmLTEhPT0iLz8jIi5pbmRleE9mKHQuY2hhckF0KG4ubGVuZ3RoKSl9KHQsbik/dC5zdWJzdHIobi5sZW5ndGgpOnR9ZnVuY3Rpb24gaCh0KXtyZXR1cm4iLyI9PT10LmNoYXJBdCh0Lmxlbmd0aC0xKT90LnNsaWNlKDAsLTEpOnR9ZnVuY3Rpb24gZCh0KXt2YXIgbj10LnBhdGhuYW1lLGU9dC5zZWFyY2gscj10Lmhhc2gsbz1ufHwiLyI7cmV0dXJuIGUmJiI/IiE9PWUmJihvKz0iPyI9PT1lLmNoYXJBdCgwKT9lOiI/IitlKSxyJiYiIyIhPT1yJiYobys9IiMiPT09ci5jaGFyQXQoMCk/cjoiIyIrciksb31mdW5jdGlvbiB2KHQsbixlLG8pe3ZhciBpOyJzdHJpbmciPT10eXBlb2YgdD8oaT1mdW5jdGlvbih0KXt2YXIgbj10fHwiLyIsZT0iIixyPSIiLG89bi5pbmRleE9mKCIjIik7LTEhPT1vJiYocj1uLnN1YnN0cihvKSxuPW4uc3Vic3RyKDAsbykpO3ZhciBpPW4uaW5kZXhPZigiPyIpO3JldHVybi0xIT09aSYmKGU9bi5zdWJzdHIoaSksbj1uLnN1YnN0cigwLGkpKSx7cGF0aG5hbWU6bixzZWFyY2g6Ij8iPT09ZT8iIjplLGhhc2g6IiMiPT09cj8iIjpyfX0odCksaS5zdGF0ZT1uKToodm9pZCAwPT09KGk9KDAsci5kZWZhdWx0KSh7fSx0KSkucGF0aG5hbWUmJihpLnBhdGhuYW1lPSIiKSxpLnNlYXJjaD8iPyIhPT1pLnNlYXJjaC5jaGFyQXQoMCkmJihpLnNlYXJjaD0iPyIraS5zZWFyY2gpOmkuc2VhcmNoPSIiLGkuaGFzaD8iIyIhPT1pLmhhc2guY2hhckF0KDApJiYoaS5oYXNoPSIjIitpLmhhc2gpOmkuaGFzaD0iIix2b2lkIDAhPT1uJiZ2b2lkIDA9PT1pLnN0YXRlJiYoaS5zdGF0ZT1uKSk7dHJ5e2kucGF0aG5hbWU9ZGVjb2RlVVJJKGkucGF0aG5hbWUpfWNhdGNoKHQpe3Rocm93IHQgaW5zdGFuY2VvZiBVUklFcnJvcj9uZXcgVVJJRXJyb3IoJ1BhdGhuYW1lICInK2kucGF0aG5hbWUrJyIgY291bGQgbm90IGJlIGRlY29kZWQuIFRoaXMgaXMgbGlrZWx5IGNhdXNlZCBieSBhbiBpbnZhbGlkIHBlcmNlbnQtZW5jb2RpbmcuJyk6dH1yZXR1cm4gZSYmKGkua2V5PWUpLG8/aS5wYXRobmFtZT8iLyIhPT1pLnBhdGhuYW1lLmNoYXJBdCgwKSYmKGkucGF0aG5hbWU9YShpLnBhdGhuYW1lLG8ucGF0aG5hbWUpKTppLnBhdGhuYW1lPW8ucGF0aG5hbWU6aS5wYXRobmFtZXx8KGkucGF0aG5hbWU9Ii8iKSxpfWZ1bmN0aW9uIHkodCxuKXtyZXR1cm4gdC5wYXRobmFtZT09PW4ucGF0aG5hbWUmJnQuc2VhcmNoPT09bi5zZWFyY2gmJnQuaGFzaD09PW4uaGFzaCYmdC5rZXk9PT1uLmtleSYmdSh0LnN0YXRlLG4uc3RhdGUpfWZ1bmN0aW9uIG0oKXt2YXIgdD1udWxsO3ZhciBuPVtdO3JldHVybntzZXRQcm9tcHQ6ZnVuY3Rpb24obil7cmV0dXJuIHQ9bixmdW5jdGlvbigpe3Q9PT1uJiYodD1udWxsKX19LGNvbmZpcm1UcmFuc2l0aW9uVG86ZnVuY3Rpb24obixlLHIsbyl7aWYobnVsbCE9dCl7dmFyIGk9ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dChuLGUpOnQ7InN0cmluZyI9PXR5cGVvZiBpPyJmdW5jdGlvbiI9PXR5cGVvZiByP3IoaSxvKTpvKCEwKTpvKCExIT09aSl9ZWxzZSBvKCEwKX0sCmFwcGVuZExpc3RlbmVyOmZ1bmN0aW9uKHQpe3ZhciBlPSEwO2Z1bmN0aW9uIHIoKXtlJiZ0LmFwcGx5KHZvaWQgMCxhcmd1bWVudHMpfXJldHVybiBuLnB1c2gociksZnVuY3Rpb24oKXtlPSExLG49bi5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiB0IT09cn0pKX19LG5vdGlmeUxpc3RlbmVyczpmdW5jdGlvbigpe2Zvcih2YXIgdD1hcmd1bWVudHMubGVuZ3RoLGU9bmV3IEFycmF5KHQpLHI9MDtyPHQ7cisrKWVbcl09YXJndW1lbnRzW3JdO24uZm9yRWFjaCgoZnVuY3Rpb24odCl7cmV0dXJuIHQuYXBwbHkodm9pZCAwLGUpfSkpfX19dmFyIGc9ISgidW5kZWZpbmVkIj09dHlwZW9mIHdpbmRvd3x8IXdpbmRvdy5kb2N1bWVudHx8IXdpbmRvdy5kb2N1bWVudC5jcmVhdGVFbGVtZW50KTtmdW5jdGlvbiB3KHQsbil7bih3aW5kb3cuY29uZmlybSh0KSl9dmFyIHg9InBvcHN0YXRlIixiPSJoYXNoY2hhbmdlIjtmdW5jdGlvbiBQKCl7dHJ5e3JldHVybiB3aW5kb3cuaGlzdG9yeS5zdGF0ZXx8e319Y2F0Y2godCl7cmV0dXJue319fWZ1bmN0aW9uIE8odCl7dm9pZCAwPT09dCYmKHQ9e30pLGd8fCgwLHMuZGVmYXVsdCkoITEpO3ZhciBuLGU9d2luZG93Lmhpc3Rvcnksbz0oLTE9PT0obj13aW5kb3cubmF2aWdhdG9yLnVzZXJBZ2VudCkuaW5kZXhPZigiQW5kcm9pZCAyLiIpJiYtMT09PW4uaW5kZXhPZigiQW5kcm9pZCA0LjAiKXx8LTE9PT1uLmluZGV4T2YoIk1vYmlsZSBTYWZhcmkiKXx8LTEhPT1uLmluZGV4T2YoIkNocm9tZSIpfHwtMSE9PW4uaW5kZXhPZigiV2luZG93cyBQaG9uZSIpKSYmd2luZG93Lmhpc3RvcnkmJiJwdXNoU3RhdGUiaW4gd2luZG93Lmhpc3RvcnksaT0hKC0xPT09d2luZG93Lm5hdmlnYXRvci51c2VyQWdlbnQuaW5kZXhPZigiVHJpZGVudCIpKSxhPXQsYz1hLmZvcmNlUmVmcmVzaCx1PXZvaWQgMCE9PWMmJmMsbD1hLmdldFVzZXJDb25maXJtYXRpb24seT12b2lkIDA9PT1sP3c6bCxPPWEua2V5TGVuZ3RoLEU9dm9pZCAwPT09Tz82Ok8sQz10LmJhc2VuYW1lP2goZih0LmJhc2VuYW1lKSk6IiI7ZnVuY3Rpb24gUyh0KXt2YXIgbj10fHx7fSxlPW4ua2V5LHI9bi5zdGF0ZSxvPXdpbmRvdy5sb2NhdGlvbixpPW8ucGF0aG5hbWUrby5zZWFyY2grby5oYXNoO3JldHVybiBDJiYoaT1wKGksQykpLHYoaSxyLGUpfWZ1bmN0aW9uIEEoKXtyZXR1cm4gTWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyKDIsRSl9dmFyIGs9bSgpO2Z1bmN0aW9uIFQodCl7KDAsci5kZWZhdWx0KShELHQpLEQubGVuZ3RoPWUubGVuZ3RoLGsubm90aWZ5TGlzdGVuZXJzKEQubG9jYXRpb24sRC5hY3Rpb24pfWZ1bmN0aW9uICQodCl7KGZ1bmN0aW9uKHQpe3JldHVybiB2b2lkIDA9PT10LnN0YXRlJiYtMT09PW5hdmlnYXRvci51c2VyQWdlbnQuaW5kZXhPZigiQ3JpT1MiKX0pKHQpfHxSKFModC5zdGF0ZSkpfWZ1bmN0aW9uIE0oKXtSKFMoUCgpKSl9dmFyIEw9ITE7ZnVuY3Rpb24gUih0KXtpZihMKUw9ITEsVCgpO2Vsc2V7ay5jb25maXJtVHJhbnNpdGlvblRvKHQsIlBPUCIseSwoZnVuY3Rpb24obil7bj9UKHthY3Rpb246IlBPUCIsbG9jYXRpb246dH0pOmZ1bmN0aW9uKHQpe3ZhciBuPUQubG9jYXRpb24sZT1fLmluZGV4T2Yobi5rZXkpOy0xPT09ZSYmKGU9MCk7dmFyIHI9Xy5pbmRleE9mKHQua2V5KTstMT09PXImJihyPTApO3ZhciBvPWUtcjtvJiYoTD0hMCxIKG8pKX0odCl9KSl9fXZhciBqPVMoUCgpKSxfPVtqLmtleV07ZnVuY3Rpb24gVSh0KXtyZXR1cm4gQytkKHQpfWZ1bmN0aW9uIEgodCl7ZS5nbyh0KX12YXIgRj0wO2Z1bmN0aW9uIEkodCl7MT09PShGKz10KSYmMT09PXQ/KHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKHgsJCksaSYmd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoYixNKSk6MD09PUYmJih3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcih4LCQpLGkmJndpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKGIsTSkpfXZhciBCPSExO3ZhciBEPXtsZW5ndGg6ZS5sZW5ndGgsYWN0aW9uOiJQT1AiLGxvY2F0aW9uOmosY3JlYXRlSHJlZjpVLHB1c2g6ZnVuY3Rpb24odCxuKXt2YXIgcj0iUFVTSCIsaT12KHQsbixBKCksRC5sb2NhdGlvbik7ay5jb25maXJtVHJhbnNpdGlvblRvKGkscix5LChmdW5jdGlvbih0KXtpZih0KXt2YXIgbj1VKGkpLGE9aS5rZXksYz1pLnN0YXRlO2lmKG8paWYoZS5wdXNoU3RhdGUoe2tleTphLHN0YXRlOmN9LG51bGwsbiksdSl3aW5kb3cubG9jYXRpb24uaHJlZj1uO2Vsc2V7dmFyIHM9Xy5pbmRleE9mKEQubG9jYXRpb24ua2V5KSxmPV8uc2xpY2UoMCxzKzEpO2YucHVzaChpLmtleSksXz1mLFQoe2FjdGlvbjpyLGxvY2F0aW9uOml9KX1lbHNlIHdpbmRvdy5sb2NhdGlvbi5ocmVmPW59fSkpfSxyZXBsYWNlOmZ1bmN0aW9uKHQsbil7dmFyIHI9IlJFUExBQ0UiLGk9dih0LG4sQSgpLEQubG9jYXRpb24pO2suY29uZmlybVRyYW5zaXRpb25UbyhpLHIseSwoZnVuY3Rpb24odCl7aWYodCl7dmFyIG49VShpKSxhPWkua2V5LGM9aS5zdGF0ZTtpZihvKWlmKGUucmVwbGFjZVN0YXRlKHtrZXk6YSxzdGF0ZTpjfSxudWxsLG4pLHUpd2luZG93LmxvY2F0aW9uLnJlcGxhY2Uobik7ZWxzZXt2YXIgcz1fLmluZGV4T2YoRC5sb2NhdGlvbi5rZXkpOy0xIT09cyYmKF9bc109aS5rZXkpLFQoe2FjdGlvbjpyLGxvY2F0aW9uOml9KX1lbHNlIHdpbmRvdy5sb2NhdGlvbi5yZXBsYWNlKG4pfX0pKX0sZ286SCxnb0JhY2s6ZnVuY3Rpb24oKXtIKC0xKX0sZ29Gb3J3YXJkOmZ1bmN0aW9uKCl7SCgxKX0sYmxvY2s6ZnVuY3Rpb24odCl7dm9pZCAwPT09dCYmKHQ9ITEpO3ZhciBuPWsuc2V0UHJvbXB0KHQpO3JldHVybiBCfHwoSSgxKSxCPSEwKSxmdW5jdGlvbigpe3JldHVybiBCJiYoQj0hMSxJKC0xKSksbigpfX0sbGlzdGVuOmZ1bmN0aW9uKHQpe3ZhciBuPWsuYXBwZW5kTGlzdGVuZXIodCk7cmV0dXJuIEkoMSksZnVuY3Rpb24oKXtJKC0xKSxuKCl9fX07cmV0dXJuIER9dmFyIEU9Imhhc2hjaGFuZ2UiLEM9e2hhc2hiYW5nOntlbmNvZGVQYXRoOmZ1bmN0aW9uKHQpe3JldHVybiIhIj09PXQuY2hhckF0KDApP3Q6IiEvIitsKHQpfSxkZWNvZGVQYXRoOmZ1bmN0aW9uKHQpewpyZXR1cm4iISI9PT10LmNoYXJBdCgwKT90LnN1YnN0cigxKTp0fX0sbm9zbGFzaDp7ZW5jb2RlUGF0aDpsLGRlY29kZVBhdGg6Zn0sc2xhc2g6e2VuY29kZVBhdGg6ZixkZWNvZGVQYXRoOmZ9fTtmdW5jdGlvbiBTKHQpe3ZhciBuPXQuaW5kZXhPZigiIyIpO3JldHVybi0xPT09bj90OnQuc2xpY2UoMCxuKX1mdW5jdGlvbiBBKCl7dmFyIHQ9d2luZG93LmxvY2F0aW9uLmhyZWYsbj10LmluZGV4T2YoIiMiKTtyZXR1cm4tMT09PW4/IiI6dC5zdWJzdHJpbmcobisxKX1mdW5jdGlvbiBrKHQpe3dpbmRvdy5sb2NhdGlvbi5yZXBsYWNlKFMod2luZG93LmxvY2F0aW9uLmhyZWYpKyIjIit0KX1mdW5jdGlvbiBUKHQpe3ZvaWQgMD09PXQmJih0PXt9KSxnfHwoMCxzLmRlZmF1bHQpKCExKTt2YXIgbj13aW5kb3cuaGlzdG9yeSxlPSh3aW5kb3cubmF2aWdhdG9yLnVzZXJBZ2VudC5pbmRleE9mKCJGaXJlZm94IiksdCksbz1lLmdldFVzZXJDb25maXJtYXRpb24saT12b2lkIDA9PT1vP3c6byxhPWUuaGFzaFR5cGUsYz12b2lkIDA9PT1hPyJzbGFzaCI6YSx1PXQuYmFzZW5hbWU/aChmKHQuYmFzZW5hbWUpKToiIixsPUNbY10seT1sLmVuY29kZVBhdGgseD1sLmRlY29kZVBhdGg7ZnVuY3Rpb24gYigpe3ZhciB0PXgoQSgpKTtyZXR1cm4gdSYmKHQ9cCh0LHUpKSx2KHQpfXZhciBQPW0oKTtmdW5jdGlvbiBPKHQpeygwLHIuZGVmYXVsdCkoQix0KSxCLmxlbmd0aD1uLmxlbmd0aCxQLm5vdGlmeUxpc3RlbmVycyhCLmxvY2F0aW9uLEIuYWN0aW9uKX12YXIgVD0hMSwkPW51bGw7ZnVuY3Rpb24gTSgpe3ZhciB0LG4sZT1BKCkscj15KGUpO2lmKGUhPT1yKWsocik7ZWxzZXt2YXIgbz1iKCksYT1CLmxvY2F0aW9uO2lmKCFUJiYobj1vLCh0PWEpLnBhdGhuYW1lPT09bi5wYXRobmFtZSYmdC5zZWFyY2g9PT1uLnNlYXJjaCYmdC5oYXNoPT09bi5oYXNoKSlyZXR1cm47aWYoJD09PWQobykpcmV0dXJuOyQ9bnVsbCxmdW5jdGlvbih0KXtpZihUKVQ9ITEsTygpO2Vsc2V7dmFyIG49IlBPUCI7UC5jb25maXJtVHJhbnNpdGlvblRvKHQsbixpLChmdW5jdGlvbihlKXtlP08oe2FjdGlvbjpuLGxvY2F0aW9uOnR9KTpmdW5jdGlvbih0KXt2YXIgbj1CLmxvY2F0aW9uLGU9Xy5sYXN0SW5kZXhPZihkKG4pKTstMT09PWUmJihlPTApO3ZhciByPV8ubGFzdEluZGV4T2YoZCh0KSk7LTE9PT1yJiYocj0wKTt2YXIgbz1lLXI7byYmKFQ9ITAsVShvKSl9KHQpfSkpfX0obyl9fXZhciBMPUEoKSxSPXkoTCk7TCE9PVImJmsoUik7dmFyIGo9YigpLF89W2QoaildO2Z1bmN0aW9uIFUodCl7bi5nbyh0KX12YXIgSD0wO2Z1bmN0aW9uIEYodCl7MT09PShIKz10KSYmMT09PXQ/d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoRSxNKTowPT09SCYmd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoRSxNKX12YXIgST0hMTt2YXIgQj17bGVuZ3RoOm4ubGVuZ3RoLGFjdGlvbjoiUE9QIixsb2NhdGlvbjpqLGNyZWF0ZUhyZWY6ZnVuY3Rpb24odCl7dmFyIG49ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiYmFzZSIpLGU9IiI7cmV0dXJuIG4mJm4uZ2V0QXR0cmlidXRlKCJocmVmIikmJihlPVMod2luZG93LmxvY2F0aW9uLmhyZWYpKSxlKyIjIit5KHUrZCh0KSl9LHB1c2g6ZnVuY3Rpb24odCxuKXt2YXIgZT0iUFVTSCIscj12KHQsdm9pZCAwLHZvaWQgMCxCLmxvY2F0aW9uKTtQLmNvbmZpcm1UcmFuc2l0aW9uVG8ocixlLGksKGZ1bmN0aW9uKHQpe2lmKHQpe3ZhciBuPWQociksbz15KHUrbik7aWYoQSgpIT09byl7JD1uLGZ1bmN0aW9uKHQpe3dpbmRvdy5sb2NhdGlvbi5oYXNoPXR9KG8pO3ZhciBpPV8ubGFzdEluZGV4T2YoZChCLmxvY2F0aW9uKSksYT1fLnNsaWNlKDAsaSsxKTthLnB1c2gobiksXz1hLE8oe2FjdGlvbjplLGxvY2F0aW9uOnJ9KX1lbHNlIE8oKX19KSl9LHJlcGxhY2U6ZnVuY3Rpb24odCxuKXt2YXIgZT0iUkVQTEFDRSIscj12KHQsdm9pZCAwLHZvaWQgMCxCLmxvY2F0aW9uKTtQLmNvbmZpcm1UcmFuc2l0aW9uVG8ocixlLGksKGZ1bmN0aW9uKHQpe2lmKHQpe3ZhciBuPWQociksbz15KHUrbik7QSgpIT09byYmKCQ9bixrKG8pKTt2YXIgaT1fLmluZGV4T2YoZChCLmxvY2F0aW9uKSk7LTEhPT1pJiYoX1tpXT1uKSxPKHthY3Rpb246ZSxsb2NhdGlvbjpyfSl9fSkpfSxnbzpVLGdvQmFjazpmdW5jdGlvbigpe1UoLTEpfSxnb0ZvcndhcmQ6ZnVuY3Rpb24oKXtVKDEpfSxibG9jazpmdW5jdGlvbih0KXt2b2lkIDA9PT10JiYodD0hMSk7dmFyIG49UC5zZXRQcm9tcHQodCk7cmV0dXJuIEl8fChGKDEpLEk9ITApLGZ1bmN0aW9uKCl7cmV0dXJuIEkmJihJPSExLEYoLTEpKSxuKCl9fSxsaXN0ZW46ZnVuY3Rpb24odCl7dmFyIG49UC5hcHBlbmRMaXN0ZW5lcih0KTtyZXR1cm4gRigxKSxmdW5jdGlvbigpe0YoLTEpLG4oKX19fTtyZXR1cm4gQn1mdW5jdGlvbiAkKHQsbixlKXtyZXR1cm4gTWF0aC5taW4oTWF0aC5tYXgodCxuKSxlKX1mdW5jdGlvbiBNKHQpe3ZvaWQgMD09PXQmJih0PXt9KTt2YXIgbj10LGU9bi5nZXRVc2VyQ29uZmlybWF0aW9uLG89bi5pbml0aWFsRW50cmllcyxpPXZvaWQgMD09PW8/WyIvIl06byxhPW4uaW5pdGlhbEluZGV4LGM9dm9pZCAwPT09YT8wOmEsdT1uLmtleUxlbmd0aCxzPXZvaWQgMD09PXU/Njp1LGY9bSgpO2Z1bmN0aW9uIGwodCl7KDAsci5kZWZhdWx0KSh4LHQpLHgubGVuZ3RoPXguZW50cmllcy5sZW5ndGgsZi5ub3RpZnlMaXN0ZW5lcnMoeC5sb2NhdGlvbix4LmFjdGlvbil9ZnVuY3Rpb24gcCgpe3JldHVybiBNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHIoMixzKX12YXIgaD0kKGMsMCxpLmxlbmd0aC0xKSx5PWkubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gdih0LHZvaWQgMCwic3RyaW5nIj09dHlwZW9mIHQ/cCgpOnQua2V5fHxwKCkpfSkpLGc9ZDtmdW5jdGlvbiB3KHQpe3ZhciBuPSQoeC5pbmRleCt0LDAseC5lbnRyaWVzLmxlbmd0aC0xKSxyPXguZW50cmllc1tuXTtmLmNvbmZpcm1UcmFuc2l0aW9uVG8ociwiUE9QIixlLChmdW5jdGlvbih0KXt0P2woe2FjdGlvbjoiUE9QIixsb2NhdGlvbjpyLGluZGV4Om59KTpsKCl9KSl9dmFyIHg9e2xlbmd0aDp5Lmxlbmd0aCwKYWN0aW9uOiJQT1AiLGxvY2F0aW9uOnlbaF0saW5kZXg6aCxlbnRyaWVzOnksY3JlYXRlSHJlZjpnLHB1c2g6ZnVuY3Rpb24odCxuKXt2YXIgcj0iUFVTSCIsbz12KHQsbixwKCkseC5sb2NhdGlvbik7Zi5jb25maXJtVHJhbnNpdGlvblRvKG8scixlLChmdW5jdGlvbih0KXtpZih0KXt2YXIgbj14LmluZGV4KzEsZT14LmVudHJpZXMuc2xpY2UoMCk7ZS5sZW5ndGg+bj9lLnNwbGljZShuLGUubGVuZ3RoLW4sbyk6ZS5wdXNoKG8pLGwoe2FjdGlvbjpyLGxvY2F0aW9uOm8saW5kZXg6bixlbnRyaWVzOmV9KX19KSl9LHJlcGxhY2U6ZnVuY3Rpb24odCxuKXt2YXIgcj0iUkVQTEFDRSIsbz12KHQsbixwKCkseC5sb2NhdGlvbik7Zi5jb25maXJtVHJhbnNpdGlvblRvKG8scixlLChmdW5jdGlvbih0KXt0JiYoeC5lbnRyaWVzW3guaW5kZXhdPW8sbCh7YWN0aW9uOnIsbG9jYXRpb246b30pKX0pKX0sZ286dyxnb0JhY2s6ZnVuY3Rpb24oKXt3KC0xKX0sZ29Gb3J3YXJkOmZ1bmN0aW9uKCl7dygxKX0sY2FuR286ZnVuY3Rpb24odCl7dmFyIG49eC5pbmRleCt0O3JldHVybiBuPj0wJiZuPHguZW50cmllcy5sZW5ndGh9LGJsb2NrOmZ1bmN0aW9uKHQpe3JldHVybiB2b2lkIDA9PT10JiYodD0hMSksZi5zZXRQcm9tcHQodCl9LGxpc3RlbjpmdW5jdGlvbih0KXtyZXR1cm4gZi5hcHBlbmRMaXN0ZW5lcih0KX19O3JldHVybiB4fX0sNzMxMDM1KHQsbixlKXsidXNlIHN0cmljdCI7dmFyIHI9ZSgzMzU5NTkpLG89e2NoaWxkQ29udGV4dFR5cGVzOiEwLGNvbnRleHRUeXBlOiEwLGNvbnRleHRUeXBlczohMCxkZWZhdWx0UHJvcHM6ITAsZGlzcGxheU5hbWU6ITAsZ2V0RGVmYXVsdFByb3BzOiEwLGdldERlcml2ZWRTdGF0ZUZyb21FcnJvcjohMCxnZXREZXJpdmVkU3RhdGVGcm9tUHJvcHM6ITAsbWl4aW5zOiEwLHByb3BUeXBlczohMCx0eXBlOiEwfSxpPXtuYW1lOiEwLGxlbmd0aDohMCxwcm90b3R5cGU6ITAsY2FsbGVyOiEwLGNhbGxlZTohMCxhcmd1bWVudHM6ITAsYXJpdHk6ITB9LGE9eyQkdHlwZW9mOiEwLGNvbXBhcmU6ITAsZGVmYXVsdFByb3BzOiEwLGRpc3BsYXlOYW1lOiEwLHByb3BUeXBlczohMCx0eXBlOiEwfSxjPXt9O2Z1bmN0aW9uIHUodCl7cmV0dXJuIHIuaXNNZW1vKHQpP2E6Y1t0LiQkdHlwZW9mXXx8b31jW3IuRm9yd2FyZFJlZl09eyQkdHlwZW9mOiEwLHJlbmRlcjohMCxkZWZhdWx0UHJvcHM6ITAsZGlzcGxheU5hbWU6ITAscHJvcFR5cGVzOiEwfSxjW3IuTWVtb109YTt2YXIgcz1PYmplY3QuZGVmaW5lUHJvcGVydHksZj1PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyxsPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMscD1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLGg9T2JqZWN0LmdldFByb3RvdHlwZU9mLGQ9T2JqZWN0LnByb3RvdHlwZTt0LmV4cG9ydHM9ZnVuY3Rpb24gdChuLGUscil7aWYoInN0cmluZyIhPXR5cGVvZiBlKXtpZihkKXt2YXIgbz1oKGUpO28mJm8hPT1kJiZ0KG4sbyxyKX12YXIgYT1mKGUpO2wmJihhPWEuY29uY2F0KGwoZSkpKTtmb3IodmFyIGM9dShuKSx2PXUoZSkseT0wO3k8YS5sZW5ndGg7Kyt5KXt2YXIgbT1hW3ldO2lmKCEoaVttXXx8ciYmclttXXx8diYmdlttXXx8YyYmY1ttXSkpe3ZhciBnPXAoZSxtKTt0cnl7cyhuLG0sZyl9Y2F0Y2godCl7fX19fXJldHVybiBufX0sMzA1NTI2KHQpe3QuZXhwb3J0cz1BcnJheS5pc0FycmF5fHxmdW5jdGlvbih0KXtyZXR1cm4iW29iamVjdCBBcnJheV0iPT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodCl9fSw1NTQ3ODUodCxuLGUpe3ZhciByPWUoMzA1NTI2KTt0LmV4cG9ydHM9ZCx0LmV4cG9ydHMucGFyc2U9aSx0LmV4cG9ydHMuY29tcGlsZT1mdW5jdGlvbih0LG4pe3JldHVybiB1KGkodCxuKSxuKX0sdC5leHBvcnRzLnRva2Vuc1RvRnVuY3Rpb249dSx0LmV4cG9ydHMudG9rZW5zVG9SZWdFeHA9aDt2YXIgbz1uZXcgUmVnRXhwKFsiKFxcXFwuKSIsIihbXFwvLl0pPyg/Oig/OlxcOihcXHcrKSg/OlxcKCgoPzpcXFxcLnxbXlxcXFwoKV0pKylcXCkpP3xcXCgoKD86XFxcXC58W15cXFxcKCldKSspXFwpKShbKyo/XSk/fChcXCopKSJdLmpvaW4oInwiKSwiZyIpO2Z1bmN0aW9uIGkodCxuKXtmb3IodmFyIGUscj1bXSxpPTAsYz0wLHU9IiIscz1uJiZuLmRlbGltaXRlcnx8Ii8iO251bGwhPShlPW8uZXhlYyh0KSk7KXt2YXIgbD1lWzBdLHA9ZVsxXSxoPWUuaW5kZXg7aWYodSs9dC5zbGljZShjLGgpLGM9aCtsLmxlbmd0aCxwKXUrPXBbMV07ZWxzZXt2YXIgZD10W2NdLHY9ZVsyXSx5PWVbM10sbT1lWzRdLGc9ZVs1XSx3PWVbNl0seD1lWzddO3UmJihyLnB1c2godSksdT0iIik7dmFyIGI9bnVsbCE9diYmbnVsbCE9ZCYmZCE9PXYsUD0iKyI9PT13fHwiKiI9PT13LE89Ij8iPT09d3x8IioiPT09dyxFPXZ8fHMsQz1tfHxnLFM9dnx8KCJzdHJpbmciPT10eXBlb2YgcltyLmxlbmd0aC0xXT9yW3IubGVuZ3RoLTFdOiIiKTtyLnB1c2goe25hbWU6eXx8aSsrLHByZWZpeDp2fHwiIixkZWxpbWl0ZXI6RSxvcHRpb25hbDpPLHJlcGVhdDpQLHBhcnRpYWw6Yixhc3RlcmlzazohIXgscGF0dGVybjpDP2YoQyk6eD8iLioiOmEoRSxTKX0pfX1yZXR1cm4gYzx0Lmxlbmd0aCYmKHUrPXQuc3Vic3RyKGMpKSx1JiZyLnB1c2godSkscn1mdW5jdGlvbiBhKHQsbil7cmV0dXJuIW58fG4uaW5kZXhPZih0KT4tMT8iW14iK3ModCkrIl0rPyI6cyhuKSsifCg/Oig/ISIrcyhuKSsiKVteIitzKHQpKyJdKSs/In1mdW5jdGlvbiBjKHQpe3JldHVybiBlbmNvZGVVUkkodCkucmVwbGFjZSgvW1wvPyNdL2csKGZ1bmN0aW9uKHQpe3JldHVybiIlIit0LmNoYXJDb2RlQXQoMCkudG9TdHJpbmcoMTYpLnRvVXBwZXJDYXNlKCl9KSl9ZnVuY3Rpb24gdSh0LG4pe2Zvcih2YXIgZT1uZXcgQXJyYXkodC5sZW5ndGgpLG89MDtvPHQubGVuZ3RoO28rKykib2JqZWN0Ij09dHlwZW9mIHRbb10mJihlW29dPW5ldyBSZWdFeHAoIl4oPzoiK3Rbb10ucGF0dGVybisiKSQiLHAobikpKTtyZXR1cm4gZnVuY3Rpb24obixvKXsKZm9yKHZhciBpPSIiLGE9bnx8e30sdT0ob3x8e30pLnByZXR0eT9jOmVuY29kZVVSSUNvbXBvbmVudCxzPTA7czx0Lmxlbmd0aDtzKyspe3ZhciBmPXRbc107aWYoInN0cmluZyIhPXR5cGVvZiBmKXt2YXIgbCxwPWFbZi5uYW1lXTtpZihudWxsPT1wKXtpZihmLm9wdGlvbmFsKXtmLnBhcnRpYWwmJihpKz1mLnByZWZpeCk7Y29udGludWV9dGhyb3cgbmV3IFR5cGVFcnJvcignRXhwZWN0ZWQgIicrZi5uYW1lKyciIHRvIGJlIGRlZmluZWQnKX1pZihyKHApKXtpZighZi5yZXBlYXQpdGhyb3cgbmV3IFR5cGVFcnJvcignRXhwZWN0ZWQgIicrZi5uYW1lKyciIHRvIG5vdCByZXBlYXQsIGJ1dCByZWNlaXZlZCBgJytKU09OLnN0cmluZ2lmeShwKSsiYCIpO2lmKDA9PT1wLmxlbmd0aCl7aWYoZi5vcHRpb25hbCljb250aW51ZTt0aHJvdyBuZXcgVHlwZUVycm9yKCdFeHBlY3RlZCAiJytmLm5hbWUrJyIgdG8gbm90IGJlIGVtcHR5Jyl9Zm9yKHZhciBoPTA7aDxwLmxlbmd0aDtoKyspe2lmKGw9dShwW2hdKSwhZVtzXS50ZXN0KGwpKXRocm93IG5ldyBUeXBlRXJyb3IoJ0V4cGVjdGVkIGFsbCAiJytmLm5hbWUrJyIgdG8gbWF0Y2ggIicrZi5wYXR0ZXJuKyciLCBidXQgcmVjZWl2ZWQgYCcrSlNPTi5zdHJpbmdpZnkobCkrImAiKTtpKz0oMD09PWg/Zi5wcmVmaXg6Zi5kZWxpbWl0ZXIpK2x9fWVsc2V7aWYobD1mLmFzdGVyaXNrP2VuY29kZVVSSShwKS5yZXBsYWNlKC9bPyNdL2csKGZ1bmN0aW9uKHQpe3JldHVybiIlIit0LmNoYXJDb2RlQXQoMCkudG9TdHJpbmcoMTYpLnRvVXBwZXJDYXNlKCl9KSk6dShwKSwhZVtzXS50ZXN0KGwpKXRocm93IG5ldyBUeXBlRXJyb3IoJ0V4cGVjdGVkICInK2YubmFtZSsnIiB0byBtYXRjaCAiJytmLnBhdHRlcm4rJyIsIGJ1dCByZWNlaXZlZCAiJytsKyciJyk7aSs9Zi5wcmVmaXgrbH19ZWxzZSBpKz1mfXJldHVybiBpfX1mdW5jdGlvbiBzKHQpe3JldHVybiB0LnJlcGxhY2UoLyhbLisqPz1eIToke30oKVtcXXxcL1xcXSkvZywiXFwkMSIpfWZ1bmN0aW9uIGYodCl7cmV0dXJuIHQucmVwbGFjZSgvKFs9ITokXC8oKV0pL2csIlxcJDEiKX1mdW5jdGlvbiBsKHQsbil7cmV0dXJuIHQua2V5cz1uLHR9ZnVuY3Rpb24gcCh0KXtyZXR1cm4gdCYmdC5zZW5zaXRpdmU/IiI6ImkifWZ1bmN0aW9uIGgodCxuLGUpe3Iobil8fChlPW58fGUsbj1bXSk7Zm9yKHZhciBvPShlPWV8fHt9KS5zdHJpY3QsaT0hMSE9PWUuZW5kLGE9IiIsYz0wO2M8dC5sZW5ndGg7YysrKXt2YXIgdT10W2NdO2lmKCJzdHJpbmciPT10eXBlb2YgdSlhKz1zKHUpO2Vsc2V7dmFyIGY9cyh1LnByZWZpeCksaD0iKD86Iit1LnBhdHRlcm4rIikiO24ucHVzaCh1KSx1LnJlcGVhdCYmKGgrPSIoPzoiK2YraCsiKSoiKSxhKz1oPXUub3B0aW9uYWw/dS5wYXJ0aWFsP2YrIigiK2grIik/IjoiKD86IitmKyIoIitoKyIpKT8iOmYrIigiK2grIikifX12YXIgZD1zKGUuZGVsaW1pdGVyfHwiLyIpLHY9YS5zbGljZSgtZC5sZW5ndGgpPT09ZDtyZXR1cm4gb3x8KGE9KHY/YS5zbGljZSgwLC1kLmxlbmd0aCk6YSkrIig/OiIrZCsiKD89JCkpPyIpLGErPWk/IiQiOm8mJnY/IiI6Iig/PSIrZCsifCQpIixsKG5ldyBSZWdFeHAoIl4iK2EscChlKSksbil9ZnVuY3Rpb24gZCh0LG4sZSl7cmV0dXJuIHIobil8fChlPW58fGUsbj1bXSksZT1lfHx7fSx0IGluc3RhbmNlb2YgUmVnRXhwP2Z1bmN0aW9uKHQsbil7dmFyIGU9dC5zb3VyY2UubWF0Y2goL1woKD8hXD8pL2cpO2lmKGUpZm9yKHZhciByPTA7cjxlLmxlbmd0aDtyKyspbi5wdXNoKHtuYW1lOnIscHJlZml4Om51bGwsZGVsaW1pdGVyOm51bGwsb3B0aW9uYWw6ITEscmVwZWF0OiExLHBhcnRpYWw6ITEsYXN0ZXJpc2s6ITEscGF0dGVybjpudWxsfSk7cmV0dXJuIGwodCxuKX0odCxuKTpyKHQpP2Z1bmN0aW9uKHQsbixlKXtmb3IodmFyIHI9W10sbz0wO288dC5sZW5ndGg7bysrKXIucHVzaChkKHRbb10sbixlKS5zb3VyY2UpO3JldHVybiBsKG5ldyBSZWdFeHAoIig/OiIrci5qb2luKCJ8IikrIikiLHAoZSkpLG4pfSh0LG4sZSk6ZnVuY3Rpb24odCxuLGUpe3JldHVybiBoKGkodCxlKSxuLGUpfSh0LG4sZSl9fSwxOTU4NDModCxuKXsidXNlIHN0cmljdCI7dmFyIGU9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmU3ltYm9sLmZvcixyPWU/U3ltYm9sLmZvcigicmVhY3QuZWxlbWVudCIpOjYwMTAzLG89ZT9TeW1ib2wuZm9yKCJyZWFjdC5wb3J0YWwiKTo2MDEwNixpPWU/U3ltYm9sLmZvcigicmVhY3QuZnJhZ21lbnQiKTo2MDEwNyxhPWU/U3ltYm9sLmZvcigicmVhY3Quc3RyaWN0X21vZGUiKTo2MDEwOCxjPWU/U3ltYm9sLmZvcigicmVhY3QucHJvZmlsZXIiKTo2MDExNCx1PWU/U3ltYm9sLmZvcigicmVhY3QucHJvdmlkZXIiKTo2MDEwOSxzPWU/U3ltYm9sLmZvcigicmVhY3QuY29udGV4dCIpOjYwMTEwLGY9ZT9TeW1ib2wuZm9yKCJyZWFjdC5hc3luY19tb2RlIik6NjAxMTEsbD1lP1N5bWJvbC5mb3IoInJlYWN0LmNvbmN1cnJlbnRfbW9kZSIpOjYwMTExLHA9ZT9TeW1ib2wuZm9yKCJyZWFjdC5mb3J3YXJkX3JlZiIpOjYwMTEyLGg9ZT9TeW1ib2wuZm9yKCJyZWFjdC5zdXNwZW5zZSIpOjYwMTEzLGQ9ZT9TeW1ib2wuZm9yKCJyZWFjdC5zdXNwZW5zZV9saXN0Iik6NjAxMjAsdj1lP1N5bWJvbC5mb3IoInJlYWN0Lm1lbW8iKTo2MDExNSx5PWU/U3ltYm9sLmZvcigicmVhY3QubGF6eSIpOjYwMTE2LG09ZT9TeW1ib2wuZm9yKCJyZWFjdC5ibG9jayIpOjYwMTIxLGc9ZT9TeW1ib2wuZm9yKCJyZWFjdC5mdW5kYW1lbnRhbCIpOjYwMTE3LHc9ZT9TeW1ib2wuZm9yKCJyZWFjdC5yZXNwb25kZXIiKTo2MDExOCx4PWU/U3ltYm9sLmZvcigicmVhY3Quc2NvcGUiKTo2MDExOTtmdW5jdGlvbiBiKHQpe2lmKCJvYmplY3QiPT10eXBlb2YgdCYmbnVsbCE9PXQpe3ZhciBuPXQuJCR0eXBlb2Y7c3dpdGNoKG4pe2Nhc2Ugcjpzd2l0Y2godD10LnR5cGUpe2Nhc2UgZjpjYXNlIGw6Y2FzZSBpOmNhc2UgYzpjYXNlIGE6Y2FzZSBoOnJldHVybiB0O2RlZmF1bHQ6c3dpdGNoKHQ9dCYmdC4kJHR5cGVvZil7Y2FzZSBzOmNhc2UgcDpjYXNlIHk6Y2FzZSB2OmNhc2UgdTpyZXR1cm4gdAo7ZGVmYXVsdDpyZXR1cm4gbn19Y2FzZSBvOnJldHVybiBufX19ZnVuY3Rpb24gUCh0KXtyZXR1cm4gYih0KT09PWx9bi5Bc3luY01vZGU9ZixuLkNvbmN1cnJlbnRNb2RlPWwsbi5Db250ZXh0Q29uc3VtZXI9cyxuLkNvbnRleHRQcm92aWRlcj11LG4uRWxlbWVudD1yLG4uRm9yd2FyZFJlZj1wLG4uRnJhZ21lbnQ9aSxuLkxhenk9eSxuLk1lbW89dixuLlBvcnRhbD1vLG4uUHJvZmlsZXI9YyxuLlN0cmljdE1vZGU9YSxuLlN1c3BlbnNlPWgsbi5pc0FzeW5jTW9kZT1mdW5jdGlvbih0KXtyZXR1cm4gUCh0KXx8Yih0KT09PWZ9LG4uaXNDb25jdXJyZW50TW9kZT1QLG4uaXNDb250ZXh0Q29uc3VtZXI9ZnVuY3Rpb24odCl7cmV0dXJuIGIodCk9PT1zfSxuLmlzQ29udGV4dFByb3ZpZGVyPWZ1bmN0aW9uKHQpe3JldHVybiBiKHQpPT09dX0sbi5pc0VsZW1lbnQ9ZnVuY3Rpb24odCl7cmV0dXJuIm9iamVjdCI9PXR5cGVvZiB0JiZudWxsIT09dCYmdC4kJHR5cGVvZj09PXJ9LG4uaXNGb3J3YXJkUmVmPWZ1bmN0aW9uKHQpe3JldHVybiBiKHQpPT09cH0sbi5pc0ZyYWdtZW50PWZ1bmN0aW9uKHQpe3JldHVybiBiKHQpPT09aX0sbi5pc0xhenk9ZnVuY3Rpb24odCl7cmV0dXJuIGIodCk9PT15fSxuLmlzTWVtbz1mdW5jdGlvbih0KXtyZXR1cm4gYih0KT09PXZ9LG4uaXNQb3J0YWw9ZnVuY3Rpb24odCl7cmV0dXJuIGIodCk9PT1vfSxuLmlzUHJvZmlsZXI9ZnVuY3Rpb24odCl7cmV0dXJuIGIodCk9PT1jfSxuLmlzU3RyaWN0TW9kZT1mdW5jdGlvbih0KXtyZXR1cm4gYih0KT09PWF9LG4uaXNTdXNwZW5zZT1mdW5jdGlvbih0KXtyZXR1cm4gYih0KT09PWh9LG4uaXNWYWxpZEVsZW1lbnRUeXBlPWZ1bmN0aW9uKHQpe3JldHVybiJzdHJpbmciPT10eXBlb2YgdHx8ImZ1bmN0aW9uIj09dHlwZW9mIHR8fHQ9PT1pfHx0PT09bHx8dD09PWN8fHQ9PT1hfHx0PT09aHx8dD09PWR8fCJvYmplY3QiPT10eXBlb2YgdCYmbnVsbCE9PXQmJih0LiQkdHlwZW9mPT09eXx8dC4kJHR5cGVvZj09PXZ8fHQuJCR0eXBlb2Y9PT11fHx0LiQkdHlwZW9mPT09c3x8dC4kJHR5cGVvZj09PXB8fHQuJCR0eXBlb2Y9PT1nfHx0LiQkdHlwZW9mPT09d3x8dC4kJHR5cGVvZj09PXh8fHQuJCR0eXBlb2Y9PT1tKX0sbi50eXBlT2Y9Yn0sMzM1OTU5KHQsbixlKXsidXNlIHN0cmljdCI7dC5leHBvcnRzPWUoMTk1ODQzKX0sOTQ0NzgwKHQsbixlKXsidXNlIHN0cmljdCI7ZS5kKG4se01lbW9yeVJvdXRlcjooKT0+UCxSZWRpcmVjdDooKT0+QSxSb3V0ZTooKT0+TSxSb3V0ZXI6KCk9PmIsU3dpdGNoOigpPT5ILF9fUm91dGVyQ29udGV4dDooKT0+eCxtYXRjaFBhdGg6KCk9PiQsdXNlSGlzdG9yeTooKT0+SSx1c2VMb2NhdGlvbjooKT0+Qix1c2VQYXJhbXM6KCk9PkR9KTt2YXIgcj1lKDMxMDIxMSksbz1lKDc3OTQ3NCksaT1lKDIyMTg5NiksYT1lLm4oaSksYz1lKDgxOTU5MSksdT0xMDczNzQxODIzLHM9InVuZGVmaW5lZCIhPXR5cGVvZiBnbG9iYWxUaGlzP2dsb2JhbFRoaXM6InVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3c/d2luZG93OnZvaWQgMCE9PWUuZz9lLmc6e307dmFyIGY9by5jcmVhdGVDb250ZXh0fHxmdW5jdGlvbih0LG4pe3ZhciBlLGksYz0iX19jcmVhdGUtcmVhY3QtY29udGV4dC0iK2Z1bmN0aW9uKCl7dmFyIHQ9Il9fZ2xvYmFsX3VuaXF1ZV9pZF9fIjtyZXR1cm4gc1t0XT0oc1t0XXx8MCkrMX0oKSsiX18iLGY9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3ZhciBuLGUscjtyZXR1cm4obj10LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpcykuZW1pdHRlcj0oZT1uLnByb3BzLnZhbHVlLHI9W10se29uOmZ1bmN0aW9uKHQpe3IucHVzaCh0KX0sb2ZmOmZ1bmN0aW9uKHQpe3I9ci5maWx0ZXIoKGZ1bmN0aW9uKG4pe3JldHVybiBuIT09dH0pKX0sZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGV9LHNldDpmdW5jdGlvbih0LG4pe2U9dCxyLmZvckVhY2goKGZ1bmN0aW9uKHQpe3JldHVybiB0KGUsbil9KSl9fSksbn0oMCxyLmRlZmF1bHQpKGUsdCk7dmFyIG89ZS5wcm90b3R5cGU7cmV0dXJuIG8uZ2V0Q2hpbGRDb250ZXh0PWZ1bmN0aW9uKCl7dmFyIHQ7cmV0dXJuKHQ9e30pW2NdPXRoaXMuZW1pdHRlcix0fSxvLmNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHM9ZnVuY3Rpb24odCl7aWYodGhpcy5wcm9wcy52YWx1ZSE9PXQudmFsdWUpe3ZhciBlLHI9dGhpcy5wcm9wcy52YWx1ZSxvPXQudmFsdWU7KChpPXIpPT09KGE9byk/MCE9PWl8fDEvaT09MS9hOmkhPWkmJmEhPWEpP2U9MDooZT0iZnVuY3Rpb24iPT10eXBlb2Ygbj9uKHIsbyk6dSwwIT09KGV8PTApJiZ0aGlzLmVtaXR0ZXIuc2V0KHQudmFsdWUsZSkpfXZhciBpLGF9LG8ucmVuZGVyPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHJvcHMuY2hpbGRyZW59LGV9KG8uQ29tcG9uZW50KTtmLmNoaWxkQ29udGV4dFR5cGVzPSgoZT17fSlbY109YSgpLm9iamVjdC5pc1JlcXVpcmVkLGUpO3ZhciBsPWZ1bmN0aW9uKG4pe2Z1bmN0aW9uIGUoKXt2YXIgdDtyZXR1cm4odD1uLmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpcykuc3RhdGU9e3ZhbHVlOnQuZ2V0VmFsdWUoKX0sdC5vblVwZGF0ZT1mdW5jdGlvbihuLGUpeygwfHQub2JzZXJ2ZWRCaXRzKSZlJiZ0LnNldFN0YXRlKHt2YWx1ZTp0LmdldFZhbHVlKCl9KX0sdH0oMCxyLmRlZmF1bHQpKGUsbik7dmFyIG89ZS5wcm90b3R5cGU7cmV0dXJuIG8uY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcz1mdW5jdGlvbih0KXt2YXIgbj10Lm9ic2VydmVkQml0czt0aGlzLm9ic2VydmVkQml0cz1uPz91fSxvLmNvbXBvbmVudERpZE1vdW50PWZ1bmN0aW9uKCl7dGhpcy5jb250ZXh0W2NdJiZ0aGlzLmNvbnRleHRbY10ub24odGhpcy5vblVwZGF0ZSk7dmFyIHQ9dGhpcy5wcm9wcy5vYnNlcnZlZEJpdHM7dGhpcy5vYnNlcnZlZEJpdHM9dD8/dX0sby5jb21wb25lbnRXaWxsVW5tb3VudD1mdW5jdGlvbigpe3RoaXMuY29udGV4dFtjXSYmdGhpcy5jb250ZXh0W2NdLm9mZih0aGlzLm9uVXBkYXRlKX0sby5nZXRWYWx1ZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLmNvbnRleHRbY10/dGhpcy5jb250ZXh0W2NdLmdldCgpOnR9LApvLnJlbmRlcj1mdW5jdGlvbigpe3JldHVybih0PXRoaXMucHJvcHMuY2hpbGRyZW4sQXJyYXkuaXNBcnJheSh0KT90WzBdOnQpKHRoaXMuc3RhdGUudmFsdWUpO3ZhciB0fSxlfShvLkNvbXBvbmVudCk7cmV0dXJuIGwuY29udGV4dFR5cGVzPSgoaT17fSlbY109YSgpLm9iamVjdCxpKSx7UHJvdmlkZXI6ZixDb25zdW1lcjpsfX07Y29uc3QgbD1mO3ZhciBwPWUoMjUzODUpLGg9ZSg2NDQzMjApLGQ9ZSg1NTQ3ODUpLHY9ZS5uKGQpLHk9KGUoMzM1OTU5KSxlKDc4ODkxNSkpLG09KGUoNzMxMDM1KSxmdW5jdGlvbih0KXt2YXIgbj1sKCk7cmV0dXJuIG4uZGlzcGxheU5hbWU9dCxufSksZz1tKCJSb3V0ZXItSGlzdG9yeSIpLHc9ZnVuY3Rpb24odCl7dmFyIG49bCgpO3JldHVybiBuLmRpc3BsYXlOYW1lPXQsbn0seD13KCJSb3V0ZXIiKSxiPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIG4obil7dmFyIGU7cmV0dXJuKGU9dC5jYWxsKHRoaXMsbil8fHRoaXMpLnN0YXRlPXtsb2NhdGlvbjpuLmhpc3RvcnkubG9jYXRpb259LGUuX2lzTW91bnRlZD0hMSxlLl9wZW5kaW5nTG9jYXRpb249bnVsbCxuLnN0YXRpY0NvbnRleHR8fChlLnVubGlzdGVuPW4uaGlzdG9yeS5saXN0ZW4oKGZ1bmN0aW9uKHQpe2UuX2lzTW91bnRlZD9lLnNldFN0YXRlKHtsb2NhdGlvbjp0fSk6ZS5fcGVuZGluZ0xvY2F0aW9uPXR9KSkpLGV9KDAsci5kZWZhdWx0KShuLHQpLG4uY29tcHV0ZVJvb3RNYXRjaD1mdW5jdGlvbih0KXtyZXR1cm57cGF0aDoiLyIsdXJsOiIvIixwYXJhbXM6e30saXNFeGFjdDoiLyI9PT10fX07dmFyIGU9bi5wcm90b3R5cGU7cmV0dXJuIGUuY29tcG9uZW50RGlkTW91bnQ9ZnVuY3Rpb24oKXt0aGlzLl9pc01vdW50ZWQ9ITAsdGhpcy5fcGVuZGluZ0xvY2F0aW9uJiZ0aGlzLnNldFN0YXRlKHtsb2NhdGlvbjp0aGlzLl9wZW5kaW5nTG9jYXRpb259KX0sZS5jb21wb25lbnRXaWxsVW5tb3VudD1mdW5jdGlvbigpe3RoaXMudW5saXN0ZW4mJnRoaXMudW5saXN0ZW4oKX0sZS5yZW5kZXI9ZnVuY3Rpb24oKXtyZXR1cm4gby5jcmVhdGVFbGVtZW50KHguUHJvdmlkZXIse3ZhbHVlOntoaXN0b3J5OnRoaXMucHJvcHMuaGlzdG9yeSxsb2NhdGlvbjp0aGlzLnN0YXRlLmxvY2F0aW9uLG1hdGNoOm4uY29tcHV0ZVJvb3RNYXRjaCh0aGlzLnN0YXRlLmxvY2F0aW9uLnBhdGhuYW1lKSxzdGF0aWNDb250ZXh0OnRoaXMucHJvcHMuc3RhdGljQ29udGV4dH19LG8uY3JlYXRlRWxlbWVudChnLlByb3ZpZGVyLHtjaGlsZHJlbjp0aGlzLnByb3BzLmNoaWxkcmVufHxudWxsLHZhbHVlOnRoaXMucHJvcHMuaGlzdG9yeX0pKX0sbn0oby5Db21wb25lbnQpO3ZhciBQPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIG4oKXtmb3IodmFyIG4sZT1hcmd1bWVudHMubGVuZ3RoLHI9bmV3IEFycmF5KGUpLG89MDtvPGU7bysrKXJbb109YXJndW1lbnRzW29dO3JldHVybihuPXQuY2FsbC5hcHBseSh0LFt0aGlzXS5jb25jYXQocikpfHx0aGlzKS5oaXN0b3J5PSgwLGMuY3JlYXRlTWVtb3J5SGlzdG9yeSkobi5wcm9wcyksbn1yZXR1cm4oMCxyLmRlZmF1bHQpKG4sdCksbi5wcm90b3R5cGUucmVuZGVyPWZ1bmN0aW9uKCl7cmV0dXJuIG8uY3JlYXRlRWxlbWVudChiLHtoaXN0b3J5OnRoaXMuaGlzdG9yeSxjaGlsZHJlbjp0aGlzLnByb3BzLmNoaWxkcmVufSl9LG59KG8uQ29tcG9uZW50KTt2YXIgTz1mdW5jdGlvbih0KXtmdW5jdGlvbiBuKCl7cmV0dXJuIHQuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzfSgwLHIuZGVmYXVsdCkobix0KTt2YXIgZT1uLnByb3RvdHlwZTtyZXR1cm4gZS5jb21wb25lbnREaWRNb3VudD1mdW5jdGlvbigpe3RoaXMucHJvcHMub25Nb3VudCYmdGhpcy5wcm9wcy5vbk1vdW50LmNhbGwodGhpcyx0aGlzKX0sZS5jb21wb25lbnREaWRVcGRhdGU9ZnVuY3Rpb24odCl7dGhpcy5wcm9wcy5vblVwZGF0ZSYmdGhpcy5wcm9wcy5vblVwZGF0ZS5jYWxsKHRoaXMsdGhpcyx0KX0sZS5jb21wb25lbnRXaWxsVW5tb3VudD1mdW5jdGlvbigpe3RoaXMucHJvcHMub25Vbm1vdW50JiZ0aGlzLnByb3BzLm9uVW5tb3VudC5jYWxsKHRoaXMsdGhpcyl9LGUucmVuZGVyPWZ1bmN0aW9uKCl7cmV0dXJuIG51bGx9LG59KG8uQ29tcG9uZW50KTt2YXIgRT17fSxDPTA7ZnVuY3Rpb24gUyh0LG4pe3JldHVybiB2b2lkIDA9PT10JiYodD0iLyIpLHZvaWQgMD09PW4mJihuPXt9KSwiLyI9PT10P3Q6ZnVuY3Rpb24odCl7aWYoRVt0XSlyZXR1cm4gRVt0XTt2YXIgbj12KCkuY29tcGlsZSh0KTtyZXR1cm4gQzwxZTQmJihFW3RdPW4sQysrKSxufSh0KShuLHtwcmV0dHk6ITB9KX1mdW5jdGlvbiBBKHQpe3ZhciBuPXQuY29tcHV0ZWRNYXRjaCxlPXQudG8scj10LnB1c2gsaT12b2lkIDAhPT1yJiZyO3JldHVybiBvLmNyZWF0ZUVsZW1lbnQoeC5Db25zdW1lcixudWxsLChmdW5jdGlvbih0KXt0fHwoMCxwLmRlZmF1bHQpKCExKTt2YXIgcj10Lmhpc3RvcnksYT10LnN0YXRpY0NvbnRleHQsdT1pP3IucHVzaDpyLnJlcGxhY2Uscz0oMCxjLmNyZWF0ZUxvY2F0aW9uKShuPyJzdHJpbmciPT10eXBlb2YgZT9TKGUsbi5wYXJhbXMpOigwLGguZGVmYXVsdCkoe30sZSx7cGF0aG5hbWU6UyhlLnBhdGhuYW1lLG4ucGFyYW1zKX0pOmUpO3JldHVybiBhPyh1KHMpLG51bGwpOm8uY3JlYXRlRWxlbWVudChPLHtvbk1vdW50OmZ1bmN0aW9uKCl7dShzKX0sb25VcGRhdGU6ZnVuY3Rpb24odCxuKXt2YXIgZT0oMCxjLmNyZWF0ZUxvY2F0aW9uKShuLnRvKTsoMCxjLmxvY2F0aW9uc0FyZUVxdWFsKShlLCgwLGguZGVmYXVsdCkoe30scyx7a2V5OmUua2V5fSkpfHx1KHMpfSx0bzplfSl9KSl9dmFyIGs9e30sVD0wO2Z1bmN0aW9uICQodCxuKXt2b2lkIDA9PT1uJiYobj17fSksKCJzdHJpbmciPT10eXBlb2Ygbnx8QXJyYXkuaXNBcnJheShuKSkmJihuPXtwYXRoOm59KTt2YXIgZT1uLHI9ZS5wYXRoLG89ZS5leGFjdCxpPXZvaWQgMCE9PW8mJm8sYT1lLnN0cmljdCxjPXZvaWQgMCE9PWEmJmEsdT1lLnNlbnNpdGl2ZSxzPXZvaWQgMCE9PXUmJnU7cmV0dXJuW10uY29uY2F0KHIpLnJlZHVjZSgoZnVuY3Rpb24obixlKXtpZighZSYmIiIhPT1lKXJldHVybiBudWxsCjtpZihuKXJldHVybiBuO3ZhciByPWZ1bmN0aW9uKHQsbil7dmFyIGU9IiIrbi5lbmQrbi5zdHJpY3Qrbi5zZW5zaXRpdmUscj1rW2VdfHwoa1tlXT17fSk7aWYoclt0XSlyZXR1cm4gclt0XTt2YXIgbz1bXSxpPXtyZWdleHA6digpKHQsbyxuKSxrZXlzOm99O3JldHVybiBUPDFlNCYmKHJbdF09aSxUKyspLGl9KGUse2VuZDppLHN0cmljdDpjLHNlbnNpdGl2ZTpzfSksbz1yLnJlZ2V4cCxhPXIua2V5cyx1PW8uZXhlYyh0KTtpZighdSlyZXR1cm4gbnVsbDt2YXIgZj11WzBdLGw9dS5zbGljZSgxKSxwPXQ9PT1mO3JldHVybiBpJiYhcD9udWxsOntwYXRoOmUsdXJsOiIvIj09PWUmJiIiPT09Zj8iLyI6Zixpc0V4YWN0OnAscGFyYW1zOmEucmVkdWNlKChmdW5jdGlvbih0LG4sZSl7cmV0dXJuIHRbbi5uYW1lXT1sW2VdLHR9KSx7fSl9fSksbnVsbCl9dmFyIE09ZnVuY3Rpb24odCl7ZnVuY3Rpb24gbigpe3JldHVybiB0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpc31yZXR1cm4oMCxyLmRlZmF1bHQpKG4sdCksbi5wcm90b3R5cGUucmVuZGVyPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztyZXR1cm4gby5jcmVhdGVFbGVtZW50KHguQ29uc3VtZXIsbnVsbCwoZnVuY3Rpb24obil7bnx8KDAscC5kZWZhdWx0KSghMSk7dmFyIGU9dC5wcm9wcy5sb2NhdGlvbnx8bi5sb2NhdGlvbixyPXQucHJvcHMuY29tcHV0ZWRNYXRjaD90LnByb3BzLmNvbXB1dGVkTWF0Y2g6dC5wcm9wcy5wYXRoPyQoZS5wYXRobmFtZSx0LnByb3BzKTpuLm1hdGNoLGk9KDAsaC5kZWZhdWx0KSh7fSxuLHtsb2NhdGlvbjplLG1hdGNoOnJ9KSxhPXQucHJvcHMsYz1hLmNoaWxkcmVuLHU9YS5jb21wb25lbnQscz1hLnJlbmRlcjtyZXR1cm4gQXJyYXkuaXNBcnJheShjKSYmMD09PWMubGVuZ3RoJiYoYz1udWxsKSxvLmNyZWF0ZUVsZW1lbnQoeC5Qcm92aWRlcix7dmFsdWU6aX0saS5tYXRjaD9jPyJmdW5jdGlvbiI9PXR5cGVvZiBjP2MoaSk6Yzp1P28uY3JlYXRlRWxlbWVudCh1LGkpOnM/cyhpKTpudWxsOiJmdW5jdGlvbiI9PXR5cGVvZiBjP2MoaSk6bnVsbCl9KSl9LG59KG8uQ29tcG9uZW50KTtmdW5jdGlvbiBMKHQpe3JldHVybiIvIj09PXQuY2hhckF0KDApP3Q6Ii8iK3R9ZnVuY3Rpb24gUih0LG4pe2lmKCF0KXJldHVybiBuO3ZhciBlPUwodCk7cmV0dXJuIDAhPT1uLnBhdGhuYW1lLmluZGV4T2YoZSk/bjooMCxoLmRlZmF1bHQpKHt9LG4se3BhdGhuYW1lOm4ucGF0aG5hbWUuc3Vic3RyKGUubGVuZ3RoKX0pfWZ1bmN0aW9uIGoodCl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiB0P3Q6KDAsYy5jcmVhdGVQYXRoKSh0KX1mdW5jdGlvbiBfKHQpe3JldHVybiBmdW5jdGlvbigpeygwLHAuZGVmYXVsdCkoITEpfX1mdW5jdGlvbiBVKCl7fW8uQ29tcG9uZW50O3ZhciBIPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIG4oKXtyZXR1cm4gdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuKDAsci5kZWZhdWx0KShuLHQpLG4ucHJvdG90eXBlLnJlbmRlcj1mdW5jdGlvbigpe3ZhciB0PXRoaXM7cmV0dXJuIG8uY3JlYXRlRWxlbWVudCh4LkNvbnN1bWVyLG51bGwsKGZ1bmN0aW9uKG4pe258fCgwLHAuZGVmYXVsdCkoITEpO3ZhciBlLHIsaT10LnByb3BzLmxvY2F0aW9ufHxuLmxvY2F0aW9uO3JldHVybiBvLkNoaWxkcmVuLmZvckVhY2godC5wcm9wcy5jaGlsZHJlbiwoZnVuY3Rpb24odCl7aWYobnVsbD09ciYmby5pc1ZhbGlkRWxlbWVudCh0KSl7ZT10O3ZhciBhPXQucHJvcHMucGF0aHx8dC5wcm9wcy5mcm9tO3I9YT8kKGkucGF0aG5hbWUsKDAsaC5kZWZhdWx0KSh7fSx0LnByb3BzLHtwYXRoOmF9KSk6bi5tYXRjaH19KSkscj9vLmNsb25lRWxlbWVudChlLHtsb2NhdGlvbjppLGNvbXB1dGVkTWF0Y2g6cn0pOm51bGx9KSl9LG59KG8uQ29tcG9uZW50KTt2YXIgRj1vLnVzZUNvbnRleHQ7ZnVuY3Rpb24gSSgpe3JldHVybiBGKGcpfWZ1bmN0aW9uIEIoKXtyZXR1cm4gRih4KS5sb2NhdGlvbn1mdW5jdGlvbiBEKCl7dmFyIHQ9Rih4KS5tYXRjaDtyZXR1cm4gdD90LnBhcmFtczp7fX19LDY0NDMyMCh0LG4sZSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHIoKXtyZXR1cm4gcj1PYmplY3QuYXNzaWduP09iamVjdC5hc3NpZ24uYmluZCgpOmZ1bmN0aW9uKHQpe2Zvcih2YXIgbj0xO248YXJndW1lbnRzLmxlbmd0aDtuKyspe3ZhciBlPWFyZ3VtZW50c1tuXTtmb3IodmFyIHIgaW4gZSkoe30pLmhhc093blByb3BlcnR5LmNhbGwoZSxyKSYmKHRbcl09ZVtyXSl9cmV0dXJuIHR9LHIuYXBwbHkobnVsbCxhcmd1bWVudHMpfWUuZChuLHtkZWZhdWx0OigpPT5yfSl9LDMxMDIxMSh0LG4sZSl7InVzZSBzdHJpY3QiO2UuZChuLHtkZWZhdWx0OigpPT5vfSk7dmFyIHI9ZSg2NDMzMDIpO2Z1bmN0aW9uIG8odCxuKXt0LnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKG4ucHJvdG90eXBlKSx0LnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj10LCgwLHIuZGVmYXVsdCkodCxuKX19LDc4ODkxNSh0LG4sZSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHIodCxuKXtpZihudWxsPT10KXJldHVybnt9O3ZhciBlPXt9O2Zvcih2YXIgciBpbiB0KWlmKHt9Lmhhc093blByb3BlcnR5LmNhbGwodCxyKSl7aWYoLTEhPT1uLmluZGV4T2YocikpY29udGludWU7ZVtyXT10W3JdfXJldHVybiBlfWUuZChuLHtkZWZhdWx0OigpPT5yfSl9LDY0MzMwMih0LG4sZSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHIodCxuKXtyZXR1cm4gcj1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbih0LG4pe3JldHVybiB0Ll9fcHJvdG9fXz1uLHR9LHIodCxuKX1lLmQobix7ZGVmYXVsdDooKT0+cn0pfSwyNTM4NSh0LG4sZSl7InVzZSBzdHJpY3QiO2UuZChuLHtkZWZhdWx0OigpPT5vfSk7dmFyIHI9IkludmFyaWFudCBmYWlsZWQiO2Z1bmN0aW9uIG8odCxuKXtpZighdCl0aHJvdyBuZXcgRXJyb3Iocil9fX1dKTs="}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,600;0,700;0,800;1,400;1,600\u0026family=DM+Sans:wght@300;400;500;600\u0026family=Space+Mono:wght@400;700\u0026display=swap","fqdn":"fonts.googleapis.com","domain":"fonts.googleapis.com","tld":"googleapis.com"},"ip":{"addr":"142.250.178.74","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://digital-assettrade.com/","date":"2026-07-27T10:27:12.032Z","timestamp":1785148032032,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_256_GCM_SHA384","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"upload.video.google.com","organization":""},"issuer":{"commonName":"WE2","organization":"Google Trust Services"},"validity":{"start":"Mon, 29 Jun 2026 08:39:27 GMT","end":"Mon, 21 Sep 2026 08:39:26 GMT"},"fingerprint":{"sha1":"50:37:CF:61:33:A1:EE:47:D9:3D:A6:5E:07:BA:4C:FF:F7:25:9F:76","sha256":"7D:4D:21:06:63:E2:5E:F0:8C:59:8E:EB:B7:94:2B:81:70:11:D3:F4:C0:A0:81:A6:1B:E7:27:FD:56:10:1A:11"}}},"request":{"raw":"GET /css2?family=Playfair+Display:ital,wght@0,400;0,600;0,700;0,800;1,400;1,600\u0026family=DM+Sans:wght@300;400;500;600\u0026family=Space+Mono:wght@400;700\u0026display=swap HTTP/1.1\r\nHost: fonts.googleapis.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-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://digital-assettrade.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\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\ncontent-type: text/css; charset=utf-8\r\nvary: Sec-Fetch-Dest, Sec-Fetch-Mode, Sec-Fetch-Site\r\naccess-control-allow-origin: *\r\ntiming-allow-origin: *\r\nlink: \u003chttps://fonts.gstatic.com\u003e; rel=preconnect; crossorigin\r\nstrict-transport-security: max-age=31536000\r\nexpires: Mon, 27 Jul 2026 10:27:12 GMT\r\ndate: Mon, 27 Jul 2026 10:27:12 GMT\r\ncache-control: private, max-age=86400\r\ncross-origin-resource-policy: cross-origin\r\ncross-origin-opener-policy: same-origin-allow-popups\r\ncontent-encoding: gzip\r\nserver: ESF\r\nx-xss-protection: 0\r\nx-frame-options: SAMEORIGIN\r\nx-content-type-options: nosniff\r\nalt-svc: h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000\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"]}],"data":{"size":15932,"size_decoded":1586,"mime_type":"text/css; charset=utf-8","magic":"ASCII text","md5":"56707903ec43ab9b8a459544b95446fe","sha1":"b6c21054fd71e8f2aef4f4e7941be2e85b2c69b0","sha256":"1bfe9329f378fdd4809500fba52947dcfcf9252e145266c26d3d5646df76c5d2","sha512":"5d5615b78bd666d538629148331b306a17c6790da3a1adcbe052168a260db47ec57a9d80e6865f273e6fe596fa2c20a3883ead8f252e0e78e00b236b2c85a671","ssdeep":"384:2kis5Jq2SMq2qq2+q2cJ02SM02q02+02cL2R/W2v/2bv26F2R/Y2v52bp26E2R/H:GXaKMRkUJaOw/0vxaww50pAahwI047aG","tlshash":"f462dea20467a110db471cc227cfbf32ad5f61507081967caffe1898ac9bd2a9365b0d","first_seen":"2026-07-27T07:37:36.991065Z","last_seen":"2026-07-27T10:28:13.937325Z","times_seen":3,"resource_available":false,"data":"LyogbGF0aW4tZXh0ICovCkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnRE0gU2Fucyc7CiAgZm9udC1zdHlsZTogbm9ybWFsOwogIGZvbnQtd2VpZ2h0OiAzMDA7CiAgZm9udC1kaXNwbGF5OiBzd2FwOwogIHNyYzogdXJsKGh0dHBzOi8vZm9udHMuZ3N0YXRpYy5jb20vcy9kbXNhbnMvdjE3L3JQMllwMnl3eGcwODlVcmlJNS1nNHZsSDlWb0Q4Q21jcWJ1Ni1LNno4R1hoblUwNGF3LndvZmYyKSBmb3JtYXQoJ3dvZmYyJyk7CiAgdW5pY29kZS1yYW5nZTogVSswMTAwLTAyQkEsIFUrMDJCRC0wMkM1LCBVKzAyQzctMDJDQywgVSswMkNFLTAyRDcsIFUrMDJERC0wMkZGLCBVKzAzMDQsIFUrMDMwOCwgVSswMzI5LCBVKzFEMDAtMURCRiwgVSsxRTAwLTFFOUYsIFUrMUVGMi0xRUZGLCBVKzIwMjAsIFUrMjBBMC0yMEFCLCBVKzIwQUQtMjBDMCwgVSsyMTEzLCBVKzJDNjAtMkM3RiwgVStBNzIwLUE3RkY7Cn0KLyogbGF0aW4gKi8KQGZvbnQtZmFjZSB7CiAgZm9udC1mYW1pbHk6ICdETSBTYW5zJzsKICBmb250LXN0eWxlOiBub3JtYWw7CiAgZm9udC13ZWlnaHQ6IDMwMDsKICBmb250LWRpc3BsYXk6IHN3YXA7CiAgc3JjOiB1cmwoaHR0cHM6Ly9mb250cy5nc3RhdGljLmNvbS9zL2Rtc2Fucy92MTcvclAyWXAyeXd4ZzA4OVVyaUk1LWc0dmxIOVZvRDhDbWNxYnUwLUs2ejhHWGhuVTAud29mZjIpIGZvcm1hdCgnd29mZjInKTsKICB1bmljb2RlLXJhbmdlOiBVKzAwMDAtMDBGRiwgVSswMTMxLCBVKzAxNTItMDE1MywgVSswMkJCLTAyQkMsIFUrMDJDNiwgVSswMkRBLCBVKzAyREMsIFUrMDMwNCwgVSswMzA4LCBVKzAzMjksIFUrMjAwMC0yMDZGLCBVKzIwQUMsIFUrMjEyMiwgVSsyMTkxLCBVKzIxOTMsIFUrMjIxMiwgVSsyMjE1LCBVK0ZFRkYsIFUrRkZGRDsKfQovKiBsYXRpbi1leHQgKi8KQGZvbnQtZmFjZSB7CiAgZm9udC1mYW1pbHk6ICdETSBTYW5zJzsKICBmb250LXN0eWxlOiBub3JtYWw7CiAgZm9udC13ZWlnaHQ6IDQwMDsKICBmb250LWRpc3BsYXk6IHN3YXA7CiAgc3JjOiB1cmwoaHR0cHM6Ly9mb250cy5nc3RhdGljLmNvbS9zL2Rtc2Fucy92MTcvclAyWXAyeXd4ZzA4OVVyaUk1LWc0dmxIOVZvRDhDbWNxYnU2LUs2ejhHWGhuVTA0YXcud29mZjIpIGZvcm1hdCgnd29mZjInKTsKICB1bmljb2RlLXJhbmdlOiBVKzAxMDAtMDJCQSwgVSswMkJELTAyQzUsIFUrMDJDNy0wMkNDLCBVKzAyQ0UtMDJENywgVSswMkRELTAyRkYsIFUrMDMwNCwgVSswMzA4LCBVKzAzMjksIFUrMUQwMC0xREJGLCBVKzFFMDAtMUU5RiwgVSsxRUYyLTFFRkYsIFUrMjAyMCwgVSsyMEEwLTIwQUIsIFUrMjBBRC0yMEMwLCBVKzIxMTMsIFUrMkM2MC0yQzdGLCBVK0E3MjAtQTdGRjsKfQovKiBsYXRpbiAqLwpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ0RNIFNhbnMnOwogIGZvbnQtc3R5bGU6IG5vcm1hbDsKICBmb250LXdlaWdodDogNDAwOwogIGZvbnQtZGlzcGxheTogc3dhcDsKICBzcmM6IHVybChodHRwczovL2ZvbnRzLmdzdGF0aWMuY29tL3MvZG1zYW5zL3YxNy9yUDJZcDJ5d3hnMDg5VXJpSTUtZzR2bEg5Vm9EOENtY3FidTAtSzZ6OEdYaG5VMC53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDAwMC0wMEZGLCBVKzAxMzEsIFUrMDE1Mi0wMTUzLCBVKzAyQkItMDJCQywgVSswMkM2LCBVKzAyREEsIFUrMDJEQywgVSswMzA0LCBVKzAzMDgsIFUrMDMyOSwgVSsyMDAwLTIwNkYsIFUrMjBBQywgVSsyMTIyLCBVKzIxOTEsIFUrMjE5MywgVSsyMjEyLCBVKzIyMTUsIFUrRkVGRiwgVStGRkZEOwp9Ci8qIGxhdGluLWV4dCAqLwpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ0RNIFNhbnMnOwogIGZvbnQtc3R5bGU6IG5vcm1hbDsKICBmb250LXdlaWdodDogNTAwOwogIGZvbnQtZGlzcGxheTogc3dhcDsKICBzcmM6IHVybChodHRwczovL2ZvbnRzLmdzdGF0aWMuY29tL3MvZG1zYW5zL3YxNy9yUDJZcDJ5d3hnMDg5VXJpSTUtZzR2bEg5Vm9EOENtY3FidTYtSzZ6OEdYaG5VMDRhdy53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDEwMC0wMkJBLCBVKzAyQkQtMDJDNSwgVSswMkM3LTAyQ0MsIFUrMDJDRS0wMkQ3LCBVKzAyREQtMDJGRiwgVSswMzA0LCBVKzAzMDgsIFUrMDMyOSwgVSsxRDAwLTFEQkYsIFUrMUUwMC0xRTlGLCBVKzFFRjItMUVGRiwgVSsyMDIwLCBVKzIwQTAtMjBBQiwgVSsyMEFELTIwQzAsIFUrMjExMywgVSsyQzYwLTJDN0YsIFUrQTcyMC1BN0ZGOwp9Ci8qIGxhdGluICovCkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnRE0gU2Fucyc7CiAgZm9udC1zdHlsZTogbm9ybWFsOwogIGZvbnQtd2VpZ2h0OiA1MDA7CiAgZm9udC1kaXNwbGF5OiBzd2FwOwogIHNyYzogdXJsKGh0dHBzOi8vZm9udHMuZ3N0YXRpYy5jb20vcy9kbXNhbnMvdjE3L3JQMllwMnl3eGcwODlVcmlJNS1nNHZsSDlWb0Q4Q21jcWJ1MC1LNno4R1hoblUwLndvZmYyKSBmb3JtYXQoJ3dvZmYyJyk7CiAgdW5pY29kZS1yYW5nZTogVSswMDAwLTAwRkYsIFUrMDEzMSwgVSswMTUyLTAxNTMsIFUrMDJCQi0wMkJDLCBVKzAyQzYsIFUrMDJEQSwgVSswMkRDLCBVKzAzMDQsIFUrMDMwOCwgVSswMzI5LCBVKzIwMDAtMjA2RiwgVSsyMEFDLCBVKzIxMjIsIFUrMjE5MSwgVSsyMTkzLCBVKzIyMTIsIFUrMjIxNSwgVStGRUZGLCBVK0ZGRkQ7Cn0KLyogbGF0aW4tZXh0ICovCkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnRE0gU2Fucyc7CiAgZm9udC1zdHlsZTogbm9ybWFsOwogIGZvbnQtd2VpZ2h0OiA2MDA7CiAgZm9udC1kaXNwbGF5OiBzd2FwOwogIHNyYzogdXJsKGh0dHBzOi8vZm9udHMuZ3N0YXRpYy5jb20vcy9kbXNhbnMvdjE3L3JQMllwMnl3eGcwODlVcmlJNS1nNHZsSDlWb0Q4Q21jcWJ1Ni1LNno4R1hoblUwNGF3LndvZmYyKSBmb3JtYXQoJ3dvZmYyJyk7CiAgdW5pY29kZS1yYW5nZTogVSswMTAwLTAyQkEsIFUrMDJCRC0wMkM1LCBVKzAyQzctMDJDQywgVSswMkNFLTAyRDcsIFUrMDJERC0wMkZGLCBVKzAzMDQsIFUrMDMwOCwgVSswMzI5LCBVKzFEMDAtMURCRiwgVSsxRTAwLTFFOUYsIFUrMUVGMi0xRUZGLCBVKzIwMjAsIFUrMjBBMC0yMEFCLCBVKzIwQUQtMjBDMCwgVSsyMTEzLCBVKzJDNjAtMkM3RiwgVStBNzIwLUE3RkY7Cn0KLyogbGF0aW4gKi8KQGZvbnQtZmFjZSB7CiAgZm9udC1mYW1pbHk6ICdETSBTYW5zJzsKICBmb250LXN0eWxlOiBub3JtYWw7CiAgZm9udC13ZWlnaHQ6IDYwMDsKICBmb250LWRpc3BsYXk6IHN3YXA7CiAgc3JjOiB1cmwoaHR0cHM6Ly9mb250cy5nc3RhdGljLmNvbS9zL2Rtc2Fucy92MTcvclAyWXAyeXd4ZzA4OVVyaUk1LWc0dmxIOVZvRDhDbWNxYnUwLUs2ejhHWGhuVTAud29mZjIpIGZvcm1hdCgnd29mZjInKTsKICB1bmljb2RlLXJhbmdlOiBVKzAwMDAtMDBGRiwgVSswMTMxLCBVKzAxNTItMDE1MywgVSswMkJCLTAyQkMsIFUrMDJDNiwgVSswMkRBLCBVKzAyREMsIFUrMDMwNCwgVSswMzA4LCBVKzAzMjksIFUrMjAwMC0yMDZGLCBVKzIwQUMsIFUrMjEyMiwgVSsyMTkxLCBVKzIxOTMsIFUrMjIxMiwgVSsyMjE1LCBVK0ZFRkYsIFUrRkZGRDsKfQovKiBjeXJpbGxpYyAqLwpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ1BsYXlmYWlyIERpc3BsYXknOwogIGZvbnQtc3R5bGU6IGl0YWxpYzsKICBmb250LXdlaWdodDogNDAwOwogIGZvbnQtZGlzcGxheTogc3dhcDsKICBzcmM6IHVybChodHRwczovL2ZvbnRzLmdzdGF0aWMuY29tL3MvcGxheWZhaXJkaXNwbGF5L3Y0MC9udUZrRC12WVNadmlWWVViX3JqM2lqX19hblBYRFRub2hrazcyeFUud29mZjIpIGZvcm1hdCgnd29mZjInKTsKICB1bmljb2RlLXJhbmdlOiBVKzAzMDEsIFUrMDQwMC0wNDVGLCBVKzA0OTAtMDQ5MSwgVSswNEIwLTA0QjEsIFUrMjExNjsKfQovKiB2aWV0bmFtZXNlICovCkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnUGxheWZhaXIgRGlzcGxheSc7CiAgZm9udC1zdHlsZTogaXRhbGljOwogIGZvbnQtd2VpZ2h0OiA0MDA7CiAgZm9udC1kaXNwbGF5OiBzd2FwOwogIHNyYzogdXJsKGh0dHBzOi8vZm9udHMuZ3N0YXRpYy5jb20vcy9wbGF5ZmFpcmRpc3BsYXkvdjQwL251RmtELXZZU1p2aVZZVWJfcmozaWpfX2FuUFhEVG5valVrNzJ4VS53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDEwMi0wMTAzLCBVKzAxMTAtMDExMSwgVSswMTI4LTAxMjksIFUrMDE2OC0wMTY5LCBVKzAxQTAtMDFBMSwgVSswMUFGLTAxQjAsIFUrMDMwMC0wMzAxLCBVKzAzMDMtMDMwNCwgVSswMzA4LTAzMDksIFUrMDMyMywgVSswMzI5LCBVKzFFQTAtMUVGOSwgVSsyMEFCOwp9Ci8qIGxhdGluLWV4dCAqLwpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ1BsYXlmYWlyIERpc3BsYXknOwogIGZvbnQtc3R5bGU6IGl0YWxpYzsKICBmb250LXdlaWdodDogNDAwOwogIGZvbnQtZGlzcGxheTogc3dhcDsKICBzcmM6IHVybChodHRwczovL2ZvbnRzLmdzdGF0aWMuY29tL3MvcGxheWZhaXJkaXNwbGF5L3Y0MC9udUZrRC12WVNadmlWWVViX3JqM2lqX19hblBYRFRub2pFazcyeFUud29mZjIpIGZvcm1hdCgnd29mZjInKTsKICB1bmljb2RlLXJhbmdlOiBVKzAxMDAtMDJCQSwgVSswMkJELTAyQzUsIFUrMDJDNy0wMkNDLCBVKzAyQ0UtMDJENywgVSswMkRELTAyRkYsIFUrMDMwNCwgVSswMzA4LCBVKzAzMjksIFUrMUQwMC0xREJGLCBVKzFFMDAtMUU5RiwgVSsxRUYyLTFFRkYsIFUrMjAyMCwgVSsyMEEwLTIwQUIsIFUrMjBBRC0yMEMwLCBVKzIxMTMsIFUrMkM2MC0yQzdGLCBVK0E3MjAtQTdGRjsKfQovKiBsYXRpbiAqLwpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ1BsYXlmYWlyIERpc3BsYXknOwogIGZvbnQtc3R5bGU6IGl0YWxpYzsKICBmb250LXdlaWdodDogNDAwOwogIGZvbnQtZGlzcGxheTogc3dhcDsKICBzcmM6IHVybChodHRwczovL2ZvbnRzLmdzdGF0aWMuY29tL3MvcGxheWZhaXJkaXNwbGF5L3Y0MC9udUZrRC12WVNadmlWWVViX3JqM2lqX19hblBYRFRub2drazcud29mZjIpIGZvcm1hdCgnd29mZjInKTsKICB1bmljb2RlLXJhbmdlOiBVKzAwMDAtMDBGRiwgVSswMTMxLCBVKzAxNTItMDE1MywgVSswMkJCLTAyQkMsIFUrMDJDNiwgVSswMkRBLCBVKzAyREMsIFUrMDMwNCwgVSswMzA4LCBVKzAzMjksIFUrMjAwMC0yMDZGLCBVKzIwQUMsIFUrMjEyMiwgVSsyMTkxLCBVKzIxOTMsIFUrMjIxMiwgVSsyMjE1LCBVK0ZFRkYsIFUrRkZGRDsKfQovKiBjeXJpbGxpYyAqLwpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ1BsYXlmYWlyIERpc3BsYXknOwogIGZvbnQtc3R5bGU6IGl0YWxpYzsKICBmb250LXdlaWdodDogNjAwOwogIGZvbnQtZGlzcGxheTogc3dhcDsKICBzcmM6IHVybChodHRwczovL2ZvbnRzLmdzdGF0aWMuY29tL3MvcGxheWZhaXJkaXNwbGF5L3Y0MC9udUZrRC12WVNadmlWWVViX3JqM2lqX19hblBYRFRub2hrazcyeFUud29mZjIpIGZvcm1hdCgnd29mZjInKTsKICB1bmljb2RlLXJhbmdlOiBVKzAzMDEsIFUrMDQwMC0wNDVGLCBVKzA0OTAtMDQ5MSwgVSswNEIwLTA0QjEsIFUrMjExNjsKfQovKiB2aWV0bmFtZXNlICovCkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnUGxheWZhaXIgRGlzcGxheSc7CiAgZm9udC1zdHlsZTogaXRhbGljOwogIGZvbnQtd2VpZ2h0OiA2MDA7CiAgZm9udC1kaXNwbGF5OiBzd2FwOwogIHNyYzogdXJsKGh0dHBzOi8vZm9udHMuZ3N0YXRpYy5jb20vcy9wbGF5ZmFpcmRpc3BsYXkvdjQwL251RmtELXZZU1p2aVZZVWJfcmozaWpfX2FuUFhEVG5valVrNzJ4VS53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDEwMi0wMTAzLCBVKzAxMTAtMDExMSwgVSswMTI4LTAxMjksIFUrMDE2OC0wMTY5LCBVKzAxQTAtMDFBMSwgVSswMUFGLTAxQjAsIFUrMDMwMC0wMzAxLCBVKzAzMDMtMDMwNCwgVSswMzA4LTAzMDksIFUrMDMyMywgVSswMzI5LCBVKzFFQTAtMUVGOSwgVSsyMEFCOwp9Ci8qIGxhdGluLWV4dCAqLwpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ1BsYXlmYWlyIERpc3BsYXknOwogIGZvbnQtc3R5bGU6IGl0YWxpYzsKICBmb250LXdlaWdodDogNjAwOwogIGZvbnQtZGlzcGxheTogc3dhcDsKICBzcmM6IHVybChodHRwczovL2ZvbnRzLmdzdGF0aWMuY29tL3MvcGxheWZhaXJkaXNwbGF5L3Y0MC9udUZrRC12WVNadmlWWVViX3JqM2lqX19hblBYRFRub2pFazcyeFUud29mZjIpIGZvcm1hdCgnd29mZjInKTsKICB1bmljb2RlLXJhbmdlOiBVKzAxMDAtMDJCQSwgVSswMkJELTAyQzUsIFUrMDJDNy0wMkNDLCBVKzAyQ0UtMDJENywgVSswMkRELTAyRkYsIFUrMDMwNCwgVSswMzA4LCBVKzAzMjksIFUrMUQwMC0xREJGLCBVKzFFMDAtMUU5RiwgVSsxRUYyLTFFRkYsIFUrMjAyMCwgVSsyMEEwLTIwQUIsIFUrMjBBRC0yMEMwLCBVKzIxMTMsIFUrMkM2MC0yQzdGLCBVK0E3MjAtQTdGRjsKfQovKiBsYXRpbiAqLwpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ1BsYXlmYWlyIERpc3BsYXknOwogIGZvbnQtc3R5bGU6IGl0YWxpYzsKICBmb250LXdlaWdodDogNjAwOwogIGZvbnQtZGlzcGxheTogc3dhcDsKICBzcmM6IHVybChodHRwczovL2ZvbnRzLmdzdGF0aWMuY29tL3MvcGxheWZhaXJkaXNwbGF5L3Y0MC9udUZrRC12WVNadmlWWVViX3JqM2lqX19hblBYRFRub2drazcud29mZjIpIGZvcm1hdCgnd29mZjInKTsKICB1bmljb2RlLXJhbmdlOiBVKzAwMDAtMDBGRiwgVSswMTMxLCBVKzAxNTItMDE1MywgVSswMkJCLTAyQkMsIFUrMDJDNiwgVSswMkRBLCBVKzAyREMsIFUrMDMwNCwgVSswMzA4LCBVKzAzMjksIFUrMjAwMC0yMDZGLCBVKzIwQUMsIFUrMjEyMiwgVSsyMTkxLCBVKzIxOTMsIFUrMjIxMiwgVSsyMjE1LCBVK0ZFRkYsIFUrRkZGRDsKfQovKiBjeXJpbGxpYyAqLwpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ1BsYXlmYWlyIERpc3BsYXknOwogIGZvbnQtc3R5bGU6IG5vcm1hbDsKICBmb250LXdlaWdodDogNDAwOwogIGZvbnQtZGlzcGxheTogc3dhcDsKICBzcmM6IHVybChodHRwczovL2ZvbnRzLmdzdGF0aWMuY29tL3MvcGxheWZhaXJkaXNwbGF5L3Y0MC9udUZpRC12WVNadmlWWVViX3JqM2lqX19hblBYRFRqWWdGRV8ud29mZjIpIGZvcm1hdCgnd29mZjInKTsKICB1bmljb2RlLXJhbmdlOiBVKzAzMDEsIFUrMDQwMC0wNDVGLCBVKzA0OTAtMDQ5MSwgVSswNEIwLTA0QjEsIFUrMjExNjsKfQovKiB2aWV0bmFtZXNlICovCkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnUGxheWZhaXIgRGlzcGxheSc7CiAgZm9udC1zdHlsZTogbm9ybWFsOwogIGZvbnQtd2VpZ2h0OiA0MDA7CiAgZm9udC1kaXNwbGF5OiBzd2FwOwogIHNyYzogdXJsKGh0dHBzOi8vZm9udHMuZ3N0YXRpYy5jb20vcy9wbGF5ZmFpcmRpc3BsYXkvdjQwL251RmlELXZZU1p2aVZZVWJfcmozaWpfX2FuUFhEVFBZZ0ZFXy53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDEwMi0wMTAzLCBVKzAxMTAtMDExMSwgVSswMTI4LTAxMjksIFUrMDE2OC0wMTY5LCBVKzAxQTAtMDFBMSwgVSswMUFGLTAxQjAsIFUrMDMwMC0wMzAxLCBVKzAzMDMtMDMwNCwgVSswMzA4LTAzMDksIFUrMDMyMywgVSswMzI5LCBVKzFFQTAtMUVGOSwgVSsyMEFCOwp9Ci8qIGxhdGluLWV4dCAqLwpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ1BsYXlmYWlyIERpc3BsYXknOwogIGZvbnQtc3R5bGU6IG5vcm1hbDsKICBmb250LXdlaWdodDogNDAwOwogIGZvbnQtZGlzcGxheTogc3dhcDsKICBzcmM6IHVybChodHRwczovL2ZvbnRzLmdzdGF0aWMuY29tL3MvcGxheWZhaXJkaXNwbGF5L3Y0MC9udUZpRC12WVNadmlWWVViX3JqM2lqX19hblBYRFRMWWdGRV8ud29mZjIpIGZvcm1hdCgnd29mZjInKTsKICB1bmljb2RlLXJhbmdlOiBVKzAxMDAtMDJCQSwgVSswMkJELTAyQzUsIFUrMDJDNy0wMkNDLCBVKzAyQ0UtMDJENywgVSswMkRELTAyRkYsIFUrMDMwNCwgVSswMzA4LCBVKzAzMjksIFUrMUQwMC0xREJGLCBVKzFFMDAtMUU5RiwgVSsxRUYyLTFFRkYsIFUrMjAyMCwgVSsyMEEwLTIwQUIsIFUrMjBBRC0yMEMwLCBVKzIxMTMsIFUrMkM2MC0yQzdGLCBVK0E3MjAtQTdGRjsKfQovKiBsYXRpbiAqLwpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ1BsYXlmYWlyIERpc3BsYXknOwogIGZvbnQtc3R5bGU6IG5vcm1hbDsKICBmb250LXdlaWdodDogNDAwOwogIGZvbnQtZGlzcGxheTogc3dhcDsKICBzcmM6IHVybChodHRwczovL2ZvbnRzLmdzdGF0aWMuY29tL3MvcGxheWZhaXJkaXNwbGF5L3Y0MC9udUZpRC12WVNadmlWWVViX3JqM2lqX19hblBYRFR6WWdBLndvZmYyKSBmb3JtYXQoJ3dvZmYyJyk7CiAgdW5pY29kZS1yYW5nZTogVSswMDAwLTAwRkYsIFUrMDEzMSwgVSswMTUyLTAxNTMsIFUrMDJCQi0wMkJDLCBVKzAyQzYsIFUrMDJEQSwgVSswMkRDLCBVKzAzMDQsIFUrMDMwOCwgVSswMzI5LCBVKzIwMDAtMjA2RiwgVSsyMEFDLCBVKzIxMjIsIFUrMjE5MSwgVSsyMTkzLCBVKzIyMTIsIFUrMjIxNSwgVStGRUZGLCBVK0ZGRkQ7Cn0KLyogY3lyaWxsaWMgKi8KQGZvbnQtZmFjZSB7CiAgZm9udC1mYW1pbHk6ICdQbGF5ZmFpciBEaXNwbGF5JzsKICBmb250LXN0eWxlOiBub3JtYWw7CiAgZm9udC13ZWlnaHQ6IDYwMDsKICBmb250LWRpc3BsYXk6IHN3YXA7CiAgc3JjOiB1cmwoaHR0cHM6Ly9mb250cy5nc3RhdGljLmNvbS9zL3BsYXlmYWlyZGlzcGxheS92NDAvbnVGaUQtdllTWnZpVllVYl9yajNpal9fYW5QWERUallnRkVfLndvZmYyKSBmb3JtYXQoJ3dvZmYyJyk7CiAgdW5pY29kZS1yYW5nZTogVSswMzAxLCBVKzA0MDAtMDQ1RiwgVSswNDkwLTA0OTEsIFUrMDRCMC0wNEIxLCBVKzIxMTY7Cn0KLyogdmlldG5hbWVzZSAqLwpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ1BsYXlmYWlyIERpc3BsYXknOwogIGZvbnQtc3R5bGU6IG5vcm1hbDsKICBmb250LXdlaWdodDogNjAwOwogIGZvbnQtZGlzcGxheTogc3dhcDsKICBzcmM6IHVybChodHRwczovL2ZvbnRzLmdzdGF0aWMuY29tL3MvcGxheWZhaXJkaXNwbGF5L3Y0MC9udUZpRC12WVNadmlWWVViX3JqM2lqX19hblBYRFRQWWdGRV8ud29mZjIpIGZvcm1hdCgnd29mZjInKTsKICB1bmljb2RlLXJhbmdlOiBVKzAxMDItMDEwMywgVSswMTEwLTAxMTEsIFUrMDEyOC0wMTI5LCBVKzAxNjgtMDE2OSwgVSswMUEwLTAxQTEsIFUrMDFBRi0wMUIwLCBVKzAzMDAtMDMwMSwgVSswMzAzLTAzMDQsIFUrMDMwOC0wMzA5LCBVKzAzMjMsIFUrMDMyOSwgVSsxRUEwLTFFRjksIFUrMjBBQjsKfQovKiBsYXRpbi1leHQgKi8KQGZvbnQtZmFjZSB7CiAgZm9udC1mYW1pbHk6ICdQbGF5ZmFpciBEaXNwbGF5JzsKICBmb250LXN0eWxlOiBub3JtYWw7CiAgZm9udC13ZWlnaHQ6IDYwMDsKICBmb250LWRpc3BsYXk6IHN3YXA7CiAgc3JjOiB1cmwoaHR0cHM6Ly9mb250cy5nc3RhdGljLmNvbS9zL3BsYXlmYWlyZGlzcGxheS92NDAvbnVGaUQtdllTWnZpVllVYl9yajNpal9fYW5QWERUTFlnRkVfLndvZmYyKSBmb3JtYXQoJ3dvZmYyJyk7CiAgdW5pY29kZS1yYW5nZTogVSswMTAwLTAyQkEsIFUrMDJCRC0wMkM1LCBVKzAyQzctMDJDQywgVSswMkNFLTAyRDcsIFUrMDJERC0wMkZGLCBVKzAzMDQsIFUrMDMwOCwgVSswMzI5LCBVKzFEMDAtMURCRiwgVSsxRTAwLTFFOUYsIFUrMUVGMi0xRUZGLCBVKzIwMjAsIFUrMjBBMC0yMEFCLCBVKzIwQUQtMjBDMCwgVSsyMTEzLCBVKzJDNjAtMkM3RiwgVStBNzIwLUE3RkY7Cn0KLyogbGF0aW4gKi8KQGZvbnQtZmFjZSB7CiAgZm9udC1mYW1pbHk6ICdQbGF5ZmFpciBEaXNwbGF5JzsKICBmb250LXN0eWxlOiBub3JtYWw7CiAgZm9udC13ZWlnaHQ6IDYwMDsKICBmb250LWRpc3BsYXk6IHN3YXA7CiAgc3JjOiB1cmwoaHR0cHM6Ly9mb250cy5nc3RhdGljLmNvbS9zL3BsYXlmYWlyZGlzcGxheS92NDAvbnVGaUQtdllTWnZpVllVYl9yajNpal9fYW5QWERUellnQS53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDAwMC0wMEZGLCBVKzAxMzEsIFUrMDE1Mi0wMTUzLCBVKzAyQkItMDJCQywgVSswMkM2LCBVKzAyREEsIFUrMDJEQywgVSswMzA0LCBVKzAzMDgsIFUrMDMyOSwgVSsyMDAwLTIwNkYsIFUrMjBBQywgVSsyMTIyLCBVKzIxOTEsIFUrMjE5MywgVSsyMjEyLCBVKzIyMTUsIFUrRkVGRiwgVStGRkZEOwp9Ci8qIGN5cmlsbGljICovCkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnUGxheWZhaXIgRGlzcGxheSc7CiAgZm9udC1zdHlsZTogbm9ybWFsOwogIGZvbnQtd2VpZ2h0OiA3MDA7CiAgZm9udC1kaXNwbGF5OiBzd2FwOwogIHNyYzogdXJsKGh0dHBzOi8vZm9udHMuZ3N0YXRpYy5jb20vcy9wbGF5ZmFpcmRpc3BsYXkvdjQwL251RmlELXZZU1p2aVZZVWJfcmozaWpfX2FuUFhEVGpZZ0ZFXy53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDMwMSwgVSswNDAwLTA0NUYsIFUrMDQ5MC0wNDkxLCBVKzA0QjAtMDRCMSwgVSsyMTE2Owp9Ci8qIHZpZXRuYW1lc2UgKi8KQGZvbnQtZmFjZSB7CiAgZm9udC1mYW1pbHk6ICdQbGF5ZmFpciBEaXNwbGF5JzsKICBmb250LXN0eWxlOiBub3JtYWw7CiAgZm9udC13ZWlnaHQ6IDcwMDsKICBmb250LWRpc3BsYXk6IHN3YXA7CiAgc3JjOiB1cmwoaHR0cHM6Ly9mb250cy5nc3RhdGljLmNvbS9zL3BsYXlmYWlyZGlzcGxheS92NDAvbnVGaUQtdllTWnZpVllVYl9yajNpal9fYW5QWERUUFlnRkVfLndvZmYyKSBmb3JtYXQoJ3dvZmYyJyk7CiAgdW5pY29kZS1yYW5nZTogVSswMTAyLTAxMDMsIFUrMDExMC0wMTExLCBVKzAxMjgtMDEyOSwgVSswMTY4LTAxNjksIFUrMDFBMC0wMUExLCBVKzAxQUYtMDFCMCwgVSswMzAwLTAzMDEsIFUrMDMwMy0wMzA0LCBVKzAzMDgtMDMwOSwgVSswMzIzLCBVKzAzMjksIFUrMUVBMC0xRUY5LCBVKzIwQUI7Cn0KLyogbGF0aW4tZXh0ICovCkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnUGxheWZhaXIgRGlzcGxheSc7CiAgZm9udC1zdHlsZTogbm9ybWFsOwogIGZvbnQtd2VpZ2h0OiA3MDA7CiAgZm9udC1kaXNwbGF5OiBzd2FwOwogIHNyYzogdXJsKGh0dHBzOi8vZm9udHMuZ3N0YXRpYy5jb20vcy9wbGF5ZmFpcmRpc3BsYXkvdjQwL251RmlELXZZU1p2aVZZVWJfcmozaWpfX2FuUFhEVExZZ0ZFXy53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDEwMC0wMkJBLCBVKzAyQkQtMDJDNSwgVSswMkM3LTAyQ0MsIFUrMDJDRS0wMkQ3LCBVKzAyREQtMDJGRiwgVSswMzA0LCBVKzAzMDgsIFUrMDMyOSwgVSsxRDAwLTFEQkYsIFUrMUUwMC0xRTlGLCBVKzFFRjItMUVGRiwgVSsyMDIwLCBVKzIwQTAtMjBBQiwgVSsyMEFELTIwQzAsIFUrMjExMywgVSsyQzYwLTJDN0YsIFUrQTcyMC1BN0ZGOwp9Ci8qIGxhdGluICovCkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnUGxheWZhaXIgRGlzcGxheSc7CiAgZm9udC1zdHlsZTogbm9ybWFsOwogIGZvbnQtd2VpZ2h0OiA3MDA7CiAgZm9udC1kaXNwbGF5OiBzd2FwOwogIHNyYzogdXJsKGh0dHBzOi8vZm9udHMuZ3N0YXRpYy5jb20vcy9wbGF5ZmFpcmRpc3BsYXkvdjQwL251RmlELXZZU1p2aVZZVWJfcmozaWpfX2FuUFhEVHpZZ0Eud29mZjIpIGZvcm1hdCgnd29mZjInKTsKICB1bmljb2RlLXJhbmdlOiBVKzAwMDAtMDBGRiwgVSswMTMxLCBVKzAxNTItMDE1MywgVSswMkJCLTAyQkMsIFUrMDJDNiwgVSswMkRBLCBVKzAyREMsIFUrMDMwNCwgVSswMzA4LCBVKzAzMjksIFUrMjAwMC0yMDZGLCBVKzIwQUMsIFUrMjEyMiwgVSsyMTkxLCBVKzIxOTMsIFUrMjIxMiwgVSsyMjE1LCBVK0ZFRkYsIFUrRkZGRDsKfQovKiBjeXJpbGxpYyAqLwpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ1BsYXlmYWlyIERpc3BsYXknOwogIGZvbnQtc3R5bGU6IG5vcm1hbDsKICBmb250LXdlaWdodDogODAwOwogIGZvbnQtZGlzcGxheTogc3dhcDsKICBzcmM6IHVybChodHRwczovL2ZvbnRzLmdzdGF0aWMuY29tL3MvcGxheWZhaXJkaXNwbGF5L3Y0MC9udUZpRC12WVNadmlWWVViX3JqM2lqX19hblBYRFRqWWdGRV8ud29mZjIpIGZvcm1hdCgnd29mZjInKTsKICB1bmljb2RlLXJhbmdlOiBVKzAzMDEsIFUrMDQwMC0wNDVGLCBVKzA0OTAtMDQ5MSwgVSswNEIwLTA0QjEsIFUrMjExNjsKfQovKiB2aWV0bmFtZXNlICovCkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnUGxheWZhaXIgRGlzcGxheSc7CiAgZm9udC1zdHlsZTogbm9ybWFsOwogIGZvbnQtd2VpZ2h0OiA4MDA7CiAgZm9udC1kaXNwbGF5OiBzd2FwOwogIHNyYzogdXJsKGh0dHBzOi8vZm9udHMuZ3N0YXRpYy5jb20vcy9wbGF5ZmFpcmRpc3BsYXkvdjQwL251RmlELXZZU1p2aVZZVWJfcmozaWpfX2FuUFhEVFBZZ0ZFXy53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDEwMi0wMTAzLCBVKzAxMTAtMDExMSwgVSswMTI4LTAxMjksIFUrMDE2OC0wMTY5LCBVKzAxQTAtMDFBMSwgVSswMUFGLTAxQjAsIFUrMDMwMC0wMzAxLCBVKzAzMDMtMDMwNCwgVSswMzA4LTAzMDksIFUrMDMyMywgVSswMzI5LCBVKzFFQTAtMUVGOSwgVSsyMEFCOwp9Ci8qIGxhdGluLWV4dCAqLwpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ1BsYXlmYWlyIERpc3BsYXknOwogIGZvbnQtc3R5bGU6IG5vcm1hbDsKICBmb250LXdlaWdodDogODAwOwogIGZvbnQtZGlzcGxheTogc3dhcDsKICBzcmM6IHVybChodHRwczovL2ZvbnRzLmdzdGF0aWMuY29tL3MvcGxheWZhaXJkaXNwbGF5L3Y0MC9udUZpRC12WVNadmlWWVViX3JqM2lqX19hblBYRFRMWWdGRV8ud29mZjIpIGZvcm1hdCgnd29mZjInKTsKICB1bmljb2RlLXJhbmdlOiBVKzAxMDAtMDJCQSwgVSswMkJELTAyQzUsIFUrMDJDNy0wMkNDLCBVKzAyQ0UtMDJENywgVSswMkRELTAyRkYsIFUrMDMwNCwgVSswMzA4LCBVKzAzMjksIFUrMUQwMC0xREJGLCBVKzFFMDAtMUU5RiwgVSsxRUYyLTFFRkYsIFUrMjAyMCwgVSsyMEEwLTIwQUIsIFUrMjBBRC0yMEMwLCBVKzIxMTMsIFUrMkM2MC0yQzdGLCBVK0E3MjAtQTdGRjsKfQovKiBsYXRpbiAqLwpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ1BsYXlmYWlyIERpc3BsYXknOwogIGZvbnQtc3R5bGU6IG5vcm1hbDsKICBmb250LXdlaWdodDogODAwOwogIGZvbnQtZGlzcGxheTogc3dhcDsKICBzcmM6IHVybChodHRwczovL2ZvbnRzLmdzdGF0aWMuY29tL3MvcGxheWZhaXJkaXNwbGF5L3Y0MC9udUZpRC12WVNadmlWWVViX3JqM2lqX19hblBYRFR6WWdBLndvZmYyKSBmb3JtYXQoJ3dvZmYyJyk7CiAgdW5pY29kZS1yYW5nZTogVSswMDAwLTAwRkYsIFUrMDEzMSwgVSswMTUyLTAxNTMsIFUrMDJCQi0wMkJDLCBVKzAyQzYsIFUrMDJEQSwgVSswMkRDLCBVKzAzMDQsIFUrMDMwOCwgVSswMzI5LCBVKzIwMDAtMjA2RiwgVSsyMEFDLCBVKzIxMjIsIFUrMjE5MSwgVSsyMTkzLCBVKzIyMTIsIFUrMjIxNSwgVStGRUZGLCBVK0ZGRkQ7Cn0KLyogdmlldG5hbWVzZSAqLwpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ1NwYWNlIE1vbm8nOwogIGZvbnQtc3R5bGU6IG5vcm1hbDsKICBmb250LXdlaWdodDogNDAwOwogIGZvbnQtZGlzcGxheTogc3dhcDsKICBzcmM6IHVybChodHRwczovL2ZvbnRzLmdzdGF0aWMuY29tL3Mvc3BhY2Vtb25vL3YxNy9pN2RQSUZaaWZqS2NGNVVBV2REUllFNThSV3E3LndvZmYyKSBmb3JtYXQoJ3dvZmYyJyk7CiAgdW5pY29kZS1yYW5nZTogVSswMTAyLTAxMDMsIFUrMDExMC0wMTExLCBVKzAxMjgtMDEyOSwgVSswMTY4LTAxNjksIFUrMDFBMC0wMUExLCBVKzAxQUYtMDFCMCwgVSswMzAwLTAzMDEsIFUrMDMwMy0wMzA0LCBVKzAzMDgtMDMwOSwgVSswMzIzLCBVKzAzMjksIFUrMUVBMC0xRUY5LCBVKzIwQUI7Cn0KLyogbGF0aW4tZXh0ICovCkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnU3BhY2UgTW9ubyc7CiAgZm9udC1zdHlsZTogbm9ybWFsOwogIGZvbnQtd2VpZ2h0OiA0MDA7CiAgZm9udC1kaXNwbGF5OiBzd2FwOwogIHNyYzogdXJsKGh0dHBzOi8vZm9udHMuZ3N0YXRpYy5jb20vcy9zcGFjZW1vbm8vdjE3L2k3ZFBJRlppZmpLY0Y1VUFXZERSWUU5OFJXcTcud29mZjIpIGZvcm1hdCgnd29mZjInKTsKICB1bmljb2RlLXJhbmdlOiBVKzAxMDAtMDJCQSwgVSswMkJELTAyQzUsIFUrMDJDNy0wMkNDLCBVKzAyQ0UtMDJENywgVSswMkRELTAyRkYsIFUrMDMwNCwgVSswMzA4LCBVKzAzMjksIFUrMUQwMC0xREJGLCBVKzFFMDAtMUU5RiwgVSsxRUYyLTFFRkYsIFUrMjAyMCwgVSsyMEEwLTIwQUIsIFUrMjBBRC0yMEMwLCBVKzIxMTMsIFUrMkM2MC0yQzdGLCBVK0E3MjAtQTdGRjsKfQovKiBsYXRpbiAqLwpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ1NwYWNlIE1vbm8nOwogIGZvbnQtc3R5bGU6IG5vcm1hbDsKICBmb250LXdlaWdodDogNDAwOwogIGZvbnQtZGlzcGxheTogc3dhcDsKICBzcmM6IHVybChodHRwczovL2ZvbnRzLmdzdGF0aWMuY29tL3Mvc3BhY2Vtb25vL3YxNy9pN2RQSUZaaWZqS2NGNVVBV2REUllFRjhSUS53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDAwMC0wMEZGLCBVKzAxMzEsIFUrMDE1Mi0wMTUzLCBVKzAyQkItMDJCQywgVSswMkM2LCBVKzAyREEsIFUrMDJEQywgVSswMzA0LCBVKzAzMDgsIFUrMDMyOSwgVSsyMDAwLTIwNkYsIFUrMjBBQywgVSsyMTIyLCBVKzIxOTEsIFUrMjE5MywgVSsyMjEyLCBVKzIyMTUsIFUrRkVGRiwgVStGRkZEOwp9Ci8qIHZpZXRuYW1lc2UgKi8KQGZvbnQtZmFjZSB7CiAgZm9udC1mYW1pbHk6ICdTcGFjZSBNb25vJzsKICBmb250LXN0eWxlOiBub3JtYWw7CiAgZm9udC13ZWlnaHQ6IDcwMDsKICBmb250LWRpc3BsYXk6IHN3YXA7CiAgc3JjOiB1cmwoaHR0cHM6Ly9mb250cy5nc3RhdGljLmNvbS9zL3NwYWNlbW9uby92MTcvaTdkTUlGWmlmaktjRjVVQVdkRFJhUHBaVUZxYUhqeVYud29mZjIpIGZvcm1hdCgnd29mZjInKTsKICB1bmljb2RlLXJhbmdlOiBVKzAxMDItMDEwMywgVSswMTEwLTAxMTEsIFUrMDEyOC0wMTI5LCBVKzAxNjgtMDE2OSwgVSswMUEwLTAxQTEsIFUrMDFBRi0wMUIwLCBVKzAzMDAtMDMwMSwgVSswMzAzLTAzMDQsIFUrMDMwOC0wMzA5LCBVKzAzMjMsIFUrMDMyOSwgVSsxRUEwLTFFRjksIFUrMjBBQjsKfQovKiBsYXRpbi1leHQgKi8KQGZvbnQtZmFjZSB7CiAgZm9udC1mYW1pbHk6ICdTcGFjZSBNb25vJzsKICBmb250LXN0eWxlOiBub3JtYWw7CiAgZm9udC13ZWlnaHQ6IDcwMDsKICBmb250LWRpc3BsYXk6IHN3YXA7CiAgc3JjOiB1cmwoaHR0cHM6Ly9mb250cy5nc3RhdGljLmNvbS9zL3NwYWNlbW9uby92MTcvaTdkTUlGWmlmaktjRjVVQVdkRFJhUHBaVUZ1YUhqeVYud29mZjIpIGZvcm1hdCgnd29mZjInKTsKICB1bmljb2RlLXJhbmdlOiBVKzAxMDAtMDJCQSwgVSswMkJELTAyQzUsIFUrMDJDNy0wMkNDLCBVKzAyQ0UtMDJENywgVSswMkRELTAyRkYsIFUrMDMwNCwgVSswMzA4LCBVKzAzMjksIFUrMUQwMC0xREJGLCBVKzFFMDAtMUU5RiwgVSsxRUYyLTFFRkYsIFUrMjAyMCwgVSsyMEEwLTIwQUIsIFUrMjBBRC0yMEMwLCBVKzIxMTMsIFUrMkM2MC0yQzdGLCBVK0E3MjAtQTdGRjsKfQovKiBsYXRpbiAqLwpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ1NwYWNlIE1vbm8nOwogIGZvbnQtc3R5bGU6IG5vcm1hbDsKICBmb250LXdlaWdodDogNzAwOwogIGZvbnQtZGlzcGxheTogc3dhcDsKICBzcmM6IHVybChodHRwczovL2ZvbnRzLmdzdGF0aWMuY29tL3Mvc3BhY2Vtb25vL3YxNy9pN2RNSUZaaWZqS2NGNVVBV2REUmFQcFpVRldhSGcud29mZjIpIGZvcm1hdCgnd29mZjInKTsKICB1bmljb2RlLXJhbmdlOiBVKzAwMDAtMDBGRiwgVSswMTMxLCBVKzAxNTItMDE1MywgVSswMkJCLTAyQkMsIFUrMDJDNiwgVSswMkRBLCBVKzAyREMsIFUrMDMwNCwgVSswMzA4LCBVKzAzMjksIFUrMjAwMC0yMDZGLCBVKzIwQUMsIFUrMjEyMiwgVSsyMTkxLCBVKzIxOTMsIFUrMjIxMiwgVSsyMjE1LCBVK0ZFRkYsIFUrRkZGRDsKfQo="}},"time_used":96,"timings":{"blocked":-1,"dns":0,"connect":20,"send":0,"wait":36,"receive":0,"ssl":40},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/23743.4733137af2f232a6a34a.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:13.924Z","timestamp":1785148033924,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/23743.4733137af2f232a6a34a.js HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:13 GMT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a61b1a8-5062\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Thu, 23 Jul 2026 06:16:08 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/23/2026 10:17:28\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 9aede1a3918a2b59643939f384b8f235\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":20578,"size_decoded":7832,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (3070)","md5":"0662db7d4ac07059ef6d238a7fa48e27","sha1":"736ed22fb893e48eb48b0150ec68ee0e3c69c7b2","sha256":"af1154bdae13a0f96f45923150360a2e20a73f83a62d0d671a137604a1ffe7bd","sha512":"d0f916877c8757288f5d0a63c009b2a6c596c888960ca29b3ca6ac71f629591e473f08f48b89b10d13d074a78ffe51c1cee690861938863df5a0265605fd6df2","ssdeep":"384:9Xwl5lUwL/+MbKlpYZketvNCY7hbyc7KukFhX3ma3anayRwsix6udtd4MkiAN:9Xwl57/bYCPzCY7IgNWaayRD06u3SWAN","tlshash":"739208723591307133efebeb5096041cf330b418a94b88e4b1e9689d35e26b461b6fde","first_seen":"2026-07-23T14:00:31.578797Z","last_seen":"2026-07-27T12:57:37.098495Z","times_seen":208,"resource_available":true,"data":"KHNlbGYud2VicGFja0NodW5rdHJhZGluZ3ZpZXc9c2VsZi53ZWJwYWNrQ2h1bmt0cmFkaW5ndmlld3x8W10pLnB1c2goW1syMzc0M10sezY4MzU0MihlKXtlLmV4cG9ydHM9e2NvbnRlbnREZWZhdWx0QXBwZWFyYW5jZU1vYmlsZToiY29udGVudERlZmF1bHRBcHBlYXJhbmNlTW9iaWxlLWc4Um9oZ05YIixiZWdpbjoiYmVnaW4tZzhSb2hnTlgiLGVuZDoiZW5kLWc4Um9oZ05YIix0b3A6InRvcC1nOFJvaGdOWCIsYm90dG9tOiJib3R0b20tZzhSb2hnTlgiLGNvbnRlbnREZWZhdWx0QXBwZWFyYW5jZToiY29udGVudERlZmF1bHRBcHBlYXJhbmNlLWc4Um9oZ05YIn19LDg5NTM3KGUpe2UuZXhwb3J0cz17cG9zaXRpb25lcjoicG9zaXRpb25lci1oQlZrYVAyUCIsbm9Ib3Jpem9udGFsU2hyaW5rOiJub0hvcml6b250YWxTaHJpbmstaEJWa2FQMlAiLG5vSG9yaXpvbnRhbEdyb3c6Im5vSG9yaXpvbnRhbEdyb3ctaEJWa2FQMlAiLG5vVmVydGljYWxTaHJpbms6Im5vVmVydGljYWxTaHJpbmstaEJWa2FQMlAiLG5vVmVydGljYWxHcm93OiJub1ZlcnRpY2FsR3Jvdy1oQlZrYVAyUCIsaW52aXNpYmxlOiJpbnZpc2libGUtaEJWa2FQMlAiLHBvcnRhbDoicG9ydGFsLWhCVmthUDJQIn19LDk5NTczOChlKXtlLmV4cG9ydHM9e3N0dWI6InN0dWItSXVoT2pvdVkifX0sMzI3ODA4KGUpe2UuZXhwb3J0cz17Y29udGVudDoiY29udGVudC1hZjBMQ2d5NSIsc3RyZXRjaDoic3RyZXRjaC1hZjBMQ2d5NSIsYmVnaW46ImJlZ2luLWFmMExDZ3k1IixlbmQ6ImVuZC1hZjBMQ2d5NSIsdG9wOiJ0b3AtYWYwTENneTUiLGJvdHRvbToiYm90dG9tLWFmMExDZ3k1IixiYWNrZHJvcDoiYmFja2Ryb3AtYWYwTENneTUifX0sNzg4NDY1KGUpe2UuZXhwb3J0cz17c2Nyb2xsVHJhcDoic2Nyb2xsVHJhcC1MbjBBSVc0RiIsc2Nyb2xsVHJhcENvbnRlbnQ6InNjcm9sbFRyYXBDb250ZW50LUxuMEFJVzRGIn19LDU2NTUzMChlKXtlLmV4cG9ydHM9e2JvZHlOb1Njcm9sbDoiYm9keU5vU2Nyb2xsLWZPSVJLQXRIIn19LDMxOTY5KGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse3VzZU1lcmdlZFJlZnM6KCk9PnJ9KTt2YXIgbz1uKDc3OTQ3NCksaT1uKDk2NDU5NCk7ZnVuY3Rpb24gcihlKXtyZXR1cm4oMCxvLnVzZUNhbGxiYWNrKSgoMCxpLm1lcmdlUmVmcykoZSksZSl9fSwyMzY0NTQoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7UE9QT1ZFUl9ERUZBVUxUX0NMT1NFX09OX0NMSUNLX0FXQVk6KCk9PnMsUE9QT1ZFUl9ERUZBVUxUX0NMT1NFX09OX0VTQ0FQRTooKT0+YyxQT1BPVkVSX0RFRkFVTFRfQ0xPU0VfT05fUkVTSVpFX1dJTkRPVzooKT0+dSxQT1BPVkVSX0RFRkFVTFRfQ0xPU0VfT05fU0NST0xMX09VVFNJREU6KCk9PmwsUE9QT1ZFUl9ERUZBVUxUX0NMT1NFX09OX1RBQjooKT0+ZCxQT1BPVkVSX0RFRkFVTFRfSEVJR0hUOigpPT5yLFBPUE9WRVJfREVGQVVMVF9QTEFDRU1FTlRfUlVMRVM6KCk9PmEsUE9QT1ZFUl9ERUZBVUxUX1dJRFRIOigpPT5pfSk7dmFyIG89big2NDA1MTMpO2NvbnN0IGk9W3tieToiYW5jaG9yIix0eXBlOiJtaW4ifSx7Ynk6ImNvbnRlbnQifV0scj1bXSxhPVtvLlBMQUNFTUVOVF9CT1RUT01fQUxJR05fTEVGVCxvLlBMQUNFTUVOVF9UT1BfQUxJR05fTEVGVCxvLlBMQUNFTUVOVF9CT1RUT01fQUxJR05fUklHSFQsby5QTEFDRU1FTlRfVE9QX0FMSUdOX1JJR0hUXSxjPSEwLHM9InBvaW50ZXJkb3duIixsPSEwLHU9ITAsZD0hMH0sNDQ1NDkzKGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse1BvcG92ZXJDb250ZXh0UHJvdmlkZXI6KCk9PmEsdXNlUG9wb3ZlckNvbnRleHQ6KCk9PmN9KTt2YXIgbz1uKDc3OTQ3NCksaT1uKDk1NjczMCk7Y29uc3Qgcj0oMCxvLmNyZWF0ZUNvbnRleHQpKHtjbG9zZVBvcG92ZXI6KCk9Pnt9LGlzUnRsOiExLGlzSW5Qb3BvdmVyOiExLGlzQW5jaG9yUG9zaXRpb25lcjohMSxpc01vYmlsZVBvc2l0aW9uZXI6ITF9KTtmdW5jdGlvbiBhKGUpe2NvbnN0e3Bvc2l0aW9uZXI6dCxvbkNsb3NlOm4saXNSdGw6YSxjaGlsZHJlbjpjLG9uUG9wb3ZlckNvbnRlbnRSZXNpemU6c309ZSxsPSgwLG8udXNlTWVtbykoKCgpPT4oe2Nsb3NlUG9wb3ZlcjpuLGlzUnRsOmEsaXNJblBvcG92ZXI6ITAsb25Qb3BvdmVyQ29udGVudFJlc2l6ZTpzLGlzQW5jaG9yUG9zaXRpb25lcjoiYW5jaG9yIj09PXQsaXNNb2JpbGVQb3NpdGlvbmVyOiJtb2JpbGUiPT09dH0pKSxbbixhLHMsdF0pO3JldHVybiBvLmNyZWF0ZUVsZW1lbnQoci5Qcm92aWRlcix7dmFsdWU6bH0sby5jcmVhdGVFbGVtZW50KGkuUG9zaXRpb25lckNvbnRleHRQcm92aWRlcix7cG9zaXRpb25lcjp0fSxjKSl9ZnVuY3Rpb24gYygpe3JldHVybigwLG8udXNlQ29udGV4dCkocil9fSwyMzc2MTYoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7UG9wb3ZlcjooKT0+Z30pO3ZhciBvPW4oNzc5NDc0KSxpPW4oOTE0NDg3KSxyPW4ubihpKSxhPW4oMTk0Mjc1KSxjPW4oNzE3OTMyKSxzPW4oMjg2MzEwKSxsPW4oOTcwMzQyKSx1PW4oNzg3ODk1KTtmdW5jdGlvbiBkKGUpe2NvbnN0IHQ9KDAsby51c2VSZWYpKG51bGwpLHthbmNob3JlZDpuLHBsYWNlbWVudFJ1bGVzOmksd2lkdGg6cixoZWlnaHQ6YSxpc09wZW46Yyxpc1J0bDpkLGFuY2hvclBvc2l0aW9uZXJDYXJkQXBwZWFyYW5jZUNsYXNzbmFtZTpoLHJlZlRvQ29udGVudFdyYXBwZXJFbGVtZW50OnA9dCxpZE9mQ29udGVudFdyYXBwZXJFbGVtZW50OmYsYXJpYUxhYmVsbGVkYnk6UCxhcmlhTXVsdGlzZWxlY3RhYmxlOm0scm9sZTpiLGNoaWxkcmVuOngsZ2V0Um9vdFJlY3Q6ZyxyZXBvc2l0aW9uVHJpZ2dlcnM6QyxyZXBvc2l0aW9uRGVwZW5kZW5jaWVzOkUsY29udGVudFJlc2l6ZTp2LGRhdGFRYUlkOnksc2Nyb2xsQ29udGFpbmVyOlJ9PWUsdz0oMCx1LnVzZUZ1bmN0aW9uYWxSZWZPYmplY3QpKHApO3N3aXRjaChuLnR5cGUpe2Nhc2UiZWxlbWVudCI6cmV0dXJuIG8uY3JlYXRlRWxlbWVudChsLkVsZW1lbnRQb3NpdGlvbmVyLHtwbGFjZW1lbnRSdWxlczppLHdpZHRoOnIsaGVpZ2h0OmEsaXNPcGVuOmMsaXNSdGw6ZCwKYW5jaG9yUG9zaXRpb25lckNhcmRBcHBlYXJhbmNlQ2xhc3NuYW1lOmgscmVmT2JqZWN0VG9Db250ZW50V3JhcHBlckVsZW1lbnQ6dyxpZE9mQ29udGVudFdyYXBwZXJFbGVtZW50OmYsYXJpYUxhYmVsbGVkYnk6UCxhcmlhTXVsdGlzZWxlY3RhYmxlOm0scm9sZTpiLGNoaWxkcmVuOngsYW5jaG9yZWRBdDpuLmF0LGdldFJvb3RSZWN0OmcscmVwb3NpdGlvblRyaWdnZXJzOkMsY29udGVudFJlc2l6ZTp2LHJlcG9zaXRpb25EZXBlbmRlbmNpZXM6RSxkYXRhUWFJZDp5LHNjcm9sbENvbnRhaW5lcjpSfSk7Y2FzZSJyZWN0YW5nbGUiOnJldHVybiBvLmNyZWF0ZUVsZW1lbnQocy5SZWN0YW5nbGVQb3NpdGlvbmVyLHtwbGFjZW1lbnRSdWxlczppLHdpZHRoOnIsaGVpZ2h0OmEsaXNPcGVuOmMsaXNSdGw6ZCxhbmNob3JQb3NpdGlvbmVyQ2FyZEFwcGVhcmFuY2VDbGFzc25hbWU6aCxyZWZPYmplY3RUb0NvbnRlbnRXcmFwcGVyRWxlbWVudDp3LGlkT2ZDb250ZW50V3JhcHBlckVsZW1lbnQ6ZixhcmlhTGFiZWxsZWRieTpQLGFyaWFNdWx0aXNlbGVjdGFibGU6bSxyb2xlOmIsY2hpbGRyZW46eCxhbmNob3JlZEF0Om4uYXQsZ2V0Um9vdFJlY3Q6Zyxjb250ZW50UmVzaXplOnYscmVwb3NpdGlvbkRlcGVuZGVuY2llczpFLHJlcG9zaXRpb25UcmlnZ2VyczpDLGRhdGFRYUlkOnksc2Nyb2xsQ29udGFpbmVyOlJ9KX19dmFyIGg9big0NDU0OTMpLHA9big1NjI5OCksZj1uKDg3MzA5MCksUD1uKDcwNjk0MyksbT1uKDk1NjczMCksYj1uKDY4MzU0MikseD1uLm4oYik7Y29uc3QgZz0oMCxwLmlnbm9yZU9uU1NSKSgoZnVuY3Rpb24oZSl7Y29uc3R7aXNSdGw6dH09KDAsaC51c2VQb3BvdmVyQ29udGV4dCkoKSx7aXNPcGVuOm4sb25DbG9zZTppLG1vYmlsZVBvc2l0aW9uZXJTaWRlOnM9ImJvdHRvbSIsbW9iaWxlUG9zaXRpb25lckNhcmRBcHBlYXJhbmNlQ2xhc3NuYW1lOmw9cigpKHgoKS5jb250ZW50RGVmYXVsdEFwcGVhcmFuY2VNb2JpbGUseCgpW3NdKSxyZWZUb0NvbnRlbnRXcmFwcGVyRWxlbWVudDp1LGlzUnRsOnA9dCxjaGlsZHJlbjpiLGFuY2hvclBvc2l0aW9uZXJDYXJkQXBwZWFyYW5jZUNsYXNzbmFtZTpnPXgoKS5jb250ZW50RGVmYXVsdEFwcGVhcmFuY2Uscm9sZTpDLGFyaWFMYWJlbGxlZGJ5OkUsYXJpYU11bHRpc2VsZWN0YWJsZTp2LGlkT2ZDb250ZW50V3JhcHBlckVsZW1lbnQ6eSxwbGFjZW1lbnRSdWxlczpSLHdpZHRoOncsaGVpZ2h0OlMsYW5jaG9yZWQ6Tyxtb2JpbGVQb3NpdGlvbmVyU3RyZXRjaDpBLHJlcG9zaXRpb25UcmlnZ2VyczpNPVtdLHJlcG9zaXRpb25EZXBlbmRlbmNpZXM6VCxtb2JpbGVCcmVha3BvaW50OkwsY29udGVudFJlc2l6ZTpOLGRhdGFRYUlkOkYsc2Nyb2xsQ29udGFpbmVyOl99PWUse2lzSW5Qb3BvdmVyOkl9PSgwLGgudXNlUG9wb3ZlckNvbnRleHQpKCkse2lzTW9iaWxlUG9zaXRpb25lcjpXfT0oMCxtLnVzZVBvc2l0aW9uZXJDb250ZXh0KSgpLHo9KDAsYy51c2VNYXRjaE1lZGlhKShMPz9mLkRFRkFVTFRfUE9QT1ZFUl9CUkVBS1BPSU5UKSxEPSgwLG8udXNlTWVtbykoUC5jcmVhdGVTaWduYWwsW10pO3JldHVybih2b2lkIDA9PT1MJiZJP1c6eik/by5jcmVhdGVFbGVtZW50KGEuTW9iaWxlUG9zaXRpb25lcix7aXNPcGVuOm4sb25DbG9zZTppLGNhcmRBcHBlYXJhbmNlQ2xhc3NuYW1lOmwscmVmVG9Db250ZW50V3JhcHBlckVsZW1lbnQ6dSxpZE9mQ29udGVudFdyYXBwZXJFbGVtZW50OnksYW5jaG9yZWRBdDoiZWxlbWVudCI9PT1PLnR5cGU/Ty5hdDp2b2lkIDAsY2hpbGRyZW46by5jcmVhdGVFbGVtZW50KGguUG9wb3ZlckNvbnRleHRQcm92aWRlcix7cG9zaXRpb25lcjoibW9iaWxlIixvbkNsb3NlOmksaXNSdGw6cH0sYikscm9sZTpDLGFyaWFMYWJlbGxlZGJ5OkUsYXJpYU11bHRpc2VsZWN0YWJsZTp2LHNpZGU6cyxzdHJldGNoOkEsZGF0YVFhSWQ6Rn0pOm8uY3JlYXRlRWxlbWVudChkLHthbmNob3JlZDpPLGlzUnRsOnAsaXNPcGVuOm4sYW5jaG9yUG9zaXRpb25lckNhcmRBcHBlYXJhbmNlQ2xhc3NuYW1lOmcscm9sZTpDLGFyaWFMYWJlbGxlZGJ5OkUsYXJpYU11bHRpc2VsZWN0YWJsZTp2LGlkT2ZDb250ZW50V3JhcHBlckVsZW1lbnQ6eSxyZWZUb0NvbnRlbnRXcmFwcGVyRWxlbWVudDp1LHBsYWNlbWVudFJ1bGVzOlIsd2lkdGg6dyxoZWlnaHQ6UyxjaGlsZHJlbjpvLmNyZWF0ZUVsZW1lbnQoaC5Qb3BvdmVyQ29udGV4dFByb3ZpZGVyLHtwb3NpdGlvbmVyOiJhbmNob3IiLG9uQ2xvc2U6aSxpc1J0bDpwLG9uUG9wb3ZlckNvbnRlbnRSZXNpemU6RC5maXJlfSxiKSxyZXBvc2l0aW9uVHJpZ2dlcnM6Wy4uLk0sRF0scmVwb3NpdGlvbkRlcGVuZGVuY2llczpULGNvbnRlbnRSZXNpemU6TixkYXRhUWFJZDpGLHNjcm9sbENvbnRhaW5lcjpffSl9KSl9LDk3MDM0MihlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtFbGVtZW50UG9zaXRpb25lcjooKT0+Y30pO3ZhciBvPW4oNzc5NDc0KSxpPW4oODU0MzM4KSxyPW4oODk1OTIxKSxhPW4oMjg2MzEwKTtmdW5jdGlvbiBjKGUpe2NvbnN0IHQ9KDAsby51c2VSZWYpKG51bGwpLHthbmNob3JlZEF0Om4saXNPcGVuOmMscmVmT2JqZWN0VG9Db250ZW50V3JhcHBlckVsZW1lbnQ6cz10LHdpZHRoOmwsaGVpZ2h0OnUsaXNSdGw6ZCxwbGFjZW1lbnRSdWxlczpoLGFuY2hvclBvc2l0aW9uZXJDYXJkQXBwZWFyYW5jZUNsYXNzbmFtZTpwLGNoaWxkcmVuOmYscm9sZTpQLGFyaWFMYWJlbGxlZGJ5Om0sYXJpYU11bHRpc2VsZWN0YWJsZTpiLGlkT2ZDb250ZW50V3JhcHBlckVsZW1lbnQ6eCxvblBsYWNlbWVudFJ1bGVTZWxlY3RlZDpnLGdldFJvb3RSZWN0OkMscmVwb3NpdGlvblRyaWdnZXJzOkUsY29udGVudFJlc2l6ZTp2LHJlcG9zaXRpb25EZXBlbmRlbmNpZXM6eSxkYXRhUWFJZDpSLHNjcm9sbENvbnRhaW5lcjp3fT1lLFM9KDAsci51c2VSZWZSZWN0KShuLGMsRSx5KTtyZXR1cm4oMCxpLnVzZUFuY2hvclBvcnRhbFBhaXIpKG4scyksUz9vLmNyZWF0ZUVsZW1lbnQoYS5SZWN0YW5nbGVQb3NpdGlvbmVyLHt3aWR0aDpsLGhlaWdodDp1LGlzUnRsOmQsaXNPcGVuOmMscGxhY2VtZW50UnVsZXM6aCwKYW5jaG9yUG9zaXRpb25lckNhcmRBcHBlYXJhbmNlQ2xhc3NuYW1lOnAsY2hpbGRyZW46Zixyb2xlOlAsYXJpYUxhYmVsbGVkYnk6bSxhcmlhTXVsdGlzZWxlY3RhYmxlOmIsaWRPZkNvbnRlbnRXcmFwcGVyRWxlbWVudDp4LHJlZk9iamVjdFRvQ29udGVudFdyYXBwZXJFbGVtZW50OnMsYW5jaG9yZWRBdDpTLG9uUGxhY2VtZW50UnVsZVNlbGVjdGVkOmcsZ2V0Um9vdFJlY3Q6Qyxjb250ZW50UmVzaXplOnYscmVwb3NpdGlvblRyaWdnZXJzOkUscmVwb3NpdGlvbkRlcGVuZGVuY2llczp5LGRhdGFRYUlkOlIsc2Nyb2xsQ29udGFpbmVyOnd9KTpudWxsfX0sODk1OTIxKGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse3VzZVJlZlJlY3Q6KCk9PmF9KTt2YXIgbz1uKDc3OTQ3NCksaT1uKDUyNTI0KTtmdW5jdGlvbiByKGUpe2lmKCFlKXJldHVybjtjb25zdHt4OnQseTpuLHdpZHRoOm8saGVpZ2h0Oml9PWUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7cmV0dXJue3g6dCx5Om4sd2lkdGg6byxoZWlnaHQ6aX19ZnVuY3Rpb24gYShlLHQsbj1bXSxhPVtdKXtjb25zdFtjLHNdPSgwLG8udXNlU3RhdGUpKCk7cmV0dXJuKDAsby51c2VMYXlvdXRFZmZlY3QpKCgoKT0+e2lmKCF0KXJldHVybjtjb25zdCBvPSgpPT57cyhmdW5jdGlvbihlKXtyZXR1cm4gcihlLmN1cnJlbnQpfShlKSl9LGE9bi5tYXAoKGU9PihlLnN1YnNjcmliZShvKSwoKT0+ZS51bnN1YnNjcmliZShvKSkpKTtyZXR1cm4oMCxpLmZvcmtGbikoLi4uYSl9KSxbZSx0LC4uLm5dKSwoMCxvLnVzZUxheW91dEVmZmVjdCkoKCgpPT57cyh0P3IoZS5jdXJyZW50KTp2b2lkIDApfSksW2UsdCwuLi5hXSksY319LDQwNjI5NChlLHQsbil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG8oZSl7cmV0dXJue3g6MS1lLngseTplLnl9fWZ1bmN0aW9uIGkoZSl7cmV0dXJuIGUubWFwKChlPT5mdW5jdGlvbihlKXtyZXR1cm57Li4uZSxuYW1lOmUucnRsTmFtZXx8ZS5uYW1lLGFuY2hvclBvaW50Om8oZS5hbmNob3JQb2ludCksY29udGVudFBvaW50Om8oZS5jb250ZW50UG9pbnQpLG9mZnNldDplLm9mZnNldD8odD1lLm9mZnNldCx7eDotdC54LHk6dC55fSk6dm9pZCAwfTt2YXIgdH0oZSkpKX1mdW5jdGlvbiByKGUpe3JldHVybntsZWZ0OmUueCxyaWdodDplLngrZS53aWR0aCx0b3A6ZS55LGJvdHRvbTplLnkrZS5oZWlnaHR9fWZ1bmN0aW9uIGEoZSx0LG4pe3JldHVybigxLWUpKnQrZSpufWZ1bmN0aW9uIGMoZSx0LG4sbyxpLHIsYSxjLHMsdSl7Y29uc3R7YW5jaG9yZWRBdFB4OmQsY29udGVudFBvaW50OmgsY29udGVudFN0YXJ0OnAsY29udGVudEVuZDpmfT1mdW5jdGlvbihlLHQsbixvLGkscixhLGMpe2xldCBzPWksbD1yO2NvbnN0IHU9Yy1hLGQ9ZS1zK247MDxkJiYocys9ZCxsKz1kL3UpO2NvbnN0IGg9ZS1vK3M7MDxoJiYocy09aCxsLT1oL3UpO2NvbnN0IHA9dC1sKnU7MDxwJiYocys9cCxsKz1wL3UpO2NvbnN0IGY9dC0oMS1sKSp1OzA8ZiYmKHMtPWYsbC09Zi91KTtyZXR1cm57YW5jaG9yZWRBdFB4OnMsY29udGVudFBvaW50OmwsY29udGVudFN0YXJ0OmEsY29udGVudEVuZDpjfX0oZSx0LG4sbyxpLGMscyx1KTtyZXR1cm4gbChlLHQsbyxkLHIsaCxwLGYpfHwoKFA9bChlLHQsLW4sLWQsLWEsMS1oLC1mLC1wKSk/e2NvbnRlbnRQb2ludEZyYWN0aW9uOjEtUC5jb250ZW50UG9pbnRGcmFjdGlvbixhbmNob3JlZFB4Oi1QLmFuY2hvcmVkUHgsc2xpZGU6UC5zbGlkZX06dm9pZCAwKXx8e2NvbnRlbnRQb2ludEZyYWN0aW9uOmgsYW5jaG9yZWRQeDpkLHNsaWRlOjB9O3ZhciBQfWZ1bmN0aW9uIHMoZSx0LG4pe3JldHVybntjb250ZW50UG9pbnRGcmFjdGlvbjphKGUsdC5jb250ZW50UG9pbnRGcmFjdGlvbixuLmNvbnRlbnRQb2ludEZyYWN0aW9uKSxhbmNob3JlZFB4OmEoZSx0LmFuY2hvcmVkUHgsbi5hbmNob3JlZFB4KSxzbGlkZTphKGUsdC5zbGlkZSxuLnNsaWRlKX19ZnVuY3Rpb24gbChlLHQsbixvLGkscixhLGMpe2NvbnN0IGw9Yy1hLHU9YStyKmwtdCxkPW4tZS10LGg9bCpyLXQscD17Y29udGVudFBvaW50RnJhY3Rpb246dC9sLGFuY2hvcmVkUHg6byxzbGlkZTpofSxmPXtjb250ZW50UG9pbnRGcmFjdGlvbjp0L2wsYW5jaG9yZWRQeDpuLWUsc2xpZGU6aCsobi1vLWUpfTtpZighKGE+PWkpKXJldHVybiB1Pj1pP3MoKGktYSkvKHUtYSkse2NvbnRlbnRQb2ludEZyYWN0aW9uOnIsYW5jaG9yZWRQeDpvLHNsaWRlOjB9LHApOmQ+PWk/cygoaS11KS8oZC11KSxwLGYpOmZ9ZnVuY3Rpb24gdShlLHQsbixvLGksYSxjKXtjb25zdCBzPXsuLi5vLC4uLnIobyl9LGw9ZnVuY3Rpb24oZSx0KXtyZXR1cm57eDplLngrdC5hbmNob3JQb2ludC54KmUud2lkdGgrKHQub2Zmc2V0Py54Pz8wKSx5OmUueSt0LmFuY2hvclBvaW50LnkqZS5oZWlnaHQrKHQub2Zmc2V0Py55Pz8wKX19KGUsaSksdT1uLndpZHRoLHA9aChpLm92ZXJmbG93SG9yaXpvbnRhbCxsLngscy5sZWZ0LHMucmlnaHQsaS5jb250ZW50UG9pbnQueCx1KSxmPU1hdGgubWluKHUscD8/MS8wKSxQPWMmJnZvaWQgMCE9PXAmJmY8dTtQJiZ0LnN0eWxlLnNldFByb3BlcnR5KGEsYCR7cH1weGApO2NvbnN0IG09UD90LmNsaWVudEhlaWdodDpuLmhlaWdodCxiPWgoaS5vdmVyZmxvd1ZlcnRpY2FsLGwueSxzLnRvcCxzLmJvdHRvbSxpLmNvbnRlbnRQb2ludC55LG0pLHg9TWF0aC5taW4obSxiPz8xLzApO1AmJnQuc3R5bGUucmVtb3ZlUHJvcGVydHkoYSk7Y29uc3QgZz1sLngtaS5jb250ZW50UG9pbnQueCp1LEM9bC54KygxLWkuY29udGVudFBvaW50LngpKnUsRT1kKGkub3ZlcmZsb3dIb3Jpem9udGFsLGUueCxlLngrZS53aWR0aCxsLngscy5sZWZ0LHMucmlnaHQsaS5jb250ZW50UG9pbnQueCxnLEMpLHY9bC55LWkuY29udGVudFBvaW50LnkqbSx5PWwueSsoMS1pLmNvbnRlbnRQb2ludC55KSptLFI9ZChpLm92ZXJmbG93VmVydGljYWwsZS55LGUueStlLmhlaWdodCxsLnkscy50b3Ascy5ib3R0b20saS5jb250ZW50UG9pbnQueSx2LHkpO3JldHVybnthbmNob3JlZFB4Ont4OkUuYW5jaG9yZWRQeCx5OlIuYW5jaG9yZWRQeH0sY29udGVudFBvaW50RnJhY3Rpb246ewp4OkUuY29udGVudFBvaW50RnJhY3Rpb24seTpSLmNvbnRlbnRQb2ludEZyYWN0aW9ufSxydWxlOmksaW5pdGlhbENvbnRlbnRTaXplUHg6e3dpZHRoOm4ud2lkdGgsaGVpZ2h0Om4uaGVpZ2h0fSxjb250ZW50U2l6ZUFmdGVyV2lkdGhSZXN0cmljdGlvblB4Ont3aWR0aDpmLGhlaWdodDptfSxjb250ZW50U2l6ZVB4Ont3aWR0aDpmLGhlaWdodDp4fSxtYXhDb250ZW50U2l6ZVB4Ont3aWR0aDpwLGhlaWdodDpifSxzbGlkZTp7eDpFLnNsaWRlLHk6Ui5zbGlkZX19fWZ1bmN0aW9uIGQoZSx0LG4sbyxpLHIsYSxzLGwpe2NvbnN0IHU9aS1zLGQ9bC1yO2lmKCJzbGlkZSI9PT1lfHwiY3JvcCI9PT1lKXtpZihsLXM+ci1pfHx1PjApcmV0dXJue2NvbnRlbnRQb2ludEZyYWN0aW9uOjAsYW5jaG9yZWRQeDppLHNsaWRlOk1hdGgubWF4KDAsdSl9O2lmKGQ+MClyZXR1cm57Y29udGVudFBvaW50RnJhY3Rpb246MSxhbmNob3JlZFB4OnIsc2xpZGU6TWF0aC5tYXgoMCxkKX19aWYoImNyb3BTbGlkZSI9PT1lKXtjb25zdCBlPWktbyx0PW8tcjtpZihlPjB8fHU+MClyZXR1cm57Y29udGVudFBvaW50RnJhY3Rpb246MCxhbmNob3JlZFB4Omksc2xpZGU6TWF0aC5tYXgoMCxlKX07aWYodD4wfHxkPjApcmV0dXJue2NvbnRlbnRQb2ludEZyYWN0aW9uOjEsYW5jaG9yZWRQeDpyLHNsaWRlOk1hdGgubWF4KDAsdCl9fWlmKCJjcm9wT3ZlcmZsb3ciPT09ZSl7aWYodT4wKXJldHVybntjb250ZW50UG9pbnRGcmFjdGlvbjowLGFuY2hvcmVkUHg6TWF0aC5taW4oaSxvKSxzbGlkZTowfTtpZihkPjApcmV0dXJue2NvbnRlbnRQb2ludEZyYWN0aW9uOjEsYW5jaG9yZWRQeDpNYXRoLm1heChyLG8pLHNsaWRlOjB9fXJldHVybiBwKGUpP2MoZS5hbmNob3JTYWZlU3BhY2UsZS5wb3NpdGlvbmVyU2FmZVNwYWNlLHQsbixvLGkscixhLHMsbCk6e2NvbnRlbnRQb2ludEZyYWN0aW9uOmEsYW5jaG9yZWRQeDpvLHNsaWRlOjB9fWZ1bmN0aW9uIGgoZSx0LG4sbyxpLHIpe3JldHVybiJjcm9wIj09PWU/ZnVuY3Rpb24oZSx0LG4sbyxpKXtjb25zdCByPWUtdD49MCYmbi1lPj0wO2lmKHImJigxPT09b3x8MD09PW8pKXJldHVybiBmdW5jdGlvbihlLHQsbixvKXtyZXR1cm4gMD09PW8/bi1lOmUtdH0oZSx0LG4sbyk7Y29uc3R7YXZhaWxhYmxlU3BhY2VTdGFydDphLGF2YWlsYWJsZVNwYWNlRW5kOmN9PVAobyxpLGUsdCxuKTtyZXR1cm4gYStjfSh0LG4sbyxpLHIpOiJjcm9wT3ZlcmZsb3ciPT09ZT9mKHQsbixvLGkscik6InNsaWRlIj09PWU/by1uOiJjcm9wU2xpZGUiPT09ZT9NYXRoLm1pbihvLW4sZih0LG4sbyxpLHIpKToia2VlcE5vbkZpdHRpbmciIT09ZSYmcChlKT90PG4/by10OnQ+bz90LW46dm9pZCAwOnZvaWQgMH1mdW5jdGlvbiBwKGUpe3JldHVybiJvYmplY3QiPT10eXBlb2YgZSYmInNsaWRlT3ZlcmZsb3ciPT09ZS5raW5kfWZ1bmN0aW9uIGYoZSx0LG4sbyxpKXtpZihvPj0xfHxvPD0wKXJldHVybiBmdW5jdGlvbihlLHQsbixvKXtjb25zdCBpPU1hdGgubWF4KDAsZS10KSxyPU1hdGgubWF4KDAsbi1lKSxhPW8+MD9pL286TnVtYmVyLlBPU0lUSVZFX0lORklOSVRZLGM9bzwxP3IvKDEtbyk6TnVtYmVyLlBPU0lUSVZFX0lORklOSVRZO3JldHVybiBNYXRoLm1pbihhLGMpfShlLHQsbixvKTtjb25zdHthdmFpbGFibGVTcGFjZVN0YXJ0OnIsYXZhaWxhYmxlU3BhY2VFbmQ6YX09UChvLGksZSx0LG4pO3JldHVybiBNYXRoLm1heCgwLHIpK01hdGgubWF4KDAsYSl9ZnVuY3Rpb24gUChlLHQsbixvLGkpe2NvbnN0IHI9dCpNYXRoLm1heChlLDApLGE9dCpNYXRoLm1heCgxLWUsMCk7cmV0dXJue2F2YWlsYWJsZVNwYWNlU3RhcnQ6TWF0aC5taW4obi1vLHIpLGF2YWlsYWJsZVNwYWNlRW5kOk1hdGgubWluKGktbixhKX19ZnVuY3Rpb24gbShlKXtyZXR1cm4gZS5pbml0aWFsQ29udGVudFNpemVQeC53aWR0aC1lLmNvbnRlbnRTaXplUHgud2lkdGh9ZnVuY3Rpb24gYihlKXtyZXR1cm4gZS5jb250ZW50U2l6ZUFmdGVyV2lkdGhSZXN0cmljdGlvblB4LmhlaWdodC1lLmNvbnRlbnRTaXplUHguaGVpZ2h0fWZ1bmN0aW9uIHgoZSl7cmV0dXJuIGUuc2xpZGUueCtlLnNsaWRlLnl9ZnVuY3Rpb24gZyhlLHQpe2NvbnN0IG49ZnVuY3Rpb24oZSx0KXtjb25zdCBuPXIoe3g6ZS5hbmNob3JlZFB4LngtZS5jb250ZW50UG9pbnRGcmFjdGlvbi54KmUuY29udGVudFNpemVQeC53aWR0aCx5OmUuYW5jaG9yZWRQeC55LWUuY29udGVudFBvaW50RnJhY3Rpb24ueSplLmNvbnRlbnRTaXplUHguaGVpZ2h0LHdpZHRoOmUuY29udGVudFNpemVQeC53aWR0aCxoZWlnaHQ6ZS5jb250ZW50U2l6ZVB4LmhlaWdodH0pLG89cih0KTtyZXR1cm57bGVmdDpNYXRoLm1heCgwLG8ubGVmdC1uLmxlZnQpLHJpZ2h0Ok1hdGgubWF4KDAsbi5yaWdodC1vLnJpZ2h0KSx0b3A6TWF0aC5tYXgoMCxvLnRvcC1uLnRvcCksYm90dG9tOk1hdGgubWF4KDAsbi5ib3R0b20tby5ib3R0b20pfX0oZSx0KTtyZXR1cm4oMStuLmxlZnQrbi5yaWdodCkqKDErbi50b3Arbi5ib3R0b20pLTF9ZnVuY3Rpb24gQyhlLHQpe3JldHVybntydWxlOmUsb3ZlcmZsb3c6ZyhlLHQpLHdpZHRoRGlmZjptKGUpLGhlaWdodERpZmY6YihlKSxzbGlkZTp4KGUpfX1mdW5jdGlvbiBFKGUpe3JldHVybiAwPT09ZS5vdmVyZmxvdyYmMD09PWUud2lkdGhEaWZmJiYwPT09ZS5oZWlnaHREaWZmJiYwPT09ZS5zbGlkZX1mdW5jdGlvbiB2KGUsdCxuLG8scil7Y29uc3R7cnRsOmEsc2Nyb2xsQ29udGFpbmVyOmMsbWF4V2lkdGhDc3NQcm9wZXJ0eTpzPSJtYXgtd2lkdGgiLG1heEhlaWdodENzc1Byb3BlcnR5Omw9Im1heC1oZWlnaHQiLGNvbnRlbnRPdmVyZmxvd1dyYXA6ZD0hMH09cnx8e30saD1hP2kobyk6byxwPWZ1bmN0aW9uKGUpe2lmKCFlKXJldHVybjtjb25zdCB0PWUuc2Nyb2xsVG9wO3JldHVybigpPT57ZS5zY3JvbGxUb3A9dH19KGMpLGY9ZnVuY3Rpb24oZSx0KXtjb25zdCBuPXQubWFwKCh0PT5bdCxlLnN0eWxlLmdldFByb3BlcnR5VmFsdWUodCldKSk7cmV0dXJuIG4uZm9yRWFjaCgoKFt0LG5dKT0+e24mJmUuc3R5bGUucmVtb3ZlUHJvcGVydHkodCl9KSksKCk9PnsKbi5mb3JFYWNoKCgoW3Qsbl0pPT57ZS5zdHlsZS5zZXRQcm9wZXJ0eSh0LG4pfSkpfX0odCxbcyxsXSksUD10LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO2NvbnN0IG09ZnVuY3Rpb24oKXtjb25zdCBvPVtdO2Zvcihjb25zdCBpIG9mIGgpe2NvbnN0IHI9dShlLHQsUCxuLHsuLi5pfSxzLGQpLGE9QyhyLG4pO2lmKEUoYSkpcmV0dXJuIHI7by5wdXNoKGEpfXJldHVybiAxPT09KGk9bykubGVuZ3RoP2lbMF0ucnVsZTppLnNsaWNlKCkuc29ydCgoKGUsdCk9PmUub3ZlcmZsb3chPT10Lm92ZXJmbG93P2Uub3ZlcmZsb3ctdC5vdmVyZmxvdzplLndpZHRoRGlmZiE9PXQud2lkdGhEaWZmP2Uud2lkdGhEaWZmLXQud2lkdGhEaWZmOmUuaGVpZ2h0RGlmZiE9PXQuaGVpZ2h0RGlmZj9lLmhlaWdodERpZmYtdC5oZWlnaHREaWZmOmUuc2xpZGUtdC5zbGlkZSkpWzBdLnJ1bGU7dmFyIGl9KCk7cmV0dXJuIGYoKSxwPy4oKSxtfW4uZCh0LHtjaG9zZVBvc2l0aW9uOigpPT52fSl9LDc3MTQ0NyhlLHQsbil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG8oZSx0KXtyZXR1cm4gdC54PD1lLngmJmUueDw9dC54K3Qud2lkdGgmJnQueTw9ZS55JiZlLnk8PXQueSt0LmhlaWdodH1uLmQodCx7aXNJblJlY3Q6KCk9Pm99KX0sMjg2MzEwKGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse1JlY3RhbmdsZVBvc2l0aW9uZXI6KCk9Pnh9KTt2YXIgbz1uKDc3OTQ3NCksaT1uKDkxNDQ4Nykscj1uLm4oaSksYT1uKDU2NTc0NSksYz1uKDU4NTQ4KSxzPW4oODY1MDApLGw9big0MDYyOTQpO2Z1bmN0aW9uIHUoKXtyZXR1cm57eDowLHk6MCx3aWR0aDpkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50V2lkdGgsaGVpZ2h0OmRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHR9fXZhciBkPW4oMzE5NjkpLGg9big1MjUyNCk7dmFyIHA9big2MDE4NDEpO2Z1bmN0aW9uIGYoZSl7cmV0dXJuIHZvaWQgMCE9PWUmJmlzRmluaXRlKGUpP2Ake2V9cHhgOnZvaWQgMH12YXIgUCxtPW4oODk1MzcpLGI9bi5uKG0pO2Z1bmN0aW9uIHgoZSl7Y29uc3R7aXNSdGw6dCxhbmNob3JlZEF0Om4saXNPcGVuOmkscGxhY2VtZW50UnVsZXM6UCxhbmNob3JQb3NpdGlvbmVyQ2FyZEFwcGVhcmFuY2VDbGFzc25hbWU6bSxyZWZPYmplY3RUb0NvbnRlbnRXcmFwcGVyRWxlbWVudDp4LGNoaWxkcmVuOkMsb25QbGFjZW1lbnRSdWxlU2VsZWN0ZWQ6RSxnZXRSb290UmVjdDp2PXUsaWRPZkNvbnRlbnRXcmFwcGVyRWxlbWVudDp5LGFyaWFMYWJlbGxlZGJ5OlIsYXJpYU11bHRpc2VsZWN0YWJsZTp3LHJvbGU6Uyx3aWR0aDpPLGhlaWdodDpBLHJlcG9zaXRpb25UcmlnZ2VyczpNPVtdLHJlcG9zaXRpb25EZXBlbmRlbmNpZXM6VD1bXSxjb250ZW50UmVzaXplOkw9MTUsZGF0YVFhSWQ6TixzY3JvbGxDb250YWluZXI6Rixhc3N1bWVOb0NvbnRlbnRXcmFwOl99PWUsST0oMCxvLnVzZU1lbW8pKCgoKT0+KDAscC5pc0FycmF5KShQKT9QOltQXSksW1BdKSxXPSgwLG8udXNlUmVmKShudWxsKSxbeixEXT0oMCxvLnVzZVN0YXRlKSh2b2lkIDApLGs9ZnVuY3Rpb24oZSl7Y29uc3RbdCxuXT0oMCxvLnVzZVN0YXRlKSgoKCk9PlN5bWJvbCgpKSk7cmV0dXJuKDAsby51c2VMYXlvdXRFZmZlY3QpKCgoKT0+e2NvbnN0IHQ9ZS5tYXAoKGU9Pntjb25zdCB0PSgpPT57bihTeW1ib2woKSl9O3JldHVybiBlLnN1YnNjcmliZSh0KSwoKT0+ZS51bnN1YnNjcmliZSh0KX0pKTtyZXR1cm4oMCxoLmZvcmtGbikoLi4udCl9KSxbLi4uZV0pLHR9KE0pOygwLG8udXNlTGF5b3V0RWZmZWN0KSgoKCk9PntpJiZXLmN1cnJlbnQ/RCgoMCxsLmNob3NlUG9zaXRpb24pKG4sVy5jdXJyZW50LHYoKSxJLHtydGw6ISF0LHNjcm9sbENvbnRhaW5lcjpGPy5jdXJyZW50LG1heEhlaWdodENzc1Byb3BlcnR5OiItLXVpLWxpYi1wcml2YXRlLXBvc2l0aW9uZXItc2NyZWVuUmVzdHJpY3Rpb25NYXhIZWlnaHQiLG1heFdpZHRoQ3NzUHJvcGVydHk6Ii0tdWktbGliLXByaXZhdGUtcG9zaXRpb25lci1zY3JlZW5SZXN0cmljdGlvbk1heFdpZHRoIixjb250ZW50T3ZlcmZsb3dXcmFwOiFffSkpOkQodm9pZCAwKX0pLFtuLFcsdixJLGksayx0LEYsXywuLi5UXSksKDAsby51c2VFZmZlY3QpKCgoKT0+e2lmKHo/LnJ1bGUmJkUpcmV0dXJuIEUoei5ydWxlKX0pLFt6Py5ydWxlLEVdKTtjb25zdCBWPSgwLGQudXNlTWVyZ2VkUmVmcykoW3gsV10pO2lmKCFpKXJldHVybiBudWxsO2NvbnN0e2NsYXNzbmFtZXM6SCxzdHlsZTpCfT1mdW5jdGlvbihlLHQsbil7Y29uc3Qgbz1bXSxpPXt9LHI9e3dpZHRoOnQsaGVpZ2h0Om59O2Zvcihjb25zdCB0IG9mWyJ3aWR0aCIsImhlaWdodCJdKXtjb25zdCBuPXJbdF07KEFycmF5LmlzQXJyYXkobik/bjpbbl0pLmZpbHRlcihhLmlzRXhpc3RlbnQpLmZvckVhY2goKG49Pntzd2l0Y2gobi5ieSl7Y2FzZSJjb250ZW50IjpyZXR1cm47Y2FzZSJjbGFzcyI6cmV0dXJuIHZvaWQgby5wdXNoKG4uY2xhc3NOYW1lKTtjYXNlImFuY2hvciI6e2NvbnN0IG89bi50eXBlPz8iZXhhY3QiO2lbZ1t0XVtvXV09ZihlW3RdKX19fSkpfXJldHVybntjbGFzc25hbWVzOm8sc3R5bGU6aX19KG4sTyxBKSxHPVttLGIoKS5wb3NpdGlvbmVyXSxqPSEoMSZMKSxVPSEoMiZMKSxRPSEoNCZMKSxYPSEoOCZMKSxZPXIoKShqJiZiKCkubm9Ib3Jpem9udGFsU2hyaW5rLFUmJmIoKS5ub0hvcml6b250YWxHcm93LFEmJmIoKS5ub1ZlcnRpY2FsU2hyaW5rLFgmJmIoKS5ub1ZlcnRpY2FsR3JvdykscT17Li4uQiwiLS11aS1saWItb3V0LXBvc2l0aW9uZXItYW5jaG9yV2lkdGgiOmYobi53aWR0aCksIi0tdWktbGliLW91dC1wb3NpdGlvbmVyLWFuY2hvckhlaWdodCI6ZihuLmhlaWdodCksIi0tdWktbGliLW91dC1wb3NpdGlvbmVyLWFuY2hvclRvcCI6ZihuLnkpLCItLXVpLWxpYi1vdXQtcG9zaXRpb25lci1hbmNob3JMZWZ0IjpmKG4ueCl9O3JldHVybiBvLmNyZWF0ZUVsZW1lbnQoYy5Qb3J0YWwse2NsYXNzTmFtZTpiKCkucG9ydGFsfSx2b2lkIDA9PT16P28uY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOnIoKShiKCkuaW52aXNpYmxlLC4uLkgsLi4uRyxZKSxzdHlsZTpxLHJlZjpWLAoiZGF0YS1xYS1pZCI6Tn0sQyk6by5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6cigpKC4uLkcsLi4uSCxZKSxzdHlsZTp7Ii0tdWktbGliLW91dC1wb3NpdGlvbmVyLWNvbnRlbnRQb2ludFgiOnouY29udGVudFBvaW50RnJhY3Rpb24ueCwiLS11aS1saWItb3V0LXBvc2l0aW9uZXItY29udGVudFBvaW50WSI6ei5jb250ZW50UG9pbnRGcmFjdGlvbi55LCItLXVpLWxpYi1vdXQtcG9zaXRpb25lci1hbmNob3JlZFgiOmYoei5hbmNob3JlZFB4LngpLCItLXVpLWxpYi1vdXQtcG9zaXRpb25lci1hbmNob3JlZFkiOmYoei5hbmNob3JlZFB4LnkpLCItLXVpLWxpYi1wcml2YXRlLXBvc2l0aW9uZXItc2NyZWVuUmVzdHJpY3Rpb25NYXhXaWR0aCI6Zih6Lm1heENvbnRlbnRTaXplUHgud2lkdGgpLCItLXVpLWxpYi1wcml2YXRlLXBvc2l0aW9uZXItc2NyZWVuUmVzdHJpY3Rpb25NYXhIZWlnaHQiOmYoei5tYXhDb250ZW50U2l6ZVB4LmhlaWdodCksIi0tdWktbGliLW91dC1wb3NpdGlvbmVyLWNvbnRlbnRIZWlnaHQiOmYoei5jb250ZW50U2l6ZVB4LmhlaWdodCksIi0tdWktbGliLW91dC1wb3NpdGlvbmVyLWNvbnRlbnRXaWR0aCI6Zih6LmNvbnRlbnRTaXplUHgud2lkdGgpLC4uLnF9LC4uLigwLHMuY29udGVudFByb3BzKSh5LFIsdyxTKSxyZWY6ViwiZGF0YS1xYS1pZCI6Tn0sQykpfSFmdW5jdGlvbihlKXtlW2UuQWxsb3dIb3Jpem9udGFsU2hyaW5rPTFdPSJBbGxvd0hvcml6b250YWxTaHJpbmsiLGVbZS5BbGxvd0hvcml6b250YWxHcm93PTJdPSJBbGxvd0hvcml6b250YWxHcm93IixlW2UuQWxsb3dWZXJ0aWNhbFNocmluaz00XT0iQWxsb3dWZXJ0aWNhbFNocmluayIsZVtlLkFsbG93VmVydGljYWxHcm93PThdPSJBbGxvd1ZlcnRpY2FsR3JvdyJ9KFB8fChQPXt9KSk7Y29uc3QgZz17aGVpZ2h0OntleGFjdDoiLS11aS1saWItcHJpdmF0ZS1wb3NpdGlvbmVyLWFuY2hvckV4YWN0SGVpZ2h0IixtYXg6Ii0tdWktbGliLXByaXZhdGUtcG9zaXRpb25lci1hbmNob3JNYXhIZWlnaHQiLG1pbjoiLS11aS1saWItcHJpdmF0ZS1wb3NpdGlvbmVyLWFuY2hvck1pbkhlaWdodCJ9LHdpZHRoOntleGFjdDoiLS11aS1saWItcHJpdmF0ZS1wb3NpdGlvbmVyLWFuY2hvckV4YWN0V2lkdGgiLG1heDoiLS11aS1saWItcHJpdmF0ZS1wb3NpdGlvbmVyLWFuY2hvck1heFdpZHRoIixtaW46Ii0tdWktbGliLXByaXZhdGUtcG9zaXRpb25lci1hbmNob3JNaW5XaWR0aCJ9fX0sODY1MDAoZSx0LG4peyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBvKGUsdCxuLG8pe3JldHVybntyb2xlOm8sImFyaWEtbGFiZWxsZWRieSI6dCwiYXJpYS1tdWx0aXNlbGVjdGFibGUiOm4saWQ6ZX19bi5kKHQse2NvbnRlbnRQcm9wczooKT0+b30pfSwxOTQyNzUoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7TW9iaWxlUG9zaXRpb25lcjooKT0+TX0pO3ZhciBvPW4oNzc5NDc0KSxpPW4oOTE0NDg3KSxyPW4ubihpKSxhPW4oODU0MzM4KSxjPW4oNTg1NDgpLHM9big4NjUwMCksbD1uKDc4Nzg5NSksdT1uKDU4NzE2OCksZD1uKDMxOTY5KSxoPW4oNzM4NDU4KSxwPW4oNTY1NTMwKSxmPW4ubihwKTtmdW5jdGlvbiBQKGU9ITApe2NvbnN0IHQ9d2luZG93LmlubmVyV2lkdGgtZG9jdW1lbnQuYm9keS5jbGllbnRXaWR0aDt2YXIgbixvO2lmKGV8fCFoLmlzU2FmYXJpfHwwPT09dClyZXR1cm4gZG9jdW1lbnQuYm9keS5zdHlsZS5zZXRQcm9wZXJ0eSgiLS11aS1saWItcHJpdmF0ZS1zY3JvbGxUcmFwLXNjcm9sbC13aWR0aCIsYCR7dH1weGApLG49ZG9jdW1lbnQuYm9keSxvPWYoKS5ib2R5Tm9TY3JvbGwsbi5jbGFzc05hbWU9W24uY2xhc3NOYW1lLG9dLmpvaW4oIiAiKSwoKT0+eyFmdW5jdGlvbihlLHQpe2NvbnN0IG49ZS5jbGFzc05hbWUucmVwbGFjZSh0LCIiKSxvPW4uc3BsaXQoIiAiKS5maWx0ZXIoQm9vbGVhbikuam9pbigiICIpO2UuY2xhc3NOYW1lPW99KGRvY3VtZW50LmJvZHksZigpLmJvZHlOb1Njcm9sbCksZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QuY29udGFpbnMoZigpLmJvZHlOb1Njcm9sbCl8fGRvY3VtZW50LmJvZHkuc3R5bGUucmVtb3ZlUHJvcGVydHkoIi0tdWktbGliLXByaXZhdGUtc2Nyb2xsVHJhcC1zY3JvbGwtd2lkdGgiKX19dmFyIG09big3ODg0NjUpLGI9bi5uKG0pO2NvbnN0IHg9ZT0+e2UmJmcoZSl9O2Z1bmN0aW9uIGcoZSl7ZS5zY3JvbGxUb3A9NWUzLGUuc2Nyb2xsTGVmdD01ZTN9Y29uc3QgQz0oMCx1LmRlZmF1bHQpKChlPT57ZyhlLmN1cnJlbnRUYXJnZXQpfSksMTAwKTtmdW5jdGlvbiBFKGUpe2NvbnN0e3JlZmVyZW5jZTp0LGRpc2FibGVTYWZhcmlTY3JvbGxiYXJzOm49ITB9PWUsaT0oMCxkLnVzZU1lcmdlZFJlZnMpKFt4LHRdKTtyZXR1cm4oMCxvLnVzZUxheW91dEVmZmVjdCkoKCgpPT5QKG4pKSxbbl0pLG8uY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOmIoKS5zY3JvbGxUcmFwLHJlZjppLG9uU2Nyb2xsOkN9LGUuY2hpbGRyZW4sby5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6YigpLnNjcm9sbFRyYXBDb250ZW50fSkpfXZhciB2PW4oMTI5MzY1KSx5PW4oOTk1NzM4KSxSPW4ubih5KTtmdW5jdGlvbiB3KCl7cmV0dXJuIGguaXNTYWZhcmkmJmguaXNJT1M/by5jcmVhdGVFbGVtZW50KG8uRnJhZ21lbnQsbnVsbCwoMCx2LmNyZWF0ZVBvcnRhbCkoby5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6UigpLnN0dWJ9KSxkb2N1bWVudC5ib2R5KSk6bnVsbH12YXIgUyxPPW4oMzI3ODA4KSxBPW4ubihPKTtmdW5jdGlvbiBNKGUpe2NvbnN0IHQ9KDAsby51c2VSZWYpKG51bGwpLHtpc09wZW46bixvbkNsb3NlOmksY2hpbGRyZW46dSxjYXJkQXBwZWFyYW5jZUNsYXNzbmFtZTpkLGFuY2hvcmVkQXQ6aCxyZWZUb0NvbnRlbnRXcmFwcGVyRWxlbWVudDpwPXQsc2lkZTpmPSJib3R0b20iLGlkT2ZDb250ZW50V3JhcHBlckVsZW1lbnQ6UCxhcmlhTGFiZWxsZWRieTptLGFyaWFNdWx0aXNlbGVjdGFibGU6Yixyb2xlOngsc3RyZXRjaDpnLGRhdGFRYUlkOkN9PWUsdj0oMCxsLnVzZUZ1bmN0aW9uYWxSZWZPYmplY3QpKHApO3JldHVybigwLAphLnVzZUFuY2hvclBvcnRhbFBhaXIpKGgsdiksbj9vLmNyZWF0ZUVsZW1lbnQoby5GcmFnbWVudCxudWxsLG8uY3JlYXRlRWxlbWVudChjLlBvcnRhbCxudWxsLG8uY3JlYXRlRWxlbWVudChFLHtyZWZlcmVuY2U6dixkaXNhYmxlU2FmYXJpU2Nyb2xsYmFyczohMX0sby5jcmVhdGVFbGVtZW50KCJkaXYiLHsuLi4oMCxzLmNvbnRlbnRQcm9wcykoUCxtLGIseCksImRhdGEtcWEtaWQiOkMsY2xhc3NOYW1lOnIoKShBKCkuY29udGVudCxBKClbZl0sZCxnJiZBKCkuc3RyZXRjaCl9LHUpLG8uY3JlYXRlRWxlbWVudCgiZGl2Iix7cm9sZToicHJlc2VudGF0aW9uIixjbGFzc05hbWU6QSgpLmJhY2tkcm9wLG9uQ2xpY2s6KCk9PntpKCExKX0sb25Qb2ludGVyRG93bjplPT57ZS5zdG9wUHJvcGFnYXRpb24oKX19KSkpLCJib3R0b20iPT09ZiYmby5jcmVhdGVFbGVtZW50KHcsbnVsbCkpOm51bGx9IWZ1bmN0aW9uKGUpe2UuU2lkZUJlZ2luPSJiZWdpbiIsZS5TaWRlRW5kPSJlbmQiLGUuVG9wPSJ0b3AiLGUuQm90dG9tPSJib3R0b20ifShTfHwoUz17fSkpfSw4NTQzMzgoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7aXNFbGVtZW50Q29udGFpbnNFbGVtZW50VGhyb3VnaFBvcnRhbHM6KCk9PmQsaXNYWUluc2lkZUVsZW1lbnRUaHJvdWdoUG9ydGFsczooKT0+dSx1c2VBbmNob3JQb3J0YWxQYWlyOigpPT5sfSk7dmFyIG89big3Nzk0NzQpLGk9bigxMzg2MzgpLHI9big3NzE0NDcpO2NvbnN0IGE9bmV3IE1hcDtsZXQgYz0wO2Z1bmN0aW9uIHMoZSl7Y29uc3QgdD0oMCxvLnVzZUNhbGxiYWNrKSgoKCk9Pntjb25zdCB0PSgwLGkuZW5zdXJlKShlKTtyZXR1cm4iY3VycmVudCJpbiB0P3QuY3VycmVudDp0KCl9KSxbZV0pO2lmKGUpcmV0dXJuIHR9ZnVuY3Rpb24gbChlLHQpe2NvbnN0IG49cyhlKSxpPXModCk7KDAsby51c2VFZmZlY3QpKCgoKT0+e2lmKG4mJmkpcmV0dXJuIGZ1bmN0aW9uKGUsdCl7Y29uc3Qgbj1jKys7cmV0dXJuIGEuc2V0KG4sW2UsdF0pLCgpPT57YS5kZWxldGUobil9fShuLGkpfSksW24saV0pfWZ1bmN0aW9uIHUoZSx0LG4pe2lmKGZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4oMCxyLmlzSW5SZWN0KSh7eDp0LHk6bn0sZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSl9KGUsdCxuKSlyZXR1cm4hMDtmb3IoY29uc3QgbyBvZiBhLnZhbHVlcygpKXtjb25zdCBpPW9bMF0oKSxyPW9bMV0oKTtpZihpJiZyJiZlLmNvbnRhaW5zKGkpJiZ1KHIsdCxuKSlyZXR1cm4hMH1yZXR1cm4hMX1mdW5jdGlvbiBkKGUsdCl7aWYoZS5jb250YWlucyh0KSlyZXR1cm4hMDtmb3IoY29uc3QgbiBvZiBhLnZhbHVlcygpKXtjb25zdCBvPW5bMF0oKSxpPW5bMV0oKTtpZihvJiZpJiZlLmNvbnRhaW5zKG8pJiZkKGksdCkpcmV0dXJuITB9cmV0dXJuITF9fSw5NTY3MzAoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7UG9zaXRpb25lckNvbnRleHRQcm92aWRlcjooKT0+cyx1c2VQb3NpdGlvbmVyQ29udGV4dDooKT0+bH0pO3ZhciBvPW4oNzc5NDc0KSxpPW4oNjIzNjEzKSxyPW4ubihpKTtjb25zdCBhPSgwLG8uY3JlYXRlQ29udGV4dCkoe2lzQW5jaG9yUG9zaXRpb25lcjohMSxpc01vYmlsZVBvc2l0aW9uZXI6ITF9KTt2YXIgYztmdW5jdGlvbiBzKGUpe2NvbnN0e3Bvc2l0aW9uZXI6dCxjaGlsZHJlbjpufT1lLGk9KDAsby51c2VNZW1vKSgoKCk9Pih7aXNBbmNob3JQb3NpdGlvbmVyOiJhbmNob3IiPT09dCxpc01vYmlsZVBvc2l0aW9uZXI6Im1vYmlsZSI9PT10fSkpLFt0XSk7cmV0dXJuIG8uY3JlYXRlRWxlbWVudChhLlByb3ZpZGVyLHt2YWx1ZTppfSxvLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToibW9iaWxlIj09PXQ/cigpLm1vYmlsZUNvbnRleHQ6cigpLmFuY2hvckNvbnRleHR9LG4pKX1mdW5jdGlvbiBsKCl7cmV0dXJuKDAsby51c2VDb250ZXh0KShhKX0hZnVuY3Rpb24oZSl7ZS5BbmNob3I9ImFuY2hvciIsZS5Nb2JpbGU9Im1vYmlsZSJ9KGN8fChjPXt9KSl9LDUyNTI0KGUsdCxuKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbyguLi5lKXtyZXR1cm4oLi4udCk9PntlLmZvckVhY2goKGU9PmU/LiguLi50KSkpfX1uLmQodCx7Zm9ya0ZuOigpPT5vfSl9LDcwNjk0MyhlLHQsbil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG8oKXtjb25zdCBlPW5ldyBTZXQ7cmV0dXJue3N1YnNjcmliZTp0PT57ZS5hZGQodCl9LHVuc3Vic2NyaWJlOnQ9PntlLmRlbGV0ZSh0KX0sZmlyZTooKT0+e2UuZm9yRWFjaCgoZT0+ZSgpKSl9fX1uLmQodCx7Y3JlYXRlU2lnbmFsOigpPT5vfSl9fV0pOw=="}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/chart-widget-gui.13468e69e04a805f97cf.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:13.935Z","timestamp":1785148033935,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/chart-widget-gui.13468e69e04a805f97cf.js HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:13 GMT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a61b1a8-38e88\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Thu, 23 Jul 2026 06:16:08 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/23/2026 10:17:28\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 530093f4fc80a3b93987ecbc670baa5d\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":233096,"size_decoded":66241,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, Unicode text, UTF-8 text, with very long lines (3071)","md5":"4e35d66fb21ba281ba6dbf987ed9ad19","sha1":"73e3a494f412a84503c6bf08675879d8208fc592","sha256":"5653a56b0c05a5fd05b5142656859a2b962fa133463b10bef556248e9a874170","sha512":"b0ca5d7daa35d7d3028dceb3b720db89c3490e605c24bd22a4111fb473cc03df4111967e85c15c04ee5b3f778d6fb4827935324ad61a06e9280ae18ddff4cc7f","ssdeep":"3072:0LfPZKIwNAHqBrRysvaCGj4Re79+op3zathZRSEaigHKBRnE:kZKIIyOatj4Ip+oJza7Z3gH6E","tlshash":"f0344b677264783a61bb51ee08bb0503e71a6445b442407cf1bc9dde296dcc9b23af3e","first_seen":"2026-07-23T14:00:31.388594Z","last_seen":"2026-07-27T12:52:15.440681Z","times_seen":110,"resource_available":true,"data":"KHNlbGYud2VicGFja0NodW5rdHJhZGluZ3ZpZXc9c2VsZi53ZWJwYWNrQ2h1bmt0cmFkaW5ndmlld3x8W10pLnB1c2goW1s2NTU4OCw3NDM0MV0sezg1MzMzNihlLHQpe3ZhciBpLHMsbztzPVt0XSxpPWZ1bmN0aW9uKGUpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiB0KGUpe2lmKEFycmF5LmlzQXJyYXkoZSkpe2Zvcih2YXIgdD0wLGk9QXJyYXkoZS5sZW5ndGgpO3Q8ZS5sZW5ndGg7dCsrKWlbdF09ZVt0XTtyZXR1cm4gaX1yZXR1cm4gQXJyYXkuZnJvbShlKX1PYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGk9ITE7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3cpe3ZhciBzPXtnZXQgcGFzc2l2ZSgpe2k9ITB9fTt3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigidGVzdFBhc3NpdmUiLG51bGwscyksd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoInRlc3RQYXNzaXZlIixudWxsLHMpfXZhciBvPSJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93JiZ3aW5kb3cubmF2aWdhdG9yJiZ3aW5kb3cubmF2aWdhdG9yLnBsYXRmb3JtJiYvaVAoYWR8aG9uZXxvZCkvLnRlc3Qod2luZG93Lm5hdmlnYXRvci5wbGF0Zm9ybSksbj1bXSxhPSExLGw9LTEscj12b2lkIDAsZD12b2lkIDAsdT1mdW5jdGlvbihlKXtyZXR1cm4gbi5zb21lKChmdW5jdGlvbih0KXtyZXR1cm4hKCF0Lm9wdGlvbnMuYWxsb3dUb3VjaE1vdmV8fCF0Lm9wdGlvbnMuYWxsb3dUb3VjaE1vdmUoZSkpfSkpfSxjPWZ1bmN0aW9uKGUpe3ZhciB0PWV8fHdpbmRvdy5ldmVudDtyZXR1cm4hIXUodC50YXJnZXQpfHwxPHQudG91Y2hlcy5sZW5ndGh8fCh0LnByZXZlbnREZWZhdWx0JiZ0LnByZXZlbnREZWZhdWx0KCksITEpfSxoPWZ1bmN0aW9uKCl7c2V0VGltZW91dCgoZnVuY3Rpb24oKXt2b2lkIDAhPT1kJiYoZG9jdW1lbnQuYm9keS5zdHlsZS5wYWRkaW5nUmlnaHQ9ZCxkPXZvaWQgMCksdm9pZCAwIT09ciYmKGRvY3VtZW50LmJvZHkuc3R5bGUub3ZlcmZsb3c9cixyPXZvaWQgMCl9KSl9O2UuZGlzYWJsZUJvZHlTY3JvbGw9ZnVuY3Rpb24oZSxzKXtpZihvKXtpZighZSlyZXR1cm4gdm9pZCBjb25zb2xlLmVycm9yKCJkaXNhYmxlQm9keVNjcm9sbCB1bnN1Y2Nlc3NmdWwgLSB0YXJnZXRFbGVtZW50IG11c3QgYmUgcHJvdmlkZWQgd2hlbiBjYWxsaW5nIGRpc2FibGVCb2R5U2Nyb2xsIG9uIElPUyBkZXZpY2VzLiIpO2lmKGUmJiFuLnNvbWUoKGZ1bmN0aW9uKHQpe3JldHVybiB0LnRhcmdldEVsZW1lbnQ9PT1lfSkpKXt2YXIgaD17dGFyZ2V0RWxlbWVudDplLG9wdGlvbnM6c3x8e319O249W10uY29uY2F0KHQobiksW2hdKSxlLm9udG91Y2hzdGFydD1mdW5jdGlvbihlKXsxPT09ZS50YXJnZXRUb3VjaGVzLmxlbmd0aCYmKGw9ZS50YXJnZXRUb3VjaGVzWzBdLmNsaWVudFkpfSxlLm9udG91Y2htb3ZlPWZ1bmN0aW9uKHQpe3ZhciBpLHMsbyxuOzE9PT10LnRhcmdldFRvdWNoZXMubGVuZ3RoJiYocz1lLG49KGk9dCkudGFyZ2V0VG91Y2hlc1swXS5jbGllbnRZLWwsIXUoaS50YXJnZXQpJiYocyYmMD09PXMuc2Nyb2xsVG9wJiYwPG58fChvPXMpJiZvLnNjcm9sbEhlaWdodC1vLnNjcm9sbFRvcDw9by5jbGllbnRIZWlnaHQmJm48MD9jKGkpOmkuc3RvcFByb3BhZ2F0aW9uKCkpKX0sYXx8KGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoInRvdWNobW92ZSIsYyxpP3twYXNzaXZlOiExfTp2b2lkIDApLGE9ITApfX1lbHNle189cyxzZXRUaW1lb3V0KChmdW5jdGlvbigpe2lmKHZvaWQgMD09PWQpe3ZhciBlPSEhXyYmITA9PT1fLnJlc2VydmVTY3JvbGxCYXJHYXAsdD13aW5kb3cuaW5uZXJXaWR0aC1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50V2lkdGg7ZSYmMDx0JiYoZD1kb2N1bWVudC5ib2R5LnN0eWxlLnBhZGRpbmdSaWdodCxkb2N1bWVudC5ib2R5LnN0eWxlLnBhZGRpbmdSaWdodD10KyJweCIpfXZvaWQgMD09PXImJihyPWRvY3VtZW50LmJvZHkuc3R5bGUub3ZlcmZsb3csZG9jdW1lbnQuYm9keS5zdHlsZS5vdmVyZmxvdz0iaGlkZGVuIil9KSk7dmFyIHA9e3RhcmdldEVsZW1lbnQ6ZSxvcHRpb25zOnN8fHt9fTtuPVtdLmNvbmNhdCh0KG4pLFtwXSl9dmFyIF99LGUuY2xlYXJBbGxCb2R5U2Nyb2xsTG9ja3M9ZnVuY3Rpb24oKXtvPyhuLmZvckVhY2goKGZ1bmN0aW9uKGUpe2UudGFyZ2V0RWxlbWVudC5vbnRvdWNoc3RhcnQ9bnVsbCxlLnRhcmdldEVsZW1lbnQub250b3VjaG1vdmU9bnVsbH0pKSxhJiYoZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigidG91Y2htb3ZlIixjLGk/e3Bhc3NpdmU6ITF9OnZvaWQgMCksYT0hMSksbj1bXSxsPS0xKTooaCgpLG49W10pfSxlLmVuYWJsZUJvZHlTY3JvbGw9ZnVuY3Rpb24oZSl7aWYobyl7aWYoIWUpcmV0dXJuIHZvaWQgY29uc29sZS5lcnJvcigiZW5hYmxlQm9keVNjcm9sbCB1bnN1Y2Nlc3NmdWwgLSB0YXJnZXRFbGVtZW50IG11c3QgYmUgcHJvdmlkZWQgd2hlbiBjYWxsaW5nIGVuYWJsZUJvZHlTY3JvbGwgb24gSU9TIGRldmljZXMuIik7ZS5vbnRvdWNoc3RhcnQ9bnVsbCxlLm9udG91Y2htb3ZlPW51bGwsbj1uLmZpbHRlcigoZnVuY3Rpb24odCl7cmV0dXJuIHQudGFyZ2V0RWxlbWVudCE9PWV9KSksYSYmMD09PW4ubGVuZ3RoJiYoZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigidG91Y2htb3ZlIixjLGk/e3Bhc3NpdmU6ITF9OnZvaWQgMCksYT0hMSl9ZWxzZSAxPT09bi5sZW5ndGgmJm5bMF0udGFyZ2V0RWxlbWVudD09PWU/KGgoKSxuPVtdKTpuPW4uZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4gdC50YXJnZXRFbGVtZW50IT09ZX0pKX19LHZvaWQgMD09PShvPSJmdW5jdGlvbiI9PXR5cGVvZiBpP2kuYXBwbHkodCxzKTppKXx8KGUuZXhwb3J0cz1vKX0sODAzMjg3KGUpe2UuZXhwb3J0cz17ImRlZmF1bHQtZHJhd2VyLW1pbi10b3AtZGlzdGFuY2UiOiIxMDBweCIsd3JhcDoid3JhcC1paWkxMThvTiIscG9zaXRpb25Cb3R0b206InBvc2l0aW9uQm90dG9tLWlpaTExOG9OIixiYWNrZHJvcDoiYmFja2Ryb3AtaWlpMTE4b04iLGRyYXdlcjoiZHJhd2VyLWlpaTExOG9OIiwKcG9zaXRpb25MZWZ0OiJwb3NpdGlvbkxlZnQtaWlpMTE4b04ifX0sODU0NDUoZSl7ZS5leHBvcnRzPXtwaWxsczoicGlsbHMtSWVRd1BqY1oiLHByaW1hcnk6InByaW1hcnktSWVRd1BqY1oiLGdyYXk6ImdyYXktSWVRd1BqY1oiLHNlbGVjdGVkOiJzZWxlY3RlZC1JZVF3UGpjWiIsZ3JvdXBlZDoiZ3JvdXBlZC1JZVF3UGpjWiIsYWN0aXZlOiJhY3RpdmUtSWVRd1BqY1oiLGRpc2FibGVBY3RpdmVPblRvdWNoOiJkaXNhYmxlQWN0aXZlT25Ub3VjaC1JZVF3UGpjWiIsZGlzYWJsZUFjdGl2ZVN0YXRlU3R5bGVzOiJkaXNhYmxlQWN0aXZlU3RhdGVTdHlsZXMtSWVRd1BqY1oiLHdpdGhHcm91cGVkOiJ3aXRoR3JvdXBlZC1JZVF3UGpjWiIsInF1aWV0LXByaW1hcnkiOiJxdWlldC1wcmltYXJ5LUllUXdQamNaIixncmVlbjoiZ3JlZW4tSWVRd1BqY1oiLHJlZDoicmVkLUllUXdQamNaIixibHVlOiJibHVlLUllUXdQamNaIixzZWNvbmRhcnk6InNlY29uZGFyeS1JZVF3UGpjWiIsZ2hvc3Q6Imdob3N0LUllUXdQamNaIn19LDM2NDgxNShlKXtlLmV4cG9ydHM9e2xpZ2h0QnV0dG9uOiJsaWdodEJ1dHRvbi1ralJmVGxmeCIsbGluazoibGluay1ralJmVGxmeCIsbHRyOiJsdHIta2pSZlRsZngiLHJ0bDoicnRsLWtqUmZUbGZ4IiwidHlwb2dyYXBoeS1yZWd1bGFyMTZweCI6InR5cG9ncmFwaHktcmVndWxhcjE2cHgta2pSZlRsZngiLCJ0eXBvZ3JhcGh5LW1lZGl1bTE2cHgiOiJ0eXBvZ3JhcGh5LW1lZGl1bTE2cHgta2pSZlRsZngiLCJ0eXBvZ3JhcGh5LXJlZ3VsYXIxNHB4IjoidHlwb2dyYXBoeS1yZWd1bGFyMTRweC1ralJmVGxmeCIsInR5cG9ncmFwaHktc2VtaWJvbGQxNHB4IjoidHlwb2dyYXBoeS1zZW1pYm9sZDE0cHgta2pSZlRsZngiLCJ0eXBvZ3JhcGh5LXNlbWlib2xkMTZweCI6InR5cG9ncmFwaHktc2VtaWJvbGQxNnB4LWtqUmZUbGZ4Iixjb250ZW50OiJjb250ZW50LWtqUmZUbGZ4Iix2aXN1YWxseUhpZGRlbjoidmlzdWFsbHlIaWRkZW4ta2pSZlRsZngiLG5vd3JhcDoibm93cmFwLWtqUmZUbGZ4IixlbGxpcHNpc0NvbnRhaW5lcjoiZWxsaXBzaXNDb250YWluZXIta2pSZlRsZngiLHRleHRXcmFwQ29udGFpbmVyOiJ0ZXh0V3JhcENvbnRhaW5lci1ralJmVGxmeCIsdGV4dFdyYXBXaXRoRWxsaXBzaXM6InRleHRXcmFwV2l0aEVsbGlwc2lzLWtqUmZUbGZ4IixzbG90OiJzbG90LWtqUmZUbGZ4IixjYXJldDoiY2FyZXQta2pSZlRsZngiLGFjdGl2ZUNhcmV0OiJhY3RpdmVDYXJldC1ralJmVGxmeCIseHNtYWxsOiJ4c21hbGwta2pSZlRsZngiLHdpdGhTdGFydFNsb3Q6IndpdGhTdGFydFNsb3Qta2pSZlRsZngiLHdpdGhFbmRTbG90OiJ3aXRoRW5kU2xvdC1ralJmVGxmeCIsbm9Db250ZW50OiJub0NvbnRlbnQta2pSZlRsZngiLHdyYXA6IndyYXAta2pSZlRsZngiLHNtYWxsOiJzbWFsbC1ralJmVGxmeCIsbWVkaXVtOiJtZWRpdW0ta2pSZlRsZngifX0sNDAyMjUzKGUpe2UuZXhwb3J0cz17bmF2QnV0dG9uOiJuYXZCdXR0b24taGJTSlZ4a1EiLGxpbms6ImxpbmstaGJTSlZ4a1EiLGJhY2tncm91bmQ6ImJhY2tncm91bmQtaGJTSlZ4a1EiLGljb246Imljb24taGJTSlZ4a1EiLGZsaXBJY29uOiJmbGlwSWNvbi1oYlNKVnhrUSIsbGFyZ2U6ImxhcmdlLWhiU0pWeGtRIixwcmVzZXJ2ZVBhZGRpbmdzOiJwcmVzZXJ2ZVBhZGRpbmdzLWhiU0pWeGtRIixtZWRpdW06Im1lZGl1bS1oYlNKVnhrUSIsc21hbGw6InNtYWxsLWhiU0pWeGtRIix4c21hbGw6InhzbWFsbC1oYlNKVnhrUSIseHhzbWFsbDoieHhzbWFsbC1oYlNKVnhrUSIsYmxlbmRNb2RlOiJibGVuZE1vZGUtaGJTSlZ4a1EiLHZpc3VhbGx5SGlkZGVuOiJ2aXN1YWxseUhpZGRlbi1oYlNKVnhrUSJ9fSw4NjAwMjUoZSl7ZS5leHBvcnRzPXtwYWlyOiJwYWlyLXh3R3NTWFIwIix4eGNlcHRpb25hbGx5c21hbGxkb25vdHVzZWJydjEwMjM6Inh4Y2VwdGlvbmFsbHlzbWFsbGRvbm90dXNlYnJ2MTAyMy14d0dzU1hSMCIseHh4eHNtYWxsOiJ4eHh4c21hbGwteHdHc1NYUjAiLHh4eHNtYWxsOiJ4eHhzbWFsbC14d0dzU1hSMCIseHhzbWFsbDoieHhzbWFsbC14d0dzU1hSMCIseHNtYWxsOiJ4c21hbGwteHdHc1NYUjAiLHNtYWxsOiJzbWFsbC14d0dzU1hSMCIsbWVkaXVtOiJtZWRpdW0teHdHc1NYUjAiLGxhcmdlOiJsYXJnZS14d0dzU1hSMCIseGxhcmdlOiJ4bGFyZ2UteHdHc1NYUjAiLHh4bGFyZ2U6Inh4bGFyZ2UteHdHc1NYUjAiLHh4eGxhcmdlOiJ4eHhsYXJnZS14d0dzU1hSMCIsbG9nbzoibG9nby14d0dzU1hSMCIsc2tlbGV0b246InNrZWxldG9uLXh3R3NTWFIwIixlbXB0eToiZW1wdHkteHdHc1NYUjAifX0sMTQwMDE3KGUpe2UuZXhwb3J0cz17bG9nbzoibG9nby1WQ05LdWJXcSIsaGlkZGVuOiJoaWRkZW4tVkNOS3ViV3EiLHh4Y2VwdGlvbmFsbHlzbWFsbGRvbm90dXNlYnJ2MTAyMzoieHhjZXB0aW9uYWxseXNtYWxsZG9ub3R1c2VicnYxMDIzLVZDTkt1YldxIix4eHhzbWFsbDoieHh4c21hbGwtVkNOS3ViV3EiLHh4c21hbGw6Inh4c21hbGwtVkNOS3ViV3EiLHhzbWFsbDoieHNtYWxsLVZDTkt1YldxIixzbWFsbDoic21hbGwtVkNOS3ViV3EiLG1lZGl1bToibWVkaXVtLVZDTkt1YldxIixsYXJnZToibGFyZ2UtVkNOS3ViV3EiLHhsYXJnZToieGxhcmdlLVZDTkt1YldxIix4eGxhcmdlOiJ4eGxhcmdlLVZDTkt1YldxIix4eHhsYXJnZToieHh4bGFyZ2UtVkNOS3ViV3EiLHNrZWxldG9uOiJza2VsZXRvbi1WQ05LdWJXcSIsbGV0dGVyOiJsZXR0ZXItVkNOS3ViV3EifX0sMjAzMjczKGUpe2UuZXhwb3J0cz17c2NhbGFibGVJY29uOiJzY2FsYWJsZUljb24tY2oxYkFTZjcifX0sOTc1Mjg1KGUpe2UuZXhwb3J0cz17d3JhcHBlcjoid3JhcHBlci1oY3QyeUp2SyIsYW5pbWF0ZWQ6ImFuaW1hdGVkLWhjdDJ5SnZLIixwdWxzYXRpb246InB1bHNhdGlvbi1oY3QyeUp2SyJ9fSw3MTAxNTYoZSl7ZS5leHBvcnRzPXt9fSw0MTc2ODYoZSl7ZS5leHBvcnRzPXtsZWdlbmRBY3Rpb25CdXR0b246ImxlZ2VuZEFjdGlvbkJ1dHRvbi1xM082enpJSCJ9fSw2NTc1NjAoZSl7ZS5leHBvcnRzPXttYXJnaW5sZWdlbmRob3JpejoiNHB4IiwKbGVnZW5kOiJsZWdlbmQtWVRGSUo2MmgiLGxlZ2VuZF93aXRoSGlkZGVuQWN0aW9uczoibGVnZW5kX3dpdGhIaWRkZW5BY3Rpb25zLVlURklKNjJoIixpdGVtOiJpdGVtLVlURklKNjJoIixoaWRlSW52aXNpYmxlSG92ZXI6ImhpZGVJbnZpc2libGVIb3Zlci1ZVEZJSjYyaCIsYnV0dG9uOiJidXR0b24tWVRGSUo2MmgiLGJ1dHRvbnM6ImJ1dHRvbnMtWVRGSUo2MmgiLHdpdGhBY3Rpb246IndpdGhBY3Rpb24tWVRGSUo2MmgiLHNlbGVjdGVkOiJzZWxlY3RlZC1ZVEZJSjYyaCIsbGFzdDoibGFzdC1ZVEZJSjYyaCIsc3RhdHVzZXNXcmFwcGVyOiJzdGF0dXNlc1dyYXBwZXItWVRGSUo2MmgiLHN0YXR1c2VzV3JhcHBlcl9fc3RhdHVzZXM6InN0YXR1c2VzV3JhcHBlcl9fc3RhdHVzZXMtWVRGSUo2MmgiLHRleHQ6InRleHQtWVRGSUo2MmgiLG5vV3JhcFdyYXBwZXI6Im5vV3JhcFdyYXBwZXItWVRGSUo2MmgiLGNvbGxhcHNlZFNvdXJjZXNDb3VudGVyOiJjb2xsYXBzZWRTb3VyY2VzQ291bnRlci1ZVEZJSjYyaCIsbm9XcmFwOiJub1dyYXAtWVRGSUo2MmgiLHNlcmllczoic2VyaWVzLVlURklKNjJoIix2YWx1ZXNBZGRpdGlvbmFsV3JhcHBlcjoidmFsdWVzQWRkaXRpb25hbFdyYXBwZXItWVRGSUo2MmgiLHZhbHVlSXRlbToidmFsdWVJdGVtLVlURklKNjJoIixoaWRlVW5pcG9ydGFudFZhbHVlSXRlbXM6ImhpZGVVbmlwb3J0YW50VmFsdWVJdGVtcy1ZVEZJSjYyaCIsdW5pbXBvcnRhbnQ6InVuaW1wb3J0YW50LVlURklKNjJoIix2YWx1ZXNXcmFwcGVyOiJ2YWx1ZXNXcmFwcGVyLVlURklKNjJoIix3cmFwcGFibGU6IndyYXBwYWJsZS1ZVEZJSjYyaCIsZGlyZWN0aW9uQ29sdW1uOiJkaXJlY3Rpb25Db2x1bW4tWVRGSUo2MmgiLHRpdGxlc1dyYXBwZXI6InRpdGxlc1dyYXBwZXItWVRGSUo2MmgiLGxvZ29XcmFwcGVyOiJsb2dvV3JhcHBlci1ZVEZJSjYyaCIsYnV0dG9uc1dyYXBwZXI6ImJ1dHRvbnNXcmFwcGVyLVlURklKNjJoIixwYWlyQ29udGFpbmVyOiJwYWlyQ29udGFpbmVyLVlURklKNjJoIixsb2dvOiJsb2dvLVlURklKNjJoIixoaWRkZW46ImhpZGRlbi1ZVEZJSjYyaCIsbm9BY3Rpb25zOiJub0FjdGlvbnMtWVRGSUo2MmgiLHRpdGxlc0dyb3VwV3JhcHBlcjoidGl0bGVzR3JvdXBXcmFwcGVyLVlURklKNjJoIix0aXRsZVdyYXBwZXI6InRpdGxlV3JhcHBlci1ZVEZJSjYyaCIsdGl0bGU6InRpdGxlLVlURklKNjJoIix3aXRoRG90OiJ3aXRoRG90LVlURklKNjJoIix0aXRsZVdyYXBwZXJfX2FjdGl2ZToidGl0bGVXcmFwcGVyX19hY3RpdmUtWVRGSUo2MmgiLGFjY2Vzc2libGU6ImFjY2Vzc2libGUtWVRGSUo2MmgiLGRpc2FibGVkOiJkaXNhYmxlZC1ZVEZJSjYyaCIsZGlzYWJsZWRPbkludGVydmFsOiJkaXNhYmxlZE9uSW50ZXJ2YWwtWVRGSUo2MmgiLHdpdGhDdXN0b21UZXh0Q29sb3I6IndpdGhDdXN0b21UZXh0Q29sb3ItWVRGSUo2MmgiLHN0dWR5OiJzdHVkeS1ZVEZJSjYyaCIsbWFpblRpdGxlOiJtYWluVGl0bGUtWVRGSUo2MmgiLGlucHV0VGl0bGU6ImlucHV0VGl0bGUtWVRGSUo2MmgiLGhpZGVWYWx1ZXM6ImhpZGVWYWx1ZXMtWVRGSUo2MmgiLGhhczVCdXR0b25zOiJoYXM1QnV0dG9ucy1ZVEZJSjYyaCIsc3RheUluSG92ZXJlZE1vZGU6InN0YXlJbkhvdmVyZWRNb2RlLVlURklKNjJoIix3aXRoVGFpbDoid2l0aFRhaWwtWVRGSUo2MmgiLGxvYWRlcjoibG9hZGVyLVlURklKNjJoIix2YWx1ZVZhbHVlOiJ2YWx1ZVZhbHVlLVlURklKNjJoIix2YWx1ZVRpdGxlOiJ2YWx1ZVRpdGxlLVlURklKNjJoIixkZXNjVGl0bGU6ImRlc2NUaXRsZS1ZVEZJSjYyaCIsaW50ZXJ2YWxUaXRsZToiaW50ZXJ2YWxUaXRsZS1ZVEZJSjYyaCIscHJvdmlkZXJUaXRsZToicHJvdmlkZXJUaXRsZS1ZVEZJSjYyaCIsZXhjaGFuZ2VUaXRsZToiZXhjaGFuZ2VUaXRsZS1ZVEZJSjYyaCIsc3R5bGVUaXRsZToic3R5bGVUaXRsZS1ZVEZJSjYyaCIscHJpY2VTb3VyY2VUaXRsZToicHJpY2VTb3VyY2VUaXRsZS1ZVEZJSjYyaCIsZmxhZ2dlZDoiZmxhZ2dlZC1ZVEZJSjYyaCIsbWVkaXVtOiJtZWRpdW0tWVRGSUo2MmgiLG1pbmltaXplZDoibWluaW1pemVkLVlURklKNjJoIixtaWNybzoibWljcm8tWVRGSUo2MmgiLGxpbmtlZDoibGlua2VkLVlURklKNjJoIixvbmx5T25lQnV0dG9uQ2FuQmVTdGljazoib25seU9uZUJ1dHRvbkNhbkJlU3RpY2stWVRGSUo2MmgiLHRvdWNoTW9kZToidG91Y2hNb2RlLVlURklKNjJoIixidXR0b25JY29uOiJidXR0b25JY29uLVlURklKNjJoIixidXR0b25fX2FjdGl2ZToiYnV0dG9uX19hY3RpdmUtWVRGSUo2MmgiLGZsYWc6ImZsYWctWVRGSUo2MmgiLGV5ZToiZXllLVlURklKNjJoIixleWVMb2FkaW5nOiJleWVMb2FkaW5nLVlURklKNjJoIiwiZXllLWFuaW1hdGlvbiI6ImV5ZS1hbmltYXRpb24tWVRGSUo2MmgiLGxpbmtpbmc6ImxpbmtpbmctWVRGSUo2MmgiLGludGVydmFsRXllOiJpbnRlcnZhbEV5ZS1ZVEZJSjYyaCIsbWFya2VyQ29udGFpbmVyOiJtYXJrZXJDb250YWluZXItWVRGSUo2MmgiLGZsYWdXcmFwcGVyOiJmbGFnV3JhcHBlci1ZVEZJSjYyaCIsc291cmNlc1dyYXBwZXI6InNvdXJjZXNXcmFwcGVyLVlURklKNjJoIixsZWdlbmRNYWluU291cmNlV3JhcHBlcjoibGVnZW5kTWFpblNvdXJjZVdyYXBwZXItWVRGSUo2MmgiLHNvdXJjZXM6InNvdXJjZXMtWVRGSUo2MmgiLHRvZ2dsZXJXcmFwcGVyOiJ0b2dnbGVyV3JhcHBlci1ZVEZJSjYyaCIsdG9nZ2xlcldyYXBwZXJfX2xvYWRlcjoidG9nZ2xlcldyYXBwZXJfX2xvYWRlci1ZVEZJSjYyaCIsdG9nZ2xlcjoidG9nZ2xlci1ZVEZJSjYyaCBwYW5lLWJ1dHRvbi1MY1lkbzJONiIsb25seU9uZVNvdXJjZVNob3duOiJvbmx5T25lU291cmNlU2hvd24tWVRGSUo2MmgiLGNvdW50ZXI6ImNvdW50ZXItWVRGSUo2MmgiLGljb25BcnJvdzoiaWNvbkFycm93LVlURklKNjJoIixvYmplY3RUcmVlOiJvYmplY3RUcmVlLVlURklKNjJoIixjbG9zZWQ6ImNsb3NlZC1ZVEZJSjYyaCIsc2F2ZUFycm93V2lkdGg6InNhdmVBcnJvd1dpZHRoLVlURklKNjJoIiwKb2JqZWN0c1RyZWVDYW5CZVNob3duOiJvYmplY3RzVHJlZUNhbkJlU2hvd24tWVRGSUo2MmgifX0sNDI2Mjc0KGUpe2UuZXhwb3J0cz17ImNzcy12YWx1ZS1wYW5lLWNvbnRyb2xzLXBhZGRpbmciOiI0cHgiLGNzc192YWx1ZV9wYW5lX2NvbnRyb2xzX21hcmdpbl90b3A6IjQiLGNzc192YWx1ZV9wYW5lX2NvbnRyb2xzX2J1dHRvbl9zaXplOiIyMiIsY3NzX3ZhbHVlX3BhbmVfY29udHJvbHNfYnV0dG9uX3RvdWNoX3NpemU6IjIyIixwYW5lQ29udHJvbHM6InBhbmVDb250cm9scy1FeHp4OUlBWiIscGFuZUNvbnRyb2xzX2hpZGRlbjoicGFuZUNvbnRyb2xzX2hpZGRlbi1FeHp4OUlBWiIscGFuZUNvbnRyb2xzX2ZvcmNlSGlkZGVuOiJwYW5lQ29udHJvbHNfZm9yY2VIaWRkZW4tRXh6eDlJQVoiLHBhbmVDb250cm9sc19yZW1vdmU6InBhbmVDb250cm9sc19yZW1vdmUtRXh6eDlJQVoiLGJ1dHRvbnM6ImJ1dHRvbnMtRXh6eDlJQVoiLGJ1dHRvbjoiYnV0dG9uLUV4eng5SUFaIixidXR0b25fYWN0aXZhdGVkOiJidXR0b25fYWN0aXZhdGVkLUV4eng5SUFaIix0b3VjaE1vZGU6InRvdWNoTW9kZS1FeHp4OUlBWiIsbWF4aW1pemU6Im1heGltaXplLUV4eng5SUFaIixjb2xsYXBzZToiY29sbGFwc2UtRXh6eDlJQVoiLCJtYXhpbWl6ZS1hbmltYXRpb24tdXAtYnJhY2tldCI6Im1heGltaXplLWFuaW1hdGlvbi11cC1icmFja2V0LUV4eng5SUFaIiwibWF4aW1pemUtYW5pbWF0aW9uLWRvd24tYnJhY2tldCI6Im1heGltaXplLWFuaW1hdGlvbi1kb3duLWJyYWNrZXQtRXh6eDlJQVoiLG1pbmltaXplOiJtaW5pbWl6ZS1FeHp4OUlBWiIscmVzdG9yZToicmVzdG9yZS1FeHp4OUlBWiIsIm1pbmltaXplLWFuaW1hdGlvbi11cC1icmFja2V0IjoibWluaW1pemUtYW5pbWF0aW9uLXVwLWJyYWNrZXQtRXh6eDlJQVoiLCJtaW5pbWl6ZS1hbmltYXRpb24tZG93bi1icmFja2V0IjoibWluaW1pemUtYW5pbWF0aW9uLWRvd24tYnJhY2tldC1FeHp4OUlBWiIsdXA6InVwLUV4eng5SUFaIixidXR0b25JY29uOiJidXR0b25JY29uLUV4eng5SUFaIiwidXAtYW5pbWF0aW9uIjoidXAtYW5pbWF0aW9uLUV4eng5SUFaIixkb3duOiJkb3duLUV4eng5SUFaIiwiZG93bi1hbmltYXRpb24iOiJkb3duLWFuaW1hdGlvbi1FeHp4OUlBWiJ9fSw3NzIwMjgoZSl7ZS5leHBvcnRzPXtibG9ja0hpZGRlbjoiYmxvY2tIaWRkZW4tTGNZZG8yTjYiLCJwYW5lLWJ1dHRvbiI6InBhbmUtYnV0dG9uLUxjWWRvMk42In19LDc1MTg2MyhlKXtlLmV4cG9ydHM9e3dyYXA6IndyYXAtR2hEalh6QngiLGlucHV0OiJpbnB1dC1HaERqWHpCeCIsYm94OiJib3gtR2hEalh6QngiLGhvdmVyRG90OiJob3ZlckRvdC1HaERqWHpCeCIscmVkOiJyZWQtR2hEalh6QngiLGJsdWU6ImJsdWUtR2hEalh6QngiLGdyZWVuOiJncmVlbi1HaERqWHpCeCIsb3JhbmdlOiJvcmFuZ2UtR2hEalh6QngiLHB1cnBsZToicHVycGxlLUdoRGpYekJ4IixjeWFuOiJjeWFuLUdoRGpYekJ4IixwaW5rOiJwaW5rLUdoRGpYekJ4IixsYXJnZToibGFyZ2UtR2hEalh6QngiLHBpY2tlckRvdDoicGlja2VyRG90LUdoRGpYekJ4In19LDU1ODg3MyhlKXtlLmV4cG9ydHM9e3dyYXBwZXI6IndyYXBwZXIteWZOYmd0Z04iLGJ1dHRvbnM6ImJ1dHRvbnMteWZOYmd0Z04iLGNvbG9yU2VsZWN0QnV0dG9uOiJjb2xvclNlbGVjdEJ1dHRvbi15Zk5iZ3RnTiJ9fSw1NTg5NzIoZSl7ZS5leHBvcnRzPXt3cmFwcGVyOiJ3cmFwcGVyLVZuZVFWb052IixzZWxlY3Rvcjoic2VsZWN0b3ItVm5lUVZvTnYiLGFycm93TGVmdDoiYXJyb3dMZWZ0LVZuZVFWb052Iixjb2xvclNlbGVjdEJ1dHRvbjoiY29sb3JTZWxlY3RCdXR0b24tVm5lUVZvTnYiLHBvcHVwOiJwb3B1cC1WbmVRVm9OdiJ9fSw5MTYyNihlKXtlLmV4cG9ydHM9e2l0ZW06Iml0ZW0tdlRtOE8wTE0iLGludGVyYWN0aXZlOiJpbnRlcmFjdGl2ZS12VG04TzBMTSIsaG92ZXJlZDoiaG92ZXJlZC12VG04TzBMTSIsZGlzYWJsZWQ6ImRpc2FibGVkLXZUbThPMExNIixhY3RpdmU6ImFjdGl2ZS12VG04TzBMTSIsc2hvcnRjdXQ6InNob3J0Y3V0LXZUbThPMExNIixub3JtYWw6Im5vcm1hbC12VG04TzBMTSIsYmlnOiJiaWctdlRtOE8wTE0iLGljb25DZWxsOiJpY29uQ2VsbC12VG04TzBMTSIsaWNvbjoiaWNvbi12VG04TzBMTSIsY29udGVudDoiY29udGVudC12VG04TzBMTSIsbGFiZWw6ImxhYmVsLXZUbThPMExNIixjaGVja2VkOiJjaGVja2VkLXZUbThPMExNIix0b29sYm94OiJ0b29sYm94LXZUbThPMExNIixzaG93VG9vbGJveE9uSG92ZXI6InNob3dUb29sYm94T25Ib3Zlci12VG04TzBMTSIsYXJyb3dJY29uOiJhcnJvd0ljb24tdlRtOE8wTE0iLHN1Yk1lbnU6InN1Yk1lbnUtdlRtOE8wTE0iLGludmlzaWJsZUhvdGtleToiaW52aXNpYmxlSG90a2V5LXZUbThPMExNIn19LDEwNzk2NihlKXtlLmV4cG9ydHM9e2l0ZW06Iml0ZW0tZDlqTE9MclIiLGVtcHR5SWNvbnM6ImVtcHR5SWNvbnMtZDlqTE9MclIiLGxvYWRpbmc6ImxvYWRpbmctZDlqTE9MclIiLGRpc2FibGVkOiJkaXNhYmxlZC1kOWpMT0xyUiIsaW50ZXJhY3RpdmU6ImludGVyYWN0aXZlLWQ5akxPTHJSIixob3ZlcmVkOiJob3ZlcmVkLWQ5akxPTHJSIixub3JtYWw6Im5vcm1hbC1kOWpMT0xyUiIsYmlnOiJiaWctZDlqTE9MclIiLGljb246Imljb24tZDlqTE9MclIiLGxhYmVsOiJsYWJlbC1kOWpMT0xyUiIsdGl0bGU6InRpdGxlLWQ5akxPTHJSIixuZXN0ZWQ6Im5lc3RlZC1kOWpMT0xyUiIsc2hvcnRjdXQ6InNob3J0Y3V0LWQ5akxPTHJSIixyZW1vdmU6InJlbW92ZS1kOWpMT0xyUiJ9fSw5NTQ0NzgoZSl7ZS5leHBvcnRzPXtzZXBhcmF0b3I6InNlcGFyYXRvci1LSHR5TVRZRyJ9fSw4NjU1NjAoZSx0LGkpeyJ1c2Ugc3RyaWN0IjtpLmQodCx7VFZBcHBDb250ZXh0OigpPT5kLFRWQXBwQ29udGV4dFByb3ZpZGVyOigpPT5yfSk7dmFyIHM9aSg3Nzk0NzQpLG89aSgxMTUyOTMpLG49aSg5OTk1MSksYT1pKDExNzMxMyk7Y29uc3QgbD17aU9zOiJvbGQiLGFuZHJvaWQ6Im5ldyIsb2xkOiJvbGQiLG5ldzoibmV3Iixhbnk6ImFueSJ9O2Z1bmN0aW9uIHIoZSl7Y29uc3RbdF09KDAsCnMudXNlU3RhdGUpKHtpc09uTW9iaWxlQXBwUGFnZTplPT4oMCxhLmlzT25Nb2JpbGVBcHBQYWdlKShsW2VdKSxpc1J0bDooMCxvLmlzUnRsKSgpLGxvY2FsZTp3aW5kb3cubG9jYWxlLHJlbmRlck1vZGU6ZS5yZW5kZXJNb2RlPz8ibGVnYWN5In0pO3JldHVybiBzLmNyZWF0ZUVsZW1lbnQobi5BcHBDb250ZXh0LlByb3ZpZGVyLHt2YWx1ZTp0fSxlLmNoaWxkcmVuKX1jb25zdCBkPW4uQXBwQ29udGV4dH0sNTcxMzAwKGUsdCxpKXsidXNlIHN0cmljdCI7aS5yKHQpLGkuZCh0LHtjcmVhdGVSZWFjdFJvb3Q6KCk9Pmx9KTt2YXIgcz1pKDc3OTQ3NCksbz1pKDEyOTM2NSksbj1pKDMzNjMzNCksYT1pKDg2NTU2MCk7ZnVuY3Rpb24gbChlLHQsaT0ibGVnYWN5Iil7Y29uc3QgbD1zLmNyZWF0ZUVsZW1lbnQoYS5UVkFwcENvbnRleHRQcm92aWRlcix7cmVuZGVyTW9kZTppfSxlKTtpZigibW9kZXJuIj09PWkpe2NvbnN0IGU9KDAsbi5jcmVhdGVSb290KSh0KTtyZXR1cm4gZS5yZW5kZXIobCkse3JlbmRlcih0KXtlLnJlbmRlcihzLmNyZWF0ZUVsZW1lbnQoYS5UVkFwcENvbnRleHRQcm92aWRlcix7cmVuZGVyTW9kZTppfSx0KSl9LHVubW91bnQoKXtlLnVubW91bnQoKX19fXJldHVybiBvLnJlbmRlcihsLHQpLHtyZW5kZXIoZSl7by5yZW5kZXIocy5jcmVhdGVFbGVtZW50KGEuVFZBcHBDb250ZXh0UHJvdmlkZXIse3JlbmRlck1vZGU6aX0sZSksdCl9LHVubW91bnQoKXtvLnVubW91bnRDb21wb25lbnRBdE5vZGUodCl9fX19LDMxMzc3MihlLHQsaSl7InVzZSBzdHJpY3QiO2kuZCh0LHtEcmF3ZXJDb250ZXh0OigpPT5hLERyYXdlck1hbmFnZXI6KCk9Pm59KTt2YXIgcz1pKDc3OTQ3NCksbz1pKDk5NTY3OCk7Y2xhc3MgbiBleHRlbmRzIHMuUHVyZUNvbXBvbmVudHtjb25zdHJ1Y3RvcihlKXtzdXBlcihlKSx0aGlzLl9pc0JvZHlGaXhlZD0hMSx0aGlzLl9hZGREcmF3ZXI9ZT0+e3RoaXMuc2V0U3RhdGUoKHQ9Pih7c3RhY2s6Wy4uLnQuc3RhY2ssZV19KSkpfSx0aGlzLl9yZW1vdmVEcmF3ZXI9ZT0+e3RoaXMuc2V0U3RhdGUoKHQ9Pih7c3RhY2s6dC5zdGFjay5maWx0ZXIoKHQ9PnQhPT1lKSl9KSkpfSx0aGlzLnN0YXRlPXtzdGFjazpbXX19Y29tcG9uZW50RGlkVXBkYXRlKGUsdCl7IXQuc3RhY2subGVuZ3RoJiZ0aGlzLnN0YXRlLnN0YWNrLmxlbmd0aCYmKCgwLG8ucmVxdWVzdE1vZGFsU2Nyb2xsTG9jaykod2luZG93KSx0aGlzLl9pc0JvZHlGaXhlZD0hMCksdC5zdGFjay5sZW5ndGgmJiF0aGlzLnN0YXRlLnN0YWNrLmxlbmd0aCYmdGhpcy5faXNCb2R5Rml4ZWQmJigoMCxvLnJlbGVhc2VNb2RhbFNjcm9sbExvY2spKHdpbmRvdyksdGhpcy5faXNCb2R5Rml4ZWQ9ITEpfWNvbXBvbmVudFdpbGxVbm1vdW50KCl7dGhpcy5zdGF0ZS5zdGFjay5sZW5ndGgmJnRoaXMuX2lzQm9keUZpeGVkJiYoMCxvLnJlbGVhc2VNb2RhbFNjcm9sbExvY2spKHdpbmRvdyl9cmVuZGVyKCl7cmV0dXJuIHMuY3JlYXRlRWxlbWVudChhLlByb3ZpZGVyLHt2YWx1ZTp7YWRkRHJhd2VyOnRoaXMuX2FkZERyYXdlcixyZW1vdmVEcmF3ZXI6dGhpcy5fcmVtb3ZlRHJhd2VyLGN1cnJlbnREcmF3ZXI6dGhpcy5zdGF0ZS5zdGFjay5sZW5ndGg/dGhpcy5zdGF0ZS5zdGFja1t0aGlzLnN0YXRlLnN0YWNrLmxlbmd0aC0xXTpudWxsfX0sdGhpcy5wcm9wcy5jaGlsZHJlbil9fWNvbnN0IGE9cy5jcmVhdGVDb250ZXh0KG51bGwpfSw5NjQyMTQoZSx0LGkpeyJ1c2Ugc3RyaWN0IjtpLmQodCx7RHJhd2VyOigpPT5ffSk7dmFyIHM9aSg3Nzk0NzQpLG89aSg5MTQ0ODcpLG49aS5uKG8pLGE9aSgxMzg2MzgpLGw9aSg1ODU0OCkscj1pKDE1MDE1MCksZD1pKDMxMzc3MiksdT1pKDYzMjk5MiksYz1pKDU1ODAzMCksaD1pKDgwMzI4Nyk7dmFyIHA7ZnVuY3Rpb24gXyhlKXtjb25zdHtwb3NpdGlvbjp0PSJCb3R0b20iLG9uQ2xvc2U6aSxjaGlsZHJlbjpvLHJlZmVyZW5jZTpjLGNsYXNzTmFtZTpwLHRoZW1lOl89aH09ZSxtPSgwLGEuZW5zdXJlTm90TnVsbCkoKDAscy51c2VDb250ZXh0KShkLkRyYXdlckNvbnRleHQpKSxbYl09KDAscy51c2VTdGF0ZSkoKCgpPT4oMCxyLnJhbmRvbUhhc2gpKCkpKSx2PSgwLHMudXNlUmVmKShudWxsKSxmPSgwLHMudXNlQ29udGV4dCkodS5DbG9zZURlbGVnYXRlQ29udGV4dCk7cmV0dXJuKDAscy51c2VMYXlvdXRFZmZlY3QpKCgoKT0+KCgwLGEuZW5zdXJlTm90TnVsbCkodi5jdXJyZW50KS5mb2N1cyh7cHJldmVudFNjcm9sbDohMH0pLGYuc3Vic2NyaWJlKG0saSksbS5hZGREcmF3ZXIoYiksKCk9PnttLnJlbW92ZURyYXdlcihiKSxmLnVuc3Vic2NyaWJlKG0saSl9KSksW10pLHMuY3JlYXRlRWxlbWVudChsLlBvcnRhbCxudWxsLHMuY3JlYXRlRWxlbWVudCgiZGl2Iix7cmVmOmMsY2xhc3NOYW1lOm4oKShoLndyYXAsaFtgcG9zaXRpb24ke3R9YF0pfSxiPT09bS5jdXJyZW50RHJhd2VyJiZzLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpoLmJhY2tkcm9wLG9uQ2xpY2s6aX0pLHMuY3JlYXRlRWxlbWVudChnLHtjbGFzc05hbWU6bigpKF8uZHJhd2VyLGhbYHBvc2l0aW9uJHt0fWBdLHApLHJlZjp2LCJkYXRhLW5hbWUiOmVbImRhdGEtbmFtZSJdLCJkYXRhLXFhLWlkIjplWyJkYXRhLXFhLWlkIl19LG8pKSl9IWZ1bmN0aW9uKGUpe2UuTGVmdD0iTGVmdCIsZS5Cb3R0b209IkJvdHRvbSJ9KHB8fChwPXt9KSk7Y29uc3QgZz0oMCxzLmZvcndhcmRSZWYpKCgoZSx0KT0+e2NvbnN0e2NsYXNzTmFtZTppLC4uLm99PWU7cmV0dXJuIHMuY3JlYXRlRWxlbWVudChjLlRvdWNoU2Nyb2xsQ29udGFpbmVyLHtjbGFzc05hbWU6bigpKGguZHJhd2VyLGkpLHRhYkluZGV4Oi0xLHJlZjp0LC4uLm99KX0pKX0sNjMyOTkyKGUsdCxpKXsidXNlIHN0cmljdCI7aS5kKHQse0Nsb3NlRGVsZWdhdGVDb250ZXh0OigpPT5ufSk7dmFyIHM9aSg3Nzk0NzQpLG89aSgyNzYwMTkpO2NvbnN0IG49cy5jcmVhdGVDb250ZXh0KG8uZ2xvYmFsQ2xvc2VEZWxlZ2F0ZSl9LDk5OTUxKGUsdCxpKXsidXNlIHN0cmljdCI7aS5kKHQse0FwcENvbnRleHQ6KCk9PnN9KTtjb25zdCBzPSgwLGkoNzc5NDc0KS5jcmVhdGVDb250ZXh0KSh7CmlzT25Nb2JpbGVBcHBQYWdlOigpPT4hMSxpc1J0bDohMSxsb2NhbGU6ImVuIixyZW5kZXJNb2RlOiJsZWdhY3kifSl9LDEwNzU4NShlLHQsaSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHMoZSx0KXtyZXR1cm4gdHx8bnVsbD09ZXx8KCJzdHJpbmciPT10eXBlb2YgZXx8QXJyYXkuaXNBcnJheShlKSkmJjA9PT1lLmxlbmd0aH1pLmQodCx7aXNJY29uT25seTooKT0+c30pfSwyMjA3NjQoZSx0LGkpeyJ1c2Ugc3RyaWN0IjtpLmQodCx7QnV0dG9uR3JvdXBDb250ZXh0OigpPT5zfSk7Y29uc3Qgcz1pKDc3OTQ3NCkuY3JlYXRlQ29udGV4dCh7aXNJbkJ1dHRvbkdyb3VwOiExLGlzR3JvdXBQcmltYXJ5OiExfSl9LDMyODIxOShlLHQsaSl7InVzZSBzdHJpY3QiO2kuZCh0LHt1c2VMaWdodEJ1dHRvbkNsYXNzZXM6KCk9PnV9KTt2YXIgcz1pKDc3OTQ3NCksbz1pKDkxNDQ4Nyksbj1pLm4obyksYT1pKDMwOTkyMCksbD1pKDEwNzU4NSkscj1pKDUzMjAxMSksZD1pKDIyMDc2NCk7Y29uc3QgdT0oZSx0LGkpPT57Y29uc3Qgbz0oMCxzLnVzZUNvbnRleHQpKGEuQ3VzdG9tQmVoYXZpb3VyQ29udGV4dCkse2NsYXNzTmFtZTp1LGlzU2VsZWN0ZWQ6YyxjaGlsZHJlbjpoLHNob3dDYXJldDpwLGZvcmNlRGlyZWN0aW9uOl8saWNvbk9ubHk6Zyxjb2xvcjptPSJncmF5Iix2YXJpYW50OmI9InByaW1hcnkiLHNpemU6dj0ibWVkaXVtIixlbmFibGVBY3RpdmVTdGF0ZVN0eWxlczpmPW8uZW5hYmxlQWN0aXZlU3RhdGVTdHlsZXMsdHlwb2dyYXBoeTpTLGlzTGluazp5PSExLHRleHRXcmFwOncsaXNQaWxsczpDLGlzQWN0aXZlOkUsc3RhcnRTbG90OngsZW5kU2xvdDpMfT10LE09ZVtgdHlwb2dyYXBoeS0keygoZSx0LGkpPT57aWYoaSl7Y29uc3QgZT1pLnJlcGxhY2UoL15cRCsvZywiIik7cmV0dXJuIHQ/YHNlbWlib2xkJHtlfWA6aX1zd2l0Y2goZSl7Y2FzZSJ4c21hbGwiOnJldHVybiB0PyJzZW1pYm9sZDE0cHgiOiJyZWd1bGFyMTRweCI7Y2FzZSJzbWFsbCI6Y2FzZSJtZWRpdW0iOnJldHVybiB0PyJzZW1pYm9sZDE2cHgiOiJyZWd1bGFyMTZweCI7ZGVmYXVsdDpyZXR1cm4iIn19KSh2LGN8fEMsU3x8dm9pZCAwKX1gXSxUPSgwLHMudXNlQ29udGV4dCkoci5Db250cm9sR3JvdXBDb250ZXh0KSx7aXNJbkJ1dHRvbkdyb3VwOlYsaXNHcm91cFByaW1hcnk6a309KDAscy51c2VDb250ZXh0KShkLkJ1dHRvbkdyb3VwQ29udGV4dCk7cmV0dXJuIG4oKSh1LGUubGlnaHRCdXR0b24seSYmZS5saW5rLEUmJmUuYWN0aXZlLGMmJmUuc2VsZWN0ZWQsKDAsbC5pc0ljb25Pbmx5KShoLGcpJiZlLm5vQ29udGVudCwhIXgmJmUud2l0aFN0YXJ0U2xvdCwocHx8ISFMKSYmZS53aXRoRW5kU2xvdCxpJiZlLndpdGhHcm91cGVkLF8mJmVbX10sZVtrPyJwcmltYXJ5IjpiXSxlW2s/ImdyYXkiOm1dLGVbdl0sTSwhZiYmZS5kaXNhYmxlQWN0aXZlU3RhdGVTdHlsZXMsVC5pc0dyb3VwZWQmJmUuZ3JvdXBlZCx3JiZlLndyYXAsViYmZS5kaXNhYmxlQWN0aXZlT25Ub3VjaCxDJiZlLnBpbGxzKX19LDgzMDEyKGUsdCxpKXsidXNlIHN0cmljdCI7aS5kKHQse0xpZ2h0QnV0dG9uQ29udGVudDooKT0+cH0pO3ZhciBzPWkoNzc5NDc0KSxvPWkoOTE0NDg3KSxuPWkubihvKSxhPWkoNzcwMTQzKSxsPWkoMTA3NTg1KSxyPWkoMjczMzEwKSxkPWkoOTM1MSksdT1pLm4oZCksYz1pKDM2NDgxNSksaD1pLm4oYyk7ZnVuY3Rpb24gcChlKXtjb25zdHtzaG93Q2FyZXQ6dCxpY29uT25seTppLGVsbGlwc2lzOm89ITAsdGV4dFdyYXA6ZCx0b29sdGlwVGV4dDpjLGNoaWxkcmVuOnAsZW5kU2xvdDpfLHN0YXJ0U2xvdDpnLGlzQWN0aXZlQ2FyZXQ6bX09ZTtbXyx0XS5maWx0ZXIoKGU9PiEhZSkpO3JldHVybiBzLmNyZWF0ZUVsZW1lbnQocy5GcmFnbWVudCxudWxsLGcmJnMuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZTpuKCkoaCgpLnNsb3QsaCgpLnN0YXJ0U2xvdCl9LGcpLCEoMCxsLmlzSWNvbk9ubHkpKHAsaSkmJnMuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZTpuKCkoaCgpLmNvbnRlbnQsIWQmJmgoKS5ub3dyYXAsImFwcGx5LW92ZXJmbG93LXRvb2x0aXAiLCJhcHBseS1vdmVyZmxvdy10b29sdGlwLS1jaGVjay1jaGlsZHJlbi1yZWN1cnNpdmVseSIsImFwcGx5LW92ZXJmbG93LXRvb2x0aXAtLWFsbG93LXRleHQiKSwiZGF0YS1vdmVyZmxvdy10b29sdGlwLXRleHQiOmM/PygwLGEuZ2V0VGV4dEZvclRvb2x0aXApKHApfSxkfHxvP3MuY3JlYXRlRWxlbWVudChzLkZyYWdtZW50LG51bGwscy5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOm4oKSghZCYmbyYmaCgpLmVsbGlwc2lzQ29udGFpbmVyLGQmJmgoKS50ZXh0V3JhcENvbnRhaW5lcixkJiZvJiZoKCkudGV4dFdyYXBXaXRoRWxsaXBzaXMpfSxwKSxzLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6aCgpLnZpc3VhbGx5SGlkZGVuLCJhcmlhLWhpZGRlbiI6ITB9LHApKTpzLmNyZWF0ZUVsZW1lbnQocy5GcmFnbWVudCxudWxsLHAscy5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOmgoKS52aXN1YWxseUhpZGRlbiwiYXJpYS1oaWRkZW4iOiEwfSxwKSkpLF8mJnMuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZTpuKCkoaCgpLnNsb3QsaCgpLmVuZFNsb3QpfSxfKSx0JiYoZT0+cy5jcmVhdGVFbGVtZW50KHIuSWNvbix7Y2xhc3NOYW1lOm4oKShoKCkuY2FyZXQsZSYmaCgpLmFjdGl2ZUNhcmV0KSxpY29uOnUoKX0pKShtKSl9fSw4NTQ4MjAoZSx0LGkpeyJ1c2Ugc3RyaWN0IjtpLmQodCx7TGlnaHRCdXR0b246KCk9Pmh9KTt2YXIgcz1pKDc3OTQ3NCksbz1pKDUzMjAxMSksbj1pKDMyODIxOSksYT1pKDgzMDEyKSxsPWkoMzQ1MTE2KSxyPWkoMzY0ODE1KSxkPWkubihyKSx1PWkoODU0NDUpLGM9aS5uKHUpO2Z1bmN0aW9uIGgoZSl7CmNvbnN0e2lzR3JvdXBlZDp0fT1zLnVzZUNvbnRleHQoby5Db250cm9sR3JvdXBDb250ZXh0KSx7cmVmZXJlbmNlOmksY2xhc3NOYW1lOnIsaXNTZWxlY3RlZDp1LGNoaWxkcmVuOmgsaWNvbk9ubHk6cCxlbGxpcHNpczpfLHNob3dDYXJldDpnLGZvcmNlRGlyZWN0aW9uOm0sZW5kU2xvdDpiLHN0YXJ0U2xvdDp2LGNvbG9yOmYsdmFyaWFudDpTLHNpemU6eSxlbmFibGVBY3RpdmVTdGF0ZVN0eWxlczp3LHR5cG9ncmFwaHk6Qyx0ZXh0V3JhcDpFPSExLG1heExpbmVzOngsc3R5bGU6TD17fSxpc1BpbGxzOk0saXNBY3RpdmU6VCx0b29sdGlwVGV4dDpWLHJvbGU6ayxkYXRhUWFJZDpBLGFyaWFMYWJlbDpXLG5hbWU6SSxvbkZvY3VzOkIsb25CbHVyOkgsb25Nb3VzZUVudGVyOkQsb25Nb3VzZUxlYXZlOlAsb25Nb3VzZU92ZXI6Tixvbk1vdXNlT3V0OlIsb25DbGljazpPLG9uQW5pbWF0aW9uRW5kOkYsb25Qb2ludGVyT3Zlcjp6LG9uUG9pbnRlck91dDpqLG9uS2V5RG93bjpVLGF1dG9Gb2N1czpHLGlzQWN0aXZlQ2FyZXQ6WixpZDpKLGRpc2FibGVkOlksdGFiSW5kZXg6cSx2YWx1ZTokLHRpdGxlOlEsdHlwZTpLLC4uLlh9PWUsZWU9KDAsbC5maWx0ZXJEYXRhUHJvcHMpKFgpLHRlPSgwLGwuZmlsdGVyQXJpYVByb3BzKShYKSxpZT1FP3g/PzI6MSxzZT1pZT4wP3suLi5MLCItLXVpLWxpYi1saWdodC1idXR0b24tY29udGVudC1tYXgtbGluZXMiOmllfTpMO3JldHVybiBzLmNyZWF0ZUVsZW1lbnQoImJ1dHRvbiIse25hbWU6SSxvbkZvY3VzOkIsb25CbHVyOkgsb25Nb3VzZUVudGVyOkQsb25Nb3VzZUxlYXZlOlAsb25Nb3VzZU92ZXI6Tixvbk1vdXNlT3V0OlIsb25DbGljazpPLG9uQW5pbWF0aW9uRW5kOkYsb25Qb2ludGVyT3Zlcjp6LG9uUG9pbnRlck91dDpqLG9uS2V5RG93bjpVLGF1dG9Gb2N1czpHLGlkOkosZGlzYWJsZWQ6WSx0YWJJbmRleDpxLHZhbHVlOiQsdGl0bGU6USx0eXBlOkssImRhdGEtcWEtaWQiOkEsImFyaWEtbGFiZWwiOlcsLi4uZWUsLi4udGUsY2xhc3NOYW1lOigwLG4udXNlTGlnaHRCdXR0b25DbGFzc2VzKSh7Li4uYygpLC4uLmQoKX0se2NsYXNzTmFtZTpyLGlzU2VsZWN0ZWQ6dSxjaGlsZHJlbjpoLGljb25Pbmx5OnAsc2hvd0NhcmV0OmcsZm9yY2VEaXJlY3Rpb246bSxlbmRTbG90OmIsc3RhcnRTbG90OnYsY29sb3I6Zix2YXJpYW50OlMsc2l6ZTp5LGVuYWJsZUFjdGl2ZVN0YXRlU3R5bGVzOncsdHlwb2dyYXBoeTpDLHRleHRXcmFwOkUsaXNQaWxsczpNLGlzQWN0aXZlOlR9LHQpLHJlZjppLHN0eWxlOnNlLHJvbGU6a30scy5jcmVhdGVFbGVtZW50KGEuTGlnaHRCdXR0b25Db250ZW50LHtzaG93Q2FyZXQ6Zyxpc0FjdGl2ZUNhcmV0OmcmJihNfHxUfHx1fHxaKSxpY29uT25seTpwLGVsbGlwc2lzOl8sdGV4dFdyYXA6RSx0b29sdGlwVGV4dDpWLGVuZFNsb3Q6YixzdGFydFNsb3Q6dn0saCkpfX0sOTg2NjA5KGUsdCxpKXsidXNlIHN0cmljdCI7aS5kKHQse05hdkJ1dHRvbkNvbnRlbnQ6KCk9PmMsZ2V0TmF2QnV0dG9uQ2xhc3NlczooKT0+dX0pO3ZhciBzPWkoNzc5NDc0KSxvPWkoOTE0NDg3KSxuPWkubihvKSxhPWkoNDgwOTcyKSxsPWkoNDAyMjUzKSxyPWkubihsKTtjb25zdCBkPXsiLS11aS1saWItcHJpdmF0ZS1uYXZCdXR0b24tYmxlbmRNaXhMaWdodCI6ImNvbG9yLWJ1cm4iLCItLXVpLWxpYi1wcml2YXRlLW5hdkJ1dHRvbi1ibGVuZE1peERhcmsiOiJjb2xvci1kb2RnZSJ9O2Z1bmN0aW9uIHUoZSl7Y29uc3R7c2l6ZTp0PSJsYXJnZSIscHJlc2VydmVQYWRkaW5nczppLGlzTGluazpzLGZsaXBJY29uT25SdGw6byxibGVuZE1vZGU6YSxjbGFzc05hbWU6bH09ZTtyZXR1cm4gbigpKHIoKS5uYXZCdXR0b24scigpW3RdLGkmJnIoKS5wcmVzZXJ2ZVBhZGRpbmdzLG8mJnIoKS5mbGlwSWNvbixhJiZyKCkuYmxlbmRNb2RlLHMmJnIoKS5saW5rLGwpfWZ1bmN0aW9uIGMoZSl7Y29uc3R7Y2hpbGRyZW46dCxpY29uOmksYmxlbmRNb2RlOm99PWU7cmV0dXJuIHMuY3JlYXRlRWxlbWVudChzLkZyYWdtZW50LG51bGwscy5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOnIoKS5iYWNrZ3JvdW5kLHN0eWxlOm8/ZDp2b2lkIDB9KSxzLmNyZWF0ZUVsZW1lbnQoYS5TY2FsYWJsZUljb24se2ljb246aSxjbGFzc05hbWU6cigpLmljb259KSx0JiZzLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6cigpLnZpc3VhbGx5SGlkZGVufSx0KSl9fSw4ODA4ODYoZSx0LGkpeyJ1c2Ugc3RyaWN0IjtpLmQodCx7TmF2QnV0dG9uOigpPT5ufSk7dmFyIHM9aSg3Nzk0NzQpLG89aSg5ODY2MDkpO2NvbnN0IG49KDAscy5mb3J3YXJkUmVmKSgoKGUsdCk9Pntjb25zdHtpY29uOmksdHlwZTpuPSJidXR0b24iLHByZXNlcnZlUGFkZGluZ3M6YSxmbGlwSWNvbk9uUnRsOmwsc2l6ZTpyLGJsZW5kTW9kZTpkLGFyaWFMYWJlbDp1LC4uLmN9PWU7cmV0dXJuIHMuY3JlYXRlRWxlbWVudCgiYnV0dG9uIix7Li4uYyxjbGFzc05hbWU6KDAsby5nZXROYXZCdXR0b25DbGFzc2VzKSh7Li4uZSxjaGlsZHJlbjp1fSkscmVmOnQsdHlwZTpufSxzLmNyZWF0ZUVsZW1lbnQoby5OYXZCdXR0b25Db250ZW50LHtpY29uOmksYmxlbmRNb2RlOmR9LHUpKX0pKTtuLmRpc3BsYXlOYW1lPSJOYXZCdXR0b24ifSw2Mjc4NDgoZSx0LGkpeyJ1c2Ugc3RyaWN0IjtpLmQodCx7Z2V0QmxvY2tTdHlsZUNsYXNzZXM6KCk9PnIsZ2V0TG9nb1N0eWxlQ2xhc3NlczooKT0+ZH0pO3ZhciBzPWkoOTE0NDg3KSxvPWkubihzKSxuPWkoMTM2NCksYT1pKDg2MDAyNSksbD1pLm4oYSk7ZnVuY3Rpb24gcihlLHQpe3JldHVybiBvKCkobCgpLnBhaXIsbCgpW2VdLHQpfWZ1bmN0aW9uIGQoZSx0PTIsaT0hMCl7cmV0dXJuIG8oKShsKCkubG9nbyxsKClbZV0sbCgpLnNrZWxldG9uLG4uc2tlbGV0b25UaGVtZS53cmFwcGVyLCFpJiZsKCkuZW1wdHksMT09PXQmJm8oKShuLnNrZWxldG9uVGhlbWUuYW5pbWF0ZWQpKX19LDM4Nzc3NChlLHQsaSl7InVzZSBzdHJpY3QiO2kuZCh0LHtDaXJjbGVMb2dvOigpPT5sLGhpZGRlbkNpcmNsZUxvZ29DbGFzczooKT0+YX0pO3ZhciBzPWkoNzc5NDc0KSxvPWkoNzk0MTg3KSxuPWkoMTQwMDE3KQo7Y29uc3QgYT1pLm4obikoKS5oaWRkZW47ZnVuY3Rpb24gbChlKXtjb25zdCB0PSgwLG8uaXNDaXJjbGVMb2dvV2l0aFVybFByb3BzKShlKSxbaSxuXT0oMCxzLnVzZVN0YXRlKSgwKSxhPSgwLHMudXNlUmVmKShudWxsKSxsPSgwLG8uZ2V0U3R5bGVDbGFzc2VzKShlLnNpemUsaSxlLmNsYXNzTmFtZSkscj1lLmFsdD8/ZS50aXRsZT8/IiIsZD10P3JbMF06ZS5wbGFjZWhvbGRlckxldHRlcjtyZXR1cm4oMCxzLnVzZUVmZmVjdCkoKCgpPT5uKGEuY3VycmVudD8uY29tcGxldGU/PyF0PzI6MSkpLFt0XSksdCYmMyE9PWk/cy5jcmVhdGVFbGVtZW50KCJpbWciLHtyZWY6YSxjbGFzc05hbWU6bCxjcm9zc09yaWdpbjoiIixzcmM6ZS5sb2dvVXJsLGFsdDpyLHRpdGxlOmUudGl0bGUsbG9hZGluZzplLmxvYWRpbmcsb25Mb2FkOigpPT5uKDIpLG9uRXJyb3I6KCk9Pm4oMyksImFyaWEtbGFiZWwiOmVbImFyaWEtbGFiZWwiXSwiYXJpYS1oaWRkZW4iOmVbImFyaWEtaGlkZGVuIl19KTpzLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6bCx0aXRsZTplLnRpdGxlLCJhcmlhLWxhYmVsIjplWyJhcmlhLWxhYmVsIl0sImFyaWEtaGlkZGVuIjplWyJhcmlhLWhpZGRlbiJdfSxkKX19LDc5NDE4NyhlLHQsaSl7InVzZSBzdHJpY3QiO2kuZCh0LHtnZXRTdHlsZUNsYXNzZXM6KCk9PnIsaXNDaXJjbGVMb2dvV2l0aFVybFByb3BzOigpPT5kfSk7dmFyIHM9aSg5MTQ0ODcpLG89aS5uKHMpLG49aSgxMzY0KSxhPWkoMTQwMDE3KSxsPWkubihhKTtmdW5jdGlvbiByKGUsdD0yLGkpe3JldHVybiBvKCkobCgpLmxvZ28sbCgpW2VdLGksMD09PXR8fDE9PT10P28oKShuLnNrZWxldG9uVGhlbWUud3JhcHBlcixsKCkuc2tlbGV0b24pOmwoKS5sZXR0ZXIsMT09PXQmJm4uc2tlbGV0b25UaGVtZS5hbmltYXRlZCl9ZnVuY3Rpb24gZChlKXtyZXR1cm4ibG9nb1VybCJpbiBlJiZudWxsIT09ZS5sb2dvVXJsJiZ2b2lkIDAhPT1lLmxvZ29VcmwmJjAhPT1lLmxvZ29VcmwubGVuZ3RofX0sNTMyMDExKGUsdCxpKXsidXNlIHN0cmljdCI7aS5kKHQse0NvbnRyb2xHcm91cENvbnRleHQ6KCk9Pm4sZGVmYXVsdENlbGxTdGF0ZTooKT0+b30pO3ZhciBzPWkoNzc5NDc0KTtjb25zdCBvPXtpc1RvcDohMCxpc1JpZ2h0OiEwLGlzQm90dG9tOiEwLGlzTGVmdDohMH0sbj1zLmNyZWF0ZUNvbnRleHQoe2lzR3JvdXBlZDohMSxjZWxsU3RhdGU6b30pfSwzMDk5MjAoZSx0LGkpeyJ1c2Ugc3RyaWN0IjtpLmQodCx7Q3VzdG9tQmVoYXZpb3VyQ29udGV4dDooKT0+c30pO2NvbnN0IHM9KDAsaSg3Nzk0NzQpLmNyZWF0ZUNvbnRleHQpKHtlbmFibGVBY3RpdmVTdGF0ZVN0eWxlczohMH0pO3MuZGlzcGxheU5hbWU9IkN1c3RvbUJlaGF2aW91ckNvbnRleHQifSw3ODc4OTUoZSx0LGkpeyJ1c2Ugc3RyaWN0IjtpLmQodCx7dXNlRnVuY3Rpb25hbFJlZk9iamVjdDooKT0+bn0pO3ZhciBzPWkoNzc5NDc0KSxvPWkoNjE2MzExKTtmdW5jdGlvbiBuKGUpe2NvbnN0IHQ9KDAscy51c2VNZW1vKSgoKCk9PmZ1bmN0aW9uKGUpe2NvbnN0IHQ9aT0+e2UoaSksdC5jdXJyZW50PWl9O3JldHVybiB0LmN1cnJlbnQ9bnVsbCx0fSgoZT0+e2wuY3VycmVudChlKX0pKSksW10pLGk9KDAscy51c2VSZWYpKG51bGwpLG49dD0+e2lmKG51bGw9PT10KXJldHVybiBhKGkuY3VycmVudCx0KSx2b2lkKGkuY3VycmVudD1udWxsKTtpLmN1cnJlbnQhPT1lJiYoaS5jdXJyZW50PWUsYShpLmN1cnJlbnQsdCkpfSxsPSgwLHMudXNlUmVmKShuKTtyZXR1cm4gbC5jdXJyZW50PW4sKDAsby51c2VJc29tb3JwaGljTGF5b3V0RWZmZWN0KSgoKCk9PntpZihudWxsIT09dC5jdXJyZW50KXJldHVybiBsLmN1cnJlbnQodC5jdXJyZW50KSwoKT0+bC5jdXJyZW50KG51bGwpfSksW2VdKSx0fWZ1bmN0aW9uIGEoZSx0KXtudWxsIT09ZSYmKCJmdW5jdGlvbiI9PXR5cGVvZiBlP2UodCk6ZS5jdXJyZW50PXQpfX0sOTQ4NDUwKGUsdCxpKXsidXNlIHN0cmljdCI7aS5kKHQse0NvbW1vbkljb246KCk9Pm99KTt2YXIgcz1pKDc3OTQ3NCk7Y29uc3Qgbz1zLmZvcndhcmRSZWYoKChlLHQpPT57Y29uc3R7Y2xhc3NOYW1lOmksYXJpYUxhYmVsOm8sYXJpYUxhYmVsbGVkYnk6bix0aXRsZTphLGljb246bD0iIiwuLi5yfT1lLGQ9cix1PSEoIW8mJiFuKTtyZXR1cm4gcy5jcmVhdGVFbGVtZW50KCJzcGFuIix7ImFyaWEtbGFiZWwiOm8sImFyaWEtbGFiZWxsZWRieSI6biwiYXJpYS1oaWRkZW4iOiF1LHJlZjp0LHJvbGU6ImltZyIsZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUw6e19faHRtbDpsfSxjbGFzc05hbWU6aSx0aXRsZTphLC4uLmR9KX0pKX0sMjczMzEwKGUsdCxpKXsidXNlIHN0cmljdCI7aS5kKHQse0ljb246KCk9Pm99KTt2YXIgcz1pKDc3OTQ3NCk7Y29uc3Qgbz1zLmZvcndhcmRSZWYoKChlLHQpPT57Y29uc3R7aWNvbjppPSIiLHRpdGxlOm8sYXJpYUxhYmVsOm4sYXJpYUxhYmVsbGVkYnk6YSxhcmlhSGlkZGVuOmwsLi4ucn09ZSxkPSEhKG98fG58fGEpO3JldHVybiBzLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtyb2xlOiJpbWciLC4uLnIscmVmOnQsImFyaWEtbGFiZWwiOm4sImFyaWEtbGFiZWxsZWRieSI6YSwiYXJpYS1oaWRkZW4iOmx8fCFkLHRpdGxlOm8sZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUw6e19faHRtbDppfX0pfSkpfSw0ODA5NzIoZSx0LGkpeyJ1c2Ugc3RyaWN0IjtpLmQodCx7U2NhbGFibGVJY29uOigpPT5kfSk7dmFyIHM9aSg5MTQ0ODcpLG89aS5uKHMpLG49aSg3Nzk0NzQpLGE9aSg5NDg0NTApLGw9aSgyMDMyNzMpLHI9aS5uKGwpO2NvbnN0IGQ9bi5mb3J3YXJkUmVmKCgoZSx0KT0+e2NvbnN0e2NsYXNzTmFtZTppLC4uLnN9PWU7cmV0dXJuIG4uY3JlYXRlRWxlbWVudChhLkNvbW1vbkljb24sey4uLnMsY2xhc3NOYW1lOm8oKShpLHIoKS5zY2FsYWJsZUljb24pLHJlZjp0fSl9KSl9LDEzNjQoZSx0LGkpeyJ1c2Ugc3RyaWN0IjtpLmQodCx7c2tlbGV0b25UaGVtZTooKT0+b30pO3ZhciBzPWkoOTc1Mjg1KTtjb25zdCBvPWkubihzKSgpfSwxNDkzNjQoZSx0LGkpeyJ1c2Ugc3RyaWN0IjtpLmQodCx7U3dpdGNoR3JvdXA6KCk9Pm59KQo7dmFyIHM9aSg3Nzk0NzQpLG89aSg4Njk4NDIpO2NsYXNzIG4gZXh0ZW5kcyBzLlB1cmVDb21wb25lbnR7Y29uc3RydWN0b3IoZSl7c3VwZXIoZSksdGhpcy5fc3Vic2NyaXB0aW9ucz1uZXcgU2V0LHRoaXMuX2dldE5hbWU9KCk9PnRoaXMucHJvcHMubmFtZSx0aGlzLl9nZXRWYWx1ZXM9KCk9PnRoaXMucHJvcHMudmFsdWVzLHRoaXMuX2dldE9uQ2hhbmdlPSgpPT50aGlzLnByb3BzLm9uQ2hhbmdlLHRoaXMuX3N1YnNjcmliZT1lPT57dGhpcy5fc3Vic2NyaXB0aW9ucy5hZGQoZSl9LHRoaXMuX3Vuc3Vic2NyaWJlPWU9Pnt0aGlzLl9zdWJzY3JpcHRpb25zLmRlbGV0ZShlKX0sdGhpcy5zdGF0ZT17c3dpdGNoR3JvdXBDb250ZXh0OntnZXROYW1lOnRoaXMuX2dldE5hbWUsZ2V0VmFsdWVzOnRoaXMuX2dldFZhbHVlcyxnZXRPbkNoYW5nZTp0aGlzLl9nZXRPbkNoYW5nZSxzdWJzY3JpYmU6dGhpcy5fc3Vic2NyaWJlLHVuc3Vic2NyaWJlOnRoaXMuX3Vuc3Vic2NyaWJlfX19cmVuZGVyKCl7cmV0dXJuIHMuY3JlYXRlRWxlbWVudChvLlN3aXRjaEdyb3VwQ29udGV4dC5Qcm92aWRlcix7dmFsdWU6dGhpcy5zdGF0ZS5zd2l0Y2hHcm91cENvbnRleHR9LHRoaXMucHJvcHMuY2hpbGRyZW4pfWNvbXBvbmVudERpZFVwZGF0ZShlKXt0aGlzLl9ub3RpZnkodGhpcy5fZ2V0VXBkYXRlcyh0aGlzLnByb3BzLnZhbHVlcyxlLnZhbHVlcykpfV9ub3RpZnkoZSl7dGhpcy5fc3Vic2NyaXB0aW9ucy5mb3JFYWNoKCh0PT50KGUpKSl9X2dldFVwZGF0ZXMoZSx0KXtyZXR1cm5bLi4udCwuLi5lXS5maWx0ZXIoKGk9PnQuaW5jbHVkZXMoaSk/IWUuaW5jbHVkZXMoaSk6ZS5pbmNsdWRlcyhpKSkpfX19LDM0NTExNihlLHQsaSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHMoZSl7cmV0dXJuIG4oZSxhKX1mdW5jdGlvbiBvKGUpe3JldHVybiBuKGUsbCl9ZnVuY3Rpb24gbihlLHQpe2NvbnN0IGk9T2JqZWN0LmVudHJpZXMoZSkuZmlsdGVyKHQpLHM9e307Zm9yKGNvbnN0W2UsdF1vZiBpKXNbZV09dDtyZXR1cm4gc31mdW5jdGlvbiBhKGUpe2NvbnN0W3QsaV09ZTtyZXR1cm4gMD09PXQuaW5kZXhPZigiZGF0YS0iKSYmInN0cmluZyI9PXR5cGVvZiBpfWZ1bmN0aW9uIGwoZSl7cmV0dXJuIDA9PT1lWzBdLmluZGV4T2YoImFyaWEtIil9ZnVuY3Rpb24gcihlLHQpe2NvbnN0IGk9cyhlKTtyZXR1cm4gdCYmKGlbImRhdGEtcWEtaWQiXT10KSxpfWkuZCh0LHtmaWx0ZXJBcmlhUHJvcHM6KCk9Pm8sZmlsdGVyQ2hlY2tlZERhdGFQcm9wczooKT0+cixmaWx0ZXJEYXRhUHJvcHM6KCk9PnMsZmlsdGVyUHJvcHM6KCk9Pm4saXNBcmlhQXR0cmlidXRlOigpPT5sLGlzRGF0YUF0dHJpYnV0ZTooKT0+YX0pfSw3NzAxNDMoZSx0LGkpeyJ1c2Ugc3RyaWN0IjtpLmQodCx7Z2V0VGV4dEZvclRvb2x0aXA6KCk9PmF9KTt2YXIgcz1pKDc3OTQ3NCk7Y29uc3Qgbz1lPT4oMCxzLmlzVmFsaWRFbGVtZW50KShlKSYmQm9vbGVhbihlLnByb3BzLmNoaWxkcmVuKSxuPShlLHQ9ITApPT5udWxsPT1lfHwiYm9vbGVhbiI9PXR5cGVvZiBlfHwie30iPT09SlNPTi5zdHJpbmdpZnkoZSk/IiI6ZS50b1N0cmluZygpKyh0PyIgIjoiIiksYT1lPT5BcnJheS5pc0FycmF5KGUpfHwoMCxzLmlzVmFsaWRFbGVtZW50KShlKT9zLkNoaWxkcmVuLnRvQXJyYXkoZSkucmVkdWNlKCgoZSx0KT0+e2xldCBpPSIiO3JldHVybiBpPSgwLHMuaXNWYWxpZEVsZW1lbnQpKHQpJiZvKHQpP2EodC5wcm9wcy5jaGlsZHJlbik6KDAscy5pc1ZhbGlkRWxlbWVudCkodCkmJiFvKHQpPyIiOm4odCksZS5jb25jYXQoaSl9KSwiIikudHJpbSgpOm4oZSwhMSl9LDk2NDU5NChlLHQsaSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHMoZSl7cmV0dXJuIHQ9PntlLmZvckVhY2goKGU9PnsiZnVuY3Rpb24iPT10eXBlb2YgZT9lKHQpOm51bGwhPWUmJihlLmN1cnJlbnQ9dCl9KSl9fWZ1bmN0aW9uIG8oZSl7cmV0dXJuIHMoW2VdKX1pLmQodCx7aXNvbW9ycGhpY1JlZjooKT0+byxtZXJnZVJlZnM6KCk9PnN9KX0sOTczODA0KGUsdCxpKXsidXNlIHN0cmljdCI7aS5kKHQse2dldEltYWdlOigpPT5ufSk7Y29uc3Qgcz1uZXcgTWFwO2Z1bmN0aW9uIG8oZSl7ZS5jcm9zc09yaWdpbj0iYW5vbnltb3VzIn1mdW5jdGlvbiBuKGUsdCxpPW8sbil7bGV0IGE9cy5nZXQoZSk7cmV0dXJuIHZvaWQgMD09PWEmJihhPW5ldyBQcm9taXNlKCgoZSxzKT0+e2NvbnN0IG89bmV3IEltYWdlO28ub25sb2FkPSgpPT57ZShvKSxvLm9ubG9hZD1udWxsLG8ub25lcnJvcj1udWxsfSxvLm9uZXJyb3I9KCk9PntzKCksby5vbmxvYWQ9bnVsbCxvLm9uZXJyb3I9bnVsbH0saShvKSxvLnNyYz10LG4mJihuLm9uYWJvcnQ9KCk9PntzKCksby5vbmxvYWQ9bnVsbCxvLm9uZXJyb3I9bnVsbH0pfSkpLHMuc2V0KGUsYSkpLGF9fSw3OTAwNDEoZSx0LGkpeyJ1c2Ugc3RyaWN0IjtpLmQodCx7Y2hhbmdlRGVzY3JpcHRpb246KCk9PmQsY29udmVydFRvQ3VzdG9tU3ltYm9sTGlzdDooKT0+bCxjb252ZXJ0VG9NYXJrZWRTeW1ib2xMaXN0OigpPT5yfSk7dmFyIHM9aSgxMzg2MzgpLG89aSgzODQwMTcpLG49aSg1ODA1MjYpLGE9KGkoNjIxMjApLGkoOTYyMDgxKSxpKDMwNDM5OSkpO2koMTU1OTAwKSxpKDU2OTM5OCksaSg3ODgwMSk7ZnVuY3Rpb24gbChlKXtjb25zdCB0PWUuaWQsaT1lLm5hbWUse3N5bWJvbHM6cyxjb2xsYXBzZWRTZXBhcmF0b3JzOm99PSgwLG4ubG9jYWxDb2xsYXBzZVN0YXRlRnJvbVJlbW90ZVN5bWJvbHMpKGUuc3ltYm9scz8/W10pO3JldHVybnt0eXBlOiJjdXN0b20iLGlkOnQsbmFtZTppLGRlc2NyaXB0aW9uOmUuZGVzY3JpcHRpb24sYWN0aXZlOmUuYWN0aXZlLHN5bWJvbHM6cyxzaGFyZWQ6ZS5zaGFyZWQsY29sbGFwc2VkU2VwYXJhdG9yczpvLHBlcnNpc3RlZFN0YXRlOmUsbWV0YTp7c2VydmVyX2lkOit0fX19ZnVuY3Rpb24gcihlKXtjb25zdCB0PSgwLHMuZW5zdXJlTm90TnVsbCkoZS5jb2xvcikse3N5bWJvbHM6aSxjb2xsYXBzZWRTZXBhcmF0b3JzOm99PSgwLG4ubG9jYWxDb2xsYXBzZVN0YXRlRnJvbVJlbW90ZVN5bWJvbHMpKGUuc3ltYm9scz8/W10pO3JldHVybnt0eXBlOiJjb2xvcmVkIixpZDp0LApjb2xvcjp0LG5hbWU6ZS5uYW1lPz9udWxsLGRlc2NyaXB0aW9uOmUuZGVzY3JpcHRpb24sYWN0aXZlOmUuYWN0aXZlLHN5bWJvbHM6aSxzaGFyZWQ6ZS5zaGFyZWQsY29sbGFwc2VkU2VwYXJhdG9yczpvLHBlcnNpc3RlZFN0YXRlOmUsbWV0YTp7c2VydmVyX2lkOitlLmlkfX19ZnVuY3Rpb24gZChlLHQpe3JldHVybigwLG8uZmV0Y2gpKCgwLGEud2F0Y2hsaXN0VXJsKShgL2FwaS92MS9zeW1ib2xzX2xpc3QvY3VzdG9tLyR7ZX0vdXBkYXRlX21ldGEvYCkse21ldGhvZDoiUE9TVCIsYm9keTpKU09OLnN0cmluZ2lmeSh7ZGVzY3JpcHRpb246dH0pLGNyZWRlbnRpYWxzOiJpbmNsdWRlIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9fSkudGhlbihhLmhhbmRsZUpTT04pLnRoZW4obCl9fSw1ODA1MjYoZSx0LGkpeyJ1c2Ugc3RyaWN0IjtpLmQodCx7Z2V0TG9jYWxMaXN0U3ltYm9sczooKT0+aCxsb2NhbENvbGxhcHNlU3RhdGVGcm9tUmVtb3RlU3ltYm9sczooKT0+cixyZW1vdGVSZW5hbWVTZXBhcmF0b3JzOigpPT51LHJlbW90ZVN5bWJvbHNGb3JtTG9jYWxTdGF0ZTooKT0+ZCxzZXBhcmF0b3JSZW1vdGVSZXByZXNlbnRhdGlvbjooKT0+Y30pO3ZhciBzPWkoMTM4NjM4KSxvPWkoOTAxMDIyKSxuPWkoNzA1MDEyKSxhPWkoOTIyMjQ4KTtjb25zdCBsPW5ldyBSZWdFeHAoYF4ke28uU0VQQVJBVE9SX1BSRUZJWH0o4oGkKT8oLispJGApO2Z1bmN0aW9uIHIoZSl7Y29uc3QgdD1bXSxpPVtdO3JldHVybiBlLmZvckVhY2goKGU9Pntjb25zdFsscyxuXT1lLm1hdGNoKGwpfHxbXTtpZihuKXtjb25zdCBlPWAke28uU0VQQVJBVE9SX1BSRUZJWH0ke259YDtzJiZpLnB1c2goZSksdC5wdXNoKGUpfWVsc2UgdC5wdXNoKGUpfSkpLHtzeW1ib2xzOnQsY29sbGFwc2VkU2VwYXJhdG9yczppfX1mdW5jdGlvbiBkKGUsdCl7Y29uc3QgaT1fKGUpO3JldHVybiB0Lm1hcCgoZT0+aT8uaGFzT3duUHJvcGVydHkoZSk/YyhlLGlbZV0pOmUpKX1mdW5jdGlvbiB1KGUsdCxpKXtjb25zdCBzPV8oZSk7aWYocz8uaGFzT3duUHJvcGVydHkoaSkpe2NvbnN0IGU9c1tpXTtyZXR1cm57b2xkU2VwYXJhdG9yOmModCxlKSxuZXdTZXBhcmF0b3I6YyhpLGUpfX1yZXR1cm57b2xkU2VwYXJhdG9yOnQsbmV3U2VwYXJhdG9yOml9fWZ1bmN0aW9uIGMoZSx0KXtjb25zdCBpPWUucmVwbGFjZShvLlNFUEFSQVRPUl9QUkVGSVgsIiIpLnJlcGxhY2UoIuKBpCIsIiIpO3JldHVybmAke28uU0VQQVJBVE9SX1BSRUZJWH0ke3Q/IuKBpCI6IiJ9JHtpfWB9ZnVuY3Rpb24gaChlKXtjb25zdCB0PXAoKTtyZXR1cm4oMCxzLmVuc3VyZURlZmluZWQpKHQubWFya2VkTGlzdHM/Lmxpc3RzLmJ5Q29sb3JbZV0/LnN5bWJvbHN8fHQuY3VzdG9tTGlzdHMubGlzdHMuYnlJZFtlXT8uc3ltYm9scyl9ZnVuY3Rpb24gcCgpe3JldHVybigwLG4uc2VydmljZSkoYS5TWU1CT0xfTElTVF9TRVJWSUNFKS5zdG9yZS5nZXRTdGF0ZSgpfWZ1bmN0aW9uIF8oZSl7cmV0dXJuIHAoKS5jb2xsYXBzZWRTZXBhcmF0b3JzW2VdfX0sNjIxMjAoZSx0LGkpeyJ1c2Ugc3RyaWN0IjtpLmQodCx7cGVuZGluZ09wZW5TZXBhcmF0b3JzOigpPT5zfSk7Y29uc3Qgcz1uZXcgU2V0fSw4Nzc0NDIoZSx0LGkpeyJ1c2Ugc3RyaWN0Ijt2YXIgcyxvLG47aS5kKHQse1RpY2tlclR5cGU6KCk9PnN9KSxmdW5jdGlvbihlKXtlLlRpY2tlcj0idGlja2VyIixlLkRlc2NyaXB0aW9uPSJkZXNjcmlwdGlvbiJ9KHN8fChzPXt9KSksZnVuY3Rpb24oZSl7ZS5TeW1ib2xOYW1lPSJzaG9ydF9uYW1lIixlLkxhc3Q9Imxhc3RfcHJpY2UiLGUuQ2hhbmdlPSJjaGFuZ2UiLGUuQ2hhbmdlSW5QZXJjZW50cz0iY2hhbmdlX3BlcmNlbnQiLGUuVm9sdW1lPSJ2b2x1bWUiLGUuUHJlUG9zdE1hcmtldD0icmNocCIsZS5GbGFnPSJmbGFnIn0ob3x8KG89e30pKSxmdW5jdGlvbihlKXtlW2UuREVTQz0tMV09IkRFU0MiLGVbZS5BU0M9MV09IkFTQyJ9KG58fChuPXt9KSl9LDQ0MDcxNShlLHQsaSl7InVzZSBzdHJpY3QiO2kuZCh0LHtDb250ZXh0TWVudUNvbnRleHQ6KCk9PnN9KTtjb25zdCBzPWkoNzc5NDc0KS5jcmVhdGVDb250ZXh0KG51bGwpfSw1MjUxKGUsdCxpKXsidXNlIHN0cmljdCI7aS5kKHQse0hpbnQ6KCk9Pmx9KTt2YXIgcz1pKDc3OTQ3NCksbz1pKDkxNDQ4Nyksbj1pLm4obyksYT1pKDkxNjI2KTtmdW5jdGlvbiBsKGUpe2NvbnN0e3RleHQ6dD0iIixjbGFzc05hbWU6aX09ZTtyZXR1cm4gcy5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOm4oKShhLnNob3J0Y3V0LGkpfSx0KX19LDcyMTE2NyhlLHQsaSl7InVzZSBzdHJpY3QiO2kuZCh0LHtDb250ZXh0TWVudUl0ZW06KCk9Pl99KTt2YXIgcz1pKDc3OTQ3NCksbz1pKDkxNDQ4Nyksbj1pLm4obyksYT1pKDI3MzMxMCksbD1pKDY0OTE2Nikscj1pKDc3OTEwOCksZD1pKDUyNTEpLHU9aSgzODA1NiksYz1pKDU4MDU5NiksaD1pKDQ2MjcwNCkscD1pKDEwNzk2Nik7ZnVuY3Rpb24gXyhlKXtjb25zdHtjbGFzc05hbWU6dCxpc1RpdGxlOmksaXNMb2FkaW5nOm8saXNIb3ZlcmVkOl8sYWN0aXZlOmcsY2hlY2thYmxlOm0sZGlzYWJsZWQ6YixjaGVja2VkOnYsaWNvbjpmLGljb25DaGVja2VkOlMsaGludDp5LHN1Ykl0ZW1zOncsbGFiZWw6QyxzdHlsZWRMYWJlbDpFLG9uQ2xpY2s6eCxjaGlsZHJlbjpMLHRvb2xib3g6TSxqc3hMYWJlbDpULHNpemU6Vj0ibm9ybWFsIn09ZSxrPSgwLHMudXNlQ29udGV4dCkoci5FbXB0eUljb25zQ29udGV4dCksQT0hIXcubGVuZ3RoO3JldHVybiBvP3MuY3JlYXRlRWxlbWVudCgibGkiLHtjbGFzc05hbWU6bigpKHQscC5pdGVtLHAubG9hZGluZyxwW1ZdKX0scy5jcmVhdGVFbGVtZW50KGwuTG9hZGVyLG51bGwpKTpzLmNyZWF0ZUVsZW1lbnQoImxpIix7Y2xhc3NOYW1lOm4oKSh0LHAuaXRlbSxwLmludGVyYWN0aXZlLGkmJnAudGl0bGUsYiYmcC5kaXNhYmxlZCxfJiZwLmhvdmVyZWQsZyYmcC5hY3RpdmUsayYmcC5lbXB0eUljb25zLHBbVl0pLG9uQ2xpY2s6eH0scy5jcmVhdGVFbGVtZW50KGEuSWNvbix7Y2xhc3NOYW1lOm4oKShwLmljb24pLGljb246ZnVuY3Rpb24oKXsKaWYobSYmdilyZXR1cm4gU3x8Znx8dTtyZXR1cm4gZn0oKX0pLHMuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZTpuKCkocC5sYWJlbCl9LCFUJiZFP0UubWFwKCgoe3RleHQ6ZSwuLi50fSxpKT0+cy5jcmVhdGVFbGVtZW50KCJzcGFuIix7a2V5Omksc3R5bGU6dH0sZSkpKTpUPz9DKSwhIU0mJnMuY3JlYXRlRWxlbWVudChhLkljb24se29uQ2xpY2s6ZnVuY3Rpb24oKXtNJiZNLmFjdGlvbigpfSxjbGFzc05hbWU6cC5yZW1vdmUsaWNvbjpofSksIUEmJnkmJnMuY3JlYXRlRWxlbWVudChkLkhpbnQse2NsYXNzTmFtZTpwLnNob3J0Y3V0LHRleHQ6eX0pLEEmJnMuY3JlYXRlRWxlbWVudChhLkljb24se2NsYXNzTmFtZTpwLm5lc3RlZCxpY29uOmN9KSxMKX19LDMyMzgzMChlLHQsaSl7InVzZSBzdHJpY3QiO2kuZCh0LHtDb250ZXh0TWVudUxpc3Q6KCk9Pl99KTt2YXIgcz1pKDc3OTQ3NCksbz1pKDk1NDQ3OCk7ZnVuY3Rpb24gbihlKXtyZXR1cm4gcy5jcmVhdGVFbGVtZW50KCJsaSIse2NsYXNzTmFtZTpvLnNlcGFyYXRvcn0pfXZhciBhPWkoNzIxMTY3KSxsPWkoNTY5Mzk4KSxyPWkoOTY0MjE0KSxkPWkoMjc2MDE5KTtjb25zdCB1PSgwLGwuaXNGZWF0dXJlRW5hYmxlZCkoImZvcmNlX2Rpc2FibGVfanN4X21lbnVfaXRlbXNfcmVuZGVyaW5nIik7ZnVuY3Rpb24gYyhlKXtjb25zdCB0PXU/ZS5hY3Rpb246ZS5hY3Rpb24uY3VzdG9tKCk/P2UuYWN0aW9uLFtpLG9dPSgwLHMudXNlU3RhdGUpKCgoKT0+dC5nZXRTdGF0ZSgpKSksW24sbF09KDAscy51c2VTdGF0ZSkoITEpLGM9ISFpLnN1Ykl0ZW1zLmxlbmd0aCxoPWMmJm47cmV0dXJuKDAscy51c2VFZmZlY3QpKCgoKT0+e2NvbnN0IGU9KCk9Pm8odC5nZXRTdGF0ZSgpKTtyZXR1cm4gdC5vblVwZGF0ZSgpLnN1YnNjcmliZShudWxsLGUpLCgpPT57dC5vblVwZGF0ZSgpLnVuc3Vic2NyaWJlKG51bGwsZSl9fSksW10pLHMuY3JlYXRlRWxlbWVudChhLkNvbnRleHRNZW51SXRlbSx7Li4uaSxvbkNsaWNrOmZ1bmN0aW9uKGUpe2lmKGkuZGlzYWJsZWR8fGUuZGVmYXVsdFByZXZlbnRlZClyZXR1cm47aWYoYylyZXR1cm4gdm9pZCBsKCEwKTtpLmRvTm90Q2xvc2VPbkNsaWNrfHwoMCxkLmdsb2JhbENsb3NlTWVudSkoKTt0LmV4ZWN1dGUoKX0saXNMb2FkaW5nOmkubG9hZGluZyxpc0hvdmVyZWQ6aH0saCYmcy5jcmVhdGVFbGVtZW50KHIuRHJhd2VyLHtvbkNsb3NlOnB9LHMuY3JlYXRlRWxlbWVudChfLHtpdGVtczppLnN1Ykl0ZW1zLHBhcmVudEFjdGlvbjp0LGNsb3NlTmVzdGVkOnB9KSkpO2Z1bmN0aW9uIHAoZSl7ZSYmZS5wcmV2ZW50RGVmYXVsdCgpLGwoITEpfX12YXIgaD1pKDc3OTEwOCkscD1pKDMzNDU1MCk7ZnVuY3Rpb24gXyhlKXtjb25zdHtpdGVtczp0LHBhcmVudEFjdGlvbjppLGNsb3NlTmVzdGVkOm99PWUsbD0hQm9vbGVhbihpKSYmdC5ldmVyeSgoZT0+IUJvb2xlYW4oInNlcGFyYXRvciIhPT1lLnR5cGUmJihlLmdldFN0YXRlKCkuaWNvbnx8ZS5nZXRTdGF0ZSgpLmNoZWNrYWJsZSkpKSk7cmV0dXJuIHMuY3JlYXRlRWxlbWVudChoLkVtcHR5SWNvbnNDb250ZXh0LlByb3ZpZGVyLHt2YWx1ZTpsfSxzLmNyZWF0ZUVsZW1lbnQoInVsIixudWxsLGkmJnMuY3JlYXRlRWxlbWVudChzLkZyYWdtZW50LG51bGwscy5jcmVhdGVFbGVtZW50KGEuQ29udGV4dE1lbnVJdGVtLHtsYWJlbDppLmdldFN0YXRlKCkubGFiZWwsaXNUaXRsZTohMCxhY3RpdmU6ITEsZGlzYWJsZWQ6ITEsc3ViSXRlbXM6W10sY2hlY2thYmxlOiExLGNoZWNrZWQ6ITEsZG9Ob3RDbG9zZU9uQ2xpY2s6ITEsaWNvbjpwLG9uQ2xpY2s6b30pLHMuY3JlYXRlRWxlbWVudChuLG51bGwpKSx0Lm1hcCgoZT0+e3N3aXRjaChlLnR5cGUpe2Nhc2UiYWN0aW9uIjpyZXR1cm4gcy5jcmVhdGVFbGVtZW50KGMse2tleTplLmlkLGFjdGlvbjplfSk7Y2FzZSJzZXBhcmF0b3IiOnJldHVybiBzLmNyZWF0ZUVsZW1lbnQobix7a2V5OmUuaWR9KX19KSkpKX19LDc3OTEwOChlLHQsaSl7InVzZSBzdHJpY3QiO2kuZCh0LHtFbXB0eUljb25zQ29udGV4dDooKT0+c30pO2NvbnN0IHM9aSg3Nzk0NzQpLmNyZWF0ZUNvbnRleHQoITEpfSwzMjk2NjgoZSx0LGkpeyJ1c2Ugc3RyaWN0Ijt2YXIgcztmdW5jdGlvbiBvKGUpe2UuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInJvdmluZy10YWJpbmRleDptYWluLWVsZW1lbnQiKSl9ZnVuY3Rpb24gbihlKXtlLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJyb3ZpbmctdGFiaW5kZXg6c2Vjb25kYXJ5LWVsZW1lbnQiKSl9aS5kKHQse2JlY29tZU1haW5FbGVtZW50OigpPT5vLGJlY29tZVNlY29uZGFyeUVsZW1lbnQ6KCk9Pm59KSxmdW5jdGlvbihlKXtlLk1haW5FbGVtZW50PSJyb3ZpbmctdGFiaW5kZXg6bWFpbi1lbGVtZW50IixlLlNlY29uZGFyeUVsZW1lbnQ9InJvdmluZy10YWJpbmRleDpzZWNvbmRhcnktZWxlbWVudCJ9KHN8fChzPXt9KSl9LDk4MzYxNihlLHQsaSl7InVzZSBzdHJpY3QiO2kuZCh0LHttYXBLZXlDb2RlVG9EaXJlY3Rpb246KCk9PnUsbmF2aWdhdGlvbk9yZGVyQ29tcGFyYXRvcjooKT0+YSxxdWVyeUZvY3VzYWJsZUVsZW1lbnRzOigpPT5yLHF1ZXJ5VGFiYmFibGVFbGVtZW50czooKT0+bCx1cGRhdGVUYWJJbmRleGVzOigpPT5kfSk7dmFyIHMsbz1pKDk2OTE2OCksbj1pKDY4MjM4MSk7ZnVuY3Rpb24gYShlLHQpe3JldHVybiBlPT09dD8wOmUuY29tcGFyZURvY3VtZW50UG9zaXRpb24odCkmTm9kZS5ET0NVTUVOVF9QT1NJVElPTl9GT0xMT1dJTkc/LTE6MX1mdW5jdGlvbiBsKGUpe3JldHVybiBBcnJheS5mcm9tKGUucXVlcnlTZWxlY3RvckFsbCgnYnV0dG9uOm5vdCg6ZGlzYWJsZWQpOm5vdChbYXJpYS1kaXNhYmxlZD0idHJ1ZSIgaV0pOm5vdChbdGFiaW5kZXg9Ii0xIl0pLCBbdGFiaW5kZXhdOm5vdChbZGlzYWJsZWRdKTpub3QoW2FyaWEtZGlzYWJsZWQ9InRydWUiIGldKTpub3QoW3RhYmluZGV4PSItMSJdKScpKS5maWx0ZXIoKDAsbi5jcmVhdGVTY29wZWRWaXNpYmxlRWxlbWVudEZpbHRlcikoZSkpfWZ1bmN0aW9uIHIoZSl7CnJldHVybiBBcnJheS5mcm9tKGUucXVlcnlTZWxlY3RvckFsbCgnYnV0dG9uOm5vdCg6ZGlzYWJsZWQpOm5vdChbYXJpYS1kaXNhYmxlZD0idHJ1ZSIgaV0pOm5vdChbYXJpYS1kaXNhYmxlZD0iIl0pLCBbdGFiaW5kZXhdOm5vdChbZGlzYWJsZWRdKTpub3QoW2FyaWEtZGlzYWJsZWQ9InRydWUiIGldKTpub3QoW2FyaWEtZGlzYWJsZWQ9IiJdKScpKS5maWx0ZXIoKDAsbi5jcmVhdGVTY29wZWRWaXNpYmxlRWxlbWVudEZpbHRlcikoZSkpfWZ1bmN0aW9uIGQoKXt3aW5kb3cuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImtleWJvYXJkLW5hdmlnYXRpb24tYWN0aXZhdGlvbiIse2J1YmJsZXM6ITB9KSl9ZnVuY3Rpb24gdShlKXtjb25zdCB0PSgwLG8uaXNSdGwpKCk7c3dpdGNoKGUpe2Nhc2UgMzg6cmV0dXJuImJsb2NrUHJldiI7Y2FzZSA0MDpyZXR1cm4iYmxvY2tOZXh0IjtjYXNlIDM3OnJldHVybiB0PyJpbmxpbmVOZXh0IjoiaW5saW5lUHJldiI7Y2FzZSAzOTpyZXR1cm4gdD8iaW5saW5lUHJldiI6ImlubGluZU5leHQiO2RlZmF1bHQ6cmV0dXJuIG51bGx9fSFmdW5jdGlvbihlKXtlLkJsb2NrUHJldj0iYmxvY2tQcmV2IixlLkJsb2NrTmV4dD0iYmxvY2tOZXh0IixlLklubGluZVByZXY9ImlubGluZVByZXYiLGUuSW5saW5lTmV4dD0iaW5saW5lTmV4dCJ9KHN8fChzPXt9KSl9LDg1ODAzNyhlLHQsaSl7InVzZSBzdHJpY3QiO2kuZCh0LHtnZXRBY3Rpb25zOigpPT5wfSk7dmFyIHM9aSg3Nzk0NzQpLG89aSgxODUyNzEpLG49aSg3MTIxMzQpLGE9aSg0MzE4MjMpLGw9aSg1MDkwNCkscj1pKDkxOTk4NSksZD1pKDY0MzkwMyksdT1pKDM4NjkzMSksYz1pKDYyMTkyNiksaD1pKDY3NDE5KTtmdW5jdGlvbiBwKGUsdCxwLF8pe2NvbnN0IGc9ZnVuY3Rpb24oZSx0LHIscCl7Y29uc3QgXz1vLnQobnVsbCx2b2lkIDAsaSgzMDgzOSkpLmZvcm1hdCh7c3ltYm9sOigwLGQuc2FmZVNob3J0TmFtZSkodCl9KSxnPWUuZ2V0U3ltYm9sQ29sb3IodCl8fHZvaWQgMCxtPXt9LGI9bi5MSVNUX0NPTE9SUy5tYXAoKGU9Pntjb25zdCB0PW5ldyBsLkFjdGlvbih7YWN0aW9uSWQ6IldhdGNobGlzdC5DaGFuZ2VGbGFnZ2VkR3JvdXBDb2xvciIsb3B0aW9uczp7bGFiZWw6KDAsaC5mbGFnZ2VkU3ltYm9sQ29sb3JOYW1lKShlKSxvbkV4ZWN1dGU6KCk9PnYoZSksY2hlY2thYmxlOiEwLGNoZWNrZWQ6ZT09PWd9fSk7cmV0dXJuIG1bZV09dCx0fSkpLHY9aT0+e3AoKSwoMCxjLnJ1bk9yU2lnbmluV2l0aEZlYXR1cmUpKCgoKT0+e3Iuc2V0Q29sb3IoaSksZS5zZXRTeW1ib2xzQ29sb3IoW3RdLHIuZ2V0Q29sb3IoKSksKDAsdS50cmFja0V2ZW50KSgiV2F0Y2hsaXN0IiwiQ29udGV4dCBtZW51IiwiRmxhZyIpLG4uTElTVF9DT0xPUlMuZm9yRWFjaCgoZT0+e21bZV0udXBkYXRlKHtjaGVja2VkOmU9PT1yLmdldENvbG9yKCl9KX0pKX0pLHtmZWF0dXJlOiJmbGFnZ2VkU3ltYm9sc0NvbG9ycyIsc291cmNlOiJTZXQgc3ltYm9sIGNvbG9yIn0pfSxmPXtkb05vdENsb3NlT25DbGljazohMH07cmV0dXJuW25ldyBsLkFjdGlvbih7YWN0aW9uSWQ6IldhdGNobGlzdC5GbGFnU3ltYm9sIixvcHRpb25zOntsYWJlbDpfLG9uRXhlY3V0ZTooKT0+dihyLmdldENvbG9yKCkpfX0pLG5ldyBsLkFjdGlvbih7YWN0aW9uSWQ6IldhdGNobGlzdC5DaGFuZ2VGbGFnZ2VkR3JvdXBDb2xvciIsb3B0aW9uczp7Li4uZixsYWJlbDpvLnQobnVsbCx2b2lkIDAsaSg5NjE2MTQpKSxzdWJJdGVtczpifSxjdXN0b21BY3Rpb25PcHRpb25zOnsuLi5mLGpzeExhYmVsOnMuY3JlYXRlRWxlbWVudChhLkxhYmVsQ29sb3JTZWxlY3Rvcix7dmFsdWU6ZyxvbkNoYW5nZTp2fSl9fSldfShlLHQscCxfKTtyZXR1cm4gbnVsbCE9PWUuZ2V0U3ltYm9sQ29sb3IodCkmJmcucHVzaChmdW5jdGlvbihlLHQpe3JldHVybiBuZXcgbC5BY3Rpb24oe2FjdGlvbklkOiJXYXRjaGxpc3QuVW5mbGFnU3ltYm9sIixvcHRpb25zOntsYWJlbDpvLnQobnVsbCx2b2lkIDAsaSg2OTIxKSkuZm9ybWF0KHtzeW1ib2w6KDAsZC5zYWZlU2hvcnROYW1lKSh0KX0pLG9uRXhlY3V0ZTooKT0+e2Uuc2V0U3ltYm9sc0NvbG9yKFt0XSxudWxsKSwoMCx1LnRyYWNrRXZlbnQpKCJXYXRjaGxpc3QiLCJDb250ZXh0IG1lbnUiLCJVbmZsYWciKX19fSl9KGUsdCkpLGcucHVzaChmdW5jdGlvbihlKXtyZXR1cm4gbmV3IGwuQWN0aW9uKHthY3Rpb25JZDoiV2F0Y2hsaXN0LlVuZmxhZ0FsbFN5bWJvbHMiLG9wdGlvbnM6e2xhYmVsOm8udChudWxsLHZvaWQgMCxpKDMzMjc1MykpLG9uRXhlY3V0ZTooKT0+eygwLHIuc2hvd1VuZmxhZ0FsbFN5bWJvbHNDb25maXJtKSgoKCk9PntlLmNsZWFyQWxsU3ltYm9sc0NvbG9yKCl9KSksKDAsdS50cmFja0V2ZW50KSgiV2F0Y2hsaXN0IiwiQ29udGV4dCBtZW51IiwiVW5mbGFnIGFsbCIpfX19KX0oZSkpLGd9fSwzMDY2MDEoZSx0LGkpeyJ1c2Ugc3RyaWN0IjtpLmQodCx7Q29sb3JTZWxlY3RvcjooKT0+eX0pO3ZhciBzPWkoNzc5NDc0KSxvPWkoNzEyMTM0KSxuPWkoMjM1NzI0KSxhPWkoMTQ5MzY0KSxsPWkoOTgzNjE2KSxyPWkoMzI5NjY4KSxkPWkoOTE0NDg3KSx1PWkubihkKSxjPWkoNjU4NDYpLGg9aSgyNzMzMTApLHA9aSgxODUyNzEpLF89aSg0NDA3MTUpLGc9aSgxODIzMDgpLG09aSgyNzQ4NTEpLGI9aSgyMDMzMDkpLHY9aSg3NTE4NjMpO2NvbnN0IGY9KDAsYy5tYWtlU3dpdGNoR3JvdXBJdGVtKSgoZnVuY3Rpb24oZSl7Y29uc3R7Y2xhc3NOYW1lOnQsdmFsdWU6bj1vLkxpc3RDb2xvci5SZWQsbmFtZTphLGNoZWNrZWQ6bH09ZSxbcixkXT0oMCxnLnVzZVJvdmluZ1RhYmluZGV4RWxlbWVudCkobnVsbCksYz0oMCxzLnVzZUNvbnRleHQpKF8uQ29udGV4dE1lbnVDb250ZXh0KSxmPWM/LnR5cGU/PyJtZW51IixTPW47cmV0dXJuIHMuY3JlYXRlRWxlbWVudCgibGFiZWwiLHtyZWY6cix0YWJJbmRleDpkLGNsYXNzTmFtZTp1KCkodCx2LndyYXAsImRyYXdlciI9PT1mJiZ2LmxhcmdlKSwiZGF0YS1jb2xvciI6Uyxyb2xlOiJtZW51aXRlbSIsImFyaWEtbGFiZWwiOnAudChudWxsLHtyZXBsYWNlOntjb2xvcjpTfX0saSg1MDY5MTUpKSwKImFyaWEtY2hlY2tlZCI6bH0scy5jcmVhdGVFbGVtZW50KCJpbnB1dCIse2NsYXNzTmFtZTp2LmlucHV0LHR5cGU6InJhZGlvIixuYW1lOmEsdmFsdWU6bixjaGVja2VkOmwsb25DaGFuZ2U6ZS5vbkNoYW5nZSxvbkNsaWNrOmw/ZnVuY3Rpb24oKXtlLm9uQ2xpY2tJZkNoZWNrZWQmJmUub25DbGlja0lmQ2hlY2tlZChuKX06dm9pZCAwfSkscy5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6dSgpKHYuYm94LHZbU10sImRyYXdlciI9PT1mJiZ2LmxhcmdlKX0sbD9zLmNyZWF0ZUVsZW1lbnQoaC5JY29uLHtpY29uOm19KTpzLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTp2LnBpY2tlckRvdH0scy5jcmVhdGVFbGVtZW50KGguSWNvbix7Y2xhc3NOYW1lOnYuaG92ZXJEb3QsaWNvbjpifSkpKSl9KSksUz1bMzksMzcsMTMsMzIsMjddO2Z1bmN0aW9uIHkoZSl7Y29uc3R7YnV0dG9uQ2xhc3NOYW1lOnQsdmFsdWU6aSxvblNlbGVjdGVkQ2xpY2s6ZCxmcm9tS2V5Ym9hcmQ6dX09ZSxjPSgwLHMudXNlUmVmKShudWxsKSxoPSgwLHMudXNlQ2FsbGJhY2spKChlPT57aWYoIWMuY3VycmVudHx8ZS5kZWZhdWx0UHJldmVudGVkKXJldHVybjtjb25zdCB0PSgwLG4uaGFzaEZyb21FdmVudCkoZSk7aWYoIVMuaW5jbHVkZXModCkpcmV0dXJuO2UucHJldmVudERlZmF1bHQoKTtjb25zdCBzPSgwLGwucXVlcnlGb2N1c2FibGVFbGVtZW50cykoYy5jdXJyZW50KS5zb3J0KGwubmF2aWdhdGlvbk9yZGVyQ29tcGFyYXRvciksYT1zLmZpbmRJbmRleCgoZT0+ZT09PWRvY3VtZW50LmFjdGl2ZUVsZW1lbnQpKTtpZigtMT09PWEpcmV0dXJuO2NvbnN0IGQ9c1thXTtsZXQgdTtzd2l0Y2godCl7Y2FzZSAxMzpjYXNlIDMyOl8oZC5kYXRhc2V0LmNvbG9yfHxvLkxpc3RDb2xvci5SZWQpO2JyZWFrO2Nhc2UgMjc6XyhpKX1zd2l0Y2goKDAsbC5tYXBLZXlDb2RlVG9EaXJlY3Rpb24pKHQpKXtjYXNlImlubGluZU5leHQiOnU9c1thKzFdfHxzWzBdO2JyZWFrO2Nhc2UiaW5saW5lUHJldiI6dT1zW2EtMV18fHNbcy5sZW5ndGgtMV19dSBpbnN0YW5jZW9mIEhUTUxMYWJlbEVsZW1lbnQmJigoMCxyLmJlY29tZVNlY29uZGFyeUVsZW1lbnQpKGQpLCgwLHIuYmVjb21lTWFpbkVsZW1lbnQpKHUpLHUuZm9jdXMoKSl9KSxbXSk7KDAscy51c2VMYXlvdXRFZmZlY3QpKCgoKT0+e2lmKCF1KXJldHVybjtjb25zdCBlPWRvY3VtZW50LmFjdGl2ZUVsZW1lbnQsdD1jLmN1cnJlbnQ7aWYoIXQpcmV0dXJuO2NvbnN0W2ldPSgwLGwucXVlcnlGb2N1c2FibGVFbGVtZW50cykodCkuc29ydChsLm5hdmlnYXRpb25PcmRlckNvbXBhcmF0b3IpO3JldHVybiBpPygoMCxyLmJlY29tZU1haW5FbGVtZW50KShpKSxpLmZvY3VzKCksKCk9PntlIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQmJmUuZm9jdXMoKX0pOnZvaWQgMH0pLFtdKTtjb25zdCBwPW8uTElTVF9DT0xPUlMubWFwKCgoZSxpKT0+cy5jcmVhdGVFbGVtZW50KGYse2tleTppLGNsYXNzTmFtZTp0LG9uQ2xpY2tJZkNoZWNrZWQ6ZCx2YWx1ZTplfSkpKTtyZXR1cm4gcy5jcmVhdGVFbGVtZW50KCJtZW51Iix7cmVmOmMsb25LZXlEb3duOmh9LHMuY3JlYXRlRWxlbWVudChhLlN3aXRjaEdyb3VwLHtuYW1lOiJjb2xvci1zZWxlY3RvciIsb25DaGFuZ2U6Xyx2YWx1ZXM6dm9pZCAwIT09aT9baV06W119LHApKTtmdW5jdGlvbiBfKHQpe2Uub25DaGFuZ2UmJnZvaWQgMCE9PXQmJmUub25DaGFuZ2UodCl9fX0sNjc0MTkoZSx0LGkpeyJ1c2Ugc3RyaWN0IjtpLmQodCx7ZmxhZ2dlZFN5bWJvbENvbG9yTmFtZTooKT0+bn0pO3ZhciBzPWkoNzEyMTM0KSxvPWkoMTg1MjcxKTtmdW5jdGlvbiBuKGUpe3N3aXRjaChlKXtjYXNlIHMuTGlzdENvbG9yLlJlZDpyZXR1cm4gby50KG51bGwsdm9pZCAwLGkoNjU1MDQyKSk7Y2FzZSBzLkxpc3RDb2xvci5HcmVlbjpyZXR1cm4gby50KG51bGwsdm9pZCAwLGkoNjgyNjY5KSk7Y2FzZSBzLkxpc3RDb2xvci5CbHVlOnJldHVybiBvLnQobnVsbCx2b2lkIDAsaSg2MzgxKSk7Y2FzZSBzLkxpc3RDb2xvci5PcmFuZ2U6cmV0dXJuIG8udChudWxsLHZvaWQgMCxpKDk3MTI4MykpO2Nhc2Ugcy5MaXN0Q29sb3IuUHVycGxlOnJldHVybiBvLnQobnVsbCx2b2lkIDAsaSg2NzA5MjMpKTtjYXNlIHMuTGlzdENvbG9yLkN5YW46cmV0dXJuIG8udChudWxsLHZvaWQgMCxpKDE0Njg0KSk7Y2FzZSBzLkxpc3RDb2xvci5QaW5rOnJldHVybiBvLnQobnVsbCx2b2lkIDAsaSg2NzY3NjgpKX19fSw0MzE4MjMoZSx0LGkpeyJ1c2Ugc3RyaWN0IjtpLmQodCx7TGFiZWxDb2xvclNlbGVjdG9yOigpPT5sfSk7dmFyIHM9aSg3Nzk0NzQpLG89aSgzMDY2MDEpLG49aSg1MTg3NSksYT1pKDU1ODg3Myk7Y2xhc3MgbCBleHRlbmRzIHMuUHVyZUNvbXBvbmVudHtyZW5kZXIoKXtjb25zdHt2YWx1ZTplfT10aGlzLnByb3BzO3JldHVybiBzLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6YS53cmFwcGVyfSxzLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6YS5idXR0b25zLG9uQ2xpY2s6bi5wcmV2ZW50RGVmYXVsdH0scy5jcmVhdGVFbGVtZW50KG8uQ29sb3JTZWxlY3Rvcix7YnV0dG9uQ2xhc3NOYW1lOmEuY29sb3JTZWxlY3RCdXR0b24sdmFsdWU6ZSxvbkNoYW5nZTp0aGlzLl9vbkNoYW5nZSxvblNlbGVjdGVkQ2xpY2s6dGhpcy5fb25DaGFuZ2V9KSkpfWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLl9vbkNoYW5nZT1lPT57dGhpcy5wcm9wcy5vbkNoYW5nZShlKX19fX0sODM0MTg4KGUsdCxpKXsidXNlIHN0cmljdCI7aS5kKHQse1BvcHVwQ29sb3JTZWxlY3RvcjooKT0+eX0pO3ZhciBzPWkoNzc5NDc0KSxvPWkoNjA3ODMyKSxuPWkoNjA5NTI4KSxhPWkoNDA2MTEwKSxsPWkoMzEzNzcyKSxyPWkoOTY0MjE0KSxkPWkoMzIzODMwKSx1PWkoNDQwNzE1KSxjPWkoOTY5MTY4KSxoPWkoNTg1NDgpLHA9aSgzMDY2MDEpLF89aSgzNjMyNjkpLGc9aSg1NTg5NzIpO2NsYXNzIG0gZXh0ZW5kcyBzLlB1cmVDb21wb25lbnR7Y29tcG9uZW50RGlkTW91bnQoKXsKZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50JiYoXy5tb2JpbGV0b3VjaD9kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hzdGFydCIsdGhpcy5fb25Ub3VjaFN0YXJ0KToodGhpcy5wcm9wcy5lbGVtLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlbGVhdmUiLHRoaXMuX29uVGFyZ2V0TW91c2VMZWF2ZSksZG9jdW1lbnQuYm9keS5hZGRFdmVudExpc3RlbmVyKCJzY3JvbGwiLHRoaXMucHJvcHMuaGlkZSkpKX1jb21wb25lbnRXaWxsVW5tb3VudCgpe2RvY3VtZW50LmRvY3VtZW50RWxlbWVudCYmKF8ubW9iaWxldG91Y2g/ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInRvdWNoc3RhcnQiLHRoaXMuX29uVG91Y2hTdGFydCk6dGhpcy5wcm9wcy5lbGVtJiYodGhpcy5wcm9wcy5lbGVtLnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlbGVhdmUiLHRoaXMuX29uVGFyZ2V0TW91c2VMZWF2ZSksZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInNjcm9sbCIsdGhpcy5wcm9wcy5oaWRlKSkpfXJlbmRlcigpe2NvbnN0IGU9e3RvcDowfTtpZih0aGlzLnByb3BzLmVsZW0pe2NvbnN0IHQ9dGhpcy5wcm9wcy5lbGVtLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO2UudG9wPXQudG9wK3QuaGVpZ2h0LzIsKDAsYy5pc1J0bCkoKT9lLnJpZ2h0PXdpbmRvdy5pbm5lcldpZHRoLXQubGVmdDplLmxlZnQ9dC5sZWZ0K3Qud2lkdGh9ZWxzZSBlLmxlZnQ9MDtyZXR1cm4gcy5jcmVhdGVFbGVtZW50KGguUG9ydGFsLG51bGwscy5jcmVhdGVFbGVtZW50KCJkaXYiLHtzdHlsZTplLGNsYXNzTmFtZTpnLnBvcHVwLHJlZjp0aGlzLl9zZXRQb3BVcEVsZW0sb25Nb3VzZUxlYXZlOl8ubW9iaWxldG91Y2g/dm9pZCAwOnRoaXMuX29uUG9wVXBNb3VzZUxlYXZlfSxzLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpnLndyYXBwZXJ9LHMuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOmcuc2VsZWN0b3J9LHMuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOmcuYXJyb3dMZWZ0fSkscy5jcmVhdGVFbGVtZW50KHAuQ29sb3JTZWxlY3Rvcix7YnV0dG9uQ2xhc3NOYW1lOmcuY29sb3JTZWxlY3RCdXR0b24sdmFsdWU6dGhpcy5wcm9wcy5jdXJyZW50Q29sb3IsZnJvbUtleWJvYXJkOnRoaXMucHJvcHMuZnJvbUtleWJvYXJkLG9uQ2hhbmdlOnRoaXMuX29uQ2hhbmdlfSkpKSkpfWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLl9wb3BVcEVsZW09bnVsbCx0aGlzLl9vbkNoYW5nZT1lPT57dGhpcy5wcm9wcy5vblNlbGVjdENvbG9yKGUpLHRoaXMucHJvcHMuaGlkZSgpfSx0aGlzLl9vblRhcmdldE1vdXNlTGVhdmU9ZT0+e2NvbnN0IHQ9ISFlLnJlbGF0ZWRUYXJnZXQubm9kZU5hbWUsaT1lLnJlbGF0ZWRUYXJnZXQ9PT10aGlzLl9wb3BVcEVsZW0scz10aGlzLl9wb3BVcEVsZW0mJnQmJnRoaXMuX3BvcFVwRWxlbS5jb250YWlucyhlLnJlbGF0ZWRUYXJnZXQpO2l8fHN8fHRoaXMucHJvcHMuaGlkZSgpfSx0aGlzLl9vblBvcFVwTW91c2VMZWF2ZT1lPT57Y29uc3QgdD0hIWUubmF0aXZlRXZlbnQucmVsYXRlZFRhcmdldC5ub2RlTmFtZSxpPWUubmF0aXZlRXZlbnQucmVsYXRlZFRhcmdldD09PXRoaXMucHJvcHMuZWxlbSxzPXQmJnRoaXMucHJvcHMuZWxlbS5jb250YWlucyhlLm5hdGl2ZUV2ZW50LnJlbGF0ZWRUYXJnZXQpO2l8fHN8fHRoaXMucHJvcHMuaGlkZSgpfSx0aGlzLl9vblRvdWNoU3RhcnQ9ZT0+e2NvbnN0IHQ9ISFlLnRhcmdldC5ub2RlTmFtZSxpPWUudGFyZ2V0PT09dGhpcy5wcm9wcy5lbGVtLHM9ZS50YXJnZXQ9PT10aGlzLl9wb3BVcEVsZW0sbz10JiZ0aGlzLnByb3BzLmVsZW0uY29udGFpbnMoZS50YXJnZXQpLG49dGhpcy5fcG9wVXBFbGVtJiZ0JiZ0aGlzLl9wb3BVcEVsZW0uY29udGFpbnMoZS50YXJnZXQpO2l8fG98fHN8fG58fHRoaXMucHJvcHMuaGlkZSgpfSx0aGlzLl9zZXRQb3BVcEVsZW09ZT0+e3RoaXMuX3BvcFVwRWxlbT1lfX19ZnVuY3Rpb24gYihlKXtjb25zdHthY3Rpb25zOnQsLi4uaX09ZTtyZXR1cm4gcy5jcmVhdGVFbGVtZW50KGEuTWF0Y2hNZWRpYSx7cnVsZTpuLkRpYWxvZ0JyZWFrcG9pbnRzLlRhYmxldFNtYWxsfSwoZT0+ZSYmdD9zLmNyZWF0ZUVsZW1lbnQobC5EcmF3ZXJNYW5hZ2VyLG51bGwscy5jcmVhdGVFbGVtZW50KHUuQ29udGV4dE1lbnVDb250ZXh0LlByb3ZpZGVyLHt2YWx1ZTp7dHlwZToiZHJhd2VyIn19LHMuY3JlYXRlRWxlbWVudChyLkRyYXdlcix7b25DbG9zZTppLmhpZGUscG9zaXRpb246IkJvdHRvbSJ9LHMuY3JlYXRlRWxlbWVudChkLkNvbnRleHRNZW51TGlzdCx7aXRlbXM6dH0pKSkpOnMuY3JlYXRlRWxlbWVudChtLHsuLi5pfSkpKX12YXIgdj1pKDU3MTMwMCk7bGV0IGY9bnVsbCxTPW51bGw7dmFyIHk7IWZ1bmN0aW9uKGUpe2Z1bmN0aW9uIHQoKXtmJiZTPy51bm1vdW50KCl9ZS5zaG93PWZ1bmN0aW9uKGUpe2Z8fChmPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpKSx0KCksUz0oMCx2LmNyZWF0ZVJlYWN0Um9vdCkocy5jcmVhdGVFbGVtZW50KG8uU2xvdENvbnRleHQuUHJvdmlkZXIse3ZhbHVlOmUubWFuYWdlcnx8bnVsbH0scy5jcmVhdGVFbGVtZW50KGIsey4uLmUsaGlkZTp0fSkpLGYpfSxlLmhpZGU9dH0oeXx8KHk9e30pKX0sMTI5MzMzKGUsdCxpKXsidXNlIHN0cmljdCI7aS5kKHQse1N5bWJvbE1hcmtlcjooKT0+dSxjcmVhdGVTeW1ib2xNYXJrZXJTdGFuZGFsb25lOigpPT5ofSk7aSg4MjkxODApO3ZhciBzPWkoODI5NzYzKSxvPWkoODMxNTI3KSxuPWkoODM0MTg4KSxhPWkoMjQzNjMxKSxsPWkoNjA5NTI4KSxyPWkoODU4MDM3KSxkPWkoNjIxOTI2KTtjbGFzcyB1e3VwZGF0ZVN1YnNjcmlwdGlvbigpe3RoaXMuX3NldFN0YXRlKHRoaXMuX3NlcnZpY2UuZ2V0U3ltYm9sQ29sb3IodGhpcy5fc3ltYm9sKSl9YmluZFRvKGUsdCl7dGhpcy5fc2VydmljZS5vZmZTeW1ib2xDaGFuZ2UodGhpcy5fc3ltYm9sLHRoaXMuX29uQ2hhbmdlKSx0aGlzLl9zeW1ib2w9ZSx0aGlzLl91aW1hcmtlci5hcHBlbmRUbyh0KSwKdGhpcy5fc2V0U3RhdGUodGhpcy5fc2VydmljZS5nZXRTeW1ib2xDb2xvcihlKSksdGhpcy5fc2VydmljZS5vblN5bWJvbENoYW5nZShlLHRoaXMuX29uQ2hhbmdlKX11bmJpbmQoKXt0aGlzLl9zZXJ2aWNlLm9mZlN5bWJvbENoYW5nZSh0aGlzLl9zeW1ib2wsdGhpcy5fb25DaGFuZ2UpLHRoaXMuX3VpbWFya2VyLmRldGFjaCgpfWdldEVsZW0oKXtyZXR1cm4gdGhpcy5fdWltYXJrZXIuZ2V0RWxlbSgpfWlzTWFya2VkKCl7cmV0dXJuIG51bGwhPT10aGlzLl9jb2xvcn1zZXRDbGFzc05hbWUoZSl7dGhpcy5fdWltYXJrZXIuZ2V0RWxlbSgpLmNsYXNzTGlzdC5yZW1vdmUoLi4udGhpcy5fY2xhc3NlcyksdGhpcy5fY2xhc3Nlcz1lLnNwbGl0KCIgIikuZmlsdGVyKEJvb2xlYW4pLHRoaXMuX3VpbWFya2VyLmdldEVsZW0oKS5jbGFzc0xpc3QuYWRkKC4uLnRoaXMuX2NsYXNzZXMpfWRlc3Ryb3koKXt0aGlzLnVuYmluZCgpLGRlbGV0ZSB0aGlzLl91aW1hcmtlcixkZWxldGUgdGhpcy5fb3B0c310b2dnbGUoZSl7dGhpcy5fb25DbGljayhlKX1fc2V0U3RhdGUoZSl7Y29uc3QgdD10aGlzLmlzTWFya2VkKCk7dGhpcy5fY29sb3I9ZSxudWxsIT09dGhpcy5fY29sb3I/KHRoaXMuX3VpbWFya2VyLnNldENvbG9yKHRoaXMuX2NvbG9yKSx0aGlzLl9hZGRBY3RpdmVDbGFzc05hbWUoKSk6KHRoaXMuX3VpbWFya2VyLnJlbW92ZUNvbG9yKCksdGhpcy5fcmVtb3ZlQWN0aXZlQ2xhc3NOYW1lKCkpLHZvaWQgMCE9PXRoaXMuX29wdHMub25NYXJrZWRDaGFuZ2VkJiZ0IT09dGhpcy5pc01hcmtlZCgpJiZ0aGlzLl9vcHRzLm9uTWFya2VkQ2hhbmdlZCgpfV9hZGRBY3RpdmVDbGFzc05hbWUoKXt0aGlzLl9vcHRzLmFjdGl2ZUNsYXNzTmFtZSYmdGhpcy5fdWltYXJrZXIuYWRkQ2xhc3ModGhpcy5fb3B0cy5hY3RpdmVDbGFzc05hbWUpfV9yZW1vdmVBY3RpdmVDbGFzc05hbWUoKXt0aGlzLl9vcHRzLmFjdGl2ZUNsYXNzTmFtZSYmdGhpcy5fdWltYXJrZXIucmVtb3ZlQ2xhc3ModGhpcy5fb3B0cy5hY3RpdmVDbGFzc05hbWUpfWNvbnN0cnVjdG9yKGUpe3RoaXMuX3NlcnZpY2U9KDAsby5nZXRNYXJrZWRTeW1ib2xzTGlzdFNlcnZpY2VJbnN0YW5jZSkoKSx0aGlzLl9jb2xvck1hbmFnZXI9bmV3IGEuQ29sb3JNYW5hZ2VyKHtjb250ZXh0OmEuQ29sb3JDb250ZXh0LlN5bWJvbE1hcmtlcn0pLHRoaXMuX2NsYXNzZXM9W10sdGhpcy5fb25DbGljaz1lPT57ZS5wcmV2ZW50RGVmYXVsdCgpO2NvbnN0IHQ9KCk9Pntjb25zdCB0PSgwLHIuZ2V0QWN0aW9ucykodGhpcy5fc2VydmljZSx0aGlzLl9zeW1ib2wsdGhpcy5fY29sb3JNYW5hZ2VyLG4uUG9wdXBDb2xvclNlbGVjdG9yLmhpZGUpLGk9dGhpcy5fY29sb3JNYW5hZ2VyLmdldENvbG9yKCkscz17ZWxlbTp0aGlzLl91aW1hcmtlci5nZXRFbGVtKCksY3VycmVudENvbG9yOmksb25TZWxlY3RDb2xvcjp0aGlzLl9vblNlbGVjdENvbG9yLGFjdGlvbnM6dCxtYW5hZ2VyOnRoaXMuX29wdHMubWFuYWdlcixmcm9tS2V5Ym9hcmQ6ZSBpbnN0YW5jZW9mIEtleWJvYXJkRXZlbnR9O3dpbmRvdy5tYXRjaE1lZGlhKGwuRGlhbG9nQnJlYWtwb2ludHMuVGFibGV0U21hbGwpLm1hdGNoZXM/bi5Qb3B1cENvbG9yU2VsZWN0b3Iuc2hvdyhzKTpudWxsPT09dGhpcy5fY29sb3I/KG4uUG9wdXBDb2xvclNlbGVjdG9yLnNob3cocyksdGhpcy5fc2VydmljZS5zZXRTeW1ib2xzQ29sb3IoW3RoaXMuX3N5bWJvbF0saSkpOihuLlBvcHVwQ29sb3JTZWxlY3Rvci5oaWRlKCksdGhpcy5fc2VydmljZS5zZXRTeW1ib2xzQ29sb3IoW3RoaXMuX3N5bWJvbF0sbnVsbCkpfSxpPXdpbmRvdy5pc19hdXRoZW50aWNhdGVkOygwLGQucnVuT3JTaWduaW5XaXRoRmVhdHVyZSkoKCgpPT57aSYmKHRoaXMuX29wdHMub25DbGljaz90aGlzLl9vcHRzLm9uQ2xpY2sodGhpcy5fc3ltYm9sLHQpOnQoKSl9KSx7ZmVhdHVyZToiZmxhZ2dlZFN5bWJvbHNDb2xvcnMiLHNvdXJjZToiU2V0IHN5bWJvbCBjb2xvciJ9KX0sdGhpcy5fb25TZWxlY3RDb2xvcj1lPT57dGhpcy5fY29sb3JNYW5hZ2VyLnNldENvbG9yKGUpLHRoaXMuX3NlcnZpY2Uuc2V0U3ltYm9sc0NvbG9yKFt0aGlzLl9zeW1ib2xdLHRoaXMuX2NvbG9yTWFuYWdlci5nZXRDb2xvcigpKX0sdGhpcy5fb25EYmxDbGljaz1lPT57ZS5wcmV2ZW50RGVmYXVsdCgpfSx0aGlzLl9vbkNoYW5nZT0oKT0+e3RoaXMuX3NldFN0YXRlKHRoaXMuX3NlcnZpY2UuZ2V0U3ltYm9sQ29sb3IodGhpcy5fc3ltYm9sKSl9LHRoaXMuX29wdHM9ZSx0aGlzLl9zeW1ib2w9ZS5zeW1ib2wsdGhpcy5fY29sb3I9ZS5jb2xvcnx8dGhpcy5fc2VydmljZS5nZXRTeW1ib2xDb2xvcih0aGlzLl9zeW1ib2wpLHRoaXMuX3VpbWFya2VyPW5ldyBzLlVpTWFya2VyKHtjb2xvcjp0aGlzLl9jb2xvcixjb250YWluZXI6ZS5jb250YWluZXIsb25DbGljazp0aGlzLl9vbkNsaWNrLG9uRGJsQ2xpY2s6dGhpcy5fb25EYmxDbGljayxzcGVjaWFsSW1hZ2U6ZS5zcGVjaWFsSW1hZ2V9KSxlLmNsYXNzTmFtZSYmdGhpcy5zZXRDbGFzc05hbWUoZS5jbGFzc05hbWUpLG51bGwhPT10aGlzLl9jb2xvciYmdGhpcy5fYWRkQWN0aXZlQ2xhc3NOYW1lKCksdGhpcy5fc2VydmljZS5vblN5bWJvbENoYW5nZSh0aGlzLl9zeW1ib2wsdGhpcy5fb25DaGFuZ2UpfX1jbGFzcyBjIGV4dGVuZHMgdXtkZXN0cm95KCl7dGhpcy5fc2VydmljZS5vZmZJbml0KHRoaXMuX29uSW5pdCksc3VwZXIuZGVzdHJveSgpfWNvbnN0cnVjdG9yKGUpe3N1cGVyKGUpLHRoaXMuX29uSW5pdD0oKT0+e3RoaXMudXBkYXRlU3Vic2NyaXB0aW9uKCl9LHRoaXMuX3NlcnZpY2Uub25Jbml0KHRoaXMuX29uSW5pdCl9fWZ1bmN0aW9uIGgoZSl7cmV0dXJuIG5ldyBjKGUpfX0sNjE2MzExKGUsdCxpKXsidXNlIHN0cmljdCI7aS5kKHQse3VzZUlzb21vcnBoaWNMYXlvdXRFZmZlY3Q6KCk9Pm99KTt2YXIgcz1pKDc3OTQ3NCk7ZnVuY3Rpb24gbyhlLHQpeygidW5kZWZpbmVkIj09dHlwZW9mIHdpbmRvdz9zLnVzZUVmZmVjdDpzLnVzZUxheW91dEVmZmVjdCkoZSx0KX19LDk0NzE2KGUsdCxpKXsidXNlIHN0cmljdCI7aS5kKHQsewpNZXRhSW5mb0hlbHBlcjooKT0+dX0pO3ZhciBzPWkoMTM4NjM4KSxvPWkoMjIxMDYxKSxuPWkoNjAxODQxKSxhPWkoNjI4MDYpLGw9aSg3OTE0MjcpLHI9aSgyNTA0NjcpO2NvbnN0IGQ9KDAsby5nZXRMb2dnZXIpKCJNZXRhSW5mb0hlbHBlciIpO2NsYXNzIHV7Y29uc3RydWN0b3IoZSl7dGhpcy5fbWV0YUluZm89ZX1oYXNVc2VyRWRpdGFibGVJbnB1dHMoKXtyZXR1cm4gdGhpcy5fbWV0YUluZm8uaW5wdXRzLnNvbWUoYS51c2VyRWRpdGFibGVJbnB1dEZpbHRlcil9Z2V0VXNlckVkaXRhYmxlSW5wdXRzKCl7cmV0dXJuIHRoaXMuX21ldGFJbmZvLmlucHV0cy5maWx0ZXIoYS51c2VyRWRpdGFibGVJbnB1dEZpbHRlcil9aGFzVXNlckVkaXRhYmxlUHJvcGVydGllcygpe3JldHVybiBsLlN0dWR5TWV0YUluZm8uaXNTY3JpcHRTdHJhdGVneSh0aGlzLl9tZXRhSW5mbyl9aGFzVXNlckVkaXRhYmxlU3R5bGVzKGUpe2NvbnN0IHQ9dGhpcy5fbWV0YUluZm87cmV0dXJuIHQucGxvdHMubGVuZ3RoPjB8fHZvaWQgMCE9PXQuYmFuZHN8fHZvaWQgMCE9PXQuZmlsbGVkQXJlYXN8fGUodC5zaG9ydElkKXx8bC5TdHVkeU1ldGFJbmZvLmlzU2NyaXB0U3RyYXRlZ3kodGhpcy5fbWV0YUluZm8pfHxPYmplY3QudmFsdWVzKHQuZ3JhcGhpY3MpLnNvbWUoKGU9PnZvaWQgMCE9PWUpKX1nZXRVc2VyRWRpdGFibGVQbG90cygpe2NvbnN0IGU9bmV3IFNldCx0PXRoaXMuX21ldGFJbmZvO3JldHVybiB0LnBsb3RzLmZpbHRlcigoaT0+e2lmKCgwLHIuaXNDb2xvcmVyUGxvdCkoaSl8fCgwLHIuaXNUZXh0Q29sb3JlclBsb3QpKGkpfHwoMCxyLmlzRGF0YU9mZnNldFBsb3QpKGkpfHwoMCxyLmlzT2hsY0NvbG9yZXJQbG90KShpKXx8KDAsci5pc0FsZXJ0Q29uZGl0aW9uUGxvdCkoaSl8fCgwLHIuaXNEYXRhUGxvdCkoaSkpcmV0dXJuITE7aWYoKDAsci5pc09obGNQbG90KShpKSl7Y29uc3Qgbz1pLnRhcmdldDtpZihlLmhhcyhvKSlyZXR1cm4hMTtlLmFkZChvKTtjb25zdCBuPSgwLHMuZW5zdXJlRGVmaW5lZCkodC5vaGxjUGxvdHMpO3JldHVybiEoMCxzLmVuc3VyZURlZmluZWQpKG5bb10pLmlzSGlkZGVufXtjb25zdCBlPXQuc3R5bGVzP3Quc3R5bGVzW2kuaWRdOnZvaWQgMDtyZXR1cm4gdm9pZCAwPT09ZXx8IWUuaXNIaWRkZW59fSkpfWhhc1VzZXJFZGl0YWJsZU9wdGlvbnMoZSl7cmV0dXJuIHRoaXMuaGFzVXNlckVkaXRhYmxlSW5wdXRzKCl8fHRoaXMuaGFzVXNlckVkaXRhYmxlUHJvcGVydGllcygpfHx0aGlzLmhhc1VzZXJFZGl0YWJsZVN0eWxlcyhlKX1nZXRTdHJhdGVneVByb3BlcnRpZXMoKXtjb25zdCBlPXRoaXMuX21ldGFJbmZvLHQ9ZS5pbnB1dHMuZmlsdGVyKGEuaXNTdHJhdGVneUlucHV0KSxpPXsuLi5jfTtmb3IoY29uc3QgcyBvZiB0KXtjb25zdCB0PXMuaW50ZXJuYWxJRDtpW3RdPXMsYy5oYXNPd25Qcm9wZXJ0eSh0KXx8ZC5sb2dXYXJuKGBVbmtub3duIHN0cmF0ZWd5IGlucHV0IGludGVybmFsIGlkICR7dH0gaW4gJHtlLmZ1bGxJZH1gKX1yZXR1cm4oMCxuLmNsb25lKShpKX19Y29uc3QgYz17W2EuU3R1ZHlTdHJhdGVneUlucHV0SW50ZXJuYWxJRC5DdXJyZW5jeV06dm9pZCAwLFthLlN0dWR5U3RyYXRlZ3lJbnB1dEludGVybmFsSUQuQmFja3Rlc3RGaWxsTGltaXRzQXNzdW10aW9uXTp2b2lkIDAsW2EuU3R1ZHlTdHJhdGVneUlucHV0SW50ZXJuYWxJRC5DYWxjT25FdmVyeVRpY2tdOnZvaWQgMCxbYS5TdHVkeVN0cmF0ZWd5SW5wdXRJbnRlcm5hbElELkNhbGNPbk9yZGVyRmlsbHNdOnZvaWQgMCxbYS5TdHVkeVN0cmF0ZWd5SW5wdXRJbnRlcm5hbElELkNhbGNPbkhpc3RvcnlCYXJdOnZvaWQgMCxbYS5TdHVkeVN0cmF0ZWd5SW5wdXRJbnRlcm5hbElELkNvbWlzc2lvblZhbHVlXTp2b2lkIDAsW2EuU3R1ZHlTdHJhdGVneUlucHV0SW50ZXJuYWxJRC5Db21pc3Npb25UeXBlXTp2b2lkIDAsW2EuU3R1ZHlTdHJhdGVneUlucHV0SW50ZXJuYWxJRC5Jbml0aWFsQ2FwaXRhbF06dm9pZCAwLFthLlN0dWR5U3RyYXRlZ3lJbnB1dEludGVybmFsSUQuUHlyYW1pZGluZ106dm9pZCAwLFthLlN0dWR5U3RyYXRlZ3lJbnB1dEludGVybmFsSUQuU2xpcHBhZ2VdOnZvaWQgMCxbYS5TdHVkeVN0cmF0ZWd5SW5wdXRJbnRlcm5hbElELkRlZmF1bHRRVFlUeXBlXTp2b2lkIDAsW2EuU3R1ZHlTdHJhdGVneUlucHV0SW50ZXJuYWxJRC5EZWZhdWx0UVRZVmFsdWVdOnZvaWQgMCxbYS5TdHVkeVN0cmF0ZWd5SW5wdXRJbnRlcm5hbElELk1hcmdpbkxvbmddOnZvaWQgMCxbYS5TdHVkeVN0cmF0ZWd5SW5wdXRJbnRlcm5hbElELk1hcmdpblNob3J0XTp2b2lkIDAsW2EuU3R1ZHlTdHJhdGVneUlucHV0SW50ZXJuYWxJRC5CYXJEZXRhbGl6YXRpb25dOnZvaWQgMCxbYS5TdHVkeVN0cmF0ZWd5SW5wdXRJbnRlcm5hbElELlByb2Nlc3NPcmRlcnNPbkNsb3NlXTp2b2lkIDAsW2EuU3R1ZHlTdHJhdGVneUlucHV0SW50ZXJuYWxJRC5GaWxsT3JkZXJzT25TdGFuZGFyZE9ITENdOnZvaWQgMH19LDEyODgxNChlLHQsaSl7InVzZSBzdHJpY3QiO2kuZCh0LHtRdW90ZVNlc3Npb25TbmFwc2hvdGVyOigpPT5jfSk7dmFyIHM9aSg5NDgzODApLG89aSgxNTAxNTApLG49aSgyMTQ5ODcpLGE9aSgxMzg2MzgpLGw9aSgzNjc5NDYpLHI9aSg5NzA3NzQpLGQ9aSgzMDkwNTIpO2NvbnN0IHU9bmV3IE1hcChbWyJjaGFuZ2UiLCJjaCJdLFsibGFzdF9wcmljZSIsImxwIl0sWyJjaGFuZ2VfcGVyY2VudCIsImNocCJdLFsidXBkYXRlX21vZGVfc2Vjb25kcyIsbnVsbF1dKTtuZXcgTWFwKFtbImNoIiwiY2hhbmdlIl0sWyJscCIsImxhc3RfcHJpY2UiXSxbImNocCIsImNoYW5nZV9wZXJjZW50Il1dKTtjbGFzcyBje2NvbnN0cnVjdG9yKGUpe2lmKHRoaXMuX29uU3ltYm9sRGF0YT1uZXcgcy5EZWxlZ2F0ZSx0aGlzLl9pbmNvbXBsZXRlPW5ldyBTZXQsdGhpcy5fdXBkYXRlZEZpZWxkcz1uZXcgTWFwLHRoaXMuX2Nvbm5lY3RlZD0hMSx0aGlzLl9iYXRjaGVyPW51bGwsdGhpcy5faGFuZGxlcj1lPT57c3dpdGNoKGUubWV0aG9kKXtjYXNlImNvbm5lY3RlZCI6dGhpcy5fY29ubmVjdGVkfHwodGhpcy5fY29ubmVjdGVkPSEwLAp0aGlzLl9oYW5kbGVDb25uZWN0ZWQoKSk7YnJlYWs7Y2FzZSJxdW90ZV9zeW1ib2xfZGF0YSI6dGhpcy5fY29ubmVjdGVkJiZ0aGlzLl9oYW5kbGVTeW1ib2xEYXRhKGUucGFyYW1zWzBdKTticmVhaztjYXNlInF1b3RlX2NvbXBsZXRlZCI6dGhpcy5fY29ubmVjdGVkJiZ0aGlzLl9oYW5kbGVDb21wbGV0ZURhdGEoZS5wYXJhbXNbMF0pO2JyZWFrO2Nhc2UiZGlzY29ubmVjdGVkIjp0aGlzLl9jb25uZWN0ZWQmJih0aGlzLl9jb25uZWN0ZWQ9ITEsdGhpcy5fYmF0Y2hlcj1udWxsKX19LDA9PT1lLmZpZWxkcy5sZW5ndGgpdGhyb3cgbmV3IEVycm9yKCdTdXBwb3J0IGZvciBlbXB0eSAiZmllbGRzIiBhcnJheSBpcyBub3QgaW1wbGVtZW50ZWQnKTtjb25zdHtwcm92aWRlcjp0PXIuUXVvdGVTZXNzaW9ufT1lO3RoaXMuX2ZpZWxkcz1uZXcgU2V0KGUuZmllbGRzKSx0aGlzLl9zZXNzaW9uPW5ldyB0KGUuYXBpLFsic25hcHNob3RlciIsZS5uYW1lLCgwLG8ucmFuZG9tSGFzaCkoKV0uZmlsdGVyKEJvb2xlYW4pLmpvaW4oIl8iKSksdGhpcy5fc2Vzc2lvbi5jb25uZWN0KHRoaXMuX2hhbmRsZXIpfWdldFNuYXBzaG90U3luYyhlLHQpe2NvbnN0IGk9Yy5jYWNoZS5nZXQoZSk7cmV0dXJuIGkmJnRoaXMuX2lzU25hcHNob3RSZWFkeShpLHtmaWVsZHM6dCx0aW1lc3RhbXA6bnVsbH0pP2k6bnVsbH1nZXRTbmFwc2hvdHNGb3JBbGxTeW5jKGUsdCl7cmV0dXJuIGUubWFwKChlPT50aGlzLmdldFNuYXBzaG90U3luYyhlLHQpKSl9Z2V0U25hcHNob3QoZSx0LGkpe2NvbnN0IHM9aT8uc2lnbmFsPz9udWxsLG89aT8uZnJlc2huZXNzLGw9dm9pZCAwIT09bz9EYXRlLm5vdygpLW86bnVsbDtyZXR1cm4gbmV3IFByb21pc2UoKChpLG8pPT57aWYocyYmcy5hYm9ydGVkKXRocm93KDAsbi5jcmVhdGVBYm9ydEVycm9yKSgpO2NvbnN0IHI9KCk9Pnt0aGlzLl9vblN5bWJvbERhdGEudW5zdWJzY3JpYmUodGhpcyxkKSxvKCgwLG4uY3JlYXRlQWJvcnRFcnJvcikoKSl9LGQ9KG89ZSk9PntpZihvIT09ZSlyZXR1cm47Y29uc3Qgbj1jLmNhY2hlLmdldChlKTtuJiZ0aGlzLl9pc1NuYXBzaG90UmVhZHkobix7dGltZXN0YW1wOmwsc3ltYm9sOmUsZmllbGRzOnR9KSYmKHRoaXMuX29uU3ltYm9sRGF0YS51bnN1YnNjcmliZSh0aGlzLGQpLHM/LnJlbW92ZUV2ZW50TGlzdGVuZXIoImFib3J0IixyKSxpKG4pKX07aWYoISgoKT0+e2NvbnN0IHM9Yy5jYWNoZS5nZXQoZSk7aWYoIXMpcmV0dXJuITE7Y29uc3Qgbz0oMCxhLmVuc3VyZU5vdE51bGwpKGMuY2FjaGUuZ2V0VGltZXMoZSkpO3JldHVybiEhdGhpcy5faXNTbmFwc2hvdFJlYWR5KHMse2ZpZWxkczp0LHN5bWJvbDplLHRpbWVzdGFtcDpsLHRpbWVzOm99KSYmKGkocyksITApfSkoKSYmKHM/LmFkZEV2ZW50TGlzdGVuZXIoImFib3J0IixyLHtvbmNlOiEwfSksdGhpcy5fb25TeW1ib2xEYXRhLnN1YnNjcmliZSh0aGlzLGQpLCF0aGlzLl9pbmNvbXBsZXRlLmhhcyhlKSkpe2lmKHRoaXMuX3VwZGF0ZWRGaWVsZHMuc2V0KGUsbmV3IFNldCksdGhpcy5faW5jb21wbGV0ZS5hZGQoZSksIXRoaXMuX2Nvbm5lY3RlZClyZXR1cm47aWYobnVsbD09PXRoaXMuX2JhdGNoZXIpe2NvbnN0IHQ9dGhpcy5fYmF0Y2hlcj17c3ltYm9sczpuZXcgU2V0KFtlXSkscHJvbWlzZTpQcm9taXNlLnJlc29sdmUoKS50aGVuKCgoKT0+e3RoaXMuX2JhdGNoZXI9PT10JiYodGhpcy5fc2Vzc2lvbi5xdW90ZUFkZFN5bWJvbHMoWy4uLnQuc3ltYm9sc10pLHRoaXMuX2JhdGNoZXI9bnVsbCl9KSl9fWVsc2UgdGhpcy5fYmF0Y2hlci5zeW1ib2xzLmFkZChlKX19KSl9Z2V0U25hcHNob3RzRm9yQWxsKGUsdCxpKXtyZXR1cm4gUHJvbWlzZS5hbGwoZS5tYXAoKGU9PnRoaXMuZ2V0U25hcHNob3QoZSx0LGkpKSkpfXN0YXRpYyByZWxheChlKXtyZXR1cm4gZX1zdGF0aWMgaXNTdWNjZXNzKGUpe3JldHVybiJlcnJvciIhPT1lLnN0YXR1c31zdGF0aWMgaGFzQWxsRmllbGRzKGUsdCl7Zm9yKGNvbnN0IGkgb2YgQXJyYXkuZnJvbSh0KSlpZighZS5oYXNPd25Qcm9wZXJ0eShpKSlyZXR1cm4hMTtyZXR1cm4hMH1faXNTbmFwc2hvdFJlYWR5KGUsdCl7Y29uc3R7ZmllbGRzOmksdGltZXN0YW1wOnMsdGltZXM6byxzeW1ib2w6bn09dDtyZXR1cm4iZXJyb3IiPT09ZS5zdGF0dXN8fChudWxsIT09cyYmbz90aGlzLl9pc0FsbEZpZWxkc1VwVG9EYXRlKGUsbyxpLHMpOm51bGwhPT1zJiZuP3RoaXMuX2lzQWxsRmllbGRzVXBkYXRlZChlLG4saSk6dGhpcy5faGFzQWxsRmllbGRzKGUsaSkpfV9pc0FsbEZpZWxkc1VwZGF0ZWQoZSx0LGkpe2lmKCJlcnJvciI9PT1lLnN0YXR1cylyZXR1cm4hMDtjb25zdCBzPXRoaXMuX3VwZGF0ZWRGaWVsZHMuZ2V0KHQpO2lmKCFzfHwhcy5zaXplKXJldHVybiExO2Zvcihjb25zdCBlIG9mIEFycmF5LmZyb20oaSkpaWYoIXMuaGFzKGUpKXJldHVybiExO3JldHVybiEwfV9oYXNBbGxGaWVsZHMoZSx0KXtyZXR1cm4gYy5oYXNBbGxGaWVsZHMoZS52YWx1ZXMsQXJyYXkuZnJvbSh0KSl9X2lzQWxsRmllbGRzVXBUb0RhdGUoZSx0LGkscyl7aWYoImVycm9yIj09PWUuc3RhdHVzKXJldHVybiEwO2lmKCF0KXJldHVybiExO2Zvcihjb25zdCBlIG9mIEFycmF5LmZyb20oaSkpe2NvbnN0IGk9dC5nZXQoZSk7aWYoIXQuaGFzKGUpfHx2b2lkIDA9PT1pKXJldHVybiExO2lmKGk8cylyZXR1cm4hMX1yZXR1cm4hMH1faGFuZGxlQ29ubmVjdGVkKCl7aWYodGhpcy5fZmllbGRzLnNpemU+MCl7Y29uc3QgZT1bLi4udGhpcy5fZmllbGRzXS5mbGF0TWFwKChlPT57Y29uc3QgdD11LmdldChlKTtyZXR1cm4gbnVsbCE9PXQ/dD8/ZTpbXX0pKTt0aGlzLl9zZXNzaW9uLnF1b3RlU2V0RmllbGRzKGUpfXRoaXMuX2luY29tcGxldGUuc2l6ZT4wJiZ0aGlzLl9zZXNzaW9uLnF1b3RlQWRkU3ltYm9scyhbLi4udGhpcy5faW5jb21wbGV0ZV0pfV9oYW5kbGVDb21wbGV0ZURhdGEoZSl7Y29uc3QgdD1jLmNhY2hlLmdldChlKT8/e3N5bWJvbG5hbWU6ZSxzdGF0dXM6Im9rIix2YWx1ZXM6e319O2MuY2FjaGUudXBkYXRlKHQsdGhpcy5fZmllbGRzLCEwKSwKdGhpcy5fdXBkYXRlZEZpZWxkcy5zZXQoZSx0aGlzLl9maWVsZHMpLHRoaXMuX3Nlc3Npb24ucXVvdGVSZW1vdmVTeW1ib2xzKFtlXSksdGhpcy5faW5jb21wbGV0ZS5kZWxldGUoZSksdGhpcy5fb25TeW1ib2xEYXRhLmZpcmUoZSl9X2hhbmRsZVN5bWJvbERhdGEoZSl7KDAsbC5ub3JtYWxpemVVcGRhdGVNb2RlKShlLnZhbHVlcyksYy5jYWNoZS51cGRhdGUoZSx0aGlzLl9maWVsZHMsITEpO2NvbnN0IHQ9ZS5zeW1ib2xuYW1lLGk9KDAsYS5lbnN1cmVEZWZpbmVkKSh0aGlzLl91cGRhdGVkRmllbGRzLmdldCh0KSkscz1uZXcgU2V0KGkpO2Zvcihjb25zdCB0IG9mIHRoaXMuX2ZpZWxkcyllLnZhbHVlcy5oYXNPd25Qcm9wZXJ0eSh0KSYmcy5hZGQodCk7dGhpcy5fdXBkYXRlZEZpZWxkcy5zZXQodCxzKSwiZXJyb3IiPT09ZS5zdGF0dXM/dGhpcy5faGFuZGxlQ29tcGxldGVEYXRhKHQpOnRoaXMuX29uU3ltYm9sRGF0YS5maXJlKHQpfX1jLmNhY2hlPWQuUVVPVEVfRklFTERTX0NBQ0hFfSw2MjM1MTEoZSx0LGkpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBzKGUpe2xldCB0PW51bGw7cmV0dXJuKCk9PihudWxsPT09dCYmKHQ9ZSgpKSx0KX1pLmQodCx7bGF6eVZhbHVlOigpPT5zfSl9LDc4ODAxKGUsdCxpKXsidXNlIHN0cmljdCI7aS5kKHQse3Nlc3Npb25UaGVuTG9jYWw6KCk9PnMsc2Vzc2lvblRoZW5UdlNldHRpbmdzOigpPT5vfSk7dmFyIHM9e307aS5yKHMpLGkuZChzLHtnZXQ6KCk9PmIsbG9nZ2VyOigpPT5nLHNldDooKT0+bX0pO3ZhciBvPXt9O2kucihvKSxpLmQobyx7Z2V0OigpPT55LGxvZ2dlcjooKT0+ZixzZXQ6KCk9PlN9KTt2YXIgbj1pKDIyMTA2MSksYT1pKDkzMjM2NSk7aWYoNzk3OTU9PWkuail2YXIgbD1pKDIzNzM2OSk7aWYoNzk3OTU9PWkuail2YXIgcj1pKDc3NjE3Myk7dmFyIGQ9aSg4Mzk0MjYpLHU9aSg1NjkzOTgpO2NvbnN0IGM9KDAsbi5nZXRMb2dnZXIpKCJMaWIuU2Vzc2lvblNjb3BlZFNldHRpbmdzIik7Y29uc3QgaD0oMCxkLmRlZmF1bHQpKCgoKT0+e3JldHVybiB2b2lkIDAhPT13aW5kb3cuVFZEP251bGwhPShlPXdpbmRvdy5UVkQuc2Vzc2lvblN0b3JhZ2UpJiYib2JqZWN0Ij09dHlwZW9mIGUmJiJnZXRJdGVtImluIGUmJiJmdW5jdGlvbiI9PXR5cGVvZiBlLmdldEl0ZW0mJiJzZXRJdGVtImluIGUmJiJmdW5jdGlvbiI9PXR5cGVvZiBlLnNldEl0ZW0mJigwLHUuaXNGZWF0dXJlRW5hYmxlZCkoInVzZV9kZXNrdG9wX3Nlc3Npb25fc3RvcmFnZSIpP3dpbmRvdy5UVkQuc2Vzc2lvblN0b3JhZ2U6bnVsbDooMCx1LmlzRmVhdHVyZUVuYWJsZWQpKCJ1c2VfYnJvd3Nlcl9zZXNzaW9uX3N0b3JhZ2UiKT93aW5kb3cuc2Vzc2lvblN0b3JhZ2U6bnVsbDt2YXIgZX0pKTtmdW5jdGlvbiBwKGUsdCl7Y29uc3QgaT1oKCk7aWYobnVsbCE9PWkpdHJ5e2kuc2V0SXRlbShlLHQpfWNhdGNoKGUpe2M/LmxvZ1dhcm4oYHNlc3Npb25TdG9yYWdlLnNldEl0ZW0gZmFpbGVkLCBiZWNhdXNlIG9mIGV4Y2VwdGlvbjogJHsoMCxsLmdldEVycm9yTWVzc2FnZSkoZSl9YCl9fWZ1bmN0aW9uIF8oZSl7Y29uc3QgdD1oKCk7cmV0dXJuIG51bGw9PT10P251bGw6dC5nZXRJdGVtKGUpfWNvbnN0IGc9KDAsbi5nZXRMb2dnZXIpKCJMaWIuU2Vzc2lvblNjb3BlZFNldHRpbmdzIik7ZnVuY3Rpb24gbShlLHQpe3RyeXtjb25zdCBpPSgwLHIuc2V0dGluZ1ZhbHVlVG9TdHJpbmcpKHQpO3AoZSxpKSxhLlRWTG9jYWxTdG9yYWdlLnNldEl0ZW0oZSxpKX1jYXRjaChlKXtnPy5sb2dXYXJuKGBzZXNzaW9uVGhlbkxvY2FsLnNldCBmYWlsZWQ6ICR7KDAsbC5nZXRFcnJvck1lc3NhZ2UpKGUpfWApfX1mdW5jdGlvbiBiKGUsdCxpKXt0cnl7cmV0dXJuKDAsci5wYXJzZVNldHRpbmdWYWx1ZSkoZnVuY3Rpb24oZSx0KXtsZXQgaT1fKGUpO251bGw9PT1pJiYoaT1hLlRWTG9jYWxTdG9yYWdlLmdldEl0ZW0oZSk/P3QscChlLGkpKTtyZXR1cm4gaX0oZSwoMCxyLnNldHRpbmdWYWx1ZVRvU3RyaW5nKSh0KSksaSl9Y2F0Y2goZSl7cmV0dXJuIGc/LmxvZ1dhcm4oYHNlc3Npb25UaGVuTG9jYWwuZ2V0IGlzIGFib3V0IHRvIHJldHVybiB0aGUgZGVmYXVsdCB2YWx1ZSBkdWUgdG8gZXJyb3I6ICR7KDAsbC5nZXRFcnJvck1lc3NhZ2UpKGUpfWApLHR9fXZhciB2PWkoOTMwNTY2KTtjb25zdCBmPSgwLG4uZ2V0TG9nZ2VyKSgiTGliLlNlc3Npb25TY29wZWRTZXR0aW5ncyIpO2Z1bmN0aW9uIFMoZSx0KXt0cnl7Y29uc3QgaT0oMCxyLnNldHRpbmdWYWx1ZVRvU3RyaW5nKSh0KTtwKGUsaSksdi5zZXRWYWx1ZShlLGkpfWNhdGNoKGUpe2Y/LmxvZ1dhcm4oYHNlc3Npb25UaGVuVHZTZXR0aW5ncy5zZXQgZmFpbGVkOiAkeygwLGwuZ2V0RXJyb3JNZXNzYWdlKShlKX1gKX19ZnVuY3Rpb24geShlLHQsaSl7dHJ5e3JldHVybigwLHIucGFyc2VTZXR0aW5nVmFsdWUpKGZ1bmN0aW9uKGUsdCl7bGV0IGk9XyhlKTtudWxsPT09aSYmKGk9di5nZXRWYWx1ZShlKT8/dCxwKGUsaSkpO3JldHVybiBpfShlLCgwLHIuc2V0dGluZ1ZhbHVlVG9TdHJpbmcpKHQpKSxpKX1jYXRjaChlKXtyZXR1cm4gZj8ubG9nV2Fybihgc2Vzc2lvblRoZW5UdlNldHRpbmdzLmdldCBpcyBhYm91dCB0byByZXR1cm4gdGhlIGRlZmF1bHQgdmFsdWUgZHVlIHRvIGVycm9yOiAkeygwLGwuZ2V0RXJyb3JNZXNzYWdlKShlKX1gKSx0fX19LDc3NjE3MyhlLHQsaSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHMoZSx0KXtjb25zdCBpPUpTT04ucGFyc2UoZSk7aWYodm9pZCAwPT09dClyZXR1cm4gaTtpZih0KGkpKXJldHVybiBpO3Rocm93IG5ldyBUeXBlRXJyb3IoIlBhcnNlZCB2YWx1ZSBkb2VzIG5vdCBzYXRpc2Z5IHRoZSBwcm92aWRlZCB2YWxpZGF0aW9uIHByZWRpY2F0ZSIpfWZ1bmN0aW9uIG8oZSl7cmV0dXJuIEpTT04uc3RyaW5naWZ5KGUpfWkuZCh0LHtwYXJzZVNldHRpbmdWYWx1ZTooKT0+cyxzZXR0aW5nVmFsdWVUb1N0cmluZzooKT0+b30pfSwxODIzMDgoZSx0LGkpeyJ1c2Ugc3RyaWN0IjtpLmQodCx7dXNlUm92aW5nVGFiaW5kZXhFbGVtZW50OigpPT5hfSk7dmFyIHM9aSg3Nzk0NzQpLG89aSg3ODc4OTUpLG49aSg2MTYzMTEpCjtmdW5jdGlvbiBhKGUsdD1bXSl7Y29uc3RbaSxhXT0oMCxzLnVzZVN0YXRlKSghMSksbD0oMCxvLnVzZUZ1bmN0aW9uYWxSZWZPYmplY3QpKGUpO3JldHVybigwLG4udXNlSXNvbW9ycGhpY0xheW91dEVmZmVjdCkoKCgpPT57Y29uc3QgZT1sLmN1cnJlbnQ7aWYobnVsbD09PWUpcmV0dXJuO2NvbnN0IHQ9ZT0+e3N3aXRjaChlLnR5cGUpe2Nhc2Uicm92aW5nLXRhYmluZGV4Om1haW4tZWxlbWVudCI6YSghMCk7YnJlYWs7Y2FzZSJyb3ZpbmctdGFiaW5kZXg6c2Vjb25kYXJ5LWVsZW1lbnQiOmEoITEpfX07cmV0dXJuIGUuYWRkRXZlbnRMaXN0ZW5lcigicm92aW5nLXRhYmluZGV4Om1haW4tZWxlbWVudCIsdCksZS5hZGRFdmVudExpc3RlbmVyKCJyb3ZpbmctdGFiaW5kZXg6c2Vjb25kYXJ5LWVsZW1lbnQiLHQpLCgpPT57ZS5yZW1vdmVFdmVudExpc3RlbmVyKCJyb3ZpbmctdGFiaW5kZXg6bWFpbi1lbGVtZW50Iix0KSxlLnJlbW92ZUV2ZW50TGlzdGVuZXIoInJvdmluZy10YWJpbmRleDpzZWNvbmRhcnktZWxlbWVudCIsdCl9fSksdCksW2wsaT8wOi0xXX19LDkyOTQ4OChlLHQsaSl7InVzZSBzdHJpY3QiO2kuZCh0LHtpc1NlcGFyYXRvckl0ZW06KCk9Pm99KTt2YXIgcz1pKDkwMTAyMik7ZnVuY3Rpb24gbyhlKXtyZXR1cm4oMCxzLmlzU2VwYXJhdG9ySXRlbSkoZSl9fSwzMjA1NShlLHQsaSl7InVzZSBzdHJpY3QiO2kucih0KSxpLmQodCx7cmVzb2x2ZVN5bWJvbE5hbWU6KCk9PmQscmVzb2x2ZVN5bWJvbE5hbWVGb3JBbGw6KCk9PnUscmVzb2x2ZVN5bWJvbE5hbWVGb3JBbGxEaXN0aW5jdDooKT0+YyxzbmFwc2hvdGVyOigpPT5sfSk7dmFyIHM9aSgxMjg4MTQpLG89aSg2MjM1MTEpLG49aSg5Mjk0ODgpO2NvbnN0IGE9bmV3IFNldChbInByb19uYW1lIiwiYmFzZV9uYW1lIiwic2hvcnRfbmFtZSIsImRlc2NyaXB0aW9uIiwidHlwZSIsImV4Y2hhbmdlIiwidHlwZXNwZWNzIiwibGlzdGVkX2V4Y2hhbmdlIiwibGFzdF9wcmljZSIsImNvdW50cnlfY29kZSIsInByb3ZpZGVyX2lkIiwic3ltYm9sLXByaW1hcnluYW1lIiwibG9nb2lkIiwibG9nbyIsImJhc2UtY3VycmVuY3ktbG9nb2lkIiwiY3VycmVuY3ktbG9nb2lkIiwic291cmNlLWxvZ29pZCIsInVwZGF0ZV9tb2RlIiwidXBkYXRlX21vZGVfc2Vjb25kcyIsInByb19wZXJtIiwic291cmNlIiwic291cmNlMiIsInByaWNlc2NhbGUiLCJtaW5tb3YiLCJmcmFjdGlvbmFsIiwidmlzaWJsZS1wbG90cy1zZXQiLCJsb2NhbF9kZXNjcmlwdGlvbiIsImxhbmd1YWdlIiwidW5kZXJseWluZy1zeW1ib2wiXSksbD0oMCxvLmxhenlWYWx1ZSkoKCgpPT5uZXcgcy5RdW90ZVNlc3Npb25TbmFwc2hvdGVyKHtuYW1lOiJiYXNpYy1zeW1ib2wtcXVvdGVzIixmaWVsZHM6Wy4uLmFdLGFwaTp3aW5kb3cuQ2hhcnRBcGlJbnN0YW5jZX0pKSkscj1uZXcgU2V0KFsicHJvX25hbWUiXSk7YXN5bmMgZnVuY3Rpb24gZChlKXtyZXR1cm4oMCxuLmlzU2VwYXJhdG9ySXRlbSkoZSk/ZTpsKCkuZ2V0U25hcHNob3QoZSxyKS50aGVuKChlPT4iZXJyb3IiPT09ZS5zdGF0dXM/ZS5zeW1ib2xuYW1lOmUudmFsdWVzLnByb19uYW1lKSl9ZnVuY3Rpb24gdShlKXtyZXR1cm4gUHJvbWlzZS5hbGwoZS5tYXAoZCkpfWZ1bmN0aW9uIGMoZSl7cmV0dXJuIHUoZSkudGhlbigoZT0+Wy4uLm5ldyBTZXQoZSldKSl9fSw5ODYyNzUoZSx0LGkpeyJ1c2Ugc3RyaWN0IjtpLmQodCx7cmVtb3ZlVXNkRnJvbUNyeXB0b1BhaXJMb2dvczooKT0+cixyZXNvbHZlTG9nb1VybHM6KCk9PmEscmVzb2x2ZUxvZ29VcmxzRnJvbUxvZ29EYXRhOigpPT5sfSk7dmFyIHM9aSg2MDE4NDEpLG89aSg4NjIyMTMpO2NvbnN0IG49KDAsby5nZXRMb2dvVXJsUmVzb2x2ZXIpKCk7ZnVuY3Rpb24gYShlLHQ9by5Mb2dvU2l6ZS5NZWRpdW0pe2NvbnN0IGk9ZS5sb2dvaWQscz1lWyJiYXNlLWN1cnJlbmN5LWxvZ29pZCJdLGE9ZVsiY3VycmVuY3ktbG9nb2lkIl0sbD1pJiZuLmdldFN5bWJvbExvZ29VcmwoaSx0KTtpZihsKXJldHVybltsXTtjb25zdCByPXMmJm4uZ2V0U3ltYm9sTG9nb1VybChzLHQpLGQ9YSYmbi5nZXRTeW1ib2xMb2dvVXJsKGEsdCk7cmV0dXJuIHImJmQ/W3IsZF06cj9bcl06ZD9bZF06W119ZnVuY3Rpb24gbChlLHQ9by5Mb2dvU2l6ZS5NZWRpdW0pe3JldHVybigicGFpciI9PT1lLnN0eWxlP1tlLmxvZ29pZCxlLmxvZ29pZDJdOltlLmxvZ29pZF0pLm1hcCgoZT0+bi5nZXRTeW1ib2xMb2dvVXJsKGUsdCkpKS5maWx0ZXIocy5ub3ROdWxsKX1mdW5jdGlvbiByKGUpe3JldHVybiAyIT09ZS5sZW5ndGg/ZTpmdW5jdGlvbihlKXtyZXR1cm4gZS5zb21lKChlPT5kKGUpKSl9KGUpJiYhZnVuY3Rpb24oZSl7cmV0dXJuIGUuc29tZSgoZT0+ZS5pbmNsdWRlcygiY291bnRyeSIpJiYhZChlKSkpfShlKT9lLmZpbHRlcigoZT0+IWQoZSkpKTplfWZ1bmN0aW9uIGQoZSl7cmV0dXJuIGUuaW5jbHVkZXMoImNvdW50cnkvVVMiKX19LDM2NDM1MChlLHQsaSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHMoZSx0KXtyZXR1cm4gZT09PXR9aS5kKHQse2NyZWF0ZVNlbGVjdG9yOigpPT5vfSk7dmFyIG89ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PWFyZ3VtZW50cy5sZW5ndGgsaT1BcnJheSh0PjE/dC0xOjApLHM9MTtzPHQ7cysrKWlbcy0xXT1hcmd1bWVudHNbc107cmV0dXJuIGZ1bmN0aW9uKCl7Zm9yKHZhciB0PWFyZ3VtZW50cy5sZW5ndGgscz1BcnJheSh0KSxvPTA7bzx0O28rKylzW29dPWFyZ3VtZW50c1tvXTt2YXIgbj0wLGE9cy5wb3AoKSxsPWZ1bmN0aW9uKGUpe3ZhciB0PUFycmF5LmlzQXJyYXkoZVswXSk/ZVswXTplO2lmKCF0LmV2ZXJ5KChmdW5jdGlvbihlKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgZX0pKSl7dmFyIGk9dC5tYXAoKGZ1bmN0aW9uKGUpe3JldHVybiB0eXBlb2YgZX0pKS5qb2luKCIsICIpO3Rocm93IG5ldyBFcnJvcigiU2VsZWN0b3IgY3JlYXRvcnMgZXhwZWN0IGFsbCBpbnB1dC1zZWxlY3RvcnMgdG8gYmUgZnVuY3Rpb25zLCBpbnN0ZWFkIHJlY2VpdmVkIHRoZSBmb2xsb3dpbmcgdHlwZXM6IFsiK2krIl0iKX1yZXR1cm4gdH0ocykscj1lLmFwcGx5KHZvaWQgMCxbZnVuY3Rpb24oKXsKcmV0dXJuIG4rKyxhLmFwcGx5KG51bGwsYXJndW1lbnRzKX1dLmNvbmNhdChpKSksZD1lKChmdW5jdGlvbigpe2Zvcih2YXIgZT1bXSx0PWwubGVuZ3RoLGk9MDtpPHQ7aSsrKWUucHVzaChsW2ldLmFwcGx5KG51bGwsYXJndW1lbnRzKSk7cmV0dXJuIHIuYXBwbHkobnVsbCxlKX0pKTtyZXR1cm4gZC5yZXN1bHRGdW5jPWEsZC5kZXBlbmRlbmNpZXM9bCxkLnJlY29tcHV0YXRpb25zPWZ1bmN0aW9uKCl7cmV0dXJuIG59LGQucmVzZXRSZWNvbXB1dGF0aW9ucz1mdW5jdGlvbigpe3JldHVybiBuPTB9LGR9fSgoZnVuY3Rpb24oZSl7dmFyIHQ9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOnMsaT1udWxsLG89bnVsbDtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24oZSx0LGkpe2lmKG51bGw9PT10fHxudWxsPT09aXx8dC5sZW5ndGghPT1pLmxlbmd0aClyZXR1cm4hMTtmb3IodmFyIHM9dC5sZW5ndGgsbz0wO288cztvKyspaWYoIWUodFtvXSxpW29dKSlyZXR1cm4hMTtyZXR1cm4hMH0odCxpLGFyZ3VtZW50cyl8fChvPWUuYXBwbHkobnVsbCxhcmd1bWVudHMpKSxpPWFyZ3VtZW50cyxvfX0pKX0sNjY2MzMyKGUsdCxpKXsidXNlIHN0cmljdCI7aS5kKHQse0NvbnRyb2xCYXJOYXZpZ2F0aW9uOigpPT5lZX0pO3ZhciBzPWkoMTM4NjM4KSxvPWkoMTg1MjcxKSxuPWkoMzYzMjY5KSxhPWkoOTMwMjMxKSxsPWkoOTUyOTAwKSxyPWkoOTIzMTc2KSxkPWkoOTY5MTY4KSx1PWkoNDQzNTU3KSxjPWkoNTUyMTQ1KSxoPWkoMzQ1MTUxKSxwPWkoMzE4OTc0KSxfPWkoMjM1NzI0KSxnPWkoMTI4OTk4KSxtPWkoMzg2OTMxKSxiPWkoNDk3MDE4KSx2PWkoMTIxNDc0KSxmPWkoNzMyMDM5KSxTPWkoNTQ5NzcwKSx5PWkoOTk3ODM0KSx3PWkoMjQ3MDMwKSxDPWkoNTczNTgyKSxFPWkoMzY4OTU0KSx4PWkoMjkxMjA5KSxMPWkoODM1NTUwKSxNPWkoNDMxODUpO2koNzEwMTU2KTtjb25zdCBUPSgwLF8uaHVtYW5SZWFkYWJsZU1vZGlmaWVycykoXy5Nb2RpZmllcnMuQWx0LCExKSxWPSgwLF8uaHVtYW5SZWFkYWJsZU1vZGlmaWVycykoXy5Nb2RpZmllcnMuU2hpZnQsITEpLGs9KDAsXy5odW1hblJlYWRhYmxlTW9kaWZpZXJzKShfLk1vZGlmaWVycy5Nb2QsITEpLEE9KDAsaC5ob3RLZXlTZXJpYWxpemUpKHtrZXlzOltULCJSIl0sdGV4dDoiezB9ICsgezF9In0pLFc9KDAsaC5ob3RLZXlTZXJpYWxpemUpKHtrZXlzOltULCJDbGljayIsVCwiRW50ZXIiXSx0ZXh0OiJ7MH0gKyB7MX0sIHsyfSArIHszfSJ9KSxJPSgwLGguaG90S2V5U2VyaWFsaXplKSh7a2V5czpbRV0sdGV4dDoiezB9In0pLEI9KDAsaC5ob3RLZXlTZXJpYWxpemUpKHtrZXlzOlt4XSx0ZXh0OiJ7MH0ifSksSD0oMCxoLmhvdEtleVNlcmlhbGl6ZSkoe2tleXM6W2ssTF0sdGV4dDoiezB9ICsgezF9In0pLEQ9KDAsaC5ob3RLZXlTZXJpYWxpemUpKHtrZXlzOltrLE1dLHRleHQ6InswfSArIHsxfSJ9KSxQPSgwLGguaG90S2V5U2VyaWFsaXplKSh7a2V5czpbVCxWLHhdLHRleHQ6InswfSArIHsxfSArIHsyfSJ9KSxOPW8udChudWxsLHZvaWQgMCxpKDMxNDUzNCkpLFI9by50KG51bGwsdm9pZCAwLGkoNDg3ODc0KSksTz1vLnQobnVsbCx2b2lkIDAsaSg1NTEzMzIpKSxGPW8udChudWxsLHZvaWQgMCxpKDY3MTgwOSkpLHo9by50KG51bGwsdm9pZCAwLGkoMjQxNzIyKSksaj1vLnQobnVsbCx2b2lkIDAsaSg3MDgyMzMpKSxVPW8udChudWxsLHZvaWQgMCxpKDIwNzg0NSkpLEc9by50KG51bGwsdm9pZCAwLGkoNjYwODEwKSk7dmFyIFosSjshZnVuY3Rpb24oZSl7ZVtlLkJhclZpc2libGVEaXN0YW5jZT0xMDBdPSJCYXJWaXNpYmxlRGlzdGFuY2UiLGVbZS5CYWNrQnV0dG9uUmlnaHRNYXJnaW49MTRdPSJCYWNrQnV0dG9uUmlnaHRNYXJnaW4iLGVbZS5TaW5nbGVCdXR0b25XaWR0aD0zNl09IlNpbmdsZUJ1dHRvbldpZHRoIixlW2UuR3JvdXBNYXJnaW5zPTE0XT0iR3JvdXBNYXJnaW5zIixlW2UuR29Ub1JlYWx0aW1lQnV0dG9uV2lkdGg9NTBdPSJHb1RvUmVhbHRpbWVCdXR0b25XaWR0aCIsZVtlLkxlZnRNYXJnaW49NTBdPSJMZWZ0TWFyZ2luIixlW2UuVGltZUF4aXNNYWluUGFuZU1hcmdpbj0yN109IlRpbWVBeGlzTWFpblBhbmVNYXJnaW4iLGVbZS5QYW5lQ29udHJvbHNIZWlnaHQ9MjhdPSJQYW5lQ29udHJvbHNIZWlnaHQifShafHwoWj17fSkpLGZ1bmN0aW9uKGUpe2UuU2Nyb2xsTGVmdFJpZ2h0PSJqcy1idG4tZ3JvdXAtc2Nyb2xsIixlLlpvb21Jblpvb21PdXQ9ImpzLWJ0bi1ncm91cC16b29tIixlLk1heGltaXplPSJqcy1idG4tZ3JvdXAtbWF4aW1pemUiLGUuUmVzZXRTY2FsZT0ianMtYnRuLWdyb3VwLXJlc2V0LXNjYWxlIn0oSnx8KEo9e30pKQo7Y29uc3QgWT1gPGRpdiBjbGFzcz0iY29udHJvbC1iYXItd3JhcHBlciI+XG5cdDxkaXYgY2xhc3M9ImNvbnRyb2wtYmFyIGNvbnRyb2wtYmFyLS1oaWRkZW4iPlxuXHRcdDxkaXYgY2xhc3M9ImNvbnRyb2wtYmFyX19ncm91cCBqcy1idG4tZ3JvdXAganMtYnRuLWdyb3VwLXpvb20iPlxuXHRcdFx0PGRpdiBjbGFzcz0iY29udHJvbC1iYXJfX2J0biBjb250cm9sLWJhcl9fYnRuLS16b29tLW91dCBhcHBseS1jb21tb24tdG9vbHRpcCIgdGl0bGU9IiR7Tn0iIGRhdGEtdG9vbHRpcC1ob3RrZXk9IiR7RH0iPlxuXHRcdFx0XHQke3Z9XG5cdFx0XHQ8L2Rpdj5cblx0XHRcdDxkaXYgY2xhc3M9ImNvbnRyb2wtYmFyX19idG4gY29udHJvbC1iYXJfX2J0bi0tem9vbS1pbiBhcHBseS1jb21tb24tdG9vbHRpcCIgdGl0bGU9IiR7Un0iIGRhdGEtdG9vbHRpcC1ob3RrZXk9IiR7SH0iPlxuXHRcdFx0XHQke1N9XG5cdFx0XHQ8L2Rpdj5cblx0XHQ8L2Rpdj5cblx0XHQ8ZGl2IGNsYXNzPSJjb250cm9sLWJhcl9fZ3JvdXAganMtYnRuLWdyb3VwIGpzLWJ0bi1ncm91cC1tYXhpbWl6ZSI+XG5cdFx0XHQ8ZGl2IGNsYXNzPSJjb250cm9sLWJhcl9fYnRuIGNvbnRyb2wtYmFyX19idG4tLW1heGltaXplIGFwcGx5LWNvbW1vbi10b29sdGlwIiBkYXRhLXRvb2x0aXAtaG90a2V5PSIke1d9Ij5cblx0XHRcdFx0JHt3fVxuXHRcdFx0PC9kaXY+XG5cdFx0PC9kaXY+XG5cdFx0PGRpdiBjbGFzcz0iY29udHJvbC1iYXJfX2dyb3VwIGpzLWJ0bi1ncm91cCBqcy1idG4tZ3JvdXAtc2Nyb2xsIj5cblx0XHRcdDxkaXYgY2xhc3M9ImNvbnRyb2wtYmFyX19idG4gY29udHJvbC1iYXJfX2J0bi0tbW92ZS1sZWZ0IGFwcGx5LWNvbW1vbi10b29sdGlwIiB0aXRsZT0iJHt6fSIgZGF0YS10b29sdGlwLWhvdGtleT0iJHtJfSI+XG5cdFx0XHRcdCR7Zn1cblx0XHRcdDwvZGl2PlxuXHRcdFx0PGRpdiBjbGFzcz0iY29udHJvbC1iYXJfX2J0biBjb250cm9sLWJhcl9fYnRuLS1tb3ZlLXJpZ2h0IGFwcGx5LWNvbW1vbi10b29sdGlwIiB0aXRsZT0iJHtqfSIgZGF0YS10b29sdGlwLWhvdGtleT0iJHtCfSI+XG5cdFx0XHRcdCR7Zn1cblx0XHRcdDwvZGl2PlxuXHRcdDwvZGl2PlxuXHRcdDxkaXYgY2xhc3M9ImNvbnRyb2wtYmFyX19ncm91cCBqcy1idG4tZ3JvdXAganMtYnRuLWdyb3VwLXJlc2V0LXNjYWxlIj5cblx0XHRcdDxkaXYgY2xhc3M9ImNvbnRyb2wtYmFyX19idG4gY29udHJvbC1iYXJfX2J0bi0tdHVybi1idXR0b24gY29udHJvbC1iYXJfX2J0bi0tYnRuLWhpZGRlbiBhcHBseS1jb21tb24tdG9vbHRpcCBqcy1idG4tcmVzZXQiIHRpdGxlPSIke1V9IiBkYXRhLXRvb2x0aXAtaG90a2V5PSIke0F9Ij5cblx0XHRcdFx0JHt5fVxuXHRcdFx0PC9kaXY+XG5cdFx0PC9kaXY+XG5cdDwvZGl2PlxuPC9kaXY+YCxxPWA8ZGl2IGNsYXNzPSJjb250cm9sLWJhci13cmFwcGVyIGNvbnRyb2wtYmFyLXdyYXBwZXItLWJhY2stcHJlc2VudCI+XG5cdDxkaXYgY2xhc3M9ImNvbnRyb2wtYmFyIGNvbnRyb2wtYmFyX19idG4gY29udHJvbC1iYXJfX2J0bi0tYnRuLWhpZGRlbiBhcHBseS1jb21tb24tdG9vbHRpcCIgdGl0bGU9IiR7R30iIGRhdGEtdG9vbHRpcC1ob3RrZXk9IiR7UH0iPlxuXHRcdCR7Q31cblx0PC9kaXY+XG48L2Rpdj5gLCQ9cC5DaGVja01vYmlsZS5hbnkoKSxRPSJjb250cm9sLWJhcl9fYnRuLS1idG4taGlkZGVuIixLPSJjb250cm9sLWJhcl9fYnRuLS1hY3RpdmF0ZWQiLFg9e3pvb21Jbk91dDohMCxtYXhpbWl6ZTohMCxzY3JvbGxMZWZ0UmlnaHQ6ITAscmVzZXRTY2FsZTohMCxnb1RvUmVhbHRpbWU6ITB9O2NsYXNzIGVle2NvbnN0cnVjdG9yKGUsdCxpKXt0aGlzLl93aWRnZXQ9KDAscy5lbnN1cmVOb3ROdWxsKSgoMCx1LnBhcnNlSHRtbCkoWSkucXVlcnlTZWxlY3RvcigiLmNvbnRyb2wtYmFyLXdyYXBwZXIiKSksdGhpcy5fY29udHJvbEJhcj0oMCxzLmVuc3VyZU5vdE51bGwpKHRoaXMuX3dpZGdldC5xdWVyeVNlbGVjdG9yKCIuY29udHJvbC1iYXIiKSksdGhpcy5fYmFjaz0oMCxzLmVuc3VyZU5vdE51bGwpKCgwLHUucGFyc2VIdG1sKShxKS5xdWVyeVNlbGVjdG9yKCIuY29udHJvbC1iYXItd3JhcHBlciIpKSx0aGlzLl9idG5Hcm91cHM9QXJyYXkuZnJvbSh0aGlzLl9jb250cm9sQmFyLnF1ZXJ5U2VsZWN0b3JBbGwoIi5qcy1idG4tZ3JvdXAiKSksdGhpcy5fdGFyZ2V0UGFuZVdpZGdldD1udWxsLHRoaXMuX2JhY2tCdXR0b25WaXNpYmxlPSExLHRoaXMuX2JhY2tCdXR0b25DYW5CZVZpc2libGU9ITEsdGhpcy5fYm91bmRNb3VzZUhhbmRsZXI9bnVsbCx0aGlzLl9jaGFydE1vZGVsPW51bGwsdGhpcy5fY29udHJvbEJhclZpc2libGU9ITEsdGhpcy5fcHJpY2VBeGlzQ2hhbmdlZD1udWxsLHRoaXMuX3Jlc2V0U2NhbGVzQXZhaWxhYmxlPW51bGwsdGhpcy5fcHJpY2VBeGlzTmFtZT0icmlnaHQiLHRoaXMuX3JhZklkPW51bGwsdGhpcy5fdmlzaWJpbGl0eVR5cGVQcm9wZXJ0eT1udWxsLHRoaXMuX2JvdW5kVXBkYXRlTWF4aW1pemVCdXR0b25zVmlzaWJpbGl0eT10aGlzLl91cGRhdGVNYXhpbWl6ZUJ1dHRvbnNWaXNpYmlsaXR5LmJpbmQodGhpcyksdGhpcy5fYm91bmRUb2dnbGVGdWxsc2NyZWVuQnV0dG9ucz10aGlzLl90b2dnbGVGdWxsc2NyZWVuQnV0dG9ucy5iaW5kKHRoaXMpLHRoaXMuX3BhbmVXaWR0aD0wLHRoaXMuX2xlZnRQcmljZVNjYWxlV2lkdGg9MCx0aGlzLl9yaWdodFByaWNlU2NhbGVXaWR0aD0wLHRoaXMuX29uVmlzaWJpbGl0eVR5cGVDaGFuZ2U9ZT0+eyJhbHdheXNPbiI9PT1lfHwiYWx3YXlzT2ZmIj09PWU/KHRoaXMuX2NvbnRyb2xCYXJWaXNpYmxlPSJhbHdheXNPbiI9PT1lLHRoaXMuX3BhcmVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLHRoaXMuX2NvbnRyb2xzQmFyVmlzaWJpbGl0eUhhbmRsZXIsITEpLHRoaXMuX3BhcmVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZWxlYXZlIix0aGlzLl9jb250cm9sc0JhclZpc2liaWxpdHlIYW5kbGVyLCExKSk6KHRoaXMuX2NvbnRyb2xCYXJWaXNpYmxlPSExLAp0aGlzLl9wYXJlbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIix0aGlzLl9jb250cm9sc0JhclZpc2liaWxpdHlIYW5kbGVyKSx0aGlzLl9wYXJlbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2VsZWF2ZSIsdGhpcy5fY29udHJvbHNCYXJWaXNpYmlsaXR5SGFuZGxlcikpLHRoaXMuX2NvbmZpZ3VyZUJhY2tCdXR0b25WaXNpYmlsaXR5KGUpLHRoaXMuX3VwZGF0ZUNvbnRyb2xCYXJWaXNpYmlsaXR5KCl9LHRoaXMuX3Zpc2liaWxpdHlCYWNrQnV0dG9uSGFuZGxlcj1lPT57Y29uc3QgdD10aGlzLl9jaGVja0lzUG9pbnRlck5lYXJCb3goZSx0aGlzLl9iYWNrLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpKTt2b2lkIDAhPT10JiZ0aGlzLl9iYWNrQnV0dG9uQ2FuQmVWaXNpYmxlIT09dCYmKHRoaXMuX2JhY2tCdXR0b25DYW5CZVZpc2libGU9dCx0aGlzLl9zZXRSQUYoKSl9LHRoaXMuX2NvbnRyb2xzQmFyVmlzaWJpbGl0eUhhbmRsZXI9ZT0+e2NvbnN0IHQ9dGhpcy5fY2hlY2tJc1BvaW50ZXJOZWFyQm94KGUsdGhpcy5fY29udHJvbEJhci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSk7dm9pZCAwIT09dCYmdGhpcy5fY29udHJvbEJhclZpc2libGUhPT10JiYodGhpcy5fY29udHJvbEJhclZpc2libGU9dCx0aGlzLl9zZXRSQUYoKSl9LHRoaXMuX3VwZGF0ZUNvbnRyb2xCYXJWaXNpYmlsaXR5PSgpPT57dGhpcy5fY29udHJvbEJhci5jbGFzc0xpc3QudG9nZ2xlKCJjb250cm9sLWJhci0taGlkZGVuIiwhdGhpcy5fY29udHJvbEJhclZpc2libGUpfSx0aGlzLl9jaGFydD1lLHRoaXMuX3BhcmVudD10LHRoaXMuX29wdGlvbnM9T2JqZWN0LmFzc2lnbih7fSxYLGkpLHRoaXMuX3Zpc2liaWxpdHlQcmlvcml0aXplZEdyb3Vwcz10aGlzLl9pbml0R3JvdXBEZXNjcmlwdGlvbnMoKSx0aGlzLl9pbml0KCksdGhpcy5faW5pdEhhbmRsZXJzKCksdGhpcy51cGRhdGVQb3NpdGlvbigpfWRlc3Ryb3koKXtudWxsIT09dGhpcy5fdmlzaWJpbGl0eVR5cGVQcm9wZXJ0eSYmKHRoaXMuX3Zpc2liaWxpdHlUeXBlUHJvcGVydHkuZGVzdHJveSgpLHRoaXMuX3Zpc2liaWxpdHlUeXBlUHJvcGVydHk9bnVsbCksbnVsbCE9PXRoaXMuX2JvdW5kTW91c2VIYW5kbGVyJiYodGhpcy5fcGFyZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIsdGhpcy5fYm91bmRNb3VzZUhhbmRsZXIsITEpLHRoaXMuX3BhcmVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZWxlYXZlIix0aGlzLl9ib3VuZE1vdXNlSGFuZGxlciwhMSksdGhpcy5fYm91bmRNb3VzZUhhbmRsZXI9bnVsbCksbnVsbCE9PXRoaXMuX3ByaWNlQXhpc0NoYW5nZWQmJih0aGlzLl9wcmljZUF4aXNDaGFuZ2VkLnVuc3Vic2NyaWJlKHRoaXMsdGhpcy5fdXBkYXRlQmFja0J0blBvc2l0aW9uKSx0aGlzLl9wcmljZUF4aXNDaGFuZ2VkPW51bGwpLGNsZWFySW50ZXJ2YWwodGhpcy5fY2hlY2tJbnRlcnZhbElkKSx0aGlzLl9yZXNldFNjYWxlc0F2YWlsYWJsZT8uZGVzdHJveSgpO2NvbnN0IGU9dGhpcy5fY2hhcnQuZ2V0UmVzaXplckRldGFjaGVyKCk7ZS5mdWxsc2NyZWVuYWJsZS51bnN1YnNjcmliZSh0aGlzLl9ib3VuZFVwZGF0ZU1heGltaXplQnV0dG9uc1Zpc2liaWxpdHkpLGUuZnVsbHNjcmVlbi51bnN1YnNjcmliZSh0aGlzLl9ib3VuZFRvZ2dsZUZ1bGxzY3JlZW5CdXR0b25zKSx0aGlzLl9jaGFydD1udWxsfXVwZGF0ZVBvc2l0aW9uKCl7Y29uc3QgZT10aGlzLl90YXJnZXRQYW5lV2lkZ2V0PXRoaXMuX2dldFRhcmdldFBhbmVXaWRnZXQoKTtpZihudWxsPT09ZSlyZXR1cm47Y29uc3QgdD1lLmdldEVsZW1lbnQoKS5xdWVyeVNlbGVjdG9yKCIuY2hhcnQtbWFya3VwLXRhYmxlIC5wYW5lIik7aWYobnVsbD09PXQpcmV0dXJuO3RoaXMuX3BhbmVXaWR0aD1lLndpZHRoKCksdGhpcy5fbGVmdFByaWNlU2NhbGVXaWR0aD10aGlzLl9jaGFydC5nZXRQcmljZUF4aXNNYXhXaWR0aEJ5TmFtZSgibGVmdCIpLHRoaXMuX3JpZ2h0UHJpY2VTY2FsZVdpZHRoPXRoaXMuX2NoYXJ0LmdldFByaWNlQXhpc01heFdpZHRoQnlOYW1lKCJyaWdodCIpO2NvbnN0IGk9dGhpcy5fcGFyZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmJvdHRvbS10LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmJvdHRvbSt0aGlzLl9ib3R0b21NYXJnaW4oZSk7dGhpcy5fd2lkZ2V0LnN0eWxlLmJvdHRvbT1gJHtpfXB4YCx0aGlzLl9iYWNrLnN0eWxlLmJvdHRvbT1gJHtpfXB4YCx0aGlzLl91cGRhdGVCdG5Hcm91cFZpc2liaWxpdHkoKX1fZ2V0VGFyZ2V0UGFuZVdpZGdldCgpe2NvbnN0IGU9dGhpcy5fY2hhcnQubWF4aW1pemVkUGFuZVdpZGdldCgpO2lmKGUpcmV0dXJuIGU7Y29uc3QgdD1bLi4udGhpcy5fY2hhcnQucGFuZVdpZGdldHMoKV0ucmV2ZXJzZSgpO2Zvcihjb25zdCBlIG9mIHQpaWYoZS5oZWlnaHQoKT49dGhpcy5fd2lkZ2V0LmNsaWVudEhlaWdodCsyOCt0aGlzLl9ib3R0b21NYXJnaW4oZSkpcmV0dXJuIGU7cmV0dXJuIG51bGx9X2JvdHRvbU1hcmdpbihlKXtyZXR1cm4gZS5jb250YWluc01haW5TZXJpZXMoKT8yNzowfV9pbml0KCl7aWYocC5DaGVja01vYmlsZS5hbnkoKSlmb3IoY29uc3QgZSBvZiB0aGlzLl9idG5Hcm91cHMpZS5jbGFzc0xpc3QuYWRkKCJqcy1oaWRkZW4iKTt0aGlzLl9idXR0b25zPXt6b29tSW46dGhpcy5fd2lkZ2V0LnF1ZXJ5U2VsZWN0b3IoIi5jb250cm9sLWJhcl9fYnRuLS16b29tLWluIiksem9vbU91dDp0aGlzLl93aWRnZXQucXVlcnlTZWxlY3RvcigiLmNvbnRyb2wtYmFyX19idG4tLXpvb20tb3V0IiksbW92ZUxlZnQ6dGhpcy5fd2lkZ2V0LnF1ZXJ5U2VsZWN0b3IoIi5jb250cm9sLWJhcl9fYnRuLS1tb3ZlLWxlZnQiKSxtb3ZlUmlnaHQ6dGhpcy5fd2lkZ2V0LnF1ZXJ5U2VsZWN0b3IoIi5jb250cm9sLWJhcl9fYnRuLS1tb3ZlLXJpZ2h0IiksdHVybjp0aGlzLl93aWRnZXQucXVlcnlTZWxlY3RvcigiLmNvbnRyb2wtYmFyX19idG4tLXR1cm4tYnV0dG9uIiksbWF4aW1pemU6dGhpcy5fd2lkZ2V0LnF1ZXJ5U2VsZWN0b3IoIi5jb250cm9sLWJhcl9fYnRuLS1tYXhpbWl6ZSIpfSx0aGlzLl9wYXJlbnQuYXBwZW5kQ2hpbGQodGhpcy5fd2lkZ2V0KSwKdGhpcy5fcGFyZW50LmFwcGVuZENoaWxkKHRoaXMuX2JhY2spLHRoaXMuX3ByaWNlQXhpc05hbWU9KDAsZC5pc1J0bCkoKT8ibGVmdCI6InJpZ2h0Iix0aGlzLl9jaGFydC53aXRoTW9kZWwodGhpcywoKCk9Pnt0aGlzLl9jaGFydE1vZGVsPXRoaXMuX2NoYXJ0Lm1vZGVsKCksdGhpcy5faW5pdFZpc2liaWxpdHkoKSx0aGlzLl9wcmljZUF4aXNDaGFuZ2VkPXRoaXMuX2NoYXJ0LmdldFByaWNlQXhpc1dpZHRoQ2hhbmdlZEJ5TmFtZSh0aGlzLl9wcmljZUF4aXNOYW1lKSx0aGlzLl9wcmljZUF4aXNDaGFuZ2VkLnN1YnNjcmliZSh0aGlzLHRoaXMuX3VwZGF0ZUJhY2tCdG5Qb3NpdGlvbiksdGhpcy5fcmVzZXRTY2FsZXNBdmFpbGFibGU9dGhpcy5fY2hhcnRNb2RlbC5tb2RlbCgpLnJlc2V0U2NhbGVzQXZhaWxhYmxlKCkuc3Bhd24oKSx0aGlzLl9yZXNldFNjYWxlc0F2YWlsYWJsZS5zdWJzY3JpYmUodGhpcy5fdXBkYXRlUmVzZXRTY2FsZXNCdXR0b25WaXNpYmlsaXR5LmJpbmQodGhpcykse2NhbGxXaXRoTGFzdDohMH0pO2NvbnN0IGU9dGhpcy5fY2hhcnQuZ2V0UmVzaXplckRldGFjaGVyKCk7ZS5mdWxsc2NyZWVuYWJsZS5zdWJzY3JpYmUodGhpcy5fYm91bmRVcGRhdGVNYXhpbWl6ZUJ1dHRvbnNWaXNpYmlsaXR5KSxlLmZ1bGxzY3JlZW4uc3Vic2NyaWJlKHRoaXMuX2JvdW5kVG9nZ2xlRnVsbHNjcmVlbkJ1dHRvbnMse2NhbGxXaXRoTGFzdDohMH0pLHRoaXMuX3VwZGF0ZU1heGltaXplQnV0dG9uc1Zpc2liaWxpdHkoKSx0aGlzLl91cGRhdGVCYWNrQnRuUG9zaXRpb24oKSx0aGlzLl9iYWNrLnF1ZXJ5U2VsZWN0b3IoIi5jb250cm9sLWJhcl9fYnRuIik/LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKCk9Pnt0aGlzLl9jaGFydC5zY3JvbGxIZWxwZXIoKS5zY3JvbGxUb1JlYWx0aW1lKCEwLCgoKT0+dGhpcy5fY2hlY2tCYWNrQnV0dG9uVmlzaWJpbGl0eSgpKSl9KSl9KSl9X2luaXRIYW5kbGVycygpe2NvbnN0IGU9bi5tb2JpbGV0b3VjaD8idG91Y2hzdGFydCI6Im1vdXNlZG93biIsdD1uLm1vYmlsZXRvdWNoP1sidG91Y2hlbmQiXTpbIm1vdXNldXAiLCJtb3VzZW91dCJdO3RoaXMuX2J1dHRvbnMubW92ZUxlZnQuYWRkRXZlbnRMaXN0ZW5lcihlLChlPT57ZS5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuX2NoYXJ0LnNjcm9sbEhlbHBlcigpLm1vdmVCeUJhcigxKSx0aGlzLl90cmFja0V2ZW50KCJNb3ZlIExlZnQiKX0pKSx0aGlzLl9idXR0b25zLm1vdmVSaWdodC5hZGRFdmVudExpc3RlbmVyKGUsKGU9PntlLnByZXZlbnREZWZhdWx0KCksdGhpcy5fY2hhcnQuc2Nyb2xsSGVscGVyKCkubW92ZUJ5QmFyKC0xKSx0aGlzLl90cmFja0V2ZW50KCJNb3ZlIFJpZ2h0Iil9KSk7Zm9yKGNvbnN0IGUgb2YgdCl0aGlzLl9idXR0b25zLm1vdmVMZWZ0LmFkZEV2ZW50TGlzdGVuZXIoZSwoKCk9PnRoaXMuX2NoYXJ0LnNjcm9sbEhlbHBlcigpLnN0b3BNb3ZlKCkpKSx0aGlzLl9idXR0b25zLm1vdmVSaWdodC5hZGRFdmVudExpc3RlbmVyKGUsKCgpPT50aGlzLl9jaGFydC5zY3JvbGxIZWxwZXIoKS5zdG9wTW92ZSgpKSk7dGhpcy5fYnV0dG9ucy50dXJuLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoZT0+e2UucHJldmVudERlZmF1bHQoKSx0aGlzLl9jaGFydC5HVUlSZXNldFNjYWxlcygpLHRoaXMuX3RyYWNrRXZlbnQoIlJlc2V0IHRvIERlZmF1bHQgU2V0dGluZ3MiKX0pKSx0aGlzLl9idXR0b25zLnpvb21PdXQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLChlPT57ZS5wcmV2ZW50RGVmYXVsdCgpLG51bGwhPT10aGlzLl9jaGFydE1vZGVsJiZ0aGlzLl9jaGFydE1vZGVsLnpvb21PdXQoKSx0aGlzLl90cmFja0V2ZW50KCJab29tIE91dCIpfSkpLHRoaXMuX2J1dHRvbnMuem9vbUluLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoZT0+e2UucHJldmVudERlZmF1bHQoKSxudWxsIT09dGhpcy5fY2hhcnRNb2RlbCYmdGhpcy5fY2hhcnRNb2RlbC56b29tSW4oKSx0aGlzLl90cmFja0V2ZW50KCJab29tIEluIil9KSksdGhpcy5fYnV0dG9ucy5tYXhpbWl6ZS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKGU9PntlLnByZXZlbnREZWZhdWx0KCksdGhpcy5fY2hhcnQuc2V0QWN0aXZlKCEwKTt0aGlzLl9idXR0b25zLm1heGltaXplLmNsYXNzTGlzdC5jb250YWlucyhLKT8odGhpcy5fY2hhcnQuZ2V0UmVzaXplckRldGFjaGVyKCkuZXhpdEZ1bGxzY3JlZW4oKSx0aGlzLl90cmFja0V2ZW50KCIgUmVzdG9yZSBDaGFydCIpKToodGhpcy5fY2hhcnQuZ2V0UmVzaXplckRldGFjaGVyKCkucmVxdWVzdEZ1bGxzY3JlZW4oKSx0aGlzLl90cmFja0V2ZW50KCIgTWF4aW1pemUgQ2hhcnQiKSl9KSk7Y29uc3QgaT1lPT5lLmFkZEV2ZW50TGlzdGVuZXIoImNvbnRleHRtZW51IiwoZT0+ZS5wcmV2ZW50RGVmYXVsdCgpKSk7aSh0aGlzLl9idXR0b25zLm1vdmVMZWZ0KSxpKHRoaXMuX2J1dHRvbnMubW92ZVJpZ2h0KSxpKHRoaXMuX2J1dHRvbnMudHVybiksaSh0aGlzLl9idXR0b25zLnpvb21PdXQpLGkodGhpcy5fYnV0dG9ucy56b29tSW4pLGkodGhpcy5fYnV0dG9ucy5tYXhpbWl6ZSl9X2luaXRHcm91cERlc2NyaXB0aW9ucygpe3JldHVyblt7c2hvdWxkQmVIaWRkZW5Pbk1vYmlsZTohMSxhdmFpbGFibGU6dGhpcy5faXNNYXhpbWl6ZUJ1dHRvbkF2YWlsYWJsZS5iaW5kKHRoaXMpLGNsYXNzTmFtZToianMtYnRuLWdyb3VwLW1heGltaXplIixlbGVtZW50OnRoaXMuX2dldEJ0bkdyb3VwKCJqcy1idG4tZ3JvdXAtbWF4aW1pemUiKSx0b3RhbFdpZHRoOjUwfSx7c2hvdWxkQmVIaWRkZW5Pbk1vYmlsZTohMSxhdmFpbGFibGU6KCk9PnRoaXMuX29wdGlvbnMucmVzZXRTY2FsZSxjbGFzc05hbWU6ImpzLWJ0bi1ncm91cC1yZXNldC1zY2FsZSIsZWxlbWVudDp0aGlzLl9nZXRCdG5Hcm91cCgianMtYnRuLWdyb3VwLXJlc2V0LXNjYWxlIiksdG90YWxXaWR0aDo1MH0se3Nob3VsZEJlSGlkZGVuT25Nb2JpbGU6ISgwLGEuaXNGZWF0dXJlc2V0RW5hYmxlZCkoInNob3dfem9vbV9hbmRfbW92ZV9idXR0b25zX29uX3RvdWNoIiksYXZhaWxhYmxlOigpPT50aGlzLl9vcHRpb25zLnpvb21Jbk91dCwKY2xhc3NOYW1lOiJqcy1idG4tZ3JvdXAtem9vbSIsZWxlbWVudDp0aGlzLl9nZXRCdG5Hcm91cCgianMtYnRuLWdyb3VwLXpvb20iKSx0b3RhbFdpZHRoOjg2fSx7c2hvdWxkQmVIaWRkZW5Pbk1vYmlsZTohKDAsYS5pc0ZlYXR1cmVzZXRFbmFibGVkKSgic2hvd196b29tX2FuZF9tb3ZlX2J1dHRvbnNfb25fdG91Y2giKSxhdmFpbGFibGU6KCk9PnRoaXMuX29wdGlvbnMuc2Nyb2xsTGVmdFJpZ2h0LGNsYXNzTmFtZToianMtYnRuLWdyb3VwLXNjcm9sbCIsZWxlbWVudDp0aGlzLl9nZXRCdG5Hcm91cCgianMtYnRuLWdyb3VwLXNjcm9sbCIpLHRvdGFsV2lkdGg6ODZ9XX1fY2hlY2tCYWNrQnV0dG9uVmlzaWJpbGl0eSgpe2lmKG51bGw9PT10aGlzLl9jaGFydE1vZGVsfHwhdGhpcy5fb3B0aW9ucy5nb1RvUmVhbHRpbWUpcmV0dXJuO2NvbnN0IGU9dGhpcy5fYmFja0J1dHRvbkNhbkJlVmlzaWJsZSYmdGhpcy5fY2hhcnRNb2RlbC50aW1lU2NhbGUoKS5yaWdodE9mZnNldCgpPDA7ZSE9PXRoaXMuX2JhY2tCdXR0b25WaXNpYmxlJiYodGhpcy5fYmFja0J1dHRvblZpc2libGU9ZSx0aGlzLl9iYWNrLnF1ZXJ5U2VsZWN0b3IoIi5jb250cm9sLWJhcl9fYnRuIik/LmNsYXNzTGlzdC50b2dnbGUoUSwhdGhpcy5fYmFja0J1dHRvblZpc2libGUpKX1faW5pdFZpc2liaWxpdHkoKXt0aGlzLl92aXNpYmlsaXR5VHlwZVByb3BlcnR5PSgwLGwuY29tYmluZSkoKChlLHQpPT5udWxsIT09dD8iYWx3YXlzT2ZmIjplKSwoMCxjLmNvbnZlcnRQcm9wZXJ0eVRvV2F0Y2hlZFZhbHVlKSgoMCxyLmFjdHVhbEJlaGF2aW9yKSgpKS5vd25lcnNoaXAoKSwoMCxnLmdldFNlcmllc0Rpc3BsYXlFcnJvcldWKSgoMCxzLmVuc3VyZU5vdE51bGwpKHRoaXMuX2NoYXJ0TW9kZWwpLm1haW5TZXJpZXMoKSkub3duZXJzaGlwKCkpLHRoaXMuX3Zpc2liaWxpdHlUeXBlUHJvcGVydHkuc3Vic2NyaWJlKHRoaXMuX29uVmlzaWJpbGl0eVR5cGVDaGFuZ2Use2NhbGxXaXRoTGFzdDohMH0pfV9jb25maWd1cmVCYWNrQnV0dG9uVmlzaWJpbGl0eShlKXsiYWx3YXlzT2ZmIj09PWU/KGNsZWFySW50ZXJ2YWwodGhpcy5fY2hlY2tJbnRlcnZhbElkKSx0aGlzLl9jaGVja0ludGVydmFsSWQ9dm9pZCAwKTp0aGlzLl9jaGVja0ludGVydmFsSWQ9dGhpcy5fY2hlY2tJbnRlcnZhbElkPz9zZXRJbnRlcnZhbCgoKCk9PnRoaXMuX2NoZWNrQmFja0J1dHRvblZpc2liaWxpdHkoKSksMWUzKSxwLkNoZWNrTW9iaWxlLmFueSgpP3RoaXMuX2JhY2tCdXR0b25DYW5CZVZpc2libGU9ImFsd2F5c09mZiIhPT1lOiJhbHdheXNPbiI9PT1lfHwiYWx3YXlzT2ZmIj09PWU/KHRoaXMuX2JhY2tCdXR0b25DYW5CZVZpc2libGU9ImFsd2F5c09uIj09PWUsdGhpcy5fcGFyZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIsdGhpcy5fdmlzaWJpbGl0eUJhY2tCdXR0b25IYW5kbGVyLCExKSx0aGlzLl9wYXJlbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2VsZWF2ZSIsdGhpcy5fdmlzaWJpbGl0eUJhY2tCdXR0b25IYW5kbGVyLCExKSk6KHRoaXMuX2JhY2tCdXR0b25DYW5CZVZpc2libGU9ITEsdGhpcy5fcGFyZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIsdGhpcy5fdmlzaWJpbGl0eUJhY2tCdXR0b25IYW5kbGVyKSx0aGlzLl9wYXJlbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2VsZWF2ZSIsdGhpcy5fdmlzaWJpbGl0eUJhY2tCdXR0b25IYW5kbGVyKSksdGhpcy5fY2hlY2tCYWNrQnV0dG9uVmlzaWJpbGl0eSgpfV9jaGVja0lzUG9pbnRlck5lYXJCb3goZSx0KXtpZighKGUuYnV0dG9uc3x8bnVsbCE9PXRoaXMuX2NoYXJ0TW9kZWwmJnRoaXMuX2NoYXJ0TW9kZWwubGluZUJlaW5nQ3JlYXRlZCgpKSl7aWYoIm1vdXNlbW92ZSI9PT1lLnR5cGUpe2NvbnN0IGk9MTAwLSh0aGlzLl90YXJnZXRQYW5lV2lkZ2V0P3RoaXMuX2JvdHRvbU1hcmdpbih0aGlzLl90YXJnZXRQYW5lV2lkZ2V0KTowKTtyZXR1cm4gZS5jbGllbnRYPj10LmxlZnQtMTAwJiZlLmNsaWVudFg8PXQucmlnaHQrMTAwJiZlLmNsaWVudFk+PXQudG9wLWkmJmUuY2xpZW50WTw9dC5ib3R0b20rMTAwfXJldHVybiExfX1fc2V0UkFGKCl7bnVsbD09PXRoaXMuX3JhZklkJiYodGhpcy5fcmFmSWQ9dGhpcy5fd2lkZ2V0Lm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXcucmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgoKT0+e3RoaXMuX2NoZWNrQmFja0J1dHRvblZpc2liaWxpdHkoKSx0aGlzLl91cGRhdGVDb250cm9sQmFyVmlzaWJpbGl0eSgpLHRoaXMuX3JhZklkPW51bGx9KSkpfV91cGRhdGVCYWNrQnRuUG9zaXRpb24oKXtpZigibGVmdCI9PT10aGlzLl9wcmljZUF4aXNOYW1lfHwicmlnaHQiPT09dGhpcy5fcHJpY2VBeGlzTmFtZSl7Y29uc3QgZT10aGlzLl9jaGFydC5nZXRQcmljZUF4aXNNYXhXaWR0aEJ5TmFtZSh0aGlzLl9wcmljZUF4aXNOYW1lKSsxNDtlJiYodGhpcy5fYmFjay5zdHlsZS5tYXJnaW5SaWdodD1gJHtlfXB4YCl9fV91cGRhdGVCdG5Hcm91cFZpc2liaWxpdHkoKXtjb25zdCBlPXRoaXMuX2xlZnRQcmljZVNjYWxlV2lkdGgrdGhpcy5fcGFuZVdpZHRoLHQ9KGUrdGhpcy5fcmlnaHRQcmljZVNjYWxlV2lkdGgpLzI7bGV0IGk9MipNYXRoLm1pbihlLXQsdC10aGlzLl9sZWZ0UHJpY2VTY2FsZVdpZHRoKS01MC01MCxzPSExO2Zvcihjb25zdCBlIG9mIHRoaXMuX3Zpc2liaWxpdHlQcmlvcml0aXplZEdyb3Vwcyl7ZS5lbm91Z2hTcGFjZUZvckdyb3VwPSExO2UuYXZhaWxhYmxlKCkmJighJHx8IWUuc2hvdWxkQmVIaWRkZW5Pbk1vYmlsZSkmJihpLT1lLnRvdGFsV2lkdGgsZS5lbm91Z2hTcGFjZUZvckdyb3VwPWk+PTAmJiFzLHM9c3x8IWUuZW5vdWdoU3BhY2VGb3JHcm91cCksIWUuZW5vdWdoU3BhY2VGb3JHcm91cCE9PWUuZWxlbWVudC5jbGFzc0xpc3QuY29udGFpbnMoImpzLWhpZGRlbiIpJiZlLmVsZW1lbnQuY2xhc3NMaXN0LnRvZ2dsZSgianMtaGlkZGVuIiwhZS5lbm91Z2hTcGFjZUZvckdyb3VwKX10aGlzLl91cGRhdGVDb250cm9sQmFyUG9zaXRpb24oKX1fZ2V0QnRuR3JvdXAoZSl7cmV0dXJuKDAsCnMuZW5zdXJlRGVmaW5lZCkodGhpcy5fYnRuR3JvdXBzLmZpbmQoKHQ9PnQuY2xhc3NMaXN0LmNvbnRhaW5zKGUpKSkpfV91cGRhdGVDb250cm9sQmFyUG9zaXRpb24oKXtjb25zdCBlPXRoaXMuX3Zpc2liaWxpdHlQcmlvcml0aXplZEdyb3Vwcy5yZWR1Y2UoKChlLHQpPT5lKyh0LmVub3VnaFNwYWNlRm9yR3JvdXA/dC50b3RhbFdpZHRoOjApKSwwKSx0PSh0aGlzLl9wYW5lV2lkdGgrdGhpcy5fbGVmdFByaWNlU2NhbGVXaWR0aCt0aGlzLl9yaWdodFByaWNlU2NhbGVXaWR0aCkvMi1NYXRoLmNlaWwoZS8yKTt0aGlzLl93aWRnZXQuc3R5bGUubGVmdD1gJHt0fXB4YH1fdXBkYXRlUmVzZXRTY2FsZXNCdXR0b25WaXNpYmlsaXR5KCl7aWYobnVsbD09PXRoaXMuX2NoYXJ0TW9kZWwpcmV0dXJuO2NvbnN0IGU9dGhpcy5fY2hhcnRNb2RlbC5tb2RlbCgpLnJlc2V0U2NhbGVzQXZhaWxhYmxlKCkudmFsdWUoKTt0aGlzLl9idXR0b25zLnR1cm4uY2xhc3NMaXN0LnRvZ2dsZShRLCFlKX1fdXBkYXRlTWF4aW1pemVCdXR0b25zVmlzaWJpbGl0eSgpe3RoaXMuX3VwZGF0ZUJ0bkdyb3VwVmlzaWJpbGl0eSgpfV90b2dnbGVGdWxsc2NyZWVuQnV0dG9ucygpe2NvbnN0IGU9dGhpcy5fY2hhcnQuaW5GdWxsc2NyZWVuKCk7dGhpcy5fYnV0dG9ucy5tYXhpbWl6ZS5jbGFzc0xpc3QudG9nZ2xlKEssZSksdGhpcy5fYnV0dG9ucy5tYXhpbWl6ZS50aXRsZT1lP0Y6T31faXNNYXhpbWl6ZUJ1dHRvbkF2YWlsYWJsZSgpe3JldHVybiEhdGhpcy5fb3B0aW9ucy5tYXhpbWl6ZSYmKCEhdGhpcy5fY2hhcnQuZ2V0UmVzaXplckRldGFjaGVyKCkuZnVsbHNjcmVlbmFibGUudmFsdWUoKSYmIWIubWVkaWFTdGF0ZS5pc1Bob25lU2l6ZURldmljZSgpKX1fdHJhY2tFdmVudChlKXt0aGlzLl9jaGFydC5vbldpZGdldCgpfHwoMCxtLnRyYWNrRXZlbnQpKCJOYXZpZ2F0aW9uIGJ1dHRvbiIsZSl9fX0sMzA1NjQwKGUsdCxpKXsidXNlIHN0cmljdCI7aS5kKHQse2ljb25zOigpPT5vfSk7dmFyIHM9aSg3ODMyNTQpO2NvbnN0IG89W3tpY29uOiLwn5S2IixsYWJlbDpzLnQobnVsbCx2b2lkIDAsaSg0NzkwNzgpKX0se2ljb246IvCfjYAiLGxhYmVsOnMudChudWxsLHZvaWQgMCxpKDc2MDUpKX0se2ljb246IvCfkqciLGxhYmVsOnMudChudWxsLHZvaWQgMCxpKDU3MzM0NykpfSx7aWNvbjoi4p2k77iPIixsYWJlbDpzLnQobnVsbCx2b2lkIDAsaSg2MTUyMjEpKX0se2ljb246IvCfkqkiLGxhYmVsOnMudChudWxsLHZvaWQgMCxpKDkyMzkwOSkpfV19LDY3MTgxOChlLHQsaSl7InVzZSBzdHJpY3QiO2kuZCh0LHtMZWdlbmRXaWRnZXQ6KCk9PmJzfSk7dmFyIHM9aSg5MTg3NzkpLG89aSg1ODcxNjgpLG49aSgxMzg2MzgpLGE9aSg2MDE4NDEpLGw9aSg5MzAyMzEpLHI9aSgyMzIzNjQpLGQ9aSg5NTI5MDApLHU9aSg5NDgzODApLGM9aSgxMzQ2NyksaD1pKDIzNTcyNCkscD1pKDkwMDg0MSksXz1pKDMxODk3NCk7ZnVuY3Rpb24gZyhlLHQpe251bGw9PT1lLmZpcnN0Q2hpbGQ/ZS50ZXh0Q29udGVudD10OmUuZmlyc3RDaGlsZC5ub2RlVmFsdWU9dH12YXIgbT1pKDMyOTY2OCksYj1pKDk4MzYxNiksdj1pKDgwMDIyNiksZj1pKDM0NDc4NSksUz1pKDc3OTQ3NCkseT1pKDEyOTM2NSksdz1pKDczNDgyKTtmdW5jdGlvbiBDKGUpe2NvbnN0e2NvbnRhaW5lcjp0LC4uLml9PWU7cmV0dXJuIHkucmVuZGVyKFMuY3JlYXRlRWxlbWVudCh3LlN0YXR1c2VzUGlsbCx7Li4uaX0pLHQpLCgpPT57eS51bm1vdW50Q29tcG9uZW50QXROb2RlKHQpLGUuc2hvd1Rvb2x0aXBPdmVycmlkZUNhbGxiYWNrPy4oITApfX12YXIgRT1pKDM4NzIzMSkseD1pKDY2MzQpO2NvbnN0IEw9di50cmFja2luZ01vZGVJc0F2YWlsYWJsZT80NDoyODt2YXIgTSxUOyFmdW5jdGlvbihlKXtlW2UuVGlueT0xXT0iVGlueSIsZVtlLlNtYWxsPTJdPSJTbWFsbCIsZVtlLk1lZGl1bT0zXT0iTWVkaXVtIixlW2UuTGFyZ2U9NF09IkxhcmdlIn0oTXx8KE09e30pKSxmdW5jdGlvbihlKXtlW2UuTm9JbnRlcnZhbEZvck11bHRpQ2hhcnQ9MV09Ik5vSW50ZXJ2YWxGb3JNdWx0aUNoYXJ0IixlW2UuTm9FeGNoYW5nZVByb3ZpZGVyQW5kSW50ZXJ2YWw9Ml09Ik5vRXhjaGFuZ2VQcm92aWRlckFuZEludGVydmFsIixlW2UuQWxsVmlzaWJsZT0zXT0iQWxsVmlzaWJsZSJ9KFR8fChUPXt9KSk7dmFyIFYsayxBPWkoNjQwMjkyKSxXPWkoOTU2MzY4KSxJPWkoNTgyNDc2KTshZnVuY3Rpb24oZSl7ZVtlLlNlcmllc1RpdGxlPTBdPSJTZXJpZXNUaXRsZSIsZVtlLlNlcmllc0Rlc2NyaXB0aW9uPTFdPSJTZXJpZXNEZXNjcmlwdGlvbiIsZVtlLlNlcmllc0ludGVydmFsPTJdPSJTZXJpZXNJbnRlcnZhbCIsZVtlLlNlcmllc1Byb3ZpZGVyPTNdPSJTZXJpZXNQcm92aWRlciIsZVtlLlNlcmllc0V4Y2hhbmdlPTRdPSJTZXJpZXNFeGNoYW5nZSIsZVtlLlNlcmllc1N0eWxlPTVdPSJTZXJpZXNTdHlsZSIsZVtlLlNlcmllc1ByaWNlU291cmNlPTZdPSJTZXJpZXNQcmljZVNvdXJjZSIsZVtlLkRhdGFTb3VyY2VUaXRsZT03XT0iRGF0YVNvdXJjZVRpdGxlIixlW2UuRGF0YVNvdXJjZVN5bWJvbFRpdGxlPThdPSJEYXRhU291cmNlU3ltYm9sVGl0bGUiLGVbZS5EYXRhU291cmNlRXh0cmFUaXRsZT05XT0iRGF0YVNvdXJjZUV4dHJhVGl0bGUiLGVbZS5EYXRhU291cmNlSW5wdXQ9MTBdPSJEYXRhU291cmNlSW5wdXQifShWfHwoVj17fSkpLGZ1bmN0aW9uKGUpe2UuU21hbGw9InNtYWxsIixlLkxhcmdlPSJsYXJnZSJ9KGt8fChrPXt9KSk7dmFyIEI9aSg0MDIwNDUpLEg9aSg4NDg5ODgpLEQ9aSg4NzM1NzMpLFA9aSgxODUyNzEpLE49aSg1NzA2MDMpLFI9aSgzODY5MzEpO2Z1bmN0aW9uIE8oZSl7KDAsUi50cmFja0V2ZW50KSgiR1VJIiwiTGVnZW5kIGFjdGlvbiIsZSl9dmFyIEY9aSg5NjkxNjgpLHo9aSg5NDM5NSk7ZnVuY3Rpb24gaihlKXtyZXR1cm4oMCxhLmlzT2JqZWN0KShlKSYmIml0ZW1zImluIGV9ZnVuY3Rpb24gVShlKXtyZXR1cm4gdm9pZCAwIT09ZT9ELnJlc2V0VHJhbnNwYXJlbmN5KGUpOmV9ZnVuY3Rpb24gRyhlKXtyZXR1cm4gZS5oYXNPd25Qcm9wZXJ0eSgidG91Y2hlcyIpfQpjb25zdCBaPW5ldyBOLlRyYW5zbGF0ZWRTdHJpbmcoInNob3cge3RpdGxlfSIsUC50KG51bGwsdm9pZCAwLGkoNzI1MDkpKSksSj1uZXcgTi5UcmFuc2xhdGVkU3RyaW5nKCJoaWRlIHt0aXRsZX0iLFAudChudWxsLHZvaWQgMCxpKDU4OTgxNSkpKSxZPVAudChudWxsLHZvaWQgMCxpKDg5NzMwOSkpLHE9UC50KG51bGwsdm9pZCAwLGkoNzY5MzkxKSk7Y2xhc3MgJHtjb25zdHJ1Y3RvcihlLHQsaSxzLG8pe3RoaXMuX3RpdGxlcz1uZXcgQi5XYXRjaGVkT2JqZWN0KFtdKSx0aGlzLl92YWx1ZXM9bmV3IHIuV2F0Y2hlZFZhbHVlKFtdKSx0aGlzLl9hY3Rpb25zPVtdLHRoaXMuX2xvYWRpbmc9bmV3IHIuV2F0Y2hlZFZhbHVlKCExKSx0aGlzLl9zeW1ib2xMb2dvVmlld01vZGVsPW5ldyByLldhdGNoZWRWYWx1ZShudWxsKSx0aGlzLl9kZXN0cm95ZWQ9ITEsdGhpcy5fbW9yZUFjdGlvbkFib3J0Q29udHJvbGxlcj1udWxsLHRoaXMuX29uU2hvd1NldHRpbmdzQWJvcnRDb250cm9sbGVyPW51bGwsdGhpcy5fdXBkYXRlTG9hZGluZ1N0YXR1cz0oKT0+e3RoaXMuX2xvYWRpbmcuc2V0VmFsdWUodGhpcy5fc291cmNlLmlzTG9hZGluZygpKX0sdGhpcy5fbW9kZWw9ZSx0aGlzLl9zb3VyY2U9dCx0aGlzLl9vcHRpb25zPWksdGhpcy5fY2FsbGJhY2tzPXMsdGhpcy5fY29udGV4dE1lbnVPcHRpb25zPW8sdGhpcy5fZGlzYWJsZWQ9bmV3IHIuV2F0Y2hlZFZhbHVlKHRoaXMuX2dldERpc2FibGVkU3RhdGUoKSksdGhpcy5fZGlzYWJsZWRPbkludGVydmFsPW5ldyByLldhdGNoZWRWYWx1ZSh0aGlzLl9nZXREaXNhYmxlZE9uSW50ZXJ2YWxTdGF0ZSgpKSx0aGlzLl9zZWxlY3RlZD1uZXcgci5XYXRjaGVkVmFsdWUoITEpLHRoaXMuX2lzVGl0bGVIaWRkZW49bmV3IHIuV2F0Y2hlZFZhbHVlKHRoaXMuX2dldFRpdGxlSGlkZGVuVmFsdWUoKSksdGhpcy5faXNWYWx1ZXNIaWRkZW49bmV3IHIuV2F0Y2hlZFZhbHVlKHRoaXMuX2dldFZhbHVlc0hpZGRlblZhbHVlKCkpLHRoaXMuX2lzUm93SGlkZGVuPW5ldyByLldhdGNoZWRWYWx1ZSh0aGlzLl9nZXRSb3dIaWRkZW5WYWx1ZSgpKSx0aGlzLl9pc0VkaXRhYmxlPW5ldyByLldhdGNoZWRWYWx1ZSh0aGlzLl9nZXRJc0VkaXRhYmxlKCkpLCgwLGQuY29tYmluZSkoKChlLHQsaSk9Pih7fSkpLHRoaXMuX2lzVGl0bGVIaWRkZW4ud2Vha1JlZmVyZW5jZSgpLHRoaXMuX2lzVmFsdWVzSGlkZGVuLndlYWtSZWZlcmVuY2UoKSx0aGlzLl9kaXNhYmxlZC53ZWFrUmVmZXJlbmNlKCkpLnN1YnNjcmliZSh0aGlzLl91cGRhdGVSb3dWaXNpYmlsaXRpZXMuYmluZCh0aGlzKSksdGhpcy5fdmFsdWVzLnN1YnNjcmliZSgoKCk9Pnt0aGlzLl9pc1ZhbHVlc0hpZGRlbi5zZXRWYWx1ZSh0aGlzLl9nZXRWYWx1ZXNIaWRkZW5WYWx1ZSgpKX0pKX1kZXN0cm95KCl7dGhpcy5fc3ltYm9sTG9nb1ZpZXdNb2RlbC52YWx1ZSgpPy5kZXN0cm95KCksdGhpcy5fZGVzdHJveWVkPSEwfXRpdGxlcygpe3JldHVybiB0aGlzLl90aXRsZXMucmVhZG9ubHkoKX12YWx1ZXMoKXtyZXR1cm4gdGhpcy5fdmFsdWVzLnJlYWRvbmx5KCl9YWN0aW9ucygpe3JldHVybiB0aGlzLl9hY3Rpb25zfWRpc2FibGVkKCl7cmV0dXJuIHRoaXMuX2Rpc2FibGVkLnJlYWRvbmx5KCl9ZGlzYWJsZWRPbkludGVydmFsKCl7cmV0dXJuIHRoaXMuX2Rpc2FibGVkT25JbnRlcnZhbC5yZWFkb25seSgpfXNlbGVjdGVkKCl7cmV0dXJuIHRoaXMuX3NlbGVjdGVkLnJlYWRvbmx5KCl9bG9hZGluZygpe3JldHVybiB0aGlzLl9sb2FkaW5nLnJlYWRvbmx5KCl9aXNUaXRsZUhpZGRlbigpe3JldHVybiB0aGlzLl9pc1RpdGxlSGlkZGVuLnJlYWRvbmx5KCl9aXNSb3dIaWRkZW4oKXtyZXR1cm4gdGhpcy5faXNSb3dIaWRkZW4ucmVhZG9ubHkoKX1pc0VkaXRhYmxlKCl7cmV0dXJuIHRoaXMuX2lzRWRpdGFibGUucmVhZG9ubHkoKX1zeW1ib2xMb2dvVmlld01vZGVsKCl7cmV0dXJuIHRoaXMuX3N5bWJvbExvZ29WaWV3TW9kZWx9dXBkYXRlKCl7dGhpcy5fdXBkYXRlVGl0bGVzKCksdGhpcy5fdXBkYXRlVmFsdWVzKCksdGhpcy5fdXBkYXRlU3RhdGVzKCksdGhpcy5zeW1ib2xMb2dvVmlld01vZGVsKCk/LnZhbHVlKCk/LnVwZGF0ZSgpfW9uVG9nZ2xlRGlzYWJsZWQoKXtjb25zdCBlPXRoaXMuX3NvdXJjZS5wcm9wZXJ0aWVzKCkuY2hpbGRzKCkudmlzaWJsZSx0PSFlLnZhbHVlKCk7dGhpcy5fbW9kZWwuc2V0UHJvcGVydHkoZSx0LCh0P1o6SikuZm9ybWF0KHt0aXRsZTpuZXcgTi5UcmFuc2xhdGVkU3RyaW5nKHRoaXMuX3NvdXJjZS5uYW1lKCksdGhpcy5fc291cmNlLnRpdGxlKHouVGl0bGVEaXNwbGF5VGFyZ2V0LlN0YXR1c0xpbmUpKX0pKSxPKCh0PyJTaG93IjoiSGlkZSIpKyIgc291cmNlIil9YXN5bmMgb25TaG93U2V0dGluZ3MoZSx0KXtpZighdGhpcy5fc291cmNlLnVzZXJFZGl0RW5hYmxlZCgpKXJldHVybjtjb25zdCBpPWV8fCJzZXR0aW5ncyI7dGhpcy5fb25TaG93U2V0dGluZ3NBYm9ydENvbnRyb2xsZXImJiF0aGlzLl9vblNob3dTZXR0aW5nc0Fib3J0Q29udHJvbGxlci5zaWduYWwuYWJvcnRlZCYmdGhpcy5fb25TaG93U2V0dGluZ3NBYm9ydENvbnRyb2xsZXIuYWJvcnQoaSk7Y29uc3Qgcz10aGlzLl9vblNob3dTZXR0aW5nc0Fib3J0Q29udHJvbGxlcj1uZXcgQWJvcnRDb250cm9sbGVyO3QmJnMuc2lnbmFsLmFkZEV2ZW50TGlzdGVuZXIoImFib3J0IiwoKCk9PntzLnNpZ25hbC5yZWFzb24hPT1pJiZ0KCl9KSx7b25jZTohMH0pO2NvbnN0IG89KCk9PnMuYWJvcnQoKTtPKCJTZXR0aW5ncyBmb3Igc291cmNlIiksdGhpcy5zZXRTb3VyY2VTZWxlY3RlZCgpO3RyeXtjb25zdCB0PWF3YWl0IHRoaXMuX2NhbGxiYWNrcy5zaG93Q2hhcnRQcm9wZXJ0aWVzRm9yU291cmNlKHRoaXMuX3NvdXJjZSxlKTt0JiYodC52aXNpYmxlKCkuc3Vic2NyaWJlKG8se29uY2U6ITB9KSxzLnNpZ25hbC5hZGRFdmVudExpc3RlbmVyKCJhYm9ydCIsKCgpPT57dC52aXNpYmxlKCkudW5zdWJzY3JpYmUobyksdC5oaWRlKCl9KSx7b25jZTohMH0pKX1jYXRjaHtvKCl9fXNldFNvdXJjZVNlbGVjdGVkKCl7dGhpcy5fbW9kZWwuc2VsZWN0aW9uTWFjcm8oKGU9PnsKZS5jbGVhclNlbGVjdGlvbigpLGUuYWRkSXRlbVRvU2VsZWN0aW9uKHRoaXMuX3NvdXJjZSl9KSl9Y2hhcnRNb2RlbElkKCl7cmV0dXJuIHRoaXMuX21vZGVsLmlkKCl9YXN5bmMgX21vcmVBY3Rpb25IYW5kbGVyKGUsdCl7aWYoIXRoaXMuX29wdGlvbnMucmVhZE9ubHlNb2RlKWlmKGUucHJldmVudERlZmF1bHQoKSwhdGhpcy5fbW9yZUFjdGlvbkFib3J0Q29udHJvbGxlcnx8dGhpcy5fbW9yZUFjdGlvbkFib3J0Q29udHJvbGxlci5zaWduYWwuYWJvcnRlZCl7Y29uc3QgaT10aGlzLl9tb3JlQWN0aW9uQWJvcnRDb250cm9sbGVyPW5ldyBBYm9ydENvbnRyb2xsZXI7aS5zaWduYWwuYWRkRXZlbnRMaXN0ZW5lcigiYWJvcnQiLHQse29uY2U6ITB9KTtjb25zdCBzPSgpPT5pLmFib3J0KCk7dGhpcy5zZXRTb3VyY2VTZWxlY3RlZCgpO3RyeXtjb25zdCB0PWF3YWl0IHRoaXMuX29uU2hvd01vcmVBY3Rpb25zKGUscyk7aS5zaWduYWwuYWJvcnRlZCYmdCYmdC5oaWRlKCl9Y2F0Y2h7cygpfX1lbHNlIHRoaXMuX21vcmVBY3Rpb25BYm9ydENvbnRyb2xsZXIuYWJvcnQoKX1fdXBkYXRlU3RhdGVzKCl7dGhpcy5fZGlzYWJsZWQuc2V0VmFsdWUodGhpcy5fZ2V0RGlzYWJsZWRTdGF0ZSgpKSx0aGlzLl9kaXNhYmxlZE9uSW50ZXJ2YWwuc2V0VmFsdWUodGhpcy5fZ2V0RGlzYWJsZWRPbkludGVydmFsU3RhdGUoKSksdGhpcy5fc2VsZWN0ZWQuc2V0VmFsdWUodGhpcy5fbW9kZWwuc2VsZWN0aW9uKCkuaXNTZWxlY3RlZCh0aGlzLl9zb3VyY2UpKSx0aGlzLl9pc0VkaXRhYmxlLnNldFZhbHVlKHRoaXMuX2dldElzRWRpdGFibGUoKSksdGhpcy5fdXBkYXRlTG9hZGluZ1N0YXR1cygpfV9oYXNWYWx1ZXMoKXtyZXR1cm4gdGhpcy5fdmFsdWVzLnZhbHVlKCkubGVuZ3RoPjB9X2dldEV5ZVRpdGxlKCl7cmV0dXJuIHRoaXMuX2Rpc2FibGVkLnZhbHVlKCk/WTpxfV9nZXRJc0VkaXRhYmxlKCl7cmV0dXJuIHRoaXMuX3NvdXJjZS51c2VyRWRpdEVuYWJsZWQoKX1fZ2V0RGlzYWJsZWRTdGF0ZSgpe3JldHVybiF0aGlzLl9zb3VyY2UucHJvcGVydGllcygpLnZpc2libGUudmFsdWUoKX1fdXBkYXRlUm93VmlzaWJpbGl0aWVzKCl7dGhpcy5faXNSb3dIaWRkZW4uc2V0VmFsdWUodGhpcy5fZ2V0Um93SGlkZGVuVmFsdWUoKSl9X2dldFJvd0hpZGRlblZhbHVlKCl7cmV0dXJuIHRoaXMuX29wdGlvbnMucmVhZE9ubHlNb2RlJiZ0aGlzLl9kaXNhYmxlZC52YWx1ZSgpfHx0aGlzLl9pc1RpdGxlSGlkZGVuLnZhbHVlKCkmJih0aGlzLl9pc1ZhbHVlc0hpZGRlbi52YWx1ZSgpfHx0aGlzLl9kaXNhYmxlZC52YWx1ZSgpKX1hc3luYyBfb25TaG93TW9yZUFjdGlvbnMoZSx0KXtyZXR1cm4gTygiU2hvdyBzb3VyY2UgY29udGV4dCBtZW51IiksdGhpcy5fY2FsbGJhY2tzLnNob3dDb250ZXh0TWVudUZvclNvdXJjZXMoW3RoaXMuX3NvdXJjZV0sdGhpcy5fY2FsY05ld1Bvc2l0aW9uKGUpLHsuLi50aGlzLl9jb250ZXh0TWVudU9wdGlvbnMsaXNLZXlib2FyZEV2ZW50OiFHKGUpJiYoMCxILmlzS2V5Ym9hcmRDbGljaykoZSl9LHtvcmlnaW46IkxlZ2VuZFByb3BlcnRpZXNDb250ZXh0TWVudSIsb25DbG9zZTp0fSl9X2NhbGNOZXdQb3NpdGlvbihlKXtsZXQgdD17fTtpZihHKGUpJiZlLnRvdWNoZXMubGVuZ3RoPjApdD17Y2xpZW50WDplLnRvdWNoZXNbMF0uY2xpZW50WCxjbGllbnRZOmUudG91Y2hlc1swXS5jbGllbnRZfTtlbHNlIGlmKG51bGwhPT1lLnRhcmdldCl7Y29uc3QgaT1lLnRhcmdldC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTt0PXtjbGllbnRYOigwLEYuaXNSdGwpKCk/aS5yaWdodDppLmxlZnQsY2xpZW50WTppLnRvcCtpLmhlaWdodCszfX1lbHNle2NvbnN0IGk9ZTt0PXtjbGllbnRYOmkuY2xpZW50WCxjbGllbnRZOmkuY2xpZW50WX19cmV0dXJuIHR9fXZhciBRPWkoNjQ5MTY2KSxLPWkoMzM2MzM0KSxYPWkoNzcyMDI4KTtjb25zdCBlZT0odGU9US5Mb2FkZXIsaWU9e3N0YXRpY1Bvc2l0aW9uOiEwLHNpemU6InNtYWxsIn0sKGUsdCk9PmZ1bmN0aW9uKGUsdCxpLHMpe2NvbnN0IG89ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpLG49KDAsSy5jcmVhdGVSb290KShvKTtsKCExKTtjb25zdHtjbGFzc05hbWU6YX09cz8/e307cmV0dXJuIGEmJm8uY2xhc3NMaXN0LmFkZChhKSxuLnJlbmRlcigoMCxTLmNyZWF0ZUVsZW1lbnQpKHQsaSkpLGUmJnIoZSkse3RvZ2dsZVZpc2liaWxpdHk6bCxkZXN0cm95OmZ1bmN0aW9uKCl7bi51bm1vdW50KCl9LG1vdW50VG86cn07ZnVuY3Rpb24gbChlKXtvLmNsYXNzTGlzdC50b2dnbGUoWC5ibG9ja0hpZGRlbiwhZSl9ZnVuY3Rpb24gcihlKXtlLmFwcGVuZENoaWxkKG8pfX0oZSx0ZSxpZSx0KSk7dmFyIHRlLGllLHNlPWkoMTY3NTAyKSxvZT1pKDkxNDQ4NyksbmU9aS5uKG9lKSxhZT1pKDYyNzg0OCksbGU9aSg3OTQxODcpLHJlPWkoNjQzOTAzKSxkZT1pKDk3MzgwNCksdWU9aSgzODc3NzQpLGNlPWkoNjU3NTYwKTtjbGFzcyBoZXtjb25zdHJ1Y3RvcihlKXt0aGlzLl9sYXN0RHJhd25Mb2dvcz1bXSx0aGlzLl9sb2dvV3JhcHBlcj1udWxsLHRoaXMuX3BhaXJDb250YWluZXI9bnVsbCx0aGlzLl9wcmltYXJ5TG9nbz1udWxsLHRoaXMuX3NlY29uZGFyeUxvZ289bnVsbCx0aGlzLl9sb2dvQ29udGFpbmVyPW51bGwsdGhpcy5fc3ltYm9sTGV0dGVyQ29udGFpbmVyPW51bGwsdGhpcy5fYWJvcnRDb250cm9sbGVyPW5ldyBBYm9ydENvbnRyb2xsZXIsdGhpcy5fdXBkYXRlTG9nb1Zpc2liaWxpdHk9ZT0+e3RoaXMuX2xvZ29XcmFwcGVyJiZ0aGlzLl9sb2dvV3JhcHBlci5jbGFzc0xpc3QudG9nZ2xlKGNlLmhpZGRlbiwhZSl9LHRoaXMuX3VwZGF0ZVN5bWJvbExvZ289YXN5bmMgZT0+e2lmKG51bGw9PT10aGlzLl9sb2dvV3JhcHBlciYmdGhpcy5fcmVuZGVyU3ltYm9sTG9nbygpLDAhPT10aGlzLl9sYXN0RHJhd25Mb2dvcy5sZW5ndGgmJjAhPT1lLmxlbmd0aCYmKDAsc2UuZGVmYXVsdCkodGhpcy5fbGFzdERyYXduTG9nb3MsZSkpcmV0dXJuO2NvbnN0IHQ9YXdhaXQoaT1lLHM9dGhpcy5fYWJvcnRDb250cm9sbGVyLnNpZ25hbCxQcm9taXNlLmFsbChpLm1hcCgoZT0+KDAsCmRlLmdldEltYWdlKShgc3ltYm9sX2xvZ29fJHtlfWAsZSxfZSxzKS50aGVuKChlPT5lLmNsb25lTm9kZSgpKSkpKSkpLmNhdGNoKCgoKT0+W10pKTt2YXIgaSxzO3N3aXRjaCh0Lmxlbmd0aCl7Y2FzZSAwOnRoaXMuX3BhaXJDb250YWluZXI/LmNsYXNzTGlzdC5hZGQoY2UuaGlkZGVuKSx0aGlzLl9sb2dvQ29udGFpbmVyPy5jbGFzc0xpc3QuYWRkKHVlLmhpZGRlbkNpcmNsZUxvZ29DbGFzcyksdGhpcy5fdXBkYXRlU3ltYm9sTGV0dGVyKCksdGhpcy5fc3ltYm9sTGV0dGVyQ29udGFpbmVyPy5jbGFzc0xpc3QucmVtb3ZlKHVlLmhpZGRlbkNpcmNsZUxvZ29DbGFzcyksdGhpcy5fbGFzdERyYXduTG9nb3M9ZTticmVhaztjYXNlIDE6cGUodGhpcy5fbG9nb0NvbnRhaW5lcix0WzBdKSx0aGlzLl9wYWlyQ29udGFpbmVyPy5jbGFzc0xpc3QuYWRkKGNlLmhpZGRlbiksdGhpcy5fbG9nb0NvbnRhaW5lcj8uY2xhc3NMaXN0LnJlbW92ZSh1ZS5oaWRkZW5DaXJjbGVMb2dvQ2xhc3MpLHRoaXMuX3N5bWJvbExldHRlckNvbnRhaW5lcj8uY2xhc3NMaXN0LmFkZCh1ZS5oaWRkZW5DaXJjbGVMb2dvQ2xhc3MpLHRoaXMuX2xhc3REcmF3bkxvZ29zPWU7YnJlYWs7Y2FzZSAyOnBlKHRoaXMuX3ByaW1hcnlMb2dvLHRbMF0pLHBlKHRoaXMuX3NlY29uZGFyeUxvZ28sdFsxXSksdGhpcy5fcGFpckNvbnRhaW5lcj8uY2xhc3NMaXN0LnJlbW92ZShjZS5oaWRkZW4pLHRoaXMuX2xvZ29Db250YWluZXI/LmNsYXNzTGlzdC5hZGQodWUuaGlkZGVuQ2lyY2xlTG9nb0NsYXNzKSx0aGlzLl9zeW1ib2xMZXR0ZXJDb250YWluZXI/LmNsYXNzTGlzdC5hZGQodWUuaGlkZGVuQ2lyY2xlTG9nb0NsYXNzKSx0aGlzLl9sYXN0RHJhd25Mb2dvcz1lfX0sdGhpcy5fbW9kZWw9ZSx0aGlzLl9yZW5kZXJTeW1ib2xMb2dvKCksdGhpcy5fbG9nb1VybHM9ZS5zeW1ib2xMb2dvVXJscygpLnNwYXduKCksdGhpcy5fbG9nb1VybHMuc3Vic2NyaWJlKHRoaXMuX3VwZGF0ZVN5bWJvbExvZ28se2NhbGxXaXRoTGFzdDohMH0pLHRoaXMuX2lzTG9nb1Zpc2libGU9ZS5pc1N5bWJvbExvZ29WaXNpYmxlKCkuc3Bhd24oKSx0aGlzLl9pc0xvZ29WaXNpYmxlLnN1YnNjcmliZSh0aGlzLl91cGRhdGVMb2dvVmlzaWJpbGl0eSx7Y2FsbFdpdGhMYXN0OiEwfSl9ZGVzdHJveSgpe3RoaXMuX2xvZ29XcmFwcGVyPy5yZW1vdmUoKSx0aGlzLl9sb2dvV3JhcHBlcj1udWxsLHRoaXMuX3BhaXJDb250YWluZXI9bnVsbCx0aGlzLl9wcmltYXJ5TG9nbz1udWxsLHRoaXMuX3NlY29uZGFyeUxvZ289bnVsbCx0aGlzLl9sb2dvQ29udGFpbmVyPW51bGwsdGhpcy5fc3ltYm9sTGV0dGVyQ29udGFpbmVyPW51bGwsdGhpcy5fbG9nb1VybHMuZGVzdHJveSgpLHRoaXMuX2lzTG9nb1Zpc2libGUuZGVzdHJveSgpLHRoaXMuX2Fib3J0Q29udHJvbGxlci5hYm9ydCgpfWdldEVsZW1lbnQoKXtyZXR1cm4gdGhpcy5fbG9nb1dyYXBwZXJ9X3JlbmRlclN5bWJvbExvZ28oKXtpZighdGhpcy5fbG9nb1dyYXBwZXIpe2NvbnN0IGU9dGhpcy5fbG9nb1dyYXBwZXI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7ZS5jbGFzc0xpc3QuYWRkKGNlLmxvZ29XcmFwcGVyKSxlLmRhdGFzZXQucWFJZD0ibGVnZW5kLWxvZ28td3JhcHBlciI7Y29uc3QgdD10aGlzLl9wYWlyQ29udGFpbmVyPWUuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpKTt0LmNsYXNzTGlzdC5hZGQoY2UucGFpckNvbnRhaW5lcixjZS5oaWRkZW4pO2NvbnN0IGk9dC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIikpO2kuY2xhc3NOYW1lPSgwLGFlLmdldEJsb2NrU3R5bGVDbGFzc2VzKSgieHh4c21hbGwiKTsodGhpcy5fc2Vjb25kYXJ5TG9nbz1pLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKSkpLmNsYXNzTmFtZT1uZSgpKCgwLGFlLmdldExvZ29TdHlsZUNsYXNzZXMpKCJ4eHhzbWFsbCIpLGNlLmxvZ28pOyh0aGlzLl9wcmltYXJ5TG9nbz1pLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKSkpLmNsYXNzTmFtZT1uZSgpKCgwLGFlLmdldExvZ29TdHlsZUNsYXNzZXMpKCJ4eHhzbWFsbCIpLGNlLmxvZ28pOyh0aGlzLl9sb2dvQ29udGFpbmVyPWUuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpKSkuY2xhc3NOYW1lPW5lKCkoKDAsbGUuZ2V0U3R5bGVDbGFzc2VzKSgieHh4c21hbGwiKSxjZS5sb2dvLHVlLmhpZGRlbkNpcmNsZUxvZ29DbGFzcyk7KHRoaXMuX3N5bWJvbExldHRlckNvbnRhaW5lcj1lLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKSkpLmNsYXNzTmFtZT1uZSgpKCgwLGxlLmdldFN0eWxlQ2xhc3NlcykoInh4eHNtYWxsIiksY2UubG9nbyksdGhpcy5fdXBkYXRlU3ltYm9sTGV0dGVyKCl9fV91cGRhdGVTeW1ib2xMZXR0ZXIoKXtpZih0aGlzLl9zeW1ib2xMZXR0ZXJDb250YWluZXIpe2NvbnN0IGU9KDAscmUuc2FmZVNob3J0TmFtZSkodGhpcy5fbW9kZWwuc3ltYm9sKCk/PyIiKVswXTtnKHRoaXMuX3N5bWJvbExldHRlckNvbnRhaW5lcixlKX19fWZ1bmN0aW9uIHBlKGUsdCl7ZSYmZS5yZXBsYWNlQ2hpbGRyZW4odCl9ZnVuY3Rpb24gX2UoZSl7ZS5jcm9zc09yaWdpbj0iIixlLmRlY29kaW5nPSJhc3luYyJ9Y29uc3QgZ2U9Xy5DaGVja01vYmlsZS5hbnkoKTtmdW5jdGlvbiBtZShlLHQpe2UuZGF0YXNldC5zdGF0dXM9dD8ibG9hZGluZyI6dm9pZCAwfWNvbnN0IGJlPSgwLEUubWVyZ2VUaGVtZXMpKHcuREVGQVVMVF9TVEFUVVNfUkVOREVSRVJfVEhFTUUse3N0YXR1c2VzV3JhcDpjZS5zdGF0dXNlc1dyYXBwZXJfX3N0YXR1c2VzfSk7Y2xhc3MgdmV7Y29uc3RydWN0b3IoZSx0LGkpe3RoaXMuX2VsPW51bGwsdGhpcy5fZmlyc3RCbG9ja1dyYXBwZXI9bnVsbCx0aGlzLl90aXRsZXNXcmFwcGVyRWw9bnVsbCx0aGlzLl90aXRsZUNvbnRhaW5lcnM9W10sdGhpcy5fdGl0bGVFbGVtZW50cz1bXSx0aGlzLl92YWx1ZXNFbGVtZW50cz1bXSx0aGlzLl9hY3Rpb25zUGFyZW50RWw9bnVsbCwKdGhpcy5fYWN0aW9uQWRkaXRpb25hbFdyYXBwZXJFbD1udWxsLHRoaXMuX2FjdGlvbkVsZW1lbnRzPVtdLHRoaXMuX2FjY2Vzc2libGVUaXRsZUJ1dHRvbnM9W10sdGhpcy5fYWNjZXNzaWJsZUFjdGlvbkJ1dHRvbnM9W10sdGhpcy5fcm93TW9kZT00LHRoaXMuX3RpdGxlc01vZGU9Myx0aGlzLl9zdGF0dXNlc1dyYXBwZXI9bnVsbCx0aGlzLl9zdGF0dXNlc1dpZGdldFN0YXRlPW51bGwsdGhpcy5fbG9hZGVyPW51bGwsdGhpcy5fdmFsdWVzUGFyZW50RWw9bnVsbCx0aGlzLl92YWx1ZXNBZGRpdGlvbmFsV3JhcHBlckVsPW51bGwsdGhpcy5fc3ltYm9sTG9nb1JlbmRlcmVyPW51bGwsdGhpcy5fcmVzaXplT2JzZXJ2ZXI9bnVsbCx0aGlzLl9oaWRlSW52aXNpYmxlSG92ZXI9bnVsbCx0aGlzLl9oaWRlVmFsdWVzPW51bGwsdGhpcy5fYWxsQnV0dG9uc1dpZHRoPW51bGwsdGhpcy5fbGFzdFN0YXR1c2VzV3JhcHBlcldpZHRoPW51bGwsdGhpcy5fbGFzdEFjdGlvbnNXcmFwcGVyV2lkdGg9bnVsbCx0aGlzLl9zaG93QWN0aW9uc0hhbmRsZXI9bnVsbCx0aGlzLl9oaWRlQWN0aW9uc0hhbmRsZXI9bnVsbCx0aGlzLl9zZWxlY3RlZFNvdXJjZUhhbmRsZXI9bnVsbCx0aGlzLl9tb3VzZUV2ZW50SGFuZGxlcnM9W10sdGhpcy5fZGlzYWJsZVRpbWVvdXQ9bnVsbCx0aGlzLl90b2dnbGVIaWRkZW5BY3Rpb25zPW51bGwsdGhpcy5fdXBkYXRlRGlzYWJsZWRTdGF0ZT0oZT10aGlzLl9kaXNhYmxlZC52YWx1ZSgpKT0+e251bGwhPT10aGlzLl9lbCYmKHRoaXMuX2VsLmNsYXNzTGlzdC50b2dnbGUoY2UuZGlzYWJsZWQsZSksdGhpcy5fdXBkYXRlTG9hZGluZ1N0YXRlKCksdGhpcy5fdXBkYXRlU3RhdHVzV2lkZ2V0VmlzaWJpbGl0eShlKSx0aGlzLl91cGRhdGVUaXRsZU1heFdpZHRoKCkpfSx0aGlzLl91cGRhdGVMb2FkaW5nU3RhdGU9KGU9dGhpcy5fbG9hZGluZy52YWx1ZSgpKT0+e2lmKG51bGwhPT10aGlzLl9lbCl7dGhpcy5fZWwuY2xhc3NMaXN0LnRvZ2dsZShjZS5leWVMb2FkaW5nLGUmJiF0aGlzLl9kaXNhYmxlZC52YWx1ZSgpKSxtZSh0aGlzLl9lbCxlKX1udWxsIT09dGhpcy5fbG9hZGVyJiZ0aGlzLl9sb2FkZXIudG9nZ2xlVmlzaWJpbGl0eShlKSx0aGlzLl91cGRhdGVTaG93VmFsdWVzKCl9LHRoaXMuX3VwZGF0ZVN5bWJvbExvZ29SZW5kZXJlcj1lPT57aWYodGhpcy5fc3ltYm9sTG9nb1JlbmRlcmVyPy5kZXN0cm95KCksZSl7dGhpcy5fc3ltYm9sTG9nb1JlbmRlcmVyPW5ldyBoZShlKTtjb25zdCB0PXRoaXMuX3RpdGxlc1N0YXRlc1NwYXduLnZhbHVlKCkuZmluZEluZGV4KChlPT50aGlzLl9pc1RpdGxlV2l0aFN5bWJvbExvZ28oZSkpKTtpZigtMSE9PXQpe2NvbnN0IGU9dGhpcy5fdGl0bGVDb250YWluZXJzW3RdO2lmKGUpe2NvbnN0IHQ9dGhpcy5fc3ltYm9sTG9nb1JlbmRlcmVyLmdldEVsZW1lbnQoKTt0JiZlLmluc2VydEJlZm9yZSh0LGUuZmlyc3RDaGlsZCl9fX1lbHNlIHRoaXMuX3N5bWJvbExvZ29SZW5kZXJlcj1udWxsfSx0aGlzLl9tb2RlbD1lLHRoaXMuX3BhcmVudEVsPXQsdGhpcy5fZGlzYWJsZWQ9dGhpcy5fbW9kZWwuZGlzYWJsZWQoKS5zcGF3bigpLHRoaXMuX2Rpc2FibGVkLnN1YnNjcmliZSh0aGlzLl91cGRhdGVEaXNhYmxlZFN0YXRlKSx0aGlzLl9kaXNhYmxlZE9uSW50ZXJ2YWw9dGhpcy5fbW9kZWwuZGlzYWJsZWRPbkludGVydmFsKCkuc3Bhd24oKSx0aGlzLl9kaXNhYmxlZE9uSW50ZXJ2YWwuc3Vic2NyaWJlKHRoaXMuX3VwZGF0ZURpc2FibGVkT25JbnRlcnZhbFN0YXRlLmJpbmQodGhpcykpLHRoaXMuX3NlbGVjdGVkPXRoaXMuX21vZGVsLnNlbGVjdGVkKCkuc3Bhd24oKSx0aGlzLl9zZWxlY3RlZC5zdWJzY3JpYmUodGhpcy5fdXBkYXRlU2VsZWN0ZWRTdGF0ZS5iaW5kKHRoaXMpKSx0aGlzLl9sb2FkaW5nPXRoaXMuX21vZGVsLmxvYWRpbmcoKS5zcGF3bigpLHRoaXMuX2xvYWRpbmcuc3Vic2NyaWJlKGZ1bmN0aW9uKGUsdCl7bGV0IGk9MDtyZXR1cm4gcz0+e2NsZWFyVGltZW91dChpKSxzP2UoKTppPXNldFRpbWVvdXQoZSx0KX19KHRoaXMuX3VwZGF0ZUxvYWRpbmdTdGF0ZSw3MDApKSx0aGlzLl9pc1RpdGxlSGlkZGVuPXRoaXMuX21vZGVsLmlzVGl0bGVIaWRkZW4oKS5zcGF3bigpLHRoaXMuX2lzUm93SGlkZGVuPXRoaXMuX21vZGVsLmlzUm93SGlkZGVuKCkuc3Bhd24oKSx0aGlzLl9pc1RpdGxlSGlkZGVuLnN1YnNjcmliZSh0aGlzLl91cGRhdGVTaG93VGl0bGVzLmJpbmQodGhpcykpLHRoaXMuX2lzUm93SGlkZGVuLnN1YnNjcmliZSh0aGlzLl91cGRhdGVTaG93TGluZS5iaW5kKHRoaXMpKSx0aGlzLl90aXRsZXNTdGF0ZXNTcGF3bj10aGlzLl9tb2RlbC50aXRsZXMoKS5zcGF3bigpLHRoaXMuX3RpdGxlc1N0YXRlc1NwYXduLnN1YnNjcmliZSh0aGlzLl90aXRsZXNDb2xsZWN0aW9uQ2hhbmdlZC5iaW5kKHRoaXMpKSx0aGlzLl92YWx1ZXM9dGhpcy5fbW9kZWwudmFsdWVzKCkuc3Bhd24oKSx0aGlzLl92YWx1ZXMuc3Vic2NyaWJlKHRoaXMuX3VwZGF0ZVZhbHVlcy5iaW5kKHRoaXMpKSx0aGlzLl9jcmVhdGVWYWx1ZXNTcGF3bnMoKSx0aGlzLl9hZGRWYWx1ZXNTcGF3bnNTdWJzY3JpcHRpb25zKCksZS5zeW1ib2xMb2dvVmlld01vZGVsKCkuc3Vic2NyaWJlKHRoaXMuX3VwZGF0ZVN5bWJvbExvZ29SZW5kZXJlciksdGhpcy5fdXBkYXRlU3ltYm9sTG9nb1JlbmRlcmVyKGUuc3ltYm9sTG9nb1ZpZXdNb2RlbCgpLnZhbHVlKCkpLHRoaXMuX2FjdGlvbnNTcGF3bkFycmF5PXRoaXMuX21vZGVsLmFjdGlvbnMoKS5tYXAoKGU9Pih7dmlzaWJsZTplLnZpc2libGUuc3Bhd24oKSxhY3RpdmU6ZS5hY3RpdmU/LnNwYXduKCksdGl0bGU6dm9pZCAwPT09ZS50aXRsZT9udWxsOmUudGl0bGUuc3Bhd24oKX0pKSk7Zm9yKGxldCBlPTA7ZTx0aGlzLl9hY3Rpb25zU3Bhd25BcnJheS5sZW5ndGg7ZSsrKXtjb25zdHt2aXNpYmxlOnQsdGl0bGU6aSxhY3RpdmU6c309dGhpcy5fYWN0aW9uc1NwYXduQXJyYXlbZV07dC5zdWJzY3JpYmUodGhpcy5fdXBkYXRlQWN0aW9uVmlzaWJpbGl0aWVzLmJpbmQodGhpcyxlKSksCnM/LnN1YnNjcmliZSgoKCk9PnRoaXMuX3VwZGF0ZUFjdGlvbkFjdGl2ZVN0YXR1cyhlKSkpLGk/LnN1YnNjcmliZSh0aGlzLl91cGRhdGVBY3Rpb25UaXRsZS5iaW5kKHRoaXMsZSkpfXRoaXMuX3dpdGhBY3Rpb25zPWkud2l0aEFjdGlvbnMsdGhpcy5faXNNdWx0aXBsZUxheW91dD1pLmlzTXVsdGlwbGVMYXlvdXQuc3Bhd24oKSx0aGlzLl9jdXN0b21UZXh0Q29sb3I9aS5jdXN0b21UZXh0Q29sb3Iuc3Bhd24oKSx0aGlzLl9jdXN0b21UZXh0Q29sb3Iuc3Vic2NyaWJlKHRoaXMuX3VwZGF0ZUN1c3RvbVRleHRDb2xvci5iaW5kKHRoaXMpKSx0aGlzLl9yZW5kZXIoKSx0aGlzLl91cGRhdGVTdGF0ZXMoKSx0aGlzLl91cGRhdGVTaG93VGl0bGVzKCksdGhpcy5fdXBkYXRlU2hvd1ZhbHVlcygpLHRoaXMuX3VwZGF0ZVNob3dMaW5lKCksdGhpcy5fbG9hZGVyPWVlKCgwLG4uZW5zdXJlTm90TnVsbCkodGhpcy5fdmFsdWVzUGFyZW50RWwpLHtjbGFzc05hbWU6Y2UubG9hZGVyfSksdGhpcy5fd2l0aEFjdGlvbnMmJih0aGlzLl90b2dnbGVIaWRkZW5BY3Rpb25zPWkudG9nZ2xlSGlkZGVuQWN0aW9ucyx0aGlzLl9zaG93QWN0aW9uc0hhbmRsZXI9KDAsSS53cmFwSGFuZGxlcldpdGhQcmV2ZW50RXZlbnQpKHRoaXMuX3Nob3dBY3Rpb25zLmJpbmQodGhpcykpLHRoaXMuX2hpZGVBY3Rpb25zSGFuZGxlcj0oMCxJLndyYXBIYW5kbGVyV2l0aFByZXZlbnRFdmVudCkodGhpcy5faGlkZUFjdGlvbnMuYmluZCh0aGlzKSksdGhpcy5fc2VsZWN0ZWRTb3VyY2VIYW5kbGVyPSgwLHguZGVmYXVsdFByZXZlbnRlZEhhbmRsZXIpKHRoaXMuX21vZGVsLnNldFNvdXJjZVNlbGVjdGVkLmJpbmQodGhpcy5fbW9kZWwpKSxudWxsIT09dGhpcy5fdGl0bGVzV3JhcHBlckVsJiYoZ2V8fCh0aGlzLl90aXRsZXNXcmFwcGVyRWwuYWRkRXZlbnRMaXN0ZW5lcigibW91c2VlbnRlciIsdGhpcy5fc2hvd0FjdGlvbnNIYW5kbGVyKSx0aGlzLl90aXRsZXNXcmFwcGVyRWwuYWRkRXZlbnRMaXN0ZW5lcigibW91c2VsZWF2ZSIsdGhpcy5faGlkZUFjdGlvbnNIYW5kbGVyKSksdGhpcy5fbW91c2VFdmVudEhhbmRsZXJzLnB1c2gobmV3IHguTW91c2VFdmVudEhhbmRsZXIodGhpcy5fdGl0bGVzV3JhcHBlckVsLHttb3VzZURvdWJsZUNsaWNrRXZlbnQ6dGhpcy5fbW9kZWwub25TaG93U2V0dGluZ3MuYmluZCh0aGlzLl9tb2RlbCksZG91YmxlVGFwRXZlbnQ6dGhpcy5fbW9kZWwub25TaG93U2V0dGluZ3MuYmluZCh0aGlzLl9tb2RlbCksbW91c2VDbGlja0V2ZW50OnRoaXMuX3NlbGVjdGVkU291cmNlSGFuZGxlcix0YXBFdmVudDp0aGlzLl9zZWxlY3RlZFNvdXJjZUhhbmRsZXJ9KSkpLG51bGw9PT10aGlzLl9hY3Rpb25BZGRpdGlvbmFsV3JhcHBlckVsfHxudWxsPT09dGhpcy5fYWN0aW9uc1BhcmVudEVsfHxnZXx8KHRoaXMuX2FjdGlvbkFkZGl0aW9uYWxXcmFwcGVyRWwuYWRkRXZlbnRMaXN0ZW5lcigibW91c2VlbnRlciIsdGhpcy5fc2hvd0FjdGlvbnNIYW5kbGVyKSx0aGlzLl9hY3Rpb25BZGRpdGlvbmFsV3JhcHBlckVsLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlbGVhdmUiLHRoaXMuX2hpZGVBY3Rpb25zSGFuZGxlciksdGhpcy5fYWN0aW9uc1BhcmVudEVsLmFkZEV2ZW50TGlzdGVuZXIoImNvbnRleHRtZW51IiwoZT0+e2UucHJldmVudERlZmF1bHQoKSxlLnN0b3BQcm9wYWdhdGlvbigpfSkpKSl9ZGVzdHJveSgpe2lmKHRoaXMuX3RvZ2dsZUhpZGRlbkFjdGlvbnM9bnVsbCx0aGlzLl9kaXNhYmxlZC5kZXN0cm95KCksdGhpcy5fZGlzYWJsZWRPbkludGVydmFsLmRlc3Ryb3koKSx0aGlzLl9zZWxlY3RlZC5kZXN0cm95KCksdGhpcy5fbG9hZGluZy5kZXN0cm95KCksdGhpcy5faXNUaXRsZUhpZGRlbi5kZXN0cm95KCksdGhpcy5faXNSb3dIaWRkZW4uZGVzdHJveSgpLHRoaXMuX2N1c3RvbVRleHRDb2xvci5kZXN0cm95KCksdGhpcy5fbG9hZGVyPy5kZXN0cm95KCksdGhpcy5faXNNdWx0aXBsZUxheW91dC5kZXN0cm95KCksdGhpcy5fbW9kZWwuc3ltYm9sTG9nb1ZpZXdNb2RlbCgpLnVuc3Vic2NyaWJlKHRoaXMuX3VwZGF0ZVN5bWJvbExvZ29SZW5kZXJlciksdGhpcy5fc3ltYm9sTG9nb1JlbmRlcmVyPy5kZXN0cm95KCksbnVsbCE9PXRoaXMuX2Rpc2FibGVUaW1lb3V0JiZjbGVhclRpbWVvdXQodGhpcy5fZGlzYWJsZVRpbWVvdXQpLHRoaXMuX2FjY2Vzc2libGVUaXRsZUJ1dHRvbnM9W10sdGhpcy5fYWNjZXNzaWJsZUFjdGlvbkJ1dHRvbnM9W10sdGhpcy5fc3RhdHVzZXNXaWRnZXREZXN0cm95Py4oKSx0aGlzLl90aXRsZXNTdGF0ZXNTcGF3bi5kZXN0cm95KCksbnVsbCE9PXRoaXMuX3RpdGxlc1dyYXBwZXJFbCl7Zm9yKGNvbnN0IGUgb2YgdGhpcy5fbW91c2VFdmVudEhhbmRsZXJzKWUuZGVzdHJveSgpO3RoaXMuX3RpdGxlQ29udGFpbmVycz1bXSx0aGlzLl90aXRsZUVsZW1lbnRzPVtdLHRoaXMuX3dpdGhBY3Rpb25zJiZudWxsIT09dGhpcy5fc2VsZWN0ZWRTb3VyY2VIYW5kbGVyJiZudWxsIT09dGhpcy5fc2hvd0FjdGlvbnNIYW5kbGVyJiZudWxsIT09dGhpcy5faGlkZUFjdGlvbnNIYW5kbGVyJiYoZ2V8fCh0aGlzLl90aXRsZXNXcmFwcGVyRWwucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2VlbnRlciIsdGhpcy5fc2hvd0FjdGlvbnNIYW5kbGVyKSx0aGlzLl90aXRsZXNXcmFwcGVyRWwucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2VsZWF2ZSIsdGhpcy5faGlkZUFjdGlvbnNIYW5kbGVyKSkpLHRoaXMuX3RpdGxlc1dyYXBwZXJFbD1udWxsfWZvcihjb25zdCBlIG9mIHRoaXMuX2FjdGlvbnNTcGF3bkFycmF5KWUudmlzaWJsZS5kZXN0cm95KCksZS5hY3RpdmU/LmRlc3Ryb3koKSxlLnRpdGxlPy5kZXN0cm95KCk7aWYodGhpcy5fYWN0aW9uRWxlbWVudHM9W10sCm51bGwhPT10aGlzLl9hY3Rpb25BZGRpdGlvbmFsV3JhcHBlckVsJiYodGhpcy5fd2l0aEFjdGlvbnMmJm51bGwhPT10aGlzLl9zaG93QWN0aW9uc0hhbmRsZXImJm51bGwhPT10aGlzLl9oaWRlQWN0aW9uc0hhbmRsZXImJiFnZSYmKHRoaXMuX2FjdGlvbkFkZGl0aW9uYWxXcmFwcGVyRWwucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2VlbnRlciIsdGhpcy5fc2hvd0FjdGlvbnNIYW5kbGVyKSx0aGlzLl9hY3Rpb25BZGRpdGlvbmFsV3JhcHBlckVsLnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlbGVhdmUiLHRoaXMuX2hpZGVBY3Rpb25zSGFuZGxlcikpLHRoaXMuX2FjdGlvbkFkZGl0aW9uYWxXcmFwcGVyRWw9bnVsbCksdGhpcy5fYWN0aW9uc1BhcmVudEVsPW51bGwsdGhpcy5fcmVtb3ZlVmFsdWVzU3Bhd25zU3Vic2NyaXB0aW9ucygpLHRoaXMuX3ZhbHVlcy5kZXN0cm95KCksbnVsbCE9PXRoaXMuX3ZhbHVlc1BhcmVudEVsJiYodGhpcy5fdmFsdWVzRWxlbWVudHM9W10sdGhpcy5fdmFsdWVzUGFyZW50RWw9bnVsbCksdGhpcy5faGlkZUludmlzaWJsZUhvdmVyPy5kZXN0cm95KCksdGhpcy5faGlkZVZhbHVlcz8uZGVzdHJveSgpLG51bGwhPT10aGlzLl9yZXNpemVPYnNlcnZlciYmKHRoaXMuX3Jlc2l6ZU9ic2VydmVyLmRpc2Nvbm5lY3QoKSx0aGlzLl9yZXNpemVPYnNlcnZlcj1udWxsKSxudWxsIT09dGhpcy5fZWwpe2NvbnN0IGU9dGhpcy5fZWwucGFyZW50Tm9kZTtlPy5yZW1vdmVDaGlsZCh0aGlzLl9lbCksdGhpcy5fZWw9bnVsbH19Z2V0RWxlbWVudCgpe3JldHVybiB0aGlzLl9lbH1nZXRIZWlnaHQoKXtyZXR1cm4gbnVsbD09PXRoaXMuX2VsP251bGw6MjR9dXBkYXRlTW9kZShlLHQpe3RoaXMuX3Jvd01vZGU9PT1lJiZ0aGlzLl90aXRsZXNNb2RlPT09dCYmbnVsbCE9PXRoaXMuX2FsbEJ1dHRvbnNXaWR0aHx8KHRoaXMuX3Jvd01vZGUhPT1lJiYodGhpcy5fcm93TW9kZT1lLHRoaXMuX3VwZGF0ZUFjdGlvbnNWaXNpYmlsaXRpZXNCeU1vZGUoKSksdGhpcy5fdGl0bGVzTW9kZSE9PXQmJih0aGlzLl90aXRsZXNNb2RlPXQsdGhpcy5fdXBkYXRlVGl0bGVzVmlzaWJpbGl0aWVzQnlNb2RlKCkpLHRoaXMuX3VwZGF0ZUFsbEJ1dHRvbnNXaWR0aCgpKX1hY2Nlc3NpYmxlQnV0dG9ucygpe3JldHVybiB0aGlzLl9pc1Jvd0hpZGRlbi52YWx1ZSgpP1tdOlsuLi50aGlzLl9hY2Nlc3NpYmxlVGl0bGVCdXR0b25zLC4uLnRoaXMuX2FjY2Vzc2libGVBY3Rpb25CdXR0b25zXS5maWx0ZXIoKGU9PiFlLmNsYXNzTGlzdC5jb250YWlucyhYLmJsb2NrSGlkZGVuKSkpfXNob3dBY3Rpb25zKCl7bnVsbD09PXRoaXMuX2VsfHx0aGlzLl9lbC5jbGFzc0xpc3QuY29udGFpbnMoY2Uud2l0aEFjdGlvbil8fHRoaXMuX3Nob3dBY3Rpb25zKCl9aGlkZUFjdGlvbnMoKXtudWxsIT09dGhpcy5fZWwmJnRoaXMuX2VsLmNsYXNzTGlzdC5jb250YWlucyhjZS53aXRoQWN0aW9uKSYmdGhpcy5faGlkZUFjdGlvbnMoKX1fdXBkYXRlQWN0aW9uc1Zpc2liaWxpdGllc0J5TW9kZSgpe31fdXBkYXRlVGl0bGVzVmlzaWJpbGl0aWVzQnlNb2RlKCl7fV9yZW5kZXIoKXt0aGlzLl9yZW5kZXJUaXRsZXMoKSx0aGlzLl9yZW5kZXJBY3Rpb25zKCksdGhpcy5fcmVuZGVyVmFsdWVzKCk7Y29uc3QgZT10aGlzLl9jdXN0b21UZXh0Q29sb3IudmFsdWUoKXx8IiI7dGhpcy5fZWw9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksdGhpcy5fZWwuY2xhc3NMaXN0LnRvZ2dsZShjZS53aXRoQ3VzdG9tVGV4dENvbG9yLEJvb2xlYW4oZSkpLG1lKHRoaXMuX2VsLHRoaXMuX2xvYWRpbmcudmFsdWUoKSksdGhpcy5fZmlyc3RCbG9ja1dyYXBwZXI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksdGhpcy5fZmlyc3RCbG9ja1dyYXBwZXIuY2xhc3NMaXN0LmFkZChjZS5ub1dyYXBXcmFwcGVyKSx0aGlzLl9maXJzdEJsb2NrV3JhcHBlci5hcHBlbmRDaGlsZCgoMCxuLmVuc3VyZU5vdE51bGwpKHRoaXMuX3RpdGxlc1dyYXBwZXJFbCkpLG51bGwhPT10aGlzLl9hY3Rpb25zUGFyZW50RWwmJnRoaXMuX2ZpcnN0QmxvY2tXcmFwcGVyLmFwcGVuZENoaWxkKHRoaXMuX2FjdGlvbnNQYXJlbnRFbCksdGhpcy5fZWwuYXBwZW5kQ2hpbGQodGhpcy5fZmlyc3RCbG9ja1dyYXBwZXIpLHRoaXMuX2VsLmFwcGVuZENoaWxkKCgwLG4uZW5zdXJlTm90TnVsbCkodGhpcy5fdmFsdWVzUGFyZW50RWwpKSx0aGlzLl9wYXJlbnRFbC5hcHBlbmQodGhpcy5fZWwpfV9yZW5kZXJUaXRsZXMoKXtudWxsPT09dGhpcy5fdGl0bGVzV3JhcHBlckVsJiYodGhpcy5fdGl0bGVzV3JhcHBlckVsPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLHRoaXMuX3RpdGxlc1dyYXBwZXJFbC5jbGFzc0xpc3QuYWRkKGNlLnRpdGxlc1dyYXBwZXIpLHRoaXMuX3RpdGxlc1dyYXBwZXJFbC5kYXRhc2V0LnFhSWQ9ImxlZ2VuZC10aXRsZXMiKTtmb3IoY29uc3QgZSBvZiB0aGlzLl90aXRsZXNTdGF0ZXNTcGF3bi52YWx1ZSgpKWooZSk/dGhpcy5fcmVuZGVyVGl0bGVzR3JvdXAoZSk6dGhpcy5fcmVuZGVyU2ltcGxlVGl0bGUoZSl9X3JlbmRlclRpdGxlc0dyb3VwKGUpe2NvbnN0IHQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7dC5jbGFzc0xpc3QuYWRkKGNlLnRpdGxlc0dyb3VwV3JhcHBlciksZS5pdGVtcy5mb3JFYWNoKChlPT50aGlzLl9yZW5kZXJTaW1wbGVUaXRsZShlLHQpKSksKDAsbi5lbnN1cmVOb3ROdWxsKSh0aGlzLl90aXRsZXNXcmFwcGVyRWwpLmFwcGVuZENoaWxkKHQpfV9yZW5kZXJTaW1wbGVUaXRsZShlLHQpe2NvbnN0e3RpdGxlOmksdG9vbHRpcDpzLGFjdGlvbjpvfT1lLGE9ISFvJiYoIV8uQ2hlY2tNb2JpbGUuYW55KCl8fG8uYWN0aW9uQWxsb3dlZE9uVG91Y2gpLGw9dGhpcy5fZ2V0QXR0cmlidXRlc0ZvclRpdGxlU3RhdGUoZSkscj1pPz8iIixkPXRoaXMuX2N1c3RvbVRleHRDb2xvci52YWx1ZSgpfHwiIix1PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3UuY2xhc3NMaXN0LmFkZChjZS50aXRsZVdyYXBwZXIsY2Uud2l0aERvdCksdS5zdHlsZS5jb2xvcj1kLGw/LmNsYXNzTmFtZSYmdS5jbGFzc0xpc3QuYWRkKGwuY2xhc3NOYW1lKSwKdS5kYXRhc2V0LnFhSWQ9WyJ0aXRsZS13cmFwcGVyIixsPy5kYXRhUWFJZF0uam9pbigiICIpLnRyaW0oKSx2b2lkIDAhPT1zJiYodS5jbGFzc0xpc3QuYWRkKCJhcHBseS1jb21tb24tdG9vbHRpcCIpLHUuc2V0QXR0cmlidXRlKCJ0aXRsZSIscykpO2NvbnN0IGM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChhPyJidXR0b24iOiJkaXYiKTtpZihjLmNsYXNzTGlzdC5hZGQoY2UudGl0bGUpLHZvaWQgMCE9PW8pe3UuY2xhc3NMaXN0LmFkZChjZS53aXRoQWN0aW9uKTtjb25zdCBlPV8uQ2hlY2tNb2JpbGUuYW55KCkmJm8uYWN0aW9uQWxsb3dlZE9uVG91Y2gsdD10PT57IXRoaXMuX3NlbGVjdGVkLnZhbHVlKCkmJih0aGlzLl9zZWxlY3RlZFNvdXJjZUhhbmRsZXI/Lih0KSxlKXx8KHUuY2xhc3NMaXN0LmFkZChjZS50aXRsZVdyYXBwZXJfX2FjdGl2ZSksby5mbigoKCk9PnUuY2xhc3NMaXN0LnJlbW92ZShjZS50aXRsZVdyYXBwZXJfX2FjdGl2ZSkpKSxhJiZjLmJsdXIoKSl9O2lmKHRoaXMuX21vdXNlRXZlbnRIYW5kbGVycy5wdXNoKG5ldyB4Lk1vdXNlRXZlbnRIYW5kbGVyKHUse21vdXNlQ2xpY2tFdmVudDp0LHRhcEV2ZW50OmU/dDp2b2lkIDB9LHtpZ25vcmVDbGlja0FuZFRhcE9uRGJsQ2xpY2tPckRibFRhcDohMH0pKSxhKXtjb25zdCBlPWM7dGhpcy5fbWFrZUl0ZW1BY2Nlc3NpYmxlKGUsKCgpPT5vLmZuKCkpLHM/PyIiKSx0aGlzLl9hY2Nlc3NpYmxlVGl0bGVCdXR0b25zLnB1c2goZSl9fWlmKHIubGVuZ3RoPjA/Yy5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShyKSk6KHUuY2xhc3NMaXN0LmFkZChYLmJsb2NrSGlkZGVuKSxjLmNsYXNzTGlzdC5hZGQoWC5ibG9ja0hpZGRlbikpLHUuYXBwZW5kQ2hpbGQoYyksdGhpcy5faXNUaXRsZVdpdGhTeW1ib2xMb2dvKGUpKXtjb25zdCBlPXRoaXMuX3N5bWJvbExvZ29SZW5kZXJlcj8uZ2V0RWxlbWVudCgpO2UmJnUuaW5zZXJ0QmVmb3JlKGUsdS5maXJzdENoaWxkKX0odD8/KDAsbi5lbnN1cmVOb3ROdWxsKSh0aGlzLl90aXRsZXNXcmFwcGVyRWwpKS5hcHBlbmRDaGlsZCh1KSx0aGlzLl90aXRsZUNvbnRhaW5lcnMucHVzaCh1KSx0aGlzLl90aXRsZUVsZW1lbnRzLnB1c2goYyl9X21ha2VJdGVtQWNjZXNzaWJsZShlLHQsaSl7IiIhPT1pJiZlLnNldEF0dHJpYnV0ZSgiYXJpYS1sYWJlbCIsaSksZS50eXBlPSJidXR0b24iLGUuY2xhc3NMaXN0LmFkZChjZS5hY2Nlc3NpYmxlKSxlLnRhYkluZGV4PS0xO2NvbnN0IHM9dD0+e3N3aXRjaCh0LnR5cGUpe2Nhc2Uicm92aW5nLXRhYmluZGV4Om1haW4tZWxlbWVudCI6ZS50YWJJbmRleD0wO2JyZWFrO2Nhc2Uicm92aW5nLXRhYmluZGV4OnNlY29uZGFyeS1lbGVtZW50IjplLnRhYkluZGV4PS0xfX07ZS5hZGRFdmVudExpc3RlbmVyKCJyb3ZpbmctdGFiaW5kZXg6bWFpbi1lbGVtZW50IixzKSxlLmFkZEV2ZW50TGlzdGVuZXIoInJvdmluZy10YWJpbmRleDpzZWNvbmRhcnktZWxlbWVudCIscyksZS5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIiwoZT0+e2NvbnN0IGk9KDAsaC5oYXNoRnJvbUV2ZW50KShlKTsxMyE9PWkmJjMyIT09aXx8KGUucHJldmVudERlZmF1bHQoKSx0KGUpKX0pKX1fcmVuZGVyQWN0aW9ucygpe2lmKCF0aGlzLl93aXRoQWN0aW9ucylyZXR1cm47bnVsbD09PXRoaXMuX2FjdGlvbnNQYXJlbnRFbCYmKHRoaXMuX2FjdGlvbnNQYXJlbnRFbD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSx0aGlzLl9hY3Rpb25zUGFyZW50RWwuY2xhc3NMaXN0LmFkZChjZS5idXR0b25zV3JhcHBlciksdGhpcy5fYWN0aW9uc1BhcmVudEVsLmRhdGFzZXQubmFtZT0iYWN0aW9ucyIsdGhpcy5fcGFyZW50RWwuYXBwZW5kKHRoaXMuX2FjdGlvbnNQYXJlbnRFbCksdGhpcy5fYWN0aW9uQWRkaXRpb25hbFdyYXBwZXJFbD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSx0aGlzLl9hY3Rpb25BZGRpdGlvbmFsV3JhcHBlckVsLmNsYXNzTGlzdC5hZGQoY2UuYnV0dG9ucyksdGhpcy5fYWN0aW9uc1BhcmVudEVsLmFwcGVuZENoaWxkKHRoaXMuX2FjdGlvbkFkZGl0aW9uYWxXcmFwcGVyRWwpKTtjb25zdCBlPSgwLG4uZW5zdXJlTm90TnVsbCkodGhpcy5fYWN0aW9uQWRkaXRpb25hbFdyYXBwZXJFbCk7dGhpcy5fbW9kZWwuYWN0aW9ucygpLmZvckVhY2goKHQ9Pntjb25zdCBpPXZvaWQgMD09PXQuZGlzYWJsZUFjY2Vzc2liaWxpdHkscz17aWNvblNpemU6di50cmFja2luZ01vZGVJc0F2YWlsYWJsZT8ibGFyZ2UiOiJzbWFsbCIsdGFnOmk/ImJ1dHRvbiI6ImRpdiIsYnV0dG9uQ2xhc3NOYW1lOmNlLmJ1dHRvbix3cmFwSWNvbkNsYXNzTmFtZTpjZS5idXR0b25JY29uLGhpZGRlbkNsYXNzTmFtZTpYLmJsb2NrSGlkZGVuLGJsdXJPbkNsaWNrOiEhaXx8dm9pZCAwfSxvPSgwLFcuY3JlYXRlQWN0aW9uRWxlbWVudCkodCxzKTtpZihpKXtjb25zdCBlPW87dGhpcy5fbWFrZUl0ZW1BY2Nlc3NpYmxlKGUsKGU9PnQuYWN0aW9uKGUpKSx0LnRpdGxlPy52YWx1ZSgpPz8iIiksdGhpcy5fYWNjZXNzaWJsZUFjdGlvbkJ1dHRvbnMucHVzaChlKX10aGlzLl9hY3Rpb25FbGVtZW50cy5wdXNoKG8pLGUuYXBwZW5kQ2hpbGQobyl9KSl9X2luaXRXcmFwcGVyc0lmTm90SW5pdGlhbGl6ZWQoKXtyZXR1cm4gbnVsbD09PXRoaXMuX3ZhbHVlc1BhcmVudEVsJiYodGhpcy5fdmFsdWVzUGFyZW50RWw9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksdGhpcy5fdmFsdWVzUGFyZW50RWwuY2xhc3NMaXN0LmFkZChjZS52YWx1ZXNXcmFwcGVyKSx0aGlzLl92YWx1ZXNQYXJlbnRFbC5zdHlsZS5zZXRQcm9wZXJ0eSgiLS1ub3QtYXZhaWxhYmxlLWNvbnRlbnQiLGAnJHtBLm5vdEF2YWlsYWJsZX0nYCksdGhpcy5fdmFsdWVzQWRkaXRpb25hbFdyYXBwZXJFbD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSx0aGlzLl92YWx1ZXNBZGRpdGlvbmFsV3JhcHBlckVsLmNsYXNzTGlzdC5hZGQoY2UudmFsdWVzQWRkaXRpb25hbFdyYXBwZXIpLHRoaXMuX3ZhbHVlc1BhcmVudEVsLmFwcGVuZENoaWxkKHRoaXMuX3ZhbHVlc0FkZGl0aW9uYWxXcmFwcGVyRWwpKSwoMCwKbi5lbnN1cmVOb3ROdWxsKSh0aGlzLl92YWx1ZXNBZGRpdGlvbmFsV3JhcHBlckVsKX1faXNXaWR0aEJ1dHRvbnNNb2RlKCl7cmV0dXJuIG51bGwhPT10aGlzLl9lbCYmKHRoaXMuX2VsLmNsYXNzTGlzdC5jb250YWlucyhjZS53aXRoQWN0aW9uKXx8dGhpcy5fZGlzYWJsZWQudmFsdWUoKXx8dGhpcy5fc2VsZWN0ZWQudmFsdWUoKSl9X2lzVGl0bGVIaWRkZW5CeU1vZGUoZSl7cmV0dXJuITF9X3VwZGF0ZVN0YXRlcyhlKXt0aGlzLl91cGRhdGVEaXNhYmxlZFN0YXRlKCksdGhpcy5fdXBkYXRlRGlzYWJsZWRPbkludGVydmFsU3RhdGUoKSx0aGlzLl91cGRhdGVTZWxlY3RlZFN0YXRlKCksdGhpcy5fdXBkYXRlTG9hZGluZ1N0YXRlKCksZSYmdGhpcy5fY2xlYXJEaXNhYmxlU3RhdGUoKX1fdXBkYXRlVmFsdWVzSFRNTEVsSGFuZGxlcihlLHQpe2coKDAsbi5lbnN1cmUpKHRoaXMuX3ZhbHVlc0VsZW1lbnRzW2VdLnZhbHVlKSx0KSx0aGlzLl91cGRhdGVTaG93VmFsdWVzKCl9X3VwZGF0ZVZhbHVlQ29sb3JIYW5kbGVyKGUsdD0iIil7KDAsbi5lbnN1cmUpKHRoaXMuX3ZhbHVlc0VsZW1lbnRzW2VdLnZhbHVlKS5zdHlsZS5jb2xvcj10fV91cGRhdGVWYWx1ZVZpc2libGVIYW5kbGVyKGUsdCl7Y29uc3QgaT0oMCxuLmVuc3VyZSkodGhpcy5fdmFsdWVzRWxlbWVudHNbZV0udmFsdWUpLmNsb3Nlc3QoYC4ke2NlLnZhbHVlSXRlbX1gKTtudWxsIT09aSYmaS5jbGFzc0xpc3QudG9nZ2xlKFguYmxvY2tIaWRkZW4sIXQpLHRoaXMuX3VwZGF0ZVNob3dWYWx1ZXMoKX1fdXBkYXRlU2hvd0xpbmUoKXtudWxsIT09dGhpcy5fZWwmJnRoaXMuX2VsLmNsYXNzTGlzdC50b2dnbGUoWC5ibG9ja0hpZGRlbix0aGlzLl9pc1Jvd0hpZGRlbi52YWx1ZSgpKX1fdGl0bGVzQ29sbGVjdGlvbkNoYW5nZWQoKXtudWxsIT09dGhpcy5fdGl0bGVzV3JhcHBlckVsJiYodGhpcy5fdGl0bGVzV3JhcHBlckVsLmlubmVySFRNTD0iIiksdGhpcy5fYWNjZXNzaWJsZVRpdGxlQnV0dG9ucz1bXSx0aGlzLl90aXRsZUNvbnRhaW5lcnM9W10sdGhpcy5fdGl0bGVFbGVtZW50cz1bXSx0aGlzLl9yZW5kZXJUaXRsZXMoKSx0aGlzLl91cGRhdGVUaXRsZXNWaXNpYmlsaXRpZXNCeU1vZGUoKX1fY3JlYXRlVmFsdWVzU3Bhd25zKCl7dGhpcy5fdmFsdWVzU3Bhd25BcnJheT10aGlzLl92YWx1ZXMudmFsdWUoKS5tYXAoKGU9Pih7dmFsdWU6ZS52YWx1ZS5zcGF3bigpLGNvbG9yOmUuY29sb3Iuc3Bhd24oKSx2aXNpYmxlOmUudmlzaWJsZS5zcGF3bigpLHRpdGxlOmUudGl0bGUuc3Bhd24oKX0pKSl9X3JlbW92ZVZhbHVlc1NwYXduc1N1YnNjcmlwdGlvbnMoKXtmb3IoY29uc3QgZSBvZiB0aGlzLl92YWx1ZXNTcGF3bkFycmF5KWUudmFsdWUuZGVzdHJveSgpLGUuY29sb3IuZGVzdHJveSgpLGUudmlzaWJsZS5kZXN0cm95KCksZS50aXRsZS5kZXN0cm95KCk7dGhpcy5fdmFsdWVzU3Bhd25BcnJheT1bXX1fYWRkVmFsdWVzU3Bhd25zU3Vic2NyaXB0aW9ucygpe2ZvcihsZXQgZT0wO2U8dGhpcy5fdmFsdWVzU3Bhd25BcnJheS5sZW5ndGg7ZSsrKXtjb25zdCB0PXRoaXMuX3ZhbHVlc1NwYXduQXJyYXlbZV07dC52YWx1ZS5zdWJzY3JpYmUodGhpcy5fdXBkYXRlVmFsdWVzSFRNTEVsSGFuZGxlci5iaW5kKHRoaXMsZSkpLHQuY29sb3Iuc3Vic2NyaWJlKHRoaXMuX3VwZGF0ZVZhbHVlQ29sb3JIYW5kbGVyLmJpbmQodGhpcyxlKSksdC52aXNpYmxlLnN1YnNjcmliZSh0aGlzLl91cGRhdGVWYWx1ZVZpc2libGVIYW5kbGVyLmJpbmQodGhpcyxlKSksdC50aXRsZS5zdWJzY3JpYmUodGhpcy5fdXBkYXRlVmFsdWVzVGl0bGVIVE1MRWxIYW5kbGVyLmJpbmQodGhpcyxlKSl9fV91cGRhdGVTaG93VmFsdWVzKCl7ZnVuY3Rpb24gZShlKXtpZighZSlyZXR1cm47Y29uc3QgdD1BcnJheS5mcm9tKGUuY2hpbGRyZW4pLmV2ZXJ5KChlPT5lLmNsYXNzTGlzdC5jb250YWlucyhYLmJsb2NrSGlkZGVuKSkpO2UuY2xhc3NMaXN0LnRvZ2dsZShYLmJsb2NrSGlkZGVuLHQpfWUodGhpcy5fdmFsdWVzQWRkaXRpb25hbFdyYXBwZXJFbCksZSh0aGlzLl92YWx1ZXNQYXJlbnRFbCl9X2FkZFN0YXR1c2VzV2lkZ2V0KGUpe3RoaXMuX2hpZGVJbnZpc2libGVIb3Zlcj1lLnZpc2liaWxpdHkoKS5zcGF3bigpLHRoaXMuX2hpZGVJbnZpc2libGVIb3Zlci5zdWJzY3JpYmUodGhpcy5fdXBkYXRlSGlkZUludmlzaWJsZUhvdmVyTW9kZS5iaW5kKHRoaXMpLHtjYWxsV2l0aExhc3Q6ITB9KSx0aGlzLl9oaWRlVmFsdWVzPSgwLGQuY29tYmluZSkoKChlLHQpPT5lfHx0KSxlLmRhdGFTb3VyY2VFcnJvclN0YXR1c1Nob3duLndlYWtSZWZlcmVuY2UoKSxlLmlzU3ltYm9sSW52YWxpZFN0YXR1c1Nob3duLndlYWtSZWZlcmVuY2UoKSksdGhpcy5faGlkZVZhbHVlcy5zdWJzY3JpYmUodGhpcy5fdXBkYXRlSGlkZVZhbHVlc01vZGUuYmluZCh0aGlzKSx7Y2FsbFdpdGhMYXN0OiEwfSksdGhpcy5fc3RhdHVzZXNXcmFwcGVyPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLHRoaXMuX3N0YXR1c2VzV3JhcHBlci5jbGFzc0xpc3QuYWRkKGNlLnN0YXR1c2VzV3JhcHBlciksdGhpcy5fc3RhdHVzZXNXcmFwcGVyLmRhdGFzZXQucWFJZD0ibGVnZW5kLXN0YXR1c2VzLXdyYXBwZXIiLHRoaXMuX3N0YXR1c2VzV2lkZ2V0U3RhdGU9ZSx0aGlzLl9kaXNhYmxlZC52YWx1ZSgpP3RoaXMuX3N0YXR1c2VzV2lkZ2V0RGVzdHJveT1DKHtjb250YWluZXI6dGhpcy5fc3RhdHVzZXNXcmFwcGVyLHN0YXR1c2VzOmUudmlzaWJsZU1vZGVscygpLHRvb2x0aXA6ZS50b29sdGlwKCksdGhlbWU6YmUsc2hvd1Rvb2x0aXBPdmVycmlkZUNhbGxiYWNrOnRoaXMuX3Nob3dUb29sdGlwT3ZlcnJpZGVDYWxsYmFjaygpfSk6KHRoaXMuX3N0YXR1c2VzV2lkZ2V0RGVzdHJveT8uKCksdGhpcy5fc3RhdHVzZXNXaWRnZXREZXN0cm95PXZvaWQgMCksKDAsbi5lbnN1cmVOb3ROdWxsKSh0aGlzLl9maXJzdEJsb2NrV3JhcHBlcikuYXBwZW5kQ2hpbGQodGhpcy5fc3RhdHVzZXNXcmFwcGVyKSx0aGlzLl91cGRhdGVTdGF0dXNXaWRnZXRWaXNpYmlsaXR5KHRoaXMuX2Rpc2FibGVkLnZhbHVlKCkpLAp0aGlzLl9yZXNpemVPYnNlcnZlcj1uZXcgUmVzaXplT2JzZXJ2ZXIodGhpcy5faGFuZGxlclJlc3RyaWN0VGl0bGVXaWR0aC5iaW5kKHRoaXMpKSxudWxsIT09dGhpcy5fYWN0aW9uc1BhcmVudEVsJiZ0aGlzLl9yZXNpemVPYnNlcnZlci5vYnNlcnZlKHRoaXMuX2FjdGlvbnNQYXJlbnRFbCksdGhpcy5fZWwmJnRoaXMuX3Jlc2l6ZU9ic2VydmVyLm9ic2VydmUodGhpcy5fZWwpfV91cGRhdGVUaXRsZU1heFdpZHRoKCl7aWYobnVsbD09PXRoaXMuX2VsfHxudWxsPT09dGhpcy5fdGl0bGVzV3JhcHBlckVsKXJldHVybjtjb25zdCBlPXRoaXMuX2FsbEJ1dHRvbnNXaWR0aHx8MCx0PSh0aGlzLl9sYXN0QWN0aW9uc1dyYXBwZXJXaWR0aHx8MCkrKHRoaXMuX2xhc3RTdGF0dXNlc1dyYXBwZXJXaWR0aHx8MCksaT10aGlzLl9pc1dpZHRoQnV0dG9uc01vZGUoKT9NYXRoLm1heChlLHQpOnQ7dGhpcy5fdGl0bGVzV3JhcHBlckVsLnN0eWxlLm1heFdpZHRoPWk+MD9gJHtNYXRoLmFicyh0aGlzLl9lbC5jbGllbnRXaWR0aC1pKX1weGA6IiJ9X3VwZGF0ZUFsbEJ1dHRvbnNXaWR0aCgpe3RoaXMuX2FsbEJ1dHRvbnNXaWR0aD10aGlzLl9nZXRCdXR0b25zQ291bnQoKSpMKzEsdGhpcy5fdXBkYXRlVGl0bGVNYXhXaWR0aCgpfV9zaG93VG9vbHRpcE92ZXJyaWRlQ2FsbGJhY2soKXt9X3VwZGF0ZUhpZGVJbnZpc2libGVIb3Zlck1vZGUoZSl7bnVsbCE9PXRoaXMuX2VsJiZ0aGlzLl9lbC5jbGFzc0xpc3QudG9nZ2xlKGNlLmhpZGVJbnZpc2libGVIb3ZlcixlKX1fdXBkYXRlSGlkZVZhbHVlc01vZGUoZSl7bnVsbCE9PXRoaXMuX2VsJiZ0aGlzLl9lbC5jbGFzc0xpc3QudG9nZ2xlKGNlLmhpZGVWYWx1ZXMsZSl9X3Nob3dBY3Rpb25zKCl7aWYobnVsbD09PXRoaXMuX2VsfHwhdGhpcy5fd2l0aEFjdGlvbnMpcmV0dXJuO3RoaXMuX2VsLmNsYXNzTGlzdC5hZGQoY2Uud2l0aEFjdGlvbiksdGhpcy5fdG9nZ2xlSGlkZGVuQWN0aW9ucz8uKCEwKTtjb25zdCBlPXRoaXMuX3ZhbHVlc1BhcmVudEVsPy5vZmZzZXRUb3A9PT10aGlzLl90aXRsZXNXcmFwcGVyRWw/Lm9mZnNldFRvcDt0aGlzLl9lbC5jbGFzc0xpc3QudG9nZ2xlKGNlLndpdGhUYWlsLGUpLHRoaXMuX3VwZGF0ZVRpdGxlTWF4V2lkdGgoKX1faGlkZUFjdGlvbnMoKXtudWxsIT09dGhpcy5fZWwmJnRoaXMuX3dpdGhBY3Rpb25zJiYodGhpcy5fZWwuY2xhc3NMaXN0LnJlbW92ZShjZS53aXRoQWN0aW9uKSx0aGlzLl90b2dnbGVIaWRkZW5BY3Rpb25zPy4oITEpLG51bGwhPT10aGlzLl92YWx1ZXNQYXJlbnRFbCYmdGhpcy5fdmFsdWVzUGFyZW50RWwuY2xhc3NMaXN0LnJlbW92ZShjZS53aXRoVGFpbCksdGhpcy5fdXBkYXRlVGl0bGVNYXhXaWR0aCgpKX1faGFuZGxlclJlc3RyaWN0VGl0bGVXaWR0aChlKXtpZihudWxsPT09dGhpcy5fYWN0aW9uc1BhcmVudEVsfHxudWxsPT09dGhpcy5fZmlyc3RCbG9ja1dyYXBwZXIpcmV0dXJuO2xldCB0PW51bGwsaT0hMTtmb3IoY29uc3QgcyBvZiBlKXMudGFyZ2V0PT09dGhpcy5fYWN0aW9uc1BhcmVudEVsJiYodD1zLmNvbnRlbnRSZWN0LndpZHRoKSxzLnRhcmdldD09PXRoaXMuX2VsJiYoaT0hMCk7KHQhPT10aGlzLl9sYXN0QWN0aW9uc1dyYXBwZXJXaWR0aHx8aSkmJihudWxsIT09dCYmKHRoaXMuX2xhc3RBY3Rpb25zV3JhcHBlcldpZHRoPXQpLHRoaXMuX3VwZGF0ZVRpdGxlTWF4V2lkdGgoKSl9X2NsZWFyRGlzYWJsZVN0YXRlKCl7bnVsbCE9PXRoaXMuX2VsJiYodGhpcy5fZWwuY2xhc3NMaXN0LnJlbW92ZShjZS5leWVMb2FkaW5nKSx0aGlzLl9lbC5jbGFzc0xpc3QucmVtb3ZlKGNlLmRpc2FibGVkKSx0aGlzLl91cGRhdGVTdGF0dXNXaWRnZXRWaXNpYmlsaXR5KHRoaXMuX2Rpc2FibGVkLnZhbHVlKCkpLHRoaXMuX3VwZGF0ZVRpdGxlTWF4V2lkdGgoKSl9X3VwZGF0ZURpc2FibGVkT25JbnRlcnZhbFN0YXRlKCl7dGhpcy5fZWw/LmNsYXNzTGlzdC50b2dnbGUoY2UuZGlzYWJsZWRPbkludGVydmFsLHRoaXMuX2Rpc2FibGVkT25JbnRlcnZhbC52YWx1ZSgpKX1fdXBkYXRlU2VsZWN0ZWRTdGF0ZSgpe251bGwhPT10aGlzLl9lbCYmdGhpcy5fd2l0aEFjdGlvbnMmJnRoaXMuX2VsLmNsYXNzTGlzdC50b2dnbGUoY2Uuc2VsZWN0ZWQsdGhpcy5fc2VsZWN0ZWQudmFsdWUoKSl9X3VwZGF0ZVNob3dUaXRsZXMoKXtudWxsIT09dGhpcy5fdGl0bGVzV3JhcHBlckVsJiYodGhpcy5fdGl0bGVzV3JhcHBlckVsLmNsYXNzTGlzdC50b2dnbGUoWC5ibG9ja0hpZGRlbix0aGlzLl9pc1RpdGxlSGlkZGVuLnZhbHVlKCkpLG51bGwhPT10aGlzLl9hY3Rpb25zUGFyZW50RWwmJnRoaXMuX2FjdGlvbnNQYXJlbnRFbC5jbGFzc0xpc3QudG9nZ2xlKFguYmxvY2tIaWRkZW4sdGhpcy5faXNUaXRsZUhpZGRlbi52YWx1ZSgpKSl9X3VwZGF0ZVZhbHVlcygpe3RoaXMuX3JlbW92ZVZhbHVlc1NwYXduc1N1YnNjcmlwdGlvbnMoKSx0aGlzLl9jcmVhdGVWYWx1ZXNTcGF3bnMoKSxudWxsIT09dGhpcy5fdmFsdWVzUGFyZW50RWwmJm51bGwhPT10aGlzLl92YWx1ZXNBZGRpdGlvbmFsV3JhcHBlckVsJiYodGhpcy5fdmFsdWVzRWxlbWVudHM9W10sdGhpcy5fdmFsdWVzQWRkaXRpb25hbFdyYXBwZXJFbC5pbm5lckhUTUw9IiIpLHRoaXMuX3JlbmRlclZhbHVlcygpLHRoaXMuX2FkZFZhbHVlc1NwYXduc1N1YnNjcmlwdGlvbnMoKSx0aGlzLl91cGRhdGVTaG93VmFsdWVzKCl9X3VwZGF0ZUFjdGlvblZpc2liaWxpdGllcyhlKXtudWxsIT09dGhpcy5fYWN0aW9uc1BhcmVudEVsJiZ0aGlzLl9hY3Rpb25zUGFyZW50RWwucXVlcnlTZWxlY3RvckFsbChgLiR7Y2UuYnV0dG9ufWApW2VdLmNsYXNzTGlzdC50b2dnbGUoWC5ibG9ja0hpZGRlbiwhdGhpcy5fYWN0aW9uc1NwYXduQXJyYXlbZV0udmlzaWJsZS52YWx1ZSgpKX1fdXBkYXRlQWN0aW9uVGl0bGUoZSl7Y29uc3QgdD10aGlzLl9hY3Rpb25zU3Bhd25BcnJheVtlXS50aXRsZTtpZihudWxsPT09dGhpcy5fYWN0aW9uc1BhcmVudEVsfHxudWxsPT09dClyZXR1cm47Y29uc3QgaT10aGlzLl9hY3Rpb25zUGFyZW50RWwucXVlcnlTZWxlY3RvckFsbChgLiR7Y2UuYnV0dG9ufWApW2VdCjtpLnNldEF0dHJpYnV0ZSgidGl0bGUiLHQudmFsdWUoKSksaS5oYXNBdHRyaWJ1dGUoImFyaWEtbGFiZWwiKSYmaS5zZXRBdHRyaWJ1dGUoImFyaWEtbGFiZWwiLHQudmFsdWUoKSksaS5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiY29tbW9uLXRvb2x0aXAtdXBkYXRlIikpfV91cGRhdGVBY3Rpb25BY3RpdmVTdGF0dXMoZSl7Y29uc3R7YWN0aXZlOnR9PXRoaXMuX2FjdGlvbnNTcGF3bkFycmF5W2VdO251bGwhPT10aGlzLl9hY3Rpb25zUGFyZW50RWwmJnQmJnRoaXMuX2FjdGlvbnNQYXJlbnRFbC5xdWVyeVNlbGVjdG9yQWxsKGAuJHtjZS5idXR0b259YCkuZm9yRWFjaCgoKGkscyk9PntlPT09cyYmaS5jbGFzc0xpc3QudG9nZ2xlKGNlLmJ1dHRvbl9fYWN0aXZlLHQudmFsdWUoKSl9KSl9X3VwZGF0ZUN1c3RvbVRleHRDb2xvcigpe2NvbnN0IGU9dGhpcy5fY3VzdG9tVGV4dENvbG9yLnZhbHVlKCl8fCIiO2Zvcihjb25zdCB0IG9mIHRoaXMuX3RpdGxlQ29udGFpbmVycyludWxsIT09dCYmKHQuc3R5bGUuY29sb3I9ZSk7Y29uc3QgdD0oMCxuLmVuc3VyZU5vdE51bGwpKHRoaXMuX3ZhbHVlc1BhcmVudEVsKS5xdWVyeVNlbGVjdG9yQWxsKGAuJHtjZS52YWx1ZVRpdGxlfWApO2ZvcihsZXQgaT0wO2k8dC5sZW5ndGg7aSsrKXRbaV0uc3R5bGUuY29sb3I9ZTsoMCxuLmVuc3VyZU5vdE51bGwpKHRoaXMuX2VsKS5jbGFzc0xpc3QudG9nZ2xlKGNlLndpdGhDdXN0b21UZXh0Q29sb3IsQm9vbGVhbihlKSl9X3VwZGF0ZVN0YXR1c1dpZGdldFZpc2liaWxpdHkoZSl7bnVsbCE9PXRoaXMuX3N0YXR1c2VzV3JhcHBlciYmKGU/KHRoaXMuX3N0YXR1c2VzV2lkZ2V0RGVzdHJveT8uKCksdGhpcy5fc3RhdHVzZXNXaWRnZXREZXN0cm95PXZvaWQgMCk6dGhpcy5fc3RhdHVzZXNXaWRnZXREZXN0cm95PUMoe2NvbnRhaW5lcjp0aGlzLl9zdGF0dXNlc1dyYXBwZXIsc3RhdHVzZXM6dGhpcy5fc3RhdHVzZXNXaWRnZXRTdGF0ZT8udmlzaWJsZU1vZGVscygpPz9uZXcgci5XYXRjaGVkVmFsdWUoW10pLnJlYWRvbmx5KCksdG9vbHRpcDp0aGlzLl9zdGF0dXNlc1dpZGdldFN0YXRlPy50b29sdGlwKCk/P25ldyByLldhdGNoZWRWYWx1ZSgiIikucmVhZG9ubHkoKSx0aGVtZTpiZSxzaG93VG9vbHRpcE92ZXJyaWRlQ2FsbGJhY2s6dGhpcy5fc2hvd1Rvb2x0aXBPdmVycmlkZUNhbGxiYWNrKCl9KSl9X2lzVGl0bGVXaXRoU3ltYm9sTG9nbyhlKXtyZXR1cm4gOD09PWUuaWR8fDA9PT1lLmlkfX1jb25zdCBmZT1fLmlzU2FmYXJpPyJjbGljayI6ImF1eGNsaWNrIjtjbGFzcyBTZSBleHRlbmRzIHZle2NvbnN0cnVjdG9yKGUsdCxpKXtzdXBlcihlLHQsaSksdGhpcy5fd2hlZWxDbGlja0hhbmRsZXI9bnVsbCx0aGlzLl9jYW5VcGRhdGVSb3dWaXNpYmlsaXR5PSEwLHRoaXMuX2dsb2JhbFJvd1Zpc2liaWxpdHk9dGhpcy5fbW9kZWwuZ2xvYmFsVmlzaWJpbGl0eSgpLnNwYXduKCksdGhpcy5fZ2xvYmFsUm93VmlzaWJpbGl0eS5zdWJzY3JpYmUodGhpcy5fdXBkYXRlU2hvd0xpbmUuYmluZCh0aGlzKSx7Y2FsbFdpdGhMYXN0OiEwfSksdGhpcy5faGFzNUJ1dHRvbnM9dGhpcy5fbW9kZWwuaXNBYmxlU2hvd1NvdXJjZUNvZGUoKS5zcGF3bigpLHRoaXMuX2hhczVCdXR0b25zLnN1YnNjcmliZSh0aGlzLl91cGRhdGU1QnV0dG9uc1N0eWxlcy5iaW5kKHRoaXMpLHtjYWxsV2l0aExhc3Q6ITB9KSx0aGlzLl91cGRhdGVTdGF0ZXMoIXRoaXMuX2Rpc2FibGVkLnZhbHVlKCkpLGkuc3RhdHVzZXNXaWRnZXRTdGF0ZSYmdGhpcy5fYWRkU3RhdHVzZXNXaWRnZXQoaS5zdGF0dXNlc1dpZGdldFN0YXRlKSx0aGlzLl9zZWxlY3RlZC5zdWJzY3JpYmUodGhpcy5fdXBkYXRlVGl0bGVNYXhXaWR0aC5iaW5kKHRoaXMpKSxpLndpdGhBY3Rpb25zJiYodGhpcy5fd2hlZWxDbGlja0hhbmRsZXI9dGhpcy5fb25XaGVlbENsaWNrZWQuYmluZCh0aGlzKSxudWxsIT09dGhpcy5fdGl0bGVzV3JhcHBlckVsJiZ0aGlzLl90aXRsZXNXcmFwcGVyRWwuYWRkRXZlbnRMaXN0ZW5lcihmZSx0aGlzLl93aGVlbENsaWNrSGFuZGxlcikpfWRlc3Ryb3koKXt0aGlzLl9oYXM1QnV0dG9ucy5kZXN0cm95KCksdGhpcy5fZ2xvYmFsUm93VmlzaWJpbGl0eSYmdGhpcy5fZ2xvYmFsUm93VmlzaWJpbGl0eS5kZXN0cm95KCksbnVsbCE9PXRoaXMuX3doZWVsQ2xpY2tIYW5kbGVyJiZudWxsIT09dGhpcy5fdGl0bGVzV3JhcHBlckVsJiZ0aGlzLl90aXRsZXNXcmFwcGVyRWwucmVtb3ZlRXZlbnRMaXN0ZW5lcihmZSx0aGlzLl93aGVlbENsaWNrSGFuZGxlciksc3VwZXIuZGVzdHJveSgpfWFjY2Vzc2libGVCdXR0b25zKCl7cmV0dXJuIHRoaXMuX2dsb2JhbFJvd1Zpc2liaWxpdHkudmFsdWUoKT9zdXBlci5hY2Nlc3NpYmxlQnV0dG9ucygpOltdfV91cGRhdGVBY3Rpb25zVmlzaWJpbGl0aWVzQnlNb2RlKCl7aWYoIXRoaXMuX3dpdGhBY3Rpb25zKXJldHVybjtjb25zdCBlPXRoaXMuX21vZGVsLmFjdGlvbnMoKSx0PVtdO2xldCBpPVtdO2lmKDI9PT10aGlzLl9yb3dNb2RlfHwxPT09dGhpcy5fcm93TW9kZSllWzBdLnZpc2libGUudmFsdWUoKSYmdC5wdXNoKHRoaXMuX2FjdGlvbkVsZW1lbnRzWzBdKSxlW3RoaXMuX2FjdGlvbkVsZW1lbnRzLmxlbmd0aC0xXS52aXNpYmxlLnZhbHVlKCkmJnQucHVzaCh0aGlzLl9hY3Rpb25FbGVtZW50c1t0aGlzLl9hY3Rpb25FbGVtZW50cy5sZW5ndGgtMV0pLGk9dGhpcy5fYWN0aW9uRWxlbWVudHMuc2xpY2UoMSx0aGlzLl9hY3Rpb25FbGVtZW50cy5sZW5ndGgtMSk7ZWxzZSBmb3IobGV0IGk9MDtpPHRoaXMuX2FjdGlvbkVsZW1lbnRzLmxlbmd0aC0xO2krKyllW2ldLnZpc2libGUudmFsdWUoKSYmdC5wdXNoKHRoaXMuX2FjdGlvbkVsZW1lbnRzW2ldKTtpLmZvckVhY2goKGU9PmUuY2xhc3NMaXN0LnRvZ2dsZShYLmJsb2NrSGlkZGVuLCEwKSkpLHQuZm9yRWFjaCgoZT0+ZS5jbGFzc0xpc3QudG9nZ2xlKFguYmxvY2tIaWRkZW4sITEpKSl9X3VwZGF0ZVRpdGxlc1Zpc2liaWxpdGllc0J5TW9kZSgpe3RoaXMuX3RpdGxlc1N0YXRlc1NwYXduLnZhbHVlKCkuZm9yRWFjaCgoKGUsdCk9PntpZig5IT09ZS5pZClyZXR1cm4KO2NvbnN0IGk9dGhpcy5faXNUaXRsZUhpZGRlbkJ5TW9kZShlKTt0aGlzLl90aXRsZUNvbnRhaW5lcnNbdF0/LmNsYXNzTGlzdC50b2dnbGUoWC5ibG9ja0hpZGRlbixpKSx0aGlzLl90aXRsZUVsZW1lbnRzW3RdPy5jbGFzc0xpc3QudG9nZ2xlKFguYmxvY2tIaWRkZW4saSl9KSl9X2lzVGl0bGVIaWRkZW5CeU1vZGUoZSl7cmV0dXJuIDk9PT1lLmlkPzMhPT10aGlzLl90aXRsZXNNb2RlOnN1cGVyLl9pc1RpdGxlSGlkZGVuQnlNb2RlKGUpfV91cGRhdGVTaG93TGluZSgpe2lmKG51bGw9PT10aGlzLl9lbHx8IXRoaXMuX2NhblVwZGF0ZVJvd1Zpc2liaWxpdHkpcmV0dXJuO2NvbnN0IGU9IXRoaXMuX2dsb2JhbFJvd1Zpc2liaWxpdHkudmFsdWUoKTtlP3RoaXMuX2VsLmNsYXNzTGlzdC50b2dnbGUoWC5ibG9ja0hpZGRlbixlKTpzdXBlci5fdXBkYXRlU2hvd0xpbmUoKX1fZ2V0QnV0dG9uc0NvdW50KCl7cmV0dXJuIHRoaXMuX2FjdGlvbkVsZW1lbnRzLmZpbHRlcigoZT0+IWUuY2xhc3NMaXN0LmNvbnRhaW5zKFguYmxvY2tIaWRkZW4pKSkubGVuZ3RofV9yZW5kZXIoKXtzdXBlci5fcmVuZGVyKCk7Y29uc3QgZT0oMCxuLmVuc3VyZU5vdE51bGwpKHRoaXMuX2VsKTtlLmNsYXNzTGlzdC5hZGQoY2UuaXRlbSxjZS5zdHVkeSksZS5kYXRhc2V0LnFhSWQ9ImxlZ2VuZC1zb3VyY2UtaXRlbSIsZS5kYXRhc2V0LmVudGl0eUlkPXRoaXMuX21vZGVsLmdldFNvdXJjZSgpLmlkKCksZS5zZXRBdHRyaWJ1dGUoInJvbGUiLCJ0b29sYmFyIil9X2dldEF0dHJpYnV0ZXNGb3JUaXRsZVN0YXRlKGUpe3JldHVybiA3PT09ZS5pZHx8OD09PWUuaWR8fDk9PT1lLmlkP3tkYXRhUWFJZDoibGVnZW5kLXNvdXJjZS10aXRsZSIsY2xhc3NOYW1lOmNlLm1haW5UaXRsZX06MTA9PT1lLmlkP3tkYXRhUWFJZDoibGVnZW5kLXNvdXJjZS1kZXNjcmlwdGlvbiIsY2xhc3NOYW1lOmNlLmlucHV0VGl0bGV9Om51bGx9X3JlbmRlclZhbHVlcygpe2NvbnN0IGU9dGhpcy5faW5pdFdyYXBwZXJzSWZOb3RJbml0aWFsaXplZCgpLHQ9dGhpcy5fdmFsdWVzLnZhbHVlKCk7Zm9yKGNvbnN0IGkgb2YgdCl7Y29uc3QgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTt0LmRhdGFzZXQudGVzdElkVmFsdWVUaXRsZT1pLnRpdGxlLnZhbHVlKCksdC5jbGFzc0xpc3QuYWRkKGNlLnZhbHVlSXRlbSksdC5jbGFzc0xpc3QudG9nZ2xlKFguYmxvY2tIaWRkZW4sIWkudmlzaWJsZS52YWx1ZSgpKTtjb25zdCBzPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3MuY2xhc3NMaXN0LmFkZChjZS52YWx1ZVZhbHVlKSxzLnN0eWxlLmNvbG9yPWkuY29sb3IudmFsdWUoKXx8IiIscy5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShpLnZhbHVlLnZhbHVlKCkpKTtjb25zdCBvPWkudGl0bGUudmFsdWUoKTt2b2lkIDAhPT1vJiYocy5jbGFzc0xpc3QuYWRkKCJhcHBseS1jb21tb24tdG9vbHRpcCIpLHMudGl0bGU9byksdC5hcHBlbmRDaGlsZChzKSx0aGlzLl92YWx1ZXNFbGVtZW50cy5wdXNoKHt2YWx1ZTpzfSksZS5hcHBlbmRDaGlsZCh0KX19X3VwZGF0ZVZhbHVlc1RpdGxlSFRNTEVsSGFuZGxlcihlLHQ9IiIpe2NvbnN0IGk9KDAsbi5lbnN1cmUpKHRoaXMuX3ZhbHVlc0VsZW1lbnRzW2VdLnZhbHVlKTtpLmNsYXNzTGlzdC50b2dnbGUoImFwcGx5LWNvbW1vbi10b29sdGlwIiwwIT09dC5sZW5ndGgpLGkudGl0bGU9dH1fdXBkYXRlNUJ1dHRvbnNTdHlsZXMoZSl7bnVsbCE9PXRoaXMuX2VsJiYodGhpcy5fZWwuY2xhc3NMaXN0LnRvZ2dsZShjZS5oYXM1QnV0dG9ucyxlKSx0aGlzLl91cGRhdGVBbGxCdXR0b25zV2lkdGgoKSl9X29uV2hlZWxDbGlja2VkKGUpezE9PT1lLmJ1dHRvbiYmdGhpcy5fbW9kZWwub25SZW1vdmVTb3VyY2UoKX19dmFyIHllPWkoMTc5NzcxKTtjbGFzcyB3ZSBleHRlbmRzIHZle2NvbnN0cnVjdG9yKGUsdCxpKXtzdXBlcihlLHQsaSksdGhpcy5fY2xpZW50SGVpZ2h0PW51bGwsdGhpcy5fdXBkYXRlTGlua2VkU3RhdGU9KCk9PnsoMCxuLmVuc3VyZU5vdE51bGwpKHRoaXMuX2VsKS5jbGFzc0xpc3QudG9nZ2xlKGNlLmxpbmtlZCxCb29sZWFuKHRoaXMuX2xpbmtlZD8udmFsdWUoKSkpLHRoaXMuX3VwZGF0ZVRpdGxlTWF4V2lkdGgoKX0sdGhpcy5fZmxhZ2dlZD10aGlzLl9tb2RlbC5mbGFnZ2VkKCkuc3Bhd24oKSx0aGlzLl9mbGFnZ2VkLnN1YnNjcmliZSh0aGlzLl91cGRhdGVGbGFnZ2VkU3RhdGUuYmluZCh0aGlzKSksdGhpcy5fbGlua2VkPXRoaXMuX21vZGVsLmxpbmtlZCgpLnNwYXduKCksdGhpcy5fdXBkYXRlTGlua2VkU3RhdGUmJnRoaXMuX2xpbmtlZC5zdWJzY3JpYmUodGhpcy5fdXBkYXRlTGlua2VkU3RhdGUuYmluZCh0aGlzKSx7Y2FsbFdpdGhMYXN0OiEwfSksdGhpcy5fdXBkYXRlU3RhdGVzKCksaS5zdGF0dXNlc1dpZGdldFN0YXRlJiZ0aGlzLl9hZGRTdGF0dXNlc1dpZGdldChpLnN0YXR1c2VzV2lkZ2V0U3RhdGUpLHRoaXMuX3NlbGVjdGVkLnN1YnNjcmliZSh0aGlzLl91cGRhdGVUaXRsZU1heFdpZHRoLmJpbmQodGhpcykpfWRlc3Ryb3koKXtzdXBlci5kZXN0cm95KCksdGhpcy5fZmxhZ2dlZD8uZGVzdHJveSgpLHRoaXMuX2xpbmtlZD8uZGVzdHJveSgpfWdldEhlaWdodCgpe3JldHVybiBudWxsPT09dGhpcy5fZWw/bnVsbDoobnVsbD09PXRoaXMuX2NsaWVudEhlaWdodCYmKHRoaXMuX2NsaWVudEhlaWdodD10aGlzLl9lbC5jbGllbnRIZWlnaHQsMD09PXRoaXMuX2NsaWVudEhlaWdodCYmKHRoaXMuX2NsaWVudEhlaWdodD1udWxsKSksdGhpcy5fY2xpZW50SGVpZ2h0KX1fdXBkYXRlQWN0aW9uc1Zpc2liaWxpdGllc0J5TW9kZSgpe2lmKCF0aGlzLl93aXRoQWN0aW9ucylyZXR1cm47Y29uc3QgZT1bXTtsZXQgdD1bXTtjb25zdCBpPXRoaXMuX21vZGVsLmFjdGlvbnMoKTtpZigxPT09dGhpcy5fcm93TW9kZSlpW3RoaXMuX2FjdGlvbkVsZW1lbnRzLmxlbmd0aC0xXS52aXNpYmxlLnZhbHVlKCkmJmUucHVzaCh0aGlzLl9hY3Rpb25FbGVtZW50c1t0aGlzLl9hY3Rpb25FbGVtZW50cy5sZW5ndGgtMV0pLAp0PXRoaXMuX2FjdGlvbkVsZW1lbnRzLnNsaWNlKDAsdGhpcy5fYWN0aW9uRWxlbWVudHMubGVuZ3RoLTEpO2Vsc2UgZm9yKGxldCB0PTA7dDx0aGlzLl9hY3Rpb25FbGVtZW50cy5sZW5ndGg7dCsrKWlbdF0udmlzaWJsZS52YWx1ZSgpJiZlLnB1c2godGhpcy5fYWN0aW9uRWxlbWVudHNbdF0pO3QuZm9yRWFjaCgoZT0+ZS5jbGFzc0xpc3QudG9nZ2xlKFguYmxvY2tIaWRkZW4sITApKSksZS5mb3JFYWNoKChlPT5lLmNsYXNzTGlzdC50b2dnbGUoWC5ibG9ja0hpZGRlbiwhMSkpKX1fdXBkYXRlVGl0bGVzVmlzaWJpbGl0aWVzQnlNb2RlKCl7dGhpcy5faGlkZVRpdGxlQW5kSXRzQ29udGFpbmVySWZSZXF1aXJlZCgzKSx0aGlzLl9oaWRlVGl0bGVBbmRJdHNDb250YWluZXJJZlJlcXVpcmVkKDQpLHRoaXMuX2hpZGVUaXRsZUFuZEl0c0NvbnRhaW5lcklmUmVxdWlyZWQoMil9X2lzVGl0bGVIaWRkZW5CeU1vZGUoZSl7Y29uc3QgdD1lLmlkO3JldHVybiAyIT09dCYmMyE9PXQmJjQhPT10P3N1cGVyLl9pc1RpdGxlSGlkZGVuQnlNb2RlKGUpOjI9PT10JiZ0aGlzLl9pc011bHRpcGxlTGF5b3V0LnZhbHVlKCk/MT09PXRoaXMuX3RpdGxlc01vZGU6MyE9PXRoaXMuX3RpdGxlc01vZGV9X2hpZGVUaXRsZUFuZEl0c0NvbnRhaW5lcklmUmVxdWlyZWQoZSl7Y29uc3QgdD10aGlzLl9nZXRUaXRsZUluZGV4QnlEYXRhTmFtZShlKTtpZigtMT09PXQpcmV0dXJuO2NvbnN0IGk9dGhpcy5fdGl0bGVzU3RhdGVzU3Bhd24udmFsdWUoKVt0XSxzPXRoaXMuX3RpdGxlQ29udGFpbmVyc1t0XSxvPXRoaXMuX3RpdGxlRWxlbWVudHNbdF0sbj10aGlzLl9pc1RpdGxlSGlkZGVuQnlNb2RlKGkpO3M/LmNsYXNzTGlzdC50b2dnbGUoWC5ibG9ja0hpZGRlbixuKSxvPy5jbGFzc0xpc3QudG9nZ2xlKFguYmxvY2tIaWRkZW4sbil9X2dldEJ1dHRvbnNDb3VudCgpe3JldHVybiAxPT09dGhpcy5fcm93TW9kZT8xOnRoaXMuX2FjdGlvbkVsZW1lbnRzLmZpbHRlcigoZT0+IWUuY2xhc3NMaXN0LmNvbnRhaW5zKFguYmxvY2tIaWRkZW4pKSkubGVuZ3RofV9yZW5kZXIoKXtzdXBlci5fcmVuZGVyKCk7Y29uc3QgZT0oMCxuLmVuc3VyZU5vdE51bGwpKHRoaXMuX2VsKTtlLmNsYXNzTGlzdC5hZGQoY2UuaXRlbSxjZS5zZXJpZXMpLGUuY2xhc3NMaXN0LnRvZ2dsZShjZS5vbmx5T25lQnV0dG9uQ2FuQmVTdGljayx0aGlzLl9tb2RlbC5pc09uZUJ1dHRvbkNhbkJlU3RpY2soKSksZS5kYXRhc2V0LnFhSWQ9ImxlZ2VuZC1zZXJpZXMtaXRlbSIsZS5zZXRBdHRyaWJ1dGUoInJvbGUiLCJ0b29sYmFyIil9X3VwZGF0ZVN0YXRlcygpe3N1cGVyLl91cGRhdGVTdGF0ZXMoKSx0aGlzLl91cGRhdGVGbGFnZ2VkU3RhdGUoKSx0aGlzLl91cGRhdGVMaW5rZWRTdGF0ZT8uKCl9X3JlbmRlclZhbHVlcygpe2NvbnN0IGU9dGhpcy5faW5pdFdyYXBwZXJzSWZOb3RJbml0aWFsaXplZCgpLHQ9dGhpcy5fdmFsdWVzLnZhbHVlKCk7Zm9yKGNvbnN0IGkgb2YgdCl7Y29uc3QgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTt0LmRhdGFzZXQudGVzdElkVmFsdWVUaXRsZT1pLnRpdGxlLnZhbHVlKCksdC5jbGFzc0xpc3QuYWRkKGNlLnZhbHVlSXRlbSksdC5jbGFzc0xpc3QudG9nZ2xlKFguYmxvY2tIaWRkZW4sIWkudmlzaWJsZS52YWx1ZSgpKSx0LmNsYXNzTGlzdC50b2dnbGUoY2UudW5pbXBvcnRhbnQsaS51bmltcG9ydGFudC52YWx1ZSgpKTtjb25zdCBzPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLG89aS50aXRsZS52YWx1ZSgpfHwiIixuPXRoaXMuX2N1c3RvbVRleHRDb2xvci52YWx1ZSgpfHwiIjtzLmNsYXNzTGlzdC5hZGQoY2UudmFsdWVUaXRsZSkscy5jbGFzc0xpc3QudG9nZ2xlKFguYmxvY2tIaWRkZW4sMD09PW8ubGVuZ3RoKSxzLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKG8pKSxzLnN0eWxlLmNvbG9yPW4sdC5hcHBlbmRDaGlsZChzKTtjb25zdCBhPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2EuY2xhc3NMaXN0LmFkZChjZS52YWx1ZVZhbHVlKSxhLnN0eWxlLmNvbG9yPWkuY29sb3IudmFsdWUoKXx8IiIsYS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShpLnZhbHVlLnZhbHVlKCkpKSx0LmFwcGVuZENoaWxkKGEpLHRoaXMuX3ZhbHVlc0VsZW1lbnRzLnB1c2goe3RpdGxlOnMsdmFsdWU6YX0pLGUuYXBwZW5kQ2hpbGQodCl9fV9nZXRBdHRyaWJ1dGVzRm9yVGl0bGVTdGF0ZShlKXtzd2l0Y2goZS5pZCl7Y2FzZSAwOnJldHVybntkYXRhUWFJZDoibGVnZW5kLXNvdXJjZS10aXRsZSIsY2xhc3NOYW1lOmNlLm1haW5UaXRsZX07Y2FzZSAxOnJldHVybntkYXRhUWFJZDoibGVnZW5kLXNvdXJjZS1kZXNjcmlwdGlvbiIsY2xhc3NOYW1lOmNlLmRlc2NUaXRsZX07Y2FzZSAyOnJldHVybntkYXRhUWFJZDoibGVnZW5kLXNvdXJjZS1pbnRlcnZhbCIsY2xhc3NOYW1lOmNlLmludGVydmFsVGl0bGV9O2Nhc2UgMzpyZXR1cm57ZGF0YVFhSWQ6ImxlZ2VuZC1zb3VyY2UtcHJvdmlkZXIiLGNsYXNzTmFtZTpjZS5wcm92aWRlclRpdGxlfTtjYXNlIDQ6cmV0dXJue2RhdGFRYUlkOiJsZWdlbmQtc291cmNlLWV4Y2hhbmdlIixjbGFzc05hbWU6Y2UuZXhjaGFuZ2VUaXRsZX07Y2FzZSA1OnJldHVybntkYXRhUWFJZDoibGVnZW5kLXNvdXJjZS1zdHlsZSIsY2xhc3NOYW1lOmNlLnN0eWxlVGl0bGV9O2Nhc2UgNjpyZXR1cm57ZGF0YVFhSWQ6ImxlZ2VuZC1zb3VyY2UtcHJpY2Utc291cmNlIixjbGFzc05hbWU6Y2UucHJpY2VTb3VyY2VUaXRsZX19cmV0dXJuIG51bGx9X3VwZGF0ZVZhbHVlc1RpdGxlSFRNTEVsSGFuZGxlcihlLHQ9IiIpe2NvbnN0IGk9KDAsbi5lbnN1cmUpKHRoaXMuX3ZhbHVlc0VsZW1lbnRzW2VdLnRpdGxlKTtnKGksdCksaS5jbGFzc0xpc3QudG9nZ2xlKFguYmxvY2tIaWRkZW4sMD09PXQubGVuZ3RoKSx0aGlzLl91cGRhdGVTaG93VmFsdWVzKCl9X2lzV2lkdGhCdXR0b25zTW9kZSgpewpyZXR1cm4gbnVsbCE9PXRoaXMuX2VsJiYodm9pZCAwIT09dGhpcy5fZmxhZ2dlZCYmQm9vbGVhbih0aGlzLl9mbGFnZ2VkLnZhbHVlKCkpfHx0aGlzLl9saW5rZWQ/LnZhbHVlKCl8fHN1cGVyLl9pc1dpZHRoQnV0dG9uc01vZGUoKSl9X3Nob3dUb29sdGlwT3ZlcnJpZGVDYWxsYmFjaygpe2lmKCgwLGwuaXNGZWF0dXJlc2V0RW5hYmxlZCkoImRpc2FibGVfc2hvd19zZXJpZXNfc3RhdHVzZXNfdG9vbHRpcCIpKXJldHVybiBlPT57eWUuZW1pdCgidG9nZ2xlX3Nlcmllc19zdGF0dXNfdG9vbHRpcF9pbm5lciIsZSx0aGlzLl9tb2RlbC5jaGFydE1vZGVsSWQoKSl9fV91cGRhdGVGbGFnZ2VkU3RhdGUoKXtpZih2b2lkIDA9PT10aGlzLl9mbGFnZ2VkKXJldHVybjsoMCxuLmVuc3VyZU5vdE51bGwpKHRoaXMuX2VsKS5jbGFzc0xpc3QudG9nZ2xlKGNlLmZsYWdnZWQsQm9vbGVhbih0aGlzLl9mbGFnZ2VkLnZhbHVlKCkpKSx0aGlzLl91cGRhdGVUaXRsZU1heFdpZHRoKCl9X2dldFRpdGxlSW5kZXhCeURhdGFOYW1lKGUpe3JldHVybiB0aGlzLl90aXRsZXNTdGF0ZXNTcGF3bi52YWx1ZSgpLmZpbmRJbmRleCgodD0+dC5pZD09PWUpKX19dmFyIENlLEVlPWkoNDcxNTE4KSx4ZT1pKDgyNDI0MiksTGU9aSg5NTI1NCksTWU9aSg0Njc1NDgpOyFmdW5jdGlvbihlKXtlW2UuRGVmYXVsdD0wXT0iRGVmYXVsdCIsZVtlLk1pY3JvPTFdPSJNaWNybyJ9KENlfHwoQ2U9e30pKTtjb25zdCBUZT0oMCxFLm1lcmdlVGhlbWVzKSh3LkRFRkFVTFRfU1RBVFVTX1JFTkRFUkVSX1RIRU1FLHtzdGF0dXNlc1dyYXA6Y2Uuc3RhdHVzZXNXcmFwcGVyX19zdGF0dXNlc30pO2NsYXNzIFZle2NvbnN0cnVjdG9yKGUsdCxpKXt0aGlzLl93cmFwcGVyVG9nZ2VyPW51bGwsdGhpcy5fZWw9bnVsbCx0aGlzLl9jb3VudGVyRWw9bnVsbCx0aGlzLl9hcnJvd0ljb25FTD1udWxsLHRoaXMuX29iamVjdFRyZWVFbD1udWxsLHRoaXMuX2xvYWRlcj1lZShudWxsLHtjbGFzc05hbWU6Y2UudG9nZ2xlcldyYXBwZXJfX2xvYWRlcn0pLHRoaXMuX21vZGU9MCx0aGlzLl9hY2Nlc3NpYmxlQnV0dG9ucz1bXSx0aGlzLl9wYXJlbnRFbD1lLHRoaXMuX3RoZW1lZENvbG9yPXQuc3Bhd24oKSx0aGlzLl90aGVtZWRDb2xvci5zdWJzY3JpYmUodGhpcy5fdXBkYXRlVGhlbWVkQ29sb3IuYmluZCh0aGlzKSksdGhpcy5fc2hvd0NvbGxhcHNlcldpdGhPbmVJbmRpY2F0b3I9aS5zaG93Q29sbGFwc2VyV2l0aE9uZUluZGljYXRvci5zcGF3bigpLHRoaXMuX3Nob3dDb2xsYXBzZXJXaXRoT25lSW5kaWNhdG9yLnN1YnNjcmliZSh0aGlzLl91cGRhdGVWaXNpYmlsaXR5LmJpbmQodGhpcykpLHRoaXMuX3NvdXJjZUNvdW50PWkudmlzaWJsZURhdGFTb3VyY2VDb3VudC5zcGF3bigpLHRoaXMuX3NvdXJjZUNvdW50LnN1YnNjcmliZSgoKCk9Pnt0aGlzLl91cGRhdGVTb3VyY2VDb3VudCgpLHRoaXMuX3VwZGF0ZVZpc2liaWxpdHkoKX0pKSx0aGlzLl9pc1N0YXRlT3Blbj1pLmlzRGF0YVNvdXJjZXNDb2xsYXBzZWQuc3Bhd24oKSx0aGlzLl9pc1N0YXRlT3Blbi5zdWJzY3JpYmUoKCgpPT57dGhpcy5fdXBkYXRlU3RhdGUoKSx0aGlzLl91cGRhdGVWaXNpYmlsaXR5KCl9KSksdGhpcy5faXNNYWluUGFuZT1pLmlzTWFpblBhbmUuc3Bhd24oKSx0aGlzLl9pc01haW5QYW5lLnN1YnNjcmliZSh0aGlzLl91cGRhdGVPYmplY3RUcmVlVmlzaWJpbGl0eS5iaW5kKHRoaXMpKSx0aGlzLl9pc1BhbmVDb2xsYXBzZWQ9aS5pc1BhbmVDb2xsYXBzZWQuc3Bhd24oKSx0aGlzLl9pc1BhbmVDb2xsYXBzZWQuc3Vic2NyaWJlKHRoaXMuX3VwZGF0ZVZpc2liaWxpdHkuYmluZCh0aGlzKSksdGhpcy5fY29tYmluZWRTdGF0dXNXaWRnZXRFbD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSx0aGlzLl9jb21iaW5lZFN0YXR1c2VzV2lkZ2V0U3RhdGU9aS5jb21iaW5lZFN0YXR1c2VzV2lkZ2V0U3RhdGUsdGhpcy5fY29tYmluZWRTdGF0dXNlc1dpZGdldFZpc2liaWxpdHk9dGhpcy5fY29tYmluZWRTdGF0dXNlc1dpZGdldFN0YXRlLnZpc2liaWxpdHkoKS5zcGF3bigpLHRoaXMuX2NvbWJpbmVkU3RhdHVzZXNXaWRnZXRWaXNpYmlsaXR5LnN1YnNjcmliZSh0aGlzLl91cGRhdGVWaXNpYmlsaXR5LmJpbmQodGhpcykpLHRoaXMuX3JlbmRlcigpLHRoaXMuX3VwZGF0ZVN0YXRlKCksdGhpcy5fdXBkYXRlVmlzaWJpbGl0eSgpLHRoaXMuX3VwZGF0ZVRoZW1lZENvbG9yKHRoaXMuX3RoZW1lZENvbG9yLnZhbHVlKCkpLHRoaXMuX3VwZGF0ZU9iamVjdFRyZWVWaXNpYmlsaXR5KHRoaXMuX2lzTWFpblBhbmUudmFsdWUoKSksdGhpcy5faXNMb2FkZXJWaXNpYmxlPSgwLGQuY29tYmluZSkoKChlLHQpPT4hZSYmdFswXSksdGhpcy5faXNTdGF0ZU9wZW4ud2Vha1JlZmVyZW5jZSgpLGkuaGFzTG9hZGluZ0RhdGFTb3VyY2VzLndlYWtSZWZlcmVuY2UoKSksdGhpcy5faXNMb2FkZXJWaXNpYmxlLnN1YnNjcmliZSh0aGlzLl9sb2FkZXIudG9nZ2xlVmlzaWJpbGl0eSx7Y2FsbFdpdGhMYXN0OiEwfSksdGhpcy5fdG9nZ2xlU3RhdGVIYW5kbGVyPWU9PntudWxsIT09dGhpcy5fZWwmJihlLmNhbmNlbGFibGUmJmUucHJldmVudERlZmF1bHQoKSxlIGluc3RhbmNlb2YgS2V5Ym9hcmRFdmVudHx8dGhpcy5fZWw/LmJsdXIoKSwxIT09dGhpcy5fbW9kZT9pLm9uQ29sbGFwc2VEYXRhU291cmNlcygpOmkub25TaG93T2JqZWN0c1RyZWVEaWFsb2coKSl9LG51bGwhPT10aGlzLl9lbCYmKHRoaXMuX2VsLmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoZW5kIix0aGlzLl90b2dnbGVTdGF0ZUhhbmRsZXIpLHRoaXMuX2VsLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIix0aGlzLl90b2dnbGVTdGF0ZUhhbmRsZXIpLHRoaXMuX2VsLmFkZEV2ZW50TGlzdGVuZXIoImNvbnRleHRtZW51IiwoZT0+e2UucHJldmVudERlZmF1bHQoKSxlLnN0b3BQcm9wYWdhdGlvbigpfSkpKSx0aGlzLl91cGRhdGVTb3VyY2VDb3VudCgpfWRlc3Ryb3koKXt0aGlzLl9pc0xvYWRlclZpc2libGUuZGVzdHJveSgpLHRoaXMuX2xvYWRlci5kZXN0cm95KCksdGhpcy5faXNQYW5lQ29sbGFwc2VkLmRlc3Ryb3koKSwKdGhpcy5fc291cmNlQ291bnQuZGVzdHJveSgpLHRoaXMuX2lzU3RhdGVPcGVuLmRlc3Ryb3koKSx0aGlzLl9zaG93Q29sbGFwc2VyV2l0aE9uZUluZGljYXRvci5kZXN0cm95KCksdGhpcy5fY29tYmluZWRTdGF0dXNlc1dpZGdldFZpc2liaWxpdHkuZGVzdHJveSgpLHRoaXMuX2NvbWJpbmVkU3RhdHVzZXNXaWRnZXREZXN0cm95Py4oKSxudWxsIT09dGhpcy5fb2JqZWN0VHJlZUVsJiYodGhpcy5fb2JqZWN0VHJlZUVsPW51bGwpLHRoaXMuX2Fycm93SWNvbkVMPW51bGwsdGhpcy5fY291bnRlckVsPW51bGwsbnVsbCE9PXRoaXMuX2VsJiYodGhpcy5fZWwucmVtb3ZlRXZlbnRMaXN0ZW5lcigidG91Y2hlbmQiLHRoaXMuX3RvZ2dsZVN0YXRlSGFuZGxlciksdGhpcy5fZWwucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY2xpY2siLHRoaXMuX3RvZ2dsZVN0YXRlSGFuZGxlciksdGhpcy5fZWwuaW5uZXJIVE1MPSIiLHRoaXMuX2VsPW51bGwpfWFjY2Vzc2libGVCdXR0b25zKCl7cmV0dXJuIG51bGw9PT10aGlzLl9lbHx8dGhpcy5fZWwuY2xhc3NMaXN0LmNvbnRhaW5zKGNlLm9ubHlPbmVTb3VyY2VTaG93bikmJjEhPT10aGlzLl9tb2RlP1tdOnRoaXMuX2FjY2Vzc2libGVCdXR0b25zfXNldE1vZGUoZSl7dGhpcy5fbW9kZT1lPzE6MCx0aGlzLl91cGRhdGVUb29sdGlwKCl9X3JlbmRlcigpe3RoaXMuX3dyYXBwZXJUb2dnZXI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksdGhpcy5fd3JhcHBlclRvZ2dlci5jbGFzc0xpc3QuYWRkKGNlLnRvZ2dsZXJXcmFwcGVyKSx0aGlzLl93cmFwcGVyVG9nZ2VyLmRhdGFzZXQucWFJZD0ibGVnZW5kLXRvZ2dsZXItd3JhcHBlciIsdGhpcy5fZWw9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYnV0dG9uIiksdGhpcy5fZWwuY2xhc3NOYW1lPWAke2NlLnRvZ2dsZXJ9IGFwcGx5LWNvbW1vbi10b29sdGlwYCx0aGlzLl9lbC5kYXRhc2V0LnFhSWQ9ImxlZ2VuZC10b2dnbGVyIjtjb25zdCBlPXRoaXMuX2VsO2UudHlwZT0iYnV0dG9uIixlLmNsYXNzTGlzdC5hZGQoY2UuYWNjZXNzaWJsZSksZS50YWJJbmRleD0tMTtjb25zdCB0PXQ9PntpZihudWxsIT09ZSlzd2l0Y2godC50eXBlKXtjYXNlInJvdmluZy10YWJpbmRleDptYWluLWVsZW1lbnQiOmUudGFiSW5kZXg9MDticmVhaztjYXNlInJvdmluZy10YWJpbmRleDpzZWNvbmRhcnktZWxlbWVudCI6ZS50YWJJbmRleD0tMX19O2UuYWRkRXZlbnRMaXN0ZW5lcigicm92aW5nLXRhYmluZGV4Om1haW4tZWxlbWVudCIsdCksZS5hZGRFdmVudExpc3RlbmVyKCJyb3ZpbmctdGFiaW5kZXg6c2Vjb25kYXJ5LWVsZW1lbnQiLHQpLGUuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsKGU9Pntjb25zdCB0PSgwLGguaGFzaEZyb21FdmVudCkoZSk7MTMhPT10JiYzMiE9PXR8fChlLnByZXZlbnREZWZhdWx0KCksdGhpcy5fdG9nZ2xlU3RhdGVIYW5kbGVyKGUpKX0pKSx0aGlzLl9hY2Nlc3NpYmxlQnV0dG9ucy5wdXNoKGUpLHRoaXMuX2Fycm93SWNvbkVMPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLHRoaXMuX2Fycm93SWNvbkVMLmNsYXNzTGlzdC5hZGQoY2UuaWNvbkFycm93KSx0aGlzLl9hcnJvd0ljb25FTC5pbm5lckhUTUw9di50cmFja2luZ01vZGVJc0F2YWlsYWJsZT94ZTpFZSx0aGlzLl9lbC5hcHBlbmRDaGlsZCh0aGlzLl9hcnJvd0ljb25FTCksdGhpcy5fb2JqZWN0VHJlZUVsPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLHRoaXMuX29iamVjdFRyZWVFbC5jbGFzc0xpc3QuYWRkKGNlLm9iamVjdFRyZWUpLHRoaXMuX29iamVjdFRyZWVFbC5pbm5lckhUTUw9di50cmFja2luZ01vZGVJc0F2YWlsYWJsZT9NZTpMZSx0aGlzLl9lbC5hcHBlbmRDaGlsZCh0aGlzLl9vYmplY3RUcmVlRWwpLHRoaXMuX2NvdW50ZXJFbD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSx0aGlzLl9jb3VudGVyRWwuY2xhc3NMaXN0LmFkZChjZS5jb3VudGVyKSx0aGlzLl9jb3VudGVyRWwuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoU3RyaW5nKHRoaXMuX3NvdXJjZUNvdW50LnZhbHVlKCkpKSksdGhpcy5fZWwuYXBwZW5kQ2hpbGQodGhpcy5fY291bnRlckVsKSx0aGlzLl93cmFwcGVyVG9nZ2VyLmFwcGVuZENoaWxkKHRoaXMuX2VsKSx0aGlzLl9jb21iaW5lZFN0YXR1c1dpZGdldEVsLmNsYXNzTGlzdC5hZGQoY2Uuc3RhdHVzZXNXcmFwcGVyKSx0aGlzLl9jb21iaW5lZFN0YXR1c1dpZGdldEVsLmRhdGFzZXQucWFJZD0ibGVnZW5kLXN0YXR1c2VzLXdyYXBwZXIiLHRoaXMuX3dyYXBwZXJUb2dnZXIuYXBwZW5kQ2hpbGQodGhpcy5fY29tYmluZWRTdGF0dXNXaWRnZXRFbCksIXRoaXMuX2lzU3RhdGVPcGVuLnZhbHVlKCkmJnRoaXMuX2NvbWJpbmVkU3RhdHVzZXNXaWRnZXRWaXNpYmlsaXR5LnZhbHVlKCk/dGhpcy5fY29tYmluZWRTdGF0dXNlc1dpZGdldERlc3Ryb3k9Qyh7Y29udGFpbmVyOnRoaXMuX2NvbWJpbmVkU3RhdHVzV2lkZ2V0RWwsc3RhdHVzZXM6dGhpcy5fY29tYmluZWRTdGF0dXNlc1dpZGdldFN0YXRlLnZpc2libGVNb2RlbHMoKSx0b29sdGlwOnRoaXMuX2NvbWJpbmVkU3RhdHVzZXNXaWRnZXRTdGF0ZS50b29sdGlwKCksdGhlbWU6VGV9KToodGhpcy5fY29tYmluZWRTdGF0dXNlc1dpZGdldERlc3Ryb3k/LigpLHRoaXMuX2NvbWJpbmVkU3RhdHVzZXNXaWRnZXREZXN0cm95PXZvaWQgMCksdGhpcy5fcGFyZW50RWwuYXBwZW5kQ2hpbGQodGhpcy5fd3JhcHBlclRvZ2dlciksdGhpcy5fbG9hZGVyLm1vdW50VG8odGhpcy5fd3JhcHBlclRvZ2dlcil9X3VwZGF0ZVRoZW1lZENvbG9yKGUpe2lmKG51bGwhPT10aGlzLl9lbClpZihlLmxlbmd0aD4wKXtjb25zdFt0LGksc109KDAsYy5wYXJzZVJnYikoZSk7dGhpcy5fZWwuc3R5bGUuYmFja2dyb3VuZENvbG9yPSgwLGMucmdiYVRvU3RyaW5nKShbdCxpLHMsKDAsYy5ub3JtYWxpemVBbHBoYUNvbXBvbmVudCkoLjgpXSl9ZWxzZSB0aGlzLl9lbC5zdHlsZS5yZW1vdmVQcm9wZXJ0eSgiYmFja2dyb3VuZC1jb2xvciIpfV91cGRhdGVTb3VyY2VDb3VudCgpe2NvbnN0IGU9dGhpcy5fc291cmNlQ291bnQudmFsdWUoKSx0PSgwLApuLmVuc3VyZU5vdE51bGwpKHRoaXMuX2NvdW50ZXJFbCk7Zyh0LFN0cmluZyhlKSksdC5jbGFzc0xpc3QudG9nZ2xlKFguYmxvY2tIaWRkZW4sZTw9MSksdGhpcy5fcGFyZW50RWwuY2xhc3NMaXN0LnRvZ2dsZShjZS5zYXZlQXJyb3dXaWR0aCxlPD0xKX1fdXBkYXRlVmlzaWJpbGl0eSgpe2NvbnN0IGU9dGhpcy5fc291cmNlQ291bnQudmFsdWUoKSx0PSgwLG4uZW5zdXJlTm90TnVsbCkodGhpcy5fZWwpLGk9MT09PWUmJiF0aGlzLl9zaG93Q29sbGFwc2VyV2l0aE9uZUluZGljYXRvci52YWx1ZSgpJiYodGhpcy5faXNTdGF0ZU9wZW4udmFsdWUoKXx8IXRoaXMuX2NvbWJpbmVkU3RhdHVzZXNXaWRnZXRWaXNpYmlsaXR5LnZhbHVlKCkpLHM9ZTwxfHx0aGlzLl9pc1BhbmVDb2xsYXBzZWQudmFsdWUoKSYmKHRoaXMuX2lzTWFpblBhbmUudmFsdWUoKXx8dGhpcy5faXNTdGF0ZU9wZW4udmFsdWUoKSk7dC5jbGFzc0xpc3QudG9nZ2xlKFguYmxvY2tIaWRkZW4sISFzKSx0LmNsYXNzTGlzdC50b2dnbGUoY2Uub25seU9uZVNvdXJjZVNob3duLGkpLHQuZGF0YXNldC5xYUlkPWBsZWdlbmQtdG9nZ2xlciR7cz8iIGhpZGRlbiI6IiJ9JHtpPyIgb25seS1vbmUtc291cmNlLXNob3duIjoiIn1gLCgwLG4uZW5zdXJlTm90TnVsbCkodGhpcy5fd3JhcHBlclRvZ2dlcikuY2xhc3NMaXN0LnRvZ2dsZShYLmJsb2NrSGlkZGVuLGkpLCF0aGlzLl9pc1N0YXRlT3Blbi52YWx1ZSgpJiZ0aGlzLl9jb21iaW5lZFN0YXR1c2VzV2lkZ2V0VmlzaWJpbGl0eS52YWx1ZSgpP3RoaXMuX2NvbWJpbmVkU3RhdHVzZXNXaWRnZXREZXN0cm95PUMoe2NvbnRhaW5lcjp0aGlzLl9jb21iaW5lZFN0YXR1c1dpZGdldEVsLHN0YXR1c2VzOnRoaXMuX2NvbWJpbmVkU3RhdHVzZXNXaWRnZXRTdGF0ZS52aXNpYmxlTW9kZWxzKCksdG9vbHRpcDp0aGlzLl9jb21iaW5lZFN0YXR1c2VzV2lkZ2V0U3RhdGUudG9vbHRpcCgpLHRoZW1lOlRlfSk6KHRoaXMuX2NvbWJpbmVkU3RhdHVzZXNXaWRnZXREZXN0cm95Py4oKSx0aGlzLl9jb21iaW5lZFN0YXR1c2VzV2lkZ2V0RGVzdHJveT12b2lkIDApfV91cGRhdGVTdGF0ZSgpe2NvbnN0IGU9IXRoaXMuX2lzU3RhdGVPcGVuLnZhbHVlKCk7dGhpcy5fcGFyZW50RWwuY2xhc3NMaXN0LnRvZ2dsZShjZS5jbG9zZWQsZSksdGhpcy5fdXBkYXRlVG9vbHRpcCgpLE8oKGU/IkhpZGUiOiJTaG93IikrIiBub3QgbWFpbiBzb3VyY2VzIil9X3Rvb2x0aXAoKXtpZigxPT09dGhpcy5fbW9kZSlyZXR1cm4gUC50KG51bGwse2NvbnRleHQ6IkxlZ2VuZCB0b2dnbGVyIGJ1dHRvbiB0b29sdGlwIn0saSgzMDUwNTUpKTtjb25zdCBlPXRoaXMuX3NvdXJjZUNvdW50LnZhbHVlKCksdD1QLnQobnVsbCx7cGx1cmFsOiJIaWRlIGluZGljYXRvcnMgbGVnZW5kIixjb3VudDplfSxpKDMzMjgyOCkpLHM9UC50KG51bGwse3BsdXJhbDoiU2hvdyBpbmRpY2F0b3JzIGxlZ2VuZCIsY291bnQ6ZX0saSg2OTI3MTIpKTtyZXR1cm4gdGhpcy5faXNTdGF0ZU9wZW4udmFsdWUoKT90OnN9X3VwZGF0ZVRvb2x0aXAoKXtpZihudWxsIT09dGhpcy5fZWwpe2NvbnN0IGU9dGhpcy5fdG9vbHRpcCgpO3RoaXMuX2VsLnNldEF0dHJpYnV0ZSgidGl0bGUiLGUpLHRoaXMuX2VsLnNldEF0dHJpYnV0ZSgiYXJpYS1sYWJlbCIsZSksdGhpcy5fZWwuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImNvbW1vbi10b29sdGlwLXVwZGF0ZSIpKX19X3VwZGF0ZU9iamVjdFRyZWVWaXNpYmlsaXR5KGUpeygwLG4uZW5zdXJlTm90TnVsbCkodGhpcy5fZWwpLmNsYXNzTGlzdC50b2dnbGUoY2Uub2JqZWN0c1RyZWVDYW5CZVNob3duLGUpfX12YXIga2U7IWZ1bmN0aW9uKGUpe2VbZS5NZWRpdW09MjIyXT0iTWVkaXVtIixlW2UuU21hbGw9MjA1XT0iU21hbGwiLGVbZS5UaW55PTEzM109IlRpbnkiLGVbZS5IaWRlVW5pbXBvcnRhbnRWYWx1ZXM9MjcyXT0iSGlkZVVuaW1wb3J0YW50VmFsdWVzIixlW2UuU2VyaWVzRGlyZWN0aW9uQ29sdW1uPTU0Ml09IlNlcmllc0RpcmVjdGlvbkNvbHVtbiIsZVtlLkhpZGVFeGNoYW5nZUludGV2YWxQcm92aWRlcj00NDJdPSJIaWRlRXhjaGFuZ2VJbnRldmFsUHJvdmlkZXIiLGVbZS5IaWRlSW50ZXJ2YWxNdWx0aUNoYXJ0PTE5Ml09IkhpZGVJbnRlcnZhbE11bHRpQ2hhcnQifShrZXx8KGtlPXt9KSk7Y29uc3QgQWU9KDAsbC5pc0ZlYXR1cmVzZXRFbmFibGVkKSgib2JqZWN0X3RyZWVfbGVnZW5kX21vZGUiKSxXZT1bMjcsOSwzNywzOSwzOCw0MF0sSWU9KDAsRS5tZXJnZVRoZW1lcykody5ERUZBVUxUX1NUQVRVU19SRU5ERVJFUl9USEVNRSx7c3RhdHVzZXNXcmFwOmNlLnN0YXR1c2VzV3JhcHBlcl9fc3RhdHVzZXN9KTtjbGFzcyBCZXtjb25zdHJ1Y3RvcihlLHQpe3RoaXMuX21vZGU9NCx0aGlzLl9yZW5kZXJUb2dnbGVyPW51bGwsdGhpcy5fbWFpbkRhdGFTb3VyY2VSZW5kZXJlcj1udWxsLHRoaXMuX2RhdGFTb3VyY2VSZW5kZXJlcnM9W10sdGhpcy5fcGFyZW50RWw9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksdGhpcy5fbWFpbkRhdGFTb3VyY2VFbD1udWxsLHRoaXMuX2RhdGFTb3VyY2VzRWw9bnVsbCx0aGlzLl9kYXRhU291cmNlc0FkZGl0aW9uYWxXcmFwcGVyRWw9bnVsbCx0aGlzLl9jb2xsYXBzZWREYXRhU291cmNlc1dyYXBwZXJFbD1udWxsLHRoaXMuX2NvbGxhcHNlZERhdGFTb3VyY2VzRWw9bnVsbCx0aGlzLl9vdXRzaWRlRXZlbnRGb3JDb2xsYXBzZWRUb29sdGlwPW51bGwsdGhpcy5fb25LZXlib2FyZE5hdmlnYXRpb25BY3RpdmF0aW9uQm91bmQ9dGhpcy5fb25LZXlib2FyZE5hdmlnYXRpb25BY3RpdmF0aW9uLmJpbmQodGhpcyksdGhpcy5fb25Jc0RhdGFTb3VyY2VzQ29sbGFwc2VkQm91bmQ9dGhpcy5fb25Jc0RhdGFTb3VyY2VzQ29sbGFwc2VkLmJpbmQodGhpcyksdGhpcy5fZm9jdXNFdmVudEFib3J0Q29udHJvbGxlcj1udWxsLHRoaXMuX3RvZ2dsZUhpZGRlbkFjdGlvbnNUaW1lb3V0SUQ9bnVsbCx0aGlzLl9sb2FkZXI9ZWUobnVsbCx7Y2xhc3NOYW1lOmNlLmNvbGxhcHNlZFNvdXJjZXNDb3VudGVyfSksdGhpcy5fdG9nZ2xlSGlkZGVuQWN0aW9ucz1lPT57CnRoaXMuX3RvZ2dsZUhpZGRlbkFjdGlvbnNUaW1lb3V0SUQmJihjbGVhclRpbWVvdXQodGhpcy5fdG9nZ2xlSGlkZGVuQWN0aW9uc1RpbWVvdXRJRCksdGhpcy5fdG9nZ2xlSGlkZGVuQWN0aW9uc1RpbWVvdXRJRD1udWxsKSxlP3RoaXMuX3BhcmVudEVsLmNsYXNzTGlzdC50b2dnbGUoY2UubGVnZW5kX3dpdGhIaWRkZW5BY3Rpb25zLGUpOnRoaXMuX3RvZ2dsZUhpZGRlbkFjdGlvbnNUaW1lb3V0SUQ9c2V0VGltZW91dCgoKCk9PnRoaXMuX3BhcmVudEVsLmNsYXNzTGlzdC50b2dnbGUoY2UubGVnZW5kX3dpdGhIaWRkZW5BY3Rpb25zLGUpKSwxMDApfSx0aGlzLl9vcHRpb25zPWUsdGhpcy5fdG9nZ2xlck9wdGlvbnM9dCx0aGlzLl9pc1N0dWRpZXNMZWdlbmRIaWRkZW49ZS5pc1N0dWRpZXNMZWdlbmRIaWRkZW4uc3Bhd24oKSx0aGlzLl9pc1N0dWRpZXNMZWdlbmRIaWRkZW4uc3Vic2NyaWJlKHRoaXMuX3VwZGF0ZUxlZ2VuZFZpc2liaWxpdHkuYmluZCh0aGlzKSksdGhpcy5faXNBbGxMZWdlbmRIaWRkZW49ZS5pc0FsbExlZ2VuZEhpZGRlbi5zcGF3bigpLHRoaXMuX2lzQWxsTGVnZW5kSGlkZGVuLnN1YnNjcmliZSh0aGlzLl91cGRhdGVMZWdlbmRWaXNpYmlsaXR5LmJpbmQodGhpcykpLHRoaXMuX3VwZGF0ZUxlZ2VuZFZpc2liaWxpdHkoKSx0aGlzLl9oaWRlQWxsRXhjZXB0Rmlyc3RMaW5lPWUuaGlkZUFsbEV4Y2VwdEZpcnN0TGluZS5zcGF3bigpLHRoaXMuX2hpZGVBbGxFeGNlcHRGaXJzdExpbmUuc3Vic2NyaWJlKHRoaXMuX3VwZGF0ZUFsbEhpZGRlbkV4ZXB0Rmlyc3RMaW5lLmJpbmQodGhpcykpLHRoaXMuX3RoZW1lZENvbG9yPWUudGhlbWVkQ29sb3Iuc3Bhd24oKSx0aGlzLl90aGVtZWRDb2xvci5zdWJzY3JpYmUodGhpcy5fc2V0Q3VzdG9tQmcuYmluZCh0aGlzKSksdGhpcy5fc2hvd0JhY2tncm91bmQ9ZS5zaG93QmFja2dyb3VuZC5zcGF3bigpLHRoaXMuX3Nob3dCYWNrZ3JvdW5kLnN1YnNjcmliZSh0aGlzLl9zZXRDdXN0b21CZy5iaW5kKHRoaXMpKSx0aGlzLl9iYWNrZ3JvdW5kVHJhbnNwYXJlbmN5PWUuYmFja2dyb3VuZFRyYW5zcGFyZW5jeS5zcGF3bigpLHRoaXMuX2JhY2tncm91bmRUcmFuc3BhcmVuY3kuc3Vic2NyaWJlKHRoaXMuX3NldEN1c3RvbUJnLmJpbmQodGhpcykpLHRoaXMuX2NvbGxhcHNlZERhdGFTb3VyY2VzQ291bnRTcGF3bj1lLmNvbGxhcHNlZERhdGFTb3VyY2VzQ291bnQuc3Bhd24oKSx0aGlzLl9jb2xsYXBzZWREYXRhU291cmNlc0NvdW50U3Bhd24uc3Vic2NyaWJlKHRoaXMuX3VwZGF0ZUNvbGxhcHNlZFNvdXJjZXNDb3VudC5iaW5kKHRoaXMpKSx0aGlzLl9jb2xsYXBzZWREYXRhU291cmNlc1N0YXR1c1dpZGdldEVsZW1lbnQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksdGhpcy5fY29sbGFwc2VkU3RhdHVzZXNXaWRnZXRTdGF0ZT1lLmNvbWJpbmVkU3RhdHVzZXNXaWRnZXRTdGF0ZSx0aGlzLl9jb2xsYXBzZWRTdGF0dXNlc1dpZGdldFZpc2liaWxpdHk9dGhpcy5fY29sbGFwc2VkU3RhdHVzZXNXaWRnZXRTdGF0ZS52aXNpYmlsaXR5KCkuc3Bhd24oKSx0aGlzLl9jb2xsYXBzZWRTdGF0dXNlc1dpZGdldFZpc2liaWxpdHkuc3Vic2NyaWJlKCgoKT0+dGhpcy5fdXBkYXRlQ29sbGFwc2VkU291cmNlc0NvdW50KHRoaXMuX2NvbGxhcHNlZERhdGFTb3VyY2VzQ291bnRTcGF3bi52YWx1ZSgpKSkpLHRoaXMuX3Nob3dDb2xsYXBzZWREYXRhU291cmNlc1Rvb2x0aXBIYW5kbGVyPXRoaXMuX3Nob3dDb2xsYXBzZWREYXRhU291cmNlc1Rvb2x0aXAuYmluZCh0aGlzKSx0aGlzLl9wYXJlbnRFbC5jbGFzc0xpc3QuYWRkKGNlLmxlZ2VuZCksdGhpcy5fcGFyZW50RWwuY2xhc3NMaXN0LnRvZ2dsZShjZS5ub1dyYXAsIXYudHJhY2tpbmdNb2RlSXNBdmFpbGFibGUpLHRoaXMuX3BhcmVudEVsLmNsYXNzTGlzdC50b2dnbGUoY2Uubm9BY3Rpb25zLCF0aGlzLl9vcHRpb25zLndpdGhBY3Rpb25zKSx0aGlzLl9wYXJlbnRFbC5jbGFzc0xpc3QudG9nZ2xlKGNlLnRvdWNoTW9kZSx2LnRyYWNraW5nTW9kZUlzQXZhaWxhYmxlKSx0aGlzLl9wYXJlbnRFbC5jbGFzc0xpc3QudG9nZ2xlKGNlLndyYXBwYWJsZSwhdGhpcy5faGlkZUFsbEV4Y2VwdEZpcnN0TGluZS52YWx1ZSgpKSx0aGlzLl9wYXJlbnRFbC5kYXRhc2V0LnFhSWQ9ImxlZ2VuZCIsdGhpcy5fcGFyZW50RWwuc2V0QXR0cmlidXRlKCJkYXRhLXRvb2x0aXAtc2hvdy1vbi1mb2N1cyIsInRydWUiKSx0aGlzLl9wYXJlbnRFbC5zdHlsZS5zZXRQcm9wZXJ0eSgiLS1sZWdlbmQtc291cmNlLWl0ZW0tYnV0dG9uLXdpZHRoIixgJHtMfXB4YCk7Y29uc3QgaT10PT57dC5wcmV2ZW50RGVmYXVsdCgpLGUuc2hvd0xlZ2VuZFdpZGdldENvbnRleHRNZW51KHQpfTt0aGlzLl9tb3VzZUV2ZW50SGFuZGxlcj1uZXcgeC5Nb3VzZUV2ZW50SGFuZGxlcih0aGlzLl9wYXJlbnRFbCx7Y29udGV4dE1lbnVFdmVudDppLHRvdWNoQ29udGV4dE1lbnVFdmVudDppfSksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImtleWJvYXJkLW5hdmlnYXRpb24tYWN0aXZhdGlvbiIsdGhpcy5fb25LZXlib2FyZE5hdmlnYXRpb25BY3RpdmF0aW9uQm91bmQpLHRoaXMuX3BhcmVudEVsLmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLHRoaXMuX2hhbmRsZUtleURvd24uYmluZCh0aGlzKSksdGhpcy5fb3B0aW9ucy5vbkxheW91dENoYW5nZWQuc3Vic2NyaWJlKHRoaXMsdGhpcy5fb25MYXlvdXRDaGFuZ2VkKSx0aGlzLl9pc0xvYWRlclZpc2libGU9KDAsZC5jb21iaW5lKSgoZT0+ZVsxXSksZS5oYXNMb2FkaW5nRGF0YVNvdXJjZXMud2Vha1JlZmVyZW5jZSgpKSx0aGlzLl9pc0xvYWRlclZpc2libGUuc3Vic2NyaWJlKHRoaXMuX2xvYWRlci50b2dnbGVWaXNpYmlsaXR5LHtjYWxsV2l0aExhc3Q6ITB9KX1kZXN0cm95KCl7dGhpcy5faXNMb2FkZXJWaXNpYmxlLmRlc3Ryb3koKSx0aGlzLl9sb2FkZXIuZGVzdHJveSgpLHRoaXMuX2ZvY3VzRXZlbnRBYm9ydENvbnRyb2xsZXI/LmFib3J0KCk7Y29uc3QgZT1kb2N1bWVudC5hY3RpdmVFbGVtZW50O2xldCB0PS0xCjtpZihCZS5fd2FzS2V5Ym9hcmROYXZpZ2F0aW9uQWN0aXZhdGVkJiZlIGluc3RhbmNlb2YgSFRNTEJ1dHRvbkVsZW1lbnQpe251bGwhPT10aGlzLl9nZXRSb3dSZW5kZXJlckJ5Q2hpbGQoZSkmJih0PSgwLGIucXVlcnlUYWJiYWJsZUVsZW1lbnRzKShkb2N1bWVudC5ib2R5KS5pbmRleE9mKGUpKX1pZih0aGlzLl9jb2xsYXBzZWRTdGF0dXNlc1dpZGdldERlc3Ryb3k/LigpLHRoaXMuX2lzU3R1ZGllc0xlZ2VuZEhpZGRlbi5kZXN0cm95KCksdGhpcy5faXNBbGxMZWdlbmRIaWRkZW4uZGVzdHJveSgpLHRoaXMuX2hpZGVBbGxFeGNlcHRGaXJzdExpbmUuZGVzdHJveSgpLHRoaXMuX3RoZW1lZENvbG9yLmRlc3Ryb3koKSx0aGlzLl9zaG93QmFja2dyb3VuZC5kZXN0cm95KCksdGhpcy5fYmFja2dyb3VuZFRyYW5zcGFyZW5jeS5kZXN0cm95KCksdGhpcy5fY29sbGFwc2VkRGF0YVNvdXJjZXNDb3VudFNwYXduLmRlc3Ryb3koKSx0aGlzLl9jb2xsYXBzZWRTdGF0dXNlc1dpZGdldFZpc2liaWxpdHkuZGVzdHJveSgpLHYudHJhY2tpbmdNb2RlSXNBdmFpbGFibGUmJm51bGwhPT10aGlzLl9jb2xsYXBzZWREYXRhU291cmNlc1dyYXBwZXJFbCYmdGhpcy5fY29sbGFwc2VkRGF0YVNvdXJjZXNXcmFwcGVyRWwucmVtb3ZlRXZlbnRMaXN0ZW5lcigidG91Y2hlbmQiLHRoaXMuX3Nob3dDb2xsYXBzZWREYXRhU291cmNlc1Rvb2x0aXBIYW5kbGVyKSx0aGlzLl9vdXRzaWRlRXZlbnRGb3JDb2xsYXBzZWRUb29sdGlwJiZ0aGlzLl9vdXRzaWRlRXZlbnRGb3JDb2xsYXBzZWRUb29sdGlwKCksbnVsbCE9PXRoaXMuX2RhdGFTb3VyY2VzQWRkaXRpb25hbFdyYXBwZXJFbCYmKHRoaXMuX2RhdGFTb3VyY2VzQWRkaXRpb25hbFdyYXBwZXJFbC5pbm5lckhUTUw9IiIsdGhpcy5fZGF0YVNvdXJjZXNBZGRpdGlvbmFsV3JhcHBlckVsPW51bGwpLG51bGwhPT10aGlzLl9kYXRhU291cmNlc0VsJiYodGhpcy5fZGF0YVNvdXJjZXNFbC5pbm5lckhUTUw9IiIsdGhpcy5fZGF0YVNvdXJjZXNFbD1udWxsKSx0aGlzLl90b2dnbGVyT3B0aW9ucy5pc0RhdGFTb3VyY2VzQ29sbGFwc2VkLnVuc3Vic2NyaWJlKHRoaXMuX29uSXNEYXRhU291cmNlc0NvbGxhcHNlZEJvdW5kKSxudWxsIT09dGhpcy5fcmVuZGVyVG9nZ2xlciYmKHRoaXMuX3JlbmRlclRvZ2dsZXIuZGVzdHJveSgpLHRoaXMuX3JlbmRlclRvZ2dsZXI9bnVsbCksbnVsbCE9PXRoaXMuX21haW5EYXRhU291cmNlUmVuZGVyZXImJih0aGlzLl9tYWluRGF0YVNvdXJjZVJlbmRlcmVyLmRlc3Ryb3koKSx0aGlzLl9tYWluRGF0YVNvdXJjZVJlbmRlcmVyPW51bGwpLDAhPT10aGlzLl9kYXRhU291cmNlUmVuZGVyZXJzLmxlbmd0aCl7Zm9yKGNvbnN0IGUgb2YgdGhpcy5fZGF0YVNvdXJjZVJlbmRlcmVycyllLmRlc3Ryb3koKTt0aGlzLl9kYXRhU291cmNlUmVuZGVyZXJzPVtdfWlmKHRoaXMuX21vdXNlRXZlbnRIYW5kbGVyLmRlc3Ryb3koKSx0aGlzLl9wYXJlbnRFbC5pbm5lckhUTUw9IiIsZGVsZXRlIHRoaXMuX3BhcmVudEVsLHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJrZXlib2FyZC1uYXZpZ2F0aW9uLWFjdGl2YXRpb24iLHRoaXMuX29uS2V5Ym9hcmROYXZpZ2F0aW9uQWN0aXZhdGlvbkJvdW5kKSwtMSE9PXQpe2xldCBlO3dpbmRvdy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgia2V5Ym9hcmQtbmF2aWdhdGlvbi1hY3RpdmF0aW9uIix7YnViYmxlczohMH0pKTtjb25zdCBpPSgwLGIucXVlcnlUYWJiYWJsZUVsZW1lbnRzKShkb2N1bWVudC5ib2R5KTtlPXQ9PT1pLmxlbmd0aD9pWzBdOmlbdF0sZSYmZS5mb2N1cygpfX1hZGRDdXN0b21XaWRnZXQoZSx0KXtpZigwPT09dC5ibG9jayl7dGhpcy5fcmVuZGVyTWFpbkRhdGFTb3VyY2VFbCgpO2NvbnN0IGk9KDAsbi5lbnN1cmVOb3ROdWxsKSh0aGlzLl9tYWluRGF0YVNvdXJjZUVsKTsxPT09dC5wb3NpdGlvbiYmZS5yZW5kZXJUbyhpLGkuZmlyc3RDaGlsZCksMD09PXQucG9zaXRpb24mJmUucmVuZGVyVG8oaSl9aWYoMT09PXQuYmxvY2spe3RoaXMuX3JlbmRlckRhdGFTb3VyY2VzRWwoKTtjb25zdCBpPSgwLG4uZW5zdXJlTm90TnVsbCkodGhpcy5fZGF0YVNvdXJjZXNBZGRpdGlvbmFsV3JhcHBlckVsKTsxPT09dC5wb3NpdGlvbiYmZS5yZW5kZXJUbyhpLGkuZmlyc3RDaGlsZCksMD09PXQucG9zaXRpb24mJmUucmVuZGVyVG8oaSl9fWZpcnN0VGl0bGUoKXtyZXR1cm4gdGhpcy5fcGFyZW50RWwuZmlyc3RFbGVtZW50Q2hpbGR9Z2V0RWxlbWVudCgpe3JldHVybiB0aGlzLl9wYXJlbnRFbH11cGRhdGVNb2RlKGUpe2NvbnN0IHQ9QWUmJmU8MTMzPzE6ZTwyMDU/MjplPDIyMj8zOjQsaT1lPDE5Mj8xOmU8NDQyPzI6Mzt0aGlzLl9tb2RlPXQsbnVsbCE9PXRoaXMuX21haW5EYXRhU291cmNlUmVuZGVyZXImJnRoaXMuX21haW5EYXRhU291cmNlUmVuZGVyZXIudXBkYXRlTW9kZSh0LGkpO2Zvcihjb25zdCBlIG9mIHRoaXMuX2RhdGFTb3VyY2VSZW5kZXJlcnMpZS51cGRhdGVNb2RlKHQsaSk7dGhpcy5fcGFyZW50RWwuY2xhc3NMaXN0LnRvZ2dsZShjZS5tZWRpdW0sMz09PXQpLHRoaXMuX3BhcmVudEVsLmNsYXNzTGlzdC50b2dnbGUoY2UubWluaW1pemVkLDI9PT10KSx0aGlzLl9wYXJlbnRFbC5jbGFzc0xpc3QudG9nZ2xlKGNlLm1pY3JvLDE9PT10KSxudWxsIT09dGhpcy5fcmVuZGVyVG9nZ2xlciYmdGhpcy5fcmVuZGVyVG9nZ2xlci5zZXRNb2RlKDE9PT10KTtjb25zdCBzPSF0aGlzLl9oaWRlQWxsRXhjZXB0Rmlyc3RMaW5lLnZhbHVlKCkmJih2LnRyYWNraW5nTW9kZUlzQXZhaWxhYmxlfHxlPDU0Mik7dGhpcy5fcGFyZW50RWwuY2xhc3NMaXN0LnRvZ2dsZShjZS5kaXJlY3Rpb25Db2x1bW4scyksdGhpcy5fcGFyZW50RWwuY2xhc3NMaXN0LnRvZ2dsZShjZS5oaWRlVW5pcG9ydGFudFZhbHVlSXRlbXMsIV8uQ2hlY2tNb2JpbGUuYW55KCkmJmU8PTI3Mil9Z2V0TWFpblNvdXJjZUhlaWdodCgpe3JldHVybiBudWxsPT09dGhpcy5fbWFpbkRhdGFTb3VyY2VSZW5kZXJlcj8wOnRoaXMuX21haW5EYXRhU291cmNlUmVuZGVyZXIuZ2V0SGVpZ2h0KCl9Z2V0RGF0YVNvdXJjZUhlaWdodCgpewpyZXR1cm4gMD09PXRoaXMuX2RhdGFTb3VyY2VSZW5kZXJlcnMubGVuZ3RoPzA6dGhpcy5fZGF0YVNvdXJjZVJlbmRlcmVyc1swXS5nZXRIZWlnaHQoKX1fcmVuZGVyTWFpbkRhdGFTb3VyY2VFbCgpe251bGw9PT10aGlzLl9tYWluRGF0YVNvdXJjZUVsJiYodGhpcy5fbWFpbkRhdGFTb3VyY2VFbD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSx0aGlzLl9tYWluRGF0YVNvdXJjZUVsLmNsYXNzTGlzdC5hZGQoY2UubGVnZW5kTWFpblNvdXJjZVdyYXBwZXIpLHRoaXMuX3BhcmVudEVsLmluc2VydEJlZm9yZSh0aGlzLl9tYWluRGF0YVNvdXJjZUVsLHRoaXMuX2RhdGFTb3VyY2VzRWwpKX1fcmVuZGVyRGF0YVNvdXJjZXNFbCgpe251bGw9PT10aGlzLl9kYXRhU291cmNlc0VsJiYodGhpcy5fZGF0YVNvdXJjZXNFbD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSx0aGlzLl9kYXRhU291cmNlc0VsLmNsYXNzTGlzdC5hZGQoY2Uuc291cmNlc1dyYXBwZXIpLHRoaXMuX2RhdGFTb3VyY2VzRWwuZGF0YXNldC5xYUlkPSJsZWdlbmQtc291cmNlcy13cmFwcGVyIix0aGlzLl9yZW5kZXJUb2dnbGUodGhpcy5fZGF0YVNvdXJjZXNFbCksdGhpcy5fZGF0YVNvdXJjZXNBZGRpdGlvbmFsV3JhcHBlckVsPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLHRoaXMuX2RhdGFTb3VyY2VzQWRkaXRpb25hbFdyYXBwZXJFbC5jbGFzc0xpc3QuYWRkKGNlLnNvdXJjZXMpLHRoaXMuX2RhdGFTb3VyY2VzRWwuYXBwZW5kQ2hpbGQodGhpcy5fZGF0YVNvdXJjZXNBZGRpdGlvbmFsV3JhcHBlckVsKSx0aGlzLl9yZW5kZXJDb2xsYXBzZWRDb3VudGVyKHRoaXMuX2RhdGFTb3VyY2VzQWRkaXRpb25hbFdyYXBwZXJFbCksdGhpcy5fcGFyZW50RWwuYXBwZW5kQ2hpbGQodGhpcy5fZGF0YVNvdXJjZXNFbCkpfV9yZW5kZXJUb2dnbGUoZSl7dGhpcy5fb3B0aW9ucy5zaG93VG9nZ2xlQnV0dG9uJiYodGhpcy5fcmVuZGVyVG9nZ2xlcj1uZXcgVmUoZSx0aGlzLl9vcHRpb25zLnRoZW1lZENvbG9yLHRoaXMuX3RvZ2dsZXJPcHRpb25zKSl9X29uSXNEYXRhU291cmNlc0NvbGxhcHNlZChlKXtpZihlKXtjb25zdCBlPXRoaXMuX2dldEFsbEFjY2Vzc2libGVCdXR0b25zKCk7aWYoMD09PWUuZmlsdGVyKChlPT5lLnRhYkluZGV4Pj0wKSkubGVuZ3RoKXtjb25zdCB0PXRoaXMuX2dldFJvd1JlbmRlcmVyQnlDaGlsZChlWzBdKTt0JiZ0aGlzLl9tYWtlUm93RWxlbWVudFRoZU1haW5PbmUoZVswXSx0KX1yZXR1cm59aWYoMCE9PSh0aGlzLl9tYWluRGF0YVNvdXJjZVJlbmRlcmVyPy5hY2Nlc3NpYmxlQnV0dG9ucygpfHxbXSkuZmlsdGVyKChlPT5lLnRhYkluZGV4Pj0wKSkubGVuZ3RoKXJldHVybjtjb25zdCB0PVtdO3RoaXMuX2RhdGFTb3VyY2VSZW5kZXJlcnMuZm9yRWFjaCgoZT0+dC5wdXNoKC4uLmUuYWNjZXNzaWJsZUJ1dHRvbnMoKSkpKTtjb25zdCBpPXQuZmlsdGVyKChlPT5lLnRhYkluZGV4Pj0wKSk7aWYoMCE9PWkubGVuZ3RoKXt0aGlzLl9mb2N1c0V2ZW50QWJvcnRDb250cm9sbGVyJiZ0aGlzLl9mb2N1c0V2ZW50QWJvcnRDb250cm9sbGVyLmFib3J0KCksaS5mb3JFYWNoKChlPT4oMCxtLmJlY29tZVNlY29uZGFyeUVsZW1lbnQpKGUpKSk7bGV0IGU9bnVsbCx0PW51bGw7aWYodGhpcy5fbWFpbkRhdGFTb3VyY2VSZW5kZXJlcil7Y29uc3QgaT10aGlzLl9tYWluRGF0YVNvdXJjZVJlbmRlcmVyLmFjY2Vzc2libGVCdXR0b25zKCk7aS5sZW5ndGg+MCYmKGU9aVswXSx0PXRoaXMuX21haW5EYXRhU291cmNlUmVuZGVyZXIpfW51bGw9PT1lJiZ0aGlzLl9yZW5kZXJUb2dnbGVyJiYoZT10aGlzLl9yZW5kZXJUb2dnbGVyLmFjY2Vzc2libGVCdXR0b25zKClbMF0sdD10aGlzLl9yZW5kZXJUb2dnbGVyKSxlJiZ0JiZ0aGlzLl9tYWtlUm93RWxlbWVudFRoZU1haW5PbmUoZSx0KX19X3JlbmRlckNvbGxhcHNlZENvdW50ZXIoZSl7dGhpcy5fY29sbGFwc2VkRGF0YVNvdXJjZXNXcmFwcGVyRWw9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksdGhpcy5fY29sbGFwc2VkRGF0YVNvdXJjZXNXcmFwcGVyRWwuZGF0YXNldC5xYUlkPSJsZWdlbmQtY29sbGFwc2VkLXNvdXJjZXMtY291bnRlciIsdGhpcy5fY29sbGFwc2VkRGF0YVNvdXJjZXNXcmFwcGVyRWwuY2xhc3NOYW1lPWAke2NlLml0ZW19ICR7Y2UubGFzdH1gLHRoaXMuX2NvbGxhcHNlZERhdGFTb3VyY2VzRWw9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpLHRoaXMuX2NvbGxhcHNlZERhdGFTb3VyY2VzRWwuY2xhc3NOYW1lPWAke2NlLnRleHR9IGFwcGx5LWNvbW1vbi10b29sdGlwYCx0aGlzLl9jb2xsYXBzZWREYXRhU291cmNlc1dyYXBwZXJFbC5hcHBlbmQodGhpcy5fY29sbGFwc2VkRGF0YVNvdXJjZXNFbCksdGhpcy5fY29sbGFwc2VkRGF0YVNvdXJjZXNTdGF0dXNXaWRnZXRFbGVtZW50LmNsYXNzTGlzdC5hZGQoY2Uuc3RhdHVzZXNXcmFwcGVyKSx0aGlzLl9jb2xsYXBzZWREYXRhU291cmNlc1N0YXR1c1dpZGdldEVsZW1lbnQuZGF0YXNldC5xYUlkPSJsZWdlbmQtc3RhdHVzZXMtd3JhcHBlciIsdGhpcy5fY29sbGFwc2VkRGF0YVNvdXJjZXNXcmFwcGVyRWwuYXBwZW5kQ2hpbGQodGhpcy5fY29sbGFwc2VkRGF0YVNvdXJjZXNTdGF0dXNXaWRnZXRFbGVtZW50KSxlLmFwcGVuZCh0aGlzLl9jb2xsYXBzZWREYXRhU291cmNlc1dyYXBwZXJFbCksdi50cmFja2luZ01vZGVJc0F2YWlsYWJsZSYmdGhpcy5fY29sbGFwc2VkRGF0YVNvdXJjZXNXcmFwcGVyRWwuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hlbmQiLHRoaXMuX3Nob3dDb2xsYXBzZWREYXRhU291cmNlc1Rvb2x0aXBIYW5kbGVyKTtjb25zdCB0PXRoaXMuX2NvbGxhcHNlZERhdGFTb3VyY2VzQ291bnRTcGF3bi52YWx1ZSgpO3RoaXMuX3VwZGF0ZUNvbGxhcHNlZFNvdXJjZXNDb3VudCh0KSx0aGlzLl9sb2FkZXIubW91bnRUbyh0aGlzLl9jb2xsYXBzZWREYXRhU291cmNlc1dyYXBwZXJFbCl9X3Nob3dDb2xsYXBzZWREYXRhU291cmNlc1Rvb2x0aXAoKXsoMCxmLnNob3dPbkVsZW1lbnQpKHRoaXMuX2NvbGxhcHNlZERhdGFTb3VyY2VzRWwsewp0ZXh0OnRoaXMuX29wdGlvbnMuY29sbGFwc2VkRGF0YVNvdXJjZXNUaXRsZS52YWx1ZSgpfSksdGhpcy5fYWRkT3V0c2lkZUV2ZW50Rm9ySGlkZVRvb2x0aXAoKX1fYWRkT3V0c2lkZUV2ZW50Rm9ySGlkZVRvb2x0aXAoKXtudWxsIT09dGhpcy5fb3V0c2lkZUV2ZW50Rm9yQ29sbGFwc2VkVG9vbHRpcCYmdGhpcy5fb3V0c2lkZUV2ZW50Rm9yQ29sbGFwc2VkVG9vbHRpcCgpLHRoaXMuX291dHNpZGVFdmVudEZvckNvbGxhcHNlZFRvb2x0aXA9KDAscC5hZGRPdXRzaWRlRXZlbnRMaXN0ZW5lcikobmV3IEN1c3RvbUV2ZW50KCJ0aW1lc3RhbXAiKS50aW1lU3RhbXAsdGhpcy5fY29sbGFwc2VkRGF0YVNvdXJjZXNXcmFwcGVyRWwsKCgpPT57bnVsbCE9PXRoaXMuX291dHNpZGVFdmVudEZvckNvbGxhcHNlZFRvb2x0aXAmJnRoaXMuX291dHNpZGVFdmVudEZvckNvbGxhcHNlZFRvb2x0aXAoKSwoMCxmLmhpZGUpKCl9KSx3aW5kb3cuZG9jdW1lbnQse3RvdWNoRW5kOiEwfSl9X3VwZGF0ZUNvbGxhcHNlZFNvdXJjZXNDb3VudChlKXtpZihudWxsPT09dGhpcy5fY29sbGFwc2VkRGF0YVNvdXJjZXNXcmFwcGVyRWx8fG51bGw9PT10aGlzLl9jb2xsYXBzZWREYXRhU291cmNlc0VsKXJldHVybjtjb25zdCB0PTA9PT1lO3RoaXMuX2NvbGxhcHNlZERhdGFTb3VyY2VzV3JhcHBlckVsLmNsYXNzTGlzdC50b2dnbGUoWC5ibG9ja0hpZGRlbix0KSwhdCYmdGhpcy5fY29sbGFwc2VkU3RhdHVzZXNXaWRnZXRWaXNpYmlsaXR5LnZhbHVlKCk/dGhpcy5fY29sbGFwc2VkU3RhdHVzZXNXaWRnZXREZXN0cm95PUMoe2NvbnRhaW5lcjp0aGlzLl9jb2xsYXBzZWREYXRhU291cmNlc1N0YXR1c1dpZGdldEVsZW1lbnQsc3RhdHVzZXM6dGhpcy5fY29sbGFwc2VkU3RhdHVzZXNXaWRnZXRTdGF0ZS52aXNpYmxlTW9kZWxzKCksdG9vbHRpcDp0aGlzLl9jb2xsYXBzZWRTdGF0dXNlc1dpZGdldFN0YXRlLnRvb2x0aXAoKSx0aGVtZTpJZX0pOih0aGlzLl9jb2xsYXBzZWRTdGF0dXNlc1dpZGdldERlc3Ryb3k/LigpLHRoaXMuX2NvbGxhcHNlZFN0YXR1c2VzV2lkZ2V0RGVzdHJveT12b2lkIDApLHR8fChnKHRoaXMuX2NvbGxhcHNlZERhdGFTb3VyY2VzRWwsYCske2V9YCksdGhpcy5fY29sbGFwc2VkRGF0YVNvdXJjZXNFbC5zZXRBdHRyaWJ1dGUoInRpdGxlIix0aGlzLl9vcHRpb25zLmNvbGxhcHNlZERhdGFTb3VyY2VzVGl0bGUudmFsdWUoKSkpfV91cGRhdGVMZWdlbmRWaXNpYmlsaXR5KCl7bGV0IGU7Y29uc3QgdD1CZS5fd2FzS2V5Ym9hcmROYXZpZ2F0aW9uQWN0aXZhdGVkJiYodGhpcy5faXNBbGxMZWdlbmRIaWRkZW4udmFsdWUoKXx8dGhpcy5faXNTdHVkaWVzTGVnZW5kSGlkZGVuLnZhbHVlKCkpO2lmKHQpe2U9dGhpcy5fZ2V0QWxsQWNjZXNzaWJsZUJ1dHRvbnMoKS5maWx0ZXIoKGU9PmUudGFiSW5kZXg+PTApKVswXX1pZih0aGlzLl9wYXJlbnRFbC5jbGFzc0xpc3QudG9nZ2xlKFguYmxvY2tIaWRkZW4sdGhpcy5faXNBbGxMZWdlbmRIaWRkZW4udmFsdWUoKSksbnVsbCE9PXRoaXMuX2RhdGFTb3VyY2VzRWwmJnRoaXMuX2RhdGFTb3VyY2VzRWwuY2xhc3NMaXN0LnRvZ2dsZShYLmJsb2NrSGlkZGVuLHRoaXMuX2lzU3R1ZGllc0xlZ2VuZEhpZGRlbi52YWx1ZSgpKSx0KXtjb25zdCB0PXRoaXMuX2dldEFsbEFjY2Vzc2libGVCdXR0b25zKCk7aWYoZSYmdC5pbmNsdWRlcyhlKSlyZXR1cm47aWYoZSYmKDAsbS5iZWNvbWVTZWNvbmRhcnlFbGVtZW50KShlKSwwIT09dC5sZW5ndGgpe2NvbnN0IGU9dGhpcy5fZ2V0Um93UmVuZGVyZXJCeUNoaWxkKHRbMF0pO2UmJnRoaXMuX21ha2VSb3dFbGVtZW50VGhlTWFpbk9uZSh0WzBdLGUpfX19X3VwZGF0ZUFsbEhpZGRlbkV4ZXB0Rmlyc3RMaW5lKCl7dGhpcy5fcGFyZW50RWwuY2xhc3NMaXN0LnRvZ2dsZShjZS53cmFwcGFibGUsIXRoaXMuX2hpZGVBbGxFeGNlcHRGaXJzdExpbmUudmFsdWUoKSl9X3NldEN1c3RvbUJnKCl7Y29uc3QgZT10aGlzLl9zaG93QmFja2dyb3VuZC52YWx1ZSgpLHQ9dGhpcy5fdGhlbWVkQ29sb3IudmFsdWUoKSxpPXRoaXMuX2JhY2tncm91bmRUcmFuc3BhcmVuY3kudmFsdWUoKTtsZXQgcz0iIjtpZihlKXtjb25zdFtlLG8sbl09KDAsYy5wYXJzZVJnYikodCk7cz0oMCxjLnJnYmFUb1N0cmluZykoW2UsbyxuLCgwLGMubm9ybWFsaXplQWxwaGFDb21wb25lbnQpKDEtaS8xMDApXSl9dGhpcy5fcGFyZW50RWwuc3R5bGUuY29sb3I9c31fb25MYXlvdXRDaGFuZ2VkKGUpe2NvbnN0e25ld01haW5Tb3VyY2U6dCxyZW1vdmVkRGF0YVNvdXJjZXM6aSxhZGRlZERhdGFTb3VyY2VzOnMsbW92ZWREYXRhU291cmNlczpvfT1lLG49ZG9jdW1lbnQuYWN0aXZlRWxlbWVudDtsZXQgYT0tMSxsPS0xO2NvbnN0IHI9bnVsbD09PXRoaXMuX21haW5EYXRhU291cmNlUmVuZGVyZXImJjA9PT10aGlzLl9kYXRhU291cmNlUmVuZGVyZXJzLmxlbmd0aDtpZihCZS5fd2FzS2V5Ym9hcmROYXZpZ2F0aW9uQWN0aXZhdGVkJiZuIGluc3RhbmNlb2YgSFRNTEJ1dHRvbkVsZW1lbnQpe2NvbnN0IGU9dGhpcy5fZ2V0Um93UmVuZGVyZXJzKCksbz1lLmZpbmQoKGU9PmUuYWNjZXNzaWJsZUJ1dHRvbnMoKS5pbmNsdWRlcyhuKSkpO2lmKHZvaWQgMCE9PW8pe2NvbnN0IHI9bz09PXRoaXMuX21haW5EYXRhU291cmNlUmVuZGVyZXImJm51bGw9PT10LGQ9byBpbnN0YW5jZW9mIFNlJiZpLmluY2x1ZGVzKHRoaXMuX2RhdGFTb3VyY2VSZW5kZXJlcnMuaW5kZXhPZihvKSk7aWYocnx8ZCl7YT1lLmluZGV4T2Yobyk7Y29uc3Qgcj0oMCxiLnF1ZXJ5VGFiYmFibGVFbGVtZW50cykoZG9jdW1lbnQuYm9keSkuaW5kZXhPZihuKTtsPTAhPT1zLmxlbmd0aHx8KHZvaWQgMCE9PXR8fG51bGwhPT10aGlzLl9tYWluRGF0YVNvdXJjZVJlbmRlcmVyKSYmbnVsbCE9PXR8fGkubGVuZ3RoIT09dGhpcy5fZGF0YVNvdXJjZVJlbmRlcmVycy5sZW5ndGgmJjAhPT10aGlzLl9kYXRhU291cmNlUmVuZGVyZXJzLmxlbmd0aD9yKzE6cn19fQp2b2lkIDAhPT10JiYobnVsbCE9PXQ/dGhpcy5fYWRkTWFpbkRhdGFTb3VyY2UodC5tb2RlbCx0LnN0YXR1c2VzV2lkZ2V0U3RhdGUpOih0aGlzLl9tYWluRGF0YVNvdXJjZVJlbmRlcmVyPy5kZXN0cm95KCksdGhpcy5fbWFpbkRhdGFTb3VyY2VSZW5kZXJlcj1udWxsKSk7Y29uc3QgZD1bXTtpZihvLmZvckVhY2goKGU9PntkLnB1c2goe3JlbmRlcmVyOnRoaXMuX2RhdGFTb3VyY2VSZW5kZXJlcnNbZS5vbGRJbmRleF0sbmV3SW5kZXg6ZS5uZXdJbmRleH0pfSkpLGQuc29ydCgoKGUsdCk9PmUubmV3SW5kZXgtdC5uZXdJbmRleCkpLGkuZm9yRWFjaCgoZT0+e3RoaXMuX2RhdGFTb3VyY2VSZW5kZXJlcnMuc3BsaWNlKGUsMSlbMF0uZGVzdHJveSgpfSkpLDAhPT1zLmxlbmd0aCYmKHRoaXMuX3JlbmRlckRhdGFTb3VyY2VzRWwoKSxzLmZvckVhY2goKGU9Pnt0aGlzLl9hZGREYXRhU291cmNlKGUubW9kZWwsZS5zdGF0dXNlc1dpZGdldFN0YXRlLGUuaW5kZXgpfSkpKSwwIT09ZC5sZW5ndGgmJih0aGlzLl9yZW5kZXJEYXRhU291cmNlc0VsKCksZC5mb3JFYWNoKChlPT57dGhpcy5fbW92ZURhdGFTb3VyY2UoZS5yZW5kZXJlcixlLm5ld0luZGV4KX0pKSksQmUuX3dhc0tleWJvYXJkTmF2aWdhdGlvbkFjdGl2YXRlZCYmciYmKG51bGwhPT10aGlzLl9tYWluRGF0YVNvdXJjZVJlbmRlcmVyfHx0aGlzLl9kYXRhU291cmNlUmVuZGVyZXJzLmxlbmd0aCkmJndpbmRvdy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgia2V5Ym9hcmQtbmF2aWdhdGlvbi1hY3RpdmF0aW9uIix7YnViYmxlczohMH0pKSwtMSE9PWEpe2xldCBlLHQ7Y29uc3QgaT10aGlzLl9nZXRSb3dSZW5kZXJlcnMoKTtmb3IoO2E8aS5sZW5ndGg7KXtjb25zdCBzPWlbYV0sbz1zLmFjY2Vzc2libGVCdXR0b25zKCk7aWYoby5sZW5ndGg+MCl7ZT1vWzBdLHQ9czticmVha31hKyt9aWYoZSYmdCl0aGlzLl9jaGFuZ2VGb2N1c0VsZW1lbnQoZSx0KTtlbHNlIGlmKC0xIT09bCl7d2luZG93LmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJrZXlib2FyZC1uYXZpZ2F0aW9uLWFjdGl2YXRpb24iLHtidWJibGVzOiEwfSkpO2NvbnN0IHQ9KDAsYi5xdWVyeVRhYmJhYmxlRWxlbWVudHMpKGRvY3VtZW50LmJvZHkpO2U9bD09PXQubGVuZ3RoP3RbMF06dFtsXSxlJiYobiYmKDAsbS5iZWNvbWVTZWNvbmRhcnlFbGVtZW50KShuKSxlLmZvY3VzKCkpfX19X2FkZE1haW5EYXRhU291cmNlKGUsdCl7dGhpcy5fcmVuZGVyTWFpbkRhdGFTb3VyY2VFbCgpLHRoaXMuX21haW5EYXRhU291cmNlUmVuZGVyZXI9bmV3IHdlKGUsKDAsbi5lbnN1cmVOb3ROdWxsKSh0aGlzLl9tYWluRGF0YVNvdXJjZUVsKSx7d2l0aEFjdGlvbnM6dGhpcy5fb3B0aW9ucy53aXRoQWN0aW9ucyxjdXN0b21UZXh0Q29sb3I6dGhpcy5fb3B0aW9ucy5jdXN0b21UZXh0Q29sb3Isc3RhdHVzZXNXaWRnZXRTdGF0ZTp0LGlzTXVsdGlwbGVMYXlvdXQ6dGhpcy5fb3B0aW9ucy5pc011bHRpcGxlTGF5b3V0LHRvZ2dsZUhpZGRlbkFjdGlvbnM6dGhpcy5fdG9nZ2xlSGlkZGVuQWN0aW9uc30pLHRoaXMuX3VwZGF0ZUxlZ2VuZFZpc2liaWxpdHkoKX1fYWRkRGF0YVNvdXJjZShlLHQsaSl7Y29uc3Qgcz0oMCxuLmVuc3VyZU5vdE51bGwpKHRoaXMuX2RhdGFTb3VyY2VzQWRkaXRpb25hbFdyYXBwZXJFbCksbz1uZXcgU2UoZSxzLHt3aXRoQWN0aW9uczp0aGlzLl9vcHRpb25zLndpdGhBY3Rpb25zLGN1c3RvbVRleHRDb2xvcjp0aGlzLl9vcHRpb25zLmN1c3RvbVRleHRDb2xvcixzdGF0dXNlc1dpZGdldFN0YXRlOnQsaXNNdWx0aXBsZUxheW91dDp0aGlzLl9vcHRpb25zLmlzTXVsdGlwbGVMYXlvdXQsdG9nZ2xlSGlkZGVuQWN0aW9uczp0aGlzLl90b2dnbGVIaWRkZW5BY3Rpb25zfSksYT0oMCxuLmVuc3VyZU5vdE51bGwpKG8uZ2V0RWxlbWVudCgpKTtpZihudWxsIT09YSl7bGV0IGU9dGhpcy5fZGF0YVNvdXJjZVJlbmRlcmVyc1tpXTt2b2lkIDAhPT1lP3MuaW5zZXJ0QmVmb3JlKGEsZS5nZXRFbGVtZW50KCkpOihlPXRoaXMuX2RhdGFTb3VyY2VSZW5kZXJlcnNbaS0xXSx2b2lkIDAhPT1lJiZzLmluc2VydEJlZm9yZShhLCgwLG4uZW5zdXJlTm90TnVsbCkoZS5nZXRFbGVtZW50KCkpLm5leHRTaWJsaW5nKSl9dGhpcy5fZGF0YVNvdXJjZVJlbmRlcmVycy5zcGxpY2UoaSwwLG8pLHRoaXMuX3VwZGF0ZUxlZ2VuZFZpc2liaWxpdHkoKX1fbW92ZURhdGFTb3VyY2UoZSx0KXtjb25zdCBpPXRoaXMuX2RhdGFTb3VyY2VSZW5kZXJlcnMuaW5kZXhPZihlKTtpZigtMT09PWl8fHQ9PT1pKXJldHVybjtjb25zdCBzPSgwLG4uZW5zdXJlTm90TnVsbCkodGhpcy5fZGF0YVNvdXJjZXNBZGRpdGlvbmFsV3JhcHBlckVsKSxvPSgwLG4uZW5zdXJlTm90TnVsbCkoZS5nZXRFbGVtZW50KCkpO2xldCBhPXRoaXMuX2RhdGFTb3VyY2VSZW5kZXJlcnNbdF07dm9pZCAwIT09YT9zLmluc2VydEJlZm9yZShvLGEuZ2V0RWxlbWVudCgpKTooYT10aGlzLl9kYXRhU291cmNlUmVuZGVyZXJzW3QtMV0sdm9pZCAwIT09YSYmcy5pbnNlcnRCZWZvcmUobywoMCxuLmVuc3VyZU5vdE51bGwpKGEuZ2V0RWxlbWVudCgpKS5uZXh0U2libGluZykpLHRoaXMuX2RhdGFTb3VyY2VSZW5kZXJlcnMuc3BsaWNlKGksMSksdGhpcy5fZGF0YVNvdXJjZVJlbmRlcmVycy5zcGxpY2UodCwwLGUpfV9vbktleWJvYXJkTmF2aWdhdGlvbkFjdGl2YXRpb24oKXtCZS5fd2FzS2V5Ym9hcmROYXZpZ2F0aW9uQWN0aXZhdGVkPSEwLHRoaXMuX3RvZ2dsZXJPcHRpb25zLmlzRGF0YVNvdXJjZXNDb2xsYXBzZWQudW5zdWJzY3JpYmUodGhpcy5fb25Jc0RhdGFTb3VyY2VzQ29sbGFwc2VkQm91bmQpLHRoaXMuX3RvZ2dsZXJPcHRpb25zLmlzRGF0YVNvdXJjZXNDb2xsYXBzZWQuc3Vic2NyaWJlKHRoaXMuX29uSXNEYXRhU291cmNlc0NvbGxhcHNlZEJvdW5kKTtjb25zdCBlPXRoaXMuX2dldEFsbEFjY2Vzc2libGVCdXR0b25zKCksdD1lLmZpbHRlcigoZT0+ZS50YWJJbmRleD49MCkpO2lmKDA9PT10Lmxlbmd0aCl7Y29uc3RbdF09ZS5maWx0ZXIoKGU9PmUuaGFzQXR0cmlidXRlKCJ0YWJJbmRleCIpKSk7aWYodm9pZCAwPT09dClyZXR1cm4KO2NvbnN0IGk9dGhpcy5fZ2V0Um93UmVuZGVyZXJCeUNoaWxkKHQpO2lmKG51bGw9PT1pKXJldHVybjt0aGlzLl9tYWtlUm93RWxlbWVudFRoZU1haW5PbmUodCxpKX1pZih0Lmxlbmd0aD4xKXtjb25zdFssLi4uZV09dDtmb3IoY29uc3QgdCBvZiBlKSgwLG0uYmVjb21lU2Vjb25kYXJ5RWxlbWVudCkodCl9fV9oYW5kbGVLZXlEb3duKGUpe2lmKGUuZGVmYXVsdFByZXZlbnRlZClyZXR1cm47Y29uc3QgdD0oMCxoLmhhc2hGcm9tRXZlbnQpKGUpO2lmKCFXZS5pbmNsdWRlcyh0KSlyZXR1cm47Y29uc3QgaT1kb2N1bWVudC5hY3RpdmVFbGVtZW50O2lmKCEoaSBpbnN0YW5jZW9mIEhUTUxCdXR0b25FbGVtZW50KSlyZXR1cm47Y29uc3Qgcz10aGlzLl9nZXRSb3dSZW5kZXJlckJ5Q2hpbGQoaSk7aWYobnVsbD09PXMpcmV0dXJuO2lmKDI3PT09dClyZXR1cm4gdm9pZCBpLmJsdXIoKTtjb25zdCBvPXMuYWNjZXNzaWJsZUJ1dHRvbnMoKSxuPW8uaW5kZXhPZihpKTtpZigwPT09by5sZW5ndGh8fC0xPT09bilyZXR1cm47Y29uc3QgYT10PT57ZS5wcmV2ZW50RGVmYXVsdCgpO2NvbnN0IGk9dGhpcy5fZ2V0Um93UmVuZGVyZXJzKCksbz1pLmluZGV4T2Yocyk7bGV0IG4sYSxsPSJibG9ja05leHQiPT09dD9vKzE6by0xO2Zvcig7bD49MCYmbDxpLmxlbmd0aDspe2NvbnN0IGU9aVtsXSxzPWUuYWNjZXNzaWJsZUJ1dHRvbnMoKTtpZigwIT09cy5sZW5ndGgpe249ZSxhPXM7YnJlYWt9bD0iYmxvY2tOZXh0Ij09PXQ/bCsxOmwtMX1uJiZhJiZ0aGlzLl9jaGFuZ2VGb2N1c0VsZW1lbnQoYVswXSxuKX0sbD0oMCxiLm1hcEtleUNvZGVUb0RpcmVjdGlvbikodCk7c3dpdGNoKGwpe2Nhc2UiaW5saW5lUHJldiI6ZS5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuX2NoYW5nZUZvY3VzRWxlbWVudCgwIT09bj9vW24tMV06b1tvLmxlbmd0aC0xXSxzKTticmVhaztjYXNlImlubGluZU5leHQiOmUucHJldmVudERlZmF1bHQoKSx0aGlzLl9jaGFuZ2VGb2N1c0VsZW1lbnQobiE9PW8ubGVuZ3RoLTE/b1tuKzFdOm9bMF0scyk7YnJlYWs7Y2FzZSJibG9ja1ByZXYiOmNhc2UiYmxvY2tOZXh0IjphKGwpfX1fc3Vic2NyaWJlRWxlbWVudFRvRm9jdXNFdmVudHMoZSx0KXt0aGlzLl9mb2N1c0V2ZW50QWJvcnRDb250cm9sbGVyPW5ldyBBYm9ydENvbnRyb2xsZXIsZS5hZGRFdmVudExpc3RlbmVyKCJmb2N1c2luIiwoKCk9Pnt0aGlzLl9mb2N1c0V2ZW50QWJvcnRDb250cm9sbGVyPW5ldyBBYm9ydENvbnRyb2xsZXIsZS5hZGRFdmVudExpc3RlbmVyKCJmb2N1c291dCIsKGk9Pntjb25zdCBzPWkucmVsYXRlZFRhcmdldDtudWxsIT09cyYmcyBpbnN0YW5jZW9mIEhUTUxCdXR0b25FbGVtZW50JiZ0LmFjY2Vzc2libGVCdXR0b25zKCkuaW5jbHVkZXMocyl8fCh0aGlzLl9zdWJzY3JpYmVFbGVtZW50VG9Gb2N1c0V2ZW50cyhlLHQpLHQgaW5zdGFuY2VvZiBWZXx8dC5oaWRlQWN0aW9ucygpKX0pLHtvbmNlOiEwLHNpZ25hbDp0aGlzLl9mb2N1c0V2ZW50QWJvcnRDb250cm9sbGVyLnNpZ25hbH0pLHRoaXMuX29wdGlvbnMub25MZWdlbmRSb3dGb2N1c2VkKCksdCBpbnN0YW5jZW9mIFZlfHx0LnNob3dBY3Rpb25zKCl9KSx7b25jZTohMCxzaWduYWw6dGhpcy5fZm9jdXNFdmVudEFib3J0Q29udHJvbGxlci5zaWduYWx9KX1fbWFrZVJvd0VsZW1lbnRUaGVNYWluT25lKGUsdCl7dGhpcy5fc3Vic2NyaWJlRWxlbWVudFRvRm9jdXNFdmVudHMoZSx0KSwoMCxtLmJlY29tZU1haW5FbGVtZW50KShlKX1fY2hhbmdlRm9jdXNFbGVtZW50KGUsdCl7ZG9jdW1lbnQuYWN0aXZlRWxlbWVudCYmKDAsbS5iZWNvbWVTZWNvbmRhcnlFbGVtZW50KShkb2N1bWVudC5hY3RpdmVFbGVtZW50KSx0aGlzLl9tYWtlUm93RWxlbWVudFRoZU1haW5PbmUoZSx0KSxlLmZvY3VzKCl9X2dldFJvd1JlbmRlcmVycygpe2xldCBlPVtdO3JldHVybiB0aGlzLl9tYWluRGF0YVNvdXJjZVJlbmRlcmVyJiZlLnB1c2godGhpcy5fbWFpbkRhdGFTb3VyY2VSZW5kZXJlciksdGhpcy5fZGF0YVNvdXJjZXNFbCYmIXRoaXMuX2RhdGFTb3VyY2VzRWwuY2xhc3NMaXN0LmNvbnRhaW5zKFguYmxvY2tIaWRkZW4pJiYodGhpcy5fdG9nZ2xlck9wdGlvbnMuaXNEYXRhU291cmNlc0NvbGxhcHNlZC52YWx1ZSgpJiYxIT09dGhpcy5fbW9kZSYmKGU9ZS5jb25jYXQodGhpcy5fZGF0YVNvdXJjZVJlbmRlcmVycykpLHRoaXMuX3JlbmRlclRvZ2dsZXImJjAhPT10aGlzLl9kYXRhU291cmNlUmVuZGVyZXJzLmxlbmd0aCYmZS5wdXNoKHRoaXMuX3JlbmRlclRvZ2dsZXIpKSxlfV9nZXRBbGxBY2Nlc3NpYmxlQnV0dG9ucygpe2NvbnN0IGU9W107cmV0dXJuIHRoaXMuX2dldFJvd1JlbmRlcmVycygpLmZvckVhY2goKHQ9PntlLnB1c2goLi4udC5hY2Nlc3NpYmxlQnV0dG9ucygpKX0pKSxlfV9nZXRSb3dSZW5kZXJlckJ5Q2hpbGQoZSl7cmV0dXJuIHRoaXMuX2dldFJvd1JlbmRlcmVycygpLmZpbmQoKHQ9PnQuYWNjZXNzaWJsZUJ1dHRvbnMoKS5pbmNsdWRlcyhlKSkpPz9udWxsfX1CZS5fd2FzS2V5Ym9hcmROYXZpZ2F0aW9uQWN0aXZhdGVkPSExO3ZhciBIZT1pKDc0MTY5MCksRGU9aSgyNDE5NTYpLFBlPWkoNTUyMTQ1KSxOZT1pKDg2MjU3MiksUmU9aSg5OTQ1NDApLE9lPWkoMjg0ODMxKTtmdW5jdGlvbiBGZShlLHQpe2NvbnN0IGk9W107Zm9yKGNvbnN0IHMgb2YgdCl7aWYocy5oaWRkZW4pY29udGludWU7Y29uc3QgdD0oMCxPZS5jbGVhbikoU3RyaW5nKGVbcy5maWVsZF0/PyIiKSwhMCk7IiIhPT10JiZpLnB1c2goe3RpdGxlOnQsaWQ6cy5pZCx0b29sdGlwOnMudG9vbHRpcCxhY3Rpb246cy5hY3Rpb259KX1yZXR1cm4gaX12YXIgemU9aSgxMTczMTMpLGplPWkoMTI5MzMzKSxVZT1pKDMzMzQ1KSxHZT1pKDY3NzAxMCksWmU9aSgzMzMzMTIpLEplPWkoNTA5MDQpLFllPWkoMjUwNDM5KSxxZT1pKDMwNTY0MCksJGU9aSg0MTc2ODYpO2NsYXNzIFFle2NvbnN0cnVjdG9yKHtsaW5raW5nR3JvdXBJbmRleDplLGlzTGlua2luZ0F2YWlsYWJsZTp0LG9uQ2xpY2tIYW5kbGVyOnMsc2V0TGlua2luZ0dyb3VwSW5kZXg6b30pe3RoaXMuX2FjdGlvblZpc2libGU9bmV3IHIuV2F0Y2hlZFZhbHVlKCExKSwKdGhpcy5fYWN0aXZlPW5ldyByLldhdGNoZWRWYWx1ZSghMSksdGhpcy5faXNEZXN0cm95ZWQ9ITEsdGhpcy5fbGlua2luZ01vZGVTdWJzY3JpcHRpb249ZT0+e2lmKG51bGw9PT1lKXJldHVybiB2b2lkKHRoaXMuX2xlZ2VuZEFjdGlvbkJ1dHRvbkVsZW0uaW5uZXJIVE1MPVVlKTtjb25zdCB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImltZyIpO3Quc3JjPSgwLFplLmdldFR3ZW1vamlVcmwpKHFlLmljb25zW2VdLmljb24sInN2ZyIpLHQud2lkdGg9dC5oZWlnaHQ9MTgsdGhpcy5fbGVnZW5kQWN0aW9uQnV0dG9uRWxlbS5yZXBsYWNlQ2hpbGRyZW4odCl9LHRoaXMuX3NldExpbmtpbmdHcm91cEluZGV4SW1wbD1hc3luYyBlPT57dGhpcy5fc2V0TGlua2luZ0dyb3VwSW5kZXgoZT09PXRoaXMuX2xpbmtpbmdHcm91cEluZGV4LnZhbHVlKCk/bnVsbDplKSx0aGlzLl9hY3RpdmUudmFsdWUoKSYmWWUuQ29udGV4dE1lbnVNYW5hZ2VyLmhpZGVBbGwoKX0sdGhpcy5fc2hvd0NvbnRleHRNZW51PWFzeW5jIGU9PntlLnByZXZlbnREZWZhdWx0KCk7Y29uc3QgdD1lLmN1cnJlbnRUYXJnZXQ7aWYoISh0JiZ0IGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpKXJldHVybjtpZih0aGlzLl9vbkNsaWNrSGFuZGxlcj8uKCksdGhpcy5fYWN0aXZlLnZhbHVlKCkpcmV0dXJuIHZvaWQgWWUuQ29udGV4dE1lbnVNYW5hZ2VyLmhpZGVBbGwoKTtjb25zdCBpPWF3YWl0IHRoaXMuX2dldEFjdGlvbnMoKTtpZigwPT09aS5sZW5ndGgpcmV0dXJuO2NvbnN0e2xlZnQ6cyxib3R0b206b309dC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTthd2FpdCBZZS5Db250ZXh0TWVudU1hbmFnZXIuc2hvd01lbnUoaSx7Y2xpZW50WDpzLGNsaWVudFk6b30se3JldHVybkZvY3VzOiEwLHRha2VGb2N1czohMCxpc0tleWJvYXJkRXZlbnQ6ISgidG91Y2hlcyJpbiBlKSYmKDAsSC5pc0tleWJvYXJkQ2xpY2spKGUpfSx7bWVudU5hbWU6IlN5bWJvbEludGVydmFsQ2hhcnRTeW5jaW5nTWVudSJ9LCgoKT0+dGhpcy5fYWN0aXZlLnNldFZhbHVlKCExKSkpLHRoaXMuX2FjdGl2ZS5zZXRWYWx1ZSghMCl9LHRoaXMuX2xpbmtpbmdHcm91cEluZGV4PWUuc3Bhd24oKSx0aGlzLl9pc0xpbmtpbmdBdmFpbGFibGU9dC5zcGF3bigpLHRoaXMuX29uQ2xpY2tIYW5kbGVyPXMsdGhpcy5fc2V0TGlua2luZ0dyb3VwSW5kZXg9bztjb25zdCBuPXRoaXMuX2xlZ2VuZEFjdGlvbkJ1dHRvbkVsZW09ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpO24uY2xhc3NOYW1lPSRlLmxlZ2VuZEFjdGlvbkJ1dHRvbix0aGlzLl9hY3Rpb249e2ljb246bix0aXRsZTpuZXcgci5XYXRjaGVkVmFsdWUoUC50KG51bGwsdm9pZCAwLGkoNTQ2MzY5KSkpLGFjdGlvbjp0aGlzLl9zaG93Q29udGV4dE1lbnUsdmlzaWJsZTp0aGlzLl9hY3Rpb25WaXNpYmxlLnJlYWRvbmx5KCksYWN0aXZlOnRoaXMuX2FjdGl2ZS5yZWFkb25seSgpLGNsYXNzTmFtZTpjZS5saW5raW5nLGRhdGFRYUlkOiJsZWdlbmQtbGF5b3V0LWNoYXJ0LXN5bmMtYWN0aW9uIn0sdGhpcy5fbGlua2luZ0dyb3VwSW5kZXguc3Vic2NyaWJlKHRoaXMuX2xpbmtpbmdNb2RlU3Vic2NyaXB0aW9uLHtjYWxsV2l0aExhc3Q6ITB9KSx0aGlzLl9pc0xpbmtpbmdBdmFpbGFibGUuc3Vic2NyaWJlKChlPT50aGlzLl9hY3Rpb25WaXNpYmxlLnNldFZhbHVlKGUpKSx7Y2FsbFdpdGhMYXN0OiEwfSl9ZGVzdHJveSgpe3RoaXMuX2lzRGVzdHJveWVkPSEwLHRoaXMuX2xpbmtpbmdHcm91cEluZGV4LmRlc3Ryb3koKSx0aGlzLl9pc0xpbmtpbmdBdmFpbGFibGUuZGVzdHJveSgpLHRoaXMuX2FjdGl2ZS52YWx1ZSgpJiZZZS5Db250ZXh0TWVudU1hbmFnZXIuaGlkZUFsbCgpfWdldEFjdGlvbigpe3JldHVybiB0aGlzLl9hY3Rpb259YXN5bmMgX2dldEFjdGlvbnMoKXtjb25zdFtlLHtMYXlvdXRDaGFydHNTeW5jQ29udGV4dE1lbnVUaXRsZTp0fSx7TGF5b3V0Q2hhcnRzU3luY0NvbnRleHRNZW51SXRlbTpzfV09YXdhaXQgUHJvbWlzZS5hbGwoW1Byb21pc2UucmVzb2x2ZSgpLnRoZW4oaS50LmJpbmQoaSw3Nzk0NzQsMTkpKSxQcm9taXNlLmFsbChbaS5lKDQ5Mzk0KSxpLmUoMjk1MzYpLGkuZSg1NjI1MiksaS5lKDg5NTU4KSxpLmUoNDQ0NjApLGkuZSg5NDU2MCksaS5lKDM0NjU0KV0pLnRoZW4oaS5iaW5kKGksNjA5OTUxKSksUHJvbWlzZS5hbGwoW2kuZSg0OTM5NCksaS5lKDI5NTM2KSxpLmUoNTYyNTIpLGkuZSg4OTU1OCksaS5lKDQ0NDYwKSxpLmUoOTQ1NjApLGkuZSgzNDY1NCldKS50aGVuKGkuYmluZChpLDg3MDI0NikpXSk7aWYodGhpcy5faXNEZXN0cm95ZWQpcmV0dXJuW107Y29uc3Qgbz1xZS5pY29ucy5tYXAoKCh7aWNvbjplfSx0KT0+bmV3IEplLkFjdGlvbih7YWN0aW9uSWQ6IkNoYXJ0LkxpbmtpbmdHcm91cFN5bmMuQ2hhbmdlR3JvdXAiLG9wdGlvbnM6e2xhYmVsOmUsY2hlY2thYmxlOiEwLGNoZWNrZWQ6dGhpcy5fbGlua2luZ0dyb3VwSW5kZXgudmFsdWUoKT09PXQsb25FeGVjdXRlOigpPT50aGlzLl9zZXRMaW5raW5nR3JvdXBJbmRleEltcGwodCl9fSkpKTt0aGlzLl9saW5raW5nR3JvdXBJbmRleC5zdWJzY3JpYmUoKGU9PntvLmZvckVhY2goKCh0LGkpPT57dC51cGRhdGUoe2NoZWNrZWQ6aT09PWV9KX0pKX0pKTtyZXR1cm5bbmV3IEplLkFjdGlvbih7YWN0aW9uSWQ6IkNoYXJ0LkxpbmtpbmdHcm91cFN5bmMiLG9wdGlvbnM6e2ljb246R2UsbGFiZWw6UC50KG51bGwsdm9pZCAwLGkoNDIxMjEpKSxzdWJJdGVtczpvfSxjdXN0b21BY3Rpb25PcHRpb25zOntqc3hMYWJlbDplLmNyZWF0ZUVsZW1lbnQoZS5GcmFnbWVudCxudWxsLGUuY3JlYXRlRWxlbWVudCh0LG51bGwpLGUuY3JlYXRlRWxlbWVudChzLHthY3RpdmU6dGhpcy5fbGlua2luZ0dyb3VwSW5kZXgsaWNvbnM6cWUuaWNvbnMsb25DbGljazp0aGlzLl9zZXRMaW5raW5nR3JvdXBJbmRleEltcGx9KSksZG9Ob3RDbG9zZU9uQ2xpY2s6ITAsbm9JbnRlcmFjdGl2ZTohMH19KV19fXZhciBLZT1pKDQ5MDIwNCksWGU9aSg5MzMxMTYpLGV0PWkoOTg2Mjc1KSx0dD1pKDYyMDM1NCksaXQ9aSg1MTcyOTMpCjtjb25zdCBzdD1uZXcgaXQuQ2lyY3VsYXJDYWNoZUJ1ZmZlcigxMDApO2NsYXNzIG90e2NvbnN0cnVjdG9yKGUsdCl7dGhpcy5fc3ltYm9sTG9nb1VybHM9bmV3IHIuV2F0Y2hlZFZhbHVlKFtdKSx0aGlzLl9sb2dvRGF0YVVwZGF0ZWQ9KCk9Pntjb25zdCBlPXRoaXMuc3ltYm9sKCksdD10aGlzLl9sb2dvRGF0YS52YWx1ZSgpO3QmJmUmJnN0LnNldChlLHQpO2NvbnN0IGk9c3QuZ2V0KGUpO2k/dGhpcy5fc3ltYm9sTG9nb1VybHMuc2V0VmFsdWUoKDAsZXQucmVtb3ZlVXNkRnJvbUNyeXB0b1BhaXJMb2dvcykoKDAsZXQucmVzb2x2ZUxvZ29VcmxzRnJvbUxvZ29EYXRhKShpLHR0LkxvZ29TaXplLk1lZGl1bSkpKTp0aGlzLl9zeW1ib2xMb2dvVXJscy5zZXRWYWx1ZShbXSl9LHRoaXMuX2xvZ29Nb2RlbD1lLHRoaXMuX2lzTG9nb1Zpc2libGU9KDAsRGUuY3JlYXRlV1ZGcm9tR2V0dGVyQW5kU3Vic2NyaXB0aW9uKSgoKCk9PnQuc2hvd0xvZ28udmFsdWUoKSksdC5zaG93TG9nbyksdGhpcy5fbG9nb0RhdGE9dGhpcy5fbG9nb01vZGVsLmxvZ29EYXRhKCkuc3Bhd24oKSx0aGlzLl9sb2dvRGF0YS5zdWJzY3JpYmUodGhpcy5fbG9nb0RhdGFVcGRhdGVkLHtjYWxsV2l0aExhc3Q6ITB9KX1kZXN0cm95KCl7dGhpcy5faXNMb2dvVmlzaWJsZS5kZXN0cm95KCksdGhpcy5fbG9nb01vZGVsLmRlc3Ryb3koKX1pc1N5bWJvbExvZ29WaXNpYmxlKCl7cmV0dXJuIHRoaXMuX2lzTG9nb1Zpc2libGV9c3ltYm9sTG9nb1VybHMoKXtyZXR1cm4gdGhpcy5fc3ltYm9sTG9nb1VybHN9c3ltYm9sKCl7cmV0dXJuIHRoaXMuX2xvZ29Nb2RlbC5zeW1ib2woKX11cGRhdGUoKXt0aGlzLl9sb2dvTW9kZWwudXBkYXRlKCl9fWZ1bmN0aW9uIG50KGUsdCl7cmV0dXJuIG5ldyBvdChlLHQpfXZhciBhdD1pKDE4NzA2MiksbHQ9aSgyMjEwNjEpO2NvbnN0IHJ0PSgwLGx0LmdldExvZ2dlcikoIkNoYXJ0LkxlZ2VuZFdpZGdldCIpO2NsYXNzIGR0e2NvbnN0cnVjdG9yKGUpe3RoaXMuX2xvZ29EYXRhPW5ldyByLldhdGNoZWRWYWx1ZShudWxsKSx0aGlzLl9wcmV2U3ltYm9sPSIiLHRoaXMuX3NvdXJjZT1lLHRoaXMuX3NvdXJjZS5xdW90ZXNQcm92aWRlcigpLnF1b3Rlc1VwZGF0ZSgpLnN1YnNjcmliZSh0aGlzLHRoaXMuX29uUXVvdGVTeW1ib2xEYXRhVXBkYXRlZCksdGhpcy51cGRhdGUoKX1kZXN0cm95KCl7dGhpcy5fc291cmNlLnF1b3Rlc1Byb3ZpZGVyKCkucXVvdGVzVXBkYXRlKCkudW5zdWJzY3JpYmVBbGwodGhpcyl9c3ltYm9sKCl7cmV0dXJuIHRoaXMuX3NvdXJjZS5zeW1ib2woKX1sb2dvRGF0YSgpe3JldHVybiB0aGlzLl9sb2dvRGF0YX11cGRhdGUoKXtjb25zdCBlPXRoaXMuc3ltYm9sKCk7dGhpcy5fcHJldlN5bWJvbCE9PWUmJih0aGlzLl9wcmV2U3ltYm9sPWUsdGhpcy5fb25Tb3VyY2VTeW1ib2xDaGFuZ2UoKSl9X29uUXVvdGVTeW1ib2xEYXRhVXBkYXRlZChlLHQpe2NvbnN0IGk9dC52YWx1ZXM7dGhpcy5fc291cmNlLnN5bWJvbFNhbWVBc0N1cnJlbnQoZS52YWx1ZXMucHJvX25hbWUpJiZ2b2lkIDAhPT1pLmxvZ28mJnRoaXMuX2xvZ29EYXRhLnNldFZhbHVlKGkubG9nbyl9YXN5bmMgX29uU291cmNlU3ltYm9sQ2hhbmdlKCl7Y29uc3QgZT10aGlzLnN5bWJvbCgpO2xldCB0PW51bGw7dHJ5e3RoaXMuX2xvZ29EYXRhLnNldFZhbHVlKG51bGwpLHQ9YXdhaXQgdGhpcy5fc291cmNlLnF1b3Rlc1Byb3ZpZGVyKCkucXVvdGVzU25hcHNob3QoZSl9Y2F0Y2goZSl7cnQubG9nV2FybihgUXVvdGUgc25hcHNob3QgZXJyb3I6ICR7ZX1gKX1maW5hbGx5e3RoaXMuc3ltYm9sKCk9PT1lJiYobnVsbD09PXQ/dGhpcy5fbG9nb0RhdGEuc2V0VmFsdWUobnVsbCwhMCk6dGhpcy5fbG9nb0RhdGEuc2V0VmFsdWUodC5sb2dvfHxudWxsKSl9fV9vblNvdXJjZVN5bWJvbFJlc29sdmVkKCl7MH19dmFyIHV0PWkoOTAzMDMxKSxjdD1pKDU1NjY0NiksaHQ9aSg4OTY5NDcpLHB0PWkoMTEzODEwKTtjb25zdCBfdD1QLnQobnVsbCx2b2lkIDAsaSgzOTQ5NDcpKSxndD1QLnQobnVsbCx2b2lkIDAsaSg3MDY0ODYpKSxtdD1QLnQobnVsbCx2b2lkIDAsaSgzNzUxNjUpKSxidD1QLnQobnVsbCx2b2lkIDAsaSgyNjY1KSksdnQ9UC50KG51bGwsdm9pZCAwLGkoNTk3NzcwKSksZnQ9KDAsbC5pc0ZlYXR1cmVzZXRFbmFibGVkKSgibGVnZW5kX2lucGxhY2VfZWRpdCIpLFN0PSgwLGwuaXNGZWF0dXJlc2V0RW5hYmxlZCkoInNob3dfaGlkZV9idXR0b25faW5fbGVnZW5kIikseXQ9KDAsbC5pc0ZlYXR1cmVzZXRFbmFibGVkKSgiaGlkZV9yZXNvbHV0aW9uX2luX2xlZ2VuZCIpLHd0PSgwLGwuaXNGZWF0dXJlc2V0RW5hYmxlZCkoIm1hcmtlZF9zeW1ib2xzIiksQ3Q9IV8uQ2hlY2tNb2JpbGUuYW55KCksRXQ9ISgwLHplLmlzT25Nb2JpbGVBcHBQYWdlKSgiYW55Iil8fCgwLGwuaXNGZWF0dXJlc2V0RW5hYmxlZCkoInNob3dfbmF0aXZlX3N5bWJvbF9zZWFyY2hfb25fdGFwX2luX2xlZ2VuZCIpO2NsYXNzIHh0IGV4dGVuZHMgJHtjb25zdHJ1Y3RvcihlLHQsaSxzLG8pe3N1cGVyKGUsdCxpLHMsbyksdGhpcy5fc3ltYm9sTWFya2VyPW51bGwsdGhpcy5fc3ltYm9sTWFya2VySWNvbj1udWxsLHRoaXMuX2ZsYWdnZWQ9bmV3IHIuV2F0Y2hlZFZhbHVlKG51bGwpLHRoaXMuX3N5bWJvbEFjdGlvbj1udWxsLHRoaXMuX3N5bWJvbEZvck1hcmtlcj1udWxsLHRoaXMuX2lzT25lQnV0dG9uQ2FuQmVTdGljaz0hMSx0aGlzLl9sYXlvdXRDaGFydFN5bmNMZWdlbmRSZW5kZXJlcj1udWxsLHRoaXMuX2lzQ2hhcnRMaW5rZWQ9bmV3IHIuV2F0Y2hlZFZhbHVlKCExKS5yZWFkb25seSgpLnNwYXduKCksQ3QmJih0aGlzLl9pc0xheW91dENoYXJ0U3luY1Zpc2libGU9KDAsZC5jb21iaW5lKSgoKGUsdCxpKT0+ZSYmKHR8fGkpKSx0aGlzLl9tb2RlbC5pc011bHRpcGxlTGF5b3V0KCkud2Vha1JlZmVyZW5jZSgpLHRoaXMuX21vZGVsLmNoYXJ0V2lkZ2V0Q29sbGVjdGlvbkxvY2soKS5zeW1ib2wud2Vha1JlZmVyZW5jZSgpLHRoaXMuX21vZGVsLmNoYXJ0V2lkZ2V0Q29sbGVjdGlvbkxvY2soKS5pbnRlcnZhbC53ZWFrUmVmZXJlbmNlKCkpLAp0aGlzLl9pc0NoYXJ0TGlua2VkPSgwLGQuY29tYmluZSkoKChlLHQpPT50JiZudWxsIT09ZSksdGhpcy5fbW9kZWwubW9kZWwoKS5saW5raW5nR3JvdXBJbmRleCgpLndlYWtSZWZlcmVuY2UoKSwodGhpcy5faXNMYXlvdXRDaGFydFN5bmNWaXNpYmxlfHxuZXcgci5XYXRjaGVkVmFsdWUoITEpKS53ZWFrUmVmZXJlbmNlKCkpKSx0aGlzLl9jcmVhdGVBY3Rpb25zKCksdGhpcy5fdXBkYXRlU3ltYm9sTWFya2VyKCk7Y29uc3Qgbj10aGlzLl9tb2RlbC5tb2RlbCgpLnByb3BlcnRpZXMoKS5jaGlsZHMoKS5wYW5lUHJvcGVydGllcy5jaGlsZHMoKS5sZWdlbmRQcm9wZXJ0aWVzLmNoaWxkcygpO3RoaXMuX3N5bWJvbExvZ29WaWV3TW9kZWwuc2V0VmFsdWUobnQobmV3IGR0KHQpLG4pKSxuLnNob3dTZXJpZXNUaXRsZS5zdWJzY3JpYmUodGhpcywoKCk9Pnt0aGlzLl9pc1RpdGxlSGlkZGVuLnNldFZhbHVlKHRoaXMuX2dldFRpdGxlSGlkZGVuVmFsdWUoKSl9KSksdGhpcy5faXNQcmljZVNvdXJjZUhpZGRlbj0oMCxEZS5jcmVhdGVXVkZyb21HZXR0ZXJBbmRTdWJzY3JpcHRpb24pKCgoKT0+IW4uc2hvd1ByaWNlU291cmNlLnZhbHVlKCkpLG4uc2hvd1ByaWNlU291cmNlKSx0aGlzLl92YWx1ZXNWaXNpYmxlUHJvcGVydHk9KDAsSGUuY29tYmluZVByb3BlcnR5KSgoKGUsdCxpLHMpPT5gJHtlfToke3R9OiR7aX06JHtzfWApLG4uc2hvd1Nlcmllc09ITEMud2Vha1JlZmVyZW5jZSgpLG4uc2hvd0JhckNoYW5nZS53ZWFrUmVmZXJlbmNlKCksbi5zaG93Vm9sdW1lLndlYWtSZWZlcmVuY2UoKSxuLnNob3dMYXN0RGF5Q2hhbmdlLndlYWtSZWZlcmVuY2UoKSksdGhpcy5fdmFsdWVzVmlzaWJsZVByb3BlcnR5LnN1YnNjcmliZShudWxsLCgoKT0+e3RoaXMudXBkYXRlKCksdGhpcy5faXNWYWx1ZXNIaWRkZW4uc2V0VmFsdWUodGhpcy5fZ2V0VmFsdWVzSGlkZGVuVmFsdWUoKSl9KSksdGhpcy51cGRhdGUoKSx0aGlzLl9zb3VyY2Uuc3RhdHVzV1YoKS5zdWJzY3JpYmUodGhpcy5fdXBkYXRlTG9hZGluZ1N0YXR1cyl9ZGVzdHJveSgpe0N0JiYodGhpcy5fbGF5b3V0Q2hhcnRTeW5jTGVnZW5kUmVuZGVyZXI/LmRlc3Ryb3koKSx0aGlzLl9pc0NoYXJ0TGlua2VkLmRlc3Ryb3koKSx0aGlzLl9pc0xheW91dENoYXJ0U3luY1Zpc2libGU/LmRlc3Ryb3koKSksc3VwZXIuZGVzdHJveSgpLHRoaXMuX21vZGVsLm1vZGVsKCkucHJvcGVydGllcygpLmNoaWxkcygpLnBhbmVQcm9wZXJ0aWVzLmNoaWxkcygpLmxlZ2VuZFByb3BlcnRpZXMuY2hpbGRzKCkuc2hvd1Nlcmllc1RpdGxlLnVuc3Vic2NyaWJlQWxsKHRoaXMpLHRoaXMuX3NvdXJjZS5zdGF0dXNXVigpLnVuc3Vic2NyaWJlKHRoaXMuX3VwZGF0ZUxvYWRpbmdTdGF0dXMpLHRoaXMuX3ZhbHVlc1Zpc2libGVQcm9wZXJ0eS5kZXN0cm95KCksdGhpcy5faXNQcmljZVNvdXJjZUhpZGRlbi5kZXN0cm95KCksdGhpcy5fc3ltYm9sTWFya2VyPy5kZXN0cm95KCl9ZmxhZ2dlZCgpe3JldHVybiB0aGlzLl9mbGFnZ2VkfWxpbmtlZCgpe3JldHVybiB0aGlzLl9pc0NoYXJ0TGlua2VkfWFzeW5jIG9uU2hvd1NldHRpbmdzKGUsdCl7dGhpcy5fc291cmNlLnVzZXJFZGl0RW5hYmxlZCgpJiZhd2FpdCB0aGlzLl9jYWxsYmFja3Muc2hvd0dlbmVyYWxDaGFydFByb3BlcnRpZXMoYXQuVGFiTmFtZXMuc3ltYm9sKX1pc09uZUJ1dHRvbkNhbkJlU3RpY2soKXtyZXR1cm4gdGhpcy5faXNPbmVCdXR0b25DYW5CZVN0aWNrfV91cGRhdGVUaXRsZXMoKXtjb25zdCBlPSgwLG4uZW5zdXJlTm90TnVsbCkodGhpcy5fc291cmNlLnN0YXR1c1ZpZXcoKSkuZ2V0U3BsaXRUaXRsZSgpLHQ9dGhpcy5fZ2V0Q2hhbmdlU3ltYm9sQ2FsbGJhY2soKSxpPXRoaXMuX2dldENoYW5nZVJlc29sdXRpb25DYWxsYmFjaygpLHM9dD97Zm46dCxhY3Rpb25BbGxvd2VkT25Ub3VjaDpFdH06dm9pZCAwLG89W3tmaWVsZDoidGl0bGUiLGlkOjAsdG9vbHRpcDp0P2J0OnZvaWQgMCxhY3Rpb246c30se2ZpZWxkOiJkZXNjcmlwdGlvbiIsaWQ6MSx0b29sdGlwOnQ/YnQ6dm9pZCAwLGFjdGlvbjpzfSx7ZmllbGQ6ImludGVydmFsIixpZDoyLHRvb2x0aXA6aT92dDp2b2lkIDAsYWN0aW9uOmk/e2ZuOmksYWN0aW9uQWxsb3dlZE9uVG91Y2g6ITF9OnZvaWQgMCxoaWRkZW46eXR9LHtmaWVsZDoicHJvdmlkZXIiLGlkOjN9LHtmaWVsZDoibGlzdGVkRXhjaGFuZ2UiLGlkOjR9LHtmaWVsZDoiY2hhcnRTdHlsZSIsaWQ6NX0se2ZpZWxkOiJwcmljZVNvdXJjZSIsaWQ6NixoaWRkZW46dGhpcy5faXNQcmljZVNvdXJjZUhpZGRlbi52YWx1ZSgpfV07dGhpcy5fdGl0bGVzLnNldFZhbHVlKEZlKGUsbykpfV91cGRhdGVWYWx1ZXMoKXtjb25zdCBlPXRoaXMuX3NvdXJjZS5sZWdlbmRWaWV3KCksdD10aGlzLl92YWx1ZXMudmFsdWUoKSxpPWUubWFya2V0VGl0bGUoKSxzPWUubWFya2V0VGl0bGUoKS5sZW5ndGg+MCxvPWUuaXRlbXMoKTtpZigwPT09dC5sZW5ndGh8fHQubGVuZ3RoIT09by5sZW5ndGgrMSl7Y29uc3QgZT17dmFsdWU6bmV3IHIuV2F0Y2hlZFZhbHVlKCIiKSxjb2xvcjpuZXcgci5XYXRjaGVkVmFsdWUoIiIpLHZpc2libGU6bmV3IHIuV2F0Y2hlZFZhbHVlKHMpLHRpdGxlOm5ldyByLldhdGNoZWRWYWx1ZShpKSx1bmltcG9ydGFudDpuZXcgci5XYXRjaGVkVmFsdWUoITEpfSx0PW8ubWFwKChlPT4oe3ZhbHVlOm5ldyByLldhdGNoZWRWYWx1ZShlLnZhbHVlKCkpLGNvbG9yOm5ldyByLldhdGNoZWRWYWx1ZShVKGUuY29sb3IoKSkpLHZpc2libGU6bmV3IHIuV2F0Y2hlZFZhbHVlKGUudmlzaWJsZSgpKSx0aXRsZTpuZXcgci5XYXRjaGVkVmFsdWUoZS50aXRsZSgpKSx1bmltcG9ydGFudDpuZXcgci5XYXRjaGVkVmFsdWUoZS51bmltcG9ydGFudCgpKX0pKSk7dGhpcy5fdmFsdWVzLnNldFZhbHVlKFtlXS5jb25jYXQodCkpfWVsc2V7dFswXS50aXRsZS5zZXRWYWx1ZShpKSx0WzBdLnZpc2libGUuc2V0VmFsdWUocyk7Zm9yKGxldCBlPTA7ZTxvLmxlbmd0aDtlKyspe2NvbnN0IGk9b1tlXTt0W2UrMV0udmFsdWUuc2V0VmFsdWUoaS52YWx1ZSgpKSx0W2UrMV0uY29sb3Iuc2V0VmFsdWUoVShpLmNvbG9yKCkpKSwKdFtlKzFdLnZpc2libGUuc2V0VmFsdWUoaS52aXNpYmxlKCkpLHRbZSsxXS50aXRsZS5zZXRWYWx1ZShpLnRpdGxlKCkpfX19X3VwZGF0ZVN0YXRlcygpe3N1cGVyLl91cGRhdGVTdGF0ZXMoKSx0aGlzLl91cGRhdGVTeW1ib2xNYXJrZXIoKX1fZ2V0RGlzYWJsZWRPbkludGVydmFsU3RhdGUoKXtyZXR1cm4hMX1fZ2V0VGl0bGVIaWRkZW5WYWx1ZSgpe3JldHVybiF0aGlzLl9tb2RlbC5tb2RlbCgpLnByb3BlcnRpZXMoKS5jaGlsZHMoKS5wYW5lUHJvcGVydGllcy5jaGlsZHMoKS5sZWdlbmRQcm9wZXJ0aWVzLmNoaWxkcygpLnNob3dTZXJpZXNUaXRsZS52YWx1ZSgpfV9nZXRWYWx1ZXNIaWRkZW5WYWx1ZSgpe3JldHVybiF0aGlzLl9oYXNWYWx1ZXMoKXx8IXRoaXMuX3ZhbHVlc1Zpc2libGVQcm9wZXJ0eS52YWx1ZSgpLnNwbGl0KCI6Iikuc29tZSgoZT0+InRydWUiPT09ZSkpfV9nZXRDaGFuZ2VTeW1ib2xDYWxsYmFjaygpe2lmKGZ0JiYhKDAsbC5pc0ZlYXR1cmVzZXRFbmFibGVkKSgiZGlzYWJsZV9sZWdlbmRfaW5wbGFjZV9zeW1ib2xfY2hhbmdlIikpcmV0dXJuIHRoaXMuX2NoYW5nZVN5bWJvbENhbGxiYWNrfHw9YXN5bmMgZT0+e2NvbnN0IHQ9dGhpcy5fbW9kZWwubWFpblNlcmllcygpLGk9dC5zeW1ib2woKSxzPXQucHJvcGVydGllcygpLmNoaWxkcygpLnNob3J0TmFtZS52YWx1ZSgpLG89Im9wdGlvbiI9PT10LnN5bWJvbEluZm8oKT8udHlwZSxuPXQuc3ltYm9sSW5mbygpPy5wcm9fbmFtZTtsZXQgYT10LmlzU3ByZWFkKCk/aTpzfHxpfHwiIjtpZigoMCxsLmlzRmVhdHVyZXNldEVuYWJsZWQpKCJzeW1ib2xfc2VhcmNoX29wdGlvbl9jaGFpbl9zZWxlY3RvciIpJiZvJiZuKXtjb25zdCBlPWF3YWl0KDAsS2UucmVzb2x2ZVVuZGVybHlpbmdTeW1ib2wpKG4pO2UmJihhPXt0eXBlOiJvcHRpb24iLHZhbHVlOm4sdW5kZXJseWluZzplfSl9KDAsUmUuc2hvd0RpYWxvZykoe2RlZmF1bHRWYWx1ZTphLGVuYWJsZU9wdGlvbnNDaGFpbjooMCxsLmlzRmVhdHVyZXNldEVuYWJsZWQpKCJzeW1ib2xfc2VhcmNoX29wdGlvbl9jaGFpbl9zZWxlY3RvciIpLG9uQ2xvc2U6ZSxzZWFyY2hUeXBlOiJjaGFydF9zdGF0dXNfbGluZSIsdHJhY2tSZXN1bHRzT3B0aW9uczp7dHJhY2tSZXN1bHRzOiEoMCxsLmlzRmVhdHVyZXNldEVuYWJsZWQpKCJ3aWRnZXQiKSxlbXB0eVNlYXJjaFR5cGU6ImVtcHR5X3Jlc3VsdF9fc3VwZXJjaGFydHMifX0pfX1fZ2V0Q2hhbmdlUmVzb2x1dGlvbkNhbGxiYWNrKCl7aWYoZnQmJiEoMCxsLmlzRmVhdHVyZXNldEVuYWJsZWQpKCJkaXNhYmxlX2xlZ2VuZF9pbnBsYWNlX3Jlc29sdXRpb25fY2hhbmdlIikpcmV0dXJuIHRoaXMuX2NoYW5nZVJlc29sdXRpb25DYWxsYmFja3x8PWU9PnsoMCxOZS5zaG93Q2hhbmdlSW50ZXJ2YWxEaWFsb2dBc3luYykoe2luaXRWYWw6dGhpcy5fbW9kZWwubWFpblNlcmllcygpLmludGVydmFsKCksc2VsZWN0T25Jbml0OiEwLG9uQ2xvc2U6ZX0pfX1fY3JlYXRlQWN0aW9ucygpe2lmKHd0JiZ0aGlzLl9vcHRpb25zLnN5bWJvbE1hcmtlckVuYWJsZWQpe2NvbnN0IGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7ZS5jbGFzc0xpc3QuYWRkKGNlLm1hcmtlckNvbnRhaW5lciksdGhpcy5fc3ltYm9sTWFya2VySWNvbj1lLHRoaXMuX3N5bWJvbEFjdGlvbj17aWNvbjplLGFjdGlvbjp0aGlzLl9zeW1ib2xBY3Rpb25IYW5kbGVyLmJpbmQodGhpcyksdmlzaWJsZTpuZXcgci5XYXRjaGVkVmFsdWUoITApLGNsYXNzTmFtZTpjZS5mbGFnLHRpdGxlOm5ldyByLldhdGNoZWRWYWx1ZSh0aGlzLl9nZXRNYXJrZXJUaXRsZSgpKSxkYXRhUWFJZDoibGVnZW5kLWZsYWctYWN0aW9uIn0sdGhpcy5fYWN0aW9ucy5wdXNoKHRoaXMuX3N5bWJvbEFjdGlvbil9aWYoQ3QmJnRoaXMuX2lzTGF5b3V0Q2hhcnRTeW5jVmlzaWJsZSYmKHRoaXMuX2xheW91dENoYXJ0U3luY0xlZ2VuZFJlbmRlcmVyPW5ldyBRZSh7bGlua2luZ0dyb3VwSW5kZXg6dGhpcy5fbW9kZWwubW9kZWwoKS5saW5raW5nR3JvdXBJbmRleCgpLnJlYWRvbmx5KCksc2V0TGlua2luZ0dyb3VwSW5kZXg6ZT0+dGhpcy5fbW9kZWwuc2V0TGlua2luZ0dyb3VwSW5kZXgoZSksaXNMaW5raW5nQXZhaWxhYmxlOnRoaXMuX2lzTGF5b3V0Q2hhcnRTeW5jVmlzaWJsZSxvbkNsaWNrSGFuZGxlcjooKT0+dGhpcy5zZXRTb3VyY2VTZWxlY3RlZCgpfSksdGhpcy5fYWN0aW9ucy5wdXNoKHRoaXMuX2xheW91dENoYXJ0U3luY0xlZ2VuZFJlbmRlcmVyLmdldEFjdGlvbigpKSksU3Qpe2NvbnN0IGU9KDAsUGUuY29udmVydFByb3BlcnR5VG9XYXRjaGVkVmFsdWUpKCgwLEhlLmNvbWJpbmVQcm9wZXJ0eSkoKGU9PiFlKSx0aGlzLl9zb3VyY2UucHJvcGVydGllcygpLmNoaWxkcygpLnZpc2libGUud2Vha1JlZmVyZW5jZSgpKSksdD17aWNvbjpuZXcgTWFwKFtbImxhcmdlIixjdF0sWyJzbWFsbCIsdXRdXSksYWN0aW9uOigwLEkud3JhcEhhbmRsZXJXaXRoUHJldmVudEV2ZW50KSh0aGlzLm9uVG9nZ2xlRGlzYWJsZWQuYmluZCh0aGlzKSksdmlzaWJsZTplLGNsYXNzTmFtZTpjZS5leWUsdGl0bGU6bmV3IHIuV2F0Y2hlZFZhbHVlKHRoaXMuX2dldEV5ZVRpdGxlKCkpLGRhdGFRYUlkOiJsZWdlbmQtc2hvdy1oaWRlLWFjdGlvbiJ9O3RoaXMuX2FjdGlvbnMucHVzaCh0KSx0aGlzLl9kaXNhYmxlZC5zdWJzY3JpYmUoKCgpPT57dC50aXRsZT8uc2V0VmFsdWUodGhpcy5fZ2V0RXllVGl0bGUoKSl9KSl9e2NvbnN0IGU9bmV3IHIuV2F0Y2hlZFZhbHVlKCExKTt0aGlzLl9hY3Rpb25zLnB1c2goe2ljb246bmV3IE1hcChbWyJsYXJnZSIscHRdLFsic21hbGwiLGh0XV0pLGFjdGlvbjp0PT57ZS5zZXRWYWx1ZSghMCksdGhpcy5fbW9yZUFjdGlvbkhhbmRsZXIodCwoKCk9PmUuc2V0VmFsdWUoITEpKSl9LHZpc2libGU6bmV3IHIuV2F0Y2hlZFZhbHVlKCEwKSxhY3RpdmU6ZS5yZWFkb25seSgpLHRpdGxlOm5ldyByLldhdGNoZWRWYWx1ZShfdCksZGF0YVFhSWQ6ImxlZ2VuZC1tb3JlLWFjdGlvbiJ9KX19X2dldE1hcmtlclRpdGxlKCl7CnJldHVybiBudWxsIT09dGhpcy5fc3ltYm9sTWFya2VyP3RoaXMuX3N5bWJvbE1hcmtlci5pc01hcmtlZCgpP210Omd0OiIifV9zeW1ib2xBY3Rpb25IYW5kbGVyKGUpeygwLEkucHJldmVudERlZmF1bHQpKGUpLG51bGwhPT10aGlzLl9zeW1ib2xNYXJrZXImJih0aGlzLl91cGRhdGVTeW1ib2xNYXJrZXIoKSxlIGluc3RhbmNlb2YgS2V5Ym9hcmRFdmVudCYmdGhpcy5fc3ltYm9sTWFya2VyLnRvZ2dsZShlKSxPKCJDaGFuZ2UgZmxhZyBzdGF0ZSIpKX1fdXBkYXRlU3ltYm9sTWFya2VyKCl7aWYod3QmJnRoaXMuX29wdGlvbnMuc3ltYm9sTWFya2VyRW5hYmxlZCl7Y29uc3QgZT0oMCxuLmVuc3VyZU5vdE51bGwpKHRoaXMuX3N5bWJvbEFjdGlvbiksdD0oMCxuLmVuc3VyZU5vdE51bGwpKHRoaXMuX3N5bWJvbE1hcmtlckljb24pLGk9dGhpcy5fbW9kZWwubW9kZWwoKS5tYWluU2VyaWVzKCkuc3ltYm9sSW5mbygpPy5wcm9fbmFtZT8/dGhpcy5fbW9kZWwubW9kZWwoKS5tYWluU2VyaWVzKCkuc3ltYm9sKCk7dGhpcy5fc3ltYm9sTWFya2VyP3RoaXMuX3N5bWJvbEZvck1hcmtlciE9PWkmJih0aGlzLl9zeW1ib2xNYXJrZXIuYmluZFRvKGksdCksdGhpcy5fc3ltYm9sRm9yTWFya2VyPWkpOih0aGlzLl9zeW1ib2xNYXJrZXI9KDAsamUuY3JlYXRlU3ltYm9sTWFya2VyU3RhbmRhbG9uZSkoe3N5bWJvbDppLGNvbnRhaW5lcjp0LHNwZWNpYWxJbWFnZTpYZSxjbGFzc05hbWU6Y2UuZmxhZ1dyYXBwZXIsb25NYXJrZWRDaGFuZ2VkOigpPT50aGlzLl91cGRhdGVTeW1ib2xNYXJrZXIoKX0pLHRoaXMuX3N5bWJvbEZvck1hcmtlcj1pKSx0aGlzLl9mbGFnZ2VkLnNldFZhbHVlKHRoaXMuX3N5bWJvbE1hcmtlci5pc01hcmtlZCgpKTsoMCxuLmVuc3VyZURlZmluZWQpKGUudGl0bGUpLnNldFZhbHVlKHRoaXMuX2dldE1hcmtlclRpdGxlKCkpfWVsc2UgdGhpcy5faXNPbmVCdXR0b25DYW5CZVN0aWNrPSEwfX12YXIgTHQ9aSg5NTY0MzcpLE10PWkoMjkxMTI5KSxUdD1pKDk0NzE2KSxWdD1pKDQ2MDU0NCksa3Q9aSg1NDA1ODgpO3ZhciBBdD1pKDYxNDM4MCksV3Q9aSgyMzczNjkpLEl0PWkoNTc3OTk2KSxCdD1pKDIzNDk2NCksSHQ9aSg3NDI0MTUpLER0PWkoNjk4NTkwKSxQdD1pKDE0NTA5MCksTnQ9aSg4NTI2NzMpLFJ0PWkoNTYzODg2KSxPdD1pKDcyMDUyNSk7Y29uc3QgRnQ9KDAsbHQuZ2V0TG9nZ2VyKSgiQ2hhcnQuTGVnZW5kV2lkZ2V0IiksenQ9UC50KG51bGwsdm9pZCAwLGkoNzMwNTg2KSksanQ9UC50KG51bGwsdm9pZCAwLGkoNzkzNDAyKSksVXQ9UC50KG51bGwsdm9pZCAwLGkoOTExMjYpKSxHdD1QLnQobnVsbCx2b2lkIDAsaSgzOTQ5NDcpKSxadD1QLnQobnVsbCx2b2lkIDAsaSgyODgyNDQpKSxKdD1QLnQobnVsbCx2b2lkIDAsaSgyNjY1KSksWXQ9KDAsbC5pc0ZlYXR1cmVzZXRFbmFibGVkKSgic3R1ZHlfYnV0dG9uc19pbl9sZWdlbmQiKSxxdD0oMCxsLmlzRmVhdHVyZXNldEVuYWJsZWQpKCJzaG93X2hpZGVfYnV0dG9uX2luX2xlZ2VuZCIpLCR0PSgwLGwuaXNGZWF0dXJlc2V0RW5hYmxlZCkoInByb3BlcnR5X3BhZ2VzIiksUXQ9KDAsbC5pc0ZlYXR1cmVzZXRFbmFibGVkKSgiZm9ybWF0X2J1dHRvbl9pbl9sZWdlbmQiKSxLdD0oMCxsLmlzRmVhdHVyZXNldEVuYWJsZWQpKCJkZWxldGVfYnV0dG9uX2luX2xlZ2VuZCIpLFh0PSgwLGwuaXNGZWF0dXJlc2V0RW5hYmxlZCkoImxlZ2VuZF9pbnBsYWNlX2VkaXQiKSxlaT0hKDAsemUuaXNPbk1vYmlsZUFwcFBhZ2UpKCJhbnkiKXx8KDAsbC5pc0ZlYXR1cmVzZXRFbmFibGVkKSgic2hvd19uYXRpdmVfc3ltYm9sX3NlYXJjaF9vbl90YXBfaW5fbGVnZW5kIik7Y2xhc3MgdGkgZXh0ZW5kcyAke2NvbnN0cnVjdG9yKGUsdCxpLHMsbyl7c3VwZXIoZSx0LGkscyxvKSx0aGlzLl9lcnJvcj1uZXcgci5XYXRjaGVkVmFsdWUoITEpLHRoaXMuX2lzQWJsZVNob3dTb3VyY2VDb2RlPW5ldyByLldhdGNoZWRWYWx1ZSghMSksdGhpcy5faXNBYmxlU2hvd1NvdXJjZUNvZGVJbm5lcj1uZXcgci5XYXRjaGVkVmFsdWUoITEpLnNwYXduKCksdGhpcy5fcGluZUFjdGlvbj1udWxsLHRoaXMuX3BpbmVBY3Rpb25WaXNpYmxlPW51bGwsdGhpcy5fZ2xvYmFsVmlzaWJpbGl0eT1uZXcgci5XYXRjaGVkVmFsdWUoITApLHRoaXMuX3VwZGF0ZVN5bWJvbExvZ29Nb2RlbCgpLHRoaXMuX2NyZWF0ZUFjdGlvbnMoKTtjb25zdCBuPXRoaXMuX21vZGVsLm1vZGVsKCkucHJvcGVydGllcygpLmNoaWxkcygpLnBhbmVQcm9wZXJ0aWVzLmNoaWxkcygpLmxlZ2VuZFByb3BlcnRpZXMuY2hpbGRzKCksYT1bbi5zaG93U2VyaWVzVGl0bGUsbi5zaG93U3R1ZHlUaXRsZXNdO2Zvcihjb25zdCBlIG9mIGEpZS5zdWJzY3JpYmUodGhpcywoKCk9Pnt0aGlzLl9pc1RpdGxlSGlkZGVuLnNldFZhbHVlKHRoaXMuX2dldFRpdGxlSGlkZGVuVmFsdWUoKSl9KSk7Y29uc3QgbD1bbi5zaG93U2VyaWVzT0hMQyxuLnNob3dCYXJDaGFuZ2Usbi5zaG93U3R1ZHlWYWx1ZXMsbi5zaG93TGFzdERheUNoYW5nZSxuLnNob3dTZXJpZXNMZWdlbmRDbG9zZU9uTW9iaWxlXTtmb3IoY29uc3QgZSBvZiBsKWUuc3Vic2NyaWJlKHRoaXMsKCgpPT57dGhpcy5faXNWYWx1ZXNIaWRkZW4uc2V0VmFsdWUodGhpcy5fZ2V0VmFsdWVzSGlkZGVuVmFsdWUoKSl9KSk7dGhpcy51cGRhdGUoKSx5ZS5zdWJzY3JpYmUoSXQuVFZfU0NSSVBUX0RFTEVURUQsdGhpcy51cGRhdGUsdGhpcyksdGhpcy5fdXBkYXRlQWJsZVNob3dTb3VyY2VDb2RlKCl9ZGVzdHJveSgpe3N1cGVyLmRlc3Ryb3koKTtjb25zdCBlPXRoaXMuX21vZGVsLm1vZGVsKCkucHJvcGVydGllcygpLmNoaWxkcygpLnBhbmVQcm9wZXJ0aWVzLmNoaWxkcygpLmxlZ2VuZFByb3BlcnRpZXMuY2hpbGRzKCk7ZS5zaG93U2VyaWVzVGl0bGUudW5zdWJzY3JpYmVBbGwodGhpcyksZS5zaG93U3R1ZHlUaXRsZXMudW5zdWJzY3JpYmVBbGwodGhpcyksZS5zaG93U2VyaWVzT0hMQy51bnN1YnNjcmliZUFsbCh0aGlzKSxlLnNob3dCYXJDaGFuZ2UudW5zdWJzY3JpYmVBbGwodGhpcyksZS5zaG93U3R1ZHlWYWx1ZXMudW5zdWJzY3JpYmVBbGwodGhpcyksCmUuc2hvd0xhc3REYXlDaGFuZ2UudW5zdWJzY3JpYmVBbGwodGhpcyksZS5zaG93U2VyaWVzTGVnZW5kQ2xvc2VPbk1vYmlsZS51bnN1YnNjcmliZUFsbCh0aGlzKSx0aGlzLl9pc0FibGVTaG93U291cmNlQ29kZUlubmVyLmRlc3Ryb3koKSx5ZS51bnN1YnNjcmliZShJdC5UVl9TQ1JJUFRfREVMRVRFRCx0aGlzLnVwZGF0ZSx0aGlzKX1lcnJvcigpe3JldHVybiB0aGlzLl9lcnJvci5yZWFkb25seSgpfWlzQWJsZVNob3dTb3VyY2VDb2RlKCl7cmV0dXJuIHRoaXMuX2lzQWJsZVNob3dTb3VyY2VDb2RlfW9uUmVtb3ZlU291cmNlKCl7aWYodGhpcy5fc291cmNlLmlzVXNlckRlbGV0YWJsZSgpKXtpZigoMCxMdC5pc1N0dWR5KSh0aGlzLl9zb3VyY2UpJiZ0aGlzLl9zb3VyY2UuaGFzQ2hpbGRyZW4oKSl7Y29uc3QgZT10aGlzLl9zb3VyY2UuZ2V0QWxsQ2hpbGRyZW4oKS5tYXAoKGU9PmUubmFtZSghMCkpKTsoMCxNdC5zaG93RGVsZXRlU3R1ZHlUcmVlQ29uZmlybSkoZSx0aGlzLl9tb2RlbC5yZW1vdmVTb3VyY2UuYmluZCh0aGlzLl9tb2RlbCx0aGlzLl9zb3VyY2UsITEpKX1lbHNlIHRoaXMuX21vZGVsLnJlbW92ZVNvdXJjZSh0aGlzLl9zb3VyY2UsITEpO08oIlJlbW92ZSBzb3VyY2VzIil9fWFzeW5jIG9uU2hvd1NvdXJjZUNvZGUoKXt7Y29uc3QgZT10aGlzLl9zb3VyY2UucGluZVNvdXJjZUNvZGVNb2RlbD8uKCk/P1Byb21pc2UucmVzb2x2ZShudWxsKTtpZihlKXRyeXtjb25zdCB0PWF3YWl0IGU7aWYodGhpcy5fZGVzdHJveWVkKXJldHVybjt0Py5pc0FibGVTaG93U291cmNlQ29kZSgpLnZhbHVlKCkmJih0LnNob3dQaW5lU291cmNlQ29kZSgpLE8oIk9wZW4gc291cmNlIGNvZGUgZm9yIHBpbmUgc2NyaXB0cyIpKX1jYXRjaChlKXtGdC5sb2dFcnJvcihgJHtlfWApLCgwLEJ0LnNob3dXYXJuaW5nKSh7dGl0bGU6UC50KG51bGwsdm9pZCAwLGkoNDg3MjAwKSksdGV4dDpQLnQobnVsbCx2b2lkIDAsaSg2NDUyNjMpKSxidXR0b25UZXh0OlAudChudWxsLHZvaWQgMCxpKDExMTg5OCkpfSl9fX1zZXRHbG9iYWxWaXNpYmlsaXR5KGUpe3RoaXMuX2dsb2JhbFZpc2liaWxpdHkuc2V0VmFsdWUoZSl9Z2xvYmFsVmlzaWJpbGl0eSgpe3JldHVybiB0aGlzLl9nbG9iYWxWaXNpYmlsaXR5LnJlYWRvbmx5KCl9Z2V0RnVsbFRpdGxlKCl7cmV0dXJuIHRoaXMuX3RpdGxlcy52YWx1ZSgpLm1hcCgoZT0+aihlKT9lLml0ZW1zLm1hcCgoZT0+ZS50aXRsZSkpLmpvaW4oIiAiKTplLnRpdGxlKSkuam9pbigiICIpfWdldFNvdXJjZSgpe3JldHVybiB0aGlzLl9zb3VyY2V9X3VwZGF0ZVRpdGxlcygpe2NvbnN0IGU9KDAsbi5lbnN1cmVOb3ROdWxsKSh0aGlzLl9zb3VyY2Uuc3RhdHVzVmlldygpKSx0PWUuZ2V0U3BsaXRUaXRsZSgpLGk9W10scz10aGlzLl9nZXRDaGFuZ2VTeW1ib2xDYWxsYmFjaygpO2lmKEFycmF5LmlzQXJyYXkodCkpe2NvbnN0IHM9KDAsT2UuY2xlYW4pKHRbMF0sITApOyIiIT09cyYmaS5wdXNoKHt0aXRsZTpzLGlkOjcsdG9vbHRpcDplLnRpdGxlVG9vbHRpcCgpfSl9ZWxzZSBpLnB1c2goLi4uZnVuY3Rpb24oZSx0KXtjb25zdHtjaGFuZ2VTeW1ib2xDYWxsYmFjazppLGNoYW5nZVN5bWJvbFRvb2x0aXA6cyx0aXRsZVRvb2x0aXA6byxpc05hdGl2ZVN5bWJvbFNlYXJjaE9uTW9iaWxlRW5hYmxlZDpufT10O3JldHVybiBGZShlLFt7ZmllbGQ6InRpdGxlIixpZDppPzg6Nyx0b29sdGlwOmk/czpvLGFjdGlvbjppP3tmbjppLGFjdGlvbkFsbG93ZWRPblRvdWNoOm59OnZvaWQgMH0se2ZpZWxkOiJsaXN0ZWRFeGNoYW5nZSIsaWQ6OX0se2ZpZWxkOiJwcmljZVNvdXJjZSIsaWQ6OX1dKX0odCx7Y2hhbmdlU3ltYm9sQ2FsbGJhY2s6cyxjaGFuZ2VTeW1ib2xUb29sdGlwOkp0LHRpdGxlVG9vbHRpcDplLnRpdGxlVG9vbHRpcCgpLGlzTmF0aXZlU3ltYm9sU2VhcmNoT25Nb2JpbGVFbmFibGVkOmVpfSkpO2NvbnN0IG89W107KGUuZ2V0SW5wdXRzVGl0bGVzKCk/P1tdKS5mb3JFYWNoKChlPT57Y29uc3QgdD0oMCxPZS5jbGVhbikoZS52YWx1ZSwhMCk7IiIhPT10JiZvLnB1c2goe3RpdGxlOnQsdG9vbHRpcDplLnRpdGxlLGlkOjEwfSl9KSksMCE9PW8ubGVuZ3RoJiZpLnB1c2goe2lkOjEwLGl0ZW1zOm99KSx0aGlzLl90aXRsZXMuc2V0VmFsdWUoaSl9X3VwZGF0ZVZhbHVlcygpe2NvbnN0IGU9dGhpcy5fc291cmNlLmxlZ2VuZFZpZXcoKTtpZihudWxsPT09ZSlyZXR1cm47aWYoMD09PWUuaXRlbXMoKS5sZW5ndGgpcmV0dXJuO2NvbnN0IHQ9dGhpcy5fdmFsdWVzLnZhbHVlKCk7aWYoMD09PXQubGVuZ3RoKXtjb25zdCB0PWUuaXRlbXMoKS5tYXAoKGU9Pih7dmFsdWU6bmV3IHIuV2F0Y2hlZFZhbHVlKGUudmFsdWUoKSksY29sb3I6bmV3IHIuV2F0Y2hlZFZhbHVlKFUoZS5jb2xvcigpKSksdmlzaWJsZTpuZXcgci5XYXRjaGVkVmFsdWUoZS52aXNpYmxlKCkpLHVuaW1wb3J0YW50Om5ldyByLldhdGNoZWRWYWx1ZShlLnVuaW1wb3J0YW50KCkpLHRpdGxlOm5ldyByLldhdGNoZWRWYWx1ZShlLnRpdGxlKCkpfSkpKTt0aGlzLl92YWx1ZXMuc2V0VmFsdWUodCl9ZWxzZXtjb25zdCBpPWUuaXRlbXMoKTtmb3IobGV0IGU9MDtlPGkubGVuZ3RoO2UrKyl7Y29uc3Qgcz10W2VdLG89aVtlXTtzLnZhbHVlLnNldFZhbHVlKG8udmFsdWUoKSkscy5jb2xvci5zZXRWYWx1ZShVKG8uY29sb3IoKSkpLHMudmlzaWJsZS5zZXRWYWx1ZShvLnZpc2libGUoKSkscy50aXRsZS5zZXRWYWx1ZShvLnRpdGxlKCkpfX19X3VwZGF0ZVN0YXRlcygpe3N1cGVyLl91cGRhdGVTdGF0ZXMoKSx2b2lkIDAhPT10aGlzLl9lcnJvciYmdGhpcy5fZXJyb3Iuc2V0VmFsdWUoQm9vbGVhbih0aGlzLl9zb3VyY2UuaXNGYWlsZWQoKSkpfV9nZXRUaXRsZUhpZGRlblZhbHVlKCl7Y29uc3QgZT10aGlzLl9tb2RlbC5tb2RlbCgpLnByb3BlcnRpZXMoKS5jaGlsZHMoKS5wYW5lUHJvcGVydGllcy5jaGlsZHMoKS5sZWdlbmRQcm9wZXJ0aWVzLmNoaWxkcygpO3JldHVybiB0aGlzLl9pc1N5bWJvbExpa2VTdHVkeSgpPyFlLnNob3dTZXJpZXNUaXRsZS52YWx1ZSgpOiFlLnNob3dTdHVkeVRpdGxlcy52YWx1ZSgpfQpfZ2V0RGlzYWJsZWRPbkludGVydmFsU3RhdGUoKXtyZXR1cm4hKCEoMCxMdC5pc1N0dWR5KSh0aGlzLl9zb3VyY2UpJiYhKDAsTHQuaXNTdHVkeVN0dWIpKHRoaXMuX3NvdXJjZSkpJiYhdGhpcy5fc291cmNlLmlzQWN0dWFsSW50ZXJ2YWwoKX1fZ2V0VmFsdWVzSGlkZGVuVmFsdWUoKXtpZighdGhpcy5faGFzVmFsdWVzKCkpcmV0dXJuITA7Y29uc3QgZT10aGlzLl9tb2RlbC5tb2RlbCgpLnByb3BlcnRpZXMoKS5jaGlsZHMoKS5wYW5lUHJvcGVydGllcy5jaGlsZHMoKS5sZWdlbmRQcm9wZXJ0aWVzLmNoaWxkcygpO3JldHVybiB0aGlzLl9pc1N5bWJvbExpa2VTdHVkeSgpPyFlLnNob3dTZXJpZXNPSExDLnZhbHVlKCkmJiFlLnNob3dCYXJDaGFuZ2UudmFsdWUoKSYmIWUuc2hvd0xhc3REYXlDaGFuZ2UudmFsdWUoKTohZS5zaG93U3R1ZHlWYWx1ZXMudmFsdWUoKX1faXNTeW1ib2xMaWtlU3R1ZHkoKXtyZXR1cm4oMCxMdC5pc0NvbXBhcmVPck92ZXJsYXlTdHVkeSkodGhpcy5fc291cmNlKX1fZ2V0Q2hhbmdlU3ltYm9sQ2FsbGJhY2soKXtjb25zdCBlPXRoaXMuX3NvdXJjZTtpZihYdCYmKDAsa3QuaXNTeW1ib2xTb3VyY2VXaXRoUXVvdGVzUHJvdmlkZXIpKGUpKXJldHVybiB0aGlzLl9jaGFuZ2VTeW1ib2xDYWxsYmFja3x8PWFzeW5jIHQ9Pntjb25zdCBpPWUuc3ltYm9sKCkscz1lLnN5bWJvbEluZm8oKSxvPSgwLHJlLnNhZmVTaG9ydE5hbWUpKGkpLG49InNwcmVhZCI9PT1zPy50eXBlLGE9Im9wdGlvbiI9PT1zPy50eXBlLHI9cz8ucHJvX25hbWU7bGV0IGQ9bj9pOm98fGl8fCIiO2lmKCgwLGwuaXNGZWF0dXJlc2V0RW5hYmxlZCkoInN5bWJvbF9zZWFyY2hfb3B0aW9uX2NoYWluX3NlbGVjdG9yIikmJmEmJnIpe2NvbnN0IGU9YXdhaXQoMCxLZS5yZXNvbHZlVW5kZXJseWluZ1N5bWJvbCkocik7ZSYmKGQ9e3R5cGU6Im9wdGlvbiIsdmFsdWU6cix1bmRlcmx5aW5nOmV9KX10cnl7YXdhaXQobmV3IEF0LlN5bWJvbFNlYXJjaFVJKS5zaG93KHtzZXRTeW1ib2w6dD0+e3RoaXMuX21vZGVsLnNldFN5bWJvbChlLHQuc3ltYm9sKX0sZGlhbG9nVGl0bGU6SnQsZGVmYXVsdFZhbHVlOmQsZW5hYmxlT3B0aW9uc0NoYWluOigwLGwuaXNGZWF0dXJlc2V0RW5hYmxlZCkoInN5bWJvbF9zZWFyY2hfb3B0aW9uX2NoYWluX3NlbGVjdG9yIiksc2hvd1NwcmVhZEFjdGlvbnM6KDAsbC5pc0ZlYXR1cmVzZXRFbmFibGVkKSgic2hvd19zcHJlYWRfb3BlcmF0b3JzIikmJigwLGwuaXNGZWF0dXJlc2V0RW5hYmxlZCkoInN0dWRpZXNfc3ltYm9sX3NlYXJjaF9zcHJlYWRfb3BlcmF0b3JzIiksb25DbG9zZTp0LHNlYXJjaFR5cGU6ImNoYXJ0X3N0YXR1c19saW5lIix0cmFja1Jlc3VsdHNPcHRpb25zOnt0cmFja1Jlc3VsdHM6ISgwLGwuaXNGZWF0dXJlc2V0RW5hYmxlZCkoIndpZGdldCIpLGVtcHR5U2VhcmNoVHlwZToiZW1wdHlfcmVzdWx0X19zdXBlcmNoYXJ0cyJ9fSl9Y2F0Y2goZSl7RnQubG9nRXJyb3IoYEFub3RoZXIgU3ltYm9sU2VhcmNoVUkgaXMgYWxyZWFkeSBvcGVuZWQgb3IgQ3VzdG9tVUkgcmVqZWN0ZWQgc3ltYm9sIHNlbGVjdGlvbiAkeygwLFd0LmdldEVycm9yTWVzc2FnZSkoZSl9YCl9fX1hc3luYyBfdXBkYXRlQWJsZVNob3dTb3VyY2VDb2RlKCl7aWYoWXQmJnRoaXMuX29wdGlvbnMuY2FuU2hvd1NvdXJjZUNvZGUmJiF0aGlzLl9vcHRpb25zLnJlYWRPbmx5TW9kZSl7Y29uc3QgZT10aGlzLl9zb3VyY2UucGluZVNvdXJjZUNvZGVNb2RlbD8uKCk/P1Byb21pc2UucmVzb2x2ZShudWxsKTtpZihlKXtjb25zdCB0PWF3YWl0IGU7aWYodGhpcy5fZGVzdHJveWVkKXJldHVybjt0aGlzLl9pc0FibGVTaG93U291cmNlQ29kZUlubmVyLmRlc3Ryb3koKSx0aGlzLl9pc0FibGVTaG93U291cmNlQ29kZUlubmVyPXQ/LmlzQWJsZVNob3dTb3VyY2VDb2RlKCkuc3Bhd24oKT8/bmV3IHIuV2F0Y2hlZFZhbHVlKCExKS5zcGF3bigpLHRoaXMuX2lzQWJsZVNob3dTb3VyY2VDb2RlSW5uZXIuc3Vic2NyaWJlKChlPT57dGhpcy5fdXBkYXRlVmlzaWJpbGl0eVBpbmVBY3Rpb24oZSl9KSx7Y2FsbFdpdGhMYXN0OiEwfSl9fX1fdXBkYXRlVmlzaWJpbGl0eVBpbmVBY3Rpb24oZSl7bnVsbCE9PXRoaXMuX3BpbmVBY3Rpb25WaXNpYmxlJiYodGhpcy5fcGluZUFjdGlvblZpc2libGUuc2V0VmFsdWUoZSksdGhpcy5faXNBYmxlU2hvd1NvdXJjZUNvZGUuc2V0VmFsdWUoZSkpfV9jcmVhdGVBY3Rpb25zKCl7aWYoIXRoaXMuX29wdGlvbnMucmVhZE9ubHlNb2RlKXtpZih0aGlzLl9waW5lQWN0aW9uVmlzaWJsZT1uZXcgci5XYXRjaGVkVmFsdWUoITEpLHRoaXMuX3BpbmVBY3Rpb249e2ljb246bmV3IE1hcChbWyJsYXJnZSIsTnRdLFsic21hbGwiLFB0XV0pLGFjdGlvbjooMCxJLndyYXBIYW5kbGVyV2l0aFByZXZlbnRFdmVudCkodGhpcy5vblNob3dTb3VyY2VDb2RlLmJpbmQodGhpcykpLGRpc2FibGVBY2Nlc3NpYmlsaXR5OiEwLHZpc2libGU6dGhpcy5fcGluZUFjdGlvblZpc2libGUucmVhZG9ubHkoKSx0aXRsZTpuZXcgci5XYXRjaGVkVmFsdWUoanQpLGRhdGFRYUlkOiJsZWdlbmQtcGluZS1hY3Rpb24ifSxxdCl7Y29uc3QgZT1uZXcgci5XYXRjaGVkVmFsdWUoIXRoaXMuX2dldERpc2FibGVkT25JbnRlcnZhbFN0YXRlKCkpLHQ9e2ljb246bmV3IE1hcChbWyJsYXJnZSIsY3RdLFsic21hbGwiLHV0XV0pLGFjdGlvbjooMCxJLndyYXBIYW5kbGVyV2l0aFByZXZlbnRFdmVudCkodGhpcy5vblRvZ2dsZURpc2FibGVkLmJpbmQodGhpcykpLHZpc2libGU6ZS5yZWFkb25seSgpLGNsYXNzTmFtZTpjZS5leWUsdGl0bGU6bmV3IHIuV2F0Y2hlZFZhbHVlKHRoaXMuX2dldEV5ZVRpdGxlKCkpLGRhdGFRYUlkOiJsZWdlbmQtc2hvdy1oaWRlLWFjdGlvbiJ9O3RoaXMuX2FjdGlvbnMucHVzaCh0KSx0aGlzLl9kaXNhYmxlZC5zdWJzY3JpYmUoKCgpPT57dC50aXRsZT8uc2V0VmFsdWUodGhpcy5fZ2V0RXllVGl0bGUoKSl9KSk7e2NvbnN0IHQ9bmV3IHIuV2F0Y2hlZFZhbHVlKCExKSxpPW5ldyByLldhdGNoZWRWYWx1ZSh0aGlzLl9nZXREaXNhYmxlZE9uSW50ZXJ2YWxTdGF0ZSgpKSxzPXsKaWNvbjpuZXcgTWFwKFtbImxhcmdlIixjdF0sWyJzbWFsbCIsdXRdXSksYWN0aW9uOigwLEkud3JhcEhhbmRsZXJXaXRoUHJldmVudEV2ZW50KSgoKCk9Pnt0LnNldFZhbHVlKCEwKSx0aGlzLm9uU2hvd1NldHRpbmdzKGF0LlRhYk5hbWVzLnZpc2liaWxpdHksKCgpPT50LnNldFZhbHVlKCExKSkpfSkpLGFjdGl2ZTp0LnJlYWRvbmx5KCksdmlzaWJsZTppLnJlYWRvbmx5KCksY2xhc3NOYW1lOmNlLmludGVydmFsRXllLHRpdGxlOm5ldyByLldhdGNoZWRWYWx1ZShadCksZGF0YVFhSWQ6ImxlZ2VuZC1pbnRlcnZhbC1zaG93LWhpZGUtYWN0aW9uIn07dGhpcy5fYWN0aW9ucy5wdXNoKHMpLHRoaXMuX2Rpc2FibGVkT25JbnRlcnZhbC5zdWJzY3JpYmUoKHQ9PntpLnNldFZhbHVlKHQpLGUuc2V0VmFsdWUoIXQpfSkpfX1pZigkdCYmUXQmJighKDAsTHQuaXNTdHVkeSkodGhpcy5fc291cmNlKXx8bmV3IFR0Lk1ldGFJbmZvSGVscGVyKHRoaXMuX3NvdXJjZS5tZXRhSW5mbygpKS5oYXNVc2VyRWRpdGFibGVPcHRpb25zKFZ0LmlzQ3VzdG9tU3R1ZHkpKSl7Y29uc3QgZT1uZXcgci5XYXRjaGVkVmFsdWUodGhpcy5fZ2V0SXNFZGl0YWJsZSgpKSx0PW5ldyByLldhdGNoZWRWYWx1ZSghMSksaT17aWNvbjpuZXcgTWFwKFtbImxhcmdlIixEdF0sWyJzbWFsbCIsSHRdXSksYWN0aW9uOigwLEkud3JhcEhhbmRsZXJXaXRoUHJldmVudEV2ZW50KSgoKCk9Pnt0LnNldFZhbHVlKCEwKSx0aGlzLm9uU2hvd1NldHRpbmdzKHZvaWQgMCwoKCk9PnQuc2V0VmFsdWUoITEpKSl9KSksdmlzaWJsZTplLnJlYWRvbmx5KCksYWN0aXZlOnQucmVhZG9ubHkoKSx0aXRsZTpuZXcgci5XYXRjaGVkVmFsdWUoenQpLGRhdGFRYUlkOiJsZWdlbmQtc2V0dGluZ3MtYWN0aW9uIn07dGhpcy5fYWN0aW9ucy5wdXNoKGkpLHRoaXMuX2lzRWRpdGFibGUuc3Vic2NyaWJlKCh0PT57ZS5zZXRWYWx1ZSh0KX0pKX1pZigoKDAsTHQuaXNTdHVkeSkodGhpcy5fc291cmNlKXx8KDAsTHQuaXNTdHVkeVN0dWIpKHRoaXMuX3NvdXJjZSkpJiZZdCYmdGhpcy5fb3B0aW9ucy5jYW5TaG93U291cmNlQ29kZSYmdGhpcy5fYWN0aW9ucy5wdXNoKHRoaXMuX3BpbmVBY3Rpb24pLEt0KXtjb25zdCBlPW5ldyByLldhdGNoZWRWYWx1ZSh0aGlzLl9nZXRJc0VkaXRhYmxlKCkpLHQ9e2ljb246bmV3IE1hcChbWyJsYXJnZSIsT3RdLFsic21hbGwiLFJ0XV0pLGFjdGlvbjooMCxJLndyYXBIYW5kbGVyV2l0aFByZXZlbnRFdmVudCkodGhpcy5vblJlbW92ZVNvdXJjZS5iaW5kKHRoaXMpKSx2aXNpYmxlOmUucmVhZG9ubHkoKSx0aXRsZTpuZXcgci5XYXRjaGVkVmFsdWUoVXQpLGRhdGFRYUlkOiJsZWdlbmQtZGVsZXRlLWFjdGlvbiJ9O3RoaXMuX2FjdGlvbnMucHVzaCh0KSx0aGlzLl9pc0VkaXRhYmxlLnN1YnNjcmliZSgodD0+e2Uuc2V0VmFsdWUodCl9KSl9e2NvbnN0IGU9bmV3IHIuV2F0Y2hlZFZhbHVlKCExKTt0aGlzLl9hY3Rpb25zLnB1c2goe2ljb246bmV3IE1hcChbWyJsYXJnZSIscHRdLFsic21hbGwiLGh0XV0pLGFjdGlvbjp0PT57ZS5zZXRWYWx1ZSghMCksdGhpcy5fbW9yZUFjdGlvbkhhbmRsZXIodCwoKCk9PmUuc2V0VmFsdWUoITEpKSl9LHZpc2libGU6dGhpcy5faXNFZGl0YWJsZS5zcGF3bigpLGFjdGl2ZTplLnJlYWRvbmx5KCksdGl0bGU6bmV3IHIuV2F0Y2hlZFZhbHVlKEd0KSxkYXRhUWFJZDoibGVnZW5kLW1vcmUtYWN0aW9uIn0pfX19X3VwZGF0ZVN5bWJvbExvZ29Nb2RlbCgpe2lmKHRoaXMuX3N5bWJvbExvZ29WaWV3TW9kZWwudmFsdWUoKT8uZGVzdHJveSgpLCgwLGt0LmlzU3ltYm9sU291cmNlV2l0aFF1b3Rlc1Byb3ZpZGVyKSh0aGlzLl9zb3VyY2UpKXtjb25zdCBlPXRoaXMuX21vZGVsLm1vZGVsKCkucHJvcGVydGllcygpLmNoaWxkcygpLnBhbmVQcm9wZXJ0aWVzLmNoaWxkcygpLmxlZ2VuZFByb3BlcnRpZXMuY2hpbGRzKCksdD1udChuZXcgZHQodGhpcy5fc291cmNlKSxlKTt0aGlzLl9zeW1ib2xMb2dvVmlld01vZGVsLnNldFZhbHVlKHQpfWVsc2UgdGhpcy5fc3ltYm9sTG9nb1ZpZXdNb2RlbC5zZXRWYWx1ZShudWxsKX19dmFyIGlpPWkoMTI4OTk4KSxzaT1pKDIxNDc3MSksb2k9aSg3NjI4NTEpLG5pPWkoMTY4NzcxKSxhaT1pKDQ3NzE1NSk7ZnVuY3Rpb24gbGkoZSx0LGkpe2Uuc2V0UHJvcGVydHkodCwhdC52YWx1ZSgpLGkpfWNvbnN0IHJpPW5ldyBOLlRyYW5zbGF0ZWRTdHJpbmcoImNoYW5nZSBzeW1ib2wgZGVzY3JpcHRpb24gdmlzaWJpbGl0eSIsUC50KG51bGwsdm9pZCAwLGkoNTU1NjY2KSkpLGRpPW5ldyBOLlRyYW5zbGF0ZWRTdHJpbmcoImNoYW5nZSBvcGVuIG1hcmtldCBzdGF0dXMgdmlzaWJpbGl0eSIsUC50KG51bGwsdm9pZCAwLGkoMTc2MjQ5KSkpLHVpPW5ldyBOLlRyYW5zbGF0ZWRTdHJpbmcoImNoYW5nZSBjaGFydCB2YWx1ZXMgdmlzaWJpbGl0eSIsUC50KG51bGwsdm9pZCAwLGkoNTY4NzMwKSkpLGNpPW5ldyBOLlRyYW5zbGF0ZWRTdHJpbmcoImNoYW5nZSBsYXN0IGRheSBjaGFuZ2UgdmlzaWJpbGl0eSIsUC50KG51bGwsdm9pZCAwLGkoMzM1NjgyKSkpLGhpPW5ldyBOLlRyYW5zbGF0ZWRTdHJpbmcoImNoYW5nZSBiYXIgY2hhbmdlIHZpc2liaWxpdHkiLFAudChudWxsLHZvaWQgMCxpKDM2Nzg2MCkpKSxwaT1uZXcgTi5UcmFuc2xhdGVkU3RyaW5nKCJjaGFuZ2UgaW5kaWNhdG9yIHRpdGxlcyB2aXNpYmlsaXR5IixQLnQobnVsbCx2b2lkIDAsaSgzMjA0MjYpKSksX2k9bmV3IE4uVHJhbnNsYXRlZFN0cmluZygiY2hhbmdlIGluZGljYXRvciBpbnB1dHMgdmlzaWJpbGl0eSIsUC50KG51bGwsdm9pZCAwLGkoMzM1MzMpKSksZ2k9bmV3IE4uVHJhbnNsYXRlZFN0cmluZygiY2hhbmdlIGluZGljYXRvciB2YWx1ZXMgdmlzaWJpbGl0eSIsUC50KG51bGwsdm9pZCAwLGkoMjE1MDI3KSkpLG1pPW5ldyBOLlRyYW5zbGF0ZWRTdHJpbmcoImNoYW5nZSB2b2x1bWUgdmFsdWVzIHZpc2liaWxpdHkiLFAudChudWxsLHZvaWQgMCxpKDUyMTY0KSkpLGJpPShuZXcgTi5UcmFuc2xhdGVkU3RyaW5nKCJjaGFuZ2Ugc3ltYm9sIGZpZWxkIHZpc2liaWxpdHkiLFAudChudWxsLHZvaWQgMCxpKDY2ODE5MikpKSwKUC50KG51bGwsdm9pZCAwLGkoNjg3NjEpKSksdmk9UC50KG51bGwsdm9pZCAwLGkoMTY1MzQwKSksZmk9UC50KG51bGwsdm9pZCAwLGkoMjg4NTgwKSksU2k9UC50KG51bGwsdm9pZCAwLGkoNTI3MDIwKSkseWk9UC50KG51bGwsdm9pZCAwLGkoODk5NzkpKSx3aT1QLnQobnVsbCx2b2lkIDAsaSgyNDcwNjIpKSxDaT1QLnQobnVsbCx2b2lkIDAsaSg0NDMxOTIpKSxFaT1QLnQobnVsbCx2b2lkIDAsaSgyMDQ0ODgpKSx4aT1QLnQobnVsbCx2b2lkIDAsaSg5NzM5NzEpKSxMaT0oUC50KG51bGwsdm9pZCAwLGkoMjg4NzI1KSksKDAsb2kuYXBwZW5kRWxsaXBzaXMpKFAudChudWxsLHZvaWQgMCxpKDczMDU4NikpKSksTWk9KGUsdCk9PmU/ZS5kYXRhc2V0W3RdP2UuZGF0YXNldFt0XTplLnBhcmVudEVsZW1lbnQ/TWkoZS5wYXJlbnRFbGVtZW50LHQpOm51bGw6bnVsbDt2YXIgVGksVmk9aSg3OTQ5NSksa2k9aSg0NDE0NDApLEFpPWkoNjA0Mzg0KTshZnVuY3Rpb24oZSl7ZVtlLkxlZ2VuZD0wXT0iTGVnZW5kIixlW2UuSXRlbXM9MV09Ikl0ZW1zIn0oVGl8fChUaT17fSkpO3ZhciBXaT1pKDk3MDYzNSksSWk9aSg3ODM5NzgpLEJpPWkoNjQyNzgzKSxIaT1pKDM1MTE4MiksRGk9aSg4NjA1NDgpO2NvbnN0IFBpPVAudChudWxsLHZvaWQgMCxpKDkxOTEyMSkpLE5pPVAudChudWxsLHZvaWQgMCxpKDM2Mjk2KSksUmk9UC50KG51bGwsdm9pZCAwLGkoODc5NjYxKSksT2k9bmV3IE1hcChbWyEwLG5ldyBNYXAoW1sic21hbGwiLEJpXSxbIm1lZGl1bSIsSGldLFsibGFyZ2UiLEhpXV0pXSxbITEsbmV3IE1hcChbWyJzbWFsbCIsIiJdLFsibWVkaXVtIiwiIl0sWyJsYXJnZSIsIiJdXSldXSksRmk9bmV3IE1hcChbWyEwLERpLmhhc0Vycm9yXSxbITEsbnVsbF1dKSx6aT1uZXcgTWFwKFtbITAsUGldLFshMSxudWxsXV0pLGppPW5ldyBNYXAoW1shMCxQaV0sWyExLG51bGxdXSksVWk9bmV3IE1hcChbWyEwLCJ2YXIoLS1jb2xvci1jb250ZW50LXByaW1hcnktZGFuZ2VyKSJdLFshMSxudWxsXV0pLEdpPW5ldyBNYXAoW1shMCxbTmldXSxbITEsbnVsbF1dKSxaaT1uZXcgTWFwKFtbITAsW1JpXV0sWyExLG51bGxdXSk7ZnVuY3Rpb24gSmkoZSl7c3dpdGNoKGUpe2Nhc2UgMDpyZXR1cm4gR2k7Y2FzZSAxOnJldHVybiBaaTtkZWZhdWx0OnRocm93IG5ldyBFcnJvcigiVW5rbm93biBDb21iaW5lZFN0YXR1c1dpZGdldFR5cGUiKX19dmFyIFlpPWkoOTg5ODcyKSxxaT1pKDkxMzg0Myk7Y29uc3QgJGk9UC50KG51bGwsdm9pZCAwLGkoMjQzNTQxKSksUWk9UC50KG51bGwsdm9pZCAwLGkoNzk1MzMwKSksS2k9UC50KG51bGwsdm9pZCAwLGkoMzYxMDUpKSxYaT1uZXcgTWFwKFtbITAsbmV3IE1hcChbWyJzbWFsbCIsWWldLFsibWVkaXVtIixxaV0sWyJsYXJnZSIscWldXSldLFshMSxuZXcgTWFwKFtbInNtYWxsIiwiIl0sWyJtZWRpdW0iLCIiXSxbImxhcmdlIiwiIl1dKV1dKSxlcz1uZXcgTWFwKFtbITAsRGkudXBkYXRlQXZhaWxhYmxlXSxbITEsbnVsbF1dKSx0cz1uZXcgTWFwKFtbITAsJGldLFshMSxudWxsXV0pLGlzPW5ldyBNYXAoW1shMCwkaV0sWyExLG51bGxdXSksc3M9bmV3IE1hcChbWyEwLCJ2YXIoLS1jb2xvci1jb250ZW50LXByaW1hcnktYWNjZW50LW90aGVyLW5vcm1hbCkiXSxbITEsbnVsbF1dKSxvcz1uZXcgTWFwKFtbITAsW1FpXV0sWyExLG51bGxdXSksbnM9bmV3IE1hcChbWyEwLFtLaV1dLFshMSxudWxsXV0pO2Z1bmN0aW9uIGFzKGUpe3N3aXRjaChlKXtjYXNlIDA6cmV0dXJuIG9zO2Nhc2UgMTpyZXR1cm4gbnM7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoIlVua25vd24gQ29tYmluZWRTdGF0dXNXaWRnZXRUeXBlIil9fWNsYXNzIGxzIGV4dGVuZHMgSWkuU3RhdHVzZXNXaWRnZXRTdGF0ZUJhc2V7Y29uc3RydWN0b3IoZSx0KXtzdXBlcih0KSx0aGlzLl9kYXRhU291cmNlU3RhdHVzV2lkZ2V0cz1bXSx0aGlzLl9oYXNFcnJvclN0YXR1cz1udWxsLHRoaXMuX2hhc1VwZGF0ZVN0YXR1cz1udWxsLHRoaXMuX2hhc0Vycm9yVmlld01vZGVsPW51bGwsdGhpcy5faGFzVXBkYXRlVmlld01vZGVsPW51bGwsdGhpcy5fdXBkYXRlVmlzaWJpbGl0eT0oKT0+e2NvbnN0IGU9MD09PXRoaXMudmlzaWJsZU1vZGVscygpLnZhbHVlKCkubGVuZ3RoO3RoaXMuX3Zpc2liaWxpdHkuc2V0VmFsdWUoIWUpfSx0aGlzLl90eXBlPWV9ZGVzdHJveSgpe3RoaXMuX2hhc0Vycm9yVmlld01vZGVsPy5kZXN0cm95KCksdGhpcy5faGFzVXBkYXRlVmlld01vZGVsPy5kZXN0cm95KCksc3VwZXIuZGVzdHJveSgpfWFkZFN0YXR1c1dpZGdldChlKXt0aGlzLl9kYXRhU291cmNlU3RhdHVzV2lkZ2V0cy5wdXNoKGUpLHRoaXMuX3JlY3JlYXRlSGFzRXJyb3JTdGF0dXMoKSx0aGlzLl9yZWNyZWF0ZUhhc1VwZGF0ZVN0YXR1cygpLHRoaXMuX2NyZWF0ZVN0YXR1c2VzV2lkZ2V0U3RhdGVzKCl9Y2xlYXIoKXt0aGlzLl9kYXRhU291cmNlU3RhdHVzV2lkZ2V0cz1bXSx0aGlzLl9oYXNFcnJvclN0YXR1cz8uZGVzdHJveSgpLHRoaXMuX2hhc0Vycm9yU3RhdHVzPW51bGwsdGhpcy5faGFzVXBkYXRlU3RhdHVzPy5kZXN0cm95KCksdGhpcy5faGFzVXBkYXRlU3RhdHVzPW51bGwsdGhpcy5fY2xlYXJTdGF0dXNWaWV3TW9kZWxzKCksdGhpcy5faGFzRXJyb3JWaWV3TW9kZWw/LmRlc3Ryb3koKSx0aGlzLl9oYXNFcnJvclZpZXdNb2RlbD1udWxsLHRoaXMuX2hhc1VwZGF0ZVZpZXdNb2RlbD8uZGVzdHJveSgpLHRoaXMuX2hhc1VwZGF0ZVZpZXdNb2RlbD1udWxsLHRoaXMuX3N0YXR1c1ZpZXdNb2RlbHNJbmZvc1dWLnNldFZhbHVlKFtdKX1hc3luYyBfY3JlYXRlU3RhdHVzZXNXaWRnZXRTdGF0ZXMoKXtjb25zdCBlPXRoaXMuX2hhc0Vycm9yU3RhdHVzO251bGwhPT1lJiYobnVsbD09PXRoaXMuX2hhc0Vycm9yVmlld01vZGVsPyh0aGlzLl9oYXNFcnJvclZpZXdNb2RlbD1uZXcgV2kuQm9vbGVhblN0YXR1c1ZpZXdNb2RlbChlLHtjbGFzc05hbWVNYXA6RmksaHRtbE1hcDpKaSh0aGlzLl90eXBlKSxpY29uTWFwOk9pLHNpemU6dGhpcy5fc2l6ZSx0aXRsZUNvbG9yTWFwOlVpLHRpdGxlTWFwOmppLHRvb2x0aXBNYXA6eml9KSwKdGhpcy5fYWRkU3RhdHVzVmlld01vZGVsc0luZm9zKHt2aXNpYmxlOnRoaXMuX2hhc0Vycm9yVmlld01vZGVsLnZpc2libGUoKS5zcGF3bigpLG1vZGVsOnRoaXMuX2hhc0Vycm9yVmlld01vZGVsfSkpOnRoaXMuX2hhc0Vycm9yVmlld01vZGVsLnVwZGF0ZVN0YXR1cyhlKSk7Y29uc3QgdD10aGlzLl9oYXNVcGRhdGVTdGF0dXM7bnVsbCE9PXQmJihudWxsPT09dGhpcy5faGFzVXBkYXRlVmlld01vZGVsPyh0aGlzLl9oYXNVcGRhdGVWaWV3TW9kZWw9bmV3IFdpLkJvb2xlYW5TdGF0dXNWaWV3TW9kZWwodCx7Y2xhc3NOYW1lTWFwOmVzLGh0bWxNYXA6YXModGhpcy5fdHlwZSksaWNvbk1hcDpYaSxzaXplOnRoaXMuX3NpemUsdGl0bGVDb2xvck1hcDpzcyx0aXRsZU1hcDppcyx0b29sdGlwTWFwOnRzfSksdGhpcy5fYWRkU3RhdHVzVmlld01vZGVsc0luZm9zKHt2aXNpYmxlOnRoaXMuX2hhc1VwZGF0ZVZpZXdNb2RlbC52aXNpYmxlKCkuc3Bhd24oKSxtb2RlbDp0aGlzLl9oYXNVcGRhdGVWaWV3TW9kZWx9KSk6dGhpcy5faGFzVXBkYXRlVmlld01vZGVsLnVwZGF0ZVN0YXR1cyh0KSl9X3JlY3JlYXRlSGFzRXJyb3JTdGF0dXMoKXt0aGlzLl9oYXNFcnJvclN0YXR1cz8uZGVzdHJveSgpO2NvbnN0IGU9KDAsZC5jb21iaW5lKSgoZT0+dGhpcy5fZGF0YVNvdXJjZVN0YXR1c1dpZGdldHMubWFwKChlPT5lLmRhdGFTb3VyY2VFcnJvclN0YXR1c1Nob3duLndlYWtSZWZlcmVuY2UoKSkpKSxuZXcgci5XYXRjaGVkVmFsdWUodGhpcy5fZGF0YVNvdXJjZVN0YXR1c1dpZGdldHMpLndlYWtSZWZlcmVuY2UoKSk7dGhpcy5faGFzRXJyb3JTdGF0dXM9KDAsZC5hY2N1bXVsYXRlKSgoZT0+ZS5zb21lKChlPT5lKSkpLGUub3duZXJzaGlwKCkpfV9yZWNyZWF0ZUhhc1VwZGF0ZVN0YXR1cygpe3RoaXMuX2hhc1VwZGF0ZVN0YXR1cz8uZGVzdHJveSgpO2NvbnN0IGU9KDAsZC5jb21iaW5lKSgoZT0+dGhpcy5fZGF0YVNvdXJjZVN0YXR1c1dpZGdldHMubWFwKChlPT5lLmRhdGFVcGRhdGVkTW9kZVNob3duLndlYWtSZWZlcmVuY2UoKSkpKSxuZXcgci5XYXRjaGVkVmFsdWUodGhpcy5fZGF0YVNvdXJjZVN0YXR1c1dpZGdldHMpLndlYWtSZWZlcmVuY2UoKSk7dGhpcy5faGFzVXBkYXRlU3RhdHVzPSgwLGQuYWNjdW11bGF0ZSkoKGU9PmUuc29tZSgoZT0+ZSkpKSxlLm93bmVyc2hpcCgpKX19dmFyIHJzPWkoOTMwNTY2KSxkcz1pKDY2NTE4NyksdXM9aSgyODI3MTApO2NvbnN0IGNzPXtyZWFkT25seU1vZGU6ITEsY29udGV4dE1lbnU6e3NldHRpbmdzOiEwLG1haW5TZXJpZXM6ITAsc3R1ZGllczohMCxzaG93T3Blbk1hcmtldFN0YXR1czohMX0sc3ltYm9sTWFya2VyRW5hYmxlZDohMSxzaG93VG9nZ2xlQnV0dG9uOiEwLGNhblNob3dTb3VyY2VDb2RlOiExLHN0YXR1c2VzV2lkZ2V0czp7c291cmNlU3RhdHVzZXNFbmFibGVkOiExLHNvdXJjZVN0YXR1c2VzOntlcnJvclNvbHV0aW9uOiEwfSxtYXJrZXRTdGF0dXNFbmFibGVkOiExLG1hcmtldFN0YXR1czp7cHJlTWFya2V0U29sdXRpb246ITAscG9zdE1hcmtldFNvbHV0aW9uOiEwfSxkYXRhVXBkYXRlTW9kZUVuYWJsZWQ6ITEsZGF0YVVwZGF0ZU1vZGU6e3N1YnNjcmlwdGlvbkZ1bGxJbmZvOiEwfSxkYXRhUHJvYmxlbUVuYWJsZWQ6ITF9fTt2YXIgaHM7IWZ1bmN0aW9uKGUpe2UuVG9nZ2xlclN0YXRlU2V0dGluZ3NLZXk9ImxlZ2VuZC5pc1Zpc2liaWxpdHlUb2dnbGVkIixlW2UuVGV4dFNvdXJjZUlzQWx3YXlzVGlja2VyTWF4U2l6ZT0xMzJdPSJUZXh0U291cmNlSXNBbHdheXNUaWNrZXJNYXhTaXplIn0oaHN8fChocz17fSkpO2NvbnN0IHBzPSgwLGwuaXNGZWF0dXJlc2V0RW5hYmxlZCkoImhpZGVfbGVnZW5kX2J5X2RlZmF1bHQiKSxfcz0oMCxsLmlzRmVhdHVyZXNldEVuYWJsZWQpKCJmdW5kYW1lbnRhbF93aWRnZXQiKSxncz0oMCxsLmlzRmVhdHVyZXNldEVuYWJsZWQpKCJsZWdlbmRfY29udGV4dF9tZW51IiksbXM9cGFyc2VJbnQodXMuY3NzX3ZhbHVlX2NoYXJ0X2d1aV93cmFwcGVyX2NvbHVtbl9nYXApO2NsYXNzIGJze2NvbnN0cnVjdG9yKGUsdCxpLHMsbixsLGMsaCl7dGhpcy5fbWFpblNlcmllc1ZpZXdNb2RlbD1udWxsLHRoaXMuX2RhdGFTb3VyY2VWaWV3TW9kZWxzPVtdLHRoaXMuX3NvdXJjZXNJZHM9W10sdGhpcy5fdmlzaWJsZURhdGFTb3VyY2VDb3VudD1uZXcgci5XYXRjaGVkVmFsdWUoMCksdGhpcy5fdGhlbWVkQ29sb3I9bmV3IHIuV2F0Y2hlZFZhbHVlKCIiKSx0aGlzLl9tYWluU2VyaWVzUm93SGlkZGVuPW51bGwsdGhpcy5fZGF0YVNvdXJjZVJvd3NIaWRkZW49W10sdGhpcy5fY3VzdG9tV2lkZ2V0c1Zpc2liaWxpdGllcz1bXSx0aGlzLl9hbGxMZWdlbmRIaWRkZW49bmV3IHIuV2F0Y2hlZFZhbHVlKCExKSx0aGlzLl9zdHVkaWVzTGVnZW5kSGlkZGVuPW5ldyByLldhdGNoZWRWYWx1ZSghMSksdGhpcy5fc2hvd0NvbGxhcHNlcldpdGhPbmVJbmRpY2F0b3I9bmV3IHIuV2F0Y2hlZFZhbHVlKCExKSx0aGlzLl9kYXRhU291cmNlc0xvYWRpbmdTdGF0dXNlcz1uZXcgci5XYXRjaGVkVmFsdWUoW10pLHRoaXMuX2N1c3RvbVdpZGdldHNIZWlnaHRzPVtdLHRoaXMuX29uTGVnZW5kVmlzaWJpbGl0eVRvZ2dsZWQ9bnVsbCx0aGlzLl9hdmFpbGFibGVIZWlnaHQ9MCx0aGlzLl9jb2xsYXBzZWREYXRhU291cmNlc0NvdW50PW5ldyByLldhdGNoZWRWYWx1ZSgwKSx0aGlzLl9jb2xsYXBzZWREYXRhU291cmNlc1RpdGxlPW5ldyByLldhdGNoZWRWYWx1ZSgiIiksdGhpcy5fbWFpblNlcmllc1N0YXR1c2VzV2lkZ2V0U3RhdGU9bnVsbCx0aGlzLl9kYXRhU291cmNlU3RhdHVzZXNXaWRnZXRTdGF0ZXM9W10sdGhpcy5fc3RhdHVzUHJvdmlkZXJzPW5ldyBNYXAsdGhpcy5fc2l6ZT1udWxsLHRoaXMuX2N1c3RvbUxlZ2VuZFdpZGdldHNGYWN0b3JpZXNNYXA9bmV3IE1hcCx0aGlzLl9jdXN0b21MZWdlbmRXaWRnZXRzTWFwPW5ldyBNYXAsdGhpcy5fbWFyZ2luPTAsdGhpcy5fbGF5b3V0Q2hhbmdlZD1uZXcgdS5EZWxlZ2F0ZSx0aGlzLl9tb2RlbD1lLHRoaXMuX3BhbmVXaWRnZXQ9dCx0aGlzLl9vcHRpb25zPSgwLGEubWVyZ2UpKCgwLGEuY2xvbmUpKGNzKSxjKSwKdGhpcy5fY2FsbGJhY2tzPWgsdGhpcy5fbWFpblNlcmllc1ZpZXdNb2RlbHNPcHRpb25zPXtyZWFkT25seU1vZGU6dGhpcy5fb3B0aW9ucy5yZWFkT25seU1vZGUsc3ltYm9sTWFya2VyRW5hYmxlZDp0aGlzLl9vcHRpb25zLnN5bWJvbE1hcmtlckVuYWJsZWR9LHRoaXMuX2RhdGFTb3VyY2VWaWV3TW9kZWxzT3B0aW9ucz17Li4udGhpcy5fbWFpblNlcmllc1ZpZXdNb2RlbHNPcHRpb25zLGNhblNob3dTb3VyY2VDb2RlOnRoaXMuX29wdGlvbnMuY2FuU2hvd1NvdXJjZUNvZGV9LHRoaXMuX2JhY2tncm91bmRUaGVtZU5hbWU9aTtjb25zdCBwPXRoaXMuX3Nob3dMZWdlbmRDYWxjdWxhdGVkUHJvcGVydHkoKTtpZih0aGlzLl9pc0RhdGFTb3VyY2VzQ29sbGFwc2VkPW5ldyByLldhdGNoZWRWYWx1ZShwLnZhbHVlKCkpLHAuc3Vic2NyaWJlKHRoaXMsKCgpPT57dGhpcy5faXNEYXRhU291cmNlc0NvbGxhcHNlZC5zZXRWYWx1ZShwLnZhbHVlKCkpfSkpLHBzJiYhcnMuZ2V0Qm9vbCgibGVnZW5kLmlzVmlzaWJpbGl0eVRvZ2dsZWQiKSl7Y29uc3QgZT10aGlzLl9zaG93TGVnZW5kT3JpZ2luYWxQcm9wZXJ0eSgpO3RoaXMuX29uTGVnZW5kVmlzaWJpbGl0eVRvZ2dsZWQ9dGhpcy5fc2V0TGVnZW5kVmlzaWJpbGl0eVRvZ2dsZWQuYmluZCh0aGlzKSxlLnNldFZhbHVlKCExKSxlLnN1YnNjcmliZSh0aGlzLHRoaXMuX29uTGVnZW5kVmlzaWJpbGl0eVRvZ2dsZWQpfWNvbnN0IF89bmV3IHIuV2F0Y2hlZFZhbHVlKHRoaXMuX2dldEN1c3RvbVRleHRDb2xvclZhbHVlKCkpLGc9dGhpcy5fbW9kZWwubW9kZWwoKS5wcm9wZXJ0aWVzKCkuY2hpbGRzKCk7Zy5zY2FsZXNQcm9wZXJ0aWVzLmNoaWxkcygpLnRleHRDb2xvci5zdWJzY3JpYmUodGhpcywoKCk9PntfLnNldFZhbHVlKHRoaXMuX2dldEN1c3RvbVRleHRDb2xvclZhbHVlKCkpfSkpO2NvbnN0IG09Zy5wYW5lUHJvcGVydGllcy5jaGlsZHMoKS5sZWdlbmRQcm9wZXJ0aWVzLmNoaWxkcygpLnNob3dCYWNrZ3JvdW5kLGI9bmV3IHIuV2F0Y2hlZFZhbHVlKG0udmFsdWUoKSk7bS5zdWJzY3JpYmUodGhpcywoKCk9PntiLnNldFZhbHVlKG0udmFsdWUoKSl9KSk7Y29uc3Qgdj1nLnBhbmVQcm9wZXJ0aWVzLmNoaWxkcygpLmxlZ2VuZFByb3BlcnRpZXMuY2hpbGRzKCkuYmFja2dyb3VuZFRyYW5zcGFyZW5jeSxmPW5ldyByLldhdGNoZWRWYWx1ZSh2LnZhbHVlKCkpO3Yuc3Vic2NyaWJlKHRoaXMsKCgpPT57Zi5zZXRWYWx1ZSh2LnZhbHVlKCkpfSkpLHRoaXMuX2hpZGVOb3RNYWluU291cmNlcz1zLHRoaXMuX2hpZGVOb3RNYWluU291cmNlcy5zdWJzY3JpYmUodGhpcy5fdXBkYXRlTGVnZW5kVmlzaWJpbGl0aWVzLmJpbmQodGhpcykpLHRoaXMuX2hpZGVBbGxFeGNlcHRGaXJzdExpbmU9bix0aGlzLl9oaWRlQWxsRXhjZXB0Rmlyc3RMaW5lLnN1YnNjcmliZSh0aGlzLl91cGRhdGVDb2xsYXBzZWRTb3VyY2VzTW9kZS5iaW5kKHRoaXMpKSx0aGlzLl9oaWRlV2hvbGVMZWdlbmQ9bCx0aGlzLl9oaWRlV2hvbGVMZWdlbmQuc3Vic2NyaWJlKHRoaXMuX3VwZGF0ZUxlZ2VuZFZpc2liaWxpdGllcy5iaW5kKHRoaXMpKSx0aGlzLl9pc1BhbmVNYWluPW5ldyByLldhdGNoZWRWYWx1ZSh0aGlzLl9nZXRJc1BhbmVNYWluVmFsdWUoKSksdGhpcy5fdXBkYXRlQ29sbGFwc2VkU291cmNlc01vZGVUaHJvdHRsZT0oMCxvLmRlZmF1bHQpKHRoaXMuX3VwZGF0ZUNvbGxhcHNlZFNvdXJjZXNNb2RlLmJpbmQodGhpcyksMTAwKSx0aGlzLl9pc1BhbmVNYWluLnN1YnNjcmliZSgoZT0+dGhpcy5fc2hvd0NvbGxhcHNlcldpdGhPbmVJbmRpY2F0b3Iuc2V0VmFsdWUoZSkpLHtjYWxsV2l0aExhc3Q6ITB9KSx0aGlzLl9jb2xsYXBzZWRTdGF0dXNlc1dpZGdldFN0YXRlPW5ldyBscygxLHRoaXMuX29wdGlvbnMuc3RhdHVzZXNXaWRnZXRzKSx0aGlzLl90b2dnbGVkU3RhdHVzZXNXaWRnZXRTdGF0ZT1uZXcgbHMoMCx0aGlzLl9vcHRpb25zLnN0YXR1c2VzV2lkZ2V0cyksdGhpcy5faGFzTG9hZGluZ0RhdGFTb3VyY2VzPSgwLGQuYWNjdW11bGF0ZSkoKChlLHQpPT57Y29uc3QgaT1lLnNvbWUoQm9vbGVhbik7cmV0dXJuW2ksISFpJiZlLmluY2x1ZGVzKCEwLC10KV19KSx0aGlzLl9kYXRhU291cmNlc0xvYWRpbmdTdGF0dXNlcy53ZWFrUmVmZXJlbmNlKCksdGhpcy5fY29sbGFwc2VkRGF0YVNvdXJjZXNDb3VudC53ZWFrUmVmZXJlbmNlKCkpLHRoaXMuX3JlbmRlcmVyPW5ldyBCZSh7aXNNdWx0aXBsZUxheW91dDp0aGlzLl9tb2RlbC5pc011bHRpcGxlTGF5b3V0KCksd2l0aEFjdGlvbnM6IXRoaXMuX29wdGlvbnMucmVhZE9ubHlNb2RlLHNob3dUb2dnbGVCdXR0b246dGhpcy5fb3B0aW9ucy5zaG93VG9nZ2xlQnV0dG9uLGlzU3R1ZGllc0xlZ2VuZEhpZGRlbjp0aGlzLl9zdHVkaWVzTGVnZW5kSGlkZGVuLnJlYWRvbmx5KCksaXNBbGxMZWdlbmRIaWRkZW46dGhpcy5fYWxsTGVnZW5kSGlkZGVuLnJlYWRvbmx5KCksY3VzdG9tVGV4dENvbG9yOl8ucmVhZG9ubHkoKSx0aGVtZWRDb2xvcjp0aGlzLl90aGVtZWRDb2xvci5yZWFkb25seSgpLHNob3dCYWNrZ3JvdW5kOmIucmVhZG9ubHkoKSxiYWNrZ3JvdW5kVHJhbnNwYXJlbmN5OmYucmVhZG9ubHkoKSxjb2xsYXBzZWREYXRhU291cmNlc0NvdW50OnRoaXMuX2NvbGxhcHNlZERhdGFTb3VyY2VzQ291bnQucmVhZG9ubHkoKSxjb2xsYXBzZWREYXRhU291cmNlc1RpdGxlOnRoaXMuX2NvbGxhcHNlZERhdGFTb3VyY2VzVGl0bGUucmVhZG9ubHkoKSxjb21iaW5lZFN0YXR1c2VzV2lkZ2V0U3RhdGU6dGhpcy5fY29sbGFwc2VkU3RhdHVzZXNXaWRnZXRTdGF0ZSxzaG93TGVnZW5kV2lkZ2V0Q29udGV4dE1lbnU6dGhpcy5vblNob3dMZWdlbmRXaWRnZXRDb250ZXh0TWVudS5iaW5kKHRoaXMpLGhpZGVBbGxFeGNlcHRGaXJzdExpbmU6dGhpcy5faGlkZUFsbEV4Y2VwdEZpcnN0TGluZSxvbkxlZ2VuZFJvd0ZvY3VzZWQ6dGhpcy5fY2FsbGJhY2tzLm9uTGVnZW5kUm93Rm9jdXNlZCxvbkxheW91dENoYW5nZWQ6dGhpcy5fbGF5b3V0Q2hhbmdlZCxoYXNMb2FkaW5nRGF0YVNvdXJjZXM6dGhpcy5faGFzTG9hZGluZ0RhdGFTb3VyY2VzfSx7CnNob3dDb2xsYXBzZXJXaXRoT25lSW5kaWNhdG9yOnRoaXMuX3Nob3dDb2xsYXBzZXJXaXRoT25lSW5kaWNhdG9yLnJlYWRvbmx5KCksdmlzaWJsZURhdGFTb3VyY2VDb3VudDp0aGlzLl92aXNpYmxlRGF0YVNvdXJjZUNvdW50LnJlYWRvbmx5KCksaXNEYXRhU291cmNlc0NvbGxhcHNlZDp0aGlzLl9pc0RhdGFTb3VyY2VzQ29sbGFwc2VkLnJlYWRvbmx5KCksaGFzTG9hZGluZ0RhdGFTb3VyY2VzOnRoaXMuX2hhc0xvYWRpbmdEYXRhU291cmNlcyxpc01haW5QYW5lOnRoaXMuX2lzUGFuZU1haW4ucmVhZG9ubHkoKSxvbkNvbGxhcHNlRGF0YVNvdXJjZXM6dGhpcy5vbkNvbGxhcHNlRGF0YVNvdXJjZXMuYmluZCh0aGlzKSxvblNob3dPYmplY3RzVHJlZURpYWxvZzp0aGlzLl9jYWxsYmFja3Muc2hvd09iamVjdHNUcmVlRGlhbG9nLGlzUGFuZUNvbGxhcHNlZDp0aGlzLl9wYW5lV2lkZ2V0LnZpc3VhbGx5Q29sbGFwc2VkKCksY29tYmluZWRTdGF0dXNlc1dpZGdldFN0YXRlOnRoaXMuX3RvZ2dsZWRTdGF0dXNlc1dpZGdldFN0YXRlfSl9ZGVzdHJveSgpe3RoaXMuX2hhc0xvYWRpbmdEYXRhU291cmNlcy5kZXN0cm95KCksdGhpcy5fYmFja2dyb3VuZFRoZW1lTmFtZS5yZWxlYXNlKCksdGhpcy5faGlkZU5vdE1haW5Tb3VyY2VzLnJlbGVhc2UoKSx0aGlzLl9oaWRlQWxsRXhjZXB0Rmlyc3RMaW5lLnJlbGVhc2UoKSx0aGlzLl9oaWRlV2hvbGVMZWdlbmQucmVsZWFzZSgpLHRoaXMuX3NvdXJjZXNJZHM9W10sbnVsbCE9PXRoaXMuX21haW5TZXJpZXNWaWV3TW9kZWwmJnRoaXMuX2Rlc3Ryb3lNYWluRGF0YVNvdXJjZSgpO2Zvcihjb25zdFssZV1vZiB0aGlzLl9zdGF0dXNQcm92aWRlcnMpZS5kZXN0cm95KCk7Zm9yKGNvbnN0IGUgb2YgdGhpcy5fZGF0YVNvdXJjZVZpZXdNb2RlbHMpZS5kZXN0cm95KCk7dGhpcy5fZGF0YVNvdXJjZVZpZXdNb2RlbHM9W10sdGhpcy5fY29sbGFwc2VkU3RhdHVzZXNXaWRnZXRTdGF0ZS5kZXN0cm95KCksdGhpcy5fdG9nZ2xlZFN0YXR1c2VzV2lkZ2V0U3RhdGUuZGVzdHJveSgpO2Zvcihjb25zdCBlIG9mIHRoaXMuX2RhdGFTb3VyY2VTdGF0dXNlc1dpZGdldFN0YXRlcyllLmRlc3Ryb3koKTt0aGlzLl9kYXRhU291cmNlU3RhdHVzZXNXaWRnZXRTdGF0ZXM9W10sdGhpcy5fY2xlYXJTdWJzY3JpcHRpb25zKCk7Zm9yKGNvbnN0IGUgb2YgQXJyYXkuZnJvbSh0aGlzLl9jdXN0b21MZWdlbmRXaWRnZXRzTWFwLmtleXMoKSkpdGhpcy5fZGVzdHJveUN1c3RvbVdpZGdldEZyb21MYXllckJsb2NrKGUpO3RoaXMuX2N1c3RvbUxlZ2VuZFdpZGdldHNNYXAuY2xlYXIoKSx0aGlzLl9yZW5kZXJlci5kZXN0cm95KCksZGVsZXRlIHRoaXMuX3JlbmRlcmVyLHRoaXMuX3Nob3dMZWdlbmRDYWxjdWxhdGVkUHJvcGVydHkoKS51bnN1YnNjcmliZUFsbCh0aGlzKSx0aGlzLl9zaG93TGVnZW5kT3JpZ2luYWxQcm9wZXJ0eSgpLnVuc3Vic2NyaWJlQWxsKHRoaXMpO2NvbnN0IGU9dGhpcy5fbW9kZWwubW9kZWwoKS5wcm9wZXJ0aWVzKCkuY2hpbGRzKCk7ZS5zY2FsZXNQcm9wZXJ0aWVzLmNoaWxkcygpLnRleHRDb2xvci51bnN1YnNjcmliZUFsbCh0aGlzKSxlLnBhbmVQcm9wZXJ0aWVzLmNoaWxkcygpLmxlZ2VuZFByb3BlcnRpZXMuY2hpbGRzKCkuc2hvd0JhY2tncm91bmQudW5zdWJzY3JpYmVBbGwodGhpcyksZS5wYW5lUHJvcGVydGllcy5jaGlsZHMoKS5sZWdlbmRQcm9wZXJ0aWVzLmNoaWxkcygpLmJhY2tncm91bmRUcmFuc3BhcmVuY3kudW5zdWJzY3JpYmVBbGwodGhpcyksdGhpcy5fZGF0YVNvdXJjZXNMb2FkaW5nU3RhdHVzZXMuc2V0VmFsdWUoW10pfWFkZEN1c3RvbVdpZGdldFRvTGVnZW5kKGUsdCl7Y29uc3QgaT10aGlzLl9jdXN0b21MZWdlbmRXaWRnZXRzRmFjdG9yaWVzTWFwLmdldCh0LmJsb2NrKXx8bmV3IE1hcCxzPWkuZ2V0KHQucG9zaXRpb24pfHxbXTtzLnB1c2goZSksaS5zZXQodC5wb3NpdGlvbixzKSx0aGlzLl9jdXN0b21MZWdlbmRXaWRnZXRzRmFjdG9yaWVzTWFwLnNldCh0LmJsb2NrLGkpLHRoaXMudXBkYXRlTGF5b3V0KCksdGhpcy5fdXBkYXRlQ3VzdG9tV2lkZ2V0TW9kZUJ5U2l6ZSgpfW9uU2hvd0xlZ2VuZFdpZGdldENvbnRleHRNZW51KGUsdCl7aWYodGhpcy5fb3B0aW9ucy5yZWFkT25seU1vZGV8fCFncylyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7TygiU2hvdyBsZWdlbmQgY29udGV4dCBtZW51Iik7Y29uc3QgaT1uZXcgTWFwO2Zvcihjb25zdCBlIG9mIEFycmF5LmZyb20odGhpcy5fY3VzdG9tTGVnZW5kV2lkZ2V0c01hcC5rZXlzKCkpKXtjb25zdCB0PSgwLG4uZW5zdXJlRGVmaW5lZCkodGhpcy5fY3VzdG9tTGVnZW5kV2lkZ2V0c01hcC5nZXQoZSkpLHM9bmV3IE1hcDtmb3IoY29uc3QgZSBvZiBBcnJheS5mcm9tKHQua2V5cygpKSl7Y29uc3QgaT0oMCxuLmVuc3VyZURlZmluZWQpKHQuZ2V0KGUpKSxvPXMuZ2V0KGUpfHxbXTtmb3IoY29uc3QgZSBvZiBpKW8ucHVzaCguLi5lLmNvbnRleHRNZW51QWN0aW9ucygpKTtzLnNldChlLG8pfWkuc2V0KGUscyl9cmV0dXJuIGZ1bmN0aW9uKGUsdCxpLHMsbyxuKXtjb25zdCBhPVtdLGw9cy5nZXQoMCk7aWYodm9pZCAwIT09bCl7Y29uc3QgZT1sLmdldCgxKTt2b2lkIDAhPT1lJiZlLmxlbmd0aD4wJiYoYS5wdXNoKC4uLmUpLGEucHVzaChuZXcgSmUuU2VwYXJhdG9yKSl9Y29uc3Qgcj1lLm1vZGVsKCkucHJvcGVydGllcygpLmNoaWxkcygpLnBhbmVQcm9wZXJ0aWVzLmNoaWxkcygpLmxlZ2VuZFByb3BlcnRpZXMuY2hpbGRzKCk7YS5wdXNoKG5ldyBKZS5BY3Rpb24oe2FjdGlvbklkOiJDaGFydC5MZWdlbmQuVG9nZ2xlU3ltYm9sVmlzaWJpbGl0eSIsb3B0aW9uczp7Y2hlY2thYmxlOiEwLGNoZWNrZWQ6ci5zaG93U2VyaWVzVGl0bGUudmFsdWUoKSxsYWJlbDpiaSxzdGF0TmFtZToiU2hvdy9IaWRlIFN5bWJvbCIsb25FeGVjdXRlOigpPT5saShlLHIuc2hvd1Nlcmllc1RpdGxlLHJpKX19KSksdC5zaG93T3Blbk1hcmtldFN0YXR1cyYmIm1hcmtldCI9PT1lLm1haW5TZXJpZXMoKS5tYXJrZXRTdGF0dXNNb2RlbCgpLnN0YXR1cygpLnZhbHVlKCkmJiEoMCwKaWkuaXNFY29ub21pY1N5bWJvbCkoZS5tYWluU2VyaWVzKCkuc3ltYm9sSW5mbygpKSYmYS5wdXNoKG5ldyBKZS5BY3Rpb24oe2FjdGlvbklkOiJDaGFydC5MZWdlbmQuVG9nZ2xlT3Blbk1hcmtldFN0YXR1c1Zpc2liaWxpdHkiLG9wdGlvbnM6e2NoZWNrYWJsZTohMCxjaGVja2VkOnNpLnNob3dNYXJrZXRPcGVuU3RhdHVzUHJvcGVydHkudmFsdWUoKSxsYWJlbDp2aSxzdGF0TmFtZToiU2hvdy9IaWRlIE9wZW4gbWFya2V0IHN0YXR1cyIsb25FeGVjdXRlOigpPT5saShlLHNpLnNob3dNYXJrZXRPcGVuU3RhdHVzUHJvcGVydHksZGkpfX0pKSxhLnB1c2gobmV3IEplLkFjdGlvbih7YWN0aW9uSWQ6IkNoYXJ0LkxlZ2VuZC5Ub2dnbGVPaGxjVmFsdWVzVmlzaWJpbGl0eSIsb3B0aW9uczp7Y2hlY2thYmxlOiEwLGNoZWNrZWQ6ci5zaG93U2VyaWVzT0hMQy52YWx1ZSgpLGxhYmVsOmZpLHN0YXROYW1lOiJTaG93L0hpZGUgY2hhcnQgdmFsdWVzIixvbkV4ZWN1dGU6KCk9PmxpKGUsci5zaG93U2VyaWVzT0hMQyx1aSl9fSkpO2NvbnN0IGQ9ZS5tYWluU2VyaWVzKCkuc3R5bGUoKSx1PTEyIT09ZCYmMjAhPT1kO2lmKHUmJiFuaS5hbHdheXNTaG93TGFzdFByaWNlQW5kTGFzdERheUNoYW5nZSYmYS5wdXNoKG5ldyBKZS5BY3Rpb24oe2FjdGlvbklkOiJDaGFydC5MZWdlbmQuVG9nZ2xlQmFyQ2hhbmdlVmFsdWVzVmlzaWJpbGl0eSIsb3B0aW9uczp7Y2hlY2thYmxlOiEwLGNoZWNrZWQ6ci5zaG93QmFyQ2hhbmdlLnZhbHVlKCksbGFiZWw6eWksc3RhdE5hbWU6IlNob3cvSGlkZSBCYXIgQ2hhbmdlIFZhbHVlcyIsb25FeGVjdXRlOigpPT5saShlLHIuc2hvd0JhckNoYW5nZSxoaSl9fSkpLGEucHVzaChuZXcgSmUuQWN0aW9uKHthY3Rpb25JZDoiQ2hhcnQuTGVnZW5kLlRvZ2dsZVZvbHVtZVZpc2liaWxpdHkiLG9wdGlvbnM6e2NoZWNrYWJsZTohMCxjaGVja2VkOnIuc2hvd1ZvbHVtZS52YWx1ZSgpLGxhYmVsOndpLHN0YXROYW1lOiJTaG93L0hpZGUgVm9sdW1lIixvbkV4ZWN1dGU6KCk9PmxpKGUsci5zaG93Vm9sdW1lLG1pKX19KSksdSYmKG5pLmxhc3REYXlDaGFuZ2VBdmFpbGFibGV8fG5pLmFsd2F5c1Nob3dMYXN0UHJpY2VBbmRMYXN0RGF5Q2hhbmdlKSl7Y29uc3QgdD1uaS5hbHdheXNTaG93TGFzdFByaWNlQW5kTGFzdERheUNoYW5nZT9yLnNob3dCYXJDaGFuZ2U6ci5zaG93TGFzdERheUNoYW5nZTthLnB1c2gobmV3IEplLkFjdGlvbih7YWN0aW9uSWQ6IkNoYXJ0LkxlZ2VuZC5Ub2dnbGVMYXN0RGF5Q2hhbmdlVmFsdWVzVmlzaWJpbGl0eSIsb3B0aW9uczp7Y2hlY2thYmxlOiEwLGNoZWNrZWQ6dC52YWx1ZSgpLGxhYmVsOlNpLHN0YXROYW1lOiJTaG93L0hpZGUgTGFzdCBkYXkgY2hhbmdlIHZhbHVlcyIsb25FeGVjdXRlOigpPT5saShlLHQsY2kpfX0pKX1pZihhLnB1c2gobmV3IEplLlNlcGFyYXRvciksdm9pZCAwIT09bCl7Y29uc3QgZT1sLmdldCgwKTt2b2lkIDAhPT1lJiZlLmxlbmd0aD4wJiYoYS5wdXNoKC4uLmUpLGEucHVzaChuZXcgSmUuU2VwYXJhdG9yKSl9Y29uc3QgYz1zLmdldCgxKTtpZih2b2lkIDAhPT1jKXtjb25zdCBlPWMuZ2V0KDEpO3ZvaWQgMCE9PWUmJmUubGVuZ3RoPjAmJihhLnB1c2goLi4uZSksYS5wdXNoKG5ldyBKZS5TZXBhcmF0b3IpKX1pZihlLm1vZGVsKCkucHJpY2VEYXRhU291cmNlcygpLnNvbWUoKGU9PiEoMCxrdC5pc1N5bWJvbFNvdXJjZSkoZSkmJmUuc2hvd0luT2JqZWN0VHJlZSgpKSkmJihhLnB1c2gobmV3IEplLkFjdGlvbih7YWN0aW9uSWQ6IkNoYXJ0LkxlZ2VuZC5Ub2dnbGVJbmRpY2F0b3JUaXRsZXNWaXNpYmlsaXR5IixvcHRpb25zOntjaGVja2FibGU6ITAsY2hlY2tlZDpyLnNob3dTdHVkeVRpdGxlcy52YWx1ZSgpLGxhYmVsOkNpLHN0YXROYW1lOiJTaG93L0hpZGUgSW5kaWNhdG9yIFRpdGxlcyIsb25FeGVjdXRlOigpPT5saShlLHIuc2hvd1N0dWR5VGl0bGVzLHBpKX19KSksYS5wdXNoKG5ldyBKZS5BY3Rpb24oe2FjdGlvbklkOiJDaGFydC5MZWdlbmQuVG9nZ2xlSW5kaWNhdG9yQXJndW1lbnRzVmlzaWJpbGl0eSIsb3B0aW9uczp7Y2hlY2thYmxlOiEwLGNoZWNrZWQ6ci5zaG93U3R1ZHlBcmd1bWVudHMudmFsdWUoKSxsYWJlbDpFaSxzdGF0TmFtZToiU2hvdy9IaWRlIEluZGljYXRvciBBcmd1bWVudHMiLG9uRXhlY3V0ZTooKT0+bGkoZSxyLnNob3dTdHVkeUFyZ3VtZW50cyxfaSl9fSkpLGEucHVzaChuZXcgSmUuQWN0aW9uKHthY3Rpb25JZDoiQ2hhcnQuTGVnZW5kLlRvZ2dsZUluZGljYXRvclZhbHVlc1Zpc2liaWxpdHkiLG9wdGlvbnM6e2NoZWNrYWJsZTohMCxjaGVja2VkOnIuc2hvd1N0dWR5VmFsdWVzLnZhbHVlKCksbGFiZWw6eGksc3RhdE5hbWU6IlNob3cvSGlkZSBJbmRpY2F0b3IgVmFsdWVzIixvbkV4ZWN1dGU6KCk9PmxpKGUsci5zaG93U3R1ZHlWYWx1ZXMsZ2kpfX0pKSksdm9pZCAwIT09Yyl7Y29uc3QgZT1jLmdldCgwKTt2b2lkIDAhPT1lJiZlLmxlbmd0aD4wJiYoYS5wdXNoKC4uLmUpLGEucHVzaChuZXcgSmUuU2VwYXJhdG9yKSl9dC5zZXR0aW5ncyYmKGFbYS5sZW5ndGgtMV1pbnN0YW5jZW9mIEplLlNlcGFyYXRvcnx8YS5wdXNoKG5ldyBKZS5TZXBhcmF0b3IpLGEucHVzaChuZXcgYWkuQWN0aW9uV2l0aFN0YW5kYXJkSWNvbih7YWN0aW9uSWQ6IkNoYXJ0LkRpYWxvZ3MuU2hvd0dlbmVyYWxTZXR0aW5ncy5MZWdlbmRUYWIiLG9wdGlvbnM6e2xhYmVsOkxpLGljb25JZDoiU2V0dGluZ3MiLHN0YXROYW1lOiJTZXR0aW5ncy4uLiIsb25FeGVjdXRlOigpPT5pKGF0LlRhYk5hbWVzLmxlZ2VuZCl9fSkpKTtjb25zdCBoPU1pKG8udGFyZ2V0LCJlbnRpdHlJZCIpLHA9e21lbnVOYW1lOiJMZWdlbmRQcm9wZXJ0aWVzQ29udGV4dE1lbnUiLGRldGFpbDp7dHlwZTpoPyJzdHVkeSI6InNlcmllcyIsaWQ6aD8/Il9zZXJpZXNJZCJ9fTtyZXR1cm4gWWUuQ29udGV4dE1lbnVNYW5hZ2VyLnNob3dNZW51KGEsbyx7c3RhdE5hbWU6IkxlZ2VuZENvbnRleHRNZW51In0scCxuKX0odGhpcy5fbW9kZWwsdGhpcy5fb3B0aW9ucy5jb250ZXh0TWVudSx0aGlzLl9jYWxsYmFja3Muc2hvd0dlbmVyYWxDaGFydFByb3BlcnRpZXMsaSxlLHQpfQpvbkNvbGxhcHNlRGF0YVNvdXJjZXMoKXtjb25zdCBlPXRoaXMuX3Nob3dMZWdlbmRPcmlnaW5hbFByb3BlcnR5KCk7ZS5zZXRWYWx1ZSghZS52YWx1ZSgpKX11cGRhdGVMYXlvdXQoKXtpZighdGhpcy5fcGFuZVdpZGdldC5oYXNTdGF0ZSgpKXJldHVybjtjb25zdCBlPXRoaXMuX3BhbmVXaWRnZXQuc3RhdGUoKS5zb3VyY2VzQnlHcm91cCgpLmxlZ2VuZFZpZXdTb3VyY2VzKCkuZmlsdGVyKChlPT5udWxsIT09ZS5zdGF0dXNWaWV3KCkmJmUuaXNEaXNwbGF5ZWRJbkxlZ2VuZCgpKSkucmV2ZXJzZSgpLHQ9dGhpcy5fc291cmNlc0lkcyxpPXRoaXMuX21vZGVsLm1haW5TZXJpZXMoKSxzPWUuaW5kZXhPZihpKTtsZXQgbztpZigtMSE9PXMpe2lmKGUuc3BsaWNlKHMsMSksIV9zJiZudWxsPT09dGhpcy5fbWFpblNlcmllc1ZpZXdNb2RlbCl7Y29uc3QgZT1uZXcgeHQodGhpcy5fbW9kZWwsaSx0aGlzLl9tYWluU2VyaWVzVmlld01vZGVsc09wdGlvbnMsdGhpcy5fY2FsbGJhY2tzLHRoaXMuX29wdGlvbnMuY29udGV4dE1lbnUpO3RoaXMuX21haW5TZXJpZXNWaWV3TW9kZWw9ZTtjb25zdCB0PW5ldyBWaS5NYWluRGF0YVNvdXJjZVN0YXR1c2VzV2lkZ2V0U3RhdGUodGhpcy5fc3RhdHVzU291cmNlQWRhcHRlcihpKSx0aGlzLl9tb2RlbCx0aGlzLl9vcHRpb25zLnN0YXR1c2VzV2lkZ2V0cyk7dGhpcy5fbWFpblNlcmllc1N0YXR1c2VzV2lkZ2V0U3RhdGU9dCxvPXttb2RlbDplLHN0YXR1c2VzV2lkZ2V0U3RhdGU6dH19fWVsc2UgbnVsbCE9PXRoaXMuX21haW5TZXJpZXNWaWV3TW9kZWwmJihvPW51bGwsdGhpcy5fZGVzdHJveU1haW5EYXRhU291cmNlKCksdGhpcy5fZGVzdHJveUN1c3RvbVdpZGdldEZyb21MYXllckJsb2NrKDApKTtjb25zdCBhPWUubWFwKChlPT5lLmluc3RhbmNlSWQoKSkpO3RoaXMuX3NvdXJjZXNJZHM9YTtjb25zdCBsPVtdLHI9bmV3IE1hcCxkPVtdLHU9W10sYz10aGlzLl9kYXRhU291cmNlVmlld01vZGVscyxoPXRoaXMuX2RhdGFTb3VyY2VTdGF0dXNlc1dpZGdldFN0YXRlcztsZXQgcD10Lmxlbmd0aC0xO2Zvcig7cD49MDspe2NvbnN0IGU9dFtwXSxpPWEuaW5kZXhPZihlKTtpZigtMT09PWkpe2wucHVzaChwKSxjW3BdLmRlc3Ryb3koKSxoW3BdLmRlc3Ryb3koKTtjb25zdCB0PXRoaXMuX3N0YXR1c1Byb3ZpZGVycy5nZXQoZSk7dCYmKHQuZGVzdHJveSgpLHRoaXMuX3N0YXR1c1Byb3ZpZGVycy5kZWxldGUoZSkpfWVsc2UgcCE9PWkmJihyLnNldChlLHttb2RlbDpjW3BdLHN0YXR1c2VzV2lkZ2V0U3RhdGU6aFtwXX0pLGQucHVzaCh7b2xkSW5kZXg6cCxuZXdJbmRleDppfSkpO3AtLX1jb25zdCBfPVtdLGc9W107Zm9yKGxldCBpPTA7aTxhLmxlbmd0aDtpKyspe2NvbnN0IHM9YVtpXTtsZXQgbyxsO2lmKHIuaGFzKHMpKXtjb25zdCBlPSgwLG4uZW5zdXJlRGVmaW5lZCkoci5nZXQocykpO289ZS5tb2RlbCxsPWUuc3RhdHVzZXNXaWRnZXRTdGF0ZX1lbHNlIGlmKHRbaV09PT1zKW89Y1tpXSxsPWhbaV07ZWxzZXtjb25zdCB0PWVbaV07bz1uZXcgdGkodGhpcy5fbW9kZWwsdCx0aGlzLl9kYXRhU291cmNlVmlld01vZGVsc09wdGlvbnMsdGhpcy5fY2FsbGJhY2tzLHRoaXMuX29wdGlvbnMuY29udGV4dE1lbnUpLGw9bmV3IGtpLkRhdGFTb3VyY2VTdGF0dXNlc1dpZGdldFN0YXRlKHRoaXMuX3N0YXR1c1NvdXJjZUFkYXB0ZXIodCksdGhpcy5fbW9kZWwsdGhpcy5fb3B0aW9ucy5zdGF0dXNlc1dpZGdldHMpLHUucHVzaCh7bW9kZWw6byxzdGF0dXNlc1dpZGdldFN0YXRlOmwsaW5kZXg6aX0pfV8ucHVzaChvKSxnLnB1c2gobCl9dGhpcy5fZGF0YVNvdXJjZVZpZXdNb2RlbHM9Xyx0aGlzLl9kYXRhU291cmNlU3RhdHVzZXNXaWRnZXRTdGF0ZXM9ZywwPT09dGhpcy5fZGF0YVNvdXJjZVZpZXdNb2RlbHMubGVuZ3RoJiZ0aGlzLl9kZXN0cm95Q3VzdG9tV2lkZ2V0RnJvbUxheWVyQmxvY2soMSksdGhpcy5fZGF0YVNvdXJjZVZpZXdNb2RlbHMubGVuZ3RoJiZ0aGlzLl9yZWNhbGN1bGF0ZUxvYWRpbmdEYXRhU291cmNlcygpLHRoaXMuX3JlY3JlYXRlU3Vic2NyaXB0aW9ucygpLHRoaXMuX2lzUGFuZU1haW4uc2V0VmFsdWUodGhpcy5fZ2V0SXNQYW5lTWFpblZhbHVlKCkpLHRoaXMudXBkYXRlKCk7Y29uc3QgbT1sLmxlbmd0aHx8dS5sZW5ndGh8fGQubGVuZ3RoO2lmKCh2b2lkIDAhPT1vfHxtKSYmdGhpcy5fbGF5b3V0Q2hhbmdlZC5maXJlKHtuZXdNYWluU291cmNlOm8scmVtb3ZlZERhdGFTb3VyY2VzOmwsYWRkZWREYXRhU291cmNlczp1LG1vdmVkRGF0YVNvdXJjZXM6ZH0pLC0xIT09cyYmdGhpcy5fYWRkQ3VzdG9tV2lkZ2V0Rm9yTGF5ZXJCbG9jaygwKSx0aGlzLl9kYXRhU291cmNlVmlld01vZGVscy5sZW5ndGg+MCYmdGhpcy5fYWRkQ3VzdG9tV2lkZ2V0Rm9yTGF5ZXJCbG9jaygxKSx0aGlzLl91cGRhdGVXaWRnZXRNb2RlQnlTaXplKCksbSl7dGhpcy5fdXBkYXRlQ29sbGFwc2VkU291cmNlc01vZGUoKSx0aGlzLl90b2dnbGVkU3RhdHVzZXNXaWRnZXRTdGF0ZS5jbGVhcigpO2Zvcihjb25zdCBlIG9mIHRoaXMuX2RhdGFTb3VyY2VTdGF0dXNlc1dpZGdldFN0YXRlcyl0aGlzLl90b2dnbGVkU3RhdHVzZXNXaWRnZXRTdGF0ZS5hZGRTdGF0dXNXaWRnZXQoZSl9fXVwZGF0ZSgpe251bGwhPT10aGlzLl9tYWluU2VyaWVzVmlld01vZGVsJiZ0aGlzLl9tYWluU2VyaWVzVmlld01vZGVsLnVwZGF0ZSgpO2Zvcihjb25zdCBlIG9mIHRoaXMuX2RhdGFTb3VyY2VWaWV3TW9kZWxzKWUudXBkYXRlKCl9dXBkYXRlVGhlbWVkQ29sb3JzKGUpe251bGw9PT1lJiYoZT0oMCxkcy5nZXRTdGRUaGVtZWRWYWx1ZSkoImNoYXJ0UHJvcGVydGllcy5wYW5lUHJvcGVydGllcy5iYWNrZ3JvdW5kIix0aGlzLl9iYWNrZ3JvdW5kVGhlbWVOYW1lLnZhbHVlKCkpKSx0aGlzLl90aGVtZWRDb2xvci5zZXRWYWx1ZShlfHwiIil9Zmlyc3RUaXRsZSgpe3JldHVybiB0aGlzLl9yZW5kZXJlci5maXJzdFRpdGxlKCl9Z2V0RWxlbWVudCgpe3JldHVybiB0aGlzLl9yZW5kZXJlci5nZXRFbGVtZW50KCl9YWRkTWFyZ2luKGUpe2lmKHRoaXMuX21hcmdpbj09PWUpcmV0dXJuO3RoaXMuX21hcmdpbj1lCjt0aGlzLl9yZW5kZXJlci5nZXRFbGVtZW50KCkuc3R5bGUubWF4V2lkdGg9MD09PXRoaXMuX21hcmdpbj8iIjpgY2FsYygxMDAlIC0gJHt0aGlzLl9tYXJnaW4rbXN9cHgpYCx0aGlzLl91cGRhdGVXaWRnZXRNb2RlQnlTaXplKCl9dXBkYXRlV2lkZ2V0TW9kZUJ5U2l6ZShlKXt0aGlzLl9zaXplPWUsdGhpcy5fdXBkYXRlV2lkZ2V0TW9kZUJ5U2l6ZSgpfV9zdGF0dXNTb3VyY2VBZGFwdGVyKGUpe2NvbnN0IHQ9ZS5pbnN0YW5jZUlkKCk7bGV0IGk9dGhpcy5fc3RhdHVzUHJvdmlkZXJzLmdldCh0KTtyZXR1cm4gdm9pZCAwPT09aSYmKGk9ZSE9PXRoaXMuX21vZGVsLm1haW5TZXJpZXMoKT9uZXcgQWkuQ2hhcnRNb2RlbFN0YXR1c1NvdXJjZUFkYXB0ZXIoZSx0aGlzLl9tb2RlbC5tb2RlbCgpKTpuZXcgQWkuQ2hhcnRNb2RlbE1haW5TZXJpZXNTdGF0dXNTb3VyY2VBZGFwdGVyKHRoaXMuX21vZGVsLm1haW5TZXJpZXMoKSx0aGlzLl9tb2RlbC5tb2RlbCgpKSx0aGlzLl9zdGF0dXNQcm92aWRlcnMuc2V0KHQsaSkpLGl9X3VwZGF0ZVdpZGdldE1vZGVCeVNpemUoKXt0aGlzLl91cGRhdGVXaWRnZXRNb2RlQnlXaWR0aCgpLHRoaXMuX3VwZGF0ZVdpZGdldE1vZGVCeUhlaWdodCgpLHRoaXMuX3VwZGF0ZUN1c3RvbVdpZGdldE1vZGVCeVNpemUoKX1fdXBkYXRlV2lkZ2V0TW9kZUJ5V2lkdGgoKXtpZihudWxsPT09dGhpcy5fc2l6ZSlyZXR1cm47Y29uc3QgZT10aGlzLl9hdmFpbGFibGVXaWR0aCgpO3RoaXMuX3JlbmRlcmVyLnVwZGF0ZU1vZGUoZSksdGhpcy5fcGFuZVdpZGdldC5oYXNTdGF0ZSgpJiZ0aGlzLl9wYW5lV2lkZ2V0LnN0YXRlKCkuY29udGFpbnNNYWluU2VyaWVzKCkmJnRoaXMuX21vZGVsLm1haW5TZXJpZXMoKS5zZXRUZXh0U291cmNlSXNBbHdheXNUaWNrZXJSZXN0cmljdGlvbkVuYWJsZWQoZTw9MTMyKX1fdXBkYXRlV2lkZ2V0TW9kZUJ5SGVpZ2h0KCl7bnVsbCE9PXRoaXMuX3NpemUmJih0aGlzLl9hdmFpbGFibGVIZWlnaHQ9LjgqdGhpcy5fc2l6ZS5oZWlnaHQsdGhpcy5fdXBkYXRlQ29sbGFwc2VkU291cmNlc01vZGVUaHJvdHRsZSgpKX1fdXBkYXRlQ3VzdG9tV2lkZ2V0TW9kZUJ5U2l6ZSgpe2lmKG51bGw9PT10aGlzLl9zaXplKXJldHVybjtjb25zdCBlPSgwLHMuc2l6ZSkoe3dpZHRoOnRoaXMuX2F2YWlsYWJsZVdpZHRoKCksaGVpZ2h0OnRoaXMuX3NpemUuaGVpZ2h0fSk7Zm9yKGNvbnN0IHQgb2YgQXJyYXkuZnJvbSh0aGlzLl9jdXN0b21MZWdlbmRXaWRnZXRzTWFwLnZhbHVlcygpKSlmb3IoY29uc3QgaSBvZiBBcnJheS5mcm9tKHQudmFsdWVzKCkpKWZvcihjb25zdCB0IG9mIGkpdC51cGRhdGVXaWRnZXRNb2RlQnlTaXplKGUpfV9kZXN0cm95TWFpbkRhdGFTb3VyY2UoKXsoMCxuLmVuc3VyZU5vdE51bGwpKHRoaXMuX21haW5TZXJpZXNTdGF0dXNlc1dpZGdldFN0YXRlKS5kZXN0cm95KCksdGhpcy5fbWFpblNlcmllc1N0YXR1c2VzV2lkZ2V0U3RhdGU9bnVsbDsoMCxuLmVuc3VyZU5vdE51bGwpKHRoaXMuX21haW5TZXJpZXNWaWV3TW9kZWwpLmRlc3Ryb3koKSx0aGlzLl9tYWluU2VyaWVzVmlld01vZGVsPW51bGx9X3VwZGF0ZUNvbGxhcHNlZFNvdXJjZXNNb2RlKCl7Y29uc3QgZT10aGlzLl9kYXRhU291cmNlVmlld01vZGVscy5sZW5ndGgsdD10aGlzLl9oaWRlQWxsRXhjZXB0Rmlyc3RMaW5lLnZhbHVlKCksaT1udWxsIT09dGhpcy5fbWFpblNlcmllc1ZpZXdNb2RlbDtpZih0aGlzLl9jb2xsYXBzZWRTdGF0dXNlc1dpZGdldFN0YXRlLmNsZWFyKCksdGhpcy5fYXZhaWxhYmxlSGVpZ2h0PjAmJmU+Mil7Y29uc3Qgcz1OdW1iZXIodGhpcy5fcmVuZGVyZXIuZ2V0TWFpblNvdXJjZUhlaWdodCgpKSxvPXRoaXMuX3JlbmRlcmVyLmdldERhdGFTb3VyY2VIZWlnaHQoKSxuPXRoaXMuX2dldEN1c3RvbVdpZGdldHNIZWlnaHQoKTtpZihudWxsIT09byl7Y29uc3QgYT1NYXRoLmZsb29yKCh0aGlzLl9hdmFpbGFibGVIZWlnaHQtcy1uKS9vKSxsPU1hdGgubWF4KGEsMiktMTtpZihlPmwrMSl7bGV0IHM9IiI7Zm9yKGxldCBvPTA7bzxlO28rKyl7Y29uc3QgZT1vPGw7dGhpcy5fZGF0YVNvdXJjZVZpZXdNb2RlbHNbb10uc2V0R2xvYmFsVmlzaWJpbGl0eShlJiYoIXR8fDA9PT1vJiYhaSkpLGV8fChzKz1gJHswPT09cy5sZW5ndGg/IiI6IiwgIn0ke3RoaXMuX2RhdGFTb3VyY2VWaWV3TW9kZWxzW29dLmdldEZ1bGxUaXRsZSgpfWAsdGhpcy5fY29sbGFwc2VkU3RhdHVzZXNXaWRnZXRTdGF0ZS5hZGRTdGF0dXNXaWRnZXQodGhpcy5fZGF0YVNvdXJjZVN0YXR1c2VzV2lkZ2V0U3RhdGVzW29dKSl9cmV0dXJuIHRoaXMuX2NvbGxhcHNlZERhdGFTb3VyY2VzVGl0bGUuc2V0VmFsdWUocyksdm9pZCB0aGlzLl9jb2xsYXBzZWREYXRhU291cmNlc0NvdW50LnNldFZhbHVlKGUtbCl9fX1mb3IobGV0IGU9MDtlPHRoaXMuX2RhdGFTb3VyY2VWaWV3TW9kZWxzLmxlbmd0aDsrK2UpdGhpcy5fZGF0YVNvdXJjZVZpZXdNb2RlbHNbZV0uc2V0R2xvYmFsVmlzaWJpbGl0eSghdHx8MD09PWUmJiFpKTt0aGlzLl9jb2xsYXBzZWREYXRhU291cmNlc0NvdW50LnNldFZhbHVlKDApLHRoaXMuX2NvbGxhcHNlZERhdGFTb3VyY2VzVGl0bGUuc2V0VmFsdWUoIiIpfV9nZXRDdXN0b21XaWRnZXRzSGVpZ2h0KCl7bGV0IGU9MDtmb3IoY29uc3QgdCBvZiBBcnJheS5mcm9tKHRoaXMuX2N1c3RvbUxlZ2VuZFdpZGdldHNNYXAudmFsdWVzKCkpKWZvcihjb25zdCBpIG9mIEFycmF5LmZyb20odC52YWx1ZXMoKSkpZm9yKGNvbnN0IHQgb2YgaSllKz10LmhlaWdodCgpLnZhbHVlKCk7cmV0dXJuIGV9X2dldEN1c3RvbVRleHRDb2xvclZhbHVlKCl7Y29uc3QgZT10aGlzLl9tb2RlbC5tb2RlbCgpLnByb3BlcnRpZXMoKS5jaGlsZHMoKS5zY2FsZXNQcm9wZXJ0aWVzLmNoaWxkcygpLnRleHRDb2xvci52YWx1ZSgpO2Zvcihjb25zdCB0IG9mKDAsZHMuZ2V0U3RkVGhlbWVOYW1lcykoKSlpZigoMCxkcy5pc1N0ZFRoZW1lZERlZmF1bHRWYWx1ZSkoImNoYXJ0UHJvcGVydGllcy5zY2FsZXNQcm9wZXJ0aWVzLnRleHRDb2xvciIsZSx0KSlyZXR1cm4gbnVsbDtyZXR1cm4gZX1fY2xlYXJTdWJzY3JpcHRpb25zKCl7Cm51bGwhPT10aGlzLl9tYWluU2VyaWVzUm93SGlkZGVuJiYodGhpcy5fbWFpblNlcmllc1Jvd0hpZGRlbi5kZXN0cm95KCksdGhpcy5fbWFpblNlcmllc1Jvd0hpZGRlbj1udWxsKTtmb3IoY29uc3QgZSBvZiB0aGlzLl9kYXRhU291cmNlUm93c0hpZGRlbillLmRlc3Ryb3koKTt0aGlzLl9kYXRhU291cmNlUm93c0hpZGRlbj1bXTtmb3IoY29uc3QgZSBvZiB0aGlzLl9jdXN0b21XaWRnZXRzVmlzaWJpbGl0aWVzKWUuZGVzdHJveSgpO3RoaXMuX2N1c3RvbVdpZGdldHNWaXNpYmlsaXRpZXM9W107Zm9yKGNvbnN0IGUgb2YgdGhpcy5fY3VzdG9tV2lkZ2V0c0hlaWdodHMpZS5kZXN0cm95KCk7dGhpcy5fY3VzdG9tV2lkZ2V0c0hlaWdodHM9W119X3JlY3JlYXRlU3Vic2NyaXB0aW9ucygpe3RoaXMuX2NsZWFyU3Vic2NyaXB0aW9ucygpLG51bGwhPT10aGlzLl9tYWluU2VyaWVzVmlld01vZGVsJiYodGhpcy5fbWFpblNlcmllc1Jvd0hpZGRlbj10aGlzLl9tYWluU2VyaWVzVmlld01vZGVsLmlzUm93SGlkZGVuKCkuc3Bhd24oKSx0aGlzLl9tYWluU2VyaWVzUm93SGlkZGVuLnN1YnNjcmliZSh0aGlzLl91cGRhdGVMZWdlbmRWaXNpYmlsaXRpZXMuYmluZCh0aGlzKSkpO2Zvcihjb25zdCBlIG9mIHRoaXMuX2RhdGFTb3VyY2VWaWV3TW9kZWxzKXtjb25zdCB0PWUuaXNSb3dIaWRkZW4oKS5zcGF3bigpO3RoaXMuX2RhdGFTb3VyY2VSb3dzSGlkZGVuLnB1c2godCksdC5zdWJzY3JpYmUodGhpcy5fdXBkYXRlVmlzaWJsZURhdGFTb3VyY2VDb3VudC5iaW5kKHRoaXMpKSx0LnN1YnNjcmliZSh0aGlzLl91cGRhdGVMZWdlbmRWaXNpYmlsaXRpZXMuYmluZCh0aGlzKSl9Zm9yKGNvbnN0IGUgb2YgQXJyYXkuZnJvbSh0aGlzLl9jdXN0b21MZWdlbmRXaWRnZXRzTWFwLnZhbHVlcygpKSlmb3IoY29uc3QgdCBvZiBBcnJheS5mcm9tKGUudmFsdWVzKCkpKWZvcihjb25zdCBlIG9mIHQpe2NvbnN0IHQ9ZS52aXNpYmlsaXR5KCkuc3Bhd24oKTt0aGlzLl9jdXN0b21XaWRnZXRzVmlzaWJpbGl0aWVzLnB1c2godCksdC5zdWJzY3JpYmUodGhpcy5fdXBkYXRlTGVnZW5kVmlzaWJpbGl0aWVzLmJpbmQodGhpcykpO2NvbnN0IGk9ZS5oZWlnaHQoKS5zcGF3bigpO3RoaXMuX2N1c3RvbVdpZGdldHNIZWlnaHRzLnB1c2goaSksaS5zdWJzY3JpYmUodGhpcy5fdXBkYXRlQ29sbGFwc2VkU291cmNlc01vZGUuYmluZCh0aGlzKSl9dGhpcy5fdXBkYXRlVmlzaWJsZURhdGFTb3VyY2VDb3VudCgpLHRoaXMuX3VwZGF0ZUxlZ2VuZFZpc2liaWxpdGllcygpfV9yZWNhbGN1bGF0ZUxvYWRpbmdEYXRhU291cmNlcygpe3RoaXMuX2RhdGFTb3VyY2VzTG9hZGluZ1N0YXR1c2VzLnNldFZhbHVlKHRoaXMuX2RhdGFTb3VyY2VWaWV3TW9kZWxzLm1hcCgoZT0+ZS5sb2FkaW5nKCkud2Vha1JlZmVyZW5jZSgpKSkpfV91cGRhdGVMZWdlbmRWaXNpYmlsaXRpZXMoKXtpZih0aGlzLl9oaWRlV2hvbGVMZWdlbmQudmFsdWUoKSlyZXR1cm4gdm9pZCB0aGlzLl9hbGxMZWdlbmRIaWRkZW4uc2V0VmFsdWUoITApO2NvbnN0IGU9MCE9PXRoaXMuX2RhdGFTb3VyY2VSb3dzSGlkZGVuLmxlbmd0aCYmdGhpcy5fZGF0YVNvdXJjZVJvd3NIaWRkZW4uZXZlcnkoKGU9PmUudmFsdWUoKSkpLHQ9dGhpcy5faGlkZU5vdE1haW5Tb3VyY2VzLnZhbHVlKCl8fGU7dGhpcy5fc3R1ZGllc0xlZ2VuZEhpZGRlbi5zZXRWYWx1ZSh0KTtjb25zdCBpPW51bGw9PT10aGlzLl9tYWluU2VyaWVzUm93SGlkZGVufHx0aGlzLl9tYWluU2VyaWVzUm93SGlkZGVuLnZhbHVlKCkscz10aGlzLl9jdXN0b21XaWRnZXRzVmlzaWJpbGl0aWVzLnNvbWUoKGU9PmUudmFsdWUoKSkpO3RoaXMuX2FsbExlZ2VuZEhpZGRlbi5zZXRWYWx1ZShlJiZpJiYhcyl9X3VwZGF0ZVZpc2libGVEYXRhU291cmNlQ291bnQoKXtjb25zdCBlPXRoaXMuX2RhdGFTb3VyY2VSb3dzSGlkZGVuLmZpbHRlcigoZT0+IWUudmFsdWUoKSkpLmxlbmd0aDt0aGlzLl92aXNpYmxlRGF0YVNvdXJjZUNvdW50LnNldFZhbHVlKGUpfV9zZXRMZWdlbmRWaXNpYmlsaXR5VG9nZ2xlZCgpe3JzLnNldFZhbHVlKCJsZWdlbmQuaXNWaXNpYmlsaXR5VG9nZ2xlZCIsITApO3RoaXMuX3Nob3dMZWdlbmRPcmlnaW5hbFByb3BlcnR5KCkudW5zdWJzY3JpYmUodGhpcywoMCxuLmVuc3VyZU5vdE51bGwpKHRoaXMuX29uTGVnZW5kVmlzaWJpbGl0eVRvZ2dsZWQpKX1fZ2V0SXNQYW5lTWFpblZhbHVlKCl7cmV0dXJuIHRoaXMuX3BhbmVXaWRnZXQuY29udGFpbnNNYWluU2VyaWVzKCl9X3Nob3dMZWdlbmRDYWxjdWxhdGVkUHJvcGVydHkoKXtyZXR1cm4gdGhpcy5fbW9kZWwubW9kZWwoKS5zaG93TGVnZW5kKCl9X3Nob3dMZWdlbmRPcmlnaW5hbFByb3BlcnR5KCl7cmV0dXJuIHRoaXMuX21vZGVsLm1vZGVsKCkucHJvcGVydGllcygpLmNoaWxkcygpLnBhbmVQcm9wZXJ0aWVzLmNoaWxkcygpLmxlZ2VuZFByb3BlcnRpZXMuY2hpbGRzKCkuc2hvd0xlZ2VuZH1fYWRkQ3VzdG9tV2lkZ2V0Rm9yTGF5ZXJCbG9jayhlKXtjb25zdCB0PXRoaXMuX2N1c3RvbUxlZ2VuZFdpZGdldHNGYWN0b3JpZXNNYXAuZ2V0KGUpO2lmKHZvaWQgMD09PXQpcmV0dXJuO2NvbnN0IGk9dGhpcy5fY3VzdG9tTGVnZW5kV2lkZ2V0c01hcC5nZXQoZSl8fG5ldyBNYXA7bGV0IHM9ITE7Zm9yKGNvbnN0IG8gb2YgQXJyYXkuZnJvbSh0LmtleXMoKSkpe2NvbnN0IG49aS5nZXQobyl8fFtdLGE9dC5nZXQobyl8fFtdO2ZvcihsZXQgdD1uLmxlbmd0aDt0PGEubGVuZ3RoO3QrKyl7Y29uc3QgaT1hW3RdKHRoaXMuX21vZGVsLm1vZGVsKCksdGhpcy5fYmFja2dyb3VuZFRoZW1lTmFtZS5zcGF3bk93bmVyc2hpcCgpLHRoaXMuX2hpZGVBbGxFeGNlcHRGaXJzdExpbmUud2Vha1JlZmVyZW5jZSgpKTtuLnB1c2goaSksdGhpcy5fcmVuZGVyZXIuYWRkQ3VzdG9tV2lkZ2V0KGkse2Jsb2NrOmUscG9zaXRpb246b30pLHM9ITB9cyYmaS5zZXQobyxuKX1zJiZ0aGlzLl9jdXN0b21MZWdlbmRXaWRnZXRzTWFwLnNldChlLGkpfV9kZXN0cm95Q3VzdG9tV2lkZ2V0RnJvbUxheWVyQmxvY2soZSl7Y29uc3QgdD10aGlzLl9jdXN0b21MZWdlbmRXaWRnZXRzTWFwLmdldChlKQo7aWYodm9pZCAwIT09dCl7Zm9yKGNvbnN0IGUgb2YgQXJyYXkuZnJvbSh0LnZhbHVlcygpKSlmb3IoY29uc3QgdCBvZiBlKXQuZGVzdHJveSgpO3QuY2xlYXIoKSx0aGlzLl9jdXN0b21MZWdlbmRXaWRnZXRzTWFwLmRlbGV0ZShlKX19X2F2YWlsYWJsZVdpZHRoKCl7cmV0dXJuIG51bGw9PT10aGlzLl9zaXplPzA6TWF0aC5tYXgoMCx0aGlzLl9zaXplLndpZHRoLXRoaXMuX21hcmdpbi1tcyl9fX0sMjk3NzA3KGUsdCxpKXsidXNlIHN0cmljdCI7aS5kKHQse1BhbmVDb250cm9sc1dpZGdldDooKT0+JH0pO3ZhciBzLG89aSgzODY5MzEpLG49aSgxODUyNzEpLGE9aSgyMzU3MjQpLGw9aSgyMzIzNjQpLHI9aSg5NTI5MDApLGQ9aSgyNTUwMzYpLHU9aSg5NTY0MzcpLGM9aSgxMzg2MzgpLGg9aSgxMzQ2NykscD1pKDk1NjM2OCksXz1pKDM2MzI2OSksZz1pKDgwMDIyNiksbT1pKDQyNjI3NCksYj1pKDc3MjAyOCk7IWZ1bmN0aW9uKGUpe2VbZS5Db250ZXh0TWVudU1vZGVXaWR0aFB0PTY2Ni42NV09IkNvbnRleHRNZW51TW9kZVdpZHRoUHQiLGVbZS5WaXNpYmxlTW9kZU1pbldpZHRoPTM1Nl09IlZpc2libGVNb2RlTWluV2lkdGgifShzfHwocz17fSkpO2NsYXNzIHZ7Y29uc3RydWN0b3IoZSx0LGkpe3RoaXMuX3BhcmVudEVsPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLHRoaXMuX2xpc3RBY3Rpb25zV3JhcHBlckVsPW51bGwsdGhpcy5fbGlzdEFjdGlvbnNFbGVtZW50cz17fSx0aGlzLl9hY3Rpb25zU3Bhd25zPXt9LHRoaXMuX29uTW91c2VFbnRlckxlYXZlRXZlbnRIYW5kbGVyPW51bGwsdGhpcy5fbW91c2VPdmVyV2lkZ2V0PSExLHRoaXMuX3dyYXBFbD1lLHRoaXMuX29uTW91c2VFbnRlckxlYXZlRXZlbnRIYW5kbGVyPXRoaXMuX29uTW91c2VFbnRlckxlYXZlRXZlbnQuYmluZCh0aGlzKSx0aGlzLl93cmFwRWwuYWRkRXZlbnRMaXN0ZW5lcigibW91c2VlbnRlciIsdGhpcy5fb25Nb3VzZUVudGVyTGVhdmVFdmVudEhhbmRsZXIpLHRoaXMuX3dyYXBFbC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWxlYXZlIix0aGlzLl9vbk1vdXNlRW50ZXJMZWF2ZUV2ZW50SGFuZGxlciksdGhpcy5fYWN0aW9ucz10LHRoaXMuX2dsb2JhbFZpc2liaWxpdHk9aS5nbG9iYWxWaXNpYmlsaXR5LnNwYXduKCksdGhpcy5fZ2xvYmFsVmlzaWJpbGl0eS5zdWJzY3JpYmUodGhpcy5fdXBkYXRlUGFuZUNvbnRyb2xzV2lkZ2V0VmlzaWJpbGl0eS5iaW5kKHRoaXMpKSx0aGlzLl92aXNpYmlsaXR5VHlwZT1pLnZpc2liaWxpdHlUeXBlLnNwYXduKCksdGhpcy5fdmlzaWJpbGl0eVR5cGUuc3Vic2NyaWJlKHRoaXMuX3VwZGF0ZVBhbmVDb250cm9sc1dpZGdldFZpc2liaWxpdHkuYmluZCh0aGlzKSksdGhpcy5fc2VwYXJhdG9yU2VsZWN0ZWQ9aS5zZXBhcmF0b3JTZWxlY3RlZC5zcGF3bigpLHRoaXMuX3NlcGFyYXRvclNlbGVjdGVkLnN1YnNjcmliZSh0aGlzLl91cGRhdGVQYW5lQ29udHJvbHNXaWRnZXRWaXNpYmlsaXR5LmJpbmQodGhpcykpLHRoaXMuX21heGltaXplZD1pLm1heGltaXplZC5zcGF3bigpLHRoaXMuX21heGltaXplZC5zdWJzY3JpYmUodGhpcy5fdXBkYXRlUGFuZUNvbnRyb2xzV2lkZ2V0VmlzaWJpbGl0eS5iaW5kKHRoaXMpKSx0aGlzLl9kb05vdFN3aXRjaFRvQ29udGV4dE1lbnVNb2RlPWkuZG9Ob3RTd2l0Y2hUb0NvbnRleHRNZW51TW9kZSx0aGlzLl90aGVtZWRDb2xvcj1pLnRoZW1lZENvbG9yLnNwYXduKCksdGhpcy5fdGhlbWVkQ29sb3Iuc3Vic2NyaWJlKHRoaXMuX3VwZGF0ZVRoZW1lZENvbG9yLmJpbmQodGhpcykpO2Zvcihjb25zdFtlLHRdb2YgT2JqZWN0LmVudHJpZXModGhpcy5fYWN0aW9ucykpe2NvbnN0IGk9ZTt0aGlzLl9hY3Rpb25zU3Bhd25zW2ldPXt2aXNpYmxlOnQudmlzaWJsZS5zcGF3bigpLHRpdGxlOnZvaWQgMD09PXQudGl0bGU/bnVsbDp0LnRpdGxlLnNwYXduKCl9LHRoaXMuX2FjdGlvbnNTcGF3bnNbaV0udmlzaWJsZS5zdWJzY3JpYmUodGhpcy5fdXBkYXRlQWN0aW9uVmlzaWJpbGl0aWVzLmJpbmQodGhpcyxpKSk7Y29uc3Qgcz10aGlzLl9hY3Rpb25zU3Bhd25zW2ldLnRpdGxlO251bGwhPT1zJiZzLnN1YnNjcmliZSh0aGlzLl91cGRhdGVBY3Rpb25UaXRsZS5iaW5kKHRoaXMsaSkpfXRoaXMuX3JlbmRlcigpLHRoaXMuX3VwZGF0ZVBhbmVDb250cm9sc1dpZGdldFZpc2liaWxpdHkoKSx0aGlzLl91cGRhdGVUaGVtZWRDb2xvcih0aGlzLl90aGVtZWRDb2xvci52YWx1ZSgpKSx0aGlzLl9wYXJlbnRFbC5jbGFzc0xpc3QudG9nZ2xlKG0udG91Y2hNb2RlLGcudHJhY2tpbmdNb2RlSXNBdmFpbGFibGUpLHRoaXMuX3BhcmVudEVsLmFkZEV2ZW50TGlzdGVuZXIoImNvbnRleHRtZW51IiwoZT0+ZS5wcmV2ZW50RGVmYXVsdCgpKSksdGhpcy5fcGFyZW50RWwuc2V0QXR0cmlidXRlKCJhcmlhLWhpZGRlbiIsInRydWUiKSx0aGlzLl93cmFwRWwubWF0Y2hlcygiOmhvdmVyIikmJnRoaXMuX29uTW91c2VFbnRlckxlYXZlRXZlbnQoe3R5cGU6Im1vdXNlZW50ZXIifSl9ZGVzdHJveSgpe3RoaXMuX3Zpc2liaWxpdHlUeXBlLmRlc3Ryb3koKSx0aGlzLl90aGVtZWRDb2xvci5kZXN0cm95KCksdGhpcy5fc2VwYXJhdG9yU2VsZWN0ZWQuZGVzdHJveSgpO2Zvcihjb25zdCBlIG9mIE9iamVjdC5rZXlzKHRoaXMuX2FjdGlvbnNTcGF3bnMpKXtjb25zdCB0PWU7dGhpcy5fYWN0aW9uc1NwYXduc1t0XS52aXNpYmxlLmRlc3Ryb3koKTtjb25zdCBpPXRoaXMuX2FjdGlvbnNTcGF3bnNbdF0udGl0bGU7bnVsbCE9PWkmJmkuZGVzdHJveSgpfW51bGwhPT10aGlzLl9vbk1vdXNlRW50ZXJMZWF2ZUV2ZW50SGFuZGxlciYmKHRoaXMuX3dyYXBFbC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZWVudGVyIix0aGlzLl9vbk1vdXNlRW50ZXJMZWF2ZUV2ZW50SGFuZGxlciksdGhpcy5fd3JhcEVsLnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlbGVhdmUiLHRoaXMuX29uTW91c2VFbnRlckxlYXZlRXZlbnRIYW5kbGVyKSx0aGlzLl9vbk1vdXNlRW50ZXJMZWF2ZUV2ZW50SGFuZGxlcj1udWxsKSx0aGlzLl9wYXJlbnRFbC5yZW1vdmUoKSx0aGlzLl9wYXJlbnRFbC5pbm5lckhUTUw9IiIsCmRlbGV0ZSB0aGlzLl9wYXJlbnRFbH1nZXRFbGVtZW50KCl7cmV0dXJuIHRoaXMuX3BhcmVudEVsfWJvdHRvbVdpdGhNYXJnaW4oKXtjb25zdCBlPXRoaXMuX3BhcmVudEVsLmNsYXNzTGlzdC5jb250YWlucyhtLnRvdWNoTW9kZSk/TnVtYmVyKG0uY3NzX3ZhbHVlX3BhbmVfY29udHJvbHNfYnV0dG9uX3RvdWNoX3NpemUpOk51bWJlcihtLmNzc192YWx1ZV9wYW5lX2NvbnRyb2xzX2J1dHRvbl9zaXplKTtyZXR1cm4gMipOdW1iZXIobS5jc3NfdmFsdWVfcGFuZV9jb250cm9sc19tYXJnaW5fdG9wKStlfXVwZGF0ZVdpZGdldE1vZGVCeVdpZHRoKGUpe2NvbnN0IHQ9IXRoaXMuX2RvTm90U3dpdGNoVG9Db250ZXh0TWVudU1vZGUudmFsdWUoKSYmZTwzNTYsaT0hdGhpcy5fZG9Ob3RTd2l0Y2hUb0NvbnRleHRNZW51TW9kZS52YWx1ZSgpJiZlPDY2Ni42NSxzPSgwLGMuZW5zdXJlTm90TnVsbCkodGhpcy5fbGlzdEFjdGlvbnNXcmFwcGVyRWwpLG89KDAsYy5lbnN1cmVOb3ROdWxsKSh0aGlzLl9saXN0QWN0aW9uc0VsZW1lbnRzLm1vcmUpOygwLGMuZW5zdXJlTm90TnVsbCkodGhpcy5fcGFyZW50RWwpLmNsYXNzTGlzdC50b2dnbGUobS5wYW5lQ29udHJvbHNfcmVtb3ZlLHQpLHMuY2xhc3NMaXN0LnRvZ2dsZShiLmJsb2NrSGlkZGVuLGkpLG8uY2xhc3NMaXN0LnRvZ2dsZShiLmJsb2NrSGlkZGVuLCFpfHwhdGhpcy5fYWN0aW9ucy5tb3JlLnZpc2libGUudmFsdWUoKSl9X3JlbmRlcigpe3RoaXMuX3JlbmRlckFjdGlvbnMoKSx0aGlzLl9wYXJlbnRFbC5jbGFzc0xpc3QuYWRkKG0ucGFuZUNvbnRyb2xzKSx0aGlzLl93cmFwRWwuYXBwZW5kKHRoaXMuX3BhcmVudEVsKX1fcmVuZGVyQWN0aW9ucygpe251bGw9PT10aGlzLl9saXN0QWN0aW9uc1dyYXBwZXJFbCYmKHRoaXMuX2xpc3RBY3Rpb25zV3JhcHBlckVsPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLHRoaXMuX2xpc3RBY3Rpb25zV3JhcHBlckVsLmNsYXNzTGlzdC5hZGQobS5idXR0b25zKSx0aGlzLl9wYXJlbnRFbC5hcHBlbmQodGhpcy5fbGlzdEFjdGlvbnNXcmFwcGVyRWwpKTtjb25zdCBlPXt0YWc6ImRpdiIsYnV0dG9uQ2xhc3NOYW1lOm0uYnV0dG9uLHdyYXBJY29uQ2xhc3NOYW1lOm0uYnV0dG9uSWNvbixoaWRkZW5DbGFzc05hbWU6Yi5ibG9ja0hpZGRlbn07dGhpcy5fbGlzdEFjdGlvbnNFbGVtZW50cy51cD0oMCxwLmNyZWF0ZUFjdGlvbkVsZW1lbnQpKHRoaXMuX2FjdGlvbnMudXAsZSksdGhpcy5fbGlzdEFjdGlvbnNFbGVtZW50cy5kb3duPSgwLHAuY3JlYXRlQWN0aW9uRWxlbWVudCkodGhpcy5fYWN0aW9ucy5kb3duLGUpLHRoaXMuX2xpc3RBY3Rpb25zRWxlbWVudHMuY29sbGFwc2U9KDAscC5jcmVhdGVBY3Rpb25FbGVtZW50KSh0aGlzLl9hY3Rpb25zLmNvbGxhcHNlLGUpLHRoaXMuX2xpc3RBY3Rpb25zRWxlbWVudHMucmVzdG9yZT0oMCxwLmNyZWF0ZUFjdGlvbkVsZW1lbnQpKHRoaXMuX2FjdGlvbnMucmVzdG9yZSxlKSx0aGlzLl9saXN0QWN0aW9uc0VsZW1lbnRzLmNsb3NlPSgwLHAuY3JlYXRlQWN0aW9uRWxlbWVudCkodGhpcy5fYWN0aW9ucy5jbG9zZSxlKSx0aGlzLl9saXN0QWN0aW9uc0VsZW1lbnRzLm1heGltaXplPSgwLHAuY3JlYXRlQWN0aW9uRWxlbWVudCkodGhpcy5fYWN0aW9ucy5tYXhpbWl6ZSxlKSx0aGlzLl9saXN0QWN0aW9uc0VsZW1lbnRzLm1pbmltaXplPSgwLHAuY3JlYXRlQWN0aW9uRWxlbWVudCkodGhpcy5fYWN0aW9ucy5taW5pbWl6ZSxlKSx0aGlzLl9saXN0QWN0aW9uc0VsZW1lbnRzLnJlc3RvcmUuY2xhc3NMaXN0LmFkZChtLmJ1dHRvbl9hY3RpdmF0ZWQpLHRoaXMuX2xpc3RBY3Rpb25zRWxlbWVudHMubWluaW1pemUuY2xhc3NMaXN0LmFkZChtLmJ1dHRvbl9hY3RpdmF0ZWQpLHRoaXMuX2xpc3RBY3Rpb25zV3JhcHBlckVsLmFwcGVuZCh0aGlzLl9saXN0QWN0aW9uc0VsZW1lbnRzLnVwLHRoaXMuX2xpc3RBY3Rpb25zRWxlbWVudHMuZG93bix0aGlzLl9saXN0QWN0aW9uc0VsZW1lbnRzLmNsb3NlLHRoaXMuX2xpc3RBY3Rpb25zRWxlbWVudHMuY29sbGFwc2UsdGhpcy5fbGlzdEFjdGlvbnNFbGVtZW50cy5yZXN0b3JlLHRoaXMuX2xpc3RBY3Rpb25zRWxlbWVudHMubWF4aW1pemUsdGhpcy5fbGlzdEFjdGlvbnNFbGVtZW50cy5taW5pbWl6ZSksdGhpcy5fbGlzdEFjdGlvbnNFbGVtZW50cy5tb3JlPSgwLHAuY3JlYXRlQWN0aW9uRWxlbWVudCkodGhpcy5fYWN0aW9ucy5tb3JlLGUpLHRoaXMuX3BhcmVudEVsLmFwcGVuZCh0aGlzLl9saXN0QWN0aW9uc0VsZW1lbnRzLm1vcmUpfV91cGRhdGVBY3Rpb25WaXNpYmlsaXRpZXMoZSx0KXsoMCxjLmVuc3VyZU5vdE51bGwpKHRoaXMuX2xpc3RBY3Rpb25zRWxlbWVudHNbZV0pLmNsYXNzTGlzdC50b2dnbGUoYi5ibG9ja0hpZGRlbiwhdCl9X3VwZGF0ZUFjdGlvblRpdGxlKGUsdCl7KDAsYy5lbnN1cmVOb3ROdWxsKSh0aGlzLl9saXN0QWN0aW9uc0VsZW1lbnRzW2VdKS5zZXRBdHRyaWJ1dGUoInRpdGxlIix0KX1fb25Nb3VzZUVudGVyTGVhdmVFdmVudChlKXt0aGlzLl9tb3VzZU92ZXJXaWRnZXQ9Im1vdXNlZW50ZXIiPT09ZS50eXBlLCJ2aXNpYmxlT25Nb3VzZU92ZXIiPT09dGhpcy5fdmlzaWJpbGl0eVR5cGUudmFsdWUoKSYmdGhpcy5fdXBkYXRlUGFuZUNvbnRyb2xzV2lkZ2V0VmlzaWJpbGl0eSgpfV91cGRhdGVQYW5lQ29udHJvbHNXaWRnZXRWaXNpYmlsaXR5KCl7bGV0IGUsdD0hMTtzd2l0Y2godGhpcy5fdmlzaWJpbGl0eVR5cGUudmFsdWUoKSl7Y2FzZSJhbHdheXNPZmYiOmU9ITEsdD0hMDticmVhaztjYXNlImFsd2F5c09uIjplPXRoaXMuX2dsb2JhbFZpc2liaWxpdHkudmFsdWUoKTticmVhaztjYXNlInZpc2libGVPbk1vdXNlT3ZlciI6Y2FzZSJ2aXNpYmxlT25UYXBTZWxlY3Rpb24iOmU9dGhpcy5fZ2xvYmFsVmlzaWJpbGl0eS52YWx1ZSgpJiZ0aGlzLl9tb3VzZU92ZXJXaWRnZXR9dGhpcy5fc2VwYXJhdG9yU2VsZWN0ZWQudmFsdWUoKSYmInZpc2libGVPblRhcFNlbGVjdGlvbiI9PT10aGlzLl92aXNpYmlsaXR5VHlwZS52YWx1ZSgpJiYoZT0hMCksCnRoaXMuX21heGltaXplZC52YWx1ZSgpJiZfLm1vYmlsZXRvdWNoJiYoZT0hMCksdGhpcy5fcGFyZW50RWwuY2xhc3NMaXN0LnRvZ2dsZShtLnBhbmVDb250cm9sc19oaWRkZW4sIWUpLHRoaXMuX3BhcmVudEVsLmNsYXNzTGlzdC50b2dnbGUobS5wYW5lQ29udHJvbHNfZm9yY2VIaWRkZW4sIXRoaXMuX2dsb2JhbFZpc2liaWxpdHkudmFsdWUoKXx8dCl9X3VwZGF0ZVRoZW1lZENvbG9yKGUpe2lmKGUubGVuZ3RoPjApe2NvbnN0W3QsaSxzXT0oMCxoLnBhcnNlUmdiKShlKTt0aGlzLl9wYXJlbnRFbC5zdHlsZS5jb2xvcj0oMCxoLnJnYmFUb1N0cmluZykoW3QsaSxzLCgwLGgubm9ybWFsaXplQWxwaGFDb21wb25lbnQpKC44KV0pfWVsc2UgdGhpcy5fcGFyZW50RWwuc3R5bGUucmVtb3ZlUHJvcGVydHkoImNvbG9yIil9fXZhciBmPWkoNTA5MDQpLFM9aSgyNTA0MzkpLHk9aSg2MTczMDMpLHc9aSg5NjIwNzIpLEM9aSgxNzcyNTUpLEU9aSg1MzY1MzMpLHg9aSgzNzU3MCksTD1pKDI5NjE2Myk7Y29uc3QgTT1uLnQobnVsbCx2b2lkIDAsaSgxNDg4NjUpKSxUPU0sVj0oMCxhLmh1bWFuUmVhZGFibGVNb2RpZmllcnMpKGEuTW9kaWZpZXJzLk1vZCkrTTt2YXIgaz1pKDY2NTE4NyksQT1pKDM0NTE1MSksVz1pKDI4NDA3NSksST1pKDgxMjk0OCksQj1pKDQyMzY0MyksSD1pKDUzODA5KSxEPWkoNzUxNTExKSxQPWkoODcyODM4KSxOPWkoNjQ4OTUpO2NvbnN0IFI9bi50KG51bGwsdm9pZCAwLGkoODMxOTg4KSksTz1uLnQobnVsbCx2b2lkIDAsaSgzMDU4ODIpKSxGPW4udChudWxsLHZvaWQgMCxpKDgxNDA1OCkpLHo9bi50KG51bGwsdm9pZCAwLGkoNTUwNTU5KSksaj1uLnQobnVsbCx2b2lkIDAsaSgyNjA1NDkpKSxVPW4udChudWxsLHZvaWQgMCxpKDg5MDA5KSksRz1uLnQobnVsbCx2b2lkIDAsaSgxNTk0NDMpKSxaPW4udChudWxsLHZvaWQgMCxpKDE0ODg2NSkpO3ZhciBKOyFmdW5jdGlvbihlKXtlLlBhbmVDbG9zZUJ1dHRvbj0icGFuZS1idXR0b24tY2xvc2UiLGUuUGFuZVVwQnV0dG9uPSJwYW5lLWJ1dHRvbi11cCIsZS5QYW5lRG93bkJ1dHRvbj0icGFuZS1idXR0b24tZG93biIsZS5QYW5lTWF4aW1pemVCdXR0b249InBhbmUtYnV0dG9uLW1heGltaXplIixlLlBhbmVNaW5pbWl6ZUJ1dHRvbj0icGFuZS1idXR0b24tbWluaW1pemUiLGUuUGFuZUNvbGxhcHNlQnV0dG9uPSJwYW5lLWJ1dHRvbi1jb2xsYXBzZSIsZS5QYW5lUmVzdG9yZUJ1dHRvbj0icGFuZS1idXR0b24tcmVzdG9yZSIsZS5QYW5lTW9yZUJ1dHRvbj0icGFuZS1idXR0b24tbW9yZSJ9KEp8fChKPXt9KSk7Y29uc3QgWT0oMCxBLmhvdEtleVNlcmlhbGl6ZSkoe2tleXM6WyIiXSx0ZXh0Olp9KSxxPSgwLEEuaG90S2V5U2VyaWFsaXplKSh7a2V5czpbKDAsYS5odW1hblJlYWRhYmxlTW9kaWZpZXJzKShhLk1vZGlmaWVycy5Nb2QsITEpXSx0ZXh0OmB7MH0gKyAke1p9YH0pO2NsYXNzICR7Y29uc3RydWN0b3IoZSx0LGkscyl7dGhpcy5fYWN0aW9ucz17fSx0aGlzLl9tb3JlQ01TaG93bj0hMSx0aGlzLl90aGVtZWRDb2xvcj1uZXcgbC5XYXRjaGVkVmFsdWUoIiIpLHRoaXMuX21vZGVsPWUsdGhpcy5fcGFuZT10LHRoaXMuX2Nsb3NlQnV0dG9uVmlzaWJpbGl0eT1uZXcgbC5XYXRjaGVkVmFsdWUodGhpcy5fZ2V0Q2xvc2VCdXR0b25WaXNpYmlsaXR5KCkpLHRoaXMuX3VwQnV0dG9uVmlzaWJpbGl0eT1uZXcgbC5XYXRjaGVkVmFsdWUodGhpcy5fZ2V0VXBCdXR0b25WaXNpYmlsaXR5KCkpLHRoaXMuX2Rvd25CdXR0b25WaXNpYmlsaXR5PW5ldyBsLldhdGNoZWRWYWx1ZSh0aGlzLl9nZXREb3duQnV0dG9uVmlzaWJpbGl0eSgpKSx0aGlzLl9tYXhpbWl6ZUJ1dHRvblZpc2liaWxpdHk9bmV3IGwuV2F0Y2hlZFZhbHVlKHRoaXMuX2dldE1heGltaXplQnV0dG9uVmlzaWJpbGl0eSgpKSx0aGlzLl9taW5pbWl6ZUJ1dHRvblZpc2liaWxpdHk9bmV3IGwuV2F0Y2hlZFZhbHVlKHRoaXMuX2dldE1pbmltaXplQnV0dG9uVmlzaWJpbGl0eSgpKSx0aGlzLl9jb2xsYXBzZUJ1dHRvblZpc2liaWxpdHk9KDAsci5jb21iaW5lKSgoKGUsdCxpKT0+IWUmJiF0JiZpKSx0Lm1heGltaXplZCgpLndlYWtSZWZlcmVuY2UoKSx0LmNvbGxhcHNlZCgpLndlYWtSZWZlcmVuY2UoKSx0LmNvbGxhcHNpbmdBdmFpbGFibGUoKS53ZWFrUmVmZXJlbmNlKCkpLHRoaXMuX3Jlc3RvcmVCdXR0b25WaXNpYmlsaXR5PSgwLHIuY29tYmluZSkoKChlLHQpPT4hZSYmdCksdC5tYXhpbWl6ZWQoKS53ZWFrUmVmZXJlbmNlKCksdC5jb2xsYXBzZWQoKS53ZWFrUmVmZXJlbmNlKCkpLHRoaXMuX2NyZWF0ZUFjdGlvbnMoKSx0aGlzLl92aXNpYmlsaXR5VHlwZVByb3BlcnR5PSgwLGQuYWN0dWFsQmVoYXZpb3IpKCksdGhpcy5fdmlzaWJpbGl0eVR5cGVQcm9wZXJ0eS5zdWJzY3JpYmUodGhpcywoZT0+e3RoaXMuX3Zpc2liaWxpdHlUeXBlLnNldFZhbHVlKGUudmFsdWUoKSl9KSksdGhpcy5fdmlzaWJpbGl0eVR5cGU9bmV3IGwuV2F0Y2hlZFZhbHVlKHRoaXMuX3Zpc2liaWxpdHlUeXBlUHJvcGVydHkudmFsdWUoKSksdGhpcy5faXNQYW5lTWF4aW1pemU9bmV3IGwuV2F0Y2hlZFZhbHVlKHRoaXMuX2dldElzUGFuZU1heGltaXplVmFsdWUoKSksdGhpcy5faXNXaWRnZXRTaG93PW5ldyBsLldhdGNoZWRWYWx1ZSh0aGlzLl9nZXRJc1dpZGdldFNob3coKSksdGhpcy5fYmFja2dyb3VuZFRoZW1lTmFtZT1pLmJhY2tncm91bmRUaGVtZU5hbWUsdGhpcy5fcmVuZGVyZXI9bmV3IHYocyx0aGlzLl9hY3Rpb25zLHt2aXNpYmlsaXR5VHlwZTp0aGlzLl92aXNpYmlsaXR5VHlwZS5yZWFkb25seSgpLGdsb2JhbFZpc2liaWxpdHk6dGhpcy5faXNXaWRnZXRTaG93LnJlYWRvbmx5KCksZG9Ob3RTd2l0Y2hUb0NvbnRleHRNZW51TW9kZTp0aGlzLl9pc1BhbmVNYXhpbWl6ZS5yZWFkb25seSgpLHRoZW1lZENvbG9yOnRoaXMuX3RoZW1lZENvbG9yLnJlYWRvbmx5KCksc2VwYXJhdG9yU2VsZWN0ZWQ6aS5hbnlTZXBhcmF0b3JTZWxlY3RlZCxtYXhpbWl6ZWQ6dGhpcy5faXNQYW5lTWF4aW1pemUucmVhZG9ubHkoKX0pfWRlc3Ryb3koKXsKdGhpcy5fdmlzaWJpbGl0eVR5cGVQcm9wZXJ0eS51bnN1YnNjcmliZUFsbCh0aGlzKSx0aGlzLl9jb2xsYXBzZUJ1dHRvblZpc2liaWxpdHkuZGVzdHJveSgpLHRoaXMuX3Jlc3RvcmVCdXR0b25WaXNpYmlsaXR5LmRlc3Ryb3koKSx0aGlzLl9yZW5kZXJlci5kZXN0cm95KCl9Z2V0RWxlbWVudCgpe3JldHVybiB0aGlzLl9yZW5kZXJlci5nZXRFbGVtZW50KCl9Ym90dG9tV2l0aE1hcmdpbigpe3JldHVybiB0aGlzLl9yZW5kZXJlci5ib3R0b21XaXRoTWFyZ2luKCl9YWN0aW9uKCl7cmV0dXJuIHRoaXMuX2FjdGlvbnN9dXBkYXRlKCl7dGhpcy5fdXBkYXRlQnV0dG9uc1Zpc2liaWxpdHkoKSx0aGlzLl9pc1BhbmVNYXhpbWl6ZS5zZXRWYWx1ZSh0aGlzLl9nZXRJc1BhbmVNYXhpbWl6ZVZhbHVlKCkpLHRoaXMuX2lzV2lkZ2V0U2hvdy5zZXRWYWx1ZSh0aGlzLl9nZXRJc1dpZGdldFNob3coKSl9dXBkYXRlV2lkZ2V0TW9kZUJ5V2lkdGgoZSl7dGhpcy5fcmVuZGVyZXIudXBkYXRlV2lkZ2V0TW9kZUJ5V2lkdGgoZSl9dXBkYXRlVGhlbWVkQ29sb3JzKGUpe251bGw9PT1lJiYoZT0oMCxrLmdldFN0ZFRoZW1lZFZhbHVlKSgiY2hhcnRQcm9wZXJ0aWVzLnBhbmVQcm9wZXJ0aWVzLmJhY2tncm91bmQiLHRoaXMuX2JhY2tncm91bmRUaGVtZU5hbWUudmFsdWUoKSkpLHRoaXMuX3RoZW1lZENvbG9yLnNldFZhbHVlKGV8fCIiKX1fdXBkYXRlQnV0dG9uc1Zpc2liaWxpdHkoKXt0aGlzLl9jbG9zZUJ1dHRvblZpc2liaWxpdHkuc2V0VmFsdWUodGhpcy5fZ2V0Q2xvc2VCdXR0b25WaXNpYmlsaXR5KCkpLHRoaXMuX3VwQnV0dG9uVmlzaWJpbGl0eS5zZXRWYWx1ZSh0aGlzLl9nZXRVcEJ1dHRvblZpc2liaWxpdHkoKSksdGhpcy5fZG93bkJ1dHRvblZpc2liaWxpdHkuc2V0VmFsdWUodGhpcy5fZ2V0RG93bkJ1dHRvblZpc2liaWxpdHkoKSksdGhpcy5fbWF4aW1pemVCdXR0b25WaXNpYmlsaXR5LnNldFZhbHVlKHRoaXMuX2dldE1heGltaXplQnV0dG9uVmlzaWJpbGl0eSgpKSx0aGlzLl9taW5pbWl6ZUJ1dHRvblZpc2liaWxpdHkuc2V0VmFsdWUodGhpcy5fZ2V0TWluaW1pemVCdXR0b25WaXNpYmlsaXR5KCkpfV9jcmVhdGVBY3Rpb25zKCl7dGhpcy5fYWN0aW9ucy51cD17aWNvbjpJLGFjdGlvbjp0aGlzLl9vblVwRG93bkJ1dHRvbi5iaW5kKHRoaXMsInVwIiksdmlzaWJsZTp0aGlzLl91cEJ1dHRvblZpc2liaWxpdHksdGl0bGU6bmV3IGwuV2F0Y2hlZFZhbHVlKE8pLGNsYXNzTmFtZTptLnVwLGRhdGFRYUlkOiJwYW5lLWJ1dHRvbi11cCJ9LHRoaXMuX2FjdGlvbnMuZG93bj17aWNvbjpCLGFjdGlvbjp0aGlzLl9vblVwRG93bkJ1dHRvbi5iaW5kKHRoaXMsImRvd24iKSx2aXNpYmxlOnRoaXMuX2Rvd25CdXR0b25WaXNpYmlsaXR5LHRpdGxlOm5ldyBsLldhdGNoZWRWYWx1ZShGKSxjbGFzc05hbWU6bS5kb3duLGRhdGFRYUlkOiJwYW5lLWJ1dHRvbi1kb3duIn0sdGhpcy5fYWN0aW9ucy5jbG9zZT17aWNvbjpXLGFjdGlvbjp0aGlzLl9vbkNsb3NlQnV0dG9uLmJpbmQodGhpcyksdmlzaWJsZTp0aGlzLl9jbG9zZUJ1dHRvblZpc2liaWxpdHksdGl0bGU6bmV3IGwuV2F0Y2hlZFZhbHVlKFIpLGRhdGFRYUlkOiJwYW5lLWJ1dHRvbi1jbG9zZSJ9LHRoaXMuX2FjdGlvbnMubWF4aW1pemU9e2ljb246SCxhY3Rpb246dGhpcy5fb25Ub2dnbGVNYXhpbWl6ZUJ1dHRvbi5iaW5kKHRoaXMsIk1heGltaXplIHBhbmUiKSx2aXNpYmxlOnRoaXMuX21heGltaXplQnV0dG9uVmlzaWJpbGl0eSx0aXRsZTpuZXcgbC5XYXRjaGVkVmFsdWUoeiksaG90S2V5VGl0bGU6WSxjbGFzc05hbWU6bS5tYXhpbWl6ZSxkYXRhUWFJZDoicGFuZS1idXR0b24tbWF4aW1pemUifSx0aGlzLl9hY3Rpb25zLm1pbmltaXplPXtpY29uOkgsYWN0aW9uOnRoaXMuX29uVG9nZ2xlTWF4aW1pemVCdXR0b24uYmluZCh0aGlzLCJNaW5pbWl6ZSBwYW5lIiksdmlzaWJsZTp0aGlzLl9taW5pbWl6ZUJ1dHRvblZpc2liaWxpdHksdGl0bGU6bmV3IGwuV2F0Y2hlZFZhbHVlKGopLGhvdEtleVRpdGxlOlksY2xhc3NOYW1lOm0ubWluaW1pemUsZGF0YVFhSWQ6InBhbmUtYnV0dG9uLW1pbmltaXplIn0sdGhpcy5fYWN0aW9ucy5jb2xsYXBzZT17aWNvbjpQLGFjdGlvbjp0aGlzLl9vblRvZ2dsZUNvbGxhcHNlQnV0dG9uLmJpbmQodGhpcywiQ29sbGFwc2UgcGFuZSIpLHZpc2libGU6dGhpcy5fY29sbGFwc2VCdXR0b25WaXNpYmlsaXR5LHRpdGxlOm5ldyBsLldhdGNoZWRWYWx1ZShVKSxob3RLZXlUaXRsZTpxLGNsYXNzTmFtZTptLmNvbGxhcHNlLGRhdGFRYUlkOiJwYW5lLWJ1dHRvbi1jb2xsYXBzZSJ9LHRoaXMuX2FjdGlvbnMucmVzdG9yZT17aWNvbjpOLGFjdGlvbjp0aGlzLl9vblRvZ2dsZUNvbGxhcHNlQnV0dG9uLmJpbmQodGhpcywiUmVzdG9yZSBwYW5lIiksdmlzaWJsZTp0aGlzLl9yZXN0b3JlQnV0dG9uVmlzaWJpbGl0eSx0aXRsZTpuZXcgbC5XYXRjaGVkVmFsdWUoaiksaG90S2V5VGl0bGU6cSxjbGFzc05hbWU6bS5yZXN0b3JlLGRhdGFRYUlkOiJwYW5lLWJ1dHRvbi1yZXN0b3JlIn0sdGhpcy5fYWN0aW9ucy5tb3JlPXtpY29uOkQsYWN0aW9uOnRoaXMuX3Nob3dCdXR0b25zSW5Db250ZXh0TWVudS5iaW5kKHRoaXMpLHZpc2libGU6bmV3IGwuV2F0Y2hlZFZhbHVlKCEwKSx0aXRsZTpuZXcgbC5XYXRjaGVkVmFsdWUoRyksZGF0YVFhSWQ6InBhbmUtYnV0dG9uLW1vcmUifX1fZ2V0Q2xvc2VCdXR0b25WaXNpYmlsaXR5KCl7bGV0IGU9ITE7cmV0dXJuIHRoaXMuX3BhbmUuY29udGFpbnNNYWluU2VyaWVzKCl8fHRoaXMuX3BhbmUubWF4aW1pemVkKCkudmFsdWUoKXx8KGU9dGhpcy5fcGFuZS5kYXRhU291cmNlcygpLnNvbWUoKGU9PigwLHUuaXNTdHVkeSkoZSkpKSksZX1fb25DbG9zZUJ1dHRvbigpe3RoaXMuX3RyYWNrRXZlbnQoIkRlbGV0ZSBwYW5lIik7Y29uc3QgZT10aGlzLl9tb2RlbC5tb2RlbCgpLnBhbmVzKCkuaW5kZXhPZih0aGlzLl9wYW5lKTt0aGlzLl9tb2RlbC5yZW1vdmVQYW5lKGUpfV9nZXRVcEJ1dHRvblZpc2liaWxpdHkoKXtjb25zdCBlPXRoaXMuX3BhbmUsdD10aGlzLl9tb2RlbC5tb2RlbCgpLnBhbmVzKCkuaW5kZXhPZihlKQo7cmV0dXJuIHRoaXMuX21vZGVsLm1vZGVsKCkuY2FuTW92ZVBhbmVVcCh0KX1fZ2V0RG93bkJ1dHRvblZpc2liaWxpdHkoKXtjb25zdCBlPXRoaXMuX21vZGVsLm1vZGVsKCkucGFuZXMoKS5pbmRleE9mKHRoaXMuX3BhbmUpO3JldHVybiB0aGlzLl9tb2RlbC5tb2RlbCgpLmNhbk1vdmVQYW5lRG93bihlKX1fb25VcERvd25CdXR0b24oZSl7dGhpcy5fdHJhY2tFdmVudChgTW92ZSBwYW5lICR7ZX1gKTtjb25zdCB0PXRoaXMuX21vZGVsLm1vZGVsKCkucGFuZXMoKS5pbmRleE9mKHRoaXMuX3BhbmUpO3RoaXMuX21vZGVsLnJlYXJyYW5nZVBhbmVzKHQsZSl9X2dldE1heGltaXplQnV0dG9uVmlzaWJpbGl0eSgpe3JldHVybiB0aGlzLl9tb2RlbC5tb2RlbCgpLnBhbmVzKCkubGVuZ3RoPjEmJiF0aGlzLl9wYW5lLm1heGltaXplZCgpLnZhbHVlKCl9X2dldE1pbmltaXplQnV0dG9uVmlzaWJpbGl0eSgpe3JldHVybiB0aGlzLl9tb2RlbC5tb2RlbCgpLnBhbmVzKCkubGVuZ3RoPjEmJnRoaXMuX3BhbmUubWF4aW1pemVkKCkudmFsdWUoKX1fb25Ub2dnbGVNYXhpbWl6ZUJ1dHRvbihlKXt0aGlzLl90cmFja0V2ZW50KGUpLHRoaXMuX21vZGVsLnRvZ2dsZU1heGltaXplZFBhbmUodGhpcy5fcGFuZSl9X29uVG9nZ2xlQ29sbGFwc2VCdXR0b24oZSl7dGhpcy5fdHJhY2tFdmVudChlKSx0aGlzLl9tb2RlbC50b2dnbGVDb2xsYXBzZWRQYW5lKHRoaXMuX3BhbmUpfV9zaG93QnV0dG9uc0luQ29udGV4dE1lbnUoZSl7ZS5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuX21vcmVDTVNob3dufHxmdW5jdGlvbihlLHQsaSl7Y29uc3Qgcz1bXTtpZihlLm1heGltaXplLnZpc2libGUudmFsdWUoKSl7Y29uc3QgdD0oMCxjLmVuc3VyZSkoZS5tYXhpbWl6ZS50aXRsZSksaT0oMCxjLmVuc3VyZU5vdE51bGwpKGUubWF4aW1pemUuYWN0aW9uKTtzLnB1c2gobmV3IGYuQWN0aW9uKHthY3Rpb25JZDoiQ2hhcnQuUGFuZUNvbnRyb2xzLk1heGltaXplUGFuZSIsb3B0aW9uczp7aWNvbjpFLGxhYmVsOnQudmFsdWUoKSxzdGF0TmFtZToiTWF4aW1pemUgUGFuZSIsc2hvcnRjdXRIaW50OlQsb25FeGVjdXRlOigpPT5pKCl9fSkpfWVsc2UgaWYoZS5taW5pbWl6ZS52aXNpYmxlLnZhbHVlKCkpe2NvbnN0IHQ9KDAsYy5lbnN1cmUpKGUubWluaW1pemUudGl0bGUpLGk9KDAsYy5lbnN1cmVOb3ROdWxsKShlLm1pbmltaXplLmFjdGlvbik7cy5wdXNoKG5ldyBmLkFjdGlvbih7YWN0aW9uSWQ6IkNoYXJ0LlBhbmVDb250cm9scy5NaW5pbWl6ZVBhbmUiLG9wdGlvbnM6e2ljb246RSxsYWJlbDp0LnZhbHVlKCksc3RhdE5hbWU6Ik1pbmltaXplIFBhbmUiLHNob3J0Y3V0SGludDpULG9uRXhlY3V0ZTooKT0+aSgpfX0pKX1pZihlLmNvbGxhcHNlLnZpc2libGUudmFsdWUoKSl7Y29uc3QgdD0oMCxjLmVuc3VyZSkoZS5jb2xsYXBzZS50aXRsZSksaT0oMCxjLmVuc3VyZU5vdE51bGwpKGUuY29sbGFwc2UuYWN0aW9uKTtzLnB1c2gobmV3IGYuQWN0aW9uKHthY3Rpb25JZDoiQ2hhcnQuUGFuZUNvbnRyb2xzLkNvbGxhcHNlUGFuZSIsb3B0aW9uczp7aWNvbjp4LGxhYmVsOnQudmFsdWUoKSxzdGF0TmFtZToiQ29sbGFwc2UgcGFuZSIsc2hvcnRjdXRIaW50OlYsb25FeGVjdXRlOigpPT5pKCl9fSkpfWlmKGUucmVzdG9yZS52aXNpYmxlLnZhbHVlKCkpe2NvbnN0IHQ9KDAsYy5lbnN1cmUpKGUucmVzdG9yZS50aXRsZSksaT0oMCxjLmVuc3VyZU5vdE51bGwpKGUucmVzdG9yZS5hY3Rpb24pO3MucHVzaChuZXcgZi5BY3Rpb24oe2FjdGlvbklkOiJDaGFydC5QYW5lQ29udHJvbHMuUmVzdG9yZVBhbmUiLG9wdGlvbnM6e2ljb246TCxsYWJlbDp0LnZhbHVlKCksc3RhdE5hbWU6IlJlc3RvcmUgcGFuZSIsc2hvcnRjdXRIaW50OlYsb25FeGVjdXRlOigpPT5pKCl9fSkpfWlmKGUudXAudmlzaWJsZS52YWx1ZSgpKXtjb25zdCB0PSgwLGMuZW5zdXJlKShlLnVwLnRpdGxlKSxpPSgwLGMuZW5zdXJlTm90TnVsbCkoZS51cC5hY3Rpb24pO3MucHVzaChuZXcgZi5BY3Rpb24oe2FjdGlvbklkOiJDaGFydC5QYW5lQ29udHJvbHMuTW92ZVBhbmVVcCIsb3B0aW9uczp7aWNvbjp3LGxhYmVsOnQudmFsdWUoKSxzdGF0TmFtZToiTW92ZSBwYW5lIHVwIixvbkV4ZWN1dGU6KCk9PmkoKX19KSl9aWYoZS5kb3duLnZpc2libGUudmFsdWUoKSl7Y29uc3QgdD0oMCxjLmVuc3VyZSkoZS5kb3duLnRpdGxlKSxpPSgwLGMuZW5zdXJlTm90TnVsbCkoZS5kb3duLmFjdGlvbik7cy5wdXNoKG5ldyBmLkFjdGlvbih7YWN0aW9uSWQ6IkNoYXJ0LlBhbmVDb250cm9scy5Nb3ZlUGFuZURvd24iLG9wdGlvbnM6e2ljb246QyxsYWJlbDp0LnZhbHVlKCksc3RhdE5hbWU6Ik1vdmUgcGFuZSBkb3duIixvbkV4ZWN1dGU6KCk9PmkoKX19KSl9aWYoZS5jbG9zZS52aXNpYmxlLnZhbHVlKCkpe2NvbnN0IHQ9KDAsYy5lbnN1cmUpKGUuY2xvc2UudGl0bGUpLGk9KDAsYy5lbnN1cmVOb3ROdWxsKShlLmNsb3NlLmFjdGlvbik7cy5wdXNoKG5ldyBmLkFjdGlvbih7YWN0aW9uSWQ6IkNoYXJ0LlBhbmVDb250cm9scy5EZWxldGVQYW5lIixvcHRpb25zOntpY29uOnksbGFiZWw6dC52YWx1ZSgpLHN0YXROYW1lOiJEZWxldGUgcGFuZSIsb25FeGVjdXRlOigpPT5pKCl9fSkpfWNvbnN0IG89KDAsYy5lbnN1cmVOb3ROdWxsKSh0LmN1cnJlbnRUYXJnZXQpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3JldHVybiBTLkNvbnRleHRNZW51TWFuYWdlci5zaG93TWVudShzLHtjbGllbnRYOm8ucmlnaHQsY2xpZW50WTpvLnRvcCtvLmhlaWdodCszLGF0dGFjaFRvWEJ5OiJyaWdodCJ9LHZvaWQgMCx2b2lkIDAsaSl9KHRoaXMuX2FjdGlvbnMsZSwoKCk9Pnt0aGlzLl9tb3JlQ01TaG93bj0hMX0pKS50aGVuKCgoKT0+e3RoaXMuX21vcmVDTVNob3duPSEwfSkpfV9nZXRJc1BhbmVNYXhpbWl6ZVZhbHVlKCl7cmV0dXJuIHRoaXMuX3BhbmUubWF4aW1pemVkKCkudmFsdWUoKX1fZ2V0SXNXaWRnZXRTaG93KCl7cmV0dXJuIHRoaXMuX21vZGVsLm1vZGVsKCkucGFuZXMoKS5sZW5ndGg+MX1fdHJhY2tFdmVudChlKXsoMCxvLnRyYWNrRXZlbnQpKCJHVUkiLCJQYW5lIGFjdGlvbiIsZSl9fX0sOTU2MzY4KGUsdCxpKXsKInVzZSBzdHJpY3QiO2kuZCh0LHtjcmVhdGVBY3Rpb25FbGVtZW50OigpPT5sfSk7dmFyIHM9aSg2NzI1MTEpLG89aSgxMzg2MzgpLG49aSg2MDE4NDEpLGE9aSg1ODI0NzYpO2Z1bmN0aW9uIGwoZSx0KXtjb25zdHtidXR0b25DbGFzc05hbWU6aSx3cmFwSWNvbkNsYXNzTmFtZTpsLGhpZGRlbkNsYXNzTmFtZTpyLGljb25TaXplOmQsYmx1ck9uQ2xpY2s6dX09dCxjPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodC50YWcpO2MuY2xhc3NOYW1lPWksYy5jbGFzc0xpc3QudG9nZ2xlKHIsIWUudmlzaWJsZS52YWx1ZSgpKSxjLmRhdGFzZXQucWFJZD1lLmRhdGFRYUlkLHZvaWQgMCE9PWUuY2xhc3NOYW1lJiZjLmNsYXNzTGlzdC5hZGQoZS5jbGFzc05hbWUpLHZvaWQgMCE9PWUudGl0bGUmJihjLmNsYXNzTGlzdC5hZGQoImFwcGx5LWNvbW1vbi10b29sdGlwIiksYy5zZXRBdHRyaWJ1dGUoInRpdGxlIixlLnRpdGxlLnZhbHVlKCkpLHZvaWQgMCE9PWUuaG90S2V5VGl0bGUmJihjLmRhdGFzZXQudG9vbHRpcEhvdGtleT1lLmhvdEtleVRpdGxlKSksYy5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaGVuZCIsKDAsYS53cmFwSGFuZGxlcldpdGhQcmV2ZW50RXZlbnQpKGUuYWN0aW9uKSksYy5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWRvd24iLCh0PT57MD09PXQuYnV0dG9uJiYoZS5hY3Rpb24odCksdSYmYy5ibHVyKCkpfSkpO2NvbnN0IGg9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7bGV0IHA7cmV0dXJuIGguY2xhc3NMaXN0LmFkZChsKSxwPSgwLHMuZGVmYXVsdCkoZS5pY29uKT9lLmljb24uZ2V0KCgwLG8uZW5zdXJlRGVmaW5lZCkoZCkpfHwiIjplLmljb24sKDAsbi5pc1N0cmluZykocCk/aC5pbm5lckhUTUw9cDpoLmFwcGVuZENoaWxkKHApLGMuYXBwZW5kQ2hpbGQoaCksY319LDQ2MDU0NChlLHQsaSl7InVzZSBzdHJpY3QiO2kuZCh0LHtpc0N1c3RvbVN0dWR5OigpPT5vfSk7Y29uc3Qgcz17TGluZWFyUmVncmVzc2lvbjohMCxQaXZvdFBvaW50c0hpZ2hMb3c6ITAsVmJQU2Vzc2lvbnM6ITAsVmJQU2Vzc2lvbnNSb3VnaERldGFpbGVkOiEwLFZiUFBlcmlvZGljOiEwLFZiUEF1dG9BbmNob3JlZDohMCxaaWdaYWc6ITAsVFBPUGVyaW9kaWM6ITAsVFBPU2Vzc2lvbnM6ITAsVmJQRml4ZWQ6ITAsUGl2b3RQb2ludHNTdGFuZGFyZDohMCxWYlBWaXNpYmxlOiEwLFZiUEFuY2hvcmVkOiEwfTtmdW5jdGlvbiBvKGUpe3JldHVybiBlIGluIHN9fSwzMzMzMTIoZSx0LGkpeyJ1c2Ugc3RyaWN0IjtpLmQodCx7Z2V0VHdlbW9qaVVybDooKT0+b30pO3ZhciBzPWkoMjYwNjAzKTtmdW5jdGlvbiBvKGUsdCl7bGV0IGk9IiI7cmV0dXJuIHMuZGVmYXVsdC5wYXJzZShlLChlPT4oaT1zLmRlZmF1bHQuYmFzZSsoInN2ZyI9PT10P2BzdmcvJHtlfS5zdmdgOmA3Mng3Mi8ke2V9LnBuZ2ApLCExKSkpLGl9cy5kZWZhdWx0LmJhc2U9Imh0dHBzOi8vY2RuanMuY2xvdWRmbGFyZS5jb20vYWpheC9saWJzL3R3ZW1vamkvMTMuMC4xLyJ9LDMwOTgzNihlLHQsaSl7InVzZSBzdHJpY3QiO2kuZCh0LHthZGRVdG1Ub1VybDooKT0+b30pO3ZhciBzPWkoNjAxNTg3KTtmdW5jdGlvbiBvKGUsdCl7aWYoIS8oW2EtekEtWjAtOS4tXSp0cmFkaW5ndmlldy5jb20pfGxvY2FsaG9zdC8udGVzdChlKSlyZXR1cm4gZTtjb25zdCBpPSgwLHMuYnVpbGRVdG1RdWVyeVN0cmluZykodCk7aWYoIiI9PT1pKXJldHVybiBlO2NvbnN0IG89ZS5pbmRleE9mKCI/Iiksbj1lLmluZGV4T2YoIiMiKSxhPS0xIT09bjtpZigtMSE9PW8mJighYXx8bzxuKSl7cmV0dXJuYCR7ZS5zbGljZSgwLG8pfT8ke2E/ZS5zbGljZShvKzEsbik6ZS5zbGljZShvKzEpfSYke2l9JHthP2Uuc2xpY2Uobik6IiJ9YH1pZihhKXtyZXR1cm5gJHtlLnNsaWNlKDAsbil9PyR7aX0ke2Uuc2xpY2Uobil9YH1yZXR1cm5gJHtlfT8ke2l9YH19LDYwMTU4NyhlLHQsaSl7InVzZSBzdHJpY3QiO2kuZCh0LHtidWlsZFV0bVF1ZXJ5U3RyaW5nOigpPT5sLGJ1aWxkVXRtUXVlcnlTdHJpbmdGcm9tVXJsUGFyYW1zOigpPT5yLGZpbHRlclV0bUluZm86KCk9PmF9KTt2YXIgcz1pKDQ5MjY3Nyksbz1pKDY0MTU5Myk7Y29uc3Qgbj1bInV0bV9zb3VyY2UiLCJ1dG1fbWVkaXVtIiwidXRtX2NhbXBhaWduIl07ZnVuY3Rpb24gYShlKXtjb25zdCB0PXt9O3JldHVybiBuLmZvckVhY2goKGk9Pntjb25zdCBzPWVbaV07InN0cmluZyI9PXR5cGVvZiBzJiYiIiE9PXMmJih0W2ldPSgwLG8uaHRtbEVzY2FwZSkocykpfSkpLHR9ZnVuY3Rpb24gbChlLHQ9ITEpe2NvbnN0IGk9KDAscy5jcmVhdGVVcmxQYXJhbXMpKGUpO3JldHVybiBpJiZ0PyI/IitpOml9ZnVuY3Rpb24gcihlKXtyZXR1cm4gbChhKCgwLHMuZ2V0VXJsUGFyYW1zKSgpKSxlKX19LDkzNTEoZSl7ZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDE4IDE4IiB3aWR0aD0iMTgiIGhlaWdodD0iMTgiPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZD0iTTMuOTIgNy44MyA5IDEyLjI5bDUuMDgtNC40Ni0xLTEuMTNMOSAxMC4yOWwtNC4wOS0zLjYtLjk5IDEuMTRaIi8+PC9zdmc+J30sNzMyMDM5KGUpe2UuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxOCAxOCIgd2lkdGg9IjE4IiBoZWlnaHQ9IjE4Ij48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGQ9Ik03LjgzIDMuOTIgMTIuMjggOWwtNC40NSA1LjA4LTEuMTMtMUwxMC4yOSA5bC0zLjYtNC4wOSAxLjE0LS45OVoiLz48L3N2Zz4nfSwxMjE0NzQoZSl7ZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDE4IDE4IiB3aWR0aD0iMTgiIGhlaWdodD0iMTgiPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZD0iTTE0IDEwSDRWOC41aDEwVjEwWiIvPjwvc3ZnPid9LDU0OTc3MChlKXsKZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDE4IDE4IiB3aWR0aD0iMTgiIGhlaWdodD0iMTgiPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZD0iTTguMjUgMTMuNzV2LTkuNWgxLjV2OS41aC0xLjVaIi8+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBkPSJNMTMuNzUgOS43NWgtOS41di0xLjVoOS41djEuNVoiLz48L3N2Zz4nfSwyNDcwMzAoZSl7ZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDE4IDE4IiB3aWR0aD0iMTgiIGhlaWdodD0iMTgiPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZD0iTTE0LjUgOFYzLjVIMTBWMmg2djZoLTEuNVptLTExIDJ2NC41SDhWMTZIMnYtNmgxLjVaIi8+PC9zdmc+J30sNTczNTgyKGUpe2UuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxOCAxOCIgd2lkdGg9IjE4IiBoZWlnaHQ9IjE4Ij48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGQ9Ik03LjQ1IDMuNSAxMi40OCA5bC01LjAzIDUuNDkgMS4xIDEuMDFMMTQuNTIgOSA4LjU1IDIuNDkgNy40NSAzLjVaIi8+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBkPSJtMy45MyA1Ljk5IDIuNTggMy0yLjU4IDMuMDIgMS4xNC45OCAzLjQyLTQtMy40Mi0zLjk4TDMuOTMgNloiLz48L3N2Zz4nfSw5OTc4MzQoZSl7ZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDE4IDE4IiB3aWR0aD0iMTgiIGhlaWdodD0iMTgiPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZD0iTTEwIDYuMzhWOEw2IDUuNSAxMCAzdjEuODVBNS4yNSA1LjI1IDAgMSAxIDMuNzUgMTBhLjc1Ljc1IDAgMCAxIDEuNSAwQTMuNzUgMy43NSAwIDEgMCAxMCA2LjM4WiIvPjwvc3ZnPid9LDQ2MjcwNChlKXtlLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMTggMTgiIHdpZHRoPSIxOCIgaGVpZ2h0PSIxOCI+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBkPSJNMTIgNGgzdjFoLTEuMDRsLS44OCA5LjY0YTEuNSAxLjUgMCAwIDEtMS41IDEuMzZINi40MmExLjUgMS41IDAgMCAxLTEuNS0xLjM2TDQuMDUgNUgzVjRoM3YtLjVDNiAyLjY3IDYuNjcgMiA3LjUgMmgzYy44MyAwIDEuNS42NyAxLjUgMS41VjRaTTcuNSAzYS41LjUgMCAwIDAtLjUuNVY0aDR2LS41YS41LjUgMCAwIDAtLjUtLjVoLTNaTTUuMDUgNWwuODcgOS41NWEuNS41IDAgMCAwIC41LjQ1aDUuMTdhLjUuNSAwIDAgMCAuNS0uNDVMMTIuOTQgNWgtNy45WiIvPjwvc3ZnPid9LDMzMzQ1KGUpe2UuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxOCAxOCIgd2lkdGg9IjE4IiBoZWlnaHQ9IjE4Ij48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGQ9Ik0xMC4zMSA0LjEzIDguMyA2LjE0YS41LjUgMCAxIDEtLjctLjdsMi4xMy0yLjEyYTMuNSAzLjUgMCAxIDEgNC45NSA0Ljk1bC0yLjExIDIuMTFhLjUxLjUxIDAgMSAxLS43My0uNzJsMi0yYTIuNSAyLjUgMCAwIDAtMy41My0zLjUzWm0tMi4xNCA5LjMgMi4wMS0yYS41LjUgMCAwIDEgLjcuNjlsLTIuMTMgMi4xMkEzLjUgMy41IDAgMCAxIDMuOCA5LjI5bDIuMTEtMi4xMWEuNTEuNTEgMCAwIDEgLjcyLjcybC0yIDJhMi41IDIuNSAwIDAgMCAzLjU0IDMuNTRaTTExIDcuMDJhLjQ5LjQ5IDAgMCAwLS42OSAwTDcuNDcgOS44N2EuNDkuNDkgMCAwIDAgLjY4LjY5bDIuODYtMi44NmEuNDkuNDkgMCAwIDAgMC0uN1oiLz48L3N2Zz4nfSw2NzcwMTAoZSl7ZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDI4IDI4IiB3aWR0aD0iMjgiIGhlaWdodD0iMjgiPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZD0iTTE1LjA4IDUuNzVhNS4wNyA1LjA3IDAgMCAxIDcuMTcgNy4xN2wtMy4yMyAzLjIzLS43LS43IDMuMjItMy4yNGE0LjA3IDQuMDcgMCAxIDAtNS43NS01Ljc1bC0zLjIzIDMuMjMtLjctLjcxIDMuMjItMy4yM1ptLTkuMzMgOS4zM2E1LjA3IDUuMDcgMCAxIDAgNy4xNyA3LjE3bDMuMjMtMy4yMy0uNy0uNy0zLjI0IDMuMjJhNC4wNyA0LjA3IDAgMSAxLTUuNzUtNS43NWwzLjIzLTMuMjMtLjcxLS43LTMuMjMgMy4yMlptMTAuNzctNC4zLTUuNzQgNS43NC43LjcgNS43NS01Ljc0LS43MS0uN1oiLz48L3N2Zz4nfSwyMDMzMDkoZSl7ZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDE2IDE2Ij48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGQ9Ik00IDhhNCA0IDAgMSAwIDggMCA0IDQgMCAxIDAtOCAwIi8+PC9zdmc+J30sMjc0ODUxKGUpe2UuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNiAxNiI+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0wIDhhOCA4IDAgMSAwIDE2IDBBOCA4IDAgMSAwIDAgOHptMiAwYTYgNiAwIDEgMCAxMiAwQTYgNiAwIDEgMCAyIDh6bTIgMGE0IDQgMCAxIDAgOCAwIDQgNCAwIDEgMC04IDAiLz48L3N2Zz4nfSwzMzQ1NTAoZSl7ZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDI4IDI4IiB3aWR0aD0iMjgiIGhlaWdodD0iMjgiIGZpbGw9Im5vbmUiPjxwYXRoIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHN0cm9rZS13aWR0aD0iMiIgZD0iTTE2LjUgMjBMMTEgMTQuNSAxNi41IDkiLz48L3N2Zz4nfSw1ODA1OTYoZSl7CmUuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxOCAxOCIgd2lkdGg9IjE4IiBoZWlnaHQ9IjE4IiBmaWxsPSJub25lIj48cGF0aCBzdHJva2U9ImN1cnJlbnRDb2xvciIgZD0iTTggNWwzLjUgMy41TDggMTIiLz48L3N2Zz4nfSw1NTY2NDYoZSl7ZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiPjxnIGNsYXNzPSJub3JtYWwtZXllIj48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTEyIDE4Yy0zLjA3IDAtNi4yMS0xLjk1LTcuOTItNkM1Ljc4IDcuOTUgOC45MyA2IDEyIDZjMy4wOCAwIDYuMjIgMS45NSA3LjkyIDYtMS43IDQuMDUtNC44NCA2LTcuOTIgNlptOC45My02LjE5QzE5LjEgNy4zMSAxNS41OSA1IDEyIDVTNC45IDcuMzIgMy4wOCAxMS44TDMgMTJsLjA4LjE5QzQuODkgMTYuNjggOC40IDE5IDEyIDE5YzMuNiAwIDcuMTEtMi4zMiA4LjkzLTYuODFsLjA3LS4yLS4wNy0uMThaTTE0IDEyYTIgMiAwIDEgMS00IDAgMiAyIDAgMCAxIDQgMFptMSAwYTMgMyAwIDEgMS02IDAgMyAzIDAgMCAxIDYgMFoiLz48L2c+PGcgY2xhc3M9ImNyb3NzZWQtZXllIj48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGQ9Ik0xMiAxOWE4LjQ3IDguNDcgMCAwIDEtMy44Ny0uOTVsLjc1LS43NWMxIC40NyAyLjA3LjcgMy4xMi43IDMuMDggMCA2LjIyLTEuOTUgNy45Mi02YTExLjE4IDExLjE4IDAgMCAwLTIuMjUtMy40OWwuNy0uN2ExMi4yOCAxMi4yOCAwIDAgMSAyLjU2IDRMMjEgMTJsLS4wNy4xOUMxOS4xIDE2LjY4IDE1LjU5IDE5IDEyIDE5Wm0tNy45Mi03Yy42IDEuNDIgMS4zNyAyLjU4IDIuMjYgMy40OWwtLjcuN2ExMi4yOCAxMi4yOCAwIDAgMS0yLjU2LTRsLS4wOC0uMi4wOC0uMThDNC44OSA3LjMxIDguNCA1IDEyIDVjMS4zMyAwIDIuNjUuMzIgMy44OC45NGwtLjc1Ljc1QTcuNDUgNy40NSAwIDAgMCAxMiA2QzguOTMgNiA1LjggNy45NiA0LjA4IDEyWk0xMiAxNWEzIDMgMCAwIDEtLjczLS4wOWwuOTItLjkyYTIgMiAwIDAgMCAxLjgtMS44bC45Mi0uOTJBMyAzIDAgMCAxIDEyIDE1Wm0tMi45MS0yLjI3LjkyLS45MUEyIDIgMCAwIDEgMTEuOCAxMGwuOTItLjkyYTMgMyAwIDAgMC0zLjY0IDMuNjRabTkuMDgtNy42Ni0xMy4xIDEzLjEuNzcuNzYgMTMuMDktMTMuMS0uNzYtLjc2WiIvPjwvZz48ZyBmaWxsPSJub25lIiBjbGFzcz0ibG9hZGluZy1leWUiPjxwYXRoIHN0cm9rZT0iY3VycmVudENvbG9yIiBkPSJNMjAuNDYgMTJjLTMuNSA4LjY3LTEzLjQyIDguNjctMTYuOTIgMCAzLjUtOC42NyAxMy40Mi04LjY3IDE2LjkyIDBaIi8+PC9nPjxnIGZpbGw9Im5vbmUiIGNsYXNzPSJhbmltYXRlZC1sb2FkaW5nLWV5ZSI+PHBhdGggc3Ryb2tlPSJjdXJyZW50Q29sb3IiIGQ9Ik0xNC41IDEyYTIuNSAyLjUgMCAxIDAtMi41IDIuNSIvPjwvZz48L3N2Zz4nfSw5MDMwMzEoZSl7ZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDE4IDE4IiB3aWR0aD0iMTgiIGhlaWdodD0iMTgiPjxnIGNsYXNzPSJub3JtYWwtZXllIj48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTEyIDlhMyAzIDAgMSAxLTYgMCAzIDMgMCAwIDEgNiAwWm0tMSAwYTIgMiAwIDEgMS00IDAgMiAyIDAgMCAxIDQgMFoiLz48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGQ9Ik0xNi45MSA4LjhDMTUuMzEgNC45OSAxMi4xOCAzIDkgMyA1LjgyIDMgMi43IDQuOTggMS4wOCA4LjhMMSA5bC4wOC4yQzIuNyAxMy4wMiA1LjgyIDE1IDkgMTVjMy4xOCAwIDYuMy0xLjk3IDcuOTEtNS44TDE3IDlsLS4wOS0uMlpNOSAxNGMtMi42OSAwLTUuNDItMS42My02LjkxLTUgMS40OS0zLjM3IDQuMjItNSA2LjktNSAyLjcgMCA1LjQzIDEuNjMgNi45MiA1LTEuNSAzLjM3LTQuMjMgNS02LjkxIDVaIi8+PC9nPjxnIGNsYXNzPSJjcm9zc2VkLWV5ZSI+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBkPSJNMy43IDE1IDE1IDMuN2wtLjctLjdMMyAxNC4zbC43LjdaTTkgM2MxLjA5IDAgMi4xNy4yMyAzLjE5LjdsLS43Ny43NkMxMC42NCA0LjE2IDkuODIgNCA5IDQgNi4zMSA0IDMuNTggNS42MyAyLjA4IDlhOS4zNSA5LjM1IDAgMCAwIDEuOTMgMi44N2wtLjcuN0ExMC40NCAxMC40NCAwIDAgMSAxLjA4IDkuMkwxIDlsLjA4LS4yQzIuNjkgNC45OSA1LjgyIDMgOSAzWiIvPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZD0iTTkgNmEzIDMgMCAwIDEgLjc4LjFsLS45LjlBMiAyIDAgMCAwIDcgOC44N2wtLjkuOUEzIDMgMCAwIDEgOSA2Wk0xMS45IDguMjJsLS45LjlBMiAyIDAgMCAxIDkuMTMgMTFsLS45LjlhMyAzIDAgMCAwIDMuNjctMy42OFoiLz48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGQ9Ik05IDE0Yy0uODIgMC0xLjY0LS4xNS0yLjQzLS40NWwtLjc2Ljc2YzEuMDIuNDYgMi4xLjcgMy4xOS43IDMuMTggMCA2LjMxLTEuOTggNy45Mi01LjgxTDE3IDlsLS4wOC0uMmExMC40NCAxMC40NCAwIDAgMC0yLjIzLTMuMzdsLS43LjdjLjc1Ljc2IDEuNDEgMS43MSAxLjkzIDIuODctMS41IDMuMzctNC4yMyA1LTYuOTIgNVoiLz48L2c+PGcgZmlsbD0ibm9uZSIgY2xhc3M9ImxvYWRpbmctZXllIj48cGF0aCBzdHJva2U9ImN1cnJlbnRDb2xvciIgZD0iTTE2LjQ1IDljLTMuMDggNy4zMy0xMS44MiA3LjMzLTE0LjkgMCAzLjA4LTcuMzMgMTEuODItNy4zMyAxNC45IDBaIi8+PC9nPjxnIGZpbGw9Im5vbmUiIGNsYXNzPSJhbmltYXRlZC1sb2FkaW5nLWV5ZSI+PHBhdGggc3Ryb2tlPSJjdXJyZW50Q29sb3IiIGQ9Ik0xMS41IDlBMi41IDIuNSAwIDEgMCA5IDExLjUiLz48L2c+PC9zdmc+J30sMTEzODEwKGUpewplLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCI+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBkPSJNNS41IDExYTEuNSAxLjUgMCAxIDAgMCAzIDEuNSAxLjUgMCAwIDAgMC0zWk0zIDEyLjVhMi41IDIuNSAwIDEgMSA1IDAgMi41IDIuNSAwIDAgMS01IDBabTkuNS0xLjVhMS41IDEuNSAwIDEgMCAwIDMgMS41IDEuNSAwIDAgMCAwLTNaTTEwIDEyLjVhMi41IDIuNSAwIDEgMSA1IDAgMi41IDIuNSAwIDAgMS01IDBabTkuNS0xLjVhMS41IDEuNSAwIDEgMCAwIDMgMS41IDEuNSAwIDAgMCAwLTNaTTE3IDEyLjVhMi41IDIuNSAwIDEgMSA1IDAgMi41IDIuNSAwIDAgMS01IDBaIi8+PC9zdmc+J30sODk2OTQ3KGUpe2UuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxOCAxOCIgd2lkdGg9IjE4IiBoZWlnaHQ9IjE4Ij48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTMgMTBhMSAxIDAgMSAwIDAtMiAxIDEgMCAwIDAgMCAyWm0wIDFhMiAyIDAgMSAwIDAtNCAyIDIgMCAwIDAgMCA0Wm02LTFhMSAxIDAgMSAwIDAtMiAxIDEgMCAwIDAgMCAyWm0wIDFhMiAyIDAgMSAwIDAtNCAyIDIgMCAwIDAgMCA0Wm03LTJhMSAxIDAgMSAxLTIgMCAxIDEgMCAwIDEgMiAwWm0xIDBhMiAyIDAgMSAxLTQgMCAyIDIgMCAwIDEgNCAwWiIvPjwvc3ZnPid9LDQ2NzU0OChlKXtlLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMTggMTgiIHdpZHRoPSIxOCIgaGVpZ2h0PSIxOCI+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBkPSJNOC41NC44NGEuOC44IDAgMCAxIC45MiAwbDcuNSA1LjI1YS44LjggMCAwIDEgMCAxLjMybC03LjUgNS4yNWEuOC44IDAgMCAxLS45MiAwTDEuMDQgNy40YS44LjggMCAwIDEgMC0xLjMyTDguNTQuODR6TTIuOSA2Ljc1TDkgMTEuMDJsNi4xLTQuMjdMOSAyLjQ4IDIuOSA2Ljc1eiIvPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZD0iTS44NCAxMC44YS44LjggMCAwIDEgMS4xMi0uMkw5IDE1LjUxbDcuMDQtNC45M2EuOC44IDAgMCAxIC45MiAxLjMybC03LjUgNS4yNWEuOC44IDAgMCAxLS45MiAwbC03LjUtNS4yNWEuOC44IDAgMCAxLS4yLTEuMTJ6Ii8+PC9zdmc+J30sOTUyNTQoZSl7ZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDE1IDE1IiB3aWR0aD0iMTUiIGhlaWdodD0iMTUiPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZD0iTTcuMjMgMi41OGEuNS41IDAgMCAxIC41NCAwbDUuNSAzLjVhLjUuNSAwIDAgMSAwIC44NGwtNS41IDMuNWEuNS41IDAgMCAxLS41NCAwbC01LjUtMy41YS41LjUgMCAwIDEgMC0uODRsNS41LTMuNXpNMi45MyA2LjVMNy41IDkuNGw0LjU3LTIuOUw3LjUgMy42IDIuOTMgNi41eiIvPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZD0iTTEuNTggOS4yM2EuNS41IDAgMCAxIC42OS0uMTVMNy41IDEyLjRsNS4yMy0zLjMzYS41LjUgMCAwIDEgLjU0Ljg0bC01LjUgMy41YS41LjUgMCAwIDEtLjU0IDBsLTUuNS0zLjVhLjUuNSAwIDAgMS0uMTUtLjY5eiIvPjwvc3ZnPid9LDg1MjY3MyhlKXtlLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCI+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBkPSJNNiA3LjVBMi41IDIuNSAwIDAgMSA4LjUgNUgxMHYxSDguNUM3LjY3IDYgNyA2LjY3IDcgNy41djEuMTVhMy41IDMuNSAwIDAgMS0xLjkzIDMuMTNsLS40NS4yMi40NS4yMkEzLjUgMy41IDAgMCAxIDcgMTUuMzV2MS4xNWMwIC44My42NyAxLjUgMS41IDEuNUgxMHYxSDguNUEyLjUgMi41IDAgMCAxIDYgMTYuNXYtMS4xNWEyLjUgMi41IDAgMCAwLTEuMzgtMi4yM2wtMS4zNC0uNjdhLjUuNSAwIDAgMSAwLS45bDEuMzQtLjY3QTIuNSAyLjUgMCAwIDAgNiA4LjY1VjcuNVpNMTUuNSA2SDE0VjVoMS41QTIuNSAyLjUgMCAwIDEgMTggNy41djEuMTVjMCAuOTQuNTQgMS44IDEuMzggMi4yM2wxLjM0LjY3YS41LjUgMCAwIDEgMCAuOWwtMS4zNC42N0EyLjUgMi41IDAgMCAwIDE4IDE1LjM1djEuMTVhMi41IDIuNSAwIDAgMS0yLjUgMi41SDE0di0xaDEuNWMuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTEuMTVhMy41IDMuNSAwIDAgMSAxLjkzLTMuMTNsLjQ1LS4yMi0uNDUtLjIyQTMuNSAzLjUgMCAwIDEgMTcgOC42NVY3LjVjMC0uODMtLjY3LTEuNS0xLjUtMS41WiIvPjwvc3ZnPid9LDE0NTA5MChlKXsKZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDE4IDE4IiB3aWR0aD0iMTgiIGhlaWdodD0iMTgiPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZD0iTTcgMTRINS41QTEuNSAxLjUgMCAwIDEgNCAxMi41di0xQTIuOSAyLjkgMCAwIDAgMi42NiA5bC4xOC0uMTNBMi45IDIuOSAwIDAgMCA0IDYuNVY1LjVDNCA0LjY3IDQuNjcgNCA1LjUgNEg3VjNINS41QTIuNSAyLjUgMCAwIDAgMyA1LjVWNi41YTEuOSAxLjkgMCAwIDEtLjc3IDEuNThjLS40Mi4zMi0uODQuNDMtLjg1LjQ0QzEuMyA4LjU0IDEgOC42NSAxIDlzLjMuNDYuMzguNDhjMCAwIC40My4xMi44NS40NC40LjMuNzcuOC43NyAxLjU4djFBMi41IDIuNSAwIDAgMCA1LjUgMTVIN3YtMVptNC0xMGgxLjVjLjgzIDAgMS41LjY3IDEuNSAxLjV2MUEyLjkgMi45IDAgMCAwIDE1LjM0IDlsLS4xOC4xM0EyLjkgMi45IDAgMCAwIDE0IDExLjVWMTIuNWMwIC44My0uNjcgMS41LTEuNSAxLjVIMTF2MWgxLjVhMi41IDIuNSAwIDAgMCAyLjUtMi41VjExLjVjMC0uNzkuMzgtMS4yNy43Ny0xLjU4LjQyLS4zMi44NC0uNDMuODUtLjQ0LjA4LS4wMi4zOC0uMTMuMzgtLjQ4cy0uMy0uNDYtLjM4LS40OGMwIDAtLjQzLS4xMi0uODUtLjQ0LS40LS4zLS43Ny0uOC0uNzctMS41OHYtMUEyLjUgMi41IDAgMCAwIDEyLjUgM0gxMXYxWiIvPjwvc3ZnPid9LDY5ODU5MChlKXtlLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCI+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Im01LjEyIDEyIDMtNmg3Ljc2bDMgNi0zIDZIOC4xMmwtMy02Wk03LjUgNWg5bDMuNSA3LTMuNSA3aC05TDQgMTJsMy41LTdabTYuNSA3YTIgMiAwIDEgMS00IDAgMiAyIDAgMCAxIDQgMFptMSAwYTMgMyAwIDEgMS02IDAgMyAzIDAgMCAxIDYgMFoiLz48L3N2Zz4nfSw3NDI0MTUoZSl7ZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDE4IDE4IiB3aWR0aD0iMTgiIGhlaWdodD0iMTgiPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJtMy4xIDkgMi4yOC01aDcuMjRsMi4yOCA1LTIuMjggNUg1LjM4TDMuMSA5Wm0xLjYzLTZoOC41NEwxNiA5bC0yLjczIDZINC43M0wyIDlsMi43My02Wm01Ljc3IDZhMS41IDEuNSAwIDEgMS0zIDAgMS41IDEuNSAwIDAgMSAzIDBabTEgMGEyLjUgMi41IDAgMSAxLTUgMCAyLjUgMi41IDAgMCAxIDUgMFoiLz48L3N2Zz4nfSw3MjA1MjUoZSl7ZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZD0iTTEwLjUgNmEuNS41IDAgMCAwLS41LjVWN2g0di0uNWEuNS41IDAgMCAwLS41LS41aC0zWk0xNSA3aDN2MWgtMS4wNGwtLjg4IDkuNjRhMS41IDEuNSAwIDAgMS0xLjUgMS4zNkg5LjQyYTEuNSAxLjUgMCAwIDEtMS41LTEuMzZMNy4wNSA4SDZWN2gzdi0uNWMwLS44My42Ny0xLjUgMS41LTEuNWgzYy44MyAwIDEuNS42NyAxLjUgMS41VjdaTTguMDUgOGwuODcgOS41NWEuNS41IDAgMCAwIC41LjQ1aDUuMTdhLjUuNSAwIDAgMCAuNS0uNDVMMTUuOTQgOGgtNy45WiIvPjwvc3ZnPid9LDg3MjgzOChlKXtlLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMTUgMTUiIHdpZHRoPSIxNSIgaGVpZ2h0PSIxNSIgZmlsbD0ibm9uZSI+PHBhdGggc3Ryb2tlPSJjdXJyZW50Q29sb3IiIGQ9Ik0xMSAyIDcuNSA1IDQgMiIgY2xhc3M9ImJyYWNrZXQtdXAiLz48cGF0aCBzdHJva2U9ImN1cnJlbnRDb2xvciIgZD0iTTQgMTNsMy41LTMgMy41IDMiIGNsYXNzPSJicmFja2V0LWRvd24iLz48L3N2Zz4nfSwzNzU3MChlKXtlLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMjggMjgiIHdpZHRoPSIyOCIgaGVpZ2h0PSIyOCIgZmlsbD0ibm9uZSI+PHBhdGggc3Ryb2tlPSJjdXJyZW50Q29sb3IiIGQ9Ik0yMC41MyAzLjczIDE0IDkuMzMgNy40NyAzLjczTTcuNDcgMjQuMjdsNi41MyAtNS42MCA2LjUzIDUuNjAiLz48L3N2Zz4nfSwxNzcyNTUoZSl7ZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDI4IDI4IiB3aWR0aD0iMjgiIGhlaWdodD0iMjgiPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZD0iTTE0IDd2MTIuOTNsNS4xOC00LjMxLjY0Ljc2LTYuMzIgNS4yNy02LjMyLTUuMjcuNjQtLjc2TDEzIDE5LjkzVjdoMXoiLz48L3N2Zz4nfSw1MzY1MzMoZSl7ZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDI4IDI4IiB3aWR0aD0iMjgiIGhlaWdodD0iMjgiPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZD0iTTE5LjMyIDZIOC42OEEyLjY4IDIuNjggMCAwIDAgNiA4LjY4VjExaDFWOC42OEM3IDcuNzUgNy43NSA3IDguNjggN2gxMC42NGMuOTMgMCAxLjY4Ljc1IDEuNjggMS42OFYxMWgxVjguNjhDMjIgNy4yIDIwLjggNiAxOS4zMiA2ek03IDE5LjMyYzAgLjkzLjc1IDEuNjggMS42OCAxLjY4aDEwLjY0Yy45MyAwIDEuNjgtLjc1IDEuNjgtMS42OFYxN2gxdjIuMzJDMjIgMjAuOCAyMC44IDIyIDE5LjMyIDIySDguNjhBMi42OCAyLjY4IDAgMCAxIDYgMTkuMzJWMTdoMXYyLjMyeiIvPjwvc3ZnPid9LDI5NjE2MyhlKXsKZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDI4IDI4IiB3aWR0aD0iMjgiIGhlaWdodD0iMjgiIGZpbGw9Im5vbmUiPjxwYXRoIHN0cm9rZT0iY3VycmVudENvbG9yIiBkPSJtNy40NyA5LjMzIDYuNTMgLTUuNjBMMjAuNTMgOS4zM00yMC41MyAxOC42N2wtNi41MyA1LjYwTDcuNDcgMTguNjciLz48L3N2Zz4nfSw2MTczMDMoZSl7ZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDI4IDI4IiB3aWR0aD0iMjgiIGhlaWdodD0iMjgiPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZD0iTTE4IDdoNXYxaC0yLjAxbC0xLjMzIDE0LjY0YTEuNSAxLjUgMCAwIDEtMS41IDEuMzZIOS44NGExLjUgMS41IDAgMCAxLTEuNDktMS4zNkw3LjAxIDhINVY3aDVWNmMwLTEuMS45LTIgMi0yaDRhMiAyIDAgMCAxIDIgMnYxWm0tNi0yYTEgMSAwIDAgMC0xIDF2MWg2VjZhMSAxIDAgMCAwLTEtMWgtNFpNOC4wMiA4bDEuMzIgMTQuNTRhLjUuNSAwIDAgMCAuNS40Nmg4LjMzYS41LjUgMCAwIDAgLjUtLjQ2TDE5Ljk5IDhIOC4wMloiLz48L3N2Zz4nfSw5NjIwNzIoZSl7ZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDI4IDI4IiB3aWR0aD0iMjgiIGhlaWdodD0iMjgiPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZD0iTTEzLjUgNi4zNWw2LjMyIDUuMjctLjY0Ljc2TDE0IDguMDdWMjFoLTFWOC4wN2wtNS4xOCA0LjMxLS42NC0uNzYgNi4zMi01LjI3eiIvPjwvc3ZnPid9LDc1MTUxMShlKXtlLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMTUgMTUiIHdpZHRoPSIxNSIgaGVpZ2h0PSIxNSI+PGNpcmNsZSBmaWxsPSJjdXJyZW50Q29sb3IiIGN4PSIxMi43NSIgY3k9IjcuNSIgcj0iMS4yNSIvPjxjaXJjbGUgZmlsbD0iY3VycmVudENvbG9yIiBjeD0iNy41IiBjeT0iNy41IiByPSIxLjI1Ii8+PGNpcmNsZSBmaWxsPSJjdXJyZW50Q29sb3IiIGN4PSIyLjI1IiBjeT0iNy41IiByPSIxLjI1Ii8+PC9zdmc+J30sNDIzNjQzKGUpe2UuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNSAxNSIgd2lkdGg9IjE1IiBoZWlnaHQ9IjE1Ij48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGQ9Ik0xMS44MyA4Ljg4bC0uNjYtLjc2TDggMTAuOVYzSDd2Ny45TDMuODMgOC4xMmwtLjY2Ljc2IDQuMzMgMy43OCA0LjMzLTMuNzh6Ii8+PC9zdmc+J30sNTM4MDkoZSl7ZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDE1IDE1IiB3aWR0aD0iMTUiIGhlaWdodD0iMTUiIGZpbGw9Im5vbmUiPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZD0iTTQuNSAxMkExLjUgMS41IDAgMCAxIDMgMTAuNVY5SDJ2MS41QTIuNSAyLjUgMCAwIDAgNC41IDEzaDZhMi41IDIuNSAwIDAgMCAyLjUtMi41VjloLTF2MS41YzAgLjgzLS42NyAxLjUtMS41IDEuNWgtNnoiIGNsYXNzPSJicmFja2V0LXVwIi8+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBkPSJNNC41IDNDMy42NyAzIDMgMy42NyAzIDQuNVY2SDJWNC41QTIuNSAyLjUgMCAwIDEgNC41IDJoNkEyLjUgMi41IDAgMCAxIDEzIDQuNVY2aC0xVjQuNWMwLS44My0uNjctMS41LTEuNS0xLjVoLTZ6IiBjbGFzcz0iYnJhY2tldC1kb3duIi8+PC9zdmc+J30sNjQ4OTUoZSl7ZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDE1IDE1IiB3aWR0aD0iMTUiIGhlaWdodD0iMTUiIGZpbGw9Im5vbmUiPjxwYXRoIHN0cm9rZT0iY3VycmVudENvbG9yIiBkPSJtNCA1IDMuNS0zTDExIDUiIGNsYXNzPSJicmFja2V0LXVwIi8+PHBhdGggc3Ryb2tlPSJjdXJyZW50Q29sb3IiIGQ9Ik0xMSAxMGwtMy41IDNMNCAxMCIgY2xhc3M9ImJyYWNrZXQtZG93biIvPjwvc3ZnPid9LDI4NDA3NShlKXtlLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMTUgMTUiIHdpZHRoPSIxNSIgaGVpZ2h0PSIxNSI+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBkPSJNNi41IDJhLjUuNSAwIDAgMC0uNS41VjNoM3YtLjVhLjUuNSAwIDAgMC0uNS0uNWgtMlpNMTAgM2gzdjFoLTEuMDVsLS44NiA4LjY1QTEuNSAxLjUgMCAwIDEgOS41OSAxNEg1LjRhMS41IDEuNSAwIDAgMS0xLjQ5LTEuMzVMMy4wNSA0SDJWM2gzdi0uNUM1IDEuNjcgNS42NyAxIDYuNSAxaDJjLjgzIDAgMS41LjY3IDEuNSAxLjVWM1pNNC4wNSA0bC44NiA4LjU1YS41LjUgMCAwIDAgLjUuNDVIOS42YS41LjUgMCAwIDAgLjUtLjQ1TDEwLjk0IDRoLTYuOVoiLz48L3N2Zz4nfSw4MTI5NDgoZSl7ZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDE1IDE1IiB3aWR0aD0iMTUiIGhlaWdodD0iMTUiPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZD0iTTExLjgzIDYuMTJsLS42Ni43Nkw4IDQuMVYxMkg3VjQuMUwzLjgzIDYuODhsLS42Ni0uNzZMNy41IDIuMzRsNC4zMyAzLjc4eiIvPjwvc3ZnPid9LDM4MDU2KGUpe2UuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyOCAyOCIgd2lkdGg9IjI4IiBoZWlnaHQ9IjI4IiBmaWxsPSJub25lIj48cGF0aCBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2Utd2lkdGg9IjEuNSIgZD0iTTcgMTVsNSA1TDIzIDkiLz48L3N2Zz4nfSw4MjQyNDIoZSl7CmUuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNiAxNiIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2Ij48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGQ9Ik0yLjQgNS40NmEuOC44IDAgMCAxIDEuMTQtLjA1TDggOS40Mmw0LjQ2LTQuMDFhLjguOCAwIDAgMSAxLjA4IDEuMThMOCAxMS41OCAyLjQ3IDYuNTlhLjguOCAwIDAgMS0uMDYtMS4xM3oiLz48L3N2Zz4nfSw0NzE1MTgoZSl7ZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDE1IDE1IiB3aWR0aD0iMTUiIGhlaWdodD0iMTUiPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZD0iTTMuNSA1LjU4Yy4yNC0uMjguNjUtLjMuOTItLjA3TDcuNSA4LjE0bDMuMDgtMi42M2EuNjUuNjUgMCAxIDEgLjg0Ljk4TDcuNSA5Ljg2IDMuNTggNi40OWEuNjUuNjUgMCAwIDEtLjA3LS45MXoiLz48L3N2Zz4nfSw0MzE4NShlKXtlLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgNyA3IiB3aWR0aD0iNyIgaGVpZ2h0PSI3Ij48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGQ9Ik0zLjUgN0w3IDRINFYwSDNWNEgwTDMuNSA3WiIvPjwvc3ZnPid9LDM2ODk1NChlKXtlLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgOSA3IiB3aWR0aD0iOSIgaGVpZ2h0PSI3Ij48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGQ9Ik0uNSAzLjVMNCAwdjNoNXYxSDR2M3oiLz48L3N2Zz4nfSw5MzMxMTYoZSl7ZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDEyIDEyIiB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIGZpbGw9Im5vbmUiPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZD0iTTExLjU3IDBIMWExIDEgMCAwIDAtMSAxdjEwYTEgMSAwIDAgMCAxIDFoMTAuNTdhLjUuNSAwIDAgMCAuNDEtLjc4bC0zLjMtNC45NGEuNS41IDAgMCAxIDAtLjU2bDMuMy00Ljk0YS41LjUgMCAwIDAtLjQxLS43OHoiLz48L3N2Zz4nfSwyOTEyMDkoZSl7ZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDkgNyIgd2lkdGg9IjkiIGhlaWdodD0iNyI+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBkPSJNOC41IDMuNUw1IDB2M0gwdjFoNXYzeiIvPjwvc3ZnPid9LDgzNTU1MChlKXtlLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgNyA3IiB3aWR0aD0iNyIgaGVpZ2h0PSI3Ij48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGQ9Ik0zLjUgMEwwIDNoM3Y0aDFWM2gzTDMuNSAweiIvPjwvc3ZnPid9LDI2MDYwMyhlLHQsaSl7InVzZSBzdHJpY3QiO2kuZCh0LHtkZWZhdWx0OigpPT5zfSk7Y29uc3Qgcz1mdW5jdGlvbigpe3ZhciBlPXtiYXNlOiJodHRwczovL3R3ZW1vamkubWF4Y2RuLmNvbS92LzEzLjAuMS8iLGV4dDoiLnBuZyIsc2l6ZToiNzJ4NzIiLGNsYXNzTmFtZToiZW1vamkiLGNvbnZlcnQ6e2Zyb21Db2RlUG9pbnQ6ZnVuY3Rpb24oZSl7dmFyIHQ9InN0cmluZyI9PXR5cGVvZiBlP3BhcnNlSW50KGUsMTYpOmU7aWYodDw2NTUzNilyZXR1cm4gbCh0KTtyZXR1cm4gbCg1NTI5NisoKHQtPTY1NTM2KT4+MTApLDU2MzIwKygxMDIzJnQpKX0sdG9Db2RlUG9pbnQ6Yn0sb25lcnJvcjpmdW5jdGlvbigpe3RoaXMucGFyZW50Tm9kZSYmdGhpcy5wYXJlbnROb2RlLnJlcGxhY2VDaGlsZChyKHRoaXMuYWx0LCExKSx0aGlzKX0scGFyc2U6ZnVuY3Rpb24odCxpKXtpJiYiZnVuY3Rpb24iIT10eXBlb2YgaXx8KGk9e2NhbGxiYWNrOml9KTtyZXR1cm4oInN0cmluZyI9PXR5cGVvZiB0P3A6aCkodCx7Y2FsbGJhY2s6aS5jYWxsYmFja3x8ZCxhdHRyaWJ1dGVzOiJmdW5jdGlvbiI9PXR5cGVvZiBpLmF0dHJpYnV0ZXM/aS5hdHRyaWJ1dGVzOmcsYmFzZToic3RyaW5nIj09dHlwZW9mIGkuYmFzZT9pLmJhc2U6ZS5iYXNlLGV4dDppLmV4dHx8ZS5leHQsc2l6ZTppLmZvbGRlcnx8KHM9aS5zaXplfHxlLnNpemUsIm51bWJlciI9PXR5cGVvZiBzP3MrIngiK3M6cyksY2xhc3NOYW1lOmkuY2xhc3NOYW1lfHxlLmNsYXNzTmFtZSxvbmVycm9yOmkub25lcnJvcnx8ZS5vbmVycm9yfSk7dmFyIHN9LHJlcGxhY2U6bSx0ZXN0OmZ1bmN0aW9uKGUpe2kubGFzdEluZGV4PTA7dmFyIHQ9aS50ZXN0KGUpO3JldHVybiBpLmxhc3RJbmRleD0wLHR9fSx0PXsiJiI6IiZhbXA7IiwiPCI6IiZsdDsiLCI+IjoiJmd0OyIsIiciOiImIzM5OyIsJyInOiImcXVvdDsiCn0saT0vKD86XHVkODNkXHVkYzY4XHVkODNjXHVkZmZiXHUyMDBkXHVkODNlXHVkZDFkXHUyMDBkXHVkODNkXHVkYzY4XHVkODNjW1x1ZGZmYy1cdWRmZmZdfFx1ZDgzZFx1ZGM2OFx1ZDgzY1x1ZGZmY1x1MjAwZFx1ZDgzZVx1ZGQxZFx1MjAwZFx1ZDgzZFx1ZGM2OFx1ZDgzY1tcdWRmZmJcdWRmZmQtXHVkZmZmXXxcdWQ4M2RcdWRjNjhcdWQ4M2NcdWRmZmRcdTIwMGRcdWQ4M2VcdWRkMWRcdTIwMGRcdWQ4M2RcdWRjNjhcdWQ4M2NbXHVkZmZiXHVkZmZjXHVkZmZlXHVkZmZmXXxcdWQ4M2RcdWRjNjhcdWQ4M2NcdWRmZmVcdTIwMGRcdWQ4M2VcdWRkMWRcdTIwMGRcdWQ4M2RcdWRjNjhcdWQ4M2NbXHVkZmZiLVx1ZGZmZFx1ZGZmZl18XHVkODNkXHVkYzY4XHVkODNjXHVkZmZmXHUyMDBkXHVkODNlXHVkZDFkXHUyMDBkXHVkODNkXHVkYzY4XHVkODNjW1x1ZGZmYi1cdWRmZmVdfFx1ZDgzZFx1ZGM2OVx1ZDgzY1x1ZGZmYlx1MjAwZFx1ZDgzZVx1ZGQxZFx1MjAwZFx1ZDgzZFx1ZGM2OFx1ZDgzY1tcdWRmZmMtXHVkZmZmXXxcdWQ4M2RcdWRjNjlcdWQ4M2NcdWRmZmJcdTIwMGRcdWQ4M2VcdWRkMWRcdTIwMGRcdWQ4M2RcdWRjNjlcdWQ4M2NbXHVkZmZjLVx1ZGZmZl18XHVkODNkXHVkYzY5XHVkODNjXHVkZmZjXHUyMDBkXHVkODNlXHVkZDFkXHUyMDBkXHVkODNkXHVkYzY4XHVkODNjW1x1ZGZmYlx1ZGZmZC1cdWRmZmZdfFx1ZDgzZFx1ZGM2OVx1ZDgzY1x1ZGZmY1x1MjAwZFx1ZDgzZVx1ZGQxZFx1MjAwZFx1ZDgzZFx1ZGM2OVx1ZDgzY1tcdWRmZmJcdWRmZmQtXHVkZmZmXXxcdWQ4M2RcdWRjNjlcdWQ4M2NcdWRmZmRcdTIwMGRcdWQ4M2VcdWRkMWRcdTIwMGRcdWQ4M2RcdWRjNjhcdWQ4M2NbXHVkZmZiXHVkZmZjXHVkZmZlXHVkZmZmXXxcdWQ4M2RcdWRjNjlcdWQ4M2NcdWRmZmRcdTIwMGRcdWQ4M2VcdWRkMWRcdTIwMGRcdWQ4M2RcdWRjNjlcdWQ4M2NbXHVkZmZiXHVkZmZjXHVkZmZlXHVkZmZmXXxcdWQ4M2RcdWRjNjlcdWQ4M2NcdWRmZmVcdTIwMGRcdWQ4M2VcdWRkMWRcdTIwMGRcdWQ4M2RcdWRjNjhcdWQ4M2NbXHVkZmZiLVx1ZGZmZFx1ZGZmZl18XHVkODNkXHVkYzY5XHVkODNjXHVkZmZlXHUyMDBkXHVkODNlXHVkZDFkXHUyMDBkXHVkODNkXHVkYzY5XHVkODNjW1x1ZGZmYi1cdWRmZmRcdWRmZmZdfFx1ZDgzZFx1ZGM2OVx1ZDgzY1x1ZGZmZlx1MjAwZFx1ZDgzZVx1ZGQxZFx1MjAwZFx1ZDgzZFx1ZGM2OFx1ZDgzY1tcdWRmZmItXHVkZmZlXXxcdWQ4M2RcdWRjNjlcdWQ4M2NcdWRmZmZcdTIwMGRcdWQ4M2VcdWRkMWRcdTIwMGRcdWQ4M2RcdWRjNjlcdWQ4M2NbXHVkZmZiLVx1ZGZmZV18XHVkODNlXHVkZGQxXHVkODNjXHVkZmZiXHUyMDBkXHVkODNlXHVkZDFkXHUyMDBkXHVkODNlXHVkZGQxXHVkODNjW1x1ZGZmYi1cdWRmZmZdfFx1ZDgzZVx1ZGRkMVx1ZDgzY1x1ZGZmY1x1MjAwZFx1ZDgzZVx1ZGQxZFx1MjAwZFx1ZDgzZVx1ZGRkMVx1ZDgzY1tcdWRmZmItXHVkZmZmXXxcdWQ4M2VcdWRkZDFcdWQ4M2NcdWRmZmRcdTIwMGRcdWQ4M2VcdWRkMWRcdTIwMGRcdWQ4M2VcdWRkZDFcdWQ4M2NbXHVkZmZiLVx1ZGZmZl18XHVkODNlXHVkZGQxXHVkODNjXHVkZmZlXHUyMDBkXHVkODNlXHVkZDFkXHUyMDBkXHVkODNlXHVkZGQxXHVkODNjW1x1ZGZmYi1cdWRmZmZdfFx1ZDgzZVx1ZGRkMVx1ZDgzY1x1ZGZmZlx1MjAwZFx1ZDgzZVx1ZGQxZFx1MjAwZFx1ZDgzZVx1ZGRkMVx1ZDgzY1tcdWRmZmItXHVkZmZmXXxcdWQ4M2VcdWRkZDFcdTIwMGRcdWQ4M2VcdWRkMWRcdTIwMGRcdWQ4M2VcdWRkZDF8XHVkODNkXHVkYzZiXHVkODNjW1x1ZGZmYi1cdWRmZmZdfFx1ZDgzZFx1ZGM2Y1x1ZDgzY1tcdWRmZmItXHVkZmZmXXxcdWQ4M2RcdWRjNmRcdWQ4M2NbXHVkZmZiLVx1ZGZmZl18XHVkODNkW1x1ZGM2Yi1cdWRjNmRdKXwoPzpcdWQ4M2RbXHVkYzY4XHVkYzY5XXxcdWQ4M2VcdWRkZDEpKD86XHVkODNjW1x1ZGZmYi1cdWRmZmZdKT9cdTIwMGQoPzpcdTI2OTVcdWZlMGZ8XHUyNjk2XHVmZTBmfFx1MjcwOFx1ZmUwZnxcdWQ4M2NbXHVkZjNlXHVkZjczXHVkZjdjXHVkZjg0XHVkZjkzXHVkZmE0XHVkZmE4XHVkZmViXHVkZmVkXXxcdWQ4M2RbXHVkY2JiXHVkY2JjXHVkZDI3XHVkZDJjXHVkZTgwXHVkZTkyXXxcdWQ4M2VbXHVkZGFmLVx1ZGRiM1x1ZGRiY1x1ZGRiZF0pfCg/Olx1ZDgzY1tcdWRmY2JcdWRmY2NdfFx1ZDgzZFtcdWRkNzRcdWRkNzVdfFx1MjZmOSkoKD86XHVkODNjW1x1ZGZmYi1cdWRmZmZdfFx1ZmUwZilcdTIwMGRbXHUyNjQwXHUyNjQyXVx1ZmUwZil8KD86XHVkODNjW1x1ZGZjM1x1ZGZjNFx1ZGZjYV18XHVkODNkW1x1ZGM2ZVx1ZGM3MFx1ZGM3MVx1ZGM3M1x1ZGM3N1x1ZGM4MVx1ZGM4Mlx1ZGM4Nlx1ZGM4N1x1ZGU0NS1cdWRlNDdcdWRlNGJcdWRlNGRcdWRlNGVcdWRlYTNcdWRlYjQtXHVkZWI2XXxcdWQ4M2VbXHVkZDI2XHVkZDM1XHVkZDM3LVx1ZGQzOVx1ZGQzZFx1ZGQzZVx1ZGRiOFx1ZGRiOVx1ZGRjZC1cdWRkY2ZcdWRkZDYtXHVkZGRkXSkoPzpcdWQ4M2NbXHVkZmZiLVx1ZGZmZl0pP1x1MjAwZFtcdTI2NDBcdTI2NDJdXHVmZTBmfCg/Olx1ZDgzZFx1ZGM2OFx1MjAwZFx1Mjc2NFx1ZmUwZlx1MjAwZFx1ZDgzZFx1ZGM4Ylx1MjAwZFx1ZDgzZFx1ZGM2OHxcdWQ4M2RcdWRjNjhcdTIwMGRcdWQ4M2RcdWRjNjhcdTIwMGRcdWQ4M2RcdWRjNjZcdTIwMGRcdWQ4M2RcdWRjNjZ8XHVkODNkXHVkYzY4XHUyMDBkXHVkODNkXHVkYzY4XHUyMDBkXHVkODNkXHVkYzY3XHUyMDBkXHVkODNkW1x1ZGM2Nlx1ZGM2N118XHVkODNkXHVkYzY4XHUyMDBkXHVkODNkXHVkYzY5XHUyMDBkXHVkODNkXHVkYzY2XHUyMDBkXHVkODNkXHVkYzY2fFx1ZDgzZFx1ZGM2OFx1MjAwZFx1ZDgzZFx1ZGM2OVx1MjAwZFx1ZDgzZFx1ZGM2N1x1MjAwZFx1ZDgzZFtcdWRjNjZcdWRjNjddfFx1ZDgzZFx1ZGM2OVx1MjAwZFx1Mjc2NFx1ZmUwZlx1MjAwZFx1ZDgzZFx1ZGM4Ylx1MjAwZFx1ZDgzZFtcdWRjNjhcdWRjNjldfFx1ZDgzZFx1ZGM2OVx1MjAwZFx1ZDgzZFx1ZGM2OVx1MjAwZFx1ZDgzZFx1ZGM2Nlx1MjAwZFx1ZDgzZFx1ZGM2NnxcdWQ4M2RcdWRjNjlcdTIwMGRcdWQ4M2RcdWRjNjlcdTIwMGRcdWQ4M2RcdWRjNjdcdTIwMGRcdWQ4M2RbXHVkYzY2XHVkYzY3XXxcdWQ4M2RcdWRjNjhcdTIwMGRcdTI3NjRcdWZlMGZcdTIwMGRcdWQ4M2RcdWRjNjh8XHVkODNkXHVkYzY4XHUyMDBkXHVkODNkXHVkYzY2XHUyMDBkXHVkODNkXHVkYzY2fFx1ZDgzZFx1ZGM2OFx1MjAwZFx1ZDgzZFx1ZGM2N1x1MjAwZFx1ZDgzZFtcdWRjNjZcdWRjNjddfFx1ZDgzZFx1ZGM2OFx1MjAwZFx1ZDgzZFx1ZGM2OFx1MjAwZFx1ZDgzZFtcdWRjNjZcdWRjNjddfFx1ZDgzZFx1ZGM2OFx1MjAwZFx1ZDgzZFx1ZGM2OVx1MjAwZFx1ZDgzZFtcdWRjNjZcdWRjNjddfFx1ZDgzZFx1ZGM2OVx1MjAwZFx1Mjc2NFx1ZmUwZlx1MjAwZFx1ZDgzZFtcdWRjNjhcdWRjNjldfFx1ZDgzZFx1ZGM2OVx1MjAwZFx1ZDgzZFx1ZGM2Nlx1MjAwZFx1ZDgzZFx1ZGM2NnxcdWQ4M2RcdWRjNjlcdTIwMGRcdWQ4M2RcdWRjNjdcdTIwMGRcdWQ4M2RbXHVkYzY2XHVkYzY3XXxcdWQ4M2RcdWRjNjlcdTIwMGRcdWQ4M2RcdWRjNjlcdTIwMGRcdWQ4M2RbXHVkYzY2XHVkYzY3XXxcdWQ4M2NcdWRmZjNcdWZlMGZcdTIwMGRcdTI2YTdcdWZlMGZ8XHVkODNjXHVkZmYzXHVmZTBmXHUyMDBkXHVkODNjXHVkZjA4fFx1ZDgzY1x1ZGZmNFx1MjAwZFx1MjYyMFx1ZmUwZnxcdWQ4M2RcdWRjMTVcdTIwMGRcdWQ4M2VcdWRkYmF8XHVkODNkXHVkYzNiXHUyMDBkXHUyNzQ0XHVmZTBmfFx1ZDgzZFx1ZGM0MVx1MjAwZFx1ZDgzZFx1ZGRlOHxcdWQ4M2RcdWRjNjhcdTIwMGRcdWQ4M2RbXHVkYzY2XHVkYzY3XXxcdWQ4M2RcdWRjNjlcdTIwMGRcdWQ4M2RbXHVkYzY2XHVkYzY3XXxcdWQ4M2RcdWRjNmZcdTIwMGRcdTI2NDBcdWZlMGZ8XHVkODNkXHVkYzZmXHUyMDBkXHUyNjQyXHVmZTBmfFx1ZDgzZVx1ZGQzY1x1MjAwZFx1MjY0MFx1ZmUwZnxcdWQ4M2VcdWRkM2NcdTIwMGRcdTI2NDJcdWZlMGZ8XHVkODNlXHVkZGRlXHUyMDBkXHUyNjQwXHVmZTBmfFx1ZDgzZVx1ZGRkZVx1MjAwZFx1MjY0Mlx1ZmUwZnxcdWQ4M2VcdWRkZGZcdTIwMGRcdTI2NDBcdWZlMGZ8XHVkODNlXHVkZGRmXHUyMDBkXHUyNjQyXHVmZTBmfFx1ZDgzZFx1ZGMwOFx1MjAwZFx1MmIxYil8WyMqMC05XVx1ZmUwZj9cdTIwZTN8KD86W8Kpwq5cdTIxMjJcdTI2NWZdXHVmZTBmKXwoPzpcdWQ4M2NbXHVkYzA0XHVkZDcwXHVkZDcxXHVkZDdlXHVkZDdmXHVkZTAyXHVkZTFhXHVkZTJmXHVkZTM3XHVkZjIxXHVkZjI0LVx1ZGYyY1x1ZGYzNlx1ZGY3ZFx1ZGY5Nlx1ZGY5N1x1ZGY5OS1cdWRmOWJcdWRmOWVcdWRmOWZcdWRmY2RcdWRmY2VcdWRmZDQtXHVkZmRmXHVkZmYzXHVkZmY1XHVkZmY3XXxcdWQ4M2RbXHVkYzNmXHVkYzQxXHVkY2ZkXHVkZDQ5XHVkZDRhXHVkZDZmXHVkZDcwXHVkZDczXHVkZDc2LVx1ZGQ3OVx1ZGQ4N1x1ZGQ4YS1cdWRkOGRcdWRkYTVcdWRkYThcdWRkYjFcdWRkYjJcdWRkYmNcdWRkYzItXHVkZGM0XHVkZGQxLVx1ZGRkM1x1ZGRkYy1cdWRkZGVcdWRkZTFcdWRkZTNcdWRkZThcdWRkZWZcdWRkZjNcdWRkZmFcdWRlY2JcdWRlY2QtXHVkZWNmXHVkZWUwLVx1ZGVlNVx1ZGVlOVx1ZGVmMFx1ZGVmM118W1x1MjAzY1x1MjA0OVx1MjEzOVx1MjE5NC1cdTIxOTlcdTIxYTlcdTIxYWFcdTIzMWFcdTIzMWJcdTIzMjhcdTIzY2ZcdTIzZWQtXHUyM2VmXHUyM2YxXHUyM2YyXHUyM2Y4LVx1MjNmYVx1MjRjMlx1MjVhYVx1MjVhYlx1MjViNlx1MjVjMFx1MjVmYi1cdTI1ZmVcdTI2MDAtXHUyNjA0XHUyNjBlXHUyNjExXHUyNjE0XHUyNjE1XHUyNjE4XHUyNjIwXHUyNjIyXHUyNjIzXHUyNjI2XHUyNjJhXHUyNjJlXHUyNjJmXHUyNjM4LVx1MjYzYVx1MjY0MFx1MjY0Mlx1MjY0OC1cdTI2NTNcdTI2NjBcdTI2NjNcdTI2NjVcdTI2NjZcdTI2NjhcdTI2N2JcdTI2N2ZcdTI2OTItXHUyNjk3XHUyNjk5XHUyNjliXHUyNjljXHUyNmEwXHUyNmExXHUyNmE3XHUyNmFhXHUyNmFiXHUyNmIwXHUyNmIxXHUyNmJkXHUyNmJlXHUyNmM0XHUyNmM1XHUyNmM4XHUyNmNmXHUyNmQxXHUyNmQzXHUyNmQ0XHUyNmU5XHUyNmVhXHUyNmYwLVx1MjZmNVx1MjZmOFx1MjZmYVx1MjZmZFx1MjcwMlx1MjcwOFx1MjcwOVx1MjcwZlx1MjcxMlx1MjcxNFx1MjcxNlx1MjcxZFx1MjcyMVx1MjczM1x1MjczNFx1Mjc0NFx1Mjc0N1x1Mjc1N1x1Mjc2M1x1Mjc2NFx1MjdhMVx1MjkzNFx1MjkzNVx1MmIwNS1cdTJiMDdcdTJiMWJcdTJiMWNcdTJiNTBcdTJiNTVcdTMwMzBcdTMwM2RcdTMyOTdcdTMyOTldKSg/Olx1ZmUwZnwoPyFcdWZlMGUpKXwoPzooPzpcdWQ4M2NbXHVkZmNiXHVkZmNjXXxcdWQ4M2RbXHVkZDc0XHVkZDc1XHVkZDkwXXxbXHUyNjFkXHUyNmY3XHUyNmY5XHUyNzBjXHUyNzBkXSkoPzpcdWZlMGZ8KD8hXHVmZTBlKSl8KD86XHVkODNjW1x1ZGY4NVx1ZGZjMi1cdWRmYzRcdWRmYzdcdWRmY2FdfFx1ZDgzZFtcdWRjNDJcdWRjNDNcdWRjNDYtXHVkYzUwXHVkYzY2LVx1ZGM2OVx1ZGM2ZVx1ZGM3MC1cdWRjNzhcdWRjN2NcdWRjODEtXHVkYzgzXHVkYzg1LVx1ZGM4N1x1ZGNhYVx1ZGQ3YVx1ZGQ5NVx1ZGQ5Nlx1ZGU0NS1cdWRlNDdcdWRlNGItXHVkZTRmXHVkZWEzXHVkZWI0LVx1ZGViNlx1ZGVjMFx1ZGVjY118XHVkODNlW1x1ZGQwY1x1ZGQwZlx1ZGQxOC1cdWRkMWNcdWRkMWVcdWRkMWZcdWRkMjZcdWRkMzAtXHVkZDM5XHVkZDNkXHVkZDNlXHVkZDc3XHVkZGI1XHVkZGI2XHVkZGI4XHVkZGI5XHVkZGJiXHVkZGNkLVx1ZGRjZlx1ZGRkMS1cdWRkZGRdfFtcdTI3MGFcdTI3MGJdKSkoPzpcdWQ4M2NbXHVkZmZiLVx1ZGZmZl0pP3woPzpcdWQ4M2NcdWRmZjRcdWRiNDBcdWRjNjdcdWRiNDBcdWRjNjJcdWRiNDBcdWRjNjVcdWRiNDBcdWRjNmVcdWRiNDBcdWRjNjdcdWRiNDBcdWRjN2Z8XHVkODNjXHVkZmY0XHVkYjQwXHVkYzY3XHVkYjQwXHVkYzYyXHVkYjQwXHVkYzczXHVkYjQwXHVkYzYzXHVkYjQwXHVkYzc0XHVkYjQwXHVkYzdmfFx1ZDgzY1x1ZGZmNFx1ZGI0MFx1ZGM2N1x1ZGI0MFx1ZGM2Mlx1ZGI0MFx1ZGM3N1x1ZGI0MFx1ZGM2Y1x1ZGI0MFx1ZGM3M1x1ZGI0MFx1ZGM3ZnxcdWQ4M2NcdWRkZTZcdWQ4M2NbXHVkZGU4LVx1ZGRlY1x1ZGRlZVx1ZGRmMVx1ZGRmMlx1ZGRmNFx1ZGRmNi1cdWRkZmFcdWRkZmNcdWRkZmRcdWRkZmZdfFx1ZDgzY1x1ZGRlN1x1ZDgzY1tcdWRkZTZcdWRkZTdcdWRkZTktXHVkZGVmXHVkZGYxLVx1ZGRmNFx1ZGRmNi1cdWRkZjlcdWRkZmJcdWRkZmNcdWRkZmVcdWRkZmZdfFx1ZDgzY1x1ZGRlOFx1ZDgzY1tcdWRkZTZcdWRkZThcdWRkZTlcdWRkZWItXHVkZGVlXHVkZGYwLVx1ZGRmNVx1ZGRmN1x1ZGRmYS1cdWRkZmZdfFx1ZDgzY1x1ZGRlOVx1ZDgzY1tcdWRkZWFcdWRkZWNcdWRkZWZcdWRkZjBcdWRkZjJcdWRkZjRcdWRkZmZdfFx1ZDgzY1x1ZGRlYVx1ZDgzY1tcdWRkZTZcdWRkZThcdWRkZWFcdWRkZWNcdWRkZWRcdWRkZjctXHVkZGZhXXxcdWQ4M2NcdWRkZWJcdWQ4M2NbXHVkZGVlLVx1ZGRmMFx1ZGRmMlx1ZGRmNFx1ZGRmN118XHVkODNjXHVkZGVjXHVkODNjW1x1ZGRlNlx1ZGRlN1x1ZGRlOS1cdWRkZWVcdWRkZjEtXHVkZGYzXHVkZGY1LVx1ZGRmYVx1ZGRmY1x1ZGRmZV18XHVkODNjXHVkZGVkXHVkODNjW1x1ZGRmMFx1ZGRmMlx1ZGRmM1x1ZGRmN1x1ZGRmOVx1ZGRmYV18XHVkODNjXHVkZGVlXHVkODNjW1x1ZGRlOC1cdWRkZWFcdWRkZjEtXHVkZGY0XHVkZGY2LVx1ZGRmOV18XHVkODNjXHVkZGVmXHVkODNjW1x1ZGRlYVx1ZGRmMlx1ZGRmNFx1ZGRmNV18XHVkODNjXHVkZGYwXHVkODNjW1x1ZGRlYVx1ZGRlYy1cdWRkZWVcdWRkZjJcdWRkZjNcdWRkZjVcdWRkZjdcdWRkZmNcdWRkZmVcdWRkZmZdfFx1ZDgzY1x1ZGRmMVx1ZDgzY1tcdWRkZTYtXHVkZGU4XHVkZGVlXHVkZGYwXHVkZGY3LVx1ZGRmYlx1ZGRmZV18XHVkODNjXHVkZGYyXHVkODNjW1x1ZGRlNlx1ZGRlOC1cdWRkZWRcdWRkZjAtXHVkZGZmXXxcdWQ4M2NcdWRkZjNcdWQ4M2NbXHVkZGU2XHVkZGU4XHVkZGVhLVx1ZGRlY1x1ZGRlZVx1ZGRmMVx1ZGRmNFx1ZGRmNVx1ZGRmN1x1ZGRmYVx1ZGRmZl18XHVkODNjXHVkZGY0XHVkODNjXHVkZGYyfFx1ZDgzY1x1ZGRmNVx1ZDgzY1tcdWRkZTZcdWRkZWEtXHVkZGVkXHVkZGYwLVx1ZGRmM1x1ZGRmNy1cdWRkZjlcdWRkZmNcdWRkZmVdfFx1ZDgzY1x1ZGRmNlx1ZDgzY1x1ZGRlNnxcdWQ4M2NcdWRkZjdcdWQ4M2NbXHVkZGVhXHVkZGY0XHVkZGY4XHVkZGZhXHVkZGZjXXxcdWQ4M2NcdWRkZjhcdWQ4M2NbXHVkZGU2LVx1ZGRlYVx1ZGRlYy1cdWRkZjRcdWRkZjctXHVkZGY5XHVkZGZiXHVkZGZkLVx1ZGRmZl18XHVkODNjXHVkZGY5XHVkODNjW1x1ZGRlNlx1ZGRlOFx1ZGRlOVx1ZGRlYi1cdWRkZWRcdWRkZWYtXHVkZGY0XHVkZGY3XHVkZGY5XHVkZGZiXHVkZGZjXHVkZGZmXXxcdWQ4M2NcdWRkZmFcdWQ4M2NbXHVkZGU2XHVkZGVjXHVkZGYyXHVkZGYzXHVkZGY4XHVkZGZlXHVkZGZmXXxcdWQ4M2NcdWRkZmJcdWQ4M2NbXHVkZGU2XHVkZGU4XHVkZGVhXHVkZGVjXHVkZGVlXHVkZGYzXHVkZGZhXXxcdWQ4M2NcdWRkZmNcdWQ4M2NbXHVkZGViXHVkZGY4XXxcdWQ4M2NcdWRkZmRcdWQ4M2NcdWRkZjB8XHVkODNjXHVkZGZlXHVkODNjW1x1ZGRlYVx1ZGRmOV18XHVkODNjXHVkZGZmXHVkODNjW1x1ZGRlNlx1ZGRmMlx1ZGRmY118XHVkODNjW1x1ZGNjZlx1ZGQ4ZVx1ZGQ5MS1cdWRkOWFcdWRkZTYtXHVkZGZmXHVkZTAxXHVkZTMyLVx1ZGUzNlx1ZGUzOC1cdWRlM2FcdWRlNTBcdWRlNTFcdWRmMDAtXHVkZjIwXHVkZjJkLVx1ZGYzNVx1ZGYzNy1cdWRmN2NcdWRmN2UtXHVkZjg0XHVkZjg2LVx1ZGY5M1x1ZGZhMC1cdWRmYzFcdWRmYzVcdWRmYzZcdWRmYzhcdWRmYzlcdWRmY2YtXHVkZmQzXHVkZmUwLVx1ZGZmMFx1ZGZmNFx1ZGZmOC1cdWRmZmZdfFx1ZDgzZFtcdWRjMDAtXHVkYzNlXHVkYzQwXHVkYzQ0XHVkYzQ1XHVkYzUxLVx1ZGM2NVx1ZGM2YVx1ZGM2Zlx1ZGM3OS1cdWRjN2JcdWRjN2QtXHVkYzgwXHVkYzg0XHVkYzg4LVx1ZGNhOVx1ZGNhYi1cdWRjZmNcdWRjZmYtXHVkZDNkXHVkZDRiLVx1ZGQ0ZVx1ZGQ1MC1cdWRkNjdcdWRkYTRcdWRkZmItXHVkZTQ0XHVkZTQ4LVx1ZGU0YVx1ZGU4MC1cdWRlYTJcdWRlYTQtXHVkZWIzXHVkZWI3LVx1ZGViZlx1ZGVjMS1cdWRlYzVcdWRlZDAtXHVkZWQyXHVkZWQ1LVx1ZGVkN1x1ZGVlYlx1ZGVlY1x1ZGVmNC1cdWRlZmNcdWRmZTAtXHVkZmViXXxcdWQ4M2VbXHVkZDBkXHVkZDBlXHVkZDEwLVx1ZGQxN1x1ZGQxZFx1ZGQyMC1cdWRkMjVcdWRkMjctXHVkZDJmXHVkZDNhXHVkZDNjXHVkZDNmLVx1ZGQ0NVx1ZGQ0Ny1cdWRkNzZcdWRkNzhcdWRkN2EtXHVkZGI0XHVkZGI3XHVkZGJhXHVkZGJjLVx1ZGRjYlx1ZGRkMFx1ZGRkZS1cdWRkZmZcdWRlNzAtXHVkZTc0XHVkZTc4LVx1ZGU3YVx1ZGU4MC1cdWRlODZcdWRlOTAtXHVkZWE4XHVkZWIwLVx1ZGViNlx1ZGVjMC1cdWRlYzJcdWRlZDAtXHVkZWQ2XXxbXHUyM2U5LVx1MjNlY1x1MjNmMFx1MjNmM1x1MjY3ZVx1MjZjZVx1MjcwNVx1MjcyOFx1Mjc0Y1x1Mjc0ZVx1Mjc1My1cdTI3NTVcdTI3OTUtXHUyNzk3XHUyN2IwXHUyN2JmXHVlNTBhXSl8XHVmZTBmL2cscz0vXHVGRTBGL2csbz1TdHJpbmcuZnJvbUNoYXJDb2RlKDgyMDUpLG49L1smPD4nIl0vZyxhPS9eKD86aWZyYW1lfG5vZnJhbWVzfG5vc2NyaXB0fHNjcmlwdHxzZWxlY3R8c3R5bGV8dGV4dGFyZWEpJC8sbD1TdHJpbmcuZnJvbUNoYXJDb2RlCjtyZXR1cm4gZTtmdW5jdGlvbiByKGUsdCl7cmV0dXJuIGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHQ/ZS5yZXBsYWNlKHMsIiIpOmUpfWZ1bmN0aW9uIGQoZSx0KXtyZXR1cm4iIi5jb25jYXQodC5iYXNlLHQuc2l6ZSwiLyIsZSx0LmV4dCl9ZnVuY3Rpb24gdShlLHQpe2Zvcih2YXIgaSxzLG89ZS5jaGlsZE5vZGVzLG49by5sZW5ndGg7bi0tOykzPT09KHM9KGk9b1tuXSkubm9kZVR5cGUpP3QucHVzaChpKToxIT09c3x8Im93bmVyU1ZHRWxlbWVudCJpbiBpfHxhLnRlc3QoaS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpKXx8dShpLHQpO3JldHVybiB0fWZ1bmN0aW9uIGMoZSl7cmV0dXJuIGIoZS5pbmRleE9mKG8pPDA/ZS5yZXBsYWNlKHMsIiIpOmUpfWZ1bmN0aW9uIGgoZSx0KXtmb3IodmFyIHMsbyxuLGEsbCxkLGgscCxfLGcsbSxiLHYsZj11KGUsW10pLFM9Zi5sZW5ndGg7Uy0tOyl7Zm9yKG49ITEsYT1kb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCksZD0obD1mW1NdKS5ub2RlVmFsdWUscD0wO2g9aS5leGVjKGQpOyl7aWYoKF89aC5pbmRleCkhPT1wJiZhLmFwcGVuZENoaWxkKHIoZC5zbGljZShwLF8pLCEwKSksYj1jKG09aFswXSkscD1fK20ubGVuZ3RoLHY9dC5jYWxsYmFjayhiLHQpLGImJnYpe2ZvcihvIGluKGc9bmV3IEltYWdlKS5vbmVycm9yPXQub25lcnJvcixnLnNldEF0dHJpYnV0ZSgiZHJhZ2dhYmxlIiwiZmFsc2UiKSxzPXQuYXR0cmlidXRlcyhtLGIpKXMuaGFzT3duUHJvcGVydHkobykmJjAhPT1vLmluZGV4T2YoIm9uIikmJiFnLmhhc0F0dHJpYnV0ZShvKSYmZy5zZXRBdHRyaWJ1dGUobyxzW29dKTtnLmNsYXNzTmFtZT10LmNsYXNzTmFtZSxnLmFsdD1tLGcuc3JjPXYsbj0hMCxhLmFwcGVuZENoaWxkKGcpfWd8fGEuYXBwZW5kQ2hpbGQocihtLCExKSksZz1udWxsfW4mJihwPGQubGVuZ3RoJiZhLmFwcGVuZENoaWxkKHIoZC5zbGljZShwKSwhMCkpLGwucGFyZW50Tm9kZS5yZXBsYWNlQ2hpbGQoYSxsKSl9cmV0dXJuIGV9ZnVuY3Rpb24gcChlLHQpe3JldHVybiBtKGUsKGZ1bmN0aW9uKGUpe3ZhciBpLHMsbz1lLGE9YyhlKSxsPXQuY2FsbGJhY2soYSx0KTtpZihhJiZsKXtmb3IocyBpbiBvPSI8aW1nICIuY29uY2F0KCdjbGFzcz0iJyx0LmNsYXNzTmFtZSwnIiAnLCdkcmFnZ2FibGU9ImZhbHNlIiAnLCdhbHQ9IicsZSwnIicsJyBzcmM9IicsbCwnIicpLGk9dC5hdHRyaWJ1dGVzKGUsYSkpaS5oYXNPd25Qcm9wZXJ0eShzKSYmMCE9PXMuaW5kZXhPZigib24iKSYmLTE9PT1vLmluZGV4T2YoIiAiK3MrIj0iKSYmKG89by5jb25jYXQoIiAiLHMsJz0iJyxpW3NdLnJlcGxhY2UobixfKSwnIicpKTtvPW8uY29uY2F0KCIvPiIpfXJldHVybiBvfSkpfWZ1bmN0aW9uIF8oZSl7cmV0dXJuIHRbZV19ZnVuY3Rpb24gZygpe3JldHVybiBudWxsfWZ1bmN0aW9uIG0oZSx0KXtyZXR1cm4gU3RyaW5nKGUpLnJlcGxhY2UoaSx0KX1mdW5jdGlvbiBiKGUsdCl7Zm9yKHZhciBpPVtdLHM9MCxvPTAsbj0wO248ZS5sZW5ndGg7KXM9ZS5jaGFyQ29kZUF0KG4rKyksbz8oaS5wdXNoKCg2NTUzNisoby01NTI5Njw8MTApKyhzLTU2MzIwKSkudG9TdHJpbmcoMTYpKSxvPTApOjU1Mjk2PD1zJiZzPD01NjMxOT9vPXM6aS5wdXNoKHMudG9TdHJpbmcoMTYpKTtyZXR1cm4gaS5qb2luKHR8fCItIil9fSgpfX1dKTs="}},"time_used":3,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":3,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/en.89618.e8db19d81376d486e288.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:13.937Z","timestamp":1785148033937,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/en.89618.e8db19d81376d486e288.js HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:13 GMT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a267ddb-15f\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Mon, 08 Jun 2026 08:31:23 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.55\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 06/08/2026 10:13:42\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 5d19587cac83b18ce56eea71a4786913\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":351,"size_decoded":966,"mime_type":"application/javascript; charset=utf-8","magic":"ASCII text, with very long lines (351), with no line terminators","md5":"846e435a133db84eb03e3413f477fb59","sha1":"4a30726e0dd97d7970d29e186394d5084ce62280","sha256":"dbfb0a54a4ac5aa54a0627d7183320ac1e11932f45a1b9b0fd3eb045d961c53f","sha512":"81cd04d2cc3522d75b2ac97f95540e5709fcf6db3becfaa513ba65a28ad252ed5e7242ef81861ea33e752ade52444aaaee1028e949b893e4207a076e31064b0c","ssdeep":"","tlshash":"bee0861fd071e9bc3f36864436619cd2b4a435d601f0c2c773c4ed40e0229ec1c4465c","first_seen":"2026-05-05T12:17:23.674052Z","last_seen":"2026-07-27T12:52:15.375972Z","times_seen":471,"resource_available":true,"data":"KHNlbGYud2VicGFja0NodW5rdHJhZGluZ3ZpZXc9c2VsZi53ZWJwYWNrQ2h1bmt0cmFkaW5ndmlld3x8W10pLnB1c2goW1s4OTYxOF0sezQxNDAxOChlKXtlLmV4cG9ydHM9WyJDaGFydCBieSBUcmFkaW5nVmlldyJdfSwzMDA3ODgoZSl7ZS5leHBvcnRzPVsiQnkgVHJhZGluZ1ZpZXciXX0sNTE3NzIoZSl7ZS5leHBvcnRzPVsiYnkgVHJhZGluZ1ZpZXciXX0sNjE4MzU5KGUpe2UuZXhwb3J0cz1bInBvd2VyZWQgYnkiXX0sNjMzOTA2KGUpe2UuZXhwb3J0cz1bInBvd2VyZWQgYnkgVHJhZGluZ1ZpZXciXX0sMjk3OTQ4KGUpe2UuZXhwb3J0cz1bIntzeW1ib2x9IGZpbmFuY2lhbHMgYnkgVHJhZGluZ1ZpZXciXX19XSk7"}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/volume-footprint-study.9dc6760cb03ba41d68f1.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.231Z","timestamp":1785148034231,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/volume-footprint-study.9dc6760cb03ba41d68f1.js HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a608293-3873\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Wed, 22 Jul 2026 08:42:59 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/22/2026 11:01:21\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 0ce462d02b79c8b4ec607bb72d7d4a8f\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":14451,"size_decoded":5256,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, Unicode text, UTF-8 text, with very long lines (3064)","md5":"02705aa805bbac9bccc99b4d5b83d9f4","sha1":"78a6115784af9125bbdcffa02a4e496b8927e73b","sha256":"7ee5f3a19f5fe49954db3d9c732c7ec564831ce84b66ae61abcb67931f501f2a","sha512":"1ab4eee9064f0fd0b6970b0925fe5ba110fc2d334cb02d30864795e52bf9098a3d49ecd831402b6ad990e5f8c5a697078b2aecacaced188be7ee1e1d95a3f765","ssdeep":"384:Ab04y76xACAdQlDbTQ7ZiScKevr/0XV67P9kfZv/H6eS/Vns1Ln5Ind8ES:6y76xApdQRbTQHEj6xvyUGd8ES","tlshash":"3352a731b1a2bce623b410d6afe8069e856a5d50a45e6cf8f26cd0f71cd5509173db3c","first_seen":"2026-07-22T16:00:00.386345Z","last_seen":"2026-07-27T12:48:39.850653Z","times_seen":82,"resource_available":true,"data":"InVzZSBzdHJpY3QiOyhzZWxmLndlYnBhY2tDaHVua3RyYWRpbmd2aWV3PXNlbGYud2VicGFja0NodW5rdHJhZGluZ3ZpZXd8fFtdKS5wdXNoKFtbMTIyMjddLHs3MzQ5MDModCxlLG8pe28uZChlLHtsZWZ0Q29sdW1uQXJlYUxlZnRSaWdodDooKT0+YyxyaWdodENvbHVtbkFyZWFMZWZ0UmlnaHQ6KCk9PnAscm93VG9wQm90dG9tOigpPT5hLHN1bW1hcnlBcmVhMkNvbHVtbnNMZWZ0UmlnaHQ6KCk9Pm0sdG90YWxBcmVhTGVmdFJpZ2h0OigpPT5kLHZvbHVtZUZvb3RwcmludENvb3JkaW5hdGVTcGFjZTooKT0+Zn0pO3ZhciBpLHI9byg3MzY1MzEpLG49bygxOTg5MDEpLGw9bygxNzQzNDIpO2Z1bmN0aW9uIGEodCxlLG8scixuKXtjb25zdCBsPU1hdGgucm91bmQodC5wcmljZVRvQ29vcmRpbmF0ZShyK28sZSkqbi52ZXJ0aWNhbFBpeGVsUmF0aW8pLGE9TWF0aC5yb3VuZCh0LnByaWNlVG9Db29yZGluYXRlKHIsZSkqbi52ZXJ0aWNhbFBpeGVsUmF0aW8pLHM9TWF0aC5tYXgoaS5MZXZlbHNTcGFjaW5nLE1hdGguZmxvb3IoaS5MZXZlbHNTcGFjaW5nKm4udmVydGljYWxQaXhlbFJhdGlvKSk7cmV0dXJue3RvcDpNYXRoLm1pbihsLGEpLGJvdHRvbTpNYXRoLm1heChsLGEpLXN9fWZ1bmN0aW9uIHModCxlLG8scil7Y29uc3Qgbj1NYXRoLnJvdW5kKHQucHJpY2VUb0Nvb3JkaW5hdGUobyxlKSpyLnZlcnRpY2FsUGl4ZWxSYXRpbyk7cmV0dXJue3RvcDpuLU1hdGgubWF4KGkuTGV2ZWxzU3BhY2luZyxNYXRoLmZsb29yKGkuTGV2ZWxzU3BhY2luZypyLnZlcnRpY2FsUGl4ZWxSYXRpbykpLGJvdHRvbTpufX1mdW5jdGlvbiB1KHQsZSl7Y29uc3Qgbz10LnJpZ2h0LXQubGVmdDtyZXR1cm57Y2VudGVyOk1hdGgucm91bmQodC5jZW50ZXIqZS5ob3Jpem9udGFsUGl4ZWxSYXRpbyksY29sdW1uV2lkdGg6TWF0aC5yb3VuZChvKmkuQ29sdW1uU3BhY2UqZS5ob3Jpem9udGFsUGl4ZWxSYXRpbyksb2Zmc2V0Ok1hdGgucm91bmQobyppLkNhbmRsZVNwYWNlKi41KmUuaG9yaXpvbnRhbFBpeGVsUmF0aW8pfX1mdW5jdGlvbiBjKHQsZSl7Y29uc3Qgbz11KHQsZSksaT1vLmNlbnRlci1vLmNvbHVtbldpZHRoLW8ub2Zmc2V0O3JldHVybntsZWZ0OmkscmlnaHQ6aStvLmNvbHVtbldpZHRofX1mdW5jdGlvbiBwKHQsZSl7Y29uc3Qgbz11KHQsZSksaT1vLmNlbnRlcitvLm9mZnNldCsxO3JldHVybntsZWZ0OmkscmlnaHQ6aStvLmNvbHVtbldpZHRofX1mdW5jdGlvbiBkKHQsZSl7Y29uc3Qgbz11KHQsZSksaT1vLmNlbnRlcitvLm9mZnNldCsxO3JldHVybntsZWZ0OmkscmlnaHQ6aSsyKm8uY29sdW1uV2lkdGh9fWZ1bmN0aW9uIG0odCxlKXtjb25zdCBvPXUodCxlKTtyZXR1cm57bGVmdDpvLmNlbnRlci1vLmNvbHVtbldpZHRoLW8ub2Zmc2V0LHJpZ2h0Om8uY2VudGVyK28ub2Zmc2V0KzErby5jb2x1bW5XaWR0aH19IWZ1bmN0aW9uKHQpe3RbdC5Db2x1bW5TcGFjZT0uMzVdPSJDb2x1bW5TcGFjZSIsdFt0LkNhbmRsZVNwYWNlPS4yXT0iQ2FuZGxlU3BhY2UiLHRbdC5TdW1tYXJ5T2Zmc2V0PTVdPSJTdW1tYXJ5T2Zmc2V0Iix0W3QuTGV2ZWxzU3BhY2luZz0xXT0iTGV2ZWxzU3BhY2luZyIsdFt0LkltYmFsYW5jZUxldmVsT2Zmc2V0PTFdPSJJbWJhbGFuY2VMZXZlbE9mZnNldCIsdFt0LkltYmFsYW5jZUxldmVsV2lkdGg9M109IkltYmFsYW5jZUxldmVsV2lkdGgiLHRbdC5JbWJhbGFuY2VMZXZlbFZpc2liaWxpdHlNaW5CYXJXaWR0aD0xMF09IkltYmFsYW5jZUxldmVsVmlzaWJpbGl0eU1pbkJhcldpZHRoIix0W3QuTGV2ZWxUaXRsZXNWaXNpYmlsaXR5TWluQmFyV2lkdGg9MzMwXT0iTGV2ZWxUaXRsZXNWaXNpYmlsaXR5TWluQmFyV2lkdGgifShpfHwoaT17fSkpO2NvbnN0IGg9KHttaW46dCxtYXg6ZX0sbyk9Pk1hdGgucm91bmQoKGUueC10LngpKm8pO2Z1bmN0aW9uIGYodCl7Y29uc3R7dGltZVNjYWxlOmUscHJpY2VTY2FsZTpvLHZvbHVtZUZvb3RwcmludDpmLHJvd1NpemU6UyxmaXJzdFZhbHVlOmcsYmFyOngscGl4ZWxSYXRpb0luZm86dix2b2x1bWVGb290cHJpbnRUeXBlOmJ9PXQsW3cseV09KDAsbi5taW5NYXgpKFt4WzNdLC4uLigwLG4uY2FsY3VsYXRlTWluTWF4KShmLmxldmVscywodD0+dC5wcmljZSkpXSk7bGV0IFYsSTtzd2l0Y2goYil7Y2FzZSBsLlZvbHVtZUZvb3RwcmludFR5cGVWYWx1ZXMuQnV5QW5kU2VsbDpjYXNlIGwuVm9sdW1lRm9vdHByaW50VHlwZVZhbHVlcy5MYWRkZXI6Vj1jLEk9cDticmVhaztkZWZhdWx0OlY9ZCxJPWR9Y29uc3QgVD1lLmJhckJvcmRlcnMoZi5pbmRleCksRj1ULnJpZ2h0LVQubGVmdCxDPXQ9Pntjb25zdHtsZWZ0OmUscmlnaHQ6aX09VihULHYpLHt0b3A6bixib3R0b206bH09YShvLGcsUyx0LHYpO3JldHVybigwLHIuYm94KSgoMCxyLnBvaW50KShlLG4pLCgwLHIucG9pbnQpKGksbCkpfSxNPXQ9Pntjb25zdHtsZWZ0OmUscmlnaHQ6aX09SShULHYpLHt0b3A6bixib3R0b206bH09YShvLGcsUyx0LHYpO3JldHVybigwLHIuYm94KSgoMCxyLnBvaW50KShlLG4pLCgwLHIucG9pbnQpKGksbCkpfSxfPSgwLHIucG9pbnQpKDUqdi5ob3Jpem9udGFsUGl4ZWxSYXRpbywwKTtyZXR1cm57bGVmdFJvd0FyZWFCb3g6QyxyaWdodFJvd0FyZWFCb3g6TSxwZXJjZW50TGVmdFJvd0FyZWFCb3g6KHQsZSk9Pntjb25zdCBvPUModCkse21pbjppLG1heDpufT1vO3JldHVybigwLHIuYm94KSgoMCxyLnBvaW50KShuLngtaChvLGUpLGkueSksbil9LHBlcmNlbnRSaWdodFJvd0FyZWFCb3g6KHQsZSxvPSExKT0+e2NvbnN0IGk9bz8odD0+e2NvbnN0e21pbjplLG1heDpvfT10O3JldHVybigwLHIuYm94KShlLmFkZChfKSxvKX0pKE0odCkpOk0odCkse21pbjpuLG1heDpsfT1pO3JldHVybigwLHIuYm94KShuLCgwLHIucG9pbnQpKG4ueCtoKGksZSksbC55KSl9LGxldmVsQm94OnQ9Pntjb25zdCBlPVYoVCx2KSxpPUkoVCx2KSx7dG9wOm4sYm90dG9tOmx9PXMobyxnLHQsdik7cmV0dXJuKDAsci5ib3gpKCgwLHIucG9pbnQpKGUubGVmdCxuKSwoMCxyLnBvaW50KShpLnJpZ2h0LGwpKX0scHJvZmlsZVRvdGFsTGV2ZWxCb3g6dD0+ewpjb25zdCBlPWMoVCx2KSxpPWQoVCx2KSx7dG9wOm4sYm90dG9tOmx9PXMobyxnLHQsdik7cmV0dXJuKDAsci5ib3gpKCgwLHIucG9pbnQpKGUucmlnaHQsbiksKDAsci5wb2ludCkoaS5yaWdodCxsKSl9LHNob3dMZXZlbFRpdGxlczooKT0+Rj49aS5MZXZlbFRpdGxlc1Zpc2liaWxpdHlNaW5CYXJXaWR0aCxzdW1tYXJ5QXJlYTJDb2x1bW5zTW9kZTooKT0+e2NvbnN0IHQ9YShvLGcsUyx3LHYpLGU9YShvLGcsUyx5LHYpLG49TWF0aC5tYXgodC5ib3R0b20sZS5ib3R0b20pLHtsZWZ0OmwscmlnaHQ6c309bShULHYpO3JldHVybntib3g6KDAsci5ib3gpKCgwLHIucG9pbnQpKGwsbiksKDAsci5wb2ludCkocyxuKyh0LmJvdHRvbS10LnRvcCkpKSxtYXJnaW5Ub3A6TWF0aC5yb3VuZChpLlN1bW1hcnlPZmZzZXQqdi52ZXJ0aWNhbFBpeGVsUmF0aW8pfX0sc3VtbWFyeUFyZWExQ29sdW1uTW9kZTooKT0+e2NvbnN0IHQ9YShvLGcsUyx3LHYpLGU9YShvLGcsUyx5LHYpLG49TWF0aC5tYXgodC5ib3R0b20sZS5ib3R0b20pLHtsZWZ0OmwscmlnaHQ6c309ZnVuY3Rpb24odCxlKXtjb25zdCBvPXUodCxlKSxpPTIqby5jb2x1bW5XaWR0aDtyZXR1cm57bGVmdDpvLmNlbnRlci1vLm9mZnNldCxyaWdodDpvLmNlbnRlcitvLm9mZnNldCsxK2l9fShULHYpO3JldHVybntib3g6KDAsci5ib3gpKCgwLHIucG9pbnQpKGwsbiksKDAsci5wb2ludCkocyxuKyh0LmJvdHRvbS10LnRvcCkpKSxtYXJnaW5Ub3A6TWF0aC5yb3VuZChpLlN1bW1hcnlPZmZzZXQqdi52ZXJ0aWNhbFBpeGVsUmF0aW8pfX0saW1iYWxhbmNlQm94Oih0LGUsbj0hMCk9PntpZihGPGkuSW1iYWxhbmNlTGV2ZWxWaXNpYmlsaXR5TWluQmFyV2lkdGgpcmV0dXJuIG51bGw7Y29uc3QgbD0ibGVmdCI9PT1lP1YoVCx2KTpJKFQsdikse3RvcDpzLGJvdHRvbTp1fT1hKG8sZyxTLHQsdiksYz1NYXRoLm1heChpLkltYmFsYW5jZUxldmVsT2Zmc2V0LE1hdGguZmxvb3IoaS5JbWJhbGFuY2VMZXZlbE9mZnNldCp2Lmhvcml6b250YWxQaXhlbFJhdGlvKSkscD1NYXRoLnJvdW5kKGkuSW1iYWxhbmNlTGV2ZWxXaWR0aCp2Lmhvcml6b250YWxQaXhlbFJhdGlvKSxkPSJsZWZ0Ij09PWUsbT0obj9kOiFkKT9sLmxlZnQtYy1wOmwucmlnaHQrYztyZXR1cm4oMCxyLmJveCkoKDAsci5wb2ludCkobSxzKSwoMCxyLnBvaW50KShtK3AsdSkpfSxjb3JyZWN0SW1iYWxhbmNlQm94OnQ9Pntjb25zdHttaW46ZSxtYXg6b309dDtyZXR1cm4oMCxyLmJveCkoZS5hZGQoXyksby5hZGQoXykpfX19fSw4NDYyOTModCxlLG8pe28ucihlKSxvLmQoZSx7Vm9sdW1lRm9vdHByaW50U3R1ZHk6KCk9PlYsY3JlYXRlVm9sdW1lRm9vdHByaW50U3R1ZHk6KCk9Pkl9KTt2YXIgaT1vKDQzNzc0OSkscj1vKDg3MjM0Myksbj1vKDYwNTI1NyksbD1vKDE5NzI3MiksYT1vKDE1NjgyOSkscz1vKDczNzM3MSksdT1vKDE3NDM0MiksYz1vKDUwNTU2KSxwPW8oOTg0Mzc2KSxkPW8oNDAzODE3KSxtPW8oNzM0OTAzKSxoPW8oNTg4ODcwKSxmPW8oOTA4MjQ2KTtjb25zdCBTPXtwb3NpdGl2ZURlbHRhQ29sb3I6KDAsYy5nZXRIZXhDb2xvckJ5TmFtZSkoImNvbG9yLW1pbnR5LWdyZWVuLTUwMCIpLG5lZ2F0aXZlRGVsdGFDb2xvcjooMCxjLmdldEhleENvbG9yQnlOYW1lKSgiY29sb3ItcmlwZS1yZWQtNTAwIil9O2NsYXNzIGcgZXh0ZW5kcyBoLlN1bW1hcnlQYW5lVmlld3tjb25zdHJ1Y3Rvcih0LGUpe3N1cGVyKHQsZSl9X2N1dE9mZkxhc3RDb2x1bW4oKXtyZXR1cm4hMH1fZ2V0RGF0YVNvdXJjZUZvclN1bW1hcnkoKXtyZXR1cm4gdGhpcy5fbW9kZWwuZGF0YVNvdXJjZUZvcklkKGYudm9sdW1lRm9vdHByaW5nU3VtbWFyeURhdGFTb3VyY2VJZCl9X2dldFN1bW1hcnlDb2x1bW5SZW5kZXJlckRhdGEodCxlKXtjb25zdCBvPXRoaXMuX3N0dWR5LmdyYXBoaWNzKCksaT10aGlzLl9tb2RlbC50aW1lU2NhbGUoKSxyPXRoaXMuX3N0dWR5LmZpcnN0VmFsdWUoKSxuPXRoaXMuX3N0dWR5LnByaWNlU2NhbGUoKTtpZihudWxsPT09cnx8bnVsbD09PW4pcmV0dXJuIG51bGw7Y29uc3QgbD10aGlzLl9zdHVkeSxhPWwub3BlbkludGVyZXN0U3VwcG9ydGVkKCksYz1sLmV4dGVuZGVkT3BlbkludGVyZXN0U3VwcG9ydGVkKCksaD10aGlzLl9tb2RlbC5tYWluU2VyaWVzKCkucHJvcGVydGllcygpLmNoaWxkcygpLnZvbEZvb3RwcmludFN0eWxlLmNoaWxkcygpLGY9aC50eXBlLnZhbHVlKCksZz1oLmV4dGVuZGVkU3VtbWFyeS5jaGlsZHMoKS5ibG9ja0luZm8uY2hpbGRzKCkseD1uZXcgcC5Wb2x1bWVGb3JtYXR0ZXIsdj10aGlzLl9tb2RlbC5tYWluU2VyaWVzKCkuZm9ybWF0dGVyKCksYj10PT52LmZvcm1hdCh0KSx3PWY9PT11LlZvbHVtZUZvb3RwcmludFR5cGVWYWx1ZXMuQnV5QW5kU2VsbHx8Zj09PXUuVm9sdW1lRm9vdHByaW50VHlwZVZhbHVlcy5MYWRkZXI7bGV0IHk7aWYodyl7Y29uc3QgZT1pLmJhckJvcmRlcnMoMCksbz1pLmJhckJvcmRlcnMoMSkscj0oMCxtLnJpZ2h0Q29sdW1uQXJlYUxlZnRSaWdodCkoZSx0KSxuPSgwLG0ubGVmdENvbHVtbkFyZWFMZWZ0UmlnaHQpKG8sdCk7eT1NYXRoLnJvdW5kKChuLmxlZnQtci5yaWdodCkvMil9ZWxzZSB5PTA7Y29uc3QgVj1pLmJhclNwYWNpbmcoKSxJPW5ldyBkLkxvZ2ljYWxSYW5nZShlLmxlZnQoKS01LGUucmlnaHQoKSs1KSxUPVtdO2xldCBGO3JldHVybiBvLmZvb3RwcmludHMoKS5mb3JFYWNoKChlPT57ZS5mb3JFYWNoKChlPT57aWYoIUkuY29udGFpbnMoZS5pbmRleCkpcmV0dXJuO2NvbnN0IG89ZS5zdW1tYXJ5LHI9KDAscy5kZWZhdWx0KShlLmxldmVscy5tYXAoKHQ9PnQuc2VsbFZvbHVtZSkpKSxuPSgwLHMuZGVmYXVsdCkoZS5sZXZlbHMubWFwKCh0PT50LmJ1eVZvbHVtZSkpKSxsPW4rcix1PVtdO2lmKGcudm9sdW1lLmNoaWxkcygpLnZpc2libGUudmFsdWUoKSYmdS5wdXNoKHt0ZXh0OnguZm9ybWF0KGwpfSksZy52b2x1bWVQZXJjZW50YWdlLmNoaWxkcygpLnZpc2libGUudmFsdWUoKSYmdS5wdXNoKHt0ZXh0OnZvaWQgMCE9PUY/YigobC1GKS9GKjEwMCk6IuKAlCJ9KSwKZy5idXlWb2x1bWUuY2hpbGRzKCkudmlzaWJsZS52YWx1ZSgpJiZ1LnB1c2goe3RleHQ6eC5mb3JtYXQobil9KSxnLmJ1eVZvbHVtZVBlcmNlbnRhZ2UuY2hpbGRzKCkudmlzaWJsZS52YWx1ZSgpJiZ1LnB1c2goe3RleHQ6YihuL2wqMTAwKX0pLGcuc2VsbFZvbHVtZS5jaGlsZHMoKS52aXNpYmxlLnZhbHVlKCkmJnUucHVzaCh7dGV4dDp4LmZvcm1hdChyKX0pLGcuc2VsbFZvbHVtZVBlcmNlbnRhZ2UuY2hpbGRzKCkudmlzaWJsZS52YWx1ZSgpJiZ1LnB1c2goe3RleHQ6YihyL2wqMTAwKX0pLGcuZGVsdGEuY2hpbGRzKCkudmlzaWJsZS52YWx1ZSgpKXtjb25zdCB0PW4tcjt1LnB1c2goe3RleHQ6Yih0KSxiYWNrZ3JvdW5kQ29sb3I6dD49MD9TLnBvc2l0aXZlRGVsdGFDb2xvcjpTLm5lZ2F0aXZlRGVsdGFDb2xvcn0pfWlmKGcuZGVsdGFQZXJjZW50YWdlLmNoaWxkcygpLnZpc2libGUudmFsdWUoKSl7Y29uc3QgdD0obi1yKS9sKjEwMDt1LnB1c2goe3RleHQ6Yih0KSxiYWNrZ3JvdW5kQ29sb3I6dD49MD9TLnBvc2l0aXZlRGVsdGFDb2xvcjpTLm5lZ2F0aXZlRGVsdGFDb2xvcn0pfWlmKGcubWluRGVsdGEuY2hpbGRzKCkudmlzaWJsZS52YWx1ZSgpJiYobz91LnB1c2goe3RleHQ6YihvLm1pbkRlbHRhKSxiYWNrZ3JvdW5kQ29sb3I6by5taW5EZWx0YT49MD9TLnBvc2l0aXZlRGVsdGFDb2xvcjpTLm5lZ2F0aXZlRGVsdGFDb2xvcn0pOnUucHVzaCh7dGV4dDoi4oCUIn0pKSxnLm1heERlbHRhLmNoaWxkcygpLnZpc2libGUudmFsdWUoKSYmKG8/dS5wdXNoKHt0ZXh0OmIoby5tYXhEZWx0YSksYmFja2dyb3VuZENvbG9yOm8ubWF4RGVsdGE+PTA/Uy5wb3NpdGl2ZURlbHRhQ29sb3I6Uy5uZWdhdGl2ZURlbHRhQ29sb3J9KTp1LnB1c2goe3RleHQ6IuKAlCJ9KSksZy5zZXNzaW9uQ1ZELmNoaWxkcygpLnZpc2libGUudmFsdWUoKSYmdS5wdXNoKHt0ZXh0Om8/eC5mb3JtYXQoby5zZXNzaW9uQ1ZEKToi4oCUIn0pLGcucG9jUHJpY2UuY2hpbGRzKCkudmlzaWJsZS52YWx1ZSgpJiZ1LnB1c2goe3RleHQ6YihlLnBvYyl9KSxnLmhsUmFuZ2UuY2hpbGRzKCkudmlzaWJsZS52YWx1ZSgpJiZ1LnB1c2goe3RleHQ6bz8uaGlnaExvd1JhbmdlP2Ioby5oaWdoTG93UmFuZ2UpOiLigJQifSksYSl7aC5leHRlbmRlZFN1bW1hcnkuY2hpbGRzKCkub3BlbkludGVyZXN0QmxvY2tJbmZvLmNoaWxkcygpLm9wZW5JbnRlcmVzdC5jaGlsZHMoKS52aXNpYmxlLnZhbHVlKCkmJnUucHVzaCh7dGV4dDpvPy5vcGVuSW50ZXJlc3RIaWdoP2Ioby5vcGVuSW50ZXJlc3RIaWdoKToi4oCUIn0pfWlmKGMpe2NvbnN0IHQ9aC5leHRlbmRlZFN1bW1hcnkuY2hpbGRzKCkuZXh0ZW5kZWRPcGVuSW50ZXJlc3RCbG9ja0luZm8uY2hpbGRzKCk7dC5vcGVuSW50ZXJlc3RIaWdoLmNoaWxkcygpLnZpc2libGUudmFsdWUoKSYmdS5wdXNoKHt0ZXh0Om8/Lm9wZW5JbnRlcmVzdEhpZ2g/YihvLm9wZW5JbnRlcmVzdEhpZ2gpOiLigJQifSksdC5vcGVuSW50ZXJlc3RMb3cuY2hpbGRzKCkudmlzaWJsZS52YWx1ZSgpJiZ1LnB1c2goe3RleHQ6bz8ub3BlbkludGVyZXN0TG93P2Ioby5vcGVuSW50ZXJlc3RMb3cpOiLigJQifSl9Y29uc3QgcD0oZT0+e2NvbnN0IG89aS5iYXJCb3JkZXJzKGUpO3JldHVybiB3PygwLG0uc3VtbWFyeUFyZWEyQ29sdW1uc0xlZnRSaWdodCkobyx0KTp7bGVmdDpvLmNlbnRlcip0Lmhvcml6b250YWxQaXhlbFJhdGlvLHJpZ2h0OihvLmNlbnRlcitWKSp0Lmhvcml6b250YWxQaXhlbFJhdGlvfX0pKGUuaW5kZXgpO1QucHVzaCh7bGVmdDpwLmxlZnQteSxyaWdodDpwLnJpZ2h0K3kscm93czp1fSksRj1sfSkpfSkpLFR9fXZhciB4PW8oMTM4NjM4KSx2PW8oNzQ1NTY5KSxiPW8oMzA1MTAyKTtjbGFzcyB3IGV4dGVuZHMgdi5TdW1tYXJ5V2lkZ2V0U2lkZUFyZWFWaWV3e19nZXREYXRhU291cmNlRm9yU3VtbWFyeSgpe3JldHVybiB0aGlzLl9tb2RlbC5kYXRhU291cmNlRm9ySWQoZi52b2x1bWVGb290cHJpbmdTdW1tYXJ5RGF0YVNvdXJjZUlkKX1fdmlzaWJsZVRpdGxlcygpe2NvbnN0IHQ9W10sZT0oMCx4LmVuc3VyZU5vdE51bGwpKHRoaXMuX2dldERhdGFTb3VyY2VGb3JTdW1tYXJ5KCkpLG89dGhpcy5fbW9kZWwubWFpblNlcmllcygpLnByb3BlcnRpZXMoKS5jaGlsZHMoKS52b2xGb290cHJpbnRTdHlsZS5jaGlsZHMoKS5leHRlbmRlZFN1bW1hcnkuY2hpbGRzKCk7cmV0dXJuIHQucHVzaCguLi5iLmJhc2VWb2x1bWVGb290cHJpbnRSb3dUaXRsZXMuZmlsdGVyKCh0PT5vLmJsb2NrSW5mby5jaGlsZHMoKVt0LnByb3BOYW1lXS5jaGlsZHMoKS52aXNpYmxlLnZhbHVlKCkpKS5tYXAoKHQ9PnQudHJhbnNsYXRlZFN0cmluZy50cmFuc2xhdGVkVGV4dCgpKSkpLGUub3BlbkludGVyZXN0U3VwcG9ydGVkKCkmJnQucHVzaCguLi5iLm9wZW5JbnRlcmVzdFZvbHVtZUZvb3RwcmludFJvd1RpdGxlcy5maWx0ZXIoKHQ9Pm8ub3BlbkludGVyZXN0QmxvY2tJbmZvLmNoaWxkcygpW3QucHJvcE5hbWVdLmNoaWxkcygpLnZpc2libGUudmFsdWUoKSkpLm1hcCgodD0+dC50cmFuc2xhdGVkU3RyaW5nLnRyYW5zbGF0ZWRUZXh0KCkpKSksZS5leHRlbmRlZE9wZW5JbnRlcmVzdFN1cHBvcnRlZCgpJiZ0LnB1c2goLi4uYi5leHRlbmRlZE9wZW5JbnRlcmVzdFZvbHVtZUZvb3RwcmludFJvd1RpdGxlcy5maWx0ZXIoKHQ9Pm8uZXh0ZW5kZWRPcGVuSW50ZXJlc3RCbG9ja0luZm8uY2hpbGRzKClbdC5wcm9wTmFtZV0uY2hpbGRzKCkudmlzaWJsZS52YWx1ZSgpKSkubWFwKCh0PT50LnRyYW5zbGF0ZWRTdHJpbmcudHJhbnNsYXRlZFRleHQoKSkpKSx0fX12YXIgeT1vKDcyODQzNik7Y2xhc3MgViBleHRlbmRzIGwuU3R1ZHl7Y29uc3RydWN0b3IodCxlLG8saSxyLG4sbD0hMSl7c3VwZXIodCxlLG8saSxyLG4pLHRoaXMuX3Jvd1NpemU9LjEsdGhpcy5fY2hhcnRTdHlsZU1vZGU9bCx0aGlzLl9zdW1tYXJ5UGFuZVZpZXc9bmV3IGcodGhpcyx0KSx0aGlzLl93aWRnZXRTaWRlQXJlYVZpZXc9bmV3IHcodCl9cm93U2l6ZSgpe3JldHVybiB0aGlzLl9yb3dTaXplfW9wZW5JbnRlcmVzdFN1cHBvcnRlZCgpewpjb25zdCB0PXRoaXMuX21vZGVsLm1haW5TZXJpZXMoKS5zeW1ib2xJbmZvKCk7cmV0dXJuIG51bGwhPT10JiYoMCxhLmlzRnV0dXJlcykodC50eXBlKSYmISgwLGEuaGFzQ3J5cHRvVHlwZXNwZWMpKHQudHlwZXNwZWNzKX1leHRlbmRlZE9wZW5JbnRlcmVzdFN1cHBvcnRlZCgpe2NvbnN0IHQ9dGhpcy5fbW9kZWwubWFpblNlcmllcygpLnN5bWJvbEluZm8oKTtyZXR1cm4gbnVsbCE9PXQmJigoMCxhLmlzRnV0dXJlcykodC50eXBlKXx8InN3YXAiPT09dC50eXBlKSYmKDAsYS5oYXNDcnlwdG9UeXBlc3BlYykodC50eXBlc3BlY3MpfXBhbmVWaWV3cyh0KXtyZXR1cm4gdGhpcy5fY2hhcnRTdHlsZU1vZGU/dCE9PXRoaXMuX21vZGVsLm1haW5QYW5lKCk/W3RoaXMuX3N1bW1hcnlQYW5lVmlld106dGhpcy5fcGFuZVZpZXdzOnN1cGVyLnBhbmVWaWV3cyh0KX1jaGFydEZsb2F0aW5nVG9vbHRpcFZpZXcoKXtyZXR1cm4gbnVsbH1jaGFydEZsb2F0aW5nVG9vbHRpcFZhbHVlc1Byb3ZpZGVyKCl7cmV0dXJuIG51bGx9dXBkYXRlQWxsVmlld3ModCl7c3VwZXIudXBkYXRlQWxsVmlld3ModCksdGhpcy5fc3VtbWFyeVBhbmVWaWV3LnVwZGF0ZSgpLHRoaXMuX3dpZGdldFNpZGVBcmVhVmlldy51cGRhdGUoKX13aWRnZXRTaWRlQXJlYVZpZXdzKHQpe2NvbnN0IGU9dGhpcy5fbW9kZWwubWFpblNlcmllcygpLnByaWNlU2NhbGUoKTtpZighZSlyZXR1cm4gbnVsbDtjb25zdCBvPXRoaXMuX21vZGVsLm1haW5QYW5lKCk7aWYoIW8pcmV0dXJuIG51bGw7Y29uc3QgaT1vLnByaWNlU2NhbGVQb3NpdGlvbihlKTtyZXR1cm4gdGhpcy5fY2hhcnRTdHlsZU1vZGUmJnQ9PT1pP1t0aGlzLl93aWRnZXRTaWRlQXJlYVZpZXddOm51bGx9cHJpY2VTY2FsZSgpe3JldHVybiB0aGlzLl9jaGFydFN0eWxlTW9kZT90aGlzLl9tb2RlbC5tYWluU2VyaWVzKCkucHJpY2VTY2FsZSgpOnN1cGVyLnByaWNlU2NhbGUoKX1maXJzdFZhbHVlKCl7cmV0dXJuIHRoaXMuX21vZGVsLm1haW5TZXJpZXMoKS5maXJzdFZhbHVlKCl9c3RhdGVDdXN0b21GaWVsZHMoKXtyZXR1cm57cm93U2l6ZTp0aGlzLl9yb3dTaXplfX1yZXN0b3JlU3RhdGVDdXN0b21GaWVsZHModCl7dGhpcy5fcm93U2l6ZT10LnJvd1NpemU/P3RoaXMuX3Jvd1NpemV9X2ZpbGxQcmVjYWxjdWxhdGVkQXV0b3NjYWxlSW5mbyh0KXtjb25zdCBlPSgwLGwuZW1wdHlQcmVjYWxjdWxhdGVkQXV0b3NjYWxlSW5mbykoKSxvPXRoaXMuX3Jvd1NpemU7aWYobnVsbD09PW8pcmV0dXJuIGU7Y29uc3R7c3RhcnRUaW1lUG9pbnQ6aSxlbmRUaW1lUG9pbnQ6cn09dCxuPXRoaXMubW9kZWwoKS5tYWluU2VyaWVzKCkuYmFycygpLm1pbk1heE9uUmFuZ2UoaSxyLFt7bmFtZToibG93IixvZmZzZXQ6MH0se25hbWU6ImhpZ2giLG9mZnNldDowfV0pO2lmKCFuKXJldHVybiBlO2NvbnN0e21pbjphLG1heDpzfT1uO2xldCB1PU1hdGguZmxvb3IoYS9vKSpvO2lmKHRoaXMubW9kZWwoKS5tYWluU2VyaWVzKCkucHJvcGVydGllcygpLmNoaWxkcygpLnZvbEZvb3RwcmludFN0eWxlLmNoaWxkcygpLnNob3dTdW1tYXJ5LnZhbHVlKCkpe2NvbnN0IHQ9dGhpcy5tb2RlbCgpLnRpbWVTY2FsZSgpLmJhclNwYWNpbmcoKSxlPXRoaXMubW9kZWwoKS5tYWluU2VyaWVzKCkucHJpY2VTY2FsZSgpLnByaWNlVG9Db29yZGluYXRlKHUsdGhpcy5tb2RlbCgpLm1haW5TZXJpZXMoKS5maXJzdFZhbHVlKCl8fDApO3U9dGhpcy5tb2RlbCgpLm1haW5TZXJpZXMoKS5wcmljZVNjYWxlKCkuY29vcmRpbmF0ZVRvUHJpY2UoZStNYXRoLmZsb29yKC40KnQpLHRoaXMubW9kZWwoKS5tYWluU2VyaWVzKCkuZmlyc3RWYWx1ZSgpfHwwKX1yZXR1cm57Li4uZSxiYXNlVmFsdWVNaW5NYXg6e21pbjp1LG1heDpNYXRoLmNlaWwocy9vKSpvfX19X29uRGF0YVVwZGF0ZWQodCxlLG8saSl7c3VwZXIuX29uRGF0YVVwZGF0ZWQodCxlLG8saSksZT8uaW5kZXhlc19yZXBsYWNlfHwodGhpcy5fcm93U2l6ZT0oZT8uZGF0YSkucm93U2l6ZT8/dGhpcy5fcm93U2l6ZSl9fWFzeW5jIGZ1bmN0aW9uIEkodCl7Y29uc3QgZT1hd2FpdCgwLG4uc3R1ZHlNZXRhSW5mb1JlcG9zaXRvcnkpKCkuZmluZEJ5SWQoe3R5cGU6ImphdmEiLHN0dWR5SWQ6eS5zdHVkeVZvbEZvb3RwcmludElkfSksbz0oMCxpLnByZXBhcmVTdHVkeVByb3BlcnRpZXMpKGUse30sbnVsbCwoMCxuLnN0dWR5TWV0YUluZm9SZXBvc2l0b3J5KSgpLnN0dWR5VmVyc2lvbmluZygpLFtdKTtyZXR1cm4oMCxyLmFkZFN0dWR5SW5mb1RvTWFwKSgic3R1ZHlfVm9sdW1lRm9vdHByaW50Iix7c3R1ZHlDb25zdHJ1Y3RvcjpWLGNvbG9yUm90YXRpb25Nb2RlOiJzaGlmdCJ9KSxuZXcgVih0LG8sW10sZSxlLCExLCEwKX19LDMwNTEwMih0LGUsbyl7by5kKGUse2Jhc2VWb2x1bWVGb290cHJpbnRSb3dUaXRsZXM6KCk9PncsZXh0ZW5kZWRPcGVuSW50ZXJlc3RWb2x1bWVGb290cHJpbnRSb3dUaXRsZXM6KCk9PlYsb3BlbkludGVyZXN0Vm9sdW1lRm9vdHByaW50Um93VGl0bGVzOigpPT55fSk7dmFyIGk9byg3ODMyNTQpLHI9byg1NzA2MDMpO2NvbnN0IG49aS50KG51bGwse2NvbnRleHQ6IlZvbHVtZUZvb3RwcmludCBiYXIgc3RhdGlzdGljIHJvdyB0aXRsZSJ9LG8oNzI0NjYxKSksbD1pLnQobnVsbCx7Y29udGV4dDoiVm9sdW1lRm9vdHByaW50IGJhciBzdGF0aXN0aWMgcm93IHRpdGxlIn0sbyg5MTU2NDUpKSxhPWkudChudWxsLHtjb250ZXh0OiJWb2x1bWVGb290cHJpbnQgYmFyIHN0YXRpc3RpYyByb3cgdGl0bGUifSxvKDU3MzIyNCkpLHM9aS50KG51bGwse2NvbnRleHQ6IlZvbHVtZUZvb3RwcmludCBiYXIgc3RhdGlzdGljIHJvdyB0aXRsZSJ9LG8oNTMwOTMxKSksdT1pLnQobnVsbCx7Y29udGV4dDoiVm9sdW1lRm9vdHByaW50IGJhciBzdGF0aXN0aWMgcm93IHRpdGxlIn0sbyg3NDc3NzYpKSxjPWkudChudWxsLHtjb250ZXh0OiJWb2x1bWVGb290cHJpbnQgYmFyIHN0YXRpc3RpYyByb3cgdGl0bGUifSxvKDc5NDM4MCkpLHA9aS50KG51bGwse2NvbnRleHQ6IlZvbHVtZUZvb3RwcmludCBiYXIgc3RhdGlzdGljIHJvdyB0aXRsZSJ9LG8oMTM5ODcwKSksZD1pLnQobnVsbCx7CmNvbnRleHQ6IlZvbHVtZUZvb3RwcmludCBiYXIgc3RhdGlzdGljIHJvdyB0aXRsZSJ9LG8oMjE5MzA2KSksbT1pLnQobnVsbCx7Y29udGV4dDoiVm9sdW1lRm9vdHByaW50IGJhciBzdGF0aXN0aWMgcm93IHRpdGxlIn0sbyg4MTEwODIpKSxoPWkudChudWxsLHtjb250ZXh0OiJWb2x1bWVGb290cHJpbnQgYmFyIHN0YXRpc3RpYyByb3cgdGl0bGUifSxvKDI0OTQxKSksZj1pLnQobnVsbCx7Y29udGV4dDoiVm9sdW1lRm9vdHByaW50IGJhciBzdGF0aXN0aWMgcm93IHRpdGxlLCBhYmJyIGN1bXVsYXRpdmUgZGVsdGEifSxvKDk3MzM5NSkpLFM9aS50KG51bGwse2NvbnRleHQ6IlZvbHVtZUZvb3RwcmludCBiYXIgc3RhdGlzdGljIHJvdyB0aXRsZSwgYWJiciBQb2ludCBvZiBjb250cm9sIn0sbygzNDc4NDkpKSxnPWkudChudWxsLHtjb250ZXh0OiJWb2x1bWVGb290cHJpbnQgYmFyIHN0YXRpc3RpYyByb3cgdGl0bGUsIGhpZ2gtbG93IHJhbmdlIn0sbyg4MTUyNDApKSx4PWkudChudWxsLHtjb250ZXh0OiJWb2x1bWVGb290cHJpbnQgYmFyIHN0YXRpc3RpYyByb3cgdGl0bGUifSxvKDY2OTc1MykpLHY9aS50KG51bGwse2NvbnRleHQ6IlZvbHVtZUZvb3RwcmludCBiYXIgc3RhdGlzdGljIHJvdyB0aXRsZSJ9LG8oNjAwNDUzKSksYj1pLnQobnVsbCx7Y29udGV4dDoiVm9sdW1lRm9vdHByaW50IGJhciBzdGF0aXN0aWMgcm93IHRpdGxlIn0sbyg0NTY1NDIpKSx3PVt7dHJhbnNsYXRlZFN0cmluZzpuZXcgci5UcmFuc2xhdGVkU3RyaW5nKCJWb2x1bWUiLG4pLHByb3BOYW1lOiJ2b2x1bWUifSx7dHJhbnNsYXRlZFN0cmluZzpuZXcgci5UcmFuc2xhdGVkU3RyaW5nKCJWb2x1bWUgY2hhbmdlLCAlIixsKSxwcm9wTmFtZToidm9sdW1lUGVyY2VudGFnZSJ9LHt0cmFuc2xhdGVkU3RyaW5nOm5ldyByLlRyYW5zbGF0ZWRTdHJpbmcoIkJ1eSB2b2x1bWUiLGEpLHByb3BOYW1lOiJidXlWb2x1bWUifSx7dHJhbnNsYXRlZFN0cmluZzpuZXcgci5UcmFuc2xhdGVkU3RyaW5nKCJCdXkgdm9sdW1lLCAlIixzKSxwcm9wTmFtZToiYnV5Vm9sdW1lUGVyY2VudGFnZSJ9LHt0cmFuc2xhdGVkU3RyaW5nOm5ldyByLlRyYW5zbGF0ZWRTdHJpbmcoIlNlbGwgdm9sdW1lIix1KSxwcm9wTmFtZToic2VsbFZvbHVtZSJ9LHt0cmFuc2xhdGVkU3RyaW5nOm5ldyByLlRyYW5zbGF0ZWRTdHJpbmcoIlNlbGwgdm9sdW1lLCAlIixjKSxwcm9wTmFtZToic2VsbFZvbHVtZVBlcmNlbnRhZ2UifSx7dHJhbnNsYXRlZFN0cmluZzpuZXcgci5UcmFuc2xhdGVkU3RyaW5nKCJEZWx0YSIscCkscHJvcE5hbWU6ImRlbHRhIn0se3RyYW5zbGF0ZWRTdHJpbmc6bmV3IHIuVHJhbnNsYXRlZFN0cmluZygiRGVsdGEsICUiLGQpLHByb3BOYW1lOiJkZWx0YVBlcmNlbnRhZ2UifSx7dHJhbnNsYXRlZFN0cmluZzpuZXcgci5UcmFuc2xhdGVkU3RyaW5nKCJNaW4gZGVsdGEiLG0pLHByb3BOYW1lOiJtaW5EZWx0YSJ9LHt0cmFuc2xhdGVkU3RyaW5nOm5ldyByLlRyYW5zbGF0ZWRTdHJpbmcoIk1heCBkZWx0YSIsaCkscHJvcE5hbWU6Im1heERlbHRhIn0se3RyYW5zbGF0ZWRTdHJpbmc6bmV3IHIuVHJhbnNsYXRlZFN0cmluZygiU2Vzc2lvbiBDVkQiLGYpLHByb3BOYW1lOiJzZXNzaW9uQ1ZEIn0se3RyYW5zbGF0ZWRTdHJpbmc6bmV3IHIuVHJhbnNsYXRlZFN0cmluZygiUE9DIixTKSxwcm9wTmFtZToicG9jUHJpY2UifSx7dHJhbnNsYXRlZFN0cmluZzpuZXcgci5UcmFuc2xhdGVkU3RyaW5nKCJITCBSYW5nZSIsZykscHJvcE5hbWU6ImhsUmFuZ2UifV0seT1be3RyYW5zbGF0ZWRTdHJpbmc6bmV3IHIuVHJhbnNsYXRlZFN0cmluZygiT3BlbiBpbnRlcmVzdCIseCkscHJvcE5hbWU6Im9wZW5JbnRlcmVzdCJ9XSxWPVt7dHJhbnNsYXRlZFN0cmluZzpuZXcgci5UcmFuc2xhdGVkU3RyaW5nKCJPcGVuIGludGVyZXN0IGhpZ2giLHYpLHByb3BOYW1lOiJvcGVuSW50ZXJlc3RIaWdoIn0se3RyYW5zbGF0ZWRTdHJpbmc6bmV3IHIuVHJhbnNsYXRlZFN0cmluZygiT3BlbiBpbnRlcmVzdCBsb3ciLGIpLHByb3BOYW1lOiJvcGVuSW50ZXJlc3RMb3cifV19LDczNzM3MSh0LGUsbyl7by5kKGUse2RlZmF1bHQ6KCk9Pm59KTtjb25zdCBpPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBvLGk9LTEscj10Lmxlbmd0aDsrK2k8cjspe3ZhciBuPWUodFtpXSk7dm9pZCAwIT09biYmKG89dm9pZCAwPT09bz9uOm8rbil9cmV0dXJuIG99O3ZhciByPW8oMjMyODU0KTtjb25zdCBuPWZ1bmN0aW9uKHQpe3JldHVybiB0JiZ0Lmxlbmd0aD9pKHQsci5kZWZhdWx0KTowfX19XSk7"}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/63402.d30c1e003b054930d32c.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.560Z","timestamp":1785148034560,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/63402.d30c1e003b054930d32c.js HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a61b1a8-b3cc\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Thu, 23 Jul 2026 06:16:08 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/23/2026 10:17:30\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 7862d24bf55431027b2a8e5b5c06ba6d\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":46028,"size_decoded":16655,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, Unicode text, UTF-8 text, with very long lines (3927)","md5":"51f86891ee79dc28bdaa34f0c6cacb5f","sha1":"8e8c8d6a85f6ac78978e96ad933ef6300d1aef2b","sha256":"015f7b5bad17c7eaeb457105542f879215cd8f29f0a18185e5ab0d330b4db3aa","sha512":"29dec03ba8451463072b5661f375a9c6661cda7bd01c2929bffada338f4987ecb31d0526f7436b86b16de82236ebcdb159d3b2bf504006cf924283c2bb53ae83","ssdeep":"768:0ZUKYt1k9LsYxxHyqE58nvYoZUNIB8BSOfhOSEuE0fykah+kl7Y8HgJD/xpnwv/a:+5qUZEekx8oVS3rPlc9wfgxI+DcwDtgw","tlshash":"58232a297190b47ca2e7419ec02e480ce36a2488e8659cb5f9fcecdd33d598d31655fe","first_seen":"2026-07-23T14:00:31.469602Z","last_seen":"2026-07-27T12:48:39.736955Z","times_seen":57,"resource_available":true,"data":"KHNlbGYud2VicGFja0NodW5rdHJhZGluZ3ZpZXc9c2VsZi53ZWJwYWNrQ2h1bmt0cmFkaW5ndmlld3x8W10pLnB1c2goW1s2MzQwMl0sezg1NDQ1KGUpe2UuZXhwb3J0cz17cGlsbHM6InBpbGxzLUllUXdQamNaIixwcmltYXJ5OiJwcmltYXJ5LUllUXdQamNaIixncmF5OiJncmF5LUllUXdQamNaIixzZWxlY3RlZDoic2VsZWN0ZWQtSWVRd1BqY1oiLGdyb3VwZWQ6Imdyb3VwZWQtSWVRd1BqY1oiLGFjdGl2ZToiYWN0aXZlLUllUXdQamNaIixkaXNhYmxlQWN0aXZlT25Ub3VjaDoiZGlzYWJsZUFjdGl2ZU9uVG91Y2gtSWVRd1BqY1oiLGRpc2FibGVBY3RpdmVTdGF0ZVN0eWxlczoiZGlzYWJsZUFjdGl2ZVN0YXRlU3R5bGVzLUllUXdQamNaIix3aXRoR3JvdXBlZDoid2l0aEdyb3VwZWQtSWVRd1BqY1oiLCJxdWlldC1wcmltYXJ5IjoicXVpZXQtcHJpbWFyeS1JZVF3UGpjWiIsZ3JlZW46ImdyZWVuLUllUXdQamNaIixyZWQ6InJlZC1JZVF3UGpjWiIsYmx1ZToiYmx1ZS1JZVF3UGpjWiIsc2Vjb25kYXJ5OiJzZWNvbmRhcnktSWVRd1BqY1oiLGdob3N0OiJnaG9zdC1JZVF3UGpjWiJ9fSwzNjQ4MTUoZSl7ZS5leHBvcnRzPXtsaWdodEJ1dHRvbjoibGlnaHRCdXR0b24ta2pSZlRsZngiLGxpbms6Imxpbmsta2pSZlRsZngiLGx0cjoibHRyLWtqUmZUbGZ4IixydGw6InJ0bC1ralJmVGxmeCIsInR5cG9ncmFwaHktcmVndWxhcjE2cHgiOiJ0eXBvZ3JhcGh5LXJlZ3VsYXIxNnB4LWtqUmZUbGZ4IiwidHlwb2dyYXBoeS1tZWRpdW0xNnB4IjoidHlwb2dyYXBoeS1tZWRpdW0xNnB4LWtqUmZUbGZ4IiwidHlwb2dyYXBoeS1yZWd1bGFyMTRweCI6InR5cG9ncmFwaHktcmVndWxhcjE0cHgta2pSZlRsZngiLCJ0eXBvZ3JhcGh5LXNlbWlib2xkMTRweCI6InR5cG9ncmFwaHktc2VtaWJvbGQxNHB4LWtqUmZUbGZ4IiwidHlwb2dyYXBoeS1zZW1pYm9sZDE2cHgiOiJ0eXBvZ3JhcGh5LXNlbWlib2xkMTZweC1ralJmVGxmeCIsY29udGVudDoiY29udGVudC1ralJmVGxmeCIsdmlzdWFsbHlIaWRkZW46InZpc3VhbGx5SGlkZGVuLWtqUmZUbGZ4Iixub3dyYXA6Im5vd3JhcC1ralJmVGxmeCIsZWxsaXBzaXNDb250YWluZXI6ImVsbGlwc2lzQ29udGFpbmVyLWtqUmZUbGZ4Iix0ZXh0V3JhcENvbnRhaW5lcjoidGV4dFdyYXBDb250YWluZXIta2pSZlRsZngiLHRleHRXcmFwV2l0aEVsbGlwc2lzOiJ0ZXh0V3JhcFdpdGhFbGxpcHNpcy1ralJmVGxmeCIsc2xvdDoic2xvdC1ralJmVGxmeCIsY2FyZXQ6ImNhcmV0LWtqUmZUbGZ4IixhY3RpdmVDYXJldDoiYWN0aXZlQ2FyZXQta2pSZlRsZngiLHhzbWFsbDoieHNtYWxsLWtqUmZUbGZ4Iix3aXRoU3RhcnRTbG90OiJ3aXRoU3RhcnRTbG90LWtqUmZUbGZ4Iix3aXRoRW5kU2xvdDoid2l0aEVuZFNsb3Qta2pSZlRsZngiLG5vQ29udGVudDoibm9Db250ZW50LWtqUmZUbGZ4Iix3cmFwOiJ3cmFwLWtqUmZUbGZ4IixzbWFsbDoic21hbGwta2pSZlRsZngiLG1lZGl1bToibWVkaXVtLWtqUmZUbGZ4In19LDgzMjUxOChlKXtlLmV4cG9ydHM9eyJjaGVja2JveC1zaXplIjoiMThweCIsYm94OiJib3gtWGZHa0JCcWYiLHVuY2hlY2tlZDoidW5jaGVja2VkLVhmR2tCQnFmIixjaGVja2VkOiJjaGVja2VkLVhmR2tCQnFmIixtaXhlZDoibWl4ZWQtWGZHa0JCcWYiLGRpc2FibGVkOiJkaXNhYmxlZC1YZkdrQkJxZiIsY2hlY2tlZE1hcms6ImNoZWNrZWRNYXJrLVhmR2tCQnFmIixtaXhlZE1hcms6Im1peGVkTWFyay1YZkdrQkJxZiJ9fSw4NjAwMjUoZSl7ZS5leHBvcnRzPXtwYWlyOiJwYWlyLXh3R3NTWFIwIix4eGNlcHRpb25hbGx5c21hbGxkb25vdHVzZWJydjEwMjM6Inh4Y2VwdGlvbmFsbHlzbWFsbGRvbm90dXNlYnJ2MTAyMy14d0dzU1hSMCIseHh4eHNtYWxsOiJ4eHh4c21hbGwteHdHc1NYUjAiLHh4eHNtYWxsOiJ4eHhzbWFsbC14d0dzU1hSMCIseHhzbWFsbDoieHhzbWFsbC14d0dzU1hSMCIseHNtYWxsOiJ4c21hbGwteHdHc1NYUjAiLHNtYWxsOiJzbWFsbC14d0dzU1hSMCIsbWVkaXVtOiJtZWRpdW0teHdHc1NYUjAiLGxhcmdlOiJsYXJnZS14d0dzU1hSMCIseGxhcmdlOiJ4bGFyZ2UteHdHc1NYUjAiLHh4bGFyZ2U6Inh4bGFyZ2UteHdHc1NYUjAiLHh4eGxhcmdlOiJ4eHhsYXJnZS14d0dzU1hSMCIsbG9nbzoibG9nby14d0dzU1hSMCIsc2tlbGV0b246InNrZWxldG9uLXh3R3NTWFIwIixlbXB0eToiZW1wdHkteHdHc1NYUjAifX0sNDI5MzUzKGUpe2UuZXhwb3J0cz17ZGlzYWJsZVNlbGZQb3NpdGlvbmluZzoiZGlzYWJsZVNlbGZQb3NpdGlvbmluZy1MclpwNFJPQyJ9fSw1OTE3MjgoZSl7ZS5leHBvcnRzPXtjb250YWluZXI6ImNvbnRhaW5lci1haTkzREpWdyIsdmlzaWJsZToidmlzaWJsZS1haTkzREpWdyIsZm9yY2VWaXNpYmxlOiJmb3JjZVZpc2libGUtYWk5M0RKVncifX0sNzUxODYzKGUpe2UuZXhwb3J0cz17d3JhcDoid3JhcC1HaERqWHpCeCIsaW5wdXQ6ImlucHV0LUdoRGpYekJ4Iixib3g6ImJveC1HaERqWHpCeCIsaG92ZXJEb3Q6ImhvdmVyRG90LUdoRGpYekJ4IixyZWQ6InJlZC1HaERqWHpCeCIsYmx1ZToiYmx1ZS1HaERqWHpCeCIsZ3JlZW46ImdyZWVuLUdoRGpYekJ4IixvcmFuZ2U6Im9yYW5nZS1HaERqWHpCeCIscHVycGxlOiJwdXJwbGUtR2hEalh6QngiLGN5YW46ImN5YW4tR2hEalh6QngiLHBpbms6InBpbmstR2hEalh6QngiLGxhcmdlOiJsYXJnZS1HaERqWHpCeCIscGlja2VyRG90OiJwaWNrZXJEb3QtR2hEalh6QngifX0sNTU4ODczKGUpe2UuZXhwb3J0cz17d3JhcHBlcjoid3JhcHBlci15Zk5iZ3RnTiIsYnV0dG9uczoiYnV0dG9ucy15Zk5iZ3RnTiIsY29sb3JTZWxlY3RCdXR0b246ImNvbG9yU2VsZWN0QnV0dG9uLXlmTmJndGdOIn19LDU1ODk3MihlKXtlLmV4cG9ydHM9e3dyYXBwZXI6IndyYXBwZXItVm5lUVZvTnYiLHNlbGVjdG9yOiJzZWxlY3Rvci1WbmVRVm9OdiIsYXJyb3dMZWZ0OiJhcnJvd0xlZnQtVm5lUVZvTnYiLGNvbG9yU2VsZWN0QnV0dG9uOiJjb2xvclNlbGVjdEJ1dHRvbi1WbmVRVm9OdiIscG9wdXA6InBvcHVwLVZuZVFWb052In19LDkxNjI2KGUpe2UuZXhwb3J0cz17aXRlbToiaXRlbS12VG04TzBMTSIsCmludGVyYWN0aXZlOiJpbnRlcmFjdGl2ZS12VG04TzBMTSIsaG92ZXJlZDoiaG92ZXJlZC12VG04TzBMTSIsZGlzYWJsZWQ6ImRpc2FibGVkLXZUbThPMExNIixhY3RpdmU6ImFjdGl2ZS12VG04TzBMTSIsc2hvcnRjdXQ6InNob3J0Y3V0LXZUbThPMExNIixub3JtYWw6Im5vcm1hbC12VG04TzBMTSIsYmlnOiJiaWctdlRtOE8wTE0iLGljb25DZWxsOiJpY29uQ2VsbC12VG04TzBMTSIsaWNvbjoiaWNvbi12VG04TzBMTSIsY29udGVudDoiY29udGVudC12VG04TzBMTSIsbGFiZWw6ImxhYmVsLXZUbThPMExNIixjaGVja2VkOiJjaGVja2VkLXZUbThPMExNIix0b29sYm94OiJ0b29sYm94LXZUbThPMExNIixzaG93VG9vbGJveE9uSG92ZXI6InNob3dUb29sYm94T25Ib3Zlci12VG04TzBMTSIsYXJyb3dJY29uOiJhcnJvd0ljb24tdlRtOE8wTE0iLHN1Yk1lbnU6InN1Yk1lbnUtdlRtOE8wTE0iLGludmlzaWJsZUhvdGtleToiaW52aXNpYmxlSG90a2V5LXZUbThPMExNIn19LDEwNzk2NihlKXtlLmV4cG9ydHM9e2l0ZW06Iml0ZW0tZDlqTE9MclIiLGVtcHR5SWNvbnM6ImVtcHR5SWNvbnMtZDlqTE9MclIiLGxvYWRpbmc6ImxvYWRpbmctZDlqTE9MclIiLGRpc2FibGVkOiJkaXNhYmxlZC1kOWpMT0xyUiIsaW50ZXJhY3RpdmU6ImludGVyYWN0aXZlLWQ5akxPTHJSIixob3ZlcmVkOiJob3ZlcmVkLWQ5akxPTHJSIixub3JtYWw6Im5vcm1hbC1kOWpMT0xyUiIsYmlnOiJiaWctZDlqTE9MclIiLGljb246Imljb24tZDlqTE9MclIiLGxhYmVsOiJsYWJlbC1kOWpMT0xyUiIsdGl0bGU6InRpdGxlLWQ5akxPTHJSIixuZXN0ZWQ6Im5lc3RlZC1kOWpMT0xyUiIsc2hvcnRjdXQ6InNob3J0Y3V0LWQ5akxPTHJSIixyZW1vdmU6InJlbW92ZS1kOWpMT0xyUiJ9fSw5NTQ0NzgoZSl7ZS5leHBvcnRzPXtzZXBhcmF0b3I6InNlcGFyYXRvci1LSHR5TVRZRyJ9fSwxNzcxMTYoZSl7ZS5leHBvcnRzPXtjb250YWluZXI6ImNvbnRhaW5lci1NMW16NHF1QSIscGFpckNvbnRhaW5lcjoicGFpckNvbnRhaW5lci1NMW16NHF1QSIsbG9nbzoibG9nby1NMW16NHF1QSIsaGlkZGVuOiJoaWRkZW4tTTFtejRxdUEifX0sNDYwMzcwKGUpe2UuZXhwb3J0cz17c2Nyb2xsV3JhcDoic2Nyb2xsV3JhcC1GYU92VEQyciIsc2Nyb2xsV3JhcF92aXNpYmxlOiJzY3JvbGxXcmFwX3Zpc2libGUtRmFPdlREMnIifX0sNjQ2MTYyKGUpe2UuZXhwb3J0cz17d3JhcDoid3JhcC12U2I2QzBCaiIsIndyYXAtLWhvcml6b250YWwiOiJ3cmFwLS1ob3Jpem9udGFsLXZTYjZDMEJqIixiYXI6ImJhci12U2I2QzBCaiIsYmFySW5uZXI6ImJhcklubmVyLXZTYjZDMEJqIiwiYmFySW5uZXItLWhvcml6b250YWwiOiJiYXJJbm5lci0taG9yaXpvbnRhbC12U2I2QzBCaiIsImJhci0taG9yaXpvbnRhbCI6ImJhci0taG9yaXpvbnRhbC12U2I2QzBCaiJ9fSw4MTAyODEoZSl7ZS5leHBvcnRzPXtpY29uOiJpY29uLVdCMnkwRW5QIixkcm9wcGVkOiJkcm9wcGVkLVdCMnkwRW5QIn19LDg2NTU2MChlLHQsbyl7InVzZSBzdHJpY3QiO28uZCh0LHtUVkFwcENvbnRleHQ6KCk9PmMsVFZBcHBDb250ZXh0UHJvdmlkZXI6KCk9Pml9KTt2YXIgbj1vKDc3OTQ3NCkscj1vKDExNTI5Mykscz1vKDk5OTUxKSxhPW8oMTE3MzEzKTtjb25zdCBsPXtpT3M6Im9sZCIsYW5kcm9pZDoibmV3IixvbGQ6Im9sZCIsbmV3OiJuZXciLGFueToiYW55In07ZnVuY3Rpb24gaShlKXtjb25zdFt0XT0oMCxuLnVzZVN0YXRlKSh7aXNPbk1vYmlsZUFwcFBhZ2U6ZT0+KDAsYS5pc09uTW9iaWxlQXBwUGFnZSkobFtlXSksaXNSdGw6KDAsci5pc1J0bCkoKSxsb2NhbGU6d2luZG93LmxvY2FsZSxyZW5kZXJNb2RlOmUucmVuZGVyTW9kZT8/ImxlZ2FjeSJ9KTtyZXR1cm4gbi5jcmVhdGVFbGVtZW50KHMuQXBwQ29udGV4dC5Qcm92aWRlcix7dmFsdWU6dH0sZS5jaGlsZHJlbil9Y29uc3QgYz1zLkFwcENvbnRleHR9LDU3MTMwMChlLHQsbyl7InVzZSBzdHJpY3QiO28ucih0KSxvLmQodCx7Y3JlYXRlUmVhY3RSb290OigpPT5sfSk7dmFyIG49byg3Nzk0NzQpLHI9bygxMjkzNjUpLHM9bygzMzYzMzQpLGE9byg4NjU1NjApO2Z1bmN0aW9uIGwoZSx0LG89ImxlZ2FjeSIpe2NvbnN0IGw9bi5jcmVhdGVFbGVtZW50KGEuVFZBcHBDb250ZXh0UHJvdmlkZXIse3JlbmRlck1vZGU6b30sZSk7aWYoIm1vZGVybiI9PT1vKXtjb25zdCBlPSgwLHMuY3JlYXRlUm9vdCkodCk7cmV0dXJuIGUucmVuZGVyKGwpLHtyZW5kZXIodCl7ZS5yZW5kZXIobi5jcmVhdGVFbGVtZW50KGEuVFZBcHBDb250ZXh0UHJvdmlkZXIse3JlbmRlck1vZGU6b30sdCkpfSx1bm1vdW50KCl7ZS51bm1vdW50KCl9fX1yZXR1cm4gci5yZW5kZXIobCx0KSx7cmVuZGVyKGUpe3IucmVuZGVyKG4uY3JlYXRlRWxlbWVudChhLlRWQXBwQ29udGV4dFByb3ZpZGVyLHtyZW5kZXJNb2RlOm99LGUpLHQpfSx1bm1vdW50KCl7ci51bm1vdW50Q29tcG9uZW50QXROb2RlKHQpfX19fSwxMDc1ODUoZSx0LG8peyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKGUsdCl7cmV0dXJuIHR8fG51bGw9PWV8fCgic3RyaW5nIj09dHlwZW9mIGV8fEFycmF5LmlzQXJyYXkoZSkpJiYwPT09ZS5sZW5ndGh9by5kKHQse2lzSWNvbk9ubHk6KCk9Pm59KX0sMjIwNzY0KGUsdCxvKXsidXNlIHN0cmljdCI7by5kKHQse0J1dHRvbkdyb3VwQ29udGV4dDooKT0+bn0pO2NvbnN0IG49byg3Nzk0NzQpLmNyZWF0ZUNvbnRleHQoe2lzSW5CdXR0b25Hcm91cDohMSxpc0dyb3VwUHJpbWFyeTohMX0pfSwzMjgyMTkoZSx0LG8peyJ1c2Ugc3RyaWN0IjtvLmQodCx7dXNlTGlnaHRCdXR0b25DbGFzc2VzOigpPT51fSk7dmFyIG49byg3Nzk0NzQpLHI9byg5MTQ0ODcpLHM9by5uKHIpLGE9bygzMDk5MjApLGw9bygxMDc1ODUpLGk9byg1MzIwMTEpLGM9bygyMjA3NjQpO2NvbnN0IHU9KGUsdCxvKT0+e2NvbnN0IHI9KDAsCm4udXNlQ29udGV4dCkoYS5DdXN0b21CZWhhdmlvdXJDb250ZXh0KSx7Y2xhc3NOYW1lOnUsaXNTZWxlY3RlZDptLGNoaWxkcmVuOmQsc2hvd0NhcmV0OnAsZm9yY2VEaXJlY3Rpb246aCxpY29uT25seTpnLGNvbG9yOnY9ImdyYXkiLHZhcmlhbnQ6Xz0icHJpbWFyeSIsc2l6ZTpmPSJtZWRpdW0iLGVuYWJsZUFjdGl2ZVN0YXRlU3R5bGVzOmI9ci5lbmFibGVBY3RpdmVTdGF0ZVN0eWxlcyx0eXBvZ3JhcGh5OkMsaXNMaW5rOng9ITEsdGV4dFdyYXA6eSxpc1BpbGxzOlMsaXNBY3RpdmU6dyxzdGFydFNsb3Q6ayxlbmRTbG90OkV9PXQsTD1lW2B0eXBvZ3JhcGh5LSR7KChlLHQsbyk9PntpZihvKXtjb25zdCBlPW8ucmVwbGFjZSgvXlxEKy9nLCIiKTtyZXR1cm4gdD9gc2VtaWJvbGQke2V9YDpvfXN3aXRjaChlKXtjYXNlInhzbWFsbCI6cmV0dXJuIHQ/InNlbWlib2xkMTRweCI6InJlZ3VsYXIxNHB4IjtjYXNlInNtYWxsIjpjYXNlIm1lZGl1bSI6cmV0dXJuIHQ/InNlbWlib2xkMTZweCI6InJlZ3VsYXIxNnB4IjtkZWZhdWx0OnJldHVybiIifX0pKGYsbXx8UyxDfHx2b2lkIDApfWBdLE49KDAsbi51c2VDb250ZXh0KShpLkNvbnRyb2xHcm91cENvbnRleHQpLHtpc0luQnV0dG9uR3JvdXA6TSxpc0dyb3VwUHJpbWFyeTpUfT0oMCxuLnVzZUNvbnRleHQpKGMuQnV0dG9uR3JvdXBDb250ZXh0KTtyZXR1cm4gcygpKHUsZS5saWdodEJ1dHRvbix4JiZlLmxpbmssdyYmZS5hY3RpdmUsbSYmZS5zZWxlY3RlZCwoMCxsLmlzSWNvbk9ubHkpKGQsZykmJmUubm9Db250ZW50LCEhayYmZS53aXRoU3RhcnRTbG90LChwfHwhIUUpJiZlLndpdGhFbmRTbG90LG8mJmUud2l0aEdyb3VwZWQsaCYmZVtoXSxlW1Q/InByaW1hcnkiOl9dLGVbVD8iZ3JheSI6dl0sZVtmXSxMLCFiJiZlLmRpc2FibGVBY3RpdmVTdGF0ZVN0eWxlcyxOLmlzR3JvdXBlZCYmZS5ncm91cGVkLHkmJmUud3JhcCxNJiZlLmRpc2FibGVBY3RpdmVPblRvdWNoLFMmJmUucGlsbHMpfX0sODMwMTIoZSx0LG8peyJ1c2Ugc3RyaWN0IjtvLmQodCx7TGlnaHRCdXR0b25Db250ZW50OigpPT5wfSk7dmFyIG49byg3Nzk0NzQpLHI9byg5MTQ0ODcpLHM9by5uKHIpLGE9byg3NzAxNDMpLGw9bygxMDc1ODUpLGk9bygyNzMzMTApLGM9byg5MzUxKSx1PW8ubihjKSxtPW8oMzY0ODE1KSxkPW8ubihtKTtmdW5jdGlvbiBwKGUpe2NvbnN0e3Nob3dDYXJldDp0LGljb25Pbmx5Om8sZWxsaXBzaXM6cj0hMCx0ZXh0V3JhcDpjLHRvb2x0aXBUZXh0Om0sY2hpbGRyZW46cCxlbmRTbG90Omgsc3RhcnRTbG90OmcsaXNBY3RpdmVDYXJldDp2fT1lO1toLHRdLmZpbHRlcigoZT0+ISFlKSk7cmV0dXJuIG4uY3JlYXRlRWxlbWVudChuLkZyYWdtZW50LG51bGwsZyYmbi5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOnMoKShkKCkuc2xvdCxkKCkuc3RhcnRTbG90KX0sZyksISgwLGwuaXNJY29uT25seSkocCxvKSYmbi5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOnMoKShkKCkuY29udGVudCwhYyYmZCgpLm5vd3JhcCwiYXBwbHktb3ZlcmZsb3ctdG9vbHRpcCIsImFwcGx5LW92ZXJmbG93LXRvb2x0aXAtLWNoZWNrLWNoaWxkcmVuLXJlY3Vyc2l2ZWx5IiwiYXBwbHktb3ZlcmZsb3ctdG9vbHRpcC0tYWxsb3ctdGV4dCIpLCJkYXRhLW92ZXJmbG93LXRvb2x0aXAtdGV4dCI6bT8/KDAsYS5nZXRUZXh0Rm9yVG9vbHRpcCkocCl9LGN8fHI/bi5jcmVhdGVFbGVtZW50KG4uRnJhZ21lbnQsbnVsbCxuLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6cygpKCFjJiZyJiZkKCkuZWxsaXBzaXNDb250YWluZXIsYyYmZCgpLnRleHRXcmFwQ29udGFpbmVyLGMmJnImJmQoKS50ZXh0V3JhcFdpdGhFbGxpcHNpcyl9LHApLG4uY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZTpkKCkudmlzdWFsbHlIaWRkZW4sImFyaWEtaGlkZGVuIjohMH0scCkpOm4uY3JlYXRlRWxlbWVudChuLkZyYWdtZW50LG51bGwscCxuLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6ZCgpLnZpc3VhbGx5SGlkZGVuLCJhcmlhLWhpZGRlbiI6ITB9LHApKSksaCYmbi5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOnMoKShkKCkuc2xvdCxkKCkuZW5kU2xvdCl9LGgpLHQmJihlPT5uLmNyZWF0ZUVsZW1lbnQoaS5JY29uLHtjbGFzc05hbWU6cygpKGQoKS5jYXJldCxlJiZkKCkuYWN0aXZlQ2FyZXQpLGljb246dSgpfSkpKHYpKX19LDg1NDgyMChlLHQsbyl7InVzZSBzdHJpY3QiO28uZCh0LHtMaWdodEJ1dHRvbjooKT0+ZH0pO3ZhciBuPW8oNzc5NDc0KSxyPW8oNTMyMDExKSxzPW8oMzI4MjE5KSxhPW8oODMwMTIpLGw9bygzNDUxMTYpLGk9bygzNjQ4MTUpLGM9by5uKGkpLHU9byg4NTQ0NSksbT1vLm4odSk7ZnVuY3Rpb24gZChlKXtjb25zdHtpc0dyb3VwZWQ6dH09bi51c2VDb250ZXh0KHIuQ29udHJvbEdyb3VwQ29udGV4dCkse3JlZmVyZW5jZTpvLGNsYXNzTmFtZTppLGlzU2VsZWN0ZWQ6dSxjaGlsZHJlbjpkLGljb25Pbmx5OnAsZWxsaXBzaXM6aCxzaG93Q2FyZXQ6Zyxmb3JjZURpcmVjdGlvbjp2LGVuZFNsb3Q6XyxzdGFydFNsb3Q6Zixjb2xvcjpiLHZhcmlhbnQ6QyxzaXplOngsZW5hYmxlQWN0aXZlU3RhdGVTdHlsZXM6eSx0eXBvZ3JhcGh5OlMsdGV4dFdyYXA6dz0hMSxtYXhMaW5lczprLHN0eWxlOkU9e30saXNQaWxsczpMLGlzQWN0aXZlOk4sdG9vbHRpcFRleHQ6TSxyb2xlOlQsZGF0YVFhSWQ6UCxhcmlhTGFiZWw6SSxuYW1lOlIsb25Gb2N1czpPLG9uQmx1cjpCLG9uTW91c2VFbnRlcjpqLG9uTW91c2VMZWF2ZTp6LG9uTW91c2VPdmVyOkQsb25Nb3VzZU91dDpBLG9uQ2xpY2s6RyxvbkFuaW1hdGlvbkVuZDpXLG9uUG9pbnRlck92ZXI6VSxvblBvaW50ZXJPdXQ6SCxvbktleURvd246VixhdXRvRm9jdXM6WCxpc0FjdGl2ZUNhcmV0OkYsaWQ6USxkaXNhYmxlZDpaLHRhYkluZGV4OnEsdmFsdWU6Syx0aXRsZTokLHR5cGU6SiwuLi5ZfT1lLGVlPSgwLGwuZmlsdGVyRGF0YVByb3BzKShZKSx0ZT0oMCxsLmZpbHRlckFyaWFQcm9wcykoWSksb2U9dz9rPz8yOjEsbmU9b2U+MD97Li4uRSwKIi0tdWktbGliLWxpZ2h0LWJ1dHRvbi1jb250ZW50LW1heC1saW5lcyI6b2V9OkU7cmV0dXJuIG4uY3JlYXRlRWxlbWVudCgiYnV0dG9uIix7bmFtZTpSLG9uRm9jdXM6TyxvbkJsdXI6Qixvbk1vdXNlRW50ZXI6aixvbk1vdXNlTGVhdmU6eixvbk1vdXNlT3ZlcjpELG9uTW91c2VPdXQ6QSxvbkNsaWNrOkcsb25BbmltYXRpb25FbmQ6VyxvblBvaW50ZXJPdmVyOlUsb25Qb2ludGVyT3V0Okgsb25LZXlEb3duOlYsYXV0b0ZvY3VzOlgsaWQ6USxkaXNhYmxlZDpaLHRhYkluZGV4OnEsdmFsdWU6Syx0aXRsZTokLHR5cGU6SiwiZGF0YS1xYS1pZCI6UCwiYXJpYS1sYWJlbCI6SSwuLi5lZSwuLi50ZSxjbGFzc05hbWU6KDAscy51c2VMaWdodEJ1dHRvbkNsYXNzZXMpKHsuLi5tKCksLi4uYygpfSx7Y2xhc3NOYW1lOmksaXNTZWxlY3RlZDp1LGNoaWxkcmVuOmQsaWNvbk9ubHk6cCxzaG93Q2FyZXQ6Zyxmb3JjZURpcmVjdGlvbjp2LGVuZFNsb3Q6XyxzdGFydFNsb3Q6Zixjb2xvcjpiLHZhcmlhbnQ6QyxzaXplOngsZW5hYmxlQWN0aXZlU3RhdGVTdHlsZXM6eSx0eXBvZ3JhcGh5OlMsdGV4dFdyYXA6dyxpc1BpbGxzOkwsaXNBY3RpdmU6Tn0sdCkscmVmOm8sc3R5bGU6bmUscm9sZTpUfSxuLmNyZWF0ZUVsZW1lbnQoYS5MaWdodEJ1dHRvbkNvbnRlbnQse3Nob3dDYXJldDpnLGlzQWN0aXZlQ2FyZXQ6ZyYmKEx8fE58fHV8fEYpLGljb25Pbmx5OnAsZWxsaXBzaXM6aCx0ZXh0V3JhcDp3LHRvb2x0aXBUZXh0Ok0sZW5kU2xvdDpfLHN0YXJ0U2xvdDpmfSxkKSl9fSw1MzYxMjUoZSx0LG8peyJ1c2Ugc3RyaWN0IjtvLmQodCx7Q2hlY2tib3hWaWV3SW1wbDooKT0+ZH0pO3ZhciBuPW8oNzc5NDc0KSxyPW8oOTE0NDg3KSxzPW8ubihyKSxhPW8oMjE3Mjc0KSxsPW8oMTQ3OTAxKSxpPW8oMTI1ODk3KSxjPW8ubihpKSx1PW8oODMyNTE4KSxtPW8ubih1KTtmdW5jdGlvbiBkKGUpe2NvbnN0e2NoZWNrZWQ6dCxkaXNhYmxlZDpvLGRhdGFRYUlkOnJ9PWU7cmV0dXJuIG4uY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOnMoKShtKCkuYm94LCEwPT09dCYmbSgpLmNoZWNrZWQsITE9PT10JiZtKCkudW5jaGVja2VkLCJtaXhlZCI9PT10JiZtKCkubWl4ZWQsbyYmbSgpLmRpc2FibGVkKSwiZGF0YS1xYS1pZCI6KDAsbC5jb25jYXRJZk5vdE51bGwpKGAke2wuVUlfTElCX0RBVEFfUUFfSURfUFJFRklYfWNoZWNrYm94LXZpZXctJHt0PyJjaGVja2VkIjoidW5jaGVja2VkIn1gLHIpfSwhMD09PXQmJm4uY3JlYXRlRWxlbWVudChhLkJsb2NrSWNvbix7aWNvbjpjKCksY2xhc3NOYW1lOm0oKS5jaGVja2VkTWFya30pLCJtaXhlZCI9PT10JiZuLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTptKCkubWl4ZWRNYXJrfSkpfX0sNjI3ODQ4KGUsdCxvKXsidXNlIHN0cmljdCI7by5kKHQse2dldEJsb2NrU3R5bGVDbGFzc2VzOigpPT5pLGdldExvZ29TdHlsZUNsYXNzZXM6KCk9PmN9KTt2YXIgbj1vKDkxNDQ4Nykscj1vLm4obikscz1vKDEzNjQpLGE9byg4NjAwMjUpLGw9by5uKGEpO2Z1bmN0aW9uIGkoZSx0KXtyZXR1cm4gcigpKGwoKS5wYWlyLGwoKVtlXSx0KX1mdW5jdGlvbiBjKGUsdD0yLG89ITApe3JldHVybiByKCkobCgpLmxvZ28sbCgpW2VdLGwoKS5za2VsZXRvbixzLnNrZWxldG9uVGhlbWUud3JhcHBlciwhbyYmbCgpLmVtcHR5LDE9PT10JiZyKCkocy5za2VsZXRvblRoZW1lLmFuaW1hdGVkKSl9fSw1MzIwMTEoZSx0LG8peyJ1c2Ugc3RyaWN0IjtvLmQodCx7Q29udHJvbEdyb3VwQ29udGV4dDooKT0+cyxkZWZhdWx0Q2VsbFN0YXRlOigpPT5yfSk7dmFyIG49byg3Nzk0NzQpO2NvbnN0IHI9e2lzVG9wOiEwLGlzUmlnaHQ6ITAsaXNCb3R0b206ITAsaXNMZWZ0OiEwfSxzPW4uY3JlYXRlQ29udGV4dCh7aXNHcm91cGVkOiExLGNlbGxTdGF0ZTpyfSl9LDY0MTkwKGUsdCxvKXsidXNlIHN0cmljdCI7by5kKHQse1NwaW5uZXI6KCk9PmN9KTt2YXIgbj1vKDc3OTQ3NCkscj1vKDkxNDQ4Nykscz1vLm4ociksYT1vKDU2NzQ3OSksbD0obyg4NDU1NzcpLG8oNDI5MzUzKSksaT1vLm4obCk7ZnVuY3Rpb24gYyhlKXtjb25zdHthcmlhTGFiZWw6dCxhcmlhTGFiZWxsZWRieTpvLGNsYXNzTmFtZTpyLHN0eWxlOmwsc2l6ZTpjLGlkOnUsZGlzYWJsZVNlbGZQb3NpdGlvbmluZzptfT1lO3JldHVybiBuLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpzKCkociwidHYtc3Bpbm5lciIsInR2LXNwaW5uZXItLXNob3duIixgdHYtc3Bpbm5lci0tc2l6ZV8ke2Euc3Bpbm5lclNpemVNYXBbY3x8YS5ERUZBVUxUX1NJWkVdfWAsbSYmaSgpLmRpc2FibGVTZWxmUG9zaXRpb25pbmcpLHN0eWxlOmwscm9sZToicHJvZ3Jlc3NiYXIiLGlkOnUsImFyaWEtbGFiZWwiOnQsImFyaWEtbGFiZWxsZWRieSI6b30pfX0sODY5ODQyKGUsdCxvKXsidXNlIHN0cmljdCI7by5kKHQse1N3aXRjaEdyb3VwQ29udGV4dDooKT0+c30pO3ZhciBuPW8oNzc5NDc0KSxyPW8oODYyMzg4KTtjb25zdCBzPSgwLG4uY3JlYXRlQ29udGV4dCkoe2dldE5hbWU6KCk9PiIiLGdldFZhbHVlczooKT0+W10sZ2V0T25DaGFuZ2U6KCk9PnIuZGVmYXVsdCxzdWJzY3JpYmU6ci5kZWZhdWx0LHVuc3Vic2NyaWJlOnIuZGVmYXVsdH0pfSw2NTg0NihlLHQsbyl7InVzZSBzdHJpY3QiO28uZCh0LHttYWtlU3dpdGNoR3JvdXBJdGVtOigpPT5zfSk7dmFyIG49byg3Nzk0NzQpLHI9byg4Njk4NDIpO2Z1bmN0aW9uIHMoZSl7dmFyIHQ7cmV0dXJuIHQ9Y2xhc3MgZXh0ZW5kcyBuLlB1cmVDb21wb25lbnR7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMuX29uQ2hhbmdlPWU9Pnt0aGlzLmNvbnRleHQuZ2V0T25DaGFuZ2UoKShlLnRhcmdldC52YWx1ZSl9LHRoaXMuX29uVXBkYXRlPWU9PntlLmluY2x1ZGVzKHRoaXMucHJvcHMudmFsdWUpJiZ0aGlzLmZvcmNlVXBkYXRlKCl9fWNvbXBvbmVudERpZE1vdW50KCl7dGhpcy5jb250ZXh0LnN1YnNjcmliZSh0aGlzLl9vblVwZGF0ZSl9cmVuZGVyKCl7cmV0dXJuIG4uY3JlYXRlRWxlbWVudChlLHsuLi50aGlzLnByb3BzLG5hbWU6dGhpcy5fZ2V0TmFtZSgpLG9uQ2hhbmdlOnRoaXMuX29uQ2hhbmdlLApjaGVja2VkOnRoaXMuX2lzQ2hlY2tlZCgpfSl9Y29tcG9uZW50V2lsbFVubW91bnQoKXt0aGlzLmNvbnRleHQudW5zdWJzY3JpYmUodGhpcy5fb25VcGRhdGUpfV9nZXROYW1lKCl7cmV0dXJuIHRoaXMuY29udGV4dC5nZXROYW1lKCl9X2lzQ2hlY2tlZCgpe3JldHVybiB0aGlzLmNvbnRleHQuZ2V0VmFsdWVzKCkuaW5jbHVkZXModGhpcy5wcm9wcy52YWx1ZSl9fSx0LmNvbnRleHRUeXBlPXIuU3dpdGNoR3JvdXBDb250ZXh0LHR9fSwxNDkzNjQoZSx0LG8peyJ1c2Ugc3RyaWN0IjtvLmQodCx7U3dpdGNoR3JvdXA6KCk9PnN9KTt2YXIgbj1vKDc3OTQ3NCkscj1vKDg2OTg0Mik7Y2xhc3MgcyBleHRlbmRzIG4uUHVyZUNvbXBvbmVudHtjb25zdHJ1Y3RvcihlKXtzdXBlcihlKSx0aGlzLl9zdWJzY3JpcHRpb25zPW5ldyBTZXQsdGhpcy5fZ2V0TmFtZT0oKT0+dGhpcy5wcm9wcy5uYW1lLHRoaXMuX2dldFZhbHVlcz0oKT0+dGhpcy5wcm9wcy52YWx1ZXMsdGhpcy5fZ2V0T25DaGFuZ2U9KCk9PnRoaXMucHJvcHMub25DaGFuZ2UsdGhpcy5fc3Vic2NyaWJlPWU9Pnt0aGlzLl9zdWJzY3JpcHRpb25zLmFkZChlKX0sdGhpcy5fdW5zdWJzY3JpYmU9ZT0+e3RoaXMuX3N1YnNjcmlwdGlvbnMuZGVsZXRlKGUpfSx0aGlzLnN0YXRlPXtzd2l0Y2hHcm91cENvbnRleHQ6e2dldE5hbWU6dGhpcy5fZ2V0TmFtZSxnZXRWYWx1ZXM6dGhpcy5fZ2V0VmFsdWVzLGdldE9uQ2hhbmdlOnRoaXMuX2dldE9uQ2hhbmdlLHN1YnNjcmliZTp0aGlzLl9zdWJzY3JpYmUsdW5zdWJzY3JpYmU6dGhpcy5fdW5zdWJzY3JpYmV9fX1yZW5kZXIoKXtyZXR1cm4gbi5jcmVhdGVFbGVtZW50KHIuU3dpdGNoR3JvdXBDb250ZXh0LlByb3ZpZGVyLHt2YWx1ZTp0aGlzLnN0YXRlLnN3aXRjaEdyb3VwQ29udGV4dH0sdGhpcy5wcm9wcy5jaGlsZHJlbil9Y29tcG9uZW50RGlkVXBkYXRlKGUpe3RoaXMuX25vdGlmeSh0aGlzLl9nZXRVcGRhdGVzKHRoaXMucHJvcHMudmFsdWVzLGUudmFsdWVzKSl9X25vdGlmeShlKXt0aGlzLl9zdWJzY3JpcHRpb25zLmZvckVhY2goKHQ9PnQoZSkpKX1fZ2V0VXBkYXRlcyhlLHQpe3JldHVyblsuLi50LC4uLmVdLmZpbHRlcigobz0+dC5pbmNsdWRlcyhvKT8hZS5pbmNsdWRlcyhvKTplLmluY2x1ZGVzKG8pKSl9fX0sMjc4MjYzKGUsdCxvKXsidXNlIHN0cmljdCI7by5kKHQse2Zvcm1hdFRpbWU6KCk9PnAsaXNWYWxpZFRpbWVPcHRpb25zRGF0ZVN0eWxlOigpPT5kLGlzVmFsaWRUaW1lT3B0aW9uc1JhbmdlOigpPT5tfSk7Y29uc3Qgbj17Y2FsZW5kYXI6ImdyZWdvcnkiLG51bWJlcmluZ1N5c3RlbToibGF0biIsaG91cjEyOiExfSxyPXt5ZWFyOiJudW1lcmljIixtb250aDoic2hvcnQiLGRheToibnVtZXJpYyJ9LHM9e3llYXI6Im51bWVyaWMiLG1vbnRoOiIyLWRpZ2l0IixkYXk6IjItZGlnaXQifSxhPXtob3VyOiIyLWRpZ2l0IixtaW51dGU6IjItZGlnaXQiLHNlY29uZDoiMi1kaWdpdCJ9LGw9InNob3J0T2Zmc2V0IixpPSJzaG9ydCIsYz17eWVhcjowLG1vbnRoOjEsZGF5OjIsaG91cjozLG1pbnV0ZTo0LHNlY29uZDo1fTtjb25zdCB1PVsieWVhciIsIm1vbnRoIiwiZGF5IiwiaG91ciIsIm1pbnV0ZSIsInNlY29uZCJdO2Z1bmN0aW9uIG0oZSl7cmV0dXJuIHUuaW5jbHVkZXMoZSl9ZnVuY3Rpb24gZChlKXtyZXR1cm4ibnVtZXJpYyI9PT1lfHwic2hvcnQiPT09ZX1mdW5jdGlvbiBwKGUsdCxvPSJ5ZWFyIix1PSJkYXkiLG0pe2NvbnN0IGQ9ZnVuY3Rpb24oZT0ieWVhciIsdD0iZGF5IixvPXt9KXtbZSx0XT1jW3RdPmNbZV0/W2UsdF06W3QsZV07Y29uc3QgdT17Li4uIm51bWVyaWMiPT09by5kYXRlU3R5bGU/czpyLC4uLmF9LG09by5mcmFjdGlvbmFsU2Vjb25kRGlnaXRzLGQ9ey4uLm4sZnJhY3Rpb25hbFNlY29uZERpZ2l0czp2b2lkIDA9PT1tP3ZvaWQgMDpNYXRoLmZsb29yKE1hdGgubWluKE1hdGgubWF4KDEsbSksMykpLHRpbWVab25lOm8udGltZVpvbmUsd2Vla2RheTpvLndlZWtkYXk/aTp2b2lkIDAsdGltZVpvbmVOYW1lOm8udGltZVpvbmVOYW1lP2w6dm9pZCAwfTtyZXR1cm4gT2JqZWN0LmtleXModSkuZm9yRWFjaCgobz0+e2Nbb10+PWNbZV0mJmNbb108PWNbdF0mJihkW29dPXVbb10pfSkpLGR9KG8sdSxtKSxwPW5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KHQsZCksaD1uZXcgRGF0ZShlKTtyZXR1cm4gcC5mb3JtYXQoaCl9fSw3NzAxNDMoZSx0LG8peyJ1c2Ugc3RyaWN0IjtvLmQodCx7Z2V0VGV4dEZvclRvb2x0aXA6KCk9PmF9KTt2YXIgbj1vKDc3OTQ3NCk7Y29uc3Qgcj1lPT4oMCxuLmlzVmFsaWRFbGVtZW50KShlKSYmQm9vbGVhbihlLnByb3BzLmNoaWxkcmVuKSxzPShlLHQ9ITApPT5udWxsPT1lfHwiYm9vbGVhbiI9PXR5cGVvZiBlfHwie30iPT09SlNPTi5zdHJpbmdpZnkoZSk/IiI6ZS50b1N0cmluZygpKyh0PyIgIjoiIiksYT1lPT5BcnJheS5pc0FycmF5KGUpfHwoMCxuLmlzVmFsaWRFbGVtZW50KShlKT9uLkNoaWxkcmVuLnRvQXJyYXkoZSkucmVkdWNlKCgoZSx0KT0+e2xldCBvPSIiO3JldHVybiBvPSgwLG4uaXNWYWxpZEVsZW1lbnQpKHQpJiZyKHQpP2EodC5wcm9wcy5jaGlsZHJlbik6KDAsbi5pc1ZhbGlkRWxlbWVudCkodCkmJiFyKHQpPyIiOnModCksZS5jb25jYXQobyl9KSwiIikudHJpbSgpOnMoZSwhMSl9LDk3MzgwNChlLHQsbyl7InVzZSBzdHJpY3QiO28uZCh0LHtnZXRJbWFnZTooKT0+c30pO2NvbnN0IG49bmV3IE1hcDtmdW5jdGlvbiByKGUpe2UuY3Jvc3NPcmlnaW49ImFub255bW91cyJ9ZnVuY3Rpb24gcyhlLHQsbz1yLHMpe2xldCBhPW4uZ2V0KGUpO3JldHVybiB2b2lkIDA9PT1hJiYoYT1uZXcgUHJvbWlzZSgoKGUsbik9Pntjb25zdCByPW5ldyBJbWFnZTtyLm9ubG9hZD0oKT0+e2Uociksci5vbmxvYWQ9bnVsbCxyLm9uZXJyb3I9bnVsbH0sci5vbmVycm9yPSgpPT57bigpLHIub25sb2FkPW51bGwsci5vbmVycm9yPW51bGx9LG8ociksci5zcmM9dCxzJiYocy5vbmFib3J0PSgpPT57bigpLHIub25sb2FkPW51bGwsci5vbmVycm9yPW51bGx9KX0pKSxuLnNldChlLGEpKSxhfX0sNTk1MTg5KGUsdCxvKXsidXNlIHN0cmljdCI7by5kKHQse0ZsYWc6KCk9PmwKfSk7dmFyIG49byg3Nzk0NzQpLHI9byg2MDc4MzIpLHM9bygxMjkzMzMpLGE9byg1OTE3MjgpO2NsYXNzIGwgZXh0ZW5kcyBuLkNvbXBvbmVudHtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5fc3ltYm9sTWFya2VyPW51bGwsdGhpcy5fcmVmPW51bGwsdGhpcy5faGFuZGxlUmVmPWU9Pntjb25zdHtzeW1ib2w6dCxvbkNsaWNrOm8sY2xhc3NOYW1lOm4sYWN0aXZlQ2xhc3NOYW1lOnIsZm9yY2VWaXNpYmxlOmw9ITF9PXRoaXMucHJvcHM7bnVsbCE9PWUmJih0aGlzLl9zeW1ib2xNYXJrZXI9bmV3IHMuU3ltYm9sTWFya2VyKHtzeW1ib2w6dCxjbGFzc05hbWU6bixjb250YWluZXI6ZSxhY3RpdmVDbGFzc05hbWU6cnx8KGw/YS5mb3JjZVZpc2libGU6YS52aXNpYmxlKSxvbkNsaWNrOihlLHQpPT57bz9vKHt0YXJnZXRTeW1ib2w6ZSxzZWxlY3RlZFN5bWJvbHM6dGhpcy5wcm9wcy5zZWxlY3RlZFN5bWJvbHMsY29udGludWF0aW9uOnR9KTp0KCl9LG1hbmFnZXI6dGhpcy5jb250ZXh0fSkpLHRoaXMuX3JlZj1lfX1zaG91bGRDb21wb25lbnRVcGRhdGUoZSl7cmV0dXJuIHRoaXMucHJvcHMuc3ltYm9sIT09ZS5zeW1ib2x8fHRoaXMucHJvcHMuY2xhc3NOYW1lIT09ZS5jbGFzc05hbWV9Y29tcG9uZW50RGlkVXBkYXRlKGUpe2NvbnN0e3N5bWJvbDp0LGNsYXNzTmFtZTpvfT10aGlzLnByb3BzO251bGwhPT10aGlzLl9yZWYmJih0IT09ZS5zeW1ib2wmJnRoaXMuX3N5bWJvbE1hcmtlcj8uYmluZFRvKHRoaXMucHJvcHMuc3ltYm9sLHRoaXMuX3JlZiksbyE9PWUuY2xhc3NOYW1lJiZvJiZ0aGlzLl9zeW1ib2xNYXJrZXI/LnNldENsYXNzTmFtZShvKSl9Y29tcG9uZW50V2lsbFVubW91bnQoKXt0aGlzLl9zeW1ib2xNYXJrZXImJnRoaXMuX3N5bWJvbE1hcmtlci5kZXN0cm95KCl9cmVuZGVyKCl7cmV0dXJuIG4uY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZTphLmNvbnRhaW5lcixyZWY6dGhpcy5faGFuZGxlUmVmfSl9fWwuY29udGV4dFR5cGU9ci5TbG90Q29udGV4dH0sNTYxMjA1KGUsdCxvKXsidXNlIHN0cmljdCI7by5kKHQse1N5bWJvbFNlYXJjaEl0ZW1zRGlhbG9nQ29udGV4dDooKT0+bn0pO2NvbnN0IG49byg3Nzk0NzQpLmNyZWF0ZUNvbnRleHQobnVsbCl9LDQ0MDcxNShlLHQsbyl7InVzZSBzdHJpY3QiO28uZCh0LHtDb250ZXh0TWVudUNvbnRleHQ6KCk9Pm59KTtjb25zdCBuPW8oNzc5NDc0KS5jcmVhdGVDb250ZXh0KG51bGwpfSw1MjUxKGUsdCxvKXsidXNlIHN0cmljdCI7by5kKHQse0hpbnQ6KCk9Pmx9KTt2YXIgbj1vKDc3OTQ3NCkscj1vKDkxNDQ4Nykscz1vLm4ociksYT1vKDkxNjI2KTtmdW5jdGlvbiBsKGUpe2NvbnN0e3RleHQ6dD0iIixjbGFzc05hbWU6b309ZTtyZXR1cm4gbi5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOnMoKShhLnNob3J0Y3V0LG8pfSx0KX19LDcyMTE2NyhlLHQsbyl7InVzZSBzdHJpY3QiO28uZCh0LHtDb250ZXh0TWVudUl0ZW06KCk9Pmh9KTt2YXIgbj1vKDc3OTQ3NCkscj1vKDkxNDQ4Nykscz1vLm4ociksYT1vKDI3MzMxMCksbD1vKDY0OTE2NiksaT1vKDc3OTEwOCksYz1vKDUyNTEpLHU9bygzODA1NiksbT1vKDU4MDU5NiksZD1vKDQ2MjcwNCkscD1vKDEwNzk2Nik7ZnVuY3Rpb24gaChlKXtjb25zdHtjbGFzc05hbWU6dCxpc1RpdGxlOm8saXNMb2FkaW5nOnIsaXNIb3ZlcmVkOmgsYWN0aXZlOmcsY2hlY2thYmxlOnYsZGlzYWJsZWQ6XyxjaGVja2VkOmYsaWNvbjpiLGljb25DaGVja2VkOkMsaGludDp4LHN1Ykl0ZW1zOnksbGFiZWw6UyxzdHlsZWRMYWJlbDp3LG9uQ2xpY2s6ayxjaGlsZHJlbjpFLHRvb2xib3g6TCxqc3hMYWJlbDpOLHNpemU6TT0ibm9ybWFsIn09ZSxUPSgwLG4udXNlQ29udGV4dCkoaS5FbXB0eUljb25zQ29udGV4dCksUD0hIXkubGVuZ3RoO3JldHVybiByP24uY3JlYXRlRWxlbWVudCgibGkiLHtjbGFzc05hbWU6cygpKHQscC5pdGVtLHAubG9hZGluZyxwW01dKX0sbi5jcmVhdGVFbGVtZW50KGwuTG9hZGVyLG51bGwpKTpuLmNyZWF0ZUVsZW1lbnQoImxpIix7Y2xhc3NOYW1lOnMoKSh0LHAuaXRlbSxwLmludGVyYWN0aXZlLG8mJnAudGl0bGUsXyYmcC5kaXNhYmxlZCxoJiZwLmhvdmVyZWQsZyYmcC5hY3RpdmUsVCYmcC5lbXB0eUljb25zLHBbTV0pLG9uQ2xpY2s6a30sbi5jcmVhdGVFbGVtZW50KGEuSWNvbix7Y2xhc3NOYW1lOnMoKShwLmljb24pLGljb246ZnVuY3Rpb24oKXtpZih2JiZmKXJldHVybiBDfHxifHx1O3JldHVybiBifSgpfSksbi5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOnMoKShwLmxhYmVsKX0sIU4mJnc/dy5tYXAoKCh7dGV4dDplLC4uLnR9LG8pPT5uLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtrZXk6byxzdHlsZTp0fSxlKSkpOk4/P1MpLCEhTCYmbi5jcmVhdGVFbGVtZW50KGEuSWNvbix7b25DbGljazpmdW5jdGlvbigpe0wmJkwuYWN0aW9uKCl9LGNsYXNzTmFtZTpwLnJlbW92ZSxpY29uOmR9KSwhUCYmeCYmbi5jcmVhdGVFbGVtZW50KGMuSGludCx7Y2xhc3NOYW1lOnAuc2hvcnRjdXQsdGV4dDp4fSksUCYmbi5jcmVhdGVFbGVtZW50KGEuSWNvbix7Y2xhc3NOYW1lOnAubmVzdGVkLGljb246bX0pLEUpfX0sMzIzODMwKGUsdCxvKXsidXNlIHN0cmljdCI7by5kKHQse0NvbnRleHRNZW51TGlzdDooKT0+aH0pO3ZhciBuPW8oNzc5NDc0KSxyPW8oOTU0NDc4KTtmdW5jdGlvbiBzKGUpe3JldHVybiBuLmNyZWF0ZUVsZW1lbnQoImxpIix7Y2xhc3NOYW1lOnIuc2VwYXJhdG9yfSl9dmFyIGE9byg3MjExNjcpLGw9byg1NjkzOTgpLGk9byg5NjQyMTQpLGM9bygyNzYwMTkpO2NvbnN0IHU9KDAsbC5pc0ZlYXR1cmVFbmFibGVkKSgiZm9yY2VfZGlzYWJsZV9qc3hfbWVudV9pdGVtc19yZW5kZXJpbmciKTtmdW5jdGlvbiBtKGUpe2NvbnN0IHQ9dT9lLmFjdGlvbjplLmFjdGlvbi5jdXN0b20oKT8/ZS5hY3Rpb24sW28scl09KDAsbi51c2VTdGF0ZSkoKCgpPT50LmdldFN0YXRlKCkpKSxbcyxsXT0oMCxuLnVzZVN0YXRlKSghMSksbT0hIW8uc3ViSXRlbXMubGVuZ3RoLGQ9bSYmcztyZXR1cm4oMCxuLnVzZUVmZmVjdCkoKCgpPT57CmNvbnN0IGU9KCk9PnIodC5nZXRTdGF0ZSgpKTtyZXR1cm4gdC5vblVwZGF0ZSgpLnN1YnNjcmliZShudWxsLGUpLCgpPT57dC5vblVwZGF0ZSgpLnVuc3Vic2NyaWJlKG51bGwsZSl9fSksW10pLG4uY3JlYXRlRWxlbWVudChhLkNvbnRleHRNZW51SXRlbSx7Li4ubyxvbkNsaWNrOmZ1bmN0aW9uKGUpe2lmKG8uZGlzYWJsZWR8fGUuZGVmYXVsdFByZXZlbnRlZClyZXR1cm47aWYobSlyZXR1cm4gdm9pZCBsKCEwKTtvLmRvTm90Q2xvc2VPbkNsaWNrfHwoMCxjLmdsb2JhbENsb3NlTWVudSkoKTt0LmV4ZWN1dGUoKX0saXNMb2FkaW5nOm8ubG9hZGluZyxpc0hvdmVyZWQ6ZH0sZCYmbi5jcmVhdGVFbGVtZW50KGkuRHJhd2VyLHtvbkNsb3NlOnB9LG4uY3JlYXRlRWxlbWVudChoLHtpdGVtczpvLnN1Ykl0ZW1zLHBhcmVudEFjdGlvbjp0LGNsb3NlTmVzdGVkOnB9KSkpO2Z1bmN0aW9uIHAoZSl7ZSYmZS5wcmV2ZW50RGVmYXVsdCgpLGwoITEpfX12YXIgZD1vKDc3OTEwOCkscD1vKDMzNDU1MCk7ZnVuY3Rpb24gaChlKXtjb25zdHtpdGVtczp0LHBhcmVudEFjdGlvbjpvLGNsb3NlTmVzdGVkOnJ9PWUsbD0hQm9vbGVhbihvKSYmdC5ldmVyeSgoZT0+IUJvb2xlYW4oInNlcGFyYXRvciIhPT1lLnR5cGUmJihlLmdldFN0YXRlKCkuaWNvbnx8ZS5nZXRTdGF0ZSgpLmNoZWNrYWJsZSkpKSk7cmV0dXJuIG4uY3JlYXRlRWxlbWVudChkLkVtcHR5SWNvbnNDb250ZXh0LlByb3ZpZGVyLHt2YWx1ZTpsfSxuLmNyZWF0ZUVsZW1lbnQoInVsIixudWxsLG8mJm4uY3JlYXRlRWxlbWVudChuLkZyYWdtZW50LG51bGwsbi5jcmVhdGVFbGVtZW50KGEuQ29udGV4dE1lbnVJdGVtLHtsYWJlbDpvLmdldFN0YXRlKCkubGFiZWwsaXNUaXRsZTohMCxhY3RpdmU6ITEsZGlzYWJsZWQ6ITEsc3ViSXRlbXM6W10sY2hlY2thYmxlOiExLGNoZWNrZWQ6ITEsZG9Ob3RDbG9zZU9uQ2xpY2s6ITEsaWNvbjpwLG9uQ2xpY2s6cn0pLG4uY3JlYXRlRWxlbWVudChzLG51bGwpKSx0Lm1hcCgoZT0+e3N3aXRjaChlLnR5cGUpe2Nhc2UiYWN0aW9uIjpyZXR1cm4gbi5jcmVhdGVFbGVtZW50KG0se2tleTplLmlkLGFjdGlvbjplfSk7Y2FzZSJzZXBhcmF0b3IiOnJldHVybiBuLmNyZWF0ZUVsZW1lbnQocyx7a2V5OmUuaWR9KX19KSkpKX19LDc3OTEwOChlLHQsbyl7InVzZSBzdHJpY3QiO28uZCh0LHtFbXB0eUljb25zQ29udGV4dDooKT0+bn0pO2NvbnN0IG49byg3Nzk0NzQpLmNyZWF0ZUNvbnRleHQoITEpfSw4NTgwMzcoZSx0LG8peyJ1c2Ugc3RyaWN0IjtvLmQodCx7Z2V0QWN0aW9uczooKT0+cH0pO3ZhciBuPW8oNzc5NDc0KSxyPW8oMTg1MjcxKSxzPW8oNzEyMTM0KSxhPW8oNDMxODIzKSxsPW8oNTA5MDQpLGk9byg5MTk5ODUpLGM9byg2NDM5MDMpLHU9bygzODY5MzEpLG09byg2MjE5MjYpLGQ9byg2NzQxOSk7ZnVuY3Rpb24gcChlLHQscCxoKXtjb25zdCBnPWZ1bmN0aW9uKGUsdCxpLHApe2NvbnN0IGg9ci50KG51bGwsdm9pZCAwLG8oMzA4MzkpKS5mb3JtYXQoe3N5bWJvbDooMCxjLnNhZmVTaG9ydE5hbWUpKHQpfSksZz1lLmdldFN5bWJvbENvbG9yKHQpfHx2b2lkIDAsdj17fSxfPXMuTElTVF9DT0xPUlMubWFwKChlPT57Y29uc3QgdD1uZXcgbC5BY3Rpb24oe2FjdGlvbklkOiJXYXRjaGxpc3QuQ2hhbmdlRmxhZ2dlZEdyb3VwQ29sb3IiLG9wdGlvbnM6e2xhYmVsOigwLGQuZmxhZ2dlZFN5bWJvbENvbG9yTmFtZSkoZSksb25FeGVjdXRlOigpPT5mKGUpLGNoZWNrYWJsZTohMCxjaGVja2VkOmU9PT1nfX0pO3JldHVybiB2W2VdPXQsdH0pKSxmPW89PntwKCksKDAsbS5ydW5PclNpZ25pbldpdGhGZWF0dXJlKSgoKCk9PntpLnNldENvbG9yKG8pLGUuc2V0U3ltYm9sc0NvbG9yKFt0XSxpLmdldENvbG9yKCkpLCgwLHUudHJhY2tFdmVudCkoIldhdGNobGlzdCIsIkNvbnRleHQgbWVudSIsIkZsYWciKSxzLkxJU1RfQ09MT1JTLmZvckVhY2goKGU9Pnt2W2VdLnVwZGF0ZSh7Y2hlY2tlZDplPT09aS5nZXRDb2xvcigpfSl9KSl9KSx7ZmVhdHVyZToiZmxhZ2dlZFN5bWJvbHNDb2xvcnMiLHNvdXJjZToiU2V0IHN5bWJvbCBjb2xvciJ9KX0sYj17ZG9Ob3RDbG9zZU9uQ2xpY2s6ITB9O3JldHVybltuZXcgbC5BY3Rpb24oe2FjdGlvbklkOiJXYXRjaGxpc3QuRmxhZ1N5bWJvbCIsb3B0aW9uczp7bGFiZWw6aCxvbkV4ZWN1dGU6KCk9PmYoaS5nZXRDb2xvcigpKX19KSxuZXcgbC5BY3Rpb24oe2FjdGlvbklkOiJXYXRjaGxpc3QuQ2hhbmdlRmxhZ2dlZEdyb3VwQ29sb3IiLG9wdGlvbnM6ey4uLmIsbGFiZWw6ci50KG51bGwsdm9pZCAwLG8oOTYxNjE0KSksc3ViSXRlbXM6X30sY3VzdG9tQWN0aW9uT3B0aW9uczp7Li4uYixqc3hMYWJlbDpuLmNyZWF0ZUVsZW1lbnQoYS5MYWJlbENvbG9yU2VsZWN0b3Ise3ZhbHVlOmcsb25DaGFuZ2U6Zn0pfX0pXX0oZSx0LHAsaCk7cmV0dXJuIG51bGwhPT1lLmdldFN5bWJvbENvbG9yKHQpJiZnLnB1c2goZnVuY3Rpb24oZSx0KXtyZXR1cm4gbmV3IGwuQWN0aW9uKHthY3Rpb25JZDoiV2F0Y2hsaXN0LlVuZmxhZ1N5bWJvbCIsb3B0aW9uczp7bGFiZWw6ci50KG51bGwsdm9pZCAwLG8oNjkyMSkpLmZvcm1hdCh7c3ltYm9sOigwLGMuc2FmZVNob3J0TmFtZSkodCl9KSxvbkV4ZWN1dGU6KCk9PntlLnNldFN5bWJvbHNDb2xvcihbdF0sbnVsbCksKDAsdS50cmFja0V2ZW50KSgiV2F0Y2hsaXN0IiwiQ29udGV4dCBtZW51IiwiVW5mbGFnIil9fX0pfShlLHQpKSxnLnB1c2goZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyBsLkFjdGlvbih7YWN0aW9uSWQ6IldhdGNobGlzdC5VbmZsYWdBbGxTeW1ib2xzIixvcHRpb25zOntsYWJlbDpyLnQobnVsbCx2b2lkIDAsbygzMzI3NTMpKSxvbkV4ZWN1dGU6KCk9PnsoMCxpLnNob3dVbmZsYWdBbGxTeW1ib2xzQ29uZmlybSkoKCgpPT57ZS5jbGVhckFsbFN5bWJvbHNDb2xvcigpfSkpLCgwLHUudHJhY2tFdmVudCkoIldhdGNobGlzdCIsIkNvbnRleHQgbWVudSIsIlVuZmxhZyBhbGwiKX19fSl9KGUpKSxnfX0sMzA2NjAxKGUsdCxvKXsidXNlIHN0cmljdCI7by5kKHQse0NvbG9yU2VsZWN0b3I6KCk9Pnh9KQo7dmFyIG49byg3Nzk0NzQpLHI9byg3MTIxMzQpLHM9bygyMzU3MjQpLGE9bygxNDkzNjQpLGw9byg5ODM2MTYpLGk9bygzMjk2NjgpLGM9byg5MTQ0ODcpLHU9by5uKGMpLG09byg2NTg0NiksZD1vKDI3MzMxMCkscD1vKDE4NTI3MSksaD1vKDQ0MDcxNSksZz1vKDE4MjMwOCksdj1vKDI3NDg1MSksXz1vKDIwMzMwOSksZj1vKDc1MTg2Myk7Y29uc3QgYj0oMCxtLm1ha2VTd2l0Y2hHcm91cEl0ZW0pKChmdW5jdGlvbihlKXtjb25zdHtjbGFzc05hbWU6dCx2YWx1ZTpzPXIuTGlzdENvbG9yLlJlZCxuYW1lOmEsY2hlY2tlZDpsfT1lLFtpLGNdPSgwLGcudXNlUm92aW5nVGFiaW5kZXhFbGVtZW50KShudWxsKSxtPSgwLG4udXNlQ29udGV4dCkoaC5Db250ZXh0TWVudUNvbnRleHQpLGI9bT8udHlwZT8/Im1lbnUiLEM9cztyZXR1cm4gbi5jcmVhdGVFbGVtZW50KCJsYWJlbCIse3JlZjppLHRhYkluZGV4OmMsY2xhc3NOYW1lOnUoKSh0LGYud3JhcCwiZHJhd2VyIj09PWImJmYubGFyZ2UpLCJkYXRhLWNvbG9yIjpDLHJvbGU6Im1lbnVpdGVtIiwiYXJpYS1sYWJlbCI6cC50KG51bGwse3JlcGxhY2U6e2NvbG9yOkN9fSxvKDUwNjkxNSkpLCJhcmlhLWNoZWNrZWQiOmx9LG4uY3JlYXRlRWxlbWVudCgiaW5wdXQiLHtjbGFzc05hbWU6Zi5pbnB1dCx0eXBlOiJyYWRpbyIsbmFtZTphLHZhbHVlOnMsY2hlY2tlZDpsLG9uQ2hhbmdlOmUub25DaGFuZ2Usb25DbGljazpsP2Z1bmN0aW9uKCl7ZS5vbkNsaWNrSWZDaGVja2VkJiZlLm9uQ2xpY2tJZkNoZWNrZWQocyl9OnZvaWQgMH0pLG4uY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOnUoKShmLmJveCxmW0NdLCJkcmF3ZXIiPT09YiYmZi5sYXJnZSl9LGw/bi5jcmVhdGVFbGVtZW50KGQuSWNvbix7aWNvbjp2fSk6bi5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6Zi5waWNrZXJEb3R9LG4uY3JlYXRlRWxlbWVudChkLkljb24se2NsYXNzTmFtZTpmLmhvdmVyRG90LGljb246X30pKSkpfSkpLEM9WzM5LDM3LDEzLDMyLDI3XTtmdW5jdGlvbiB4KGUpe2NvbnN0e2J1dHRvbkNsYXNzTmFtZTp0LHZhbHVlOm8sb25TZWxlY3RlZENsaWNrOmMsZnJvbUtleWJvYXJkOnV9PWUsbT0oMCxuLnVzZVJlZikobnVsbCksZD0oMCxuLnVzZUNhbGxiYWNrKSgoZT0+e2lmKCFtLmN1cnJlbnR8fGUuZGVmYXVsdFByZXZlbnRlZClyZXR1cm47Y29uc3QgdD0oMCxzLmhhc2hGcm9tRXZlbnQpKGUpO2lmKCFDLmluY2x1ZGVzKHQpKXJldHVybjtlLnByZXZlbnREZWZhdWx0KCk7Y29uc3Qgbj0oMCxsLnF1ZXJ5Rm9jdXNhYmxlRWxlbWVudHMpKG0uY3VycmVudCkuc29ydChsLm5hdmlnYXRpb25PcmRlckNvbXBhcmF0b3IpLGE9bi5maW5kSW5kZXgoKGU9PmU9PT1kb2N1bWVudC5hY3RpdmVFbGVtZW50KSk7aWYoLTE9PT1hKXJldHVybjtjb25zdCBjPW5bYV07bGV0IHU7c3dpdGNoKHQpe2Nhc2UgMTM6Y2FzZSAzMjpoKGMuZGF0YXNldC5jb2xvcnx8ci5MaXN0Q29sb3IuUmVkKTticmVhaztjYXNlIDI3Omgobyl9c3dpdGNoKCgwLGwubWFwS2V5Q29kZVRvRGlyZWN0aW9uKSh0KSl7Y2FzZSJpbmxpbmVOZXh0Ijp1PW5bYSsxXXx8blswXTticmVhaztjYXNlImlubGluZVByZXYiOnU9blthLTFdfHxuW24ubGVuZ3RoLTFdfXUgaW5zdGFuY2VvZiBIVE1MTGFiZWxFbGVtZW50JiYoKDAsaS5iZWNvbWVTZWNvbmRhcnlFbGVtZW50KShjKSwoMCxpLmJlY29tZU1haW5FbGVtZW50KSh1KSx1LmZvY3VzKCkpfSksW10pOygwLG4udXNlTGF5b3V0RWZmZWN0KSgoKCk9PntpZighdSlyZXR1cm47Y29uc3QgZT1kb2N1bWVudC5hY3RpdmVFbGVtZW50LHQ9bS5jdXJyZW50O2lmKCF0KXJldHVybjtjb25zdFtvXT0oMCxsLnF1ZXJ5Rm9jdXNhYmxlRWxlbWVudHMpKHQpLnNvcnQobC5uYXZpZ2F0aW9uT3JkZXJDb21wYXJhdG9yKTtyZXR1cm4gbz8oKDAsaS5iZWNvbWVNYWluRWxlbWVudCkobyksby5mb2N1cygpLCgpPT57ZSBpbnN0YW5jZW9mIEhUTUxFbGVtZW50JiZlLmZvY3VzKCl9KTp2b2lkIDB9KSxbXSk7Y29uc3QgcD1yLkxJU1RfQ09MT1JTLm1hcCgoKGUsbyk9Pm4uY3JlYXRlRWxlbWVudChiLHtrZXk6byxjbGFzc05hbWU6dCxvbkNsaWNrSWZDaGVja2VkOmMsdmFsdWU6ZX0pKSk7cmV0dXJuIG4uY3JlYXRlRWxlbWVudCgibWVudSIse3JlZjptLG9uS2V5RG93bjpkfSxuLmNyZWF0ZUVsZW1lbnQoYS5Td2l0Y2hHcm91cCx7bmFtZToiY29sb3Itc2VsZWN0b3IiLG9uQ2hhbmdlOmgsdmFsdWVzOnZvaWQgMCE9PW8/W29dOltdfSxwKSk7ZnVuY3Rpb24gaCh0KXtlLm9uQ2hhbmdlJiZ2b2lkIDAhPT10JiZlLm9uQ2hhbmdlKHQpfX19LDY3NDE5KGUsdCxvKXsidXNlIHN0cmljdCI7by5kKHQse2ZsYWdnZWRTeW1ib2xDb2xvck5hbWU6KCk9PnN9KTt2YXIgbj1vKDcxMjEzNCkscj1vKDE4NTI3MSk7ZnVuY3Rpb24gcyhlKXtzd2l0Y2goZSl7Y2FzZSBuLkxpc3RDb2xvci5SZWQ6cmV0dXJuIHIudChudWxsLHZvaWQgMCxvKDY1NTA0MikpO2Nhc2Ugbi5MaXN0Q29sb3IuR3JlZW46cmV0dXJuIHIudChudWxsLHZvaWQgMCxvKDY4MjY2OSkpO2Nhc2Ugbi5MaXN0Q29sb3IuQmx1ZTpyZXR1cm4gci50KG51bGwsdm9pZCAwLG8oNjM4MSkpO2Nhc2Ugbi5MaXN0Q29sb3IuT3JhbmdlOnJldHVybiByLnQobnVsbCx2b2lkIDAsbyg5NzEyODMpKTtjYXNlIG4uTGlzdENvbG9yLlB1cnBsZTpyZXR1cm4gci50KG51bGwsdm9pZCAwLG8oNjcwOTIzKSk7Y2FzZSBuLkxpc3RDb2xvci5DeWFuOnJldHVybiByLnQobnVsbCx2b2lkIDAsbygxNDY4NCkpO2Nhc2Ugbi5MaXN0Q29sb3IuUGluazpyZXR1cm4gci50KG51bGwsdm9pZCAwLG8oNjc2NzY4KSl9fX0sNDMxODIzKGUsdCxvKXsidXNlIHN0cmljdCI7by5kKHQse0xhYmVsQ29sb3JTZWxlY3RvcjooKT0+bH0pO3ZhciBuPW8oNzc5NDc0KSxyPW8oMzA2NjAxKSxzPW8oNTE4NzUpLGE9byg1NTg4NzMpO2NsYXNzIGwgZXh0ZW5kcyBuLlB1cmVDb21wb25lbnR7cmVuZGVyKCl7Y29uc3R7dmFsdWU6ZX09dGhpcy5wcm9wcztyZXR1cm4gbi5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOmEud3JhcHBlcn0sbi5jcmVhdGVFbGVtZW50KCJzcGFuIix7CmNsYXNzTmFtZTphLmJ1dHRvbnMsb25DbGljazpzLnByZXZlbnREZWZhdWx0fSxuLmNyZWF0ZUVsZW1lbnQoci5Db2xvclNlbGVjdG9yLHtidXR0b25DbGFzc05hbWU6YS5jb2xvclNlbGVjdEJ1dHRvbix2YWx1ZTplLG9uQ2hhbmdlOnRoaXMuX29uQ2hhbmdlLG9uU2VsZWN0ZWRDbGljazp0aGlzLl9vbkNoYW5nZX0pKSl9Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMuX29uQ2hhbmdlPWU9Pnt0aGlzLnByb3BzLm9uQ2hhbmdlKGUpfX19fSw4MzQxODgoZSx0LG8peyJ1c2Ugc3RyaWN0IjtvLmQodCx7UG9wdXBDb2xvclNlbGVjdG9yOigpPT54fSk7dmFyIG49byg3Nzk0NzQpLHI9byg2MDc4MzIpLHM9byg2MDk1MjgpLGE9byg0MDYxMTApLGw9bygzMTM3NzIpLGk9byg5NjQyMTQpLGM9bygzMjM4MzApLHU9byg0NDA3MTUpLG09byg5NjkxNjgpLGQ9byg1ODU0OCkscD1vKDMwNjYwMSksaD1vKDM2MzI2OSksZz1vKDU1ODk3Mik7Y2xhc3MgdiBleHRlbmRzIG4uUHVyZUNvbXBvbmVudHtjb21wb25lbnREaWRNb3VudCgpe2RvY3VtZW50LmRvY3VtZW50RWxlbWVudCYmKGgubW9iaWxldG91Y2g/ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoc3RhcnQiLHRoaXMuX29uVG91Y2hTdGFydCk6KHRoaXMucHJvcHMuZWxlbS5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWxlYXZlIix0aGlzLl9vblRhcmdldE1vdXNlTGVhdmUpLGRvY3VtZW50LmJvZHkuYWRkRXZlbnRMaXN0ZW5lcigic2Nyb2xsIix0aGlzLnByb3BzLmhpZGUpKSl9Y29tcG9uZW50V2lsbFVubW91bnQoKXtkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQmJihoLm1vYmlsZXRvdWNoP2RvY3VtZW50LmRvY3VtZW50RWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJ0b3VjaHN0YXJ0Iix0aGlzLl9vblRvdWNoU3RhcnQpOnRoaXMucHJvcHMuZWxlbSYmKHRoaXMucHJvcHMuZWxlbS5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZWxlYXZlIix0aGlzLl9vblRhcmdldE1vdXNlTGVhdmUpLGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJzY3JvbGwiLHRoaXMucHJvcHMuaGlkZSkpKX1yZW5kZXIoKXtjb25zdCBlPXt0b3A6MH07aWYodGhpcy5wcm9wcy5lbGVtKXtjb25zdCB0PXRoaXMucHJvcHMuZWxlbS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtlLnRvcD10LnRvcCt0LmhlaWdodC8yLCgwLG0uaXNSdGwpKCk/ZS5yaWdodD13aW5kb3cuaW5uZXJXaWR0aC10LmxlZnQ6ZS5sZWZ0PXQubGVmdCt0LndpZHRofWVsc2UgZS5sZWZ0PTA7cmV0dXJuIG4uY3JlYXRlRWxlbWVudChkLlBvcnRhbCxudWxsLG4uY3JlYXRlRWxlbWVudCgiZGl2Iix7c3R5bGU6ZSxjbGFzc05hbWU6Zy5wb3B1cCxyZWY6dGhpcy5fc2V0UG9wVXBFbGVtLG9uTW91c2VMZWF2ZTpoLm1vYmlsZXRvdWNoP3ZvaWQgMDp0aGlzLl9vblBvcFVwTW91c2VMZWF2ZX0sbi5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6Zy53cmFwcGVyfSxuLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpnLnNlbGVjdG9yfSxuLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpnLmFycm93TGVmdH0pLG4uY3JlYXRlRWxlbWVudChwLkNvbG9yU2VsZWN0b3Ise2J1dHRvbkNsYXNzTmFtZTpnLmNvbG9yU2VsZWN0QnV0dG9uLHZhbHVlOnRoaXMucHJvcHMuY3VycmVudENvbG9yLGZyb21LZXlib2FyZDp0aGlzLnByb3BzLmZyb21LZXlib2FyZCxvbkNoYW5nZTp0aGlzLl9vbkNoYW5nZX0pKSkpKX1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5fcG9wVXBFbGVtPW51bGwsdGhpcy5fb25DaGFuZ2U9ZT0+e3RoaXMucHJvcHMub25TZWxlY3RDb2xvcihlKSx0aGlzLnByb3BzLmhpZGUoKX0sdGhpcy5fb25UYXJnZXRNb3VzZUxlYXZlPWU9Pntjb25zdCB0PSEhZS5yZWxhdGVkVGFyZ2V0Lm5vZGVOYW1lLG89ZS5yZWxhdGVkVGFyZ2V0PT09dGhpcy5fcG9wVXBFbGVtLG49dGhpcy5fcG9wVXBFbGVtJiZ0JiZ0aGlzLl9wb3BVcEVsZW0uY29udGFpbnMoZS5yZWxhdGVkVGFyZ2V0KTtvfHxufHx0aGlzLnByb3BzLmhpZGUoKX0sdGhpcy5fb25Qb3BVcE1vdXNlTGVhdmU9ZT0+e2NvbnN0IHQ9ISFlLm5hdGl2ZUV2ZW50LnJlbGF0ZWRUYXJnZXQubm9kZU5hbWUsbz1lLm5hdGl2ZUV2ZW50LnJlbGF0ZWRUYXJnZXQ9PT10aGlzLnByb3BzLmVsZW0sbj10JiZ0aGlzLnByb3BzLmVsZW0uY29udGFpbnMoZS5uYXRpdmVFdmVudC5yZWxhdGVkVGFyZ2V0KTtvfHxufHx0aGlzLnByb3BzLmhpZGUoKX0sdGhpcy5fb25Ub3VjaFN0YXJ0PWU9Pntjb25zdCB0PSEhZS50YXJnZXQubm9kZU5hbWUsbz1lLnRhcmdldD09PXRoaXMucHJvcHMuZWxlbSxuPWUudGFyZ2V0PT09dGhpcy5fcG9wVXBFbGVtLHI9dCYmdGhpcy5wcm9wcy5lbGVtLmNvbnRhaW5zKGUudGFyZ2V0KSxzPXRoaXMuX3BvcFVwRWxlbSYmdCYmdGhpcy5fcG9wVXBFbGVtLmNvbnRhaW5zKGUudGFyZ2V0KTtvfHxyfHxufHxzfHx0aGlzLnByb3BzLmhpZGUoKX0sdGhpcy5fc2V0UG9wVXBFbGVtPWU9Pnt0aGlzLl9wb3BVcEVsZW09ZX19fWZ1bmN0aW9uIF8oZSl7Y29uc3R7YWN0aW9uczp0LC4uLm99PWU7cmV0dXJuIG4uY3JlYXRlRWxlbWVudChhLk1hdGNoTWVkaWEse3J1bGU6cy5EaWFsb2dCcmVha3BvaW50cy5UYWJsZXRTbWFsbH0sKGU9PmUmJnQ/bi5jcmVhdGVFbGVtZW50KGwuRHJhd2VyTWFuYWdlcixudWxsLG4uY3JlYXRlRWxlbWVudCh1LkNvbnRleHRNZW51Q29udGV4dC5Qcm92aWRlcix7dmFsdWU6e3R5cGU6ImRyYXdlciJ9fSxuLmNyZWF0ZUVsZW1lbnQoaS5EcmF3ZXIse29uQ2xvc2U6by5oaWRlLHBvc2l0aW9uOiJCb3R0b20ifSxuLmNyZWF0ZUVsZW1lbnQoYy5Db250ZXh0TWVudUxpc3Qse2l0ZW1zOnR9KSkpKTpuLmNyZWF0ZUVsZW1lbnQodix7Li4ub30pKSl9dmFyIGY9byg1NzEzMDApO2xldCBiPW51bGwsQz1udWxsO3ZhciB4OyFmdW5jdGlvbihlKXtmdW5jdGlvbiB0KCl7YiYmQz8udW5tb3VudCgpfWUuc2hvdz1mdW5jdGlvbihlKXtifHwoYj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSksdCgpLEM9KDAsCmYuY3JlYXRlUmVhY3RSb290KShuLmNyZWF0ZUVsZW1lbnQoci5TbG90Q29udGV4dC5Qcm92aWRlcix7dmFsdWU6ZS5tYW5hZ2VyfHxudWxsfSxuLmNyZWF0ZUVsZW1lbnQoXyx7Li4uZSxoaWRlOnR9KSksYil9LGUuaGlkZT10fSh4fHwoeD17fSkpfSwxMjkzMzMoZSx0LG8peyJ1c2Ugc3RyaWN0IjtvLmQodCx7U3ltYm9sTWFya2VyOigpPT51LGNyZWF0ZVN5bWJvbE1hcmtlclN0YW5kYWxvbmU6KCk9PmR9KTtvKDgyOTE4MCk7dmFyIG49byg4Mjk3NjMpLHI9byg4MzE1MjcpLHM9byg4MzQxODgpLGE9bygyNDM2MzEpLGw9byg2MDk1MjgpLGk9byg4NTgwMzcpLGM9byg2MjE5MjYpO2NsYXNzIHV7dXBkYXRlU3Vic2NyaXB0aW9uKCl7dGhpcy5fc2V0U3RhdGUodGhpcy5fc2VydmljZS5nZXRTeW1ib2xDb2xvcih0aGlzLl9zeW1ib2wpKX1iaW5kVG8oZSx0KXt0aGlzLl9zZXJ2aWNlLm9mZlN5bWJvbENoYW5nZSh0aGlzLl9zeW1ib2wsdGhpcy5fb25DaGFuZ2UpLHRoaXMuX3N5bWJvbD1lLHRoaXMuX3VpbWFya2VyLmFwcGVuZFRvKHQpLHRoaXMuX3NldFN0YXRlKHRoaXMuX3NlcnZpY2UuZ2V0U3ltYm9sQ29sb3IoZSkpLHRoaXMuX3NlcnZpY2Uub25TeW1ib2xDaGFuZ2UoZSx0aGlzLl9vbkNoYW5nZSl9dW5iaW5kKCl7dGhpcy5fc2VydmljZS5vZmZTeW1ib2xDaGFuZ2UodGhpcy5fc3ltYm9sLHRoaXMuX29uQ2hhbmdlKSx0aGlzLl91aW1hcmtlci5kZXRhY2goKX1nZXRFbGVtKCl7cmV0dXJuIHRoaXMuX3VpbWFya2VyLmdldEVsZW0oKX1pc01hcmtlZCgpe3JldHVybiBudWxsIT09dGhpcy5fY29sb3J9c2V0Q2xhc3NOYW1lKGUpe3RoaXMuX3VpbWFya2VyLmdldEVsZW0oKS5jbGFzc0xpc3QucmVtb3ZlKC4uLnRoaXMuX2NsYXNzZXMpLHRoaXMuX2NsYXNzZXM9ZS5zcGxpdCgiICIpLmZpbHRlcihCb29sZWFuKSx0aGlzLl91aW1hcmtlci5nZXRFbGVtKCkuY2xhc3NMaXN0LmFkZCguLi50aGlzLl9jbGFzc2VzKX1kZXN0cm95KCl7dGhpcy51bmJpbmQoKSxkZWxldGUgdGhpcy5fdWltYXJrZXIsZGVsZXRlIHRoaXMuX29wdHN9dG9nZ2xlKGUpe3RoaXMuX29uQ2xpY2soZSl9X3NldFN0YXRlKGUpe2NvbnN0IHQ9dGhpcy5pc01hcmtlZCgpO3RoaXMuX2NvbG9yPWUsbnVsbCE9PXRoaXMuX2NvbG9yPyh0aGlzLl91aW1hcmtlci5zZXRDb2xvcih0aGlzLl9jb2xvciksdGhpcy5fYWRkQWN0aXZlQ2xhc3NOYW1lKCkpOih0aGlzLl91aW1hcmtlci5yZW1vdmVDb2xvcigpLHRoaXMuX3JlbW92ZUFjdGl2ZUNsYXNzTmFtZSgpKSx2b2lkIDAhPT10aGlzLl9vcHRzLm9uTWFya2VkQ2hhbmdlZCYmdCE9PXRoaXMuaXNNYXJrZWQoKSYmdGhpcy5fb3B0cy5vbk1hcmtlZENoYW5nZWQoKX1fYWRkQWN0aXZlQ2xhc3NOYW1lKCl7dGhpcy5fb3B0cy5hY3RpdmVDbGFzc05hbWUmJnRoaXMuX3VpbWFya2VyLmFkZENsYXNzKHRoaXMuX29wdHMuYWN0aXZlQ2xhc3NOYW1lKX1fcmVtb3ZlQWN0aXZlQ2xhc3NOYW1lKCl7dGhpcy5fb3B0cy5hY3RpdmVDbGFzc05hbWUmJnRoaXMuX3VpbWFya2VyLnJlbW92ZUNsYXNzKHRoaXMuX29wdHMuYWN0aXZlQ2xhc3NOYW1lKX1jb25zdHJ1Y3RvcihlKXt0aGlzLl9zZXJ2aWNlPSgwLHIuZ2V0TWFya2VkU3ltYm9sc0xpc3RTZXJ2aWNlSW5zdGFuY2UpKCksdGhpcy5fY29sb3JNYW5hZ2VyPW5ldyBhLkNvbG9yTWFuYWdlcih7Y29udGV4dDphLkNvbG9yQ29udGV4dC5TeW1ib2xNYXJrZXJ9KSx0aGlzLl9jbGFzc2VzPVtdLHRoaXMuX29uQ2xpY2s9ZT0+e2UucHJldmVudERlZmF1bHQoKTtjb25zdCB0PSgpPT57Y29uc3QgdD0oMCxpLmdldEFjdGlvbnMpKHRoaXMuX3NlcnZpY2UsdGhpcy5fc3ltYm9sLHRoaXMuX2NvbG9yTWFuYWdlcixzLlBvcHVwQ29sb3JTZWxlY3Rvci5oaWRlKSxvPXRoaXMuX2NvbG9yTWFuYWdlci5nZXRDb2xvcigpLG49e2VsZW06dGhpcy5fdWltYXJrZXIuZ2V0RWxlbSgpLGN1cnJlbnRDb2xvcjpvLG9uU2VsZWN0Q29sb3I6dGhpcy5fb25TZWxlY3RDb2xvcixhY3Rpb25zOnQsbWFuYWdlcjp0aGlzLl9vcHRzLm1hbmFnZXIsZnJvbUtleWJvYXJkOmUgaW5zdGFuY2VvZiBLZXlib2FyZEV2ZW50fTt3aW5kb3cubWF0Y2hNZWRpYShsLkRpYWxvZ0JyZWFrcG9pbnRzLlRhYmxldFNtYWxsKS5tYXRjaGVzP3MuUG9wdXBDb2xvclNlbGVjdG9yLnNob3cobik6bnVsbD09PXRoaXMuX2NvbG9yPyhzLlBvcHVwQ29sb3JTZWxlY3Rvci5zaG93KG4pLHRoaXMuX3NlcnZpY2Uuc2V0U3ltYm9sc0NvbG9yKFt0aGlzLl9zeW1ib2xdLG8pKToocy5Qb3B1cENvbG9yU2VsZWN0b3IuaGlkZSgpLHRoaXMuX3NlcnZpY2Uuc2V0U3ltYm9sc0NvbG9yKFt0aGlzLl9zeW1ib2xdLG51bGwpKX0sbz13aW5kb3cuaXNfYXV0aGVudGljYXRlZDsoMCxjLnJ1bk9yU2lnbmluV2l0aEZlYXR1cmUpKCgoKT0+e28mJih0aGlzLl9vcHRzLm9uQ2xpY2s/dGhpcy5fb3B0cy5vbkNsaWNrKHRoaXMuX3N5bWJvbCx0KTp0KCkpfSkse2ZlYXR1cmU6ImZsYWdnZWRTeW1ib2xzQ29sb3JzIixzb3VyY2U6IlNldCBzeW1ib2wgY29sb3IifSl9LHRoaXMuX29uU2VsZWN0Q29sb3I9ZT0+e3RoaXMuX2NvbG9yTWFuYWdlci5zZXRDb2xvcihlKSx0aGlzLl9zZXJ2aWNlLnNldFN5bWJvbHNDb2xvcihbdGhpcy5fc3ltYm9sXSx0aGlzLl9jb2xvck1hbmFnZXIuZ2V0Q29sb3IoKSl9LHRoaXMuX29uRGJsQ2xpY2s9ZT0+e2UucHJldmVudERlZmF1bHQoKX0sdGhpcy5fb25DaGFuZ2U9KCk9Pnt0aGlzLl9zZXRTdGF0ZSh0aGlzLl9zZXJ2aWNlLmdldFN5bWJvbENvbG9yKHRoaXMuX3N5bWJvbCkpfSx0aGlzLl9vcHRzPWUsdGhpcy5fc3ltYm9sPWUuc3ltYm9sLHRoaXMuX2NvbG9yPWUuY29sb3J8fHRoaXMuX3NlcnZpY2UuZ2V0U3ltYm9sQ29sb3IodGhpcy5fc3ltYm9sKSx0aGlzLl91aW1hcmtlcj1uZXcgbi5VaU1hcmtlcih7Y29sb3I6dGhpcy5fY29sb3IsY29udGFpbmVyOmUuY29udGFpbmVyLG9uQ2xpY2s6dGhpcy5fb25DbGljayxvbkRibENsaWNrOnRoaXMuX29uRGJsQ2xpY2ssc3BlY2lhbEltYWdlOmUuc3BlY2lhbEltYWdlfSksZS5jbGFzc05hbWUmJnRoaXMuc2V0Q2xhc3NOYW1lKGUuY2xhc3NOYW1lKSwKbnVsbCE9PXRoaXMuX2NvbG9yJiZ0aGlzLl9hZGRBY3RpdmVDbGFzc05hbWUoKSx0aGlzLl9zZXJ2aWNlLm9uU3ltYm9sQ2hhbmdlKHRoaXMuX3N5bWJvbCx0aGlzLl9vbkNoYW5nZSl9fWNsYXNzIG0gZXh0ZW5kcyB1e2Rlc3Ryb3koKXt0aGlzLl9zZXJ2aWNlLm9mZkluaXQodGhpcy5fb25Jbml0KSxzdXBlci5kZXN0cm95KCl9Y29uc3RydWN0b3IoZSl7c3VwZXIoZSksdGhpcy5fb25Jbml0PSgpPT57dGhpcy51cGRhdGVTdWJzY3JpcHRpb24oKX0sdGhpcy5fc2VydmljZS5vbkluaXQodGhpcy5fb25Jbml0KX19ZnVuY3Rpb24gZChlKXtyZXR1cm4gbmV3IG0oZSl9fSwxMzY2MyhlLHQsbyl7InVzZSBzdHJpY3QiO28uZCh0LHt1c2VFbnN1cmVkQ29udGV4dDooKT0+c30pO3ZhciBuPW8oNzc5NDc0KSxyPW8oMTM4NjM4KTtmdW5jdGlvbiBzKGUpe3JldHVybigwLHIuZW5zdXJlTm90TnVsbCkoKDAsbi51c2VDb250ZXh0KShlKSl9fSw4OTMxMTUoZSx0LG8peyJ1c2Ugc3RyaWN0IjtvLmQodCx7Z2V0TG9jYWxlOigpPT5zLGdldExvY2FsZUlzbzooKT0+YX0pO3ZhciBuPW8oODQ0MjI1KTtjb25zdCByPWZ1bmN0aW9uKCl7Y29uc3QgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicGFnZS1sb2NhbGUtbGlua3MiKT8udGV4dENvbnRlbnQsdD1lP0pTT04ucGFyc2UoZSk6W107aWYoMD09PXQubGVuZ3RoKXJldHVybiBuO2NvbnN0IG89e307cmV0dXJuIHQuZm9yRWFjaCgoKHtsb2NhbGU6ZSx1cmw6dH0pPT57b1tlXT17Li4ubltlXSxocmVmOnR9fSkpLG99KCk7ZnVuY3Rpb24gcyhlKXtyZXR1cm4gZT1lfHx3aW5kb3cubG9jYWxlLHJbZV19ZnVuY3Rpb24gYShlKXtyZXR1cm4gZT1lfHx3aW5kb3cubG9jYWxlLHJbZV0/Lmlzb319LDQ0ODY0NShlLHQsbyl7InVzZSBzdHJpY3QiO28uZCh0LHtDYWNoZWRMb2dvOigpPT5kfSk7dmFyIG49byg3Nzk0NzQpLHI9byg5MTQ0ODcpLHM9by5uKHIpLGE9bygzODc3NzQpLGw9byg3OTQxODcpLGk9byg2Mjc4NDgpLGM9byg5NzM4MDQpLHU9byg2MTYzMTEpLG09bygxNzcxMTYpO2Z1bmN0aW9uIGQoZSl7Y29uc3R7Y2xhc3NOYW1lOnQscGxhY2Vob2xkZXJMZXR0ZXI6byx1cmwxOnIsdXJsMjpkLHNpemU6Zz0ieHh4c21hbGwifT1lLHY9KDAsbi51c2VSZWYpKG51bGwpLF89KDAsbi51c2VSZWYpKG51bGwpLGY9KDAsbi51c2VSZWYpKG51bGwpLGI9KDAsbi51c2VSZWYpKG51bGwpLEM9KDAsbi51c2VSZWYpKG51bGwpLHg9KDAsbi51c2VSZWYpKG51bGwpO3JldHVybigwLHUudXNlSXNvbW9ycGhpY0xheW91dEVmZmVjdCkoKCgpPT57Y29uc3QgZT12b2lkIDA9PT1yP1tdOnZvaWQgMD09PWQ/W3JdOltyLGRdLHQ9eC5jdXJyZW50PShvPWUsUHJvbWlzZS5hbGwoby5tYXAoKGU9PigwLGMuZ2V0SW1hZ2UpKGBzeW1ib2xfbG9nb18ke2V9YCxlLGgpLnRoZW4oKGU9PmUuY2xvbmVOb2RlKCkpKSkpKSk7dmFyIG87dC5jYXRjaCgoKCk9PltdKSkudGhlbigoZT0+e2lmKHQ9PT14LmN1cnJlbnQpc3dpdGNoKGUubGVuZ3RoKXtjYXNlIDA6Zi5jdXJyZW50Py5jbGFzc0xpc3QuYWRkKG0uaGlkZGVuKSxfLmN1cnJlbnQ/LmNsYXNzTGlzdC5hZGQoYS5oaWRkZW5DaXJjbGVMb2dvQ2xhc3MpLHYuY3VycmVudD8uY2xhc3NMaXN0LnJlbW92ZShhLmhpZGRlbkNpcmNsZUxvZ29DbGFzcyk7YnJlYWs7Y2FzZSAxOnAoXy5jdXJyZW50LGVbMF0pLGYuY3VycmVudD8uY2xhc3NMaXN0LmFkZChtLmhpZGRlbiksXy5jdXJyZW50Py5jbGFzc0xpc3QucmVtb3ZlKGEuaGlkZGVuQ2lyY2xlTG9nb0NsYXNzKSx2LmN1cnJlbnQ/LmNsYXNzTGlzdC5hZGQoYS5oaWRkZW5DaXJjbGVMb2dvQ2xhc3MpO2JyZWFrO2Nhc2UgMjpwKGIuY3VycmVudCxlWzBdKSxwKEMuY3VycmVudCxlWzFdKSxmLmN1cnJlbnQ/LmNsYXNzTGlzdC5yZW1vdmUobS5oaWRkZW4pLF8uY3VycmVudD8uY2xhc3NMaXN0LmFkZChhLmhpZGRlbkNpcmNsZUxvZ29DbGFzcyksdi5jdXJyZW50Py5jbGFzc0xpc3QuYWRkKGEuaGlkZGVuQ2lyY2xlTG9nb0NsYXNzKX19KSl9KSxbcixkXSksbi5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOnMoKSh0LG0uY29udGFpbmVyKX0sbi5jcmVhdGVFbGVtZW50KCJzcGFuIix7cmVmOmYsY2xhc3NOYW1lOnMoKShtLnBhaXJDb250YWluZXIsbS5oaWRkZW4pfSxuLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6KDAsaS5nZXRCbG9ja1N0eWxlQ2xhc3NlcykoZyl9LG4uY3JlYXRlRWxlbWVudCgic3BhbiIse3JlZjpDLGNsYXNzTmFtZTpzKCkobS5sb2dvLCgwLGkuZ2V0TG9nb1N0eWxlQ2xhc3NlcykoZykpfSksbi5jcmVhdGVFbGVtZW50KCJzcGFuIix7cmVmOmIsY2xhc3NOYW1lOnMoKShtLmxvZ28sKDAsaS5nZXRMb2dvU3R5bGVDbGFzc2VzKShnKSl9KSkpLG4uY3JlYXRlRWxlbWVudCgic3BhbiIse3JlZjpfLGNsYXNzTmFtZTpzKCkobS5sb2dvLGEuaGlkZGVuQ2lyY2xlTG9nb0NsYXNzLCgwLGwuZ2V0U3R5bGVDbGFzc2VzKShnKSl9KSxuLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtyZWY6dixjbGFzc05hbWU6cygpKG0ubG9nbywoMCxsLmdldFN0eWxlQ2xhc3NlcykoZykpfSxuLmNyZWF0ZUVsZW1lbnQoYS5DaXJjbGVMb2dvLHtzaXplOmcscGxhY2Vob2xkZXJMZXR0ZXI6b30pKSl9ZnVuY3Rpb24gcChlLHQpe2UmJihlLmlubmVySFRNTD0iIixlLmFwcGVuZENoaWxkKHQpKX1mdW5jdGlvbiBoKGUpe2UuY3Jvc3NPcmlnaW49IiIsZS5kZWNvZGluZz0iYXN5bmMifX0sNTk4MjMoZSx0LG8peyJ1c2Ugc3RyaWN0IjtvLmQodCx7T3ZlcmxheVNjcm9sbENvbnRhaW5lcjooKT0+dX0pO3ZhciBuPW8oNzc5NDc0KSxyPW8oOTE0NDg3KSxzPW8ubihyKSxhPW8oOTY5MTY4KSxsPW8oMTAyNjc1KSxpPW8oNjg5ODk0KSxjPW8oNDYwMzcwKTtmdW5jdGlvbiB1KGUpewpjb25zdHtyZWZlcmVuY2U6dCxjbGFzc05hbWU6byxjb250YWluZXJIZWlnaHQ6cj0wLGNvbnRhaW5lcldpZHRoOnU9MCxjb250ZW50SGVpZ2h0Om09MCxjb250ZW50V2lkdGg6ZD0wLHNjcm9sbFBvc1RvcDpwPTAsc2Nyb2xsUG9zTGVmdDpoPTAsb25WZXJ0aWNhbENoYW5nZTpnLG9uSG9yaXpvbnRhbENoYW5nZTp2LHZpc2libGU6X309ZSxbZixiXT0oMCxpLnVzZUhvdmVyRGVwcmVjYXRlZCkoKSxbQyx4XT0oMCxuLnVzZVN0YXRlKSghMSkseT1yPG0sUz11PGQsdz15JiZTPzg6MDtyZXR1cm4gbi5jcmVhdGVFbGVtZW50KCJkaXYiLHsuLi5iLHJlZjp0LGNsYXNzTmFtZTpzKCkobyxjLnNjcm9sbFdyYXAsKF98fGZ8fEMpJiZjLnNjcm9sbFdyYXBfdmlzaWJsZSl9LHkmJm4uY3JlYXRlRWxlbWVudChsLk92ZXJsYXlTY3JvbGwse3NpemU6ci13LHNjcm9sbFNpemU6bS13LGNsaWVudFNpemU6ci13LHNjcm9sbFByb2dyZXNzOnAsb25TY3JvbGxQcm9ncmVzc0NoYW5nZTpmdW5jdGlvbihlKXtnJiZnKGUpfSxvbkRyYWdTdGFydDprLG9uRHJhZ0VuZDpFLHNjcm9sbE1vZGU6MH0pLFMmJm4uY3JlYXRlRWxlbWVudChsLk92ZXJsYXlTY3JvbGwse3NpemU6dS13LHNjcm9sbFNpemU6ZC13LGNsaWVudFNpemU6dS13LHNjcm9sbFByb2dyZXNzOmgsb25TY3JvbGxQcm9ncmVzc0NoYW5nZTpmdW5jdGlvbihlKXt2JiZ2KGUpfSxvbkRyYWdTdGFydDprLG9uRHJhZ0VuZDpFLHNjcm9sbE1vZGU6KDAsYS5pc1J0bCkoKT8yOjF9KSk7ZnVuY3Rpb24gaygpe3goITApfWZ1bmN0aW9uIEUoKXt4KCExKX19fSwxMDI2NzUoZSx0LG8peyJ1c2Ugc3RyaWN0IjtvLmQodCx7T3ZlcmxheVNjcm9sbDooKT0+cH0pO3ZhciBuPW8oNzc5NDc0KSxyPW8oOTE0NDg3KSxzPW8ubihyKSxhPW8oMTM4NjM4KSxsPW8oNjQwNzQ0KSxpPW8oNjQ2MTYyKTtjb25zdCBjPWk7dmFyIHU7IWZ1bmN0aW9uKGUpe2VbZS5WZXJ0aWNhbD0wXT0iVmVydGljYWwiLGVbZS5Ib3Jpem9udGFsPTFdPSJIb3Jpem9udGFsIixlW2UuSG9yaXpvbnRhbFJ0bD0yXT0iSG9yaXpvbnRhbFJ0bCJ9KHV8fCh1PXt9KSk7Y29uc3QgbT17MDp7aXNIb3Jpem9udGFsOiExLGlzTmVnYXRpdmU6ITEsc2l6ZVByb3BOYW1lOiJoZWlnaHQiLG1pblNpemVQcm9wTmFtZToibWluSGVpZ2h0IixzdGFydFBvaW50UHJvcE5hbWU6InRvcCIsY3VycmVudE1vdXNlUG9pbnRQcm9wTmFtZToiY2xpZW50WSIscHJvZ3Jlc3NCYXJUcmFuc2Zvcm06InRyYW5zbGF0ZVkifSwxOntpc0hvcml6b250YWw6ITAsaXNOZWdhdGl2ZTohMSxzaXplUHJvcE5hbWU6IndpZHRoIixtaW5TaXplUHJvcE5hbWU6Im1pbldpZHRoIixzdGFydFBvaW50UHJvcE5hbWU6ImxlZnQiLGN1cnJlbnRNb3VzZVBvaW50UHJvcE5hbWU6ImNsaWVudFgiLHByb2dyZXNzQmFyVHJhbnNmb3JtOiJ0cmFuc2xhdGVYIn0sMjp7aXNIb3Jpem9udGFsOiEwLGlzTmVnYXRpdmU6ITAsc2l6ZVByb3BOYW1lOiJ3aWR0aCIsbWluU2l6ZVByb3BOYW1lOiJtaW5XaWR0aCIsc3RhcnRQb2ludFByb3BOYW1lOiJyaWdodCIsY3VycmVudE1vdXNlUG9pbnRQcm9wTmFtZToiY2xpZW50WCIscHJvZ3Jlc3NCYXJUcmFuc2Zvcm06InRyYW5zbGF0ZVgifX0sZD00MDtmdW5jdGlvbiBwKGUpe2NvbnN0e3NpemU6dCxzY3JvbGxTaXplOm8sY2xpZW50U2l6ZTpyLHNjcm9sbFByb2dyZXNzOmksb25TY3JvbGxQcm9ncmVzc0NoYW5nZTp1LHNjcm9sbE1vZGU6cCx0aGVtZTpoPWMsb25EcmFnU3RhcnQ6ZyxvbkRyYWdFbmQ6dixtaW5CYXJTaXplOl89ZH09ZSxmPSgwLG4udXNlUmVmKShudWxsKSxiPSgwLG4udXNlUmVmKShudWxsKSxbQyx4XT0oMCxuLnVzZVN0YXRlKSghMSkseT0oMCxuLnVzZVJlZikoMCkse2lzSG9yaXpvbnRhbDpTLGlzTmVnYXRpdmU6dyxzaXplUHJvcE5hbWU6ayxtaW5TaXplUHJvcE5hbWU6RSxzdGFydFBvaW50UHJvcE5hbWU6TCxjdXJyZW50TW91c2VQb2ludFByb3BOYW1lOk4scHJvZ3Jlc3NCYXJUcmFuc2Zvcm06TX09bVtwXTsoMCxuLnVzZUVmZmVjdCkoKCgpPT57Y29uc3QgZT0oMCxhLmVuc3VyZU5vdE51bGwpKGYuY3VycmVudCkub3duZXJEb2N1bWVudDtyZXR1cm4gQz8oZyYmZygpLGUmJihlLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIsRCksZS5hZGRFdmVudExpc3RlbmVyKCJtb3VzZXVwIixBKSkpOnYmJnYoKSwoKT0+e2UmJihlLnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIsRCksZS5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZXVwIixBKSl9fSksW0NdKTtjb25zdCBUPXQvb3x8MCxQPXIqVHx8MCxJPU1hdGgubWF4KFAsXyksUj0odC1JKS8odC1QKSxPPW8tdCxCPXc/LU86MCxqPXc/MDpPLHo9VygoMCxsLmNsYW1wKShpLEIsaikpfHwwO3JldHVybiBuLmNyZWF0ZUVsZW1lbnQoImRpdiIse3JlZjpmLGNsYXNzTmFtZTpzKCkoaC53cmFwLFMmJmhbIndyYXAtLWhvcml6b250YWwiXSksc3R5bGU6e1trXTp0fSxvbk1vdXNlRG93bjpmdW5jdGlvbihlKXtpZihlLmlzRGVmYXVsdFByZXZlbnRlZCgpKXJldHVybjtlLnByZXZlbnREZWZhdWx0KCk7Y29uc3QgdD1HKGUubmF0aXZlRXZlbnQsKDAsYS5lbnN1cmVOb3ROdWxsKShmLmN1cnJlbnQpKSxvPU1hdGguc2lnbih0KSxuPSgwLGEuZW5zdXJlTm90TnVsbCkoYi5jdXJyZW50KS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTt5LmN1cnJlbnQ9bypuW2tdLzI7bGV0IHI9TWF0aC5hYnModCktTWF0aC5hYnMoeS5jdXJyZW50KTtjb25zdCBzPVcoTyk7cjwwPyhyPTAseS5jdXJyZW50PXQpOnI+cyYmKHI9cyx5LmN1cnJlbnQ9dC1vKnMpO3UoVShvKnIpKSx4KCEwKX19LG4uY3JlYXRlRWxlbWVudCgiZGl2Iix7cmVmOmIsY2xhc3NOYW1lOnMoKShoLmJhcixTJiZoWyJiYXItLWhvcml6b250YWwiXSksc3R5bGU6e1tFXTpfLFtrXTpJLHRyYW5zZm9ybTpgJHtNfSgke3p9cHgpYH0sb25Nb3VzZURvd246ZnVuY3Rpb24oZSl7ZS5wcmV2ZW50RGVmYXVsdCgpLHkuY3VycmVudD1HKGUubmF0aXZlRXZlbnQsKDAsYS5lbnN1cmVOb3ROdWxsKShiLmN1cnJlbnQpKSx4KCEwKX19LG4uY3JlYXRlRWxlbWVudCgiZGl2Iix7CmNsYXNzTmFtZTpzKCkoaC5iYXJJbm5lcixTJiZoWyJiYXJJbm5lci0taG9yaXpvbnRhbCJdKX0pKSk7ZnVuY3Rpb24gRChlKXtjb25zdCB0PUcoZSwoMCxhLmVuc3VyZU5vdE51bGwpKGYuY3VycmVudCkpLXkuY3VycmVudDt1KFUodCkpfWZ1bmN0aW9uIEEoKXt4KCExKX1mdW5jdGlvbiBHKGUsdCl7Y29uc3Qgbz10LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpW0xdO3JldHVybiBlW05dLW99ZnVuY3Rpb24gVyhlKXtyZXR1cm4gZSpUKlJ9ZnVuY3Rpb24gVShlKXtyZXR1cm4gZS9UL1J9fX0sOTI5NDg4KGUsdCxvKXsidXNlIHN0cmljdCI7by5kKHQse2lzU2VwYXJhdG9ySXRlbTooKT0+cn0pO3ZhciBuPW8oOTAxMDIyKTtmdW5jdGlvbiByKGUpe3JldHVybigwLG4uaXNTZXBhcmF0b3JJdGVtKShlKX19LDMyMDU1KGUsdCxvKXsidXNlIHN0cmljdCI7by5yKHQpLG8uZCh0LHtyZXNvbHZlU3ltYm9sTmFtZTooKT0+YyxyZXNvbHZlU3ltYm9sTmFtZUZvckFsbDooKT0+dSxyZXNvbHZlU3ltYm9sTmFtZUZvckFsbERpc3RpbmN0OigpPT5tLHNuYXBzaG90ZXI6KCk9Pmx9KTt2YXIgbj1vKDEyODgxNCkscj1vKDYyMzUxMSkscz1vKDkyOTQ4OCk7Y29uc3QgYT1uZXcgU2V0KFsicHJvX25hbWUiLCJiYXNlX25hbWUiLCJzaG9ydF9uYW1lIiwiZGVzY3JpcHRpb24iLCJ0eXBlIiwiZXhjaGFuZ2UiLCJ0eXBlc3BlY3MiLCJsaXN0ZWRfZXhjaGFuZ2UiLCJsYXN0X3ByaWNlIiwiY291bnRyeV9jb2RlIiwicHJvdmlkZXJfaWQiLCJzeW1ib2wtcHJpbWFyeW5hbWUiLCJsb2dvaWQiLCJsb2dvIiwiYmFzZS1jdXJyZW5jeS1sb2dvaWQiLCJjdXJyZW5jeS1sb2dvaWQiLCJzb3VyY2UtbG9nb2lkIiwidXBkYXRlX21vZGUiLCJ1cGRhdGVfbW9kZV9zZWNvbmRzIiwicHJvX3Blcm0iLCJzb3VyY2UiLCJzb3VyY2UyIiwicHJpY2VzY2FsZSIsIm1pbm1vdiIsImZyYWN0aW9uYWwiLCJ2aXNpYmxlLXBsb3RzLXNldCIsImxvY2FsX2Rlc2NyaXB0aW9uIiwibGFuZ3VhZ2UiLCJ1bmRlcmx5aW5nLXN5bWJvbCJdKSxsPSgwLHIubGF6eVZhbHVlKSgoKCk9Pm5ldyBuLlF1b3RlU2Vzc2lvblNuYXBzaG90ZXIoe25hbWU6ImJhc2ljLXN5bWJvbC1xdW90ZXMiLGZpZWxkczpbLi4uYV0sYXBpOndpbmRvdy5DaGFydEFwaUluc3RhbmNlfSkpKSxpPW5ldyBTZXQoWyJwcm9fbmFtZSJdKTthc3luYyBmdW5jdGlvbiBjKGUpe3JldHVybigwLHMuaXNTZXBhcmF0b3JJdGVtKShlKT9lOmwoKS5nZXRTbmFwc2hvdChlLGkpLnRoZW4oKGU9PiJlcnJvciI9PT1lLnN0YXR1cz9lLnN5bWJvbG5hbWU6ZS52YWx1ZXMucHJvX25hbWUpKX1mdW5jdGlvbiB1KGUpe3JldHVybiBQcm9taXNlLmFsbChlLm1hcChjKSl9ZnVuY3Rpb24gbShlKXtyZXR1cm4gdShlKS50aGVuKChlPT5bLi4ubmV3IFNldChlKV0pKX19LDk4NjI3NShlLHQsbyl7InVzZSBzdHJpY3QiO28uZCh0LHtyZW1vdmVVc2RGcm9tQ3J5cHRvUGFpckxvZ29zOigpPT5pLHJlc29sdmVMb2dvVXJsczooKT0+YSxyZXNvbHZlTG9nb1VybHNGcm9tTG9nb0RhdGE6KCk9Pmx9KTt2YXIgbj1vKDYwMTg0MSkscj1vKDg2MjIxMyk7Y29uc3Qgcz0oMCxyLmdldExvZ29VcmxSZXNvbHZlcikoKTtmdW5jdGlvbiBhKGUsdD1yLkxvZ29TaXplLk1lZGl1bSl7Y29uc3Qgbz1lLmxvZ29pZCxuPWVbImJhc2UtY3VycmVuY3ktbG9nb2lkIl0sYT1lWyJjdXJyZW5jeS1sb2dvaWQiXSxsPW8mJnMuZ2V0U3ltYm9sTG9nb1VybChvLHQpO2lmKGwpcmV0dXJuW2xdO2NvbnN0IGk9biYmcy5nZXRTeW1ib2xMb2dvVXJsKG4sdCksYz1hJiZzLmdldFN5bWJvbExvZ29VcmwoYSx0KTtyZXR1cm4gaSYmYz9baSxjXTppP1tpXTpjP1tjXTpbXX1mdW5jdGlvbiBsKGUsdD1yLkxvZ29TaXplLk1lZGl1bSl7cmV0dXJuKCJwYWlyIj09PWUuc3R5bGU/W2UubG9nb2lkLGUubG9nb2lkMl06W2UubG9nb2lkXSkubWFwKChlPT5zLmdldFN5bWJvbExvZ29VcmwoZSx0KSkpLmZpbHRlcihuLm5vdE51bGwpfWZ1bmN0aW9uIGkoZSl7cmV0dXJuIDIhPT1lLmxlbmd0aD9lOmZ1bmN0aW9uKGUpe3JldHVybiBlLnNvbWUoKGU9PmMoZSkpKX0oZSkmJiFmdW5jdGlvbihlKXtyZXR1cm4gZS5zb21lKChlPT5lLmluY2x1ZGVzKCJjb3VudHJ5IikmJiFjKGUpKSl9KGUpP2UuZmlsdGVyKChlPT4hYyhlKSkpOmV9ZnVuY3Rpb24gYyhlKXtyZXR1cm4gZS5pbmNsdWRlcygiY291bnRyeS9VUyIpfX0sMjEwNzY0KGUsdCxvKXsidXNlIHN0cmljdCI7by5kKHQse3VzZU92ZXJsYXlTY3JvbGw6KCk9Pml9KTt2YXIgbj1vKDc3OTQ3NCkscj1vKDEzODYzOCkscz1vKDY4OTg5NCksYT1vKDMxODk3NCk7Y29uc3QgbD17b25Nb3VzZUVudGVyOigpPT57fSxvbk1vdXNlTGVhdmU6KCk9Pnt9fTtmdW5jdGlvbiBpKGUsdD1hLkNoZWNrTW9iaWxlLmFueSgpKXtjb25zdCBvPSgwLG4udXNlUmVmKShudWxsKSxpPWV8fCgwLG4udXNlUmVmKShudWxsKSxbYyx1XT0oMCxzLnVzZUhvdmVyKSgpLFttLGRdPSgwLG4udXNlU3RhdGUpKHtyZWZlcmVuY2U6byxjb250YWluZXJIZWlnaHQ6MCxjb250YWluZXJXaWR0aDowLGNvbnRlbnRIZWlnaHQ6MCxjb250ZW50V2lkdGg6MCxzY3JvbGxQb3NUb3A6MCxzY3JvbGxQb3NMZWZ0OjAsb25WZXJ0aWNhbENoYW5nZTpmdW5jdGlvbihlKXtkKCh0PT4oey4uLnQsc2Nyb2xsUG9zVG9wOmV9KSkpLCgwLHIuZW5zdXJlTm90TnVsbCkoaS5jdXJyZW50KS5zY3JvbGxUb3A9ZX0sb25Ib3Jpem9udGFsQ2hhbmdlOmZ1bmN0aW9uKGUpe2QoKHQ9Pih7Li4udCxzY3JvbGxQb3NMZWZ0OmV9KSkpLCgwLHIuZW5zdXJlTm90TnVsbCkoaS5jdXJyZW50KS5zY3JvbGxMZWZ0PWV9LHZpc2libGU6Y30pLHA9KDAsbi51c2VDYWxsYmFjaykoKCgpPT57aWYoIWkuY3VycmVudClyZXR1cm47Y29uc3R7Y2xpZW50SGVpZ2h0OmUsc2Nyb2xsSGVpZ2h0OnQsc2Nyb2xsVG9wOm4sY2xpZW50V2lkdGg6cixzY3JvbGxXaWR0aDpzLHNjcm9sbExlZnQ6YX09aS5jdXJyZW50LGw9by5jdXJyZW50P28uY3VycmVudC5vZmZzZXRUb3A6MDtkKChvPT4oey4uLm8sY29udGFpbmVySGVpZ2h0OmUtbCxjb250ZW50SGVpZ2h0OnQtbCxzY3JvbGxQb3NUb3A6biwKY29udGFpbmVyV2lkdGg6cixjb250ZW50V2lkdGg6cyxzY3JvbGxQb3NMZWZ0OmF9KSkpfSksW10pO2Z1bmN0aW9uIGgoKXtkKChlPT4oey4uLmUsc2Nyb2xsUG9zVG9wOigwLHIuZW5zdXJlTm90TnVsbCkoaS5jdXJyZW50KS5zY3JvbGxUb3Asc2Nyb2xsUG9zTGVmdDooMCxyLmVuc3VyZU5vdE51bGwpKGkuY3VycmVudCkuc2Nyb2xsTGVmdH0pKSl9cmV0dXJuKDAsbi51c2VFZmZlY3QpKCgoKT0+e2MmJnAoKSxkKChlPT4oey4uLmUsdmlzaWJsZTpjfSkpKX0pLFtjXSksKDAsbi51c2VFZmZlY3QpKCgoKT0+e2NvbnN0IGU9aS5jdXJyZW50O3JldHVybiBlJiZlLmFkZEV2ZW50TGlzdGVuZXIoInNjcm9sbCIsaCksKCk9PntlJiZlLnJlbW92ZUV2ZW50TGlzdGVuZXIoInNjcm9sbCIsaCl9fSksW2ldKSxbbSx0P2w6dSxpLHBdfX0sNzA4ODQyKGUsdCxvKXsidXNlIHN0cmljdCI7by5kKHQse1Rvb2xXaWRnZXRDYXJldDooKT0+Y30pO3ZhciBuPW8oNzc5NDc0KSxyPW8oOTE0NDg3KSxzPW8ubihyKSxhPW8oMjczMzEwKSxsPW8oODEwMjgxKSxpPW8oMzU2NzIxKTtmdW5jdGlvbiBjKGUpe2NvbnN0e2Ryb3BwZWQ6dCxjbGFzc05hbWU6b309ZTtyZXR1cm4gbi5jcmVhdGVFbGVtZW50KGEuSWNvbix7Y2xhc3NOYW1lOnMoKShvLGwuaWNvbix7W2wuZHJvcHBlZF06dH0pLGljb246aX0pfX0sOTM1MShlKXtlLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMTggMTgiIHdpZHRoPSIxOCIgaGVpZ2h0PSIxOCI+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBkPSJNMy45MiA3LjgzIDkgMTIuMjlsNS4wOC00LjQ2LTEtMS4xM0w5IDEwLjI5bC00LjA5LTMuNi0uOTkgMS4xNFoiLz48L3N2Zz4nfSwyMzYxNDYoZSl7ZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDE4IDE4IiB3aWR0aD0iMTgiIGhlaWdodD0iMTgiPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZD0iTTkuODQgOSA2LjYyIDUuMzNsLjc2LS42NkwxMS4xNiA5bC0zLjc4IDQuMzMtLjc2LS42Nkw5Ljg0IDlaIi8+PC9zdmc+J30sMTI1ODk3KGUpe2UuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMSA5IiB3aWR0aD0iMTEiIGhlaWdodD0iOSIgZmlsbD0ibm9uZSI+PHBhdGggc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiIgZD0iTTAuOTk5ODc4IDRMMy45OTk4OCA3TDkuOTk5ODggMSIvPjwvc3ZnPid9LDIwMzMwOShlKXtlLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMTYgMTYiPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZD0iTTQgOGE0IDQgMCAxIDAgOCAwIDQgNCAwIDEgMC04IDAiLz48L3N2Zz4nfSwyNzQ4NTEoZSl7ZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDE2IDE2Ij48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTAgOGE4IDggMCAxIDAgMTYgMEE4IDggMCAxIDAgMCA4em0yIDBhNiA2IDAgMSAwIDEyIDBBNiA2IDAgMSAwIDIgOHptMiAwYTQgNCAwIDEgMCA4IDAgNCA0IDAgMSAwLTggMCIvPjwvc3ZnPid9LDMzNDU1MChlKXtlLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMjggMjgiIHdpZHRoPSIyOCIgaGVpZ2h0PSIyOCIgZmlsbD0ibm9uZSI+PHBhdGggc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgc3Ryb2tlLXdpZHRoPSIyIiBkPSJNMTYuNSAyMEwxMSAxNC41IDE2LjUgOSIvPjwvc3ZnPid9LDM1NjcyMShlKXtlLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMTYgOCIgd2lkdGg9IjE2IiBoZWlnaHQ9IjgiPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZD0iTTAgMS40NzVsNy4zOTYgNi4wNC41OTYuNDg1LjU5My0uNDlMMTYgMS4zOSAxNC44MDcgMCA3LjM5MyA2LjEyMiA4LjU4IDYuMTIgMS4xODYuMDh6Ii8+PC9zdmc+J30sNTgwNTk2KGUpe2UuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxOCAxOCIgd2lkdGg9IjE4IiBoZWlnaHQ9IjE4IiBmaWxsPSJub25lIj48cGF0aCBzdHJva2U9ImN1cnJlbnRDb2xvciIgZD0iTTggNWwzLjUgMy41TDggMTIiLz48L3N2Zz4nfSwzODA1NihlKXtlLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMjggMjgiIHdpZHRoPSIyOCIgaGVpZ2h0PSIyOCIgZmlsbD0ibm9uZSI+PHBhdGggc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLXdpZHRoPSIxLjUiIGQ9Ik03IDE1bDUgNUwyMyA5Ii8+PC9zdmc+J30sODQ0MjI1KGUpeyJ1c2Ugc3RyaWN0Igo7ZS5leHBvcnRzPUpTT04ucGFyc2UoJ3siZW4iOnsibGFuZ3VhZ2UiOiJlbiIsImxhbmd1YWdlX25hbWUiOiJFbmdsaXNoIiwiZmxhZyI6InVzIiwiZ2VvaXBfY29kZSI6InVzIiwiaXNvIjoiZW4iLCJpc29fNjM5XzMiOiJlbmciLCJnbG9iYWxfbmFtZSI6IkVuZ2xpc2giLCJpc19vbmx5X3JlY29tbWVuZGVkX3R3X2F1dG9yZXBvc3QiOnRydWV9LCJpbiI6eyJsYW5ndWFnZSI6ImVuIiwibGFuZ3VhZ2VfbmFtZSI6IkVuZ2xpc2gg4oCOKEluZGlhKeKAjiIsImZsYWciOiJpbiIsImdlb2lwX2NvZGUiOiJpbiIsImlzbyI6ImVuIiwiaXNvXzYzOV8zIjoiZW5nIiwiZ2xvYmFsX25hbWUiOiJJbmRpYW4ifSwiZGVfREUiOnsibGFuZ3VhZ2UiOiJkZSIsImxhbmd1YWdlX25hbWUiOiJEZXV0c2NoIiwiZmxhZyI6ImRlIiwiZ2VvaXBfY29kZSI6ImRlIiwiY291bnRyaWVzX3dpdGhfdGhpc19sYW5ndWFnZSI6WyJhdCIsImNoIl0sImlzbyI6ImRlIiwiaXNvXzYzOV8zIjoiZGV1IiwiZ2xvYmFsX25hbWUiOiJHZXJtYW4iLCJpc19pbl9ldXJvcGVhbl91bmlvbiI6dHJ1ZX0sImZyIjp7Imxhbmd1YWdlIjoiZnIiLCJsYW5ndWFnZV9uYW1lIjoiRnJhbsOnYWlzIiwiZmxhZyI6ImZyIiwiZ2VvaXBfY29kZSI6ImZyIiwiaXNvIjoiZnIiLCJpc29fNjM5XzMiOiJmcmEiLCJnbG9iYWxfbmFtZSI6IkZyZW5jaCIsImlzX2luX2V1cm9wZWFuX3VuaW9uIjp0cnVlfSwiY2FfRVMiOnsibGFuZ3VhZ2UiOiJjYV9FUyIsImxhbmd1YWdlX25hbWUiOiJDYXRhbMOgIiwiZmxhZyI6ImVzIiwiZ2VvaXBfY29kZSI6ImVzIiwiaXNvIjoiY2EiLCJpc29fNjM5XzMiOiJjYXQiLCJnbG9iYWxfbmFtZSI6IkNhdGFsYW4ifSwiZXMiOnsibGFuZ3VhZ2UiOiJlcyIsImxhbmd1YWdlX25hbWUiOiJFc3Bhw7FvbCIsImZsYWciOiJlcyIsImdlb2lwX2NvZGUiOiJlcyIsImNvdW50cmllc193aXRoX3RoaXNfbGFuZ3VhZ2UiOlsibXgiLCJhciIsInZlIiwiY2wiLCJjbyIsInBlIiwidXkiLCJweSIsImNyIiwiZ3QiLCJjIiwiYm8iLCJwYSIsInByIl0sImlzbyI6ImVzIiwiaXNvXzYzOV8zIjoic3BhIiwiZ2xvYmFsX25hbWUiOiJTcGFuaXNoIiwiaXNfaW5fZXVyb3BlYW5fdW5pb24iOnRydWV9LCJpdCI6eyJsYW5ndWFnZSI6Iml0IiwibGFuZ3VhZ2VfbmFtZSI6Ikl0YWxpYW5vIiwiZmxhZyI6Iml0IiwiZ2VvaXBfY29kZSI6Iml0IiwiaXNvIjoiaXQiLCJpc29fNjM5XzMiOiJpdGEiLCJnbG9iYWxfbmFtZSI6Ikl0YWxpYW4iLCJpc19pbl9ldXJvcGVhbl91bmlvbiI6dHJ1ZX0sInBsIjp7Imxhbmd1YWdlIjoicGwiLCJsYW5ndWFnZV9uYW1lIjoiUG9sc2tpIiwiZmxhZyI6InBsIiwiZ2VvaXBfY29kZSI6InBsIiwiaXNvIjoicGwiLCJpc29fNjM5XzMiOiJwb2wiLCJnbG9iYWxfbmFtZSI6IlBvbGlzaCIsImlzX2luX2V1cm9wZWFuX3VuaW9uIjp0cnVlfSwiaHVfSFUiOnsibGFuZ3VhZ2UiOiJodV9IVSIsImxhbmd1YWdlX25hbWUiOiJNYWd5YXIiLCJmbGFnIjoiaHUiLCJnZW9pcF9jb2RlIjoiaHUiLCJpc28iOiJodSIsImlzb182MzlfMyI6Imh1biIsImdsb2JhbF9uYW1lIjoiSHVuZ2FyaWFuIiwiaXNfaW5fZXVyb3BlYW5fdW5pb24iOnRydWV9LCJzdl9TRSI6eyJsYW5ndWFnZSI6InN2IiwibGFuZ3VhZ2VfbmFtZSI6IlN2ZW5za2EiLCJmbGFnIjoic2UiLCJnZW9pcF9jb2RlIjoic2UiLCJpc28iOiJzdiIsImlzb182MzlfMyI6InN3ZSIsImdsb2JhbF9uYW1lIjoiU3dlZGlzaCIsImlzX2luX2V1cm9wZWFuX3VuaW9uIjp0cnVlfSwidHIiOnsibGFuZ3VhZ2UiOiJ0ciIsImxhbmd1YWdlX25hbWUiOiJUw7xya8OnZSIsImZsYWciOiJ0ciIsImdlb2lwX2NvZGUiOiJ0ciIsImlzbyI6InRyIiwiaXNvXzYzOV8zIjoidHVyIiwiZ2xvYmFsX25hbWUiOiJUdXJraXNoIiwiaXNfb25seV9yZWNvbW1lbmRlZF90d19hdXRvcmVwb3N0Ijp0cnVlfSwicnUiOnsibGFuZ3VhZ2UiOiJydSIsImxhbmd1YWdlX25hbWUiOiLQoNGD0YHRgdC60LjQuSIsImZsYWciOiJydSIsImdlb2lwX2NvZGUiOiJydSIsImNvdW50cmllc193aXRoX3RoaXNfbGFuZ3VhZ2UiOlsiYW0iLCJieSIsImtnIiwia3oiLCJtZCIsInRqIiwidG0iLCJ1eiJdLCJpc28iOiJydSIsImlzb182MzlfMyI6InJ1cyIsImdsb2JhbF9uYW1lIjoiUnVzc2lhbiIsImlzX29ubHlfcmVjb21tZW5kZWRfdHdfYXV0b3JlcG9zdCI6dHJ1ZX0sImJyIjp7Imxhbmd1YWdlIjoicHQiLCJsYW5ndWFnZV9uYW1lIjoiUG9ydHVndcOqcyIsImZsYWciOiJiciIsImdlb2lwX2NvZGUiOiJiciIsImlzbyI6InB0IiwiaXNvXzYzOV8zIjoicG9yIiwiZ2xvYmFsX25hbWUiOiJQb3J0dWd1ZXNlIn0sImlkIjp7Imxhbmd1YWdlIjoiaWRfSUQiLCJsYW5ndWFnZV9uYW1lIjoiQmFoYXNhIEluZG9uZXNpYSIsImZsYWciOiJpZCIsImdlb2lwX2NvZGUiOiJpZCIsImlzbyI6ImlkIiwiaXNvXzYzOV8zIjoiaW5kIiwiZ2xvYmFsX25hbWUiOiJJbmRvbmVzaWFuIn0sIm1zX01ZIjp7Imxhbmd1YWdlIjoibXNfTVkiLCJsYW5ndWFnZV9uYW1lIjoiQmFoYXNhIE1lbGF5dSIsImZsYWciOiJteSIsImdlb2lwX2NvZGUiOiJteSIsImlzbyI6Im1zIiwiaXNvXzYzOV8zIjoiemxtIiwiZ2xvYmFsX25hbWUiOiJNYWxheXNpYW4ifSwidGhfVEgiOnsibGFuZ3VhZ2UiOiJ0aCIsImxhbmd1YWdlX25hbWUiOiLguKDguLLguKnguLLguYTguJfguKIiLCJmbGFnIjoidGgiLCJnZW9pcF9jb2RlIjoidGgiLCJpc28iOiJ0aCIsImlzb182MzlfMyI6InRoYSIsImdsb2JhbF9uYW1lIjoiVGhhaSJ9LCJ2aV9WTiI6eyJsYW5ndWFnZSI6InZpIiwibGFuZ3VhZ2VfbmFtZSI6IlRp4bq/bmcgVmnhu4d0IiwiZmxhZyI6InZuIiwiZ2VvaXBfY29kZSI6InZuIiwiaXNvIjoidmkiLCJpc29fNjM5XzMiOiJ2aWUiLCJnbG9iYWxfbmFtZSI6IlZpZXRuYW1lc2UifSwiamEiOnsibGFuZ3VhZ2UiOiJqYSIsImxhbmd1YWdlX25hbWUiOiLml6XmnKzoqp4iLCJmbGFnIjoianAiLCJnZW9pcF9jb2RlIjoianAiLCJpc28iOiJqYSIsImlzb182MzlfMyI6ImpwbiIsImdsb2JhbF9uYW1lIjoiSmFwYW5lc2UifSwia3IiOnsibGFuZ3VhZ2UiOiJrbyIsImxhbmd1YWdlX25hbWUiOiLtlZzqta3slrQiLCJmbGFnIjoia3IiLCJnZW9pcF9jb2RlIjoia3IiLCJpc28iOiJrbyIsImlzb182MzlfMyI6ImtvciIsImdsb2JhbF9uYW1lIjoiS29yZWFuIn0sInpoX0NOIjp7Imxhbmd1YWdlIjoiemgiLCJsYW5ndWFnZV9uYW1lIjoi566A5L2T5Lit5paHIiwiZmxhZyI6ImNuIiwiZ2VvaXBfY29kZSI6ImNuIiwiY291bnRyaWVzX3dpdGhfdGhpc19sYW5ndWFnZSI6WyJ6aCJdLCJpc28iOiJ6aC1IYW5zIiwiaXNvXzYzOV8zIjoiY21uIiwiZ2xvYmFsX25hbWUiOiJDaGluZXNlIn0sInpoX1RXIjp7Imxhbmd1YWdlIjoiemhfVFciLCJsYW5ndWFnZV9uYW1lIjoi57mB6auU5Lit5paHIiwiZmxhZyI6InR3IiwiZ2VvaXBfY29kZSI6InR3IiwiY291bnRyaWVzX3dpdGhfdGhpc19sYW5ndWFnZSI6WyJoayJdLCJpc28iOiJ6aC1IYW50IiwiaXNvXzYzOV8zIjoiY21uIiwiZ2xvYmFsX25hbWUiOiJUYWl3YW5lc2UifSwiYXJfQUUiOnsibGFuZ3VhZ2UiOiJhciIsImxhbmd1YWdlX25hbWUiOiLYp9mE2LnYsdio2YrYqSIsImZsYWciOiJzYSIsImdlb2lwX2NvZGUiOiJzYSIsImNvdW50cmllc193aXRoX3RoaXNfbGFuZ3VhZ2UiOlsiYWUiLCJiaCIsImRqIiwiZHoiLCJlZyIsImVyIiwiaXEiLCJqbyIsImttIiwia3ciLCJsYiIsImx5IiwibWEiLCJtciIsIm9tIiwicWEiLCJzYSIsInNkIiwic28iLCJzeSIsInRkIiwidG4iLCJ5ZSJdLCJkaXIiOiJydGwiLCJpc28iOiJhciIsImlzb182MzlfMyI6ImFyYiIsImdsb2JhbF9uYW1lIjoiQXJhYmljIn0sImhlX0lMIjp7Imxhbmd1YWdlIjoiaGVfSUwiLCJsYW5ndWFnZV9uYW1lIjoi16LXkdeo15nXqiIsImZsYWciOiJpbCIsImdlb2lwX2NvZGUiOiJpbCIsImRpciI6InJ0bCIsImlzbyI6ImhlIiwiaXNvXzYzOV8zIjoiaGViIiwiZ2xvYmFsX25hbWUiOiJJc3JhZWxpIn19JykKfX1dKTs="}},"time_used":3,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":3,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/48652.9487148ca973a8ce4caa.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.563Z","timestamp":1785148034563,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/48652.9487148ca973a8ce4caa.js HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a61b1a9-afdb\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Thu, 23 Jul 2026 06:16:09 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/23/2026 10:17:30\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 34f4a225f67c108a06afa1d9d80dcb22\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":45019,"size_decoded":15866,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (3072)","md5":"84e3cbc8f2cc7d16bc14251dee5f916d","sha1":"4515c758e4180ad4b3e4de054f1010b89337c5d3","sha256":"d71c6cd3abef8e38419d743ed4851ee893ff6bc105108ae88885f8524ac780a9","sha512":"166e2773f21cfcd6f793984bb2321a0513fe16cb22296e7f7a0e81915f6b387f2961404e6b1cad8c8fe209c02411ea7a4c468f0c7216b1327f2fa2ccde80acb8","ssdeep":"768:VHqwOWJaoTqN6riNXBxFRJLTiIjsxIU1azbsYttLhqpTLuvD/XV0xwk3LlEYZZBq:5qwOW0MmiMKCkLctYz3LauFKEP9mC7Oj","tlshash":"af13d68035a1b02887e6409ad07e4546f7792bd1b48a5579f0fcc8ce3e5898df136bbe","first_seen":"2026-07-23T14:00:31.480629Z","last_seen":"2026-07-27T12:48:39.650739Z","times_seen":57,"resource_available":true,"data":"KHNlbGYud2VicGFja0NodW5rdHJhZGluZ3ZpZXc9c2VsZi53ZWJwYWNrQ2h1bmt0cmFkaW5ndmlld3x8W10pLnB1c2goW1s0ODY1Miw2MTEyNl0sezk3Nzc3KHQpe3QuZXhwb3J0cz17YmFkZ2U6ImJhZGdlLXg0VVZaYWJNIixoYXNDaGlsZHJlbjoiaGFzQ2hpbGRyZW4teDRVVlphYk0iLGNvbnRlbnQ6ImNvbnRlbnQteDRVVlphYk0iLHNsb3Q6InNsb3QteDRVVlphYk0iLHhzbWFsbDoieHNtYWxsLXg0VVZaYWJNIixzbWFsbDoic21hbGwteDRVVlphYk0iLG1lZGl1bToibWVkaXVtLXg0VVZaYWJNIixsYXJnZToibGFyZ2UteDRVVlphYk0iLHhsYXJnZToieGxhcmdlLXg0VVZaYWJNIix4eGxhcmdlOiJ4eGxhcmdlLXg0VVZaYWJNIn19LDIyOTU0MSh0KXt0LmV4cG9ydHM9e2ludGVyc2VjdGlvblpvbmU6ImludGVyc2VjdGlvblpvbmUtRUlWMl9SZDAiLGludGVyc2VjdGlvbkRldGVjdG9yOiJpbnRlcnNlY3Rpb25EZXRlY3Rvci1FSVYyX1JkMCIsbGVmdDoibGVmdC1FSVYyX1JkMCIscmlnaHQ6InJpZ2h0LUVJVjJfUmQwIn19LDQ3OTU1NSh0KXt0LmV4cG9ydHM9e2Fycm93OiJhcnJvdy1tSkFpMVQwaSIsb3Blbjoib3Blbi1tSkFpMVQwaSIsYWN0aXZlOiJhY3RpdmUtbUpBaTFUMGkiLG5vbkFjdGl2ZToibm9uQWN0aXZlLW1KQWkxVDBpIn19LDk0MDAwMyh0KXt0LmV4cG9ydHM9e3BpbGxJY29uOiJwaWxsSWNvbi1qNU5HMFZWVCIsYWN0aXZlOiJhY3RpdmUtajVORzBWVlQiLG5vbkFjdGl2ZToibm9uQWN0aXZlLWo1TkcwVlZUIn19LDk2MTA4Mih0KXt0LmV4cG9ydHM9e2xheW91dDoibGF5b3V0LXBlSlVTUmRaIixzdHJldGNoOiJzdHJldGNoLXBlSlVTUmRaIixzcGFjZToic3BhY2UtcGVKVVNSZFoiLGVuZFRleHRTbG90OiJlbmRUZXh0U2xvdC1wZUpVU1JkWiIsc3RhcnRUZXh0U2xvdDoic3RhcnRUZXh0U2xvdC1wZUpVU1JkWiJ9fSw2MjY2MzEodCl7dC5leHBvcnRzPXt3cmFwOiJ3cmFwLVBvWGFjRHBYIn19LDE2MzU0NSh0KXt0LmV4cG9ydHM9e3JhZGlvQnV0dG9uVmlldzoicmFkaW9CdXR0b25WaWV3LU9MWFpReHViIixjaGVja2VkOiJjaGVja2VkLU9MWFpReHViIixkaXNhYmxlZDoiZGlzYWJsZWQtT0xYWlF4dWIifX0sMzEyNDModCl7dC5leHBvcnRzPXt0cjoidHItSTdiWmhWZnkiLHRkOiJ0ZC1JN2JaaFZmeSIsYWxpZ25MZWZ0OiJhbGlnbkxlZnQtSTdiWmhWZnkiLGFsaWduQ2VudGVyOiJhbGlnbkNlbnRlci1JN2JaaFZmeSIsY29sb3JJblRoZU1vbmV5OiJjb2xvckluVGhlTW9uZXktSTdiWmhWZnkiLGNlbnRlcjoiY2VudGVyLUk3YlpoVmZ5IixzZWxlY3RlZDoic2VsZWN0ZWQtSTdiWmhWZnkiLG5hdmlnYXRlZDoibmF2aWdhdGVkLUk3YlpoVmZ5IixmbGFzaEhpZ2hsaWdodDoiZmxhc2hIaWdobGlnaHQtSTdiWmhWZnkiLCJmbGFzaEhpZ2hsaWdodC1hbmltYXRpb24iOiJmbGFzaEhpZ2hsaWdodC1hbmltYXRpb24tSTdiWmhWZnkifX0sNTAyMTQ0KHQpe3QuZXhwb3J0cz17c2tlbGV0b25Db250YWluZXI6InNrZWxldG9uQ29udGFpbmVyLWlqUmhFd3VZIixvcHRpb25zQ2hhaW46Im9wdGlvbnNDaGFpbi1palJoRXd1WSIsc2tlbGV0b25SZWN0YW5nbGU6InNrZWxldG9uUmVjdGFuZ2xlLWlqUmhFd3VZIixzZXJpZXNHcm91cENlbGw6InNlcmllc0dyb3VwQ2VsbC1palJoRXd1WSJ9fSw1MzI3MjgodCl7dC5leHBvcnRzPXtjZWxsOiJjZWxsLUF0UllySlBuIixzb3J0QWN0aXZlOiJzb3J0QWN0aXZlLUF0UllySlBuIixzb3J0SWNvbjoic29ydEljb24tQXRSWXJKUG4iLHNvcnREZXNjOiJzb3J0RGVzYy1BdFJZckpQbiJ9fSw1NTIxNTModCl7dC5leHBvcnRzPXtmaXJzdFJvd0hlYWQ6ImZpcnN0Um93SGVhZC1sQ2t1U3RUayIsZmlyc3RSb3dUZXh0OiJmaXJzdFJvd1RleHQtbENrdVN0VGsiLHNlY29uZFJvd0hlYWQ6InNlY29uZFJvd0hlYWQtbENrdVN0VGsiLHRoOiJ0aC1sQ2t1U3RUayIsY2VudHJhbDoiY2VudHJhbC1sQ2t1U3RUayIsYWxpZ25MZWZ0OiJhbGlnbkxlZnQtbENrdVN0VGsiLGFsaWduQ2VudGVyOiJhbGlnbkNlbnRlci1sQ2t1U3RUayIsYWxpZ25SaWdodDoiYWxpZ25SaWdodC1sQ2t1U3RUayJ9fSw2MjQ2OTIodCl7dC5leHBvcnRzPXtyb290OiJyb290LVdNTE55NV93In19LDcwMjcxMCh0KXt0LmV4cG9ydHM9e2NvbnRhaW5lcjoiY29udGFpbmVyLUVmSjlJSFZhIix3cmFwcGVyOiJ3cmFwcGVyLUVmSjlJSFZhIix0YWJsZToidGFibGUtRWZKOUlIVmEiLGZvb3RlckNlbGw6ImZvb3RlckNlbGwtRWZKOUlIVmEifX0sNjI2MDgyKHQpe3QuZXhwb3J0cz17YmxvY2s6ImJsb2NrLXNoS3hzenN4IixlbXB0eVN0YXRlSWNvbjoiZW1wdHlTdGF0ZUljb24tc2hLeHN6c3gifX0sNTI0ODU4KHQpe3QuZXhwb3J0cz17aXRlbToiaXRlbS16Z3RVQkU0VyIsaXRlbUNvbnRlbnQ6Iml0ZW1Db250ZW50LXpndFVCRTRXIixjb3VudGVyOiJjb3VudGVyLXpndFVCRTRXIn19LDg4NjgxMCh0KXt0LmV4cG9ydHM9e3Jvb3Q6InJvb3QteUJLQ2VBTnEiLHNjcm9sbENvbnRhaW5lcjoic2Nyb2xsQ29udGFpbmVyLXlCS0NlQU5xIixncm91cDoiZ3JvdXAteUJLQ2VBTnEiLGdyb3VwVGl0bGU6Imdyb3VwVGl0bGUteUJLQ2VBTnEiLGl0ZW1zOiJpdGVtcy15QktDZUFOcSIsaXRlbToiaXRlbS15QktDZUFOcSJ9fSw2MDk4NzYodCl7dC5leHBvcnRzPXtyb290OiJyb290LURyNzM5UnM0IixzY3JvbGxDb250YWluZXI6InNjcm9sbENvbnRhaW5lci1EcjczOVJzNCIsZ3JvdXA6Imdyb3VwLURyNzM5UnM0IixzdWJncm91cDoic3ViZ3JvdXAtRHI3MzlSczQiLGdyb3VwVGl0bGU6Imdyb3VwVGl0bGUtRHI3MzlSczQiLGxlZnRGYWRlOiJsZWZ0RmFkZS1EcjczOVJzNCIscmlnaHRGYWRlOiJyaWdodEZhZGUtRHI3MzlSczQiLG9uZUdyb3VwOiJvbmVHcm91cC1EcjczOVJzNCIsbGVmdEFycm93OiJsZWZ0QXJyb3ctRHI3MzlSczQiLHJpZ2h0QXJyb3c6InJpZ2h0QXJyb3ctRHI3MzlSczQiLGl0ZW1zOiJpdGVtcy1EcjczOVJzNCJ9fSw2MTY2NDModCxlLHIpeyJ1c2Ugc3RyaWN0IjtyLmQoZSx7dXNlVGhlbWU6KCk9Pml9KTt2YXIgcz1yKDEwNjkwMCksbj1yKDIwMDY2Nik7ZnVuY3Rpb24gaSgpe3JldHVybigwLApzLnVzZVdhdGNoZWRWYWx1ZVJlYWRvbmx5KSh7d2F0Y2hlZFZhbHVlOm4ud2F0Y2hlZFRoZW1lfSl9fSw1OTA0ODYodCxlLHIpeyJ1c2Ugc3RyaWN0IjtyLmQoZSx7QmFkZ2U6KCk9PmN9KTt2YXIgcz1yKDc3OTQ3NCksbj1yKDkxNDQ4NyksaT1yLm4obiksbz1yKDk3Nzc3KSxhPXIubihvKTtmdW5jdGlvbiBsKHtocmVmOnQsb25DbGljazplLHJlZmVyZW5jZTpyLC4uLm59KXtyZXR1cm4gdD9zLmNyZWF0ZUVsZW1lbnQoImEiLHtocmVmOnQsb25DbGljazplLHRhcmdldDoiX2JsYW5rIixyZWY6ciwuLi5ufSk6ZT9zLmNyZWF0ZUVsZW1lbnQoImJ1dHRvbiIse29uQ2xpY2s6ZSxyZWY6ciwuLi5ufSk6cy5jcmVhdGVFbGVtZW50KCJzcGFuIix7cmVmOnIsLi4ubn0pfWZ1bmN0aW9uIGMoe2NsYXNzTmFtZTp0LHNpemU6ZSxsZWZ0U2xvdDpyLHJpZ2h0U2xvdDpuLGNoaWxkcmVuOm8sLi4uY30pe2NvbnN0IHU9aSgpKHQsYSgpLmJhZGdlLGUmJmEoKVtlXSxvJiZhKCkuaGFzQ2hpbGRyZW4pO3JldHVybiBzLmNyZWF0ZUVsZW1lbnQobCx7Y2xhc3NOYW1lOnUsLi4uY30sciYmcy5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6YSgpLnNsb3R9LHIpLG8mJnMuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZTphKCkuY29udGVudH0sbyksbiYmcy5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6YSgpLnNsb3R9LG4pKX19LDIzNDYzNih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBzO3IuZChlLHtCYWRnZVNpemU6KCk9PnN9KSxmdW5jdGlvbih0KXt0LlhTbWFsbD0ieHNtYWxsIix0LlNtYWxsPSJzbWFsbCIsdC5NZWRpdW09Im1lZGl1bSIsdC5MYXJnZT0ibGFyZ2UiLHQuWExhcmdlPSJ4bGFyZ2UifShzfHwocz17fSkpfSwyODQ1OCh0LGUscil7InVzZSBzdHJpY3QiO3IuZChlLHt1c2VJbnRlcnNlY3Rpb25PYnNlcnZlcjooKT0+b30pO3ZhciBzPXIoNzc5NDc0KSxuPXIoMTY3NTAyKSxpPXIoNzg3ODk1KTtmdW5jdGlvbiBvKHQsZT17fSxyPVtdKXtjb25zdCBvPSgwLHMudXNlUmVmKShudWxsKSxhPSgwLHMudXNlUmVmKSh0KTthLmN1cnJlbnQ9dDtjb25zdHtyZWY6bD1udWxsLC4uLmN9PWUsdT0oMCxzLnVzZVJlZikoYyk7KDAsbi5kZWZhdWx0KShlLHUuY3VycmVudCl8fCh1LmN1cnJlbnQ9ZSk7Y29uc3QgaD0oMCxpLnVzZUZ1bmN0aW9uYWxSZWZPYmplY3QpKGwpLGQ9KDAscy51c2VDYWxsYmFjaykoKHQ9PntoKHQpLG51bGwhPT1vLmN1cnJlbnQmJihvLmN1cnJlbnQuZGlzY29ubmVjdCgpLG51bGwhPT10JiZvLmN1cnJlbnQub2JzZXJ2ZSh0KSl9KSxbaCxvXSk7cmV0dXJuKDAscy51c2VFZmZlY3QpKCgoKT0+KG8uY3VycmVudD1uZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoKCh0LGUpPT5hLmN1cnJlbnQodCxlKSksey4uLnUuY3VycmVudCxyb290OnUuY3VycmVudD8ucm9vdD8uY3VycmVudH0pLGguY3VycmVudCYmZChoLmN1cnJlbnQpLCgpPT57by5jdXJyZW50Py5kaXNjb25uZWN0KCl9KSksW2gsdS5jdXJyZW50LC4uLnJdKSxkfX0sMTY0MjQyKHQsZSxyKXsidXNlIHN0cmljdCI7ci5kKGUse0ludGVyc2VjdGlvblpvbmU6KCk9PmR9KTt2YXIgcyxuPXIoNzc5NDc0KSxpPXIoOTE0NDg3KSxvPXIubihpKSxhPXIoMjg0NTgpLGw9cigyMjk1NDEpLGM9ci5uKGwpOyFmdW5jdGlvbih0KXt0W3QuTGVmdD0tMV09IkxlZnQiLHRbdC5SaWdodD0xXT0iUmlnaHQifShzfHwocz17fSkpO2NvbnN0IHU9MSxoPXtbLTFdOmMoKS5sZWZ0LDE6YygpLnJpZ2h0fTtmdW5jdGlvbiBkKHQpe2NvbnN0e2ludGVyc2VjdGlvbkNiOmUscG9zaXRpb246cixjbGFzc05hbWU6cyxpbnRlcnNlY3Rpb25XaWR0aDppPXUscm9vdDpsLHJvb3RNYXJnaW46ZH09dCxtPSgwLG4udXNlQ2FsbGJhY2spKCh0PT5lKHRbdC5sZW5ndGgtMV0pKSxbXSkscD0oMCxhLnVzZUludGVyc2VjdGlvbk9ic2VydmVyKShtLHtyb290Omwscm9vdE1hcmdpbjpkfSk7cmV0dXJuIG4uY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOm8oKShjKCkuaW50ZXJzZWN0aW9uWm9uZSxzKX0sbi5jcmVhdGVFbGVtZW50KCJzcGFuIix7cmVmOnAsY2xhc3NOYW1lOm8oKShjKCkuaW50ZXJzZWN0aW9uRGV0ZWN0b3IsaFtyXSksc3R5bGU6e3dpZHRoOml9fSkpfX0sNDkxNjQwKHQsZSxyKXsidXNlIHN0cmljdCI7ci5kKGUse0Fycm93SWNvblBpbGxQYXJ0OigpPT5ofSk7dmFyIHM9cig3Nzk0NzQpLG49cig5MTQ0ODcpLGk9ci5uKG4pLG89cigyMTcyNzQpLGE9cig3ODYyNjgpLGw9ci5uKGEpLGM9cig0Nzk1NTUpLHU9ci5uKGMpO2Z1bmN0aW9uIGgodCl7cmV0dXJuIHMuY3JlYXRlRWxlbWVudChvLkJsb2NrSWNvbix7Y2xhc3NOYW1lOmkoKSh1KCkuYXJyb3csdC5vcGVuJiZ1KCkub3Blbix0LmFjdGl2ZT91KCkuYWN0aXZlOnUoKS5ub25BY3RpdmUpLGljb246bCgpfSl9fSw2MjY3MDQodCxlLHIpeyJ1c2Ugc3RyaWN0IjtyLmQoZSx7U3ZnSWNvblBpbGxQYXJ0OigpPT5jfSk7dmFyIHM9cig3Nzk0NzQpLG49cig5MTQ0ODcpLGk9ci5uKG4pLG89cigyMTcyNzQpLGE9cig5NDAwMDMpLGw9ci5uKGEpO2Z1bmN0aW9uIGModCl7Y29uc3R7aWNvblN2ZzplfT10O3JldHVybiBzLmNyZWF0ZUVsZW1lbnQoby5CbG9ja0ljb24se2NsYXNzTmFtZTppKCkobCgpLnBpbGxJY29uLHQuYWN0aXZlP2woKS5hY3RpdmU6bCgpLm5vbkFjdGl2ZSksaWNvbjplfSl9fSwyMDcyNDEodCxlLHIpeyJ1c2Ugc3RyaWN0IjtyLmQoZSx7UGlsbExheW91dFVuaXZlcnNhbDooKT0+Y30pO3ZhciBzLG49cig3Nzk0NzQpLGk9cig5MTQ0ODcpLG89ci5uKGkpLGE9cig5NjEwODIpLGw9ci5uKGEpO2Z1bmN0aW9uIGModCl7ZnVuY3Rpb24gZShlKXtyZXR1cm4hISgodC5zcGFjZUJldHdlZW4/PzApJmUpfXJldHVybiBuLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpvKCkobCgpLmxheW91dCx0LnN0cmV0Y2gmJmwoKS5zdHJldGNoKX0sdC5zdGFydEljb25TbG90JiZuLmNyZWF0ZUVsZW1lbnQoImRpdiIsbnVsbCwiICIsdC5zdGFydEljb25TbG90LCIgIiksZShzLlN0YXJ0KSYmbi5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6bCgpLnNwYWNlCn0pLHQuc3RhcnRUZXh0U2xvdCYmbi5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6bCgpLnN0YXJ0VGV4dFNsb3R9LHQuc3RhcnRUZXh0U2xvdCksZShzLlN0YXJ0TWlkZGxlKSYmbi5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6bCgpLnNwYWNlfSksdC5taWRkbGVJY29uU2xvdCYmbi5jcmVhdGVFbGVtZW50KCJkaXYiLG51bGwsIiAiLHQubWlkZGxlSWNvblNsb3QsIiAiKSxlKHMuTWlkZGxlRW5kKSYmbi5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6bCgpLnNwYWNlfSksdC5lbmRUZXh0U2xvdCYmbi5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6bCgpLmVuZFRleHRTbG90fSx0LmVuZFRleHRTbG90KSxlKHMuRW5kKSYmbi5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6bCgpLnNwYWNlfSksdC5lbmRJY29uU2xvdCYmbi5jcmVhdGVFbGVtZW50KCJkaXYiLG51bGwsIiAiLHQuZW5kSWNvblNsb3QsIiAiKSl9IWZ1bmN0aW9uKHQpe3RbdC5TdGFydD0xXT0iU3RhcnQiLHRbdC5TdGFydE1pZGRsZT0yXT0iU3RhcnRNaWRkbGUiLHRbdC5NaWRkbGVFbmQ9NF09Ik1pZGRsZUVuZCIsdFt0LkVuZD04XT0iRW5kIn0oc3x8KHM9e30pKX0sNTU3NTM0KHQsZSxyKXsidXNlIHN0cmljdCI7ci5kKGUse1JhZGlvYnV0dG9uUG9wb3Zlckl0ZW06KCk9Pmx9KTt2YXIgcz1yKDc3OTQ3NCksbj1yKDk3MjczNCksaT1yKDc5NTk1Niksbz1yKDYyNjYzMSksYT1yLm4obyk7ZnVuY3Rpb24gbCh0KXtjb25zdHtwb3BvdmVySXRlbVJlZjplLHBvcG92ZXJJdGVtQnV0dG9uUmVmOnIscG9wb3Zlckl0ZW1CdXR0b25JZDpvLHJvbGU6bCx0aXRsZTpjLGRlc2NyaXB0aW9uOnUsY2hlY2tlZDpoLGRpc2FibGVkOmQsb25DbGljazptLGFyaWFDaGVja2VkOnAsdGFiSW5kZXg6ZyxyaWdodFNsb3Q6ZixzaXplOnksZGF0YVFhSWQ6dn09dDtyZXR1cm4gcy5jcmVhdGVFbGVtZW50KG4uUG9wb3Zlckl0ZW0se3BvcG92ZXJJdGVtUmVmOmUscG9wb3Zlckl0ZW1CdXR0b25SZWY6cixwb3BvdmVySXRlbUJ1dHRvbklkOm8sYXJpYUNoZWNrZWQ6cCxyb2xlOmwsdGl0bGU6YyxkZXNjcmlwdGlvbjp1LGxlZnRTbG90OnMuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOmEoKS53cmFwfSxzLmNyZWF0ZUVsZW1lbnQoaS5SYWRpb0J1dHRvblZpZXcse2NoZWNrZWQ6aH0pKSxyaWdodFNsb3Q6ZixvbkNsaWNrOm0sdGFiSW5kZXg6ZyxzaXplOnksZGlzYWJsZWQ6ZCxkYXRhUWFJZDp2fSl9fSw3OTU5NTYodCxlLHIpeyJ1c2Ugc3RyaWN0IjtyLmQoZSx7UmFkaW9CdXR0b25WaWV3OigpPT5sfSk7dmFyIHM9cig3Nzk0NzQpLG49cig5MTQ0ODcpLGk9ci5uKG4pLG89cigxNjM1NDUpLGE9ci5uKG8pO2Z1bmN0aW9uIGwodCl7Y29uc3R7ZGlzYWJsZWQ6ZSxjaGVja2VkOnJ9PXQ7cmV0dXJuIHMuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZTppKCkoYSgpLnJhZGlvQnV0dG9uVmlldyxlJiZhKCkuZGlzYWJsZWQsciYmYSgpLmNoZWNrZWQpfSl9fSw4Mzg5MDIodCxlLHIpeyJ1c2Ugc3RyaWN0IjtyLmQoZSx7aXNBc2NpaU9ubHk6KCk9Pm4sbWF0Y2hBbGw6KCk9Pm8scmVnZXhwRXNjYXBlOigpPT5pfSk7Y29uc3Qgcz0vXltcdTAwMDAtXHUwMDdmXSokLztmdW5jdGlvbiBuKHQpe3JldHVybiBzLnRlc3QodCl9ZnVuY3Rpb24gaSh0KXtyZXR1cm4gdC5yZXBsYWNlKC9bIS0vWy1eey19P10vZywiXFwkJiIpfWZ1bmN0aW9uIG8odCxlKXtjb25zdCByPVtdO2xldCBzPWUuZXhlYyh0KTtmb3IoO251bGwhPT1zOylyLnB1c2gocykscz1lLmV4ZWModCk7cmV0dXJuIHJ9fSw2MTg4NjQodCxlLHIpeyJ1c2Ugc3RyaWN0IjtyLmQoZSx7QWN0aXZpdHlUcmFja2VyOigpPT5pfSk7Y29uc3Qgcz1bIndoZWVsIiwiY2xpY2siLCJtb3VzZXVwIiwibW91c2Vkb3duIiwibW91c2Vtb3ZlIiwia2V5cHJlc3MiLCJrZXlkb3duIiwia2V5dXAiLCJ0b3VjaGVuZCIsInRvdWNoc3RhcnQiXSxuPVsicmVzaXplIiwiZm9jdXMiLCJibHVyIl07Y2xhc3MgaXtjb25zdHJ1Y3Rvcih0PTFlMyl7dGhpcy5fYWN0aXZpdHlTdGF0ZT17bGFzdEFjdGl2aXR5VGltZTowLHRvdGFsQWN0aXZlVGltZTowfSx0aGlzLl9hbGxFdmVudHNBYm9ydENvbnRyb2xsZXI9bmV3IEFib3J0Q29udHJvbGxlcix0aGlzLl9hY3Rpdml0eURlYm91bmNlPXR9c3RhcnRUcmFja2luZygpe3RoaXMuX2FsbEV2ZW50c0Fib3J0Q29udHJvbGxlci5zaWduYWwuYWJvcnRlZCYmKHRoaXMuX2FsbEV2ZW50c0Fib3J0Q29udHJvbGxlcj1uZXcgQWJvcnRDb250cm9sbGVyKSx0aGlzLl9yZXNldEFjdGl2aXR5U3RhdGUoKSx0aGlzLl9zdWJzY3JpYmVUb0FsbEV2ZW50cygpfXN0b3BUcmFja2luZygpe3RoaXMuX3Jlc2V0QWN0aXZpdHlTdGF0ZSgpLHRoaXMuX3Vuc3Vic2NyaWJlRnJvbUFsbEV2ZW50cygpfWdldEN1cnJlbnRBY3Rpdml0eVRpbWUoKXtyZXR1cm4gdGhpcy5fYWN0aXZpdHlTdGF0ZS50b3RhbEFjdGl2ZVRpbWV9X2V2ZW50SGFuZGxlcigpe2NvbnN0IHQ9KG5ldyBEYXRlKS5nZXRUaW1lKCk7dGhpcy5fYWN0aXZpdHlTdGF0ZS5sYXN0QWN0aXZpdHlUaW1lK3RoaXMuX2FjdGl2aXR5RGVib3VuY2U8dCYmKHRoaXMuX2FjdGl2aXR5U3RhdGUubGFzdEFjdGl2aXR5VGltZT10LHRoaXMuX2FjdGl2aXR5U3RhdGUudG90YWxBY3RpdmVUaW1lKz0xKX1fc3Vic2NyaWJlVG9BbGxFdmVudHMoKXtzLmZvckVhY2goKHQ9Pntkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKHQsdGhpcy5fZXZlbnRIYW5kbGVyLmJpbmQodGhpcykse3NpZ25hbDp0aGlzLl9hbGxFdmVudHNBYm9ydENvbnRyb2xsZXIuc2lnbmFsLHBhc3NpdmU6ITB9KX0pKSxuLmZvckVhY2goKHQ9Pnt3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcih0LHRoaXMuX2V2ZW50SGFuZGxlci5iaW5kKHRoaXMpLHtzaWduYWw6dGhpcy5fYWxsRXZlbnRzQWJvcnRDb250cm9sbGVyLnNpZ25hbCxwYXNzaXZlOiEwfSl9KSl9X3Jlc2V0QWN0aXZpdHlTdGF0ZSgpe3RoaXMuX2FjdGl2aXR5U3RhdGUubGFzdEFjdGl2aXR5VGltZT0obmV3IERhdGUpLmdldFRpbWUoKSwKdGhpcy5fYWN0aXZpdHlTdGF0ZS50b3RhbEFjdGl2ZVRpbWU9MH1fdW5zdWJzY3JpYmVGcm9tQWxsRXZlbnRzKCl7dGhpcy5fYWxsRXZlbnRzQWJvcnRDb250cm9sbGVyLmFib3J0KCl9fX0sNjMyMDYwKHQsZSxyKXsidXNlIHN0cmljdCI7ci5kKGUse1NjYW5uZXJVdGlsczooKT0+c30pO2NsYXNzIHN7c3RhdGljIG1hcFNjYW5uZXJTeW1ib2wodCxlKXtjb25zdCByPXtuYW1lOmUuc307Zm9yKGxldCBzPTA7czx0Lmxlbmd0aDtzKyspclt0W3NdXT1lLmZbc107cmV0dXJuIHJ9c3RhdGljIGlzT3B0aW9uVHlwZSh0KXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIHQmJlsiY2FsbCIsInB1dCJdLmluY2x1ZGVzKHQpfXN0YXRpYyBpc0V4cGlyYXRpb24odCl7cmV0dXJuIm51bWJlciI9PXR5cGVvZiB0fXN0YXRpYyBpc1Jvb3QodCl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiB0fXN0YXRpYyBpc1N0cmlrZSh0KXtyZXR1cm4ibnVtYmVyIj09dHlwZW9mIHR9c3RhdGljIHBhcnNlTnVtYmVyKHQpe3JldHVybiJudW1iZXIiPT10eXBlb2YgdD90Om51bGx9c3RhdGljIHBhcnNlU3RyaW5nKHQpe3JldHVybiJzdHJpbmciPT10eXBlb2YgdD90Om51bGx9c3RhdGljIHBhcnNlVHlwZSh0KXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIHQ/dDoidW5kZWZpbmVkIn1zdGF0aWMgcGFyc2VFeHBpcmF0aW9uKHQpe3JldHVybiJudW1iZXIiPT10eXBlb2YgdD90Om51bGx9fX0sMzE1MzIwKHQsZSxyKXsidXNlIHN0cmljdCI7ci5kKGUse3VzZUtleWJvYXJkTmF2aWdhdGlvbjooKT0+YX0pO3ZhciBzPXIoOTY5MTY4KSxuPXIoMjM1NzI0KSxpPXIoNzc5NDc0KTtjb25zdCBvPXs0MDo0MCwzNzozOSwzOTozNywzODozOCwzNTozNSwzNjozNiwzNDozNCwzMzozM307ZnVuY3Rpb24gYSh0LGUscixhLGMsdSl7Y29uc3RbaCxkXT0oMCxpLnVzZVN0YXRlKSgoKCk9PmwoZSxyLGMpKSksW20scF09ZnVuY3Rpb24odCxlKXtjb25zdFtyLHNdPSgwLGkudXNlU3RhdGUpKCExKSxuPSgwLGkudXNlUmVmKShlKTtyZXR1cm4gbi5jdXJyZW50PWUsKDAsaS51c2VFZmZlY3QpKCgoKT0+e2NvbnN0IGU9dC5jdXJyZW50O2lmKGUpcmV0dXJuIGUuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLHIpLGUuYWRkRXZlbnRMaXN0ZW5lcigiYmx1ciIsaSksKCk9PntlLnJlbW92ZUV2ZW50TGlzdGVuZXIoImZvY3VzIixyKSxlLnJlbW92ZUV2ZW50TGlzdGVuZXIoImJsdXIiLGkpfTtmdW5jdGlvbiByKHQpe3QudGFyZ2V0IGluc3RhbmNlb2YgSFRNTEVsZW1lbnQmJnQudGFyZ2V0Lm1hdGNoZXMoIjpmb2N1cy12aXNpYmxlIikmJihzKCEwKSxuLmN1cnJlbnQoKSl9ZnVuY3Rpb24gaSgpe3MoITEpfX0pLFt0XSksW3Isc119KHQsKCgpPT5oJiZhKGgpKSk7KDAsaS51c2VFZmZlY3QpKCgoKT0+e2QobChlLHIsYykpfSksW2UsY10pO2NvbnN0IGc9KDAsaS51c2VNZW1vKSgoKCk9Pntjb25zdCB0PXt9LGU9W107Zm9yKGxldCB0PTA7dDxyLmxlbmd0aDt0Kyspe2NvbnN0IHM9clt0XSxuPXJbdC0xXT8uZ3JvdXBJZD8/cy5ncm91cElkLGk9clt0KzFdPy5ncm91cElkPz9zLmdyb3VwSWQ7aWYoZS5wdXNoKHtyb3c6W3MuZ3JvdXBJZF0scHJldkdyb3VwOm4sbmV4dEdyb3VwOml9KSwhdT8uW3MuZ3JvdXBJZF0pZm9yKGNvbnN0IHQgb2Ygcy5yb3dzKSh0LmNhbGxJZHx8dC5wdXRJZCkmJigiY2FsbHMiPT09YyYmdC5jYWxsSWQ/ZS5wdXNoKHtyb3c6W3QuY2FsbElkXSxwcmV2R3JvdXA6bixuZXh0R3JvdXA6aX0pOiJwdXRzIj09PWMmJnQucHV0SWQ/ZS5wdXNoKHtyb3c6W3QucHV0SWRdLHByZXZHcm91cDpuLG5leHRHcm91cDppfSk6Y3x8ZS5wdXNoKHtyb3c6W3QuY2FsbElkLHQucHV0SWRdLmZpbHRlcihCb29sZWFuKSxwcmV2R3JvdXA6bixuZXh0R3JvdXA6aX0pKX1mb3IobGV0IHM9MDtzPGUubGVuZ3RoO3MrKylmb3IobGV0IG49MDtuPGVbc10ucm93Lmxlbmd0aDtuKyspdFtlW3NdLnJvd1tuXV09ezQwOmVbcysxXT8ucm93W25dPz9lW3MrMV0/LnJvd1swXT8/ZVtzXS5yb3dbbl0sMzc6ZVtzXS5yb3dbbi0xXT8/ZVtzXS5yb3dbbl0sMzk6ZVtzXS5yb3dbbisxXT8/ZVtzXS5yb3dbbl0sMzg6ZVtzLTFdPy5yb3dbbl0/P2Vbcy0xXT8ucm93WzBdPz9lW3NdLnJvd1tuXSwzNTpyW3IubGVuZ3RoLTFdLmdyb3VwSWQsMzY6clswXS5ncm91cElkLDM0OmVbc10ubmV4dEdyb3VwLDMzOmVbc10ucHJldkdyb3VwfTtyZXR1cm4gdH0pLFtyLHUsY10pO3JldHVybntoYW5kbGVUYWJsZUtleURvd246KDAsaS51c2VDYWxsYmFjaykoKGU9PntpZihlLmRlZmF1bHRQcmV2ZW50ZWR8fCFofHwhdC5jdXJyZW50KXJldHVybjtjb25zdCByPWdbaF07aWYoIXIpcmV0dXJuO2NvbnN0IGk9KDAsbi5oYXNoRnJvbUV2ZW50KShlKTtzd2l0Y2goaSl7Y2FzZSA0MDpjYXNlIDM3OmNhc2UgMzk6Y2FzZSAzODpjYXNlIDM1OmNhc2UgMzY6Y2FzZSAzNDpjYXNlIDMzOntlLnByZXZlbnREZWZhdWx0KCk7Y29uc3QgdD1yWygwLHMuaXNSdGwpKCk/b1tpXTppXTtkKHQpLGEodCkscCghMCk7YnJlYWt9Y2FzZSAzMjpjYXNlIDEzOntlLnByZXZlbnREZWZhdWx0KCk7Y29uc3Qgcj10LmN1cnJlbnQucXVlcnlTZWxlY3RvcihgW2RhdGEtY2VsbC1pZD0iJHtofSJdYCk7ciBpbnN0YW5jZW9mIEhUTUxFbGVtZW50JiZyLmNsaWNrKCk7YnJlYWt9fX0pLFtoLGcsYSx0LHBdKSxuYXZpZ2F0ZWRJZDptP2g6bnVsbCx0YWJsZVRhYkluZGV4OjB9fWZ1bmN0aW9uIGwodCxlLHIpe2lmKHQpcmV0dXJuIHQ7Zm9yKGNvbnN0IHQgb2YgZSlmb3IoY29uc3QgZSBvZiB0LnJvd3Mpe2lmKCJwdXRzIiE9PXImJmUuY2FsbElkKXJldHVybiBlLmNhbGxJZDtpZigiY2FsbHMiIT09ciYmZS5wdXRJZClyZXR1cm4gZS5wdXRJZH1yZXR1cm4gbnVsbH19LDQ4ODc4Mih0LGUscil7InVzZSBzdHJpY3QiO3IuZChlLHtPcHRpb25zQ2hhaW5PcHRpb25Sb3c6KCk9Pmx9KTt2YXIgcz1yKDkxNDQ4Nyksbj1yLm4ocyksaT1yKDc3OTQ3NCksbz1yKDcwNjA1MCksYT1yKDMxMjQzKTtjb25zdCBsPWkubWVtbygoZnVuY3Rpb24odCl7CmNvbnN0e2NhbGxDb2xvcjplLGNhbGxOYXZpZ2F0ZWQ6cixjYWxsU2VsZWN0ZWQ6cyxjb2xzRGF0YTpsLHB1dENvbG9yOnUscHV0TmF2aWdhdGVkOmgscHV0U2VsZWN0ZWQ6ZCxyb3dEYXRhOm0sZmxhc2hIaWdobGlnaHQ6cCxvbkNlbGxDbGljazpnfT10LHtzaWRlQ29sczpmLGNlbnRyYWxDb2xzOnksc2lkZUNvbHNEYXRhOnYsY2VudHJhbENvbHNEYXRhOmIsc2hvd09ubHk6X309bCxDPSgwLGkudXNlUmVmKShudWxsKSxFPXQ9PntDLmN1cnJlbnQmJihDLmN1cnJlbnQuZGF0YXNldC5ob3ZlclBhcnQ9dC5jdXJyZW50VGFyZ2V0LmRhdGFzZXQuY2VsbFBhcnQpfSxTPXQ9PntDLmN1cnJlbnQmJmRlbGV0ZSBDLmN1cnJlbnQuZGF0YXNldC5ob3ZlclBhcnR9O3JldHVybiBpLmNyZWF0ZUVsZW1lbnQoInRyIix7cmVmOkMsY2xhc3NOYW1lOm4oKShhLnRyLHtbYS5mbGFzaEhpZ2hsaWdodF06cH0pLCJkYXRhLXN0cmlrZSI6bS5zdHJpa2V9LCgwLG8ucmVuZGVyU2hvd09ubHkpKF8se2NlbnRyYWw6KCk9PnkubWFwKCh0PT5jKHtrZXk6dCxhbGlnbjooMCxvLmdldENvbHVtbkRhdGFBbGlnbikoYlt0XS5hbGlnbiwiY2VudHJhbCIsXyksY2hpbGRyZW46bS5jZW50cmFsW3RdLGNvbG9yOiJjZW50ZXIiLGN1c3RvbUNvbnRlbnRSZW5kZXI6Ylt0XS5jdXN0b21Db250ZW50UmVuZGVyLHBhcnQ6ImNlbnRyYWwiLHJvd0lkOm0uc3RyaWtlLnRvU3RyaW5nKCl9KSkpLGNhbGxzOigpPT5mLm1hcCgodD0+Yyh7a2V5OnQsYWxpZ246KDAsby5nZXRDb2x1bW5EYXRhQWxpZ24pKHZbdF0uYWxpZ24sImNhbGwiLF8pLGNlbGxJZDptLmNhbGxJZCxjaGlsZHJlbjptLmNhbGxbdF0sY29sb3I6ZT8/bS5jYWxsUGFydENvbG9yLGN1c3RvbUNvbnRlbnRSZW5kZXI6dlt0XS5jdXN0b21Db250ZW50UmVuZGVyLG5hdmlnYXRlZDpyLG9uQ2xpY2s6Zyxvbk1vdXNlRW50ZXI6RSxvbk1vdXNlTGVhdmU6UyxwYXJ0OiJjYWxsIixyb3dJZDptLnN0cmlrZS50b1N0cmluZygpLHNlbGVjdGVkOnN9KSkpLHB1dHM6KCk9PmYubWFwKCh0PT5jKHtrZXk6dCxhbGlnbjooMCxvLmdldENvbHVtbkRhdGFBbGlnbikodlt0XS5hbGlnbiwicHV0IixfKSxjZWxsSWQ6bS5wdXRJZCxjaGlsZHJlbjptLnB1dFt0XSxjb2xvcjp1Pz9tLnB1dFBhcnRDb2xvcixjdXN0b21Db250ZW50UmVuZGVyOnZbdF0uY3VzdG9tQ29udGVudFJlbmRlcixuYXZpZ2F0ZWQ6aCxvbkNsaWNrOmcsb25Nb3VzZUVudGVyOkUsb25Nb3VzZUxlYXZlOlMscGFydDoicHV0Iixyb3dJZDptLnN0cmlrZS50b1N0cmluZygpLHNlbGVjdGVkOmR9KSkpfSkpfSkpO2Z1bmN0aW9uIGModCl7Y29uc3R7a2V5OmUsY3VzdG9tQ29udGVudFJlbmRlcjpyLG9uQ2xpY2s6cyxvbk1vdXNlRW50ZXI6byxvbk1vdXNlTGVhdmU6bCwuLi5jfT10LHthbGlnbjp1PSJyaWdodCIsY2VsbElkOmgsY2hpbGRyZW46ZCxjb2xvcjptPSJpbi10aGUtbW9uZXkiLG5hdmlnYXRlZDpwLHBhcnQ6Zyxyb3dJZDpmLHNlbGVjdGVkOnl9PWM7cmV0dXJuIGkuY3JlYXRlRWxlbWVudCgidGQiLHtrZXk6ZSwiZGF0YS1jZWxsLWlkIjpoLCJkYXRhLWNlbGwtcGFydCI6ZywiZGF0YS1yb3ctaWQiOmYsImRhdGEtc2VsZWN0ZWQiOnk/InRydWUiOnZvaWQgMCxvbkNsaWNrOnMsb25Nb3VzZUVudGVyOm8sb25Nb3VzZUxlYXZlOmwsY2xhc3NOYW1lOm4oKShhLnRkLHtbYS5hbGlnbkxlZnRdOiJsZWZ0Ij09PXUsW2EuYWxpZ25DZW50ZXJdOiJjZW50ZXIiPT09dSxbYS5zZWxlY3RlZF06eSxbYS5uYXZpZ2F0ZWRdOnAsW2EuY29sb3JJblRoZU1vbmV5XToiaW4tdGhlLW1vbmV5Ij09PW0sW2EuY2VudGVyXToiY2VudGVyIj09PW19KX0scj9yKGMpOmQpfX0sOTMxNzU3KHQsZSxyKXsidXNlIHN0cmljdCI7ci5kKGUse09wdGlvbnNDaGFpblNrZWxldG9uOigpPT5kfSk7dmFyIHM9cig2MTYzMTEpLG49cig0MDE4NjIpLGk9cig5MTQ0ODcpLG89ci5uKGkpLGE9cig3Nzk0NzQpLGw9cigxNDkyMDApLGM9cig0ODg3ODIpLHU9cig3MDYwNTApLGg9cig1MDIxNDQpO2Z1bmN0aW9uIGQodCl7Y29uc3R7Y2VudHJhbENvbHNDb3VudDplPTIsc2lkZUNvbHNDb3VudDpyPTEwLGNsYXNzTmFtZTppLHJvd3NDb3VudDpkPTUwfT10LHtjb2xzRGF0YTptLHJvd3NEYXRhOnAsdG90YWxDb2x1bW5zOmd9PSgwLGEudXNlTWVtbykoKCgpPT5mdW5jdGlvbih7Y2VudHJhbENvbHNDb3VudDp0LHNpZGVDb2xzQ291bnQ6ZSxyb3dzQ291bnQ6cn0pe2NvbnN0IHM9e2FsaWduOiJyaWdodCIsdGl0bGU6YS5jcmVhdGVFbGVtZW50KG4uU2tlbGV0b24uUmVjdGFuZ2xlLHtjbGFzc05hbWU6aC5za2VsZXRvblJlY3RhbmdsZX0pLGN1c3RvbUNvbnRlbnRSZW5kZXI6KCk9PmEuY3JlYXRlRWxlbWVudChuLlNrZWxldG9uLlJlY3RhbmdsZSx7Y2xhc3NOYW1lOmguc2tlbGV0b25SZWN0YW5nbGV9KX0saT1bLi4uQXJyYXkodCkua2V5cygpXS5tYXAoU3RyaW5nKSxvPVsuLi5BcnJheShlKS5rZXlzKCldLm1hcChTdHJpbmcpLGw9e2NlbnRyYWxDb2xzOmksY2VudHJhbENvbHNEYXRhOmkucmVkdWNlKCgodCxlKT0+KHsuLi50LFtlXTpzfSkpLHt9KSxzaWRlQ29sczpvLHNpZGVDb2xzRGF0YTpvLnJlZHVjZSgoKHQsZSk9Pih7Li4udCxbZV06c30pKSx7fSl9LGM9Wy4uLkFycmF5KHIpLmtleXMoKV0ubWFwKCh0PT4oe3R5cGU6Im9wdGlvbiIsc3RyaWtlOjAsdW5kZXJseWluZzoiIixjYWxsOnt9LGNhbGxJZDoiY2FsbCIrdCxwdXQ6e30scHV0SWQ6InB1dCIrdCxjZW50cmFsOnt9fSkpKSxkPSgwLHUuZ2V0VG90YWxDb2x1bW5zKShsKTtyZXR1cm57Y29sc0RhdGE6bCxyb3dzRGF0YTpjLHRvdGFsQ29sdW1uczpkfX0oe2NlbnRyYWxDb2xzQ291bnQ6ZSxzaWRlQ29sc0NvdW50OnIscm93c0NvdW50OmR9KSksW2UsZCxyXSksZj0oMCxhLnVzZVJlZikobnVsbCk7cmV0dXJuKDAscy51c2VJc29tb3JwaGljTGF5b3V0RWZmZWN0KSgoKCk9PntmLmN1cnJlbnQmJmYuY3VycmVudC5zY3JvbGxUbygoZi5jdXJyZW50LnNjcm9sbFdpZHRoLWYuY3VycmVudC5jbGllbnRXaWR0aCkvMiwwKX0pLFtdKSxhLmNyZWF0ZUVsZW1lbnQobi5Ta2VsZXRvbix7CmNsYXNzTmFtZTpvKCkoaSxoLnNrZWxldG9uQ29udGFpbmVyKX0sYS5jcmVhdGVFbGVtZW50KGwuT3B0aW9uc0NoYWluLHtjbGFzc05hbWU6aC5vcHRpb25zQ2hhaW4sY29sc0RhdGE6bSxzY3JvbGxDb250YWluZXJSZWY6Zn0sYS5jcmVhdGVFbGVtZW50KCJ0Ym9keSIsbnVsbCxhLmNyZWF0ZUVsZW1lbnQoInRyIixudWxsLGEuY3JlYXRlRWxlbWVudCgidGQiLHtjbGFzc05hbWU6aC5zZXJpZXNHcm91cENlbGwsY29sU3BhbjpnfSkpLHAubWFwKCgodCxlKT0+YS5jcmVhdGVFbGVtZW50KGMuT3B0aW9uc0NoYWluT3B0aW9uUm93LHtrZXk6ZSxjb2xzRGF0YTptLHJvd0RhdGE6dH0pKSkpKSl9fSw4MTAwNTkodCxlLHIpeyJ1c2Ugc3RyaWN0IjtyLmQoZSx7T3B0aW9uc0NoYWluU29ydGFibGVDZWxsOigpPT51fSk7dmFyIHM9cigyMTcyNzQpLG49cig5MTQ0ODcpLGk9ci5uKG4pLG89cig3Nzk0NzQpLGE9cig1OTk1NDYpLGw9cigzODYyNjEpLGM9cig1MzI3MjgpO2Z1bmN0aW9uIHUodCl7Y29uc3R7Y2hpbGRyZW46ZSxzb3J0QWN0aXZlOnIsc29ydERlc2M6bixvbkNsaWNrOnV9PXQ7cmV0dXJuIG8uY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOmkoKShjLmNlbGwse1tjLnNvcnRBY3RpdmVdOnJ9KSxvbkNsaWNrOnV9LG8uY3JlYXRlRWxlbWVudChzLkJsb2NrSWNvbix7Y2xhc3NOYW1lOmkoKShjLnNvcnRJY29uLG4mJmMuc29ydERlc2MpLGljb246cj9hOmx9KSxvLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6Yy50aXRsZX0sZSkpfX0sMTIzNjMxKHQsZSxyKXsidXNlIHN0cmljdCI7ci5kKGUse09wdGlvbnNDaGFpbldyYXBwZXI6KCk9PmF9KTt2YXIgcz1yKDkxNDQ4Nyksbj1yLm4ocyksaT1yKDc3OTQ3NCksbz1yKDYyNDY5Mik7ZnVuY3Rpb24gYSh0KXtjb25zdHtjaGlsZHJlbjplLGNsYXNzTmFtZTpyfT10O3JldHVybiBpLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpuKCkoby5yb290LHIpfSxlKX19LDE0OTIwMCh0LGUscil7InVzZSBzdHJpY3QiO3IuZChlLHtPcHRpb25zQ2hhaW46KCk9Pm19KTt2YXIgcz1yKDkxNDQ4Nyksbj1yLm4ocyksaT1yKDE3NzUpLG89cig3Nzk0NzQpLGE9cigxODUyNzEpLGw9cig3MDYwNTApLGM9cig1NTIxNTMpO2NvbnN0IHU9by5tZW1vKChmdW5jdGlvbih0KXtjb25zdHtjb2xzRGF0YTplLGNvbHNXaWR0aHM6cz17fX09dCx7c2lkZUNvbHM6bixjZW50cmFsQ29sczppLHNpZGVDb2xzRGF0YTp1LGNlbnRyYWxDb2xzRGF0YTpkLHNob3dPbmx5Om19PWU7cmV0dXJuIG8uY3JlYXRlRWxlbWVudCgidGhlYWQiLG51bGwsby5jcmVhdGVFbGVtZW50KCJ0ciIse2NsYXNzTmFtZTpjLmZpcnN0Um93SGVhZH0sKDAsbC5yZW5kZXJTaG93T25seSkobSx7Y2VudHJhbDooKT0+by5jcmVhdGVFbGVtZW50KCJ0aCIse2tleToiY2VudHJhbCIsImRhdGEtY29sdW1uIjoiY2VudHJhbCIsY29sU3BhbjppLmxlbmd0aH0pLGNhbGxzOigpPT5uLmxlbmd0aD4wJiZvLmNyZWF0ZUVsZW1lbnQoInRoIix7a2V5OiJjYWxscyIsImRhdGEtY29sdW1uIjoiY2FsbHMiLGNvbFNwYW46bi5sZW5ndGh9LG8uY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZTpjLmZpcnN0Um93VGV4dH0sYS50KG51bGwse2NvbnRleHQ6Im9wdGlvbnNfdHlwZSJ9LHIoNzM4NTUpKSkpLHB1dHM6KCk9Pm4ubGVuZ3RoPjAmJm8uY3JlYXRlRWxlbWVudCgidGgiLHtrZXk6InB1dHMiLCJkYXRhLWNvbHVtbiI6InB1dHMiLGNvbFNwYW46bi5sZW5ndGh9LG8uY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZTpjLmZpcnN0Um93VGV4dH0sYS50KG51bGwse2NvbnRleHQ6Im9wdGlvbnNfdHlwZSJ9LHIoOTE1Nzg3KSkpKX0pKSxvLmNyZWF0ZUVsZW1lbnQoInRyIix7Y2xhc3NOYW1lOmMuc2Vjb25kUm93SGVhZH0sKDAsbC5yZW5kZXJTaG93T25seSkobSx7Y2VudHJhbDooKT0+aS5tYXAoKHQ9Pm8uY3JlYXRlRWxlbWVudChoLHtrZXk6dCx3aWR0aDpzW3RdLGFsaWduOigwLGwuZ2V0Q29sdW1uRGF0YUFsaWduKShkW3RdLmFsaWduLCJjZW50cmFsIixtKSxzb3J0OmRbdF0uc29ydCx0b29sdGlwOmRbdF0udG9vbHRpcCxjZW50cmFsOiEwfSxkW3RdLnRpdGxlKSkpLGNhbGxzOigpPT5uLm1hcCgodD0+by5jcmVhdGVFbGVtZW50KGgse2tleTp0LHdpZHRoOnNbdF0sYWxpZ246KDAsbC5nZXRDb2x1bW5EYXRhQWxpZ24pKHVbdF0uYWxpZ24sImNhbGwiLG0pLHNvcnQ6dVt0XS5zb3J0LHRvb2x0aXA6dVt0XS50b29sdGlwfSx1W3RdLnRpdGxlKSkpLHB1dHM6KCk9Pm4ubWFwKCh0PT5vLmNyZWF0ZUVsZW1lbnQoaCx7a2V5OnQsd2lkdGg6c1t0XSxhbGlnbjooMCxsLmdldENvbHVtbkRhdGFBbGlnbikodVt0XS5hbGlnbiwicHV0IixtKSxzb3J0OnVbdF0uc29ydCx0b29sdGlwOnVbdF0udG9vbHRpcH0sdVt0XS50aXRsZSkpKX0pKSl9KSk7Y29uc3QgaD1vLm1lbW8oKGZ1bmN0aW9uKHQpe2NvbnN0e3dpZHRoOmUsYWxpZ246cixjZW50cmFsOnMsY2hpbGRyZW46aSxzb3J0OmEsdG9vbHRpcDpsfT10O3JldHVybiBvLmNyZWF0ZUVsZW1lbnQoInRoIix7ImFyaWEtc29ydCI6YSx0aXRsZTpsLGNsYXNzTmFtZTpuKCkoYy50aCx7W2MuY2VudHJhbF06cyxbYy5hbGlnbkxlZnRdOiJsZWZ0Ij09PXIsW2MuYWxpZ25DZW50ZXJdOiJjZW50ZXIiPT09cixbYy5hbGlnblJpZ2h0XToicmlnaHQiPT09ciwiYXBwbHktY29tbW9uLXRvb2x0aXAiOmx9KSxzdHlsZTp7Ii0tY29sdW1uLXdpZHRoIjplfX0saSl9KSk7dmFyIGQ9cig3MDI3MTApO2QudGFibGU7Y29uc3QgbT1vLm1lbW8oKGZ1bmN0aW9uKHQpe2NvbnN0e2NoaWxkcmVuOmUsY2xhc3NOYW1lOnIsY29sc0RhdGE6cyxjb2xzV2lkdGhzOmEsc2Nyb2xsQ29udGFpbmVyUmVmOmMsdGFibGVSZWY6aCx0YWJsZVRhYkluZGV4Om0sb25UYWJsZUtleURvd246cH09dCxnPSgwLGwuZ2V0VG90YWxDb2x1bW5zKShzKTtyZXR1cm4gby5jcmVhdGVFbGVtZW50KGkuT3ZlcmxheVNjcm9sbFdyYXBwZXIse2NsYXNzTmFtZTpuKCkocixkLmNvbnRhaW5lciksImRhdGEtcWEtaWQiOiJvcHRpb25zLWNoYWluIixzY3JvbGxDb250YWluZXJSZWY6YywKd3JhcHBlckNsYXNzTmFtZTpkLndyYXBwZXJ9LG8uY3JlYXRlRWxlbWVudCgidGFibGUiLHtjbGFzc05hbWU6ZC50YWJsZSxvbktleURvd246cCxyZWY6aCx0YWJJbmRleDptfSxvLmNyZWF0ZUVsZW1lbnQodSx7Y29sc0RhdGE6cyxjb2xzV2lkdGhzOmF9KSxlLG8uY3JlYXRlRWxlbWVudCgidGZvb3QiLG51bGwsby5jcmVhdGVFbGVtZW50KCJ0ciIsbnVsbCxvLmNyZWF0ZUVsZW1lbnQoInRkIix7Y29sU3BhbjpnLGNsYXNzTmFtZTpkLmZvb3RlckNlbGx9KSkpKSl9KSl9LDg2NjcxKHQsZSxyKXsidXNlIHN0cmljdCI7ci5kKGUse3Njcm9sbFRvUm93OigpPT5ufSk7dmFyIHM9cig5NjkxNjgpO2Z1bmN0aW9uIG4odCxlLHI9ImNlbnRlciIpe2lmKCFlKXJldHVybjtjb25zdCBuPWUucXVlcnlTZWxlY3RvcihgdGRbZGF0YS1jZWxsLWlkPSIke3R9Il1gKTtpZighKG4gaW5zdGFuY2VvZiBIVE1MVGFibGVDZWxsRWxlbWVudCkpcmV0dXJuO2NvbnN0IGk9bi5jbG9zZXN0KCJ0ciIpO2lmKCEoaSBpbnN0YW5jZW9mIEhUTUxUYWJsZVJvd0VsZW1lbnQpKXJldHVybjtjb25zdCBvPWUucXVlcnlTZWxlY3RvcigidGhlYWQiKTtpZighKG8gaW5zdGFuY2VvZiBIVE1MVGFibGVTZWN0aW9uRWxlbWVudCkpcmV0dXJuO2NvbnN0IGE9aS5vZmZzZXRUb3AtZS5vZmZzZXRIZWlnaHQvMitpLm9mZnNldEhlaWdodC8yLW8ub2Zmc2V0SGVpZ2h0LzI7ImNlbnRlciI9PT1yP2Uuc2Nyb2xsVG8oKCgwLHMuaXNSdGwpKCk/LTE6MSkqKGUuc2Nyb2xsV2lkdGgtZS5jbGllbnRXaWR0aCkvMixhKToibGVmdCI9PT1yJiZlLnNjcm9sbFRvKDAsYSl9fSw3MDYwNTAodCxlLHIpeyJ1c2Ugc3RyaWN0IjtyLmQoZSx7Y2hhaW5Gb3JtYXROdW1iZXI6KCk9Pm4sY2hhaW5Gb3JtYXRTcHJlYWQ6KCk9PmksZ2V0Q29sdW1uRGF0YUFsaWduOigpPT5sLGdldFRvdGFsQ29sdW1uczooKT0+YSxyZW5kZXJTaG93T25seTooKT0+b30pO3ZhciBzPXIoMjUyODY2KTtmdW5jdGlvbiBuKHQsZSl7aWYobnVsbD09dClyZXR1cm4gcy5FTVBUWV9WQUxVRTtjb25zdCByPWUuZm9ybWF0KHQpO3JldHVybiAwPT09TnVtYmVyKHIpPyIwIjpyfWZ1bmN0aW9uIGkodCxlKXtyZXR1cm4gMD09PXQ/cy5FTVBUWV9WQUxVRTpuKHQsZSl9ZnVuY3Rpb24gbyh0LGUpe2lmKCJjYWxscyI9PT10KXJldHVybltlLmNlbnRyYWwoKSxlLmNhbGxzKCldO2lmKCJwdXRzIj09PXQpcmV0dXJuW2UuY2VudHJhbCgpLGUucHV0cygpXTtjb25zdCByPWUuY2FsbHMoKTtyZXR1cm4gQXJyYXkuaXNBcnJheShyKSYmci5yZXZlcnNlKCksW3IsZS5jZW50cmFsKCksZS5wdXRzKCldfWZ1bmN0aW9uIGEodCl7cmV0dXJuKHQuc2hvd09ubHk/MToyKSp0LnNpZGVDb2xzLmxlbmd0aCt0LmNlbnRyYWxDb2xzLmxlbmd0aH1mdW5jdGlvbiBsKHQsZSxyKXtyZXR1cm4ic2lkZS1zdGFydCI9PT10PyJjYWxsIiE9PWV8fHI/ImxlZnQiOiJyaWdodCI6dH19LDM0OTM0MSh0LGUscil7InVzZSBzdHJpY3QiO3IuZChlLHtFbXB0eVN5bWJvbFF1b3RlczooKT0+dX0pO3ZhciBzPXIoOTE0NDg3KSxuPXIubihzKSxpPXIoMTg1MjcxKSxvPXIoNzc5NDc0KSxhPXIoNzY1OTE0KSxsPXIoNjI2MDgyKTtmdW5jdGlvbiBjKHQpe2NvbnN0e2NsYXNzTmFtZTplLHRpdGxlOnIsdGV4dDpzfT10O3JldHVybiBvLmNyZWF0ZUVsZW1lbnQoYS5FbXB0eVN0YXRlQmxvY2sse2NsYXNzTmFtZTpuKCkoZSxsLmJsb2NrKSxpY29uQ2xhc3M6bC5lbXB0eVN0YXRlSWNvbix0ZXh0OnMsdGl0bGU6cn0pfWZ1bmN0aW9uIHUodCl7Y29uc3R7Y2xhc3NOYW1lOmV9PXQ7cmV0dXJuIG8uY3JlYXRlRWxlbWVudChjLHtjbGFzc05hbWU6ZSx0ZXh0OmkudChudWxsLHZvaWQgMCxyKDk4NDIzNikpLHRpdGxlOmkudChudWxsLHtjb250ZXh0OiJlbXB0eSBzdGF0ZSB0aXRsZSJ9LHIoOTA0NzA0KSl9KX19LDc2NTU5KHQsZSxyKXsidXNlIHN0cmljdCI7ci5kKGUse1BpY2tlclNrZWxldG9uOigpPT5jfSk7dmFyIHM9cig0MDE4NjIpLG49cig5MTQ0ODcpLGk9ci5uKG4pLG89cig3Nzk0NzQpLGE9cig4ODY4MTApO2NvbnN0IGw9W3trZXk6MSxpdGVtczpbLi4uQXJyYXkoNikua2V5cygpXX0se2tleToyLGl0ZW1zOlsuLi5BcnJheSg4KS5rZXlzKCldfSx7a2V5OjMsaXRlbXM6Wy4uLkFycmF5KDUpLmtleXMoKV19LHtrZXk6NCxpdGVtczpbLi4uQXJyYXkoNCkua2V5cygpXX0se2tleTo1LGl0ZW1zOlsuLi5BcnJheSgzKS5rZXlzKCldfSx7a2V5OjYsaXRlbXM6Wy4uLkFycmF5KDEpLmtleXMoKV19XTtmdW5jdGlvbiBjKHQpe2NvbnN0e2NsYXNzTmFtZTplfT10O3JldHVybiBvLmNyZWF0ZUVsZW1lbnQocy5Ta2VsZXRvbix7Y2xhc3NOYW1lOmkoKShlLGEucm9vdCl9LG8uY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOmEuc2Nyb2xsQ29udGFpbmVyfSxsLm1hcCgodD0+by5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6YS5ncm91cCxrZXk6dC5rZXl9LG8uY3JlYXRlRWxlbWVudChzLlNrZWxldG9uLlJlY3RhbmdsZSx7Y2xhc3NOYW1lOmEuZ3JvdXBUaXRsZX0pLG8uY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOmEuaXRlbXN9LHQuaXRlbXMubWFwKCh0PT5vLmNyZWF0ZUVsZW1lbnQocy5Ta2VsZXRvbi5SZWN0YW5nbGUse2tleTp0LGNsYXNzTmFtZTphLml0ZW19KSkpKSkpKSkpfX0sMTM2NzUxKHQsZSxyKXsidXNlIHN0cmljdCI7ci5kKGUse1BpY2tlcjooKT0+X30pO3ZhciBzPXIoODU0ODIwKSxuPXIoNjE2MzExKSxpPXIoMjczMzEwKSxvPXIoMTY0MjQyKSxhPXIoOTE0NDg3KSxsPXIubihhKSxjPXIoNzc5NDc0KSx1PXIoMzI5NjY4KSxoPXIoOTY5MTY4KSxkPXIoOTA4MDM0KSxtPXIoMjk1NzQ0KSxwPXIoNzIxOTEwKSxnPXIoMTgyMzA4KSxmPXIoNTI0ODU4KTtmdW5jdGlvbiB5KHQpe2NvbnN0e2Rpc2FibGVkOmUsaXRlbTpyLHNlbGVjdGVkOnMsb25DbGljazpufT10LFtpLG9dPSgwLGcudXNlUm92aW5nVGFiaW5kZXhFbGVtZW50KShudWxsKTtyZXR1cm4gci5jdXN0b21Db250ZW50P2MuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOmYuaXRlbQp9LHIuY3VzdG9tQ29udGVudCk6Yy5jcmVhdGVFbGVtZW50KG0uU3F1YXJlQnV0dG9uLHsiYXJpYS1zZWxlY3RlZCI6cyxjbGFzc05hbWU6bCgpKCJhcHBseS1jb21tb24tdG9vbHRpcCIsZi5pdGVtKSxjb2xvcjpzPyJibGFjayI6ImdyYXkiLGRpc2FibGVkOmUsb25DbGljazpuLHJlZmVyZW5jZTppLHNpemU6InhzbWFsbCIsdGFiSW5kZXg6byx0aXRsZTpyLnRvb2x0aXB9LGMuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZTpmLml0ZW1Db250ZW50fSxyLnRpdGxlLHIuY291bnQmJmMuY3JlYXRlRWxlbWVudChwLkNvdW50ZXIse2NsYXNzTmFtZTpmLmNvdW50ZXIsY29sb3I6cz8ibmV1dHJhbCI6Im5ldXRyYWwtYm9sZCIsY291bnQ6ci5jb3VudCxzaXplOiJ4c21hbGwifSkpKX12YXIgdj1yKDIzNjE0NiksYj1yKDYwOTg3Nik7Y29uc3QgXz0oMCxjLm1lbW8pKChmdW5jdGlvbih0KXtjb25zdHtjbGFzc05hbWU6ZSxncm91cHM6cixtYXhTZWxlY3RlZEl0ZW1zOmE9NSxtb2RlOmg9Im11bHRpLXNlbGVjdCIsb25DaGFuZ2U6bSxvblJlbW92ZTpwLG9uU2VsZWN0OmcsdmFsdWVzOmY9W10sLi4uX309dCxbRSxTXT0oMCxkLnVzZVJvd3NOYXZpZ2F0aW9uKSgpLFtrLHddPSgwLGMudXNlU3RhdGUpKCExKSxbUixJXT0oMCxjLnVzZVN0YXRlKSghMSksVD0oMCxjLnVzZVJlZikoITApO3JldHVybigwLG4udXNlSXNvbW9ycGhpY0xheW91dEVmZmVjdCkoKCgpPT57VC5jdXJyZW50PSEwfSksW3JdKSwoMCxuLnVzZUlzb21vcnBoaWNMYXlvdXRFZmZlY3QpKCgoKT0+e2lmKEUuY3VycmVudCYmVC5jdXJyZW50JiZmLmxlbmd0aD4wKXtjb25zdCB0PUUuY3VycmVudC5xdWVyeVNlbGVjdG9yKCdbYXJpYS1zZWxlY3RlZD0idHJ1ZSJdJyk7dCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50JiYoKDAsdS5iZWNvbWVNYWluRWxlbWVudCkodCksRS5jdXJyZW50LnNjcm9sbFRvKHtsZWZ0OnQub2Zmc2V0TGVmdC1FLmN1cnJlbnQuY2xpZW50V2lkdGgvMit0LmNsaWVudFdpZHRoLzJ9KSksVC5jdXJyZW50PSExfX0pLFtFLGZdKSxjLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpsKCkoZSxiLnJvb3Qse1tiLnJpZ2h0RmFkZV06UixbYi5sZWZ0RmFkZV06a30pLC4uLl99LGMuY3JlYXRlRWxlbWVudChzLkxpZ2h0QnV0dG9uLHtkYXRhUWFJZDoicGlja2VyLWxlZnQiLGNsYXNzTmFtZTpiLmxlZnRBcnJvdyxzaXplOiJ4c21hbGwiLHZhcmlhbnQ6InNlY29uZGFyeSIsc3RhcnRTbG90OmMuY3JlYXRlRWxlbWVudChpLkljb24se2ljb246dn0pLG9uQ2xpY2s6KCk9PkMoInRvLWxlZnQiLEUuY3VycmVudCksdGFiSW5kZXg6az92b2lkIDA6LTF9KSxjLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpiLnNjcm9sbENvbnRhaW5lcixyZWY6RSxvbktleURvd246U30sYy5jcmVhdGVFbGVtZW50KG8uSW50ZXJzZWN0aW9uWm9uZSx7cG9zaXRpb246LTEsaW50ZXJzZWN0aW9uQ2I6ZnVuY3Rpb24odCl7dyghdC5pc0ludGVyc2VjdGluZyl9fSksci5tYXAoKHQ9PmMuY3JlYXRlRWxlbWVudCgiZGl2Iix7ImRhdGEtcWEtaWQiOiJwaWNrZXItZ3JvdXAiLGtleTp0LmlkLGNsYXNzTmFtZTpsKCkoYi5ncm91cCx7W2Iuc3ViZ3JvdXBdOnQuc3ViZ3JvdXAsW2Iub25lR3JvdXBdOjE9PT1yLmxlbmd0aH0pfSxjLmNyZWF0ZUVsZW1lbnQoImRpdiIseyJkYXRhLXFhLWlkIjoicGlja2VyLWdyb3VwLXRpdGxlIixjbGFzc05hbWU6Yi5ncm91cFRpdGxlfSxjLmNyZWF0ZUVsZW1lbnQoInNwYW4iLG51bGwsdC50aXRsZSkpLGMuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOmIuaXRlbXN9LHQuaXRlbXMubWFwKCh0PT5jLmNyZWF0ZUVsZW1lbnQoeSx7a2V5OnQudmFsdWUsZGlzYWJsZWQ6Zi5sZW5ndGg+PWEmJiFmLmluY2x1ZGVzKHQudmFsdWUpLGl0ZW06dCxvbkNsaWNrOmU9PigodCxlKT0+e2lmKGYuaW5jbHVkZXMoZSkpe2lmKGYubGVuZ3RoPD0xKXJldHVybjtwPy4oZSksInNpbmdsZS1zZWxlY3QiPT09aD9tPy4oW10pOiJtdWx0aS1zZWxlY3QiPT09aCYmbT8uKGYuZmlsdGVyKCh0PT5lIT09dCkpKX1lbHNlIGc/LihlKSx0LmN1cnJlbnRUYXJnZXQuc2Nyb2xsSW50b1ZpZXcoe2JlaGF2aW9yOiJzbW9vdGgiLGlubGluZToibmVhcmVzdCIsYmxvY2s6Im5lYXJlc3QifSksInNpbmdsZS1zZWxlY3QiPT09aD9tPy4oW2VdKToibXVsdGktc2VsZWN0Ij09PWgmJm0/LihbLi4uZixlXSl9KShlLHQudmFsdWUpLHNlbGVjdGVkOmYuaW5jbHVkZXModC52YWx1ZSl9KSkpKSkpKSxjLmNyZWF0ZUVsZW1lbnQoby5JbnRlcnNlY3Rpb25ab25lLHtwb3NpdGlvbjoxLGludGVyc2VjdGlvbkNiOmZ1bmN0aW9uKHQpe0koIXQuaXNJbnRlcnNlY3RpbmcpfX0pKSxjLmNyZWF0ZUVsZW1lbnQocy5MaWdodEJ1dHRvbix7ZGF0YVFhSWQ6InBpY2tlci1yaWdodCIsY2xhc3NOYW1lOmIucmlnaHRBcnJvdyxzaXplOiJ4c21hbGwiLHZhcmlhbnQ6InNlY29uZGFyeSIsc3RhcnRTbG90OmMuY3JlYXRlRWxlbWVudChpLkljb24se2ljb246dn0pLG9uQ2xpY2s6KCk9PkMoInRvLXJpZ2h0IixFLmN1cnJlbnQpLHRhYkluZGV4OlI/dm9pZCAwOi0xfSkpfSkpO2Z1bmN0aW9uIEModCxlKXtpZihudWxsPT09ZSlyZXR1cm47Y29uc3Qgcj0uNDUqZS5jbGllbnRXaWR0aDsidG8tbGVmdCI9PT10P2Uuc2Nyb2xsVG8oe2xlZnQ6KDAsaC5pc1J0bCkoKT9lLnNjcm9sbExlZnQrcjplLnNjcm9sbExlZnQtcixiZWhhdmlvcjoic21vb3RoIn0pOiJ0by1yaWdodCI9PT10JiZlLnNjcm9sbFRvKHtsZWZ0OigwLGguaXNSdGwpKCk/ZS5zY3JvbGxMZWZ0LXI6ZS5zY3JvbGxMZWZ0K3IsYmVoYXZpb3I6InNtb290aCJ9KX19LDU0NjU1OSh0LGUscil7InVzZSBzdHJpY3QiO3IuZChlLHt1c2VBY3Rpdml0eVRpbWVUcmFja2luZzooKT0+b30pO3ZhciBzPXIoNzc5NDc0KSxuPXIoNjE4ODY0KSxpPXIoNjA3MzQ1KTtmdW5jdGlvbiBvKHQpe2NvbnN0IGU9KDAsaS51c2VPcHRpb25zRXZlbnRUcmFja2VyKSgpOygwLHMudXNlRWZmZWN0KSgoKCk9Pntjb25zdCByPW5ldyBBYm9ydENvbnRyb2xsZXIscz1uZXcgbi5BY3Rpdml0eVRyYWNrZXI7cy5zdGFydFRyYWNraW5nKCkKO2NvbnN0IGk9KCk9PntlKHQscy5nZXRDdXJyZW50QWN0aXZpdHlUaW1lKCkudG9TdHJpbmcoKSl9O3JldHVybiBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJ2aXNpYmlsaXR5Y2hhbmdlIiwoKCk9PnsiaGlkZGVuIj09PWRvY3VtZW50LnZpc2liaWxpdHlTdGF0ZT8oaSgpLHMuc3RvcFRyYWNraW5nKCkpOnMuc3RhcnRUcmFja2luZygpfSkse3NpZ25hbDpyLnNpZ25hbH0pLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJiZWZvcmV1bmxvYWQiLCgoKT0+ci5hYm9ydCgpKSx7c2lnbmFsOnIuc2lnbmFsfSksci5zaWduYWwuYWRkRXZlbnRMaXN0ZW5lcigiYWJvcnQiLCgoKT0+e2koKSxzLnN0b3BUcmFja2luZygpfSkpLCgpPT57ci5hYm9ydCgpfX0pLFt0LGVdKX19LDM3MDY0Mih0LGUscil7InVzZSBzdHJpY3QiO3IuZChlLHt1c2VPcGVuVHJhY2tpbmc6KCk9Pml9KTt2YXIgcz1yKDc3OTQ3NCksbj1yKDYwNzM0NSk7ZnVuY3Rpb24gaSh0KXtjb25zdCBlPSgwLG4udXNlT3B0aW9uc0V2ZW50VHJhY2tlcikoKTsoMCxzLnVzZUVmZmVjdCkoKCgpPT57ZSh0KX0pLFt0LGVdKX19LDYwNzM0NSh0LGUscil7InVzZSBzdHJpY3QiO3IuZChlLHt1c2VPcHRpb25zRXZlbnRUcmFja2VyOigpPT5sfSk7dmFyIHM9cig3Nzk0NzQpLG49cigyMjEwNjEpLGk9cigzNjIyMzkpO2NvbnN0IG89KDAsbi5nZXRMb2dnZXIpKCJPcHRpb25zLlRyYWNrT3B0aW9uc0V2ZW50Iik7dmFyIGE9cig0ODAyODQpO2Z1bmN0aW9uIGwoKXtjb25zdCB0PSgwLGEudXNlT3B0aW9uc1NvdXJjZVRyYWNrRXZlbnQpKCk7cmV0dXJuKDAscy51c2VDYWxsYmFjaykoKChlLHIpPT57IWZ1bmN0aW9uKHQsZSxyKXsoMCxpLmdldFRyYWNrZXIpKCkudGhlbigocz0+e251bGwhPT1zJiZzLnRyYWNrT3B0aW9uc0V2ZW50KHtzb3VyY2U6dCxlbGVtZW50X2lkOmUsZGF0YV9pZDpyPz9udWxsfSl9KSkuY2F0Y2goKCgpPT57by5sb2dFcnJvcigiU25vd3Bsb3cgdHJhY2tlciBsb2FkIGVycm9yIil9KSl9KHQsZSxyKX0pLFt0XSl9fSw3OTExNDAodCxlLHIpeyJ1c2Ugc3RyaWN0IjtyLmQoZSx7dXNlVFZTZXR0aW5nczooKT0+aX0pO3ZhciBzPXIoNzc5NDc0KSxuPXIoOTMwNTY2KTtmdW5jdGlvbiBpKHQsZSl7Y29uc3Qgcj0oMCxzLnVzZVJlZikoZSk7ci5jdXJyZW50PWU7Y29uc3QgaT0oMCxzLnVzZUNhbGxiYWNrKSgoKCk9PnIuY3VycmVudChuLmdldEpTT04odCkpKSxbdF0pLFtvLGFdPSgwLHMudXNlU3RhdGUpKGkpOygwLHMudXNlRWZmZWN0KSgoKCk9PntmdW5jdGlvbiB0KCl7YShpKCkpfXJldHVybiB3aW5kb3cubG9naW5TdGF0ZUNoYW5nZS5zdWJzY3JpYmUobnVsbCx0KSwoKT0+d2luZG93LmxvZ2luU3RhdGVDaGFuZ2UudW5zdWJzY3JpYmUobnVsbCx0KX0pLFtpXSk7cmV0dXJuW28sKDAscy51c2VDYWxsYmFjaykoKGU9PnthKChyPT57Y29uc3Qgcz1lIGluc3RhbmNlb2YgRnVuY3Rpb24/ZShyKTplO3JldHVybiBuLnNldEpTT04odCxzKSxzfSkpfSksW3RdKV19aS5ib29sZWFuPWZ1bmN0aW9uKHQsZT0hMSl7cmV0dXJuIGkodCwodD0+ImJvb2xlYW4iPT10eXBlb2YgdD90OmUpKX0saS5udW1iZXI9ZnVuY3Rpb24odCxlPTApe3JldHVybiBpKHQsKHQ9PiJudW1iZXIiPT10eXBlb2YgdD90OmUpKX0saS5zdHJpbmc9ZnVuY3Rpb24odCxlPSIiKXtyZXR1cm4gaSh0LCh0PT4ic3RyaW5nIj09dHlwZW9mIHQ/dDplKSl9fSw3MDEyNTkodCxlLHIpeyJ1c2Ugc3RyaWN0IjtyLmQoZSx7Y3JlYXRlU2NhblBhcmFtTWFuYWdlcjooKT0+bn0pO3ZhciBzPXIoMTgwNjY3KTtmdW5jdGlvbiBuKHQpe2NvbnN0IGU9bmV3IHMuU2NhblBhcmFtc01hbmFnZXI7cmV0dXJuIGUuc2V0UGFyYW1zKHQpLGV9fSw4ODQ2MzQodCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgcztyLmQoZSx7RmlsdGVyT3BlcmF0aW9uOigpPT5zfSksZnVuY3Rpb24odCl7dC5MZXNzPSJsZXNzIix0LkdyZWF0ZXI9ImdyZWF0ZXIiLHQuRXF1YWw9ImVxdWFsIix0Lk5vdEVxdWFsPSJuZXF1YWwiLHQuRXF1YWxPckxlc3M9ImVsZXNzIix0LkVxdWFsT3JHcmVhdGVyPSJlZ3JlYXRlciIsdC5JblJhbmdlPSJpbl9yYW5nZSIsdC5Ob3RJblJhbmdlPSJub3RfaW5fcmFuZ2UiLHQuRW1wdHk9ImVtcHR5Iix0Lk5vdEVtcHR5PSJuZW1wdHkiLHQuQ3Jvc3Nlcz0iY3Jvc3NlcyIsdC5Dcm9zc2VzQWJvdmU9ImNyb3NzZXNfYWJvdmUiLHQuQ3Jvc3Nlc0JlbG93PSJjcm9zc2VzX2JlbG93Iix0Lk1hdGNoPSJtYXRjaCIsdC5Ob3RNYXRjaD0ibm1hdGNoIix0LlNpbXBsZU1hdGNoPSJzbWF0Y2giLHQuSGFzPSJoYXMiLHQuSGFzTm9uZU9mPSJoYXNfbm9uZV9vZiIsdC5BYm92ZVBlcmNlbnQ9ImFib3ZlJSIsdC5CZWxvd1BlcmNlbnQ9ImJlbG93JSIsdC5JblJhbmdlUGVyY2VudD0iaW5fcmFuZ2UlIix0LkluRGF5UmFuZ2U9ImluX2RheV9yYW5nZSIsdC5JbldlZWtSYW5nZT0iaW5fd2Vla19yYW5nZSIsdC5Jbk1vbnRoUmFuZ2U9ImluX21vbnRoX3JhbmdlIix0LkluWWVhclJhbmdlPSJpbl95ZWFyX3JhbmdlIn0oc3x8KHM9e30pKX0sODI3MDI5KHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIHMsbixpO3IuZChlLHtFVV9NQVJLRVRTOigpPT5vLEdsb2JhbE1hcmtldDooKT0+aSxOb25TdG9ja01hcmtldDooKT0+bixTdG9ja01hcmtldDooKT0+c30pLGZ1bmN0aW9uKHQpe3QuQW1lcmljYT0iYW1lcmljYSIsdC5BcmdlbnRpbmE9ImFyZ2VudGluYSIsdC5BdXN0cmFsaWE9ImF1c3RyYWxpYSIsdC5BdXN0cmlhPSJhdXN0cmlhIix0LkJhaHJhaW49ImJhaHJhaW4iLHQuQmFuZ2xhZGVzaD0iYmFuZ2xhZGVzaCIsdC5CZWxnaXVtPSJiZWxnaXVtIix0LkJ1bGdhcmlhPSJidWxnYXJpYSIsdC5CcmF6aWw9ImJyYXppbCIsdC5DYW5hZGE9ImNhbmFkYSIsdC5DaGlsZT0iY2hpbGUiLHQuQ2hpbmE9ImNoaW5hIix0LkNvbG9tYmlhPSJjb2xvbWJpYSIsdC5Dcm9hdGlhPSJjcm9hdGlhIix0LkN5cHJ1cz0iY3lwcnVzIix0LkN6ZWNoPSJjemVjaCIsdC5EZW5tYXJrPSJkZW5tYXJrIix0LkVneXB0PSJlZ3lwdCIsdC5Fc3RvbmlhPSJlc3RvbmlhIix0LkZpbmxhbmQ9ImZpbmxhbmQiLHQuRnJhbmNlPSJmcmFuY2UiLAp0Lkdlcm1hbnk9Imdlcm1hbnkiLHQuR3JlZWNlPSJncmVlY2UiLHQuSG9uZ0tvbmc9Imhvbmdrb25nIix0Lkh1bmdhcnk9Imh1bmdhcnkiLHQuSWNlbGFuZD0iaWNlbGFuZCIsdC5JbmRpYT0iaW5kaWEiLHQuSW5kb25lc2lhPSJpbmRvbmVzaWEiLHQuSXJlbGFuZD0iaXJlbGFuZCIsdC5Jc3JhZWw9ImlzcmFlbCIsdC5JdGFseT0iaXRhbHkiLHQuSmFwYW49ImphcGFuIix0LktlbnlhPSJrZW55YSIsdC5LdXdhaXQ9Imt1d2FpdCIsdC5MYXR2aWE9ImxhdHZpYSIsdC5MaXRodWFuaWE9ImxpdGh1YW5pYSIsdC5MdXhlbWJvdXJnPSJsdXhlbWJvdXJnIix0Lk1hbGF5c2lhPSJtYWxheXNpYSIsdC5NZXhpY289Im1leGljbyIsdC5Nb3JvY2NvPSJtb3JvY2NvIix0Lk5ldGhlcmxhbmRzPSJuZXRoZXJsYW5kcyIsdC5OZXdaZWFsYW5kPSJuZXd6ZWFsYW5kIix0Lk5pZ2VyaWE9Im5pZ2VyaWEiLHQuTm9yd2F5PSJub3J3YXkiLHQuUGFraXN0YW49InBha2lzdGFuIix0LlBlcnU9InBlcnUiLHQuUGhpbGlwcGluZXM9InBoaWxpcHBpbmVzIix0LlBvbGFuZD0icG9sYW5kIix0LlBvcnR1Z2FsPSJwb3J0dWdhbCIsdC5RYXRhcj0icWF0YXIiLHQuUm9tYW5pYT0icm9tYW5pYSIsdC5SdXNzaWE9InJ1c3NpYSIsdC5TYXVkaUFyYWJpYT0ia3NhIix0LlNlcmJpYT0ic2VyYmlhIix0LlNpbmdhcG9yZT0ic2luZ2Fwb3JlIix0LlNsb3Zha2lhPSJzbG92YWtpYSIsdC5TbG92ZW5pYT0ic2xvdmVuaWEiLHQuU291dGhBZnJpY2E9InJzYSIsdC5Tb3V0aEtvcmVhPSJrb3JlYSIsdC5TcGFpbj0ic3BhaW4iLHQuU3JpTGFua2E9InNyaWxhbmthIix0LlN3ZWRlbj0ic3dlZGVuIix0LlN3aXR6ZXJsYW5kPSJzd2l0emVybGFuZCIsdC5UYWl3YW49InRhaXdhbiIsdC5UaGFpbGFuZD0idGhhaWxhbmQiLHQuVHVuaXNpYT0idHVuaXNpYSIsdC5UdXJrZXk9InR1cmtleSIsdC5VQUU9InVhZSIsdC5VSz0idWsiLHQuVmVuZXp1ZWxhPSJ2ZW5lenVlbGEiLHQuVmlldG5hbT0idmlldG5hbSJ9KHN8fChzPXt9KSksZnVuY3Rpb24odCl7dC5Gb3JleD0iZm9yZXgiLHQuQ3J5cHRvPSJjcnlwdG8iLHQuQ29pbj0iY29pbiIsdC5DRkQ9ImNmZCIsdC5Cb25kcz0iYm9uZHMiLHQuQm9uZD0iYm9uZCIsdC5GdXR1cmVzPSJmdXR1cmVzIix0Lk9wdGlvbnM9Im9wdGlvbnMifShufHwobj17fSkpLGZ1bmN0aW9uKHQpe3QuR2xvYmFsPSJnbG9iYWwifShpfHwoaT17fSkpO3MuQmVsZ2l1bSxzLkN5cHJ1cyxzLkRlbm1hcmsscy5Fc3RvbmlhLHMuRmlubGFuZCxzLkZyYW5jZSxzLkdlcm1hbnkscy5HcmVlY2Uscy5IdW5nYXJ5LHMuSWNlbGFuZCxzLkl0YWx5LHMuTGF0dmlhLHMuTGl0aHVhbmlhLHMuTHV4ZW1ib3VyZyxzLk5ldGhlcmxhbmRzLHMuTm9yd2F5LHMuUG9sYW5kLHMuUG9ydHVnYWwscy5Sb21hbmlhLHMuUnVzc2lhLHMuU2VyYmlhLHMuU2xvdmFraWEscy5TcGFpbixzLlN3ZWRlbixzLlN3aXR6ZXJsYW5kLHMuVHVya2V5LHMuVUs7Y29uc3Qgbz1bcy5CZWxnaXVtLHMuQ3lwcnVzLHMuRGVubWFyayxzLkVzdG9uaWEscy5GaW5sYW5kLHMuRnJhbmNlLHMuR2VybWFueSxzLkdyZWVjZSxzLkh1bmdhcnkscy5JdGFseSxzLkxhdHZpYSxzLkxpdGh1YW5pYSxzLkx1eGVtYm91cmcscy5OZXRoZXJsYW5kcyxzLlBvbGFuZCxzLlBvcnR1Z2FsLHMuUm9tYW5pYSxzLlNsb3Zha2lhLHMuU3BhaW4scy5Td2VkZW5dfSw1OTU1MTcodCxlLHIpeyJ1c2Ugc3RyaWN0IjtyLmQoZSx7Z2V0U2NhbjJEYXRhOigpPT5kLGdldFNjYW5EYXRhOigpPT5ofSk7dmFyIHM9cigzODQwMTcpLG49cigyMTYwNzkpLGk9cigxNTg3NjMpLG89cigzMjYwNDgpLGE9cigxMzM4NzQpO2NvbnN0IGw9InVzZXIgZG9lcyBub3QgaGF2ZSByaWdodHMgdG8gd2F0Y2hsaXN0IjtjbGFzcyBjIGV4dGVuZHMgYS5FcnJvclJlc3BvbnNle2NvbnN0cnVjdG9yKHQpe3N1cGVyKHQpLHRoaXMubmFtZT0iV2F0Y2hsaXN0UmlnaHRzRXJyb3IiLHQuZXJyb3I/dGhpcy5tZXNzYWdlPWw6dGhpcy5tZXNzYWdlPSJ1bmtub3duIGVycm9yIn19ZnVuY3Rpb24gdSh0LGUscixhLHUsaD17QWNjZXB0OiJhcHBsaWNhdGlvbi9qc29uIn0pe2NvbnN0IGQ9ci5nZXRNYXJrZXRzKCksbT1uZXcgVVJMKCgwLG4uZ2V0QmFja2VuZFVybCkoZCxhKSt0KTt1JiZtLnNlYXJjaFBhcmFtcy5hcHBlbmQoImxhYmVsLXByb2R1Y3QiLHUpO2NvbnN0IHA9SlNPTi5zdHJpbmdpZnkoci5nZXRQYXJhbXMoKSk7cmV0dXJuKDAscy5mZXRjaCkobS50b1N0cmluZygpLHtzaWduYWw6ZSxtZXRob2Q6IlBPU1QiLGJvZHk6cCxjcmVkZW50aWFsczoiaW5jbHVkZSIsaGVhZGVyczpofSkudGhlbigodD0+e2lmKDQwMD09PXQuc3RhdHVzKXtjb25zdHtzdGF0dXM6ZSxzdGF0dXNUZXh0OnJ9PXQ7cmV0dXJuIHQuanNvbigpLnRoZW4oKHQ9Pntjb25zdCBzPXQuZXJyb3I7aWYodm9pZCAwIT09KG49cykmJm4uaW5jbHVkZXMobCkpdGhyb3cgbmV3IGMoe3N0YXR1czplLHN0YXR1c1RleHQ6cixlcnJvcjpzfSk7dmFyIG47dGhyb3cgbmV3IG8uQmFkUmVxdWVzdEVycm9yUmVzcG9uc2Uoe3N0YXR1czplLHN0YXR1c1RleHQ6cixlcnJvcjpzfSl9KSl9aWYodC5vaylyZXR1cm4gdC5qc29uKCkudGhlbigodD0+dCkpO3Rocm93IG5ldyBpLkh0dHBFcnJvclJlc3BvbnNlKHQpfSkpfWZ1bmN0aW9uIGgodCxlLHIscyl7cmV0dXJuIHUoInNjYW4iLHQsZSxyLHMpfWZ1bmN0aW9uIGQodCxlLHIscyl7cmV0dXJuIHUoInNjYW4yIix0LGUscixzKX19LDM5MjU3Myh0LGUscil7InVzZSBzdHJpY3QiO3IuZChlLHtDb2x1bW5zQ29sbGVjdGlvbjooKT0+c30pO2NsYXNzIHN7Y29uc3RydWN0b3IoKXt0aGlzLl9jb2x1bW5zPW5ldyBTZXR9c2V0U3RhdGUodCl7cmV0dXJuIHRoaXMuX2NvbHVtbnMuY2xlYXIoKSx0LmZvckVhY2godGhpcy5fY29sdW1ucy5hZGQsdGhpcy5fY29sdW1ucyksdGhpc31hZGRDb2x1bW4odCl7cmV0dXJuIHRoaXMuX2NvbHVtbnMuYWRkKHQpLHRoaXN9ZGVsZXRlQ29sdW1uKHQpe3JldHVybiB0aGlzLl9jb2x1bW5zLmRlbGV0ZSh0KSx0aGlzfWdldFN0YXRlKCl7cmV0dXJuWy4uLnRoaXMuX2NvbHVtbnNdfXJlc2V0U3RhdGUoKXsKcmV0dXJuIHRoaXMuX2NvbHVtbnMuY2xlYXIoKSx0aGlzfWlzRW1wdHkoKXtyZXR1cm4gMD09PXRoaXMuX2NvbHVtbnMuc2l6ZX19fSwyNDgyNih0LGUscil7InVzZSBzdHJpY3QiO3IuZChlLHtGaWx0ZXJDb2xsZWN0aW9uOigpPT5zfSk7Y2xhc3Mgc3tjb25zdHJ1Y3Rvcigpe3RoaXMuX2ZpbHRlcnM9bmV3IFNldH1pc0VtcHR5KCl7cmV0dXJuIDA9PT10aGlzLl9maWx0ZXJzLnNpemV9Y2xvbmUoKXtyZXR1cm4obmV3IHMpLnNldFN0YXRlKHRoaXMuZ2V0U3RhdGUoKSl9Z2V0U3RhdGUoKXtyZXR1cm5bLi4udGhpcy5fZmlsdGVyc119c2V0U3RhdGUodCl7cmV0dXJuIHRoaXMuX3Jld3JpdGVGaWx0ZXJTZXQodGhpcy5fZmlsdGVycyx0KSx0aGlzfXJlc2V0U3RhdGUoKXtyZXR1cm4gdGhpcy5fZmlsdGVycy5jbGVhcigpLHRoaXN9YWRkQ29uZGl0aW9uKHQpe2NvbnN0IGU9QXJyYXkuaXNBcnJheSh0KT90Olt0XTtmb3IoY29uc3QgdCBvZiBlKXRoaXMuX2ZpbHRlcnMuYWRkKHQpO3JldHVybiB0aGlzfWRlbGV0ZUNvbmRpdGlvbih0KXtyZXR1cm4gdGhpcy5fZmlsdGVycy5kZWxldGUodCksdGhpc31fcmV3cml0ZUZpbHRlclNldCh0LGUpe3QuY2xlYXIoKSxlLmZvckVhY2godC5hZGQsdCl9fX0sODEyNTgzKHQsZSxyKXsidXNlIHN0cmljdCI7ci5kKGUse0ZpbHRlcjI6KCk9PnN9KTtjbGFzcyBze2NvbnN0cnVjdG9yKCl7dGhpcy5fZmlsdGVyPXZvaWQgMH1yZXNldEZpbHRlcigpe3JldHVybiB0aGlzLl9maWx0ZXI9dm9pZCAwLHRoaXN9Z2V0U3RhdGUoKXtyZXR1cm4gdGhpcy5fZmlsdGVyP0pTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy5fZmlsdGVyKSk6dm9pZCAwfXNldFN0YXRlKHQpe3JldHVybiB0aGlzLl9maWx0ZXI9dCx0aGlzfWFkZEZpbHRlcjIodCl7Y29uc3QgZT10aGlzLmdldFN0YXRlKCk7aWYoIWUpcmV0dXJuIHRoaXMuc2V0U3RhdGUoe29wZXJhdG9yOnQub3BlcmF0b3Isb3BlcmFuZHM6dC5vcGVyYW5kc30pLHRoaXM7Y29uc3R7b3BlcmF0b3I6cixvcGVyYW5kczpzfT1lO3JldHVybiB0aGlzLnNldFN0YXRlKHtvcGVyYXRvcjpyLG9wZXJhbmRzOlsuLi5zLC4uLnQub3BlcmFuZHNdfSksdGhpc319fSwyMTgxNDUodCxlLHIpeyJ1c2Ugc3RyaWN0IjtyLmQoZSx7T3B0aW9uczooKT0+c30pO2NsYXNzIHN7Y29uc3RydWN0b3IoKXt0aGlzLl9vcHRpb25zPXt9fXNldFN0YXRlKHQpe3JldHVybiB0aGlzLl9vcHRpb25zPXQsdGhpc31yZXN0cmljdEVvZCgpe3JldHVybiB0aGlzLl9vcHRpb25zLmRhdGFfcmVzdHJpY3Rpb25zPSJQUkVWX0JBUiIsdGhpc31ub0VvZFJlc3RyaWN0aW9uKCl7cmV0dXJuIGRlbGV0ZSB0aGlzLl9vcHRpb25zLmRhdGFfcmVzdHJpY3Rpb25zLHRoaXN9c2V0TGFuZyh0KXtyZXR1cm4gdGhpcy5fb3B0aW9ucy5sYW5nPXQsdGhpc31yZXNldExhbmcoKXtyZXR1cm4gZGVsZXRlIHRoaXMuX29wdGlvbnMubGFuZyx0aGlzfWdldFN0YXRlKCl7cmV0dXJuey4uLnRoaXMuX29wdGlvbnN9fXJlc2V0T3B0aW9ucygpe3JldHVybiB0aGlzLl9vcHRpb25zPXt9LHRoaXN9aXNFbXB0eSgpe3JldHVybiAwPT09T2JqZWN0LnZhbHVlcyh0aGlzLl9vcHRpb25zKS5sZW5ndGh9fX0sMTk1MjIzKHQsZSxyKXsidXNlIHN0cmljdCI7ci5kKGUse1NjYW5QcmljZUNvbnZlcnNpb246KCk9PnN9KTtjbGFzcyBze2NvbnN0cnVjdG9yKCl7dGhpcy5fcHJpY2VDb252ZXJzaW9uPXt9fXNldFByaWNlQ29udmVyc2lvbih0KXtyZXR1cm4gdGhpcy5fcHJpY2VDb252ZXJzaW9uPXQsdGhpc31nZXRTdGF0ZSgpe3JldHVybnsuLi52b2lkIDAhPT10aGlzLl9wcmljZUNvbnZlcnNpb24udG9fc3ltYm9sP3t0b19zeW1ib2w6dGhpcy5fcHJpY2VDb252ZXJzaW9uLnRvX3N5bWJvbH06e30sLi4udm9pZCAwIT09dGhpcy5fcHJpY2VDb252ZXJzaW9uLnRvX2N1cnJlbmN5P3t0b19jdXJyZW5jeTp0aGlzLl9wcmljZUNvbnZlcnNpb24udG9fY3VycmVuY3l9Ont9LC4uLnZvaWQgMCE9PXRoaXMuX3ByaWNlQ29udmVyc2lvbi5kaXNhYmxlZD97ZGlzYWJsZWQ6dGhpcy5fcHJpY2VDb252ZXJzaW9uLmRpc2FibGVkfTp7fX19cmVzZXQoKXtyZXR1cm4gdGhpcy5fcHJpY2VDb252ZXJzaW9uPXt9LHRoaXN9aXNFbXB0eSgpe3JldHVybiAwPT09T2JqZWN0LnZhbHVlcyh0aGlzLl9wcmljZUNvbnZlcnNpb24pLmxlbmd0aH19fSw4MjQ1MDIodCxlLHIpeyJ1c2Ugc3RyaWN0IjtyLmQoZSx7UmFuZ2U6KCk9PnN9KTtjbGFzcyBze2NvbnN0cnVjdG9yKCl7dGhpcy5fcmFuZ2U9W119Z2V0U3RhdGUoKXtyZXR1cm5bLi4udGhpcy5fcmFuZ2VdfXNldFN0YXRlKHQpe3JldHVybiB0aGlzLl9yYW5nZT10LHRoaXN9cmVzZXRTdGF0ZSgpe3JldHVybiB0aGlzLl9yYW5nZT1bXSx0aGlzfWlzRW1wdHkoKXtyZXR1cm4gMD09PXRoaXMuX3JhbmdlLmxlbmd0aH19fSwxODA2NjcodCxlLHIpeyJ1c2Ugc3RyaWN0IjtyLmQoZSx7U2NhblBhcmFtc01hbmFnZXI6KCk9Pmh9KTt2YXIgcz1yKDI0ODI2KSxuPXIoMjE4MTQ1KSxpPXIoMTk1MjIzKSxvPXIoNzM4ODEpLGE9cigzOTI1NzMpLGw9cig4MjQ1MDIpLGM9cigzMjMwMjcpLHU9cig4MTI1ODMpO2NsYXNzIGh7Y29uc3RydWN0b3IoKXt0aGlzLl9maWx0ZXJDb2xsZWN0aW9uPW5ldyBzLkZpbHRlckNvbGxlY3Rpb24sdGhpcy5fZmlsdGVyQ29sbGVjdGlvbk9SPW5ldyBzLkZpbHRlckNvbGxlY3Rpb24sdGhpcy5fY29sdW1ucz1uZXcgYS5Db2x1bW5zQ29sbGVjdGlvbix0aGlzLl9pZ25vcmVVbmtub3duRmllbGRzPSExLHRoaXMuX29wdGlvbnM9bmV3IG4uT3B0aW9ucyx0aGlzLl9wcmljZUNvbnZlcnNpb249bmV3IGkuU2NhblByaWNlQ29udmVyc2lvbix0aGlzLl9yYW5nZT1uZXcgbC5SYW5nZSx0aGlzLl9zb3J0PW5ldyBjLlNvcnQsdGhpcy5fc3ltYm9scz1uZXcgby5TeW1ib2xzLHRoaXMuX21hcmtldHM9W119Z2V0UGFyYW1zKCl7Y29uc3QgdD10aGlzLmdldEZpbHRlcjIoKSxlPXQ/e2ZpbHRlcjI6dH06dm9pZCAwLHI9dGhpcy5nZXRQcmVzZXQoKSxzPXI/e3ByZXNldDpyfTp2b2lkIDA7cmV0dXJuewpjb2x1bW5zOnRoaXMuaXNDb2x1bW5zRW1wdHkoKT92b2lkIDA6dGhpcy5nZXRDb2x1bW5zKCksZmlsdGVyOnRoaXMuaXNGaWx0ZXJzRW1wdHkoKT92b2lkIDA6dGhpcy5nZXRGaWx0ZXJzKCksZmlsdGVyT1I6dGhpcy5pc0ZpbHRlck9yRW1wdHkoKT92b2lkIDA6dGhpcy5nZXRGaWx0ZXJPUigpLGlnbm9yZV91bmtub3duX2ZpZWxkczp0aGlzLmdldElnbm9yZVVua25vd25GaWVsZHMoKSxvcHRpb25zOnRoaXMuaXNPcHRpb25zRW1wdHkoKT92b2lkIDA6dGhpcy5nZXRPcHRpb25zKCkscHJpY2VfY29udmVyc2lvbjp0aGlzLmlzUHJpY2VDb252ZXJzaW9uc0VtcHR5KCk/dm9pZCAwOnRoaXMuZ2V0UHJpY2VDb252ZXJzaW9uKCkscmFuZ2U6dGhpcy5pc1JhbmdlRW1wdHkoKT92b2lkIDA6dGhpcy5nZXRSYW5nZSgpLHNvcnQ6dGhpcy5pc1NvcnRFbXB0eSgpP3ZvaWQgMDp0aGlzLmdldFNvcnQoKSxzeW1ib2xzOnRoaXMuaXNTeW1ib2xzRW1wdHkoKT92b2lkIDA6dGhpcy5nZXRTeW1ib2xzKCksbWFya2V0czp0aGlzLmlzTWFya2V0c0VtcHR5KCk/dm9pZCAwOnRoaXMuZ2V0TWFya2V0cygpLGluZGV4X2ZpbHRlcnM6dGhpcy5nZXRJbmRleEZpbHRlcnMoKSwuLi5zLC4uLmV9fWNsb25lKCl7Y29uc3QgdD1uZXcgaCxlPXRoaXMuZ2V0UGFyYW1zKCk7cmV0dXJuIHQuc2V0UGFyYW1zKGUpLHR9Z2V0RmlsdGVyc0NvbGxlY3Rpb25DbG9uZSgpe3JldHVybiB0aGlzLl9maWx0ZXJDb2xsZWN0aW9uLmNsb25lKCl9c2V0UGFyYW1zKHQpe2NvbnN0IGU9e2NvbHVtbnM6KCk9PnRoaXMuc2V0Q29sdW1ucyh0LmNvbHVtbnMpLGZpbHRlcjI6KCk9PnRoaXMuc2V0RmlsdGVyMih0LmZpbHRlcjIpLGZpbHRlcjooKT0+dGhpcy5zZXRGaWx0ZXJzKHQuZmlsdGVyKSxmaWx0ZXJPUjooKT0+dGhpcy5zZXRGaWx0ZXJPUih0LmZpbHRlck9SKSxpZ25vcmVfdW5rbm93bl9maWVsZHM6KCk9PnQuaWdub3JlX3Vua25vd25fZmllbGRzP3RoaXMuaWdub3JlVW5rbm93bkZpZWxkcygpOnRoaXMuZG9Ob3RJZ25vcmVVbmtub3duRmllbGRzKCksbWFya2V0czooKT0+dGhpcy5zZXRNYXJrZXRzKHQubWFya2V0cyksb3B0aW9uczooKT0+dGhpcy5zZXRPcHRpb25zKHQub3B0aW9ucykscHJpY2VfY29udmVyc2lvbjooKT0+dGhpcy5zZXRQcmljZUNvbnZlcnNpb24odC5wcmljZV9jb252ZXJzaW9uKSxyYW5nZTooKT0+dGhpcy5zZXRSYW5nZSh0LnJhbmdlKSxzb3J0OigpPT50aGlzLnNldFNvcnQodC5zb3J0KSxzeW1ib2xzOigpPT50aGlzLnNldFN5bWJvbHModC5zeW1ib2xzKSxwcmVzZXQ6KCk9PnRoaXMuc2V0UHJlc2V0KHQucHJlc2V0KSxpbmRleF9maWx0ZXJzOigpPT50aGlzLnNldEluZGV4RmlsdGVycyh0LmluZGV4X2ZpbHRlcnMpfTtmb3IoY29uc3RbcixzXW9mIE9iamVjdC5lbnRyaWVzKGUpKXQuaGFzT3duUHJvcGVydHkocikmJnZvaWQgMCE9PXRbcl0mJnMoKTtyZXR1cm4gdGhpc31zZXRGaWx0ZXJzKHQpe3JldHVybiB0aGlzLl9maWx0ZXJDb2xsZWN0aW9uLnNldFN0YXRlKHQpLHRoaXN9YWRkRmlsdGVyKHQpe3JldHVybiB0aGlzLl9maWx0ZXJDb2xsZWN0aW9uLmFkZENvbmRpdGlvbih0KSx0aGlzfWdldEZpbHRlcnMoKXtyZXR1cm4gdGhpcy5fZmlsdGVyQ29sbGVjdGlvbi5nZXRTdGF0ZSgpfWRlbGV0ZUZpbHRlcih0KXtyZXR1cm4gdGhpcy5fZmlsdGVyQ29sbGVjdGlvbi5kZWxldGVDb25kaXRpb24odCksdGhpc31yZXNldEZpbHRlcnMoKXtyZXR1cm4gdGhpcy5fZmlsdGVyQ29sbGVjdGlvbi5yZXNldFN0YXRlKCksdGhpc31pc0ZpbHRlcnNFbXB0eSgpe3JldHVybiB0aGlzLl9maWx0ZXJDb2xsZWN0aW9uLmlzRW1wdHkoKX1zZXRGaWx0ZXJPUih0KXtyZXR1cm4gdGhpcy5fZmlsdGVyQ29sbGVjdGlvbk9SLnNldFN0YXRlKHQpLHRoaXN9YWRkRmlsdGVyT1IodCl7cmV0dXJuIHRoaXMuX2ZpbHRlckNvbGxlY3Rpb25PUi5hZGRDb25kaXRpb24odCksdGhpc31nZXRGaWx0ZXJPUigpe3JldHVybiB0aGlzLl9maWx0ZXJDb2xsZWN0aW9uT1IuZ2V0U3RhdGUoKX1kZWxldGVGaWx0ZXJPUih0KXtyZXR1cm4gdGhpcy5fZmlsdGVyQ29sbGVjdGlvbk9SLmRlbGV0ZUNvbmRpdGlvbih0KSx0aGlzfXJlc2V0RmlsdGVyT1IoKXtyZXR1cm4gdGhpcy5fZmlsdGVyQ29sbGVjdGlvbk9SLnJlc2V0U3RhdGUoKSx0aGlzfWlzRmlsdGVyT3JFbXB0eSgpe3JldHVybiB0aGlzLl9maWx0ZXJDb2xsZWN0aW9uT1IuaXNFbXB0eSgpfXNldEZpbHRlcjIodCl7cmV0dXJuIHRoaXMuX2ZpbHRlcjJ8fCh0aGlzLl9maWx0ZXIyPW5ldyB1LkZpbHRlcjIpLHRoaXMuX2ZpbHRlcjIuc2V0U3RhdGUodCksdGhpc31hZGRGaWx0ZXIyKHQpe3JldHVybiB0aGlzLl9maWx0ZXIyfHwodGhpcy5fZmlsdGVyMj1uZXcgdS5GaWx0ZXIyKSx0aGlzLl9maWx0ZXIyLmFkZEZpbHRlcjIodCksdGhpc31nZXRGaWx0ZXIyKCl7aWYodGhpcy5fZmlsdGVyMilyZXR1cm4gdGhpcy5fZmlsdGVyMi5nZXRTdGF0ZSgpfXJlc2V0RmlsdGVyMigpe3JldHVybiB0aGlzLl9maWx0ZXIyJiZ0aGlzLl9maWx0ZXIyLnJlc2V0RmlsdGVyKCksdGhpc31nZXRPcHRpb25zKCl7cmV0dXJuIHRoaXMuX29wdGlvbnMuZ2V0U3RhdGUoKX1zZXRPcHRpb25zKHQpe3JldHVybiB0aGlzLl9vcHRpb25zLnNldFN0YXRlKHQpLHRoaXN9cmVzZXRPcHRpb25zKCl7cmV0dXJuIHRoaXMuX29wdGlvbnMucmVzZXRPcHRpb25zKCksdGhpc31yZXN0cmljdEVvZCgpe3JldHVybiB0aGlzLl9vcHRpb25zLnJlc3RyaWN0RW9kKCksdGhpc31ub0VvZFJlc3RyaWN0aW9uKCl7cmV0dXJuIHRoaXMuX29wdGlvbnMubm9Fb2RSZXN0cmljdGlvbigpLHRoaXN9c2V0T3B0aW9uc0xhbmcodCl7cmV0dXJuIHRoaXMuX29wdGlvbnMuc2V0TGFuZyh0KSx0aGlzfXJlc2V0T3B0aW9uc0xhbmcoKXtyZXR1cm4gdGhpcy5fb3B0aW9ucy5yZXNldExhbmcoKSx0aGlzfWlzT3B0aW9uc0VtcHR5KCl7cmV0dXJuIHRoaXMuX29wdGlvbnMuaXNFbXB0eSgpfWdldFN5bWJvbHMoKXtyZXR1cm4gdGhpcy5fc3ltYm9scy5nZXRTdGF0ZSgpfXNldFN5bWJvbHModCl7cmV0dXJuIHRoaXMuX3N5bWJvbHMuc2V0U3RhdGUodCksdGhpc30KcmVzZXRTeW1ib2xzKCl7cmV0dXJuIHRoaXMuX3N5bWJvbHMucmVzZXRTdGF0ZSgpLHRoaXN9c2V0VGlja2Vycyh0KXtyZXR1cm4gdGhpcy5fc3ltYm9scy5zZXRUaWNrZXJzKHQpLHRoaXN9cmVzZXRUaWNrZXJzKCl7cmV0dXJuIHRoaXMuX3N5bWJvbHMucmVzZXRUaWNrZXJzKCksdGhpc31zZXRTeW1ib2xzZXQodCl7cmV0dXJuIHRoaXMuX3N5bWJvbHMuc2V0U3ltYm9sc2V0KHQpLHRoaXN9cmVzZXRTeW1ib2xzZXQoKXtyZXR1cm4gdGhpcy5fc3ltYm9scy5yZXNldFN5bWJvbHNldCgpLHRoaXN9c2V0VHlwZXModCl7cmV0dXJuIHRoaXMuX3N5bWJvbHMuc2V0VHlwZXModCksdGhpc31yZXNldFR5cGVzKCl7cmV0dXJuIHRoaXMuX3N5bWJvbHMucmVzZXRUeXBlcygpLHRoaXN9c2V0R3JvdXBzKHQpe3JldHVybiB0aGlzLl9zeW1ib2xzLnNldEdyb3Vwcyh0KSx0aGlzfWlzU3ltYm9sc0VtcHR5KCl7cmV0dXJuIHRoaXMuX3N5bWJvbHMuaXNFbXB0eSgpfWdldENvbHVtbnMoKXtyZXR1cm4gdGhpcy5fY29sdW1ucy5nZXRTdGF0ZSgpfWFkZENvbHVtbnModCl7Y29uc3QgZT1BcnJheS5pc0FycmF5KHQpP3Q6W3RdO2Zvcihjb25zdCB0IG9mIGUpdGhpcy5fY29sdW1ucy5hZGRDb2x1bW4odCk7cmV0dXJuIHRoaXN9c2V0Q29sdW1ucyh0KXtyZXR1cm4gdGhpcy5fY29sdW1ucy5zZXRTdGF0ZSh0KSx0aGlzfXJlc2V0Q29sdW1ucygpe3JldHVybiB0aGlzLl9jb2x1bW5zLnJlc2V0U3RhdGUoKSx0aGlzfWRlbGV0ZUNvbHVtbih0KXtyZXR1cm4gdGhpcy5fY29sdW1ucy5kZWxldGVDb2x1bW4odCksdGhpc31pc0NvbHVtbnNFbXB0eSgpe3JldHVybiB0aGlzLl9jb2x1bW5zLmlzRW1wdHkoKX1zZXRSYW5nZSh0KXtyZXR1cm4gdGhpcy5fcmFuZ2Uuc2V0U3RhdGUodCksdGhpc31nZXRSYW5nZSgpe3JldHVybiB0aGlzLl9yYW5nZS5nZXRTdGF0ZSgpfXJlc2V0UmFuZ2UoKXtyZXR1cm4gdGhpcy5fcmFuZ2UucmVzZXRTdGF0ZSgpLHRoaXN9aXNSYW5nZUVtcHR5KCl7cmV0dXJuIHRoaXMuX3JhbmdlLmlzRW1wdHkoKX1zZXRTb3J0KHQpe3JldHVybiB0aGlzLl9zb3J0LnNldFN0YXRlKHQpLHRoaXN9Z2V0U29ydCgpe3JldHVybiB0aGlzLl9zb3J0LmdldFN0YXRlKCl9cmVzZXRTb3J0KCl7cmV0dXJuIHRoaXMuX3NvcnQucmVzZXRTdGF0ZSgpLHRoaXN9c29ydEFzYygpe3JldHVybiB0aGlzLl9zb3J0LnNvcnRBc2MoKSx0aGlzfXNvcnREZXNjKCl7cmV0dXJuIHRoaXMuX3NvcnQuc29ydERlc2MoKSx0aGlzfXNvcnRCeSh0KXtyZXR1cm4gdGhpcy5fc29ydC5zb3J0QnkodCksdGhpc31pc1NvcnRFbXB0eSgpe3JldHVybiB0aGlzLl9zb3J0LmlzRW1wdHkoKX1zZXRQcmljZUNvbnZlcnNpb24odCl7cmV0dXJuIHRoaXMuX3ByaWNlQ29udmVyc2lvbi5zZXRQcmljZUNvbnZlcnNpb24odCksdGhpc31nZXRQcmljZUNvbnZlcnNpb24oKXtyZXR1cm4gdGhpcy5fcHJpY2VDb252ZXJzaW9uLmdldFN0YXRlKCl9cmVzZXRQcmljZUNvbnZlcnNpb24oKXtyZXR1cm4gdGhpcy5fcHJpY2VDb252ZXJzaW9uLnJlc2V0KCksdGhpc31pc1ByaWNlQ29udmVyc2lvbnNFbXB0eSgpe3JldHVybiB0aGlzLl9wcmljZUNvbnZlcnNpb24uaXNFbXB0eSgpfXNldFByZXNldCh0KXtyZXR1cm4gdGhpcy5fcHJlc2V0PXQsdGhpc31nZXRQcmVzZXQoKXtyZXR1cm4gdGhpcy5fcHJlc2V0fXJlc2V0UHJlc2V0KCl7cmV0dXJuIGRlbGV0ZSB0aGlzLl9wcmVzZXQsdGhpc31zZXRJbmRleEZpbHRlcnModCl7cmV0dXJuIHRoaXMuX2luZGV4RmlsdGVycz10LHRoaXN9Z2V0SW5kZXhGaWx0ZXJzKCl7cmV0dXJuIHRoaXMuX2luZGV4RmlsdGVyc31yZXNldEluZGV4RmlsdGVycygpe3JldHVybiBkZWxldGUgdGhpcy5faW5kZXhGaWx0ZXJzLHRoaXN9ZG9Ob3RJZ25vcmVVbmtub3duRmllbGRzKCl7cmV0dXJuIHRoaXMuX2lnbm9yZVVua25vd25GaWVsZHM9ITEsdGhpc31pZ25vcmVVbmtub3duRmllbGRzKCl7cmV0dXJuIHRoaXMuX2lnbm9yZVVua25vd25GaWVsZHM9ITAsdGhpc31nZXRJZ25vcmVVbmtub3duRmllbGRzKCl7cmV0dXJuIHRoaXMuX2lnbm9yZVVua25vd25GaWVsZHN9c2V0TWFya2V0cyh0KXtyZXR1cm4gdGhpcy5fbWFya2V0cz1bLi4udF0sdGhpc31nZXRNYXJrZXRzKCl7cmV0dXJuIHRoaXMuX21hcmtldHN9aXNNYXJrZXRzRW1wdHkoKXtyZXR1cm4gMD09PXRoaXMuX21hcmtldHMubGVuZ3RofWdldFdhdGNobGlzdCgpe3JldHVybiB0aGlzLmdldFN5bWJvbHMoKS53YXRjaGxpc3R9c2V0V2F0Y2hsaXN0KHQpe3JldHVybiB0aGlzLnNldFN5bWJvbHMoey4uLnRoaXMuZ2V0U3ltYm9scygpLHdhdGNobGlzdDp0fSksdGhpc31yZXNldFdhdGNobGlzdCgpe3JldHVybiB0aGlzLl9zeW1ib2xzLnJlc2V0V2F0Y2hsaXN0KCksdGhpc31yZXNldFBhcmFtcygpe3JldHVybiB0aGlzLl9maWx0ZXIyPXZvaWQgMCx0aGlzLmRvTm90SWdub3JlVW5rbm93bkZpZWxkcygpLHRoaXMucmVzZXRDb2x1bW5zKCksdGhpcy5yZXNldEZpbHRlcnMoKSx0aGlzLnJlc2V0RmlsdGVyT1IoKSx0aGlzLnJlc2V0T3B0aW9ucygpLHRoaXMucmVzZXRQcmljZUNvbnZlcnNpb24oKSx0aGlzLnJlc2V0UmFuZ2UoKSx0aGlzLnJlc2V0U3ltYm9scygpLHRoaXMucmVzZXRJbmRleEZpbHRlcnMoKSx0aGlzLnJlc2V0V2F0Y2hsaXN0KCksdGhpc319fSwzMjMwMjcodCxlLHIpeyJ1c2Ugc3RyaWN0IjtyLmQoZSx7U29ydDooKT0+c30pO2NsYXNzIHN7Y29uc3RydWN0b3IoKXt0aGlzLl9zb3J0PXt9fXNldFN0YXRlKHQpe3JldHVybiB0aGlzLl9zb3J0PXQsdGhpc31nZXRTdGF0ZSgpe3JldHVybnsuLi50aGlzLl9zb3J0fX1zb3J0QnkodCl7cmV0dXJuIHRoaXMuX3NvcnQuc29ydEJ5PXQsdGhpcy5fc29ydC5zb3J0T3JkZXJ8fHRoaXMuc29ydERlc2MoKSx0aGlzfXNvcnRBc2MoKXtyZXR1cm4gdGhpcy5fc29ydC5zb3J0QnkmJih0aGlzLl9zb3J0LnNvcnRPcmRlcj0iYXNjIiksdGhpc31zb3J0RGVzYygpe3JldHVybiB0aGlzLl9zb3J0LnNvcnRCeSYmKHRoaXMuX3NvcnQuc29ydE9yZGVyPSJkZXNjIiksdGhpc31yZXNldFN0YXRlKCl7cmV0dXJuIHRoaXMuX3NvcnQ9e30sdGhpc30KaXNFbXB0eSgpe3JldHVybiAwPT09T2JqZWN0LnZhbHVlcyh0aGlzLl9zb3J0KS5sZW5ndGh9fX0sNzM4ODEodCxlLHIpeyJ1c2Ugc3RyaWN0IjtyLmQoZSx7U3ltYm9sczooKT0+c30pO2NsYXNzIHN7Y29uc3RydWN0b3IoKXt0aGlzLl9zeW1ib2xzPXt9fXNldFN0YXRlKHQpe3JldHVybiB0aGlzLl9zeW1ib2xzPXQsdGhpc31nZXRTdGF0ZSgpe2NvbnN0IHQ9dGhpcy5fc3ltYm9scy5xdWVyeT97cXVlcnk6ey4uLnRoaXMuX3N5bWJvbHMucXVlcnl9fTp7fSxlPXRoaXMuX3N5bWJvbHMudGlja2Vycz97dGlja2VyczpbLi4udGhpcy5fc3ltYm9scy50aWNrZXJzXX06W10scj10aGlzLl9zeW1ib2xzLmdyb3Vwcz97Z3JvdXBzOnRoaXMuX3N5bWJvbHMuZ3JvdXBzLm1hcCgodD0+KHt0eXBlOnQudHlwZSx2YWx1ZXM6Wy4uLnQudmFsdWVzXX0pKSl9Ont9LHM9dGhpcy5fc3ltYm9scy5zeW1ib2xzZXQ/e3N5bWJvbHNldDpbLi4udGhpcy5fc3ltYm9scy5zeW1ib2xzZXRdfTpbXSxuPXRoaXMuX3N5bWJvbHMud2F0Y2hsaXN0P3t3YXRjaGxpc3Q6e2lkOnRoaXMuX3N5bWJvbHMud2F0Y2hsaXN0LmlkfX06e307cmV0dXJuey4uLnQsLi4uZSwuLi5yLC4uLnMsLi4udm9pZCAwPT09dGhpcy5fc3ltYm9scy5ibGFja19saXN0X3N5bWJvbHM/e306e2JsYWNrX2xpc3Rfc3ltYm9sczp0aGlzLl9zeW1ib2xzLmJsYWNrX2xpc3Rfc3ltYm9sc30sLi4ubn19c2V0VGlja2Vycyh0KXtyZXR1cm4gdGhpcy5fc3ltYm9scy50aWNrZXJzPXQsdGhpc31yZXNldFRpY2tlcnMoKXtyZXR1cm4gdGhpcy5fc3ltYm9scy50aWNrZXJzPVtdLHRoaXN9c2V0VHlwZXModCl7cmV0dXJuIHRoaXMuX3N5bWJvbHM9ey4uLnRoaXMuX3N5bWJvbHMscXVlcnk6ey4uLnRoaXMuX3N5bWJvbHMucXVlcnksdHlwZXM6dH19LHRoaXN9cmVzZXRUeXBlcygpe3JldHVybiB0aGlzLl9zeW1ib2xzPXsuLi50aGlzLl9zeW1ib2xzLHF1ZXJ5OnsuLi50aGlzLl9zeW1ib2xzLnF1ZXJ5LHR5cGVzOltdfX0sdGhpc31yZXNldFN0YXRlKCl7cmV0dXJuIHRoaXMuX3N5bWJvbHM9e30sdGhpc31zZXRHcm91cHModCl7cmV0dXJuIHRoaXMuX3N5bWJvbHMuZ3JvdXBzPXQsdGhpc31yZXNldEdyb3Vwcygpe3JldHVybiBkZWxldGUgdGhpcy5fc3ltYm9scy5ncm91cHMsdGhpc31zZXRTeW1ib2xzZXQodCl7cmV0dXJuIHRoaXMuX3N5bWJvbHMuc3ltYm9sc2V0PXQsdGhpc31yZXNldFN5bWJvbHNldCgpe3JldHVybiB0aGlzLl9zeW1ib2xzLnN5bWJvbHNldD1bXSx0aGlzfXJlc2V0V2F0Y2hsaXN0KCl7Y29uc3R7d2F0Y2hsaXN0OnQsLi4uZX09dGhpcy5fc3ltYm9scztyZXR1cm4gdGhpcy5fc3ltYm9scz1lLHRoaXN9aXNFbXB0eSgpe3JldHVybiAwPT09T2JqZWN0LnZhbHVlcyh0aGlzLl9zeW1ib2xzKS5sZW5ndGh9fX0sMTY4ODI0KHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gcyh0KXtjb25zdFtlLHIsc109ZnVuY3Rpb24odCl7Y29uc3QgZT10LnRvU3RyaW5nKCk7cmV0dXJuW051bWJlcihlLnNsaWNlKDAsNCkpLE51bWJlcihlLnNsaWNlKDQsNikpLE51bWJlcihlLnNsaWNlKDYpKV19KHQpO3JldHVybiBuZXcgRGF0ZShlLHItMSxzKX1yLmQoZSx7Z2V0RGF0ZUZyb21ZWVlZTU1ERDooKT0+c30pfSw5MDgwMzQodCxlLHIpeyJ1c2Ugc3RyaWN0IjtyLmQoZSx7dXNlUm93c05hdmlnYXRpb246KCk9Pmh9KTt2YXIgcz1yKDc3OTQ3NCksbj1yKDEzODYzOCksaT1yKDk4MzYxNiksbz1yKDIzNTcyNCksYT1yKDMyOTY2OCksbD1yKDY4MjM4MSksYz1yKDYxNjMxMSk7Y29uc3QgdT1bMzcsMzksMzgsNDBdO2Z1bmN0aW9uIGgodCl7Y29uc3QgZT0oMCxzLnVzZVJlZikobnVsbCk7cmV0dXJuKDAsYy51c2VJc29tb3JwaGljTGF5b3V0RWZmZWN0KSgoKCk9Pntjb25zdCB0PSgwLG4uZW5zdXJlTm90TnVsbCkoZS5jdXJyZW50KSxyPSgpPT57Y29uc3Qgcj0oMCxpLnF1ZXJ5VGFiYmFibGVFbGVtZW50cykodCkuc29ydChpLm5hdmlnYXRpb25PcmRlckNvbXBhcmF0b3IpO2lmKDA9PT1yLmxlbmd0aHx8clswXS5wYXJlbnRFbGVtZW50JiYhcChyWzBdLnBhcmVudEVsZW1lbnQsKDAsbi5lbnN1cmVOb3ROdWxsKShlLmN1cnJlbnQpKSl7Y29uc3Qgcz1mdW5jdGlvbih0KXtjb25zdCByPW0odCkuc29ydChpLm5hdmlnYXRpb25PcmRlckNvbXBhcmF0b3IpLHM9ci5maW5kKCh0PT5wKHQsKDAsbi5lbnN1cmVOb3ROdWxsKShlLmN1cnJlbnQpKSkpO2lmKCFzKXJldHVybiBudWxsO2NvbnN0IG89QXJyYXkuZnJvbShzLmNoaWxkcmVuKTtpZighby5sZW5ndGgpcmV0dXJuIG51bGw7cmV0dXJuIG9bMF19KHQpO2lmKG51bGw9PT1zKXJldHVybjtpZigoMCxhLmJlY29tZU1haW5FbGVtZW50KShzKSxyLmxlbmd0aD4wKWZvcihjb25zdCB0IG9mIHIpKDAsYS5iZWNvbWVTZWNvbmRhcnlFbGVtZW50KSh0KX19O3JldHVybiB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigia2V5Ym9hcmQtbmF2aWdhdGlvbi1hY3RpdmF0aW9uIixyKSxyKCksKCk9PndpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJrZXlib2FyZC1uYXZpZ2F0aW9uLWFjdGl2YXRpb24iLHIpfSksW10pLFtlLGZ1bmN0aW9uKGUpe2lmKGUuZGVmYXVsdFByZXZlbnRlZClyZXR1cm47Y29uc3Qgcj0oMCxvLmhhc2hGcm9tRXZlbnQpKGUpO2lmKCF1LmluY2x1ZGVzKHIpKXJldHVybjtjb25zdCBzPWRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ7aWYoIShzIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpKXJldHVybjtjb25zdCBuPWUuY3VycmVudFRhcmdldDtsZXQgYSxjO2lmKHQpe2NvbnN0IHQ9cy5wYXJlbnRFbGVtZW50O2E9dD9BcnJheS5mcm9tKHQuY2hpbGRyZW4pOltdLGM9YS5pbmRleE9mKHMpfWVsc2UgYT0oaD1uLEFycmF5LmZyb20oaC5xdWVyeVNlbGVjdG9yQWxsKCdidXR0b246bm90KDpkaXNhYmxlZCk6bm90KFthcmlhLWRpc2FibGVkPSJ0cnVlIiBpXSknKSkuZmlsdGVyKCgwLGwuY3JlYXRlU2NvcGVkVmlzaWJsZUVsZW1lbnRGaWx0ZXIpKGgpKSkuc29ydChpLm5hdmlnYXRpb25PcmRlckNvbXBhcmF0b3IpLGM9YS5pbmRleE9mKHMpO3ZhciBoO2lmKDA9PT1hLmxlbmd0aHx8LTE9PT1jKXJldHVybjtjb25zdCBwPSgwLAppLm1hcEtleUNvZGVUb0RpcmVjdGlvbikocik7c3dpdGNoKHApe2Nhc2UiaW5saW5lUHJldiI6aWYoZS5wcmV2ZW50RGVmYXVsdCgpLCF0JiYwPT09YylicmVhaztnKGQoYSxjLC0xKSk7YnJlYWs7Y2FzZSJpbmxpbmVOZXh0IjppZihlLnByZXZlbnREZWZhdWx0KCksIXQmJmM9PT1hLmxlbmd0aC0xKWJyZWFrO2coZChhLGMsMSkpO2JyZWFrO2Nhc2UiYmxvY2tQcmV2IjpjYXNlImJsb2NrTmV4dCI6KHI9PntpZighZG9jdW1lbnQuYWN0aXZlRWxlbWVudClyZXR1cm47Y29uc3Qgcz1tKG4pLGk9ZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5wYXJlbnRFbGVtZW50O2lmKCFpKXJldHVybjtjb25zdCBvPUFycmF5LmZyb20oaS5jaGlsZHJlbikuaW5kZXhPZihkb2N1bWVudC5hY3RpdmVFbGVtZW50KTtpZigtMT09PW8pcmV0dXJuO2NvbnN0IGE9c1siYmxvY2tOZXh0Ij09PXI/cy5pbmRleE9mKGkpKzE6cy5pbmRleE9mKGkpLTFdO2lmKCFhKXJldHVybjtlLnByZXZlbnREZWZhdWx0KCk7Y29uc3QgbD1BcnJheS5mcm9tKGEuY2hpbGRyZW4pO2wubGVuZ3RoJiYoIXQmJm88PWwubGVuZ3RoLTE/ZyhsW29dKTpnKGxbMF0pKX0pKHApfX1dfWZ1bmN0aW9uIGQodCxlLHIpe3JldHVybiB0WyhlK3QubGVuZ3RoK3IpJXQubGVuZ3RoXX1mdW5jdGlvbiBtKHQpe3JldHVybiBBcnJheS5mcm9tKHQucXVlcnlTZWxlY3RvckFsbCgnW2RhdGEtcm9sZT0icm93Il0nKSkuZmlsdGVyKCgwLGwuY3JlYXRlU2NvcGVkVmlzaWJsZUVsZW1lbnRGaWx0ZXIpKHQpKX1mdW5jdGlvbiBwKHQsZSl7Y29uc3Qgcj0oMCxuLmVuc3VyZU5vdE51bGwpKHQucGFyZW50RWxlbWVudCkub2Zmc2V0VG9wLHM9cisoMCxuLmVuc3VyZU5vdE51bGwpKHQucGFyZW50RWxlbWVudCkuY2xpZW50SGVpZ2h0LGk9ZS5zY3JvbGxUb3Asbz1pK2UuY2xpZW50SGVpZ2h0O3JldHVybiByPj1pJiZzPD1vfWZ1bmN0aW9uIGcodCl7ZG9jdW1lbnQuYWN0aXZlRWxlbWVudCYmKDAsYS5iZWNvbWVTZWNvbmRhcnlFbGVtZW50KShkb2N1bWVudC5hY3RpdmVFbGVtZW50KSwoMCxhLmJlY29tZU1haW5FbGVtZW50KSh0KSx0LmZvY3VzKCl9fSw0MDEwNzgodCxlLHIpeyJ1c2Ugc3RyaWN0IjtyLmQoZSx7dXNlU3ltYm9sUXVvdGVzOigpPT5pfSk7dmFyIHM9cig3Nzk0NzQpLG49cigxNTk1MTMpO2Z1bmN0aW9uIGkodCxlPSEwKXtjb25zdFtyLGldPSgwLHMudXNlU3RhdGUpKG51bGw9PT10P3tjb21wbGV0ZWQ6ITAsaW52YWxpZDohMCxxdW90ZXM6bnVsbCxzeW1ib2w6dH06e2NvbXBsZXRlZDohMSxpbnZhbGlkOiExLHF1b3RlczpudWxsLHN5bWJvbDp0fSk7cmV0dXJuKDAscy51c2VFZmZlY3QpKCgoKT0+e2lmKG51bGw9PT10KXJldHVybiB2b2lkIGkoe2NvbXBsZXRlZDohMCxpbnZhbGlkOiEwLHF1b3RlczpudWxsLHN5bWJvbDp0fSk7aSh7Y29tcGxldGVkOiExLGludmFsaWQ6ITEscXVvdGVzOm51bGwsc3ltYm9sOnR9KTtjb25zdCByPSgwLG4uZ2V0UXVvdGVTZXNzaW9uSW5zdGFuY2UpKCJmdWxsIik7bGV0IHM9ITE7Y29uc3Qgbz1yPT57Y29uc3R7dmFsdWVzOnMsY29tcGxldGU6bixzdGF0dXM6b309cjtpKHtpbnZhbGlkOiJlcnJvciI9PT1vLHF1b3Rlczp7Li4uc30sY29tcGxldGVkOnZvaWQgMCE9PW58fCJlcnJvciI9PT1vLHN5bWJvbDp0fSksdm9pZCAwPT09biYmImVycm9yIiE9PW98fCFlfHxhKCl9LGE9KCk9PntzfHwocz0hMCxyLnVuc3Vic2NyaWJlKCJ1c2VTeW1ib2xRdW90ZXMiLHQsbykpfTtyZXR1cm4gci5zdWJzY3JpYmUoInVzZVN5bWJvbFF1b3RlcyIsdCxvKSwoKT0+e2EoKX19KSxbdF0pLHJ9fSw1OTk1NDYodCl7dC5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDE4IDE4IiB3aWR0aD0iMTgiIGhlaWdodD0iMTgiPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZD0ibTkgMTQuNSA0LjUtMy45NC0xLTEuMTItMi43NSAyLjRWNGgtMS41djcuODVMNS40OSA5LjQ0bC0uOTggMS4xMkw5IDE0LjVaIi8+PC9zdmc+J30sMzg2MjYxKHQpe3QuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxOCAxOCIgd2lkdGg9IjE4IiBoZWlnaHQ9IjE4Ij48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGQ9Im05LjUgMTQuMTYtLjM0LS4yOC00LTMuNS42Ni0uNzYgMy4xNyAyLjc4VjRIMTB2OC40bDMuMTYtMi43OC42Ni43Ni00IDMuNS0uMzMuMjhoLjAxWiIvPjwvc3ZnPid9fV0pOw=="}},"time_used":3,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":3,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"widget-v3.smartsuppcdn.com/assets/main-B-VHc1K4.js","fqdn":"widget-v3.smartsuppcdn.com","domain":"smartsuppcdn.com","tld":"com"},"ip":{"addr":"185.76.9.12","port":443,"asn":60068,"as":"Datacamp Limited","country":"Sweden","country_code":"SE"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://digital-assettrade.com/","date":"2026-07-27T10:27:19.770Z","timestamp":1785148039770,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_256_GCM_SHA384","key_group_name":"x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"1857279285.rsc.cdn77.org","organization":""},"issuer":{"commonName":"YE2","organization":"Let's Encrypt"},"validity":{"start":"Thu, 04 Jun 2026 14:34:45 GMT","end":"Wed, 02 Sep 2026 14:34:44 GMT"},"fingerprint":{"sha1":"92:5D:A0:17:13:91:72:7B:B6:8C:6A:7D:A9:55:7F:C8:A9:47:11:99","sha256":"0E:FC:E3:4D:AD:32:B2:11:05:DC:E3:CD:CC:9E:10:DC:C5:2D:9E:1C:D7:C1:9C:00:92:15:43:C5:B7:0B:3A:D6"}}},"request":{"raw":"GET /assets/main-B-VHc1K4.js HTTP/1.1\r\nHost: widget-v3.smartsuppcdn.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\nOrigin: https://digital-assettrade.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:19 GMT\r\ncontent-type: application/javascript\r\naccess-control-allow-origin: *\r\ncache-control: max-age=31536000, public, immutable\r\netag: W/\"6a670743-3f99\"\r\nexpires: Tue, 27 Jul 2027 07:27:08 GMT\r\nlast-modified: Mon, 27 Jul 2026 07:22:43 GMT\r\nx-77-nzt: k6P3V6tysS6D5Uiw/AgUGlqFYnq2IhCvwuSR1zJbxRY3mA5opY66eLsOd+HLJ6yckBDe+cM\r\nx-77-nzt-ray: e2f7542072fcdf658732676aae1f292e\r\nx-77-cache: HIT\r\nx-77-age: 10778\r\nvary: Accept-Encoding\r\ncontent-encoding: gzip\r\nserver: CDN77-Turbo\r\nx-77-pop: stockholmSE\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"CDN77","description":"CDN77 is a content delivery network (CDN).","website":"https://www.cdn77.com","common_platform_enumeration":"","icon":"CDN77.png","categories":["CDN"]}],"data":{"size":16281,"size_decoded":6834,"mime_type":"application/javascript","magic":"Java source, ASCII text, with very long lines (15873)","md5":"44df6240c839beea4111582dddf02793","sha1":"4b4dd2241d5ff95eba46fb8893058404630825cd","sha256":"a4019ee0c737ef5d214e80e5a87a5a6e839ff2cf4e286cdad9ed6ff397eba250","sha512":"2f30c45b38eeb4a1900f295893fa30362dce2af015cb8eac6b997795ff4b72db55a92d8d38bb7a8cc8f529c612906aa9d2a2a41539c6a67052ae569733ff7e02","ssdeep":"384:Xrgi5RFMkSjJOE/0BW2rvZZ795P6nrnBOVmPCRkXQbpaIF2x:XEizlSjJOEiWYPR5P6rnBOVmycQbpaIi","tlshash":"6c72d7742700783f712f489e15ade546b232c29dd693892d8b2fec0976c5cc0a8b37b9","first_seen":"2026-07-27T07:28:16.135673Z","last_seen":"2026-07-27T13:00:53.941684Z","times_seen":673,"resource_available":true,"data":"Y29uc3QgX192aXRlX19tYXBEZXBzPShpLG09X192aXRlX19tYXBEZXBzLGQ9KG0uZnx8KG0uZj1bd2luZG93LnBhcmVudC5zbWFydHN1cHAuZ2V0QXNzZXRVcmwoImFzc2V0cy9XaWRnZXRNZXNzZW5nZXItRDFpVlkzTGouanMiKSx3aW5kb3cucGFyZW50LnNtYXJ0c3VwcC5nZXRBc3NldFVybCgiYXNzZXRzL3NoYXJlZC1rYjF5cUhhQS5qcyIpLHdpbmRvdy5wYXJlbnQuc21hcnRzdXBwLmdldEFzc2V0VXJsKCJhc3NldHMvV2lkZ2V0TWVzc2VuZ2VySW5wdXQtREhyNXVId2QuanMiKSx3aW5kb3cucGFyZW50LnNtYXJ0c3VwcC5nZXRBc3NldFVybCgiYXNzZXRzL1dpZGdldFBvcHVwLUJBMWpjSG51LmpzIildKSkpPT5pLm1hcChpPT5kW2ldKTsKaW1wb3J0e0EgYXMgZSxBaSBhcyB0LEFyIGFzIG4sQXQgYXMgcixCIGFzIGksQmkgYXMgYSxDIGFzIG8sQ2kgYXMgcyxEIGFzIGMsRGkgYXMgbCxFIGFzIHUsRWkgYXMgZCxHaSBhcyBmLEdyIGFzIHAsSGkgYXMgbSxIbiBhcyBoLEhyIGFzIGcsSSBhcyBfLElpIGFzIHYsSiBhcyB5LEppIGFzIGIsS2kgYXMgeCxLciBhcyBTLExpIGFzIEMsTSBhcyBlZSxOIGFzIHRlLE5pIGFzIHcsTyBhcyBuZSxPciBhcyByZSxQaSBhcyBpZSxQciBhcyBhZSxQdCBhcyBvZSxSIGFzIHNlLFMgYXMgY2UsU2kgYXMgbGUsVCBhcyB1ZSxUaSBhcyBULFVpIGFzIGRlLFVyIGFzIEUsVmkgYXMgRCxXaSBhcyBmZSxXbiBhcyBwZSxXdCBhcyBtZSxYaSBhcyBPLFhyIGFzIGssWHQgYXMgaGUsWSBhcyBnZSxZaSBhcyBBLFluIGFzIGosWXIgYXMgX2UsWmkgYXMgTSxaciBhcyB2ZSxfIGFzIHllLGEgYXMgYmUsYWEgYXMgTixiIGFzIHhlLGJpIGFzIFAsY2EgYXMgRixkIGFzIFNlLGRpIGFzIENlLGR0IGFzIHdlLGVhIGFzIFRlLGVpIGFzIEksZiBhcyBFZSxmaSBhcyBMLGggYXMgRGUsaGkgYXMgUixpIGFzIHosaWEgYXMgQixqIGFzIE9lLGppIGFzIFYsam4gYXMga2Usa2kgYXMgQWUsa3IgYXMgamUsbCBhcyBNZSxsYSBhcyBOZSxsaSBhcyBILG0gYXMgUGUsbWkgYXMgRmUsbiBhcyBJZSxuYSBhcyBMZSxvIGFzIFUsb2kgYXMgVyxvciBhcyBHLHBpIGFzIEsscSBhcyBSZSxxbiBhcyB6ZSxyIGFzIHEscyBhcyBCZSx0IGFzIFZlLHRhIGFzIEhlLHRpIGFzIEosdSBhcyBVZSx1aSBhcyBZLHcgYXMgWCx3aSBhcyBaLHggYXMgV2UseGkgYXMgR2UseSBhcyBLZSx5aSBhcyBxZX1mcm9tIi4vc2hhcmVkLWtiMXlxSGFBLmpzIjt2YXIgSmU9ZChgPGRpdj48IT48L2Rpdj5gKTtmdW5jdGlvbiBZZShlLHQpe04odCwhMCk7bGV0IG49eChudWxsKSxyPWAke1MoKS5TTUFSVFNVUFBfQVVUT0NSRUFURT09PSExP2cod2luZG93KS5pZDpgc21hcnRzdXBwYH0td2lkZ2V0LWNvbnRhaW5lcmA7aygoKT0+e3cobikmJnAoKS5ib2R5LmFwcGVuZENoaWxkKHcobikpfSksX2UoKCk9PntwKCkuZ2V0RWxlbWVudEJ5SWQocik/LnJlbW92ZSgpfSk7dmFyIGk9SmUoKTtSKGEoaSksKCk9PnQuY2hpbGRyZW4/P05lKSxGKGkpLEooaSxlPT5mKG4sZSksKCk9PncobikpLHYoKCk9PlcoaSxgaWRgLHIpKSxaKGUsaSksQigpfXZhciBYZT1kKGA8aWZyYW1lIGFsbG93ZnVsbHNjcmVlbj0iIiBzY3JvbGxpbmc9Im5vIj48L2lmcmFtZT5gKTtmdW5jdGlvbiBRKGUsdCl7Tih0LCEwKTtsZXQgbj0oKT0+TShjLGAkdGhlbWVDb2xvcmAsciksW3IsaV09TygpLGE9eCh2b2lkIDApLG89eChudWxsKSxsO0MoKCk9Pnt3KG8pJiZ1KHcobykpfSksQygoKT0+e3cobykmJmQobigpKX0pO2xldCB1PWFzeW5jIGU9PntsJiZhd2FpdCBzKGwpLGUmJnQuY29tcG9uZW50JiYobD1HZSh0LmNvbXBvbmVudCx7dGFyZ2V0OmUuYm9keX0pKX0sZD1lPT57dyhvKSYmbmUodyhvKSxlKX0scD1lPT57aWYoIXcobykpcmV0dXJuO2xldCB0PXcobykuY3JlYXRlRWxlbWVudChgc3R5bGVgKTtyZXR1cm4gdC50ZXh0Q29udGVudD1lLHcobykuaGVhZC5hcHBlbmRDaGlsZCh0KSx0fSxtPSgpPT57Zm9yKGxldCBlIG9mIHdpbmRvdy5kb2N1bWVudC5zdHlsZVNoZWV0cyl7bGV0IHQ9YGA7dHJ5e3Q9Wy4uLmUuY3NzUnVsZXNdLm1hcChlPT5lLmNzc1RleHQpLmpvaW4oYGApfWNhdGNoe2NvbnRpbnVlfWlmKCFwKHQpKXJldHVybn19LGg9KCk9PnshdyhhKXx8IXcoYSkuY29udGVudERvY3VtZW50fHwoZihvLHcoYSkuY29udGVudERvY3VtZW50LCEwKSxtKCkpfTtrKGFzeW5jKCk9Pnthd2FpdCBpZSgpLHcoYSk/LmNvbnRlbnREb2N1bWVudCYmdyhhKS5jb250ZW50RG9jdW1lbnQucmVhZHlTdGF0ZT09PWBjb21wbGV0ZWAmJncoYSkuY29udGVudERvY3VtZW50LmRlZmF1bHRWaWV3P2goKTp3KGEpPy5hZGRFdmVudExpc3RlbmVyKGBsb2FkYCxoKX0pLF9lKGFzeW5jKCk9Pnt3KGEpJiZ3KGEpLnJlbW92ZUV2ZW50TGlzdGVuZXIoYGxvYWRgLGgpLGwmJmF3YWl0IHMobCl9KTt2YXIgZz1YZSgpO0ooZyxlPT5mKGEsZSksKCk9PncoYSkpLHYoKCk9PntXKGcsYGlkYCx0LmlkKSxXKGcsYHRpdGxlYCx0LnRpdGxlKSxIKGcsdC5mcmFtZVN0eWxlKX0pLFooZSxnKSxCKCksaSgpfXZhciBaZT1sKGA8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDY0IDY0IiBmaWxsPSJjdXJyZW50Q29sb3IiIHByZXNlcnZlQXNwZWN0UmF0aW89InhNaWRZTWlkIG1lZXQiPjxwYXRoIGQ9Ik02My4xMTMsMTguNTF2LS4xNkM2MC4zMjMsNy4wNSw0NC41ODIsMywzMS45NzIsM1MzLjU4Miw3LC43OTIsMTguNWE2Ni4yMiw2Ni4yMiwwLDAsMCwwLDIwLjQ2YzEuMTgsNC43NCw1LjA1LDguNjMsMTEuMzYsMTEuNDFsLTQsNUEzLjQ3LDMuNDcsMCwwLDAsMTAuODgyLDYxYTMuMzksMy4zOSwwLDAsMCwxLjQ0LS4zMUwyNi44NjIsNTRjMS43OS4xOCwzLjQ5LjI3LDUuMDcuMjcsMTEuMDQuMDQsMjguNDEtNC4wNCwzMS4xOC0xNS40M2E2MC4zMyw2MC4zMywwLDAsMCwwLTIwLjMzWiI+PC9wYXRoPjwvc3ZnPmApO2Z1bmN0aW9uIFFlKGUsdCl7bGV0IG49dmUodCxgaWNvblNpemVgLDMsMTYpO3ZhciByPVplKCk7digoKT0+e1cocixgd2lkdGhgLG4oKSksVyhyLGBoZWlnaHRgLG4oKSl9KSxaKGUscil9ZnVuY3Rpb24gJGUoZSx0KXtOKHQsITApO2xldCBuPXgoITEpO2soKCk9PntmKG4sITApfSk7dmFyIHI9VCgpLGk9RChyKSxhPWU9Pnt2YXIgbj1UKCk7UihEKG4pLCgpPT50LmNoaWxkcmVuPz9OZSksWihlLG4pfTtQKGksZT0+e3cobikmJmUoYSl9KSxaKGUsciksQigpfXZhciBldD1kKGA8ZGl2IGNsYXNzPSJ0cmFuc2Zvcm0gdHJhbnNpdGlvbi10cmFuc2Zvcm0gZHVyYXRpb24tMzAwIGdyb3VwLWhvdmVyOnNjYWxlLTExNSI+PCE+PC9kaXY+YCk7ZnVuY3Rpb24gdHQoZSl7JGUoZSx7Y2hpbGRyZW46KGUsdCk9Pnt2YXIgbj1ldCgpO1FlKGEobikse2ljb25TaXplOjI0fSksRihuKSxLKDMsbiwoKT0+QmUsKCk9Pih7ZGVsYXk6MjAwLGR1cmF0aW9uOjMwMCxzdGFydDouNixvcGFjaXR5Oi44fSkpLFooZSxuKX0sJCRzbG90czp7ZGVmYXVsdDohMH19KX12YXIgbnQ9ZChgPGRpdiBjbGFzcz0icC0xIj48ZGl2IGNsYXNzPSJmbGV4LWNlbnRlciB3LTEyIGgtMTIgYmctd2hpdGUgYmctb3BhY2l0eS0xMCByb3VuZGVkLWZ1bGwiPjwhPjwvZGl2PjwvZGl2PmApO2Z1bmN0aW9uIHJ0KGUpe3ZhciB0PW50KCksbj1hKHQpO3R0KGEobikse30pLEYobiksRih0KSxaKGUsdCl9dmFyIGl0PWQoYDxkaXYgY2xhc3M9ImZsZXgiPjxkaXYgY2xhc3M9ImZsZXgtY2VudGVyIHdoaXRlc3BhY2Utbm93cmFwIHBsLTQgcHItMSI+IDwvZGl2PiA8IT48L2Rpdj5gKTtmdW5jdGlvbiBhdChlLHQpe04odCwhMSk7bGV0IG49KCk9Pk0oaixgJHRgLHIpLFtyLGldPU8oKSxvPWZlKCk7aygoKT0+e2xldCBlPU1hdGguY2VpbCh3KG8pLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoKTtVZS5zZXQoZSl9KSxJKCk7dmFyIHM9aXQoKSxjPWEocyksbD1hKGMsITApO0YoYykscnQobShjLDIpLHt9KSxGKHMpLEoocyxlPT5mKG8sZSksKCk9PncobykpLHYoZT0+e1coYyxgZGF0YS10ZXN0aWRgLEcud2lkZ2V0QnV0dG9uVGV4dCksbGUobCxlKX0sWygpPT5uKCkoYGJ1dHRvbi5ncmVldGluZ2ApXSksWihlLHMpLEIoKSxpKCl9dmFyIG90PWQoYDxkaXYgaWQ9IndpZGdldC1vbmxpbmUtYmFkZ2UiIGNsYXNzPSJhYnNvbHV0ZSBsZWZ0LTAgYm90dG9tLTAgdy0yIGgtMiBwLTEuNSBiZy1ncmVlbi00MDAgcm91bmRlZC1mdWxsIGJvcmRlci0yIGJvcmRlci13aGl0ZSI+PC9kaXY+YCk7ZnVuY3Rpb24gc3QoZSx0KXtOKHQsITEpO2xldCBuPSgpPT5NKGtlLGAkaXNXaWRnZXRPbmxpbmVgLHIpLFtyLGldPU8oKTtJKCk7dmFyIGE9VCgpLG89RChhKSxzPWU9Pnt2YXIgdD1vdCgpO3YoKCk9PlcodCxgZGF0YS10ZXN0aWRgLEcud2lkZ2V0T25saW5lQmFkZ2UpKSxLKDMsdCwoKT0+QmUpLFooZSx0KX07UChvLGU9PntuKCkmJmUocyl9KSxaKGUsYSksQigpLGkoKX12YXIgY3Q9ZChgPGRpdiBpZD0id2lkZ2V0LXVucmVhZC1tZXNzYWdlcy1iYWRnZSIgY2xhc3M9ImFic29sdXRlIHJpZ2h0LTAgdG9wLTAgbWluLXctNSBoLTUgZmxleC1jZW50ZXIgcHgtMSB0ZXh0LXdoaXRlIGJnLXJlZC02MDAgdGV4dC14cyByb3VuZGVkLWZ1bGwgc2hhZG93Ij4gPC9kaXY+YCk7ZnVuY3Rpb24gbHQoZSx0KXtOKHQsITApO2xldCBuPSgpPT5NKGhlLGAkdW5yZWFkTWVzc2FnZXNDb3VudGAsciksW3IsaV09TygpLG89QSgoKT0+bigpPjApO3ZhciBzPVQoKSxjPUQocyksbD1lPT57dmFyIHQ9Y3QoKSxyPWEodCwhMCk7Rih0KSx2KCgpPT57Vyh0LGBkYXRhLXRlc3RpZGAsRy53aWRnZXRVbnJlYWRNZXNzYWdlc0JhZGdlKSxsZShyLG4oKT45OT9gOTkrYDpuKCkpfSksSygzLHQsKCk9PkJlKSxaKGUsdCl9O1AoYyxlPT57dyhvKSYmZShsKX0pLFooZSxzKSxCKCksaSgpfXZhciB1dD1kKGA8ZGl2IGNsYXNzPSJoLWZ1bGwgdy1mdWxsIGZpeGVkIGZsZXgganVzdGlmeS1lbmQgYm9yZGVyLXJvdW5kZWQtZnVsbCI+PGRpdiByb2xlPSJidXR0b24iIGNsYXNzPSJncm91cCBmbGV4LWNlbnRlciB3LWZ1bGwgYmctcHJpbWFyeS1ncmFkaWVudCBiZy1wcmltYXJ5LWdyYWRpZW50LWhvdmVyIHRleHQtcHJpbWFyeS1jb250ZW50IHJvdW5kZWQtZnVsbCBvdmVyZmxvdy1oaWRkZW4gY3Vyc29yLXBvaW50ZXIgY29udGVudC1mb2N1cy1zZWNvbmRhcnkiPjwhPiA8IT48L2Rpdj4gPCE+PC9kaXY+YCk7ZnVuY3Rpb24gZHQoZSxuKXtOKG4sITEpO2xldCBpPSgpPT5NKGosYCR0YCxzKSxvPSgpPT5NKERlLGAkaXNXaWRnZXRCdXR0b25CdWJibGVgLHMpLFtzLGNdPU8oKTtJKCk7dmFyIGw9dXQoKSx1PWEobCk7Vyh1LGB0YWJpbmRleGAsMCk7dmFyIGQ9YSh1KSxmPWU9Pnt0dChlLHt9KX0scD1lPT57YXQoZSx7fSl9O1AoZCxlPT57bygpP2UoZik6ZShwLC0xKX0pLHN0KG0oZCwyKSx7fSksRih1KSxsdChtKHUsMikse30pLEYobCksdihlPT57Vyh1LGBhcmlhLWxhYmVsYCxlKSxXKHUsYGRhdGEtdGVzdGlkYCxHLndpZGdldEJ1dHRvbil9LFsoKT0+aSgpKGBhcmlhTGFiZWwub3BlbkNoYXRgKV0pLHQoYGNsaWNrYCx1LCgpPT5zZSgpKSxWKGBrZXlwcmVzc2AsdSxlPT5lLmtleT09PXIuRW50ZXImJnNlKCkpLFooZSxsKSxCKCksYygpfUFlKFtgY2xpY2tgXSk7dmFyIGZ0PWQoYDxkaXY+PCE+PC9kaXY+YCk7ZnVuY3Rpb24gcHQoZSx0KXtOKHQsITApO2xldCBuPSgpPT5NKFNlLGAkYnV0dG9uRnJhbWVXaWR0aGAscykscj0oKT0+TSh0ZSxgJHNob3VsZFJlbmRlckJ1dHRvbkZyYW1lYCxzKSxpPSgpPT5NKERlLGAkaXNXaWRnZXRCdXR0b25CdWJibGVgLHMpLG89KCk9Pk0oaixgJHRgLHMpLFtzLGNdPU8oKSxsPXgodm9pZCAwKSxkPWU9Pnt3KGwpJiYodyhsKS5zdHlsZS53aWR0aD1gJHtlfXB4YCl9LHt3aWRnZXRCbG9ja2luZ09wdGlvbnM6cH09RS5nZXRPcHRpb25zKCk7QygoKT0+e3cobCkmJmQobigpKX0pO3ZhciBtPVQoKSxoPUQobSksZz1lPT57dmFyIHQ9ZnQoKTtsZXQgbjtxZShhKHQpLCgpPT5pKCl8fG8oKSxlPT57e2xldCB0PUEoWCk7UShlLHtnZXQgY29tcG9uZW50KCl7cmV0dXJuIGR0fSxnZXQgaWQoKXtyZXR1cm4gRy53aWRnZXRCdXR0b25GcmFtZX0sdGl0bGU6YFNtYXJ0c3VwcCB3aWRnZXQgYnV0dG9uYCxnZXQgZnJhbWVTdHlsZSgpe3JldHVybiB3KHQpfX0pfX0pLEYodCksSih0LGU9PmYobCxlKSwoKT0+dyhsKSksTCh0LGU9PktlPy4oZSkpLHYoZT0+e249SCh0LGBib3JkZXItcmFkaXVzOiA5OTk5cHg7IGJveC1zaGFkb3c6IHJnYigwIDAgMCAvIDYlKSAwcHggMXB4IDZweCwgcmdiKDAgMCAwIC8gJHtwPy5saW1pdFNoYWRvdz9gMjAlKSAwcHggMnB4IDEycHhgOmAxMiUpIDBweCAycHggMzJweGB9OyBjb2xvci1zY2hlbWU6IG5vcm1hbDtgLG4sZSksVyh0LGBkYXRhLXRlc3RpZGAsRy53aWRnZXRCdXR0b25GcmFtZSl9LFsoKT0+KHtoZWlnaHQ6dSg1Nil9KV0pLEsoMSx0LCgpPT5VLCgpPT4oe3k6MjAsZGVsYXk6MTUwLGR1cmF0aW9uOjMwMH0pKSxLKDIsdCwoKT0+YmUsKCk9Pih7ZHVyYXRpb246MjUwfSkpLFooZSx0KX07UChoLGU9PntyKCkmJmUoZyl9KSxaKGUsbSksQigpLGMoKX12YXIgJD1mdW5jdGlvbihlKXtyZXR1cm4gZVtlLkluaXRpYWxpemVkPTBdPWBJbml0aWFsaXplZGAsZVtlLkxvYWRpbmc9MV09YExvYWRpbmdgLGVbZS5TdWNjZXNzPTJdPWBTdWNjZXNzYCxlW2UuRXJyb3I9M109YEVycm9yYCxlfSh7fSksbXQ9bmV3IE1hcCxodD1hc3luYyBlPT57bGV0IHQ9KGF3YWl0IGUoKSkuZGVmYXVsdDtyZXR1cm4gbXQuc2V0KGUsdCksdH07ZnVuY3Rpb24gZ3QoZSx0KXtOKHQsITApO2xldCBuPXZlKHQsYGRlbGF5YCwzLDIwMCkscj14KGRlKCQuSW5pdGlhbGl6ZWQpKSxpPXgodm9pZCAwKSxhPXgodm9pZCAwKSxvPXgodm9pZCAwKSxzPUEoKCk9PncoaSkpLGM9KCk9Pnt3aW5kb3cuY2xlYXJUaW1lb3V0KHcobykpfSxsPWFzeW5jKCk9PntjKCksZihhLHZvaWQgMCksZihpLHZvaWQgMCksbigpPjA/KGYociwkLkluaXRpYWxpemVkLCEwKSxmKG8sd2luZG93LnNldFRpbWVvdXQoKCk9PntmKHIsJC5Mb2FkaW5nLCEwKX0sbigpKSwhMCkpOmYociwkLkxvYWRpbmcsITApO3RyeXtmKGksYXdhaXQgaHQodC5sb2FkZXIpLCEwKSxmKHIsJC5TdWNjZXNzLCEwKX1jYXRjaChlKXtpZihmKHIsJC5FcnJvciwhMCksZSBpbnN0YW5jZW9mIEVycm9yKWYoYSxlLCEwKTtlbHNlIHRocm93IGV9YygpfTttdC5oYXModC5sb2FkZXIpPyhmKHIsJC5TdWNjZXNzLCEwKSxmKGksbXQuZ2V0KHQubG9hZGVyKSwhMCkpOmsoKCk9PntsKCl9KTt2YXIgdT1UKCksZD1EKHUpLHA9ZT0+e3ZhciBuPVQoKTtSKEQobiksKCk9PnQuZXJyb3IsKCk9Pih7ZXJyb3I6dyhhKX0pKSxaKGUsbil9LG09ZT0+e3ZhciBuPVQoKTtSKEQobiksKCk9PnQubG9hZGluZyksWihlLG4pfSxoPWU9Pnt2YXIgdD1UKCk7RmUoRCh0KSwoKT0+dyhzKSwoZSx0KT0+e3QoZSx7fSl9KSxaKGUsdCl9O1AoZCxlPT57dyhyKT09PSQuRXJyb3ImJnQuZXJyb3I/ZShwKTp3KHIpPT09JC5Mb2FkaW5nP2UobSwxKTp3KHIpPT09JC5TdWNjZXNzJiZlKGgsMil9KSxaKGUsdSksQigpfXZhciBfdD0oKT0+YWUoKCk9PmltcG9ydChgLi9XaWRnZXRNZXNzZW5nZXItRDFpVlkzTGouanNgKSxfX3ZpdGVfX21hcERlcHMoWzAsMSwyXSksaW1wb3J0Lm1ldGEudXJsKSx2dD1lPT57dmFyIHQ9YnQoKSxuPWEodCkscj1hKG4pO3EoYShyKSx7c2l6ZTozMn0pLEYocik7dmFyIGk9bShyLDIpLG89YShpKTtxKG8se3NpemU6MzJ9KTt2YXIgcz1tKG8sMik7cShzLHtzaXplOjMyfSkscShtKHMsMikse3NpemU6MzJ9KSxGKGkpLEYobik7dmFyIGM9bShuLDIpLGw9YShjKTtxKGEobCkse3NpemU6NDR9KSxGKGwpO3ZhciB1PW0obCwyKSxkPWEodSk7eihkLHtoZWlnaHQ6MjAsd2lkdGg6MjcwfSkseihtKGQsMikse2hlaWdodDoyMCx3aWR0aDoxMjJ9KSxGKHUpLEYoYyk7dmFyIGY9bShjLDIpLHA9YShmKTtxKGEocCkse3NpemU6Mjh9KSxGKHApO3ZhciBoPW0ocCwyKTt6KGEoaCkse2hlaWdodDoxMTIsd2lkdGg6Mjk1LHJvdW5kZWRTdHlsZTpgcm91bmRlZC02YH0pLEYoaCksRihmKTt2YXIgZz1tKGYsMiksXz1hKGcpO3ooXyx7aGVpZ2h0OjMyLHdpZHRoOjI5NX0pO3ZhciB2PW0oXywyKTt6KHYse2hlaWdodDozMix3aWR0aDoxNDh9KSx6KG0odiwyKSx7aGVpZ2h0OjMyLHdpZHRoOjIyNH0pLEYoZyksRih0KSxaKGUsdCl9LHl0PShlLHQpPT57bGV0IG49KCk9PnQ/LigpLmVycm9yO3ZhciByPXh0KCksaT1tKGEociksMiksbz1hKGksITApO0YoaSksRihyKSx2KCgpPT5sZShvLG4oKSkpLFooZSxyKX0sYnQ9ZChgPGRpdiBjbGFzcz0iaC1mdWxsIHAtMiBiZy13aGl0ZSIgaWQ9IlRPRE8gdGVzdCI+PGRpdiBjbGFzcz0iZmxleCBqdXN0aWZ5LWJldHdlZW4iPjxkaXYgY2xhc3M9ImZsZXgiPjwhPjwvZGl2PiA8ZGl2IGNsYXNzPSJmbGV4IHNwYWNlLXgtMiI+PCE+IDwhPiA8IT48L2Rpdj48L2Rpdj4gPGRpdiBjbGFzcz0iZmxleCBtdC0yIj48ZGl2IGNsYXNzPSJmbGV4IG1sLTEgbXItMiI+PCE+PC9kaXY+IDxkaXYgY2xhc3M9ImZsZXgtYm90dG9tIHNwYWNlLXktMiI+PCE+IDwhPjwvZGl2PjwvZGl2PiA8ZGl2IGNsYXNzPSJmbGV4IGl0ZW1zLWJhc2VsaW5lIG10LTgiPjxkaXYgY2xhc3M9ImZsZXggbWwtMSBtci0yIj48IT48L2Rpdj4gPGRpdiBjbGFzcz0ic3BhY2UteS0yIj48IT48L2Rpdj48L2Rpdj4gPGRpdiBjbGFzcz0iZmxleCBmbGV4LWNvbCBpdGVtcy1lbmQgc3BhY2UteS01IG10LTggbXItMSI+PCE+IDwhPiA8IT48L2Rpdj48L2Rpdj5gKSx4dD1kKGA8ZGl2IGNsYXNzPSJoLWZ1bGwgcC00IGJnLXdoaXRlIHRleHQtcmVkLTUwMCI+PGRpdiBjbGFzcz0idGV4dC1sZyBmb250LWJvbGQiPkZhaWxlZCB0byBsb2FkIHdpZGdldDwvZGl2PiA8ZGl2IGNsYXNzPSJ0ZXh0LXhzIj4gPC9kaXY+PC9kaXY+YCk7ZnVuY3Rpb24gU3QoZSl7Z3QoZSx7Z2V0IGxvYWRlcigpe3JldHVybiBfdH0sZGVsYXk6MCxnZXQgZXJyb3IoKXtyZXR1cm4geXR9LGdldCBsb2FkaW5nKCl7cmV0dXJuIHZ0fX0pfXZhciBDdD1kKGA8ZGl2PjwhPjwvZGl2PmApO2Z1bmN0aW9uIHd0KGUsdCl7Tih0LCEwKTtsZXQgcj0oKT0+TShqZSxgJGlzRnVsbFNjcmVlbkVuYWJsZWRgLGwpLG89KCk9Pk0oUGUsYCRpc01lc3NlbmdlckZyYW1lRXhwYW5kZWRgLGwpLHM9KCk9Pk0obixgJGlzTW9iaWxlRGV2aWNlYCxsKSxjPSgpPT5NKGksYCRzaG91bGRSZW5kZXJNZXNzZW5nZXJGcmFtZWAsbCksW2wsZF09TygpLG09eCh2b2lkIDApLGc9YE1vYmlsZVdpZGdldE1lc3Nlbmdlck9wZW5gLF89KGUsdCk9PntpZighdyhtKSlyZXR1cm47bGV0e3dpZGdldEJsb2NraW5nT3B0aW9uczpufT1FLmdldE9wdGlvbnMoKSx7d2lkdGg6cixoZWlnaHQ6aX09dWUoZSx0KTt3KG0pLnN0eWxlLm1heEhlaWdodD1oKGkpP2k6dShpKSx3KG0pLnN0eWxlLndpZHRoPWgocik/cjp1KHIpLHcobSkuc3R5bGUuaGVpZ2h0PWV8fG4/LmhlYWRsZXNzTW9kZT9gMTAwJWA6YGNhbGMoMTAwJSAtIDQwcHgpYH07QygoKT0+e3cobSkmJl8ocigpLG8oKSl9KTtsZXQgeT14KCExKTtDKCgpPT57aWYocygpKXtpZihjKCkmJiF3KHkpKXtsZXQgZT1wKCkuY3JlYXRlRWxlbWVudChgc3R5bGVgKTtlLnRleHRDb250ZW50PWAqIHtvdmVyZmxvdzogaGlkZGVufWAsZS5jbGFzc05hbWU9ZyxwKCkuaGVhZC5hcHBlbmRDaGlsZChlKSxmKHksITApfWlmKCFjKCkmJncoeSkpe2xldCBlPXAoKS5oZWFkLmdldEVsZW1lbnRzQnlDbGFzc05hbWUoZyk7Zm9yKGxldCB0PTA7dDxlLmxlbmd0aDt0KyspcCgpLmhlYWQucmVtb3ZlQ2hpbGQoZVt0XSk7Zih5LCExKX19fSk7dmFyIGI9VCgpLFM9RChiKSxlZT1lPT57dmFyIHQ9Q3QoKTtIKHQsYGAse30se3RyYW5zaXRpb246YG1heC1oZWlnaHQgMjUwbXMgZWFzZS1pbi1vdXQsIHdpZHRoIDI1MG1zIGVhc2UtaW4tb3V0YCxvdmVyZmxvdzpgaGlkZGVuYH0pO3ZhciBuPWEodCk7e2xldCBlPUEoWCk7UShuLHtnZXQgY29tcG9uZW50KCl7cmV0dXJuIFN0fSxnZXQgaWQoKXtyZXR1cm4gRy53aWRnZXRNZXNzZW5nZXJGcmFtZX0sdGl0bGU6YFNtYXJ0c3VwcCB3aWRnZXQgbWVzc2VuZ2VyYCxnZXQgZnJhbWVTdHlsZSgpe3JldHVybiB3KGUpfX0pfUYodCksTCh0LChlLHQpPT54ZT8uKGUsdCksciksSih0LGU9PmYobSxlKSwoKT0+dyhtKSksdigoKT0+Vyh0LGBkYXRhLXRlc3RpZGAsRy53aWRnZXRNZXNzZW5nZXJGcmFtZSkpLEsoMSx0LCgpPT5VLCgpPT4oe3k6MjAsZHVyYXRpb246MjAwfSkpLEsoMix0LCgpPT5VLCgpPT4oe3k6MTAsZHVyYXRpb246MTUwfSkpLFooZSx0KX07UChTLGU9PntjKCkmJmUoZWUpfSksWihlLGIpLEIoKSxkKCl9dmFyIFR0PSgpPT5hZSgoKT0+aW1wb3J0KGAuL1dpZGdldFBvcHVwLUJBMWpjSG51LmpzYCksX192aXRlX19tYXBEZXBzKFszLDEsMl0pLGltcG9ydC5tZXRhLnVybCksRXQ9ZT0+e3ZhciB0PUR0KCksbj1hKHQpO3Eobix7c2l6ZTo0NH0pO3ZhciByPW0obiwyKSxpPWEocik7eihpLHtoZWlnaHQ6MjAsd2lkdGg6MjcwfSk7dmFyIG89bShpLDIpO3oobyx7aGVpZ2h0OjIwLHdpZHRoOjI3MH0pLHoobShvLDIpLHtoZWlnaHQ6MjAsd2lkdGg6MTIyfSksRihyKSxGKHQpLFooZSx0KX0sRHQ9ZChgPGRpdiBjbGFzcz0iaC1mdWxsIHAtMiBiZy13aGl0ZSI+PCE+IDxkaXYgY2xhc3M9Im10LTQgc3BhY2UteS0yIj48IT4gPCE+IDwhPjwvZGl2PjwvZGl2PmApO2Z1bmN0aW9uIE90KGUpe2d0KGUse2dldCBsb2FkZXIoKXtyZXR1cm4gVHR9LGRlbGF5OjAsZ2V0IGxvYWRpbmcoKXtyZXR1cm4gRXR9fSl9dmFyIGt0PWQoYDxkaXY+PCE+PC9kaXY+YCk7ZnVuY3Rpb24gQXQoZSx0KXtOKHQsITApO2xldCBuPSgpPT5NKHllLGAkcG9wdXBGcmFtZUhlaWdodGAsbykscj0oKT0+TShFZSxgJGhhc1BvcHVwRnJhbWVIb3ZlcmAsbyksaT0oKT0+TShPZSxgJHNob3VsZFJlbmRlclBvcHVwRnJhbWVgLG8pLFtvLHNdPU8oKSxjPXgodm9pZCAwKSxsPWU9Pnt3KGMpJiYodyhjKS5zdHlsZS5tYXhIZWlnaHQ9YCR7ZX1weGApfSx7d2lkZ2V0QmxvY2tpbmdPcHRpb25zOmR9PUUuZ2V0T3B0aW9ucygpO0MoKCk9Pnt3KGMpJiZsKG4oKSl9KTtsZXQgcD1BKCgpPT5yKCk/LjI4Oi4xNik7dmFyIG09VCgpLGg9RChtKSxnPWU9Pnt2YXIgdD1rdCgpO2xldCBuO3ZhciByPWEodCk7e2xldCBlPUEoWCk7UShyLHtnZXQgY29tcG9uZW50KCl7cmV0dXJuIE90fSxnZXQgaWQoKXtyZXR1cm4gRy53aWRnZXRQb3B1cEZyYW1lfSx0aXRsZTpgU21hcnRzdXBwIHdpZGdldCBwb3B1cGAsZ2V0IGZyYW1lU3R5bGUoKXtyZXR1cm4gdyhlKX19KX1GKHQpLEoodCxlPT5mKGMsZSksKCk9PncoYykpLEwodCxlPT5jZT8uKGUpKSx2KGU9PntuPUgodCxgaGVpZ2h0OiBjYWxjKDEwMCUgLSA0MHB4KTsgdHJhbnNpdGlvbjogYm94LXNoYWRvdyAwLjJzIGVhc2UtaW4tb3V0LCBtYXgtaGVpZ2h0IDI1MG1zIGVhc2UtaW4tb3V0YCxuLGUpLFcodCxgZGF0YS10ZXN0aWRgLEcud2lkZ2V0UG9wdXBGcmFtZSl9LFsoKT0+KHt3aWR0aDp1KDMwMCksImJvcmRlci1yYWRpdXMiOnUoMjApLG92ZXJmbG93OmBoaWRkZW5gLCJib3gtc2hhZG93IjpgcmdiYSgwLCAwLCAwLCAke2Q/LmxpbWl0U2hhZG93P2AwLjIpIDBweCAzcHggMTJweGA6YCR7dyhwKX0pIDBweCAzcHggMTZweGB9YH0pXSksSygxLHQsKCk9PlUsKCk9Pih7eToyMCxkZWxheTozMDAsZHVyYXRpb246NDAwfSkpLEsoMix0LCgpPT5VLCgpPT4oe3k6MTAsZHVyYXRpb246NDAwfSkpLFooZSx0KX07UChoLGU9PntpKCkmJmUoZyl9KSxaKGUsbSksQigpLHMoKX12YXIganQ9ZChgPGRpdiBjbGFzcz0iZmxleCBwLTIiPjxkaXY+PC9kaXY+IDxkaXY+PC9kaXY+IDxkaXY+PC9kaXY+PC9kaXY+YCk7ZnVuY3Rpb24gTXQoZSx0KXtsZXQgbj12ZSh0LGBzaXplYCwzLGBtZGApLHI9dmUodCxgY29sb3JgLDMsYGJsYWNrYCksaT1BKCgpPT50Lml0ZXJhdGlvbnM/P2BpbmZpbml0ZWApO3ZhciBvPWp0KCkscz1hKG8pO2xldCBjO3ZhciBsPW0ocywyKTtsZXQgdTt2YXIgZD1tKGwsMik7bGV0IGY7RihvKSx2KCgpPT57WShzLDEsYHR5cGluZy1pbmRpY2F0b3IgJHtuKCl9IGluZGljYXRvci1jb2xvci0ke3IoKX0gYW5pbWF0ZS10eXBpbmdgLGBzdmVsdGUtczQweGdrYCksYz1IKHMsYGAsYyx7ImFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQiOncoaSl9KSxZKGwsMSxgdHlwaW5nLWluZGljYXRvciAke24oKX0gaW5kaWNhdG9yLWNvbG9yLSR7cigpfSB0eXBpbmctaW5kaWNhdG9yLXNlY29uZCBhbmltYXRlLXR5cGluZ2AsYHN2ZWx0ZS1zNDB4Z2tgKSx1PUgobCxgYCx1LHsiYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudCI6dyhpKX0pLFkoZCwxLGB0eXBpbmctaW5kaWNhdG9yICR7bigpfSBpbmRpY2F0b3ItY29sb3ItJHtyKCl9IHR5cGluZy1pbmRpY2F0b3ItdGhpcmQgYW5pbWF0ZS10eXBpbmdgLGBzdmVsdGUtczQweGdrYCksZj1IKGQsYGAsZix7ImFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQiOncoaSl9KX0pLFooZSxvKX12YXIgTnQ9ZChgPGRpdiBjbGFzcz0iZmxleC1jZW50ZXIgaC1mdWxsIGJnLXdoaXRlIHJvdW5kZWQtbGciPjwhPjwvZGl2PmApO2Z1bmN0aW9uIFB0KGUpe3ZhciB0PU50KCk7TXQoYSh0KSx7aXRlcmF0aW9uczoyfSksRih0KSxaKGUsdCl9dmFyIEZ0PWQoYDxkaXY+PCE+PC9kaXY+YCk7ZnVuY3Rpb24gSXQoZSx0KXtOKHQsITEpO2xldCBuPSgpPT5NKGVlLGAkc2hvdWxkUmVuZGVyVHlwaW5nRnJhbWVgLHIpLFtyLGldPU8oKSx7d2lkZ2V0QmxvY2tpbmdPcHRpb25zOnN9PUUuZ2V0T3B0aW9ucygpO0koKTt2YXIgYz1UKCksbD1EKGMpLGQ9ZT0+e3ZhciB0PUZ0KCk7bGV0IG47dmFyIHI9YSh0KTt7bGV0IGU9YihYKTtRKHIse2dldCBjb21wb25lbnQoKXtyZXR1cm4gUHR9LGdldCBpZCgpe3JldHVybiBHLndpZGdldFR5cGluZ0ZyYW1lfSx0aXRsZTpgU21hcnRzdXBwIHdpZGdldCB0eXBpbmdgLGdldCBmcmFtZVN0eWxlKCl7cmV0dXJuIHcoZSl9fSl9Rih0KSxMKHQsZT0+bz8uKGUpKSx2KGU9PntuPUgodCxgYm94LXNoYWRvdzogcmdiYSgwLCAwLCAwLCAwLjIpICR7cz8ubGltaXRTaGFkb3c/YDBweCAzcHggMTJweGA6YDBweCAzcHggMTZweGB9OyBib3JkZXItcmFkaXVzOiAyNHB4O2AsbixlKSxXKHQsYGRhdGEtdGVzdGlkYCxHLndpZGdldFR5cGluZ0ZyYW1lKX0sWygpPT4oe2hlaWdodDp1KDQwKSx3aWR0aDp1KDcwKSxvdmVyZmxvdzpgaGlkZGVuYH0pXSksSygxLHQsKCk9PlUsKCk9Pih7eToyMCxkZWxheTozMDAsZHVyYXRpb246NDAwfSkpLEsoMix0LCgpPT5VLCgpPT4oe3k6MTAsZHVyYXRpb246MjUwfSkpLFooZSx0KX07UChsLGU9PntuKCkmJmUoZCl9KSxaKGUsYyksQigpLGkoKX12YXIgTHQ9TGUobnVsbCksUnQ9VGUoW0x0XSwoW2VdKT0+ISFlKSx6dD1kKGA8aW1nIGNsYXNzPSJtLWF1dG8gbWF4LWgtZnVsbCBtYXgtdy1mdWxsIHNlbGVjdC1ub25lIGJnLWJsYWNrIiB3aWR0aD0iYXV0byIgaGVpZ2h0PSJhdXRvIi8+YCksQnQ9ZChgPHZpZGVvIGNvbnRyb2xzPSIiIGNsYXNzPSJtLWF1dG8gbWF4LWgtZnVsbCBtYXgtdy1mdWxsIGJnLWJsYWNrIG9iamVjdC1jb250YWluIj48dHJhY2sga2luZD0iY2FwdGlvbnMiLz4gPHNvdXJjZS8+PC92aWRlbz5gLDIpLFZ0PWQoYDxkaXYgY2xhc3M9InctZnVsbCBoLWZ1bGwgZmxleCBmbGV4LWNvbCI+PGRpdiBjbGFzcz0iZmxleC1zaHJpbmsgZmxleCBmbGV4LXJvdyB3LWZ1bGwgYmctYmxhY2sgdGV4dC13aGl0ZSI+PGRpdiBjbGFzcz0iZmxleC1ncm93IGZsZXggaXRlbXMtY2VudGVyIHRleHQtbWQgcHgtNCBvdmVyZmxvdy1oaWRkZW4iPjxzcGFuIGNsYXNzPSJ3aGl0ZXNwYWNlLW5vd3JhcCB0ZXh0LWVsbGlwc2lzIG92ZXJmbG93LWhpZGRlbiI+IDwvc3Bhbj48L2Rpdj4gPGRpdiBjbGFzcz0iZmxleC1zaHJpbmsiPjwhPjwvZGl2PjwvZGl2PiA8ZGl2PjwhPjwvZGl2PjwvZGl2PmApO2Z1bmN0aW9uIEh0KGUsbil7TihuLCEwKTtsZXQgcj0oKT0+TShyZSxgJGlzRGVza3RvcGAscyksaT0oKT0+TShMdCxgJHByZXZpZXdlZE1lZGlhYCxzKSxvPSgpPT5NKGosYCR0YCxzKSxbcyxjXT1PKCksbD1BKHIpLHU9ZT0+e2U9PT1gb3ZlcmxheWAmJiF3KGwpfHxMdC5zZXQobnVsbCl9O3ZhciBkPVZ0KCksZj1hKGQpLHA9YShmKSxoPWEocCksZz1hKGgsITApO0YoaCksRihwKTt2YXIgXz1tKHAsMikseT1hKF8pO3tsZXQgZT1BKCgpPT5vKCkoYHRvb2x0aXAuY2xvc2VgKSk7VmUoeSx7b25DbGljazooKT0+dShgYnV0dG9uYCksZ2V0IGljb24oKXtyZXR1cm4gSWV9LGdldCBpY29uRGVzY3JpcHRpb24oKXtyZXR1cm4gdyhlKX0saWNvblNjYWxlOiEwLHNpemU6YHhsYH0pfUYoXyksRihmKTt2YXIgYj1tKGYsMikseD1hKGIpLFM9ZT0+e3ZhciBuPXp0KCk7digoKT0+e1cobixgc3JjYCxpKCk/LmF0dGFjaG1lbnQudXJsKSxXKG4sYGFsdGAsaSgpPy5hdHRhY2htZW50LmZpbGVOYW1lKX0pLHQoYGNsaWNrYCxuLGU9PmUuc3RvcFByb3BhZ2F0aW9uKCkpLFYoYGtleXByZXNzYCxuLCgpPT57fSksWihlLG4pfSxDPWU9Pnt2YXIgbj1CdCgpO24uYXV0b3BsYXk9ITAsbi5sb29wPSEwO3ZhciByPW0oYShuKSwyKTtGKG4pLHYoKCk9Plcocixgc3JjYCxpKCkuYXR0YWNobWVudC51cmwpKSx0KGBjbGlja2AsbixlPT5lLnN0b3BQcm9wYWdhdGlvbigpKSxWKGBrZXlwcmVzc2AsbiwoKT0+e30pLFooZSxuKX07UCh4LGU9PntpKCk/LnR5cGU9PT13ZS5JbWFnZT9lKFMpOmkoKT8udHlwZT09PXdlLlZpZGVvJiZlKEMsMSl9KSxGKGIpLEYoZCksdigoKT0+e2xlKGcsaSgpPy5hdHRhY2htZW50LmZpbGVOYW1lKSxZKGIsMSxDZShbYHJlbGF0aXZlIG92ZXJmbG93LWhpZGRlbiBmbGV4LWdyb3cgZmxleCBpdGVtcy1jZW50ZXIgYmctYmxhY2svODAgei0xMGAscigpP2BwLThgOmBwLTRgXSkpfSksdChgY2xpY2tgLGIsKCk9PnUoYG92ZXJsYXlgKSksVihga2V5cHJlc3NgLGIsKCk9Pnt9KSxLKDEsZCwoKT0+VSwoKT0+KHt5OjIwLGRlbGF5OjMwMCxkdXJhdGlvbjo0MDB9KSksSygyLGQsKCk9PlUsKCk9Pih7eToxMCxkdXJhdGlvbjoyNTB9KSksWihlLGQpLEIoKSxjKCl9QWUoW2BjbGlja2BdKTt2YXIgVXQ9ZChgPGRpdj48IT48L2Rpdj5gKTtmdW5jdGlvbiBXdChlLHQpe04odCwhMSk7bGV0IG49KCk9Pk0oUnQsYCRzaG91bGRSZW5kZXJNZWRpYVByZXZpZXdgLHIpLFtyLGldPU8oKTtJKCk7dmFyIG89VCgpLHM9RChvKSxjPWU9Pnt2YXIgdD1VdCgpO0godCxgYCx7fSx7dHJhbnNpdGlvbjpgbWF4LWhlaWdodCAyNTBtcyBlYXNlLWluLW91dCwgd2lkdGggMjUwbXMgZWFzZS1pbi1vdXRgfSk7dmFyIG49YSh0KTt7bGV0IGU9YigoKT0+WChlPT57ZS5zdHlsZS5wb3NpdGlvbj1gZml4ZWRgfSkpO1Eobix7Z2V0IGNvbXBvbmVudCgpe3JldHVybiBIdH0sZ2V0IGlkKCl7cmV0dXJuIEcud2lkZ2V0SW1hZ2VQcmV2aWV3fSx0aXRsZTpgU21hcnRzdXBwIHdpZGdldCBpbWFnZSBwcmV2aWV3YCxnZXQgZnJhbWVTdHlsZSgpe3JldHVybiB3KGUpfX0pfUYodCksTCh0LGU9PldlPy4oZSkpLHYoKCk9PlcodCxgZGF0YS10ZXN0aWRgLEcud2lkZ2V0SW1hZ2VQcmV2aWV3KSksSygxLHQsKCk9PlUsKCk9Pih7eToyMCxkZWxheToxMDAsZHVyYXRpb246MjUwfSkpLEsoMix0LCgpPT5VLCgpPT4oe3k6MTAsZHVyYXRpb246MjUwfSkpLFooZSx0KX07UChzLGU9PntuKCkmJmUoYyl9KSxaKGUsbyksQigpLGkoKX12YXIgR3Q9ZChgPCE+IDwhPiA8IT4gPCE+IDwhPmAsMSk7ZnVuY3Rpb24gS3QodCxyKXtOKHIsITApO2xldCBpPSgpPT5NKG1lLGAkbGFzdFVucmVhZE1lc3NhZ2VgLG8pLGE9KCk9Pk0oXyxgJGlzTWVzc2VuZ2VyRnJhbWVPcGVuYCxvKSxbbyxzXT1PKCk7aygoKT0+eyhhc3luYygpPT57YXdhaXQgemUoKSxhd2FpdCBwZS5pbml0Q2xpZW50KCl9KSgpfSksQygoKT0+e2koKSYmIWEoKSYmZSgpfSksZ2UoUygpKSxIZShuKSYmeShTKCkpLFllKHQse2NoaWxkcmVuOihlLHQpPT57dmFyIG49R3QoKSxyPUQobik7SXQocix7fSk7dmFyIGk9bShyLDIpO0F0KGkse30pO3ZhciBhPW0oaSwyKTtwdChhLHt9KTt2YXIgbz1tKGEsMik7d3Qobyx7fSksV3QobShvLDIpLHt9KSxaKGUsbil9LCQkc2xvdHM6e2RlZmF1bHQ6ITB9fSksQigpLHMoKX12YXIgcXQ9Zyh3aW5kb3cpO0UuaW5pdChxdC5vcHRpb25zKSxxdC5pbnN0YWxsQXBpKE1lKSxjLnNldFRoZW1lQ29sb3IocXQub3B0aW9ucyksUmUoKSxvZSgpLEdlKEt0LHt0YXJnZXQ6ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYGFwcGApfSk7ZXhwb3J0e010IGFzIG4sTHQgYXMgdH07Ci8vIyBzb3VyY2VNYXBwaW5nVVJMPW1haW4tQi1WSGMxSzQuanMubWFw"}},"time_used":9,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":9,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/55969.43c3748014de2cd0bd1c.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:13.033Z","timestamp":1785148033033,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/55969.43c3748014de2cd0bd1c.js HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:13 GMT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a58ab11-79ea\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Thu, 16 Jul 2026 09:57:37 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/16/2026 11:03:23\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 446581c1c31082fcc91b3b1988b232fb\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":31210,"size_decoded":10275,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (3071)","md5":"2ffe3f8909cfa5c00f9356969ce56989","sha1":"25fb185c3e390ae4bd33c6395913b100e0a4f6d9","sha256":"7d1513778a61b869e05173da3d33c80b937eaf583aeb370b947947ddcdce4c84","sha512":"2022abb3649827fd1f39c901fc168d99ac273164699e1ca00d77e017ee71f51fb199aac7cb5eb214ba12fe7bfb88a65a777fee03d3f0318dbaa768e188f74d6d","ssdeep":"768:YmdyerAdxxaVWiG7s8trffJtzTrcSWJMAchHTdv5UC1gMgFwMA+Mv60F00rFLfLL:5dyHaZG73TAVFd+60S0RuGpriakk","tlshash":"62e296ca3286733693d1c7850c750903f339a1743c0a55acf6ac6acfbe1a942617ab7d","first_seen":"2026-07-16T13:40:49.785089Z","last_seen":"2026-07-27T12:57:37.062945Z","times_seen":601,"resource_available":true,"data":"InVzZSBzdHJpY3QiOyhzZWxmLndlYnBhY2tDaHVua3RyYWRpbmd2aWV3PXNlbGYud2VicGFja0NodW5rdHJhZGluZ3ZpZXd8fFtdKS5wdXNoKFtbNTU5NjldLHszMDgyMShlLHQscyl7cy5kKHQse0J1c2luZXNzRGF5OigpPT5pfSk7dmFyIG49cyg3MDA4MDkpLHI9cyg5MDI4NDIpO2NsYXNzIGl7Y29uc3RydWN0b3IoZSx0LHMpe3RoaXMuX2RheU9mV2Vlaz1udWxsLHRoaXMueWVhcj1lLHRoaXMubW9udGg9dCx0aGlzLmRheT1zfXRvU3RyaW5nKCl7cmV0dXJuYCR7KDAsci5hZGRMZWFkaW5nWmVyb3MpKHRoaXMueWVhciw0KX0tJHsoMCxyLmFkZExlYWRpbmdaZXJvKSh0aGlzLm1vbnRoKX0tJHsoMCxyLmFkZExlYWRpbmdaZXJvKSh0aGlzLmRheSl9YH10b3l5eXltbWRkKCl7cmV0dXJuYCR7KDAsci5hZGRMZWFkaW5nWmVyb3MpKHRoaXMueWVhciw0KX0keygwLHIuYWRkTGVhZGluZ1plcm8pKHRoaXMubW9udGgpfSR7KDAsci5hZGRMZWFkaW5nWmVybykodGhpcy5kYXkpfWB9Y29tcGFyZVRvKGUpe3JldHVybiB0aGlzLnllYXI+ZS55ZWFyfHx0aGlzLnllYXI9PT1lLnllYXImJnRoaXMubW9udGg+ZS5tb250aHx8dGhpcy55ZWFyPT09ZS55ZWFyJiZ0aGlzLm1vbnRoPT09ZS5tb250aCYmdGhpcy5kYXk+ZS5kYXk/MTp0aGlzLnllYXI9PT1lLnllYXImJnRoaXMubW9udGg9PT1lLm1vbnRoJiZ0aGlzLmRheT09PWUuZGF5PzA6LTF9YmVmb3JlKGUpe3JldHVybi0xPT09dGhpcy5jb21wYXJlVG8oZSl9dG9DYWxlbmRhcihlKXtyZXR1cm4oMCxuLmdldF9jYWwpKGU/PygwLG4uZ2V0X3RpbWV6b25lKSgiRXRjL1VUQyIpLHRoaXMueWVhcix0aGlzLm1vbnRoLTEsdGhpcy5kYXkpfWFkZERheXMoZSl7Y29uc3QgdD10aGlzLnRvQ2FsZW5kYXIoKDAsbi5nZXRfdGltZXpvbmUpKCJFdGMvVVRDIikpO3JldHVybigwLG4uYWRkX2RhdGUpKHQsZSksaS5mcm9tQ2FsZW5kYXIodCl9Zmlyc3REYXlPZlllYXIoKXtyZXR1cm4gbmV3IGkodGhpcy55ZWFyLDEsMSl9Z2V0RGF5T2ZXZWVrKCl7cmV0dXJuIG51bGw9PT10aGlzLl9kYXlPZldlZWsmJih0aGlzLl9kYXlPZldlZWs9KDAsbi5nZXRfZGF5X29mX3dlZWspKHRoaXMudG9DYWxlbmRhcigpKSksdGhpcy5fZGF5T2ZXZWVrfXN0YXRpYyBmcm9tQ2FsZW5kYXIoZSl7cmV0dXJuIG5ldyBpKCgwLG4uZ2V0X3llYXIpKGUpLCgwLG4uZ2V0X21vbnRoKShlKSsxLCgwLG4uZ2V0X2RheV9vZl9tb250aCkoZSkpfX19LDM0MTAzNihlLHQscyl7cy5kKHQse0V4dGVuZGVkRW50cnlEZWNvcmF0b3I6KCk9PkUsT2Zmc2V0RW50cnlEZWNvcmF0b3I6KCk9PnUsU0VTU0lPTl9TUEVDX1NZTUJPTF9CQVJTX09GRlNFVDooKT0+byxTRVNTSU9OX1NQRUNfU1lNQk9MX0VYVEVOREVEOigpPT5oLFNFU1NJT05fU1BFQ19TWU1CT0xfVU5JRklFRDooKT0+YSxTRVNTSU9OX1NQRUNfU1lNQk9MX1VOSUZJRURfU0hJRlRFRDooKT0+ZCxTZXNzaW9uc1NwZWNFbnRyaWVzOigpPT5tLFNlc3Npb25zU3BlY0VudHJ5OigpPT5fLFNlc3Npb25zU3BlY0VudHJ5SW5kZXg6KCk9Pk8sU2Vzc2lvbnNTcGVjSGlzdG9yeUVudHJ5OigpPT5XLFVuaWZpZWRFbnRyeURlY29yYXRvcjooKT0+ayxVbmlmaWVkU2hpZnRlZEVudHJ5RGVjb3JhdG9yOigpPT5wLGNvbXBhcmVTZXNzaW9uRW50cmllczooKT0+eSxpc0V4dGVuZGVkRW50cnk6KCk9PmcsaXNPZmZzZXRFbnRyeTooKT0+bCxpc1VuaWZpZWRFbnRyeTooKT0+Uyxpc1VuaWZpZWRTaGlmdGVkRW50cnk6KCk9PkR9KTt2YXIgbixyPXMoMTM4NjM4KSxpPXMoNzAwODA5KTshZnVuY3Rpb24oZSl7ZVtlLkxlZnRGaXJzdD0tMV09IkxlZnRGaXJzdCIsZVtlLlVuY2hhbmdlZD0wXT0iVW5jaGFuZ2VkIixlW2UuUmlnaHRGaXJzdD0xXT0iUmlnaHRGaXJzdCJ9KG58fChuPXt9KSk7Y29uc3Qgbz0iQSIsYT0iVSIsZD0iUyIsaD0iRSI7ZnVuY3Rpb24gZihlKXtyZXR1cm4gZT49MD8wOmUlaS5taW51dGVzUGVyRGF5PT0wPy1lL2kubWludXRlc1BlckRheToxLU1hdGgudHJ1bmMoZS9pLm1pbnV0ZXNQZXJEYXkpfWZ1bmN0aW9uIHkoZSx0KXtyZXR1cm4gZS5jb21wYXJlVG8odCl9dmFyIGM7IWZ1bmN0aW9uKGUpe2VbZS5Ob25lPTBdPSJOb25lIixlW2UuRXh0ZW5kZWRFbnRyeT0xXT0iRXh0ZW5kZWRFbnRyeSIsZVtlLk9mZnNldEVudHJ5PTJdPSJPZmZzZXRFbnRyeSIsZVtlLlVuaWZpZWRFbnRyeT0zXT0iVW5pZmllZEVudHJ5IixlW2UuVW5pZmllZFNoaWZ0ZWRFbnRyeT00XT0iVW5pZmllZFNoaWZ0ZWRFbnRyeSJ9KGN8fChjPXt9KSk7Y2xhc3MgX3tjb25zdHJ1Y3RvcihlLHQscyl7dGhpcy5kZWNvcmF0b3JUeXBlPTAsKDAsci5hc3NlcnQpKE51bWJlci5pc0Zpbml0ZShlKSYmTnVtYmVyLmlzRmluaXRlKHQpJiZOdW1iZXIuaXNGaW5pdGUocyksIkludmFsaWQgYXJndW1lbnRzIiksdGhpcy5fZGF5T2ZXZWVrPWUsdGhpcy5fc3RhcnQ9dCx0aGlzLl9sZW5ndGg9c31zdGFydCgpe3JldHVybiB0aGlzLl9zdGFydCtpLm1pbnV0ZXNQZXJEYXkqdGhpcy5zZXNzaW9uU3RhcnREYXlzT2Zmc2V0KCl9c3RhcnRPZmZzZXQoKXtyZXR1cm4gdGhpcy5fc3RhcnR9ZW5kT2Zmc2V0KCl7cmV0dXJuIHRoaXMuX3N0YXJ0K3RoaXMuX2xlbmd0aH1zZXNzaW9uU3RhcnREYXlzT2Zmc2V0KCl7cmV0dXJuIGYodGhpcy5fc3RhcnQpfWlzT3Zlcm5pZ2h0KCl7cmV0dXJuIHRoaXMuX3N0YXJ0PDB9ZGF5T2ZXZWVrKCl7cmV0dXJuIHRoaXMuX2RheU9mV2Vla31zZXNzaW9uU3RhcnREYXlPZldlZWsoKXtsZXQgZT10aGlzLl9kYXlPZldlZWstdGhpcy5zZXNzaW9uU3RhcnREYXlzT2Zmc2V0KCk7cmV0dXJuIGU8aS5TVU5EQVkmJihlKz03KSxlfWxlbmd0aCgpe3JldHVybiB0aGlzLl9sZW5ndGh9aXNFeHRlbmRlZCgpe3JldHVybiExfWV4dGVuZGVkU3RhcnRPZmZzZXQoKXtyZXR1cm4gdGhpcy5zdGFydE9mZnNldCgpfWV4dGVuZGVkRW5kT2Zmc2V0KCl7cmV0dXJuIHRoaXMuZW5kT2Zmc2V0KCl9Y29tcGFyZVRvKGUpe2NvbnN0IHQ9dGhpcy5fd2VpZ2h0KCkscz10K3RoaXMuX2xlbmd0aCxuPWUuX3dlaWdodCgpLHI9bitlLl9sZW5ndGgKO3JldHVybiB0PD1uJiZuPHN8fG48PXQmJnQ8cj8wOnQ+bj8xOi0xfWNvbnRhaW5zKGUpe3JldHVybiB0aGlzLl9jb250YWlucygoMCxpLmdldF9taW51dGVzX3dpdGhfaG91cnMpKGUpLCgwLGkuZ2V0X2RheV9vZl93ZWVrKShlKSl9X3dlaWdodCgpe3JldHVybiB0aGlzLl9kYXlPZldlZWsqaS5taW51dGVzUGVyRGF5K3RoaXMuX3N0YXJ0fV9jb250YWlucyhlLHQpe2xldCBzPXQtdGhpcy5fZGF5T2ZXZWVrO3M+MCYmKHMtPTcpO2NvbnN0IG49cyppLm1pbnV0ZXNQZXJEYXkrZTtyZXR1cm4gbj49dGhpcy5fc3RhcnQmJm48dGhpcy5fc3RhcnQrdGhpcy5fbGVuZ3RofX1mdW5jdGlvbiBsKGUpe3JldHVybiAyPT09ZS5kZWNvcmF0b3JUeXBlfWNsYXNzIHUgZXh0ZW5kcyBfe2NvbnN0cnVjdG9yKGUsdCl7c3VwZXIoZS5kYXlPZldlZWsoKSxlLnN0YXJ0T2Zmc2V0KCksZS5sZW5ndGgoKSksdGhpcy5kZWNvcmF0b3JUeXBlPTIsdGhpcy5fZW50cnk9ZSx0aGlzLl9iYXJzT2Zmc2V0PXR9Z2V0RW50cnkoKXtyZXR1cm4gdGhpcy5fZW50cnl9YmFyc09mZnNldCgpe3JldHVybiB0aGlzLl9iYXJzT2Zmc2V0fWlzRXh0ZW5kZWQoKXtyZXR1cm4gdGhpcy5fZW50cnkuaXNFeHRlbmRlZCgpfWV4dGVuZGVkU3RhcnRPZmZzZXQoKXtyZXR1cm4gdGhpcy5fZW50cnkuZXh0ZW5kZWRTdGFydE9mZnNldCgpfWV4dGVuZGVkRW5kT2Zmc2V0KCl7cmV0dXJuIHRoaXMuX2VudHJ5LmV4dGVuZGVkRW5kT2Zmc2V0KCl9fWZ1bmN0aW9uIGcoZSl7cmV0dXJuIDE9PT1lLmRlY29yYXRvclR5cGV9Y2xhc3MgRSBleHRlbmRzIF97Y29uc3RydWN0b3IoZSx0LHMpe3N1cGVyKGUuZGF5T2ZXZWVrKCksZS5zdGFydE9mZnNldCgpLGUubGVuZ3RoKCkpLHRoaXMuZGVjb3JhdG9yVHlwZT0xLHRoaXMuX2VudHJ5PWUsdGhpcy5fZXh0ZW5kZWRTdGFydE9mZnNldD10LHRoaXMuX2V4dGVuZGVkRW5kT2Zmc2V0PXN9Z2V0RW50cnkoKXtyZXR1cm4gdGhpcy5fZW50cnl9aXNFeHRlbmRlZCgpe3JldHVybiEwfWV4dGVuZGVkU3RhcnRPZmZzZXQoKXtyZXR1cm4gdGhpcy5fZXh0ZW5kZWRTdGFydE9mZnNldH1leHRlbmRlZEVuZE9mZnNldCgpe3JldHVybiB0aGlzLl9leHRlbmRlZEVuZE9mZnNldH1leHRlbmRlZFN0YXJ0RGF5c09mZnNldCgpe3JldHVybiBmKHRoaXMuX2V4dGVuZGVkU3RhcnRPZmZzZXQpfWV4dGVuZGVkRW5kRGF5c09mZnNldCgpe3JldHVybiBmKHRoaXMuX2V4dGVuZGVkRW5kT2Zmc2V0KX19ZnVuY3Rpb24gUyhlKXtyZXR1cm4gMz09PWUuZGVjb3JhdG9yVHlwZX1jbGFzcyBrIGV4dGVuZHMgX3tjb25zdHJ1Y3RvcihlLHQpe3N1cGVyKGUuZGF5T2ZXZWVrKCksZS5zdGFydE9mZnNldCgpLGUubGVuZ3RoKCkpLHRoaXMuZGVjb3JhdG9yVHlwZT0zLHRoaXMuX2VudHJ5PWUsdGhpcy5fdW5pZmllZEVudHJpZXM9dCx0LnB1c2godGhpcyl9Z2V0RW50cnkoKXtyZXR1cm4gdGhpcy5fZW50cnl9Z2V0VW5pZmllZEVudHJpZXMoKXtyZXR1cm4gdGhpcy5fdW5pZmllZEVudHJpZXN9aGFzRXh0ZW5kZWRFbnRyeSgpe3JldHVybiB0aGlzLl91bmlmaWVkRW50cmllcy5zb21lKChlPT5lLmlzRXh0ZW5kZWQoKSkpfWlzRXh0ZW5kZWQoKXtyZXR1cm4gdGhpcy5fZW50cnkuaXNFeHRlbmRlZCgpfWV4dGVuZGVkU3RhcnRPZmZzZXQoKXtyZXR1cm4gdGhpcy5fZW50cnkuZXh0ZW5kZWRTdGFydE9mZnNldCgpfWV4dGVuZGVkRW5kT2Zmc2V0KCl7cmV0dXJuIHRoaXMuX2VudHJ5LmV4dGVuZGVkRW5kT2Zmc2V0KCl9fWZ1bmN0aW9uIEQoZSl7cmV0dXJuIDQ9PT1lLmRlY29yYXRvclR5cGV9Y2xhc3MgcCBleHRlbmRzIF97Y29uc3RydWN0b3IoZSx0KXtzdXBlcihlLmRheU9mV2VlaygpLGUuc3RhcnRPZmZzZXQoKSxlLmxlbmd0aCgpKSx0aGlzLmRlY29yYXRvclR5cGU9NCx0aGlzLl9lbnRyeT1lLHRoaXMuX3VuaWZpZWRFbnRyaWVzPXQsdC5wdXNoKHRoaXMpfWdldEVudHJ5KCl7cmV0dXJuIHRoaXMuX2VudHJ5fWdldFVuaWZpZWRFbnRyaWVzKCl7cmV0dXJuIHRoaXMuX3VuaWZpZWRFbnRyaWVzfWhhc0V4dGVuZGVkRW50cnkoKXtyZXR1cm4gdGhpcy5fdW5pZmllZEVudHJpZXMuc29tZSgoZT0+ZS5pc0V4dGVuZGVkKCkpKX1pc0V4dGVuZGVkKCl7cmV0dXJuIHRoaXMuX2VudHJ5LmlzRXh0ZW5kZWQoKX1leHRlbmRlZFN0YXJ0T2Zmc2V0KCl7cmV0dXJuIHRoaXMuX2VudHJ5LmV4dGVuZGVkU3RhcnRPZmZzZXQoKX1leHRlbmRlZEVuZE9mZnNldCgpe3JldHVybiB0aGlzLl9lbnRyeS5leHRlbmRlZEVuZE9mZnNldCgpfX1jbGFzcyBPe2NvbnN0cnVjdG9yKGUsdCxzKXt0aGlzLndlZWtJbmRleD1lLHRoaXMuZW50cnlJbmRleD10LHRoaXMuZW50cmllcz1zfWdldEVudHJ5KCl7cmV0dXJuIHRoaXMuZW50cmllc1t0aGlzLmVudHJ5SW5kZXhdfX1jbGFzcyBte2NvbnN0cnVjdG9yKGUsdCxzLG4pe3RoaXMuX21heFRyYWRpbmdEYXlMZW5ndGg9bnVsbCx0aGlzLl9saXN0PWUsdGhpcy5fZW50cmllc0J5RGF5PXQsdGhpcy5fZmlyc3REYXlPZldlZWs9cyx0aGlzLl93ZWVrRW5kc0NvdW50PW59Zmlyc3REYXlPZldlZWsoKXtyZXR1cm4gdGhpcy5fZmlyc3REYXlPZldlZWt9ZW50cmllc0J5RGF5KCl7cmV0dXJuIHRoaXMuX2VudHJpZXNCeURheX1saXN0KCl7cmV0dXJuIHRoaXMuX2xpc3R9aXNXZWVrRW5kKGUpe3JldHVybiF0aGlzLl9lbnRyaWVzQnlEYXkuaGFzKGUpfXdlZWtFbmRzQ291bnQoKXtyZXR1cm4gdGhpcy5fd2Vla0VuZHNDb3VudH1sb25nZXN0U2Vzc2lvbkxlbmd0aCgpe3JldHVybiAwPT09dGhpcy5fbGlzdC5sZW5ndGg/MDpNYXRoLm1heCguLi50aGlzLl9saXN0Lm1hcCgoZT0+ZS5sZW5ndGgoKSkpKX1tYXhUcmFkaW5nRGF5TGVuZ3RoKCl7aWYobnVsbD09dGhpcy5fbWF4VHJhZGluZ0RheUxlbmd0aCl7Y29uc3QgZT1uZXcgTWFwO2Zvcihjb25zdCB0IG9mIHRoaXMuX2xpc3Qpe2NvbnN0IHM9dC5kYXlPZldlZWsoKTtlLnNldChzLHQubGVuZ3RoKCkrKGUuZ2V0KHMpPz8wKSl9bGV0IHQ9MDtlLmZvckVhY2goKGU9Pnt0PU1hdGgubWF4KHQsZSl9KSksdGhpcy5fbWF4VHJhZGluZ0RheUxlbmd0aD10fQpyZXR1cm4gdGhpcy5fbWF4VHJhZGluZ0RheUxlbmd0aH19Y2xhc3MgV3tjb25zdHJ1Y3RvcihlLHQscyl7dGhpcy5fc3RhcnREYXk9ZSx0aGlzLl9lbnRyaWVzPXMsdGhpcy5fc3BlY0VuZERheT10fWdldEVudHJpZXMoKXtyZXR1cm4gdGhpcy5fZW50cmllc31nZXRTdGFydERheSgpe3JldHVybiB0aGlzLl9zdGFydERheX1nZXRTcGVjRW5kRGF5KCl7cmV0dXJuIHRoaXMuX3NwZWNFbmREYXl9aXNPcGVuRW5kZWQoKXtyZXR1cm4gbnVsbD09dGhpcy5fc3BlY0VuZERheX19fSwzMjkwNDEoZSx0LHMpe3MuZCh0LHtTZXNzaW9uc1NwZWNQYXJzZXI6KCk9Pmcsd29ya2luZ0RheXNBbmRXZWVrRW5kczooKT0+ZH0pO3ZhciBuPXMoMTM4NjM4KSxyPXMoNzAwODA5KSxpPXMoMzA4MjEpLG89cygzNDEwMzYpO2NvbnN0IGE9W3IuTU9OREFZLHIuVFVFU0RBWSxyLldFRE5FU0RBWSxyLlRIVVJTREFZLHIuRlJJREFZXSxkPVtyLlNVTkRBWSxyLk1PTkRBWSxyLlRVRVNEQVksci5XRURORVNEQVksci5USFVSU0RBWSxyLkZSSURBWSxyLlNBVFVSREFZXTtmdW5jdGlvbiBoKGUpe3JldHVybiBlPj00OCYmZTw9NTd9Y29uc3QgZj1bMCwzMSwyOCwzMSwzMCwzMSwzMCwzMSwzMSwzMCwzMSwzMCwzMV07Y2xhc3MgeSBleHRlbmRzIE1hcHtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5fa2V5U3RyaW5nc1RvS2V5PW5ldyBNYXB9Z2V0KGUpe2NvbnN0IHQ9dGhpcy5fa2V5U3RyaW5nc1RvS2V5LmdldChlLnRvU3RyaW5nKCkpO3JldHVybiB0JiZzdXBlci5nZXQodCl9c2V0KGUsdCl7Y29uc3Qgcz1lLnRvU3RyaW5nKCksbj10aGlzLl9rZXlTdHJpbmdzVG9LZXkuZ2V0KHMpO3JldHVybiB2b2lkIDAhPT1uJiZzdXBlci5kZWxldGUobiksdGhpcy5fa2V5U3RyaW5nc1RvS2V5LnNldChzLGUpLHN1cGVyLnNldChlLHQpfWhhcyhlKXtyZXR1cm4gdGhpcy5fa2V5U3RyaW5nc1RvS2V5LmhhcyhlLnRvU3RyaW5nKCkpfX1mdW5jdGlvbiBjKGUpe3JldHVybiBlLmxlbmd0aD4wfWZ1bmN0aW9uIF8oZSl7cmV0dXJuIDA9PT1lP3IubWludXRlc1BlckRheTplfWZ1bmN0aW9uIGwoZSx0LHMsbil7cmV0dXJuIHM9PT1uJiZ0PD1lP3MrMTpzfWZ1bmN0aW9uIHUoZSx0KXtpZihlPDB8fGU+PTcpdGhyb3cgbmV3IEVycm9yKGBlcnJvciBwYXJzaW5nIHNlc3Npb24sICR7dH0gY2Fubm90IGJlIG91dHNpZGUgWzAsNyksICR7dH09JHtlfWApfWNsYXNzIGd7Y29uc3RydWN0b3IoKXt0aGlzLmhpc3RvcnlFbnRyaWVzPVtdLHRoaXMudGltZXpvbmU9IiIsdGhpcy5hZGp1c3RTZXNzaW9uc0luZGV4ZXM9bnVsbH1wYXJzZVNlc3Npb25zKGUsdCl7dGhpcy5fcGFyc2VIaXN0b3J5RW50cmllcyhlLHQsITEpfXBhcnNlU2Vzc2lvbnNBbmRWYWxpZGF0ZURhdGVUaW1lKGUsdCl7dGhpcy5fcGFyc2VIaXN0b3J5RW50cmllcyhlLHQsITApfXN0YXRpYyBwYXJzZUhvbGlkYXlzQW5kQ29ycmVjdGlvbnMoZSx0LHMsbil7cmV0dXJuIHRoaXMuX3BhcnNlSG9saWRheXNBbmRDb3JyZWN0aW9uc0ltcGwoZSx0LHMsbil9c3RhdGljIHBhcnNlSG9saWRheXNBbmRDb3JyZWN0aW9uc0FuZFZhbGlkYXRlRGF0ZVRpbWUoZSx0LHMpe3JldHVybiB0aGlzLl9wYXJzZUhvbGlkYXlzQW5kQ29ycmVjdGlvbnNJbXBsKGUsdCxzLCEwKX1fY2xlYXJBbGwoKXt0aGlzLnRpbWV6b25lPSIiLHRoaXMuaGlzdG9yeUVudHJpZXM9W10sdGhpcy5hZGp1c3RTZXNzaW9uc0luZGV4ZXM9W119X3BhcnNlSGlzdG9yeUVudHJpZXMoZSx0LHMpe3RoaXMuX2NsZWFyQWxsKCk7Y29uc3Qgbj10LnNwbGl0KCIvIik7bGV0IHI9bnVsbCxpPW51bGw7dGhpcy5oYXNIaXN0b3J5Q29ycmVjdGlvbnM9bi5sZW5ndGg+MTtmb3IobGV0IHQ9MDt0PG4ubGVuZ3RoO3QrKyl7Y29uc3QgYT1uW3RdLnNwbGl0KCIjIik7bGV0IGQ9bnVsbDtpZih0IT09bi5sZW5ndGgtMSl7aWYoMiE9PWEubGVuZ3RoKXRocm93IG5ldyBFcnJvcihgYmFkIHNlc3Npb24gaGlzdG9yeSBlbnRyeSBkZWZpbml0aW9uOiAke25bdF19YCk7ZD1nLl9wYXJzZURheShhWzFdLCJzZXNzaW9uIGhpc3RvcnkgZW50cnkgZW5kIixzKS50b0NhbGVuZGFyKCl9ZWxzZXtpZigxIT09YS5sZW5ndGgpdGhyb3cgbmV3IEVycm9yKGBiYWQgc2Vzc2lvbiBoaXN0b3J5IGVudHJ5IGRlZmluaXRpb246ICR7blt0XX1gKTtkPW51bGx9aWYobnVsbCE9PWkmJm51bGwhPT1kJiZkLmdldFRpbWUoKTxpLmdldFRpbWUoKSl0aHJvdyBuZXcgRXJyb3IoYGhpc3Rvcnkgc2Vzc2lvbnMgYXJlIG5vdCBsaXN0ZWQgaW4gYXNjZW5kaW5nIG9yZGVyICgke2l9IC0+ICR7ZH1gKTtjb25zdCBoPXRoaXMuX3BhcnNlU2Vzc2lvbnNJbXBsKGUsYVswXSxzKTtyPXRoaXMuX2FkanVzdFN0YXJ0VG9QcmV2aW91c1Nlc3Npb24oaC5maXJzdERheU9mV2VlaygpKTtjb25zdCBmPW5ldyBvLlNlc3Npb25zU3BlY0hpc3RvcnlFbnRyeShyLGQsaCk7dGhpcy5oaXN0b3J5RW50cmllcy5wdXNoKGYpLGk9ZH19X3BhcnNlU2Vzc2lvbnNJbXBsKGUsdCxzKXt0aGlzLnRpbWV6b25lPWUsdD10aGlzLl9wYXJzZUZpcnN0RGF5T2ZXZWVrKHQpO2NvbnN0IG49bmV3IE1hcCxyPVtdO2lmKCIyNHg3Ij09PXQudG9Mb3dlckNhc2UoKSlmb3IoY29uc3QgZSBvZiBkKXtjb25zdCB0PWcuX2NyZWF0ZVNlc3Npb25FbnRyeShlLDAsMCwwLDApO3IucHVzaCh0KTtjb25zdCBzPVtdO3MucHVzaCh0KSxuLnNldChlLHMpfWVsc2V7bGV0IGU9ITE7Y29uc3QgaT1uZXcgTWFwO2Zvcihjb25zdCBzIG9mIHQuc3BsaXQoInwiKSl7Y29uc3QgdD1zLnNwbGl0KCI6IikuZmlsdGVyKGMpO2lmKDEhPT10Lmxlbmd0aCYmMiE9PXQubGVuZ3RoKXRocm93IG5ldyBFcnJvcihgYmFkIHNlc3Npb24gc2VjdGlvbjogJHtzfWApO2NvbnN0IG49MT09PXQubGVuZ3RoO2lmKG4pe2lmKGUpdGhyb3cgbmV3IEVycm9yKGBkdXBsaWNhdGVkIGRlZmF1bHQgc2VjdGlvbjogJHtzfWApO2U9ITB9Y29uc3Qgcj1uP2E6Zy5fcGFyc2VXb3JraW5nRGF5cyh0WzFdKTtmb3IoY29uc3QgZSBvZiByKW4mJmkuaGFzKGUpfHxpLnNldChlLHRbMF0pfWZvcihjb25zdCBlIG9mIGQpe2NvbnN0IHQ9aS5nZXQoZSkKO2lmKHZvaWQgMD09PXQpY29udGludWU7Y29uc3Qgbz1nLl9wYXJzZVNlc3Npb25EYXkoZSx0LHMpO2xldCBhPW4uZ2V0KGUpO3ZvaWQgMD09PWEmJihhPVtdLG4uc2V0KGUsYSkpO2Zvcihjb25zdCBlIG9mIG8pYS5wdXNoKGUpLHIucHVzaChlKX19ci5zb3J0KG8uY29tcGFyZVNlc3Npb25FbnRyaWVzKTtjb25zdCBpPW5ldyBTZXQ7Zm9yKGNvbnN0IGUgb2YgcilpLmFkZChlLmRheU9mV2VlaygpKTtjb25zdCBoPTctaS5zaXplO3JldHVybiBuZXcgby5TZXNzaW9uc1NwZWNFbnRyaWVzKHIsbix0aGlzLl9maXJzdERheU9mV2VlayxoKX1fcGFyc2VGaXJzdERheU9mV2VlayhlKXtjb25zdCB0PWUuc3BsaXQoIjsiKTtpZih0aGlzLl9maXJzdERheU9mV2Vlaz1yLk1PTkRBWSx0Lmxlbmd0aD4yKXRocm93IG5ldyBFcnJvcihgYmFkIHNlc3Npb25zIHNwZWM6ICR7ZX1gKTtpZigxPT09dC5sZW5ndGgpcmV0dXJuIGU7bGV0IHM9MTtsZXQgbj10WzBdLmluZGV4T2YoIi0iKT49MD9OYU46cGFyc2VJbnQodFswXSk7aWYoaXNOYU4obikmJihzPTAsbj1wYXJzZUludCh0WzFdKSksbjxyLlNVTkRBWXx8bj5yLlNBVFVSREFZKXRocm93IG5ldyBFcnJvcihgYmFkIHNlc3Npb25zIHNwZWM6ICR7ZX1gKTtyZXR1cm4gdGhpcy5fZmlyc3REYXlPZldlZWs9bix0W3NdfV9hZGp1c3RTdGFydFRvUHJldmlvdXNTZXNzaW9uKGUpe2lmKDA9PT10aGlzLmhpc3RvcnlFbnRyaWVzLmxlbmd0aClyZXR1cm4gbnVsbDtjb25zdCB0PSgwLG4uZW5zdXJlTm90TnVsbCkodGhpcy5oaXN0b3J5RW50cmllc1t0aGlzLmhpc3RvcnlFbnRyaWVzLmxlbmd0aC0xXS5nZXRTcGVjRW5kRGF5KCkpLHM9ZS0oMCxyLmdldF9kYXlfb2Zfd2VlaykodCk7aWYoMD09PXMpcmV0dXJuIHQ7Y29uc3QgaT0oMCxyLmNsb25lKSh0KTtyZXR1cm4oMCxyLmFkZF9kYXRlKShpLHMpLHQuZ2V0VGltZSgpPGkuZ2V0VGltZSgpfHwoMCxyLmFkZF9kYXRlKShpLDcpLGl9c3RhdGljIF9wYXJzZVNlc3Npb25EYXkoZSx0LHMpe2NvbnN0IG49W107Zm9yKGNvbnN0IHIgb2YgdC5zcGxpdCgiLCIpLmZpbHRlcihjKSlpZihyLmluY2x1ZGVzKG8uU0VTU0lPTl9TUEVDX1NZTUJPTF9VTklGSUVEKSl7Y29uc3QgaT1yLnNwbGl0KG8uU0VTU0lPTl9TUEVDX1NZTUJPTF9VTklGSUVEKSxhPVtdO2ZvcihsZXQgcj0wO3I8aS5sZW5ndGg7cisrKXtjb25zdCBkPXRoaXMuX3BhcnNlVW5pZmllZEludGVydmFsKGUsdCxpW3JdLDA9PT1yLHMpO24ucHVzaChuZXcgby5VbmlmaWVkRW50cnlEZWNvcmF0b3IoZCxhKSl9YS5zb3J0KG8uY29tcGFyZVNlc3Npb25FbnRyaWVzKX1lbHNlIGlmKHIuaW5jbHVkZXMoby5TRVNTSU9OX1NQRUNfU1lNQk9MX1VOSUZJRURfU0hJRlRFRCkpe2NvbnN0IGk9ci5zcGxpdChvLlNFU1NJT05fU1BFQ19TWU1CT0xfVU5JRklFRF9TSElGVEVEKSxhPVtdO2ZvcihsZXQgcj0wO3I8aS5sZW5ndGg7cisrKXtjb25zdCBkPXRoaXMuX3BhcnNlVW5pZmllZEludGVydmFsKGUsdCxpW3JdLDA9PT1yLHMpO24ucHVzaChuZXcgby5VbmlmaWVkU2hpZnRlZEVudHJ5RGVjb3JhdG9yKGQsYSkpfWEuc29ydChvLmNvbXBhcmVTZXNzaW9uRW50cmllcyl9ZWxzZSBuLnB1c2godGhpcy5fcGFyc2VTZXNzaW9uRW50cnkoZSxyLHMpKTtyZXR1cm4gbn1zdGF0aWMgX3BhcnNlVW5pZmllZEludGVydmFsKGUsdCxzLG4scil7aWYoIW4mJnMuaW5jbHVkZXMoby5TRVNTSU9OX1NQRUNfU1lNQk9MX0JBUlNfT0ZGU0VUKSl0aHJvdyBuZXcgRXJyb3IoYGJhZCBzZXNzaW9uOiAke3R9LiBVbmlmaWVkIGludGVydmFscyBjYW4gY29udGFpbiBvbmx5IG9uZSAnJHtvLlNFU1NJT05fU1BFQ19TWU1CT0xfQkFSU19PRkZTRVR9Jy4gU3BlY2lmeSAnJHtvLlNFU1NJT05fU1BFQ19TWU1CT0xfQkFSU19PRkZTRVR9JyBvbmx5IGZvciB0aGUgZmlyc3QgaW50ZXJ2YWxgKTtyZXR1cm4gdGhpcy5fcGFyc2VTZXNzaW9uRW50cnkoZSxzLHIpfXN0YXRpYyBfcGFyc2VTZXNzaW9uRW50cnkoZSx0LHMpe2NvbnN0IG49dC5zcGxpdChvLlNFU1NJT05fU1BFQ19TWU1CT0xfRVhURU5ERUQpO2lmKG4ubGVuZ3RoPjIpdGhyb3cgbmV3IEVycm9yKGBiYWQgc2Vzc2lvbjogJHt0fS4gT25seSBvbmUgJyR7by5TRVNTSU9OX1NQRUNfU1lNQk9MX0VYVEVOREVEfScgaXMgYWxsb3dlZCBwZXIgc2Vzc2lvbiBpbnRlcnZhbGApO2NvbnN0IHI9blswXS5zcGxpdChvLlNFU1NJT05fU1BFQ19TWU1CT0xfQkFSU19PRkZTRVQpO2lmKHIubGVuZ3RoPjIpdGhyb3cgbmV3IEVycm9yKGBiYWQgc2Vzc2lvbjogJHt0fS4gT25seSBvbmUgJyR7by5TRVNTSU9OX1NQRUNfU1lNQk9MX0JBUlNfT0ZGU0VUfScgaXMgYWxsb3dlZCBwZXIgc2Vzc2lvbiBpbnRlcnZhbGApO2NvbnN0IGk9clswXS5zcGxpdCgiLSIpO2lmKDIhPT1pLmxlbmd0aCl0aHJvdyBuZXcgRXJyb3IoYGJhZCBzZXNzaW9uOiAke3R9YCk7bGV0IGE9MCxkPWlbMF07aWYoZC5pbmNsdWRlcygiRiIpKXtjb25zdCBlPWQuc3BsaXQoIkYiKTtkPWVbMF0sYT0iIiE9PWVbMV0/cGFyc2VJbnQoZVsxXSk6MX1sZXQgaD0wLGY9aVsxXTtpZihmLmluY2x1ZGVzKCJGIikpe2NvbnN0IGU9Zi5zcGxpdCgiRiIpO2Y9ZVswXSxoPSIiIT09ZVsxXT9wYXJzZUludChlWzFdKToxfWNvbnN0IHk9dGhpcy5fbWludXRlc0Zyb21ISE1NKGQsdCxzKSxjPXRoaXMuX21pbnV0ZXNGcm9tSEhNTShmLHQscyk7bGV0IF89dGhpcy5fY3JlYXRlU2Vzc2lvbkVudHJ5KGUseSxjLGEsaCk7aWYoMj09PXIubGVuZ3RoKXtjb25zdCBlPXRoaXMuX21pbnV0ZXNGcm9tSEhNTShyWzFdLHQscyk7Xz10aGlzLl9kZWNvcmF0ZVdpdGhPZmZzZXQoXyxlLHksYyxhLGgpfWlmKDI9PT1uLmxlbmd0aCl7Y29uc3QgZT1uWzFdLnNwbGl0KCItIik7aWYoMiE9PWUubGVuZ3RoKXRocm93IG5ldyBFcnJvcihgYmFkIHNlc3Npb246ICR7dH0uIEluY29ycmVjdCBleHRlbmRlZCBpbnRlcnZhbGApO2xldCByPTAsaT1lWzBdO2lmKGkuaW5jbHVkZXMoIkYiKSl7Y29uc3QgZT1pLnNwbGl0KCJGIik7aT1lWzBdLHI9IiIhPT1lWzFdP3BhcnNlSW50KGVbMV0pOjF9bGV0IG89MCxhPWVbMV0KO2lmKGEuaW5jbHVkZXMoIkYiKSl7Y29uc3QgZT1hLnNwbGl0KCJGIik7YT1lWzBdLG89IiIhPT1lWzFdP3BhcnNlSW50KGVbMV0pOjF9Y29uc3QgZD10aGlzLl9taW51dGVzRnJvbUhITU0oaSx0LHMpLGg9dGhpcy5fbWludXRlc0Zyb21ISE1NKGEsdCxzKTtfPXRoaXMuX2RlY29yYXRlV2l0aEV4dGVuc2lvbihfLGQsaCxyLG8pfXJldHVybiBffXN0YXRpYyBfbWludXRlc0Zyb21ISE1NKGUsdCxzKXtpZig0PT09ZS5sZW5ndGgmJmgoZS5jaGFyQ29kZUF0KDApKSYmaChlLmNoYXJDb2RlQXQoMSkpJiZoKGUuY2hhckNvZGVBdCgyKSkmJmgoZS5jaGFyQ29kZUF0KDMpKSl7Y29uc3QgdD1wYXJzZUludChlKSxuPU1hdGgudHJ1bmModC8xMDApLHI9dCUxMDA7aWYoIXN8fG48MjQmJnI8NjApcmV0dXJuIHIrNjAqbn10aHJvdyBuZXcgRXJyb3IoYGluY29ycmVjdCBlbnRyeSBzeW50YXg6ICR7dH1gKX1zdGF0aWMgX3BhcnNlRGF5KGUsdCxzKXtpZig4PT09ZS5sZW5ndGgmJmgoZS5jaGFyQ29kZUF0KDApKSYmaChlLmNoYXJDb2RlQXQoMSkpJiZoKGUuY2hhckNvZGVBdCgyKSkmJmgoZS5jaGFyQ29kZUF0KDMpKSYmaChlLmNoYXJDb2RlQXQoNCkpJiZoKGUuY2hhckNvZGVBdCg1KSkmJmgoZS5jaGFyQ29kZUF0KDYpKSYmaChlLmNoYXJDb2RlQXQoNykpKXtjb25zdCB0PXBhcnNlSW50KGUuc3Vic3RyaW5nKDAsNCkpLG49cGFyc2VJbnQoZS5zdWJzdHJpbmcoNCw2KSkscj1wYXJzZUludChlLnN1YnN0cmluZyg2LDgpKTtpZighc3x8dGhpcy5faXNWYWxpZERheU9mTW9udGgocixuLHQpKXJldHVybiBuZXcgaS5CdXNpbmVzc0RheSh0LG4scil9dGhyb3cgbmV3IEVycm9yKGBiYWQgJHt0fSBkYXRlOiAke2V9YCl9c3RhdGljIF9pc1ZhbGlkRGF5T2ZNb250aChlLHQscyl7cmV0dXJuISh0PDF8fHQ+MTIpJiYoIShlPDF8fGU+Zlt0XSl8fCEoMiE9PXR8fDI5IT09ZXx8ISgwLHIuaXNfbGVhcF95ZWFyKShzKSkpfXN0YXRpYyBfcGFyc2VXb3JraW5nRGF5cyhlKXtjb25zdCB0PVtdO2ZvcihsZXQgcz0wO3M8ZS5sZW5ndGg7cysrKXtjb25zdCBuPWUuY2hhckNvZGVBdChzKS00ODtpZihuPDF8fG4+Nyl0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgZGF5cyBzcGVjaWZpY2F0aW9uOiAke2V9YCk7dC5pbmNsdWRlcyhuKXx8dC5wdXNoKG4pfXJldHVybiB0fXN0YXRpYyBfY3JlYXRlU2Vzc2lvbkVudHJ5KGUsdCxzLG4saSl7aWYodShuLCJzdGFydERheXNBZ28iKSx1KGksImVuZERheXNBZ28iKSwobj1sKHQscz1fKHMpLG4saSkpPGkpdGhyb3cgbmV3IEVycm9yKGBlcnJvciBwYXJzaW5nIHNlc3Npb24sIHZpb2xhdGlvbiBzdGFydERheXNBZ28gPj0gZW5kRGF5c0Fnbywgc3RhcnREYXlzQWdvPSR7bn0sIGVuZERheXNBZ289JHtpfWApO24+MCYmKHQtPW4qci5taW51dGVzUGVyRGF5KSxpPjAmJihzLT1pKnIubWludXRlc1BlckRheSk7Y29uc3QgYT1zLXQ7aWYoIShlPj1yLlNVTkRBWSYmZTw9ci5TQVRVUkRBWSYmdDxyLm1pbnV0ZXNQZXJEYXkmJmE+MCkpdGhyb3cgbmV3IEVycm9yKCJlcnJvciBwYXJzaW5nIHNlc3Npb24sIGludmFsaWQgZGF0YSIpO3JldHVybiBuZXcgby5TZXNzaW9uc1NwZWNFbnRyeShlLHQsYSl9c3RhdGljIF9kZWNvcmF0ZVdpdGhFeHRlbnNpb24oZSx0LHMsbixpKXtpZih1KG4sImV4dGVuZGVkLnN0YXJ0RGF5c0FnbyIpLHUoaSwiZXh0ZW5kZWQuZW5kRGF5c0FnbyIpLChuPWwodCxzPV8ocyksbixpKSk+MCYmKHQtPW4qci5taW51dGVzUGVyRGF5KSxpPjAmJihzLT1pKnIubWludXRlc1BlckRheSksdD09PWUuc3RhcnRPZmZzZXQoKSYmcz09PWUuZW5kT2Zmc2V0KCkpcmV0dXJuIGU7aWYodD5lLnN0YXJ0T2Zmc2V0KCl8fHM8ZS5lbmRPZmZzZXQoKSl0aHJvdyBuZXcgRXJyb3IoImVycm9yIHBhcnNpbmcgc2Vzc2lvbiwgZXh0ZW5kZWQgaW50ZXJ2YWwgbXVzdCBiZSB3aWRlciB0aGFuIG9yIGVxdWFsIHRvIHRoZSBiYXNlIGludGVydmFsIik7cmV0dXJuIG5ldyBvLkV4dGVuZGVkRW50cnlEZWNvcmF0b3IoZSx0LHMpfXN0YXRpYyBfZGVjb3JhdGVXaXRoT2Zmc2V0KGUsdCxzLG4saSxhKXtyZXR1cm4gdD09PXM/ZTooaT1sKHMsbj1fKG4pLGksYSksdD5zJiYodC09ci5taW51dGVzUGVyRGF5KSxpPjAmJih0LT1pKnIubWludXRlc1BlckRheSksbmV3IG8uT2Zmc2V0RW50cnlEZWNvcmF0b3IoZSx0KSl9c3RhdGljIF9wYXJzZUhvbGlkYXlzQW5kQ29ycmVjdGlvbnNJbXBsKGUsdCxzLG4pe2NvbnN0IGk9bmV3IHk7aWYoIiIhPT10KXtjb25zdCBlPVtdO2Zvcihjb25zdCBzIG9mIHQuc3BsaXQoIiwiKSl7Y29uc3QgdD10aGlzLl9wYXJzZURheShzLCJob2xpZGF5IixuKTtpLnNldCh0LGUpfX1pZigiIj09PXMpcmV0dXJuIGk7Zm9yKGNvbnN0IGUgb2Ygcy5zcGxpdCgiOyIpKXtjb25zdCB0PWUuc3BsaXQoIjoiKTtpZigyIT09dC5sZW5ndGgpdGhyb3cgbmV3IEVycm9yKGBiYWQgY29ycmVjdGlvbiBzZWN0aW9uOiAke2V9YCk7aWYoImRheW9mZiI9PT10WzBdKWZvcihjb25zdCBlIG9mIHRbMV0uc3BsaXQoIiwiKSl7Y29uc3QgdD10aGlzLl9wYXJzZURheShlLCJjb3JyZWN0aW9uIixuKTtpLnNldCh0LFtdKX1lbHNlIGZvcihjb25zdCBlIG9mIHRbMV0uc3BsaXQoIiwiKSl7Y29uc3Qgcz10aGlzLl9wYXJzZURheShlLCJjb3JyZWN0aW9uIixuKSxvPSgwLHIuZ2V0X2RheV9vZl93ZWVrKShzLnRvQ2FsZW5kYXIoKSksYT10aGlzLl9wYXJzZVNlc3Npb25EYXkobyx0WzBdLG4pO2kuc2V0KHMsYSl9fXJldHVybiBpfX19LDU1OTY5KGUsdCxzKXtzLmQodCx7U2Vzc2lvbnNTcGVjOigpPT5nfSk7dmFyIG49cygxMzg2MzgpLHI9cyg3MDA4MDkpLGk9cygxOTg5MDEpLG89cygzMDgyMSksYT1zKDM0MTAzNiksZD1zKDMyOTA0MSk7ZnVuY3Rpb24gaChlLHQpe3JldHVybiBlLmNvbXBhcmVUbyh0KTwwfWZ1bmN0aW9uIGYoZSx0KXsKY29uc3Qgcz1lLmRheU9mV2VlaygpKnIubWludXRlc1BlckRheSxuPXMrZS5leHRlbmRlZFN0YXJ0T2Zmc2V0KCksaT1zK2UuZXh0ZW5kZWRFbmRPZmZzZXQoKSxvPXQuZGF5T2ZXZWVrKCkqci5taW51dGVzUGVyRGF5LGE9byt0LmV4dGVuZGVkU3RhcnRPZmZzZXQoKSxkPW8rdC5leHRlbmRlZEVuZE9mZnNldCgpO3JldHVybiEobjw9YSYmYTxpfHxhPD1uJiZuPGQpJiZuPGF9ZnVuY3Rpb24geShlLHQpe2NvbnN0IHM9ZS5kYXlPZldlZWsoKSpyLm1pbnV0ZXNQZXJEYXksbj1zK2UuZXh0ZW5kZWRTdGFydE9mZnNldCgpLGk9cytlLmV4dGVuZGVkRW5kT2Zmc2V0KCksbz10LmRheU9mV2VlaygpKnIubWludXRlc1BlckRheSxhPW8rdC5leHRlbmRlZFN0YXJ0T2Zmc2V0KCksZD1vK3QuZXh0ZW5kZWRFbmRPZmZzZXQoKTtyZXR1cm4gbjw9YSYmYTxpfHxhPD1uJiZuPGQ/MDpuPmE/MTotMX1jb25zdCBjPSgwLHIuZ2V0X3RpbWV6b25lKSgiRXRjL1VUQyIpO2Z1bmN0aW9uIF8oZSl7cmV0dXJuIDFlNCplLnllYXIrMTAwKmUubW9udGgrZS5kYXl9dmFyIGw7IWZ1bmN0aW9uKGUpe2VbZS5DbG9zZXN0PTBdPSJDbG9zZXN0IixlW2UuRmlyc3RJbkRheT0tMV09IkZpcnN0SW5EYXkiLGVbZS5MYXN0SW5EYXk9MV09Ikxhc3RJbkRheSJ9KGx8fChsPXt9KSk7Y2xhc3MgdXtjb25zdHJ1Y3RvcihlKXt0aGlzLl92YWx1ZT1lfWdldCgpe3JldHVybiB0aGlzLl92YWx1ZX1zZXQoZSl7dGhpcy5fdmFsdWU9ZX19Y2xhc3MgZ3tjb25zdHJ1Y3RvcihlPSJFdGMvVVRDIix0PSIwMDAwLTAwMDAiLHM9IiIsbj0iIixpPSExKXtjb25zdCBvPW5ldyBkLlNlc3Npb25zU3BlY1BhcnNlcjtpP28ucGFyc2VTZXNzaW9uc0FuZFZhbGlkYXRlRGF0ZVRpbWUoZSx0KTpvLnBhcnNlU2Vzc2lvbnMoZSx0KSx0aGlzLl9lbnRyaWVzPW8uaGlzdG9yeUVudHJpZXMsdGhpcy5faGFzSGlzdG9yeUNvcnJlY3Rpb25zPW8uaGFzSGlzdG9yeUNvcnJlY3Rpb25zLHRoaXMuX3ByZXNlbnRIaXN0b3J5RW50cnk9by5oaXN0b3J5RW50cmllc1tvLmhpc3RvcnlFbnRyaWVzLmxlbmd0aC0xXSx0aGlzLl90aW1lem9uZT1vLnRpbWV6b25lLHRoaXMuX3RpbWV6b25lT2JqPSgwLHIuZ2V0X3RpbWV6b25lKShvLnRpbWV6b25lKSx0aGlzLl9ob2xpZGF5QW5kQ29ycmVjdGlvbk1hcD1pP2QuU2Vzc2lvbnNTcGVjUGFyc2VyLnBhcnNlSG9saWRheXNBbmRDb3JyZWN0aW9uc0FuZFZhbGlkYXRlRGF0ZVRpbWUoZSxzLG4pOmQuU2Vzc2lvbnNTcGVjUGFyc2VyLnBhcnNlSG9saWRheXNBbmRDb3JyZWN0aW9ucyhlLHMsbixpKTtjb25zdCBhPXRoaXMuX2hvbGlkYXlBbmRDb3JyZWN0aW9uTWFwLmtleXMoKTt0aGlzLl9lbnRyaWVzSGFzaD1uZXcgTWFwO2NvbnN0IGg9dGhpcy5fcHJlcGFyZVNlc3Npb25zQm9yZGVyUGFyYW1zKCk7dGhpcy5fYm9yZGVyV2Vla3NJbmRpY2VzSGFzaD1oLmJvcmRlcldlZWtzSW5kaWNlc0hhc2gsdGhpcy5feWVhclRvV2Vla3NJbmRpY2VzSGFzaD1oLnllYXJUb1dlZWtzSW5kaWNlc0hhc2gsdGhpcy5fd2Vla0luZGljZXNPZkxhc3RIaXN0b3J5V2Vlaz1oLndlZWtJbmRpY2VzT2ZMYXN0SGlzdG9yeVdlZWssdGhpcy5fcHJlc2VudFN0YXJ0V2Vla0luZGV4PWguc3RhcnRQcmVzZW50U2Vzc2lvbldlZWtJbmRleCx0aGlzLl95ZWFyVG9DYWxjdWxhdGVkQWRkZWRXZWVrSW5kaWNlc0hhc2g9bmV3IE1hcCwiIj09PXMmJiIiPT09biYmbnVsbD09PXRoaXMuX3dlZWtJbmRpY2VzT2ZMYXN0SGlzdG9yeVdlZWs/dGhpcy5faXNUaGVyZUNvcnJlY3Rpb25zPSExOnRoaXMuX2lzVGhlcmVDb3JyZWN0aW9ucz0hMDtmb3IoY29uc3QgZSBvZiBhKXtjb25zdCB0PXRoaXMuZ2V0V2Vla0luZGV4KGUudG9DYWxlbmRhcigpKTt0aGlzLl9lbnRyaWVzSGFzaC5zZXQodCxuZXcgdShudWxsKSl9dGhpcy5fc29ydGVkSG9saWRheXM9Wy4uLnRoaXMuX2hvbGlkYXlBbmRDb3JyZWN0aW9uTWFwLmVudHJpZXMoKV0ubWFwKCgoW2UsdF0pPT4oe2tleTpfKGUpLGRheTplLHNlc3Npb25zOnR9KSkpLnNvcnQoKChlLHQpPT5lLmtleS10LmtleSkpLHRoaXMuX2hvbGlkYXlDb3VudFByZWZpeFN1bXM9dGhpcy5faGFzSGlzdG9yeUNvcnJlY3Rpb25zP251bGw6dGhpcy5fYnVpbGRIb2xpZGF5Q291bnRQcmVmaXhTdW1zKCl9aGFzSGlzdG9yeUNvcnJlY3Rpb25zKCl7cmV0dXJuIHRoaXMuX2hhc0hpc3RvcnlDb3JyZWN0aW9uc31maXJzdERheU9mV2Vlaygpe3JldHVybiB0aGlzLl9wcmVzZW50SGlzdG9yeUVudHJ5LmdldEVudHJpZXMoKS5maXJzdERheU9mV2VlaygpfWluY2x1ZGVzRGF5KGUpe3JldHVybiB0aGlzLl9nZXRFbnRyaWVzRm9yRGF5KGUpLmxlbmd0aD4wfWdldEVudHJpZXNGb3JXZWVrKGUpe2lmKCF0aGlzLl9pc1RoZXJlQ29ycmVjdGlvbnMpcmV0dXJuIHRoaXMuX3ByZXNlbnRIaXN0b3J5RW50cnkuZ2V0RW50cmllcygpOygwLG4uYXNzZXJ0KShlPj0wKTtjb25zdCB0PWUscz10aGlzLl9lbnRyaWVzSGFzaC5nZXQodCk7aWYodm9pZCAwPT09cyl7cmV0dXJuIHRoaXMuX2dldEhpc3RvcnlBbmRJbmRleEZvcldlZWsodCkuZ2V0RW50cmllcygpfWxldCByPXMuZ2V0KCk7aWYobnVsbCE9PXIpcmV0dXJuIHI7bGV0IGk9bnVsbDtjb25zdCBoPXRoaXMuX2JvcmRlcldlZWtzSW5kaWNlc0hhc2guZ2V0KHQpO2k9dm9pZCAwPT09aD90aGlzLl9nZXRIaXN0b3J5QW5kSW5kZXhGb3JXZWVrKHQpLmdldEVudHJpZXMoKTp0aGlzLl9wcmVwYXJlQm9yZGVyV2Vla0hpc3RvcnkoaCk7Y29uc3QgZj1uZXcgTWFwKGkuZW50cmllc0J5RGF5KCkpO2xldCB5PVsuLi5pLmxpc3QoKV07Y29uc3QgYz10aGlzLl93ZWVrSW5kZXhUb0xvY2FsRGF0ZVRpbWUoZSksXz10aGlzLl93ZWVrSW5kZXhUb0xvY2FsRGF0ZVRpbWUoZSsxKSxsPW8uQnVzaW5lc3NEYXkuZnJvbUNhbGVuZGFyKGMpLHU9by5CdXNpbmVzc0RheS5mcm9tQ2FsZW5kYXIoXyk7Zm9yKGNvbnN0IGUgb2YgdGhpcy5fc2VsZWN0SG9saWRheXMobCx1KSl7Y29uc3QgdD1lLmRheS5nZXREYXlPZldlZWsoKTt5PXkuZmlsdGVyKChlPT5lLmRheU9mV2VlaygpIT09dCkpLHkucHVzaCguLi5lLnNlc3Npb25zKSwKMD09PWUuc2Vzc2lvbnMubGVuZ3RoP2YuZGVsZXRlKHQpOmYuc2V0KHQsZS5zZXNzaW9ucyl9eS5zb3J0KGEuY29tcGFyZVNlc3Npb25FbnRyaWVzKTtjb25zdCBnPWQud29ya2luZ0RheXNBbmRXZWVrRW5kcy5sZW5ndGgtZi5zaXplO3JldHVybiByPW5ldyBhLlNlc3Npb25zU3BlY0VudHJpZXMoeSxmLGkuZmlyc3REYXlPZldlZWsoKSxnKSxzLnNldChyKSxyfWdldEhpc3RvcnlCeUluZGV4KGUpe3JldHVybiB0aGlzLl9lbnRyaWVzW2VdfXRpbWV6b25lKCl7cmV0dXJuIHRoaXMuX3RpbWV6b25lfXRpbWV6b25lT2JqKCl7cmV0dXJuIHRoaXMuX3RpbWV6b25lT2JqfWxvbmdlc3RTZXNzaW9uTGVuZ3RoKCl7bGV0IGU9dGhpcy5fcHJlc2VudEhpc3RvcnlFbnRyeS5nZXRFbnRyaWVzKCkubG9uZ2VzdFNlc3Npb25MZW5ndGgoKTtmb3IobGV0IHQ9MDt0PHRoaXMuX2VudHJpZXMubGVuZ3RoLTE7dCsrKXtjb25zdCBzPXRoaXMuX2VudHJpZXNbdF0uZ2V0RW50cmllcygpLmxvbmdlc3RTZXNzaW9uTGVuZ3RoKCk7ZT1NYXRoLm1heChlLHMpfWxldCB0PS0xLzA7Zm9yKGNvbnN0IGUgb2YgdGhpcy5faG9saWRheUFuZENvcnJlY3Rpb25NYXAudmFsdWVzKCkpdD1NYXRoLm1heCh0LC4uLmUubWFwKChlPT5lLmxlbmd0aCgpKSkpO3JldHVybiBNYXRoLm1heCh0LGUpfWlzV2Vla0VuZChlKXtjb25zdCB0PXRoaXMuZ2V0V2Vla0luZGV4KGUpO2xldCBzO3JldHVybiBzPXZvaWQgMD09PXRoaXMuX2JvcmRlcldlZWtzSW5kaWNlc0hhc2guZ2V0KHQpP3RoaXMuX2dldEhpc3RvcnlBbmRJbmRleEZvcldlZWsodCkuZ2V0RW50cmllcygpOnRoaXMuZ2V0RW50cmllc0ZvcldlZWsodCkscy5pc1dlZWtFbmQoKDAsci5nZXRfZGF5X29mX3dlZWspKGUpKX1pc0NhbFdlZWtFbmQoZSl7Y29uc3QgdD0oMCxyLmdldF9kYXlfb2Zfd2VlaykoZSk7aWYoIXRoaXMuX2lzVGhlcmVDb3JyZWN0aW9ucylyZXR1cm4gdGhpcy5fcHJlc2VudEhpc3RvcnlFbnRyeS5nZXRFbnRyaWVzKCkuaXNXZWVrRW5kKHQpO2NvbnN0IHM9dGhpcy5nZXRXZWVrSW5kZXgoZSksbj10aGlzLmdldEVudHJpZXNGb3JXZWVrKHMpLGk9by5CdXNpbmVzc0RheS5mcm9tQ2FsZW5kYXIoZSksYT10aGlzLl9ob2xpZGF5QW5kQ29ycmVjdGlvbk1hcC5nZXQoaSk7cmV0dXJuIHZvaWQgMD09PWE/bi5pc1dlZWtFbmQodCk6MD09PWEubGVuZ3RofWhvbGlkYXlzRnJvbVllYXJTdGFydChlKXtjb25zdCB0PWUgaW5zdGFuY2VvZiBvLkJ1c2luZXNzRGF5P2U6by5CdXNpbmVzc0RheS5mcm9tQ2FsZW5kYXIoZSk7cmV0dXJuIHRoaXMuX2hvbGlkYXlzRnJvbVllYXJTdGFydCh0KX1kYXlzT2ZmRnJvbVllYXJTdGFydChlKXtjb25zdCB0PSgwLHIuZ2V0X2NhbCkoYywoMCxyLmdldF95ZWFyKShlKSxyLkpBTlVBUlksMSkscz10aGlzLmdldFdlZWtJbmRleCh0KSxuPSgwLHIuZ2V0X2RheV9vZl93ZWVrKSh0KSxpPSgwLHIuZ2V0X2RheV9vZl93ZWVrKShlKS0xO2lmKCgwLHIuZ2V0X2RheV9vZl95ZWFyKShlKStuPD1yLkxBU1RfREFZX09GX1dFRUsrci5GSVJTVF9EQVlfT0ZfV0VFSylyZXR1cm4gdGhpcy5fZ2V0RGF5c09mZkZvcldlZWtJbkJvcmRlcnMocyxuLGkpO2NvbnN0IG89dGhpcy5nZXRXZWVrSW5kZXgoZSk7bGV0IGE9dGhpcy5fZ2V0RGF5c09mZkZvcldlZWtJbkJvcmRlcnMocyxuLHIuTEFTVF9EQVlfT0ZfV0VFSyk7Zm9yKGxldCBlPXMrMTtlPG87ZSsrKXthKz10aGlzLmdldEVudHJpZXNGb3JXZWVrKGUpLndlZWtFbmRzQ291bnQoKX1yZXR1cm4gYSs9dGhpcy5fZ2V0RGF5c09mZkZvcldlZWtJbkJvcmRlcnMobyxyLkZJUlNUX0RBWV9PRl9XRUVLLGkpLGF9d2Vla0VuZHNDb3VudEZvclNpbmdsZVNlc3Npb24oKXtyZXR1cm4oMCxuLmFzc2VydCkoIXRoaXMuaGFzSGlzdG9yeUNvcnJlY3Rpb25zKCkpLHRoaXMuX3ByZXNlbnRIaXN0b3J5RW50cnkuZ2V0RW50cmllcygpLndlZWtFbmRzQ291bnQoKX1pbnRyYWRheUNhbkJlQnVpbHRGcm9tMjR4NyhlKXtmb3IoY29uc3QgdCBvZiB0aGlzLl9lbnRyaWVzKWlmKCF0LmdldEVudHJpZXMoKS5saXN0KCkuZXZlcnkoKHQ9PnQuc3RhcnQoKSVlPT0wJiZ0Lmxlbmd0aCgpJWU9PTApKSlyZXR1cm4hMTtyZXR1cm4hMH1pbnRyYWRheUNhbkJlQnVpbHRGcm9tMjR4N1NlY29uZHMoZSl7Zm9yKGNvbnN0IHQgb2YgdGhpcy5fZW50cmllcylpZighdC5nZXRFbnRyaWVzKCkubGlzdCgpLmV2ZXJ5KCh0PT42MCp0LnN0YXJ0KCklZT09MCYmNjAqdC5sZW5ndGgoKSVlPT0wKSkpcmV0dXJuITE7cmV0dXJuITB9aW5kZXhPZlNlc3Npb24oZSx0LHMsbz1oKXsoMCxuLmFzc2VydCkodD49ci5TVU5EQVkmJnQ8PXIuU0FUVVJEQVkpLCgwLG4uYXNzZXJ0KShzPj0wJiZzPHIubWludXRlc1BlckRheSk7Y29uc3QgZD10aGlzLmdldEVudHJpZXNGb3JXZWVrKGUpLGY9ZC5saXN0KCk7bGV0IHk9KDAsaS5sb3dlcmJvdW5kKShmLG5ldyBhLlNlc3Npb25zU3BlY0VudHJ5KHQscywwKSxvKTtpZih5PGYubGVuZ3RoKXJldHVybiBuZXcgYS5TZXNzaW9uc1NwZWNFbnRyeUluZGV4KGUseSxbLi4uZl0pO2xldCBjPWUrMSxfPXRoaXMuZ2V0RW50cmllc0ZvcldlZWsoYyk7aWYoMCE9PV8ubGlzdCgpLmxlbmd0aCl7Y29uc3QgZT03LXQrXy5maXJzdERheU9mV2VlaygpLTE7aWYocz0tKHIubWludXRlc1BlckRheS1zK2Uqci5taW51dGVzUGVyRGF5KSx5PSgwLGkubG93ZXJib3VuZCkoXy5saXN0KCksbmV3IGEuU2Vzc2lvbnNTcGVjRW50cnkoXy5maXJzdERheU9mV2VlaygpLHMsMCksbykseTxfLmxpc3QoKS5sZW5ndGgpcmV0dXJuIG5ldyBhLlNlc3Npb25zU3BlY0VudHJ5SW5kZXgoYyx5LFsuLi5fLmxpc3QoKV0pfWZvcig7OylpZihjKysscy09ci5taW51dGVzUGVyV2VlayxfPXRoaXMuZ2V0RW50cmllc0ZvcldlZWsoYyksMCE9PV8ubGlzdCgpLmxlbmd0aCYmKHk9KDAsaS5sb3dlcmJvdW5kKShfLmxpc3QoKSxuZXcgYS5TZXNzaW9uc1NwZWNFbnRyeShkLmZpcnN0RGF5T2ZXZWVrKCkscywwKSxvKSwhKHk+PV8ubGlzdCgpLmxlbmd0aCkpKXJldHVybiBuZXcgYS5TZXNzaW9uc1NwZWNFbnRyeUluZGV4KGMseSxbLi4uXy5saXN0KCldKX0KZmluZFNlc3Npb24oZSx0LHMsbj0wLHI9aCl7Y29uc3QgaT10aGlzLmluZGV4T2ZTZXNzaW9uKGUsdCxzLHIpLG89aS5lbnRyaWVzO2xldCBkPWkuZW50cnlJbmRleDtpZigwIT09bil7Y29uc3QgZT1vW2RdLmRheU9mV2VlaygpLHQ9bj4wPzE6LTE7Zm9yKDs7KXtjb25zdCBzPWQrdDtpZihzPDB8fHM+PW8ubGVuZ3RofHxvW3NdLmRheU9mV2VlaygpIT09ZSlicmVhaztkPXN9fXJldHVybiBuZXcgYS5TZXNzaW9uc1NwZWNFbnRyeUluZGV4KGkud2Vla0luZGV4LGQsbyl9Z2V0V2Vla0luZGV4KGUpe3JldHVybiB0aGlzLl9pc1RoZXJlQ29ycmVjdGlvbnM/Zy5fZ2V0V2Vla0luZGV4SW1wbChlKTowfWNvcnJlY3RUcmFkaW5nRGF5KGUpe2NvbnN0IHQ9dGhpcy5fY29ycmVjdFRyYWRpbmdEYXkodGhpcy5nZXRXZWVrSW5kZXgoZSksKDAsci5nZXRfZGF5X29mX3dlZWspKGUpLCgwLHIuZ2V0X21pbnV0ZXNfd2l0aF9ob3VycykoZSkpLHM9KDAsci5jbG9uZSkoZSk7cmV0dXJuKDAsci5hZGRfZGF0ZSkocyx0KSxzfWFsaWduVG9TZXNzaW9uU3RhcnQoZSx0PTApe2NvbnN0IHM9KDAsci5nZXRfZGF5X29mX3dlZWspKGUpLG49KDAsci5nZXRfbWludXRlc19mcm9tX21pZG5pZ2h0KShlKSxpPXRoaXMuZ2V0V2Vla0luZGV4KGUpLG89dGhpcy5maW5kU2Vzc2lvbihpLHMsbix0KSxhPW8uZ2V0RW50cnkoKSxkPWEuZGF5T2ZXZWVrKCktcys3Kk1hdGgudHJ1bmMoby53ZWVrSW5kZXgtaSk7MCE9PWQmJigwLHIuYWRkX2RhdGUpKGUsZCk7Y29uc3QgaD1hLnN0YXJ0T2Zmc2V0KCk7cmV0dXJuKDAsci5zZXRfaG1zKShlLE1hdGgudHJ1bmMoaC82MCksaCU2MCwwLDApLGEubGVuZ3RoKCl9YWxpZ25Ub0VudHJ5U3RhcnQoZSx0PTApe3JldHVybiB0aGlzLl9kb0FsaWduVG9FbnRyeVN0YXJ0KGUsdCxoKX1hbGlnblRvRW50cnlTdGFydEV4dGVuZGVkKGUsdD0wKXtyZXR1cm4gdGhpcy5fZG9BbGlnblRvRW50cnlTdGFydChlLHQsZil9YnVzaW5lc3NEYXlzVG9DYWxlbmRhckRheXMoZSx0KXtyZXR1cm4gdGhpcy5fYnVzaW5lc3NEYXlzVG9DYWxlbmRhckRheXModGhpcy5nZXRXZWVrSW5kZXgoZSksKDAsci5nZXRfZGF5X29mX3dlZWspKGUpLHQpfWNhbGVuZGFyRGF5c1RvQnVzaW5lc3NEYXlzKGUsdCl7cmV0dXJuIHRoaXMuX2NhbGVuZGFyRGF5c1RvQnVzaW5lc3NEYXlzKHRoaXMuZ2V0V2Vla0luZGV4KGUpLCgwLHIuZ2V0X2RheV9vZl93ZWVrKShlKSx0KX1hbGlnblRvTmVhcmVzdFNlc3Npb25TdGFydChlLHQpe3JldHVybiB0aGlzLl9hbGlnblRvTmVhcmVzdFNlc3Npb25WYWx1ZShlLHQsdGhpcy5fZW50cnlTZXNzaW9uU3RhcnQuYmluZCh0aGlzKSl9YWxpZ25Ub05lYXJlc3RTZXNzaW9uRW5kKGUsdCl7cmV0dXJuIHRoaXMuX2FsaWduVG9OZWFyZXN0U2Vzc2lvblZhbHVlKGUsdCx0aGlzLl9lbnRyeVNlc3Npb25FbmQuYmluZCh0aGlzKSl9Ym9yZGVyc09mRGFpbHlCYXIoZSl7Y29uc3QgdD10aGlzLl9nZXRFbnRyaWVzRm9yRGF5KGUpO2lmKDA9PT10Lmxlbmd0aClyZXR1cm4gbnVsbDtjb25zdCBzPXQuc2xpY2UoKTtzLnNvcnQoYS5jb21wYXJlU2Vzc2lvbkVudHJpZXMpO2NvbnN0IG49dGhpcy5fZ2V0TGVmdEVudHJ5Qm9yZGVyKGUsc1swXSksaT1zW3MubGVuZ3RoLTFdLG89NjAqKGkuc3RhcnRPZmZzZXQoKStpLmxlbmd0aCgpKS0xLGQ9KDAsci5jbG9uZSkoZSk7cmV0dXJuKDAsci5zZXRfc2Vjb25kcykoZCxvKSx7ZnJvbTpuLHRvOmR9fWxlZnRCb3JkZXJPZkRhaWx5QmFyKGUpe2NvbnN0IHQ9dGhpcy5fZ2V0RW50cmllc0ZvckRheShlKTtpZigwPT09dC5sZW5ndGgpcmV0dXJuIG51bGw7Y29uc3Qgcz10LnNsaWNlKCk7cmV0dXJuIHMuc29ydChhLmNvbXBhcmVTZXNzaW9uRW50cmllcyksdGhpcy5fZ2V0TGVmdEVudHJ5Qm9yZGVyKGUsc1swXSl9Y2hlY2tTZXNzaW9uKCl7cmV0dXJuIHRoaXMuX2NoZWNrRWFjaEhpc3RvcnlTZXNzaW9uKCkmJnRoaXMuX2NoZWNrU3BlY2lhbEVudHJpZXMoKSYmdGhpcy5fY2hlY2tUb29NYW55Q29ycmVjdGlvbnNPbldlZWsoKX1pblNlc3Npb24oZSl7ZT1uZXcgRGF0ZSgxZTMqTWF0aC5mbG9vcihlLmdldFRpbWUoKS8xZTMpKTtjb25zdCB0PXRoaXMuYWxpZ25Ub05lYXJlc3RTZXNzaW9uU3RhcnQoZSwtMSkscz10aGlzLmFsaWduVG9OZWFyZXN0U2Vzc2lvbkVuZCh0LDEpO3JldHVybiEoZS5nZXRUaW1lKCk+cy5nZXRUaW1lKCkpfWhhc1dlZWtFbmRzKCl7Zm9yKGNvbnN0IGUgb2YgdGhpcy5fZW50cmllcylpZigwIT09ZS5nZXRFbnRyaWVzKCkud2Vla0VuZHNDb3VudCgpKXJldHVybiEwO3JldHVybiExfWdldFdlZWtJbmRpY2VzV2l0aEFkZGl0aW9uYWxXZWVrQmFycyhlKXtsZXQgdD10aGlzLl95ZWFyVG9DYWxjdWxhdGVkQWRkZWRXZWVrSW5kaWNlc0hhc2guZ2V0KGUpO3JldHVybiB2b2lkIDA9PT10JiYodD10aGlzLl9jYWxjdWxhdGVBZGRlZEluZGljZXMoZSksdGhpcy5feWVhclRvQ2FsY3VsYXRlZEFkZGVkV2Vla0luZGljZXNIYXNoLnNldChlLHQpKSx0fV9kb0FsaWduVG9FbnRyeVN0YXJ0KGUsdCxzKXtjb25zdCBuPSgwLHIuZ2V0X2RheV9vZl93ZWVrKShlKSxpPSgwLHIuZ2V0X21pbnV0ZXNfZnJvbV9taWRuaWdodCkoZSksbz10aGlzLmdldFdlZWtJbmRleChlKSxhPXRoaXMuZmluZFNlc3Npb24obyxuLGksdCxzKSxkPWEuZ2V0RW50cnkoKSxoPWQuZGF5T2ZXZWVrKCktbis3Kk1hdGgudHJ1bmMoYS53ZWVrSW5kZXgtbyk7MCE9PWgmJigwLHIuYWRkX2RhdGUpKGUsaCk7Y29uc3QgZj1kLnN0YXJ0T2Zmc2V0KCk7cmV0dXJuKDAsci5zZXRfaG1zKShlLE1hdGgudHJ1bmMoZi82MCksZiU2MCwwLDApLHtsZW5ndGg6ZC5sZW5ndGgoKSxlbnRyeTpkfX1fcHJlcGFyZVNlc3Npb25zQm9yZGVyUGFyYW1zKCl7Y29uc3QgZT1uZXcgTWFwLHQ9bmV3IE1hcDtsZXQgcz1udWxsO3RoaXMuX2VudHJpZXMubGVuZ3RoPjEmJihzPUFycmF5LmZyb20oe2xlbmd0aDp0aGlzLl9lbnRyaWVzLmxlbmd0aC0xfSwoKCk9PjApKSk7bGV0IHI9MDtmb3IobGV0IGk9MDtpPHRoaXMuX2VudHJpZXMubGVuZ3RoLTE7aSsrKXtjb25zdCBvPXRoaXMuX2VudHJpZXNbaSsxXSxhPSgwLApuLmVuc3VyZU5vdE51bGwpKG8uZ2V0U3RhcnREYXkoKSk7cj1nLl9nZXRXZWVrSW5kZXhJbXBsKGEpLGUuc2V0KHIsaSsxKSx0aGlzLl9hZGRUb1llYXJIYXNoKHQsYSxyKSx0aGlzLl9lbnRyaWVzSGFzaC5zZXQocixuZXcgdShudWxsKSksKDAsbi5lbnN1cmVOb3ROdWxsKShzKVtpXT1yfXJldHVybntib3JkZXJXZWVrc0luZGljZXNIYXNoOmUseWVhclRvV2Vla3NJbmRpY2VzSGFzaDp0LHN0YXJ0UHJlc2VudFNlc3Npb25XZWVrSW5kZXg6cix3ZWVrSW5kaWNlc09mTGFzdEhpc3RvcnlXZWVrOnN9fV9hZGRUb1llYXJIYXNoKGUsdCxzKXtjb25zdCBuPSgwLHIuZ2V0X3llYXIpKHQpO2xldCBpPWUuZ2V0KG4pO3ZvaWQgMD09PWkmJihpPVtdLGUuc2V0KG4saSkpLGkucHVzaChzKX1fZ2V0SGlzdG9yeUFuZEluZGV4Rm9yV2VlayhlKXtpZih0aGlzLl9wcmVzZW50U3RhcnRXZWVrSW5kZXg8PWUpcmV0dXJuIHRoaXMuX3ByZXNlbnRIaXN0b3J5RW50cnk7Y29uc3QgdD10aGlzLl9nZXRJbmRleE9mSGlzdG9yeUVudHJ5KGUpO3JldHVybiB0aGlzLl9lbnRyaWVzW3RdfV9nZXRJbmRleE9mSGlzdG9yeUVudHJ5KGUpe2xldCB0PTAscz10aGlzLl9lbnRyaWVzLmxlbmd0aC0xLHI9TWF0aC5mbG9vcigodCtzKS8yKTtmb3IoKDAsbi5hc3NlcnQpKG51bGwhPT10aGlzLl93ZWVrSW5kaWNlc09mTGFzdEhpc3RvcnlXZWVrKTs7KXtpZih0aGlzLl93ZWVrSW5kaWNlc09mTGFzdEhpc3RvcnlXZWVrW3JdPj1lKXtpZihzPXItMSxzPHQpcmV0dXJuIHJ9ZWxzZSBpZih0PXIrMSxzPHQpcmV0dXJuIHIrMTtyPU1hdGguZmxvb3IoKHQrcykvMil9fV9zZWxlY3RIb2xpZGF5cyhlLHQpe2NvbnN0IHM9dGhpcy5fbG93ZXJCb3VuZEhvbGlkYXlJbmRleChfKGUpKSxuPXRoaXMuX2xvd2VyQm91bmRIb2xpZGF5SW5kZXgoXyh0KSk7cmV0dXJuIHRoaXMuX3NvcnRlZEhvbGlkYXlzLnNsaWNlKHMsbil9X2xvd2VyQm91bmRIb2xpZGF5SW5kZXgoZSl7cmV0dXJuKDAsaS5sb3dlcmJvdW5kKSh0aGlzLl9zb3J0ZWRIb2xpZGF5cyxlLCgoZSx0KT0+ZS5rZXk8dCkpfV9wcmVwYXJlQm9yZGVyV2Vla0hpc3RvcnkoZSl7Y29uc3QgdD10aGlzLl9lbnRyaWVzW2UtMV0scz10aGlzLl9lbnRyaWVzW2VdLGk9bmV3IE1hcCxvPVtdLGg9KDAsci5nZXRfZGF5X29mX3dlZWspKCgwLG4uZW5zdXJlTm90TnVsbCkocy5nZXRTdGFydERheSgpKSk7Zm9yKGxldCBlPTA7ZTxkLndvcmtpbmdEYXlzQW5kV2Vla0VuZHMubGVuZ3RoO2UrKyl7Y29uc3Qgbj1kLndvcmtpbmdEYXlzQW5kV2Vla0VuZHNbZV07aWYobjxoKXtjb25zdCBlPXQuZ2V0RW50cmllcygpLmVudHJpZXNCeURheSgpLmdldChuKTt2b2lkIDAhPT1lJiYoby5wdXNoKC4uLmUpLGkuc2V0KG4sZSkpfWVsc2V7Y29uc3QgZT1zLmdldEVudHJpZXMoKS5lbnRyaWVzQnlEYXkoKS5nZXQobik7dm9pZCAwIT09ZSYmKG8ucHVzaCguLi5lKSxpLnNldChuLGUpKX19cmV0dXJuIG5ldyBhLlNlc3Npb25zU3BlY0VudHJpZXMobyxpLHMuZ2V0RW50cmllcygpLmZpcnN0RGF5T2ZXZWVrKCksMCl9X2hvbGlkYXlzRnJvbVllYXJTdGFydChlKXtpZighdGhpcy5faXNUaGVyZUNvcnJlY3Rpb25zKXJldHVybiAwOygwLG4uYXNzZXJ0KSghdGhpcy5oYXNIaXN0b3J5Q29ycmVjdGlvbnMoKSk7Y29uc3QgdD0oMCxuLmVuc3VyZU5vdE51bGwpKHRoaXMuX2hvbGlkYXlDb3VudFByZWZpeFN1bXMpLHM9dGhpcy5fbG93ZXJCb3VuZEhvbGlkYXlJbmRleChfKGUuZmlyc3REYXlPZlllYXIoKSkpO3JldHVybiB0W3RoaXMuX2xvd2VyQm91bmRIb2xpZGF5SW5kZXgoXyhlKSldLXRbc119X2J1aWxkSG9saWRheUNvdW50UHJlZml4U3Vtcygpe2NvbnN0IGU9dGhpcy5fcHJlc2VudEhpc3RvcnlFbnRyeS5nZXRFbnRyaWVzKCksdD1uZXcgQXJyYXkodGhpcy5fc29ydGVkSG9saWRheXMubGVuZ3RoKzEpO3RbMF09MDtmb3IobGV0IHM9MDtzPHRoaXMuX3NvcnRlZEhvbGlkYXlzLmxlbmd0aDtzKyspe2NvbnN0IG49dGhpcy5fc29ydGVkSG9saWRheXNbc10scj0wPT09bi5zZXNzaW9ucy5sZW5ndGg7bGV0IGk9MDtpPWUuaXNXZWVrRW5kKG4uZGF5LmdldERheU9mV2VlaygpKT9yPzA6LTE6cj8xOjAsdFtzKzFdPXRbc10raX1yZXR1cm4gdH1fZ2V0RGF5c09mZkZvcldlZWtJbkJvcmRlcnMoZSx0LHMpe2xldCBuPTA7Y29uc3Qgcj10aGlzLmdldEVudHJpZXNGb3JXZWVrKGUpO2ZvcihsZXQgZT10O2U8PXM7ZSsrKXIuZW50cmllc0J5RGF5KCkuaGFzKGUpfHxuKys7cmV0dXJuIG59X3dlZWtJbmRleFRvTG9jYWxEYXRlVGltZShlKXtjb25zdCB0PU1hdGguZmxvb3IoODY0MDAqZSo3Kzg2NDAwLTYyMTY3MjE5MjAwKSxzPSgwLHIuZ2V0X2NhbF9mcm9tX3VuaXhfdGltZXN0YW1wX21zKShjLDFlMyp0KTtyZXR1cm4oMCxyLnNldF9obXMpKHMsMCwwLDAsMCksc31fY29ycmVjdFRyYWRpbmdEYXkoZSx0LHMpe2NvbnN0IG49dGhpcy5maW5kU2Vzc2lvbihlLHQscywwKTtyZXR1cm4gbi5nZXRFbnRyeSgpLmRheU9mV2VlaygpLXQrNypNYXRoLnRydW5jKG4ud2Vla0luZGV4LWUpfV9lbnRyeVNlc3Npb25WYWx1ZShlLHQscyxuKXt0PSgwLHIuY2xvbmUpKHQpO2xldCBpPSgwLHIuZ2V0X2RheV9vZl93ZWVrKSh0KTtjb25zdCBvPWUuZ2V0RW50cnkoKTtsZXQgYT1vLmRheU9mV2VlaygpLW8uc2Vzc2lvblN0YXJ0RGF5c09mZnNldCgpO2NvbnN0IGQ9dGhpcy5nZXRXZWVrSW5kZXgodCk7bGV0IGg9TWF0aC50cnVuYyhlLndlZWtJbmRleC1kKSxmPSExO2lmKGE8ci5TVU5EQVkmJihoPD0wP2Y9ITA6aC0tLGErPTcpLChoPjAmJnM+PTB8fGg8MCYmczwwKSYmKDAsci5hZGRfZGF0ZSkodCw3KmgpLCFvLmNvbnRhaW5zKHQpKXtsZXQgZT1hLWk7ZiYmczwwJiYoZT0tKDctYStpKSksKDAsci5hZGRfZGF0ZSkodCxlKSxpPSgwLHIuZ2V0X2RheV9vZl93ZWVrKSh0KX1pZihvLmlzT3Zlcm5pZ2h0KCkpe2NvbnN0IGU9by5zZXNzaW9uU3RhcnREYXlzT2Zmc2V0KCkscz0oaS0oby5kYXlPZldlZWsoKS1lKSs3KSU3OzAhPT1zJiYoMCxyLmFkZF9kYXRlKSh0LC1zKX1jb25zdCB5PW4obyk7cmV0dXJuKDAsci5zZXRfc2Vjb25kcykodCx5KSx0fQpfYnVzaW5lc3NEYXlzVG9DYWxlbmRhckRheXMoZSx0LHMpe2xldCBuPTAsaT0wO2Zvcig7aTxzOyl7Y29uc3Qgbz10aGlzLmdldEVudHJpZXNGb3JXZWVrKGUpO2ZvcihsZXQgZT10O2U8PXIuU0FUVVJEQVk7ZSsrKWlmKG4rKyx2b2lkIDAhPT1vLmVudHJpZXNCeURheSgpLmdldChlKSYmaSsrLGk+PXMpcmV0dXJuIG47ZSsrLHQ9ci5TVU5EQVl9cmV0dXJuIG59X2NhbGVuZGFyRGF5c1RvQnVzaW5lc3NEYXlzKGUsdCxzKXtsZXQgbj0wLGk9MDtmb3IoO248czspe2NvbnN0IG89dGhpcy5nZXRFbnRyaWVzRm9yV2VlayhlKTtmb3IobGV0IGU9dDtlPD1yLlNBVFVSREFZO2UrKylpZihuKyssdm9pZCAwIT09by5lbnRyaWVzQnlEYXkoKS5nZXQoZSkmJmkrKyxuPj1zKXJldHVybiBpO2UrKyx0PXIuU1VOREFZfXJldHVybiBpfV9lbnRyeVNlc3Npb25TdGFydChlLHQscyl7cmV0dXJuIHRoaXMuX2VudHJ5U2Vzc2lvblZhbHVlKGUsdCxzLChlPT42MCplLnN0YXJ0KCkpKX1fZW50cnlTZXNzaW9uRW5kKGUsdCxzKXtyZXR1cm4gdGhpcy5fZW50cnlTZXNzaW9uVmFsdWUoZSx0LHMsKGU9PjYwKihlLnN0YXJ0KCkrZS5sZW5ndGgoKSktMSkpfV9hbGlnblRvTmVhcmVzdFNlc3Npb25WYWx1ZShlLHQscyl7Y29uc3Qgbj0oMCxyLmdldF9kYXlfb2Zfd2VlaykoZSksaT0oMCxyLmdldF9taW51dGVzX3dpdGhfaG91cnMpKGUpLG89dGhpcy5nZXRXZWVrSW5kZXgoZSk7bGV0IGQ9dGhpcy5maW5kU2Vzc2lvbihvLG4saSk7aWYoMT09PXQpcmV0dXJuIHMoZCxlLHQpO2NvbnN0IGg9ZC5nZXRFbnRyeSgpLGY9aC5jb250YWlucyhlKSx5PW89PT1kLndlZWtJbmRleCxjPWguc2Vzc2lvblN0YXJ0RGF5c09mZnNldCgpLWguZGF5T2ZXZWVrKCk+PTA7aWYoZiYmKHl8fGMpKXJldHVybiBzKGQsZSx0KTtsZXQgXz1kLmVudHJ5SW5kZXgtMTtpZihfPDApe2xldCBlPWQud2Vla0luZGV4LHQ9ZC5lbnRyaWVzO2lmKDA9PT1lKWUtLSxfKz10Lmxlbmd0aDtlbHNlIGZvcig7XzwwOyllLS0sdD10aGlzLmdldEVudHJpZXNGb3JXZWVrKGUpLmxpc3QoKSxfKz10Lmxlbmd0aDtkPW5ldyBhLlNlc3Npb25zU3BlY0VudHJ5SW5kZXgoZSxfLHQpfWVsc2UgZD1uZXcgYS5TZXNzaW9uc1NwZWNFbnRyeUluZGV4KGQud2Vla0luZGV4LF8sZC5lbnRyaWVzKTtyZXR1cm4gcyhkLGUsdCl9X2dldEVudHJpZXNGb3JEYXkoZSl7Y29uc3QgdD0oMCxyLmdldF9kYXlfb2Zfd2VlaykoZSkscz10aGlzLmdldEVudHJpZXNGb3JXZWVrKHRoaXMuZ2V0V2Vla0luZGV4KGUpKS5lbnRyaWVzQnlEYXkoKS5nZXQodCk7cmV0dXJuIHZvaWQgMCE9PXM/czpbXX1fZ2V0TGVmdEVudHJ5Qm9yZGVyKGUsdCl7bGV0IHM9dC5zdGFydE9mZnNldCgpO2NvbnN0IG49LU1hdGgudHJ1bmMoKHMtMTQzOSkvMTQ0MCk7cys9MTQ0MCpuO2NvbnN0IGk9KDAsci5nZXRfY2FsKShjLCgwLHIuZ2V0X3llYXIpKGUpLCgwLHIuZ2V0X21vbnRoKShlKSwoMCxyLmdldF9kYXlfb2ZfbW9udGgpKGUpLE1hdGgudHJ1bmMocy82MCkscyU2MCwwKTtyZXR1cm4oMCxyLmFkZF9kYXRlKShpLC1uKSxpfV9jaGVja0VhY2hIaXN0b3J5U2Vzc2lvbigpe2Zvcihjb25zdCBlIG9mIHRoaXMuX2VudHJpZXMpe2NvbnN0IHQ9ZS5nZXRFbnRyaWVzKCkubGlzdCgpO2lmKCF0aGlzLl9jaGVja0VudHJpZXNGb3JJbnRlcnNlY3Rpb25zKHQsdCx0KSlyZXR1cm4hMX1yZXR1cm4hMH1fY2hlY2tFbnRyaWVzRm9ySW50ZXJzZWN0aW9ucyhlLHQscyl7Y29uc3Qgbj10aGlzLl9idWlsZFRlc3RFbnRyaWVzKGUsdCxzKTtmb3IobGV0IGU9MDtlPG4ubGVuZ3RoLTE7ZSsrKWZvcihsZXQgdD1lKzE7dDxuLmxlbmd0aDt0KyspaWYoMD09PXkobltlXSxuW3RdKSlyZXR1cm4hMTtyZXR1cm4hMH1fYnVpbGRUZXN0RW50cmllcyhlLHQscyl7Y29uc3Qgbj1bXTtmb3IoY29uc3QgdCBvZiBlKW4ucHVzaChnLl9jbG9uZUVudHJ5V2l0aERheSh0LHQuZGF5T2ZXZWVrKCkpKTtmb3IoY29uc3QgZSBvZiB0KW4ucHVzaChnLl9jbG9uZUVudHJ5V2l0aERheShlLGUuZGF5T2ZXZWVrKCkrNykpO2Zvcihjb25zdCBlIG9mIHMpbi5wdXNoKGcuX2Nsb25lRW50cnlXaXRoRGF5KGUsZS5kYXlPZldlZWsoKSsxNCkpO3JldHVybiBufV9jaGVja1NwZWNpYWxFbnRyaWVzKCl7Zm9yKGNvbnN0W2Vdb2YgdGhpcy5fZW50cmllc0hhc2gpe2NvbnN0IHQ9dGhpcy5nZXRFbnRyaWVzRm9yV2VlayhlKS5saXN0KCkscz10aGlzLmdldEVudHJpZXNGb3JXZWVrKGUtMSkubGlzdCgpLG49dGhpcy5nZXRFbnRyaWVzRm9yV2VlayhlKzEpLmxpc3QoKTtpZighdGhpcy5fY2hlY2tFbnRyaWVzRm9ySW50ZXJzZWN0aW9ucyhzLHQsbikpcmV0dXJuITF9cmV0dXJuITB9X2NoZWNrVG9vTWFueUNvcnJlY3Rpb25zT25XZWVrKCl7aWYodGhpcy5fZW50cmllcy5sZW5ndGg8MilyZXR1cm4hMDtmb3IobGV0IGU9MDtlPHRoaXMuX2VudHJpZXMubGVuZ3RoLTI7ZSsrKXtjb25zdCB0PXRoaXMuX2VudHJpZXNbZV0scz10aGlzLl9lbnRyaWVzW2UrMV07aWYodGhpcy5nZXRXZWVrSW5kZXgoKDAsbi5lbnN1cmVOb3ROdWxsKSh0LmdldFNwZWNFbmREYXkoKSkpPT09dGhpcy5nZXRXZWVrSW5kZXgoKDAsbi5lbnN1cmVOb3ROdWxsKShzLmdldFNwZWNFbmREYXkoKSkpKXJldHVybiExfXJldHVybiEwfV9jYWxjdWxhdGVBZGRlZEluZGljZXMoZSl7Y29uc3QgdD1bXSxzPXRoaXMuX3llYXJUb1dlZWtzSW5kaWNlc0hhc2guZ2V0KGUpO2lmKHZvaWQgMD09PXMpcmV0dXJuIHQ7Zm9yKGNvbnN0IGUgb2Ygcyl7Y29uc3Qgcz0oMCxuLmVuc3VyZURlZmluZWQpKHRoaXMuX2JvcmRlcldlZWtzSW5kaWNlc0hhc2guZ2V0KGUpKSxpPXRoaXMuX2VudHJpZXNbc10sbz10aGlzLl9lbnRyaWVzW3MtMV07bGV0IGE9aS5nZXRFbnRyaWVzKCkuZmlyc3REYXlPZldlZWsoKS1vLmdldEVudHJpZXMoKS5maXJzdERheU9mV2VlaygpO2Zvcig7YT4wOyl7Y29uc3Qgbz0oMCxyLmNsb25lKSgoMCxuLmVuc3VyZU5vdE51bGwpKGkuZ2V0U3RhcnREYXkoKSkpO2lmKCgwLHIuYWRkX2RhdGUpKG8sLWEpLCF0aGlzLmlzQ2FsV2Vla0VuZChvKSl7Y29uc3Qgbj17ZW50cnlJbmRleDpzLAp3ZWVrSW5kZXg6ZX07dC5wdXNoKG4pO2JyZWFrfWEtLX19cmV0dXJuIHR9c3RhdGljIF9jbG9uZUVudHJ5V2l0aERheShlLHQpe2lmKGUuaXNFeHRlbmRlZCgpKXtjb25zdCBzPW5ldyBhLlNlc3Npb25zU3BlY0VudHJ5KHQsZS5zdGFydE9mZnNldCgpLGUubGVuZ3RoKCkpO3JldHVybiBuZXcgYS5FeHRlbmRlZEVudHJ5RGVjb3JhdG9yKHMsZS5leHRlbmRlZFN0YXJ0T2Zmc2V0KCksZS5leHRlbmRlZEVuZE9mZnNldCgpKX1yZXR1cm4gbmV3IGEuU2Vzc2lvbnNTcGVjRW50cnkodCxlLnN0YXJ0T2Zmc2V0KCksZS5sZW5ndGgoKSl9c3RhdGljIF9nZXRXZWVrSW5kZXhJbXBsKGUpe2NvbnN0IHQ9KDAsci5nZXRfY2FsX3V0YykoKDAsci5nZXRfeWVhcikoZSksKDAsci5nZXRfbW9udGgpKGUpLDEpOygwLHIuYWRkX2RhdGUpKHQsKDAsci5nZXRfZGF5X29mX21vbnRoKShlKS0oMCxyLmdldF9kYXlfb2Zfd2VlaykoZSkpO2NvbnN0IHM9dC5nZXRUaW1lKCkvMWUzO3JldHVybigwLG4uYXNzZXJ0KSgocys2MjE2NzIxOTIwMCklODY0MDA9PTApLE1hdGgudHJ1bmMoKHMrNjIxNjcyMTkyMDApLzg2NDAwLzcpfX19LDkwMjg0MihlLHQscyl7ZnVuY3Rpb24gbihlKXtyZXR1cm4gcihlLDIpfWZ1bmN0aW9uIHIoZSx0PTIpe2NvbnN0IHM9ZS50b1N0cmluZygpO3JldHVybiIwIi5yZXBlYXQoTWF0aC5tYXgoMCx0LXMubGVuZ3RoKSkrc31zLmQodCx7YWRkTGVhZGluZ1plcm86KCk9Pm4sYWRkTGVhZGluZ1plcm9zOigpPT5yfSl9fV0pOw=="}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/36938.58456da0cdb4bb9bb485.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:13.929Z","timestamp":1785148033929,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/36938.58456da0cdb4bb9bb485.js HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:13 GMT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a61b1a9-867c\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Thu, 23 Jul 2026 06:16:09 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/23/2026 10:17:28\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: d501491069c9354746f41eb390fafd0e\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":34428,"size_decoded":12931,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, Unicode text, UTF-8 text, with very long lines (3071)","md5":"0b3a2f0bced3b2d13e2bc4271e8f8bec","sha1":"c8882777ff1ea1c0a44cd5abb3371658234b1ba7","sha256":"cc20688cf7733b705a8082a5cd27b28bfb7c5bf465b3b37a793cbb16845e2044","sha512":"79451e25e3c330b552f61617650652ad0fec3ca6846f09ab1abb2fee164ff668ea5b4bddc93377a87b16a14cbf8b793a074e8b00f7f1bb596ddb62211aae77cd","ssdeep":"768:1NuXCwjvbjs5+DLdgy+qR2UxNnoxErOw2f+gCrpZAKA6DQKG4JJZXKTmpcu9Chqj:aXPjvbQ+tI6XXoOow+H0","tlshash":"25f22c92b09170bc96f746ee943f0552f33a1a64b9854868f0bc8cec2d64d49e272f7d","first_seen":"2026-07-23T14:00:31.698766Z","last_seen":"2026-07-27T12:57:36.985324Z","times_seen":172,"resource_available":true,"data":"KHNlbGYud2VicGFja0NodW5rdHJhZGluZ3ZpZXc9c2VsZi53ZWJwYWNrQ2h1bmt0cmFkaW5ndmlld3x8W10pLnB1c2goW1szNjkzOCw2MzU5NV0sezk3Nzc3KGUpe2UuZXhwb3J0cz17YmFkZ2U6ImJhZGdlLXg0VVZaYWJNIixoYXNDaGlsZHJlbjoiaGFzQ2hpbGRyZW4teDRVVlphYk0iLGNvbnRlbnQ6ImNvbnRlbnQteDRVVlphYk0iLHNsb3Q6InNsb3QteDRVVlphYk0iLHhzbWFsbDoieHNtYWxsLXg0VVZaYWJNIixzbWFsbDoic21hbGwteDRVVlphYk0iLG1lZGl1bToibWVkaXVtLXg0VVZaYWJNIixsYXJnZToibGFyZ2UteDRVVlphYk0iLHhsYXJnZToieGxhcmdlLXg0VVZaYWJNIix4eGxhcmdlOiJ4eGxhcmdlLXg0VVZaYWJNIn19LDk5NDUoZSl7ZS5leHBvcnRzPXtkZWZhdWx0OiJkZWZhdWx0LUdaTHlrTlFQIixkYW5nZXI6ImRhbmdlci1HWkx5a05RUCIsd2FybmluZzoid2FybmluZy1HWkx5a05RUCIsc3VjY2Vzczoic3VjY2Vzcy1HWkx5a05RUCIsbmV1dHJhbDoibmV1dHJhbC1HWkx5a05RUCIsIm5ldXRyYWwtbGlnaHQiOiJuZXV0cmFsLWxpZ2h0LUdaTHlrTlFQIixzbWFsbDoic21hbGwtR1pMeWtOUVAiLG1lZGl1bToibWVkaXVtLUdaTHlrTlFQIixsYXJnZToibGFyZ2UtR1pMeWtOUVAiLGljb25XcmFwcGVyOiJpY29uV3JhcHBlci1HWkx5a05RUCIsaWNvbjoiaWNvbi1HWkx5a05RUCJ9fSw0NDAwOTYoZSl7ZS5leHBvcnRzPXtzY3JvbGxDb250YWluZXI6InNjcm9sbENvbnRhaW5lci16RzJDcURlMiJ9fSw2MjcwMjIoZSl7ZS5leHBvcnRzPXtmbGV4OiJmbGV4LWdvMFplTlFGIixmaXhlZEhlYWRlcjoiZml4ZWRIZWFkZXItZ28wWmVOUUYiLGZpeGVkRm9vdGVyOiJmaXhlZEZvb3Rlci1nbzBaZU5RRiIsbWFpblNjcm9sbFdyYXBwZXI6Im1haW5TY3JvbGxXcmFwcGVyLWdvMFplTlFGIixmaXhlZEhlYWRlckNvbnRlbnQ6ImZpeGVkSGVhZGVyQ29udGVudC1nbzBaZU5RRiIsZml4ZWRGb290ZXJDb250ZW50OiJmaXhlZEZvb3RlckNvbnRlbnQtZ28wWmVOUUYiLG5vU2Nyb2xsOiJub1Njcm9sbC1nbzBaZU5RRiIsbWFpbjoibWFpbi1nbzBaZU5RRiIsbWFpbkNvbnRlbnQ6Im1haW5Db250ZW50LWdvMFplTlFGIn19LDYyMzYxMyhlKXtlLmV4cG9ydHM9e21vYmlsZUNvbnRleHQ6Im1vYmlsZUNvbnRleHQtVnhuNExoWUwiLGFuY2hvckNvbnRleHQ6ImFuY2hvckNvbnRleHQtVnhuNExoWUwifX0sNzYyMDUzKGUpe2UuZXhwb3J0cz17d3JhcHBlcjoid3JhcHBlci1qV21NbTJWQSIsdGltZXpvbmU6InRpbWV6b25lLWpXbU1tMlZBIixsYXJnZVBhZGRpbmc6ImxhcmdlUGFkZGluZy1qV21NbTJWQSIsc2Vzc2lvbkRheVdyYXBwZXI6InNlc3Npb25EYXlXcmFwcGVyLWpXbU1tMlZBIixub3dXcmFwcGVyOiJub3dXcmFwcGVyLWpXbU1tMlZBIixub3c6Im5vdy1qV21NbTJWQSIsc2Vzc2lvbkRheToic2Vzc2lvbkRheS1qV21NbTJWQSIsd2Vla0RheToid2Vla0RheS1qV21NbTJWQSIsc2Vzc2lvbkRheVNlZ21lbnRzOiJzZXNzaW9uRGF5U2VnbWVudHMtaldtTW0yVkEiLHRpbWVNYXJrV3JhcHBlcjoidGltZU1hcmtXcmFwcGVyLWpXbU1tMlZBIix0aW1lTWFya1NlZ21lbnQ6InRpbWVNYXJrU2VnbWVudC1qV21NbTJWQSIsdGltZU1hcms6InRpbWVNYXJrLWpXbU1tMlZBIix0aW1lTWFya1NlZ21lbnRBbGlnbkJ5RW5kczoidGltZU1hcmtTZWdtZW50QWxpZ25CeUVuZHMtaldtTW0yVkEiLHNlZ21lbnQ6InNlZ21lbnQtaldtTW0yVkEiLHNtYWxsOiJzbWFsbC1qV21NbTJWQSIsc3RhcnQ6InN0YXJ0LWpXbU1tMlZBIixlbmQ6ImVuZC1qV21NbTJWQSIsYWN0aXZlOiJhY3RpdmUtaldtTW0yVkEiLGdyZWVuOiJncmVlbi1qV21NbTJWQSIsb3JhbmdlOiJvcmFuZ2UtaldtTW0yVkEiLGJsdWU6ImJsdWUtaldtTW0yVkEiLHB1cnBsZToicHVycGxlLWpXbU1tMlZBIixncmF5OiJncmF5LWpXbU1tMlZBIix0b29sdGlwOiJ0b29sdGlwLWpXbU1tMlZBIix0aW1lOiJ0aW1lLWpXbU1tMlZBIn19LDQ0NzI2OChlKXtlLmV4cG9ydHM9eyJjc3MtdmFsdWUtc21hbGwtc2l6ZSI6IjE4cHgiLCJjc3MtdmFsdWUtbWVkaXVtLXNpemUiOiIyMnB4IiwiY3NzLXZhbHVlLWxhcmdlLXNpemUiOiIyOHB4IiwiY3NzLXZhbHVlLWJvcmRlci1yYWRpdXMtc21hbGwtc2l6ZSI6IjlweCIsImNzcy12YWx1ZS1ib3JkZXItcmFkaXVzLW1lZGl1bS1zaXplIjoiMTFweCIsImNzcy12YWx1ZS1ib3JkZXItcmFkaXVzLWxhcmdlLXNpemUiOiI4cHgiLCJjc3MtdmFsdWUtdmVydGljYWwtcGFkZGluZy1zaXplIjoiMTZweCIsImNzcy12YWx1ZS1ob3Jpem9udGFsLXBhZGRpbmctc2l6ZSI6IjE2cHgiLCJjc3MtdmFsdWUtdmVydGljYWwtcGFkZGluZy1zaXplLWZpcnN0IjoiMTFweCIsImNzcy12YWx1ZS12ZXJ0aWNhbC1wYWRkaW5nLXNpemUtbGFzdCI6IjEwcHgiLHBvcHVwV2lkZ2V0V3JhcHBlcjoicG9wdXBXaWRnZXRXcmFwcGVyLUE0djBkbDE3Iixwb3B1cFdpZGdldFdpZHRoOiJwb3B1cFdpZGdldFdpZHRoLUE0djBkbDE3Iixwb3B1cFdpZGdldDoicG9wdXBXaWRnZXQtQTR2MGRsMTciLGxhcmdlOiJsYXJnZS1BNHYwZGwxNyIsbW9iaWxlOiJtb2JpbGUtQTR2MGRsMTciLGRlc2M6ImRlc2MtQTR2MGRsMTciLGljb246Imljb24tQTR2MGRsMTciLHNtYWxsOiJzbWFsbC1BNHYwZGwxNyIsbWVkaXVtOiJtZWRpdW0tQTR2MGRsMTciLHRpdGxlOiJ0aXRsZS1BNHYwZGwxNyIsdGV4dDoidGV4dC1BNHYwZGwxNyIsaXRlbToiaXRlbS1BNHYwZGwxNyIsYm9sZEl0ZW06ImJvbGRJdGVtLUE0djBkbDE3IixhY3Rpb246ImFjdGlvbi1BNHYwZGwxNyIsYWN0aW9uQnRuOiJhY3Rpb25CdG4tQTR2MGRsMTciLGFjdGlvbnM6ImFjdGlvbnMtQTR2MGRsMTciLGFkZGl0aW9uYWxXaWRnZXQ6ImFkZGl0aW9uYWxXaWRnZXQtQTR2MGRsMTcifX0sMTk4MjA5KGUpe2UuZXhwb3J0cz17Imljb24td3JhcHBlciI6Imljb24td3JhcHBlci1kaWtkZXd3eCIsIndpdGgtbGluayI6IndpdGgtbGluay1kaWtkZXd3eCIsIndpdGgtdG9vbHRpcCI6IndpdGgtdG9vbHRpcC1kaWtkZXd3eCIsIm5vLWFjdGl2ZS1zdGF0ZSI6Im5vLWFjdGl2ZS1zdGF0ZS1kaWtkZXd3eCJ9fSwKNTkwNDg2KGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse0JhZGdlOigpPT51fSk7dmFyIHM9big3Nzk0NzQpLGk9big5MTQ0ODcpLG89bi5uKGkpLGE9big5Nzc3Nykscj1uLm4oYSk7ZnVuY3Rpb24gbCh7aHJlZjplLG9uQ2xpY2s6dCxyZWZlcmVuY2U6biwuLi5pfSl7cmV0dXJuIGU/cy5jcmVhdGVFbGVtZW50KCJhIix7aHJlZjplLG9uQ2xpY2s6dCx0YXJnZXQ6Il9ibGFuayIscmVmOm4sLi4uaX0pOnQ/cy5jcmVhdGVFbGVtZW50KCJidXR0b24iLHtvbkNsaWNrOnQscmVmOm4sLi4uaX0pOnMuY3JlYXRlRWxlbWVudCgic3BhbiIse3JlZjpuLC4uLml9KX1mdW5jdGlvbiB1KHtjbGFzc05hbWU6ZSxzaXplOnQsbGVmdFNsb3Q6bixyaWdodFNsb3Q6aSxjaGlsZHJlbjphLC4uLnV9KXtjb25zdCBjPW8oKShlLHIoKS5iYWRnZSx0JiZyKClbdF0sYSYmcigpLmhhc0NoaWxkcmVuKTtyZXR1cm4gcy5jcmVhdGVFbGVtZW50KGwse2NsYXNzTmFtZTpjLC4uLnV9LG4mJnMuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOnIoKS5zbG90fSxuKSxhJiZzLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6cigpLmNvbnRlbnR9LGEpLGkmJnMuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOnIoKS5zbG90fSxpKSl9fSwyMzQ2MzYoZSx0LG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcztuLmQodCx7QmFkZ2VTaXplOigpPT5zfSksZnVuY3Rpb24oZSl7ZS5YU21hbGw9InhzbWFsbCIsZS5TbWFsbD0ic21hbGwiLGUuTWVkaXVtPSJtZWRpdW0iLGUuTGFyZ2U9ImxhcmdlIixlLlhMYXJnZT0ieGxhcmdlIn0oc3x8KHM9e30pKX0sNzE3OTMyKGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse3VzZU1hdGNoTWVkaWE6KCk9Pm8sdXNlU2FmZU1hdGNoTWVkaWE6KCk9Pml9KTt2YXIgcz1uKDc3OTQ3NCk7ZnVuY3Rpb24gaShlLHQ9ITEpe2NvbnN0W24saV09KDAscy51c2VTdGF0ZSkodCk7cmV0dXJuKDAscy51c2VFZmZlY3QpKCgoKT0+e2NvbnN0IHQ9d2luZG93Lm1hdGNoTWVkaWEoZSk7ZnVuY3Rpb24gbigpe2kodC5tYXRjaGVzKX1yZXR1cm4gbigpLHQuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIixuKSwoKT0+e3QucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY2hhbmdlIixuKX19KSxbZV0pLG59ZnVuY3Rpb24gbyhlKXtjb25zdCB0PSgwLHMudXNlTWVtbykoKCgpPT53aW5kb3cubWF0Y2hNZWRpYShlKS5tYXRjaGVzKSxbXSk7cmV0dXJuIGkoZSx0KX19LDkwMDg0MShlLHQsbil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHMoZSx0LG4scyxpKXtmdW5jdGlvbiBvKGkpe2lmKGU+aS50aW1lU3RhbXApcmV0dXJuO2NvbnN0IG89aS50YXJnZXQ7dm9pZCAwIT09biYmbnVsbCE9PXQmJm51bGwhPT1vJiZvLm93bmVyRG9jdW1lbnQ9PT1zJiYodC5jb250YWlucyhvKXx8bihpKSl9cmV0dXJuIGkuY2xpY2smJnMuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLG8sITEpLGkubW91c2VEb3duJiZzLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsbywhMSksaS50b3VjaEVuZCYmcy5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaGVuZCIsbywhMSksaS50b3VjaFN0YXJ0JiZzLmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoc3RhcnQiLG8sITEpLCgpPT57cy5yZW1vdmVFdmVudExpc3RlbmVyKCJjbGljayIsbywhMSkscy5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZWRvd24iLG8sITEpLHMucmVtb3ZlRXZlbnRMaXN0ZW5lcigidG91Y2hlbmQiLG8sITEpLHMucmVtb3ZlRXZlbnRMaXN0ZW5lcigidG91Y2hzdGFydCIsbywhMSl9fW4uZCh0LHthZGRPdXRzaWRlRXZlbnRMaXN0ZW5lcjooKT0+c30pfSwyMzY3NjUoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7dXNlT3V0c2lkZUV2ZW50OigpPT5hfSk7dmFyIHM9big3Nzk0NzQpLGk9big2MTYzMTEpLG89big5MDA4NDEpO2Z1bmN0aW9uIGEoZSl7Y29uc3R7Y2xpY2s6dCxtb3VzZURvd246bix0b3VjaEVuZDphLHRvdWNoU3RhcnQ6cixoYW5kbGVyOmwscmVmZXJlbmNlOnV9PWUsYz0oMCxzLnVzZVJlZikobnVsbCksZD0oMCxzLnVzZVJlZikoInVuZGVmaW5lZCI9PXR5cGVvZiB3aW5kb3c/MDpuZXcgd2luZG93LkN1c3RvbUV2ZW50KCJ0aW1lc3RhbXAiKS50aW1lU3RhbXApO3JldHVybigwLGkudXNlSXNvbW9ycGhpY0xheW91dEVmZmVjdCkoKCgpPT57Y29uc3QgZT17Y2xpY2s6dCxtb3VzZURvd246bix0b3VjaEVuZDphLHRvdWNoU3RhcnQ6cn0scz11P3UuY3VycmVudDpjLmN1cnJlbnQ7cmV0dXJuKDAsby5hZGRPdXRzaWRlRXZlbnRMaXN0ZW5lcikoZC5jdXJyZW50LHMsbCxkb2N1bWVudCxlKX0pLFt0LG4sYSxyLGxdKSx1fHxjfX0sMjkwMjQzKGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse3VzZVNhZmVNb2JpbGVUb3VjaDooKT0+b30pO3ZhciBzPW4oNzc5NDc0KSxpPW4oNzM4NDU4KTtmdW5jdGlvbiBvKCl7Y29uc3RbZSx0XT0oMCxzLnVzZVN0YXRlKSghMSk7cmV0dXJuKDAscy51c2VFZmZlY3QpKCgoKT0+e3QoaS5tb2JpbGV0b3VjaCl9KSxbXSksZX19LDg2NTA5MihlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHt1c2VUb29sdGlwOigpPT5hfSk7dmFyIHM9big3Nzk0NzQpLGk9bigyOTAyNDMpLG89big3ODc4OTUpO2Z1bmN0aW9uIGEoZSx0PW51bGwpe2NvbnN0e3Nob3dUb29sdGlwOm4saGlkZVRvb2x0aXA6YSxvbkNsaWNrOnIsZG9Ob3RTaG93VG9vbHRpcE9uVG91Y2g6bD0hMX09ZSx1PSgwLG8udXNlRnVuY3Rpb25hbFJlZk9iamVjdCkodCksYz0oMCxpLnVzZVNhZmVNb2JpbGVUb3VjaCkoKSxkPWMmJmw/dm9pZCAwOmUudG9vbHRpcDsoMCxzLnVzZUVmZmVjdCkoKCgpPT57Y29uc3QgZT0oKT0+YSYmYSgpO3JldHVybiBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJzY3JvbGwiLGUsITApLCgpPT5kb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJzY3JvbGwiLGUsITApfSksW3UsYV0pO3JldHVybntvbkJsdXI6KDAscy51c2VDYWxsYmFjaykoKGU9PnthJiZhKCl9KSxbYV0pLG9uRm9jdXM6KDAscy51c2VDYWxsYmFjaykoKGU9PnsKIWUudGFyZ2V0Lm1hdGNoZXMoIjpob3ZlciIpJiZuJiZlLnRhcmdldC5tYXRjaGVzKCI6Zm9jdXMtdmlzaWJsZSIpJiZuKGUuY3VycmVudFRhcmdldCx7dG9vbHRpcERlbGF5OjIwMH0pfSksW25dKSxvbkNsaWNrOigwLHMudXNlQ2FsbGJhY2spKChlPT57YyYmdT8uY3VycmVudD8uZm9jdXMoKSxyJiZyKGUpfSksW3IsdSxjXSksdG9vbHRpcDpkLGNsYXNzTmFtZTp2b2lkIDAhPT1kPyJhcHBseS1jb21tb24tdG9vbHRpcCI6dm9pZCAwLHJlZjp1fX19LDg3MzA5MChlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtBTFdBWVNfRFJPUERPV05fUE9QT1ZFUl9CUkVBS1BPSU5UOigpPT5pLERFRkFVTFRfUE9QT1ZFUl9CUkVBS1BPSU5UOigpPT5vfSk7dmFyIHM9big4MDk0MzYpO2NvbnN0IGk9Im5vdCBhbGwiLG89c1sibWVkaWEtc2hvdy1kcmF3ZXIiXX0sNTIwNDg2KGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse1BvcG92ZXJDb250ZW50VmVydGljYWw6KCk9PmN9KTt2YXIgcz1uKDc3OTQ3NCksaT1uKDkxNDQ4Nyksbz1uLm4oaSksYT1uKDQ0MDA5Nikscj1uLm4oYSk7dmFyIGw9big2MjcwMjIpLHU9bi5uKGwpO2Z1bmN0aW9uIGMoZSl7Y29uc3R7Y2hpbGRyZW46dCxmaXhlZEhlYWRlcjpuLGZpeGVkRm9vdGVyOmksb25TY3JvbGw6YSxzY3JvbGxSZWY6bCxkYXRhUWFJZDpjfT1lLHtzY3JvbGxDb21wZW5zYXRpb246ZCxzY3JvbGxQYWRkaW5nQ29udGFpbmVyOm19PWZ1bmN0aW9uKCl7Y29uc3RbZSx0XT0oMCxzLnVzZVN0YXRlKSh2b2lkIDApLG49KDAscy51c2VDYWxsYmFjaykoKGU9PntlJiZ0KCh0PT50fHxlLm9mZnNldFdpZHRoLWUuY2xpZW50V2lkdGgpKX0pLFtdKTtyZXR1cm57c2Nyb2xsQ29tcGVuc2F0aW9uOnZvaWQgMCE9PWU/LWUrInB4Ijp2b2lkIDAsc2Nyb2xsUGFkZGluZ0NvbnRhaW5lcjpzLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpyKCkuc2Nyb2xsQ29udGFpbmVyLHJlZjpufSl9fSgpO3JldHVybiBzLmNyZWF0ZUVsZW1lbnQocy5GcmFnbWVudCxudWxsLHMuY3JlYXRlRWxlbWVudCgiZGl2Iix7ImRhdGEtcWEtaWQiOmMsY2xhc3NOYW1lOnUoKS5mbGV4fSxzLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpvKCkodSgpLmZpeGVkSGVhZGVyLG4mJnUoKS5maXhlZEhlYWRlckNvbnRlbnQpfSxuKSxzLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpvKCkodSgpLm1haW5TY3JvbGxXcmFwcGVyLHZvaWQgMD09PWQmJnUoKS5ub1Njcm9sbCksb25TY3JvbGw6YSxyZWY6bCxzdHlsZTp7Ii0tdWktbGliLXByaXZhdGUtcG9wb3ZlckNvbnRlbnRWZXJ0aWNhbC1zY3JvbGwtY29tcGVuc2F0aW9uIjpkfX0scy5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6bygpKHUoKS5tYWluLHQmJnUoKS5tYWluQ29udGVudCl9LHQpKSxzLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpvKCkodSgpLmZpeGVkRm9vdGVyLGkmJnUoKS5maXhlZEZvb3RlckNvbnRlbnQpfSxpKSksbSl9fSw2NDA1MTMoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7UExBQ0VNRU5UX0JPVFRPTV9BTElHTl9DRU5URVI6KCk9Pm8sUExBQ0VNRU5UX0JPVFRPTV9BTElHTl9MRUZUOigpPT5zLFBMQUNFTUVOVF9CT1RUT01fQUxJR05fUklHSFQ6KCk9PmksUExBQ0VNRU5UX0xFRlRfQUxJR05fQk9UVE9NOigpPT5oLFBMQUNFTUVOVF9MRUZUX0FMSUdOX0NFTlRFUjooKT0+cCxQTEFDRU1FTlRfTEVGVF9BTElHTl9UT1A6KCk9Pm0sUExBQ0VNRU5UX1JJR0hUX0FMSUdOX0JPVFRPTTooKT0+YyxQTEFDRU1FTlRfUklHSFRfQUxJR05fQ0VOVEVSOigpPT5kLFBMQUNFTUVOVF9SSUdIVF9BTElHTl9UT1A6KCk9PnUsUExBQ0VNRU5UX1RPUF9BTElHTl9DRU5URVI6KCk9PmwsUExBQ0VNRU5UX1RPUF9BTElHTl9MRUZUOigpPT5hLFBMQUNFTUVOVF9UT1BfQUxJR05fUklHSFQ6KCk9PnJ9KTtjb25zdCBzPXtuYW1lOiJib3R0b20tbGVmdCIscnRsTmFtZToiYm90dG9tLXJpZ2h0IixhbmNob3JQb2ludDp7eDowLHk6MX0sY29udGVudFBvaW50Ont4OjAseTowfSxvdmVyZmxvd0hvcml6b250YWw6InNsaWRlIixvdmVyZmxvd1ZlcnRpY2FsOiJjcm9wU2xpZGUifSxpPXtuYW1lOiJib3R0b20tcmlnaHQiLHJ0bE5hbWU6ImJvdHRvbS1sZWZ0IixhbmNob3JQb2ludDp7eDoxLHk6MX0sY29udGVudFBvaW50Ont4OjEseTowfSxvdmVyZmxvd0hvcml6b250YWw6InNsaWRlIixvdmVyZmxvd1ZlcnRpY2FsOiJjcm9wU2xpZGUifSxvPXtuYW1lOiJib3R0b20iLGFuY2hvclBvaW50Ont4Oi41LHk6MX0sY29udGVudFBvaW50Ont4Oi41LHk6MH0sb3ZlcmZsb3dIb3Jpem9udGFsOiJzbGlkZSIsb3ZlcmZsb3dWZXJ0aWNhbDoiY3JvcFNsaWRlIn0sYT17bmFtZToidG9wLWxlZnQiLHJ0bE5hbWU6InRvcC1yaWdodCIsYW5jaG9yUG9pbnQ6e3g6MCx5OjB9LGNvbnRlbnRQb2ludDp7eDowLHk6MX0sb3ZlcmZsb3dIb3Jpem9udGFsOiJzbGlkZSIsb3ZlcmZsb3dWZXJ0aWNhbDoiY3JvcFNsaWRlIn0scj17bmFtZToidG9wLXJpZ2h0IixydGxOYW1lOiJ0b3AtbGVmdCIsYW5jaG9yUG9pbnQ6e3g6MSx5OjB9LGNvbnRlbnRQb2ludDp7eDoxLHk6MX0sb3ZlcmZsb3dIb3Jpem9udGFsOiJzbGlkZSIsb3ZlcmZsb3dWZXJ0aWNhbDoiY3JvcFNsaWRlIn0sbD17bmFtZToidG9wIixhbmNob3JQb2ludDp7eDouNSx5OjB9LGNvbnRlbnRQb2ludDp7eDouNSx5OjF9LG92ZXJmbG93SG9yaXpvbnRhbDoic2xpZGUiLG92ZXJmbG93VmVydGljYWw6ImNyb3BTbGlkZSJ9LHU9e25hbWU6InJpZ2h0LXRvcCIscnRsTmFtZToibGVmdC10b3AiLGFuY2hvclBvaW50Ont4OjEseTowfSxjb250ZW50UG9pbnQ6e3g6MCx5OjB9LG92ZXJmbG93SG9yaXpvbnRhbDoiY3JvcFNsaWRlIixvdmVyZmxvd1ZlcnRpY2FsOiJzbGlkZSJ9LGM9e25hbWU6InJpZ2h0LWJvdHRvbSIscnRsTmFtZToibGVmdC1ib3R0b20iLGFuY2hvclBvaW50Ont4OjEseToxfSxjb250ZW50UG9pbnQ6e3g6MCx5OjF9LG92ZXJmbG93SG9yaXpvbnRhbDoiY3JvcFNsaWRlIixvdmVyZmxvd1ZlcnRpY2FsOiJzbGlkZSJ9LGQ9e25hbWU6InJpZ2h0IixydGxOYW1lOiJsZWZ0IiwKYW5jaG9yUG9pbnQ6e3g6MSx5Oi41fSxjb250ZW50UG9pbnQ6e3g6MCx5Oi41fSxvdmVyZmxvd0hvcml6b250YWw6ImNyb3BTbGlkZSIsb3ZlcmZsb3dWZXJ0aWNhbDoic2xpZGUifSxtPXtuYW1lOiJsZWZ0LXRvcCIscnRsTmFtZToicmlnaHQtdG9wIixhbmNob3JQb2ludDp7eDowLHk6MH0sY29udGVudFBvaW50Ont4OjEseTowfSxvdmVyZmxvd0hvcml6b250YWw6ImNyb3BTbGlkZSIsb3ZlcmZsb3dWZXJ0aWNhbDoic2xpZGUifSxoPXtuYW1lOiJsZWZ0LWJvdHRvbSIscnRsTmFtZToicmlnaHQtYm90dG9tIixhbmNob3JQb2ludDp7eDowLHk6MX0sY29udGVudFBvaW50Ont4OjEseToxfSxvdmVyZmxvd0hvcml6b250YWw6ImNyb3BTbGlkZSIsb3ZlcmZsb3dWZXJ0aWNhbDoic2xpZGUifSxwPXtuYW1lOiJsZWZ0IixydGxOYW1lOiJyaWdodCIsYW5jaG9yUG9pbnQ6e3g6MCx5Oi41fSxjb250ZW50UG9pbnQ6e3g6MSx5Oi41fSxvdmVyZmxvd0hvcml6b250YWw6ImNyb3BTbGlkZSIsb3ZlcmZsb3dWZXJ0aWNhbDoic2xpZGUifX0sNDc5Mjk3KGUsdCxuKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gcyhlKXtyZXR1cm4odCxuKT0+KHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKGUsdCxuKSwoKT0+e3dpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKGUsdCxuKX0pfW4uZCh0LHt3aW5kb3dFdmVudDooKT0+c30pfSw0NDA0NDYoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7dXNlQ2xvc2VSZXBvc2l0aW9uT25TY3JvbGxPdXRzaWRlOigpPT51fSk7dmFyIHM9big3Nzk0NzQpLGk9big3MDY5NDMpLG89big0NzkyOTcpLGE9bigxNTkyNTYpLHI9big4NTQzMzgpO2NvbnN0IGw9KDAsby53aW5kb3dFdmVudCkoInNjcm9sbCIpO2Z1bmN0aW9uIHUoZSx0LG4sbyl7Y29uc3QgdT0oMCxzLnVzZU1lbW8pKCgoKT0+KDAsaS5jcmVhdGVTaWduYWwpKCkpLFtdKSxjPSgwLHMudXNlQ2FsbGJhY2spKCgoKT0+e24oITEsImN1cnJlbnRMZXZlbCIpfSksW25dKTtyZXR1cm4gZnVuY3Rpb24oZSx0LG4peygwLGEudXNlQ29uZGl0aW9uYWxFZmZlY3QpKGUsKCgpPT5sKChlPT57Y29uc3Qgcz1uLmN1cnJlbnQ7aWYoIXMpcmV0dXJuO2NvbnN0IGk9ZS50YXJnZXQ7aSYmKCgwLHIuaXNFbGVtZW50Q29udGFpbnNFbGVtZW50VGhyb3VnaFBvcnRhbHMpKHMsaSl8fCgwLHIuaXNFbGVtZW50Q29udGFpbnNFbGVtZW50VGhyb3VnaFBvcnRhbHMpKGkscykmJnQoKSl9KSwhMCkpLFt0LG5dKX0oZSx0P2M6dS5maXJlLG8pLHV9fSw1Nzc4MzIoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7aXNJbkV4Y2x1ZGVkQXJlYTooKT0+aX0pO3ZhciBzPW4oNzcxNDQ3KTtmdW5jdGlvbiBpKGUsdCl7aWYoIXQpcmV0dXJuITE7Y29uc3Qgbj0iY3VycmVudCJpbiB0P3QuY3VycmVudD8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk6dDtyZXR1cm4hIW4mJigwLHMuaXNJblJlY3QpKGUsbil9fSwxNTkyNTYoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7dXNlQ29uZGl0aW9uYWxFZmZlY3Q6KCk9Pml9KTt2YXIgcz1uKDc3OTQ3NCk7ZnVuY3Rpb24gaShlLHQsbil7KDAscy51c2VFZmZlY3QpKCgoKT0+e2lmKGUpcmV0dXJuIHQoKX0pLFsuLi5uLGVdKX19LDcxODc3MyhlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHt1c2VQb3BvdmVyQ2xvc2VCZWhhdmlvcjooKT0+Z30pO3ZhciBzLGk9big3Nzk0NzQpLG89bigzMDYyODcpLGE9bigxNTkyNTYpOyFmdW5jdGlvbihlKXtlW2UuTm9uZT0wXT0iTm9uZSIsZVtlLkhvcml6b250YWw9MV09Ikhvcml6b250YWwiLGVbZS5WZXJ0aWNhbD0yXT0iVmVydGljYWwiLGVbZS5Cb3RoPTNdPSJCb3RoIn0oc3x8KHM9e30pKTt2YXIgcj1uKDQ0MDQ0Nik7ZnVuY3Rpb24gbChlLHQsbil7Y29uc3Qgcz0oMCxvLnVzZVdpbmRvd1Jlc2l6ZVRyaWdnZXIpKCFuLmNsb3NlT25SZXNpemVXaW5kb3cmJmUpOyFmdW5jdGlvbihlLHQsbil7Y29uc3Qgcz0oMCxpLnVzZVJlZikoe2NsaWVudFdpZHRoOnZvaWQgMCxjbGllbnRIZWlnaHQ6dm9pZCAwfSksbz0oMCxpLnVzZU1lbW8pKCgoKT0+ZnVuY3Rpb24oZSl7Y29uc3QgdD1bXTtyZXR1cm4gMSZlJiZ0LnB1c2goImNsaWVudFdpZHRoIiksMiZlJiZ0LnB1c2goImNsaWVudEhlaWdodCIpLHR9KG4pKSxbbl0pOygwLGEudXNlQ29uZGl0aW9uYWxFZmZlY3QpKGUmJjAhPT1uLCgoKT0+e2NvbnN0IGU9KCk9PntvLmZvckVhY2goKGU9Pntjb25zdCBuPWRvY3VtZW50LmRvY3VtZW50RWxlbWVudFtlXTt2b2lkIDAhPT1zLmN1cnJlbnRbZV0/cy5jdXJyZW50W2VdIT09biYmKHQoITAsImN1cnJlbnRMZXZlbCIpLHMuY3VycmVudFtlXT1uKTpzLmN1cnJlbnRbZV09bn0pKX07cmV0dXJuIGUoKSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicmVzaXplIixlLCEwKSwoKT0+e3dpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJyZXNpemUiLGUsITApLHMuY3VycmVudD17Y2xpZW50V2lkdGg6dm9pZCAwLGNsaWVudEhlaWdodDp2b2lkIDB9fX0pLFt0LG9dKX0oISFuLmNsb3NlT25SZXNpemVXaW5kb3cmJmUsdCwzKTtyZXR1cm5bcywoMCxyLnVzZUNsb3NlUmVwb3NpdGlvbk9uU2Nyb2xsT3V0c2lkZSkoZSwhIW4uY2xvc2VPblNjcm9sbE91dHNpZGUsdCxuLnJlZildfXZhciB1PW4oNzg3ODk1KSxjPW4oODU0MzM4KSxkPW4oNDc5Mjk3KSxtPW4oNTc3ODMyKSxoPW4oMjM2NDU0KTt2YXIgcD1uKDMxOTY5KSxmPW4oMjM1NzI0KTtjb25zdCB2PSgwLGQud2luZG93RXZlbnQpKCJrZXlkb3duIik7ZnVuY3Rpb24gZyhlKXtjb25zdCB0PSgwLAppLnVzZVJlZikobnVsbCkse29uQ2xvc2U6bixpc09wZW46cyxyZWZUb0NvbnRlbnRXcmFwcGVyRWxlbWVudDpvPXQsY2xvc2VPbkNsaWNrQXdheTpyPWguUE9QT1ZFUl9ERUZBVUxUX0NMT1NFX09OX0NMSUNLX0FXQVksY2xvc2VPbkVzY2FwZTpnPWguUE9QT1ZFUl9ERUZBVUxUX0NMT1NFX09OX0VTQ0FQRSxjbG9zZU9uU2Nyb2xsT3V0c2lkZTpfPWguUE9QT1ZFUl9ERUZBVUxUX0NMT1NFX09OX1NDUk9MTF9PVVRTSURFLGNsb3NlT25SZXNpemVXaW5kb3c6eT1oLlBPUE9WRVJfREVGQVVMVF9DTE9TRV9PTl9SRVNJWkVfV0lORE9XLGNsb3NlT25UYWI6dz1oLlBPUE9WRVJfREVGQVVMVF9DTE9TRV9PTl9UQUIsZXhjbHVkZUFyZWE6RX09ZTtsZXQgUz0oMCx1LnVzZUZ1bmN0aW9uYWxSZWZPYmplY3QpKG8pO2NvbnN0IE09bChzLG4se2Nsb3NlT25SZXNpemVXaW5kb3c6eSxjbG9zZU9uU2Nyb2xsT3V0c2lkZTpfLHJlZjpTfSk7cmV0dXJuIFM9ZnVuY3Rpb24oZSx0LG4pe2NvbnN0IHM9KDAsaS51c2VDYWxsYmFjaykoKHM9PntlJiZzJiZzLmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLChlPT57aWYoMjchPT0oMCxmLmhhc2hGcm9tRXZlbnQpKGUpKXJldHVybjtjb25zdCBzPW4uY3VycmVudDtpZighcylyZXR1cm47Y29uc3QgaT1lLnRhcmdldDtpIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQmJnMuY29udGFpbnMoaSkmJihlLnByZXZlbnREZWZhdWx0KCksZS5zdG9wUHJvcGFnYXRpb24oKSx0KCEwLCJjdXJyZW50TGV2ZWwiKSl9KSx7Y2FwdHVyZTohMX0pfSksW2VdKTtyZXR1cm4oMCx1LnVzZUZ1bmN0aW9uYWxSZWZPYmplY3QpKCgwLHAudXNlTWVyZ2VkUmVmcykoW24sc10pKX0oZyYmcyxuLFMpLGZ1bmN0aW9uKGUsdCxuKXsoMCxhLnVzZUNvbmRpdGlvbmFsRWZmZWN0KSghIWUsKCgpPT52KChlPT57Y29uc3Qgbj0oMCxmLmhhc2hGcm9tRXZlbnQpKGUpOzkhPT1uJiZuIT09OStmLk1vZGlmaWVycy5TaGlmdHx8dCghMCwiY3VycmVudExldmVsIil9KSwhMCkpLFt0LG5dKX0odyYmcyxuLFMpLGZ1bmN0aW9uKGUsdCxuLHMsaSl7Y29uc3Qgbz0iYm9vbGVhbiI9PXR5cGVvZiBzP2guUE9QT1ZFUl9ERUZBVUxUX0NMT1NFX09OX0NMSUNLX0FXQVk6czsoMCxhLnVzZUNvbmRpdGlvbmFsRWZmZWN0KSghIWUsKCgpPT4oMCxkLndpbmRvd0V2ZW50KShvKSgoZT0+e2NvbnN0IHM9e3g6ZS5jbGllbnRYLHk6ZS5jbGllbnRZfSxvPW4uY3VycmVudDsoMCxtLmlzSW5FeGNsdWRlZEFyZWEpKHMsaSl8fG8mJigwLGMuaXNYWUluc2lkZUVsZW1lbnRUaHJvdWdoUG9ydGFscykobyxzLngscy55KXx8dCghMSwiY3VycmVudExldmVsIil9KSkpLFt0LGksbixvXSl9KHImJnMsbixTLHIsRSkse3JlcG9zaXRpb25UcmlnZ2VyczpNLHJlZlRvQ29udGVudFdyYXBwZXJFbGVtZW50OlN9fX0sNTYyOTgoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7aWdub3JlT25TU1I6KCk9Pm99KTt2YXIgcz1uKDc3OTQ3NCksaT1uKDUyOTQxMSk7ZnVuY3Rpb24gbyhlKXtyZXR1cm4gdD0+KDAsaS51c2VJc05vbkZpcnN0UmVuZGVyKSgpP3MuY3JlYXRlRWxlbWVudChlLHsuLi50fSk6bnVsbH19LDEwNjkwMChlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHt1c2VXYXRjaGVkVmFsdWVSZWFkb25seTooKT0+b30pO3ZhciBzPW4oNzc5NDc0KSxpPW4oNjE2MzExKTtjb25zdCBvPShlLHQ9ITEsbj1bXSk9Pntjb25zdCBvPSJ3YXRjaGVkVmFsdWUiaW4gZT9lLndhdGNoZWRWYWx1ZTp2b2lkIDAsYT0iZGVmYXVsdFZhbHVlImluIGU/ZS5kZWZhdWx0VmFsdWU6ZS53YXRjaGVkVmFsdWUudmFsdWUoKSxbcixsXT0oMCxzLnVzZVN0YXRlKShvP28udmFsdWUoKTphKTtyZXR1cm4odD9pLnVzZUlzb21vcnBoaWNMYXlvdXRFZmZlY3Q6cy51c2VFZmZlY3QpKCgoKT0+e2lmKG8pe2woby52YWx1ZSgpKTtjb25zdCBlPWU9PmwoZSk7cmV0dXJuIG8uc3Vic2NyaWJlKGUpLCgpPT5vLnVuc3Vic2NyaWJlKGUpfXJldHVybigpPT57fX0pLFtvLC4uLm5dKSxyfX0sNDY4NDkzKGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse3VzZVByb21pc2U6KCk9Pm99KTt2YXIgcz1uKDc3OTQ3NCksaT1uKDIxNDk4Nyk7ZnVuY3Rpb24gbyhlLHQsbil7Y29uc3RbbyxhXT0oMCxzLnVzZVN0YXRlKShudWxsKTtyZXR1cm4oMCxzLnVzZUVmZmVjdCkoKCgpPT57Y29uc3Qgbj1uZXcgQWJvcnRDb250cm9sbGVyO2xldCBzPW51bGw7cmV0dXJuKDAsaS5yZXNwZWN0QWJvcnQpKG4uc2lnbmFsLGUoKSkudGhlbigoZT0+YSgoKCk9PnM9ZSkpKSkuY2F0Y2goaS5za2lwQWJvcnRFcnJvciksKCk9PntuLmFib3J0KCkscyYmdCYmdChzKX19KSxuP1suLi5uXTp2b2lkIDApLG99fSw3OTk5OTQoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7SGludEJ1dHRvbjooKT0+cn0pO3ZhciBzPW4oNzc5NDc0KSxpPW4oMTg1MjcxKSxvPW4oMTM4OTk0KSxhPW4oOTI2OTk1KTtmdW5jdGlvbiByKGUpe2NvbnN0e3NvbHV0aW9uSWQ6dCx0aXRsZTpyPWkudChudWxsLHZvaWQgMCxuKDM0OTUwMSkpLGNsYXNzTmFtZTpsLHRhYkluZGV4OnV9PWUsYz0oMCxzLnVzZU1lbW8pKCgoKT0+ZnVuY3Rpb24oZSl7cmV0dXJuKDAscy5mb3J3YXJkUmVmKSgoKG4saSk9PnMuY3JlYXRlRWxlbWVudCgiYSIsey4uLm4scmVmOmksaHJlZjpgP3NvbHV0aW9uPSR7ZX1gLG9uQ2xpY2s6dH0pKSk7ZnVuY3Rpb24gdCh0KXt0LnByZXZlbnREZWZhdWx0KCksKDAsYS5zaG93U3VwcG9ydERpYWxvZykoe3NvbHV0aW9uSWQ6ZX0pfX0odCkpLFt0XSk7cmV0dXJuIHMuY3JlYXRlRWxlbWVudChvLkljb25RdWVzdGlvbkluZm9ybWF0aW9uLHtpY29uOiJxdWVzdGlvbiIsYXJpYUxhYmVsOnIsdG9vbHRpcDpyLGNsYXNzTmFtZTpsLHJlbmRlckNvbXBvbmVudDpjLHRhYkluZGV4OnV9KX19LDg5MTk1NChlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtGdWxsU2Vzc2lvblNjaGVkdWxlV2lkZ2V0OigpPT5hfSk7dmFyIHM9big3Nzk0NzQpLGk9big4MTE1OTEpLG89big0MjU0MzIpO2NsYXNzIGF7Y29uc3RydWN0b3IoZSl7dGhpcy5fc291cmNlPWUsCnRoaXMuX2Z1bGxTZXNzaW9uU2NoZWR1bGVWaWV3TW9kZWw9bmV3IGkuRnVsbFNlc3Npb25TY2hlZHVsZVZpZXdNb2RlbChlKX1kZXN0cm95KCl7dGhpcy5fZnVsbFNlc3Npb25TY2hlZHVsZVZpZXdNb2RlbC5kZXN0cm95KCl9cmVuZGVyZXIoZSx0KXtjb25zdCBuPXRoaXMuX3NvdXJjZS5tYXJrZXRTdGF0dXNNb2RlbCgpPy5zdGF0dXMoKS52YWx1ZSgpO3JldHVybiJleHBpcmVkIj09PW58fCJkZWxpc3RlZCI9PT1uP251bGw6KDAscy5jcmVhdGVFbGVtZW50KShvLkZ1bGxTZXNzaW9uU2NoZWR1bGVSZW5kZXJlcix7a2V5OmUsY2xhc3NOYW1lOnQsc2hvd0FsbERheXM6dm9pZCAwLHNlc3Npb25EYXlzOnRoaXMuX2Z1bGxTZXNzaW9uU2NoZWR1bGVWaWV3TW9kZWwuc2Vzc2lvbnNEYXlzLG5vdzp0aGlzLl9mdWxsU2Vzc2lvblNjaGVkdWxlVmlld01vZGVsLmN1cnJlbnRUaW1lVmFsdWUoKSx0aW1lem9uZTp0aGlzLl9mdWxsU2Vzc2lvblNjaGVkdWxlVmlld01vZGVsLnRpbWV6b25lKCl9KX11cGRhdGVTb3VyY2UoZSl7dGhpcy5fc291cmNlPWUsdGhpcy5fZnVsbFNlc3Npb25TY2hlZHVsZVZpZXdNb2RlbC5kZXN0cm95KCksdGhpcy5fZnVsbFNlc3Npb25TY2hlZHVsZVZpZXdNb2RlbD1uZXcgaS5GdWxsU2Vzc2lvblNjaGVkdWxlVmlld01vZGVsKGUpfX19LDQyNTQzMihlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtGdWxsU2Vzc2lvblNjaGVkdWxlUmVuZGVyZXI6KCk9Pnd9KTt2YXIgcz1uKDc3OTQ3NCksaT1uKDkxNDQ4Nyksbz1uLm4oaSksYT1uKDEzODYzOCkscj1uKDE4NTI3MSksbD1uKDEwNjkwMCksdT1uKDE1MDE1MCk7dmFyIGM9big3NjIwNTMpO2NvbnN0IGQ9bmV3IFdlYWtNYXA7ZnVuY3Rpb24gbShlKXtyZXR1cm4gZC5oYXMoZSl8fGQuc2V0KGUsKDAsdS5yYW5kb21IYXNoKSgpKSwoMCxhLmVuc3VyZURlZmluZWQpKGQuZ2V0KGUpKX1jb25zdCBoPW5ldyBNYXAoW1swLGMuZ3JlZW5dLFsxLGMub3JhbmdlXSxbMixjLmJsdWVdLFs0LGMucHVycGxlXSxbMyxjLmdyYXldXSkscD1uZXcgTWFwKFtbMCxyLnQobnVsbCx2b2lkIDAsbig5Njk0NDkpKV0sWzEsci50KG51bGwsdm9pZCAwLG4oNDI4ODA5KSldLFsyLHIudChudWxsLHZvaWQgMCxuKDE0ODkwKSldLFs0LHIudChudWxsLHZvaWQgMCxuKDYxNTc4MykpXSxbMyxyLnQobnVsbCx2b2lkIDAsbig4Mjk4MykpXV0pLGY9ci50KG51bGwsdm9pZCAwLG4oODQwODMpKTt2YXIgdjtmdW5jdGlvbiBnKGUpe2NvbnN0e3NlZ21lbnQ6dCxmb3JjZVN0YXJ0Om4sZm9yY2VFbmQ6aX09ZSxhPXQuZW5kLnZhbHVlLXQuc3RhcnQudmFsdWUscj1hPC4wMyxsPXtsZWZ0OjEwMCp0LnN0YXJ0LnZhbHVlKyIlIix3aWR0aDpgY2FsYygkezEwMCphfSUgKyAke3I/MjowfXB4KWB9LHU9bygpKGMuc2VnbWVudCxoLmdldCh0LnR5cGUpLChufHx0LnN0YXJ0LmlzRmlyc3RPckxhc3RQb2ludCkmJmMuc3RhcnQsKGl8fHQuZW5kLmlzRmlyc3RPckxhc3RQb2ludCkmJmMuZW5kLHImJmMuc21hbGwsImNvbW1vbi10b29sdGlwLWh0bWwiLCJhcHBseS1jb21tb24tdG9vbHRpcCIpLGQ9ZnVuY3Rpb24oZSx0KXtyZXR1cm5gPGRpdiBjbGFzcz0iJHtjLnRvb2x0aXB9Ij5cblx0XHQ8c3BhbiBjbGFzcz0iJHtoLmdldCh0KX0iPiR7cC5nZXQodCl9PC9zcGFuPlxuXHRcdDxzcGFuIGNsYXNzPSIke2MudGltZX0iPiR7ZX08L3NwYW4+XG5cdDwvZGl2PmB9KHQudG9vbHRpcCx0LnR5cGUpO3JldHVybiBzLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTp1LHN0eWxlOmwsImRhdGEtdG9vbHRpcCI6ZH0pfWZ1bmN0aW9uIF8oZSl7Y29uc3R7c2Vzc2lvbkRheTp0fT1lLG49dC5lbnRyaWVzLm1hcCgoKGUsbik9PnMuY3JlYXRlRWxlbWVudChnLHtrZXk6YCR7bShlKX1TZWdtZW50YCxzZWdtZW50OmUsZm9yY2VTdGFydDowPT09biYmMz09PWUudHlwZSxmb3JjZUVuZDpuPT09dC5lbnRyaWVzLmxlbmd0aC0xJiYzPT09ZS50eXBlfSkpKSxpPW8oKShjLnNlc3Npb25EYXksdC5pc0FjdGl2ZSYmYy5hY3RpdmUpO3JldHVybiBzLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTppfSxzLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpjLndlZWtEYXl9LHQudGl0bGUpLHMuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOmMuc2Vzc2lvbkRheVNlZ21lbnRzfSxuKSl9ZnVuY3Rpb24geShlKXtjb25zdHtzZXNzaW9uRGF5czp0LGN1cnJlbnRUaW1lTWFyazpufT1lLGk9cGFyc2VJbnQoT2JqZWN0LmtleXModCkuZmlsdGVyKChlPT50W3BhcnNlSW50KGUpXS5pc0FjdGl2ZSkpWzBdKSxhPWZ1bmN0aW9uKGUsdCl7Y29uc3Qgbj1lLmZpbHRlcigoZT0+ZS5zdGFydC52YWx1ZTw9dCYmZS5lbmQudmFsdWU+PXQpKVswXTtpZih2b2lkIDA9PT1uKXJldHVybltdO2NvbnN0IHM9W107cmV0dXJuKG4uc3RhcnQuaXNGaXJzdE9yTGFzdFBvaW50fHwzPT09bi50eXBlKSYmcy5wdXNoKG4uc3RhcnQpLChuLmVuZC5pc0ZpcnN0T3JMYXN0UG9pbnR8fDM9PT1uLnR5cGUpJiZzLnB1c2gobi5lbmQpLHMuc29ydCgoKGUsdCk9PmUudmFsdWUtdC52YWx1ZSkpLHN9KHRbaV0uZW50cmllcyxuKTtpZigwPT09YS5sZW5ndGgpcmV0dXJuIG51bGw7Y29uc3Qgcj1hLm1hcCgoZT0+cy5jcmVhdGVFbGVtZW50KCJkaXYiLHtrZXk6bShlKSxjbGFzc05hbWU6Yy50aW1lTWFya30sZS50aXRsZSkpKSxsPTEwMCooMj09PWEubGVuZ3RoP2FbMV0udmFsdWUtYVswXS52YWx1ZTowKSx1PW8oKShsPjEyJiZjLnRpbWVNYXJrU2VnbWVudEFsaWduQnlFbmRzLGMudGltZU1hcmtTZWdtZW50KTtyZXR1cm4gcy5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6Yy5zZXNzaW9uRGF5fSxzLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpjLndlZWtEYXl9KSxzLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpjLnRpbWVNYXJrV3JhcHBlcn0scy5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6dSxzdHlsZTp7bGVmdDoxMDAqYVswXS52YWx1ZSsiJSIsd2lkdGg6YCR7bH0lYH19LHIpKSl9ZnVuY3Rpb24gdyhlKXsKY29uc3R7Y2xhc3NOYW1lOnQsdGltZXpvbmU6bixzaG93QWxsRGF5czppLHRpbWVab25lQ2xhc3NOYW1lOmF9PWUscj0oMCxsLnVzZVdhdGNoZWRWYWx1ZVJlYWRvbmx5KSh7d2F0Y2hlZFZhbHVlOmUuc2Vzc2lvbkRheXN9KSx1PSgwLGwudXNlV2F0Y2hlZFZhbHVlUmVhZG9ubHkpKHt3YXRjaGVkVmFsdWU6ZS5ub3d9KSxkPU9iamVjdC52YWx1ZXMocikuZmlsdGVyKChlPT5lLmlzQWN0aXZlKSlbMF0sbT1vKCkodCxjLndyYXBwZXIpO3JldHVybiBzLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTptfSxzLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpjLnNlc3Npb25EYXlXcmFwcGVyfSxpP3MuY3JlYXRlRWxlbWVudChzLkZyYWdtZW50LG51bGwsT2JqZWN0LnZhbHVlcyhyKS5tYXAoKChlLHQpPT5zLmNyZWF0ZUVsZW1lbnQoXyx7a2V5OnQsc2Vzc2lvbkRheTplfSkpKSk6cy5jcmVhdGVFbGVtZW50KF8se3Nlc3Npb25EYXk6ZH0pLHMuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOmMubm93V3JhcHBlcn0scy5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6Yy5ub3csc3R5bGU6e2xlZnQ6MTAwKnUrIiUifX0pKSkscy5jcmVhdGVFbGVtZW50KHkse3Nlc3Npb25EYXlzOnIsY3VycmVudFRpbWVNYXJrOnV9KSxzLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpvKCkoYy50aW1lem9uZSxhLGkmJmMubGFyZ2VQYWRkaW5nKX0sYCR7Zn06ICR7bn1gKSl9IWZ1bmN0aW9uKGUpe2VbZS5NaW5TZWdtZW50V2lkdGg9MTJdPSJNaW5TZWdtZW50V2lkdGgiLGVbZS5TbWFsbFdpZHRoPS4wM109IlNtYWxsV2lkdGgifSh2fHwodj17fSkpfSw4MTE1OTEoZSx0LG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcztuLmQodCx7RnVsbFNlc3Npb25TY2hlZHVsZVZpZXdNb2RlbDooKT0+JH0pLGZ1bmN0aW9uKGUpe2VbZS5SZWd1bGFyPTBdPSJSZWd1bGFyIixlW2UuUHJlPTFdPSJQcmUiLGVbZS5Qb3N0PTJdPSJQb3N0IixlW2UuQ2xvc2U9M109IkNsb3NlIixlW2UuT3Zlcm5pZ2h0PTRdPSJPdmVybmlnaHQifShzfHwocz17fSkpO3ZhciBpPW4oMjIzNTU2KSxvPW4oNjAxODQxKSxhPW4oNzAwODA5KSxyPW4oMjMyMzY0KSxsPW4oMTI4OTk4KTtmdW5jdGlvbiB1KGUpe3JldHVybiBlL2EubWludXRlc1BlckRheX1mdW5jdGlvbiBjKGUpe3JldHVybiBNYXRoLnJvdW5kKGUqYS5taW51dGVzUGVyRGF5KX12YXIgZD1uKDEzODYzOCksbT1uKDU1NjkxMSksaD1uKDQxNTIzNyk7Y29uc3QgcD1baC5XZWVrRGF5cy5TVU5EQVksaC5XZWVrRGF5cy5NT05EQVksaC5XZWVrRGF5cy5UVUVTREFZLGguV2Vla0RheXMuV0VETkVTREFZLGguV2Vla0RheXMuVEhVUlNEQVksaC5XZWVrRGF5cy5GUklEQVksaC5XZWVrRGF5cy5TQVRVUkRBWV07ZnVuY3Rpb24gZihlKXtyZXR1cm4gdD0+ZnVuY3Rpb24oZSx0KXtyZXR1cm4oZSt0KzYpJTcrMX0odCxlKX1jb25zdCB2PWYoLTEpLGc9ZigxKTtjb25zdCBfPWZ1bmN0aW9uKGUpe3JldHVybiBlJiZlLmxlbmd0aD9lWzBdOnZvaWQgMH07dmFyIHk9big5MjYwODgpLHc9bigzODA1NDApLEU9big4MjI0MzEpO2Z1bmN0aW9uIFMoZSl7Zm9yKCgwLGQuYXNzZXJ0KShOdW1iZXIuaXNJbnRlZ2VyKGUpLCJ0aW1lTWludXRlcyBleHBlY3RlZCB0byBiZSBpbnRlZ2VyIG51bWJlciIpO2U+YS5taW51dGVzUGVyRGF5OyllLT1hLm1pbnV0ZXNQZXJEYXk7Y29uc3QgdD1lJTYwLG49KGUtdCkvNjA7cmV0dXJuKDAsRS5udW1iZXJUb1N0cmluZ1dpdGhMZWFkaW5nWmVybykobiwyKSsiOiIrKDAsRS5udW1iZXJUb1N0cmluZ1dpdGhMZWFkaW5nWmVybykodCwyKX1mdW5jdGlvbiBNKGUsdCl7cmV0dXJuYCR7ZX0g4oCUICR7dH1gfWZ1bmN0aW9uIHgoZSx0KXtyZXR1cm5gJHt3LndlZWtEYXlzU2hvcnROYW1lc1tlXX0gJHtTKHQpfWB9ZnVuY3Rpb24gTihlLHQsbixzKXsoMCxkLmFzc2VydCkodCE9PWEubWludXRlc1BlckRheSwiU3RhcnQgdGltZSBleHBlY3RlZCB0byBiZSBub3JtYWxpemVkICgyNDowMCBhcyByYW5nZSBzdGFydCBpcyBub3QgYWxsb3dlZCkiKSwoMCxkLmFzc2VydCkoMCE9PXMsIkVuZCB0aW1lIGV4cGVjdGVkIHRvIGJlIG5vcm1hbGl6ZWQgKDAwOjAwIGFzIHJhbmdlIGVuZCBpcyBub3QgYWxsb3dlZCkiKTtjb25zdCBpPWZ1bmN0aW9uKGUsdCxuLHMpe2NvbnN0IGk9ZSphLm1pbnV0ZXNQZXJEYXkrdDtsZXQgbz1uKmEubWludXRlc1BlckRheStzO3JldHVybiBvPGkmJihvKz03KmEubWludXRlc1BlckRheSksby1pfShlLHQsbixzKTtyZXR1cm4gaTxhLm1pbnV0ZXNQZXJEYXl8fGk9PT1hLm1pbnV0ZXNQZXJEYXkmJjA9PT10P2Z1bmN0aW9uKGUsdCl7cmV0dXJuIE0oUyhlKSxTKHQpKX0odCxzKTpmdW5jdGlvbihlLHQsbixzKXtyZXR1cm4gTSh4KGUsdCkseChuLHMpKX0oZSx0LG4scyl9ZnVuY3Rpb24gVChlLHQpe3JldHVybnt2YWx1ZTplLHRpdGxlOlMoYyhlKSksaXNGaXJzdE9yTGFzdFBvaW50OnR9fWZ1bmN0aW9uIGIoZSl7cmV0dXJuIDMhPT1lLnR5cGV9ZnVuY3Rpb24gQyhlLHQpe3JldHVybntkYXlJbmRleDplLGVudHJpZXM6dC5maWx0ZXIoYil9fWZ1bmN0aW9uIEEoZSx0LG4scz10KXtjb25zdCBpPW4odCksbz1lW2ldO3JldHVybiBpIT09cyYmMD09PW8uZW50cmllcy5sZW5ndGg/QShlLGksbixzKTpDKGksZVtpXS5lbnRyaWVzKX1mdW5jdGlvbiBWKGUpe3JldHVybih0LG4pPT5BKHQsbixlKX1jb25zdCBXPVYodiksaz1WKGcpO2Z1bmN0aW9uIEwoZSx0LG4scyl7cmV0dXJuKGksbyxhKT0+dm9pZCAwPT09aT9bcyxhXTppPT09ZT9bdCxuKG8pXTpbaSxvXX1jb25zdCBQPUwoMSwwLGcsMCksRD1MKDAsMSx2LDEpO2Z1bmN0aW9uIE8oZSx0LG4scyxpKXtjb25zdFtvLGFdPVAoZSx0LGkpLFtyLGxdPUQobixzLGkpOygwLGQuYXNzZXJ0KSh0IT09bnx8bzxyLGBEYXlzIGFyZSBzYW1lICgke3R9KSBidXQgcHJldiBlbnRyeSB0aW1lICgke299KSA+PSBuZXh0IGVudHJ5IHRpbWUgKCR7cn0pYCk7Y29uc3QgdT1jKG8pLG09YyhyKTtyZXR1cm4gaD1UKGEhPT1pPzA6byxhPT09aSkscD1UKGwhPT1pPzE6cixsPT09aSksZj0zLHY9TihhLHUsbCxtKSx7CnN0YXJ0OmgsZW5kOnAsdHlwZTpmLHRvb2x0aXA6dn07dmFyIGgscCxmLHZ9ZnVuY3Rpb24gSShlLHQsbixzLGkpe3JldHVybiBPKGU/LmVuZD8udmFsdWUsdCxuPy5zdGFydD8udmFsdWUscyxpKX1mdW5jdGlvbiB6KGUpe2NvbnN0IHQ9Wy4uLmUuZW50cmllc107Zm9yKGxldCBuPTE7bjxlLmVudHJpZXMubGVuZ3RoO24rKyl7Y29uc3Qgcz1lLmVudHJpZXNbbi0xXSxpPWUuZW50cmllc1tuXTtpZihpLnN0YXJ0LnZhbHVlIT09cy5lbmQudmFsdWUpe2NvbnN0IG49SShzLGUuZGF5SW5kZXgsaSxlLmRheUluZGV4LGUuZGF5SW5kZXgpO3QucHVzaChuKX19cmV0dXJuIHQuc29ydCgoKGUsdCk9PmUuc3RhcnQudmFsdWUtdC5zdGFydC52YWx1ZSkpLHR9ZnVuY3Rpb24gRihlLHQpe2NvbnN0IG49KDAseS5kZWZhdWx0KSh0LmVudHJpZXMpLHM9dC5kYXlJbmRleCxpPSgwLGQuZW5zdXJlRGVmaW5lZCkoXyhlLmVudHJpZXMpKTtyZXR1cm4gMD09PWkuc3RhcnQudmFsdWU/W106W0kobixzLGksZS5kYXlJbmRleCxlLmRheUluZGV4KV19ZnVuY3Rpb24gUihlLHQpe2NvbnN0IG49Xyh0LmVudHJpZXMpLHM9dC5kYXlJbmRleCxpPSgwLGQuZW5zdXJlRGVmaW5lZCkoKDAseS5kZWZhdWx0KShlLmVudHJpZXMpKTtyZXR1cm4gMT09PWkuZW5kLnZhbHVlP1tdOltJKGksZS5kYXlJbmRleCxuLHMsZS5kYXlJbmRleCldfWZ1bmN0aW9uIEgoZSx0KXtjb25zdCBuPXt0aGlzRGF5OkMoZSx0W2VdLmVudHJpZXMpLHByZXZEYXk6Vyh0LGUpLG5leHREYXk6ayh0LGUpfTtyZXR1cm4gZnVuY3Rpb24oe3RoaXNEYXk6ZSxwcmV2RGF5OnQsbmV4dERheTpufSl7aWYoMD09PWUuZW50cmllcy5sZW5ndGgpcmV0dXJuW0koKDAseS5kZWZhdWx0KSh0LmVudHJpZXMpLHQuZGF5SW5kZXgsXyhuLmVudHJpZXMpLG4uZGF5SW5kZXgsZS5kYXlJbmRleCldfShuKT8/ZnVuY3Rpb24oe3RoaXNEYXk6ZSxwcmV2RGF5OnQsbmV4dERheTpufSl7Y29uc3Qgcz1lLmRheUluZGV4O2lmKHQuZGF5SW5kZXghPT1zfHxuLmRheUluZGV4IT09cylyZXR1cm47Y29uc3QgaT1lLmVudHJpZXMsYT0oMCxkLmVuc3VyZURlZmluZWQpKF8oaSkpLHI9KDAsZC5lbnN1cmVEZWZpbmVkKSgoMCx5LmRlZmF1bHQpKGkpKTtyZXR1cm5bMCE9PWEuc3RhcnQudmFsdWU/TygwLHMsYS5zdGFydC52YWx1ZSxzLHMpOnZvaWQgMCwuLi56KGUpLDEhPT1yLmVuZC52YWx1ZT9PKHIuZW5kLnZhbHVlLHMsMSxzLHMpOnZvaWQgMF0uZmlsdGVyKG8uaXNFeGlzdGVudCl9KG4pPz9mdW5jdGlvbihlKXtyZXR1cm5bLi4uRihlLnRoaXNEYXksZS5wcmV2RGF5KSwuLi56KGUudGhpc0RheSksLi4uUihlLnRoaXNEYXksZS5uZXh0RGF5KV19KG4pfXZhciBCPW4oNTU5NjkpLFo9bigyNTQ3MzgpO2NvbnN0IGo9ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PS0xLG49bnVsbD09ZT8wOmUubGVuZ3RoLHM9e307Kyt0PG47KXt2YXIgaT1lW3RdOygwLFouZGVmYXVsdCkocyxpWzBdLGlbMV0pfXJldHVybiBzfShwLm1hcCgoZT0+W2Use3RpdGxlOncud2Vla0RheXNTaG9ydE5hbWVzW2VdLGlzQWN0aXZlOiExLGVudHJpZXM6W119XSkpKTtmdW5jdGlvbiBHKGUsdCxuKXtjb25zdCBzPWVbbl0uZW50cmllcztzLnB1c2godCkscy5zb3J0KCgoZSx0KT0+ZS5zdGFydC52YWx1ZS10LnN0YXJ0LnZhbHVlKSl9ZnVuY3Rpb24gUShlLHQpe2NvbnN0IG49ZnVuY3Rpb24oZSl7aWYobnVsbD09PWUpcmV0dXJuIG5ldyBNYXA7aWYodm9pZCAwPT09ZS5zdWJzZXNzaW9ucylyZXR1cm4gbmV3IE1hcChbWzAsbmV3IEIuU2Vzc2lvbnNTcGVjKGUudGltZXpvbmUsZS5zZXNzaW9uX2Rpc3BsYXk/P2Uuc2Vzc2lvbixlLnNlc3Npb25faG9saWRheXMsZS5jb3JyZWN0aW9ucyldXSk7Y29uc3QgdD0icmVndWxhciIsbj0icHJlbWFya2V0IixzPSJwb3N0bWFya2V0IixpPSJuaWdodCIsbz1bdCxuLHMsaV0sYT1uZXcgTWFwO2Zvcihjb25zdCByIG9mIG8pe2xldCBvPW51bGw7c3dpdGNoKHIpe2Nhc2UgdDpvPTA7YnJlYWs7Y2FzZSBuOm89MTticmVhaztjYXNlIHM6bz0yO2JyZWFrO2Nhc2UgaTpvPTR9aWYobnVsbCE9PW8pe2NvbnN0IHQ9ZS5zdWJzZXNzaW9ucy5maW5kKChlPT5lLmlkPT09cikpO3ZvaWQgMCE9PXQmJmEuc2V0KG8sbmV3IEIuU2Vzc2lvbnNTcGVjKGUudGltZXpvbmUsdFsic2Vzc2lvbi1kaXNwbGF5Il18fHQuc2Vzc2lvbixlLnNlc3Npb25faG9saWRheXMsdFsic2Vzc2lvbi1jb3JyZWN0aW9uIl0pKX19cmV0dXJuIGF9KGUpLHM9dD8/KDAsYS51dGNfdG9fY2FsKSgoMCxhLmdldF90aW1lem9uZSkoZT8udGltZXpvbmU/PyJFdGMvVVRDIiksRGF0ZS5ub3coKSksaT0odD8uZ2V0VVRDRGF5KCk/PyhuZXcgRGF0ZSkuZ2V0RGF5KCkpJTcrMTtjb25zdCBvPSgwLG0uZGVlcENvcHkpKGopO29baV0uaXNBY3RpdmU9ITA7Zm9yKGNvbnN0IGUgb2YgQXJyYXkuZnJvbShuLmtleXMoKSkpe2NvbnN0IHQ9KDAsZC5lbnN1cmVEZWZpbmVkKShuLmdldChlKSksaT0oMCxhLmdldF9kYXlfb2Zfd2Vlaykocykscj0oMCxhLmNsb25lKShzKTsoMCxhLmFkZF9kYXRlKShyLC1pKSwoMCxhLnNldF9obXMpKHIsMCwwLDAsMCk7Y29uc3QgbD0oMCxhLmNsb25lKShyKTsoMCxhLmFkZF9kYXRlKShsLDcpO2xldCBjPXQuYWxpZ25Ub05lYXJlc3RTZXNzaW9uU3RhcnQocix0LmluU2Vzc2lvbihyKT8tMToxKTtmb3IoO2MuZ2V0VGltZSgpPGwuZ2V0VGltZSgpOyl7Y29uc3Qgbj10LmFsaWduVG9OZWFyZXN0U2Vzc2lvbkVuZChjLDEpLHM9KDAsYS5nZXRfZGF5X29mX3dlZWspKGMpLGk9KDAsYS5nZXRfZGF5X29mX3dlZWspKG4pLGQ9KDAsYS5nZXRfbWludXRlc19mcm9tX21pZG5pZ2h0KShjKSxtPSgwLGEuZ2V0X21pbnV0ZXNfZnJvbV9taWRuaWdodCkobikrMSxoPXUoZCkscD11KG0pLGY9TihzLGQsaSxtKTtpZihzPT09aSlHKG8se3N0YXJ0OlQoaCwhMCksZW5kOlQocCwhMCksdHlwZTplLHRvb2x0aXA6Zn0scyk7ZWxzZXtjLmdldFRpbWUoKT5yLmdldFRpbWUoKSYmRyhvLHtzdGFydDpUKGgsITApLGVuZDpUKDEsITEpLHR5cGU6ZSx0b29sdGlwOmZ9LHMpO2NvbnN0IHQ9KDAsYS5jbG9uZSkoYyk7KDAsCmEuc2V0X2htcykodCwwLDAsMCwwKSwoMCxhLmFkZF9kYXRlKSh0LDEpO2NvbnN0IHU9KDAsYS5jbG9uZSkobik7Zm9yKCgwLGEuc2V0X2htcykodSwwLDAsMCwwKTt0LmdldFRpbWUoKTx1LmdldFRpbWUoKTspdC5nZXRUaW1lKCk+PXIuZ2V0VGltZSgpJiZ0LmdldFRpbWUoKTxsLmdldFRpbWUoKSYmRyhvLHtzdGFydDpUKDAsITEpLGVuZDpUKDEsITEpLHR5cGU6ZSx0b29sdGlwOmZ9LCgwLGEuZ2V0X2RheV9vZl93ZWVrKSh0KSksKDAsYS5hZGRfZGF0ZSkodCwxKTtuLmdldFRpbWUoKTxsLmdldFRpbWUoKSYmRyhvLHtzdGFydDpUKDAsITEpLGVuZDpUKHAsITApLHR5cGU6ZSx0b29sdGlwOmZ9LGkpfSgwLGEuYWRkX21pbnV0ZXMpKG4sMSksYz10LmFsaWduVG9OZWFyZXN0U2Vzc2lvblN0YXJ0KG4sMSl9fXJldHVybiBmdW5jdGlvbihlKXtjb25zdCB0PW5ldyBNYXA7Zm9yKGNvbnN0IG4gb2YgcCl0LnNldChuLEgobixlKSk7Zm9yKGNvbnN0IG4gb2YgcCllW25dLmVudHJpZXM9KDAsZC5lbnN1cmVEZWZpbmVkKSh0LmdldChuKSl9KG8pLHtuZXdTZXNzaW9uc0RheXM6byxuZXdUb2RheVNlc3Npb246b1tpXX19ZnVuY3Rpb24gVShlKXtyZXR1cm4oMCxhLmdldF9jYWxfZnJvbV91bml4X3RpbWVzdGFtcF9tcykoKDAsYS5nZXRfdGltZXpvbmUpKGUudGltZXpvbmUpLHdpbmRvdy5DaGFydEFwaUluc3RhbmNlLnNlcnZlclRpbWUoKS0xZTMqKDAsbC5nZXRTeW1ib2xEZWxheVNlY29uZHMpKGUpKX1jbGFzcyAke2NvbnN0cnVjdG9yKGUpe3RoaXMuc2Vzc2lvbnNEYXlzPW5ldyByLldhdGNoZWRWYWx1ZSgoMCxvLmNsb25lKShqKSksdGhpcy50b2RheVNlc3Npb249bmV3IHIuV2F0Y2hlZFZhbHVlKCgwLG8uY2xvbmUpKHtlbnRyaWVzOltdfSkpLHRoaXMuX2N1cnJlbnRUaW1lPW5ldyByLldhdGNoZWRWYWx1ZSgtMSksdGhpcy5fc3ltYm9sSW5mbz1lLnN5bWJvbEluZm8oKS5zcGF3bigpLHRoaXMuX3N5bWJvbEluZm8uc3Vic2NyaWJlKHRoaXMuX3VwZGF0ZUVudHJpZXNCeVN1YlNlc3Npb25zLmJpbmQodGhpcykse2NhbGxXaXRoTGFzdDohMH0pLHRoaXMuX3RpbWVJbnRlcnZhbElkPXNldEludGVydmFsKHRoaXMuX3VwZGF0ZVRvZGF5V2l0aE9mZnNldHMuYmluZCh0aGlzKSw2ZTQpfWRlc3Ryb3koKXt0aGlzLl9zeW1ib2xJbmZvLmRlc3Ryb3koKSxjbGVhckludGVydmFsKHRoaXMuX3RpbWVJbnRlcnZhbElkKX1jdXJyZW50VGltZVZhbHVlKCl7cmV0dXJuIHRoaXMuX2N1cnJlbnRUaW1lLnJlYWRvbmx5KCl9dGltZXpvbmUoKXtjb25zdCBlPXRoaXMuX3N5bWJvbEluZm8udmFsdWUoKTtyZXR1cm4gbnVsbD09PWU/IiI6KDAsaS50aW1lem9uZVRpdGxlKShlLnRpbWV6b25lKX1fdXBkYXRlRW50cmllc0J5U3ViU2Vzc2lvbnMoZSl7dGhpcy5fdXBkYXRlVG9kYXlXaXRoT2Zmc2V0cygpO2NvbnN0e25ld1Nlc3Npb25zRGF5czp0LG5ld1RvZGF5U2Vzc2lvbjpufT1RKGUsbnVsbD09PWU/bnVsbDpVKGUpKTt0aGlzLnNlc3Npb25zRGF5cy5zZXRWYWx1ZSh0KSx0aGlzLnRvZGF5U2Vzc2lvbi5zZXRWYWx1ZShuKX1fdXBkYXRlVG9kYXlXaXRoT2Zmc2V0cygpe2NvbnN0IGU9dGhpcy5fc3ltYm9sSW5mby52YWx1ZSgpO2lmKG51bGw9PT1lKXJldHVybiB2b2lkIHRoaXMuX2N1cnJlbnRUaW1lLnNldFZhbHVlKC0xKTtjb25zdCB0PXRoaXMuX2N1cnJlbnRUaW1lLnZhbHVlKCksbj11KCgwLGEuZ2V0X21pbnV0ZXNfZnJvbV9taWRuaWdodCkoVShlKSkpO3RoaXMuX2N1cnJlbnRUaW1lLnNldFZhbHVlKG4pLG48dCYmdGhpcy5fdXBkYXRlRW50cmllc0J5U3ViU2Vzc2lvbnMoZSl9fX0sMjIxMzAwKGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse0Z1bGxUb29sdGlwV2lkZ2V0OigpPT5FfSk7dmFyIHM9big3Nzk0NzQpLGk9big5MTQ0ODcpLG89bi5uKGkpLGE9bigxMzg2MzgpLHI9bigyNzMzMTApLGw9bigyOTU3NDQpLHU9big4NTQ4MjApLGM9big1OTA0ODYpLGQ9bigyMzQ2MzYpLG09big2MDE4NDEpLGg9bigxMDY5MDApLHA9bigxNTAxNTApLGY9big0Njg0OTMpLHY9big3OTk5OTQpLGc9big4NjA1NDgpLF89big0NDcyNjgpO2NvbnN0IHk9bmV3IFdlYWtNYXAsdz1uZXcgV2Vha01hcDtmdW5jdGlvbiBFKGUpe2NvbnN0IHQ9KDAsaC51c2VXYXRjaGVkVmFsdWVSZWFkb25seSkoe3dhdGNoZWRWYWx1ZTplLmluZm99KSxuPSgwLGYudXNlUHJvbWlzZSkoKCgpPT5lLnByZWxpbWluYXJ5Sm9iPz9Qcm9taXNlLnJlc29sdmUoKSksdm9pZCAwLFtdKTtpZighdHx8ZS5wcmVsaW1pbmFyeUpvYiYmbnVsbD09PW4pcmV0dXJuIG51bGw7Y29uc3QgaT10Lm1hcCgodD0+e2NvbnN0e3RpdGxlOm4sdGl0bGVDb2xvcjppLGljb246bCxpY29uQ2xhc3NOYW1lOnUsaHRtbDpoLGFjdGlvbjpmLHNlY29uZGFyeUFjdGlvbjpTLGJhZGdlTGFiZWw6TSxzaXplOngsc29sdXRpb25JZDpOfT10O3kuaGFzKHQpfHx5LnNldCh0LCgwLHAucmFuZG9tSGFzaCkoKSk7bGV0IFQ9W107cmV0dXJuIHZvaWQgMCE9PWUuYWRkaXRpb25hbFdpZGdldHMmJihUPWUuYWRkaXRpb25hbFdpZGdldHMubWFwKCh0PT4ody5oYXModCl8fHcuc2V0KHQsKDAscC5yYW5kb21IYXNoKSgpKSx0LnJlbmRlcmVyKCgwLGEuZW5zdXJlRGVmaW5lZCkody5nZXQodCkpLF8uYWRkaXRpb25hbFdpZGdldCxlLm9uQ2xvc2UpKSkpKSxzLmNyZWF0ZUVsZW1lbnQoImRpdiIse2tleTp5LmdldCh0KSxjbGFzc05hbWU6bygpKF8ucG9wdXBXaWRnZXQsX1t4XSxlLmlzTW9iaWxlJiZfLm1vYmlsZSksImRhdGEtcWEtaWQiOnQuZGF0YVFhSWQsdGFiSW5kZXg6MCxyZWY6ZT0+e2U/LmZvY3VzKCl9fSxzLmNyZWF0ZUVsZW1lbnQoci5JY29uLHtjbGFzc05hbWU6bygpKF8uaWNvbixnLnN0YXR1c0l0ZW0sdSxnW3hdLF9beF0pLHN0eWxlOnZvaWQgMCxpY29uOmx8fHZvaWQgMH0pLHMuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOl8uZGVzY30scy5jcmVhdGVFbGVtZW50KCJzcGFuIix7c3R5bGU6e2NvbG9yOml8fHZvaWQgMH0sY2xhc3NOYW1lOm8oKShfLnRpdGxlLF9beF0pCn0scy5jcmVhdGVFbGVtZW50KCJzcGFuIixudWxsLG4pLE0mJnMuY3JlYXRlRWxlbWVudChjLkJhZGdlLHtzaXplOmQuQmFkZ2VTaXplLlNtYWxsfSxNKSxOJiZzLmNyZWF0ZUVsZW1lbnQodi5IaW50QnV0dG9uLHtzb2x1dGlvbklkOk59KSksaCYmcy5jcmVhdGVFbGVtZW50KCJwIix7Y2xhc3NOYW1lOm8oKShfLnRleHQsX1t4XSl9LGgubWFwKCgoZSx0KT0+e2NvbnN0IG49YGh0bWxfaXRlbV8ke3R9YDtpZihzLmlzVmFsaWRFbGVtZW50KGUpKXJldHVybiBzLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtrZXk6bixjbGFzc05hbWU6Xy5pdGVtfSxlKTtpZigoMCxtLmlzT2JqZWN0KShlKSYmInRleHQiaW4gZSl7Y29uc3QgdD1lO3JldHVybiBzLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtrZXk6bixjbGFzc05hbWU6bygpKF8uaXRlbSx0LmJvbGQmJl8uYm9sZEl0ZW0pLGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MOntfX2h0bWw6dC50ZXh0fX0pfXJldHVybiBzLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtrZXk6bixjbGFzc05hbWU6Xy5pdGVtLGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MOntfX2h0bWw6ZX19KX0pKSksZiYmcy5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6Xy5hY3Rpb25zfSxFKGYsInByaW1hcnktYWN0aW9uIiksUyYmRShTLCJzZWNvbmRhcnktYWN0aW9uIikpLFQpKX0pKTtyZXR1cm4gcy5jcmVhdGVFbGVtZW50KHMuRnJhZ21lbnQsbnVsbCxpKTtmdW5jdGlvbiBFKHQsbil7Y29uc3QgaT10LmNvbG9yfHwiZ3JheSIsYT1bImdyYXkiLCJncmVlbiIsInJlZCIsImJsdWUiXS5pbmNsdWRlcyhpKT91LkxpZ2h0QnV0dG9uOmwuU3F1YXJlQnV0dG9uO3JldHVybiBzLmNyZWF0ZUVsZW1lbnQoYSx7a2V5Om4sY2xhc3NOYW1lOm8oKShfLmFjdGlvbkJ0bix0LmNsYXNzTmFtZSksb25DbGljazooKT0+e2Uub25DbG9zZSgpLHQub25DbGljaygpfSxjb2xvcjppLHZhcmlhbnQ6dC52YXJpYW50LHNpemU6InhzbWFsbCIsdG9vbHRpcFRleHQ6dC50b29sdGlwfSx0LnRleHQpfX19LDIzMjM2MShlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtNYXJrZXRTdGF0dXNWaWV3TW9kZWw6KCk9Pmx9KTt2YXIgcz1uKDY0MTU5MyksaT1uKDIzMjM2NCksbz1uKDIxNDc3MSksYT1uKDU2NTIwNikscj1uKDUyODg3Mik7Y2xhc3MgbCBleHRlbmRzIGEuU3RhdHVzVmlld01vZGVse2NvbnN0cnVjdG9yKGUsdCxuPSExKXtzdXBlcih7dG9vbHRpcE1hcDpyLnRvb2x0aXBNYXAsaWNvbk1hcDpyLmljb25NYXAsY2xhc3NOYW1lTWFwOnIuY2xhc3NOYW1lTWFwLHRpdGxlTWFwOnIudGl0bGVNYXAsdGl0bGVDb2xvck1hcDpyLnRpdGxlQ29sb3JNYXAsYWN0aW9uTWFwOnIuYWN0aW9uTWFwLHNpemU6dH0pLHRoaXMuX21vZGVsPW51bGwsdGhpcy5fZXhwaXJlZFN0YXR1cz1udWxsLHRoaXMuX21hcmtldFN0YXR1cz1uZXcgaS5XYXRjaGVkVmFsdWUobnVsbCkuc3Bhd24oKSx0aGlzLl9zZXNzaW9uRWRnZT1uZXcgaS5XYXRjaGVkVmFsdWUobnVsbCkuc3Bhd24oKSx0aGlzLl9pZ25vcmVIaWRlU3RhdHVzU2V0dGluZ3M9bix0aGlzLnNldE1vZGVsKGUpLG8uc2hvd01hcmtldE9wZW5TdGF0dXNQcm9wZXJ0eS5zdWJzY3JpYmUodGhpcyx0aGlzLl9zaG93TWFya2V0T3BlblN0YXR1c1Byb3BlcnR5Q2hhbmdlZCl9ZGVzdHJveSgpe3RoaXMuX21hcmtldFN0YXR1cy5kZXN0cm95KCksdGhpcy5fc2Vzc2lvbkVkZ2UuZGVzdHJveSgpLHRoaXMuX21vZGVsPW51bGwsby5zaG93TWFya2V0T3BlblN0YXR1c1Byb3BlcnR5LnVuc3Vic2NyaWJlQWxsKHRoaXMpLHN1cGVyLmRlc3Ryb3koKX1zZXRNb2RlbChlKXtpZih0aGlzLl9tYXJrZXRTdGF0dXMuZGVzdHJveSgpLHRoaXMuX3Nlc3Npb25FZGdlLmRlc3Ryb3koKSx0aGlzLl9leHBpcmVkU3RhdHVzPy5kZXN0cm95KCksbnVsbD09PWUpcmV0dXJuIHRoaXMuX21hcmtldFN0YXR1cz1uZXcgaS5XYXRjaGVkVmFsdWUobnVsbCkuc3Bhd24oKSx0aGlzLl9zZXNzaW9uRWRnZT1uZXcgaS5XYXRjaGVkVmFsdWUobnVsbCkuc3Bhd24oKSx2b2lkKHRoaXMuX2V4cGlyZWRTdGF0dXM9bnVsbCk7dGhpcy5fbW9kZWw9ZTtjb25zdCB0PWUuZnV0dXJlc0NvbnRyYWN0RXhwaXJhdGlvblRpbWUoKTt0JiYodGhpcy5fZXhwaXJlZFN0YXR1cz10LmV4cGlyZWQoKS5zcGF3bigpLHRoaXMuX2V4cGlyZWRTdGF0dXMuc3Vic2NyaWJlKChlPT57ZSYmdGhpcy5fdXBkYXRlQnlTdGF0dXModGhpcy5fbWFya2V0U3RhdHVzLnZhbHVlKCkpfSkpKSx0aGlzLl9tYXJrZXRTdGF0dXM9ZS5zdGF0dXMoKS5zcGF3bigpLHRoaXMuX21hcmtldFN0YXR1cy5zdWJzY3JpYmUodGhpcy5fdXBkYXRlU3RhdHVzLmJpbmQodGhpcykse2NhbGxXaXRoTGFzdDohMH0pLHRoaXMuX3Nlc3Npb25FZGdlPWUubmV4dFNlc3Npb25FZGdlKCkuc3Bhd24oKSx0aGlzLl9zZXNzaW9uRWRnZS5zdWJzY3JpYmUodGhpcy5fdXBkYXRlVG9vbHRpcC5iaW5kKHRoaXMpKSx0aGlzLl91cGRhdGVUb29sdGlwKCl9YXN5bmMgX3VwZGF0ZUZ1bGxUb29sdGlwKCl7Y29uc3QgZT10aGlzLnN0YXR1cygpLnZhbHVlKCk7aWYobnVsbD09PWUpcmV0dXJuIHZvaWQgdGhpcy5fZnVsbFRvb2x0aXAuc2V0VmFsdWUobnVsbCk7Y29uc3QgdD1bXSxuPXIubWFya2V0U3RhdHVzRGVzY3JpcHRpb24uZ2V0KGUpO24mJnQucHVzaCgoMCxzLmh0bWxFc2NhcGUpKG4pKTtjb25zdCBpPXRoaXMuX21hcmtldFN0YXR1cy52YWx1ZSgpO2lmKG51bGwhPT10aGlzLl9tb2RlbCYmbnVsbCE9PWkmJiJleHBpcmVkIiE9PWkmJiJkZWxpc3RlZCIhPT1pKXtjb25zdCBuPXRoaXMuX21vZGVsLm5leHRTZXNzaW9uRWRnZSgpLnZhbHVlKCk7bnVsbCE9PW4mJnQucHVzaCh7dGV4dDpyLmNvdW50ZG93bkZuTWFwW2VdKG4pLGJvbGQ6ITB9KX10aGlzLl9mdWxsVG9vbHRpcC5zZXRWYWx1ZShbe2ljb246dGhpcy5fZ2V0SWNvbihlKSxpY29uQ2xhc3NOYW1lOnRoaXMuX2dldEZ1bGxUb29sdGlwSWNvbkNsYXNzTmFtZXMoZSksdGl0bGU6dGhpcy5fZ2V0VGl0bGUoZSksdGl0bGVDb2xvcjp0aGlzLl9nZXRUaXRsZUNvbG9yKGUpLGh0bWw6dCxzaXplOnRoaXMuX3NpemUsCmFjdGlvbjp0aGlzLl9nZXRBY3Rpb24oZSl9XSl9X3Nob3VsZEJlSGlkZGVuQnlTdGF0dXMoZSl7cmV0dXJuIXRoaXMuX2lnbm9yZUhpZGVTdGF0dXNTZXR0aW5ncyYmIW8uc2hvd01hcmtldE9wZW5TdGF0dXNQcm9wZXJ0eS52YWx1ZSgpJiYibWFya2V0Ij09PWV9X3VwZGF0ZVN0YXR1cyhlKXt0aGlzLl9zdGF0dXMuc2V0VmFsdWUoZSl9X3VwZGF0ZVRvb2x0aXAoKXt0aGlzLl91cGRhdGVGdWxsVG9vbHRpcCgpfV9zaG93TWFya2V0T3BlblN0YXR1c1Byb3BlcnR5Q2hhbmdlZCgpe3RoaXMuX3VwZGF0ZUJ5U3RhdHVzKHRoaXMuX3N0YXR1cy52YWx1ZSgpKX19fSw1NjUyMDYoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7U3RhdHVzVmlld01vZGVsOigpPT5hfSk7dmFyIHM9bigyMzIzNjQpLGk9big2NDE1OTMpLG89big4NjA1NDgpO2NsYXNzIGF7Y29uc3RydWN0b3IoZSl7dGhpcy5pc0JsaW5raW5nTW9kZT1uZXcgcy5XYXRjaGVkVmFsdWUoITEpLHRoaXMuX3N0YXR1cz1uZXcgcy5XYXRjaGVkVmFsdWUobnVsbCksdGhpcy5fZnVsbFRvb2x0aXA9bmV3IHMuV2F0Y2hlZFZhbHVlKG51bGwpLHRoaXMuX2ljb25DbGFzc05hbWVzPW5ldyBzLldhdGNoZWRWYWx1ZShudWxsKSx0aGlzLl92aXNpYmxlPW5ldyBzLldhdGNoZWRWYWx1ZSghMSksdGhpcy5fZGVzdHJveWVkPSExLHRoaXMuX3Rvb2x0aXA9bmV3IHMuV2F0Y2hlZFZhbHVlKG51bGwpLHRoaXMuX2ljb249bmV3IHMuV2F0Y2hlZFZhbHVlKG51bGwpLHRoaXMuX2NsYXNzTmFtZT1uZXcgcy5XYXRjaGVkVmFsdWUobnVsbCksdGhpcy5fY3VzdG9tQ29sb3I9bmV3IHMuV2F0Y2hlZFZhbHVlKG51bGwpLHRoaXMuX2luZm9NYXBzPWUsdGhpcy5fc2l6ZT1lLnNpemV8fCJzbWFsbCIsdGhpcy5fc3RhdHVzLnN1YnNjcmliZSh0aGlzLl91cGRhdGVCeVN0YXR1cy5iaW5kKHRoaXMpLHtjYWxsV2l0aExhc3Q6ITB9KX1kZXN0cm95KCl7dGhpcy5fZGVzdHJveWVkPSEwfXR1cm5PZmZCbGlua2luZ01vZGUoKXt9c3RhdHVzKCl7cmV0dXJuIHRoaXMuX3N0YXR1c310b29sdGlwKCl7cmV0dXJuIHRoaXMuX3Rvb2x0aXB9aWNvbigpe3JldHVybiB0aGlzLl9pY29ufWNsYXNzTmFtZSgpe3JldHVybiB0aGlzLl9jbGFzc05hbWV9dmlzaWJsZSgpe3JldHVybiB0aGlzLl92aXNpYmxlfXNpemUoKXtyZXR1cm4gdGhpcy5fc2l6ZX1mdWxsSW5mbygpe3JldHVybiB0aGlzLl9mdWxsVG9vbHRpcH1jdXN0b21Db2xvcigpe3JldHVybiB0aGlzLl9jdXN0b21Db2xvcn1fZ2V0VG9vbHRpcChlKXtyZXR1cm4gdGhpcy5faW5mb01hcHMudG9vbHRpcE1hcD8uZ2V0KGUpPz9udWxsfV9nZXRJY29uKGUpe2xldCB0O2NvbnN0IG49dGhpcy5faW5mb01hcHMuaWNvbk1hcC5nZXQoZSk7cmV0dXJuIHZvaWQgMCE9PW4mJih0PW4uZ2V0KHRoaXMuX3NpemUpKSx0fHxudWxsfV9nZXRDbGFzc05hbWUoZSl7cmV0dXJuIHRoaXMuX2luZm9NYXBzLmNsYXNzTmFtZU1hcC5nZXQoZSl8fG51bGx9X2dldEZ1bGxUb29sdGlwSWNvbkNsYXNzTmFtZXMoZSl7Y29uc3QgdD10aGlzLl9nZXRDbGFzc05hbWUoZSk7cmV0dXJuIHQ/W28uc3RhdHVzSXRlbSx0XTpbXX1fZ2V0VGl0bGUoZSl7cmV0dXJuIHRoaXMuX2luZm9NYXBzLnRpdGxlTWFwPy5nZXQoZSk/P251bGx9X2dldFRpdGxlQ29sb3IoZSl7cmV0dXJuIHRoaXMuX2luZm9NYXBzLnRpdGxlQ29sb3JNYXA/LmdldChlKT8/bnVsbH1fZ2V0QWN0aW9uKGUpe3JldHVybiB0aGlzLl9pbmZvTWFwcy5hY3Rpb25NYXA/LmdldChlKT8/bnVsbH1fZ2V0U2Vjb25kYXJ5QWN0aW9uKGUpe3JldHVybiB0aGlzLl9pbmZvTWFwcy5zZWNvbmRhcnlBY3Rpb25NYXA/LmdldChlKT8/bnVsbH1fZ2V0QmFkZ2VMYWJlbChlKXtyZXR1cm4gdGhpcy5faW5mb01hcHMuYmFkZ2VNYXA/LmdldChlKT8/bnVsbH1fZ2V0SFRNTChlKXtyZXR1cm4gdGhpcy5faW5mb01hcHMuaHRtbE1hcD8uZ2V0KGUpPy5tYXAoKGU9PiJzdHJpbmciPT10eXBlb2YgZT8oMCxpLmh0bWxFc2NhcGUpKGUpOmUpKT8/W119YXN5bmMgX3VwZGF0ZUZ1bGxUb29sdGlwKCl7Y29uc3QgZT10aGlzLl9zdGF0dXMudmFsdWUoKTtudWxsIT09ZT90aGlzLl9mdWxsVG9vbHRpcC5zZXRWYWx1ZShbe2ljb246dGhpcy5fZ2V0SWNvbihlKSxpY29uQ2xhc3NOYW1lOnRoaXMuX2dldEZ1bGxUb29sdGlwSWNvbkNsYXNzTmFtZXMoZSksdGl0bGU6dGhpcy5fZ2V0VGl0bGUoZSksdGl0bGVDb2xvcjp0aGlzLl9nZXRUaXRsZUNvbG9yKGUpLGh0bWw6dGhpcy5fZ2V0SFRNTChlKSxzaXplOnRoaXMuX3NpemUsYWN0aW9uOnRoaXMuX2dldEFjdGlvbihlKSxzZWNvbmRhcnlBY3Rpb246dGhpcy5fZ2V0U2Vjb25kYXJ5QWN0aW9uKGUpLGJhZGdlTGFiZWw6dGhpcy5fZ2V0QmFkZ2VMYWJlbChlKSxkYXRhUWFJZDp0aGlzLl9kYXRhUWFJZCgpPz92b2lkIDB9XSk6dGhpcy5fZnVsbFRvb2x0aXAuc2V0VmFsdWUobnVsbCl9X2RhdGFRYUlkKCl7cmV0dXJuIG51bGx9X3VwZGF0ZUJ5U3RhdHVzKGUpe2lmKG51bGw9PT1lfHx0aGlzLl9zaG91bGRCZUhpZGRlbkJ5U3RhdHVzKGUpKXJldHVybiB0aGlzLl9pY29uLnNldFZhbHVlKG51bGwpLHRoaXMuX3Rvb2x0aXAuc2V0VmFsdWUobnVsbCksdm9pZCB0aGlzLl92aXNpYmxlLnNldFZhbHVlKCExKTt0aGlzLl9pY29uLnNldFZhbHVlKHRoaXMuX2dldEljb24oZSkpLHRoaXMuX2NsYXNzTmFtZS5zZXRWYWx1ZSh0aGlzLl9nZXRDbGFzc05hbWUoZSkpLHRoaXMuX3Rvb2x0aXAuc2V0VmFsdWUodGhpcy5fZ2V0VG9vbHRpcChlKSksdGhpcy5fdmlzaWJsZS5zZXRWYWx1ZSghMCksdGhpcy5fdXBkYXRlRnVsbFRvb2x0aXAoKX1fc2hvdWxkQmVIaWRkZW5CeVN0YXR1cyhlKXtyZXR1cm4hMX19fSw2NzMwNjUoZSl7CmUuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxOCAxOCIgd2lkdGg9IjE4IiBoZWlnaHQ9IjE4Ij48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTkgMTdBOCA4IDAgMSAwIDkgMWE4IDggMCAwIDAgMCAxNlptNC05Ljk3TDExLjkgNiA4LjMgOS44MiA2LjEgNy40NiA0Ljk5IDguNSA4LjMyIDEyIDEzIDcuMDNaIi8+PC9zdmc+J30sNDAwMDQ2KGUpe2UuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxOCAxOCIgd2lkdGg9IjE4IiBoZWlnaHQ9IjE4Ij48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTkgMTdBOCA4IDAgMSAwIDkgMWE4IDggMCAwIDAgMCAxNlpNOSA0Yy0uNzkgMC0xLjM4LjctMS4yNSAxLjQ4bC42NyA0LjAzYS41OS41OSAwIDAgMCAxLjE2IDBsLjY3LTQuMDNBMS4yNyAxLjI3IDAgMCAwIDkgNFptMCA4YTEgMSAwIDEgMCAwIDIgMSAxIDAgMCAwIDAtMloiLz48L3N2Zz4nfSw1MjcyMTkoZSl7ZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDE4IDE4IiB3aWR0aD0iMTgiIGhlaWdodD0iMTgiPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZD0iTTkgMTdBOCA4IDAgMSAwIDkgMWE4IDggMCAwIDAgMCAxNlptMS0xMmExIDEgMCAxIDEtMiAwIDEgMSAwIDAgMSAyIDBaTTguNSA5LjVIN1Y4aDN2Nkg4LjVWOS41WiIvPjwvc3ZnPid9LDc4NTk5NShlKXtlLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMTggMTgiIHdpZHRoPSIxOCIgaGVpZ2h0PSIxOCI+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik05IDE3QTggOCAwIDEgMCA5IDFhOCA4IDAgMCAwIDAgMTZabS0xLTRhMSAxIDAgMSAwIDIgMCAxIDEgMCAwIDAtMiAwWm0yLjgzLTMuNTJjLS40OS40My0uOTcuODUtMS4wNiAxLjUySDguMjZjLjA4LTEuMTguNzQtMS42OSAxLjMyLTIuMTMuNDktLjM4LjkyLS43MS45Mi0xLjM3QzEwLjUgNi42NyA5LjgyIDYgOSA2cy0xLjUuNjctMS41IDEuNVY4SDZ2LS41YTMgMyAwIDEgMSA2IDBjMCAuOTYtLjYgMS40OC0xLjE3IDEuOThaIi8+PC9zdmc+J30sODU2NzcwKGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse25hbm9pZDooKT0+c30pO2xldCBzPShlPTIxKT0+Y3J5cHRvLmdldFJhbmRvbVZhbHVlcyhuZXcgVWludDhBcnJheShlKSkucmVkdWNlKCgoZSx0KT0+ZSs9KHQmPTYzKTwzNj90LnRvU3RyaW5nKDM2KTp0PDYyPyh0LTI2KS50b1N0cmluZygzNikudG9VcHBlckNhc2UoKTp0PjYyPyItIjoiXyIpLCIiKX19XSk7"}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/23254.3043f6ff1396f5065c2a.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:13.993Z","timestamp":1785148033993,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/23254.3043f6ff1396f5065c2a.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:13 GMT\r\ncontent-type: text/css; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a435fcb-1ad\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Tue, 30 Jun 2026 06:18:51 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.57\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 06/30/2026 11:55:10\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 31e8018a5e37947e4f1d1e3fddf14a64\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":429,"size_decoded":994,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with very long lines (429), with no line terminators","md5":"27d579b35c62ffe990fa3b3e58719791","sha1":"9e2ad92e195c20fd9832696d5dc46e995683380c","sha256":"c9e28194d44ef9378cd88ba949c9c8a339180667df4f4ec154731a7cd0d26031","sha512":"dcb22c5861af670a1b2f04c4ab8d0a11b00575c651a54472e8b1d0f0b0e73fb03cf6fa75541b6e524286fa5b13ee34cb6bb46f4cf5b5845444e1af4cab83be91","ssdeep":"","tlshash":"bee082021643901ef14f014895563ed8b20d44c3aa7b5ececa716149da7414c0a30af8","first_seen":"2026-06-30T21:57:43.455853Z","last_seen":"2026-07-27T12:48:39.801557Z","times_seen":222,"resource_available":false,"data":"LmhpZGRlbi1SM1dpQ09kbntvcGFjaXR5OjB9Lml0ZW0tSmtRWFVsdEF7cG9zaXRpb246cmVsYXRpdmV9Lml0ZW0tSmtRWFVsdEEud2l0aEljb24tSmtRWFVsdEF7cGFkZGluZy1ib3R0b206MnB4O3BhZGRpbmctdG9wOjJweH1AbWVkaWEgKG1heC13aWR0aDo0NDBweCl7Lml0ZW0tSmtRWFVsdEEud2l0aEljb24tSmtRWFVsdEF7Zm9udC1zaXplOjE2cHg7cGFkZGluZy1ib3R0b206NnB4O3BhZGRpbmctdG9wOjZweH19LnNob3J0Y3V0LUprUVhVbHRBe21hcmdpbi1pbmxpbmUtZW5kOjA7bWluLXdpZHRoOmF1dG99QG1lZGlhIChtYXgtd2lkdGg6NDc5cHgpey5zaG9ydGN1dC1Ka1FYVWx0QXtkaXNwbGF5Om5vbmV9fS5sb2FkaW5nLUprUVhVbHRBIC5pY29uLUprUVhVbHRBLC5sb2FkaW5nLUprUVhVbHRBIC5zaG9ydGN1dC1Ka1FYVWx0QXtvcGFjaXR5OjB9"}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/8216.d7f21fe2489ddfcbc418.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.552Z","timestamp":1785148034552,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/8216.d7f21fe2489ddfcbc418.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\ncontent-type: text/css; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a6328d1-2e2e\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Fri, 24 Jul 2026 08:56:49 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/24/2026 10:31:24\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 752f00e04abbd7a7e88ec3d33a85bbe7\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":11822,"size_decoded":2763,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with very long lines (11822), with no line terminators","md5":"1fdeb41f768794038a28c7628ca90e9f","sha1":"36599ccd34abd18e9f19824d9d72b2bbfc753697","sha256":"9b8360f9b29d78c9e01119d5d5fe05911ec10b1555c2ffb67f6f0cbca63ef8ff","sha512":"22c6a794b0c0d7a958e7b6241c53f9627cf1932e72e4dcd2d2df02fb33c6b41cdc44feb0a657b50b274dbf19a3b6846bcbcc71c044c955f54aa02bbbbeac3f13","ssdeep":"192:qHyIJSg54lB+dOHyIJSg54lB+dM3JcULKVXg+eDzogMWtR:qHegKXHegKjZ+6zJtR","tlshash":"c832b0b5e2c168a62a1f54bf03bfd35ad218f7437b6443a57e52980ef1c6be0658f102","first_seen":"2026-07-24T15:28:44.966723Z","last_seen":"2026-07-27T12:48:39.712697Z","times_seen":49,"resource_available":false,"data":"W2RhdGEtdGhlbWU9bGlnaHRdey0tXzAtNXlBSTp2YXIoLS1jb2xvci1jb2xkLWdyYXktMTAwKTstLV8xLTV5QUk6dmFyKC0tY29sb3ItY29sZC1ncmF5LTE1MCk7LS1fMi01eUFJOnZhcigtLWNvbG9yLXdoaXRlKTstLV8zLTV5QUk6dmFyKC0tY29sb3ItY29sZC1ncmF5LTkwMCk7LS1fNC01eUFJOnZhcigtLWNvbG9yLXdoaXRlKTstLV81LTV5QUk6dmFyKC0tY29sb3ItcmlwZS1yZWQtYTIwMCk7LS1fNi01eUFJOnZhcigtLWNvbG9yLXJpcGUtcmVkLTUwMCk7LS1fNy01eUFJOnZhcigtLWNvbG9yLXR2LWJsdWUtYTQwMCk7LS1fOC01eUFJOnZhcigtLWNvbG9yLXR2LWJsdWUtOTAwKTstLV85LTV5QUk6dmFyKC0tY29sb3ItaWd1YW5hLWdyZWVuLTMwMCk7LS1fMTAtNXlBSTp2YXIoLS1jb2xvci1pZ3VhbmEtZ3JlZW4tNjAwKTstLV8xMS01eUFJOnZhcigtLWNvbG9yLWJhbmFuYS15ZWxsb3ctNzAwKTstLV8xMi01eUFJOnZhcigtLWNvbG9yLWJhbmFuYS15ZWxsb3ctOTAwKTstLV8xMy01eUFJOnZhcigtLWNvbG9yLWdyYXBlcy1wdXJwbGUtMzAwKTstLV8xNC01eUFJOnZhcigtLWNvbG9yLWdyYXBlcy1wdXJwbGUtNzAwKTstLV8xNS01eUFJOnZhcigtLWNvbG9yLXNreS1ibHVlLWE0MDApOy0tXzE2LTV5QUk6dmFyKC0tY29sb3Itc2t5LWJsdWUtYTcwMCk7LS1fMTctNXlBSTp2YXIoLS1jb2xvci1iZXJyeS1waW5rLTIwMCk7LS1fMTgtNXlBSTp2YXIoLS1jb2xvci1iZXJyeS1waW5rLTQwMCk7LS1fMTktNXlBSTp2YXIoLS1jb2xvci1yaXBlLXJlZC1hMjAwKTstLV8yMC01eUFJOnZhcigtLWNvbG9yLXJpcGUtcmVkLTUwMCk7LS1fMjEtNXlBSTp2YXIoLS1jb2xvci10di1ibHVlLWE0MDApOy0tXzIyLTV5QUk6dmFyKC0tY29sb3ItdHYtYmx1ZS05MDApOy0tXzIzLTV5QUk6dmFyKC0tY29sb3ItaWd1YW5hLWdyZWVuLTMwMCk7LS1fMjQtNXlBSTp2YXIoLS1jb2xvci1pZ3VhbmEtZ3JlZW4tNjAwKTstLV8yNS01eUFJOnZhcigtLWNvbG9yLWJhbmFuYS15ZWxsb3ctNzAwKTstLV8yNi01eUFJOnZhcigtLWNvbG9yLWJhbmFuYS15ZWxsb3ctOTAwKTstLV8yNy01eUFJOnZhcigtLWNvbG9yLWdyYXBlcy1wdXJwbGUtMzAwKTstLV8yOC01eUFJOnZhcigtLWNvbG9yLWdyYXBlcy1wdXJwbGUtNzAwKTstLV8yOS01eUFJOnZhcigtLWNvbG9yLXNreS1ibHVlLWE0MDApOy0tXzMwLTV5QUk6dmFyKC0tY29sb3Itc2t5LWJsdWUtYTcwMCk7LS1fMzEtNXlBSTp2YXIoLS1jb2xvci1iZXJyeS1waW5rLTIwMCk7LS1fMzItNXlBSTp2YXIoLS1jb2xvci1iZXJyeS1waW5rLTQwMCk7LS1fMzMtNXlBSTp2YXIoLS1jb2xvci1yaXBlLXJlZC1hMjAwKTstLV8zNC01eUFJOnZhcigtLWNvbG9yLXR2LWJsdWUtYTQwMCk7LS1fMzUtNXlBSTp2YXIoLS1jb2xvci1pZ3VhbmEtZ3JlZW4tMzAwKTstLV8zNi01eUFJOnZhcigtLWNvbG9yLWJhbmFuYS15ZWxsb3ctNzAwKTstLV8zNy01eUFJOnZhcigtLWNvbG9yLWdyYXBlcy1wdXJwbGUtMzAwKTstLV8zOC01eUFJOnZhcigtLWNvbG9yLXNreS1ibHVlLWE0MDApOy0tXzM5LTV5QUk6dmFyKC0tY29sb3ItYmVycnktcGluay0yMDApfVtkYXRhLXRoZW1lPWRhcmtdey0tXzAtNXlBSTp2YXIoLS1jb2xvci1jb2xkLWdyYXktODAwKTstLV8xLTV5QUk6dmFyKC0tY29sb3ItY29sZC1ncmF5LTc1MCk7LS1fMi01eUFJOnZhcigtLWNvbG9yLXdoaXRlKTstLV8zLTV5QUk6dmFyKC0tY29sb3Itd2hpdGUpOy0tXzQtNXlBSTp2YXIoLS1jb2xvci1jb2xkLWdyYXktOTAwKTstLV81LTV5QUk6dmFyKC0tY29sb3ItcmlwZS1yZWQtYTIwMCk7LS1fNi01eUFJOnZhcigtLWNvbG9yLXJpcGUtcmVkLTUwMCk7LS1fNy01eUFJOnZhcigtLWNvbG9yLXR2LWJsdWUtYTQwMCk7LS1fOC01eUFJOnZhcigtLWNvbG9yLXR2LWJsdWUtOTAwKTstLV85LTV5QUk6dmFyKC0tY29sb3ItaWd1YW5hLWdyZWVuLTMwMCk7LS1fMTAtNXlBSTp2YXIoLS1jb2xvci1pZ3VhbmEtZ3JlZW4tNjAwKTstLV8xMS01eUFJOnZhcigtLWNvbG9yLWJhbmFuYS15ZWxsb3ctNzAwKTstLV8xMi01eUFJOnZhcigtLWNvbG9yLWJhbmFuYS15ZWxsb3ctOTAwKTstLV8xMy01eUFJOnZhcigtLWNvbG9yLWdyYXBlcy1wdXJwbGUtMzAwKTstLV8xNC01eUFJOnZhcigtLWNvbG9yLWdyYXBlcy1wdXJwbGUtNzAwKTstLV8xNS01eUFJOnZhcigtLWNvbG9yLXNreS1ibHVlLWE0MDApOy0tXzE2LTV5QUk6dmFyKC0tY29sb3Itc2t5LWJsdWUtYTcwMCk7LS1fMTctNXlBSTp2YXIoLS1jb2xvci1iZXJyeS1waW5rLTIwMCk7LS1fMTgtNXlBSTp2YXIoLS1jb2xvci1iZXJyeS1waW5rLTQwMCk7LS1fMTktNXlBSTp2YXIoLS1jb2xvci1yaXBlLXJlZC1hMjAwKTstLV8yMC01eUFJOnZhcigtLWNvbG9yLXJpcGUtcmVkLTUwMCk7LS1fMjEtNXlBSTp2YXIoLS1jb2xvci10di1ibHVlLWE0MDApOy0tXzIyLTV5QUk6dmFyKC0tY29sb3ItdHYtYmx1ZS05MDApOy0tXzIzLTV5QUk6dmFyKC0tY29sb3ItaWd1YW5hLWdyZWVuLTMwMCk7LS1fMjQtNXlBSTp2YXIoLS1jb2xvci1pZ3VhbmEtZ3JlZW4tNjAwKTstLV8yNS01eUFJOnZhcigtLWNvbG9yLWJhbmFuYS15ZWxsb3ctNzAwKTstLV8yNi01eUFJOnZhcigtLWNvbG9yLWJhbmFuYS15ZWxsb3ctOTAwKTstLV8yNy01eUFJOnZhcigtLWNvbG9yLWdyYXBlcy1wdXJwbGUtMzAwKTstLV8yOC01eUFJOnZhcigtLWNvbG9yLWdyYXBlcy1wdXJwbGUtNzAwKTstLV8yOS01eUFJOnZhcigtLWNvbG9yLXNreS1ibHVlLWE0MDApOy0tXzMwLTV5QUk6dmFyKC0tY29sb3Itc2t5LWJsdWUtYTcwMCk7LS1fMzEtNXlBSTp2YXIoLS1jb2xvci1iZXJyeS1waW5rLTIwMCk7LS1fMzItNXlBSTp2YXIoLS1jb2xvci1iZXJyeS1waW5rLTQwMCk7LS1fMzMtNXlBSTp2YXIoLS1jb2xvci1yaXBlLXJlZC1hMjAwKTstLV8zNC01eUFJOnZhcigtLWNvbG9yLXR2LWJsdWUtYTQwMCk7LS1fMzUtNXlBSTp2YXIoLS1jb2xvci1pZ3VhbmEtZ3JlZW4tMzAwKTstLV8zNi01eUFJOnZhcigtLWNvbG9yLWJhbmFuYS15ZWxsb3ctNzAwKTstLV8zNy01eUFJOnZhcigtLWNvbG9yLWdyYXBlcy1wdXJwbGUtMzAwKTstLV8zOC01eUFJOnZhcigtLWNvbG9yLXNreS1ibHVlLWE0MDApOy0tXzM5LTV5QUk6dmFyKC0tY29sb3ItYmVycnktcGluay0yMDApfS5idWJibGUtQVU5aE93RXN7YWxpZ24taXRlbXM6Y2VudGVyO2JvcmRlci1zdHlsZTpzb2xpZDtib3JkZXItd2lkdGg6MXB4O2JveC1zaXppbmc6Ym9yZGVyLWJveDtkaXNwbGF5OmlubGluZS1mbGV4O2ZsZXg6bm9uZTttYXgtd2lkdGg6MTAwJTtvdXRsaW5lOm5vbmU7b3ZlcmZsb3c6dmlzaWJsZTtwb3NpdGlvbjpyZWxhdGl2ZX0uYnViYmxlLUFVOWhPd0VzOmZvY3Vze291dGxpbmU6bm9uZX0uYnViYmxlLUFVOWhPd0VzOmZvY3VzLXZpc2libGV7b3V0bGluZTpub25lfS5idWJibGUtQVU5aE93RXM6YWZ0ZXJ7Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci13aWR0aDoycHg7Ym94LXNpemluZzpib3JkZXItYm94O2NvbnRlbnQ6IiI7ZGlzcGxheTpub25lO2hlaWdodDpjYWxjKDEwMCUgKyAxMHB4KTtpbnNldC1pbmxpbmUtc3RhcnQ6LTVweDtwb2ludGVyLWV2ZW50czpub25lO3Bvc2l0aW9uOmFic29sdXRlO3RvcDotNXB4O3dpZHRoOmNhbGMoMTAwJSArIDEwcHgpO3otaW5kZXg6MX0uYnViYmxlLUFVOWhPd0VzOmZvY3VzOmFmdGVye2Rpc3BsYXk6YmxvY2t9LmJ1YmJsZS1BVTloT3dFczpmb2N1cy12aXNpYmxlOmFmdGVye2Rpc3BsYXk6YmxvY2t9LmJ1YmJsZS1BVTloT3dFczpmb2N1czpub3QoOmZvY3VzLXZpc2libGUpOmFmdGVye2Rpc3BsYXk6bm9uZX0uYnViYmxlLUFVOWhPd0VzOmFmdGVye2JvcmRlci1jb2xvcjp2YXIoLS1jb2xvci1mb2N1cy1vdXRsaW5lLWNvbG9yLWJsdWUpfS5idWJibGUtQVU5aE93RXMuYW5pbWF0ZWQtQVU5aE93RXM6YWZ0ZXJ7ZGlzcGxheTpibG9jaztvcGFjaXR5OjA7dHJhbnNpdGlvbjpvcGFjaXR5IC4ycyBlYXNlLWluLW91dCx2aXNpYmlsaXR5IDBzIGVhc2UtaW4tb3V0IC4yczt2aXNpYmlsaXR5OmhpZGRlbn0uYnViYmxlLUFVOWhPd0VzLmFuaW1hdGVkLUFVOWhPd0VzOmZvY3VzOmFmdGVye29wYWNpdHk6MTt0cmFuc2l0aW9uOm9wYWNpdHkgLjJzIGVhc2UtaW4tb3V0O3Zpc2liaWxpdHk6dmlzaWJsZX0uYnViYmxlLUFVOWhPd0VzLmFuaW1hdGVkLUFVOWhPd0VzOmZvY3VzLXZpc2libGU6YWZ0ZXJ7b3BhY2l0eToxO3RyYW5zaXRpb246b3BhY2l0eSAuMnMgZWFzZS1pbi1vdXQ7dmlzaWJpbGl0eTp2aXNpYmxlfS5idWJibGUtQVU5aE93RXMuYW5pbWF0ZWQtQVU5aE93RXM6Zm9jdXM6bm90KDpmb2N1cy12aXNpYmxlKTphZnRlcntvcGFjaXR5OjA7dHJhbnNpdGlvbjpvcGFjaXR5IC4ycyBlYXNlLWluLW91dCx2aXNpYmlsaXR5IDBzIGVhc2UtaW4tb3V0IC4yczt2aXNpYmlsaXR5OmhpZGRlbn0uYnViYmxlLUFVOWhPd0VzIC5jb250ZW50LUFVOWhPd0Vze292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3doaXRlLXNwYWNlOm5vd3JhcH0uYnViYmxlLUFVOWhPd0VzLmFwcGVhcmFuY2UtZGVmYXVsdC1BVTloT3dFc3tiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLV8wLTV5QUkpO2JvcmRlci1jb2xvcjp2YXIoLS1fMC01eUFJKTtjb2xvcjp2YXIoLS1jb2xvci10ZXh0LXByaW1hcnkpfUBtZWRpYSAoYW55LWhvdmVyOmhvdmVyKXsuYnViYmxlLUFVOWhPd0VzLmFwcGVhcmFuY2UtZGVmYXVsdC1BVTloT3dFczpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLV8xLTV5QUkpO2JvcmRlci1jb2xvcjp2YXIoLS1fMS01eUFJKX19LmJ1YmJsZS1BVTloT3dFcy5hcHBlYXJhbmNlLWRlZmF1bHQtQVU5aE93RXMuYWN0aXZlLUFVOWhPd0Vze2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItYnJhbmQpO2JvcmRlci1jb2xvcjp2YXIoLS1jb2xvci1icmFuZCk7Y29sb3I6dmFyKC0tXzItNXlBSSl9LmJ1YmJsZS1BVTloT3dFcy5hcHBlYXJhbmNlLWRlZmF1bHQtQVU5aE93RXMuYWN0aXZlLUFVOWhPd0VzLmdyYXktQVU5aE93RXN7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1fMy01eUFJKTtib3JkZXItY29sb3I6dmFyKC0tXzMtNXlBSSk7Y29sb3I6dmFyKC0tXzQtNXlBSSl9LmJ1YmJsZS1BVTloT3dFcy5hcHBlYXJhbmNlLWRlZmF1bHQtQVU5aE93RXMuYWN0aXZlLUFVOWhPd0VzLnJlZC1BVTloT3dFc3tiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLV8zMy01eUFJKX1AbWVkaWEgKGFueS1ob3Zlcjpob3Zlcil7LmJ1YmJsZS1BVTloT3dFcy5hcHBlYXJhbmNlLWRlZmF1bHQtQVU5aE93RXMuYWN0aXZlLUFVOWhPd0VzLnJlZC1BVTloT3dFczpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLV8yMC01eUFJKX19LmJ1YmJsZS1BVTloT3dFcy5hcHBlYXJhbmNlLWRlZmF1bHQtQVU5aE93RXMuYWN0aXZlLUFVOWhPd0VzLmJsdWUtQVU5aE93RXN7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1fMzQtNXlBSSl9QG1lZGlhIChhbnktaG92ZXI6aG92ZXIpey5idWJibGUtQVU5aE93RXMuYXBwZWFyYW5jZS1kZWZhdWx0LUFVOWhPd0VzLmFjdGl2ZS1BVTloT3dFcy5ibHVlLUFVOWhPd0VzOmhvdmVye2JhY2tncm91bmQtY29sb3I6dmFyKC0tXzIyLTV5QUkpfX0uYnViYmxlLUFVOWhPd0VzLmFwcGVhcmFuY2UtZGVmYXVsdC1BVTloT3dFcy5hY3RpdmUtQVU5aE93RXMuZ3JlZW4tQVU5aE93RXN7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1fMzUtNXlBSSl9QG1lZGlhIChhbnktaG92ZXI6aG92ZXIpey5idWJibGUtQVU5aE93RXMuYXBwZWFyYW5jZS1kZWZhdWx0LUFVOWhPd0VzLmFjdGl2ZS1BVTloT3dFcy5ncmVlbi1BVTloT3dFczpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLV8yNC01eUFJKX19LmJ1YmJsZS1BVTloT3dFcy5hcHBlYXJhbmNlLWRlZmF1bHQtQVU5aE93RXMuYWN0aXZlLUFVOWhPd0VzLm9yYW5nZS1BVTloT3dFc3tiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLV8zNi01eUFJKX1AbWVkaWEgKGFueS1ob3Zlcjpob3Zlcil7LmJ1YmJsZS1BVTloT3dFcy5hcHBlYXJhbmNlLWRlZmF1bHQtQVU5aE93RXMuYWN0aXZlLUFVOWhPd0VzLm9yYW5nZS1BVTloT3dFczpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLV8yNi01eUFJKX19LmJ1YmJsZS1BVTloT3dFcy5hcHBlYXJhbmNlLWRlZmF1bHQtQVU5aE93RXMuYWN0aXZlLUFVOWhPd0VzLnB1cnBsZS1BVTloT3dFc3tiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLV8zNy01eUFJKX1AbWVkaWEgKGFueS1ob3Zlcjpob3Zlcil7LmJ1YmJsZS1BVTloT3dFcy5hcHBlYXJhbmNlLWRlZmF1bHQtQVU5aE93RXMuYWN0aXZlLUFVOWhPd0VzLnB1cnBsZS1BVTloT3dFczpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLV8yOC01eUFJKX19LmJ1YmJsZS1BVTloT3dFcy5hcHBlYXJhbmNlLWRlZmF1bHQtQVU5aE93RXMuYWN0aXZlLUFVOWhPd0VzLmN5YW4tQVU5aE93RXN7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1fMzgtNXlBSSl9QG1lZGlhIChhbnktaG92ZXI6aG92ZXIpey5idWJibGUtQVU5aE93RXMuYXBwZWFyYW5jZS1kZWZhdWx0LUFVOWhPd0VzLmFjdGl2ZS1BVTloT3dFcy5jeWFuLUFVOWhPd0VzOmhvdmVye2JhY2tncm91bmQtY29sb3I6dmFyKC0tXzMwLTV5QUkpfX0uYnViYmxlLUFVOWhPd0VzLmFwcGVhcmFuY2UtZGVmYXVsdC1BVTloT3dFcy5hY3RpdmUtQVU5aE93RXMucGluay1BVTloT3dFc3tiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLV8zOS01eUFJKX1AbWVkaWEgKGFueS1ob3Zlcjpob3Zlcil7LmJ1YmJsZS1BVTloT3dFcy5hcHBlYXJhbmNlLWRlZmF1bHQtQVU5aE93RXMuYWN0aXZlLUFVOWhPd0VzLnBpbmstQVU5aE93RXM6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1fMzItNXlBSSl9fS5idWJibGUtQVU5aE93RXMuYXBwZWFyYW5jZS1kZWZhdWx0LUFVOWhPd0VzLmFjdGl2ZS1BVTloT3dFcy5yZWQtQVU5aE93RXN7Ym9yZGVyLWNvbG9yOnZhcigtLV8zMy01eUFJKX1AbWVkaWEgKGFueS1ob3Zlcjpob3Zlcil7LmJ1YmJsZS1BVTloT3dFcy5hcHBlYXJhbmNlLWRlZmF1bHQtQVU5aE93RXMuYWN0aXZlLUFVOWhPd0VzLnJlZC1BVTloT3dFczpob3Zlcntib3JkZXItY29sb3I6dmFyKC0tXzIwLTV5QUkpfX0uYnViYmxlLUFVOWhPd0VzLmFwcGVhcmFuY2UtZGVmYXVsdC1BVTloT3dFcy5hY3RpdmUtQVU5aE93RXMuYmx1ZS1BVTloT3dFc3tib3JkZXItY29sb3I6dmFyKC0tXzM0LTV5QUkpfUBtZWRpYSAoYW55LWhvdmVyOmhvdmVyKXsuYnViYmxlLUFVOWhPd0VzLmFwcGVhcmFuY2UtZGVmYXVsdC1BVTloT3dFcy5hY3RpdmUtQVU5aE93RXMuYmx1ZS1BVTloT3dFczpob3Zlcntib3JkZXItY29sb3I6dmFyKC0tXzIyLTV5QUkpfX0uYnViYmxlLUFVOWhPd0VzLmFwcGVhcmFuY2UtZGVmYXVsdC1BVTloT3dFcy5hY3RpdmUtQVU5aE93RXMuZ3JlZW4tQVU5aE93RXN7Ym9yZGVyLWNvbG9yOnZhcigtLV8zNS01eUFJKX1AbWVkaWEgKGFueS1ob3Zlcjpob3Zlcil7LmJ1YmJsZS1BVTloT3dFcy5hcHBlYXJhbmNlLWRlZmF1bHQtQVU5aE93RXMuYWN0aXZlLUFVOWhPd0VzLmdyZWVuLUFVOWhPd0VzOmhvdmVye2JvcmRlci1jb2xvcjp2YXIoLS1fMjQtNXlBSSl9fS5idWJibGUtQVU5aE93RXMuYXBwZWFyYW5jZS1kZWZhdWx0LUFVOWhPd0VzLmFjdGl2ZS1BVTloT3dFcy5vcmFuZ2UtQVU5aE93RXN7Ym9yZGVyLWNvbG9yOnZhcigtLV8zNi01eUFJKX1AbWVkaWEgKGFueS1ob3Zlcjpob3Zlcil7LmJ1YmJsZS1BVTloT3dFcy5hcHBlYXJhbmNlLWRlZmF1bHQtQVU5aE93RXMuYWN0aXZlLUFVOWhPd0VzLm9yYW5nZS1BVTloT3dFczpob3Zlcntib3JkZXItY29sb3I6dmFyKC0tXzI2LTV5QUkpfX0uYnViYmxlLUFVOWhPd0VzLmFwcGVhcmFuY2UtZGVmYXVsdC1BVTloT3dFcy5hY3RpdmUtQVU5aE93RXMucHVycGxlLUFVOWhPd0Vze2JvcmRlci1jb2xvcjp2YXIoLS1fMzctNXlBSSl9QG1lZGlhIChhbnktaG92ZXI6aG92ZXIpey5idWJibGUtQVU5aE93RXMuYXBwZWFyYW5jZS1kZWZhdWx0LUFVOWhPd0VzLmFjdGl2ZS1BVTloT3dFcy5wdXJwbGUtQVU5aE93RXM6aG92ZXJ7Ym9yZGVyLWNvbG9yOnZhcigtLV8yOC01eUFJKX19LmJ1YmJsZS1BVTloT3dFcy5hcHBlYXJhbmNlLWRlZmF1bHQtQVU5aE93RXMuYWN0aXZlLUFVOWhPd0VzLmN5YW4tQVU5aE93RXN7Ym9yZGVyLWNvbG9yOnZhcigtLV8zOC01eUFJKX1AbWVkaWEgKGFueS1ob3Zlcjpob3Zlcil7LmJ1YmJsZS1BVTloT3dFcy5hcHBlYXJhbmNlLWRlZmF1bHQtQVU5aE93RXMuYWN0aXZlLUFVOWhPd0VzLmN5YW4tQVU5aE93RXM6aG92ZXJ7Ym9yZGVyLWNvbG9yOnZhcigtLV8zMC01eUFJKX19LmJ1YmJsZS1BVTloT3dFcy5hcHBlYXJhbmNlLWRlZmF1bHQtQVU5aE93RXMuYWN0aXZlLUFVOWhPd0VzLnBpbmstQVU5aE93RXN7Ym9yZGVyLWNvbG9yOnZhcigtLV8zOS01eUFJKX1AbWVkaWEgKGFueS1ob3Zlcjpob3Zlcil7LmJ1YmJsZS1BVTloT3dFcy5hcHBlYXJhbmNlLWRlZmF1bHQtQVU5aE93RXMuYWN0aXZlLUFVOWhPd0VzLnBpbmstQVU5aE93RXM6aG92ZXJ7Ym9yZGVyLWNvbG9yOnZhcigtLV8zMi01eUFJKX19LmJ1YmJsZS1BVTloT3dFcy5hcHBlYXJhbmNlLWRlZmF1bHQtQVU5aE93RXMuYWN0aXZlLUFVOWhPd0VzLnJlZC1BVTloT3dFczphZnRlcntib3JkZXItY29sb3I6dmFyKC0tXzMzLTV5QUkpfS5idWJibGUtQVU5aE93RXMuYXBwZWFyYW5jZS1kZWZhdWx0LUFVOWhPd0VzLmFjdGl2ZS1BVTloT3dFcy5ibHVlLUFVOWhPd0VzOmFmdGVye2JvcmRlci1jb2xvcjp2YXIoLS1fMzQtNXlBSSl9LmJ1YmJsZS1BVTloT3dFcy5hcHBlYXJhbmNlLWRlZmF1bHQtQVU5aE93RXMuYWN0aXZlLUFVOWhPd0VzLmdyZWVuLUFVOWhPd0VzOmFmdGVye2JvcmRlci1jb2xvcjp2YXIoLS1fMzUtNXlBSSl9LmJ1YmJsZS1BVTloT3dFcy5hcHBlYXJhbmNlLWRlZmF1bHQtQVU5aE93RXMuYWN0aXZlLUFVOWhPd0VzLm9yYW5nZS1BVTloT3dFczphZnRlcntib3JkZXItY29sb3I6dmFyKC0tXzM2LTV5QUkpfS5idWJibGUtQVU5aE93RXMuYXBwZWFyYW5jZS1kZWZhdWx0LUFVOWhPd0VzLmFjdGl2ZS1BVTloT3dFcy5wdXJwbGUtQVU5aE93RXM6YWZ0ZXJ7Ym9yZGVyLWNvbG9yOnZhcigtLV8zNy01eUFJKX0uYnViYmxlLUFVOWhPd0VzLmFwcGVhcmFuY2UtZGVmYXVsdC1BVTloT3dFcy5hY3RpdmUtQVU5aE93RXMuY3lhbi1BVTloT3dFczphZnRlcntib3JkZXItY29sb3I6dmFyKC0tXzM4LTV5QUkpfS5idWJibGUtQVU5aE93RXMuYXBwZWFyYW5jZS1kZWZhdWx0LUFVOWhPd0VzLmFjdGl2ZS1BVTloT3dFcy5waW5rLUFVOWhPd0VzOmFmdGVye2JvcmRlci1jb2xvcjp2YXIoLS1fMzktNXlBSSl9LmJ1YmJsZS1BVTloT3dFcy5hcHBlYXJhbmNlLXRleHQtQVU5aE93RXN7YmFja2dyb3VuZC1jb2xvcjppbml0aWFsO2JvcmRlci1jb2xvcjojMDAwMDtjb2xvcjp2YXIoLS1jb2xvci10ZXh0LXNlY29uZGFyeSl9QG1lZGlhIChhbnktaG92ZXI6aG92ZXIpey5idWJibGUtQVU5aE93RXMuYXBwZWFyYW5jZS10ZXh0LUFVOWhPd0VzOmhvdmVye2JvcmRlci1jb2xvcjp2YXIoLS1jb2xvci10ZXh0LXNlY29uZGFyeSl9fS5idWJibGUtQVU5aE93RXMuYXBwZWFyYW5jZS10ZXh0LUFVOWhPd0VzLmFjdGl2ZS1BVTloT3dFc3tib3JkZXItY29sb3I6dmFyKC0tY29sb3ItYnJhbmQpO2NvbG9yOnZhcigtLWNvbG9yLWJyYW5kKX0uYnViYmxlLUFVOWhPd0VzLmZvbnRTaXplLXMtQVU5aE93RXN7LS11aS1saWItdHlwb2dyYXBoeS1saW5lLWhlaWdodDoyMXB4Oy0tdWktbGliLXR5cG9ncmFwaHktZm9udC1zaXplOjE0cHh9LmJ1YmJsZS1BVTloT3dFcy5mb250U2l6ZS1tLUFVOWhPd0VzLC5idWJibGUtQVU5aE93RXMuZm9udFNpemUtcy1BVTloT3dFc3tmb250LXNpemU6dmFyKC0tdWktbGliLXR5cG9ncmFwaHktZm9udC1zaXplKTtmb250LXN0eWxlOm5vcm1hbDtmb250LXdlaWdodDo0MDA7bGluZS1oZWlnaHQ6dmFyKC0tdWktbGliLXR5cG9ncmFwaHktbGluZS1oZWlnaHQpfS5idWJibGUtQVU5aE93RXMuZm9udFNpemUtbS1BVTloT3dFc3stLXVpLWxpYi10eXBvZ3JhcGh5LWxpbmUtaGVpZ2h0OjI0cHg7LS11aS1saWItdHlwb2dyYXBoeS1mb250LXNpemU6MTZweH0uYnViYmxlLUFVOWhPd0VzLnNpemUtbS1BVTloT3dFc3tib3JkZXItcmFkaXVzOjE0cHg7aGVpZ2h0OjI4cHg7cGFkZGluZzowIDExcHh9LmJ1YmJsZS1BVTloT3dFcy5zaXplLW0tQVU5aE93RXM6YWZ0ZXJ7Ym9yZGVyLXJhZGl1czoxOHB4fS5idWJibGUtQVU5aE93RXMuc2l6ZS1sLUFVOWhPd0Vze2JvcmRlci1yYWRpdXM6MjRweDtoZWlnaHQ6NDhweDtwYWRkaW5nOjAgMjNweH0uYnViYmxlLUFVOWhPd0VzLnNpemUtbC1BVTloT3dFczphZnRlcntib3JkZXItcmFkaXVzOjI4cHh9LmJ1YmJsZXMtZFJBc1hWdmF7ZGlzcGxheTpmbGV4O2ZsZXg6MCAwIGF1dG87b3ZlcmZsb3cteDphdXRvO292ZXJmbG93LXk6aGlkZGVuO3BhZGRpbmctYmxvY2s6NHB4IDEycHg7cGFkZGluZy1pbmxpbmU6MjBweCAyMHB4Oy13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOnRvdWNofUBzdXBwb3J0cyAoLW1vei1hcHBlYXJhbmNlOm5vbmUpey5idWJibGVzLWRSQXNYVnZhe3Njcm9sbGJhci13aWR0aDpub25lfX0uYnViYmxlcy1kUkFzWFZ2YS5zYi1zY3JvbGxiYXItd3JhcHtkaXNwbGF5Om5vbmV9LmJ1YmJsZXMtZFJBc1hWdmE6Oi13ZWJraXQtc2Nyb2xsYmFye2Rpc3BsYXk6bm9uZTtoZWlnaHQ6MDt3aWR0aDowfS5idWJibGVzLWRSQXNYVnZhOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiwuYnViYmxlcy1kUkFzWFZ2YTo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2t7ZGlzcGxheTpub25lfS5idWJibGVzLWRSQXNYVnZhOjotd2Via2l0LXNjcm9sbGJhci1jb3JuZXJ7ZGlzcGxheTpub25lfS5idWJibGVzLWRSQXNYVnZhLm11bHRpTGluZS1kUkFzWFZ2YXtmbGV4LWZsb3c6d3JhcH0uYnViYmxlcy1kUkFzWFZ2YSAuYnViYmxlLWRSQXNYVnZhe2N1cnNvcjpkZWZhdWx0O21hcmdpbi1ibG9jazo4cHggMDttYXJnaW4taW5saW5lOjAgOHB4fS5idWJibGVzLWRSQXNYVnZhIC5idWJibGUtZFJBc1hWdmE6bGFzdC1jaGlsZHttYXJnaW4taW5saW5lLWVuZDowfS5idWJibGVzLWRSQXNYVnZhOmFmdGVye2NvbnRlbnQ6IiI7ZGlzcGxheTpmbGV4O2ZsZXg6MCAwIGF1dG87d2lkdGg6MjBweH0uaWNvbldyYXAtR2N6cTNhTFl7ZGlzcGxheTpmbGV4fS5zZldhcm5pbmdJY29uLUdjenEzYUxZe2FsaWduLWl0ZW1zOmNlbnRlcjtjb2xvcjp2YXIoLS1jb2xvci1yaXBlLXJlZC01MDApO2Rpc3BsYXk6ZmxleDttYXJnaW4taW5saW5lLXN0YXJ0OjRweH0uY29udGFpbmVyLVpVVzZicFIwe2NvbG9yOnZhcigtLWNvbG9yLWRlZmF1bHQtZ3JheSk7Zm9udC1zaXplOjExcHg7bGluZS1oZWlnaHQ6MzBweDtvdmVyZmxvdzpoaWRkZW47cGFkZGluZy1ibG9jazo2cHggMDtwYWRkaW5nLWlubGluZToyMHB4IDM4cHg7dGV4dC1vdmVyZmxvdzplbGxpcHNpczt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7d2hpdGUtc3BhY2U6bm93cmFwfS5zeW1ib2xMaXN0LVJveWpBbVI0e21heC13aWR0aDoxODBweH0uZGlhbG9nLWlpcWhEY2Nze3dpZHRoOjEwMCV9LnRhYmxldERpYWxvZy1paXFoRGNjc3toZWlnaHQ6NTYycHg7bWF4LXdpZHRoOjU2MHB4fS5kZXNrdG9wRGlhbG9nLWlpcWhEY2Nze2hlaWdodDo2ODBweDttYXgtd2lkdGg6ODQwcHg7bWluLXdpZHRoOjcxOXB4O3dpZHRoOjEwMCV9QG1lZGlhIChtYXgtd2lkdGg6NzY4cHgpey5kZXNrdG9wRGlhbG9nLWlpcWhEY2Nze21heC13aWR0aDo2NDBweDttaW4td2lkdGg6NDgwcHh9fUBtZWRpYSAobWF4LXdpZHRoOjUxOXB4KXsuZGVza3RvcERpYWxvZy1paXFoRGNjc3ttYXgtd2lkdGg6NDc5cHg7bWluLXdpZHRoOjM4MHB4fX0="}},"time_used":4,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":4,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"widget-v3.smartsuppcdn.com/assets/style-CliJwUTR.css","fqdn":"widget-v3.smartsuppcdn.com","domain":"smartsuppcdn.com","tld":"com"},"ip":{"addr":"185.76.9.12","port":443,"asn":60068,"as":"Datacamp Limited","country":"Sweden","country_code":"SE"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://digital-assettrade.com/","date":"2026-07-27T10:27:19.776Z","timestamp":1785148039776,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_256_GCM_SHA384","key_group_name":"x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"1857279285.rsc.cdn77.org","organization":""},"issuer":{"commonName":"YE2","organization":"Let's Encrypt"},"validity":{"start":"Thu, 04 Jun 2026 14:34:45 GMT","end":"Wed, 02 Sep 2026 14:34:44 GMT"},"fingerprint":{"sha1":"92:5D:A0:17:13:91:72:7B:B6:8C:6A:7D:A9:55:7F:C8:A9:47:11:99","sha256":"0E:FC:E3:4D:AD:32:B2:11:05:DC:E3:CD:CC:9E:10:DC:C5:2D:9E:1C:D7:C1:9C:00:92:15:43:C5:B7:0B:3A:D6"}}},"request":{"raw":"GET /assets/style-CliJwUTR.css HTTP/1.1\r\nHost: widget-v3.smartsuppcdn.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\nOrigin: https://digital-assettrade.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:19 GMT\r\ncontent-type: text/css\r\naccess-control-allow-origin: *\r\ncache-control: max-age=31536000, public, immutable\r\netag: W/\"6a4cb803-8d68\"\r\nexpires: Wed, 07 Jul 2027 08:30:01 GMT\r\nlast-modified: Tue, 07 Jul 2026 08:25:39 GMT\r\nx-77-nzt: kzhjUAUum/A7LuY3ivbpa6zrONkmvhiMP++I50gg8FU78klgeGFFqGmAJHMoXegmlbTXaLE\r\nx-77-nzt-ray: e2f7542072fcdf658732676a35f8762e\r\nx-77-cache: HIT\r\nx-77-age: 1734997\r\nvary: Accept-Encoding\r\ncontent-encoding: gzip\r\nserver: CDN77-Turbo\r\nx-77-pop: stockholmSE\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"CDN77","description":"CDN77 is a content delivery network (CDN).","website":"https://www.cdn77.com","common_platform_enumeration":"","icon":"CDN77.png","categories":["CDN"]}],"data":{"size":36200,"size_decoded":8208,"mime_type":"text/css","magic":"ASCII text, with very long lines (36187)","md5":"840dfdb09fc1a11a5c3a5b5f808e3160","sha1":"46140a50b100fa33b974027c13bb9f2de5c784b7","sha256":"b5b9a339413a55a0d828ab6be236e2a495594a19fb3283f846c607d7b6996ad7","sha512":"61e37700ee60ed584c8ae7b6313c5dddf6950c9664aa57f32bb4a70d775b1a1d5bfc249c6c1238495ef2cb7e12bae5f00c4ddb3df4dde44a01081117b74e2ba2","ssdeep":"384:F8fY2l091g7Tc6/WYtGLadKzSVX8Kj6+eZcrNSN56qB56YR9evZLLq51vZLLq5G:F8wM091gTcCWYtG4XqcrNSN56DwQ43","tlshash":"05f2966daad9093dac23c179e3f8e58c911af5d5df3226daf74239008ac17ff0986514","first_seen":"2026-07-07T11:50:17.712499Z","last_seen":"2026-07-27T13:00:53.939029Z","times_seen":2515,"resource_available":false,"data":"LmJ0bi5zdmVsdGUteXdvZm1se2JvcmRlci1yYWRpdXM6OTk5OXB4O2p1c3RpZnktY29udGVudDpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO3BhZGRpbmc6LjI1cmVtO2ZvbnQtc2l6ZToxLjEyNXJlbTtsaW5lLWhlaWdodDoxLjc1cmVtO3RyYW5zaXRpb24tcHJvcGVydHk6Y29sb3IsYmFja2dyb3VuZC1jb2xvcixib3JkZXItY29sb3IsdGV4dC1kZWNvcmF0aW9uLWNvbG9yLGZpbGwsc3Ryb2tlO3RyYW5zaXRpb24tZHVyYXRpb246LjE1czt0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjpjdWJpYy1iZXppZXIoLjQsMCwuMiwxKTtkaXNwbGF5OmlubGluZS1mbGV4fS5idG4tcHJpbWFyeS5zdmVsdGUteXdvZm1se2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItcHJpbWFyeS1idXR0b24pIDtjb2xvcjp2YXIoLS1jb2xvci1wcmltYXJ5LWJ1dHRvbi1jb250ZW50KSB9LmJ0bi1wcmltYXJ5LnN2ZWx0ZS15d29mbWw6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1wcmltYXJ5LWJ1dHRvbi1ob3ZlcikgfS5idG4tZ2hvc3Quc3ZlbHRlLXl3b2ZtbDpob3ZlcnstLXVuLWJnLW9wYWNpdHk6LjE7YmFja2dyb3VuZC1jb2xvcjpyZ2IoMCAwIDAvdmFyKC0tdW4tYmctb3BhY2l0eSkpIH0uYnRuLXN1Y2Nlc3Muc3ZlbHRlLXl3b2ZtbHstLXVuLWJnLW9wYWNpdHk6MTtiYWNrZ3JvdW5kLWNvbG9yOnJnYigxNiAxODUgMTI5L3ZhcigtLXVuLWJnLW9wYWNpdHkpKSA7LS11bi10ZXh0LW9wYWNpdHk6MTtjb2xvcjpyZ2IoMjU1IDI1NSAyNTUvdmFyKC0tdW4tdGV4dC1vcGFjaXR5KSkgfS5idG4tc3VjY2Vzcy5zdmVsdGUteXdvZm1sOmhvdmVyey0tdW4tYmctb3BhY2l0eToxO2JhY2tncm91bmQtY29sb3I6cmdiKDUgMTUwIDEwNS92YXIoLS11bi1iZy1vcGFjaXR5KSkgfS5idG4tc20uc3ZlbHRlLXl3b2ZtbHt3aWR0aDoxLjVyZW07aGVpZ2h0OjEuNXJlbX0uYnRuLW1kLnN2ZWx0ZS15d29mbWx7d2lkdGg6MnJlbTtoZWlnaHQ6MnJlbX0uYnRuLWxnLnN2ZWx0ZS15d29mbWx7d2lkdGg6Mi43NXJlbTtoZWlnaHQ6Mi43NXJlbX0uYnRuLXhsLnN2ZWx0ZS15d29mbWx7d2lkdGg6M3JlbTtoZWlnaHQ6M3JlbX0uYnRuLWRpc2FibGVkLnN2ZWx0ZS15d29mbWx7Y3Vyc29yOm5vdC1hbGxvd2VkO29wYWNpdHk6LjJ9LmJ0bi1kaXNhYmxlZC5zdmVsdGUteXdvZm1sOmhvdmVyOmhvdmVye2JhY2tncm91bmQtY29sb3I6IzAwMDB9Kiw6YmVmb3JlLDphZnRlcntib3gtc2l6aW5nOmJvcmRlci1ib3g7Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci13aWR0aDowO2JvcmRlci1jb2xvcjp2YXIoLS11bi1kZWZhdWx0LWJvcmRlci1jb2xvciwjZTVlN2ViKX06YmVmb3JlLDphZnRlcnstLXVuLWNvbnRlbnQ6IiJ9aHRtbCw6aG9zdHstd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6MTAwJTt0YWItc2l6ZTo0O2ZvbnQtZmVhdHVyZS1zZXR0aW5nczpub3JtYWw7Zm9udC12YXJpYXRpb24tc2V0dGluZ3M6bm9ybWFsOy13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjp0cmFuc3BhcmVudDtmb250LWZhbWlseTp1aS1zYW5zLXNlcmlmLHN5c3RlbS11aSxzYW5zLXNlcmlmLEFwcGxlIENvbG9yIEVtb2ppLFNlZ29lIFVJIEVtb2ppLFNlZ29lIFVJIFN5bWJvbCxOb3RvIENvbG9yIEVtb2ppO2xpbmUtaGVpZ2h0OjEuNX1ib2R5e2xpbmUtaGVpZ2h0OmluaGVyaXQ7bWFyZ2luOjB9aHJ7aGVpZ2h0OjA7Y29sb3I6aW5oZXJpdDtib3JkZXItdG9wLXdpZHRoOjFweH1hYmJyOndoZXJlKFt0aXRsZV0pey13ZWJraXQtdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZSBkb3R0ZWQ7dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZSBkb3R0ZWR9aDEsaDIsaDMsaDQsaDUsaDZ7Zm9udC1zaXplOmluaGVyaXQ7Zm9udC13ZWlnaHQ6aW5oZXJpdH1he2NvbG9yOmluaGVyaXQ7LXdlYmtpdC10ZXh0LWRlY29yYXRpb246aW5oZXJpdDt0ZXh0LWRlY29yYXRpb246aW5oZXJpdH1iLHN0cm9uZ3tmb250LXdlaWdodDpib2xkZXJ9Y29kZSxrYmQsc2FtcCxwcmV7Zm9udC1mZWF0dXJlLXNldHRpbmdzOm5vcm1hbDtmb250LXZhcmlhdGlvbi1zZXR0aW5nczpub3JtYWw7Zm9udC1mYW1pbHk6dWktbW9ub3NwYWNlLFNGTW9uby1SZWd1bGFyLE1lbmxvLE1vbmFjbyxDb25zb2xhcyxMaWJlcmF0aW9uIE1vbm8sQ291cmllciBOZXcsbW9ub3NwYWNlO2ZvbnQtc2l6ZToxZW19c21hbGx7Zm9udC1zaXplOjgwJX1zdWIsc3Vwe3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lO2ZvbnQtc2l6ZTo3NSU7bGluZS1oZWlnaHQ6MDtwb3NpdGlvbjpyZWxhdGl2ZX1zdWJ7Ym90dG9tOi0uMjVlbX1zdXB7dG9wOi0uNWVtfXRhYmxle3RleHQtaW5kZW50OjA7Ym9yZGVyLWNvbG9yOmluaGVyaXQ7Ym9yZGVyLWNvbGxhcHNlOmNvbGxhcHNlfWJ1dHRvbixpbnB1dCxvcHRncm91cCxzZWxlY3QsdGV4dGFyZWF7Zm9udC1mZWF0dXJlLXNldHRpbmdzOmluaGVyaXQ7Zm9udC12YXJpYXRpb24tc2V0dGluZ3M6aW5oZXJpdDtmb250LWZhbWlseTppbmhlcml0O2ZvbnQtc2l6ZToxMDAlO2ZvbnQtd2VpZ2h0OmluaGVyaXQ7bGluZS1oZWlnaHQ6aW5oZXJpdDtjb2xvcjppbmhlcml0O21hcmdpbjowO3BhZGRpbmc6MH1idXR0b24sc2VsZWN0e3RleHQtdHJhbnNmb3JtOm5vbmV9YnV0dG9uLFt0eXBlPWJ1dHRvbl0sW3R5cGU9cmVzZXRdLFt0eXBlPXN1Ym1pdF17LXdlYmtpdC1hcHBlYXJhbmNlOmJ1dHRvbjtiYWNrZ3JvdW5kLWNvbG9yOiMwMDAwO2JhY2tncm91bmQtaW1hZ2U6bm9uZX06LW1vei1mb2N1c3Jpbmd7b3V0bGluZTphdXRvfTotbW96LXVpLWludmFsaWR7Ym94LXNoYWRvdzpub25lfXByb2dyZXNze3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lfTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbntoZWlnaHQ6YXV0b306Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b257aGVpZ2h0OmF1dG99W3R5cGU9c2VhcmNoXXstd2Via2l0LWFwcGVhcmFuY2U6dGV4dGZpZWxkO291dGxpbmUtb2Zmc2V0Oi0ycHh9Ojotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uey13ZWJraXQtYXBwZWFyYW5jZTpub25lfTo6LXdlYmtpdC1maWxlLXVwbG9hZC1idXR0b257LXdlYmtpdC1hcHBlYXJhbmNlOmJ1dHRvbjtmb250OmluaGVyaXR9c3VtbWFyeXtkaXNwbGF5Omxpc3QtaXRlbX1ibG9ja3F1b3RlLGRsLGRkLGgxLGgyLGgzLGg0LGg1LGg2LGhyLGZpZ3VyZSxwLHByZXttYXJnaW46MH1maWVsZHNldHttYXJnaW46MDtwYWRkaW5nOjB9bGVnZW5ke3BhZGRpbmc6MH1vbCx1bCxtZW51e21hcmdpbjowO3BhZGRpbmc6MDtsaXN0LXN0eWxlOm5vbmV9ZGlhbG9ne3BhZGRpbmc6MH10ZXh0YXJlYXtyZXNpemU6dmVydGljYWx9aW5wdXQ6OnBsYWNlaG9sZGVyLHRleHRhcmVhOjpwbGFjZWhvbGRlcntvcGFjaXR5OjE7Y29sb3I6IzljYTNhZn1idXR0b24sW3JvbGU9YnV0dG9uXXtjdXJzb3I6cG9pbnRlcn06ZGlzYWJsZWR7Y3Vyc29yOmRlZmF1bHR9aW1nLHN2Zyx2aWRlbyxjYW52YXMsYXVkaW8saWZyYW1lLGVtYmVkLG9iamVjdHt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7ZGlzcGxheTpibG9ja31pbWcsdmlkZW97bWF4LXdpZHRoOjEwMCU7aGVpZ2h0OmF1dG99W2hpZGRlbl06d2hlcmUoOm5vdChbaGlkZGVuPXVudGlsLWZvdW5kXSkpe2Rpc3BsYXk6bm9uZX0qLDpiZWZvcmUsOmFmdGVyLDo6YmFja2Ryb3B7LS11bi1yb3RhdGU6MDstLXVuLXJvdGF0ZS14OjA7LS11bi1yb3RhdGUteTowOy0tdW4tcm90YXRlLXo6MDstLXVuLXNjYWxlLXg6MTstLXVuLXNjYWxlLXk6MTstLXVuLXNjYWxlLXo6MTstLXVuLXNrZXcteDowOy0tdW4tc2tldy15OjA7LS11bi10cmFuc2xhdGUteDowOy0tdW4tdHJhbnNsYXRlLXk6MDstLXVuLXRyYW5zbGF0ZS16OjA7LS11bi1wYW4teDogOy0tdW4tcGFuLXk6IDstLXVuLXBpbmNoLXpvb206IDstLXVuLXNjcm9sbC1zbmFwLXN0cmljdG5lc3M6cHJveGltaXR5Oy0tdW4tb3JkaW5hbDogOy0tdW4tc2xhc2hlZC16ZXJvOiA7LS11bi1udW1lcmljLWZpZ3VyZTogOy0tdW4tbnVtZXJpYy1zcGFjaW5nOiA7LS11bi1udW1lcmljLWZyYWN0aW9uOiA7LS11bi1ib3JkZXItc3BhY2luZy14OjA7LS11bi1ib3JkZXItc3BhY2luZy15OjA7LS11bi1yaW5nLW9mZnNldC1zaGFkb3c6MCAwICMwMDAwOy0tdW4tcmluZy1zaGFkb3c6MCAwICMwMDAwOy0tdW4tc2hhZG93LWluc2V0OiA7LS11bi1zaGFkb3c6MCAwICMwMDAwOy0tdW4tcmluZy1pbnNldDogOy0tdW4tcmluZy1vZmZzZXQtd2lkdGg6MHB4Oy0tdW4tcmluZy1vZmZzZXQtY29sb3I6I2ZmZjstLXVuLXJpbmctd2lkdGg6MHB4Oy0tdW4tcmluZy1jb2xvcjojOTNjNWZkODA7LS11bi1ibHVyOiA7LS11bi1icmlnaHRuZXNzOiA7LS11bi1jb250cmFzdDogOy0tdW4tZHJvcC1zaGFkb3c6IDstLXVuLWdyYXlzY2FsZTogOy0tdW4taHVlLXJvdGF0ZTogOy0tdW4taW52ZXJ0OiA7LS11bi1zYXR1cmF0ZTogOy0tdW4tc2VwaWE6IDstLXVuLWJhY2tkcm9wLWJsdXI6IDstLXVuLWJhY2tkcm9wLWJyaWdodG5lc3M6IDstLXVuLWJhY2tkcm9wLWNvbnRyYXN0OiA7LS11bi1iYWNrZHJvcC1ncmF5c2NhbGU6IDstLXVuLWJhY2tkcm9wLWh1ZS1yb3RhdGU6IDstLXVuLWJhY2tkcm9wLWludmVydDogOy0tdW4tYmFja2Ryb3Atb3BhY2l0eTogOy0tdW4tYmFja2Ryb3Atc2F0dXJhdGU6IDstLXVuLWJhY2tkcm9wLXNlcGlhOiB9LmZsZXgtY2VudGVye2p1c3RpZnktY29udGVudDpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO2Rpc3BsYXk6ZmxleH0uYnV0dG9uLWZvY3VzOmZvY3VzLXZpc2libGV7b3V0bGluZS13aWR0aDoycHg7b3V0bGluZS1jb2xvcjp2YXIoLS1jb2xvci1wcmltYXJ5LWZvY3VzKSA7b3V0bGluZS1vZmZzZXQ6MXB4O291dGxpbmUtc3R5bGU6c29saWR9LmJ1dHRvbi1mb2N1cy1zZWNvbmRhcnk6Zm9jdXMtdmlzaWJsZXtvdXRsaW5lLXdpZHRoOjJweDtvdXRsaW5lLWNvbG9yOnZhcigtLWNvbG9yLXByaW1hcnktZm9jdXMpIDtvdXRsaW5lLWNvbG9yOnZhcigtLWNvbG9yLXNlY29uZGFyeS1mb2N1cykgO291dGxpbmUtb2Zmc2V0OjFweDtvdXRsaW5lLXN0eWxlOnNvbGlkfS5jb250ZW50LWZvY3VzOmZvY3VzLXZpc2libGV7b3V0bGluZS13aWR0aDoycHg7b3V0bGluZS1jb2xvcjp2YXIoLS1jb2xvci1wcmltYXJ5LWZvY3VzKSA7b3V0bGluZS1vZmZzZXQ6LTVweDtvdXRsaW5lLXN0eWxlOnNvbGlkfS5jb250ZW50LWZvY3VzLXNlY29uZGFyeTpmb2N1cy12aXNpYmxle291dGxpbmUtd2lkdGg6MnB4O291dGxpbmUtY29sb3I6dmFyKC0tY29sb3ItcHJpbWFyeS1mb2N1cykgO291dGxpbmUtY29sb3I6dmFyKC0tY29sb3Itc2Vjb25kYXJ5LWZvY3VzKSA7b3V0bGluZS1vZmZzZXQ6LTVweDtvdXRsaW5lLXN0eWxlOnNvbGlkfS5cW2NsaXBcOnJlY3RcKDBcLDBcLDBcLDBcKVxde2NsaXA6cmVjdCgwLDAsMCwwKX0uc3Itb25seXtjbGlwOnJlY3QoMCwwLDAsMCk7d2hpdGUtc3BhY2U6bm93cmFwO2JvcmRlci13aWR0aDowO3dpZHRoOjFweDtoZWlnaHQ6MXB4O21hcmdpbjotMXB4O3BhZGRpbmc6MDtwb3NpdGlvbjphYnNvbHV0ZTtvdmVyZmxvdzpoaWRkZW59LnBvaW50ZXItZXZlbnRzLWF1dG97cG9pbnRlci1ldmVudHM6YXV0b30ucG9pbnRlci1ldmVudHMtbm9uZXtwb2ludGVyLWV2ZW50czpub25lfS5hYnNvbHV0ZXtwb3NpdGlvbjphYnNvbHV0ZX0uZml4ZWR7cG9zaXRpb246Zml4ZWR9LnJlbGF0aXZle3Bvc2l0aW9uOnJlbGF0aXZlfS5zdGlja3l7cG9zaXRpb246c3RpY2t5fS4tYm90dG9tLTRcLjV7Ym90dG9tOi0xLjEyNXJlbX0uLXJpZ2h0LVxbNHB4XF17cmlnaHQ6LTRweH0uLXRvcC1cWzRweFxde3RvcDotNHB4fS5ib3R0b20tXFstOHB4XF17Ym90dG9tOi04cHh9LmJvdHRvbS0we2JvdHRvbTowfS5ib3R0b20tM3tib3R0b206Ljc1cmVtfS5ib3R0b20tZnVsbHtib3R0b206MTAwJX0ubGVmdC1cWzJweFxde2xlZnQ6MnB4fS5sZWZ0LTB7bGVmdDowfS5sZWZ0LTFcLzJ7bGVmdDo1MCV9LmxlZnQtMntsZWZ0Oi41cmVtfS5sZWZ0LTNcLjd7bGVmdDouOTI1cmVtfS5yaWdodC1cWzE2cHhcXXtyaWdodDoxNnB4fS5yaWdodC0we3JpZ2h0OjB9LnJpZ2h0LTBcLjV7cmlnaHQ6LjEyNXJlbX0ucmlnaHQtMntyaWdodDouNXJlbX0ucmlnaHQtM3tyaWdodDouNzVyZW19LnRvcC1cWzJweFxde3RvcDoycHh9LnRvcC0we3RvcDowfS50b3AtMnt0b3A6LjVyZW19LnRvcC0ze3RvcDouNzVyZW19LnRvcC0zXC43e3RvcDouOTI1cmVtfS50b3AtMzB7dG9wOjcuNXJlbX0udG9wLTQwe3RvcDoxMHJlbX0ubGluZS1jbGFtcC0xey13ZWJraXQtbGluZS1jbGFtcDoxO2xpbmUtY2xhbXA6MTstd2Via2l0LWJveC1vcmllbnQ6dmVydGljYWw7ZGlzcGxheTotd2Via2l0LWJveDtvdmVyZmxvdzpoaWRkZW59LmxpbmUtY2xhbXAtMnstd2Via2l0LWxpbmUtY2xhbXA6MjtsaW5lLWNsYW1wOjI7LXdlYmtpdC1ib3gtb3JpZW50OnZlcnRpY2FsO2Rpc3BsYXk6LXdlYmtpdC1ib3g7b3ZlcmZsb3c6aGlkZGVufS5saW5lLWNsYW1wLTN7LXdlYmtpdC1saW5lLWNsYW1wOjM7bGluZS1jbGFtcDozOy13ZWJraXQtYm94LW9yaWVudDp2ZXJ0aWNhbDtkaXNwbGF5Oi13ZWJraXQtYm94O292ZXJmbG93OmhpZGRlbn0ubGluZS1jbGFtcC01ey13ZWJraXQtbGluZS1jbGFtcDo1O2xpbmUtY2xhbXA6NTstd2Via2l0LWJveC1vcmllbnQ6dmVydGljYWw7ZGlzcGxheTotd2Via2l0LWJveDtvdmVyZmxvdzpoaWRkZW59LnotMXt6LWluZGV4OjF9LnotMTB7ei1pbmRleDoxMH0uei0xMDB7ei1pbmRleDoxMDB9LnotNTB7ei1pbmRleDo1MH0uZ3JpZHtkaXNwbGF5OmdyaWR9LmZsb2F0LXJpZ2h0e2Zsb2F0OnJpZ2h0fS4tbS1weHttYXJnaW46LTFweH0ubS0ze21hcmdpbjouNzVyZW19Lm0tYXV0b3ttYXJnaW46YXV0b30ubTE1e21hcmdpbjozLjc1cmVtfS5tMTZ7bWFyZ2luOjRyZW19Lm0xOHttYXJnaW46NC41cmVtfS5tMjF7bWFyZ2luOjUuMjVyZW19Lm0yMnttYXJnaW46NS41cmVtfS5tNnttYXJnaW46MS41cmVtfS5tN3ttYXJnaW46MS43NXJlbX0ubTh7bWFyZ2luOjJyZW19Lm05e21hcmdpbjoyLjI1cmVtfS5teC0ye21hcmdpbi1sZWZ0Oi41cmVtO21hcmdpbi1yaWdodDouNXJlbX0ubXgtM3ttYXJnaW4tbGVmdDouNzVyZW07bWFyZ2luLXJpZ2h0Oi43NXJlbX0ubXgtNHttYXJnaW4tbGVmdDoxcmVtO21hcmdpbi1yaWdodDoxcmVtfS5teS0ze21hcmdpbi10b3A6Ljc1cmVtO21hcmdpbi1ib3R0b206Ljc1cmVtfS5teS00e21hcmdpbi10b3A6MXJlbTttYXJnaW4tYm90dG9tOjFyZW19Li1tdC0ze21hcmdpbi10b3A6LS43NXJlbX0ubWItXFsycHhcXXttYXJnaW4tYm90dG9tOjJweH0ubWItMHttYXJnaW4tYm90dG9tOjB9Lm1iLTEsLm5vdC1sYXN0LW9mLXR5cGVcOm1iLTE6bm90KDpsYXN0LW9mLXR5cGUpe21hcmdpbi1ib3R0b206LjI1cmVtfS5tYi0ye21hcmdpbi1ib3R0b206LjVyZW19Lm1iLTN7bWFyZ2luLWJvdHRvbTouNzVyZW19Lm1iLTR7bWFyZ2luLWJvdHRvbToxcmVtfS5tYi02e21hcmdpbi1ib3R0b206MS41cmVtfS5tbC0wXC41e21hcmdpbi1sZWZ0Oi4xMjVyZW19Lm1sLTF7bWFyZ2luLWxlZnQ6LjI1cmVtfS5tbC0ye21hcmdpbi1sZWZ0Oi41cmVtfS5tbC0ze21hcmdpbi1sZWZ0Oi43NXJlbX0ubWwtNHttYXJnaW4tbGVmdDoxcmVtfS5tbC04e21hcmdpbi1sZWZ0OjJyZW19Lm1yLTF7bWFyZ2luLXJpZ2h0Oi4yNXJlbX0ubXItMVwuNXttYXJnaW4tcmlnaHQ6LjM3NXJlbX0ubXItMTB7bWFyZ2luLXJpZ2h0OjIuNXJlbX0ubXItMnttYXJnaW4tcmlnaHQ6LjVyZW19Lm1yLTN7bWFyZ2luLXJpZ2h0Oi43NXJlbX0ubXItNHttYXJnaW4tcmlnaHQ6MXJlbX0ubXQtXFsxcHhcXXttYXJnaW4tdG9wOjFweH0ubXQtMFwuNXttYXJnaW4tdG9wOi4xMjVyZW19Lm10LTJ7bWFyZ2luLXRvcDouNXJlbX0ubXQtM3ttYXJnaW4tdG9wOi43NXJlbX0ubXQtNHttYXJnaW4tdG9wOjFyZW19Lm10LTZ7bWFyZ2luLXRvcDoxLjVyZW19Lm10LTh7bWFyZ2luLXRvcDoycmVtfS5maXJzdC1vZi10eXBlXDptdC0yOmZpcnN0LW9mLXR5cGV7bWFyZ2luLXRvcDouNXJlbX0uaW5saW5le2Rpc3BsYXk6aW5saW5lfS5ibG9ja3tkaXNwbGF5OmJsb2NrfS5pbmxpbmUtYmxvY2t7ZGlzcGxheTppbmxpbmUtYmxvY2t9LmhpZGRlbntkaXNwbGF5Om5vbmV9LmgtXFsxXC4yZW1cXXtoZWlnaHQ6MS4yZW19LmgtXFsxZW1cXXtoZWlnaHQ6MWVtfS5oLVxbNTBweFxde2hlaWdodDo1MHB4fS5oLTF7aGVpZ2h0Oi4yNXJlbX0uaC0xMHtoZWlnaHQ6Mi41cmVtfS5oLTExe2hlaWdodDoyLjc1cmVtfS5oLTEye2hlaWdodDozcmVtfS5oLTJ7aGVpZ2h0Oi41cmVtfS5oLTJcLjV7aGVpZ2h0Oi42MjVyZW19LmgtMjB7aGVpZ2h0OjVyZW19LmgtMzB7aGVpZ2h0OjcuNXJlbX0uaC00e2hlaWdodDoxcmVtfS5oLTQwe2hlaWdodDoxMHJlbX0uaC00MDBweHtoZWlnaHQ6NDAwcHh9LmgtNXtoZWlnaHQ6MS4yNXJlbX0uaC01NHB4e2hlaWdodDo1NHB4fS5oLTZ7aGVpZ2h0OjEuNXJlbX0uaC02MHB4e2hlaWdodDo2MHB4fS5oLTY0cHh7aGVpZ2h0OjY0cHh9LmgtN3toZWlnaHQ6MS43NXJlbX0uaC04e2hlaWdodDoycmVtfS5oLWZ1bGx7aGVpZ2h0OjEwMCV9LmgtcHh7aGVpZ2h0OjFweH0ubWF4LWgtXFsxMjVweFxde21heC1oZWlnaHQ6MTI1cHh9Lm1heC1oLVxbMjQwcHhcXXttYXgtaGVpZ2h0OjI0MHB4fS5tYXgtaC1cWzMycHhcXXttYXgtaGVpZ2h0OjMycHh9Lm1heC1oLTEzMnB4e21heC1oZWlnaHQ6MTMycHh9Lm1heC1oLTY0e21heC1oZWlnaHQ6MTZyZW19Lm1heC1oLTgwdmh7bWF4LWhlaWdodDo4MHZofS5tYXgtaC04NnttYXgtaGVpZ2h0OjIxLjVyZW19Lm1heC1oLWZ1bGx7bWF4LWhlaWdodDoxMDAlfS5tYXgtdy1cWzgwXCVcXXttYXgtd2lkdGg6ODAlfS5tYXgtdy1cWzg1XCVcXXttYXgtd2lkdGg6ODUlfS5tYXgtdy1cW2NhbGNcKDEwMFwlLTE1MHB4XClcXXttYXgtd2lkdGg6Y2FsYygxMDAlIC0gMTUwcHgpfS5tYXgtdy1mdWxse21heC13aWR0aDoxMDAlfS5taW4taC1cWzE2cHhcXXttaW4taGVpZ2h0OjE2cHh9Lm1pbi13LVxbMTZweFxde21pbi13aWR0aDoxNnB4fS5taW4tdy0we21pbi13aWR0aDowfS5taW4tdy01e21pbi13aWR0aDoxLjI1cmVtfS5taW4tdy01XC41e21pbi13aWR0aDoxLjM3NXJlbX0ubWluLXctNnttaW4td2lkdGg6MS41cmVtfS53LVxbMVwuMmVtXF17d2lkdGg6MS4yZW19LnctXFsxZW1cXXt3aWR0aDoxZW19LnctXFs1MHB4XF17d2lkdGg6NTBweH0udy0we3dpZHRoOjB9LnctMXt3aWR0aDouMjVyZW19LnctMTF7d2lkdGg6Mi43NXJlbX0udy0xMTZ7d2lkdGg6MjlyZW19LnctMTJ7d2lkdGg6M3JlbX0udy0ye3dpZHRoOi41cmVtfS53LTJcLjV7d2lkdGg6LjYyNXJlbX0udy0yODBweHt3aWR0aDoyODBweH0udy0zNDhweHt3aWR0aDozNDhweH0udy00e3dpZHRoOjFyZW19LnctNXt3aWR0aDoxLjI1cmVtfS53LTUye3dpZHRoOjEzcmVtfS53LTU2e3dpZHRoOjE0cmVtfS53LTZ7d2lkdGg6MS41cmVtfS53LTYwcHh7d2lkdGg6NjBweH0udy03e3dpZHRoOjEuNzVyZW19LnctOHt3aWR0aDoycmVtfS53LWZ1bGx7d2lkdGg6MTAwJX0udy1tYXh7d2lkdGg6bWF4LWNvbnRlbnR9LnctcHh7d2lkdGg6MXB4fS5mbGV4e2Rpc3BsYXk6ZmxleH0uaW5saW5lLWZsZXh7ZGlzcGxheTppbmxpbmUtZmxleH0uZmxleC0xe2ZsZXg6MX0uZmxleC1ub25le2ZsZXg6bm9uZX0uZmxleC1zaHJpbmt7ZmxleC1zaHJpbms6MX0uZmxleC1zaHJpbmstMCwuc2hyaW5rLTB7ZmxleC1zaHJpbms6MH0uZmxleC1ncm93LC5ncm93e2ZsZXgtZ3JvdzoxfS5mbGV4LXJvd3tmbGV4LWRpcmVjdGlvbjpyb3d9LmZsZXgtY29se2ZsZXgtZGlyZWN0aW9uOmNvbHVtbn0uZmxleC13cmFwe2ZsZXgtd3JhcDp3cmFwfS4tdHJhbnNsYXRlLXgtMVwvMnstLXVuLXRyYW5zbGF0ZS14Oi01MCU7dHJhbnNmb3JtOnRyYW5zbGF0ZVgodmFyKC0tdW4tdHJhbnNsYXRlLXgpKSB0cmFuc2xhdGVZKHZhcigtLXVuLXRyYW5zbGF0ZS15KSkgdHJhbnNsYXRlWih2YXIoLS11bi10cmFuc2xhdGUteikpIHJvdGF0ZSh2YXIoLS11bi1yb3RhdGUpKSByb3RhdGVYKHZhcigtLXVuLXJvdGF0ZS14KSkgcm90YXRlWSh2YXIoLS11bi1yb3RhdGUteSkpIHJvdGF0ZVoodmFyKC0tdW4tcm90YXRlLXopKSBza2V3WCh2YXIoLS11bi1za2V3LXgpKSBza2V3WSh2YXIoLS11bi1za2V3LXkpKSBzY2FsZVgodmFyKC0tdW4tc2NhbGUteCkpIHNjYWxlWSh2YXIoLS11bi1zY2FsZS15KSkgc2NhbGVaKHZhcigtLXVuLXNjYWxlLXopKX0udHJhbnNsYXRlLXgtZnVsbHstLXVuLXRyYW5zbGF0ZS14OjEwMCU7dHJhbnNmb3JtOnRyYW5zbGF0ZVgodmFyKC0tdW4tdHJhbnNsYXRlLXgpKSB0cmFuc2xhdGVZKHZhcigtLXVuLXRyYW5zbGF0ZS15KSkgdHJhbnNsYXRlWih2YXIoLS11bi10cmFuc2xhdGUteikpIHJvdGF0ZSh2YXIoLS11bi1yb3RhdGUpKSByb3RhdGVYKHZhcigtLXVuLXJvdGF0ZS14KSkgcm90YXRlWSh2YXIoLS11bi1yb3RhdGUteSkpIHJvdGF0ZVoodmFyKC0tdW4tcm90YXRlLXopKSBza2V3WCh2YXIoLS11bi1za2V3LXgpKSBza2V3WSh2YXIoLS11bi1za2V3LXkpKSBzY2FsZVgodmFyKC0tdW4tc2NhbGUteCkpIHNjYWxlWSh2YXIoLS11bi1zY2FsZS15KSkgc2NhbGVaKHZhcigtLXVuLXNjYWxlLXopKX0uZ3JvdXA6aG92ZXIgLmdyb3VwLWhvdmVyXDpzY2FsZS0xMTV7LS11bi1zY2FsZS14OjEuMTU7LS11bi1zY2FsZS15OjEuMTU7dHJhbnNmb3JtOnRyYW5zbGF0ZVgodmFyKC0tdW4tdHJhbnNsYXRlLXgpKSB0cmFuc2xhdGVZKHZhcigtLXVuLXRyYW5zbGF0ZS15KSkgdHJhbnNsYXRlWih2YXIoLS11bi10cmFuc2xhdGUteikpIHJvdGF0ZSh2YXIoLS11bi1yb3RhdGUpKSByb3RhdGVYKHZhcigtLXVuLXJvdGF0ZS14KSkgcm90YXRlWSh2YXIoLS11bi1yb3RhdGUteSkpIHJvdGF0ZVoodmFyKC0tdW4tcm90YXRlLXopKSBza2V3WCh2YXIoLS11bi1za2V3LXgpKSBza2V3WSh2YXIoLS11bi1za2V3LXkpKSBzY2FsZVgodmFyKC0tdW4tc2NhbGUteCkpIHNjYWxlWSh2YXIoLS11bi1zY2FsZS15KSkgc2NhbGVaKHZhcigtLXVuLXNjYWxlLXopKX0uaG92ZXJcOnNjYWxlLTEyMDpob3ZlcnstLXVuLXNjYWxlLXg6MS4yOy0tdW4tc2NhbGUteToxLjI7dHJhbnNmb3JtOnRyYW5zbGF0ZVgodmFyKC0tdW4tdHJhbnNsYXRlLXgpKSB0cmFuc2xhdGVZKHZhcigtLXVuLXRyYW5zbGF0ZS15KSkgdHJhbnNsYXRlWih2YXIoLS11bi10cmFuc2xhdGUteikpIHJvdGF0ZSh2YXIoLS11bi1yb3RhdGUpKSByb3RhdGVYKHZhcigtLXVuLXJvdGF0ZS14KSkgcm90YXRlWSh2YXIoLS11bi1yb3RhdGUteSkpIHJvdGF0ZVoodmFyKC0tdW4tcm90YXRlLXopKSBza2V3WCh2YXIoLS11bi1za2V3LXgpKSBza2V3WSh2YXIoLS11bi1za2V3LXkpKSBzY2FsZVgodmFyKC0tdW4tc2NhbGUteCkpIHNjYWxlWSh2YXIoLS11bi1zY2FsZS15KSkgc2NhbGVaKHZhcigtLXVuLXNjYWxlLXopKX0udHJhbnNmb3Jte3RyYW5zZm9ybTp0cmFuc2xhdGVYKHZhcigtLXVuLXRyYW5zbGF0ZS14KSkgdHJhbnNsYXRlWSh2YXIoLS11bi10cmFuc2xhdGUteSkpIHRyYW5zbGF0ZVoodmFyKC0tdW4tdHJhbnNsYXRlLXopKSByb3RhdGUodmFyKC0tdW4tcm90YXRlKSkgcm90YXRlWCh2YXIoLS11bi1yb3RhdGUteCkpIHJvdGF0ZVkodmFyKC0tdW4tcm90YXRlLXkpKSByb3RhdGVaKHZhcigtLXVuLXJvdGF0ZS16KSkgc2tld1godmFyKC0tdW4tc2tldy14KSkgc2tld1kodmFyKC0tdW4tc2tldy15KSkgc2NhbGVYKHZhcigtLXVuLXNjYWxlLXgpKSBzY2FsZVkodmFyKC0tdW4tc2NhbGUteSkpIHNjYWxlWih2YXIoLS11bi1zY2FsZS16KSl9QGtleWZyYW1lcyBwdWxzZXswJSx0b3tvcGFjaXR5OjF9NTAle29wYWNpdHk6LjV9fUBrZXlmcmFtZXMgcHVzaC10by1sZWZ0ezAle21hcmdpbi1yaWdodDotNTAlO3RyYW5zZm9ybTpzY2FsZSgwKX10b3ttYXJnaW4tcmlnaHQ6aW5oZXJpdDt0cmFuc2Zvcm06c2NhbGUoMSl9fUBrZXlmcmFtZXMgc3BpbnswJXtyb3RhdGU6MGRlZ310b3tyb3RhdGU6MzYwZGVnfX1Aa2V5ZnJhbWVzIHR5cGluZ3swJSw1MCUsdG97dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMCl9MjUle3RyYW5zZm9ybTp0cmFuc2xhdGVZKC02cHgpfX0uYW5pbWF0ZS1wdWxzZXthbmltYXRpb246MnMgY3ViaWMtYmV6aWVyKC40LDAsLjYsMSkgaW5maW5pdGUgcHVsc2V9LmFuaW1hdGUtcHVzaC10by1sZWZ0e2FuaW1hdGlvbjouMjVzIGVhc2UtaW4tb3V0IHB1c2gtdG8tbGVmdH0uYW5pbWF0ZS1zcGlue2FuaW1hdGlvbjoxcyBsaW5lYXIgaW5maW5pdGUgc3Bpbn0uYW5pbWF0ZS10eXBpbmd7YW5pbWF0aW9uOi44cyBlYXNlLWluLW91dCB0eXBpbmd9LmN1cnNvci1hdXRve2N1cnNvcjphdXRvfS5jdXJzb3ItcG9pbnRlciwuaG92ZXJcOmN1cnNvci1wb2ludGVyOmhvdmVye2N1cnNvcjpwb2ludGVyfS5jdXJzb3Itbm90LWFsbG93ZWR7Y3Vyc29yOm5vdC1hbGxvd2VkfS5zZWxlY3Qtbm9uZXstd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZX0ucmVzaXple3Jlc2l6ZTpib3RofS5yZXNpemUtbm9uZXtyZXNpemU6bm9uZX0uc2Nyb2xsLW10LTJ7c2Nyb2xsLW1hcmdpbi10b3A6LjVyZW19Lmxpc3QtZGVjaW1hbHtsaXN0LXN0eWxlLXR5cGU6ZGVjaW1hbH0ubGlzdC1kaXNje2xpc3Qtc3R5bGUtdHlwZTpkaXNjfS5jb250ZW50LWNlbnRlcnthbGlnbi1jb250ZW50OmNlbnRlcn0uaXRlbXMtc3RhcnR7YWxpZ24taXRlbXM6ZmxleC1zdGFydH0uaXRlbXMtZW5ke2FsaWduLWl0ZW1zOmZsZXgtZW5kfS5pdGVtcy1jZW50ZXJ7YWxpZ24taXRlbXM6Y2VudGVyfS5pdGVtcy1iYXNlbGluZXthbGlnbi1pdGVtczpiYXNlbGluZX0uc2VsZi1zdHJldGNoe2FsaWduLXNlbGY6c3RyZXRjaH0uanVzdGlmeS1zdGFydHtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1zdGFydH0uanVzdGlmeS1lbmR7anVzdGlmeS1jb250ZW50OmZsZXgtZW5kfS5qdXN0aWZ5LWNlbnRlcntqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyfS5qdXN0aWZ5LWJldHdlZW57anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW59LmdhcC0ye2dhcDouNXJlbX0uZ2FwLTN7Z2FwOi43NXJlbX0uc3BhY2UteC0yPjpub3QoW2hpZGRlbl0pfjpub3QoW2hpZGRlbl0pey0tdW4tc3BhY2UteC1yZXZlcnNlOjA7bWFyZ2luLWxlZnQ6Y2FsYyguNXJlbSAqIGNhbGMoMSAtIHZhcigtLXVuLXNwYWNlLXgtcmV2ZXJzZSkpKTttYXJnaW4tcmlnaHQ6Y2FsYyguNXJlbSAqIHZhcigtLXVuLXNwYWNlLXgtcmV2ZXJzZSkpfS5zcGFjZS14LTU+Om5vdChbaGlkZGVuXSl+Om5vdChbaGlkZGVuXSl7LS11bi1zcGFjZS14LXJldmVyc2U6MDttYXJnaW4tbGVmdDpjYWxjKDEuMjVyZW0gKiBjYWxjKDEgLSB2YXIoLS11bi1zcGFjZS14LXJldmVyc2UpKSk7bWFyZ2luLXJpZ2h0OmNhbGMoMS4yNXJlbSAqIHZhcigtLXVuLXNwYWNlLXgtcmV2ZXJzZSkpfS5zcGFjZS15LTI+Om5vdChbaGlkZGVuXSl+Om5vdChbaGlkZGVuXSl7LS11bi1zcGFjZS15LXJldmVyc2U6MDttYXJnaW4tdG9wOmNhbGMoLjVyZW0gKiBjYWxjKDEgLSB2YXIoLS11bi1zcGFjZS15LXJldmVyc2UpKSk7bWFyZ2luLWJvdHRvbTpjYWxjKC41cmVtICogdmFyKC0tdW4tc3BhY2UteS1yZXZlcnNlKSl9LnNwYWNlLXktND46bm90KFtoaWRkZW5dKX46bm90KFtoaWRkZW5dKXstLXVuLXNwYWNlLXktcmV2ZXJzZTowO21hcmdpbi10b3A6Y2FsYygxcmVtICogY2FsYygxIC0gdmFyKC0tdW4tc3BhY2UteS1yZXZlcnNlKSkpO21hcmdpbi1ib3R0b206Y2FsYygxcmVtICogdmFyKC0tdW4tc3BhY2UteS1yZXZlcnNlKSl9LnNwYWNlLXktNT46bm90KFtoaWRkZW5dKX46bm90KFtoaWRkZW5dKXstLXVuLXNwYWNlLXktcmV2ZXJzZTowO21hcmdpbi10b3A6Y2FsYygxLjI1cmVtICogY2FsYygxIC0gdmFyKC0tdW4tc3BhY2UteS1yZXZlcnNlKSkpO21hcmdpbi1ib3R0b206Y2FsYygxLjI1cmVtICogdmFyKC0tdW4tc3BhY2UteS1yZXZlcnNlKSl9Lm92ZXJmbG93LWF1dG97b3ZlcmZsb3c6YXV0b30ub3ZlcmZsb3ctY2xpcHtvdmVyZmxvdzpjbGlwfS5vdmVyZmxvdy1oaWRkZW57b3ZlcmZsb3c6aGlkZGVufS5vdmVyZmxvdy14LWhpZGRlbntvdmVyZmxvdy14OmhpZGRlbn0ub3ZlcmZsb3cteS1hdXRve292ZXJmbG93LXk6YXV0b30ub3ZlcmZsb3cteS1zY3JvbGx7b3ZlcmZsb3cteTpzY3JvbGx9Lm92ZXJzY3JvbGwtY29udGFpbntvdmVyc2Nyb2xsLWJlaGF2aW9yOmNvbnRhaW59LnRydW5jYXRle3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbn0udGV4dC1lbGxpcHNpc3t0ZXh0LW92ZXJmbG93OmVsbGlwc2lzfS53aGl0ZXNwYWNlLW5vcm1hbHt3aGl0ZS1zcGFjZTpub3JtYWx9LndoaXRlc3BhY2Utbm93cmFwe3doaXRlLXNwYWNlOm5vd3JhcH0ud2hpdGVzcGFjZS1wcmV7d2hpdGUtc3BhY2U6cHJlfS53aGl0ZXNwYWNlLXByZS13cmFwe3doaXRlLXNwYWNlOnByZS13cmFwfS5icmVhay13b3Jkc3tvdmVyZmxvdy13cmFwOmJyZWFrLXdvcmR9LmJyZWFrLWFsbHt3b3JkLWJyZWFrOmJyZWFrLWFsbH0uYm9yZGVyLC5ib3JkZXItMXtib3JkZXItd2lkdGg6MXB4fS5ib3JkZXItMHtib3JkZXItd2lkdGg6MH0uYm9yZGVyLTJ7Ym9yZGVyLXdpZHRoOjJweH0uYm9yZGVyLXQtMntib3JkZXItdG9wLXdpZHRoOjJweH0uYm9yZGVyLWdyYXktMzAwey0tdW4tYm9yZGVyLW9wYWNpdHk6MTtib3JkZXItY29sb3I6cmdiKDIwOSAyMTMgMjE5L3ZhcigtLXVuLWJvcmRlci1vcGFjaXR5KSl9LmJvcmRlci1ncmVlbi00MDB7LS11bi1ib3JkZXItb3BhY2l0eToxO2JvcmRlci1jb2xvcjpyZ2IoNzQgMjIyIDEyOC92YXIoLS11bi1ib3JkZXItb3BhY2l0eSkpfS5ib3JkZXItcHJpbWFyeXtib3JkZXItY29sb3I6dmFyKC0tY29sb3ItcHJpbWFyeSl9LmJvcmRlci1wcmltYXJ5LWJ1dHRvbntib3JkZXItY29sb3I6dmFyKC0tY29sb3ItcHJpbWFyeS1idXR0b24pfS5ib3JkZXItcmVkLTUwMHstLXVuLWJvcmRlci1vcGFjaXR5OjE7Ym9yZGVyLWNvbG9yOnJnYigyMzkgNjggNjgvdmFyKC0tdW4tYm9yZGVyLW9wYWNpdHkpKX0uYm9yZGVyLXNsYXRlLTIwMHstLXVuLWJvcmRlci1vcGFjaXR5OjE7Ym9yZGVyLWNvbG9yOnJnYigyMjYgMjMyIDI0MC92YXIoLS11bi1ib3JkZXItb3BhY2l0eSkpfS5ib3JkZXItd2hpdGV7LS11bi1ib3JkZXItb3BhY2l0eToxO2JvcmRlci1jb2xvcjpyZ2IoMjU1IDI1NSAyNTUvdmFyKC0tdW4tYm9yZGVyLW9wYWNpdHkpKX0uZm9jdXNcOmJvcmRlci1ibHVlLTUwMDpmb2N1c3stLXVuLWJvcmRlci1vcGFjaXR5OjE7Ym9yZGVyLWNvbG9yOnJnYig1OSAxMzAgMjQ2L3ZhcigtLXVuLWJvcmRlci1vcGFjaXR5KSl9LmJvcmRlci10LW5ldXRyYWwtMTAwey0tdW4tYm9yZGVyLW9wYWNpdHk6MTstLXVuLWJvcmRlci10b3Atb3BhY2l0eTp2YXIoLS11bi1ib3JkZXItb3BhY2l0eSk7Ym9yZGVyLXRvcC1jb2xvcjpyZ2IoMjQ1IDI0NSAyNDUvdmFyKC0tdW4tYm9yZGVyLXRvcC1vcGFjaXR5KSl9LmJvcmRlci1yb3VuZGVkLWZ1bGwsLnJvdW5kZWQtZnVsbHtib3JkZXItcmFkaXVzOjk5OTlweH0ucm91bmRlZC0yLC5yb3VuZGVkLWxne2JvcmRlci1yYWRpdXM6LjVyZW19LnJvdW5kZWQtMnhse2JvcmRlci1yYWRpdXM6MXJlbX0ucm91bmRlZC0zeGwsLnJvdW5kZWQtNntib3JkZXItcmFkaXVzOjEuNXJlbX0ucm91bmRlZC1tZHtib3JkZXItcmFkaXVzOi4zNzVyZW19LnJvdW5kZWQteGx7Ym9yZGVyLXJhZGl1czouNzVyZW19LnJvdW5kZWQtbHtib3JkZXItdG9wLWxlZnQtcmFkaXVzOi4yNXJlbTtib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOi4yNXJlbX0ucm91bmRlZC1sLTN4bHtib3JkZXItdG9wLWxlZnQtcmFkaXVzOjEuNXJlbTtib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjEuNXJlbX0ucm91bmRlZC1ye2JvcmRlci10b3AtcmlnaHQtcmFkaXVzOi4yNXJlbTtib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czouMjVyZW19LnJvdW5kZWQtci0zeGx7Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6MS41cmVtO2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjEuNXJlbX0ucm91bmRlZC10LTZ7Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czoxLjVyZW07Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6MS41cmVtfS5yb3VuZGVkLWxiLTN4bHtib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjEuNXJlbX0ucm91bmRlZC1sdC0zeGx7Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czoxLjVyZW19LnJvdW5kZWQtcmItM3hse2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjEuNXJlbX0ucm91bmRlZC1ydC0zeGx7Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6MS41cmVtfS5ib3JkZXItZGFzaGVke2JvcmRlci1zdHlsZTpkYXNoZWR9LmJvcmRlci1ub25le2JvcmRlci1zdHlsZTpub25lfS5iZy1ibGFja3stLXVuLWJnLW9wYWNpdHk6MTtiYWNrZ3JvdW5kLWNvbG9yOnJnYigwIDAgMC92YXIoLS11bi1iZy1vcGFjaXR5KSkgfS5iZy1ibGFja1wvODB7YmFja2dyb3VuZC1jb2xvcjojMDAwY30uYmctZW1lcmFsZC01MDB7LS11bi1iZy1vcGFjaXR5OjE7YmFja2dyb3VuZC1jb2xvcjpyZ2IoMTYgMTg1IDEyOS92YXIoLS11bi1iZy1vcGFjaXR5KSkgfS5iZy1ncmF5LTIwMHstLXVuLWJnLW9wYWNpdHk6MTtiYWNrZ3JvdW5kLWNvbG9yOnJnYigyMjkgMjMxIDIzNS92YXIoLS11bi1iZy1vcGFjaXR5KSkgfS5iZy1ncmF5LTMwMHstLXVuLWJnLW9wYWNpdHk6MTtiYWNrZ3JvdW5kLWNvbG9yOnJnYigyMDkgMjEzIDIxOS92YXIoLS11bi1iZy1vcGFjaXR5KSkgfS5iZy1ncmF5LTQwMFwvXFtcLjk1XF17YmFja2dyb3VuZC1jb2xvcjojOWNhM2FmZjJ9LmJnLWdyYXktNjAwXC9cW1wuOTVcXXtiYWNrZ3JvdW5kLWNvbG9yOiM0YjU1NjNmMn0uYmctZ3JlZW4tNDAwey0tdW4tYmctb3BhY2l0eToxO2JhY2tncm91bmQtY29sb3I6cmdiKDc0IDIyMiAxMjgvdmFyKC0tdW4tYmctb3BhY2l0eSkpIH0uYmctZ3JlZW4tNTAwey0tdW4tYmctb3BhY2l0eToxO2JhY2tncm91bmQtY29sb3I6cmdiKDM0IDE5NyA5NC92YXIoLS11bi1iZy1vcGFjaXR5KSkgfS5iZy1uZXV0cmFsLTEwMHstLXVuLWJnLW9wYWNpdHk6MTtiYWNrZ3JvdW5kLWNvbG9yOnJnYigyNDUgMjQ1IDI0NS92YXIoLS11bi1iZy1vcGFjaXR5KSkgfS5iZy1uZXV0cmFsLTEwMFwvNTB7YmFja2dyb3VuZC1jb2xvcjojZjVmNWY1ODB9LmJnLW5ldXRyYWwtNjAwXC80MHtiYWNrZ3JvdW5kLWNvbG9yOiM1MjUyNTI2Nn0uYmctb3JhbmdlLTUwMHstLXVuLWJnLW9wYWNpdHk6MTtiYWNrZ3JvdW5kLWNvbG9yOnJnYigyNDkgMTE1IDIyL3ZhcigtLXVuLWJnLW9wYWNpdHkpKSB9LmJnLXByaW1hcnktYnV0dG9ue2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItcHJpbWFyeS1idXR0b24pIH0uYmctcmVkLTUwMHstLXVuLWJnLW9wYWNpdHk6MTtiYWNrZ3JvdW5kLWNvbG9yOnJnYigyMzkgNjggNjgvdmFyKC0tdW4tYmctb3BhY2l0eSkpIH0uYmctcmVkLTYwMHstLXVuLWJnLW9wYWNpdHk6MTtiYWNrZ3JvdW5kLWNvbG9yOnJnYigyMjAgMzggMzgvdmFyKC0tdW4tYmctb3BhY2l0eSkpIH0uYmctc2xhdGUtMTAwey0tdW4tYmctb3BhY2l0eToxO2JhY2tncm91bmQtY29sb3I6cmdiKDI0MSAyNDUgMjQ5L3ZhcigtLXVuLWJnLW9wYWNpdHkpKSB9LmJnLXNsYXRlLTIwMHstLXVuLWJnLW9wYWNpdHk6MTtiYWNrZ3JvdW5kLWNvbG9yOnJnYigyMjYgMjMyIDI0MC92YXIoLS11bi1iZy1vcGFjaXR5KSkgfS5iZy1zbGF0ZS0zMDB7LS11bi1iZy1vcGFjaXR5OjE7YmFja2dyb3VuZC1jb2xvcjpyZ2IoMjAzIDIxMyAyMjUvdmFyKC0tdW4tYmctb3BhY2l0eSkpIH0uYmctc2xhdGUtNDAwey0tdW4tYmctb3BhY2l0eToxO2JhY2tncm91bmQtY29sb3I6cmdiKDE0OCAxNjMgMTg0L3ZhcigtLXVuLWJnLW9wYWNpdHkpKSB9LmJnLXNsYXRlLTUwMHstLXVuLWJnLW9wYWNpdHk6MTtiYWNrZ3JvdW5kLWNvbG9yOnJnYigxMDAgMTE2IDEzOS92YXIoLS11bi1iZy1vcGFjaXR5KSkgfS5iZy10cmFuc3BhcmVudHtiYWNrZ3JvdW5kLWNvbG9yOiMwMDAwfS5iZy13aGl0ZXstLXVuLWJnLW9wYWNpdHk6MTtiYWNrZ3JvdW5kLWNvbG9yOnJnYigyNTUgMjU1IDI1NS92YXIoLS11bi1iZy1vcGFjaXR5KSkgfS5ob3Zlci1iZy1ibGFjazpob3ZlcnstLXVuLWJnLW9wYWNpdHk6MTtiYWNrZ3JvdW5kLWNvbG9yOnJnYigwIDAgMC92YXIoLS11bi1iZy1vcGFjaXR5KSkgfS5ob3Zlci1iZy1lbWVyYWxkLTYwMDpob3ZlcnstLXVuLWJnLW9wYWNpdHk6MTtiYWNrZ3JvdW5kLWNvbG9yOnJnYig1IDE1MCAxMDUvdmFyKC0tdW4tYmctb3BhY2l0eSkpIH0uaG92ZXItYmctcHJpbWFyeS1idXR0b24taG92ZXI6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1wcmltYXJ5LWJ1dHRvbi1ob3ZlcikgfS5ob3Zlci1iZy1wcmltYXJ5LWJ1dHRvbjpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLXByaW1hcnktYnV0dG9uKSB9LmhvdmVyLWJnLXNsYXRlLTEwMDpob3ZlcnstLXVuLWJnLW9wYWNpdHk6MTtiYWNrZ3JvdW5kLWNvbG9yOnJnYigyNDEgMjQ1IDI0OS92YXIoLS11bi1iZy1vcGFjaXR5KSkgfS5ob3Zlci1iZy10cmFuc3BhcmVudDpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOiMwMDAwfS5ob3Zlclw6Ymctc2xhdGUtMTAwOmhvdmVyey0tdW4tYmctb3BhY2l0eToxO2JhY2tncm91bmQtY29sb3I6cmdiKDI0MSAyNDUgMjQ5L3ZhcigtLXVuLWJnLW9wYWNpdHkpKSB9LmJnLW9wYWNpdHktMTAsLmhvdmVyLWJnLW9wYWNpdHktMTA6aG92ZXJ7LS11bi1iZy1vcGFjaXR5Oi4xfS5mcm9tLXdoaXRlXC8xMDB7LS11bi1ncmFkaWVudC1mcm9tLXBvc2l0aW9uOjAlOy0tdW4tZ3JhZGllbnQtZnJvbTojZmZmIHZhcigtLXVuLWdyYWRpZW50LWZyb20tcG9zaXRpb24pOy0tdW4tZ3JhZGllbnQtdG8tcG9zaXRpb246MTAwJTstLXVuLWdyYWRpZW50LXRvOiNmZmYwIHZhcigtLXVuLWdyYWRpZW50LXRvLXBvc2l0aW9uKTstLXVuLWdyYWRpZW50LXN0b3BzOnZhcigtLXVuLWdyYWRpZW50LWZyb20pLCB2YXIoLS11bi1ncmFkaWVudC10byl9LnZpYS13aGl0ZVwvNDB7LS11bi1ncmFkaWVudC12aWEtcG9zaXRpb246NTAlOy0tdW4tZ3JhZGllbnQtdG86I2ZmZjA7LS11bi1ncmFkaWVudC1zdG9wczp2YXIoLS11bi1ncmFkaWVudC1mcm9tKSwgI2ZmZjYgdmFyKC0tdW4tZ3JhZGllbnQtdmlhLXBvc2l0aW9uKSwgdmFyKC0tdW4tZ3JhZGllbnQtdG8pfS52aWEtd2hpdGVcLzUwey0tdW4tZ3JhZGllbnQtdmlhLXBvc2l0aW9uOjUwJTstLXVuLWdyYWRpZW50LXRvOiNmZmYwOy0tdW4tZ3JhZGllbnQtc3RvcHM6dmFyKC0tdW4tZ3JhZGllbnQtZnJvbSksICNmZmZmZmY4MCB2YXIoLS11bi1ncmFkaWVudC12aWEtcG9zaXRpb24pLCB2YXIoLS11bi1ncmFkaWVudC10byl9LnRvLXRyYW5zcGFyZW50ey0tdW4tZ3JhZGllbnQtdG8tcG9zaXRpb246MTAwJTstLXVuLWdyYWRpZW50LXRvOnRyYW5zcGFyZW50IHZhcigtLXVuLWdyYWRpZW50LXRvLXBvc2l0aW9uKX0uZnJvbS0wXCV7LS11bi1ncmFkaWVudC1mcm9tLXBvc2l0aW9uOjAlfS52aWEtNTBcJXstLXVuLWdyYWRpZW50LXZpYS1wb3NpdGlvbjo1MCV9LnZpYS03MFwley0tdW4tZ3JhZGllbnQtdmlhLXBvc2l0aW9uOjcwJX0uYmctZ3JhZGllbnQtdG8tdHstLXVuLWdyYWRpZW50LXNoYXBlOnRvIHRvcCBpbiBva2xjaDstLXVuLWdyYWRpZW50OnZhcigtLXVuLWdyYWRpZW50LXNoYXBlKSwgdmFyKC0tdW4tZ3JhZGllbnQtc3RvcHMpO2JhY2tncm91bmQtaW1hZ2U6bGluZWFyLWdyYWRpZW50KHZhcigtLXVuLWdyYWRpZW50KSl9LmZpbGwtY3VycmVudHtmaWxsOmN1cnJlbnRDb2xvcn0uZmlsbC1wcmltYXJ5LWJ1dHRvbntmaWxsOnZhcigtLWNvbG9yLXByaW1hcnktYnV0dG9uKSB9LmZpbGwtcHJpbWFyeS1idXR0b24tY29udGVudHtmaWxsOnZhcigtLWNvbG9yLXByaW1hcnktYnV0dG9uLWNvbnRlbnQpIH0ub2JqZWN0LWNvbnRhaW57b2JqZWN0LWZpdDpjb250YWlufS5wLTB7cGFkZGluZzowfS5wLTBcLjh7cGFkZGluZzouMnJlbX0ucC0xe3BhZGRpbmc6LjI1cmVtfS5wLTFcLjV7cGFkZGluZzouMzc1cmVtfS5wLTJ7cGFkZGluZzouNXJlbX0ucC0ze3BhZGRpbmc6Ljc1cmVtfS5wLTR7cGFkZGluZzoxcmVtfS5wLTh7cGFkZGluZzoycmVtfS5weCwucHgtNHtwYWRkaW5nLWxlZnQ6MXJlbTtwYWRkaW5nLXJpZ2h0OjFyZW19LnB4LTF7cGFkZGluZy1sZWZ0Oi4yNXJlbTtwYWRkaW5nLXJpZ2h0Oi4yNXJlbX0ucHgtMntwYWRkaW5nLWxlZnQ6LjVyZW07cGFkZGluZy1yaWdodDouNXJlbX0ucHgtM3twYWRkaW5nLWxlZnQ6Ljc1cmVtO3BhZGRpbmctcmlnaHQ6Ljc1cmVtfS5weC04e3BhZGRpbmctbGVmdDoycmVtO3BhZGRpbmctcmlnaHQ6MnJlbX0ucHktMXtwYWRkaW5nLXRvcDouMjVyZW07cGFkZGluZy1ib3R0b206LjI1cmVtfS5weS0ye3BhZGRpbmctdG9wOi41cmVtO3BhZGRpbmctYm90dG9tOi41cmVtfS5weS0yXC41e3BhZGRpbmctdG9wOi42MjVyZW07cGFkZGluZy1ib3R0b206LjYyNXJlbX0ucHktM3twYWRkaW5nLXRvcDouNzVyZW07cGFkZGluZy1ib3R0b206Ljc1cmVtfS5wYi0we3BhZGRpbmctYm90dG9tOjB9LnBiLTF7cGFkZGluZy1ib3R0b206LjI1cmVtfS5wYi0ye3BhZGRpbmctYm90dG9tOi41cmVtfS5wYi0ze3BhZGRpbmctYm90dG9tOi43NXJlbX0ucGItNHtwYWRkaW5nLWJvdHRvbToxcmVtfS5wbC0ye3BhZGRpbmctbGVmdDouNXJlbX0ucGwtNCwuZ3JvdXA6aG92ZXIgLmdyb3VwLWhvdmVyXDpub3QtZmlyc3RcOnBsLTQ6bm90KDpmaXJzdC1jaGlsZCl7cGFkZGluZy1sZWZ0OjFyZW19LnByLTF7cGFkZGluZy1yaWdodDouMjVyZW19LnByLTR7cGFkZGluZy1yaWdodDoxcmVtfS5wdC0xe3BhZGRpbmctdG9wOi4yNXJlbX0ucHQtNntwYWRkaW5nLXRvcDoxLjVyZW19LnB0LTl7cGFkZGluZy10b3A6Mi4yNXJlbX0udGV4dC1jZW50ZXJ7dGV4dC1hbGlnbjpjZW50ZXJ9LnRleHQtbGVmdHt0ZXh0LWFsaWduOmxlZnR9LnRleHQtMnhse2ZvbnQtc2l6ZToxLjVyZW07bGluZS1oZWlnaHQ6MnJlbX0udGV4dC1iYXNle2ZvbnQtc2l6ZToxcmVtO2xpbmUtaGVpZ2h0OjEuNXJlbX0udGV4dC1iYXNlLWlucHV0e2ZvbnQtc2l6ZToxcmVtO2xpbmUtaGVpZ2h0OjEuMjVyZW19LnRleHQtbGd7Zm9udC1zaXplOjEuMTI1cmVtO2xpbmUtaGVpZ2h0OjEuNzVyZW19LnRleHQtc217Zm9udC1zaXplOi44NzVyZW07bGluZS1oZWlnaHQ6MS4yNXJlbX0udGV4dC14c3tmb250LXNpemU6Ljc1cmVtO2xpbmUtaGVpZ2h0OjFyZW19LnRleHQtYmxhY2t7LS11bi10ZXh0LW9wYWNpdHk6MTtjb2xvcjpyZ2IoMCAwIDAvdmFyKC0tdW4tdGV4dC1vcGFjaXR5KSkgfS50ZXh0LWdyYXktMzAwey0tdW4tdGV4dC1vcGFjaXR5OjE7Y29sb3I6cmdiKDIwOSAyMTMgMjE5L3ZhcigtLXVuLXRleHQtb3BhY2l0eSkpIH0udGV4dC1ncmF5LTUwMHstLXVuLXRleHQtb3BhY2l0eToxO2NvbG9yOnJnYigxMDcgMTE0IDEyOC92YXIoLS11bi10ZXh0LW9wYWNpdHkpKSB9LnRleHQtbmV1dHJhbC00MDB7LS11bi10ZXh0LW9wYWNpdHk6MTtjb2xvcjpyZ2IoMTYzIDE2MyAxNjMvdmFyKC0tdW4tdGV4dC1vcGFjaXR5KSkgfS50ZXh0LW5ldXRyYWwtNTAwey0tdW4tdGV4dC1vcGFjaXR5OjE7Y29sb3I6cmdiKDExNSAxMTUgMTE1L3ZhcigtLXVuLXRleHQtb3BhY2l0eSkpIH0udGV4dC1wcmltYXJ5e2NvbG9yOnZhcigtLWNvbG9yLXByaW1hcnkpIH0udGV4dC1wcmltYXJ5LWJ1dHRvbntjb2xvcjp2YXIoLS1jb2xvci1wcmltYXJ5LWJ1dHRvbikgfS50ZXh0LXByaW1hcnktYnV0dG9uLWNvbnRlbnR7Y29sb3I6dmFyKC0tY29sb3ItcHJpbWFyeS1idXR0b24tY29udGVudCkgfS50ZXh0LXByaW1hcnktY29udGVudHtjb2xvcjp2YXIoLS1jb2xvci1wcmltYXJ5LWNvbnRlbnQpIH0udGV4dC1yZWQtNTAwey0tdW4tdGV4dC1vcGFjaXR5OjE7Y29sb3I6cmdiKDIzOSA2OCA2OC92YXIoLS11bi10ZXh0LW9wYWNpdHkpKSB9LnRleHQtc2xhdGUtNDAwey0tdW4tdGV4dC1vcGFjaXR5OjE7Y29sb3I6cmdiKDE0OCAxNjMgMTg0L3ZhcigtLXVuLXRleHQtb3BhY2l0eSkpIH0uY29sb3Itc2xhdGUtNTAwLC50ZXh0LXNsYXRlLTUwMHstLXVuLXRleHQtb3BhY2l0eToxO2NvbG9yOnJnYigxMDAgMTE2IDEzOS92YXIoLS11bi10ZXh0LW9wYWNpdHkpKSB9LnRleHQtc2xhdGUtNjAwey0tdW4tdGV4dC1vcGFjaXR5OjE7Y29sb3I6cmdiKDcxIDg1IDEwNS92YXIoLS11bi10ZXh0LW9wYWNpdHkpKSB9LmNvbG9yLXNsYXRlLTgwMCwudGV4dC1zbGF0ZS04MDB7LS11bi10ZXh0LW9wYWNpdHk6MTtjb2xvcjpyZ2IoMzAgNDEgNTkvdmFyKC0tdW4tdGV4dC1vcGFjaXR5KSkgfS50ZXh0LXdoaXRley0tdW4tdGV4dC1vcGFjaXR5OjE7Y29sb3I6cmdiKDI1NSAyNTUgMjU1L3ZhcigtLXVuLXRleHQtb3BhY2l0eSkpIH0uaG92ZXItdGV4dC1wcmltYXJ5LWJ1dHRvbi1jb250ZW50OmhvdmVye2NvbG9yOnZhcigtLWNvbG9yLXByaW1hcnktYnV0dG9uLWNvbnRlbnQpIH0uaG92ZXJcOnRleHQtZ3JheS00MDA6aG92ZXJ7LS11bi10ZXh0LW9wYWNpdHk6MTtjb2xvcjpyZ2IoMTU2IDE2MyAxNzUvdmFyKC0tdW4tdGV4dC1vcGFjaXR5KSkgfS5ob3Zlclw6dGV4dC1zbGF0ZS04MDA6aG92ZXJ7LS11bi10ZXh0LW9wYWNpdHk6MTtjb2xvcjpyZ2IoMzAgNDEgNTkvdmFyKC0tdW4tdGV4dC1vcGFjaXR5KSkgfS5wbGFjZWhvbGRlclw6dGV4dC1zbGF0ZS0zMDA6OnBsYWNlaG9sZGVyey0tdW4tdGV4dC1vcGFjaXR5OjE7Y29sb3I6cmdiKDIwMyAyMTMgMjI1L3ZhcigtLXVuLXRleHQtb3BhY2l0eSkpIH0uY29sb3ItcmVkLTYwMHstLXVuLXRleHQtb3BhY2l0eToxO2NvbG9yOnJnYigyMjAgMzggMzgvdmFyKC0tdW4tdGV4dC1vcGFjaXR5KSkgfS5ob3Zlclw6Y29sb3Itc2xhdGUtNzAwOmhvdmVyey0tdW4tdGV4dC1vcGFjaXR5OjE7Y29sb3I6cmdiKDUxIDY1IDg1L3ZhcigtLXVuLXRleHQtb3BhY2l0eSkpIH0udGV4dC1vcGFjaXR5LTIwey0tdW4tdGV4dC1vcGFjaXR5Oi4yfS5mb250LTIwMHtmb250LXdlaWdodDoyMDB9LmZvbnQtNTAwLC5mb250LW1lZGl1bXtmb250LXdlaWdodDo1MDB9LmZvbnQtYm9sZHtmb250LXdlaWdodDo3MDB9LmZvbnQtbGlnaHR7Zm9udC13ZWlnaHQ6MzAwfS5mb250LXNlbWlib2xke2ZvbnQtd2VpZ2h0OjYwMH0ubGVhZGluZy1cWzIycHhcXXtsaW5lLWhlaWdodDoyMnB4fS5sZWFkaW5nLTRcLjV7bGluZS1oZWlnaHQ6MS4xMjVyZW19LmxlYWRpbmctNVwuNXtsaW5lLWhlaWdodDoxLjM3NXJlbX0ubGVhZGluZy02e2xpbmUtaGVpZ2h0OjEuNXJlbX0ubGVhZGluZy1ub3JtYWx7bGluZS1oZWlnaHQ6MS41fS5pdGFsaWN7Zm9udC1zdHlsZTppdGFsaWN9LnVuZGVybGluZXt0ZXh0LWRlY29yYXRpb24tbGluZTp1bmRlcmxpbmV9Lm5vLXVuZGVybGluZSwuaG92ZXItbm8tdW5kZXJsaW5lOmhvdmVye3RleHQtZGVjb3JhdGlvbjpub25lfS5vcGFjaXR5LTEwe29wYWNpdHk6LjF9Lm9wYWNpdHktMTAwe29wYWNpdHk6MX0ub3BhY2l0eS0yMHtvcGFjaXR5Oi4yfS5vcGFjaXR5LTMwe29wYWNpdHk6LjN9Lm9wYWNpdHktNjB7b3BhY2l0eTouNn0uc2hhZG93ey0tdW4tc2hhZG93OnZhcigtLXVuLXNoYWRvdy1pbnNldCkgMCAxcHggM3B4IDAgdmFyKC0tdW4tc2hhZG93LWNvbG9yLCMwMDAwMDAxYSksdmFyKC0tdW4tc2hhZG93LWluc2V0KSAwIDFweCAycHggLTFweCB2YXIoLS11bi1zaGFkb3ctY29sb3IsIzAwMDAwMDFhKTtib3gtc2hhZG93OnZhcigtLXVuLXJpbmctb2Zmc2V0LXNoYWRvdyksIHZhcigtLXVuLXJpbmctc2hhZG93KSwgdmFyKC0tdW4tc2hhZG93KX0uc2hhZG93LWxney0tdW4tc2hhZG93OnZhcigtLXVuLXNoYWRvdy1pbnNldCkgMCAxMHB4IDE1cHggLTNweCB2YXIoLS11bi1zaGFkb3ctY29sb3IsIzAwMDAwMDFhKSx2YXIoLS11bi1zaGFkb3ctaW5zZXQpIDAgNHB4IDZweCAtNHB4IHZhcigtLXVuLXNoYWRvdy1jb2xvciwjMDAwMDAwMWEpO2JveC1zaGFkb3c6dmFyKC0tdW4tcmluZy1vZmZzZXQtc2hhZG93KSwgdmFyKC0tdW4tcmluZy1zaGFkb3cpLCB2YXIoLS11bi1zaGFkb3cpfS5zaGFkb3ctbWR7LS11bi1zaGFkb3c6dmFyKC0tdW4tc2hhZG93LWluc2V0KSAwIDRweCA2cHggLTFweCB2YXIoLS11bi1zaGFkb3ctY29sb3IsIzAwMDAwMDFhKSx2YXIoLS11bi1zaGFkb3ctaW5zZXQpIDAgMnB4IDRweCAtMnB4IHZhcigtLXVuLXNoYWRvdy1jb2xvciwjMDAwMDAwMWEpO2JveC1zaGFkb3c6dmFyKC0tdW4tcmluZy1vZmZzZXQtc2hhZG93KSwgdmFyKC0tdW4tcmluZy1zaGFkb3cpLCB2YXIoLS11bi1zaGFkb3cpfS5zaGFkb3ctc217LS11bi1zaGFkb3c6dmFyKC0tdW4tc2hhZG93LWluc2V0KSAwIDFweCAycHggMCB2YXIoLS11bi1zaGFkb3ctY29sb3IsIzAwMDAwMDBkKTtib3gtc2hhZG93OnZhcigtLXVuLXJpbmctb2Zmc2V0LXNoYWRvdyksIHZhcigtLXVuLXJpbmctc2hhZG93KSwgdmFyKC0tdW4tc2hhZG93KX0uZm9jdXMtd2l0aGluXDpvdXRsaW5lLTI6Zm9jdXMtd2l0aGlue291dGxpbmUtd2lkdGg6MnB4fS5mb2N1cy13aXRoaW5cOm91dGxpbmUtcHJpbWFyeS1mb2N1czpmb2N1cy13aXRoaW57b3V0bGluZS1jb2xvcjp2YXIoLS1jb2xvci1wcmltYXJ5LWZvY3VzKSB9Lm91dGxpbmUsLmZvY3VzLXdpdGhpblw6b3V0bGluZS1zb2xpZDpmb2N1cy13aXRoaW57b3V0bGluZS1zdHlsZTpzb2xpZH0ub3V0bGluZS1ub25lLC5mb2N1c1w6b3V0bGluZS1ub25lOmZvY3VzLC5mb2N1cy12aXNpYmxlXDpvdXRsaW5lLW5vbmU6Zm9jdXMtdmlzaWJsZXtvdXRsaW5lLW9mZnNldDoycHg7b3V0bGluZToycHggc29saWQgIzAwMDB9LmZvY3VzLXdpdGhpblw6cmluZy0zOmZvY3VzLXdpdGhpbnstLXVuLXJpbmctd2lkdGg6M3B4Oy0tdW4tcmluZy1vZmZzZXQtc2hhZG93OnZhcigtLXVuLXJpbmctaW5zZXQpIDAgMCAwIHZhcigtLXVuLXJpbmctb2Zmc2V0LXdpZHRoKSB2YXIoLS11bi1yaW5nLW9mZnNldC1jb2xvcik7LS11bi1yaW5nLXNoYWRvdzp2YXIoLS11bi1yaW5nLWluc2V0KSAwIDAgMCBjYWxjKHZhcigtLXVuLXJpbmctd2lkdGgpICsgdmFyKC0tdW4tcmluZy1vZmZzZXQtd2lkdGgpKSB2YXIoLS11bi1yaW5nLWNvbG9yKTtib3gtc2hhZG93OnZhcigtLXVuLXJpbmctb2Zmc2V0LXNoYWRvdyksIHZhcigtLXVuLXJpbmctc2hhZG93KSwgdmFyKC0tdW4tc2hhZG93KX0uZm9jdXMtd2l0aGluXDpyaW5nLW9mZnNldC0xOmZvY3VzLXdpdGhpbnstLXVuLXJpbmctb2Zmc2V0LXdpZHRoOjFweH0uZm9jdXMtd2l0aGluXDpyaW5nLWJsdWUtNDAwOmZvY3VzLXdpdGhpbnstLXVuLXJpbmctb3BhY2l0eToxOy0tdW4tcmluZy1jb2xvcjpyZ2IoOTYgMTY1IDI1MC92YXIoLS11bi1yaW5nLW9wYWNpdHkpKSB9LmZvY3VzXDpyaW5nLWJsdWUtNTAwOmZvY3Vzey0tdW4tcmluZy1vcGFjaXR5OjE7LS11bi1yaW5nLWNvbG9yOnJnYig1OSAxMzAgMjQ2L3ZhcigtLXVuLXJpbmctb3BhY2l0eSkpIH0udHJhbnNpdGlvbnt0cmFuc2l0aW9uLXByb3BlcnR5OmNvbG9yLGJhY2tncm91bmQtY29sb3IsYm9yZGVyLWNvbG9yLHRleHQtZGVjb3JhdGlvbi1jb2xvcixmaWxsLHN0cm9rZSxvcGFjaXR5LGJveC1zaGFkb3csdHJhbnNmb3JtLGZpbHRlciwtd2Via2l0LWJhY2tkcm9wLWZpbHRlcixiYWNrZHJvcC1maWx0ZXI7dHJhbnNpdGlvbi1kdXJhdGlvbjouMTVzO3RyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllciguNCwwLC4yLDEpfS50cmFuc2l0aW9uLWFsbHt0cmFuc2l0aW9uLXByb3BlcnR5OmFsbDt0cmFuc2l0aW9uLWR1cmF0aW9uOi4xNXM7dHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKC40LDAsLjIsMSl9LnRyYW5zaXRpb24tY29sb3Jze3RyYW5zaXRpb24tcHJvcGVydHk6Y29sb3IsYmFja2dyb3VuZC1jb2xvcixib3JkZXItY29sb3IsdGV4dC1kZWNvcmF0aW9uLWNvbG9yLGZpbGwsc3Ryb2tlO3RyYW5zaXRpb24tZHVyYXRpb246LjE1czt0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjpjdWJpYy1iZXppZXIoLjQsMCwuMiwxKX0udHJhbnNpdGlvbi1vcGFjaXR5e3RyYW5zaXRpb24tcHJvcGVydHk6b3BhY2l0eTt0cmFuc2l0aW9uLWR1cmF0aW9uOi4xNXM7dHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKC40LDAsLjIsMSl9LnRyYW5zaXRpb24tcGFkZGluZy00MDB7dHJhbnNpdGlvbi1wcm9wZXJ0eTpwYWRkaW5nO3RyYW5zaXRpb24tZHVyYXRpb246LjRzO3RyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllciguNCwwLC4yLDEpfS50cmFuc2l0aW9uLXRyYW5zZm9ybXt0cmFuc2l0aW9uLXByb3BlcnR5OnRyYW5zZm9ybTt0cmFuc2l0aW9uLWR1cmF0aW9uOi4xNXM7dHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKC40LDAsLjIsMSl9LnRyYW5zaXRpb24td2lkdGgtMjUwe3RyYW5zaXRpb24tcHJvcGVydHk6d2lkdGg7dHJhbnNpdGlvbi1kdXJhdGlvbjouMjVzO3RyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllciguNCwwLC4yLDEpfS5kdXJhdGlvbi0xNTB7dHJhbnNpdGlvbi1kdXJhdGlvbjouMTVzfS5kdXJhdGlvbi0zMDB7dHJhbnNpdGlvbi1kdXJhdGlvbjouM3N9LmR1cmF0aW9uLTc1e3RyYW5zaXRpb24tZHVyYXRpb246NzVtc30uZGVsYXktMHt0cmFuc2l0aW9uLWRlbGF5OjBzfS5lYXNlLWluLW91dHt0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjpjdWJpYy1iZXppZXIoLjQsMCwuMiwxKX0uZWFzZS1vdXR7dHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKDAsMCwuMiwxKX0uY29udGVudC1cW1wiXCJcXXtjb250ZW50OiIifS5iZy1wcmltYXJ5LWdyYWRpZW50e2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDgwZGVnLCB2YXIoLS1jb2xvci1wcmltYXJ5LWdyYWRpZW50LWZyb20pLCB2YXIoLS1jb2xvci1wcmltYXJ5LWdyYWRpZW50LXRvKSAxMzAlKX0uYmctcHJpbWFyeS1ncmFkaWVudC1idXR0b257YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoODBkZWcsIHZhcigtLWNvbG9yLXByaW1hcnktZ3JhZGllbnQtYnV0dG9uLWZyb20pLCB2YXIoLS1jb2xvci1wcmltYXJ5LWdyYWRpZW50LWJ1dHRvbi10bykgMTMwJSl9LmJnLXByaW1hcnktZ3JhZGllbnQtaG92ZXI6aG92ZXJ7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoODBkZWcsIHZhcigtLWNvbG9yLXByaW1hcnktZ3JhZGllbnQtaG92ZXItZnJvbSksIHZhcigtLWNvbG9yLXByaW1hcnktZ3JhZGllbnQtaG92ZXItdG8pIDEzMCUpfS5saW5lLWNsYW1wLTV7LXdlYmtpdC1saW5lLWNsYW1wOjU7LXdlYmtpdC1ib3gtb3JpZW50OnZlcnRpY2FsO2Rpc3BsYXk6LXdlYmtpdC1ib3g7b3ZlcmZsb3c6aGlkZGVufS50eXBpbmctaW5kaWNhdG9yLnN2ZWx0ZS1zNDB4Z2t7Ym9yZGVyLXJhZGl1czo5OTk5cHh9LnR5cGluZy1pbmRpY2F0b3Iuc20uc3ZlbHRlLXM0MHhna3t3aWR0aDouMjVyZW07aGVpZ2h0Oi4yNXJlbX0udHlwaW5nLWluZGljYXRvci5tZC5zdmVsdGUtczQweGdre3dpZHRoOi41cmVtO2hlaWdodDouNXJlbX0udHlwaW5nLWluZGljYXRvci5pbmRpY2F0b3ItY29sb3ItYmxhY2suc3ZlbHRlLXM0MHhna3stLXVuLWJnLW9wYWNpdHk6MTtiYWNrZ3JvdW5kLWNvbG9yOnJnYigwIDAgMC92YXIoLS11bi1iZy1vcGFjaXR5KSkgfS50eXBpbmctaW5kaWNhdG9yLmluZGljYXRvci1jb2xvci1ncmF5LnN2ZWx0ZS1zNDB4Z2t7LS11bi1iZy1vcGFjaXR5OjE7YmFja2dyb3VuZC1jb2xvcjpyZ2IoMTAwIDExNiAxMzkvdmFyKC0tdW4tYmctb3BhY2l0eSkpIH0udHlwaW5nLWluZGljYXRvci5zdmVsdGUtczQweGdrOm5vdCg6Zmlyc3QtY2hpbGQpe21hcmdpbi1sZWZ0Oi4yNXJlbX0udHlwaW5nLWluZGljYXRvci1zZWNvbmQuc3ZlbHRlLXM0MHhna3thbmltYXRpb24tZGVsYXk6LjFzfS50eXBpbmctaW5kaWNhdG9yLXRoaXJkLnN2ZWx0ZS1zNDB4Z2t7YW5pbWF0aW9uLWRlbGF5Oi4yc30uYnRuLnN2ZWx0ZS0xZTg0bjd3e2JvcmRlci1yYWRpdXM6MS41cmVtO2p1c3RpZnktY29udGVudDpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO3BhZGRpbmctbGVmdDoxcmVtO3BhZGRpbmctcmlnaHQ6MXJlbTt0cmFuc2l0aW9uLXByb3BlcnR5OmFsbDt0cmFuc2l0aW9uLWR1cmF0aW9uOi4xNXM7dHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKC40LDAsLjIsMSk7ZGlzcGxheTppbmxpbmUtZmxleH0uYnRuLXByaW1hcnkuc3ZlbHRlLTFlODRuN3d7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1wcmltYXJ5LWJ1dHRvbikgO2NvbG9yOnZhcigtLWNvbG9yLXByaW1hcnktYnV0dG9uLWNvbnRlbnQpIH0uYnRuLXByaW1hcnkuc3ZlbHRlLTFlODRuN3c6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1wcmltYXJ5LWJ1dHRvbi1ob3ZlcikgfS5idG4tb3V0bGluZS5zdmVsdGUtMWU4NG43d3tib3JkZXItd2lkdGg6MXB4O2JvcmRlci1jb2xvcjp2YXIoLS1jb2xvci1wcmltYXJ5LWJ1dHRvbik7LS11bi1iZy1vcGFjaXR5OjE7YmFja2dyb3VuZC1jb2xvcjpyZ2IoMjU1IDI1NSAyNTUvdmFyKC0tdW4tYmctb3BhY2l0eSkpIDstLXVuLXRleHQtb3BhY2l0eToxO2NvbG9yOnJnYigwIDAgMC92YXIoLS11bi10ZXh0LW9wYWNpdHkpKSB9LmJ0bi1vdXRsaW5lLnN2ZWx0ZS0xZTg0bjd3OmhvdmVye2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItcHJpbWFyeS1idXR0b24pIDtjb2xvcjp2YXIoLS1jb2xvci1wcmltYXJ5LWJ1dHRvbi1jb250ZW50KSB9LmJ0bi1yYWlzZWQuc3ZlbHRlLTFlODRuN3d7LS11bi1iZy1vcGFjaXR5OjE7YmFja2dyb3VuZC1jb2xvcjpyZ2IoMjU1IDI1NSAyNTUvdmFyKC0tdW4tYmctb3BhY2l0eSkpIDstLXVuLXRleHQtb3BhY2l0eToxO2NvbG9yOnJnYigxMDAgMTE2IDEzOS92YXIoLS11bi10ZXh0LW9wYWNpdHkpKSA7Ym94LXNoYWRvdzowIDJweCA2cHggIzAwMDAwMDI5fS5idG4tcmFpc2VkLnN2ZWx0ZS0xZTg0bjd3OmhvdmVyey0tdW4tYmctb3BhY2l0eToxO2JhY2tncm91bmQtY29sb3I6cmdiKDI0MSAyNDUgMjQ5L3ZhcigtLXVuLWJnLW9wYWNpdHkpKSB9LmJ0bi1zbS5zdmVsdGUtMWU4NG43d3toZWlnaHQ6MnJlbX0uYnRuLW1kLnN2ZWx0ZS0xZTg0bjd3e2hlaWdodDoyLjVyZW19LmJ0bi1sZy5zdmVsdGUtMWU4NG43d3toZWlnaHQ6M3JlbX0uYnRuLWRpc2FibGVkLnN2ZWx0ZS0xZTg0bjd3e2N1cnNvcjpub3QtYWxsb3dlZDtvcGFjaXR5Oi4yfS5kYXJrLnN2ZWx0ZS1zajk5aDN7YmFja2dyb3VuZC1jb2xvcjojNGI1NTYzZjI7cGFkZGluZzouNXJlbSAuNzVyZW19LmxpZ2h0LnN2ZWx0ZS1zajk5aDN7YmFja2dyb3VuZC1jb2xvcjojOWNhM2FmZjI7cGFkZGluZzouMjVyZW0gLjVyZW19c3ZnLnN2ZWx0ZS15aXhoYXR7ZmlsbDpjdXJyZW50Q29sb3I7d2lkdGg6MWVtO2hlaWdodDoxZW19LmNhcm91c2VsLnN2ZWx0ZS0xMHFxanpke2p1c3RpZnktY29udGVudDpzdGFydDthbGlnbi1pdGVtczpzdGFydDt3aWR0aDoxMDAlfS5jYXJvdXNlbC5zdmVsdGUtMTBxcWp6ZDpob3ZlciAuYnV0dG9uOndoZXJlKC5zdmVsdGUtMTBxcWp6ZCksLmNhcm91c2VsLnN2ZWx0ZS0xMHFxanpkOmZvY3VzLXdpdGhpbiAuYnV0dG9uOndoZXJlKC5zdmVsdGUtMTBxcWp6ZCl7b3BhY2l0eToxfS5idXR0b24uc3ZlbHRlLTEwcXFqemR7b3BhY2l0eTowO3otaW5kZXg6MTtiYWNrZ3JvdW5kLWNvbG9yOiMwMDAwO2JvcmRlcjpub25lO3RyYW5zaXRpb246b3BhY2l0eSAuNHM7cG9zaXRpb246YWJzb2x1dGV9LmxlZnQuc3ZlbHRlLTEwcXFqemR7bGVmdDotMWVtfS5yaWdodC5zdmVsdGUtMTBxcWp6ZHtyaWdodDotMWVtfS5tZXNzYWdlLWNvbnRlbnQtaHRtbCB1bHttYXJnaW4tcmlnaHQ6LjI1cmVtO3BhZGRpbmctbGVmdDoxcmVtO2xpc3Qtc3R5bGUtdHlwZTpkaXNjfS5tZXNzYWdlLWNvbnRlbnQtaHRtbCBsaTpub3QoOmZpcnN0LWNoaWxkKSwubWVzc2FnZS1jb250ZW50LWh0bWwgbGk+dWwsLm1lc3NhZ2UtY29udGVudC1odG1sIGxpPm9se21hcmdpbi10b3A6LjVyZW19Lm1lc3NhZ2UtY29udGVudC1odG1sIG9se21hcmdpbi1yaWdodDouMjVyZW07cGFkZGluZy1sZWZ0OjFyZW07bGlzdC1zdHlsZS10eXBlOmRlY2ltYWx9Lm1lc3NhZ2UtY29udGVudC1odG1sIGF7dGV4dC1kZWNvcmF0aW9uLWxpbmU6dW5kZXJsaW5lfS5tZXNzYWdlLWNvbnRlbnQtaHRtbCBhOmhvdmVye3RleHQtZGVjb3JhdGlvbjpub25lfS5tZXNzYWdlLWNvbnRlbnQtaHRtbCAqe3doaXRlLXNwYWNlOm5vcm1hbDtvdmVyZmxvdy13cmFwOmJyZWFrLXdvcmR9Lm1lc3NhZ2UtY29udGVudC10ZXh0LnN2ZWx0ZS1uZmIweW17b3ZlcmZsb3ctd3JhcDpicmVhay13b3JkO3dvcmQtYnJlYWs6YnJlYWstd29yZDt3aGl0ZS1zcGFjZTpwcmUtd3JhcH0ubWVzc2FnZS1jb250ZW50LXRleHQgYXt0ZXh0LWRlY29yYXRpb24tbGluZTp1bmRlcmxpbmV9Lm1lc3NhZ2UtY29udGVudC10ZXh0IGE6aG92ZXJ7dGV4dC1kZWNvcmF0aW9uOm5vbmV9LmF2YXRhci1ncm91cC1pdGVtLnN2ZWx0ZS15ZnhhN3Q6Zmlyc3Qtb2YtdHlwZXt6LWluZGV4OjN9LmF2YXRhci1ncm91cC1pdGVtLnN2ZWx0ZS15ZnhhN3Q6bnRoLW9mLXR5cGUoMil7ei1pbmRleDoyfS5hdmF0YXItZ3JvdXAtaXRlbS5zdmVsdGUteWZ4YTd0Om50aC1vZi10eXBlKDMpe3otaW5kZXg6MX0uYXZhdGFyLXNtLnN2ZWx0ZS15ZnhhN3Q6bm90KDpmaXJzdC1jaGlsZCl7bWFyZ2luLWxlZnQ6LTEycHh9LmF2YXRhci1tZC5zdmVsdGUteWZ4YTd0Om5vdCg6Zmlyc3QtY2hpbGQpe21hcmdpbi1sZWZ0Oi0xNnB4fS5hdmF0YXItbGcuc3ZlbHRlLXlmeGE3dDpub3QoOmZpcnN0LWNoaWxkKXttYXJnaW4tbGVmdDotMjJweH0ucmVtb3ZlSWNvbi5zdmVsdGUtMTFmM2Jkd3tvcGFjaXR5OjA7dHJhbnNpdGlvbi1wcm9wZXJ0eTpvcGFjaXR5O3RyYW5zaXRpb24tZHVyYXRpb246LjE1czt0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjpjdWJpYy1iZXppZXIoLjQsMCwuMiwxKX0uYXR0YWNobWVudFdyYXBwZXIuc3ZlbHRlLTExZjNiZHc6aG92ZXIgLnJlbW92ZUljb246d2hlcmUoLnN2ZWx0ZS0xMWYzYmR3KSwuYXR0YWNobWVudFdyYXBwZXIuc3ZlbHRlLTExZjNiZHc6Zm9jdXMtd2l0aGluIC5yZW1vdmVJY29uOndoZXJlKC5zdmVsdGUtMTFmM2Jkdyl7b3BhY2l0eToxfS50ZXh0YXJlYS1jb250YWluZXIuc3ZlbHRlLTF0bDlsY2V7b3ZlcnNjcm9sbC1iZWhhdmlvcjpjb250YWluO3Njcm9sbGJhci13aWR0aDpub25lO2ZsZXg6MTttYXgtaGVpZ2h0OjMycHg7bWFyZ2luLXRvcDouNzVyZW07bWFyZ2luLWJvdHRvbTouNzVyZW07ZGlzcGxheTpncmlkO292ZXJmbG93OmhpZGRlbiBhdXRvfS50ZXh0YXJlYS1jb250YWluZXIuc3ZlbHRlLTF0bDlsY2U6Oi13ZWJraXQtc2Nyb2xsYmFye2Rpc3BsYXk6bm9uZX0udGV4dGFyZWEtY29udGFpbmVyLXJlc2l6YWJsZS5zdmVsdGUtMXRsOWxjZXttYXgtaGVpZ2h0OjEyNXB4fS50ZXh0YXJlYS1jb250YWluZXIuc3ZlbHRlLTF0bDlsY2U6YWZ0ZXJ7Y29udGVudDphdHRyKGRhdGEtdGV4dGFyZWEtdmFsdWUpICIgIjt3aGl0ZS1zcGFjZTpwcmUtd3JhcDt2aXNpYmlsaXR5OmhpZGRlbjtvdmVyZmxvdy13cmFwOmJyZWFrLXdvcmQ7d29yZC1icmVhazpicmVhay13b3JkfS50ZXh0YXJlYS1jb250YWluZXIuc3ZlbHRlLTF0bDlsY2U6YWZ0ZXIsdGV4dGFyZWEuc3ZlbHRlLTF0bDlsY2V7Zm9udC1zaXplOmluaGVyaXQ7Z3JpZC1hcmVhOjEvMS8yLzI7bWFyZ2luLWxlZnQ6MXJlbTttYXJnaW4tcmlnaHQ6Ljc1cmVtfXRleHRhcmVhLnN2ZWx0ZS0xdGw5bGNlOjpwbGFjZWhvbGRlcnt3b3JkLWJyZWFrOmJyZWFrLWFsbDtvdmVyZmxvdzpoaWRkZW59ZW0tZW1vamktcGlja2Vyey0tYm9yZGVyLXJhZGl1czoxMnB4Oy0tdW4tYm9yZGVyLW9wYWNpdHk6MTtib3JkZXItd2lkdGg6MXB4O2JvcmRlci1jb2xvcjpyZ2IoMjI2IDIzMiAyNDAvdmFyKC0tdW4tYm9yZGVyLW9wYWNpdHkpKTtib3JkZXItcmFkaXVzOi43NXJlbTt3aWR0aDoxMDAlO2hlaWdodDo0MDBweDttYXgtaGVpZ2h0Ojgwdmg7cGFkZGluZy10b3A6LjI1cmVtO2JveC1zaGFkb3c6MCAxcHggMTVweCAxcHggIzAwMDAwMDFmfS5zd2l0Y2guc3ZlbHRlLTF5emZ6em97LS11bi1iZy1vcGFjaXR5OjE7YmFja2dyb3VuZC1jb2xvcjpyZ2IoMjI5IDIzMSAyMzUvdmFyKC0tdW4tYmctb3BhY2l0eSkpIDtib3JkZXItcmFkaXVzOjk5OTlweDt3aWR0aDoyLjc1cmVtO2hlaWdodDoxLjVyZW07dHJhbnNpdGlvbi1wcm9wZXJ0eTpjb2xvcixiYWNrZ3JvdW5kLWNvbG9yLGJvcmRlci1jb2xvcix0ZXh0LWRlY29yYXRpb24tY29sb3IsZmlsbCxzdHJva2U7dHJhbnNpdGlvbi1kdXJhdGlvbjouMTVzO3RyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllciguNCwwLC4yLDEpfS5zd2l0Y2guc3ZlbHRlLTF5emZ6em86Zm9jdXN7b3V0bGluZS1vZmZzZXQ6MnB4O291dGxpbmU6MnB4IHNvbGlkICMwMDAwfS5zd2l0Y2guc3ZlbHRlLTF5emZ6em86YWZ0ZXJ7LS11bi1ib3JkZXItb3BhY2l0eToxO2JvcmRlci13aWR0aDoxcHg7Ym9yZGVyLWNvbG9yOnJnYigyMDkgMjEzIDIxOS92YXIoLS11bi1ib3JkZXItb3BhY2l0eSkpOy0tdW4tYmctb3BhY2l0eToxO2JhY2tncm91bmQtY29sb3I6cmdiKDI0NSAyNDUgMjQ1L3ZhcigtLXVuLWJnLW9wYWNpdHkpKSA7Y29udGVudDoiIjtib3JkZXItcmFkaXVzOjk5OTlweDt3aWR0aDoxLjI1cmVtO2hlaWdodDoxLjI1cmVtO3RyYW5zaXRpb24tcHJvcGVydHk6dHJhbnNmb3JtO3RyYW5zaXRpb24tZHVyYXRpb246LjE1czt0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjpjdWJpYy1iZXppZXIoLjQsMCwuMiwxKTtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MnB4O2xlZnQ6MnB4fS5zd2l0Y2guY2hlY2tlZC5zdmVsdGUtMXl6Znp6b3tiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLXByaW1hcnktYnV0dG9uKSB9LnN3aXRjaC5jaGVja2VkLnN2ZWx0ZS0xeXpmenpvOmFmdGVyey0tdW4tdHJhbnNsYXRlLXg6MTAwJTt0cmFuc2Zvcm06dHJhbnNsYXRlWCh2YXIoLS11bi10cmFuc2xhdGUteCkpIHRyYW5zbGF0ZVkodmFyKC0tdW4tdHJhbnNsYXRlLXkpKSB0cmFuc2xhdGVaKHZhcigtLXVuLXRyYW5zbGF0ZS16KSkgcm90YXRlKHZhcigtLXVuLXJvdGF0ZSkpIHJvdGF0ZVgodmFyKC0tdW4tcm90YXRlLXgpKSByb3RhdGVZKHZhcigtLXVuLXJvdGF0ZS15KSkgcm90YXRlWih2YXIoLS11bi1yb3RhdGUteikpIHNrZXdYKHZhcigtLXVuLXNrZXcteCkpIHNrZXdZKHZhcigtLXVuLXNrZXcteSkpIHNjYWxlWCh2YXIoLS11bi1zY2FsZS14KSkgc2NhbGVZKHZhcigtLXVuLXNjYWxlLXkpKSBzY2FsZVoodmFyKC0tdW4tc2NhbGUteikpOy0tdW4tYmctb3BhY2l0eToxO2JhY2tncm91bmQtY29sb3I6cmdiKDI0NSAyNDUgMjQ1L3ZhcigtLXVuLWJnLW9wYWNpdHkpKSB9LmludmFsaWQuc3ZlbHRlLTEyZjRjMWcsLmludmFsaWQuc3ZlbHRlLTE5bTN1Y3l7LS11bi1ib3JkZXItb3BhY2l0eToxO2JvcmRlci1jb2xvcjpyZ2IoMjM5IDY4IDY4L3ZhcigtLXVuLWJvcmRlci1vcGFjaXR5KSl9c2VsZWN0LnN2ZWx0ZS04aDVycTR7YXBwZWFyYW5jZTpub25lO2JhY2tncm91bmQtaW1hZ2U6dXJsKCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD11dGYtOCwlM0NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyBmaWxsPSdub25lJyB2aWV3Qm94PScwIDAgMjAgMjAnJTNFJTNDcGF0aCBzdHJva2U9JyUyMzZCNzI4MCcgc3Ryb2tlLWxpbmVjYXA9J3JvdW5kJyBzdHJva2UtbGluZWpvaW49J3JvdW5kJyBzdHJva2Utd2lkdGg9JzEuNScgZD0nbTYgOCA0IDQgNC00Jy8lM0UlM0Mvc3ZnJTNFIik7YmFja2dyb3VuZC1wb3NpdGlvbjpyaWdodCAuNXJlbSBjZW50ZXI7YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0O2JhY2tncm91bmQtc2l6ZToxLjVlbSAxLjVlbX0uaW52YWxpZC5zdmVsdGUtOGg1cnE0ey0tdW4tYm9yZGVyLW9wYWNpdHk6MTtib3JkZXItY29sb3I6cmdiKDIzOSA2OCA2OC92YXIoLS11bi1ib3JkZXItb3BhY2l0eSkpfS5pY29uLnN2ZWx0ZS0xcnNhMnF2e2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItcHJpbWFyeS1idXR0b24pIDtjb2xvcjp2YXIoLS1jb2xvci1wcmltYXJ5LWJ1dHRvbi1jb250ZW50KSA7Ym9yZGVyLXJhZGl1czoxLjVyZW07cGFkZGluZzouNXJlbTtkaXNwbGF5OmlubGluZS1ibG9jaztwb3NpdGlvbjpyZWxhdGl2ZX0uZHJhd2VyLWJ1dHRvbi5zdmVsdGUtajZleHEwe3RleHQtYWxpZ246bGVmdDtib3JkZXItcmFkaXVzOi41cmVtO2FsaWduLWl0ZW1zOmNlbnRlcjt3aWR0aDoxMDAlO3BhZGRpbmc6LjVyZW07dHJhbnNpdGlvbjpjb2xvciA3NW1zIGN1YmljLWJlemllciguNCwwLC4yLDEpLGJhY2tncm91bmQtY29sb3IgNzVtcyBjdWJpYy1iZXppZXIoLjQsMCwuMiwxKSxib3JkZXItY29sb3IgNzVtcyBjdWJpYy1iZXppZXIoLjQsMCwuMiwxKSx0ZXh0LWRlY29yYXRpb24tY29sb3IgNzVtcyBjdWJpYy1iZXppZXIoLjQsMCwuMiwxKSxmaWxsIDc1bXMgY3ViaWMtYmV6aWVyKC40LDAsLjIsMSksc3Ryb2tlIDc1bXMgY3ViaWMtYmV6aWVyKC40LDAsLjIsMSk7ZGlzcGxheTpmbGV4fS5kcmF3ZXItYnV0dG9uLnN2ZWx0ZS1qNmV4cTA6aG92ZXJ7LS11bi1iZy1vcGFjaXR5OjE7YmFja2dyb3VuZC1jb2xvcjpyZ2IoMjQ1IDI0NSAyNDUvdmFyKC0tdW4tYmctb3BhY2l0eSkpIH0uZHJhd2VyLWJ1dHRvbi1kaXNhYmxlZC5zdmVsdGUtajZleHEwe3RleHQtYWxpZ246bGVmdDtvcGFjaXR5Oi4zO2JvcmRlci1yYWRpdXM6LjVyZW07YWxpZ24taXRlbXM6Y2VudGVyO3dpZHRoOjEwMCU7cGFkZGluZzouNXJlbTtkaXNwbGF5OmZsZXh9LmRyYXdlci1idXR0b24tZGlzYWJsZWQuc3ZlbHRlLWo2ZXhxMDpob3ZlcntjdXJzb3I6bm90LWFsbG93ZWR9LmRyYXdlci1zd2l0Y2guc3ZlbHRlLTFqZXN4dGN7LXdlYmtpdC11c2VyLXNlbGVjdDpub25lO3VzZXItc2VsZWN0Om5vbmU7dGV4dC1hbGlnbjpsZWZ0O2JvcmRlci1yYWRpdXM6LjVyZW07YWxpZ24taXRlbXM6Y2VudGVyO3dpZHRoOjEwMCU7cGFkZGluZzouNXJlbTt0cmFuc2l0aW9uOmNvbG9yIDc1bXMgY3ViaWMtYmV6aWVyKC40LDAsLjIsMSksYmFja2dyb3VuZC1jb2xvciA3NW1zIGN1YmljLWJlemllciguNCwwLC4yLDEpLGJvcmRlci1jb2xvciA3NW1zIGN1YmljLWJlemllciguNCwwLC4yLDEpLHRleHQtZGVjb3JhdGlvbi1jb2xvciA3NW1zIGN1YmljLWJlemllciguNCwwLC4yLDEpLGZpbGwgNzVtcyBjdWJpYy1iZXppZXIoLjQsMCwuMiwxKSxzdHJva2UgNzVtcyBjdWJpYy1iZXppZXIoLjQsMCwuMiwxKTtkaXNwbGF5OmZsZXh9LmRyYXdlci1zd2l0Y2guc3ZlbHRlLTFqZXN4dGM6aG92ZXJ7LS11bi1iZy1vcGFjaXR5OjE7YmFja2dyb3VuZC1jb2xvcjpyZ2IoMjQ1IDI0NSAyNDUvdmFyKC0tdW4tYmctb3BhY2l0eSkpIH0ubWVzc2FnZS1jb250ZW50LnN2ZWx0ZS0xZ2Z2aGk2e292ZXJmbG93LXdyYXA6YnJlYWstd29yZDt3b3JkLWJyZWFrOmJyZWFrLXdvcmQ7d2hpdGUtc3BhY2U6cHJlLXdyYXB9Lm1lc3NhZ2UtY29udGVudC1sZWZ0LnN2ZWx0ZS0xZ2Z2aGk2e2JvcmRlci1yYWRpdXM6LjI1cmVtIDEuNXJlbSAxLjVyZW0gLjI1cmVtfS5tZXNzYWdlLWNvbnRlbnQtbGVmdC1maXJzdC5zdmVsdGUtMWdmdmhpNntib3JkZXItdG9wLWxlZnQtcmFkaXVzOjEuNXJlbX0ubWVzc2FnZS1jb250ZW50LWxlZnQtbGFzdC5zdmVsdGUtMWdmdmhpNntib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjEuNXJlbX0ubWVzc2FnZS1jb250ZW50LXJpZ2h0LnN2ZWx0ZS0xZ2Z2aGk2e2JvcmRlci1yYWRpdXM6MS41cmVtIC4yNXJlbSAuMjVyZW0gMS41cmVtfS5tZXNzYWdlLWNvbnRlbnQtcmlnaHQtZmlyc3Quc3ZlbHRlLTFnZnZoaTZ7Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6MS41cmVtfS5tZXNzYWdlLWNvbnRlbnQtcmlnaHQtbGFzdC5zdmVsdGUtMWdmdmhpNntib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czoxLjVyZW19LmNvdW50LWFuaW1hdGUuc3ZlbHRlLTIyOGM3bnthbmltYXRpb246LjJzIGN1YmljLWJlemllciguNCwyLC42LDEpIHN2ZWx0ZS0yMjhjN24tcG9wLXNjYWxlfUBrZXlmcmFtZXMgc3ZlbHRlLTIyOGM3bi1wb3Atc2NhbGV7MCV7dHJhbnNmb3JtOnNjYWxlKDEpfTUwJXt0cmFuc2Zvcm06c2NhbGUoMS4xKX10b3t0cmFuc2Zvcm06c2NhbGUoMSl9fQovKiR2aXRlJDoxKi8="}},"time_used":27,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":27,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/88906.0d650469c9c843577b47.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:12.969Z","timestamp":1785148032969,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/88906.0d650469c9c843577b47.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:12 GMT\r\ncontent-type: text/css; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a61b1a8-5029\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Thu, 23 Jul 2026 06:16:08 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/23/2026 10:17:23\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 9e7cb0f3d9a65301d015bf180ec676a3\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":20521,"size_decoded":4225,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with very long lines (20521), with no line terminators","md5":"4a51ba6d12ee0610b5d72dd27e711a99","sha1":"aad2a74218259b98d0471539beaba1a0f6d22f98","sha256":"701de67c496f57ecf6702cbf74570ac82c16d20f7661b5336e4b57faaf99a48b","sha512":"ae10205cd98ebe930ec6b30d92db97e27eb3811af4aac3da8ad6e32444c18b650cfb62f89d379fb2f320f1dcdf197bedd1e7fae73ad4ca5af2a4c0ce0a964737","ssdeep":"384:lN346M/4UZch+iBcHuNeCB/H1nVdx2Z1L:g6M/46ch8","tlshash":"eb929cadef35f639e43d972bd7a3789f3910d7caae13469ba2d4141504cabe34122c84","first_seen":"2026-07-23T13:54:09.175898Z","last_seen":"2026-07-27T12:53:06.229967Z","times_seen":288,"resource_available":false,"data":"OnJvb3QsW2RhdGEtcXVlcnktdHlwZT1jb250YWluZXJdPip7LS12LXJoeXRobS1oZWFkZXItMS1zcGFjZS1waG9uZTo1NnB4Oy0tdi1yaHl0aG0taGVhZGVyLTEtc3BhY2UtdGFibGV0OjgwcHg7LS12LXJoeXRobS1oZWFkZXItMS1zcGFjZS1sYXB0b3A6MTAwcHg7LS12LXJoeXRobS1oZWFkZXItMS1zcGFjZS1kZXNrdG9wOjEyMHB4Oy0tdi1yaHl0aG0taGVhZGVyLTItc3BhY2UtcGhvbmU6MTZweDstLXYtcmh5dGhtLWhlYWRlci0yLXNwYWNlLXRhYmxldDoyNHB4Oy0tdi1yaHl0aG0taGVhZGVyLTItc3BhY2UtbGFwdG9wOjMycHg7LS12LXJoeXRobS1oZWFkZXItMi1zcGFjZS1kZXNrdG9wOjQwcHg7LS12LXJoeXRobS1oZWFkZXItMy1zcGFjZS1waG9uZToxNnB4Oy0tdi1yaHl0aG0taGVhZGVyLTMtc3BhY2UtdGFibGV0OjE2cHg7LS12LXJoeXRobS1oZWFkZXItMy1zcGFjZS1sYXB0b3A6MjRweDstLXYtcmh5dGhtLWhlYWRlci0zLXNwYWNlLWRlc2t0b3A6MjRweDstLXYtcmh5dGhtLWZvb3Rlci0xLXNwYWNlLXBob25lOjU2cHg7LS12LXJoeXRobS1mb290ZXItMS1zcGFjZS10YWJsZXQ6ODBweDstLXYtcmh5dGhtLWZvb3Rlci0xLXNwYWNlLWxhcHRvcDoxMDBweDstLXYtcmh5dGhtLWZvb3Rlci0xLXNwYWNlLWRlc2t0b3A6MTIwcHg7LS12LXJoeXRobS1mb290ZXItMi1zcGFjZS1waG9uZToxNnB4Oy0tdi1yaHl0aG0tZm9vdGVyLTItc3BhY2UtdGFibGV0OjI0cHg7LS12LXJoeXRobS1mb290ZXItMi1zcGFjZS1sYXB0b3A6MzJweDstLXYtcmh5dGhtLWZvb3Rlci0yLXNwYWNlLWRlc2t0b3A6NDBweDstLXYtcmh5dGhtLWZvb3Rlci0zLXNwYWNlLXBob25lOjE2cHg7LS12LXJoeXRobS1mb290ZXItMy1zcGFjZS10YWJsZXQ6MTZweDstLXYtcmh5dGhtLWZvb3Rlci0zLXNwYWNlLWxhcHRvcDoyNHB4Oy0tdi1yaHl0aG0tZm9vdGVyLTMtc3BhY2UtZGVza3RvcDoyNHB4Oy0tdi1yaHl0aG0tc3BhY2luZy0xLXBob25lOjgwcHg7LS12LXJoeXRobS1zcGFjaW5nLTEtdGFibGV0OjEyMHB4Oy0tdi1yaHl0aG0tc3BhY2luZy0xLWxhcHRvcDoxNjBweDstLXYtcmh5dGhtLXNwYWNpbmctMS1kZXNrdG9wOjIwMHB4Oy0tdi1yaHl0aG0tc3BhY2luZy0yLXBob25lOjY0cHg7LS12LXJoeXRobS1zcGFjaW5nLTItdGFibGV0Ojg4cHg7LS12LXJoeXRobS1zcGFjaW5nLTItbGFwdG9wOjEyMHB4Oy0tdi1yaHl0aG0tc3BhY2luZy0yLWRlc2t0b3A6MTYwcHg7LS12LXJoeXRobS1zcGFjaW5nLTMtcGhvbmU6NDhweDstLXYtcmh5dGhtLXNwYWNpbmctMy10YWJsZXQ6NjRweDstLXYtcmh5dGhtLXNwYWNpbmctMy1sYXB0b3A6ODhweDstLXYtcmh5dGhtLXNwYWNpbmctMy1kZXNrdG9wOjEyMHB4Oy0tdi1yaHl0aG0tc3BhY2luZy00LXBob25lOjQ4cHg7LS12LXJoeXRobS1zcGFjaW5nLTQtdGFibGV0OjQ4cHg7LS12LXJoeXRobS1zcGFjaW5nLTQtbGFwdG9wOjY0cHg7LS12LXJoeXRobS1zcGFjaW5nLTQtZGVza3RvcDo4MHB4Oy0tdi1yaHl0aG0tc3BhY2luZy01LXBob25lOjMycHg7LS12LXJoeXRobS1zcGFjaW5nLTUtdGFibGV0OjMycHg7LS12LXJoeXRobS1zcGFjaW5nLTUtbGFwdG9wOjQwcHg7LS12LXJoeXRobS1zcGFjaW5nLTUtZGVza3RvcDo0OHB4Oy0tdi1yaHl0aG0taGVhZGVyLTEtc3BhY2U6dmFyKC0tdi1yaHl0aG0taGVhZGVyLTEtc3BhY2UtcGhvbmUpOy0tdi1yaHl0aG0taGVhZGVyLTItc3BhY2U6dmFyKC0tdi1yaHl0aG0taGVhZGVyLTItc3BhY2UtcGhvbmUpOy0tdi1yaHl0aG0taGVhZGVyLTMtc3BhY2U6dmFyKC0tdi1yaHl0aG0taGVhZGVyLTMtc3BhY2UtcGhvbmUpOy0tdi1yaHl0aG0tZm9vdGVyLTEtc3BhY2U6dmFyKC0tdi1yaHl0aG0tZm9vdGVyLTEtc3BhY2UtcGhvbmUpOy0tdi1yaHl0aG0tZm9vdGVyLTItc3BhY2U6dmFyKC0tdi1yaHl0aG0tZm9vdGVyLTItc3BhY2UtcGhvbmUpOy0tdi1yaHl0aG0tZm9vdGVyLTMtc3BhY2U6dmFyKC0tdi1yaHl0aG0tZm9vdGVyLTMtc3BhY2UtcGhvbmUpOy0tdi1yaHl0aG0tc3BhY2luZy0xOnZhcigtLXYtcmh5dGhtLXNwYWNpbmctMS1waG9uZSk7LS12LXJoeXRobS1zcGFjaW5nLTI6dmFyKC0tdi1yaHl0aG0tc3BhY2luZy0yLXBob25lKTstLXYtcmh5dGhtLXNwYWNpbmctMzp2YXIoLS12LXJoeXRobS1zcGFjaW5nLTMtcGhvbmUpOy0tdi1yaHl0aG0tc3BhY2luZy00OnZhcigtLXYtcmh5dGhtLXNwYWNpbmctNC1waG9uZSk7LS12LXJoeXRobS1zcGFjaW5nLTU6dmFyKC0tdi1yaHl0aG0tc3BhY2luZy01LXBob25lKX1AbWVkaWEgKG1pbi13aWR0aDo3NjhweCl7OnJvb3R7LS12LXJoeXRobS1oZWFkZXItMS1zcGFjZTp2YXIoLS12LXJoeXRobS1oZWFkZXItMS1zcGFjZS10YWJsZXQpOy0tdi1yaHl0aG0taGVhZGVyLTItc3BhY2U6dmFyKC0tdi1yaHl0aG0taGVhZGVyLTItc3BhY2UtdGFibGV0KTstLXYtcmh5dGhtLWhlYWRlci0zLXNwYWNlOnZhcigtLXYtcmh5dGhtLWhlYWRlci0zLXNwYWNlLXRhYmxldCk7LS12LXJoeXRobS1mb290ZXItMS1zcGFjZTp2YXIoLS12LXJoeXRobS1mb290ZXItMS1zcGFjZS10YWJsZXQpOy0tdi1yaHl0aG0tZm9vdGVyLTItc3BhY2U6dmFyKC0tdi1yaHl0aG0tZm9vdGVyLTItc3BhY2UtdGFibGV0KTstLXYtcmh5dGhtLWZvb3Rlci0zLXNwYWNlOnZhcigtLXYtcmh5dGhtLWZvb3Rlci0zLXNwYWNlLXRhYmxldCk7LS12LXJoeXRobS1zcGFjaW5nLTE6dmFyKC0tdi1yaHl0aG0tc3BhY2luZy0xLXRhYmxldCk7LS12LXJoeXRobS1zcGFjaW5nLTI6dmFyKC0tdi1yaHl0aG0tc3BhY2luZy0yLXRhYmxldCk7LS12LXJoeXRobS1zcGFjaW5nLTM6dmFyKC0tdi1yaHl0aG0tc3BhY2luZy0zLXRhYmxldCk7LS12LXJoeXRobS1zcGFjaW5nLTQ6dmFyKC0tdi1yaHl0aG0tc3BhY2luZy00LXRhYmxldCk7LS12LXJoeXRobS1zcGFjaW5nLTU6dmFyKC0tdi1yaHl0aG0tc3BhY2luZy01LXRhYmxldCl9fUBzdXBwb3J0cyBub3QgKGNvbnRhaW5lci10eXBlOmlubGluZS1zaXplKXtAbWVkaWEgKG1pbi13aWR0aDo3MDJweCl7W2RhdGEtcXVlcnktdHlwZT1jb250YWluZXJdPip7LS12LXJoeXRobS1oZWFkZXItMS1zcGFjZTp2YXIoLS12LXJoeXRobS1oZWFkZXItMS1zcGFjZS10YWJsZXQpOy0tdi1yaHl0aG0taGVhZGVyLTItc3BhY2U6dmFyKC0tdi1yaHl0aG0taGVhZGVyLTItc3BhY2UtdGFibGV0KTstLXYtcmh5dGhtLWhlYWRlci0zLXNwYWNlOnZhcigtLXYtcmh5dGhtLWhlYWRlci0zLXNwYWNlLXRhYmxldCk7LS12LXJoeXRobS1mb290ZXItMS1zcGFjZTp2YXIoLS12LXJoeXRobS1mb290ZXItMS1zcGFjZS10YWJsZXQpOy0tdi1yaHl0aG0tZm9vdGVyLTItc3BhY2U6dmFyKC0tdi1yaHl0aG0tZm9vdGVyLTItc3BhY2UtdGFibGV0KTstLXYtcmh5dGhtLWZvb3Rlci0zLXNwYWNlOnZhcigtLXYtcmh5dGhtLWZvb3Rlci0zLXNwYWNlLXRhYmxldCk7LS12LXJoeXRobS1zcGFjaW5nLTE6dmFyKC0tdi1yaHl0aG0tc3BhY2luZy0xLXRhYmxldCk7LS12LXJoeXRobS1zcGFjaW5nLTI6dmFyKC0tdi1yaHl0aG0tc3BhY2luZy0yLXRhYmxldCk7LS12LXJoeXRobS1zcGFjaW5nLTM6dmFyKC0tdi1yaHl0aG0tc3BhY2luZy0zLXRhYmxldCk7LS12LXJoeXRobS1zcGFjaW5nLTQ6dmFyKC0tdi1yaHl0aG0tc3BhY2luZy00LXRhYmxldCk7LS12LXJoeXRobS1zcGFjaW5nLTU6dmFyKC0tdi1yaHl0aG0tc3BhY2luZy01LXRhYmxldCl9fX1AY29udGFpbmVyIGNvbnRlbnQtY29udGFpbmVyIChtaW4td2lkdGg6IDcwMnB4KXtbZGF0YS1xdWVyeS10eXBlPWNvbnRhaW5lcl0+KnstLXYtcmh5dGhtLWhlYWRlci0xLXNwYWNlOnZhcigtLXYtcmh5dGhtLWhlYWRlci0xLXNwYWNlLXRhYmxldCk7LS12LXJoeXRobS1oZWFkZXItMi1zcGFjZTp2YXIoLS12LXJoeXRobS1oZWFkZXItMi1zcGFjZS10YWJsZXQpOy0tdi1yaHl0aG0taGVhZGVyLTMtc3BhY2U6dmFyKC0tdi1yaHl0aG0taGVhZGVyLTMtc3BhY2UtdGFibGV0KTstLXYtcmh5dGhtLWZvb3Rlci0xLXNwYWNlOnZhcigtLXYtcmh5dGhtLWZvb3Rlci0xLXNwYWNlLXRhYmxldCk7LS12LXJoeXRobS1mb290ZXItMi1zcGFjZTp2YXIoLS12LXJoeXRobS1mb290ZXItMi1zcGFjZS10YWJsZXQpOy0tdi1yaHl0aG0tZm9vdGVyLTMtc3BhY2U6dmFyKC0tdi1yaHl0aG0tZm9vdGVyLTMtc3BhY2UtdGFibGV0KTstLXYtcmh5dGhtLXNwYWNpbmctMTp2YXIoLS12LXJoeXRobS1zcGFjaW5nLTEtdGFibGV0KTstLXYtcmh5dGhtLXNwYWNpbmctMjp2YXIoLS12LXJoeXRobS1zcGFjaW5nLTItdGFibGV0KTstLXYtcmh5dGhtLXNwYWNpbmctMzp2YXIoLS12LXJoeXRobS1zcGFjaW5nLTMtdGFibGV0KTstLXYtcmh5dGhtLXNwYWNpbmctNDp2YXIoLS12LXJoeXRobS1zcGFjaW5nLTQtdGFibGV0KTstLXYtcmh5dGhtLXNwYWNpbmctNTp2YXIoLS12LXJoeXRobS1zcGFjaW5nLTUtdGFibGV0KX19QG1lZGlhIChtaW4td2lkdGg6MTI4MHB4KXs6cm9vdHstLXYtcmh5dGhtLWhlYWRlci0xLXNwYWNlOnZhcigtLXYtcmh5dGhtLWhlYWRlci0xLXNwYWNlLWxhcHRvcCk7LS12LXJoeXRobS1oZWFkZXItMi1zcGFjZTp2YXIoLS12LXJoeXRobS1oZWFkZXItMi1zcGFjZS1sYXB0b3ApOy0tdi1yaHl0aG0taGVhZGVyLTMtc3BhY2U6dmFyKC0tdi1yaHl0aG0taGVhZGVyLTMtc3BhY2UtbGFwdG9wKTstLXYtcmh5dGhtLWZvb3Rlci0xLXNwYWNlOnZhcigtLXYtcmh5dGhtLWZvb3Rlci0xLXNwYWNlLWxhcHRvcCk7LS12LXJoeXRobS1mb290ZXItMi1zcGFjZTp2YXIoLS12LXJoeXRobS1mb290ZXItMi1zcGFjZS1sYXB0b3ApOy0tdi1yaHl0aG0tZm9vdGVyLTMtc3BhY2U6dmFyKC0tdi1yaHl0aG0tZm9vdGVyLTMtc3BhY2UtbGFwdG9wKTstLXYtcmh5dGhtLXNwYWNpbmctMTp2YXIoLS12LXJoeXRobS1zcGFjaW5nLTEtbGFwdG9wKTstLXYtcmh5dGhtLXNwYWNpbmctMjp2YXIoLS12LXJoeXRobS1zcGFjaW5nLTItbGFwdG9wKTstLXYtcmh5dGhtLXNwYWNpbmctMzp2YXIoLS12LXJoeXRobS1zcGFjaW5nLTMtbGFwdG9wKTstLXYtcmh5dGhtLXNwYWNpbmctNDp2YXIoLS12LXJoeXRobS1zcGFjaW5nLTQtbGFwdG9wKTstLXYtcmh5dGhtLXNwYWNpbmctNTp2YXIoLS12LXJoeXRobS1zcGFjaW5nLTUtbGFwdG9wKX19QHN1cHBvcnRzIG5vdCAoY29udGFpbmVyLXR5cGU6aW5saW5lLXNpemUpe0BtZWRpYSAobWluLXdpZHRoOjEyMTRweCl7W2RhdGEtcXVlcnktdHlwZT1jb250YWluZXJdPip7LS12LXJoeXRobS1oZWFkZXItMS1zcGFjZTp2YXIoLS12LXJoeXRobS1oZWFkZXItMS1zcGFjZS1sYXB0b3ApOy0tdi1yaHl0aG0taGVhZGVyLTItc3BhY2U6dmFyKC0tdi1yaHl0aG0taGVhZGVyLTItc3BhY2UtbGFwdG9wKTstLXYtcmh5dGhtLWhlYWRlci0zLXNwYWNlOnZhcigtLXYtcmh5dGhtLWhlYWRlci0zLXNwYWNlLWxhcHRvcCk7LS12LXJoeXRobS1mb290ZXItMS1zcGFjZTp2YXIoLS12LXJoeXRobS1mb290ZXItMS1zcGFjZS1sYXB0b3ApOy0tdi1yaHl0aG0tZm9vdGVyLTItc3BhY2U6dmFyKC0tdi1yaHl0aG0tZm9vdGVyLTItc3BhY2UtbGFwdG9wKTstLXYtcmh5dGhtLWZvb3Rlci0zLXNwYWNlOnZhcigtLXYtcmh5dGhtLWZvb3Rlci0zLXNwYWNlLWxhcHRvcCk7LS12LXJoeXRobS1zcGFjaW5nLTE6dmFyKC0tdi1yaHl0aG0tc3BhY2luZy0xLWxhcHRvcCk7LS12LXJoeXRobS1zcGFjaW5nLTI6dmFyKC0tdi1yaHl0aG0tc3BhY2luZy0yLWxhcHRvcCk7LS12LXJoeXRobS1zcGFjaW5nLTM6dmFyKC0tdi1yaHl0aG0tc3BhY2luZy0zLWxhcHRvcCk7LS12LXJoeXRobS1zcGFjaW5nLTQ6dmFyKC0tdi1yaHl0aG0tc3BhY2luZy00LWxhcHRvcCk7LS12LXJoeXRobS1zcGFjaW5nLTU6dmFyKC0tdi1yaHl0aG0tc3BhY2luZy01LWxhcHRvcCl9fX1AY29udGFpbmVyIGNvbnRlbnQtY29udGFpbmVyIChtaW4td2lkdGg6IDEyMTRweCl7W2RhdGEtcXVlcnktdHlwZT1jb250YWluZXJdPip7LS12LXJoeXRobS1oZWFkZXItMS1zcGFjZTp2YXIoLS12LXJoeXRobS1oZWFkZXItMS1zcGFjZS1sYXB0b3ApOy0tdi1yaHl0aG0taGVhZGVyLTItc3BhY2U6dmFyKC0tdi1yaHl0aG0taGVhZGVyLTItc3BhY2UtbGFwdG9wKTstLXYtcmh5dGhtLWhlYWRlci0zLXNwYWNlOnZhcigtLXYtcmh5dGhtLWhlYWRlci0zLXNwYWNlLWxhcHRvcCk7LS12LXJoeXRobS1mb290ZXItMS1zcGFjZTp2YXIoLS12LXJoeXRobS1mb290ZXItMS1zcGFjZS1sYXB0b3ApOy0tdi1yaHl0aG0tZm9vdGVyLTItc3BhY2U6dmFyKC0tdi1yaHl0aG0tZm9vdGVyLTItc3BhY2UtbGFwdG9wKTstLXYtcmh5dGhtLWZvb3Rlci0zLXNwYWNlOnZhcigtLXYtcmh5dGhtLWZvb3Rlci0zLXNwYWNlLWxhcHRvcCk7LS12LXJoeXRobS1zcGFjaW5nLTE6dmFyKC0tdi1yaHl0aG0tc3BhY2luZy0xLWxhcHRvcCk7LS12LXJoeXRobS1zcGFjaW5nLTI6dmFyKC0tdi1yaHl0aG0tc3BhY2luZy0yLWxhcHRvcCk7LS12LXJoeXRobS1zcGFjaW5nLTM6dmFyKC0tdi1yaHl0aG0tc3BhY2luZy0zLWxhcHRvcCk7LS12LXJoeXRobS1zcGFjaW5nLTQ6dmFyKC0tdi1yaHl0aG0tc3BhY2luZy00LWxhcHRvcCk7LS12LXJoeXRobS1zcGFjaW5nLTU6dmFyKC0tdi1yaHl0aG0tc3BhY2luZy01LWxhcHRvcCl9fUBtZWRpYSAobWluLXdpZHRoOjE0NDBweCl7OnJvb3R7LS12LXJoeXRobS1oZWFkZXItMS1zcGFjZTp2YXIoLS12LXJoeXRobS1oZWFkZXItMS1zcGFjZS1kZXNrdG9wKTstLXYtcmh5dGhtLWhlYWRlci0yLXNwYWNlOnZhcigtLXYtcmh5dGhtLWhlYWRlci0yLXNwYWNlLWRlc2t0b3ApOy0tdi1yaHl0aG0taGVhZGVyLTMtc3BhY2U6dmFyKC0tdi1yaHl0aG0taGVhZGVyLTMtc3BhY2UtZGVza3RvcCk7LS12LXJoeXRobS1mb290ZXItMS1zcGFjZTp2YXIoLS12LXJoeXRobS1mb290ZXItMS1zcGFjZS1kZXNrdG9wKTstLXYtcmh5dGhtLWZvb3Rlci0yLXNwYWNlOnZhcigtLXYtcmh5dGhtLWZvb3Rlci0yLXNwYWNlLWRlc2t0b3ApOy0tdi1yaHl0aG0tZm9vdGVyLTMtc3BhY2U6dmFyKC0tdi1yaHl0aG0tZm9vdGVyLTMtc3BhY2UtZGVza3RvcCk7LS12LXJoeXRobS1zcGFjaW5nLTE6dmFyKC0tdi1yaHl0aG0tc3BhY2luZy0xLWRlc2t0b3ApOy0tdi1yaHl0aG0tc3BhY2luZy0yOnZhcigtLXYtcmh5dGhtLXNwYWNpbmctMi1kZXNrdG9wKTstLXYtcmh5dGhtLXNwYWNpbmctMzp2YXIoLS12LXJoeXRobS1zcGFjaW5nLTMtZGVza3RvcCk7LS12LXJoeXRobS1zcGFjaW5nLTQ6dmFyKC0tdi1yaHl0aG0tc3BhY2luZy00LWRlc2t0b3ApOy0tdi1yaHl0aG0tc3BhY2luZy01OnZhcigtLXYtcmh5dGhtLXNwYWNpbmctNS1kZXNrdG9wKX19QHN1cHBvcnRzIG5vdCAoY29udGFpbmVyLXR5cGU6aW5saW5lLXNpemUpe0BtZWRpYSAobWluLXdpZHRoOjEzNzRweCl7W2RhdGEtcXVlcnktdHlwZT1jb250YWluZXJdPip7LS12LXJoeXRobS1oZWFkZXItMS1zcGFjZTp2YXIoLS12LXJoeXRobS1oZWFkZXItMS1zcGFjZS1kZXNrdG9wKTstLXYtcmh5dGhtLWhlYWRlci0yLXNwYWNlOnZhcigtLXYtcmh5dGhtLWhlYWRlci0yLXNwYWNlLWRlc2t0b3ApOy0tdi1yaHl0aG0taGVhZGVyLTMtc3BhY2U6dmFyKC0tdi1yaHl0aG0taGVhZGVyLTMtc3BhY2UtZGVza3RvcCk7LS12LXJoeXRobS1mb290ZXItMS1zcGFjZTp2YXIoLS12LXJoeXRobS1mb290ZXItMS1zcGFjZS1kZXNrdG9wKTstLXYtcmh5dGhtLWZvb3Rlci0yLXNwYWNlOnZhcigtLXYtcmh5dGhtLWZvb3Rlci0yLXNwYWNlLWRlc2t0b3ApOy0tdi1yaHl0aG0tZm9vdGVyLTMtc3BhY2U6dmFyKC0tdi1yaHl0aG0tZm9vdGVyLTMtc3BhY2UtZGVza3RvcCk7LS12LXJoeXRobS1zcGFjaW5nLTE6dmFyKC0tdi1yaHl0aG0tc3BhY2luZy0xLWRlc2t0b3ApOy0tdi1yaHl0aG0tc3BhY2luZy0yOnZhcigtLXYtcmh5dGhtLXNwYWNpbmctMi1kZXNrdG9wKTstLXYtcmh5dGhtLXNwYWNpbmctMzp2YXIoLS12LXJoeXRobS1zcGFjaW5nLTMtZGVza3RvcCk7LS12LXJoeXRobS1zcGFjaW5nLTQ6dmFyKC0tdi1yaHl0aG0tc3BhY2luZy00LWRlc2t0b3ApOy0tdi1yaHl0aG0tc3BhY2luZy01OnZhcigtLXYtcmh5dGhtLXNwYWNpbmctNS1kZXNrdG9wKX19fUBjb250YWluZXIgY29udGVudC1jb250YWluZXIgKG1pbi13aWR0aDogMTM3NHB4KXtbZGF0YS1xdWVyeS10eXBlPWNvbnRhaW5lcl0+KnstLXYtcmh5dGhtLWhlYWRlci0xLXNwYWNlOnZhcigtLXYtcmh5dGhtLWhlYWRlci0xLXNwYWNlLWRlc2t0b3ApOy0tdi1yaHl0aG0taGVhZGVyLTItc3BhY2U6dmFyKC0tdi1yaHl0aG0taGVhZGVyLTItc3BhY2UtZGVza3RvcCk7LS12LXJoeXRobS1oZWFkZXItMy1zcGFjZTp2YXIoLS12LXJoeXRobS1oZWFkZXItMy1zcGFjZS1kZXNrdG9wKTstLXYtcmh5dGhtLWZvb3Rlci0xLXNwYWNlOnZhcigtLXYtcmh5dGhtLWZvb3Rlci0xLXNwYWNlLWRlc2t0b3ApOy0tdi1yaHl0aG0tZm9vdGVyLTItc3BhY2U6dmFyKC0tdi1yaHl0aG0tZm9vdGVyLTItc3BhY2UtZGVza3RvcCk7LS12LXJoeXRobS1mb290ZXItMy1zcGFjZTp2YXIoLS12LXJoeXRobS1mb290ZXItMy1zcGFjZS1kZXNrdG9wKTstLXYtcmh5dGhtLXNwYWNpbmctMTp2YXIoLS12LXJoeXRobS1zcGFjaW5nLTEtZGVza3RvcCk7LS12LXJoeXRobS1zcGFjaW5nLTI6dmFyKC0tdi1yaHl0aG0tc3BhY2luZy0yLWRlc2t0b3ApOy0tdi1yaHl0aG0tc3BhY2luZy0zOnZhcigtLXYtcmh5dGhtLXNwYWNpbmctMy1kZXNrdG9wKTstLXYtcmh5dGhtLXNwYWNpbmctNDp2YXIoLS12LXJoeXRobS1zcGFjaW5nLTQtZGVza3RvcCk7LS12LXJoeXRobS1zcGFjaW5nLTU6dmFyKC0tdi1yaHl0aG0tc3BhY2luZy01LWRlc2t0b3ApfX0udHYtdGV4dCBvbCwudHYtdGV4dCBwLC50di10ZXh0IHVse2NvbG9yOnZhcigtLWNvbG9yLXRleHQtcHJpbWFyeSk7Zm9udC1zaXplOjE0cHg7bGluZS1oZWlnaHQ6MS42O21hcmdpbi1ib3R0b206MTJweH0udHYtdGV4dCBoMXtmb250LXNpemU6NDVweDttYXJnaW4tYm90dG9tOjMwcHg7bWFyZ2luLXRvcDozMHB4fUBtZWRpYSAobWF4LXdpZHRoOjEwMTlweCl7LnR2LXRleHQgaDF7Zm9udC1zaXplOjM4cHh9fUBtZWRpYSAobWF4LXdpZHRoOjc2N3B4KXsudHYtdGV4dCBoMXtmb250LXNpemU6MzJweH19QG1lZGlhIChtYXgtd2lkdGg6NDc5cHgpey50di10ZXh0IGgxe2ZvbnQtc2l6ZToyOHB4fX0udHYtdGV4dCBoMntmb250LXNpemU6MzFweH1AbWVkaWEgKG1heC13aWR0aDoxMDE5cHgpey50di10ZXh0IGgye2ZvbnQtc2l6ZToyNnB4fX1AbWVkaWEgKG1heC13aWR0aDo0NzlweCl7LnR2LXRleHQgaDJ7Zm9udC1zaXplOjI0cHh9fS50di10ZXh0IGgze2ZvbnQtc2l6ZToxN3B4fUBtZWRpYSAobWF4LXdpZHRoOjEwMTlweCl7LnR2LXRleHQgaDN7Zm9udC1zaXplOjE2cHh9fS50di10ZXh0IGg0e2ZvbnQtc2l6ZToxNXB4fS50di10ZXh0IGgyLC50di10ZXh0IGgzLC50di10ZXh0IGg0e21hcmdpbi1ib3R0b206MjBweDttYXJnaW4tdG9wOjIwcHh9LnR2LXRleHQgaDE6Zmlyc3QtY2hpbGQsLnR2LXRleHQgaDI6Zmlyc3QtY2hpbGQsLnR2LXRleHQgaDM6Zmlyc3QtY2hpbGQsLnR2LXRleHQgaDQ6Zmlyc3QtY2hpbGR7bWFyZ2luLXRvcDowfS50di10ZXh0IG9sLC50di10ZXh0IHVse2xpc3Qtc3R5bGUtcG9zaXRpb246aW5zaWRlfS50di10ZXh0LS1wb3NpdGlvbi1vdXRzaWRlIG9sLC50di10ZXh0LS1wb3NpdGlvbi1vdXRzaWRlIHVse2xpc3Qtc3R5bGUtcG9zaXRpb246b3V0c2lkZTtwYWRkaW5nLWlubGluZS1zdGFydDoxN3B4fS50di10ZXh0IGE6bm90KC50di1idXR0b24pOm5vdCgudHYtY2hhcnQtdmlld19fZGVzY3JpcHRpb25fX3RhZyksLnR2LXRleHQgYTpub3QoLnR2LWJ1dHRvbik6bm90KC50di1jaGFydC12aWV3X19kZXNjcmlwdGlvbl9fdGFnKTp2aXNpdGVke2NvbG9yOnZhcigtLWNvbG9yLWxpbmstcHJpbWFyeS1kZWZhdWx0KTtmaWxsOnZhcigtLWNvbG9yLWxpbmstcHJpbWFyeS1kZWZhdWx0KX1AbWVkaWEgKGFueS1ob3Zlcjpob3Zlcil7LnR2LXRleHQgYTpub3QoLnR2LWJ1dHRvbik6bm90KC50di1jaGFydC12aWV3X19kZXNjcmlwdGlvbl9fdGFnKTpob3Zlcntjb2xvcjp2YXIoLS1jb2xvci1saW5rLXByaW1hcnktaG92ZXIpO2ZpbGw6dmFyKC0tY29sb3ItbGluay1wcmltYXJ5LWhvdmVyKX19LnR2LXRleHQgYTpub3QoLnR2LWJ1dHRvbik6bm90KC50di1jaGFydC12aWV3X19kZXNjcmlwdGlvbl9fdGFnKTphY3RpdmV7Y29sb3I6dmFyKC0tY29sb3ItbGluay1wcmltYXJ5LWFjdGl2ZSk7ZmlsbDp2YXIoLS1jb2xvci1saW5rLXByaW1hcnktYWN0aXZlKX0udHYtdGV4dCBhOm5vdCgudHYtYnV0dG9uKTpub3QoLnR2LWNoYXJ0LXZpZXdfX2Rlc2NyaXB0aW9uX190YWcpOmZvY3Vze291dGxpbmU6YXV0bztvdXRsaW5lLW9mZnNldDoycHh9LnR2LXRleHQgYTpub3QoLnR2LWJ1dHRvbik6bm90KC50di1jaGFydC12aWV3X19kZXNjcmlwdGlvbl9fdGFnKTpmb2N1cy12aXNpYmxle291dGxpbmU6YXV0bztvdXRsaW5lLW9mZnNldDoycHh9LnR2LXRleHQgYTpub3QoLnR2LWJ1dHRvbik6bm90KC50di1jaGFydC12aWV3X19kZXNjcmlwdGlvbl9fdGFnKTpmb2N1czpub3QoOmZvY3VzLXZpc2libGUpe291dGxpbmU6bm9uZX0udHYtdGV4dC0tZGFya2JnLC50di10ZXh0LS1kYXJrYmcgb2wsLnR2LXRleHQtLWRhcmtiZyBwLC50di10ZXh0LS1kYXJrYmcgdWx7Y29sb3I6I2ZmZn0uYXJpYS1saXZlLXJlZ2lvbnMtd3JhcHBlcntib3JkZXI6MDtoZWlnaHQ6MXB4O21hcmdpbjotMXB4O3BhZGRpbmc6MDtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDoxcHg7Y2xpcDpyZWN0KDAsMCwwLDApO292ZXJmbG93LXg6aGlkZGVufWh0bWx7Y29sb3Itc2NoZW1lOmxpZ2h0fWh0bWwudGhlbWUtZGFya3tjb2xvci1zY2hlbWU6ZGFya31odG1sLnRoZW1lLWRhcmsgaWZyYW1le2NvbG9yLXNjaGVtZTpub3JtYWx9Ym9keXtib3gtc2l6aW5nOmJvcmRlci1ib3g7bWluLXdpZHRoOjMyMHB4Oy13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjpyZ2JhKDAsMCwwLDApOy13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjp0cmFuc3BhcmVudH1ib2R5Lmktbm8tc2Nyb2xse292ZXJmbG93OmhpZGRlbiFpbXBvcnRhbnR9Ym9keS5pLW5vLXBhZGRpbmd7cGFkZGluZzowIWltcG9ydGFudH06OnNlbGVjdGlvbntiYWNrZ3JvdW5kOnZhcigtLWNvbG9yLXNlbGVjdGlvbi1iZyl9LnNjcmVlbi1pd3I5T3Rwc3tib3R0b206MDtkaXNwbGF5Om5vbmU7aW5zZXQtaW5saW5lLWVuZDowO2luc2V0LWlubGluZS1zdGFydDowO29wYWNpdHk6LjU7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7ei1pbmRleDo4fS5zY3JlZW4taXdyOU90cHMuZmFkZS1pd3I5T3Rwc3thbmltYXRpb246c2NyZWVuZmFkZS1pd3I5T3RwcyAuM3MgZWFzZSBiYWNrd2FyZHM7ZGlzcGxheTpibG9ja31Aa2V5ZnJhbWVzIHNjcmVlbmZhZGUtaXdyOU90cHN7MCV7b3BhY2l0eTowfX0ucGFuZVNlcGFyYXRvci1haTlNWEo5a3ttYXJnaW46MDtwYWRkaW5nOjA7cG9zaXRpb246cmVsYXRpdmV9LnBhbmVTZXBhcmF0b3ItYWk5TVhKOWsgLmhhbmRsZS1haTlNWEo5a3toZWlnaHQ6N3B4O2luc2V0LWlubGluZS1zdGFydDowO3Bvc2l0aW9uOmFic29sdXRlO3RvcDotM3B4O3dpZHRoOjEwMCU7ei1pbmRleDo1MH0ucGFuZVNlcGFyYXRvci1haTlNWEo5ayAuaGFuZGxlLWFpOU1YSjlrLm1vYmlsZS1haTlNWEo5a3toZWlnaHQ6MTFweDt0b3A6LTVweH0ucGFuZVNlcGFyYXRvci1haTlNWEo5ayAuaGFuZGxlLWFpOU1YSjlrLmFjdGl2ZS1haTlNWEo5aywucGFuZVNlcGFyYXRvci1haTlNWEo5ayAuaGFuZGxlLWFpOU1YSjlrLmhvdmVyZWQtYWk5TVhKOWssLnBhbmVTZXBhcmF0b3ItYWk5TVhKOWsgLmhhbmRsZS1haTlNWEo5ay5zZWxlY3RlZC1haTlNWEo5a3tiYWNrZ3JvdW5kOnZhcigtLWNvbG9yLW92ZXJsYXktYWNjZW50LTEtbGlnaHQpO2N1cnNvcjpyb3ctcmVzaXplfS5wYW5lU2VwYXJhdG9yLWFpOU1YSjlrIC5oYW5kbGUtYWk5TVhKOWsuYWN0aXZlLWFpOU1YSjlrOmJlZm9yZXtiYWNrZ3JvdW5kOnZhcigtLWNvbG9yLW92ZXJsYXktbmV1dHJhbC0xLWxpZ2h0KTtjb250ZW50OiIiO2hlaWdodDoxMDAlO2luc2V0LWlubGluZS1zdGFydDowO29wYWNpdHk6MDtwb3NpdGlvbjpmaXhlZDt0b3A6MDt3aWR0aDoxMDAlfS5wcmljZS1heGlzLWN1cnJlbmN5LWxhYmVsLXdyYXBwZXItYlRDVFJDVGp7Ym94LXNpemluZzpib3JkZXItYm94O3BhZGRpbmc6NHB4O3BvaW50ZXItZXZlbnRzOm5vbmU7cG9zaXRpb246YWJzb2x1dGU7LXdlYmtpdC11c2VyLXNlbGVjdDpub25lO3VzZXItc2VsZWN0Om5vbmU7d2lkdGg6MTAwJTt6LWluZGV4OjN9LnByaWNlLWF4aXMtY3VycmVuY3ktbGFiZWwtd3JhcHBlci1iVENUUkNUai5oaWRkZW4tYlRDVFJDVGp7dmlzaWJpbGl0eTpoaWRkZW59LnByaWNlLWF4aXMtY3VycmVuY3ktbGFiZWwtYlRDVFJDVGp7YmFja2dyb3VuZDp2YXIoLS1jb2xvci13aGl0ZSk7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1jb2xvci1jb2xkLWdyYXktMTUwKTtib3JkZXItcmFkaXVzOjRweDtib3gtc2l6aW5nOmJvcmRlci1ib3g7Y3Vyc29yOmRlZmF1bHQ7d2lkdGg6MTAwJX0ucHJpY2UtYXhpcy1jdXJyZW5jeS1sYWJlbC1iVENUUkNUaiAucm93LWJUQ1RSQ1Rqe2FsaWduLWl0ZW1zOmNlbnRlcjtjb2xvcjp2YXIoLS1jb2xvci1jb2xkLWdyYXktOTAwKTtjb2x1bW4tZ2FwOjJweDtkaXNwbGF5OmZsZXg7aGVpZ2h0OjI0cHg7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47bGluZS1oZWlnaHQ6MWVtO3BhZGRpbmc6MCAzcHh9LnByaWNlLWF4aXMtY3VycmVuY3ktbGFiZWwtYlRDVFJDVGogLnJvdy1iVENUUkNUajpudGgtY2hpbGQoMSBvZiA6bm90KC5qcy1oaWRkZW4pKXtib3JkZXItc3RhcnQtZW5kLXJhZGl1czozcHg7Ym9yZGVyLXN0YXJ0LXN0YXJ0LXJhZGl1czozcHh9LnByaWNlLWF4aXMtY3VycmVuY3ktbGFiZWwtYlRDVFJDVGogLnJvdy1iVENUUkNUajpudGgtbGFzdC1jaGlsZCgtbisxIG9mIDpub3QoLmpzLWhpZGRlbikpe2JvcmRlci1lbmQtZW5kLXJhZGl1czozcHg7Ym9yZGVyLWVuZC1zdGFydC1yYWRpdXM6M3B4fUBtZWRpYSAoYW55LWhvdmVyOmhvdmVyKXsucHJpY2UtYXhpcy1jdXJyZW5jeS1sYWJlbC1iVENUUkNUaiAucm93LWJUQ1RSQ1RqOmhvdmVyOm5vdCgucmVhZG9ubHkpe2JhY2tncm91bmQ6dmFyKC0tY29sb3ItY29sZC1ncmF5LTEwMCl9fS5wcmljZS1heGlzLWN1cnJlbmN5LWxhYmVsLWJUQ1RSQ1RqIC5yb3ctYlRDVFJDVGouZXhwYW5kZWQtYlRDVFJDVGp7YmFja2dyb3VuZDp2YXIoLS1jb2xvci1jb2xkLWdyYXktMTUwKX0ucHJpY2UtYXhpcy1jdXJyZW5jeS1sYWJlbC1iVENUUkNUaiAucm93LWJUQ1RSQ1RqLmV4cGFuZGVkLWJUQ1RSQ1RqIC5wcmljZS1heGlzLWN1cnJlbmN5LWxhYmVsLWFycm93LWRvd24tYlRDVFJDVGp7dHJhbnNmb3JtOnNjYWxlWSgtMSl9LnByaWNlLWF4aXMtY3VycmVuY3ktbGFiZWwtYlRDVFJDVGogZGl2e3BvaW50ZXItZXZlbnRzOmF1dG99LnByaWNlLWF4aXMtY3VycmVuY3ktbGFiZWwtdGV4dC1iVENUUkNUant3aGl0ZS1zcGFjZTpub3dyYXB9LnByaWNlLWF4aXMtY3VycmVuY3ktbGFiZWwtYXJyb3ctZG93bi1iVENUUkNUanthbGlnbi1zZWxmOmNlbnRlcjtkaXNwbGF5OmZsZXh9LmNoYXJ0LXdpZGdldF9fdG9wLS10aGVtZWQtZGFyayAucHJpY2UtYXhpcy1jdXJyZW5jeS1sYWJlbC13cmFwcGVyLWJUQ1RSQ1RqIC5wcmljZS1heGlzLWN1cnJlbmN5LWxhYmVsLWJUQ1RSQ1Rqe2JhY2tncm91bmQ6dmFyKC0tY29sb3ItY29sZC1ncmF5LTkwMCk7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1jb2xvci1jb2xkLWdyYXktNzAwKX0uY2hhcnQtd2lkZ2V0X190b3AtLXRoZW1lZC1kYXJrIC5wcmljZS1heGlzLWN1cnJlbmN5LWxhYmVsLXdyYXBwZXItYlRDVFJDVGogLnByaWNlLWF4aXMtY3VycmVuY3ktbGFiZWwtYlRDVFJDVGogLnJvdy1iVENUUkNUantjb2xvcjp2YXIoLS1jb2xvci1jb2xkLWdyYXktMjAwKX1AbWVkaWEgKGFueS1ob3Zlcjpob3Zlcil7LmNoYXJ0LXdpZGdldF9fdG9wLS10aGVtZWQtZGFyayAucHJpY2UtYXhpcy1jdXJyZW5jeS1sYWJlbC13cmFwcGVyLWJUQ1RSQ1RqIC5wcmljZS1heGlzLWN1cnJlbmN5LWxhYmVsLWJUQ1RSQ1RqIC5yb3ctYlRDVFJDVGo6aG92ZXI6bm90KC5yZWFkb25seSl7YmFja2dyb3VuZDp2YXIoLS1jb2xvci1jb2xkLWdyYXktODAwKX19LmNoYXJ0LXdpZGdldF9fdG9wLS10aGVtZWQtZGFyayAucHJpY2UtYXhpcy1jdXJyZW5jeS1sYWJlbC13cmFwcGVyLWJUQ1RSQ1RqIC5wcmljZS1heGlzLWN1cnJlbmN5LWxhYmVsLWJUQ1RSQ1RqIC5yb3ctYlRDVFJDVGouZXhwYW5kZWQtYlRDVFJDVGp7YmFja2dyb3VuZDp2YXIoLS1jb2xvci1jb2xkLWdyYXktNzUwKX0ucHJpY2UtYXhpc3tjdXJzb3I6ZGVmYXVsdDtoZWlnaHQ6MTAwJTtvdmVyZmxvdzpoaWRkZW47cG9zaXRpb246YWJzb2x1dGV9LnByaWNlLWF4aXMtLWN1cnNvci1ncmFiYmluZ3tjdXJzb3I6Z3JhYmJpbmd9LnByaWNlLWF4aXMtLWN1cnNvci1wb2ludGVye2N1cnNvcjpwb2ludGVyfS5wcmljZS1heGlzLS1jdXJzb3ItbnMtcmVzaXple2N1cnNvcjpucy1yZXNpemV9LnByaWNlLWF4aXNfX21vZGVCdXR0b25ze2JvdHRvbTowO21hcmdpbi1ibG9jazowIDA7bWFyZ2luLWlubGluZToxcHggMXB4O3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOmNhbGMoMTAwJSAtIDJweCk7ei1pbmRleDozfS5wcmljZS1heGlzX19tb2RlQnV0dG9uc19oaWRkZW57dmlzaWJpbGl0eTpoaWRkZW59LnBhbmV7Y3Vyc29yOmNyb3NzaGFpcjtvdmVyZmxvdzpoaWRkZW59LnBhbmUtLWN1cnNvci1wb2ludGVye2N1cnNvcjpwb2ludGVyfS5wYW5lLS1jdXJzb3ItZXJhc2Vye2N1cnNvcjp1cmwoZXJhc2VyLmM4MDYxMGEwNGE5MmQyNDY1YjAzLmN1ciksZGVmYXVsdH0ucGFuZS0tY3Vyc29yLWRvdHtjdXJzb3I6dXJsKGRvdC4zZDYxN2I2YjAxZWRiYTgzYTdmNC5jdXIpLGRlZmF1bHR9LnBhbmUtLWN1cnNvci1wZXJmb3JtYW5jZXtjdXJzb3I6dXJsKHBlcmZvcm1hbmNlLjc2OWNmOWRkYTJlZGU3ZDEyYjc0LnN2ZyksZGVmYXVsdH0ucGFuZS0tY3Vyc29yLWRlZmF1bHQsLnBhbmUtLWN1cnNvci1kZW1vbnN0cmF0aW9ue2N1cnNvcjpkZWZhdWx0fS5wYW5lLS1jdXJzb3ItZ3JhYmJpbmd7Y3Vyc29yOmdyYWJiaW5nfS5wYW5lLS1jdXJzb3Item9vbS1pbntjdXJzb3I6em9vbS1pbn0ucGFuZS0tY3Vyc29yLWV3LXJlc2l6ZXtjdXJzb3I6ZXctcmVzaXplfS5wYW5lLS1jdXJzb3ItbnMtcmVzaXple2N1cnNvcjpucy1yZXNpemV9LnBhbmUtLWN1cnNvci1ud3NlLXJlc2l6ZXtjdXJzb3I6bndzZS1yZXNpemV9LnBhbmUtLWN1cnNvci1ud3NlLXJlc2l6ZTpkaXIocnRsKXtjdXJzb3I6bmVzdy1yZXNpemV9LnBhbmUtLWN1cnNvci1uZXN3LXJlc2l6ZXtjdXJzb3I6bmVzdy1yZXNpemV9LnBhbmUtLWN1cnNvci1uZXN3LXJlc2l6ZTpkaXIocnRsKXtjdXJzb3I6bndzZS1yZXNpemV9LnBhbmUtLWN1cnNvci10ZXh0e2N1cnNvcjp0ZXh0fS5wYW5lLS1jdXJzb3Itbm9uZXtjdXJzb3I6bm9uZX0udGltZS1heGlze2N1cnNvcjpkZWZhdWx0fS50aW1lLWF4aXMtLWN1cnNvci1ncmFiYmluZ3tjdXJzb3I6Z3JhYmJpbmd9LnRpbWUtYXhpcy0tY3Vyc29yLWV3LXJlc2l6ZXtjdXJzb3I6ZXctcmVzaXplfS5pY29uLWlyQTBvYUg4ey0tdWktbGliLWluLWluZm9ybWVyLWljb24tY29sb3I6dmFyKC0tY29sb3ItY29udGVudC1zZWNvbmRhcnktZGFuZ2VyLWV4dHJhLWJvbGQpOy0taWNvbi1iYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLW92ZXJsYXktbmVnYXRpdmUtMi1saWdodCl9W2RhdGEtdGhlbWU9bGlnaHRdey0tXzAtLWpHSTp2YXIoLS1jb2xvci10di1ibHVlLTUwMCl9W2RhdGEtdGhlbWU9ZGFya117LS1fMC0takdJOnZhcigtLWNvbG9yLXR2LWJsdWUtODAwKX0uY2hhcnQtd2lkZ2V0e2JvcmRlci1zdHlsZTpub25lO2JveC1zaXppbmc6Ym9yZGVyLWJveDtoZWlnaHQ6MjU2cHg7aW5zZXQtaW5saW5lLXN0YXJ0OjA7bWFyZ2luOjA7b3ZlcmZsb3c6aGlkZGVuO3BhZGRpbmc6MDtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDt3aWR0aDo1MTJweH0uY2hhcnQtbWFya3VwLXRhYmxle2JvcmRlcjpub25lO2JvcmRlci1jb2xsYXBzZTpjb2xsYXBzZTtib3JkZXItc3BhY2luZzowO2JveC1zaXppbmc6Ym9yZGVyLWJveDtsaW5lLWhlaWdodDowcHh9LmNoYXJ0LW1hcmt1cC10YWJsZTpkaXIocnRsKXtkaXJlY3Rpb246bHRyfS5jaGFydC1ndWktd3JhcHBlcnthbGlnbi1pdGVtczpmbGV4LXN0YXJ0O2JveC1zaXppbmc6Ym9yZGVyLWJveDtjb2x1bW4tZ2FwOjRweDtkaXJlY3Rpb246bHRyO2Rpc3BsYXk6ZmxleDtoZWlnaHQ6MTAwJTttYXgtaGVpZ2h0OjEwMCU7bWF4LXdpZHRoOjEwMCU7b3ZlcmZsb3c6aGlkZGVuO3BhZGRpbmctYmxvY2s6NHB4IDA7cGFkZGluZy1pbmxpbmU6NHB4IDRweDtwb3NpdGlvbjpyZWxhdGl2ZTt3aWR0aDoxMDAlfS5jaGFydC1ndWktd3JhcHBlcl9fbGVnZW5ke2ZsZXg6MSAxIGF1dG87bWF4LXdpZHRoOjEwMCV9LmNoYXJ0LWd1aS13cmFwcGVyX19wYW5lQ29udHJvbHN7anVzdGlmeS1jb250ZW50OmZsZXgtZW5kO21hcmdpbi1pbmxpbmUtc3RhcnQ6YXV0b30uYmxhY2stYm9yZGVyLWJpZ2dlci1yYWRpdXN7LS1jaGFydC13aWRnZXQtYm9yZGVyLWNvbG9yOnZhcigtLWNvbG9yLWNvbnRhaW5lci1maWxsLXNlY29uZGFyeS1uZXV0cmFsLWV4dHJhLWJvbGQpOy0tY2hhcnQtd2lkZ2V0LWJvcmRlci1yYWRpdXM6NHB4fS5jaGFydC1wYWdle2JhY2tncm91bmQtY29sb3I6dmFyKC0tdHYtY29sb3ItcGxhdGZvcm0tYmFja2dyb3VuZCx2YXIoLS1jb2xvci1jaGFydC1wYWdlLWJnKSl9LmNoYXJ0LXBhZ2UgLmNoYXJ0LWNvbnRhaW5lcntjb250YWluOnN0cmljdDtwb3NpdGlvbjpyZWxhdGl2ZX0uY2hhcnQtcGFnZSAuY2hhcnQtY29udGFpbmVyLWJvcmRlcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLXBhbmUtYmcpO2JvcmRlcjpub25lO2hlaWdodDoxMDAlO292ZXJmbG93OmhpZGRlbjtwb3NpdGlvbjpyZWxhdGl2ZTt3aWR0aDoxMDAlO3otaW5kZXg6MH0uY2hhcnQtcGFnZSAuY2hhcnQtY29udGFpbmVyLm11bHRpcGxlLmFjdGl2ZTphZnRlcntib3JkZXI6MnB4IHNvbGlkO2JvcmRlci1jb2xvcjp2YXIoLS1jaGFydC13aWRnZXQtYm9yZGVyLWNvbG9yLHZhcigtLV8wLS1qR0kpKTtib3R0b206MDtib3gtc2l6aW5nOmJvcmRlci1ib3g7Y29udGVudDoiIjtkaXNwbGF5OmJsb2NrO2luc2V0LWlubGluZS1lbmQ6MDtpbnNldC1pbmxpbmUtc3RhcnQ6MDtwb2ludGVyLWV2ZW50czpub25lO3Bvc2l0aW9uOmFic29sdXRlO3RvcDowfS5jaGFydC1wYWdlIC5jaGFydC1jb250YWluZXIuaW5hY3RpdmUgLmJhY2stdG8tcHJlc2VudHtkaXNwbGF5Om5vbmV9LmNoYXJ0LXBhZ2UgLmNoYXJ0LWNvbnRhaW5lci5uby1oZWFkZXItdG9vbGJhciAuY2hhcnQtY29udGFpbmVyLWJvcmRlcntib3JkZXItc3RhcnQtZW5kLXJhZGl1czp2YXIoLS1jaGFydC13aWRnZXQtYm9yZGVyLXJhZGl1cyw0cHgpO2JvcmRlci1zdGFydC1zdGFydC1yYWRpdXM6dmFyKC0tY2hhcnQtd2lkZ2V0LWJvcmRlci1yYWRpdXMsNHB4KX0uY2hhcnQtcGFnZSAuY2hhcnQtY29udGFpbmVyLm5vLWJvdHRvbS10b29sYmFyIC5jaGFydC1jb250YWluZXItYm9yZGVye2JvcmRlci1lbmQtZW5kLXJhZGl1czp2YXIoLS1jaGFydC13aWRnZXQtYm9yZGVyLXJhZGl1cyw0cHgpO2JvcmRlci1lbmQtc3RhcnQtcmFkaXVzOnZhcigtLWNoYXJ0LXdpZGdldC1ib3JkZXItcmFkaXVzLDRweCl9LmxheW91dC13aXRoLWJvcmRlci1yYWRpdXMgLmNoYXJ0LWNvbnRhaW5lci5tdWx0aXBsZS5hY3RpdmU6YWZ0ZXJ7Ym9yZGVyLXJhZGl1czp2YXIoLS1jaGFydC13aWRnZXQtYm9yZGVyLXJhZGl1cywwKX0ubGF5b3V0LXdpdGgtYm9yZGVyLXJhZGl1cyAuY2hhcnQtY29udGFpbmVyLnRvcC1sZWZ0LWNoYXJ0IC5jaGFydC1jb250YWluZXItYm9yZGVyLC5sYXlvdXQtd2l0aC1ib3JkZXItcmFkaXVzIC5jaGFydC1jb250YWluZXIudG9wLWxlZnQtY2hhcnQubXVsdGlwbGUuYWN0aXZlOmFmdGVye2JvcmRlci1yYWRpdXM6dmFyKC0tY2hhcnQtd2lkZ2V0LWJvcmRlci1yYWRpdXMsNHB4IDAgMCAwKX0ubGF5b3V0LXdpdGgtYm9yZGVyLXJhZGl1cyAuY2hhcnQtY29udGFpbmVyLnRvcC1yaWdodC1jaGFydCAuY2hhcnQtY29udGFpbmVyLWJvcmRlciwubGF5b3V0LXdpdGgtYm9yZGVyLXJhZGl1cyAuY2hhcnQtY29udGFpbmVyLnRvcC1yaWdodC1jaGFydC5tdWx0aXBsZS5hY3RpdmU6YWZ0ZXJ7Ym9yZGVyLXJhZGl1czp2YXIoLS1jaGFydC13aWRnZXQtYm9yZGVyLXJhZGl1cywwIDRweCAwIDApfS5sYXlvdXQtd2l0aC1ib3JkZXItcmFkaXVzIC5jaGFydC1jb250YWluZXIudG9wLWZ1bGwtd2lkdGgtY2hhcnQgLmNoYXJ0LWNvbnRhaW5lci1ib3JkZXJ7Ym9yZGVyLXJhZGl1czo0cHggNHB4IDAgMH0ubGF5b3V0LXdpdGgtYm9yZGVyLXJhZGl1cyAuY2hhcnQtY29udGFpbmVyLnRvcC1mdWxsLXdpZHRoLWNoYXJ0Lm11bHRpcGxlLmFjdGl2ZTphZnRlcntib3JkZXItcmFkaXVzOnZhcigtLWNoYXJ0LXdpZGdldC1ib3JkZXItcmFkaXVzLDRweCA0cHggMCAwKX0ubGF5b3V0LXdpdGgtYm9yZGVyLXJhZGl1cyAubm8tYm9yZGVyLXRvcC1sZWZ0LXJhZGl1cyAuY2hhcnQtY29udGFpbmVyIC5jaGFydC1jb250YWluZXItYm9yZGVye2JvcmRlci10b3AtbGVmdC1yYWRpdXM6MH0ubGF5b3V0LXdpdGgtYm9yZGVyLXJhZGl1cyAubm8tYm9yZGVyLXRvcC1sZWZ0LXJhZGl1cyAuY2hhcnQtY29udGFpbmVyLm11bHRpcGxlLmFjdGl2ZTphZnRlcntib3JkZXItdG9wLWxlZnQtcmFkaXVzOnZhcigtLWNoYXJ0LXdpZGdldC1ib3JkZXItcmFkaXVzLDApfS5sYXlvdXQtd2l0aC1ib3JkZXItcmFkaXVzIC5uby1ib3JkZXItdG9wLXJpZ2h0LXJhZGl1cyAuY2hhcnQtY29udGFpbmVyIC5jaGFydC1jb250YWluZXItYm9yZGVye2JvcmRlci10b3AtcmlnaHQtcmFkaXVzOjB9LmxheW91dC13aXRoLWJvcmRlci1yYWRpdXMgLm5vLWJvcmRlci10b3AtcmlnaHQtcmFkaXVzIC5jaGFydC1jb250YWluZXIubXVsdGlwbGUuYWN0aXZlOmFmdGVye2JvcmRlci10b3AtcmlnaHQtcmFkaXVzOnZhcigtLWNoYXJ0LXdpZGdldC1ib3JkZXItcmFkaXVzLDApfS5sYXlvdXQtd2l0aC1ib3JkZXItcmFkaXVzLmJsYWNrLWJvcmRlci1iaWdnZXItcmFkaXVzIC5jaGFydC1jb250YWluZXIubXVsdGlwbGUgLmNoYXJ0LWNvbnRhaW5lci1ib3JkZXIsLmxheW91dC13aXRoLWJvcmRlci1yYWRpdXMuYmxhY2stYm9yZGVyLWJpZ2dlci1yYWRpdXMgLm5vLWJvcmRlci10b3AtbGVmdC1yYWRpdXMgLmNoYXJ0LWNvbnRhaW5lci5tdWx0aXBsZSAuY2hhcnQtY29udGFpbmVyLWJvcmRlciwubGF5b3V0LXdpdGgtYm9yZGVyLXJhZGl1cy5ibGFjay1ib3JkZXItYmlnZ2VyLXJhZGl1cyAubm8tYm9yZGVyLXRvcC1sZWZ0LXJhZGl1cyAuY2hhcnQtY29udGFpbmVyLm11bHRpcGxlLmFjdGl2ZTphZnRlciwubGF5b3V0LXdpdGgtYm9yZGVyLXJhZGl1cy5ibGFjay1ib3JkZXItYmlnZ2VyLXJhZGl1cyAubm8tYm9yZGVyLXRvcC1yaWdodC1yYWRpdXMgLmNoYXJ0LWNvbnRhaW5lci5tdWx0aXBsZSAuY2hhcnQtY29udGFpbmVyLWJvcmRlciwubGF5b3V0LXdpdGgtYm9yZGVyLXJhZGl1cy5ibGFjay1ib3JkZXItYmlnZ2VyLXJhZGl1cyAubm8tYm9yZGVyLXRvcC1yaWdodC1yYWRpdXMgLmNoYXJ0LWNvbnRhaW5lci5tdWx0aXBsZS5hY3RpdmU6YWZ0ZXJ7Ym9yZGVyLXJhZGl1czp2YXIoLS1jaGFydC13aWRnZXQtYm9yZGVyLXJhZGl1cyw0cHgpfS5jaGFydHNTcGxpdHRlci14cXNhT3g5Q3tiYWNrZ3JvdW5kOiJ0cmFuc3BhcmVudCI7cG9zaXRpb246YWJzb2x1dGV9LmNoYXJ0c1NwbGl0dGVyLXhxc2FPeDlDLmhvdmVyZWQteHFzYU94OUN7YmFja2dyb3VuZDp2YXIoLS1jb2xvci1vdmVybGF5LWFjY2VudC0xLWxpZ2h0KX0uY2hhcnQtY29udHJvbHMtYmFye2JhY2tncm91bmQtY29sb3I6dmFyKC0tdHYtY29sb3ItcGFuZS1iYWNrZ3JvdW5kLHZhcigtLWNvbG9yLXBhbmUtYmcpKTtib3JkZXItdG9wOjFweCBzb2xpZDtib3JkZXItY29sb3I6dmFyKC0tdHYtY29sb3ItcGxhdGZvcm0tYmFja2dyb3VuZCx2YXIoLS1jb2xvci1jaGFydC1wYWdlLWJnKSk7Ym9yZGVyLXJhZGl1czowIDAgNHB4IDRweDtib3gtc2l6aW5nOmJvcmRlci1ib3g7Y29udGFpbjpzdHJpY3Q7aGVpZ2h0OjM5cHg7b3ZlcmZsb3c6aGlkZGVuO3Bvc2l0aW9uOmFic29sdXRlfS5uby1ib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzIC5jaGFydC1jb250cm9scy1iYXJ7Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czowfS5uby1ib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1cyAuY2hhcnQtY29udHJvbHMtYmFye2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjB9LmJsYWNrLWJvcmRlci1iaWdnZXItcmFkaXVzIC5jaGFydC1jb250cm9scy1iYXIubXVsdGlwbGUtbGF5b3V0e2JvcmRlci1yYWRpdXM6NHB4fQ=="}},"time_used":5,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":5,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/95244.9da889c136d2506a3d81.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:13.030Z","timestamp":1785148033030,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/95244.9da889c136d2506a3d81.js HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:13 GMT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a61b1a8-93db\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Thu, 23 Jul 2026 06:16:08 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/23/2026 10:17:24\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 59538aafbd01b936c27f578987e1ddf4\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":37851,"size_decoded":12352,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, Unicode text, UTF-8 text, with very long lines (3061)","md5":"b0a9dc3ad75e03716e75c6158c6665eb","sha1":"cc52478acf48fcf65d13e1af2f686a604445c191","sha256":"4c5253886cb97a3488ee3431d937a5bb8ba43a1d9e958f64a58c74058ee89d79","sha512":"40b53df94ba71d18618cbe094f77f3272fb81b6d85327e7180dc360e098dd978c5a43d011cd4d7d200c9e4960019921ca1ae6049edfcd9c72b60d66665a07806","ssdeep":"768:CY0sz5iGWN4Y9mdwv5ltpbE6n6GVfW5tXlGh2rIT1E1ab2IX73BMuLXggXUDvHLA:ZiwihpQehg5tXlGAS1E1yVzPIpsh","tlshash":"c203e775f2b2707122aa4093c8bb015387ae05fb5045112cf76dd5de2b6dc59fa3ab38","first_seen":"2026-07-23T13:54:09.077158Z","last_seen":"2026-07-27T12:53:06.191398Z","times_seen":292,"resource_available":true,"data":"InVzZSBzdHJpY3QiOyhzZWxmLndlYnBhY2tDaHVua3RyYWRpbmd2aWV3PXNlbGYud2VicGFja0NodW5rdHJhZGluZ3ZpZXd8fFtdKS5wdXNoKFtbOTUyNDRdLHs3NjI4NTEoZSx0LHMpe2Z1bmN0aW9uIG4oZSl7cmV0dXJuIGUrIuKApiJ9cy5kKHQse2FwcGVuZEVsbGlwc2lzOigpPT5ufSl9LDk1MjkwMChlLHQscyl7cy5kKHQse2FjY3VtdWxhdGU6KCk9PmEsYWNjdW11bGF0ZURlZmVycmVkOigpPT5sLGNvbWJpbmU6KCk9Pm8sY29tYmluZVdpdGhGaWx0ZXJlZFVwZGF0ZTooKT0+cn0pO3ZhciBuPXMoMjMyMzY0KTtmdW5jdGlvbiBpKGUsdCwuLi5zKXtsZXQgaT1udWxsO2NvbnN0IHI9KC4uLnQpPT5lKC4uLnQubWFwKChlPT5lLnZhbHVlKCkpKSxpPy52YWx1ZSgpKSxvPWk9bmV3IG4uV2F0Y2hlZFZhbHVlKHIoLi4ucykpLGE9KCk9Pntjb25zdCBlPXMubWFwKCgoZSx0KT0+ZS52YWx1ZSgpKSk7dCguLi5lKSYmby5zZXRWYWx1ZShyKC4uLnMpKX0sbD1zLm1hcCgoZT0+ZS5zcGF3bigpKSk7Zm9yKGNvbnN0IGUgb2YgbCllLnN1YnNjcmliZShhKTtyZXR1cm4gby5yZWFkb25seSgpLnNwYXduKCgoKT0+e2wuZm9yRWFjaCgoZT0+ZS5kZXN0cm95KCkpKSxzLmZvckVhY2goKGU9PmUucmVsZWFzZSgpKSl9KSl9ZnVuY3Rpb24gcihlLHQsLi4ucyl7cmV0dXJuIGkoZSx0LC4uLnMpfWZ1bmN0aW9uIG8oZSwuLi50KXtyZXR1cm4gaShlLCgoKT0+ITApLC4uLnQpfWZ1bmN0aW9uIGEoZSx0LC4uLnMpe2xldCBpPW51bGw7Y29uc3Qgcj1vKCgoLi4uZSk9PihlLnNwbGljZSgtMSksZSkpLC4uLnMpLGE9dC5zcGF3bigpLGw9KHQsLi4ucyk9Pntjb25zdCBuPXQubWFwKChlPT5lLnZhbHVlKCkpKTtyZXR1cm4gZShuLC4uLnMsaT8udmFsdWUoKSl9LHU9aT1uZXcgbi5XYXRjaGVkVmFsdWUobChhLnZhbHVlKCksLi4uci52YWx1ZSgpKSk7bGV0IGM9W107Y29uc3QgaD0oKT0+e3Uuc2V0VmFsdWUobChjLC4uLnIudmFsdWUoKSkpfSxkPWU9PntjLmZvckVhY2goKGU9PmUuZGVzb3koKSkpLGM9ZS5tYXAoKGU9PmUuc3Bhd24oKSkpLGMuZm9yRWFjaCgoZT0+ZS5zdWJzY3JpYmUoaCkpKSxoKCl9O2QoYS52YWx1ZSgpKSxhLnN1YnNjcmliZShkKSxyLnN1YnNjcmliZShoKTtyZXR1cm4gdS5yZWFkb25seSgpLnNwYXduKCgoKT0+e2MuZm9yRWFjaCgoZT0+ZS5kZXN0cm95KCkpKSxhLmRlc3Ryb3koKSxyLmRlc3Ryb3koKSx0LnJlbGVhc2UoKX0pKX1mdW5jdGlvbiBsKGUsdCwuLi5zKXtsZXQgaT1udWxsLHI9bnVsbDtjb25zdCBhPW8oKCguLi5lKT0+KGUuc3BsaWNlKC0xKSxlKSksLi4ucyksbD10LnNwYXduKCksdT0odCwuLi5zKT0+e2NvbnN0IG49dC5tYXAoKGU9PmUudmFsdWUoKSkpO3JldHVybiBlKG4sLi4ucyxpPy52YWx1ZSgpKX0sYz1pPW5ldyBuLldhdGNoZWRWYWx1ZSh1KGwudmFsdWUoKSwuLi5hLnZhbHVlKCkpKTtsZXQgaD1bXTtjb25zdCBkPWU9PnNldFRpbWVvdXQoZSwwKSx5PSgpPT57ciYmY2xlYXJUaW1lb3V0KHIpLHI9ZCgoKCk9Pntjb25zdCBlPXUoaCwuLi5hLnZhbHVlKCkpO3I9ZCgoKCk9PntjLnNldFZhbHVlKGUpfSkpfSkpfSxiPWU9PntoLmZvckVhY2goKGU9PmUuZGVzdHJveSgpKSksaD1lLm1hcCgoZT0+ZS5zcGF3bigpKSksaC5mb3JFYWNoKChlPT5lLnN1YnNjcmliZSh5KSkpLHkoKX07YihsLnZhbHVlKCkpLGwuc3Vic2NyaWJlKGIpLGEuc3Vic2NyaWJlKHkpO3JldHVybiBjLnJlYWRvbmx5KCkuc3Bhd24oKCgpPT57ciYmY2xlYXJUaW1lb3V0KHIpLGguZm9yRWFjaCgoZT0+ZS5kZXN0cm95KCkpKSxsLmRlc3Ryb3koKSxhLmRlc3Ryb3koKSx0LnJlbGVhc2UoKX0pKX19LDI0MTk1NihlLHQscyl7cy5kKHQse2NyZWF0ZVdWRnJvbUdldHRlckFuZFN1YnNjcmlwdGlvbjooKT0+aX0pO3ZhciBuPXMoMjMyMzY0KTtmdW5jdGlvbiBpKGUsdCl7Y29uc3Qgcz1uZXcgbi5XYXRjaGVkVmFsdWUoZSgpKSxpPXt9O3Quc3Vic2NyaWJlKGksKCgpPT57cy5zZXRWYWx1ZShlKHMudmFsdWUoKSkpfSkpO3JldHVybiBzLnJlYWRvbmx5KCkuc3Bhd24oKCgpPT50LnVuc3Vic2NyaWJlQWxsKGkpKSl9fSw4NTI5ODAoZSx0LHMpe2Z1bmN0aW9uIG4oZSx0LHMsbixpKXtjb25zdHtwYXlBdHRlbnRpb25Ub1RpY2tlck5vdFN5bWJvbDpyLHVzZVRpY2tlck9uU3ltYm9sSW5mb1VwZGF0ZTpvLGNoYXJ0aW5nTGlicmFyeVNpbmdsZVN5bWJvbFJlcXVlc3Q6YSx1cHBlcmNhc2VJbnN0cnVtZW50TmFtZXM6bH09ZTtsZXQgdT10JiYobiYmdC5wcm9fbmFtZXx8dC5mdWxsX25hbWV8fHQubmFtZSk7cmV0dXJuIGEmJnM/dT1zOihvfHwhaSYmcikmJnQmJnQudGlja2VyJiYodT10LnRpY2tlciksbCYmdSYmKHU9dS50b1VwcGVyQ2FzZSgpKSx1fXMuZCh0LHtleHRyYWN0U3ltYm9sTmFtZUZyb21TeW1ib2xJbmZvOigpPT5ufSl9LDU5NjcwNihlLHQscyl7cy5kKHQse2lzQ0ZEU3ltYm9sOigpPT5uLGlzQ3J5cHRvU3ltYm9sOigpPT5yLGlzSGlwM1N5bWJvbDooKT0+byxpc1N0b2NrU3ltYm9sOigpPT5pfSk7ZnVuY3Rpb24gbihlLHQpe3JldHVybiBCb29sZWFuKHQ/LmluY2x1ZGVzKCJjZmQiKSkmJlsiY29tbW9kaXR5IiwiZnV0dXJlcyIsImluZGV4Iiwic3RvY2siLCJmdW5kIl0uaW5jbHVkZXMoZSl9ZnVuY3Rpb24gaShlLHQpe3JldHVybiJzdG9jayI9PT1lJiZ2b2lkIDAhPT10JiYhdC5pbmNsdWRlcygiY2ZkIikmJiF0LmluY2x1ZGVzKCJuZGYiKX1mdW5jdGlvbiByKGUpe3JldHVybiB2b2lkIDAhPT1lJiZlLmluY2x1ZGVzKCJjcnlwdG8iKX1mdW5jdGlvbiBvKGUpe3JldHVybiB2b2lkIDAhPT1lJiZlLmluY2x1ZGVzKCJoaXAzIil9fSwyMjUyOTgoZSx0LHMpe3MuZCh0LHtsaW5raW5nOigpPT5XfSk7dmFyIG49cyg1NDc4NTEpLGk9cygxMzg2MzgpLHI9cygyMjEwNjEpLG89KHMoOTMwMjMxKSxzKDIzMjM2NCkpLGE9cygyNTQ2NzMpLGw9cygxMjg5OTgpLHU9cyg5NTI5MDApLGM9cygyNDE5NTYpO3ZhciBoPXMoOTMwNTY2KSxkPXMoNjMxNjM0KSx5PXMoNzk4MzgpLGI9cyg3Nzg5NDYpLG09cyg3NzQ1MDcpLHA9cygzNjIyMzkpCjt2YXIgUz1zKDM4MzM1MSksXz1zKDcwMTUwNiksZz1zKDY4Mjc3OSksdj1zKDIwOTM5KTtjb25zdCB3PSgwLHIuZ2V0TG9nZ2VyKSgiTGlua2luZyIpO3ZhciBmLEM7IWZ1bmN0aW9uKGUpe2VbZS5Ob3RCb3VuZD0wXT0iTm90Qm91bmQiLGVbZS5Cb3VuZFRvV2lkZ2V0PTFdPSJCb3VuZFRvV2lkZ2V0IixlW2UuQm91bmRUb01vZGVsPTJdPSJCb3VuZFRvTW9kZWwifShmfHwoZj17fSkpLGZ1bmN0aW9uKGUpe2VbZS5TeW1ib2w9MF09IlN5bWJvbCIsZVtlLlJlc29sdXRpb249MV09IlJlc29sdXRpb24ifShDfHwoQz17fSkpO2NsYXNzIGt7Y29uc3RydWN0b3IoZSx0LHMpe3RoaXMud2F0Y2hlZFN5bWJvbHM9bmV3IG8uV2F0Y2hlZFZhbHVlKFtdKSx0aGlzLndhdGNoZWRTeW1ib2w9bmV3IG8uV2F0Y2hlZFZhbHVlLHRoaXMuc2VyaWVzU2hvcnRTeW1ib2w9bmV3IG8uV2F0Y2hlZFZhbHVlLHRoaXMucHJvU3ltYm9sPW5ldyBvLldhdGNoZWRWYWx1ZSx0aGlzLmVuc3VyZWRQcm9TeW1ib2w9bmV3IG8uV2F0Y2hlZFZhbHVlLHRoaXMud2F0Y2hlZEludGVydmFsPW5ldyBvLldhdGNoZWRWYWx1ZSx0aGlzLndhdGNoZWRJbnRyYWRheT1uZXcgby5XYXRjaGVkVmFsdWUsdGhpcy53YXRjaGVkU2Vjb25kcz1uZXcgby5XYXRjaGVkVmFsdWUsdGhpcy53YXRjaGVkVGlja3M9bmV3IG8uV2F0Y2hlZFZhbHVlLHRoaXMud2F0Y2hlZERhdGFGcmVxdWVuY3lSZXNvbHV0aW9uPW5ldyBvLldhdGNoZWRWYWx1ZSx0aGlzLndhdGNoZWRSYW5nZT1uZXcgby5XYXRjaGVkVmFsdWUsdGhpcy53YXRjaGVkU3VwcG9ydGVkUmVzb2x1dGlvbnM9bmV3IG8uV2F0Y2hlZFZhbHVlLHRoaXMud2F0Y2hlZFN1cHBvcnRlZENoYXJ0U3R5bGVzPW5ldyBvLldhdGNoZWRWYWx1ZSx0aGlzLnN5bWJvbE5hbWVzTGlzdD1uZXcgby5XYXRjaGVkVmFsdWUsdGhpcy5fY2hhcnRXaWRnZXRDb2xsZWN0aW9uPW51bGwsdGhpcy5fY2hhcnRXaWRnZXRCaW5kaW5nU3RhdGU9MCx0aGlzLl9hY3RpdmVDaGFydFdpZGdldD1udWxsLHRoaXMuX2xpbmtpbmdHcm91cENoYXJ0cz1udWxsLHRoaXMuX2JvdW5kQ2hhcnRXaWRnZXQ9bnVsbCx0aGlzLl93YXRjaGVkU3ltYm9sTGlzdGVuZXJCb3VuZD10aGlzLl93YXRjaGVkU3ltYm9sTGlzdGVuZXIuYmluZCh0aGlzKSx0aGlzLl93YXRjaGVkSW50ZXJ2YWxMaXN0ZW5lckJvdW5kPXRoaXMuX3dhdGNoZWRJbnRlcnZhbExpc3RlbmVyLmJpbmQodGhpcyksdGhpcy5fc2V0R3JvdXBTeW1ib2xDYW5jZWxsYXRpb25Ub2tlbj17Y2FuY2VsbGVkOiExfSx0aGlzLl9tdXRlZD0hMSx0aGlzLnVwZGF0ZUJvdW5kQ2hhcnRXaWRnZXQ9KCk9Pntjb25zdCBlPXRoaXMuX2NoYXJ0VG9CaW5kKCk7ZSE9PXRoaXMuX2JvdW5kQ2hhcnRXaWRnZXQmJihudWxsPT09ZT90aGlzLnVuYmluZEZyb21DaGFydFdpZGdldCgpOnRoaXMuYmluZFRvQ2hhcnRXaWRnZXQoZSkpfSx0aGlzLl91cGRhdGVBbGxHcm91cENoYXJ0V2lkZ2V0cz0oKT0+e3RoaXMuX2Rlc3Ryb3lTeW1ib2xJbnRlcnZhbFByb3BlcnR5U3Vic2NyaXB0aW9ucz8uKCk7Y29uc3QgZT0oMCxpLmVuc3VyZU5vdE51bGwpKHRoaXMuX2xpbmtpbmdHcm91cENoYXJ0cykudmFsdWUoKSx0PVtdLHM9W107Zm9yKGNvbnN0IG4gb2YgZSl7Y29uc3QgZT1uLnN5bWJvbFdWKCkuc3Bhd24oKSxpPW4ucmVzb2x1dGlvbldWKCkuc3Bhd24oKTtlLnN1YnNjcmliZSh0aGlzLl91cGRhdGVTeW1ib2xCeVByb3BlcnR5LmJpbmQodGhpcyxuKSksaS5zdWJzY3JpYmUodGhpcy5fdXBkYXRlSW50ZXJ2YWxCeVByb3BlcnR5LmJpbmQodGhpcyxuKSksdC5wdXNoKGUpLHMucHVzaChpKX10aGlzLl9kZXN0cm95U3ltYm9sSW50ZXJ2YWxQcm9wZXJ0eVN1YnNjcmlwdGlvbnM9KCk9Pnt0LmZvckVhY2goKGU9PmUuZGVzdHJveSgpKSkscy5mb3JFYWNoKChlPT5lLmRlc3Ryb3koKSkpLHRoaXMuX2Rlc3Ryb3lTeW1ib2xJbnRlcnZhbFByb3BlcnR5U3Vic2NyaXB0aW9ucz12b2lkIDB9O2NvbnN0IG49dGhpcy53YXRjaGVkU3ltYm9sLnZhbHVlKCk7ZS5sZW5ndGg+MSYmdGhpcy5fbmVlZEFwcGx5U3ltYm9sKG4pJiYhdGhpcy5fbXV0ZWQmJnRoaXMuX3NldEdyb3VwU3ltYm9sKG4pO2NvbnN0IHI9dGhpcy53YXRjaGVkSW50ZXJ2YWwudmFsdWUoKTtlLmxlbmd0aD4xJiZ0aGlzLl9uZWVkQXBwbHlJbnRlcnZhbChyKSYmIXRoaXMuX211dGVkJiZ0aGlzLl9zZXRHcm91cEludGVydmFsKHIpLHRoaXMudXBkYXRlQm91bmRDaGFydFdpZGdldCgpfSx0aGlzLl9ncm91cEluZGV4PWU7Y29uc3Qgbj0oZSx0KT0+e2Uuc3Vic2NyaWJlKChlPT57cygpPT09dGhpcyYmdC5zZXRWYWx1ZShlKX0pLHtjYWxsV2l0aExhc3Q6ITB9KX07bih0aGlzLndhdGNoZWRTeW1ib2xzLHQud2F0Y2hlZFN5bWJvbHMpLG4odGhpcy53YXRjaGVkU3ltYm9sLHQud2F0Y2hlZFN5bWJvbCksbih0aGlzLnNlcmllc1Nob3J0U3ltYm9sLHQuc2VyaWVzU2hvcnRTeW1ib2wpLG4odGhpcy5wcm9TeW1ib2wsdC5wcm9TeW1ib2wpLG4odGhpcy5lbnN1cmVkUHJvU3ltYm9sLHQuZW5zdXJlZFByb1N5bWJvbCksbih0aGlzLndhdGNoZWRJbnRlcnZhbCx0LndhdGNoZWRJbnRlcnZhbCksbih0aGlzLndhdGNoZWRJbnRyYWRheSx0LndhdGNoZWRJbnRyYWRheSksbih0aGlzLndhdGNoZWRTZWNvbmRzLHQud2F0Y2hlZFNlY29uZHMpLG4odGhpcy53YXRjaGVkVGlja3MsdC53YXRjaGVkVGlja3MpLG4odGhpcy53YXRjaGVkRGF0YUZyZXF1ZW5jeVJlc29sdXRpb24sdC53YXRjaGVkRGF0YUZyZXF1ZW5jeVJlc29sdXRpb24pLG4odGhpcy53YXRjaGVkUmFuZ2UsdC53YXRjaGVkUmFuZ2UpLG4odGhpcy53YXRjaGVkU3VwcG9ydGVkUmVzb2x1dGlvbnMsdC53YXRjaGVkU3VwcG9ydGVkUmVzb2x1dGlvbnMpLG4odGhpcy53YXRjaGVkU3VwcG9ydGVkQ2hhcnRTdHlsZXMsdC53YXRjaGVkU3VwcG9ydGVkQ2hhcnRTdHlsZXMpLG4odGhpcy5zeW1ib2xOYW1lc0xpc3QsdC5zeW1ib2xOYW1lc0xpc3QpLHRoaXMud2F0Y2hlZFN5bWJvbC5zdWJzY3JpYmUoKGU9PnsKdGhpcy5fYm91bmRDaGFydFdpZGdldCYmdGhpcy5fYm91bmRDaGFydFdpZGdldC5oYXNNb2RlbCgpJiZ0aGlzLm1haW5TZXJpZXMoKS5zeW1ib2xTYW1lQXNDdXJyZW50KGUpfHx0aGlzLnByb1N5bWJvbC5zZXRWYWx1ZShlKX0pLHtjYWxsV2l0aExhc3Q6ITB9KX1tdXRlKGUpe3RoaXMuX211dGVkPWV9YmluZFRvQ2hhcnRXaWRnZXRDb2xsZWN0aW9uKGUpe3RoaXMudW5iaW5kRnJvbUNoYXJ0V2lkZ2V0Q29sbGVjdGlvbigpLHRoaXMuX2NoYXJ0V2lkZ2V0Q29sbGVjdGlvbj1lLHRoaXMuX2FjdGl2ZUNoYXJ0V2lkZ2V0PWUuYWN0aXZlQ2hhcnRXaWRnZXQuc3Bhd24oKSx0aGlzLl9hY3RpdmVDaGFydFdpZGdldC5zdWJzY3JpYmUodGhpcy51cGRhdGVCb3VuZENoYXJ0V2lkZ2V0KSx0aGlzLl9saW5raW5nR3JvdXBDaGFydHM9ZS5saW5raW5nR3JvdXBzQ2hhcnRzKHRoaXMuX2dyb3VwSW5kZXgpLnNwYXduKCksdGhpcy5fbGlua2luZ0dyb3VwQ2hhcnRzLnN1YnNjcmliZSh0aGlzLl91cGRhdGVBbGxHcm91cENoYXJ0V2lkZ2V0cyksdGhpcy51cGRhdGVCb3VuZENoYXJ0V2lkZ2V0KCksdGhpcy5fdXBkYXRlQWxsR3JvdXBDaGFydFdpZGdldHMoKTtjb25zdCB0PWZ1bmN0aW9uKGUpe2NvbnN0IHQ9KDAsdS5jb21iaW5lKSgoKCk9PmUuZ2V0QWxsKCkuZmlsdGVyKChlPT5lLmlzVmlzaWJsZSgpJiZlLmhhc01vZGVsKCkpKS5tYXAoKGU9PigwLGMuY3JlYXRlV1ZGcm9tR2V0dGVyQW5kU3Vic2NyaXB0aW9uKSgoKCk9PmUubW9kZWwoKS5tYWluU2VyaWVzKCkuc3ltYm9sKCkpLGUubW9kZWwoKS5tYWluU2VyaWVzKCkuc3ltYm9sUmVzb2x2ZWQoKSkub3duZXJzaGlwKCkpKSksZS5jaGFydE1vZGVscygpLndlYWtSZWZlcmVuY2UoKSxlLmxheW91dC53ZWFrUmVmZXJlbmNlKCkpO3JldHVybigwLHUuYWNjdW11bGF0ZSkoKGU9PmUpLHQub3duZXJzaGlwKCkpfShlKTt0LnN1YnNjcmliZSgoZT0+e3RoaXMud2F0Y2hlZFN5bWJvbHMuc2V0VmFsdWUoZSl9KSksdGhpcy53YXRjaGVkU3ltYm9scy5zZXRWYWx1ZSh0LnZhbHVlKCkpfXVuYmluZEZyb21DaGFydFdpZGdldENvbGxlY3Rpb24oKXt0aGlzLnVuYmluZEZyb21DaGFydFdpZGdldCgpLHRoaXMuX2NoYXJ0V2lkZ2V0Q29sbGVjdGlvbj1udWxsLHRoaXMuX2FjdGl2ZUNoYXJ0V2lkZ2V0Py5kZXN0cm95KCksdGhpcy5fYWN0aXZlQ2hhcnRXaWRnZXQ9bnVsbCx0aGlzLl9saW5raW5nR3JvdXBDaGFydHM/LmRlc3Ryb3koKSx0aGlzLl9saW5raW5nR3JvdXBDaGFydHM9bnVsbCx0aGlzLl9kZXN0cm95U3ltYm9sSW50ZXJ2YWxQcm9wZXJ0eVN1YnNjcmlwdGlvbnM/LigpfWJpbmRUb0NoYXJ0V2lkZ2V0KGUpe2lmKHRoaXMudW5iaW5kRnJvbUNoYXJ0V2lkZ2V0KCksdGhpcy5fYm91bmRDaGFydFdpZGdldD1lLGUuaGFzTW9kZWwoKSlyZXR1cm4gdm9pZCB0aGlzLl9vbkNoYXJ0TW9kZWxDcmVhdGVkKGUubW9kZWwoKSk7ZS5tb2RlbENyZWF0ZWQoKS5zdWJzY3JpYmUodGhpcyx0aGlzLl9vbkNoYXJ0TW9kZWxDcmVhdGVkLCEwKSx0aGlzLl9jaGFydFdpZGdldEJpbmRpbmdTdGF0ZT0xO2NvbnN0IHQ9ZS5tYWluU2VyaWVzUHJvcGVydGllcygpLmNoaWxkcygpO3RoaXMud2F0Y2hlZFN5bWJvbC5zZXRWYWx1ZSh0LnN5bWJvbC52YWx1ZSgpKSx0aGlzLndhdGNoZWRJbnRlcnZhbC5zZXRWYWx1ZSh0LmludGVydmFsLnZhbHVlKCkpLHRoaXMuX2JvdW5kQ2hhcnRXaWRnZXQubGlua2luZ0dyb3VwSW5kZXgoKS5zdWJzY3JpYmUodGhpcy51cGRhdGVCb3VuZENoYXJ0V2lkZ2V0KX11bmJpbmRGcm9tQ2hhcnRXaWRnZXQoKXtjb25zdCBlPXRoaXMuX2JvdW5kQ2hhcnRXaWRnZXQ7aWYobnVsbCE9PWUpe3N3aXRjaCh0aGlzLl9jaGFydFdpZGdldEJpbmRpbmdTdGF0ZSl7Y2FzZSAxOmUubW9kZWxDcmVhdGVkKCkudW5zdWJzY3JpYmVBbGwodGhpcyk7YnJlYWs7Y2FzZSAyOnRoaXMud2F0Y2hlZFN5bWJvbC51bnN1YnNjcmliZSh0aGlzLl93YXRjaGVkU3ltYm9sTGlzdGVuZXJCb3VuZCk7Y29uc3QgdD10aGlzLm1haW5TZXJpZXMoKS5kYXRhRXZlbnRzKCk7dC5zeW1ib2xSZXNvbHZlZCgpLnVuc3Vic2NyaWJlQWxsKHRoaXMpLHQuc3ltYm9sRXJyb3IoKS51bnN1YnNjcmliZUFsbCh0aGlzKSx0aGlzLm1haW5TZXJpZXMoKS5vbkludGVydmFsQ2hhbmdlZCgpLnVuc3Vic2NyaWJlQWxsKHRoaXMpLHRoaXMud2F0Y2hlZEludGVydmFsLnVuc3Vic2NyaWJlKHRoaXMuX3dhdGNoZWRJbnRlcnZhbExpc3RlbmVyQm91bmQpLGRlbGV0ZSB0aGlzLndhdGNoZWRTeW1ib2wud3JpdGVMb2NrfWUubGlua2luZ0dyb3VwSW5kZXgoKS51bnN1YnNjcmliZSh0aGlzLnVwZGF0ZUJvdW5kQ2hhcnRXaWRnZXQpLHRoaXMuX2JvdW5kQ2hhcnRXaWRnZXQ9bnVsbCx0aGlzLl9jaGFydFdpZGdldEJpbmRpbmdTdGF0ZT0wfX1ib3VuZENoYXJ0V2lkZ2V0KCl7cmV0dXJuIHRoaXMuX2JvdW5kQ2hhcnRXaWRnZXR9bWFpblNlcmllcygpe2lmKCF0aGlzLl9ib3VuZENoYXJ0V2lkZ2V0KXRocm93IG5ldyBFcnJvcigiQ2hhcnRXaWRnZXQgaXMgdW5kZWZpbmVkIik7cmV0dXJuIHRoaXMuX2JvdW5kQ2hhcnRXaWRnZXQubW9kZWwoKS5tYWluU2VyaWVzKCl9X3dhdGNoZWRTeW1ib2xMaXN0ZW5lcihlKXt0aGlzLl9uZWVkQXBwbHlTeW1ib2woZSkmJiF0aGlzLl9tdXRlZCYmdGhpcy5fc2V0R3JvdXBTeW1ib2woZSl9X3VwZGF0ZVN5bWJvbEJ5UHJvcGVydHkoZSx0KXtjb25zdCBzPXRoaXMuX3N5bWJvbExvY2soKTtzJiZ0aGlzLl9uZWVkQXBwbHlTeW1ib2wodCkmJiF0aGlzLl9tdXRlZCYmdGhpcy5fc2V0R3JvdXBTeW1ib2wodCksKHN8fGU9PT10aGlzLl9ib3VuZENoYXJ0V2lkZ2V0KSYmdGhpcy53YXRjaGVkU3ltYm9sLnNldFZhbHVlKHQpfV93YXRjaGVkSW50ZXJ2YWxMaXN0ZW5lcihlKXtjb25zdCB0PWEuSW50ZXJ2YWwubm9ybWFsaXplKGUpO3QmJnRoaXMuX25lZWRBcHBseUludGVydmFsKHQpJiYhdGhpcy5fbXV0ZWQmJnRoaXMuX3NldEdyb3VwSW50ZXJ2YWwodCl9X3VwZGF0ZUludGVydmFsQnlQcm9wZXJ0eShlLHQpewpjb25zdCBzPXRoaXMuX2ludGVydmFsTG9jaygpLG49YS5JbnRlcnZhbC5ub3JtYWxpemUodCk7cyYmbiYmdGhpcy5fbmVlZEFwcGx5SW50ZXJ2YWwobikmJiF0aGlzLl9tdXRlZCYmdGhpcy5fc2V0R3JvdXBJbnRlcnZhbChuKSwoc3x8ZT09PXRoaXMuX2JvdW5kQ2hhcnRXaWRnZXQpJiZ0aGlzLndhdGNoZWRJbnRlcnZhbC5zZXRWYWx1ZShuPz90KX1fdXBkYXRlU2VyaWVzU3ltYm9sSW5mbygpe3RoaXMuc2VyaWVzU2hvcnRTeW1ib2wuc2V0VmFsdWUoKDAsaS5lbnN1cmVOb3ROdWxsKSh0aGlzLl9ib3VuZENoYXJ0V2lkZ2V0KS5nZXRTeW1ib2woITApKTtjb25zdCBlPXRoaXMubWFpblNlcmllcygpLnN5bWJvbEluZm8oKTtpZihlKXtjb25zdCB0PWUucHJvX25hbWV8fCExO3RoaXMucHJvU3ltYm9sLnNldFZhbHVlKHR8fHRoaXMud2F0Y2hlZFN5bWJvbC52YWx1ZSgpKSx0aGlzLmVuc3VyZWRQcm9TeW1ib2wuc2V0VmFsdWUodGhpcy5wcm9TeW1ib2wudmFsdWUoKSksZS5hbGlhc2VzJiZ0aGlzLnN5bWJvbE5hbWVzTGlzdC5zZXRWYWx1ZShlLmFsaWFzZXMpO2xldCBzPSgwLF8uYWxsQ2hhcnRTdHlsZXMpKCk7KCgwLGwuaXNDbG9zZUJhc2VkU3ltYm9sKShlKXx8dGhpcy5tYWluU2VyaWVzKCkuaW50ZXJ2YWxPYmooKS52YWx1ZSgpLmlzMVRpY2soKSkmJihzPXMuZmlsdGVyKChlPT4oMCxsLmlzU2luZ2xlVmFsdWVCYXNlZFN0eWxlKShlKSkpKSwiaGxjIj09PWUudmlzaWJsZV9wbG90c19zZXQmJihzPXMuZmlsdGVyKChlPT4oMCxsLmlzSExDQmFzZWRTdHlsZSkoZSl8fCgwLGwuaXNTaW5nbGVWYWx1ZUJhc2VkU3R5bGUpKGUpKSkpLHRoaXMud2F0Y2hlZFN1cHBvcnRlZENoYXJ0U3R5bGVzLnNldFZhbHVlKHMpLHRoaXMud2F0Y2hlZEludHJhZGF5LnNldFZhbHVlKCEhZS5oYXNfaW50cmFkYXkpLHRoaXMud2F0Y2hlZFNlY29uZHMuc2V0VmFsdWUoISFlLmhhc19zZWNvbmRzKSx0aGlzLndhdGNoZWRUaWNrcy5zZXRWYWx1ZSghKDAsbC5pc0Nsb3NlQmFzZWRTeW1ib2wpKGUpJiYhIWVbImlzLXRpY2tiYXJzLWF2YWlsYWJsZSJdKSx0aGlzLndhdGNoZWRSYW5nZS5zZXRWYWx1ZSghKDAsbC5pc0Nsb3NlQmFzZWRTeW1ib2wpKGUpKTtjb25zdCBuPWUuZGF0YV9mcmVxdWVuY3k/ZS5kYXRhX2ZyZXF1ZW5jeTp2b2lkIDA7dGhpcy53YXRjaGVkRGF0YUZyZXF1ZW5jeVJlc29sdXRpb24uc2V0VmFsdWUobil9ZWxzZSB0aGlzLndhdGNoZWRJbnRyYWRheS5zZXRWYWx1ZSghMSksdGhpcy53YXRjaGVkU2Vjb25kcy5zZXRWYWx1ZSghMSksdGhpcy53YXRjaGVkVGlja3Muc2V0VmFsdWUoITEpLHRoaXMud2F0Y2hlZFJhbmdlLnNldFZhbHVlKCExKSx0aGlzLm1haW5TZXJpZXMoKS5pc0ZhaWxlZCgpJiZ0aGlzLmVuc3VyZWRQcm9TeW1ib2wuc2V0VmFsdWUodGhpcy5wcm9TeW1ib2wudmFsdWUoKSl9X29uQ2hhcnRNb2RlbENyZWF0ZWQoZSl7aWYoIXRoaXMuX2JvdW5kQ2hhcnRXaWRnZXQpdGhyb3cgbmV3IEVycm9yKCJDaGFydFdpZGdldCBpcyB1bmRlZmluZWQiKTt0aGlzLl9jaGFydFdpZGdldEJpbmRpbmdTdGF0ZT0yLHRoaXMud2F0Y2hlZFN5bWJvbC5zZXRWYWx1ZSh0aGlzLl9ib3VuZENoYXJ0V2lkZ2V0LnN5bWJvbFdWKCkudmFsdWUoKSksdGhpcy53YXRjaGVkU3ltYm9sLnN1YnNjcmliZSh0aGlzLl93YXRjaGVkU3ltYm9sTGlzdGVuZXJCb3VuZCk7Y29uc3QgdD1lLm1haW5TZXJpZXMoKS5kYXRhRXZlbnRzKCk7dC5zeW1ib2xSZXNvbHZlZCgpLnN1YnNjcmliZSh0aGlzLHRoaXMuX3VwZGF0ZVNlcmllc1N5bWJvbEluZm8pLHQuc3ltYm9sRXJyb3IoKS5zdWJzY3JpYmUodGhpcyx0aGlzLl91cGRhdGVTZXJpZXNTeW1ib2xJbmZvKSxlLm1haW5TZXJpZXMoKS5vbkludGVydmFsQ2hhbmdlZCgpLnN1YnNjcmliZSh0aGlzLHRoaXMuX3VwZGF0ZVNlcmllc1N5bWJvbEluZm8pLHRoaXMuX3VwZGF0ZVNlcmllc1N5bWJvbEluZm8oKSx0aGlzLndhdGNoZWRJbnRlcnZhbC5zZXRWYWx1ZSh0aGlzLl9ib3VuZENoYXJ0V2lkZ2V0LnJlc29sdXRpb25XVigpLnZhbHVlKCkpLHRoaXMud2F0Y2hlZEludGVydmFsLnN1YnNjcmliZSh0aGlzLl93YXRjaGVkSW50ZXJ2YWxMaXN0ZW5lckJvdW5kKSx0aGlzLl9ib3VuZENoYXJ0V2lkZ2V0LnJlYWRPbmx5KCkmJih0aGlzLndhdGNoZWRTeW1ib2wud3JpdGVMb2NrPSEwKX1fY2hhcnRUb0JpbmQoKXtjb25zdCBlPXRoaXMuX2NoYXJ0V2lkZ2V0Q29sbGVjdGlvbjtyZXR1cm4gbnVsbD09PWU/bnVsbDplLmFjdGl2ZUNoYXJ0V2lkZ2V0LnZhbHVlKCkubGlua2luZ0dyb3VwSW5kZXgoKS52YWx1ZSgpPT09dGhpcy5fZ3JvdXBJbmRleD9lLmFjdGl2ZUNoYXJ0V2lkZ2V0LnZhbHVlKCk6bnVsbCE9PXRoaXMuX2JvdW5kQ2hhcnRXaWRnZXQmJnRoaXMuX2JvdW5kQ2hhcnRXaWRnZXQubGlua2luZ0dyb3VwSW5kZXgoKS52YWx1ZSgpPT09dGhpcy5fZ3JvdXBJbmRleD90aGlzLl9ib3VuZENoYXJ0V2lkZ2V0OmUuZ2V0QWxsKCkuZmluZCgoZT0+ZS5saW5raW5nR3JvdXBJbmRleCgpLnZhbHVlKCk9PT10aGlzLl9ncm91cEluZGV4KSk/P251bGx9X3N5bWJvbExvY2soKXtyZXR1cm4hIXRoaXMuX2NoYXJ0V2lkZ2V0Q29sbGVjdGlvbj8ubG9jay5zeW1ib2wudmFsdWUoKX1faW50ZXJ2YWxMb2NrKCl7cmV0dXJuISF0aGlzLl9jaGFydFdpZGdldENvbGxlY3Rpb24/LmxvY2suaW50ZXJ2YWwudmFsdWUoKX1fY2hhcnRzRm9yTG9jayhlKXtyZXR1cm4oMD09PWU/dGhpcy5fc3ltYm9sTG9jaygpOnRoaXMuX2ludGVydmFsTG9jaygpKT8oMCxpLmVuc3VyZU5vdE51bGwpKHRoaXMuX2xpbmtpbmdHcm91cENoYXJ0cykudmFsdWUoKTp0aGlzLl9ib3VuZENoYXJ0V2lkZ2V0P1t0aGlzLl9ib3VuZENoYXJ0V2lkZ2V0XTpbXX1fc2V0R3JvdXBTeW1ib2woZSl7dGhpcy5tdXRlKCEwKSx0aGlzLl9zZXRHcm91cFN5bWJvbENhbmNlbGxhdGlvblRva2VuLmNhbmNlbGxlZD0hMDtjb25zdCB0PXRoaXMuX3NldEdyb3VwU3ltYm9sQ2FuY2VsbGF0aW9uVG9rZW49e2NhbmNlbGxlZDohMX07KDAsCmkuZW5zdXJlTm90TnVsbCkodGhpcy5fY2hhcnRXaWRnZXRDb2xsZWN0aW9uKS5zZXRTeW1ib2woZSx0aGlzLl9ncm91cEluZGV4LCgwLGkuZW5zdXJlTm90TnVsbCkodGhpcy5fYm91bmRDaGFydFdpZGdldCkpLmZpbmFsbHkoKCgpPT57aWYodGhpcy5fYm91bmRDaGFydFdpZGdldCYmIXQuY2FuY2VsbGVkKXtjb25zdCB0PXRoaXMuX2JvdW5kQ2hhcnRXaWRnZXQubW9kZWwoKS5tYWluU2VyaWVzKCk7dC5zeW1ib2xTYW1lQXNDdXJyZW50KGUpfHwodGhpcy53YXRjaGVkU3ltYm9sLnNldFZhbHVlKHQuc3ltYm9sKCkpLHRoaXMucHJvU3ltYm9sLnNldFZhbHVlKHQucHJvU3ltYm9sKCkpKX19KSksdGhpcy5tdXRlKCExKX1fbmVlZEFwcGx5U3ltYm9sKGUpe2NvbnN0IHQ9dGhpcy5fY2hhcnRzRm9yTG9jaygwKSxzPXQuZmluZCgodD0+dC5oYXNNb2RlbCgpJiZ0Lm1vZGVsKCkubWFpblNlcmllcygpLnN5bWJvbEluZm8oKSYmdC5tb2RlbCgpLm1haW5TZXJpZXMoKS5zeW1ib2xTYW1lQXNSZXNvbHZlZChlKSkpO2lmKHMpe2NvbnN0IGU9cy5tb2RlbCgpLm1haW5TZXJpZXMoKTtpZih0LmV2ZXJ5KCh0PT5lLnN5bWJvbFNhbWVBc1Jlc29sdmVkKHQuc3ltYm9sV1YoKS52YWx1ZSgpKSkpKXJldHVybiExfXJldHVybiB0LnNvbWUoKHQ9PnQuc3ltYm9sV1YoKS52YWx1ZSgpIT09ZSkpfV9zZXRHcm91cEludGVydmFsKGUpe3RoaXMubXV0ZSghMCksKDAsaS5lbnN1cmVOb3ROdWxsKSh0aGlzLl9jaGFydFdpZGdldENvbGxlY3Rpb24pLnNldFJlc29sdXRpb24oZSx0aGlzLl9ncm91cEluZGV4KS5maW5hbGx5KCgoKT0+e2lmKHRoaXMuX2JvdW5kQ2hhcnRXaWRnZXQpe2NvbnN0IHQ9dGhpcy5fYm91bmRDaGFydFdpZGdldC5yZXNvbHV0aW9uV1YoKS52YWx1ZSgpO2EuSW50ZXJ2YWwuaXNFcXVhbCh0LGUpfHx0aGlzLndhdGNoZWRJbnRlcnZhbC5zZXRWYWx1ZSh0KX19KSksdGhpcy5tdXRlKCExKX1fbmVlZEFwcGx5SW50ZXJ2YWwoZSl7cmV0dXJuIHRoaXMuX2NoYXJ0c0ZvckxvY2soMSkuc29tZSgodD0+IWEuSW50ZXJ2YWwuaXNFcXVhbCh0LnJlc29sdXRpb25XVigpLnZhbHVlKCksZSkpKX19Y29uc3QgVz1uZXcgY2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLl93YXRjaGVkU3ltYm9scz1uZXcgby5XYXRjaGVkVmFsdWUoW10pLHRoaXMuX3dhdGNoZWRTeW1ib2w9bmV3IG8uV2F0Y2hlZFZhbHVlLHRoaXMuX3Nlcmllc1Nob3J0U3ltYm9sPW5ldyBvLldhdGNoZWRWYWx1ZSx0aGlzLl9wcm9TeW1ib2w9bmV3IG8uV2F0Y2hlZFZhbHVlLHRoaXMuX2Vuc3VyZWRQcm9TeW1ib2w9bmV3IG8uV2F0Y2hlZFZhbHVlLHRoaXMuX3dhdGNoZWRJbnRlcnZhbD1uZXcgby5XYXRjaGVkVmFsdWUsdGhpcy5fd2F0Y2hlZEludHJhZGF5PW5ldyBvLldhdGNoZWRWYWx1ZSx0aGlzLl93YXRjaGVkU2Vjb25kcz1uZXcgby5XYXRjaGVkVmFsdWUsdGhpcy5fd2F0Y2hlZFRpY2tzPW5ldyBvLldhdGNoZWRWYWx1ZSx0aGlzLl93YXRjaGVkRGF0YUZyZXF1ZW5jeVJlc29sdXRpb249bmV3IG8uV2F0Y2hlZFZhbHVlLHRoaXMuX3dhdGNoZWRSYW5nZT1uZXcgby5XYXRjaGVkVmFsdWUsdGhpcy5fd2F0Y2hlZFN1cHBvcnRlZFJlc29sdXRpb25zPW5ldyBvLldhdGNoZWRWYWx1ZSx0aGlzLl93YXRjaGVkU3VwcG9ydGVkQ2hhcnRTdHlsZXM9bmV3IG8uV2F0Y2hlZFZhbHVlKFtdKSx0aGlzLl9zeW1ib2xOYW1lc0xpc3Q9bmV3IG8uV2F0Y2hlZFZhbHVlLHRoaXMuX2NoYXJ0V2lkZ2V0Q29sbGVjdGlvbj1udWxsLHRoaXMuX29uU3ltYm9sTGlua0JvdW5kPXRoaXMuX29uU3ltYm9sTGluay5iaW5kKHRoaXMpLHRoaXMuX3NlYXJjaENoYXJ0cz1udWxsLHRoaXMuX3NlYXJjaENoYXJ0c0xvYWREZWJvdW5jZWQ9bnVsbCx0aGlzLl9zZWxmRW1pdD0hMSx0aGlzLl9wcmV2ZW50RmVlZEJ5U3ltYm9sPSExLHRoaXMuX2ZlZWRCeVN5bWJvbERlYm91bmNlQ291bnRlcj0wLHRoaXMuX2xpbmtpbmdHcm91cHM9bmV3IE1hcCx0aGlzLl9hY3RpdmVMaW5raW5nR3JvdXA9bmV3IG8uV2F0Y2hlZFZhbHVlLHRoaXMuX2FjdGl2ZUxpbmtpbmdHcm91cEluZGV4PW51bGwsdGhpcy5fdXBkYXRlTGlua2luZ0dyb3Vwcz0oKT0+eygwLGkuZW5zdXJlTm90TnVsbCkodGhpcy5fY2hhcnRXaWRnZXRDb2xsZWN0aW9uKS5hbGxMaW5raW5nR3JvdXBzKCkudmFsdWUoKS5mb3JFYWNoKChlPT50aGlzLl9saW5raW5nR3JvdXAoZSkpKSx0aGlzLl9saW5raW5nR3JvdXBzLmZvckVhY2goKGU9PmUudXBkYXRlQm91bmRDaGFydFdpZGdldCgpKSl9LHRoaXMuX2FjdGl2ZUxpbmtpbmdHcm91cC5zZXRWYWx1ZSh0aGlzLl9saW5raW5nR3JvdXAobnVsbCkpO2NvbnN0IGU9KGUsdCk9PntlLnN1YnNjcmliZSgoZT0+dCgpLnNldFZhbHVlKGUpKSx7Y2FsbFdpdGhMYXN0OiEwfSl9O2UodGhpcy5fd2F0Y2hlZFN5bWJvbHMsKCgpPT50aGlzLl9hY3RpdmVMaW5raW5nR3JvdXAudmFsdWUoKS53YXRjaGVkU3ltYm9scykpLGUodGhpcy5fd2F0Y2hlZFN5bWJvbCwoKCk9PnRoaXMuX2FjdGl2ZUxpbmtpbmdHcm91cC52YWx1ZSgpLndhdGNoZWRTeW1ib2wpKSxlKHRoaXMuX3Nlcmllc1Nob3J0U3ltYm9sLCgoKT0+dGhpcy5fYWN0aXZlTGlua2luZ0dyb3VwLnZhbHVlKCkuc2VyaWVzU2hvcnRTeW1ib2wpKSxlKHRoaXMuX3Byb1N5bWJvbCwoKCk9PnRoaXMuX2FjdGl2ZUxpbmtpbmdHcm91cC52YWx1ZSgpLnByb1N5bWJvbCkpLGUodGhpcy5fZW5zdXJlZFByb1N5bWJvbCwoKCk9PnRoaXMuX2FjdGl2ZUxpbmtpbmdHcm91cC52YWx1ZSgpLmVuc3VyZWRQcm9TeW1ib2wpKSxlKHRoaXMuX3dhdGNoZWRJbnRlcnZhbCwoKCk9PnRoaXMuX2FjdGl2ZUxpbmtpbmdHcm91cC52YWx1ZSgpLndhdGNoZWRJbnRlcnZhbCkpLGUodGhpcy5fd2F0Y2hlZEludHJhZGF5LCgoKT0+dGhpcy5fYWN0aXZlTGlua2luZ0dyb3VwLnZhbHVlKCkud2F0Y2hlZEludHJhZGF5KSksZSh0aGlzLl93YXRjaGVkU2Vjb25kcywoKCk9PnRoaXMuX2FjdGl2ZUxpbmtpbmdHcm91cC52YWx1ZSgpLndhdGNoZWRTZWNvbmRzKSksCmUodGhpcy5fd2F0Y2hlZFRpY2tzLCgoKT0+dGhpcy5fYWN0aXZlTGlua2luZ0dyb3VwLnZhbHVlKCkud2F0Y2hlZFRpY2tzKSksZSh0aGlzLl93YXRjaGVkRGF0YUZyZXF1ZW5jeVJlc29sdXRpb24sKCgpPT50aGlzLl9hY3RpdmVMaW5raW5nR3JvdXAudmFsdWUoKS53YXRjaGVkRGF0YUZyZXF1ZW5jeVJlc29sdXRpb24pKSxlKHRoaXMuX3dhdGNoZWRSYW5nZSwoKCk9PnRoaXMuX2FjdGl2ZUxpbmtpbmdHcm91cC52YWx1ZSgpLndhdGNoZWRSYW5nZSkpLGUodGhpcy5fd2F0Y2hlZFN1cHBvcnRlZFJlc29sdXRpb25zLCgoKT0+dGhpcy5fYWN0aXZlTGlua2luZ0dyb3VwLnZhbHVlKCkud2F0Y2hlZFN1cHBvcnRlZFJlc29sdXRpb25zKSksZSh0aGlzLl93YXRjaGVkU3VwcG9ydGVkQ2hhcnRTdHlsZXMsKCgpPT50aGlzLl9hY3RpdmVMaW5raW5nR3JvdXAudmFsdWUoKS53YXRjaGVkU3VwcG9ydGVkQ2hhcnRTdHlsZXMpKSxlKHRoaXMuX3N5bWJvbE5hbWVzTGlzdCwoKCk9PnRoaXMuX2FjdGl2ZUxpbmtpbmdHcm91cC52YWx1ZSgpLnN5bWJvbE5hbWVzTGlzdCkpO2NvbnN0IHQ9ZT0+e3RoaXMuX3dhdGNoZWRTeW1ib2wuc2V0VmFsdWUoZS53YXRjaGVkU3ltYm9sLnZhbHVlKCkpLHRoaXMuX3Nlcmllc1Nob3J0U3ltYm9sLnNldFZhbHVlKGUuc2VyaWVzU2hvcnRTeW1ib2wudmFsdWUoKSksdGhpcy5fcHJvU3ltYm9sLnNldFZhbHVlKGUucHJvU3ltYm9sLnZhbHVlKCkpLHRoaXMuX2Vuc3VyZWRQcm9TeW1ib2wuc2V0VmFsdWUoZS5lbnN1cmVkUHJvU3ltYm9sLnZhbHVlKCkpLHRoaXMuX3dhdGNoZWRJbnRlcnZhbC5zZXRWYWx1ZShlLndhdGNoZWRJbnRlcnZhbC52YWx1ZSgpKSx0aGlzLl93YXRjaGVkSW50cmFkYXkuc2V0VmFsdWUoZS53YXRjaGVkSW50cmFkYXkudmFsdWUoKSksdGhpcy5fd2F0Y2hlZFNlY29uZHMuc2V0VmFsdWUoZS53YXRjaGVkU2Vjb25kcy52YWx1ZSgpKSx0aGlzLl93YXRjaGVkVGlja3Muc2V0VmFsdWUoZS53YXRjaGVkVGlja3MudmFsdWUoKSksdGhpcy5fd2F0Y2hlZERhdGFGcmVxdWVuY3lSZXNvbHV0aW9uLnNldFZhbHVlKGUud2F0Y2hlZERhdGFGcmVxdWVuY3lSZXNvbHV0aW9uLnZhbHVlKCkpLHRoaXMuX3dhdGNoZWRSYW5nZS5zZXRWYWx1ZShlLndhdGNoZWRSYW5nZS52YWx1ZSgpKSx0aGlzLl93YXRjaGVkU3VwcG9ydGVkUmVzb2x1dGlvbnMuc2V0VmFsdWUoZS53YXRjaGVkU3VwcG9ydGVkUmVzb2x1dGlvbnMudmFsdWUoKSksdGhpcy5fd2F0Y2hlZFN1cHBvcnRlZENoYXJ0U3R5bGVzLnNldFZhbHVlKGUud2F0Y2hlZFN1cHBvcnRlZENoYXJ0U3R5bGVzLnZhbHVlKCkpLHRoaXMuX3N5bWJvbE5hbWVzTGlzdC5zZXRWYWx1ZShlLnN5bWJvbE5hbWVzTGlzdC52YWx1ZSgpKX07dGhpcy5fYWN0aXZlTGlua2luZ0dyb3VwLnN1YnNjcmliZSh0KSx0KHRoaXMuX2FjdGl2ZUxpbmtpbmdHcm91cC52YWx1ZSgpKSwoMCx2LnNldE11dGVMaW5raW5nR3JvdXApKCgoZSx0KT0+eyJhbGwiPT09ZT90aGlzLl9saW5raW5nR3JvdXBzLmZvckVhY2goKGU9PmUubXV0ZSh0KSkpOnRoaXMuX2xpbmtpbmdHcm91cChlKS5tdXRlKHQpfSkpfWdldCBzeW1ib2xzKCl7cmV0dXJuIHRoaXMuX3dhdGNoZWRTeW1ib2xzfWdldCBzeW1ib2woKXtyZXR1cm4gdGhpcy5fd2F0Y2hlZFN5bWJvbH1nZXQgcHJvU3ltYm9sKCl7cmV0dXJuIHRoaXMuX3Byb1N5bWJvbC5yZWFkb25seSgpfXN5bWJvbFN5bmNFbmFibGVkKCl7cmV0dXJuISF0aGlzLl9jaGFydFdpZGdldENvbGxlY3Rpb24/LmxvY2suc3ltYm9sLnZhbHVlKCl9Z2V0IGVuc3VyZWRQcm9TeW1ib2woKXtyZXR1cm4gdGhpcy5fZW5zdXJlZFByb1N5bWJvbC5yZWFkb25seSgpfWdldCBzeW1ib2xOYW1lc0xpc3QoKXtyZXR1cm4gdGhpcy5fc3ltYm9sTmFtZXNMaXN0LnJlYWRvbmx5KCl9Z2V0IHNlcmllc1Nob3J0U3ltYm9sKCl7cmV0dXJuIHRoaXMuX3Nlcmllc1Nob3J0U3ltYm9sLnJlYWRvbmx5KCl9Z2V0IGludGVydmFsKCl7cmV0dXJuIHRoaXMuX3dhdGNoZWRJbnRlcnZhbH1pbnRlcnZhbFN5bmNFbmFibGVkKCl7cmV0dXJuISF0aGlzLl9jaGFydFdpZGdldENvbGxlY3Rpb24/LmxvY2suaW50ZXJ2YWwudmFsdWUoKX1nZXQgaW50cmFkYXkoKXtyZXR1cm4gdGhpcy5fd2F0Y2hlZEludHJhZGF5LnJlYWRvbmx5KCl9Z2V0IHNlY29uZHMoKXtyZXR1cm4gdGhpcy5fd2F0Y2hlZFNlY29uZHMucmVhZG9ubHkoKX1nZXQgdGlja3MoKXtyZXR1cm4gdGhpcy5fd2F0Y2hlZFRpY2tzLnJlYWRvbmx5KCl9Z2V0IHJhbmdlKCl7cmV0dXJuIHRoaXMuX3dhdGNoZWRSYW5nZS5yZWFkb25seSgpfWdldCBzdXBwb3J0ZWRSZXNvbHV0aW9ucygpe3JldHVybiB0aGlzLl93YXRjaGVkU3VwcG9ydGVkUmVzb2x1dGlvbnMucmVhZG9ubHkoKX1nZXQgc3VwcG9ydGVkQ2hhcnRTdHlsZXMoKXtyZXR1cm4gdGhpcy5fd2F0Y2hlZFN1cHBvcnRlZENoYXJ0U3R5bGVzLnJlYWRvbmx5KCl9Z2V0IHByZXZlbnRGZWVkQnlTeW1ib2woKXtyZXR1cm4gdGhpcy5fcHJldmVudEZlZWRCeVN5bWJvbH1nZXQgZGF0YUZyZXF1ZW5jeVJlc29sdXRpb24oKXtyZXR1cm4gdGhpcy5fd2F0Y2hlZERhdGFGcmVxdWVuY3lSZXNvbHV0aW9uLnJlYWRvbmx5KCl9YWN0aXZlTGlua2luZ0dyb3VwKCl7cmV0dXJuIHRoaXMuX2FjdGl2ZUxpbmtpbmdHcm91cC5yZWFkb25seSgpfWdldENoYXJ0V2lkZ2V0KCl7cmV0dXJuIHRoaXMuYWN0aXZlTGlua2luZ0dyb3VwKCkudmFsdWUoKS5ib3VuZENoYXJ0V2lkZ2V0KCl9YmluZFRvQ2hhcnRXaWRnZXRDb2xsZWN0aW9uKGUpe3RoaXMuX2NoYXJ0V2lkZ2V0Q29sbGVjdGlvbj8ub25BYm91dFRvQmVEZXN0cm95ZWQudW5zdWJzY3JpYmVBbGwodGhpcyksdGhpcy5fdW5iaW5kRnJvbUNoYXJ0V2lkZ2V0Q29sbGVjdGlvbigpLHRoaXMuX2NoYXJ0V2lkZ2V0Q29sbGVjdGlvbj1lLHRoaXMuX2NoYXJ0V2lkZ2V0Q29sbGVjdGlvbi5vbkFib3V0VG9CZURlc3Ryb3llZC5zdWJzY3JpYmUodGhpcyx0aGlzLl91bmJpbmRGcm9tQ2hhcnRXaWRnZXRDb2xsZWN0aW9uKSwKdGhpcy5fY2hhcnRXaWRnZXRDb2xsZWN0aW9uLmFsbExpbmtpbmdHcm91cHMoKS5zdWJzY3JpYmUodGhpcy5fdXBkYXRlTGlua2luZ0dyb3VwcyksdGhpcy5fdXBkYXRlTGlua2luZ0dyb3VwcygpLHRoaXMuX2FjdGl2ZUxpbmtpbmdHcm91cEluZGV4PWUuYWN0aXZlTGlua2luZ0dyb3VwKCkuc3Bhd24oKSx0aGlzLl9hY3RpdmVMaW5raW5nR3JvdXBJbmRleC5zdWJzY3JpYmUoKGU9Pnt0aGlzLl9hY3RpdmVMaW5raW5nR3JvdXAuc2V0VmFsdWUodGhpcy5fbGlua2luZ0dyb3VwKGUpKX0pLHtjYWxsV2l0aExhc3Q6ITB9KSx0aGlzLl9saW5raW5nR3JvdXBzLmZvckVhY2goKHQ9PnQuYmluZFRvQ2hhcnRXaWRnZXRDb2xsZWN0aW9uKGUpKSl9YmluZFRvU2VhcmNoQ2hhcnRzKGUpe3RoaXMudW5iaW5kRnJvbVNlYXJjaENoYXJ0cygpLHRoaXMuX3NlYXJjaENoYXJ0cz1lLGUub25TZWFyY2hCeVN5bWJvbC5zdWJzY3JpYmUodGhpcyx0aGlzLl9vblNlYXJjaEJ5U3ltYm9sKSxlLmxvYWRpbmdTeW1ib2wuc3Vic2NyaWJlKChlPT57ITE9PT1lJiYodGhpcy5fZmVlZEJ5U3ltYm9sRGVib3VuY2VDb3VudGVyPTApfSkpLHRoaXMuX3dhdGNoZWRTeW1ib2wuc3Vic2NyaWJlKHRoaXMuX29uU3ltYm9sTGlua0JvdW5kKX11bmJpbmRGcm9tU2VhcmNoQ2hhcnRzKCl7dGhpcy5fc2VhcmNoQ2hhcnRzJiYodGhpcy5fc2VhcmNoQ2hhcnRzLm9uU2VhcmNoQnlTeW1ib2wudW5zdWJzY3JpYmUodGhpcyx0aGlzLl9vblNlYXJjaEJ5U3ltYm9sKSx0aGlzLl93YXRjaGVkU3ltYm9sLnVuc3Vic2NyaWJlKHRoaXMuX29uU3ltYm9sTGlua0JvdW5kKSx0aGlzLl9zZWFyY2hDaGFydHM9bnVsbCl9c2V0UHJldmVudEZlZWRCeVN5bWJvbChlKXt0aGlzLl9wcmV2ZW50RmVlZEJ5U3ltYm9sPWV9c2V0U3ltYm9sQW5kTG9nSW5pdGlhdG9yKGUsdCxzLG4saSl7Y29uc3Qgcj12b2lkIDAhPT1pP3RoaXMuX2xpbmtpbmdHcm91cChpLmxpbmtpbmdHcm91cEluZGV4KCkudmFsdWUoKSk6dGhpcy5hY3RpdmVMaW5raW5nR3JvdXAoKS52YWx1ZSgpO3ZhciBvLGEsbCx1OyhyLndhdGNoZWRTeW1ib2wudmFsdWUoKSE9PWV8fHMpJiYody5sb2dJbmZvKGBDaGFuZ2UgbGlua2luZyBzeW1ib2wgdG8gJHtlfSwgaW5pdGlhdG9yOiAke3R9YCksci53YXRjaGVkU3ltYm9sLnNldFZhbHVlKGUscyksbnx8bnVsbD09PXRoaXMuX2NoYXJ0V2lkZ2V0Q29sbGVjdGlvbnx8KG89ci5tYWluU2VyaWVzKCksYT10aGlzLl9jaGFydFdpZGdldENvbGxlY3Rpb24ubGF5b3V0LnZhbHVlKCksbD10aGlzLl9jaGFydFdpZGdldENvbGxlY3Rpb24ubWV0YUluZm8udWlkLnZhbHVlKCl8fCIiLHU9dCx3aW5kb3cudXNlci5kb19ub3RfdHJhY2t8fG8uc3ltYm9sUmVzb2x2aW5nQWN0aXZlKCkuc3Vic2NyaWJlKChlPT57aWYoZSlyZXR1cm47Y29uc3QgdD1vLnN5bWJvbEluZm8oKTt0JiYoMCxwLmdldFRyYWNrZXIpKCkudGhlbigoZT0+e251bGwhPT1lJiZlLnRyYWNrQ2hhcnRTeW1ib2xzKHtzeW1ib2xOYW1lOnQucHJvX25hbWUsc3ltYm9sVHlwZTp0LnR5cGUscmVzb2x1dGlvbjpvLmludGVydmFsKCksbGF5b3V0VHlwZTphLGNoYXJ0SWQ6bCxjaGFydFN0eWxlczp5LlNUWUxFX1NIT1JUX05BTUVTW28uc3R5bGUoKV0sb3BlblNvdXJjZTp1LHBsYXRmb3JtOigwLGIuZ2V0UGxhdGZvcm0pKCksaXNFeHBlcnQ6d2luZG93LnVzZXIuZGVjbGFyZWRfc3RhdHVzPT09bS5Vc2VyU3RhdHVzLlByb30pfSkpfSkse29uY2U6ITB9KSkpfXNldEludGVydmFsQW5kTG9nSW5pdGlhdG9yKGUsdCxzLG4pe2NvbnN0IGk9dm9pZCAwIT09bj90aGlzLl9saW5raW5nR3JvdXAobi5saW5raW5nR3JvdXBJbmRleCgpLnZhbHVlKCkpOnRoaXMuYWN0aXZlTGlua2luZ0dyb3VwKCkudmFsdWUoKTthLkludGVydmFsLmlzRXF1YWwoaS53YXRjaGVkSW50ZXJ2YWwudmFsdWUoKSxlKXx8KHcubG9nSW5mbyhgQ2hhbmdlIGxpbmtpbmcgaW50ZXJ2YWwgdG8gJHtlfSwgaW5pdGlhdG9yOiAke3R9YCksc3x8KDAsUy50cmFja0ludGVydmFsQ2hhbmdpbmcpKGUsdCksaS53YXRjaGVkSW50ZXJ2YWwuc2V0VmFsdWUoZSkpfV9vblNlYXJjaEJ5U3ltYm9sKGUpe2lmKCFlLnJlc29sdmVkX3N5bWJvbCl0aHJvdyBuZXcgRXJyb3IoIm5vIHJlc29sdmVkX3N5bWJvbCIpO3RoaXMuX3NlbGZFbWl0PSEwLHRoaXMuX3dhdGNoZWRTeW1ib2wuc2V0VmFsdWUoZS5yZXNvbHZlZF9zeW1ib2wpLHRoaXMuX3NlbGZFbWl0PSExfV9vblN5bWJvbExpbmsoZSl7aWYoIXRoaXMuX3NlbGZFbWl0KXtpZighdGhpcy5fc2VhcmNoQ2hhcnRzKXtjb25zdCBlPSJObyBzZWFyY2ggY2hhcnRzIGRlZmluZWQiO3Rocm93IHcubG9nRXJyb3IoZSksbmV3IEVycm9yKGUpfXRoaXMuX3ByZXZlbnRGZWVkQnlTeW1ib2x8fHRoaXMuX2xvYWRTZWFyY2hDaGFydHMoZSl9fV9sb2FkU2VhcmNoQ2hhcnRzKGUpe2lmKCF0aGlzLl9zZWFyY2hDaGFydHMpe2NvbnN0IGU9Ik5vIHNlYXJjaCBjaGFydHMgZGVmaW5lZCI7dGhyb3cgdy5sb2dFcnJvcihlKSxuZXcgRXJyb3IoZSl9aWYodGhpcy5fc2VhcmNoQ2hhcnRzTG9hZERlYm91bmNlZClyZXR1cm4gdm9pZCh0aGlzLl9mZWVkQnlTeW1ib2xEZWJvdW5jZUNvdW50ZXI8MTAwJiYodGhpcy5fZmVlZEJ5U3ltYm9sRGVib3VuY2VDb3VudGVyKyssdGhpcy5fc2VhcmNoQ2hhcnRzTG9hZERlYm91bmNlZChlKSkpO2NvbnN0IHQ9ZT0+dGhpcy5fc2VhcmNoQ2hhcnRzPyghMD09PXRoaXMuX3NlYXJjaENoYXJ0cy5sb2FkaW5nU3ltYm9sLnZhbHVlKCk/dGhpcy5fZmVlZEJ5U3ltYm9sRGVib3VuY2VDb3VudGVyPDEwMCYmKHRoaXMuX2ZlZWRCeVN5bWJvbERlYm91bmNlQ291bnRlcisrLHRoaXMuX3NlYXJjaENoYXJ0c0xvYWREZWJvdW5jZWQ9KDAsbi5kZWZhdWx0KSh0LDJlMyksdGhpcy5fc2VhcmNoQ2hhcnRzTG9hZERlYm91bmNlZChlKSk6dGhpcy5fc2VhcmNoQ2hhcnRzTG9hZERlYm91bmNlZD1udWxsLHRoaXMuX3NlYXJjaENoYXJ0cy5mZWVkQnlTeW1ib2wuY2FsbCh0aGlzLl9zZWFyY2hDaGFydHMsZSkpOigpPT57fQo7ITA9PT10aGlzLl9zZWFyY2hDaGFydHMubG9hZGluZ1N5bWJvbC52YWx1ZSgpP3RoaXMuX2ZlZWRCeVN5bWJvbERlYm91bmNlQ291bnRlcjwxMDAmJih0aGlzLl9mZWVkQnlTeW1ib2xEZWJvdW5jZUNvdW50ZXIrKyx0aGlzLl9zZWFyY2hDaGFydHNMb2FkRGVib3VuY2VkPSgwLG4uZGVmYXVsdCkodCwyZTMpLHRoaXMuX3NlYXJjaENoYXJ0c0xvYWREZWJvdW5jZWQoZSkpOnRoaXMuX3NlYXJjaENoYXJ0cy5mZWVkQnlTeW1ib2woZSl9X2xpbmtpbmdHcm91cChlKXtsZXQgdD10aGlzLl9saW5raW5nR3JvdXBzLmdldChlKTtpZih2b2lkIDA9PT10KXtjb25zdCBzPXt3YXRjaGVkU3ltYm9sczp0aGlzLl93YXRjaGVkU3ltYm9scyx3YXRjaGVkU3ltYm9sOnRoaXMuX3dhdGNoZWRTeW1ib2wsc2VyaWVzU2hvcnRTeW1ib2w6dGhpcy5fc2VyaWVzU2hvcnRTeW1ib2wscHJvU3ltYm9sOnRoaXMuX3Byb1N5bWJvbCxlbnN1cmVkUHJvU3ltYm9sOnRoaXMuX2Vuc3VyZWRQcm9TeW1ib2wsd2F0Y2hlZEludGVydmFsOnRoaXMuX3dhdGNoZWRJbnRlcnZhbCx3YXRjaGVkSW50cmFkYXk6dGhpcy5fd2F0Y2hlZEludHJhZGF5LHdhdGNoZWRTZWNvbmRzOnRoaXMuX3dhdGNoZWRTZWNvbmRzLHdhdGNoZWRUaWNrczp0aGlzLl93YXRjaGVkVGlja3Msd2F0Y2hlZERhdGFGcmVxdWVuY3lSZXNvbHV0aW9uOnRoaXMuX3dhdGNoZWREYXRhRnJlcXVlbmN5UmVzb2x1dGlvbix3YXRjaGVkUmFuZ2U6dGhpcy5fd2F0Y2hlZFJhbmdlLHdhdGNoZWRTdXBwb3J0ZWRSZXNvbHV0aW9uczp0aGlzLl93YXRjaGVkU3VwcG9ydGVkUmVzb2x1dGlvbnMsd2F0Y2hlZFN1cHBvcnRlZENoYXJ0U3R5bGVzOnRoaXMuX3dhdGNoZWRTdXBwb3J0ZWRDaGFydFN0eWxlcyxzeW1ib2xOYW1lc0xpc3Q6dGhpcy5fc3ltYm9sTmFtZXNMaXN0fTt0PW5ldyBrKGUscywoKCk9PnRoaXMuX2FjdGl2ZUxpbmtpbmdHcm91cC52YWx1ZSgpKSksdGhpcy5fbGlua2luZ0dyb3Vwcy5zZXQoZSx0KSx0aGlzLl9jaGFydFdpZGdldENvbGxlY3Rpb24mJnQuYmluZFRvQ2hhcnRXaWRnZXRDb2xsZWN0aW9uKHRoaXMuX2NoYXJ0V2lkZ2V0Q29sbGVjdGlvbil9cmV0dXJuIHR9X3VuYmluZEZyb21DaGFydFdpZGdldENvbGxlY3Rpb24oKXtudWxsIT09dGhpcy5fY2hhcnRXaWRnZXRDb2xsZWN0aW9uJiYodGhpcy5fYWN0aXZlTGlua2luZ0dyb3VwSW5kZXg/LmRlc3Ryb3koKSx0aGlzLl9hY3RpdmVMaW5raW5nR3JvdXBJbmRleD1udWxsLHRoaXMuX2xpbmtpbmdHcm91cHMuZm9yRWFjaCgoZT0+ZS51bmJpbmRGcm9tQ2hhcnRXaWRnZXRDb2xsZWN0aW9uKCkpKSx0aGlzLl9jaGFydFdpZGdldENvbGxlY3Rpb24uYWxsTGlua2luZ0dyb3VwcygpLnVuc3Vic2NyaWJlKHRoaXMuX3VwZGF0ZUxpbmtpbmdHcm91cHMpLHRoaXMuX2NoYXJ0V2lkZ2V0Q29sbGVjdGlvbj1udWxsKX19O3tjb25zdCBlPSgwLGQuZ2V0RnJlc2hJbml0RGF0YSkoKS5zeW1ib2xJbmZvLHQ9ZT9lLnByb19zeW1ib2w6aC5nZXRWYWx1ZSgiZWRpdGNoYXJ0Lm1vZGVsLnN5bWJvbCIsKDAsZy5nZXREZWZhdWx0U3ltYm9sKSgpKTtXLnNldFN5bWJvbEFuZExvZ0luaXRpYXRvcih0LCJpbml0aWFsIGRhdGEiLCExLCEwKX13aW5kb3cuVHJhZGluZ1ZpZXdBcGl8fCh3aW5kb3cuVHJhZGluZ1ZpZXdBcGk9e2xpbmtpbmc6V30pfSwyMDkzOShlLHQscyl7bGV0IG47ZnVuY3Rpb24gaShlLHQpe24/LihlLHQpfWZ1bmN0aW9uIHIoZSl7bj1lfXMuZCh0LHttdXRlTGlua2luZ0dyb3VwOigpPT5pLHNldE11dGVMaW5raW5nR3JvdXA6KCk9PnJ9KX0sMzU1MTIzKGUsdCxzKXtzLmQodCx7c3BhcnNlVXNlcnNUcmFja2luZ0NvZWZmaWNpZW50OigpPT5hfSk7dmFyIG49cyg5MzIzNjUpO2NvbnN0IGk9InNwYXJzZVVzZXJzVHJhY2tpbmdDb2VmZmljaWVudCIscj0oMCxzKDE2MDI5NikuaXNQcm9kKSgpP251bGw6bi5UVkxvY2FsU3RvcmFnZS5nZXRJdGVtKGkpO2xldCBvPW51bGwhPT1yP3BhcnNlRmxvYXQocik6bnVsbDtudWxsIT09byYmKCFOdW1iZXIuaXNGaW5pdGUobyl8fG88MHx8bz4xKSYmKG89bnVsbCxuLlRWTG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oaSkpO2NvbnN0IGE9bz8/LjF9LDM4MzM1MShlLHQscyl7cy5kKHQse3RyYWNrSW50ZXJ2YWxDaGFuZ2luZzooKT0+b30pO3ZhciBuPXMoODU2MTk2KSxpPXMoMzYyMjM5KSxyPXMoMzU1MTIzKTtmdW5jdGlvbiBvKGUsdCl7d2luZG93LnVzZXIuZG9fbm90X3RyYWNrfHwoMCxuLnNob3VsZEFmZmVjdFVzZXIpKCJJbnRlcnZhbENoYW5naW5nIixyLnNwYXJzZVVzZXJzVHJhY2tpbmdDb2VmZmljaWVudCkmJigwLGkuZ2V0VHJhY2tlcikoKS50aGVuKChzPT57bnVsbCE9PXMmJnMudHJhY2tDaGFydEludGVydmFsQ2hhbmdpbmcoZSx0KX0pKX19LDcwMTUwNihlLHQscyl7cy5kKHQse2FsbENoYXJ0U3R5bGVzOigpPT5yfSk7dmFyIG49cyg5MzAyMzEpO2NvbnN0IGk9KDAscygzMTg5NzQpLm9uV2lkZ2V0KSgpO2Z1bmN0aW9uIHIoKXtyZXR1cm4gZnVuY3Rpb24oKXtjb25zdCBlPVswLDEsOSwxMywyLDE0LDE1LDMsMTYsMTBdO3JldHVybiBlLnB1c2goMTIpLGl8fGUucHVzaCgxNyksaXx8ZS5wdXNoKDE4KSxpfHxlLnB1c2goMjApLGl8fGUucHVzaCgxOSksZX0oKS5jb25jYXQoZnVuY3Rpb24oKXtjb25zdCBlPVs4XTtyZXR1cm4oMCxuLmlzRmVhdHVyZXNldEVuYWJsZWQpKCJqYXBhbmVzZV9jaGFydF9zdHlsZXMiKSYmKGUucHVzaCg0LDcsNSw2KSxlLnB1c2goMTEpKSxlfSgpKX19LDMxNDkxNChlLHQscyl7cy5kKHQse2V4dHJhY3RTeW1ib2xOYW1lRnJvbVN5bWJvbEluZm86KCk9PnV9KTt2YXIgbj1zKDg1Mjk4MCksaT1zKDkzMDIzMSk7Y29uc3Qgcj0oMCxpLmlzRmVhdHVyZXNldEVuYWJsZWQpKCJwYXlfYXR0ZW50aW9uX3RvX3RpY2tlcl9ub3Rfc3ltYm9sIiksbz0oMCxpLmlzRmVhdHVyZXNldEVuYWJsZWQpKCJjaGFydGluZ19saWJyYXJ5X3NpbmdsZV9zeW1ib2xfcmVxdWVzdCIpLGE9KDAsaS5pc0ZlYXR1cmVzZXRFbmFibGVkKSgidXNlX3RpY2tlcl9vbl9zeW1ib2xfaW5mb191cGRhdGUiKSxsPSgwLAppLmlzRmVhdHVyZXNldEVuYWJsZWQpKCJ1cHBlcmNhc2VfaW5zdHJ1bWVudF9uYW1lcyIpLHU9bi5leHRyYWN0U3ltYm9sTmFtZUZyb21TeW1ib2xJbmZvLmJpbmQobnVsbCx7cGF5QXR0ZW50aW9uVG9UaWNrZXJOb3RTeW1ib2w6cixjaGFydGluZ0xpYnJhcnlTaW5nbGVTeW1ib2xSZXF1ZXN0Om8sdXNlVGlja2VyT25TeW1ib2xJbmZvVXBkYXRlOmEsdXBwZXJjYXNlSW5zdHJ1bWVudE5hbWVzOmx9KX0sNTgwMzcoZSx0LHMpe3ZhciBuLGk7IWZ1bmN0aW9uKGUpe2VbZS5PZmZsaW5lPTBdPSJPZmZsaW5lIixlW2UuUmVzb2x2aW5nPTFdPSJSZXNvbHZpbmciLGVbZS5Mb2FkaW5nPTJdPSJMb2FkaW5nIixlW2UuUmVhZHk9M109IlJlYWR5IixlW2UuSW52YWxpZFN5bWJvbD00XT0iSW52YWxpZFN5bWJvbCIsZVtlLlNuYXBzaG90PTVdPSJTbmFwc2hvdCIsZVtlLkVPRD02XT0iRU9EIixlW2UuUHVsc2U9N109IlB1bHNlIixlW2UuRGVsYXllZD04XT0iRGVsYXllZCIsZVtlLkRlbGF5ZWRTdGVhbWluZz05XT0iRGVsYXllZFN0ZWFtaW5nIixlW2UuTm9CYXJzPTEwXT0iTm9CYXJzIixlW2UuUmVwbGF5PTExXT0iUmVwbGF5IixlW2UuRXJyb3I9MTJdPSJFcnJvciIsZVtlLkNhbGN1bGF0aW9uRXJyb3I9MTNdPSJDYWxjdWxhdGlvbkVycm9yIixlW2UuVW5zdXBwb3J0ZWRSZXNvbHV0aW9uPTE0XT0iVW5zdXBwb3J0ZWRSZXNvbHV0aW9uIn0obnx8KG49e30pKSxmdW5jdGlvbihlKXtlW2UuTWFya2Vycz0wXT0iTWFya2VycyIsZVtlLlN0ZXBsaW5lPTFdPSJTdGVwbGluZSIsZVtlLlNpbXBsZT0yXT0iU2ltcGxlIn0oaXx8KGk9e30pKX0sNzk4MzgoZSx0LHMpe3MuZCh0LHtTRVJJRVNfU1RBVFVTX1RFWFQ6KCk9PkMsU1RZTEVfU0hPUlRfTkFNRVM6KCk9PmssU1lNQk9MX1NUUklOR19EQVRBOigpPT5WLGNoYXJ0U3R5bGVzV2l0aEF0dGFjaGVkU3R1ZGllczooKT0+TCxpc0NoYXJ0U3R5bGVTdHVkeUluZm9Db21wbGV4OigpPT5XLHNlcmllc0xvYWRpbmdTdGF0dXNlczooKT0+ZixzZXJpZXNSZWFkeVN0YXR1c2VzOigpPT53fSk7cyg1ODAzNyk7dmFyIG49cyg3Mjg0MzYpLGk9cyg3Nzc2NjEpLHI9cyg1NTAzOTMpO2NvbnN0IG89MCxhPTEsbD0yLHU9MyxjPTQsaD01LGQ9Nix5PTcsYj04LG09OSxwPTEwLFM9MTEsXz0xMixnPTEzLHY9MTQsdz1uZXcgU2V0KFszLDYsNyw4LDksMTFdKSxmPW5ldyBTZXQoWzEsMl0pLEM9e1tvXToiY29ubmVjdGluZyIsW2FdOiJsb2FkaW5nIixbbF06ImxvYWRpbmciLFt1XToicmVhbHRpbWUiLFtjXToiaW52YWxpZCIsW2hdOiJzbmFwc2hvdCIsW2RdOiJlbmRvZmRheSIsW3ldOiJlbmRvZmRheSIsW2JdOiJkZWxheWVkIixbbV06ImRlbGF5ZWRfc3RyZWFtaW5nIixbcF06ImZvcmJpZGRlbiIsW1NdOiJyZXBsYXkiLFtfXToiZXJyb3IiLFtnXToiY2FsY3VsYXRpb25fZXJyb3IiLFt2XToidW5zdXBwb3J0ZWRfcmVzb2x1dGlvbiJ9LGs9ezA6ImJhciIsMToiY2FuZGxlIiw5OiJob2xsb3dDYW5kbGUiLDI6ImxpbmUiLDE0OiJsaW5lV2l0aE1hcmtlcnMiLDE1OiJzdGVwbGluZSIsMzoiYXJlYSIsMTY6ImhsY0FyZWEiLDQ6InJlbmtvIiw3OiJwYiIsNToia2FnaSIsNjoicG5mIiw4OiJoYSIsMTA6ImJhc2VsaW5lIiwxMToicmFuZ2UiLDEyOiJoaWxvIiwxMzoiY29sdW1uIiwxNzoidm9sRm9vdHByaW50IiwxODoidHBvIiwxOToidm9sQ2FuZGxlcyIsMjA6InN2cCIsMjE6ImhsY0JhcnMifTtmdW5jdGlvbiBXKGUpe3JldHVybiJ2YXJpYW50cyJpbiBlfWNvbnN0IEk9W3t0eXBlOmkuc3R1ZHlUcG9QcmVyaW9kaWNJZCxiYXNpY1N0dWR5VmVyc2lvbjoxMDR9LHt0eXBlOmkuc3R1ZHlUcG9TZXNzaW9uc0lkLGJhc2ljU3R1ZHlWZXJzaW9uOjEwNH1dLFY9ezQ6e3R5cGU6IkJhclNldFJlbmtvQHR2LXByb3N0dWRpZXMiLGJhc2ljU3R1ZHlWZXJzaW9uOjczfSw3Ont0eXBlOiJCYXJTZXRQcmljZUJyZWFrQHR2LXByb3N0dWRpZXMiLGJhc2ljU3R1ZHlWZXJzaW9uOjM0fSw1Ont0eXBlOiJCYXJTZXRLYWdpQHR2LXByb3N0dWRpZXMiLGJhc2ljU3R1ZHlWZXJzaW9uOjczfSw2Ont0eXBlOiJCYXJTZXRQbkZAdHYtcHJvc3R1ZGllcyIsYmFzaWNTdHVkeVZlcnNpb246NzN9LDg6e3R5cGU6IkJhclNldEhlaWtlbkFzaGlAdHYtYmFzaWNzdHVkaWVzIixiYXNpY1N0dWR5VmVyc2lvbjo2MH0sMTE6e3R5cGU6IkJhclNldFJhbmdlQHR2LWJhc2ljc3R1ZGllcyIsYmFzaWNTdHVkeVZlcnNpb246NzJ9LDE3Ont0eXBlOm4uc3R1ZHlWb2xGb290cHJpbnRJZCxiYXNpY1N0dWR5VmVyc2lvbjoxMDR9LDE4Ont2YXJpYW50czpJLHNlbGVjdG9yOmU9Pntjb25zdCB0PWU7cmV0dXJuIkRheSI9PT10LnBlcmlvZCYmMT09PXQucGVyaW9kc051bT9JWzFdOklbMF19fSwyMDp7dHlwZTpyLnN0dWR5VmJQU2Vzc2lvbnNJZCxiYXNpY1N0dWR5VmVyc2lvbjoxMjZ9fSxMPS9eKDc5Nzk1fDk0Mzg5KSQvLnRlc3Qocy5qKT9bMTcsMTgsMjBdOm51bGx9LDEyODk5OChlLHQscyl7aWYocy5kKHQse2FjdHVhbFN5bWJvbDooKT0+d2UsY2hhcnRTdHlsZVN0dWR5SWQ6KCk9PiQsY3JlYXRlU2VyaWVzRm9ybWF0dGVyOigpPT5ZLGRpc3BsYXllZFN5bWJvbEV4Y2hhbmdlOigpPT52ZSxkaXNwbGF5ZWRTeW1ib2xOYW1lOigpPT5nZSxleHRyYWN0TGluZVRvb2xTeW1ib2xGcm9tU3ltYm9sSW5mbzooKT0+YmUsZ2V0Q2hhcnRTdHlsZUJ5UmVzb2x1dGlvbjooKT0+cSxnZXREZWZhdWx0U3R5bGU6KCk9Pk8sZ2V0TGFzdFVzZWRNZXRyaWM6KCk9PlUsZ2V0TGFzdFVzZWRSYXdEYXRhU3R5bGU6KCk9PlAsZ2V0TGFzdFVzZWRTaW5nbGVWYWx1ZUJhc2VkU3R5bGU6KCk9PkEsZ2V0TGFzdFVzZWRTdHlsZTooKT0+TSxnZXRTZXJpZXNEaXNwbGF5RXJyb3JXVjooKT0+eGUsZ2V0U2VyaWVzUHJpY2VGb3JtYXR0aW5nU3RhdGU6KCk9PnosZ2V0U291cmNlRm9yRWNvbm9teVN5bWJvbDooKT0+U2UsZ2V0U3ltYm9sRGVsYXlTZWNvbmRzOigpPT5EZSxnZXRTeW1ib2xMaXN0ZWRFeGNoYW5nZTooKT0+UmUsZ2V0U3ltYm9sVHJhZGVkRXhjaGFuZ2U6KCk9PlRlLGdldFRyYW5zbGF0ZWRDaGFydFN0eWxlTmFtZTooKT0+aywKaGFzVm9sdW1lOigpPT5MZSxpc0Nsb3NlQmFzZWRTeW1ib2w6KCk9PldlLGlzQ29udmVydGVkVG9PdGhlckN1cnJlbmN5OigpPT5aLGlzQ29udmVydGVkVG9PdGhlck1ldHJpYzooKT0+b2UsaXNDb252ZXJ0ZWRUb090aGVyVW5pdDooKT0+cmUsaXNFY29ub21pY1N5bWJvbDooKT0+QmUsaXNGdXR1cmVDb250aW51b3VzU3ltYm9sV2l0aEJhY2thanVzdG1lbnQ6KCk9PkZlLGlzRnV0dXJlc0NvbnRyYWN0U3ltYm9sOigpPT5FZSxpc0hMQ0Jhc2VkU3R5bGU6KCk9PkYsaXNNZWFzdXJlVW5pdFN5bWJvbDooKT0+SWUsaXNNZXRyaWNBY3RpdmU6KCk9PmFlLGlzUHJpY2VTb3VyY2VTdHlsZTooKT0+SCxpc1JhbmdlQmFzZWRTdHlsZTooKT0+SSxpc1JhbmdlU3R5bGU6KCk9PkwsaXNSYXdEYXRhU3R5bGU6KCk9PkUsaXNSZWd1bGFyU2Vzc2lvbklkOigpPT5DZSxpc1JlcXVpcmluZ1Jlc3RhcnRTZXJpZXNTdHlsZXM6KCk9PlcsaXNTaW5nbGVWYWx1ZUJhc2VkU3R5bGU6KCk9PlQsaXNTcHJlYWRTeW1ib2xXaXRoTWFueUxlZ3M6KCk9PkdlLGlzU3RvY2syNGhTZXNzaW9uSWQ6KCk9PmtlLGlzU3R5bGVTdXBwb3J0ZWRGb3JSZXBsYXk6KCk9PkcsaXNUaW1lQmFzZWRTdHlsZTooKT0+Qixpc1ZhbGlkU3R5bGU6KCk9PlIsbWVhc3VyZVVuaXRJZDooKT0+VmUscHJlcGFyZVByaWNlQXhpc1Byb3BlcnRpZXM6KCk9PmoscHJvU3ltYm9sOigpPT5mZSxzZXRMYXN0VXNlZE1ldHJpYzooKT0+TixzZXRMYXN0VXNlZFJhd0RhdGFTdHlsZTooKT0+RCxzZXRMYXN0VXNlZFN0eWxlOigpPT54LHN0eWxlQ2hhbmdlUmVxdWlyZXNSZXN0YXJ0OigpPT5WLHN5bWJvbEJhc2VDdXJyZW5jeTooKT0+USxzeW1ib2xDdXJyZW5jeTooKT0+WCxzeW1ib2xDdXJyZW5jeUNvbnZlcnRpYmxlOigpPT5LLHN5bWJvbEhhc0Vjb25vbWljRXZlbnRzOigpPT55ZSxzeW1ib2xIYXNFbGVjdHJvbmljU2Vzc2lvbjooKT0+aGUsc3ltYm9sSGFzTmlnaHRNYXJrZXQ6KCk9PmNlLHN5bWJvbEhhc1ByZU9yUG9zdE1hcmtldDooKT0+dWUsc3ltYm9sSGFzU2V2ZXJhbFNlc3Npb25zOigpPT5kZSxzeW1ib2xNZXRyaWM6KCk9Pm5lLHN5bWJvbE9yaWdpbmFsQ3VycmVuY3k6KCk9Pkosc3ltYm9sT3JpZ2luYWxNZXRyaWM6KCk9PmllLHN5bWJvbE9yaWdpbmFsVW5pdDooKT0+c2Usc3ltYm9sVGl0bGU6KCk9Pl9lLHN5bWJvbFRpdGxlU2VwYXJhdG9yOigpPT5wZSxzeW1ib2xUb1NhdmVJblN0YXRlOigpPT5tZSxzeW1ib2xVbml0OigpPT50ZSxzeW1ib2xVbml0Q29udmVydGlibGVHcm91cHNJZkV4aXN0OigpPT5sZX0pLC9eKDc5Nzk1fDk0Mzg5KSQvLnRlc3Qocy5qKSl2YXIgbj1zKDk1MjkwMCk7aWYoL14oNzk3OTV8OTQzODkpJC8udGVzdChzLmopKXZhciBpPXMoMjU0NjczKTt2YXIgcj1zKDE4NTI3MSksbz1zKDkzMDIzMSksYT1zKDkzMDU2NiksbD1zKDMxODk3NCksdT1zKDE1NjgyOSksYz1zKDc5ODM4KSxoPXMoNzU1NjI3KSxkPXMoOTg0Mzc2KSx5PXMoMTI1MjE4KTtpZigvXig3OTc5NXw5NDM4OSkkLy50ZXN0KHMuaikpdmFyIGI9cyg1OTY3MDYpO2lmKC9eKDc5Nzk1fDk0Mzg5KSQvLnRlc3Qocy5qKSl2YXIgbT1zKDI0MTk1Nik7dmFyIHA9cygzMTQ5MTQpO2NvbnN0IFM9KDAsby5pc0ZlYXR1cmVzZXRFbmFibGVkKSgidXBwZXJjYXNlX2luc3RydW1lbnRfbmFtZXMiKSxfPSgwLG8uaXNGZWF0dXJlc2V0RW5hYmxlZCkoImhpZGVfb2JqZWN0X3RyZWVfYW5kX3ByaWNlX3NjYWxlX2V4Y2hhbmdlX2xhYmVsIik7dmFyIGc7IWZ1bmN0aW9uKGUpe2UuTGFzdFVzZWRTdHlsZUtleT0iY2hhcnQubGFzdFVzZWRTdHlsZSIsZS5MYXN0VXNlZFNpbmdsZVZhbHVlQmFzZWRTdHlsZT0iY2hhcnQubGFzdFVzZWRTaW5nbGVWYWx1ZUJhc2VkU3R5bGUiLGUuTGFzdFVzZWRSYXdEYXRhU3R5bGU9ImNoYXJ0LnJhd0RhdGFTdHlsZSIsZS5MYXN0VXNlZE1ldHJpYz0iY2hhcnQubGFzdFVzZWRNZXRyaWMifShnfHwoZz17fSkpO2NvbnN0IHY9L14oNzk3OTV8OTQzODkpJC8udGVzdChzLmopP1s0LDUsNiw3LDhdOm51bGwsdz0vXig3OTc5NXw5NDM4OSkkLy50ZXN0KHMuaik/WzQsNSw2LDcsMTFdOm51bGwsZj0vXig3OTc5NXw5NDM4OSkkLy50ZXN0KHMuaik/WzAsMSw5LDE5LDIsMTQsMTUsMywxNiwyMSwxMCw4LDEyLDEzLDE4LDE3LDIwXTpudWxsLEM9L14oNzk3OTV8OTQzODkpJC8udGVzdChzLmopP1syLDE0LDE1LDEwLDMsMTMsMThdOm51bGw7ZnVuY3Rpb24gayhlKXtyZXR1cm57MDpyLnQobnVsbCx7Y29udGV4dDoiQ2hhcnQgc3R5bGUifSxzKDk0MTYyOSkpLDE6ci50KG51bGwse2NvbnRleHQ6IkNoYXJ0IHN0eWxlIn0scygxMTg0OTEpKSwyOnIudChudWxsLHtjb250ZXh0OiJDaGFydCBzdHlsZSJ9LHMoMjEwNDk5KSksMTQ6ci50KG51bGwse2NvbnRleHQ6IkNoYXJ0IHN0eWxlIn0scygxODYxNDcpKSwxNTpyLnQobnVsbCx7Y29udGV4dDoiQ2hhcnQgc3R5bGUifSxzKDkxNjE0OCkpLDM6ci50KG51bGwse2NvbnRleHQ6IkNoYXJ0IHN0eWxlIn0scyg3OTYwOTMpKSwxNjpyLnQobnVsbCx7Y29udGV4dDoiQ2hhcnQgc3R5bGUifSxzKDk2Nzg0MSkpLDk6ci50KG51bGwse2NvbnRleHQ6IkNoYXJ0IHN0eWxlIn0scygzMzE4MjQpKSwxMDpyLnQobnVsbCx7Y29udGV4dDoiQ2hhcnQgc3R5bGUifSxzKDUyNTMzMSkpLDEyOnIudChudWxsLHtjb250ZXh0OiJDaGFydCBzdHlsZSJ9LHMoOTUyODEwKSksMTM6ci50KG51bGwse2NvbnRleHQ6IkNoYXJ0IHN0eWxlIn0scyg2MTczNDApKSw0OnIudChudWxsLHtjb250ZXh0OiJDaGFydCBzdHlsZSJ9LHMoNDYxNzM4KSksNzpyLnQobnVsbCx7Y29udGV4dDoiQ2hhcnQgc3R5bGUifSxzKDMwNzQzNikpLDU6ci50KG51bGwse2NvbnRleHQ6IkNoYXJ0IHN0eWxlIn0scyg0MTM0MykpLDY6ci50KG51bGwse2NvbnRleHQ6IkNoYXJ0IHN0eWxlIn0scyg4NjcwMjEpKSwxMTpyLnQobnVsbCx7Y29udGV4dDoiQ2hhcnQgc3R5bGUifSxzKDE4ODM1MikpLDg6ci50KG51bGwse2NvbnRleHQ6IkNoYXJ0IHN0eWxlIn0scyg4MzU1NDMpKSwxNzpyLnQobnVsbCx7Y29udGV4dDoiQ2hhcnQgc3R5bGUifSxzKDIwMTA3MykpLAoxODpyLnQobnVsbCx7Y29udGV4dDoiQ2hhcnQgc3R5bGUifSxzKDExNzk4NCkpLDE5OnIudChudWxsLHtjb250ZXh0OiJDaGFydCBzdHlsZSJ9LHMoODkyMzc1KSksMjA6ci50KG51bGwse2NvbnRleHQ6IkNoYXJ0IHN0eWxlIn0scyg2ODc5NTEpKSwyMTpyLnQobnVsbCx7Y29udGV4dDoiQ2hhcnQgc3R5bGUifSxzKDY4MzAwKSl9W2VdfWZ1bmN0aW9uIFcoZSl7cmV0dXJuLTEhPT12LmluZGV4T2YoZSl9ZnVuY3Rpb24gSShlKXtyZXR1cm4tMSE9PXcuaW5kZXhPZihlKX1mdW5jdGlvbiBWKGUsdCl7cmV0dXJuIUwoZSkmJiFMKHQpJiYhKGU9PT10fHwhVyhlKSYmIVcodCkpfWZ1bmN0aW9uIEwoZSl7cmV0dXJuIDExPT09ZX1mdW5jdGlvbiBCKGUpe3JldHVybi0xIT09Zi5pbmRleE9mKGUpfWZ1bmN0aW9uIEcoZSl7cmV0dXJuIDE3IT09ZSYmMTghPT1lJiYyMCE9PWUmJkIoZSl9ZnVuY3Rpb24gUihlKXtyZXR1cm4gSShlKXx8QihlKX1mdW5jdGlvbiBUKGUpe3N3aXRjaChlKXtjYXNlIDM6Y2FzZSAxMDpjYXNlIDI6Y2FzZSAxNDpjYXNlIDE1OmNhc2UgMTM6cmV0dXJuITA7ZGVmYXVsdDpyZXR1cm4hMX19ZnVuY3Rpb24gRihlKXtzd2l0Y2goZSl7Y2FzZSAxNjpjYXNlIDIxOnJldHVybiEwO2RlZmF1bHQ6cmV0dXJuITF9fWZ1bmN0aW9uIEUoZSl7cmV0dXJuIWMuU1lNQk9MX1NUUklOR19EQVRBW2VdfWZ1bmN0aW9uIHgoZSx0KXtSKGUpJiYoMTEhPT1lJiZhLnNldFZhbHVlKCJjaGFydC5sYXN0VXNlZFN0eWxlIixlKSxFKGUpJiZEKGUpLFdlKHQpJiZUKGUpJiZhLnNldFZhbHVlKCJjaGFydC5sYXN0VXNlZFNpbmdsZVZhbHVlQmFzZWRTdHlsZSIsZSkpfWZ1bmN0aW9uIEQoZSl7YS5zZXRWYWx1ZSgiY2hhcnQucmF3RGF0YVN0eWxlIixlKX1mdW5jdGlvbiBNKCl7Y29uc3QgZT1hLmdldEludCgiY2hhcnQubGFzdFVzZWRTdHlsZSIpO3JldHVybiB2b2lkIDA9PT1lPzE6ZX1mdW5jdGlvbiBBKCl7Y29uc3QgZT1hLmdldEludCgiY2hhcnQubGFzdFVzZWRTaW5nbGVWYWx1ZUJhc2VkU3R5bGUiKTtyZXR1cm4gdm9pZCAwPT09ZT8xNDplfWZ1bmN0aW9uIFAoKXtyZXR1cm4gYS5nZXRJbnQoImNoYXJ0LnJhd0RhdGFTdHlsZSIsMSl9ZnVuY3Rpb24gTihlKXthLnNldFZhbHVlKCJjaGFydC5sYXN0VXNlZE1ldHJpYyIsZSl9ZnVuY3Rpb24gVSgpe3JldHVybiBhLmdldFZhbHVlKCJjaGFydC5sYXN0VXNlZE1ldHJpYyIpPz9udWxsfWZ1bmN0aW9uIE8oZSl7cmV0dXJuIGU/MTE6MX1mdW5jdGlvbiBxKGUsdCl7Y29uc3Qgcz1MKHQpLG49aS5JbnRlcnZhbC5pc1JhbmdlKGUpO3JldHVybiFzJiZuP08oITApOnMmJiFuP08oITEpOnR9ZnVuY3Rpb24gJChlLHQscyl7Y29uc3Qgbj1jLlNZTUJPTF9TVFJJTkdfREFUQVtlXTtpZih2b2lkIDA9PT1uKXJldHVybiBudWxsO2NvbnN0IGk9KDAsYy5pc0NoYXJ0U3R5bGVTdHVkeUluZm9Db21wbGV4KShuKT9uLnNlbGVjdG9yKHM/P3t9KTpuO3JldHVybiB0P2Ake2kudHlwZX0tJHtpLmJhc2ljU3R1ZHlWZXJzaW9ufWA6aS50eXBlfWZ1bmN0aW9uIGooZSl7Y29uc3QgdD1lLnByaWNlQXhpc1Byb3BlcnRpZXMscz10LmxvY2tTY2FsZS52YWx1ZSgpLG49Nj09PWUuc3R5bGUudmFsdWUoKTsobnx8cykmJih0LmxvZy5zZXRWYWx1ZSghMSksdC5wZXJjZW50YWdlLnNldFZhbHVlKCExKSksdC5sb2dEaXNhYmxlZC5zZXRWYWx1ZSghKCFuJiYhcykpLHQucGVyY2VudGFnZURpc2FibGVkLnNldFZhbHVlKCEoIW4mJiFzKSl9ZnVuY3Rpb24gSChlKXtyZXR1cm4gQy5pbmNsdWRlcyhlKX1mdW5jdGlvbiB6KGUsdD0iZGVmYXVsdCIscz0hMSl7bGV0IG4saSxyLG8sYT0xMDAsbD0xO2lmKCJkZWZhdWx0Ij09PXQpbnVsbCE9ZSYmKCh7cHJpY2VzY2FsZTphLG1pbm1vdjpsLG1pbm1vdmUyOmksZnJhY3Rpb25hbDpufT1lKSxyPWUudmFyaWFibGVfdGlja19zaXplfHx2b2lkIDApO2Vsc2V7bGV0IGU9dC5zcGxpdCgiLCIpOzMhPT1lLmxlbmd0aCYmKGU9WyIxMDAiLCIxIiwiZmFsc2UiXSksYT1wYXJzZUludChlWzBdKSxsPXBhcnNlSW50KGVbMV0pLG49InRydWUiPT09ZVsyXSxvPSEwfXJldHVybiBzJiYobD0xKSx7cHJpY2VTY2FsZTphLG1pbk1vdmU6bCxmcmFjdGlvbmFsOm4sbWluTW92ZTI6aSx2YXJpYWJsZU1pblRpY2s6cixpZ25vcmVNaW5Nb3ZlOnMsbm9FeHBvbmVudGlhbEZvcm06b319ZnVuY3Rpb24gWShlLHQscz0hMSl7Y29uc3R7cHJpY2VTY2FsZTpuLG1pbk1vdmU6aSxmcmFjdGlvbmFsOnIsbWluTW92ZTI6byx2YXJpYWJsZU1pblRpY2s6YSxub0V4cG9uZW50aWFsRm9ybTpsfT16KGUsdCxzKTtpZihudWxsIT1lKXtjb25zdCBsPWUuZm9ybWF0O2lmKCJkZWZhdWx0Ij09PXQmJiJ2b2x1bWUiPT09bClyZXR1cm4gbmV3IGQuVm9sdW1lRm9ybWF0dGVyKHtwcmVjaXNpb246Mn0pO2lmKCJwZXJjZW50Ij09PWwpcmV0dXJuIG5ldyB5LlBlcmNlbnRhZ2VGb3JtYXR0ZXIoe3ByaWNlU2NhbGU6bixtaW5Nb3ZlOmksZnJhY3Rpb25hbDpyLG1pbk1vdmUyOm8sdmFyaWFibGVNaW5UaWNrOmEsaWdub3JlTWluTW92ZTpzfSl9cmV0dXJuIG5ldyBoLlByaWNlRm9ybWF0dGVyKHtwcmljZVNjYWxlOm4sbWluTW92ZTppLGZyYWN0aW9uYWw6cixtaW5Nb3ZlMjpvLHZhcmlhYmxlTWluVGljazphLGlnbm9yZU1pbk1vdmU6cyxub0V4cG9uZW50aWFsRm9ybTpsfSl9ZnVuY3Rpb24gSyhlKXtyZXR1cm4gbnVsbCE9PWUmJiEoMCx1LmlzU3ByZWFkKShlLnR5cGUpfWZ1bmN0aW9uIFgoZSx0LHMpe2lmKG51bGw9PT1lKXJldHVybiBudWxsO2NvbnN0IG49IXR8fHM/ZS5jdXJyZW5jeV9pZDplLmN1cnJlbmN5X2NvZGU7cmV0dXJuIHZvaWQgMD09PW58fCIiPT09bnx8InBjdCI9PT1uP251bGw6bn1mdW5jdGlvbiBKKGUsdCl7Y29uc3Qgcz10P2Uub3JpZ2luYWxfY3VycmVuY3lfY29kZTplLm9yaWdpbmFsX2N1cnJlbmN5X2lkO3JldHVybiJwY3QiPT09cz9udWxsOnM/P1goZSx0KX1mdW5jdGlvbiBRKGUpe3JldHVybiBlLmJhc2VfY3VycmVuY3lfaWR8fG51bGx9ZnVuY3Rpb24gWihlKXtpZihudWxsPT09ZXx8IUsoZSkpcmV0dXJuITE7Y29uc3QgdD1KKGUpCjtyZXR1cm4gbnVsbCE9PXQmJnQhPT1YKGUpfWZ1bmN0aW9uIGVlKGUsdCl7cmV0dXJuIHQmJm51bGwhPT1lJiYhKDAsdS5pc1NwcmVhZCkoZS50eXBlKX1mdW5jdGlvbiB0ZShlLHQpe2lmKG51bGw9PT1lfHwhdClyZXR1cm4gbnVsbDtjb25zdCBzPWUudW5pdF9pZDtyZXR1cm4gdm9pZCAwPT09c3x8IiI9PT1zP251bGw6c31mdW5jdGlvbiBzZShlLHQpe3JldHVybiB0P2Uub3JpZ2luYWxfdW5pdF9pZHx8dGUoZSx0KTpudWxsfWZ1bmN0aW9uIG5lKGUsdCl7cmV0dXJuIHQmJmUubWV0cmljcz8uY3VycmVudHx8bnVsbH1mdW5jdGlvbiBpZShlLHQpe3JldHVybiB0P2UubWV0cmljcz8uZGVmYXVsdHx8bmUoZSx0KTpudWxsfWZ1bmN0aW9uIHJlKGUsdCl7cmV0dXJuIShudWxsPT09ZXx8IWVlKGUsdCkpJiYodm9pZCAwIT09ZS5vcmlnaW5hbF91bml0X2lkJiZlLm9yaWdpbmFsX3VuaXRfaWQhPT1lLnVuaXRfaWQpfWZ1bmN0aW9uIG9lKGUsdCl7cmV0dXJuIShudWxsPT09ZXx8IXQpJiYodm9pZCAwIT09ZT8ubWV0cmljcz8uZGVmYXVsdCYmZT8ubWV0cmljcz8uZGVmYXVsdCE9PWU/Lm1ldHJpY3M/LmN1cnJlbnQpfWZ1bmN0aW9uIGFlKGUpe3JldHVybiBCb29sZWFuKGU/Lm1ldHJpY3M/LmN1cnJlbnQmJiJwcmljZSIhPT1lLm1ldHJpY3MuY3VycmVudCl9ZnVuY3Rpb24gbGUoZSx0KXtyZXR1cm4gbnVsbCE9PWUmJmVlKGUsdCk/ZS51bml0X2NvbnZlcnNpb25fdHlwZXN8fG51bGw6W119ZnVuY3Rpb24gdWUoZSl7cmV0dXJuIG51bGwhPT1lJiZ2b2lkIDAhPT1lLnN1YnNlc3Npb25zJiZlLnN1YnNlc3Npb25zLnNvbWUoKGU9PiJwcmVtYXJrZXQiPT09ZS5pZHx8InBvc3RtYXJrZXQiPT09ZS5pZCkpfWZ1bmN0aW9uIGNlKGUpe3JldHVybiBudWxsIT09ZSYmdm9pZCAwIT09ZS5zdWJzZXNzaW9ucyYmZS5zdWJzZXNzaW9ucy5zb21lKChlPT4iMjRoIj09PWUuaWQpKX1mdW5jdGlvbiBoZShlKXtyZXR1cm4gbnVsbCE9PWUmJnZvaWQgMCE9PWUuc3Vic2Vzc2lvbnMmJihlLnN1YnNlc3Npb25zLnNvbWUoKGU9PiJyZWd1bGFyIj09PWUuaWQpKSYmZS5zdWJzZXNzaW9ucy5zb21lKChlPT4idXNfcmVndWxhciI9PT1lLmlkKSkpfWZ1bmN0aW9uIGRlKGUpe3JldHVybiBudWxsIT09ZSYmdm9pZCAwIT09ZS5zdWJzZXNzaW9ucyYmZS5zdWJzZXNzaW9ucy5maWx0ZXIoKGU9PiFlLnByaXZhdGUpKS5sZW5ndGg+MX1mdW5jdGlvbiB5ZShlKXtyZXR1cm4gbnVsbCE9PWUmJigoMCx1LmlzRm9yZXhTeW1ib2wpKGUudHlwZSl8fCgwLGIuaXNDRkRTeW1ib2wpKGUudHlwZSxlLnR5cGVzcGVjcyl8fCgwLHUuaGFzQ3J5cHRvVHlwZXNwZWMpKGUudHlwZXNwZWNzfHxbXSkpfWZ1bmN0aW9uIGJlKGUsdCl7cmV0dXJuKDAscC5leHRyYWN0U3ltYm9sTmFtZUZyb21TeW1ib2xJbmZvKShlLG51bGwsITAsITApfHx0fWZ1bmN0aW9uIG1lKGUsdCl7cmV0dXJuIGU/ZS50aWNrZXI/P2UucHJvX25hbWU/P3Q6dH1jb25zdCBwZT0iwrciO2Z1bmN0aW9uIFNlKGUsdCl7cmV0dXJuIEJlKGUpP2Uuc291cmNlMj8uZGVzY3JpcHRpb24/P251bGw6bnVsbH1mdW5jdGlvbiBfZShlLHQpe2NvbnN0IHM9UmUoZSk7cmV0dXJuIHR8fF8/ZS5uYW1lOmAke2UubmFtZX0gJHtwZX0gJHtzfWB9ZnVuY3Rpb24gZ2UoZSl7bGV0IHQ9ZSYmKGZ1bmN0aW9uKGUpe3JldHVybigwLHUuaXNGdXR1cmVzKShlLnR5cGUpJiZlLmZyb250X2NvbnRyYWN0fHxudWxsfShlKXx8ZS5uYW1lKXx8IiI7cmV0dXJuIHQubGVuZ3RoPjQwJiYodD10LnN1YnN0cmluZygwLDM3KSsiLi4uIiksdC50cmltKCl9ZnVuY3Rpb24gdmUoZSl7Y29uc3QgdD1lP2UuZXhjaGFuZ2U6IiI7cmV0dXJuIFM/dC50b1VwcGVyQ2FzZSgpOnR9ZnVuY3Rpb24gd2UoZSx0KXtyZXR1cm4gbnVsbCE9PWU/ZS5mdWxsX25hbWU6dH1mdW5jdGlvbiBmZShlLHQpe3JldHVybiBlPy5wcm9fbmFtZT8/dH1mdW5jdGlvbiBDZShlLHQpe3dpbmRvdztyZXR1cm5bInN0b2NrIiwiZnVuZCIsImluZGV4IiwiZHIiXS5pbmNsdWRlcyh0LnR5cGUpJiYicmVndWxhciI9PT1lfHwoMCx1LmlzRnV0dXJlcykodC50eXBlKSYmInVzX3JlZ3VsYXIiPT09ZX1mdW5jdGlvbiBrZShlKXtyZXR1cm4iMjRoIj09PWV9ZnVuY3Rpb24gV2UoZSl7cmV0dXJuImMiPT09ZT8udmlzaWJsZV9wbG90c19zZXR9ZnVuY3Rpb24gSWUoZSl7cmV0dXJuIG51bGwhPT1lJiYoInVuaXQiPT09ZS5tZWFzdXJlJiZudWxsIT09VmUoZSkpfWZ1bmN0aW9uIFZlKGUpe3JldHVybiBlPy52YWx1ZV91bml0X2lkPz9udWxsfWZ1bmN0aW9uIExlKGUpe3JldHVybiJvaGxjdiI9PT1lLnZpc2libGVfcGxvdHNfc2V0fWZ1bmN0aW9uIEJlKGUpe3JldHVybiBudWxsIT09ZSYmKDAsdS5pc0Vjb25vbWljU3ltYm9sKShlLnR5cGUpfWZ1bmN0aW9uIEdlKGUpe3JldHVybiBmdW5jdGlvbihlKXtyZXR1cm4gbnVsbCE9PWUmJigwLHUuaXNTcHJlYWQpKGUudHlwZSl9KGUpJiYoZT8ubGVncz8/W10pLmxlbmd0aD4xfWZ1bmN0aW9uIFJlKGUpe2NvbnN0IHQ9U2UoZSk7aWYobnVsbCE9PXQpcmV0dXJuIHQ7cmV0dXJuKDAsbC5vbldpZGdldCkoKXx8KDAsdS5pc0ZvcmV4U3ltYm9sKShlLnR5cGUpP2UuZXhjaGFuZ2U6ZS5leGNoYW5nZV9saXN0ZWRfbmFtZT8/ZS5leGNoYW5nZX1mdW5jdGlvbiBUZShlKXtyZXR1cm4gZS5leGNoYW5nZX1mdW5jdGlvbiBGZShlKXtyZXR1cm4gbnVsbCE9PWUmJigwLHUuaXNGdXR1cmVzKShlLnR5cGUpJiZCb29sZWFuKGUuaGFzX2JhY2thZGp1c3RtZW50JiZlLnR5cGVzcGVjcz8uaW5jbHVkZXMoImNvbnRpbnVvdXMiKSl9ZnVuY3Rpb24gRWUoZSl7cmV0dXJuIG51bGwhPT1lJiYoMCx1LmlzRnV0dXJlcykoZS50eXBlKSYmIUJvb2xlYW4oZS50eXBlc3BlY3M/LmluY2x1ZGVzKCJjb250aW51b3VzIikpfWZ1bmN0aW9uIHhlKGUpe3JldHVybigwLG4uY29tYmluZSkoKCh0LHMsbik9Pntzd2l0Y2godCl7Y2FzZSA0Ontjb25zdCB0PWUuc2VyaWVzRXJyb3JNZXNzYWdlKCkKO3JldHVybiBudWxsIT09dCYmKCJyZXNvbHV0aW9uX25vdF9lbnRpdGxlZCI9PT10fHwiY3VzdG9tX3Jlc29sdXRpb24iPT09dHx8InNlY29uZHNfbm90X2VudGl0bGVkIj09PXR8fCJ0aWNrc19ub3RfZW50aXRsZWQiPT09dHx8dC5zdGFydHNXaXRoKCJzdHVkeV9ub3RfYXV0aDoiKSk/bnVsbDp7dHlwZToiaW52YWxpZF9zeW1ib2wifX1jYXNlIDEzOntjb25zdCB0PWUuc2VyaWVzRXJyb3JNZXNzYWdlKCk7cmV0dXJuIG51bGw9PT10P251bGw6e3R5cGU6ImNhbGN1bGF0aW9uc19lcnJvciIsZXJyb3JNZXNzYWdlOnR9fWNhc2UgMTQ6e2NvbnN0IHQ9ZS51bnN1cHBvcnRlZFJlc29sdXRpb25TdGF0ZSgpLnZhbHVlKCk7cmV0dXJuIG51bGw9PT10P251bGw6e3R5cGU6InVuc3VwcG9ydGVkX3Jlc29sdXRpb24iLHJlYXNvbjp0LnJlYXNvbn19Y2FzZSAxOmNhc2UgMjpyZXR1cm4gbnVsbDtkZWZhdWx0OmlmKHMpcmV0dXJuIG4/e3R5cGU6Imlwb19wcmljZWQifTp7dHlwZToibm9fZGF0YSJ9fXJldHVybiBudWxsfSksZS5zdGF0dXNXVigpLndlYWtSZWZlcmVuY2UoKSwoMCxtLmNyZWF0ZVdWRnJvbUdldHRlckFuZFN1YnNjcmlwdGlvbikoKHQ9PnZvaWQgMCE9PXQmJighZS5iYXJzKCkuc2l6ZSgpJiYhZS5uc0JhcnMoKS5zaXplKCkmJiFlLmlzSW5SZXBsYXkoKS52YWx1ZSgpKSksZS5kYXRhRXZlbnRzKCkuZGF0YVVwZGF0ZWQoKSkub3duZXJzaGlwKCksKDAsbi5jb21iaW5lKSgoKGUsdCk9PnQ/InByaWNlZCI9PT1lPy5pcG9fb2ZmZXJfc3RhdHVzOm51bGwpLGUucXVvdGVzUHJvdmlkZXIoKS5xdW90ZXMoKS53ZWFrUmVmZXJlbmNlKCksZS5xdW90ZXNQcm92aWRlcigpLmNvbXBsZXRlZCgpLndlYWtSZWZlcmVuY2UoKSkub3duZXJzaGlwKCkpfWZ1bmN0aW9uIERlKGUpe3JldHVybiBNYXRoLm1heCgwLGU/LmRlbGF5Pz8wKX19LDc3NzY2MShlLHQscyl7cy5kKHQse3N0dWR5VHBvUHJlcmlvZGljSWQ6KCk9Pm4sc3R1ZHlUcG9TZXNzaW9uc0lkOigpPT5pfSk7Y29uc3Qgbj0iVFBPUGVyaW9kaWNAdHYtdm9sdW1lYnlwcmljZSIsaT0iVFBPU2Vzc2lvbnNAdHYtdm9sdW1lYnlwcmljZSJ9LDcyODQzNihlLHQscyl7cy5kKHQse3N0dWR5Vm9sRm9vdHByaW50SWQ6KCk9Pm59KTtjb25zdCBuPSJGb290cHJpbnRAdHYtdm9sdW1lYnlwcmljZSJ9LDU1MDM5MyhlLHQscyl7cy5kKHQse3N0dWR5VmJQU2Vzc2lvbnNJZDooKT0+bn0pO2NvbnN0IG49IlZiUFNlc3Npb25zQHR2LXZvbHVtZWJ5cHJpY2UifSw3Nzg5NDYoZSx0LHMpe3ZhciBuO3MuZCh0LHtnZXRQbGF0Zm9ybTooKT0+b30pLGZ1bmN0aW9uKGUpe2UuRGVza3RvcD0iZGVza3RvcCIsZS5XZWI9IndlYiIsZS5JT1M9ImlvcyIsZS5BbmRyb2lkPSJhbmRyb2lkIn0obnx8KG49e30pKTt2YXIgaT1zKDExNzMxMykscj1zKDMxODk3NCk7ZnVuY3Rpb24gbygpe3JldHVybigwLHIuaXNEZXNrdG9wQXBwKSgpPyJkZXNrdG9wIjooMCxpLmlzT25Nb2JpbGVBcHBQYWdlKSgib2xkIik/ImlvcyI6KDAsaS5pc09uTW9iaWxlQXBwUGFnZSkoIm5ldyIpPyJhbmRyb2lkIjoid2ViIn19fV0pOw=="}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/3916.5481261b9512717460fe.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.539Z","timestamp":1785148034539,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/3916.5481261b9512717460fe.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\ncontent-type: text/css; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding, Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\netag: W/\"69f98b75-527\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Tue, 05 May 2026 06:17:25 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.51\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 05/05/2026 10:16:43\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: ead6d7e40e84846dbc17d34b3df69817\r\ncdn-cache: HIT\r\ncontent-encoding: br\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":1319,"size_decoded":1174,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with very long lines (1319), with no line terminators","md5":"a1bb7ef590664b0f02c8827b83a39965","sha1":"1306777feaf4283c77ea4e48d3bf3c8dce143921","sha256":"8d0a307ce60e964474b8dd762dcbcc08a2749f583077a313115f4ec6a855b27b","sha512":"5c4a70de5fe18f9129572854704902530773d6712fac4db28ebd310e85f6322e6653bd2677be19aeba2211530d67b018c8e12b15ade2952c268d8f2f76fcdca9","ssdeep":"","tlshash":"7521f7cde5d2a22f3a0f313e432dc15c621a7881df932b75b826d2e402c57e565b7564","first_seen":"2025-07-09T18:19:43.559202Z","last_seen":"2026-07-27T12:48:39.616999Z","times_seen":319,"resource_available":false,"data":"W2RhdGEtdGhlbWU9ZGFya10sW2RhdGEtdGhlbWU9bGlnaHRdey0tXzAtTTRVUzojMDAwMH0uYnV0dG9uLXc2bFZlX29Je2FsaWduLWl0ZW1zOmNlbnRlcjtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXR2LWxpc3QtaXRlbS1idXR0b24tYmFja2dyb3VuZC1jb2xvcik7Ym9yZGVyLXJhZGl1czo0cHg7Y29sb3I6dmFyKC0tdHYtY29sb3ItcG9wdXAtZWxlbWVudC10b29sYm94LXRleHQsdmFyKC0tY29sb3ItcG9wdXAtZWxlbWVudC10b29sYm94LXRleHQpKTtkaXNwbGF5OmlubGluZS1mbGV4O2ZvbnQtc2l6ZTowO2hlaWdodDoyMnB4O2p1c3RpZnktY29udGVudDpjZW50ZXI7bWluLXdpZHRoOjIycHg7d2lkdGg6MjJweH0uYnV0dG9uLXc2bFZlX29JLmhvdmVyZWQtdzZsVmVfb0ksLmJ1dHRvbi13NmxWZV9vSTphY3RpdmV7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS10di1jb2xvci1wb3B1cC1lbGVtZW50LXRvb2xib3gtYmFja2dyb3VuZC1ob3Zlcix2YXIoLS10di1saXN0LWl0ZW0tYnV0dG9uLWJhY2tncm91bmQtaG92ZXItY29sb3IsdmFyKC0tY29sb3ItY29udGFpbmVyLWZpbGwtcHJpbWFyeS1uZXV0cmFsLW5vcm1hbCkpKTtjb2xvcjp2YXIoLS10di1jb2xvci1wb3B1cC1lbGVtZW50LXRvb2xib3gtdGV4dC1ob3Zlcix2YXIoLS1jb2xvci1wb3B1cC1lbGVtZW50LXRvb2xib3gtdGV4dC1ob3ZlcikpfUBtZWRpYSAoYW55LWhvdmVyOmhvdmVyKXsuYnV0dG9uLXc2bFZlX29JOmhvdmVye2JhY2tncm91bmQtY29sb3I6dmFyKC0tdHYtY29sb3ItcG9wdXAtZWxlbWVudC10b29sYm94LWJhY2tncm91bmQtaG92ZXIsdmFyKC0tdHYtbGlzdC1pdGVtLWJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyLWNvbG9yLHZhcigtLWNvbG9yLWNvbnRhaW5lci1maWxsLXByaW1hcnktbmV1dHJhbC1ub3JtYWwpKSk7Y29sb3I6dmFyKC0tdHYtY29sb3ItcG9wdXAtZWxlbWVudC10b29sYm94LXRleHQtaG92ZXIsdmFyKC0tY29sb3ItcG9wdXAtZWxlbWVudC10b29sYm94LXRleHQtaG92ZXIpKX19LmJ1dHRvbi13NmxWZV9vSS5kaXNhYmxlZC13NmxWZV9vSSwuYnV0dG9uLXc2bFZlX29JLmRpc2FibGVkLXc2bFZlX29JOmFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXR2LWxpc3QtaXRlbS1idXR0b24tZGlzYWJsZWQtYmFja2dyb3VuZC1jb2xvcix2YXIoLS1fMC1NNFVTKSl9QG1lZGlhIChhbnktaG92ZXI6aG92ZXIpey5idXR0b24tdzZsVmVfb0kuZGlzYWJsZWQtdzZsVmVfb0k6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS10di1saXN0LWl0ZW0tYnV0dG9uLWRpc2FibGVkLWJhY2tncm91bmQtY29sb3IsdmFyKC0tXzAtTTRVUykpfX0="}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/49518.081f9637b94ee62a6e6f.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:12.954Z","timestamp":1785148032954,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/49518.081f9637b94ee62a6e6f.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:12 GMT\r\ncontent-type: text/css; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding, Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\netag: W/\"69f98b70-14e9\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Tue, 05 May 2026 06:17:20 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.51\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 05/05/2026 10:16:23\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 6ca0398e18b1220557d866d442fbc4da\r\ncdn-cache: HIT\r\ncontent-encoding: br\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":5353,"size_decoded":1929,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with very long lines (5353), with no line terminators","md5":"d7a9f60b8ae2b7f3ca613c9e5b32c1be","sha1":"96edacc2eaf0e2cf90be1c863bcdf71fce951db7","sha256":"62105e79933d1412be7816bc118e665a99e90c3d846b5e3282d35372ec43018a","sha512":"be8a4d2d71a8547c7dd2aa502370f205f86911c5def4816629a2da7cd82f3786e92dd78ecc49e89a9af136891ed67fb875ef4fcddcc07ccc31b5f51d430f4da3","ssdeep":"48:DVGIKVGI0GIKZGIpGIoVGIRGIqGIuGIjVGI0QVGIZGITZGI0LGI06GIHGI8GI/G7:D81CWQbawWxrGn5W+orw57Ur6Mpk98","tlshash":"12b1f676e8201aa675ba5a192380fad45034d022bf219ffff3c568168dcf1c6789381d","first_seen":"2026-03-24T10:46:27.490841Z","last_seen":"2026-07-27T12:53:42.617036Z","times_seen":1629,"resource_available":false,"data":"W2RhdGEtdGhlbWU9bGlnaHRdey0tXzAtNmFuTTp2YXIoLS1jb2xvci1jb2xkLWdyYXktODAwKTstLV8xLTZhbk06dmFyKC0tY29sb3ItY29sZC1ncmF5LTcwMCk7LS1fMi02YW5NOnZhcigtLWNvbG9yLWNvbGQtZ3JheS01NTApOy0tXzMtNmFuTTp2YXIoLS1jb2xvci1jb2xkLWdyYXktODAwKTstLV80LTZhbk06dmFyKC0tY29sb3ItY29sZC1ncmF5LTgwMCk7LS1fNS02YW5NOnZhcigtLWNvbG9yLXdoaXRlKTstLV82LTZhbk06dmFyKC0tY29sb3ItY29sZC1ncmF5LTcwMCk7LS1fNy02YW5NOnZhcigtLWNvbG9yLWNvbGQtZ3JheS03MDApOy0tXzgtNmFuTTp2YXIoLS1jb2xvci1jb2xkLWdyYXktNTUwKTstLV85LTZhbk06dmFyKC0tY29sb3ItY29sZC1ncmF5LTU1MCl9W2RhdGEtdGhlbWU9ZGFya117LS1fMC02YW5NOnZhcigtLWNvbG9yLWNvbGQtZ3JheS0xMDApOy0tXzEtNmFuTTp2YXIoLS1jb2xvci1jb2xkLWdyYXktMjAwKTstLV8yLTZhbk06dmFyKC0tY29sb3ItY29sZC1ncmF5LTQ1MCk7LS1fMy02YW5NOnZhcigtLWNvbG9yLWNvbGQtZ3JheS0xMDApOy0tXzQtNmFuTTp2YXIoLS1jb2xvci1jb2xkLWdyYXktMTAwKTstLV81LTZhbk06dmFyKC0tY29sb3ItY29sZC1ncmF5LTgwMCk7LS1fNi02YW5NOnZhcigtLWNvbG9yLWNvbGQtZ3JheS0yMDApOy0tXzctNmFuTTp2YXIoLS1jb2xvci1jb2xkLWdyYXktMjAwKTstLV84LTZhbk06dmFyKC0tY29sb3ItY29sZC1ncmF5LTQ1MCk7LS1fOS02YW5NOnZhcigtLWNvbG9yLWNvbGQtZ3JheS00NTApfS50di1jb250cm9sLWNoZWNrYm94ey13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjp0cmFuc3BhcmVudH0udHYtY29udHJvbC1jaGVja2JveC0taW4tYWN0aW9uc3ttYXgtd2lkdGg6NTAlfUBtZWRpYSAobWF4LXdpZHRoOjQ3OXB4KXsudHYtY29udHJvbC1jaGVja2JveC0taW4tYWN0aW9uc3ttYXgtd2lkdGg6bm9uZX19LnR2LWNvbnRyb2wtY2hlY2tib3gsLnR2LWNvbnRyb2wtY2hlY2tib3hfX2xhYmVse2Rpc3BsYXk6aW5saW5lLWJsb2NrO3Bvc2l0aW9uOnJlbGF0aXZlOy13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTt1c2VyLXNlbGVjdDpub25lO3ZlcnRpY2FsLWFsaWduOm1pZGRsZX0udHYtY29udHJvbC1jaGVja2JveC0tbm93cmFwLC50di1jb250cm9sLWNoZWNrYm94X19sYWJlbC0tbm93cmFwe3doaXRlLXNwYWNlOm5vd3JhcH0udHYtY29udHJvbC1jaGVja2JveF9faW5wdXR7aGVpZ2h0OjE4cHg7aW5zZXQtaW5saW5lLXN0YXJ0OjA7b3BhY2l0eTowO3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO3dpZHRoOjE4cHh9LnR2LWNvbnRyb2wtY2hlY2tib3hfX2JveHtib3JkZXItcmFkaXVzOjNweDtib3gtc2l6aW5nOmJvcmRlci1ib3g7ZGlzcGxheTpibG9jaztoZWlnaHQ6MThweDtsaW5lLWhlaWdodDoxO3BvaW50ZXItZXZlbnRzOm5vbmU7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kLWNvbG9yIC4zNXMgZWFzZTt3aWR0aDoxOHB4fS50di1jb250cm9sLWNoZWNrYm94X19ib3g6YmVmb3Jle2JhY2tncm91bmQtY29sb3I6aW5pdGlhbDtib3JkZXItcmFkaXVzOjNweDtpbnNldC1pbmxpbmUtc3RhcnQ6NTAlO21hcmdpbi10b3A6LTlweDttYXJnaW4taW5saW5lLXN0YXJ0Oi05cHg7dG9wOjUwJTt0cmFuc2Zvcm06c2NhbGUoMSk7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjM1cyBlYXNlLGJhY2tncm91bmQtY29sb3IgLjM1cyBlYXNlLGJvcmRlci1yYWRpdXMgLjM1cyBlYXNlfS50di1jb250cm9sLWNoZWNrYm94X19ib3g6YWZ0ZXIsLnR2LWNvbnRyb2wtY2hlY2tib3hfX2JveDpiZWZvcmV7Y29udGVudDoiIjtkaXNwbGF5OmJsb2NrO2hlaWdodDoxOHB4O3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjE4cHh9LnR2LWNvbnRyb2wtY2hlY2tib3hfX2JveDphZnRlcntib3JkZXItY29sb3I6dmFyKC0tXzAtNmFuTSk7Ym9yZGVyLXJhZGl1czozcHg7Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci13aWR0aDoxcHg7Ym94LXNpemluZzpib3JkZXItYm94O2luc2V0LWlubGluZS1zdGFydDowO3RvcDowO3RyYW5zaXRpb246Ym9yZGVyLWNvbG9yIC4zNXMgZWFzZX0udHYtY29udHJvbC1jaGVja2JveF9fYm94IHN2Z3tkaXNwbGF5OmJsb2NrO2hlaWdodDoxMnB4O2luc2V0LWlubGluZS1zdGFydDo1MCU7bWFyZ2luLXRvcDotNnB4O21hcmdpbi1pbmxpbmUtc3RhcnQ6LTZweDtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6NTAlO3dpZHRoOjEycHg7c3Ryb2tlOiMwMDAwO3RyYW5zZm9ybTpzY2FsZSgwKTt0cmFuc2l0aW9uOnN0cm9rZSAuMzVzIGVhc2UgMW1zLHRyYW5zZm9ybSAuMzVzIGVhc2UgMW1zfS50di1jb250cm9sLWNoZWNrYm94X19sYWJlbHttYXJnaW4taW5saW5lLWVuZDoxMHB4O3doaXRlLXNwYWNlOm5vcm1hbH0udHYtY29udHJvbC1jaGVja2JveF9fbGFiZWwtLXR3by1saW5lc3t3aWR0aDoxNTVweH0udHYtY29udHJvbC1jaGVja2JveF9fbGFiZWwtLW5vd3JhcHt3aGl0ZS1zcGFjZTpub3dyYXB9LnR2LWNvbnRyb2wtY2hlY2tib3hfX2xhYmVsLS1saWwtbGluZS1oZWlnaHR7bGluZS1oZWlnaHQ6MTZweDttYXgtd2lkdGg6ODAlO21pbi13aWR0aDo0NSV9LnR2LWNvbnRyb2wtY2hlY2tib3hfX2xhYmVsKy50di1jb250cm9sLWNoZWNrYm94e21hcmdpbi1pbmxpbmUtc3RhcnQ6MH0udHYtY29udHJvbC1jaGVja2JveCsudHYtY29udHJvbC1jaGVja2JveF9fbGFiZWx7bWFyZ2luLWlubGluZS1lbmQ6MDttYXJnaW4taW5saW5lLXN0YXJ0OjEwcHg7bWF4LXdpZHRoOmNhbGMoMTAwJSAtIDFleCAtIDI4cHgpfS50di1jb250cm9sLWNoZWNrYm94OmFjdGl2ZSAudHYtY29udHJvbC1jaGVja2JveF9fYm94LC50di1jb250cm9sLWNoZWNrYm94X19pbnB1dDpmb2N1cysudHYtY29udHJvbC1jaGVja2JveF9fYm94e3dpbGwtY2hhbmdlOmJhY2tncm91bmQtY29sb3J9QG1lZGlhIChhbnktaG92ZXI6aG92ZXIpey50di1jb250cm9sLWNoZWNrYm94OmhvdmVyIC50di1jb250cm9sLWNoZWNrYm94X19ib3h7d2lsbC1jaGFuZ2U6YmFja2dyb3VuZC1jb2xvcn19LnR2LWNvbnRyb2wtY2hlY2tib3g6YWN0aXZlIC50di1jb250cm9sLWNoZWNrYm94X19ib3g6YmVmb3JlLC50di1jb250cm9sLWNoZWNrYm94X19pbnB1dDpmb2N1cysudHYtY29udHJvbC1jaGVja2JveF9fYm94OmJlZm9yZXt3aWxsLWNoYW5nZTp0cmFuc2Zvcm0sYm9yZGVyLXJhZGl1c31AbWVkaWEgKGFueS1ob3Zlcjpob3Zlcil7LnR2LWNvbnRyb2wtY2hlY2tib3g6aG92ZXIgLnR2LWNvbnRyb2wtY2hlY2tib3hfX2JveDpiZWZvcmV7d2lsbC1jaGFuZ2U6dHJhbnNmb3JtLGJvcmRlci1yYWRpdXN9fS50di1jb250cm9sLWNoZWNrYm94OmFjdGl2ZSAudHYtY29udHJvbC1jaGVja2JveF9fYm94OmFmdGVyLC50di1jb250cm9sLWNoZWNrYm94X19pbnB1dDpmb2N1cysudHYtY29udHJvbC1jaGVja2JveF9fYm94OmFmdGVye3dpbGwtY2hhbmdlOmJvcmRlci1jb2xvcn1AbWVkaWEgKGFueS1ob3Zlcjpob3Zlcil7LnR2LWNvbnRyb2wtY2hlY2tib3g6aG92ZXIgLnR2LWNvbnRyb2wtY2hlY2tib3hfX2JveDphZnRlcntib3JkZXItY29sb3I6dmFyKC0tXzEtNmFuTSk7d2lsbC1jaGFuZ2U6Ym9yZGVyLWNvbG9yfX0udHYtY29udHJvbC1jaGVja2JveDphY3RpdmUgLnR2LWNvbnRyb2wtY2hlY2tib3hfX2JveDphZnRlciwudHYtY29udHJvbC1jaGVja2JveF9faW5wdXQ6Zm9jdXMrLnR2LWNvbnRyb2wtY2hlY2tib3hfX2JveDphZnRlcntib3JkZXItY29sb3I6dmFyKC0tXzItNmFuTSl9LnR2LWNvbnRyb2wtY2hlY2tib3hfX2lucHV0OmNoZWNrZWQrLnR2LWNvbnRyb2wtY2hlY2tib3hfX2JveHtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLV8zLTZhbk0pfS50di1jb250cm9sLWNoZWNrYm94X19pbnB1dDpjaGVja2VkKy50di1jb250cm9sLWNoZWNrYm94X19ib3gsLnR2LWNvbnRyb2wtY2hlY2tib3hfX2lucHV0OmNoZWNrZWQrLnR2LWNvbnRyb2wtY2hlY2tib3hfX2JveDphZnRlciwudHYtY29udHJvbC1jaGVja2JveF9faW5wdXQ6Y2hlY2tlZCsudHYtY29udHJvbC1jaGVja2JveF9fYm94OmJlZm9yZXt0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjpjdWJpYy1iZXppZXIoLjIxNSwuNjEsLjM1NSwxKX0udHYtY29udHJvbC1jaGVja2JveF9faW5wdXQ6Y2hlY2tlZCsudHYtY29udHJvbC1jaGVja2JveF9fYm94OmJlZm9yZXtib3JkZXItcmFkaXVzOjUwJTt0cmFuc2Zvcm06c2NhbGUoMCl9LnR2LWNvbnRyb2wtY2hlY2tib3hfX2lucHV0OmNoZWNrZWQrLnR2LWNvbnRyb2wtY2hlY2tib3hfX2JveDphZnRlcntib3JkZXItY29sb3I6dmFyKC0tXzQtNmFuTSl9LnR2LWNvbnRyb2wtY2hlY2tib3hfX2lucHV0OmNoZWNrZWQrLnR2LWNvbnRyb2wtY2hlY2tib3hfX2JveCBzdmd7c3Ryb2tlOnZhcigtLV81LTZhbk0pO3RyYW5zZm9ybTpzY2FsZSgxKTt0cmFuc2l0aW9uLWRlbGF5Ojg3LjVtczt0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjpjdWJpYy1iZXppZXIoLjIxNSwuNjEsLjM1NSwxKTt3aWxsLWNoYW5nZTpzdHJva2UsdHJhbnNmb3JtfUBtZWRpYSAoYW55LWhvdmVyOmhvdmVyKXsudHYtY29udHJvbC1jaGVja2JveDpob3ZlciAudHYtY29udHJvbC1jaGVja2JveF9faW5wdXQ6Y2hlY2tlZCsudHYtY29udHJvbC1jaGVja2JveF9fYm94e2JhY2tncm91bmQtY29sb3I6dmFyKC0tXzYtNmFuTSl9LnR2LWNvbnRyb2wtY2hlY2tib3g6aG92ZXIgLnR2LWNvbnRyb2wtY2hlY2tib3hfX2lucHV0OmNoZWNrZWQrLnR2LWNvbnRyb2wtY2hlY2tib3hfX2JveDphZnRlcntib3JkZXItY29sb3I6dmFyKC0tXzctNmFuTSl9fS50di1jb250cm9sLWNoZWNrYm94OmFjdGl2ZSAudHYtY29udHJvbC1jaGVja2JveF9faW5wdXQ6Y2hlY2tlZCsudHYtY29udHJvbC1jaGVja2JveF9fYm94LC50di1jb250cm9sLWNoZWNrYm94X19pbnB1dDpmb2N1cy12aXNpYmxlOmNoZWNrZWQrLnR2LWNvbnRyb2wtY2hlY2tib3hfX2JveHtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLV84LTZhbk0pfS50di1jb250cm9sLWNoZWNrYm94OmFjdGl2ZSAudHYtY29udHJvbC1jaGVja2JveF9faW5wdXQ6Y2hlY2tlZCsudHYtY29udHJvbC1jaGVja2JveF9fYm94OmFmdGVyLC50di1jb250cm9sLWNoZWNrYm94X19pbnB1dDpmb2N1cy12aXNpYmxlOmNoZWNrZWQrLnR2LWNvbnRyb2wtY2hlY2tib3hfX2JveDphZnRlcntib3JkZXItY29sb3I6dmFyKC0tXzktNmFuTSl9LnR2LWNvbnRyb2wtY2hlY2tib3hfX2lucHV0W2Rpc2FibGVkXSsudHYtY29udHJvbC1jaGVja2JveF9fYm94e29wYWNpdHk6LjV9LnR2LWNvbnRyb2wtY2hlY2tib3guaS1lcnJvciAudHYtY29udHJvbC1jaGVja2JveF9fYm94OmFmdGVye2JvcmRlci1jb2xvcjp2YXIoLS1jb2xvci1yaXBlLXJlZC00MDApfQ=="}},"time_used":7,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":7,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview.com/support/support-portal-problems/?language=en","fqdn":"www.tradingview.com","domain":"tradingview.com","tld":"com"},"ip":{"addr":"52.84.50.119","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"fetch","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.671Z","timestamp":1785148034671,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"tradingview.com","organization":""},"issuer":{"commonName":"Amazon RSA 2048 M04","organization":"Amazon"},"validity":{"start":"Fri, 12 Dec 2025 00:00:00 GMT","end":"Sun, 10 Jan 2027 23:59:59 GMT"},"fingerprint":{"sha1":"93:7A:32:54:9B:07:78:A4:C2:12:01:FE:F8:01:86:4E:F4:B0:E5:88","sha256":"DC:6B:BC:C2:10:66:1A:99:2E:BE:17:BD:A9:27:49:E3:D8:CA:EB:13:B6:95:9C:BF:68:76:22:17:62:D1:05:57"}}},"request":{"raw":"GET /support/support-portal-problems/?language=en HTTP/1.1\r\nHost: www.tradingview.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\nOrigin: https://s.tradingview.com\r\nx-language: en\r\nx-requested-with: XMLHttpRequest\r\nReferer: https://s.tradingview.com/\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: empty\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-site\r\nPriority: u=4\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncontent-type: application/json\r\ncontent-length: 13\r\nalt-svc: h3=\":443\"; ma=86400\r\ndate: Mon, 27 Jul 2026 10:27:11 GMT\r\nstrict-transport-security: max-age=63072000; includeSubDomains; preload\r\ncache-control: max-age=60\r\ncontent-security-policy: frame-ancestors 'none'; base-uri 'none'; default-src 'self' https: data: blob: wss: 'unsafe-inline'; script-src https://static.tradingview.com/static/ blob: https://*.ampproject.org/ https://*.paypal.com/ https://platform.twitter.com https://platform.x.com https://songbird.cardinalcommerce.com/edge/v1/ https://checkout.razorpay.com/ https://cdn.razorpay.com/static/cx/ https://*.checkout.com/ https://*.revolut.com/ https://*.cardinaltrusted.com https://pay.google.com/gp/p/js/ https://applepay.cdn-apple.com/jsapi/ https://tradingview-gateway.com/; object-src 'none'\r\ncross-origin-opener-policy: same-origin-allow-popups\r\nreferrer-policy: origin-when-cross-origin, origin-when-cross-origin\r\nx-content-type-options: nosniff, nosniff\r\nserver: tv\r\naccess-control-allow-origin: https://s.tradingview.com\r\naccess-control-allow-methods: GET, HEAD, POST, OPTIONS\r\ncross-origin-resource-policy: same-site\r\naccess-control-allow-headers: pragma,x-language,cache-control,x-requested-with\r\naccess-control-allow-credentials: true\r\naccess-control-max-age: 86400\r\nvary: Cookie\r\nx-cache: Hit from cloudfront\r\nage: 3\r\nvia: 1.1 efa1f20185894fba06fb038a3e989f24.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: OSL50-P3\r\nx-amz-cf-id: 170iicYEseeBdTwTVDA9NJDPuliUFTf65n_EE72vEkpdDVPjtAjzLA==\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Amazon CloudFront","description":"Amazon CloudFront is a fast content delivery network (CDN) service that securely delivers data, videos, applications, and APIs to customers globally with low latency, high transfer speeds.","website":"https://aws.amazon.com/cloudfront/","common_platform_enumeration":"","icon":"Amazon Cloudfront.svg","categories":["CDN"]},{"name":"Amazon Web Services","description":"Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.","website":"https://aws.amazon.com/","common_platform_enumeration":"","icon":"Amazon Web Services.svg","categories":["PaaS"]},{"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":"PayPal","description":"PayPal is an online payments system that supports online money transfers and serves as an electronic alternative to traditional paper methods like checks and money orders.","website":"https://paypal.com","common_platform_enumeration":"cpe:2.3:a:paypal:paypal:*:*:*:*:*:*:*:*","icon":"PayPal.svg","categories":["Payment processors"]}],"data":{"size":13,"size_decoded":1542,"mime_type":"application/json","magic":"JSON text data","md5":"01de957246f36d125db7f1635e51043e","sha1":"ab39026488aa0222d0fd98ade08979a1a17bdfae","sha256":"9bf40c18a4b22428c00ae5ddb17ff9e721207f22ebe705fd7dffdfd150749e3b","sha512":"72406f9bdf9896da1e3b58e79b74803c4b3a4226b1859cefcee322aa78d8617178a9e12333d72d43dd10207e3e79b9fc76ed07546ce955c0c8b392985d5540c5","ssdeep":"","tlshash":"d760000f003000000f0c0030f0000cc3000c0000033c30300c0c00c3030c0030ccf303","first_seen":"2023-05-02T20:38:18Z","last_seen":"2026-07-27T12:47:44.687175Z","times_seen":630,"resource_available":false,"data":"eyJpc3N1ZXMiOltdfQ=="}},"time_used":6,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":6,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/47551.8d2ce524b38e4a92547f.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.830Z","timestamp":1785148034830,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/47551.8d2ce524b38e4a92547f.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\ncontent-type: text/css; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a5dbd8a-162\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Mon, 20 Jul 2026 06:17:46 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/20/2026 11:21:32\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 704c5a2ec2fd77d796674634f2beeac5\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":354,"size_decoded":981,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with very long lines (354), with no line terminators","md5":"dc88845dbf08759704444b6f259806cf","sha1":"5a93891b3f851b6a56655cdf5fca2fc8082cb6f3","sha256":"f0eba1e08a8a235c18cb322a3ef2523d261c71912fb8aec31f1066946ebf5362","sha512":"9c80fa8e38afb5311e6774b97bd94836160aa2708ad5e54f9449fcc181d98186d3856e9588b9e9973fecaa6af1d9124a96a951cbda993e969fe32acd6795177e","ssdeep":"","tlshash":"f1e06838d48170fa3c0fc03e8324a1da1512a442dd520bd52d75e4a088c3aeb00a286c","first_seen":"2026-07-20T16:56:18.283816Z","last_seen":"2026-07-27T12:57:37.130226Z","times_seen":76,"resource_available":false,"data":"LmxpZ2h0d2VpZ2h0Q2hhcnRUb29sdGlwLXpTbno1Z3c2e2JhY2tncm91bmQtY29sb3I6dmFyKC0tdHYtY29sb3ItcG9wdXAtYmFja2dyb3VuZCx2YXIoLS1jb2xvci1wb3B1cC1iYWNrZ3JvdW5kKSk7Ym9yZGVyLXJhZGl1czo2cHg7Ym94LXNoYWRvdzowIDJweCA0cHggdmFyKC0tY29sb3Itc2hhZG93LXByaW1hcnktbmV1dHJhbC1leHRyYS1oZWF2eSk7LS10di1jb2xvci1wb3B1cC1iYWNrZ3JvdW5kOnZhcigtLWNvbG9yLWNvbGQtZ3JheS03NTApO2JveC1zaXppbmc6aW5pdGlhbDtwYWRkaW5nOjZweCAxMnB4O3BvaW50ZXItZXZlbnRzOm5vbmU7LXdlYmtpdC11c2VyLXNlbGVjdDpub25lO3VzZXItc2VsZWN0Om5vbmV9"}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"cdn.tailwindcss.com/3.4.17","fqdn":"cdn.tailwindcss.com","domain":"tailwindcss.com","tld":"com"},"ip":{"addr":"104.26.3.143","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://digital-assettrade.com/","date":"2026-07-27T10:27:12.100Z","timestamp":1785148032100,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"tailwindcss.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Fri, 17 Jul 2026 20:38:38 GMT","end":"Thu, 15 Oct 2026 21:38:35 GMT"},"fingerprint":{"sha1":"AF:4F:AD:59:FA:ED:77:04:0D:32:56:48:B0:E5:1B:38:67:6D:7D:02","sha256":"E7:FC:CF:2D:6A:CC:F5:3C:4C:1E:9D:CD:21:8A:72:A3:DB:7C:B1:50:0F:83:D1:DC:E4:AD:25:90:8F:98:37:0F"}}},"request":{"raw":"GET /3.4.17 HTTP/1.1\r\nHost: cdn.tailwindcss.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\nReferer: https://digital-assettrade.com/\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:12 GMT\r\ncontent-type: text/javascript\r\ncache-control: max-age=31536000\r\ncontent-encoding: br\r\nserver: cloudflare\r\nstrict-transport-security: max-age=63072000\r\nx-vercel-cache: MISS\r\nx-vercel-id: fra1::iad1::bj55r-1781146628084-40ce7f37f405\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.0,\"max_age\":604800}\r\nvary: accept-encoding\r\nage: 4001403\r\nlast-modified: Wed, 01 Jul 2026 01:49:34 GMT\r\ncf-cache-status: HIT\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=PZr8FBx6gRHY4JUjuPE1v7c0Y6BY14ZFgscqyg9euTEEbQ4eGtMj5tC5pf94GR7vix%2FQ1X94eIloREQ%2F247dEcPBzJAcqMT%2FOSSR3MLC9tx73VbyiT7OVigC90vvp8F%2Bidor9S8%3D\"}]}\r\ncf-ray: a21af340abe556a8-OSL\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"Vercel","description":"Vercel is a cloud platform for static frontends and serverless functions.","website":"https://vercel.com","common_platform_enumeration":"","icon":"vercel.svg","categories":["PaaS"]},{"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":407279,"size_decoded":127122,"mime_type":"text/javascript","magic":"JavaScript source, ASCII text, with very long lines (52853)","md5":"7a614b9a197e532c00d09a23b0996b5f","sha1":"1ff1738a40f3716e30e9031b181b0955ae578955","sha256":"176e894661aa9cdc9a5cba6c720044cbbf7b8bd80d1c9a142a7c24b1b6c50d15","sha512":"a67bc26f52d938358471be5671ff4b79e11af4e68b486aaf73a35a4c9bf3777aab51101af81563b4e5b7ba4b04dd8971fcfa9ee2c41fb10a0c1ee5604a99abd6","ssdeep":"12288:fpgrZxSAoNbJb0Wie75aUXGuyQZhK4O0s:RCVoNB0Wie75aUWmnO0s","tlshash":"e8844aa57396702647eb51e850ea1042f2beaa38840c44bcf7edd4da39e5e4440fbf79","first_seen":"2025-07-28T16:58:08.903462Z","last_seen":"2026-07-27T12:55:14.821753Z","times_seen":46773,"resource_available":true,"data":"KCgpPT57dmFyIHF2PU9iamVjdC5jcmVhdGU7dmFyIEhpPU9iamVjdC5kZWZpbmVQcm9wZXJ0eTt2YXIgJHY9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjt2YXIgTHY9T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXM7dmFyIE12PU9iamVjdC5nZXRQcm90b3R5cGVPZixOdj1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O3ZhciBkZj1yPT5IaShyLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgaGY9cj0+e2lmKHR5cGVvZiByZXF1aXJlIT0idW5kZWZpbmVkIilyZXR1cm4gcmVxdWlyZShyKTt0aHJvdyBuZXcgRXJyb3IoJ0R5bmFtaWMgcmVxdWlyZSBvZiAiJytyKyciIGlzIG5vdCBzdXBwb3J0ZWQnKX07dmFyIFA9KHIsZSk9PigpPT4ociYmKGU9cihyPTApKSxlKTt2YXIgeD0ocixlKT0+KCk9PihlfHxyKChlPXtleHBvcnRzOnt9fSkuZXhwb3J0cyxlKSxlLmV4cG9ydHMpLEdlPShyLGUpPT57ZGYocik7Zm9yKHZhciB0IGluIGUpSGkocix0LHtnZXQ6ZVt0XSxlbnVtZXJhYmxlOiEwfSl9LEJ2PShyLGUsdCk9PntpZihlJiZ0eXBlb2YgZT09Im9iamVjdCJ8fHR5cGVvZiBlPT0iZnVuY3Rpb24iKWZvcihsZXQgaSBvZiBMdihlKSkhTnYuY2FsbChyLGkpJiZpIT09ImRlZmF1bHQiJiZIaShyLGkse2dldDooKT0+ZVtpXSxlbnVtZXJhYmxlOiEodD0kdihlLGkpKXx8dC5lbnVtZXJhYmxlfSk7cmV0dXJuIHJ9LHBlPXI9PkJ2KGRmKEhpKHIhPW51bGw/cXYoTXYocikpOnt9LCJkZWZhdWx0IixyJiZyLl9fZXNNb2R1bGUmJiJkZWZhdWx0ImluIHI/e2dldDooKT0+ci5kZWZhdWx0LGVudW1lcmFibGU6ITB9Ont2YWx1ZTpyLGVudW1lcmFibGU6ITB9KSkscik7dmFyIG0sdT1QKCgpPT57bT17cGxhdGZvcm06IiIsZW52Ont9LHZlcnNpb25zOntub2RlOiIxNC4xNy42In19fSk7dmFyIEZ2LGJlLGZ0PVAoKCk9Pnt1KCk7RnY9MCxiZT17cmVhZEZpbGVTeW5jOnI9PnNlbGZbcl18fCIiLHN0YXRTeW5jOigpPT4oe210aW1lTXM6RnYrK30pLHByb21pc2VzOntyZWFkRmlsZTpyPT5Qcm9taXNlLnJlc29sdmUoc2VsZltyXXx8IiIpfX19KTt2YXIgRnM9eCgob1AsZ2YpPT57dSgpOyJ1c2Ugc3RyaWN0Ijt2YXIgbWY9Y2xhc3N7Y29uc3RydWN0b3IoZT17fSl7aWYoIShlLm1heFNpemUmJmUubWF4U2l6ZT4wKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJgbWF4U2l6ZWAgbXVzdCBiZSBhIG51bWJlciBncmVhdGVyIHRoYW4gMCIpO2lmKHR5cGVvZiBlLm1heEFnZT09Im51bWJlciImJmUubWF4QWdlPT09MCl0aHJvdyBuZXcgVHlwZUVycm9yKCJgbWF4QWdlYCBtdXN0IGJlIGEgbnVtYmVyIGdyZWF0ZXIgdGhhbiAwIik7dGhpcy5tYXhTaXplPWUubWF4U2l6ZSx0aGlzLm1heEFnZT1lLm1heEFnZXx8MS8wLHRoaXMub25FdmljdGlvbj1lLm9uRXZpY3Rpb24sdGhpcy5jYWNoZT1uZXcgTWFwLHRoaXMub2xkQ2FjaGU9bmV3IE1hcCx0aGlzLl9zaXplPTB9X2VtaXRFdmljdGlvbnMoZSl7aWYodHlwZW9mIHRoaXMub25FdmljdGlvbj09ImZ1bmN0aW9uIilmb3IobGV0W3QsaV1vZiBlKXRoaXMub25FdmljdGlvbih0LGkudmFsdWUpfV9kZWxldGVJZkV4cGlyZWQoZSx0KXtyZXR1cm4gdHlwZW9mIHQuZXhwaXJ5PT0ibnVtYmVyIiYmdC5leHBpcnk8PURhdGUubm93KCk/KHR5cGVvZiB0aGlzLm9uRXZpY3Rpb249PSJmdW5jdGlvbiImJnRoaXMub25FdmljdGlvbihlLHQudmFsdWUpLHRoaXMuZGVsZXRlKGUpKTohMX1fZ2V0T3JEZWxldGVJZkV4cGlyZWQoZSx0KXtpZih0aGlzLl9kZWxldGVJZkV4cGlyZWQoZSx0KT09PSExKXJldHVybiB0LnZhbHVlfV9nZXRJdGVtVmFsdWUoZSx0KXtyZXR1cm4gdC5leHBpcnk/dGhpcy5fZ2V0T3JEZWxldGVJZkV4cGlyZWQoZSx0KTp0LnZhbHVlfV9wZWVrKGUsdCl7bGV0IGk9dC5nZXQoZSk7cmV0dXJuIHRoaXMuX2dldEl0ZW1WYWx1ZShlLGkpfV9zZXQoZSx0KXt0aGlzLmNhY2hlLnNldChlLHQpLHRoaXMuX3NpemUrKyx0aGlzLl9zaXplPj10aGlzLm1heFNpemUmJih0aGlzLl9zaXplPTAsdGhpcy5fZW1pdEV2aWN0aW9ucyh0aGlzLm9sZENhY2hlKSx0aGlzLm9sZENhY2hlPXRoaXMuY2FjaGUsdGhpcy5jYWNoZT1uZXcgTWFwKX1fbW92ZVRvUmVjZW50KGUsdCl7dGhpcy5vbGRDYWNoZS5kZWxldGUoZSksdGhpcy5fc2V0KGUsdCl9Kl9lbnRyaWVzQXNjZW5kaW5nKCl7Zm9yKGxldCBlIG9mIHRoaXMub2xkQ2FjaGUpe2xldFt0LGldPWU7dGhpcy5jYWNoZS5oYXModCl8fHRoaXMuX2RlbGV0ZUlmRXhwaXJlZCh0LGkpPT09ITEmJih5aWVsZCBlKX1mb3IobGV0IGUgb2YgdGhpcy5jYWNoZSl7bGV0W3QsaV09ZTt0aGlzLl9kZWxldGVJZkV4cGlyZWQodCxpKT09PSExJiYoeWllbGQgZSl9fWdldChlKXtpZih0aGlzLmNhY2hlLmhhcyhlKSl7bGV0IHQ9dGhpcy5jYWNoZS5nZXQoZSk7cmV0dXJuIHRoaXMuX2dldEl0ZW1WYWx1ZShlLHQpfWlmKHRoaXMub2xkQ2FjaGUuaGFzKGUpKXtsZXQgdD10aGlzLm9sZENhY2hlLmdldChlKTtpZih0aGlzLl9kZWxldGVJZkV4cGlyZWQoZSx0KT09PSExKXJldHVybiB0aGlzLl9tb3ZlVG9SZWNlbnQoZSx0KSx0LnZhbHVlfX1zZXQoZSx0LHttYXhBZ2U6aT10aGlzLm1heEFnZT09PTEvMD92b2lkIDA6RGF0ZS5ub3coKSt0aGlzLm1heEFnZX09e30pe3RoaXMuY2FjaGUuaGFzKGUpP3RoaXMuY2FjaGUuc2V0KGUse3ZhbHVlOnQsbWF4QWdlOml9KTp0aGlzLl9zZXQoZSx7dmFsdWU6dCxleHBpcnk6aX0pfWhhcyhlKXtyZXR1cm4gdGhpcy5jYWNoZS5oYXMoZSk/IXRoaXMuX2RlbGV0ZUlmRXhwaXJlZChlLHRoaXMuY2FjaGUuZ2V0KGUpKTp0aGlzLm9sZENhY2hlLmhhcyhlKT8hdGhpcy5fZGVsZXRlSWZFeHBpcmVkKGUsdGhpcy5vbGRDYWNoZS5nZXQoZSkpOiExfXBlZWsoZSl7aWYodGhpcy5jYWNoZS5oYXMoZSkpcmV0dXJuIHRoaXMuX3BlZWsoZSx0aGlzLmNhY2hlKTtpZih0aGlzLm9sZENhY2hlLmhhcyhlKSlyZXR1cm4gdGhpcy5fcGVlayhlLHRoaXMub2xkQ2FjaGUpfWRlbGV0ZShlKXtsZXQgdD10aGlzLmNhY2hlLmRlbGV0ZShlKTtyZXR1cm4gdCYmdGhpcy5fc2l6ZS0tLHRoaXMub2xkQ2FjaGUuZGVsZXRlKGUpfHx0fWNsZWFyKCl7dGhpcy5jYWNoZS5jbGVhcigpLHRoaXMub2xkQ2FjaGUuY2xlYXIoKSx0aGlzLl9zaXplPTB9cmVzaXplKGUpe2lmKCEoZSYmZT4wKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJgbWF4U2l6ZWAgbXVzdCBiZSBhIG51bWJlciBncmVhdGVyIHRoYW4gMCIpO2xldCB0PVsuLi50aGlzLl9lbnRyaWVzQXNjZW5kaW5nKCldLGk9dC5sZW5ndGgtZTtpPDA/KHRoaXMuY2FjaGU9bmV3IE1hcCh0KSx0aGlzLm9sZENhY2hlPW5ldyBNYXAsdGhpcy5fc2l6ZT10Lmxlbmd0aCk6KGk+MCYmdGhpcy5fZW1pdEV2aWN0aW9ucyh0LnNsaWNlKDAsaSkpLHRoaXMub2xkQ2FjaGU9bmV3IE1hcCh0LnNsaWNlKGkpKSx0aGlzLmNhY2hlPW5ldyBNYXAsdGhpcy5fc2l6ZT0wKSx0aGlzLm1heFNpemU9ZX0qa2V5cygpe2ZvcihsZXRbZV1vZiB0aGlzKXlpZWxkIGV9KnZhbHVlcygpe2ZvcihsZXRbLGVdb2YgdGhpcyl5aWVsZCBlfSpbU3ltYm9sLml0ZXJhdG9yXSgpe2ZvcihsZXQgZSBvZiB0aGlzLmNhY2hlKXtsZXRbdCxpXT1lO3RoaXMuX2RlbGV0ZUlmRXhwaXJlZCh0LGkpPT09ITEmJih5aWVsZFt0LGkudmFsdWVdKX1mb3IobGV0IGUgb2YgdGhpcy5vbGRDYWNoZSl7bGV0W3QsaV09ZTt0aGlzLmNhY2hlLmhhcyh0KXx8dGhpcy5fZGVsZXRlSWZFeHBpcmVkKHQsaSk9PT0hMSYmKHlpZWxkW3QsaS52YWx1ZV0pfX0qZW50cmllc0Rlc2NlbmRpbmcoKXtsZXQgZT1bLi4udGhpcy5jYWNoZV07Zm9yKGxldCB0PWUubGVuZ3RoLTE7dD49MDstLXQpe2xldCBpPWVbdF0sW24sc109aTt0aGlzLl9kZWxldGVJZkV4cGlyZWQobixzKT09PSExJiYoeWllbGRbbixzLnZhbHVlXSl9ZT1bLi4udGhpcy5vbGRDYWNoZV07Zm9yKGxldCB0PWUubGVuZ3RoLTE7dD49MDstLXQpe2xldCBpPWVbdF0sW24sc109aTt0aGlzLmNhY2hlLmhhcyhuKXx8dGhpcy5fZGVsZXRlSWZFeHBpcmVkKG4scyk9PT0hMSYmKHlpZWxkW24scy52YWx1ZV0pfX0qZW50cmllc0FzY2VuZGluZygpe2ZvcihsZXRbZSx0XW9mIHRoaXMuX2VudHJpZXNBc2NlbmRpbmcoKSl5aWVsZFtlLHQudmFsdWVdfWdldCBzaXplKCl7aWYoIXRoaXMuX3NpemUpcmV0dXJuIHRoaXMub2xkQ2FjaGUuc2l6ZTtsZXQgZT0wO2ZvcihsZXQgdCBvZiB0aGlzLm9sZENhY2hlLmtleXMoKSl0aGlzLmNhY2hlLmhhcyh0KXx8ZSsrO3JldHVybiBNYXRoLm1pbih0aGlzLl9zaXplK2UsdGhpcy5tYXhTaXplKX19O2dmLmV4cG9ydHM9bWZ9KTt2YXIgeWYsYmY9UCgoKT0+e3UoKTt5Zj1yPT5yJiZyLl9oYXNofSk7ZnVuY3Rpb24gV2kocil7cmV0dXJuIHlmKHIse2lnbm9yZVVua25vd246ITB9KX12YXIgd2Y9UCgoKT0+e3UoKTtiZigpfSk7ZnVuY3Rpb24geHQocil7aWYocj1gJHtyfWAscj09PSIwIilyZXR1cm4iMCI7aWYoL15bKy1dPyhcZCt8XGQqXC5cZCspKGVbKy1dP1xkKyk/KCV8XHcrKT8kLy50ZXN0KHIpKXJldHVybiByLnJlcGxhY2UoL15bKy1dPy8sdD0+dD09PSItIj8iIjoiLSIpO2xldCBlPVsidmFyIiwiY2FsYyIsIm1pbiIsIm1heCIsImNsYW1wIl07Zm9yKGxldCB0IG9mIGUpaWYoci5pbmNsdWRlcyhgJHt0fShgKSlyZXR1cm5gY2FsYygke3J9ICogLTEpYH12YXIgR2k9UCgoKT0+e3UoKX0pO3ZhciB2Zix4Zj1QKCgpPT57dSgpO3ZmPVsicHJlZmxpZ2h0IiwiY29udGFpbmVyIiwiYWNjZXNzaWJpbGl0eSIsInBvaW50ZXJFdmVudHMiLCJ2aXNpYmlsaXR5IiwicG9zaXRpb24iLCJpbnNldCIsImlzb2xhdGlvbiIsInpJbmRleCIsIm9yZGVyIiwiZ3JpZENvbHVtbiIsImdyaWRDb2x1bW5TdGFydCIsImdyaWRDb2x1bW5FbmQiLCJncmlkUm93IiwiZ3JpZFJvd1N0YXJ0IiwiZ3JpZFJvd0VuZCIsImZsb2F0IiwiY2xlYXIiLCJtYXJnaW4iLCJib3hTaXppbmciLCJsaW5lQ2xhbXAiLCJkaXNwbGF5IiwiYXNwZWN0UmF0aW8iLCJzaXplIiwiaGVpZ2h0IiwibWF4SGVpZ2h0IiwibWluSGVpZ2h0Iiwid2lkdGgiLCJtaW5XaWR0aCIsIm1heFdpZHRoIiwiZmxleCIsImZsZXhTaHJpbmsiLCJmbGV4R3JvdyIsImZsZXhCYXNpcyIsInRhYmxlTGF5b3V0IiwiY2FwdGlvblNpZGUiLCJib3JkZXJDb2xsYXBzZSIsImJvcmRlclNwYWNpbmciLCJ0cmFuc2Zvcm1PcmlnaW4iLCJ0cmFuc2xhdGUiLCJyb3RhdGUiLCJza2V3Iiwic2NhbGUiLCJ0cmFuc2Zvcm0iLCJhbmltYXRpb24iLCJjdXJzb3IiLCJ0b3VjaEFjdGlvbiIsInVzZXJTZWxlY3QiLCJyZXNpemUiLCJzY3JvbGxTbmFwVHlwZSIsInNjcm9sbFNuYXBBbGlnbiIsInNjcm9sbFNuYXBTdG9wIiwic2Nyb2xsTWFyZ2luIiwic2Nyb2xsUGFkZGluZyIsImxpc3RTdHlsZVBvc2l0aW9uIiwibGlzdFN0eWxlVHlwZSIsImxpc3RTdHlsZUltYWdlIiwiYXBwZWFyYW5jZSIsImNvbHVtbnMiLCJicmVha0JlZm9yZSIsImJyZWFrSW5zaWRlIiwiYnJlYWtBZnRlciIsImdyaWRBdXRvQ29sdW1ucyIsImdyaWRBdXRvRmxvdyIsImdyaWRBdXRvUm93cyIsImdyaWRUZW1wbGF0ZUNvbHVtbnMiLCJncmlkVGVtcGxhdGVSb3dzIiwiZmxleERpcmVjdGlvbiIsImZsZXhXcmFwIiwicGxhY2VDb250ZW50IiwicGxhY2VJdGVtcyIsImFsaWduQ29udGVudCIsImFsaWduSXRlbXMiLCJqdXN0aWZ5Q29udGVudCIsImp1c3RpZnlJdGVtcyIsImdhcCIsInNwYWNlIiwiZGl2aWRlV2lkdGgiLCJkaXZpZGVTdHlsZSIsImRpdmlkZUNvbG9yIiwiZGl2aWRlT3BhY2l0eSIsInBsYWNlU2VsZiIsImFsaWduU2VsZiIsImp1c3RpZnlTZWxmIiwib3ZlcmZsb3ciLCJvdmVyc2Nyb2xsQmVoYXZpb3IiLCJzY3JvbGxCZWhhdmlvciIsInRleHRPdmVyZmxvdyIsImh5cGhlbnMiLCJ3aGl0ZXNwYWNlIiwidGV4dFdyYXAiLCJ3b3JkQnJlYWsiLCJib3JkZXJSYWRpdXMiLCJib3JkZXJXaWR0aCIsImJvcmRlclN0eWxlIiwiYm9yZGVyQ29sb3IiLCJib3JkZXJPcGFjaXR5IiwiYmFja2dyb3VuZENvbG9yIiwiYmFja2dyb3VuZE9wYWNpdHkiLCJiYWNrZ3JvdW5kSW1hZ2UiLCJncmFkaWVudENvbG9yU3RvcHMiLCJib3hEZWNvcmF0aW9uQnJlYWsiLCJiYWNrZ3JvdW5kU2l6ZSIsImJhY2tncm91bmRBdHRhY2htZW50IiwiYmFja2dyb3VuZENsaXAiLCJiYWNrZ3JvdW5kUG9zaXRpb24iLCJiYWNrZ3JvdW5kUmVwZWF0IiwiYmFja2dyb3VuZE9yaWdpbiIsImZpbGwiLCJzdHJva2UiLCJzdHJva2VXaWR0aCIsIm9iamVjdEZpdCIsIm9iamVjdFBvc2l0aW9uIiwicGFkZGluZyIsInRleHRBbGlnbiIsInRleHRJbmRlbnQiLCJ2ZXJ0aWNhbEFsaWduIiwiZm9udEZhbWlseSIsImZvbnRTaXplIiwiZm9udFdlaWdodCIsInRleHRUcmFuc2Zvcm0iLCJmb250U3R5bGUiLCJmb250VmFyaWFudE51bWVyaWMiLCJsaW5lSGVpZ2h0IiwibGV0dGVyU3BhY2luZyIsInRleHRDb2xvciIsInRleHRPcGFjaXR5IiwidGV4dERlY29yYXRpb24iLCJ0ZXh0RGVjb3JhdGlvbkNvbG9yIiwidGV4dERlY29yYXRpb25TdHlsZSIsInRleHREZWNvcmF0aW9uVGhpY2tuZXNzIiwidGV4dFVuZGVybGluZU9mZnNldCIsImZvbnRTbW9vdGhpbmciLCJwbGFjZWhvbGRlckNvbG9yIiwicGxhY2Vob2xkZXJPcGFjaXR5IiwiY2FyZXRDb2xvciIsImFjY2VudENvbG9yIiwib3BhY2l0eSIsImJhY2tncm91bmRCbGVuZE1vZGUiLCJtaXhCbGVuZE1vZGUiLCJib3hTaGFkb3ciLCJib3hTaGFkb3dDb2xvciIsIm91dGxpbmVTdHlsZSIsIm91dGxpbmVXaWR0aCIsIm91dGxpbmVPZmZzZXQiLCJvdXRsaW5lQ29sb3IiLCJyaW5nV2lkdGgiLCJyaW5nQ29sb3IiLCJyaW5nT3BhY2l0eSIsInJpbmdPZmZzZXRXaWR0aCIsInJpbmdPZmZzZXRDb2xvciIsImJsdXIiLCJicmlnaHRuZXNzIiwiY29udHJhc3QiLCJkcm9wU2hhZG93IiwiZ3JheXNjYWxlIiwiaHVlUm90YXRlIiwiaW52ZXJ0Iiwic2F0dXJhdGUiLCJzZXBpYSIsImZpbHRlciIsImJhY2tkcm9wQmx1ciIsImJhY2tkcm9wQnJpZ2h0bmVzcyIsImJhY2tkcm9wQ29udHJhc3QiLCJiYWNrZHJvcEdyYXlzY2FsZSIsImJhY2tkcm9wSHVlUm90YXRlIiwiYmFja2Ryb3BJbnZlcnQiLCJiYWNrZHJvcE9wYWNpdHkiLCJiYWNrZHJvcFNhdHVyYXRlIiwiYmFja2Ryb3BTZXBpYSIsImJhY2tkcm9wRmlsdGVyIiwidHJhbnNpdGlvblByb3BlcnR5IiwidHJhbnNpdGlvbkRlbGF5IiwidHJhbnNpdGlvbkR1cmF0aW9uIiwidHJhbnNpdGlvblRpbWluZ0Z1bmN0aW9uIiwid2lsbENoYW5nZSIsImNvbnRhaW4iLCJjb250ZW50IiwiZm9yY2VkQ29sb3JBZGp1c3QiXX0pO2Z1bmN0aW9uIGtmKHIsZSl7cmV0dXJuIHI9PT12b2lkIDA/ZTpBcnJheS5pc0FycmF5KHIpP3I6Wy4uLm5ldyBTZXQoZS5maWx0ZXIoaT0+ciE9PSExJiZyW2ldIT09ITEpLmNvbmNhdChPYmplY3Qua2V5cyhyKS5maWx0ZXIoaT0+cltpXSE9PSExKSkpXX12YXIgU2Y9UCgoKT0+e3UoKX0pO3ZhciBBZj17fTtHZShBZix7ZGVmYXVsdDooKT0+UWV9KTt2YXIgUWUsUWk9UCgoKT0+e3UoKTtRZT1uZXcgUHJveHkoe30se2dldDooKT0+U3RyaW5nfSl9KTtmdW5jdGlvbiBqcyhyLGUsdCl7dHlwZW9mIG0hPSJ1bmRlZmluZWQiJiZtLmVudi5KRVNUX1dPUktFUl9JRHx8dCYmQ2YuaGFzKHQpfHwodCYmQ2YuYWRkKHQpLGNvbnNvbGUud2FybigiIiksZS5mb3JFYWNoKGk9PmNvbnNvbGUud2FybihyLCItIixpKSkpfWZ1bmN0aW9uIHpzKHIpe3JldHVybiBRZS5kaW0ocil9dmFyIENmLEcsQmU9UCgoKT0+e3UoKTtRaSgpO0NmPW5ldyBTZXQ7Rz17aW5mbyhyLGUpe2pzKFFlLmJvbGQoUWUuY3lhbigiaW5mbyIpKSwuLi5BcnJheS5pc0FycmF5KHIpP1tyXTpbZSxyXSl9LHdhcm4ocixlKXtbImNvbnRlbnQtcHJvYmxlbXMiXS5pbmNsdWRlcyhyKXx8anMoUWUuYm9sZChRZS55ZWxsb3coIndhcm4iKSksLi4uQXJyYXkuaXNBcnJheShyKT9bcl06W2Uscl0pfSxyaXNrKHIsZSl7anMoUWUuYm9sZChRZS5tYWdlbnRhKCJyaXNrIikpLC4uLkFycmF5LmlzQXJyYXkocik/W3JdOltlLHJdKX19fSk7dmFyIF9mPXt9O0dlKF9mLHtkZWZhdWx0OigpPT5Vc30pO2Z1bmN0aW9uIHFyKHt2ZXJzaW9uOnIsZnJvbTplLHRvOnR9KXtHLndhcm4oYCR7ZX0tY29sb3ItcmVuYW1lZGAsW2BBcyBvZiBUYWlsd2luZCBDU1MgJHtyfSwgXGAke2V9XGAgaGFzIGJlZW4gcmVuYW1lZCB0byBcYCR7dH1cYC5gLCJVcGRhdGUgeW91ciBjb25maWd1cmF0aW9uIGZpbGUgdG8gc2lsZW5jZSB0aGlzIHdhcm5pbmcuIl0pfXZhciBVcyxWcz1QKCgpPT57dSgpO0JlKCk7VXM9e2luaGVyaXQ6ImluaGVyaXQiLGN1cnJlbnQ6ImN1cnJlbnRDb2xvciIsdHJhbnNwYXJlbnQ6InRyYW5zcGFyZW50IixibGFjazoiIzAwMCIsd2hpdGU6IiNmZmYiLHNsYXRlOns1MDoiI2Y4ZmFmYyIsMTAwOiIjZjFmNWY5IiwyMDA6IiNlMmU4ZjAiLDMwMDoiI2NiZDVlMSIsNDAwOiIjOTRhM2I4Iiw1MDA6IiM2NDc0OGIiLDYwMDoiIzQ3NTU2OSIsNzAwOiIjMzM0MTU1Iiw4MDA6IiMxZTI5M2IiLDkwMDoiIzBmMTcyYSIsOTUwOiIjMDIwNjE3In0sZ3JheTp7NTA6IiNmOWZhZmIiLDEwMDoiI2YzZjRmNiIsMjAwOiIjZTVlN2ViIiwzMDA6IiNkMWQ1ZGIiLDQwMDoiIzljYTNhZiIsNTAwOiIjNmI3MjgwIiw2MDA6IiM0YjU1NjMiLDcwMDoiIzM3NDE1MSIsODAwOiIjMWYyOTM3Iiw5MDA6IiMxMTE4MjciLDk1MDoiIzAzMDcxMiJ9LHppbmM6ezUwOiIjZmFmYWZhIiwxMDA6IiNmNGY0ZjUiLDIwMDoiI2U0ZTRlNyIsMzAwOiIjZDRkNGQ4Iiw0MDA6IiNhMWExYWEiLDUwMDoiIzcxNzE3YSIsNjAwOiIjNTI1MjViIiw3MDA6IiMzZjNmNDYiLDgwMDoiIzI3MjcyYSIsOTAwOiIjMTgxODFiIiw5NTA6IiMwOTA5MGIifSxuZXV0cmFsOns1MDoiI2ZhZmFmYSIsMTAwOiIjZjVmNWY1IiwyMDA6IiNlNWU1ZTUiLDMwMDoiI2Q0ZDRkNCIsNDAwOiIjYTNhM2EzIiw1MDA6IiM3MzczNzMiLDYwMDoiIzUyNTI1MiIsNzAwOiIjNDA0MDQwIiw4MDA6IiMyNjI2MjYiLDkwMDoiIzE3MTcxNyIsOTUwOiIjMGEwYTBhIn0sc3RvbmU6ezUwOiIjZmFmYWY5IiwxMDA6IiNmNWY1ZjQiLDIwMDoiI2U3ZTVlNCIsMzAwOiIjZDZkM2QxIiw0MDA6IiNhOGEyOWUiLDUwMDoiIzc4NzE2YyIsNjAwOiIjNTc1MzRlIiw3MDA6IiM0NDQwM2MiLDgwMDoiIzI5MjUyNCIsOTAwOiIjMWMxOTE3Iiw5NTA6IiMwYzBhMDkifSxyZWQ6ezUwOiIjZmVmMmYyIiwxMDA6IiNmZWUyZTIiLDIwMDoiI2ZlY2FjYSIsMzAwOiIjZmNhNWE1Iiw0MDA6IiNmODcxNzEiLDUwMDoiI2VmNDQ0NCIsNjAwOiIjZGMyNjI2Iiw3MDA6IiNiOTFjMWMiLDgwMDoiIzk5MWIxYiIsOTAwOiIjN2YxZDFkIiw5NTA6IiM0NTBhMGEifSxvcmFuZ2U6ezUwOiIjZmZmN2VkIiwxMDA6IiNmZmVkZDUiLDIwMDoiI2ZlZDdhYSIsMzAwOiIjZmRiYTc0Iiw0MDA6IiNmYjkyM2MiLDUwMDoiI2Y5NzMxNiIsNjAwOiIjZWE1ODBjIiw3MDA6IiNjMjQxMGMiLDgwMDoiIzlhMzQxMiIsOTAwOiIjN2MyZDEyIiw5NTA6IiM0MzE0MDcifSxhbWJlcjp7NTA6IiNmZmZiZWIiLDEwMDoiI2ZlZjNjNyIsMjAwOiIjZmRlNjhhIiwzMDA6IiNmY2QzNGQiLDQwMDoiI2ZiYmYyNCIsNTAwOiIjZjU5ZTBiIiw2MDA6IiNkOTc3MDYiLDcwMDoiI2I0NTMwOSIsODAwOiIjOTI0MDBlIiw5MDA6IiM3ODM1MGYiLDk1MDoiIzQ1MWEwMyJ9LHllbGxvdzp7NTA6IiNmZWZjZTgiLDEwMDoiI2ZlZjljMyIsMjAwOiIjZmVmMDhhIiwzMDA6IiNmZGUwNDciLDQwMDoiI2ZhY2MxNSIsNTAwOiIjZWFiMzA4Iiw2MDA6IiNjYThhMDQiLDcwMDoiI2ExNjIwNyIsODAwOiIjODU0ZDBlIiw5MDA6IiM3MTNmMTIiLDk1MDoiIzQyMjAwNiJ9LGxpbWU6ezUwOiIjZjdmZWU3IiwxMDA6IiNlY2ZjY2IiLDIwMDoiI2Q5Zjk5ZCIsMzAwOiIjYmVmMjY0Iiw0MDA6IiNhM2U2MzUiLDUwMDoiIzg0Y2MxNiIsNjAwOiIjNjVhMzBkIiw3MDA6IiM0ZDdjMGYiLDgwMDoiIzNmNjIxMiIsOTAwOiIjMzY1MzE0Iiw5NTA6IiMxYTJlMDUifSxncmVlbjp7NTA6IiNmMGZkZjQiLDEwMDoiI2RjZmNlNyIsMjAwOiIjYmJmN2QwIiwzMDA6IiM4NmVmYWMiLDQwMDoiIzRhZGU4MCIsNTAwOiIjMjJjNTVlIiw2MDA6IiMxNmEzNGEiLDcwMDoiIzE1ODAzZCIsODAwOiIjMTY2NTM0Iiw5MDA6IiMxNDUzMmQiLDk1MDoiIzA1MmUxNiJ9LGVtZXJhbGQ6ezUwOiIjZWNmZGY1IiwxMDA6IiNkMWZhZTUiLDIwMDoiI2E3ZjNkMCIsMzAwOiIjNmVlN2I3Iiw0MDA6IiMzNGQzOTkiLDUwMDoiIzEwYjk4MSIsNjAwOiIjMDU5NjY5Iiw3MDA6IiMwNDc4NTciLDgwMDoiIzA2NWY0NiIsOTAwOiIjMDY0ZTNiIiw5NTA6IiMwMjJjMjIifSx0ZWFsOns1MDoiI2YwZmRmYSIsMTAwOiIjY2NmYmYxIiwyMDA6IiM5OWY2ZTQiLDMwMDoiIzVlZWFkNCIsNDAwOiIjMmRkNGJmIiw1MDA6IiMxNGI4YTYiLDYwMDoiIzBkOTQ4OCIsNzAwOiIjMGY3NjZlIiw4MDA6IiMxMTVlNTkiLDkwMDoiIzEzNGU0YSIsOTUwOiIjMDQyZjJlIn0sY3lhbjp7NTA6IiNlY2ZlZmYiLDEwMDoiI2NmZmFmZSIsMjAwOiIjYTVmM2ZjIiwzMDA6IiM2N2U4ZjkiLDQwMDoiIzIyZDNlZSIsNTAwOiIjMDZiNmQ0Iiw2MDA6IiMwODkxYjIiLDcwMDoiIzBlNzQ5MCIsODAwOiIjMTU1ZTc1Iiw5MDA6IiMxNjRlNjMiLDk1MDoiIzA4MzM0NCJ9LHNreTp7NTA6IiNmMGY5ZmYiLDEwMDoiI2UwZjJmZSIsMjAwOiIjYmFlNmZkIiwzMDA6IiM3ZGQzZmMiLDQwMDoiIzM4YmRmOCIsNTAwOiIjMGVhNWU5Iiw2MDA6IiMwMjg0YzciLDcwMDoiIzAzNjlhMSIsODAwOiIjMDc1OTg1Iiw5MDA6IiMwYzRhNmUiLDk1MDoiIzA4MmY0OSJ9LGJsdWU6ezUwOiIjZWZmNmZmIiwxMDA6IiNkYmVhZmUiLDIwMDoiI2JmZGJmZSIsMzAwOiIjOTNjNWZkIiw0MDA6IiM2MGE1ZmEiLDUwMDoiIzNiODJmNiIsNjAwOiIjMjU2M2ViIiw3MDA6IiMxZDRlZDgiLDgwMDoiIzFlNDBhZiIsOTAwOiIjMWUzYThhIiw5NTA6IiMxNzI1NTQifSxpbmRpZ286ezUwOiIjZWVmMmZmIiwxMDA6IiNlMGU3ZmYiLDIwMDoiI2M3ZDJmZSIsMzAwOiIjYTViNGZjIiw0MDA6IiM4MThjZjgiLDUwMDoiIzYzNjZmMSIsNjAwOiIjNGY0NmU1Iiw3MDA6IiM0MzM4Y2EiLDgwMDoiIzM3MzBhMyIsOTAwOiIjMzEyZTgxIiw5NTA6IiMxZTFiNGIifSx2aW9sZXQ6ezUwOiIjZjVmM2ZmIiwxMDA6IiNlZGU5ZmUiLDIwMDoiI2RkZDZmZSIsMzAwOiIjYzRiNWZkIiw0MDA6IiNhNzhiZmEiLDUwMDoiIzhiNWNmNiIsNjAwOiIjN2MzYWVkIiw3MDA6IiM2ZDI4ZDkiLDgwMDoiIzViMjFiNiIsOTAwOiIjNGMxZDk1Iiw5NTA6IiMyZTEwNjUifSxwdXJwbGU6ezUwOiIjZmFmNWZmIiwxMDA6IiNmM2U4ZmYiLDIwMDoiI2U5ZDVmZiIsMzAwOiIjZDhiNGZlIiw0MDA6IiNjMDg0ZmMiLDUwMDoiI2E4NTVmNyIsNjAwOiIjOTMzM2VhIiw3MDA6IiM3ZTIyY2UiLDgwMDoiIzZiMjFhOCIsOTAwOiIjNTgxYzg3Iiw5NTA6IiMzYjA3NjQifSxmdWNoc2lhOns1MDoiI2ZkZjRmZiIsMTAwOiIjZmFlOGZmIiwyMDA6IiNmNWQwZmUiLDMwMDoiI2YwYWJmYyIsNDAwOiIjZTg3OWY5Iiw1MDA6IiNkOTQ2ZWYiLDYwMDoiI2MwMjZkMyIsNzAwOiIjYTIxY2FmIiw4MDA6IiM4NjE5OGYiLDkwMDoiIzcwMWE3NSIsOTUwOiIjNGEwNDRlIn0scGluazp7NTA6IiNmZGYyZjgiLDEwMDoiI2ZjZTdmMyIsMjAwOiIjZmJjZmU4IiwzMDA6IiNmOWE4ZDQiLDQwMDoiI2Y0NzJiNiIsNTAwOiIjZWM0ODk5Iiw2MDA6IiNkYjI3NzciLDcwMDoiI2JlMTg1ZCIsODAwOiIjOWQxNzRkIiw5MDA6IiM4MzE4NDMiLDk1MDoiIzUwMDcyNCJ9LHJvc2U6ezUwOiIjZmZmMWYyIiwxMDA6IiNmZmU0ZTYiLDIwMDoiI2ZlY2RkMyIsMzAwOiIjZmRhNGFmIiw0MDA6IiNmYjcxODUiLDUwMDoiI2Y0M2Y1ZSIsNjAwOiIjZTExZDQ4Iiw3MDA6IiNiZTEyM2MiLDgwMDoiIzlmMTIzOSIsOTAwOiIjODgxMzM3Iiw5NTA6IiM0YzA1MTkifSxnZXQgbGlnaHRCbHVlKCl7cmV0dXJuIHFyKHt2ZXJzaW9uOiJ2Mi4yIixmcm9tOiJsaWdodEJsdWUiLHRvOiJza3kifSksdGhpcy5za3l9LGdldCB3YXJtR3JheSgpe3JldHVybiBxcih7dmVyc2lvbjoidjMuMCIsZnJvbToid2FybUdyYXkiLHRvOiJzdG9uZSJ9KSx0aGlzLnN0b25lfSxnZXQgdHJ1ZUdyYXkoKXtyZXR1cm4gcXIoe3ZlcnNpb246InYzLjAiLGZyb206InRydWVHcmF5Iix0bzoibmV1dHJhbCJ9KSx0aGlzLm5ldXRyYWx9LGdldCBjb29sR3JheSgpe3JldHVybiBxcih7dmVyc2lvbjoidjMuMCIsZnJvbToiY29vbEdyYXkiLHRvOiJncmF5In0pLHRoaXMuZ3JheX0sZ2V0IGJsdWVHcmF5KCl7cmV0dXJuIHFyKHt2ZXJzaW9uOiJ2My4wIixmcm9tOiJibHVlR3JheSIsdG86InNsYXRlIn0pLHRoaXMuc2xhdGV9fX0pO2Z1bmN0aW9uIEhzKHIsLi4uZSl7Zm9yKGxldCB0IG9mIGUpe2ZvcihsZXQgaSBpbiB0KXI/Lmhhc093blByb3BlcnR5Py4oaSl8fChyW2ldPXRbaV0pO2ZvcihsZXQgaSBvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHQpKXI/Lmhhc093blByb3BlcnR5Py4oaSl8fChyW2ldPXRbaV0pfXJldHVybiByfXZhciBFZj1QKCgpPT57dSgpfSk7ZnVuY3Rpb24ga3Qocil7aWYoQXJyYXkuaXNBcnJheShyKSlyZXR1cm4gcjtsZXQgZT1yLnNwbGl0KCJbIikubGVuZ3RoLTEsdD1yLnNwbGl0KCJdIikubGVuZ3RoLTE7aWYoZSE9PXQpdGhyb3cgbmV3IEVycm9yKGBQYXRoIGlzIGludmFsaWQuIEhhcyB1bmJhbGFuY2VkIGJyYWNrZXRzOiAke3J9YCk7cmV0dXJuIHIuc3BsaXQoL1wuKD8hW15cW10qXF0pfFtcW1xdXS9nKS5maWx0ZXIoQm9vbGVhbil9dmFyIFlpPVAoKCk9Pnt1KCl9KTtmdW5jdGlvbiB3ZShyLGUpe3JldHVybiBLaS5mdXR1cmUuaW5jbHVkZXMoZSk/ci5mdXR1cmU9PT0iYWxsInx8KHI/LmZ1dHVyZT8uW2VdPz9PZltlXT8/ITEpOktpLmV4cGVyaW1lbnRhbC5pbmNsdWRlcyhlKT9yLmV4cGVyaW1lbnRhbD09PSJhbGwifHwocj8uZXhwZXJpbWVudGFsPy5bZV0/P09mW2VdPz8hMSk6ITF9ZnVuY3Rpb24gVGYocil7cmV0dXJuIHIuZXhwZXJpbWVudGFsPT09ImFsbCI/S2kuZXhwZXJpbWVudGFsOk9iamVjdC5rZXlzKHI/LmV4cGVyaW1lbnRhbD8/e30pLmZpbHRlcihlPT5LaS5leHBlcmltZW50YWwuaW5jbHVkZXMoZSkmJnIuZXhwZXJpbWVudGFsW2VdKX1mdW5jdGlvbiBSZihyKXtpZihtLmVudi5KRVNUX1dPUktFUl9JRD09PXZvaWQgMCYmVGYocikubGVuZ3RoPjApe2xldCBlPVRmKHIpLm1hcCh0PT5RZS55ZWxsb3codCkpLmpvaW4oIiwgIik7Ry53YXJuKCJleHBlcmltZW50YWwtZmxhZ3MtZW5hYmxlZCIsW2BZb3UgaGF2ZSBlbmFibGVkIGV4cGVyaW1lbnRhbCBmZWF0dXJlczogJHtlfWAsIkV4cGVyaW1lbnRhbCBmZWF0dXJlcyBpbiBUYWlsd2luZCBDU1MgYXJlIG5vdCBjb3ZlcmVkIGJ5IHNlbXZlciwgbWF5IGludHJvZHVjZSBicmVha2luZyBjaGFuZ2VzLCBhbmQgY2FuIGNoYW5nZSBhdCBhbnkgdGltZS4iXSl9fXZhciBPZixLaSxjdD1QKCgpPT57dSgpO1FpKCk7QmUoKTtPZj17b3B0aW1pemVVbml2ZXJzYWxEZWZhdWx0czohMSxnZW5lcmFsaXplZE1vZGlmaWVyczohMCxkaXNhYmxlQ29sb3JPcGFjaXR5VXRpbGl0aWVzQnlEZWZhdWx0OiExLHJlbGF0aXZlQ29udGVudFBhdGhzQnlEZWZhdWx0OiExfSxLaT17ZnV0dXJlOlsiaG92ZXJPbmx5V2hlblN1cHBvcnRlZCIsInJlc3BlY3REZWZhdWx0UmluZ0NvbG9yT3BhY2l0eSIsImRpc2FibGVDb2xvck9wYWNpdHlVdGlsaXRpZXNCeURlZmF1bHQiLCJyZWxhdGl2ZUNvbnRlbnRQYXRoc0J5RGVmYXVsdCJdLGV4cGVyaW1lbnRhbDpbIm9wdGltaXplVW5pdmVyc2FsRGVmYXVsdHMiLCJnZW5lcmFsaXplZE1vZGlmaWVycyJdfX0pO2Z1bmN0aW9uIFBmKHIpeygoKT0+e2lmKHIucHVyZ2V8fCFyLmNvbnRlbnR8fCFBcnJheS5pc0FycmF5KHIuY29udGVudCkmJiEodHlwZW9mIHIuY29udGVudD09Im9iamVjdCImJnIuY29udGVudCE9PW51bGwpKXJldHVybiExO2lmKEFycmF5LmlzQXJyYXkoci5jb250ZW50KSlyZXR1cm4gci5jb250ZW50LmV2ZXJ5KHQ9PnR5cGVvZiB0PT0ic3RyaW5nIj8hMDohKHR5cGVvZiB0Py5yYXchPSJzdHJpbmcifHx0Py5leHRlbnNpb24mJnR5cGVvZiB0Py5leHRlbnNpb24hPSJzdHJpbmciKSk7aWYodHlwZW9mIHIuY29udGVudD09Im9iamVjdCImJnIuY29udGVudCE9PW51bGwpe2lmKE9iamVjdC5rZXlzKHIuY29udGVudCkuc29tZSh0PT4hWyJmaWxlcyIsInJlbGF0aXZlIiwiZXh0cmFjdCIsInRyYW5zZm9ybSJdLmluY2x1ZGVzKHQpKSlyZXR1cm4hMTtpZihBcnJheS5pc0FycmF5KHIuY29udGVudC5maWxlcykpe2lmKCFyLmNvbnRlbnQuZmlsZXMuZXZlcnkodD0+dHlwZW9mIHQ9PSJzdHJpbmciPyEwOiEodHlwZW9mIHQ/LnJhdyE9InN0cmluZyJ8fHQ/LmV4dGVuc2lvbiYmdHlwZW9mIHQ/LmV4dGVuc2lvbiE9InN0cmluZyIpKSlyZXR1cm4hMTtpZih0eXBlb2Ygci5jb250ZW50LmV4dHJhY3Q9PSJvYmplY3QiKXtmb3IobGV0IHQgb2YgT2JqZWN0LnZhbHVlcyhyLmNvbnRlbnQuZXh0cmFjdCkpaWYodHlwZW9mIHQhPSJmdW5jdGlvbiIpcmV0dXJuITF9ZWxzZSBpZighKHIuY29udGVudC5leHRyYWN0PT09dm9pZCAwfHx0eXBlb2Ygci5jb250ZW50LmV4dHJhY3Q9PSJmdW5jdGlvbiIpKXJldHVybiExO2lmKHR5cGVvZiByLmNvbnRlbnQudHJhbnNmb3JtPT0ib2JqZWN0Iil7Zm9yKGxldCB0IG9mIE9iamVjdC52YWx1ZXMoci5jb250ZW50LnRyYW5zZm9ybSkpaWYodHlwZW9mIHQhPSJmdW5jdGlvbiIpcmV0dXJuITF9ZWxzZSBpZighKHIuY29udGVudC50cmFuc2Zvcm09PT12b2lkIDB8fHR5cGVvZiByLmNvbnRlbnQudHJhbnNmb3JtPT0iZnVuY3Rpb24iKSlyZXR1cm4hMTtpZih0eXBlb2Ygci5jb250ZW50LnJlbGF0aXZlIT0iYm9vbGVhbiImJnR5cGVvZiByLmNvbnRlbnQucmVsYXRpdmUhPSJ1bmRlZmluZWQiKXJldHVybiExfXJldHVybiEwfXJldHVybiExfSkoKXx8Ry53YXJuKCJwdXJnZS1kZXByZWNhdGlvbiIsWyJUaGUgYHB1cmdlYC9gY29udGVudGAgb3B0aW9ucyBoYXZlIGNoYW5nZWQgaW4gVGFpbHdpbmQgQ1NTIHYzLjAuIiwiVXBkYXRlIHlvdXIgY29uZmlndXJhdGlvbiBmaWxlIHRvIGVsaW1pbmF0ZSB0aGlzIHdhcm5pbmcuIiwiaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy91cGdyYWRlLWd1aWRlI2NvbmZpZ3VyZS1jb250ZW50LXNvdXJjZXMiXSksci5zYWZlbGlzdD0oKCk9PntsZXR7Y29udGVudDp0LHB1cmdlOmksc2FmZWxpc3Q6bn09cjtyZXR1cm4gQXJyYXkuaXNBcnJheShuKT9uOkFycmF5LmlzQXJyYXkodD8uc2FmZWxpc3QpP3Quc2FmZWxpc3Q6QXJyYXkuaXNBcnJheShpPy5zYWZlbGlzdCk/aS5zYWZlbGlzdDpBcnJheS5pc0FycmF5KGk/Lm9wdGlvbnM/LnNhZmVsaXN0KT9pLm9wdGlvbnMuc2FmZWxpc3Q6W119KSgpLHIuYmxvY2tsaXN0PSgoKT0+e2xldHtibG9ja2xpc3Q6dH09cjtpZihBcnJheS5pc0FycmF5KHQpKXtpZih0LmV2ZXJ5KGk9PnR5cGVvZiBpPT0ic3RyaW5nIikpcmV0dXJuIHQ7Ry53YXJuKCJibG9ja2xpc3QtaW52YWxpZCIsWyJUaGUgYGJsb2NrbGlzdGAgb3B0aW9uIG11c3QgYmUgYW4gYXJyYXkgb2Ygc3RyaW5ncy4iLCJodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2NvbnRlbnQtY29uZmlndXJhdGlvbiNkaXNjYXJkaW5nLWNsYXNzZXMiXSl9cmV0dXJuW119KSgpLHR5cGVvZiByLnByZWZpeD09ImZ1bmN0aW9uIj8oRy53YXJuKCJwcmVmaXgtZnVuY3Rpb24iLFsiQXMgb2YgVGFpbHdpbmQgQ1NTIHYzLjAsIGBwcmVmaXhgIGNhbm5vdCBiZSBhIGZ1bmN0aW9uLiIsIlVwZGF0ZSBgcHJlZml4YCBpbiB5b3VyIGNvbmZpZ3VyYXRpb24gdG8gYmUgYSBzdHJpbmcgdG8gZWxpbWluYXRlIHRoaXMgd2FybmluZy4iLCJodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3VwZ3JhZGUtZ3VpZGUjcHJlZml4LWNhbm5vdC1iZS1hLWZ1bmN0aW9uIl0pLHIucHJlZml4PSIiKTpyLnByZWZpeD1yLnByZWZpeD8/IiIsci5jb250ZW50PXtyZWxhdGl2ZTooKCk9PntsZXR7Y29udGVudDp0fT1yO3JldHVybiB0Py5yZWxhdGl2ZT90LnJlbGF0aXZlOndlKHIsInJlbGF0aXZlQ29udGVudFBhdGhzQnlEZWZhdWx0Iil9KSgpLGZpbGVzOigoKT0+e2xldHtjb250ZW50OnQscHVyZ2U6aX09cjtyZXR1cm4gQXJyYXkuaXNBcnJheShpKT9pOkFycmF5LmlzQXJyYXkoaT8uY29udGVudCk/aS5jb250ZW50OkFycmF5LmlzQXJyYXkodCk/dDpBcnJheS5pc0FycmF5KHQ/LmNvbnRlbnQpP3QuY29udGVudDpBcnJheS5pc0FycmF5KHQ/LmZpbGVzKT90LmZpbGVzOltdfSkoKSxleHRyYWN0OigoKT0+e2xldCB0PSgoKT0+ci5wdXJnZT8uZXh0cmFjdD9yLnB1cmdlLmV4dHJhY3Q6ci5jb250ZW50Py5leHRyYWN0P3IuY29udGVudC5leHRyYWN0OnIucHVyZ2U/LmV4dHJhY3Q/LkRFRkFVTFQ/ci5wdXJnZS5leHRyYWN0LkRFRkFVTFQ6ci5jb250ZW50Py5leHRyYWN0Py5ERUZBVUxUP3IuY29udGVudC5leHRyYWN0LkRFRkFVTFQ6ci5wdXJnZT8ub3B0aW9ucz8uZXh0cmFjdG9ycz9yLnB1cmdlLm9wdGlvbnMuZXh0cmFjdG9yczpyLmNvbnRlbnQ/Lm9wdGlvbnM/LmV4dHJhY3RvcnM/ci5jb250ZW50Lm9wdGlvbnMuZXh0cmFjdG9yczp7fSkoKSxpPXt9LG49KCgpPT57aWYoci5wdXJnZT8ub3B0aW9ucz8uZGVmYXVsdEV4dHJhY3RvcilyZXR1cm4gci5wdXJnZS5vcHRpb25zLmRlZmF1bHRFeHRyYWN0b3I7aWYoci5jb250ZW50Py5vcHRpb25zPy5kZWZhdWx0RXh0cmFjdG9yKXJldHVybiByLmNvbnRlbnQub3B0aW9ucy5kZWZhdWx0RXh0cmFjdG9yfSkoKTtpZihuIT09dm9pZCAwJiYoaS5ERUZBVUxUPW4pLHR5cGVvZiB0PT0iZnVuY3Rpb24iKWkuREVGQVVMVD10O2Vsc2UgaWYoQXJyYXkuaXNBcnJheSh0KSlmb3IobGV0e2V4dGVuc2lvbnM6cyxleHRyYWN0b3I6YX1vZiB0Pz9bXSlmb3IobGV0IG8gb2YgcylpW29dPWE7ZWxzZSB0eXBlb2YgdD09Im9iamVjdCImJnQhPT1udWxsJiZPYmplY3QuYXNzaWduKGksdCk7cmV0dXJuIGl9KSgpLHRyYW5zZm9ybTooKCk9PntsZXQgdD0oKCk9PnIucHVyZ2U/LnRyYW5zZm9ybT9yLnB1cmdlLnRyYW5zZm9ybTpyLmNvbnRlbnQ/LnRyYW5zZm9ybT9yLmNvbnRlbnQudHJhbnNmb3JtOnIucHVyZ2U/LnRyYW5zZm9ybT8uREVGQVVMVD9yLnB1cmdlLnRyYW5zZm9ybS5ERUZBVUxUOnIuY29udGVudD8udHJhbnNmb3JtPy5ERUZBVUxUP3IuY29udGVudC50cmFuc2Zvcm0uREVGQVVMVDp7fSkoKSxpPXt9O3JldHVybiB0eXBlb2YgdD09ImZ1bmN0aW9uIj9pLkRFRkFVTFQ9dDp0eXBlb2YgdD09Im9iamVjdCImJnQhPT1udWxsJiZPYmplY3QuYXNzaWduKGksdCksaX0pKCl9O2ZvcihsZXQgdCBvZiByLmNvbnRlbnQuZmlsZXMpaWYodHlwZW9mIHQ9PSJzdHJpbmciJiYveyhbXixdKj8pfS9nLnRlc3QodCkpe0cud2FybigiaW52YWxpZC1nbG9iLWJyYWNlcyIsW2BUaGUgZ2xvYiBwYXR0ZXJuICR7enModCl9IGluIHlvdXIgVGFpbHdpbmQgQ1NTIGNvbmZpZ3VyYXRpb24gaXMgaW52YWxpZC5gLGBVcGRhdGUgaXQgdG8gJHt6cyh0LnJlcGxhY2UoL3soW14sXSo/KX0vZywiJDEiKSl9IHRvIHNpbGVuY2UgdGhpcyB3YXJuaW5nLmBdKTticmVha31yZXR1cm4gcn12YXIgSWY9UCgoKT0+e3UoKTtjdCgpO0JlKCl9KTtmdW5jdGlvbiBrZShyKXtpZihPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwocikhPT0iW29iamVjdCBPYmplY3RdIilyZXR1cm4hMTtsZXQgZT1PYmplY3QuZ2V0UHJvdG90eXBlT2Yocik7cmV0dXJuIGU9PT1udWxsfHxPYmplY3QuZ2V0UHJvdG90eXBlT2YoZSk9PT1udWxsfXZhciBLdD1QKCgpPT57dSgpfSk7ZnVuY3Rpb24gU3Qocil7cmV0dXJuIEFycmF5LmlzQXJyYXkocik/ci5tYXAoZT0+U3QoZSkpOnR5cGVvZiByPT0ib2JqZWN0IiYmciE9PW51bGw/T2JqZWN0LmZyb21FbnRyaWVzKE9iamVjdC5lbnRyaWVzKHIpLm1hcCgoW2UsdF0pPT5bZSxTdCh0KV0pKTpyfXZhciBYaT1QKCgpPT57dSgpfSk7ZnVuY3Rpb24ganQocil7cmV0dXJuIHIucmVwbGFjZSgvXFwsL2csIlxcMmMgIil9dmFyIFppPVAoKCk9Pnt1KCl9KTt2YXIgV3MsRGY9UCgoKT0+e3UoKTtXcz17YWxpY2VibHVlOlsyNDAsMjQ4LDI1NV0sYW50aXF1ZXdoaXRlOlsyNTAsMjM1LDIxNV0sYXF1YTpbMCwyNTUsMjU1XSxhcXVhbWFyaW5lOlsxMjcsMjU1LDIxMl0sYXp1cmU6WzI0MCwyNTUsMjU1XSxiZWlnZTpbMjQ1LDI0NSwyMjBdLGJpc3F1ZTpbMjU1LDIyOCwxOTZdLGJsYWNrOlswLDAsMF0sYmxhbmNoZWRhbG1vbmQ6WzI1NSwyMzUsMjA1XSxibHVlOlswLDAsMjU1XSxibHVldmlvbGV0OlsxMzgsNDMsMjI2XSxicm93bjpbMTY1LDQyLDQyXSxidXJseXdvb2Q6WzIyMiwxODQsMTM1XSxjYWRldGJsdWU6Wzk1LDE1OCwxNjBdLGNoYXJ0cmV1c2U6WzEyNywyNTUsMF0sY2hvY29sYXRlOlsyMTAsMTA1LDMwXSxjb3JhbDpbMjU1LDEyNyw4MF0sY29ybmZsb3dlcmJsdWU6WzEwMCwxNDksMjM3XSxjb3Juc2lsazpbMjU1LDI0OCwyMjBdLGNyaW1zb246WzIyMCwyMCw2MF0sY3lhbjpbMCwyNTUsMjU1XSxkYXJrYmx1ZTpbMCwwLDEzOV0sZGFya2N5YW46WzAsMTM5LDEzOV0sZGFya2dvbGRlbnJvZDpbMTg0LDEzNCwxMV0sZGFya2dyYXk6WzE2OSwxNjksMTY5XSxkYXJrZ3JlZW46WzAsMTAwLDBdLGRhcmtncmV5OlsxNjksMTY5LDE2OV0sZGFya2toYWtpOlsxODksMTgzLDEwN10sZGFya21hZ2VudGE6WzEzOSwwLDEzOV0sZGFya29saXZlZ3JlZW46Wzg1LDEwNyw0N10sZGFya29yYW5nZTpbMjU1LDE0MCwwXSxkYXJrb3JjaGlkOlsxNTMsNTAsMjA0XSxkYXJrcmVkOlsxMzksMCwwXSxkYXJrc2FsbW9uOlsyMzMsMTUwLDEyMl0sZGFya3NlYWdyZWVuOlsxNDMsMTg4LDE0M10sZGFya3NsYXRlYmx1ZTpbNzIsNjEsMTM5XSxkYXJrc2xhdGVncmF5Ols0Nyw3OSw3OV0sZGFya3NsYXRlZ3JleTpbNDcsNzksNzldLGRhcmt0dXJxdW9pc2U6WzAsMjA2LDIwOV0sZGFya3Zpb2xldDpbMTQ4LDAsMjExXSxkZWVwcGluazpbMjU1LDIwLDE0N10sZGVlcHNreWJsdWU6WzAsMTkxLDI1NV0sZGltZ3JheTpbMTA1LDEwNSwxMDVdLGRpbWdyZXk6WzEwNSwxMDUsMTA1XSxkb2RnZXJibHVlOlszMCwxNDQsMjU1XSxmaXJlYnJpY2s6WzE3OCwzNCwzNF0sZmxvcmFsd2hpdGU6WzI1NSwyNTAsMjQwXSxmb3Jlc3RncmVlbjpbMzQsMTM5LDM0XSxmdWNoc2lhOlsyNTUsMCwyNTVdLGdhaW5zYm9ybzpbMjIwLDIyMCwyMjBdLGdob3N0d2hpdGU6WzI0OCwyNDgsMjU1XSxnb2xkOlsyNTUsMjE1LDBdLGdvbGRlbnJvZDpbMjE4LDE2NSwzMl0sZ3JheTpbMTI4LDEyOCwxMjhdLGdyZWVuOlswLDEyOCwwXSxncmVlbnllbGxvdzpbMTczLDI1NSw0N10sZ3JleTpbMTI4LDEyOCwxMjhdLGhvbmV5ZGV3OlsyNDAsMjU1LDI0MF0saG90cGluazpbMjU1LDEwNSwxODBdLGluZGlhbnJlZDpbMjA1LDkyLDkyXSxpbmRpZ286Wzc1LDAsMTMwXSxpdm9yeTpbMjU1LDI1NSwyNDBdLGtoYWtpOlsyNDAsMjMwLDE0MF0sbGF2ZW5kZXI6WzIzMCwyMzAsMjUwXSxsYXZlbmRlcmJsdXNoOlsyNTUsMjQwLDI0NV0sbGF3bmdyZWVuOlsxMjQsMjUyLDBdLGxlbW9uY2hpZmZvbjpbMjU1LDI1MCwyMDVdLGxpZ2h0Ymx1ZTpbMTczLDIxNiwyMzBdLGxpZ2h0Y29yYWw6WzI0MCwxMjgsMTI4XSxsaWdodGN5YW46WzIyNCwyNTUsMjU1XSxsaWdodGdvbGRlbnJvZHllbGxvdzpbMjUwLDI1MCwyMTBdLGxpZ2h0Z3JheTpbMjExLDIxMSwyMTFdLGxpZ2h0Z3JlZW46WzE0NCwyMzgsMTQ0XSxsaWdodGdyZXk6WzIxMSwyMTEsMjExXSxsaWdodHBpbms6WzI1NSwxODIsMTkzXSxsaWdodHNhbG1vbjpbMjU1LDE2MCwxMjJdLGxpZ2h0c2VhZ3JlZW46WzMyLDE3OCwxNzBdLGxpZ2h0c2t5Ymx1ZTpbMTM1LDIwNiwyNTBdLGxpZ2h0c2xhdGVncmF5OlsxMTksMTM2LDE1M10sbGlnaHRzbGF0ZWdyZXk6WzExOSwxMzYsMTUzXSxsaWdodHN0ZWVsYmx1ZTpbMTc2LDE5NiwyMjJdLGxpZ2h0eWVsbG93OlsyNTUsMjU1LDIyNF0sbGltZTpbMCwyNTUsMF0sbGltZWdyZWVuOls1MCwyMDUsNTBdLGxpbmVuOlsyNTAsMjQwLDIzMF0sbWFnZW50YTpbMjU1LDAsMjU1XSxtYXJvb246WzEyOCwwLDBdLG1lZGl1bWFxdWFtYXJpbmU6WzEwMiwyMDUsMTcwXSxtZWRpdW1ibHVlOlswLDAsMjA1XSxtZWRpdW1vcmNoaWQ6WzE4Niw4NSwyMTFdLG1lZGl1bXB1cnBsZTpbMTQ3LDExMiwyMTldLG1lZGl1bXNlYWdyZWVuOls2MCwxNzksMTEzXSxtZWRpdW1zbGF0ZWJsdWU6WzEyMywxMDQsMjM4XSxtZWRpdW1zcHJpbmdncmVlbjpbMCwyNTAsMTU0XSxtZWRpdW10dXJxdW9pc2U6WzcyLDIwOSwyMDRdLG1lZGl1bXZpb2xldHJlZDpbMTk5LDIxLDEzM10sbWlkbmlnaHRibHVlOlsyNSwyNSwxMTJdLG1pbnRjcmVhbTpbMjQ1LDI1NSwyNTBdLG1pc3R5cm9zZTpbMjU1LDIyOCwyMjVdLG1vY2Nhc2luOlsyNTUsMjI4LDE4MV0sbmF2YWpvd2hpdGU6WzI1NSwyMjIsMTczXSxuYXZ5OlswLDAsMTI4XSxvbGRsYWNlOlsyNTMsMjQ1LDIzMF0sb2xpdmU6WzEyOCwxMjgsMF0sb2xpdmVkcmFiOlsxMDcsMTQyLDM1XSxvcmFuZ2U6WzI1NSwxNjUsMF0sb3JhbmdlcmVkOlsyNTUsNjksMF0sb3JjaGlkOlsyMTgsMTEyLDIxNF0scGFsZWdvbGRlbnJvZDpbMjM4LDIzMiwxNzBdLHBhbGVncmVlbjpbMTUyLDI1MSwxNTJdLHBhbGV0dXJxdW9pc2U6WzE3NSwyMzgsMjM4XSxwYWxldmlvbGV0cmVkOlsyMTksMTEyLDE0N10scGFwYXlhd2hpcDpbMjU1LDIzOSwyMTNdLHBlYWNocHVmZjpbMjU1LDIxOCwxODVdLHBlcnU6WzIwNSwxMzMsNjNdLHBpbms6WzI1NSwxOTIsMjAzXSxwbHVtOlsyMjEsMTYwLDIyMV0scG93ZGVyYmx1ZTpbMTc2LDIyNCwyMzBdLHB1cnBsZTpbMTI4LDAsMTI4XSxyZWJlY2NhcHVycGxlOlsxMDIsNTEsMTUzXSxyZWQ6WzI1NSwwLDBdLHJvc3licm93bjpbMTg4LDE0MywxNDNdLHJveWFsYmx1ZTpbNjUsMTA1LDIyNV0sc2FkZGxlYnJvd246WzEzOSw2OSwxOV0sc2FsbW9uOlsyNTAsMTI4LDExNF0sc2FuZHlicm93bjpbMjQ0LDE2NCw5Nl0sc2VhZ3JlZW46WzQ2LDEzOSw4N10sc2Vhc2hlbGw6WzI1NSwyNDUsMjM4XSxzaWVubmE6WzE2MCw4Miw0NV0sc2lsdmVyOlsxOTIsMTkyLDE5Ml0sc2t5Ymx1ZTpbMTM1LDIwNiwyMzVdLHNsYXRlYmx1ZTpbMTA2LDkwLDIwNV0sc2xhdGVncmF5OlsxMTIsMTI4LDE0NF0sc2xhdGVncmV5OlsxMTIsMTI4LDE0NF0sc25vdzpbMjU1LDI1MCwyNTBdLHNwcmluZ2dyZWVuOlswLDI1NSwxMjddLHN0ZWVsYmx1ZTpbNzAsMTMwLDE4MF0sdGFuOlsyMTAsMTgwLDE0MF0sdGVhbDpbMCwxMjgsMTI4XSx0aGlzdGxlOlsyMTYsMTkxLDIxNl0sdG9tYXRvOlsyNTUsOTksNzFdLHR1cnF1b2lzZTpbNjQsMjI0LDIwOF0sdmlvbGV0OlsyMzgsMTMwLDIzOF0sd2hlYXQ6WzI0NSwyMjIsMTc5XSx3aGl0ZTpbMjU1LDI1NSwyNTVdLHdoaXRlc21va2U6WzI0NSwyNDUsMjQ1XSx5ZWxsb3c6WzI1NSwyNTUsMF0seWVsbG93Z3JlZW46WzE1NCwyMDUsNTBdfX0pO2Z1bmN0aW9uICRyKHIse2xvb3NlOmU9ITF9PXt9KXtpZih0eXBlb2YgciE9InN0cmluZyIpcmV0dXJuIG51bGw7aWYocj1yLnRyaW0oKSxyPT09InRyYW5zcGFyZW50IilyZXR1cm57bW9kZToicmdiIixjb2xvcjpbIjAiLCIwIiwiMCJdLGFscGhhOiIwIn07aWYociBpbiBXcylyZXR1cm57bW9kZToicmdiIixjb2xvcjpXc1tyXS5tYXAocz0+cy50b1N0cmluZygpKX07bGV0IHQ9ci5yZXBsYWNlKHp2LChzLGEsbyxsLGMpPT5bIiMiLGEsYSxvLG8sbCxsLGM/YytjOiIiXS5qb2luKCIiKSkubWF0Y2goanYpO2lmKHQhPT1udWxsKXJldHVybnttb2RlOiJyZ2IiLGNvbG9yOltwYXJzZUludCh0WzFdLDE2KSxwYXJzZUludCh0WzJdLDE2KSxwYXJzZUludCh0WzNdLDE2KV0ubWFwKHM9PnMudG9TdHJpbmcoKSksYWxwaGE6dFs0XT8ocGFyc2VJbnQodFs0XSwxNikvMjU1KS50b1N0cmluZygpOnZvaWQgMH07bGV0IGk9ci5tYXRjaChVdik/P3IubWF0Y2goVnYpO2lmKGk9PT1udWxsKXJldHVybiBudWxsO2xldCBuPVtpWzJdLGlbM10saVs0XV0uZmlsdGVyKEJvb2xlYW4pLm1hcChzPT5zLnRvU3RyaW5nKCkpO3JldHVybiBuLmxlbmd0aD09PTImJm5bMF0uc3RhcnRzV2l0aCgidmFyKCIpP3ttb2RlOmlbMV0sY29sb3I6W25bMF1dLGFscGhhOm5bMV19OiFlJiZuLmxlbmd0aCE9PTN8fG4ubGVuZ3RoPDMmJiFuLnNvbWUocz0+L152YXJcKC4qP1wpJC8udGVzdChzKSk/bnVsbDp7bW9kZTppWzFdLGNvbG9yOm4sYWxwaGE6aVs1XT8udG9TdHJpbmc/LigpfX1mdW5jdGlvbiBHcyh7bW9kZTpyLGNvbG9yOmUsYWxwaGE6dH0pe2xldCBpPXQhPT12b2lkIDA7cmV0dXJuIHI9PT0icmdiYSJ8fHI9PT0iaHNsYSI/YCR7cn0oJHtlLmpvaW4oIiwgIil9JHtpP2AsICR7dH1gOiIifSlgOmAke3J9KCR7ZS5qb2luKCIgIil9JHtpP2AgLyAke3R9YDoiIn0pYH12YXIganYsenYsQXQsSmkscWYsQ3QsVXYsVnYsUXM9UCgoKT0+e3UoKTtEZigpO2p2PS9eIyhbYS1mXGRdezJ9KShbYS1mXGRdezJ9KShbYS1mXGRdezJ9KShbYS1mXGRdezJ9KT8kL2ksenY9L14jKFthLWZcZF0pKFthLWZcZF0pKFthLWZcZF0pKFthLWZcZF0pPyQvaSxBdD0vKD86XGQrfFxkKlwuXGQrKSU/LyxKaT0vKD86XHMqLFxzKnxccyspLyxxZj0vXHMqWywvXVxzKi8sQ3Q9L3ZhclwoLS0oPzpbXiApXSo/KSg/OiwoPzpbXiApXSo/fHZhclwoLS1bXiApXSo/XCkpKT9cKS8sVXY9bmV3IFJlZ0V4cChgXihyZ2JhPylcXChcXHMqKCR7QXQuc291cmNlfXwke0N0LnNvdXJjZX0pKD86JHtKaS5zb3VyY2V9KCR7QXQuc291cmNlfXwke0N0LnNvdXJjZX0pKT8oPzoke0ppLnNvdXJjZX0oJHtBdC5zb3VyY2V9fCR7Q3Quc291cmNlfSkpPyg/OiR7cWYuc291cmNlfSgke0F0LnNvdXJjZX18JHtDdC5zb3VyY2V9KSk/XFxzKlxcKSRgKSxWdj1uZXcgUmVnRXhwKGBeKGhzbGE/KVxcKFxccyooKD86JHtBdC5zb3VyY2V9KSg/OmRlZ3xyYWR8Z3JhZHx0dXJuKT98JHtDdC5zb3VyY2V9KSg/OiR7Smkuc291cmNlfSgke0F0LnNvdXJjZX18JHtDdC5zb3VyY2V9KSk/KD86JHtKaS5zb3VyY2V9KCR7QXQuc291cmNlfXwke0N0LnNvdXJjZX0pKT8oPzoke3FmLnNvdXJjZX0oJHtBdC5zb3VyY2V9fCR7Q3Quc291cmNlfSkpP1xccypcXCkkYCl9KTtmdW5jdGlvbiBKZShyLGUsdCl7aWYodHlwZW9mIHI9PSJmdW5jdGlvbiIpcmV0dXJuIHIoe29wYWNpdHlWYWx1ZTplfSk7bGV0IGk9JHIocix7bG9vc2U6ITB9KTtyZXR1cm4gaT09PW51bGw/dDpHcyh7Li4uaSxhbHBoYTplfSl9ZnVuY3Rpb24gQWUoe2NvbG9yOnIscHJvcGVydHk6ZSx2YXJpYWJsZTp0fSl7bGV0IGk9W10uY29uY2F0KGUpO2lmKHR5cGVvZiByPT0iZnVuY3Rpb24iKXJldHVybntbdF06IjEiLC4uLk9iamVjdC5mcm9tRW50cmllcyhpLm1hcChzPT5bcyxyKHtvcGFjaXR5VmFyaWFibGU6dCxvcGFjaXR5VmFsdWU6YHZhcigke3R9LCAxKWB9KV0pKX07bGV0IG49JHIocik7cmV0dXJuIG49PT1udWxsP09iamVjdC5mcm9tRW50cmllcyhpLm1hcChzPT5bcyxyXSkpOm4uYWxwaGEhPT12b2lkIDA/T2JqZWN0LmZyb21FbnRyaWVzKGkubWFwKHM9PltzLHJdKSk6e1t0XToiMSIsLi4uT2JqZWN0LmZyb21FbnRyaWVzKGkubWFwKHM9PltzLEdzKHsuLi5uLGFscGhhOmB2YXIoJHt0fSwgMSlgfSldKSl9fXZhciBMcj1QKCgpPT57dSgpO1FzKCl9KTtmdW5jdGlvbiB2ZShyLGUpe2xldCB0PVtdLGk9W10sbj0wLHM9ITE7Zm9yKGxldCBhPTA7YTxyLmxlbmd0aDthKyspe2xldCBvPXJbYV07dC5sZW5ndGg9PT0wJiZvPT09ZVswXSYmIXMmJihlLmxlbmd0aD09PTF8fHIuc2xpY2UoYSxhK2UubGVuZ3RoKT09PWUpJiYoaS5wdXNoKHIuc2xpY2UobixhKSksbj1hK2UubGVuZ3RoKSxzPXM/ITE6bz09PSJcXCIsbz09PSIoInx8bz09PSJbInx8bz09PSJ7Ij90LnB1c2gobyk6KG89PT0iKSImJnRbdC5sZW5ndGgtMV09PT0iKCJ8fG89PT0iXSImJnRbdC5sZW5ndGgtMV09PT0iWyJ8fG89PT0ifSImJnRbdC5sZW5ndGgtMV09PT0ieyIpJiZ0LnBvcCgpfXJldHVybiBpLnB1c2goci5zbGljZShuKSksaX12YXIgenQ9UCgoKT0+e3UoKX0pO2Z1bmN0aW9uIGVuKHIpe3JldHVybiB2ZShyLCIsIikubWFwKHQ9PntsZXQgaT10LnRyaW0oKSxuPXtyYXc6aX0scz1pLnNwbGl0KFd2KSxhPW5ldyBTZXQ7Zm9yKGxldCBvIG9mIHMpJGYubGFzdEluZGV4PTAsIWEuaGFzKCJLRVlXT1JEIikmJkh2LmhhcyhvKT8obi5rZXl3b3JkPW8sYS5hZGQoIktFWVdPUkQiKSk6JGYudGVzdChvKT9hLmhhcygiWCIpP2EuaGFzKCJZIik/YS5oYXMoIkJMVVIiKT9hLmhhcygiU1BSRUFEIil8fChuLnNwcmVhZD1vLGEuYWRkKCJTUFJFQUQiKSk6KG4uYmx1cj1vLGEuYWRkKCJCTFVSIikpOihuLnk9byxhLmFkZCgiWSIpKToobi54PW8sYS5hZGQoIlgiKSk6bi5jb2xvcj8obi51bmtub3dufHwobi51bmtub3duPVtdKSxuLnVua25vd24ucHVzaChvKSk6bi5jb2xvcj1vO3JldHVybiBuLnZhbGlkPW4ueCE9PXZvaWQgMCYmbi55IT09dm9pZCAwLG59KX1mdW5jdGlvbiBMZihyKXtyZXR1cm4gci5tYXAoZT0+ZS52YWxpZD9bZS5rZXl3b3JkLGUueCxlLnksZS5ibHVyLGUuc3ByZWFkLGUuY29sb3JdLmZpbHRlcihCb29sZWFuKS5qb2luKCIgIik6ZS5yYXcpLmpvaW4oIiwgIil9dmFyIEh2LFd2LCRmLFlzPVAoKCk9Pnt1KCk7enQoKTtIdj1uZXcgU2V0KFsiaW5zZXQiLCJpbmhlcml0IiwiaW5pdGlhbCIsInJldmVydCIsInVuc2V0Il0pLFd2PS9cICsoPyFbXihdKlwpKS9nLCRmPS9eLT8oXGQrfFwuXGQrKSguKj8pJC9nfSk7ZnVuY3Rpb24gS3Mocil7cmV0dXJuIEd2LnNvbWUoZT0+bmV3IFJlZ0V4cChgXiR7ZX1cXCguKlxcKWApLnRlc3QocikpfWZ1bmN0aW9uIEsocixlPW51bGwsdD0hMCl7bGV0IGk9ZSYmUXYuaGFzKGUucHJvcGVydHkpO3JldHVybiByLnN0YXJ0c1dpdGgoIi0tIikmJiFpP2B2YXIoJHtyfSlgOnIuaW5jbHVkZXMoInVybCgiKT9yLnNwbGl0KC8odXJsXCguKj9cKSkvZykuZmlsdGVyKEJvb2xlYW4pLm1hcChuPT4vXnVybFwoLio/XCkkLy50ZXN0KG4pP246SyhuLGUsITEpKS5qb2luKCIiKToocj1yLnJlcGxhY2UoLyhbXlxcXSlfKy9nLChuLHMpPT5zKyIgIi5yZXBlYXQobi5sZW5ndGgtMSkpLnJlcGxhY2UoL15fL2csIiAiKS5yZXBsYWNlKC9cXF8vZywiXyIpLHQmJihyPXIudHJpbSgpKSxyPVl2KHIpLHIpfWZ1bmN0aW9uIFllKHIpe3JldHVybiByLmluY2x1ZGVzKCI9IikmJihyPXIucmVwbGFjZSgvKD0uKikvZywoZSx0KT0+e2lmKHRbMV09PT0iJyJ8fHRbMV09PT0nIicpcmV0dXJuIHQ7aWYodC5sZW5ndGg+Mil7bGV0IGk9dFt0Lmxlbmd0aC0xXTtpZih0W3QubGVuZ3RoLTJdPT09IiAiJiYoaT09PSJpInx8aT09PSJJInx8aT09PSJzInx8aT09PSJTIikpcmV0dXJuYD0iJHt0LnNsaWNlKDEsLTIpfSIgJHt0W3QubGVuZ3RoLTFdfWB9cmV0dXJuYD0iJHt0LnNsaWNlKDEpfSJgfSkpLHJ9ZnVuY3Rpb24gWXYocil7bGV0IGU9WyJ0aGVtZSJdLHQ9WyJtaW4tY29udGVudCIsIm1heC1jb250ZW50IiwiZml0LWNvbnRlbnQiLCJzYWZlLWFyZWEtaW5zZXQtdG9wIiwic2FmZS1hcmVhLWluc2V0LXJpZ2h0Iiwic2FmZS1hcmVhLWluc2V0LWJvdHRvbSIsInNhZmUtYXJlYS1pbnNldC1sZWZ0IiwidGl0bGViYXItYXJlYS14IiwidGl0bGViYXItYXJlYS15IiwidGl0bGViYXItYXJlYS13aWR0aCIsInRpdGxlYmFyLWFyZWEtaGVpZ2h0Iiwia2V5Ym9hcmQtaW5zZXQtdG9wIiwia2V5Ym9hcmQtaW5zZXQtcmlnaHQiLCJrZXlib2FyZC1pbnNldC1ib3R0b20iLCJrZXlib2FyZC1pbnNldC1sZWZ0Iiwia2V5Ym9hcmQtaW5zZXQtd2lkdGgiLCJrZXlib2FyZC1pbnNldC1oZWlnaHQiLCJyYWRpYWwtZ3JhZGllbnQiLCJsaW5lYXItZ3JhZGllbnQiLCJjb25pYy1ncmFkaWVudCIsInJlcGVhdGluZy1yYWRpYWwtZ3JhZGllbnQiLCJyZXBlYXRpbmctbGluZWFyLWdyYWRpZW50IiwicmVwZWF0aW5nLWNvbmljLWdyYWRpZW50IiwiYW5jaG9yLXNpemUiXTtyZXR1cm4gci5yZXBsYWNlKC8oY2FsY3xtaW58bWF4fGNsYW1wKVwoLitcKS9nLGk9PntsZXQgbj0iIjtmdW5jdGlvbiBzKCl7bGV0IGE9bi50cmltRW5kKCk7cmV0dXJuIGFbYS5sZW5ndGgtMV19Zm9yKGxldCBhPTA7YTxpLmxlbmd0aDthKyspe2xldCBvPWZ1bmN0aW9uKGYpe3JldHVybiBmLnNwbGl0KCIiKS5ldmVyeSgoZCxwKT0+aVthK3BdPT09ZCl9LGw9ZnVuY3Rpb24oZil7bGV0IGQ9MS8wO2ZvcihsZXQgaCBvZiBmKXtsZXQgYj1pLmluZGV4T2YoaCxhKTtiIT09LTEmJmI8ZCYmKGQ9Yil9bGV0IHA9aS5zbGljZShhLGQpO3JldHVybiBhKz1wLmxlbmd0aC0xLHB9LGM9aVthXTtpZihvKCJ2YXIiKSluKz1sKFsiKSIsIiwiXSk7ZWxzZSBpZih0LnNvbWUoZj0+byhmKSkpe2xldCBmPXQuZmluZChkPT5vKGQpKTtuKz1mLGErPWYubGVuZ3RoLTF9ZWxzZSBlLnNvbWUoZj0+byhmKSk/bis9bChbIikiXSk6bygiWyIpP24rPWwoWyJdIl0pOlsiKyIsIi0iLCIqIiwiLyJdLmluY2x1ZGVzKGMpJiYhWyIoIiwiKyIsIi0iLCIqIiwiLyIsIiwiXS5pbmNsdWRlcyhzKCkpP24rPWAgJHtjfSBgOm4rPWN9cmV0dXJuIG4ucmVwbGFjZSgvXHMrL2csIiAiKX0pfWZ1bmN0aW9uIFhzKHIpe3JldHVybiByLnN0YXJ0c1dpdGgoInVybCgiKX1mdW5jdGlvbiBacyhyKXtyZXR1cm4haXNOYU4oTnVtYmVyKHIpKXx8S3Mocil9ZnVuY3Rpb24gTXIocil7cmV0dXJuIHIuZW5kc1dpdGgoIiUiKSYmWnMoci5zbGljZSgwLC0xKSl8fEtzKHIpfWZ1bmN0aW9uIE5yKHIpe3JldHVybiByPT09IjAifHxuZXcgUmVnRXhwKGBeWystXT9bMC05XSouP1swLTldKyg/OltlRV1bKy1dP1swLTldKyk/JHtYdn0kYCkudGVzdChyKXx8S3Mocil9ZnVuY3Rpb24gTWYocil7cmV0dXJuIFp2LmhhcyhyKX1mdW5jdGlvbiBOZihyKXtsZXQgZT1lbihLKHIpKTtmb3IobGV0IHQgb2YgZSlpZighdC52YWxpZClyZXR1cm4hMTtyZXR1cm4hMH1mdW5jdGlvbiBCZihyKXtsZXQgZT0wO3JldHVybiB2ZShyLCJfIikuZXZlcnkoaT0+KGk9SyhpKSxpLnN0YXJ0c1dpdGgoInZhcigiKT8hMDokcihpLHtsb29zZTohMH0pIT09bnVsbD8oZSsrLCEwKTohMSkpP2U+MDohMX1mdW5jdGlvbiBGZihyKXtsZXQgZT0wO3JldHVybiB2ZShyLCIsIikuZXZlcnkoaT0+KGk9SyhpKSxpLnN0YXJ0c1dpdGgoInZhcigiKT8hMDpYcyhpKXx8ZXgoaSl8fFsiZWxlbWVudCgiLCJpbWFnZSgiLCJjcm9zcy1mYWRlKCIsImltYWdlLXNldCgiXS5zb21lKG49Pmkuc3RhcnRzV2l0aChuKSk/KGUrKywhMCk6ITEpKT9lPjA6ITF9ZnVuY3Rpb24gZXgocil7cj1LKHIpO2ZvcihsZXQgZSBvZiBKdilpZihyLnN0YXJ0c1dpdGgoYCR7ZX0oYCkpcmV0dXJuITA7cmV0dXJuITF9ZnVuY3Rpb24gamYocil7bGV0IGU9MDtyZXR1cm4gdmUociwiXyIpLmV2ZXJ5KGk9PihpPUsoaSksaS5zdGFydHNXaXRoKCJ2YXIoIik/ITA6dHguaGFzKGkpfHxOcihpKXx8TXIoaSk/KGUrKywhMCk6ITEpKT9lPjA6ITF9ZnVuY3Rpb24gemYocil7bGV0IGU9MDtyZXR1cm4gdmUociwiLCIpLmV2ZXJ5KGk9PihpPUsoaSksaS5zdGFydHNXaXRoKCJ2YXIoIik/ITA6aS5pbmNsdWRlcygiICIpJiYhLyhbJyJdKShbXiInXSspXDEvZy50ZXN0KGkpfHwvXlxkL2cudGVzdChpKT8hMTooZSsrLCEwKSkpP2U+MDohMX1mdW5jdGlvbiBVZihyKXtyZXR1cm4gcnguaGFzKHIpfWZ1bmN0aW9uIFZmKHIpe3JldHVybiBpeC5oYXMocil9ZnVuY3Rpb24gSGYocil7cmV0dXJuIG54LmhhcyhyKX12YXIgR3YsUXYsS3YsWHYsWnYsSnYsdHgscngsaXgsbngsQnI9UCgoKT0+e3UoKTtRcygpO1lzKCk7enQoKTtHdj1bIm1pbiIsIm1heCIsImNsYW1wIiwiY2FsYyJdO1F2PW5ldyBTZXQoWyJzY3JvbGwtdGltZWxpbmUtbmFtZSIsInRpbWVsaW5lLXNjb3BlIiwidmlldy10aW1lbGluZS1uYW1lIiwiZm9udC1wYWxldHRlIiwiYW5jaG9yLW5hbWUiLCJhbmNob3Itc2NvcGUiLCJwb3NpdGlvbi1hbmNob3IiLCJwb3NpdGlvbi10cnktb3B0aW9ucyIsInNjcm9sbC10aW1lbGluZSIsImFuaW1hdGlvbi10aW1lbGluZSIsInZpZXctdGltZWxpbmUiLCJwb3NpdGlvbi10cnkiXSk7S3Y9WyJjbSIsIm1tIiwiUSIsImluIiwicGMiLCJwdCIsInB4IiwiZW0iLCJleCIsImNoIiwicmVtIiwibGgiLCJybGgiLCJ2dyIsInZoIiwidm1pbiIsInZtYXgiLCJ2YiIsInZpIiwic3Z3Iiwic3ZoIiwibHZ3IiwibHZoIiwiZHZ3IiwiZHZoIiwiY3F3IiwiY3FoIiwiY3FpIiwiY3FiIiwiY3FtaW4iLCJjcW1heCJdLFh2PWAoPzoke0t2LmpvaW4oInwiKX0pYDtadj1uZXcgU2V0KFsidGhpbiIsIm1lZGl1bSIsInRoaWNrIl0pO0p2PW5ldyBTZXQoWyJjb25pYy1ncmFkaWVudCIsImxpbmVhci1ncmFkaWVudCIsInJhZGlhbC1ncmFkaWVudCIsInJlcGVhdGluZy1jb25pYy1ncmFkaWVudCIsInJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQiLCJyZXBlYXRpbmctcmFkaWFsLWdyYWRpZW50Il0pO3R4PW5ldyBTZXQoWyJjZW50ZXIiLCJ0b3AiLCJyaWdodCIsImJvdHRvbSIsImxlZnQiXSk7cng9bmV3IFNldChbInNlcmlmIiwic2Fucy1zZXJpZiIsIm1vbm9zcGFjZSIsImN1cnNpdmUiLCJmYW50YXN5Iiwic3lzdGVtLXVpIiwidWktc2VyaWYiLCJ1aS1zYW5zLXNlcmlmIiwidWktbW9ub3NwYWNlIiwidWktcm91bmRlZCIsIm1hdGgiLCJlbW9qaSIsImZhbmdzb25nIl0pO2l4PW5ldyBTZXQoWyJ4eC1zbWFsbCIsIngtc21hbGwiLCJzbWFsbCIsIm1lZGl1bSIsImxhcmdlIiwieC1sYXJnZSIsInh4LWxhcmdlIiwieHh4LWxhcmdlIl0pO254PW5ldyBTZXQoWyJsYXJnZXIiLCJzbWFsbGVyIl0pfSk7ZnVuY3Rpb24gV2Yocil7bGV0IGU9WyJjb3ZlciIsImNvbnRhaW4iXTtyZXR1cm4gdmUociwiLCIpLmV2ZXJ5KHQ9PntsZXQgaT12ZSh0LCJfIikuZmlsdGVyKEJvb2xlYW4pO3JldHVybiBpLmxlbmd0aD09PTEmJmUuaW5jbHVkZXMoaVswXSk/ITA6aS5sZW5ndGghPT0xJiZpLmxlbmd0aCE9PTI/ITE6aS5ldmVyeShuPT5OcihuKXx8TXIobil8fG49PT0iYXV0byIpfSl9dmFyIEdmPVAoKCk9Pnt1KCk7QnIoKTt6dCgpfSk7ZnVuY3Rpb24gUWYocixlKXtyLndhbGtDbGFzc2VzKHQ9Pnt0LnZhbHVlPWUodC52YWx1ZSksdC5yYXdzJiZ0LnJhd3MudmFsdWUmJih0LnJhd3MudmFsdWU9anQodC5yYXdzLnZhbHVlKSl9KX1mdW5jdGlvbiBZZihyLGUpe2lmKCFfdChyKSlyZXR1cm47bGV0IHQ9ci5zbGljZSgxLC0xKTtpZighIWUodCkpcmV0dXJuIEsodCl9ZnVuY3Rpb24gc3gocixlPXt9LHQpe2xldCBpPWVbcl07aWYoaSE9PXZvaWQgMClyZXR1cm4geHQoaSk7aWYoX3Qocikpe2xldCBuPVlmKHIsdCk7cmV0dXJuIG49PT12b2lkIDA/dm9pZCAwOnh0KG4pfX1mdW5jdGlvbiB0bihyLGU9e30se3ZhbGlkYXRlOnQ9KCk9PiEwfT17fSl7bGV0IGk9ZS52YWx1ZXM/LltyXTtyZXR1cm4gaSE9PXZvaWQgMD9pOmUuc3VwcG9ydHNOZWdhdGl2ZVZhbHVlcyYmci5zdGFydHNXaXRoKCItIik/c3goci5zbGljZSgxKSxlLnZhbHVlcyx0KTpZZihyLHQpfWZ1bmN0aW9uIF90KHIpe3JldHVybiByLnN0YXJ0c1dpdGgoIlsiKSYmci5lbmRzV2l0aCgiXSIpfWZ1bmN0aW9uIEtmKHIpe2xldCBlPXIubGFzdEluZGV4T2YoIi8iKSx0PXIubGFzdEluZGV4T2YoIlsiLGUpLGk9ci5pbmRleE9mKCJdIixlKTtyZXR1cm4gcltlLTFdPT09Il0ifHxyW2UrMV09PT0iWyJ8fHQhPT0tMSYmaSE9PS0xJiZ0PGUmJmU8aSYmKGU9ci5sYXN0SW5kZXhPZigiLyIsdCkpLGU9PT0tMXx8ZT09PXIubGVuZ3RoLTE/W3Isdm9pZCAwXTpfdChyKSYmIXIuaW5jbHVkZXMoIl0vWyIpP1tyLHZvaWQgMF06W3Iuc2xpY2UoMCxlKSxyLnNsaWNlKGUrMSldfWZ1bmN0aW9uIFh0KHIpe2lmKHR5cGVvZiByPT0ic3RyaW5nIiYmci5pbmNsdWRlcygiPGFscGhhLXZhbHVlPiIpKXtsZXQgZT1yO3JldHVybih7b3BhY2l0eVZhbHVlOnQ9MX0pPT5lLnJlcGxhY2UoLzxhbHBoYS12YWx1ZT4vZyx0KX1yZXR1cm4gcn1mdW5jdGlvbiBYZihyKXtyZXR1cm4gSyhyLnNsaWNlKDEsLTEpKX1mdW5jdGlvbiBheChyLGU9e30se3RhaWx3aW5kQ29uZmlnOnQ9e319PXt9KXtpZihlLnZhbHVlcz8uW3JdIT09dm9pZCAwKXJldHVybiBYdChlLnZhbHVlcz8uW3JdKTtsZXRbaSxuXT1LZihyKTtpZihuIT09dm9pZCAwKXtsZXQgcz1lLnZhbHVlcz8uW2ldPz8oX3QoaSk/aS5zbGljZSgxLC0xKTp2b2lkIDApO3JldHVybiBzPT09dm9pZCAwP3ZvaWQgMDoocz1YdChzKSxfdChuKT9KZShzLFhmKG4pKTp0LnRoZW1lPy5vcGFjaXR5Py5bbl09PT12b2lkIDA/dm9pZCAwOkplKHMsdC50aGVtZS5vcGFjaXR5W25dKSl9cmV0dXJuIHRuKHIsZSx7dmFsaWRhdGU6QmZ9KX1mdW5jdGlvbiBveChyLGU9e30pe3JldHVybiBlLnZhbHVlcz8uW3JdfWZ1bmN0aW9uIHFlKHIpe3JldHVybihlLHQpPT50bihlLHQse3ZhbGlkYXRlOnJ9KX1mdW5jdGlvbiBseChyLGUpe2xldCB0PXIuaW5kZXhPZihlKTtyZXR1cm4gdD09PS0xP1t2b2lkIDAscl06W3Iuc2xpY2UoMCx0KSxyLnNsaWNlKHQrMSldfWZ1bmN0aW9uIGVhKHIsZSx0LGkpe2lmKHQudmFsdWVzJiZlIGluIHQudmFsdWVzKWZvcihsZXR7dHlwZTpzfW9mIHI/P1tdKXtsZXQgYT1Kc1tzXShlLHQse3RhaWx3aW5kQ29uZmlnOml9KTtpZihhIT09dm9pZCAwKXJldHVyblthLHMsbnVsbF19aWYoX3QoZSkpe2xldCBzPWUuc2xpY2UoMSwtMSksW2Esb109bHgocywiOiIpO2lmKCEvXltcdy1fXSskL2cudGVzdChhKSlvPXM7ZWxzZSBpZihhIT09dm9pZCAwJiYhWmYuaW5jbHVkZXMoYSkpcmV0dXJuW107aWYoby5sZW5ndGg+MCYmWmYuaW5jbHVkZXMoYSkpcmV0dXJuW3RuKGBbJHtvfV1gLHQpLGEsbnVsbF19bGV0IG49dGEocixlLHQsaSk7Zm9yKGxldCBzIG9mIG4pcmV0dXJuIHM7cmV0dXJuW119ZnVuY3Rpb24qdGEocixlLHQsaSl7bGV0IG49d2UoaSwiZ2VuZXJhbGl6ZWRNb2RpZmllcnMiKSxbcyxhXT1LZihlKTtpZihuJiZ0Lm1vZGlmaWVycyE9bnVsbCYmKHQubW9kaWZpZXJzPT09ImFueSJ8fHR5cGVvZiB0Lm1vZGlmaWVycz09Im9iamVjdCImJihhJiZfdChhKXx8YSBpbiB0Lm1vZGlmaWVycykpfHwocz1lLGE9dm9pZCAwKSxhIT09dm9pZCAwJiZzPT09IiImJihzPSJERUZBVUxUIiksYSE9PXZvaWQgMCYmdHlwZW9mIHQubW9kaWZpZXJzPT0ib2JqZWN0Iil7bGV0IGw9dC5tb2RpZmllcnM/LlthXT8/bnVsbDtsIT09bnVsbD9hPWw6X3QoYSkmJihhPVhmKGEpKX1mb3IobGV0e3R5cGU6bH1vZiByPz9bXSl7bGV0IGM9SnNbbF0ocyx0LHt0YWlsd2luZENvbmZpZzppfSk7YyE9PXZvaWQgMCYmKHlpZWxkW2MsbCxhPz9udWxsXSl9fXZhciBKcyxaZixGcj1QKCgpPT57dSgpO1ppKCk7THIoKTtCcigpO0dpKCk7R2YoKTtjdCgpO0pzPXthbnk6dG4sY29sb3I6YXgsdXJsOnFlKFhzKSxpbWFnZTpxZShGZiksbGVuZ3RoOnFlKE5yKSxwZXJjZW50YWdlOnFlKE1yKSxwb3NpdGlvbjpxZShqZiksbG9va3VwOm94LCJnZW5lcmljLW5hbWUiOnFlKFVmKSwiZmFtaWx5LW5hbWUiOnFlKHpmKSxudW1iZXI6cWUoWnMpLCJsaW5lLXdpZHRoIjpxZShNZiksImFic29sdXRlLXNpemUiOnFlKFZmKSwicmVsYXRpdmUtc2l6ZSI6cWUoSGYpLHNoYWRvdzpxZShOZiksc2l6ZTpxZShXZil9LFpmPU9iamVjdC5rZXlzKEpzKX0pO2Z1bmN0aW9uIFgocil7cmV0dXJuIHR5cGVvZiByPT0iZnVuY3Rpb24iP3Ioe30pOnJ9dmFyIHJhPVAoKCk9Pnt1KCl9KTtmdW5jdGlvbiBadChyKXtyZXR1cm4gdHlwZW9mIHI9PSJmdW5jdGlvbiJ9ZnVuY3Rpb24ganIociwuLi5lKXtsZXQgdD1lLnBvcCgpO2ZvcihsZXQgaSBvZiBlKWZvcihsZXQgbiBpbiBpKXtsZXQgcz10KHJbbl0saVtuXSk7cz09PXZvaWQgMD9rZShyW25dKSYma2UoaVtuXSk/cltuXT1qcih7fSxyW25dLGlbbl0sdCk6cltuXT1pW25dOnJbbl09c31yZXR1cm4gcn1mdW5jdGlvbiB1eChyLC4uLmUpe3JldHVybiBadChyKT9yKC4uLmUpOnJ9ZnVuY3Rpb24gZngocil7cmV0dXJuIHIucmVkdWNlKChlLHtleHRlbmQ6dH0pPT5qcihlLHQsKGksbik9Pmk9PT12b2lkIDA/W25dOkFycmF5LmlzQXJyYXkoaSk/W24sLi4uaV06W24saV0pLHt9KX1mdW5jdGlvbiBjeChyKXtyZXR1cm57Li4uci5yZWR1Y2UoKGUsdCk9PkhzKGUsdCkse30pLGV4dGVuZDpmeChyKX19ZnVuY3Rpb24gSmYocixlKXtpZihBcnJheS5pc0FycmF5KHIpJiZrZShyWzBdKSlyZXR1cm4gci5jb25jYXQoZSk7aWYoQXJyYXkuaXNBcnJheShlKSYma2UoZVswXSkmJmtlKHIpKXJldHVybltyLC4uLmVdO2lmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIGV9ZnVuY3Rpb24gcHgoe2V4dGVuZDpyLC4uLmV9KXtyZXR1cm4ganIoZSxyLCh0LGkpPT4hWnQodCkmJiFpLnNvbWUoWnQpP2pyKHt9LHQsLi4uaSxKZik6KG4scyk9PmpyKHt9LC4uLlt0LC4uLmldLm1hcChhPT51eChhLG4scykpLEpmKSl9ZnVuY3Rpb24qZHgocil7bGV0IGU9a3Qocik7aWYoZS5sZW5ndGg9PT0wfHwoeWllbGQgZSxBcnJheS5pc0FycmF5KHIpKSlyZXR1cm47bGV0IHQ9L14oLio/KVxzKlwvXHMqKFteL10rKSQvLGk9ci5tYXRjaCh0KTtpZihpIT09bnVsbCl7bGV0WyxuLHNdPWksYT1rdChuKTthLmFscGhhPXMseWllbGQgYX19ZnVuY3Rpb24gaHgocil7bGV0IGU9KHQsaSk9Pntmb3IobGV0IG4gb2YgZHgodCkpe2xldCBzPTAsYT1yO2Zvcig7YSE9bnVsbCYmczxuLmxlbmd0aDspYT1hW25bcysrXV0sYT1adChhKSYmKG4uYWxwaGE9PT12b2lkIDB8fHM8PW4ubGVuZ3RoLTEpP2EoZSxpYSk6YTtpZihhIT09dm9pZCAwKXtpZihuLmFscGhhIT09dm9pZCAwKXtsZXQgbz1YdChhKTtyZXR1cm4gSmUobyxuLmFscGhhLFgobykpfXJldHVybiBrZShhKT9TdChhKTphfX1yZXR1cm4gaX07cmV0dXJuIE9iamVjdC5hc3NpZ24oZSx7dGhlbWU6ZSwuLi5pYX0pLE9iamVjdC5rZXlzKHIpLnJlZHVjZSgodCxpKT0+KHRbaV09WnQocltpXSk/cltpXShlLGlhKTpyW2ldLHQpLHt9KX1mdW5jdGlvbiBlYyhyKXtsZXQgZT1bXTtyZXR1cm4gci5mb3JFYWNoKHQ9PntlPVsuLi5lLHRdO2xldCBpPXQ/LnBsdWdpbnM/P1tdO2kubGVuZ3RoIT09MCYmaS5mb3JFYWNoKG49PntuLl9faXNPcHRpb25zRnVuY3Rpb24mJihuPW4oKSksZT1bLi4uZSwuLi5lYyhbbj8uY29uZmlnPz97fV0pXX0pfSksZX1mdW5jdGlvbiBteChyKXtyZXR1cm5bLi4ucl0ucmVkdWNlUmlnaHQoKHQsaSk9Plp0KGkpP2koe2NvcmVQbHVnaW5zOnR9KTprZihpLHQpLHZmKX1mdW5jdGlvbiBneChyKXtyZXR1cm5bLi4ucl0ucmVkdWNlUmlnaHQoKHQsaSk9PlsuLi50LC4uLmldLFtdKX1mdW5jdGlvbiBuYShyKXtsZXQgZT1bLi4uZWMocikse3ByZWZpeDoiIixpbXBvcnRhbnQ6ITEsc2VwYXJhdG9yOiI6In1dO3JldHVybiBQZihIcyh7dGhlbWU6aHgocHgoY3goZS5tYXAodD0+dD8udGhlbWU/P3t9KSkpKSxjb3JlUGx1Z2luczpteChlLm1hcCh0PT50LmNvcmVQbHVnaW5zKSkscGx1Z2luczpneChyLm1hcCh0PT50Py5wbHVnaW5zPz9bXSkpfSwuLi5lKSl9dmFyIGlhLHRjPVAoKCk9Pnt1KCk7R2koKTt4ZigpO1NmKCk7VnMoKTtFZigpO1lpKCk7SWYoKTtLdCgpO1hpKCk7RnIoKTtMcigpO3JhKCk7aWE9e2NvbG9yczpVcyxuZWdhdGl2ZShyKXtyZXR1cm4gT2JqZWN0LmtleXMocikuZmlsdGVyKGU9PnJbZV0hPT0iMCIpLnJlZHVjZSgoZSx0KT0+e2xldCBpPXh0KHJbdF0pO3JldHVybiBpIT09dm9pZCAwJiYoZVtgLSR7dH1gXT1pKSxlfSx7fSl9LGJyZWFrcG9pbnRzKHIpe3JldHVybiBPYmplY3Qua2V5cyhyKS5maWx0ZXIoZT0+dHlwZW9mIHJbZV09PSJzdHJpbmciKS5yZWR1Y2UoKGUsdCk9Pih7Li4uZSxbYHNjcmVlbi0ke3R9YF06clt0XX0pLHt9KX19fSk7dmFyIHJuPXgoKGYzLHJjKT0+e3UoKTtyYy5leHBvcnRzPXtjb250ZW50OltdLHByZXNldHM6W10sZGFya01vZGU6Im1lZGlhIix0aGVtZTp7YWNjZW50Q29sb3I6KHt0aGVtZTpyfSk9Pih7Li4ucigiY29sb3JzIiksYXV0bzoiYXV0byJ9KSxhbmltYXRpb246e25vbmU6Im5vbmUiLHNwaW46InNwaW4gMXMgbGluZWFyIGluZmluaXRlIixwaW5nOiJwaW5nIDFzIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpIGluZmluaXRlIixwdWxzZToicHVsc2UgMnMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC42LCAxKSBpbmZpbml0ZSIsYm91bmNlOiJib3VuY2UgMXMgaW5maW5pdGUifSxhcmlhOntidXN5OididXN5PSJ0cnVlIicsY2hlY2tlZDonY2hlY2tlZD0idHJ1ZSInLGRpc2FibGVkOidkaXNhYmxlZD0idHJ1ZSInLGV4cGFuZGVkOidleHBhbmRlZD0idHJ1ZSInLGhpZGRlbjonaGlkZGVuPSJ0cnVlIicscHJlc3NlZDoncHJlc3NlZD0idHJ1ZSInLHJlYWRvbmx5OidyZWFkb25seT0idHJ1ZSInLHJlcXVpcmVkOidyZXF1aXJlZD0idHJ1ZSInLHNlbGVjdGVkOidzZWxlY3RlZD0idHJ1ZSInfSxhc3BlY3RSYXRpbzp7YXV0bzoiYXV0byIsc3F1YXJlOiIxIC8gMSIsdmlkZW86IjE2IC8gOSJ9LGJhY2tkcm9wQmx1cjooe3RoZW1lOnJ9KT0+cigiYmx1ciIpLGJhY2tkcm9wQnJpZ2h0bmVzczooe3RoZW1lOnJ9KT0+cigiYnJpZ2h0bmVzcyIpLGJhY2tkcm9wQ29udHJhc3Q6KHt0aGVtZTpyfSk9PnIoImNvbnRyYXN0IiksYmFja2Ryb3BHcmF5c2NhbGU6KHt0aGVtZTpyfSk9PnIoImdyYXlzY2FsZSIpLGJhY2tkcm9wSHVlUm90YXRlOih7dGhlbWU6cn0pPT5yKCJodWVSb3RhdGUiKSxiYWNrZHJvcEludmVydDooe3RoZW1lOnJ9KT0+cigiaW52ZXJ0IiksYmFja2Ryb3BPcGFjaXR5Oih7dGhlbWU6cn0pPT5yKCJvcGFjaXR5IiksYmFja2Ryb3BTYXR1cmF0ZTooe3RoZW1lOnJ9KT0+cigic2F0dXJhdGUiKSxiYWNrZHJvcFNlcGlhOih7dGhlbWU6cn0pPT5yKCJzZXBpYSIpLGJhY2tncm91bmRDb2xvcjooe3RoZW1lOnJ9KT0+cigiY29sb3JzIiksYmFja2dyb3VuZEltYWdlOntub25lOiJub25lIiwiZ3JhZGllbnQtdG8tdCI6ImxpbmVhci1ncmFkaWVudCh0byB0b3AsIHZhcigtLXR3LWdyYWRpZW50LXN0b3BzKSkiLCJncmFkaWVudC10by10ciI6ImxpbmVhci1ncmFkaWVudCh0byB0b3AgcmlnaHQsIHZhcigtLXR3LWdyYWRpZW50LXN0b3BzKSkiLCJncmFkaWVudC10by1yIjoibGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCB2YXIoLS10dy1ncmFkaWVudC1zdG9wcykpIiwiZ3JhZGllbnQtdG8tYnIiOiJsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tIHJpZ2h0LCB2YXIoLS10dy1ncmFkaWVudC1zdG9wcykpIiwiZ3JhZGllbnQtdG8tYiI6ImxpbmVhci1ncmFkaWVudCh0byBib3R0b20sIHZhcigtLXR3LWdyYWRpZW50LXN0b3BzKSkiLCJncmFkaWVudC10by1ibCI6ImxpbmVhci1ncmFkaWVudCh0byBib3R0b20gbGVmdCwgdmFyKC0tdHctZ3JhZGllbnQtc3RvcHMpKSIsImdyYWRpZW50LXRvLWwiOiJsaW5lYXItZ3JhZGllbnQodG8gbGVmdCwgdmFyKC0tdHctZ3JhZGllbnQtc3RvcHMpKSIsImdyYWRpZW50LXRvLXRsIjoibGluZWFyLWdyYWRpZW50KHRvIHRvcCBsZWZ0LCB2YXIoLS10dy1ncmFkaWVudC1zdG9wcykpIn0sYmFja2dyb3VuZE9wYWNpdHk6KHt0aGVtZTpyfSk9PnIoIm9wYWNpdHkiKSxiYWNrZ3JvdW5kUG9zaXRpb246e2JvdHRvbToiYm90dG9tIixjZW50ZXI6ImNlbnRlciIsbGVmdDoibGVmdCIsImxlZnQtYm90dG9tIjoibGVmdCBib3R0b20iLCJsZWZ0LXRvcCI6ImxlZnQgdG9wIixyaWdodDoicmlnaHQiLCJyaWdodC1ib3R0b20iOiJyaWdodCBib3R0b20iLCJyaWdodC10b3AiOiJyaWdodCB0b3AiLHRvcDoidG9wIn0sYmFja2dyb3VuZFNpemU6e2F1dG86ImF1dG8iLGNvdmVyOiJjb3ZlciIsY29udGFpbjoiY29udGFpbiJ9LGJsdXI6ezA6IjAiLG5vbmU6IiIsc206IjRweCIsREVGQVVMVDoiOHB4IixtZDoiMTJweCIsbGc6IjE2cHgiLHhsOiIyNHB4IiwiMnhsIjoiNDBweCIsIjN4bCI6IjY0cHgifSxib3JkZXJDb2xvcjooe3RoZW1lOnJ9KT0+KHsuLi5yKCJjb2xvcnMiKSxERUZBVUxUOnIoImNvbG9ycy5ncmF5LjIwMCIsImN1cnJlbnRDb2xvciIpfSksYm9yZGVyT3BhY2l0eTooe3RoZW1lOnJ9KT0+cigib3BhY2l0eSIpLGJvcmRlclJhZGl1czp7bm9uZToiMHB4IixzbToiMC4xMjVyZW0iLERFRkFVTFQ6IjAuMjVyZW0iLG1kOiIwLjM3NXJlbSIsbGc6IjAuNXJlbSIseGw6IjAuNzVyZW0iLCIyeGwiOiIxcmVtIiwiM3hsIjoiMS41cmVtIixmdWxsOiI5OTk5cHgifSxib3JkZXJTcGFjaW5nOih7dGhlbWU6cn0pPT4oey4uLnIoInNwYWNpbmciKX0pLGJvcmRlcldpZHRoOntERUZBVUxUOiIxcHgiLDA6IjBweCIsMjoiMnB4Iiw0OiI0cHgiLDg6IjhweCJ9LGJveFNoYWRvdzp7c206IjAgMXB4IDJweCAwIHJnYigwIDAgMCAvIDAuMDUpIixERUZBVUxUOiIwIDFweCAzcHggMCByZ2IoMCAwIDAgLyAwLjEpLCAwIDFweCAycHggLTFweCByZ2IoMCAwIDAgLyAwLjEpIixtZDoiMCA0cHggNnB4IC0xcHggcmdiKDAgMCAwIC8gMC4xKSwgMCAycHggNHB4IC0ycHggcmdiKDAgMCAwIC8gMC4xKSIsbGc6IjAgMTBweCAxNXB4IC0zcHggcmdiKDAgMCAwIC8gMC4xKSwgMCA0cHggNnB4IC00cHggcmdiKDAgMCAwIC8gMC4xKSIseGw6IjAgMjBweCAyNXB4IC01cHggcmdiKDAgMCAwIC8gMC4xKSwgMCA4cHggMTBweCAtNnB4IHJnYigwIDAgMCAvIDAuMSkiLCIyeGwiOiIwIDI1cHggNTBweCAtMTJweCByZ2IoMCAwIDAgLyAwLjI1KSIsaW5uZXI6Imluc2V0IDAgMnB4IDRweCAwIHJnYigwIDAgMCAvIDAuMDUpIixub25lOiJub25lIn0sYm94U2hhZG93Q29sb3I6KHt0aGVtZTpyfSk9PnIoImNvbG9ycyIpLGJyaWdodG5lc3M6ezA6IjAiLDUwOiIuNSIsNzU6Ii43NSIsOTA6Ii45Iiw5NToiLjk1IiwxMDA6IjEiLDEwNToiMS4wNSIsMTEwOiIxLjEiLDEyNToiMS4yNSIsMTUwOiIxLjUiLDIwMDoiMiJ9LGNhcmV0Q29sb3I6KHt0aGVtZTpyfSk9PnIoImNvbG9ycyIpLGNvbG9yczooe2NvbG9yczpyfSk9Pih7aW5oZXJpdDpyLmluaGVyaXQsY3VycmVudDpyLmN1cnJlbnQsdHJhbnNwYXJlbnQ6ci50cmFuc3BhcmVudCxibGFjazpyLmJsYWNrLHdoaXRlOnIud2hpdGUsc2xhdGU6ci5zbGF0ZSxncmF5OnIuZ3JheSx6aW5jOnIuemluYyxuZXV0cmFsOnIubmV1dHJhbCxzdG9uZTpyLnN0b25lLHJlZDpyLnJlZCxvcmFuZ2U6ci5vcmFuZ2UsYW1iZXI6ci5hbWJlcix5ZWxsb3c6ci55ZWxsb3csbGltZTpyLmxpbWUsZ3JlZW46ci5ncmVlbixlbWVyYWxkOnIuZW1lcmFsZCx0ZWFsOnIudGVhbCxjeWFuOnIuY3lhbixza3k6ci5za3ksYmx1ZTpyLmJsdWUsaW5kaWdvOnIuaW5kaWdvLHZpb2xldDpyLnZpb2xldCxwdXJwbGU6ci5wdXJwbGUsZnVjaHNpYTpyLmZ1Y2hzaWEscGluazpyLnBpbmsscm9zZTpyLnJvc2V9KSxjb2x1bW5zOnthdXRvOiJhdXRvIiwxOiIxIiwyOiIyIiwzOiIzIiw0OiI0Iiw1OiI1Iiw2OiI2Iiw3OiI3Iiw4OiI4Iiw5OiI5IiwxMDoiMTAiLDExOiIxMSIsMTI6IjEyIiwiM3hzIjoiMTZyZW0iLCIyeHMiOiIxOHJlbSIseHM6IjIwcmVtIixzbToiMjRyZW0iLG1kOiIyOHJlbSIsbGc6IjMycmVtIix4bDoiMzZyZW0iLCIyeGwiOiI0MnJlbSIsIjN4bCI6IjQ4cmVtIiwiNHhsIjoiNTZyZW0iLCI1eGwiOiI2NHJlbSIsIjZ4bCI6IjcycmVtIiwiN3hsIjoiODByZW0ifSxjb250YWluZXI6e30sY29udGVudDp7bm9uZToibm9uZSJ9LGNvbnRyYXN0OnswOiIwIiw1MDoiLjUiLDc1OiIuNzUiLDEwMDoiMSIsMTI1OiIxLjI1IiwxNTA6IjEuNSIsMjAwOiIyIn0sY3Vyc29yOnthdXRvOiJhdXRvIixkZWZhdWx0OiJkZWZhdWx0Iixwb2ludGVyOiJwb2ludGVyIix3YWl0OiJ3YWl0Iix0ZXh0OiJ0ZXh0Iixtb3ZlOiJtb3ZlIixoZWxwOiJoZWxwIiwibm90LWFsbG93ZWQiOiJub3QtYWxsb3dlZCIsbm9uZToibm9uZSIsImNvbnRleHQtbWVudSI6ImNvbnRleHQtbWVudSIscHJvZ3Jlc3M6InByb2dyZXNzIixjZWxsOiJjZWxsIixjcm9zc2hhaXI6ImNyb3NzaGFpciIsInZlcnRpY2FsLXRleHQiOiJ2ZXJ0aWNhbC10ZXh0IixhbGlhczoiYWxpYXMiLGNvcHk6ImNvcHkiLCJuby1kcm9wIjoibm8tZHJvcCIsZ3JhYjoiZ3JhYiIsZ3JhYmJpbmc6ImdyYWJiaW5nIiwiYWxsLXNjcm9sbCI6ImFsbC1zY3JvbGwiLCJjb2wtcmVzaXplIjoiY29sLXJlc2l6ZSIsInJvdy1yZXNpemUiOiJyb3ctcmVzaXplIiwibi1yZXNpemUiOiJuLXJlc2l6ZSIsImUtcmVzaXplIjoiZS1yZXNpemUiLCJzLXJlc2l6ZSI6InMtcmVzaXplIiwidy1yZXNpemUiOiJ3LXJlc2l6ZSIsIm5lLXJlc2l6ZSI6Im5lLXJlc2l6ZSIsIm53LXJlc2l6ZSI6Im53LXJlc2l6ZSIsInNlLXJlc2l6ZSI6InNlLXJlc2l6ZSIsInN3LXJlc2l6ZSI6InN3LXJlc2l6ZSIsImV3LXJlc2l6ZSI6ImV3LXJlc2l6ZSIsIm5zLXJlc2l6ZSI6Im5zLXJlc2l6ZSIsIm5lc3ctcmVzaXplIjoibmVzdy1yZXNpemUiLCJud3NlLXJlc2l6ZSI6Im53c2UtcmVzaXplIiwiem9vbS1pbiI6Inpvb20taW4iLCJ6b29tLW91dCI6Inpvb20tb3V0In0sZGl2aWRlQ29sb3I6KHt0aGVtZTpyfSk9PnIoImJvcmRlckNvbG9yIiksZGl2aWRlT3BhY2l0eTooe3RoZW1lOnJ9KT0+cigiYm9yZGVyT3BhY2l0eSIpLGRpdmlkZVdpZHRoOih7dGhlbWU6cn0pPT5yKCJib3JkZXJXaWR0aCIpLGRyb3BTaGFkb3c6e3NtOiIwIDFweCAxcHggcmdiKDAgMCAwIC8gMC4wNSkiLERFRkFVTFQ6WyIwIDFweCAycHggcmdiKDAgMCAwIC8gMC4xKSIsIjAgMXB4IDFweCByZ2IoMCAwIDAgLyAwLjA2KSJdLG1kOlsiMCA0cHggM3B4IHJnYigwIDAgMCAvIDAuMDcpIiwiMCAycHggMnB4IHJnYigwIDAgMCAvIDAuMDYpIl0sbGc6WyIwIDEwcHggOHB4IHJnYigwIDAgMCAvIDAuMDQpIiwiMCA0cHggM3B4IHJnYigwIDAgMCAvIDAuMSkiXSx4bDpbIjAgMjBweCAxM3B4IHJnYigwIDAgMCAvIDAuMDMpIiwiMCA4cHggNXB4IHJnYigwIDAgMCAvIDAuMDgpIl0sIjJ4bCI6IjAgMjVweCAyNXB4IHJnYigwIDAgMCAvIDAuMTUpIixub25lOiIwIDAgIzAwMDAifSxmaWxsOih7dGhlbWU6cn0pPT4oe25vbmU6Im5vbmUiLC4uLnIoImNvbG9ycyIpfSksZmxleDp7MToiMSAxIDAlIixhdXRvOiIxIDEgYXV0byIsaW5pdGlhbDoiMCAxIGF1dG8iLG5vbmU6Im5vbmUifSxmbGV4QmFzaXM6KHt0aGVtZTpyfSk9Pih7YXV0bzoiYXV0byIsLi4ucigic3BhY2luZyIpLCIxLzIiOiI1MCUiLCIxLzMiOiIzMy4zMzMzMzMlIiwiMi8zIjoiNjYuNjY2NjY3JSIsIjEvNCI6IjI1JSIsIjIvNCI6IjUwJSIsIjMvNCI6Ijc1JSIsIjEvNSI6IjIwJSIsIjIvNSI6IjQwJSIsIjMvNSI6IjYwJSIsIjQvNSI6IjgwJSIsIjEvNiI6IjE2LjY2NjY2NyUiLCIyLzYiOiIzMy4zMzMzMzMlIiwiMy82IjoiNTAlIiwiNC82IjoiNjYuNjY2NjY3JSIsIjUvNiI6IjgzLjMzMzMzMyUiLCIxLzEyIjoiOC4zMzMzMzMlIiwiMi8xMiI6IjE2LjY2NjY2NyUiLCIzLzEyIjoiMjUlIiwiNC8xMiI6IjMzLjMzMzMzMyUiLCI1LzEyIjoiNDEuNjY2NjY3JSIsIjYvMTIiOiI1MCUiLCI3LzEyIjoiNTguMzMzMzMzJSIsIjgvMTIiOiI2Ni42NjY2NjclIiwiOS8xMiI6Ijc1JSIsIjEwLzEyIjoiODMuMzMzMzMzJSIsIjExLzEyIjoiOTEuNjY2NjY3JSIsZnVsbDoiMTAwJSJ9KSxmbGV4R3Jvdzp7MDoiMCIsREVGQVVMVDoiMSJ9LGZsZXhTaHJpbms6ezA6IjAiLERFRkFVTFQ6IjEifSxmb250RmFtaWx5OntzYW5zOlsidWktc2Fucy1zZXJpZiIsInN5c3RlbS11aSIsInNhbnMtc2VyaWYiLCciQXBwbGUgQ29sb3IgRW1vamkiJywnIlNlZ29lIFVJIEVtb2ppIicsJyJTZWdvZSBVSSBTeW1ib2wiJywnIk5vdG8gQ29sb3IgRW1vamkiJ10sc2VyaWY6WyJ1aS1zZXJpZiIsIkdlb3JnaWEiLCJDYW1icmlhIiwnIlRpbWVzIE5ldyBSb21hbiInLCJUaW1lcyIsInNlcmlmIl0sbW9ubzpbInVpLW1vbm9zcGFjZSIsIlNGTW9uby1SZWd1bGFyIiwiTWVubG8iLCJNb25hY28iLCJDb25zb2xhcyIsJyJMaWJlcmF0aW9uIE1vbm8iJywnIkNvdXJpZXIgTmV3IicsIm1vbm9zcGFjZSJdfSxmb250U2l6ZTp7eHM6WyIwLjc1cmVtIix7bGluZUhlaWdodDoiMXJlbSJ9XSxzbTpbIjAuODc1cmVtIix7bGluZUhlaWdodDoiMS4yNXJlbSJ9XSxiYXNlOlsiMXJlbSIse2xpbmVIZWlnaHQ6IjEuNXJlbSJ9XSxsZzpbIjEuMTI1cmVtIix7bGluZUhlaWdodDoiMS43NXJlbSJ9XSx4bDpbIjEuMjVyZW0iLHtsaW5lSGVpZ2h0OiIxLjc1cmVtIn1dLCIyeGwiOlsiMS41cmVtIix7bGluZUhlaWdodDoiMnJlbSJ9XSwiM3hsIjpbIjEuODc1cmVtIix7bGluZUhlaWdodDoiMi4yNXJlbSJ9XSwiNHhsIjpbIjIuMjVyZW0iLHtsaW5lSGVpZ2h0OiIyLjVyZW0ifV0sIjV4bCI6WyIzcmVtIix7bGluZUhlaWdodDoiMSJ9XSwiNnhsIjpbIjMuNzVyZW0iLHtsaW5lSGVpZ2h0OiIxIn1dLCI3eGwiOlsiNC41cmVtIix7bGluZUhlaWdodDoiMSJ9XSwiOHhsIjpbIjZyZW0iLHtsaW5lSGVpZ2h0OiIxIn1dLCI5eGwiOlsiOHJlbSIse2xpbmVIZWlnaHQ6IjEifV19LGZvbnRXZWlnaHQ6e3RoaW46IjEwMCIsZXh0cmFsaWdodDoiMjAwIixsaWdodDoiMzAwIixub3JtYWw6IjQwMCIsbWVkaXVtOiI1MDAiLHNlbWlib2xkOiI2MDAiLGJvbGQ6IjcwMCIsZXh0cmFib2xkOiI4MDAiLGJsYWNrOiI5MDAifSxnYXA6KHt0aGVtZTpyfSk9PnIoInNwYWNpbmciKSxncmFkaWVudENvbG9yU3RvcHM6KHt0aGVtZTpyfSk9PnIoImNvbG9ycyIpLGdyYWRpZW50Q29sb3JTdG9wUG9zaXRpb25zOnsiMCUiOiIwJSIsIjUlIjoiNSUiLCIxMCUiOiIxMCUiLCIxNSUiOiIxNSUiLCIyMCUiOiIyMCUiLCIyNSUiOiIyNSUiLCIzMCUiOiIzMCUiLCIzNSUiOiIzNSUiLCI0MCUiOiI0MCUiLCI0NSUiOiI0NSUiLCI1MCUiOiI1MCUiLCI1NSUiOiI1NSUiLCI2MCUiOiI2MCUiLCI2NSUiOiI2NSUiLCI3MCUiOiI3MCUiLCI3NSUiOiI3NSUiLCI4MCUiOiI4MCUiLCI4NSUiOiI4NSUiLCI5MCUiOiI5MCUiLCI5NSUiOiI5NSUiLCIxMDAlIjoiMTAwJSJ9LGdyYXlzY2FsZTp7MDoiMCIsREVGQVVMVDoiMTAwJSJ9LGdyaWRBdXRvQ29sdW1uczp7YXV0bzoiYXV0byIsbWluOiJtaW4tY29udGVudCIsbWF4OiJtYXgtY29udGVudCIsZnI6Im1pbm1heCgwLCAxZnIpIn0sZ3JpZEF1dG9Sb3dzOnthdXRvOiJhdXRvIixtaW46Im1pbi1jb250ZW50IixtYXg6Im1heC1jb250ZW50IixmcjoibWlubWF4KDAsIDFmcikifSxncmlkQ29sdW1uOnthdXRvOiJhdXRvIiwic3Bhbi0xIjoic3BhbiAxIC8gc3BhbiAxIiwic3Bhbi0yIjoic3BhbiAyIC8gc3BhbiAyIiwic3Bhbi0zIjoic3BhbiAzIC8gc3BhbiAzIiwic3Bhbi00Ijoic3BhbiA0IC8gc3BhbiA0Iiwic3Bhbi01Ijoic3BhbiA1IC8gc3BhbiA1Iiwic3Bhbi02Ijoic3BhbiA2IC8gc3BhbiA2Iiwic3Bhbi03Ijoic3BhbiA3IC8gc3BhbiA3Iiwic3Bhbi04Ijoic3BhbiA4IC8gc3BhbiA4Iiwic3Bhbi05Ijoic3BhbiA5IC8gc3BhbiA5Iiwic3Bhbi0xMCI6InNwYW4gMTAgLyBzcGFuIDEwIiwic3Bhbi0xMSI6InNwYW4gMTEgLyBzcGFuIDExIiwic3Bhbi0xMiI6InNwYW4gMTIgLyBzcGFuIDEyIiwic3Bhbi1mdWxsIjoiMSAvIC0xIn0sZ3JpZENvbHVtbkVuZDp7YXV0bzoiYXV0byIsMToiMSIsMjoiMiIsMzoiMyIsNDoiNCIsNToiNSIsNjoiNiIsNzoiNyIsODoiOCIsOToiOSIsMTA6IjEwIiwxMToiMTEiLDEyOiIxMiIsMTM6IjEzIn0sZ3JpZENvbHVtblN0YXJ0OnthdXRvOiJhdXRvIiwxOiIxIiwyOiIyIiwzOiIzIiw0OiI0Iiw1OiI1Iiw2OiI2Iiw3OiI3Iiw4OiI4Iiw5OiI5IiwxMDoiMTAiLDExOiIxMSIsMTI6IjEyIiwxMzoiMTMifSxncmlkUm93OnthdXRvOiJhdXRvIiwic3Bhbi0xIjoic3BhbiAxIC8gc3BhbiAxIiwic3Bhbi0yIjoic3BhbiAyIC8gc3BhbiAyIiwic3Bhbi0zIjoic3BhbiAzIC8gc3BhbiAzIiwic3Bhbi00Ijoic3BhbiA0IC8gc3BhbiA0Iiwic3Bhbi01Ijoic3BhbiA1IC8gc3BhbiA1Iiwic3Bhbi02Ijoic3BhbiA2IC8gc3BhbiA2Iiwic3Bhbi03Ijoic3BhbiA3IC8gc3BhbiA3Iiwic3Bhbi04Ijoic3BhbiA4IC8gc3BhbiA4Iiwic3Bhbi05Ijoic3BhbiA5IC8gc3BhbiA5Iiwic3Bhbi0xMCI6InNwYW4gMTAgLyBzcGFuIDEwIiwic3Bhbi0xMSI6InNwYW4gMTEgLyBzcGFuIDExIiwic3Bhbi0xMiI6InNwYW4gMTIgLyBzcGFuIDEyIiwic3Bhbi1mdWxsIjoiMSAvIC0xIn0sZ3JpZFJvd0VuZDp7YXV0bzoiYXV0byIsMToiMSIsMjoiMiIsMzoiMyIsNDoiNCIsNToiNSIsNjoiNiIsNzoiNyIsODoiOCIsOToiOSIsMTA6IjEwIiwxMToiMTEiLDEyOiIxMiIsMTM6IjEzIn0sZ3JpZFJvd1N0YXJ0OnthdXRvOiJhdXRvIiwxOiIxIiwyOiIyIiwzOiIzIiw0OiI0Iiw1OiI1Iiw2OiI2Iiw3OiI3Iiw4OiI4Iiw5OiI5IiwxMDoiMTAiLDExOiIxMSIsMTI6IjEyIiwxMzoiMTMifSxncmlkVGVtcGxhdGVDb2x1bW5zOntub25lOiJub25lIixzdWJncmlkOiJzdWJncmlkIiwxOiJyZXBlYXQoMSwgbWlubWF4KDAsIDFmcikpIiwyOiJyZXBlYXQoMiwgbWlubWF4KDAsIDFmcikpIiwzOiJyZXBlYXQoMywgbWlubWF4KDAsIDFmcikpIiw0OiJyZXBlYXQoNCwgbWlubWF4KDAsIDFmcikpIiw1OiJyZXBlYXQoNSwgbWlubWF4KDAsIDFmcikpIiw2OiJyZXBlYXQoNiwgbWlubWF4KDAsIDFmcikpIiw3OiJyZXBlYXQoNywgbWlubWF4KDAsIDFmcikpIiw4OiJyZXBlYXQoOCwgbWlubWF4KDAsIDFmcikpIiw5OiJyZXBlYXQoOSwgbWlubWF4KDAsIDFmcikpIiwxMDoicmVwZWF0KDEwLCBtaW5tYXgoMCwgMWZyKSkiLDExOiJyZXBlYXQoMTEsIG1pbm1heCgwLCAxZnIpKSIsMTI6InJlcGVhdCgxMiwgbWlubWF4KDAsIDFmcikpIn0sZ3JpZFRlbXBsYXRlUm93czp7bm9uZToibm9uZSIsc3ViZ3JpZDoic3ViZ3JpZCIsMToicmVwZWF0KDEsIG1pbm1heCgwLCAxZnIpKSIsMjoicmVwZWF0KDIsIG1pbm1heCgwLCAxZnIpKSIsMzoicmVwZWF0KDMsIG1pbm1heCgwLCAxZnIpKSIsNDoicmVwZWF0KDQsIG1pbm1heCgwLCAxZnIpKSIsNToicmVwZWF0KDUsIG1pbm1heCgwLCAxZnIpKSIsNjoicmVwZWF0KDYsIG1pbm1heCgwLCAxZnIpKSIsNzoicmVwZWF0KDcsIG1pbm1heCgwLCAxZnIpKSIsODoicmVwZWF0KDgsIG1pbm1heCgwLCAxZnIpKSIsOToicmVwZWF0KDksIG1pbm1heCgwLCAxZnIpKSIsMTA6InJlcGVhdCgxMCwgbWlubWF4KDAsIDFmcikpIiwxMToicmVwZWF0KDExLCBtaW5tYXgoMCwgMWZyKSkiLDEyOiJyZXBlYXQoMTIsIG1pbm1heCgwLCAxZnIpKSJ9LGhlaWdodDooe3RoZW1lOnJ9KT0+KHthdXRvOiJhdXRvIiwuLi5yKCJzcGFjaW5nIiksIjEvMiI6IjUwJSIsIjEvMyI6IjMzLjMzMzMzMyUiLCIyLzMiOiI2Ni42NjY2NjclIiwiMS80IjoiMjUlIiwiMi80IjoiNTAlIiwiMy80IjoiNzUlIiwiMS81IjoiMjAlIiwiMi81IjoiNDAlIiwiMy81IjoiNjAlIiwiNC81IjoiODAlIiwiMS82IjoiMTYuNjY2NjY3JSIsIjIvNiI6IjMzLjMzMzMzMyUiLCIzLzYiOiI1MCUiLCI0LzYiOiI2Ni42NjY2NjclIiwiNS82IjoiODMuMzMzMzMzJSIsZnVsbDoiMTAwJSIsc2NyZWVuOiIxMDB2aCIsc3ZoOiIxMDBzdmgiLGx2aDoiMTAwbHZoIixkdmg6IjEwMGR2aCIsbWluOiJtaW4tY29udGVudCIsbWF4OiJtYXgtY29udGVudCIsZml0OiJmaXQtY29udGVudCJ9KSxodWVSb3RhdGU6ezA6IjBkZWciLDE1OiIxNWRlZyIsMzA6IjMwZGVnIiw2MDoiNjBkZWciLDkwOiI5MGRlZyIsMTgwOiIxODBkZWcifSxpbnNldDooe3RoZW1lOnJ9KT0+KHthdXRvOiJhdXRvIiwuLi5yKCJzcGFjaW5nIiksIjEvMiI6IjUwJSIsIjEvMyI6IjMzLjMzMzMzMyUiLCIyLzMiOiI2Ni42NjY2NjclIiwiMS80IjoiMjUlIiwiMi80IjoiNTAlIiwiMy80IjoiNzUlIixmdWxsOiIxMDAlIn0pLGludmVydDp7MDoiMCIsREVGQVVMVDoiMTAwJSJ9LGtleWZyYW1lczp7c3Bpbjp7dG86e3RyYW5zZm9ybToicm90YXRlKDM2MGRlZykifX0scGluZzp7Ijc1JSwgMTAwJSI6e3RyYW5zZm9ybToic2NhbGUoMikiLG9wYWNpdHk6IjAifX0scHVsc2U6eyI1MCUiOntvcGFjaXR5OiIuNSJ9fSxib3VuY2U6eyIwJSwgMTAwJSI6e3RyYW5zZm9ybToidHJhbnNsYXRlWSgtMjUlKSIsYW5pbWF0aW9uVGltaW5nRnVuY3Rpb246ImN1YmljLWJlemllcigwLjgsMCwxLDEpIn0sIjUwJSI6e3RyYW5zZm9ybToibm9uZSIsYW5pbWF0aW9uVGltaW5nRnVuY3Rpb246ImN1YmljLWJlemllcigwLDAsMC4yLDEpIn19fSxsZXR0ZXJTcGFjaW5nOnt0aWdodGVyOiItMC4wNWVtIix0aWdodDoiLTAuMDI1ZW0iLG5vcm1hbDoiMGVtIix3aWRlOiIwLjAyNWVtIix3aWRlcjoiMC4wNWVtIix3aWRlc3Q6IjAuMWVtIn0sbGluZUhlaWdodDp7bm9uZToiMSIsdGlnaHQ6IjEuMjUiLHNudWc6IjEuMzc1Iixub3JtYWw6IjEuNSIscmVsYXhlZDoiMS42MjUiLGxvb3NlOiIyIiwzOiIuNzVyZW0iLDQ6IjFyZW0iLDU6IjEuMjVyZW0iLDY6IjEuNXJlbSIsNzoiMS43NXJlbSIsODoiMnJlbSIsOToiMi4yNXJlbSIsMTA6IjIuNXJlbSJ9LGxpc3RTdHlsZVR5cGU6e25vbmU6Im5vbmUiLGRpc2M6ImRpc2MiLGRlY2ltYWw6ImRlY2ltYWwifSxsaXN0U3R5bGVJbWFnZTp7bm9uZToibm9uZSJ9LG1hcmdpbjooe3RoZW1lOnJ9KT0+KHthdXRvOiJhdXRvIiwuLi5yKCJzcGFjaW5nIil9KSxsaW5lQ2xhbXA6ezE6IjEiLDI6IjIiLDM6IjMiLDQ6IjQiLDU6IjUiLDY6IjYifSxtYXhIZWlnaHQ6KHt0aGVtZTpyfSk9Pih7Li4ucigic3BhY2luZyIpLG5vbmU6Im5vbmUiLGZ1bGw6IjEwMCUiLHNjcmVlbjoiMTAwdmgiLHN2aDoiMTAwc3ZoIixsdmg6IjEwMGx2aCIsZHZoOiIxMDBkdmgiLG1pbjoibWluLWNvbnRlbnQiLG1heDoibWF4LWNvbnRlbnQiLGZpdDoiZml0LWNvbnRlbnQifSksbWF4V2lkdGg6KHt0aGVtZTpyLGJyZWFrcG9pbnRzOmV9KT0+KHsuLi5yKCJzcGFjaW5nIiksbm9uZToibm9uZSIseHM6IjIwcmVtIixzbToiMjRyZW0iLG1kOiIyOHJlbSIsbGc6IjMycmVtIix4bDoiMzZyZW0iLCIyeGwiOiI0MnJlbSIsIjN4bCI6IjQ4cmVtIiwiNHhsIjoiNTZyZW0iLCI1eGwiOiI2NHJlbSIsIjZ4bCI6IjcycmVtIiwiN3hsIjoiODByZW0iLGZ1bGw6IjEwMCUiLG1pbjoibWluLWNvbnRlbnQiLG1heDoibWF4LWNvbnRlbnQiLGZpdDoiZml0LWNvbnRlbnQiLHByb3NlOiI2NWNoIiwuLi5lKHIoInNjcmVlbnMiKSl9KSxtaW5IZWlnaHQ6KHt0aGVtZTpyfSk9Pih7Li4ucigic3BhY2luZyIpLGZ1bGw6IjEwMCUiLHNjcmVlbjoiMTAwdmgiLHN2aDoiMTAwc3ZoIixsdmg6IjEwMGx2aCIsZHZoOiIxMDBkdmgiLG1pbjoibWluLWNvbnRlbnQiLG1heDoibWF4LWNvbnRlbnQiLGZpdDoiZml0LWNvbnRlbnQifSksbWluV2lkdGg6KHt0aGVtZTpyfSk9Pih7Li4ucigic3BhY2luZyIpLGZ1bGw6IjEwMCUiLG1pbjoibWluLWNvbnRlbnQiLG1heDoibWF4LWNvbnRlbnQiLGZpdDoiZml0LWNvbnRlbnQifSksb2JqZWN0UG9zaXRpb246e2JvdHRvbToiYm90dG9tIixjZW50ZXI6ImNlbnRlciIsbGVmdDoibGVmdCIsImxlZnQtYm90dG9tIjoibGVmdCBib3R0b20iLCJsZWZ0LXRvcCI6ImxlZnQgdG9wIixyaWdodDoicmlnaHQiLCJyaWdodC1ib3R0b20iOiJyaWdodCBib3R0b20iLCJyaWdodC10b3AiOiJyaWdodCB0b3AiLHRvcDoidG9wIn0sb3BhY2l0eTp7MDoiMCIsNToiMC4wNSIsMTA6IjAuMSIsMTU6IjAuMTUiLDIwOiIwLjIiLDI1OiIwLjI1IiwzMDoiMC4zIiwzNToiMC4zNSIsNDA6IjAuNCIsNDU6IjAuNDUiLDUwOiIwLjUiLDU1OiIwLjU1Iiw2MDoiMC42Iiw2NToiMC42NSIsNzA6IjAuNyIsNzU6IjAuNzUiLDgwOiIwLjgiLDg1OiIwLjg1Iiw5MDoiMC45Iiw5NToiMC45NSIsMTAwOiIxIn0sb3JkZXI6e2ZpcnN0OiItOTk5OSIsbGFzdDoiOTk5OSIsbm9uZToiMCIsMToiMSIsMjoiMiIsMzoiMyIsNDoiNCIsNToiNSIsNjoiNiIsNzoiNyIsODoiOCIsOToiOSIsMTA6IjEwIiwxMToiMTEiLDEyOiIxMiJ9LG91dGxpbmVDb2xvcjooe3RoZW1lOnJ9KT0+cigiY29sb3JzIiksb3V0bGluZU9mZnNldDp7MDoiMHB4IiwxOiIxcHgiLDI6IjJweCIsNDoiNHB4Iiw4OiI4cHgifSxvdXRsaW5lV2lkdGg6ezA6IjBweCIsMToiMXB4IiwyOiIycHgiLDQ6IjRweCIsODoiOHB4In0scGFkZGluZzooe3RoZW1lOnJ9KT0+cigic3BhY2luZyIpLHBsYWNlaG9sZGVyQ29sb3I6KHt0aGVtZTpyfSk9PnIoImNvbG9ycyIpLHBsYWNlaG9sZGVyT3BhY2l0eTooe3RoZW1lOnJ9KT0+cigib3BhY2l0eSIpLHJpbmdDb2xvcjooe3RoZW1lOnJ9KT0+KHtERUZBVUxUOnIoImNvbG9ycy5ibHVlLjUwMCIsIiMzYjgyZjYiKSwuLi5yKCJjb2xvcnMiKX0pLHJpbmdPZmZzZXRDb2xvcjooe3RoZW1lOnJ9KT0+cigiY29sb3JzIikscmluZ09mZnNldFdpZHRoOnswOiIwcHgiLDE6IjFweCIsMjoiMnB4Iiw0OiI0cHgiLDg6IjhweCJ9LHJpbmdPcGFjaXR5Oih7dGhlbWU6cn0pPT4oe0RFRkFVTFQ6IjAuNSIsLi4ucigib3BhY2l0eSIpfSkscmluZ1dpZHRoOntERUZBVUxUOiIzcHgiLDA6IjBweCIsMToiMXB4IiwyOiIycHgiLDQ6IjRweCIsODoiOHB4In0scm90YXRlOnswOiIwZGVnIiwxOiIxZGVnIiwyOiIyZGVnIiwzOiIzZGVnIiw2OiI2ZGVnIiwxMjoiMTJkZWciLDQ1OiI0NWRlZyIsOTA6IjkwZGVnIiwxODA6IjE4MGRlZyJ9LHNhdHVyYXRlOnswOiIwIiw1MDoiLjUiLDEwMDoiMSIsMTUwOiIxLjUiLDIwMDoiMiJ9LHNjYWxlOnswOiIwIiw1MDoiLjUiLDc1OiIuNzUiLDkwOiIuOSIsOTU6Ii45NSIsMTAwOiIxIiwxMDU6IjEuMDUiLDExMDoiMS4xIiwxMjU6IjEuMjUiLDE1MDoiMS41In0sc2NyZWVuczp7c206IjY0MHB4IixtZDoiNzY4cHgiLGxnOiIxMDI0cHgiLHhsOiIxMjgwcHgiLCIyeGwiOiIxNTM2cHgifSxzY3JvbGxNYXJnaW46KHt0aGVtZTpyfSk9Pih7Li4ucigic3BhY2luZyIpfSksc2Nyb2xsUGFkZGluZzooe3RoZW1lOnJ9KT0+cigic3BhY2luZyIpLHNlcGlhOnswOiIwIixERUZBVUxUOiIxMDAlIn0sc2tldzp7MDoiMGRlZyIsMToiMWRlZyIsMjoiMmRlZyIsMzoiM2RlZyIsNjoiNmRlZyIsMTI6IjEyZGVnIn0sc3BhY2U6KHt0aGVtZTpyfSk9Pih7Li4ucigic3BhY2luZyIpfSksc3BhY2luZzp7cHg6IjFweCIsMDoiMHB4IiwuNToiMC4xMjVyZW0iLDE6IjAuMjVyZW0iLDEuNToiMC4zNzVyZW0iLDI6IjAuNXJlbSIsMi41OiIwLjYyNXJlbSIsMzoiMC43NXJlbSIsMy41OiIwLjg3NXJlbSIsNDoiMXJlbSIsNToiMS4yNXJlbSIsNjoiMS41cmVtIiw3OiIxLjc1cmVtIiw4OiIycmVtIiw5OiIyLjI1cmVtIiwxMDoiMi41cmVtIiwxMToiMi43NXJlbSIsMTI6IjNyZW0iLDE0OiIzLjVyZW0iLDE2OiI0cmVtIiwyMDoiNXJlbSIsMjQ6IjZyZW0iLDI4OiI3cmVtIiwzMjoiOHJlbSIsMzY6IjlyZW0iLDQwOiIxMHJlbSIsNDQ6IjExcmVtIiw0ODoiMTJyZW0iLDUyOiIxM3JlbSIsNTY6IjE0cmVtIiw2MDoiMTVyZW0iLDY0OiIxNnJlbSIsNzI6IjE4cmVtIiw4MDoiMjByZW0iLDk2OiIyNHJlbSJ9LHN0cm9rZTooe3RoZW1lOnJ9KT0+KHtub25lOiJub25lIiwuLi5yKCJjb2xvcnMiKX0pLHN0cm9rZVdpZHRoOnswOiIwIiwxOiIxIiwyOiIyIn0sc3VwcG9ydHM6e30sZGF0YTp7fSx0ZXh0Q29sb3I6KHt0aGVtZTpyfSk9PnIoImNvbG9ycyIpLHRleHREZWNvcmF0aW9uQ29sb3I6KHt0aGVtZTpyfSk9PnIoImNvbG9ycyIpLHRleHREZWNvcmF0aW9uVGhpY2tuZXNzOnthdXRvOiJhdXRvIiwiZnJvbS1mb250IjoiZnJvbS1mb250IiwwOiIwcHgiLDE6IjFweCIsMjoiMnB4Iiw0OiI0cHgiLDg6IjhweCJ9LHRleHRJbmRlbnQ6KHt0aGVtZTpyfSk9Pih7Li4ucigic3BhY2luZyIpfSksdGV4dE9wYWNpdHk6KHt0aGVtZTpyfSk9PnIoIm9wYWNpdHkiKSx0ZXh0VW5kZXJsaW5lT2Zmc2V0OnthdXRvOiJhdXRvIiwwOiIwcHgiLDE6IjFweCIsMjoiMnB4Iiw0OiI0cHgiLDg6IjhweCJ9LHRyYW5zZm9ybU9yaWdpbjp7Y2VudGVyOiJjZW50ZXIiLHRvcDoidG9wIiwidG9wLXJpZ2h0IjoidG9wIHJpZ2h0IixyaWdodDoicmlnaHQiLCJib3R0b20tcmlnaHQiOiJib3R0b20gcmlnaHQiLGJvdHRvbToiYm90dG9tIiwiYm90dG9tLWxlZnQiOiJib3R0b20gbGVmdCIsbGVmdDoibGVmdCIsInRvcC1sZWZ0IjoidG9wIGxlZnQifSx0cmFuc2l0aW9uRGVsYXk6ezA6IjBzIiw3NToiNzVtcyIsMTAwOiIxMDBtcyIsMTUwOiIxNTBtcyIsMjAwOiIyMDBtcyIsMzAwOiIzMDBtcyIsNTAwOiI1MDBtcyIsNzAwOiI3MDBtcyIsMWUzOiIxMDAwbXMifSx0cmFuc2l0aW9uRHVyYXRpb246e0RFRkFVTFQ6IjE1MG1zIiwwOiIwcyIsNzU6Ijc1bXMiLDEwMDoiMTAwbXMiLDE1MDoiMTUwbXMiLDIwMDoiMjAwbXMiLDMwMDoiMzAwbXMiLDUwMDoiNTAwbXMiLDcwMDoiNzAwbXMiLDFlMzoiMTAwMG1zIn0sdHJhbnNpdGlvblByb3BlcnR5Ontub25lOiJub25lIixhbGw6ImFsbCIsREVGQVVMVDoiY29sb3IsIGJhY2tncm91bmQtY29sb3IsIGJvcmRlci1jb2xvciwgdGV4dC1kZWNvcmF0aW9uLWNvbG9yLCBmaWxsLCBzdHJva2UsIG9wYWNpdHksIGJveC1zaGFkb3csIHRyYW5zZm9ybSwgZmlsdGVyLCBiYWNrZHJvcC1maWx0ZXIiLGNvbG9yczoiY29sb3IsIGJhY2tncm91bmQtY29sb3IsIGJvcmRlci1jb2xvciwgdGV4dC1kZWNvcmF0aW9uLWNvbG9yLCBmaWxsLCBzdHJva2UiLG9wYWNpdHk6Im9wYWNpdHkiLHNoYWRvdzoiYm94LXNoYWRvdyIsdHJhbnNmb3JtOiJ0cmFuc2Zvcm0ifSx0cmFuc2l0aW9uVGltaW5nRnVuY3Rpb246e0RFRkFVTFQ6ImN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSkiLGxpbmVhcjoibGluZWFyIixpbjoiY3ViaWMtYmV6aWVyKDAuNCwgMCwgMSwgMSkiLG91dDoiY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSkiLCJpbi1vdXQiOiJjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpIn0sdHJhbnNsYXRlOih7dGhlbWU6cn0pPT4oey4uLnIoInNwYWNpbmciKSwiMS8yIjoiNTAlIiwiMS8zIjoiMzMuMzMzMzMzJSIsIjIvMyI6IjY2LjY2NjY2NyUiLCIxLzQiOiIyNSUiLCIyLzQiOiI1MCUiLCIzLzQiOiI3NSUiLGZ1bGw6IjEwMCUifSksc2l6ZTooe3RoZW1lOnJ9KT0+KHthdXRvOiJhdXRvIiwuLi5yKCJzcGFjaW5nIiksIjEvMiI6IjUwJSIsIjEvMyI6IjMzLjMzMzMzMyUiLCIyLzMiOiI2Ni42NjY2NjclIiwiMS80IjoiMjUlIiwiMi80IjoiNTAlIiwiMy80IjoiNzUlIiwiMS81IjoiMjAlIiwiMi81IjoiNDAlIiwiMy81IjoiNjAlIiwiNC81IjoiODAlIiwiMS82IjoiMTYuNjY2NjY3JSIsIjIvNiI6IjMzLjMzMzMzMyUiLCIzLzYiOiI1MCUiLCI0LzYiOiI2Ni42NjY2NjclIiwiNS82IjoiODMuMzMzMzMzJSIsIjEvMTIiOiI4LjMzMzMzMyUiLCIyLzEyIjoiMTYuNjY2NjY3JSIsIjMvMTIiOiIyNSUiLCI0LzEyIjoiMzMuMzMzMzMzJSIsIjUvMTIiOiI0MS42NjY2NjclIiwiNi8xMiI6IjUwJSIsIjcvMTIiOiI1OC4zMzMzMzMlIiwiOC8xMiI6IjY2LjY2NjY2NyUiLCI5LzEyIjoiNzUlIiwiMTAvMTIiOiI4My4zMzMzMzMlIiwiMTEvMTIiOiI5MS42NjY2NjclIixmdWxsOiIxMDAlIixtaW46Im1pbi1jb250ZW50IixtYXg6Im1heC1jb250ZW50IixmaXQ6ImZpdC1jb250ZW50In0pLHdpZHRoOih7dGhlbWU6cn0pPT4oe2F1dG86ImF1dG8iLC4uLnIoInNwYWNpbmciKSwiMS8yIjoiNTAlIiwiMS8zIjoiMzMuMzMzMzMzJSIsIjIvMyI6IjY2LjY2NjY2NyUiLCIxLzQiOiIyNSUiLCIyLzQiOiI1MCUiLCIzLzQiOiI3NSUiLCIxLzUiOiIyMCUiLCIyLzUiOiI0MCUiLCIzLzUiOiI2MCUiLCI0LzUiOiI4MCUiLCIxLzYiOiIxNi42NjY2NjclIiwiMi82IjoiMzMuMzMzMzMzJSIsIjMvNiI6IjUwJSIsIjQvNiI6IjY2LjY2NjY2NyUiLCI1LzYiOiI4My4zMzMzMzMlIiwiMS8xMiI6IjguMzMzMzMzJSIsIjIvMTIiOiIxNi42NjY2NjclIiwiMy8xMiI6IjI1JSIsIjQvMTIiOiIzMy4zMzMzMzMlIiwiNS8xMiI6IjQxLjY2NjY2NyUiLCI2LzEyIjoiNTAlIiwiNy8xMiI6IjU4LjMzMzMzMyUiLCI4LzEyIjoiNjYuNjY2NjY3JSIsIjkvMTIiOiI3NSUiLCIxMC8xMiI6IjgzLjMzMzMzMyUiLCIxMS8xMiI6IjkxLjY2NjY2NyUiLGZ1bGw6IjEwMCUiLHNjcmVlbjoiMTAwdnciLHN2dzoiMTAwc3Z3Iixsdnc6IjEwMGx2dyIsZHZ3OiIxMDBkdnciLG1pbjoibWluLWNvbnRlbnQiLG1heDoibWF4LWNvbnRlbnQiLGZpdDoiZml0LWNvbnRlbnQifSksd2lsbENoYW5nZTp7YXV0bzoiYXV0byIsc2Nyb2xsOiJzY3JvbGwtcG9zaXRpb24iLGNvbnRlbnRzOiJjb250ZW50cyIsdHJhbnNmb3JtOiJ0cmFuc2Zvcm0ifSx6SW5kZXg6e2F1dG86ImF1dG8iLDA6IjAiLDEwOiIxMCIsMjA6IjIwIiwzMDoiMzAiLDQwOiI0MCIsNTA6IjUwIn19LHBsdWdpbnM6W119fSk7ZnVuY3Rpb24gbm4ocil7bGV0IGU9KHI/LnByZXNldHM/P1tpYy5kZWZhdWx0XSkuc2xpY2UoKS5yZXZlcnNlKCkuZmxhdE1hcChuPT5ubihuIGluc3RhbmNlb2YgRnVuY3Rpb24/bigpOm4pKSx0PXtyZXNwZWN0RGVmYXVsdFJpbmdDb2xvck9wYWNpdHk6e3RoZW1lOntyaW5nQ29sb3I6KHt0aGVtZTpufSk9Pih7REVGQVVMVDoiIzNiODJmNjdmIiwuLi5uKCJjb2xvcnMiKX0pfX0sZGlzYWJsZUNvbG9yT3BhY2l0eVV0aWxpdGllc0J5RGVmYXVsdDp7Y29yZVBsdWdpbnM6e2JhY2tncm91bmRPcGFjaXR5OiExLGJvcmRlck9wYWNpdHk6ITEsZGl2aWRlT3BhY2l0eTohMSxwbGFjZWhvbGRlck9wYWNpdHk6ITEscmluZ09wYWNpdHk6ITEsdGV4dE9wYWNpdHk6ITF9fX0saT1PYmplY3Qua2V5cyh0KS5maWx0ZXIobj0+d2UocixuKSkubWFwKG49PnRbbl0pO3JldHVybltyLC4uLmksLi4uZV19dmFyIGljLG5jPVAoKCk9Pnt1KCk7aWM9cGUocm4oKSk7Y3QoKX0pO3ZhciBzYz17fTtHZShzYyx7ZGVmYXVsdDooKT0+enJ9KTtmdW5jdGlvbiB6ciguLi5yKXtsZXRbLC4uLmVdPW5uKHJbMF0pO3JldHVybiBuYShbLi4uciwuLi5lXSl9dmFyIHNhPVAoKCk9Pnt1KCk7dGMoKTtuYygpfSk7dmFyIFVyPXt9O0dlKFVyLHtkZWZhdWx0OigpPT5tZX0pO3ZhciBtZSxldD1QKCgpPT57dSgpO21lPXtyZXNvbHZlOnI9PnIsZXh0bmFtZTpyPT4iLiIrci5zcGxpdCgiLiIpLnBvcCgpfX0pO2Z1bmN0aW9uIHNuKHIpe3JldHVybiB0eXBlb2Ygcj09Im9iamVjdCImJnIhPT1udWxsfWZ1bmN0aW9uIGJ4KHIpe3JldHVybiBPYmplY3Qua2V5cyhyKS5sZW5ndGg9PT0wfWZ1bmN0aW9uIGFjKHIpe3JldHVybiB0eXBlb2Ygcj09InN0cmluZyJ8fHIgaW5zdGFuY2VvZiBTdHJpbmd9ZnVuY3Rpb24gYWEocil7cmV0dXJuIHNuKHIpJiZyLmNvbmZpZz09PXZvaWQgMCYmIWJ4KHIpP251bGw6c24ocikmJnIuY29uZmlnIT09dm9pZCAwJiZhYyhyLmNvbmZpZyk/bWUucmVzb2x2ZShyLmNvbmZpZyk6c24ocikmJnIuY29uZmlnIT09dm9pZCAwJiZzbihyLmNvbmZpZyk/bnVsbDphYyhyKT9tZS5yZXNvbHZlKHIpOnd4KCl9ZnVuY3Rpb24gd3goKXtmb3IobGV0IHIgb2YgeXgpdHJ5e2xldCBlPW1lLnJlc29sdmUocik7cmV0dXJuIGJlLmFjY2Vzc1N5bmMoZSksZX1jYXRjaChlKXt9cmV0dXJuIG51bGx9dmFyIHl4LG9jPVAoKCk9Pnt1KCk7ZnQoKTtldCgpO3l4PVsiLi90YWlsd2luZC5jb25maWcuanMiLCIuL3RhaWx3aW5kLmNvbmZpZy5janMiLCIuL3RhaWx3aW5kLmNvbmZpZy5tanMiLCIuL3RhaWx3aW5kLmNvbmZpZy50cyIsIi4vdGFpbHdpbmQuY29uZmlnLmN0cyIsIi4vdGFpbHdpbmQuY29uZmlnLm10cyJdfSk7dmFyIGxjPXt9O0dlKGxjLHtkZWZhdWx0OigpPT5vYX0pO3ZhciBvYSxsYT1QKCgpPT57dSgpO29hPXtwYXJzZTpyPT4oe2hyZWY6cn0pfX0pO3ZhciB1YT14KCgpPT57dSgpfSk7dmFyIGFuPXgoKHYzLGNjKT0+e3UoKTsidXNlIHN0cmljdCI7dmFyIHVjPShRaSgpLEFmKSxmYz11YSgpLEp0PWNsYXNzIGV4dGVuZHMgRXJyb3J7Y29uc3RydWN0b3IoZSx0LGksbixzLGEpe3N1cGVyKGUpO3RoaXMubmFtZT0iQ3NzU3ludGF4RXJyb3IiLHRoaXMucmVhc29uPWUscyYmKHRoaXMuZmlsZT1zKSxuJiYodGhpcy5zb3VyY2U9biksYSYmKHRoaXMucGx1Z2luPWEpLHR5cGVvZiB0IT0idW5kZWZpbmVkIiYmdHlwZW9mIGkhPSJ1bmRlZmluZWQiJiYodHlwZW9mIHQ9PSJudW1iZXIiPyh0aGlzLmxpbmU9dCx0aGlzLmNvbHVtbj1pKToodGhpcy5saW5lPXQubGluZSx0aGlzLmNvbHVtbj10LmNvbHVtbix0aGlzLmVuZExpbmU9aS5saW5lLHRoaXMuZW5kQ29sdW1uPWkuY29sdW1uKSksdGhpcy5zZXRNZXNzYWdlKCksRXJyb3IuY2FwdHVyZVN0YWNrVHJhY2UmJkVycm9yLmNhcHR1cmVTdGFja1RyYWNlKHRoaXMsSnQpfXNldE1lc3NhZ2UoKXt0aGlzLm1lc3NhZ2U9dGhpcy5wbHVnaW4/dGhpcy5wbHVnaW4rIjogIjoiIix0aGlzLm1lc3NhZ2UrPXRoaXMuZmlsZT90aGlzLmZpbGU6Ijxjc3MgaW5wdXQ+Iix0eXBlb2YgdGhpcy5saW5lIT0idW5kZWZpbmVkIiYmKHRoaXMubWVzc2FnZSs9IjoiK3RoaXMubGluZSsiOiIrdGhpcy5jb2x1bW4pLHRoaXMubWVzc2FnZSs9IjogIit0aGlzLnJlYXNvbn1zaG93U291cmNlQ29kZShlKXtpZighdGhpcy5zb3VyY2UpcmV0dXJuIiI7bGV0IHQ9dGhpcy5zb3VyY2U7ZT09bnVsbCYmKGU9dWMuaXNDb2xvclN1cHBvcnRlZCk7bGV0IGk9Zj0+ZixuPWY9PmYscz1mPT5mO2lmKGUpe2xldHtib2xkOmYsZ3JheTpkLHJlZDpwfT11Yy5jcmVhdGVDb2xvcnMoITApO249aD0+ZihwKGgpKSxpPWg9PmQoaCksZmMmJihzPWg9PmZjKGgpKX1sZXQgYT10LnNwbGl0KC9ccj9cbi8pLG89TWF0aC5tYXgodGhpcy5saW5lLTMsMCksbD1NYXRoLm1pbih0aGlzLmxpbmUrMixhLmxlbmd0aCksYz1TdHJpbmcobCkubGVuZ3RoO3JldHVybiBhLnNsaWNlKG8sbCkubWFwKChmLGQpPT57bGV0IHA9bysxK2QsaD0iICIrKCIgIitwKS5zbGljZSgtYykrIiB8ICI7aWYocD09PXRoaXMubGluZSl7aWYoZi5sZW5ndGg+MTYwKXtsZXQgdj0yMCx5PU1hdGgubWF4KDAsdGhpcy5jb2x1bW4tdiksdz1NYXRoLm1heCh0aGlzLmNvbHVtbit2LHRoaXMuZW5kQ29sdW1uK3YpLGs9Zi5zbGljZSh5LHcpLFM9aShoLnJlcGxhY2UoL1xkL2csIiAiKSkrZi5zbGljZSgwLE1hdGgubWluKHRoaXMuY29sdW1uLTEsdi0xKSkucmVwbGFjZSgvW15cdF0vZywiICIpO3JldHVybiBuKCI+IikraShoKStzKGspK2AKIGArUytuKCJeIil9bGV0IGI9aShoLnJlcGxhY2UoL1xkL2csIiAiKSkrZi5zbGljZSgwLHRoaXMuY29sdW1uLTEpLnJlcGxhY2UoL1teXHRdL2csIiAiKTtyZXR1cm4gbigiPiIpK2koaCkrcyhmKStgCiBgK2IrbigiXiIpfXJldHVybiIgIitpKGgpK3MoZil9KS5qb2luKGAKYCl9dG9TdHJpbmcoKXtsZXQgZT10aGlzLnNob3dTb3VyY2VDb2RlKCk7cmV0dXJuIGUmJihlPWAKCmArZStgCmApLHRoaXMubmFtZSsiOiAiK3RoaXMubWVzc2FnZStlfX07Y2MuZXhwb3J0cz1KdDtKdC5kZWZhdWx0PUp0fSk7dmFyIGZhPXgoKHgzLGRjKT0+e3UoKTsidXNlIHN0cmljdCI7dmFyIHBjPXthZnRlcjpgCmAsYmVmb3JlQ2xvc2U6YApgLGJlZm9yZUNvbW1lbnQ6YApgLGJlZm9yZURlY2w6YApgLGJlZm9yZU9wZW46IiAiLGJlZm9yZVJ1bGU6YApgLGNvbG9uOiI6ICIsY29tbWVudExlZnQ6IiAiLGNvbW1lbnRSaWdodDoiICIsZW1wdHlCb2R5OiIiLGluZGVudDoiICAgICIsc2VtaWNvbG9uOiExfTtmdW5jdGlvbiB2eChyKXtyZXR1cm4gclswXS50b1VwcGVyQ2FzZSgpK3Iuc2xpY2UoMSl9dmFyIG9uPWNsYXNze2NvbnN0cnVjdG9yKGUpe3RoaXMuYnVpbGRlcj1lfWF0cnVsZShlLHQpe2xldCBpPSJAIitlLm5hbWUsbj1lLnBhcmFtcz90aGlzLnJhd1ZhbHVlKGUsInBhcmFtcyIpOiIiO2lmKHR5cGVvZiBlLnJhd3MuYWZ0ZXJOYW1lIT0idW5kZWZpbmVkIj9pKz1lLnJhd3MuYWZ0ZXJOYW1lOm4mJihpKz0iICIpLGUubm9kZXMpdGhpcy5ibG9jayhlLGkrbik7ZWxzZXtsZXQgcz0oZS5yYXdzLmJldHdlZW58fCIiKSsodD8iOyI6IiIpO3RoaXMuYnVpbGRlcihpK24rcyxlKX19YmVmb3JlQWZ0ZXIoZSx0KXtsZXQgaTtlLnR5cGU9PT0iZGVjbCI/aT10aGlzLnJhdyhlLG51bGwsImJlZm9yZURlY2wiKTplLnR5cGU9PT0iY29tbWVudCI/aT10aGlzLnJhdyhlLG51bGwsImJlZm9yZUNvbW1lbnQiKTp0PT09ImJlZm9yZSI/aT10aGlzLnJhdyhlLG51bGwsImJlZm9yZVJ1bGUiKTppPXRoaXMucmF3KGUsbnVsbCwiYmVmb3JlQ2xvc2UiKTtsZXQgbj1lLnBhcmVudCxzPTA7Zm9yKDtuJiZuLnR5cGUhPT0icm9vdCI7KXMrPTEsbj1uLnBhcmVudDtpZihpLmluY2x1ZGVzKGAKYCkpe2xldCBhPXRoaXMucmF3KGUsbnVsbCwiaW5kZW50Iik7aWYoYS5sZW5ndGgpZm9yKGxldCBvPTA7bzxzO28rKylpKz1hfXJldHVybiBpfWJsb2NrKGUsdCl7bGV0IGk9dGhpcy5yYXcoZSwiYmV0d2VlbiIsImJlZm9yZU9wZW4iKTt0aGlzLmJ1aWxkZXIodCtpKyJ7IixlLCJzdGFydCIpO2xldCBuO2Uubm9kZXMmJmUubm9kZXMubGVuZ3RoPyh0aGlzLmJvZHkoZSksbj10aGlzLnJhdyhlLCJhZnRlciIpKTpuPXRoaXMucmF3KGUsImFmdGVyIiwiZW1wdHlCb2R5IiksbiYmdGhpcy5idWlsZGVyKG4pLHRoaXMuYnVpbGRlcigifSIsZSwiZW5kIil9Ym9keShlKXtsZXQgdD1lLm5vZGVzLmxlbmd0aC0xO2Zvcig7dD4wJiZlLm5vZGVzW3RdLnR5cGU9PT0iY29tbWVudCI7KXQtPTE7bGV0IGk9dGhpcy5yYXcoZSwic2VtaWNvbG9uIik7Zm9yKGxldCBuPTA7bjxlLm5vZGVzLmxlbmd0aDtuKyspe2xldCBzPWUubm9kZXNbbl0sYT10aGlzLnJhdyhzLCJiZWZvcmUiKTthJiZ0aGlzLmJ1aWxkZXIoYSksdGhpcy5zdHJpbmdpZnkocyx0IT09bnx8aSl9fWNvbW1lbnQoZSl7bGV0IHQ9dGhpcy5yYXcoZSwibGVmdCIsImNvbW1lbnRMZWZ0IiksaT10aGlzLnJhdyhlLCJyaWdodCIsImNvbW1lbnRSaWdodCIpO3RoaXMuYnVpbGRlcigiLyoiK3QrZS50ZXh0K2krIiovIixlKX1kZWNsKGUsdCl7bGV0IGk9dGhpcy5yYXcoZSwiYmV0d2VlbiIsImNvbG9uIiksbj1lLnByb3AraSt0aGlzLnJhd1ZhbHVlKGUsInZhbHVlIik7ZS5pbXBvcnRhbnQmJihuKz1lLnJhd3MuaW1wb3J0YW50fHwiICFpbXBvcnRhbnQiKSx0JiYobis9IjsiKSx0aGlzLmJ1aWxkZXIobixlKX1kb2N1bWVudChlKXt0aGlzLmJvZHkoZSl9cmF3KGUsdCxpKXtsZXQgbjtpZihpfHwoaT10KSx0JiYobj1lLnJhd3NbdF0sdHlwZW9mIG4hPSJ1bmRlZmluZWQiKSlyZXR1cm4gbjtsZXQgcz1lLnBhcmVudDtpZihpPT09ImJlZm9yZSImJighc3x8cy50eXBlPT09InJvb3QiJiZzLmZpcnN0PT09ZXx8cyYmcy50eXBlPT09ImRvY3VtZW50IikpcmV0dXJuIiI7aWYoIXMpcmV0dXJuIHBjW2ldO2xldCBhPWUucm9vdCgpO2lmKGEucmF3Q2FjaGV8fChhLnJhd0NhY2hlPXt9KSx0eXBlb2YgYS5yYXdDYWNoZVtpXSE9InVuZGVmaW5lZCIpcmV0dXJuIGEucmF3Q2FjaGVbaV07aWYoaT09PSJiZWZvcmUifHxpPT09ImFmdGVyIilyZXR1cm4gdGhpcy5iZWZvcmVBZnRlcihlLGkpO3tsZXQgbz0icmF3Iit2eChpKTt0aGlzW29dP249dGhpc1tvXShhLGUpOmEud2FsayhsPT57aWYobj1sLnJhd3NbdF0sdHlwZW9mIG4hPSJ1bmRlZmluZWQiKXJldHVybiExfSl9cmV0dXJuIHR5cGVvZiBuPT0idW5kZWZpbmVkIiYmKG49cGNbaV0pLGEucmF3Q2FjaGVbaV09bixufXJhd0JlZm9yZUNsb3NlKGUpe2xldCB0O3JldHVybiBlLndhbGsoaT0+e2lmKGkubm9kZXMmJmkubm9kZXMubGVuZ3RoPjAmJnR5cGVvZiBpLnJhd3MuYWZ0ZXIhPSJ1bmRlZmluZWQiKXJldHVybiB0PWkucmF3cy5hZnRlcix0LmluY2x1ZGVzKGAKYCkmJih0PXQucmVwbGFjZSgvW15cbl0rJC8sIiIpKSwhMX0pLHQmJih0PXQucmVwbGFjZSgvXFMvZywiIikpLHR9cmF3QmVmb3JlQ29tbWVudChlLHQpe2xldCBpO3JldHVybiBlLndhbGtDb21tZW50cyhuPT57aWYodHlwZW9mIG4ucmF3cy5iZWZvcmUhPSJ1bmRlZmluZWQiKXJldHVybiBpPW4ucmF3cy5iZWZvcmUsaS5pbmNsdWRlcyhgCmApJiYoaT1pLnJlcGxhY2UoL1teXG5dKyQvLCIiKSksITF9KSx0eXBlb2YgaT09InVuZGVmaW5lZCI/aT10aGlzLnJhdyh0LG51bGwsImJlZm9yZURlY2wiKTppJiYoaT1pLnJlcGxhY2UoL1xTL2csIiIpKSxpfXJhd0JlZm9yZURlY2woZSx0KXtsZXQgaTtyZXR1cm4gZS53YWxrRGVjbHMobj0+e2lmKHR5cGVvZiBuLnJhd3MuYmVmb3JlIT0idW5kZWZpbmVkIilyZXR1cm4gaT1uLnJhd3MuYmVmb3JlLGkuaW5jbHVkZXMoYApgKSYmKGk9aS5yZXBsYWNlKC9bXlxuXSskLywiIikpLCExfSksdHlwZW9mIGk9PSJ1bmRlZmluZWQiP2k9dGhpcy5yYXcodCxudWxsLCJiZWZvcmVSdWxlIik6aSYmKGk9aS5yZXBsYWNlKC9cUy9nLCIiKSksaX1yYXdCZWZvcmVPcGVuKGUpe2xldCB0O3JldHVybiBlLndhbGsoaT0+e2lmKGkudHlwZSE9PSJkZWNsIiYmKHQ9aS5yYXdzLmJldHdlZW4sdHlwZW9mIHQhPSJ1bmRlZmluZWQiKSlyZXR1cm4hMX0pLHR9cmF3QmVmb3JlUnVsZShlKXtsZXQgdDtyZXR1cm4gZS53YWxrKGk9PntpZihpLm5vZGVzJiYoaS5wYXJlbnQhPT1lfHxlLmZpcnN0IT09aSkmJnR5cGVvZiBpLnJhd3MuYmVmb3JlIT0idW5kZWZpbmVkIilyZXR1cm4gdD1pLnJhd3MuYmVmb3JlLHQuaW5jbHVkZXMoYApgKSYmKHQ9dC5yZXBsYWNlKC9bXlxuXSskLywiIikpLCExfSksdCYmKHQ9dC5yZXBsYWNlKC9cUy9nLCIiKSksdH1yYXdDb2xvbihlKXtsZXQgdDtyZXR1cm4gZS53YWxrRGVjbHMoaT0+e2lmKHR5cGVvZiBpLnJhd3MuYmV0d2VlbiE9InVuZGVmaW5lZCIpcmV0dXJuIHQ9aS5yYXdzLmJldHdlZW4ucmVwbGFjZSgvW15cczpdL2csIiIpLCExfSksdH1yYXdFbXB0eUJvZHkoZSl7bGV0IHQ7cmV0dXJuIGUud2FsayhpPT57aWYoaS5ub2RlcyYmaS5ub2Rlcy5sZW5ndGg9PT0wJiYodD1pLnJhd3MuYWZ0ZXIsdHlwZW9mIHQhPSJ1bmRlZmluZWQiKSlyZXR1cm4hMX0pLHR9cmF3SW5kZW50KGUpe2lmKGUucmF3cy5pbmRlbnQpcmV0dXJuIGUucmF3cy5pbmRlbnQ7bGV0IHQ7cmV0dXJuIGUud2FsayhpPT57bGV0IG49aS5wYXJlbnQ7aWYobiYmbiE9PWUmJm4ucGFyZW50JiZuLnBhcmVudD09PWUmJnR5cGVvZiBpLnJhd3MuYmVmb3JlIT0idW5kZWZpbmVkIil7bGV0IHM9aS5yYXdzLmJlZm9yZS5zcGxpdChgCmApO3JldHVybiB0PXNbcy5sZW5ndGgtMV0sdD10LnJlcGxhY2UoL1xTL2csIiIpLCExfX0pLHR9cmF3U2VtaWNvbG9uKGUpe2xldCB0O3JldHVybiBlLndhbGsoaT0+e2lmKGkubm9kZXMmJmkubm9kZXMubGVuZ3RoJiZpLmxhc3QudHlwZT09PSJkZWNsIiYmKHQ9aS5yYXdzLnNlbWljb2xvbix0eXBlb2YgdCE9InVuZGVmaW5lZCIpKXJldHVybiExfSksdH1yYXdWYWx1ZShlLHQpe2xldCBpPWVbdF0sbj1lLnJhd3NbdF07cmV0dXJuIG4mJm4udmFsdWU9PT1pP24ucmF3Oml9cm9vdChlKXt0aGlzLmJvZHkoZSksZS5yYXdzLmFmdGVyJiZ0aGlzLmJ1aWxkZXIoZS5yYXdzLmFmdGVyKX1ydWxlKGUpe3RoaXMuYmxvY2soZSx0aGlzLnJhd1ZhbHVlKGUsInNlbGVjdG9yIikpLGUucmF3cy5vd25TZW1pY29sb24mJnRoaXMuYnVpbGRlcihlLnJhd3Mub3duU2VtaWNvbG9uLGUsImVuZCIpfXN0cmluZ2lmeShlLHQpe2lmKCF0aGlzW2UudHlwZV0pdGhyb3cgbmV3IEVycm9yKCJVbmtub3duIEFTVCBub2RlIHR5cGUgIitlLnR5cGUrIi4gTWF5YmUgeW91IG5lZWQgdG8gY2hhbmdlIFBvc3RDU1Mgc3RyaW5naWZpZXIuIik7dGhpc1tlLnR5cGVdKGUsdCl9fTtkYy5leHBvcnRzPW9uO29uLmRlZmF1bHQ9b259KTt2YXIgVnI9eCgoazMsaGMpPT57dSgpOyJ1c2Ugc3RyaWN0Ijt2YXIgeHg9ZmEoKTtmdW5jdGlvbiBjYShyLGUpe25ldyB4eChlKS5zdHJpbmdpZnkocil9aGMuZXhwb3J0cz1jYTtjYS5kZWZhdWx0PWNhfSk7dmFyIGxuPXgoKFMzLHBhKT0+e3UoKTsidXNlIHN0cmljdCI7cGEuZXhwb3J0cy5pc0NsZWFuPVN5bWJvbCgiaXNDbGVhbiIpO3BhLmV4cG9ydHMubXk9U3ltYm9sKCJteSIpfSk7dmFyIEdyPXgoKEEzLG1jKT0+e3UoKTsidXNlIHN0cmljdCI7dmFyIGt4PWFuKCksU3g9ZmEoKSxBeD1WcigpLHtpc0NsZWFuOkhyLG15OkN4fT1sbigpO2Z1bmN0aW9uIGRhKHIsZSl7bGV0IHQ9bmV3IHIuY29uc3RydWN0b3I7Zm9yKGxldCBpIGluIHIpe2lmKCFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocixpKXx8aT09PSJwcm94eUNhY2hlIiljb250aW51ZTtsZXQgbj1yW2ldLHM9dHlwZW9mIG47aT09PSJwYXJlbnQiJiZzPT09Im9iamVjdCI/ZSYmKHRbaV09ZSk6aT09PSJzb3VyY2UiP3RbaV09bjpBcnJheS5pc0FycmF5KG4pP3RbaV09bi5tYXAoYT0+ZGEoYSx0KSk6KHM9PT0ib2JqZWN0IiYmbiE9PW51bGwmJihuPWRhKG4pKSx0W2ldPW4pfXJldHVybiB0fWZ1bmN0aW9uIFdyKHIsZSl7aWYoZSYmdHlwZW9mIGUub2Zmc2V0IT0idW5kZWZpbmVkIilyZXR1cm4gZS5vZmZzZXQ7bGV0IHQ9MSxpPTEsbj0wO2ZvcihsZXQgcz0wO3M8ci5sZW5ndGg7cysrKXtpZihpPT09ZS5saW5lJiZ0PT09ZS5jb2x1bW4pe249czticmVha31yW3NdPT09YApgPyh0PTEsaSs9MSk6dCs9MX1yZXR1cm4gbn12YXIgdW49Y2xhc3N7Y29uc3RydWN0b3IoZT17fSl7dGhpcy5yYXdzPXt9LHRoaXNbSHJdPSExLHRoaXNbQ3hdPSEwO2ZvcihsZXQgdCBpbiBlKWlmKHQ9PT0ibm9kZXMiKXt0aGlzLm5vZGVzPVtdO2ZvcihsZXQgaSBvZiBlW3RdKXR5cGVvZiBpLmNsb25lPT0iZnVuY3Rpb24iP3RoaXMuYXBwZW5kKGkuY2xvbmUoKSk6dGhpcy5hcHBlbmQoaSl9ZWxzZSB0aGlzW3RdPWVbdF19YWRkVG9FcnJvcihlKXtpZihlLnBvc3Rjc3NOb2RlPXRoaXMsZS5zdGFjayYmdGhpcy5zb3VyY2UmJi9cblxzezR9YXQgLy50ZXN0KGUuc3RhY2spKXtsZXQgdD10aGlzLnNvdXJjZTtlLnN0YWNrPWUuc3RhY2sucmVwbGFjZSgvXG5cc3s0fWF0IC8sYCQmJHt0LmlucHV0LmZyb219OiR7dC5zdGFydC5saW5lfToke3Quc3RhcnQuY29sdW1ufSQmYCl9cmV0dXJuIGV9YWZ0ZXIoZSl7cmV0dXJuIHRoaXMucGFyZW50Lmluc2VydEFmdGVyKHRoaXMsZSksdGhpc31hc3NpZ24oZT17fSl7Zm9yKGxldCB0IGluIGUpdGhpc1t0XT1lW3RdO3JldHVybiB0aGlzfWJlZm9yZShlKXtyZXR1cm4gdGhpcy5wYXJlbnQuaW5zZXJ0QmVmb3JlKHRoaXMsZSksdGhpc31jbGVhblJhd3MoZSl7ZGVsZXRlIHRoaXMucmF3cy5iZWZvcmUsZGVsZXRlIHRoaXMucmF3cy5hZnRlcixlfHxkZWxldGUgdGhpcy5yYXdzLmJldHdlZW59Y2xvbmUoZT17fSl7bGV0IHQ9ZGEodGhpcyk7Zm9yKGxldCBpIGluIGUpdFtpXT1lW2ldO3JldHVybiB0fWNsb25lQWZ0ZXIoZT17fSl7bGV0IHQ9dGhpcy5jbG9uZShlKTtyZXR1cm4gdGhpcy5wYXJlbnQuaW5zZXJ0QWZ0ZXIodGhpcyx0KSx0fWNsb25lQmVmb3JlKGU9e30pe2xldCB0PXRoaXMuY2xvbmUoZSk7cmV0dXJuIHRoaXMucGFyZW50Lmluc2VydEJlZm9yZSh0aGlzLHQpLHR9ZXJyb3IoZSx0PXt9KXtpZih0aGlzLnNvdXJjZSl7bGV0e2VuZDppLHN0YXJ0Om59PXRoaXMucmFuZ2VCeSh0KTtyZXR1cm4gdGhpcy5zb3VyY2UuaW5wdXQuZXJyb3IoZSx7Y29sdW1uOm4uY29sdW1uLGxpbmU6bi5saW5lfSx7Y29sdW1uOmkuY29sdW1uLGxpbmU6aS5saW5lfSx0KX1yZXR1cm4gbmV3IGt4KGUpfWdldFByb3h5UHJvY2Vzc29yKCl7cmV0dXJue2dldChlLHQpe3JldHVybiB0PT09InByb3h5T2YiP2U6dD09PSJyb290Ij8oKT0+ZS5yb290KCkudG9Qcm94eSgpOmVbdF19LHNldChlLHQsaSl7cmV0dXJuIGVbdF09PT1pfHwoZVt0XT1pLCh0PT09InByb3AifHx0PT09InZhbHVlInx8dD09PSJuYW1lInx8dD09PSJwYXJhbXMifHx0PT09ImltcG9ydGFudCJ8fHQ9PT0idGV4dCIpJiZlLm1hcmtEaXJ0eSgpKSwhMH19fW1hcmtDbGVhbigpe3RoaXNbSHJdPSEwfW1hcmtEaXJ0eSgpe2lmKHRoaXNbSHJdKXt0aGlzW0hyXT0hMTtsZXQgZT10aGlzO2Zvcig7ZT1lLnBhcmVudDspZVtIcl09ITF9fW5leHQoKXtpZighdGhpcy5wYXJlbnQpcmV0dXJuO2xldCBlPXRoaXMucGFyZW50LmluZGV4KHRoaXMpO3JldHVybiB0aGlzLnBhcmVudC5ub2Rlc1tlKzFdfXBvc2l0aW9uQnkoZSl7bGV0IHQ9dGhpcy5zb3VyY2Uuc3RhcnQ7aWYoZS5pbmRleCl0PXRoaXMucG9zaXRpb25JbnNpZGUoZS5pbmRleCk7ZWxzZSBpZihlLndvcmQpe2xldCBuPXRoaXMuc291cmNlLmlucHV0LmNzcy5zbGljZShXcih0aGlzLnNvdXJjZS5pbnB1dC5jc3MsdGhpcy5zb3VyY2Uuc3RhcnQpLFdyKHRoaXMuc291cmNlLmlucHV0LmNzcyx0aGlzLnNvdXJjZS5lbmQpKS5pbmRleE9mKGUud29yZCk7biE9PS0xJiYodD10aGlzLnBvc2l0aW9uSW5zaWRlKG4pKX1yZXR1cm4gdH1wb3NpdGlvbkluc2lkZShlKXtsZXQgdD10aGlzLnNvdXJjZS5zdGFydC5jb2x1bW4saT10aGlzLnNvdXJjZS5zdGFydC5saW5lLG49V3IodGhpcy5zb3VyY2UuaW5wdXQuY3NzLHRoaXMuc291cmNlLnN0YXJ0KSxzPW4rZTtmb3IobGV0IGE9bjthPHM7YSsrKXRoaXMuc291cmNlLmlucHV0LmNzc1thXT09PWAKYD8odD0xLGkrPTEpOnQrPTE7cmV0dXJue2NvbHVtbjp0LGxpbmU6aX19cHJldigpe2lmKCF0aGlzLnBhcmVudClyZXR1cm47bGV0IGU9dGhpcy5wYXJlbnQuaW5kZXgodGhpcyk7cmV0dXJuIHRoaXMucGFyZW50Lm5vZGVzW2UtMV19cmFuZ2VCeShlKXtsZXQgdD17Y29sdW1uOnRoaXMuc291cmNlLnN0YXJ0LmNvbHVtbixsaW5lOnRoaXMuc291cmNlLnN0YXJ0LmxpbmV9LGk9dGhpcy5zb3VyY2UuZW5kP3tjb2x1bW46dGhpcy5zb3VyY2UuZW5kLmNvbHVtbisxLGxpbmU6dGhpcy5zb3VyY2UuZW5kLmxpbmV9Ontjb2x1bW46dC5jb2x1bW4rMSxsaW5lOnQubGluZX07aWYoZS53b3JkKXtsZXQgcz10aGlzLnNvdXJjZS5pbnB1dC5jc3Muc2xpY2UoV3IodGhpcy5zb3VyY2UuaW5wdXQuY3NzLHRoaXMuc291cmNlLnN0YXJ0KSxXcih0aGlzLnNvdXJjZS5pbnB1dC5jc3MsdGhpcy5zb3VyY2UuZW5kKSkuaW5kZXhPZihlLndvcmQpO3MhPT0tMSYmKHQ9dGhpcy5wb3NpdGlvbkluc2lkZShzKSxpPXRoaXMucG9zaXRpb25JbnNpZGUocytlLndvcmQubGVuZ3RoKSl9ZWxzZSBlLnN0YXJ0P3Q9e2NvbHVtbjplLnN0YXJ0LmNvbHVtbixsaW5lOmUuc3RhcnQubGluZX06ZS5pbmRleCYmKHQ9dGhpcy5wb3NpdGlvbkluc2lkZShlLmluZGV4KSksZS5lbmQ/aT17Y29sdW1uOmUuZW5kLmNvbHVtbixsaW5lOmUuZW5kLmxpbmV9OnR5cGVvZiBlLmVuZEluZGV4PT0ibnVtYmVyIj9pPXRoaXMucG9zaXRpb25JbnNpZGUoZS5lbmRJbmRleCk6ZS5pbmRleCYmKGk9dGhpcy5wb3NpdGlvbkluc2lkZShlLmluZGV4KzEpKTtyZXR1cm4oaS5saW5lPHQubGluZXx8aS5saW5lPT09dC5saW5lJiZpLmNvbHVtbjw9dC5jb2x1bW4pJiYoaT17Y29sdW1uOnQuY29sdW1uKzEsbGluZTp0LmxpbmV9KSx7ZW5kOmksc3RhcnQ6dH19cmF3KGUsdCl7cmV0dXJuIG5ldyBTeCgpLnJhdyh0aGlzLGUsdCl9cmVtb3ZlKCl7cmV0dXJuIHRoaXMucGFyZW50JiZ0aGlzLnBhcmVudC5yZW1vdmVDaGlsZCh0aGlzKSx0aGlzLnBhcmVudD12b2lkIDAsdGhpc31yZXBsYWNlV2l0aCguLi5lKXtpZih0aGlzLnBhcmVudCl7bGV0IHQ9dGhpcyxpPSExO2ZvcihsZXQgbiBvZiBlKW49PT10aGlzP2k9ITA6aT8odGhpcy5wYXJlbnQuaW5zZXJ0QWZ0ZXIodCxuKSx0PW4pOnRoaXMucGFyZW50Lmluc2VydEJlZm9yZSh0LG4pO2l8fHRoaXMucmVtb3ZlKCl9cmV0dXJuIHRoaXN9cm9vdCgpe2xldCBlPXRoaXM7Zm9yKDtlLnBhcmVudCYmZS5wYXJlbnQudHlwZSE9PSJkb2N1bWVudCI7KWU9ZS5wYXJlbnQ7cmV0dXJuIGV9dG9KU09OKGUsdCl7bGV0IGk9e30sbj10PT1udWxsO3Q9dHx8bmV3IE1hcDtsZXQgcz0wO2ZvcihsZXQgYSBpbiB0aGlzKXtpZighT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHRoaXMsYSl8fGE9PT0icGFyZW50Inx8YT09PSJwcm94eUNhY2hlIiljb250aW51ZTtsZXQgbz10aGlzW2FdO2lmKEFycmF5LmlzQXJyYXkobykpaVthXT1vLm1hcChsPT50eXBlb2YgbD09Im9iamVjdCImJmwudG9KU09OP2wudG9KU09OKG51bGwsdCk6bCk7ZWxzZSBpZih0eXBlb2Ygbz09Im9iamVjdCImJm8udG9KU09OKWlbYV09by50b0pTT04obnVsbCx0KTtlbHNlIGlmKGE9PT0ic291cmNlIil7bGV0IGw9dC5nZXQoby5pbnB1dCk7bD09bnVsbCYmKGw9cyx0LnNldChvLmlucHV0LHMpLHMrKyksaVthXT17ZW5kOm8uZW5kLGlucHV0SWQ6bCxzdGFydDpvLnN0YXJ0fX1lbHNlIGlbYV09b31yZXR1cm4gbiYmKGkuaW5wdXRzPVsuLi50LmtleXMoKV0ubWFwKGE9PmEudG9KU09OKCkpKSxpfXRvUHJveHkoKXtyZXR1cm4gdGhpcy5wcm94eUNhY2hlfHwodGhpcy5wcm94eUNhY2hlPW5ldyBQcm94eSh0aGlzLHRoaXMuZ2V0UHJveHlQcm9jZXNzb3IoKSkpLHRoaXMucHJveHlDYWNoZX10b1N0cmluZyhlPUF4KXtlLnN0cmluZ2lmeSYmKGU9ZS5zdHJpbmdpZnkpO2xldCB0PSIiO3JldHVybiBlKHRoaXMsaT0+e3QrPWl9KSx0fXdhcm4oZSx0LGkpe2xldCBuPXtub2RlOnRoaXN9O2ZvcihsZXQgcyBpbiBpKW5bc109aVtzXTtyZXR1cm4gZS53YXJuKHQsbil9Z2V0IHByb3h5T2YoKXtyZXR1cm4gdGhpc319O21jLmV4cG9ydHM9dW47dW4uZGVmYXVsdD11bn0pO3ZhciBRcj14KChDMyxnYyk9Pnt1KCk7InVzZSBzdHJpY3QiO3ZhciBfeD1HcigpLGZuPWNsYXNzIGV4dGVuZHMgX3h7Y29uc3RydWN0b3IoZSl7c3VwZXIoZSk7dGhpcy50eXBlPSJjb21tZW50In19O2djLmV4cG9ydHM9Zm47Zm4uZGVmYXVsdD1mbn0pO3ZhciBZcj14KChfMyx5Yyk9Pnt1KCk7InVzZSBzdHJpY3QiO3ZhciBFeD1HcigpLGNuPWNsYXNzIGV4dGVuZHMgRXh7Y29uc3RydWN0b3IoZSl7ZSYmdHlwZW9mIGUudmFsdWUhPSJ1bmRlZmluZWQiJiZ0eXBlb2YgZS52YWx1ZSE9InN0cmluZyImJihlPXsuLi5lLHZhbHVlOlN0cmluZyhlLnZhbHVlKX0pO3N1cGVyKGUpO3RoaXMudHlwZT0iZGVjbCJ9Z2V0IHZhcmlhYmxlKCl7cmV0dXJuIHRoaXMucHJvcC5zdGFydHNXaXRoKCItLSIpfHx0aGlzLnByb3BbMF09PT0iJCJ9fTt5Yy5leHBvcnRzPWNuO2NuLmRlZmF1bHQ9Y259KTt2YXIgRXQ9eCgoRTMsX2MpPT57dSgpOyJ1c2Ugc3RyaWN0Ijt2YXIgYmM9UXIoKSx3Yz1ZcigpLE94PUdyKCkse2lzQ2xlYW46dmMsbXk6eGN9PWxuKCksaGEsa2MsU2MsbWE7ZnVuY3Rpb24gQWMocil7cmV0dXJuIHIubWFwKGU9PihlLm5vZGVzJiYoZS5ub2Rlcz1BYyhlLm5vZGVzKSksZGVsZXRlIGUuc291cmNlLGUpKX1mdW5jdGlvbiBDYyhyKXtpZihyW3ZjXT0hMSxyLnByb3h5T2Yubm9kZXMpZm9yKGxldCBlIG9mIHIucHJveHlPZi5ub2RlcylDYyhlKX12YXIgRmU9Y2xhc3MgZXh0ZW5kcyBPeHthcHBlbmQoLi4uZSl7Zm9yKGxldCB0IG9mIGUpe2xldCBpPXRoaXMubm9ybWFsaXplKHQsdGhpcy5sYXN0KTtmb3IobGV0IG4gb2YgaSl0aGlzLnByb3h5T2Yubm9kZXMucHVzaChuKX1yZXR1cm4gdGhpcy5tYXJrRGlydHkoKSx0aGlzfWNsZWFuUmF3cyhlKXtpZihzdXBlci5jbGVhblJhd3MoZSksdGhpcy5ub2Rlcylmb3IobGV0IHQgb2YgdGhpcy5ub2Rlcyl0LmNsZWFuUmF3cyhlKX1lYWNoKGUpe2lmKCF0aGlzLnByb3h5T2Yubm9kZXMpcmV0dXJuO2xldCB0PXRoaXMuZ2V0SXRlcmF0b3IoKSxpLG47Zm9yKDt0aGlzLmluZGV4ZXNbdF08dGhpcy5wcm94eU9mLm5vZGVzLmxlbmd0aCYmKGk9dGhpcy5pbmRleGVzW3RdLG49ZSh0aGlzLnByb3h5T2Yubm9kZXNbaV0saSksbiE9PSExKTspdGhpcy5pbmRleGVzW3RdKz0xO3JldHVybiBkZWxldGUgdGhpcy5pbmRleGVzW3RdLG59ZXZlcnkoZSl7cmV0dXJuIHRoaXMubm9kZXMuZXZlcnkoZSl9Z2V0SXRlcmF0b3IoKXt0aGlzLmxhc3RFYWNofHwodGhpcy5sYXN0RWFjaD0wKSx0aGlzLmluZGV4ZXN8fCh0aGlzLmluZGV4ZXM9e30pLHRoaXMubGFzdEVhY2grPTE7bGV0IGU9dGhpcy5sYXN0RWFjaDtyZXR1cm4gdGhpcy5pbmRleGVzW2VdPTAsZX1nZXRQcm94eVByb2Nlc3Nvcigpe3JldHVybntnZXQoZSx0KXtyZXR1cm4gdD09PSJwcm94eU9mIj9lOmVbdF0/dD09PSJlYWNoInx8dHlwZW9mIHQ9PSJzdHJpbmciJiZ0LnN0YXJ0c1dpdGgoIndhbGsiKT8oLi4uaSk9PmVbdF0oLi4uaS5tYXAobj0+dHlwZW9mIG49PSJmdW5jdGlvbiI/KHMsYSk9Pm4ocy50b1Byb3h5KCksYSk6bikpOnQ9PT0iZXZlcnkifHx0PT09InNvbWUiP2k9PmVbdF0oKG4sLi4ucyk9Pmkobi50b1Byb3h5KCksLi4ucykpOnQ9PT0icm9vdCI/KCk9PmUucm9vdCgpLnRvUHJveHkoKTp0PT09Im5vZGVzIj9lLm5vZGVzLm1hcChpPT5pLnRvUHJveHkoKSk6dD09PSJmaXJzdCJ8fHQ9PT0ibGFzdCI/ZVt0XS50b1Byb3h5KCk6ZVt0XTplW3RdfSxzZXQoZSx0LGkpe3JldHVybiBlW3RdPT09aXx8KGVbdF09aSwodD09PSJuYW1lInx8dD09PSJwYXJhbXMifHx0PT09InNlbGVjdG9yIikmJmUubWFya0RpcnR5KCkpLCEwfX19aW5kZXgoZSl7cmV0dXJuIHR5cGVvZiBlPT0ibnVtYmVyIj9lOihlLnByb3h5T2YmJihlPWUucHJveHlPZiksdGhpcy5wcm94eU9mLm5vZGVzLmluZGV4T2YoZSkpfWluc2VydEFmdGVyKGUsdCl7bGV0IGk9dGhpcy5pbmRleChlKSxuPXRoaXMubm9ybWFsaXplKHQsdGhpcy5wcm94eU9mLm5vZGVzW2ldKS5yZXZlcnNlKCk7aT10aGlzLmluZGV4KGUpO2ZvcihsZXQgYSBvZiBuKXRoaXMucHJveHlPZi5ub2Rlcy5zcGxpY2UoaSsxLDAsYSk7bGV0IHM7Zm9yKGxldCBhIGluIHRoaXMuaW5kZXhlcylzPXRoaXMuaW5kZXhlc1thXSxpPHMmJih0aGlzLmluZGV4ZXNbYV09cytuLmxlbmd0aCk7cmV0dXJuIHRoaXMubWFya0RpcnR5KCksdGhpc31pbnNlcnRCZWZvcmUoZSx0KXtsZXQgaT10aGlzLmluZGV4KGUpLG49aT09PTA/InByZXBlbmQiOiExLHM9dGhpcy5ub3JtYWxpemUodCx0aGlzLnByb3h5T2Yubm9kZXNbaV0sbikucmV2ZXJzZSgpO2k9dGhpcy5pbmRleChlKTtmb3IobGV0IG8gb2Ygcyl0aGlzLnByb3h5T2Yubm9kZXMuc3BsaWNlKGksMCxvKTtsZXQgYTtmb3IobGV0IG8gaW4gdGhpcy5pbmRleGVzKWE9dGhpcy5pbmRleGVzW29dLGk8PWEmJih0aGlzLmluZGV4ZXNbb109YStzLmxlbmd0aCk7cmV0dXJuIHRoaXMubWFya0RpcnR5KCksdGhpc31ub3JtYWxpemUoZSx0KXtpZih0eXBlb2YgZT09InN0cmluZyIpZT1BYyhrYyhlKS5ub2Rlcyk7ZWxzZSBpZih0eXBlb2YgZT09InVuZGVmaW5lZCIpZT1bXTtlbHNlIGlmKEFycmF5LmlzQXJyYXkoZSkpe2U9ZS5zbGljZSgwKTtmb3IobGV0IG4gb2YgZSluLnBhcmVudCYmbi5wYXJlbnQucmVtb3ZlQ2hpbGQobiwiaWdub3JlIil9ZWxzZSBpZihlLnR5cGU9PT0icm9vdCImJnRoaXMudHlwZSE9PSJkb2N1bWVudCIpe2U9ZS5ub2Rlcy5zbGljZSgwKTtmb3IobGV0IG4gb2YgZSluLnBhcmVudCYmbi5wYXJlbnQucmVtb3ZlQ2hpbGQobiwiaWdub3JlIil9ZWxzZSBpZihlLnR5cGUpZT1bZV07ZWxzZSBpZihlLnByb3Ape2lmKHR5cGVvZiBlLnZhbHVlPT0idW5kZWZpbmVkIil0aHJvdyBuZXcgRXJyb3IoIlZhbHVlIGZpZWxkIGlzIG1pc3NlZCBpbiBub2RlIGNyZWF0aW9uIik7dHlwZW9mIGUudmFsdWUhPSJzdHJpbmciJiYoZS52YWx1ZT1TdHJpbmcoZS52YWx1ZSkpLGU9W25ldyB3YyhlKV19ZWxzZSBpZihlLnNlbGVjdG9yfHxlLnNlbGVjdG9ycyllPVtuZXcgbWEoZSldO2Vsc2UgaWYoZS5uYW1lKWU9W25ldyBoYShlKV07ZWxzZSBpZihlLnRleHQpZT1bbmV3IGJjKGUpXTtlbHNlIHRocm93IG5ldyBFcnJvcigiVW5rbm93biBub2RlIHR5cGUgaW4gbm9kZSBjcmVhdGlvbiIpO3JldHVybiBlLm1hcChuPT4oblt4Y118fEZlLnJlYnVpbGQobiksbj1uLnByb3h5T2Ysbi5wYXJlbnQmJm4ucGFyZW50LnJlbW92ZUNoaWxkKG4pLG5bdmNdJiZDYyhuKSxuLnJhd3N8fChuLnJhd3M9e30pLHR5cGVvZiBuLnJhd3MuYmVmb3JlPT0idW5kZWZpbmVkIiYmdCYmdHlwZW9mIHQucmF3cy5iZWZvcmUhPSJ1bmRlZmluZWQiJiYobi5yYXdzLmJlZm9yZT10LnJhd3MuYmVmb3JlLnJlcGxhY2UoL1xTL2csIiIpKSxuLnBhcmVudD10aGlzLnByb3h5T2YsbikpfXByZXBlbmQoLi4uZSl7ZT1lLnJldmVyc2UoKTtmb3IobGV0IHQgb2YgZSl7bGV0IGk9dGhpcy5ub3JtYWxpemUodCx0aGlzLmZpcnN0LCJwcmVwZW5kIikucmV2ZXJzZSgpO2ZvcihsZXQgbiBvZiBpKXRoaXMucHJveHlPZi5ub2Rlcy51bnNoaWZ0KG4pO2ZvcihsZXQgbiBpbiB0aGlzLmluZGV4ZXMpdGhpcy5pbmRleGVzW25dPXRoaXMuaW5kZXhlc1tuXStpLmxlbmd0aH1yZXR1cm4gdGhpcy5tYXJrRGlydHkoKSx0aGlzfXB1c2goZSl7cmV0dXJuIGUucGFyZW50PXRoaXMsdGhpcy5wcm94eU9mLm5vZGVzLnB1c2goZSksdGhpc31yZW1vdmVBbGwoKXtmb3IobGV0IGUgb2YgdGhpcy5wcm94eU9mLm5vZGVzKWUucGFyZW50PXZvaWQgMDtyZXR1cm4gdGhpcy5wcm94eU9mLm5vZGVzPVtdLHRoaXMubWFya0RpcnR5KCksdGhpc31yZW1vdmVDaGlsZChlKXtlPXRoaXMuaW5kZXgoZSksdGhpcy5wcm94eU9mLm5vZGVzW2VdLnBhcmVudD12b2lkIDAsdGhpcy5wcm94eU9mLm5vZGVzLnNwbGljZShlLDEpO2xldCB0O2ZvcihsZXQgaSBpbiB0aGlzLmluZGV4ZXMpdD10aGlzLmluZGV4ZXNbaV0sdD49ZSYmKHRoaXMuaW5kZXhlc1tpXT10LTEpO3JldHVybiB0aGlzLm1hcmtEaXJ0eSgpLHRoaXN9cmVwbGFjZVZhbHVlcyhlLHQsaSl7cmV0dXJuIGl8fChpPXQsdD17fSksdGhpcy53YWxrRGVjbHMobj0+e3QucHJvcHMmJiF0LnByb3BzLmluY2x1ZGVzKG4ucHJvcCl8fHQuZmFzdCYmIW4udmFsdWUuaW5jbHVkZXModC5mYXN0KXx8KG4udmFsdWU9bi52YWx1ZS5yZXBsYWNlKGUsaSkpfSksdGhpcy5tYXJrRGlydHkoKSx0aGlzfXNvbWUoZSl7cmV0dXJuIHRoaXMubm9kZXMuc29tZShlKX13YWxrKGUpe3JldHVybiB0aGlzLmVhY2goKHQsaSk9PntsZXQgbjt0cnl7bj1lKHQsaSl9Y2F0Y2gocyl7dGhyb3cgdC5hZGRUb0Vycm9yKHMpfXJldHVybiBuIT09ITEmJnQud2FsayYmKG49dC53YWxrKGUpKSxufSl9d2Fsa0F0UnVsZXMoZSx0KXtyZXR1cm4gdD9lIGluc3RhbmNlb2YgUmVnRXhwP3RoaXMud2FsaygoaSxuKT0+e2lmKGkudHlwZT09PSJhdHJ1bGUiJiZlLnRlc3QoaS5uYW1lKSlyZXR1cm4gdChpLG4pfSk6dGhpcy53YWxrKChpLG4pPT57aWYoaS50eXBlPT09ImF0cnVsZSImJmkubmFtZT09PWUpcmV0dXJuIHQoaSxuKX0pOih0PWUsdGhpcy53YWxrKChpLG4pPT57aWYoaS50eXBlPT09ImF0cnVsZSIpcmV0dXJuIHQoaSxuKX0pKX13YWxrQ29tbWVudHMoZSl7cmV0dXJuIHRoaXMud2FsaygodCxpKT0+e2lmKHQudHlwZT09PSJjb21tZW50IilyZXR1cm4gZSh0LGkpfSl9d2Fsa0RlY2xzKGUsdCl7cmV0dXJuIHQ/ZSBpbnN0YW5jZW9mIFJlZ0V4cD90aGlzLndhbGsoKGksbik9PntpZihpLnR5cGU9PT0iZGVjbCImJmUudGVzdChpLnByb3ApKXJldHVybiB0KGksbil9KTp0aGlzLndhbGsoKGksbik9PntpZihpLnR5cGU9PT0iZGVjbCImJmkucHJvcD09PWUpcmV0dXJuIHQoaSxuKX0pOih0PWUsdGhpcy53YWxrKChpLG4pPT57aWYoaS50eXBlPT09ImRlY2wiKXJldHVybiB0KGksbil9KSl9d2Fsa1J1bGVzKGUsdCl7cmV0dXJuIHQ/ZSBpbnN0YW5jZW9mIFJlZ0V4cD90aGlzLndhbGsoKGksbik9PntpZihpLnR5cGU9PT0icnVsZSImJmUudGVzdChpLnNlbGVjdG9yKSlyZXR1cm4gdChpLG4pfSk6dGhpcy53YWxrKChpLG4pPT57aWYoaS50eXBlPT09InJ1bGUiJiZpLnNlbGVjdG9yPT09ZSlyZXR1cm4gdChpLG4pfSk6KHQ9ZSx0aGlzLndhbGsoKGksbik9PntpZihpLnR5cGU9PT0icnVsZSIpcmV0dXJuIHQoaSxuKX0pKX1nZXQgZmlyc3QoKXtpZighIXRoaXMucHJveHlPZi5ub2RlcylyZXR1cm4gdGhpcy5wcm94eU9mLm5vZGVzWzBdfWdldCBsYXN0KCl7aWYoISF0aGlzLnByb3h5T2Yubm9kZXMpcmV0dXJuIHRoaXMucHJveHlPZi5ub2Rlc1t0aGlzLnByb3h5T2Yubm9kZXMubGVuZ3RoLTFdfX07RmUucmVnaXN0ZXJQYXJzZT1yPT57a2M9cn07RmUucmVnaXN0ZXJSdWxlPXI9PnttYT1yfTtGZS5yZWdpc3RlckF0UnVsZT1yPT57aGE9cn07RmUucmVnaXN0ZXJSb290PXI9PntTYz1yfTtfYy5leHBvcnRzPUZlO0ZlLmRlZmF1bHQ9RmU7RmUucmVidWlsZD1yPT57ci50eXBlPT09ImF0cnVsZSI/T2JqZWN0LnNldFByb3RvdHlwZU9mKHIsaGEucHJvdG90eXBlKTpyLnR5cGU9PT0icnVsZSI/T2JqZWN0LnNldFByb3RvdHlwZU9mKHIsbWEucHJvdG90eXBlKTpyLnR5cGU9PT0iZGVjbCI/T2JqZWN0LnNldFByb3RvdHlwZU9mKHIsd2MucHJvdG90eXBlKTpyLnR5cGU9PT0iY29tbWVudCI/T2JqZWN0LnNldFByb3RvdHlwZU9mKHIsYmMucHJvdG90eXBlKTpyLnR5cGU9PT0icm9vdCImJk9iamVjdC5zZXRQcm90b3R5cGVPZihyLFNjLnByb3RvdHlwZSksclt4Y109ITAsci5ub2RlcyYmci5ub2Rlcy5mb3JFYWNoKGU9PntGZS5yZWJ1aWxkKGUpfSl9fSk7dmFyIHBuPXgoKE8zLE9jKT0+e3UoKTsidXNlIHN0cmljdCI7dmFyIEVjPUV0KCksS3I9Y2xhc3MgZXh0ZW5kcyBFY3tjb25zdHJ1Y3RvcihlKXtzdXBlcihlKTt0aGlzLnR5cGU9ImF0cnVsZSJ9YXBwZW5kKC4uLmUpe3JldHVybiB0aGlzLnByb3h5T2Yubm9kZXN8fCh0aGlzLm5vZGVzPVtdKSxzdXBlci5hcHBlbmQoLi4uZSl9cHJlcGVuZCguLi5lKXtyZXR1cm4gdGhpcy5wcm94eU9mLm5vZGVzfHwodGhpcy5ub2Rlcz1bXSksc3VwZXIucHJlcGVuZCguLi5lKX19O09jLmV4cG9ydHM9S3I7S3IuZGVmYXVsdD1LcjtFYy5yZWdpc3RlckF0UnVsZShLcil9KTt2YXIgZG49eCgoVDMsUGMpPT57dSgpOyJ1c2Ugc3RyaWN0Ijt2YXIgVHg9RXQoKSxUYyxSYyxlcj1jbGFzcyBleHRlbmRzIFR4e2NvbnN0cnVjdG9yKGUpe3N1cGVyKHt0eXBlOiJkb2N1bWVudCIsLi4uZX0pO3RoaXMubm9kZXN8fCh0aGlzLm5vZGVzPVtdKX10b1Jlc3VsdChlPXt9KXtyZXR1cm4gbmV3IFRjKG5ldyBSYyx0aGlzLGUpLnN0cmluZ2lmeSgpfX07ZXIucmVnaXN0ZXJMYXp5UmVzdWx0PXI9PntUYz1yfTtlci5yZWdpc3RlclByb2Nlc3Nvcj1yPT57UmM9cn07UGMuZXhwb3J0cz1lcjtlci5kZWZhdWx0PWVyfSk7dmFyIERjPXgoKFIzLEljKT0+e3UoKTt2YXIgUng9InVzZWFuZG9tLTI2VDE5ODM0MFBYNzVweEpBQ0tWRVJZTUlOREJVU0hXT0xGX0dRWmJmZ2hqa2xxdnd5enJpY3QiLFB4PShyLGU9MjEpPT4odD1lKT0+e2xldCBpPSIiLG49dDtmb3IoO24tLTspaSs9cltNYXRoLnJhbmRvbSgpKnIubGVuZ3RofDBdO3JldHVybiBpfSxJeD0ocj0yMSk9PntsZXQgZT0iIix0PXI7Zm9yKDt0LS07KWUrPVJ4W01hdGgucmFuZG9tKCkqNjR8MF07cmV0dXJuIGV9O0ljLmV4cG9ydHM9e25hbm9pZDpJeCxjdXN0b21BbHBoYWJldDpQeH19KTt2YXIgcWM9eCgoKT0+e3UoKX0pO3ZhciBnYT14KChEMywkYyk9Pnt1KCk7JGMuZXhwb3J0cz17fX0pO3ZhciBtbj14KChxMyxCYyk9Pnt1KCk7InVzZSBzdHJpY3QiO3ZhcntuYW5vaWQ6RHh9PURjKCkse2lzQWJzb2x1dGU6eWEscmVzb2x2ZTpiYX09KGV0KCksVXIpLHtTb3VyY2VNYXBDb25zdW1lcjpxeCxTb3VyY2VNYXBHZW5lcmF0b3I6JHh9PXFjKCkse2ZpbGVVUkxUb1BhdGg6TGMscGF0aFRvRmlsZVVSTDpobn09KGxhKCksbGMpLE1jPWFuKCksTHg9Z2EoKSx3YT11YSgpLHZhPVN5bWJvbCgiZnJvbU9mZnNldENhY2hlIiksTXg9Qm9vbGVhbihxeCYmJHgpLE5jPUJvb2xlYW4oYmEmJnlhKSxYcj1jbGFzc3tjb25zdHJ1Y3RvcihlLHQ9e30pe2lmKGU9PT1udWxsfHx0eXBlb2YgZT09InVuZGVmaW5lZCJ8fHR5cGVvZiBlPT0ib2JqZWN0IiYmIWUudG9TdHJpbmcpdGhyb3cgbmV3IEVycm9yKGBQb3N0Q1NTIHJlY2VpdmVkICR7ZX0gaW5zdGVhZCBvZiBDU1Mgc3RyaW5nYCk7aWYodGhpcy5jc3M9ZS50b1N0cmluZygpLHRoaXMuY3NzWzBdPT09Ilx1RkVGRiJ8fHRoaXMuY3NzWzBdPT09Ilx1RkZGRSI/KHRoaXMuaGFzQk9NPSEwLHRoaXMuY3NzPXRoaXMuY3NzLnNsaWNlKDEpKTp0aGlzLmhhc0JPTT0hMSx0LmZyb20mJighTmN8fC9eXHcrOlwvXC8vLnRlc3QodC5mcm9tKXx8eWEodC5mcm9tKT90aGlzLmZpbGU9dC5mcm9tOnRoaXMuZmlsZT1iYSh0LmZyb20pKSxOYyYmTXgpe2xldCBpPW5ldyBMeCh0aGlzLmNzcyx0KTtpZihpLnRleHQpe3RoaXMubWFwPWk7bGV0IG49aS5jb25zdW1lcigpLmZpbGU7IXRoaXMuZmlsZSYmbiYmKHRoaXMuZmlsZT10aGlzLm1hcFJlc29sdmUobikpfX10aGlzLmZpbGV8fCh0aGlzLmlkPSI8aW5wdXQgY3NzICIrRHgoNikrIj4iKSx0aGlzLm1hcCYmKHRoaXMubWFwLmZpbGU9dGhpcy5mcm9tKX1lcnJvcihlLHQsaSxuPXt9KXtsZXQgcyxhLG87aWYodCYmdHlwZW9mIHQ9PSJvYmplY3QiKXtsZXQgYz10LGY9aTtpZih0eXBlb2YgYy5vZmZzZXQ9PSJudW1iZXIiKXtsZXQgZD10aGlzLmZyb21PZmZzZXQoYy5vZmZzZXQpO3Q9ZC5saW5lLGk9ZC5jb2x9ZWxzZSB0PWMubGluZSxpPWMuY29sdW1uO2lmKHR5cGVvZiBmLm9mZnNldD09Im51bWJlciIpe2xldCBkPXRoaXMuZnJvbU9mZnNldChmLm9mZnNldCk7YT1kLmxpbmUscz1kLmNvbH1lbHNlIGE9Zi5saW5lLHM9Zi5jb2x1bW59ZWxzZSBpZighaSl7bGV0IGM9dGhpcy5mcm9tT2Zmc2V0KHQpO3Q9Yy5saW5lLGk9Yy5jb2x9bGV0IGw9dGhpcy5vcmlnaW4odCxpLGEscyk7cmV0dXJuIGw/bz1uZXcgTWMoZSxsLmVuZExpbmU9PT12b2lkIDA/bC5saW5lOntjb2x1bW46bC5jb2x1bW4sbGluZTpsLmxpbmV9LGwuZW5kTGluZT09PXZvaWQgMD9sLmNvbHVtbjp7Y29sdW1uOmwuZW5kQ29sdW1uLGxpbmU6bC5lbmRMaW5lfSxsLnNvdXJjZSxsLmZpbGUsbi5wbHVnaW4pOm89bmV3IE1jKGUsYT09PXZvaWQgMD90Ontjb2x1bW46aSxsaW5lOnR9LGE9PT12b2lkIDA/aTp7Y29sdW1uOnMsbGluZTphfSx0aGlzLmNzcyx0aGlzLmZpbGUsbi5wbHVnaW4pLG8uaW5wdXQ9e2NvbHVtbjppLGVuZENvbHVtbjpzLGVuZExpbmU6YSxsaW5lOnQsc291cmNlOnRoaXMuY3NzfSx0aGlzLmZpbGUmJihobiYmKG8uaW5wdXQudXJsPWhuKHRoaXMuZmlsZSkudG9TdHJpbmcoKSksby5pbnB1dC5maWxlPXRoaXMuZmlsZSksb31mcm9tT2Zmc2V0KGUpe2xldCB0LGk7aWYodGhpc1t2YV0paT10aGlzW3ZhXTtlbHNle2xldCBzPXRoaXMuY3NzLnNwbGl0KGAKYCk7aT1uZXcgQXJyYXkocy5sZW5ndGgpO2xldCBhPTA7Zm9yKGxldCBvPTAsbD1zLmxlbmd0aDtvPGw7bysrKWlbb109YSxhKz1zW29dLmxlbmd0aCsxO3RoaXNbdmFdPWl9dD1pW2kubGVuZ3RoLTFdO2xldCBuPTA7aWYoZT49dCluPWkubGVuZ3RoLTE7ZWxzZXtsZXQgcz1pLmxlbmd0aC0yLGE7Zm9yKDtuPHM7KWlmKGE9bisocy1uPj4xKSxlPGlbYV0pcz1hLTE7ZWxzZSBpZihlPj1pW2ErMV0pbj1hKzE7ZWxzZXtuPWE7YnJlYWt9fXJldHVybntjb2w6ZS1pW25dKzEsbGluZTpuKzF9fW1hcFJlc29sdmUoZSl7cmV0dXJuL15cdys6XC9cLy8udGVzdChlKT9lOmJhKHRoaXMubWFwLmNvbnN1bWVyKCkuc291cmNlUm9vdHx8dGhpcy5tYXAucm9vdHx8Ii4iLGUpfW9yaWdpbihlLHQsaSxuKXtpZighdGhpcy5tYXApcmV0dXJuITE7bGV0IHM9dGhpcy5tYXAuY29uc3VtZXIoKSxhPXMub3JpZ2luYWxQb3NpdGlvbkZvcih7Y29sdW1uOnQsbGluZTplfSk7aWYoIWEuc291cmNlKXJldHVybiExO2xldCBvO3R5cGVvZiBpPT0ibnVtYmVyIiYmKG89cy5vcmlnaW5hbFBvc2l0aW9uRm9yKHtjb2x1bW46bixsaW5lOml9KSk7bGV0IGw7eWEoYS5zb3VyY2UpP2w9aG4oYS5zb3VyY2UpOmw9bmV3IFVSTChhLnNvdXJjZSx0aGlzLm1hcC5jb25zdW1lcigpLnNvdXJjZVJvb3R8fGhuKHRoaXMubWFwLm1hcEZpbGUpKTtsZXQgYz17Y29sdW1uOmEuY29sdW1uLGVuZENvbHVtbjpvJiZvLmNvbHVtbixlbmRMaW5lOm8mJm8ubGluZSxsaW5lOmEubGluZSx1cmw6bC50b1N0cmluZygpfTtpZihsLnByb3RvY29sPT09ImZpbGU6IilpZihMYyljLmZpbGU9TGMobCk7ZWxzZSB0aHJvdyBuZXcgRXJyb3IoImZpbGU6IHByb3RvY29sIGlzIG5vdCBhdmFpbGFibGUgaW4gdGhpcyBQb3N0Q1NTIGJ1aWxkIik7bGV0IGY9cy5zb3VyY2VDb250ZW50Rm9yKGEuc291cmNlKTtyZXR1cm4gZiYmKGMuc291cmNlPWYpLGN9dG9KU09OKCl7bGV0IGU9e307Zm9yKGxldCB0IG9mWyJoYXNCT00iLCJjc3MiLCJmaWxlIiwiaWQiXSl0aGlzW3RdIT1udWxsJiYoZVt0XT10aGlzW3RdKTtyZXR1cm4gdGhpcy5tYXAmJihlLm1hcD17Li4udGhpcy5tYXB9LGUubWFwLmNvbnN1bWVyQ2FjaGUmJihlLm1hcC5jb25zdW1lckNhY2hlPXZvaWQgMCkpLGV9Z2V0IGZyb20oKXtyZXR1cm4gdGhpcy5maWxlfHx0aGlzLmlkfX07QmMuZXhwb3J0cz1YcjtYci5kZWZhdWx0PVhyO3dhJiZ3YS5yZWdpc3RlcklucHV0JiZ3YS5yZWdpc3RlcklucHV0KFhyKX0pO3ZhciB0cj14KCgkMyxVYyk9Pnt1KCk7InVzZSBzdHJpY3QiO3ZhciBGYz1FdCgpLGpjLHpjLFV0PWNsYXNzIGV4dGVuZHMgRmN7Y29uc3RydWN0b3IoZSl7c3VwZXIoZSk7dGhpcy50eXBlPSJyb290Iix0aGlzLm5vZGVzfHwodGhpcy5ub2Rlcz1bXSl9bm9ybWFsaXplKGUsdCxpKXtsZXQgbj1zdXBlci5ub3JtYWxpemUoZSk7aWYodCl7aWYoaT09PSJwcmVwZW5kIil0aGlzLm5vZGVzLmxlbmd0aD4xP3QucmF3cy5iZWZvcmU9dGhpcy5ub2Rlc1sxXS5yYXdzLmJlZm9yZTpkZWxldGUgdC5yYXdzLmJlZm9yZTtlbHNlIGlmKHRoaXMuZmlyc3QhPT10KWZvcihsZXQgcyBvZiBuKXMucmF3cy5iZWZvcmU9dC5yYXdzLmJlZm9yZX1yZXR1cm4gbn1yZW1vdmVDaGlsZChlLHQpe2xldCBpPXRoaXMuaW5kZXgoZSk7cmV0dXJuIXQmJmk9PT0wJiZ0aGlzLm5vZGVzLmxlbmd0aD4xJiYodGhpcy5ub2Rlc1sxXS5yYXdzLmJlZm9yZT10aGlzLm5vZGVzW2ldLnJhd3MuYmVmb3JlKSxzdXBlci5yZW1vdmVDaGlsZChlKX10b1Jlc3VsdChlPXt9KXtyZXR1cm4gbmV3IGpjKG5ldyB6Yyx0aGlzLGUpLnN0cmluZ2lmeSgpfX07VXQucmVnaXN0ZXJMYXp5UmVzdWx0PXI9PntqYz1yfTtVdC5yZWdpc3RlclByb2Nlc3Nvcj1yPT57emM9cn07VWMuZXhwb3J0cz1VdDtVdC5kZWZhdWx0PVV0O0ZjLnJlZ2lzdGVyUm9vdChVdCl9KTt2YXIgeGE9eCgoTDMsVmMpPT57dSgpOyJ1c2Ugc3RyaWN0Ijt2YXIgWnI9e2NvbW1hKHIpe3JldHVybiBaci5zcGxpdChyLFsiLCJdLCEwKX0sc3BhY2Uocil7bGV0IGU9WyIgIixgCmAsIgkiXTtyZXR1cm4gWnIuc3BsaXQocixlKX0sc3BsaXQocixlLHQpe2xldCBpPVtdLG49IiIscz0hMSxhPTAsbz0hMSxsPSIiLGM9ITE7Zm9yKGxldCBmIG9mIHIpYz9jPSExOmY9PT0iXFwiP2M9ITA6bz9mPT09bCYmKG89ITEpOmY9PT0nIid8fGY9PT0iJyI/KG89ITAsbD1mKTpmPT09IigiP2ErPTE6Zj09PSIpIj9hPjAmJihhLT0xKTphPT09MCYmZS5pbmNsdWRlcyhmKSYmKHM9ITApLHM/KG4hPT0iIiYmaS5wdXNoKG4udHJpbSgpKSxuPSIiLHM9ITEpOm4rPWY7cmV0dXJuKHR8fG4hPT0iIikmJmkucHVzaChuLnRyaW0oKSksaX19O1ZjLmV4cG9ydHM9WnI7WnIuZGVmYXVsdD1acn0pO3ZhciBnbj14KChNMyxXYyk9Pnt1KCk7InVzZSBzdHJpY3QiO3ZhciBIYz1FdCgpLE54PXhhKCksSnI9Y2xhc3MgZXh0ZW5kcyBIY3tjb25zdHJ1Y3RvcihlKXtzdXBlcihlKTt0aGlzLnR5cGU9InJ1bGUiLHRoaXMubm9kZXN8fCh0aGlzLm5vZGVzPVtdKX1nZXQgc2VsZWN0b3JzKCl7cmV0dXJuIE54LmNvbW1hKHRoaXMuc2VsZWN0b3IpfXNldCBzZWxlY3RvcnMoZSl7bGV0IHQ9dGhpcy5zZWxlY3Rvcj90aGlzLnNlbGVjdG9yLm1hdGNoKC8sXHMqLyk6bnVsbCxpPXQ/dFswXToiLCIrdGhpcy5yYXcoImJldHdlZW4iLCJiZWZvcmVPcGVuIik7dGhpcy5zZWxlY3Rvcj1lLmpvaW4oaSl9fTtXYy5leHBvcnRzPUpyO0pyLmRlZmF1bHQ9SnI7SGMucmVnaXN0ZXJSdWxlKEpyKX0pO3ZhciBRYz14KChOMyxHYyk9Pnt1KCk7InVzZSBzdHJpY3QiO3ZhciBCeD1wbigpLEZ4PVFyKCksang9WXIoKSx6eD1tbigpLFV4PWdhKCksVng9dHIoKSxIeD1nbigpO2Z1bmN0aW9uIGVpKHIsZSl7aWYoQXJyYXkuaXNBcnJheShyKSlyZXR1cm4gci5tYXAobj0+ZWkobikpO2xldHtpbnB1dHM6dCwuLi5pfT1yO2lmKHQpe2U9W107Zm9yKGxldCBuIG9mIHQpe2xldCBzPXsuLi5uLF9fcHJvdG9fXzp6eC5wcm90b3R5cGV9O3MubWFwJiYocy5tYXA9ey4uLnMubWFwLF9fcHJvdG9fXzpVeC5wcm90b3R5cGV9KSxlLnB1c2gocyl9fWlmKGkubm9kZXMmJihpLm5vZGVzPXIubm9kZXMubWFwKG49PmVpKG4sZSkpKSxpLnNvdXJjZSl7bGV0e2lucHV0SWQ6biwuLi5zfT1pLnNvdXJjZTtpLnNvdXJjZT1zLG4hPW51bGwmJihpLnNvdXJjZS5pbnB1dD1lW25dKX1pZihpLnR5cGU9PT0icm9vdCIpcmV0dXJuIG5ldyBWeChpKTtpZihpLnR5cGU9PT0iZGVjbCIpcmV0dXJuIG5ldyBqeChpKTtpZihpLnR5cGU9PT0icnVsZSIpcmV0dXJuIG5ldyBIeChpKTtpZihpLnR5cGU9PT0iY29tbWVudCIpcmV0dXJuIG5ldyBGeChpKTtpZihpLnR5cGU9PT0iYXRydWxlIilyZXR1cm4gbmV3IEJ4KGkpO3Rocm93IG5ldyBFcnJvcigiVW5rbm93biBub2RlIHR5cGU6ICIrci50eXBlKX1HYy5leHBvcnRzPWVpO2VpLmRlZmF1bHQ9ZWl9KTt2YXIga2E9eCgoQjMsWWMpPT57dSgpO1ljLmV4cG9ydHM9ZnVuY3Rpb24ocixlKXtyZXR1cm57Z2VuZXJhdGU6KCk9PntsZXQgdD0iIjtyZXR1cm4gcihlLGk9Pnt0Kz1pfSksW3RdfX19fSk7dmFyIGVwPXgoKEYzLEpjKT0+e3UoKTsidXNlIHN0cmljdCI7dmFyIFNhPSInIi5jaGFyQ29kZUF0KDApLEtjPSciJy5jaGFyQ29kZUF0KDApLHluPSJcXCIuY2hhckNvZGVBdCgwKSxYYz0iLyIuY2hhckNvZGVBdCgwKSxibj1gCmAuY2hhckNvZGVBdCgwKSx0aT0iICIuY2hhckNvZGVBdCgwKSx3bj0iXGYiLmNoYXJDb2RlQXQoMCksdm49IgkiLmNoYXJDb2RlQXQoMCkseG49IlxyIi5jaGFyQ29kZUF0KDApLFd4PSJbIi5jaGFyQ29kZUF0KDApLEd4PSJdIi5jaGFyQ29kZUF0KDApLFF4PSIoIi5jaGFyQ29kZUF0KDApLFl4PSIpIi5jaGFyQ29kZUF0KDApLEt4PSJ7Ii5jaGFyQ29kZUF0KDApLFh4PSJ9Ii5jaGFyQ29kZUF0KDApLFp4PSI7Ii5jaGFyQ29kZUF0KDApLEp4PSIqIi5jaGFyQ29kZUF0KDApLGUxPSI6Ii5jaGFyQ29kZUF0KDApLHQxPSJAIi5jaGFyQ29kZUF0KDApLGtuPS9bXHRcblxmXHIgIiMnKCkvO1tcXFxde31dL2csU249L1tcdFxuXGZcciAhIiMnKCk6O0BbXFxcXXt9XXxcLyg/PVwqKS9nLHIxPS8uW1xyXG4iJygvXFxdLyxaYz0vW1xkYS1mXS9pO0pjLmV4cG9ydHM9ZnVuY3Rpb24oZSx0PXt9KXtsZXQgaT1lLmNzcy52YWx1ZU9mKCksbj10Lmlnbm9yZUVycm9ycyxzLGEsbyxsLGMsZixkLHAsaCxiLHY9aS5sZW5ndGgseT0wLHc9W10saz1bXTtmdW5jdGlvbiBTKCl7cmV0dXJuIHl9ZnVuY3Rpb24gRShSKXt0aHJvdyBlLmVycm9yKCJVbmNsb3NlZCAiK1IseSl9ZnVuY3Rpb24gVCgpe3JldHVybiBrLmxlbmd0aD09PTAmJnk+PXZ9ZnVuY3Rpb24gQihSKXtpZihrLmxlbmd0aClyZXR1cm4gay5wb3AoKTtpZih5Pj12KXJldHVybjtsZXQgRj1SP1IuaWdub3JlVW5jbG9zZWQ6ITE7c3dpdGNoKHM9aS5jaGFyQ29kZUF0KHkpLHMpe2Nhc2UgYm46Y2FzZSB0aTpjYXNlIHZuOmNhc2UgeG46Y2FzZSB3bjp7bD15O2RvIGwrPTEscz1pLmNoYXJDb2RlQXQobCk7d2hpbGUocz09PXRpfHxzPT09Ym58fHM9PT12bnx8cz09PXhufHxzPT09d24pO2Y9WyJzcGFjZSIsaS5zbGljZSh5LGwpXSx5PWwtMTticmVha31jYXNlIFd4OmNhc2UgR3g6Y2FzZSBLeDpjYXNlIFh4OmNhc2UgZTE6Y2FzZSBaeDpjYXNlIFl4OntsZXQgWT1TdHJpbmcuZnJvbUNoYXJDb2RlKHMpO2Y9W1ksWSx5XTticmVha31jYXNlIFF4OntpZihiPXcubGVuZ3RoP3cucG9wKClbMV06IiIsaD1pLmNoYXJDb2RlQXQoeSsxKSxiPT09InVybCImJmghPT1TYSYmaCE9PUtjJiZoIT09dGkmJmghPT1ibiYmaCE9PXZuJiZoIT09d24mJmghPT14bil7bD15O2Rve2lmKGQ9ITEsbD1pLmluZGV4T2YoIikiLGwrMSksbD09PS0xKWlmKG58fEYpe2w9eTticmVha31lbHNlIEUoImJyYWNrZXQiKTtmb3IocD1sO2kuY2hhckNvZGVBdChwLTEpPT09eW47KXAtPTEsZD0hZH13aGlsZShkKTtmPVsiYnJhY2tldHMiLGkuc2xpY2UoeSxsKzEpLHksbF0seT1sfWVsc2UgbD1pLmluZGV4T2YoIikiLHkrMSksYT1pLnNsaWNlKHksbCsxKSxsPT09LTF8fHIxLnRlc3QoYSk/Zj1bIigiLCIoIix5XTooZj1bImJyYWNrZXRzIixhLHksbF0seT1sKTticmVha31jYXNlIFNhOmNhc2UgS2M6e2M9cz09PVNhPyInIjonIicsbD15O2Rve2lmKGQ9ITEsbD1pLmluZGV4T2YoYyxsKzEpLGw9PT0tMSlpZihufHxGKXtsPXkrMTticmVha31lbHNlIEUoInN0cmluZyIpO2ZvcihwPWw7aS5jaGFyQ29kZUF0KHAtMSk9PT15bjspcC09MSxkPSFkfXdoaWxlKGQpO2Y9WyJzdHJpbmciLGkuc2xpY2UoeSxsKzEpLHksbF0seT1sO2JyZWFrfWNhc2UgdDE6e2tuLmxhc3RJbmRleD15KzEsa24udGVzdChpKSxrbi5sYXN0SW5kZXg9PT0wP2w9aS5sZW5ndGgtMTpsPWtuLmxhc3RJbmRleC0yLGY9WyJhdC13b3JkIixpLnNsaWNlKHksbCsxKSx5LGxdLHk9bDticmVha31jYXNlIHluOntmb3IobD15LG89ITA7aS5jaGFyQ29kZUF0KGwrMSk9PT15bjspbCs9MSxvPSFvO2lmKHM9aS5jaGFyQ29kZUF0KGwrMSksbyYmcyE9PVhjJiZzIT09dGkmJnMhPT1ibiYmcyE9PXZuJiZzIT09eG4mJnMhPT13biYmKGwrPTEsWmMudGVzdChpLmNoYXJBdChsKSkpKXtmb3IoO1pjLnRlc3QoaS5jaGFyQXQobCsxKSk7KWwrPTE7aS5jaGFyQ29kZUF0KGwrMSk9PT10aSYmKGwrPTEpfWY9WyJ3b3JkIixpLnNsaWNlKHksbCsxKSx5LGxdLHk9bDticmVha31kZWZhdWx0OntzPT09WGMmJmkuY2hhckNvZGVBdCh5KzEpPT09Sng/KGw9aS5pbmRleE9mKCIqLyIseSsyKSsxLGw9PT0wJiYobnx8Rj9sPWkubGVuZ3RoOkUoImNvbW1lbnQiKSksZj1bImNvbW1lbnQiLGkuc2xpY2UoeSxsKzEpLHksbF0seT1sKTooU24ubGFzdEluZGV4PXkrMSxTbi50ZXN0KGkpLFNuLmxhc3RJbmRleD09PTA/bD1pLmxlbmd0aC0xOmw9U24ubGFzdEluZGV4LTIsZj1bIndvcmQiLGkuc2xpY2UoeSxsKzEpLHksbF0sdy5wdXNoKGYpLHk9bCk7YnJlYWt9fXJldHVybiB5KyssZn1mdW5jdGlvbiBOKFIpe2sucHVzaChSKX1yZXR1cm57YmFjazpOLGVuZE9mRmlsZTpULG5leHRUb2tlbjpCLHBvc2l0aW9uOlN9fX0pO3ZhciBzcD14KChqMyxucCk9Pnt1KCk7InVzZSBzdHJpY3QiO3ZhciBpMT1wbigpLG4xPVFyKCksczE9WXIoKSxhMT10cigpLHRwPWduKCksbzE9ZXAoKSxycD17ZW1wdHk6ITAsc3BhY2U6ITB9O2Z1bmN0aW9uIGwxKHIpe2ZvcihsZXQgZT1yLmxlbmd0aC0xO2U+PTA7ZS0tKXtsZXQgdD1yW2VdLGk9dFszXXx8dFsyXTtpZihpKXJldHVybiBpfX12YXIgaXA9Y2xhc3N7Y29uc3RydWN0b3IoZSl7dGhpcy5pbnB1dD1lLHRoaXMucm9vdD1uZXcgYTEsdGhpcy5jdXJyZW50PXRoaXMucm9vdCx0aGlzLnNwYWNlcz0iIix0aGlzLnNlbWljb2xvbj0hMSx0aGlzLmNyZWF0ZVRva2VuaXplcigpLHRoaXMucm9vdC5zb3VyY2U9e2lucHV0OmUsc3RhcnQ6e2NvbHVtbjoxLGxpbmU6MSxvZmZzZXQ6MH19fWF0cnVsZShlKXtsZXQgdD1uZXcgaTE7dC5uYW1lPWVbMV0uc2xpY2UoMSksdC5uYW1lPT09IiImJnRoaXMudW5uYW1lZEF0cnVsZSh0LGUpLHRoaXMuaW5pdCh0LGVbMl0pO2xldCBpLG4scyxhPSExLG89ITEsbD1bXSxjPVtdO2Zvcig7IXRoaXMudG9rZW5pemVyLmVuZE9mRmlsZSgpOyl7aWYoZT10aGlzLnRva2VuaXplci5uZXh0VG9rZW4oKSxpPWVbMF0saT09PSIoInx8aT09PSJbIj9jLnB1c2goaT09PSIoIj8iKSI6Il0iKTppPT09InsiJiZjLmxlbmd0aD4wP2MucHVzaCgifSIpOmk9PT1jW2MubGVuZ3RoLTFdJiZjLnBvcCgpLGMubGVuZ3RoPT09MClpZihpPT09IjsiKXt0LnNvdXJjZS5lbmQ9dGhpcy5nZXRQb3NpdGlvbihlWzJdKSx0LnNvdXJjZS5lbmQub2Zmc2V0KyssdGhpcy5zZW1pY29sb249ITA7YnJlYWt9ZWxzZSBpZihpPT09InsiKXtvPSEwO2JyZWFrfWVsc2UgaWYoaT09PSJ9Iil7aWYobC5sZW5ndGg+MCl7Zm9yKHM9bC5sZW5ndGgtMSxuPWxbc107biYmblswXT09PSJzcGFjZSI7KW49bFstLXNdO24mJih0LnNvdXJjZS5lbmQ9dGhpcy5nZXRQb3NpdGlvbihuWzNdfHxuWzJdKSx0LnNvdXJjZS5lbmQub2Zmc2V0KyspfXRoaXMuZW5kKGUpO2JyZWFrfWVsc2UgbC5wdXNoKGUpO2Vsc2UgbC5wdXNoKGUpO2lmKHRoaXMudG9rZW5pemVyLmVuZE9mRmlsZSgpKXthPSEwO2JyZWFrfX10LnJhd3MuYmV0d2Vlbj10aGlzLnNwYWNlc0FuZENvbW1lbnRzRnJvbUVuZChsKSxsLmxlbmd0aD8odC5yYXdzLmFmdGVyTmFtZT10aGlzLnNwYWNlc0FuZENvbW1lbnRzRnJvbVN0YXJ0KGwpLHRoaXMucmF3KHQsInBhcmFtcyIsbCksYSYmKGU9bFtsLmxlbmd0aC0xXSx0LnNvdXJjZS5lbmQ9dGhpcy5nZXRQb3NpdGlvbihlWzNdfHxlWzJdKSx0LnNvdXJjZS5lbmQub2Zmc2V0KyssdGhpcy5zcGFjZXM9dC5yYXdzLmJldHdlZW4sdC5yYXdzLmJldHdlZW49IiIpKToodC5yYXdzLmFmdGVyTmFtZT0iIix0LnBhcmFtcz0iIiksbyYmKHQubm9kZXM9W10sdGhpcy5jdXJyZW50PXQpfWNoZWNrTWlzc2VkU2VtaWNvbG9uKGUpe2xldCB0PXRoaXMuY29sb24oZSk7aWYodD09PSExKXJldHVybjtsZXQgaT0wLG47Zm9yKGxldCBzPXQtMTtzPj0wJiYobj1lW3NdLCEoblswXSE9PSJzcGFjZSImJihpKz0xLGk9PT0yKSkpO3MtLSk7dGhyb3cgdGhpcy5pbnB1dC5lcnJvcigiTWlzc2VkIHNlbWljb2xvbiIsblswXT09PSJ3b3JkIj9uWzNdKzE6blsyXSl9Y29sb24oZSl7bGV0IHQ9MCxpLG4scztmb3IobGV0W2Esb11vZiBlLmVudHJpZXMoKSl7aWYobj1vLHM9blswXSxzPT09IigiJiYodCs9MSkscz09PSIpIiYmKHQtPTEpLHQ9PT0wJiZzPT09IjoiKWlmKCFpKXRoaXMuZG91YmxlQ29sb24obik7ZWxzZXtpZihpWzBdPT09IndvcmQiJiZpWzFdPT09InByb2dpZCIpY29udGludWU7cmV0dXJuIGF9aT1ufXJldHVybiExfWNvbW1lbnQoZSl7bGV0IHQ9bmV3IG4xO3RoaXMuaW5pdCh0LGVbMl0pLHQuc291cmNlLmVuZD10aGlzLmdldFBvc2l0aW9uKGVbM118fGVbMl0pLHQuc291cmNlLmVuZC5vZmZzZXQrKztsZXQgaT1lWzFdLnNsaWNlKDIsLTIpO2lmKC9eXHMqJC8udGVzdChpKSl0LnRleHQ9IiIsdC5yYXdzLmxlZnQ9aSx0LnJhd3MucmlnaHQ9IiI7ZWxzZXtsZXQgbj1pLm1hdGNoKC9eKFxzKikoW15dKlxTKShccyopJC8pO3QudGV4dD1uWzJdLHQucmF3cy5sZWZ0PW5bMV0sdC5yYXdzLnJpZ2h0PW5bM119fWNyZWF0ZVRva2VuaXplcigpe3RoaXMudG9rZW5pemVyPW8xKHRoaXMuaW5wdXQpfWRlY2woZSx0KXtsZXQgaT1uZXcgczE7dGhpcy5pbml0KGksZVswXVsyXSk7bGV0IG49ZVtlLmxlbmd0aC0xXTtmb3IoblswXT09PSI7IiYmKHRoaXMuc2VtaWNvbG9uPSEwLGUucG9wKCkpLGkuc291cmNlLmVuZD10aGlzLmdldFBvc2l0aW9uKG5bM118fG5bMl18fGwxKGUpKSxpLnNvdXJjZS5lbmQub2Zmc2V0Kys7ZVswXVswXSE9PSJ3b3JkIjspZS5sZW5ndGg9PT0xJiZ0aGlzLnVua25vd25Xb3JkKGUpLGkucmF3cy5iZWZvcmUrPWUuc2hpZnQoKVsxXTtmb3IoaS5zb3VyY2Uuc3RhcnQ9dGhpcy5nZXRQb3NpdGlvbihlWzBdWzJdKSxpLnByb3A9IiI7ZS5sZW5ndGg7KXtsZXQgYz1lWzBdWzBdO2lmKGM9PT0iOiJ8fGM9PT0ic3BhY2UifHxjPT09ImNvbW1lbnQiKWJyZWFrO2kucHJvcCs9ZS5zaGlmdCgpWzFdfWkucmF3cy5iZXR3ZWVuPSIiO2xldCBzO2Zvcig7ZS5sZW5ndGg7KWlmKHM9ZS5zaGlmdCgpLHNbMF09PT0iOiIpe2kucmF3cy5iZXR3ZWVuKz1zWzFdO2JyZWFrfWVsc2Ugc1swXT09PSJ3b3JkIiYmL1x3Ly50ZXN0KHNbMV0pJiZ0aGlzLnVua25vd25Xb3JkKFtzXSksaS5yYXdzLmJldHdlZW4rPXNbMV07KGkucHJvcFswXT09PSJfInx8aS5wcm9wWzBdPT09IioiKSYmKGkucmF3cy5iZWZvcmUrPWkucHJvcFswXSxpLnByb3A9aS5wcm9wLnNsaWNlKDEpKTtsZXQgYT1bXSxvO2Zvcig7ZS5sZW5ndGgmJihvPWVbMF1bMF0sIShvIT09InNwYWNlIiYmbyE9PSJjb21tZW50IikpOylhLnB1c2goZS5zaGlmdCgpKTt0aGlzLnByZWNoZWNrTWlzc2VkU2VtaWNvbG9uKGUpO2ZvcihsZXQgYz1lLmxlbmd0aC0xO2M+PTA7Yy0tKXtpZihzPWVbY10sc1sxXS50b0xvd2VyQ2FzZSgpPT09IiFpbXBvcnRhbnQiKXtpLmltcG9ydGFudD0hMDtsZXQgZj10aGlzLnN0cmluZ0Zyb20oZSxjKTtmPXRoaXMuc3BhY2VzRnJvbUVuZChlKStmLGYhPT0iICFpbXBvcnRhbnQiJiYoaS5yYXdzLmltcG9ydGFudD1mKTticmVha31lbHNlIGlmKHNbMV0udG9Mb3dlckNhc2UoKT09PSJpbXBvcnRhbnQiKXtsZXQgZj1lLnNsaWNlKDApLGQ9IiI7Zm9yKGxldCBwPWM7cD4wO3AtLSl7bGV0IGg9ZltwXVswXTtpZihkLnRyaW0oKS5zdGFydHNXaXRoKCIhIikmJmghPT0ic3BhY2UiKWJyZWFrO2Q9Zi5wb3AoKVsxXStkfWQudHJpbSgpLnN0YXJ0c1dpdGgoIiEiKSYmKGkuaW1wb3J0YW50PSEwLGkucmF3cy5pbXBvcnRhbnQ9ZCxlPWYpfWlmKHNbMF0hPT0ic3BhY2UiJiZzWzBdIT09ImNvbW1lbnQiKWJyZWFrfWUuc29tZShjPT5jWzBdIT09InNwYWNlIiYmY1swXSE9PSJjb21tZW50IikmJihpLnJhd3MuYmV0d2Vlbis9YS5tYXAoYz0+Y1sxXSkuam9pbigiIiksYT1bXSksdGhpcy5yYXcoaSwidmFsdWUiLGEuY29uY2F0KGUpLHQpLGkudmFsdWUuaW5jbHVkZXMoIjoiKSYmIXQmJnRoaXMuY2hlY2tNaXNzZWRTZW1pY29sb24oZSl9ZG91YmxlQ29sb24oZSl7dGhyb3cgdGhpcy5pbnB1dC5lcnJvcigiRG91YmxlIGNvbG9uIix7b2Zmc2V0OmVbMl19LHtvZmZzZXQ6ZVsyXStlWzFdLmxlbmd0aH0pfWVtcHR5UnVsZShlKXtsZXQgdD1uZXcgdHA7dGhpcy5pbml0KHQsZVsyXSksdC5zZWxlY3Rvcj0iIix0LnJhd3MuYmV0d2Vlbj0iIix0aGlzLmN1cnJlbnQ9dH1lbmQoZSl7dGhpcy5jdXJyZW50Lm5vZGVzJiZ0aGlzLmN1cnJlbnQubm9kZXMubGVuZ3RoJiYodGhpcy5jdXJyZW50LnJhd3Muc2VtaWNvbG9uPXRoaXMuc2VtaWNvbG9uKSx0aGlzLnNlbWljb2xvbj0hMSx0aGlzLmN1cnJlbnQucmF3cy5hZnRlcj0odGhpcy5jdXJyZW50LnJhd3MuYWZ0ZXJ8fCIiKSt0aGlzLnNwYWNlcyx0aGlzLnNwYWNlcz0iIix0aGlzLmN1cnJlbnQucGFyZW50Pyh0aGlzLmN1cnJlbnQuc291cmNlLmVuZD10aGlzLmdldFBvc2l0aW9uKGVbMl0pLHRoaXMuY3VycmVudC5zb3VyY2UuZW5kLm9mZnNldCsrLHRoaXMuY3VycmVudD10aGlzLmN1cnJlbnQucGFyZW50KTp0aGlzLnVuZXhwZWN0ZWRDbG9zZShlKX1lbmRGaWxlKCl7dGhpcy5jdXJyZW50LnBhcmVudCYmdGhpcy51bmNsb3NlZEJsb2NrKCksdGhpcy5jdXJyZW50Lm5vZGVzJiZ0aGlzLmN1cnJlbnQubm9kZXMubGVuZ3RoJiYodGhpcy5jdXJyZW50LnJhd3Muc2VtaWNvbG9uPXRoaXMuc2VtaWNvbG9uKSx0aGlzLmN1cnJlbnQucmF3cy5hZnRlcj0odGhpcy5jdXJyZW50LnJhd3MuYWZ0ZXJ8fCIiKSt0aGlzLnNwYWNlcyx0aGlzLnJvb3Quc291cmNlLmVuZD10aGlzLmdldFBvc2l0aW9uKHRoaXMudG9rZW5pemVyLnBvc2l0aW9uKCkpfWZyZWVTZW1pY29sb24oZSl7aWYodGhpcy5zcGFjZXMrPWVbMV0sdGhpcy5jdXJyZW50Lm5vZGVzKXtsZXQgdD10aGlzLmN1cnJlbnQubm9kZXNbdGhpcy5jdXJyZW50Lm5vZGVzLmxlbmd0aC0xXTt0JiZ0LnR5cGU9PT0icnVsZSImJiF0LnJhd3Mub3duU2VtaWNvbG9uJiYodC5yYXdzLm93blNlbWljb2xvbj10aGlzLnNwYWNlcyx0aGlzLnNwYWNlcz0iIil9fWdldFBvc2l0aW9uKGUpe2xldCB0PXRoaXMuaW5wdXQuZnJvbU9mZnNldChlKTtyZXR1cm57Y29sdW1uOnQuY29sLGxpbmU6dC5saW5lLG9mZnNldDplfX1pbml0KGUsdCl7dGhpcy5jdXJyZW50LnB1c2goZSksZS5zb3VyY2U9e2lucHV0OnRoaXMuaW5wdXQsc3RhcnQ6dGhpcy5nZXRQb3NpdGlvbih0KX0sZS5yYXdzLmJlZm9yZT10aGlzLnNwYWNlcyx0aGlzLnNwYWNlcz0iIixlLnR5cGUhPT0iY29tbWVudCImJih0aGlzLnNlbWljb2xvbj0hMSl9b3RoZXIoZSl7bGV0IHQ9ITEsaT1udWxsLG49ITEscz1udWxsLGE9W10sbz1lWzFdLnN0YXJ0c1dpdGgoIi0tIiksbD1bXSxjPWU7Zm9yKDtjOyl7aWYoaT1jWzBdLGwucHVzaChjKSxpPT09IigifHxpPT09IlsiKXN8fChzPWMpLGEucHVzaChpPT09IigiPyIpIjoiXSIpO2Vsc2UgaWYobyYmbiYmaT09PSJ7IilzfHwocz1jKSxhLnB1c2goIn0iKTtlbHNlIGlmKGEubGVuZ3RoPT09MClpZihpPT09IjsiKWlmKG4pe3RoaXMuZGVjbChsLG8pO3JldHVybn1lbHNlIGJyZWFrO2Vsc2UgaWYoaT09PSJ7Iil7dGhpcy5ydWxlKGwpO3JldHVybn1lbHNlIGlmKGk9PT0ifSIpe3RoaXMudG9rZW5pemVyLmJhY2sobC5wb3AoKSksdD0hMDticmVha31lbHNlIGk9PT0iOiImJihuPSEwKTtlbHNlIGk9PT1hW2EubGVuZ3RoLTFdJiYoYS5wb3AoKSxhLmxlbmd0aD09PTAmJihzPW51bGwpKTtjPXRoaXMudG9rZW5pemVyLm5leHRUb2tlbigpfWlmKHRoaXMudG9rZW5pemVyLmVuZE9mRmlsZSgpJiYodD0hMCksYS5sZW5ndGg+MCYmdGhpcy51bmNsb3NlZEJyYWNrZXQocyksdCYmbil7aWYoIW8pZm9yKDtsLmxlbmd0aCYmKGM9bFtsLmxlbmd0aC0xXVswXSwhKGMhPT0ic3BhY2UiJiZjIT09ImNvbW1lbnQiKSk7KXRoaXMudG9rZW5pemVyLmJhY2sobC5wb3AoKSk7dGhpcy5kZWNsKGwsbyl9ZWxzZSB0aGlzLnVua25vd25Xb3JkKGwpfXBhcnNlKCl7bGV0IGU7Zm9yKDshdGhpcy50b2tlbml6ZXIuZW5kT2ZGaWxlKCk7KXN3aXRjaChlPXRoaXMudG9rZW5pemVyLm5leHRUb2tlbigpLGVbMF0pe2Nhc2Uic3BhY2UiOnRoaXMuc3BhY2VzKz1lWzFdO2JyZWFrO2Nhc2UiOyI6dGhpcy5mcmVlU2VtaWNvbG9uKGUpO2JyZWFrO2Nhc2UifSI6dGhpcy5lbmQoZSk7YnJlYWs7Y2FzZSJjb21tZW50Ijp0aGlzLmNvbW1lbnQoZSk7YnJlYWs7Y2FzZSJhdC13b3JkIjp0aGlzLmF0cnVsZShlKTticmVhaztjYXNlInsiOnRoaXMuZW1wdHlSdWxlKGUpO2JyZWFrO2RlZmF1bHQ6dGhpcy5vdGhlcihlKTticmVha310aGlzLmVuZEZpbGUoKX1wcmVjaGVja01pc3NlZFNlbWljb2xvbigpe31yYXcoZSx0LGksbil7bGV0IHMsYSxvPWkubGVuZ3RoLGw9IiIsYz0hMCxmLGQ7Zm9yKGxldCBwPTA7cDxvO3ArPTEpcz1pW3BdLGE9c1swXSxhPT09InNwYWNlIiYmcD09PW8tMSYmIW4/Yz0hMTphPT09ImNvbW1lbnQiPyhkPWlbcC0xXT9pW3AtMV1bMF06ImVtcHR5IixmPWlbcCsxXT9pW3ArMV1bMF06ImVtcHR5IiwhcnBbZF0mJiFycFtmXT9sLnNsaWNlKC0xKT09PSIsIj9jPSExOmwrPXNbMV06Yz0hMSk6bCs9c1sxXTtpZighYyl7bGV0IHA9aS5yZWR1Y2UoKGgsYik9PmgrYlsxXSwiIik7ZS5yYXdzW3RdPXtyYXc6cCx2YWx1ZTpsfX1lW3RdPWx9cnVsZShlKXtlLnBvcCgpO2xldCB0PW5ldyB0cDt0aGlzLmluaXQodCxlWzBdWzJdKSx0LnJhd3MuYmV0d2Vlbj10aGlzLnNwYWNlc0FuZENvbW1lbnRzRnJvbUVuZChlKSx0aGlzLnJhdyh0LCJzZWxlY3RvciIsZSksdGhpcy5jdXJyZW50PXR9c3BhY2VzQW5kQ29tbWVudHNGcm9tRW5kKGUpe2xldCB0LGk9IiI7Zm9yKDtlLmxlbmd0aCYmKHQ9ZVtlLmxlbmd0aC0xXVswXSwhKHQhPT0ic3BhY2UiJiZ0IT09ImNvbW1lbnQiKSk7KWk9ZS5wb3AoKVsxXStpO3JldHVybiBpfXNwYWNlc0FuZENvbW1lbnRzRnJvbVN0YXJ0KGUpe2xldCB0LGk9IiI7Zm9yKDtlLmxlbmd0aCYmKHQ9ZVswXVswXSwhKHQhPT0ic3BhY2UiJiZ0IT09ImNvbW1lbnQiKSk7KWkrPWUuc2hpZnQoKVsxXTtyZXR1cm4gaX1zcGFjZXNGcm9tRW5kKGUpe2xldCB0LGk9IiI7Zm9yKDtlLmxlbmd0aCYmKHQ9ZVtlLmxlbmd0aC0xXVswXSx0PT09InNwYWNlIik7KWk9ZS5wb3AoKVsxXStpO3JldHVybiBpfXN0cmluZ0Zyb20oZSx0KXtsZXQgaT0iIjtmb3IobGV0IG49dDtuPGUubGVuZ3RoO24rKylpKz1lW25dWzFdO3JldHVybiBlLnNwbGljZSh0LGUubGVuZ3RoLXQpLGl9dW5jbG9zZWRCbG9jaygpe2xldCBlPXRoaXMuY3VycmVudC5zb3VyY2Uuc3RhcnQ7dGhyb3cgdGhpcy5pbnB1dC5lcnJvcigiVW5jbG9zZWQgYmxvY2siLGUubGluZSxlLmNvbHVtbil9dW5jbG9zZWRCcmFja2V0KGUpe3Rocm93IHRoaXMuaW5wdXQuZXJyb3IoIlVuY2xvc2VkIGJyYWNrZXQiLHtvZmZzZXQ6ZVsyXX0se29mZnNldDplWzJdKzF9KX11bmV4cGVjdGVkQ2xvc2UoZSl7dGhyb3cgdGhpcy5pbnB1dC5lcnJvcigiVW5leHBlY3RlZCB9Iix7b2Zmc2V0OmVbMl19LHtvZmZzZXQ6ZVsyXSsxfSl9dW5rbm93bldvcmQoZSl7dGhyb3cgdGhpcy5pbnB1dC5lcnJvcigiVW5rbm93biB3b3JkIix7b2Zmc2V0OmVbMF1bMl19LHtvZmZzZXQ6ZVswXVsyXStlWzBdWzFdLmxlbmd0aH0pfXVubmFtZWRBdHJ1bGUoZSx0KXt0aHJvdyB0aGlzLmlucHV0LmVycm9yKCJBdC1ydWxlIHdpdGhvdXQgbmFtZSIse29mZnNldDp0WzJdfSx7b2Zmc2V0OnRbMl0rdFsxXS5sZW5ndGh9KX19O25wLmV4cG9ydHM9aXB9KTt2YXIgQ249eCgoejMsYXApPT57dSgpOyJ1c2Ugc3RyaWN0Ijt2YXIgdTE9RXQoKSxmMT1tbigpLGMxPXNwKCk7ZnVuY3Rpb24gQW4ocixlKXtsZXQgdD1uZXcgZjEocixlKSxpPW5ldyBjMSh0KTt0cnl7aS5wYXJzZSgpfWNhdGNoKG4pe3Rocm93IG59cmV0dXJuIGkucm9vdH1hcC5leHBvcnRzPUFuO0FuLmRlZmF1bHQ9QW47dTEucmVnaXN0ZXJQYXJzZShBbil9KTt2YXIgQWE9eCgoVTMsb3ApPT57dSgpOyJ1c2Ugc3RyaWN0Ijt2YXIgX249Y2xhc3N7Y29uc3RydWN0b3IoZSx0PXt9KXtpZih0aGlzLnR5cGU9Indhcm5pbmciLHRoaXMudGV4dD1lLHQubm9kZSYmdC5ub2RlLnNvdXJjZSl7bGV0IGk9dC5ub2RlLnJhbmdlQnkodCk7dGhpcy5saW5lPWkuc3RhcnQubGluZSx0aGlzLmNvbHVtbj1pLnN0YXJ0LmNvbHVtbix0aGlzLmVuZExpbmU9aS5lbmQubGluZSx0aGlzLmVuZENvbHVtbj1pLmVuZC5jb2x1bW59Zm9yKGxldCBpIGluIHQpdGhpc1tpXT10W2ldfXRvU3RyaW5nKCl7cmV0dXJuIHRoaXMubm9kZT90aGlzLm5vZGUuZXJyb3IodGhpcy50ZXh0LHtpbmRleDp0aGlzLmluZGV4LHBsdWdpbjp0aGlzLnBsdWdpbix3b3JkOnRoaXMud29yZH0pLm1lc3NhZ2U6dGhpcy5wbHVnaW4/dGhpcy5wbHVnaW4rIjogIit0aGlzLnRleHQ6dGhpcy50ZXh0fX07b3AuZXhwb3J0cz1fbjtfbi5kZWZhdWx0PV9ufSk7dmFyIE9uPXgoKFYzLGxwKT0+e3UoKTsidXNlIHN0cmljdCI7dmFyIHAxPUFhKCksRW49Y2xhc3N7Y29uc3RydWN0b3IoZSx0LGkpe3RoaXMucHJvY2Vzc29yPWUsdGhpcy5tZXNzYWdlcz1bXSx0aGlzLnJvb3Q9dCx0aGlzLm9wdHM9aSx0aGlzLmNzcz12b2lkIDAsdGhpcy5tYXA9dm9pZCAwfXRvU3RyaW5nKCl7cmV0dXJuIHRoaXMuY3NzfXdhcm4oZSx0PXt9KXt0LnBsdWdpbnx8dGhpcy5sYXN0UGx1Z2luJiZ0aGlzLmxhc3RQbHVnaW4ucG9zdGNzc1BsdWdpbiYmKHQucGx1Z2luPXRoaXMubGFzdFBsdWdpbi5wb3N0Y3NzUGx1Z2luKTtsZXQgaT1uZXcgcDEoZSx0KTtyZXR1cm4gdGhpcy5tZXNzYWdlcy5wdXNoKGkpLGl9d2FybmluZ3MoKXtyZXR1cm4gdGhpcy5tZXNzYWdlcy5maWx0ZXIoZT0+ZS50eXBlPT09Indhcm5pbmciKX1nZXQgY29udGVudCgpe3JldHVybiB0aGlzLmNzc319O2xwLmV4cG9ydHM9RW47RW4uZGVmYXVsdD1Fbn0pO3ZhciBDYT14KChIMyxmcCk9Pnt1KCk7InVzZSBzdHJpY3QiO3ZhciB1cD17fTtmcC5leHBvcnRzPWZ1bmN0aW9uKGUpe3VwW2VdfHwodXBbZV09ITAsdHlwZW9mIGNvbnNvbGUhPSJ1bmRlZmluZWQiJiZjb25zb2xlLndhcm4mJmNvbnNvbGUud2FybihlKSl9fSk7dmFyIE9hPXgoKEczLGhwKT0+e3UoKTsidXNlIHN0cmljdCI7dmFyIGQxPUV0KCksaDE9ZG4oKSxtMT1rYSgpLGcxPUNuKCksY3A9T24oKSx5MT10cigpLGIxPVZyKCkse2lzQ2xlYW46dHQsbXk6dzF9PWxuKCksVzM9Q2EoKSx2MT17YXRydWxlOiJBdFJ1bGUiLGNvbW1lbnQ6IkNvbW1lbnQiLGRlY2w6IkRlY2xhcmF0aW9uIixkb2N1bWVudDoiRG9jdW1lbnQiLHJvb3Q6IlJvb3QiLHJ1bGU6IlJ1bGUifSx4MT17QXRSdWxlOiEwLEF0UnVsZUV4aXQ6ITAsQ29tbWVudDohMCxDb21tZW50RXhpdDohMCxEZWNsYXJhdGlvbjohMCxEZWNsYXJhdGlvbkV4aXQ6ITAsRG9jdW1lbnQ6ITAsRG9jdW1lbnRFeGl0OiEwLE9uY2U6ITAsT25jZUV4aXQ6ITAscG9zdGNzc1BsdWdpbjohMCxwcmVwYXJlOiEwLFJvb3Q6ITAsUm9vdEV4aXQ6ITAsUnVsZTohMCxSdWxlRXhpdDohMH0sazE9e09uY2U6ITAscG9zdGNzc1BsdWdpbjohMCxwcmVwYXJlOiEwfSxycj0wO2Z1bmN0aW9uIHJpKHIpe3JldHVybiB0eXBlb2Ygcj09Im9iamVjdCImJnR5cGVvZiByLnRoZW49PSJmdW5jdGlvbiJ9ZnVuY3Rpb24gcHAocil7bGV0IGU9ITEsdD12MVtyLnR5cGVdO3JldHVybiByLnR5cGU9PT0iZGVjbCI/ZT1yLnByb3AudG9Mb3dlckNhc2UoKTpyLnR5cGU9PT0iYXRydWxlIiYmKGU9ci5uYW1lLnRvTG93ZXJDYXNlKCkpLGUmJnIuYXBwZW5kP1t0LHQrIi0iK2UscnIsdCsiRXhpdCIsdCsiRXhpdC0iK2VdOmU/W3QsdCsiLSIrZSx0KyJFeGl0Iix0KyJFeGl0LSIrZV06ci5hcHBlbmQ/W3QscnIsdCsiRXhpdCJdOlt0LHQrIkV4aXQiXX1mdW5jdGlvbiBkcChyKXtsZXQgZTtyZXR1cm4gci50eXBlPT09ImRvY3VtZW50Ij9lPVsiRG9jdW1lbnQiLHJyLCJEb2N1bWVudEV4aXQiXTpyLnR5cGU9PT0icm9vdCI/ZT1bIlJvb3QiLHJyLCJSb290RXhpdCJdOmU9cHAocikse2V2ZW50SW5kZXg6MCxldmVudHM6ZSxpdGVyYXRvcjowLG5vZGU6cix2aXNpdG9ySW5kZXg6MCx2aXNpdG9yczpbXX19ZnVuY3Rpb24gX2Eocil7cmV0dXJuIHJbdHRdPSExLHIubm9kZXMmJnIubm9kZXMuZm9yRWFjaChlPT5fYShlKSkscn12YXIgRWE9e30scHQ9Y2xhc3N7Y29uc3RydWN0b3IoZSx0LGkpe3RoaXMuc3RyaW5naWZpZWQ9ITEsdGhpcy5wcm9jZXNzZWQ9ITE7bGV0IG47aWYodHlwZW9mIHQ9PSJvYmplY3QiJiZ0IT09bnVsbCYmKHQudHlwZT09PSJyb290Inx8dC50eXBlPT09ImRvY3VtZW50Iikpbj1fYSh0KTtlbHNlIGlmKHQgaW5zdGFuY2VvZiBwdHx8dCBpbnN0YW5jZW9mIGNwKW49X2EodC5yb290KSx0Lm1hcCYmKHR5cGVvZiBpLm1hcD09InVuZGVmaW5lZCImJihpLm1hcD17fSksaS5tYXAuaW5saW5lfHwoaS5tYXAuaW5saW5lPSExKSxpLm1hcC5wcmV2PXQubWFwKTtlbHNle2xldCBzPWcxO2kuc3ludGF4JiYocz1pLnN5bnRheC5wYXJzZSksaS5wYXJzZXImJihzPWkucGFyc2VyKSxzLnBhcnNlJiYocz1zLnBhcnNlKTt0cnl7bj1zKHQsaSl9Y2F0Y2goYSl7dGhpcy5wcm9jZXNzZWQ9ITAsdGhpcy5lcnJvcj1hfW4mJiFuW3cxXSYmZDEucmVidWlsZChuKX10aGlzLnJlc3VsdD1uZXcgY3AoZSxuLGkpLHRoaXMuaGVscGVycz17Li4uRWEscG9zdGNzczpFYSxyZXN1bHQ6dGhpcy5yZXN1bHR9LHRoaXMucGx1Z2lucz10aGlzLnByb2Nlc3Nvci5wbHVnaW5zLm1hcChzPT50eXBlb2Ygcz09Im9iamVjdCImJnMucHJlcGFyZT97Li4ucywuLi5zLnByZXBhcmUodGhpcy5yZXN1bHQpfTpzKX1hc3luYygpe3JldHVybiB0aGlzLmVycm9yP1Byb21pc2UucmVqZWN0KHRoaXMuZXJyb3IpOnRoaXMucHJvY2Vzc2VkP1Byb21pc2UucmVzb2x2ZSh0aGlzLnJlc3VsdCk6KHRoaXMucHJvY2Vzc2luZ3x8KHRoaXMucHJvY2Vzc2luZz10aGlzLnJ1bkFzeW5jKCkpLHRoaXMucHJvY2Vzc2luZyl9Y2F0Y2goZSl7cmV0dXJuIHRoaXMuYXN5bmMoKS5jYXRjaChlKX1maW5hbGx5KGUpe3JldHVybiB0aGlzLmFzeW5jKCkudGhlbihlLGUpfWdldEFzeW5jRXJyb3IoKXt0aHJvdyBuZXcgRXJyb3IoIlVzZSBwcm9jZXNzKGNzcykudGhlbihjYikgdG8gd29yayB3aXRoIGFzeW5jIHBsdWdpbnMiKX1oYW5kbGVFcnJvcihlLHQpe2xldCBpPXRoaXMucmVzdWx0Lmxhc3RQbHVnaW47dHJ5e3QmJnQuYWRkVG9FcnJvcihlKSx0aGlzLmVycm9yPWUsZS5uYW1lPT09IkNzc1N5bnRheEVycm9yIiYmIWUucGx1Z2luPyhlLnBsdWdpbj1pLnBvc3Rjc3NQbHVnaW4sZS5zZXRNZXNzYWdlKCkpOmkucG9zdGNzc1ZlcnNpb259Y2F0Y2gobil7Y29uc29sZSYmY29uc29sZS5lcnJvciYmY29uc29sZS5lcnJvcihuKX1yZXR1cm4gZX1wcmVwYXJlVmlzaXRvcnMoKXt0aGlzLmxpc3RlbmVycz17fTtsZXQgZT0odCxpLG4pPT57dGhpcy5saXN0ZW5lcnNbaV18fCh0aGlzLmxpc3RlbmVyc1tpXT1bXSksdGhpcy5saXN0ZW5lcnNbaV0ucHVzaChbdCxuXSl9O2ZvcihsZXQgdCBvZiB0aGlzLnBsdWdpbnMpaWYodHlwZW9mIHQ9PSJvYmplY3QiKWZvcihsZXQgaSBpbiB0KXtpZigheDFbaV0mJi9eW0EtWl0vLnRlc3QoaSkpdGhyb3cgbmV3IEVycm9yKGBVbmtub3duIGV2ZW50ICR7aX0gaW4gJHt0LnBvc3Rjc3NQbHVnaW59LiBUcnkgdG8gdXBkYXRlIFBvc3RDU1MgKCR7dGhpcy5wcm9jZXNzb3IudmVyc2lvbn0gbm93KS5gKTtpZighazFbaV0paWYodHlwZW9mIHRbaV09PSJvYmplY3QiKWZvcihsZXQgbiBpbiB0W2ldKW49PT0iKiI/ZSh0LGksdFtpXVtuXSk6ZSh0LGkrIi0iK24udG9Mb3dlckNhc2UoKSx0W2ldW25dKTtlbHNlIHR5cGVvZiB0W2ldPT0iZnVuY3Rpb24iJiZlKHQsaSx0W2ldKX10aGlzLmhhc0xpc3RlbmVyPU9iamVjdC5rZXlzKHRoaXMubGlzdGVuZXJzKS5sZW5ndGg+MH1hc3luYyBydW5Bc3luYygpe3RoaXMucGx1Z2luPTA7Zm9yKGxldCBlPTA7ZTx0aGlzLnBsdWdpbnMubGVuZ3RoO2UrKyl7bGV0IHQ9dGhpcy5wbHVnaW5zW2VdLGk9dGhpcy5ydW5PblJvb3QodCk7aWYocmkoaSkpdHJ5e2F3YWl0IGl9Y2F0Y2gobil7dGhyb3cgdGhpcy5oYW5kbGVFcnJvcihuKX19aWYodGhpcy5wcmVwYXJlVmlzaXRvcnMoKSx0aGlzLmhhc0xpc3RlbmVyKXtsZXQgZT10aGlzLnJlc3VsdC5yb290O2Zvcig7IWVbdHRdOyl7ZVt0dF09ITA7bGV0IHQ9W2RwKGUpXTtmb3IoO3QubGVuZ3RoPjA7KXtsZXQgaT10aGlzLnZpc2l0VGljayh0KTtpZihyaShpKSl0cnl7YXdhaXQgaX1jYXRjaChuKXtsZXQgcz10W3QubGVuZ3RoLTFdLm5vZGU7dGhyb3cgdGhpcy5oYW5kbGVFcnJvcihuLHMpfX19aWYodGhpcy5saXN0ZW5lcnMuT25jZUV4aXQpZm9yKGxldFt0LGldb2YgdGhpcy5saXN0ZW5lcnMuT25jZUV4aXQpe3RoaXMucmVzdWx0Lmxhc3RQbHVnaW49dDt0cnl7aWYoZS50eXBlPT09ImRvY3VtZW50Iil7bGV0IG49ZS5ub2Rlcy5tYXAocz0+aShzLHRoaXMuaGVscGVycykpO2F3YWl0IFByb21pc2UuYWxsKG4pfWVsc2UgYXdhaXQgaShlLHRoaXMuaGVscGVycyl9Y2F0Y2gobil7dGhyb3cgdGhpcy5oYW5kbGVFcnJvcihuKX19fXJldHVybiB0aGlzLnByb2Nlc3NlZD0hMCx0aGlzLnN0cmluZ2lmeSgpfXJ1bk9uUm9vdChlKXt0aGlzLnJlc3VsdC5sYXN0UGx1Z2luPWU7dHJ5e2lmKHR5cGVvZiBlPT0ib2JqZWN0IiYmZS5PbmNlKXtpZih0aGlzLnJlc3VsdC5yb290LnR5cGU9PT0iZG9jdW1lbnQiKXtsZXQgdD10aGlzLnJlc3VsdC5yb290Lm5vZGVzLm1hcChpPT5lLk9uY2UoaSx0aGlzLmhlbHBlcnMpKTtyZXR1cm4gcmkodFswXSk/UHJvbWlzZS5hbGwodCk6dH1yZXR1cm4gZS5PbmNlKHRoaXMucmVzdWx0LnJvb3QsdGhpcy5oZWxwZXJzKX1lbHNlIGlmKHR5cGVvZiBlPT0iZnVuY3Rpb24iKXJldHVybiBlKHRoaXMucmVzdWx0LnJvb3QsdGhpcy5yZXN1bHQpfWNhdGNoKHQpe3Rocm93IHRoaXMuaGFuZGxlRXJyb3IodCl9fXN0cmluZ2lmeSgpe2lmKHRoaXMuZXJyb3IpdGhyb3cgdGhpcy5lcnJvcjtpZih0aGlzLnN0cmluZ2lmaWVkKXJldHVybiB0aGlzLnJlc3VsdDt0aGlzLnN0cmluZ2lmaWVkPSEwLHRoaXMuc3luYygpO2xldCBlPXRoaXMucmVzdWx0Lm9wdHMsdD1iMTtlLnN5bnRheCYmKHQ9ZS5zeW50YXguc3RyaW5naWZ5KSxlLnN0cmluZ2lmaWVyJiYodD1lLnN0cmluZ2lmaWVyKSx0LnN0cmluZ2lmeSYmKHQ9dC5zdHJpbmdpZnkpO2xldCBuPW5ldyBtMSh0LHRoaXMucmVzdWx0LnJvb3QsdGhpcy5yZXN1bHQub3B0cykuZ2VuZXJhdGUoKTtyZXR1cm4gdGhpcy5yZXN1bHQuY3NzPW5bMF0sdGhpcy5yZXN1bHQubWFwPW5bMV0sdGhpcy5yZXN1bHR9c3luYygpe2lmKHRoaXMuZXJyb3IpdGhyb3cgdGhpcy5lcnJvcjtpZih0aGlzLnByb2Nlc3NlZClyZXR1cm4gdGhpcy5yZXN1bHQ7aWYodGhpcy5wcm9jZXNzZWQ9ITAsdGhpcy5wcm9jZXNzaW5nKXRocm93IHRoaXMuZ2V0QXN5bmNFcnJvcigpO2ZvcihsZXQgZSBvZiB0aGlzLnBsdWdpbnMpe2xldCB0PXRoaXMucnVuT25Sb290KGUpO2lmKHJpKHQpKXRocm93IHRoaXMuZ2V0QXN5bmNFcnJvcigpfWlmKHRoaXMucHJlcGFyZVZpc2l0b3JzKCksdGhpcy5oYXNMaXN0ZW5lcil7bGV0IGU9dGhpcy5yZXN1bHQucm9vdDtmb3IoOyFlW3R0XTspZVt0dF09ITAsdGhpcy53YWxrU3luYyhlKTtpZih0aGlzLmxpc3RlbmVycy5PbmNlRXhpdClpZihlLnR5cGU9PT0iZG9jdW1lbnQiKWZvcihsZXQgdCBvZiBlLm5vZGVzKXRoaXMudmlzaXRTeW5jKHRoaXMubGlzdGVuZXJzLk9uY2VFeGl0LHQpO2Vsc2UgdGhpcy52aXNpdFN5bmModGhpcy5saXN0ZW5lcnMuT25jZUV4aXQsZSl9cmV0dXJuIHRoaXMucmVzdWx0fXRoZW4oZSx0KXtyZXR1cm4gdGhpcy5hc3luYygpLnRoZW4oZSx0KX10b1N0cmluZygpe3JldHVybiB0aGlzLmNzc312aXNpdFN5bmMoZSx0KXtmb3IobGV0W2ksbl1vZiBlKXt0aGlzLnJlc3VsdC5sYXN0UGx1Z2luPWk7bGV0IHM7dHJ5e3M9bih0LHRoaXMuaGVscGVycyl9Y2F0Y2goYSl7dGhyb3cgdGhpcy5oYW5kbGVFcnJvcihhLHQucHJveHlPZil9aWYodC50eXBlIT09InJvb3QiJiZ0LnR5cGUhPT0iZG9jdW1lbnQiJiYhdC5wYXJlbnQpcmV0dXJuITA7aWYocmkocykpdGhyb3cgdGhpcy5nZXRBc3luY0Vycm9yKCl9fXZpc2l0VGljayhlKXtsZXQgdD1lW2UubGVuZ3RoLTFdLHtub2RlOmksdmlzaXRvcnM6bn09dDtpZihpLnR5cGUhPT0icm9vdCImJmkudHlwZSE9PSJkb2N1bWVudCImJiFpLnBhcmVudCl7ZS5wb3AoKTtyZXR1cm59aWYobi5sZW5ndGg+MCYmdC52aXNpdG9ySW5kZXg8bi5sZW5ndGgpe2xldFthLG9dPW5bdC52aXNpdG9ySW5kZXhdO3QudmlzaXRvckluZGV4Kz0xLHQudmlzaXRvckluZGV4PT09bi5sZW5ndGgmJih0LnZpc2l0b3JzPVtdLHQudmlzaXRvckluZGV4PTApLHRoaXMucmVzdWx0Lmxhc3RQbHVnaW49YTt0cnl7cmV0dXJuIG8oaS50b1Byb3h5KCksdGhpcy5oZWxwZXJzKX1jYXRjaChsKXt0aHJvdyB0aGlzLmhhbmRsZUVycm9yKGwsaSl9fWlmKHQuaXRlcmF0b3IhPT0wKXtsZXQgYT10Lml0ZXJhdG9yLG87Zm9yKDtvPWkubm9kZXNbaS5pbmRleGVzW2FdXTspaWYoaS5pbmRleGVzW2FdKz0xLCFvW3R0XSl7b1t0dF09ITAsZS5wdXNoKGRwKG8pKTtyZXR1cm59dC5pdGVyYXRvcj0wLGRlbGV0ZSBpLmluZGV4ZXNbYV19bGV0IHM9dC5ldmVudHM7Zm9yKDt0LmV2ZW50SW5kZXg8cy5sZW5ndGg7KXtsZXQgYT1zW3QuZXZlbnRJbmRleF07aWYodC5ldmVudEluZGV4Kz0xLGE9PT1ycil7aS5ub2RlcyYmaS5ub2Rlcy5sZW5ndGgmJihpW3R0XT0hMCx0Lml0ZXJhdG9yPWkuZ2V0SXRlcmF0b3IoKSk7cmV0dXJufWVsc2UgaWYodGhpcy5saXN0ZW5lcnNbYV0pe3QudmlzaXRvcnM9dGhpcy5saXN0ZW5lcnNbYV07cmV0dXJufX1lLnBvcCgpfXdhbGtTeW5jKGUpe2VbdHRdPSEwO2xldCB0PXBwKGUpO2ZvcihsZXQgaSBvZiB0KWlmKGk9PT1ycillLm5vZGVzJiZlLmVhY2gobj0+e25bdHRdfHx0aGlzLndhbGtTeW5jKG4pfSk7ZWxzZXtsZXQgbj10aGlzLmxpc3RlbmVyc1tpXTtpZihuJiZ0aGlzLnZpc2l0U3luYyhuLGUudG9Qcm94eSgpKSlyZXR1cm59fXdhcm5pbmdzKCl7cmV0dXJuIHRoaXMuc3luYygpLndhcm5pbmdzKCl9Z2V0IGNvbnRlbnQoKXtyZXR1cm4gdGhpcy5zdHJpbmdpZnkoKS5jb250ZW50fWdldCBjc3MoKXtyZXR1cm4gdGhpcy5zdHJpbmdpZnkoKS5jc3N9Z2V0IG1hcCgpe3JldHVybiB0aGlzLnN0cmluZ2lmeSgpLm1hcH1nZXQgbWVzc2FnZXMoKXtyZXR1cm4gdGhpcy5zeW5jKCkubWVzc2FnZXN9Z2V0IG9wdHMoKXtyZXR1cm4gdGhpcy5yZXN1bHQub3B0c31nZXQgcHJvY2Vzc29yKCl7cmV0dXJuIHRoaXMucmVzdWx0LnByb2Nlc3Nvcn1nZXQgcm9vdCgpe3JldHVybiB0aGlzLnN5bmMoKS5yb290fWdldFtTeW1ib2wudG9TdHJpbmdUYWddKCl7cmV0dXJuIkxhenlSZXN1bHQifX07cHQucmVnaXN0ZXJQb3N0Y3NzPXI9PntFYT1yfTtocC5leHBvcnRzPXB0O3B0LmRlZmF1bHQ9cHQ7eTEucmVnaXN0ZXJMYXp5UmVzdWx0KHB0KTtoMS5yZWdpc3RlckxhenlSZXN1bHQocHQpfSk7dmFyIGdwPXgoKFkzLG1wKT0+e3UoKTsidXNlIHN0cmljdCI7dmFyIFMxPWthKCksQTE9Q24oKSxDMT1PbigpLF8xPVZyKCksUTM9Q2EoKSxUbj1jbGFzc3tjb25zdHJ1Y3RvcihlLHQsaSl7dD10LnRvU3RyaW5nKCksdGhpcy5zdHJpbmdpZmllZD0hMSx0aGlzLl9wcm9jZXNzb3I9ZSx0aGlzLl9jc3M9dCx0aGlzLl9vcHRzPWksdGhpcy5fbWFwPXZvaWQgMDtsZXQgbixzPV8xO3RoaXMucmVzdWx0PW5ldyBDMSh0aGlzLl9wcm9jZXNzb3Isbix0aGlzLl9vcHRzKSx0aGlzLnJlc3VsdC5jc3M9dDtsZXQgYT10aGlzO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLnJlc3VsdCwicm9vdCIse2dldCgpe3JldHVybiBhLnJvb3R9fSk7bGV0IG89bmV3IFMxKHMsbix0aGlzLl9vcHRzLHQpO2lmKG8uaXNNYXAoKSl7bGV0W2wsY109by5nZW5lcmF0ZSgpO2wmJih0aGlzLnJlc3VsdC5jc3M9bCksYyYmKHRoaXMucmVzdWx0Lm1hcD1jKX1lbHNlIG8uY2xlYXJBbm5vdGF0aW9uKCksdGhpcy5yZXN1bHQuY3NzPW8uY3NzfWFzeW5jKCl7cmV0dXJuIHRoaXMuZXJyb3I/UHJvbWlzZS5yZWplY3QodGhpcy5lcnJvcik6UHJvbWlzZS5yZXNvbHZlKHRoaXMucmVzdWx0KX1jYXRjaChlKXtyZXR1cm4gdGhpcy5hc3luYygpLmNhdGNoKGUpfWZpbmFsbHkoZSl7cmV0dXJuIHRoaXMuYXN5bmMoKS50aGVuKGUsZSl9c3luYygpe2lmKHRoaXMuZXJyb3IpdGhyb3cgdGhpcy5lcnJvcjtyZXR1cm4gdGhpcy5yZXN1bHR9dGhlbihlLHQpe3JldHVybiB0aGlzLmFzeW5jKCkudGhlbihlLHQpfXRvU3RyaW5nKCl7cmV0dXJuIHRoaXMuX2Nzc313YXJuaW5ncygpe3JldHVybltdfWdldCBjb250ZW50KCl7cmV0dXJuIHRoaXMucmVzdWx0LmNzc31nZXQgY3NzKCl7cmV0dXJuIHRoaXMucmVzdWx0LmNzc31nZXQgbWFwKCl7cmV0dXJuIHRoaXMucmVzdWx0Lm1hcH1nZXQgbWVzc2FnZXMoKXtyZXR1cm5bXX1nZXQgb3B0cygpe3JldHVybiB0aGlzLnJlc3VsdC5vcHRzfWdldCBwcm9jZXNzb3IoKXtyZXR1cm4gdGhpcy5yZXN1bHQucHJvY2Vzc29yfWdldCByb290KCl7aWYodGhpcy5fcm9vdClyZXR1cm4gdGhpcy5fcm9vdDtsZXQgZSx0PUExO3RyeXtlPXQodGhpcy5fY3NzLHRoaXMuX29wdHMpfWNhdGNoKGkpe3RoaXMuZXJyb3I9aX1pZih0aGlzLmVycm9yKXRocm93IHRoaXMuZXJyb3I7cmV0dXJuIHRoaXMuX3Jvb3Q9ZSxlfWdldFtTeW1ib2wudG9TdHJpbmdUYWddKCl7cmV0dXJuIk5vV29ya1Jlc3VsdCJ9fTttcC5leHBvcnRzPVRuO1RuLmRlZmF1bHQ9VG59KTt2YXIgYnA9eCgoSzMseXApPT57dSgpOyJ1c2Ugc3RyaWN0Ijt2YXIgRTE9ZG4oKSxPMT1PYSgpLFQxPWdwKCksUjE9dHIoKSxpcj1jbGFzc3tjb25zdHJ1Y3RvcihlPVtdKXt0aGlzLnZlcnNpb249IjguNC40OSIsdGhpcy5wbHVnaW5zPXRoaXMubm9ybWFsaXplKGUpfW5vcm1hbGl6ZShlKXtsZXQgdD1bXTtmb3IobGV0IGkgb2YgZSlpZihpLnBvc3Rjc3M9PT0hMD9pPWkoKTppLnBvc3Rjc3MmJihpPWkucG9zdGNzcyksdHlwZW9mIGk9PSJvYmplY3QiJiZBcnJheS5pc0FycmF5KGkucGx1Z2lucykpdD10LmNvbmNhdChpLnBsdWdpbnMpO2Vsc2UgaWYodHlwZW9mIGk9PSJvYmplY3QiJiZpLnBvc3Rjc3NQbHVnaW4pdC5wdXNoKGkpO2Vsc2UgaWYodHlwZW9mIGk9PSJmdW5jdGlvbiIpdC5wdXNoKGkpO2Vsc2UgaWYoISh0eXBlb2YgaT09Im9iamVjdCImJihpLnBhcnNlfHxpLnN0cmluZ2lmeSkpKXRocm93IG5ldyBFcnJvcihpKyIgaXMgbm90IGEgUG9zdENTUyBwbHVnaW4iKTtyZXR1cm4gdH1wcm9jZXNzKGUsdD17fSl7cmV0dXJuIXRoaXMucGx1Z2lucy5sZW5ndGgmJiF0LnBhcnNlciYmIXQuc3RyaW5naWZpZXImJiF0LnN5bnRheD9uZXcgVDEodGhpcyxlLHQpOm5ldyBPMSh0aGlzLGUsdCl9dXNlKGUpe3JldHVybiB0aGlzLnBsdWdpbnM9dGhpcy5wbHVnaW5zLmNvbmNhdCh0aGlzLm5vcm1hbGl6ZShbZV0pKSx0aGlzfX07eXAuZXhwb3J0cz1pcjtpci5kZWZhdWx0PWlyO1IxLnJlZ2lzdGVyUHJvY2Vzc29yKGlyKTtFMS5yZWdpc3RlclByb2Nlc3Nvcihpcil9KTt2YXIgJGU9eCgoWDMsQ3ApPT57dSgpOyJ1c2Ugc3RyaWN0Ijt2YXIgd3A9cG4oKSx2cD1RcigpLFAxPUV0KCksSTE9YW4oKSx4cD1ZcigpLGtwPWRuKCksRDE9UWMoKSxxMT1tbigpLCQxPU9hKCksTDE9eGEoKSxNMT1HcigpLE4xPUNuKCksVGE9YnAoKSxCMT1PbigpLFNwPXRyKCksQXA9Z24oKSxGMT1WcigpLGoxPUFhKCk7ZnVuY3Rpb24gSiguLi5yKXtyZXR1cm4gci5sZW5ndGg9PT0xJiZBcnJheS5pc0FycmF5KHJbMF0pJiYocj1yWzBdKSxuZXcgVGEocil9Si5wbHVnaW49ZnVuY3Rpb24oZSx0KXtsZXQgaT0hMTtmdW5jdGlvbiBuKC4uLmEpe2NvbnNvbGUmJmNvbnNvbGUud2FybiYmIWkmJihpPSEwLGNvbnNvbGUud2FybihlK2A6IHBvc3Rjc3MucGx1Z2luIHdhcyBkZXByZWNhdGVkLiBNaWdyYXRpb24gZ3VpZGU6Cmh0dHBzOi8vZXZpbG1hcnRpYW5zLmNvbS9jaHJvbmljbGVzL3Bvc3Rjc3MtOC1wbHVnaW4tbWlncmF0aW9uYCksbS5lbnYuTEFORyYmbS5lbnYuTEFORy5zdGFydHNXaXRoKCJjbiIpJiZjb25zb2xlLndhcm4oZStgOiBcdTkxQ0NcdTk3NjIgcG9zdGNzcy5wbHVnaW4gXHU4OEFCXHU1RjAzXHU3NTI4LiBcdThGQzFcdTc5RkJcdTYzMDdcdTUzNTc6Cmh0dHBzOi8vd3d3LnczY3RlY2guY29tL3RvcGljLzIyMjZgKSk7bGV0IG89dCguLi5hKTtyZXR1cm4gby5wb3N0Y3NzUGx1Z2luPWUsby5wb3N0Y3NzVmVyc2lvbj1uZXcgVGEoKS52ZXJzaW9uLG99bGV0IHM7cmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLCJwb3N0Y3NzIix7Z2V0KCl7cmV0dXJuIHN8fChzPW4oKSksc319KSxuLnByb2Nlc3M9ZnVuY3Rpb24oYSxvLGwpe3JldHVybiBKKFtuKGwpXSkucHJvY2VzcyhhLG8pfSxufTtKLnN0cmluZ2lmeT1GMTtKLnBhcnNlPU4xO0ouZnJvbUpTT049RDE7Si5saXN0PUwxO0ouY29tbWVudD1yPT5uZXcgdnAocik7Si5hdFJ1bGU9cj0+bmV3IHdwKHIpO0ouZGVjbD1yPT5uZXcgeHAocik7Si5ydWxlPXI9Pm5ldyBBcChyKTtKLnJvb3Q9cj0+bmV3IFNwKHIpO0ouZG9jdW1lbnQ9cj0+bmV3IGtwKHIpO0ouQ3NzU3ludGF4RXJyb3I9STE7Si5EZWNsYXJhdGlvbj14cDtKLkNvbnRhaW5lcj1QMTtKLlByb2Nlc3Nvcj1UYTtKLkRvY3VtZW50PWtwO0ouQ29tbWVudD12cDtKLldhcm5pbmc9ajE7Si5BdFJ1bGU9d3A7Si5SZXN1bHQ9QjE7Si5JbnB1dD1xMTtKLlJ1bGU9QXA7Si5Sb290PVNwO0ouTm9kZT1NMTskMS5yZWdpc3RlclBvc3Rjc3MoSik7Q3AuZXhwb3J0cz1KO0ouZGVmYXVsdD1KfSk7dmFyIHJlLGVlLFozLEozLGVJLHRJLHJJLGlJLG5JLHNJLGFJLG9JLGxJLHVJLGZJLGNJLHBJLGRJLGhJLG1JLGdJLHlJLGJJLHdJLHZJLHhJLE90PVAoKCk9Pnt1KCk7cmU9cGUoJGUoKSksZWU9cmUuZGVmYXVsdCxaMz1yZS5kZWZhdWx0LnN0cmluZ2lmeSxKMz1yZS5kZWZhdWx0LmZyb21KU09OLGVJPXJlLmRlZmF1bHQucGx1Z2luLHRJPXJlLmRlZmF1bHQucGFyc2Usckk9cmUuZGVmYXVsdC5saXN0LGlJPXJlLmRlZmF1bHQuZG9jdW1lbnQsbkk9cmUuZGVmYXVsdC5jb21tZW50LHNJPXJlLmRlZmF1bHQuYXRSdWxlLGFJPXJlLmRlZmF1bHQucnVsZSxvST1yZS5kZWZhdWx0LmRlY2wsbEk9cmUuZGVmYXVsdC5yb290LHVJPXJlLmRlZmF1bHQuQ3NzU3ludGF4RXJyb3IsZkk9cmUuZGVmYXVsdC5EZWNsYXJhdGlvbixjST1yZS5kZWZhdWx0LkNvbnRhaW5lcixwST1yZS5kZWZhdWx0LlByb2Nlc3NvcixkST1yZS5kZWZhdWx0LkRvY3VtZW50LGhJPXJlLmRlZmF1bHQuQ29tbWVudCxtST1yZS5kZWZhdWx0Lldhcm5pbmcsZ0k9cmUuZGVmYXVsdC5BdFJ1bGUseUk9cmUuZGVmYXVsdC5SZXN1bHQsYkk9cmUuZGVmYXVsdC5JbnB1dCx3ST1yZS5kZWZhdWx0LlJ1bGUsdkk9cmUuZGVmYXVsdC5Sb290LHhJPXJlLmRlZmF1bHQuTm9kZX0pO3ZhciBSYT14KChTSSxfcCk9Pnt1KCk7X3AuZXhwb3J0cz1mdW5jdGlvbihyLGUsdCxpLG4pe2ZvcihlPWUuc3BsaXQ/ZS5zcGxpdCgiLiIpOmUsaT0wO2k8ZS5sZW5ndGg7aSsrKXI9cj9yW2VbaV1dOm47cmV0dXJuIHI9PT1uP3Q6cn19KTt2YXIgUG49eCgoUm4sRXApPT57dSgpOyJ1c2Ugc3RyaWN0IjtSbi5fX2VzTW9kdWxlPSEwO1JuLmRlZmF1bHQ9VjE7ZnVuY3Rpb24gejEocil7Zm9yKHZhciBlPXIudG9Mb3dlckNhc2UoKSx0PSIiLGk9ITEsbj0wO248NiYmZVtuXSE9PXZvaWQgMDtuKyspe3ZhciBzPWUuY2hhckNvZGVBdChuKSxhPXM+PTk3JiZzPD0xMDJ8fHM+PTQ4JiZzPD01NztpZihpPXM9PT0zMiwhYSlicmVhazt0Kz1lW25dfWlmKHQubGVuZ3RoIT09MCl7dmFyIG89cGFyc2VJbnQodCwxNiksbD1vPj01NTI5NiYmbzw9NTczNDM7cmV0dXJuIGx8fG89PT0wfHxvPjExMTQxMTE/WyJcdUZGRkQiLHQubGVuZ3RoKyhpPzE6MCldOltTdHJpbmcuZnJvbUNvZGVQb2ludChvKSx0Lmxlbmd0aCsoaT8xOjApXX19dmFyIFUxPS9cXC87ZnVuY3Rpb24gVjEocil7dmFyIGU9VTEudGVzdChyKTtpZighZSlyZXR1cm4gcjtmb3IodmFyIHQ9IiIsaT0wO2k8ci5sZW5ndGg7aSsrKXtpZihyW2ldPT09IlxcIil7dmFyIG49ejEoci5zbGljZShpKzEsaSs3KSk7aWYobiE9PXZvaWQgMCl7dCs9blswXSxpKz1uWzFdO2NvbnRpbnVlfWlmKHJbaSsxXT09PSJcXCIpe3QrPSJcXCIsaSsrO2NvbnRpbnVlfXIubGVuZ3RoPT09aSsxJiYodCs9cltpXSk7Y29udGludWV9dCs9cltpXX1yZXR1cm4gdH1FcC5leHBvcnRzPVJuLmRlZmF1bHR9KTt2YXIgVHA9eCgoSW4sT3ApPT57dSgpOyJ1c2Ugc3RyaWN0IjtJbi5fX2VzTW9kdWxlPSEwO0luLmRlZmF1bHQ9SDE7ZnVuY3Rpb24gSDEocil7Zm9yKHZhciBlPWFyZ3VtZW50cy5sZW5ndGgsdD1uZXcgQXJyYXkoZT4xP2UtMTowKSxpPTE7aTxlO2krKyl0W2ktMV09YXJndW1lbnRzW2ldO2Zvcig7dC5sZW5ndGg+MDspe3ZhciBuPXQuc2hpZnQoKTtpZighcltuXSlyZXR1cm47cj1yW25dfXJldHVybiByfU9wLmV4cG9ydHM9SW4uZGVmYXVsdH0pO3ZhciBQcD14KChEbixScCk9Pnt1KCk7InVzZSBzdHJpY3QiO0RuLl9fZXNNb2R1bGU9ITA7RG4uZGVmYXVsdD1XMTtmdW5jdGlvbiBXMShyKXtmb3IodmFyIGU9YXJndW1lbnRzLmxlbmd0aCx0PW5ldyBBcnJheShlPjE/ZS0xOjApLGk9MTtpPGU7aSsrKXRbaS0xXT1hcmd1bWVudHNbaV07Zm9yKDt0Lmxlbmd0aD4wOyl7dmFyIG49dC5zaGlmdCgpO3Jbbl18fChyW25dPXt9KSxyPXJbbl19fVJwLmV4cG9ydHM9RG4uZGVmYXVsdH0pO3ZhciBEcD14KChxbixJcCk9Pnt1KCk7InVzZSBzdHJpY3QiO3FuLl9fZXNNb2R1bGU9ITA7cW4uZGVmYXVsdD1HMTtmdW5jdGlvbiBHMShyKXtmb3IodmFyIGU9IiIsdD1yLmluZGV4T2YoIi8qIiksaT0wO3Q+PTA7KXtlPWUrci5zbGljZShpLHQpO3ZhciBuPXIuaW5kZXhPZigiKi8iLHQrMik7aWYobjwwKXJldHVybiBlO2k9bisyLHQ9ci5pbmRleE9mKCIvKiIsaSl9cmV0dXJuIGU9ZStyLnNsaWNlKGkpLGV9SXAuZXhwb3J0cz1xbi5kZWZhdWx0fSk7dmFyIGlpPXgocnQ9Pnt1KCk7InVzZSBzdHJpY3QiO3J0Ll9fZXNNb2R1bGU9ITA7cnQudW5lc2M9cnQuc3RyaXBDb21tZW50cz1ydC5nZXRQcm9wPXJ0LmVuc3VyZU9iamVjdD12b2lkIDA7dmFyIFExPSRuKFBuKCkpO3J0LnVuZXNjPVExLmRlZmF1bHQ7dmFyIFkxPSRuKFRwKCkpO3J0LmdldFByb3A9WTEuZGVmYXVsdDt2YXIgSzE9JG4oUHAoKSk7cnQuZW5zdXJlT2JqZWN0PUsxLmRlZmF1bHQ7dmFyIFgxPSRuKERwKCkpO3J0LnN0cmlwQ29tbWVudHM9WDEuZGVmYXVsdDtmdW5jdGlvbiAkbihyKXtyZXR1cm4gciYmci5fX2VzTW9kdWxlP3I6e2RlZmF1bHQ6cn19fSk7dmFyIGR0PXgoKG5pLExwKT0+e3UoKTsidXNlIHN0cmljdCI7bmkuX19lc01vZHVsZT0hMDtuaS5kZWZhdWx0PXZvaWQgMDt2YXIgcXA9aWkoKTtmdW5jdGlvbiAkcChyLGUpe2Zvcih2YXIgdD0wO3Q8ZS5sZW5ndGg7dCsrKXt2YXIgaT1lW3RdO2kuZW51bWVyYWJsZT1pLmVudW1lcmFibGV8fCExLGkuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiBpJiYoaS53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsaS5rZXksaSl9fWZ1bmN0aW9uIFoxKHIsZSx0KXtyZXR1cm4gZSYmJHAoci5wcm90b3R5cGUsZSksdCYmJHAocix0KSxPYmplY3QuZGVmaW5lUHJvcGVydHkociwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSxyfXZhciBKMT1mdW5jdGlvbiByKGUsdCl7aWYodHlwZW9mIGUhPSJvYmplY3QifHxlPT09bnVsbClyZXR1cm4gZTt2YXIgaT1uZXcgZS5jb25zdHJ1Y3Rvcjtmb3IodmFyIG4gaW4gZSlpZighIWUuaGFzT3duUHJvcGVydHkobikpe3ZhciBzPWVbbl0sYT10eXBlb2YgcztuPT09InBhcmVudCImJmE9PT0ib2JqZWN0Ij90JiYoaVtuXT10KTpzIGluc3RhbmNlb2YgQXJyYXk/aVtuXT1zLm1hcChmdW5jdGlvbihvKXtyZXR1cm4gcihvLGkpfSk6aVtuXT1yKHMsaSl9cmV0dXJuIGl9LGVrPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gcih0KXt0PT09dm9pZCAwJiYodD17fSksT2JqZWN0LmFzc2lnbih0aGlzLHQpLHRoaXMuc3BhY2VzPXRoaXMuc3BhY2VzfHx7fSx0aGlzLnNwYWNlcy5iZWZvcmU9dGhpcy5zcGFjZXMuYmVmb3JlfHwiIix0aGlzLnNwYWNlcy5hZnRlcj10aGlzLnNwYWNlcy5hZnRlcnx8IiJ9dmFyIGU9ci5wcm90b3R5cGU7cmV0dXJuIGUucmVtb3ZlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucGFyZW50JiZ0aGlzLnBhcmVudC5yZW1vdmVDaGlsZCh0aGlzKSx0aGlzLnBhcmVudD12b2lkIDAsdGhpc30sZS5yZXBsYWNlV2l0aD1mdW5jdGlvbigpe2lmKHRoaXMucGFyZW50KXtmb3IodmFyIGkgaW4gYXJndW1lbnRzKXRoaXMucGFyZW50Lmluc2VydEJlZm9yZSh0aGlzLGFyZ3VtZW50c1tpXSk7dGhpcy5yZW1vdmUoKX1yZXR1cm4gdGhpc30sZS5uZXh0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucGFyZW50LmF0KHRoaXMucGFyZW50LmluZGV4KHRoaXMpKzEpfSxlLnByZXY9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wYXJlbnQuYXQodGhpcy5wYXJlbnQuaW5kZXgodGhpcyktMSl9LGUuY2xvbmU9ZnVuY3Rpb24oaSl7aT09PXZvaWQgMCYmKGk9e30pO3ZhciBuPUoxKHRoaXMpO2Zvcih2YXIgcyBpbiBpKW5bc109aVtzXTtyZXR1cm4gbn0sZS5hcHBlbmRUb1Byb3BlcnR5QW5kRXNjYXBlPWZ1bmN0aW9uKGksbixzKXt0aGlzLnJhd3N8fCh0aGlzLnJhd3M9e30pO3ZhciBhPXRoaXNbaV0sbz10aGlzLnJhd3NbaV07dGhpc1tpXT1hK24sb3x8cyE9PW4/dGhpcy5yYXdzW2ldPShvfHxhKStzOmRlbGV0ZSB0aGlzLnJhd3NbaV19LGUuc2V0UHJvcGVydHlBbmRFc2NhcGU9ZnVuY3Rpb24oaSxuLHMpe3RoaXMucmF3c3x8KHRoaXMucmF3cz17fSksdGhpc1tpXT1uLHRoaXMucmF3c1tpXT1zfSxlLnNldFByb3BlcnR5V2l0aG91dEVzY2FwZT1mdW5jdGlvbihpLG4pe3RoaXNbaV09bix0aGlzLnJhd3MmJmRlbGV0ZSB0aGlzLnJhd3NbaV19LGUuaXNBdFBvc2l0aW9uPWZ1bmN0aW9uKGksbil7aWYodGhpcy5zb3VyY2UmJnRoaXMuc291cmNlLnN0YXJ0JiZ0aGlzLnNvdXJjZS5lbmQpcmV0dXJuISh0aGlzLnNvdXJjZS5zdGFydC5saW5lPml8fHRoaXMuc291cmNlLmVuZC5saW5lPGl8fHRoaXMuc291cmNlLnN0YXJ0LmxpbmU9PT1pJiZ0aGlzLnNvdXJjZS5zdGFydC5jb2x1bW4+bnx8dGhpcy5zb3VyY2UuZW5kLmxpbmU9PT1pJiZ0aGlzLnNvdXJjZS5lbmQuY29sdW1uPG4pfSxlLnN0cmluZ2lmeVByb3BlcnR5PWZ1bmN0aW9uKGkpe3JldHVybiB0aGlzLnJhd3MmJnRoaXMucmF3c1tpXXx8dGhpc1tpXX0sZS52YWx1ZVRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIFN0cmluZyh0aGlzLnN0cmluZ2lmeVByb3BlcnR5KCJ2YWx1ZSIpKX0sZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVyblt0aGlzLnJhd1NwYWNlQmVmb3JlLHRoaXMudmFsdWVUb1N0cmluZygpLHRoaXMucmF3U3BhY2VBZnRlcl0uam9pbigiIil9LFoxKHIsW3trZXk6InJhd1NwYWNlQmVmb3JlIixnZXQ6ZnVuY3Rpb24oKXt2YXIgaT10aGlzLnJhd3MmJnRoaXMucmF3cy5zcGFjZXMmJnRoaXMucmF3cy5zcGFjZXMuYmVmb3JlO3JldHVybiBpPT09dm9pZCAwJiYoaT10aGlzLnNwYWNlcyYmdGhpcy5zcGFjZXMuYmVmb3JlKSxpfHwiIn0sc2V0OmZ1bmN0aW9uKGkpeygwLHFwLmVuc3VyZU9iamVjdCkodGhpcywicmF3cyIsInNwYWNlcyIpLHRoaXMucmF3cy5zcGFjZXMuYmVmb3JlPWl9fSx7a2V5OiJyYXdTcGFjZUFmdGVyIixnZXQ6ZnVuY3Rpb24oKXt2YXIgaT10aGlzLnJhd3MmJnRoaXMucmF3cy5zcGFjZXMmJnRoaXMucmF3cy5zcGFjZXMuYWZ0ZXI7cmV0dXJuIGk9PT12b2lkIDAmJihpPXRoaXMuc3BhY2VzLmFmdGVyKSxpfHwiIn0sc2V0OmZ1bmN0aW9uKGkpeygwLHFwLmVuc3VyZU9iamVjdCkodGhpcywicmF3cyIsInNwYWNlcyIpLHRoaXMucmF3cy5zcGFjZXMuYWZ0ZXI9aX19XSkscn0oKTtuaS5kZWZhdWx0PWVrO0xwLmV4cG9ydHM9bmkuZGVmYXVsdH0pO3ZhciBTZT14KGllPT57dSgpOyJ1c2Ugc3RyaWN0IjtpZS5fX2VzTW9kdWxlPSEwO2llLlVOSVZFUlNBTD1pZS5UQUc9aWUuU1RSSU5HPWllLlNFTEVDVE9SPWllLlJPT1Q9aWUuUFNFVURPPWllLk5FU1RJTkc9aWUuSUQ9aWUuQ09NTUVOVD1pZS5DT01CSU5BVE9SPWllLkNMQVNTPWllLkFUVFJJQlVURT12b2lkIDA7dmFyIHRrPSJ0YWciO2llLlRBRz10azt2YXIgcms9InN0cmluZyI7aWUuU1RSSU5HPXJrO3ZhciBpaz0ic2VsZWN0b3IiO2llLlNFTEVDVE9SPWlrO3ZhciBuaz0icm9vdCI7aWUuUk9PVD1uazt2YXIgc2s9InBzZXVkbyI7aWUuUFNFVURPPXNrO3ZhciBhaz0ibmVzdGluZyI7aWUuTkVTVElORz1hazt2YXIgb2s9ImlkIjtpZS5JRD1vazt2YXIgbGs9ImNvbW1lbnQiO2llLkNPTU1FTlQ9bGs7dmFyIHVrPSJjb21iaW5hdG9yIjtpZS5DT01CSU5BVE9SPXVrO3ZhciBmaz0iY2xhc3MiO2llLkNMQVNTPWZrO3ZhciBjaz0iYXR0cmlidXRlIjtpZS5BVFRSSUJVVEU9Y2s7dmFyIHBrPSJ1bml2ZXJzYWwiO2llLlVOSVZFUlNBTD1wa30pO3ZhciBMbj14KChzaSxGcCk9Pnt1KCk7InVzZSBzdHJpY3QiO3NpLl9fZXNNb2R1bGU9ITA7c2kuZGVmYXVsdD12b2lkIDA7dmFyIGRrPW1rKGR0KCkpLGh0PWhrKFNlKCkpO2Z1bmN0aW9uIE1wKHIpe2lmKHR5cGVvZiBXZWFrTWFwIT0iZnVuY3Rpb24iKXJldHVybiBudWxsO3ZhciBlPW5ldyBXZWFrTWFwLHQ9bmV3IFdlYWtNYXA7cmV0dXJuKE1wPWZ1bmN0aW9uKG4pe3JldHVybiBuP3Q6ZX0pKHIpfWZ1bmN0aW9uIGhrKHIsZSl7aWYoIWUmJnImJnIuX19lc01vZHVsZSlyZXR1cm4gcjtpZihyPT09bnVsbHx8dHlwZW9mIHIhPSJvYmplY3QiJiZ0eXBlb2YgciE9ImZ1bmN0aW9uIilyZXR1cm57ZGVmYXVsdDpyfTt2YXIgdD1NcChlKTtpZih0JiZ0LmhhcyhyKSlyZXR1cm4gdC5nZXQocik7dmFyIGk9e30sbj1PYmplY3QuZGVmaW5lUHJvcGVydHkmJk9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7Zm9yKHZhciBzIGluIHIpaWYocyE9PSJkZWZhdWx0IiYmT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHIscykpe3ZhciBhPW4/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihyLHMpOm51bGw7YSYmKGEuZ2V0fHxhLnNldCk/T2JqZWN0LmRlZmluZVByb3BlcnR5KGkscyxhKTppW3NdPXJbc119cmV0dXJuIGkuZGVmYXVsdD1yLHQmJnQuc2V0KHIsaSksaX1mdW5jdGlvbiBtayhyKXtyZXR1cm4gciYmci5fX2VzTW9kdWxlP3I6e2RlZmF1bHQ6cn19ZnVuY3Rpb24gZ2socixlKXt2YXIgdD10eXBlb2YgU3ltYm9sIT0idW5kZWZpbmVkIiYmcltTeW1ib2wuaXRlcmF0b3JdfHxyWyJAQGl0ZXJhdG9yIl07aWYodClyZXR1cm4odD10LmNhbGwocikpLm5leHQuYmluZCh0KTtpZihBcnJheS5pc0FycmF5KHIpfHwodD15ayhyKSl8fGUmJnImJnR5cGVvZiByLmxlbmd0aD09Im51bWJlciIpe3QmJihyPXQpO3ZhciBpPTA7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGk+PXIubGVuZ3RoP3tkb25lOiEwfTp7ZG9uZTohMSx2YWx1ZTpyW2krK119fX10aHJvdyBuZXcgVHlwZUVycm9yKGBJbnZhbGlkIGF0dGVtcHQgdG8gaXRlcmF0ZSBub24taXRlcmFibGUgaW5zdGFuY2UuCkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC5gKX1mdW5jdGlvbiB5ayhyLGUpe2lmKCEhcil7aWYodHlwZW9mIHI9PSJzdHJpbmciKXJldHVybiBOcChyLGUpO3ZhciB0PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChyKS5zbGljZSg4LC0xKTtpZih0PT09Ik9iamVjdCImJnIuY29uc3RydWN0b3ImJih0PXIuY29uc3RydWN0b3IubmFtZSksdD09PSJNYXAifHx0PT09IlNldCIpcmV0dXJuIEFycmF5LmZyb20ocik7aWYodD09PSJBcmd1bWVudHMifHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdCh0KSlyZXR1cm4gTnAocixlKX19ZnVuY3Rpb24gTnAocixlKXsoZT09bnVsbHx8ZT5yLmxlbmd0aCkmJihlPXIubGVuZ3RoKTtmb3IodmFyIHQ9MCxpPW5ldyBBcnJheShlKTt0PGU7dCsrKWlbdF09clt0XTtyZXR1cm4gaX1mdW5jdGlvbiBCcChyLGUpe2Zvcih2YXIgdD0wO3Q8ZS5sZW5ndGg7dCsrKXt2YXIgaT1lW3RdO2kuZW51bWVyYWJsZT1pLmVudW1lcmFibGV8fCExLGkuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiBpJiYoaS53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsaS5rZXksaSl9fWZ1bmN0aW9uIGJrKHIsZSx0KXtyZXR1cm4gZSYmQnAoci5wcm90b3R5cGUsZSksdCYmQnAocix0KSxPYmplY3QuZGVmaW5lUHJvcGVydHkociwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSxyfWZ1bmN0aW9uIHdrKHIsZSl7ci5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShlLnByb3RvdHlwZSksci5wcm90b3R5cGUuY29uc3RydWN0b3I9cixQYShyLGUpfWZ1bmN0aW9uIFBhKHIsZSl7cmV0dXJuIFBhPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKGksbil7cmV0dXJuIGkuX19wcm90b19fPW4saX0sUGEocixlKX12YXIgdms9ZnVuY3Rpb24ocil7d2soZSxyKTtmdW5jdGlvbiBlKGkpe3ZhciBuO3JldHVybiBuPXIuY2FsbCh0aGlzLGkpfHx0aGlzLG4ubm9kZXN8fChuLm5vZGVzPVtdKSxufXZhciB0PWUucHJvdG90eXBlO3JldHVybiB0LmFwcGVuZD1mdW5jdGlvbihuKXtyZXR1cm4gbi5wYXJlbnQ9dGhpcyx0aGlzLm5vZGVzLnB1c2gobiksdGhpc30sdC5wcmVwZW5kPWZ1bmN0aW9uKG4pe3JldHVybiBuLnBhcmVudD10aGlzLHRoaXMubm9kZXMudW5zaGlmdChuKSx0aGlzfSx0LmF0PWZ1bmN0aW9uKG4pe3JldHVybiB0aGlzLm5vZGVzW25dfSx0LmluZGV4PWZ1bmN0aW9uKG4pe3JldHVybiB0eXBlb2Ygbj09Im51bWJlciI/bjp0aGlzLm5vZGVzLmluZGV4T2Yobil9LHQucmVtb3ZlQ2hpbGQ9ZnVuY3Rpb24obil7bj10aGlzLmluZGV4KG4pLHRoaXMuYXQobikucGFyZW50PXZvaWQgMCx0aGlzLm5vZGVzLnNwbGljZShuLDEpO3ZhciBzO2Zvcih2YXIgYSBpbiB0aGlzLmluZGV4ZXMpcz10aGlzLmluZGV4ZXNbYV0scz49biYmKHRoaXMuaW5kZXhlc1thXT1zLTEpO3JldHVybiB0aGlzfSx0LnJlbW92ZUFsbD1mdW5jdGlvbigpe2Zvcih2YXIgbj1nayh0aGlzLm5vZGVzKSxzOyEocz1uKCkpLmRvbmU7KXt2YXIgYT1zLnZhbHVlO2EucGFyZW50PXZvaWQgMH1yZXR1cm4gdGhpcy5ub2Rlcz1bXSx0aGlzfSx0LmVtcHR5PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucmVtb3ZlQWxsKCl9LHQuaW5zZXJ0QWZ0ZXI9ZnVuY3Rpb24obixzKXtzLnBhcmVudD10aGlzO3ZhciBhPXRoaXMuaW5kZXgobik7dGhpcy5ub2Rlcy5zcGxpY2UoYSsxLDAscykscy5wYXJlbnQ9dGhpczt2YXIgbztmb3IodmFyIGwgaW4gdGhpcy5pbmRleGVzKW89dGhpcy5pbmRleGVzW2xdLGE8PW8mJih0aGlzLmluZGV4ZXNbbF09bysxKTtyZXR1cm4gdGhpc30sdC5pbnNlcnRCZWZvcmU9ZnVuY3Rpb24obixzKXtzLnBhcmVudD10aGlzO3ZhciBhPXRoaXMuaW5kZXgobik7dGhpcy5ub2Rlcy5zcGxpY2UoYSwwLHMpLHMucGFyZW50PXRoaXM7dmFyIG87Zm9yKHZhciBsIGluIHRoaXMuaW5kZXhlcylvPXRoaXMuaW5kZXhlc1tsXSxvPD1hJiYodGhpcy5pbmRleGVzW2xdPW8rMSk7cmV0dXJuIHRoaXN9LHQuX2ZpbmRDaGlsZEF0UG9zaXRpb249ZnVuY3Rpb24obixzKXt2YXIgYT12b2lkIDA7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbihvKXtpZihvLmF0UG9zaXRpb24pe3ZhciBsPW8uYXRQb3NpdGlvbihuLHMpO2lmKGwpcmV0dXJuIGE9bCwhMX1lbHNlIGlmKG8uaXNBdFBvc2l0aW9uKG4scykpcmV0dXJuIGE9bywhMX0pLGF9LHQuYXRQb3NpdGlvbj1mdW5jdGlvbihuLHMpe2lmKHRoaXMuaXNBdFBvc2l0aW9uKG4scykpcmV0dXJuIHRoaXMuX2ZpbmRDaGlsZEF0UG9zaXRpb24obixzKXx8dGhpc30sdC5faW5mZXJFbmRQb3NpdGlvbj1mdW5jdGlvbigpe3RoaXMubGFzdCYmdGhpcy5sYXN0LnNvdXJjZSYmdGhpcy5sYXN0LnNvdXJjZS5lbmQmJih0aGlzLnNvdXJjZT10aGlzLnNvdXJjZXx8e30sdGhpcy5zb3VyY2UuZW5kPXRoaXMuc291cmNlLmVuZHx8e30sT2JqZWN0LmFzc2lnbih0aGlzLnNvdXJjZS5lbmQsdGhpcy5sYXN0LnNvdXJjZS5lbmQpKX0sdC5lYWNoPWZ1bmN0aW9uKG4pe3RoaXMubGFzdEVhY2h8fCh0aGlzLmxhc3RFYWNoPTApLHRoaXMuaW5kZXhlc3x8KHRoaXMuaW5kZXhlcz17fSksdGhpcy5sYXN0RWFjaCsrO3ZhciBzPXRoaXMubGFzdEVhY2g7aWYodGhpcy5pbmRleGVzW3NdPTAsISF0aGlzLmxlbmd0aCl7Zm9yKHZhciBhLG87dGhpcy5pbmRleGVzW3NdPHRoaXMubGVuZ3RoJiYoYT10aGlzLmluZGV4ZXNbc10sbz1uKHRoaXMuYXQoYSksYSksbyE9PSExKTspdGhpcy5pbmRleGVzW3NdKz0xO2lmKGRlbGV0ZSB0aGlzLmluZGV4ZXNbc10sbz09PSExKXJldHVybiExfX0sdC53YWxrPWZ1bmN0aW9uKG4pe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24ocyxhKXt2YXIgbz1uKHMsYSk7aWYobyE9PSExJiZzLmxlbmd0aCYmKG89cy53YWxrKG4pKSxvPT09ITEpcmV0dXJuITF9KX0sdC53YWxrQXR0cmlidXRlcz1mdW5jdGlvbihuKXt2YXIgcz10aGlzO3JldHVybiB0aGlzLndhbGsoZnVuY3Rpb24oYSl7aWYoYS50eXBlPT09aHQuQVRUUklCVVRFKXJldHVybiBuLmNhbGwocyxhKX0pfSx0LndhbGtDbGFzc2VzPWZ1bmN0aW9uKG4pe3ZhciBzPXRoaXM7cmV0dXJuIHRoaXMud2FsayhmdW5jdGlvbihhKXtpZihhLnR5cGU9PT1odC5DTEFTUylyZXR1cm4gbi5jYWxsKHMsYSl9KX0sdC53YWxrQ29tYmluYXRvcnM9ZnVuY3Rpb24obil7dmFyIHM9dGhpcztyZXR1cm4gdGhpcy53YWxrKGZ1bmN0aW9uKGEpe2lmKGEudHlwZT09PWh0LkNPTUJJTkFUT1IpcmV0dXJuIG4uY2FsbChzLGEpfSl9LHQud2Fsa0NvbW1lbnRzPWZ1bmN0aW9uKG4pe3ZhciBzPXRoaXM7cmV0dXJuIHRoaXMud2FsayhmdW5jdGlvbihhKXtpZihhLnR5cGU9PT1odC5DT01NRU5UKXJldHVybiBuLmNhbGwocyxhKX0pfSx0LndhbGtJZHM9ZnVuY3Rpb24obil7dmFyIHM9dGhpcztyZXR1cm4gdGhpcy53YWxrKGZ1bmN0aW9uKGEpe2lmKGEudHlwZT09PWh0LklEKXJldHVybiBuLmNhbGwocyxhKX0pfSx0LndhbGtOZXN0aW5nPWZ1bmN0aW9uKG4pe3ZhciBzPXRoaXM7cmV0dXJuIHRoaXMud2FsayhmdW5jdGlvbihhKXtpZihhLnR5cGU9PT1odC5ORVNUSU5HKXJldHVybiBuLmNhbGwocyxhKX0pfSx0LndhbGtQc2V1ZG9zPWZ1bmN0aW9uKG4pe3ZhciBzPXRoaXM7cmV0dXJuIHRoaXMud2FsayhmdW5jdGlvbihhKXtpZihhLnR5cGU9PT1odC5QU0VVRE8pcmV0dXJuIG4uY2FsbChzLGEpfSl9LHQud2Fsa1RhZ3M9ZnVuY3Rpb24obil7dmFyIHM9dGhpcztyZXR1cm4gdGhpcy53YWxrKGZ1bmN0aW9uKGEpe2lmKGEudHlwZT09PWh0LlRBRylyZXR1cm4gbi5jYWxsKHMsYSl9KX0sdC53YWxrVW5pdmVyc2Fscz1mdW5jdGlvbihuKXt2YXIgcz10aGlzO3JldHVybiB0aGlzLndhbGsoZnVuY3Rpb24oYSl7aWYoYS50eXBlPT09aHQuVU5JVkVSU0FMKXJldHVybiBuLmNhbGwocyxhKX0pfSx0LnNwbGl0PWZ1bmN0aW9uKG4pe3ZhciBzPXRoaXMsYT1bXTtyZXR1cm4gdGhpcy5yZWR1Y2UoZnVuY3Rpb24obyxsLGMpe3ZhciBmPW4uY2FsbChzLGwpO3JldHVybiBhLnB1c2gobCksZj8oby5wdXNoKGEpLGE9W10pOmM9PT1zLmxlbmd0aC0xJiZvLnB1c2goYSksb30sW10pfSx0Lm1hcD1mdW5jdGlvbihuKXtyZXR1cm4gdGhpcy5ub2Rlcy5tYXAobil9LHQucmVkdWNlPWZ1bmN0aW9uKG4scyl7cmV0dXJuIHRoaXMubm9kZXMucmVkdWNlKG4scyl9LHQuZXZlcnk9ZnVuY3Rpb24obil7cmV0dXJuIHRoaXMubm9kZXMuZXZlcnkobil9LHQuc29tZT1mdW5jdGlvbihuKXtyZXR1cm4gdGhpcy5ub2Rlcy5zb21lKG4pfSx0LmZpbHRlcj1mdW5jdGlvbihuKXtyZXR1cm4gdGhpcy5ub2Rlcy5maWx0ZXIobil9LHQuc29ydD1mdW5jdGlvbihuKXtyZXR1cm4gdGhpcy5ub2Rlcy5zb3J0KG4pfSx0LnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubWFwKFN0cmluZykuam9pbigiIil9LGJrKGUsW3trZXk6ImZpcnN0IixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5hdCgwKX19LHtrZXk6Imxhc3QiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmF0KHRoaXMubGVuZ3RoLTEpfX0se2tleToibGVuZ3RoIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5ub2Rlcy5sZW5ndGh9fV0pLGV9KGRrLmRlZmF1bHQpO3NpLmRlZmF1bHQ9dms7RnAuZXhwb3J0cz1zaS5kZWZhdWx0fSk7dmFyIERhPXgoKGFpLHpwKT0+e3UoKTsidXNlIHN0cmljdCI7YWkuX19lc01vZHVsZT0hMDthaS5kZWZhdWx0PXZvaWQgMDt2YXIgeGs9U2soTG4oKSksa2s9U2UoKTtmdW5jdGlvbiBTayhyKXtyZXR1cm4gciYmci5fX2VzTW9kdWxlP3I6e2RlZmF1bHQ6cn19ZnVuY3Rpb24ganAocixlKXtmb3IodmFyIHQ9MDt0PGUubGVuZ3RoO3QrKyl7dmFyIGk9ZVt0XTtpLmVudW1lcmFibGU9aS5lbnVtZXJhYmxlfHwhMSxpLmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gaSYmKGkud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLGkua2V5LGkpfX1mdW5jdGlvbiBBayhyLGUsdCl7cmV0dXJuIGUmJmpwKHIucHJvdG90eXBlLGUpLHQmJmpwKHIsdCksT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSkscn1mdW5jdGlvbiBDayhyLGUpe3IucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZS5wcm90b3R5cGUpLHIucHJvdG90eXBlLmNvbnN0cnVjdG9yPXIsSWEocixlKX1mdW5jdGlvbiBJYShyLGUpe3JldHVybiBJYT1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbihpLG4pe3JldHVybiBpLl9fcHJvdG9fXz1uLGl9LElhKHIsZSl9dmFyIF9rPWZ1bmN0aW9uKHIpe0NrKGUscik7ZnVuY3Rpb24gZShpKXt2YXIgbjtyZXR1cm4gbj1yLmNhbGwodGhpcyxpKXx8dGhpcyxuLnR5cGU9a2suUk9PVCxufXZhciB0PWUucHJvdG90eXBlO3JldHVybiB0LnRvU3RyaW5nPWZ1bmN0aW9uKCl7dmFyIG49dGhpcy5yZWR1Y2UoZnVuY3Rpb24ocyxhKXtyZXR1cm4gcy5wdXNoKFN0cmluZyhhKSksc30sW10pLmpvaW4oIiwiKTtyZXR1cm4gdGhpcy50cmFpbGluZ0NvbW1hP24rIiwiOm59LHQuZXJyb3I9ZnVuY3Rpb24obixzKXtyZXR1cm4gdGhpcy5fZXJyb3I/dGhpcy5fZXJyb3IobixzKTpuZXcgRXJyb3Iobil9LEFrKGUsW3trZXk6ImVycm9yR2VuZXJhdG9yIixzZXQ6ZnVuY3Rpb24obil7dGhpcy5fZXJyb3I9bn19XSksZX0oeGsuZGVmYXVsdCk7YWkuZGVmYXVsdD1fazt6cC5leHBvcnRzPWFpLmRlZmF1bHR9KTt2YXIgJGE9eCgob2ksVXApPT57dSgpOyJ1c2Ugc3RyaWN0IjtvaS5fX2VzTW9kdWxlPSEwO29pLmRlZmF1bHQ9dm9pZCAwO3ZhciBFaz1UayhMbigpKSxPaz1TZSgpO2Z1bmN0aW9uIFRrKHIpe3JldHVybiByJiZyLl9fZXNNb2R1bGU/cjp7ZGVmYXVsdDpyfX1mdW5jdGlvbiBSayhyLGUpe3IucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZS5wcm90b3R5cGUpLHIucHJvdG90eXBlLmNvbnN0cnVjdG9yPXIscWEocixlKX1mdW5jdGlvbiBxYShyLGUpe3JldHVybiBxYT1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbihpLG4pe3JldHVybiBpLl9fcHJvdG9fXz1uLGl9LHFhKHIsZSl9dmFyIFBrPWZ1bmN0aW9uKHIpe1JrKGUscik7ZnVuY3Rpb24gZSh0KXt2YXIgaTtyZXR1cm4gaT1yLmNhbGwodGhpcyx0KXx8dGhpcyxpLnR5cGU9T2suU0VMRUNUT1IsaX1yZXR1cm4gZX0oRWsuZGVmYXVsdCk7b2kuZGVmYXVsdD1QaztVcC5leHBvcnRzPW9pLmRlZmF1bHR9KTt2YXIgTW49eCgoX0ksVnApPT57dSgpOyJ1c2Ugc3RyaWN0Ijt2YXIgSWs9e30sRGs9SWsuaGFzT3duUHJvcGVydHkscWs9ZnVuY3Rpb24oZSx0KXtpZighZSlyZXR1cm4gdDt2YXIgaT17fTtmb3IodmFyIG4gaW4gdClpW25dPURrLmNhbGwoZSxuKT9lW25dOnRbbl07cmV0dXJuIGl9LCRrPS9bIC0sXC5cLzotQFxbLVxeYFx7LX5dLyxMaz0vWyAtLFwuXC86LUBcW1xdXF5gXHstfl0vLE1rPS8oXnxcXCspPyhcXFtBLUYwLTldezEsNn0pXHgyMCg/IVthLWZBLUYwLTlceDIwXSkvZyxMYT1mdW5jdGlvbiByKGUsdCl7dD1xayh0LHIub3B0aW9ucyksdC5xdW90ZXMhPSJzaW5nbGUiJiZ0LnF1b3RlcyE9ImRvdWJsZSImJih0LnF1b3Rlcz0ic2luZ2xlIik7Zm9yKHZhciBpPXQucXVvdGVzPT0iZG91YmxlIj8nIic6IiciLG49dC5pc0lkZW50aWZpZXIscz1lLmNoYXJBdCgwKSxhPSIiLG89MCxsPWUubGVuZ3RoO288bDspe3ZhciBjPWUuY2hhckF0KG8rKyksZj1jLmNoYXJDb2RlQXQoKSxkPXZvaWQgMDtpZihmPDMyfHxmPjEyNil7aWYoZj49NTUyOTYmJmY8PTU2MzE5JiZvPGwpe3ZhciBwPWUuY2hhckNvZGVBdChvKyspOyhwJjY0NTEyKT09NTYzMjA/Zj0oKGYmMTAyMyk8PDEwKSsocCYxMDIzKSs2NTUzNjpvLS19ZD0iXFwiK2YudG9TdHJpbmcoMTYpLnRvVXBwZXJDYXNlKCkrIiAifWVsc2UgdC5lc2NhcGVFdmVyeXRoaW5nPyRrLnRlc3QoYyk/ZD0iXFwiK2M6ZD0iXFwiK2YudG9TdHJpbmcoMTYpLnRvVXBwZXJDYXNlKCkrIiAiOi9bXHRcblxmXHJceDBCXS8udGVzdChjKT9kPSJcXCIrZi50b1N0cmluZygxNikudG9VcHBlckNhc2UoKSsiICI6Yz09IlxcInx8IW4mJihjPT0nIicmJmk9PWN8fGM9PSInIiYmaT09Yyl8fG4mJkxrLnRlc3QoYyk/ZD0iXFwiK2M6ZD1jO2ErPWR9cmV0dXJuIG4mJigvXi1bLVxkXS8udGVzdChhKT9hPSJcXC0iK2Euc2xpY2UoMSk6L1xkLy50ZXN0KHMpJiYoYT0iXFwzIitzKyIgIithLnNsaWNlKDEpKSksYT1hLnJlcGxhY2UoTWssZnVuY3Rpb24oaCxiLHYpe3JldHVybiBiJiZiLmxlbmd0aCUyP2g6KGJ8fCIiKSt2fSksIW4mJnQud3JhcD9pK2EraTphfTtMYS5vcHRpb25zPXtlc2NhcGVFdmVyeXRoaW5nOiExLGlzSWRlbnRpZmllcjohMSxxdW90ZXM6InNpbmdsZSIsd3JhcDohMX07TGEudmVyc2lvbj0iMy4wLjAiO1ZwLmV4cG9ydHM9TGF9KTt2YXIgTmE9eCgobGksR3ApPT57dSgpOyJ1c2Ugc3RyaWN0IjtsaS5fX2VzTW9kdWxlPSEwO2xpLmRlZmF1bHQ9dm9pZCAwO3ZhciBOaz1IcChNbigpKSxCaz1paSgpLEZrPUhwKGR0KCkpLGprPVNlKCk7ZnVuY3Rpb24gSHAocil7cmV0dXJuIHImJnIuX19lc01vZHVsZT9yOntkZWZhdWx0OnJ9fWZ1bmN0aW9uIFdwKHIsZSl7Zm9yKHZhciB0PTA7dDxlLmxlbmd0aDt0Kyspe3ZhciBpPWVbdF07aS5lbnVtZXJhYmxlPWkuZW51bWVyYWJsZXx8ITEsaS5jb25maWd1cmFibGU9ITAsInZhbHVlImluIGkmJihpLndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkocixpLmtleSxpKX19ZnVuY3Rpb24gemsocixlLHQpe3JldHVybiBlJiZXcChyLnByb3RvdHlwZSxlKSx0JiZXcChyLHQpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLHJ9ZnVuY3Rpb24gVWsocixlKXtyLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGUucHJvdG90eXBlKSxyLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1yLE1hKHIsZSl9ZnVuY3Rpb24gTWEocixlKXtyZXR1cm4gTWE9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24oaSxuKXtyZXR1cm4gaS5fX3Byb3RvX189bixpfSxNYShyLGUpfXZhciBWaz1mdW5jdGlvbihyKXtVayhlLHIpO2Z1bmN0aW9uIGUoaSl7dmFyIG47cmV0dXJuIG49ci5jYWxsKHRoaXMsaSl8fHRoaXMsbi50eXBlPWprLkNMQVNTLG4uX2NvbnN0cnVjdGVkPSEwLG59dmFyIHQ9ZS5wcm90b3R5cGU7cmV0dXJuIHQudmFsdWVUb1N0cmluZz1mdW5jdGlvbigpe3JldHVybiIuIityLnByb3RvdHlwZS52YWx1ZVRvU3RyaW5nLmNhbGwodGhpcyl9LHprKGUsW3trZXk6InZhbHVlIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fdmFsdWV9LHNldDpmdW5jdGlvbihuKXtpZih0aGlzLl9jb25zdHJ1Y3RlZCl7dmFyIHM9KDAsTmsuZGVmYXVsdCkobix7aXNJZGVudGlmaWVyOiEwfSk7cyE9PW4/KCgwLEJrLmVuc3VyZU9iamVjdCkodGhpcywicmF3cyIpLHRoaXMucmF3cy52YWx1ZT1zKTp0aGlzLnJhd3MmJmRlbGV0ZSB0aGlzLnJhd3MudmFsdWV9dGhpcy5fdmFsdWU9bn19XSksZX0oRmsuZGVmYXVsdCk7bGkuZGVmYXVsdD1WaztHcC5leHBvcnRzPWxpLmRlZmF1bHR9KTt2YXIgRmE9eCgodWksUXApPT57dSgpOyJ1c2Ugc3RyaWN0Ijt1aS5fX2VzTW9kdWxlPSEwO3VpLmRlZmF1bHQ9dm9pZCAwO3ZhciBIaz1HayhkdCgpKSxXaz1TZSgpO2Z1bmN0aW9uIEdrKHIpe3JldHVybiByJiZyLl9fZXNNb2R1bGU/cjp7ZGVmYXVsdDpyfX1mdW5jdGlvbiBRayhyLGUpe3IucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZS5wcm90b3R5cGUpLHIucHJvdG90eXBlLmNvbnN0cnVjdG9yPXIsQmEocixlKX1mdW5jdGlvbiBCYShyLGUpe3JldHVybiBCYT1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbihpLG4pe3JldHVybiBpLl9fcHJvdG9fXz1uLGl9LEJhKHIsZSl9dmFyIFlrPWZ1bmN0aW9uKHIpe1FrKGUscik7ZnVuY3Rpb24gZSh0KXt2YXIgaTtyZXR1cm4gaT1yLmNhbGwodGhpcyx0KXx8dGhpcyxpLnR5cGU9V2suQ09NTUVOVCxpfXJldHVybiBlfShIay5kZWZhdWx0KTt1aS5kZWZhdWx0PVlrO1FwLmV4cG9ydHM9dWkuZGVmYXVsdH0pO3ZhciB6YT14KChmaSxZcCk9Pnt1KCk7InVzZSBzdHJpY3QiO2ZpLl9fZXNNb2R1bGU9ITA7ZmkuZGVmYXVsdD12b2lkIDA7dmFyIEtrPVprKGR0KCkpLFhrPVNlKCk7ZnVuY3Rpb24gWmsocil7cmV0dXJuIHImJnIuX19lc01vZHVsZT9yOntkZWZhdWx0OnJ9fWZ1bmN0aW9uIEprKHIsZSl7ci5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShlLnByb3RvdHlwZSksci5wcm90b3R5cGUuY29uc3RydWN0b3I9cixqYShyLGUpfWZ1bmN0aW9uIGphKHIsZSl7cmV0dXJuIGphPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKGksbil7cmV0dXJuIGkuX19wcm90b19fPW4saX0samEocixlKX12YXIgZVM9ZnVuY3Rpb24ocil7SmsoZSxyKTtmdW5jdGlvbiBlKGkpe3ZhciBuO3JldHVybiBuPXIuY2FsbCh0aGlzLGkpfHx0aGlzLG4udHlwZT1Yay5JRCxufXZhciB0PWUucHJvdG90eXBlO3JldHVybiB0LnZhbHVlVG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4iIyIrci5wcm90b3R5cGUudmFsdWVUb1N0cmluZy5jYWxsKHRoaXMpfSxlfShLay5kZWZhdWx0KTtmaS5kZWZhdWx0PWVTO1lwLmV4cG9ydHM9ZmkuZGVmYXVsdH0pO3ZhciBObj14KChjaSxacCk9Pnt1KCk7InVzZSBzdHJpY3QiO2NpLl9fZXNNb2R1bGU9ITA7Y2kuZGVmYXVsdD12b2lkIDA7dmFyIHRTPUtwKE1uKCkpLHJTPWlpKCksaVM9S3AoZHQoKSk7ZnVuY3Rpb24gS3Aocil7cmV0dXJuIHImJnIuX19lc01vZHVsZT9yOntkZWZhdWx0OnJ9fWZ1bmN0aW9uIFhwKHIsZSl7Zm9yKHZhciB0PTA7dDxlLmxlbmd0aDt0Kyspe3ZhciBpPWVbdF07aS5lbnVtZXJhYmxlPWkuZW51bWVyYWJsZXx8ITEsaS5jb25maWd1cmFibGU9ITAsInZhbHVlImluIGkmJihpLndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkocixpLmtleSxpKX19ZnVuY3Rpb24gblMocixlLHQpe3JldHVybiBlJiZYcChyLnByb3RvdHlwZSxlKSx0JiZYcChyLHQpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLHJ9ZnVuY3Rpb24gc1MocixlKXtyLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGUucHJvdG90eXBlKSxyLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1yLFVhKHIsZSl9ZnVuY3Rpb24gVWEocixlKXtyZXR1cm4gVWE9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24oaSxuKXtyZXR1cm4gaS5fX3Byb3RvX189bixpfSxVYShyLGUpfXZhciBhUz1mdW5jdGlvbihyKXtzUyhlLHIpO2Z1bmN0aW9uIGUoKXtyZXR1cm4gci5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9dmFyIHQ9ZS5wcm90b3R5cGU7cmV0dXJuIHQucXVhbGlmaWVkTmFtZT1mdW5jdGlvbihuKXtyZXR1cm4gdGhpcy5uYW1lc3BhY2U/dGhpcy5uYW1lc3BhY2VTdHJpbmcrInwiK246bn0sdC52YWx1ZVRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucXVhbGlmaWVkTmFtZShyLnByb3RvdHlwZS52YWx1ZVRvU3RyaW5nLmNhbGwodGhpcykpfSxuUyhlLFt7a2V5OiJuYW1lc3BhY2UiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9uYW1lc3BhY2V9LHNldDpmdW5jdGlvbihuKXtpZihuPT09ITB8fG49PT0iKiJ8fG49PT0iJiIpe3RoaXMuX25hbWVzcGFjZT1uLHRoaXMucmF3cyYmZGVsZXRlIHRoaXMucmF3cy5uYW1lc3BhY2U7cmV0dXJufXZhciBzPSgwLHRTLmRlZmF1bHQpKG4se2lzSWRlbnRpZmllcjohMH0pO3RoaXMuX25hbWVzcGFjZT1uLHMhPT1uPygoMCxyUy5lbnN1cmVPYmplY3QpKHRoaXMsInJhd3MiKSx0aGlzLnJhd3MubmFtZXNwYWNlPXMpOnRoaXMucmF3cyYmZGVsZXRlIHRoaXMucmF3cy5uYW1lc3BhY2V9fSx7a2V5OiJucyIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX25hbWVzcGFjZX0sc2V0OmZ1bmN0aW9uKG4pe3RoaXMubmFtZXNwYWNlPW59fSx7a2V5OiJuYW1lc3BhY2VTdHJpbmciLGdldDpmdW5jdGlvbigpe2lmKHRoaXMubmFtZXNwYWNlKXt2YXIgbj10aGlzLnN0cmluZ2lmeVByb3BlcnR5KCJuYW1lc3BhY2UiKTtyZXR1cm4gbj09PSEwPyIiOm59ZWxzZSByZXR1cm4iIn19XSksZX0oaVMuZGVmYXVsdCk7Y2kuZGVmYXVsdD1hUztacC5leHBvcnRzPWNpLmRlZmF1bHR9KTt2YXIgSGE9eCgocGksSnApPT57dSgpOyJ1c2Ugc3RyaWN0IjtwaS5fX2VzTW9kdWxlPSEwO3BpLmRlZmF1bHQ9dm9pZCAwO3ZhciBvUz11UyhObigpKSxsUz1TZSgpO2Z1bmN0aW9uIHVTKHIpe3JldHVybiByJiZyLl9fZXNNb2R1bGU/cjp7ZGVmYXVsdDpyfX1mdW5jdGlvbiBmUyhyLGUpe3IucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZS5wcm90b3R5cGUpLHIucHJvdG90eXBlLmNvbnN0cnVjdG9yPXIsVmEocixlKX1mdW5jdGlvbiBWYShyLGUpe3JldHVybiBWYT1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbihpLG4pe3JldHVybiBpLl9fcHJvdG9fXz1uLGl9LFZhKHIsZSl9dmFyIGNTPWZ1bmN0aW9uKHIpe2ZTKGUscik7ZnVuY3Rpb24gZSh0KXt2YXIgaTtyZXR1cm4gaT1yLmNhbGwodGhpcyx0KXx8dGhpcyxpLnR5cGU9bFMuVEFHLGl9cmV0dXJuIGV9KG9TLmRlZmF1bHQpO3BpLmRlZmF1bHQ9Y1M7SnAuZXhwb3J0cz1waS5kZWZhdWx0fSk7dmFyIEdhPXgoKGRpLGVkKT0+e3UoKTsidXNlIHN0cmljdCI7ZGkuX19lc01vZHVsZT0hMDtkaS5kZWZhdWx0PXZvaWQgMDt2YXIgcFM9aFMoZHQoKSksZFM9U2UoKTtmdW5jdGlvbiBoUyhyKXtyZXR1cm4gciYmci5fX2VzTW9kdWxlP3I6e2RlZmF1bHQ6cn19ZnVuY3Rpb24gbVMocixlKXtyLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGUucHJvdG90eXBlKSxyLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1yLFdhKHIsZSl9ZnVuY3Rpb24gV2EocixlKXtyZXR1cm4gV2E9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24oaSxuKXtyZXR1cm4gaS5fX3Byb3RvX189bixpfSxXYShyLGUpfXZhciBnUz1mdW5jdGlvbihyKXttUyhlLHIpO2Z1bmN0aW9uIGUodCl7dmFyIGk7cmV0dXJuIGk9ci5jYWxsKHRoaXMsdCl8fHRoaXMsaS50eXBlPWRTLlNUUklORyxpfXJldHVybiBlfShwUy5kZWZhdWx0KTtkaS5kZWZhdWx0PWdTO2VkLmV4cG9ydHM9ZGkuZGVmYXVsdH0pO3ZhciBZYT14KChoaSx0ZCk9Pnt1KCk7InVzZSBzdHJpY3QiO2hpLl9fZXNNb2R1bGU9ITA7aGkuZGVmYXVsdD12b2lkIDA7dmFyIHlTPXdTKExuKCkpLGJTPVNlKCk7ZnVuY3Rpb24gd1Mocil7cmV0dXJuIHImJnIuX19lc01vZHVsZT9yOntkZWZhdWx0OnJ9fWZ1bmN0aW9uIHZTKHIsZSl7ci5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShlLnByb3RvdHlwZSksci5wcm90b3R5cGUuY29uc3RydWN0b3I9cixRYShyLGUpfWZ1bmN0aW9uIFFhKHIsZSl7cmV0dXJuIFFhPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKGksbil7cmV0dXJuIGkuX19wcm90b19fPW4saX0sUWEocixlKX12YXIgeFM9ZnVuY3Rpb24ocil7dlMoZSxyKTtmdW5jdGlvbiBlKGkpe3ZhciBuO3JldHVybiBuPXIuY2FsbCh0aGlzLGkpfHx0aGlzLG4udHlwZT1iUy5QU0VVRE8sbn12YXIgdD1lLnByb3RvdHlwZTtyZXR1cm4gdC50b1N0cmluZz1mdW5jdGlvbigpe3ZhciBuPXRoaXMubGVuZ3RoPyIoIit0aGlzLm1hcChTdHJpbmcpLmpvaW4oIiwiKSsiKSI6IiI7cmV0dXJuW3RoaXMucmF3U3BhY2VCZWZvcmUsdGhpcy5zdHJpbmdpZnlQcm9wZXJ0eSgidmFsdWUiKSxuLHRoaXMucmF3U3BhY2VBZnRlcl0uam9pbigiIil9LGV9KHlTLmRlZmF1bHQpO2hpLmRlZmF1bHQ9eFM7dGQuZXhwb3J0cz1oaS5kZWZhdWx0fSk7dmFyIEJuPXt9O0dlKEJuLHtkZXByZWNhdGU6KCk9PmtTfSk7ZnVuY3Rpb24ga1Mocil7cmV0dXJuIHJ9dmFyIEZuPVAoKCk9Pnt1KCl9KTt2YXIgaWQ9eCgoRUkscmQpPT57dSgpO3JkLmV4cG9ydHM9KEZuKCksQm4pLmRlcHJlY2F0ZX0pO3ZhciB0bz14KHlpPT57dSgpOyJ1c2Ugc3RyaWN0Ijt5aS5fX2VzTW9kdWxlPSEwO3lpLmRlZmF1bHQ9dm9pZCAwO3lpLnVuZXNjYXBlVmFsdWU9SmE7dmFyIG1pPVhhKE1uKCkpLFNTPVhhKFBuKCkpLEFTPVhhKE5uKCkpLENTPVNlKCksS2E7ZnVuY3Rpb24gWGEocil7cmV0dXJuIHImJnIuX19lc01vZHVsZT9yOntkZWZhdWx0OnJ9fWZ1bmN0aW9uIG5kKHIsZSl7Zm9yKHZhciB0PTA7dDxlLmxlbmd0aDt0Kyspe3ZhciBpPWVbdF07aS5lbnVtZXJhYmxlPWkuZW51bWVyYWJsZXx8ITEsaS5jb25maWd1cmFibGU9ITAsInZhbHVlImluIGkmJihpLndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkocixpLmtleSxpKX19ZnVuY3Rpb24gX1MocixlLHQpe3JldHVybiBlJiZuZChyLnByb3RvdHlwZSxlKSx0JiZuZChyLHQpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLHJ9ZnVuY3Rpb24gRVMocixlKXtyLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGUucHJvdG90eXBlKSxyLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1yLFphKHIsZSl9ZnVuY3Rpb24gWmEocixlKXtyZXR1cm4gWmE9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24oaSxuKXtyZXR1cm4gaS5fX3Byb3RvX189bixpfSxaYShyLGUpfXZhciBnaT1pZCgpLE9TPS9eKCd8IikoW15dKilcMSQvLFRTPWdpKGZ1bmN0aW9uKCl7fSwiQXNzaWduaW5nIGFuIGF0dHJpYnV0ZSBhIHZhbHVlIGNvbnRhaW5pbmcgY2hhcmFjdGVycyB0aGF0IG1pZ2h0IG5lZWQgdG8gYmUgZXNjYXBlZCBpcyBkZXByZWNhdGVkLiBDYWxsIGF0dHJpYnV0ZS5zZXRWYWx1ZSgpIGluc3RlYWQuIiksUlM9Z2koZnVuY3Rpb24oKXt9LCJBc3NpZ25pbmcgYXR0ci5xdW90ZWQgaXMgZGVwcmVjYXRlZCBhbmQgaGFzIG5vIGVmZmVjdC4gQXNzaWduIHRvIGF0dHIucXVvdGVNYXJrIGluc3RlYWQuIiksUFM9Z2koZnVuY3Rpb24oKXt9LCJDb25zdHJ1Y3RpbmcgYW4gQXR0cmlidXRlIHNlbGVjdG9yIHdpdGggYSB2YWx1ZSB3aXRob3V0IHNwZWNpZnlpbmcgcXVvdGVNYXJrIGlzIGRlcHJlY2F0ZWQuIE5vdGU6IFRoZSB2YWx1ZSBzaG91bGQgYmUgdW5lc2NhcGVkIG5vdy4iKTtmdW5jdGlvbiBKYShyKXt2YXIgZT0hMSx0PW51bGwsaT1yLG49aS5tYXRjaChPUyk7cmV0dXJuIG4mJih0PW5bMV0saT1uWzJdKSxpPSgwLFNTLmRlZmF1bHQpKGkpLGkhPT1yJiYoZT0hMCkse2RlcHJlY2F0ZWRVc2FnZTplLHVuZXNjYXBlZDppLHF1b3RlTWFyazp0fX1mdW5jdGlvbiBJUyhyKXtpZihyLnF1b3RlTWFyayE9PXZvaWQgMHx8ci52YWx1ZT09PXZvaWQgMClyZXR1cm4gcjtQUygpO3ZhciBlPUphKHIudmFsdWUpLHQ9ZS5xdW90ZU1hcmssaT1lLnVuZXNjYXBlZDtyZXR1cm4gci5yYXdzfHwoci5yYXdzPXt9KSxyLnJhd3MudmFsdWU9PT12b2lkIDAmJihyLnJhd3MudmFsdWU9ci52YWx1ZSksci52YWx1ZT1pLHIucXVvdGVNYXJrPXQscn12YXIgam49ZnVuY3Rpb24ocil7RVMoZSxyKTtmdW5jdGlvbiBlKGkpe3ZhciBuO3JldHVybiBpPT09dm9pZCAwJiYoaT17fSksbj1yLmNhbGwodGhpcyxJUyhpKSl8fHRoaXMsbi50eXBlPUNTLkFUVFJJQlVURSxuLnJhd3M9bi5yYXdzfHx7fSxPYmplY3QuZGVmaW5lUHJvcGVydHkobi5yYXdzLCJ1bnF1b3RlZCIse2dldDpnaShmdW5jdGlvbigpe3JldHVybiBuLnZhbHVlfSwiYXR0ci5yYXdzLnVucXVvdGVkIGlzIGRlcHJlY2F0ZWQuIENhbGwgYXR0ci52YWx1ZSBpbnN0ZWFkLiIpLHNldDpnaShmdW5jdGlvbigpe3JldHVybiBuLnZhbHVlfSwiU2V0dGluZyBhdHRyLnJhd3MudW5xdW90ZWQgaXMgZGVwcmVjYXRlZCBhbmQgaGFzIG5vIGVmZmVjdC4gYXR0ci52YWx1ZSBpcyB1bmVzY2FwZWQgYnkgZGVmYXVsdCBub3cuIil9KSxuLl9jb25zdHJ1Y3RlZD0hMCxufXZhciB0PWUucHJvdG90eXBlO3JldHVybiB0LmdldFF1b3RlZFZhbHVlPWZ1bmN0aW9uKG4pe249PT12b2lkIDAmJihuPXt9KTt2YXIgcz10aGlzLl9kZXRlcm1pbmVRdW90ZU1hcmsobiksYT1lb1tzXSxvPSgwLG1pLmRlZmF1bHQpKHRoaXMuX3ZhbHVlLGEpO3JldHVybiBvfSx0Ll9kZXRlcm1pbmVRdW90ZU1hcms9ZnVuY3Rpb24obil7cmV0dXJuIG4uc21hcnQ/dGhpcy5zbWFydFF1b3RlTWFyayhuKTp0aGlzLnByZWZlcnJlZFF1b3RlTWFyayhuKX0sdC5zZXRWYWx1ZT1mdW5jdGlvbihuLHMpe3M9PT12b2lkIDAmJihzPXt9KSx0aGlzLl92YWx1ZT1uLHRoaXMuX3F1b3RlTWFyaz10aGlzLl9kZXRlcm1pbmVRdW90ZU1hcmsocyksdGhpcy5fc3luY1Jhd1ZhbHVlKCl9LHQuc21hcnRRdW90ZU1hcms9ZnVuY3Rpb24obil7dmFyIHM9dGhpcy52YWx1ZSxhPXMucmVwbGFjZSgvW14nXS9nLCIiKS5sZW5ndGgsbz1zLnJlcGxhY2UoL1teIl0vZywiIikubGVuZ3RoO2lmKGErbz09PTApe3ZhciBsPSgwLG1pLmRlZmF1bHQpKHMse2lzSWRlbnRpZmllcjohMH0pO2lmKGw9PT1zKXJldHVybiBlLk5PX1FVT1RFO3ZhciBjPXRoaXMucHJlZmVycmVkUXVvdGVNYXJrKG4pO2lmKGM9PT1lLk5PX1FVT1RFKXt2YXIgZj10aGlzLnF1b3RlTWFya3x8bi5xdW90ZU1hcmt8fGUuRE9VQkxFX1FVT1RFLGQ9ZW9bZl0scD0oMCxtaS5kZWZhdWx0KShzLGQpO2lmKHAubGVuZ3RoPGwubGVuZ3RoKXJldHVybiBmfXJldHVybiBjfWVsc2UgcmV0dXJuIG89PT1hP3RoaXMucHJlZmVycmVkUXVvdGVNYXJrKG4pOm88YT9lLkRPVUJMRV9RVU9URTplLlNJTkdMRV9RVU9URX0sdC5wcmVmZXJyZWRRdW90ZU1hcms9ZnVuY3Rpb24obil7dmFyIHM9bi5wcmVmZXJDdXJyZW50UXVvdGVNYXJrP3RoaXMucXVvdGVNYXJrOm4ucXVvdGVNYXJrO3JldHVybiBzPT09dm9pZCAwJiYocz1uLnByZWZlckN1cnJlbnRRdW90ZU1hcms/bi5xdW90ZU1hcms6dGhpcy5xdW90ZU1hcmspLHM9PT12b2lkIDAmJihzPWUuRE9VQkxFX1FVT1RFKSxzfSx0Ll9zeW5jUmF3VmFsdWU9ZnVuY3Rpb24oKXt2YXIgbj0oMCxtaS5kZWZhdWx0KSh0aGlzLl92YWx1ZSxlb1t0aGlzLnF1b3RlTWFya10pO249PT10aGlzLl92YWx1ZT90aGlzLnJhd3MmJmRlbGV0ZSB0aGlzLnJhd3MudmFsdWU6dGhpcy5yYXdzLnZhbHVlPW59LHQuX2hhbmRsZUVzY2FwZXM9ZnVuY3Rpb24obixzKXtpZih0aGlzLl9jb25zdHJ1Y3RlZCl7dmFyIGE9KDAsbWkuZGVmYXVsdCkocyx7aXNJZGVudGlmaWVyOiEwfSk7YSE9PXM/dGhpcy5yYXdzW25dPWE6ZGVsZXRlIHRoaXMucmF3c1tuXX19LHQuX3NwYWNlc0Zvcj1mdW5jdGlvbihuKXt2YXIgcz17YmVmb3JlOiIiLGFmdGVyOiIifSxhPXRoaXMuc3BhY2VzW25dfHx7fSxvPXRoaXMucmF3cy5zcGFjZXMmJnRoaXMucmF3cy5zcGFjZXNbbl18fHt9O3JldHVybiBPYmplY3QuYXNzaWduKHMsYSxvKX0sdC5fc3RyaW5nRm9yPWZ1bmN0aW9uKG4scyxhKXtzPT09dm9pZCAwJiYocz1uKSxhPT09dm9pZCAwJiYoYT1zZCk7dmFyIG89dGhpcy5fc3BhY2VzRm9yKHMpO3JldHVybiBhKHRoaXMuc3RyaW5naWZ5UHJvcGVydHkobiksbyl9LHQub2Zmc2V0T2Y9ZnVuY3Rpb24obil7dmFyIHM9MSxhPXRoaXMuX3NwYWNlc0ZvcigiYXR0cmlidXRlIik7aWYocys9YS5iZWZvcmUubGVuZ3RoLG49PT0ibmFtZXNwYWNlInx8bj09PSJucyIpcmV0dXJuIHRoaXMubmFtZXNwYWNlP3M6LTE7aWYobj09PSJhdHRyaWJ1dGVOUyJ8fChzKz10aGlzLm5hbWVzcGFjZVN0cmluZy5sZW5ndGgsdGhpcy5uYW1lc3BhY2UmJihzKz0xKSxuPT09ImF0dHJpYnV0ZSIpKXJldHVybiBzO3MrPXRoaXMuc3RyaW5naWZ5UHJvcGVydHkoImF0dHJpYnV0ZSIpLmxlbmd0aCxzKz1hLmFmdGVyLmxlbmd0aDt2YXIgbz10aGlzLl9zcGFjZXNGb3IoIm9wZXJhdG9yIik7cys9by5iZWZvcmUubGVuZ3RoO3ZhciBsPXRoaXMuc3RyaW5naWZ5UHJvcGVydHkoIm9wZXJhdG9yIik7aWYobj09PSJvcGVyYXRvciIpcmV0dXJuIGw/czotMTtzKz1sLmxlbmd0aCxzKz1vLmFmdGVyLmxlbmd0aDt2YXIgYz10aGlzLl9zcGFjZXNGb3IoInZhbHVlIik7cys9Yy5iZWZvcmUubGVuZ3RoO3ZhciBmPXRoaXMuc3RyaW5naWZ5UHJvcGVydHkoInZhbHVlIik7aWYobj09PSJ2YWx1ZSIpcmV0dXJuIGY/czotMTtzKz1mLmxlbmd0aCxzKz1jLmFmdGVyLmxlbmd0aDt2YXIgZD10aGlzLl9zcGFjZXNGb3IoImluc2Vuc2l0aXZlIik7cmV0dXJuIHMrPWQuYmVmb3JlLmxlbmd0aCxuPT09Imluc2Vuc2l0aXZlIiYmdGhpcy5pbnNlbnNpdGl2ZT9zOi0xfSx0LnRvU3RyaW5nPWZ1bmN0aW9uKCl7dmFyIG49dGhpcyxzPVt0aGlzLnJhd1NwYWNlQmVmb3JlLCJbIl07cmV0dXJuIHMucHVzaCh0aGlzLl9zdHJpbmdGb3IoInF1YWxpZmllZEF0dHJpYnV0ZSIsImF0dHJpYnV0ZSIpKSx0aGlzLm9wZXJhdG9yJiYodGhpcy52YWx1ZXx8dGhpcy52YWx1ZT09PSIiKSYmKHMucHVzaCh0aGlzLl9zdHJpbmdGb3IoIm9wZXJhdG9yIikpLHMucHVzaCh0aGlzLl9zdHJpbmdGb3IoInZhbHVlIikpLHMucHVzaCh0aGlzLl9zdHJpbmdGb3IoImluc2Vuc2l0aXZlRmxhZyIsImluc2Vuc2l0aXZlIixmdW5jdGlvbihhLG8pe3JldHVybiBhLmxlbmd0aD4wJiYhbi5xdW90ZWQmJm8uYmVmb3JlLmxlbmd0aD09PTAmJiEobi5zcGFjZXMudmFsdWUmJm4uc3BhY2VzLnZhbHVlLmFmdGVyKSYmKG8uYmVmb3JlPSIgIiksc2QoYSxvKX0pKSkscy5wdXNoKCJdIikscy5wdXNoKHRoaXMucmF3U3BhY2VBZnRlcikscy5qb2luKCIiKX0sX1MoZSxbe2tleToicXVvdGVkIixnZXQ6ZnVuY3Rpb24oKXt2YXIgbj10aGlzLnF1b3RlTWFyaztyZXR1cm4gbj09PSInInx8bj09PSciJ30sc2V0OmZ1bmN0aW9uKG4pe1JTKCl9fSx7a2V5OiJxdW90ZU1hcmsiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9xdW90ZU1hcmt9LHNldDpmdW5jdGlvbihuKXtpZighdGhpcy5fY29uc3RydWN0ZWQpe3RoaXMuX3F1b3RlTWFyaz1uO3JldHVybn10aGlzLl9xdW90ZU1hcmshPT1uJiYodGhpcy5fcXVvdGVNYXJrPW4sdGhpcy5fc3luY1Jhd1ZhbHVlKCkpfX0se2tleToicXVhbGlmaWVkQXR0cmlidXRlIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5xdWFsaWZpZWROYW1lKHRoaXMucmF3cy5hdHRyaWJ1dGV8fHRoaXMuYXR0cmlidXRlKX19LHtrZXk6Imluc2Vuc2l0aXZlRmxhZyIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaW5zZW5zaXRpdmU/ImkiOiIifX0se2tleToidmFsdWUiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl92YWx1ZX0sc2V0OmZ1bmN0aW9uKG4pe2lmKHRoaXMuX2NvbnN0cnVjdGVkKXt2YXIgcz1KYShuKSxhPXMuZGVwcmVjYXRlZFVzYWdlLG89cy51bmVzY2FwZWQsbD1zLnF1b3RlTWFyaztpZihhJiZUUygpLG89PT10aGlzLl92YWx1ZSYmbD09PXRoaXMuX3F1b3RlTWFyaylyZXR1cm47dGhpcy5fdmFsdWU9byx0aGlzLl9xdW90ZU1hcms9bCx0aGlzLl9zeW5jUmF3VmFsdWUoKX1lbHNlIHRoaXMuX3ZhbHVlPW59fSx7a2V5OiJpbnNlbnNpdGl2ZSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2luc2Vuc2l0aXZlfSxzZXQ6ZnVuY3Rpb24obil7bnx8KHRoaXMuX2luc2Vuc2l0aXZlPSExLHRoaXMucmF3cyYmKHRoaXMucmF3cy5pbnNlbnNpdGl2ZUZsYWc9PT0iSSJ8fHRoaXMucmF3cy5pbnNlbnNpdGl2ZUZsYWc9PT0iaSIpJiYodGhpcy5yYXdzLmluc2Vuc2l0aXZlRmxhZz12b2lkIDApKSx0aGlzLl9pbnNlbnNpdGl2ZT1ufX0se2tleToiYXR0cmlidXRlIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYXR0cmlidXRlfSxzZXQ6ZnVuY3Rpb24obil7dGhpcy5faGFuZGxlRXNjYXBlcygiYXR0cmlidXRlIixuKSx0aGlzLl9hdHRyaWJ1dGU9bn19XSksZX0oQVMuZGVmYXVsdCk7eWkuZGVmYXVsdD1qbjtqbi5OT19RVU9URT1udWxsO2puLlNJTkdMRV9RVU9URT0iJyI7am4uRE9VQkxFX1FVT1RFPSciJzt2YXIgZW89KEthPXsiJyI6e3F1b3Rlczoic2luZ2xlIix3cmFwOiEwfSwnIic6e3F1b3RlczoiZG91YmxlIix3cmFwOiEwfX0sS2FbbnVsbF09e2lzSWRlbnRpZmllcjohMH0sS2EpO2Z1bmN0aW9uIHNkKHIsZSl7cmV0dXJuIiIrZS5iZWZvcmUrcitlLmFmdGVyfX0pO3ZhciBpbz14KChiaSxhZCk9Pnt1KCk7InVzZSBzdHJpY3QiO2JpLl9fZXNNb2R1bGU9ITA7YmkuZGVmYXVsdD12b2lkIDA7dmFyIERTPSRTKE5uKCkpLHFTPVNlKCk7ZnVuY3Rpb24gJFMocil7cmV0dXJuIHImJnIuX19lc01vZHVsZT9yOntkZWZhdWx0OnJ9fWZ1bmN0aW9uIExTKHIsZSl7ci5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShlLnByb3RvdHlwZSksci5wcm90b3R5cGUuY29uc3RydWN0b3I9cixybyhyLGUpfWZ1bmN0aW9uIHJvKHIsZSl7cmV0dXJuIHJvPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKGksbil7cmV0dXJuIGkuX19wcm90b19fPW4saX0scm8ocixlKX12YXIgTVM9ZnVuY3Rpb24ocil7TFMoZSxyKTtmdW5jdGlvbiBlKHQpe3ZhciBpO3JldHVybiBpPXIuY2FsbCh0aGlzLHQpfHx0aGlzLGkudHlwZT1xUy5VTklWRVJTQUwsaS52YWx1ZT0iKiIsaX1yZXR1cm4gZX0oRFMuZGVmYXVsdCk7YmkuZGVmYXVsdD1NUzthZC5leHBvcnRzPWJpLmRlZmF1bHR9KTt2YXIgc289eCgod2ksb2QpPT57dSgpOyJ1c2Ugc3RyaWN0Ijt3aS5fX2VzTW9kdWxlPSEwO3dpLmRlZmF1bHQ9dm9pZCAwO3ZhciBOUz1GUyhkdCgpKSxCUz1TZSgpO2Z1bmN0aW9uIEZTKHIpe3JldHVybiByJiZyLl9fZXNNb2R1bGU/cjp7ZGVmYXVsdDpyfX1mdW5jdGlvbiBqUyhyLGUpe3IucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZS5wcm90b3R5cGUpLHIucHJvdG90eXBlLmNvbnN0cnVjdG9yPXIsbm8ocixlKX1mdW5jdGlvbiBubyhyLGUpe3JldHVybiBubz1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbihpLG4pe3JldHVybiBpLl9fcHJvdG9fXz1uLGl9LG5vKHIsZSl9dmFyIHpTPWZ1bmN0aW9uKHIpe2pTKGUscik7ZnVuY3Rpb24gZSh0KXt2YXIgaTtyZXR1cm4gaT1yLmNhbGwodGhpcyx0KXx8dGhpcyxpLnR5cGU9QlMuQ09NQklOQVRPUixpfXJldHVybiBlfShOUy5kZWZhdWx0KTt3aS5kZWZhdWx0PXpTO29kLmV4cG9ydHM9d2kuZGVmYXVsdH0pO3ZhciBvbz14KCh2aSxsZCk9Pnt1KCk7InVzZSBzdHJpY3QiO3ZpLl9fZXNNb2R1bGU9ITA7dmkuZGVmYXVsdD12b2lkIDA7dmFyIFVTPUhTKGR0KCkpLFZTPVNlKCk7ZnVuY3Rpb24gSFMocil7cmV0dXJuIHImJnIuX19lc01vZHVsZT9yOntkZWZhdWx0OnJ9fWZ1bmN0aW9uIFdTKHIsZSl7ci5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShlLnByb3RvdHlwZSksci5wcm90b3R5cGUuY29uc3RydWN0b3I9cixhbyhyLGUpfWZ1bmN0aW9uIGFvKHIsZSl7cmV0dXJuIGFvPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKGksbil7cmV0dXJuIGkuX19wcm90b19fPW4saX0sYW8ocixlKX12YXIgR1M9ZnVuY3Rpb24ocil7V1MoZSxyKTtmdW5jdGlvbiBlKHQpe3ZhciBpO3JldHVybiBpPXIuY2FsbCh0aGlzLHQpfHx0aGlzLGkudHlwZT1WUy5ORVNUSU5HLGkudmFsdWU9IiYiLGl9cmV0dXJuIGV9KFVTLmRlZmF1bHQpO3ZpLmRlZmF1bHQ9R1M7bGQuZXhwb3J0cz12aS5kZWZhdWx0fSk7dmFyIGZkPXgoKHpuLHVkKT0+e3UoKTsidXNlIHN0cmljdCI7em4uX19lc01vZHVsZT0hMDt6bi5kZWZhdWx0PVFTO2Z1bmN0aW9uIFFTKHIpe3JldHVybiByLnNvcnQoZnVuY3Rpb24oZSx0KXtyZXR1cm4gZS10fSl9dWQuZXhwb3J0cz16bi5kZWZhdWx0fSk7dmFyIGxvPXgoTT0+e3UoKTsidXNlIHN0cmljdCI7TS5fX2VzTW9kdWxlPSEwO00ud29yZD1NLnRpbGRlPU0udGFiPU0uc3RyPU0uc3BhY2U9TS5zbGFzaD1NLnNpbmdsZVF1b3RlPU0uc2VtaWNvbG9uPU0ucGx1cz1NLnBpcGU9TS5vcGVuU3F1YXJlPU0ub3BlblBhcmVudGhlc2lzPU0ubmV3bGluZT1NLmdyZWF0ZXJUaGFuPU0uZmVlZD1NLmVxdWFscz1NLmRvdWJsZVF1b3RlPU0uZG9sbGFyPU0uY3I9TS5jb21tZW50PU0uY29tbWE9TS5jb21iaW5hdG9yPU0uY29sb249TS5jbG9zZVNxdWFyZT1NLmNsb3NlUGFyZW50aGVzaXM9TS5jYXJldD1NLmJhbmc9TS5iYWNrc2xhc2g9TS5hdD1NLmFzdGVyaXNrPU0uYW1wZXJzYW5kPXZvaWQgMDt2YXIgWVM9Mzg7TS5hbXBlcnNhbmQ9WVM7dmFyIEtTPTQyO00uYXN0ZXJpc2s9S1M7dmFyIFhTPTY0O00uYXQ9WFM7dmFyIFpTPTQ0O00uY29tbWE9WlM7dmFyIEpTPTU4O00uY29sb249SlM7dmFyIGVBPTU5O00uc2VtaWNvbG9uPWVBO3ZhciB0QT00MDtNLm9wZW5QYXJlbnRoZXNpcz10QTt2YXIgckE9NDE7TS5jbG9zZVBhcmVudGhlc2lzPXJBO3ZhciBpQT05MTtNLm9wZW5TcXVhcmU9aUE7dmFyIG5BPTkzO00uY2xvc2VTcXVhcmU9bkE7dmFyIHNBPTM2O00uZG9sbGFyPXNBO3ZhciBhQT0xMjY7TS50aWxkZT1hQTt2YXIgb0E9OTQ7TS5jYXJldD1vQTt2YXIgbEE9NDM7TS5wbHVzPWxBO3ZhciB1QT02MTtNLmVxdWFscz11QTt2YXIgZkE9MTI0O00ucGlwZT1mQTt2YXIgY0E9NjI7TS5ncmVhdGVyVGhhbj1jQTt2YXIgcEE9MzI7TS5zcGFjZT1wQTt2YXIgY2Q9Mzk7TS5zaW5nbGVRdW90ZT1jZDt2YXIgZEE9MzQ7TS5kb3VibGVRdW90ZT1kQTt2YXIgaEE9NDc7TS5zbGFzaD1oQTt2YXIgbUE9MzM7TS5iYW5nPW1BO3ZhciBnQT05MjtNLmJhY2tzbGFzaD1nQTt2YXIgeUE9MTM7TS5jcj15QTt2YXIgYkE9MTI7TS5mZWVkPWJBO3ZhciB3QT0xMDtNLm5ld2xpbmU9d0E7dmFyIHZBPTk7TS50YWI9dkE7dmFyIHhBPWNkO00uc3RyPXhBO3ZhciBrQT0tMTtNLmNvbW1lbnQ9a0E7dmFyIFNBPS0yO00ud29yZD1TQTt2YXIgQUE9LTM7TS5jb21iaW5hdG9yPUFBfSk7dmFyIGhkPXgoeGk9Pnt1KCk7InVzZSBzdHJpY3QiO3hpLl9fZXNNb2R1bGU9ITA7eGkuRklFTERTPXZvaWQgMDt4aS5kZWZhdWx0PVBBO3ZhciBEPUNBKGxvKCkpLG5yLHRlO2Z1bmN0aW9uIHBkKHIpe2lmKHR5cGVvZiBXZWFrTWFwIT0iZnVuY3Rpb24iKXJldHVybiBudWxsO3ZhciBlPW5ldyBXZWFrTWFwLHQ9bmV3IFdlYWtNYXA7cmV0dXJuKHBkPWZ1bmN0aW9uKG4pe3JldHVybiBuP3Q6ZX0pKHIpfWZ1bmN0aW9uIENBKHIsZSl7aWYoIWUmJnImJnIuX19lc01vZHVsZSlyZXR1cm4gcjtpZihyPT09bnVsbHx8dHlwZW9mIHIhPSJvYmplY3QiJiZ0eXBlb2YgciE9ImZ1bmN0aW9uIilyZXR1cm57ZGVmYXVsdDpyfTt2YXIgdD1wZChlKTtpZih0JiZ0LmhhcyhyKSlyZXR1cm4gdC5nZXQocik7dmFyIGk9e30sbj1PYmplY3QuZGVmaW5lUHJvcGVydHkmJk9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7Zm9yKHZhciBzIGluIHIpaWYocyE9PSJkZWZhdWx0IiYmT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHIscykpe3ZhciBhPW4/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihyLHMpOm51bGw7YSYmKGEuZ2V0fHxhLnNldCk/T2JqZWN0LmRlZmluZVByb3BlcnR5KGkscyxhKTppW3NdPXJbc119cmV0dXJuIGkuZGVmYXVsdD1yLHQmJnQuc2V0KHIsaSksaX12YXIgX0E9KG5yPXt9LG5yW0QudGFiXT0hMCxucltELm5ld2xpbmVdPSEwLG5yW0QuY3JdPSEwLG5yW0QuZmVlZF09ITAsbnIpLEVBPSh0ZT17fSx0ZVtELnNwYWNlXT0hMCx0ZVtELnRhYl09ITAsdGVbRC5uZXdsaW5lXT0hMCx0ZVtELmNyXT0hMCx0ZVtELmZlZWRdPSEwLHRlW0QuYW1wZXJzYW5kXT0hMCx0ZVtELmFzdGVyaXNrXT0hMCx0ZVtELmJhbmddPSEwLHRlW0QuY29tbWFdPSEwLHRlW0QuY29sb25dPSEwLHRlW0Quc2VtaWNvbG9uXT0hMCx0ZVtELm9wZW5QYXJlbnRoZXNpc109ITAsdGVbRC5jbG9zZVBhcmVudGhlc2lzXT0hMCx0ZVtELm9wZW5TcXVhcmVdPSEwLHRlW0QuY2xvc2VTcXVhcmVdPSEwLHRlW0Quc2luZ2xlUXVvdGVdPSEwLHRlW0QuZG91YmxlUXVvdGVdPSEwLHRlW0QucGx1c109ITAsdGVbRC5waXBlXT0hMCx0ZVtELnRpbGRlXT0hMCx0ZVtELmdyZWF0ZXJUaGFuXT0hMCx0ZVtELmVxdWFsc109ITAsdGVbRC5kb2xsYXJdPSEwLHRlW0QuY2FyZXRdPSEwLHRlW0Quc2xhc2hdPSEwLHRlKSx1bz17fSxkZD0iMDEyMzQ1Njc4OWFiY2RlZkFCQ0RFRiI7Zm9yKFVuPTA7VW48ZGQubGVuZ3RoO1VuKyspdW9bZGQuY2hhckNvZGVBdChVbildPSEwO3ZhciBVbjtmdW5jdGlvbiBPQShyLGUpe3ZhciB0PWUsaTtkb3tpZihpPXIuY2hhckNvZGVBdCh0KSxFQVtpXSlyZXR1cm4gdC0xO2k9PT1ELmJhY2tzbGFzaD90PVRBKHIsdCkrMTp0Kyt9d2hpbGUodDxyLmxlbmd0aCk7cmV0dXJuIHQtMX1mdW5jdGlvbiBUQShyLGUpe3ZhciB0PWUsaT1yLmNoYXJDb2RlQXQodCsxKTtpZighX0FbaV0paWYodW9baV0pe3ZhciBuPTA7ZG8gdCsrLG4rKyxpPXIuY2hhckNvZGVBdCh0KzEpO3doaWxlKHVvW2ldJiZuPDYpO248NiYmaT09PUQuc3BhY2UmJnQrK31lbHNlIHQrKztyZXR1cm4gdH12YXIgUkE9e1RZUEU6MCxTVEFSVF9MSU5FOjEsU1RBUlRfQ09MOjIsRU5EX0xJTkU6MyxFTkRfQ09MOjQsU1RBUlRfUE9TOjUsRU5EX1BPUzo2fTt4aS5GSUVMRFM9UkE7ZnVuY3Rpb24gUEEocil7dmFyIGU9W10sdD1yLmNzcy52YWx1ZU9mKCksaT10LG49aS5sZW5ndGgscz0tMSxhPTEsbz0wLGw9MCxjLGYsZCxwLGgsYix2LHksdyxrLFMsRSxUO2Z1bmN0aW9uIEIoTixSKXtpZihyLnNhZmUpdCs9Uix3PXQubGVuZ3RoLTE7ZWxzZSB0aHJvdyByLmVycm9yKCJVbmNsb3NlZCAiK04sYSxvLXMsbyl9Zm9yKDtvPG47KXtzd2l0Y2goYz10LmNoYXJDb2RlQXQobyksYz09PUQubmV3bGluZSYmKHM9byxhKz0xKSxjKXtjYXNlIEQuc3BhY2U6Y2FzZSBELnRhYjpjYXNlIEQubmV3bGluZTpjYXNlIEQuY3I6Y2FzZSBELmZlZWQ6dz1vO2RvIHcrPTEsYz10LmNoYXJDb2RlQXQodyksYz09PUQubmV3bGluZSYmKHM9dyxhKz0xKTt3aGlsZShjPT09RC5zcGFjZXx8Yz09PUQubmV3bGluZXx8Yz09PUQudGFifHxjPT09RC5jcnx8Yz09PUQuZmVlZCk7VD1ELnNwYWNlLHA9YSxkPXctcy0xLGw9dzticmVhaztjYXNlIEQucGx1czpjYXNlIEQuZ3JlYXRlclRoYW46Y2FzZSBELnRpbGRlOmNhc2UgRC5waXBlOnc9bztkbyB3Kz0xLGM9dC5jaGFyQ29kZUF0KHcpO3doaWxlKGM9PT1ELnBsdXN8fGM9PT1ELmdyZWF0ZXJUaGFufHxjPT09RC50aWxkZXx8Yz09PUQucGlwZSk7VD1ELmNvbWJpbmF0b3IscD1hLGQ9by1zLGw9dzticmVhaztjYXNlIEQuYXN0ZXJpc2s6Y2FzZSBELmFtcGVyc2FuZDpjYXNlIEQuYmFuZzpjYXNlIEQuY29tbWE6Y2FzZSBELmVxdWFsczpjYXNlIEQuZG9sbGFyOmNhc2UgRC5jYXJldDpjYXNlIEQub3BlblNxdWFyZTpjYXNlIEQuY2xvc2VTcXVhcmU6Y2FzZSBELmNvbG9uOmNhc2UgRC5zZW1pY29sb246Y2FzZSBELm9wZW5QYXJlbnRoZXNpczpjYXNlIEQuY2xvc2VQYXJlbnRoZXNpczp3PW8sVD1jLHA9YSxkPW8tcyxsPXcrMTticmVhaztjYXNlIEQuc2luZ2xlUXVvdGU6Y2FzZSBELmRvdWJsZVF1b3RlOkU9Yz09PUQuc2luZ2xlUXVvdGU/IiciOiciJyx3PW87ZG8gZm9yKGg9ITEsdz10LmluZGV4T2YoRSx3KzEpLHc9PT0tMSYmQigicXVvdGUiLEUpLGI9dzt0LmNoYXJDb2RlQXQoYi0xKT09PUQuYmFja3NsYXNoOyliLT0xLGg9IWg7d2hpbGUoaCk7VD1ELnN0cixwPWEsZD1vLXMsbD13KzE7YnJlYWs7ZGVmYXVsdDpjPT09RC5zbGFzaCYmdC5jaGFyQ29kZUF0KG8rMSk9PT1ELmFzdGVyaXNrPyh3PXQuaW5kZXhPZigiKi8iLG8rMikrMSx3PT09MCYmQigiY29tbWVudCIsIiovIiksZj10LnNsaWNlKG8sdysxKSx5PWYuc3BsaXQoYApgKSx2PXkubGVuZ3RoLTEsdj4wPyhrPWErdixTPXcteVt2XS5sZW5ndGgpOihrPWEsUz1zKSxUPUQuY29tbWVudCxhPWsscD1rLGQ9dy1TKTpjPT09RC5zbGFzaD8odz1vLFQ9YyxwPWEsZD1vLXMsbD13KzEpOih3PU9BKHQsbyksVD1ELndvcmQscD1hLGQ9dy1zKSxsPXcrMTticmVha31lLnB1c2goW1QsYSxvLXMscCxkLG8sbF0pLFMmJihzPVMsUz1udWxsKSxvPWx9cmV0dXJuIGV9fSk7dmFyIGtkPXgoKGtpLHhkKT0+e3UoKTsidXNlIHN0cmljdCI7a2kuX19lc01vZHVsZT0hMDtraS5kZWZhdWx0PXZvaWQgMDt2YXIgSUE9amUoRGEoKSksZm89amUoJGEoKSksREE9amUoTmEoKSksbWQ9amUoRmEoKSkscUE9amUoemEoKSksJEE9amUoSGEoKSksY289amUoR2EoKSksTEE9amUoWWEoKSksZ2Q9Vm4odG8oKSksTUE9amUoaW8oKSkscG89amUoc28oKSksTkE9amUob28oKSksQkE9amUoZmQoKSksTz1WbihoZCgpKSxxPVZuKGxvKCkpLEZBPVZuKFNlKCkpLHVlPWlpKCksVnQsaG87ZnVuY3Rpb24geWQocil7aWYodHlwZW9mIFdlYWtNYXAhPSJmdW5jdGlvbiIpcmV0dXJuIG51bGw7dmFyIGU9bmV3IFdlYWtNYXAsdD1uZXcgV2Vha01hcDtyZXR1cm4oeWQ9ZnVuY3Rpb24obil7cmV0dXJuIG4/dDplfSkocil9ZnVuY3Rpb24gVm4ocixlKXtpZighZSYmciYmci5fX2VzTW9kdWxlKXJldHVybiByO2lmKHI9PT1udWxsfHx0eXBlb2YgciE9Im9iamVjdCImJnR5cGVvZiByIT0iZnVuY3Rpb24iKXJldHVybntkZWZhdWx0OnJ9O3ZhciB0PXlkKGUpO2lmKHQmJnQuaGFzKHIpKXJldHVybiB0LmdldChyKTt2YXIgaT17fSxuPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSYmT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjtmb3IodmFyIHMgaW4gcilpZihzIT09ImRlZmF1bHQiJiZPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocixzKSl7dmFyIGE9bj9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHIscyk6bnVsbDthJiYoYS5nZXR8fGEuc2V0KT9PYmplY3QuZGVmaW5lUHJvcGVydHkoaSxzLGEpOmlbc109cltzXX1yZXR1cm4gaS5kZWZhdWx0PXIsdCYmdC5zZXQocixpKSxpfWZ1bmN0aW9uIGplKHIpe3JldHVybiByJiZyLl9fZXNNb2R1bGU/cjp7ZGVmYXVsdDpyfX1mdW5jdGlvbiBiZChyLGUpe2Zvcih2YXIgdD0wO3Q8ZS5sZW5ndGg7dCsrKXt2YXIgaT1lW3RdO2kuZW51bWVyYWJsZT1pLmVudW1lcmFibGV8fCExLGkuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiBpJiYoaS53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsaS5rZXksaSl9fWZ1bmN0aW9uIGpBKHIsZSx0KXtyZXR1cm4gZSYmYmQoci5wcm90b3R5cGUsZSksdCYmYmQocix0KSxPYmplY3QuZGVmaW5lUHJvcGVydHkociwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSxyfXZhciBtbz0oVnQ9e30sVnRbcS5zcGFjZV09ITAsVnRbcS5jcl09ITAsVnRbcS5mZWVkXT0hMCxWdFtxLm5ld2xpbmVdPSEwLFZ0W3EudGFiXT0hMCxWdCksekE9T2JqZWN0LmFzc2lnbih7fSxtbywoaG89e30saG9bcS5jb21tZW50XT0hMCxobykpO2Z1bmN0aW9uIHdkKHIpe3JldHVybntsaW5lOnJbTy5GSUVMRFMuU1RBUlRfTElORV0sY29sdW1uOnJbTy5GSUVMRFMuU1RBUlRfQ09MXX19ZnVuY3Rpb24gdmQocil7cmV0dXJue2xpbmU6cltPLkZJRUxEUy5FTkRfTElORV0sY29sdW1uOnJbTy5GSUVMRFMuRU5EX0NPTF19fWZ1bmN0aW9uIEh0KHIsZSx0LGkpe3JldHVybntzdGFydDp7bGluZTpyLGNvbHVtbjplfSxlbmQ6e2xpbmU6dCxjb2x1bW46aX19fWZ1bmN0aW9uIHNyKHIpe3JldHVybiBIdChyW08uRklFTERTLlNUQVJUX0xJTkVdLHJbTy5GSUVMRFMuU1RBUlRfQ09MXSxyW08uRklFTERTLkVORF9MSU5FXSxyW08uRklFTERTLkVORF9DT0xdKX1mdW5jdGlvbiBnbyhyLGUpe2lmKCEhcilyZXR1cm4gSHQocltPLkZJRUxEUy5TVEFSVF9MSU5FXSxyW08uRklFTERTLlNUQVJUX0NPTF0sZVtPLkZJRUxEUy5FTkRfTElORV0sZVtPLkZJRUxEUy5FTkRfQ09MXSl9ZnVuY3Rpb24gYXIocixlKXt2YXIgdD1yW2VdO2lmKHR5cGVvZiB0PT0ic3RyaW5nIilyZXR1cm4gdC5pbmRleE9mKCJcXCIpIT09LTEmJigoMCx1ZS5lbnN1cmVPYmplY3QpKHIsInJhd3MiKSxyW2VdPSgwLHVlLnVuZXNjKSh0KSxyLnJhd3NbZV09PT12b2lkIDAmJihyLnJhd3NbZV09dCkpLHJ9ZnVuY3Rpb24geW8ocixlKXtmb3IodmFyIHQ9LTEsaT1bXTsodD1yLmluZGV4T2YoZSx0KzEpKSE9PS0xOylpLnB1c2godCk7cmV0dXJuIGl9ZnVuY3Rpb24gVUEoKXt2YXIgcj1BcnJheS5wcm90b3R5cGUuY29uY2F0LmFwcGx5KFtdLGFyZ3VtZW50cyk7cmV0dXJuIHIuZmlsdGVyKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQ9PT1yLmluZGV4T2YoZSl9KX12YXIgVkE9ZnVuY3Rpb24oKXtmdW5jdGlvbiByKHQsaSl7aT09PXZvaWQgMCYmKGk9e30pLHRoaXMucnVsZT10LHRoaXMub3B0aW9ucz1PYmplY3QuYXNzaWduKHtsb3NzeTohMSxzYWZlOiExfSxpKSx0aGlzLnBvc2l0aW9uPTAsdGhpcy5jc3M9dHlwZW9mIHRoaXMucnVsZT09InN0cmluZyI/dGhpcy5ydWxlOnRoaXMucnVsZS5zZWxlY3Rvcix0aGlzLnRva2Vucz0oMCxPLmRlZmF1bHQpKHtjc3M6dGhpcy5jc3MsZXJyb3I6dGhpcy5fZXJyb3JHZW5lcmF0b3IoKSxzYWZlOnRoaXMub3B0aW9ucy5zYWZlfSk7dmFyIG49Z28odGhpcy50b2tlbnNbMF0sdGhpcy50b2tlbnNbdGhpcy50b2tlbnMubGVuZ3RoLTFdKTt0aGlzLnJvb3Q9bmV3IElBLmRlZmF1bHQoe3NvdXJjZTpufSksdGhpcy5yb290LmVycm9yR2VuZXJhdG9yPXRoaXMuX2Vycm9yR2VuZXJhdG9yKCk7dmFyIHM9bmV3IGZvLmRlZmF1bHQoe3NvdXJjZTp7c3RhcnQ6e2xpbmU6MSxjb2x1bW46MX19LHNvdXJjZUluZGV4OjB9KTt0aGlzLnJvb3QuYXBwZW5kKHMpLHRoaXMuY3VycmVudD1zLHRoaXMubG9vcCgpfXZhciBlPXIucHJvdG90eXBlO3JldHVybiBlLl9lcnJvckdlbmVyYXRvcj1mdW5jdGlvbigpe3ZhciBpPXRoaXM7cmV0dXJuIGZ1bmN0aW9uKG4scyl7cmV0dXJuIHR5cGVvZiBpLnJ1bGU9PSJzdHJpbmciP25ldyBFcnJvcihuKTppLnJ1bGUuZXJyb3IobixzKX19LGUuYXR0cmlidXRlPWZ1bmN0aW9uKCl7dmFyIGk9W10sbj10aGlzLmN1cnJUb2tlbjtmb3IodGhpcy5wb3NpdGlvbisrO3RoaXMucG9zaXRpb248dGhpcy50b2tlbnMubGVuZ3RoJiZ0aGlzLmN1cnJUb2tlbltPLkZJRUxEUy5UWVBFXSE9PXEuY2xvc2VTcXVhcmU7KWkucHVzaCh0aGlzLmN1cnJUb2tlbiksdGhpcy5wb3NpdGlvbisrO2lmKHRoaXMuY3VyclRva2VuW08uRklFTERTLlRZUEVdIT09cS5jbG9zZVNxdWFyZSlyZXR1cm4gdGhpcy5leHBlY3RlZCgiY2xvc2luZyBzcXVhcmUgYnJhY2tldCIsdGhpcy5jdXJyVG9rZW5bTy5GSUVMRFMuU1RBUlRfUE9TXSk7dmFyIHM9aS5sZW5ndGgsYT17c291cmNlOkh0KG5bMV0sblsyXSx0aGlzLmN1cnJUb2tlblszXSx0aGlzLmN1cnJUb2tlbls0XSksc291cmNlSW5kZXg6bltPLkZJRUxEUy5TVEFSVF9QT1NdfTtpZihzPT09MSYmIX5bcS53b3JkXS5pbmRleE9mKGlbMF1bTy5GSUVMRFMuVFlQRV0pKXJldHVybiB0aGlzLmV4cGVjdGVkKCJhdHRyaWJ1dGUiLGlbMF1bTy5GSUVMRFMuU1RBUlRfUE9TXSk7Zm9yKHZhciBvPTAsbD0iIixjPSIiLGY9bnVsbCxkPSExO288czspe3ZhciBwPWlbb10saD10aGlzLmNvbnRlbnQocCksYj1pW28rMV07c3dpdGNoKHBbTy5GSUVMRFMuVFlQRV0pe2Nhc2UgcS5zcGFjZTppZihkPSEwLHRoaXMub3B0aW9ucy5sb3NzeSlicmVhaztpZihmKXsoMCx1ZS5lbnN1cmVPYmplY3QpKGEsInNwYWNlcyIsZik7dmFyIHY9YS5zcGFjZXNbZl0uYWZ0ZXJ8fCIiO2Euc3BhY2VzW2ZdLmFmdGVyPXYraDt2YXIgeT0oMCx1ZS5nZXRQcm9wKShhLCJyYXdzIiwic3BhY2VzIixmLCJhZnRlciIpfHxudWxsO3kmJihhLnJhd3Muc3BhY2VzW2ZdLmFmdGVyPXkraCl9ZWxzZSBsPWwraCxjPWMraDticmVhaztjYXNlIHEuYXN0ZXJpc2s6aWYoYltPLkZJRUxEUy5UWVBFXT09PXEuZXF1YWxzKWEub3BlcmF0b3I9aCxmPSJvcGVyYXRvciI7ZWxzZSBpZigoIWEubmFtZXNwYWNlfHxmPT09Im5hbWVzcGFjZSImJiFkKSYmYil7bCYmKCgwLHVlLmVuc3VyZU9iamVjdCkoYSwic3BhY2VzIiwiYXR0cmlidXRlIiksYS5zcGFjZXMuYXR0cmlidXRlLmJlZm9yZT1sLGw9IiIpLGMmJigoMCx1ZS5lbnN1cmVPYmplY3QpKGEsInJhd3MiLCJzcGFjZXMiLCJhdHRyaWJ1dGUiKSxhLnJhd3Muc3BhY2VzLmF0dHJpYnV0ZS5iZWZvcmU9bCxjPSIiKSxhLm5hbWVzcGFjZT0oYS5uYW1lc3BhY2V8fCIiKStoO3ZhciB3PSgwLHVlLmdldFByb3ApKGEsInJhd3MiLCJuYW1lc3BhY2UiKXx8bnVsbDt3JiYoYS5yYXdzLm5hbWVzcGFjZSs9aCksZj0ibmFtZXNwYWNlIn1kPSExO2JyZWFrO2Nhc2UgcS5kb2xsYXI6aWYoZj09PSJ2YWx1ZSIpe3ZhciBrPSgwLHVlLmdldFByb3ApKGEsInJhd3MiLCJ2YWx1ZSIpO2EudmFsdWUrPSIkIixrJiYoYS5yYXdzLnZhbHVlPWsrIiQiKTticmVha31jYXNlIHEuY2FyZXQ6YltPLkZJRUxEUy5UWVBFXT09PXEuZXF1YWxzJiYoYS5vcGVyYXRvcj1oLGY9Im9wZXJhdG9yIiksZD0hMTticmVhaztjYXNlIHEuY29tYmluYXRvcjppZihoPT09In4iJiZiW08uRklFTERTLlRZUEVdPT09cS5lcXVhbHMmJihhLm9wZXJhdG9yPWgsZj0ib3BlcmF0b3IiKSxoIT09InwiKXtkPSExO2JyZWFrfWJbTy5GSUVMRFMuVFlQRV09PT1xLmVxdWFscz8oYS5vcGVyYXRvcj1oLGY9Im9wZXJhdG9yIik6IWEubmFtZXNwYWNlJiYhYS5hdHRyaWJ1dGUmJihhLm5hbWVzcGFjZT0hMCksZD0hMTticmVhaztjYXNlIHEud29yZDppZihiJiZ0aGlzLmNvbnRlbnQoYik9PT0ifCImJmlbbysyXSYmaVtvKzJdW08uRklFTERTLlRZUEVdIT09cS5lcXVhbHMmJiFhLm9wZXJhdG9yJiYhYS5uYW1lc3BhY2UpYS5uYW1lc3BhY2U9aCxmPSJuYW1lc3BhY2UiO2Vsc2UgaWYoIWEuYXR0cmlidXRlfHxmPT09ImF0dHJpYnV0ZSImJiFkKXtsJiYoKDAsdWUuZW5zdXJlT2JqZWN0KShhLCJzcGFjZXMiLCJhdHRyaWJ1dGUiKSxhLnNwYWNlcy5hdHRyaWJ1dGUuYmVmb3JlPWwsbD0iIiksYyYmKCgwLHVlLmVuc3VyZU9iamVjdCkoYSwicmF3cyIsInNwYWNlcyIsImF0dHJpYnV0ZSIpLGEucmF3cy5zcGFjZXMuYXR0cmlidXRlLmJlZm9yZT1jLGM9IiIpLGEuYXR0cmlidXRlPShhLmF0dHJpYnV0ZXx8IiIpK2g7dmFyIFM9KDAsdWUuZ2V0UHJvcCkoYSwicmF3cyIsImF0dHJpYnV0ZSIpfHxudWxsO1MmJihhLnJhd3MuYXR0cmlidXRlKz1oKSxmPSJhdHRyaWJ1dGUifWVsc2UgaWYoIWEudmFsdWUmJmEudmFsdWUhPT0iInx8Zj09PSJ2YWx1ZSImJiEoZHx8YS5xdW90ZU1hcmspKXt2YXIgRT0oMCx1ZS51bmVzYykoaCksVD0oMCx1ZS5nZXRQcm9wKShhLCJyYXdzIiwidmFsdWUiKXx8IiIsQj1hLnZhbHVlfHwiIjthLnZhbHVlPUIrRSxhLnF1b3RlTWFyaz1udWxsLChFIT09aHx8VCkmJigoMCx1ZS5lbnN1cmVPYmplY3QpKGEsInJhd3MiKSxhLnJhd3MudmFsdWU9KFR8fEIpK2gpLGY9InZhbHVlIn1lbHNle3ZhciBOPWg9PT0iaSJ8fGg9PT0iSSI7KGEudmFsdWV8fGEudmFsdWU9PT0iIikmJihhLnF1b3RlTWFya3x8ZCk/KGEuaW5zZW5zaXRpdmU9TiwoIU58fGg9PT0iSSIpJiYoKDAsdWUuZW5zdXJlT2JqZWN0KShhLCJyYXdzIiksYS5yYXdzLmluc2Vuc2l0aXZlRmxhZz1oKSxmPSJpbnNlbnNpdGl2ZSIsbCYmKCgwLHVlLmVuc3VyZU9iamVjdCkoYSwic3BhY2VzIiwiaW5zZW5zaXRpdmUiKSxhLnNwYWNlcy5pbnNlbnNpdGl2ZS5iZWZvcmU9bCxsPSIiKSxjJiYoKDAsdWUuZW5zdXJlT2JqZWN0KShhLCJyYXdzIiwic3BhY2VzIiwiaW5zZW5zaXRpdmUiKSxhLnJhd3Muc3BhY2VzLmluc2Vuc2l0aXZlLmJlZm9yZT1jLGM9IiIpKTooYS52YWx1ZXx8YS52YWx1ZT09PSIiKSYmKGY9InZhbHVlIixhLnZhbHVlKz1oLGEucmF3cy52YWx1ZSYmKGEucmF3cy52YWx1ZSs9aCkpfWQ9ITE7YnJlYWs7Y2FzZSBxLnN0cjppZighYS5hdHRyaWJ1dGV8fCFhLm9wZXJhdG9yKXJldHVybiB0aGlzLmVycm9yKCJFeHBlY3RlZCBhbiBhdHRyaWJ1dGUgZm9sbG93ZWQgYnkgYW4gb3BlcmF0b3IgcHJlY2VkaW5nIHRoZSBzdHJpbmcuIix7aW5kZXg6cFtPLkZJRUxEUy5TVEFSVF9QT1NdfSk7dmFyIFI9KDAsZ2QudW5lc2NhcGVWYWx1ZSkoaCksRj1SLnVuZXNjYXBlZCxZPVIucXVvdGVNYXJrO2EudmFsdWU9RixhLnF1b3RlTWFyaz1ZLGY9InZhbHVlIiwoMCx1ZS5lbnN1cmVPYmplY3QpKGEsInJhd3MiKSxhLnJhd3MudmFsdWU9aCxkPSExO2JyZWFrO2Nhc2UgcS5lcXVhbHM6aWYoIWEuYXR0cmlidXRlKXJldHVybiB0aGlzLmV4cGVjdGVkKCJhdHRyaWJ1dGUiLHBbTy5GSUVMRFMuU1RBUlRfUE9TXSxoKTtpZihhLnZhbHVlKXJldHVybiB0aGlzLmVycm9yKCdVbmV4cGVjdGVkICI9IiBmb3VuZDsgYW4gb3BlcmF0b3Igd2FzIGFscmVhZHkgZGVmaW5lZC4nLHtpbmRleDpwW08uRklFTERTLlNUQVJUX1BPU119KTthLm9wZXJhdG9yPWEub3BlcmF0b3I/YS5vcGVyYXRvcitoOmgsZj0ib3BlcmF0b3IiLGQ9ITE7YnJlYWs7Y2FzZSBxLmNvbW1lbnQ6aWYoZilpZihkfHxiJiZiW08uRklFTERTLlRZUEVdPT09cS5zcGFjZXx8Zj09PSJpbnNlbnNpdGl2ZSIpe3ZhciBfPSgwLHVlLmdldFByb3ApKGEsInNwYWNlcyIsZiwiYWZ0ZXIiKXx8IiIsUT0oMCx1ZS5nZXRQcm9wKShhLCJyYXdzIiwic3BhY2VzIixmLCJhZnRlciIpfHxfOygwLHVlLmVuc3VyZU9iamVjdCkoYSwicmF3cyIsInNwYWNlcyIsZiksYS5yYXdzLnNwYWNlc1tmXS5hZnRlcj1RK2h9ZWxzZXt2YXIgVT1hW2ZdfHwiIixsZT0oMCx1ZS5nZXRQcm9wKShhLCJyYXdzIixmKXx8VTsoMCx1ZS5lbnN1cmVPYmplY3QpKGEsInJhd3MiKSxhLnJhd3NbZl09bGUraH1lbHNlIGM9YytoO2JyZWFrO2RlZmF1bHQ6cmV0dXJuIHRoaXMuZXJyb3IoJ1VuZXhwZWN0ZWQgIicraCsnIiBmb3VuZC4nLHtpbmRleDpwW08uRklFTERTLlNUQVJUX1BPU119KX1vKyt9YXIoYSwiYXR0cmlidXRlIiksYXIoYSwibmFtZXNwYWNlIiksdGhpcy5uZXdOb2RlKG5ldyBnZC5kZWZhdWx0KGEpKSx0aGlzLnBvc2l0aW9uKyt9LGUucGFyc2VXaGl0ZXNwYWNlRXF1aXZhbGVudFRva2Vucz1mdW5jdGlvbihpKXtpPDAmJihpPXRoaXMudG9rZW5zLmxlbmd0aCk7dmFyIG49dGhpcy5wb3NpdGlvbixzPVtdLGE9IiIsbz12b2lkIDA7ZG8gaWYobW9bdGhpcy5jdXJyVG9rZW5bTy5GSUVMRFMuVFlQRV1dKXRoaXMub3B0aW9ucy5sb3NzeXx8KGErPXRoaXMuY29udGVudCgpKTtlbHNlIGlmKHRoaXMuY3VyclRva2VuW08uRklFTERTLlRZUEVdPT09cS5jb21tZW50KXt2YXIgbD17fTthJiYobC5iZWZvcmU9YSxhPSIiKSxvPW5ldyBtZC5kZWZhdWx0KHt2YWx1ZTp0aGlzLmNvbnRlbnQoKSxzb3VyY2U6c3IodGhpcy5jdXJyVG9rZW4pLHNvdXJjZUluZGV4OnRoaXMuY3VyclRva2VuW08uRklFTERTLlNUQVJUX1BPU10sc3BhY2VzOmx9KSxzLnB1c2gobyl9d2hpbGUoKyt0aGlzLnBvc2l0aW9uPGkpO2lmKGEpe2lmKG8pby5zcGFjZXMuYWZ0ZXI9YTtlbHNlIGlmKCF0aGlzLm9wdGlvbnMubG9zc3kpe3ZhciBjPXRoaXMudG9rZW5zW25dLGY9dGhpcy50b2tlbnNbdGhpcy5wb3NpdGlvbi0xXTtzLnB1c2gobmV3IGNvLmRlZmF1bHQoe3ZhbHVlOiIiLHNvdXJjZTpIdChjW08uRklFTERTLlNUQVJUX0xJTkVdLGNbTy5GSUVMRFMuU1RBUlRfQ09MXSxmW08uRklFTERTLkVORF9MSU5FXSxmW08uRklFTERTLkVORF9DT0xdKSxzb3VyY2VJbmRleDpjW08uRklFTERTLlNUQVJUX1BPU10sc3BhY2VzOntiZWZvcmU6YSxhZnRlcjoiIn19KSl9fXJldHVybiBzfSxlLmNvbnZlcnRXaGl0ZXNwYWNlTm9kZXNUb1NwYWNlPWZ1bmN0aW9uKGksbil7dmFyIHM9dGhpcztuPT09dm9pZCAwJiYobj0hMSk7dmFyIGE9IiIsbz0iIjtpLmZvckVhY2goZnVuY3Rpb24oYyl7dmFyIGY9cy5sb3NzeVNwYWNlKGMuc3BhY2VzLmJlZm9yZSxuKSxkPXMubG9zc3lTcGFjZShjLnJhd1NwYWNlQmVmb3JlLG4pO2ErPWYrcy5sb3NzeVNwYWNlKGMuc3BhY2VzLmFmdGVyLG4mJmYubGVuZ3RoPT09MCksbys9ZitjLnZhbHVlK3MubG9zc3lTcGFjZShjLnJhd1NwYWNlQWZ0ZXIsbiYmZC5sZW5ndGg9PT0wKX0pLG89PT1hJiYobz12b2lkIDApO3ZhciBsPXtzcGFjZTphLHJhd1NwYWNlOm99O3JldHVybiBsfSxlLmlzTmFtZWRDb21iaW5hdG9yPWZ1bmN0aW9uKGkpe3JldHVybiBpPT09dm9pZCAwJiYoaT10aGlzLnBvc2l0aW9uKSx0aGlzLnRva2Vuc1tpKzBdJiZ0aGlzLnRva2Vuc1tpKzBdW08uRklFTERTLlRZUEVdPT09cS5zbGFzaCYmdGhpcy50b2tlbnNbaSsxXSYmdGhpcy50b2tlbnNbaSsxXVtPLkZJRUxEUy5UWVBFXT09PXEud29yZCYmdGhpcy50b2tlbnNbaSsyXSYmdGhpcy50b2tlbnNbaSsyXVtPLkZJRUxEUy5UWVBFXT09PXEuc2xhc2h9LGUubmFtZWRDb21iaW5hdG9yPWZ1bmN0aW9uKCl7aWYodGhpcy5pc05hbWVkQ29tYmluYXRvcigpKXt2YXIgaT10aGlzLmNvbnRlbnQodGhpcy50b2tlbnNbdGhpcy5wb3NpdGlvbisxXSksbj0oMCx1ZS51bmVzYykoaSkudG9Mb3dlckNhc2UoKSxzPXt9O24hPT1pJiYocy52YWx1ZT0iLyIraSsiLyIpO3ZhciBhPW5ldyBwby5kZWZhdWx0KHt2YWx1ZToiLyIrbisiLyIsc291cmNlOkh0KHRoaXMuY3VyclRva2VuW08uRklFTERTLlNUQVJUX0xJTkVdLHRoaXMuY3VyclRva2VuW08uRklFTERTLlNUQVJUX0NPTF0sdGhpcy50b2tlbnNbdGhpcy5wb3NpdGlvbisyXVtPLkZJRUxEUy5FTkRfTElORV0sdGhpcy50b2tlbnNbdGhpcy5wb3NpdGlvbisyXVtPLkZJRUxEUy5FTkRfQ09MXSksc291cmNlSW5kZXg6dGhpcy5jdXJyVG9rZW5bTy5GSUVMRFMuU1RBUlRfUE9TXSxyYXdzOnN9KTtyZXR1cm4gdGhpcy5wb3NpdGlvbj10aGlzLnBvc2l0aW9uKzMsYX1lbHNlIHRoaXMudW5leHBlY3RlZCgpfSxlLmNvbWJpbmF0b3I9ZnVuY3Rpb24oKXt2YXIgaT10aGlzO2lmKHRoaXMuY29udGVudCgpPT09InwiKXJldHVybiB0aGlzLm5hbWVzcGFjZSgpO3ZhciBuPXRoaXMubG9jYXRlTmV4dE1lYW5pbmdmdWxUb2tlbih0aGlzLnBvc2l0aW9uKTtpZihuPDB8fHRoaXMudG9rZW5zW25dW08uRklFTERTLlRZUEVdPT09cS5jb21tYXx8dGhpcy50b2tlbnNbbl1bTy5GSUVMRFMuVFlQRV09PT1xLmNsb3NlUGFyZW50aGVzaXMpe3ZhciBzPXRoaXMucGFyc2VXaGl0ZXNwYWNlRXF1aXZhbGVudFRva2VucyhuKTtpZihzLmxlbmd0aD4wKXt2YXIgYT10aGlzLmN1cnJlbnQubGFzdDtpZihhKXt2YXIgbz10aGlzLmNvbnZlcnRXaGl0ZXNwYWNlTm9kZXNUb1NwYWNlKHMpLGw9by5zcGFjZSxjPW8ucmF3U3BhY2U7YyE9PXZvaWQgMCYmKGEucmF3U3BhY2VBZnRlcis9YyksYS5zcGFjZXMuYWZ0ZXIrPWx9ZWxzZSBzLmZvckVhY2goZnVuY3Rpb24oVCl7cmV0dXJuIGkubmV3Tm9kZShUKX0pfXJldHVybn12YXIgZj10aGlzLmN1cnJUb2tlbixkPXZvaWQgMDtuPnRoaXMucG9zaXRpb24mJihkPXRoaXMucGFyc2VXaGl0ZXNwYWNlRXF1aXZhbGVudFRva2VucyhuKSk7dmFyIHA7aWYodGhpcy5pc05hbWVkQ29tYmluYXRvcigpP3A9dGhpcy5uYW1lZENvbWJpbmF0b3IoKTp0aGlzLmN1cnJUb2tlbltPLkZJRUxEUy5UWVBFXT09PXEuY29tYmluYXRvcj8ocD1uZXcgcG8uZGVmYXVsdCh7dmFsdWU6dGhpcy5jb250ZW50KCksc291cmNlOnNyKHRoaXMuY3VyclRva2VuKSxzb3VyY2VJbmRleDp0aGlzLmN1cnJUb2tlbltPLkZJRUxEUy5TVEFSVF9QT1NdfSksdGhpcy5wb3NpdGlvbisrKTptb1t0aGlzLmN1cnJUb2tlbltPLkZJRUxEUy5UWVBFXV18fGR8fHRoaXMudW5leHBlY3RlZCgpLHApe2lmKGQpe3ZhciBoPXRoaXMuY29udmVydFdoaXRlc3BhY2VOb2Rlc1RvU3BhY2UoZCksYj1oLnNwYWNlLHY9aC5yYXdTcGFjZTtwLnNwYWNlcy5iZWZvcmU9YixwLnJhd1NwYWNlQmVmb3JlPXZ9fWVsc2V7dmFyIHk9dGhpcy5jb252ZXJ0V2hpdGVzcGFjZU5vZGVzVG9TcGFjZShkLCEwKSx3PXkuc3BhY2Usaz15LnJhd1NwYWNlO2t8fChrPXcpO3ZhciBTPXt9LEU9e3NwYWNlczp7fX07dy5lbmRzV2l0aCgiICIpJiZrLmVuZHNXaXRoKCIgIik/KFMuYmVmb3JlPXcuc2xpY2UoMCx3Lmxlbmd0aC0xKSxFLnNwYWNlcy5iZWZvcmU9ay5zbGljZSgwLGsubGVuZ3RoLTEpKTp3LnN0YXJ0c1dpdGgoIiAiKSYmay5zdGFydHNXaXRoKCIgIik/KFMuYWZ0ZXI9dy5zbGljZSgxKSxFLnNwYWNlcy5hZnRlcj1rLnNsaWNlKDEpKTpFLnZhbHVlPWsscD1uZXcgcG8uZGVmYXVsdCh7dmFsdWU6IiAiLHNvdXJjZTpnbyhmLHRoaXMudG9rZW5zW3RoaXMucG9zaXRpb24tMV0pLHNvdXJjZUluZGV4OmZbTy5GSUVMRFMuU1RBUlRfUE9TXSxzcGFjZXM6UyxyYXdzOkV9KX1yZXR1cm4gdGhpcy5jdXJyVG9rZW4mJnRoaXMuY3VyclRva2VuW08uRklFTERTLlRZUEVdPT09cS5zcGFjZSYmKHAuc3BhY2VzLmFmdGVyPXRoaXMub3B0aW9uYWxTcGFjZSh0aGlzLmNvbnRlbnQoKSksdGhpcy5wb3NpdGlvbisrKSx0aGlzLm5ld05vZGUocCl9LGUuY29tbWE9ZnVuY3Rpb24oKXtpZih0aGlzLnBvc2l0aW9uPT09dGhpcy50b2tlbnMubGVuZ3RoLTEpe3RoaXMucm9vdC50cmFpbGluZ0NvbW1hPSEwLHRoaXMucG9zaXRpb24rKztyZXR1cm59dGhpcy5jdXJyZW50Ll9pbmZlckVuZFBvc2l0aW9uKCk7dmFyIGk9bmV3IGZvLmRlZmF1bHQoe3NvdXJjZTp7c3RhcnQ6d2QodGhpcy50b2tlbnNbdGhpcy5wb3NpdGlvbisxXSl9LHNvdXJjZUluZGV4OnRoaXMudG9rZW5zW3RoaXMucG9zaXRpb24rMV1bTy5GSUVMRFMuU1RBUlRfUE9TXX0pO3RoaXMuY3VycmVudC5wYXJlbnQuYXBwZW5kKGkpLHRoaXMuY3VycmVudD1pLHRoaXMucG9zaXRpb24rK30sZS5jb21tZW50PWZ1bmN0aW9uKCl7dmFyIGk9dGhpcy5jdXJyVG9rZW47dGhpcy5uZXdOb2RlKG5ldyBtZC5kZWZhdWx0KHt2YWx1ZTp0aGlzLmNvbnRlbnQoKSxzb3VyY2U6c3IoaSksc291cmNlSW5kZXg6aVtPLkZJRUxEUy5TVEFSVF9QT1NdfSkpLHRoaXMucG9zaXRpb24rK30sZS5lcnJvcj1mdW5jdGlvbihpLG4pe3Rocm93IHRoaXMucm9vdC5lcnJvcihpLG4pfSxlLm1pc3NpbmdCYWNrc2xhc2g9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lcnJvcigiRXhwZWN0ZWQgYSBiYWNrc2xhc2ggcHJlY2VkaW5nIHRoZSBzZW1pY29sb24uIix7aW5kZXg6dGhpcy5jdXJyVG9rZW5bTy5GSUVMRFMuU1RBUlRfUE9TXX0pfSxlLm1pc3NpbmdQYXJlbnRoZXNpcz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmV4cGVjdGVkKCJvcGVuaW5nIHBhcmVudGhlc2lzIix0aGlzLmN1cnJUb2tlbltPLkZJRUxEUy5TVEFSVF9QT1NdKX0sZS5taXNzaW5nU3F1YXJlQnJhY2tldD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmV4cGVjdGVkKCJvcGVuaW5nIHNxdWFyZSBicmFja2V0Iix0aGlzLmN1cnJUb2tlbltPLkZJRUxEUy5TVEFSVF9QT1NdKX0sZS51bmV4cGVjdGVkPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZXJyb3IoIlVuZXhwZWN0ZWQgJyIrdGhpcy5jb250ZW50KCkrIicuIEVzY2FwaW5nIHNwZWNpYWwgY2hhcmFjdGVycyB3aXRoIFxcIG1heSBoZWxwLiIsdGhpcy5jdXJyVG9rZW5bTy5GSUVMRFMuU1RBUlRfUE9TXSl9LGUudW5leHBlY3RlZFBpcGU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lcnJvcigiVW5leHBlY3RlZCAnfCcuIix0aGlzLmN1cnJUb2tlbltPLkZJRUxEUy5TVEFSVF9QT1NdKX0sZS5uYW1lc3BhY2U9ZnVuY3Rpb24oKXt2YXIgaT10aGlzLnByZXZUb2tlbiYmdGhpcy5jb250ZW50KHRoaXMucHJldlRva2VuKXx8ITA7aWYodGhpcy5uZXh0VG9rZW5bTy5GSUVMRFMuVFlQRV09PT1xLndvcmQpcmV0dXJuIHRoaXMucG9zaXRpb24rKyx0aGlzLndvcmQoaSk7aWYodGhpcy5uZXh0VG9rZW5bTy5GSUVMRFMuVFlQRV09PT1xLmFzdGVyaXNrKXJldHVybiB0aGlzLnBvc2l0aW9uKyssdGhpcy51bml2ZXJzYWwoaSk7dGhpcy51bmV4cGVjdGVkUGlwZSgpfSxlLm5lc3Rpbmc9ZnVuY3Rpb24oKXtpZih0aGlzLm5leHRUb2tlbil7dmFyIGk9dGhpcy5jb250ZW50KHRoaXMubmV4dFRva2VuKTtpZihpPT09InwiKXt0aGlzLnBvc2l0aW9uKys7cmV0dXJufX12YXIgbj10aGlzLmN1cnJUb2tlbjt0aGlzLm5ld05vZGUobmV3IE5BLmRlZmF1bHQoe3ZhbHVlOnRoaXMuY29udGVudCgpLHNvdXJjZTpzcihuKSxzb3VyY2VJbmRleDpuW08uRklFTERTLlNUQVJUX1BPU119KSksdGhpcy5wb3NpdGlvbisrfSxlLnBhcmVudGhlc2VzPWZ1bmN0aW9uKCl7dmFyIGk9dGhpcy5jdXJyZW50Lmxhc3Qsbj0xO2lmKHRoaXMucG9zaXRpb24rKyxpJiZpLnR5cGU9PT1GQS5QU0VVRE8pe3ZhciBzPW5ldyBmby5kZWZhdWx0KHtzb3VyY2U6e3N0YXJ0OndkKHRoaXMudG9rZW5zW3RoaXMucG9zaXRpb25dKX0sc291cmNlSW5kZXg6dGhpcy50b2tlbnNbdGhpcy5wb3NpdGlvbl1bTy5GSUVMRFMuU1RBUlRfUE9TXX0pLGE9dGhpcy5jdXJyZW50O2ZvcihpLmFwcGVuZChzKSx0aGlzLmN1cnJlbnQ9czt0aGlzLnBvc2l0aW9uPHRoaXMudG9rZW5zLmxlbmd0aCYmbjspdGhpcy5jdXJyVG9rZW5bTy5GSUVMRFMuVFlQRV09PT1xLm9wZW5QYXJlbnRoZXNpcyYmbisrLHRoaXMuY3VyclRva2VuW08uRklFTERTLlRZUEVdPT09cS5jbG9zZVBhcmVudGhlc2lzJiZuLS0sbj90aGlzLnBhcnNlKCk6KHRoaXMuY3VycmVudC5zb3VyY2UuZW5kPXZkKHRoaXMuY3VyclRva2VuKSx0aGlzLmN1cnJlbnQucGFyZW50LnNvdXJjZS5lbmQ9dmQodGhpcy5jdXJyVG9rZW4pLHRoaXMucG9zaXRpb24rKyk7dGhpcy5jdXJyZW50PWF9ZWxzZXtmb3IodmFyIG89dGhpcy5jdXJyVG9rZW4sbD0iKCIsYzt0aGlzLnBvc2l0aW9uPHRoaXMudG9rZW5zLmxlbmd0aCYmbjspdGhpcy5jdXJyVG9rZW5bTy5GSUVMRFMuVFlQRV09PT1xLm9wZW5QYXJlbnRoZXNpcyYmbisrLHRoaXMuY3VyclRva2VuW08uRklFTERTLlRZUEVdPT09cS5jbG9zZVBhcmVudGhlc2lzJiZuLS0sYz10aGlzLmN1cnJUb2tlbixsKz10aGlzLnBhcnNlUGFyZW50aGVzaXNUb2tlbih0aGlzLmN1cnJUb2tlbiksdGhpcy5wb3NpdGlvbisrO2k/aS5hcHBlbmRUb1Byb3BlcnR5QW5kRXNjYXBlKCJ2YWx1ZSIsbCxsKTp0aGlzLm5ld05vZGUobmV3IGNvLmRlZmF1bHQoe3ZhbHVlOmwsc291cmNlOkh0KG9bTy5GSUVMRFMuU1RBUlRfTElORV0sb1tPLkZJRUxEUy5TVEFSVF9DT0xdLGNbTy5GSUVMRFMuRU5EX0xJTkVdLGNbTy5GSUVMRFMuRU5EX0NPTF0pLHNvdXJjZUluZGV4Om9bTy5GSUVMRFMuU1RBUlRfUE9TXX0pKX1pZihuKXJldHVybiB0aGlzLmV4cGVjdGVkKCJjbG9zaW5nIHBhcmVudGhlc2lzIix0aGlzLmN1cnJUb2tlbltPLkZJRUxEUy5TVEFSVF9QT1NdKX0sZS5wc2V1ZG89ZnVuY3Rpb24oKXtmb3IodmFyIGk9dGhpcyxuPSIiLHM9dGhpcy5jdXJyVG9rZW47dGhpcy5jdXJyVG9rZW4mJnRoaXMuY3VyclRva2VuW08uRklFTERTLlRZUEVdPT09cS5jb2xvbjspbis9dGhpcy5jb250ZW50KCksdGhpcy5wb3NpdGlvbisrO2lmKCF0aGlzLmN1cnJUb2tlbilyZXR1cm4gdGhpcy5leHBlY3RlZChbInBzZXVkby1jbGFzcyIsInBzZXVkby1lbGVtZW50Il0sdGhpcy5wb3NpdGlvbi0xKTtpZih0aGlzLmN1cnJUb2tlbltPLkZJRUxEUy5UWVBFXT09PXEud29yZCl0aGlzLnNwbGl0V29yZCghMSxmdW5jdGlvbihhLG8pe24rPWEsaS5uZXdOb2RlKG5ldyBMQS5kZWZhdWx0KHt2YWx1ZTpuLHNvdXJjZTpnbyhzLGkuY3VyclRva2VuKSxzb3VyY2VJbmRleDpzW08uRklFTERTLlNUQVJUX1BPU119KSksbz4xJiZpLm5leHRUb2tlbiYmaS5uZXh0VG9rZW5bTy5GSUVMRFMuVFlQRV09PT1xLm9wZW5QYXJlbnRoZXNpcyYmaS5lcnJvcigiTWlzcGxhY2VkIHBhcmVudGhlc2lzLiIse2luZGV4OmkubmV4dFRva2VuW08uRklFTERTLlNUQVJUX1BPU119KX0pO2Vsc2UgcmV0dXJuIHRoaXMuZXhwZWN0ZWQoWyJwc2V1ZG8tY2xhc3MiLCJwc2V1ZG8tZWxlbWVudCJdLHRoaXMuY3VyclRva2VuW08uRklFTERTLlNUQVJUX1BPU10pfSxlLnNwYWNlPWZ1bmN0aW9uKCl7dmFyIGk9dGhpcy5jb250ZW50KCk7dGhpcy5wb3NpdGlvbj09PTB8fHRoaXMucHJldlRva2VuW08uRklFTERTLlRZUEVdPT09cS5jb21tYXx8dGhpcy5wcmV2VG9rZW5bTy5GSUVMRFMuVFlQRV09PT1xLm9wZW5QYXJlbnRoZXNpc3x8dGhpcy5jdXJyZW50Lm5vZGVzLmV2ZXJ5KGZ1bmN0aW9uKG4pe3JldHVybiBuLnR5cGU9PT0iY29tbWVudCJ9KT8odGhpcy5zcGFjZXM9dGhpcy5vcHRpb25hbFNwYWNlKGkpLHRoaXMucG9zaXRpb24rKyk6dGhpcy5wb3NpdGlvbj09PXRoaXMudG9rZW5zLmxlbmd0aC0xfHx0aGlzLm5leHRUb2tlbltPLkZJRUxEUy5UWVBFXT09PXEuY29tbWF8fHRoaXMubmV4dFRva2VuW08uRklFTERTLlRZUEVdPT09cS5jbG9zZVBhcmVudGhlc2lzPyh0aGlzLmN1cnJlbnQubGFzdC5zcGFjZXMuYWZ0ZXI9dGhpcy5vcHRpb25hbFNwYWNlKGkpLHRoaXMucG9zaXRpb24rKyk6dGhpcy5jb21iaW5hdG9yKCl9LGUuc3RyaW5nPWZ1bmN0aW9uKCl7dmFyIGk9dGhpcy5jdXJyVG9rZW47dGhpcy5uZXdOb2RlKG5ldyBjby5kZWZhdWx0KHt2YWx1ZTp0aGlzLmNvbnRlbnQoKSxzb3VyY2U6c3IoaSksc291cmNlSW5kZXg6aVtPLkZJRUxEUy5TVEFSVF9QT1NdfSkpLHRoaXMucG9zaXRpb24rK30sZS51bml2ZXJzYWw9ZnVuY3Rpb24oaSl7dmFyIG49dGhpcy5uZXh0VG9rZW47aWYobiYmdGhpcy5jb250ZW50KG4pPT09InwiKXJldHVybiB0aGlzLnBvc2l0aW9uKyssdGhpcy5uYW1lc3BhY2UoKTt2YXIgcz10aGlzLmN1cnJUb2tlbjt0aGlzLm5ld05vZGUobmV3IE1BLmRlZmF1bHQoe3ZhbHVlOnRoaXMuY29udGVudCgpLHNvdXJjZTpzcihzKSxzb3VyY2VJbmRleDpzW08uRklFTERTLlNUQVJUX1BPU119KSxpKSx0aGlzLnBvc2l0aW9uKyt9LGUuc3BsaXRXb3JkPWZ1bmN0aW9uKGksbil7Zm9yKHZhciBzPXRoaXMsYT10aGlzLm5leHRUb2tlbixvPXRoaXMuY29udGVudCgpO2EmJn5bcS5kb2xsYXIscS5jYXJldCxxLmVxdWFscyxxLndvcmRdLmluZGV4T2YoYVtPLkZJRUxEUy5UWVBFXSk7KXt0aGlzLnBvc2l0aW9uKys7dmFyIGw9dGhpcy5jb250ZW50KCk7aWYobys9bCxsLmxhc3RJbmRleE9mKCJcXCIpPT09bC5sZW5ndGgtMSl7dmFyIGM9dGhpcy5uZXh0VG9rZW47YyYmY1tPLkZJRUxEUy5UWVBFXT09PXEuc3BhY2UmJihvKz10aGlzLnJlcXVpcmVkU3BhY2UodGhpcy5jb250ZW50KGMpKSx0aGlzLnBvc2l0aW9uKyspfWE9dGhpcy5uZXh0VG9rZW59dmFyIGY9eW8obywiLiIpLmZpbHRlcihmdW5jdGlvbihiKXt2YXIgdj1vW2ItMV09PT0iXFwiLHk9L15cZCtcLlxkKyUkLy50ZXN0KG8pO3JldHVybiF2JiYheX0pLGQ9eW8obywiIyIpLmZpbHRlcihmdW5jdGlvbihiKXtyZXR1cm4gb1tiLTFdIT09IlxcIn0pLHA9eW8obywiI3siKTtwLmxlbmd0aCYmKGQ9ZC5maWx0ZXIoZnVuY3Rpb24oYil7cmV0dXJuIX5wLmluZGV4T2YoYil9KSk7dmFyIGg9KDAsQkEuZGVmYXVsdCkoVUEoWzBdLmNvbmNhdChmLGQpKSk7aC5mb3JFYWNoKGZ1bmN0aW9uKGIsdil7dmFyIHk9aFt2KzFdfHxvLmxlbmd0aCx3PW8uc2xpY2UoYix5KTtpZih2PT09MCYmbilyZXR1cm4gbi5jYWxsKHMsdyxoLmxlbmd0aCk7dmFyIGssUz1zLmN1cnJUb2tlbixFPVNbTy5GSUVMRFMuU1RBUlRfUE9TXStoW3ZdLFQ9SHQoU1sxXSxTWzJdK2IsU1szXSxTWzJdKyh5LTEpKTtpZih+Zi5pbmRleE9mKGIpKXt2YXIgQj17dmFsdWU6dy5zbGljZSgxKSxzb3VyY2U6VCxzb3VyY2VJbmRleDpFfTtrPW5ldyBEQS5kZWZhdWx0KGFyKEIsInZhbHVlIikpfWVsc2UgaWYofmQuaW5kZXhPZihiKSl7dmFyIE49e3ZhbHVlOncuc2xpY2UoMSksc291cmNlOlQsc291cmNlSW5kZXg6RX07az1uZXcgcUEuZGVmYXVsdChhcihOLCJ2YWx1ZSIpKX1lbHNle3ZhciBSPXt2YWx1ZTp3LHNvdXJjZTpULHNvdXJjZUluZGV4OkV9O2FyKFIsInZhbHVlIiksaz1uZXcgJEEuZGVmYXVsdChSKX1zLm5ld05vZGUoayxpKSxpPW51bGx9KSx0aGlzLnBvc2l0aW9uKyt9LGUud29yZD1mdW5jdGlvbihpKXt2YXIgbj10aGlzLm5leHRUb2tlbjtyZXR1cm4gbiYmdGhpcy5jb250ZW50KG4pPT09InwiPyh0aGlzLnBvc2l0aW9uKyssdGhpcy5uYW1lc3BhY2UoKSk6dGhpcy5zcGxpdFdvcmQoaSl9LGUubG9vcD1mdW5jdGlvbigpe2Zvcig7dGhpcy5wb3NpdGlvbjx0aGlzLnRva2Vucy5sZW5ndGg7KXRoaXMucGFyc2UoITApO3JldHVybiB0aGlzLmN1cnJlbnQuX2luZmVyRW5kUG9zaXRpb24oKSx0aGlzLnJvb3R9LGUucGFyc2U9ZnVuY3Rpb24oaSl7c3dpdGNoKHRoaXMuY3VyclRva2VuW08uRklFTERTLlRZUEVdKXtjYXNlIHEuc3BhY2U6dGhpcy5zcGFjZSgpO2JyZWFrO2Nhc2UgcS5jb21tZW50OnRoaXMuY29tbWVudCgpO2JyZWFrO2Nhc2UgcS5vcGVuUGFyZW50aGVzaXM6dGhpcy5wYXJlbnRoZXNlcygpO2JyZWFrO2Nhc2UgcS5jbG9zZVBhcmVudGhlc2lzOmkmJnRoaXMubWlzc2luZ1BhcmVudGhlc2lzKCk7YnJlYWs7Y2FzZSBxLm9wZW5TcXVhcmU6dGhpcy5hdHRyaWJ1dGUoKTticmVhaztjYXNlIHEuZG9sbGFyOmNhc2UgcS5jYXJldDpjYXNlIHEuZXF1YWxzOmNhc2UgcS53b3JkOnRoaXMud29yZCgpO2JyZWFrO2Nhc2UgcS5jb2xvbjp0aGlzLnBzZXVkbygpO2JyZWFrO2Nhc2UgcS5jb21tYTp0aGlzLmNvbW1hKCk7YnJlYWs7Y2FzZSBxLmFzdGVyaXNrOnRoaXMudW5pdmVyc2FsKCk7YnJlYWs7Y2FzZSBxLmFtcGVyc2FuZDp0aGlzLm5lc3RpbmcoKTticmVhaztjYXNlIHEuc2xhc2g6Y2FzZSBxLmNvbWJpbmF0b3I6dGhpcy5jb21iaW5hdG9yKCk7YnJlYWs7Y2FzZSBxLnN0cjp0aGlzLnN0cmluZygpO2JyZWFrO2Nhc2UgcS5jbG9zZVNxdWFyZTp0aGlzLm1pc3NpbmdTcXVhcmVCcmFja2V0KCk7Y2FzZSBxLnNlbWljb2xvbjp0aGlzLm1pc3NpbmdCYWNrc2xhc2goKTtkZWZhdWx0OnRoaXMudW5leHBlY3RlZCgpfX0sZS5leHBlY3RlZD1mdW5jdGlvbihpLG4scyl7aWYoQXJyYXkuaXNBcnJheShpKSl7dmFyIGE9aS5wb3AoKTtpPWkuam9pbigiLCAiKSsiIG9yICIrYX12YXIgbz0vXlthZWlvdV0vLnRlc3QoaVswXSk/ImFuIjoiYSI7cmV0dXJuIHM/dGhpcy5lcnJvcigiRXhwZWN0ZWQgIitvKyIgIitpKycsIGZvdW5kICInK3MrJyIgaW5zdGVhZC4nLHtpbmRleDpufSk6dGhpcy5lcnJvcigiRXhwZWN0ZWQgIitvKyIgIitpKyIuIix7aW5kZXg6bn0pfSxlLnJlcXVpcmVkU3BhY2U9ZnVuY3Rpb24oaSl7cmV0dXJuIHRoaXMub3B0aW9ucy5sb3NzeT8iICI6aX0sZS5vcHRpb25hbFNwYWNlPWZ1bmN0aW9uKGkpe3JldHVybiB0aGlzLm9wdGlvbnMubG9zc3k/IiI6aX0sZS5sb3NzeVNwYWNlPWZ1bmN0aW9uKGksbil7cmV0dXJuIHRoaXMub3B0aW9ucy5sb3NzeT9uPyIgIjoiIjppfSxlLnBhcnNlUGFyZW50aGVzaXNUb2tlbj1mdW5jdGlvbihpKXt2YXIgbj10aGlzLmNvbnRlbnQoaSk7cmV0dXJuIGlbTy5GSUVMRFMuVFlQRV09PT1xLnNwYWNlP3RoaXMucmVxdWlyZWRTcGFjZShuKTpufSxlLm5ld05vZGU9ZnVuY3Rpb24oaSxuKXtyZXR1cm4gbiYmKC9eICskLy50ZXN0KG4pJiYodGhpcy5vcHRpb25zLmxvc3N5fHwodGhpcy5zcGFjZXM9KHRoaXMuc3BhY2VzfHwiIikrbiksbj0hMCksaS5uYW1lc3BhY2U9bixhcihpLCJuYW1lc3BhY2UiKSksdGhpcy5zcGFjZXMmJihpLnNwYWNlcy5iZWZvcmU9dGhpcy5zcGFjZXMsdGhpcy5zcGFjZXM9IiIpLHRoaXMuY3VycmVudC5hcHBlbmQoaSl9LGUuY29udGVudD1mdW5jdGlvbihpKXtyZXR1cm4gaT09PXZvaWQgMCYmKGk9dGhpcy5jdXJyVG9rZW4pLHRoaXMuY3NzLnNsaWNlKGlbTy5GSUVMRFMuU1RBUlRfUE9TXSxpW08uRklFTERTLkVORF9QT1NdKX0sZS5sb2NhdGVOZXh0TWVhbmluZ2Z1bFRva2VuPWZ1bmN0aW9uKGkpe2k9PT12b2lkIDAmJihpPXRoaXMucG9zaXRpb24rMSk7Zm9yKHZhciBuPWk7bjx0aGlzLnRva2Vucy5sZW5ndGg7KWlmKHpBW3RoaXMudG9rZW5zW25dW08uRklFTERTLlRZUEVdXSl7bisrO2NvbnRpbnVlfWVsc2UgcmV0dXJuIG47cmV0dXJuLTF9LGpBKHIsW3trZXk6ImN1cnJUb2tlbiIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudG9rZW5zW3RoaXMucG9zaXRpb25dfX0se2tleToibmV4dFRva2VuIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy50b2tlbnNbdGhpcy5wb3NpdGlvbisxXX19LHtrZXk6InByZXZUb2tlbiIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudG9rZW5zW3RoaXMucG9zaXRpb24tMV19fV0pLHJ9KCk7a2kuZGVmYXVsdD1WQTt4ZC5leHBvcnRzPWtpLmRlZmF1bHR9KTt2YXIgQWQ9eCgoU2ksU2QpPT57dSgpOyJ1c2Ugc3RyaWN0IjtTaS5fX2VzTW9kdWxlPSEwO1NpLmRlZmF1bHQ9dm9pZCAwO3ZhciBIQT1XQShrZCgpKTtmdW5jdGlvbiBXQShyKXtyZXR1cm4gciYmci5fX2VzTW9kdWxlP3I6e2RlZmF1bHQ6cn19dmFyIEdBPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gcih0LGkpe3RoaXMuZnVuYz10fHxmdW5jdGlvbigpe30sdGhpcy5mdW5jUmVzPW51bGwsdGhpcy5vcHRpb25zPWl9dmFyIGU9ci5wcm90b3R5cGU7cmV0dXJuIGUuX3Nob3VsZFVwZGF0ZVNlbGVjdG9yPWZ1bmN0aW9uKGksbil7bj09PXZvaWQgMCYmKG49e30pO3ZhciBzPU9iamVjdC5hc3NpZ24oe30sdGhpcy5vcHRpb25zLG4pO3JldHVybiBzLnVwZGF0ZVNlbGVjdG9yPT09ITE/ITE6dHlwZW9mIGkhPSJzdHJpbmcifSxlLl9pc0xvc3N5PWZ1bmN0aW9uKGkpe2k9PT12b2lkIDAmJihpPXt9KTt2YXIgbj1PYmplY3QuYXNzaWduKHt9LHRoaXMub3B0aW9ucyxpKTtyZXR1cm4gbi5sb3NzbGVzcz09PSExfSxlLl9yb290PWZ1bmN0aW9uKGksbil7bj09PXZvaWQgMCYmKG49e30pO3ZhciBzPW5ldyBIQS5kZWZhdWx0KGksdGhpcy5fcGFyc2VPcHRpb25zKG4pKTtyZXR1cm4gcy5yb290fSxlLl9wYXJzZU9wdGlvbnM9ZnVuY3Rpb24oaSl7cmV0dXJue2xvc3N5OnRoaXMuX2lzTG9zc3koaSl9fSxlLl9ydW49ZnVuY3Rpb24oaSxuKXt2YXIgcz10aGlzO3JldHVybiBuPT09dm9pZCAwJiYobj17fSksbmV3IFByb21pc2UoZnVuY3Rpb24oYSxvKXt0cnl7dmFyIGw9cy5fcm9vdChpLG4pO1Byb21pc2UucmVzb2x2ZShzLmZ1bmMobCkpLnRoZW4oZnVuY3Rpb24oYyl7dmFyIGY9dm9pZCAwO3JldHVybiBzLl9zaG91bGRVcGRhdGVTZWxlY3RvcihpLG4pJiYoZj1sLnRvU3RyaW5nKCksaS5zZWxlY3Rvcj1mKSx7dHJhbnNmb3JtOmMscm9vdDpsLHN0cmluZzpmfX0pLnRoZW4oYSxvKX1jYXRjaChjKXtvKGMpO3JldHVybn19KX0sZS5fcnVuU3luYz1mdW5jdGlvbihpLG4pe249PT12b2lkIDAmJihuPXt9KTt2YXIgcz10aGlzLl9yb290KGksbiksYT10aGlzLmZ1bmMocyk7aWYoYSYmdHlwZW9mIGEudGhlbj09ImZ1bmN0aW9uIil0aHJvdyBuZXcgRXJyb3IoIlNlbGVjdG9yIHByb2Nlc3NvciByZXR1cm5lZCBhIHByb21pc2UgdG8gYSBzeW5jaHJvbm91cyBjYWxsLiIpO3ZhciBvPXZvaWQgMDtyZXR1cm4gbi51cGRhdGVTZWxlY3RvciYmdHlwZW9mIGkhPSJzdHJpbmciJiYobz1zLnRvU3RyaW5nKCksaS5zZWxlY3Rvcj1vKSx7dHJhbnNmb3JtOmEscm9vdDpzLHN0cmluZzpvfX0sZS5hc3Q9ZnVuY3Rpb24oaSxuKXtyZXR1cm4gdGhpcy5fcnVuKGksbikudGhlbihmdW5jdGlvbihzKXtyZXR1cm4gcy5yb290fSl9LGUuYXN0U3luYz1mdW5jdGlvbihpLG4pe3JldHVybiB0aGlzLl9ydW5TeW5jKGksbikucm9vdH0sZS50cmFuc2Zvcm09ZnVuY3Rpb24oaSxuKXtyZXR1cm4gdGhpcy5fcnVuKGksbikudGhlbihmdW5jdGlvbihzKXtyZXR1cm4gcy50cmFuc2Zvcm19KX0sZS50cmFuc2Zvcm1TeW5jPWZ1bmN0aW9uKGksbil7cmV0dXJuIHRoaXMuX3J1blN5bmMoaSxuKS50cmFuc2Zvcm19LGUucHJvY2Vzcz1mdW5jdGlvbihpLG4pe3JldHVybiB0aGlzLl9ydW4oaSxuKS50aGVuKGZ1bmN0aW9uKHMpe3JldHVybiBzLnN0cmluZ3x8cy5yb290LnRvU3RyaW5nKCl9KX0sZS5wcm9jZXNzU3luYz1mdW5jdGlvbihpLG4pe3ZhciBzPXRoaXMuX3J1blN5bmMoaSxuKTtyZXR1cm4gcy5zdHJpbmd8fHMucm9vdC50b1N0cmluZygpfSxyfSgpO1NpLmRlZmF1bHQ9R0E7U2QuZXhwb3J0cz1TaS5kZWZhdWx0fSk7dmFyIENkPXgobmU9Pnt1KCk7InVzZSBzdHJpY3QiO25lLl9fZXNNb2R1bGU9ITA7bmUudW5pdmVyc2FsPW5lLnRhZz1uZS5zdHJpbmc9bmUuc2VsZWN0b3I9bmUucm9vdD1uZS5wc2V1ZG89bmUubmVzdGluZz1uZS5pZD1uZS5jb21tZW50PW5lLmNvbWJpbmF0b3I9bmUuY2xhc3NOYW1lPW5lLmF0dHJpYnV0ZT12b2lkIDA7dmFyIFFBPXplKHRvKCkpLFlBPXplKE5hKCkpLEtBPXplKHNvKCkpLFhBPXplKEZhKCkpLFpBPXplKHphKCkpLEpBPXplKG9vKCkpLGVDPXplKFlhKCkpLHRDPXplKERhKCkpLHJDPXplKCRhKCkpLGlDPXplKEdhKCkpLG5DPXplKEhhKCkpLHNDPXplKGlvKCkpO2Z1bmN0aW9uIHplKHIpe3JldHVybiByJiZyLl9fZXNNb2R1bGU/cjp7ZGVmYXVsdDpyfX12YXIgYUM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyBRQS5kZWZhdWx0KGUpfTtuZS5hdHRyaWJ1dGU9YUM7dmFyIG9DPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcgWUEuZGVmYXVsdChlKX07bmUuY2xhc3NOYW1lPW9DO3ZhciBsQz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3IEtBLmRlZmF1bHQoZSl9O25lLmNvbWJpbmF0b3I9bEM7dmFyIHVDPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcgWEEuZGVmYXVsdChlKX07bmUuY29tbWVudD11Qzt2YXIgZkM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyBaQS5kZWZhdWx0KGUpfTtuZS5pZD1mQzt2YXIgY0M9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyBKQS5kZWZhdWx0KGUpfTtuZS5uZXN0aW5nPWNDO3ZhciBwQz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3IGVDLmRlZmF1bHQoZSl9O25lLnBzZXVkbz1wQzt2YXIgZEM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyB0Qy5kZWZhdWx0KGUpfTtuZS5yb290PWRDO3ZhciBoQz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3IHJDLmRlZmF1bHQoZSl9O25lLnNlbGVjdG9yPWhDO3ZhciBtQz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3IGlDLmRlZmF1bHQoZSl9O25lLnN0cmluZz1tQzt2YXIgZ0M9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyBuQy5kZWZhdWx0KGUpfTtuZS50YWc9Z0M7dmFyIHlDPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcgc0MuZGVmYXVsdChlKX07bmUudW5pdmVyc2FsPXlDfSk7dmFyIFRkPXgoWj0+e3UoKTsidXNlIHN0cmljdCI7Wi5fX2VzTW9kdWxlPSEwO1ouaXNDb21tZW50PVouaXNDb21iaW5hdG9yPVouaXNDbGFzc05hbWU9Wi5pc0F0dHJpYnV0ZT12b2lkIDA7Wi5pc0NvbnRhaW5lcj1UQztaLmlzSWRlbnRpZmllcj12b2lkIDA7Wi5pc05hbWVzcGFjZT1SQztaLmlzTmVzdGluZz12b2lkIDA7Wi5pc05vZGU9Ym87Wi5pc1BzZXVkbz12b2lkIDA7Wi5pc1BzZXVkb0NsYXNzPU9DO1ouaXNQc2V1ZG9FbGVtZW50PU9kO1ouaXNVbml2ZXJzYWw9Wi5pc1RhZz1aLmlzU3RyaW5nPVouaXNTZWxlY3Rvcj1aLmlzUm9vdD12b2lkIDA7dmFyIGZlPVNlKCksT2UsYkM9KE9lPXt9LE9lW2ZlLkFUVFJJQlVURV09ITAsT2VbZmUuQ0xBU1NdPSEwLE9lW2ZlLkNPTUJJTkFUT1JdPSEwLE9lW2ZlLkNPTU1FTlRdPSEwLE9lW2ZlLklEXT0hMCxPZVtmZS5ORVNUSU5HXT0hMCxPZVtmZS5QU0VVRE9dPSEwLE9lW2ZlLlJPT1RdPSEwLE9lW2ZlLlNFTEVDVE9SXT0hMCxPZVtmZS5TVFJJTkddPSEwLE9lW2ZlLlRBR109ITAsT2VbZmUuVU5JVkVSU0FMXT0hMCxPZSk7ZnVuY3Rpb24gYm8ocil7cmV0dXJuIHR5cGVvZiByPT0ib2JqZWN0IiYmYkNbci50eXBlXX1mdW5jdGlvbiBVZShyLGUpe3JldHVybiBibyhlKSYmZS50eXBlPT09cn12YXIgX2Q9VWUuYmluZChudWxsLGZlLkFUVFJJQlVURSk7Wi5pc0F0dHJpYnV0ZT1fZDt2YXIgd0M9VWUuYmluZChudWxsLGZlLkNMQVNTKTtaLmlzQ2xhc3NOYW1lPXdDO3ZhciB2Qz1VZS5iaW5kKG51bGwsZmUuQ09NQklOQVRPUik7Wi5pc0NvbWJpbmF0b3I9dkM7dmFyIHhDPVVlLmJpbmQobnVsbCxmZS5DT01NRU5UKTtaLmlzQ29tbWVudD14Qzt2YXIga0M9VWUuYmluZChudWxsLGZlLklEKTtaLmlzSWRlbnRpZmllcj1rQzt2YXIgU0M9VWUuYmluZChudWxsLGZlLk5FU1RJTkcpO1ouaXNOZXN0aW5nPVNDO3ZhciB3bz1VZS5iaW5kKG51bGwsZmUuUFNFVURPKTtaLmlzUHNldWRvPXdvO3ZhciBBQz1VZS5iaW5kKG51bGwsZmUuUk9PVCk7Wi5pc1Jvb3Q9QUM7dmFyIENDPVVlLmJpbmQobnVsbCxmZS5TRUxFQ1RPUik7Wi5pc1NlbGVjdG9yPUNDO3ZhciBfQz1VZS5iaW5kKG51bGwsZmUuU1RSSU5HKTtaLmlzU3RyaW5nPV9DO3ZhciBFZD1VZS5iaW5kKG51bGwsZmUuVEFHKTtaLmlzVGFnPUVkO3ZhciBFQz1VZS5iaW5kKG51bGwsZmUuVU5JVkVSU0FMKTtaLmlzVW5pdmVyc2FsPUVDO2Z1bmN0aW9uIE9kKHIpe3JldHVybiB3byhyKSYmci52YWx1ZSYmKHIudmFsdWUuc3RhcnRzV2l0aCgiOjoiKXx8ci52YWx1ZS50b0xvd2VyQ2FzZSgpPT09IjpiZWZvcmUifHxyLnZhbHVlLnRvTG93ZXJDYXNlKCk9PT0iOmFmdGVyInx8ci52YWx1ZS50b0xvd2VyQ2FzZSgpPT09IjpmaXJzdC1sZXR0ZXIifHxyLnZhbHVlLnRvTG93ZXJDYXNlKCk9PT0iOmZpcnN0LWxpbmUiKX1mdW5jdGlvbiBPQyhyKXtyZXR1cm4gd28ocikmJiFPZChyKX1mdW5jdGlvbiBUQyhyKXtyZXR1cm4hIShibyhyKSYmci53YWxrKX1mdW5jdGlvbiBSQyhyKXtyZXR1cm4gX2Qocil8fEVkKHIpfX0pO3ZhciBSZD14KEtlPT57dSgpOyJ1c2Ugc3RyaWN0IjtLZS5fX2VzTW9kdWxlPSEwO3ZhciB2bz1TZSgpO09iamVjdC5rZXlzKHZvKS5mb3JFYWNoKGZ1bmN0aW9uKHIpe3I9PT0iZGVmYXVsdCJ8fHI9PT0iX19lc01vZHVsZSJ8fHIgaW4gS2UmJktlW3JdPT09dm9bcl18fChLZVtyXT12b1tyXSl9KTt2YXIgeG89Q2QoKTtPYmplY3Qua2V5cyh4bykuZm9yRWFjaChmdW5jdGlvbihyKXtyPT09ImRlZmF1bHQifHxyPT09Il9fZXNNb2R1bGUifHxyIGluIEtlJiZLZVtyXT09PXhvW3JdfHwoS2Vbcl09eG9bcl0pfSk7dmFyIGtvPVRkKCk7T2JqZWN0LmtleXMoa28pLmZvckVhY2goZnVuY3Rpb24ocil7cj09PSJkZWZhdWx0Inx8cj09PSJfX2VzTW9kdWxlInx8ciBpbiBLZSYmS2Vbcl09PT1rb1tyXXx8KEtlW3JdPWtvW3JdKX0pfSk7dmFyIGl0PXgoKEFpLElkKT0+e3UoKTsidXNlIHN0cmljdCI7QWkuX19lc01vZHVsZT0hMDtBaS5kZWZhdWx0PXZvaWQgMDt2YXIgUEM9cUMoQWQoKSksSUM9REMoUmQoKSk7ZnVuY3Rpb24gUGQocil7aWYodHlwZW9mIFdlYWtNYXAhPSJmdW5jdGlvbiIpcmV0dXJuIG51bGw7dmFyIGU9bmV3IFdlYWtNYXAsdD1uZXcgV2Vha01hcDtyZXR1cm4oUGQ9ZnVuY3Rpb24obil7cmV0dXJuIG4/dDplfSkocil9ZnVuY3Rpb24gREMocixlKXtpZighZSYmciYmci5fX2VzTW9kdWxlKXJldHVybiByO2lmKHI9PT1udWxsfHx0eXBlb2YgciE9Im9iamVjdCImJnR5cGVvZiByIT0iZnVuY3Rpb24iKXJldHVybntkZWZhdWx0OnJ9O3ZhciB0PVBkKGUpO2lmKHQmJnQuaGFzKHIpKXJldHVybiB0LmdldChyKTt2YXIgaT17fSxuPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSYmT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjtmb3IodmFyIHMgaW4gcilpZihzIT09ImRlZmF1bHQiJiZPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocixzKSl7dmFyIGE9bj9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHIscyk6bnVsbDthJiYoYS5nZXR8fGEuc2V0KT9PYmplY3QuZGVmaW5lUHJvcGVydHkoaSxzLGEpOmlbc109cltzXX1yZXR1cm4gaS5kZWZhdWx0PXIsdCYmdC5zZXQocixpKSxpfWZ1bmN0aW9uIHFDKHIpe3JldHVybiByJiZyLl9fZXNNb2R1bGU/cjp7ZGVmYXVsdDpyfX12YXIgU289ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyBQQy5kZWZhdWx0KGUpfTtPYmplY3QuYXNzaWduKFNvLElDKTtkZWxldGUgU28uX19lc01vZHVsZTt2YXIgJEM9U287QWkuZGVmYXVsdD0kQztJZC5leHBvcnRzPUFpLmRlZmF1bHR9KTtmdW5jdGlvbiBtdChyKXtyZXR1cm5bImZvbnRTaXplIiwib3V0bGluZSJdLmluY2x1ZGVzKHIpP2U9Pih0eXBlb2YgZT09ImZ1bmN0aW9uIiYmKGU9ZSh7fSkpLEFycmF5LmlzQXJyYXkoZSkmJihlPWVbMF0pLGUpOnI9PT0iZm9udEZhbWlseSI/ZT0+e3R5cGVvZiBlPT0iZnVuY3Rpb24iJiYoZT1lKHt9KSk7bGV0IHQ9QXJyYXkuaXNBcnJheShlKSYma2UoZVsxXSk/ZVswXTplO3JldHVybiBBcnJheS5pc0FycmF5KHQpP3Quam9pbigiLCAiKTp0fTpbImJveFNoYWRvdyIsInRyYW5zaXRpb25Qcm9wZXJ0eSIsInRyYW5zaXRpb25EdXJhdGlvbiIsInRyYW5zaXRpb25EZWxheSIsInRyYW5zaXRpb25UaW1pbmdGdW5jdGlvbiIsImJhY2tncm91bmRJbWFnZSIsImJhY2tncm91bmRTaXplIiwiYmFja2dyb3VuZENvbG9yIiwiY3Vyc29yIiwiYW5pbWF0aW9uIl0uaW5jbHVkZXMocik/ZT0+KHR5cGVvZiBlPT0iZnVuY3Rpb24iJiYoZT1lKHt9KSksQXJyYXkuaXNBcnJheShlKSYmKGU9ZS5qb2luKCIsICIpKSxlKTpbImdyaWRUZW1wbGF0ZUNvbHVtbnMiLCJncmlkVGVtcGxhdGVSb3dzIiwib2JqZWN0UG9zaXRpb24iXS5pbmNsdWRlcyhyKT9lPT4odHlwZW9mIGU9PSJmdW5jdGlvbiImJihlPWUoe30pKSx0eXBlb2YgZT09InN0cmluZyImJihlPWVlLmxpc3QuY29tbWEoZSkuam9pbigiICIpKSxlKTooZSx0PXt9KT0+KHR5cGVvZiBlPT0iZnVuY3Rpb24iJiYoZT1lKHQpKSxlKX12YXIgQ2k9UCgoKT0+e3UoKTtPdCgpO0t0KCl9KTt2YXIgQmQ9eCgoTUksT28pPT57dSgpO3ZhcntBdFJ1bGU6TEMsUnVsZTpEZH09JGUoKSxxZD1pdCgpO2Z1bmN0aW9uIEFvKHIsZSl7bGV0IHQ7dHJ5e3FkKGk9Pnt0PWl9KS5wcm9jZXNzU3luYyhyKX1jYXRjaChpKXt0aHJvdyByLmluY2x1ZGVzKCI6Iik/ZT9lLmVycm9yKCJNaXNzZWQgc2VtaWNvbG9uIik6aTplP2UuZXJyb3IoaS5tZXNzYWdlKTppfXJldHVybiB0LmF0KDApfWZ1bmN0aW9uICRkKHIsZSl7bGV0IHQ9ITE7cmV0dXJuIHIuZWFjaChpPT57aWYoaS50eXBlPT09Im5lc3RpbmciKXtsZXQgbj1lLmNsb25lKHt9KTtpLnZhbHVlIT09IiYiP2kucmVwbGFjZVdpdGgoQW8oaS52YWx1ZS5yZXBsYWNlKCImIixuLnRvU3RyaW5nKCkpKSk6aS5yZXBsYWNlV2l0aChuKSx0PSEwfWVsc2Uibm9kZXMiaW4gaSYmaS5ub2RlcyYmJGQoaSxlKSYmKHQ9ITApfSksdH1mdW5jdGlvbiBMZChyLGUpe2xldCB0PVtdO3JldHVybiByLnNlbGVjdG9ycy5mb3JFYWNoKGk9PntsZXQgbj1BbyhpLHIpO2Uuc2VsZWN0b3JzLmZvckVhY2gocz0+e2lmKCFzKXJldHVybjtsZXQgYT1BbyhzLGUpOyRkKGEsbil8fChhLnByZXBlbmQocWQuY29tYmluYXRvcih7dmFsdWU6IiAifSkpLGEucHJlcGVuZChuLmNsb25lKHt9KSkpLHQucHVzaChhLnRvU3RyaW5nKCkpfSl9KSx0fWZ1bmN0aW9uIEhuKHIsZSl7bGV0IHQ9ci5wcmV2KCk7Zm9yKGUuYWZ0ZXIocik7dCYmdC50eXBlPT09ImNvbW1lbnQiOyl7bGV0IGk9dC5wcmV2KCk7ZS5hZnRlcih0KSx0PWl9cmV0dXJuIHJ9ZnVuY3Rpb24gTUMocil7cmV0dXJuIGZ1bmN0aW9uIGUodCxpLG4scz1uKXtsZXQgYT1bXTtpZihpLmVhY2gobz0+e28udHlwZT09PSJydWxlIiYmbj9zJiYoby5zZWxlY3RvcnM9TGQodCxvKSk6by50eXBlPT09ImF0cnVsZSImJm8ubm9kZXM/cltvLm5hbWVdP2UodCxvLHMpOmlbX29dIT09ITEmJmEucHVzaChvKTphLnB1c2gobyl9KSxuJiZhLmxlbmd0aCl7bGV0IG89dC5jbG9uZSh7bm9kZXM6W119KTtmb3IobGV0IGwgb2YgYSlvLmFwcGVuZChsKTtpLnByZXBlbmQobyl9fX1mdW5jdGlvbiBDbyhyLGUsdCl7bGV0IGk9bmV3IERkKHtub2RlczpbXSxzZWxlY3RvcjpyfSk7cmV0dXJuIGkuYXBwZW5kKGUpLHQuYWZ0ZXIoaSksaX1mdW5jdGlvbiBNZChyLGUpe2xldCB0PXt9O2ZvcihsZXQgaSBvZiByKXRbaV09ITA7aWYoZSlmb3IobGV0IGkgb2YgZSl0W2kucmVwbGFjZSgvXkAvLCIiKV09ITA7cmV0dXJuIHR9ZnVuY3Rpb24gTkMocil7cj1yLnRyaW0oKTtsZXQgZT1yLm1hdGNoKC9eXCgoLiopXCkkLyk7aWYoIWUpcmV0dXJue3NlbGVjdG9yOnIsdHlwZToiYmFzaWMifTtsZXQgdD1lWzFdLm1hdGNoKC9eKHdpdGgoPzpvdXQpPyk6KC4rKSQvKTtpZih0KXtsZXQgaT10WzFdPT09IndpdGgiLG49T2JqZWN0LmZyb21FbnRyaWVzKHRbMl0udHJpbSgpLnNwbGl0KC9ccysvKS5tYXAoYT0+W2EsITBdKSk7aWYoaSYmbi5hbGwpcmV0dXJue3R5cGU6Im5vb3AifTtsZXQgcz1hPT4hIW5bYV07cmV0dXJuIG4uYWxsP3M9KCk9PiEwOmkmJihzPWE9PmE9PT0iYWxsIj8hMTohblthXSkse2VzY2FwZXM6cyx0eXBlOiJ3aXRocnVsZXMifX1yZXR1cm57dHlwZToidW5rbm93biJ9fWZ1bmN0aW9uIEJDKHIpe2xldCBlPVtdLHQ9ci5wYXJlbnQ7Zm9yKDt0JiZ0IGluc3RhbmNlb2YgTEM7KWUucHVzaCh0KSx0PXQucGFyZW50O3JldHVybiBlfWZ1bmN0aW9uIEZDKHIpe2xldCBlPXJbTmRdO2lmKCFlKXIuYWZ0ZXIoci5ub2Rlcyk7ZWxzZXtsZXQgdD1yLm5vZGVzLGksbj0tMSxzLGEsbyxsPUJDKHIpO2lmKGwuZm9yRWFjaCgoYyxmKT0+e2lmKGUoYy5uYW1lKSlpPWMsbj1mLGE9bztlbHNle2xldCBkPW87bz1jLmNsb25lKHtub2RlczpbXX0pLGQmJm8uYXBwZW5kKGQpLHM9c3x8b319KSxpP2E/KHMuYXBwZW5kKHQpLGkuYWZ0ZXIoYSkpOmkuYWZ0ZXIodCk6ci5hZnRlcih0KSxyLm5leHQoKSYmaSl7bGV0IGM7bC5zbGljZSgwLG4rMSkuZm9yRWFjaCgoZixkLHApPT57bGV0IGg9YztjPWYuY2xvbmUoe25vZGVzOltdfSksaCYmYy5hcHBlbmQoaCk7bGV0IGI9W10seT0ocFtkLTFdfHxyKS5uZXh0KCk7Zm9yKDt5OyliLnB1c2goeSkseT15Lm5leHQoKTtjLmFwcGVuZChiKX0pLGMmJihhfHx0W3QubGVuZ3RoLTFdKS5hZnRlcihjKX19ci5yZW1vdmUoKX12YXIgX289U3ltYm9sKCJyb290UnVsZU1lcmdlU2VsIiksTmQ9U3ltYm9sKCJyb290UnVsZUVzY2FwZXMiKTtmdW5jdGlvbiBqQyhyKXtsZXR7cGFyYW1zOmV9PXIse2VzY2FwZXM6dCxzZWxlY3RvcjppLHR5cGU6bn09TkMoZSk7aWYobj09PSJ1bmtub3duIil0aHJvdyByLmVycm9yKGBVbmtub3duIEAke3IubmFtZX0gcGFyYW1ldGVyICR7SlNPTi5zdHJpbmdpZnkoZSl9YCk7aWYobj09PSJiYXNpYyImJmkpe2xldCBzPW5ldyBEZCh7bm9kZXM6ci5ub2RlcyxzZWxlY3RvcjppfSk7ci5yZW1vdmVBbGwoKSxyLmFwcGVuZChzKX1yW05kXT10LHJbX29dPXQ/IXQoImFsbCIpOm49PT0ibm9vcCJ9dmFyIEVvPVN5bWJvbCgiaGFzUm9vdFJ1bGUiKTtPby5leHBvcnRzPShyPXt9KT0+e2xldCBlPU1kKFsibWVkaWEiLCJzdXBwb3J0cyIsImxheWVyIiwiY29udGFpbmVyIiwic3RhcnRpbmctc3R5bGUiXSxyLmJ1YmJsZSksdD1NQyhlKSxpPU1kKFsiZG9jdW1lbnQiLCJmb250LWZhY2UiLCJrZXlmcmFtZXMiLCItd2Via2l0LWtleWZyYW1lcyIsIi1tb3ota2V5ZnJhbWVzIl0sci51bndyYXApLG49KHIucm9vdFJ1bGVOYW1lfHwiYXQtcm9vdCIpLnJlcGxhY2UoL15ALywiIikscz1yLnByZXNlcnZlRW1wdHk7cmV0dXJue09uY2UoYSl7YS53YWxrQXRSdWxlcyhuLG89PntqQyhvKSxhW0VvXT0hMH0pfSxwb3N0Y3NzUGx1Z2luOiJwb3N0Y3NzLW5lc3RlZCIsUm9vdEV4aXQoYSl7YVtFb10mJihhLndhbGtBdFJ1bGVzKG4sRkMpLGFbRW9dPSExKX0sUnVsZShhKXtsZXQgbz0hMSxsPWEsYz0hMSxmPVtdO2EuZWFjaChkPT57ZC50eXBlPT09InJ1bGUiPyhmLmxlbmd0aCYmKGw9Q28oYS5zZWxlY3RvcixmLGwpLGY9W10pLGM9ITAsbz0hMCxkLnNlbGVjdG9ycz1MZChhLGQpLGw9SG4oZCxsKSk6ZC50eXBlPT09ImF0cnVsZSI/KGYubGVuZ3RoJiYobD1DbyhhLnNlbGVjdG9yLGYsbCksZj1bXSksZC5uYW1lPT09bj8obz0hMCx0KGEsZCwhMCxkW19vXSksbD1IbihkLGwpKTplW2QubmFtZV0/KGM9ITAsbz0hMCx0KGEsZCwhMCksbD1IbihkLGwpKTppW2QubmFtZV0/KGM9ITAsbz0hMCx0KGEsZCwhMSksbD1IbihkLGwpKTpjJiZmLnB1c2goZCkpOmQudHlwZT09PSJkZWNsIiYmYyYmZi5wdXNoKGQpfSksZi5sZW5ndGgmJihsPUNvKGEuc2VsZWN0b3IsZixsKSksbyYmcyE9PSEwJiYoYS5yYXdzLnNlbWljb2xvbj0hMCxhLm5vZGVzLmxlbmd0aD09PTAmJmEucmVtb3ZlKCkpfX19O09vLmV4cG9ydHMucG9zdGNzcz0hMH0pO3ZhciBVZD14KChOSSx6ZCk9Pnt1KCk7InVzZSBzdHJpY3QiO3ZhciBGZD0vLShcd3wkKS9nLGpkPShyLGUpPT5lLnRvVXBwZXJDYXNlKCksekM9cj0+KHI9ci50b0xvd2VyQ2FzZSgpLHI9PT0iZmxvYXQiPyJjc3NGbG9hdCI6ci5zdGFydHNXaXRoKCItbXMtIik/ci5zdWJzdHIoMSkucmVwbGFjZShGZCxqZCk6ci5yZXBsYWNlKEZkLGpkKSk7emQuZXhwb3J0cz16Q30pO3ZhciBQbz14KChCSSxWZCk9Pnt1KCk7dmFyIFVDPVVkKCksVkM9e2JveEZsZXg6ITAsYm94RmxleEdyb3VwOiEwLGNvbHVtbkNvdW50OiEwLGZsZXg6ITAsZmxleEdyb3c6ITAsZmxleFBvc2l0aXZlOiEwLGZsZXhTaHJpbms6ITAsZmxleE5lZ2F0aXZlOiEwLGZvbnRXZWlnaHQ6ITAsbGluZUNsYW1wOiEwLGxpbmVIZWlnaHQ6ITAsb3BhY2l0eTohMCxvcmRlcjohMCxvcnBoYW5zOiEwLHRhYlNpemU6ITAsd2lkb3dzOiEwLHpJbmRleDohMCx6b29tOiEwLGZpbGxPcGFjaXR5OiEwLHN0cm9rZURhc2hvZmZzZXQ6ITAsc3Ryb2tlT3BhY2l0eTohMCxzdHJva2VXaWR0aDohMH07ZnVuY3Rpb24gVG8ocil7cmV0dXJuIHR5cGVvZiByLm5vZGVzPT0idW5kZWZpbmVkIj8hMDpSbyhyKX1mdW5jdGlvbiBSbyhyKXtsZXQgZSx0PXt9O3JldHVybiByLmVhY2goaT0+e2lmKGkudHlwZT09PSJhdHJ1bGUiKWU9IkAiK2kubmFtZSxpLnBhcmFtcyYmKGUrPSIgIitpLnBhcmFtcyksdHlwZW9mIHRbZV09PSJ1bmRlZmluZWQiP3RbZV09VG8oaSk6QXJyYXkuaXNBcnJheSh0W2VdKT90W2VdLnB1c2goVG8oaSkpOnRbZV09W3RbZV0sVG8oaSldO2Vsc2UgaWYoaS50eXBlPT09InJ1bGUiKXtsZXQgbj1SbyhpKTtpZih0W2kuc2VsZWN0b3JdKWZvcihsZXQgcyBpbiBuKXRbaS5zZWxlY3Rvcl1bc109bltzXTtlbHNlIHRbaS5zZWxlY3Rvcl09bn1lbHNlIGlmKGkudHlwZT09PSJkZWNsIil7aS5wcm9wWzBdPT09Ii0iJiZpLnByb3BbMV09PT0iLSJ8fGkucGFyZW50JiZpLnBhcmVudC5zZWxlY3Rvcj09PSI6ZXhwb3J0Ij9lPWkucHJvcDplPVVDKGkucHJvcCk7bGV0IG49aS52YWx1ZTshaXNOYU4oaS52YWx1ZSkmJlZDW2VdJiYobj1wYXJzZUZsb2F0KGkudmFsdWUpKSxpLmltcG9ydGFudCYmKG4rPSIgIWltcG9ydGFudCIpLHR5cGVvZiB0W2VdPT0idW5kZWZpbmVkIj90W2VdPW46QXJyYXkuaXNBcnJheSh0W2VdKT90W2VdLnB1c2gobik6dFtlXT1bdFtlXSxuXX19KSx0fVZkLmV4cG9ydHM9Um99KTt2YXIgV249eCgoRkksUWQpPT57dSgpO3ZhciBfaT0kZSgpLEhkPS9ccyohaW1wb3J0YW50XHMqJC9pLEhDPXsiYm94LWZsZXgiOiEwLCJib3gtZmxleC1ncm91cCI6ITAsImNvbHVtbi1jb3VudCI6ITAsZmxleDohMCwiZmxleC1ncm93IjohMCwiZmxleC1wb3NpdGl2ZSI6ITAsImZsZXgtc2hyaW5rIjohMCwiZmxleC1uZWdhdGl2ZSI6ITAsImZvbnQtd2VpZ2h0IjohMCwibGluZS1jbGFtcCI6ITAsImxpbmUtaGVpZ2h0IjohMCxvcGFjaXR5OiEwLG9yZGVyOiEwLG9ycGhhbnM6ITAsInRhYi1zaXplIjohMCx3aWRvd3M6ITAsInotaW5kZXgiOiEwLHpvb206ITAsImZpbGwtb3BhY2l0eSI6ITAsInN0cm9rZS1kYXNob2Zmc2V0IjohMCwic3Ryb2tlLW9wYWNpdHkiOiEwLCJzdHJva2Utd2lkdGgiOiEwfTtmdW5jdGlvbiBXQyhyKXtyZXR1cm4gci5yZXBsYWNlKC8oW0EtWl0pL2csIi0kMSIpLnJlcGxhY2UoL15tcy0vLCItbXMtIikudG9Mb3dlckNhc2UoKX1mdW5jdGlvbiBXZChyLGUsdCl7dD09PSExfHx0PT09bnVsbHx8KGUuc3RhcnRzV2l0aCgiLS0iKXx8KGU9V0MoZSkpLHR5cGVvZiB0PT0ibnVtYmVyIiYmKHQ9PT0wfHxIQ1tlXT90PXQudG9TdHJpbmcoKTp0Kz0icHgiKSxlPT09ImNzcy1mbG9hdCImJihlPSJmbG9hdCIpLEhkLnRlc3QodCk/KHQ9dC5yZXBsYWNlKEhkLCIiKSxyLnB1c2goX2kuZGVjbCh7cHJvcDplLHZhbHVlOnQsaW1wb3J0YW50OiEwfSkpKTpyLnB1c2goX2kuZGVjbCh7cHJvcDplLHZhbHVlOnR9KSkpfWZ1bmN0aW9uIEdkKHIsZSx0KXtsZXQgaT1faS5hdFJ1bGUoe25hbWU6ZVsxXSxwYXJhbXM6ZVszXXx8IiJ9KTt0eXBlb2YgdD09Im9iamVjdCImJihpLm5vZGVzPVtdLElvKHQsaSkpLHIucHVzaChpKX1mdW5jdGlvbiBJbyhyLGUpe2xldCB0LGksbjtmb3IodCBpbiByKWlmKGk9clt0XSwhKGk9PT1udWxsfHx0eXBlb2YgaT09InVuZGVmaW5lZCIpKWlmKHRbMF09PT0iQCIpe2xldCBzPXQubWF0Y2goL0AoXFMrKShccysoW1xXXHddKilccyopPy8pO2lmKEFycmF5LmlzQXJyYXkoaSkpZm9yKGxldCBhIG9mIGkpR2QoZSxzLGEpO2Vsc2UgR2QoZSxzLGkpfWVsc2UgaWYoQXJyYXkuaXNBcnJheShpKSlmb3IobGV0IHMgb2YgaSlXZChlLHQscyk7ZWxzZSB0eXBlb2YgaT09Im9iamVjdCI/KG49X2kucnVsZSh7c2VsZWN0b3I6dH0pLElvKGksbiksZS5wdXNoKG4pKTpXZChlLHQsaSl9UWQuZXhwb3J0cz1mdW5jdGlvbihyKXtsZXQgZT1faS5yb290KCk7cmV0dXJuIElvKHIsZSksZX19KTt2YXIgRG89eCgoakksWWQpPT57dSgpO3ZhciBHQz1QbygpO1lkLmV4cG9ydHM9ZnVuY3Rpb24oZSl7cmV0dXJuIGNvbnNvbGUmJmNvbnNvbGUud2FybiYmZS53YXJuaW5ncygpLmZvckVhY2godD0+e2xldCBpPXQucGx1Z2lufHwiUG9zdENTUyI7Y29uc29sZS53YXJuKGkrIjogIit0LnRleHQpfSksR0MoZS5yb290KX19KTt2YXIgWGQ9eCgoekksS2QpPT57dSgpO3ZhciBRQz0kZSgpLFlDPURvKCksS0M9V24oKTtLZC5leHBvcnRzPWZ1bmN0aW9uKGUpe2xldCB0PVFDKGUpO3JldHVybiBhc3luYyBpPT57bGV0IG49YXdhaXQgdC5wcm9jZXNzKGkse3BhcnNlcjpLQyxmcm9tOnZvaWQgMH0pO3JldHVybiBZQyhuKX19fSk7dmFyIEpkPXgoKFVJLFpkKT0+e3UoKTt2YXIgWEM9JGUoKSxaQz1EbygpLEpDPVduKCk7WmQuZXhwb3J0cz1mdW5jdGlvbihyKXtsZXQgZT1YQyhyKTtyZXR1cm4gdD0+e2xldCBpPWUucHJvY2Vzcyh0LHtwYXJzZXI6SkMsZnJvbTp2b2lkIDB9KTtyZXR1cm4gWkMoaSl9fX0pO3ZhciB0aD14KChWSSxlaCk9Pnt1KCk7dmFyIGVfPVBvKCksdF89V24oKSxyXz1YZCgpLGlfPUpkKCk7ZWguZXhwb3J0cz17b2JqZWN0aWZ5OmVfLHBhcnNlOnRfLGFzeW5jOnJfLHN5bmM6aV99fSk7dmFyIG9yLHJoLEhJLFdJLEdJLFFJLGloPVAoKCk9Pnt1KCk7b3I9cGUodGgoKSkscmg9b3IuZGVmYXVsdCxIST1vci5kZWZhdWx0Lm9iamVjdGlmeSxXST1vci5kZWZhdWx0LnBhcnNlLEdJPW9yLmRlZmF1bHQuYXN5bmMsUUk9b3IuZGVmYXVsdC5zeW5jfSk7ZnVuY3Rpb24gbHIocil7cmV0dXJuIEFycmF5LmlzQXJyYXkocik/ci5mbGF0TWFwKGU9PmVlKFsoMCxuaC5kZWZhdWx0KSh7YnViYmxlOlsic2NyZWVuIl19KV0pLnByb2Nlc3MoZSx7cGFyc2VyOnJofSkucm9vdC5ub2Rlcyk6bHIoW3JdKX12YXIgbmgscW89UCgoKT0+e3UoKTtPdCgpO25oPXBlKEJkKCkpO2loKCl9KTtmdW5jdGlvbiB1cihyLGUsdD0hMSl7aWYocj09PSIiKXJldHVybiBlO2xldCBpPXR5cGVvZiBlPT0ic3RyaW5nIj8oMCxzaC5kZWZhdWx0KSgpLmFzdFN5bmMoZSk6ZTtyZXR1cm4gaS53YWxrQ2xhc3NlcyhuPT57bGV0IHM9bi52YWx1ZSxhPXQmJnMuc3RhcnRzV2l0aCgiLSIpO24udmFsdWU9YT9gLSR7cn0ke3Muc2xpY2UoMSl9YDpgJHtyfSR7c31gfSksdHlwZW9mIGU9PSJzdHJpbmciP2kudG9TdHJpbmcoKTppfXZhciBzaCxHbj1QKCgpPT57dSgpO3NoPXBlKGl0KCkpfSk7ZnVuY3Rpb24gVGUocil7bGV0IGU9YWguZGVmYXVsdC5jbGFzc05hbWUoKTtyZXR1cm4gZS52YWx1ZT1yLGp0KGU/LnJhd3M/LnZhbHVlPz9lLnZhbHVlKX12YXIgYWgsZnI9UCgoKT0+e3UoKTthaD1wZShpdCgpKTtaaSgpfSk7ZnVuY3Rpb24gJG8ocil7cmV0dXJuIGp0KGAuJHtUZShyKX1gKX1mdW5jdGlvbiBRbihyLGUpe3JldHVybiAkbyhFaShyLGUpKX1mdW5jdGlvbiBFaShyLGUpe3JldHVybiBlPT09IkRFRkFVTFQiP3I6ZT09PSItInx8ZT09PSItREVGQVVMVCI/YC0ke3J9YDplLnN0YXJ0c1dpdGgoIi0iKT9gLSR7cn0ke2V9YDplLnN0YXJ0c1dpdGgoIi8iKT9gJHtyfSR7ZX1gOmAke3J9LSR7ZX1gfXZhciBMbz1QKCgpPT57dSgpO2ZyKCk7WmkoKX0pO2Z1bmN0aW9uIEwocixlPVtbcixbcl1dXSx7ZmlsdGVyRGVmYXVsdDp0PSExLC4uLml9PXt9KXtsZXQgbj1tdChyKTtyZXR1cm4gZnVuY3Rpb24oe21hdGNoVXRpbGl0aWVzOnMsdGhlbWU6YX0pe2ZvcihsZXQgbyBvZiBlKXtsZXQgbD1BcnJheS5pc0FycmF5KG9bMF0pP286W29dO3MobC5yZWR1Y2UoKGMsW2YsZF0pPT5PYmplY3QuYXNzaWduKGMse1tmXTpwPT5kLnJlZHVjZSgoaCxiKT0+QXJyYXkuaXNBcnJheShiKT9PYmplY3QuYXNzaWduKGgse1tiWzBdXTpiWzFdfSk6T2JqZWN0LmFzc2lnbihoLHtbYl06bihwKX0pLHt9KX0pLHt9KSx7Li4uaSx2YWx1ZXM6dD9PYmplY3QuZnJvbUVudHJpZXMoT2JqZWN0LmVudHJpZXMoYShyKT8/e30pLmZpbHRlcigoW2NdKT0+YyE9PSJERUZBVUxUIikpOmEocil9KX19fXZhciBvaD1QKCgpPT57dSgpO0NpKCl9KTtmdW5jdGlvbiBUdChyKXtyZXR1cm4gcj1BcnJheS5pc0FycmF5KHIpP3I6W3JdLHIubWFwKGU9PntsZXQgdD1lLnZhbHVlcy5tYXAoaT0+aS5yYXchPT12b2lkIDA/aS5yYXc6W2kubWluJiZgKG1pbi13aWR0aDogJHtpLm1pbn0pYCxpLm1heCYmYChtYXgtd2lkdGg6ICR7aS5tYXh9KWBdLmZpbHRlcihCb29sZWFuKS5qb2luKCIgYW5kICIpKTtyZXR1cm4gZS5ub3Q/YG5vdCBhbGwgYW5kICR7dH1gOnR9KS5qb2luKCIsICIpfXZhciBZbj1QKCgpPT57dSgpfSk7ZnVuY3Rpb24gTW8ocil7cmV0dXJuIHIuc3BsaXQoZl8pLm1hcCh0PT57bGV0IGk9dC50cmltKCksbj17dmFsdWU6aX0scz1pLnNwbGl0KGNfKSxhPW5ldyBTZXQ7Zm9yKGxldCBvIG9mIHMpIWEuaGFzKCJESVJFQ1RJT05TIikmJm5fLmhhcyhvKT8obi5kaXJlY3Rpb249byxhLmFkZCgiRElSRUNUSU9OUyIpKTohYS5oYXMoIlBMQVlfU1RBVEVTIikmJnNfLmhhcyhvKT8obi5wbGF5U3RhdGU9byxhLmFkZCgiUExBWV9TVEFURVMiKSk6IWEuaGFzKCJGSUxMX01PREVTIikmJmFfLmhhcyhvKT8obi5maWxsTW9kZT1vLGEuYWRkKCJGSUxMX01PREVTIikpOiFhLmhhcygiSVRFUkFUSU9OX0NPVU5UUyIpJiYob18uaGFzKG8pfHxwXy50ZXN0KG8pKT8obi5pdGVyYXRpb25Db3VudD1vLGEuYWRkKCJJVEVSQVRJT05fQ09VTlRTIikpOiFhLmhhcygiVElNSU5HX0ZVTkNUSU9OIikmJmxfLmhhcyhvKXx8IWEuaGFzKCJUSU1JTkdfRlVOQ1RJT04iKSYmdV8uc29tZShsPT5vLnN0YXJ0c1dpdGgoYCR7bH0oYCkpPyhuLnRpbWluZ0Z1bmN0aW9uPW8sYS5hZGQoIlRJTUlOR19GVU5DVElPTiIpKTohYS5oYXMoIkRVUkFUSU9OIikmJmxoLnRlc3Qobyk/KG4uZHVyYXRpb249byxhLmFkZCgiRFVSQVRJT04iKSk6IWEuaGFzKCJERUxBWSIpJiZsaC50ZXN0KG8pPyhuLmRlbGF5PW8sYS5hZGQoIkRFTEFZIikpOmEuaGFzKCJOQU1FIik/KG4udW5rbm93bnx8KG4udW5rbm93bj1bXSksbi51bmtub3duLnB1c2gobykpOihuLm5hbWU9byxhLmFkZCgiTkFNRSIpKTtyZXR1cm4gbn0pfXZhciBuXyxzXyxhXyxvXyxsXyx1XyxmXyxjXyxsaCxwXyx1aD1QKCgpPT57dSgpO25fPW5ldyBTZXQoWyJub3JtYWwiLCJyZXZlcnNlIiwiYWx0ZXJuYXRlIiwiYWx0ZXJuYXRlLXJldmVyc2UiXSksc189bmV3IFNldChbInJ1bm5pbmciLCJwYXVzZWQiXSksYV89bmV3IFNldChbIm5vbmUiLCJmb3J3YXJkcyIsImJhY2t3YXJkcyIsImJvdGgiXSksb189bmV3IFNldChbImluZmluaXRlIl0pLGxfPW5ldyBTZXQoWyJsaW5lYXIiLCJlYXNlIiwiZWFzZS1pbiIsImVhc2Utb3V0IiwiZWFzZS1pbi1vdXQiLCJzdGVwLXN0YXJ0Iiwic3RlcC1lbmQiXSksdV89WyJjdWJpYy1iZXppZXIiLCJzdGVwcyJdLGZfPS9cLCg/IVteKF0qXCkpL2csY189L1wgKyg/IVteKF0qXCkpL2csbGg9L14oLT9bXGQuXSttP3MpJC8scF89L14oXGQrKSQvfSk7dmFyIGZoLHhlLGNoPVAoKCk9Pnt1KCk7Zmg9cj0+T2JqZWN0LmFzc2lnbih7fSwuLi5PYmplY3QuZW50cmllcyhyPz97fSkuZmxhdE1hcCgoW2UsdF0pPT50eXBlb2YgdD09Im9iamVjdCI/T2JqZWN0LmVudHJpZXMoZmgodCkpLm1hcCgoW2ksbl0pPT4oe1tlKyhpPT09IkRFRkFVTFQiPyIiOmAtJHtpfWApXTpufSkpOlt7W2Ake2V9YF06dH1dKSkseGU9Zmh9KTt2YXIgZGgscGg9UCgoKT0+e2RoPSIzLjQuMTcifSk7ZnVuY3Rpb24gUnQocixlPSEwKXtyZXR1cm4gQXJyYXkuaXNBcnJheShyKT9yLm1hcCh0PT57aWYoZSYmQXJyYXkuaXNBcnJheSh0KSl0aHJvdyBuZXcgRXJyb3IoIlRoZSB0dXBsZSBzeW50YXggaXMgbm90IHN1cHBvcnRlZCBmb3IgYHNjcmVlbnNgLiIpO2lmKHR5cGVvZiB0PT0ic3RyaW5nIilyZXR1cm57bmFtZTp0LnRvU3RyaW5nKCksbm90OiExLHZhbHVlczpbe21pbjp0LG1heDp2b2lkIDB9XX07bGV0W2ksbl09dDtyZXR1cm4gaT1pLnRvU3RyaW5nKCksdHlwZW9mIG49PSJzdHJpbmciP3tuYW1lOmksbm90OiExLHZhbHVlczpbe21pbjpuLG1heDp2b2lkIDB9XX06QXJyYXkuaXNBcnJheShuKT97bmFtZTppLG5vdDohMSx2YWx1ZXM6bi5tYXAocz0+bWgocykpfTp7bmFtZTppLG5vdDohMSx2YWx1ZXM6W21oKG4pXX19KTpSdChPYmplY3QuZW50cmllcyhyPz97fSksITEpfWZ1bmN0aW9uIEtuKHIpe3JldHVybiByLnZhbHVlcy5sZW5ndGghPT0xP3tyZXN1bHQ6ITEscmVhc29uOiJtdWx0aXBsZS12YWx1ZXMifTpyLnZhbHVlc1swXS5yYXchPT12b2lkIDA/e3Jlc3VsdDohMSxyZWFzb246InJhdy12YWx1ZXMifTpyLnZhbHVlc1swXS5taW4hPT12b2lkIDAmJnIudmFsdWVzWzBdLm1heCE9PXZvaWQgMD97cmVzdWx0OiExLHJlYXNvbjoibWluLWFuZC1tYXgifTp7cmVzdWx0OiEwLHJlYXNvbjpudWxsfX1mdW5jdGlvbiBoaChyLGUsdCl7bGV0IGk9WG4oZSxyKSxuPVhuKHQscikscz1LbihpKSxhPUtuKG4pO2lmKHMucmVhc29uPT09Im11bHRpcGxlLXZhbHVlcyJ8fGEucmVhc29uPT09Im11bHRpcGxlLXZhbHVlcyIpdGhyb3cgbmV3IEVycm9yKCJBdHRlbXB0ZWQgdG8gc29ydCBhIHNjcmVlbiB3aXRoIG11bHRpcGxlIHZhbHVlcy4gVGhpcyBzaG91bGQgbmV2ZXIgaGFwcGVuLiBQbGVhc2Ugb3BlbiBhIGJ1ZyByZXBvcnQuIik7aWYocy5yZWFzb249PT0icmF3LXZhbHVlcyJ8fGEucmVhc29uPT09InJhdy12YWx1ZXMiKXRocm93IG5ldyBFcnJvcigiQXR0ZW1wdGVkIHRvIHNvcnQgYSBzY3JlZW4gd2l0aCByYXcgdmFsdWVzLiBUaGlzIHNob3VsZCBuZXZlciBoYXBwZW4uIFBsZWFzZSBvcGVuIGEgYnVnIHJlcG9ydC4iKTtpZihzLnJlYXNvbj09PSJtaW4tYW5kLW1heCJ8fGEucmVhc29uPT09Im1pbi1hbmQtbWF4Iil0aHJvdyBuZXcgRXJyb3IoIkF0dGVtcHRlZCB0byBzb3J0IGEgc2NyZWVuIHdpdGggYm90aCBtaW4gYW5kIG1heCB2YWx1ZXMuIFRoaXMgc2hvdWxkIG5ldmVyIGhhcHBlbi4gUGxlYXNlIG9wZW4gYSBidWcgcmVwb3J0LiIpO2xldHttaW46byxtYXg6bH09aS52YWx1ZXNbMF0se21pbjpjLG1heDpmfT1uLnZhbHVlc1swXTtlLm5vdCYmKFtvLGxdPVtsLG9dKSx0Lm5vdCYmKFtjLGZdPVtmLGNdKSxvPW89PT12b2lkIDA/bzpwYXJzZUZsb2F0KG8pLGw9bD09PXZvaWQgMD9sOnBhcnNlRmxvYXQobCksYz1jPT09dm9pZCAwP2M6cGFyc2VGbG9hdChjKSxmPWY9PT12b2lkIDA/ZjpwYXJzZUZsb2F0KGYpO2xldFtkLHBdPXI9PT0ibWluIj9bbyxjXTpbZixsXTtyZXR1cm4gZC1wfWZ1bmN0aW9uIFhuKHIsZSl7cmV0dXJuIHR5cGVvZiByPT0ib2JqZWN0Ij9yOntuYW1lOiJhcmJpdHJhcnktc2NyZWVuIix2YWx1ZXM6W3tbZV06cn1dfX1mdW5jdGlvbiBtaCh7Im1pbi13aWR0aCI6cixtaW46ZT1yLG1heDp0LHJhdzppfT17fSl7cmV0dXJue21pbjplLG1heDp0LHJhdzppfX12YXIgWm49UCgoKT0+e3UoKX0pO2Z1bmN0aW9uIEpuKHIsZSl7ci53YWxrRGVjbHModD0+e2lmKGUuaW5jbHVkZXModC5wcm9wKSl7dC5yZW1vdmUoKTtyZXR1cm59Zm9yKGxldCBpIG9mIGUpdC52YWx1ZS5pbmNsdWRlcyhgLyB2YXIoJHtpfSlgKT90LnZhbHVlPXQudmFsdWUucmVwbGFjZShgLyB2YXIoJHtpfSlgLCIiKTp0LnZhbHVlLmluY2x1ZGVzKGAvIHZhcigke2l9LCAxKWApJiYodC52YWx1ZT10LnZhbHVlLnJlcGxhY2UoYC8gdmFyKCR7aX0sIDEpYCwiIikpfSl9dmFyIGdoPVAoKCk9Pnt1KCl9KTt2YXIgc2UsWGUsbnQsZ2UseWgsYmg9UCgoKT0+e3UoKTtmdCgpO2V0KCk7T3QoKTtvaCgpO1luKCk7ZnIoKTt1aCgpO2NoKCk7THIoKTtyYSgpO0t0KCk7Q2koKTtwaCgpO0JlKCk7Wm4oKTtZcygpO2doKCk7Y3QoKTtCcigpO09pKCk7c2U9e2NoaWxkVmFyaWFudDooe2FkZFZhcmlhbnQ6cn0pPT57cigiKiIsIiYgPiAqIil9LHBzZXVkb0VsZW1lbnRWYXJpYW50czooe2FkZFZhcmlhbnQ6cn0pPT57cigiZmlyc3QtbGV0dGVyIiwiJjo6Zmlyc3QtbGV0dGVyIikscigiZmlyc3QtbGluZSIsIiY6OmZpcnN0LWxpbmUiKSxyKCJtYXJrZXIiLFsoe2NvbnRhaW5lcjplfSk9PihKbihlLFsiLS10dy10ZXh0LW9wYWNpdHkiXSksIiYgKjo6bWFya2VyIiksKHtjb250YWluZXI6ZX0pPT4oSm4oZSxbIi0tdHctdGV4dC1vcGFjaXR5Il0pLCImOjptYXJrZXIiKV0pLHIoInNlbGVjdGlvbiIsWyImICo6OnNlbGVjdGlvbiIsIiY6OnNlbGVjdGlvbiJdKSxyKCJmaWxlIiwiJjo6ZmlsZS1zZWxlY3Rvci1idXR0b24iKSxyKCJwbGFjZWhvbGRlciIsIiY6OnBsYWNlaG9sZGVyIikscigiYmFja2Ryb3AiLCImOjpiYWNrZHJvcCIpLHIoImJlZm9yZSIsKHtjb250YWluZXI6ZX0pPT4oZS53YWxrUnVsZXModD0+e2xldCBpPSExO3Qud2Fsa0RlY2xzKCJjb250ZW50IiwoKT0+e2k9ITB9KSxpfHx0LnByZXBlbmQoZWUuZGVjbCh7cHJvcDoiY29udGVudCIsdmFsdWU6InZhcigtLXR3LWNvbnRlbnQpIn0pKX0pLCImOjpiZWZvcmUiKSkscigiYWZ0ZXIiLCh7Y29udGFpbmVyOmV9KT0+KGUud2Fsa1J1bGVzKHQ9PntsZXQgaT0hMTt0LndhbGtEZWNscygiY29udGVudCIsKCk9PntpPSEwfSksaXx8dC5wcmVwZW5kKGVlLmRlY2woe3Byb3A6ImNvbnRlbnQiLHZhbHVlOiJ2YXIoLS10dy1jb250ZW50KSJ9KSl9KSwiJjo6YWZ0ZXIiKSl9LHBzZXVkb0NsYXNzVmFyaWFudHM6KHthZGRWYXJpYW50OnIsbWF0Y2hWYXJpYW50OmUsY29uZmlnOnQscHJlZml4Oml9KT0+e2xldCBuPVtbImZpcnN0IiwiJjpmaXJzdC1jaGlsZCJdLFsibGFzdCIsIiY6bGFzdC1jaGlsZCJdLFsib25seSIsIiY6b25seS1jaGlsZCJdLFsib2RkIiwiJjpudGgtY2hpbGQob2RkKSJdLFsiZXZlbiIsIiY6bnRoLWNoaWxkKGV2ZW4pIl0sImZpcnN0LW9mLXR5cGUiLCJsYXN0LW9mLXR5cGUiLCJvbmx5LW9mLXR5cGUiLFsidmlzaXRlZCIsKHtjb250YWluZXI6YX0pPT4oSm4oYSxbIi0tdHctdGV4dC1vcGFjaXR5IiwiLS10dy1ib3JkZXItb3BhY2l0eSIsIi0tdHctYmctb3BhY2l0eSJdKSwiJjp2aXNpdGVkIildLCJ0YXJnZXQiLFsib3BlbiIsIiZbb3Blbl0iXSwiZGVmYXVsdCIsImNoZWNrZWQiLCJpbmRldGVybWluYXRlIiwicGxhY2Vob2xkZXItc2hvd24iLCJhdXRvZmlsbCIsIm9wdGlvbmFsIiwicmVxdWlyZWQiLCJ2YWxpZCIsImludmFsaWQiLCJpbi1yYW5nZSIsIm91dC1vZi1yYW5nZSIsInJlYWQtb25seSIsImVtcHR5IiwiZm9jdXMtd2l0aGluIixbImhvdmVyIix3ZSh0KCksImhvdmVyT25seVdoZW5TdXBwb3J0ZWQiKT8iQG1lZGlhIChob3ZlcjogaG92ZXIpIGFuZCAocG9pbnRlcjogZmluZSkgeyAmOmhvdmVyIH0iOiImOmhvdmVyIl0sImZvY3VzIiwiZm9jdXMtdmlzaWJsZSIsImFjdGl2ZSIsImVuYWJsZWQiLCJkaXNhYmxlZCJdLm1hcChhPT5BcnJheS5pc0FycmF5KGEpP2E6W2EsYCY6JHthfWBdKTtmb3IobGV0W2Esb11vZiBuKXIoYSxsPT50eXBlb2Ygbz09ImZ1bmN0aW9uIj9vKGwpOm8pO2xldCBzPXtncm91cDooYSx7bW9kaWZpZXI6b30pPT5vP1tgOm1lcmdlKCR7aSgiLmdyb3VwIil9XFwvJHtUZShvKX0pYCwiICYiXTpbYDptZXJnZSgke2koIi5ncm91cCIpfSlgLCIgJiJdLHBlZXI6KGEse21vZGlmaWVyOm99KT0+bz9bYDptZXJnZSgke2koIi5wZWVyIil9XFwvJHtUZShvKX0pYCwiIH4gJiJdOltgOm1lcmdlKCR7aSgiLnBlZXIiKX0pYCwiIH4gJiJdfTtmb3IobGV0W2Esb11vZiBPYmplY3QuZW50cmllcyhzKSllKGEsKGw9IiIsYyk9PntsZXQgZj1LKHR5cGVvZiBsPT0iZnVuY3Rpb24iP2woYyk6bCk7Zi5pbmNsdWRlcygiJiIpfHwoZj0iJiIrZik7bGV0W2QscF09bygiIixjKSxoPW51bGwsYj1udWxsLHY9MDtmb3IobGV0IHk9MDt5PGYubGVuZ3RoOysreSl7bGV0IHc9Zlt5XTt3PT09IiYiP2g9eTp3PT09IicifHx3PT09JyInP3YrPTE6aCE9PW51bGwmJnc9PT0iICImJiF2JiYoYj15KX1yZXR1cm4gaCE9PW51bGwmJmI9PT1udWxsJiYoYj1mLmxlbmd0aCksZi5zbGljZSgwLGgpK2QrZi5zbGljZShoKzEsYikrcCtmLnNsaWNlKGIpfSx7dmFsdWVzOk9iamVjdC5mcm9tRW50cmllcyhuKSxbUHRdOntyZXNwZWN0UHJlZml4OiExfX0pfSxkaXJlY3Rpb25WYXJpYW50czooe2FkZFZhcmlhbnQ6cn0pPT57cigibHRyIiwnJjp3aGVyZShbZGlyPSJsdHIiXSwgW2Rpcj0ibHRyIl0gKiknKSxyKCJydGwiLCcmOndoZXJlKFtkaXI9InJ0bCJdLCBbZGlyPSJydGwiXSAqKScpfSxyZWR1Y2VkTW90aW9uVmFyaWFudHM6KHthZGRWYXJpYW50OnJ9KT0+e3IoIm1vdGlvbi1zYWZlIiwiQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiBuby1wcmVmZXJlbmNlKSIpLHIoIm1vdGlvbi1yZWR1Y2UiLCJAbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkiKX0sZGFya1ZhcmlhbnRzOih7Y29uZmlnOnIsYWRkVmFyaWFudDplfSk9PntsZXRbdCxpPSIuZGFyayJdPVtdLmNvbmNhdChyKCJkYXJrTW9kZSIsIm1lZGlhIikpO2lmKHQ9PT0hMSYmKHQ9Im1lZGlhIixHLndhcm4oImRhcmttb2RlLWZhbHNlIixbIlRoZSBgZGFya01vZGVgIG9wdGlvbiBpbiB5b3VyIFRhaWx3aW5kIENTUyBjb25maWd1cmF0aW9uIGlzIHNldCB0byBgZmFsc2VgLCB3aGljaCBub3cgYmVoYXZlcyB0aGUgc2FtZSBhcyBgbWVkaWFgLiIsIkNoYW5nZSBgZGFya01vZGVgIHRvIGBtZWRpYWAgb3IgcmVtb3ZlIGl0IGVudGlyZWx5LiIsImh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvdXBncmFkZS1ndWlkZSNyZW1vdmUtZGFyay1tb2RlLWNvbmZpZ3VyYXRpb24iXSkpLHQ9PT0idmFyaWFudCIpe2xldCBuO2lmKEFycmF5LmlzQXJyYXkoaSl8fHR5cGVvZiBpPT0iZnVuY3Rpb24iP249aTp0eXBlb2YgaT09InN0cmluZyImJihuPVtpXSksQXJyYXkuaXNBcnJheShuKSlmb3IobGV0IHMgb2YgbilzPT09Ii5kYXJrIj8odD0hMSxHLndhcm4oImRhcmttb2RlLXZhcmlhbnQtd2l0aG91dC1zZWxlY3RvciIsWyJXaGVuIHVzaW5nIGB2YXJpYW50YCBmb3IgYGRhcmtNb2RlYCwgeW91IG11c3QgcHJvdmlkZSBhIHNlbGVjdG9yLiIsJ0V4YW1wbGU6IGBkYXJrTW9kZTogWyJ2YXJpYW50IiwgIi55b3VyLXNlbGVjdG9yICYiXWAnXSkpOnMuaW5jbHVkZXMoIiYiKXx8KHQ9ITEsRy53YXJuKCJkYXJrbW9kZS12YXJpYW50LXdpdGhvdXQtYW1wZXJzYW5kIixbIldoZW4gdXNpbmcgYHZhcmlhbnRgIGZvciBgZGFya01vZGVgLCB5b3VyIHNlbGVjdG9yIG11c3QgY29udGFpbiBgJmAuIiwnRXhhbXBsZSBgZGFya01vZGU6IFsidmFyaWFudCIsICIueW91ci1zZWxlY3RvciAmIl1gJ10pKTtpPW59dD09PSJzZWxlY3RvciI/ZSgiZGFyayIsYCY6d2hlcmUoJHtpfSwgJHtpfSAqKWApOnQ9PT0ibWVkaWEiP2UoImRhcmsiLCJAbWVkaWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSIpOnQ9PT0idmFyaWFudCI/ZSgiZGFyayIsaSk6dD09PSJjbGFzcyImJmUoImRhcmsiLGAmOmlzKCR7aX0gKilgKX0scHJpbnRWYXJpYW50Oih7YWRkVmFyaWFudDpyfSk9PntyKCJwcmludCIsIkBtZWRpYSBwcmludCIpfSxzY3JlZW5WYXJpYW50czooe3RoZW1lOnIsYWRkVmFyaWFudDplLG1hdGNoVmFyaWFudDp0fSk9PntsZXQgaT1yKCJzY3JlZW5zIik/P3t9LG49T2JqZWN0LnZhbHVlcyhpKS5ldmVyeSh3PT50eXBlb2Ygdz09InN0cmluZyIpLHM9UnQocigic2NyZWVucyIpKSxhPW5ldyBTZXQoW10pO2Z1bmN0aW9uIG8odyl7cmV0dXJuIHcubWF0Y2goLyhcRCspJC8pPy5bMV0/PyIobm9uZSkifWZ1bmN0aW9uIGwodyl7dyE9PXZvaWQgMCYmYS5hZGQobyh3KSl9ZnVuY3Rpb24gYyh3KXtyZXR1cm4gbCh3KSxhLnNpemU9PT0xfWZvcihsZXQgdyBvZiBzKWZvcihsZXQgayBvZiB3LnZhbHVlcylsKGsubWluKSxsKGsubWF4KTtsZXQgZj1hLnNpemU8PTE7ZnVuY3Rpb24gZCh3KXtyZXR1cm4gT2JqZWN0LmZyb21FbnRyaWVzKHMuZmlsdGVyKGs9PktuKGspLnJlc3VsdCkubWFwKGs9PntsZXR7bWluOlMsbWF4OkV9PWsudmFsdWVzWzBdO2lmKHc9PT0ibWluIiYmUyE9PXZvaWQgMClyZXR1cm4gaztpZih3PT09Im1pbiImJkUhPT12b2lkIDApcmV0dXJuey4uLmssbm90OiFrLm5vdH07aWYodz09PSJtYXgiJiZFIT09dm9pZCAwKXJldHVybiBrO2lmKHc9PT0ibWF4IiYmUyE9PXZvaWQgMClyZXR1cm57Li4uayxub3Q6IWsubm90fX0pLm1hcChrPT5bay5uYW1lLGtdKSl9ZnVuY3Rpb24gcCh3KXtyZXR1cm4oayxTKT0+aGgodyxrLnZhbHVlLFMudmFsdWUpfWxldCBoPXAoIm1heCIpLGI9cCgibWluIik7ZnVuY3Rpb24gdih3KXtyZXR1cm4gaz0+e2lmKG4paWYoZil7aWYodHlwZW9mIGs9PSJzdHJpbmciJiYhYyhrKSlyZXR1cm4gRy53YXJuKCJtaW5tYXgtaGF2ZS1taXhlZC11bml0cyIsWyJUaGUgYG1pbi0qYCBhbmQgYG1heC0qYCB2YXJpYW50cyBhcmUgbm90IHN1cHBvcnRlZCB3aXRoIGEgYHNjcmVlbnNgIGNvbmZpZ3VyYXRpb24gY29udGFpbmluZyBtaXhlZCB1bml0cy4iXSksW119ZWxzZSByZXR1cm4gRy53YXJuKCJtaXhlZC1zY3JlZW4tdW5pdHMiLFsiVGhlIGBtaW4tKmAgYW5kIGBtYXgtKmAgdmFyaWFudHMgYXJlIG5vdCBzdXBwb3J0ZWQgd2l0aCBhIGBzY3JlZW5zYCBjb25maWd1cmF0aW9uIGNvbnRhaW5pbmcgbWl4ZWQgdW5pdHMuIl0pLFtdO2Vsc2UgcmV0dXJuIEcud2FybigiY29tcGxleC1zY3JlZW4tY29uZmlnIixbIlRoZSBgbWluLSpgIGFuZCBgbWF4LSpgIHZhcmlhbnRzIGFyZSBub3Qgc3VwcG9ydGVkIHdpdGggYSBgc2NyZWVuc2AgY29uZmlndXJhdGlvbiBjb250YWluaW5nIG9iamVjdHMuIl0pLFtdO3JldHVybltgQG1lZGlhICR7VHQoWG4oayx3KSl9YF19fXQoIm1heCIsdigibWF4Iikse3NvcnQ6aCx2YWx1ZXM6bj9kKCJtYXgiKTp7fX0pO2xldCB5PSJtaW4tc2NyZWVucyI7Zm9yKGxldCB3IG9mIHMpZSh3Lm5hbWUsYEBtZWRpYSAke1R0KHcpfWAse2lkOnksc29ydDpuJiZmP2I6dm9pZCAwLHZhbHVlOnd9KTt0KCJtaW4iLHYoIm1pbiIpLHtpZDp5LHNvcnQ6Yn0pfSxzdXBwb3J0c1ZhcmlhbnRzOih7bWF0Y2hWYXJpYW50OnIsdGhlbWU6ZX0pPT57cigic3VwcG9ydHMiLCh0PSIiKT0+e2xldCBpPUsodCksbj0vXlx3KlxzKlwoLy50ZXN0KGkpO3JldHVybiBpPW4/aS5yZXBsYWNlKC9cYihhbmR8b3J8bm90KVxiL2csIiAkMSAiKTppLG4/YEBzdXBwb3J0cyAke2l9YDooaS5pbmNsdWRlcygiOiIpfHwoaT1gJHtpfTogdmFyKC0tdHcpYCksaS5zdGFydHNXaXRoKCIoIikmJmkuZW5kc1dpdGgoIikiKXx8KGk9YCgke2l9KWApLGBAc3VwcG9ydHMgJHtpfWApfSx7dmFsdWVzOmUoInN1cHBvcnRzIik/P3t9fSl9LGhhc1ZhcmlhbnRzOih7bWF0Y2hWYXJpYW50OnIscHJlZml4OmV9KT0+e3IoImhhcyIsdD0+YCY6aGFzKCR7Syh0KX0pYCx7dmFsdWVzOnt9LFtQdF06e3Jlc3BlY3RQcmVmaXg6ITF9fSkscigiZ3JvdXAtaGFzIiwodCx7bW9kaWZpZXI6aX0pPT5pP2A6bWVyZ2UoJHtlKCIuZ3JvdXAiKX1cXC8ke2l9KTpoYXMoJHtLKHQpfSkgJmA6YDptZXJnZSgke2UoIi5ncm91cCIpfSk6aGFzKCR7Syh0KX0pICZgLHt2YWx1ZXM6e30sW1B0XTp7cmVzcGVjdFByZWZpeDohMX19KSxyKCJwZWVyLWhhcyIsKHQse21vZGlmaWVyOml9KT0+aT9gOm1lcmdlKCR7ZSgiLnBlZXIiKX1cXC8ke2l9KTpoYXMoJHtLKHQpfSkgfiAmYDpgOm1lcmdlKCR7ZSgiLnBlZXIiKX0pOmhhcygke0sodCl9KSB+ICZgLHt2YWx1ZXM6e30sW1B0XTp7cmVzcGVjdFByZWZpeDohMX19KX0sYXJpYVZhcmlhbnRzOih7bWF0Y2hWYXJpYW50OnIsdGhlbWU6ZX0pPT57cigiYXJpYSIsdD0+YCZbYXJpYS0ke1llKEsodCkpfV1gLHt2YWx1ZXM6ZSgiYXJpYSIpPz97fX0pLHIoImdyb3VwLWFyaWEiLCh0LHttb2RpZmllcjppfSk9Pmk/YDptZXJnZSguZ3JvdXBcXC8ke2l9KVthcmlhLSR7WWUoSyh0KSl9XSAmYDpgOm1lcmdlKC5ncm91cClbYXJpYS0ke1llKEsodCkpfV0gJmAse3ZhbHVlczplKCJhcmlhIik/P3t9fSkscigicGVlci1hcmlhIiwodCx7bW9kaWZpZXI6aX0pPT5pP2A6bWVyZ2UoLnBlZXJcXC8ke2l9KVthcmlhLSR7WWUoSyh0KSl9XSB+ICZgOmA6bWVyZ2UoLnBlZXIpW2FyaWEtJHtZZShLKHQpKX1dIH4gJmAse3ZhbHVlczplKCJhcmlhIik/P3t9fSl9LGRhdGFWYXJpYW50czooe21hdGNoVmFyaWFudDpyLHRoZW1lOmV9KT0+e3IoImRhdGEiLHQ9PmAmW2RhdGEtJHtZZShLKHQpKX1dYCx7dmFsdWVzOmUoImRhdGEiKT8/e319KSxyKCJncm91cC1kYXRhIiwodCx7bW9kaWZpZXI6aX0pPT5pP2A6bWVyZ2UoLmdyb3VwXFwvJHtpfSlbZGF0YS0ke1llKEsodCkpfV0gJmA6YDptZXJnZSguZ3JvdXApW2RhdGEtJHtZZShLKHQpKX1dICZgLHt2YWx1ZXM6ZSgiZGF0YSIpPz97fX0pLHIoInBlZXItZGF0YSIsKHQse21vZGlmaWVyOml9KT0+aT9gOm1lcmdlKC5wZWVyXFwvJHtpfSlbZGF0YS0ke1llKEsodCkpfV0gfiAmYDpgOm1lcmdlKC5wZWVyKVtkYXRhLSR7WWUoSyh0KSl9XSB+ICZgLHt2YWx1ZXM6ZSgiZGF0YSIpPz97fX0pfSxvcmllbnRhdGlvblZhcmlhbnRzOih7YWRkVmFyaWFudDpyfSk9PntyKCJwb3J0cmFpdCIsIkBtZWRpYSAob3JpZW50YXRpb246IHBvcnRyYWl0KSIpLHIoImxhbmRzY2FwZSIsIkBtZWRpYSAob3JpZW50YXRpb246IGxhbmRzY2FwZSkiKX0scHJlZmVyc0NvbnRyYXN0VmFyaWFudHM6KHthZGRWYXJpYW50OnJ9KT0+e3IoImNvbnRyYXN0LW1vcmUiLCJAbWVkaWEgKHByZWZlcnMtY29udHJhc3Q6IG1vcmUpIikscigiY29udHJhc3QtbGVzcyIsIkBtZWRpYSAocHJlZmVycy1jb250cmFzdDogbGVzcykiKX0sZm9yY2VkQ29sb3JzVmFyaWFudHM6KHthZGRWYXJpYW50OnJ9KT0+e3IoImZvcmNlZC1jb2xvcnMiLCJAbWVkaWEgKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSkiKX19LFhlPVsidHJhbnNsYXRlKHZhcigtLXR3LXRyYW5zbGF0ZS14KSwgdmFyKC0tdHctdHJhbnNsYXRlLXkpKSIsInJvdGF0ZSh2YXIoLS10dy1yb3RhdGUpKSIsInNrZXdYKHZhcigtLXR3LXNrZXcteCkpIiwic2tld1kodmFyKC0tdHctc2tldy15KSkiLCJzY2FsZVgodmFyKC0tdHctc2NhbGUteCkpIiwic2NhbGVZKHZhcigtLXR3LXNjYWxlLXkpKSJdLmpvaW4oIiAiKSxudD1bInZhcigtLXR3LWJsdXIpIiwidmFyKC0tdHctYnJpZ2h0bmVzcykiLCJ2YXIoLS10dy1jb250cmFzdCkiLCJ2YXIoLS10dy1ncmF5c2NhbGUpIiwidmFyKC0tdHctaHVlLXJvdGF0ZSkiLCJ2YXIoLS10dy1pbnZlcnQpIiwidmFyKC0tdHctc2F0dXJhdGUpIiwidmFyKC0tdHctc2VwaWEpIiwidmFyKC0tdHctZHJvcC1zaGFkb3cpIl0uam9pbigiICIpLGdlPVsidmFyKC0tdHctYmFja2Ryb3AtYmx1cikiLCJ2YXIoLS10dy1iYWNrZHJvcC1icmlnaHRuZXNzKSIsInZhcigtLXR3LWJhY2tkcm9wLWNvbnRyYXN0KSIsInZhcigtLXR3LWJhY2tkcm9wLWdyYXlzY2FsZSkiLCJ2YXIoLS10dy1iYWNrZHJvcC1odWUtcm90YXRlKSIsInZhcigtLXR3LWJhY2tkcm9wLWludmVydCkiLCJ2YXIoLS10dy1iYWNrZHJvcC1vcGFjaXR5KSIsInZhcigtLXR3LWJhY2tkcm9wLXNhdHVyYXRlKSIsInZhcigtLXR3LWJhY2tkcm9wLXNlcGlhKSJdLmpvaW4oIiAiKSx5aD17cHJlZmxpZ2h0Oih7YWRkQmFzZTpyfSk9PntsZXQgZT1lZS5wYXJzZShgKiw6OmFmdGVyLDo6YmVmb3Jle2JveC1zaXppbmc6Ym9yZGVyLWJveDtib3JkZXItd2lkdGg6MDtib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLWNvbG9yOnRoZW1lKCdib3JkZXJDb2xvci5ERUZBVUxUJywgY3VycmVudENvbG9yKX06OmFmdGVyLDo6YmVmb3Jley0tdHctY29udGVudDonJ306aG9zdCxodG1se2xpbmUtaGVpZ2h0OjEuNTstd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6MTAwJTstbW96LXRhYi1zaXplOjQ7dGFiLXNpemU6NDtmb250LWZhbWlseTp0aGVtZSgnZm9udEZhbWlseS5zYW5zJywgdWktc2Fucy1zZXJpZiwgc3lzdGVtLXVpLCBzYW5zLXNlcmlmLCAiQXBwbGUgQ29sb3IgRW1vamkiLCAiU2Vnb2UgVUkgRW1vamkiLCAiU2Vnb2UgVUkgU3ltYm9sIiwgIk5vdG8gQ29sb3IgRW1vamkiKTtmb250LWZlYXR1cmUtc2V0dGluZ3M6dGhlbWUoJ2ZvbnRGYW1pbHkuc2Fuc1sxXS5mb250RmVhdHVyZVNldHRpbmdzJywgbm9ybWFsKTtmb250LXZhcmlhdGlvbi1zZXR0aW5nczp0aGVtZSgnZm9udEZhbWlseS5zYW5zWzFdLmZvbnRWYXJpYXRpb25TZXR0aW5ncycsIG5vcm1hbCk7LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOnRyYW5zcGFyZW50fWJvZHl7bWFyZ2luOjA7bGluZS1oZWlnaHQ6aW5oZXJpdH1ocntoZWlnaHQ6MDtjb2xvcjppbmhlcml0O2JvcmRlci10b3Atd2lkdGg6MXB4fWFiYnI6d2hlcmUoW3RpdGxlXSl7dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZSBkb3R0ZWR9aDEsaDIsaDMsaDQsaDUsaDZ7Zm9udC1zaXplOmluaGVyaXQ7Zm9udC13ZWlnaHQ6aW5oZXJpdH1he2NvbG9yOmluaGVyaXQ7dGV4dC1kZWNvcmF0aW9uOmluaGVyaXR9YixzdHJvbmd7Zm9udC13ZWlnaHQ6Ym9sZGVyfWNvZGUsa2JkLHByZSxzYW1we2ZvbnQtZmFtaWx5OnRoZW1lKCdmb250RmFtaWx5Lm1vbm8nLCB1aS1tb25vc3BhY2UsIFNGTW9uby1SZWd1bGFyLCBNZW5sbywgTW9uYWNvLCBDb25zb2xhcywgIkxpYmVyYXRpb24gTW9ubyIsICJDb3VyaWVyIE5ldyIsIG1vbm9zcGFjZSk7Zm9udC1mZWF0dXJlLXNldHRpbmdzOnRoZW1lKCdmb250RmFtaWx5Lm1vbm9bMV0uZm9udEZlYXR1cmVTZXR0aW5ncycsIG5vcm1hbCk7Zm9udC12YXJpYXRpb24tc2V0dGluZ3M6dGhlbWUoJ2ZvbnRGYW1pbHkubW9ub1sxXS5mb250VmFyaWF0aW9uU2V0dGluZ3MnLCBub3JtYWwpO2ZvbnQtc2l6ZToxZW19c21hbGx7Zm9udC1zaXplOjgwJX1zdWIsc3Vwe2ZvbnQtc2l6ZTo3NSU7bGluZS1oZWlnaHQ6MDtwb3NpdGlvbjpyZWxhdGl2ZTt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZX1zdWJ7Ym90dG9tOi0uMjVlbX1zdXB7dG9wOi0uNWVtfXRhYmxle3RleHQtaW5kZW50OjA7Ym9yZGVyLWNvbG9yOmluaGVyaXQ7Ym9yZGVyLWNvbGxhcHNlOmNvbGxhcHNlfWJ1dHRvbixpbnB1dCxvcHRncm91cCxzZWxlY3QsdGV4dGFyZWF7Zm9udC1mYW1pbHk6aW5oZXJpdDtmb250LWZlYXR1cmUtc2V0dGluZ3M6aW5oZXJpdDtmb250LXZhcmlhdGlvbi1zZXR0aW5nczppbmhlcml0O2ZvbnQtc2l6ZToxMDAlO2ZvbnQtd2VpZ2h0OmluaGVyaXQ7bGluZS1oZWlnaHQ6aW5oZXJpdDtsZXR0ZXItc3BhY2luZzppbmhlcml0O2NvbG9yOmluaGVyaXQ7bWFyZ2luOjA7cGFkZGluZzowfWJ1dHRvbixzZWxlY3R7dGV4dC10cmFuc2Zvcm06bm9uZX1idXR0b24saW5wdXQ6d2hlcmUoW3R5cGU9YnV0dG9uXSksaW5wdXQ6d2hlcmUoW3R5cGU9cmVzZXRdKSxpbnB1dDp3aGVyZShbdHlwZT1zdWJtaXRdKXstd2Via2l0LWFwcGVhcmFuY2U6YnV0dG9uO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7YmFja2dyb3VuZC1pbWFnZTpub25lfTotbW96LWZvY3VzcmluZ3tvdXRsaW5lOmF1dG99Oi1tb3otdWktaW52YWxpZHtib3gtc2hhZG93Om5vbmV9cHJvZ3Jlc3N7dmVydGljYWwtYWxpZ246YmFzZWxpbmV9Ojotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLDo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbntoZWlnaHQ6YXV0b31bdHlwZT1zZWFyY2hdey13ZWJraXQtYXBwZWFyYW5jZTp0ZXh0ZmllbGQ7b3V0bGluZS1vZmZzZXQ6LTJweH06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb257LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmV9Ojotd2Via2l0LWZpbGUtdXBsb2FkLWJ1dHRvbnstd2Via2l0LWFwcGVhcmFuY2U6YnV0dG9uO2ZvbnQ6aW5oZXJpdH1zdW1tYXJ5e2Rpc3BsYXk6bGlzdC1pdGVtfWJsb2NrcXVvdGUsZGQsZGwsZmlndXJlLGgxLGgyLGgzLGg0LGg1LGg2LGhyLHAscHJle21hcmdpbjowfWZpZWxkc2V0e21hcmdpbjowO3BhZGRpbmc6MH1sZWdlbmR7cGFkZGluZzowfW1lbnUsb2wsdWx7bGlzdC1zdHlsZTpub25lO21hcmdpbjowO3BhZGRpbmc6MH1kaWFsb2d7cGFkZGluZzowfXRleHRhcmVhe3Jlc2l6ZTp2ZXJ0aWNhbH1pbnB1dDo6cGxhY2Vob2xkZXIsdGV4dGFyZWE6OnBsYWNlaG9sZGVye29wYWNpdHk6MTtjb2xvcjp0aGVtZSgnY29sb3JzLmdyYXkuNCcsICM5Y2EzYWYpfVtyb2xlPWJ1dHRvbl0sYnV0dG9ue2N1cnNvcjpwb2ludGVyfTpkaXNhYmxlZHtjdXJzb3I6ZGVmYXVsdH1hdWRpbyxjYW52YXMsZW1iZWQsaWZyYW1lLGltZyxvYmplY3Qsc3ZnLHZpZGVve2Rpc3BsYXk6YmxvY2s7dmVydGljYWwtYWxpZ246bWlkZGxlfWltZyx2aWRlb3ttYXgtd2lkdGg6MTAwJTtoZWlnaHQ6YXV0b31baGlkZGVuXTp3aGVyZSg6bm90KFtoaWRkZW49dW50aWwtZm91bmRdKSl7ZGlzcGxheTpub25lfWApO3IoW2VlLmNvbW1lbnQoe3RleHQ6YCEgdGFpbHdpbmRjc3MgdiR7ZGh9IHwgTUlUIExpY2Vuc2UgfCBodHRwczovL3RhaWx3aW5kY3NzLmNvbWB9KSwuLi5lLm5vZGVzXSl9LGNvbnRhaW5lcjooKCk9PntmdW5jdGlvbiByKHQ9W10pe3JldHVybiB0LmZsYXRNYXAoaT0+aS52YWx1ZXMubWFwKG49Pm4ubWluKSkuZmlsdGVyKGk9PmkhPT12b2lkIDApfWZ1bmN0aW9uIGUodCxpLG4pe2lmKHR5cGVvZiBuPT0idW5kZWZpbmVkIilyZXR1cm5bXTtpZighKHR5cGVvZiBuPT0ib2JqZWN0IiYmbiE9PW51bGwpKXJldHVyblt7c2NyZWVuOiJERUZBVUxUIixtaW5XaWR0aDowLHBhZGRpbmc6bn1dO2xldCBzPVtdO24uREVGQVVMVCYmcy5wdXNoKHtzY3JlZW46IkRFRkFVTFQiLG1pbldpZHRoOjAscGFkZGluZzpuLkRFRkFVTFR9KTtmb3IobGV0IGEgb2YgdClmb3IobGV0IG8gb2YgaSlmb3IobGV0e21pbjpsfW9mIG8udmFsdWVzKWw9PT1hJiZzLnB1c2goe21pbldpZHRoOmEscGFkZGluZzpuW28ubmFtZV19KTtyZXR1cm4gc31yZXR1cm4gZnVuY3Rpb24oe2FkZENvbXBvbmVudHM6dCx0aGVtZTppfSl7bGV0IG49UnQoaSgiY29udGFpbmVyLnNjcmVlbnMiLGkoInNjcmVlbnMiKSkpLHM9cihuKSxhPWUocyxuLGkoImNvbnRhaW5lci5wYWRkaW5nIikpLG89Yz0+e2xldCBmPWEuZmluZChkPT5kLm1pbldpZHRoPT09Yyk7cmV0dXJuIGY/e3BhZGRpbmdSaWdodDpmLnBhZGRpbmcscGFkZGluZ0xlZnQ6Zi5wYWRkaW5nfTp7fX0sbD1BcnJheS5mcm9tKG5ldyBTZXQocy5zbGljZSgpLnNvcnQoKGMsZik9PnBhcnNlSW50KGMpLXBhcnNlSW50KGYpKSkpLm1hcChjPT4oe1tgQG1lZGlhIChtaW4td2lkdGg6ICR7Y30pYF06eyIuY29udGFpbmVyIjp7Im1heC13aWR0aCI6YywuLi5vKGMpfX19KSk7dChbeyIuY29udGFpbmVyIjpPYmplY3QuYXNzaWduKHt3aWR0aDoiMTAwJSJ9LGkoImNvbnRhaW5lci5jZW50ZXIiLCExKT97bWFyZ2luUmlnaHQ6ImF1dG8iLG1hcmdpbkxlZnQ6ImF1dG8ifTp7fSxvKDApKX0sLi4ubF0pfX0pKCksYWNjZXNzaWJpbGl0eTooe2FkZFV0aWxpdGllczpyfSk9PntyKHsiLnNyLW9ubHkiOntwb3NpdGlvbjoiYWJzb2x1dGUiLHdpZHRoOiIxcHgiLGhlaWdodDoiMXB4IixwYWRkaW5nOiIwIixtYXJnaW46Ii0xcHgiLG92ZXJmbG93OiJoaWRkZW4iLGNsaXA6InJlY3QoMCwgMCwgMCwgMCkiLHdoaXRlU3BhY2U6Im5vd3JhcCIsYm9yZGVyV2lkdGg6IjAifSwiLm5vdC1zci1vbmx5Ijp7cG9zaXRpb246InN0YXRpYyIsd2lkdGg6ImF1dG8iLGhlaWdodDoiYXV0byIscGFkZGluZzoiMCIsbWFyZ2luOiIwIixvdmVyZmxvdzoidmlzaWJsZSIsY2xpcDoiYXV0byIsd2hpdGVTcGFjZToibm9ybWFsIn19KX0scG9pbnRlckV2ZW50czooe2FkZFV0aWxpdGllczpyfSk9PntyKHsiLnBvaW50ZXItZXZlbnRzLW5vbmUiOnsicG9pbnRlci1ldmVudHMiOiJub25lIn0sIi5wb2ludGVyLWV2ZW50cy1hdXRvIjp7InBvaW50ZXItZXZlbnRzIjoiYXV0byJ9fSl9LHZpc2liaWxpdHk6KHthZGRVdGlsaXRpZXM6cn0pPT57cih7Ii52aXNpYmxlIjp7dmlzaWJpbGl0eToidmlzaWJsZSJ9LCIuaW52aXNpYmxlIjp7dmlzaWJpbGl0eToiaGlkZGVuIn0sIi5jb2xsYXBzZSI6e3Zpc2liaWxpdHk6ImNvbGxhcHNlIn19KX0scG9zaXRpb246KHthZGRVdGlsaXRpZXM6cn0pPT57cih7Ii5zdGF0aWMiOntwb3NpdGlvbjoic3RhdGljIn0sIi5maXhlZCI6e3Bvc2l0aW9uOiJmaXhlZCJ9LCIuYWJzb2x1dGUiOntwb3NpdGlvbjoiYWJzb2x1dGUifSwiLnJlbGF0aXZlIjp7cG9zaXRpb246InJlbGF0aXZlIn0sIi5zdGlja3kiOntwb3NpdGlvbjoic3RpY2t5In19KX0saW5zZXQ6TCgiaW5zZXQiLFtbImluc2V0IixbImluc2V0Il1dLFtbImluc2V0LXgiLFsibGVmdCIsInJpZ2h0Il1dLFsiaW5zZXQteSIsWyJ0b3AiLCJib3R0b20iXV1dLFtbInN0YXJ0IixbImluc2V0LWlubGluZS1zdGFydCJdXSxbImVuZCIsWyJpbnNldC1pbmxpbmUtZW5kIl1dLFsidG9wIixbInRvcCJdXSxbInJpZ2h0IixbInJpZ2h0Il1dLFsiYm90dG9tIixbImJvdHRvbSJdXSxbImxlZnQiLFsibGVmdCJdXV1dLHtzdXBwb3J0c05lZ2F0aXZlVmFsdWVzOiEwfSksaXNvbGF0aW9uOih7YWRkVXRpbGl0aWVzOnJ9KT0+e3IoeyIuaXNvbGF0ZSI6e2lzb2xhdGlvbjoiaXNvbGF0ZSJ9LCIuaXNvbGF0aW9uLWF1dG8iOntpc29sYXRpb246ImF1dG8ifX0pfSx6SW5kZXg6TCgiekluZGV4IixbWyJ6IixbInpJbmRleCJdXV0se3N1cHBvcnRzTmVnYXRpdmVWYWx1ZXM6ITB9KSxvcmRlcjpMKCJvcmRlciIsdm9pZCAwLHtzdXBwb3J0c05lZ2F0aXZlVmFsdWVzOiEwfSksZ3JpZENvbHVtbjpMKCJncmlkQ29sdW1uIixbWyJjb2wiLFsiZ3JpZENvbHVtbiJdXV0pLGdyaWRDb2x1bW5TdGFydDpMKCJncmlkQ29sdW1uU3RhcnQiLFtbImNvbC1zdGFydCIsWyJncmlkQ29sdW1uU3RhcnQiXV1dLHtzdXBwb3J0c05lZ2F0aXZlVmFsdWVzOiEwfSksZ3JpZENvbHVtbkVuZDpMKCJncmlkQ29sdW1uRW5kIixbWyJjb2wtZW5kIixbImdyaWRDb2x1bW5FbmQiXV1dLHtzdXBwb3J0c05lZ2F0aXZlVmFsdWVzOiEwfSksZ3JpZFJvdzpMKCJncmlkUm93IixbWyJyb3ciLFsiZ3JpZFJvdyJdXV0pLGdyaWRSb3dTdGFydDpMKCJncmlkUm93U3RhcnQiLFtbInJvdy1zdGFydCIsWyJncmlkUm93U3RhcnQiXV1dLHtzdXBwb3J0c05lZ2F0aXZlVmFsdWVzOiEwfSksZ3JpZFJvd0VuZDpMKCJncmlkUm93RW5kIixbWyJyb3ctZW5kIixbImdyaWRSb3dFbmQiXV1dLHtzdXBwb3J0c05lZ2F0aXZlVmFsdWVzOiEwfSksZmxvYXQ6KHthZGRVdGlsaXRpZXM6cn0pPT57cih7Ii5mbG9hdC1zdGFydCI6e2Zsb2F0OiJpbmxpbmUtc3RhcnQifSwiLmZsb2F0LWVuZCI6e2Zsb2F0OiJpbmxpbmUtZW5kIn0sIi5mbG9hdC1yaWdodCI6e2Zsb2F0OiJyaWdodCJ9LCIuZmxvYXQtbGVmdCI6e2Zsb2F0OiJsZWZ0In0sIi5mbG9hdC1ub25lIjp7ZmxvYXQ6Im5vbmUifX0pfSxjbGVhcjooe2FkZFV0aWxpdGllczpyfSk9PntyKHsiLmNsZWFyLXN0YXJ0Ijp7Y2xlYXI6ImlubGluZS1zdGFydCJ9LCIuY2xlYXItZW5kIjp7Y2xlYXI6ImlubGluZS1lbmQifSwiLmNsZWFyLWxlZnQiOntjbGVhcjoibGVmdCJ9LCIuY2xlYXItcmlnaHQiOntjbGVhcjoicmlnaHQifSwiLmNsZWFyLWJvdGgiOntjbGVhcjoiYm90aCJ9LCIuY2xlYXItbm9uZSI6e2NsZWFyOiJub25lIn19KX0sbWFyZ2luOkwoIm1hcmdpbiIsW1sibSIsWyJtYXJnaW4iXV0sW1sibXgiLFsibWFyZ2luLWxlZnQiLCJtYXJnaW4tcmlnaHQiXV0sWyJteSIsWyJtYXJnaW4tdG9wIiwibWFyZ2luLWJvdHRvbSJdXV0sW1sibXMiLFsibWFyZ2luLWlubGluZS1zdGFydCJdXSxbIm1lIixbIm1hcmdpbi1pbmxpbmUtZW5kIl1dLFsibXQiLFsibWFyZ2luLXRvcCJdXSxbIm1yIixbIm1hcmdpbi1yaWdodCJdXSxbIm1iIixbIm1hcmdpbi1ib3R0b20iXV0sWyJtbCIsWyJtYXJnaW4tbGVmdCJdXV1dLHtzdXBwb3J0c05lZ2F0aXZlVmFsdWVzOiEwfSksYm94U2l6aW5nOih7YWRkVXRpbGl0aWVzOnJ9KT0+e3IoeyIuYm94LWJvcmRlciI6eyJib3gtc2l6aW5nIjoiYm9yZGVyLWJveCJ9LCIuYm94LWNvbnRlbnQiOnsiYm94LXNpemluZyI6ImNvbnRlbnQtYm94In19KX0sbGluZUNsYW1wOih7bWF0Y2hVdGlsaXRpZXM6cixhZGRVdGlsaXRpZXM6ZSx0aGVtZTp0fSk9PntyKHsibGluZS1jbGFtcCI6aT0+KHtvdmVyZmxvdzoiaGlkZGVuIixkaXNwbGF5OiItd2Via2l0LWJveCIsIi13ZWJraXQtYm94LW9yaWVudCI6InZlcnRpY2FsIiwiLXdlYmtpdC1saW5lLWNsYW1wIjpgJHtpfWB9KX0se3ZhbHVlczp0KCJsaW5lQ2xhbXAiKX0pLGUoeyIubGluZS1jbGFtcC1ub25lIjp7b3ZlcmZsb3c6InZpc2libGUiLGRpc3BsYXk6ImJsb2NrIiwiLXdlYmtpdC1ib3gtb3JpZW50IjoiaG9yaXpvbnRhbCIsIi13ZWJraXQtbGluZS1jbGFtcCI6Im5vbmUifX0pfSxkaXNwbGF5Oih7YWRkVXRpbGl0aWVzOnJ9KT0+e3IoeyIuYmxvY2siOntkaXNwbGF5OiJibG9jayJ9LCIuaW5saW5lLWJsb2NrIjp7ZGlzcGxheToiaW5saW5lLWJsb2NrIn0sIi5pbmxpbmUiOntkaXNwbGF5OiJpbmxpbmUifSwiLmZsZXgiOntkaXNwbGF5OiJmbGV4In0sIi5pbmxpbmUtZmxleCI6e2Rpc3BsYXk6ImlubGluZS1mbGV4In0sIi50YWJsZSI6e2Rpc3BsYXk6InRhYmxlIn0sIi5pbmxpbmUtdGFibGUiOntkaXNwbGF5OiJpbmxpbmUtdGFibGUifSwiLnRhYmxlLWNhcHRpb24iOntkaXNwbGF5OiJ0YWJsZS1jYXB0aW9uIn0sIi50YWJsZS1jZWxsIjp7ZGlzcGxheToidGFibGUtY2VsbCJ9LCIudGFibGUtY29sdW1uIjp7ZGlzcGxheToidGFibGUtY29sdW1uIn0sIi50YWJsZS1jb2x1bW4tZ3JvdXAiOntkaXNwbGF5OiJ0YWJsZS1jb2x1bW4tZ3JvdXAifSwiLnRhYmxlLWZvb3Rlci1ncm91cCI6e2Rpc3BsYXk6InRhYmxlLWZvb3Rlci1ncm91cCJ9LCIudGFibGUtaGVhZGVyLWdyb3VwIjp7ZGlzcGxheToidGFibGUtaGVhZGVyLWdyb3VwIn0sIi50YWJsZS1yb3ctZ3JvdXAiOntkaXNwbGF5OiJ0YWJsZS1yb3ctZ3JvdXAifSwiLnRhYmxlLXJvdyI6e2Rpc3BsYXk6InRhYmxlLXJvdyJ9LCIuZmxvdy1yb290Ijp7ZGlzcGxheToiZmxvdy1yb290In0sIi5ncmlkIjp7ZGlzcGxheToiZ3JpZCJ9LCIuaW5saW5lLWdyaWQiOntkaXNwbGF5OiJpbmxpbmUtZ3JpZCJ9LCIuY29udGVudHMiOntkaXNwbGF5OiJjb250ZW50cyJ9LCIubGlzdC1pdGVtIjp7ZGlzcGxheToibGlzdC1pdGVtIn0sIi5oaWRkZW4iOntkaXNwbGF5OiJub25lIn19KX0sYXNwZWN0UmF0aW86TCgiYXNwZWN0UmF0aW8iLFtbImFzcGVjdCIsWyJhc3BlY3QtcmF0aW8iXV1dKSxzaXplOkwoInNpemUiLFtbInNpemUiLFsid2lkdGgiLCJoZWlnaHQiXV1dKSxoZWlnaHQ6TCgiaGVpZ2h0IixbWyJoIixbImhlaWdodCJdXV0pLG1heEhlaWdodDpMKCJtYXhIZWlnaHQiLFtbIm1heC1oIixbIm1heEhlaWdodCJdXV0pLG1pbkhlaWdodDpMKCJtaW5IZWlnaHQiLFtbIm1pbi1oIixbIm1pbkhlaWdodCJdXV0pLHdpZHRoOkwoIndpZHRoIixbWyJ3IixbIndpZHRoIl1dXSksbWluV2lkdGg6TCgibWluV2lkdGgiLFtbIm1pbi13IixbIm1pbldpZHRoIl1dXSksbWF4V2lkdGg6TCgibWF4V2lkdGgiLFtbIm1heC13IixbIm1heFdpZHRoIl1dXSksZmxleDpMKCJmbGV4IiksZmxleFNocmluazpMKCJmbGV4U2hyaW5rIixbWyJmbGV4LXNocmluayIsWyJmbGV4LXNocmluayJdXSxbInNocmluayIsWyJmbGV4LXNocmluayJdXV0pLGZsZXhHcm93OkwoImZsZXhHcm93IixbWyJmbGV4LWdyb3ciLFsiZmxleC1ncm93Il1dLFsiZ3JvdyIsWyJmbGV4LWdyb3ciXV1dKSxmbGV4QmFzaXM6TCgiZmxleEJhc2lzIixbWyJiYXNpcyIsWyJmbGV4LWJhc2lzIl1dXSksdGFibGVMYXlvdXQ6KHthZGRVdGlsaXRpZXM6cn0pPT57cih7Ii50YWJsZS1hdXRvIjp7InRhYmxlLWxheW91dCI6ImF1dG8ifSwiLnRhYmxlLWZpeGVkIjp7InRhYmxlLWxheW91dCI6ImZpeGVkIn19KX0sY2FwdGlvblNpZGU6KHthZGRVdGlsaXRpZXM6cn0pPT57cih7Ii5jYXB0aW9uLXRvcCI6eyJjYXB0aW9uLXNpZGUiOiJ0b3AifSwiLmNhcHRpb24tYm90dG9tIjp7ImNhcHRpb24tc2lkZSI6ImJvdHRvbSJ9fSl9LGJvcmRlckNvbGxhcHNlOih7YWRkVXRpbGl0aWVzOnJ9KT0+e3IoeyIuYm9yZGVyLWNvbGxhcHNlIjp7ImJvcmRlci1jb2xsYXBzZSI6ImNvbGxhcHNlIn0sIi5ib3JkZXItc2VwYXJhdGUiOnsiYm9yZGVyLWNvbGxhcHNlIjoic2VwYXJhdGUifX0pfSxib3JkZXJTcGFjaW5nOih7YWRkRGVmYXVsdHM6cixtYXRjaFV0aWxpdGllczplLHRoZW1lOnR9KT0+e3IoImJvcmRlci1zcGFjaW5nIix7Ii0tdHctYm9yZGVyLXNwYWNpbmcteCI6MCwiLS10dy1ib3JkZXItc3BhY2luZy15IjowfSksZSh7ImJvcmRlci1zcGFjaW5nIjppPT4oeyItLXR3LWJvcmRlci1zcGFjaW5nLXgiOmksIi0tdHctYm9yZGVyLXNwYWNpbmcteSI6aSwiQGRlZmF1bHRzIGJvcmRlci1zcGFjaW5nIjp7fSwiYm9yZGVyLXNwYWNpbmciOiJ2YXIoLS10dy1ib3JkZXItc3BhY2luZy14KSB2YXIoLS10dy1ib3JkZXItc3BhY2luZy15KSJ9KSwiYm9yZGVyLXNwYWNpbmcteCI6aT0+KHsiLS10dy1ib3JkZXItc3BhY2luZy14IjppLCJAZGVmYXVsdHMgYm9yZGVyLXNwYWNpbmciOnt9LCJib3JkZXItc3BhY2luZyI6InZhcigtLXR3LWJvcmRlci1zcGFjaW5nLXgpIHZhcigtLXR3LWJvcmRlci1zcGFjaW5nLXkpIn0pLCJib3JkZXItc3BhY2luZy15IjppPT4oeyItLXR3LWJvcmRlci1zcGFjaW5nLXkiOmksIkBkZWZhdWx0cyBib3JkZXItc3BhY2luZyI6e30sImJvcmRlci1zcGFjaW5nIjoidmFyKC0tdHctYm9yZGVyLXNwYWNpbmcteCkgdmFyKC0tdHctYm9yZGVyLXNwYWNpbmcteSkifSl9LHt2YWx1ZXM6dCgiYm9yZGVyU3BhY2luZyIpfSl9LHRyYW5zZm9ybU9yaWdpbjpMKCJ0cmFuc2Zvcm1PcmlnaW4iLFtbIm9yaWdpbiIsWyJ0cmFuc2Zvcm1PcmlnaW4iXV1dKSx0cmFuc2xhdGU6TCgidHJhbnNsYXRlIixbW1sidHJhbnNsYXRlLXgiLFtbIkBkZWZhdWx0cyB0cmFuc2Zvcm0iLHt9XSwiLS10dy10cmFuc2xhdGUteCIsWyJ0cmFuc2Zvcm0iLFhlXV1dLFsidHJhbnNsYXRlLXkiLFtbIkBkZWZhdWx0cyB0cmFuc2Zvcm0iLHt9XSwiLS10dy10cmFuc2xhdGUteSIsWyJ0cmFuc2Zvcm0iLFhlXV1dXV0se3N1cHBvcnRzTmVnYXRpdmVWYWx1ZXM6ITB9KSxyb3RhdGU6TCgicm90YXRlIixbWyJyb3RhdGUiLFtbIkBkZWZhdWx0cyB0cmFuc2Zvcm0iLHt9XSwiLS10dy1yb3RhdGUiLFsidHJhbnNmb3JtIixYZV1dXV0se3N1cHBvcnRzTmVnYXRpdmVWYWx1ZXM6ITB9KSxza2V3OkwoInNrZXciLFtbWyJza2V3LXgiLFtbIkBkZWZhdWx0cyB0cmFuc2Zvcm0iLHt9XSwiLS10dy1za2V3LXgiLFsidHJhbnNmb3JtIixYZV1dXSxbInNrZXcteSIsW1siQGRlZmF1bHRzIHRyYW5zZm9ybSIse31dLCItLXR3LXNrZXcteSIsWyJ0cmFuc2Zvcm0iLFhlXV1dXV0se3N1cHBvcnRzTmVnYXRpdmVWYWx1ZXM6ITB9KSxzY2FsZTpMKCJzY2FsZSIsW1sic2NhbGUiLFtbIkBkZWZhdWx0cyB0cmFuc2Zvcm0iLHt9XSwiLS10dy1zY2FsZS14IiwiLS10dy1zY2FsZS15IixbInRyYW5zZm9ybSIsWGVdXV0sW1sic2NhbGUteCIsW1siQGRlZmF1bHRzIHRyYW5zZm9ybSIse31dLCItLXR3LXNjYWxlLXgiLFsidHJhbnNmb3JtIixYZV1dXSxbInNjYWxlLXkiLFtbIkBkZWZhdWx0cyB0cmFuc2Zvcm0iLHt9XSwiLS10dy1zY2FsZS15IixbInRyYW5zZm9ybSIsWGVdXV1dXSx7c3VwcG9ydHNOZWdhdGl2ZVZhbHVlczohMH0pLHRyYW5zZm9ybTooe2FkZERlZmF1bHRzOnIsYWRkVXRpbGl0aWVzOmV9KT0+e3IoInRyYW5zZm9ybSIseyItLXR3LXRyYW5zbGF0ZS14IjoiMCIsIi0tdHctdHJhbnNsYXRlLXkiOiIwIiwiLS10dy1yb3RhdGUiOiIwIiwiLS10dy1za2V3LXgiOiIwIiwiLS10dy1za2V3LXkiOiIwIiwiLS10dy1zY2FsZS14IjoiMSIsIi0tdHctc2NhbGUteSI6IjEifSksZSh7Ii50cmFuc2Zvcm0iOnsiQGRlZmF1bHRzIHRyYW5zZm9ybSI6e30sdHJhbnNmb3JtOlhlfSwiLnRyYW5zZm9ybS1jcHUiOnt0cmFuc2Zvcm06WGV9LCIudHJhbnNmb3JtLWdwdSI6e3RyYW5zZm9ybTpYZS5yZXBsYWNlKCJ0cmFuc2xhdGUodmFyKC0tdHctdHJhbnNsYXRlLXgpLCB2YXIoLS10dy10cmFuc2xhdGUteSkpIiwidHJhbnNsYXRlM2QodmFyKC0tdHctdHJhbnNsYXRlLXgpLCB2YXIoLS10dy10cmFuc2xhdGUteSksIDApIil9LCIudHJhbnNmb3JtLW5vbmUiOnt0cmFuc2Zvcm06Im5vbmUifX0pfSxhbmltYXRpb246KHttYXRjaFV0aWxpdGllczpyLHRoZW1lOmUsY29uZmlnOnR9KT0+e2xldCBpPXM9PlRlKHQoInByZWZpeCIpK3MpLG49T2JqZWN0LmZyb21FbnRyaWVzKE9iamVjdC5lbnRyaWVzKGUoImtleWZyYW1lcyIpPz97fSkubWFwKChbcyxhXSk9PltzLHtbYEBrZXlmcmFtZXMgJHtpKHMpfWBdOmF9XSkpO3Ioe2FuaW1hdGU6cz0+e2xldCBhPU1vKHMpO3JldHVyblsuLi5hLmZsYXRNYXAobz0+bltvLm5hbWVdKSx7YW5pbWF0aW9uOmEubWFwKCh7bmFtZTpvLHZhbHVlOmx9KT0+bz09PXZvaWQgMHx8bltvXT09PXZvaWQgMD9sOmwucmVwbGFjZShvLGkobykpKS5qb2luKCIsICIpfV19fSx7dmFsdWVzOmUoImFuaW1hdGlvbiIpfSl9LGN1cnNvcjpMKCJjdXJzb3IiKSx0b3VjaEFjdGlvbjooe2FkZERlZmF1bHRzOnIsYWRkVXRpbGl0aWVzOmV9KT0+e3IoInRvdWNoLWFjdGlvbiIseyItLXR3LXBhbi14IjoiICIsIi0tdHctcGFuLXkiOiIgIiwiLS10dy1waW5jaC16b29tIjoiICJ9KTtsZXQgdD0idmFyKC0tdHctcGFuLXgpIHZhcigtLXR3LXBhbi15KSB2YXIoLS10dy1waW5jaC16b29tKSI7ZSh7Ii50b3VjaC1hdXRvIjp7InRvdWNoLWFjdGlvbiI6ImF1dG8ifSwiLnRvdWNoLW5vbmUiOnsidG91Y2gtYWN0aW9uIjoibm9uZSJ9LCIudG91Y2gtcGFuLXgiOnsiQGRlZmF1bHRzIHRvdWNoLWFjdGlvbiI6e30sIi0tdHctcGFuLXgiOiJwYW4teCIsInRvdWNoLWFjdGlvbiI6dH0sIi50b3VjaC1wYW4tbGVmdCI6eyJAZGVmYXVsdHMgdG91Y2gtYWN0aW9uIjp7fSwiLS10dy1wYW4teCI6InBhbi1sZWZ0IiwidG91Y2gtYWN0aW9uIjp0fSwiLnRvdWNoLXBhbi1yaWdodCI6eyJAZGVmYXVsdHMgdG91Y2gtYWN0aW9uIjp7fSwiLS10dy1wYW4teCI6InBhbi1yaWdodCIsInRvdWNoLWFjdGlvbiI6dH0sIi50b3VjaC1wYW4teSI6eyJAZGVmYXVsdHMgdG91Y2gtYWN0aW9uIjp7fSwiLS10dy1wYW4teSI6InBhbi15IiwidG91Y2gtYWN0aW9uIjp0fSwiLnRvdWNoLXBhbi11cCI6eyJAZGVmYXVsdHMgdG91Y2gtYWN0aW9uIjp7fSwiLS10dy1wYW4teSI6InBhbi11cCIsInRvdWNoLWFjdGlvbiI6dH0sIi50b3VjaC1wYW4tZG93biI6eyJAZGVmYXVsdHMgdG91Y2gtYWN0aW9uIjp7fSwiLS10dy1wYW4teSI6InBhbi1kb3duIiwidG91Y2gtYWN0aW9uIjp0fSwiLnRvdWNoLXBpbmNoLXpvb20iOnsiQGRlZmF1bHRzIHRvdWNoLWFjdGlvbiI6e30sIi0tdHctcGluY2gtem9vbSI6InBpbmNoLXpvb20iLCJ0b3VjaC1hY3Rpb24iOnR9LCIudG91Y2gtbWFuaXB1bGF0aW9uIjp7InRvdWNoLWFjdGlvbiI6Im1hbmlwdWxhdGlvbiJ9fSl9LHVzZXJTZWxlY3Q6KHthZGRVdGlsaXRpZXM6cn0pPT57cih7Ii5zZWxlY3Qtbm9uZSI6eyJ1c2VyLXNlbGVjdCI6Im5vbmUifSwiLnNlbGVjdC10ZXh0Ijp7InVzZXItc2VsZWN0IjoidGV4dCJ9LCIuc2VsZWN0LWFsbCI6eyJ1c2VyLXNlbGVjdCI6ImFsbCJ9LCIuc2VsZWN0LWF1dG8iOnsidXNlci1zZWxlY3QiOiJhdXRvIn19KX0scmVzaXplOih7YWRkVXRpbGl0aWVzOnJ9KT0+e3IoeyIucmVzaXplLW5vbmUiOntyZXNpemU6Im5vbmUifSwiLnJlc2l6ZS15Ijp7cmVzaXplOiJ2ZXJ0aWNhbCJ9LCIucmVzaXplLXgiOntyZXNpemU6Imhvcml6b250YWwifSwiLnJlc2l6ZSI6e3Jlc2l6ZToiYm90aCJ9fSl9LHNjcm9sbFNuYXBUeXBlOih7YWRkRGVmYXVsdHM6cixhZGRVdGlsaXRpZXM6ZX0pPT57cigic2Nyb2xsLXNuYXAtdHlwZSIseyItLXR3LXNjcm9sbC1zbmFwLXN0cmljdG5lc3MiOiJwcm94aW1pdHkifSksZSh7Ii5zbmFwLW5vbmUiOnsic2Nyb2xsLXNuYXAtdHlwZSI6Im5vbmUifSwiLnNuYXAteCI6eyJAZGVmYXVsdHMgc2Nyb2xsLXNuYXAtdHlwZSI6e30sInNjcm9sbC1zbmFwLXR5cGUiOiJ4IHZhcigtLXR3LXNjcm9sbC1zbmFwLXN0cmljdG5lc3MpIn0sIi5zbmFwLXkiOnsiQGRlZmF1bHRzIHNjcm9sbC1zbmFwLXR5cGUiOnt9LCJzY3JvbGwtc25hcC10eXBlIjoieSB2YXIoLS10dy1zY3JvbGwtc25hcC1zdHJpY3RuZXNzKSJ9LCIuc25hcC1ib3RoIjp7IkBkZWZhdWx0cyBzY3JvbGwtc25hcC10eXBlIjp7fSwic2Nyb2xsLXNuYXAtdHlwZSI6ImJvdGggdmFyKC0tdHctc2Nyb2xsLXNuYXAtc3RyaWN0bmVzcykifSwiLnNuYXAtbWFuZGF0b3J5Ijp7Ii0tdHctc2Nyb2xsLXNuYXAtc3RyaWN0bmVzcyI6Im1hbmRhdG9yeSJ9LCIuc25hcC1wcm94aW1pdHkiOnsiLS10dy1zY3JvbGwtc25hcC1zdHJpY3RuZXNzIjoicHJveGltaXR5In19KX0sc2Nyb2xsU25hcEFsaWduOih7YWRkVXRpbGl0aWVzOnJ9KT0+e3IoeyIuc25hcC1zdGFydCI6eyJzY3JvbGwtc25hcC1hbGlnbiI6InN0YXJ0In0sIi5zbmFwLWVuZCI6eyJzY3JvbGwtc25hcC1hbGlnbiI6ImVuZCJ9LCIuc25hcC1jZW50ZXIiOnsic2Nyb2xsLXNuYXAtYWxpZ24iOiJjZW50ZXIifSwiLnNuYXAtYWxpZ24tbm9uZSI6eyJzY3JvbGwtc25hcC1hbGlnbiI6Im5vbmUifX0pfSxzY3JvbGxTbmFwU3RvcDooe2FkZFV0aWxpdGllczpyfSk9PntyKHsiLnNuYXAtbm9ybWFsIjp7InNjcm9sbC1zbmFwLXN0b3AiOiJub3JtYWwifSwiLnNuYXAtYWx3YXlzIjp7InNjcm9sbC1zbmFwLXN0b3AiOiJhbHdheXMifX0pfSxzY3JvbGxNYXJnaW46TCgic2Nyb2xsTWFyZ2luIixbWyJzY3JvbGwtbSIsWyJzY3JvbGwtbWFyZ2luIl1dLFtbInNjcm9sbC1teCIsWyJzY3JvbGwtbWFyZ2luLWxlZnQiLCJzY3JvbGwtbWFyZ2luLXJpZ2h0Il1dLFsic2Nyb2xsLW15IixbInNjcm9sbC1tYXJnaW4tdG9wIiwic2Nyb2xsLW1hcmdpbi1ib3R0b20iXV1dLFtbInNjcm9sbC1tcyIsWyJzY3JvbGwtbWFyZ2luLWlubGluZS1zdGFydCJdXSxbInNjcm9sbC1tZSIsWyJzY3JvbGwtbWFyZ2luLWlubGluZS1lbmQiXV0sWyJzY3JvbGwtbXQiLFsic2Nyb2xsLW1hcmdpbi10b3AiXV0sWyJzY3JvbGwtbXIiLFsic2Nyb2xsLW1hcmdpbi1yaWdodCJdXSxbInNjcm9sbC1tYiIsWyJzY3JvbGwtbWFyZ2luLWJvdHRvbSJdXSxbInNjcm9sbC1tbCIsWyJzY3JvbGwtbWFyZ2luLWxlZnQiXV1dXSx7c3VwcG9ydHNOZWdhdGl2ZVZhbHVlczohMH0pLHNjcm9sbFBhZGRpbmc6TCgic2Nyb2xsUGFkZGluZyIsW1sic2Nyb2xsLXAiLFsic2Nyb2xsLXBhZGRpbmciXV0sW1sic2Nyb2xsLXB4IixbInNjcm9sbC1wYWRkaW5nLWxlZnQiLCJzY3JvbGwtcGFkZGluZy1yaWdodCJdXSxbInNjcm9sbC1weSIsWyJzY3JvbGwtcGFkZGluZy10b3AiLCJzY3JvbGwtcGFkZGluZy1ib3R0b20iXV1dLFtbInNjcm9sbC1wcyIsWyJzY3JvbGwtcGFkZGluZy1pbmxpbmUtc3RhcnQiXV0sWyJzY3JvbGwtcGUiLFsic2Nyb2xsLXBhZGRpbmctaW5saW5lLWVuZCJdXSxbInNjcm9sbC1wdCIsWyJzY3JvbGwtcGFkZGluZy10b3AiXV0sWyJzY3JvbGwtcHIiLFsic2Nyb2xsLXBhZGRpbmctcmlnaHQiXV0sWyJzY3JvbGwtcGIiLFsic2Nyb2xsLXBhZGRpbmctYm90dG9tIl1dLFsic2Nyb2xsLXBsIixbInNjcm9sbC1wYWRkaW5nLWxlZnQiXV1dXSksbGlzdFN0eWxlUG9zaXRpb246KHthZGRVdGlsaXRpZXM6cn0pPT57cih7Ii5saXN0LWluc2lkZSI6eyJsaXN0LXN0eWxlLXBvc2l0aW9uIjoiaW5zaWRlIn0sIi5saXN0LW91dHNpZGUiOnsibGlzdC1zdHlsZS1wb3NpdGlvbiI6Im91dHNpZGUifX0pfSxsaXN0U3R5bGVUeXBlOkwoImxpc3RTdHlsZVR5cGUiLFtbImxpc3QiLFsibGlzdFN0eWxlVHlwZSJdXV0pLGxpc3RTdHlsZUltYWdlOkwoImxpc3RTdHlsZUltYWdlIixbWyJsaXN0LWltYWdlIixbImxpc3RTdHlsZUltYWdlIl1dXSksYXBwZWFyYW5jZTooe2FkZFV0aWxpdGllczpyfSk9PntyKHsiLmFwcGVhcmFuY2Utbm9uZSI6e2FwcGVhcmFuY2U6Im5vbmUifSwiLmFwcGVhcmFuY2UtYXV0byI6e2FwcGVhcmFuY2U6ImF1dG8ifX0pfSxjb2x1bW5zOkwoImNvbHVtbnMiLFtbImNvbHVtbnMiLFsiY29sdW1ucyJdXV0pLGJyZWFrQmVmb3JlOih7YWRkVXRpbGl0aWVzOnJ9KT0+e3IoeyIuYnJlYWstYmVmb3JlLWF1dG8iOnsiYnJlYWstYmVmb3JlIjoiYXV0byJ9LCIuYnJlYWstYmVmb3JlLWF2b2lkIjp7ImJyZWFrLWJlZm9yZSI6ImF2b2lkIn0sIi5icmVhay1iZWZvcmUtYWxsIjp7ImJyZWFrLWJlZm9yZSI6ImFsbCJ9LCIuYnJlYWstYmVmb3JlLWF2b2lkLXBhZ2UiOnsiYnJlYWstYmVmb3JlIjoiYXZvaWQtcGFnZSJ9LCIuYnJlYWstYmVmb3JlLXBhZ2UiOnsiYnJlYWstYmVmb3JlIjoicGFnZSJ9LCIuYnJlYWstYmVmb3JlLWxlZnQiOnsiYnJlYWstYmVmb3JlIjoibGVmdCJ9LCIuYnJlYWstYmVmb3JlLXJpZ2h0Ijp7ImJyZWFrLWJlZm9yZSI6InJpZ2h0In0sIi5icmVhay1iZWZvcmUtY29sdW1uIjp7ImJyZWFrLWJlZm9yZSI6ImNvbHVtbiJ9fSl9LGJyZWFrSW5zaWRlOih7YWRkVXRpbGl0aWVzOnJ9KT0+e3IoeyIuYnJlYWstaW5zaWRlLWF1dG8iOnsiYnJlYWstaW5zaWRlIjoiYXV0byJ9LCIuYnJlYWstaW5zaWRlLWF2b2lkIjp7ImJyZWFrLWluc2lkZSI6ImF2b2lkIn0sIi5icmVhay1pbnNpZGUtYXZvaWQtcGFnZSI6eyJicmVhay1pbnNpZGUiOiJhdm9pZC1wYWdlIn0sIi5icmVhay1pbnNpZGUtYXZvaWQtY29sdW1uIjp7ImJyZWFrLWluc2lkZSI6ImF2b2lkLWNvbHVtbiJ9fSl9LGJyZWFrQWZ0ZXI6KHthZGRVdGlsaXRpZXM6cn0pPT57cih7Ii5icmVhay1hZnRlci1hdXRvIjp7ImJyZWFrLWFmdGVyIjoiYXV0byJ9LCIuYnJlYWstYWZ0ZXItYXZvaWQiOnsiYnJlYWstYWZ0ZXIiOiJhdm9pZCJ9LCIuYnJlYWstYWZ0ZXItYWxsIjp7ImJyZWFrLWFmdGVyIjoiYWxsIn0sIi5icmVhay1hZnRlci1hdm9pZC1wYWdlIjp7ImJyZWFrLWFmdGVyIjoiYXZvaWQtcGFnZSJ9LCIuYnJlYWstYWZ0ZXItcGFnZSI6eyJicmVhay1hZnRlciI6InBhZ2UifSwiLmJyZWFrLWFmdGVyLWxlZnQiOnsiYnJlYWstYWZ0ZXIiOiJsZWZ0In0sIi5icmVhay1hZnRlci1yaWdodCI6eyJicmVhay1hZnRlciI6InJpZ2h0In0sIi5icmVhay1hZnRlci1jb2x1bW4iOnsiYnJlYWstYWZ0ZXIiOiJjb2x1bW4ifX0pfSxncmlkQXV0b0NvbHVtbnM6TCgiZ3JpZEF1dG9Db2x1bW5zIixbWyJhdXRvLWNvbHMiLFsiZ3JpZEF1dG9Db2x1bW5zIl1dXSksZ3JpZEF1dG9GbG93Oih7YWRkVXRpbGl0aWVzOnJ9KT0+e3IoeyIuZ3JpZC1mbG93LXJvdyI6e2dyaWRBdXRvRmxvdzoicm93In0sIi5ncmlkLWZsb3ctY29sIjp7Z3JpZEF1dG9GbG93OiJjb2x1bW4ifSwiLmdyaWQtZmxvdy1kZW5zZSI6e2dyaWRBdXRvRmxvdzoiZGVuc2UifSwiLmdyaWQtZmxvdy1yb3ctZGVuc2UiOntncmlkQXV0b0Zsb3c6InJvdyBkZW5zZSJ9LCIuZ3JpZC1mbG93LWNvbC1kZW5zZSI6e2dyaWRBdXRvRmxvdzoiY29sdW1uIGRlbnNlIn19KX0sZ3JpZEF1dG9Sb3dzOkwoImdyaWRBdXRvUm93cyIsW1siYXV0by1yb3dzIixbImdyaWRBdXRvUm93cyJdXV0pLGdyaWRUZW1wbGF0ZUNvbHVtbnM6TCgiZ3JpZFRlbXBsYXRlQ29sdW1ucyIsW1siZ3JpZC1jb2xzIixbImdyaWRUZW1wbGF0ZUNvbHVtbnMiXV1dKSxncmlkVGVtcGxhdGVSb3dzOkwoImdyaWRUZW1wbGF0ZVJvd3MiLFtbImdyaWQtcm93cyIsWyJncmlkVGVtcGxhdGVSb3dzIl1dXSksZmxleERpcmVjdGlvbjooe2FkZFV0aWxpdGllczpyfSk9PntyKHsiLmZsZXgtcm93Ijp7ImZsZXgtZGlyZWN0aW9uIjoicm93In0sIi5mbGV4LXJvdy1yZXZlcnNlIjp7ImZsZXgtZGlyZWN0aW9uIjoicm93LXJldmVyc2UifSwiLmZsZXgtY29sIjp7ImZsZXgtZGlyZWN0aW9uIjoiY29sdW1uIn0sIi5mbGV4LWNvbC1yZXZlcnNlIjp7ImZsZXgtZGlyZWN0aW9uIjoiY29sdW1uLXJldmVyc2UifX0pfSxmbGV4V3JhcDooe2FkZFV0aWxpdGllczpyfSk9PntyKHsiLmZsZXgtd3JhcCI6eyJmbGV4LXdyYXAiOiJ3cmFwIn0sIi5mbGV4LXdyYXAtcmV2ZXJzZSI6eyJmbGV4LXdyYXAiOiJ3cmFwLXJldmVyc2UifSwiLmZsZXgtbm93cmFwIjp7ImZsZXgtd3JhcCI6Im5vd3JhcCJ9fSl9LHBsYWNlQ29udGVudDooe2FkZFV0aWxpdGllczpyfSk9PntyKHsiLnBsYWNlLWNvbnRlbnQtY2VudGVyIjp7InBsYWNlLWNvbnRlbnQiOiJjZW50ZXIifSwiLnBsYWNlLWNvbnRlbnQtc3RhcnQiOnsicGxhY2UtY29udGVudCI6InN0YXJ0In0sIi5wbGFjZS1jb250ZW50LWVuZCI6eyJwbGFjZS1jb250ZW50IjoiZW5kIn0sIi5wbGFjZS1jb250ZW50LWJldHdlZW4iOnsicGxhY2UtY29udGVudCI6InNwYWNlLWJldHdlZW4ifSwiLnBsYWNlLWNvbnRlbnQtYXJvdW5kIjp7InBsYWNlLWNvbnRlbnQiOiJzcGFjZS1hcm91bmQifSwiLnBsYWNlLWNvbnRlbnQtZXZlbmx5Ijp7InBsYWNlLWNvbnRlbnQiOiJzcGFjZS1ldmVubHkifSwiLnBsYWNlLWNvbnRlbnQtYmFzZWxpbmUiOnsicGxhY2UtY29udGVudCI6ImJhc2VsaW5lIn0sIi5wbGFjZS1jb250ZW50LXN0cmV0Y2giOnsicGxhY2UtY29udGVudCI6InN0cmV0Y2gifX0pfSxwbGFjZUl0ZW1zOih7YWRkVXRpbGl0aWVzOnJ9KT0+e3IoeyIucGxhY2UtaXRlbXMtc3RhcnQiOnsicGxhY2UtaXRlbXMiOiJzdGFydCJ9LCIucGxhY2UtaXRlbXMtZW5kIjp7InBsYWNlLWl0ZW1zIjoiZW5kIn0sIi5wbGFjZS1pdGVtcy1jZW50ZXIiOnsicGxhY2UtaXRlbXMiOiJjZW50ZXIifSwiLnBsYWNlLWl0ZW1zLWJhc2VsaW5lIjp7InBsYWNlLWl0ZW1zIjoiYmFzZWxpbmUifSwiLnBsYWNlLWl0ZW1zLXN0cmV0Y2giOnsicGxhY2UtaXRlbXMiOiJzdHJldGNoIn19KX0sYWxpZ25Db250ZW50Oih7YWRkVXRpbGl0aWVzOnJ9KT0+e3IoeyIuY29udGVudC1ub3JtYWwiOnsiYWxpZ24tY29udGVudCI6Im5vcm1hbCJ9LCIuY29udGVudC1jZW50ZXIiOnsiYWxpZ24tY29udGVudCI6ImNlbnRlciJ9LCIuY29udGVudC1zdGFydCI6eyJhbGlnbi1jb250ZW50IjoiZmxleC1zdGFydCJ9LCIuY29udGVudC1lbmQiOnsiYWxpZ24tY29udGVudCI6ImZsZXgtZW5kIn0sIi5jb250ZW50LWJldHdlZW4iOnsiYWxpZ24tY29udGVudCI6InNwYWNlLWJldHdlZW4ifSwiLmNvbnRlbnQtYXJvdW5kIjp7ImFsaWduLWNvbnRlbnQiOiJzcGFjZS1hcm91bmQifSwiLmNvbnRlbnQtZXZlbmx5Ijp7ImFsaWduLWNvbnRlbnQiOiJzcGFjZS1ldmVubHkifSwiLmNvbnRlbnQtYmFzZWxpbmUiOnsiYWxpZ24tY29udGVudCI6ImJhc2VsaW5lIn0sIi5jb250ZW50LXN0cmV0Y2giOnsiYWxpZ24tY29udGVudCI6InN0cmV0Y2gifX0pfSxhbGlnbkl0ZW1zOih7YWRkVXRpbGl0aWVzOnJ9KT0+e3IoeyIuaXRlbXMtc3RhcnQiOnsiYWxpZ24taXRlbXMiOiJmbGV4LXN0YXJ0In0sIi5pdGVtcy1lbmQiOnsiYWxpZ24taXRlbXMiOiJmbGV4LWVuZCJ9LCIuaXRlbXMtY2VudGVyIjp7ImFsaWduLWl0ZW1zIjoiY2VudGVyIn0sIi5pdGVtcy1iYXNlbGluZSI6eyJhbGlnbi1pdGVtcyI6ImJhc2VsaW5lIn0sIi5pdGVtcy1zdHJldGNoIjp7ImFsaWduLWl0ZW1zIjoic3RyZXRjaCJ9fSl9LGp1c3RpZnlDb250ZW50Oih7YWRkVXRpbGl0aWVzOnJ9KT0+e3IoeyIuanVzdGlmeS1ub3JtYWwiOnsianVzdGlmeS1jb250ZW50Ijoibm9ybWFsIn0sIi5qdXN0aWZ5LXN0YXJ0Ijp7Imp1c3RpZnktY29udGVudCI6ImZsZXgtc3RhcnQifSwiLmp1c3RpZnktZW5kIjp7Imp1c3RpZnktY29udGVudCI6ImZsZXgtZW5kIn0sIi5qdXN0aWZ5LWNlbnRlciI6eyJqdXN0aWZ5LWNvbnRlbnQiOiJjZW50ZXIifSwiLmp1c3RpZnktYmV0d2VlbiI6eyJqdXN0aWZ5LWNvbnRlbnQiOiJzcGFjZS1iZXR3ZWVuIn0sIi5qdXN0aWZ5LWFyb3VuZCI6eyJqdXN0aWZ5LWNvbnRlbnQiOiJzcGFjZS1hcm91bmQifSwiLmp1c3RpZnktZXZlbmx5Ijp7Imp1c3RpZnktY29udGVudCI6InNwYWNlLWV2ZW5seSJ9LCIuanVzdGlmeS1zdHJldGNoIjp7Imp1c3RpZnktY29udGVudCI6InN0cmV0Y2gifX0pfSxqdXN0aWZ5SXRlbXM6KHthZGRVdGlsaXRpZXM6cn0pPT57cih7Ii5qdXN0aWZ5LWl0ZW1zLXN0YXJ0Ijp7Imp1c3RpZnktaXRlbXMiOiJzdGFydCJ9LCIuanVzdGlmeS1pdGVtcy1lbmQiOnsianVzdGlmeS1pdGVtcyI6ImVuZCJ9LCIuanVzdGlmeS1pdGVtcy1jZW50ZXIiOnsianVzdGlmeS1pdGVtcyI6ImNlbnRlciJ9LCIuanVzdGlmeS1pdGVtcy1zdHJldGNoIjp7Imp1c3RpZnktaXRlbXMiOiJzdHJldGNoIn19KX0sZ2FwOkwoImdhcCIsW1siZ2FwIixbImdhcCJdXSxbWyJnYXAteCIsWyJjb2x1bW5HYXAiXV0sWyJnYXAteSIsWyJyb3dHYXAiXV1dXSksc3BhY2U6KHttYXRjaFV0aWxpdGllczpyLGFkZFV0aWxpdGllczplLHRoZW1lOnR9KT0+e3IoeyJzcGFjZS14IjppPT4oaT1pPT09IjAiPyIwcHgiOmkseyImID4gOm5vdChbaGlkZGVuXSkgfiA6bm90KFtoaWRkZW5dKSI6eyItLXR3LXNwYWNlLXgtcmV2ZXJzZSI6IjAiLCJtYXJnaW4tcmlnaHQiOmBjYWxjKCR7aX0gKiB2YXIoLS10dy1zcGFjZS14LXJldmVyc2UpKWAsIm1hcmdpbi1sZWZ0IjpgY2FsYygke2l9ICogY2FsYygxIC0gdmFyKC0tdHctc3BhY2UteC1yZXZlcnNlKSkpYH19KSwic3BhY2UteSI6aT0+KGk9aT09PSIwIj8iMHB4IjppLHsiJiA+IDpub3QoW2hpZGRlbl0pIH4gOm5vdChbaGlkZGVuXSkiOnsiLS10dy1zcGFjZS15LXJldmVyc2UiOiIwIiwibWFyZ2luLXRvcCI6YGNhbGMoJHtpfSAqIGNhbGMoMSAtIHZhcigtLXR3LXNwYWNlLXktcmV2ZXJzZSkpKWAsIm1hcmdpbi1ib3R0b20iOmBjYWxjKCR7aX0gKiB2YXIoLS10dy1zcGFjZS15LXJldmVyc2UpKWB9fSl9LHt2YWx1ZXM6dCgic3BhY2UiKSxzdXBwb3J0c05lZ2F0aXZlVmFsdWVzOiEwfSksZSh7Ii5zcGFjZS15LXJldmVyc2UgPiA6bm90KFtoaWRkZW5dKSB+IDpub3QoW2hpZGRlbl0pIjp7Ii0tdHctc3BhY2UteS1yZXZlcnNlIjoiMSJ9LCIuc3BhY2UteC1yZXZlcnNlID4gOm5vdChbaGlkZGVuXSkgfiA6bm90KFtoaWRkZW5dKSI6eyItLXR3LXNwYWNlLXgtcmV2ZXJzZSI6IjEifX0pfSxkaXZpZGVXaWR0aDooe21hdGNoVXRpbGl0aWVzOnIsYWRkVXRpbGl0aWVzOmUsdGhlbWU6dH0pPT57cih7ImRpdmlkZS14IjppPT4oaT1pPT09IjAiPyIwcHgiOmkseyImID4gOm5vdChbaGlkZGVuXSkgfiA6bm90KFtoaWRkZW5dKSI6eyJAZGVmYXVsdHMgYm9yZGVyLXdpZHRoIjp7fSwiLS10dy1kaXZpZGUteC1yZXZlcnNlIjoiMCIsImJvcmRlci1yaWdodC13aWR0aCI6YGNhbGMoJHtpfSAqIHZhcigtLXR3LWRpdmlkZS14LXJldmVyc2UpKWAsImJvcmRlci1sZWZ0LXdpZHRoIjpgY2FsYygke2l9ICogY2FsYygxIC0gdmFyKC0tdHctZGl2aWRlLXgtcmV2ZXJzZSkpKWB9fSksImRpdmlkZS15IjppPT4oaT1pPT09IjAiPyIwcHgiOmkseyImID4gOm5vdChbaGlkZGVuXSkgfiA6bm90KFtoaWRkZW5dKSI6eyJAZGVmYXVsdHMgYm9yZGVyLXdpZHRoIjp7fSwiLS10dy1kaXZpZGUteS1yZXZlcnNlIjoiMCIsImJvcmRlci10b3Atd2lkdGgiOmBjYWxjKCR7aX0gKiBjYWxjKDEgLSB2YXIoLS10dy1kaXZpZGUteS1yZXZlcnNlKSkpYCwiYm9yZGVyLWJvdHRvbS13aWR0aCI6YGNhbGMoJHtpfSAqIHZhcigtLXR3LWRpdmlkZS15LXJldmVyc2UpKWB9fSl9LHt2YWx1ZXM6dCgiZGl2aWRlV2lkdGgiKSx0eXBlOlsibGluZS13aWR0aCIsImxlbmd0aCIsImFueSJdfSksZSh7Ii5kaXZpZGUteS1yZXZlcnNlID4gOm5vdChbaGlkZGVuXSkgfiA6bm90KFtoaWRkZW5dKSI6eyJAZGVmYXVsdHMgYm9yZGVyLXdpZHRoIjp7fSwiLS10dy1kaXZpZGUteS1yZXZlcnNlIjoiMSJ9LCIuZGl2aWRlLXgtcmV2ZXJzZSA+IDpub3QoW2hpZGRlbl0pIH4gOm5vdChbaGlkZGVuXSkiOnsiQGRlZmF1bHRzIGJvcmRlci13aWR0aCI6e30sIi0tdHctZGl2aWRlLXgtcmV2ZXJzZSI6IjEifX0pfSxkaXZpZGVTdHlsZTooe2FkZFV0aWxpdGllczpyfSk9PntyKHsiLmRpdmlkZS1zb2xpZCA+IDpub3QoW2hpZGRlbl0pIH4gOm5vdChbaGlkZGVuXSkiOnsiYm9yZGVyLXN0eWxlIjoic29saWQifSwiLmRpdmlkZS1kYXNoZWQgPiA6bm90KFtoaWRkZW5dKSB+IDpub3QoW2hpZGRlbl0pIjp7ImJvcmRlci1zdHlsZSI6ImRhc2hlZCJ9LCIuZGl2aWRlLWRvdHRlZCA+IDpub3QoW2hpZGRlbl0pIH4gOm5vdChbaGlkZGVuXSkiOnsiYm9yZGVyLXN0eWxlIjoiZG90dGVkIn0sIi5kaXZpZGUtZG91YmxlID4gOm5vdChbaGlkZGVuXSkgfiA6bm90KFtoaWRkZW5dKSI6eyJib3JkZXItc3R5bGUiOiJkb3VibGUifSwiLmRpdmlkZS1ub25lID4gOm5vdChbaGlkZGVuXSkgfiA6bm90KFtoaWRkZW5dKSI6eyJib3JkZXItc3R5bGUiOiJub25lIn19KX0sZGl2aWRlQ29sb3I6KHttYXRjaFV0aWxpdGllczpyLHRoZW1lOmUsY29yZVBsdWdpbnM6dH0pPT57cih7ZGl2aWRlOmk9PnQoImRpdmlkZU9wYWNpdHkiKT97WyImID4gOm5vdChbaGlkZGVuXSkgfiA6bm90KFtoaWRkZW5dKSJdOkFlKHtjb2xvcjppLHByb3BlcnR5OiJib3JkZXItY29sb3IiLHZhcmlhYmxlOiItLXR3LWRpdmlkZS1vcGFjaXR5In0pfTp7WyImID4gOm5vdChbaGlkZGVuXSkgfiA6bm90KFtoaWRkZW5dKSJdOnsiYm9yZGVyLWNvbG9yIjpYKGkpfX19LHt2YWx1ZXM6KCh7REVGQVVMVDppLC4uLm59KT0+bikoeGUoZSgiZGl2aWRlQ29sb3IiKSkpLHR5cGU6WyJjb2xvciIsImFueSJdfSl9LGRpdmlkZU9wYWNpdHk6KHttYXRjaFV0aWxpdGllczpyLHRoZW1lOmV9KT0+e3IoeyJkaXZpZGUtb3BhY2l0eSI6dD0+KHtbIiYgPiA6bm90KFtoaWRkZW5dKSB+IDpub3QoW2hpZGRlbl0pIl06eyItLXR3LWRpdmlkZS1vcGFjaXR5Ijp0fX0pfSx7dmFsdWVzOmUoImRpdmlkZU9wYWNpdHkiKX0pfSxwbGFjZVNlbGY6KHthZGRVdGlsaXRpZXM6cn0pPT57cih7Ii5wbGFjZS1zZWxmLWF1dG8iOnsicGxhY2Utc2VsZiI6ImF1dG8ifSwiLnBsYWNlLXNlbGYtc3RhcnQiOnsicGxhY2Utc2VsZiI6InN0YXJ0In0sIi5wbGFjZS1zZWxmLWVuZCI6eyJwbGFjZS1zZWxmIjoiZW5kIn0sIi5wbGFjZS1zZWxmLWNlbnRlciI6eyJwbGFjZS1zZWxmIjoiY2VudGVyIn0sIi5wbGFjZS1zZWxmLXN0cmV0Y2giOnsicGxhY2Utc2VsZiI6InN0cmV0Y2gifX0pfSxhbGlnblNlbGY6KHthZGRVdGlsaXRpZXM6cn0pPT57cih7Ii5zZWxmLWF1dG8iOnsiYWxpZ24tc2VsZiI6ImF1dG8ifSwiLnNlbGYtc3RhcnQiOnsiYWxpZ24tc2VsZiI6ImZsZXgtc3RhcnQifSwiLnNlbGYtZW5kIjp7ImFsaWduLXNlbGYiOiJmbGV4LWVuZCJ9LCIuc2VsZi1jZW50ZXIiOnsiYWxpZ24tc2VsZiI6ImNlbnRlciJ9LCIuc2VsZi1zdHJldGNoIjp7ImFsaWduLXNlbGYiOiJzdHJldGNoIn0sIi5zZWxmLWJhc2VsaW5lIjp7ImFsaWduLXNlbGYiOiJiYXNlbGluZSJ9fSl9LGp1c3RpZnlTZWxmOih7YWRkVXRpbGl0aWVzOnJ9KT0+e3IoeyIuanVzdGlmeS1zZWxmLWF1dG8iOnsianVzdGlmeS1zZWxmIjoiYXV0byJ9LCIuanVzdGlmeS1zZWxmLXN0YXJ0Ijp7Imp1c3RpZnktc2VsZiI6InN0YXJ0In0sIi5qdXN0aWZ5LXNlbGYtZW5kIjp7Imp1c3RpZnktc2VsZiI6ImVuZCJ9LCIuanVzdGlmeS1zZWxmLWNlbnRlciI6eyJqdXN0aWZ5LXNlbGYiOiJjZW50ZXIifSwiLmp1c3RpZnktc2VsZi1zdHJldGNoIjp7Imp1c3RpZnktc2VsZiI6InN0cmV0Y2gifX0pfSxvdmVyZmxvdzooe2FkZFV0aWxpdGllczpyfSk9PntyKHsiLm92ZXJmbG93LWF1dG8iOntvdmVyZmxvdzoiYXV0byJ9LCIub3ZlcmZsb3ctaGlkZGVuIjp7b3ZlcmZsb3c6ImhpZGRlbiJ9LCIub3ZlcmZsb3ctY2xpcCI6e292ZXJmbG93OiJjbGlwIn0sIi5vdmVyZmxvdy12aXNpYmxlIjp7b3ZlcmZsb3c6InZpc2libGUifSwiLm92ZXJmbG93LXNjcm9sbCI6e292ZXJmbG93OiJzY3JvbGwifSwiLm92ZXJmbG93LXgtYXV0byI6eyJvdmVyZmxvdy14IjoiYXV0byJ9LCIub3ZlcmZsb3cteS1hdXRvIjp7Im92ZXJmbG93LXkiOiJhdXRvIn0sIi5vdmVyZmxvdy14LWhpZGRlbiI6eyJvdmVyZmxvdy14IjoiaGlkZGVuIn0sIi5vdmVyZmxvdy15LWhpZGRlbiI6eyJvdmVyZmxvdy15IjoiaGlkZGVuIn0sIi5vdmVyZmxvdy14LWNsaXAiOnsib3ZlcmZsb3cteCI6ImNsaXAifSwiLm92ZXJmbG93LXktY2xpcCI6eyJvdmVyZmxvdy15IjoiY2xpcCJ9LCIub3ZlcmZsb3cteC12aXNpYmxlIjp7Im92ZXJmbG93LXgiOiJ2aXNpYmxlIn0sIi5vdmVyZmxvdy15LXZpc2libGUiOnsib3ZlcmZsb3cteSI6InZpc2libGUifSwiLm92ZXJmbG93LXgtc2Nyb2xsIjp7Im92ZXJmbG93LXgiOiJzY3JvbGwifSwiLm92ZXJmbG93LXktc2Nyb2xsIjp7Im92ZXJmbG93LXkiOiJzY3JvbGwifX0pfSxvdmVyc2Nyb2xsQmVoYXZpb3I6KHthZGRVdGlsaXRpZXM6cn0pPT57cih7Ii5vdmVyc2Nyb2xsLWF1dG8iOnsib3ZlcnNjcm9sbC1iZWhhdmlvciI6ImF1dG8ifSwiLm92ZXJzY3JvbGwtY29udGFpbiI6eyJvdmVyc2Nyb2xsLWJlaGF2aW9yIjoiY29udGFpbiJ9LCIub3ZlcnNjcm9sbC1ub25lIjp7Im92ZXJzY3JvbGwtYmVoYXZpb3IiOiJub25lIn0sIi5vdmVyc2Nyb2xsLXktYXV0byI6eyJvdmVyc2Nyb2xsLWJlaGF2aW9yLXkiOiJhdXRvIn0sIi5vdmVyc2Nyb2xsLXktY29udGFpbiI6eyJvdmVyc2Nyb2xsLWJlaGF2aW9yLXkiOiJjb250YWluIn0sIi5vdmVyc2Nyb2xsLXktbm9uZSI6eyJvdmVyc2Nyb2xsLWJlaGF2aW9yLXkiOiJub25lIn0sIi5vdmVyc2Nyb2xsLXgtYXV0byI6eyJvdmVyc2Nyb2xsLWJlaGF2aW9yLXgiOiJhdXRvIn0sIi5vdmVyc2Nyb2xsLXgtY29udGFpbiI6eyJvdmVyc2Nyb2xsLWJlaGF2aW9yLXgiOiJjb250YWluIn0sIi5vdmVyc2Nyb2xsLXgtbm9uZSI6eyJvdmVyc2Nyb2xsLWJlaGF2aW9yLXgiOiJub25lIn19KX0sc2Nyb2xsQmVoYXZpb3I6KHthZGRVdGlsaXRpZXM6cn0pPT57cih7Ii5zY3JvbGwtYXV0byI6eyJzY3JvbGwtYmVoYXZpb3IiOiJhdXRvIn0sIi5zY3JvbGwtc21vb3RoIjp7InNjcm9sbC1iZWhhdmlvciI6InNtb290aCJ9fSl9LHRleHRPdmVyZmxvdzooe2FkZFV0aWxpdGllczpyfSk9PntyKHsiLnRydW5jYXRlIjp7b3ZlcmZsb3c6ImhpZGRlbiIsInRleHQtb3ZlcmZsb3ciOiJlbGxpcHNpcyIsIndoaXRlLXNwYWNlIjoibm93cmFwIn0sIi5vdmVyZmxvdy1lbGxpcHNpcyI6eyJ0ZXh0LW92ZXJmbG93IjoiZWxsaXBzaXMifSwiLnRleHQtZWxsaXBzaXMiOnsidGV4dC1vdmVyZmxvdyI6ImVsbGlwc2lzIn0sIi50ZXh0LWNsaXAiOnsidGV4dC1vdmVyZmxvdyI6ImNsaXAifX0pfSxoeXBoZW5zOih7YWRkVXRpbGl0aWVzOnJ9KT0+e3IoeyIuaHlwaGVucy1ub25lIjp7aHlwaGVuczoibm9uZSJ9LCIuaHlwaGVucy1tYW51YWwiOntoeXBoZW5zOiJtYW51YWwifSwiLmh5cGhlbnMtYXV0byI6e2h5cGhlbnM6ImF1dG8ifX0pfSx3aGl0ZXNwYWNlOih7YWRkVXRpbGl0aWVzOnJ9KT0+e3IoeyIud2hpdGVzcGFjZS1ub3JtYWwiOnsid2hpdGUtc3BhY2UiOiJub3JtYWwifSwiLndoaXRlc3BhY2Utbm93cmFwIjp7IndoaXRlLXNwYWNlIjoibm93cmFwIn0sIi53aGl0ZXNwYWNlLXByZSI6eyJ3aGl0ZS1zcGFjZSI6InByZSJ9LCIud2hpdGVzcGFjZS1wcmUtbGluZSI6eyJ3aGl0ZS1zcGFjZSI6InByZS1saW5lIn0sIi53aGl0ZXNwYWNlLXByZS13cmFwIjp7IndoaXRlLXNwYWNlIjoicHJlLXdyYXAifSwiLndoaXRlc3BhY2UtYnJlYWstc3BhY2VzIjp7IndoaXRlLXNwYWNlIjoiYnJlYWstc3BhY2VzIn19KX0sdGV4dFdyYXA6KHthZGRVdGlsaXRpZXM6cn0pPT57cih7Ii50ZXh0LXdyYXAiOnsidGV4dC13cmFwIjoid3JhcCJ9LCIudGV4dC1ub3dyYXAiOnsidGV4dC13cmFwIjoibm93cmFwIn0sIi50ZXh0LWJhbGFuY2UiOnsidGV4dC13cmFwIjoiYmFsYW5jZSJ9LCIudGV4dC1wcmV0dHkiOnsidGV4dC13cmFwIjoicHJldHR5In19KX0sd29yZEJyZWFrOih7YWRkVXRpbGl0aWVzOnJ9KT0+e3IoeyIuYnJlYWstbm9ybWFsIjp7Im92ZXJmbG93LXdyYXAiOiJub3JtYWwiLCJ3b3JkLWJyZWFrIjoibm9ybWFsIn0sIi5icmVhay13b3JkcyI6eyJvdmVyZmxvdy13cmFwIjoiYnJlYWstd29yZCJ9LCIuYnJlYWstYWxsIjp7IndvcmQtYnJlYWsiOiJicmVhay1hbGwifSwiLmJyZWFrLWtlZXAiOnsid29yZC1icmVhayI6ImtlZXAtYWxsIn19KX0sYm9yZGVyUmFkaXVzOkwoImJvcmRlclJhZGl1cyIsW1sicm91bmRlZCIsWyJib3JkZXItcmFkaXVzIl1dLFtbInJvdW5kZWQtcyIsWyJib3JkZXItc3RhcnQtc3RhcnQtcmFkaXVzIiwiYm9yZGVyLWVuZC1zdGFydC1yYWRpdXMiXV0sWyJyb3VuZGVkLWUiLFsiYm9yZGVyLXN0YXJ0LWVuZC1yYWRpdXMiLCJib3JkZXItZW5kLWVuZC1yYWRpdXMiXV0sWyJyb3VuZGVkLXQiLFsiYm9yZGVyLXRvcC1sZWZ0LXJhZGl1cyIsImJvcmRlci10b3AtcmlnaHQtcmFkaXVzIl1dLFsicm91bmRlZC1yIixbImJvcmRlci10b3AtcmlnaHQtcmFkaXVzIiwiYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXMiXV0sWyJyb3VuZGVkLWIiLFsiYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXMiLCJib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzIl1dLFsicm91bmRlZC1sIixbImJvcmRlci10b3AtbGVmdC1yYWRpdXMiLCJib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzIl1dXSxbWyJyb3VuZGVkLXNzIixbImJvcmRlci1zdGFydC1zdGFydC1yYWRpdXMiXV0sWyJyb3VuZGVkLXNlIixbImJvcmRlci1zdGFydC1lbmQtcmFkaXVzIl1dLFsicm91bmRlZC1lZSIsWyJib3JkZXItZW5kLWVuZC1yYWRpdXMiXV0sWyJyb3VuZGVkLWVzIixbImJvcmRlci1lbmQtc3RhcnQtcmFkaXVzIl1dLFsicm91bmRlZC10bCIsWyJib3JkZXItdG9wLWxlZnQtcmFkaXVzIl1dLFsicm91bmRlZC10ciIsWyJib3JkZXItdG9wLXJpZ2h0LXJhZGl1cyJdXSxbInJvdW5kZWQtYnIiLFsiYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXMiXV0sWyJyb3VuZGVkLWJsIixbImJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXMiXV1dXSksYm9yZGVyV2lkdGg6TCgiYm9yZGVyV2lkdGgiLFtbImJvcmRlciIsW1siQGRlZmF1bHRzIGJvcmRlci13aWR0aCIse31dLCJib3JkZXItd2lkdGgiXV0sW1siYm9yZGVyLXgiLFtbIkBkZWZhdWx0cyBib3JkZXItd2lkdGgiLHt9XSwiYm9yZGVyLWxlZnQtd2lkdGgiLCJib3JkZXItcmlnaHQtd2lkdGgiXV0sWyJib3JkZXIteSIsW1siQGRlZmF1bHRzIGJvcmRlci13aWR0aCIse31dLCJib3JkZXItdG9wLXdpZHRoIiwiYm9yZGVyLWJvdHRvbS13aWR0aCJdXV0sW1siYm9yZGVyLXMiLFtbIkBkZWZhdWx0cyBib3JkZXItd2lkdGgiLHt9XSwiYm9yZGVyLWlubGluZS1zdGFydC13aWR0aCJdXSxbImJvcmRlci1lIixbWyJAZGVmYXVsdHMgYm9yZGVyLXdpZHRoIix7fV0sImJvcmRlci1pbmxpbmUtZW5kLXdpZHRoIl1dLFsiYm9yZGVyLXQiLFtbIkBkZWZhdWx0cyBib3JkZXItd2lkdGgiLHt9XSwiYm9yZGVyLXRvcC13aWR0aCJdXSxbImJvcmRlci1yIixbWyJAZGVmYXVsdHMgYm9yZGVyLXdpZHRoIix7fV0sImJvcmRlci1yaWdodC13aWR0aCJdXSxbImJvcmRlci1iIixbWyJAZGVmYXVsdHMgYm9yZGVyLXdpZHRoIix7fV0sImJvcmRlci1ib3R0b20td2lkdGgiXV0sWyJib3JkZXItbCIsW1siQGRlZmF1bHRzIGJvcmRlci13aWR0aCIse31dLCJib3JkZXItbGVmdC13aWR0aCJdXV1dLHt0eXBlOlsibGluZS13aWR0aCIsImxlbmd0aCJdfSksYm9yZGVyU3R5bGU6KHthZGRVdGlsaXRpZXM6cn0pPT57cih7Ii5ib3JkZXItc29saWQiOnsiYm9yZGVyLXN0eWxlIjoic29saWQifSwiLmJvcmRlci1kYXNoZWQiOnsiYm9yZGVyLXN0eWxlIjoiZGFzaGVkIn0sIi5ib3JkZXItZG90dGVkIjp7ImJvcmRlci1zdHlsZSI6ImRvdHRlZCJ9LCIuYm9yZGVyLWRvdWJsZSI6eyJib3JkZXItc3R5bGUiOiJkb3VibGUifSwiLmJvcmRlci1oaWRkZW4iOnsiYm9yZGVyLXN0eWxlIjoiaGlkZGVuIn0sIi5ib3JkZXItbm9uZSI6eyJib3JkZXItc3R5bGUiOiJub25lIn19KX0sYm9yZGVyQ29sb3I6KHttYXRjaFV0aWxpdGllczpyLHRoZW1lOmUsY29yZVBsdWdpbnM6dH0pPT57cih7Ym9yZGVyOmk9PnQoImJvcmRlck9wYWNpdHkiKT9BZSh7Y29sb3I6aSxwcm9wZXJ0eToiYm9yZGVyLWNvbG9yIix2YXJpYWJsZToiLS10dy1ib3JkZXItb3BhY2l0eSJ9KTp7ImJvcmRlci1jb2xvciI6WChpKX19LHt2YWx1ZXM6KCh7REVGQVVMVDppLC4uLm59KT0+bikoeGUoZSgiYm9yZGVyQ29sb3IiKSkpLHR5cGU6WyJjb2xvciIsImFueSJdfSkscih7ImJvcmRlci14IjppPT50KCJib3JkZXJPcGFjaXR5Iik/QWUoe2NvbG9yOmkscHJvcGVydHk6WyJib3JkZXItbGVmdC1jb2xvciIsImJvcmRlci1yaWdodC1jb2xvciJdLHZhcmlhYmxlOiItLXR3LWJvcmRlci1vcGFjaXR5In0pOnsiYm9yZGVyLWxlZnQtY29sb3IiOlgoaSksImJvcmRlci1yaWdodC1jb2xvciI6WChpKX0sImJvcmRlci15IjppPT50KCJib3JkZXJPcGFjaXR5Iik/QWUoe2NvbG9yOmkscHJvcGVydHk6WyJib3JkZXItdG9wLWNvbG9yIiwiYm9yZGVyLWJvdHRvbS1jb2xvciJdLHZhcmlhYmxlOiItLXR3LWJvcmRlci1vcGFjaXR5In0pOnsiYm9yZGVyLXRvcC1jb2xvciI6WChpKSwiYm9yZGVyLWJvdHRvbS1jb2xvciI6WChpKX19LHt2YWx1ZXM6KCh7REVGQVVMVDppLC4uLm59KT0+bikoeGUoZSgiYm9yZGVyQ29sb3IiKSkpLHR5cGU6WyJjb2xvciIsImFueSJdfSkscih7ImJvcmRlci1zIjppPT50KCJib3JkZXJPcGFjaXR5Iik/QWUoe2NvbG9yOmkscHJvcGVydHk6ImJvcmRlci1pbmxpbmUtc3RhcnQtY29sb3IiLHZhcmlhYmxlOiItLXR3LWJvcmRlci1vcGFjaXR5In0pOnsiYm9yZGVyLWlubGluZS1zdGFydC1jb2xvciI6WChpKX0sImJvcmRlci1lIjppPT50KCJib3JkZXJPcGFjaXR5Iik/QWUoe2NvbG9yOmkscHJvcGVydHk6ImJvcmRlci1pbmxpbmUtZW5kLWNvbG9yIix2YXJpYWJsZToiLS10dy1ib3JkZXItb3BhY2l0eSJ9KTp7ImJvcmRlci1pbmxpbmUtZW5kLWNvbG9yIjpYKGkpfSwiYm9yZGVyLXQiOmk9PnQoImJvcmRlck9wYWNpdHkiKT9BZSh7Y29sb3I6aSxwcm9wZXJ0eToiYm9yZGVyLXRvcC1jb2xvciIsdmFyaWFibGU6Ii0tdHctYm9yZGVyLW9wYWNpdHkifSk6eyJib3JkZXItdG9wLWNvbG9yIjpYKGkpfSwiYm9yZGVyLXIiOmk9PnQoImJvcmRlck9wYWNpdHkiKT9BZSh7Y29sb3I6aSxwcm9wZXJ0eToiYm9yZGVyLXJpZ2h0LWNvbG9yIix2YXJpYWJsZToiLS10dy1ib3JkZXItb3BhY2l0eSJ9KTp7ImJvcmRlci1yaWdodC1jb2xvciI6WChpKX0sImJvcmRlci1iIjppPT50KCJib3JkZXJPcGFjaXR5Iik/QWUoe2NvbG9yOmkscHJvcGVydHk6ImJvcmRlci1ib3R0b20tY29sb3IiLHZhcmlhYmxlOiItLXR3LWJvcmRlci1vcGFjaXR5In0pOnsiYm9yZGVyLWJvdHRvbS1jb2xvciI6WChpKX0sImJvcmRlci1sIjppPT50KCJib3JkZXJPcGFjaXR5Iik/QWUoe2NvbG9yOmkscHJvcGVydHk6ImJvcmRlci1sZWZ0LWNvbG9yIix2YXJpYWJsZToiLS10dy1ib3JkZXItb3BhY2l0eSJ9KTp7ImJvcmRlci1sZWZ0LWNvbG9yIjpYKGkpfX0se3ZhbHVlczooKHtERUZBVUxUOmksLi4ubn0pPT5uKSh4ZShlKCJib3JkZXJDb2xvciIpKSksdHlwZTpbImNvbG9yIiwiYW55Il19KX0sYm9yZGVyT3BhY2l0eTpMKCJib3JkZXJPcGFjaXR5IixbWyJib3JkZXItb3BhY2l0eSIsWyItLXR3LWJvcmRlci1vcGFjaXR5Il1dXSksYmFja2dyb3VuZENvbG9yOih7bWF0Y2hVdGlsaXRpZXM6cix0aGVtZTplLGNvcmVQbHVnaW5zOnR9KT0+e3Ioe2JnOmk9PnQoImJhY2tncm91bmRPcGFjaXR5Iik/QWUoe2NvbG9yOmkscHJvcGVydHk6ImJhY2tncm91bmQtY29sb3IiLHZhcmlhYmxlOiItLXR3LWJnLW9wYWNpdHkifSk6eyJiYWNrZ3JvdW5kLWNvbG9yIjpYKGkpfX0se3ZhbHVlczp4ZShlKCJiYWNrZ3JvdW5kQ29sb3IiKSksdHlwZTpbImNvbG9yIiwiYW55Il19KX0sYmFja2dyb3VuZE9wYWNpdHk6TCgiYmFja2dyb3VuZE9wYWNpdHkiLFtbImJnLW9wYWNpdHkiLFsiLS10dy1iZy1vcGFjaXR5Il1dXSksYmFja2dyb3VuZEltYWdlOkwoImJhY2tncm91bmRJbWFnZSIsW1siYmciLFsiYmFja2dyb3VuZC1pbWFnZSJdXV0se3R5cGU6WyJsb29rdXAiLCJpbWFnZSIsInVybCJdfSksZ3JhZGllbnRDb2xvclN0b3BzOigoKT0+e2Z1bmN0aW9uIHIoZSl7cmV0dXJuIEplKGUsMCwicmdiKDI1NSAyNTUgMjU1IC8gMCkiKX1yZXR1cm4gZnVuY3Rpb24oe21hdGNoVXRpbGl0aWVzOmUsdGhlbWU6dCxhZGREZWZhdWx0czppfSl7aSgiZ3JhZGllbnQtY29sb3Itc3RvcHMiLHsiLS10dy1ncmFkaWVudC1mcm9tLXBvc2l0aW9uIjoiICIsIi0tdHctZ3JhZGllbnQtdmlhLXBvc2l0aW9uIjoiICIsIi0tdHctZ3JhZGllbnQtdG8tcG9zaXRpb24iOiIgIn0pO2xldCBuPXt2YWx1ZXM6eGUodCgiZ3JhZGllbnRDb2xvclN0b3BzIikpLHR5cGU6WyJjb2xvciIsImFueSJdfSxzPXt2YWx1ZXM6dCgiZ3JhZGllbnRDb2xvclN0b3BQb3NpdGlvbnMiKSx0eXBlOlsibGVuZ3RoIiwicGVyY2VudGFnZSJdfTtlKHtmcm9tOmE9PntsZXQgbz1yKGEpO3JldHVybnsiQGRlZmF1bHRzIGdyYWRpZW50LWNvbG9yLXN0b3BzIjp7fSwiLS10dy1ncmFkaWVudC1mcm9tIjpgJHtYKGEpfSB2YXIoLS10dy1ncmFkaWVudC1mcm9tLXBvc2l0aW9uKWAsIi0tdHctZ3JhZGllbnQtdG8iOmAke299IHZhcigtLXR3LWdyYWRpZW50LXRvLXBvc2l0aW9uKWAsIi0tdHctZ3JhZGllbnQtc3RvcHMiOiJ2YXIoLS10dy1ncmFkaWVudC1mcm9tKSwgdmFyKC0tdHctZ3JhZGllbnQtdG8pIn19fSxuKSxlKHtmcm9tOmE9Pih7Ii0tdHctZ3JhZGllbnQtZnJvbS1wb3NpdGlvbiI6YX0pfSxzKSxlKHt2aWE6YT0+e2xldCBvPXIoYSk7cmV0dXJueyJAZGVmYXVsdHMgZ3JhZGllbnQtY29sb3Itc3RvcHMiOnt9LCItLXR3LWdyYWRpZW50LXRvIjpgJHtvfSAgdmFyKC0tdHctZ3JhZGllbnQtdG8tcG9zaXRpb24pYCwiLS10dy1ncmFkaWVudC1zdG9wcyI6YHZhcigtLXR3LWdyYWRpZW50LWZyb20pLCAke1goYSl9IHZhcigtLXR3LWdyYWRpZW50LXZpYS1wb3NpdGlvbiksIHZhcigtLXR3LWdyYWRpZW50LXRvKWB9fX0sbiksZSh7dmlhOmE9Pih7Ii0tdHctZ3JhZGllbnQtdmlhLXBvc2l0aW9uIjphfSl9LHMpLGUoe3RvOmE9Pih7IkBkZWZhdWx0cyBncmFkaWVudC1jb2xvci1zdG9wcyI6e30sIi0tdHctZ3JhZGllbnQtdG8iOmAke1goYSl9IHZhcigtLXR3LWdyYWRpZW50LXRvLXBvc2l0aW9uKWB9KX0sbiksZSh7dG86YT0+KHsiLS10dy1ncmFkaWVudC10by1wb3NpdGlvbiI6YX0pfSxzKX19KSgpLGJveERlY29yYXRpb25CcmVhazooe2FkZFV0aWxpdGllczpyfSk9PntyKHsiLmRlY29yYXRpb24tc2xpY2UiOnsiYm94LWRlY29yYXRpb24tYnJlYWsiOiJzbGljZSJ9LCIuZGVjb3JhdGlvbi1jbG9uZSI6eyJib3gtZGVjb3JhdGlvbi1icmVhayI6ImNsb25lIn0sIi5ib3gtZGVjb3JhdGlvbi1zbGljZSI6eyJib3gtZGVjb3JhdGlvbi1icmVhayI6InNsaWNlIn0sIi5ib3gtZGVjb3JhdGlvbi1jbG9uZSI6eyJib3gtZGVjb3JhdGlvbi1icmVhayI6ImNsb25lIn19KX0sYmFja2dyb3VuZFNpemU6TCgiYmFja2dyb3VuZFNpemUiLFtbImJnIixbImJhY2tncm91bmQtc2l6ZSJdXV0se3R5cGU6WyJsb29rdXAiLCJsZW5ndGgiLCJwZXJjZW50YWdlIiwic2l6ZSJdfSksYmFja2dyb3VuZEF0dGFjaG1lbnQ6KHthZGRVdGlsaXRpZXM6cn0pPT57cih7Ii5iZy1maXhlZCI6eyJiYWNrZ3JvdW5kLWF0dGFjaG1lbnQiOiJmaXhlZCJ9LCIuYmctbG9jYWwiOnsiYmFja2dyb3VuZC1hdHRhY2htZW50IjoibG9jYWwifSwiLmJnLXNjcm9sbCI6eyJiYWNrZ3JvdW5kLWF0dGFjaG1lbnQiOiJzY3JvbGwifX0pfSxiYWNrZ3JvdW5kQ2xpcDooe2FkZFV0aWxpdGllczpyfSk9PntyKHsiLmJnLWNsaXAtYm9yZGVyIjp7ImJhY2tncm91bmQtY2xpcCI6ImJvcmRlci1ib3gifSwiLmJnLWNsaXAtcGFkZGluZyI6eyJiYWNrZ3JvdW5kLWNsaXAiOiJwYWRkaW5nLWJveCJ9LCIuYmctY2xpcC1jb250ZW50Ijp7ImJhY2tncm91bmQtY2xpcCI6ImNvbnRlbnQtYm94In0sIi5iZy1jbGlwLXRleHQiOnsiYmFja2dyb3VuZC1jbGlwIjoidGV4dCJ9fSl9LGJhY2tncm91bmRQb3NpdGlvbjpMKCJiYWNrZ3JvdW5kUG9zaXRpb24iLFtbImJnIixbImJhY2tncm91bmQtcG9zaXRpb24iXV1dLHt0eXBlOlsibG9va3VwIixbInBvc2l0aW9uIix7cHJlZmVyT25Db25mbGljdDohMH1dXX0pLGJhY2tncm91bmRSZXBlYXQ6KHthZGRVdGlsaXRpZXM6cn0pPT57cih7Ii5iZy1yZXBlYXQiOnsiYmFja2dyb3VuZC1yZXBlYXQiOiJyZXBlYXQifSwiLmJnLW5vLXJlcGVhdCI6eyJiYWNrZ3JvdW5kLXJlcGVhdCI6Im5vLXJlcGVhdCJ9LCIuYmctcmVwZWF0LXgiOnsiYmFja2dyb3VuZC1yZXBlYXQiOiJyZXBlYXQteCJ9LCIuYmctcmVwZWF0LXkiOnsiYmFja2dyb3VuZC1yZXBlYXQiOiJyZXBlYXQteSJ9LCIuYmctcmVwZWF0LXJvdW5kIjp7ImJhY2tncm91bmQtcmVwZWF0Ijoicm91bmQifSwiLmJnLXJlcGVhdC1zcGFjZSI6eyJiYWNrZ3JvdW5kLXJlcGVhdCI6InNwYWNlIn19KX0sYmFja2dyb3VuZE9yaWdpbjooe2FkZFV0aWxpdGllczpyfSk9PntyKHsiLmJnLW9yaWdpbi1ib3JkZXIiOnsiYmFja2dyb3VuZC1vcmlnaW4iOiJib3JkZXItYm94In0sIi5iZy1vcmlnaW4tcGFkZGluZyI6eyJiYWNrZ3JvdW5kLW9yaWdpbiI6InBhZGRpbmctYm94In0sIi5iZy1vcmlnaW4tY29udGVudCI6eyJiYWNrZ3JvdW5kLW9yaWdpbiI6ImNvbnRlbnQtYm94In19KX0sZmlsbDooe21hdGNoVXRpbGl0aWVzOnIsdGhlbWU6ZX0pPT57cih7ZmlsbDp0PT4oe2ZpbGw6WCh0KX0pfSx7dmFsdWVzOnhlKGUoImZpbGwiKSksdHlwZTpbImNvbG9yIiwiYW55Il19KX0sc3Ryb2tlOih7bWF0Y2hVdGlsaXRpZXM6cix0aGVtZTplfSk9PntyKHtzdHJva2U6dD0+KHtzdHJva2U6WCh0KX0pfSx7dmFsdWVzOnhlKGUoInN0cm9rZSIpKSx0eXBlOlsiY29sb3IiLCJ1cmwiLCJhbnkiXX0pfSxzdHJva2VXaWR0aDpMKCJzdHJva2VXaWR0aCIsW1sic3Ryb2tlIixbInN0cm9rZS13aWR0aCJdXV0se3R5cGU6WyJsZW5ndGgiLCJudW1iZXIiLCJwZXJjZW50YWdlIl19KSxvYmplY3RGaXQ6KHthZGRVdGlsaXRpZXM6cn0pPT57cih7Ii5vYmplY3QtY29udGFpbiI6eyJvYmplY3QtZml0IjoiY29udGFpbiJ9LCIub2JqZWN0LWNvdmVyIjp7Im9iamVjdC1maXQiOiJjb3ZlciJ9LCIub2JqZWN0LWZpbGwiOnsib2JqZWN0LWZpdCI6ImZpbGwifSwiLm9iamVjdC1ub25lIjp7Im9iamVjdC1maXQiOiJub25lIn0sIi5vYmplY3Qtc2NhbGUtZG93biI6eyJvYmplY3QtZml0Ijoic2NhbGUtZG93biJ9fSl9LG9iamVjdFBvc2l0aW9uOkwoIm9iamVjdFBvc2l0aW9uIixbWyJvYmplY3QiLFsib2JqZWN0LXBvc2l0aW9uIl1dXSkscGFkZGluZzpMKCJwYWRkaW5nIixbWyJwIixbInBhZGRpbmciXV0sW1sicHgiLFsicGFkZGluZy1sZWZ0IiwicGFkZGluZy1yaWdodCJdXSxbInB5IixbInBhZGRpbmctdG9wIiwicGFkZGluZy1ib3R0b20iXV1dLFtbInBzIixbInBhZGRpbmctaW5saW5lLXN0YXJ0Il1dLFsicGUiLFsicGFkZGluZy1pbmxpbmUtZW5kIl1dLFsicHQiLFsicGFkZGluZy10b3AiXV0sWyJwciIsWyJwYWRkaW5nLXJpZ2h0Il1dLFsicGIiLFsicGFkZGluZy1ib3R0b20iXV0sWyJwbCIsWyJwYWRkaW5nLWxlZnQiXV1dXSksdGV4dEFsaWduOih7YWRkVXRpbGl0aWVzOnJ9KT0+e3IoeyIudGV4dC1sZWZ0Ijp7InRleHQtYWxpZ24iOiJsZWZ0In0sIi50ZXh0LWNlbnRlciI6eyJ0ZXh0LWFsaWduIjoiY2VudGVyIn0sIi50ZXh0LXJpZ2h0Ijp7InRleHQtYWxpZ24iOiJyaWdodCJ9LCIudGV4dC1qdXN0aWZ5Ijp7InRleHQtYWxpZ24iOiJqdXN0aWZ5In0sIi50ZXh0LXN0YXJ0Ijp7InRleHQtYWxpZ24iOiJzdGFydCJ9LCIudGV4dC1lbmQiOnsidGV4dC1hbGlnbiI6ImVuZCJ9fSl9LHRleHRJbmRlbnQ6TCgidGV4dEluZGVudCIsW1siaW5kZW50IixbInRleHQtaW5kZW50Il1dXSx7c3VwcG9ydHNOZWdhdGl2ZVZhbHVlczohMH0pLHZlcnRpY2FsQWxpZ246KHthZGRVdGlsaXRpZXM6cixtYXRjaFV0aWxpdGllczplfSk9PntyKHsiLmFsaWduLWJhc2VsaW5lIjp7InZlcnRpY2FsLWFsaWduIjoiYmFzZWxpbmUifSwiLmFsaWduLXRvcCI6eyJ2ZXJ0aWNhbC1hbGlnbiI6InRvcCJ9LCIuYWxpZ24tbWlkZGxlIjp7InZlcnRpY2FsLWFsaWduIjoibWlkZGxlIn0sIi5hbGlnbi1ib3R0b20iOnsidmVydGljYWwtYWxpZ24iOiJib3R0b20ifSwiLmFsaWduLXRleHQtdG9wIjp7InZlcnRpY2FsLWFsaWduIjoidGV4dC10b3AifSwiLmFsaWduLXRleHQtYm90dG9tIjp7InZlcnRpY2FsLWFsaWduIjoidGV4dC1ib3R0b20ifSwiLmFsaWduLXN1YiI6eyJ2ZXJ0aWNhbC1hbGlnbiI6InN1YiJ9LCIuYWxpZ24tc3VwZXIiOnsidmVydGljYWwtYWxpZ24iOiJzdXBlciJ9fSksZSh7YWxpZ246dD0+KHsidmVydGljYWwtYWxpZ24iOnR9KX0pfSxmb250RmFtaWx5Oih7bWF0Y2hVdGlsaXRpZXM6cix0aGVtZTplfSk9PntyKHtmb250OnQ9PntsZXRbaSxuPXt9XT1BcnJheS5pc0FycmF5KHQpJiZrZSh0WzFdKT90Olt0XSx7Zm9udEZlYXR1cmVTZXR0aW5nczpzLGZvbnRWYXJpYXRpb25TZXR0aW5nczphfT1uO3JldHVybnsiZm9udC1mYW1pbHkiOkFycmF5LmlzQXJyYXkoaSk/aS5qb2luKCIsICIpOmksLi4ucz09PXZvaWQgMD97fTp7ImZvbnQtZmVhdHVyZS1zZXR0aW5ncyI6c30sLi4uYT09PXZvaWQgMD97fTp7ImZvbnQtdmFyaWF0aW9uLXNldHRpbmdzIjphfX19fSx7dmFsdWVzOmUoImZvbnRGYW1pbHkiKSx0eXBlOlsibG9va3VwIiwiZ2VuZXJpYy1uYW1lIiwiZmFtaWx5LW5hbWUiXX0pfSxmb250U2l6ZTooe21hdGNoVXRpbGl0aWVzOnIsdGhlbWU6ZX0pPT57cih7dGV4dDoodCx7bW9kaWZpZXI6aX0pPT57bGV0W24sc109QXJyYXkuaXNBcnJheSh0KT90Olt0XTtpZihpKXJldHVybnsiZm9udC1zaXplIjpuLCJsaW5lLWhlaWdodCI6aX07bGV0e2xpbmVIZWlnaHQ6YSxsZXR0ZXJTcGFjaW5nOm8sZm9udFdlaWdodDpsfT1rZShzKT9zOntsaW5lSGVpZ2h0OnN9O3JldHVybnsiZm9udC1zaXplIjpuLC4uLmE9PT12b2lkIDA/e306eyJsaW5lLWhlaWdodCI6YX0sLi4ubz09PXZvaWQgMD97fTp7ImxldHRlci1zcGFjaW5nIjpvfSwuLi5sPT09dm9pZCAwP3t9OnsiZm9udC13ZWlnaHQiOmx9fX19LHt2YWx1ZXM6ZSgiZm9udFNpemUiKSxtb2RpZmllcnM6ZSgibGluZUhlaWdodCIpLHR5cGU6WyJhYnNvbHV0ZS1zaXplIiwicmVsYXRpdmUtc2l6ZSIsImxlbmd0aCIsInBlcmNlbnRhZ2UiXX0pfSxmb250V2VpZ2h0OkwoImZvbnRXZWlnaHQiLFtbImZvbnQiLFsiZm9udFdlaWdodCJdXV0se3R5cGU6WyJsb29rdXAiLCJudW1iZXIiLCJhbnkiXX0pLHRleHRUcmFuc2Zvcm06KHthZGRVdGlsaXRpZXM6cn0pPT57cih7Ii51cHBlcmNhc2UiOnsidGV4dC10cmFuc2Zvcm0iOiJ1cHBlcmNhc2UifSwiLmxvd2VyY2FzZSI6eyJ0ZXh0LXRyYW5zZm9ybSI6Imxvd2VyY2FzZSJ9LCIuY2FwaXRhbGl6ZSI6eyJ0ZXh0LXRyYW5zZm9ybSI6ImNhcGl0YWxpemUifSwiLm5vcm1hbC1jYXNlIjp7InRleHQtdHJhbnNmb3JtIjoibm9uZSJ9fSl9LGZvbnRTdHlsZTooe2FkZFV0aWxpdGllczpyfSk9PntyKHsiLml0YWxpYyI6eyJmb250LXN0eWxlIjoiaXRhbGljIn0sIi5ub3QtaXRhbGljIjp7ImZvbnQtc3R5bGUiOiJub3JtYWwifX0pfSxmb250VmFyaWFudE51bWVyaWM6KHthZGREZWZhdWx0czpyLGFkZFV0aWxpdGllczplfSk9PntsZXQgdD0idmFyKC0tdHctb3JkaW5hbCkgdmFyKC0tdHctc2xhc2hlZC16ZXJvKSB2YXIoLS10dy1udW1lcmljLWZpZ3VyZSkgdmFyKC0tdHctbnVtZXJpYy1zcGFjaW5nKSB2YXIoLS10dy1udW1lcmljLWZyYWN0aW9uKSI7cigiZm9udC12YXJpYW50LW51bWVyaWMiLHsiLS10dy1vcmRpbmFsIjoiICIsIi0tdHctc2xhc2hlZC16ZXJvIjoiICIsIi0tdHctbnVtZXJpYy1maWd1cmUiOiIgIiwiLS10dy1udW1lcmljLXNwYWNpbmciOiIgIiwiLS10dy1udW1lcmljLWZyYWN0aW9uIjoiICJ9KSxlKHsiLm5vcm1hbC1udW1zIjp7ImZvbnQtdmFyaWFudC1udW1lcmljIjoibm9ybWFsIn0sIi5vcmRpbmFsIjp7IkBkZWZhdWx0cyBmb250LXZhcmlhbnQtbnVtZXJpYyI6e30sIi0tdHctb3JkaW5hbCI6Im9yZGluYWwiLCJmb250LXZhcmlhbnQtbnVtZXJpYyI6dH0sIi5zbGFzaGVkLXplcm8iOnsiQGRlZmF1bHRzIGZvbnQtdmFyaWFudC1udW1lcmljIjp7fSwiLS10dy1zbGFzaGVkLXplcm8iOiJzbGFzaGVkLXplcm8iLCJmb250LXZhcmlhbnQtbnVtZXJpYyI6dH0sIi5saW5pbmctbnVtcyI6eyJAZGVmYXVsdHMgZm9udC12YXJpYW50LW51bWVyaWMiOnt9LCItLXR3LW51bWVyaWMtZmlndXJlIjoibGluaW5nLW51bXMiLCJmb250LXZhcmlhbnQtbnVtZXJpYyI6dH0sIi5vbGRzdHlsZS1udW1zIjp7IkBkZWZhdWx0cyBmb250LXZhcmlhbnQtbnVtZXJpYyI6e30sIi0tdHctbnVtZXJpYy1maWd1cmUiOiJvbGRzdHlsZS1udW1zIiwiZm9udC12YXJpYW50LW51bWVyaWMiOnR9LCIucHJvcG9ydGlvbmFsLW51bXMiOnsiQGRlZmF1bHRzIGZvbnQtdmFyaWFudC1udW1lcmljIjp7fSwiLS10dy1udW1lcmljLXNwYWNpbmciOiJwcm9wb3J0aW9uYWwtbnVtcyIsImZvbnQtdmFyaWFudC1udW1lcmljIjp0fSwiLnRhYnVsYXItbnVtcyI6eyJAZGVmYXVsdHMgZm9udC12YXJpYW50LW51bWVyaWMiOnt9LCItLXR3LW51bWVyaWMtc3BhY2luZyI6InRhYnVsYXItbnVtcyIsImZvbnQtdmFyaWFudC1udW1lcmljIjp0fSwiLmRpYWdvbmFsLWZyYWN0aW9ucyI6eyJAZGVmYXVsdHMgZm9udC12YXJpYW50LW51bWVyaWMiOnt9LCItLXR3LW51bWVyaWMtZnJhY3Rpb24iOiJkaWFnb25hbC1mcmFjdGlvbnMiLCJmb250LXZhcmlhbnQtbnVtZXJpYyI6dH0sIi5zdGFja2VkLWZyYWN0aW9ucyI6eyJAZGVmYXVsdHMgZm9udC12YXJpYW50LW51bWVyaWMiOnt9LCItLXR3LW51bWVyaWMtZnJhY3Rpb24iOiJzdGFja2VkLWZyYWN0aW9ucyIsImZvbnQtdmFyaWFudC1udW1lcmljIjp0fX0pfSxsaW5lSGVpZ2h0OkwoImxpbmVIZWlnaHQiLFtbImxlYWRpbmciLFsibGluZUhlaWdodCJdXV0pLGxldHRlclNwYWNpbmc6TCgibGV0dGVyU3BhY2luZyIsW1sidHJhY2tpbmciLFsibGV0dGVyU3BhY2luZyJdXV0se3N1cHBvcnRzTmVnYXRpdmVWYWx1ZXM6ITB9KSx0ZXh0Q29sb3I6KHttYXRjaFV0aWxpdGllczpyLHRoZW1lOmUsY29yZVBsdWdpbnM6dH0pPT57cih7dGV4dDppPT50KCJ0ZXh0T3BhY2l0eSIpP0FlKHtjb2xvcjppLHByb3BlcnR5OiJjb2xvciIsdmFyaWFibGU6Ii0tdHctdGV4dC1vcGFjaXR5In0pOntjb2xvcjpYKGkpfX0se3ZhbHVlczp4ZShlKCJ0ZXh0Q29sb3IiKSksdHlwZTpbImNvbG9yIiwiYW55Il19KX0sdGV4dE9wYWNpdHk6TCgidGV4dE9wYWNpdHkiLFtbInRleHQtb3BhY2l0eSIsWyItLXR3LXRleHQtb3BhY2l0eSJdXV0pLHRleHREZWNvcmF0aW9uOih7YWRkVXRpbGl0aWVzOnJ9KT0+e3IoeyIudW5kZXJsaW5lIjp7InRleHQtZGVjb3JhdGlvbi1saW5lIjoidW5kZXJsaW5lIn0sIi5vdmVybGluZSI6eyJ0ZXh0LWRlY29yYXRpb24tbGluZSI6Im92ZXJsaW5lIn0sIi5saW5lLXRocm91Z2giOnsidGV4dC1kZWNvcmF0aW9uLWxpbmUiOiJsaW5lLXRocm91Z2gifSwiLm5vLXVuZGVybGluZSI6eyJ0ZXh0LWRlY29yYXRpb24tbGluZSI6Im5vbmUifX0pfSx0ZXh0RGVjb3JhdGlvbkNvbG9yOih7bWF0Y2hVdGlsaXRpZXM6cix0aGVtZTplfSk9PntyKHtkZWNvcmF0aW9uOnQ9Pih7InRleHQtZGVjb3JhdGlvbi1jb2xvciI6WCh0KX0pfSx7dmFsdWVzOnhlKGUoInRleHREZWNvcmF0aW9uQ29sb3IiKSksdHlwZTpbImNvbG9yIiwiYW55Il19KX0sdGV4dERlY29yYXRpb25TdHlsZTooe2FkZFV0aWxpdGllczpyfSk9PntyKHsiLmRlY29yYXRpb24tc29saWQiOnsidGV4dC1kZWNvcmF0aW9uLXN0eWxlIjoic29saWQifSwiLmRlY29yYXRpb24tZG91YmxlIjp7InRleHQtZGVjb3JhdGlvbi1zdHlsZSI6ImRvdWJsZSJ9LCIuZGVjb3JhdGlvbi1kb3R0ZWQiOnsidGV4dC1kZWNvcmF0aW9uLXN0eWxlIjoiZG90dGVkIn0sIi5kZWNvcmF0aW9uLWRhc2hlZCI6eyJ0ZXh0LWRlY29yYXRpb24tc3R5bGUiOiJkYXNoZWQifSwiLmRlY29yYXRpb24td2F2eSI6eyJ0ZXh0LWRlY29yYXRpb24tc3R5bGUiOiJ3YXZ5In19KX0sdGV4dERlY29yYXRpb25UaGlja25lc3M6TCgidGV4dERlY29yYXRpb25UaGlja25lc3MiLFtbImRlY29yYXRpb24iLFsidGV4dC1kZWNvcmF0aW9uLXRoaWNrbmVzcyJdXV0se3R5cGU6WyJsZW5ndGgiLCJwZXJjZW50YWdlIl19KSx0ZXh0VW5kZXJsaW5lT2Zmc2V0OkwoInRleHRVbmRlcmxpbmVPZmZzZXQiLFtbInVuZGVybGluZS1vZmZzZXQiLFsidGV4dC11bmRlcmxpbmUtb2Zmc2V0Il1dXSx7dHlwZTpbImxlbmd0aCIsInBlcmNlbnRhZ2UiLCJhbnkiXX0pLGZvbnRTbW9vdGhpbmc6KHthZGRVdGlsaXRpZXM6cn0pPT57cih7Ii5hbnRpYWxpYXNlZCI6eyItd2Via2l0LWZvbnQtc21vb3RoaW5nIjoiYW50aWFsaWFzZWQiLCItbW96LW9zeC1mb250LXNtb290aGluZyI6ImdyYXlzY2FsZSJ9LCIuc3VicGl4ZWwtYW50aWFsaWFzZWQiOnsiLXdlYmtpdC1mb250LXNtb290aGluZyI6ImF1dG8iLCItbW96LW9zeC1mb250LXNtb290aGluZyI6ImF1dG8ifX0pfSxwbGFjZWhvbGRlckNvbG9yOih7bWF0Y2hVdGlsaXRpZXM6cix0aGVtZTplLGNvcmVQbHVnaW5zOnR9KT0+e3Ioe3BsYWNlaG9sZGVyOmk9PnQoInBsYWNlaG9sZGVyT3BhY2l0eSIpP3siJjo6cGxhY2Vob2xkZXIiOkFlKHtjb2xvcjppLHByb3BlcnR5OiJjb2xvciIsdmFyaWFibGU6Ii0tdHctcGxhY2Vob2xkZXItb3BhY2l0eSJ9KX06eyImOjpwbGFjZWhvbGRlciI6e2NvbG9yOlgoaSl9fX0se3ZhbHVlczp4ZShlKCJwbGFjZWhvbGRlckNvbG9yIikpLHR5cGU6WyJjb2xvciIsImFueSJdfSl9LHBsYWNlaG9sZGVyT3BhY2l0eTooe21hdGNoVXRpbGl0aWVzOnIsdGhlbWU6ZX0pPT57cih7InBsYWNlaG9sZGVyLW9wYWNpdHkiOnQ9Pih7WyImOjpwbGFjZWhvbGRlciJdOnsiLS10dy1wbGFjZWhvbGRlci1vcGFjaXR5Ijp0fX0pfSx7dmFsdWVzOmUoInBsYWNlaG9sZGVyT3BhY2l0eSIpfSl9LGNhcmV0Q29sb3I6KHttYXRjaFV0aWxpdGllczpyLHRoZW1lOmV9KT0+e3Ioe2NhcmV0OnQ9Pih7ImNhcmV0LWNvbG9yIjpYKHQpfSl9LHt2YWx1ZXM6eGUoZSgiY2FyZXRDb2xvciIpKSx0eXBlOlsiY29sb3IiLCJhbnkiXX0pfSxhY2NlbnRDb2xvcjooe21hdGNoVXRpbGl0aWVzOnIsdGhlbWU6ZX0pPT57cih7YWNjZW50OnQ9Pih7ImFjY2VudC1jb2xvciI6WCh0KX0pfSx7dmFsdWVzOnhlKGUoImFjY2VudENvbG9yIikpLHR5cGU6WyJjb2xvciIsImFueSJdfSl9LG9wYWNpdHk6TCgib3BhY2l0eSIsW1sib3BhY2l0eSIsWyJvcGFjaXR5Il1dXSksYmFja2dyb3VuZEJsZW5kTW9kZTooe2FkZFV0aWxpdGllczpyfSk9PntyKHsiLmJnLWJsZW5kLW5vcm1hbCI6eyJiYWNrZ3JvdW5kLWJsZW5kLW1vZGUiOiJub3JtYWwifSwiLmJnLWJsZW5kLW11bHRpcGx5Ijp7ImJhY2tncm91bmQtYmxlbmQtbW9kZSI6Im11bHRpcGx5In0sIi5iZy1ibGVuZC1zY3JlZW4iOnsiYmFja2dyb3VuZC1ibGVuZC1tb2RlIjoic2NyZWVuIn0sIi5iZy1ibGVuZC1vdmVybGF5Ijp7ImJhY2tncm91bmQtYmxlbmQtbW9kZSI6Im92ZXJsYXkifSwiLmJnLWJsZW5kLWRhcmtlbiI6eyJiYWNrZ3JvdW5kLWJsZW5kLW1vZGUiOiJkYXJrZW4ifSwiLmJnLWJsZW5kLWxpZ2h0ZW4iOnsiYmFja2dyb3VuZC1ibGVuZC1tb2RlIjoibGlnaHRlbiJ9LCIuYmctYmxlbmQtY29sb3ItZG9kZ2UiOnsiYmFja2dyb3VuZC1ibGVuZC1tb2RlIjoiY29sb3ItZG9kZ2UifSwiLmJnLWJsZW5kLWNvbG9yLWJ1cm4iOnsiYmFja2dyb3VuZC1ibGVuZC1tb2RlIjoiY29sb3ItYnVybiJ9LCIuYmctYmxlbmQtaGFyZC1saWdodCI6eyJiYWNrZ3JvdW5kLWJsZW5kLW1vZGUiOiJoYXJkLWxpZ2h0In0sIi5iZy1ibGVuZC1zb2Z0LWxpZ2h0Ijp7ImJhY2tncm91bmQtYmxlbmQtbW9kZSI6InNvZnQtbGlnaHQifSwiLmJnLWJsZW5kLWRpZmZlcmVuY2UiOnsiYmFja2dyb3VuZC1ibGVuZC1tb2RlIjoiZGlmZmVyZW5jZSJ9LCIuYmctYmxlbmQtZXhjbHVzaW9uIjp7ImJhY2tncm91bmQtYmxlbmQtbW9kZSI6ImV4Y2x1c2lvbiJ9LCIuYmctYmxlbmQtaHVlIjp7ImJhY2tncm91bmQtYmxlbmQtbW9kZSI6Imh1ZSJ9LCIuYmctYmxlbmQtc2F0dXJhdGlvbiI6eyJiYWNrZ3JvdW5kLWJsZW5kLW1vZGUiOiJzYXR1cmF0aW9uIn0sIi5iZy1ibGVuZC1jb2xvciI6eyJiYWNrZ3JvdW5kLWJsZW5kLW1vZGUiOiJjb2xvciJ9LCIuYmctYmxlbmQtbHVtaW5vc2l0eSI6eyJiYWNrZ3JvdW5kLWJsZW5kLW1vZGUiOiJsdW1pbm9zaXR5In19KX0sbWl4QmxlbmRNb2RlOih7YWRkVXRpbGl0aWVzOnJ9KT0+e3IoeyIubWl4LWJsZW5kLW5vcm1hbCI6eyJtaXgtYmxlbmQtbW9kZSI6Im5vcm1hbCJ9LCIubWl4LWJsZW5kLW11bHRpcGx5Ijp7Im1peC1ibGVuZC1tb2RlIjoibXVsdGlwbHkifSwiLm1peC1ibGVuZC1zY3JlZW4iOnsibWl4LWJsZW5kLW1vZGUiOiJzY3JlZW4ifSwiLm1peC1ibGVuZC1vdmVybGF5Ijp7Im1peC1ibGVuZC1tb2RlIjoib3ZlcmxheSJ9LCIubWl4LWJsZW5kLWRhcmtlbiI6eyJtaXgtYmxlbmQtbW9kZSI6ImRhcmtlbiJ9LCIubWl4LWJsZW5kLWxpZ2h0ZW4iOnsibWl4LWJsZW5kLW1vZGUiOiJsaWdodGVuIn0sIi5taXgtYmxlbmQtY29sb3ItZG9kZ2UiOnsibWl4LWJsZW5kLW1vZGUiOiJjb2xvci1kb2RnZSJ9LCIubWl4LWJsZW5kLWNvbG9yLWJ1cm4iOnsibWl4LWJsZW5kLW1vZGUiOiJjb2xvci1idXJuIn0sIi5taXgtYmxlbmQtaGFyZC1saWdodCI6eyJtaXgtYmxlbmQtbW9kZSI6ImhhcmQtbGlnaHQifSwiLm1peC1ibGVuZC1zb2Z0LWxpZ2h0Ijp7Im1peC1ibGVuZC1tb2RlIjoic29mdC1saWdodCJ9LCIubWl4LWJsZW5kLWRpZmZlcmVuY2UiOnsibWl4LWJsZW5kLW1vZGUiOiJkaWZmZXJlbmNlIn0sIi5taXgtYmxlbmQtZXhjbHVzaW9uIjp7Im1peC1ibGVuZC1tb2RlIjoiZXhjbHVzaW9uIn0sIi5taXgtYmxlbmQtaHVlIjp7Im1peC1ibGVuZC1tb2RlIjoiaHVlIn0sIi5taXgtYmxlbmQtc2F0dXJhdGlvbiI6eyJtaXgtYmxlbmQtbW9kZSI6InNhdHVyYXRpb24ifSwiLm1peC1ibGVuZC1jb2xvciI6eyJtaXgtYmxlbmQtbW9kZSI6ImNvbG9yIn0sIi5taXgtYmxlbmQtbHVtaW5vc2l0eSI6eyJtaXgtYmxlbmQtbW9kZSI6Imx1bWlub3NpdHkifSwiLm1peC1ibGVuZC1wbHVzLWRhcmtlciI6eyJtaXgtYmxlbmQtbW9kZSI6InBsdXMtZGFya2VyIn0sIi5taXgtYmxlbmQtcGx1cy1saWdodGVyIjp7Im1peC1ibGVuZC1tb2RlIjoicGx1cy1saWdodGVyIn19KX0sYm94U2hhZG93OigoKT0+e2xldCByPW10KCJib3hTaGFkb3ciKSxlPVsidmFyKC0tdHctcmluZy1vZmZzZXQtc2hhZG93LCAwIDAgIzAwMDApIiwidmFyKC0tdHctcmluZy1zaGFkb3csIDAgMCAjMDAwMCkiLCJ2YXIoLS10dy1zaGFkb3cpIl0uam9pbigiLCAiKTtyZXR1cm4gZnVuY3Rpb24oe21hdGNoVXRpbGl0aWVzOnQsYWRkRGVmYXVsdHM6aSx0aGVtZTpufSl7aSgiYm94LXNoYWRvdyIseyItLXR3LXJpbmctb2Zmc2V0LXNoYWRvdyI6IjAgMCAjMDAwMCIsIi0tdHctcmluZy1zaGFkb3ciOiIwIDAgIzAwMDAiLCItLXR3LXNoYWRvdyI6IjAgMCAjMDAwMCIsIi0tdHctc2hhZG93LWNvbG9yZWQiOiIwIDAgIzAwMDAifSksdCh7c2hhZG93OnM9PntzPXIocyk7bGV0IGE9ZW4ocyk7Zm9yKGxldCBvIG9mIGEpIW8udmFsaWR8fChvLmNvbG9yPSJ2YXIoLS10dy1zaGFkb3ctY29sb3IpIik7cmV0dXJueyJAZGVmYXVsdHMgYm94LXNoYWRvdyI6e30sIi0tdHctc2hhZG93IjpzPT09Im5vbmUiPyIwIDAgIzAwMDAiOnMsIi0tdHctc2hhZG93LWNvbG9yZWQiOnM9PT0ibm9uZSI/IjAgMCAjMDAwMCI6TGYoYSksImJveC1zaGFkb3ciOmV9fX0se3ZhbHVlczpuKCJib3hTaGFkb3ciKSx0eXBlOlsic2hhZG93Il19KX19KSgpLGJveFNoYWRvd0NvbG9yOih7bWF0Y2hVdGlsaXRpZXM6cix0aGVtZTplfSk9PntyKHtzaGFkb3c6dD0+KHsiLS10dy1zaGFkb3ctY29sb3IiOlgodCksIi0tdHctc2hhZG93IjoidmFyKC0tdHctc2hhZG93LWNvbG9yZWQpIn0pfSx7dmFsdWVzOnhlKGUoImJveFNoYWRvd0NvbG9yIikpLHR5cGU6WyJjb2xvciIsImFueSJdfSl9LG91dGxpbmVTdHlsZTooe2FkZFV0aWxpdGllczpyfSk9PntyKHsiLm91dGxpbmUtbm9uZSI6e291dGxpbmU6IjJweCBzb2xpZCB0cmFuc3BhcmVudCIsIm91dGxpbmUtb2Zmc2V0IjoiMnB4In0sIi5vdXRsaW5lIjp7Im91dGxpbmUtc3R5bGUiOiJzb2xpZCJ9LCIub3V0bGluZS1kYXNoZWQiOnsib3V0bGluZS1zdHlsZSI6ImRhc2hlZCJ9LCIub3V0bGluZS1kb3R0ZWQiOnsib3V0bGluZS1zdHlsZSI6ImRvdHRlZCJ9LCIub3V0bGluZS1kb3VibGUiOnsib3V0bGluZS1zdHlsZSI6ImRvdWJsZSJ9fSl9LG91dGxpbmVXaWR0aDpMKCJvdXRsaW5lV2lkdGgiLFtbIm91dGxpbmUiLFsib3V0bGluZS13aWR0aCJdXV0se3R5cGU6WyJsZW5ndGgiLCJudW1iZXIiLCJwZXJjZW50YWdlIl19KSxvdXRsaW5lT2Zmc2V0OkwoIm91dGxpbmVPZmZzZXQiLFtbIm91dGxpbmUtb2Zmc2V0IixbIm91dGxpbmUtb2Zmc2V0Il1dXSx7dHlwZTpbImxlbmd0aCIsIm51bWJlciIsInBlcmNlbnRhZ2UiLCJhbnkiXSxzdXBwb3J0c05lZ2F0aXZlVmFsdWVzOiEwfSksb3V0bGluZUNvbG9yOih7bWF0Y2hVdGlsaXRpZXM6cix0aGVtZTplfSk9PntyKHtvdXRsaW5lOnQ9Pih7Im91dGxpbmUtY29sb3IiOlgodCl9KX0se3ZhbHVlczp4ZShlKCJvdXRsaW5lQ29sb3IiKSksdHlwZTpbImNvbG9yIiwiYW55Il19KX0scmluZ1dpZHRoOih7bWF0Y2hVdGlsaXRpZXM6cixhZGREZWZhdWx0czplLGFkZFV0aWxpdGllczp0LHRoZW1lOmksY29uZmlnOm59KT0+e2xldCBzPSgoKT0+e2lmKHdlKG4oKSwicmVzcGVjdERlZmF1bHRSaW5nQ29sb3JPcGFjaXR5IikpcmV0dXJuIGkoInJpbmdDb2xvci5ERUZBVUxUIik7bGV0IGE9aSgicmluZ09wYWNpdHkuREVGQVVMVCIsIjAuNSIpO3JldHVybiBpKCJyaW5nQ29sb3IiKT8uREVGQVVMVD9KZShpKCJyaW5nQ29sb3IiKT8uREVGQVVMVCxhLGByZ2IoMTQ3IDE5NyAyNTMgLyAke2F9KWApOmByZ2IoMTQ3IDE5NyAyNTMgLyAke2F9KWB9KSgpO2UoInJpbmctd2lkdGgiLHsiLS10dy1yaW5nLWluc2V0IjoiICIsIi0tdHctcmluZy1vZmZzZXQtd2lkdGgiOmkoInJpbmdPZmZzZXRXaWR0aC5ERUZBVUxUIiwiMHB4IiksIi0tdHctcmluZy1vZmZzZXQtY29sb3IiOmkoInJpbmdPZmZzZXRDb2xvci5ERUZBVUxUIiwiI2ZmZiIpLCItLXR3LXJpbmctY29sb3IiOnMsIi0tdHctcmluZy1vZmZzZXQtc2hhZG93IjoiMCAwICMwMDAwIiwiLS10dy1yaW5nLXNoYWRvdyI6IjAgMCAjMDAwMCIsIi0tdHctc2hhZG93IjoiMCAwICMwMDAwIiwiLS10dy1zaGFkb3ctY29sb3JlZCI6IjAgMCAjMDAwMCJ9KSxyKHtyaW5nOmE9Pih7IkBkZWZhdWx0cyByaW5nLXdpZHRoIjp7fSwiLS10dy1yaW5nLW9mZnNldC1zaGFkb3ciOiJ2YXIoLS10dy1yaW5nLWluc2V0KSAwIDAgMCB2YXIoLS10dy1yaW5nLW9mZnNldC13aWR0aCkgdmFyKC0tdHctcmluZy1vZmZzZXQtY29sb3IpIiwiLS10dy1yaW5nLXNoYWRvdyI6YHZhcigtLXR3LXJpbmctaW5zZXQpIDAgMCAwIGNhbGMoJHthfSArIHZhcigtLXR3LXJpbmctb2Zmc2V0LXdpZHRoKSkgdmFyKC0tdHctcmluZy1jb2xvcilgLCJib3gtc2hhZG93IjpbInZhcigtLXR3LXJpbmctb2Zmc2V0LXNoYWRvdykiLCJ2YXIoLS10dy1yaW5nLXNoYWRvdykiLCJ2YXIoLS10dy1zaGFkb3csIDAgMCAjMDAwMCkiXS5qb2luKCIsICIpfSl9LHt2YWx1ZXM6aSgicmluZ1dpZHRoIiksdHlwZToibGVuZ3RoIn0pLHQoeyIucmluZy1pbnNldCI6eyJAZGVmYXVsdHMgcmluZy13aWR0aCI6e30sIi0tdHctcmluZy1pbnNldCI6Imluc2V0In19KX0scmluZ0NvbG9yOih7bWF0Y2hVdGlsaXRpZXM6cix0aGVtZTplLGNvcmVQbHVnaW5zOnR9KT0+e3Ioe3Jpbmc6aT0+dCgicmluZ09wYWNpdHkiKT9BZSh7Y29sb3I6aSxwcm9wZXJ0eToiLS10dy1yaW5nLWNvbG9yIix2YXJpYWJsZToiLS10dy1yaW5nLW9wYWNpdHkifSk6eyItLXR3LXJpbmctY29sb3IiOlgoaSl9fSx7dmFsdWVzOk9iamVjdC5mcm9tRW50cmllcyhPYmplY3QuZW50cmllcyh4ZShlKCJyaW5nQ29sb3IiKSkpLmZpbHRlcigoW2ldKT0+aSE9PSJERUZBVUxUIikpLHR5cGU6WyJjb2xvciIsImFueSJdfSl9LHJpbmdPcGFjaXR5OnI9PntsZXR7Y29uZmlnOmV9PXI7cmV0dXJuIEwoInJpbmdPcGFjaXR5IixbWyJyaW5nLW9wYWNpdHkiLFsiLS10dy1yaW5nLW9wYWNpdHkiXV1dLHtmaWx0ZXJEZWZhdWx0OiF3ZShlKCksInJlc3BlY3REZWZhdWx0UmluZ0NvbG9yT3BhY2l0eSIpfSkocil9LHJpbmdPZmZzZXRXaWR0aDpMKCJyaW5nT2Zmc2V0V2lkdGgiLFtbInJpbmctb2Zmc2V0IixbIi0tdHctcmluZy1vZmZzZXQtd2lkdGgiXV1dLHt0eXBlOiJsZW5ndGgifSkscmluZ09mZnNldENvbG9yOih7bWF0Y2hVdGlsaXRpZXM6cix0aGVtZTplfSk9PntyKHsicmluZy1vZmZzZXQiOnQ9Pih7Ii0tdHctcmluZy1vZmZzZXQtY29sb3IiOlgodCl9KX0se3ZhbHVlczp4ZShlKCJyaW5nT2Zmc2V0Q29sb3IiKSksdHlwZTpbImNvbG9yIiwiYW55Il19KX0sYmx1cjooe21hdGNoVXRpbGl0aWVzOnIsdGhlbWU6ZX0pPT57cih7Ymx1cjp0PT4oeyItLXR3LWJsdXIiOnQudHJpbSgpPT09IiI/IiAiOmBibHVyKCR7dH0pYCwiQGRlZmF1bHRzIGZpbHRlciI6e30sZmlsdGVyOm50fSl9LHt2YWx1ZXM6ZSgiYmx1ciIpfSl9LGJyaWdodG5lc3M6KHttYXRjaFV0aWxpdGllczpyLHRoZW1lOmV9KT0+e3Ioe2JyaWdodG5lc3M6dD0+KHsiLS10dy1icmlnaHRuZXNzIjpgYnJpZ2h0bmVzcygke3R9KWAsIkBkZWZhdWx0cyBmaWx0ZXIiOnt9LGZpbHRlcjpudH0pfSx7dmFsdWVzOmUoImJyaWdodG5lc3MiKX0pfSxjb250cmFzdDooe21hdGNoVXRpbGl0aWVzOnIsdGhlbWU6ZX0pPT57cih7Y29udHJhc3Q6dD0+KHsiLS10dy1jb250cmFzdCI6YGNvbnRyYXN0KCR7dH0pYCwiQGRlZmF1bHRzIGZpbHRlciI6e30sZmlsdGVyOm50fSl9LHt2YWx1ZXM6ZSgiY29udHJhc3QiKX0pfSxkcm9wU2hhZG93Oih7bWF0Y2hVdGlsaXRpZXM6cix0aGVtZTplfSk9PntyKHsiZHJvcC1zaGFkb3ciOnQ9Pih7Ii0tdHctZHJvcC1zaGFkb3ciOkFycmF5LmlzQXJyYXkodCk/dC5tYXAoaT0+YGRyb3Atc2hhZG93KCR7aX0pYCkuam9pbigiICIpOmBkcm9wLXNoYWRvdygke3R9KWAsIkBkZWZhdWx0cyBmaWx0ZXIiOnt9LGZpbHRlcjpudH0pfSx7dmFsdWVzOmUoImRyb3BTaGFkb3ciKX0pfSxncmF5c2NhbGU6KHttYXRjaFV0aWxpdGllczpyLHRoZW1lOmV9KT0+e3Ioe2dyYXlzY2FsZTp0PT4oeyItLXR3LWdyYXlzY2FsZSI6YGdyYXlzY2FsZSgke3R9KWAsIkBkZWZhdWx0cyBmaWx0ZXIiOnt9LGZpbHRlcjpudH0pfSx7dmFsdWVzOmUoImdyYXlzY2FsZSIpfSl9LGh1ZVJvdGF0ZTooe21hdGNoVXRpbGl0aWVzOnIsdGhlbWU6ZX0pPT57cih7Imh1ZS1yb3RhdGUiOnQ9Pih7Ii0tdHctaHVlLXJvdGF0ZSI6YGh1ZS1yb3RhdGUoJHt0fSlgLCJAZGVmYXVsdHMgZmlsdGVyIjp7fSxmaWx0ZXI6bnR9KX0se3ZhbHVlczplKCJodWVSb3RhdGUiKSxzdXBwb3J0c05lZ2F0aXZlVmFsdWVzOiEwfSl9LGludmVydDooe21hdGNoVXRpbGl0aWVzOnIsdGhlbWU6ZX0pPT57cih7aW52ZXJ0OnQ9Pih7Ii0tdHctaW52ZXJ0IjpgaW52ZXJ0KCR7dH0pYCwiQGRlZmF1bHRzIGZpbHRlciI6e30sZmlsdGVyOm50fSl9LHt2YWx1ZXM6ZSgiaW52ZXJ0Iil9KX0sc2F0dXJhdGU6KHttYXRjaFV0aWxpdGllczpyLHRoZW1lOmV9KT0+e3Ioe3NhdHVyYXRlOnQ9Pih7Ii0tdHctc2F0dXJhdGUiOmBzYXR1cmF0ZSgke3R9KWAsIkBkZWZhdWx0cyBmaWx0ZXIiOnt9LGZpbHRlcjpudH0pfSx7dmFsdWVzOmUoInNhdHVyYXRlIil9KX0sc2VwaWE6KHttYXRjaFV0aWxpdGllczpyLHRoZW1lOmV9KT0+e3Ioe3NlcGlhOnQ9Pih7Ii0tdHctc2VwaWEiOmBzZXBpYSgke3R9KWAsIkBkZWZhdWx0cyBmaWx0ZXIiOnt9LGZpbHRlcjpudH0pfSx7dmFsdWVzOmUoInNlcGlhIil9KX0sZmlsdGVyOih7YWRkRGVmYXVsdHM6cixhZGRVdGlsaXRpZXM6ZX0pPT57cigiZmlsdGVyIix7Ii0tdHctYmx1ciI6IiAiLCItLXR3LWJyaWdodG5lc3MiOiIgIiwiLS10dy1jb250cmFzdCI6IiAiLCItLXR3LWdyYXlzY2FsZSI6IiAiLCItLXR3LWh1ZS1yb3RhdGUiOiIgIiwiLS10dy1pbnZlcnQiOiIgIiwiLS10dy1zYXR1cmF0ZSI6IiAiLCItLXR3LXNlcGlhIjoiICIsIi0tdHctZHJvcC1zaGFkb3ciOiIgIn0pLGUoeyIuZmlsdGVyIjp7IkBkZWZhdWx0cyBmaWx0ZXIiOnt9LGZpbHRlcjpudH0sIi5maWx0ZXItbm9uZSI6e2ZpbHRlcjoibm9uZSJ9fSl9LGJhY2tkcm9wQmx1cjooe21hdGNoVXRpbGl0aWVzOnIsdGhlbWU6ZX0pPT57cih7ImJhY2tkcm9wLWJsdXIiOnQ9Pih7Ii0tdHctYmFja2Ryb3AtYmx1ciI6dC50cmltKCk9PT0iIj8iICI6YGJsdXIoJHt0fSlgLCJAZGVmYXVsdHMgYmFja2Ryb3AtZmlsdGVyIjp7fSwiLXdlYmtpdC1iYWNrZHJvcC1maWx0ZXIiOmdlLCJiYWNrZHJvcC1maWx0ZXIiOmdlfSl9LHt2YWx1ZXM6ZSgiYmFja2Ryb3BCbHVyIil9KX0sYmFja2Ryb3BCcmlnaHRuZXNzOih7bWF0Y2hVdGlsaXRpZXM6cix0aGVtZTplfSk9PntyKHsiYmFja2Ryb3AtYnJpZ2h0bmVzcyI6dD0+KHsiLS10dy1iYWNrZHJvcC1icmlnaHRuZXNzIjpgYnJpZ2h0bmVzcygke3R9KWAsIkBkZWZhdWx0cyBiYWNrZHJvcC1maWx0ZXIiOnt9LCItd2Via2l0LWJhY2tkcm9wLWZpbHRlciI6Z2UsImJhY2tkcm9wLWZpbHRlciI6Z2V9KX0se3ZhbHVlczplKCJiYWNrZHJvcEJyaWdodG5lc3MiKX0pfSxiYWNrZHJvcENvbnRyYXN0Oih7bWF0Y2hVdGlsaXRpZXM6cix0aGVtZTplfSk9PntyKHsiYmFja2Ryb3AtY29udHJhc3QiOnQ9Pih7Ii0tdHctYmFja2Ryb3AtY29udHJhc3QiOmBjb250cmFzdCgke3R9KWAsIkBkZWZhdWx0cyBiYWNrZHJvcC1maWx0ZXIiOnt9LCItd2Via2l0LWJhY2tkcm9wLWZpbHRlciI6Z2UsImJhY2tkcm9wLWZpbHRlciI6Z2V9KX0se3ZhbHVlczplKCJiYWNrZHJvcENvbnRyYXN0Iil9KX0sYmFja2Ryb3BHcmF5c2NhbGU6KHttYXRjaFV0aWxpdGllczpyLHRoZW1lOmV9KT0+e3IoeyJiYWNrZHJvcC1ncmF5c2NhbGUiOnQ9Pih7Ii0tdHctYmFja2Ryb3AtZ3JheXNjYWxlIjpgZ3JheXNjYWxlKCR7dH0pYCwiQGRlZmF1bHRzIGJhY2tkcm9wLWZpbHRlciI6e30sIi13ZWJraXQtYmFja2Ryb3AtZmlsdGVyIjpnZSwiYmFja2Ryb3AtZmlsdGVyIjpnZX0pfSx7dmFsdWVzOmUoImJhY2tkcm9wR3JheXNjYWxlIil9KX0sYmFja2Ryb3BIdWVSb3RhdGU6KHttYXRjaFV0aWxpdGllczpyLHRoZW1lOmV9KT0+e3IoeyJiYWNrZHJvcC1odWUtcm90YXRlIjp0PT4oeyItLXR3LWJhY2tkcm9wLWh1ZS1yb3RhdGUiOmBodWUtcm90YXRlKCR7dH0pYCwiQGRlZmF1bHRzIGJhY2tkcm9wLWZpbHRlciI6e30sIi13ZWJraXQtYmFja2Ryb3AtZmlsdGVyIjpnZSwiYmFja2Ryb3AtZmlsdGVyIjpnZX0pfSx7dmFsdWVzOmUoImJhY2tkcm9wSHVlUm90YXRlIiksc3VwcG9ydHNOZWdhdGl2ZVZhbHVlczohMH0pfSxiYWNrZHJvcEludmVydDooe21hdGNoVXRpbGl0aWVzOnIsdGhlbWU6ZX0pPT57cih7ImJhY2tkcm9wLWludmVydCI6dD0+KHsiLS10dy1iYWNrZHJvcC1pbnZlcnQiOmBpbnZlcnQoJHt0fSlgLCJAZGVmYXVsdHMgYmFja2Ryb3AtZmlsdGVyIjp7fSwiLXdlYmtpdC1iYWNrZHJvcC1maWx0ZXIiOmdlLCJiYWNrZHJvcC1maWx0ZXIiOmdlfSl9LHt2YWx1ZXM6ZSgiYmFja2Ryb3BJbnZlcnQiKX0pfSxiYWNrZHJvcE9wYWNpdHk6KHttYXRjaFV0aWxpdGllczpyLHRoZW1lOmV9KT0+e3IoeyJiYWNrZHJvcC1vcGFjaXR5Ijp0PT4oeyItLXR3LWJhY2tkcm9wLW9wYWNpdHkiOmBvcGFjaXR5KCR7dH0pYCwiQGRlZmF1bHRzIGJhY2tkcm9wLWZpbHRlciI6e30sIi13ZWJraXQtYmFja2Ryb3AtZmlsdGVyIjpnZSwiYmFja2Ryb3AtZmlsdGVyIjpnZX0pfSx7dmFsdWVzOmUoImJhY2tkcm9wT3BhY2l0eSIpfSl9LGJhY2tkcm9wU2F0dXJhdGU6KHttYXRjaFV0aWxpdGllczpyLHRoZW1lOmV9KT0+e3IoeyJiYWNrZHJvcC1zYXR1cmF0ZSI6dD0+KHsiLS10dy1iYWNrZHJvcC1zYXR1cmF0ZSI6YHNhdHVyYXRlKCR7dH0pYCwiQGRlZmF1bHRzIGJhY2tkcm9wLWZpbHRlciI6e30sIi13ZWJraXQtYmFja2Ryb3AtZmlsdGVyIjpnZSwiYmFja2Ryb3AtZmlsdGVyIjpnZX0pfSx7dmFsdWVzOmUoImJhY2tkcm9wU2F0dXJhdGUiKX0pfSxiYWNrZHJvcFNlcGlhOih7bWF0Y2hVdGlsaXRpZXM6cix0aGVtZTplfSk9PntyKHsiYmFja2Ryb3Atc2VwaWEiOnQ9Pih7Ii0tdHctYmFja2Ryb3Atc2VwaWEiOmBzZXBpYSgke3R9KWAsIkBkZWZhdWx0cyBiYWNrZHJvcC1maWx0ZXIiOnt9LCItd2Via2l0LWJhY2tkcm9wLWZpbHRlciI6Z2UsImJhY2tkcm9wLWZpbHRlciI6Z2V9KX0se3ZhbHVlczplKCJiYWNrZHJvcFNlcGlhIil9KX0sYmFja2Ryb3BGaWx0ZXI6KHthZGREZWZhdWx0czpyLGFkZFV0aWxpdGllczplfSk9PntyKCJiYWNrZHJvcC1maWx0ZXIiLHsiLS10dy1iYWNrZHJvcC1ibHVyIjoiICIsIi0tdHctYmFja2Ryb3AtYnJpZ2h0bmVzcyI6IiAiLCItLXR3LWJhY2tkcm9wLWNvbnRyYXN0IjoiICIsIi0tdHctYmFja2Ryb3AtZ3JheXNjYWxlIjoiICIsIi0tdHctYmFja2Ryb3AtaHVlLXJvdGF0ZSI6IiAiLCItLXR3LWJhY2tkcm9wLWludmVydCI6IiAiLCItLXR3LWJhY2tkcm9wLW9wYWNpdHkiOiIgIiwiLS10dy1iYWNrZHJvcC1zYXR1cmF0ZSI6IiAiLCItLXR3LWJhY2tkcm9wLXNlcGlhIjoiICJ9KSxlKHsiLmJhY2tkcm9wLWZpbHRlciI6eyJAZGVmYXVsdHMgYmFja2Ryb3AtZmlsdGVyIjp7fSwiLXdlYmtpdC1iYWNrZHJvcC1maWx0ZXIiOmdlLCJiYWNrZHJvcC1maWx0ZXIiOmdlfSwiLmJhY2tkcm9wLWZpbHRlci1ub25lIjp7Ii13ZWJraXQtYmFja2Ryb3AtZmlsdGVyIjoibm9uZSIsImJhY2tkcm9wLWZpbHRlciI6Im5vbmUifX0pfSx0cmFuc2l0aW9uUHJvcGVydHk6KHttYXRjaFV0aWxpdGllczpyLHRoZW1lOmV9KT0+e2xldCB0PWUoInRyYW5zaXRpb25UaW1pbmdGdW5jdGlvbi5ERUZBVUxUIiksaT1lKCJ0cmFuc2l0aW9uRHVyYXRpb24uREVGQVVMVCIpO3Ioe3RyYW5zaXRpb246bj0+KHsidHJhbnNpdGlvbi1wcm9wZXJ0eSI6biwuLi5uPT09Im5vbmUiP3t9OnsidHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24iOnQsInRyYW5zaXRpb24tZHVyYXRpb24iOml9fSl9LHt2YWx1ZXM6ZSgidHJhbnNpdGlvblByb3BlcnR5Iil9KX0sdHJhbnNpdGlvbkRlbGF5OkwoInRyYW5zaXRpb25EZWxheSIsW1siZGVsYXkiLFsidHJhbnNpdGlvbkRlbGF5Il1dXSksdHJhbnNpdGlvbkR1cmF0aW9uOkwoInRyYW5zaXRpb25EdXJhdGlvbiIsW1siZHVyYXRpb24iLFsidHJhbnNpdGlvbkR1cmF0aW9uIl1dXSx7ZmlsdGVyRGVmYXVsdDohMH0pLHRyYW5zaXRpb25UaW1pbmdGdW5jdGlvbjpMKCJ0cmFuc2l0aW9uVGltaW5nRnVuY3Rpb24iLFtbImVhc2UiLFsidHJhbnNpdGlvblRpbWluZ0Z1bmN0aW9uIl1dXSx7ZmlsdGVyRGVmYXVsdDohMH0pLHdpbGxDaGFuZ2U6TCgid2lsbENoYW5nZSIsW1sid2lsbC1jaGFuZ2UiLFsid2lsbC1jaGFuZ2UiXV1dKSxjb250YWluOih7YWRkRGVmYXVsdHM6cixhZGRVdGlsaXRpZXM6ZX0pPT57bGV0IHQ9InZhcigtLXR3LWNvbnRhaW4tc2l6ZSkgdmFyKC0tdHctY29udGFpbi1sYXlvdXQpIHZhcigtLXR3LWNvbnRhaW4tcGFpbnQpIHZhcigtLXR3LWNvbnRhaW4tc3R5bGUpIjtyKCJjb250YWluIix7Ii0tdHctY29udGFpbi1zaXplIjoiICIsIi0tdHctY29udGFpbi1sYXlvdXQiOiIgIiwiLS10dy1jb250YWluLXBhaW50IjoiICIsIi0tdHctY29udGFpbi1zdHlsZSI6IiAifSksZSh7Ii5jb250YWluLW5vbmUiOntjb250YWluOiJub25lIn0sIi5jb250YWluLWNvbnRlbnQiOntjb250YWluOiJjb250ZW50In0sIi5jb250YWluLXN0cmljdCI6e2NvbnRhaW46InN0cmljdCJ9LCIuY29udGFpbi1zaXplIjp7IkBkZWZhdWx0cyBjb250YWluIjp7fSwiLS10dy1jb250YWluLXNpemUiOiJzaXplIixjb250YWluOnR9LCIuY29udGFpbi1pbmxpbmUtc2l6ZSI6eyJAZGVmYXVsdHMgY29udGFpbiI6e30sIi0tdHctY29udGFpbi1zaXplIjoiaW5saW5lLXNpemUiLGNvbnRhaW46dH0sIi5jb250YWluLWxheW91dCI6eyJAZGVmYXVsdHMgY29udGFpbiI6e30sIi0tdHctY29udGFpbi1sYXlvdXQiOiJsYXlvdXQiLGNvbnRhaW46dH0sIi5jb250YWluLXBhaW50Ijp7IkBkZWZhdWx0cyBjb250YWluIjp7fSwiLS10dy1jb250YWluLXBhaW50IjoicGFpbnQiLGNvbnRhaW46dH0sIi5jb250YWluLXN0eWxlIjp7IkBkZWZhdWx0cyBjb250YWluIjp7fSwiLS10dy1jb250YWluLXN0eWxlIjoic3R5bGUiLGNvbnRhaW46dH19KX0sY29udGVudDpMKCJjb250ZW50IixbWyJjb250ZW50IixbIi0tdHctY29udGVudCIsWyJjb250ZW50IiwidmFyKC0tdHctY29udGVudCkiXV1dXSksZm9yY2VkQ29sb3JBZGp1c3Q6KHthZGRVdGlsaXRpZXM6cn0pPT57cih7Ii5mb3JjZWQtY29sb3ItYWRqdXN0LWF1dG8iOnsiZm9yY2VkLWNvbG9yLWFkanVzdCI6ImF1dG8ifSwiLmZvcmNlZC1jb2xvci1hZGp1c3Qtbm9uZSI6eyJmb3JjZWQtY29sb3ItYWRqdXN0Ijoibm9uZSJ9fSl9fX0pO2Z1bmN0aW9uIGhfKHIpe2lmKHI9PT12b2lkIDApcmV0dXJuITE7aWYocj09PSJ0cnVlInx8cj09PSIxIilyZXR1cm4hMDtpZihyPT09ImZhbHNlInx8cj09PSIwIilyZXR1cm4hMTtpZihyPT09IioiKXJldHVybiEwO2xldCBlPXIuc3BsaXQoIiwiKS5tYXAodD0+dC5zcGxpdCgiOiIpWzBdKTtyZXR1cm4gZS5pbmNsdWRlcygiLXRhaWx3aW5kY3NzIik/ITE6ISFlLmluY2x1ZGVzKCJ0YWlsd2luZGNzcyIpfXZhciBaZSx3aCx2aCxlcyxObyxndCxUaSxJdD1QKCgpPT57dSgpO1plPXR5cGVvZiBtIT0idW5kZWZpbmVkIj97Tk9ERV9FTlY6InByb2R1Y3Rpb24iLERFQlVHOmhfKG0uZW52LkRFQlVHKX06e05PREVfRU5WOiJwcm9kdWN0aW9uIixERUJVRzohMX0sd2g9bmV3IE1hcCx2aD1uZXcgTWFwLGVzPW5ldyBNYXAsTm89bmV3IE1hcCxndD1uZXcgU3RyaW5nKCIqIiksVGk9U3ltYm9sKCJfX05PTkVfXyIpfSk7ZnVuY3Rpb24gY3Iocil7bGV0IGU9W10sdD0hMTtmb3IobGV0IGk9MDtpPHIubGVuZ3RoO2krKyl7bGV0IG49cltpXTtpZihuPT09IjoiJiYhdCYmZS5sZW5ndGg9PT0wKXJldHVybiExO2lmKG1fLmhhcyhuKSYmcltpLTFdIT09IlxcIiYmKHQ9IXQpLCF0JiZyW2ktMV0hPT0iXFwiKXtpZih4aC5oYXMobikpZS5wdXNoKG4pO2Vsc2UgaWYoa2guaGFzKG4pKXtsZXQgcz1raC5nZXQobik7aWYoZS5sZW5ndGg8PTB8fGUucG9wKCkhPT1zKXJldHVybiExfX19cmV0dXJuIShlLmxlbmd0aD4wKX12YXIgeGgsa2gsbV8sQm89UCgoKT0+e3UoKTt4aD1uZXcgTWFwKFtbInsiLCJ9Il0sWyJbIiwiXSJdLFsiKCIsIikiXV0pLGtoPW5ldyBNYXAoQXJyYXkuZnJvbSh4aC5lbnRyaWVzKCkpLm1hcCgoW3IsZV0pPT5bZSxyXSkpLG1fPW5ldyBTZXQoWyciJywiJyIsImAiXSl9KTtmdW5jdGlvbiBwcihyKXtsZXRbZV09U2gocik7cmV0dXJuIGUuZm9yRWFjaCgoW3QsaV0pPT50LnJlbW92ZUNoaWxkKGkpKSxyLm5vZGVzLnB1c2goLi4uZS5tYXAoKFssdF0pPT50KSkscn1mdW5jdGlvbiBTaChyKXtsZXQgZT1bXSx0PW51bGw7Zm9yKGxldCBpIG9mIHIubm9kZXMpaWYoaS50eXBlPT09ImNvbWJpbmF0b3IiKWU9ZS5maWx0ZXIoKFssbl0pPT5qbyhuKS5pbmNsdWRlcygianVtcGFibGUiKSksdD1udWxsO2Vsc2UgaWYoaS50eXBlPT09InBzZXVkbyIpe2dfKGkpPyh0PWksZS5wdXNoKFtyLGksbnVsbF0pKTp0JiZ5XyhpLHQpP2UucHVzaChbcixpLHRdKTp0PW51bGw7Zm9yKGxldCBuIG9mIGkubm9kZXM/P1tdKXtsZXRbcyxhXT1TaChuKTt0PWF8fHQsZS5wdXNoKC4uLnMpfX1yZXR1cm5bZSx0XX1mdW5jdGlvbiBBaChyKXtyZXR1cm4gci52YWx1ZS5zdGFydHNXaXRoKCI6OiIpfHxGb1tyLnZhbHVlXSE9PXZvaWQgMH1mdW5jdGlvbiBnXyhyKXtyZXR1cm4gQWgocikmJmpvKHIpLmluY2x1ZGVzKCJ0ZXJtaW5hbCIpfWZ1bmN0aW9uIHlfKHIsZSl7cmV0dXJuIHIudHlwZSE9PSJwc2V1ZG8ifHxBaChyKT8hMTpqbyhlKS5pbmNsdWRlcygiYWN0aW9uYWJsZSIpfWZ1bmN0aW9uIGpvKHIpe3JldHVybiBGb1tyLnZhbHVlXT8/Rm8uX19kZWZhdWx0X199dmFyIEZvLHRzPVAoKCk9Pnt1KCk7Rm89eyI6OmFmdGVyIjpbInRlcm1pbmFsIiwianVtcGFibGUiXSwiOjpiYWNrZHJvcCI6WyJ0ZXJtaW5hbCIsImp1bXBhYmxlIl0sIjo6YmVmb3JlIjpbInRlcm1pbmFsIiwianVtcGFibGUiXSwiOjpjdWUiOlsidGVybWluYWwiXSwiOjpjdWUtcmVnaW9uIjpbInRlcm1pbmFsIl0sIjo6Zmlyc3QtbGV0dGVyIjpbInRlcm1pbmFsIiwianVtcGFibGUiXSwiOjpmaXJzdC1saW5lIjpbInRlcm1pbmFsIiwianVtcGFibGUiXSwiOjpncmFtbWFyLWVycm9yIjpbInRlcm1pbmFsIl0sIjo6bWFya2VyIjpbInRlcm1pbmFsIiwianVtcGFibGUiXSwiOjpwYXJ0IjpbInRlcm1pbmFsIiwiYWN0aW9uYWJsZSJdLCI6OnBsYWNlaG9sZGVyIjpbInRlcm1pbmFsIiwianVtcGFibGUiXSwiOjpzZWxlY3Rpb24iOlsidGVybWluYWwiLCJqdW1wYWJsZSJdLCI6OnNsb3R0ZWQiOlsidGVybWluYWwiXSwiOjpzcGVsbGluZy1lcnJvciI6WyJ0ZXJtaW5hbCJdLCI6OnRhcmdldC10ZXh0IjpbInRlcm1pbmFsIl0sIjo6ZmlsZS1zZWxlY3Rvci1idXR0b24iOlsidGVybWluYWwiLCJhY3Rpb25hYmxlIl0sIjo6ZGVlcCI6WyJhY3Rpb25hYmxlIl0sIjo6di1kZWVwIjpbImFjdGlvbmFibGUiXSwiOjpuZy1kZWVwIjpbImFjdGlvbmFibGUiXSwiOmFmdGVyIjpbInRlcm1pbmFsIiwianVtcGFibGUiXSwiOmJlZm9yZSI6WyJ0ZXJtaW5hbCIsImp1bXBhYmxlIl0sIjpmaXJzdC1sZXR0ZXIiOlsidGVybWluYWwiLCJqdW1wYWJsZSJdLCI6Zmlyc3QtbGluZSI6WyJ0ZXJtaW5hbCIsImp1bXBhYmxlIl0sIjp3aGVyZSI6W10sIjppcyI6W10sIjpoYXMiOltdLF9fZGVmYXVsdF9fOlsidGVybWluYWwiLCJhY3Rpb25hYmxlIl19fSk7ZnVuY3Rpb24gZHIocix7Y29udGV4dDplLGNhbmRpZGF0ZTp0fSl7bGV0IGk9ZT8udGFpbHdpbmRDb25maWcucHJlZml4Pz8iIixuPXIubWFwKGE9PntsZXQgbz0oMCxzdC5kZWZhdWx0KSgpLmFzdFN5bmMoYS5mb3JtYXQpO3JldHVybnsuLi5hLGFzdDphLnJlc3BlY3RQcmVmaXg/dXIoaSxvKTpvfX0pLHM9c3QuZGVmYXVsdC5yb290KHtub2Rlczpbc3QuZGVmYXVsdC5zZWxlY3Rvcih7bm9kZXM6W3N0LmRlZmF1bHQuY2xhc3NOYW1lKHt2YWx1ZTpUZSh0KX0pXX0pXX0pO2ZvcihsZXR7YXN0OmF9b2YgbilbcyxhXT13XyhzLGEpLGEud2Fsa05lc3Rpbmcobz0+by5yZXBsYWNlV2l0aCguLi5zLm5vZGVzWzBdLm5vZGVzKSkscz1hO3JldHVybiBzfWZ1bmN0aW9uIF9oKHIpe2xldCBlPVtdO2Zvcig7ci5wcmV2KCkmJnIucHJldigpLnR5cGUhPT0iY29tYmluYXRvciI7KXI9ci5wcmV2KCk7Zm9yKDtyJiZyLnR5cGUhPT0iY29tYmluYXRvciI7KWUucHVzaChyKSxyPXIubmV4dCgpO3JldHVybiBlfWZ1bmN0aW9uIGJfKHIpe3JldHVybiByLnNvcnQoKGUsdCk9PmUudHlwZT09PSJ0YWciJiZ0LnR5cGU9PT0iY2xhc3MiPy0xOmUudHlwZT09PSJjbGFzcyImJnQudHlwZT09PSJ0YWciPzE6ZS50eXBlPT09ImNsYXNzIiYmdC50eXBlPT09InBzZXVkbyImJnQudmFsdWUuc3RhcnRzV2l0aCgiOjoiKT8tMTplLnR5cGU9PT0icHNldWRvIiYmZS52YWx1ZS5zdGFydHNXaXRoKCI6OiIpJiZ0LnR5cGU9PT0iY2xhc3MiPzE6ci5pbmRleChlKS1yLmluZGV4KHQpKSxyfWZ1bmN0aW9uIFVvKHIsZSl7bGV0IHQ9ITE7ci53YWxrKGk9PntpZihpLnR5cGU9PT0iY2xhc3MiJiZpLnZhbHVlPT09ZSlyZXR1cm4gdD0hMCwhMX0pLHR8fHIucmVtb3ZlKCl9ZnVuY3Rpb24gcnMocixlLHtjb250ZXh0OnQsY2FuZGlkYXRlOmksYmFzZTpufSl7bGV0IHM9dD8udGFpbHdpbmRDb25maWc/LnNlcGFyYXRvcj8/IjoiO249bj8/dmUoaSxzKS5wb3AoKTtsZXQgYT0oMCxzdC5kZWZhdWx0KSgpLmFzdFN5bmMocik7aWYoYS53YWxrQ2xhc3NlcyhmPT57Zi5yYXdzJiZmLnZhbHVlLmluY2x1ZGVzKG4pJiYoZi5yYXdzLnZhbHVlPVRlKCgwLENoLmRlZmF1bHQpKGYucmF3cy52YWx1ZSkpKX0pLGEuZWFjaChmPT5VbyhmLG4pKSxhLmxlbmd0aD09PTApcmV0dXJuIG51bGw7bGV0IG89QXJyYXkuaXNBcnJheShlKT9kcihlLHtjb250ZXh0OnQsY2FuZGlkYXRlOml9KTplO2lmKG89PT1udWxsKXJldHVybiBhLnRvU3RyaW5nKCk7bGV0IGw9c3QuZGVmYXVsdC5jb21tZW50KHt2YWx1ZToiLypfX3NpbXBsZV9fKi8ifSksYz1zdC5kZWZhdWx0LmNvbW1lbnQoe3ZhbHVlOiIvKl9fc2ltcGxlX18qLyJ9KTtyZXR1cm4gYS53YWxrQ2xhc3NlcyhmPT57aWYoZi52YWx1ZSE9PW4pcmV0dXJuO2xldCBkPWYucGFyZW50LHA9by5ub2Rlc1swXS5ub2RlcztpZihkLm5vZGVzLmxlbmd0aD09PTEpe2YucmVwbGFjZVdpdGgoLi4ucCk7cmV0dXJufWxldCBoPV9oKGYpO2QuaW5zZXJ0QmVmb3JlKGhbMF0sbCksZC5pbnNlcnRBZnRlcihoW2gubGVuZ3RoLTFdLGMpO2ZvcihsZXQgdiBvZiBwKWQuaW5zZXJ0QmVmb3JlKGhbMF0sdi5jbG9uZSgpKTtmLnJlbW92ZSgpLGg9X2gobCk7bGV0IGI9ZC5pbmRleChsKTtkLm5vZGVzLnNwbGljZShiLGgubGVuZ3RoLC4uLmJfKHN0LmRlZmF1bHQuc2VsZWN0b3Ioe25vZGVzOmh9KSkubm9kZXMpLGwucmVtb3ZlKCksYy5yZW1vdmUoKX0pLGEud2Fsa1BzZXVkb3MoZj0+e2YudmFsdWU9PT16byYmZi5yZXBsYWNlV2l0aChmLm5vZGVzKX0pLGEuZWFjaChmPT5wcihmKSksYS50b1N0cmluZygpfWZ1bmN0aW9uIHdfKHIsZSl7bGV0IHQ9W107cmV0dXJuIHIud2Fsa1BzZXVkb3MoaT0+e2kudmFsdWU9PT16byYmdC5wdXNoKHtwc2V1ZG86aSx2YWx1ZTppLm5vZGVzWzBdLnRvU3RyaW5nKCl9KX0pLGUud2Fsa1BzZXVkb3MoaT0+e2lmKGkudmFsdWUhPT16bylyZXR1cm47bGV0IG49aS5ub2Rlc1swXS50b1N0cmluZygpLHM9dC5maW5kKGM9PmMudmFsdWU9PT1uKTtpZighcylyZXR1cm47bGV0IGE9W10sbz1pLm5leHQoKTtmb3IoO28mJm8udHlwZSE9PSJjb21iaW5hdG9yIjspYS5wdXNoKG8pLG89by5uZXh0KCk7bGV0IGw9bztzLnBzZXVkby5wYXJlbnQuaW5zZXJ0QWZ0ZXIocy5wc2V1ZG8sc3QuZGVmYXVsdC5zZWxlY3Rvcih7bm9kZXM6YS5tYXAoYz0+Yy5jbG9uZSgpKX0pKSxpLnJlbW92ZSgpLGEuZm9yRWFjaChjPT5jLnJlbW92ZSgpKSxsJiZsLnR5cGU9PT0iY29tYmluYXRvciImJmwucmVtb3ZlKCl9KSxbcixlXX12YXIgc3QsQ2gsem8sVm89UCgoKT0+e3UoKTtzdD1wZShpdCgpKSxDaD1wZShQbigpKTtmcigpO0duKCk7dHMoKTt6dCgpO3pvPSI6bWVyZ2UifSk7ZnVuY3Rpb24gaXMocixlKXtsZXQgdD0oMCxIby5kZWZhdWx0KSgpLmFzdFN5bmMocik7cmV0dXJuIHQuZWFjaChpPT57aS5ub2Rlcy5zb21lKHM9PnMudHlwZT09PSJjb21iaW5hdG9yIikmJihpLm5vZGVzPVtIby5kZWZhdWx0LnBzZXVkbyh7dmFsdWU6IjppcyIsbm9kZXM6W2kuY2xvbmUoKV19KV0pLHByKGkpfSksYCR7ZX0gJHt0LnRvU3RyaW5nKCl9YH12YXIgSG8sV289UCgoKT0+e3UoKTtIbz1wZShpdCgpKTt0cygpfSk7ZnVuY3Rpb24gR28ocil7cmV0dXJuIHZfLnRyYW5zZm9ybVN5bmMocil9ZnVuY3Rpb24qeF8ocil7bGV0IGU9MS8wO2Zvcig7ZT49MDspe2xldCB0LGk9ITE7aWYoZT09PTEvMCYmci5lbmRzV2l0aCgiXSIpKXtsZXQgYT1yLmluZGV4T2YoIlsiKTtyW2EtMV09PT0iLSI/dD1hLTE6clthLTFdPT09Ii8iPyh0PWEtMSxpPSEwKTp0PS0xfWVsc2UgZT09PTEvMCYmci5pbmNsdWRlcygiLyIpPyh0PXIubGFzdEluZGV4T2YoIi8iKSxpPSEwKTp0PXIubGFzdEluZGV4T2YoIi0iLGUpO2lmKHQ8MClicmVhaztsZXQgbj1yLnNsaWNlKDAsdCkscz1yLnNsaWNlKGk/dDp0KzEpO2U9dC0xLCEobj09PSIifHxzPT09Ii8iKSYmKHlpZWxkW24sc10pfX1mdW5jdGlvbiBrXyhyLGUpe2lmKHIubGVuZ3RoPT09MHx8ZS50YWlsd2luZENvbmZpZy5wcmVmaXg9PT0iIilyZXR1cm4gcjtmb3IobGV0IHQgb2Ygcil7bGV0W2ldPXQ7aWYoaS5vcHRpb25zLnJlc3BlY3RQcmVmaXgpe2xldCBuPWVlLnJvb3Qoe25vZGVzOlt0WzFdLmNsb25lKCldfSkscz10WzFdLnJhd3MudGFpbHdpbmQuY2xhc3NDYW5kaWRhdGU7bi53YWxrUnVsZXMoYT0+e2xldCBvPXMuc3RhcnRzV2l0aCgiLSIpO2Euc2VsZWN0b3I9dXIoZS50YWlsd2luZENvbmZpZy5wcmVmaXgsYS5zZWxlY3RvcixvKX0pLHRbMV09bi5ub2Rlc1swXX19cmV0dXJuIHJ9ZnVuY3Rpb24gU18ocixlKXtpZihyLmxlbmd0aD09PTApcmV0dXJuIHI7bGV0IHQ9W107ZnVuY3Rpb24gaShuKXtyZXR1cm4gbi5wYXJlbnQmJm4ucGFyZW50LnR5cGU9PT0iYXRydWxlIiYmbi5wYXJlbnQubmFtZT09PSJrZXlmcmFtZXMifWZvcihsZXRbbixzXW9mIHIpe2xldCBhPWVlLnJvb3Qoe25vZGVzOltzLmNsb25lKCldfSk7YS53YWxrUnVsZXMobz0+e2lmKGkobykpcmV0dXJuO2xldCBsPSgwLG5zLmRlZmF1bHQpKCkuYXN0U3luYyhvLnNlbGVjdG9yKTtsLmVhY2goYz0+VW8oYyxlKSksUWYobCxjPT5jPT09ZT9gISR7Y31gOmMpLG8uc2VsZWN0b3I9bC50b1N0cmluZygpLG8ud2Fsa0RlY2xzKGM9PmMuaW1wb3J0YW50PSEwKX0pLHQucHVzaChbey4uLm4saW1wb3J0YW50OiEwfSxhLm5vZGVzWzBdXSl9cmV0dXJuIHR9ZnVuY3Rpb24gQV8ocixlLHQpe2lmKGUubGVuZ3RoPT09MClyZXR1cm4gZTtsZXQgaT17bW9kaWZpZXI6bnVsbCx2YWx1ZTpUaX07e2xldFtuLC4uLnNdPXZlKHIsIi8iKTtpZihzLmxlbmd0aD4xJiYobj1uKyIvIitzLnNsaWNlKDAsLTEpLmpvaW4oIi8iKSxzPXMuc2xpY2UoLTEpKSxzLmxlbmd0aCYmIXQudmFyaWFudE1hcC5oYXMocikmJihyPW4saS5tb2RpZmllcj1zWzBdLCF3ZSh0LnRhaWx3aW5kQ29uZmlnLCJnZW5lcmFsaXplZE1vZGlmaWVycyIpKSlyZXR1cm5bXX1pZihyLmVuZHNXaXRoKCJdIikmJiFyLnN0YXJ0c1dpdGgoIlsiKSl7bGV0IG49LyguKSgtPylcWyguKilcXS9nLmV4ZWMocik7aWYobil7bGV0WyxzLGEsb109bjtpZihzPT09IkAiJiZhPT09Ii0iKXJldHVybltdO2lmKHMhPT0iQCImJmE9PT0iIilyZXR1cm5bXTtyPXIucmVwbGFjZShgJHthfVske299XWAsIiIpLGkudmFsdWU9b319aWYoS28ocikmJiF0LnZhcmlhbnRNYXAuaGFzKHIpKXtsZXQgbj10Lm9mZnNldHMucmVjb3JkVmFyaWFudChyKSxzPUsoci5zbGljZSgxLC0xKSksYT12ZShzLCIsIik7aWYoYS5sZW5ndGg+MSlyZXR1cm5bXTtpZighYS5ldmVyeShscykpcmV0dXJuW107bGV0IG89YS5tYXAoKGwsYyk9Plt0Lm9mZnNldHMuYXBwbHlQYXJhbGxlbE9mZnNldChuLGMpLFJpKGwudHJpbSgpKV0pO3QudmFyaWFudE1hcC5zZXQocixvKX1pZih0LnZhcmlhbnRNYXAuaGFzKHIpKXtsZXQgbj1LbyhyKSxzPXQudmFyaWFudE9wdGlvbnMuZ2V0KHIpPy5bUHRdPz97fSxhPXQudmFyaWFudE1hcC5nZXQocikuc2xpY2UoKSxvPVtdLGw9KCgpPT4hKG58fHMucmVzcGVjdFByZWZpeD09PSExKSkoKTtmb3IobGV0W2MsZl1vZiBlKXtpZihjLmxheWVyPT09InVzZXIiKWNvbnRpbnVlO2xldCBkPWVlLnJvb3Qoe25vZGVzOltmLmNsb25lKCldfSk7Zm9yKGxldFtwLGgsYl1vZiBhKXtsZXQgdz1mdW5jdGlvbigpe3YucmF3cy5uZWVkZWRCYWNrdXB8fCh2LnJhd3MubmVlZGVkQmFja3VwPSEwLHYud2Fsa1J1bGVzKFQ9PlQucmF3cy5vcmlnaW5hbFNlbGVjdG9yPVQuc2VsZWN0b3IpKX0saz1mdW5jdGlvbihUKXtyZXR1cm4gdygpLHYuZWFjaChCPT57Qi50eXBlPT09InJ1bGUiJiYoQi5zZWxlY3RvcnM9Qi5zZWxlY3RvcnMubWFwKE49PlQoe2dldCBjbGFzc05hbWUoKXtyZXR1cm4gR28oTil9LHNlbGVjdG9yOk59KSkpfSksdn0sdj0oYj8/ZCkuY2xvbmUoKSx5PVtdLFM9aCh7Z2V0IGNvbnRhaW5lcigpe3JldHVybiB3KCksdn0sc2VwYXJhdG9yOnQudGFpbHdpbmRDb25maWcuc2VwYXJhdG9yLG1vZGlmeVNlbGVjdG9yczprLHdyYXAoVCl7bGV0IEI9di5ub2Rlczt2LnJlbW92ZUFsbCgpLFQuYXBwZW5kKEIpLHYuYXBwZW5kKFQpfSxmb3JtYXQoVCl7eS5wdXNoKHtmb3JtYXQ6VCxyZXNwZWN0UHJlZml4Omx9KX0sYXJnczppfSk7aWYoQXJyYXkuaXNBcnJheShTKSl7Zm9yKGxldFtULEJdb2YgUy5lbnRyaWVzKCkpYS5wdXNoKFt0Lm9mZnNldHMuYXBwbHlQYXJhbGxlbE9mZnNldChwLFQpLEIsdi5jbG9uZSgpXSk7Y29udGludWV9aWYodHlwZW9mIFM9PSJzdHJpbmciJiZ5LnB1c2goe2Zvcm1hdDpTLHJlc3BlY3RQcmVmaXg6bH0pLFM9PT1udWxsKWNvbnRpbnVlO3YucmF3cy5uZWVkZWRCYWNrdXAmJihkZWxldGUgdi5yYXdzLm5lZWRlZEJhY2t1cCx2LndhbGtSdWxlcyhUPT57bGV0IEI9VC5yYXdzLm9yaWdpbmFsU2VsZWN0b3I7aWYoIUJ8fChkZWxldGUgVC5yYXdzLm9yaWdpbmFsU2VsZWN0b3IsQj09PVQuc2VsZWN0b3IpKXJldHVybjtsZXQgTj1ULnNlbGVjdG9yLFI9KDAsbnMuZGVmYXVsdCkoRj0+e0Yud2Fsa0NsYXNzZXMoWT0+e1kudmFsdWU9YCR7cn0ke3QudGFpbHdpbmRDb25maWcuc2VwYXJhdG9yfSR7WS52YWx1ZX1gfSl9KS5wcm9jZXNzU3luYyhCKTt5LnB1c2goe2Zvcm1hdDpOLnJlcGxhY2UoUiwiJiIpLHJlc3BlY3RQcmVmaXg6bH0pLFQuc2VsZWN0b3I9Qn0pKSx2Lm5vZGVzWzBdLnJhd3MudGFpbHdpbmQ9ey4uLnYubm9kZXNbMF0ucmF3cy50YWlsd2luZCxwYXJlbnRMYXllcjpjLmxheWVyfTtsZXQgRT1bey4uLmMsc29ydDp0Lm9mZnNldHMuYXBwbHlWYXJpYW50T2Zmc2V0KGMuc29ydCxwLE9iamVjdC5hc3NpZ24oaSx0LnZhcmlhbnRPcHRpb25zLmdldChyKSkpLGNvbGxlY3RlZEZvcm1hdHM6KGMuY29sbGVjdGVkRm9ybWF0cz8/W10pLmNvbmNhdCh5KX0sdi5ub2Rlc1swXV07by5wdXNoKEUpfX1yZXR1cm4gb31yZXR1cm5bXX1mdW5jdGlvbiBRbyhyLGUsdD17fSl7cmV0dXJuIWtlKHIpJiYhQXJyYXkuaXNBcnJheShyKT9bW3JdLHRdOkFycmF5LmlzQXJyYXkocik/UW8oclswXSxlLHJbMV0pOihlLmhhcyhyKXx8ZS5zZXQocixscihyKSksW2UuZ2V0KHIpLHRdKX1mdW5jdGlvbiBfXyhyKXtyZXR1cm4gQ18udGVzdChyKX1mdW5jdGlvbiBFXyhyKXtpZighci5pbmNsdWRlcygiOi8vIikpcmV0dXJuITE7dHJ5e2xldCBlPW5ldyBVUkwocik7cmV0dXJuIGUuc2NoZW1lIT09IiImJmUuaG9zdCE9PSIifWNhdGNoKGUpe3JldHVybiExfX1mdW5jdGlvbiBFaChyKXtsZXQgZT0hMDtyZXR1cm4gci53YWxrRGVjbHModD0+e2lmKCFPaCh0LnByb3AsdC52YWx1ZSkpcmV0dXJuIGU9ITEsITF9KSxlfWZ1bmN0aW9uIE9oKHIsZSl7aWYoRV8oYCR7cn06JHtlfWApKXJldHVybiExO3RyeXtyZXR1cm4gZWUucGFyc2UoYGF7JHtyfToke2V9fWApLnRvUmVzdWx0KCksITB9Y2F0Y2godCl7cmV0dXJuITF9fWZ1bmN0aW9uIE9fKHIsZSl7bGV0Wyx0LGldPXIubWF0Y2goL15cWyhbYS16QS1aMC05LV9dKyk6KFxTKylcXSQvKT8/W107aWYoaT09PXZvaWQgMHx8IV9fKHQpfHwhY3IoaSkpcmV0dXJuIG51bGw7bGV0IG49SyhpLHtwcm9wZXJ0eTp0fSk7cmV0dXJuIE9oKHQsbik/W1t7c29ydDplLm9mZnNldHMuYXJiaXRyYXJ5UHJvcGVydHkociksbGF5ZXI6InV0aWxpdGllcyIsb3B0aW9uczp7cmVzcGVjdEltcG9ydGFudDohMH19LCgpPT4oe1skbyhyKV06e1t0XTpufX0pXV06bnVsbH1mdW5jdGlvbipUXyhyLGUpe2UuY2FuZGlkYXRlUnVsZU1hcC5oYXMocikmJih5aWVsZFtlLmNhbmRpZGF0ZVJ1bGVNYXAuZ2V0KHIpLCJERUZBVUxUIl0pLHlpZWxkKmZ1bmN0aW9uKihvKXtvIT09bnVsbCYmKHlpZWxkW28sIkRFRkFVTFQiXSl9KE9fKHIsZSkpO2xldCB0PXIsaT0hMSxuPWUudGFpbHdpbmRDb25maWcucHJlZml4LHM9bi5sZW5ndGgsYT10LnN0YXJ0c1dpdGgobil8fHQuc3RhcnRzV2l0aChgLSR7bn1gKTt0W3NdPT09Ii0iJiZhJiYoaT0hMCx0PW4rdC5zbGljZShzKzEpKSxpJiZlLmNhbmRpZGF0ZVJ1bGVNYXAuaGFzKHQpJiYoeWllbGRbZS5jYW5kaWRhdGVSdWxlTWFwLmdldCh0KSwiLURFRkFVTFQiXSk7Zm9yKGxldFtvLGxdb2YgeF8odCkpZS5jYW5kaWRhdGVSdWxlTWFwLmhhcyhvKSYmKHlpZWxkW2UuY2FuZGlkYXRlUnVsZU1hcC5nZXQobyksaT9gLSR7bH1gOmxdKX1mdW5jdGlvbiBSXyhyLGUpe3JldHVybiByPT09Z3Q/W2d0XTp2ZShyLGUpfWZ1bmN0aW9uKlBfKHIsZSl7Zm9yKGxldCB0IG9mIHIpdFsxXS5yYXdzLnRhaWx3aW5kPXsuLi50WzFdLnJhd3MudGFpbHdpbmQsY2xhc3NDYW5kaWRhdGU6ZSxwcmVzZXJ2ZVNvdXJjZTp0WzBdLm9wdGlvbnM/LnByZXNlcnZlU291cmNlPz8hMX0seWllbGQgdH1mdW5jdGlvbipZbyhyLGUpe2xldCB0PWUudGFpbHdpbmRDb25maWcuc2VwYXJhdG9yLFtpLC4uLm5dPVJfKHIsdCkucmV2ZXJzZSgpLHM9ITE7aS5zdGFydHNXaXRoKCIhIikmJihzPSEwLGk9aS5zbGljZSgxKSk7Zm9yKGxldCBhIG9mIFRfKGksZSkpe2xldCBvPVtdLGw9bmV3IE1hcCxbYyxmXT1hLGQ9Yy5sZW5ndGg9PT0xO2ZvcihsZXRbcCxoXW9mIGMpe2xldCBiPVtdO2lmKHR5cGVvZiBoPT0iZnVuY3Rpb24iKWZvcihsZXQgdiBvZltdLmNvbmNhdChoKGYse2lzT25seVBsdWdpbjpkfSkpKXtsZXRbeSx3XT1Rbyh2LGUucG9zdENzc05vZGVDYWNoZSk7Zm9yKGxldCBrIG9mIHkpYi5wdXNoKFt7Li4ucCxvcHRpb25zOnsuLi5wLm9wdGlvbnMsLi4ud319LGtdKX1lbHNlIGlmKGY9PT0iREVGQVVMVCJ8fGY9PT0iLURFRkFVTFQiKXtsZXQgdj1oLFt5LHddPVFvKHYsZS5wb3N0Q3NzTm9kZUNhY2hlKTtmb3IobGV0IGsgb2YgeSliLnB1c2goW3suLi5wLG9wdGlvbnM6ey4uLnAub3B0aW9ucywuLi53fX0sa10pfWlmKGIubGVuZ3RoPjApe2xldCB2PUFycmF5LmZyb20odGEocC5vcHRpb25zPy50eXBlcz8/W10sZixwLm9wdGlvbnM/P3t9LGUudGFpbHdpbmRDb25maWcpKS5tYXAoKFt5LHddKT0+dyk7di5sZW5ndGg+MCYmbC5zZXQoYix2KSxvLnB1c2goYil9fWlmKEtvKGYpKXtpZihvLmxlbmd0aD4xKXtsZXQgYj1mdW5jdGlvbih5KXtyZXR1cm4geS5sZW5ndGg9PT0xP3lbMF06eS5maW5kKHc9PntsZXQgaz1sLmdldCh3KTtyZXR1cm4gdy5zb21lKChbe29wdGlvbnM6U30sRV0pPT5FaChFKT9TLnR5cGVzLnNvbWUoKHt0eXBlOlQscHJlZmVyT25Db25mbGljdDpCfSk9PmsuaW5jbHVkZXMoVCkmJkIpOiExKX0pfSxbcCxoXT1vLnJlZHVjZSgoeSx3KT0+KHcuc29tZSgoW3tvcHRpb25zOlN9XSk9PlMudHlwZXMuc29tZSgoe3R5cGU6RX0pPT5FPT09ImFueSIpKT95WzBdLnB1c2godyk6eVsxXS5wdXNoKHcpLHkpLFtbXSxbXV0pLHY9YihoKT8/YihwKTtpZih2KW89W3ZdO2Vsc2V7bGV0IHk9by5tYXAoaz0+bmV3IFNldChbLi4ubC5nZXQoayk/P1tdXSkpO2ZvcihsZXQgayBvZiB5KWZvcihsZXQgUyBvZiBrKXtsZXQgRT0hMTtmb3IobGV0IFQgb2YgeSlrIT09VCYmVC5oYXMoUykmJihULmRlbGV0ZShTKSxFPSEwKTtFJiZrLmRlbGV0ZShTKX1sZXQgdz1bXTtmb3IobGV0W2ssU11vZiB5LmVudHJpZXMoKSlmb3IobGV0IEUgb2YgUyl7bGV0IFQ9b1trXS5tYXAoKFssQl0pPT5CKS5mbGF0KCkubWFwKEI9PkIudG9TdHJpbmcoKS5zcGxpdChgCmApLnNsaWNlKDEsLTEpLm1hcChOPT5OLnRyaW0oKSkubWFwKE49PmAgICAgICAke059YCkuam9pbihgCmApKS5qb2luKGAKCmApO3cucHVzaChgICBVc2UgXGAke3IucmVwbGFjZSgiWyIsYFske0V9OmApfVxgIGZvciBcYCR7VC50cmltKCl9XGBgKTticmVha31HLndhcm4oW2BUaGUgY2xhc3MgXGAke3J9XGAgaXMgYW1iaWd1b3VzIGFuZCBtYXRjaGVzIG11bHRpcGxlIHV0aWxpdGllcy5gLC4uLncsYElmIHRoaXMgaXMgY29udGVudCBhbmQgbm90IGEgY2xhc3MsIHJlcGxhY2UgaXQgd2l0aCBcYCR7ci5yZXBsYWNlKCJbIiwiJmxzcWI7IikucmVwbGFjZSgiXSIsIiZyc3FiOyIpfVxgIHRvIHNpbGVuY2UgdGhpcyB3YXJuaW5nLmBdKTtjb250aW51ZX19bz1vLm1hcChwPT5wLmZpbHRlcihoPT5FaChoWzFdKSkpfW89by5mbGF0KCksbz1BcnJheS5mcm9tKFBfKG8saSkpLG89a18obyxlKSxzJiYobz1TXyhvLGkpKTtmb3IobGV0IHAgb2YgbilvPUFfKHAsbyxlKTtmb3IobGV0IHAgb2YgbylwWzFdLnJhd3MudGFpbHdpbmQ9ey4uLnBbMV0ucmF3cy50YWlsd2luZCxjYW5kaWRhdGU6cn0scD1JXyhwLHtjb250ZXh0OmUsY2FuZGlkYXRlOnJ9KSxwIT09bnVsbCYmKHlpZWxkIHApfX1mdW5jdGlvbiBJXyhyLHtjb250ZXh0OmUsY2FuZGlkYXRlOnR9KXtpZighclswXS5jb2xsZWN0ZWRGb3JtYXRzKXJldHVybiByO2xldCBpPSEwLG47dHJ5e249ZHIoclswXS5jb2xsZWN0ZWRGb3JtYXRzLHtjb250ZXh0OmUsY2FuZGlkYXRlOnR9KX1jYXRjaHtyZXR1cm4gbnVsbH1sZXQgcz1lZS5yb290KHtub2RlczpbclsxXS5jbG9uZSgpXX0pO3JldHVybiBzLndhbGtSdWxlcyhhPT57aWYoIXNzKGEpKXRyeXtsZXQgbz1ycyhhLnNlbGVjdG9yLG4se2NhbmRpZGF0ZTp0LGNvbnRleHQ6ZX0pO2lmKG89PT1udWxsKXthLnJlbW92ZSgpO3JldHVybn1hLnNlbGVjdG9yPW99Y2F0Y2h7cmV0dXJuIGk9ITEsITF9fSksIWl8fHMubm9kZXMubGVuZ3RoPT09MD9udWxsOihyWzFdPXMubm9kZXNbMF0scil9ZnVuY3Rpb24gc3Mocil7cmV0dXJuIHIucGFyZW50JiZyLnBhcmVudC50eXBlPT09ImF0cnVsZSImJnIucGFyZW50Lm5hbWU9PT0ia2V5ZnJhbWVzIn1mdW5jdGlvbiBEXyhyKXtpZihyPT09ITApcmV0dXJuIGU9PntzcyhlKXx8ZS53YWxrRGVjbHModD0+e3QucGFyZW50LnR5cGU9PT0icnVsZSImJiFzcyh0LnBhcmVudCkmJih0LmltcG9ydGFudD0hMCl9KX07aWYodHlwZW9mIHI9PSJzdHJpbmciKXJldHVybiBlPT57c3MoZSl8fChlLnNlbGVjdG9ycz1lLnNlbGVjdG9ycy5tYXAodD0+aXModCxyKSkpfX1mdW5jdGlvbiBhcyhyLGUsdD0hMSl7bGV0IGk9W10sbj1EXyhlLnRhaWx3aW5kQ29uZmlnLmltcG9ydGFudCk7Zm9yKGxldCBzIG9mIHIpe2lmKGUubm90Q2xhc3NDYWNoZS5oYXMocykpY29udGludWU7aWYoZS5jYW5kaWRhdGVSdWxlQ2FjaGUuaGFzKHMpKXtpPWkuY29uY2F0KEFycmF5LmZyb20oZS5jYW5kaWRhdGVSdWxlQ2FjaGUuZ2V0KHMpKSk7Y29udGludWV9bGV0IGE9QXJyYXkuZnJvbShZbyhzLGUpKTtpZihhLmxlbmd0aD09PTApe2Uubm90Q2xhc3NDYWNoZS5hZGQocyk7Y29udGludWV9ZS5jbGFzc0NhY2hlLnNldChzLGEpO2xldCBvPWUuY2FuZGlkYXRlUnVsZUNhY2hlLmdldChzKT8/bmV3IFNldDtlLmNhbmRpZGF0ZVJ1bGVDYWNoZS5zZXQocyxvKTtmb3IobGV0IGwgb2YgYSl7bGV0W3tzb3J0OmMsb3B0aW9uczpmfSxkXT1sO2lmKGYucmVzcGVjdEltcG9ydGFudCYmbil7bGV0IGg9ZWUucm9vdCh7bm9kZXM6W2QuY2xvbmUoKV19KTtoLndhbGtSdWxlcyhuKSxkPWgubm9kZXNbMF19bGV0IHA9W2MsdD9kLmNsb25lKCk6ZF07by5hZGQocCksZS5ydWxlQ2FjaGUuYWRkKHApLGkucHVzaChwKX19cmV0dXJuIGl9ZnVuY3Rpb24gS28ocil7cmV0dXJuIHIuc3RhcnRzV2l0aCgiWyIpJiZyLmVuZHNXaXRoKCJdIil9dmFyIG5zLHZfLENfLG9zPVAoKCk9Pnt1KCk7T3QoKTtucz1wZShpdCgpKTtxbygpO0t0KCk7R24oKTtGcigpO0JlKCk7SXQoKTtWbygpO0xvKCk7QnIoKTtPaSgpO0JvKCk7enQoKTtjdCgpO1dvKCk7dl89KDAsbnMuZGVmYXVsdCkocj0+ci5maXJzdC5maWx0ZXIoKHt0eXBlOmV9KT0+ZT09PSJjbGFzcyIpLnBvcCgpLnZhbHVlKTtDXz0vXlthLXpfLV0vfSk7dmFyIFRoLFJoPVAoKCk9Pnt1KCk7VGg9e319KTtmdW5jdGlvbiBxXyhyKXt0cnl7cmV0dXJuIFRoLmNyZWF0ZUhhc2goIm1kNSIpLnVwZGF0ZShyLCJ1dGYtOCIpLmRpZ2VzdCgiYmluYXJ5Iil9Y2F0Y2goZSl7cmV0dXJuIiJ9fWZ1bmN0aW9uIFBoKHIsZSl7bGV0IHQ9ZS50b1N0cmluZygpO2lmKCF0LmluY2x1ZGVzKCJAdGFpbHdpbmQiKSlyZXR1cm4hMTtsZXQgaT1Oby5nZXQociksbj1xXyh0KSxzPWkhPT1uO3JldHVybiBOby5zZXQocixuKSxzfXZhciBJaD1QKCgpPT57dSgpO1JoKCk7SXQoKX0pO2Z1bmN0aW9uIHVzKHIpe3JldHVybihyPjBuKS0ocjwwbil9dmFyIERoPVAoKCk9Pnt1KCl9KTtmdW5jdGlvbiBxaChyLGUpe2xldCB0PTBuLGk9MG47Zm9yKGxldFtuLHNdb2YgZSlyJm4mJih0PXR8bixpPWl8cyk7cmV0dXJuIHImfnR8aX12YXIgJGg9UCgoKT0+e3UoKX0pO2Z1bmN0aW9uIExoKHIpe2xldCBlPW51bGw7Zm9yKGxldCB0IG9mIHIpZT1lPz90LGU9ZT50P2U6dDtyZXR1cm4gZX1mdW5jdGlvbiAkXyhyLGUpe2xldCB0PXIubGVuZ3RoLGk9ZS5sZW5ndGgsbj10PGk/dDppO2ZvcihsZXQgcz0wO3M8bjtzKyspe2xldCBhPXIuY2hhckNvZGVBdChzKS1lLmNoYXJDb2RlQXQocyk7aWYoYSE9PTApcmV0dXJuIGF9cmV0dXJuIHQtaX12YXIgWG8sTWg9UCgoKT0+e3UoKTtEaCgpOyRoKCk7WG89Y2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLm9mZnNldHM9e2RlZmF1bHRzOjBuLGJhc2U6MG4sY29tcG9uZW50czowbix1dGlsaXRpZXM6MG4sdmFyaWFudHM6MG4sdXNlcjowbn0sdGhpcy5sYXllclBvc2l0aW9ucz17ZGVmYXVsdHM6MG4sYmFzZToxbixjb21wb25lbnRzOjJuLHV0aWxpdGllczozbix1c2VyOjRuLHZhcmlhbnRzOjVufSx0aGlzLnJlc2VydmVkVmFyaWFudEJpdHM9MG4sdGhpcy52YXJpYW50T2Zmc2V0cz1uZXcgTWFwfWNyZWF0ZShlKXtyZXR1cm57bGF5ZXI6ZSxwYXJlbnRMYXllcjplLGFyYml0cmFyeTowbix2YXJpYW50czowbixwYXJhbGxlbEluZGV4OjBuLGluZGV4OnRoaXMub2Zmc2V0c1tlXSsrLHByb3BlcnR5T2Zmc2V0OjBuLHByb3BlcnR5OiIiLG9wdGlvbnM6W119fWFyYml0cmFyeVByb3BlcnR5KGUpe3JldHVybnsuLi50aGlzLmNyZWF0ZSgidXRpbGl0aWVzIiksYXJiaXRyYXJ5OjFuLHByb3BlcnR5OmV9fWZvclZhcmlhbnQoZSx0PTApe2xldCBpPXRoaXMudmFyaWFudE9mZnNldHMuZ2V0KGUpO2lmKGk9PT12b2lkIDApdGhyb3cgbmV3IEVycm9yKGBDYW5ub3QgZmluZCBvZmZzZXQgZm9yIHVua25vd24gdmFyaWFudCAke2V9YCk7cmV0dXJuey4uLnRoaXMuY3JlYXRlKCJ2YXJpYW50cyIpLHZhcmlhbnRzOmk8PEJpZ0ludCh0KX19YXBwbHlWYXJpYW50T2Zmc2V0KGUsdCxpKXtyZXR1cm4gaS52YXJpYW50PXQudmFyaWFudHMsey4uLmUsbGF5ZXI6InZhcmlhbnRzIixwYXJlbnRMYXllcjplLmxheWVyPT09InZhcmlhbnRzIj9lLnBhcmVudExheWVyOmUubGF5ZXIsdmFyaWFudHM6ZS52YXJpYW50c3x0LnZhcmlhbnRzLG9wdGlvbnM6aS5zb3J0P1tdLmNvbmNhdChpLGUub3B0aW9ucyk6ZS5vcHRpb25zLHBhcmFsbGVsSW5kZXg6TGgoW2UucGFyYWxsZWxJbmRleCx0LnBhcmFsbGVsSW5kZXhdKX19YXBwbHlQYXJhbGxlbE9mZnNldChlLHQpe3JldHVybnsuLi5lLHBhcmFsbGVsSW5kZXg6QmlnSW50KHQpfX1yZWNvcmRWYXJpYW50cyhlLHQpe2ZvcihsZXQgaSBvZiBlKXRoaXMucmVjb3JkVmFyaWFudChpLHQoaSkpfXJlY29yZFZhcmlhbnQoZSx0PTEpe3JldHVybiB0aGlzLnZhcmlhbnRPZmZzZXRzLnNldChlLDFuPDx0aGlzLnJlc2VydmVkVmFyaWFudEJpdHMpLHRoaXMucmVzZXJ2ZWRWYXJpYW50Qml0cys9QmlnSW50KHQpLHsuLi50aGlzLmNyZWF0ZSgidmFyaWFudHMiKSx2YXJpYW50czp0aGlzLnZhcmlhbnRPZmZzZXRzLmdldChlKX19Y29tcGFyZShlLHQpe2lmKGUubGF5ZXIhPT10LmxheWVyKXJldHVybiB0aGlzLmxheWVyUG9zaXRpb25zW2UubGF5ZXJdLXRoaXMubGF5ZXJQb3NpdGlvbnNbdC5sYXllcl07aWYoZS5wYXJlbnRMYXllciE9PXQucGFyZW50TGF5ZXIpcmV0dXJuIHRoaXMubGF5ZXJQb3NpdGlvbnNbZS5wYXJlbnRMYXllcl0tdGhpcy5sYXllclBvc2l0aW9uc1t0LnBhcmVudExheWVyXTtmb3IobGV0IGkgb2YgZS5vcHRpb25zKWZvcihsZXQgbiBvZiB0Lm9wdGlvbnMpe2lmKGkuaWQhPT1uLmlkfHwhaS5zb3J0fHwhbi5zb3J0KWNvbnRpbnVlO2xldCBzPUxoKFtpLnZhcmlhbnQsbi52YXJpYW50XSk/PzBuLGE9fihzfHMtMW4pLG89ZS52YXJpYW50cyZhLGw9dC52YXJpYW50cyZhO2lmKG8hPT1sKWNvbnRpbnVlO2xldCBjPWkuc29ydCh7dmFsdWU6aS52YWx1ZSxtb2RpZmllcjppLm1vZGlmaWVyfSx7dmFsdWU6bi52YWx1ZSxtb2RpZmllcjpuLm1vZGlmaWVyfSk7aWYoYyE9PTApcmV0dXJuIGN9cmV0dXJuIGUudmFyaWFudHMhPT10LnZhcmlhbnRzP2UudmFyaWFudHMtdC52YXJpYW50czplLnBhcmFsbGVsSW5kZXghPT10LnBhcmFsbGVsSW5kZXg/ZS5wYXJhbGxlbEluZGV4LXQucGFyYWxsZWxJbmRleDplLmFyYml0cmFyeSE9PXQuYXJiaXRyYXJ5P2UuYXJiaXRyYXJ5LXQuYXJiaXRyYXJ5OmUucHJvcGVydHlPZmZzZXQhPT10LnByb3BlcnR5T2Zmc2V0P2UucHJvcGVydHlPZmZzZXQtdC5wcm9wZXJ0eU9mZnNldDplLmluZGV4LXQuaW5kZXh9cmVjYWxjdWxhdGVWYXJpYW50T2Zmc2V0cygpe2xldCBlPUFycmF5LmZyb20odGhpcy52YXJpYW50T2Zmc2V0cy5lbnRyaWVzKCkpLmZpbHRlcigoW25dKT0+bi5zdGFydHNXaXRoKCJbIikpLnNvcnQoKFtuXSxbc10pPT4kXyhuLHMpKSx0PWUubWFwKChbLG5dKT0+bikuc29ydCgobixzKT0+dXMobi1zKSk7cmV0dXJuIGUubWFwKChbLG5dLHMpPT5bbix0W3NdXSkuZmlsdGVyKChbbixzXSk9Pm4hPT1zKX1yZW1hcEFyYml0cmFyeVZhcmlhbnRPZmZzZXRzKGUpe2xldCB0PXRoaXMucmVjYWxjdWxhdGVWYXJpYW50T2Zmc2V0cygpO3JldHVybiB0Lmxlbmd0aD09PTA/ZTplLm1hcChpPT57bGV0W24sc109aTtyZXR1cm4gbj17Li4ubix2YXJpYW50czpxaChuLnZhcmlhbnRzLHQpfSxbbixzXX0pfXNvcnRBcmJpdHJhcnlQcm9wZXJ0aWVzKGUpe2xldCB0PW5ldyBTZXQ7Zm9yKGxldFthXW9mIGUpYS5hcmJpdHJhcnk9PT0xbiYmdC5hZGQoYS5wcm9wZXJ0eSk7aWYodC5zaXplPT09MClyZXR1cm4gZTtsZXQgaT1BcnJheS5mcm9tKHQpLnNvcnQoKSxuPW5ldyBNYXAscz0xbjtmb3IobGV0IGEgb2YgaSluLnNldChhLHMrKyk7cmV0dXJuIGUubWFwKGE9PntsZXRbbyxsXT1hO3JldHVybiBvPXsuLi5vLHByb3BlcnR5T2Zmc2V0Om4uZ2V0KG8ucHJvcGVydHkpPz8wbn0sW28sbF19KX1zb3J0KGUpe3JldHVybiBlPXRoaXMucmVtYXBBcmJpdHJhcnlWYXJpYW50T2Zmc2V0cyhlKSxlPXRoaXMuc29ydEFyYml0cmFyeVByb3BlcnRpZXMoZSksZS5zb3J0KChbdF0sW2ldKT0+dXModGhpcy5jb21wYXJlKHQsaSkpKX19fSk7ZnVuY3Rpb24gdGwocixlKXtsZXQgdD1yLnRhaWx3aW5kQ29uZmlnLnByZWZpeDtyZXR1cm4gdHlwZW9mIHQ9PSJmdW5jdGlvbiI/dChlKTp0K2V9ZnVuY3Rpb24gQmgoe3R5cGU6cj0iYW55IiwuLi5lfSl7bGV0IHQ9W10uY29uY2F0KHIpO3JldHVybnsuLi5lLHR5cGVzOnQubWFwKGk9PkFycmF5LmlzQXJyYXkoaSk/e3R5cGU6aVswXSwuLi5pWzFdfTp7dHlwZTppLHByZWZlck9uQ29uZmxpY3Q6ITF9KX19ZnVuY3Rpb24gTF8ocil7bGV0IGU9W10sdD0iIixpPTA7Zm9yKGxldCBuPTA7bjxyLmxlbmd0aDtuKyspe2xldCBzPXJbbl07aWYocz09PSJcXCIpdCs9IlxcIityWysrbl07ZWxzZSBpZihzPT09InsiKSsraSxlLnB1c2godC50cmltKCkpLHQ9IiI7ZWxzZSBpZihzPT09In0iKXtpZigtLWk8MCl0aHJvdyBuZXcgRXJyb3IoIllvdXIgeyBhbmQgfSBhcmUgdW5iYWxhbmNlZC4iKTtlLnB1c2godC50cmltKCkpLHQ9IiJ9ZWxzZSB0Kz1zfXJldHVybiB0Lmxlbmd0aD4wJiZlLnB1c2godC50cmltKCkpLGU9ZS5maWx0ZXIobj0+biE9PSIiKSxlfWZ1bmN0aW9uIE1fKHIsZSx7YmVmb3JlOnQ9W119PXt9KXtpZih0PVtdLmNvbmNhdCh0KSx0Lmxlbmd0aDw9MCl7ci5wdXNoKGUpO3JldHVybn1sZXQgaT1yLmxlbmd0aC0xO2ZvcihsZXQgbiBvZiB0KXtsZXQgcz1yLmluZGV4T2Yobik7cyE9PS0xJiYoaT1NYXRoLm1pbihpLHMpKX1yLnNwbGljZShpLDAsZSl9ZnVuY3Rpb24gRmgocil7cmV0dXJuIEFycmF5LmlzQXJyYXkocik/ci5mbGF0TWFwKGU9PiFBcnJheS5pc0FycmF5KGUpJiYha2UoZSk/ZTpscihlKSk6RmgoW3JdKX1mdW5jdGlvbiBOXyhyLGUpe3JldHVybigwLFpvLmRlZmF1bHQpKGk9PntsZXQgbj1bXTtyZXR1cm4gZSYmZShpKSxpLndhbGtDbGFzc2VzKHM9PntuLnB1c2gocy52YWx1ZSl9KSxufSkudHJhbnNmb3JtU3luYyhyKX1mdW5jdGlvbiBCXyhyKXtyLndhbGtQc2V1ZG9zKGU9PntlLnZhbHVlPT09Ijpub3QiJiZlLnJlbW92ZSgpfSl9ZnVuY3Rpb24gRl8ocixlPXtjb250YWluc05vbk9uRGVtYW5kYWJsZTohMX0sdD0wKXtsZXQgaT1bXSxuPVtdO3IudHlwZT09PSJydWxlIj9uLnB1c2goLi4uci5zZWxlY3RvcnMpOnIudHlwZT09PSJhdHJ1bGUiJiZyLndhbGtSdWxlcyhzPT5uLnB1c2goLi4ucy5zZWxlY3RvcnMpKTtmb3IobGV0IHMgb2Ygbil7bGV0IGE9Tl8ocyxCXyk7YS5sZW5ndGg9PT0wJiYoZS5jb250YWluc05vbk9uRGVtYW5kYWJsZT0hMCk7Zm9yKGxldCBvIG9mIGEpaS5wdXNoKG8pfXJldHVybiB0PT09MD9bZS5jb250YWluc05vbk9uRGVtYW5kYWJsZXx8aS5sZW5ndGg9PT0wLGldOml9ZnVuY3Rpb24gZnMocil7cmV0dXJuIEZoKHIpLmZsYXRNYXAoZT0+e2xldCB0PW5ldyBNYXAsW2ksbl09Rl8oZSk7cmV0dXJuIGkmJm4udW5zaGlmdChndCksbi5tYXAocz0+KHQuaGFzKGUpfHx0LnNldChlLGUpLFtzLHQuZ2V0KGUpXSkpfSl9ZnVuY3Rpb24gbHMocil7cmV0dXJuIHIuc3RhcnRzV2l0aCgiQCIpfHxyLmluY2x1ZGVzKCImIil9ZnVuY3Rpb24gUmkocil7cj1yLnJlcGxhY2UoL1xuKy9nLCIiKS5yZXBsYWNlKC9cc3sxLH0vZywiICIpLnRyaW0oKTtsZXQgZT1MXyhyKS5tYXAodD0+e2lmKCF0LnN0YXJ0c1dpdGgoIkAiKSlyZXR1cm4oe2Zvcm1hdDpzfSk9PnModCk7bGV0WyxpLG5dPS9AKFxTKikoIC4rfFsoe10uKik/L2cuZXhlYyh0KTtyZXR1cm4oe3dyYXA6c30pPT5zKGVlLmF0UnVsZSh7bmFtZTppLHBhcmFtczpuPy50cmltKCk/PyIifSkpfSkucmV2ZXJzZSgpO3JldHVybiB0PT57Zm9yKGxldCBpIG9mIGUpaSh0KX19ZnVuY3Rpb24gal8ocixlLHt2YXJpYW50TGlzdDp0LHZhcmlhbnRNYXA6aSxvZmZzZXRzOm4sY2xhc3NMaXN0OnN9KXtmdW5jdGlvbiBhKHAsaCl7cmV0dXJuIHA/KDAsTmguZGVmYXVsdCkocixwLGgpOnJ9ZnVuY3Rpb24gbyhwKXtyZXR1cm4gdXIoci5wcmVmaXgscCl9ZnVuY3Rpb24gbChwLGgpe3JldHVybiBwPT09Z3Q/Z3Q6aC5yZXNwZWN0UHJlZml4P2UudGFpbHdpbmRDb25maWcucHJlZml4K3A6cH1mdW5jdGlvbiBjKHAsaCxiPXt9KXtsZXQgdj1rdChwKSx5PWEoWyJ0aGVtZSIsLi4udl0saCk7cmV0dXJuIG10KHZbMF0pKHksYil9bGV0IGY9MCxkPXtwb3N0Y3NzOmVlLHByZWZpeDpvLGU6VGUsY29uZmlnOmEsdGhlbWU6Yyxjb3JlUGx1Z2luczpwPT5BcnJheS5pc0FycmF5KHIuY29yZVBsdWdpbnMpP3IuY29yZVBsdWdpbnMuaW5jbHVkZXMocCk6YShbImNvcmVQbHVnaW5zIixwXSwhMCksdmFyaWFudHM6KCk9PltdLGFkZEJhc2UocCl7Zm9yKGxldFtoLGJdb2YgZnMocCkpe2xldCB2PWwoaCx7fSkseT1uLmNyZWF0ZSgiYmFzZSIpO2UuY2FuZGlkYXRlUnVsZU1hcC5oYXModil8fGUuY2FuZGlkYXRlUnVsZU1hcC5zZXQodixbXSksZS5jYW5kaWRhdGVSdWxlTWFwLmdldCh2KS5wdXNoKFt7c29ydDp5LGxheWVyOiJiYXNlIn0sYl0pfX0sYWRkRGVmYXVsdHMocCxoKXtsZXQgYj17W2BAZGVmYXVsdHMgJHtwfWBdOmh9O2ZvcihsZXRbdix5XW9mIGZzKGIpKXtsZXQgdz1sKHYse30pO2UuY2FuZGlkYXRlUnVsZU1hcC5oYXModyl8fGUuY2FuZGlkYXRlUnVsZU1hcC5zZXQodyxbXSksZS5jYW5kaWRhdGVSdWxlTWFwLmdldCh3KS5wdXNoKFt7c29ydDpuLmNyZWF0ZSgiZGVmYXVsdHMiKSxsYXllcjoiZGVmYXVsdHMifSx5XSl9fSxhZGRDb21wb25lbnRzKHAsaCl7aD1PYmplY3QuYXNzaWduKHt9LHtwcmVzZXJ2ZVNvdXJjZTohMSxyZXNwZWN0UHJlZml4OiEwLHJlc3BlY3RJbXBvcnRhbnQ6ITF9LEFycmF5LmlzQXJyYXkoaCk/e306aCk7Zm9yKGxldFt2LHldb2YgZnMocCkpe2xldCB3PWwodixoKTtzLmFkZCh3KSxlLmNhbmRpZGF0ZVJ1bGVNYXAuaGFzKHcpfHxlLmNhbmRpZGF0ZVJ1bGVNYXAuc2V0KHcsW10pLGUuY2FuZGlkYXRlUnVsZU1hcC5nZXQodykucHVzaChbe3NvcnQ6bi5jcmVhdGUoImNvbXBvbmVudHMiKSxsYXllcjoiY29tcG9uZW50cyIsb3B0aW9uczpofSx5XSl9fSxhZGRVdGlsaXRpZXMocCxoKXtoPU9iamVjdC5hc3NpZ24oe30se3ByZXNlcnZlU291cmNlOiExLHJlc3BlY3RQcmVmaXg6ITAscmVzcGVjdEltcG9ydGFudDohMH0sQXJyYXkuaXNBcnJheShoKT97fTpoKTtmb3IobGV0W3YseV1vZiBmcyhwKSl7bGV0IHc9bCh2LGgpO3MuYWRkKHcpLGUuY2FuZGlkYXRlUnVsZU1hcC5oYXModyl8fGUuY2FuZGlkYXRlUnVsZU1hcC5zZXQodyxbXSksZS5jYW5kaWRhdGVSdWxlTWFwLmdldCh3KS5wdXNoKFt7c29ydDpuLmNyZWF0ZSgidXRpbGl0aWVzIiksbGF5ZXI6InV0aWxpdGllcyIsb3B0aW9uczpofSx5XSl9fSxtYXRjaFV0aWxpdGllczpmdW5jdGlvbihwLGgpe2g9Qmgoey4uLntyZXNwZWN0UHJlZml4OiEwLHJlc3BlY3RJbXBvcnRhbnQ6ITAsbW9kaWZpZXJzOiExfSwuLi5ofSk7bGV0IHY9bi5jcmVhdGUoInV0aWxpdGllcyIpO2ZvcihsZXQgeSBpbiBwKXtsZXQgUz1mdW5jdGlvbihULHtpc09ubHlQbHVnaW46Qn0pe2xldFtOLFIsRl09ZWEoaC50eXBlcyxULGgscik7aWYoTj09PXZvaWQgMClyZXR1cm5bXTtpZighaC50eXBlcy5zb21lKCh7dHlwZTpVfSk9PlU9PT1SKSlpZihCKUcud2FybihbYFVubmVjZXNzYXJ5IHR5cGVoaW50IFxgJHtSfVxgIGluIFxgJHt5fS0ke1R9XGAuYCxgWW91IGNhbiBzYWZlbHkgdXBkYXRlIGl0IHRvIFxgJHt5fS0ke1QucmVwbGFjZShSKyI6IiwiIil9XGAuYF0pO2Vsc2UgcmV0dXJuW107aWYoIWNyKE4pKXJldHVybltdO2xldCBZPXtnZXQgbW9kaWZpZXIoKXtyZXR1cm4gaC5tb2RpZmllcnN8fEcud2FybihgbW9kaWZpZXItdXNlZC13aXRob3V0LW9wdGlvbnMtZm9yLSR7eX1gLFsiWW91ciBwbHVnaW4gbXVzdCBzZXQgYG1vZGlmaWVyczogdHJ1ZWAgaW4gaXRzIG9wdGlvbnMgdG8gc3VwcG9ydCBtb2RpZmllcnMuIl0pLEZ9fSxfPXdlKHIsImdlbmVyYWxpemVkTW9kaWZpZXJzIik7cmV0dXJuW10uY29uY2F0KF8/ayhOLFkpOmsoTikpLmZpbHRlcihCb29sZWFuKS5tYXAoVT0+KHtbUW4oeSxUKV06VX0pKX0sdz1sKHksaCksaz1wW3ldO3MuYWRkKFt3LGhdKTtsZXQgRT1be3NvcnQ6dixsYXllcjoidXRpbGl0aWVzIixvcHRpb25zOmh9LFNdO2UuY2FuZGlkYXRlUnVsZU1hcC5oYXModyl8fGUuY2FuZGlkYXRlUnVsZU1hcC5zZXQodyxbXSksZS5jYW5kaWRhdGVSdWxlTWFwLmdldCh3KS5wdXNoKEUpfX0sbWF0Y2hDb21wb25lbnRzOmZ1bmN0aW9uKHAsaCl7aD1CaCh7Li4ue3Jlc3BlY3RQcmVmaXg6ITAscmVzcGVjdEltcG9ydGFudDohMSxtb2RpZmllcnM6ITF9LC4uLmh9KTtsZXQgdj1uLmNyZWF0ZSgiY29tcG9uZW50cyIpO2ZvcihsZXQgeSBpbiBwKXtsZXQgUz1mdW5jdGlvbihULHtpc09ubHlQbHVnaW46Qn0pe2xldFtOLFIsRl09ZWEoaC50eXBlcyxULGgscik7aWYoTj09PXZvaWQgMClyZXR1cm5bXTtpZighaC50eXBlcy5zb21lKCh7dHlwZTpVfSk9PlU9PT1SKSlpZihCKUcud2FybihbYFVubmVjZXNzYXJ5IHR5cGVoaW50IFxgJHtSfVxgIGluIFxgJHt5fS0ke1R9XGAuYCxgWW91IGNhbiBzYWZlbHkgdXBkYXRlIGl0IHRvIFxgJHt5fS0ke1QucmVwbGFjZShSKyI6IiwiIil9XGAuYF0pO2Vsc2UgcmV0dXJuW107aWYoIWNyKE4pKXJldHVybltdO2xldCBZPXtnZXQgbW9kaWZpZXIoKXtyZXR1cm4gaC5tb2RpZmllcnN8fEcud2FybihgbW9kaWZpZXItdXNlZC13aXRob3V0LW9wdGlvbnMtZm9yLSR7eX1gLFsiWW91ciBwbHVnaW4gbXVzdCBzZXQgYG1vZGlmaWVyczogdHJ1ZWAgaW4gaXRzIG9wdGlvbnMgdG8gc3VwcG9ydCBtb2RpZmllcnMuIl0pLEZ9fSxfPXdlKHIsImdlbmVyYWxpemVkTW9kaWZpZXJzIik7cmV0dXJuW10uY29uY2F0KF8/ayhOLFkpOmsoTikpLmZpbHRlcihCb29sZWFuKS5tYXAoVT0+KHtbUW4oeSxUKV06VX0pKX0sdz1sKHksaCksaz1wW3ldO3MuYWRkKFt3LGhdKTtsZXQgRT1be3NvcnQ6dixsYXllcjoiY29tcG9uZW50cyIsb3B0aW9uczpofSxTXTtlLmNhbmRpZGF0ZVJ1bGVNYXAuaGFzKHcpfHxlLmNhbmRpZGF0ZVJ1bGVNYXAuc2V0KHcsW10pLGUuY2FuZGlkYXRlUnVsZU1hcC5nZXQodykucHVzaChFKX19LGFkZFZhcmlhbnQocCxoLGI9e30pe2g9W10uY29uY2F0KGgpLm1hcCh2PT57aWYodHlwZW9mIHYhPSJzdHJpbmciKXJldHVybih5PXt9KT0+e2xldHthcmdzOncsbW9kaWZ5U2VsZWN0b3JzOmssY29udGFpbmVyOlMsc2VwYXJhdG9yOkUsd3JhcDpULGZvcm1hdDpCfT15LE49dihPYmplY3QuYXNzaWduKHttb2RpZnlTZWxlY3RvcnM6ayxjb250YWluZXI6UyxzZXBhcmF0b3I6RX0sYi50eXBlPT09Sm8uTWF0Y2hWYXJpYW50JiZ7YXJnczp3LHdyYXA6VCxmb3JtYXQ6Qn0pKTtpZih0eXBlb2YgTj09InN0cmluZyImJiFscyhOKSl0aHJvdyBuZXcgRXJyb3IoYFlvdXIgY3VzdG9tIHZhcmlhbnQgXGAke3B9XGAgaGFzIGFuIGludmFsaWQgZm9ybWF0IHN0cmluZy4gTWFrZSBzdXJlIGl0J3MgYW4gYXQtcnVsZSBvciBjb250YWlucyBhIFxgJlxgIHBsYWNlaG9sZGVyLmApO3JldHVybiBBcnJheS5pc0FycmF5KE4pP04uZmlsdGVyKFI9PnR5cGVvZiBSPT0ic3RyaW5nIikubWFwKFI9PlJpKFIpKTpOJiZ0eXBlb2YgTj09InN0cmluZyImJlJpKE4pKHkpfTtpZighbHModikpdGhyb3cgbmV3IEVycm9yKGBZb3VyIGN1c3RvbSB2YXJpYW50IFxgJHtwfVxgIGhhcyBhbiBpbnZhbGlkIGZvcm1hdCBzdHJpbmcuIE1ha2Ugc3VyZSBpdCdzIGFuIGF0LXJ1bGUgb3IgY29udGFpbnMgYSBcYCZcYCBwbGFjZWhvbGRlci5gKTtyZXR1cm4gUmkodil9KSxNXyh0LHAsYiksaS5zZXQocCxoKSxlLnZhcmlhbnRPcHRpb25zLnNldChwLGIpfSxtYXRjaFZhcmlhbnQocCxoLGIpe2xldCB2PWI/LmlkPz8rK2YseT1wPT09IkAiLHc9d2UociwiZ2VuZXJhbGl6ZWRNb2RpZmllcnMiKTtmb3IobGV0W1MsRV1vZiBPYmplY3QuZW50cmllcyhiPy52YWx1ZXM/P3t9KSlTIT09IkRFRkFVTFQiJiZkLmFkZFZhcmlhbnQoeT9gJHtwfSR7U31gOmAke3B9LSR7U31gLCh7YXJnczpULGNvbnRhaW5lcjpCfSk9PmgoRSx3P3ttb2RpZmllcjpUPy5tb2RpZmllcixjb250YWluZXI6Qn06e2NvbnRhaW5lcjpCfSksey4uLmIsdmFsdWU6RSxpZDp2LHR5cGU6Sm8uTWF0Y2hWYXJpYW50LHZhcmlhbnRJbmZvOmVsLkJhc2V9KTtsZXQgaz0iREVGQVVMVCJpbihiPy52YWx1ZXM/P3t9KTtkLmFkZFZhcmlhbnQocCwoe2FyZ3M6Uyxjb250YWluZXI6RX0pPT5TPy52YWx1ZT09PVRpJiYhaz9udWxsOmgoUz8udmFsdWU9PT1UaT9iLnZhbHVlcy5ERUZBVUxUOlM/LnZhbHVlPz8odHlwZW9mIFM9PSJzdHJpbmciP1M6IiIpLHc/e21vZGlmaWVyOlM/Lm1vZGlmaWVyLGNvbnRhaW5lcjpFfTp7Y29udGFpbmVyOkV9KSx7Li4uYixpZDp2LHR5cGU6Sm8uTWF0Y2hWYXJpYW50LHZhcmlhbnRJbmZvOmVsLkR5bmFtaWN9KX19O3JldHVybiBkfWZ1bmN0aW9uIGNzKHIpe3JldHVybiBybC5oYXMocil8fHJsLnNldChyLG5ldyBNYXApLHJsLmdldChyKX1mdW5jdGlvbiBqaChyLGUpe2xldCB0PSExLGk9bmV3IE1hcDtmb3IobGV0IG4gb2Ygcil7aWYoIW4pY29udGludWU7bGV0IHM9b2EucGFyc2UobiksYT1zLmhhc2g/cy5ocmVmLnJlcGxhY2Uocy5oYXNoLCIiKTpzLmhyZWY7YT1zLnNlYXJjaD9hLnJlcGxhY2Uocy5zZWFyY2gsIiIpOmE7bGV0IG89YmUuc3RhdFN5bmMoZGVjb2RlVVJJQ29tcG9uZW50KGEpLHt0aHJvd0lmTm9FbnRyeTohMX0pPy5tdGltZU1zOyFvfHwoKCFlLmhhcyhuKXx8bz5lLmdldChuKSkmJih0PSEwKSxpLnNldChuLG8pKX1yZXR1cm5bdCxpXX1mdW5jdGlvbiB6aChyKXtyLndhbGtBdFJ1bGVzKGU9PntbInJlc3BvbnNpdmUiLCJ2YXJpYW50cyJdLmluY2x1ZGVzKGUubmFtZSkmJih6aChlKSxlLmJlZm9yZShlLm5vZGVzKSxlLnJlbW92ZSgpKX0pfWZ1bmN0aW9uIHpfKHIpe2xldCBlPVtdO3JldHVybiByLmVhY2godD0+e3QudHlwZT09PSJhdHJ1bGUiJiZbInJlc3BvbnNpdmUiLCJ2YXJpYW50cyJdLmluY2x1ZGVzKHQubmFtZSkmJih0Lm5hbWU9ImxheWVyIix0LnBhcmFtcz0idXRpbGl0aWVzIil9KSxyLndhbGtBdFJ1bGVzKCJsYXllciIsdD0+e2lmKHpoKHQpLHQucGFyYW1zPT09ImJhc2UiKXtmb3IobGV0IGkgb2YgdC5ub2RlcyllLnB1c2goZnVuY3Rpb24oe2FkZEJhc2U6bn0pe24oaSx7cmVzcGVjdFByZWZpeDohMX0pfSk7dC5yZW1vdmUoKX1lbHNlIGlmKHQucGFyYW1zPT09ImNvbXBvbmVudHMiKXtmb3IobGV0IGkgb2YgdC5ub2RlcyllLnB1c2goZnVuY3Rpb24oe2FkZENvbXBvbmVudHM6bn0pe24oaSx7cmVzcGVjdFByZWZpeDohMSxwcmVzZXJ2ZVNvdXJjZTohMH0pfSk7dC5yZW1vdmUoKX1lbHNlIGlmKHQucGFyYW1zPT09InV0aWxpdGllcyIpe2ZvcihsZXQgaSBvZiB0Lm5vZGVzKWUucHVzaChmdW5jdGlvbih7YWRkVXRpbGl0aWVzOm59KXtuKGkse3Jlc3BlY3RQcmVmaXg6ITEscHJlc2VydmVTb3VyY2U6ITB9KX0pO3QucmVtb3ZlKCl9fSksZX1mdW5jdGlvbiBVXyhyLGUpe2xldCB0PU9iamVjdC5lbnRyaWVzKHsuLi5zZSwuLi55aH0pLm1hcCgoW2wsY10pPT5yLnRhaWx3aW5kQ29uZmlnLmNvcmVQbHVnaW5zLmluY2x1ZGVzKGwpP2M6bnVsbCkuZmlsdGVyKEJvb2xlYW4pLGk9ci50YWlsd2luZENvbmZpZy5wbHVnaW5zLm1hcChsPT4obC5fX2lzT3B0aW9uc0Z1bmN0aW9uJiYobD1sKCkpLHR5cGVvZiBsPT0iZnVuY3Rpb24iP2w6bC5oYW5kbGVyKSksbj16XyhlKSxzPVtzZS5jaGlsZFZhcmlhbnQsc2UucHNldWRvRWxlbWVudFZhcmlhbnRzLHNlLnBzZXVkb0NsYXNzVmFyaWFudHMsc2UuaGFzVmFyaWFudHMsc2UuYXJpYVZhcmlhbnRzLHNlLmRhdGFWYXJpYW50c10sYT1bc2Uuc3VwcG9ydHNWYXJpYW50cyxzZS5yZWR1Y2VkTW90aW9uVmFyaWFudHMsc2UucHJlZmVyc0NvbnRyYXN0VmFyaWFudHMsc2Uuc2NyZWVuVmFyaWFudHMsc2Uub3JpZW50YXRpb25WYXJpYW50cyxzZS5kaXJlY3Rpb25WYXJpYW50cyxzZS5kYXJrVmFyaWFudHMsc2UuZm9yY2VkQ29sb3JzVmFyaWFudHMsc2UucHJpbnRWYXJpYW50XTtyZXR1cm4oci50YWlsd2luZENvbmZpZy5kYXJrTW9kZT09PSJjbGFzcyJ8fEFycmF5LmlzQXJyYXkoci50YWlsd2luZENvbmZpZy5kYXJrTW9kZSkmJnIudGFpbHdpbmRDb25maWcuZGFya01vZGVbMF09PT0iY2xhc3MiKSYmKGE9W3NlLnN1cHBvcnRzVmFyaWFudHMsc2UucmVkdWNlZE1vdGlvblZhcmlhbnRzLHNlLnByZWZlcnNDb250cmFzdFZhcmlhbnRzLHNlLmRhcmtWYXJpYW50cyxzZS5zY3JlZW5WYXJpYW50cyxzZS5vcmllbnRhdGlvblZhcmlhbnRzLHNlLmRpcmVjdGlvblZhcmlhbnRzLHNlLmZvcmNlZENvbG9yc1ZhcmlhbnRzLHNlLnByaW50VmFyaWFudF0pLFsuLi50LC4uLnMsLi4uaSwuLi5hLC4uLm5dfWZ1bmN0aW9uIFZfKHIsZSl7bGV0IHQ9W10saT1uZXcgTWFwO2UudmFyaWFudE1hcD1pO2xldCBuPW5ldyBYbztlLm9mZnNldHM9bjtsZXQgcz1uZXcgU2V0LGE9al8oZS50YWlsd2luZENvbmZpZyxlLHt2YXJpYW50TGlzdDp0LHZhcmlhbnRNYXA6aSxvZmZzZXRzOm4sY2xhc3NMaXN0OnN9KTtmb3IobGV0IGYgb2YgcilpZihBcnJheS5pc0FycmF5KGYpKWZvcihsZXQgZCBvZiBmKWQoYSk7ZWxzZSBmPy4oYSk7bi5yZWNvcmRWYXJpYW50cyh0LGY9PmkuZ2V0KGYpLmxlbmd0aCk7Zm9yKGxldFtmLGRdb2YgaS5lbnRyaWVzKCkpZS52YXJpYW50TWFwLnNldChmLGQubWFwKChwLGgpPT5bbi5mb3JWYXJpYW50KGYsaCkscF0pKTtsZXQgbz0oZS50YWlsd2luZENvbmZpZy5zYWZlbGlzdD8/W10pLmZpbHRlcihCb29sZWFuKTtpZihvLmxlbmd0aD4wKXtsZXQgZj1bXTtmb3IobGV0IGQgb2Ygbyl7aWYodHlwZW9mIGQ9PSJzdHJpbmciKXtlLmNoYW5nZWRDb250ZW50LnB1c2goe2NvbnRlbnQ6ZCxleHRlbnNpb246Imh0bWwifSk7Y29udGludWV9aWYoZCBpbnN0YW5jZW9mIFJlZ0V4cCl7Ry53YXJuKCJyb290LXJlZ2V4IixbIlJlZ3VsYXIgZXhwcmVzc2lvbnMgaW4gYHNhZmVsaXN0YCB3b3JrIGRpZmZlcmVudGx5IGluIFRhaWx3aW5kIENTUyB2My4wLiIsIlVwZGF0ZSB5b3VyIGBzYWZlbGlzdGAgY29uZmlndXJhdGlvbiB0byBlbGltaW5hdGUgdGhpcyB3YXJuaW5nLiIsImh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvY29udGVudC1jb25maWd1cmF0aW9uI3NhZmVsaXN0aW5nLWNsYXNzZXMiXSk7Y29udGludWV9Zi5wdXNoKGQpfWlmKGYubGVuZ3RoPjApe2xldCBkPW5ldyBNYXAscD1lLnRhaWx3aW5kQ29uZmlnLnByZWZpeC5sZW5ndGgsaD1mLnNvbWUoYj0+Yi5wYXR0ZXJuLnNvdXJjZS5pbmNsdWRlcygiISIpKTtmb3IobGV0IGIgb2Ygcyl7bGV0IHY9QXJyYXkuaXNBcnJheShiKT8oKCk9PntsZXRbeSx3XT1iLFM9T2JqZWN0LmtleXModz8udmFsdWVzPz97fSkubWFwKEU9PkVpKHksRSkpO3JldHVybiB3Py5zdXBwb3J0c05lZ2F0aXZlVmFsdWVzJiYoUz1bLi4uUywuLi5TLm1hcChFPT4iLSIrRSldLFM9Wy4uLlMsLi4uUy5tYXAoRT0+RS5zbGljZSgwLHApKyItIitFLnNsaWNlKHApKV0pLHcudHlwZXMuc29tZSgoe3R5cGU6RX0pPT5FPT09ImNvbG9yIikmJihTPVsuLi5TLC4uLlMuZmxhdE1hcChFPT5PYmplY3Qua2V5cyhlLnRhaWx3aW5kQ29uZmlnLnRoZW1lLm9wYWNpdHkpLm1hcChUPT5gJHtFfS8ke1R9YCkpXSksaCYmdz8ucmVzcGVjdEltcG9ydGFudCYmKFM9Wy4uLlMsLi4uUy5tYXAoRT0+IiEiK0UpXSksU30pKCk6W2JdO2ZvcihsZXQgeSBvZiB2KWZvcihsZXR7cGF0dGVybjp3LHZhcmlhbnRzOms9W119b2YgZilpZih3Lmxhc3RJbmRleD0wLGQuaGFzKHcpfHxkLnNldCh3LDApLCEhdy50ZXN0KHkpKXtkLnNldCh3LGQuZ2V0KHcpKzEpLGUuY2hhbmdlZENvbnRlbnQucHVzaCh7Y29udGVudDp5LGV4dGVuc2lvbjoiaHRtbCJ9KTtmb3IobGV0IFMgb2YgayllLmNoYW5nZWRDb250ZW50LnB1c2goe2NvbnRlbnQ6UytlLnRhaWx3aW5kQ29uZmlnLnNlcGFyYXRvcit5LGV4dGVuc2lvbjoiaHRtbCJ9KX19Zm9yKGxldFtiLHZdb2YgZC5lbnRyaWVzKCkpdj09PTAmJkcud2FybihbYFRoZSBzYWZlbGlzdCBwYXR0ZXJuIFxgJHtifVxgIGRvZXNuJ3QgbWF0Y2ggYW55IFRhaWx3aW5kIENTUyBjbGFzc2VzLmAsIkZpeCB0aGlzIHBhdHRlcm4gb3IgcmVtb3ZlIGl0IGZyb20geW91ciBgc2FmZWxpc3RgIGNvbmZpZ3VyYXRpb24uIiwiaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9jb250ZW50LWNvbmZpZ3VyYXRpb24jc2FmZWxpc3RpbmctY2xhc3NlcyJdKX19bGV0IGw9W10uY29uY2F0KGUudGFpbHdpbmRDb25maWcuZGFya01vZGU/PyJtZWRpYSIpWzFdPz8iZGFyayIsYz1bdGwoZSxsKSx0bChlLCJncm91cCIpLHRsKGUsInBlZXIiKV07ZS5nZXRDbGFzc09yZGVyPWZ1bmN0aW9uKGQpe2xldCBwPVsuLi5kXS5zb3J0KCh5LHcpPT55PT09dz8wOnk8dz8tMToxKSxoPW5ldyBNYXAocC5tYXAoeT0+W3ksbnVsbF0pKSxiPWFzKG5ldyBTZXQocCksZSwhMCk7Yj1lLm9mZnNldHMuc29ydChiKTtsZXQgdj1CaWdJbnQoYy5sZW5ndGgpO2ZvcihsZXRbLHldb2YgYil7bGV0IHc9eS5yYXdzLnRhaWx3aW5kLmNhbmRpZGF0ZTtoLnNldCh3LGguZ2V0KHcpPz92KyspfXJldHVybiBkLm1hcCh5PT57bGV0IHc9aC5nZXQoeSk/P251bGwsaz1jLmluZGV4T2YoeSk7cmV0dXJuIHc9PT1udWxsJiZrIT09LTEmJih3PUJpZ0ludChrKSksW3ksd119KX0sZS5nZXRDbGFzc0xpc3Q9ZnVuY3Rpb24oZD17fSl7bGV0IHA9W107Zm9yKGxldCBoIG9mIHMpaWYoQXJyYXkuaXNBcnJheShoKSl7bGV0W2Isdl09aCx5PVtdLHc9T2JqZWN0LmtleXModj8ubW9kaWZpZXJzPz97fSk7dj8udHlwZXM/LnNvbWUoKHt0eXBlOkV9KT0+RT09PSJjb2xvciIpJiZ3LnB1c2goLi4uT2JqZWN0LmtleXMoZS50YWlsd2luZENvbmZpZy50aGVtZS5vcGFjaXR5Pz97fSkpO2xldCBrPXttb2RpZmllcnM6d30sUz1kLmluY2x1ZGVNZXRhZGF0YSYmdy5sZW5ndGg+MDtmb3IobGV0W0UsVF1vZiBPYmplY3QuZW50cmllcyh2Py52YWx1ZXM/P3t9KSl7aWYoVD09bnVsbCljb250aW51ZTtsZXQgQj1FaShiLEUpO2lmKHAucHVzaChTP1tCLGtdOkIpLHY/LnN1cHBvcnRzTmVnYXRpdmVWYWx1ZXMmJnh0KFQpKXtsZXQgTj1FaShiLGAtJHtFfWApO3kucHVzaChTP1tOLGtdOk4pfX1wLnB1c2goLi4ueSl9ZWxzZSBwLnB1c2goaCk7cmV0dXJuIHB9LGUuZ2V0VmFyaWFudHM9ZnVuY3Rpb24oKXtsZXQgZD1NYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHJpbmcoNykudG9VcHBlckNhc2UoKSxwPVtdO2ZvcihsZXRbaCxiXW9mIGUudmFyaWFudE9wdGlvbnMuZW50cmllcygpKWIudmFyaWFudEluZm8hPT1lbC5CYXNlJiZwLnB1c2goe25hbWU6aCxpc0FyYml0cmFyeTpiLnR5cGU9PT1TeW1ib2wuZm9yKCJNQVRDSF9WQVJJQU5UIiksdmFsdWVzOk9iamVjdC5rZXlzKGIudmFsdWVzPz97fSksaGFzRGFzaDpoIT09IkAiLHNlbGVjdG9ycyh7bW9kaWZpZXI6dix2YWx1ZTp5fT17fSl7bGV0IHc9YFRBSUxXSU5EUExBQ0VIT0xERVIke2R9YCxrPWVlLnJ1bGUoe3NlbGVjdG9yOmAuJHt3fWB9KSxTPWVlLnJvb3Qoe25vZGVzOltrLmNsb25lKCldfSksRT1TLnRvU3RyaW5nKCksVD0oZS52YXJpYW50TWFwLmdldChoKT8/W10pLmZsYXRNYXAoKFtsZSxBXSk9PkEpLEI9W107Zm9yKGxldCBsZSBvZiBUKXtsZXQgQT1bXSxDPXthcmdzOnttb2RpZmllcjp2LHZhbHVlOmIudmFsdWVzPy5beV0/P3l9LHNlcGFyYXRvcjplLnRhaWx3aW5kQ29uZmlnLnNlcGFyYXRvcixtb2RpZnlTZWxlY3RvcnMoVil7cmV0dXJuIFMuZWFjaChFZT0+e0VlLnR5cGU9PT0icnVsZSImJihFZS5zZWxlY3RvcnM9RWUuc2VsZWN0b3JzLm1hcChJZT0+Vih7Z2V0IGNsYXNzTmFtZSgpe3JldHVybiBHbyhJZSl9LHNlbGVjdG9yOkllfSkpKX0pLFN9LGZvcm1hdChWKXtBLnB1c2goVil9LHdyYXAoVil7QS5wdXNoKGBAJHtWLm5hbWV9ICR7Vi5wYXJhbXN9IHsgJiB9YCl9LGNvbnRhaW5lcjpTfSxoZT1sZShDKTtpZihBLmxlbmd0aD4wJiZCLnB1c2goQSksQXJyYXkuaXNBcnJheShoZSkpZm9yKGxldCBWIG9mIGhlKUE9W10sVihDKSxCLnB1c2goQSl9bGV0IE49W10sUj1TLnRvU3RyaW5nKCk7RSE9PVImJihTLndhbGtSdWxlcyhsZT0+e2xldCBBPWxlLnNlbGVjdG9yLEM9KDAsWm8uZGVmYXVsdCkoaGU9PntoZS53YWxrQ2xhc3NlcyhWPT57Vi52YWx1ZT1gJHtofSR7ZS50YWlsd2luZENvbmZpZy5zZXBhcmF0b3J9JHtWLnZhbHVlfWB9KX0pLnByb2Nlc3NTeW5jKEEpO04ucHVzaChBLnJlcGxhY2UoQywiJiIpLnJlcGxhY2UodywiJiIpKX0pLFMud2Fsa0F0UnVsZXMobGU9PntOLnB1c2goYEAke2xlLm5hbWV9ICgke2xlLnBhcmFtc30pIHsgJiB9YCl9KSk7bGV0IEY9ISh5IGluKGIudmFsdWVzPz97fSkpLFk9YltQdF0/P3t9LF89KCgpPT4hKEZ8fFkucmVzcGVjdFByZWZpeD09PSExKSkoKTtCPUIubWFwKGxlPT5sZS5tYXAoQT0+KHtmb3JtYXQ6QSxyZXNwZWN0UHJlZml4Ol99KSkpLE49Ti5tYXAobGU9Pih7Zm9ybWF0OmxlLHJlc3BlY3RQcmVmaXg6X30pKTtsZXQgUT17Y2FuZGlkYXRlOncsY29udGV4dDplfSxVPUIubWFwKGxlPT5ycyhgLiR7d31gLGRyKGxlLFEpLFEpLnJlcGxhY2UoYC4ke3d9YCwiJiIpLnJlcGxhY2UoInsgJiB9IiwiIikudHJpbSgpKTtyZXR1cm4gTi5sZW5ndGg+MCYmVS5wdXNoKGRyKE4sUSkudG9TdHJpbmcoKS5yZXBsYWNlKGAuJHt3fWAsIiYiKSksVX19KTtyZXR1cm4gcH19ZnVuY3Rpb24gVWgocixlKXshci5jbGFzc0NhY2hlLmhhcyhlKXx8KHIubm90Q2xhc3NDYWNoZS5hZGQoZSksci5jbGFzc0NhY2hlLmRlbGV0ZShlKSxyLmFwcGx5Q2xhc3NDYWNoZS5kZWxldGUoZSksci5jYW5kaWRhdGVSdWxlTWFwLmRlbGV0ZShlKSxyLmNhbmRpZGF0ZVJ1bGVDYWNoZS5kZWxldGUoZSksci5zdHlsZXNoZWV0Q2FjaGU9bnVsbCl9ZnVuY3Rpb24gSF8ocixlKXtsZXQgdD1lLnJhd3MudGFpbHdpbmQuY2FuZGlkYXRlO2lmKCEhdCl7Zm9yKGxldCBpIG9mIHIucnVsZUNhY2hlKWlbMV0ucmF3cy50YWlsd2luZC5jYW5kaWRhdGU9PT10JiZyLnJ1bGVDYWNoZS5kZWxldGUoaSk7VWgocix0KX19ZnVuY3Rpb24gaWwocixlPVtdLHQ9ZWUucm9vdCgpKXtsZXQgaT17ZGlzcG9zYWJsZXM6W10scnVsZUNhY2hlOm5ldyBTZXQsY2FuZGlkYXRlUnVsZUNhY2hlOm5ldyBNYXAsY2xhc3NDYWNoZTpuZXcgTWFwLGFwcGx5Q2xhc3NDYWNoZTpuZXcgTWFwLG5vdENsYXNzQ2FjaGU6bmV3IFNldChyLmJsb2NrbGlzdD8/W10pLHBvc3RDc3NOb2RlQ2FjaGU6bmV3IE1hcCxjYW5kaWRhdGVSdWxlTWFwOm5ldyBNYXAsdGFpbHdpbmRDb25maWc6cixjaGFuZ2VkQ29udGVudDplLHZhcmlhbnRNYXA6bmV3IE1hcCxzdHlsZXNoZWV0Q2FjaGU6bnVsbCx2YXJpYW50T3B0aW9uczpuZXcgTWFwLG1hcmtJbnZhbGlkVXRpbGl0eUNhbmRpZGF0ZTpzPT5VaChpLHMpLG1hcmtJbnZhbGlkVXRpbGl0eU5vZGU6cz0+SF8oaSxzKX0sbj1VXyhpLHQpO3JldHVybiBWXyhuLGkpLGl9ZnVuY3Rpb24gVmgocixlLHQsaSxuLHMpe2xldCBhPWUub3B0cy5mcm9tLG89aSE9PW51bGw7WmUuREVCVUcmJmNvbnNvbGUubG9nKCJTb3VyY2UgcGF0aDoiLGEpO2xldCBsO2lmKG8mJmhyLmhhcyhhKSlsPWhyLmdldChhKTtlbHNlIGlmKFBpLmhhcyhuKSl7bGV0IHA9UGkuZ2V0KG4pO0R0LmdldChwKS5hZGQoYSksaHIuc2V0KGEscCksbD1wfWxldCBjPVBoKGEscik7aWYobCl7bGV0W3AsaF09amgoWy4uLnNdLGNzKGwpKTtpZighcCYmIWMpcmV0dXJuW2wsITEsaF19aWYoaHIuaGFzKGEpKXtsZXQgcD1oci5nZXQoYSk7aWYoRHQuaGFzKHApJiYoRHQuZ2V0KHApLmRlbGV0ZShhKSxEdC5nZXQocCkuc2l6ZT09PTApKXtEdC5kZWxldGUocCk7Zm9yKGxldFtoLGJdb2YgUGkpYj09PXAmJlBpLmRlbGV0ZShoKTtmb3IobGV0IGggb2YgcC5kaXNwb3NhYmxlcy5zcGxpY2UoMCkpaChwKX19WmUuREVCVUcmJmNvbnNvbGUubG9nKCJTZXR0aW5nIHVwIG5ldyBjb250ZXh0Li4uIik7bGV0IGY9aWwodCxbXSxyKTtPYmplY3QuYXNzaWduKGYse3VzZXJDb25maWdQYXRoOml9KTtsZXRbLGRdPWpoKFsuLi5zXSxjcyhmKSk7cmV0dXJuIFBpLnNldChuLGYpLGhyLnNldChhLGYpLER0LmhhcyhmKXx8RHQuc2V0KGYsbmV3IFNldCksRHQuZ2V0KGYpLmFkZChhKSxbZiwhMCxkXX12YXIgTmgsWm8sUHQsSm8sZWwscmwsaHIsUGksRHQsT2k9UCgoKT0+e3UoKTtmdCgpO2xhKCk7T3QoKTtOaD1wZShSYSgpKSxabz1wZShpdCgpKTtDaSgpO3FvKCk7R24oKTtLdCgpO2ZyKCk7TG8oKTtGcigpO2JoKCk7SXQoKTtJdCgpO1lpKCk7QmUoKTtHaSgpO0JvKCk7b3MoKTtJaCgpO01oKCk7Y3QoKTtWbygpO1B0PVN5bWJvbCgpLEpvPXtBZGRWYXJpYW50OlN5bWJvbC5mb3IoIkFERF9WQVJJQU5UIiksTWF0Y2hWYXJpYW50OlN5bWJvbC5mb3IoIk1BVENIX1ZBUklBTlQiKX0sZWw9e0Jhc2U6MTw8MCxEeW5hbWljOjE8PDF9O3JsPW5ldyBXZWFrTWFwO2hyPXdoLFBpPXZoLER0PWVzfSk7ZnVuY3Rpb24gbmwocil7cmV0dXJuIHIuaWdub3JlP1tdOnIuZ2xvYj9tLmVudi5ST0xMVVBfV0FUQ0g9PT0idHJ1ZSI/W3t0eXBlOiJkZXBlbmRlbmN5IixmaWxlOnIuYmFzZX1dOlt7dHlwZToiZGlyLWRlcGVuZGVuY3kiLGRpcjpyLmJhc2UsZ2xvYjpyLmdsb2J9XTpbe3R5cGU6ImRlcGVuZGVuY3kiLGZpbGU6ci5iYXNlfV19dmFyIEhoPVAoKCk9Pnt1KCl9KTtmdW5jdGlvbiBXaChyLGUpe3JldHVybntoYW5kbGVyOnIsY29uZmlnOmV9fXZhciBHaCxRaD1QKCgpPT57dSgpO1doLndpdGhPcHRpb25zPWZ1bmN0aW9uKHIsZT0oKT0+KHt9KSl7bGV0IHQ9ZnVuY3Rpb24oaSl7cmV0dXJue19fb3B0aW9uczppLGhhbmRsZXI6cihpKSxjb25maWc6ZShpKX19O3JldHVybiB0Ll9faXNPcHRpb25zRnVuY3Rpb249ITAsdC5fX3BsdWdpbkZ1bmN0aW9uPXIsdC5fX2NvbmZpZ0Z1bmN0aW9uPWUsdH07R2g9V2h9KTt2YXIgc2w9e307R2Uoc2wse2RlZmF1bHQ6KCk9PldffSk7dmFyIFdfLGFsPVAoKCk9Pnt1KCk7UWgoKTtXXz1HaH0pO3ZhciBLaD14KCh6NCxZaCk9Pnt1KCk7dmFyIEdfPShhbCgpLHNsKS5kZWZhdWx0LFFfPXtvdmVyZmxvdzoiaGlkZGVuIixkaXNwbGF5OiItd2Via2l0LWJveCIsIi13ZWJraXQtYm94LW9yaWVudCI6InZlcnRpY2FsIn0sWV89R18oZnVuY3Rpb24oe21hdGNoVXRpbGl0aWVzOnIsYWRkVXRpbGl0aWVzOmUsdGhlbWU6dCx2YXJpYW50czppfSl7bGV0IG49dCgibGluZUNsYW1wIik7cih7ImxpbmUtY2xhbXAiOnM9Pih7Li4uUV8sIi13ZWJraXQtbGluZS1jbGFtcCI6YCR7c31gfSl9LHt2YWx1ZXM6bn0pLGUoW3siLmxpbmUtY2xhbXAtbm9uZSI6eyItd2Via2l0LWxpbmUtY2xhbXAiOiJ1bnNldCJ9fV0saSgibGluZUNsYW1wIikpfSx7dGhlbWU6e2xpbmVDbGFtcDp7MToiMSIsMjoiMiIsMzoiMyIsNDoiNCIsNToiNSIsNjoiNiJ9fSx2YXJpYW50czp7bGluZUNsYW1wOlsicmVzcG9uc2l2ZSJdfX0pO1loLmV4cG9ydHM9WV99KTtmdW5jdGlvbiBvbChyKXtyLmNvbnRlbnQuZmlsZXMubGVuZ3RoPT09MCYmRy53YXJuKCJjb250ZW50LXByb2JsZW1zIixbIlRoZSBgY29udGVudGAgb3B0aW9uIGluIHlvdXIgVGFpbHdpbmQgQ1NTIGNvbmZpZ3VyYXRpb24gaXMgbWlzc2luZyBvciBlbXB0eS4iLCJDb25maWd1cmUgeW91ciBjb250ZW50IHNvdXJjZXMgb3IgeW91ciBnZW5lcmF0ZWQgQ1NTIHdpbGwgYmUgbWlzc2luZyBzdHlsZXMuIiwiaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9jb250ZW50LWNvbmZpZ3VyYXRpb24iXSk7dHJ5e2xldCBlPUtoKCk7ci5wbHVnaW5zLmluY2x1ZGVzKGUpJiYoRy53YXJuKCJsaW5lLWNsYW1wLWluLWNvcmUiLFsiQXMgb2YgVGFpbHdpbmQgQ1NTIHYzLjMsIHRoZSBgQHRhaWx3aW5kY3NzL2xpbmUtY2xhbXBgIHBsdWdpbiBpcyBub3cgaW5jbHVkZWQgYnkgZGVmYXVsdC4iLCJSZW1vdmUgaXQgZnJvbSB0aGUgYHBsdWdpbnNgIGFycmF5IGluIHlvdXIgY29uZmlndXJhdGlvbiB0byBlbGltaW5hdGUgdGhpcyB3YXJuaW5nLiJdKSxyLnBsdWdpbnM9ci5wbHVnaW5zLmZpbHRlcih0PT50IT09ZSkpfWNhdGNoe31yZXR1cm4gcn12YXIgWGg9UCgoKT0+e3UoKTtCZSgpfSk7dmFyIFpoLEpoPVAoKCk9Pnt1KCk7Wmg9KCk9PiExfSk7dmFyIHBzLGVtPVAoKCk9Pnt1KCk7cHM9e3N5bmM6cj0+W10uY29uY2F0KHIpLGdlbmVyYXRlVGFza3M6cj0+W3tkeW5hbWljOiExLGJhc2U6Ii4iLG5lZ2F0aXZlOltdLHBvc2l0aXZlOltdLmNvbmNhdChyKSxwYXR0ZXJuczpbXS5jb25jYXQocil9XSxlc2NhcGVQYXRoOnI9PnJ9fSk7dmFyIGxsLHRtPVAoKCk9Pnt1KCk7bGw9cj0+cn0pO3ZhciBybSxpbT1QKCgpPT57dSgpO3JtPSgpPT4iIn0pO2Z1bmN0aW9uIG5tKHIpe2xldCBlPXIsdD1ybShyKTtyZXR1cm4gdCE9PSIuIiYmKGU9ci5zdWJzdHIodC5sZW5ndGgpLGUuY2hhckF0KDApPT09Ii8iJiYoZT1lLnN1YnN0cigxKSkpLGUuc3Vic3RyKDAsMik9PT0iLi8iP2U9ZS5zdWJzdHIoMik6ZS5jaGFyQXQoMCk9PT0iLyImJihlPWUuc3Vic3RyKDEpKSx7YmFzZTp0LGdsb2I6ZX19dmFyIHNtPVAoKCk9Pnt1KCk7aW0oKX0pO3ZhciBkcz14KFZlPT57dSgpOyJ1c2Ugc3RyaWN0IjtWZS5pc0ludGVnZXI9cj0+dHlwZW9mIHI9PSJudW1iZXIiP051bWJlci5pc0ludGVnZXIocik6dHlwZW9mIHI9PSJzdHJpbmciJiZyLnRyaW0oKSE9PSIiP051bWJlci5pc0ludGVnZXIoTnVtYmVyKHIpKTohMTtWZS5maW5kPShyLGUpPT5yLm5vZGVzLmZpbmQodD0+dC50eXBlPT09ZSk7VmUuZXhjZWVkc0xpbWl0PShyLGUsdD0xLGkpPT5pPT09ITF8fCFWZS5pc0ludGVnZXIocil8fCFWZS5pc0ludGVnZXIoZSk/ITE6KE51bWJlcihlKS1OdW1iZXIocikpL051bWJlcih0KT49aTtWZS5lc2NhcGVOb2RlPShyLGU9MCx0KT0+e2xldCBpPXIubm9kZXNbZV07IWl8fCh0JiZpLnR5cGU9PT10fHxpLnR5cGU9PT0ib3BlbiJ8fGkudHlwZT09PSJjbG9zZSIpJiZpLmVzY2FwZWQhPT0hMCYmKGkudmFsdWU9IlxcIitpLnZhbHVlLGkuZXNjYXBlZD0hMCl9O1ZlLmVuY2xvc2VCcmFjZT1yPT5yLnR5cGUhPT0iYnJhY2UiPyExOnIuY29tbWFzPj4wK3IucmFuZ2VzPj4wPT0wPyhyLmludmFsaWQ9ITAsITApOiExO1ZlLmlzSW52YWxpZEJyYWNlPXI9PnIudHlwZSE9PSJicmFjZSI/ITE6ci5pbnZhbGlkPT09ITB8fHIuZG9sbGFyPyEwOnIuY29tbWFzPj4wK3IucmFuZ2VzPj4wPT0wfHxyLm9wZW4hPT0hMHx8ci5jbG9zZSE9PSEwPyhyLmludmFsaWQ9ITAsITApOiExO1ZlLmlzT3Blbk9yQ2xvc2U9cj0+ci50eXBlPT09Im9wZW4ifHxyLnR5cGU9PT0iY2xvc2UiPyEwOnIub3Blbj09PSEwfHxyLmNsb3NlPT09ITA7VmUucmVkdWNlPXI9PnIucmVkdWNlKChlLHQpPT4odC50eXBlPT09InRleHQiJiZlLnB1c2godC52YWx1ZSksdC50eXBlPT09InJhbmdlIiYmKHQudHlwZT0idGV4dCIpLGUpLFtdKTtWZS5mbGF0dGVuPSguLi5yKT0+e2xldCBlPVtdLHQ9aT0+e2ZvcihsZXQgbj0wO248aS5sZW5ndGg7bisrKXtsZXQgcz1pW25dO2lmKEFycmF5LmlzQXJyYXkocykpe3Qocyk7Y29udGludWV9cyE9PXZvaWQgMCYmZS5wdXNoKHMpfXJldHVybiBlfTtyZXR1cm4gdChyKSxlfX0pO3ZhciBocz14KChaNCxvbSk9Pnt1KCk7InVzZSBzdHJpY3QiO3ZhciBhbT1kcygpO29tLmV4cG9ydHM9KHIsZT17fSk9PntsZXQgdD0oaSxuPXt9KT0+e2xldCBzPWUuZXNjYXBlSW52YWxpZCYmYW0uaXNJbnZhbGlkQnJhY2UobiksYT1pLmludmFsaWQ9PT0hMCYmZS5lc2NhcGVJbnZhbGlkPT09ITAsbz0iIjtpZihpLnZhbHVlKXJldHVybihzfHxhKSYmYW0uaXNPcGVuT3JDbG9zZShpKT8iXFwiK2kudmFsdWU6aS52YWx1ZTtpZihpLnZhbHVlKXJldHVybiBpLnZhbHVlO2lmKGkubm9kZXMpZm9yKGxldCBsIG9mIGkubm9kZXMpbys9dChsKTtyZXR1cm4gb307cmV0dXJuIHQocil9fSk7dmFyIHVtPXgoKEo0LGxtKT0+e3UoKTsidXNlIHN0cmljdCI7bG0uZXhwb3J0cz1mdW5jdGlvbihyKXtyZXR1cm4gdHlwZW9mIHI9PSJudW1iZXIiP3Itcj09MDp0eXBlb2Ygcj09InN0cmluZyImJnIudHJpbSgpIT09IiI/TnVtYmVyLmlzRmluaXRlP051bWJlci5pc0Zpbml0ZSgrcik6aXNGaW5pdGUoK3IpOiExfX0pO3ZhciBibT14KChlNix5bSk9Pnt1KCk7InVzZSBzdHJpY3QiO3ZhciBmbT11bSgpLFd0PShyLGUsdCk9PntpZihmbShyKT09PSExKXRocm93IG5ldyBUeXBlRXJyb3IoInRvUmVnZXhSYW5nZTogZXhwZWN0ZWQgdGhlIGZpcnN0IGFyZ3VtZW50IHRvIGJlIGEgbnVtYmVyIik7aWYoZT09PXZvaWQgMHx8cj09PWUpcmV0dXJuIFN0cmluZyhyKTtpZihmbShlKT09PSExKXRocm93IG5ldyBUeXBlRXJyb3IoInRvUmVnZXhSYW5nZTogZXhwZWN0ZWQgdGhlIHNlY29uZCBhcmd1bWVudCB0byBiZSBhIG51bWJlci4iKTtsZXQgaT17cmVsYXhaZXJvczohMCwuLi50fTt0eXBlb2YgaS5zdHJpY3RaZXJvcz09ImJvb2xlYW4iJiYoaS5yZWxheFplcm9zPWkuc3RyaWN0WmVyb3M9PT0hMSk7bGV0IG49U3RyaW5nKGkucmVsYXhaZXJvcykscz1TdHJpbmcoaS5zaG9ydGhhbmQpLGE9U3RyaW5nKGkuY2FwdHVyZSksbz1TdHJpbmcoaS53cmFwKSxsPXIrIjoiK2UrIj0iK24rcythK287aWYoV3QuY2FjaGUuaGFzT3duUHJvcGVydHkobCkpcmV0dXJuIFd0LmNhY2hlW2xdLnJlc3VsdDtsZXQgYz1NYXRoLm1pbihyLGUpLGY9TWF0aC5tYXgocixlKTtpZihNYXRoLmFicyhjLWYpPT09MSl7bGV0IHY9cisifCIrZTtyZXR1cm4gaS5jYXB0dXJlP2AoJHt2fSlgOmkud3JhcD09PSExP3Y6YCg/OiR7dn0pYH1sZXQgZD1nbShyKXx8Z20oZSkscD17bWluOnIsbWF4OmUsYTpjLGI6Zn0saD1bXSxiPVtdO2lmKGQmJihwLmlzUGFkZGVkPWQscC5tYXhMZW49U3RyaW5nKHAubWF4KS5sZW5ndGgpLGM8MCl7bGV0IHY9ZjwwP01hdGguYWJzKGYpOjE7Yj1jbSh2LE1hdGguYWJzKGMpLHAsaSksYz1wLmE9MH1yZXR1cm4gZj49MCYmKGg9Y20oYyxmLHAsaSkpLHAubmVnYXRpdmVzPWIscC5wb3NpdGl2ZXM9aCxwLnJlc3VsdD1LXyhiLGgsaSksaS5jYXB0dXJlPT09ITA/cC5yZXN1bHQ9YCgke3AucmVzdWx0fSlgOmkud3JhcCE9PSExJiZoLmxlbmd0aCtiLmxlbmd0aD4xJiYocC5yZXN1bHQ9YCg/OiR7cC5yZXN1bHR9KWApLFd0LmNhY2hlW2xdPXAscC5yZXN1bHR9O2Z1bmN0aW9uIEtfKHIsZSx0KXtsZXQgaT11bChyLGUsIi0iLCExLHQpfHxbXSxuPXVsKGUsciwiIiwhMSx0KXx8W10scz11bChyLGUsIi0/IiwhMCx0KXx8W107cmV0dXJuIGkuY29uY2F0KHMpLmNvbmNhdChuKS5qb2luKCJ8Iil9ZnVuY3Rpb24gWF8ocixlKXtsZXQgdD0xLGk9MSxuPWRtKHIsdCkscz1uZXcgU2V0KFtlXSk7Zm9yKDtyPD1uJiZuPD1lOylzLmFkZChuKSx0Kz0xLG49ZG0ocix0KTtmb3Iobj1obShlKzEsaSktMTtyPG4mJm48PWU7KXMuYWRkKG4pLGkrPTEsbj1obShlKzEsaSktMTtyZXR1cm4gcz1bLi4uc10scy5zb3J0KGVFKSxzfWZ1bmN0aW9uIFpfKHIsZSx0KXtpZihyPT09ZSlyZXR1cm57cGF0dGVybjpyLGNvdW50OltdLGRpZ2l0czowfTtsZXQgaT1KXyhyLGUpLG49aS5sZW5ndGgscz0iIixhPTA7Zm9yKGxldCBvPTA7bzxuO28rKyl7bGV0W2wsY109aVtvXTtsPT09Yz9zKz1sOmwhPT0iMCJ8fGMhPT0iOSI/cys9dEUobCxjLHQpOmErK31yZXR1cm4gYSYmKHMrPXQuc2hvcnRoYW5kPT09ITA/IlxcZCI6IlswLTldIikse3BhdHRlcm46cyxjb3VudDpbYV0sZGlnaXRzOm59fWZ1bmN0aW9uIGNtKHIsZSx0LGkpe2xldCBuPVhfKHIsZSkscz1bXSxhPXIsbztmb3IobGV0IGw9MDtsPG4ubGVuZ3RoO2wrKyl7bGV0IGM9bltsXSxmPVpfKFN0cmluZyhhKSxTdHJpbmcoYyksaSksZD0iIjtpZighdC5pc1BhZGRlZCYmbyYmby5wYXR0ZXJuPT09Zi5wYXR0ZXJuKXtvLmNvdW50Lmxlbmd0aD4xJiZvLmNvdW50LnBvcCgpLG8uY291bnQucHVzaChmLmNvdW50WzBdKSxvLnN0cmluZz1vLnBhdHRlcm4rbW0oby5jb3VudCksYT1jKzE7Y29udGludWV9dC5pc1BhZGRlZCYmKGQ9ckUoYyx0LGkpKSxmLnN0cmluZz1kK2YucGF0dGVybittbShmLmNvdW50KSxzLnB1c2goZiksYT1jKzEsbz1mfXJldHVybiBzfWZ1bmN0aW9uIHVsKHIsZSx0LGksbil7bGV0IHM9W107Zm9yKGxldCBhIG9mIHIpe2xldHtzdHJpbmc6b309YTshaSYmIXBtKGUsInN0cmluZyIsbykmJnMucHVzaCh0K28pLGkmJnBtKGUsInN0cmluZyIsbykmJnMucHVzaCh0K28pfXJldHVybiBzfWZ1bmN0aW9uIEpfKHIsZSl7bGV0IHQ9W107Zm9yKGxldCBpPTA7aTxyLmxlbmd0aDtpKyspdC5wdXNoKFtyW2ldLGVbaV1dKTtyZXR1cm4gdH1mdW5jdGlvbiBlRShyLGUpe3JldHVybiByPmU/MTplPnI/LTE6MH1mdW5jdGlvbiBwbShyLGUsdCl7cmV0dXJuIHIuc29tZShpPT5pW2VdPT09dCl9ZnVuY3Rpb24gZG0ocixlKXtyZXR1cm4gTnVtYmVyKFN0cmluZyhyKS5zbGljZSgwLC1lKSsiOSIucmVwZWF0KGUpKX1mdW5jdGlvbiBobShyLGUpe3JldHVybiByLXIlTWF0aC5wb3coMTAsZSl9ZnVuY3Rpb24gbW0ocil7bGV0W2U9MCx0PSIiXT1yO3JldHVybiB0fHxlPjE/YHske2UrKHQ/IiwiK3Q6IiIpfX1gOiIifWZ1bmN0aW9uIHRFKHIsZSx0KXtyZXR1cm5gWyR7cn0ke2Utcj09MT8iIjoiLSJ9JHtlfV1gfWZ1bmN0aW9uIGdtKHIpe3JldHVybi9eLT8oMCspXGQvLnRlc3Qocil9ZnVuY3Rpb24gckUocixlLHQpe2lmKCFlLmlzUGFkZGVkKXJldHVybiByO2xldCBpPU1hdGguYWJzKGUubWF4TGVuLVN0cmluZyhyKS5sZW5ndGgpLG49dC5yZWxheFplcm9zIT09ITE7c3dpdGNoKGkpe2Nhc2UgMDpyZXR1cm4iIjtjYXNlIDE6cmV0dXJuIG4/IjA/IjoiMCI7Y2FzZSAyOnJldHVybiBuPyIwezAsMn0iOiIwMCI7ZGVmYXVsdDpyZXR1cm4gbj9gMHswLCR7aX19YDpgMHske2l9fWB9fVd0LmNhY2hlPXt9O1d0LmNsZWFyQ2FjaGU9KCk9Pld0LmNhY2hlPXt9O3ltLmV4cG9ydHM9V3R9KTt2YXIgcGw9eCgodDYsQ20pPT57dSgpOyJ1c2Ugc3RyaWN0Ijt2YXIgaUU9KEZuKCksQm4pLHdtPWJtKCksdm09cj0+ciE9PW51bGwmJnR5cGVvZiByPT0ib2JqZWN0IiYmIUFycmF5LmlzQXJyYXkociksbkU9cj0+ZT0+cj09PSEwP051bWJlcihlKTpTdHJpbmcoZSksZmw9cj0+dHlwZW9mIHI9PSJudW1iZXIifHx0eXBlb2Ygcj09InN0cmluZyImJnIhPT0iIixJaT1yPT5OdW1iZXIuaXNJbnRlZ2VyKCtyKSxjbD1yPT57bGV0IGU9YCR7cn1gLHQ9LTE7aWYoZVswXT09PSItIiYmKGU9ZS5zbGljZSgxKSksZT09PSIwIilyZXR1cm4hMTtmb3IoO2VbKyt0XT09PSIwIjspO3JldHVybiB0PjB9LHNFPShyLGUsdCk9PnR5cGVvZiByPT0ic3RyaW5nInx8dHlwZW9mIGU9PSJzdHJpbmciPyEwOnQuc3RyaW5naWZ5PT09ITAsYUU9KHIsZSx0KT0+e2lmKGU+MCl7bGV0IGk9clswXT09PSItIj8iLSI6IiI7aSYmKHI9ci5zbGljZSgxKSkscj1pK3IucGFkU3RhcnQoaT9lLTE6ZSwiMCIpfXJldHVybiB0PT09ITE/U3RyaW5nKHIpOnJ9LG1zPShyLGUpPT57bGV0IHQ9clswXT09PSItIj8iLSI6IiI7Zm9yKHQmJihyPXIuc2xpY2UoMSksZS0tKTtyLmxlbmd0aDxlOylyPSIwIityO3JldHVybiB0PyItIityOnJ9LG9FPShyLGUsdCk9PntyLm5lZ2F0aXZlcy5zb3J0KChvLGwpPT5vPGw/LTE6bz5sPzE6MCksci5wb3NpdGl2ZXMuc29ydCgobyxsKT0+bzxsPy0xOm8+bD8xOjApO2xldCBpPWUuY2FwdHVyZT8iIjoiPzoiLG49IiIscz0iIixhO3JldHVybiByLnBvc2l0aXZlcy5sZW5ndGgmJihuPXIucG9zaXRpdmVzLm1hcChvPT5tcyhTdHJpbmcobyksdCkpLmpvaW4oInwiKSksci5uZWdhdGl2ZXMubGVuZ3RoJiYocz1gLSgke2l9JHtyLm5lZ2F0aXZlcy5tYXAobz0+bXMoU3RyaW5nKG8pLHQpKS5qb2luKCJ8Iil9KWApLG4mJnM/YT1gJHtufXwke3N9YDphPW58fHMsZS53cmFwP2AoJHtpfSR7YX0pYDphfSx4bT0ocixlLHQsaSk9PntpZih0KXJldHVybiB3bShyLGUse3dyYXA6ITEsLi4uaX0pO2xldCBuPVN0cmluZy5mcm9tQ2hhckNvZGUocik7aWYocj09PWUpcmV0dXJuIG47bGV0IHM9U3RyaW5nLmZyb21DaGFyQ29kZShlKTtyZXR1cm5gWyR7bn0tJHtzfV1gfSxrbT0ocixlLHQpPT57aWYoQXJyYXkuaXNBcnJheShyKSl7bGV0IGk9dC53cmFwPT09ITAsbj10LmNhcHR1cmU/IiI6Ij86IjtyZXR1cm4gaT9gKCR7bn0ke3Iuam9pbigifCIpfSlgOnIuam9pbigifCIpfXJldHVybiB3bShyLGUsdCl9LFNtPSguLi5yKT0+bmV3IFJhbmdlRXJyb3IoIkludmFsaWQgcmFuZ2UgYXJndW1lbnRzOiAiK2lFLmluc3BlY3QoLi4ucikpLEFtPShyLGUsdCk9PntpZih0LnN0cmljdFJhbmdlcz09PSEwKXRocm93IFNtKFtyLGVdKTtyZXR1cm5bXX0sbEU9KHIsZSk9PntpZihlLnN0cmljdFJhbmdlcz09PSEwKXRocm93IG5ldyBUeXBlRXJyb3IoYEV4cGVjdGVkIHN0ZXAgIiR7cn0iIHRvIGJlIGEgbnVtYmVyYCk7cmV0dXJuW119LHVFPShyLGUsdD0xLGk9e30pPT57bGV0IG49TnVtYmVyKHIpLHM9TnVtYmVyKGUpO2lmKCFOdW1iZXIuaXNJbnRlZ2VyKG4pfHwhTnVtYmVyLmlzSW50ZWdlcihzKSl7aWYoaS5zdHJpY3RSYW5nZXM9PT0hMCl0aHJvdyBTbShbcixlXSk7cmV0dXJuW119bj09PTAmJihuPTApLHM9PT0wJiYocz0wKTtsZXQgYT1uPnMsbz1TdHJpbmcociksbD1TdHJpbmcoZSksYz1TdHJpbmcodCk7dD1NYXRoLm1heChNYXRoLmFicyh0KSwxKTtsZXQgZj1jbChvKXx8Y2wobCl8fGNsKGMpLGQ9Zj9NYXRoLm1heChvLmxlbmd0aCxsLmxlbmd0aCxjLmxlbmd0aCk6MCxwPWY9PT0hMSYmc0UocixlLGkpPT09ITEsaD1pLnRyYW5zZm9ybXx8bkUocCk7aWYoaS50b1JlZ2V4JiZ0PT09MSlyZXR1cm4geG0obXMocixkKSxtcyhlLGQpLCEwLGkpO2xldCBiPXtuZWdhdGl2ZXM6W10scG9zaXRpdmVzOltdfSx2PWs9PmJbazwwPyJuZWdhdGl2ZXMiOiJwb3NpdGl2ZXMiXS5wdXNoKE1hdGguYWJzKGspKSx5PVtdLHc9MDtmb3IoO2E/bj49czpuPD1zOylpLnRvUmVnZXg9PT0hMCYmdD4xP3Yobik6eS5wdXNoKGFFKGgobix3KSxkLHApKSxuPWE/bi10Om4rdCx3Kys7cmV0dXJuIGkudG9SZWdleD09PSEwP3Q+MT9vRShiLGksZCk6a20oeSxudWxsLHt3cmFwOiExLC4uLml9KTp5fSxmRT0ocixlLHQ9MSxpPXt9KT0+e2lmKCFJaShyKSYmci5sZW5ndGg+MXx8IUlpKGUpJiZlLmxlbmd0aD4xKXJldHVybiBBbShyLGUsaSk7bGV0IG49aS50cmFuc2Zvcm18fChwPT5TdHJpbmcuZnJvbUNoYXJDb2RlKHApKSxzPWAke3J9YC5jaGFyQ29kZUF0KDApLGE9YCR7ZX1gLmNoYXJDb2RlQXQoMCksbz1zPmEsbD1NYXRoLm1pbihzLGEpLGM9TWF0aC5tYXgocyxhKTtpZihpLnRvUmVnZXgmJnQ9PT0xKXJldHVybiB4bShsLGMsITEsaSk7bGV0IGY9W10sZD0wO2Zvcig7bz9zPj1hOnM8PWE7KWYucHVzaChuKHMsZCkpLHM9bz9zLXQ6cyt0LGQrKztyZXR1cm4gaS50b1JlZ2V4PT09ITA/a20oZixudWxsLHt3cmFwOiExLG9wdGlvbnM6aX0pOmZ9LGdzPShyLGUsdCxpPXt9KT0+e2lmKGU9PW51bGwmJmZsKHIpKXJldHVybltyXTtpZighZmwocil8fCFmbChlKSlyZXR1cm4gQW0ocixlLGkpO2lmKHR5cGVvZiB0PT0iZnVuY3Rpb24iKXJldHVybiBncyhyLGUsMSx7dHJhbnNmb3JtOnR9KTtpZih2bSh0KSlyZXR1cm4gZ3MocixlLDAsdCk7bGV0IG49ey4uLml9O3JldHVybiBuLmNhcHR1cmU9PT0hMCYmKG4ud3JhcD0hMCksdD10fHxuLnN0ZXB8fDEsSWkodCk/SWkocikmJklpKGUpP3VFKHIsZSx0LG4pOmZFKHIsZSxNYXRoLm1heChNYXRoLmFicyh0KSwxKSxuKTp0IT1udWxsJiYhdm0odCk/bEUodCxuKTpncyhyLGUsMSx0KX07Q20uZXhwb3J0cz1nc30pO3ZhciBPbT14KChyNixFbSk9Pnt1KCk7InVzZSBzdHJpY3QiO3ZhciBjRT1wbCgpLF9tPWRzKCkscEU9KHIsZT17fSk9PntsZXQgdD0oaSxuPXt9KT0+e2xldCBzPV9tLmlzSW52YWxpZEJyYWNlKG4pLGE9aS5pbnZhbGlkPT09ITAmJmUuZXNjYXBlSW52YWxpZD09PSEwLG89cz09PSEwfHxhPT09ITAsbD1lLmVzY2FwZUludmFsaWQ9PT0hMD8iXFwiOiIiLGM9IiI7aWYoaS5pc09wZW49PT0hMClyZXR1cm4gbCtpLnZhbHVlO2lmKGkuaXNDbG9zZT09PSEwKXJldHVybiBjb25zb2xlLmxvZygibm9kZS5pc0Nsb3NlIixsLGkudmFsdWUpLGwraS52YWx1ZTtpZihpLnR5cGU9PT0ib3BlbiIpcmV0dXJuIG8/bCtpLnZhbHVlOiIoIjtpZihpLnR5cGU9PT0iY2xvc2UiKXJldHVybiBvP2wraS52YWx1ZToiKSI7aWYoaS50eXBlPT09ImNvbW1hIilyZXR1cm4gaS5wcmV2LnR5cGU9PT0iY29tbWEiPyIiOm8/aS52YWx1ZToifCI7aWYoaS52YWx1ZSlyZXR1cm4gaS52YWx1ZTtpZihpLm5vZGVzJiZpLnJhbmdlcz4wKXtsZXQgZj1fbS5yZWR1Y2UoaS5ub2RlcyksZD1jRSguLi5mLHsuLi5lLHdyYXA6ITEsdG9SZWdleDohMCxzdHJpY3RaZXJvczohMH0pO2lmKGQubGVuZ3RoIT09MClyZXR1cm4gZi5sZW5ndGg+MSYmZC5sZW5ndGg+MT9gKCR7ZH0pYDpkfWlmKGkubm9kZXMpZm9yKGxldCBmIG9mIGkubm9kZXMpYys9dChmLGkpO3JldHVybiBjfTtyZXR1cm4gdChyKX07RW0uZXhwb3J0cz1wRX0pO3ZhciBQbT14KChpNixSbSk9Pnt1KCk7InVzZSBzdHJpY3QiO3ZhciBkRT1wbCgpLFRtPWhzKCksbXI9ZHMoKSxHdD0ocj0iIixlPSIiLHQ9ITEpPT57bGV0IGk9W107aWYocj1bXS5jb25jYXQociksZT1bXS5jb25jYXQoZSksIWUubGVuZ3RoKXJldHVybiByO2lmKCFyLmxlbmd0aClyZXR1cm4gdD9tci5mbGF0dGVuKGUpLm1hcChuPT5geyR7bn19YCk6ZTtmb3IobGV0IG4gb2YgcilpZihBcnJheS5pc0FycmF5KG4pKWZvcihsZXQgcyBvZiBuKWkucHVzaChHdChzLGUsdCkpO2Vsc2UgZm9yKGxldCBzIG9mIGUpdD09PSEwJiZ0eXBlb2Ygcz09InN0cmluZyImJihzPWB7JHtzfX1gKSxpLnB1c2goQXJyYXkuaXNBcnJheShzKT9HdChuLHMsdCk6bitzKTtyZXR1cm4gbXIuZmxhdHRlbihpKX0saEU9KHIsZT17fSk9PntsZXQgdD1lLnJhbmdlTGltaXQ9PT12b2lkIDA/MWUzOmUucmFuZ2VMaW1pdCxpPShuLHM9e30pPT57bi5xdWV1ZT1bXTtsZXQgYT1zLG89cy5xdWV1ZTtmb3IoO2EudHlwZSE9PSJicmFjZSImJmEudHlwZSE9PSJyb290IiYmYS5wYXJlbnQ7KWE9YS5wYXJlbnQsbz1hLnF1ZXVlO2lmKG4uaW52YWxpZHx8bi5kb2xsYXIpe28ucHVzaChHdChvLnBvcCgpLFRtKG4sZSkpKTtyZXR1cm59aWYobi50eXBlPT09ImJyYWNlIiYmbi5pbnZhbGlkIT09ITAmJm4ubm9kZXMubGVuZ3RoPT09Mil7by5wdXNoKEd0KG8ucG9wKCksWyJ7fSJdKSk7cmV0dXJufWlmKG4ubm9kZXMmJm4ucmFuZ2VzPjApe2xldCBkPW1yLnJlZHVjZShuLm5vZGVzKTtpZihtci5leGNlZWRzTGltaXQoLi4uZCxlLnN0ZXAsdCkpdGhyb3cgbmV3IFJhbmdlRXJyb3IoImV4cGFuZGVkIGFycmF5IGxlbmd0aCBleGNlZWRzIHJhbmdlIGxpbWl0LiBVc2Ugb3B0aW9ucy5yYW5nZUxpbWl0IHRvIGluY3JlYXNlIG9yIGRpc2FibGUgdGhlIGxpbWl0LiIpO2xldCBwPWRFKC4uLmQsZSk7cC5sZW5ndGg9PT0wJiYocD1UbShuLGUpKSxvLnB1c2goR3Qoby5wb3AoKSxwKSksbi5ub2Rlcz1bXTtyZXR1cm59bGV0IGw9bXIuZW5jbG9zZUJyYWNlKG4pLGM9bi5xdWV1ZSxmPW47Zm9yKDtmLnR5cGUhPT0iYnJhY2UiJiZmLnR5cGUhPT0icm9vdCImJmYucGFyZW50OylmPWYucGFyZW50LGM9Zi5xdWV1ZTtmb3IobGV0IGQ9MDtkPG4ubm9kZXMubGVuZ3RoO2QrKyl7bGV0IHA9bi5ub2Rlc1tkXTtpZihwLnR5cGU9PT0iY29tbWEiJiZuLnR5cGU9PT0iYnJhY2UiKXtkPT09MSYmYy5wdXNoKCIiKSxjLnB1c2goIiIpO2NvbnRpbnVlfWlmKHAudHlwZT09PSJjbG9zZSIpe28ucHVzaChHdChvLnBvcCgpLGMsbCkpO2NvbnRpbnVlfWlmKHAudmFsdWUmJnAudHlwZSE9PSJvcGVuIil7Yy5wdXNoKEd0KGMucG9wKCkscC52YWx1ZSkpO2NvbnRpbnVlfXAubm9kZXMmJmkocCxuKX1yZXR1cm4gY307cmV0dXJuIG1yLmZsYXR0ZW4oaShyKSl9O1JtLmV4cG9ydHM9aEV9KTt2YXIgRG09eCgobjYsSW0pPT57dSgpOyJ1c2Ugc3RyaWN0IjtJbS5leHBvcnRzPXtNQVhfTEVOR1RIOjFlNCxDSEFSXzA6IjAiLENIQVJfOToiOSIsQ0hBUl9VUFBFUkNBU0VfQToiQSIsQ0hBUl9MT1dFUkNBU0VfQToiYSIsQ0hBUl9VUFBFUkNBU0VfWjoiWiIsQ0hBUl9MT1dFUkNBU0VfWjoieiIsQ0hBUl9MRUZUX1BBUkVOVEhFU0VTOiIoIixDSEFSX1JJR0hUX1BBUkVOVEhFU0VTOiIpIixDSEFSX0FTVEVSSVNLOiIqIixDSEFSX0FNUEVSU0FORDoiJiIsQ0hBUl9BVDoiQCIsQ0hBUl9CQUNLU0xBU0g6IlxcIixDSEFSX0JBQ0tUSUNLOiJgIixDSEFSX0NBUlJJQUdFX1JFVFVSTjoiXHIiLENIQVJfQ0lSQ1VNRkxFWF9BQ0NFTlQ6Il4iLENIQVJfQ09MT046IjoiLENIQVJfQ09NTUE6IiwiLENIQVJfRE9MTEFSOiIkIixDSEFSX0RPVDoiLiIsQ0hBUl9ET1VCTEVfUVVPVEU6JyInLENIQVJfRVFVQUw6Ij0iLENIQVJfRVhDTEFNQVRJT05fTUFSSzoiISIsQ0hBUl9GT1JNX0ZFRUQ6IlxmIixDSEFSX0ZPUldBUkRfU0xBU0g6Ii8iLENIQVJfSEFTSDoiIyIsQ0hBUl9IWVBIRU5fTUlOVVM6Ii0iLENIQVJfTEVGVF9BTkdMRV9CUkFDS0VUOiI8IixDSEFSX0xFRlRfQ1VSTFlfQlJBQ0U6InsiLENIQVJfTEVGVF9TUVVBUkVfQlJBQ0tFVDoiWyIsQ0hBUl9MSU5FX0ZFRUQ6YApgLENIQVJfTk9fQlJFQUtfU1BBQ0U6Ilx4QTAiLENIQVJfUEVSQ0VOVDoiJSIsQ0hBUl9QTFVTOiIrIixDSEFSX1FVRVNUSU9OX01BUks6Ij8iLENIQVJfUklHSFRfQU5HTEVfQlJBQ0tFVDoiPiIsQ0hBUl9SSUdIVF9DVVJMWV9CUkFDRToifSIsQ0hBUl9SSUdIVF9TUVVBUkVfQlJBQ0tFVDoiXSIsQ0hBUl9TRU1JQ09MT046IjsiLENIQVJfU0lOR0xFX1FVT1RFOiInIixDSEFSX1NQQUNFOiIgIixDSEFSX1RBQjoiCSIsQ0hBUl9VTkRFUlNDT1JFOiJfIixDSEFSX1ZFUlRJQ0FMX0xJTkU6InwiLENIQVJfWkVST19XSURUSF9OT0JSRUFLX1NQQUNFOiJcdUZFRkYifX0pO3ZhciBObT14KChzNixNbSk9Pnt1KCk7InVzZSBzdHJpY3QiO3ZhciBtRT1ocygpLHtNQVhfTEVOR1RIOnFtLENIQVJfQkFDS1NMQVNIOmRsLENIQVJfQkFDS1RJQ0s6Z0UsQ0hBUl9DT01NQTp5RSxDSEFSX0RPVDpiRSxDSEFSX0xFRlRfUEFSRU5USEVTRVM6d0UsQ0hBUl9SSUdIVF9QQVJFTlRIRVNFUzp2RSxDSEFSX0xFRlRfQ1VSTFlfQlJBQ0U6eEUsQ0hBUl9SSUdIVF9DVVJMWV9CUkFDRTprRSxDSEFSX0xFRlRfU1FVQVJFX0JSQUNLRVQ6JG0sQ0hBUl9SSUdIVF9TUVVBUkVfQlJBQ0tFVDpMbSxDSEFSX0RPVUJMRV9RVU9URTpTRSxDSEFSX1NJTkdMRV9RVU9URTpBRSxDSEFSX05PX0JSRUFLX1NQQUNFOkNFLENIQVJfWkVST19XSURUSF9OT0JSRUFLX1NQQUNFOl9FfT1EbSgpLEVFPShyLGU9e30pPT57aWYodHlwZW9mIHIhPSJzdHJpbmciKXRocm93IG5ldyBUeXBlRXJyb3IoIkV4cGVjdGVkIGEgc3RyaW5nIik7bGV0IHQ9ZXx8e30saT10eXBlb2YgdC5tYXhMZW5ndGg9PSJudW1iZXIiP01hdGgubWluKHFtLHQubWF4TGVuZ3RoKTpxbTtpZihyLmxlbmd0aD5pKXRocm93IG5ldyBTeW50YXhFcnJvcihgSW5wdXQgbGVuZ3RoICgke3IubGVuZ3RofSksIGV4Y2VlZHMgbWF4IGNoYXJhY3RlcnMgKCR7aX0pYCk7bGV0IG49e3R5cGU6InJvb3QiLGlucHV0OnIsbm9kZXM6W119LHM9W25dLGE9bixvPW4sbD0wLGM9ci5sZW5ndGgsZj0wLGQ9MCxwLGg9KCk9PnJbZisrXSxiPXY9PntpZih2LnR5cGU9PT0idGV4dCImJm8udHlwZT09PSJkb3QiJiYoby50eXBlPSJ0ZXh0IiksbyYmby50eXBlPT09InRleHQiJiZ2LnR5cGU9PT0idGV4dCIpe28udmFsdWUrPXYudmFsdWU7cmV0dXJufXJldHVybiBhLm5vZGVzLnB1c2godiksdi5wYXJlbnQ9YSx2LnByZXY9byxvPXYsdn07Zm9yKGIoe3R5cGU6ImJvcyJ9KTtmPGM7KWlmKGE9c1tzLmxlbmd0aC0xXSxwPWgoKSwhKHA9PT1fRXx8cD09PUNFKSl7aWYocD09PWRsKXtiKHt0eXBlOiJ0ZXh0Iix2YWx1ZTooZS5rZWVwRXNjYXBpbmc/cDoiIikraCgpfSk7Y29udGludWV9aWYocD09PUxtKXtiKHt0eXBlOiJ0ZXh0Iix2YWx1ZToiXFwiK3B9KTtjb250aW51ZX1pZihwPT09JG0pe2wrKztsZXQgdjtmb3IoO2Y8YyYmKHY9aCgpKTspe2lmKHArPXYsdj09PSRtKXtsKys7Y29udGludWV9aWYodj09PWRsKXtwKz1oKCk7Y29udGludWV9aWYodj09PUxtJiYobC0tLGw9PT0wKSlicmVha31iKHt0eXBlOiJ0ZXh0Iix2YWx1ZTpwfSk7Y29udGludWV9aWYocD09PXdFKXthPWIoe3R5cGU6InBhcmVuIixub2RlczpbXX0pLHMucHVzaChhKSxiKHt0eXBlOiJ0ZXh0Iix2YWx1ZTpwfSk7Y29udGludWV9aWYocD09PXZFKXtpZihhLnR5cGUhPT0icGFyZW4iKXtiKHt0eXBlOiJ0ZXh0Iix2YWx1ZTpwfSk7Y29udGludWV9YT1zLnBvcCgpLGIoe3R5cGU6InRleHQiLHZhbHVlOnB9KSxhPXNbcy5sZW5ndGgtMV07Y29udGludWV9aWYocD09PVNFfHxwPT09QUV8fHA9PT1nRSl7bGV0IHY9cCx5O2ZvcihlLmtlZXBRdW90ZXMhPT0hMCYmKHA9IiIpO2Y8YyYmKHk9aCgpKTspe2lmKHk9PT1kbCl7cCs9eStoKCk7Y29udGludWV9aWYoeT09PXYpe2Uua2VlcFF1b3Rlcz09PSEwJiYocCs9eSk7YnJlYWt9cCs9eX1iKHt0eXBlOiJ0ZXh0Iix2YWx1ZTpwfSk7Y29udGludWV9aWYocD09PXhFKXtkKys7bGV0IHY9by52YWx1ZSYmby52YWx1ZS5zbGljZSgtMSk9PT0iJCJ8fGEuZG9sbGFyPT09ITA7YT1iKHt0eXBlOiJicmFjZSIsb3BlbjohMCxjbG9zZTohMSxkb2xsYXI6dixkZXB0aDpkLGNvbW1hczowLHJhbmdlczowLG5vZGVzOltdfSkscy5wdXNoKGEpLGIoe3R5cGU6Im9wZW4iLHZhbHVlOnB9KTtjb250aW51ZX1pZihwPT09a0Upe2lmKGEudHlwZSE9PSJicmFjZSIpe2Ioe3R5cGU6InRleHQiLHZhbHVlOnB9KTtjb250aW51ZX1sZXQgdj0iY2xvc2UiO2E9cy5wb3AoKSxhLmNsb3NlPSEwLGIoe3R5cGU6dix2YWx1ZTpwfSksZC0tLGE9c1tzLmxlbmd0aC0xXTtjb250aW51ZX1pZihwPT09eUUmJmQ+MCl7aWYoYS5yYW5nZXM+MCl7YS5yYW5nZXM9MDtsZXQgdj1hLm5vZGVzLnNoaWZ0KCk7YS5ub2Rlcz1bdix7dHlwZToidGV4dCIsdmFsdWU6bUUoYSl9XX1iKHt0eXBlOiJjb21tYSIsdmFsdWU6cH0pLGEuY29tbWFzKys7Y29udGludWV9aWYocD09PWJFJiZkPjAmJmEuY29tbWFzPT09MCl7bGV0IHY9YS5ub2RlcztpZihkPT09MHx8di5sZW5ndGg9PT0wKXtiKHt0eXBlOiJ0ZXh0Iix2YWx1ZTpwfSk7Y29udGludWV9aWYoby50eXBlPT09ImRvdCIpe2lmKGEucmFuZ2U9W10sby52YWx1ZSs9cCxvLnR5cGU9InJhbmdlIixhLm5vZGVzLmxlbmd0aCE9PTMmJmEubm9kZXMubGVuZ3RoIT09NSl7YS5pbnZhbGlkPSEwLGEucmFuZ2VzPTAsby50eXBlPSJ0ZXh0Ijtjb250aW51ZX1hLnJhbmdlcysrLGEuYXJncz1bXTtjb250aW51ZX1pZihvLnR5cGU9PT0icmFuZ2UiKXt2LnBvcCgpO2xldCB5PXZbdi5sZW5ndGgtMV07eS52YWx1ZSs9by52YWx1ZStwLG89eSxhLnJhbmdlcy0tO2NvbnRpbnVlfWIoe3R5cGU6ImRvdCIsdmFsdWU6cH0pO2NvbnRpbnVlfWIoe3R5cGU6InRleHQiLHZhbHVlOnB9KX1kbyBpZihhPXMucG9wKCksYS50eXBlIT09InJvb3QiKXthLm5vZGVzLmZvckVhY2godz0+e3cubm9kZXN8fCh3LnR5cGU9PT0ib3BlbiImJih3LmlzT3Blbj0hMCksdy50eXBlPT09ImNsb3NlIiYmKHcuaXNDbG9zZT0hMCksdy5ub2Rlc3x8KHcudHlwZT0idGV4dCIpLHcuaW52YWxpZD0hMCl9KTtsZXQgdj1zW3MubGVuZ3RoLTFdLHk9di5ub2Rlcy5pbmRleE9mKGEpO3Yubm9kZXMuc3BsaWNlKHksMSwuLi5hLm5vZGVzKX13aGlsZShzLmxlbmd0aD4wKTtyZXR1cm4gYih7dHlwZToiZW9zIn0pLG59O01tLmV4cG9ydHM9RUV9KTt2YXIgam09eCgoYTYsRm0pPT57dSgpOyJ1c2Ugc3RyaWN0Ijt2YXIgQm09aHMoKSxPRT1PbSgpLFRFPVBtKCksUkU9Tm0oKSxMZT0ocixlPXt9KT0+e2xldCB0PVtdO2lmKEFycmF5LmlzQXJyYXkocikpZm9yKGxldCBpIG9mIHIpe2xldCBuPUxlLmNyZWF0ZShpLGUpO0FycmF5LmlzQXJyYXkobik/dC5wdXNoKC4uLm4pOnQucHVzaChuKX1lbHNlIHQ9W10uY29uY2F0KExlLmNyZWF0ZShyLGUpKTtyZXR1cm4gZSYmZS5leHBhbmQ9PT0hMCYmZS5ub2R1cGVzPT09ITAmJih0PVsuLi5uZXcgU2V0KHQpXSksdH07TGUucGFyc2U9KHIsZT17fSk9PlJFKHIsZSk7TGUuc3RyaW5naWZ5PShyLGU9e30pPT50eXBlb2Ygcj09InN0cmluZyI/Qm0oTGUucGFyc2UocixlKSxlKTpCbShyLGUpO0xlLmNvbXBpbGU9KHIsZT17fSk9Pih0eXBlb2Ygcj09InN0cmluZyImJihyPUxlLnBhcnNlKHIsZSkpLE9FKHIsZSkpO0xlLmV4cGFuZD0ocixlPXt9KT0+e3R5cGVvZiByPT0ic3RyaW5nIiYmKHI9TGUucGFyc2UocixlKSk7bGV0IHQ9VEUocixlKTtyZXR1cm4gZS5ub2VtcHR5PT09ITAmJih0PXQuZmlsdGVyKEJvb2xlYW4pKSxlLm5vZHVwZXM9PT0hMCYmKHQ9Wy4uLm5ldyBTZXQodCldKSx0fTtMZS5jcmVhdGU9KHIsZT17fSk9PnI9PT0iInx8ci5sZW5ndGg8Mz9bcl06ZS5leHBhbmQhPT0hMD9MZS5jb21waWxlKHIsZSk6TGUuZXhwYW5kKHIsZSk7Rm0uZXhwb3J0cz1MZX0pO3ZhciBEaT14KChvNixXbSk9Pnt1KCk7InVzZSBzdHJpY3QiO3ZhciBQRT0oZXQoKSxVciksYXQ9IlxcXFwvIix6bT1gW14ke2F0fV1gLHl0PSJcXC4iLElFPSJcXCsiLERFPSJcXD8iLHlzPSJcXC8iLHFFPSIoPz0uKSIsVW09IlteL10iLGhsPWAoPzoke3lzfXwkKWAsVm09YCg/Ol58JHt5c30pYCxtbD1gJHt5dH17MSwyfSR7aGx9YCwkRT1gKD8hJHt5dH0pYCxMRT1gKD8hJHtWbX0ke21sfSlgLE1FPWAoPyEke3l0fXswLDF9JHtobH0pYCxORT1gKD8hJHttbH0pYCxCRT1gW14uJHt5c31dYCxGRT1gJHtVbX0qP2AsSG09e0RPVF9MSVRFUkFMOnl0LFBMVVNfTElURVJBTDpJRSxRTUFSS19MSVRFUkFMOkRFLFNMQVNIX0xJVEVSQUw6eXMsT05FX0NIQVI6cUUsUU1BUks6VW0sRU5EX0FOQ0hPUjpobCxET1RTX1NMQVNIOm1sLE5PX0RPVDokRSxOT19ET1RTOkxFLE5PX0RPVF9TTEFTSDpNRSxOT19ET1RTX1NMQVNIOk5FLFFNQVJLX05PX0RPVDpCRSxTVEFSOkZFLFNUQVJUX0FOQ0hPUjpWbX0sakU9ey4uLkhtLFNMQVNIX0xJVEVSQUw6YFske2F0fV1gLFFNQVJLOnptLFNUQVI6YCR7em19Kj9gLERPVFNfU0xBU0g6YCR7eXR9ezEsMn0oPzpbJHthdH1dfCQpYCxOT19ET1Q6YCg/ISR7eXR9KWAsTk9fRE9UUzpgKD8hKD86XnxbJHthdH1dKSR7eXR9ezEsMn0oPzpbJHthdH1dfCQpKWAsTk9fRE9UX1NMQVNIOmAoPyEke3l0fXswLDF9KD86WyR7YXR9XXwkKSlgLE5PX0RPVFNfU0xBU0g6YCg/ISR7eXR9ezEsMn0oPzpbJHthdH1dfCQpKWAsUU1BUktfTk9fRE9UOmBbXi4ke2F0fV1gLFNUQVJUX0FOQ0hPUjpgKD86XnxbJHthdH1dKWAsRU5EX0FOQ0hPUjpgKD86WyR7YXR9XXwkKWB9LHpFPXthbG51bToiYS16QS1aMC05IixhbHBoYToiYS16QS1aIixhc2NpaToiXFx4MDAtXFx4N0YiLGJsYW5rOiIgXFx0IixjbnRybDoiXFx4MDAtXFx4MUZcXHg3RiIsZGlnaXQ6IjAtOSIsZ3JhcGg6IlxceDIxLVxceDdFIixsb3dlcjoiYS16IixwcmludDoiXFx4MjAtXFx4N0UgIixwdW5jdDoiXFwtIVwiIyQlJicoKVxcKissLi86Ozw9Pj9AW1xcXV5fYHt8fX4iLHNwYWNlOiIgXFx0XFxyXFxuXFx2XFxmIix1cHBlcjoiQS1aIix3b3JkOiJBLVphLXowLTlfIix4ZGlnaXQ6IkEtRmEtZjAtOSJ9O1dtLmV4cG9ydHM9e01BWF9MRU5HVEg6MTAyNCo2NCxQT1NJWF9SRUdFWF9TT1VSQ0U6ekUsUkVHRVhfQkFDS1NMQVNIOi9cXCg/IVsqKz9eJHt9KHwpW1xdXSkvZyxSRUdFWF9OT05fU1BFQ0lBTF9DSEFSUzovXlteQCFbXF0uLCQqKz9ee30oKXxcXC9dKy8sUkVHRVhfU1BFQ0lBTF9DSEFSUzovWy0qKz8uXiR7fSh8KVtcXV0vLFJFR0VYX1NQRUNJQUxfQ0hBUlNfQkFDS1JFRjovKFxcPykoKFxXKShcMyopKS9nLFJFR0VYX1NQRUNJQUxfQ0hBUlNfR0xPQkFMOi8oWy0qKz8uXiR7fSh8KVtcXV0pL2csUkVHRVhfUkVNT1ZFX0JBQ0tTTEFTSDovKD86XFsuKj9bXlxcXVxdfFxcKD89LikpL2csUkVQTEFDRU1FTlRTOnsiKioqIjoiKiIsIioqLyoqIjoiKioiLCIqKi8qKi8qKiI6IioqIn0sQ0hBUl8wOjQ4LENIQVJfOTo1NyxDSEFSX1VQUEVSQ0FTRV9BOjY1LENIQVJfTE9XRVJDQVNFX0E6OTcsQ0hBUl9VUFBFUkNBU0VfWjo5MCxDSEFSX0xPV0VSQ0FTRV9aOjEyMixDSEFSX0xFRlRfUEFSRU5USEVTRVM6NDAsQ0hBUl9SSUdIVF9QQVJFTlRIRVNFUzo0MSxDSEFSX0FTVEVSSVNLOjQyLENIQVJfQU1QRVJTQU5EOjM4LENIQVJfQVQ6NjQsQ0hBUl9CQUNLV0FSRF9TTEFTSDo5MixDSEFSX0NBUlJJQUdFX1JFVFVSTjoxMyxDSEFSX0NJUkNVTUZMRVhfQUNDRU5UOjk0LENIQVJfQ09MT046NTgsQ0hBUl9DT01NQTo0NCxDSEFSX0RPVDo0NixDSEFSX0RPVUJMRV9RVU9URTozNCxDSEFSX0VRVUFMOjYxLENIQVJfRVhDTEFNQVRJT05fTUFSSzozMyxDSEFSX0ZPUk1fRkVFRDoxMixDSEFSX0ZPUldBUkRfU0xBU0g6NDcsQ0hBUl9HUkFWRV9BQ0NFTlQ6OTYsQ0hBUl9IQVNIOjM1LENIQVJfSFlQSEVOX01JTlVTOjQ1LENIQVJfTEVGVF9BTkdMRV9CUkFDS0VUOjYwLENIQVJfTEVGVF9DVVJMWV9CUkFDRToxMjMsQ0hBUl9MRUZUX1NRVUFSRV9CUkFDS0VUOjkxLENIQVJfTElORV9GRUVEOjEwLENIQVJfTk9fQlJFQUtfU1BBQ0U6MTYwLENIQVJfUEVSQ0VOVDozNyxDSEFSX1BMVVM6NDMsQ0hBUl9RVUVTVElPTl9NQVJLOjYzLENIQVJfUklHSFRfQU5HTEVfQlJBQ0tFVDo2MixDSEFSX1JJR0hUX0NVUkxZX0JSQUNFOjEyNSxDSEFSX1JJR0hUX1NRVUFSRV9CUkFDS0VUOjkzLENIQVJfU0VNSUNPTE9OOjU5LENIQVJfU0lOR0xFX1FVT1RFOjM5LENIQVJfU1BBQ0U6MzIsQ0hBUl9UQUI6OSxDSEFSX1VOREVSU0NPUkU6OTUsQ0hBUl9WRVJUSUNBTF9MSU5FOjEyNCxDSEFSX1pFUk9fV0lEVEhfTk9CUkVBS19TUEFDRTo2NTI3OSxTRVA6UEUuc2VwLGV4dGdsb2JDaGFycyhyKXtyZXR1cm57IiEiOnt0eXBlOiJuZWdhdGUiLG9wZW46Iig/Oig/ISg/OiIsY2xvc2U6YCkpJHtyLlNUQVJ9KWB9LCI/Ijp7dHlwZToicW1hcmsiLG9wZW46Iig/OiIsY2xvc2U6Iik/In0sIisiOnt0eXBlOiJwbHVzIixvcGVuOiIoPzoiLGNsb3NlOiIpKyJ9LCIqIjp7dHlwZToic3RhciIsb3BlbjoiKD86IixjbG9zZToiKSoifSwiQCI6e3R5cGU6ImF0IixvcGVuOiIoPzoiLGNsb3NlOiIpIn19fSxnbG9iQ2hhcnMocil7cmV0dXJuIHI9PT0hMD9qRTpIbX19fSk7dmFyIHFpPXgoUmU9Pnt1KCk7InVzZSBzdHJpY3QiO3ZhciBVRT0oZXQoKSxVciksVkU9bS5wbGF0Zm9ybT09PSJ3aW4zMiIse1JFR0VYX0JBQ0tTTEFTSDpIRSxSRUdFWF9SRU1PVkVfQkFDS1NMQVNIOldFLFJFR0VYX1NQRUNJQUxfQ0hBUlM6R0UsUkVHRVhfU1BFQ0lBTF9DSEFSU19HTE9CQUw6UUV9PURpKCk7UmUuaXNPYmplY3Q9cj0+ciE9PW51bGwmJnR5cGVvZiByPT0ib2JqZWN0IiYmIUFycmF5LmlzQXJyYXkocik7UmUuaGFzUmVnZXhDaGFycz1yPT5HRS50ZXN0KHIpO1JlLmlzUmVnZXhDaGFyPXI9PnIubGVuZ3RoPT09MSYmUmUuaGFzUmVnZXhDaGFycyhyKTtSZS5lc2NhcGVSZWdleD1yPT5yLnJlcGxhY2UoUUUsIlxcJDEiKTtSZS50b1Bvc2l4U2xhc2hlcz1yPT5yLnJlcGxhY2UoSEUsIi8iKTtSZS5yZW1vdmVCYWNrc2xhc2hlcz1yPT5yLnJlcGxhY2UoV0UsZT0+ZT09PSJcXCI/IiI6ZSk7UmUuc3VwcG9ydHNMb29rYmVoaW5kcz0oKT0+e2xldCByPW0udmVyc2lvbi5zbGljZSgxKS5zcGxpdCgiLiIpLm1hcChOdW1iZXIpO3JldHVybiByLmxlbmd0aD09PTMmJnJbMF0+PTl8fHJbMF09PT04JiZyWzFdPj0xMH07UmUuaXNXaW5kb3dzPXI9PnImJnR5cGVvZiByLndpbmRvd3M9PSJib29sZWFuIj9yLndpbmRvd3M6VkU9PT0hMHx8VUUuc2VwPT09IlxcIjtSZS5lc2NhcGVMYXN0PShyLGUsdCk9PntsZXQgaT1yLmxhc3RJbmRleE9mKGUsdCk7cmV0dXJuIGk9PT0tMT9yOnJbaS0xXT09PSJcXCI/UmUuZXNjYXBlTGFzdChyLGUsaS0xKTpgJHtyLnNsaWNlKDAsaSl9XFwke3Iuc2xpY2UoaSl9YH07UmUucmVtb3ZlUHJlZml4PShyLGU9e30pPT57bGV0IHQ9cjtyZXR1cm4gdC5zdGFydHNXaXRoKCIuLyIpJiYodD10LnNsaWNlKDIpLGUucHJlZml4PSIuLyIpLHR9O1JlLndyYXBPdXRwdXQ9KHIsZT17fSx0PXt9KT0+e2xldCBpPXQuY29udGFpbnM/IiI6Il4iLG49dC5jb250YWlucz8iIjoiJCIscz1gJHtpfSg/OiR7cn0pJHtufWA7cmV0dXJuIGUubmVnYXRlZD09PSEwJiYocz1gKD86Xig/ISR7c30pLiokKWApLHN9fSk7dmFyIGVnPXgoKHU2LEptKT0+e3UoKTsidXNlIHN0cmljdCI7dmFyIEdtPXFpKCkse0NIQVJfQVNURVJJU0s6Z2wsQ0hBUl9BVDpZRSxDSEFSX0JBQ0tXQVJEX1NMQVNIOiRpLENIQVJfQ09NTUE6S0UsQ0hBUl9ET1Q6eWwsQ0hBUl9FWENMQU1BVElPTl9NQVJLOmJsLENIQVJfRk9SV0FSRF9TTEFTSDpRbSxDSEFSX0xFRlRfQ1VSTFlfQlJBQ0U6d2wsQ0hBUl9MRUZUX1BBUkVOVEhFU0VTOnZsLENIQVJfTEVGVF9TUVVBUkVfQlJBQ0tFVDpYRSxDSEFSX1BMVVM6WkUsQ0hBUl9RVUVTVElPTl9NQVJLOlltLENIQVJfUklHSFRfQ1VSTFlfQlJBQ0U6SkUsQ0hBUl9SSUdIVF9QQVJFTlRIRVNFUzpLbSxDSEFSX1JJR0hUX1NRVUFSRV9CUkFDS0VUOmUyfT1EaSgpLFhtPXI9PnI9PT1RbXx8cj09PSRpLFptPXI9PntyLmlzUHJlZml4IT09ITAmJihyLmRlcHRoPXIuaXNHbG9ic3Rhcj8xLzA6MSl9LHQyPShyLGUpPT57bGV0IHQ9ZXx8e30saT1yLmxlbmd0aC0xLG49dC5wYXJ0cz09PSEwfHx0LnNjYW5Ub0VuZD09PSEwLHM9W10sYT1bXSxvPVtdLGw9cixjPS0xLGY9MCxkPTAscD0hMSxoPSExLGI9ITEsdj0hMSx5PSExLHc9ITEsaz0hMSxTPSExLEU9ITEsVD0hMSxCPTAsTixSLEY9e3ZhbHVlOiIiLGRlcHRoOjAsaXNHbG9iOiExfSxZPSgpPT5jPj1pLF89KCk9PmwuY2hhckNvZGVBdChjKzEpLFE9KCk9PihOPVIsbC5jaGFyQ29kZUF0KCsrYykpO2Zvcig7YzxpOyl7Uj1RKCk7bGV0IGhlO2lmKFI9PT0kaSl7az1GLmJhY2tzbGFzaGVzPSEwLFI9USgpLFI9PT13bCYmKHc9ITApO2NvbnRpbnVlfWlmKHc9PT0hMHx8Uj09PXdsKXtmb3IoQisrO1koKSE9PSEwJiYoUj1RKCkpOyl7aWYoUj09PSRpKXtrPUYuYmFja3NsYXNoZXM9ITAsUSgpO2NvbnRpbnVlfWlmKFI9PT13bCl7QisrO2NvbnRpbnVlfWlmKHchPT0hMCYmUj09PXlsJiYoUj1RKCkpPT09eWwpe2lmKHA9Ri5pc0JyYWNlPSEwLGI9Ri5pc0dsb2I9ITAsVD0hMCxuPT09ITApY29udGludWU7YnJlYWt9aWYodyE9PSEwJiZSPT09S0Upe2lmKHA9Ri5pc0JyYWNlPSEwLGI9Ri5pc0dsb2I9ITAsVD0hMCxuPT09ITApY29udGludWU7YnJlYWt9aWYoUj09PUpFJiYoQi0tLEI9PT0wKSl7dz0hMSxwPUYuaXNCcmFjZT0hMCxUPSEwO2JyZWFrfX1pZihuPT09ITApY29udGludWU7YnJlYWt9aWYoUj09PVFtKXtpZihzLnB1c2goYyksYS5wdXNoKEYpLEY9e3ZhbHVlOiIiLGRlcHRoOjAsaXNHbG9iOiExfSxUPT09ITApY29udGludWU7aWYoTj09PXlsJiZjPT09ZisxKXtmKz0yO2NvbnRpbnVlfWQ9YysxO2NvbnRpbnVlfWlmKHQubm9leHQhPT0hMCYmKFI9PT1aRXx8Uj09PVlFfHxSPT09Z2x8fFI9PT1ZbXx8Uj09PWJsKT09PSEwJiZfKCk9PT12bCl7aWYoYj1GLmlzR2xvYj0hMCx2PUYuaXNFeHRnbG9iPSEwLFQ9ITAsUj09PWJsJiZjPT09ZiYmKEU9ITApLG49PT0hMCl7Zm9yKDtZKCkhPT0hMCYmKFI9USgpKTspe2lmKFI9PT0kaSl7az1GLmJhY2tzbGFzaGVzPSEwLFI9USgpO2NvbnRpbnVlfWlmKFI9PT1LbSl7Yj1GLmlzR2xvYj0hMCxUPSEwO2JyZWFrfX1jb250aW51ZX1icmVha31pZihSPT09Z2wpe2lmKE49PT1nbCYmKHk9Ri5pc0dsb2JzdGFyPSEwKSxiPUYuaXNHbG9iPSEwLFQ9ITAsbj09PSEwKWNvbnRpbnVlO2JyZWFrfWlmKFI9PT1ZbSl7aWYoYj1GLmlzR2xvYj0hMCxUPSEwLG49PT0hMCljb250aW51ZTticmVha31pZihSPT09WEUpe2Zvcig7WSgpIT09ITAmJihoZT1RKCkpOyl7aWYoaGU9PT0kaSl7az1GLmJhY2tzbGFzaGVzPSEwLFEoKTtjb250aW51ZX1pZihoZT09PWUyKXtoPUYuaXNCcmFja2V0PSEwLGI9Ri5pc0dsb2I9ITAsVD0hMDticmVha319aWYobj09PSEwKWNvbnRpbnVlO2JyZWFrfWlmKHQubm9uZWdhdGUhPT0hMCYmUj09PWJsJiZjPT09Zil7Uz1GLm5lZ2F0ZWQ9ITAsZisrO2NvbnRpbnVlfWlmKHQubm9wYXJlbiE9PSEwJiZSPT09dmwpe2lmKGI9Ri5pc0dsb2I9ITAsbj09PSEwKXtmb3IoO1koKSE9PSEwJiYoUj1RKCkpOyl7aWYoUj09PXZsKXtrPUYuYmFja3NsYXNoZXM9ITAsUj1RKCk7Y29udGludWV9aWYoUj09PUttKXtUPSEwO2JyZWFrfX1jb250aW51ZX1icmVha31pZihiPT09ITApe2lmKFQ9ITAsbj09PSEwKWNvbnRpbnVlO2JyZWFrfX10Lm5vZXh0PT09ITAmJih2PSExLGI9ITEpO2xldCBVPWwsbGU9IiIsQT0iIjtmPjAmJihsZT1sLnNsaWNlKDAsZiksbD1sLnNsaWNlKGYpLGQtPWYpLFUmJmI9PT0hMCYmZD4wPyhVPWwuc2xpY2UoMCxkKSxBPWwuc2xpY2UoZCkpOmI9PT0hMD8oVT0iIixBPWwpOlU9bCxVJiZVIT09IiImJlUhPT0iLyImJlUhPT1sJiZYbShVLmNoYXJDb2RlQXQoVS5sZW5ndGgtMSkpJiYoVT1VLnNsaWNlKDAsLTEpKSx0LnVuZXNjYXBlPT09ITAmJihBJiYoQT1HbS5yZW1vdmVCYWNrc2xhc2hlcyhBKSksVSYmaz09PSEwJiYoVT1HbS5yZW1vdmVCYWNrc2xhc2hlcyhVKSkpO2xldCBDPXtwcmVmaXg6bGUsaW5wdXQ6cixzdGFydDpmLGJhc2U6VSxnbG9iOkEsaXNCcmFjZTpwLGlzQnJhY2tldDpoLGlzR2xvYjpiLGlzRXh0Z2xvYjp2LGlzR2xvYnN0YXI6eSxuZWdhdGVkOlMsbmVnYXRlZEV4dGdsb2I6RX07aWYodC50b2tlbnM9PT0hMCYmKEMubWF4RGVwdGg9MCxYbShSKXx8YS5wdXNoKEYpLEMudG9rZW5zPWEpLHQucGFydHM9PT0hMHx8dC50b2tlbnM9PT0hMCl7bGV0IGhlO2ZvcihsZXQgVj0wO1Y8cy5sZW5ndGg7VisrKXtsZXQgRWU9aGU/aGUrMTpmLEllPXNbVl0sRGU9ci5zbGljZShFZSxJZSk7dC50b2tlbnMmJihWPT09MCYmZiE9PTA/KGFbVl0uaXNQcmVmaXg9ITAsYVtWXS52YWx1ZT1sZSk6YVtWXS52YWx1ZT1EZSxabShhW1ZdKSxDLm1heERlcHRoKz1hW1ZdLmRlcHRoKSwoViE9PTB8fERlIT09IiIpJiZvLnB1c2goRGUpLGhlPUllfWlmKGhlJiZoZSsxPHIubGVuZ3RoKXtsZXQgVj1yLnNsaWNlKGhlKzEpO28ucHVzaChWKSx0LnRva2VucyYmKGFbYS5sZW5ndGgtMV0udmFsdWU9VixabShhW2EubGVuZ3RoLTFdKSxDLm1heERlcHRoKz1hW2EubGVuZ3RoLTFdLmRlcHRoKX1DLnNsYXNoZXM9cyxDLnBhcnRzPW99cmV0dXJuIEN9O0ptLmV4cG9ydHM9dDJ9KTt2YXIgaWc9eCgoZjYscmcpPT57dSgpOyJ1c2Ugc3RyaWN0Ijt2YXIgYnM9RGkoKSxNZT1xaSgpLHtNQVhfTEVOR1RIOndzLFBPU0lYX1JFR0VYX1NPVVJDRTpyMixSRUdFWF9OT05fU1BFQ0lBTF9DSEFSUzppMixSRUdFWF9TUEVDSUFMX0NIQVJTX0JBQ0tSRUY6bjIsUkVQTEFDRU1FTlRTOnRnfT1icyxzMj0ocixlKT0+e2lmKHR5cGVvZiBlLmV4cGFuZFJhbmdlPT0iZnVuY3Rpb24iKXJldHVybiBlLmV4cGFuZFJhbmdlKC4uLnIsZSk7ci5zb3J0KCk7bGV0IHQ9YFske3Iuam9pbigiLSIpfV1gO3RyeXtuZXcgUmVnRXhwKHQpfWNhdGNoKGkpe3JldHVybiByLm1hcChuPT5NZS5lc2NhcGVSZWdleChuKSkuam9pbigiLi4iKX1yZXR1cm4gdH0sZ3I9KHIsZSk9PmBNaXNzaW5nICR7cn06ICIke2V9IiAtIHVzZSAiXFxcXCR7ZX0iIHRvIG1hdGNoIGxpdGVyYWwgY2hhcmFjdGVyc2AseGw9KHIsZSk9PntpZih0eXBlb2YgciE9InN0cmluZyIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRXhwZWN0ZWQgYSBzdHJpbmciKTtyPXRnW3JdfHxyO2xldCB0PXsuLi5lfSxpPXR5cGVvZiB0Lm1heExlbmd0aD09Im51bWJlciI/TWF0aC5taW4od3MsdC5tYXhMZW5ndGgpOndzLG49ci5sZW5ndGg7aWYobj5pKXRocm93IG5ldyBTeW50YXhFcnJvcihgSW5wdXQgbGVuZ3RoOiAke259LCBleGNlZWRzIG1heGltdW0gYWxsb3dlZCBsZW5ndGg6ICR7aX1gKTtsZXQgcz17dHlwZToiYm9zIix2YWx1ZToiIixvdXRwdXQ6dC5wcmVwZW5kfHwiIn0sYT1bc10sbz10LmNhcHR1cmU/IiI6Ij86IixsPU1lLmlzV2luZG93cyhlKSxjPWJzLmdsb2JDaGFycyhsKSxmPWJzLmV4dGdsb2JDaGFycyhjKSx7RE9UX0xJVEVSQUw6ZCxQTFVTX0xJVEVSQUw6cCxTTEFTSF9MSVRFUkFMOmgsT05FX0NIQVI6YixET1RTX1NMQVNIOnYsTk9fRE9UOnksTk9fRE9UX1NMQVNIOncsTk9fRE9UU19TTEFTSDprLFFNQVJLOlMsUU1BUktfTk9fRE9UOkUsU1RBUjpULFNUQVJUX0FOQ0hPUjpCfT1jLE49JD0+YCgke299KD86KD8hJHtCfSR7JC5kb3Q/djpkfSkuKSo/KWAsUj10LmRvdD8iIjp5LEY9dC5kb3Q/UzpFLFk9dC5iYXNoPT09ITA/Tih0KTpUO3QuY2FwdHVyZSYmKFk9YCgke1l9KWApLHR5cGVvZiB0Lm5vZXh0PT0iYm9vbGVhbiImJih0Lm5vZXh0Z2xvYj10Lm5vZXh0KTtsZXQgXz17aW5wdXQ6cixpbmRleDotMSxzdGFydDowLGRvdDp0LmRvdD09PSEwLGNvbnN1bWVkOiIiLG91dHB1dDoiIixwcmVmaXg6IiIsYmFja3RyYWNrOiExLG5lZ2F0ZWQ6ITEsYnJhY2tldHM6MCxicmFjZXM6MCxwYXJlbnM6MCxxdW90ZXM6MCxnbG9ic3RhcjohMSx0b2tlbnM6YX07cj1NZS5yZW1vdmVQcmVmaXgocixfKSxuPXIubGVuZ3RoO2xldCBRPVtdLFU9W10sbGU9W10sQT1zLEMsaGU9KCk9Pl8uaW5kZXg9PT1uLTEsVj1fLnBlZWs9KCQ9MSk9PnJbXy5pbmRleCskXSxFZT1fLmFkdmFuY2U9KCk9PnJbKytfLmluZGV4XXx8IiIsSWU9KCk9PnIuc2xpY2UoXy5pbmRleCsxKSxEZT0oJD0iIixhZT0wKT0+e18uY29uc3VtZWQrPSQsXy5pbmRleCs9YWV9LGppPSQ9PntfLm91dHB1dCs9JC5vdXRwdXQhPW51bGw/JC5vdXRwdXQ6JC52YWx1ZSxEZSgkLnZhbHVlKX0sSXY9KCk9PntsZXQgJD0xO2Zvcig7VigpPT09IiEiJiYoVigyKSE9PSIoInx8VigzKT09PSI/Iik7KUVlKCksXy5zdGFydCsrLCQrKztyZXR1cm4gJCUyPT0wPyExOihfLm5lZ2F0ZWQ9ITAsXy5zdGFydCsrLCEwKX0semk9JD0+e19bJF0rKyxsZS5wdXNoKCQpfSxGdD0kPT57X1skXS0tLGxlLnBvcCgpfSxXPSQ9PntpZihBLnR5cGU9PT0iZ2xvYnN0YXIiKXtsZXQgYWU9Xy5icmFjZXM+MCYmKCQudHlwZT09PSJjb21tYSJ8fCQudHlwZT09PSJicmFjZSIpLEk9JC5leHRnbG9iPT09ITB8fFEubGVuZ3RoJiYoJC50eXBlPT09InBpcGUifHwkLnR5cGU9PT0icGFyZW4iKTskLnR5cGUhPT0ic2xhc2giJiYkLnR5cGUhPT0icGFyZW4iJiYhYWUmJiFJJiYoXy5vdXRwdXQ9Xy5vdXRwdXQuc2xpY2UoMCwtQS5vdXRwdXQubGVuZ3RoKSxBLnR5cGU9InN0YXIiLEEudmFsdWU9IioiLEEub3V0cHV0PVksXy5vdXRwdXQrPUEub3V0cHV0KX1pZihRLmxlbmd0aCYmJC50eXBlIT09InBhcmVuIiYmKFFbUS5sZW5ndGgtMV0uaW5uZXIrPSQudmFsdWUpLCgkLnZhbHVlfHwkLm91dHB1dCkmJmppKCQpLEEmJkEudHlwZT09PSJ0ZXh0IiYmJC50eXBlPT09InRleHQiKXtBLnZhbHVlKz0kLnZhbHVlLEEub3V0cHV0PShBLm91dHB1dHx8IiIpKyQudmFsdWU7cmV0dXJufSQucHJldj1BLGEucHVzaCgkKSxBPSR9LFVpPSgkLGFlKT0+e2xldCBJPXsuLi5mW2FlXSxjb25kaXRpb25zOjEsaW5uZXI6IiJ9O0kucHJldj1BLEkucGFyZW5zPV8ucGFyZW5zLEkub3V0cHV0PV8ub3V0cHV0O2xldCBIPSh0LmNhcHR1cmU/IigiOiIiKStJLm9wZW47emkoInBhcmVucyIpLFcoe3R5cGU6JCx2YWx1ZTphZSxvdXRwdXQ6Xy5vdXRwdXQ/IiI6Yn0pLFcoe3R5cGU6InBhcmVuIixleHRnbG9iOiEwLHZhbHVlOkVlKCksb3V0cHV0Okh9KSxRLnB1c2goSSl9LER2PSQ9PntsZXQgYWU9JC5jbG9zZSsodC5jYXB0dXJlPyIpIjoiIiksSTtpZigkLnR5cGU9PT0ibmVnYXRlIil7bGV0IEg9WTtpZigkLmlubmVyJiYkLmlubmVyLmxlbmd0aD4xJiYkLmlubmVyLmluY2x1ZGVzKCIvIikmJihIPU4odCkpLChIIT09WXx8aGUoKXx8L15cKSskLy50ZXN0KEllKCkpKSYmKGFlPSQuY2xvc2U9YCkkKSkke0h9YCksJC5pbm5lci5pbmNsdWRlcygiKiIpJiYoST1JZSgpKSYmL15cLlteXFwvLl0rJC8udGVzdChJKSl7bGV0IGNlPXhsKEksey4uLmUsZmFzdHBhdGhzOiExfSkub3V0cHV0O2FlPSQuY2xvc2U9YCkke2NlfSkke0h9KWB9JC5wcmV2LnR5cGU9PT0iYm9zIiYmKF8ubmVnYXRlZEV4dGdsb2I9ITApfVcoe3R5cGU6InBhcmVuIixleHRnbG9iOiEwLHZhbHVlOkMsb3V0cHV0OmFlfSksRnQoInBhcmVucyIpfTtpZih0LmZhc3RwYXRocyE9PSExJiYhLyheWyohXXxbLygpW1xde30iXSkvLnRlc3Qocikpe2xldCAkPSExLGFlPXIucmVwbGFjZShuMiwoSSxILGNlLENlLHllLEJzKT0+Q2U9PT0iXFwiPygkPSEwLEkpOkNlPT09Ij8iP0g/SCtDZSsoeWU/Uy5yZXBlYXQoeWUubGVuZ3RoKToiIik6QnM9PT0wP0YrKHllP1MucmVwZWF0KHllLmxlbmd0aCk6IiIpOlMucmVwZWF0KGNlLmxlbmd0aCk6Q2U9PT0iLiI/ZC5yZXBlYXQoY2UubGVuZ3RoKTpDZT09PSIqIj9IP0grQ2UrKHllP1k6IiIpOlk6SD9JOmBcXCR7SX1gKTtyZXR1cm4gJD09PSEwJiYodC51bmVzY2FwZT09PSEwP2FlPWFlLnJlcGxhY2UoL1xcL2csIiIpOmFlPWFlLnJlcGxhY2UoL1xcKy9nLEk9PkkubGVuZ3RoJTI9PTA/IlxcXFwiOkk/IlxcIjoiIikpLGFlPT09ciYmdC5jb250YWlucz09PSEwPyhfLm91dHB1dD1yLF8pOihfLm91dHB1dD1NZS53cmFwT3V0cHV0KGFlLF8sZSksXyl9Zm9yKDshaGUoKTspe2lmKEM9RWUoKSxDPT09IlwwIiljb250aW51ZTtpZihDPT09IlxcIil7bGV0IEk9VigpO2lmKEk9PT0iLyImJnQuYmFzaCE9PSEwfHxJPT09Ii4ifHxJPT09IjsiKWNvbnRpbnVlO2lmKCFJKXtDKz0iXFwiLFcoe3R5cGU6InRleHQiLHZhbHVlOkN9KTtjb250aW51ZX1sZXQgSD0vXlxcKy8uZXhlYyhJZSgpKSxjZT0wO2lmKEgmJkhbMF0ubGVuZ3RoPjImJihjZT1IWzBdLmxlbmd0aCxfLmluZGV4Kz1jZSxjZSUyIT0wJiYoQys9IlxcIikpLHQudW5lc2NhcGU9PT0hMD9DPUVlKCk6Qys9RWUoKSxfLmJyYWNrZXRzPT09MCl7Vyh7dHlwZToidGV4dCIsdmFsdWU6Q30pO2NvbnRpbnVlfX1pZihfLmJyYWNrZXRzPjAmJihDIT09Il0ifHxBLnZhbHVlPT09IlsifHxBLnZhbHVlPT09IlteIikpe2lmKHQucG9zaXghPT0hMSYmQz09PSI6Iil7bGV0IEk9QS52YWx1ZS5zbGljZSgxKTtpZihJLmluY2x1ZGVzKCJbIikmJihBLnBvc2l4PSEwLEkuaW5jbHVkZXMoIjoiKSkpe2xldCBIPUEudmFsdWUubGFzdEluZGV4T2YoIlsiKSxjZT1BLnZhbHVlLnNsaWNlKDAsSCksQ2U9QS52YWx1ZS5zbGljZShIKzIpLHllPXIyW0NlXTtpZih5ZSl7QS52YWx1ZT1jZSt5ZSxfLmJhY2t0cmFjaz0hMCxFZSgpLCFzLm91dHB1dCYmYS5pbmRleE9mKEEpPT09MSYmKHMub3V0cHV0PWIpO2NvbnRpbnVlfX19KEM9PT0iWyImJlYoKSE9PSI6Inx8Qz09PSItIiYmVigpPT09Il0iKSYmKEM9YFxcJHtDfWApLEM9PT0iXSImJihBLnZhbHVlPT09IlsifHxBLnZhbHVlPT09IlteIikmJihDPWBcXCR7Q31gKSx0LnBvc2l4PT09ITAmJkM9PT0iISImJkEudmFsdWU9PT0iWyImJihDPSJeIiksQS52YWx1ZSs9QyxqaSh7dmFsdWU6Q30pO2NvbnRpbnVlfWlmKF8ucXVvdGVzPT09MSYmQyE9PSciJyl7Qz1NZS5lc2NhcGVSZWdleChDKSxBLnZhbHVlKz1DLGppKHt2YWx1ZTpDfSk7Y29udGludWV9aWYoQz09PSciJyl7Xy5xdW90ZXM9Xy5xdW90ZXM9PT0xPzA6MSx0LmtlZXBRdW90ZXM9PT0hMCYmVyh7dHlwZToidGV4dCIsdmFsdWU6Q30pO2NvbnRpbnVlfWlmKEM9PT0iKCIpe3ppKCJwYXJlbnMiKSxXKHt0eXBlOiJwYXJlbiIsdmFsdWU6Q30pO2NvbnRpbnVlfWlmKEM9PT0iKSIpe2lmKF8ucGFyZW5zPT09MCYmdC5zdHJpY3RCcmFja2V0cz09PSEwKXRocm93IG5ldyBTeW50YXhFcnJvcihncigib3BlbmluZyIsIigiKSk7bGV0IEk9UVtRLmxlbmd0aC0xXTtpZihJJiZfLnBhcmVucz09PUkucGFyZW5zKzEpe0R2KFEucG9wKCkpO2NvbnRpbnVlfVcoe3R5cGU6InBhcmVuIix2YWx1ZTpDLG91dHB1dDpfLnBhcmVucz8iKSI6IlxcKSJ9KSxGdCgicGFyZW5zIik7Y29udGludWV9aWYoQz09PSJbIil7aWYodC5ub2JyYWNrZXQ9PT0hMHx8IUllKCkuaW5jbHVkZXMoIl0iKSl7aWYodC5ub2JyYWNrZXQhPT0hMCYmdC5zdHJpY3RCcmFja2V0cz09PSEwKXRocm93IG5ldyBTeW50YXhFcnJvcihncigiY2xvc2luZyIsIl0iKSk7Qz1gXFwke0N9YH1lbHNlIHppKCJicmFja2V0cyIpO1coe3R5cGU6ImJyYWNrZXQiLHZhbHVlOkN9KTtjb250aW51ZX1pZihDPT09Il0iKXtpZih0Lm5vYnJhY2tldD09PSEwfHxBJiZBLnR5cGU9PT0iYnJhY2tldCImJkEudmFsdWUubGVuZ3RoPT09MSl7Vyh7dHlwZToidGV4dCIsdmFsdWU6QyxvdXRwdXQ6YFxcJHtDfWB9KTtjb250aW51ZX1pZihfLmJyYWNrZXRzPT09MCl7aWYodC5zdHJpY3RCcmFja2V0cz09PSEwKXRocm93IG5ldyBTeW50YXhFcnJvcihncigib3BlbmluZyIsIlsiKSk7Vyh7dHlwZToidGV4dCIsdmFsdWU6QyxvdXRwdXQ6YFxcJHtDfWB9KTtjb250aW51ZX1GdCgiYnJhY2tldHMiKTtsZXQgST1BLnZhbHVlLnNsaWNlKDEpO2lmKEEucG9zaXghPT0hMCYmSVswXT09PSJeIiYmIUkuaW5jbHVkZXMoIi8iKSYmKEM9YC8ke0N9YCksQS52YWx1ZSs9QyxqaSh7dmFsdWU6Q30pLHQubGl0ZXJhbEJyYWNrZXRzPT09ITF8fE1lLmhhc1JlZ2V4Q2hhcnMoSSkpY29udGludWU7bGV0IEg9TWUuZXNjYXBlUmVnZXgoQS52YWx1ZSk7aWYoXy5vdXRwdXQ9Xy5vdXRwdXQuc2xpY2UoMCwtQS52YWx1ZS5sZW5ndGgpLHQubGl0ZXJhbEJyYWNrZXRzPT09ITApe18ub3V0cHV0Kz1ILEEudmFsdWU9SDtjb250aW51ZX1BLnZhbHVlPWAoJHtvfSR7SH18JHtBLnZhbHVlfSlgLF8ub3V0cHV0Kz1BLnZhbHVlO2NvbnRpbnVlfWlmKEM9PT0ieyImJnQubm9icmFjZSE9PSEwKXt6aSgiYnJhY2VzIik7bGV0IEk9e3R5cGU6ImJyYWNlIix2YWx1ZTpDLG91dHB1dDoiKCIsb3V0cHV0SW5kZXg6Xy5vdXRwdXQubGVuZ3RoLHRva2Vuc0luZGV4Ol8udG9rZW5zLmxlbmd0aH07VS5wdXNoKEkpLFcoSSk7Y29udGludWV9aWYoQz09PSJ9Iil7bGV0IEk9VVtVLmxlbmd0aC0xXTtpZih0Lm5vYnJhY2U9PT0hMHx8IUkpe1coe3R5cGU6InRleHQiLHZhbHVlOkMsb3V0cHV0OkN9KTtjb250aW51ZX1sZXQgSD0iKSI7aWYoSS5kb3RzPT09ITApe2xldCBjZT1hLnNsaWNlKCksQ2U9W107Zm9yKGxldCB5ZT1jZS5sZW5ndGgtMTt5ZT49MCYmKGEucG9wKCksY2VbeWVdLnR5cGUhPT0iYnJhY2UiKTt5ZS0tKWNlW3llXS50eXBlIT09ImRvdHMiJiZDZS51bnNoaWZ0KGNlW3llXS52YWx1ZSk7SD1zMihDZSx0KSxfLmJhY2t0cmFjaz0hMH1pZihJLmNvbW1hIT09ITAmJkkuZG90cyE9PSEwKXtsZXQgY2U9Xy5vdXRwdXQuc2xpY2UoMCxJLm91dHB1dEluZGV4KSxDZT1fLnRva2Vucy5zbGljZShJLnRva2Vuc0luZGV4KTtJLnZhbHVlPUkub3V0cHV0PSJcXHsiLEM9SD0iXFx9IixfLm91dHB1dD1jZTtmb3IobGV0IHllIG9mIENlKV8ub3V0cHV0Kz15ZS5vdXRwdXR8fHllLnZhbHVlfVcoe3R5cGU6ImJyYWNlIix2YWx1ZTpDLG91dHB1dDpIfSksRnQoImJyYWNlcyIpLFUucG9wKCk7Y29udGludWV9aWYoQz09PSJ8Iil7US5sZW5ndGg+MCYmUVtRLmxlbmd0aC0xXS5jb25kaXRpb25zKyssVyh7dHlwZToidGV4dCIsdmFsdWU6Q30pO2NvbnRpbnVlfWlmKEM9PT0iLCIpe2xldCBJPUMsSD1VW1UubGVuZ3RoLTFdO0gmJmxlW2xlLmxlbmd0aC0xXT09PSJicmFjZXMiJiYoSC5jb21tYT0hMCxJPSJ8IiksVyh7dHlwZToiY29tbWEiLHZhbHVlOkMsb3V0cHV0Okl9KTtjb250aW51ZX1pZihDPT09Ii8iKXtpZihBLnR5cGU9PT0iZG90IiYmXy5pbmRleD09PV8uc3RhcnQrMSl7Xy5zdGFydD1fLmluZGV4KzEsXy5jb25zdW1lZD0iIixfLm91dHB1dD0iIixhLnBvcCgpLEE9cztjb250aW51ZX1XKHt0eXBlOiJzbGFzaCIsdmFsdWU6QyxvdXRwdXQ6aH0pO2NvbnRpbnVlfWlmKEM9PT0iLiIpe2lmKF8uYnJhY2VzPjAmJkEudHlwZT09PSJkb3QiKXtBLnZhbHVlPT09Ii4iJiYoQS5vdXRwdXQ9ZCk7bGV0IEk9VVtVLmxlbmd0aC0xXTtBLnR5cGU9ImRvdHMiLEEub3V0cHV0Kz1DLEEudmFsdWUrPUMsSS5kb3RzPSEwO2NvbnRpbnVlfWlmKF8uYnJhY2VzK18ucGFyZW5zPT09MCYmQS50eXBlIT09ImJvcyImJkEudHlwZSE9PSJzbGFzaCIpe1coe3R5cGU6InRleHQiLHZhbHVlOkMsb3V0cHV0OmR9KTtjb250aW51ZX1XKHt0eXBlOiJkb3QiLHZhbHVlOkMsb3V0cHV0OmR9KTtjb250aW51ZX1pZihDPT09Ij8iKXtpZighKEEmJkEudmFsdWU9PT0iKCIpJiZ0Lm5vZXh0Z2xvYiE9PSEwJiZWKCk9PT0iKCImJlYoMikhPT0iPyIpe1VpKCJxbWFyayIsQyk7Y29udGludWV9aWYoQSYmQS50eXBlPT09InBhcmVuIil7bGV0IEg9VigpLGNlPUM7aWYoSD09PSI8IiYmIU1lLnN1cHBvcnRzTG9va2JlaGluZHMoKSl0aHJvdyBuZXcgRXJyb3IoIk5vZGUuanMgdjEwIG9yIGhpZ2hlciBpcyByZXF1aXJlZCBmb3IgcmVnZXggbG9va2JlaGluZHMiKTsoQS52YWx1ZT09PSIoIiYmIS9bIT08Ol0vLnRlc3QoSCl8fEg9PT0iPCImJiEvPChbIT1dfFx3Kz4pLy50ZXN0KEllKCkpKSYmKGNlPWBcXCR7Q31gKSxXKHt0eXBlOiJ0ZXh0Iix2YWx1ZTpDLG91dHB1dDpjZX0pO2NvbnRpbnVlfWlmKHQuZG90IT09ITAmJihBLnR5cGU9PT0ic2xhc2gifHxBLnR5cGU9PT0iYm9zIikpe1coe3R5cGU6InFtYXJrIix2YWx1ZTpDLG91dHB1dDpFfSk7Y29udGludWV9Vyh7dHlwZToicW1hcmsiLHZhbHVlOkMsb3V0cHV0OlN9KTtjb250aW51ZX1pZihDPT09IiEiKXtpZih0Lm5vZXh0Z2xvYiE9PSEwJiZWKCk9PT0iKCImJihWKDIpIT09Ij8ifHwhL1shPTw6XS8udGVzdChWKDMpKSkpe1VpKCJuZWdhdGUiLEMpO2NvbnRpbnVlfWlmKHQubm9uZWdhdGUhPT0hMCYmXy5pbmRleD09PTApe0l2KCk7Y29udGludWV9fWlmKEM9PT0iKyIpe2lmKHQubm9leHRnbG9iIT09ITAmJlYoKT09PSIoIiYmVigyKSE9PSI/Iil7VWkoInBsdXMiLEMpO2NvbnRpbnVlfWlmKEEmJkEudmFsdWU9PT0iKCJ8fHQucmVnZXg9PT0hMSl7Vyh7dHlwZToicGx1cyIsdmFsdWU6QyxvdXRwdXQ6cH0pO2NvbnRpbnVlfWlmKEEmJihBLnR5cGU9PT0iYnJhY2tldCJ8fEEudHlwZT09PSJwYXJlbiJ8fEEudHlwZT09PSJicmFjZSIpfHxfLnBhcmVucz4wKXtXKHt0eXBlOiJwbHVzIix2YWx1ZTpDfSk7Y29udGludWV9Vyh7dHlwZToicGx1cyIsdmFsdWU6cH0pO2NvbnRpbnVlfWlmKEM9PT0iQCIpe2lmKHQubm9leHRnbG9iIT09ITAmJlYoKT09PSIoIiYmVigyKSE9PSI/Iil7Vyh7dHlwZToiYXQiLGV4dGdsb2I6ITAsdmFsdWU6QyxvdXRwdXQ6IiJ9KTtjb250aW51ZX1XKHt0eXBlOiJ0ZXh0Iix2YWx1ZTpDfSk7Y29udGludWV9aWYoQyE9PSIqIil7KEM9PT0iJCJ8fEM9PT0iXiIpJiYoQz1gXFwke0N9YCk7bGV0IEk9aTIuZXhlYyhJZSgpKTtJJiYoQys9SVswXSxfLmluZGV4Kz1JWzBdLmxlbmd0aCksVyh7dHlwZToidGV4dCIsdmFsdWU6Q30pO2NvbnRpbnVlfWlmKEEmJihBLnR5cGU9PT0iZ2xvYnN0YXIifHxBLnN0YXI9PT0hMCkpe0EudHlwZT0ic3RhciIsQS5zdGFyPSEwLEEudmFsdWUrPUMsQS5vdXRwdXQ9WSxfLmJhY2t0cmFjaz0hMCxfLmdsb2JzdGFyPSEwLERlKEMpO2NvbnRpbnVlfWxldCAkPUllKCk7aWYodC5ub2V4dGdsb2IhPT0hMCYmL15cKFteP10vLnRlc3QoJCkpe1VpKCJzdGFyIixDKTtjb250aW51ZX1pZihBLnR5cGU9PT0ic3RhciIpe2lmKHQubm9nbG9ic3Rhcj09PSEwKXtEZShDKTtjb250aW51ZX1sZXQgST1BLnByZXYsSD1JLnByZXYsY2U9SS50eXBlPT09InNsYXNoInx8SS50eXBlPT09ImJvcyIsQ2U9SCYmKEgudHlwZT09PSJzdGFyInx8SC50eXBlPT09Imdsb2JzdGFyIik7aWYodC5iYXNoPT09ITAmJighY2V8fCRbMF0mJiRbMF0hPT0iLyIpKXtXKHt0eXBlOiJzdGFyIix2YWx1ZTpDLG91dHB1dDoiIn0pO2NvbnRpbnVlfWxldCB5ZT1fLmJyYWNlcz4wJiYoSS50eXBlPT09ImNvbW1hInx8SS50eXBlPT09ImJyYWNlIiksQnM9US5sZW5ndGgmJihJLnR5cGU9PT0icGlwZSJ8fEkudHlwZT09PSJwYXJlbiIpO2lmKCFjZSYmSS50eXBlIT09InBhcmVuIiYmIXllJiYhQnMpe1coe3R5cGU6InN0YXIiLHZhbHVlOkMsb3V0cHV0OiIifSk7Y29udGludWV9Zm9yKDskLnNsaWNlKDAsMyk9PT0iLyoqIjspe2xldCBWaT1yW18uaW5kZXgrNF07aWYoVmkmJlZpIT09Ii8iKWJyZWFrOyQ9JC5zbGljZSgzKSxEZSgiLyoqIiwzKX1pZihJLnR5cGU9PT0iYm9zIiYmaGUoKSl7QS50eXBlPSJnbG9ic3RhciIsQS52YWx1ZSs9QyxBLm91dHB1dD1OKHQpLF8ub3V0cHV0PUEub3V0cHV0LF8uZ2xvYnN0YXI9ITAsRGUoQyk7Y29udGludWV9aWYoSS50eXBlPT09InNsYXNoIiYmSS5wcmV2LnR5cGUhPT0iYm9zIiYmIUNlJiZoZSgpKXtfLm91dHB1dD1fLm91dHB1dC5zbGljZSgwLC0oSS5vdXRwdXQrQS5vdXRwdXQpLmxlbmd0aCksSS5vdXRwdXQ9YCg/OiR7SS5vdXRwdXR9YCxBLnR5cGU9Imdsb2JzdGFyIixBLm91dHB1dD1OKHQpKyh0LnN0cmljdFNsYXNoZXM/IikiOiJ8JCkiKSxBLnZhbHVlKz1DLF8uZ2xvYnN0YXI9ITAsXy5vdXRwdXQrPUkub3V0cHV0K0Eub3V0cHV0LERlKEMpO2NvbnRpbnVlfWlmKEkudHlwZT09PSJzbGFzaCImJkkucHJldi50eXBlIT09ImJvcyImJiRbMF09PT0iLyIpe2xldCBWaT0kWzFdIT09dm9pZCAwPyJ8JCI6IiI7Xy5vdXRwdXQ9Xy5vdXRwdXQuc2xpY2UoMCwtKEkub3V0cHV0K0Eub3V0cHV0KS5sZW5ndGgpLEkub3V0cHV0PWAoPzoke0kub3V0cHV0fWAsQS50eXBlPSJnbG9ic3RhciIsQS5vdXRwdXQ9YCR7Tih0KX0ke2h9fCR7aH0ke1ZpfSlgLEEudmFsdWUrPUMsXy5vdXRwdXQrPUkub3V0cHV0K0Eub3V0cHV0LF8uZ2xvYnN0YXI9ITAsRGUoQytFZSgpKSxXKHt0eXBlOiJzbGFzaCIsdmFsdWU6Ii8iLG91dHB1dDoiIn0pO2NvbnRpbnVlfWlmKEkudHlwZT09PSJib3MiJiYkWzBdPT09Ii8iKXtBLnR5cGU9Imdsb2JzdGFyIixBLnZhbHVlKz1DLEEub3V0cHV0PWAoPzpefCR7aH18JHtOKHQpfSR7aH0pYCxfLm91dHB1dD1BLm91dHB1dCxfLmdsb2JzdGFyPSEwLERlKEMrRWUoKSksVyh7dHlwZToic2xhc2giLHZhbHVlOiIvIixvdXRwdXQ6IiJ9KTtjb250aW51ZX1fLm91dHB1dD1fLm91dHB1dC5zbGljZSgwLC1BLm91dHB1dC5sZW5ndGgpLEEudHlwZT0iZ2xvYnN0YXIiLEEub3V0cHV0PU4odCksQS52YWx1ZSs9QyxfLm91dHB1dCs9QS5vdXRwdXQsXy5nbG9ic3Rhcj0hMCxEZShDKTtjb250aW51ZX1sZXQgYWU9e3R5cGU6InN0YXIiLHZhbHVlOkMsb3V0cHV0Oll9O2lmKHQuYmFzaD09PSEwKXthZS5vdXRwdXQ9Ii4qPyIsKEEudHlwZT09PSJib3MifHxBLnR5cGU9PT0ic2xhc2giKSYmKGFlLm91dHB1dD1SK2FlLm91dHB1dCksVyhhZSk7Y29udGludWV9aWYoQSYmKEEudHlwZT09PSJicmFja2V0Inx8QS50eXBlPT09InBhcmVuIikmJnQucmVnZXg9PT0hMCl7YWUub3V0cHV0PUMsVyhhZSk7Y29udGludWV9KF8uaW5kZXg9PT1fLnN0YXJ0fHxBLnR5cGU9PT0ic2xhc2gifHxBLnR5cGU9PT0iZG90IikmJihBLnR5cGU9PT0iZG90Ij8oXy5vdXRwdXQrPXcsQS5vdXRwdXQrPXcpOnQuZG90PT09ITA/KF8ub3V0cHV0Kz1rLEEub3V0cHV0Kz1rKTooXy5vdXRwdXQrPVIsQS5vdXRwdXQrPVIpLFYoKSE9PSIqIiYmKF8ub3V0cHV0Kz1iLEEub3V0cHV0Kz1iKSksVyhhZSl9Zm9yKDtfLmJyYWNrZXRzPjA7KXtpZih0LnN0cmljdEJyYWNrZXRzPT09ITApdGhyb3cgbmV3IFN5bnRheEVycm9yKGdyKCJjbG9zaW5nIiwiXSIpKTtfLm91dHB1dD1NZS5lc2NhcGVMYXN0KF8ub3V0cHV0LCJbIiksRnQoImJyYWNrZXRzIil9Zm9yKDtfLnBhcmVucz4wOyl7aWYodC5zdHJpY3RCcmFja2V0cz09PSEwKXRocm93IG5ldyBTeW50YXhFcnJvcihncigiY2xvc2luZyIsIikiKSk7Xy5vdXRwdXQ9TWUuZXNjYXBlTGFzdChfLm91dHB1dCwiKCIpLEZ0KCJwYXJlbnMiKX1mb3IoO18uYnJhY2VzPjA7KXtpZih0LnN0cmljdEJyYWNrZXRzPT09ITApdGhyb3cgbmV3IFN5bnRheEVycm9yKGdyKCJjbG9zaW5nIiwifSIpKTtfLm91dHB1dD1NZS5lc2NhcGVMYXN0KF8ub3V0cHV0LCJ7IiksRnQoImJyYWNlcyIpfWlmKHQuc3RyaWN0U2xhc2hlcyE9PSEwJiYoQS50eXBlPT09InN0YXIifHxBLnR5cGU9PT0iYnJhY2tldCIpJiZXKHt0eXBlOiJtYXliZV9zbGFzaCIsdmFsdWU6IiIsb3V0cHV0OmAke2h9P2B9KSxfLmJhY2t0cmFjaz09PSEwKXtfLm91dHB1dD0iIjtmb3IobGV0ICQgb2YgXy50b2tlbnMpXy5vdXRwdXQrPSQub3V0cHV0IT1udWxsPyQub3V0cHV0OiQudmFsdWUsJC5zdWZmaXgmJihfLm91dHB1dCs9JC5zdWZmaXgpfXJldHVybiBffTt4bC5mYXN0cGF0aHM9KHIsZSk9PntsZXQgdD17Li4uZX0saT10eXBlb2YgdC5tYXhMZW5ndGg9PSJudW1iZXIiP01hdGgubWluKHdzLHQubWF4TGVuZ3RoKTp3cyxuPXIubGVuZ3RoO2lmKG4+aSl0aHJvdyBuZXcgU3ludGF4RXJyb3IoYElucHV0IGxlbmd0aDogJHtufSwgZXhjZWVkcyBtYXhpbXVtIGFsbG93ZWQgbGVuZ3RoOiAke2l9YCk7cj10Z1tyXXx8cjtsZXQgcz1NZS5pc1dpbmRvd3MoZSkse0RPVF9MSVRFUkFMOmEsU0xBU0hfTElURVJBTDpvLE9ORV9DSEFSOmwsRE9UU19TTEFTSDpjLE5PX0RPVDpmLE5PX0RPVFM6ZCxOT19ET1RTX1NMQVNIOnAsU1RBUjpoLFNUQVJUX0FOQ0hPUjpifT1icy5nbG9iQ2hhcnMocyksdj10LmRvdD9kOmYseT10LmRvdD9wOmYsdz10LmNhcHR1cmU/IiI6Ij86IixrPXtuZWdhdGVkOiExLHByZWZpeDoiIn0sUz10LmJhc2g9PT0hMD8iLio/IjpoO3QuY2FwdHVyZSYmKFM9YCgke1N9KWApO2xldCBFPVI9PlIubm9nbG9ic3Rhcj09PSEwP1M6YCgke3d9KD86KD8hJHtifSR7Ui5kb3Q/YzphfSkuKSo/KWAsVD1SPT57c3dpdGNoKFIpe2Nhc2UiKiI6cmV0dXJuYCR7dn0ke2x9JHtTfWA7Y2FzZSIuKiI6cmV0dXJuYCR7YX0ke2x9JHtTfWA7Y2FzZSIqLioiOnJldHVybmAke3Z9JHtTfSR7YX0ke2x9JHtTfWA7Y2FzZSIqLyoiOnJldHVybmAke3Z9JHtTfSR7b30ke2x9JHt5fSR7U31gO2Nhc2UiKioiOnJldHVybiB2K0UodCk7Y2FzZSIqKi8qIjpyZXR1cm5gKD86JHt2fSR7RSh0KX0ke299KT8ke3l9JHtsfSR7U31gO2Nhc2UiKiovKi4qIjpyZXR1cm5gKD86JHt2fSR7RSh0KX0ke299KT8ke3l9JHtTfSR7YX0ke2x9JHtTfWA7Y2FzZSIqKi8uKiI6cmV0dXJuYCg/OiR7dn0ke0UodCl9JHtvfSk/JHthfSR7bH0ke1N9YDtkZWZhdWx0OntsZXQgRj0vXiguKj8pXC4oXHcrKSQvLmV4ZWMoUik7aWYoIUYpcmV0dXJuO2xldCBZPVQoRlsxXSk7cmV0dXJuIFk/WSthK0ZbMl06dm9pZCAwfX19LEI9TWUucmVtb3ZlUHJlZml4KHIsayksTj1UKEIpO3JldHVybiBOJiZ0LnN0cmljdFNsYXNoZXMhPT0hMCYmKE4rPWAke299P2ApLE59O3JnLmV4cG9ydHM9eGx9KTt2YXIgc2c9eCgoYzYsbmcpPT57dSgpOyJ1c2Ugc3RyaWN0Ijt2YXIgYTI9KGV0KCksVXIpLG8yPWVnKCksa2w9aWcoKSxTbD1xaSgpLGwyPURpKCksdTI9cj0+ciYmdHlwZW9mIHI9PSJvYmplY3QiJiYhQXJyYXkuaXNBcnJheShyKSxkZT0ocixlLHQ9ITEpPT57aWYoQXJyYXkuaXNBcnJheShyKSl7bGV0IGY9ci5tYXAocD0+ZGUocCxlLHQpKTtyZXR1cm4gcD0+e2ZvcihsZXQgaCBvZiBmKXtsZXQgYj1oKHApO2lmKGIpcmV0dXJuIGJ9cmV0dXJuITF9fWxldCBpPXUyKHIpJiZyLnRva2VucyYmci5pbnB1dDtpZihyPT09IiJ8fHR5cGVvZiByIT0ic3RyaW5nIiYmIWkpdGhyb3cgbmV3IFR5cGVFcnJvcigiRXhwZWN0ZWQgcGF0dGVybiB0byBiZSBhIG5vbi1lbXB0eSBzdHJpbmciKTtsZXQgbj1lfHx7fSxzPVNsLmlzV2luZG93cyhlKSxhPWk/ZGUuY29tcGlsZVJlKHIsZSk6ZGUubWFrZVJlKHIsZSwhMSwhMCksbz1hLnN0YXRlO2RlbGV0ZSBhLnN0YXRlO2xldCBsPSgpPT4hMTtpZihuLmlnbm9yZSl7bGV0IGY9ey4uLmUsaWdub3JlOm51bGwsb25NYXRjaDpudWxsLG9uUmVzdWx0Om51bGx9O2w9ZGUobi5pZ25vcmUsZix0KX1sZXQgYz0oZixkPSExKT0+e2xldHtpc01hdGNoOnAsbWF0Y2g6aCxvdXRwdXQ6Yn09ZGUudGVzdChmLGEsZSx7Z2xvYjpyLHBvc2l4OnN9KSx2PXtnbG9iOnIsc3RhdGU6byxyZWdleDphLHBvc2l4OnMsaW5wdXQ6ZixvdXRwdXQ6YixtYXRjaDpoLGlzTWF0Y2g6cH07cmV0dXJuIHR5cGVvZiBuLm9uUmVzdWx0PT0iZnVuY3Rpb24iJiZuLm9uUmVzdWx0KHYpLHA9PT0hMT8odi5pc01hdGNoPSExLGQ/djohMSk6bChmKT8odHlwZW9mIG4ub25JZ25vcmU9PSJmdW5jdGlvbiImJm4ub25JZ25vcmUodiksdi5pc01hdGNoPSExLGQ/djohMSk6KHR5cGVvZiBuLm9uTWF0Y2g9PSJmdW5jdGlvbiImJm4ub25NYXRjaCh2KSxkP3Y6ITApfTtyZXR1cm4gdCYmKGMuc3RhdGU9byksY307ZGUudGVzdD0ocixlLHQse2dsb2I6aSxwb3NpeDpufT17fSk9PntpZih0eXBlb2YgciE9InN0cmluZyIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRXhwZWN0ZWQgaW5wdXQgdG8gYmUgYSBzdHJpbmciKTtpZihyPT09IiIpcmV0dXJue2lzTWF0Y2g6ITEsb3V0cHV0OiIifTtsZXQgcz10fHx7fSxhPXMuZm9ybWF0fHwobj9TbC50b1Bvc2l4U2xhc2hlczpudWxsKSxvPXI9PT1pLGw9byYmYT9hKHIpOnI7cmV0dXJuIG89PT0hMSYmKGw9YT9hKHIpOnIsbz1sPT09aSksKG89PT0hMXx8cy5jYXB0dXJlPT09ITApJiYocy5tYXRjaEJhc2U9PT0hMHx8cy5iYXNlbmFtZT09PSEwP289ZGUubWF0Y2hCYXNlKHIsZSx0LG4pOm89ZS5leGVjKGwpKSx7aXNNYXRjaDpCb29sZWFuKG8pLG1hdGNoOm8sb3V0cHV0Omx9fTtkZS5tYXRjaEJhc2U9KHIsZSx0LGk9U2wuaXNXaW5kb3dzKHQpKT0+KGUgaW5zdGFuY2VvZiBSZWdFeHA/ZTpkZS5tYWtlUmUoZSx0KSkudGVzdChhMi5iYXNlbmFtZShyKSk7ZGUuaXNNYXRjaD0ocixlLHQpPT5kZShlLHQpKHIpO2RlLnBhcnNlPShyLGUpPT5BcnJheS5pc0FycmF5KHIpP3IubWFwKHQ9PmRlLnBhcnNlKHQsZSkpOmtsKHIsey4uLmUsZmFzdHBhdGhzOiExfSk7ZGUuc2Nhbj0ocixlKT0+bzIocixlKTtkZS5jb21waWxlUmU9KHIsZSx0PSExLGk9ITEpPT57aWYodD09PSEwKXJldHVybiByLm91dHB1dDtsZXQgbj1lfHx7fSxzPW4uY29udGFpbnM/IiI6Il4iLGE9bi5jb250YWlucz8iIjoiJCIsbz1gJHtzfSg/OiR7ci5vdXRwdXR9KSR7YX1gO3ImJnIubmVnYXRlZD09PSEwJiYobz1gXig/ISR7b30pLiokYCk7bGV0IGw9ZGUudG9SZWdleChvLGUpO3JldHVybiBpPT09ITAmJihsLnN0YXRlPXIpLGx9O2RlLm1ha2VSZT0ocixlPXt9LHQ9ITEsaT0hMSk9PntpZighcnx8dHlwZW9mIHIhPSJzdHJpbmciKXRocm93IG5ldyBUeXBlRXJyb3IoIkV4cGVjdGVkIGEgbm9uLWVtcHR5IHN0cmluZyIpO2xldCBuPXtuZWdhdGVkOiExLGZhc3RwYXRoczohMH07cmV0dXJuIGUuZmFzdHBhdGhzIT09ITEmJihyWzBdPT09Ii4ifHxyWzBdPT09IioiKSYmKG4ub3V0cHV0PWtsLmZhc3RwYXRocyhyLGUpKSxuLm91dHB1dHx8KG49a2wocixlKSksZGUuY29tcGlsZVJlKG4sZSx0LGkpfTtkZS50b1JlZ2V4PShyLGUpPT57dHJ5e2xldCB0PWV8fHt9O3JldHVybiBuZXcgUmVnRXhwKHIsdC5mbGFnc3x8KHQubm9jYXNlPyJpIjoiIikpfWNhdGNoKHQpe2lmKGUmJmUuZGVidWc9PT0hMCl0aHJvdyB0O3JldHVybi8kXi99fTtkZS5jb25zdGFudHM9bDI7bmcuZXhwb3J0cz1kZX0pO3ZhciBvZz14KChwNixhZyk9Pnt1KCk7InVzZSBzdHJpY3QiO2FnLmV4cG9ydHM9c2coKX0pO3ZhciBkZz14KChkNixwZyk9Pnt1KCk7InVzZSBzdHJpY3QiO3ZhciBsZz0oRm4oKSxCbiksdWc9am0oKSxvdD1vZygpLEFsPXFpKCksZmc9cj0+cj09PSIifHxyPT09Ii4vIixjZz1yPT57bGV0IGU9ci5pbmRleE9mKCJ7Iik7cmV0dXJuIGU+LTEmJnIuaW5kZXhPZigifSIsZSk+LTF9LG9lPShyLGUsdCk9PntlPVtdLmNvbmNhdChlKSxyPVtdLmNvbmNhdChyKTtsZXQgaT1uZXcgU2V0LG49bmV3IFNldCxzPW5ldyBTZXQsYT0wLG89Zj0+e3MuYWRkKGYub3V0cHV0KSx0JiZ0Lm9uUmVzdWx0JiZ0Lm9uUmVzdWx0KGYpfTtmb3IobGV0IGY9MDtmPGUubGVuZ3RoO2YrKyl7bGV0IGQ9b3QoU3RyaW5nKGVbZl0pLHsuLi50LG9uUmVzdWx0Om99LCEwKSxwPWQuc3RhdGUubmVnYXRlZHx8ZC5zdGF0ZS5uZWdhdGVkRXh0Z2xvYjtwJiZhKys7Zm9yKGxldCBoIG9mIHIpe2xldCBiPWQoaCwhMCk7IShwPyFiLmlzTWF0Y2g6Yi5pc01hdGNoKXx8KHA/aS5hZGQoYi5vdXRwdXQpOihpLmRlbGV0ZShiLm91dHB1dCksbi5hZGQoYi5vdXRwdXQpKSl9fWxldCBjPShhPT09ZS5sZW5ndGg/Wy4uLnNdOlsuLi5uXSkuZmlsdGVyKGY9PiFpLmhhcyhmKSk7aWYodCYmYy5sZW5ndGg9PT0wKXtpZih0LmZhaWxnbG9iPT09ITApdGhyb3cgbmV3IEVycm9yKGBObyBtYXRjaGVzIGZvdW5kIGZvciAiJHtlLmpvaW4oIiwgIil9ImApO2lmKHQubm9udWxsPT09ITB8fHQubnVsbGdsb2I9PT0hMClyZXR1cm4gdC51bmVzY2FwZT9lLm1hcChmPT5mLnJlcGxhY2UoL1xcL2csIiIpKTplfXJldHVybiBjfTtvZS5tYXRjaD1vZTtvZS5tYXRjaGVyPShyLGUpPT5vdChyLGUpO29lLmlzTWF0Y2g9KHIsZSx0KT0+b3QoZSx0KShyKTtvZS5hbnk9b2UuaXNNYXRjaDtvZS5ub3Q9KHIsZSx0PXt9KT0+e2U9W10uY29uY2F0KGUpLm1hcChTdHJpbmcpO2xldCBpPW5ldyBTZXQsbj1bXSxzPW89Pnt0Lm9uUmVzdWx0JiZ0Lm9uUmVzdWx0KG8pLG4ucHVzaChvLm91dHB1dCl9LGE9bmV3IFNldChvZShyLGUsey4uLnQsb25SZXN1bHQ6c30pKTtmb3IobGV0IG8gb2YgbilhLmhhcyhvKXx8aS5hZGQobyk7cmV0dXJuWy4uLmldfTtvZS5jb250YWlucz0ocixlLHQpPT57aWYodHlwZW9mIHIhPSJzdHJpbmciKXRocm93IG5ldyBUeXBlRXJyb3IoYEV4cGVjdGVkIGEgc3RyaW5nOiAiJHtsZy5pbnNwZWN0KHIpfSJgKTtpZihBcnJheS5pc0FycmF5KGUpKXJldHVybiBlLnNvbWUoaT0+b2UuY29udGFpbnMocixpLHQpKTtpZih0eXBlb2YgZT09InN0cmluZyIpe2lmKGZnKHIpfHxmZyhlKSlyZXR1cm4hMTtpZihyLmluY2x1ZGVzKGUpfHxyLnN0YXJ0c1dpdGgoIi4vIikmJnIuc2xpY2UoMikuaW5jbHVkZXMoZSkpcmV0dXJuITB9cmV0dXJuIG9lLmlzTWF0Y2gocixlLHsuLi50LGNvbnRhaW5zOiEwfSl9O29lLm1hdGNoS2V5cz0ocixlLHQpPT57aWYoIUFsLmlzT2JqZWN0KHIpKXRocm93IG5ldyBUeXBlRXJyb3IoIkV4cGVjdGVkIHRoZSBmaXJzdCBhcmd1bWVudCB0byBiZSBhbiBvYmplY3QiKTtsZXQgaT1vZShPYmplY3Qua2V5cyhyKSxlLHQpLG49e307Zm9yKGxldCBzIG9mIGkpbltzXT1yW3NdO3JldHVybiBufTtvZS5zb21lPShyLGUsdCk9PntsZXQgaT1bXS5jb25jYXQocik7Zm9yKGxldCBuIG9mW10uY29uY2F0KGUpKXtsZXQgcz1vdChTdHJpbmcobiksdCk7aWYoaS5zb21lKGE9PnMoYSkpKXJldHVybiEwfXJldHVybiExfTtvZS5ldmVyeT0ocixlLHQpPT57bGV0IGk9W10uY29uY2F0KHIpO2ZvcihsZXQgbiBvZltdLmNvbmNhdChlKSl7bGV0IHM9b3QoU3RyaW5nKG4pLHQpO2lmKCFpLmV2ZXJ5KGE9PnMoYSkpKXJldHVybiExfXJldHVybiEwfTtvZS5hbGw9KHIsZSx0KT0+e2lmKHR5cGVvZiByIT0ic3RyaW5nIil0aHJvdyBuZXcgVHlwZUVycm9yKGBFeHBlY3RlZCBhIHN0cmluZzogIiR7bGcuaW5zcGVjdChyKX0iYCk7cmV0dXJuW10uY29uY2F0KGUpLmV2ZXJ5KGk9Pm90KGksdCkocikpfTtvZS5jYXB0dXJlPShyLGUsdCk9PntsZXQgaT1BbC5pc1dpbmRvd3ModCkscz1vdC5tYWtlUmUoU3RyaW5nKHIpLHsuLi50LGNhcHR1cmU6ITB9KS5leGVjKGk/QWwudG9Qb3NpeFNsYXNoZXMoZSk6ZSk7aWYocylyZXR1cm4gcy5zbGljZSgxKS5tYXAoYT0+YT09PXZvaWQgMD8iIjphKX07b2UubWFrZVJlPSguLi5yKT0+b3QubWFrZVJlKC4uLnIpO29lLnNjYW49KC4uLnIpPT5vdC5zY2FuKC4uLnIpO29lLnBhcnNlPShyLGUpPT57bGV0IHQ9W107Zm9yKGxldCBpIG9mW10uY29uY2F0KHJ8fFtdKSlmb3IobGV0IG4gb2YgdWcoU3RyaW5nKGkpLGUpKXQucHVzaChvdC5wYXJzZShuLGUpKTtyZXR1cm4gdH07b2UuYnJhY2VzPShyLGUpPT57aWYodHlwZW9mIHIhPSJzdHJpbmciKXRocm93IG5ldyBUeXBlRXJyb3IoIkV4cGVjdGVkIGEgc3RyaW5nIik7cmV0dXJuIGUmJmUubm9icmFjZT09PSEwfHwhY2cocik/W3JdOnVnKHIsZSl9O29lLmJyYWNlRXhwYW5kPShyLGUpPT57aWYodHlwZW9mIHIhPSJzdHJpbmciKXRocm93IG5ldyBUeXBlRXJyb3IoIkV4cGVjdGVkIGEgc3RyaW5nIik7cmV0dXJuIG9lLmJyYWNlcyhyLHsuLi5lLGV4cGFuZDohMH0pfTtvZS5oYXNCcmFjZXM9Y2c7cGcuZXhwb3J0cz1vZX0pO2Z1bmN0aW9uIG1nKHIsZSl7bGV0IHQ9ZS5jb250ZW50LmZpbGVzO3Q9dC5maWx0ZXIobz0+dHlwZW9mIG89PSJzdHJpbmciKSx0PXQubWFwKGxsKTtsZXQgaT1wcy5nZW5lcmF0ZVRhc2tzKHQpLG49W10scz1bXTtmb3IobGV0IG8gb2YgaSluLnB1c2goLi4uby5wb3NpdGl2ZS5tYXAobD0+Z2cobCwhMSkpKSxzLnB1c2goLi4uby5uZWdhdGl2ZS5tYXAobD0+Z2cobCwhMCkpKTtsZXQgYT1bLi4ubiwuLi5zXTtyZXR1cm4gYT1jMihyLGEpLGE9YS5mbGF0TWFwKHAyKSxhPWEubWFwKGYyKSxhfWZ1bmN0aW9uIGdnKHIsZSl7bGV0IHQ9e29yaWdpbmFsOnIsYmFzZTpyLGlnbm9yZTplLHBhdHRlcm46cixnbG9iOm51bGx9O3JldHVybiBaaChyKSYmT2JqZWN0LmFzc2lnbih0LG5tKHIpKSx0fWZ1bmN0aW9uIGYyKHIpe2xldCBlPWxsKHIuYmFzZSk7cmV0dXJuIGU9cHMuZXNjYXBlUGF0aChlKSxyLnBhdHRlcm49ci5nbG9iP2Ake2V9LyR7ci5nbG9ifWA6ZSxyLnBhdHRlcm49ci5pZ25vcmU/YCEke3IucGF0dGVybn1gOnIucGF0dGVybixyfWZ1bmN0aW9uIGMyKHIsZSl7bGV0IHQ9W107cmV0dXJuIHIudXNlckNvbmZpZ1BhdGgmJnIudGFpbHdpbmRDb25maWcuY29udGVudC5yZWxhdGl2ZSYmKHQ9W21lLmRpcm5hbWUoci51c2VyQ29uZmlnUGF0aCldKSxlLm1hcChpPT4oaS5iYXNlPW1lLnJlc29sdmUoLi4udCxpLmJhc2UpLGkpKX1mdW5jdGlvbiBwMihyKXtsZXQgZT1bcl07dHJ5e2xldCB0PWJlLnJlYWxwYXRoU3luYyhyLmJhc2UpO3QhPT1yLmJhc2UmJmUucHVzaCh7Li4ucixiYXNlOnR9KX1jYXRjaHt9cmV0dXJuIGV9ZnVuY3Rpb24geWcocixlLHQpe2xldCBpPXIudGFpbHdpbmRDb25maWcuY29udGVudC5maWxlcy5maWx0ZXIoYT0+dHlwZW9mIGEucmF3PT0ic3RyaW5nIikubWFwKCh7cmF3OmEsZXh0ZW5zaW9uOm89Imh0bWwifSk9Pih7Y29udGVudDphLGV4dGVuc2lvbjpvfSkpLFtuLHNdPWgyKGUsdCk7Zm9yKGxldCBhIG9mIG4pe2xldCBvPW1lLmV4dG5hbWUoYSkuc2xpY2UoMSk7aS5wdXNoKHtmaWxlOmEsZXh0ZW5zaW9uOm99KX1yZXR1cm5baSxzXX1mdW5jdGlvbiBkMihyKXtpZighci5zb21lKHM9PnMuaW5jbHVkZXMoIioqIikmJiF3Zy50ZXN0KHMpKSlyZXR1cm4oKT0+e307bGV0IHQ9W10saT1bXTtmb3IobGV0IHMgb2Ygcil7bGV0IGE9aGcuZGVmYXVsdC5tYXRjaGVyKHMpO3dnLnRlc3QocykmJmkucHVzaChhKSx0LnB1c2goYSl9bGV0IG49ITE7cmV0dXJuIHM9PntpZihufHxpLnNvbWUoZj0+ZihzKSkpcmV0dXJuO2xldCBhPXQuZmluZEluZGV4KGY9PmYocykpO2lmKGE9PT0tMSlyZXR1cm47bGV0IG89clthXSxsPW1lLnJlbGF0aXZlKG0uY3dkKCksbyk7bFswXSE9PSIuIiYmKGw9YC4vJHtsfWApO2xldCBjPWJnLmZpbmQoZj0+cy5pbmNsdWRlcyhmKSk7YyYmKG49ITAsRy53YXJuKCJicm9hZC1jb250ZW50LWdsb2ItcGF0dGVybiIsW2BZb3VyIFxgY29udGVudFxgIGNvbmZpZ3VyYXRpb24gaW5jbHVkZXMgYSBwYXR0ZXJuIHdoaWNoIGxvb2tzIGxpa2UgaXQncyBhY2NpZGVudGFsbHkgbWF0Y2hpbmcgYWxsIG9mIFxgJHtjfVxgIGFuZCBjYW4gY2F1c2Ugc2VyaW91cyBwZXJmb3JtYW5jZSBpc3N1ZXMuYCxgUGF0dGVybjogXGAke2x9XGBgLCJTZWUgb3VyIGRvY3VtZW50YXRpb24gZm9yIHJlY29tbWVuZGF0aW9uczoiLCJodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2NvbnRlbnQtY29uZmlndXJhdGlvbiNwYXR0ZXJuLXJlY29tbWVuZGF0aW9ucyJdKSl9fWZ1bmN0aW9uIGgyKHIsZSl7bGV0IHQ9ci5tYXAobz0+by5wYXR0ZXJuKSxpPW5ldyBNYXAsbj1kMih0KSxzPW5ldyBTZXQ7WmUuREVCVUcmJmNvbnNvbGUudGltZSgiRmluZGluZyBjaGFuZ2VkIGZpbGVzIik7bGV0IGE9cHMuc3luYyh0LHthYnNvbHV0ZTohMH0pO2ZvcihsZXQgbyBvZiBhKXtuKG8pO2xldCBsPWUuZ2V0KG8pfHwtMS8wLGM9YmUuc3RhdFN5bmMobykubXRpbWVNcztjPmwmJihzLmFkZChvKSxpLnNldChvLGMpKX1yZXR1cm4gWmUuREVCVUcmJmNvbnNvbGUudGltZUVuZCgiRmluZGluZyBjaGFuZ2VkIGZpbGVzIiksW3MsaV19dmFyIGhnLGJnLHdnLHZnPVAoKCk9Pnt1KCk7ZnQoKTtldCgpO0poKCk7ZW0oKTt0bSgpO3NtKCk7SXQoKTtCZSgpO2hnPXBlKGRnKCkpO2JnPVsibm9kZV9tb2R1bGVzIl0sd2c9bmV3IFJlZ0V4cChgKCR7YmcubWFwKHI9PlN0cmluZy5yYXdgXGIke3J9XGJgKS5qb2luKCJ8Iil9KWApfSk7ZnVuY3Rpb24geGcoKXt9dmFyIGtnPVAoKCk9Pnt1KCl9KTtmdW5jdGlvbiBiMihyLGUpe2ZvcihsZXQgdCBvZiBlKXtsZXQgaT1gJHtyfSR7dH1gO2lmKGJlLmV4aXN0c1N5bmMoaSkmJmJlLnN0YXRTeW5jKGkpLmlzRmlsZSgpKXJldHVybiBpfWZvcihsZXQgdCBvZiBlKXtsZXQgaT1gJHtyfS9pbmRleCR7dH1gO2lmKGJlLmV4aXN0c1N5bmMoaSkpcmV0dXJuIGl9cmV0dXJuIG51bGx9ZnVuY3Rpb24qU2cocixlLHQsaT1tZS5leHRuYW1lKHIpKXtsZXQgbj1iMihtZS5yZXNvbHZlKGUsciksbTIuaW5jbHVkZXMoaSk/ZzI6eTIpO2lmKG49PT1udWxsfHx0LmhhcyhuKSlyZXR1cm47dC5hZGQobikseWllbGQgbixlPW1lLmRpcm5hbWUobiksaT1tZS5leHRuYW1lKG4pO2xldCBzPWJlLnJlYWRGaWxlU3luYyhuLCJ1dGYtOCIpO2ZvcihsZXQgYSBvZlsuLi5zLm1hdGNoQWxsKC9pbXBvcnRbXHNcU10qP1snIl0oLnszLH0/KVsnIl0vZ2kpLC4uLnMubWF0Y2hBbGwoL2ltcG9ydFtcc1xTXSpmcm9tW1xzXFNdKj9bJyJdKC57Myx9PylbJyJdL2dpKSwuLi5zLm1hdGNoQWxsKC9yZXF1aXJlXChbJyJgXSguKylbJyJgXVwpL2dpKV0pIWFbMV0uc3RhcnRzV2l0aCgiLiIpfHwoeWllbGQqU2coYVsxXSxlLHQsaSkpfWZ1bmN0aW9uIENsKHIpe3JldHVybiByPT09bnVsbD9uZXcgU2V0Om5ldyBTZXQoU2cocixtZS5kaXJuYW1lKHIpLG5ldyBTZXQpKX12YXIgbTIsZzIseTIsQWc9UCgoKT0+e3UoKTtmdCgpO2V0KCk7bTI9WyIuanMiLCIuY2pzIiwiLm1qcyJdLGcyPVsiIiwiLmpzIiwiLmNqcyIsIi5tanMiLCIudHMiLCIuY3RzIiwiLm10cyIsIi5qc3giLCIudHN4Il0seTI9WyIiLCIudHMiLCIuY3RzIiwiLm10cyIsIi50c3giLCIuanMiLCIuY2pzIiwiLm1qcyIsIi5qc3giXX0pO2Z1bmN0aW9uIHcyKHIsZSl7aWYoX2wuaGFzKHIpKXJldHVybiBfbC5nZXQocik7bGV0IHQ9bWcocixlKTtyZXR1cm4gX2wuc2V0KHIsdCkuZ2V0KHIpfWZ1bmN0aW9uIHYyKHIpe2xldCBlPWFhKHIpO2lmKGUhPT1udWxsKXtsZXRbaSxuLHMsYV09X2cuZ2V0KGUpfHxbXSxvPUNsKGUpLGw9ITEsYz1uZXcgTWFwO2ZvcihsZXQgcCBvZiBvKXtsZXQgaD1iZS5zdGF0U3luYyhwKS5tdGltZU1zO2Muc2V0KHAsaCksKCFhfHwhYS5oYXMocCl8fGg+YS5nZXQocCkpJiYobD0hMCl9aWYoIWwpcmV0dXJuW2ksZSxuLHNdO2ZvcihsZXQgcCBvZiBvKWRlbGV0ZSBoZi5jYWNoZVtwXTtsZXQgZj1vbCh6cih4ZyhlKSkpLGQ9V2koZik7cmV0dXJuIF9nLnNldChlLFtmLGQsbyxjXSksW2YsZSxkLG9dfWxldCB0PXpyKHI/LmNvbmZpZz8/cj8/e30pO3JldHVybiB0PW9sKHQpLFt0LG51bGwsV2kodCksW11dfWZ1bmN0aW9uIEVsKHIpe3JldHVybih7dGFpbHdpbmREaXJlY3RpdmVzOmUscmVnaXN0ZXJEZXBlbmRlbmN5OnR9KT0+KGksbik9PntsZXRbcyxhLG8sbF09djIociksYz1uZXcgU2V0KGwpO2lmKGUuc2l6ZT4wKXtjLmFkZChuLm9wdHMuZnJvbSk7Zm9yKGxldCBiIG9mIG4ubWVzc2FnZXMpYi50eXBlPT09ImRlcGVuZGVuY3kiJiZjLmFkZChiLmZpbGUpfWxldFtmLCxkXT1WaChpLG4scyxhLG8sYykscD1jcyhmKSxoPXcyKGYscyk7aWYoZS5zaXplPjApe2ZvcihsZXQgeSBvZiBoKWZvcihsZXQgdyBvZiBubCh5KSl0KHcpO2xldFtiLHZdPXlnKGYsaCxwKTtmb3IobGV0IHkgb2YgYilmLmNoYW5nZWRDb250ZW50LnB1c2goeSk7Zm9yKGxldFt5LHddb2Ygdi5lbnRyaWVzKCkpZC5zZXQoeSx3KX1mb3IobGV0IGIgb2YgbCl0KHt0eXBlOiJkZXBlbmRlbmN5IixmaWxlOmJ9KTtmb3IobGV0W2Isdl1vZiBkLmVudHJpZXMoKSlwLnNldChiLHYpO3JldHVybiBmfX12YXIgQ2csX2csX2wsRWc9UCgoKT0+e3UoKTtmdCgpO0NnPXBlKEZzKCkpO3dmKCk7c2EoKTtvYygpO09pKCk7SGgoKTtYaCgpO3ZnKCk7a2coKTtBZygpO19nPW5ldyBDZy5kZWZhdWx0KHttYXhTaXplOjEwMH0pLF9sPW5ldyBXZWFrTWFwfSk7ZnVuY3Rpb24gT2wocil7bGV0IGU9bmV3IFNldCx0PW5ldyBTZXQsaT1uZXcgU2V0O2lmKHIud2Fsa0F0UnVsZXMobj0+e24ubmFtZT09PSJhcHBseSImJmkuYWRkKG4pLG4ubmFtZT09PSJpbXBvcnQiJiYobi5wYXJhbXM9PT0nInRhaWx3aW5kY3NzL2Jhc2UiJ3x8bi5wYXJhbXM9PT0iJ3RhaWx3aW5kY3NzL2Jhc2UnIj8obi5uYW1lPSJ0YWlsd2luZCIsbi5wYXJhbXM9ImJhc2UiKTpuLnBhcmFtcz09PScidGFpbHdpbmRjc3MvY29tcG9uZW50cyInfHxuLnBhcmFtcz09PSIndGFpbHdpbmRjc3MvY29tcG9uZW50cyciPyhuLm5hbWU9InRhaWx3aW5kIixuLnBhcmFtcz0iY29tcG9uZW50cyIpOm4ucGFyYW1zPT09JyJ0YWlsd2luZGNzcy91dGlsaXRpZXMiJ3x8bi5wYXJhbXM9PT0iJ3RhaWx3aW5kY3NzL3V0aWxpdGllcyciPyhuLm5hbWU9InRhaWx3aW5kIixuLnBhcmFtcz0idXRpbGl0aWVzIik6KG4ucGFyYW1zPT09JyJ0YWlsd2luZGNzcy9zY3JlZW5zIid8fG4ucGFyYW1zPT09Iid0YWlsd2luZGNzcy9zY3JlZW5zJyJ8fG4ucGFyYW1zPT09JyJ0YWlsd2luZGNzcy92YXJpYW50cyInfHxuLnBhcmFtcz09PSIndGFpbHdpbmRjc3MvdmFyaWFudHMnIikmJihuLm5hbWU9InRhaWx3aW5kIixuLnBhcmFtcz0idmFyaWFudHMiKSksbi5uYW1lPT09InRhaWx3aW5kIiYmKG4ucGFyYW1zPT09InNjcmVlbnMiJiYobi5wYXJhbXM9InZhcmlhbnRzIiksZS5hZGQobi5wYXJhbXMpKSxbImxheWVyIiwicmVzcG9uc2l2ZSIsInZhcmlhbnRzIl0uaW5jbHVkZXMobi5uYW1lKSYmKFsicmVzcG9uc2l2ZSIsInZhcmlhbnRzIl0uaW5jbHVkZXMobi5uYW1lKSYmRy53YXJuKGAke24ubmFtZX0tYXQtcnVsZS1kZXByZWNhdGVkYCxbYFRoZSBcYEAke24ubmFtZX1cYCBkaXJlY3RpdmUgaGFzIGJlZW4gZGVwcmVjYXRlZCBpbiBUYWlsd2luZCBDU1MgdjMuMC5gLCJVc2UgYEBsYXllciB1dGlsaXRpZXNgIG9yIGBAbGF5ZXIgY29tcG9uZW50c2AgaW5zdGVhZC4iLCJodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3VwZ3JhZGUtZ3VpZGUjcmVwbGFjZS12YXJpYW50cy13aXRoLWxheWVyIl0pLHQuYWRkKG4pKX0pLCFlLmhhcygiYmFzZSIpfHwhZS5oYXMoImNvbXBvbmVudHMiKXx8IWUuaGFzKCJ1dGlsaXRpZXMiKSl7Zm9yKGxldCBuIG9mIHQpaWYobi5uYW1lPT09ImxheWVyIiYmWyJiYXNlIiwiY29tcG9uZW50cyIsInV0aWxpdGllcyJdLmluY2x1ZGVzKG4ucGFyYW1zKSl7aWYoIWUuaGFzKG4ucGFyYW1zKSl0aHJvdyBuLmVycm9yKGBcYEBsYXllciAke24ucGFyYW1zfVxgIGlzIHVzZWQgYnV0IG5vIG1hdGNoaW5nIFxgQHRhaWx3aW5kICR7bi5wYXJhbXN9XGAgZGlyZWN0aXZlIGlzIHByZXNlbnQuYCl9ZWxzZSBpZihuLm5hbWU9PT0icmVzcG9uc2l2ZSIpe2lmKCFlLmhhcygidXRpbGl0aWVzIikpdGhyb3cgbi5lcnJvcigiYEByZXNwb25zaXZlYCBpcyB1c2VkIGJ1dCBgQHRhaWx3aW5kIHV0aWxpdGllc2AgaXMgbWlzc2luZy4iKX1lbHNlIGlmKG4ubmFtZT09PSJ2YXJpYW50cyImJiFlLmhhcygidXRpbGl0aWVzIikpdGhyb3cgbi5lcnJvcigiYEB2YXJpYW50c2AgaXMgdXNlZCBidXQgYEB0YWlsd2luZCB1dGlsaXRpZXNgIGlzIG1pc3NpbmcuIil9cmV0dXJue3RhaWx3aW5kRGlyZWN0aXZlczplLGFwcGx5RGlyZWN0aXZlczppfX12YXIgT2c9UCgoKT0+e3UoKTtCZSgpfSk7ZnVuY3Rpb24gUXQocixlPXZvaWQgMCx0PXZvaWQgMCl7cmV0dXJuIHIubWFwKGk9PntsZXQgbj1pLmNsb25lKCk7cmV0dXJuIHQhPT12b2lkIDAmJihuLnJhd3MudGFpbHdpbmQ9ey4uLm4ucmF3cy50YWlsd2luZCwuLi50fSksZSE9PXZvaWQgMCYmVGcobixzPT57aWYocy5yYXdzLnRhaWx3aW5kPy5wcmVzZXJ2ZVNvdXJjZT09PSEwJiZzLnNvdXJjZSlyZXR1cm4hMTtzLnNvdXJjZT1lfSksbn0pfWZ1bmN0aW9uIFRnKHIsZSl7ZShyKSE9PSExJiZyLmVhY2g/Lih0PT5UZyh0LGUpKX12YXIgUmc9UCgoKT0+e3UoKX0pO2Z1bmN0aW9uIFRsKHIpe3JldHVybiByPUFycmF5LmlzQXJyYXkocik/cjpbcl0scj1yLm1hcChlPT5lIGluc3RhbmNlb2YgUmVnRXhwP2Uuc291cmNlOmUpLHIuam9pbigiIil9ZnVuY3Rpb24gTmUocil7cmV0dXJuIG5ldyBSZWdFeHAoVGwociksImciKX1mdW5jdGlvbiBxdChyKXtyZXR1cm5gKD86JHtyLm1hcChUbCkuam9pbigifCIpfSlgfWZ1bmN0aW9uIFJsKHIpe3JldHVybmAoPzoke1RsKHIpfSk/YH1mdW5jdGlvbiBJZyhyKXtyZXR1cm4gciYmeDIudGVzdChyKT9yLnJlcGxhY2UoUGcsIlxcJCYiKTpyfHwiIn12YXIgUGcseDIsRGc9UCgoKT0+e3UoKTtQZz0vW1xcXiQuKis/KClbXF17fXxdL2cseDI9UmVnRXhwKFBnLnNvdXJjZSl9KTtmdW5jdGlvbiBxZyhyKXtsZXQgZT1BcnJheS5mcm9tKGsyKHIpKTtyZXR1cm4gdD0+e2xldCBpPVtdO2ZvcihsZXQgbiBvZiBlKWZvcihsZXQgcyBvZiB0Lm1hdGNoKG4pPz9bXSlpLnB1c2goQzIocykpO2ZvcihsZXQgbiBvZiBpLnNsaWNlKCkpe2xldCBzPXZlKG4sIi4iKTtmb3IobGV0IGE9MDthPHMubGVuZ3RoO2ErKyl7bGV0IG89c1thXTtpZihhPj1zLmxlbmd0aC0xKXtpLnB1c2gobyk7Y29udGludWV9bGV0IGw9TnVtYmVyKHNbYSsxXSk7aXNOYU4obCk/aS5wdXNoKG8pOmErK319cmV0dXJuIGl9fWZ1bmN0aW9uKmsyKHIpe2xldCBlPXIudGFpbHdpbmRDb25maWcuc2VwYXJhdG9yLHQ9ci50YWlsd2luZENvbmZpZy5wcmVmaXghPT0iIj9SbChOZShbLy0/LyxJZyhyLnRhaWx3aW5kQ29uZmlnLnByZWZpeCldKSk6IiIsaT1xdChbL1xbW15cczonImBdKzpbXlxzXFtcXV0rXF0vLC9cW1teXHM6JyJgXF1dKzpbXlxzXSs/XFtbXlxzXStcXVteXHNdKz9cXS8sTmUoW3F0KFsvLT8oPzpcdyspLywvQCg/Olx3KykvXSksUmwocXQoW05lKFtxdChbLy0oPzpcdystKSpcWydbXlxzXSsnXF0vLC8tKD86XHcrLSkqXFsiW15cc10rIlxdLywvLSg/Olx3Ky0pKlxbYFteXHNdK2BcXS8sLy0oPzpcdystKSpcWyg/OlteXHNcW1xdXStcW1teXHNcW1xdXStcXSkqW15cczpcW1xdXStcXS9dKSwvKD8hW3soW11dKS8sLyg/OlwvW15ccyciYFxcPjwkXSopPy9dKSxOZShbcXQoWy8tKD86XHcrLSkqXFsnW15cc10rJ1xdLywvLSg/Olx3Ky0pKlxbIlteXHNdKyJcXS8sLy0oPzpcdystKSpcW2BbXlxzXStgXF0vLC8tKD86XHcrLSkqXFsoPzpbXlxzXFtcXV0rXFtbXlxzXFtcXV0rXF0pKlteXHNcW1xdXStcXS9dKSwvKD8hW3soW11dKS8sLyg/OlwvW15ccyciYFxcJF0qKT8vXSksL1stXC9dW15ccyciYFxcJD17PjxdKi9dKSldKV0pLG49W3F0KFtOZShbL0BcW1teXHMiJ2BdK1xdKFwvW15ccyInYF0rKT8vLGVdKSxOZShbLyhbXlxzIidgXFtcXF0rLSk/XFtbXlxzIidgXStcXVwvW1x3Xy1dKy8sZV0pLE5lKFsvKFteXHMiJ2BcW1xcXSstKT9cW1teXHMiJ2BdK1xdLyxlXSksTmUoWy9bXlxzIidgXFtcXF0rLyxlXSldKSxxdChbTmUoWy8oW15ccyInYFxbXFxdKy0pP1xbW15cc2BdK1xdXC9bXHdfLV0rLyxlXSksTmUoWy8oW15ccyInYFxbXFxdKy0pP1xbW15cc2BdK1xdLyxlXSksTmUoWy9bXlxzYFxbXFxdKy8sZV0pXSldO2ZvcihsZXQgcyBvZiBuKXlpZWxkIE5lKFsiKCg/PSgoIixzLCIpKykpXFwyKT8iLC8hPy8sdCxpXSk7eWllbGQvW148PiInYFxzLigpe31bXF0jPSUkXVtePD4iJ2Bccygpe31bXF0jPSUkXSpbXjw+IidgXHMuKCl7fVtcXSM9JTokXS9nfWZ1bmN0aW9uIEMyKHIpe2lmKCFyLmluY2x1ZGVzKCItWyIpKXJldHVybiByO2xldCBlPTAsdD1bXSxpPXIubWF0Y2hBbGwoUzIpO2k9QXJyYXkuZnJvbShpKS5mbGF0TWFwKG49PntsZXRbLC4uLnNdPW47cmV0dXJuIHMubWFwKChhLG8pPT5PYmplY3QuYXNzaWduKFtdLG4se2luZGV4Om4uaW5kZXgrbywwOmF9KSl9KTtmb3IobGV0IG4gb2YgaSl7bGV0IHM9blswXSxhPXRbdC5sZW5ndGgtMV07aWYocz09PWE/dC5wb3AoKToocz09PSInInx8cz09PSciJ3x8cz09PSJgIikmJnQucHVzaChzKSwhYSl7aWYocz09PSJbIil7ZSsrO2NvbnRpbnVlfWVsc2UgaWYocz09PSJdIil7ZS0tO2NvbnRpbnVlfWlmKGU8MClyZXR1cm4gci5zdWJzdHJpbmcoMCxuLmluZGV4LTEpO2lmKGU9PT0wJiYhQTIudGVzdChzKSlyZXR1cm4gci5zdWJzdHJpbmcoMCxuLmluZGV4KX19cmV0dXJuIHJ9dmFyIFMyLEEyLCRnPVAoKCk9Pnt1KCk7RGcoKTt6dCgpO1MyPS8oW1xbXF0nImBdKShbXlxbXF0nImBdKT8vZyxBMj0vW14iJ2Bcczw+XF1dKy99KTtmdW5jdGlvbiBfMihyLGUpe2xldCB0PXIudGFpbHdpbmRDb25maWcuY29udGVudC5leHRyYWN0O3JldHVybiB0W2VdfHx0LkRFRkFVTFR8fE1nW2VdfHxNZy5ERUZBVUxUKHIpfWZ1bmN0aW9uIEUyKHIsZSl7bGV0IHQ9ci5jb250ZW50LnRyYW5zZm9ybTtyZXR1cm4gdFtlXXx8dC5ERUZBVUxUfHxOZ1tlXXx8TmcuREVGQVVMVH1mdW5jdGlvbiBPMihyLGUsdCxpKXtMaS5oYXMoZSl8fExpLnNldChlLG5ldyBMZy5kZWZhdWx0KHttYXhTaXplOjI1ZTN9KSk7Zm9yKGxldCBuIG9mIHIuc3BsaXQoYApgKSlpZihuPW4udHJpbSgpLCFpLmhhcyhuKSlpZihpLmFkZChuKSxMaS5nZXQoZSkuaGFzKG4pKWZvcihsZXQgcyBvZiBMaS5nZXQoZSkuZ2V0KG4pKXQuYWRkKHMpO2Vsc2V7bGV0IHM9ZShuKS5maWx0ZXIobz0+byE9PSIhKiIpLGE9bmV3IFNldChzKTtmb3IobGV0IG8gb2YgYSl0LmFkZChvKTtMaS5nZXQoZSkuc2V0KG4sYSl9fWZ1bmN0aW9uIFQyKHIsZSl7bGV0IHQ9ZS5vZmZzZXRzLnNvcnQociksaT17YmFzZTpuZXcgU2V0LGRlZmF1bHRzOm5ldyBTZXQsY29tcG9uZW50czpuZXcgU2V0LHV0aWxpdGllczpuZXcgU2V0LHZhcmlhbnRzOm5ldyBTZXR9O2ZvcihsZXRbbixzXW9mIHQpaVtuLmxheWVyXS5hZGQocyk7cmV0dXJuIGl9ZnVuY3Rpb24gUGwocil7cmV0dXJuIGFzeW5jIGU9PntsZXQgdD17YmFzZTpudWxsLGNvbXBvbmVudHM6bnVsbCx1dGlsaXRpZXM6bnVsbCx2YXJpYW50czpudWxsfTtpZihlLndhbGtBdFJ1bGVzKHk9Pnt5Lm5hbWU9PT0idGFpbHdpbmQiJiZPYmplY3Qua2V5cyh0KS5pbmNsdWRlcyh5LnBhcmFtcykmJih0W3kucGFyYW1zXT15KX0pLE9iamVjdC52YWx1ZXModCkuZXZlcnkoeT0+eT09PW51bGwpKXJldHVybiBlO2xldCBpPW5ldyBTZXQoWy4uLnIuY2FuZGlkYXRlcz8/W10sZ3RdKSxuPW5ldyBTZXQ7YnQuREVCVUcmJmNvbnNvbGUudGltZSgiUmVhZGluZyBjaGFuZ2VkIGZpbGVzIik7bGV0IHM9W107Zm9yKGxldCB5IG9mIHIuY2hhbmdlZENvbnRlbnQpe2xldCB3PUUyKHIudGFpbHdpbmRDb25maWcseS5leHRlbnNpb24pLGs9XzIocix5LmV4dGVuc2lvbik7cy5wdXNoKFt5LHt0cmFuc2Zvcm1lcjp3LGV4dHJhY3RvcjprfV0pfWxldCBhPTUwMDtmb3IobGV0IHk9MDt5PHMubGVuZ3RoO3krPWEpe2xldCB3PXMuc2xpY2UoeSx5K2EpO2F3YWl0IFByb21pc2UuYWxsKHcubWFwKGFzeW5jKFt7ZmlsZTprLGNvbnRlbnQ6U30se3RyYW5zZm9ybWVyOkUsZXh0cmFjdG9yOlR9XSk9PntTPWs/YXdhaXQgYmUucHJvbWlzZXMucmVhZEZpbGUoaywidXRmOCIpOlMsTzIoRShTKSxULGksbil9KSl9YnQuREVCVUcmJmNvbnNvbGUudGltZUVuZCgiUmVhZGluZyBjaGFuZ2VkIGZpbGVzIik7bGV0IG89ci5jbGFzc0NhY2hlLnNpemU7YnQuREVCVUcmJmNvbnNvbGUudGltZSgiR2VuZXJhdGUgcnVsZXMiKSxidC5ERUJVRyYmY29uc29sZS50aW1lKCJTb3J0aW5nIGNhbmRpZGF0ZXMiKTtsZXQgbD1uZXcgU2V0KFsuLi5pXS5zb3J0KCh5LHcpPT55PT09dz8wOnk8dz8tMToxKSk7YnQuREVCVUcmJmNvbnNvbGUudGltZUVuZCgiU29ydGluZyBjYW5kaWRhdGVzIiksYXMobCxyKSxidC5ERUJVRyYmY29uc29sZS50aW1lRW5kKCJHZW5lcmF0ZSBydWxlcyIpLGJ0LkRFQlVHJiZjb25zb2xlLnRpbWUoIkJ1aWxkIHN0eWxlc2hlZXQiKSwoci5zdHlsZXNoZWV0Q2FjaGU9PT1udWxsfHxyLmNsYXNzQ2FjaGUuc2l6ZSE9PW8pJiYoci5zdHlsZXNoZWV0Q2FjaGU9VDIoWy4uLnIucnVsZUNhY2hlXSxyKSksYnQuREVCVUcmJmNvbnNvbGUudGltZUVuZCgiQnVpbGQgc3R5bGVzaGVldCIpO2xldHtkZWZhdWx0czpjLGJhc2U6Zixjb21wb25lbnRzOmQsdXRpbGl0aWVzOnAsdmFyaWFudHM6aH09ci5zdHlsZXNoZWV0Q2FjaGU7dC5iYXNlJiYodC5iYXNlLmJlZm9yZShRdChbLi4uYywuLi5mXSx0LmJhc2Uuc291cmNlLHtsYXllcjoiYmFzZSJ9KSksdC5iYXNlLnJlbW92ZSgpKSx0LmNvbXBvbmVudHMmJih0LmNvbXBvbmVudHMuYmVmb3JlKFF0KFsuLi5kXSx0LmNvbXBvbmVudHMuc291cmNlLHtsYXllcjoiY29tcG9uZW50cyJ9KSksdC5jb21wb25lbnRzLnJlbW92ZSgpKSx0LnV0aWxpdGllcyYmKHQudXRpbGl0aWVzLmJlZm9yZShRdChbLi4ucF0sdC51dGlsaXRpZXMuc291cmNlLHtsYXllcjoidXRpbGl0aWVzIn0pKSx0LnV0aWxpdGllcy5yZW1vdmUoKSk7bGV0IGI9QXJyYXkuZnJvbShoKS5maWx0ZXIoeT0+e2xldCB3PXkucmF3cy50YWlsd2luZD8ucGFyZW50TGF5ZXI7cmV0dXJuIHc9PT0iY29tcG9uZW50cyI/dC5jb21wb25lbnRzIT09bnVsbDp3PT09InV0aWxpdGllcyI/dC51dGlsaXRpZXMhPT1udWxsOiEwfSk7dC52YXJpYW50cz8odC52YXJpYW50cy5iZWZvcmUoUXQoYix0LnZhcmlhbnRzLnNvdXJjZSx7bGF5ZXI6InZhcmlhbnRzIn0pKSx0LnZhcmlhbnRzLnJlbW92ZSgpKTpiLmxlbmd0aD4wJiZlLmFwcGVuZChRdChiLGUuc291cmNlLHtsYXllcjoidmFyaWFudHMifSkpLGUuc291cmNlLmVuZD1lLnNvdXJjZS5lbmQ/P2Uuc291cmNlLnN0YXJ0O2xldCB2PWIuc29tZSh5PT55LnJhd3MudGFpbHdpbmQ/LnBhcmVudExheWVyPT09InV0aWxpdGllcyIpO3QudXRpbGl0aWVzJiZwLnNpemU9PT0wJiYhdiYmRy53YXJuKCJjb250ZW50LXByb2JsZW1zIixbIk5vIHV0aWxpdHkgY2xhc3NlcyB3ZXJlIGRldGVjdGVkIGluIHlvdXIgc291cmNlIGZpbGVzLiBJZiB0aGlzIGlzIHVuZXhwZWN0ZWQsIGRvdWJsZS1jaGVjayB0aGUgYGNvbnRlbnRgIG9wdGlvbiBpbiB5b3VyIFRhaWx3aW5kIENTUyBjb25maWd1cmF0aW9uLiIsImh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvY29udGVudC1jb25maWd1cmF0aW9uIl0pLGJ0LkRFQlVHJiYoY29uc29sZS5sb2coIlBvdGVudGlhbCBjbGFzc2VzOiAiLGkuc2l6ZSksY29uc29sZS5sb2coIkFjdGl2ZSBjb250ZXh0czogIixlcy5zaXplKSksci5jaGFuZ2VkQ29udGVudD1bXSxlLndhbGtBdFJ1bGVzKCJsYXllciIseT0+e09iamVjdC5rZXlzKHQpLmluY2x1ZGVzKHkucGFyYW1zKSYmeS5yZW1vdmUoKX0pfX12YXIgTGcsYnQsTWcsTmcsTGksQmc9UCgoKT0+e3UoKTtmdCgpO0xnPXBlKEZzKCkpO0l0KCk7b3MoKTtCZSgpO1JnKCk7JGcoKTtidD1aZSxNZz17REVGQVVMVDpxZ30sTmc9e0RFRkFVTFQ6cj0+cixzdmVsdGU6cj0+ci5yZXBsYWNlKC8oPzpefFxzKWNsYXNzOi9nLCIgIil9O0xpPW5ldyBXZWFrTWFwfSk7ZnVuY3Rpb24geHMocil7bGV0IGU9bmV3IE1hcDtlZS5yb290KHtub2Rlczpbci5jbG9uZSgpXX0pLndhbGtSdWxlcyhzPT57KDAsdnMuZGVmYXVsdCkoYT0+e2Eud2Fsa0NsYXNzZXMobz0+e2xldCBsPW8ucGFyZW50LnRvU3RyaW5nKCksYz1lLmdldChsKTtjfHxlLnNldChsLGM9bmV3IFNldCksYy5hZGQoby52YWx1ZSl9KX0pLnByb2Nlc3NTeW5jKHMuc2VsZWN0b3IpfSk7bGV0IGk9QXJyYXkuZnJvbShlLnZhbHVlcygpLHM9PkFycmF5LmZyb20ocykpLG49aS5mbGF0KCk7cmV0dXJuIE9iamVjdC5hc3NpZ24obix7Z3JvdXBzOml9KX1mdW5jdGlvbiBJbChyKXtyZXR1cm4gUjIuYXN0U3luYyhyKX1mdW5jdGlvbiBGZyhyLGUpe2xldCB0PW5ldyBTZXQ7Zm9yKGxldCBpIG9mIHIpdC5hZGQoaS5zcGxpdChlKS5wb3AoKSk7cmV0dXJuIEFycmF5LmZyb20odCl9ZnVuY3Rpb24gamcocixlKXtsZXQgdD1yLnRhaWx3aW5kQ29uZmlnLnByZWZpeDtyZXR1cm4gdHlwZW9mIHQ9PSJmdW5jdGlvbiI/dChlKTp0K2V9ZnVuY3Rpb24qemcocil7Zm9yKHlpZWxkIHI7ci5wYXJlbnQ7KXlpZWxkIHIucGFyZW50LHI9ci5wYXJlbnR9ZnVuY3Rpb24gUDIocixlPXt9KXtsZXQgdD1yLm5vZGVzO3Iubm9kZXM9W107bGV0IGk9ci5jbG9uZShlKTtyZXR1cm4gci5ub2Rlcz10LGl9ZnVuY3Rpb24gSTIocil7Zm9yKGxldCBlIG9mIHpnKHIpKWlmKHIhPT1lKXtpZihlLnR5cGU9PT0icm9vdCIpYnJlYWs7cj1QMihlLHtub2Rlczpbcl19KX1yZXR1cm4gcn1mdW5jdGlvbiBEMihyLGUpe2xldCB0PW5ldyBNYXA7cmV0dXJuIHIud2Fsa1J1bGVzKGk9Pntmb3IobGV0IGEgb2YgemcoaSkpaWYoYS5yYXdzLnRhaWx3aW5kPy5sYXllciE9PXZvaWQgMClyZXR1cm47bGV0IG49STIoaSkscz1lLm9mZnNldHMuY3JlYXRlKCJ1c2VyIik7Zm9yKGxldCBhIG9mIHhzKGkpKXtsZXQgbz10LmdldChhKXx8W107dC5zZXQoYSxvKSxvLnB1c2goW3tsYXllcjoidXNlciIsc29ydDpzLGltcG9ydGFudDohMX0sbl0pfX0pLHR9ZnVuY3Rpb24gcTIocixlKXtmb3IobGV0IHQgb2Ygcil7aWYoZS5ub3RDbGFzc0NhY2hlLmhhcyh0KXx8ZS5hcHBseUNsYXNzQ2FjaGUuaGFzKHQpKWNvbnRpbnVlO2lmKGUuY2xhc3NDYWNoZS5oYXModCkpe2UuYXBwbHlDbGFzc0NhY2hlLnNldCh0LGUuY2xhc3NDYWNoZS5nZXQodCkubWFwKChbbixzXSk9PltuLHMuY2xvbmUoKV0pKTtjb250aW51ZX1sZXQgaT1BcnJheS5mcm9tKFlvKHQsZSkpO2lmKGkubGVuZ3RoPT09MCl7ZS5ub3RDbGFzc0NhY2hlLmFkZCh0KTtjb250aW51ZX1lLmFwcGx5Q2xhc3NDYWNoZS5zZXQodCxpKX1yZXR1cm4gZS5hcHBseUNsYXNzQ2FjaGV9ZnVuY3Rpb24gJDIocil7bGV0IGU9bnVsbDtyZXR1cm57Z2V0OnQ9PihlPWV8fHIoKSxlLmdldCh0KSksaGFzOnQ9PihlPWV8fHIoKSxlLmhhcyh0KSl9fWZ1bmN0aW9uIEwyKHIpe3JldHVybntnZXQ6ZT0+ci5mbGF0TWFwKHQ9PnQuZ2V0KGUpfHxbXSksaGFzOmU9PnIuc29tZSh0PT50LmhhcyhlKSl9fWZ1bmN0aW9uIFVnKHIpe2xldCBlPXIuc3BsaXQoL1tcc1x0XG5dKy9nKTtyZXR1cm4gZVtlLmxlbmd0aC0xXT09PSIhaW1wb3J0YW50Ij9bZS5zbGljZSgwLC0xKSwhMF06W2UsITFdfWZ1bmN0aW9uIFZnKHIsZSx0KXtsZXQgaT1uZXcgU2V0LG49W107aWYoci53YWxrQXRSdWxlcygiYXBwbHkiLGw9PntsZXRbY109VWcobC5wYXJhbXMpO2ZvcihsZXQgZiBvZiBjKWkuYWRkKGYpO24ucHVzaChsKX0pLG4ubGVuZ3RoPT09MClyZXR1cm47bGV0IHM9TDIoW3QscTIoaSxlKV0pO2Z1bmN0aW9uIGEobCxjLGYpe2xldCBkPUlsKGwpLHA9SWwoYyksYj1JbChgLiR7VGUoZil9YCkubm9kZXNbMF0ubm9kZXNbMF07cmV0dXJuIGQuZWFjaCh2PT57bGV0IHk9bmV3IFNldDtwLmVhY2godz0+e2xldCBrPSExO3c9dy5jbG9uZSgpLHcud2Fsa0NsYXNzZXMoUz0+e1MudmFsdWU9PT1iLnZhbHVlJiYoa3x8KFMucmVwbGFjZVdpdGgoLi4udi5ub2Rlcy5tYXAoRT0+RS5jbG9uZSgpKSkseS5hZGQodyksaz0hMCkpfSl9KTtmb3IobGV0IHcgb2YgeSl7bGV0IGs9W1tdXTtmb3IobGV0IFMgb2Ygdy5ub2RlcylTLnR5cGU9PT0iY29tYmluYXRvciI/KGsucHVzaChTKSxrLnB1c2goW10pKTprW2subGVuZ3RoLTFdLnB1c2goUyk7dy5ub2Rlcz1bXTtmb3IobGV0IFMgb2YgaylBcnJheS5pc0FycmF5KFMpJiZTLnNvcnQoKEUsVCk9PkUudHlwZT09PSJ0YWciJiZULnR5cGU9PT0iY2xhc3MiPy0xOkUudHlwZT09PSJjbGFzcyImJlQudHlwZT09PSJ0YWciPzE6RS50eXBlPT09ImNsYXNzIiYmVC50eXBlPT09InBzZXVkbyImJlQudmFsdWUuc3RhcnRzV2l0aCgiOjoiKT8tMTpFLnR5cGU9PT0icHNldWRvIiYmRS52YWx1ZS5zdGFydHNXaXRoKCI6OiIpJiZULnR5cGU9PT0iY2xhc3MiPzE6MCksdy5ub2Rlcz13Lm5vZGVzLmNvbmNhdChTKX12LnJlcGxhY2VXaXRoKC4uLnkpfSksZC50b1N0cmluZygpfWxldCBvPW5ldyBNYXA7Zm9yKGxldCBsIG9mIG4pe2xldFtjXT1vLmdldChsLnBhcmVudCl8fFtbXSxsLnNvdXJjZV07by5zZXQobC5wYXJlbnQsW2MsbC5zb3VyY2VdKTtsZXRbZixkXT1VZyhsLnBhcmFtcyk7aWYobC5wYXJlbnQudHlwZT09PSJhdHJ1bGUiKXtpZihsLnBhcmVudC5uYW1lPT09InNjcmVlbiIpe2xldCBwPWwucGFyZW50LnBhcmFtczt0aHJvdyBsLmVycm9yKGBAYXBwbHkgaXMgbm90IHN1cHBvcnRlZCB3aXRoaW4gbmVzdGVkIGF0LXJ1bGVzIGxpa2UgQHNjcmVlbi4gV2Ugc3VnZ2VzdCB5b3Ugd3JpdGUgdGhpcyBhcyBAYXBwbHkgJHtmLm1hcChoPT5gJHtwfToke2h9YCkuam9pbigiICIpfSBpbnN0ZWFkLmApfXRocm93IGwuZXJyb3IoYEBhcHBseSBpcyBub3Qgc3VwcG9ydGVkIHdpdGhpbiBuZXN0ZWQgYXQtcnVsZXMgbGlrZSBAJHtsLnBhcmVudC5uYW1lfS4gWW91IGNhbiBmaXggdGhpcyBieSB1bi1uZXN0aW5nIEAke2wucGFyZW50Lm5hbWV9LmApfWZvcihsZXQgcCBvZiBmKXtpZihbamcoZSwiZ3JvdXAiKSxqZyhlLCJwZWVyIildLmluY2x1ZGVzKHApKXRocm93IGwuZXJyb3IoYEBhcHBseSBzaG91bGQgbm90IGJlIHVzZWQgd2l0aCB0aGUgJyR7cH0nIHV0aWxpdHlgKTtpZighcy5oYXMocCkpdGhyb3cgbC5lcnJvcihgVGhlIFxgJHtwfVxgIGNsYXNzIGRvZXMgbm90IGV4aXN0LiBJZiBcYCR7cH1cYCBpcyBhIGN1c3RvbSBjbGFzcywgbWFrZSBzdXJlIGl0IGlzIGRlZmluZWQgd2l0aGluIGEgXGBAbGF5ZXJcYCBkaXJlY3RpdmUuYCk7bGV0IGg9cy5nZXQocCk7Zm9yKGxldFssYl1vZiBoKWIudHlwZSE9PSJhdHJ1bGUiJiZiLndhbGtSdWxlcygoKT0+e3Rocm93IGwuZXJyb3IoW2BUaGUgXGAke3B9XGAgY2xhc3MgY2Fubm90IGJlIHVzZWQgd2l0aCBcYEBhcHBseVxgIGJlY2F1c2UgXGBAYXBwbHlcYCBkb2VzIG5vdCBjdXJyZW50bHkgc3VwcG9ydCBuZXN0ZWQgQ1NTLmAsIlJld3JpdGUgdGhlIHNlbGVjdG9yIHdpdGhvdXQgbmVzdGluZyBvciBjb25maWd1cmUgdGhlIGB0YWlsd2luZGNzcy9uZXN0aW5nYCBwbHVnaW46IiwiaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy91c2luZy13aXRoLXByZXByb2Nlc3NvcnMjbmVzdGluZyJdLmpvaW4oYApgKSl9KTtjLnB1c2goW3AsZCxoXSl9fWZvcihsZXRbbCxbYyxmXV1vZiBvKXtsZXQgZD1bXTtmb3IobGV0W2gsYix2XW9mIGMpe2xldCB5PVtoLC4uLkZnKFtoXSxlLnRhaWx3aW5kQ29uZmlnLnNlcGFyYXRvcildO2ZvcihsZXRbdyxrXW9mIHYpe2xldCBTPXhzKGwpLEU9eHMoayk7aWYoRT1FLmdyb3Vwcy5maWx0ZXIoUj0+Ui5zb21lKEY9PnkuaW5jbHVkZXMoRikpKS5mbGF0KCksRT1FLmNvbmNhdChGZyhFLGUudGFpbHdpbmRDb25maWcuc2VwYXJhdG9yKSksUy5zb21lKFI9PkUuaW5jbHVkZXMoUikpKXRocm93IGsuZXJyb3IoYFlvdSBjYW5ub3QgXGBAYXBwbHlcYCB0aGUgXGAke2h9XGAgdXRpbGl0eSBoZXJlIGJlY2F1c2UgaXQgY3JlYXRlcyBhIGNpcmN1bGFyIGRlcGVuZGVuY3kuYCk7bGV0IEI9ZWUucm9vdCh7bm9kZXM6W2suY2xvbmUoKV19KTtCLndhbGsoUj0+e1Iuc291cmNlPWZ9KSwoay50eXBlIT09ImF0cnVsZSJ8fGsudHlwZT09PSJhdHJ1bGUiJiZrLm5hbWUhPT0ia2V5ZnJhbWVzIikmJkIud2Fsa1J1bGVzKFI9PntpZigheHMoUikuc29tZShVPT5VPT09aCkpe1IucmVtb3ZlKCk7cmV0dXJufWxldCBGPXR5cGVvZiBlLnRhaWx3aW5kQ29uZmlnLmltcG9ydGFudD09InN0cmluZyI/ZS50YWlsd2luZENvbmZpZy5pbXBvcnRhbnQ6bnVsbCxfPWwucmF3cy50YWlsd2luZCE9PXZvaWQgMCYmRiYmbC5zZWxlY3Rvci5pbmRleE9mKEYpPT09MD9sLnNlbGVjdG9yLnNsaWNlKEYubGVuZ3RoKTpsLnNlbGVjdG9yO189PT0iIiYmKF89bC5zZWxlY3RvciksUi5zZWxlY3Rvcj1hKF8sUi5zZWxlY3RvcixoKSxGJiZfIT09bC5zZWxlY3RvciYmKFIuc2VsZWN0b3I9aXMoUi5zZWxlY3RvcixGKSksUi53YWxrRGVjbHMoVT0+e1UuaW1wb3J0YW50PXcuaW1wb3J0YW50fHxifSk7bGV0IFE9KDAsdnMuZGVmYXVsdCkoKS5hc3RTeW5jKFIuc2VsZWN0b3IpO1EuZWFjaChVPT5wcihVKSksUi5zZWxlY3Rvcj1RLnRvU3RyaW5nKCl9KSwhIUIubm9kZXNbMF0mJmQucHVzaChbdy5zb3J0LEIubm9kZXNbMF1dKX19bGV0IHA9ZS5vZmZzZXRzLnNvcnQoZCkubWFwKGg9PmhbMV0pO2wuYWZ0ZXIocCl9Zm9yKGxldCBsIG9mIG4pbC5wYXJlbnQubm9kZXMubGVuZ3RoPjE/bC5yZW1vdmUoKTpsLnBhcmVudC5yZW1vdmUoKTtWZyhyLGUsdCl9ZnVuY3Rpb24gRGwocil7cmV0dXJuIGU9PntsZXQgdD0kMigoKT0+RDIoZSxyKSk7VmcoZSxyLHQpfX12YXIgdnMsUjIsSGc9UCgoKT0+e3UoKTtPdCgpO3ZzPXBlKGl0KCkpO29zKCk7ZnIoKTtXbygpO3RzKCk7UjI9KDAsdnMuZGVmYXVsdCkoKX0pO3ZhciBXZz14KChucSxrcyk9Pnt1KCk7KGZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHIoaSxuLHMpe2lmKCFpKXJldHVybiBudWxsO3IuY2FzZVNlbnNpdGl2ZXx8KGk9aS50b0xvd2VyQ2FzZSgpKTt2YXIgYT1yLnRocmVzaG9sZD09PW51bGw/bnVsbDpyLnRocmVzaG9sZCppLmxlbmd0aCxvPXIudGhyZXNob2xkQWJzb2x1dGUsbDthIT09bnVsbCYmbyE9PW51bGw/bD1NYXRoLm1pbihhLG8pOmEhPT1udWxsP2w9YTpvIT09bnVsbD9sPW86bD1udWxsO3ZhciBjLGYsZCxwLGgsYj1uLmxlbmd0aDtmb3IoaD0wO2g8YjtoKyspaWYoZj1uW2hdLHMmJihmPWZbc10pLCEhZiYmKHIuY2FzZVNlbnNpdGl2ZT9kPWY6ZD1mLnRvTG93ZXJDYXNlKCkscD10KGksZCxsKSwobD09PW51bGx8fHA8bCkmJihsPXAscyYmci5yZXR1cm5XaW5uaW5nT2JqZWN0P2M9bltoXTpjPWYsci5yZXR1cm5GaXJzdE1hdGNoKSkpcmV0dXJuIGM7cmV0dXJuIGN8fHIubnVsbFJlc3VsdFZhbHVlfXIudGhyZXNob2xkPS40LHIudGhyZXNob2xkQWJzb2x1dGU9MjAsci5jYXNlU2Vuc2l0aXZlPSExLHIubnVsbFJlc3VsdFZhbHVlPW51bGwsci5yZXR1cm5XaW5uaW5nT2JqZWN0PW51bGwsci5yZXR1cm5GaXJzdE1hdGNoPSExLHR5cGVvZiBrcyE9InVuZGVmaW5lZCImJmtzLmV4cG9ydHM/a3MuZXhwb3J0cz1yOndpbmRvdy5kaWRZb3VNZWFuPXI7dmFyIGU9TWF0aC5wb3coMiwzMiktMTtmdW5jdGlvbiB0KGksbixzKXtzPXN8fHM9PT0wP3M6ZTt2YXIgYT1pLmxlbmd0aCxvPW4ubGVuZ3RoO2lmKGE9PT0wKXJldHVybiBNYXRoLm1pbihzKzEsbyk7aWYobz09PTApcmV0dXJuIE1hdGgubWluKHMrMSxhKTtpZihNYXRoLmFicyhhLW8pPnMpcmV0dXJuIHMrMTt2YXIgbD1bXSxjLGYsZCxwLGg7Zm9yKGM9MDtjPD1vO2MrKylsW2NdPVtjXTtmb3IoZj0wO2Y8PWE7ZisrKWxbMF1bZl09Zjtmb3IoYz0xO2M8PW87YysrKXtmb3IoZD1lLHA9MSxjPnMmJihwPWMtcyksaD1vKzEsaD5zK2MmJihoPXMrYyksZj0xO2Y8PWE7ZisrKWY8cHx8Zj5oP2xbY11bZl09cysxOm4uY2hhckF0KGMtMSk9PT1pLmNoYXJBdChmLTEpP2xbY11bZl09bFtjLTFdW2YtMV06bFtjXVtmXT1NYXRoLm1pbihsW2MtMV1bZi0xXSsxLE1hdGgubWluKGxbY11bZi0xXSsxLGxbYy0xXVtmXSsxKSksbFtjXVtmXTxkJiYoZD1sW2NdW2ZdKTtpZihkPnMpcmV0dXJuIHMrMX1yZXR1cm4gbFtvXVthXX19KSgpfSk7dmFyIFFnPXgoKHNxLEdnKT0+e3UoKTt2YXIgcWw9IigiLmNoYXJDb2RlQXQoMCksJGw9IikiLmNoYXJDb2RlQXQoMCksU3M9IiciLmNoYXJDb2RlQXQoMCksTGw9JyInLmNoYXJDb2RlQXQoMCksTWw9IlxcIi5jaGFyQ29kZUF0KDApLHlyPSIvIi5jaGFyQ29kZUF0KDApLE5sPSIsIi5jaGFyQ29kZUF0KDApLEJsPSI6Ii5jaGFyQ29kZUF0KDApLEFzPSIqIi5jaGFyQ29kZUF0KDApLE0yPSJ1Ii5jaGFyQ29kZUF0KDApLE4yPSJVIi5jaGFyQ29kZUF0KDApLEIyPSIrIi5jaGFyQ29kZUF0KDApLEYyPS9eW2EtZjAtOT8tXSskL2k7R2cuZXhwb3J0cz1mdW5jdGlvbihyKXtmb3IodmFyIGU9W10sdD1yLGksbixzLGEsbyxsLGMsZixkPTAscD10LmNoYXJDb2RlQXQoZCksaD10Lmxlbmd0aCxiPVt7bm9kZXM6ZX1dLHY9MCx5LHc9IiIsaz0iIixTPSIiO2Q8aDspaWYocDw9MzIpe2k9ZDtkbyBpKz0xLHA9dC5jaGFyQ29kZUF0KGkpO3doaWxlKHA8PTMyKTthPXQuc2xpY2UoZCxpKSxzPWVbZS5sZW5ndGgtMV0scD09PSRsJiZ2P1M9YTpzJiZzLnR5cGU9PT0iZGl2Ij8ocy5hZnRlcj1hLHMuc291cmNlRW5kSW5kZXgrPWEubGVuZ3RoKTpwPT09Tmx8fHA9PT1CbHx8cD09PXlyJiZ0LmNoYXJDb2RlQXQoaSsxKSE9PUFzJiYoIXl8fHkmJnkudHlwZT09PSJmdW5jdGlvbiImJiExKT9rPWE6ZS5wdXNoKHt0eXBlOiJzcGFjZSIsc291cmNlSW5kZXg6ZCxzb3VyY2VFbmRJbmRleDppLHZhbHVlOmF9KSxkPWl9ZWxzZSBpZihwPT09U3N8fHA9PT1MbCl7aT1kLG49cD09PVNzPyInIjonIicsYT17dHlwZToic3RyaW5nIixzb3VyY2VJbmRleDpkLHF1b3RlOm59O2RvIGlmKG89ITEsaT10LmluZGV4T2YobixpKzEpLH5pKWZvcihsPWk7dC5jaGFyQ29kZUF0KGwtMSk9PT1NbDspbC09MSxvPSFvO2Vsc2UgdCs9bixpPXQubGVuZ3RoLTEsYS51bmNsb3NlZD0hMDt3aGlsZShvKTthLnZhbHVlPXQuc2xpY2UoZCsxLGkpLGEuc291cmNlRW5kSW5kZXg9YS51bmNsb3NlZD9pOmkrMSxlLnB1c2goYSksZD1pKzEscD10LmNoYXJDb2RlQXQoZCl9ZWxzZSBpZihwPT09eXImJnQuY2hhckNvZGVBdChkKzEpPT09QXMpaT10LmluZGV4T2YoIiovIixkKSxhPXt0eXBlOiJjb21tZW50Iixzb3VyY2VJbmRleDpkLHNvdXJjZUVuZEluZGV4OmkrMn0saT09PS0xJiYoYS51bmNsb3NlZD0hMCxpPXQubGVuZ3RoLGEuc291cmNlRW5kSW5kZXg9aSksYS52YWx1ZT10LnNsaWNlKGQrMixpKSxlLnB1c2goYSksZD1pKzIscD10LmNoYXJDb2RlQXQoZCk7ZWxzZSBpZigocD09PXlyfHxwPT09QXMpJiZ5JiZ5LnR5cGU9PT0iZnVuY3Rpb24iKWE9dFtkXSxlLnB1c2goe3R5cGU6IndvcmQiLHNvdXJjZUluZGV4OmQtay5sZW5ndGgsc291cmNlRW5kSW5kZXg6ZCthLmxlbmd0aCx2YWx1ZTphfSksZCs9MSxwPXQuY2hhckNvZGVBdChkKTtlbHNlIGlmKHA9PT15cnx8cD09PU5sfHxwPT09QmwpYT10W2RdLGUucHVzaCh7dHlwZToiZGl2Iixzb3VyY2VJbmRleDpkLWsubGVuZ3RoLHNvdXJjZUVuZEluZGV4OmQrYS5sZW5ndGgsdmFsdWU6YSxiZWZvcmU6ayxhZnRlcjoiIn0pLGs9IiIsZCs9MSxwPXQuY2hhckNvZGVBdChkKTtlbHNlIGlmKHFsPT09cCl7aT1kO2RvIGkrPTEscD10LmNoYXJDb2RlQXQoaSk7d2hpbGUocDw9MzIpO2lmKGY9ZCxhPXt0eXBlOiJmdW5jdGlvbiIsc291cmNlSW5kZXg6ZC13Lmxlbmd0aCx2YWx1ZTp3LGJlZm9yZTp0LnNsaWNlKGYrMSxpKX0sZD1pLHc9PT0idXJsIiYmcCE9PVNzJiZwIT09TGwpe2ktPTE7ZG8gaWYobz0hMSxpPXQuaW5kZXhPZigiKSIsaSsxKSx+aSlmb3IobD1pO3QuY2hhckNvZGVBdChsLTEpPT09TWw7KWwtPTEsbz0hbztlbHNlIHQrPSIpIixpPXQubGVuZ3RoLTEsYS51bmNsb3NlZD0hMDt3aGlsZShvKTtjPWk7ZG8gYy09MSxwPXQuY2hhckNvZGVBdChjKTt3aGlsZShwPD0zMik7ZjxjPyhkIT09YysxP2Eubm9kZXM9W3t0eXBlOiJ3b3JkIixzb3VyY2VJbmRleDpkLHNvdXJjZUVuZEluZGV4OmMrMSx2YWx1ZTp0LnNsaWNlKGQsYysxKX1dOmEubm9kZXM9W10sYS51bmNsb3NlZCYmYysxIT09aT8oYS5hZnRlcj0iIixhLm5vZGVzLnB1c2goe3R5cGU6InNwYWNlIixzb3VyY2VJbmRleDpjKzEsc291cmNlRW5kSW5kZXg6aSx2YWx1ZTp0LnNsaWNlKGMrMSxpKX0pKTooYS5hZnRlcj10LnNsaWNlKGMrMSxpKSxhLnNvdXJjZUVuZEluZGV4PWkpKTooYS5hZnRlcj0iIixhLm5vZGVzPVtdKSxkPWkrMSxhLnNvdXJjZUVuZEluZGV4PWEudW5jbG9zZWQ/aTpkLHA9dC5jaGFyQ29kZUF0KGQpLGUucHVzaChhKX1lbHNlIHYrPTEsYS5hZnRlcj0iIixhLnNvdXJjZUVuZEluZGV4PWQrMSxlLnB1c2goYSksYi5wdXNoKGEpLGU9YS5ub2Rlcz1bXSx5PWE7dz0iIn1lbHNlIGlmKCRsPT09cCYmdilkKz0xLHA9dC5jaGFyQ29kZUF0KGQpLHkuYWZ0ZXI9Uyx5LnNvdXJjZUVuZEluZGV4Kz1TLmxlbmd0aCxTPSIiLHYtPTEsYltiLmxlbmd0aC0xXS5zb3VyY2VFbmRJbmRleD1kLGIucG9wKCkseT1iW3ZdLGU9eS5ub2RlcztlbHNle2k9ZDtkbyBwPT09TWwmJihpKz0xKSxpKz0xLHA9dC5jaGFyQ29kZUF0KGkpO3doaWxlKGk8aCYmIShwPD0zMnx8cD09PVNzfHxwPT09TGx8fHA9PT1ObHx8cD09PUJsfHxwPT09eXJ8fHA9PT1xbHx8cD09PUFzJiZ5JiZ5LnR5cGU9PT0iZnVuY3Rpb24iJiYhMHx8cD09PXlyJiZ5LnR5cGU9PT0iZnVuY3Rpb24iJiYhMHx8cD09PSRsJiZ2KSk7YT10LnNsaWNlKGQsaSkscWw9PT1wP3c9YTooTTI9PT1hLmNoYXJDb2RlQXQoMCl8fE4yPT09YS5jaGFyQ29kZUF0KDApKSYmQjI9PT1hLmNoYXJDb2RlQXQoMSkmJkYyLnRlc3QoYS5zbGljZSgyKSk/ZS5wdXNoKHt0eXBlOiJ1bmljb2RlLXJhbmdlIixzb3VyY2VJbmRleDpkLHNvdXJjZUVuZEluZGV4OmksdmFsdWU6YX0pOmUucHVzaCh7dHlwZToid29yZCIsc291cmNlSW5kZXg6ZCxzb3VyY2VFbmRJbmRleDppLHZhbHVlOmF9KSxkPWl9Zm9yKGQ9Yi5sZW5ndGgtMTtkO2QtPTEpYltkXS51bmNsb3NlZD0hMCxiW2RdLnNvdXJjZUVuZEluZGV4PXQubGVuZ3RoO3JldHVybiBiWzBdLm5vZGVzfX0pO3ZhciBLZz14KChhcSxZZyk9Pnt1KCk7WWcuZXhwb3J0cz1mdW5jdGlvbiByKGUsdCxpKXt2YXIgbixzLGEsbztmb3Iobj0wLHM9ZS5sZW5ndGg7bjxzO24rPTEpYT1lW25dLGl8fChvPXQoYSxuLGUpKSxvIT09ITEmJmEudHlwZT09PSJmdW5jdGlvbiImJkFycmF5LmlzQXJyYXkoYS5ub2RlcykmJnIoYS5ub2Rlcyx0LGkpLGkmJnQoYSxuLGUpfX0pO3ZhciBleT14KChvcSxKZyk9Pnt1KCk7ZnVuY3Rpb24gWGcocixlKXt2YXIgdD1yLnR5cGUsaT1yLnZhbHVlLG4scztyZXR1cm4gZSYmKHM9ZShyKSkhPT12b2lkIDA/czp0PT09IndvcmQifHx0PT09InNwYWNlIj9pOnQ9PT0ic3RyaW5nIj8obj1yLnF1b3RlfHwiIixuK2krKHIudW5jbG9zZWQ/IiI6bikpOnQ9PT0iY29tbWVudCI/Ii8qIitpKyhyLnVuY2xvc2VkPyIiOiIqLyIpOnQ9PT0iZGl2Ij8oci5iZWZvcmV8fCIiKStpKyhyLmFmdGVyfHwiIik6QXJyYXkuaXNBcnJheShyLm5vZGVzKT8obj1aZyhyLm5vZGVzLGUpLHQhPT0iZnVuY3Rpb24iP246aSsiKCIrKHIuYmVmb3JlfHwiIikrbisoci5hZnRlcnx8IiIpKyhyLnVuY2xvc2VkPyIiOiIpIikpOml9ZnVuY3Rpb24gWmcocixlKXt2YXIgdCxpO2lmKEFycmF5LmlzQXJyYXkocikpe2Zvcih0PSIiLGk9ci5sZW5ndGgtMTt+aTtpLT0xKXQ9WGcocltpXSxlKSt0O3JldHVybiB0fXJldHVybiBYZyhyLGUpfUpnLmV4cG9ydHM9Wmd9KTt2YXIgcnk9eCgobHEsdHkpPT57dSgpO3ZhciBDcz0iLSIuY2hhckNvZGVBdCgwKSxfcz0iKyIuY2hhckNvZGVBdCgwKSxGbD0iLiIuY2hhckNvZGVBdCgwKSxqMj0iZSIuY2hhckNvZGVBdCgwKSx6Mj0iRSIuY2hhckNvZGVBdCgwKTtmdW5jdGlvbiBVMihyKXt2YXIgZT1yLmNoYXJDb2RlQXQoMCksdDtpZihlPT09X3N8fGU9PT1Dcyl7aWYodD1yLmNoYXJDb2RlQXQoMSksdD49NDgmJnQ8PTU3KXJldHVybiEwO3ZhciBpPXIuY2hhckNvZGVBdCgyKTtyZXR1cm4gdD09PUZsJiZpPj00OCYmaTw9NTd9cmV0dXJuIGU9PT1GbD8odD1yLmNoYXJDb2RlQXQoMSksdD49NDgmJnQ8PTU3KTplPj00OCYmZTw9NTd9dHkuZXhwb3J0cz1mdW5jdGlvbihyKXt2YXIgZT0wLHQ9ci5sZW5ndGgsaSxuLHM7aWYodD09PTB8fCFVMihyKSlyZXR1cm4hMTtmb3IoaT1yLmNoYXJDb2RlQXQoZSksKGk9PT1fc3x8aT09PUNzKSYmZSsrO2U8dCYmKGk9ci5jaGFyQ29kZUF0KGUpLCEoaTw0OHx8aT41NykpOyllKz0xO2lmKGk9ci5jaGFyQ29kZUF0KGUpLG49ci5jaGFyQ29kZUF0KGUrMSksaT09PUZsJiZuPj00OCYmbjw9NTcpZm9yKGUrPTI7ZTx0JiYoaT1yLmNoYXJDb2RlQXQoZSksIShpPDQ4fHxpPjU3KSk7KWUrPTE7aWYoaT1yLmNoYXJDb2RlQXQoZSksbj1yLmNoYXJDb2RlQXQoZSsxKSxzPXIuY2hhckNvZGVBdChlKzIpLChpPT09ajJ8fGk9PT16MikmJihuPj00OCYmbjw9NTd8fChuPT09X3N8fG49PT1DcykmJnM+PTQ4JiZzPD01NykpZm9yKGUrPW49PT1fc3x8bj09PUNzPzM6MjtlPHQmJihpPXIuY2hhckNvZGVBdChlKSwhKGk8NDh8fGk+NTcpKTspZSs9MTtyZXR1cm57bnVtYmVyOnIuc2xpY2UoMCxlKSx1bml0OnIuc2xpY2UoZSl9fX0pO3ZhciBheT14KCh1cSxzeSk9Pnt1KCk7dmFyIFYyPVFnKCksaXk9S2coKSxueT1leSgpO2Z1bmN0aW9uICR0KHIpe3JldHVybiB0aGlzIGluc3RhbmNlb2YgJHQ/KHRoaXMubm9kZXM9VjIociksdGhpcyk6bmV3ICR0KHIpfSR0LnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiBBcnJheS5pc0FycmF5KHRoaXMubm9kZXMpP255KHRoaXMubm9kZXMpOiIifTskdC5wcm90b3R5cGUud2Fsaz1mdW5jdGlvbihyLGUpe3JldHVybiBpeSh0aGlzLm5vZGVzLHIsZSksdGhpc307JHQudW5pdD1yeSgpOyR0LndhbGs9aXk7JHQuc3RyaW5naWZ5PW55O3N5LmV4cG9ydHM9JHR9KTtmdW5jdGlvbiB6bChyKXtyZXR1cm4gdHlwZW9mIHI9PSJvYmplY3QiJiZyIT09bnVsbH1mdW5jdGlvbiBIMihyLGUpe2xldCB0PWt0KGUpO2RvIGlmKHQucG9wKCksKDAsTWkuZGVmYXVsdCkocix0KSE9PXZvaWQgMClicmVhazt3aGlsZSh0Lmxlbmd0aCk7cmV0dXJuIHQubGVuZ3RoP3Q6dm9pZCAwfWZ1bmN0aW9uIGJyKHIpe3JldHVybiB0eXBlb2Ygcj09InN0cmluZyI/cjpyLnJlZHVjZSgoZSx0LGkpPT50LmluY2x1ZGVzKCIuIik/YCR7ZX1bJHt0fV1gOmk9PT0wP3Q6YCR7ZX0uJHt0fWAsIiIpfWZ1bmN0aW9uIGx5KHIpe3JldHVybiByLm1hcChlPT5gJyR7ZX0nYCkuam9pbigiLCAiKX1mdW5jdGlvbiB1eShyKXtyZXR1cm4gbHkoT2JqZWN0LmtleXMocikpfWZ1bmN0aW9uIFVsKHIsZSx0LGk9e30pe2xldCBuPUFycmF5LmlzQXJyYXkoZSk/YnIoZSk6ZS5yZXBsYWNlKC9eWyciXSt8WyciXSskL2csIiIpLHM9QXJyYXkuaXNBcnJheShlKT9lOmt0KG4pLGE9KDAsTWkuZGVmYXVsdCkoci50aGVtZSxzLHQpO2lmKGE9PT12b2lkIDApe2xldCBsPWAnJHtufScgZG9lcyBub3QgZXhpc3QgaW4geW91ciB0aGVtZSBjb25maWcuYCxjPXMuc2xpY2UoMCwtMSksZj0oMCxNaS5kZWZhdWx0KShyLnRoZW1lLGMpO2lmKHpsKGYpKXtsZXQgZD1PYmplY3Qua2V5cyhmKS5maWx0ZXIoaD0+VWwocixbLi4uYyxoXSkuaXNWYWxpZCkscD0oMCxveS5kZWZhdWx0KShzW3MubGVuZ3RoLTFdLGQpO3A/bCs9YCBEaWQgeW91IG1lYW4gJyR7YnIoWy4uLmMscF0pfSc/YDpkLmxlbmd0aD4wJiYobCs9YCAnJHticihjKX0nIGhhcyB0aGUgZm9sbG93aW5nIHZhbGlkIGtleXM6ICR7bHkoZCl9YCl9ZWxzZXtsZXQgZD1IMihyLnRoZW1lLG4pO2lmKGQpe2xldCBwPSgwLE1pLmRlZmF1bHQpKHIudGhlbWUsZCk7emwocCk/bCs9YCAnJHticihkKX0nIGhhcyB0aGUgZm9sbG93aW5nIGtleXM6ICR7dXkocCl9YDpsKz1gICcke2JyKGQpfScgaXMgbm90IGFuIG9iamVjdC5gfWVsc2UgbCs9YCBZb3VyIHRoZW1lIGhhcyB0aGUgZm9sbG93aW5nIHRvcC1sZXZlbCBrZXlzOiAke3V5KHIudGhlbWUpfWB9cmV0dXJue2lzVmFsaWQ6ITEsZXJyb3I6bH19aWYoISh0eXBlb2YgYT09InN0cmluZyJ8fHR5cGVvZiBhPT0ibnVtYmVyInx8dHlwZW9mIGE9PSJmdW5jdGlvbiJ8fGEgaW5zdGFuY2VvZiBTdHJpbmd8fGEgaW5zdGFuY2VvZiBOdW1iZXJ8fEFycmF5LmlzQXJyYXkoYSkpKXtsZXQgbD1gJyR7bn0nIHdhcyBmb3VuZCBidXQgZG9lcyBub3QgcmVzb2x2ZSB0byBhIHN0cmluZy5gO2lmKHpsKGEpKXtsZXQgYz1PYmplY3Qua2V5cyhhKS5maWx0ZXIoZj0+VWwocixbLi4ucyxmXSkuaXNWYWxpZCk7Yy5sZW5ndGgmJihsKz1gIERpZCB5b3UgbWVhbiBzb21ldGhpbmcgbGlrZSAnJHticihbLi4ucyxjWzBdXSl9Jz9gKX1yZXR1cm57aXNWYWxpZDohMSxlcnJvcjpsfX1sZXRbb109cztyZXR1cm57aXNWYWxpZDohMCx2YWx1ZTptdChvKShhLGkpfX1mdW5jdGlvbiBXMihyLGUsdCl7ZT1lLm1hcChuPT5meShyLG4sdCkpO2xldCBpPVsiIl07Zm9yKGxldCBuIG9mIGUpbi50eXBlPT09ImRpdiImJm4udmFsdWU9PT0iLCI/aS5wdXNoKCIiKTppW2kubGVuZ3RoLTFdKz1qbC5kZWZhdWx0LnN0cmluZ2lmeShuKTtyZXR1cm4gaX1mdW5jdGlvbiBmeShyLGUsdCl7aWYoZS50eXBlPT09ImZ1bmN0aW9uIiYmdFtlLnZhbHVlXSE9PXZvaWQgMCl7bGV0IGk9VzIocixlLm5vZGVzLHQpO2UudHlwZT0id29yZCIsZS52YWx1ZT10W2UudmFsdWVdKHIsLi4uaSl9cmV0dXJuIGV9ZnVuY3Rpb24gRzIocixlLHQpe3JldHVybiBPYmplY3Qua2V5cyh0KS5zb21lKG49PmUuaW5jbHVkZXMoYCR7bn0oYCkpPygwLGpsLmRlZmF1bHQpKGUpLndhbGsobj0+e2Z5KHIsbix0KX0pLnRvU3RyaW5nKCk6ZX1mdW5jdGlvbipZMihyKXtyPXIucmVwbGFjZSgvXlsnIl0rfFsnIl0rJC9nLCIiKTtsZXQgZT1yLm1hdGNoKC9eKFteXHNdKykoPyFbXlxbXSpcXSkoPzpccypcL1xzKihbXlwvXHNdKykpJC8pLHQ7eWllbGRbcix2b2lkIDBdLGUmJihyPWVbMV0sdD1lWzJdLHlpZWxkW3IsdF0pfWZ1bmN0aW9uIEsyKHIsZSx0KXtsZXQgaT1BcnJheS5mcm9tKFkyKGUpKS5tYXAoKFtuLHNdKT0+T2JqZWN0LmFzc2lnbihVbChyLG4sdCx7b3BhY2l0eVZhbHVlOnN9KSx7cmVzb2x2ZWRQYXRoOm4sYWxwaGE6c30pKTtyZXR1cm4gaS5maW5kKG49Pm4uaXNWYWxpZCk/P2lbMF19ZnVuY3Rpb24gY3kocil7bGV0IGU9ci50YWlsd2luZENvbmZpZyx0PXt0aGVtZTooaSxuLC4uLnMpPT57bGV0e2lzVmFsaWQ6YSx2YWx1ZTpvLGVycm9yOmwsYWxwaGE6Y309SzIoZSxuLHMubGVuZ3RoP3M6dm9pZCAwKTtpZighYSl7bGV0IHA9aS5wYXJlbnQsaD1wPy5yYXdzLnRhaWx3aW5kPy5jYW5kaWRhdGU7aWYocCYmaCE9PXZvaWQgMCl7ci5tYXJrSW52YWxpZFV0aWxpdHlOb2RlKHApLHAucmVtb3ZlKCksRy53YXJuKCJpbnZhbGlkLXRoZW1lLWtleS1pbi1jbGFzcyIsW2BUaGUgdXRpbGl0eSBcYCR7aH1cYCBjb250YWlucyBhbiBpbnZhbGlkIHRoZW1lIHZhbHVlIGFuZCB3YXMgbm90IGdlbmVyYXRlZC5gXSk7cmV0dXJufXRocm93IGkuZXJyb3IobCl9bGV0IGY9WHQobyksZD1mIT09dm9pZCAwJiZ0eXBlb2YgZj09ImZ1bmN0aW9uIjtyZXR1cm4oYyE9PXZvaWQgMHx8ZCkmJihjPT09dm9pZCAwJiYoYz0xKSxvPUplKGYsYyxmKSksb30sc2NyZWVuOihpLG4pPT57bj1uLnJlcGxhY2UoL15bJyJdKy9nLCIiKS5yZXBsYWNlKC9bJyJdKyQvZywiIik7bGV0IGE9UnQoZS50aGVtZS5zY3JlZW5zKS5maW5kKCh7bmFtZTpvfSk9Pm89PT1uKTtpZighYSl0aHJvdyBpLmVycm9yKGBUaGUgJyR7bn0nIHNjcmVlbiBkb2VzIG5vdCBleGlzdCBpbiB5b3VyIHRoZW1lLmApO3JldHVybiBUdChhKX19O3JldHVybiBpPT57aS53YWxrKG49PntsZXQgcz1RMltuLnR5cGVdO3MhPT12b2lkIDAmJihuW3NdPUcyKG4sbltzXSx0KSl9KX19dmFyIE1pLG95LGpsLFEyLHB5PVAoKCk9Pnt1KCk7TWk9cGUoUmEoKSksb3k9cGUoV2coKSk7Q2koKTtqbD1wZShheSgpKTtabigpO1luKCk7WWkoKTtMcigpO0ZyKCk7QmUoKTtRMj17YXRydWxlOiJwYXJhbXMiLGRlY2w6InZhbHVlIn19KTtmdW5jdGlvbiBkeSh7dGFpbHdpbmRDb25maWc6e3RoZW1lOnJ9fSl7cmV0dXJuIGZ1bmN0aW9uKGUpe2Uud2Fsa0F0UnVsZXMoInNjcmVlbiIsdD0+e2xldCBpPXQucGFyYW1zLHM9UnQoci5zY3JlZW5zKS5maW5kKCh7bmFtZTphfSk9PmE9PT1pKTtpZighcyl0aHJvdyB0LmVycm9yKGBObyBcYCR7aX1cYCBzY3JlZW4gZm91bmQuYCk7dC5uYW1lPSJtZWRpYSIsdC5wYXJhbXM9VHQocyl9KX19dmFyIGh5PVAoKCk9Pnt1KCk7Wm4oKTtZbigpfSk7ZnVuY3Rpb24gWDIocil7bGV0IGU9ci5maWx0ZXIobz0+by50eXBlIT09InBzZXVkbyJ8fG8ubm9kZXMubGVuZ3RoPjA/ITA6by52YWx1ZS5zdGFydHNXaXRoKCI6OiIpfHxbIjpiZWZvcmUiLCI6YWZ0ZXIiLCI6Zmlyc3QtbGluZSIsIjpmaXJzdC1sZXR0ZXIiXS5pbmNsdWRlcyhvLnZhbHVlKSkucmV2ZXJzZSgpLHQ9bmV3IFNldChbInRhZyIsImNsYXNzIiwiaWQiLCJhdHRyaWJ1dGUiXSksaT1lLmZpbmRJbmRleChvPT50LmhhcyhvLnR5cGUpKTtpZihpPT09LTEpcmV0dXJuIGUucmV2ZXJzZSgpLmpvaW4oIiIpLnRyaW0oKTtsZXQgbj1lW2ldLHM9bXlbbi50eXBlXT9teVtuLnR5cGVdKG4pOm47ZT1lLnNsaWNlKDAsaSk7bGV0IGE9ZS5maW5kSW5kZXgobz0+by50eXBlPT09ImNvbWJpbmF0b3IiJiZvLnZhbHVlPT09Ij4iKTtyZXR1cm4gYSE9PS0xJiYoZS5zcGxpY2UoMCxhKSxlLnVuc2hpZnQoRXMuZGVmYXVsdC51bml2ZXJzYWwoKSkpLFtzLC4uLmUucmV2ZXJzZSgpXS5qb2luKCIiKS50cmltKCl9ZnVuY3Rpb24gSjIocil7cmV0dXJuIFZsLmhhcyhyKXx8Vmwuc2V0KHIsWjIudHJhbnNmb3JtU3luYyhyKSksVmwuZ2V0KHIpfWZ1bmN0aW9uIEhsKHt0YWlsd2luZENvbmZpZzpyfSl7cmV0dXJuIGU9PntsZXQgdD1uZXcgTWFwLGk9bmV3IFNldDtpZihlLndhbGtBdFJ1bGVzKCJkZWZhdWx0cyIsbj0+e2lmKG4ubm9kZXMmJm4ubm9kZXMubGVuZ3RoPjApe2kuYWRkKG4pO3JldHVybn1sZXQgcz1uLnBhcmFtczt0LmhhcyhzKXx8dC5zZXQocyxuZXcgU2V0KSx0LmdldChzKS5hZGQobi5wYXJlbnQpLG4ucmVtb3ZlKCl9KSx3ZShyLCJvcHRpbWl6ZVVuaXZlcnNhbERlZmF1bHRzIikpZm9yKGxldCBuIG9mIGkpe2xldCBzPW5ldyBNYXAsYT10LmdldChuLnBhcmFtcyk/P1tdO2ZvcihsZXQgbyBvZiBhKWZvcihsZXQgbCBvZiBKMihvLnNlbGVjdG9yKSl7bGV0IGM9bC5pbmNsdWRlcygiOi0iKXx8bC5pbmNsdWRlcygiOjotIil8fGwuaW5jbHVkZXMoIjpoYXMiKT9sOiJfX0RFRkFVTFRfXyIsZj1zLmdldChjKT8/bmV3IFNldDtzLnNldChjLGYpLGYuYWRkKGwpfWlmKHMuc2l6ZT09PTApe24ucmVtb3ZlKCk7Y29udGludWV9Zm9yKGxldFssb11vZiBzKXtsZXQgbD1lZS5ydWxlKHtzb3VyY2U6bi5zb3VyY2V9KTtsLnNlbGVjdG9ycz1bLi4ub10sbC5hcHBlbmQobi5ub2Rlcy5tYXAoYz0+Yy5jbG9uZSgpKSksbi5iZWZvcmUobCl9bi5yZW1vdmUoKX1lbHNlIGlmKGkuc2l6ZSl7bGV0IG49ZWUucnVsZSh7c2VsZWN0b3JzOlsiKiIsIjo6YmVmb3JlIiwiOjphZnRlciJdfSk7Zm9yKGxldCBhIG9mIGkpbi5hcHBlbmQoYS5ub2Rlcyksbi5wYXJlbnR8fGEuYmVmb3JlKG4pLG4uc291cmNlfHwobi5zb3VyY2U9YS5zb3VyY2UpLGEucmVtb3ZlKCk7bGV0IHM9bi5jbG9uZSh7c2VsZWN0b3JzOlsiOjpiYWNrZHJvcCJdfSk7bi5hZnRlcihzKX19fXZhciBFcyxteSxaMixWbCxneT1QKCgpPT57dSgpO090KCk7RXM9cGUoaXQoKSk7Y3QoKTtteT17aWQocil7cmV0dXJuIEVzLmRlZmF1bHQuYXR0cmlidXRlKHthdHRyaWJ1dGU6ImlkIixvcGVyYXRvcjoiPSIsdmFsdWU6ci52YWx1ZSxxdW90ZU1hcms6JyInfSl9fTtaMj0oMCxFcy5kZWZhdWx0KShyPT5yLm1hcChlPT57bGV0IHQ9ZS5zcGxpdChpPT5pLnR5cGU9PT0iY29tYmluYXRvciImJmkudmFsdWU9PT0iICIpLnBvcCgpO3JldHVybiBYMih0KX0pKSxWbD1uZXcgTWFwfSk7ZnVuY3Rpb24gV2woKXtmdW5jdGlvbiByKGUpe2xldCB0PW51bGw7ZS5lYWNoKGk9PntpZighZU8uaGFzKGkudHlwZSkpe3Q9bnVsbDtyZXR1cm59aWYodD09PW51bGwpe3Q9aTtyZXR1cm59bGV0IG49eXlbaS50eXBlXTtpLnR5cGU9PT0iYXRydWxlIiYmaS5uYW1lPT09ImZvbnQtZmFjZSI/dD1pOm4uZXZlcnkocz0+KGlbc10/PyIiKS5yZXBsYWNlKC9ccysvZywiICIpPT09KHRbc10/PyIiKS5yZXBsYWNlKC9ccysvZywiICIpKT8oaS5ub2RlcyYmdC5hcHBlbmQoaS5ub2RlcyksaS5yZW1vdmUoKSk6dD1pfSksZS5lYWNoKGk9PntpLnR5cGU9PT0iYXRydWxlIiYmcihpKX0pfXJldHVybiBlPT57cihlKX19dmFyIHl5LGVPLGJ5PVAoKCk9Pnt1KCk7eXk9e2F0cnVsZTpbIm5hbWUiLCJwYXJhbXMiXSxydWxlOlsic2VsZWN0b3IiXX0sZU89bmV3IFNldChPYmplY3Qua2V5cyh5eSkpfSk7ZnVuY3Rpb24gR2woKXtyZXR1cm4gcj0+e3Iud2Fsa1J1bGVzKGU9PntsZXQgdD1uZXcgTWFwLGk9bmV3IFNldChbXSksbj1uZXcgTWFwO2Uud2Fsa0RlY2xzKHM9PntpZihzLnBhcmVudD09PWUpe2lmKHQuaGFzKHMucHJvcCkpe2lmKHQuZ2V0KHMucHJvcCkudmFsdWU9PT1zLnZhbHVlKXtpLmFkZCh0LmdldChzLnByb3ApKSx0LnNldChzLnByb3Ascyk7cmV0dXJufW4uaGFzKHMucHJvcCl8fG4uc2V0KHMucHJvcCxuZXcgU2V0KSxuLmdldChzLnByb3ApLmFkZCh0LmdldChzLnByb3ApKSxuLmdldChzLnByb3ApLmFkZChzKX10LnNldChzLnByb3Ascyl9fSk7Zm9yKGxldCBzIG9mIGkpcy5yZW1vdmUoKTtmb3IobGV0IHMgb2Ygbi52YWx1ZXMoKSl7bGV0IGE9bmV3IE1hcDtmb3IobGV0IG8gb2Ygcyl7bGV0IGw9ck8oby52YWx1ZSk7bCE9PW51bGwmJihhLmhhcyhsKXx8YS5zZXQobCxuZXcgU2V0KSxhLmdldChsKS5hZGQobykpfWZvcihsZXQgbyBvZiBhLnZhbHVlcygpKXtsZXQgbD1BcnJheS5mcm9tKG8pLnNsaWNlKDAsLTEpO2ZvcihsZXQgYyBvZiBsKWMucmVtb3ZlKCl9fX0pfX1mdW5jdGlvbiByTyhyKXtsZXQgZT0vXi0/XGQqLj9cZCsoW1x3JV0rKT8kL2cuZXhlYyhyKTtyZXR1cm4gZT9lWzFdPz90TzpudWxsfXZhciB0Tyx3eT1QKCgpPT57dSgpO3RPPVN5bWJvbCgidW5pdGxlc3MtbnVtYmVyIil9KTtmdW5jdGlvbiBpTyhyKXtpZighci53YWxrQXRSdWxlcylyZXR1cm47bGV0IGU9bmV3IFNldDtpZihyLndhbGtBdFJ1bGVzKCJhcHBseSIsdD0+e2UuYWRkKHQucGFyZW50KX0pLGUuc2l6ZSE9PTApZm9yKGxldCB0IG9mIGUpe2xldCBpPVtdLG49W107Zm9yKGxldCBzIG9mIHQubm9kZXMpcy50eXBlPT09ImF0cnVsZSImJnMubmFtZT09PSJhcHBseSI/KG4ubGVuZ3RoPjAmJihpLnB1c2gobiksbj1bXSksaS5wdXNoKFtzXSkpOm4ucHVzaChzKTtpZihuLmxlbmd0aD4wJiZpLnB1c2gobiksaS5sZW5ndGghPT0xKXtmb3IobGV0IHMgb2ZbLi4uaV0ucmV2ZXJzZSgpKXtsZXQgYT10LmNsb25lKHtub2RlczpbXX0pO2EuYXBwZW5kKHMpLHQuYWZ0ZXIoYSl9dC5yZW1vdmUoKX19fWZ1bmN0aW9uIE9zKCl7cmV0dXJuIHI9PntpTyhyKX19dmFyIHZ5PVAoKCk9Pnt1KCl9KTtmdW5jdGlvbiBUcyhyKXtyZXR1cm4gYXN5bmMgZnVuY3Rpb24oZSx0KXtsZXR7dGFpbHdpbmREaXJlY3RpdmVzOmksYXBwbHlEaXJlY3RpdmVzOm59PU9sKGUpO09zKCkoZSx0KTtsZXQgcz1yKHt0YWlsd2luZERpcmVjdGl2ZXM6aSxhcHBseURpcmVjdGl2ZXM6bixyZWdpc3RlckRlcGVuZGVuY3koYSl7dC5tZXNzYWdlcy5wdXNoKHtwbHVnaW46InRhaWx3aW5kY3NzIixwYXJlbnQ6dC5vcHRzLmZyb20sLi4uYX0pfSxjcmVhdGVDb250ZXh0KGEsbyl7cmV0dXJuIGlsKGEsbyxlKX19KShlLHQpO2lmKHMudGFpbHdpbmRDb25maWcuc2VwYXJhdG9yPT09Ii0iKXRocm93IG5ldyBFcnJvcigiVGhlICctJyBjaGFyYWN0ZXIgY2Fubm90IGJlIHVzZWQgYXMgYSBjdXN0b20gc2VwYXJhdG9yIGluIEpJVCBtb2RlIGR1ZSB0byBwYXJzaW5nIGFtYmlndWl0eS4gUGxlYXNlIHVzZSBhbm90aGVyIGNoYXJhY3RlciBsaWtlICdfJyBpbnN0ZWFkLiIpO1JmKHMudGFpbHdpbmRDb25maWcpLGF3YWl0IFBsKHMpKGUsdCksT3MoKShlLHQpLERsKHMpKGUsdCksY3kocykoZSx0KSxkeShzKShlLHQpLEhsKHMpKGUsdCksV2wocykoZSx0KSxHbChzKShlLHQpfX12YXIgeHk9UCgoKT0+e3UoKTtPZygpO0JnKCk7SGcoKTtweSgpO2h5KCk7Z3koKTtieSgpO3d5KCk7dnkoKTtPaSgpO2N0KCl9KTtmdW5jdGlvbiBreShyLGUpe2xldCB0PW51bGwsaT1udWxsO3JldHVybiByLndhbGtBdFJ1bGVzKCJjb25maWciLG49PntpZihpPW4uc291cmNlPy5pbnB1dC5maWxlPz9lLm9wdHMuZnJvbT8/bnVsbCxpPT09bnVsbCl0aHJvdyBuLmVycm9yKCJUaGUgYEBjb25maWdgIGRpcmVjdGl2ZSBjYW5ub3QgYmUgdXNlZCB3aXRob3V0IHNldHRpbmcgYGZyb21gIGluIHlvdXIgUG9zdENTUyBjb25maWcuIik7aWYodCl0aHJvdyBuLmVycm9yKCJPbmx5IG9uZSBgQGNvbmZpZ2AgZGlyZWN0aXZlIGlzIGFsbG93ZWQgcGVyIGZpbGUuIik7bGV0IHM9bi5wYXJhbXMubWF0Y2goLyhbJyJdKSguKj8pXDEvKTtpZighcyl0aHJvdyBuLmVycm9yKCJBIHBhdGggaXMgcmVxdWlyZWQgd2hlbiB1c2luZyB0aGUgYEBjb25maWdgIGRpcmVjdGl2ZS4iKTtsZXQgYT1zWzJdO2lmKG1lLmlzQWJzb2x1dGUoYSkpdGhyb3cgbi5lcnJvcigiVGhlIGBAY29uZmlnYCBkaXJlY3RpdmUgY2Fubm90IGJlIHVzZWQgd2l0aCBhbiBhYnNvbHV0ZSBwYXRoLiIpO2lmKHQ9bWUucmVzb2x2ZShtZS5kaXJuYW1lKGkpLGEpLCFiZS5leGlzdHNTeW5jKHQpKXRocm93IG4uZXJyb3IoYFRoZSBjb25maWcgZmlsZSBhdCAiJHthfSIgZG9lcyBub3QgZXhpc3QuIE1ha2Ugc3VyZSB0aGUgcGF0aCBpcyBjb3JyZWN0IGFuZCB0aGUgZmlsZSBleGlzdHMuYCk7bi5yZW1vdmUoKX0pLHR8fG51bGx9dmFyIFN5PVAoKCk9Pnt1KCk7ZnQoKTtldCgpfSk7dmFyIEF5PXgoKFdxLFFsKT0+e3UoKTtFZygpO3h5KCk7SXQoKTtTeSgpO1FsLmV4cG9ydHM9ZnVuY3Rpb24oZSl7cmV0dXJue3Bvc3Rjc3NQbHVnaW46InRhaWx3aW5kY3NzIixwbHVnaW5zOltaZS5ERUJVRyYmZnVuY3Rpb24odCl7cmV0dXJuIGNvbnNvbGUubG9nKGAKYCksY29uc29sZS50aW1lKCJKSVQgVE9UQUwiKSx0fSxhc3luYyBmdW5jdGlvbih0LGkpe2U9a3kodCxpKT8/ZTtsZXQgbj1FbChlKTtpZih0LnR5cGU9PT0iZG9jdW1lbnQiKXtsZXQgcz10Lm5vZGVzLmZpbHRlcihhPT5hLnR5cGU9PT0icm9vdCIpO2ZvcihsZXQgYSBvZiBzKWEudHlwZT09PSJyb290IiYmYXdhaXQgVHMobikoYSxpKTtyZXR1cm59YXdhaXQgVHMobikodCxpKX0sWmUuREVCVUcmJmZ1bmN0aW9uKHQpe3JldHVybiBjb25zb2xlLnRpbWVFbmQoIkpJVCBUT1RBTCIpLGNvbnNvbGUubG9nKGAKYCksdH1dLmZpbHRlcihCb29sZWFuKX19O1FsLmV4cG9ydHMucG9zdGNzcz0hMH0pO3ZhciBfeT14KChHcSxDeSk9Pnt1KCk7Q3kuZXhwb3J0cz1BeSgpfSk7dmFyIFlsPXgoKFFxLEV5KT0+e3UoKTtFeS5leHBvcnRzPSgpPT5bImFuZF9jaHIgMTE0IiwiYW5kX3VjIDE1LjUiLCJjaHJvbWUgMTE0IiwiY2hyb21lIDExMyIsImNocm9tZSAxMDkiLCJlZGdlIDExNCIsImZpcmVmb3ggMTE0IiwiaW9zX3NhZiAxNi41IiwiaW9zX3NhZiAxNi40IiwiaW9zX3NhZiAxNi4zIiwiaW9zX3NhZiAxNi4xIiwib3BlcmEgOTkiLCJzYWZhcmkgMTYuNSIsInNhbXN1bmcgMjEiXX0pO3ZhciBScz17fTtHZShScyx7YWdlbnRzOigpPT5uTyxmZWF0dXJlOigpPT5zT30pO2Z1bmN0aW9uIHNPKCl7cmV0dXJue3N0YXR1czoiY3IiLHRpdGxlOiJDU1MgRmVhdHVyZSBRdWVyaWVzIixzdGF0czp7aWU6eyI2IjoibiIsIjciOiJuIiwiOCI6Im4iLCI5IjoibiIsIjEwIjoibiIsIjExIjoibiIsIjUuNSI6Im4ifSxlZGdlOnsiMTIiOiJ5IiwiMTMiOiJ5IiwiMTQiOiJ5IiwiMTUiOiJ5IiwiMTYiOiJ5IiwiMTciOiJ5IiwiMTgiOiJ5IiwiNzkiOiJ5IiwiODAiOiJ5IiwiODEiOiJ5IiwiODMiOiJ5IiwiODQiOiJ5IiwiODUiOiJ5IiwiODYiOiJ5IiwiODciOiJ5IiwiODgiOiJ5IiwiODkiOiJ5IiwiOTAiOiJ5IiwiOTEiOiJ5IiwiOTIiOiJ5IiwiOTMiOiJ5IiwiOTQiOiJ5IiwiOTUiOiJ5IiwiOTYiOiJ5IiwiOTciOiJ5IiwiOTgiOiJ5IiwiOTkiOiJ5IiwiMTAwIjoieSIsIjEwMSI6InkiLCIxMDIiOiJ5IiwiMTAzIjoieSIsIjEwNCI6InkiLCIxMDUiOiJ5IiwiMTA2IjoieSIsIjEwNyI6InkiLCIxMDgiOiJ5IiwiMTA5IjoieSIsIjExMCI6InkiLCIxMTEiOiJ5IiwiMTEyIjoieSIsIjExMyI6InkiLCIxMTQiOiJ5In0sZmlyZWZveDp7IjIiOiJuIiwiMyI6Im4iLCI0IjoibiIsIjUiOiJuIiwiNiI6Im4iLCI3IjoibiIsIjgiOiJuIiwiOSI6Im4iLCIxMCI6Im4iLCIxMSI6Im4iLCIxMiI6Im4iLCIxMyI6Im4iLCIxNCI6Im4iLCIxNSI6Im4iLCIxNiI6Im4iLCIxNyI6Im4iLCIxOCI6Im4iLCIxOSI6Im4iLCIyMCI6Im4iLCIyMSI6Im4iLCIyMiI6InkiLCIyMyI6InkiLCIyNCI6InkiLCIyNSI6InkiLCIyNiI6InkiLCIyNyI6InkiLCIyOCI6InkiLCIyOSI6InkiLCIzMCI6InkiLCIzMSI6InkiLCIzMiI6InkiLCIzMyI6InkiLCIzNCI6InkiLCIzNSI6InkiLCIzNiI6InkiLCIzNyI6InkiLCIzOCI6InkiLCIzOSI6InkiLCI0MCI6InkiLCI0MSI6InkiLCI0MiI6InkiLCI0MyI6InkiLCI0NCI6InkiLCI0NSI6InkiLCI0NiI6InkiLCI0NyI6InkiLCI0OCI6InkiLCI0OSI6InkiLCI1MCI6InkiLCI1MSI6InkiLCI1MiI6InkiLCI1MyI6InkiLCI1NCI6InkiLCI1NSI6InkiLCI1NiI6InkiLCI1NyI6InkiLCI1OCI6InkiLCI1OSI6InkiLCI2MCI6InkiLCI2MSI6InkiLCI2MiI6InkiLCI2MyI6InkiLCI2NCI6InkiLCI2NSI6InkiLCI2NiI6InkiLCI2NyI6InkiLCI2OCI6InkiLCI2OSI6InkiLCI3MCI6InkiLCI3MSI6InkiLCI3MiI6InkiLCI3MyI6InkiLCI3NCI6InkiLCI3NSI6InkiLCI3NiI6InkiLCI3NyI6InkiLCI3OCI6InkiLCI3OSI6InkiLCI4MCI6InkiLCI4MSI6InkiLCI4MiI6InkiLCI4MyI6InkiLCI4NCI6InkiLCI4NSI6InkiLCI4NiI6InkiLCI4NyI6InkiLCI4OCI6InkiLCI4OSI6InkiLCI5MCI6InkiLCI5MSI6InkiLCI5MiI6InkiLCI5MyI6InkiLCI5NCI6InkiLCI5NSI6InkiLCI5NiI6InkiLCI5NyI6InkiLCI5OCI6InkiLCI5OSI6InkiLCIxMDAiOiJ5IiwiMTAxIjoieSIsIjEwMiI6InkiLCIxMDMiOiJ5IiwiMTA0IjoieSIsIjEwNSI6InkiLCIxMDYiOiJ5IiwiMTA3IjoieSIsIjEwOCI6InkiLCIxMDkiOiJ5IiwiMTEwIjoieSIsIjExMSI6InkiLCIxMTIiOiJ5IiwiMTEzIjoieSIsIjExNCI6InkiLCIxMTUiOiJ5IiwiMTE2IjoieSIsIjExNyI6InkiLCIzLjUiOiJuIiwiMy42IjoibiJ9LGNocm9tZTp7IjQiOiJuIiwiNSI6Im4iLCI2IjoibiIsIjciOiJuIiwiOCI6Im4iLCI5IjoibiIsIjEwIjoibiIsIjExIjoibiIsIjEyIjoibiIsIjEzIjoibiIsIjE0IjoibiIsIjE1IjoibiIsIjE2IjoibiIsIjE3IjoibiIsIjE4IjoibiIsIjE5IjoibiIsIjIwIjoibiIsIjIxIjoibiIsIjIyIjoibiIsIjIzIjoibiIsIjI0IjoibiIsIjI1IjoibiIsIjI2IjoibiIsIjI3IjoibiIsIjI4IjoieSIsIjI5IjoieSIsIjMwIjoieSIsIjMxIjoieSIsIjMyIjoieSIsIjMzIjoieSIsIjM0IjoieSIsIjM1IjoieSIsIjM2IjoieSIsIjM3IjoieSIsIjM4IjoieSIsIjM5IjoieSIsIjQwIjoieSIsIjQxIjoieSIsIjQyIjoieSIsIjQzIjoieSIsIjQ0IjoieSIsIjQ1IjoieSIsIjQ2IjoieSIsIjQ3IjoieSIsIjQ4IjoieSIsIjQ5IjoieSIsIjUwIjoieSIsIjUxIjoieSIsIjUyIjoieSIsIjUzIjoieSIsIjU0IjoieSIsIjU1IjoieSIsIjU2IjoieSIsIjU3IjoieSIsIjU4IjoieSIsIjU5IjoieSIsIjYwIjoieSIsIjYxIjoieSIsIjYyIjoieSIsIjYzIjoieSIsIjY0IjoieSIsIjY1IjoieSIsIjY2IjoieSIsIjY3IjoieSIsIjY4IjoieSIsIjY5IjoieSIsIjcwIjoieSIsIjcxIjoieSIsIjcyIjoieSIsIjczIjoieSIsIjc0IjoieSIsIjc1IjoieSIsIjc2IjoieSIsIjc3IjoieSIsIjc4IjoieSIsIjc5IjoieSIsIjgwIjoieSIsIjgxIjoieSIsIjgzIjoieSIsIjg0IjoieSIsIjg1IjoieSIsIjg2IjoieSIsIjg3IjoieSIsIjg4IjoieSIsIjg5IjoieSIsIjkwIjoieSIsIjkxIjoieSIsIjkyIjoieSIsIjkzIjoieSIsIjk0IjoieSIsIjk1IjoieSIsIjk2IjoieSIsIjk3IjoieSIsIjk4IjoieSIsIjk5IjoieSIsIjEwMCI6InkiLCIxMDEiOiJ5IiwiMTAyIjoieSIsIjEwMyI6InkiLCIxMDQiOiJ5IiwiMTA1IjoieSIsIjEwNiI6InkiLCIxMDciOiJ5IiwiMTA4IjoieSIsIjEwOSI6InkiLCIxMTAiOiJ5IiwiMTExIjoieSIsIjExMiI6InkiLCIxMTMiOiJ5IiwiMTE0IjoieSIsIjExNSI6InkiLCIxMTYiOiJ5IiwiMTE3IjoieSJ9LHNhZmFyaTp7IjQiOiJuIiwiNSI6Im4iLCI2IjoibiIsIjciOiJuIiwiOCI6Im4iLCI5IjoieSIsIjEwIjoieSIsIjExIjoieSIsIjEyIjoieSIsIjEzIjoieSIsIjE0IjoieSIsIjE1IjoieSIsIjE3IjoieSIsIjkuMSI6InkiLCIxMC4xIjoieSIsIjExLjEiOiJ5IiwiMTIuMSI6InkiLCIxMy4xIjoieSIsIjE0LjEiOiJ5IiwiMTUuMSI6InkiLCIxNS4yLTE1LjMiOiJ5IiwiMTUuNCI6InkiLCIxNS41IjoieSIsIjE1LjYiOiJ5IiwiMTYuMCI6InkiLCIxNi4xIjoieSIsIjE2LjIiOiJ5IiwiMTYuMyI6InkiLCIxNi40IjoieSIsIjE2LjUiOiJ5IiwiMTYuNiI6InkiLFRQOiJ5IiwiMy4xIjoibiIsIjMuMiI6Im4iLCI1LjEiOiJuIiwiNi4xIjoibiIsIjcuMSI6Im4ifSxvcGVyYTp7IjkiOiJuIiwiMTEiOiJuIiwiMTIiOiJuIiwiMTUiOiJ5IiwiMTYiOiJ5IiwiMTciOiJ5IiwiMTgiOiJ5IiwiMTkiOiJ5IiwiMjAiOiJ5IiwiMjEiOiJ5IiwiMjIiOiJ5IiwiMjMiOiJ5IiwiMjQiOiJ5IiwiMjUiOiJ5IiwiMjYiOiJ5IiwiMjciOiJ5IiwiMjgiOiJ5IiwiMjkiOiJ5IiwiMzAiOiJ5IiwiMzEiOiJ5IiwiMzIiOiJ5IiwiMzMiOiJ5IiwiMzQiOiJ5IiwiMzUiOiJ5IiwiMzYiOiJ5IiwiMzciOiJ5IiwiMzgiOiJ5IiwiMzkiOiJ5IiwiNDAiOiJ5IiwiNDEiOiJ5IiwiNDIiOiJ5IiwiNDMiOiJ5IiwiNDQiOiJ5IiwiNDUiOiJ5IiwiNDYiOiJ5IiwiNDciOiJ5IiwiNDgiOiJ5IiwiNDkiOiJ5IiwiNTAiOiJ5IiwiNTEiOiJ5IiwiNTIiOiJ5IiwiNTMiOiJ5IiwiNTQiOiJ5IiwiNTUiOiJ5IiwiNTYiOiJ5IiwiNTciOiJ5IiwiNTgiOiJ5IiwiNjAiOiJ5IiwiNjIiOiJ5IiwiNjMiOiJ5IiwiNjQiOiJ5IiwiNjUiOiJ5IiwiNjYiOiJ5IiwiNjciOiJ5IiwiNjgiOiJ5IiwiNjkiOiJ5IiwiNzAiOiJ5IiwiNzEiOiJ5IiwiNzIiOiJ5IiwiNzMiOiJ5IiwiNzQiOiJ5IiwiNzUiOiJ5IiwiNzYiOiJ5IiwiNzciOiJ5IiwiNzgiOiJ5IiwiNzkiOiJ5IiwiODAiOiJ5IiwiODEiOiJ5IiwiODIiOiJ5IiwiODMiOiJ5IiwiODQiOiJ5IiwiODUiOiJ5IiwiODYiOiJ5IiwiODciOiJ5IiwiODgiOiJ5IiwiODkiOiJ5IiwiOTAiOiJ5IiwiOTEiOiJ5IiwiOTIiOiJ5IiwiOTMiOiJ5IiwiOTQiOiJ5IiwiOTUiOiJ5IiwiOTYiOiJ5IiwiOTciOiJ5IiwiOTgiOiJ5IiwiOTkiOiJ5IiwiMTAwIjoieSIsIjEyLjEiOiJ5IiwiOS41LTkuNiI6Im4iLCIxMC4wLTEwLjEiOiJuIiwiMTAuNSI6Im4iLCIxMC42IjoibiIsIjExLjEiOiJuIiwiMTEuNSI6Im4iLCIxMS42IjoibiJ9LGlvc19zYWY6eyI4IjoibiIsIjE3IjoieSIsIjkuMC05LjIiOiJ5IiwiOS4zIjoieSIsIjEwLjAtMTAuMiI6InkiLCIxMC4zIjoieSIsIjExLjAtMTEuMiI6InkiLCIxMS4zLTExLjQiOiJ5IiwiMTIuMC0xMi4xIjoieSIsIjEyLjItMTIuNSI6InkiLCIxMy4wLTEzLjEiOiJ5IiwiMTMuMiI6InkiLCIxMy4zIjoieSIsIjEzLjQtMTMuNyI6InkiLCIxNC4wLTE0LjQiOiJ5IiwiMTQuNS0xNC44IjoieSIsIjE1LjAtMTUuMSI6InkiLCIxNS4yLTE1LjMiOiJ5IiwiMTUuNCI6InkiLCIxNS41IjoieSIsIjE1LjYiOiJ5IiwiMTYuMCI6InkiLCIxNi4xIjoieSIsIjE2LjIiOiJ5IiwiMTYuMyI6InkiLCIxNi40IjoieSIsIjE2LjUiOiJ5IiwiMTYuNiI6InkiLCIzLjIiOiJuIiwiNC4wLTQuMSI6Im4iLCI0LjItNC4zIjoibiIsIjUuMC01LjEiOiJuIiwiNi4wLTYuMSI6Im4iLCI3LjAtNy4xIjoibiIsIjguMS04LjQiOiJuIn0sb3BfbWluaTp7YWxsOiJ5In0sYW5kcm9pZDp7IjMiOiJuIiwiNCI6Im4iLCIxMTQiOiJ5IiwiNC40IjoieSIsIjQuNC4zLTQuNC40IjoieSIsIjIuMSI6Im4iLCIyLjIiOiJuIiwiMi4zIjoibiIsIjQuMSI6Im4iLCI0LjItNC4zIjoibiJ9LGJiOnsiNyI6Im4iLCIxMCI6Im4ifSxvcF9tb2I6eyIxMCI6Im4iLCIxMSI6Im4iLCIxMiI6Im4iLCI3MyI6InkiLCIxMS4xIjoibiIsIjExLjUiOiJuIiwiMTIuMSI6Im4ifSxhbmRfY2hyOnsiMTE0IjoieSJ9LGFuZF9mZjp7IjExNSI6InkifSxpZV9tb2I6eyIxMCI6Im4iLCIxMSI6Im4ifSxhbmRfdWM6eyIxNS41IjoieSJ9LHNhbXN1bmc6eyI0IjoieSIsIjIwIjoieSIsIjIxIjoieSIsIjUuMC01LjQiOiJ5IiwiNi4yLTYuNCI6InkiLCI3LjItNy40IjoieSIsIjguMiI6InkiLCI5LjIiOiJ5IiwiMTAuMSI6InkiLCIxMS4xLTExLjIiOiJ5IiwiMTIuMCI6InkiLCIxMy4wIjoieSIsIjE0LjAiOiJ5IiwiMTUuMCI6InkiLCIxNi4wIjoieSIsIjE3LjAiOiJ5IiwiMTguMCI6InkiLCIxOS4wIjoieSJ9LGFuZF9xcTp7IjEzLjEiOiJ5In0sYmFpZHU6eyIxMy4xOCI6InkifSxrYWlvczp7IjIuNSI6InkiLCIzLjAtMy4xIjoieSJ9fX19dmFyIG5PLFBzPVAoKCk9Pnt1KCk7bk89e2llOntwcmVmaXg6Im1zIn0sZWRnZTp7cHJlZml4OiJ3ZWJraXQiLHByZWZpeF9leGNlcHRpb25zOnsiMTIiOiJtcyIsIjEzIjoibXMiLCIxNCI6Im1zIiwiMTUiOiJtcyIsIjE2IjoibXMiLCIxNyI6Im1zIiwiMTgiOiJtcyJ9fSxmaXJlZm94OntwcmVmaXg6Im1veiJ9LGNocm9tZTp7cHJlZml4OiJ3ZWJraXQifSxzYWZhcmk6e3ByZWZpeDoid2Via2l0In0sb3BlcmE6e3ByZWZpeDoid2Via2l0IixwcmVmaXhfZXhjZXB0aW9uczp7IjkiOiJvIiwiMTEiOiJvIiwiMTIiOiJvIiwiOS41LTkuNiI6Im8iLCIxMC4wLTEwLjEiOiJvIiwiMTAuNSI6Im8iLCIxMC42IjoibyIsIjExLjEiOiJvIiwiMTEuNSI6Im8iLCIxMS42IjoibyIsIjEyLjEiOiJvIn19LGlvc19zYWY6e3ByZWZpeDoid2Via2l0In0sb3BfbWluaTp7cHJlZml4OiJvIn0sYW5kcm9pZDp7cHJlZml4OiJ3ZWJraXQifSxiYjp7cHJlZml4OiJ3ZWJraXQifSxvcF9tb2I6e3ByZWZpeDoibyIscHJlZml4X2V4Y2VwdGlvbnM6eyI3MyI6IndlYmtpdCJ9fSxhbmRfY2hyOntwcmVmaXg6IndlYmtpdCJ9LGFuZF9mZjp7cHJlZml4OiJtb3oifSxpZV9tb2I6e3ByZWZpeDoibXMifSxhbmRfdWM6e3ByZWZpeDoid2Via2l0IixwcmVmaXhfZXhjZXB0aW9uczp7IjE1LjUiOiJ3ZWJraXQifX0sc2Ftc3VuZzp7cHJlZml4OiJ3ZWJraXQifSxhbmRfcXE6e3ByZWZpeDoid2Via2l0In0sYmFpZHU6e3ByZWZpeDoid2Via2l0In0sa2Fpb3M6e3ByZWZpeDoibW96In19fSk7dmFyIE95PXgoKCk9Pnt1KCl9KTt2YXIgX2U9eCgoWHEsTHQpPT57dSgpO3ZhcntsaXN0OktsfT0kZSgpO0x0LmV4cG9ydHMuZXJyb3I9ZnVuY3Rpb24ocil7bGV0IGU9bmV3IEVycm9yKHIpO3Rocm93IGUuYXV0b3ByZWZpeGVyPSEwLGV9O0x0LmV4cG9ydHMudW5pcT1mdW5jdGlvbihyKXtyZXR1cm5bLi4ubmV3IFNldChyKV19O0x0LmV4cG9ydHMucmVtb3ZlTm90ZT1mdW5jdGlvbihyKXtyZXR1cm4gci5pbmNsdWRlcygiICIpP3Iuc3BsaXQoIiAiKVswXTpyfTtMdC5leHBvcnRzLmVzY2FwZVJlZ2V4cD1mdW5jdGlvbihyKXtyZXR1cm4gci5yZXBsYWNlKC9bJCgpKistLj9bXFxcXV57fH1dL2csIlxcJCYiKX07THQuZXhwb3J0cy5yZWdleHA9ZnVuY3Rpb24ocixlPSEwKXtyZXR1cm4gZSYmKHI9dGhpcy5lc2NhcGVSZWdleHAocikpLG5ldyBSZWdFeHAoYChefFtcXHMsKF0pKCR7cn0oJHxbXFxzKCxdKSlgLCJnaSIpfTtMdC5leHBvcnRzLmVkaXRMaXN0PWZ1bmN0aW9uKHIsZSl7bGV0IHQ9S2wuY29tbWEociksaT1lKHQsW10pO2lmKHQ9PT1pKXJldHVybiByO2xldCBuPXIubWF0Y2goLyxccyovKTtyZXR1cm4gbj1uP25bMF06IiwgIixpLmpvaW4obil9O0x0LmV4cG9ydHMuc3BsaXRTZWxlY3Rvcj1mdW5jdGlvbihyKXtyZXR1cm4gS2wuY29tbWEocikubWFwKGU9PktsLnNwYWNlKGUpLm1hcCh0PT50LnNwbGl0KC8oPz1cLnwjKS9nKSkpfX0pO3ZhciBNdD14KChacSxQeSk9Pnt1KCk7dmFyIGFPPVlsKCksVHk9KFBzKCksUnMpLmFnZW50cyxvTz1fZSgpLFJ5PWNsYXNze3N0YXRpYyBwcmVmaXhlcygpe2lmKHRoaXMucHJlZml4ZXNDYWNoZSlyZXR1cm4gdGhpcy5wcmVmaXhlc0NhY2hlO3RoaXMucHJlZml4ZXNDYWNoZT1bXTtmb3IobGV0IGUgaW4gVHkpdGhpcy5wcmVmaXhlc0NhY2hlLnB1c2goYC0ke1R5W2VdLnByZWZpeH0tYCk7cmV0dXJuIHRoaXMucHJlZml4ZXNDYWNoZT1vTy51bmlxKHRoaXMucHJlZml4ZXNDYWNoZSkuc29ydCgoZSx0KT0+dC5sZW5ndGgtZS5sZW5ndGgpLHRoaXMucHJlZml4ZXNDYWNoZX1zdGF0aWMgd2l0aFByZWZpeChlKXtyZXR1cm4gdGhpcy5wcmVmaXhlc1JlZ2V4cHx8KHRoaXMucHJlZml4ZXNSZWdleHA9bmV3IFJlZ0V4cCh0aGlzLnByZWZpeGVzKCkuam9pbigifCIpKSksdGhpcy5wcmVmaXhlc1JlZ2V4cC50ZXN0KGUpfWNvbnN0cnVjdG9yKGUsdCxpLG4pe3RoaXMuZGF0YT1lLHRoaXMub3B0aW9ucz1pfHx7fSx0aGlzLmJyb3dzZXJzbGlzdE9wdHM9bnx8e30sdGhpcy5zZWxlY3RlZD10aGlzLnBhcnNlKHQpfXBhcnNlKGUpe2xldCB0PXt9O2ZvcihsZXQgaSBpbiB0aGlzLmJyb3dzZXJzbGlzdE9wdHMpdFtpXT10aGlzLmJyb3dzZXJzbGlzdE9wdHNbaV07cmV0dXJuIHQucGF0aD10aGlzLm9wdGlvbnMuZnJvbSxhTyhlLHQpfXByZWZpeChlKXtsZXRbdCxpXT1lLnNwbGl0KCIgIiksbj10aGlzLmRhdGFbdF0scz1uLnByZWZpeF9leGNlcHRpb25zJiZuLnByZWZpeF9leGNlcHRpb25zW2ldO3JldHVybiBzfHwocz1uLnByZWZpeCksYC0ke3N9LWB9aXNTZWxlY3RlZChlKXtyZXR1cm4gdGhpcy5zZWxlY3RlZC5pbmNsdWRlcyhlKX19O1B5LmV4cG9ydHM9Unl9KTt2YXIgTmk9eCgoSnEsSXkpPT57dSgpO0l5LmV4cG9ydHM9e3ByZWZpeChyKXtsZXQgZT1yLm1hdGNoKC9eKC1cdystKS8pO3JldHVybiBlP2VbMF06IiJ9LHVucHJlZml4ZWQocil7cmV0dXJuIHIucmVwbGFjZSgvXi1cdystLywiIil9fX0pO3ZhciB3cj14KChlJCxxeSk9Pnt1KCk7dmFyIGxPPU10KCksRHk9TmkoKSx1Tz1fZSgpO2Z1bmN0aW9uIFhsKHIsZSl7bGV0IHQ9bmV3IHIuY29uc3RydWN0b3I7Zm9yKGxldCBpIG9mIE9iamVjdC5rZXlzKHJ8fHt9KSl7bGV0IG49cltpXTtpPT09InBhcmVudCImJnR5cGVvZiBuPT0ib2JqZWN0Ij9lJiYodFtpXT1lKTppPT09InNvdXJjZSJ8fGk9PT1udWxsP3RbaV09bjpBcnJheS5pc0FycmF5KG4pP3RbaV09bi5tYXAocz0+WGwocyx0KSk6aSE9PSJfYXV0b3ByZWZpeGVyUHJlZml4IiYmaSE9PSJfYXV0b3ByZWZpeGVyVmFsdWVzIiYmaSE9PSJwcm94eUNhY2hlIiYmKHR5cGVvZiBuPT0ib2JqZWN0IiYmbiE9PW51bGwmJihuPVhsKG4sdCkpLHRbaV09bil9cmV0dXJuIHR9dmFyIElzPWNsYXNze3N0YXRpYyBoYWNrKGUpe3JldHVybiB0aGlzLmhhY2tzfHwodGhpcy5oYWNrcz17fSksZS5uYW1lcy5tYXAodD0+KHRoaXMuaGFja3NbdF09ZSx0aGlzLmhhY2tzW3RdKSl9c3RhdGljIGxvYWQoZSx0LGkpe2xldCBuPXRoaXMuaGFja3MmJnRoaXMuaGFja3NbZV07cmV0dXJuIG4/bmV3IG4oZSx0LGkpOm5ldyB0aGlzKGUsdCxpKX1zdGF0aWMgY2xvbmUoZSx0KXtsZXQgaT1YbChlKTtmb3IobGV0IG4gaW4gdClpW25dPXRbbl07cmV0dXJuIGl9Y29uc3RydWN0b3IoZSx0LGkpe3RoaXMucHJlZml4ZXM9dCx0aGlzLm5hbWU9ZSx0aGlzLmFsbD1pfXBhcmVudFByZWZpeChlKXtsZXQgdDtyZXR1cm4gdHlwZW9mIGUuX2F1dG9wcmVmaXhlclByZWZpeCE9InVuZGVmaW5lZCI/dD1lLl9hdXRvcHJlZml4ZXJQcmVmaXg6ZS50eXBlPT09ImRlY2wiJiZlLnByb3BbMF09PT0iLSI/dD1EeS5wcmVmaXgoZS5wcm9wKTplLnR5cGU9PT0icm9vdCI/dD0hMTplLnR5cGU9PT0icnVsZSImJmUuc2VsZWN0b3IuaW5jbHVkZXMoIjotIikmJi86KC1cdystKS8udGVzdChlLnNlbGVjdG9yKT90PWUuc2VsZWN0b3IubWF0Y2goLzooLVx3Ky0pLylbMV06ZS50eXBlPT09ImF0cnVsZSImJmUubmFtZVswXT09PSItIj90PUR5LnByZWZpeChlLm5hbWUpOnQ9dGhpcy5wYXJlbnRQcmVmaXgoZS5wYXJlbnQpLGxPLnByZWZpeGVzKCkuaW5jbHVkZXModCl8fCh0PSExKSxlLl9hdXRvcHJlZml4ZXJQcmVmaXg9dCxlLl9hdXRvcHJlZml4ZXJQcmVmaXh9cHJvY2VzcyhlLHQpe2lmKCF0aGlzLmNoZWNrKGUpKXJldHVybjtsZXQgaT10aGlzLnBhcmVudFByZWZpeChlKSxuPXRoaXMucHJlZml4ZXMuZmlsdGVyKGE9PiFpfHxpPT09dU8ucmVtb3ZlTm90ZShhKSkscz1bXTtmb3IobGV0IGEgb2Ygbil0aGlzLmFkZChlLGEscy5jb25jYXQoW2FdKSx0KSYmcy5wdXNoKGEpO3JldHVybiBzfWNsb25lKGUsdCl7cmV0dXJuIElzLmNsb25lKGUsdCl9fTtxeS5leHBvcnRzPUlzfSk7dmFyIGo9eCgodCQsTXkpPT57dSgpO3ZhciBmTz13cigpLGNPPU10KCksJHk9X2UoKSxMeT1jbGFzcyBleHRlbmRzIGZPe2NoZWNrKCl7cmV0dXJuITB9cHJlZml4ZWQoZSx0KXtyZXR1cm4gdCtlfW5vcm1hbGl6ZShlKXtyZXR1cm4gZX1vdGhlclByZWZpeGVzKGUsdCl7Zm9yKGxldCBpIG9mIGNPLnByZWZpeGVzKCkpaWYoaSE9PXQmJmUuaW5jbHVkZXMoaSkpcmV0dXJuITA7cmV0dXJuITF9c2V0KGUsdCl7cmV0dXJuIGUucHJvcD10aGlzLnByZWZpeGVkKGUucHJvcCx0KSxlfW5lZWRDYXNjYWRlKGUpe3JldHVybiBlLl9hdXRvcHJlZml4ZXJDYXNjYWRlfHwoZS5fYXV0b3ByZWZpeGVyQ2FzY2FkZT10aGlzLmFsbC5vcHRpb25zLmNhc2NhZGUhPT0hMSYmZS5yYXcoImJlZm9yZSIpLmluY2x1ZGVzKGAKYCkpLGUuX2F1dG9wcmVmaXhlckNhc2NhZGV9bWF4UHJlZml4ZWQoZSx0KXtpZih0Ll9hdXRvcHJlZml4ZXJNYXgpcmV0dXJuIHQuX2F1dG9wcmVmaXhlck1heDtsZXQgaT0wO2ZvcihsZXQgbiBvZiBlKW49JHkucmVtb3ZlTm90ZShuKSxuLmxlbmd0aD5pJiYoaT1uLmxlbmd0aCk7cmV0dXJuIHQuX2F1dG9wcmVmaXhlck1heD1pLHQuX2F1dG9wcmVmaXhlck1heH1jYWxjQmVmb3JlKGUsdCxpPSIiKXtsZXQgcz10aGlzLm1heFByZWZpeGVkKGUsdCktJHkucmVtb3ZlTm90ZShpKS5sZW5ndGgsYT10LnJhdygiYmVmb3JlIik7cmV0dXJuIHM+MCYmKGErPUFycmF5KHMpLmZpbGwoIiAiKS5qb2luKCIiKSksYX1yZXN0b3JlQmVmb3JlKGUpe2xldCB0PWUucmF3KCJiZWZvcmUiKS5zcGxpdChgCmApLGk9dFt0Lmxlbmd0aC0xXTt0aGlzLmFsbC5ncm91cChlKS51cChuPT57bGV0IHM9bi5yYXcoImJlZm9yZSIpLnNwbGl0KGAKYCksYT1zW3MubGVuZ3RoLTFdO2EubGVuZ3RoPGkubGVuZ3RoJiYoaT1hKX0pLHRbdC5sZW5ndGgtMV09aSxlLnJhd3MuYmVmb3JlPXQuam9pbihgCmApfWluc2VydChlLHQsaSl7bGV0IG49dGhpcy5zZXQodGhpcy5jbG9uZShlKSx0KTtpZighKCFufHxlLnBhcmVudC5zb21lKGE9PmEucHJvcD09PW4ucHJvcCYmYS52YWx1ZT09PW4udmFsdWUpKSlyZXR1cm4gdGhpcy5uZWVkQ2FzY2FkZShlKSYmKG4ucmF3cy5iZWZvcmU9dGhpcy5jYWxjQmVmb3JlKGksZSx0KSksZS5wYXJlbnQuaW5zZXJ0QmVmb3JlKGUsbil9aXNBbHJlYWR5KGUsdCl7bGV0IGk9dGhpcy5hbGwuZ3JvdXAoZSkudXAobj0+bi5wcm9wPT09dCk7cmV0dXJuIGl8fChpPXRoaXMuYWxsLmdyb3VwKGUpLmRvd24obj0+bi5wcm9wPT09dCkpLGl9YWRkKGUsdCxpLG4pe2xldCBzPXRoaXMucHJlZml4ZWQoZS5wcm9wLHQpO2lmKCEodGhpcy5pc0FscmVhZHkoZSxzKXx8dGhpcy5vdGhlclByZWZpeGVzKGUudmFsdWUsdCkpKXJldHVybiB0aGlzLmluc2VydChlLHQsaSxuKX1wcm9jZXNzKGUsdCl7aWYoIXRoaXMubmVlZENhc2NhZGUoZSkpe3N1cGVyLnByb2Nlc3MoZSx0KTtyZXR1cm59bGV0IGk9c3VwZXIucHJvY2VzcyhlLHQpOyFpfHwhaS5sZW5ndGh8fCh0aGlzLnJlc3RvcmVCZWZvcmUoZSksZS5yYXdzLmJlZm9yZT10aGlzLmNhbGNCZWZvcmUoaSxlKSl9b2xkKGUsdCl7cmV0dXJuW3RoaXMucHJlZml4ZWQoZSx0KV19fTtNeS5leHBvcnRzPUx5fSk7dmFyIEJ5PXgoKHIkLE55KT0+e3UoKTtOeS5leHBvcnRzPWZ1bmN0aW9uIHIoZSl7cmV0dXJue211bDp0PT5uZXcgcihlKnQpLGRpdjp0PT5uZXcgcihlL3QpLHNpbXBsaWZ5OigpPT5uZXcgcihlKSx0b1N0cmluZzooKT0+ZS50b1N0cmluZygpfX19KTt2YXIgenk9eCgoaSQsankpPT57dSgpO3ZhciBwTz1CeSgpLGRPPXdyKCksWmw9X2UoKSxoTz0vKG1pbnxtYXgpLXJlc29sdXRpb25ccyo6XHMqXGQqXC4/XGQrKGRwcHh8ZHBjbXxkcGl8eCkvZ2ksbU89LyhtaW58bWF4KS1yZXNvbHV0aW9uKFxzKjpccyopKFxkKlwuP1xkKykoZHBweHxkcGNtfGRwaXx4KS9pLEZ5PWNsYXNzIGV4dGVuZHMgZE97cHJlZml4TmFtZShlLHQpe3JldHVybiBlPT09Ii1tb3otIj90KyItLW1vei1kZXZpY2UtcGl4ZWwtcmF0aW8iOmUrdCsiLWRldmljZS1waXhlbC1yYXRpbyJ9cHJlZml4UXVlcnkoZSx0LGksbixzKXtyZXR1cm4gbj1uZXcgcE8obikscz09PSJkcGkiP249bi5kaXYoOTYpOnM9PT0iZHBjbSImJihuPW4ubXVsKDIuNTQpLmRpdig5NikpLG49bi5zaW1wbGlmeSgpLGU9PT0iLW8tIiYmKG49bi5uKyIvIituLmQpLHRoaXMucHJlZml4TmFtZShlLHQpK2krbn1jbGVhbihlKXtpZighdGhpcy5iYWQpe3RoaXMuYmFkPVtdO2ZvcihsZXQgdCBvZiB0aGlzLnByZWZpeGVzKXRoaXMuYmFkLnB1c2godGhpcy5wcmVmaXhOYW1lKHQsIm1pbiIpKSx0aGlzLmJhZC5wdXNoKHRoaXMucHJlZml4TmFtZSh0LCJtYXgiKSl9ZS5wYXJhbXM9WmwuZWRpdExpc3QoZS5wYXJhbXMsdD0+dC5maWx0ZXIoaT0+dGhpcy5iYWQuZXZlcnkobj0+IWkuaW5jbHVkZXMobikpKSl9cHJvY2VzcyhlKXtsZXQgdD10aGlzLnBhcmVudFByZWZpeChlKSxpPXQ/W3RdOnRoaXMucHJlZml4ZXM7ZS5wYXJhbXM9WmwuZWRpdExpc3QoZS5wYXJhbXMsKG4scyk9Pntmb3IobGV0IGEgb2Ygbil7aWYoIWEuaW5jbHVkZXMoIm1pbi1yZXNvbHV0aW9uIikmJiFhLmluY2x1ZGVzKCJtYXgtcmVzb2x1dGlvbiIpKXtzLnB1c2goYSk7Y29udGludWV9Zm9yKGxldCBvIG9mIGkpe2xldCBsPWEucmVwbGFjZShoTyxjPT57bGV0IGY9Yy5tYXRjaChtTyk7cmV0dXJuIHRoaXMucHJlZml4UXVlcnkobyxmWzFdLGZbMl0sZlszXSxmWzRdKX0pO3MucHVzaChsKX1zLnB1c2goYSl9cmV0dXJuIFpsLnVuaXEocyl9KX19O2p5LmV4cG9ydHM9Rnl9KTt2YXIgVnk9eCgobiQsVXkpPT57dSgpO3ZhciBKbD0iKCIuY2hhckNvZGVBdCgwKSxldT0iKSIuY2hhckNvZGVBdCgwKSxEcz0iJyIuY2hhckNvZGVBdCgwKSx0dT0nIicuY2hhckNvZGVBdCgwKSxydT0iXFwiLmNoYXJDb2RlQXQoMCksdnI9Ii8iLmNoYXJDb2RlQXQoMCksaXU9IiwiLmNoYXJDb2RlQXQoMCksbnU9IjoiLmNoYXJDb2RlQXQoMCkscXM9IioiLmNoYXJDb2RlQXQoMCksZ089InUiLmNoYXJDb2RlQXQoMCkseU89IlUiLmNoYXJDb2RlQXQoMCksYk89IisiLmNoYXJDb2RlQXQoMCksd089L15bYS1mMC05Py1dKyQvaTtVeS5leHBvcnRzPWZ1bmN0aW9uKHIpe2Zvcih2YXIgZT1bXSx0PXIsaSxuLHMsYSxvLGwsYyxmLGQ9MCxwPXQuY2hhckNvZGVBdChkKSxoPXQubGVuZ3RoLGI9W3tub2RlczplfV0sdj0wLHksdz0iIixrPSIiLFM9IiI7ZDxoOylpZihwPD0zMil7aT1kO2RvIGkrPTEscD10LmNoYXJDb2RlQXQoaSk7d2hpbGUocDw9MzIpO2E9dC5zbGljZShkLGkpLHM9ZVtlLmxlbmd0aC0xXSxwPT09ZXUmJnY/Uz1hOnMmJnMudHlwZT09PSJkaXYiPyhzLmFmdGVyPWEscy5zb3VyY2VFbmRJbmRleCs9YS5sZW5ndGgpOnA9PT1pdXx8cD09PW51fHxwPT09dnImJnQuY2hhckNvZGVBdChpKzEpIT09cXMmJigheXx8eSYmeS50eXBlPT09ImZ1bmN0aW9uIiYmeS52YWx1ZSE9PSJjYWxjIik/az1hOmUucHVzaCh7dHlwZToic3BhY2UiLHNvdXJjZUluZGV4OmQsc291cmNlRW5kSW5kZXg6aSx2YWx1ZTphfSksZD1pfWVsc2UgaWYocD09PURzfHxwPT09dHUpe2k9ZCxuPXA9PT1Ecz8iJyI6JyInLGE9e3R5cGU6InN0cmluZyIsc291cmNlSW5kZXg6ZCxxdW90ZTpufTtkbyBpZihvPSExLGk9dC5pbmRleE9mKG4saSsxKSx+aSlmb3IobD1pO3QuY2hhckNvZGVBdChsLTEpPT09cnU7KWwtPTEsbz0hbztlbHNlIHQrPW4saT10Lmxlbmd0aC0xLGEudW5jbG9zZWQ9ITA7d2hpbGUobyk7YS52YWx1ZT10LnNsaWNlKGQrMSxpKSxhLnNvdXJjZUVuZEluZGV4PWEudW5jbG9zZWQ/aTppKzEsZS5wdXNoKGEpLGQ9aSsxLHA9dC5jaGFyQ29kZUF0KGQpfWVsc2UgaWYocD09PXZyJiZ0LmNoYXJDb2RlQXQoZCsxKT09PXFzKWk9dC5pbmRleE9mKCIqLyIsZCksYT17dHlwZToiY29tbWVudCIsc291cmNlSW5kZXg6ZCxzb3VyY2VFbmRJbmRleDppKzJ9LGk9PT0tMSYmKGEudW5jbG9zZWQ9ITAsaT10Lmxlbmd0aCxhLnNvdXJjZUVuZEluZGV4PWkpLGEudmFsdWU9dC5zbGljZShkKzIsaSksZS5wdXNoKGEpLGQ9aSsyLHA9dC5jaGFyQ29kZUF0KGQpO2Vsc2UgaWYoKHA9PT12cnx8cD09PXFzKSYmeSYmeS50eXBlPT09ImZ1bmN0aW9uIiYmeS52YWx1ZT09PSJjYWxjIilhPXRbZF0sZS5wdXNoKHt0eXBlOiJ3b3JkIixzb3VyY2VJbmRleDpkLWsubGVuZ3RoLHNvdXJjZUVuZEluZGV4OmQrYS5sZW5ndGgsdmFsdWU6YX0pLGQrPTEscD10LmNoYXJDb2RlQXQoZCk7ZWxzZSBpZihwPT09dnJ8fHA9PT1pdXx8cD09PW51KWE9dFtkXSxlLnB1c2goe3R5cGU6ImRpdiIsc291cmNlSW5kZXg6ZC1rLmxlbmd0aCxzb3VyY2VFbmRJbmRleDpkK2EubGVuZ3RoLHZhbHVlOmEsYmVmb3JlOmssYWZ0ZXI6IiJ9KSxrPSIiLGQrPTEscD10LmNoYXJDb2RlQXQoZCk7ZWxzZSBpZihKbD09PXApe2k9ZDtkbyBpKz0xLHA9dC5jaGFyQ29kZUF0KGkpO3doaWxlKHA8PTMyKTtpZihmPWQsYT17dHlwZToiZnVuY3Rpb24iLHNvdXJjZUluZGV4OmQtdy5sZW5ndGgsdmFsdWU6dyxiZWZvcmU6dC5zbGljZShmKzEsaSl9LGQ9aSx3PT09InVybCImJnAhPT1EcyYmcCE9PXR1KXtpLT0xO2RvIGlmKG89ITEsaT10LmluZGV4T2YoIikiLGkrMSksfmkpZm9yKGw9aTt0LmNoYXJDb2RlQXQobC0xKT09PXJ1OylsLT0xLG89IW87ZWxzZSB0Kz0iKSIsaT10Lmxlbmd0aC0xLGEudW5jbG9zZWQ9ITA7d2hpbGUobyk7Yz1pO2RvIGMtPTEscD10LmNoYXJDb2RlQXQoYyk7d2hpbGUocDw9MzIpO2Y8Yz8oZCE9PWMrMT9hLm5vZGVzPVt7dHlwZToid29yZCIsc291cmNlSW5kZXg6ZCxzb3VyY2VFbmRJbmRleDpjKzEsdmFsdWU6dC5zbGljZShkLGMrMSl9XTphLm5vZGVzPVtdLGEudW5jbG9zZWQmJmMrMSE9PWk/KGEuYWZ0ZXI9IiIsYS5ub2Rlcy5wdXNoKHt0eXBlOiJzcGFjZSIsc291cmNlSW5kZXg6YysxLHNvdXJjZUVuZEluZGV4OmksdmFsdWU6dC5zbGljZShjKzEsaSl9KSk6KGEuYWZ0ZXI9dC5zbGljZShjKzEsaSksYS5zb3VyY2VFbmRJbmRleD1pKSk6KGEuYWZ0ZXI9IiIsYS5ub2Rlcz1bXSksZD1pKzEsYS5zb3VyY2VFbmRJbmRleD1hLnVuY2xvc2VkP2k6ZCxwPXQuY2hhckNvZGVBdChkKSxlLnB1c2goYSl9ZWxzZSB2Kz0xLGEuYWZ0ZXI9IiIsYS5zb3VyY2VFbmRJbmRleD1kKzEsZS5wdXNoKGEpLGIucHVzaChhKSxlPWEubm9kZXM9W10seT1hO3c9IiJ9ZWxzZSBpZihldT09PXAmJnYpZCs9MSxwPXQuY2hhckNvZGVBdChkKSx5LmFmdGVyPVMseS5zb3VyY2VFbmRJbmRleCs9Uy5sZW5ndGgsUz0iIix2LT0xLGJbYi5sZW5ndGgtMV0uc291cmNlRW5kSW5kZXg9ZCxiLnBvcCgpLHk9Ylt2XSxlPXkubm9kZXM7ZWxzZXtpPWQ7ZG8gcD09PXJ1JiYoaSs9MSksaSs9MSxwPXQuY2hhckNvZGVBdChpKTt3aGlsZShpPGgmJiEocDw9MzJ8fHA9PT1Ec3x8cD09PXR1fHxwPT09aXV8fHA9PT1udXx8cD09PXZyfHxwPT09Smx8fHA9PT1xcyYmeSYmeS50eXBlPT09ImZ1bmN0aW9uIiYmeS52YWx1ZT09PSJjYWxjInx8cD09PXZyJiZ5LnR5cGU9PT0iZnVuY3Rpb24iJiZ5LnZhbHVlPT09ImNhbGMifHxwPT09ZXUmJnYpKTthPXQuc2xpY2UoZCxpKSxKbD09PXA/dz1hOihnTz09PWEuY2hhckNvZGVBdCgwKXx8eU89PT1hLmNoYXJDb2RlQXQoMCkpJiZiTz09PWEuY2hhckNvZGVBdCgxKSYmd08udGVzdChhLnNsaWNlKDIpKT9lLnB1c2goe3R5cGU6InVuaWNvZGUtcmFuZ2UiLHNvdXJjZUluZGV4OmQsc291cmNlRW5kSW5kZXg6aSx2YWx1ZTphfSk6ZS5wdXNoKHt0eXBlOiJ3b3JkIixzb3VyY2VJbmRleDpkLHNvdXJjZUVuZEluZGV4OmksdmFsdWU6YX0pLGQ9aX1mb3IoZD1iLmxlbmd0aC0xO2Q7ZC09MSliW2RdLnVuY2xvc2VkPSEwLGJbZF0uc291cmNlRW5kSW5kZXg9dC5sZW5ndGg7cmV0dXJuIGJbMF0ubm9kZXN9fSk7dmFyIFd5PXgoKHMkLEh5KT0+e3UoKTtIeS5leHBvcnRzPWZ1bmN0aW9uIHIoZSx0LGkpe3ZhciBuLHMsYSxvO2ZvcihuPTAscz1lLmxlbmd0aDtuPHM7bis9MSlhPWVbbl0saXx8KG89dChhLG4sZSkpLG8hPT0hMSYmYS50eXBlPT09ImZ1bmN0aW9uIiYmQXJyYXkuaXNBcnJheShhLm5vZGVzKSYmcihhLm5vZGVzLHQsaSksaSYmdChhLG4sZSl9fSk7dmFyIEt5PXgoKGEkLFl5KT0+e3UoKTtmdW5jdGlvbiBHeShyLGUpe3ZhciB0PXIudHlwZSxpPXIudmFsdWUsbixzO3JldHVybiBlJiYocz1lKHIpKSE9PXZvaWQgMD9zOnQ9PT0id29yZCJ8fHQ9PT0ic3BhY2UiP2k6dD09PSJzdHJpbmciPyhuPXIucXVvdGV8fCIiLG4raSsoci51bmNsb3NlZD8iIjpuKSk6dD09PSJjb21tZW50Ij8iLyoiK2krKHIudW5jbG9zZWQ/IiI6IiovIik6dD09PSJkaXYiPyhyLmJlZm9yZXx8IiIpK2krKHIuYWZ0ZXJ8fCIiKTpBcnJheS5pc0FycmF5KHIubm9kZXMpPyhuPVF5KHIubm9kZXMsZSksdCE9PSJmdW5jdGlvbiI/bjppKyIoIisoci5iZWZvcmV8fCIiKStuKyhyLmFmdGVyfHwiIikrKHIudW5jbG9zZWQ/IiI6IikiKSk6aX1mdW5jdGlvbiBReShyLGUpe3ZhciB0LGk7aWYoQXJyYXkuaXNBcnJheShyKSl7Zm9yKHQ9IiIsaT1yLmxlbmd0aC0xO35pO2ktPTEpdD1HeShyW2ldLGUpK3Q7cmV0dXJuIHR9cmV0dXJuIEd5KHIsZSl9WXkuZXhwb3J0cz1ReX0pO3ZhciBaeT14KChvJCxYeSk9Pnt1KCk7dmFyICRzPSItIi5jaGFyQ29kZUF0KDApLExzPSIrIi5jaGFyQ29kZUF0KDApLHN1PSIuIi5jaGFyQ29kZUF0KDApLHZPPSJlIi5jaGFyQ29kZUF0KDApLHhPPSJFIi5jaGFyQ29kZUF0KDApO2Z1bmN0aW9uIGtPKHIpe3ZhciBlPXIuY2hhckNvZGVBdCgwKSx0O2lmKGU9PT1Mc3x8ZT09PSRzKXtpZih0PXIuY2hhckNvZGVBdCgxKSx0Pj00OCYmdDw9NTcpcmV0dXJuITA7dmFyIGk9ci5jaGFyQ29kZUF0KDIpO3JldHVybiB0PT09c3UmJmk+PTQ4JiZpPD01N31yZXR1cm4gZT09PXN1Pyh0PXIuY2hhckNvZGVBdCgxKSx0Pj00OCYmdDw9NTcpOmU+PTQ4JiZlPD01N31YeS5leHBvcnRzPWZ1bmN0aW9uKHIpe3ZhciBlPTAsdD1yLmxlbmd0aCxpLG4scztpZih0PT09MHx8IWtPKHIpKXJldHVybiExO2ZvcihpPXIuY2hhckNvZGVBdChlKSwoaT09PUxzfHxpPT09JHMpJiZlKys7ZTx0JiYoaT1yLmNoYXJDb2RlQXQoZSksIShpPDQ4fHxpPjU3KSk7KWUrPTE7aWYoaT1yLmNoYXJDb2RlQXQoZSksbj1yLmNoYXJDb2RlQXQoZSsxKSxpPT09c3UmJm4+PTQ4JiZuPD01Nylmb3IoZSs9MjtlPHQmJihpPXIuY2hhckNvZGVBdChlKSwhKGk8NDh8fGk+NTcpKTspZSs9MTtpZihpPXIuY2hhckNvZGVBdChlKSxuPXIuY2hhckNvZGVBdChlKzEpLHM9ci5jaGFyQ29kZUF0KGUrMiksKGk9PT12T3x8aT09PXhPKSYmKG4+PTQ4JiZuPD01N3x8KG49PT1Mc3x8bj09PSRzKSYmcz49NDgmJnM8PTU3KSlmb3IoZSs9bj09PUxzfHxuPT09JHM/MzoyO2U8dCYmKGk9ci5jaGFyQ29kZUF0KGUpLCEoaTw0OHx8aT41NykpOyllKz0xO3JldHVybntudW1iZXI6ci5zbGljZSgwLGUpLHVuaXQ6ci5zbGljZShlKX19fSk7dmFyIE1zPXgoKGwkLHRiKT0+e3UoKTt2YXIgU089VnkoKSxKeT1XeSgpLGViPUt5KCk7ZnVuY3Rpb24gTnQocil7cmV0dXJuIHRoaXMgaW5zdGFuY2VvZiBOdD8odGhpcy5ub2Rlcz1TTyhyKSx0aGlzKTpuZXcgTnQocil9TnQucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIEFycmF5LmlzQXJyYXkodGhpcy5ub2Rlcyk/ZWIodGhpcy5ub2Rlcyk6IiJ9O050LnByb3RvdHlwZS53YWxrPWZ1bmN0aW9uKHIsZSl7cmV0dXJuIEp5KHRoaXMubm9kZXMscixlKSx0aGlzfTtOdC51bml0PVp5KCk7TnQud2Fsaz1KeTtOdC5zdHJpbmdpZnk9ZWI7dGIuZXhwb3J0cz1OdH0pO3ZhciBhYj14KCh1JCxzYik9Pnt1KCk7dmFye2xpc3Q6QU99PSRlKCkscmI9TXMoKSxDTz1NdCgpLGliPU5pKCksbmI9Y2xhc3N7Y29uc3RydWN0b3IoZSl7dGhpcy5wcm9wcz1bInRyYW5zaXRpb24iLCJ0cmFuc2l0aW9uLXByb3BlcnR5Il0sdGhpcy5wcmVmaXhlcz1lfWFkZChlLHQpe2xldCBpLG4scz10aGlzLnByZWZpeGVzLmFkZFtlLnByb3BdLGE9dGhpcy5ydWxlVmVuZG9yUHJlZml4ZXMoZSksbz1hfHxzJiZzLnByZWZpeGVzfHxbXSxsPXRoaXMucGFyc2UoZS52YWx1ZSksYz1sLm1hcChoPT50aGlzLmZpbmRQcm9wKGgpKSxmPVtdO2lmKGMuc29tZShoPT5oWzBdPT09Ii0iKSlyZXR1cm47Zm9yKGxldCBoIG9mIGwpe2lmKG49dGhpcy5maW5kUHJvcChoKSxuWzBdPT09Ii0iKWNvbnRpbnVlO2xldCBiPXRoaXMucHJlZml4ZXMuYWRkW25dO2lmKCEoIWJ8fCFiLnByZWZpeGVzKSlmb3IoaSBvZiBiLnByZWZpeGVzKXtpZihhJiYhYS5zb21lKHk9PmkuaW5jbHVkZXMoeSkpKWNvbnRpbnVlO2xldCB2PXRoaXMucHJlZml4ZXMucHJlZml4ZWQobixpKTt2IT09Ii1tcy10cmFuc2Zvcm0iJiYhYy5pbmNsdWRlcyh2KSYmKHRoaXMuZGlzYWJsZWQobixpKXx8Zi5wdXNoKHRoaXMuY2xvbmUobix2LGgpKSl9fWw9bC5jb25jYXQoZik7bGV0IGQ9dGhpcy5zdHJpbmdpZnkobCkscD10aGlzLnN0cmluZ2lmeSh0aGlzLmNsZWFuRnJvbVVucHJlZml4ZWQobCwiLXdlYmtpdC0iKSk7aWYoby5pbmNsdWRlcygiLXdlYmtpdC0iKSYmdGhpcy5jbG9uZUJlZm9yZShlLGAtd2Via2l0LSR7ZS5wcm9wfWAscCksdGhpcy5jbG9uZUJlZm9yZShlLGUucHJvcCxwKSxvLmluY2x1ZGVzKCItby0iKSl7bGV0IGg9dGhpcy5zdHJpbmdpZnkodGhpcy5jbGVhbkZyb21VbnByZWZpeGVkKGwsIi1vLSIpKTt0aGlzLmNsb25lQmVmb3JlKGUsYC1vLSR7ZS5wcm9wfWAsaCl9Zm9yKGkgb2YgbylpZihpIT09Ii13ZWJraXQtIiYmaSE9PSItby0iKXtsZXQgaD10aGlzLnN0cmluZ2lmeSh0aGlzLmNsZWFuT3RoZXJQcmVmaXhlcyhsLGkpKTt0aGlzLmNsb25lQmVmb3JlKGUsaStlLnByb3AsaCl9ZCE9PWUudmFsdWUmJiF0aGlzLmFscmVhZHkoZSxlLnByb3AsZCkmJih0aGlzLmNoZWNrRm9yV2FybmluZyh0LGUpLGUuY2xvbmVCZWZvcmUoKSxlLnZhbHVlPWQpfWZpbmRQcm9wKGUpe2xldCB0PWVbMF0udmFsdWU7aWYoL15cZC8udGVzdCh0KSl7Zm9yKGxldFtpLG5db2YgZS5lbnRyaWVzKCkpaWYoaSE9PTAmJm4udHlwZT09PSJ3b3JkIilyZXR1cm4gbi52YWx1ZX1yZXR1cm4gdH1hbHJlYWR5KGUsdCxpKXtyZXR1cm4gZS5wYXJlbnQuc29tZShuPT5uLnByb3A9PT10JiZuLnZhbHVlPT09aSl9Y2xvbmVCZWZvcmUoZSx0LGkpe3RoaXMuYWxyZWFkeShlLHQsaSl8fGUuY2xvbmVCZWZvcmUoe3Byb3A6dCx2YWx1ZTppfSl9Y2hlY2tGb3JXYXJuaW5nKGUsdCl7aWYodC5wcm9wIT09InRyYW5zaXRpb24tcHJvcGVydHkiKXJldHVybjtsZXQgaT0hMSxuPSExO3QucGFyZW50LmVhY2gocz0+e2lmKHMudHlwZSE9PSJkZWNsInx8cy5wcm9wLmluZGV4T2YoInRyYW5zaXRpb24tIikhPT0wKXJldHVybjtsZXQgYT1BTy5jb21tYShzLnZhbHVlKTtpZihzLnByb3A9PT0idHJhbnNpdGlvbi1wcm9wZXJ0eSIpe2EuZm9yRWFjaChvPT57bGV0IGw9dGhpcy5wcmVmaXhlcy5hZGRbb107bCYmbC5wcmVmaXhlcyYmbC5wcmVmaXhlcy5sZW5ndGg+MCYmKGk9ITApfSk7cmV0dXJufXJldHVybiBuPW58fGEubGVuZ3RoPjEsITF9KSxpJiZuJiZ0Lndhcm4oZSwiUmVwbGFjZSB0cmFuc2l0aW9uLXByb3BlcnR5IHRvIHRyYW5zaXRpb24sIGJlY2F1c2UgQXV0b3ByZWZpeGVyIGNvdWxkIG5vdCBzdXBwb3J0IGFueSBjYXNlcyBvZiB0cmFuc2l0aW9uLXByb3BlcnR5IGFuZCBvdGhlciB0cmFuc2l0aW9uLSoiKX1yZW1vdmUoZSl7bGV0IHQ9dGhpcy5wYXJzZShlLnZhbHVlKTt0PXQuZmlsdGVyKGE9PntsZXQgbz10aGlzLnByZWZpeGVzLnJlbW92ZVt0aGlzLmZpbmRQcm9wKGEpXTtyZXR1cm4hb3x8IW8ucmVtb3ZlfSk7bGV0IGk9dGhpcy5zdHJpbmdpZnkodCk7aWYoZS52YWx1ZT09PWkpcmV0dXJuO2lmKHQubGVuZ3RoPT09MCl7ZS5yZW1vdmUoKTtyZXR1cm59bGV0IG49ZS5wYXJlbnQuc29tZShhPT5hLnByb3A9PT1lLnByb3AmJmEudmFsdWU9PT1pKSxzPWUucGFyZW50LnNvbWUoYT0+YSE9PWUmJmEucHJvcD09PWUucHJvcCYmYS52YWx1ZS5sZW5ndGg+aS5sZW5ndGgpO2lmKG58fHMpe2UucmVtb3ZlKCk7cmV0dXJufWUudmFsdWU9aX1wYXJzZShlKXtsZXQgdD1yYihlKSxpPVtdLG49W107Zm9yKGxldCBzIG9mIHQubm9kZXMpbi5wdXNoKHMpLHMudHlwZT09PSJkaXYiJiZzLnZhbHVlPT09IiwiJiYoaS5wdXNoKG4pLG49W10pO3JldHVybiBpLnB1c2gobiksaS5maWx0ZXIocz0+cy5sZW5ndGg+MCl9c3RyaW5naWZ5KGUpe2lmKGUubGVuZ3RoPT09MClyZXR1cm4iIjtsZXQgdD1bXTtmb3IobGV0IGkgb2YgZSlpW2kubGVuZ3RoLTFdLnR5cGUhPT0iZGl2IiYmaS5wdXNoKHRoaXMuZGl2KGUpKSx0PXQuY29uY2F0KGkpO3JldHVybiB0WzBdLnR5cGU9PT0iZGl2IiYmKHQ9dC5zbGljZSgxKSksdFt0Lmxlbmd0aC0xXS50eXBlPT09ImRpdiImJih0PXQuc2xpY2UoMCwtMisxfHx2b2lkIDApKSxyYi5zdHJpbmdpZnkoe25vZGVzOnR9KX1jbG9uZShlLHQsaSl7bGV0IG49W10scz0hMTtmb3IobGV0IGEgb2YgaSkhcyYmYS50eXBlPT09IndvcmQiJiZhLnZhbHVlPT09ZT8obi5wdXNoKHt0eXBlOiJ3b3JkIix2YWx1ZTp0fSkscz0hMCk6bi5wdXNoKGEpO3JldHVybiBufWRpdihlKXtmb3IobGV0IHQgb2YgZSlmb3IobGV0IGkgb2YgdClpZihpLnR5cGU9PT0iZGl2IiYmaS52YWx1ZT09PSIsIilyZXR1cm4gaTtyZXR1cm57dHlwZToiZGl2Iix2YWx1ZToiLCIsYWZ0ZXI6IiAifX1jbGVhbk90aGVyUHJlZml4ZXMoZSx0KXtyZXR1cm4gZS5maWx0ZXIoaT0+e2xldCBuPWliLnByZWZpeCh0aGlzLmZpbmRQcm9wKGkpKTtyZXR1cm4gbj09PSIifHxuPT09dH0pfWNsZWFuRnJvbVVucHJlZml4ZWQoZSx0KXtsZXQgaT1lLm1hcChzPT50aGlzLmZpbmRQcm9wKHMpKS5maWx0ZXIocz0+cy5zbGljZSgwLHQubGVuZ3RoKT09PXQpLm1hcChzPT50aGlzLnByZWZpeGVzLnVucHJlZml4ZWQocykpLG49W107Zm9yKGxldCBzIG9mIGUpe2xldCBhPXRoaXMuZmluZFByb3Aocyksbz1pYi5wcmVmaXgoYSk7IWkuaW5jbHVkZXMoYSkmJihvPT09dHx8bz09PSIiKSYmbi5wdXNoKHMpfXJldHVybiBufWRpc2FibGVkKGUsdCl7bGV0IGk9WyJvcmRlciIsImp1c3RpZnktY29udGVudCIsImFsaWduLXNlbGYiLCJhbGlnbi1jb250ZW50Il07aWYoZS5pbmNsdWRlcygiZmxleCIpfHxpLmluY2x1ZGVzKGUpKXtpZih0aGlzLnByZWZpeGVzLm9wdGlvbnMuZmxleGJveD09PSExKXJldHVybiEwO2lmKHRoaXMucHJlZml4ZXMub3B0aW9ucy5mbGV4Ym94PT09Im5vLTIwMDkiKXJldHVybiB0LmluY2x1ZGVzKCIyMDA5Iil9fXJ1bGVWZW5kb3JQcmVmaXhlcyhlKXtsZXR7cGFyZW50OnR9PWU7aWYodC50eXBlIT09InJ1bGUiKXJldHVybiExO2lmKCF0LnNlbGVjdG9yLmluY2x1ZGVzKCI6LSIpKXJldHVybiExO2xldCBpPUNPLnByZWZpeGVzKCkuZmlsdGVyKG49PnQuc2VsZWN0b3IuaW5jbHVkZXMoIjoiK24pKTtyZXR1cm4gaS5sZW5ndGg+MD9pOiExfX07c2IuZXhwb3J0cz1uYn0pO3ZhciB4cj14KChmJCxsYik9Pnt1KCk7dmFyIF9PPV9lKCksb2I9Y2xhc3N7Y29uc3RydWN0b3IoZSx0LGksbil7dGhpcy51bnByZWZpeGVkPWUsdGhpcy5wcmVmaXhlZD10LHRoaXMuc3RyaW5nPWl8fHQsdGhpcy5yZWdleHA9bnx8X08ucmVnZXhwKHQpfWNoZWNrKGUpe3JldHVybiBlLmluY2x1ZGVzKHRoaXMuc3RyaW5nKT8hIWUubWF0Y2godGhpcy5yZWdleHApOiExfX07bGIuZXhwb3J0cz1vYn0pO3ZhciBIZT14KChjJCxmYik9Pnt1KCk7dmFyIEVPPXdyKCksT089eHIoKSxUTz1OaSgpLFJPPV9lKCksdWI9Y2xhc3MgZXh0ZW5kcyBFT3tzdGF0aWMgc2F2ZShlLHQpe2xldCBpPXQucHJvcCxuPVtdO2ZvcihsZXQgcyBpbiB0Ll9hdXRvcHJlZml4ZXJWYWx1ZXMpe2xldCBhPXQuX2F1dG9wcmVmaXhlclZhbHVlc1tzXTtpZihhPT09dC52YWx1ZSljb250aW51ZTtsZXQgbyxsPVRPLnByZWZpeChpKTtpZihsPT09Ii1waWUtIiljb250aW51ZTtpZihsPT09cyl7bz10LnZhbHVlPWEsbi5wdXNoKG8pO2NvbnRpbnVlfWxldCBjPWUucHJlZml4ZWQoaSxzKSxmPXQucGFyZW50O2lmKCFmLmV2ZXJ5KGI9PmIucHJvcCE9PWMpKXtuLnB1c2gobyk7Y29udGludWV9bGV0IGQ9YS5yZXBsYWNlKC9ccysvLCIgIik7aWYoZi5zb21lKGI9PmIucHJvcD09PXQucHJvcCYmYi52YWx1ZS5yZXBsYWNlKC9ccysvLCIgIik9PT1kKSl7bi5wdXNoKG8pO2NvbnRpbnVlfWxldCBoPXRoaXMuY2xvbmUodCx7dmFsdWU6YX0pO289dC5wYXJlbnQuaW5zZXJ0QmVmb3JlKHQsaCksbi5wdXNoKG8pfXJldHVybiBufWNoZWNrKGUpe2xldCB0PWUudmFsdWU7cmV0dXJuIHQuaW5jbHVkZXModGhpcy5uYW1lKT8hIXQubWF0Y2godGhpcy5yZWdleHAoKSk6ITF9cmVnZXhwKCl7cmV0dXJuIHRoaXMucmVnZXhwQ2FjaGV8fCh0aGlzLnJlZ2V4cENhY2hlPVJPLnJlZ2V4cCh0aGlzLm5hbWUpKX1yZXBsYWNlKGUsdCl7cmV0dXJuIGUucmVwbGFjZSh0aGlzLnJlZ2V4cCgpLGAkMSR7dH0kMmApfXZhbHVlKGUpe3JldHVybiBlLnJhd3MudmFsdWUmJmUucmF3cy52YWx1ZS52YWx1ZT09PWUudmFsdWU/ZS5yYXdzLnZhbHVlLnJhdzplLnZhbHVlfWFkZChlLHQpe2UuX2F1dG9wcmVmaXhlclZhbHVlc3x8KGUuX2F1dG9wcmVmaXhlclZhbHVlcz17fSk7bGV0IGk9ZS5fYXV0b3ByZWZpeGVyVmFsdWVzW3RdfHx0aGlzLnZhbHVlKGUpLG47ZG8gaWYobj1pLGk9dGhpcy5yZXBsYWNlKGksdCksaT09PSExKXJldHVybjt3aGlsZShpIT09bik7ZS5fYXV0b3ByZWZpeGVyVmFsdWVzW3RdPWl9b2xkKGUpe3JldHVybiBuZXcgT08odGhpcy5uYW1lLGUrdGhpcy5uYW1lKX19O2ZiLmV4cG9ydHM9dWJ9KTt2YXIgQnQ9eCgocCQsY2IpPT57dSgpO2NiLmV4cG9ydHM9e319KTt2YXIgb3U9eCgoZCQsaGIpPT57dSgpO3ZhciBwYj1NcygpLFBPPUhlKCksSU89QnQoKS5pbnNlcnRBcmVhcyxETz0vKF58W14tXSlsaW5lYXItZ3JhZGllbnRcKFxzKih0b3B8bGVmdHxyaWdodHxib3R0b20pL2kscU89LyhefFteLV0pcmFkaWFsLWdyYWRpZW50XChccypcZCsoXHcqfCUpXHMrXGQrKFx3KnwlKVxzKiwvaSwkTz0vKCFccyopP2F1dG9wcmVmaXhlcjpccyppZ25vcmVccytuZXh0L2ksTE89LyghXHMqKT9hdXRvcHJlZml4ZXJccypncmlkOlxzKihvbnxvZmZ8KG5vLSk/YXV0b3BsYWNlKS9pLE1PPVsid2lkdGgiLCJoZWlnaHQiLCJtaW4td2lkdGgiLCJtYXgtd2lkdGgiLCJtaW4taGVpZ2h0IiwibWF4LWhlaWdodCIsImlubGluZS1zaXplIiwibWluLWlubGluZS1zaXplIiwibWF4LWlubGluZS1zaXplIiwiYmxvY2stc2l6ZSIsIm1pbi1ibG9jay1zaXplIiwibWF4LWJsb2NrLXNpemUiXTtmdW5jdGlvbiBhdShyKXtyZXR1cm4gci5wYXJlbnQuc29tZShlPT5lLnByb3A9PT0iZ3JpZC10ZW1wbGF0ZSJ8fGUucHJvcD09PSJncmlkLXRlbXBsYXRlLWFyZWFzIil9ZnVuY3Rpb24gTk8ocil7bGV0IGU9ci5wYXJlbnQuc29tZShpPT5pLnByb3A9PT0iZ3JpZC10ZW1wbGF0ZS1yb3dzIiksdD1yLnBhcmVudC5zb21lKGk9PmkucHJvcD09PSJncmlkLXRlbXBsYXRlLWNvbHVtbnMiKTtyZXR1cm4gZSYmdH12YXIgZGI9Y2xhc3N7Y29uc3RydWN0b3IoZSl7dGhpcy5wcmVmaXhlcz1lfWFkZChlLHQpe2xldCBpPXRoaXMucHJlZml4ZXMuYWRkWyJAcmVzb2x1dGlvbiJdLG49dGhpcy5wcmVmaXhlcy5hZGRbIkBrZXlmcmFtZXMiXSxzPXRoaXMucHJlZml4ZXMuYWRkWyJAdmlld3BvcnQiXSxhPXRoaXMucHJlZml4ZXMuYWRkWyJAc3VwcG9ydHMiXTtlLndhbGtBdFJ1bGVzKGY9PntpZihmLm5hbWU9PT0ia2V5ZnJhbWVzIil7aWYoIXRoaXMuZGlzYWJsZWQoZix0KSlyZXR1cm4gbiYmbi5wcm9jZXNzKGYpfWVsc2UgaWYoZi5uYW1lPT09InZpZXdwb3J0Iil7aWYoIXRoaXMuZGlzYWJsZWQoZix0KSlyZXR1cm4gcyYmcy5wcm9jZXNzKGYpfWVsc2UgaWYoZi5uYW1lPT09InN1cHBvcnRzIil7aWYodGhpcy5wcmVmaXhlcy5vcHRpb25zLnN1cHBvcnRzIT09ITEmJiF0aGlzLmRpc2FibGVkKGYsdCkpcmV0dXJuIGEucHJvY2VzcyhmKX1lbHNlIGlmKGYubmFtZT09PSJtZWRpYSImJmYucGFyYW1zLmluY2x1ZGVzKCItcmVzb2x1dGlvbiIpJiYhdGhpcy5kaXNhYmxlZChmLHQpKXJldHVybiBpJiZpLnByb2Nlc3MoZil9KSxlLndhbGtSdWxlcyhmPT57aWYoIXRoaXMuZGlzYWJsZWQoZix0KSlyZXR1cm4gdGhpcy5wcmVmaXhlcy5hZGQuc2VsZWN0b3JzLm1hcChkPT5kLnByb2Nlc3MoZix0KSl9KTtmdW5jdGlvbiBvKGYpe3JldHVybiBmLnBhcmVudC5ub2Rlcy5zb21lKGQ9PntpZihkLnR5cGUhPT0iZGVjbCIpcmV0dXJuITE7bGV0IHA9ZC5wcm9wPT09ImRpc3BsYXkiJiYvKGlubGluZS0pP2dyaWQvLnRlc3QoZC52YWx1ZSksaD1kLnByb3Auc3RhcnRzV2l0aCgiZ3JpZC10ZW1wbGF0ZSIpLGI9L15ncmlkLShbQS16XSstKT9nYXAvLnRlc3QoZC5wcm9wKTtyZXR1cm4gcHx8aHx8Yn0pfWZ1bmN0aW9uIGwoZil7cmV0dXJuIGYucGFyZW50LnNvbWUoZD0+ZC5wcm9wPT09ImRpc3BsYXkiJiYvKGlubGluZS0pP2ZsZXgvLnRlc3QoZC52YWx1ZSkpfWxldCBjPXRoaXMuZ3JpZFN0YXR1cyhlLHQpJiZ0aGlzLnByZWZpeGVzLmFkZFsiZ3JpZC1hcmVhIl0mJnRoaXMucHJlZml4ZXMuYWRkWyJncmlkLWFyZWEiXS5wcmVmaXhlcztyZXR1cm4gZS53YWxrRGVjbHMoZj0+e2lmKHRoaXMuZGlzYWJsZWREZWNsKGYsdCkpcmV0dXJuO2xldCBkPWYucGFyZW50LHA9Zi5wcm9wLGg9Zi52YWx1ZTtpZihwPT09ImdyaWQtcm93LXNwYW4iKXt0Lndhcm4oImdyaWQtcm93LXNwYW4gaXMgbm90IHBhcnQgb2YgZmluYWwgR3JpZCBMYXlvdXQuIFVzZSBncmlkLXJvdy4iLHtub2RlOmZ9KTtyZXR1cm59ZWxzZSBpZihwPT09ImdyaWQtY29sdW1uLXNwYW4iKXt0Lndhcm4oImdyaWQtY29sdW1uLXNwYW4gaXMgbm90IHBhcnQgb2YgZmluYWwgR3JpZCBMYXlvdXQuIFVzZSBncmlkLWNvbHVtbi4iLHtub2RlOmZ9KTtyZXR1cm59ZWxzZSBpZihwPT09ImRpc3BsYXkiJiZoPT09ImJveCIpe3Qud2FybigiWW91IHNob3VsZCB3cml0ZSBkaXNwbGF5OiBmbGV4IGJ5IGZpbmFsIHNwZWMgaW5zdGVhZCBvZiBkaXNwbGF5OiBib3giLHtub2RlOmZ9KTtyZXR1cm59ZWxzZSBpZihwPT09InRleHQtZW1waGFzaXMtcG9zaXRpb24iKShoPT09InVuZGVyInx8aD09PSJvdmVyIikmJnQud2FybigiWW91IHNob3VsZCB1c2UgMiB2YWx1ZXMgZm9yIHRleHQtZW1waGFzaXMtcG9zaXRpb24gRm9yIGV4YW1wbGUsIGB1bmRlciBsZWZ0YCBpbnN0ZWFkIG9mIGp1c3QgYHVuZGVyYC4iLHtub2RlOmZ9KTtlbHNlIGlmKC9eKGFsaWdufGp1c3RpZnl8cGxhY2UpLShpdGVtc3xjb250ZW50KSQvLnRlc3QocCkmJmwoZikpKGg9PT0ic3RhcnQifHxoPT09ImVuZCIpJiZ0Lndhcm4oYCR7aH0gdmFsdWUgaGFzIG1peGVkIHN1cHBvcnQsIGNvbnNpZGVyIHVzaW5nIGZsZXgtJHtofSBpbnN0ZWFkYCx7bm9kZTpmfSk7ZWxzZSBpZihwPT09InRleHQtZGVjb3JhdGlvbi1za2lwIiYmaD09PSJpbmsiKXQud2FybigiUmVwbGFjZSB0ZXh0LWRlY29yYXRpb24tc2tpcDogaW5rIHRvIHRleHQtZGVjb3JhdGlvbi1za2lwLWluazogYXV0bywgYmVjYXVzZSBzcGVjIGhhZCBiZWVuIGNoYW5nZWQiLHtub2RlOmZ9KTtlbHNle2lmKGMmJnRoaXMuZ3JpZFN0YXR1cyhmLHQpKWlmKGYudmFsdWU9PT0ic3ViZ3JpZCImJnQud2FybigiSUUgZG9lcyBub3Qgc3VwcG9ydCBzdWJncmlkIix7bm9kZTpmfSksL14oYWxpZ258anVzdGlmeXxwbGFjZSktaXRlbXMkLy50ZXN0KHApJiZvKGYpKXtsZXQgdj1wLnJlcGxhY2UoIi1pdGVtcyIsIi1zZWxmIik7dC53YXJuKGBJRSBkb2VzIG5vdCBzdXBwb3J0ICR7cH0gb24gZ3JpZCBjb250YWluZXJzLiBUcnkgdXNpbmcgJHt2fSBvbiBjaGlsZCBlbGVtZW50cyBpbnN0ZWFkOiAke2YucGFyZW50LnNlbGVjdG9yfSA+ICogeyAke3Z9OiAke2YudmFsdWV9IH1gLHtub2RlOmZ9KX1lbHNlIGlmKC9eKGFsaWdufGp1c3RpZnl8cGxhY2UpLWNvbnRlbnQkLy50ZXN0KHApJiZvKGYpKXQud2FybihgSUUgZG9lcyBub3Qgc3VwcG9ydCAke2YucHJvcH0gb24gZ3JpZCBjb250YWluZXJzYCx7bm9kZTpmfSk7ZWxzZSBpZihwPT09ImRpc3BsYXkiJiZmLnZhbHVlPT09ImNvbnRlbnRzIil7dC53YXJuKCJQbGVhc2UgZG8gbm90IHVzZSBkaXNwbGF5OiBjb250ZW50czsgaWYgeW91IGhhdmUgZ3JpZCBzZXR0aW5nIGVuYWJsZWQiLHtub2RlOmZ9KTtyZXR1cm59ZWxzZSBpZihmLnByb3A9PT0iZ3JpZC1nYXAiKXtsZXQgdj10aGlzLmdyaWRTdGF0dXMoZix0KTt2PT09ImF1dG9wbGFjZSImJiFOTyhmKSYmIWF1KGYpP3Qud2FybigiZ3JpZC1nYXAgb25seSB3b3JrcyBpZiBncmlkLXRlbXBsYXRlKC1hcmVhcykgaXMgYmVpbmcgdXNlZCBvciBib3RoIHJvd3MgYW5kIGNvbHVtbnMgaGF2ZSBiZWVuIGRlY2xhcmVkIGFuZCBjZWxscyBoYXZlIG5vdCBiZWVuIG1hbnVhbGx5IHBsYWNlZCBpbnNpZGUgdGhlIGV4cGxpY2l0IGdyaWQiLHtub2RlOmZ9KToodj09PSEwfHx2PT09Im5vLWF1dG9wbGFjZSIpJiYhYXUoZikmJnQud2FybigiZ3JpZC1nYXAgb25seSB3b3JrcyBpZiBncmlkLXRlbXBsYXRlKC1hcmVhcykgaXMgYmVpbmcgdXNlZCIse25vZGU6Zn0pfWVsc2UgaWYocD09PSJncmlkLWF1dG8tY29sdW1ucyIpe3Qud2FybigiZ3JpZC1hdXRvLWNvbHVtbnMgaXMgbm90IHN1cHBvcnRlZCBieSBJRSIse25vZGU6Zn0pO3JldHVybn1lbHNlIGlmKHA9PT0iZ3JpZC1hdXRvLXJvd3MiKXt0Lndhcm4oImdyaWQtYXV0by1yb3dzIGlzIG5vdCBzdXBwb3J0ZWQgYnkgSUUiLHtub2RlOmZ9KTtyZXR1cm59ZWxzZSBpZihwPT09ImdyaWQtYXV0by1mbG93Iil7bGV0IHY9ZC5zb21lKHc9PncucHJvcD09PSJncmlkLXRlbXBsYXRlLXJvd3MiKSx5PWQuc29tZSh3PT53LnByb3A9PT0iZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zIik7YXUoZik/dC53YXJuKCJncmlkLWF1dG8tZmxvdyBpcyBub3Qgc3VwcG9ydGVkIGJ5IElFIix7bm9kZTpmfSk6aC5pbmNsdWRlcygiZGVuc2UiKT90Lndhcm4oImdyaWQtYXV0by1mbG93OiBkZW5zZSBpcyBub3Qgc3VwcG9ydGVkIGJ5IElFIix7bm9kZTpmfSk6IXYmJiF5JiZ0Lndhcm4oImdyaWQtYXV0by1mbG93IHdvcmtzIG9ubHkgaWYgZ3JpZC10ZW1wbGF0ZS1yb3dzIGFuZCBncmlkLXRlbXBsYXRlLWNvbHVtbnMgYXJlIHByZXNlbnQgaW4gdGhlIHNhbWUgcnVsZSIse25vZGU6Zn0pO3JldHVybn1lbHNlIGlmKGguaW5jbHVkZXMoImF1dG8tZml0Iikpe3Qud2FybigiYXV0by1maXQgdmFsdWUgaXMgbm90IHN1cHBvcnRlZCBieSBJRSIse25vZGU6Zix3b3JkOiJhdXRvLWZpdCJ9KTtyZXR1cm59ZWxzZSBpZihoLmluY2x1ZGVzKCJhdXRvLWZpbGwiKSl7dC53YXJuKCJhdXRvLWZpbGwgdmFsdWUgaXMgbm90IHN1cHBvcnRlZCBieSBJRSIse25vZGU6Zix3b3JkOiJhdXRvLWZpbGwifSk7cmV0dXJufWVsc2UgcC5zdGFydHNXaXRoKCJncmlkLXRlbXBsYXRlIikmJmguaW5jbHVkZXMoIlsiKSYmdC53YXJuKCJBdXRvcHJlZml4ZXIgY3VycmVudGx5IGRvZXMgbm90IHN1cHBvcnQgbGluZSBuYW1lcy4gVHJ5IHVzaW5nIGdyaWQtdGVtcGxhdGUtYXJlYXMgaW5zdGVhZC4iLHtub2RlOmYsd29yZDoiWyJ9KTtpZihoLmluY2x1ZGVzKCJyYWRpYWwtZ3JhZGllbnQiKSlpZihxTy50ZXN0KGYudmFsdWUpKXQud2FybigiR3JhZGllbnQgaGFzIG91dGRhdGVkIGRpcmVjdGlvbiBzeW50YXguIE5ldyBzeW50YXggaXMgbGlrZSBgY2xvc2VzdC1zaWRlIGF0IDAgMGAgaW5zdGVhZCBvZiBgMCAwLCBjbG9zZXN0LXNpZGVgLiIse25vZGU6Zn0pO2Vsc2V7bGV0IHY9cGIoaCk7Zm9yKGxldCB5IG9mIHYubm9kZXMpaWYoeS50eXBlPT09ImZ1bmN0aW9uIiYmeS52YWx1ZT09PSJyYWRpYWwtZ3JhZGllbnQiKWZvcihsZXQgdyBvZiB5Lm5vZGVzKXcudHlwZT09PSJ3b3JkIiYmKHcudmFsdWU9PT0iY292ZXIiP3Qud2FybigiR3JhZGllbnQgaGFzIG91dGRhdGVkIGRpcmVjdGlvbiBzeW50YXguIFJlcGxhY2UgYGNvdmVyYCB0byBgZmFydGhlc3QtY29ybmVyYC4iLHtub2RlOmZ9KTp3LnZhbHVlPT09ImNvbnRhaW4iJiZ0Lndhcm4oIkdyYWRpZW50IGhhcyBvdXRkYXRlZCBkaXJlY3Rpb24gc3ludGF4LiBSZXBsYWNlIGBjb250YWluYCB0byBgY2xvc2VzdC1zaWRlYC4iLHtub2RlOmZ9KSl9aC5pbmNsdWRlcygibGluZWFyLWdyYWRpZW50IikmJkRPLnRlc3QoaCkmJnQud2FybigiR3JhZGllbnQgaGFzIG91dGRhdGVkIGRpcmVjdGlvbiBzeW50YXguIE5ldyBzeW50YXggaXMgbGlrZSBgdG8gbGVmdGAgaW5zdGVhZCBvZiBgcmlnaHRgLiIse25vZGU6Zn0pfU1PLmluY2x1ZGVzKGYucHJvcCkmJihmLnZhbHVlLmluY2x1ZGVzKCItZmlsbC1hdmFpbGFibGUiKXx8KGYudmFsdWUuaW5jbHVkZXMoImZpbGwtYXZhaWxhYmxlIik/dC53YXJuKCJSZXBsYWNlIGZpbGwtYXZhaWxhYmxlIHRvIHN0cmV0Y2gsIGJlY2F1c2Ugc3BlYyBoYWQgYmVlbiBjaGFuZ2VkIix7bm9kZTpmfSk6Zi52YWx1ZS5pbmNsdWRlcygiZmlsbCIpJiZwYihoKS5ub2Rlcy5zb21lKHk9PnkudHlwZT09PSJ3b3JkIiYmeS52YWx1ZT09PSJmaWxsIikmJnQud2FybigiUmVwbGFjZSBmaWxsIHRvIHN0cmV0Y2gsIGJlY2F1c2Ugc3BlYyBoYWQgYmVlbiBjaGFuZ2VkIix7bm9kZTpmfSkpKTtsZXQgYjtpZihmLnByb3A9PT0idHJhbnNpdGlvbiJ8fGYucHJvcD09PSJ0cmFuc2l0aW9uLXByb3BlcnR5IilyZXR1cm4gdGhpcy5wcmVmaXhlcy50cmFuc2l0aW9uLmFkZChmLHQpO2lmKGYucHJvcD09PSJhbGlnbi1zZWxmIil7aWYodGhpcy5kaXNwbGF5VHlwZShmKSE9PSJncmlkIiYmdGhpcy5wcmVmaXhlcy5vcHRpb25zLmZsZXhib3ghPT0hMSYmKGI9dGhpcy5wcmVmaXhlcy5hZGRbImFsaWduLXNlbGYiXSxiJiZiLnByZWZpeGVzJiZiLnByb2Nlc3MoZikpLHRoaXMuZ3JpZFN0YXR1cyhmLHQpIT09ITEmJihiPXRoaXMucHJlZml4ZXMuYWRkWyJncmlkLXJvdy1hbGlnbiJdLGImJmIucHJlZml4ZXMpKXJldHVybiBiLnByb2Nlc3MoZix0KX1lbHNlIGlmKGYucHJvcD09PSJqdXN0aWZ5LXNlbGYiKXtpZih0aGlzLmdyaWRTdGF0dXMoZix0KSE9PSExJiYoYj10aGlzLnByZWZpeGVzLmFkZFsiZ3JpZC1jb2x1bW4tYWxpZ24iXSxiJiZiLnByZWZpeGVzKSlyZXR1cm4gYi5wcm9jZXNzKGYsdCl9ZWxzZSBpZihmLnByb3A9PT0icGxhY2Utc2VsZiIpe2lmKGI9dGhpcy5wcmVmaXhlcy5hZGRbInBsYWNlLXNlbGYiXSxiJiZiLnByZWZpeGVzJiZ0aGlzLmdyaWRTdGF0dXMoZix0KSE9PSExKXJldHVybiBiLnByb2Nlc3MoZix0KX1lbHNlIGlmKGI9dGhpcy5wcmVmaXhlcy5hZGRbZi5wcm9wXSxiJiZiLnByZWZpeGVzKXJldHVybiBiLnByb2Nlc3MoZix0KX0pLHRoaXMuZ3JpZFN0YXR1cyhlLHQpJiZJTyhlLHRoaXMuZGlzYWJsZWQpLGUud2Fsa0RlY2xzKGY9PntpZih0aGlzLmRpc2FibGVkVmFsdWUoZix0KSlyZXR1cm47bGV0IGQ9dGhpcy5wcmVmaXhlcy51bnByZWZpeGVkKGYucHJvcCkscD10aGlzLnByZWZpeGVzLnZhbHVlcygiYWRkIixkKTtpZihBcnJheS5pc0FycmF5KHApKWZvcihsZXQgaCBvZiBwKWgucHJvY2VzcyYmaC5wcm9jZXNzKGYsdCk7UE8uc2F2ZSh0aGlzLnByZWZpeGVzLGYpfSl9cmVtb3ZlKGUsdCl7bGV0IGk9dGhpcy5wcmVmaXhlcy5yZW1vdmVbIkByZXNvbHV0aW9uIl07ZS53YWxrQXRSdWxlcygobixzKT0+e3RoaXMucHJlZml4ZXMucmVtb3ZlW2BAJHtuLm5hbWV9YF0/dGhpcy5kaXNhYmxlZChuLHQpfHxuLnBhcmVudC5yZW1vdmVDaGlsZChzKTpuLm5hbWU9PT0ibWVkaWEiJiZuLnBhcmFtcy5pbmNsdWRlcygiLXJlc29sdXRpb24iKSYmaSYmaS5jbGVhbihuKX0pO2ZvcihsZXQgbiBvZiB0aGlzLnByZWZpeGVzLnJlbW92ZS5zZWxlY3RvcnMpZS53YWxrUnVsZXMoKHMsYSk9PntuLmNoZWNrKHMpJiYodGhpcy5kaXNhYmxlZChzLHQpfHxzLnBhcmVudC5yZW1vdmVDaGlsZChhKSl9KTtyZXR1cm4gZS53YWxrRGVjbHMoKG4scyk9PntpZih0aGlzLmRpc2FibGVkKG4sdCkpcmV0dXJuO2xldCBhPW4ucGFyZW50LG89dGhpcy5wcmVmaXhlcy51bnByZWZpeGVkKG4ucHJvcCk7aWYoKG4ucHJvcD09PSJ0cmFuc2l0aW9uInx8bi5wcm9wPT09InRyYW5zaXRpb24tcHJvcGVydHkiKSYmdGhpcy5wcmVmaXhlcy50cmFuc2l0aW9uLnJlbW92ZShuKSx0aGlzLnByZWZpeGVzLnJlbW92ZVtuLnByb3BdJiZ0aGlzLnByZWZpeGVzLnJlbW92ZVtuLnByb3BdLnJlbW92ZSl7bGV0IGw9dGhpcy5wcmVmaXhlcy5ncm91cChuKS5kb3duKGM9PnRoaXMucHJlZml4ZXMubm9ybWFsaXplKGMucHJvcCk9PT1vKTtpZihvPT09ImZsZXgtZmxvdyImJihsPSEwKSxuLnByb3A9PT0iLXdlYmtpdC1ib3gtb3JpZW50Iil7bGV0IGM9eyJmbGV4LWRpcmVjdGlvbiI6ITAsImZsZXgtZmxvdyI6ITB9O2lmKCFuLnBhcmVudC5zb21lKGY9PmNbZi5wcm9wXSkpcmV0dXJufWlmKGwmJiF0aGlzLndpdGhIYWNrVmFsdWUobikpe24ucmF3KCJiZWZvcmUiKS5pbmNsdWRlcyhgCmApJiZ0aGlzLnJlZHVjZVNwYWNlcyhuKSxhLnJlbW92ZUNoaWxkKHMpO3JldHVybn19Zm9yKGxldCBsIG9mIHRoaXMucHJlZml4ZXMudmFsdWVzKCJyZW1vdmUiLG8pKXtpZighbC5jaGVja3x8IWwuY2hlY2sobi52YWx1ZSkpY29udGludWU7aWYobz1sLnVucHJlZml4ZWQsdGhpcy5wcmVmaXhlcy5ncm91cChuKS5kb3duKGY9PmYudmFsdWUuaW5jbHVkZXMobykpKXthLnJlbW92ZUNoaWxkKHMpO3JldHVybn19fSl9d2l0aEhhY2tWYWx1ZShlKXtyZXR1cm4gZS5wcm9wPT09Ii13ZWJraXQtYmFja2dyb3VuZC1jbGlwIiYmZS52YWx1ZT09PSJ0ZXh0In1kaXNhYmxlZFZhbHVlKGUsdCl7cmV0dXJuIHRoaXMuZ3JpZFN0YXR1cyhlLHQpPT09ITEmJmUudHlwZT09PSJkZWNsIiYmZS5wcm9wPT09ImRpc3BsYXkiJiZlLnZhbHVlLmluY2x1ZGVzKCJncmlkIil8fHRoaXMucHJlZml4ZXMub3B0aW9ucy5mbGV4Ym94PT09ITEmJmUudHlwZT09PSJkZWNsIiYmZS5wcm9wPT09ImRpc3BsYXkiJiZlLnZhbHVlLmluY2x1ZGVzKCJmbGV4Iil8fGUudHlwZT09PSJkZWNsIiYmZS5wcm9wPT09ImNvbnRlbnQiPyEwOnRoaXMuZGlzYWJsZWQoZSx0KX1kaXNhYmxlZERlY2woZSx0KXtpZih0aGlzLmdyaWRTdGF0dXMoZSx0KT09PSExJiZlLnR5cGU9PT0iZGVjbCImJihlLnByb3AuaW5jbHVkZXMoImdyaWQiKXx8ZS5wcm9wPT09Imp1c3RpZnktaXRlbXMiKSlyZXR1cm4hMDtpZih0aGlzLnByZWZpeGVzLm9wdGlvbnMuZmxleGJveD09PSExJiZlLnR5cGU9PT0iZGVjbCIpe2xldCBpPVsib3JkZXIiLCJqdXN0aWZ5LWNvbnRlbnQiLCJhbGlnbi1pdGVtcyIsImFsaWduLWNvbnRlbnQiXTtpZihlLnByb3AuaW5jbHVkZXMoImZsZXgiKXx8aS5pbmNsdWRlcyhlLnByb3ApKXJldHVybiEwfXJldHVybiB0aGlzLmRpc2FibGVkKGUsdCl9ZGlzYWJsZWQoZSx0KXtpZighZSlyZXR1cm4hMTtpZihlLl9hdXRvcHJlZml4ZXJEaXNhYmxlZCE9PXZvaWQgMClyZXR1cm4gZS5fYXV0b3ByZWZpeGVyRGlzYWJsZWQ7aWYoZS5wYXJlbnQpe2xldCBuPWUucHJldigpO2lmKG4mJm4udHlwZT09PSJjb21tZW50IiYmJE8udGVzdChuLnRleHQpKXJldHVybiBlLl9hdXRvcHJlZml4ZXJEaXNhYmxlZD0hMCxlLl9hdXRvcHJlZml4ZXJTZWxmRGlzYWJsZWQ9ITAsITB9bGV0IGk9bnVsbDtpZihlLm5vZGVzKXtsZXQgbjtlLmVhY2gocz0+e3MudHlwZT09PSJjb21tZW50IiYmLyghXHMqKT9hdXRvcHJlZml4ZXI6XHMqKG9mZnxvbikvaS50ZXN0KHMudGV4dCkmJih0eXBlb2YgbiE9InVuZGVmaW5lZCI/dC53YXJuKCJTZWNvbmQgQXV0b3ByZWZpeGVyIGNvbnRyb2wgY29tbWVudCB3YXMgaWdub3JlZC4gQXV0b3ByZWZpeGVyIGFwcGxpZXMgY29udHJvbCBjb21tZW50IHRvIHdob2xlIGJsb2NrLCBub3QgdG8gbmV4dCBydWxlcy4iLHtub2RlOnN9KTpuPS9vbi9pLnRlc3Qocy50ZXh0KSl9KSxuIT09dm9pZCAwJiYoaT0hbil9aWYoIWUubm9kZXN8fGk9PT1udWxsKWlmKGUucGFyZW50KXtsZXQgbj10aGlzLmRpc2FibGVkKGUucGFyZW50LHQpO2UucGFyZW50Ll9hdXRvcHJlZml4ZXJTZWxmRGlzYWJsZWQ9PT0hMD9pPSExOmk9bn1lbHNlIGk9ITE7cmV0dXJuIGUuX2F1dG9wcmVmaXhlckRpc2FibGVkPWksaX1yZWR1Y2VTcGFjZXMoZSl7bGV0IHQ9ITE7aWYodGhpcy5wcmVmaXhlcy5ncm91cChlKS51cCgoKT0+KHQ9ITAsITApKSx0KXJldHVybjtsZXQgaT1lLnJhdygiYmVmb3JlIikuc3BsaXQoYApgKSxuPWlbaS5sZW5ndGgtMV0ubGVuZ3RoLHM9ITE7dGhpcy5wcmVmaXhlcy5ncm91cChlKS5kb3duKGE9PntpPWEucmF3KCJiZWZvcmUiKS5zcGxpdChgCmApO2xldCBvPWkubGVuZ3RoLTE7aVtvXS5sZW5ndGg+biYmKHM9PT0hMSYmKHM9aVtvXS5sZW5ndGgtbiksaVtvXT1pW29dLnNsaWNlKDAsLXMpLGEucmF3cy5iZWZvcmU9aS5qb2luKGAKYCkpfSl9ZGlzcGxheVR5cGUoZSl7Zm9yKGxldCB0IG9mIGUucGFyZW50Lm5vZGVzKWlmKHQucHJvcD09PSJkaXNwbGF5Iil7aWYodC52YWx1ZS5pbmNsdWRlcygiZmxleCIpKXJldHVybiJmbGV4IjtpZih0LnZhbHVlLmluY2x1ZGVzKCJncmlkIikpcmV0dXJuImdyaWQifXJldHVybiExfWdyaWRTdGF0dXMoZSx0KXtpZighZSlyZXR1cm4hMTtpZihlLl9hdXRvcHJlZml4ZXJHcmlkU3RhdHVzIT09dm9pZCAwKXJldHVybiBlLl9hdXRvcHJlZml4ZXJHcmlkU3RhdHVzO2xldCBpPW51bGw7aWYoZS5ub2Rlcyl7bGV0IG47ZS5lYWNoKHM9PntpZihzLnR5cGU9PT0iY29tbWVudCImJkxPLnRlc3Qocy50ZXh0KSl7bGV0IGE9LzpccyphdXRvcGxhY2UvaS50ZXN0KHMudGV4dCksbz0vbm8tYXV0b3BsYWNlL2kudGVzdChzLnRleHQpO3R5cGVvZiBuIT0idW5kZWZpbmVkIj90Lndhcm4oIlNlY29uZCBBdXRvcHJlZml4ZXIgZ3JpZCBjb250cm9sIGNvbW1lbnQgd2FzIGlnbm9yZWQuIEF1dG9wcmVmaXhlciBhcHBsaWVzIGNvbnRyb2wgY29tbWVudHMgdG8gdGhlIHdob2xlIGJsb2NrLCBub3QgdG8gdGhlIG5leHQgcnVsZXMuIix7bm9kZTpzfSk6YT9uPSJhdXRvcGxhY2UiOm8/bj0hMDpuPS9vbi9pLnRlc3Qocy50ZXh0KX19KSxuIT09dm9pZCAwJiYoaT1uKX1pZihlLnR5cGU9PT0iYXRydWxlIiYmZS5uYW1lPT09InN1cHBvcnRzIil7bGV0IG49ZS5wYXJhbXM7bi5pbmNsdWRlcygiZ3JpZCIpJiZuLmluY2x1ZGVzKCJhdXRvIikmJihpPSExKX1pZighZS5ub2Rlc3x8aT09PW51bGwpaWYoZS5wYXJlbnQpe2xldCBuPXRoaXMuZ3JpZFN0YXR1cyhlLnBhcmVudCx0KTtlLnBhcmVudC5fYXV0b3ByZWZpeGVyU2VsZkRpc2FibGVkPT09ITA/aT0hMTppPW59ZWxzZSB0eXBlb2YgdGhpcy5wcmVmaXhlcy5vcHRpb25zLmdyaWQhPSJ1bmRlZmluZWQiP2k9dGhpcy5wcmVmaXhlcy5vcHRpb25zLmdyaWQ6dHlwZW9mIG0uZW52LkFVVE9QUkVGSVhFUl9HUklEIT0idW5kZWZpbmVkIj9tLmVudi5BVVRPUFJFRklYRVJfR1JJRD09PSJhdXRvcGxhY2UiP2k9ImF1dG9wbGFjZSI6aT0hMDppPSExO3JldHVybiBlLl9hdXRvcHJlZml4ZXJHcmlkU3RhdHVzPWksaX19O2hiLmV4cG9ydHM9ZGJ9KTt2YXIgZ2I9eCgoaCQsbWIpPT57dSgpO21iLmV4cG9ydHM9e0E6e0E6eyIyIjoiSyBFIEYgRyBBIEIgSkMifSxCOnsiMSI6IkMgTCBNIEggTiBEIE8gUCBRIFIgUyBUIFUgViBXIFggWSBaIGEgYiBjIGQgZSBmIGcgaCBpIGogbiBvIHAgcSByIHMgdCB1IHYgdyB4IHkgeiBJIn0sQzp7IjEiOiIyIDMgNCA1IDYgNyA4IDkgQUIgQkIgQ0IgREIgRUIgRkIgR0IgSEIgSUIgSkIgS0IgTEIgTUIgTkIgT0IgUEIgUUIgUkIgU0IgVEIgVUIgVkIgV0IgWEIgWUIgWkIgYUIgYkIgY0IgMEIgZEIgMUIgZUIgZkIgZ0IgaEIgaUIgakIga0IgbEIgbUIgbkIgb0IgbSBwQiBxQiByQiBzQiB0QiBQIFEgUiAyQiBTIFQgVSBWIFcgWCBZIFogYSBiIGMgZCBlIGYgZyBoIGkgaiBuIG8gcCBxIHIgcyB0IHUgdiB3IHggeSB6IEkgdUIgM0IgNEIiLCIyIjoiMCAxIEtDIHpCIEogSyBFIEYgRyBBIEIgQyBMIE0gSCBOIEQgTyBrIGwgTEMgTUMifSxEOnsiMSI6IjggOSBBQiBCQiBDQiBEQiBFQiBGQiBHQiBIQiBJQiBKQiBLQiBMQiBNQiBOQiBPQiBQQiBRQiBSQiBTQiBUQiBVQiBWQiBXQiBYQiBZQiBaQiBhQiBiQiBjQiAwQiBkQiAxQiBlQiBmQiBnQiBoQiBpQiBqQiBrQiBsQiBtQiBuQiBvQiBtIHBCIHFCIHJCIHNCIHRCIFAgUSBSIFMgVCBVIFYgVyBYIFkgWiBhIGIgYyBkIGUgZiBnIGggaSBqIG4gbyBwIHEgciBzIHQgdSB2IHcgeCB5IHogSSB1QiAzQiA0QiIsIjIiOiIwIDEgMiAzIDQgNSA2IDcgSiBLIEUgRiBHIEEgQiBDIEwgTSBIIE4gRCBPIGsgbCJ9LEU6eyIxIjoiRyBBIEIgQyBMIE0gSCBEIFJDIDZCIHZCIHdCIDdCIFNDIFRDIDhCIDlCIHhCIEFDIHlCIEJDIENDIERDIEVDIEZDIEdDIFVDIiwiMiI6IjAgSiBLIEUgRiBOQyA1QiBPQyBQQyBRQyJ9LEY6eyIxIjoiMSAyIDMgNCA1IDYgNyA4IDkgSCBOIEQgTyBrIGwgQUIgQkIgQ0IgREIgRUIgRkIgR0IgSEIgSUIgSkIgS0IgTEIgTUIgTkIgT0IgUEIgUUIgUkIgU0IgVEIgVUIgVkIgV0IgWEIgWUIgWkIgYUIgYkIgY0IgZEIgZUIgZkIgZ0IgaEIgaUIgakIga0IgbEIgbUIgbkIgb0IgbSBwQiBxQiByQiBzQiB0QiBQIFEgUiAyQiBTIFQgVSBWIFcgWCBZIFogYSBiIGMgZCBlIGYgZyBoIGkgaiB3QiIsIjIiOiJHIEIgQyBWQyBXQyBYQyBZQyB2QiBIQyBaQyJ9LEc6eyIxIjoiRCBmQyBnQyBoQyBpQyBqQyBrQyBsQyBtQyBuQyBvQyBwQyBxQyByQyBzQyB0QyA4QiA5QiB4QiBBQyB5QiBCQyBDQyBEQyBFQyBGQyBHQyIsIjIiOiJGIDVCIGFDIElDIGJDIGNDIGRDIGVDIn0sSDp7IjEiOiJ1QyJ9LEk6eyIxIjoiSSB6QyAwQyIsIjIiOiJ6QiBKIHZDIHdDIHhDIHlDIElDIn0sSjp7IjIiOiJFIEEifSxLOnsiMSI6Im0iLCIyIjoiQSBCIEMgdkIgSEMgd0IifSxMOnsiMSI6IkkifSxNOnsiMSI6InVCIn0sTjp7IjIiOiJBIEIifSxPOnsiMSI6InhCIn0sUDp7IjEiOiJKIGsgbCAxQyAyQyAzQyA0QyA1QyA2QiA2QyA3QyA4QyA5QyBBRCB5QiBCRCBDRCBERCJ9LFE6eyIxIjoiN0IifSxSOnsiMSI6IkVEIn0sUzp7IjEiOiJGRCBHRCJ9fSxCOjQsQzoiQ1NTIEZlYXR1cmUgUXVlcmllcyJ9fSk7dmFyIHZiPXgoKG0kLHdiKT0+e3UoKTtmdW5jdGlvbiB5YihyKXtyZXR1cm4gcltyLmxlbmd0aC0xXX12YXIgYmI9e3BhcnNlKHIpe2xldCBlPVsiIl0sdD1bZV07Zm9yKGxldCBpIG9mIHIpe2lmKGk9PT0iKCIpe2U9WyIiXSx5Yih0KS5wdXNoKGUpLHQucHVzaChlKTtjb250aW51ZX1pZihpPT09IikiKXt0LnBvcCgpLGU9eWIodCksZS5wdXNoKCIiKTtjb250aW51ZX1lW2UubGVuZ3RoLTFdKz1pfXJldHVybiB0WzBdfSxzdHJpbmdpZnkocil7bGV0IGU9IiI7Zm9yKGxldCB0IG9mIHIpe2lmKHR5cGVvZiB0PT0ib2JqZWN0Iil7ZSs9YCgke2JiLnN0cmluZ2lmeSh0KX0pYDtjb250aW51ZX1lKz10fXJldHVybiBlfX07d2IuZXhwb3J0cz1iYn0pO3ZhciBDYj14KChnJCxBYik9Pnt1KCk7dmFyIEJPPWdiKCkse2ZlYXR1cmU6Rk99PShQcygpLFJzKSx7cGFyc2U6ak99PSRlKCksek89TXQoKSxsdT12YigpLFVPPUhlKCksVk89X2UoKSx4Yj1GTyhCTyksa2I9W107Zm9yKGxldCByIGluIHhiLnN0YXRzKXtsZXQgZT14Yi5zdGF0c1tyXTtmb3IobGV0IHQgaW4gZSl7bGV0IGk9ZVt0XTsveS8udGVzdChpKSYma2IucHVzaChyKyIgIit0KX19dmFyIFNiPWNsYXNze2NvbnN0cnVjdG9yKGUsdCl7dGhpcy5QcmVmaXhlcz1lLHRoaXMuYWxsPXR9cHJlZml4ZXIoKXtpZih0aGlzLnByZWZpeGVyQ2FjaGUpcmV0dXJuIHRoaXMucHJlZml4ZXJDYWNoZTtsZXQgZT10aGlzLmFsbC5icm93c2Vycy5zZWxlY3RlZC5maWx0ZXIoaT0+a2IuaW5jbHVkZXMoaSkpLHQ9bmV3IHpPKHRoaXMuYWxsLmJyb3dzZXJzLmRhdGEsZSx0aGlzLmFsbC5vcHRpb25zKTtyZXR1cm4gdGhpcy5wcmVmaXhlckNhY2hlPW5ldyB0aGlzLlByZWZpeGVzKHRoaXMuYWxsLmRhdGEsdCx0aGlzLmFsbC5vcHRpb25zKSx0aGlzLnByZWZpeGVyQ2FjaGV9cGFyc2UoZSl7bGV0IHQ9ZS5zcGxpdCgiOiIpLGk9dFswXSxuPXRbMV07cmV0dXJuIG58fChuPSIiKSxbaS50cmltKCksbi50cmltKCldfXZpcnR1YWwoZSl7bGV0W3QsaV09dGhpcy5wYXJzZShlKSxuPWpPKCJhe30iKS5maXJzdDtyZXR1cm4gbi5hcHBlbmQoe3Byb3A6dCx2YWx1ZTppLHJhd3M6e2JlZm9yZToiIn19KSxufXByZWZpeGVkKGUpe2xldCB0PXRoaXMudmlydHVhbChlKTtpZih0aGlzLmRpc2FibGVkKHQuZmlyc3QpKXJldHVybiB0Lm5vZGVzO2xldCBpPXt3YXJuOigpPT5udWxsfSxuPXRoaXMucHJlZml4ZXIoKS5hZGRbdC5maXJzdC5wcm9wXTtuJiZuLnByb2Nlc3MmJm4ucHJvY2Vzcyh0LmZpcnN0LGkpO2ZvcihsZXQgcyBvZiB0Lm5vZGVzKXtmb3IobGV0IGEgb2YgdGhpcy5wcmVmaXhlcigpLnZhbHVlcygiYWRkIix0LmZpcnN0LnByb3ApKWEucHJvY2VzcyhzKTtVTy5zYXZlKHRoaXMuYWxsLHMpfXJldHVybiB0Lm5vZGVzfWlzTm90KGUpe3JldHVybiB0eXBlb2YgZT09InN0cmluZyImJi9ub3RccyovaS50ZXN0KGUpfWlzT3IoZSl7cmV0dXJuIHR5cGVvZiBlPT0ic3RyaW5nIiYmL1xzKm9yXHMqL2kudGVzdChlKX1pc1Byb3AoZSl7cmV0dXJuIHR5cGVvZiBlPT0ib2JqZWN0IiYmZS5sZW5ndGg9PT0xJiZ0eXBlb2YgZVswXT09InN0cmluZyJ9aXNIYWNrKGUsdCl7cmV0dXJuIW5ldyBSZWdFeHAoYChcXCh8XFxzKSR7Vk8uZXNjYXBlUmVnZXhwKHQpfTpgKS50ZXN0KGUpfXRvUmVtb3ZlKGUsdCl7bGV0W2ksbl09dGhpcy5wYXJzZShlKSxzPXRoaXMuYWxsLnVucHJlZml4ZWQoaSksYT10aGlzLmFsbC5jbGVhbmVyKCk7aWYoYS5yZW1vdmVbaV0mJmEucmVtb3ZlW2ldLnJlbW92ZSYmIXRoaXMuaXNIYWNrKHQscykpcmV0dXJuITA7Zm9yKGxldCBvIG9mIGEudmFsdWVzKCJyZW1vdmUiLHMpKWlmKG8uY2hlY2sobikpcmV0dXJuITA7cmV0dXJuITF9cmVtb3ZlKGUsdCl7bGV0IGk9MDtmb3IoO2k8ZS5sZW5ndGg7KXtpZighdGhpcy5pc05vdChlW2ktMV0pJiZ0aGlzLmlzUHJvcChlW2ldKSYmdGhpcy5pc09yKGVbaSsxXSkpe2lmKHRoaXMudG9SZW1vdmUoZVtpXVswXSx0KSl7ZS5zcGxpY2UoaSwyKTtjb250aW51ZX1pKz0yO2NvbnRpbnVlfXR5cGVvZiBlW2ldPT0ib2JqZWN0IiYmKGVbaV09dGhpcy5yZW1vdmUoZVtpXSx0KSksaSs9MX1yZXR1cm4gZX1jbGVhbkJyYWNrZXRzKGUpe3JldHVybiBlLm1hcCh0PT50eXBlb2YgdCE9Im9iamVjdCI/dDp0Lmxlbmd0aD09PTEmJnR5cGVvZiB0WzBdPT0ib2JqZWN0Ij90aGlzLmNsZWFuQnJhY2tldHModFswXSk6dGhpcy5jbGVhbkJyYWNrZXRzKHQpKX1jb252ZXJ0KGUpe2xldCB0PVsiIl07Zm9yKGxldCBpIG9mIGUpdC5wdXNoKFtgJHtpLnByb3B9OiAke2kudmFsdWV9YF0pLHQucHVzaCgiIG9yICIpO3JldHVybiB0W3QubGVuZ3RoLTFdPSIiLHR9bm9ybWFsaXplKGUpe2lmKHR5cGVvZiBlIT0ib2JqZWN0IilyZXR1cm4gZTtpZihlPWUuZmlsdGVyKHQ9PnQhPT0iIiksdHlwZW9mIGVbMF09PSJzdHJpbmciKXtsZXQgdD1lWzBdLnRyaW0oKTtpZih0LmluY2x1ZGVzKCI6Iil8fHQ9PT0ic2VsZWN0b3IifHx0PT09Im5vdCBzZWxlY3RvciIpcmV0dXJuW2x1LnN0cmluZ2lmeShlKV19cmV0dXJuIGUubWFwKHQ9PnRoaXMubm9ybWFsaXplKHQpKX1hZGQoZSx0KXtyZXR1cm4gZS5tYXAoaT0+e2lmKHRoaXMuaXNQcm9wKGkpKXtsZXQgbj10aGlzLnByZWZpeGVkKGlbMF0pO3JldHVybiBuLmxlbmd0aD4xP3RoaXMuY29udmVydChuKTppfXJldHVybiB0eXBlb2YgaT09Im9iamVjdCI/dGhpcy5hZGQoaSx0KTppfSl9cHJvY2VzcyhlKXtsZXQgdD1sdS5wYXJzZShlLnBhcmFtcyk7dD10aGlzLm5vcm1hbGl6ZSh0KSx0PXRoaXMucmVtb3ZlKHQsZS5wYXJhbXMpLHQ9dGhpcy5hZGQodCxlLnBhcmFtcyksdD10aGlzLmNsZWFuQnJhY2tldHModCksZS5wYXJhbXM9bHUuc3RyaW5naWZ5KHQpfWRpc2FibGVkKGUpe2lmKCF0aGlzLmFsbC5vcHRpb25zLmdyaWQmJihlLnByb3A9PT0iZGlzcGxheSImJmUudmFsdWUuaW5jbHVkZXMoImdyaWQiKXx8ZS5wcm9wLmluY2x1ZGVzKCJncmlkIil8fGUucHJvcD09PSJqdXN0aWZ5LWl0ZW1zIikpcmV0dXJuITA7aWYodGhpcy5hbGwub3B0aW9ucy5mbGV4Ym94PT09ITEpe2lmKGUucHJvcD09PSJkaXNwbGF5IiYmZS52YWx1ZS5pbmNsdWRlcygiZmxleCIpKXJldHVybiEwO2xldCB0PVsib3JkZXIiLCJqdXN0aWZ5LWNvbnRlbnQiLCJhbGlnbi1pdGVtcyIsImFsaWduLWNvbnRlbnQiXTtpZihlLnByb3AuaW5jbHVkZXMoImZsZXgiKXx8dC5pbmNsdWRlcyhlLnByb3ApKXJldHVybiEwfXJldHVybiExfX07QWIuZXhwb3J0cz1TYn0pO3ZhciBPYj14KCh5JCxFYik9Pnt1KCk7dmFyIF9iPWNsYXNze2NvbnN0cnVjdG9yKGUsdCl7dGhpcy5wcmVmaXg9dCx0aGlzLnByZWZpeGVkPWUucHJlZml4ZWQodGhpcy5wcmVmaXgpLHRoaXMucmVnZXhwPWUucmVnZXhwKHRoaXMucHJlZml4KSx0aGlzLnByZWZpeGVkcz1lLnBvc3NpYmxlKCkubWFwKGk9PltlLnByZWZpeGVkKGkpLGUucmVnZXhwKGkpXSksdGhpcy51bnByZWZpeGVkPWUubmFtZSx0aGlzLm5hbWVSZWdleHA9ZS5yZWdleHAoKX1pc0hhY2soZSl7bGV0IHQ9ZS5wYXJlbnQuaW5kZXgoZSkrMSxpPWUucGFyZW50Lm5vZGVzO2Zvcig7dDxpLmxlbmd0aDspe2xldCBuPWlbdF0uc2VsZWN0b3I7aWYoIW4pcmV0dXJuITA7aWYobi5pbmNsdWRlcyh0aGlzLnVucHJlZml4ZWQpJiZuLm1hdGNoKHRoaXMubmFtZVJlZ2V4cCkpcmV0dXJuITE7bGV0IHM9ITE7Zm9yKGxldFthLG9db2YgdGhpcy5wcmVmaXhlZHMpaWYobi5pbmNsdWRlcyhhKSYmbi5tYXRjaChvKSl7cz0hMDticmVha31pZighcylyZXR1cm4hMDt0Kz0xfXJldHVybiEwfWNoZWNrKGUpe3JldHVybiEoIWUuc2VsZWN0b3IuaW5jbHVkZXModGhpcy5wcmVmaXhlZCl8fCFlLnNlbGVjdG9yLm1hdGNoKHRoaXMucmVnZXhwKXx8dGhpcy5pc0hhY2soZSkpfX07RWIuZXhwb3J0cz1fYn0pO3ZhciBrcj14KChiJCxSYik9Pnt1KCk7dmFye2xpc3Q6SE99PSRlKCksV089T2IoKSxHTz13cigpLFFPPU10KCksWU89X2UoKSxUYj1jbGFzcyBleHRlbmRzIEdPe2NvbnN0cnVjdG9yKGUsdCxpKXtzdXBlcihlLHQsaSk7dGhpcy5yZWdleHBDYWNoZT1uZXcgTWFwfWNoZWNrKGUpe3JldHVybiBlLnNlbGVjdG9yLmluY2x1ZGVzKHRoaXMubmFtZSk/ISFlLnNlbGVjdG9yLm1hdGNoKHRoaXMucmVnZXhwKCkpOiExfXByZWZpeGVkKGUpe3JldHVybiB0aGlzLm5hbWUucmVwbGFjZSgvXihcVyopLyxgJDEke2V9YCl9cmVnZXhwKGUpe2lmKCF0aGlzLnJlZ2V4cENhY2hlLmhhcyhlKSl7bGV0IHQ9ZT90aGlzLnByZWZpeGVkKGUpOnRoaXMubmFtZTt0aGlzLnJlZ2V4cENhY2hlLnNldChlLG5ldyBSZWdFeHAoYChefFteOiInPV0pJHtZTy5lc2NhcGVSZWdleHAodCl9YCwiZ2kiKSl9cmV0dXJuIHRoaXMucmVnZXhwQ2FjaGUuZ2V0KGUpfXBvc3NpYmxlKCl7cmV0dXJuIFFPLnByZWZpeGVzKCl9cHJlZml4ZWRzKGUpe2lmKGUuX2F1dG9wcmVmaXhlclByZWZpeGVkcyl7aWYoZS5fYXV0b3ByZWZpeGVyUHJlZml4ZWRzW3RoaXMubmFtZV0pcmV0dXJuIGUuX2F1dG9wcmVmaXhlclByZWZpeGVkc31lbHNlIGUuX2F1dG9wcmVmaXhlclByZWZpeGVkcz17fTtsZXQgdD17fTtpZihlLnNlbGVjdG9yLmluY2x1ZGVzKCIsIikpe2xldCBuPUhPLmNvbW1hKGUuc2VsZWN0b3IpLmZpbHRlcihzPT5zLmluY2x1ZGVzKHRoaXMubmFtZSkpO2ZvcihsZXQgcyBvZiB0aGlzLnBvc3NpYmxlKCkpdFtzXT1uLm1hcChhPT50aGlzLnJlcGxhY2UoYSxzKSkuam9pbigiLCAiKX1lbHNlIGZvcihsZXQgaSBvZiB0aGlzLnBvc3NpYmxlKCkpdFtpXT10aGlzLnJlcGxhY2UoZS5zZWxlY3RvcixpKTtyZXR1cm4gZS5fYXV0b3ByZWZpeGVyUHJlZml4ZWRzW3RoaXMubmFtZV09dCxlLl9hdXRvcHJlZml4ZXJQcmVmaXhlZHN9YWxyZWFkeShlLHQsaSl7bGV0IG49ZS5wYXJlbnQuaW5kZXgoZSktMTtmb3IoO24+PTA7KXtsZXQgcz1lLnBhcmVudC5ub2Rlc1tuXTtpZihzLnR5cGUhPT0icnVsZSIpcmV0dXJuITE7bGV0IGE9ITE7Zm9yKGxldCBvIGluIHRbdGhpcy5uYW1lXSl7bGV0IGw9dFt0aGlzLm5hbWVdW29dO2lmKHMuc2VsZWN0b3I9PT1sKXtpZihpPT09bylyZXR1cm4hMDthPSEwO2JyZWFrfX1pZighYSlyZXR1cm4hMTtuLT0xfXJldHVybiExfXJlcGxhY2UoZSx0KXtyZXR1cm4gZS5yZXBsYWNlKHRoaXMucmVnZXhwKCksYCQxJHt0aGlzLnByZWZpeGVkKHQpfWApfWFkZChlLHQpe2xldCBpPXRoaXMucHJlZml4ZWRzKGUpO2lmKHRoaXMuYWxyZWFkeShlLGksdCkpcmV0dXJuO2xldCBuPXRoaXMuY2xvbmUoZSx7c2VsZWN0b3I6aVt0aGlzLm5hbWVdW3RdfSk7ZS5wYXJlbnQuaW5zZXJ0QmVmb3JlKGUsbil9b2xkKGUpe3JldHVybiBuZXcgV08odGhpcyxlKX19O1JiLmV4cG9ydHM9VGJ9KTt2YXIgRGI9eCgodyQsSWIpPT57dSgpO3ZhciBLTz13cigpLFBiPWNsYXNzIGV4dGVuZHMgS097YWRkKGUsdCl7bGV0IGk9dCtlLm5hbWU7aWYoZS5wYXJlbnQuc29tZShhPT5hLm5hbWU9PT1pJiZhLnBhcmFtcz09PWUucGFyYW1zKSlyZXR1cm47bGV0IHM9dGhpcy5jbG9uZShlLHtuYW1lOml9KTtyZXR1cm4gZS5wYXJlbnQuaW5zZXJ0QmVmb3JlKGUscyl9cHJvY2VzcyhlKXtsZXQgdD10aGlzLnBhcmVudFByZWZpeChlKTtmb3IobGV0IGkgb2YgdGhpcy5wcmVmaXhlcykoIXR8fHQ9PT1pKSYmdGhpcy5hZGQoZSxpKX19O0liLmV4cG9ydHM9UGJ9KTt2YXIgJGI9eCgodiQscWIpPT57dSgpO3ZhciBYTz1rcigpLHV1PWNsYXNzIGV4dGVuZHMgWE97cHJlZml4ZWQoZSl7cmV0dXJuIGU9PT0iLXdlYmtpdC0iPyI6LXdlYmtpdC1mdWxsLXNjcmVlbiI6ZT09PSItbW96LSI/IjotbW96LWZ1bGwtc2NyZWVuIjpgOiR7ZX1mdWxsc2NyZWVuYH19O3V1Lm5hbWVzPVsiOmZ1bGxzY3JlZW4iXTtxYi5leHBvcnRzPXV1fSk7dmFyIE1iPXgoKHgkLExiKT0+e3UoKTt2YXIgWk89a3IoKSxmdT1jbGFzcyBleHRlbmRzIFpPe3Bvc3NpYmxlKCl7cmV0dXJuIHN1cGVyLnBvc3NpYmxlKCkuY29uY2F0KFsiLW1vei0gb2xkIiwiLW1zLSBvbGQiXSl9cHJlZml4ZWQoZSl7cmV0dXJuIGU9PT0iLXdlYmtpdC0iPyI6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIiOmU9PT0iLW1zLSI/Ijo6LW1zLWlucHV0LXBsYWNlaG9sZGVyIjplPT09Ii1tcy0gb2xkIj8iOi1tcy1pbnB1dC1wbGFjZWhvbGRlciI6ZT09PSItbW96LSBvbGQiPyI6LW1vei1wbGFjZWhvbGRlciI6YDo6JHtlfXBsYWNlaG9sZGVyYH19O2Z1Lm5hbWVzPVsiOjpwbGFjZWhvbGRlciJdO0xiLmV4cG9ydHM9ZnV9KTt2YXIgQmI9eCgoayQsTmIpPT57dSgpO3ZhciBKTz1rcigpLGN1PWNsYXNzIGV4dGVuZHMgSk97cHJlZml4ZWQoZSl7cmV0dXJuIGU9PT0iLW1zLSI/IjotbXMtaW5wdXQtcGxhY2Vob2xkZXIiOmA6JHtlfXBsYWNlaG9sZGVyLXNob3duYH19O2N1Lm5hbWVzPVsiOnBsYWNlaG9sZGVyLXNob3duIl07TmIuZXhwb3J0cz1jdX0pO3ZhciBqYj14KChTJCxGYik9Pnt1KCk7dmFyIGVUPWtyKCksdFQ9X2UoKSxwdT1jbGFzcyBleHRlbmRzIGVUe2NvbnN0cnVjdG9yKGUsdCxpKXtzdXBlcihlLHQsaSk7dGhpcy5wcmVmaXhlcyYmKHRoaXMucHJlZml4ZXM9dFQudW5pcSh0aGlzLnByZWZpeGVzLm1hcChuPT4iLXdlYmtpdC0iKSkpfXByZWZpeGVkKGUpe3JldHVybiBlPT09Ii13ZWJraXQtIj8iOjotd2Via2l0LWZpbGUtdXBsb2FkLWJ1dHRvbiI6YDo6JHtlfWZpbGUtc2VsZWN0b3ItYnV0dG9uYH19O3B1Lm5hbWVzPVsiOjpmaWxlLXNlbGVjdG9yLWJ1dHRvbiJdO0ZiLmV4cG9ydHM9cHV9KTt2YXIgUGU9eCgoQSQsemIpPT57dSgpO3piLmV4cG9ydHM9ZnVuY3Rpb24ocil7bGV0IGU7cmV0dXJuIHI9PT0iLXdlYmtpdC0gMjAwOSJ8fHI9PT0iLW1vei0iP2U9MjAwOTpyPT09Ii1tcy0iP2U9MjAxMjpyPT09Ii13ZWJraXQtIiYmKGU9ImZpbmFsIikscj09PSItd2Via2l0LSAyMDA5IiYmKHI9Ii13ZWJraXQtIiksW2Uscl19fSk7dmFyIFdiPXgoKEMkLEhiKT0+e3UoKTt2YXIgVWI9JGUoKS5saXN0LFZiPVBlKCksclQ9aigpLFNyPWNsYXNzIGV4dGVuZHMgclR7cHJlZml4ZWQoZSx0KXtsZXQgaTtyZXR1cm5baSx0XT1WYih0KSxpPT09MjAwOT90KyJib3gtZmxleCI6c3VwZXIucHJlZml4ZWQoZSx0KX1ub3JtYWxpemUoKXtyZXR1cm4iZmxleCJ9c2V0KGUsdCl7bGV0IGk9VmIodClbMF07aWYoaT09PTIwMDkpcmV0dXJuIGUudmFsdWU9VWIuc3BhY2UoZS52YWx1ZSlbMF0sZS52YWx1ZT1Tci5vbGRWYWx1ZXNbZS52YWx1ZV18fGUudmFsdWUsc3VwZXIuc2V0KGUsdCk7aWYoaT09PTIwMTIpe2xldCBuPVViLnNwYWNlKGUudmFsdWUpO24ubGVuZ3RoPT09MyYmblsyXT09PSIwIiYmKGUudmFsdWU9bi5zbGljZSgwLDIpLmNvbmNhdCgiMHB4Iikuam9pbigiICIpKX1yZXR1cm4gc3VwZXIuc2V0KGUsdCl9fTtTci5uYW1lcz1bImZsZXgiLCJib3gtZmxleCJdO1NyLm9sZFZhbHVlcz17YXV0bzoiMSIsbm9uZToiMCJ9O0hiLmV4cG9ydHM9U3J9KTt2YXIgWWI9eCgoXyQsUWIpPT57dSgpO3ZhciBHYj1QZSgpLGlUPWooKSxkdT1jbGFzcyBleHRlbmRzIGlUe3ByZWZpeGVkKGUsdCl7bGV0IGk7cmV0dXJuW2ksdF09R2IodCksaT09PTIwMDk/dCsiYm94LW9yZGluYWwtZ3JvdXAiOmk9PT0yMDEyP3QrImZsZXgtb3JkZXIiOnN1cGVyLnByZWZpeGVkKGUsdCl9bm9ybWFsaXplKCl7cmV0dXJuIm9yZGVyIn1zZXQoZSx0KXtyZXR1cm4gR2IodClbMF09PT0yMDA5JiYvXGQvLnRlc3QoZS52YWx1ZSk/KGUudmFsdWU9KHBhcnNlSW50KGUudmFsdWUpKzEpLnRvU3RyaW5nKCksc3VwZXIuc2V0KGUsdCkpOnN1cGVyLnNldChlLHQpfX07ZHUubmFtZXM9WyJvcmRlciIsImZsZXgtb3JkZXIiLCJib3gtb3JkaW5hbC1ncm91cCJdO1FiLmV4cG9ydHM9ZHV9KTt2YXIgWGI9eCgoRSQsS2IpPT57dSgpO3ZhciBuVD1qKCksaHU9Y2xhc3MgZXh0ZW5kcyBuVHtjaGVjayhlKXtsZXQgdD1lLnZhbHVlO3JldHVybiF0LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoImFscGhhKCIpJiYhdC5pbmNsdWRlcygiRFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQiKSYmIXQuaW5jbHVkZXMoImRhdGE6aW1hZ2Uvc3ZnK3htbCIpfX07aHUubmFtZXM9WyJmaWx0ZXIiXTtLYi5leHBvcnRzPWh1fSk7dmFyIEpiPXgoKE8kLFpiKT0+e3UoKTt2YXIgc1Q9aigpLG11PWNsYXNzIGV4dGVuZHMgc1R7aW5zZXJ0KGUsdCxpLG4pe2lmKHQhPT0iLW1zLSIpcmV0dXJuIHN1cGVyLmluc2VydChlLHQsaSk7bGV0IHM9dGhpcy5jbG9uZShlKSxhPWUucHJvcC5yZXBsYWNlKC9lbmQkLywic3RhcnQiKSxvPXQrZS5wcm9wLnJlcGxhY2UoL2VuZCQvLCJzcGFuIik7aWYoIWUucGFyZW50LnNvbWUobD0+bC5wcm9wPT09bykpe2lmKHMucHJvcD1vLGUudmFsdWUuaW5jbHVkZXMoInNwYW4iKSlzLnZhbHVlPWUudmFsdWUucmVwbGFjZSgvc3BhblxzL2ksIiIpO2Vsc2V7bGV0IGw7aWYoZS5wYXJlbnQud2Fsa0RlY2xzKGEsYz0+e2w9Y30pLGwpe2xldCBjPU51bWJlcihlLnZhbHVlKS1OdW1iZXIobC52YWx1ZSkrIiI7cy52YWx1ZT1jfWVsc2UgZS53YXJuKG4sYENhbiBub3QgcHJlZml4ICR7ZS5wcm9wfSAoJHthfSBpcyBub3QgZm91bmQpYCl9ZS5jbG9uZUJlZm9yZShzKX19fTttdS5uYW1lcz1bImdyaWQtcm93LWVuZCIsImdyaWQtY29sdW1uLWVuZCJdO1piLmV4cG9ydHM9bXV9KTt2YXIgdHc9eCgoVCQsZXcpPT57dSgpO3ZhciBhVD1qKCksZ3U9Y2xhc3MgZXh0ZW5kcyBhVHtjaGVjayhlKXtyZXR1cm4hZS52YWx1ZS5zcGxpdCgvXHMrLykuc29tZSh0PT57bGV0IGk9dC50b0xvd2VyQ2FzZSgpO3JldHVybiBpPT09InJldmVyc2UifHxpPT09ImFsdGVybmF0ZS1yZXZlcnNlIn0pfX07Z3UubmFtZXM9WyJhbmltYXRpb24iLCJhbmltYXRpb24tZGlyZWN0aW9uIl07ZXcuZXhwb3J0cz1ndX0pO3ZhciBpdz14KChSJCxydyk9Pnt1KCk7dmFyIG9UPVBlKCksbFQ9aigpLHl1PWNsYXNzIGV4dGVuZHMgbFR7aW5zZXJ0KGUsdCxpKXtsZXQgbjtpZihbbix0XT1vVCh0KSxuIT09MjAwOSlyZXR1cm4gc3VwZXIuaW5zZXJ0KGUsdCxpKTtsZXQgcz1lLnZhbHVlLnNwbGl0KC9ccysvKS5maWx0ZXIoZD0+ZCE9PSJ3cmFwIiYmZCE9PSJub3dyYXAiJiYid3JhcC1yZXZlcnNlIik7aWYocy5sZW5ndGg9PT0wfHxlLnBhcmVudC5zb21lKGQ9PmQucHJvcD09PXQrImJveC1vcmllbnQifHxkLnByb3A9PT10KyJib3gtZGlyZWN0aW9uIikpcmV0dXJuO2xldCBvPXNbMF0sbD1vLmluY2x1ZGVzKCJyb3ciKT8iaG9yaXpvbnRhbCI6InZlcnRpY2FsIixjPW8uaW5jbHVkZXMoInJldmVyc2UiKT8icmV2ZXJzZSI6Im5vcm1hbCIsZj10aGlzLmNsb25lKGUpO3JldHVybiBmLnByb3A9dCsiYm94LW9yaWVudCIsZi52YWx1ZT1sLHRoaXMubmVlZENhc2NhZGUoZSkmJihmLnJhd3MuYmVmb3JlPXRoaXMuY2FsY0JlZm9yZShpLGUsdCkpLGUucGFyZW50Lmluc2VydEJlZm9yZShlLGYpLGY9dGhpcy5jbG9uZShlKSxmLnByb3A9dCsiYm94LWRpcmVjdGlvbiIsZi52YWx1ZT1jLHRoaXMubmVlZENhc2NhZGUoZSkmJihmLnJhd3MuYmVmb3JlPXRoaXMuY2FsY0JlZm9yZShpLGUsdCkpLGUucGFyZW50Lmluc2VydEJlZm9yZShlLGYpfX07eXUubmFtZXM9WyJmbGV4LWZsb3ciLCJib3gtZGlyZWN0aW9uIiwiYm94LW9yaWVudCJdO3J3LmV4cG9ydHM9eXV9KTt2YXIgc3c9eCgoUCQsbncpPT57dSgpO3ZhciB1VD1QZSgpLGZUPWooKSxidT1jbGFzcyBleHRlbmRzIGZUe25vcm1hbGl6ZSgpe3JldHVybiJmbGV4In1wcmVmaXhlZChlLHQpe2xldCBpO3JldHVybltpLHRdPXVUKHQpLGk9PT0yMDA5P3QrImJveC1mbGV4IjppPT09MjAxMj90KyJmbGV4LXBvc2l0aXZlIjpzdXBlci5wcmVmaXhlZChlLHQpfX07YnUubmFtZXM9WyJmbGV4LWdyb3ciLCJmbGV4LXBvc2l0aXZlIl07bncuZXhwb3J0cz1idX0pO3ZhciBvdz14KChJJCxhdyk9Pnt1KCk7dmFyIGNUPVBlKCkscFQ9aigpLHd1PWNsYXNzIGV4dGVuZHMgcFR7c2V0KGUsdCl7aWYoY1QodClbMF0hPT0yMDA5KXJldHVybiBzdXBlci5zZXQoZSx0KX19O3d1Lm5hbWVzPVsiZmxleC13cmFwIl07YXcuZXhwb3J0cz13dX0pO3ZhciB1dz14KChEJCxsdyk9Pnt1KCk7dmFyIGRUPWooKSxBcj1CdCgpLHZ1PWNsYXNzIGV4dGVuZHMgZFR7aW5zZXJ0KGUsdCxpLG4pe2lmKHQhPT0iLW1zLSIpcmV0dXJuIHN1cGVyLmluc2VydChlLHQsaSk7bGV0IHM9QXIucGFyc2UoZSksW2Esb109QXIudHJhbnNsYXRlKHMsMCwyKSxbbCxjXT1Bci50cmFuc2xhdGUocywxLDMpO1tbImdyaWQtcm93IixhXSxbImdyaWQtcm93LXNwYW4iLG9dLFsiZ3JpZC1jb2x1bW4iLGxdLFsiZ3JpZC1jb2x1bW4tc3BhbiIsY11dLmZvckVhY2goKFtmLGRdKT0+e0FyLmluc2VydERlY2woZSxmLGQpfSksQXIud2FyblRlbXBsYXRlU2VsZWN0b3JOb3RGb3VuZChlLG4pLEFyLndhcm5JZkdyaWRSb3dDb2x1bW5FeGlzdHMoZSxuKX19O3Z1Lm5hbWVzPVsiZ3JpZC1hcmVhIl07bHcuZXhwb3J0cz12dX0pO3ZhciBjdz14KChxJCxmdyk9Pnt1KCk7dmFyIGhUPWooKSxCaT1CdCgpLHh1PWNsYXNzIGV4dGVuZHMgaFR7aW5zZXJ0KGUsdCxpKXtpZih0IT09Ii1tcy0iKXJldHVybiBzdXBlci5pbnNlcnQoZSx0LGkpO2lmKGUucGFyZW50LnNvbWUoYT0+YS5wcm9wPT09Ii1tcy1ncmlkLXJvdy1hbGlnbiIpKXJldHVybjtsZXRbW24sc11dPUJpLnBhcnNlKGUpO3M/KEJpLmluc2VydERlY2woZSwiZ3JpZC1yb3ctYWxpZ24iLG4pLEJpLmluc2VydERlY2woZSwiZ3JpZC1jb2x1bW4tYWxpZ24iLHMpKTooQmkuaW5zZXJ0RGVjbChlLCJncmlkLXJvdy1hbGlnbiIsbiksQmkuaW5zZXJ0RGVjbChlLCJncmlkLWNvbHVtbi1hbGlnbiIsbikpfX07eHUubmFtZXM9WyJwbGFjZS1zZWxmIl07ZncuZXhwb3J0cz14dX0pO3ZhciBkdz14KCgkJCxwdyk9Pnt1KCk7dmFyIG1UPWooKSxrdT1jbGFzcyBleHRlbmRzIG1Ue2NoZWNrKGUpe2xldCB0PWUudmFsdWU7cmV0dXJuIXQuaW5jbHVkZXMoIi8iKXx8dC5pbmNsdWRlcygic3BhbiIpfW5vcm1hbGl6ZShlKXtyZXR1cm4gZS5yZXBsYWNlKCItc3RhcnQiLCIiKX1wcmVmaXhlZChlLHQpe2xldCBpPXN1cGVyLnByZWZpeGVkKGUsdCk7cmV0dXJuIHQ9PT0iLW1zLSImJihpPWkucmVwbGFjZSgiLXN0YXJ0IiwiIikpLGl9fTtrdS5uYW1lcz1bImdyaWQtcm93LXN0YXJ0IiwiZ3JpZC1jb2x1bW4tc3RhcnQiXTtwdy5leHBvcnRzPWt1fSk7dmFyIGd3PXgoKEwkLG13KT0+e3UoKTt2YXIgaHc9UGUoKSxnVD1qKCksQ3I9Y2xhc3MgZXh0ZW5kcyBnVHtjaGVjayhlKXtyZXR1cm4gZS5wYXJlbnQmJiFlLnBhcmVudC5zb21lKHQ9PnQucHJvcCYmdC5wcm9wLnN0YXJ0c1dpdGgoImdyaWQtIikpfXByZWZpeGVkKGUsdCl7bGV0IGk7cmV0dXJuW2ksdF09aHcodCksaT09PTIwMTI/dCsiZmxleC1pdGVtLWFsaWduIjpzdXBlci5wcmVmaXhlZChlLHQpfW5vcm1hbGl6ZSgpe3JldHVybiJhbGlnbi1zZWxmIn1zZXQoZSx0KXtsZXQgaT1odyh0KVswXTtpZihpPT09MjAxMilyZXR1cm4gZS52YWx1ZT1Dci5vbGRWYWx1ZXNbZS52YWx1ZV18fGUudmFsdWUsc3VwZXIuc2V0KGUsdCk7aWYoaT09PSJmaW5hbCIpcmV0dXJuIHN1cGVyLnNldChlLHQpfX07Q3IubmFtZXM9WyJhbGlnbi1zZWxmIiwiZmxleC1pdGVtLWFsaWduIl07Q3Iub2xkVmFsdWVzPXsiZmxleC1lbmQiOiJlbmQiLCJmbGV4LXN0YXJ0Ijoic3RhcnQifTttdy5leHBvcnRzPUNyfSk7dmFyIGJ3PXgoKE0kLHl3KT0+e3UoKTt2YXIgeVQ9aigpLGJUPV9lKCksU3U9Y2xhc3MgZXh0ZW5kcyB5VHtjb25zdHJ1Y3RvcihlLHQsaSl7c3VwZXIoZSx0LGkpO3RoaXMucHJlZml4ZXMmJih0aGlzLnByZWZpeGVzPWJULnVuaXEodGhpcy5wcmVmaXhlcy5tYXAobj0+bj09PSItbXMtIj8iLXdlYmtpdC0iOm4pKSl9fTtTdS5uYW1lcz1bImFwcGVhcmFuY2UiXTt5dy5leHBvcnRzPVN1fSk7dmFyIHh3PXgoKE4kLHZ3KT0+e3UoKTt2YXIgd3c9UGUoKSx3VD1qKCksQXU9Y2xhc3MgZXh0ZW5kcyB3VHtub3JtYWxpemUoKXtyZXR1cm4iZmxleC1iYXNpcyJ9cHJlZml4ZWQoZSx0KXtsZXQgaTtyZXR1cm5baSx0XT13dyh0KSxpPT09MjAxMj90KyJmbGV4LXByZWZlcnJlZC1zaXplIjpzdXBlci5wcmVmaXhlZChlLHQpfXNldChlLHQpe2xldCBpO2lmKFtpLHRdPXd3KHQpLGk9PT0yMDEyfHxpPT09ImZpbmFsIilyZXR1cm4gc3VwZXIuc2V0KGUsdCl9fTtBdS5uYW1lcz1bImZsZXgtYmFzaXMiLCJmbGV4LXByZWZlcnJlZC1zaXplIl07dncuZXhwb3J0cz1BdX0pO3ZhciBTdz14KChCJCxrdyk9Pnt1KCk7dmFyIHZUPWooKSxDdT1jbGFzcyBleHRlbmRzIHZUe25vcm1hbGl6ZSgpe3JldHVybiB0aGlzLm5hbWUucmVwbGFjZSgiYm94LWltYWdlIiwiYm9yZGVyIil9cHJlZml4ZWQoZSx0KXtsZXQgaT1zdXBlci5wcmVmaXhlZChlLHQpO3JldHVybiB0PT09Ii13ZWJraXQtIiYmKGk9aS5yZXBsYWNlKCJib3JkZXIiLCJib3gtaW1hZ2UiKSksaX19O0N1Lm5hbWVzPVsibWFzay1ib3JkZXIiLCJtYXNrLWJvcmRlci1zb3VyY2UiLCJtYXNrLWJvcmRlci1zbGljZSIsIm1hc2stYm9yZGVyLXdpZHRoIiwibWFzay1ib3JkZXItb3V0c2V0IiwibWFzay1ib3JkZXItcmVwZWF0IiwibWFzay1ib3gtaW1hZ2UiLCJtYXNrLWJveC1pbWFnZS1zb3VyY2UiLCJtYXNrLWJveC1pbWFnZS1zbGljZSIsIm1hc2stYm94LWltYWdlLXdpZHRoIiwibWFzay1ib3gtaW1hZ2Utb3V0c2V0IiwibWFzay1ib3gtaW1hZ2UtcmVwZWF0Il07a3cuZXhwb3J0cz1DdX0pO3ZhciBDdz14KChGJCxBdyk9Pnt1KCk7dmFyIHhUPWooKSxsdD1jbGFzcyBleHRlbmRzIHhUe2luc2VydChlLHQsaSl7bGV0IG49ZS5wcm9wPT09Im1hc2stY29tcG9zaXRlIixzO24/cz1lLnZhbHVlLnNwbGl0KCIsIik6cz1lLnZhbHVlLm1hdGNoKGx0LnJlZ2V4cCl8fFtdLHM9cy5tYXAoYz0+Yy50cmltKCkpLmZpbHRlcihjPT5jKTtsZXQgYT1zLmxlbmd0aCxvO2lmKGEmJihvPXRoaXMuY2xvbmUoZSksby52YWx1ZT1zLm1hcChjPT5sdC5vbGRWYWx1ZXNbY118fGMpLmpvaW4oIiwgIikscy5pbmNsdWRlcygiaW50ZXJzZWN0IikmJihvLnZhbHVlKz0iLCB4b3IiKSxvLnByb3A9dCsibWFzay1jb21wb3NpdGUiKSxuKXJldHVybiBhPyh0aGlzLm5lZWRDYXNjYWRlKGUpJiYoby5yYXdzLmJlZm9yZT10aGlzLmNhbGNCZWZvcmUoaSxlLHQpKSxlLnBhcmVudC5pbnNlcnRCZWZvcmUoZSxvKSk6dm9pZCAwO2xldCBsPXRoaXMuY2xvbmUoZSk7cmV0dXJuIGwucHJvcD10K2wucHJvcCxhJiYobC52YWx1ZT1sLnZhbHVlLnJlcGxhY2UobHQucmVnZXhwLCIiKSksdGhpcy5uZWVkQ2FzY2FkZShlKSYmKGwucmF3cy5iZWZvcmU9dGhpcy5jYWxjQmVmb3JlKGksZSx0KSksZS5wYXJlbnQuaW5zZXJ0QmVmb3JlKGUsbCksYT8odGhpcy5uZWVkQ2FzY2FkZShlKSYmKG8ucmF3cy5iZWZvcmU9dGhpcy5jYWxjQmVmb3JlKGksZSx0KSksZS5wYXJlbnQuaW5zZXJ0QmVmb3JlKGUsbykpOmV9fTtsdC5uYW1lcz1bIm1hc2siLCJtYXNrLWNvbXBvc2l0ZSJdO2x0Lm9sZFZhbHVlcz17YWRkOiJzb3VyY2Utb3ZlciIsc3VidHJhY3Q6InNvdXJjZS1vdXQiLGludGVyc2VjdDoic291cmNlLWluIixleGNsdWRlOiJ4b3IifTtsdC5yZWdleHA9bmV3IFJlZ0V4cChgXFxzKygke09iamVjdC5rZXlzKGx0Lm9sZFZhbHVlcykuam9pbigifCIpfSlcXGIoPyFcXCkpXFxzKig/PVssXSlgLCJpZyIpO0F3LmV4cG9ydHM9bHR9KTt2YXIgT3c9eCgoaiQsRXcpPT57dSgpO3ZhciBfdz1QZSgpLGtUPWooKSxfcj1jbGFzcyBleHRlbmRzIGtUe3ByZWZpeGVkKGUsdCl7bGV0IGk7cmV0dXJuW2ksdF09X3codCksaT09PTIwMDk/dCsiYm94LWFsaWduIjppPT09MjAxMj90KyJmbGV4LWFsaWduIjpzdXBlci5wcmVmaXhlZChlLHQpfW5vcm1hbGl6ZSgpe3JldHVybiJhbGlnbi1pdGVtcyJ9c2V0KGUsdCl7bGV0IGk9X3codClbMF07cmV0dXJuKGk9PT0yMDA5fHxpPT09MjAxMikmJihlLnZhbHVlPV9yLm9sZFZhbHVlc1tlLnZhbHVlXXx8ZS52YWx1ZSksc3VwZXIuc2V0KGUsdCl9fTtfci5uYW1lcz1bImFsaWduLWl0ZW1zIiwiZmxleC1hbGlnbiIsImJveC1hbGlnbiJdO19yLm9sZFZhbHVlcz17ImZsZXgtZW5kIjoiZW5kIiwiZmxleC1zdGFydCI6InN0YXJ0In07RXcuZXhwb3J0cz1fcn0pO3ZhciBSdz14KCh6JCxUdyk9Pnt1KCk7dmFyIFNUPWooKSxfdT1jbGFzcyBleHRlbmRzIFNUe3NldChlLHQpe3JldHVybiB0PT09Ii1tcy0iJiZlLnZhbHVlPT09ImNvbnRhaW4iJiYoZS52YWx1ZT0iZWxlbWVudCIpLHN1cGVyLnNldChlLHQpfWluc2VydChlLHQsaSl7aWYoIShlLnZhbHVlPT09ImFsbCImJnQ9PT0iLW1zLSIpKXJldHVybiBzdXBlci5pbnNlcnQoZSx0LGkpfX07X3UubmFtZXM9WyJ1c2VyLXNlbGVjdCJdO1R3LmV4cG9ydHM9X3V9KTt2YXIgRHc9eCgoVSQsSXcpPT57dSgpO3ZhciBQdz1QZSgpLEFUPWooKSxFdT1jbGFzcyBleHRlbmRzIEFUe25vcm1hbGl6ZSgpe3JldHVybiJmbGV4LXNocmluayJ9cHJlZml4ZWQoZSx0KXtsZXQgaTtyZXR1cm5baSx0XT1Qdyh0KSxpPT09MjAxMj90KyJmbGV4LW5lZ2F0aXZlIjpzdXBlci5wcmVmaXhlZChlLHQpfXNldChlLHQpe2xldCBpO2lmKFtpLHRdPVB3KHQpLGk9PT0yMDEyfHxpPT09ImZpbmFsIilyZXR1cm4gc3VwZXIuc2V0KGUsdCl9fTtFdS5uYW1lcz1bImZsZXgtc2hyaW5rIiwiZmxleC1uZWdhdGl2ZSJdO0l3LmV4cG9ydHM9RXV9KTt2YXIgJHc9eCgoViQscXcpPT57dSgpO3ZhciBDVD1qKCksT3U9Y2xhc3MgZXh0ZW5kcyBDVHtwcmVmaXhlZChlLHQpe3JldHVybmAke3R9Y29sdW1uLSR7ZX1gfW5vcm1hbGl6ZShlKXtyZXR1cm4gZS5pbmNsdWRlcygiaW5zaWRlIik/ImJyZWFrLWluc2lkZSI6ZS5pbmNsdWRlcygiYmVmb3JlIik/ImJyZWFrLWJlZm9yZSI6ImJyZWFrLWFmdGVyIn1zZXQoZSx0KXtyZXR1cm4oZS5wcm9wPT09ImJyZWFrLWluc2lkZSImJmUudmFsdWU9PT0iYXZvaWQtY29sdW1uInx8ZS52YWx1ZT09PSJhdm9pZC1wYWdlIikmJihlLnZhbHVlPSJhdm9pZCIpLHN1cGVyLnNldChlLHQpfWluc2VydChlLHQsaSl7aWYoZS5wcm9wIT09ImJyZWFrLWluc2lkZSIpcmV0dXJuIHN1cGVyLmluc2VydChlLHQsaSk7aWYoISgvcmVnaW9uL2kudGVzdChlLnZhbHVlKXx8L3BhZ2UvaS50ZXN0KGUudmFsdWUpKSlyZXR1cm4gc3VwZXIuaW5zZXJ0KGUsdCxpKX19O091Lm5hbWVzPVsiYnJlYWstaW5zaWRlIiwicGFnZS1icmVhay1pbnNpZGUiLCJjb2x1bW4tYnJlYWstaW5zaWRlIiwiYnJlYWstYmVmb3JlIiwicGFnZS1icmVhay1iZWZvcmUiLCJjb2x1bW4tYnJlYWstYmVmb3JlIiwiYnJlYWstYWZ0ZXIiLCJwYWdlLWJyZWFrLWFmdGVyIiwiY29sdW1uLWJyZWFrLWFmdGVyIl07cXcuZXhwb3J0cz1PdX0pO3ZhciBNdz14KChIJCxMdyk9Pnt1KCk7dmFyIF9UPWooKSxUdT1jbGFzcyBleHRlbmRzIF9Ue3ByZWZpeGVkKGUsdCl7cmV0dXJuIHQrInByaW50LWNvbG9yLWFkanVzdCJ9bm9ybWFsaXplKCl7cmV0dXJuImNvbG9yLWFkanVzdCJ9fTtUdS5uYW1lcz1bImNvbG9yLWFkanVzdCIsInByaW50LWNvbG9yLWFkanVzdCJdO0x3LmV4cG9ydHM9VHV9KTt2YXIgQnc9eCgoVyQsTncpPT57dSgpO3ZhciBFVD1qKCksRXI9Y2xhc3MgZXh0ZW5kcyBFVHtpbnNlcnQoZSx0LGkpe2lmKHQ9PT0iLW1zLSIpe2xldCBuPXRoaXMuc2V0KHRoaXMuY2xvbmUoZSksdCk7dGhpcy5uZWVkQ2FzY2FkZShlKSYmKG4ucmF3cy5iZWZvcmU9dGhpcy5jYWxjQmVmb3JlKGksZSx0KSk7bGV0IHM9Imx0ciI7cmV0dXJuIGUucGFyZW50Lm5vZGVzLmZvckVhY2goYT0+e2EucHJvcD09PSJkaXJlY3Rpb24iJiYoYS52YWx1ZT09PSJydGwifHxhLnZhbHVlPT09Imx0ciIpJiYocz1hLnZhbHVlKX0pLG4udmFsdWU9RXIubXNWYWx1ZXNbc11bZS52YWx1ZV18fGUudmFsdWUsZS5wYXJlbnQuaW5zZXJ0QmVmb3JlKGUsbil9cmV0dXJuIHN1cGVyLmluc2VydChlLHQsaSl9fTtFci5uYW1lcz1bIndyaXRpbmctbW9kZSJdO0VyLm1zVmFsdWVzPXtsdHI6eyJob3Jpem9udGFsLXRiIjoibHItdGIiLCJ2ZXJ0aWNhbC1ybCI6InRiLXJsIiwidmVydGljYWwtbHIiOiJ0Yi1sciJ9LHJ0bDp7Imhvcml6b250YWwtdGIiOiJybC10YiIsInZlcnRpY2FsLXJsIjoiYnQtcmwiLCJ2ZXJ0aWNhbC1sciI6ImJ0LWxyIn19O053LmV4cG9ydHM9RXJ9KTt2YXIganc9eCgoRyQsRncpPT57dSgpO3ZhciBPVD1qKCksUnU9Y2xhc3MgZXh0ZW5kcyBPVHtzZXQoZSx0KXtyZXR1cm4gZS52YWx1ZT1lLnZhbHVlLnJlcGxhY2UoL1xzK2ZpbGwoXHMpLywiJDEiKSxzdXBlci5zZXQoZSx0KX19O1J1Lm5hbWVzPVsiYm9yZGVyLWltYWdlIl07RncuZXhwb3J0cz1SdX0pO3ZhciBWdz14KChRJCxVdyk9Pnt1KCk7dmFyIHp3PVBlKCksVFQ9aigpLE9yPWNsYXNzIGV4dGVuZHMgVFR7cHJlZml4ZWQoZSx0KXtsZXQgaTtyZXR1cm5baSx0XT16dyh0KSxpPT09MjAxMj90KyJmbGV4LWxpbmUtcGFjayI6c3VwZXIucHJlZml4ZWQoZSx0KX1ub3JtYWxpemUoKXtyZXR1cm4iYWxpZ24tY29udGVudCJ9c2V0KGUsdCl7bGV0IGk9encodClbMF07aWYoaT09PTIwMTIpcmV0dXJuIGUudmFsdWU9T3Iub2xkVmFsdWVzW2UudmFsdWVdfHxlLnZhbHVlLHN1cGVyLnNldChlLHQpO2lmKGk9PT0iZmluYWwiKXJldHVybiBzdXBlci5zZXQoZSx0KX19O09yLm5hbWVzPVsiYWxpZ24tY29udGVudCIsImZsZXgtbGluZS1wYWNrIl07T3Iub2xkVmFsdWVzPXsiZmxleC1lbmQiOiJlbmQiLCJmbGV4LXN0YXJ0Ijoic3RhcnQiLCJzcGFjZS1iZXR3ZWVuIjoianVzdGlmeSIsInNwYWNlLWFyb3VuZCI6ImRpc3RyaWJ1dGUifTtVdy5leHBvcnRzPU9yfSk7dmFyIFd3PXgoKFkkLEh3KT0+e3UoKTt2YXIgUlQ9aigpLFdlPWNsYXNzIGV4dGVuZHMgUlR7cHJlZml4ZWQoZSx0KXtyZXR1cm4gdD09PSItbW96LSI/dCsoV2UudG9Nb3ppbGxhW2VdfHxlKTpzdXBlci5wcmVmaXhlZChlLHQpfW5vcm1hbGl6ZShlKXtyZXR1cm4gV2UudG9Ob3JtYWxbZV18fGV9fTtXZS5uYW1lcz1bImJvcmRlci1yYWRpdXMiXTtXZS50b01vemlsbGE9e307V2UudG9Ob3JtYWw9e307Zm9yKGxldCByIG9mWyJ0b3AiLCJib3R0b20iXSlmb3IobGV0IGUgb2ZbImxlZnQiLCJyaWdodCJdKXtsZXQgdD1gYm9yZGVyLSR7cn0tJHtlfS1yYWRpdXNgLGk9YGJvcmRlci1yYWRpdXMtJHtyfSR7ZX1gO1dlLm5hbWVzLnB1c2godCksV2UubmFtZXMucHVzaChpKSxXZS50b01vemlsbGFbdF09aSxXZS50b05vcm1hbFtpXT10fUh3LmV4cG9ydHM9V2V9KTt2YXIgUXc9eCgoSyQsR3cpPT57dSgpO3ZhciBQVD1qKCksUHU9Y2xhc3MgZXh0ZW5kcyBQVHtwcmVmaXhlZChlLHQpe3JldHVybiBlLmluY2x1ZGVzKCItc3RhcnQiKT90K2UucmVwbGFjZSgiLWJsb2NrLXN0YXJ0IiwiLWJlZm9yZSIpOnQrZS5yZXBsYWNlKCItYmxvY2stZW5kIiwiLWFmdGVyIil9bm9ybWFsaXplKGUpe3JldHVybiBlLmluY2x1ZGVzKCItYmVmb3JlIik/ZS5yZXBsYWNlKCItYmVmb3JlIiwiLWJsb2NrLXN0YXJ0Iik6ZS5yZXBsYWNlKCItYWZ0ZXIiLCItYmxvY2stZW5kIil9fTtQdS5uYW1lcz1bImJvcmRlci1ibG9jay1zdGFydCIsImJvcmRlci1ibG9jay1lbmQiLCJtYXJnaW4tYmxvY2stc3RhcnQiLCJtYXJnaW4tYmxvY2stZW5kIiwicGFkZGluZy1ibG9jay1zdGFydCIsInBhZGRpbmctYmxvY2stZW5kIiwiYm9yZGVyLWJlZm9yZSIsImJvcmRlci1hZnRlciIsIm1hcmdpbi1iZWZvcmUiLCJtYXJnaW4tYWZ0ZXIiLCJwYWRkaW5nLWJlZm9yZSIsInBhZGRpbmctYWZ0ZXIiXTtHdy5leHBvcnRzPVB1fSk7dmFyIEt3PXgoKFgkLFl3KT0+e3UoKTt2YXIgSVQ9aigpLHtwYXJzZVRlbXBsYXRlOkRULHdhcm5NaXNzZWRBcmVhczpxVCxnZXRHcmlkR2FwOiRULHdhcm5HcmlkR2FwOkxULGluaGVyaXRHcmlkR2FwOk1UfT1CdCgpLEl1PWNsYXNzIGV4dGVuZHMgSVR7aW5zZXJ0KGUsdCxpLG4pe2lmKHQhPT0iLW1zLSIpcmV0dXJuIHN1cGVyLmluc2VydChlLHQsaSk7aWYoZS5wYXJlbnQuc29tZShoPT5oLnByb3A9PT0iLW1zLWdyaWQtcm93cyIpKXJldHVybjtsZXQgcz0kVChlKSxhPU1UKGUscykse3Jvd3M6byxjb2x1bW5zOmwsYXJlYXM6Y309RFQoe2RlY2w6ZSxnYXA6YXx8c30pLGY9T2JqZWN0LmtleXMoYykubGVuZ3RoPjAsZD1Cb29sZWFuKG8pLHA9Qm9vbGVhbihsKTtyZXR1cm4gTFQoe2dhcDpzLGhhc0NvbHVtbnM6cCxkZWNsOmUscmVzdWx0Om59KSxxVChjLGUsbiksKGQmJnB8fGYpJiZlLmNsb25lQmVmb3JlKHtwcm9wOiItbXMtZ3JpZC1yb3dzIix2YWx1ZTpvLHJhd3M6e319KSxwJiZlLmNsb25lQmVmb3JlKHtwcm9wOiItbXMtZ3JpZC1jb2x1bW5zIix2YWx1ZTpsLHJhd3M6e319KSxlfX07SXUubmFtZXM9WyJncmlkLXRlbXBsYXRlIl07WXcuZXhwb3J0cz1JdX0pO3ZhciBadz14KChaJCxYdyk9Pnt1KCk7dmFyIE5UPWooKSxEdT1jbGFzcyBleHRlbmRzIE5Ue3ByZWZpeGVkKGUsdCl7cmV0dXJuIHQrZS5yZXBsYWNlKCItaW5saW5lIiwiIil9bm9ybWFsaXplKGUpe3JldHVybiBlLnJlcGxhY2UoLyhtYXJnaW58cGFkZGluZ3xib3JkZXIpLShzdGFydHxlbmQpLywiJDEtaW5saW5lLSQyIil9fTtEdS5uYW1lcz1bImJvcmRlci1pbmxpbmUtc3RhcnQiLCJib3JkZXItaW5saW5lLWVuZCIsIm1hcmdpbi1pbmxpbmUtc3RhcnQiLCJtYXJnaW4taW5saW5lLWVuZCIsInBhZGRpbmctaW5saW5lLXN0YXJ0IiwicGFkZGluZy1pbmxpbmUtZW5kIiwiYm9yZGVyLXN0YXJ0IiwiYm9yZGVyLWVuZCIsIm1hcmdpbi1zdGFydCIsIm1hcmdpbi1lbmQiLCJwYWRkaW5nLXN0YXJ0IiwicGFkZGluZy1lbmQiXTtYdy5leHBvcnRzPUR1fSk7dmFyIGUwPXgoKEokLEp3KT0+e3UoKTt2YXIgQlQ9aigpLHF1PWNsYXNzIGV4dGVuZHMgQlR7Y2hlY2soZSl7cmV0dXJuIWUudmFsdWUuaW5jbHVkZXMoImZsZXgtIikmJmUudmFsdWUhPT0iYmFzZWxpbmUifXByZWZpeGVkKGUsdCl7cmV0dXJuIHQrImdyaWQtcm93LWFsaWduIn1ub3JtYWxpemUoKXtyZXR1cm4iYWxpZ24tc2VsZiJ9fTtxdS5uYW1lcz1bImdyaWQtcm93LWFsaWduIl07SncuZXhwb3J0cz1xdX0pO3ZhciByMD14KChlTCx0MCk9Pnt1KCk7dmFyIEZUPWooKSxUcj1jbGFzcyBleHRlbmRzIEZUe2tleWZyYW1lUGFyZW50cyhlKXtsZXR7cGFyZW50OnR9PWU7Zm9yKDt0Oyl7aWYodC50eXBlPT09ImF0cnVsZSImJnQubmFtZT09PSJrZXlmcmFtZXMiKXJldHVybiEwOyh7cGFyZW50OnR9PXQpfXJldHVybiExfWNvbnRhaW4zZChlKXtpZihlLnByb3A9PT0idHJhbnNmb3JtLW9yaWdpbiIpcmV0dXJuITE7Zm9yKGxldCB0IG9mIFRyLmZ1bmN0aW9uczNkKWlmKGUudmFsdWUuaW5jbHVkZXMoYCR7dH0oYCkpcmV0dXJuITA7cmV0dXJuITF9c2V0KGUsdCl7cmV0dXJuIGU9c3VwZXIuc2V0KGUsdCksdD09PSItbXMtIiYmKGUudmFsdWU9ZS52YWx1ZS5yZXBsYWNlKC9yb3RhdGV6L2dpLCJyb3RhdGUiKSksZX1pbnNlcnQoZSx0LGkpe2lmKHQ9PT0iLW1zLSIpe2lmKCF0aGlzLmNvbnRhaW4zZChlKSYmIXRoaXMua2V5ZnJhbWVQYXJlbnRzKGUpKXJldHVybiBzdXBlci5pbnNlcnQoZSx0LGkpfWVsc2UgaWYodD09PSItby0iKXtpZighdGhpcy5jb250YWluM2QoZSkpcmV0dXJuIHN1cGVyLmluc2VydChlLHQsaSl9ZWxzZSByZXR1cm4gc3VwZXIuaW5zZXJ0KGUsdCxpKX19O1RyLm5hbWVzPVsidHJhbnNmb3JtIiwidHJhbnNmb3JtLW9yaWdpbiJdO1RyLmZ1bmN0aW9uczNkPVsibWF0cml4M2QiLCJ0cmFuc2xhdGUzZCIsInRyYW5zbGF0ZVoiLCJzY2FsZTNkIiwic2NhbGVaIiwicm90YXRlM2QiLCJyb3RhdGVYIiwicm90YXRlWSIsInBlcnNwZWN0aXZlIl07dDAuZXhwb3J0cz1Ucn0pO3ZhciBzMD14KCh0TCxuMCk9Pnt1KCk7dmFyIGkwPVBlKCksalQ9aigpLCR1PWNsYXNzIGV4dGVuZHMgalR7bm9ybWFsaXplKCl7cmV0dXJuImZsZXgtZGlyZWN0aW9uIn1pbnNlcnQoZSx0LGkpe2xldCBuO2lmKFtuLHRdPWkwKHQpLG4hPT0yMDA5KXJldHVybiBzdXBlci5pbnNlcnQoZSx0LGkpO2lmKGUucGFyZW50LnNvbWUoZj0+Zi5wcm9wPT09dCsiYm94LW9yaWVudCJ8fGYucHJvcD09PXQrImJveC1kaXJlY3Rpb24iKSlyZXR1cm47bGV0IGE9ZS52YWx1ZSxvLGw7YT09PSJpbmhlcml0Inx8YT09PSJpbml0aWFsInx8YT09PSJ1bnNldCI/KG89YSxsPWEpOihvPWEuaW5jbHVkZXMoInJvdyIpPyJob3Jpem9udGFsIjoidmVydGljYWwiLGw9YS5pbmNsdWRlcygicmV2ZXJzZSIpPyJyZXZlcnNlIjoibm9ybWFsIik7bGV0IGM9dGhpcy5jbG9uZShlKTtyZXR1cm4gYy5wcm9wPXQrImJveC1vcmllbnQiLGMudmFsdWU9byx0aGlzLm5lZWRDYXNjYWRlKGUpJiYoYy5yYXdzLmJlZm9yZT10aGlzLmNhbGNCZWZvcmUoaSxlLHQpKSxlLnBhcmVudC5pbnNlcnRCZWZvcmUoZSxjKSxjPXRoaXMuY2xvbmUoZSksYy5wcm9wPXQrImJveC1kaXJlY3Rpb24iLGMudmFsdWU9bCx0aGlzLm5lZWRDYXNjYWRlKGUpJiYoYy5yYXdzLmJlZm9yZT10aGlzLmNhbGNCZWZvcmUoaSxlLHQpKSxlLnBhcmVudC5pbnNlcnRCZWZvcmUoZSxjKX1vbGQoZSx0KXtsZXQgaTtyZXR1cm5baSx0XT1pMCh0KSxpPT09MjAwOT9bdCsiYm94LW9yaWVudCIsdCsiYm94LWRpcmVjdGlvbiJdOnN1cGVyLm9sZChlLHQpfX07JHUubmFtZXM9WyJmbGV4LWRpcmVjdGlvbiIsImJveC1kaXJlY3Rpb24iLCJib3gtb3JpZW50Il07bjAuZXhwb3J0cz0kdX0pO3ZhciBvMD14KChyTCxhMCk9Pnt1KCk7dmFyIHpUPWooKSxMdT1jbGFzcyBleHRlbmRzIHpUe2NoZWNrKGUpe3JldHVybiBlLnZhbHVlPT09InBpeGVsYXRlZCJ9cHJlZml4ZWQoZSx0KXtyZXR1cm4gdD09PSItbXMtIj8iLW1zLWludGVycG9sYXRpb24tbW9kZSI6c3VwZXIucHJlZml4ZWQoZSx0KX1zZXQoZSx0KXtyZXR1cm4gdCE9PSItbXMtIj9zdXBlci5zZXQoZSx0KTooZS5wcm9wPSItbXMtaW50ZXJwb2xhdGlvbi1tb2RlIixlLnZhbHVlPSJuZWFyZXN0LW5laWdoYm9yIixlKX1ub3JtYWxpemUoKXtyZXR1cm4iaW1hZ2UtcmVuZGVyaW5nIn1wcm9jZXNzKGUsdCl7cmV0dXJuIHN1cGVyLnByb2Nlc3MoZSx0KX19O0x1Lm5hbWVzPVsiaW1hZ2UtcmVuZGVyaW5nIiwiaW50ZXJwb2xhdGlvbi1tb2RlIl07YTAuZXhwb3J0cz1MdX0pO3ZhciB1MD14KChpTCxsMCk9Pnt1KCk7dmFyIFVUPWooKSxWVD1fZSgpLE11PWNsYXNzIGV4dGVuZHMgVVR7Y29uc3RydWN0b3IoZSx0LGkpe3N1cGVyKGUsdCxpKTt0aGlzLnByZWZpeGVzJiYodGhpcy5wcmVmaXhlcz1WVC51bmlxKHRoaXMucHJlZml4ZXMubWFwKG49Pm49PT0iLW1zLSI/Ii13ZWJraXQtIjpuKSkpfX07TXUubmFtZXM9WyJiYWNrZHJvcC1maWx0ZXIiXTtsMC5leHBvcnRzPU11fSk7dmFyIGMwPXgoKG5MLGYwKT0+e3UoKTt2YXIgSFQ9aigpLFdUPV9lKCksTnU9Y2xhc3MgZXh0ZW5kcyBIVHtjb25zdHJ1Y3RvcihlLHQsaSl7c3VwZXIoZSx0LGkpO3RoaXMucHJlZml4ZXMmJih0aGlzLnByZWZpeGVzPVdULnVuaXEodGhpcy5wcmVmaXhlcy5tYXAobj0+bj09PSItbXMtIj8iLXdlYmtpdC0iOm4pKSl9Y2hlY2soZSl7cmV0dXJuIGUudmFsdWUudG9Mb3dlckNhc2UoKT09PSJ0ZXh0In19O051Lm5hbWVzPVsiYmFja2dyb3VuZC1jbGlwIl07ZjAuZXhwb3J0cz1OdX0pO3ZhciBkMD14KChzTCxwMCk9Pnt1KCk7dmFyIEdUPWooKSxRVD1bIm5vbmUiLCJ1bmRlcmxpbmUiLCJvdmVybGluZSIsImxpbmUtdGhyb3VnaCIsImJsaW5rIiwiaW5oZXJpdCIsImluaXRpYWwiLCJ1bnNldCJdLEJ1PWNsYXNzIGV4dGVuZHMgR1R7Y2hlY2soZSl7cmV0dXJuIGUudmFsdWUuc3BsaXQoL1xzKy8pLnNvbWUodD0+IVFULmluY2x1ZGVzKHQpKX19O0J1Lm5hbWVzPVsidGV4dC1kZWNvcmF0aW9uIl07cDAuZXhwb3J0cz1CdX0pO3ZhciBnMD14KChhTCxtMCk9Pnt1KCk7dmFyIGgwPVBlKCksWVQ9aigpLFJyPWNsYXNzIGV4dGVuZHMgWVR7cHJlZml4ZWQoZSx0KXtsZXQgaTtyZXR1cm5baSx0XT1oMCh0KSxpPT09MjAwOT90KyJib3gtcGFjayI6aT09PTIwMTI/dCsiZmxleC1wYWNrIjpzdXBlci5wcmVmaXhlZChlLHQpfW5vcm1hbGl6ZSgpe3JldHVybiJqdXN0aWZ5LWNvbnRlbnQifXNldChlLHQpe2xldCBpPWgwKHQpWzBdO2lmKGk9PT0yMDA5fHxpPT09MjAxMil7bGV0IG49UnIub2xkVmFsdWVzW2UudmFsdWVdfHxlLnZhbHVlO2lmKGUudmFsdWU9bixpIT09MjAwOXx8biE9PSJkaXN0cmlidXRlIilyZXR1cm4gc3VwZXIuc2V0KGUsdCl9ZWxzZSBpZihpPT09ImZpbmFsIilyZXR1cm4gc3VwZXIuc2V0KGUsdCl9fTtSci5uYW1lcz1bImp1c3RpZnktY29udGVudCIsImZsZXgtcGFjayIsImJveC1wYWNrIl07UnIub2xkVmFsdWVzPXsiZmxleC1lbmQiOiJlbmQiLCJmbGV4LXN0YXJ0Ijoic3RhcnQiLCJzcGFjZS1iZXR3ZWVuIjoianVzdGlmeSIsInNwYWNlLWFyb3VuZCI6ImRpc3RyaWJ1dGUifTttMC5leHBvcnRzPVJyfSk7dmFyIGIwPXgoKG9MLHkwKT0+e3UoKTt2YXIgS1Q9aigpLEZ1PWNsYXNzIGV4dGVuZHMgS1R7c2V0KGUsdCl7bGV0IGk9ZS52YWx1ZS50b0xvd2VyQ2FzZSgpO3JldHVybiB0PT09Ii13ZWJraXQtIiYmIWkuaW5jbHVkZXMoIiAiKSYmaSE9PSJjb250YWluIiYmaSE9PSJjb3ZlciImJihlLnZhbHVlPWUudmFsdWUrIiAiK2UudmFsdWUpLHN1cGVyLnNldChlLHQpfX07RnUubmFtZXM9WyJiYWNrZ3JvdW5kLXNpemUiXTt5MC5leHBvcnRzPUZ1fSk7dmFyIHYwPXgoKGxMLHcwKT0+e3UoKTt2YXIgWFQ9aigpLGp1PUJ0KCksenU9Y2xhc3MgZXh0ZW5kcyBYVHtpbnNlcnQoZSx0LGkpe2lmKHQhPT0iLW1zLSIpcmV0dXJuIHN1cGVyLmluc2VydChlLHQsaSk7bGV0IG49anUucGFyc2UoZSksW3MsYV09anUudHJhbnNsYXRlKG4sMCwxKTtuWzBdJiZuWzBdLmluY2x1ZGVzKCJzcGFuIikmJihhPW5bMF0uam9pbigiIikucmVwbGFjZSgvXEQvZywiIikpLFtbZS5wcm9wLHNdLFtgJHtlLnByb3B9LXNwYW5gLGFdXS5mb3JFYWNoKChbbCxjXSk9PntqdS5pbnNlcnREZWNsKGUsbCxjKX0pfX07enUubmFtZXM9WyJncmlkLXJvdyIsImdyaWQtY29sdW1uIl07dzAuZXhwb3J0cz16dX0pO3ZhciBTMD14KCh1TCxrMCk9Pnt1KCk7dmFyIFpUPWooKSx7cHJlZml4VHJhY2tQcm9wOngwLHByZWZpeFRyYWNrVmFsdWU6SlQsYXV0b3BsYWNlR3JpZEl0ZW1zOmVSLGdldEdyaWRHYXA6dFIsaW5oZXJpdEdyaWRHYXA6clJ9PUJ0KCksaVI9b3UoKSxVdT1jbGFzcyBleHRlbmRzIFpUe3ByZWZpeGVkKGUsdCl7cmV0dXJuIHQ9PT0iLW1zLSI/eDAoe3Byb3A6ZSxwcmVmaXg6dH0pOnN1cGVyLnByZWZpeGVkKGUsdCl9bm9ybWFsaXplKGUpe3JldHVybiBlLnJlcGxhY2UoL15ncmlkLShyb3dzfGNvbHVtbnMpLywiZ3JpZC10ZW1wbGF0ZS0kMSIpfWluc2VydChlLHQsaSxuKXtpZih0IT09Ii1tcy0iKXJldHVybiBzdXBlci5pbnNlcnQoZSx0LGkpO2xldHtwYXJlbnQ6cyxwcm9wOmEsdmFsdWU6b309ZSxsPWEuaW5jbHVkZXMoInJvd3MiKSxjPWEuaW5jbHVkZXMoImNvbHVtbnMiKSxmPXMuc29tZShrPT5rLnByb3A9PT0iZ3JpZC10ZW1wbGF0ZSJ8fGsucHJvcD09PSJncmlkLXRlbXBsYXRlLWFyZWFzIik7aWYoZiYmbClyZXR1cm4hMTtsZXQgZD1uZXcgaVIoe29wdGlvbnM6e319KSxwPWQuZ3JpZFN0YXR1cyhzLG4pLGg9dFIoZSk7aD1yUihlLGgpfHxoO2xldCBiPWw/aC5yb3c6aC5jb2x1bW47KHA9PT0ibm8tYXV0b3BsYWNlInx8cD09PSEwKSYmIWYmJihiPW51bGwpO2xldCB2PUpUKHt2YWx1ZTpvLGdhcDpifSk7ZS5jbG9uZUJlZm9yZSh7cHJvcDp4MCh7cHJvcDphLHByZWZpeDp0fSksdmFsdWU6dn0pO2xldCB5PXMubm9kZXMuZmluZChrPT5rLnByb3A9PT0iZ3JpZC1hdXRvLWZsb3ciKSx3PSJyb3ciO2lmKHkmJiFkLmRpc2FibGVkKHksbikmJih3PXkudmFsdWUudHJpbSgpKSxwPT09ImF1dG9wbGFjZSIpe2xldCBrPXMubm9kZXMuZmluZChFPT5FLnByb3A9PT0iZ3JpZC10ZW1wbGF0ZS1yb3dzIik7aWYoIWsmJmYpcmV0dXJuO2lmKCFrJiYhZil7ZS53YXJuKG4sIkF1dG9wbGFjZW1lbnQgZG9lcyBub3Qgd29yayB3aXRob3V0IGdyaWQtdGVtcGxhdGUtcm93cyBwcm9wZXJ0eSIpO3JldHVybn0hcy5ub2Rlcy5maW5kKEU9PkUucHJvcD09PSJncmlkLXRlbXBsYXRlLWNvbHVtbnMiKSYmIWYmJmUud2FybihuLCJBdXRvcGxhY2VtZW50IGRvZXMgbm90IHdvcmsgd2l0aG91dCBncmlkLXRlbXBsYXRlLWNvbHVtbnMgcHJvcGVydHkiKSxjJiYhZiYmZVIoZSxuLGgsdyl9fX07VXUubmFtZXM9WyJncmlkLXRlbXBsYXRlLXJvd3MiLCJncmlkLXRlbXBsYXRlLWNvbHVtbnMiLCJncmlkLXJvd3MiLCJncmlkLWNvbHVtbnMiXTtrMC5leHBvcnRzPVV1fSk7dmFyIEMwPXgoKGZMLEEwKT0+e3UoKTt2YXIgblI9aigpLFZ1PWNsYXNzIGV4dGVuZHMgblJ7Y2hlY2soZSl7cmV0dXJuIWUudmFsdWUuaW5jbHVkZXMoImZsZXgtIikmJmUudmFsdWUhPT0iYmFzZWxpbmUifXByZWZpeGVkKGUsdCl7cmV0dXJuIHQrImdyaWQtY29sdW1uLWFsaWduIn1ub3JtYWxpemUoKXtyZXR1cm4ianVzdGlmeS1zZWxmIn19O1Z1Lm5hbWVzPVsiZ3JpZC1jb2x1bW4tYWxpZ24iXTtBMC5leHBvcnRzPVZ1fSk7dmFyIEUwPXgoKGNMLF8wKT0+e3UoKTt2YXIgc1I9aigpLEh1PWNsYXNzIGV4dGVuZHMgc1J7cHJlZml4ZWQoZSx0KXtyZXR1cm4gdCsic2Nyb2xsLWNoYWluaW5nIn1ub3JtYWxpemUoKXtyZXR1cm4ib3ZlcnNjcm9sbC1iZWhhdmlvciJ9c2V0KGUsdCl7cmV0dXJuIGUudmFsdWU9PT0iYXV0byI/ZS52YWx1ZT0iY2hhaW5lZCI6KGUudmFsdWU9PT0ibm9uZSJ8fGUudmFsdWU9PT0iY29udGFpbiIpJiYoZS52YWx1ZT0ibm9uZSIpLHN1cGVyLnNldChlLHQpfX07SHUubmFtZXM9WyJvdmVyc2Nyb2xsLWJlaGF2aW9yIiwic2Nyb2xsLWNoYWluaW5nIl07XzAuZXhwb3J0cz1IdX0pO3ZhciBSMD14KChwTCxUMCk9Pnt1KCk7dmFyIGFSPWooKSx7cGFyc2VHcmlkQXJlYXM6b1Isd2Fybk1pc3NlZEFyZWFzOmxSLHByZWZpeFRyYWNrUHJvcDp1UixwcmVmaXhUcmFja1ZhbHVlOk8wLGdldEdyaWRHYXA6ZlIsd2FybkdyaWRHYXA6Y1IsaW5oZXJpdEdyaWRHYXA6cFJ9PUJ0KCk7ZnVuY3Rpb24gZFIocil7cmV0dXJuIHIudHJpbSgpLnNsaWNlKDEsLTEpLnNwbGl0KC9bIiddXHMqWyInXT8vZyl9dmFyIFd1PWNsYXNzIGV4dGVuZHMgYVJ7aW5zZXJ0KGUsdCxpLG4pe2lmKHQhPT0iLW1zLSIpcmV0dXJuIHN1cGVyLmluc2VydChlLHQsaSk7bGV0IHM9ITEsYT0hMSxvPWUucGFyZW50LGw9ZlIoZSk7bD1wUihlLGwpfHxsLG8ud2Fsa0RlY2xzKC8tbXMtZ3JpZC1yb3dzLyxkPT5kLnJlbW92ZSgpKSxvLndhbGtEZWNscygvZ3JpZC10ZW1wbGF0ZS0ocm93c3xjb2x1bW5zKS8sZD0+e2lmKGQucHJvcD09PSJncmlkLXRlbXBsYXRlLXJvd3MiKXthPSEwO2xldHtwcm9wOnAsdmFsdWU6aH09ZDtkLmNsb25lQmVmb3JlKHtwcm9wOnVSKHtwcm9wOnAscHJlZml4OnR9KSx2YWx1ZTpPMCh7dmFsdWU6aCxnYXA6bC5yb3d9KX0pfWVsc2Ugcz0hMH0pO2xldCBjPWRSKGUudmFsdWUpO3MmJiFhJiZsLnJvdyYmYy5sZW5ndGg+MSYmZS5jbG9uZUJlZm9yZSh7cHJvcDoiLW1zLWdyaWQtcm93cyIsdmFsdWU6TzAoe3ZhbHVlOmByZXBlYXQoJHtjLmxlbmd0aH0sIGF1dG8pYCxnYXA6bC5yb3d9KSxyYXdzOnt9fSksY1Ioe2dhcDpsLGhhc0NvbHVtbnM6cyxkZWNsOmUscmVzdWx0Om59KTtsZXQgZj1vUih7cm93czpjLGdhcDpsfSk7cmV0dXJuIGxSKGYsZSxuKSxlfX07V3UubmFtZXM9WyJncmlkLXRlbXBsYXRlLWFyZWFzIl07VDAuZXhwb3J0cz1XdX0pO3ZhciBJMD14KChkTCxQMCk9Pnt1KCk7dmFyIGhSPWooKSxHdT1jbGFzcyBleHRlbmRzIGhSe3NldChlLHQpe3JldHVybiB0PT09Ii13ZWJraXQtIiYmKGUudmFsdWU9ZS52YWx1ZS5yZXBsYWNlKC9ccyoocmlnaHR8bGVmdClccyovaSwiIikpLHN1cGVyLnNldChlLHQpfX07R3UubmFtZXM9WyJ0ZXh0LWVtcGhhc2lzLXBvc2l0aW9uIl07UDAuZXhwb3J0cz1HdX0pO3ZhciBxMD14KChoTCxEMCk9Pnt1KCk7dmFyIG1SPWooKSxRdT1jbGFzcyBleHRlbmRzIG1Se3NldChlLHQpe3JldHVybiBlLnByb3A9PT0idGV4dC1kZWNvcmF0aW9uLXNraXAtaW5rIiYmZS52YWx1ZT09PSJhdXRvIj8oZS5wcm9wPXQrInRleHQtZGVjb3JhdGlvbi1za2lwIixlLnZhbHVlPSJpbmsiLGUpOnN1cGVyLnNldChlLHQpfX07UXUubmFtZXM9WyJ0ZXh0LWRlY29yYXRpb24tc2tpcC1pbmsiLCJ0ZXh0LWRlY29yYXRpb24tc2tpcCJdO0QwLmV4cG9ydHM9UXV9KTt2YXIgRjA9eCgobUwsQjApPT57dSgpOyJ1c2Ugc3RyaWN0IjtCMC5leHBvcnRzPXt3cmFwOiQwLGxpbWl0OkwwLHZhbGlkYXRlOk0wLHRlc3Q6WXUsY3Vycnk6Z1IsbmFtZTpOMH07ZnVuY3Rpb24gJDAocixlLHQpe3ZhciBpPWUtcjtyZXR1cm4oKHQtciklaStpKSVpK3J9ZnVuY3Rpb24gTDAocixlLHQpe3JldHVybiBNYXRoLm1heChyLE1hdGgubWluKGUsdCkpfWZ1bmN0aW9uIE0wKHIsZSx0LGksbil7aWYoIVl1KHIsZSx0LGksbikpdGhyb3cgbmV3IEVycm9yKHQrIiBpcyBvdXRzaWRlIG9mIHJhbmdlIFsiK3IrIiwiK2UrIikiKTtyZXR1cm4gdH1mdW5jdGlvbiBZdShyLGUsdCxpLG4pe3JldHVybiEodDxyfHx0PmV8fG4mJnQ9PT1lfHxpJiZ0PT09cil9ZnVuY3Rpb24gTjAocixlLHQsaSl7cmV0dXJuKHQ/IigiOiJbIikrcisiLCIrZSsoaT8iKSI6Il0iKX1mdW5jdGlvbiBnUihyLGUsdCxpKXt2YXIgbj1OMC5iaW5kKG51bGwscixlLHQsaSk7cmV0dXJue3dyYXA6JDAuYmluZChudWxsLHIsZSksbGltaXQ6TDAuYmluZChudWxsLHIsZSksdmFsaWRhdGU6ZnVuY3Rpb24ocyl7cmV0dXJuIE0wKHIsZSxzLHQsaSl9LHRlc3Q6ZnVuY3Rpb24ocyl7cmV0dXJuIFl1KHIsZSxzLHQsaSl9LHRvU3RyaW5nOm4sbmFtZTpufX19KTt2YXIgVTA9eCgoZ0wsejApPT57dSgpO3ZhciBLdT1NcygpLHlSPUYwKCksYlI9eHIoKSx3Uj1IZSgpLHZSPV9lKCksajA9L3RvcHxsZWZ0fHJpZ2h0fGJvdHRvbS9naSx3dD1jbGFzcyBleHRlbmRzIHdSe3JlcGxhY2UoZSx0KXtsZXQgaT1LdShlKTtmb3IobGV0IG4gb2YgaS5ub2RlcylpZihuLnR5cGU9PT0iZnVuY3Rpb24iJiZuLnZhbHVlPT09dGhpcy5uYW1lKWlmKG4ubm9kZXM9dGhpcy5uZXdEaXJlY3Rpb24obi5ub2Rlcyksbi5ub2Rlcz10aGlzLm5vcm1hbGl6ZShuLm5vZGVzKSx0PT09Ii13ZWJraXQtIG9sZCIpe2lmKCF0aGlzLm9sZFdlYmtpdChuKSlyZXR1cm4hMX1lbHNlIG4ubm9kZXM9dGhpcy5jb252ZXJ0RGlyZWN0aW9uKG4ubm9kZXMpLG4udmFsdWU9dCtuLnZhbHVlO3JldHVybiBpLnRvU3RyaW5nKCl9cmVwbGFjZUZpcnN0KGUsLi4udCl7cmV0dXJuIHQubWFwKG49Pm49PT0iICI/e3R5cGU6InNwYWNlIix2YWx1ZTpufTp7dHlwZToid29yZCIsdmFsdWU6bn0pLmNvbmNhdChlLnNsaWNlKDEpKX1ub3JtYWxpemVVbml0KGUsdCl7cmV0dXJuYCR7cGFyc2VGbG9hdChlKS90KjM2MH1kZWdgfW5vcm1hbGl6ZShlKXtpZighZVswXSlyZXR1cm4gZTtpZigvLT9cZCsoLlxkKyk/Z3JhZC8udGVzdChlWzBdLnZhbHVlKSllWzBdLnZhbHVlPXRoaXMubm9ybWFsaXplVW5pdChlWzBdLnZhbHVlLDQwMCk7ZWxzZSBpZigvLT9cZCsoLlxkKyk/cmFkLy50ZXN0KGVbMF0udmFsdWUpKWVbMF0udmFsdWU9dGhpcy5ub3JtYWxpemVVbml0KGVbMF0udmFsdWUsMipNYXRoLlBJKTtlbHNlIGlmKC8tP1xkKyguXGQrKT90dXJuLy50ZXN0KGVbMF0udmFsdWUpKWVbMF0udmFsdWU9dGhpcy5ub3JtYWxpemVVbml0KGVbMF0udmFsdWUsMSk7ZWxzZSBpZihlWzBdLnZhbHVlLmluY2x1ZGVzKCJkZWciKSl7bGV0IHQ9cGFyc2VGbG9hdChlWzBdLnZhbHVlKTt0PXlSLndyYXAoMCwzNjAsdCksZVswXS52YWx1ZT1gJHt0fWRlZ2B9cmV0dXJuIGVbMF0udmFsdWU9PT0iMGRlZyI/ZT10aGlzLnJlcGxhY2VGaXJzdChlLCJ0byIsIiAiLCJ0b3AiKTplWzBdLnZhbHVlPT09IjkwZGVnIj9lPXRoaXMucmVwbGFjZUZpcnN0KGUsInRvIiwiICIsInJpZ2h0Iik6ZVswXS52YWx1ZT09PSIxODBkZWciP2U9dGhpcy5yZXBsYWNlRmlyc3QoZSwidG8iLCIgIiwiYm90dG9tIik6ZVswXS52YWx1ZT09PSIyNzBkZWciJiYoZT10aGlzLnJlcGxhY2VGaXJzdChlLCJ0byIsIiAiLCJsZWZ0IikpLGV9bmV3RGlyZWN0aW9uKGUpe2lmKGVbMF0udmFsdWU9PT0idG8ifHwoajAubGFzdEluZGV4PTAsIWowLnRlc3QoZVswXS52YWx1ZSkpKXJldHVybiBlO2UudW5zaGlmdCh7dHlwZToid29yZCIsdmFsdWU6InRvIn0se3R5cGU6InNwYWNlIix2YWx1ZToiICJ9KTtmb3IobGV0IHQ9Mjt0PGUubGVuZ3RoJiZlW3RdLnR5cGUhPT0iZGl2Ijt0KyspZVt0XS50eXBlPT09IndvcmQiJiYoZVt0XS52YWx1ZT10aGlzLnJldmVydERpcmVjdGlvbihlW3RdLnZhbHVlKSk7cmV0dXJuIGV9aXNSYWRpYWwoZSl7bGV0IHQ9ImJlZm9yZSI7Zm9yKGxldCBpIG9mIGUpaWYodD09PSJiZWZvcmUiJiZpLnR5cGU9PT0ic3BhY2UiKXQ9ImF0IjtlbHNlIGlmKHQ9PT0iYXQiJiZpLnZhbHVlPT09ImF0Iil0PSJhZnRlciI7ZWxzZXtpZih0PT09ImFmdGVyIiYmaS50eXBlPT09InNwYWNlIilyZXR1cm4hMDtpZihpLnR5cGU9PT0iZGl2IilicmVhazt0PSJiZWZvcmUifXJldHVybiExfWNvbnZlcnREaXJlY3Rpb24oZSl7cmV0dXJuIGUubGVuZ3RoPjAmJihlWzBdLnZhbHVlPT09InRvIj90aGlzLmZpeERpcmVjdGlvbihlKTplWzBdLnZhbHVlLmluY2x1ZGVzKCJkZWciKT90aGlzLmZpeEFuZ2xlKGUpOnRoaXMuaXNSYWRpYWwoZSkmJnRoaXMuZml4UmFkaWFsKGUpKSxlfWZpeERpcmVjdGlvbihlKXtlLnNwbGljZSgwLDIpO2ZvcihsZXQgdCBvZiBlKXtpZih0LnR5cGU9PT0iZGl2IilicmVhazt0LnR5cGU9PT0id29yZCImJih0LnZhbHVlPXRoaXMucmV2ZXJ0RGlyZWN0aW9uKHQudmFsdWUpKX19Zml4QW5nbGUoZSl7bGV0IHQ9ZVswXS52YWx1ZTt0PXBhcnNlRmxvYXQodCksdD1NYXRoLmFicyg0NTAtdCklMzYwLHQ9dGhpcy5yb3VuZEZsb2F0KHQsMyksZVswXS52YWx1ZT1gJHt0fWRlZ2B9Zml4UmFkaWFsKGUpe2xldCB0PVtdLGk9W10sbixzLGEsbyxsO2ZvcihvPTA7bzxlLmxlbmd0aC0yO28rKylpZihuPWVbb10scz1lW28rMV0sYT1lW28rMl0sbi50eXBlPT09InNwYWNlIiYmcy52YWx1ZT09PSJhdCImJmEudHlwZT09PSJzcGFjZSIpe2w9byszO2JyZWFrfWVsc2UgdC5wdXNoKG4pO2xldCBjO2ZvcihvPWw7bzxlLmxlbmd0aDtvKyspaWYoZVtvXS50eXBlPT09ImRpdiIpe2M9ZVtvXTticmVha31lbHNlIGkucHVzaChlW29dKTtlLnNwbGljZSgwLG8sLi4uaSxjLC4uLnQpfXJldmVydERpcmVjdGlvbihlKXtyZXR1cm4gd3QuZGlyZWN0aW9uc1tlLnRvTG93ZXJDYXNlKCldfHxlfXJvdW5kRmxvYXQoZSx0KXtyZXR1cm4gcGFyc2VGbG9hdChlLnRvRml4ZWQodCkpfW9sZFdlYmtpdChlKXtsZXR7bm9kZXM6dH09ZSxpPUt1LnN0cmluZ2lmeShlLm5vZGVzKTtpZih0aGlzLm5hbWUhPT0ibGluZWFyLWdyYWRpZW50Inx8dFswXSYmdFswXS52YWx1ZS5pbmNsdWRlcygiZGVnIil8fGkuaW5jbHVkZXMoInB4Iil8fGkuaW5jbHVkZXMoIi1jb3JuZXIiKXx8aS5pbmNsdWRlcygiLXNpZGUiKSlyZXR1cm4hMTtsZXQgbj1bW11dO2ZvcihsZXQgcyBvZiB0KW5bbi5sZW5ndGgtMV0ucHVzaChzKSxzLnR5cGU9PT0iZGl2IiYmcy52YWx1ZT09PSIsIiYmbi5wdXNoKFtdKTt0aGlzLm9sZERpcmVjdGlvbihuKSx0aGlzLmNvbG9yU3RvcHMobiksZS5ub2Rlcz1bXTtmb3IobGV0IHMgb2YgbillLm5vZGVzPWUubm9kZXMuY29uY2F0KHMpO3JldHVybiBlLm5vZGVzLnVuc2hpZnQoe3R5cGU6IndvcmQiLHZhbHVlOiJsaW5lYXIifSx0aGlzLmNsb25lRGl2KGUubm9kZXMpKSxlLnZhbHVlPSItd2Via2l0LWdyYWRpZW50IiwhMH1vbGREaXJlY3Rpb24oZSl7bGV0IHQ9dGhpcy5jbG9uZURpdihlWzBdKTtpZihlWzBdWzBdLnZhbHVlIT09InRvIilyZXR1cm4gZS51bnNoaWZ0KFt7dHlwZToid29yZCIsdmFsdWU6d3Qub2xkRGlyZWN0aW9ucy5ib3R0b219LHRdKTt7bGV0IGk9W107Zm9yKGxldCBzIG9mIGVbMF0uc2xpY2UoMikpcy50eXBlPT09IndvcmQiJiZpLnB1c2gocy52YWx1ZS50b0xvd2VyQ2FzZSgpKTtpPWkuam9pbigiICIpO2xldCBuPXd0Lm9sZERpcmVjdGlvbnNbaV18fGk7cmV0dXJuIGVbMF09W3t0eXBlOiJ3b3JkIix2YWx1ZTpufSx0XSxlWzBdfX1jbG9uZURpdihlKXtmb3IobGV0IHQgb2YgZSlpZih0LnR5cGU9PT0iZGl2IiYmdC52YWx1ZT09PSIsIilyZXR1cm4gdDtyZXR1cm57dHlwZToiZGl2Iix2YWx1ZToiLCIsYWZ0ZXI6IiAifX1jb2xvclN0b3BzKGUpe2xldCB0PVtdO2ZvcihsZXQgaT0wO2k8ZS5sZW5ndGg7aSsrKXtsZXQgbixzPWVbaV0sYTtpZihpPT09MCljb250aW51ZTtsZXQgbz1LdS5zdHJpbmdpZnkoc1swXSk7c1sxXSYmc1sxXS50eXBlPT09IndvcmQiP249c1sxXS52YWx1ZTpzWzJdJiZzWzJdLnR5cGU9PT0id29yZCImJihuPXNbMl0udmFsdWUpO2xldCBsO2k9PT0xJiYoIW58fG49PT0iMCUiKT9sPWBmcm9tKCR7b30pYDppPT09ZS5sZW5ndGgtMSYmKCFufHxuPT09IjEwMCUiKT9sPWB0bygke299KWA6bj9sPWBjb2xvci1zdG9wKCR7bn0sICR7b30pYDpsPWBjb2xvci1zdG9wKCR7b30pYDtsZXQgYz1zW3MubGVuZ3RoLTFdO2VbaV09W3t0eXBlOiJ3b3JkIix2YWx1ZTpsfV0sYy50eXBlPT09ImRpdiImJmMudmFsdWU9PT0iLCImJihhPWVbaV0ucHVzaChjKSksdC5wdXNoKGEpfXJldHVybiB0fW9sZChlKXtpZihlPT09Ii13ZWJraXQtIil7bGV0IHQ9dGhpcy5uYW1lPT09ImxpbmVhci1ncmFkaWVudCI/ImxpbmVhciI6InJhZGlhbCIsaT0iLWdyYWRpZW50IixuPXZSLnJlZ2V4cChgLXdlYmtpdC0oJHt0fS1ncmFkaWVudHxncmFkaWVudFxcKFxccyoke3R9KWAsITEpO3JldHVybiBuZXcgYlIodGhpcy5uYW1lLGUrdGhpcy5uYW1lLGksbil9ZWxzZSByZXR1cm4gc3VwZXIub2xkKGUpfWFkZChlLHQpe2xldCBpPWUucHJvcDtpZihpLmluY2x1ZGVzKCJtYXNrIikpe2lmKHQ9PT0iLXdlYmtpdC0ifHx0PT09Ii13ZWJraXQtIG9sZCIpcmV0dXJuIHN1cGVyLmFkZChlLHQpfWVsc2UgaWYoaT09PSJsaXN0LXN0eWxlInx8aT09PSJsaXN0LXN0eWxlLWltYWdlInx8aT09PSJjb250ZW50Iil7aWYodD09PSItd2Via2l0LSJ8fHQ9PT0iLXdlYmtpdC0gb2xkIilyZXR1cm4gc3VwZXIuYWRkKGUsdCl9ZWxzZSByZXR1cm4gc3VwZXIuYWRkKGUsdCl9fTt3dC5uYW1lcz1bImxpbmVhci1ncmFkaWVudCIsInJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQiLCJyYWRpYWwtZ3JhZGllbnQiLCJyZXBlYXRpbmctcmFkaWFsLWdyYWRpZW50Il07d3QuZGlyZWN0aW9ucz17dG9wOiJib3R0b20iLGxlZnQ6InJpZ2h0Iixib3R0b206InRvcCIscmlnaHQ6ImxlZnQifTt3dC5vbGREaXJlY3Rpb25zPXt0b3A6ImxlZnQgYm90dG9tLCBsZWZ0IHRvcCIsbGVmdDoicmlnaHQgdG9wLCBsZWZ0IHRvcCIsYm90dG9tOiJsZWZ0IHRvcCwgbGVmdCBib3R0b20iLHJpZ2h0OiJsZWZ0IHRvcCwgcmlnaHQgdG9wIiwidG9wIHJpZ2h0IjoibGVmdCBib3R0b20sIHJpZ2h0IHRvcCIsInRvcCBsZWZ0IjoicmlnaHQgYm90dG9tLCBsZWZ0IHRvcCIsInJpZ2h0IHRvcCI6ImxlZnQgYm90dG9tLCByaWdodCB0b3AiLCJyaWdodCBib3R0b20iOiJsZWZ0IHRvcCwgcmlnaHQgYm90dG9tIiwiYm90dG9tIHJpZ2h0IjoibGVmdCB0b3AsIHJpZ2h0IGJvdHRvbSIsImJvdHRvbSBsZWZ0IjoicmlnaHQgdG9wLCBsZWZ0IGJvdHRvbSIsImxlZnQgdG9wIjoicmlnaHQgYm90dG9tLCBsZWZ0IHRvcCIsImxlZnQgYm90dG9tIjoicmlnaHQgdG9wLCBsZWZ0IGJvdHRvbSJ9O3owLmV4cG9ydHM9d3R9KTt2YXIgVzA9eCgoeUwsSDApPT57dSgpO3ZhciB4Uj14cigpLGtSPUhlKCk7ZnVuY3Rpb24gVjAocil7cmV0dXJuIG5ldyBSZWdFeHAoYChefFtcXHMsKF0pKCR7cn0oJHxbXFxzKSxdKSlgLCJnaSIpfXZhciBYdT1jbGFzcyBleHRlbmRzIGtSe3JlZ2V4cCgpe3JldHVybiB0aGlzLnJlZ2V4cENhY2hlfHwodGhpcy5yZWdleHBDYWNoZT1WMCh0aGlzLm5hbWUpKSx0aGlzLnJlZ2V4cENhY2hlfWlzU3RyZXRjaCgpe3JldHVybiB0aGlzLm5hbWU9PT0ic3RyZXRjaCJ8fHRoaXMubmFtZT09PSJmaWxsInx8dGhpcy5uYW1lPT09ImZpbGwtYXZhaWxhYmxlIn1yZXBsYWNlKGUsdCl7cmV0dXJuIHQ9PT0iLW1vei0iJiZ0aGlzLmlzU3RyZXRjaCgpP2UucmVwbGFjZSh0aGlzLnJlZ2V4cCgpLCIkMS1tb3otYXZhaWxhYmxlJDMiKTp0PT09Ii13ZWJraXQtIiYmdGhpcy5pc1N0cmV0Y2goKT9lLnJlcGxhY2UodGhpcy5yZWdleHAoKSwiJDEtd2Via2l0LWZpbGwtYXZhaWxhYmxlJDMiKTpzdXBlci5yZXBsYWNlKGUsdCl9b2xkKGUpe2xldCB0PWUrdGhpcy5uYW1lO3JldHVybiB0aGlzLmlzU3RyZXRjaCgpJiYoZT09PSItbW96LSI/dD0iLW1vei1hdmFpbGFibGUiOmU9PT0iLXdlYmtpdC0iJiYodD0iLXdlYmtpdC1maWxsLWF2YWlsYWJsZSIpKSxuZXcgeFIodGhpcy5uYW1lLHQsdCxWMCh0KSl9YWRkKGUsdCl7aWYoIShlLnByb3AuaW5jbHVkZXMoImdyaWQiKSYmdCE9PSItd2Via2l0LSIpKXJldHVybiBzdXBlci5hZGQoZSx0KX19O1h1Lm5hbWVzPVsibWF4LWNvbnRlbnQiLCJtaW4tY29udGVudCIsImZpdC1jb250ZW50IiwiZmlsbCIsImZpbGwtYXZhaWxhYmxlIiwic3RyZXRjaCJdO0gwLmV4cG9ydHM9WHV9KTt2YXIgWTA9eCgoYkwsUTApPT57dSgpO3ZhciBHMD14cigpLFNSPUhlKCksWnU9Y2xhc3MgZXh0ZW5kcyBTUntyZXBsYWNlKGUsdCl7cmV0dXJuIHQ9PT0iLXdlYmtpdC0iP2UucmVwbGFjZSh0aGlzLnJlZ2V4cCgpLCIkMS13ZWJraXQtb3B0aW1pemUtY29udHJhc3QiKTp0PT09Ii1tb3otIj9lLnJlcGxhY2UodGhpcy5yZWdleHAoKSwiJDEtbW96LWNyaXNwLWVkZ2VzIik6c3VwZXIucmVwbGFjZShlLHQpfW9sZChlKXtyZXR1cm4gZT09PSItd2Via2l0LSI/bmV3IEcwKHRoaXMubmFtZSwiLXdlYmtpdC1vcHRpbWl6ZS1jb250cmFzdCIpOmU9PT0iLW1vei0iP25ldyBHMCh0aGlzLm5hbWUsIi1tb3otY3Jpc3AtZWRnZXMiKTpzdXBlci5vbGQoZSl9fTtadS5uYW1lcz1bInBpeGVsYXRlZCJdO1EwLmV4cG9ydHM9WnV9KTt2YXIgWDA9eCgod0wsSzApPT57dSgpO3ZhciBBUj1IZSgpLEp1PWNsYXNzIGV4dGVuZHMgQVJ7cmVwbGFjZShlLHQpe2xldCBpPXN1cGVyLnJlcGxhY2UoZSx0KTtyZXR1cm4gdD09PSItd2Via2l0LSImJihpPWkucmVwbGFjZSgvKCJbXiJdKyJ8J1teJ10rJykoXHMrXGQrXHcpL2dpLCJ1cmwoJDEpJDIiKSksaX19O0p1Lm5hbWVzPVsiaW1hZ2Utc2V0Il07SzAuZXhwb3J0cz1KdX0pO3ZhciBKMD14KCh2TCxaMCk9Pnt1KCk7dmFyIENSPSRlKCkubGlzdCxfUj1IZSgpLGVmPWNsYXNzIGV4dGVuZHMgX1J7cmVwbGFjZShlLHQpe3JldHVybiBDUi5zcGFjZShlKS5tYXAoaT0+e2lmKGkuc2xpY2UoMCwrdGhpcy5uYW1lLmxlbmd0aCsxKSE9PXRoaXMubmFtZSsiKCIpcmV0dXJuIGk7bGV0IG49aS5sYXN0SW5kZXhPZigiKSIpLHM9aS5zbGljZShuKzEpLGE9aS5zbGljZSh0aGlzLm5hbWUubGVuZ3RoKzEsbik7aWYodD09PSItd2Via2l0LSIpe2xldCBvPWEubWF0Y2goL1xkKi4/XGQrJT8vKTtvPyhhPWEuc2xpY2Uob1swXS5sZW5ndGgpLnRyaW0oKSxhKz1gLCAke29bMF19YCk6YSs9IiwgMC41In1yZXR1cm4gdCt0aGlzLm5hbWUrIigiK2ErIikiK3N9KS5qb2luKCIgIil9fTtlZi5uYW1lcz1bImNyb3NzLWZhZGUiXTtaMC5leHBvcnRzPWVmfSk7dmFyIHR2PXgoKHhMLGV2KT0+e3UoKTt2YXIgRVI9UGUoKSxPUj14cigpLFRSPUhlKCksdGY9Y2xhc3MgZXh0ZW5kcyBUUntjb25zdHJ1Y3RvcihlLHQpe3N1cGVyKGUsdCk7ZT09PSJkaXNwbGF5LWZsZXgiJiYodGhpcy5uYW1lPSJmbGV4Iil9Y2hlY2soZSl7cmV0dXJuIGUucHJvcD09PSJkaXNwbGF5IiYmZS52YWx1ZT09PXRoaXMubmFtZX1wcmVmaXhlZChlKXtsZXQgdCxpO3JldHVyblt0LGVdPUVSKGUpLHQ9PT0yMDA5P3RoaXMubmFtZT09PSJmbGV4Ij9pPSJib3giOmk9ImlubGluZS1ib3giOnQ9PT0yMDEyP3RoaXMubmFtZT09PSJmbGV4Ij9pPSJmbGV4Ym94IjppPSJpbmxpbmUtZmxleGJveCI6dD09PSJmaW5hbCImJihpPXRoaXMubmFtZSksZStpfXJlcGxhY2UoZSx0KXtyZXR1cm4gdGhpcy5wcmVmaXhlZCh0KX1vbGQoZSl7bGV0IHQ9dGhpcy5wcmVmaXhlZChlKTtpZighIXQpcmV0dXJuIG5ldyBPUih0aGlzLm5hbWUsdCl9fTt0Zi5uYW1lcz1bImRpc3BsYXktZmxleCIsImlubGluZS1mbGV4Il07ZXYuZXhwb3J0cz10Zn0pO3ZhciBpdj14KChrTCxydik9Pnt1KCk7dmFyIFJSPUhlKCkscmY9Y2xhc3MgZXh0ZW5kcyBSUntjb25zdHJ1Y3RvcihlLHQpe3N1cGVyKGUsdCk7ZT09PSJkaXNwbGF5LWdyaWQiJiYodGhpcy5uYW1lPSJncmlkIil9Y2hlY2soZSl7cmV0dXJuIGUucHJvcD09PSJkaXNwbGF5IiYmZS52YWx1ZT09PXRoaXMubmFtZX19O3JmLm5hbWVzPVsiZGlzcGxheS1ncmlkIiwiaW5saW5lLWdyaWQiXTtydi5leHBvcnRzPXJmfSk7dmFyIHN2PXgoKFNMLG52KT0+e3UoKTt2YXIgUFI9SGUoKSxuZj1jbGFzcyBleHRlbmRzIFBSe2NvbnN0cnVjdG9yKGUsdCl7c3VwZXIoZSx0KTtlPT09ImZpbHRlci1mdW5jdGlvbiImJih0aGlzLm5hbWU9ImZpbHRlciIpfX07bmYubmFtZXM9WyJmaWx0ZXIiLCJmaWx0ZXItZnVuY3Rpb24iXTtudi5leHBvcnRzPW5mfSk7dmFyIHV2PXgoKEFMLGx2KT0+e3UoKTt2YXIgYXY9TmkoKSx6PWooKSxvdj16eSgpLElSPWFiKCksRFI9b3UoKSxxUj1DYigpLHNmPU10KCksUHI9a3IoKSwkUj1EYigpLHV0PUhlKCksSXI9X2UoKSxMUj0kYigpLE1SPU1iKCksTlI9QmIoKSxCUj1qYigpLEZSPVdiKCksalI9WWIoKSx6Uj1YYigpLFVSPUpiKCksVlI9dHcoKSxIUj1pdygpLFdSPXN3KCksR1I9b3coKSxRUj11dygpLFlSPWN3KCksS1I9ZHcoKSxYUj1ndygpLFpSPWJ3KCksSlI9eHcoKSxlNT1TdygpLHQ1PUN3KCkscjU9T3coKSxpNT1SdygpLG41PUR3KCksczU9JHcoKSxhNT1NdygpLG81PUJ3KCksbDU9ancoKSx1NT1WdygpLGY1PVd3KCksYzU9UXcoKSxwNT1LdygpLGQ1PVp3KCksaDU9ZTAoKSxtNT1yMCgpLGc1PXMwKCkseTU9bzAoKSxiNT11MCgpLHc1PWMwKCksdjU9ZDAoKSx4NT1nMCgpLGs1PWIwKCksUzU9djAoKSxBNT1TMCgpLEM1PUMwKCksXzU9RTAoKSxFNT1SMCgpLE81PUkwKCksVDU9cTAoKSxSNT1VMCgpLFA1PVcwKCksSTU9WTAoKSxENT1YMCgpLHE1PUowKCksJDU9dHYoKSxMNT1pdigpLE01PXN2KCk7UHIuaGFjayhMUik7UHIuaGFjayhNUik7UHIuaGFjayhOUik7UHIuaGFjayhCUik7ei5oYWNrKEZSKTt6LmhhY2soalIpO3ouaGFjayh6Uik7ei5oYWNrKFVSKTt6LmhhY2soVlIpO3ouaGFjayhIUik7ei5oYWNrKFdSKTt6LmhhY2soR1IpO3ouaGFjayhRUik7ei5oYWNrKFlSKTt6LmhhY2soS1IpO3ouaGFjayhYUik7ei5oYWNrKFpSKTt6LmhhY2soSlIpO3ouaGFjayhlNSk7ei5oYWNrKHQ1KTt6LmhhY2socjUpO3ouaGFjayhpNSk7ei5oYWNrKG41KTt6LmhhY2soczUpO3ouaGFjayhhNSk7ei5oYWNrKG81KTt6LmhhY2sobDUpO3ouaGFjayh1NSk7ei5oYWNrKGY1KTt6LmhhY2soYzUpO3ouaGFjayhwNSk7ei5oYWNrKGQ1KTt6LmhhY2soaDUpO3ouaGFjayhtNSk7ei5oYWNrKGc1KTt6LmhhY2soeTUpO3ouaGFjayhiNSk7ei5oYWNrKHc1KTt6LmhhY2sodjUpO3ouaGFjayh4NSk7ei5oYWNrKGs1KTt6LmhhY2soUzUpO3ouaGFjayhBNSk7ei5oYWNrKEM1KTt6LmhhY2soXzUpO3ouaGFjayhFNSk7ei5oYWNrKE81KTt6LmhhY2soVDUpO3V0LmhhY2soUjUpO3V0LmhhY2soUDUpO3V0LmhhY2soSTUpO3V0LmhhY2soRDUpO3V0LmhhY2socTUpO3V0LmhhY2soJDUpO3V0LmhhY2soTDUpO3V0LmhhY2soTTUpO3ZhciBhZj1uZXcgTWFwLEZpPWNsYXNze2NvbnN0cnVjdG9yKGUsdCxpPXt9KXt0aGlzLmRhdGE9ZSx0aGlzLmJyb3dzZXJzPXQsdGhpcy5vcHRpb25zPWksW3RoaXMuYWRkLHRoaXMucmVtb3ZlXT10aGlzLnByZXByb2Nlc3ModGhpcy5zZWxlY3QodGhpcy5kYXRhKSksdGhpcy50cmFuc2l0aW9uPW5ldyBJUih0aGlzKSx0aGlzLnByb2Nlc3Nvcj1uZXcgRFIodGhpcyl9Y2xlYW5lcigpe2lmKHRoaXMuY2xlYW5lckNhY2hlKXJldHVybiB0aGlzLmNsZWFuZXJDYWNoZTtpZih0aGlzLmJyb3dzZXJzLnNlbGVjdGVkLmxlbmd0aCl7bGV0IGU9bmV3IHNmKHRoaXMuYnJvd3NlcnMuZGF0YSxbXSk7dGhpcy5jbGVhbmVyQ2FjaGU9bmV3IEZpKHRoaXMuZGF0YSxlLHRoaXMub3B0aW9ucyl9ZWxzZSByZXR1cm4gdGhpcztyZXR1cm4gdGhpcy5jbGVhbmVyQ2FjaGV9c2VsZWN0KGUpe2xldCB0PXthZGQ6e30scmVtb3ZlOnt9fTtmb3IobGV0IGkgaW4gZSl7bGV0IG49ZVtpXSxzPW4uYnJvd3NlcnMubWFwKGw9PntsZXQgYz1sLnNwbGl0KCIgIik7cmV0dXJue2Jyb3dzZXI6YCR7Y1swXX0gJHtjWzFdfWAsbm90ZTpjWzJdfX0pLGE9cy5maWx0ZXIobD0+bC5ub3RlKS5tYXAobD0+YCR7dGhpcy5icm93c2Vycy5wcmVmaXgobC5icm93c2VyKX0gJHtsLm5vdGV9YCk7YT1Jci51bmlxKGEpLHM9cy5maWx0ZXIobD0+dGhpcy5icm93c2Vycy5pc1NlbGVjdGVkKGwuYnJvd3NlcikpLm1hcChsPT57bGV0IGM9dGhpcy5icm93c2Vycy5wcmVmaXgobC5icm93c2VyKTtyZXR1cm4gbC5ub3RlP2Ake2N9ICR7bC5ub3RlfWA6Y30pLHM9dGhpcy5zb3J0KElyLnVuaXEocykpLHRoaXMub3B0aW9ucy5mbGV4Ym94PT09Im5vLTIwMDkiJiYocz1zLmZpbHRlcihsPT4hbC5pbmNsdWRlcygiMjAwOSIpKSk7bGV0IG89bi5icm93c2Vycy5tYXAobD0+dGhpcy5icm93c2Vycy5wcmVmaXgobCkpO24ubWlzdGFrZXMmJihvPW8uY29uY2F0KG4ubWlzdGFrZXMpKSxvPW8uY29uY2F0KGEpLG89SXIudW5pcShvKSxzLmxlbmd0aD8odC5hZGRbaV09cyxzLmxlbmd0aDxvLmxlbmd0aCYmKHQucmVtb3ZlW2ldPW8uZmlsdGVyKGw9PiFzLmluY2x1ZGVzKGwpKSkpOnQucmVtb3ZlW2ldPW99cmV0dXJuIHR9c29ydChlKXtyZXR1cm4gZS5zb3J0KCh0LGkpPT57bGV0IG49SXIucmVtb3ZlTm90ZSh0KS5sZW5ndGgscz1Jci5yZW1vdmVOb3RlKGkpLmxlbmd0aDtyZXR1cm4gbj09PXM/aS5sZW5ndGgtdC5sZW5ndGg6cy1ufSl9cHJlcHJvY2VzcyhlKXtsZXQgdD17c2VsZWN0b3JzOltdLCJAc3VwcG9ydHMiOm5ldyBxUihGaSx0aGlzKX07Zm9yKGxldCBuIGluIGUuYWRkKXtsZXQgcz1lLmFkZFtuXTtpZihuPT09IkBrZXlmcmFtZXMifHxuPT09IkB2aWV3cG9ydCIpdFtuXT1uZXcgJFIobixzLHRoaXMpO2Vsc2UgaWYobj09PSJAcmVzb2x1dGlvbiIpdFtuXT1uZXcgb3YobixzLHRoaXMpO2Vsc2UgaWYodGhpcy5kYXRhW25dLnNlbGVjdG9yKXQuc2VsZWN0b3JzLnB1c2goUHIubG9hZChuLHMsdGhpcykpO2Vsc2V7bGV0IGE9dGhpcy5kYXRhW25dLnByb3BzO2lmKGEpe2xldCBvPXV0LmxvYWQobixzLHRoaXMpO2ZvcihsZXQgbCBvZiBhKXRbbF18fCh0W2xdPXt2YWx1ZXM6W119KSx0W2xdLnZhbHVlcy5wdXNoKG8pfWVsc2V7bGV0IG89dFtuXSYmdFtuXS52YWx1ZXN8fFtdO3Rbbl09ei5sb2FkKG4scyx0aGlzKSx0W25dLnZhbHVlcz1vfX19bGV0IGk9e3NlbGVjdG9yczpbXX07Zm9yKGxldCBuIGluIGUucmVtb3ZlKXtsZXQgcz1lLnJlbW92ZVtuXTtpZih0aGlzLmRhdGFbbl0uc2VsZWN0b3Ipe2xldCBhPVByLmxvYWQobixzKTtmb3IobGV0IG8gb2YgcylpLnNlbGVjdG9ycy5wdXNoKGEub2xkKG8pKX1lbHNlIGlmKG49PT0iQGtleWZyYW1lcyJ8fG49PT0iQHZpZXdwb3J0Iilmb3IobGV0IGEgb2Ygcyl7bGV0IG89YEAke2F9JHtuLnNsaWNlKDEpfWA7aVtvXT17cmVtb3ZlOiEwfX1lbHNlIGlmKG49PT0iQHJlc29sdXRpb24iKWlbbl09bmV3IG92KG4scyx0aGlzKTtlbHNle2xldCBhPXRoaXMuZGF0YVtuXS5wcm9wcztpZihhKXtsZXQgbz11dC5sb2FkKG4sW10sdGhpcyk7Zm9yKGxldCBsIG9mIHMpe2xldCBjPW8ub2xkKGwpO2lmKGMpZm9yKGxldCBmIG9mIGEpaVtmXXx8KGlbZl09e30pLGlbZl0udmFsdWVzfHwoaVtmXS52YWx1ZXM9W10pLGlbZl0udmFsdWVzLnB1c2goYyl9fWVsc2UgZm9yKGxldCBvIG9mIHMpe2xldCBsPXRoaXMuZGVjbChuKS5vbGQobixvKTtpZihuPT09ImFsaWduLXNlbGYiKXtsZXQgYz10W25dJiZ0W25dLnByZWZpeGVzO2lmKGMpe2lmKG89PT0iLXdlYmtpdC0gMjAwOSImJmMuaW5jbHVkZXMoIi13ZWJraXQtIikpY29udGludWU7aWYobz09PSItd2Via2l0LSImJmMuaW5jbHVkZXMoIi13ZWJraXQtIDIwMDkiKSljb250aW51ZX19Zm9yKGxldCBjIG9mIGwpaVtjXXx8KGlbY109e30pLGlbY10ucmVtb3ZlPSEwfX19cmV0dXJuW3QsaV19ZGVjbChlKXtyZXR1cm4gYWYuaGFzKGUpfHxhZi5zZXQoZSx6LmxvYWQoZSkpLGFmLmdldChlKX11bnByZWZpeGVkKGUpe2xldCB0PXRoaXMubm9ybWFsaXplKGF2LnVucHJlZml4ZWQoZSkpO3JldHVybiB0PT09ImZsZXgtZGlyZWN0aW9uIiYmKHQ9ImZsZXgtZmxvdyIpLHR9bm9ybWFsaXplKGUpe3JldHVybiB0aGlzLmRlY2woZSkubm9ybWFsaXplKGUpfXByZWZpeGVkKGUsdCl7cmV0dXJuIGU9YXYudW5wcmVmaXhlZChlKSx0aGlzLmRlY2woZSkucHJlZml4ZWQoZSx0KX12YWx1ZXMoZSx0KXtsZXQgaT10aGlzW2VdLG49aVsiKiJdJiZpWyIqIl0udmFsdWVzLHM9aVt0XSYmaVt0XS52YWx1ZXM7cmV0dXJuIG4mJnM/SXIudW5pcShuLmNvbmNhdChzKSk6bnx8c3x8W119Z3JvdXAoZSl7bGV0IHQ9ZS5wYXJlbnQsaT10LmluZGV4KGUpLHtsZW5ndGg6bn09dC5ub2RlcyxzPXRoaXMudW5wcmVmaXhlZChlLnByb3ApLGE9KG8sbCk9Pntmb3IoaSs9bztpPj0wJiZpPG47KXtsZXQgYz10Lm5vZGVzW2ldO2lmKGMudHlwZT09PSJkZWNsIil7aWYobz09PS0xJiZjLnByb3A9PT1zJiYhc2Yud2l0aFByZWZpeChjLnZhbHVlKXx8dGhpcy51bnByZWZpeGVkKGMucHJvcCkhPT1zKWJyZWFrO2lmKGwoYyk9PT0hMClyZXR1cm4hMDtpZihvPT09MSYmYy5wcm9wPT09cyYmIXNmLndpdGhQcmVmaXgoYy52YWx1ZSkpYnJlYWt9aSs9b31yZXR1cm4hMX07cmV0dXJue3VwKG8pe3JldHVybiBhKC0xLG8pfSxkb3duKG8pe3JldHVybiBhKDEsbyl9fX19O2x2LmV4cG9ydHM9Rml9KTt2YXIgY3Y9eCgoQ0wsZnYpPT57dSgpO2Z2LmV4cG9ydHM9eyJiYWNrZHJvcC1maWx0ZXIiOntmZWF0dXJlOiJjc3MtYmFja2Ryb3AtZmlsdGVyIixicm93c2VyczpbImlvc19zYWYgMTYuMSIsImlvc19zYWYgMTYuMyIsImlvc19zYWYgMTYuNCIsImlvc19zYWYgMTYuNSIsInNhZmFyaSAxNi41Il19LGVsZW1lbnQ6e3Byb3BzOlsiYmFja2dyb3VuZCIsImJhY2tncm91bmQtaW1hZ2UiLCJib3JkZXItaW1hZ2UiLCJtYXNrIiwibGlzdC1zdHlsZSIsImxpc3Qtc3R5bGUtaW1hZ2UiLCJjb250ZW50IiwibWFzay1pbWFnZSJdLGZlYXR1cmU6ImNzcy1lbGVtZW50LWZ1bmN0aW9uIixicm93c2VyczpbImZpcmVmb3ggMTE0Il19LCJ1c2VyLXNlbGVjdCI6e21pc3Rha2VzOlsiLWtodG1sLSJdLGZlYXR1cmU6InVzZXItc2VsZWN0LW5vbmUiLGJyb3dzZXJzOlsiaW9zX3NhZiAxNi4xIiwiaW9zX3NhZiAxNi4zIiwiaW9zX3NhZiAxNi40IiwiaW9zX3NhZiAxNi41Iiwic2FmYXJpIDE2LjUiXX0sImJhY2tncm91bmQtY2xpcCI6e2ZlYXR1cmU6ImJhY2tncm91bmQtY2xpcC10ZXh0Iixicm93c2VyczpbImFuZF9jaHIgMTE0IiwiYW5kX3VjIDE1LjUiLCJjaHJvbWUgMTA5IiwiY2hyb21lIDExMyIsImNocm9tZSAxMTQiLCJlZGdlIDExNCIsIm9wZXJhIDk5Iiwic2Ftc3VuZyAyMSJdfSxoeXBoZW5zOntmZWF0dXJlOiJjc3MtaHlwaGVucyIsYnJvd3NlcnM6WyJpb3Nfc2FmIDE2LjEiLCJpb3Nfc2FmIDE2LjMiLCJpb3Nfc2FmIDE2LjQiLCJpb3Nfc2FmIDE2LjUiLCJzYWZhcmkgMTYuNSJdfSxmaWxsOntwcm9wczpbIndpZHRoIiwibWluLXdpZHRoIiwibWF4LXdpZHRoIiwiaGVpZ2h0IiwibWluLWhlaWdodCIsIm1heC1oZWlnaHQiLCJpbmxpbmUtc2l6ZSIsIm1pbi1pbmxpbmUtc2l6ZSIsIm1heC1pbmxpbmUtc2l6ZSIsImJsb2NrLXNpemUiLCJtaW4tYmxvY2stc2l6ZSIsIm1heC1ibG9jay1zaXplIiwiZ3JpZCIsImdyaWQtdGVtcGxhdGUiLCJncmlkLXRlbXBsYXRlLXJvd3MiLCJncmlkLXRlbXBsYXRlLWNvbHVtbnMiLCJncmlkLWF1dG8tY29sdW1ucyIsImdyaWQtYXV0by1yb3dzIl0sZmVhdHVyZToiaW50cmluc2ljLXdpZHRoIixicm93c2VyczpbImFuZF9jaHIgMTE0IiwiYW5kX3VjIDE1LjUiLCJjaHJvbWUgMTA5IiwiY2hyb21lIDExMyIsImNocm9tZSAxMTQiLCJlZGdlIDExNCIsIm9wZXJhIDk5Iiwic2Ftc3VuZyAyMSJdfSwiZmlsbC1hdmFpbGFibGUiOntwcm9wczpbIndpZHRoIiwibWluLXdpZHRoIiwibWF4LXdpZHRoIiwiaGVpZ2h0IiwibWluLWhlaWdodCIsIm1heC1oZWlnaHQiLCJpbmxpbmUtc2l6ZSIsIm1pbi1pbmxpbmUtc2l6ZSIsIm1heC1pbmxpbmUtc2l6ZSIsImJsb2NrLXNpemUiLCJtaW4tYmxvY2stc2l6ZSIsIm1heC1ibG9jay1zaXplIiwiZ3JpZCIsImdyaWQtdGVtcGxhdGUiLCJncmlkLXRlbXBsYXRlLXJvd3MiLCJncmlkLXRlbXBsYXRlLWNvbHVtbnMiLCJncmlkLWF1dG8tY29sdW1ucyIsImdyaWQtYXV0by1yb3dzIl0sZmVhdHVyZToiaW50cmluc2ljLXdpZHRoIixicm93c2VyczpbImFuZF9jaHIgMTE0IiwiYW5kX3VjIDE1LjUiLCJjaHJvbWUgMTA5IiwiY2hyb21lIDExMyIsImNocm9tZSAxMTQiLCJlZGdlIDExNCIsIm9wZXJhIDk5Iiwic2Ftc3VuZyAyMSJdfSxzdHJldGNoOntwcm9wczpbIndpZHRoIiwibWluLXdpZHRoIiwibWF4LXdpZHRoIiwiaGVpZ2h0IiwibWluLWhlaWdodCIsIm1heC1oZWlnaHQiLCJpbmxpbmUtc2l6ZSIsIm1pbi1pbmxpbmUtc2l6ZSIsIm1heC1pbmxpbmUtc2l6ZSIsImJsb2NrLXNpemUiLCJtaW4tYmxvY2stc2l6ZSIsIm1heC1ibG9jay1zaXplIiwiZ3JpZCIsImdyaWQtdGVtcGxhdGUiLCJncmlkLXRlbXBsYXRlLXJvd3MiLCJncmlkLXRlbXBsYXRlLWNvbHVtbnMiLCJncmlkLWF1dG8tY29sdW1ucyIsImdyaWQtYXV0by1yb3dzIl0sZmVhdHVyZToiaW50cmluc2ljLXdpZHRoIixicm93c2VyczpbImZpcmVmb3ggMTE0Il19LCJmaXQtY29udGVudCI6e3Byb3BzOlsid2lkdGgiLCJtaW4td2lkdGgiLCJtYXgtd2lkdGgiLCJoZWlnaHQiLCJtaW4taGVpZ2h0IiwibWF4LWhlaWdodCIsImlubGluZS1zaXplIiwibWluLWlubGluZS1zaXplIiwibWF4LWlubGluZS1zaXplIiwiYmxvY2stc2l6ZSIsIm1pbi1ibG9jay1zaXplIiwibWF4LWJsb2NrLXNpemUiLCJncmlkIiwiZ3JpZC10ZW1wbGF0ZSIsImdyaWQtdGVtcGxhdGUtcm93cyIsImdyaWQtdGVtcGxhdGUtY29sdW1ucyIsImdyaWQtYXV0by1jb2x1bW5zIiwiZ3JpZC1hdXRvLXJvd3MiXSxmZWF0dXJlOiJpbnRyaW5zaWMtd2lkdGgiLGJyb3dzZXJzOlsiZmlyZWZveCAxMTQiXX0sInRleHQtZGVjb3JhdGlvbi1zdHlsZSI6e2ZlYXR1cmU6InRleHQtZGVjb3JhdGlvbiIsYnJvd3NlcnM6WyJpb3Nfc2FmIDE2LjEiLCJpb3Nfc2FmIDE2LjMiLCJpb3Nfc2FmIDE2LjQiLCJpb3Nfc2FmIDE2LjUiXX0sInRleHQtZGVjb3JhdGlvbi1jb2xvciI6e2ZlYXR1cmU6InRleHQtZGVjb3JhdGlvbiIsYnJvd3NlcnM6WyJpb3Nfc2FmIDE2LjEiLCJpb3Nfc2FmIDE2LjMiLCJpb3Nfc2FmIDE2LjQiLCJpb3Nfc2FmIDE2LjUiXX0sInRleHQtZGVjb3JhdGlvbi1saW5lIjp7ZmVhdHVyZToidGV4dC1kZWNvcmF0aW9uIixicm93c2VyczpbImlvc19zYWYgMTYuMSIsImlvc19zYWYgMTYuMyIsImlvc19zYWYgMTYuNCIsImlvc19zYWYgMTYuNSJdfSwidGV4dC1kZWNvcmF0aW9uIjp7ZmVhdHVyZToidGV4dC1kZWNvcmF0aW9uIixicm93c2VyczpbImlvc19zYWYgMTYuMSIsImlvc19zYWYgMTYuMyIsImlvc19zYWYgMTYuNCIsImlvc19zYWYgMTYuNSJdfSwidGV4dC1kZWNvcmF0aW9uLXNraXAiOntmZWF0dXJlOiJ0ZXh0LWRlY29yYXRpb24iLGJyb3dzZXJzOlsiaW9zX3NhZiAxNi4xIiwiaW9zX3NhZiAxNi4zIiwiaW9zX3NhZiAxNi40IiwiaW9zX3NhZiAxNi41Il19LCJ0ZXh0LWRlY29yYXRpb24tc2tpcC1pbmsiOntmZWF0dXJlOiJ0ZXh0LWRlY29yYXRpb24iLGJyb3dzZXJzOlsiaW9zX3NhZiAxNi4xIiwiaW9zX3NhZiAxNi4zIiwiaW9zX3NhZiAxNi40IiwiaW9zX3NhZiAxNi41Il19LCJ0ZXh0LXNpemUtYWRqdXN0Ijp7ZmVhdHVyZToidGV4dC1zaXplLWFkanVzdCIsYnJvd3NlcnM6WyJpb3Nfc2FmIDE2LjEiLCJpb3Nfc2FmIDE2LjMiLCJpb3Nfc2FmIDE2LjQiLCJpb3Nfc2FmIDE2LjUiXX0sIm1hc2stY2xpcCI6e2ZlYXR1cmU6ImNzcy1tYXNrcyIsYnJvd3NlcnM6WyJhbmRfY2hyIDExNCIsImFuZF91YyAxNS41IiwiY2hyb21lIDEwOSIsImNocm9tZSAxMTMiLCJjaHJvbWUgMTE0IiwiZWRnZSAxMTQiLCJvcGVyYSA5OSIsInNhbXN1bmcgMjEiXX0sIm1hc2stY29tcG9zaXRlIjp7ZmVhdHVyZToiY3NzLW1hc2tzIixicm93c2VyczpbImFuZF9jaHIgMTE0IiwiYW5kX3VjIDE1LjUiLCJjaHJvbWUgMTA5IiwiY2hyb21lIDExMyIsImNocm9tZSAxMTQiLCJlZGdlIDExNCIsIm9wZXJhIDk5Iiwic2Ftc3VuZyAyMSJdfSwibWFzay1pbWFnZSI6e2ZlYXR1cmU6ImNzcy1tYXNrcyIsYnJvd3NlcnM6WyJhbmRfY2hyIDExNCIsImFuZF91YyAxNS41IiwiY2hyb21lIDEwOSIsImNocm9tZSAxMTMiLCJjaHJvbWUgMTE0IiwiZWRnZSAxMTQiLCJvcGVyYSA5OSIsInNhbXN1bmcgMjEiXX0sIm1hc2stb3JpZ2luIjp7ZmVhdHVyZToiY3NzLW1hc2tzIixicm93c2VyczpbImFuZF9jaHIgMTE0IiwiYW5kX3VjIDE1LjUiLCJjaHJvbWUgMTA5IiwiY2hyb21lIDExMyIsImNocm9tZSAxMTQiLCJlZGdlIDExNCIsIm9wZXJhIDk5Iiwic2Ftc3VuZyAyMSJdfSwibWFzay1yZXBlYXQiOntmZWF0dXJlOiJjc3MtbWFza3MiLGJyb3dzZXJzOlsiYW5kX2NociAxMTQiLCJhbmRfdWMgMTUuNSIsImNocm9tZSAxMDkiLCJjaHJvbWUgMTEzIiwiY2hyb21lIDExNCIsImVkZ2UgMTE0Iiwib3BlcmEgOTkiLCJzYW1zdW5nIDIxIl19LCJtYXNrLWJvcmRlci1yZXBlYXQiOntmZWF0dXJlOiJjc3MtbWFza3MiLGJyb3dzZXJzOlsiYW5kX2NociAxMTQiLCJhbmRfdWMgMTUuNSIsImNocm9tZSAxMDkiLCJjaHJvbWUgMTEzIiwiY2hyb21lIDExNCIsImVkZ2UgMTE0Iiwib3BlcmEgOTkiLCJzYW1zdW5nIDIxIl19LCJtYXNrLWJvcmRlci1zb3VyY2UiOntmZWF0dXJlOiJjc3MtbWFza3MiLGJyb3dzZXJzOlsiYW5kX2NociAxMTQiLCJhbmRfdWMgMTUuNSIsImNocm9tZSAxMDkiLCJjaHJvbWUgMTEzIiwiY2hyb21lIDExNCIsImVkZ2UgMTE0Iiwib3BlcmEgOTkiLCJzYW1zdW5nIDIxIl19LG1hc2s6e2ZlYXR1cmU6ImNzcy1tYXNrcyIsYnJvd3NlcnM6WyJhbmRfY2hyIDExNCIsImFuZF91YyAxNS41IiwiY2hyb21lIDEwOSIsImNocm9tZSAxMTMiLCJjaHJvbWUgMTE0IiwiZWRnZSAxMTQiLCJvcGVyYSA5OSIsInNhbXN1bmcgMjEiXX0sIm1hc2stcG9zaXRpb24iOntmZWF0dXJlOiJjc3MtbWFza3MiLGJyb3dzZXJzOlsiYW5kX2NociAxMTQiLCJhbmRfdWMgMTUuNSIsImNocm9tZSAxMDkiLCJjaHJvbWUgMTEzIiwiY2hyb21lIDExNCIsImVkZ2UgMTE0Iiwib3BlcmEgOTkiLCJzYW1zdW5nIDIxIl19LCJtYXNrLXNpemUiOntmZWF0dXJlOiJjc3MtbWFza3MiLGJyb3dzZXJzOlsiYW5kX2NociAxMTQiLCJhbmRfdWMgMTUuNSIsImNocm9tZSAxMDkiLCJjaHJvbWUgMTEzIiwiY2hyb21lIDExNCIsImVkZ2UgMTE0Iiwib3BlcmEgOTkiLCJzYW1zdW5nIDIxIl19LCJtYXNrLWJvcmRlciI6e2ZlYXR1cmU6ImNzcy1tYXNrcyIsYnJvd3NlcnM6WyJhbmRfY2hyIDExNCIsImFuZF91YyAxNS41IiwiY2hyb21lIDEwOSIsImNocm9tZSAxMTMiLCJjaHJvbWUgMTE0IiwiZWRnZSAxMTQiLCJvcGVyYSA5OSIsInNhbXN1bmcgMjEiXX0sIm1hc2stYm9yZGVyLW91dHNldCI6e2ZlYXR1cmU6ImNzcy1tYXNrcyIsYnJvd3NlcnM6WyJhbmRfY2hyIDExNCIsImFuZF91YyAxNS41IiwiY2hyb21lIDEwOSIsImNocm9tZSAxMTMiLCJjaHJvbWUgMTE0IiwiZWRnZSAxMTQiLCJvcGVyYSA5OSIsInNhbXN1bmcgMjEiXX0sIm1hc2stYm9yZGVyLXdpZHRoIjp7ZmVhdHVyZToiY3NzLW1hc2tzIixicm93c2VyczpbImFuZF9jaHIgMTE0IiwiYW5kX3VjIDE1LjUiLCJjaHJvbWUgMTA5IiwiY2hyb21lIDExMyIsImNocm9tZSAxMTQiLCJlZGdlIDExNCIsIm9wZXJhIDk5Iiwic2Ftc3VuZyAyMSJdfSwibWFzay1ib3JkZXItc2xpY2UiOntmZWF0dXJlOiJjc3MtbWFza3MiLGJyb3dzZXJzOlsiYW5kX2NociAxMTQiLCJhbmRfdWMgMTUuNSIsImNocm9tZSAxMDkiLCJjaHJvbWUgMTEzIiwiY2hyb21lIDExNCIsImVkZ2UgMTE0Iiwib3BlcmEgOTkiLCJzYW1zdW5nIDIxIl19LCJjbGlwLXBhdGgiOntmZWF0dXJlOiJjc3MtY2xpcC1wYXRoIixicm93c2VyczpbInNhbXN1bmcgMjEiXX0sImJveC1kZWNvcmF0aW9uLWJyZWFrIjp7ZmVhdHVyZToiY3NzLWJveGRlY29yYXRpb25icmVhayIsYnJvd3NlcnM6WyJhbmRfY2hyIDExNCIsImFuZF91YyAxNS41IiwiY2hyb21lIDEwOSIsImNocm9tZSAxMTMiLCJjaHJvbWUgMTE0IiwiZWRnZSAxMTQiLCJpb3Nfc2FmIDE2LjEiLCJpb3Nfc2FmIDE2LjMiLCJpb3Nfc2FmIDE2LjQiLCJpb3Nfc2FmIDE2LjUiLCJvcGVyYSA5OSIsInNhZmFyaSAxNi41Iiwic2Ftc3VuZyAyMSJdfSxhcHBlYXJhbmNlOntmZWF0dXJlOiJjc3MtYXBwZWFyYW5jZSIsYnJvd3NlcnM6WyJzYW1zdW5nIDIxIl19LCJpbWFnZS1zZXQiOntwcm9wczpbImJhY2tncm91bmQiLCJiYWNrZ3JvdW5kLWltYWdlIiwiYm9yZGVyLWltYWdlIiwiY3Vyc29yIiwibWFzayIsIm1hc2staW1hZ2UiLCJsaXN0LXN0eWxlIiwibGlzdC1zdHlsZS1pbWFnZSIsImNvbnRlbnQiXSxmZWF0dXJlOiJjc3MtaW1hZ2Utc2V0Iixicm93c2VyczpbImFuZF91YyAxNS41IiwiY2hyb21lIDEwOSIsInNhbXN1bmcgMjEiXX0sImNyb3NzLWZhZGUiOntwcm9wczpbImJhY2tncm91bmQiLCJiYWNrZ3JvdW5kLWltYWdlIiwiYm9yZGVyLWltYWdlIiwibWFzayIsImxpc3Qtc3R5bGUiLCJsaXN0LXN0eWxlLWltYWdlIiwiY29udGVudCIsIm1hc2staW1hZ2UiXSxmZWF0dXJlOiJjc3MtY3Jvc3MtZmFkZSIsYnJvd3NlcnM6WyJhbmRfY2hyIDExNCIsImFuZF91YyAxNS41IiwiY2hyb21lIDEwOSIsImNocm9tZSAxMTMiLCJjaHJvbWUgMTE0IiwiZWRnZSAxMTQiLCJvcGVyYSA5OSIsInNhbXN1bmcgMjEiXX0saXNvbGF0ZTp7cHJvcHM6WyJ1bmljb2RlLWJpZGkiXSxmZWF0dXJlOiJjc3MtdW5pY29kZS1iaWRpIixicm93c2VyczpbImlvc19zYWYgMTYuMSIsImlvc19zYWYgMTYuMyIsImlvc19zYWYgMTYuNCIsImlvc19zYWYgMTYuNSIsInNhZmFyaSAxNi41Il19LCJjb2xvci1hZGp1c3QiOntmZWF0dXJlOiJjc3MtY29sb3ItYWRqdXN0Iixicm93c2VyczpbImNocm9tZSAxMDkiLCJjaHJvbWUgMTEzIiwiY2hyb21lIDExNCIsImVkZ2UgMTE0Iiwib3BlcmEgOTkiXX19fSk7dmFyIGR2PXgoKF9MLHB2KT0+e3UoKTtwdi5leHBvcnRzPXt9fSk7dmFyIHl2PXgoKEVMLGd2KT0+e3UoKTt2YXIgTjU9WWwoKSx7YWdlbnRzOkI1fT0oUHMoKSxScyksb2Y9T3koKSxGNT1NdCgpLGo1PXV2KCksejU9Y3YoKSxVNT1kdigpLGh2PXticm93c2VyczpCNSxwcmVmaXhlczp6NX0sbXY9YAogIFJlcGxhY2UgQXV0b3ByZWZpeGVyIFxgYnJvd3NlcnNcYCBvcHRpb24gdG8gQnJvd3NlcnNsaXN0IGNvbmZpZy4KICBVc2UgXGBicm93c2Vyc2xpc3RcYCBrZXkgaW4gXGBwYWNrYWdlLmpzb25cYCBvciBcYC5icm93c2Vyc2xpc3RyY1xgIGZpbGUuCgogIFVzaW5nIFxgYnJvd3NlcnNcYCBvcHRpb24gY2FuIGNhdXNlIGVycm9ycy4gQnJvd3NlcnNsaXN0IGNvbmZpZyBjYW4KICBiZSB1c2VkIGZvciBCYWJlbCwgQXV0b3ByZWZpeGVyLCBwb3N0Y3NzLW5vcm1hbGl6ZSBhbmQgb3RoZXIgdG9vbHMuCgogIElmIHlvdSByZWFsbHkgbmVlZCB0byB1c2Ugb3B0aW9uLCByZW5hbWUgaXQgdG8gXGBvdmVycmlkZUJyb3dzZXJzbGlzdFxgLgoKICBMZWFybiBtb3JlIGF0OgogIGh0dHBzOi8vZ2l0aHViLmNvbS9icm93c2Vyc2xpc3QvYnJvd3NlcnNsaXN0I3JlYWRtZQogIGh0dHBzOi8vdHdpdHRlci5jb20vYnJvd3NlcnNsaXN0CgpgO2Z1bmN0aW9uIFY1KHIpe3JldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmFwcGx5KHIpPT09IltvYmplY3QgT2JqZWN0XSJ9dmFyIGxmPW5ldyBNYXA7ZnVuY3Rpb24gSDUocixlKXtlLmJyb3dzZXJzLnNlbGVjdGVkLmxlbmd0aCE9PTAmJihlLmFkZC5zZWxlY3RvcnMubGVuZ3RoPjB8fE9iamVjdC5rZXlzKGUuYWRkKS5sZW5ndGg+Mnx8ci53YXJuKGBBdXRvcHJlZml4ZXIgdGFyZ2V0IGJyb3dzZXJzIGRvIG5vdCBuZWVkIGFueSBwcmVmaXhlcy5Zb3UgZG8gbm90IG5lZWQgQXV0b3ByZWZpeGVyIGFueW1vcmUuCkNoZWNrIHlvdXIgQnJvd3NlcnNsaXN0IGNvbmZpZyB0byBiZSBzdXJlIHRoYXQgeW91ciB0YXJnZXRzIGFyZSBzZXQgdXAgY29ycmVjdGx5LgoKICBMZWFybiBtb3JlIGF0OgogIGh0dHBzOi8vZ2l0aHViLmNvbS9wb3N0Y3NzL2F1dG9wcmVmaXhlciNyZWFkbWUKICBodHRwczovL2dpdGh1Yi5jb20vYnJvd3NlcnNsaXN0L2Jyb3dzZXJzbGlzdCNyZWFkbWUKCmApKX1ndi5leHBvcnRzPURyO2Z1bmN0aW9uIERyKC4uLnIpe2xldCBlO2lmKHIubGVuZ3RoPT09MSYmVjUoclswXSk/KGU9clswXSxyPXZvaWQgMCk6ci5sZW5ndGg9PT0wfHxyLmxlbmd0aD09PTEmJiFyWzBdP3I9dm9pZCAwOnIubGVuZ3RoPD0yJiYoQXJyYXkuaXNBcnJheShyWzBdKXx8IXJbMF0pPyhlPXJbMV0scj1yWzBdKTp0eXBlb2YgcltyLmxlbmd0aC0xXT09Im9iamVjdCImJihlPXIucG9wKCkpLGV8fChlPXt9KSxlLmJyb3dzZXIpdGhyb3cgbmV3IEVycm9yKCJDaGFuZ2UgYGJyb3dzZXJgIG9wdGlvbiB0byBgb3ZlcnJpZGVCcm93c2Vyc2xpc3RgIGluIEF1dG9wcmVmaXhlciIpO2lmKGUuYnJvd3NlcnNsaXN0KXRocm93IG5ldyBFcnJvcigiQ2hhbmdlIGBicm93c2Vyc2xpc3RgIG9wdGlvbiB0byBgb3ZlcnJpZGVCcm93c2Vyc2xpc3RgIGluIEF1dG9wcmVmaXhlciIpO2Uub3ZlcnJpZGVCcm93c2Vyc2xpc3Q/cj1lLm92ZXJyaWRlQnJvd3NlcnNsaXN0OmUuYnJvd3NlcnMmJih0eXBlb2YgY29uc29sZSE9InVuZGVmaW5lZCImJmNvbnNvbGUud2FybiYmKG9mLnJlZD9jb25zb2xlLndhcm4ob2YucmVkKG12LnJlcGxhY2UoL2BbXmBdK2AvZyxuPT5vZi55ZWxsb3cobi5zbGljZSgxLC0xKSkpKSk6Y29uc29sZS53YXJuKG12KSkscj1lLmJyb3dzZXJzKTtsZXQgdD17aWdub3JlVW5rbm93blZlcnNpb25zOmUuaWdub3JlVW5rbm93blZlcnNpb25zLHN0YXRzOmUuc3RhdHMsZW52OmUuZW52fTtmdW5jdGlvbiBpKG4pe2xldCBzPWh2LGE9bmV3IEY1KHMuYnJvd3NlcnMscixuLHQpLG89YS5zZWxlY3RlZC5qb2luKCIsICIpK0pTT04uc3RyaW5naWZ5KGUpO3JldHVybiBsZi5oYXMobyl8fGxmLnNldChvLG5ldyBqNShzLnByZWZpeGVzLGEsZSkpLGxmLmdldChvKX1yZXR1cm57cG9zdGNzc1BsdWdpbjoiYXV0b3ByZWZpeGVyIixwcmVwYXJlKG4pe2xldCBzPWkoe2Zyb206bi5vcHRzLmZyb20sZW52OmUuZW52fSk7cmV0dXJue09uY2VFeGl0KGEpe0g1KG4scyksZS5yZW1vdmUhPT0hMSYmcy5wcm9jZXNzb3IucmVtb3ZlKGEsbiksZS5hZGQhPT0hMSYmcy5wcm9jZXNzb3IuYWRkKGEsbil9fX0saW5mbyhuKXtyZXR1cm4gbj1ufHx7fSxuLmZyb209bi5mcm9tfHxtLmN3ZCgpLFU1KGkobikpfSxvcHRpb25zOmUsYnJvd3NlcnM6cn19RHIucG9zdGNzcz0hMDtEci5kYXRhPWh2O0RyLmRlZmF1bHRzPU41LmRlZmF1bHRzO0RyLmluZm89KCk9PkRyKCkuaW5mbygpfSk7dmFyIGJ2PXt9O0dlKGJ2LHtkZWZhdWx0OigpPT5XNX0pO3ZhciBXNSx3dj1QKCgpPT57dSgpO1c1PVtdfSk7dmFyIHh2PXt9O0dlKHh2LHtkZWZhdWx0OigpPT5HNX0pO3ZhciB2dixHNSxrdj1QKCgpPT57dSgpO1hpKCk7dnY9cGUocm4oKSksRzU9U3QodnYuZGVmYXVsdC50aGVtZSl9KTt2YXIgQXY9e307R2UoQXYse2RlZmF1bHQ6KCk9PlE1fSk7dmFyIFN2LFE1LEN2PVAoKCk9Pnt1KCk7WGkoKTtTdj1wZShybigpKSxRNT1TdChTdi5kZWZhdWx0KX0pO3UoKTsidXNlIHN0cmljdCI7dmFyIFk1PXZ0KF95KCkpLEs1PXZ0KCRlKCkpLFg1PXZ0KHl2KCkpLFo1PXZ0KCh3digpLGJ2KSksSjU9dnQoKGt2KCkseHYpKSxlUD12dCgoQ3YoKSxBdikpLHRQPXZ0KChWcygpLF9mKSksclA9dnQoKGFsKCksc2wpKSxpUD12dCgoc2EoKSxzYykpO2Z1bmN0aW9uIHZ0KHIpe3JldHVybiByJiZyLl9fZXNNb2R1bGU/cjp7ZGVmYXVsdDpyfX1jb25zb2xlLndhcm4oImNkbi50YWlsd2luZGNzcy5jb20gc2hvdWxkIG5vdCBiZSB1c2VkIGluIHByb2R1Y3Rpb24uIFRvIHVzZSBUYWlsd2luZCBDU1MgaW4gcHJvZHVjdGlvbiwgaW5zdGFsbCBpdCBhcyBhIFBvc3RDU1MgcGx1Z2luIG9yIHVzZSB0aGUgVGFpbHdpbmQgQ0xJOiBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2luc3RhbGxhdGlvbiIpO3ZhciBOcz0idGFpbHdpbmQiLHVmPSJ0ZXh0L3RhaWx3aW5kY3NzIixfdj0iL3RlbXBsYXRlLmh0bWwiLFl0LEV2PSEwLE92PTAsZmY9bmV3IFNldCxjZixUdj0iIixSdj0ocj0hMSk9Pih7Z2V0KGUsdCl7cmV0dXJuKCFyfHx0PT09ImNvbmZpZyIpJiZ0eXBlb2YgZVt0XT09Im9iamVjdCImJmVbdF0hPT1udWxsP25ldyBQcm94eShlW3RdLFJ2KCkpOmVbdF19LHNldChlLHQsaSl7cmV0dXJuIGVbdF09aSwoIXJ8fHQ9PT0iY29uZmlnIikmJnBmKCEwKSwhMH19KTt3aW5kb3dbTnNdPW5ldyBQcm94eSh7Y29uZmlnOnt9LGRlZmF1bHRUaGVtZTpKNS5kZWZhdWx0LGRlZmF1bHRDb25maWc6ZVAuZGVmYXVsdCxjb2xvcnM6dFAuZGVmYXVsdCxwbHVnaW46clAuZGVmYXVsdCxyZXNvbHZlQ29uZmlnOmlQLmRlZmF1bHR9LFJ2KCEwKSk7ZnVuY3Rpb24gUHYocil7Y2Yub2JzZXJ2ZShyLHthdHRyaWJ1dGVzOiEwLGF0dHJpYnV0ZUZpbHRlcjpbInR5cGUiXSxjaGFyYWN0ZXJEYXRhOiEwLHN1YnRyZWU6ITAsY2hpbGRMaXN0OiEwfSl9bmV3IE11dGF0aW9uT2JzZXJ2ZXIoYXN5bmMgcj0+e2xldCBlPSExO2lmKCFjZil7Y2Y9bmV3IE11dGF0aW9uT2JzZXJ2ZXIoYXN5bmMoKT0+YXdhaXQgcGYoITApKTtmb3IobGV0IHQgb2YgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChgc3R5bGVbdHlwZT0iJHt1Zn0iXWApKVB2KHQpfWZvcihsZXQgdCBvZiByKWZvcihsZXQgaSBvZiB0LmFkZGVkTm9kZXMpaS5ub2RlVHlwZT09PTEmJmkudGFnTmFtZT09PSJTVFlMRSImJmkuZ2V0QXR0cmlidXRlKCJ0eXBlIik9PT11ZiYmKFB2KGkpLGU9ITApO2F3YWl0IHBmKGUpfSkub2JzZXJ2ZShkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQse2F0dHJpYnV0ZXM6ITAsYXR0cmlidXRlRmlsdGVyOlsiY2xhc3MiXSxjaGlsZExpc3Q6ITAsc3VidHJlZTohMH0pO2FzeW5jIGZ1bmN0aW9uIHBmKHI9ITEpe3ImJihPdisrLGZmLmNsZWFyKCkpO2xldCBlPSIiO2ZvcihsZXQgaSBvZiBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKGBzdHlsZVt0eXBlPSIke3VmfSJdYCkpZSs9aS50ZXh0Q29udGVudDtsZXQgdD1uZXcgU2V0O2ZvcihsZXQgaSBvZiBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCJbY2xhc3NdIikpZm9yKGxldCBuIG9mIGkuY2xhc3NMaXN0KWZmLmhhcyhuKXx8dC5hZGQobik7aWYoZG9jdW1lbnQuYm9keSYmKEV2fHx0LnNpemU+MHx8ZSE9PVR2fHwhWXR8fCFZdC5pc0Nvbm5lY3RlZCkpe2ZvcihsZXQgbiBvZiB0KWZmLmFkZChuKTtFdj0hMSxUdj1lLHNlbGZbX3ZdPUFycmF5LmZyb20odCkuam9pbigiICIpO2xldHtjc3M6aX09YXdhaXQoMCxLNS5kZWZhdWx0KShbKDAsWTUuZGVmYXVsdCkoey4uLndpbmRvd1tOc10uY29uZmlnLF9oYXNoOk92LGNvbnRlbnQ6e2ZpbGVzOltfdl0sZXh0cmFjdDp7aHRtbDpuPT5uLnNwbGl0KCIgIil9fSxwbHVnaW5zOlsuLi5aNS5kZWZhdWx0LC4uLkFycmF5LmlzQXJyYXkod2luZG93W05zXS5jb25maWcucGx1Z2lucyk/d2luZG93W05zXS5jb25maWcucGx1Z2luczpbXV19KSwoMCxYNS5kZWZhdWx0KSh7cmVtb3ZlOiExfSldKS5wcm9jZXNzKGBAdGFpbHdpbmQgYmFzZTtAdGFpbHdpbmQgY29tcG9uZW50cztAdGFpbHdpbmQgdXRpbGl0aWVzOyR7ZX1gKTsoIVl0fHwhWXQuaXNDb25uZWN0ZWQpJiYoWXQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3R5bGUiKSxkb2N1bWVudC5oZWFkLmFwcGVuZChZdCkpLFl0LnRleHRDb250ZW50PWl9fX0pKCk7Ci8qIQogKiBmaWxsLXJhbmdlIDxodHRwczovL2dpdGh1Yi5jb20vam9uc2NobGlua2VydC9maWxsLXJhbmdlPgogKgogKiBDb3B5cmlnaHQgKGMpIDIwMTQtcHJlc2VudCwgSm9uIFNjaGxpbmtlcnQuCiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4KICovCi8qIQogKiBpcy1udW1iZXIgPGh0dHBzOi8vZ2l0aHViLmNvbS9qb25zY2hsaW5rZXJ0L2lzLW51bWJlcj4KICoKICogQ29weXJpZ2h0IChjKSAyMDE0LXByZXNlbnQsIEpvbiBTY2hsaW5rZXJ0LgogKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuCiAqLwovKiEKICogdG8tcmVnZXgtcmFuZ2UgPGh0dHBzOi8vZ2l0aHViLmNvbS9taWNyb21hdGNoL3RvLXJlZ2V4LXJhbmdlPgogKgogKiBDb3B5cmlnaHQgKGMpIDIwMTUtcHJlc2VudCwgSm9uIFNjaGxpbmtlcnQuCiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4KICovCi8qISBodHRwczovL210aHMuYmUvY3NzZXNjIHYzLjAuMCBieSBAbWF0aGlhcyAqLwo="}},"time_used":11,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":11,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.gstatic.com/_/translate_http/_/ss/k=translate_http.tr.B7Dih9Jyjnw.L.F4.O/am=BIAABw/d=0/rs=AN8SPfpC04vrrzQXgs_TCM5EtruwfPzNtQ/m=el_main_css","fqdn":"www.gstatic.com","domain":"gstatic.com","tld":"com"},"ip":{"addr":"142.250.178.67","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://digital-assettrade.com/","date":"2026-07-27T10:27:12.244Z","timestamp":1785148032244,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.gstatic.com","organization":""},"issuer":{"commonName":"WE2","organization":"Google Trust Services"},"validity":{"start":"Mon, 29 Jun 2026 08:39:25 GMT","end":"Mon, 21 Sep 2026 08:39:24 GMT"},"fingerprint":{"sha1":"4E:F2:73:C6:27:16:58:35:FE:55:D5:30:6B:E8:6D:2B:DA:B0:E8:7B","sha256":"82:EF:6A:61:96:A5:23:D6:2C:2C:9D:77:67:04:D8:7B:3B:6A:50:DA:3C:6C:6A:5F:4E:2D:55:F3:FC:DA:0B:EE"}}},"request":{"raw":"GET /_/translate_http/_/ss/k=translate_http.tr.B7Dih9Jyjnw.L.F4.O/am=BIAABw/d=0/rs=AN8SPfpC04vrrzQXgs_TCM5EtruwfPzNtQ/m=el_main_css HTTP/1.1\r\nHost: www.gstatic.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-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://digital-assettrade.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\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\naccept-ranges: bytes\r\ncontent-encoding: gzip\r\naccess-control-allow-origin: *\r\ncontent-security-policy-report-only: require-trusted-types-for 'script'; report-uri https://csp.withgoogle.com/csp/rosetta\r\ncross-origin-resource-policy: cross-origin\r\ncross-origin-opener-policy: same-origin; report-to=\"rosetta\"\r\nreport-to: {\"group\":\"rosetta\",\"max_age\":2592000,\"endpoints\":[{\"url\":\"https://csp.withgoogle.com/csp/report-to/rosetta\"}]}\r\ncontent-length: 3967\r\nx-content-type-options: nosniff\r\nserver: sffe\r\nx-xss-protection: 0\r\ndate: Wed, 22 Jul 2026 13:10:44 GMT\r\nexpires: Thu, 22 Jul 2027 13:10:44 GMT\r\ncache-control: public, max-age=31536000\r\nlast-modified: Thu, 09 Apr 2026 01:12:55 GMT\r\ncontent-type: text/css; charset=UTF-8\r\nvary: Accept-Encoding\r\nage: 422188\r\nalt-svc: h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":null,"data":{"size":20284,"size_decoded":4819,"mime_type":"text/css; charset=UTF-8","magic":"ASCII text, with very long lines (20284), with no line terminators","md5":"fde4f72b90fe807270db3c332dd058df","sha1":"7ef4d70af01c38a7f80a7650be25f63aff4ba751","sha256":"ab31c9be358d2107fc1158434c7aeaaf15f82e3e405ed67ab236b5ac232ed159","sha512":"9bef39350af557afeb10cb71068426ab28befaf5295359954787be06a5ce0993d69e8f5018a5a17c44311d294dd1a87a6f82edd0f5743df0149b8e4e53061695","ssdeep":"192:nvqx/EhZINcrXsfg0SgG8CqA3uku9SJFzvQVMbnUIfIxIVVpTrecfzPtcmt4v78l:gMF8Sb3i0JFzourUqWMVpTrdfzPtcBG","tlshash":"c492872057aed01967efa82364d36dff71d444db90123eeaaf5a7352cd821f231ea214","first_seen":"2026-04-13T20:43:22.641436Z","last_seen":"2026-07-27T13:00:41.357947Z","times_seen":17728,"resource_available":false,"data":"LlZJcGdKZC1aVmk5b2QtT1JIYi1PRVZtY2R7bGVmdDowO3RvcDowO2hlaWdodDozOXB4O3dpZHRoOjEwMCU7ei1pbmRleDoxMDAwMDAwMTtwb3NpdGlvbjpmaXhlZDtib3JkZXI6bm9uZTtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjNkI5MERBO21hcmdpbjowO2JveC1zaGFkb3c6MCAwIDhweCAxcHggIzk5OX0uVklwZ0pkLVpWaTlvZC14bDA3T2ItT0VWbWNke3otaW5kZXg6MTAwMDAwMDI7Ym9yZGVyOm5vbmU7cG9zaXRpb246Zml4ZWQ7Ym94LXNoYWRvdzowIDNweCA4cHggMnB4ICM5OTl9LlZJcGdKZC1aVmk5b2QtU21mWi1PRVZtY2R7ei1pbmRleDoxMDAwMDAwMDtib3JkZXI6bm9uZTttYXJnaW46MH0uZ29vZy10ZS1nYWRnZXR7Zm9udC1mYW1pbHk6YXJpYWw7Zm9udC1zaXplOjExcHg7Y29sb3I6IzY2Njt3aGl0ZS1zcGFjZTpub3dyYXB9Lmdvb2ctdGUtZ2FkZ2V0IGltZ3t2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7Ym9yZGVyOm5vbmV9Lmdvb2ctdGUtZ2FkZ2V0LXNpbXBsZXtiYWNrZ3JvdW5kLWNvbG9yOiNGRkY7Ym9yZGVyLWxlZnQ6MXB4IHNvbGlkICNENUQ1RDU7Ym9yZGVyLXRvcDoxcHggc29saWQgIzlCOUI5Qjtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjRThFOEU4O2JvcmRlci1yaWdodDoxcHggc29saWQgI0Q1RDVENTtmb250LXNpemU6MTBwdDtkaXNwbGF5OmlubGluZS1ibG9jaztwYWRkaW5nLXRvcDoxcHg7cGFkZGluZy1ib3R0b206MnB4O2N1cnNvcjpwb2ludGVyfS5nb29nLXRlLWdhZGdldC1pY29ue21hcmdpbi1sZWZ0OjJweDttYXJnaW4tcmlnaHQ6MnB4O3dpZHRoOjE5cHg7aGVpZ2h0OjE5cHg7Ym9yZGVyOm5vbmU7dmVydGljYWwtYWxpZ246bWlkZGxlfS5nb29nLXRlLWNvbWJve21hcmdpbi1sZWZ0OjRweDttYXJnaW4tcmlnaHQ6NHB4O3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lfS5nb29nLXRlLWdhZGdldCAuZ29vZy10ZS1jb21ib3ttYXJnaW46NHB4IDB9LlZJcGdKZC1aVmk5b2QtbDRlSFgtaFNSR1BkLC5WSXBnSmQtWlZpOW9kLWw0ZUhYLWhTUkdQZDphY3RpdmUsLlZJcGdKZC1aVmk5b2QtbDRlSFgtaFNSR1BkOmhvdmVyLC5WSXBnSmQtWlZpOW9kLWw0ZUhYLWhTUkdQZDpsaW5rLC5WSXBnSmQtWlZpOW9kLWw0ZUhYLWhTUkdQZDp2aXNpdGVke2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjcwMDtjb2xvcjojNDQ0O3RleHQtZGVjb3JhdGlvbjpub25lfS5WSXBnSmQtWlZpOW9kLU9SSGIgLlZJcGdKZC1aVmk5b2QtbDRlSFgtaFNSR1BkLC5WSXBnSmQtWlZpOW9kLVR2RDlQYy1oU1JHUGR7ZGlzcGxheTpibG9jazttYXJnaW46MCAxMHB4fS5WSXBnSmQtWlZpOW9kLU9SSGIgLlZJcGdKZC1aVmk5b2QtbDRlSFgtaFNSR1Bke3BhZGRpbmctdG9wOjJweDtwYWRkaW5nLWxlZnQ6NHB4fS5WSXBnSmQtWlZpOW9kLU9SSGIgKiwuVklwZ0pkLVpWaTlvZC1TbWZaICosLlZJcGdKZC1aVmk5b2QtbDl4a3RmICosLlZJcGdKZC1aVmk5b2QtdkgxR21mICosLlZJcGdKZC1aVmk5b2QteGwwN09iICosLmdvb2ctdGUtY29tYm97Zm9udC1mYW1pbHk6YXJpYWw7Zm9udC1zaXplOjEwcHR9LlZJcGdKZC1aVmk5b2QtT1JIYnttYXJnaW46MDtiYWNrZ3JvdW5kLWNvbG9yOiNFNEVGRkI7b3ZlcmZsb3c6aGlkZGVufS5WSXBnSmQtWlZpOW9kLU9SSGIgaW1ne2JvcmRlcjpub25lfS5WSXBnSmQtWlZpOW9kLU9SSGItYk45N1Bje2NvbG9yOiMwMDB9LlZJcGdKZC1aVmk5b2QtT1JIYi1iTjk3UGMgaW1ne3ZlcnRpY2FsLWFsaWduOm1pZGRsZX0uVklwZ0pkLVpWaTlvZC1PUkhiLVRzd3YxYntjb2xvcjojNjY2O3ZlcnRpY2FsLWFsaWduOnRvcDttYXJnaW4tdG9wOjA7Zm9udC1zaXplOjdwdH0uVklwZ0pkLVpWaTlvZC1PUkhiLUtFNnZxZXt3aWR0aDo4cHh9LlZJcGdKZC1aVmk5b2QtTGdic1Nle2JvcmRlci1jb2xvcjojRTdFN0U3O2JvcmRlci1zdHlsZTpub25lIHNvbGlkIHNvbGlkIG5vbmU7Ym9yZGVyLXdpZHRoOjAgMXB4IDFweCAwfS5WSXBnSmQtWlZpOW9kLUxnYnNTZSBkaXZ7Ym9yZGVyLWNvbG9yOiNDQ0MgIzk5OSAjOTk5ICNDQ0M7Ym9yZGVyLXJpZ2h0OjFweCBzb2xpZCAjOTk5O2JvcmRlci1zdHlsZTpzb2xpZDtib3JkZXItd2lkdGg6MXB4O2hlaWdodDoyMHB4fS5WSXBnSmQtWlZpOW9kLUxnYnNTZSBidXR0b257YmFja2dyb3VuZDp0cmFuc3BhcmVudDtib3JkZXI6bm9uZTtjdXJzb3I6cG9pbnRlcjtoZWlnaHQ6MjBweDtvdmVyZmxvdzpoaWRkZW47bWFyZ2luOjA7dmVydGljYWwtYWxpZ246dG9wO3doaXRlLXNwYWNlOm5vd3JhcH0uVklwZ0pkLVpWaTlvZC1MZ2JzU2UgYnV0dG9uOmFjdGl2ZXtiYWNrZ3JvdW5kOm5vbmUgcmVwZWF0IHNjcm9sbCAwIDAgI0NDQ30uVklwZ0pkLVpWaTlvZC1TbWZae21hcmdpbjowO2JhY2tncm91bmQtY29sb3I6I0ZGRjt3aGl0ZS1zcGFjZTpub3dyYXB9LlZJcGdKZC1aVmk5b2QtU21mWi1oU1JHUGR7dGV4dC1kZWNvcmF0aW9uOm5vbmU7Zm9udC13ZWlnaHQ6NzAwO2ZvbnQtc2l6ZToxMHB0O2JvcmRlcjoxcHggb3V0c2V0ICM4ODg7cGFkZGluZzo2cHggMTBweDt3aGl0ZS1zcGFjZTpub3dyYXA7cG9zaXRpb246YWJzb2x1dGU7bGVmdDowO3RvcDowfS5WSXBnSmQtWlZpOW9kLVNtZlotaFNSR1BkIGltZ3ttYXJnaW4tbGVmdDoycHg7bWFyZ2luLXJpZ2h0OjJweDt3aWR0aDoxOXB4O2hlaWdodDoxOXB4O2JvcmRlcjpub25lO3ZlcnRpY2FsLWFsaWduOm1pZGRsZX0uVklwZ0pkLVpWaTlvZC1TbWZaLWhTUkdQZCBzcGFue3RleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7bWFyZ2luLWxlZnQ6MnB4O21hcmdpbi1yaWdodDoycHg7dmVydGljYWwtYWxpZ246bWlkZGxlfS5nb29nLXRlLWZsb2F0LXRvcCAuVklwZ0pkLVpWaTlvZC1TbWZaLWhTUkdQZHtwYWRkaW5nOjJweDtib3JkZXItdG9wLXdpZHRoOjB9Lmdvb2ctdGUtZmxvYXQtYm90dG9tIC5WSXBnSmQtWlZpOW9kLVNtZlotaFNSR1Bke3BhZGRpbmc6MnB4O2JvcmRlci1ib3R0b20td2lkdGg6MH0uVklwZ0pkLVpWaTlvZC14bDA3T2ItbFRCeGVke3RleHQtZGVjb3JhdGlvbjpub25lO2NvbG9yOiMwMEM7d2hpdGUtc3BhY2U6bm93cmFwO21hcmdpbi1sZWZ0OjRweDttYXJnaW4tcmlnaHQ6NHB4fS5WSXBnSmQtWlZpOW9kLXhsMDdPYi1sVEJ4ZWQgc3Bhbnt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lfS5WSXBnSmQtWlZpOW9kLXhsMDdPYi1sVEJ4ZWQgaW1ne21hcmdpbi1sZWZ0OjJweDttYXJnaW4tcmlnaHQ6MnB4fS5nb29nLXRlLWdhZGdldC1zaW1wbGUgLlZJcGdKZC1aVmk5b2QteGwwN09iLWxUQnhlZHtjb2xvcjojMDAwfS5nb29nLXRlLWdhZGdldC1zaW1wbGUgLlZJcGdKZC1aVmk5b2QteGwwN09iLWxUQnhlZCBzcGFue3RleHQtZGVjb3JhdGlvbjpub25lfS5WSXBnSmQtWlZpOW9kLXhsMDdPYntiYWNrZ3JvdW5kLWNvbG9yOiNGRkY7dGV4dC1kZWNvcmF0aW9uOm5vbmU7Ym9yZGVyOjJweCBzb2xpZCAjQzNEOUZGO292ZXJmbG93LXk6c2Nyb2xsO292ZXJmbG93LXg6aGlkZGVuO3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MDt0b3A6MH0uVklwZ0pkLVpWaTlvZC14bDA3T2ItaWJuQzZie3BhZGRpbmc6M3B4O3RleHQtZGVjb3JhdGlvbjpub25lfS5WSXBnSmQtWlZpOW9kLXhsMDdPYi1pYm5DNmIsLlZJcGdKZC1aVmk5b2QteGwwN09iLWlibkM2YjpsaW5re2NvbG9yOiMwMEM7YmFja2dyb3VuZDojRkZGfS5WSXBnSmQtWlZpOW9kLXhsMDdPYi1pYm5DNmI6dmlzaXRlZHtjb2xvcjojNTUxQThCfS5WSXBnSmQtWlZpOW9kLXhsMDdPYi1pYm5DNmI6aG92ZXJ7YmFja2dyb3VuZDojQzNEOUZGfS5WSXBnSmQtWlZpOW9kLXhsMDdPYi1pYm5DNmI6YWN0aXZle2NvbG9yOiMwMEN9LlZJcGdKZC1aVmk5b2QtdkgxR21me2JhY2tncm91bmQtY29sb3I6I0ZGRjt0ZXh0LWRlY29yYXRpb246bm9uZTtib3JkZXI6MXB4IHNvbGlkICM2QjkwREE7b3ZlcmZsb3c6aGlkZGVuO3BhZGRpbmc6NHB4fS5WSXBnSmQtWlZpOW9kLXZIMUdtZi1LcmhQTmJ7d2lkdGg6MTZweH0uVklwZ0pkLVpWaTlvZC12SDFHbWYtaGdEVXdle21hcmdpbjo2cHggMDtoZWlnaHQ6MXB4O2JhY2tncm91bmQtY29sb3I6I2FhYTtvdmVyZmxvdzpoaWRkZW59LlZJcGdKZC1aVmk5b2QtdkgxR21mLWlibkM2YiBkaXYsLlZJcGdKZC1aVmk5b2QtdkgxR21mLWlibkM2Yi1nazZTTWQgZGl2e3BhZGRpbmc6NHB4fS5WSXBnSmQtWlZpOW9kLXZIMUdtZi1pYm5DNmIgLnVERUZnZXtkaXNwbGF5Om5vbmV9LlZJcGdKZC1aVmk5b2QtdkgxR21mLWlibkM2Yi1nazZTTWQgLmZtY21Te3BhZGRpbmctbGVmdDo0cHg7cGFkZGluZy1yaWdodDo0cHh9LlZJcGdKZC1aVmk5b2QtdkgxR21mLWlibkM2YiwuVklwZ0pkLVpWaTlvZC12SDFHbWYtaWJuQzZiLWdrNlNNZHt0ZXh0LWRlY29yYXRpb246bm9uZX0uVklwZ0pkLVpWaTlvZC12SDFHbWYtaWJuQzZiIGRpdiwuVklwZ0pkLVpWaTlvZC12SDFHbWYtaWJuQzZiOmFjdGl2ZSBkaXYsLlZJcGdKZC1aVmk5b2QtdkgxR21mLWlibkM2YjpsaW5rIGRpdiwuVklwZ0pkLVpWaTlvZC12SDFHbWYtaWJuQzZiOnZpc2l0ZWQgZGl2e2NvbG9yOiMwMEM7YmFja2dyb3VuZDojRkZGfS5WSXBnSmQtWlZpOW9kLXZIMUdtZi1pYm5DNmI6aG92ZXIgZGl2e2NvbG9yOiNGRkY7YmFja2dyb3VuZDojMzZDfS5WSXBnSmQtWlZpOW9kLXZIMUdtZi1pYm5DNmItZ2s2U01kIGRpdiwuVklwZ0pkLVpWaTlvZC12SDFHbWYtaWJuQzZiLWdrNlNNZDphY3RpdmUgZGl2LC5WSXBnSmQtWlZpOW9kLXZIMUdtZi1pYm5DNmItZ2s2U01kOmhvdmVyIGRpdiwuVklwZ0pkLVpWaTlvZC12SDFHbWYtaWJuQzZiLWdrNlNNZDpsaW5rIGRpdiwuVklwZ0pkLVpWaTlvZC12SDFHbWYtaWJuQzZiLWdrNlNNZDp2aXNpdGVkIGRpdntjb2xvcjojMDAwO2ZvbnQtd2VpZ2h0OjcwMH0uVklwZ0pkLVpWaTlvZC1sOXhrdGZ7YmFja2dyb3VuZC1jb2xvcjojRkZGO292ZXJmbG93OmhpZGRlbjtwYWRkaW5nOjhweDtib3JkZXI6bm9uZTtib3JkZXItcmFkaXVzOjEwcHh9LlZJcGdKZC1aVmk5b2QtbDl4a3RmLU9FVm1jZHtiYWNrZ3JvdW5kLWNvbG9yOiNGRkY7Ym9yZGVyOjFweCBzb2xpZCAjNkI5MERBO2JveC1zaGFkb3c6MCAzcHggOHB4IDJweCAjOTk5O2JvcmRlci1yYWRpdXM6OHB4fS5WSXBnSmQtWlZpOW9kLWw5eGt0ZiBpbWd7Ym9yZGVyOm5vbmV9LlZJcGdKZC1aVmk5b2QtbDl4a3RmLWZtY21Te21hcmdpbi10b3A6NnB4fS5WSXBnSmQtWlZpOW9kLWw5eGt0Zi1WZ3dKbGN7bWFyZ2luLXRvcDo2cHg7d2hpdGUtc3BhY2U6bm93cmFwfS5WSXBnSmQtWlZpOW9kLWw5eGt0Zi1WZ3dKbGMgKnt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9LlZJcGdKZC1aVmk5b2QtbDl4a3RmLVZnd0psYyAuRFVHSmlle2JhY2tncm91bmQtaW1hZ2U6dXJsKGh0dHBzOi8vd3d3Jmdvb2dsZS5jb20vaW1hZ2VzL3ppcHB5X21pbnVzX3NtLmdpZil9LlZJcGdKZC1aVmk5b2QtbDl4a3RmLVZnd0psYyAuVGR5VERle2JhY2tncm91bmQtaW1hZ2U6dXJsKGh0dHBzOi8vd3d3Jmdvb2dsZS5jb20vaW1hZ2VzL3ppcHB5X3BsdXNfc20uZ2lmKX0uVklwZ0pkLVpWaTlvZC1sOXhrdGYtVmd3SmxjIHNwYW57Y29sb3I6IzAwQzt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lO2N1cnNvcjpwb2ludGVyO21hcmdpbjowIDRweH0uVklwZ0pkLVpWaTlvZC1sOXhrdGYtSTlHTHB7bWFyZ2luOjZweCAwIDB9LlZJcGdKZC1aVmk5b2QtbDl4a3RmLUk5R0xwIGZvcm17bWFyZ2luOjB9LlZJcGdKZC1aVmk5b2QtbDl4a3RmLUk5R0xwIGZvcm0gdGV4dGFyZWF7bWFyZ2luLWJvdHRvbTo0cHg7d2lkdGg6MTAwJX0uVklwZ0pkLVpWaTlvZC1sOXhrdGYteWVQZTVje21hcmdpbjo2cHggMCA0cHh9LlZJcGdKZC1aVmk5b2QtYVoyd0VlLXdPSE15Znt6LWluZGV4OjEwMDA7cG9zaXRpb246Zml4ZWQ7dHJhbnNpdGlvbi1kZWxheTouNnM7bGVmdDotMTAwMHB4O3RvcDotMTAwMHB4fS5WSXBnSmQtWlZpOW9kLWFaMndFZS13T0hNeWYtdGk2aEdje3RyYW5zaXRpb24tZGVsYXk6MHM7bGVmdDotMTRweDt0b3A6LTE0cHh9LlZJcGdKZC1aVmk5b2QtYVoyd0VlLU9paUNPe2Rpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTpmbGV4Oy1tb3otYm94LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7LW1vei1ib3gtcGFjazpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjt3aWR0aDoxMDRweDtoZWlnaHQ6MTA0cHg7Ym9yZGVyLXJhZGl1czo1MHB4O2JhY2tncm91bmQ6I0ZGRiB1cmwoaHR0cHM6Ly93d3cuZ3N0YXRpYy5jb20vaW1hZ2VzL2JyYW5kaW5nL3Byb2R1Y3QvMngvdHJhbnNsYXRlXzI0ZHAucG5nKSA1MCUgNTAlIG5vLXJlcGVhdDt0cmFuc2l0aW9uOmFsbCAuNnMgZWFzZS1pbi1vdXQ7dHJhbnNmb3JtOnNjYWxlKC40KTtvcGFjaXR5OjB9LlZJcGdKZC1aVmk5b2QtYVoyd0VlLU9paUNPLXRpNmhHY3t0cmFuc2Zvcm06c2NhbGUoLjUpO29wYWNpdHk6MX0uVklwZ0pkLVpWaTlvZC1hWjJ3RWV7bWFyZ2luOjJweCAwIDAgMnB4O2FuaW1hdGlvbjpzcGlubmVyLXJvdGF0b3IgMS40cyBsaW5lYXIgaW5maW5pdGV9QGtleWZyYW1lcyBzcGlubmVyLXJvdGF0b3J7MCV7dHJhbnNmb3JtOnJvdGF0ZSgwZGVnKX10b3t0cmFuc2Zvcm06cm90YXRlKDI3MGRlZyl9fS5WSXBnSmQtWlZpOW9kLWFaMndFZS1KdDVjS3tzdHJva2UtZGFzaGFycmF5OjE4NztzdHJva2UtZGFzaG9mZnNldDowO3N0cm9rZTojNDI4NUY0O3RyYW5zZm9ybS1vcmlnaW46Y2VudGVyO2FuaW1hdGlvbjpzcGlubmVyLWRhc2ggMS40cyBlYXNlLWluLW91dCBpbmZpbml0ZX1Aa2V5ZnJhbWVzIHNwaW5uZXItZGFzaHswJXtzdHJva2UtZGFzaG9mZnNldDoxODd9NTAle3N0cm9rZS1kYXNob2Zmc2V0OjQ2Ljc1O3RyYW5zZm9ybTpyb3RhdGUoMTM1ZGVnKX10b3tzdHJva2UtZGFzaG9mZnNldDoxODc7dHJhbnNmb3JtOnJvdGF0ZSg0NTBkZWcpfX0uVklwZ0pkLXlBV05FYi1MN2xia2IgYSwuVklwZ0pkLXlBV05FYi1MN2xia2IgYm9keSwuVklwZ0pkLXlBV05FYi1MN2xia2IgZGl2LC5WSXBnSmQteUFXTkViLUw3bGJrYiBmb3JtLC5WSXBnSmQteUFXTkViLUw3bGJrYiBoMSwuVklwZ0pkLXlBV05FYi1MN2xia2IgaDIsLlZJcGdKZC15QVdORWItTDdsYmtiIGgzLC5WSXBnSmQteUFXTkViLUw3bGJrYiBoNCwuVklwZ0pkLXlBV05FYi1MN2xia2IgaDUsLlZJcGdKZC15QVdORWItTDdsYmtiIGg2LC5WSXBnSmQteUFXTkViLUw3bGJrYiBodG1sLC5WSXBnSmQteUFXTkViLUw3bGJrYiBpZnJhbWUsLlZJcGdKZC15QVdORWItTDdsYmtiIGltZywuVklwZ0pkLXlBV05FYi1MN2xia2IgbGksLlZJcGdKZC15QVdORWItTDdsYmtiIG9sLC5WSXBnSmQteUFXTkViLUw3bGJrYiBwLC5WSXBnSmQteUFXTkViLUw3bGJrYiBzcGFuLC5WSXBnSmQteUFXTkViLUw3bGJrYiB0YWJsZSwuVklwZ0pkLXlBV05FYi1MN2xia2IgdGJvZHksLlZJcGdKZC15QVdORWItTDdsYmtiIHRkLC5WSXBnSmQteUFXTkViLUw3bGJrYiB0ciwuVklwZ0pkLXlBV05FYi1MN2xia2IgdWx7YWxsOnVuc2V0O2ZvbnQtc2l6ZToxMDAlO2xpbmUtaGVpZ2h0Om5vcm1hbH0uVklwZ0pkLXlBV05FYi1MN2xia2Igb2wsLlZJcGdKZC15QVdORWItTDdsYmtiIHVse2xpc3Qtc3R5bGU6bm9uZX0uVklwZ0pkLXlBV05FYi1MN2xia2IgdGFibGV7Ym9yZGVyLWNvbGxhcHNlOmNvbGxhcHNlO2JvcmRlci1zcGFjaW5nOjB9LlZJcGdKZC15QVdORWItTDdsYmtiIGNhcHRpb24sLlZJcGdKZC15QVdORWItTDdsYmtiIHRkLC5WSXBnSmQteUFXTkViLUw3bGJrYiB0aHt0ZXh0LWFsaWduOmxlZnQ7Zm9udC13ZWlnaHQ6NDAwfS5WSXBnSmQteUFXTkViLUw3bGJrYiBpbnB1dDo6LW1vei1mb2N1cy1pbm5lcntib3JkZXI6MH1kaXY+LlZJcGdKZC15QVdORWItTDdsYmtie3BhZGRpbmc6MTBweCAxNHB4fS5WSXBnSmQteUFXTkViLUw3bGJrYntjb2xvcjojMjIyO2JhY2tncm91bmQtY29sb3I6I2ZmZjtib3JkZXI6MXB4IHNvbGlkICNlZWU7Ym94LXNoYWRvdzowIDRweCAxNnB4IHJnYmEoMCwwLDAsLjIpOy1tb3otYm94LXNoYWRvdzowIDRweCAxNnB4IHJnYmEoMCwwLDAsLjIpOy13ZWJraXQtYm94LXNoYWRvdzowIDRweCAxNnB4IHJnYmEoMCwwLDAsLjIpO2Rpc3BsYXk6bm9uZTtmb250LWZhbWlseTphcmlhbDtmb250LXNpemU6MTBwdDt3aWR0aDo0MjBweDtwYWRkaW5nOjEycHg7cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxMDAwMH0uVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItblZNZmNkLWZtY21TLC5WSXBnSmQteUFXTkViLXlBV05FYi1WeTJBcWMtcGJUVFlle2NsZWFyOmJvdGg7Zm9udC1zaXplOjEwcHQ7cG9zaXRpb246cmVsYXRpdmU7dGV4dC1hbGlnbjpqdXN0aWZ5O3dpZHRoOjEwMCV9LlZJcGdKZC15QVdORWItTDdsYmtiIC5WSXBnSmQteUFXTkViLXI0bmtle2NvbG9yOiM5OTk7Zm9udC1mYW1pbHk6YXJpYWwsc2Fucy1zZXJpZjttYXJnaW46NHB4IDA7dGV4dC1hbGlnbjpsZWZ0fS5WSXBnSmQteUFXTkViLUw3bGJrYiAuVklwZ0pkLXlBV05FYi1UdkQ5UGMtTGdic1Nle2Rpc3BsYXk6bm9uZX0uVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItbDRlSFh7ZmxvYXQ6bGVmdDttYXJnaW46MH0uVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItWjBBcnFmLVBMRGJiZntkaXNwbGF5OmlubGluZS1ibG9ja30uVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItZnc0MlplLVowQXJxZi1oYUFjbGZ7ZGlzcGxheTpub25lO3dpZHRoOjEwMCV9LlZJcGdKZC15QVdORWItTDdsYmtiIC5WSXBnSmQteUFXTkViLVowQXJxZi1IOXREdHttYXJnaW4tdG9wOjIwcHh9LlZJcGdKZC15QVdORWItTDdsYmtiIC5WSXBnSmQteUFXTkViLUxLNXl1e2Zsb2F0OmxlZnR9LlZJcGdKZC15QVdORWItTDdsYmtiIC5WSXBnSmQteUFXTkViLXF3VThNZXtmbG9hdDpyaWdodH0uVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItY0dNSTJie21pbi1oZWlnaHQ6MTVweDtwb3NpdGlvbjpyZWxhdGl2ZTtoZWlnaHQ6MSV9LlZJcGdKZC15QVdORWItTDdsYmtiIC5WSXBnSmQteUFXTkViLWpPZmtNYi1OZTNzRmZ7YmFja2dyb3VuZDotbXMtbGluZWFyLWdyYWRpZW50KHRvcCwjMjk5MTBkIDAsIzIwYWYwZSAxMDAlKTtiYWNrZ3JvdW5kOiMyOTkxMGQ7Ym9yZGVyLXJhZGl1czo0cHg7LW1vei1ib3JkZXItcmFkaXVzOjRweDstd2Via2l0LWJvcmRlci1yYWRpdXM6NHB4O2JveC1zaGFkb3c6aW5zZXQgMCAycHggMnB4ICMxZTY2MDk7LW1vei1ib3gtc2hhZG93Omluc2V0IDAgMnB4IDJweCAjMWU2NjA5Oy13ZWJraXQtYm94LXNoYWRvdzppbnNldCAwIDJweCAycHggIzFlNjYwOTtjb2xvcjp3aGl0ZTtmb250LXNpemU6OXB0O2ZvbnQtd2VpZ2h0OmJvbGRlcjttYXJnaW4tdG9wOjEycHg7cGFkZGluZzo2cHg7dGV4dC1zaGFkb3c6MXB4IDFweCAxcHggIzFlNjYwOX0uVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItWjBBcnFmLWhTUkdQZHtjb2xvcjojMTVjO2N1cnNvcjpwb2ludGVyO2ZvbnQtZmFtaWx5OmFyaWFsO2ZvbnQtc2l6ZToxMXB4O21hcmdpbi1yaWdodDoxNXB4O3RleHQtZGVjb3JhdGlvbjpub25lfS5WSXBnSmQteUFXTkViLUw3bGJrYj50ZXh0YXJlYXtmb250LWZhbWlseTphcmlhbDtyZXNpemU6dmVydGljYWw7d2lkdGg6MTAwJTttYXJnaW4tYm90dG9tOjEwcHg7Ym9yZGVyLXJhZGl1czoxcHg7Ym9yZGVyOjFweCBzb2xpZCAjZDlkOWQ5O2JvcmRlci10b3A6MXB4IHNvbGlkIHNpbHZlcjtmb250LXNpemU6MTNweDtoZWlnaHQ6YXV0bztvdmVyZmxvdy15OmF1dG87cGFkZGluZzoxcHh9LlZJcGdKZC15QVdORWItTDdsYmtiIHRleHRhcmVhOmZvY3Vze2JveC1zaGFkb3c6aW5zZXQgMCAxcHggMnB4IHJnYmEoMCwwLDAsLjMpO2JvcmRlcjoxcHggc29saWQgIzRkOTBmZTtvdXRsaW5lOm5vbmV9LlZJcGdKZC15QVdORWItTDdsYmtiIC5WSXBnSmQteUFXTkViLVowQXJxZi1JYkUwU3ttYXJnaW4tcmlnaHQ6MTBweH0uVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItTDRObjVlLUk5R0xwe21pbi1oZWlnaHQ6MjVweDt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7cGFkZGluZy10b3A6OHB4fS5WSXBnSmQteUFXTkViLUw3bGJrYiAuVklwZ0pkLXlBV05FYi1MNE5uNWUtSTlHTHAgLlZJcGdKZC15QVdORWItWjBBcnFmLUk5R0xwe21hcmdpbi1ib3R0b206NXB4O21hcmdpbi1ib3R0b206MH0uVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItTDRObjVlLUk5R0xwIC5WSXBnSmQteUFXTkViLVowQXJxZi1JOUdMcCBpbnB1dHtkaXNwbGF5OmlubGluZS1ibG9jazttaW4td2lkdGg6NTRweDsqbWluLXdpZHRoOjcwcHg7Ym9yZGVyOjFweCBzb2xpZCAjZGNkY2RjO2JvcmRlcjoxcHggc29saWQgcmdiYSgwLDAsMCwuMSk7dGV4dC1hbGlnbjpjZW50ZXI7Y29sb3I6IzQ0NDtmb250LXNpemU6MTFweDtmb250LXdlaWdodDo3MDA7aGVpZ2h0OjI3cHg7b3V0bGluZTowO3BhZGRpbmc6MCA4cHg7dmVydGljYWwtYWxpZ246bWlkZGxlO2xpbmUtaGVpZ2h0OjI3cHg7bWFyZ2luOjAgMTZweCAwIDA7Ym94LXNoYWRvdzowIDFweCAycHggcmdiYSgwLDAsMCwuMSk7LW1vei1ib3gtc2hhZG93OjAgMXB4IDJweCByZ2JhKDAsMCwwLC4xKTstd2Via2l0LWJveC1zaGFkb3c6MCAxcHggMnB4IHJnYmEoMCwwLDAsLjEpO2JvcmRlci1yYWRpdXM6MnB4O3RyYW5zaXRpb246YWxsIC4yMThzO2JhY2tncm91bmQtY29sb3I6I2Y1ZjVmNTtiYWNrZ3JvdW5kLWltYWdlOi1vLWxpbmVhci1ncmFkaWVudCh0b3AsI2Y1ZjVmNSwjZjFmMWYxKTstd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7LW1vei11c2VyLXNlbGVjdDpub25lO2N1cnNvcjpkZWZhdWx0fS5WSXBnSmQteUFXTkViLUw3bGJrYiAuVklwZ0pkLXlBV05FYi1MNE5uNWUtSTlHTHAgLlZJcGdKZC15QVdORWItWjBBcnFmLUk5R0xwIGlucHV0OmhvdmVye2JvcmRlcjoxcHggc29saWQgI2M2YzZjNjtjb2xvcjojMjIyO3RyYW5zaXRpb246YWxsIDBzO2JhY2tncm91bmQtY29sb3I6I2Y4ZjhmODtiYWNrZ3JvdW5kLWltYWdlOi1vLWxpbmVhci1ncmFkaWVudCh0b3AsI2Y4ZjhmOCwjZjFmMWYxKX0uVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItTDRObjVlLUk5R0xwIC5WSXBnSmQteUFXTkViLVowQXJxZi1JOUdMcCBpbnB1dDphY3RpdmV7Ym9yZGVyOjFweCBzb2xpZCAjYzZjNmM2O2NvbG9yOiMzMzM7YmFja2dyb3VuZC1jb2xvcjojZjZmNmY2O2JhY2tncm91bmQtaW1hZ2U6LW8tbGluZWFyLWdyYWRpZW50KHRvcCwjZjZmNmY2LCNmMWYxZjEpfS5WSXBnSmQteUFXTkViLUw3bGJrYiAuVklwZ0pkLXlBV05FYi1MNE5uNWUtSTlHTHAgLlZJcGdKZC15QVdORWItWjBBcnFmLUk5R0xwIGlucHV0OmZvY3VzIC5WSXBnSmQteUFXTkViLUw3bGJrYiAuVklwZ0pkLXlBV05FYi1MNE5uNWUtSTlHTHAgLlZJcGdKZC15QVdORWItWjBBcnFmLUk5R0xwIGlucHV0LkFIbXV3ZSAuVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItTDRObjVlLUk5R0xwIC5WSXBnSmQteUFXTkViLVowQXJxZi1JOUdMcCBpbnB1dDphY3RpdmUsLlZJcGdKZC15QVdORWItTDdsYmtiIC5WSXBnSmQteUFXTkViLUw0Tm41ZS1JOUdMcCAuVklwZ0pkLXlBV05FYi1aMEFycWYtSTlHTHAgaW5wdXQ6Zm9jdXM6YWN0aXZle2JveC1zaGFkb3c6aW5zZXQgMCAwIDAgMXB4IHJnYmEoMjU1LDI1NSwyNTUsLjUpOy13ZWJraXQtYm94LXNoYWRvdzppbnNldCAwIDAgMCAxcHggcmdiYSgyNTUsMjU1LDI1NSwuNSk7LW1vei1ib3gtc2hhZG93Omluc2V0IDAgMCAwIDFweCByZ2JhKDI1NSwyNTUsMjU1LC41KX0uVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItTDRObjVlLUk5R0xwIC5WSXBnSmQteUFXTkViLVowQXJxZi1JOUdMcCBpbnB1dC5BSG11d2UsLlZJcGdKZC15QVdORWItTDdsYmtiIC5WSXBnSmQteUFXTkViLUw0Tm41ZS1JOUdMcCAuVklwZ0pkLXlBV05FYi1aMEFycWYtSTlHTHAgaW5wdXQ6Zm9jdXN7b3V0bGluZTpub25lO2JvcmRlcjoxcHggc29saWQgIzRkOTBmZTt6LWluZGV4OjQhaW1wb3J0YW50fS5WSXBnSmQteUFXTkViLUw3bGJrYiAuVklwZ0pkLXlBV05FYi1MNE5uNWUtSTlHTHAgLlZJcGdKZC15QVdORWItWjBBcnFmLUk5R0xwIGlucHV0LmdrNlNNZHtiYWNrZ3JvdW5kLWNvbG9yOiNlZWU7YmFja2dyb3VuZC1pbWFnZTotby1saW5lYXItZ3JhZGllbnQodG9wLCNlZWUsI2UwZTBlMCk7Ym94LXNoYWRvdzppbnNldCAwIDFweCAycHggcmdiYSgwLDAsMCwuMSk7Ym9yZGVyOjFweCBzb2xpZCAjY2NjO2NvbG9yOiMzMzN9LlZJcGdKZC15QVdORWItTDdsYmtiIC5WSXBnSmQteUFXTkViLUw0Tm41ZS1JOUdMcCAuVklwZ0pkLXlBV05FYi1aMEFycWYtSTlHTHAgaW5wdXQgLlZJcGdKZC15QVdORWItWjBBcnFmLXNGZUJxZntjb2xvcjp3aGl0ZTtib3JkZXItY29sb3I6IzMwNzllZDtiYWNrZ3JvdW5kLWNvbG9yOiM0ZDkwZmU7YmFja2dyb3VuZC1pbWFnZTotby1saW5lYXItZ3JhZGllbnQodG9wLCM0ZDkwZmUsIzQ3ODdlZCl9LlZJcGdKZC15QVdORWItTDdsYmtiIC5WSXBnSmQteUFXTkViLUw0Tm41ZS1JOUdMcCAuVklwZ0pkLXlBV05FYi1aMEFycWYtSTlHTHAgaW5wdXQgLlZJcGdKZC15QVdORWItWjBBcnFmLXNGZUJxZi5BSG11d2UgLlZJcGdKZC15QVdORWItTDdsYmtiIC5WSXBnSmQteUFXTkViLUw0Tm41ZS1JOUdMcCAuVklwZ0pkLXlBV05FYi1aMEFycWYtSTlHTHAgaW5wdXQgLlZJcGdKZC15QVdORWItWjBBcnFmLXNGZUJxZjphY3RpdmUsLlZJcGdKZC15QVdORWItTDdsYmtiIC5WSXBnSmQteUFXTkViLUw0Tm41ZS1JOUdMcCAuVklwZ0pkLXlBV05FYi1aMEFycWYtSTlHTHAgaW5wdXQgLlZJcGdKZC15QVdORWItWjBBcnFmLXNGZUJxZjpob3ZlciAuVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItTDRObjVlLUk5R0xwIC5WSXBnSmQteUFXTkViLVowQXJxZi1JOUdMcCBpbnB1dCAuVklwZ0pkLXlBV05FYi1aMEFycWYtc0ZlQnFmOmZvY3Vze2JvcmRlci1jb2xvcjojMzA3OWVkO2JhY2tncm91bmQtY29sb3I6IzM1N2FlODtiYWNrZ3JvdW5kLWltYWdlOi1vLWxpbmVhci1ncmFkaWVudCh0b3AsIzRkOTBmZSwjMzU3YWU4KX0uVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItTDRObjVlLUk5R0xwIC5WSXBnSmQteUFXTkViLVowQXJxZi1JOUdMcCBpbnB1dCAuVklwZ0pkLXlBV05FYi1aMEFycWYtc0ZlQnFmOmhvdmVye2JveC1zaGFkb3c6aW5zZXQgMCAwIDAgMXB4ICNmZmYsMCAxcHggMXB4IHJnYmEoMCwwLDAsLjEpOy13ZWJraXQtYm94LXNoYWRvdzppbnNldCAwIDAgMCAxcHggI2ZmZiwwIDFweCAxcHggcmdiYSgwLDAsMCwuMSk7LW1vei1ib3gtc2hhZG93Omluc2V0IDAgMCAwIDFweCAjZmZmLDAgMXB4IDFweCByZ2JhKDAsMCwwLC4xKX0uVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItTDRObjVlLUk5R0xwIC5WSXBnSmQteUFXTkViLVowQXJxZi1JOUdMcCBpbnB1dCAuVklwZ0pkLXlBV05FYi1aMEFycWYtc0ZlQnFmLkFIbXV3ZSwuVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItTDRObjVlLUk5R0xwIC5WSXBnSmQteUFXTkViLVowQXJxZi1JOUdMcCBpbnB1dCAuVklwZ0pkLXlBV05FYi1aMEFycWYtc0ZlQnFmOmFjdGl2ZSwuVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItTDRObjVlLUk5R0xwIC5WSXBnSmQteUFXTkViLVowQXJxZi1JOUdMcCBpbnB1dCAuVklwZ0pkLXlBV05FYi1aMEFycWYtc0ZlQnFmOmZvY3VzLC5WSXBnSmQteUFXTkViLUw3bGJrYiAuVklwZ0pkLXlBV05FYi1MNE5uNWUtSTlHTHAgLlZJcGdKZC15QVdORWItWjBBcnFmLUk5R0xwIGlucHV0IC5WSXBnSmQteUFXTkViLVowQXJxZi1zRmVCcWY6aG92ZXIsLlZJcGdKZC15QVdORWItTDdsYmtiIC5WSXBnSmQteUFXTkViLUw0Tm41ZS1JOUdMcCAuVklwZ0pkLXlBV05FYi1aMEFycWYtSTlHTHAgaW5wdXQuQUhtdXdlLC5WSXBnSmQteUFXTkViLUw3bGJrYiAuVklwZ0pkLXlBV05FYi1MNE5uNWUtSTlHTHAgLlZJcGdKZC15QVdORWItWjBBcnFmLUk5R0xwIGlucHV0OmFjdGl2ZSwuVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItTDRObjVlLUk5R0xwIC5WSXBnSmQteUFXTkViLVowQXJxZi1JOUdMcCBpbnB1dDpmb2N1cywuVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItTDRObjVlLUk5R0xwIC5WSXBnSmQteUFXTkViLVowQXJxZi1JOUdMcCBpbnB1dDpob3Zlcntib3JkZXItY29sb3I6IzMwNzllZH0uVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItbXJ4UGdle2NvbG9yOiM5OTk7Zm9udC1mYW1pbHk6YXJpYWwsc2Fucy1zZXJpZn0uVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItSUZkS3lkLVcwdkpvLWZtY21Te2NvbG9yOiM5OTk7Zm9udC1zaXplOjExcHg7Zm9udC1mYW1pbHk6YXJpYWwsc2Fucy1zZXJpZjttYXJnaW46MTVweCAwIDVweH0uVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItSUZkS3lkLXUwcGpvZS1mbWNtU3tjb2xvcjojODAwO2Rpc3BsYXk6bm9uZTtmb250LXNpemU6OXB0fS5WSXBnSmQteUFXTkViLVZJcGdKZC1mbWNtUy1zbjU0UXtiYWNrZ3JvdW5kLWNvbG9yOiNjOWQ3ZjE7Ym94LXNoYWRvdzoycHggMnB4IDRweCAjOTlhO2JveC1zaXppbmc6Ym9yZGVyLWJveDstd2Via2l0LWJveC1zaXppbmc6Ym9yZGVyLWJveDstbW96LWJveC1zaXppbmc6Ym9yZGVyLWJveDtwb3NpdGlvbjpyZWxhdGl2ZX0uVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItSUZkS3lkLXhsMDdPYiAuVklwZ0pkLXlBV05FYi1WSXBnSmQteGwwN09ie2JhY2tncm91bmQ6I2ZmZjtib3JkZXI6MXB4IHNvbGlkICNkZGQ7Ym94LXNoYWRvdzowIDJweCA0cHggIzk5YTttaW4td2lkdGg6MDtvdXRsaW5lOm5vbmU7cGFkZGluZzowO3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MjAwMH0uVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItSUZkS3lkLXhsMDdPYiAuVklwZ0pkLXlBV05FYi1WSXBnSmQtajdMRmxie2N1cnNvcjpwb2ludGVyO3BhZGRpbmc6MnB4IDVweCA1cHg7bWFyZ2luLXJpZ2h0OjA7Ym9yZGVyLXN0eWxlOm5vbmV9LlZJcGdKZC15QVdORWItTDdsYmtiIC5WSXBnSmQteUFXTkViLUlGZEt5ZC14bDA3T2IgLlZJcGdKZC15QVdORWItVklwZ0pkLWo3TEZsYjpob3ZlcntiYWNrZ3JvdW5kOiNkZGR9LlZJcGdKZC15QVdORWItTDdsYmtiIC5WSXBnSmQteUFXTkViLUlGZEt5ZC14bDA3T2IgLlZJcGdKZC15QVdORWItVklwZ0pkLWo3TEZsYiBoMXtmb250LXNpemU6MTAwJTtmb250LXdlaWdodDo3MDA7bWFyZ2luOjRweCAwfS5WSXBnSmQteUFXTkViLUw3bGJrYiAuVklwZ0pkLXlBV05FYi1JRmRLeWQteGwwN09iIC5WSXBnSmQteUFXTkViLVZJcGdKZC1qN0xGbGIgc3Ryb25ne2NvbG9yOiMzNDVhYWR9LlZJcGdKZC15QVdORWItTDdsYmtiIC5WSXBnSmQteUFXTkViLVZJcGdKZC1lS201RmMtaEZzYm97dGV4dC1hbGlnbjpyaWdodDtwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDowO2xlZnQ6YXV0b30uVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItVklwZ0pkLWo3TEZsYi1TSXNyVGQgLlZJcGdKZC15QVdORWItVklwZ0pkLWVLbTVGYy1oRnNib3t0ZXh0LWFsaWduOmxlZnQ7cG9zaXRpb246YWJzb2x1dGU7bGVmdDowO3JpZ2h0OmF1dG99LlZJcGdKZC15QVdORWItTDdsYmtiIC5WSXBnSmQteUFXTkViLVRWTHc5Yy1wcEhscmYtc241NFEsLlZJcGdKZC15QVdORWItTDdsYmtiIC5WSXBnSmQteUFXTkViLXlBV05FYi1WeTJBcWMtZm1jbVN7YmFja2dyb3VuZC1jb2xvcjojZjFlYTAwO2JvcmRlci1yYWRpdXM6NHB4Oy13ZWJraXQtYm9yZGVyLXJhZGl1czo0cHg7LW1vei1ib3JkZXItcmFkaXVzOjRweDtib3gtc2hhZG93OjNweCAzcHggNHB4IHJnYmEoMCwwLDAsLjUpO2JveC1zaXppbmc6Ym9yZGVyLWJveDstd2Via2l0LWJveC1zaXppbmc6Ym9yZGVyLWJveDstbW96LWJveC1zaXppbmc6Ym9yZGVyLWJveDtjb2xvcjojZjFlYTAwO2N1cnNvcjpwb2ludGVyO21hcmdpbjotMnB4IC0ycHggLTJweCAtM3B4O3BhZGRpbmc6MnB4IDJweCAycHggM3B4O3Bvc2l0aW9uOnJlbGF0aXZlfS5WSXBnSmQteUFXTkViLUw3bGJrYiAuVklwZ0pkLXlBV05FYi1UVkx3OWMtcHBIbHJmLXNuNTRRe2NvbG9yOiMyMjJ9LlZJcGdKZC15QVdORWItTDdsYmtiIC5WSXBnSmQteUFXTkViLXlBV05FYi1WeTJBcWMtcGJUVFlle2NvbG9yOndoaXRlO3Bvc2l0aW9uOmFic29sdXRlIWltcG9ydGFudH0uVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItVFZMdzljLXBwSGxyZiwuVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItVFZMdzljLXBwSGxyZiAuVklwZ0pkLXlBV05FYi1UVkx3OWMtcHBIbHJmLXNuNTRRe2JhY2tncm91bmQtY29sb3I6I2M5ZDdmMTtib3JkZXItcmFkaXVzOjRweCA0cHggMCAwOy13ZWJraXQtYm9yZGVyLXJhZGl1czo0cHggNHB4IDAgMDstbW96LWJvcmRlci1yYWRpdXM6NHB4IDRweCAwIDA7Ym94LXNoYWRvdzozcHggM3B4IDRweCByZ2JhKDAsMCwwLC41KTtib3gtc2l6aW5nOmJvcmRlci1ib3g7LXdlYmtpdC1ib3gtc2l6aW5nOmJvcmRlci1ib3g7LW1vei1ib3gtc2l6aW5nOmJvcmRlci1ib3g7Y3Vyc29yOnBvaW50ZXI7bWFyZ2luOi0ycHggLTJweCAtMnB4IC0zcHg7cGFkZGluZzoycHggMnB4IDNweCAzcHg7cG9zaXRpb246cmVsYXRpdmV9LlZJcGdKZC15QVdORWItTDdsYmtiIHNwYW46Zm9jdXN7b3V0bGluZTpub25lfS5WSXBnSmQteUFXTkViLUw3bGJrYiAuVklwZ0pkLXlBV05FYi1UVkx3OWMtRHlWREF7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtib3JkZXI6MXB4IHNvbGlkICM0ZDkwZmU7Ym9yZGVyLXJhZGl1czowOy13ZWJraXQtYm9yZGVyLXJhZGl1czowOy1tb3otYm9yZGVyLXJhZGl1czowO21hcmdpbjotMnB4O3BhZGRpbmc6MXB4fS5WSXBnSmQteUFXTkViLUw3bGJrYiAuVklwZ0pkLXlBV05FYi15QVdORWItVFZMdzljLXNuNTRRLUx6WDNlZntib3JkZXItbGVmdDoycHggc29saWQgcmVkO21hcmdpbi1sZWZ0Oi0ycHh9LlZJcGdKZC15QVdORWItTDdsYmtiIC5WSXBnSmQteUFXTkViLXlBV05FYi1UVkx3OWMtc241NFEtWUlBaUlie2JvcmRlci1yaWdodDoycHggc29saWQgcmVkO21hcmdpbi1yaWdodDotMnB4fS5WSXBnSmQteUFXTkViLUw3bGJrYiAuVklwZ0pkLXlBV05FYi1JRmRLeWQtWVBxamJme3BhZGRpbmc6MnB4fS5WSXBnSmQteUFXTkViLUw3bGJrYiAuVklwZ0pkLXlBV05FYi1JRmRLeWQtWVBxamJmLWZtY21Te2ZvbnQtc2l6ZToxMXB4O3BhZGRpbmc6MnB4IDJweCAzcHg7bWFyZ2luOjA7YmFja2dyb3VuZC1jb2xvcjojZmZmO2NvbG9yOiMzMzM7Ym9yZGVyOjFweCBzb2xpZCAjZDlkOWQ5O2JvcmRlci10b3A6MXB4IHNvbGlkICNjMGMwYzA7ZGlzcGxheTppbmxpbmUtYmxvY2s7dmVydGljYWwtYWxpZ246dG9wO2hlaWdodDoyMXB4O2JveC1zaXppbmc6Ym9yZGVyLWJveDstd2Via2l0LWJveC1zaXppbmc6Ym9yZGVyLWJveDstbW96LWJveC1zaXppbmc6Ym9yZGVyLWJveDstd2Via2l0LWJvcmRlci1yYWRpdXM6MXB4fS5WSXBnSmQteUFXTkViLUw3bGJrYiAuVklwZ0pkLXlBV05FYi1JRmRLeWQtWVBxamJmLWZtY21TOmhvdmVye2JvcmRlcjoxcHggc29saWQgI2I5YjliOTtib3JkZXItdG9wOjFweCBzb2xpZCAjYTBhMGEwO2JveC1zaGFkb3c6aW5zZXQgMCAxcHggMnB4IHJnYmEoMCwwLDAsLjEpfS5WSXBnSmQteUFXTkViLUw3bGJrYiAuVklwZ0pkLXlBV05FYi1JRmRLeWQtWVBxamJmLWZtY21TOmZvY3Vze2JveC1zaGFkb3c6aW5zZXQgMCAxcHggMnB4IHJnYmEoMCwwLDAsLjMpO291dGxpbmU6bm9uZTtib3JkZXI6MXB4IHNvbGlkICM0ZDkwZmV9LlZJcGdKZC15QVdORWItTDdsYmtiIC5WSXBnSmQteUFXTkViLUlGZEt5ZC1ZUHFqYmYtc0ZlQnFme2ZvbnQtc2l6ZToxMXB4O3BhZGRpbmc6MnB4IDZweCAzcHg7bWFyZ2luOjAgMCAwIDJweDtoZWlnaHQ6MjFweH0uVklwZ0pkLXlBV05FYi1MN2xia2I+ZGl2e2Rpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTpmbGV4Oy1tb3otYm94LW9yaWVudDp2ZXJ0aWNhbDstbW96LWJveC1kaXJlY3Rpb246bm9ybWFsO2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtmb250LWZhbWlseTpHb29nbGUgU2FucyxBcmlhbCxzYW5zLXNlcmlmfS5WSXBnSmQteUFXTkViLWh2aGdOZCAuVklwZ0pkLXlBV05FYi1odmhnTmQtVWQ3ZnJ7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXg7LW1vei1ib3gtYWxpZ246ZW5kO2FsaWduLWl0ZW1zOmVuZDttYXJnaW46MTRweH0uVklwZ0pkLXlBV05FYi1odmhnTmQgLlZJcGdKZC15QVdORWItaHZoZ05kLUl1aXpXYy1TSXNyVGR7bWFyZ2luLXJpZ2h0OjE0cHg7Y29sb3I6Izc0Nzc3NTtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9LlZJcGdKZC15QVdORWItaHZoZ05kIC5WSXBnSmQteUFXTkViLWh2aGdOZC1JdWl6V2MtaTNqTThje21hcmdpbi1sZWZ0OjE0cHg7Y29sb3I6Izc0Nzc3NTtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9LlZJcGdKZC15QVdORWItaHZoZ05kIC5WSXBnSmQteUFXTkViLWh2aGdOZC1rNzdJaWZ7bWFyZ2luOjAgMTZweCAxNnB4fS5WSXBnSmQteUFXTkViLWh2aGdOZCAuVklwZ0pkLXlBV05FYi1odmhnTmQtYXhBVjF7d2lkdGg6YXV0bztjb2xvcjojMWYxZjFmO2ZvbnQtc2l6ZToxNnB4O3RleHQtYWxpZ246aW5pdGlhbH0uVklwZ0pkLXlBV05FYi1odmhnTmQgLlZJcGdKZC15QVdORWItaHZoZ05kLWF4QVYxIC5WSXBnSmQteUFXTkViLVNJc3JUZHt0ZXh0LWFsaWduOnJpZ2h0fS5WSXBnSmQteUFXTkViLWh2aGdOZCAuVklwZ0pkLXlBV05FYi1odmhnTmQtTjdFcWlke2JvcmRlci1yYWRpdXM6MCAwIDEycHggMTJweDttYXJnaW46MDtiYWNrZ3JvdW5kOiNmMWY0Zjk7cG9zaXRpb246cmVsYXRpdmU7bWluLWhlaWdodDo1MHB4fS5WSXBnSmQteUFXTkViLWh2aGdOZCAuVklwZ0pkLXlBV05FYi1odmhnTmQtTjdFcWlkIC5WSXBnSmQteUFXTkViLVNJc3JUZHt0ZXh0LWFsaWduOnJpZ2h0fS5WSXBnSmQteUFXTkViLWh2aGdOZCAuVklwZ0pkLXlBV05FYi1odmhnTmQtTjdFcWlkLUI3STRPZHtkaXNwbGF5Oi1tb3otYm94O2Rpc3BsYXk6ZmxleDstbW96LWJveC1vcmllbnQ6dmVydGljYWw7LW1vei1ib3gtZGlyZWN0aW9uOm5vcm1hbDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47d2lkdGg6NzclO3BhZGRpbmc6MTJweH0uVklwZ0pkLXlBV05FYi1odmhnTmQgLlZJcGdKZC15QVdORWItaHZoZ05kLU43RXFpZC1CN0k0T2QgLlZJcGdKZC15QVdORWItU0lzclRke3RleHQtYWxpZ246cmlnaHR9LlZJcGdKZC15QVdORWItaHZoZ05kIC5WSXBnSmQteUFXTkViLWh2aGdOZC1VVHVqQ2J7Y29sb3I6IzFmMWYxZjtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9LlZJcGdKZC15QVdORWItaHZoZ05kIC5WSXBnSmQteUFXTkViLWh2aGdOZC1ON0VxaWQtQjdJNE9kIC5WSXBnSmQteUFXTkViLVNJc3JUZCAuVklwZ0pkLXlBV05FYi1odmhnTmQtVVR1akNie3RleHQtYWxpZ246cmlnaHR9LlZJcGdKZC15QVdORWItaHZoZ05kIC5WSXBnSmQteUFXTkViLWh2aGdOZC1lTzltS2V7Y29sb3I6IzQ0NDc0Njtmb250LXNpemU6MTJweDtwYWRkaW5nLXRvcDo0cHh9LlZJcGdKZC15QVdORWItaHZoZ05kIC5WSXBnSmQteUFXTkViLWh2aGdOZC1ON0VxaWQtQjdJNE9kIC5WSXBnSmQteUFXTkViLVNJc3JUZCAuVklwZ0pkLXlBV05FYi1odmhnTmQtZU85bUtle3RleHQtYWxpZ246cmlnaHR9LlZJcGdKZC15QVdORWItaHZoZ05kIC5WSXBnSmQteUFXTkViLWh2aGdOZC14Z292NXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MTBweDtyaWdodDo1cHh9LlZJcGdKZC15QVdORWItaHZoZ05kIC5WSXBnSmQteUFXTkViLWh2aGdOZC14Z292NSAuVklwZ0pkLXlBV05FYi1TSXNyVGR7bGVmdDo1cHg7cmlnaHQ6YXV0b30uVklwZ0pkLXlBV05FYi1odmhnTmQgLlZJcGdKZC15QVdORWItaHZoZ05kLVRISTZWYntmaWxsOiMwYjU3ZDB9LlZJcGdKZC15QVdORWItaHZoZ05kIC5WSXBnSmQteUFXTkViLWh2aGdOZC1iZ202c2Z7bWFyZ2luOi00cHggMnB4IDAgMDtwYWRkaW5nOjJweCAwIDA7d2lkdGg6NDhweDtoZWlnaHQ6NDhweDtib3JkZXI6bm9uZTtib3JkZXItcmFkaXVzOjI0cHg7Y3Vyc29yOnBvaW50ZXI7YmFja2dyb3VuZDpub25lfS5WSXBnSmQteUFXTkViLWh2aGdOZCAuVklwZ0pkLXlBV05FYi1odmhnTmQtYmdtNnNmOmhvdmVye2JhY2tncm91bmQ6I2U4ZWJlY30uVklwZ0pkLXlBV05FYi1odmhnTmQgLlZJcGdKZC15QVdORWItaHZoZ05kLWFYWVRjZXtkaXNwbGF5Om5vbmV9c2VudGluZWx7fQ=="}},"time_used":62,"timings":{"blocked":-1,"dns":3,"connect":14,"send":0,"wait":15,"receive":0,"ssl":30},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/40914.a8dd696be7dde6ce6ddb.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:13.974Z","timestamp":1785148033974,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/40914.a8dd696be7dde6ce6ddb.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:13 GMT\r\ncontent-type: text/css; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding, Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\netag: W/\"69f98b70-c1e\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Tue, 05 May 2026 06:17:20 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.51\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 05/05/2026 10:16:50\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 42993d1e3f6cf4adb36f75130622e6e1\r\ncdn-cache: HIT\r\ncontent-encoding: br\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":3102,"size_decoded":1787,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with very long lines (3102), with no line terminators","md5":"094f5ba255ecd204b66ce0b20b58debe","sha1":"b6c9f902dab141be0c41dbdc0cc85f955cbd6e69","sha256":"d7c7a0856bc2534fe37455923769a8d3d542b185ac2730d7d8cae2ba11d8ecb7","sha512":"abca5f9f7f94d55bd7b96b0dd86755341e5cd7c2951d718e4279bfcd919f255b2921f620a672a7c06f495c40b105cb0a1a41185c42b15d88bd729ed19983665b","ssdeep":"","tlshash":"32511194e110b22a3a6fa63a8759d3cd5070e892d8110fecf5e5e7b581c6bce25e990c","first_seen":"2026-04-04T14:08:55.367498Z","last_seen":"2026-07-27T12:07:26.337589Z","times_seen":64,"resource_available":false,"data":"LndyYXBwZXItaG9XdHBOeWh7YWxpZ24taXRlbXM6Y2VudGVyO2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3Bvc2l0aW9uOnJlbGF0aXZlfS5pc0FjdGl2ZS1ob1d0cE55aHtjb2xvcjp2YXIoLS10di1jb2xvci1wb3B1cC1lbGVtZW50LWJhY2tncm91bmQtYWN0aXZlLHZhcigtLWNvbG9yLXBvcHVwLWVsZW1lbnQtYmFja2dyb3VuZC1hY3RpdmUpKX0uaXNBY3RpdmUtaG9XdHBOeWg6YWZ0ZXJ7YmFja2dyb3VuZC1jb2xvcjpjdXJyZW50Q29sb3I7Y29udGVudDoiIjtoZWlnaHQ6NHB4O2luc2V0LWlubGluZS1lbmQ6MDtpbnNldC1pbmxpbmUtc3RhcnQ6MDtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MTAwJX0uYnV0dG9uLWhvV3RwTnloe2FsbDp1bnNldDthbGlnbi1pdGVtczpjZW50ZXI7ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpjZW50ZXI7cG9zaXRpb246cmVsYXRpdmV9LmJ1dHRvbi1ob1d0cE55aDpiZWZvcmV7Ym9yZGVyLXJhZGl1czo0cHg7Y29udGVudDpub25lO2hlaWdodDoxMDAlO2luc2V0LWlubGluZS1zdGFydDowO291dGxpbmU6dmFyKC0tY29sb3ItdHYtYmx1ZS01MDApIG5vbmUgMnB4O291dGxpbmUtb2Zmc2V0Oi0ycHg7cG9pbnRlci1ldmVudHM6bm9uZTtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDt3aWR0aDoxMDAlfS5idXR0b24taG9XdHBOeWg6Zm9jdXMtdmlzaWJsZTpiZWZvcmV7Y29udGVudDoiIjtvdXRsaW5lLXN0eWxlOnNvbGlkfS5idXR0b24taG9XdHBOeWguaXNBY3RpdmUtaG9XdHBOeWh7Y29sb3I6dmFyKC0tdHYtY29sb3ItcG9wdXAtZWxlbWVudC1iYWNrZ3JvdW5kLWFjdGl2ZSx2YXIoLS1jb2xvci1wb3B1cC1lbGVtZW50LWJhY2tncm91bmQtYWN0aXZlKSl9LndyYXBwZXItUlhFdF9OV3p7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgdmFyKC0tdHYtY29sb3ItcG9wdXAtZWxlbWVudC1kaXZpZGVyLWJhY2tncm91bmQsdmFyKC0tY29sb3ItcG9wdXAtbWVudS1zZXBhcmF0b3IpKTtkaXNwbGF5OmZsZXg7cGFkZGluZzo2cHggNnB4IDNweH0ud3JhcHBlci1RV21kQ1pTQXthbGlnbi1pdGVtczpjZW50ZXI7Ym94LXNpemluZzpib3JkZXItYm94O2NvbG9yOnZhcigtLXR2LWNvbG9yLXBvcHVwLWVsZW1lbnQtc2Vjb25kYXJ5LXRleHQsdmFyKC0tY29sb3ItcG9wdXAtZWxlbWVudC1zZWNvbmRhcnktdGV4dCkpO2Rpc3BsYXk6ZmxleDtmb250LXNpemU6MTFweDtoZWlnaHQ6MTAwJTtsZXR0ZXItc3BhY2luZzouNHB4O3BhZGRpbmctYmxvY2s6NnB4IDA7cGFkZGluZy1pbmxpbmU6MThweCA2cHg7dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlfS53cmFwcGVyLU1lUUQza0ZBe2FsaWduLWl0ZW1zOmNlbnRlcjtib3JkZXItcmFkaXVzOjRweDtkaXNwbGF5OmZsZXg7ZmxleC1zaHJpbms6MDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyfS5idXR0b24tTWVRRDNrRkF7YWxsOnVuc2V0O2FsaWduLWl0ZW1zOmNlbnRlcjtkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OmNlbnRlcjtwb3NpdGlvbjpyZWxhdGl2ZX0uYnV0dG9uLU1lUUQza0ZBOmJlZm9yZXtib3JkZXItcmFkaXVzOjRweDtjb250ZW50Om5vbmU7aGVpZ2h0OjEwMCU7aW5zZXQtaW5saW5lLXN0YXJ0OjA7b3V0bGluZTp2YXIoLS1jb2xvci10di1ibHVlLTUwMCkgbm9uZSAycHg7b3V0bGluZS1vZmZzZXQ6LTJweDtwb2ludGVyLWV2ZW50czpub25lO3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO3dpZHRoOjEwMCV9LmJ1dHRvbi1NZVFEM2tGQTpmb2N1cy12aXNpYmxlOmJlZm9yZXtjb250ZW50OiIiO291dGxpbmUtc3R5bGU6c29saWR9LndyYXBwZXItTTE0S1VWZEd7YWxpZ24taXRlbXM6Y2VudGVyO2Rpc3BsYXk6ZmxleDtoZWlnaHQ6MTAwJTtvdmVyZmxvdzpoaWRkZW47cGFkZGluZzowIDZweH0uZW1vamlJdGVtLU0xNEtVVmRHLmhvdmVyZWQtTTE0S1VWZEd7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS10di1jb2xvci1wb3B1cC1lbGVtZW50LWJhY2tncm91bmQtaG92ZXIsdmFyKC0tY29sb3ItcG9wdXAtZWxlbWVudC1iYWNrZ3JvdW5kLWhvdmVyKSl9QG1lZGlhIChhbnktaG92ZXI6aG92ZXIpey5lbW9qaUl0ZW0tTTE0S1VWZEc6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS10di1jb2xvci1wb3B1cC1lbGVtZW50LWJhY2tncm91bmQtaG92ZXIsdmFyKC0tY29sb3ItcG9wdXAtZWxlbWVudC1iYWNrZ3JvdW5kLWhvdmVyKSl9fS5lbW9qaUl0ZW0tTTE0S1VWZEc6YWN0aXZle2JhY2tncm91bmQtY29sb3I6dmFyKC0tdHYtY29sb3ItcG9wdXAtZWxlbWVudC1iYWNrZ3JvdW5kLWhvdmVyLHZhcigtLWNvbG9yLWNvbnRhaW5lci1maWxsLXByaW1hcnktbmV1dHJhbC1saWdodCkpfS5saXN0LUpQb0ZBUmFHe2NvbnRlbnQtdmlzaWJpbGl0eTphdXRvO292ZXJzY3JvbGwtYmVoYXZpb3I6bm9uZTtwYWRkaW5nLWJvdHRvbTo2cHg7d2lsbC1jaGFuZ2U6Y29udGVudHN9QG1lZGlhIChwb2ludGVyOmZpbmUpe0BzdXBwb3J0cyAoLW1vei1hcHBlYXJhbmNlOm5vbmUpey5saXN0LUpQb0ZBUmFHe3Njcm9sbGJhci1jb2xvcjp2YXIoLS10di1jb2xvci1zY3JvbGxiYXItdGh1bWItYmFja2dyb3VuZCx2YXIoLS1jb2xvci1zY3JvbGwtYmcpKSAjMDAwMDtzY3JvbGxiYXItd2lkdGg6dGhpbn19Lmxpc3QtSlBvRkFSYUc6Oi13ZWJraXQtc2Nyb2xsYmFye2hlaWdodDo1cHg7d2lkdGg6NXB4fS5saXN0LUpQb0ZBUmFHOjotd2Via2l0LXNjcm9sbGJhci10aHVtYntiYWNrZ3JvdW5kLWNsaXA6Y29udGVudC1ib3g7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS10di1jb2xvci1zY3JvbGxiYXItdGh1bWItYmFja2dyb3VuZCx2YXIoLS1jb2xvci1zY3JvbGwtYmcpKTtib3JkZXI6MXB4IHNvbGlkICMwMDAwO2JvcmRlci1yYWRpdXM6M3B4fS5saXN0LUpQb0ZBUmFHOjotd2Via2l0LXNjcm9sbGJhci10cmFja3tiYWNrZ3JvdW5kLWNvbG9yOmluaXRpYWw7Ym9yZGVyLXJhZGl1czozcHh9Lmxpc3QtSlBvRkFSYUc6Oi13ZWJraXQtc2Nyb2xsYmFyLWNvcm5lcntkaXNwbGF5Om5vbmV9fS53cmFwcGVyLVZtQ295TVdGe2JhY2tncm91bmQtY29sb3I6dmFyKC0tdHYtY29sb3ItcG9wdXAtYmFja2dyb3VuZCx2YXIoLS1jb2xvci1wb3B1cC1iYWNrZ3JvdW5kKSk7Ym9yZGVyLXJhZGl1czo2cHh9"}},"time_used":4,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":4,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/23669.a61971d84257c346bd5f.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:13.978Z","timestamp":1785148033978,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/23669.a61971d84257c346bd5f.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:13 GMT\r\ncontent-type: text/css; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a4360b8-aa8\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Tue, 30 Jun 2026 06:22:48 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.57\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 06/30/2026 11:55:10\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 2c0b8eba9892c0b8349cb61ea672074d\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":2728,"size_decoded":1649,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with very long lines (2728), with no line terminators","md5":"da3d6d05d2dc6bb0ff4b03eeae50a509","sha1":"971568eb9afbac7c18c9ca16e66bdf625523fedb","sha256":"7d4afa2f45d8b837f2049b2c41340a236d2c063efdfb60095bdd1e9bc5db27f2","sha512":"ca319be4af9c386f0b41df40efa6885fa6ebc3e8b804d6d26179b1f08f0e676aaf47163b09510a6848c93a02a544cc3319d21e4d3bc7761ee6244fd052c90d6a","ssdeep":"","tlshash":"4751fcc8a3587817a61b713dd78892ccd125a863fc980addfc62f190c3da7e0d7a9854","first_seen":"2026-06-30T21:57:43.387896Z","last_seen":"2026-07-27T12:48:39.685884Z","times_seen":223,"resource_available":false,"data":"LndyYXBwZXItcTU0VHd5Q097YWxpZ24tY29udGVudDpmbGV4LXN0YXJ0O2FsaWduLWl0ZW1zOmZsZXgtc3RhcnQ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS10di1jb2xvci1wb3B1cC1iYWNrZ3JvdW5kLHZhcigtLWNvbG9yLXBvcHVwLWJhY2tncm91bmQpKTtjb2xvcjp2YXIoLS10di1jb2xvci1wb3B1cC1lbGVtZW50LXRleHQsdmFyKC0tY29sb3ItcG9wdXAtZWxlbWVudC10ZXh0KSk7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOnJvdztqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjtwYWRkaW5nLWJsb2NrOjZweCAycHg7cGFkZGluZy1pbmxpbmU6MTJweCAxMHB4O3doaXRlLXNwYWNlOm5vd3JhcH0ud3JhcHBlci1xNTRUd3lDTy5ob3ZlcmVkLXE1NFR3eUNPLC53cmFwcGVyLXE1NFR3eUNPOmFjdGl2ZXtjb2xvcjp2YXIoLS10di1jb2xvci1wb3B1cC1lbGVtZW50LXRleHQtaG92ZXIsdmFyKC0tY29sb3ItcG9wdXAtZWxlbWVudC10ZXh0LWhvdmVyKSl9QG1lZGlhIChhbnktaG92ZXI6aG92ZXIpey53cmFwcGVyLXE1NFR3eUNPOmhvdmVye2NvbG9yOnZhcigtLXR2LWNvbG9yLXBvcHVwLWVsZW1lbnQtdGV4dC1ob3Zlcix2YXIoLS1jb2xvci1wb3B1cC1lbGVtZW50LXRleHQtaG92ZXIpKX19LndyYXBwZXItcTU0VHd5Q08uaG92ZXJlZC1xNTRUd3lDT3tiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXR2LWNvbG9yLXBvcHVwLWVsZW1lbnQtYmFja2dyb3VuZC1ob3Zlcix2YXIoLS1jb2xvci1wb3B1cC1lbGVtZW50LWJhY2tncm91bmQtaG92ZXIpKX1AbWVkaWEgKGFueS1ob3Zlcjpob3Zlcil7LndyYXBwZXItcTU0VHd5Q086aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS10di1jb2xvci1wb3B1cC1lbGVtZW50LWJhY2tncm91bmQtaG92ZXIsdmFyKC0tY29sb3ItcG9wdXAtZWxlbWVudC1iYWNrZ3JvdW5kLWhvdmVyKSl9fS53cmFwcGVyLXE1NFR3eUNPOmFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXR2LWNvbG9yLXBvcHVwLWVsZW1lbnQtYmFja2dyb3VuZC1ob3Zlcix2YXIoLS1jb2xvci1jb250YWluZXItZmlsbC1wcmltYXJ5LW5ldXRyYWwtbGlnaHQpKX0ud3JhcHBlci1xNTRUd3lDTzpiZWZvcmV7Y29udGVudDoiIjtkaXNwbGF5OmJsb2NrO2hlaWdodDoyMHB4fS53cmFwcGVyLXE1NFR3eUNPIC5zd2l0Y2hXcmFwLXE1NFR3eUNPe2FsaWduLWl0ZW1zOmNlbnRlcjtkaXNwbGF5OmZsZXh9LndyYXBwZXItcTU0VHd5Q08ud2l0aEljb24tcTU0VHd5Q08gLmxhYmVsUm93LXE1NFR3eUNPe3BhZGRpbmc6MH0uaWNvbi1xNTRUd3lDTywud3JhcHBlci1xNTRUd3lDTy53aXRoSWNvbi1xNTRUd3lDTyAubGFiZWwtcTU0VHd5Q08sLndyYXBwZXItcTU0VHd5Q08ud2l0aEljb24tcTU0VHd5Q08gLnN3aXRjaFdyYXAtcTU0VHd5Q097YWxpZ24taXRlbXM6Y2VudGVyO2Rpc3BsYXk6ZmxleDtoZWlnaHQ6MjhweH0uaWNvbi1xNTRUd3lDT3tqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO21hcmdpbi1pbmxpbmUtZW5kOjZweDt3aWR0aDoyOHB4fS5pY29uLXE1NFR3eUNPIHN2Z3tkaXNwbGF5OmJsb2NrfS5sYWJlbFJvdy1xNTRUd3lDT3tmbGV4OjEgMSBhdXRvO21pbi13aWR0aDowO3BhZGRpbmc6MnB4IDAgNnB4fS5sYWJlbC1xNTRUd3lDT3tmb250LXNpemU6MTRweDttYXJnaW4taW5saW5lLWVuZDoxMnB4O292ZXJmbG93OmhpZGRlbn0ubGFiZWxfZGlzYWJsZWQtcTU0VHd5Q097b3BhY2l0eTouNX0ubGFiZWxIaW50LXE1NFR3eUNPe2NvbG9yOnZhcigtLWNvbG9yLWRlZmF1bHQtZ3JheSk7Y29udGFpbjpjb250ZW50O2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjQwMDttYXJnaW4tdG9wOjA7bWF4LWhlaWdodDowO29wYWNpdHk6MDtvdmVyZmxvdzpoaWRkZW47dHJhbnNpdGlvbjptYXgtaGVpZ2h0IC4yNXMgZWFzZS1pbixtYXJnaW4tdG9wIC4yNXMgZWFzZS1pbixvcGFjaXR5IC4zNXMgbGluZWFyO3doaXRlLXNwYWNlOm5vcm1hbH0ubGFiZWxPbi1xNTRUd3lDTysubGFiZWxIaW50LXE1NFR3eUNPe21hcmdpbi10b3A6NHB4O21heC1oZWlnaHQ6MzRweDtvcGFjaXR5OjE7dHJhbnNpdGlvbjptYXgtaGVpZ2h0IC4ycyBlYXNlLW91dCxtYXJnaW4tdG9wIC4ycyBlYXNlLW91dCxvcGFjaXR5IC4zNXMgbGluZWFyfS5hY2Nlc3NpYmxlLXE1NFR3eUNPe291dGxpbmU6bm9uZTtvdmVyZmxvdzp2aXNpYmxlO3Bvc2l0aW9uOnJlbGF0aXZlfS5hY2Nlc3NpYmxlLXE1NFR3eUNPOmZvY3Vze291dGxpbmU6bm9uZX0uYWNjZXNzaWJsZS1xNTRUd3lDTzpmb2N1cy12aXNpYmxle291dGxpbmU6bm9uZX0uYWNjZXNzaWJsZS1xNTRUd3lDTzphZnRlcntib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLXdpZHRoOjJweDtib3gtc2l6aW5nOmJvcmRlci1ib3g7Y29udGVudDoiIjtkaXNwbGF5Om5vbmU7aGVpZ2h0OjEwMCU7aW5zZXQtaW5saW5lLXN0YXJ0OjA7cG9pbnRlci1ldmVudHM6bm9uZTtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDt3aWR0aDoxMDAlO3otaW5kZXg6MX0uYWNjZXNzaWJsZS1xNTRUd3lDTzpmb2N1czphZnRlcntkaXNwbGF5OmJsb2NrfS5hY2Nlc3NpYmxlLXE1NFR3eUNPOmZvY3VzLXZpc2libGU6YWZ0ZXJ7ZGlzcGxheTpibG9ja30uYWNjZXNzaWJsZS1xNTRUd3lDTzpmb2N1czpub3QoOmZvY3VzLXZpc2libGUpOmFmdGVye2Rpc3BsYXk6bm9uZX0uYWNjZXNzaWJsZS1xNTRUd3lDTzphZnRlcntib3JkZXItY29sb3I6dmFyKC0tY29sb3ItdHYtYmx1ZS01MDApO2JvcmRlci1yYWRpdXM6NnB4fQ=="}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/88641.041438d11c46fce9d089.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.533Z","timestamp":1785148034533,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/88641.041438d11c46fce9d089.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\ncontent-type: text/css; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding, Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\netag: W/\"69f98b72-62c\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Tue, 05 May 2026 06:17:22 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.51\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 05/05/2026 10:16:43\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: be71e6438aff2f52c0880f608c6c8616\r\ncdn-cache: HIT\r\ncontent-encoding: br\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":1580,"size_decoded":1389,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with very long lines (1580), with no line terminators","md5":"32e0ae9a28c9d52b414aad34c4892758","sha1":"c119d88feed0b8329be7c35b301b302009ccf7ae","sha256":"e500bb28f78ac3f684a2b30dc0bd9b3331361b359f821ea0c3a52125602e5b20","sha512":"12b52a1eb7238e0fb37efa641cf083fec0b82cbffa652c114c565afca2e4ed378b45dae932ca4d06a04dbc1b5ba34433d9b290cf92413b855a971a45eb7099d8","ssdeep":"","tlshash":"0d31c2a8e27491ba5a4bdd7923d4e659190cbd03be221fd6f724d4108cc65e32371d98","first_seen":"2026-04-03T18:46:53.450108Z","last_seen":"2026-07-27T12:48:39.810188Z","times_seen":198,"resource_available":false,"data":"W2RhdGEtdGhlbWU9bGlnaHRdey0tXzAtbnJmSjp2YXIoLS1jb2xvci1jb2xkLWdyYXktOTAwKTstLV8xLW5yZko6dmFyKC0tY29sb3ItY29sZC1ncmF5LTE1MCl9W2RhdGEtdGhlbWU9ZGFya117LS1fMC1ucmZKOnZhcigtLWNvbG9yLWNvbGQtZ3JheS0zNTApOy0tXzEtbnJmSjp2YXIoLS1jb2xvci1jb2xkLWdyYXktNzAwKX0uY29udGFpbmVyLXFtN1JnNU1Ce2FsaWduLWl0ZW1zOmNlbnRlcjtib3JkZXItYm90dG9tOjFweCBzb2xpZDtib3JkZXItdG9wOjFweCBzb2xpZDtib3JkZXItY29sb3I6dmFyKC0tXzEtbnJmSik7Y3Vyc29yOmRlZmF1bHQ7ZGlzcGxheTpmbGV4O2ZsZXgtc2hyaW5rOjA7cG9zaXRpb246cmVsYXRpdmV9LmNvbnRhaW5lci1xbTdSZzVNQi5tb2JpbGUtcW03Umc1TUJ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1jb250YWluZXItZmlsbC1wcmltYXJ5LW5ldXRyYWwtZXh0cmEtbGlnaHQpO2JvcmRlcjpub25lO2JvcmRlci1yYWRpdXM6NDBweDttYXJnaW4tYmxvY2s6NHB4IDhweDttYXJnaW4taW5saW5lOjIwcHggMjBweH0uaW5wdXRDb250YWluZXItcW03Umc1TUJ7aGVpZ2h0OjI0cHg7cGFkZGluZy1ibG9jazo4cHggOHB4O3BhZGRpbmctaW5saW5lOjQ3cHggMTZweDt3aWR0aDoxMDAlfS5pbnB1dENvbnRhaW5lci1xbTdSZzVNQi5tb2JpbGUtcW03Umc1TUJ7cGFkZGluZy1pbmxpbmUtc3RhcnQ6NDBweH0uaW5wdXRDb250YWluZXItcW03Umc1TUIud2l0aENhbmNlbC1xbTdSZzVNQntwYWRkaW5nLWlubGluZS1lbmQ6NzBweH0uaW5wdXQtcW03Umc1TUJ7YmFja2dyb3VuZC1jb2xvcjppbml0aWFsO2JvcmRlcjpub25lO2NvbG9yOnZhcigtLV8wLW5yZkopO2ZvbnQtc2l6ZToxNnB4O2hlaWdodDoxMDAlO21hcmdpbjowO3BhZGRpbmc6MDt3aWR0aDoxMDAlfS5pbnB1dC1xbTdSZzVNQi5tb2JpbGUtcW03Umc1TUJ7Y29sb3I6dmFyKC0tY29sb3ItY29udGVudC1wcmltYXJ5LW5ldXRyYWwtYm9sZCl9LmlucHV0LXFtN1JnNU1CLm1vYmlsZS1xbTdSZzVNQjo6cGxhY2Vob2xkZXJ7Y29sb3I6dmFyKC0tY29sb3ItY29udGVudC1wcmltYXJ5LW5ldXRyYWwpO2ZvbnQtd2VpZ2h0OjQwMH0uaW5wdXQtcW03Umc1TUI6OnBsYWNlaG9sZGVye2NvbG9yOnZhcigtLWNvbG9yLWlucHV0LXBsYWNlaG9sZGVyLXRleHQpO2ZvbnQtd2VpZ2h0OjQwMH0uaWNvbi1xbTdSZzVNQntjb2xvcjp2YXIoLS1jb2xvci1jb2xkLWdyYXktMzUwKTtoZWlnaHQ6MjhweDtpbnNldC1pbmxpbmUtc3RhcnQ6MTVweDtwb2ludGVyLWV2ZW50czpub25lO3Bvc2l0aW9uOmFic29sdXRlO3RvcDpjYWxjKDUwJSAtIDE0cHgpfS5pY29uLXFtN1JnNU1CLm1vYmlsZS1xbTdSZzVNQntjb2xvcjp2YXIoLS1jb2xvci1jb250ZW50LXByaW1hcnktbmV1dHJhbCk7aW5zZXQtaW5saW5lLXN0YXJ0OjhweH0uY2FuY2VsLXFtN1JnNU1Ce2NvbG9yOnZhcigtLWNvbG9yLWRlZmF1bHQtZ3JheSk7aW5zZXQtaW5saW5lLWVuZDoyMHB4O3Bvc2l0aW9uOmFic29sdXRlfS5jYW5jZWwtcW03Umc1TUIubW9iaWxlLXFtN1JnNU1Ce2NvbG9yOnZhcigtLWNvbG9yLWNvbnRlbnQtcHJpbWFyeS1uZXV0cmFsKX0="}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/29133.bdfa167093f05dfb24d0.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.845Z","timestamp":1785148034845,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/29133.bdfa167093f05dfb24d0.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\ncontent-type: text/css; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a4360b8-23e4\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Tue, 30 Jun 2026 06:22:48 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.57\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 06/30/2026 11:59:43\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 2a69fa70d418ba7ecfde9c7ee240fb17\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":9188,"size_decoded":3207,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with very long lines (9188), with no line terminators","md5":"0e7bcc11bdd240ddfbfe2e15bb163597","sha1":"b0f5e2bc5f176e6f60f3cb931ede4b3bae1ba16c","sha256":"01a2ea7a3b99c28c700a4523cafc520f5670677bf878374b3333dc5f5361ba09","sha512":"f8f5deff125d504030cf577d12bfe1b8762e8b929cca303aafe3d5653b6d944a7b317d497aa742b5180e56565909862306b352817a641bb7ad68b288e0a20c79","ssdeep":"192:fP2xYewB+5bgGpIBhuRi8Xr2cVBDoNmcfACiPePph:GOewB+V5pfn2nviYph","tlshash":"a9126469f330a175747b5c3f5384d75e3120e823ca43d6affa706a58c4c63e622a1a98","first_seen":"2026-07-04T06:34:19.734975Z","last_seen":"2026-07-27T10:28:13.973513Z","times_seen":13,"resource_available":false,"data":"W2RhdGEtdGhlbWU9bGlnaHRdey0tXzAtLURYVjp2YXIoLS1jb2xvci1jb2xkLWdyYXktMzAwKX1bZGF0YS10aGVtZT1kYXJrXXstLV8wLS1EWFY6dmFyKC0tY29sb3ItY29sZC1ncmF5LTU1MCl9LmNvbnRlbnRJbnB1dC1rVXhxc1BaaXtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1ufS5pbnB1dEFyZWEta1V4cXNQWml7Zm9udC1mYW1pbHk6LWFwcGxlLXN5c3RlbSxCbGlua01hY1N5c3RlbUZvbnQsVHJlYnVjaGV0IE1TLFJvYm90byxVYnVudHUsc2Fucy1zZXJpZjtmb250LWZlYXR1cmUtc2V0dGluZ3M6InRudW0iIG9uLCJsbnVtIiBvbjtmb250LXN0eWxlOm5vcm1hbDstLXVpLWxpYi10eXBvZ3JhcGh5LWZvbnQtc2l6ZToxNHB4O2ZvbnQtc2l6ZTp2YXIoLS11aS1saWItdHlwb2dyYXBoeS1mb250LXNpemUpO2ZvbnQtd2VpZ2h0OjQwMDstLXVpLWxpYi10eXBvZ3JhcGh5LWxpbmUtaGVpZ2h0OjE4cHg7aGVpZ2h0OjM0cHg7bGluZS1oZWlnaHQ6dmFyKC0tdWktbGliLXR5cG9ncmFwaHktbGluZS1oZWlnaHQpO3RyYW5zaXRpb246aGVpZ2h0IC4yczt3aWR0aDoxMDAlfS5pbnB1dC1rVXhxc1BaaXtwYWRkaW5nOjVweH0uZW5sYXJnZWRJbnB1dEFyZWEta1V4cXNQWml7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2hlaWdodDoxMjBweH0uZW5sYXJnZWRJbnB1dEFyZWEta1V4cXNQWmkubW9iaWxlLWtVeHFzUFppe2hlaWdodDphdXRvfS5lbmxhcmdlZElucHV0QXJlYS1rVXhxc1BaaS5tb2JpbGUta1V4cXNQWmkgLnRvb2xzLWtVeHFzUFppe21pbi1oZWlnaHQ6NDNweH0uYWN0aW9ucy1rVXhxc1BaaXtkaXNwbGF5OmZsZXg7Z2FwOjEwcHg7anVzdGlmeS1jb250ZW50OmZsZXgtZW5kO21hcmdpbi10b3A6OHB4fS5hY3Rpb25CdG4ta1V4cXNQWml7d2lkdGg6MTEycHh9LmFjdGlvbkJ0bi1rVXhxc1BaaS5tb2JpbGUta1V4cXNQWml7d2lkdGg6MTAwJX0udG9vbHMta1V4cXNQWml7ZGlzcGxheTpmbGV4O21pbi1oZWlnaHQ6MzJweH0ucHJldmlld1dyYXAta1V4cXNQWml7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1jb2xvci1jb250cm9sLWludGVudC1kZWZhdWx0KTtib3JkZXItcmFkaXVzOjRweDtib3gtc2l6aW5nOmJvcmRlci1ib3g7ZGlzcGxheTpmbGV4O2hlaWdodDoxOHB4O21hcmdpbjozcHggOHB4IDhweDtvdmVyZmxvdzpoaWRkZW47cG9zaXRpb246cmVsYXRpdmU7dHJhbnNpdGlvbjpoZWlnaHQgLjJzO3dpZHRoOjQwcHh9QG1lZGlhIChhbnktaG92ZXI6aG92ZXIpey5wcmV2aWV3V3JhcC1rVXhxc1BaaTpob3Zlcntib3JkZXItY29sb3I6dmFyKC0tXzAtLURYVil9fS5lbmxhcmdlZFByZXZpZXdXcmFwLWtVeHFzUFppe2hlaWdodDozMnB4fS5wcmV2aWV3SW1hZ2VXcmFwLWtVeHFzUFppe3dpZHRoOjEwMCV9LnByZXZpZXdJbWFnZS1rVXhxc1BaaXtoZWlnaHQ6MTAwJTt3aWR0aDoxMDAlfS5yZW1vdmVCdXR0b24ta1V4cXNQWml7YWxpZ24taXRlbXM6Y2VudGVyO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItYmctcHJpbWFyeS1ob3Zlcik7Ym9yZGVyLWVuZC1zdGFydC1yYWRpdXM6NHB4O2NvbG9yOnZhcigtLWNvbG9yLXRleHQtc2Vjb25kYXJ5KTtkaXNwbGF5OmZsZXg7aW5zZXQtaW5saW5lLWVuZDowO2p1c3RpZnktY29udGVudDpjZW50ZXI7cG9zaXRpb246YWJzb2x1dGU7dG9wOjB9QG1lZGlhIChhbnktaG92ZXI6aG92ZXIpey5yZW1vdmVCdXR0b24ta1V4cXNQWmk6aG92ZXJ7Y29sb3I6dmFyKC0tY29sb3ItYWN0aXZlLWhvdmVyLXRleHQpfX0ucmVtb3ZlSWNvbi1rVXhxc1BaaXtkaXNwbGF5OmZsZXh9LnNwaW5uZXIta1V4cXNQWml7aW5zZXQtaW5saW5lLXN0YXJ0OjJweDt0b3A6MnB4fS5zbmFwc2hvdEJ1dHRvbi1rVXhxc1BaaXtjb2xvcjp2YXIoLS1jb2xvci10ZXh0LXNlY29uZGFyeSk7aGVpZ2h0OjI4cHg7bWFyZ2luLWJsb2NrOmF1dG8gMnB4O21hcmdpbi1pbmxpbmU6YXV0byAycHg7cG9zaXRpb246cmVsYXRpdmU7d2lkdGg6MjhweDstLXR2LXRvb2xiYXItZXhwbGljaXQtaG92ZXItbWFyZ2luOjB9LnNuYXBzaG90QnV0dG9uLWtVeHFzUFppLmRpc2FibGVkLWtVeHFzUFppe2NvbG9yOnZhcigtLWNvbG9yLXRleHQtZGlzYWJsZWQpO29wYWNpdHk6MX1bZGF0YS10aGVtZT1saWdodF17LS1fMC10dTlBOnZhcigtLWNvbG9yLWNvbGQtZ3JheS0xNTApOy0tXzEtdHU5QTp2YXIoLS1jb2xvci1jb2xkLWdyYXktMzAwKX1bZGF0YS10aGVtZT1kYXJrXXstLV8wLXR1OUE6dmFyKC0tY29sb3ItY29sZC1ncmF5LTcwMCk7LS1fMS10dTlBOnZhcigtLWNvbG9yLWNvbGQtZ3JheS01NTApfS5zeW1ib2xOb3RlSXRlbS1lZmxXNFlzZXtjdXJzb3I6ZGVmYXVsdDtwYWRkaW5nOjEycHggMTZweH1AbWVkaWEgKGFueS1ob3Zlcjpob3Zlcil7LnN5bWJvbE5vdGVJdGVtLWVmbFc0WXNlOmhvdmVyOm5vdCguZWRpdE1vZGUtZWZsVzRZc2Upe2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItYmctcHJpbWFyeS1ob3Zlcil9LnN5bWJvbE5vdGVJdGVtLWVmbFc0WXNlOmhvdmVyIC5idXR0b25XcmFwLWVmbFc0WXNle2Rpc3BsYXk6ZmxleH19LmVkaXRNb2RlLWVmbFc0WXNle2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItbGlzdC1pdGVtLWJnLWhpZ2hsaWdodGVkKX0uZWRpdE1vZGUtZWZsVzRZc2UgLmJ1dHRvbi1lZmxXNFlzZXstLXR2LWNvbG9yLXRvb2xiYXItYnV0dG9uLWJhY2tncm91bmQtaG92ZXI6dmFyKC0tY29sb3ItbGlzdC1pdGVtLWJnLXNlbGVjdGVkKX0uY29udGVudC1lZmxXNFlzZXtmb250LWZhbWlseTotYXBwbGUtc3lzdGVtLEJsaW5rTWFjU3lzdGVtRm9udCxUcmVidWNoZXQgTVMsUm9ib3RvLFVidW50dSxzYW5zLXNlcmlmO2ZvbnQtZmVhdHVyZS1zZXR0aW5nczoidG51bSIgb24sImxudW0iIG9uO2ZvbnQtc3R5bGU6bm9ybWFsOy0tdWktbGliLXR5cG9ncmFwaHktZm9udC1zaXplOjE0cHg7Zm9udC1zaXplOnZhcigtLXVpLWxpYi10eXBvZ3JhcGh5LWZvbnQtc2l6ZSk7Zm9udC13ZWlnaHQ6NDAwOy0tdWktbGliLXR5cG9ncmFwaHktbGluZS1oZWlnaHQ6MThweDtjb2xvcjp2YXIoLS1jb2xvci1hY3RpdmUtaG92ZXItdGV4dCk7bGluZS1oZWlnaHQ6dmFyKC0tdWktbGliLXR5cG9ncmFwaHktbGluZS1oZWlnaHQpO21hcmdpbi1ib3R0b206NHB4O292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzOy13ZWJraXQtdXNlci1zZWxlY3Q6dGV4dDt1c2VyLXNlbGVjdDp0ZXh0O3doaXRlLXNwYWNlOnByZS13cmFwfS5jb250ZW50LWVmbFc0WXNlLm1vYmlsZS1lZmxXNFlzZXtmb250LXNpemU6MTZweDtsaW5lLWhlaWdodDoyNHB4fS5jb250ZW50LWVmbFc0WXNlIGEsLmNvbnRlbnQtZWZsVzRZc2UgYTp2aXNpdGVke2NvbG9yOnZhcigtLWNvbG9yLWxpbmstcHJpbWFyeS1kZWZhdWx0KTtmaWxsOnZhcigtLWNvbG9yLWxpbmstcHJpbWFyeS1kZWZhdWx0KX1AbWVkaWEgKGFueS1ob3Zlcjpob3Zlcil7LmNvbnRlbnQtZWZsVzRZc2UgYTpob3Zlcntjb2xvcjp2YXIoLS1jb2xvci1saW5rLXByaW1hcnktaG92ZXIpO2ZpbGw6dmFyKC0tY29sb3ItbGluay1wcmltYXJ5LWhvdmVyKX19LmNvbnRlbnQtZWZsVzRZc2UgYTphY3RpdmV7Y29sb3I6dmFyKC0tY29sb3ItbGluay1wcmltYXJ5LWFjdGl2ZSk7ZmlsbDp2YXIoLS1jb2xvci1saW5rLXByaW1hcnktYWN0aXZlKX0uY29udGVudC1lZmxXNFlzZSBhOmZvY3Vze291dGxpbmU6YXV0bztvdXRsaW5lLW9mZnNldDoycHh9LmNvbnRlbnQtZWZsVzRZc2UgYTpmb2N1cy12aXNpYmxle291dGxpbmU6YXV0bztvdXRsaW5lLW9mZnNldDoycHh9LmNvbnRlbnQtZWZsVzRZc2UgYTpmb2N1czpub3QoOmZvY3VzLXZpc2libGUpe291dGxpbmU6bm9uZX0uaW5mby1lZmxXNFlzZXthbGlnbi1pdGVtczpjZW50ZXI7Y29sb3I6dmFyKC0tY29sb3ItY29sZC1ncmF5LTQwMCk7ZGlzcGxheTpmbGV4O2ZvbnQtc2l6ZToxMnB4O2xpbmUtaGVpZ2h0OjE4cHg7d2hpdGUtc3BhY2U6bm93cmFwfS5kYXRlLWVmbFc0WXNle2NvbG9yOnZhcigtLWNvbG9yLWNvbnRlbnQtcHJpbWFyeS1uZXV0cmFsKTtmbGV4LWdyb3c6MTttYXJnaW4taW5saW5lLWVuZDo4cHg7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXN9LmRhdGUtZWZsVzRZc2U6Zmlyc3QtbGV0dGVye3RleHQtdHJhbnNmb3JtOmNhcGl0YWxpemV9LmJ1dHRvbldyYXAtZWZsVzRZc2V7YWxpZ24taXRlbXM6Y2VudGVyO2Rpc3BsYXk6bm9uZTtmbGV4LWdyb3c6MDtnYXA6OHB4O2p1c3RpZnktY29udGVudDpjZW50ZXI7bWFyZ2luLWlubGluZS1zdGFydDphdXRvfS5idXR0b25XcmFwLWVmbFc0WXNlLmZvcmNlVmlzaWJsZS1lZmxXNFlzZXtkaXNwbGF5OmZsZXh9LmJ1dHRvbi1lZmxXNFlzZXtoZWlnaHQ6MThweDt3aWR0aDoxOHB4Oy0tdHYtdG9vbGJhci1leHBsaWNpdC1ob3Zlci1tYXJnaW46LTJweDstLXR2LXRvb2xiYXItZXhwbGljaXQtaG92ZXItYm9yZGVyLXJhZGl1czo0cHg7LS10di1jb2xvci10b29sYmFyLWJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyOnZhcigtLWNvbG9yLWNvbnRhaW5lci1maWxsLXByaW1hcnktbmV1dHJhbC1ub3JtYWwpOy0tdHYtY29sb3ItdG9vbGJhci1idXR0b24tdGV4dDp2YXIoLS1jb2xvci1kZWZhdWx0LWdyYXkpfUBtZWRpYSAoYW55LWhvdmVyOmhvdmVyKXsuYnV0dG9uLWVmbFc0WXNlOmhvdmVyey0tdHYtY29sb3ItdG9vbGJhci1idXR0b24tdGV4dDp2YXIoLS1jb2xvci10b29sYmFyLWJ1dHRvbi10ZXh0KX19LmNoYXJ0UHJldmlldy1lZmxXNFlzZXtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWNvbG9yLWNvbnRyb2wtaW50ZW50LWRlZmF1bHQpO2JvcmRlci1yYWRpdXM6NHB4O2JveC1zaXppbmc6Ym9yZGVyLWJveDtoZWlnaHQ6NzhweDttYXJnaW46MXB4IDFweCAycHg7d2lkdGg6MTE4cHh9QG1lZGlhIChhbnktaG92ZXI6aG92ZXIpey5jaGFydFByZXZpZXctZWZsVzRZc2U6aG92ZXJ7Ym9yZGVyLWNvbG9yOnZhcigtLV8xLXR1OUEpfX0uZHJhd2VySXRlbS1lZmxXNFlzZXtmb250LXNpemU6MTZweDtsaW5lLWhlaWdodDoyNHB4fS5ncm91cERldGFpbGVkLXZ6VVliT04we2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47aGVpZ2h0OjEwMCV9Lmdyb3VwRGV0YWlsZWQtdnpVWWJPTjAuc21hbGxIZWlnaHQtdnpVWWJPTjB7aGVpZ2h0OmNhbGMoMTAwJSAtIDcycHgpfS5pdGVtc0NvbnRhaW5lci12elVZYk9OMHtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uLXJldmVyc2U7ZmxleC1ncm93OjE7b3ZlcmZsb3c6YXV0bztzY3JvbGwtYmVoYXZpb3I6c21vb3RofUBzdXBwb3J0cyAoLW1vei1hcHBlYXJhbmNlOm5vbmUpey5pdGVtc0NvbnRhaW5lci12elVZYk9OMHtzY3JvbGxiYXItY29sb3I6dmFyKC0tdHYtY29sb3Itc2Nyb2xsYmFyLXRodW1iLWJhY2tncm91bmQsdmFyKC0tY29sb3Itc2Nyb2xsLWJnKSkgIzAwMDA7c2Nyb2xsYmFyLXdpZHRoOnRoaW59fS5pdGVtc0NvbnRhaW5lci12elVZYk9OMDo6LXdlYmtpdC1zY3JvbGxiYXJ7aGVpZ2h0OjVweDt3aWR0aDo1cHh9Lml0ZW1zQ29udGFpbmVyLXZ6VVliT04wOjotd2Via2l0LXNjcm9sbGJhci10aHVtYntiYWNrZ3JvdW5kLWNsaXA6Y29udGVudC1ib3g7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS10di1jb2xvci1zY3JvbGxiYXItdGh1bWItYmFja2dyb3VuZCx2YXIoLS1jb2xvci1zY3JvbGwtYmcpKTtib3JkZXI6MXB4IHNvbGlkICMwMDAwO2JvcmRlci1yYWRpdXM6M3B4fS5pdGVtc0NvbnRhaW5lci12elVZYk9OMDo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2t7YmFja2dyb3VuZC1jb2xvcjppbml0aWFsO2JvcmRlci1yYWRpdXM6M3B4fS5pdGVtc0NvbnRhaW5lci12elVZYk9OMDo6LXdlYmtpdC1zY3JvbGxiYXItY29ybmVye2Rpc3BsYXk6bm9uZX0uaXRlbXNDb250YWluZXItdnpVWWJPTjAuZW1wdHktdnpVWWJPTjB7anVzdGlmeS1jb250ZW50OmNlbnRlcn1Ac3VwcG9ydHMgKC1tb3otYXBwZWFyYW5jZTpub25lKXsuaXRlbXNDb250YWluZXItdnpVWWJPTjAuZW1wdHktdnpVWWJPTjB7c2Nyb2xsYmFyLXdpZHRoOm5vbmV9fS5pdGVtc0NvbnRhaW5lci12elVZYk9OMC5lbXB0eS12elVZYk9OMC5zYi1zY3JvbGxiYXItd3JhcHtkaXNwbGF5Om5vbmV9Lml0ZW1zQ29udGFpbmVyLXZ6VVliT04wLmVtcHR5LXZ6VVliT04wOjotd2Via2l0LXNjcm9sbGJhcntkaXNwbGF5Om5vbmU7aGVpZ2h0OjA7d2lkdGg6MH0uaXRlbXNDb250YWluZXItdnpVWWJPTjAuZW1wdHktdnpVWWJPTjA6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iLC5pdGVtc0NvbnRhaW5lci12elVZYk9OMC5lbXB0eS12elVZYk9OMDo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2t7ZGlzcGxheTpub25lfS5pdGVtc0NvbnRhaW5lci12elVZYk9OMC5lbXB0eS12elVZYk9OMDo6LXdlYmtpdC1zY3JvbGxiYXItY29ybmVye2Rpc3BsYXk6bm9uZX0uaXRlbXNXcmFwcGVyLXZ6VVliT04we21hcmdpbi1ib3R0b206YXV0b30uY29udGVudElucHV0LXZ6VVliT04we3BhZGRpbmc6MCAxNnB4IDEycHh9LmlucHV0U2VwYXJhdG9yLXZ6VVliT04we2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItZGl2aWRlcik7aGVpZ2h0OjFweDttYXJnaW4tYm90dG9tOjEycHg7d2lkdGg6MTAwJX0uZW1wdHlTdGF0ZS12elVZYk9OMHtib3gtc2l6aW5nOmJvcmRlci1ib3g7bWluLWhlaWdodDoxMDAlO3BhZGRpbmc6MjRweCAyMHB4IDEwMHB4fS5ncm91cFByZXZpZXctb0RFXzZIbEN7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgdmFyKC0tY29sb3ItYm9yZGVyLXRhYmxlKTtjdXJzb3I6ZGVmYXVsdDtwYWRkaW5nOjhweCAxNnB4fUBtZWRpYSAoYW55LWhvdmVyOmhvdmVyKXsuZ3JvdXBQcmV2aWV3LW9ERV82SGxDOmhvdmVye2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItYmctcHJpbWFyeS1ob3Zlcil9fS5oZWFkZXItb0RFXzZIbEN7YWxpZ24taXRlbXM6Y2VudGVyO2Rpc3BsYXk6ZmxleH0ubG9nb0ljb24tb0RFXzZIbEN7aGVpZ2h0OjE4cHg7bWFyZ2luLWlubGluZS1lbmQ6NHB4O3dpZHRoOjE4cHh9LnRpdGxlLW9ERV82SGxDe2ZvbnQtc2l6ZToxM3B4O2ZvbnQtd2VpZ2h0OjYwMDtsaW5lLWhlaWdodDoyMXB4fS5jb250ZW50LW9ERV82SGxDLC50aXRsZS1vREVfNkhsQ3tjb2xvcjp2YXIoLS1jb2xvci1hY3RpdmUtaG92ZXItdGV4dCk7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXN9LmNvbnRlbnQtb0RFXzZIbEN7ZGlzcGxheTotd2Via2l0LWJveDtmb250LXNpemU6MTRweDt3aGl0ZS1zcGFjZTpwcmUtd3JhcDstd2Via2l0LWxpbmUtY2xhbXA6NDstd2Via2l0LWJveC1vcmllbnQ6dmVydGljYWw7bGluZS1oZWlnaHQ6MjJweDttYXgtaGVpZ2h0Ojg4cHh9LmVtcHR5LW9ERV82SGxDe2NvbG9yOnZhcigtLWNvbG9yLWRlZmF1bHQtZ3JheSl9LmRhdGUtb0RFXzZIbEN7Y29sb3I6dmFyKC0tY29sb3ItY29sZC1ncmF5LTQwMCk7Zm9udC1zaXplOjEycHg7bGluZS1oZWlnaHQ6MThweDt0ZXh0LXRyYW5zZm9ybTpsb3dlcmNhc2V9LmRhdGUtb0RFXzZIbEM6Zmlyc3QtbGV0dGVye3RleHQtdHJhbnNmb3JtOmNhcGl0YWxpemV9LmhlYWRlci1LajVEMHdTRnthbGlnbi1pdGVtczpjZW50ZXI7ZGlzcGxheTpmbGV4O2hlaWdodDozNHB4O3dpZHRoOjEwMCV9LmJhY2tCdG4tS2o1RDB3U0Z7aGVpZ2h0OjM4cHg7bWFyZ2luLWlubGluZS1lbmQ6OHB4O21hcmdpbi1pbmxpbmUtc3RhcnQ6LThweH0uYmFja0J0bi1LajVEMHdTRjpkaXIocnRsKXt0cmFuc2Zvcm06cm90YXRlWSgxODBkZWcpfS5sb2dvSWNvbi1LajVEMHdTRnttYXJnaW4taW5saW5lLWVuZDo4cHh9LnJpZ2h0U2xvdC1LajVEMHdTRnttYXJnaW4taW5saW5lLWVuZDotNXB4O21hcmdpbi1pbmxpbmUtc3RhcnQ6YXV0b30udGV4dC1LajVEMHdTRntjb2xvcjp2YXIoLS1jb2xvci10ZXh0LXByaW1hcnkpO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjYwMDtsaW5lLWhlaWdodDoyMnB4O292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3doaXRlLXNwYWNlOm5vd3JhcH0udGV4dC1LajVEMHdTRi5tb2JpbGUtS2o1RDB3U0Z7Zm9udC1zaXplOjIwcHg7bGluZS1oZWlnaHQ6MjRweH0uaGVhZGVyLXMzMzFrUkpTe2FsaWduLWl0ZW1zOmNlbnRlcjtkaXNwbGF5OmZsZXg7d2lkdGg6MTAwJX0uYmFja0J0bi1zMzMxa1JKU3toZWlnaHQ6MzhweDttYXJnaW4taW5saW5lLWVuZDozcHg7bWFyZ2luLWlubGluZS1zdGFydDotOHB4fS5iYWNrQnRuLXMzMzFrUkpTOmRpcihydGwpe3RyYW5zZm9ybTpyb3RhdGVZKDE4MGRlZyl9LnRleHQtczMzMWtSSlN7Y29sb3I6dmFyKC0tY29sb3ItdGV4dC1wcmltYXJ5KTtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo3MDA7bGluZS1oZWlnaHQ6MjJweH0udGV4dC1zMzMxa1JKUy5tb2JpbGUtczMzMWtSSlN7Zm9udC1zaXplOjIwcHg7bGluZS1oZWlnaHQ6MjRweH0uYnV0dG9uLUUxcTdGbWlle2hlaWdodDozOHB4O21hcmdpbi1pbmxpbmUtZW5kOi0zcHh9LmJ1dHRvbi1FMXE3Rm1pZTpkaXIocnRsKXt0cmFuc2Zvcm06cm90YXRlWSgxODBkZWcpfS5zeW1ib2xOb3Rlcy11MDBRN3Fyd3tkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2hlaWdodDoxMDAlO292ZXJmbG93OmF1dG99QHN1cHBvcnRzICgtbW96LWFwcGVhcmFuY2U6bm9uZSl7LnN5bWJvbE5vdGVzLXUwMFE3cXJ3e3Njcm9sbGJhci1jb2xvcjp2YXIoLS10di1jb2xvci1zY3JvbGxiYXItdGh1bWItYmFja2dyb3VuZCx2YXIoLS1jb2xvci1zY3JvbGwtYmcpKSAjMDAwMDtzY3JvbGxiYXItd2lkdGg6dGhpbn19LnN5bWJvbE5vdGVzLXUwMFE3cXJ3Ojotd2Via2l0LXNjcm9sbGJhcntoZWlnaHQ6NXB4O3dpZHRoOjVweH0uc3ltYm9sTm90ZXMtdTAwUTdxcnc6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1ie2JhY2tncm91bmQtY2xpcDpjb250ZW50LWJveDtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXR2LWNvbG9yLXNjcm9sbGJhci10aHVtYi1iYWNrZ3JvdW5kLHZhcigtLWNvbG9yLXNjcm9sbC1iZykpO2JvcmRlcjoxcHggc29saWQgIzAwMDA7Ym9yZGVyLXJhZGl1czozcHh9LnN5bWJvbE5vdGVzLXUwMFE3cXJ3Ojotd2Via2l0LXNjcm9sbGJhci10cmFja3tiYWNrZ3JvdW5kLWNvbG9yOmluaXRpYWw7Ym9yZGVyLXJhZGl1czozcHh9LnN5bWJvbE5vdGVzLXUwMFE3cXJ3Ojotd2Via2l0LXNjcm9sbGJhci1jb3JuZXJ7ZGlzcGxheTpub25lfS5lbXB0eS11MDBRN3Fyd3ttYXJnaW46YXV0b30="}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/12051.b84be781bb90d457f1df.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:13.904Z","timestamp":1785148033904,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/12051.b84be781bb90d457f1df.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:13 GMT\r\ncontent-type: text/css; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding, Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\netag: W/\"69f98b72-f5c\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Tue, 05 May 2026 06:17:22 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.51\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 05/05/2026 10:16:47\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 67a0657d899fbb0d4e3c8987fc1af6f8\r\ncdn-cache: HIT\r\ncontent-encoding: br\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":3932,"size_decoded":2008,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with very long lines (3932), with no line terminators","md5":"923aec057d9cd07c2b7095d0f0623ab1","sha1":"56133c4d03d776c8b524b16f542979b74c9aabdd","sha256":"c485c2114f00991ad09dc545efb6038c9d6baba075a6b0061cd701a5db18564f","sha512":"5af06adfb2af9bd155bc54b0328570122ab87794daf957844689e7732085ff42a82e33065dc68e14d9a7e075e3f3872b91143d34c8921db369258920f7f9ffe7","ssdeep":"","tlshash":"f6812192b160f1babc6749395fe2b13831109c73c30254bafa51177a8dc1ffa0ae7255","first_seen":"2026-03-31T21:43:22.9655Z","last_seen":"2026-07-27T12:48:39.692084Z","times_seen":558,"resource_available":false,"data":"LmFjdGlvbkJ1dHRvbi1rNTN2ZXhQYXttYXJnaW46MCA2cHg7bWluLXdpZHRoOjB9LmFjdGlvbkJ1dHRvbi1rNTN2ZXhQYTpmaXJzdC1jaGlsZHttYXJnaW4taW5saW5lLWVuZDowfS5hY3Rpb25CdXR0b24tazUzdmV4UGE6bGFzdC1jaGlsZHttYXJnaW4taW5saW5lLXN0YXJ0OjB9LmFjdGlvbkJ1dHRvbi1rNTN2ZXhQYS5zbWFsbC1rNTN2ZXhQYXttYXJnaW46NnB4IDB9LmFjdGlvbkJ1dHRvbi1rNTN2ZXhQYS5zbWFsbC1rNTN2ZXhQYTpmaXJzdC1jaGlsZHttYXJnaW4tdG9wOjB9LmFjdGlvbkJ1dHRvbi1rNTN2ZXhQYS5zbWFsbC1rNTN2ZXhQYTpsYXN0LWNoaWxke21hcmdpbi1ib3R0b206MH0uaGlkZGVuVGl0bGUtazUzdmV4UGF7dmlzaWJpbGl0eTpoaWRkZW59LnBvcHVwRGlhbG9nLUIwMlVVVU4ze21heC1oZWlnaHQ6Y2FsYygxMDAlIC0gMjBweCk7bWF4LXdpZHRoOjQ4MHB4O3dpZHRoOmNhbGMoMTAwJSAtIDIwcHgpfS53cmFwLUIwMlVVVU4ze2N1cnNvcjpkZWZhdWx0O2Rpc3BsYXk6ZmxleDtvdmVyZmxvdzpoaWRkZW59Lm1haW4tQjAyVVVVTjN7Y29sb3I6dmFyKC0tY29sb3ItdG9vbGJhci1pbnRlcmFjdGl2ZS1lbGVtZW50LXRleHQtbm9ybWFsKTtkaXNwbGF5OmZsZXg7ZmxleDoxIDEgYXV0bztmbGV4LWRpcmVjdGlvbjpjb2x1bW47bWFyZ2luLWJsb2NrOjQwcHggNDBweDttYXJnaW4taW5saW5lOjQwcHggMDttaW4td2lkdGg6MH0ubWFpbi1CMDJVVVVOMy5zbWFsbC1CMDJVVVVOM3ttYXJnaW4tYmxvY2s6MjBweCAyMHB4O21hcmdpbi1pbmxpbmU6MjBweCAwfS50aXRsZS1CMDJVVVVOM3tmb250LWZhbWlseTotYXBwbGUtc3lzdGVtLEJsaW5rTWFjU3lzdGVtRm9udCxUcmVidWNoZXQgTVMsUm9ib3RvLFVidW50dSxzYW5zLXNlcmlmO2ZvbnQtZmVhdHVyZS1zZXR0aW5nczoidG51bSIgb24sImxudW0iIG9uO2ZvbnQtc3R5bGU6bm9ybWFsOy0tdWktbGliLXR5cG9ncmFwaHktZm9udC1zaXplOjIwcHg7Zm9udC1zaXplOnZhcigtLXVpLWxpYi10eXBvZ3JhcGh5LWZvbnQtc2l6ZSk7Zm9udC13ZWlnaHQ6NjAwOy0tdWktbGliLXR5cG9ncmFwaHktbGluZS1oZWlnaHQ6MjRweDthbGlnbi1pdGVtczpjZW50ZXI7ZGlzcGxheTpmbGV4O2ZsZXg6bm9uZTtsaW5lLWhlaWdodDp2YXIoLS11aS1saWItdHlwb2dyYXBoeS1saW5lLWhlaWdodCk7bWFyZ2luLWJvdHRvbTo4cHg7d2lkdGg6Y2FsYygxMDAlIC0gOXB4KTt3b3JkLWJyZWFrOmJyZWFrLXdvcmR9LnRpdGxlLUIwMlVVVU4zLnNtYWxsLUIwMlVVVU4ze3dpZHRoOmNhbGMoMTAwJSAtIDI5cHgpfS5jb250ZW50LUIwMlVVVU4ze2ZvbnQtZmFtaWx5Oi1hcHBsZS1zeXN0ZW0sQmxpbmtNYWNTeXN0ZW1Gb250LFRyZWJ1Y2hldCBNUyxSb2JvdG8sVWJ1bnR1LHNhbnMtc2VyaWY7Zm9udC1mZWF0dXJlLXNldHRpbmdzOiJ0bnVtIiBvbiwibG51bSIgb247Zm9udC1zdHlsZTpub3JtYWw7LS11aS1saWItdHlwb2dyYXBoeS1mb250LXNpemU6MTZweDtmb250LXNpemU6dmFyKC0tdWktbGliLXR5cG9ncmFwaHktZm9udC1zaXplKTtmb250LXdlaWdodDo0MDA7LS11aS1saWItdHlwb2dyYXBoeS1saW5lLWhlaWdodDoyNHB4O2Rpc3BsYXk6ZmxleDtmbGV4OjEgMSBhdXRvO2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtsaW5lLWhlaWdodDp2YXIoLS11aS1saWItdHlwb2dyYXBoeS1saW5lLWhlaWdodCk7bWluLWhlaWdodDoxNDVweDtvdmVyZmxvdy14OmhpZGRlbjtvdmVyZmxvdy15OmF1dG87d2hpdGUtc3BhY2U6cHJlLXdyYXA7d29yZC1icmVhazpicmVhay13b3JkOy13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOnRvdWNoO21hcmdpbjowIC00MHB4O21pbi1oZWlnaHQ6MDtwYWRkaW5nOjhweCA0MHB4fUBtZWRpYSAobWF4LWhlaWdodDoyOTBweCl7LmNvbnRlbnQtQjAyVVVVTjN7bWluLWhlaWdodDphdXRvfX1Ac3VwcG9ydHMgKC1tb3otYXBwZWFyYW5jZTpub25lKXsuY29udGVudC1CMDJVVVVOM3tzY3JvbGxiYXItY29sb3I6dmFyKC0tdHYtY29sb3Itc2Nyb2xsYmFyLXRodW1iLWJhY2tncm91bmQsdmFyKC0tY29sb3Itc2Nyb2xsLWJnKSkgIzAwMDA7c2Nyb2xsYmFyLXdpZHRoOnRoaW59fS5jb250ZW50LUIwMlVVVU4zOjotd2Via2l0LXNjcm9sbGJhcntoZWlnaHQ6NXB4O3dpZHRoOjVweH0uY29udGVudC1CMDJVVVVOMzo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWJ7YmFja2dyb3VuZC1jbGlwOmNvbnRlbnQtYm94O2JhY2tncm91bmQtY29sb3I6dmFyKC0tdHYtY29sb3Itc2Nyb2xsYmFyLXRodW1iLWJhY2tncm91bmQsdmFyKC0tY29sb3Itc2Nyb2xsLWJnKSk7Ym9yZGVyOjFweCBzb2xpZCAjMDAwMDtib3JkZXItcmFkaXVzOjNweH0uY29udGVudC1CMDJVVVVOMzo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2t7YmFja2dyb3VuZC1jb2xvcjppbml0aWFsO2JvcmRlci1yYWRpdXM6M3B4fS5jb250ZW50LUIwMlVVVU4zOjotd2Via2l0LXNjcm9sbGJhci1jb3JuZXJ7ZGlzcGxheTpub25lfS5jb250ZW50LUIwMlVVVU4zLnNtYWxsLUIwMlVVVU4ze21hcmdpbjowIC0yMHB4O3BhZGRpbmc6OHB4IDIwcHh9LmNvbnRlbnQtQjAyVVVVTjMuaHRtbC1CMDJVVVVOM3tkaXNwbGF5OmJsb2NrfS5jb250ZW50LUIwMlVVVU4zIGE6bm90KC5yZXZpZXdDb250ZW50IGEpLC5jb250ZW50LUIwMlVVVU4zIGE6bm90KC5yZXZpZXdDb250ZW50IGEpOnZpc2l0ZWR7Y29sb3I6dmFyKC0tY29sb3ItbGluay1wcmltYXJ5LWRlZmF1bHQpO2ZpbGw6dmFyKC0tY29sb3ItbGluay1wcmltYXJ5LWRlZmF1bHQpfUBtZWRpYSAoYW55LWhvdmVyOmhvdmVyKXsuY29udGVudC1CMDJVVVVOMyBhOm5vdCgucmV2aWV3Q29udGVudCBhKTpob3Zlcntjb2xvcjp2YXIoLS1jb2xvci1saW5rLXByaW1hcnktaG92ZXIpO2ZpbGw6dmFyKC0tY29sb3ItbGluay1wcmltYXJ5LWhvdmVyKX19LmNvbnRlbnQtQjAyVVVVTjMgYTpub3QoLnJldmlld0NvbnRlbnQgYSk6YWN0aXZle2NvbG9yOnZhcigtLWNvbG9yLWxpbmstcHJpbWFyeS1hY3RpdmUpO2ZpbGw6dmFyKC0tY29sb3ItbGluay1wcmltYXJ5LWFjdGl2ZSl9LmNvbnRlbnQtQjAyVVVVTjMgYTpub3QoLnJldmlld0NvbnRlbnQgYSk6Zm9jdXN7b3V0bGluZTphdXRvO291dGxpbmUtb2Zmc2V0OjJweH0uY29udGVudC1CMDJVVVVOMyBhOm5vdCgucmV2aWV3Q29udGVudCBhKTpmb2N1cy12aXNpYmxle291dGxpbmU6YXV0bztvdXRsaW5lLW9mZnNldDoycHh9LmNvbnRlbnQtQjAyVVVVTjMgYTpub3QoLnJldmlld0NvbnRlbnQgYSk6Zm9jdXM6bm90KDpmb2N1cy12aXNpYmxlKXtvdXRsaW5lOm5vbmV9LmZvb3Rlci1CMDJVVVVOM3tkaXNwbGF5OmZsZXg7ZmxleDpub25lO2ZsZXgtZGlyZWN0aW9uOnJvdy1yZXZlcnNlO2p1c3RpZnktY29udGVudDpmbGV4LXN0YXJ0O21hcmdpbi10b3A6MTZweH0uZm9vdGVyLUIwMlVVVU4zLnNtYWxsLUIwMlVVVU4ze2ZsZXgtZGlyZWN0aW9uOmNvbHVtbn0uY2xvc2UtQjAyVVVVTjN7YWxpZ24taXRlbXM6Y2VudGVyO2JvcmRlci1yYWRpdXM6MnB4O2NvbG9yOnZhcigtLWNvbG9yLXRvb2xiYXItaW50ZXJhY3RpdmUtZWxlbWVudC10ZXh0LW5vcm1hbCk7Y3Vyc29yOmRlZmF1bHQ7ZGlzcGxheTpmbGV4O2ZsZXg6bm9uZTtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO21hcmdpbi1ibG9jazo4cHggMDttYXJnaW4taW5saW5lOi0ycHggOHB4fUBtZWRpYSAoYW55LWhvdmVyOmhvdmVyKXsuY2xvc2UtQjAyVVVVTjM6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1iZy1wcmltYXJ5LWhvdmVyKX19LmNsb3NlLUIwMlVVVU4zLnNtYWxsLUIwMlVVVU4ze21hcmdpbi1pbmxpbmUtc3RhcnQ6LTIycHh9Lm1hcmdpbldpdGhvdXRDbG9zZUJ1dHRvbi1CMDJVVVVOM3ttYXJnaW4taW5saW5lLWVuZDo0MHB4fS5tYXJnaW5XaXRob3V0Q2xvc2VCdXR0b24tQjAyVVVVTjMuc21hbGwtQjAyVVVVTjN7bWFyZ2luLWlubGluZS1lbmQ6MjBweH0="}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/29714.3788c4a33d94536e8cea.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.848Z","timestamp":1785148034848,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/29714.3788c4a33d94536e8cea.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\ncontent-type: text/css; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a4360b8-79a\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Tue, 30 Jun 2026 06:22:48 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.57\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 06/30/2026 11:59:43\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: e90208a29355a203cc4af090efbb91b0\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":1946,"size_decoded":1406,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with very long lines (1946), with no line terminators","md5":"1e55d254d3c549ed09fbef9d90d67361","sha1":"66b63132ba8a3448acc72beed4f9b28b82197dca","sha256":"df2b802352a3be0619a755946d3f1599372ea7d8636085852b72f10d6cf4a1d5","sha512":"31a3ef57e43edf375774b033684f78677ec9a5404af340f260cebd493b93494acd9c6022ca2a3db78a8f1b94b2ffcc4c0108c6ba1057abe2f34674a063e11802","ssdeep":"","tlshash":"0041cb8ce100f62b760f6e6e830ac22d9239f861e7001b7af566d11544cabc265f3928","first_seen":"2026-07-04T06:34:19.548733Z","last_seen":"2026-07-27T10:28:13.992237Z","times_seen":13,"resource_available":false,"data":"Lm5vdGVzQnRuLXRKXzJRcXloLC53cmFwLXowM0d4UG9Te2FsaWduLWl0ZW1zOmNlbnRlcjtkaXNwbGF5OmZsZXg7aGVpZ2h0OjM4cHg7anVzdGlmeS1jb250ZW50OmNlbnRlcjt3aWR0aDozOHB4fS5jaGVja2JveC16MDNHeFBvU3tjb2xvcjp2YXIoLS10di1jb2xvci1wb3B1cC1lbGVtZW50LXRleHQsdmFyKC0tY29sb3ItcG9wdXAtZWxlbWVudC10ZXh0KSk7ZGlzcGxheTpmbGV4O2hlaWdodDozMnB4O3BhZGRpbmc6MCAxMnB4fS5jaGVja2JveC16MDNHeFBvUy5ob3ZlcmVkLXowM0d4UG9TLC5jaGVja2JveC16MDNHeFBvUzphY3RpdmV7Y29sb3I6dmFyKC0tdHYtY29sb3ItcG9wdXAtZWxlbWVudC10ZXh0LWhvdmVyLHZhcigtLWNvbG9yLXBvcHVwLWVsZW1lbnQtdGV4dC1ob3ZlcikpfUBtZWRpYSAoYW55LWhvdmVyOmhvdmVyKXsuY2hlY2tib3gtejAzR3hQb1M6aG92ZXJ7Y29sb3I6dmFyKC0tdHYtY29sb3ItcG9wdXAtZWxlbWVudC10ZXh0LWhvdmVyLHZhcigtLWNvbG9yLXBvcHVwLWVsZW1lbnQtdGV4dC1ob3ZlcikpfX0uY2hlY2tib3gtejAzR3hQb1MuaG92ZXJlZC16MDNHeFBvU3tiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXR2LWNvbG9yLXBvcHVwLWVsZW1lbnQtYmFja2dyb3VuZC1ob3Zlcix2YXIoLS1jb2xvci1wb3B1cC1lbGVtZW50LWJhY2tncm91bmQtaG92ZXIpKX1AbWVkaWEgKGFueS1ob3Zlcjpob3Zlcil7LmNoZWNrYm94LXowM0d4UG9TOmhvdmVye2JhY2tncm91bmQtY29sb3I6dmFyKC0tdHYtY29sb3ItcG9wdXAtZWxlbWVudC1iYWNrZ3JvdW5kLWhvdmVyLHZhcigtLWNvbG9yLXBvcHVwLWVsZW1lbnQtYmFja2dyb3VuZC1ob3ZlcikpfX0uY2hlY2tib3gtejAzR3hQb1M6YWN0aXZle2JhY2tncm91bmQtY29sb3I6dmFyKC0tdHYtY29sb3ItcG9wdXAtZWxlbWVudC1iYWNrZ3JvdW5kLWhvdmVyLHZhcigtLWNvbG9yLWNvbnRhaW5lci1maWxsLXByaW1hcnktbmV1dHJhbC1saWdodCkpfVtkYXRhLXRoZW1lPWRhcmtdLFtkYXRhLXRoZW1lPWxpZ2h0XXstLV8wLXJQU0Y6IzAwMDB9LndyYXAtcGlyWFBfcmN7YWxpZ24taXRlbXM6Y2VudGVyO2Rpc3BsYXk6ZmxleDtoZWlnaHQ6MzhweDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3dpZHRoOjM4cHh9LndyYXAtcGlyWFBfcmMuZGlzYWJsZWQtcGlyWFBfcmN7b3BhY2l0eTouM30ud3JhcC1waXJYUF9yYy5kaXNhYmxlZC1waXJYUF9yYywud3JhcC1waXJYUF9yYy5kaXNhYmxlZC1waXJYUF9yYzphY3RpdmUsLndyYXAtcGlyWFBfcmMuZGlzYWJsZWQtcGlyWFBfcmM6YmVmb3Jle2JhY2tncm91bmQtY29sb3I6dmFyKC0tXzAtclBTRil9QG1lZGlhIChhbnktaG92ZXI6aG92ZXIpey53cmFwLXBpclhQX3JjLmRpc2FibGVkLXBpclhQX3JjOmhvdmVye2JhY2tncm91bmQtY29sb3I6dmFyKC0tXzAtclBTRil9fVtkYXRhLXRoZW1lPWxpZ2h0XXstLV8wLUx3bEw6dmFyKC0tY29sb3ItY29sZC1ncmF5LTkwMCl9W2RhdGEtdGhlbWU9ZGFya117LS1fMC1Md2xMOnZhcigtLWNvbG9yLWNvbGQtZ3JheS0yMDApfS5jb250YWluZXItdGNhRzdpaVd7YWxpZ24taXRlbXM6Y2VudGVyO2JveC1zaXppbmc6Ym9yZGVyLWJveDtjdXJzb3I6ZGVmYXVsdDtkaXNwbGF5OmZsZXg7cGFkZGluZzoxMnB4IDA7d2lkdGg6MTAwJX0udGl0bGUtdGNhRzdpaVd7Y29sb3I6dmFyKC0tXzAtTHdsTCk7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NjAwO21hcmdpbi1pbmxpbmUtZW5kOjE2cHg7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO3doaXRlLXNwYWNlOm5vd3JhcH0uZ3JvdXBXcmFwLXRjYUc3aWlXe2FsaWduLWl0ZW1zOmNlbnRlcjtkaXNwbGF5OmZsZXg7bWFyZ2luLWlubGluZS1zdGFydDphdXRvfS5ncm91cFdyYXAtdGNhRzdpaVcuaGFzRGlzYWJsZWRTZXQtdGNhRzdpaVd7bWFyZ2luLWlubGluZS1lbmQ6LThweH0="}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/38086.990b013ae325a9b5099a.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.021Z","timestamp":1785148034021,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/38086.990b013ae325a9b5099a.js HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a61b1a8-6d8f\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Thu, 23 Jul 2026 06:16:08 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/23/2026 10:17:28\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 3f1671a69bd0b8c43207b354c7e79a12\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":28047,"size_decoded":11848,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (3070)","md5":"12ee02cfd5ac5d5c313f3b01d8594d67","sha1":"9c5481266cf5613714714c6a1caf5e0a00d5a0fa","sha256":"e2c24b1c51c27795031a14e1f510e609acbee7e60d594e70c12b5bfe7331c5ea","sha512":"51808078a6bf5ec8b0ca47b4202cadc45f1ae8a112e67afadb66128b8145adb8f9cde349c93857081db86695e5c591f1407f80c3263466fcde7e098c4fdf3665","ssdeep":"768:/i1CR3M0b4wuYONncOogxxuaGy9yLsxtMgDA184HYtae6IkykW7FTSjtwgIlbSUr:CiM08weNcfgVmgxtMQu84HytLkyPTS5m","tlshash":"6ec23bd470a1a0ce12d206ddc17e9550e37b795cbc198e64f4a8ccee749e64a7338b6c","first_seen":"2026-07-23T14:00:31.722877Z","last_seen":"2026-07-27T12:48:39.614512Z","times_seen":102,"resource_available":true,"data":"KHNlbGYud2VicGFja0NodW5rdHJhZGluZ3ZpZXc9c2VsZi53ZWJwYWNrQ2h1bmt0cmFkaW5ndmlld3x8W10pLnB1c2goW1szODA4Nl0sezI0NzE4OShlKXtlLmV4cG9ydHM9e3NlcGFyYXRvcjoic2VwYXJhdG9yLXdzTnlQOWUyIixzbWFsbDoic21hbGwtd3NOeVA5ZTIiLG5vcm1hbDoibm9ybWFsLXdzTnlQOWUyIixsYXJnZToibGFyZ2Utd3NOeVA5ZTIifX0sMzU0MzMxKGUpe2UuZXhwb3J0cz17d3JhcHBlcjoid3JhcHBlci1UeTVPMVdKUSIsZGlyTWF0Y2hpbmc6ImRpck1hdGNoaW5nLVR5NU8xV0pRIn19LDYzNjk4NihlKXtlLmV4cG9ydHM9e2N1c3RvbUxpc3RJdGVtOiJjdXN0b21MaXN0SXRlbS05UTlGSHlybiIsY2xpY2thYmxlOiJjbGlja2FibGUtOVE5Rkh5cm4ifX0sMjEyNjcyKGUpe2UuZXhwb3J0cz17d3JhcHBlcjoid3JhcHBlci1LVWl0c3RwSiIscHJpbWFyeVRpdGxlV3JhcHBlcjoicHJpbWFyeVRpdGxlV3JhcHBlci1LVWl0c3RwSiIsc2Vjb25kYXJ5VGl0bGVXcmFwcGVyOiJzZWNvbmRhcnlUaXRsZVdyYXBwZXItS1VpdHN0cEoiLHRpdGxlOiJ0aXRsZS1LVWl0c3RwSiIsY29udGVudDoiY29udGVudC1LVWl0c3RwSiIsbGVmdDoibGVmdC1LVWl0c3RwSiIsd2l0aExlZnRTbG90OiJ3aXRoTGVmdFNsb3QtS1VpdHN0cEoiLHNwYWNlOiJzcGFjZS1LVWl0c3RwSiIsaWNvbjoiaWNvbi1LVWl0c3RwSiJ9fSwyNDQ1MjUoZSl7ZS5leHBvcnRzPXtsb2FkZXI6ImxvYWRlci1NZ2Y4RUZ3SyIsc3RhdGljOiJzdGF0aWMtTWdmOEVGd0siLGl0ZW06Iml0ZW0tTWdmOEVGd0siLCJ0di1idXR0b24tbG9hZGVyIjoidHYtYnV0dG9uLWxvYWRlci1NZ2Y4RUZ3SyIsbWVkaXVtOiJtZWRpdW0tTWdmOEVGd0siLHNtYWxsOiJzbWFsbC1NZ2Y4RUZ3SyIsYmxhY2s6ImJsYWNrLU1nZjhFRndLIix3aGl0ZToid2hpdGUtTWdmOEVGd0siLGdyYXk6ImdyYXktTWdmOEVGd0siLHByaW1hcnk6InByaW1hcnktTWdmOEVGd0sifX0sNTk5OTcyKGUpe2UuZXhwb3J0cz17YWNjZXNzaWJsZToiYWNjZXNzaWJsZS1LdHFhX1N6UCIsYWN0aXZlOiJhY3RpdmUtS3RxYV9TelAifX0sNTEyMTQ5KGUpe2UuZXhwb3J0cz17aGlkZGVuOiJoaWRkZW4tUjNXaUNPZG4ifX0sNDkxNDgoZSl7ZS5leHBvcnRzPXsidGFibGV0LXNtYWxsLWJyZWFrcG9pbnQiOiIobWF4LXdpZHRoOiA0NDBweCkiLGl0ZW06Iml0ZW0tSmtRWFVsdEEiLHdpdGhJY29uOiJ3aXRoSWNvbi1Ka1FYVWx0QSIsc2hvcnRjdXQ6InNob3J0Y3V0LUprUVhVbHRBIixsb2FkaW5nOiJsb2FkaW5nLUprUVhVbHRBIixpY29uOiJpY29uLUprUVhVbHRBIn19LDYxODY3MihlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtQb3B1cE1lbnVTZXBhcmF0b3I6KCk9Pmx9KTt2YXIgbyxpPW4oNzc5NDc0KSxhPW4oOTE0NDg3KSxyPW4ubihhKSxzPW4oMjQ3MTg5KTtmdW5jdGlvbiBsKGUpe2NvbnN0e3NpemU6dD0ibm9ybWFsIixjbGFzc05hbWU6bixhcmlhSGlkZGVuOm89ITF9PWU7cmV0dXJuIGkuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOnIoKShzLnNlcGFyYXRvciwic21hbGwiPT09dCYmcy5zbWFsbCwibm9ybWFsIj09PXQmJnMubm9ybWFsLCJsYXJnZSI9PT10JiZzLmxhcmdlLG4pLHJvbGU6InNlcGFyYXRvciIsImFyaWEtaGlkZGVuIjpvfSl9IWZ1bmN0aW9uKGUpe2UuU21hbGw9InNtYWxsIixlLkxhcmdlPSJsYXJnZSIsZS5Ob3JtYWw9Im5vcm1hbCJ9KG98fChvPXt9KSl9LDk3MTY1OShlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHt1c2VJc01vdW50ZWQ6KCk9Pml9KTt2YXIgbz1uKDc3OTQ3NCk7Y29uc3QgaT0oKT0+e2NvbnN0IGU9KDAsby51c2VSZWYpKCExKTtyZXR1cm4oMCxvLnVzZUVmZmVjdCkoKCgpPT4oZS5jdXJyZW50PSEwLCgpPT57ZS5jdXJyZW50PSExfSkpLFtdKSxlfX0sNjM4ODcyKGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse1N2Z0ljb25MaXN0SXRlbVBhcnQ6KCk9PnJ9KTt2YXIgbz1uKDc3OTQ3NCksaT1uKDQ1MDgyKSxhPW4oMjE3Mjc0KTtmdW5jdGlvbiByKGUpe2NvbnN0e2ljb25Tdmc6dCxkaXJNYXRjaGluZzpufT1lO3JldHVybiBvLmNyZWF0ZUVsZW1lbnQoaS5XcmFwcGVyLHtkaXJNYXRjaGluZzpufSxvLmNyZWF0ZUVsZW1lbnQoYS5CbG9ja0ljb24se2ljb246dH0pKX19LDQ1MDgyKGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse1dyYXBwZXI6KCk9Pmx9KTt2YXIgbz1uKDc3OTQ3NCksaT1uKDkxNDQ4NyksYT1uLm4oaSkscj1uKDM1NDMzMSkscz1uLm4ocik7ZnVuY3Rpb24gbChlKXtyZXR1cm4gby5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6YSgpKHMoKS53cmFwcGVyLGUuZGlyTWF0Y2hpbmcmJnMoKS5kaXJNYXRjaGluZyksaW5lcnQ6ZS5pbmVydD8idHJ1ZSI6dm9pZCAwfSxlLmNoaWxkcmVuKX19LDg5NjIzNyhlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtDdXN0b21MaXN0SXRlbTooKT0+Y30pO3ZhciBvPW4oNzc5NDc0KSxpPW4oOTE0NDg3KSxhPW4ubihpKSxyPW4oMzQ1MTE2KSxzPW4oNjM2OTg2KSxsPW4ubihzKTtjb25zdCBjPSgwLG8uZm9yd2FyZFJlZikoKChlLHQpPT57Y29uc3R7aWQ6bixjaGlsZHJlbjppLG9uQ2xpY2s6cyxkaXNhYmxlZDpjLGZvY3VzYWJsZTpkLHJvbGU6dSxhcmlhTGFiZWw6aCxhcmlhRXhwYW5kZWQ6cCxhcmlhQ29udHJvbHM6bSxhcmlhSGFzcG9wdXA6dyxhcmlhTGV2ZWw6ZyxkYXRhUWFJZDp2LC4uLmZ9PWUseT0oMCxyLmZpbHRlckNoZWNrZWREYXRhUHJvcHMpKGYpLGI9cz8iYnV0dG9uIjoiZGl2IixDPWR8fHMsRT1jP3ZvaWQgMDpzO3JldHVybiBvLmNyZWF0ZUVsZW1lbnQoYix7aWQ6bixjbGFzc05hbWU6YSgpKGwoKS5jdXN0b21MaXN0SXRlbSxFJiZsKCkuY2xpY2thYmxlKSxvbkNsaWNrOkUsImFyaWEtZGlzYWJsZWQiOmMsImFyaWEtbGFiZWwiOmgsImFyaWEtZXhwYW5kZWQiOnAsImFyaWEtY29udHJvbHMiOm0sImFyaWEtaGFzcG9wdXAiOncsImFyaWEtbGV2ZWwiOmcscm9sZTp1LHRhYkluZGV4OkM/MDp2b2lkIDAscmVmOnQsLi4ueSwiZGF0YS1xYS1pZCI6dn0sby5jcmVhdGVFbGVtZW50KCJkaXYiLHtpbmVydDpjPyJ0cnVlIjp2b2lkIDB9LGkpKX0pKX0sCjkzNTUzNShlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtUaXRsZUxpc3RJdGVtOigpPT5nfSk7dmFyIG8saT1uKDc3OTQ3NCksYT1uKDkxNDQ4Nykscj1uLm4oYSkscz1uKDI3MzMxMCksbD1uKDg1OTA5MSksYz1uKDM0NTExNiksZD1uKDE5NDY0OCksdT1uLm4oZCksaD1uKDU0MzMzOSkscD1uLm4oaCksbT1uKDIxMjY3Miksdz1uLm4obSk7ZnVuY3Rpb24gZyhlKXtjb25zdHtpZDp0LHJvbGU6bixsZWZ0U2xvdDpvLHRpdGxlOmEsb25DbGljazpkLGFyaWFMYWJlbDpoLHJpZ2h0U2xvdDptLHJpZ2h0U2xvdEFyaWFMYWJlbGxlZGJ5OmcsbGlzdEl0ZW1CdXR0b25SZWY6dix2YXJpYW50OmY9InByaW1hcnkiLGFyaWFDb250cm9sczp5LGFyaWFMZXZlbDpiLHRpdGxlSWQ6Qyx3cmFwcGVkOkUsZGF0YVFhSWQ6eCxvbktleURvd246UyxuZXN0ZWRMaXN0c0FyaWFPd25zOkwsbmVzdGVkTGlzdEFyaWFIaWRkZW46XywuLi5rfT1lLFQ9KDAsYy5maWx0ZXJDaGVja2VkRGF0YVByb3BzKShrKSxJPXZvaWQgMCE9PUU7cmV0dXJuIGkuY3JlYXRlRWxlbWVudChsLlRpdGxlU2VjdGlvbkxpc3RJdGVtLHtkYXRhUWFJZDp4LGlkOnQscm9sZTpuLG9uQ2xpY2s6ZCxvbktleURvd246UyxyaWdodFNsb3Q6bSxyaWdodFNsb3RBcmlhTGFiZWxsZWRieTpnLGFyaWFMYWJlbDpoLGNsYXNzTmFtZTpyKCkodygpLndyYXBwZXIsbyYmdygpLndpdGhMZWZ0U2xvdCx3KClbYCR7Zn1UaXRsZVdyYXBwZXJgXSksbGlzdEl0ZW1CdXR0b25SZWY6dixmb2N1c2FibGU6SSxhcmlhRXhwYW5kZWQ6ST8hRTp2b2lkIDAsYXJpYUNvbnRyb2xzOnksYXJpYUxldmVsOmIsbmVzdGVkTGlzdHNBcmlhT3duczpMLG5lc3RlZExpc3RBcmlhSGlkZGVuOl8sLi4uVH0saS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6dygpLmNvbnRlbnR9LG8mJmkuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOncoKS5sZWZ0fSxvKSxpLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTp3KCkudGl0bGUsaWQ6Q30sYSkpLEkmJmkuY3JlYXRlRWxlbWVudChpLkZyYWdtZW50LG51bGwsaS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6dygpLnNwYWNlfSksaS5jcmVhdGVFbGVtZW50KHMuSWNvbix7Y2xhc3NOYW1lOncoKS5pY29uLGljb246RT91KCk6cCgpfSkpKX0hZnVuY3Rpb24oZSl7ZS5QcmltYXJ5PSJwcmltYXJ5IixlLlNlY29uZGFyeT0ic2Vjb25kYXJ5In0ob3x8KG89e30pKX0sODU5MDkxKGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse1RpdGxlU2VjdGlvbkxpc3RJdGVtOigpPT5zfSk7dmFyIG89big3Nzk0NzQpLGk9big4OTYyMzcpLGE9bigxNDc5MDEpLHI9bigzNDUxMTYpO2Z1bmN0aW9uIHMoZSl7Y29uc3R7aWQ6dCxyb2xlOm4sb25DbGljazpzLHJpZ2h0U2xvdDpsLHJpZ2h0U2xvdEFyaWFMYWJlbGxlZGJ5OmMsZm9jdXNhYmxlOmQsYXJpYUV4cGFuZGVkOnUsYXJpYUNvbnRyb2xzOmgsYXJpYUhhc3BvcHVwOnAsYXJpYUxldmVsOm0sYXJpYUxhYmVsOncsY2hpbGRyZW46ZyxjbGFzc05hbWU6dixsaXN0SXRlbUJ1dHRvblJlZjpmLGRhdGFRYUlkOnksb25LZXlEb3duOmIsbmVzdGVkTGlzdHNBcmlhT3duczpDLG5lc3RlZExpc3RBcmlhSGlkZGVuOkUsLi4ueH09ZSxTPSgwLHIuZmlsdGVyQ2hlY2tlZERhdGFQcm9wcykoeCksTD0oMCxvLnVzZUlkKSgpO3JldHVybiBvLmNyZWF0ZUVsZW1lbnQoImRpdiIseyJkYXRhLXFhLWlkIjp5LG9uS2V5RG93bjpifSxvLmNyZWF0ZUVsZW1lbnQoaS5DdXN0b21MaXN0SXRlbSx7aWQ6dCxyb2xlOm4sb25DbGljazpzLGZvY3VzYWJsZTpkfHwhIWwscmVmOmYsYXJpYUV4cGFuZGVkOnU/PyghIWx8fHZvaWQgMCksYXJpYUNvbnRyb2xzOmg/PyhsP0w6dm9pZCAwKSxhcmlhSGFzcG9wdXA6cD8/KGw/Im1lbnUiOnZvaWQgMCksYXJpYUxldmVsOm0sYXJpYUxhYmVsOncsZGF0YVFhSWQ6YCR7YS5VSV9MSUJfREFUQV9RQV9JRF9QUkVGSVh9dGl0bGUtbGlzdC1pdGVtYCwuLi5TfSxvLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTp2fSxnLGwpKSxvLmNyZWF0ZUVsZW1lbnQoImRpdiIse2lkOkwscm9sZToibWVudSIsImFyaWEtbGFiZWxsZWRieSI6YywiYXJpYS1vcmllbnRhdGlvbiI6Imhvcml6b250YWwiLCJhcmlhLW93bnMiOkMsImFyaWEtaGlkZGVuIjpFfSkpfX0sNjQ5MTY2KGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse0xvYWRlcjooKT0+Y30pO3ZhciBvLGk9big3Nzk0NzQpLGE9big5MTQ0ODcpLHI9bi5uKGEpLHM9bigyNDQ1MjUpLGw9bi5uKHMpO2Z1bmN0aW9uIGMoZSl7Y29uc3R7Y2xhc3NOYW1lOnQsc2l6ZTpuPSJtZWRpdW0iLHN0YXRpY1Bvc2l0aW9uOm8sY29sb3I6YT0iYmxhY2sifT1lLHM9cigpKGwoKS5pdGVtLGwoKVthXSxsKClbbl0pO3JldHVybiBpLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6cigpKGwoKS5sb2FkZXIsbyYmbCgpLnN0YXRpYyx0KX0saS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOnN9KSxpLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6c30pLGkuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZTpzfSkpfSFmdW5jdGlvbihlKXtlLk1lZGl1bT0ibWVkaXVtIixlLlNtYWxsPSJzbWFsbCJ9KG98fChvPXt9KSl9LDU4NTQ4KGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse1BvcnRhbDooKT0+YyxQb3J0YWxDb250ZXh0OigpPT5kfSk7dmFyIG89big3Nzk0NzQpLGk9bigxMjkzNjUpLGE9big4NTY3NzApLHI9big5MDM0Mikscz1uKDU3MDE5MyksbD1uKDYwNzgzMik7Y2xhc3MgYyBleHRlbmRzIG8uUHVyZUNvbXBvbmVudHtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5fdXVpZD0oMCxhLm5hbm9pZCkoKX1jb21wb25lbnRXaWxsVW5tb3VudCgpe3RoaXMuX21hbmFnZXIoKS5yZW1vdmVXaW5kb3codGhpcy5fdXVpZCl9cmVuZGVyKCl7Y29uc3QgZT10aGlzLl9tYW5hZ2VyKCkuZW5zdXJlV2luZG93KHRoaXMuX3V1aWQsdGhpcy5wcm9wcy5sYXllck9wdGlvbnMpO2Uuc3R5bGUudG9wPXRoaXMucHJvcHMudG9wfHwiIiwKZS5zdHlsZS5ib3R0b209dGhpcy5wcm9wcy5ib3R0b218fCIiLGUuc3R5bGUubGVmdD10aGlzLnByb3BzLmxlZnR8fCIiLGUuc3R5bGUucmlnaHQ9dGhpcy5wcm9wcy5yaWdodHx8IiIsZS5zdHlsZS5wb2ludGVyRXZlbnRzPXRoaXMucHJvcHMucG9pbnRlckV2ZW50c3x8IiI7Y29uc3QgdD10aGlzLnByb3BzLmNsYXNzTmFtZTtyZXR1cm4gdCYmKCJzdHJpbmciPT10eXBlb2YgdD9lLmNsYXNzTGlzdC5hZGQodCk6ZS5jbGFzc0xpc3QuYWRkKC4uLnQpKSx0aGlzLnByb3BzLnNob3VsZFRyYXBGb2N1cyYmIWUuaGFzQXR0cmlidXRlKHMuRk9DVVNfVFJBUF9EQVRBX0FUVFJJQlVURSkmJmUuc2V0QXR0cmlidXRlKHMuRk9DVVNfVFJBUF9EQVRBX0FUVFJJQlVURSwidHJ1ZSIpLHRoaXMucHJvcHNbImFyaWEtaGlkZGVuIl0mJmUuc2V0QXR0cmlidXRlKCJhcmlhLWhpZGRlbiIsInRydWUiKSxpLmNyZWF0ZVBvcnRhbChvLmNyZWF0ZUVsZW1lbnQoZC5Qcm92aWRlcix7dmFsdWU6dGhpc30sdGhpcy5wcm9wcy5jaGlsZHJlbiksZSl9bW92ZVRvVG9wKCl7dGhpcy5fbWFuYWdlcigpLm1vdmVUb1RvcCh0aGlzLl91dWlkKX1fbWFuYWdlcigpe3JldHVybiBudWxsPT09dGhpcy5jb250ZXh0PygwLHIuZ2V0Um9vdE92ZXJsYXBNYW5hZ2VyKSgpOnRoaXMuY29udGV4dH19Yy5jb250ZXh0VHlwZT1sLlNsb3RDb250ZXh0O2NvbnN0IGQ9by5jcmVhdGVDb250ZXh0KG51bGwpfSw2MDc4MzIoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7U2xvdDooKT0+aSxTbG90Q29udGV4dDooKT0+YX0pO3ZhciBvPW4oNzc5NDc0KTtjbGFzcyBpIGV4dGVuZHMgby5Db21wb25lbnR7c2hvdWxkQ29tcG9uZW50VXBkYXRlKCl7cmV0dXJuITF9cmVuZGVyKCl7cmV0dXJuIG8uY3JlYXRlRWxlbWVudCgiZGl2Iix7c3R5bGU6e3Bvc2l0aW9uOiJmaXhlZCIsekluZGV4OjE1MCxsZWZ0OjAsdG9wOjB9LHJlZjp0aGlzLnByb3BzLnJlZmVyZW5jZX0pfX1jb25zdCBhPW8uY3JlYXRlQ29udGV4dChudWxsKX0sOTAzNDIoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7T3ZlcmxhcE1hbmFnZXI6KCk9PnIsZ2V0Um9vdE92ZXJsYXBNYW5hZ2VyOigpPT5sfSk7dmFyIG89bigxMzg2MzgpLGk9big1NzAxOTMpO2NsYXNzIGF7Y29uc3RydWN0b3IoKXt0aGlzLl9zdG9yYWdlPVtdfWFkZChlKXt0aGlzLl9zdG9yYWdlLnB1c2goZSl9cmVtb3ZlKGUpe3RoaXMuX3N0b3JhZ2U9dGhpcy5fc3RvcmFnZS5maWx0ZXIoKHQ9PmUhPT10KSl9aGFzKGUpe3JldHVybiB0aGlzLl9zdG9yYWdlLmluY2x1ZGVzKGUpfWdldEl0ZW1zKCl7cmV0dXJuIHRoaXMuX3N0b3JhZ2V9fWNsYXNzIHJ7Y29uc3RydWN0b3IoZT1kb2N1bWVudCl7dGhpcy5fc3RvcmFnZT1uZXcgYSx0aGlzLl93aW5kb3dzPW5ldyBNYXAsdGhpcy5faW5kZXg9MCx0aGlzLl9kb2N1bWVudD1lLHRoaXMuX2NvbnRhaW5lcj1lLmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKX1zZXRDb250YWluZXIoZSl7Y29uc3QgdD10aGlzLl9jb250YWluZXIsbj1udWxsPT09ZT90aGlzLl9kb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCk6ZTshZnVuY3Rpb24oZSx0KXtBcnJheS5mcm9tKGUuY2hpbGROb2RlcykuZm9yRWFjaCgoZT0+e2Uubm9kZVR5cGU9PT1Ob2RlLkVMRU1FTlRfTk9ERSYmdC5hcHBlbmRDaGlsZChlKX0pKX0odCxuKSx0aGlzLl9jb250YWluZXI9bn1yZWdpc3RlcldpbmRvdyhlKXt0aGlzLl9zdG9yYWdlLmhhcyhlKXx8dGhpcy5fc3RvcmFnZS5hZGQoZSl9ZW5zdXJlV2luZG93KGUsdD17cG9zaXRpb246ImZpeGVkIixkaXJlY3Rpb246Im5vcm1hbCJ9KXtjb25zdCBuPXRoaXMuX3dpbmRvd3MuZ2V0KGUpO2lmKHZvaWQgMCE9PW4pcmV0dXJuIG47dGhpcy5yZWdpc3RlcldpbmRvdyhlKTtjb25zdCBvPXRoaXMuX2RvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2lmKG8uc3R5bGUucG9zaXRpb249dC5wb3NpdGlvbixvLnN0eWxlLnpJbmRleD10aGlzLl9pbmRleC50b1N0cmluZygpLG8uZGF0YXNldC5pZD1lLHZvaWQgMCE9PXQuaW5kZXgpe2NvbnN0IGU9dGhpcy5fY29udGFpbmVyLmNoaWxkTm9kZXMubGVuZ3RoO2lmKHQuaW5kZXg+PWUpdGhpcy5fY29udGFpbmVyLmFwcGVuZENoaWxkKG8pO2Vsc2UgaWYodC5pbmRleDw9MCl0aGlzLl9jb250YWluZXIuaW5zZXJ0QmVmb3JlKG8sdGhpcy5fY29udGFpbmVyLmZpcnN0Q2hpbGQpO2Vsc2V7Y29uc3QgZT10aGlzLl9jb250YWluZXIuY2hpbGROb2Rlc1t0LmluZGV4XTt0aGlzLl9jb250YWluZXIuaW5zZXJ0QmVmb3JlKG8sZSl9fWVsc2UicmV2ZXJzZSI9PT10LmRpcmVjdGlvbj90aGlzLl9jb250YWluZXIuaW5zZXJ0QmVmb3JlKG8sdGhpcy5fY29udGFpbmVyLmZpcnN0Q2hpbGQpOnRoaXMuX2NvbnRhaW5lci5hcHBlbmRDaGlsZChvKTtyZXR1cm4gdGhpcy5fd2luZG93cy5zZXQoZSxvKSwrK3RoaXMuX2luZGV4LG99dW5yZWdpc3RlcldpbmRvdyhlKXt0aGlzLl9zdG9yYWdlLnJlbW92ZShlKTtjb25zdCB0PXRoaXMuX3dpbmRvd3MuZ2V0KGUpO3ZvaWQgMCE9PXQmJihudWxsIT09dC5wYXJlbnRFbGVtZW50JiZ0LnBhcmVudEVsZW1lbnQucmVtb3ZlQ2hpbGQodCksdGhpcy5fd2luZG93cy5kZWxldGUoZSkpfWdldFppbmRleChlKXtjb25zdCB0PXRoaXMuZW5zdXJlV2luZG93KGUpO3JldHVybiBwYXJzZUludCh0LnN0eWxlLnpJbmRleHx8IjAiKX1tb3ZlTGFzdFdpbmRvd1RvVG9wKCl7Y29uc3QgZT10aGlzLl9zdG9yYWdlLmdldEl0ZW1zKCksdD1lW2UubGVuZ3RoLTFdO3QmJnRoaXMubW92ZVRvVG9wKHQpfW1vdmVUb1RvcChlKXtpZih0aGlzLmdldFppbmRleChlKSE9PXRoaXMuX2luZGV4KXtjb25zdCB0PXRoaXMuZW5zdXJlV2luZG93KGUpO3RoaXMuX3dpbmRvd3MuZm9yRWFjaCgoKGUsbik9PntlLmhhc0F0dHJpYnV0ZShpLkZPQ1VTX1RSQVBfREFUQV9BVFRSSUJVVEUpJiZlLnNldEF0dHJpYnV0ZShpLkZPQ1VTX1RSQVBfREFUQV9BVFRSSUJVVEUsZT09PXQ/InRydWUiOiJmYWxzZSIpfSkpLHQuc3R5bGUuekluZGV4PSgrK3RoaXMuX2luZGV4KS50b1N0cmluZygpfX1yZW1vdmVXaW5kb3coZSl7CnRoaXMudW5yZWdpc3RlcldpbmRvdyhlKX19Y29uc3Qgcz1uZXcgV2Vha01hcDtmdW5jdGlvbiBsKGU9ZG9jdW1lbnQpe2NvbnN0IHQ9ZS5nZXRFbGVtZW50QnlJZCgib3ZlcmxhcC1tYW5hZ2VyLXJvb3QiKTtpZihudWxsIT09dClyZXR1cm4oMCxvLmVuc3VyZURlZmluZWQpKHMuZ2V0KHQpKTt7Y29uc3QgdD1uZXcgcihlKSxuPWZ1bmN0aW9uKGUpe2NvbnN0IHQ9ZS5jcmVhdGVFbGVtZW50KCJkaXYiKTtyZXR1cm4gdC5zdHlsZS5wb3NpdGlvbj0iYWJzb2x1dGUiLHQuc3R5bGUuekluZGV4PTE1MC4udG9TdHJpbmcoKSx0LnN0eWxlLnRvcD0iMHB4Iix0LnN0eWxlLmxlZnQ9IjBweCIsdC5pZD0ib3ZlcmxhcC1tYW5hZ2VyLXJvb3QiLHQuZGF0YXNldC5xYUlkPSJvdmVybGFwLW1hbmFnZXItcm9vdCIsdH0oZSk7cmV0dXJuIHMuc2V0KG4sdCksdC5zZXRDb250YWluZXIobiksZS5ib2R5LmFwcGVuZENoaWxkKG4pLHR9fXZhciBjOyFmdW5jdGlvbihlKXtlW2UuQmFzZVppbmRleD0xNTBdPSJCYXNlWmluZGV4In0oY3x8KGM9e30pKX0sNTY1NzQ1KGUsdCxuKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbyhlKXtyZXR1cm4gbnVsbCE9ZX1uLmQodCx7aXNFeGlzdGVudDooKT0+b30pfSw4NTAxMDgoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7QWNjZXNzaWJsZU1lbnVJdGVtOigpPT5ofSk7dmFyIG89big3Nzk0NzQpLGk9big5MTQ0ODcpLGE9bi5uKGkpLHI9bigyMzU3MjQpLHM9bigxODIzMDgpLGw9bigzODY5MzEpLGM9bigxNTM3MzQpO2Z1bmN0aW9uIGQoZSl7Y29uc3R7dHJhY2tFdmVudE9iamVjdDp0LHRyYWNrUmlnaHRDbGljazpuLHRyYWNrTW91c2VXaGVlbENsaWNrOmksb25DbGljazphLG9uQ29udGV4dE1lbnU6cixvbk1vdXNlVXA6cyxsaW5rOmQsLi4udX09ZTtyZXR1cm4gby5jcmVhdGVFbGVtZW50KGMuUG9wdXBNZW51SXRlbSx7Li4udSxsaW5rOmQsb25DbGljazpmdW5jdGlvbihlLG4pe3QmJigwLGwudHJhY2tFdmVudCkodC5jYXRlZ29yeSx0LmV2ZW50LHQubGFiZWwpLGEmJmEoZSxuKX0sb25Db250ZXh0TWVudTpmdW5jdGlvbihlKXt0JiZuJiYoMCxsLnRyYWNrRXZlbnQpKHQuY2F0ZWdvcnksdC5ldmVudCxgJHt0LmxhYmVsfV9yaWdodENsaWNrYCksciYmcihlKX0sb25Nb3VzZVVwOmZ1bmN0aW9uKGUpe2lmKDE9PT1lLmJ1dHRvbiYmZCYmdCl7bGV0IGU9dC5sYWJlbDtpJiYoZSs9Il9tb3VzZVdoZWVsQ2xpY2siKSwoMCxsLnRyYWNrRXZlbnQpKHQuY2F0ZWdvcnksdC5ldmVudCxlKX1zJiZzKGUpfX0pfXZhciB1PW4oNTk5OTcyKTtmdW5jdGlvbiBoKGUpe2NvbnN0e2NsYXNzTmFtZTp0LHJlZmVyZW5jZTpuLC4uLml9PWUsW2wsY109KDAscy51c2VSb3ZpbmdUYWJpbmRleEVsZW1lbnQpKG4/P251bGwpO3JldHVybiBvLmNyZWF0ZUVsZW1lbnQoZCx7Li4uaSxjbGFzc05hbWU6YSgpKHUuYWNjZXNzaWJsZSxlLmlzQWN0aXZlJiZ1LmFjdGl2ZSx0KSxyZWZlcmVuY2U6bCx0YWJJbmRleDpjLG9uS2V5RG93bjpmdW5jdGlvbihlKXtpZihlLnRhcmdldCE9PWUuY3VycmVudFRhcmdldClyZXR1cm47Y29uc3QgdD0oMCxyLmhhc2hGcm9tRXZlbnQpKGUpOzEzIT09dCYmMzIhPT10fHwoZS5wcmV2ZW50RGVmYXVsdCgpLGwuY3VycmVudCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50JiZsLmN1cnJlbnQuY2xpY2soKSl9LCJkYXRhLXJvbGUiOiJtZW51aXRlbSIsImFyaWEtZGlzYWJsZWQiOmUuaXNEaXNhYmxlZHx8ZVsiYXJpYS1kaXNhYmxlZCJdLHRvb2xib3hSb2xlOiJ0b29sYmFyIn0pfX0sMzI1MDAoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7dXNlQ2xpZW50U25hcHNob3Q6KCk9Pmx9KTt2YXIgbz1uKDc3OTQ3NCksaT1uKDU1NzA2NSksYT1uKDE1MDY2NSkscj1uKDIwNzk3KSxzPW4oMTc5NzcxKTtmdW5jdGlvbiBsKGUpe2NvbnN0W3Qsbl09KDAsby51c2VTdGF0ZSkoITEpO2xldCBsPW51bGw7Y29uc3QgYz0oMCxvLnVzZUNhbGxiYWNrKSgoYXN5bmMoKT0+e2NvbnN0IHQ9ZSgpLG49dC50aGVuKChlPT5uZXcgUHJvbWlzZSgodD0+ZS5jYW52YXMudG9CbG9iKChlPT57bnVsbCE9PWUmJnQoZSl9KSkpKSkpO3RyeXthd2FpdCgwLGkud3JpdGVQcm9taXNlVXNpbmdBcGkpKG4sImltYWdlL3BuZyIpLHMuZW1pdCgib25DbGllbnRTY3JlZW5zaG90Q29waWVkVG9DbGlwYm9hcmQiKX1jYXRjaChlKXtjb25zdHtjYW52YXM6bn09YXdhaXQgdDt3aW5kb3cub3BlbigpPy5kb2N1bWVudC53cml0ZShgPGltZyB3aWR0aD0iMTAwJSIgc3JjPSIke24udG9EYXRhVVJMKCl9Ii8+YCl9fSksW2VdKSxkPSgwLG8udXNlQ2FsbGJhY2spKChhc3luYygpPT57Y29uc3QgdD1hd2FpdCBlKCksbj1hd2FpdCBmdW5jdGlvbihlKXtyZXR1cm4gbmV3IFByb21pc2UoKHQ9Pnt0cnl7ZS5jYW52YXMudG9CbG9iKChlPT57aWYobnVsbD09PWUpdGhyb3cgbmV3IEVycm9yKCJVbmFibGUgdG8gZ2VuZXJhdGUgYmxvYiIpO3QoVVJMLmNyZWF0ZU9iamVjdFVSTChlKSl9KSl9Y2F0Y2h7dChlLmNhbnZhcy50b0RhdGFVUkwoKSl9fSkpfSh0KTtuJiYoMCxhLmRvd25sb2FkRmlsZSkoYCR7dC5uYW1lfS5wbmdgLG4pfSksW2VdKTtyZXR1cm4gbD0oMCxvLnVzZUNhbGxiYWNrKSgoYXN5bmMoKT0+e24oITApO2NvbnN0IHQ9YXdhaXQgZSgpLG89YXdhaXQoMCxyLmxvYWRTeW1waG9ueUNvbW11bmljYXRpb25DaGFubmVsKSgpO28mJmF3YWl0IG8uc2hhcmVTY3JlZW5zaG90KHQpLG4oITEpfSksW2VdKSx7Y29weVNuYXBzaG90VG9DbGlwYm9hcmQ6Yyxkb3dubG9hZFNuYXBzaG90OmQsc2hhcmVTeW1waG9ueTpsLHN5bXBob255TG9hZGluZzp0fX19LDMyNzQ0MChlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHt1c2VTZXJ2ZXJTbmFwc2hvdDooKT0+bX0pO3ZhciBvPW4oNzc5NDc0KSxpPW4oNTU3MDY1KSxhPW4oOTcxNjU5KSxyPW4oMjc2MDE5KSxzPW4oOTU1MzUzKSxsPW4oNzg3NDIpLGM9bigzMjA1NSksZD1uKDk4Nzc5OCksdT1uKDkxMTMyNyksaD1uKDE3OTc3MSkscD1uKDE2ODQ3MSk7ZnVuY3Rpb24gbShlKXtjb25zdFt0LG5dPSgwLG8udXNlU3RhdGUpKCExKSxbcCxtXT0oMCxvLnVzZVN0YXRlKSghMSksW2csdl09KDAsCm8udXNlU3RhdGUpKCExKSxbZix5XT0oMCxvLnVzZVN0YXRlKSghMSksYj0oMCxhLnVzZUlzTW91bnRlZCkoKTtyZXR1cm57dGFrZVNuYXBzaG90OigwLG8udXNlQ2FsbGJhY2spKChhc3luYyh0PSExKT0+e2NvbnN0IG89ZSgpO3RyeXtpZih0KW0oITApLGF3YWl0IHcobyk7ZWxzZXtuKCEwKTtjb25zdCBlPW8udGhlbigoZT0+bmV3IEJsb2IoW2UuaW1hZ2VVcmxdLHt0eXBlOiJ0ZXh0L3BsYWluIn0pKSk7YXdhaXQoMCxpLndyaXRlUHJvbWlzZVVzaW5nQXBpKShlLCJ0ZXh0L3BsYWluIiksaC5lbWl0KCJvblNlcnZlclNjcmVlbnNob3RDb3BpZWRUb0NsaXBib2FyZCIpfX1jYXRjaChlKXthd2FpdCB3KG8pfWZpbmFsbHl7Yi5jdXJyZW50JiYobSghMSksbighMSksKDAsci5nbG9iYWxDbG9zZU1lbnUpKCkpfX0pLFtlXSksdGFrZVNuYXBzaG90RW1iZWRDb2RlOigwLG8udXNlQ2FsbGJhY2spKChhc3luYygpPT57dighMCk7Y29uc3QgdD1lKCk7dHJ5e2NvbnN0IGU9NzIwLG49dC50aGVuKChhc3luYyB0PT57aWYoIXQuc3ltYm9sKXRocm93IG5ldyBFcnJvcigiU3ltYm9sIG5vdCBmb3VuZCBpbiBTZXJ2ZXJTbmFwc2hvdFJlc3VsdCIpO2NvbnN0IG49YXdhaXQoMCxjLnNuYXBzaG90ZXIpKCkuZ2V0U25hcHNob3QodC5zeW1ib2wsbmV3IFNldChbImRlc2NyaXB0aW9uIl0pKSxvPSJlcnJvciIhPT1uLnN0YXR1cz9uLnZhbHVlcy5kZXNjcmlwdGlvbjp0LnN5bWJvbCxpPXQuaW1hZ2VVcmwubWF0Y2goL1wveFwvKFswLTlhLXpBLVpdezh9KS8pPy5bMV0/PyIiLGE9KDAsZC5jcmVhdGVTbmFwc2hvdEltYWdlVXJscykoaSk/LnVybDtyZXR1cm4gbmV3IEJsb2IoW2A8aW1nIHdpZHRoPSIke2V9IiBsb2FkaW5nPSJsYXp5IiBzcmM9IiR7YX0iLz48cD48YSBocmVmPSJodHRwczovL3d3dy50cmFkaW5ndmlldy5jb20keygwLHUuZ2V0U3ltYm9sUGFnZVBhdGgpKHtzaG9ydE5hbWU6dC5zeW1ib2x9KX0iPiR7b30gY2hhcnQ8L2E+IGJ5IFRyYWRpbmdWaWV3PC9wPmBdLHt0eXBlOiJ0ZXh0L3BsYWluIn0pfSkpO2F3YWl0KDAsaS53cml0ZVByb21pc2VVc2luZ0FwaSkobiwidGV4dC9wbGFpbiIpLGguZW1pdCgib25TZXJ2ZXJTY3JlZW5zaG90RW1iZWRDb2RlQ29waWVkVG9DbGlwYm9hcmQiKX1jYXRjaChlKXthd2FpdCB3KHQpfWZpbmFsbHl7Yi5jdXJyZW50JiYodighMSksKDAsci5nbG9iYWxDbG9zZU1lbnUpKCkpfX0pLFtlXSksc2hhcmVTbmFwc2hvdDooMCxvLnVzZUNhbGxiYWNrKSgoYXN5bmMgdD0+e3koITApO2NvbnN0IG49KDAsbC5jcmVhdGVTaGFyZVdpbmRvdykoKSxvPWF3YWl0IGUoKTtpZih0KW4ubG9jYXRpb24uaHJlZj1zLlR3aXR0ZXIuY3JlYXRlVHdpdHRlckhyZWZXaXRoQ3VzdG9tVGV4dCh0LG8uaW1hZ2VVcmwpO2Vsc2V7aWYoIW8uc3ltYm9sKXJldHVybiB2b2lkIHkoITEpO3tjb25zdCBlPSJjbWUiPT09d2luZG93LlRyYWRpbmdWaWV3LndpZGdldEN1c3RvbWVyO24ubG9jYXRpb24uaHJlZj1zLlR3aXR0ZXIuY3JlYXRlVHdpdHRlckhyZWZCeVN5bWJvbChvLnN5bWJvbCxvLmltYWdlVXJsLGUpfX1iLmN1cnJlbnQmJih5KCExKSwoMCxyLmdsb2JhbENsb3NlTWVudSkoKSl9KSxbZV0pLGNvcHlMaW5rTG9hZGluZzp0LG5ld1RhYkxvYWRpbmc6cCxlbWJlZENvZGVMb2FkaW5nOmcsdHdlZXRMb2FkaW5nOmZ9fWFzeW5jIGZ1bmN0aW9uIHcoZSl7cmV0dXJuKDAscC5hc3luY1dpbmRvd09wZW4pKGUudGhlbigoZT0+ZS5pbWFnZVVybCkpKX19LDc1NDE4MChlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtMYWJlbFdpdGhMb2FkZXI6KCk9Pmx9KTt2YXIgbz1uKDc3OTQ3NCksaT1uKDkxNDQ4NyksYT1uLm4oaSkscj1uKDY0OTE2Nikscz1uKDUxMjE0OSk7ZnVuY3Rpb24gbChlKXtjb25zdCB0PWEoKShlLmlzTG9hZGluZyYmcy5oaWRkZW4pLG49YSgpKCFlLmlzTG9hZGluZyYmcy5oaWRkZW4pO3JldHVybiBvLmNyZWF0ZUVsZW1lbnQoImRpdiIsbnVsbCxvLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6dH0sZS5jaGlsZHJlbiksby5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOm59LG8uY3JlYXRlRWxlbWVudChyLkxvYWRlcixudWxsKSkpfX0sMzMyMzcxKGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse1Rvb2xXaWRnZXRTY3JlZW5zaG90Q29udGVudDooKT0+TX0pO3ZhciBvPW4oNzc5NDc0KSxpPW4oMTg1MjcxKSxhPW4oOTE0NDg3KSxyPW4ubihhKSxzPW4oNjM4ODcyKSxsPW4oNjQ5MTY2KSxjPW4oMjM1NzI0KSxkPW4oMzE4OTc0KSx1PW4oOTMwMjMxKSxoPW4oMTUzNzM0KSxwPW4oMzg3MjMxKSxtPW4oODAwOTE0KSx3PW4oMzEzMTEwKSxnPW4oODUwMTA4KSx2PW4oMTk5MTcyKSxmPW4oMzI1MDApLHk9bigzMjc0NDApLGI9big3NTQxODApLEM9big1NjkzOTgpLEU9big0Nzc3MDApLHg9big3MTkxMyksUz1uKDYyODQyOCksTD1uKDkzNzIxKSxfPW4oNTY5MTI1KSxrPW4oOTY1ODcpLFQ9bigxNDcyMjEpLEk9big0OTE0OCk7Y29uc3QgQT0oMCxwLm1lcmdlVGhlbWVzKShoLkRFRkFVTFRfUE9QVVBfTUVOVV9JVEVNX1RIRU1FLEkpO2Z1bmN0aW9uIE0oZSl7Y29uc3R7c2VydmVyU25hcHNob3Q6dCxjbGllbnRTbmFwc2hvdDphLGhpZGVTaG9ydGN1dHM6cixzZW5kRXZlbnQ6c309ZSx7ZG93bmxvYWRTbmFwc2hvdDpsLGNvcHlTbmFwc2hvdFRvQ2xpcGJvYXJkOmgsc2hhcmVTeW1waG9ueTpwLHN5bXBob255TG9hZGluZzp3fT0oMCxmLnVzZUNsaWVudFNuYXBzaG90KShhKSx7dGFrZVNuYXBzaG90OmcsdGFrZVNuYXBzaG90RW1iZWRDb2RlOmIsc2hhcmVTbmFwc2hvdDpJLG5ld1RhYkxvYWRpbmc6QSxjb3B5TGlua0xvYWRpbmc6TSxlbWJlZENvZGVMb2FkaW5nOlUsdHdlZXRMb2FkaW5nOlJ9PSgwLHkudXNlU2VydmVyU25hcHNob3QpKHQpLFc9aS50KG51bGwse2NvbnRleHQ6InNuYXBzaG90LXRvb2xiYXItdG9vbCJ9LG4oNjY3OTgxKSksJD1be2lkOiJzYXZlLWNoYXJ0LWltYWdlIix0aXRsZTppLnQobnVsbCx7Y29udGV4dDoic25hcHNob3QtdG9vbGJhci10b29sIn0sbigzMzY5OTMpKSxpY29uOl8sCmhvdGtleUhhc2g6cj92b2lkIDA6Yy5Nb2RpZmllcnMuTW9kK2MuTW9kaWZpZXJzLkFsdCs4MyxzaG93OiEwLG9uQ2xpY2s6ZnVuY3Rpb24oKXtsKCkscz8uKCJkb3dubG9hZCIpfX0se2lkOiJjb3B5LWNoYXJ0LWltYWdlIix0aXRsZTppLnQobnVsbCx7Y29udGV4dDoic25hcHNob3QtdG9vbGJhci10b29sIn0sbigxMjQ3NjYpKSxpY29uOkwsaG90a2V5SGFzaDpyP3ZvaWQgMDpjLk1vZGlmaWVycy5Nb2QrYy5Nb2RpZmllcnMuU2hpZnQrODMsc2hvdzohMCxvbkNsaWNrOmZ1bmN0aW9uKCl7aCgpLHM/LigiY29weUltZyIpfX0se2lkOiJjb3B5LWxpbmstdG8tdGhlLWNoYXJ0LWltYWdlIix0aXRsZTppLnQobnVsbCx7Y29udGV4dDoic25hcHNob3QtdG9vbGJhci10b29sIn0sbig0MjI4NzApKSxpY29uOmssbG9hZGluZzpNLGRvbnRDbG9zZVBvcHVwOiEwLGhvdGtleUhhc2g6cj92b2lkIDA6Yy5Nb2RpZmllcnMuQWx0KzgzLHNob3c6Qm9vbGVhbighKDAsZC5vbldpZGdldCkoKSksb25DbGljazooKT0+d2luZG93LnJ1bk9yU2lnbkluKCgoKT0+e2coITEpLHM/LigiY29weUxpbmsiKX0pLHtzb3VyY2U6IkNvcHkgbGluayB0byB0aGUgY2hhcnQgaW1hZ2UifSl9LHtpZDoiY29weS1zbmFwc2hvdF9lbWJlZF9jb2RlIix0aXRsZTppLnQobnVsbCx2b2lkIDAsbigxODYxMjUpKSxpY29uOkUsbG9hZGluZzpVLGRvbnRDbG9zZVBvcHVwOiEwLHNob3c6KDAsQy5pc0ZlYXR1cmVFbmFibGVkKSgiY29weV9zbmFwc2hvdF9lbWJlZF9jb2RlIikmJiEoMCxkLm9uV2lkZ2V0KSgpJiYhKDAsZC5pc1N5bXBob255RW1iZWQpKCksb25DbGljazooKT0+d2luZG93LnJ1bk9yU2lnbkluKCgoKT0+e2IoKX0pLHtzb3VyY2U6IkNvcHkgc25hcHNob3QgZW1iZWQgY29kZSJ9KX0se2lkOiJvcGVuLWltYWdlLWluLW5ldy10YWIiLHRpdGxlOmkudChudWxsLHZvaWQgMCxuKDE0ODg4OSkpLGljb246VCxsb2FkaW5nOkEsZG9udENsb3NlUG9wdXA6ITAsc2hvdzpCb29sZWFuKCEoMCxkLm9uV2lkZ2V0KSgpJiYhKDAsZC5pc1N5bXBob255RW1iZWQpKCkpLG9uQ2xpY2s6KCk9PndpbmRvdy5ydW5PclNpZ25JbigoKCk9PntnKCEwKSxzPy4oIm9wZW5OZXdUYWIiKX0pLHtzb3VyY2U6Ik9wZW4gaW1hZ2UgaW4gbmV3IHRhYiJ9KX0se2lkOiJ0d2VldC1jaGFydC1pbWFnZSIsdGl0bGU6aS50KG51bGwse2NvbnRleHQ6InNuYXBzaG90LXRvb2xiYXItdG9vbCJ9LG4oNTgxODUzKSksaWNvbjpTLGxvYWRpbmc6Uixkb250Q2xvc2VQb3B1cDohMCxzaG93OkJvb2xlYW4oISgwLGQub25XaWRnZXQpKCkmJiEoMCxkLmlzU3ltcGhvbnlFbWJlZCkoKSksb25DbGljazooKT0+d2luZG93LnJ1bk9yU2lnbkluKCgoKT0+e0koKSxzPy4oInR3ZWV0SW1nIil9KSx7c291cmNlOiJUd2VldCBjaGFydCBpbWFnZSJ9KX0se2lkOiJzaGFyZS1zeW1waG9ueS1jaGFydC1pbWFnZSIsdGl0bGU6aS50KG51bGwse2NvbnRleHQ6InNuYXBzaG90LXRvb2xiYXItdG9vbCJ9LG4oNTg1MTI4KSksaWNvbjp4LGxvYWRpbmc6dyxkb250Q2xvc2VQb3B1cDohMCxzaG93OigwLGQuaXNTeW1waG9ueUVtYmVkKSgpLG9uQ2xpY2s6KCk9PnA/LigpfV0uZmlsdGVyKChlPT5lLnNob3cpKS5tYXAoKGU9Pm8uY3JlYXRlRWxlbWVudChQLHtrZXk6ZS5pZCxpdGVtOmV9KSkpO3JldHVybigwLHUuaXNGZWF0dXJlc2V0RW5hYmxlZCkoInNob3dfbmV3X21lbnVfaXRlbXNfaW5fY2hhcnRfbWVudXMiKT9vLmNyZWF0ZUVsZW1lbnQobS5TZWN0aW9uTGlzdEl0ZW0se3RpdGxlOlcsYXJpYUxhYmVsOld9LCQpOm8uY3JlYXRlRWxlbWVudChvLkZyYWdtZW50LG51bGwsby5jcmVhdGVFbGVtZW50KHYuVG9vbFdpZGdldE1lbnVTdW1tYXJ5LG51bGwsVyksJCl9ZnVuY3Rpb24gUCh7aXRlbTplfSl7Y29uc3R7bG9hZGluZzp0LGlkOm4sdGl0bGU6aSxkb250Q2xvc2VQb3B1cDphLGhvdGtleUhhc2g6ZCxvbkNsaWNrOmgsaWNvbjpwfT1lLG09dm9pZCAwIT09ZDtyZXR1cm4oMCx1LmlzRmVhdHVyZXNldEVuYWJsZWQpKCJzaG93X25ld19tZW51X2l0ZW1zX2luX2NoYXJ0X21lbnVzIik/by5jcmVhdGVFbGVtZW50KHcuTWVudUl0ZW0se3JvbGU6InJvdyIsYXJpYUxldmVsOjIsbGVmdFNsb3Q6dD92b2lkIDA6by5jcmVhdGVFbGVtZW50KHMuU3ZnSWNvbkxpc3RJdGVtUGFydCx7aWNvblN2ZzpwfSksb25DbGljazpoLGRvbnRDbG9zZVBvcHVwOmEsZGlzYWJsZWQ6dCx0aXRsZTpvLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtyb2xlOiJncmlkY2VsbCIsImFyaWEtY29sc3BhbiI6dD8zOm0/MToyfSx0P28uY3JlYXRlRWxlbWVudChsLkxvYWRlcixudWxsKTppKSxob3RrZXk6dD92b2lkIDA6ZCxhcmlhTGFiZWw6aSxkYXRhUWFJZDpuLCJkYXRhLXJvbGUiOiJtZW51aXRlbSJ9KTpvLmNyZWF0ZUVsZW1lbnQoZy5BY2Nlc3NpYmxlTWVudUl0ZW0se3JvbGU6InJvdyIsY2xhc3NOYW1lOnIoKSh0JiZJLmxvYWRpbmcpLHNob3J0Y3V0Om0/KDAsYy5odW1hblJlYWRhYmxlSGFzaCkoZCk6dm9pZCAwLGljb246cCxpc0Rpc2FibGVkOnQsb25DbGljazpoLGRvbnRDbG9zZVBvcHVwOmEsZGF0YVFhSWQ6bixsYWJlbDp2b2lkIDAhPT10P28uY3JlYXRlRWxlbWVudChiLkxhYmVsV2l0aExvYWRlcix7aXNMb2FkaW5nOnR9LGkpOmksdGhlbWU6QX0pfX0sMzEzMTEwKGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse01lbnVJdGVtOigpPT5zfSk7dmFyIG89big3Nzk0NzQpLGk9big2Mjg4MjUpLGE9bigxODIzMDgpLHI9bigyNzYwMTkpO2Z1bmN0aW9uIHMoZSl7Y29uc3R7bGlzdEl0ZW1CdXR0b25SZWY6dCxyb2xlOm49Im1lbnVpdGVtIixvbkNsaWNrOnMsZG9udENsb3NlUG9wdXA6bCwuLi5jfT1lLFtkLHVdPSgwLGEudXNlUm92aW5nVGFiaW5kZXhFbGVtZW50KSh0Pz9udWxsKTtyZXR1cm4gby5jcmVhdGVFbGVtZW50KGkuTGlzdEl0ZW0sey4uLmMscm9sZTpuLGxpc3RJdGVtQnV0dG9uUmVmOmQsdGFiSW5kZXg6dSxvbkNsaWNrOmZ1bmN0aW9uKGUpe3M/LihlKSxsfHwoZS5jdXJyZW50VGFyZ2V0LmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJwb3B1cC1tZW51LWNsb3NlLWV2ZW50Iix7YnViYmxlczohMCwKZGV0YWlsOntjbGlja1R5cGU6ZS5uYXRpdmVFdmVudCBpbnN0YW5jZW9mIEtleWJvYXJkRXZlbnQ/ImtleWJvYXJkIjoibW91c2UifX0pKSwoMCxyLmdsb2JhbENsb3NlTWVudSkoKSl9fSl9fSw1Njk2NTIoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7UmVnaXN0cnlQcm92aWRlcjooKT0+bCxyZWdpc3RyeUNvbnRleHRUeXBlOigpPT5kLHVzZVJlZ2lzdHJ5OigpPT5jLHZhbGlkYXRlUmVnaXN0cnk6KCk9PnN9KTt2YXIgbz1uKDc3OTQ3NCksaT1uKDIyMTg5NiksYT1uLm4oaSk7Y29uc3Qgcj1vLmNyZWF0ZUNvbnRleHQoe30pO2Z1bmN0aW9uIHMoZSx0KXthKCkuY2hlY2tQcm9wVHlwZXModCxlLCJjb250ZXh0IiwiUmVnaXN0cnlDb250ZXh0Iil9ZnVuY3Rpb24gbChlKXtjb25zdHt2YWxpZGF0aW9uOnQsdmFsdWU6bn09ZTtyZXR1cm4gcyhuLHQpLG8uY3JlYXRlRWxlbWVudChyLlByb3ZpZGVyLHt2YWx1ZTpufSxlLmNoaWxkcmVuKX1mdW5jdGlvbiBjKGUpe2NvbnN0IHQ9KDAsby51c2VDb250ZXh0KShyKTtyZXR1cm4gcyh0LGUpLHR9ZnVuY3Rpb24gZCgpe3JldHVybiByfX0sODAwOTE0KGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse1NlY3Rpb25MaXN0SXRlbTooKT0+cn0pO3ZhciBvPW4oNzc5NDc0KSxpPW4oOTM1NTM1KSxhPW4oMzQ1MTE2KTtmdW5jdGlvbiByKGUpe2NvbnN0e2lkOnQsdGl0bGU6bixjaGlsZHJlbjpyLGl0ZW1Sb2xlOnMsYXJpYUxhYmVsOmwscmlnaHRTbG90OmMscmlnaHRTbG90QXJpYUxhYmVsbGVkYnk6ZCxvbkNsaWNrOnUsb25LZXlEb3duOmgsaXNXcmFwcGVkOnAsZ3JvdXBSb2xlOm0sYXJpYUxldmVsOncsLi4uZ309ZSx2PSgwLGEuZmlsdGVyQ2hlY2tlZERhdGFQcm9wcykoZyksZj0oMCxvLnVzZUlkKSgpLHk9KDAsby51c2VJZCkoKTtyZXR1cm4gby5jcmVhdGVFbGVtZW50KG8uRnJhZ21lbnQsbnVsbCxvLmNyZWF0ZUVsZW1lbnQoaS5UaXRsZUxpc3RJdGVtLHtpZDp0LHRpdGxlOm4scm9sZTpzLHJpZ2h0U2xvdDpjLHJpZ2h0U2xvdEFyaWFMYWJlbGxlZGJ5OmQsYXJpYUxhYmVsOmwsdmFyaWFudDoic2Vjb25kYXJ5IixhcmlhQ29udHJvbHM6dm9pZCAwIT09cD95OnZvaWQgMCxhcmlhTGV2ZWw6dyx0aXRsZUlkOmYsd3JhcHBlZDpwLG9uQ2xpY2s6dSxvbktleURvd246aCwuLi52fSksby5jcmVhdGVFbGVtZW50KCJkaXYiLHsiYXJpYS1sYWJlbGxlZGJ5IjpmLGlkOnksImFyaWEtaGlkZGVuIjp2b2lkIDAhPT1wP3A6dm9pZCAwLHJvbGU6bX0sIXAmJnIpKX19LDQ5MjY3NyhlLHQsbil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG8oZSl7cmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudChlLnJlcGxhY2UoL1wrL2csIiAiKSkucmVwbGFjZSgvPFwvP1tePl0rKD58JCkvZywiIil9ZnVuY3Rpb24gaShlKXtjb25zdCB0PS8oW14mPV0rKT0/KFteJl0qKS9nLG49e307aWYoIWUpcmV0dXJuIG47bGV0IGk9dC5leGVjKGUpO2Zvcig7aTspbltvKGlbMV0pXT1vKGlbMl0pLGk9dC5leGVjKGUpO3JldHVybiBufWZ1bmN0aW9uIGEoKXtyZXR1cm4gaSh3aW5kb3cubG9jYXRpb24uc2VhcmNoLnN1YnN0cmluZygxKSl9ZnVuY3Rpb24gcigpe2NvbnN0IGU9d2luZG93LmxvY2F0aW9uLmhyZWYuc3BsaXQoIiMiKVswXTt3aW5kb3cuaGlzdG9yeS5yZXBsYWNlU3RhdGUoIiIsZG9jdW1lbnQudGl0bGUsZSl9ZnVuY3Rpb24gcyhlKXtjb25zdCB0PVtdO2Zvcihjb25zdCBuIGluIGUpaWYoZS5oYXNPd25Qcm9wZXJ0eShuKSYmbnVsbCE9ZVtuXSl7Y29uc3Qgbz1lW25dLGk9Im9iamVjdCI9PXR5cGVvZiBvP0pTT04uc3RyaW5naWZ5KG8pOlN0cmluZyhvKTt0LnB1c2goe2tleTpuLHBhaXI6ZW5jb2RlVVJJQ29tcG9uZW50KG4pKyI9IitlbmNvZGVVUklDb21wb25lbnQoaSl9KX1yZXR1cm4gdC5zb3J0KCgoZSx0KT0+ZS5rZXk+dC5rZXk/MTplLmtleTx0LmtleT8tMTowKSkubWFwKChlPT5lLnBhaXIpKS5qb2luKCImIil9bi5kKHQse2NyZWF0ZVVybFBhcmFtczooKT0+cyxnZXRVcmxQYXJhbXM6KCk9PmEscmVtb3ZlSGFzaEZyb21Vcmw6KCk9PnJ9KX0sNzg3NDIoZSx0LG4peyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBvKGU9ImFib3V0OmJsYW5rIix0PSJzbmFwc2hvdF90d2VldCIpe2NvbnN0IG49TWF0aC5yb3VuZChzY3JlZW4ud2lkdGgvMi0yNzUpLG89TWF0aC5yb3VuZChzY3JlZW4uaGVpZ2h0LzItMjEwKTtyZXR1cm4gd2luZG93Lm9wZW4oZSx0LGBzY3JvbGxiYXJzPXllcyxyZXNpemFibGU9eWVzLHRvb2xiYXI9bm8sbG9jYXRpb249eWVzLFxuXHRcdFx0d2lkdGg9NTUwLGhlaWdodD00MjAsXG5cdFx0XHRsZWZ0PSR7bn0sdG9wPSR7b31gKX1uLmQodCx7Y3JlYXRlU2hhcmVXaW5kb3c6KCk9Pm99KX0sOTU1MzUzKGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse1R3aXR0ZXI6KCk9Pm99KTt2YXIgbyxpPW4oNzg3NDIpOyFmdW5jdGlvbihlKXtmdW5jdGlvbiB0KGUsdCxuKXtyZXR1cm4gbj90KyIgZnJvbSBjbWVncm91cC5jb20gdmlhIEB0cmFkaW5ndmlldyAkIitlOmBDaGVjayBvdXQgbXkgIyR7ZX0gYW5hbHlzaXMgb24gQFRyYWRpbmdWaWV3OiAke3R9YH1mdW5jdGlvbiBuKGUsbixvKXtyZXR1cm4iaHR0cHM6Ly90d2l0dGVyLmNvbS9pbnRlbnQvdHdlZXQ/JnRleHQ9IitlbmNvZGVVUklDb21wb25lbnQodChlLG4sbykpfWUuZ2V0U3RhdHVzPXQsZS5zaGFyZVNuYXBzaG90SW5zdGFudGx5PWZ1bmN0aW9uKGUsdCxvKXsoMCxpLmNyZWF0ZVNoYXJlV2luZG93KShuKGUsdCxvKSl9LGUuY3JlYXRlVHdpdHRlckhyZWZXaXRoQ3VzdG9tVGV4dD1mdW5jdGlvbihlLHQpe2NvbnN0IG49ZS5yZXBsYWNlKCJ7dXJsfSIsdCk7cmV0dXJuYGh0dHBzOi8vdHdpdHRlci5jb20vaW50ZW50L3R3ZWV0P3RleHQ9JHtlbmNvZGVVUklDb21wb25lbnQobil9YH0sZS5jcmVhdGVUd2l0dGVySHJlZkJ5U3ltYm9sPW59KG98fChvPXt9KSl9LDE2ODQ3MShlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHthc3luY1dpbmRvd09wZW46KCk9PnN9KTt2YXIgbz1uKDExNzMxMyksaT1uKDMxODk3NCksYT1uKDE4NTI3MSkscj1uKDczODQ1OCk7ZnVuY3Rpb24gcyhlLHQscyl7cmV0dXJuIHdpbmRvdy5UVkR8fCgwLApvLmlzT25Nb2JpbGVBcHBQYWdlKSgiYW55Iil8fCJfc2VsZiI9PT10fHwoMCxpLmlzU3ltcGhvbnlFbWJlZCkoKT9mdW5jdGlvbihlLHQsbil7cmV0dXJuIGUudGhlbigoZT0+e3ZvaWQgMCE9PWUmJm9wZW4oZSx0LG4pfSksKCgpPT57fSkpfShlLHQscyk6YXN5bmMgZnVuY3Rpb24oZSx0LG8pe2NvbnN0IGk9VVJMLmNyZWF0ZU9iamVjdFVSTChuZXcgQmxvYihbYDwhZG9jdHlwZSBodG1sPjxodG1sIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiR7Z2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQpLmJhY2tncm91bmRDb2xvcn0iPjxoZWFkPjxtZXRhIGNoYXJzZXQ9InV0Zi04Ij48dGl0bGU+JHthLnQobnVsbCx2b2lkIDAsbig0MzY1MDQpKX08L3RpdGxlPjwvaGVhZD48Ym9keSBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjoke2dldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuYm9keSkuYmFja2dyb3VuZENvbG9yfSI+PC9ib2R5PjwvaHRtbD5gXSx7dHlwZToidGV4dC9odG1sIn0pKTt0cnl7ci5pc0lPUyYmYXdhaXQgbmV3IFByb21pc2UoKGU9PnNldFRpbWVvdXQoZSkpKTtjb25zdCBuPW9wZW4oaSx0LG8pO2lmKCFuKXRocm93IG5ldyBFcnJvcigiY291bmQgbm90IG9wZW4gYSBuZXcgdGFiIik7Y29uc3QgYT1hd2FpdCBlLmNhdGNoKCgoKT0+e30pKTt2b2lkIDAhPT1hP24ubG9jYXRpb24ucmVwbGFjZShhKTpuLmNsb3NlKCl9ZmluYWxseXtVUkwucmV2b2tlT2JqZWN0VVJMKGkpfX0oZSx0LHMpfX0sOTg3Nzk4KGUsdCxuKXsidXNlIHN0cmljdCI7bi5yKHQpLG4uZCh0LHtjcmVhdGVQdWJsaXNoZWRDaGFydEltYWdlVXJsOigpPT51LGNyZWF0ZVB1Ymxpc2hlZENoYXJ0VXJsOigpPT5jLGNyZWF0ZVNuYXBzaG90SW1hZ2VVcmxzOigpPT5oLGlzU25hcHNob3RVcmw6KCk9PnAscGFyc2VQdWJsaXNoZWRDaGFydFVybDooKT0+ZH0pO3ZhciBvPW4oNDkyMTg2KSxpPW4oMTYwMjk2KTtjb25zdCBhPW5ldyBSZWdFeHAoby51cmxzUmVnRXhwLnB1Ymxpc2hlZENoYXJ0T2xkKSxyPW5ldyBSZWdFeHAoby51cmxzUmVnRXhwLnB1Ymxpc2hlZENoYXJ0KSxzPW5ldyBSZWdFeHAoby51cmxzUmVnRXhwLnB1Ymxpc2hlZFNjcmlwdCksbD1uZXcgUmVnRXhwKG8udXJsc1JlZ0V4cC5pbWFnZVVybCk7ZnVuY3Rpb24gYyhlLHQsbil7aWYoIWV8fCEvWzAtOWEtekEtWl17OH0vLnRlc3QoZSkpcmV0dXJuIiI7aWYoZSYmdCl7cmV0dXJuYC9jaGFydC8ke3R9LyR7ZX0ke24/YC0ke259YDoiIn0vYH1yZXR1cm5gL3YvJHtlfS9gfWZ1bmN0aW9uIGQoZSl7aWYoYS50ZXN0KGUpKXtyZXR1cm57aW1hZ2VfdXJsOihlLm1hdGNoKGEpfHxbXSlbMV19fWlmKHIudGVzdChlKSl7Y29uc3QgdD1lLm1hdGNoKHIpfHxbXTtyZXR1cm57aW1hZ2VfdXJsOnRbMl0sc3ltYm9sOnRbMV0sdGl0bGU6dFszXX19aWYocy50ZXN0KGUpKXtjb25zdCB0PWUubWF0Y2gocyl8fFtdO3JldHVybntpbWFnZV91cmw6dFsxXSx0aXRsZTp0WzJdfX1yZXR1cm4gbC50ZXN0KGUpP3tpbWFnZV91cmw6ZX06e319ZnVuY3Rpb24gdShlKXtpZighZXx8IS9bMC05YS16QS1aXXs4fS8udGVzdChlKSlyZXR1cm4iIjtjb25zdCB0PSgwLGkuZW52aXJvbm1lbnQpKCk7aWYoImJhdHRsZSI9PT10fHwic3RhZ2luZyI9PT10KXtjb25zdCB0PWUuY2hhckF0KDApLnRvTG93ZXJDYXNlKCk7cmV0dXJuYCR7d2luZG93LkFXU19TM19DRE59LyR7dH0vJHtlfS5wbmdgfXJldHVybmAvaS8ke2V9L2B9ZnVuY3Rpb24gaChlKXtpZighZXx8IS9bMC05YS16QS1aXXs4fS8udGVzdChlKSlyZXR1cm4gbnVsbDtjb25zdCB0PSgwLGkuZW52aXJvbm1lbnQpKCk7aWYoImJhdHRsZSI9PT10fHwic3RhZ2luZyI9PT10KXtjb25zdCB0PWUuY2hhckF0KDApLnRvTG93ZXJDYXNlKCksbj1gJHt3aW5kb3cuQVdTX1MzX0NETn0vc25hcHNob3RzLyR7dH1gO3JldHVybntwcmV2aWV3OmAke259LyR7ZX1fdGh1bWIucG5nYCx1cmw6YCR7bn0vJHtlfS5wbmdgfX17Y29uc3QgdD1gJHt3aW5kb3cubG9jYXRpb24ucHJvdG9jb2x9Ly8ke3dpbmRvdy5sb2NhdGlvbi5ob3N0fWA7cmV0dXJue3ByZXZpZXc6YCR7dH0veC8ke2V9L3MvYCx1cmw6YCR7dH0veC8ke2V9L2B9fX1mdW5jdGlvbiBwKGUpe3RyeXtjb25zdCB0PW5ldyBVUkwoZSk7cmV0dXJuL15cL3hcLyhbMC05YS16QS1aXXs4fSlcLz8oPzokfCg/PVtcczssLl0pKVwvPyQvLnRlc3QodC5wYXRobmFtZSl9Y2F0Y2goZSl7cmV0dXJuITF9fX0sNzU0MjQ2KGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse2NvbnZlcnRJbWFnZU5hbWVUb1VybDooKT0+aX0pO3ZhciBvPW4oMTYwMjk2KTtmdW5jdGlvbiBpKGUpe3JldHVybigwLG8uaXNQcm9kKSgpPyJodHRwczovL3d3dy50cmFkaW5ndmlldy5jb20veC8iK2UrIi8iOndpbmRvdy5sb2NhdGlvbi5wcm90b2NvbCsiLy8iK3dpbmRvdy5sb2NhdGlvbi5ob3N0KyIveC8iK2UrIi8ifX0sNDkyMTg2KGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse3VybHNSZWdFeHA6KCk9Pm99KTtjb25zdCBvPXthbWF6b25hd3NMaW5rczoiKD86aHR0cHM6Ly98aHR0cDovLykoczNcXC4oYW1hem9uYXdzfHRyYWRpbmd2aWV3KVxcLmNvbShcXC90cmFkaW5ndmlldyhfc3RhZ2luZyk/KT9cXC9zbmFwc2hvdHMpXFwvKD86XFxTKj8pXFwuKHBuZ3xibXB8anBnfGpwZWcpIixpbWFnZVVybDoiXlswLTlhLXpBLVpdezh9JCIscHVibGlzaGVkQ2hhcnQ6Ii9jaGFydC8oLis/KS8oWzAtOWEtekEtWl17OH0pKD86LShbXi9dKykpPy8/IixwdWJsaXNoZWRDaGFydE9sZDoiL3YvKFswLTlhLXpBLVpdezh9KS8/IixwdWJsaXNoZWRJbWFnZToiLyg/Oml8eCkvKFswLTlhLXpBLVpdezh9KS8/IixwdWJsaXNoZWRTY3JpcHQ6Ii9zY3JpcHQvKFswLTlhLXpBLVpdezh9KSg/Oi0oW14vXSspKT8vPyIsZXh0ZXJuYWxMaW5rczoiKChodHRwOi8vfGh0dHBzOi8vKXwod3d3XFwuKSlbXFx3LlxcLV0rIn19LDI0MTkzNyhlLHQsbil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG8oZSx0KXtjb25zdCBuPXR8fHdpbmRvdy5sb2NhbGV8fCJlbiI7bGV0IG89ZVtuXT9lW25dOmUuZW4KO3JldHVybiBvPSJ0cmFkaW5ndmlldy5jb20iPT09bz8id3d3LnRyYWRpbmd2aWV3LmNvbSI6byxvP2RvY3VtZW50LmxvY2F0aW9uLnByb3RvY29sKyIvLyIrbzoiIn1uLmQodCx7ZGV0ZXJtaW5lQmFzZVVybDooKT0+b30pfSw5NjM5MDAoZSx0LG4peyJ1c2Ugc3RyaWN0Ijt2YXIgbzshZnVuY3Rpb24oZSl7ZS5FbXB0eT0iIixlLlRlY2huaWNhbHNQYXRoPSJ0ZWNobmljYWxzLyIsZS5GaW5hbmNpYWxzT3ZlcnZpZXdQYXRoPSJmaW5hbmNpYWxzLW92ZXJ2aWV3LyIsZS5UaW1lbGluZVBhdGg9Imhpc3RvcnktdGltZWxpbmUvIixlLk5ld3NQYXRoPSJuZXdzLyIsZS5PcHRpb25zUGF0aD0ib3B0aW9ucy8iLGUuUHJvZmlsZVBhdGg9InByb2ZpbGUvIixlLkhvbGRpbmdzUGF0aD0iaG9sZGluZ3MvIn0ob3x8KG89e30pKX0sMjA3OTcoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7bG9hZFN5bXBob255Q29tbXVuaWNhdGlvbkNoYW5uZWw6KCk9Pml9KTt2YXIgbz1uKDMxODk3NCk7YXN5bmMgZnVuY3Rpb24gaSgpe2lmKCEoMCxvLmlzU3ltcGhvbnlFbWJlZCkoKSlyZXR1cm4gbnVsbDtyZXR1cm4oYXdhaXQgUHJvbWlzZS5hbGwoW24uZSgxMDg0MSksbi5lKDc2MDgpLG4uZSg0NjIxNyksbi5lKDg1NDM0KSxuLmUoNzI4NSksbi5lKDkwNDE1KV0pLnRoZW4obi5iaW5kKG4sNjk0ODc2KSkpLlN5bXBob255Q29tbXVuaWNhdGlvbkNoYW5uZWwuZ2V0SW5zdGFuY2UoKX19LDE1MDY2NShlLHQsbil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG8oZSx0KXtjb25zdCBuPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImEiKTtuLnN0eWxlLmRpc3BsYXk9Im5vbmUiLG4uaHJlZj10LG4uZG93bmxvYWQ9ZSxuLmNsaWNrKCl9bi5kKHQse2Rvd25sb2FkRmlsZTooKT0+b30pfSw1NjkxMjUoZSl7ZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjI4IiBoZWlnaHQ9IjI4IiBmaWxsPSJub25lIj48cGF0aCBzdHJva2U9ImN1cnJlbnRDb2xvciIgZD0iTTYuNSAxNnY0LjVhMSAxIDAgMDAxIDFoMTRhMSAxIDAgMDAxLTFWMTZNMTQuNSA1VjE3bS00LTMuNWw0IDRsNC00Ii8+PC9zdmc+J30sMTk0NjQ4KGUpe2UuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxOCAxOCIgd2lkdGg9IjE4IiBoZWlnaHQ9IjE4Ij48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGQ9Im00LjY3IDcuMzguNjYtLjc2TDkgOS44NGwzLjY3LTMuMjIuNjYuNzZMOSAxMS4xNiA0LjY3IDcuMzhaIi8+PC9zdmc+J30sNTQzMzM5KGUpe2UuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxOCAxOCIgd2lkdGg9IjE4IiBoZWlnaHQ9IjE4Ij48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGQ9Im00LjY3IDEwLjYyLjY2Ljc2TDkgOC4xNmwzLjY3IDMuMjIuNjYtLjc2TDkgNi44NGwtNC4zMyAzLjc4WiIvPjwvc3ZnPid9LDE0NzIyMShlKXtlLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMjggMjgiIHdpZHRoPSIyOCIgaGVpZ2h0PSIyOCI+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBkPSJNOC41IDZBMi41IDIuNSAwIDAgMCA2IDguNXYxMUEyLjUgMi41IDAgMCAwIDguNSAyMmgxMWEyLjUgMi41IDAgMCAwIDIuNS0yLjV2LTNoLTF2M2MwIC44My0uNjcgMS41LTEuNSAxLjVoLTExQTEuNSAxLjUgMCAwIDEgNyAxOS41di0xMUM3IDcuNjcgNy42NyA3IDguNSA3aDNWNmgtM3ptNyAxaDQuOGwtNy40OSA3LjQ4LjcxLjdMMjEgNy43MnY0Ljc5aDFWNmgtNi41djF6Ii8+PC9zdmc+J30sNDc3NzAwKGUpe2UuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyOCAyOCIgd2lkdGg9IjI4IiBoZWlnaHQ9IjI4Ij48cGF0aCBmaWxsPSIjRkZCNzFCIiBkPSJNMjcgMTguMTJhMS4wNSAxLjA1IDAgMSAxLTIuMSAwIDEuMDUgMS4wNSAwIDAgMSAyLjEgMFoiLz48cGF0aCBmaWxsPSIjNzUzQ0JFIiBkPSJNMTkuNjQgOGMzLjA2IDAgNS42MiAzLjQzIDYuMzUgOC4wN2EuMTYuMTYgMCAwIDEtLjMuMDhjLS43My0xLjc3LTEuOTgtMi45NC0zLjQtMi45NC0yLjAyIDAtMy44IDIuNDgtNCA1Ljg5LS4yNi41Ni0yLjM2IDEtNC4yOSAxLjA3di04LjE1QzE1LjIgOS41NyAxNy41OCA4IDE5LjY0IDhaIi8+PHBhdGggZmlsbD0iI0ZGQjcxQiIgZD0iTTEgMTguMTJhMS4wNSAxLjA1IDAgMSAwIDIuMSAwIDEuMDUgMS4wNSAwIDAgMC0yLjEgMFoiLz48cGF0aCBmaWxsPSIjRTgxRDc1IiBkPSJNOC4zNiA4QzUuMyA4IDIuNzQgMTEuNDMgMiAxNi4wN2MwIC4wOS4wNS4xNy4xNC4xOC4wNy4wMi4xNC0uMDIuMTctLjEuNzItMS43NyAxLjk3LTIuOTQgMy4zOC0yLjk0IDIuMDMgMCAzLjggMi40OCA0IDUuODkuMjcuNTYgMi4zNyAxIDQuMyAxLjA3di04LjE1QzEyLjggOS41NyAxMC40MiA4IDguMzYgOFoiLz48L3N2Zz4nfSw5NjU4NyhlKXtlLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMjggMjgiIHdpZHRoPSIyOCIgaGVpZ2h0PSIyOCIgZmlsbD0ibm9uZSI+PHBhdGggc3Ryb2tlPSJjdXJyZW50Q29sb3IiIGQ9Ik0xOSAxNWwyLjUtMi41YzEtMSAxLjUtMy41LS41LTUuNXMtNC41LTEuNS01LjUtLjVMMTMgOU0xMCAxMmwtMi41IDIuNWMtMSAxLTEuNSAzLjUuNSA1LjVzNC41IDEuNSA1LjUuNUwxNiAxOE0xNyAxMWwtNSA1Ii8+PC9zdmc+J30sNzE5MTMoZSl7CmUuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyOCIgaGVpZ2h0PSIyOCIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iIzAwOEVGRiIgZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0yMS4wNiAxMC43NlY3LjI1YzAtLjcyLS40LTEuNC0xLjAyLTEuNzdBMTEuOSAxMS45IDAgMCAwIDE0IDRjLTMuMDcgMC01LjEuOTMtNi4wNCAxLjQ4YTIuMDYgMi4wNiAwIDAgMC0xLjAyIDEuNzd2NS4yOGwxMS4xOCAzLjIzdjIuMzZjMCAuMzItLjIuNTQtLjU0LjdMMTQgMjAuNjNsLTMuNi0xLjhjLS4zMi0uMTYtLjUyLS4zOC0uNTItLjd2LTEuNzdsLTIuOTQtLjg4djIuNjVjMCAxLjQ1LjgzIDIuNjkgMi4xNiAzLjMzTDE0IDI0bDQuODgtMi41NGEzLjY5IDMuNjkgMCAwIDAgMi4xOC0zLjM0VjEzLjdMOS44OCAxMC40N1Y3Ljc4Yy44LS4zOCAyLjE2LS44NCA0LjEyLS44NHMzLjMyLjQ2IDQuMTIuODR2Mi4xbDIuOTQuODhaIi8+PC9zdmc+J30sNjI4NDI4KGUpe2UuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyOCAyOCIgd2lkdGg9IjI4IiBoZWlnaHQ9IjI4Ij48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGQ9Ik0xOS43NSA1aDMuMDdsLTYuNyA3LjYyTDI0IDIzaC02LjE3bC00Ljg0LTYuM0w3LjQ2IDIzSDQuNGw3LjE3LTguMTZMNCA1aDYuMzNsNC4zNyA1Ljc1TDE5Ljc1IDVabS0xLjI0IDE2aDEuN0w5LjU0IDdINy43bDEwLjggMTRaIi8+PC9zdmc+J319XSk7"}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/57093.26600c93b6171d99b700.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.562Z","timestamp":1785148034562,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/57093.26600c93b6171d99b700.js HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a61b1a8-6c86\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Thu, 23 Jul 2026 06:16:08 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/23/2026 10:17:30\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 3a56094f97500b4cce5fa81b7548eab0\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":27782,"size_decoded":11281,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (3069)","md5":"4a5c4beebe509ac3027b79744b905303","sha1":"7eea8e87ac7a5ed1631873659a90a89e9a2cf256","sha256":"212519cc555451f5eb9173d72cf1b953de12bd91b643471be5673492e5fd4df0","sha512":"0c8c00ea4bf02423fb14f74c67dae3bb80ee82ec07ec85b67af6c9a158458956589e013607b8a608b44a881e754cd710e6ebfaf8a8037aab14d3877b9ba6d90f","ssdeep":"768:3KHYGd+QIbZ15yDJjyD272qzGJOeK6+ZJT:64fDbLoRT","tlshash":"5bc2fa867011b1ad92e789d681bf055de33f396c384d4d70f2b8d8cc69a7958e326e0e","first_seen":"2026-07-23T14:00:31.452652Z","last_seen":"2026-07-27T12:48:39.628805Z","times_seen":57,"resource_available":true,"data":"KHNlbGYud2VicGFja0NodW5rdHJhZGluZ3ZpZXc9c2VsZi53ZWJwYWNrQ2h1bmt0cmFkaW5ndmlld3x8W10pLnB1c2goW1s1NzA5Myw2NDY0NF0sezkxNDQ4NyhlLHQpe3ZhciBuOyFmdW5jdGlvbigpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj17fS5oYXNPd25Qcm9wZXJ0eTtmdW5jdGlvbiBvKCl7Zm9yKHZhciBlPVtdLHQ9MDt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgbj1hcmd1bWVudHNbdF07aWYobil7dmFyIGE9dHlwZW9mIG47aWYoInN0cmluZyI9PT1hfHwibnVtYmVyIj09PWEpZS5wdXNoKG4pO2Vsc2UgaWYoQXJyYXkuaXNBcnJheShuKSYmbi5sZW5ndGgpe3ZhciBpPW8uYXBwbHkobnVsbCxuKTtpJiZlLnB1c2goaSl9ZWxzZSBpZigib2JqZWN0Ij09PWEpZm9yKHZhciBsIGluIG4pci5jYWxsKG4sbCkmJm5bbF0mJmUucHVzaChsKX19cmV0dXJuIGUuam9pbigiICIpfWUuZXhwb3J0cz8oby5kZWZhdWx0PW8sZS5leHBvcnRzPW8pOnZvaWQgMD09PShuPWZ1bmN0aW9uKCl7cmV0dXJuIG99LmFwcGx5KHQsW10pKXx8KGUuZXhwb3J0cz1uKX0oKX0sNjg3OTUzKGUpe2UuZXhwb3J0cz17ZGl2aWRlcjoiZGl2aWRlci1Db0EyZDVDNyIsIm9yaWVudGF0aW9uLWhvcml6b250YWwiOiJvcmllbnRhdGlvbi1ob3Jpem9udGFsLUNvQTJkNUM3Iiwib3JpZW50YXRpb24tdmVydGljYWwiOiJvcmllbnRhdGlvbi12ZXJ0aWNhbC1Db0EyZDVDNyIsImZpdC1jb250ZW50IjoiZml0LWNvbnRlbnQtQ29BMmQ1QzciLCJzaXplLXhzbWFsbCI6InNpemUteHNtYWxsLUNvQTJkNUM3Iiwic2l6ZS1zbWFsbCI6InNpemUtc21hbGwtQ29BMmQ1QzciLCJzaXplLW1lZGl1bSI6InNpemUtbWVkaXVtLUNvQTJkNUM3Iiwic2l6ZS1sYXJnZSI6InNpemUtbGFyZ2UtQ29BMmQ1QzciLCJzaXplLXhsYXJnZSI6InNpemUteGxhcmdlLUNvQTJkNUM3Iiwic2l6ZS14eGxhcmdlIjoic2l6ZS14eGxhcmdlLUNvQTJkNUM3IiwidHlwZS1wcmltYXJ5IjoidHlwZS1wcmltYXJ5LUNvQTJkNUM3IiwidHlwZS1zZWNvbmRhcnkiOiJ0eXBlLXNlY29uZGFyeS1Db0EyZDVDNyJ9fSw5OTQ1KGUpe2UuZXhwb3J0cz17ZGVmYXVsdDoiZGVmYXVsdC1HWkx5a05RUCIsZGFuZ2VyOiJkYW5nZXItR1pMeWtOUVAiLHdhcm5pbmc6Indhcm5pbmctR1pMeWtOUVAiLHN1Y2Nlc3M6InN1Y2Nlc3MtR1pMeWtOUVAiLG5ldXRyYWw6Im5ldXRyYWwtR1pMeWtOUVAiLCJuZXV0cmFsLWxpZ2h0IjoibmV1dHJhbC1saWdodC1HWkx5a05RUCIsc21hbGw6InNtYWxsLUdaTHlrTlFQIixtZWRpdW06Im1lZGl1bS1HWkx5a05RUCIsbGFyZ2U6ImxhcmdlLUdaTHlrTlFQIixpY29uV3JhcHBlcjoiaWNvbldyYXBwZXItR1pMeWtOUVAiLGljb246Imljb24tR1pMeWtOUVAifX0sNzU1ODU1KGUpe2UuZXhwb3J0cz17bGF5b3V0RXF1aWxhdGVyYWw6ImxheW91dEVxdWlsYXRlcmFsLXBqOHJKVmhaIn19LDY5Njc3MyhlKXtlLmV4cG9ydHM9e2FjdGl2ZUFyZWE6ImFjdGl2ZUFyZWEteHpBdEZtbEUiLGFjdGl2ZUFyZWFDb250ZW50OiJhY3RpdmVBcmVhQ29udGVudC14ekF0Rm1sRSIsbm9TdHJldGNoOiJub1N0cmV0Y2gteHpBdEZtbEUiLHN0cmV0Y2g6InN0cmV0Y2gteHpBdEZtbEUiLGhhc0NsaWNrTGlzdGVuZXI6Imhhc0NsaWNrTGlzdGVuZXIteHpBdEZtbEUiLGRpc2FibGVkOiJkaXNhYmxlZC14ekF0Rm1sRSIsc2VsZWN0ZWQ6InNlbGVjdGVkLXh6QXRGbWxFIixjaGlsZHJlbjoiY2hpbGRyZW4teHpBdEZtbEUifX0sMTMyNTAzKGUpe2UuZXhwb3J0cz17d3JhcHBlcjoid3JhcHBlci1lVGZHRGFFciIsc3RyZXRjaDoic3RyZXRjaC1lVGZHRGFFciIsZGlzYWJsZWQ6ImRpc2FibGVkLWVUZkdEYUVyIixzcXVhcmU6InNxdWFyZS1lVGZHRGFFciIseHNtYWxsOiJ4c21hbGwtZVRmR0RhRXIiLHJvdW5kOiJyb3VuZC1lVGZHRGFFciIsc21hbGw6InNtYWxsLWVUZkdEYUVyIixtZWRpdW06Im1lZGl1bS1lVGZHRGFFciIscHJpbWFyeToicHJpbWFyeS1lVGZHRGFFciIsc2Vjb25kYXJ5OiJzZWNvbmRhcnktZVRmR0RhRXIiLHRlcnRpYXJ5OiJ0ZXJ0aWFyeS1lVGZHRGFFciIscXVhcnRlcmx5OiJxdWFydGVybHktZVRmR0RhRXIiLGdob3N0OiJnaG9zdC1lVGZHRGFFciIscGlsbDoicGlsbC1lVGZHRGFFciIsYmxpbmtBbmltYXRpb246ImJsaW5rQW5pbWF0aW9uLWVUZkdEYUVyIixibGlua2luZzoiYmxpbmtpbmctZVRmR0RhRXIiLCJwaWxsLWZvY3VzLW91dGxpbmUtYmxpbmtpbmctYWZ0ZXItaW50cm8iOiJwaWxsLWZvY3VzLW91dGxpbmUtYmxpbmtpbmctYWZ0ZXItaW50cm8tZVRmR0RhRXIiLCJwaWxsLWZvY3VzLW91dGxpbmUtYmxpbmtpbmctYWZ0ZXIiOiJwaWxsLWZvY3VzLW91dGxpbmUtYmxpbmtpbmctYWZ0ZXItZVRmR0RhRXIiLGJsaW5rRm9yZWdyb3VuZDoiYmxpbmtGb3JlZ3JvdW5kLWVUZkdEYUVyIiwicGlsbC1mb2N1cy1vdXRsaW5lLWJsaW5raW5nLWZvcmVncm91bmQiOiJwaWxsLWZvY3VzLW91dGxpbmUtYmxpbmtpbmctZm9yZWdyb3VuZC1lVGZHRGFFciIsaGlnaGxpZ2h0aW5nOiJoaWdobGlnaHRpbmctZVRmR0RhRXIiLCJwaWxsLWZvY3VzLW91dGxpbmUtaGlnaGxpZ2h0aW5nLWFuaW1hdGlvbi1hZnRlciI6InBpbGwtZm9jdXMtb3V0bGluZS1oaWdobGlnaHRpbmctYW5pbWF0aW9uLWFmdGVyLWVUZkdEYUVyIiwicGlsbC1mb2N1cy1vdXRsaW5lLWhpZ2hsaWdodGluZy1hbmltYXRpb24tZm9yZWdyb3VuZCI6InBpbGwtZm9jdXMtb3V0bGluZS1oaWdobGlnaHRpbmctYW5pbWF0aW9uLWZvcmVncm91bmQtZVRmR0RhRXIifX0sODMxMTgxKGUpe2UuZXhwb3J0cz17YWN0aXZlVGV4dDoiYWN0aXZlVGV4dC1jbjBHbk9CZCJ9fSw1NDAxMDcoZSl7ZS5leHBvcnRzPXtwcmltYXJ5VGV4dDoicHJpbWFyeVRleHQtRFhjb0NWMkoifX0sODY4MzkxKGUpe2UuZXhwb3J0cz17ZmxvYXRpbmdBcnJvdzoiZmxvYXRpbmdBcnJvdy1jMU9zSFB0WSIsYm90dG9tOiJib3R0b20tYzFPc0hQdFkiLCJib3R0b20tbGVmdCI6ImJvdHRvbS1sZWZ0LWMxT3NIUHRZIiwiYm90dG9tLXJpZ2h0IjoiYm90dG9tLXJpZ2h0LWMxT3NIUHRZIix0b3A6InRvcC1jMU9zSFB0WSIsCiJ0b3AtbGVmdCI6InRvcC1sZWZ0LWMxT3NIUHRZIiwidG9wLXJpZ2h0IjoidG9wLXJpZ2h0LWMxT3NIUHRZIixsZWZ0OiJsZWZ0LWMxT3NIUHRZIiwibGVmdC10b3AiOiJsZWZ0LXRvcC1jMU9zSFB0WSIsImxlZnQtYm90dG9tIjoibGVmdC1ib3R0b20tYzFPc0hQdFkiLHJpZ2h0OiJyaWdodC1jMU9zSFB0WSIsInJpZ2h0LXRvcCI6InJpZ2h0LXRvcC1jMU9zSFB0WSIsInJpZ2h0LWJvdHRvbSI6InJpZ2h0LWJvdHRvbS1jMU9zSFB0WSJ9fSwyMzI2NShlKXtlLmV4cG9ydHM9e2VuZFNsb3RXcmFwcGVyOiJlbmRTbG90V3JhcHBlci1IeU5qSFNEVyIsZGl2aWRlcjoiZGl2aWRlci1IeU5qSFNEVyIsZW5kU2xvdENvbnRlbnQ6ImVuZFNsb3RDb250ZW50LUh5TmpIU0RXIix0b29sdGlwQmFzZVdyYXBwZXI6InRvb2x0aXBCYXNlV3JhcHBlci1IeU5qSFNEVyIsdHJhbnNwYXJlbnQ6InRyYW5zcGFyZW50LUh5TmpIU0RXIixvcGFxdWU6Im9wYXF1ZS1IeU5qSFNEVyIsZGlzYWJsZUludGVyYWN0aXZlOiJkaXNhYmxlSW50ZXJhY3RpdmUtSHlOakhTRFciLHRvb2x0aXBCYXNlOiJ0b29sdGlwQmFzZS1IeU5qSFNEVyIsY29udGVudFdyYXBwZXI6ImNvbnRlbnRXcmFwcGVyLUh5TmpIU0RXIixjb250ZW50OiJjb250ZW50LUh5TmpIU0RXIn19LDk2NjQ2NShlKXtlLmV4cG9ydHM9e3Rvb2x0aXBTdGF0ZWxlc3M6InRvb2x0aXBTdGF0ZWxlc3Mta3dzNXFlZFcifX0sNDUzNzgyKGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse0RpdmlkZXI6KCk9PnN9KTt2YXIgcj1uKDc3OTQ3NCksbz1uKDkxNDQ4NyksYT1uLm4obyksaT1uKDY4Nzk1MyksbD1uLm4oaSk7ZnVuY3Rpb24gcyhlKXtjb25zdHtjbGFzc05hbWU6dCx0eXBlOm49InNlY29uZGFyeSIsc2l6ZTpvPSJzbWFsbCIsb3JpZW50YXRpb246aT0iaG9yaXpvbnRhbCIsZml0Q29udGVudDpzPSExfT1lLGM9YSgpKHQsbCgpLmRpdmlkZXIsbCgpW2BzaXplLSR7b31gXSxsKClbYHR5cGUtJHtufWBdLGwoKVtgb3JpZW50YXRpb24tJHtpfWBdLHMmJmwoKVsiZml0LWNvbnRlbnQiXSk7cmV0dXJuIHIuY3JlYXRlRWxlbWVudCgiaHIiLHtjbGFzc05hbWU6YywiYXJpYS1vcmllbnRhdGlvbiI6aX0pfX0sMTQ1OTg0KGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse3VzZUZvY3VzOigpPT5vfSk7dmFyIHI9big3Nzk0NzQpO2Z1bmN0aW9uIG8oZSx0KXtjb25zdFtuLG9dPSgwLHIudXNlU3RhdGUpKCExKTsoMCxyLnVzZUVmZmVjdCkoKCgpPT57dCYmbiYmbyghMSl9KSxbdCxuXSk7Y29uc3QgYT17b25Gb2N1czooMCxyLnVzZUNhbGxiYWNrKSgoZnVuY3Rpb24odCl7dm9pZCAwIT09ZSYmZS5jdXJyZW50IT09dC50YXJnZXR8fG8oITApfSksW2VdKSxvbkJsdXI6KDAsci51c2VDYWxsYmFjaykoKGZ1bmN0aW9uKHQpe3ZvaWQgMCE9PWUmJmUuY3VycmVudCE9PXQudGFyZ2V0fHxvKCExKX0pLFtlXSl9O3JldHVybltuLGFdfX0sMjkwMjQzKGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse3VzZVNhZmVNb2JpbGVUb3VjaDooKT0+YX0pO3ZhciByPW4oNzc5NDc0KSxvPW4oNzM4NDU4KTtmdW5jdGlvbiBhKCl7Y29uc3RbZSx0XT0oMCxyLnVzZVN0YXRlKSghMSk7cmV0dXJuKDAsci51c2VFZmZlY3QpKCgoKT0+e3Qoby5tb2JpbGV0b3VjaCl9KSxbXSksZX19LDExOTc1MChlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtJY29uUXVlc3Rpb25JbmZvcm1hdGlvbjooKT0+TCxJY29uUXVlc3Rpb25JbmZvcm1hdGlvbkJ1dHRvbjooKT0+U30pO3ZhciByLG89big3Nzk0NzQpLGE9big5MTQ0ODcpLGk9bi5uKGEpLGw9bigzNDUxMTYpLHM9bigyNzMzMTApLGM9big3ODU5OTUpLHU9bi5uKGMpLGY9big1MjcyMTkpLHA9bi5uKGYpLGQ9big2NzMwNjUpLG09bi5uKGQpLGg9big0MDAwNDYpLGc9bi5uKGgpLHY9big5OTQ1KSx5PW4ubih2KTshZnVuY3Rpb24oZSl7ZS5TbWFsbD0ic21hbGwiLGUuTWVkaXVtPSJtZWRpdW0iLGUuTGFyZ2U9ImxhcmdlIn0ocnx8KHI9e30pKTtjb25zdCBFPSJzbWFsbCI7dmFyIGIsQzshZnVuY3Rpb24oZSl7ZS5EZWZhdWx0PSJkZWZhdWx0IixlLkRhbmdlcj0iZGFuZ2VyIixlLldhcm5pbmc9Indhcm5pbmciLGUuU3VjY2Vzcz0ic3VjY2VzcyIsZS5OZXV0cmFsPSJuZXV0cmFsIixlLk5ldXRyYWxMaWdodD0ibmV1dHJhbC1saWdodCJ9KGJ8fChiPXt9KSksZnVuY3Rpb24oZSl7ZS5JbmZvPSJpbmZvIixlLlF1ZXN0aW9uPSJxdWVzdGlvbiIsZS5DaGVjaz0iY2hlY2siLGUuRXhjbGFtYXRpb249ImV4Y2xhbWF0aW9uIn0oQ3x8KEM9e30pKTtjb25zdCBUPXtpbmZvOnAoKSxxdWVzdGlvbjp1KCksY2hlY2s6bSgpLGV4Y2xhbWF0aW9uOmcoKX0sXz1vLmZvcndhcmRSZWYoKChlLHQpPT5vLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHsuLi5lLHJlZjp0LGNsYXNzTmFtZTppKCkoZS5jbGFzc05hbWUseSgpWyJuby1hY3RpdmUtc3RhdGUiXSl9KSkpLEw9by5mb3J3YXJkUmVmKCgoZSx0KT0+e2NvbnN0e2ljb246bj0iZXhjbGFtYXRpb24iLGludGVudDpyPSJkZWZhdWx0IixhcmlhTGFiZWw6YSx0b29sdGlwOmMsY2xhc3NOYW1lOnUscmVuZGVyQ29tcG9uZW50OmY9Xyx0YWJJbmRleDpwPTAsc2l6ZTpkPUUsb25Gb2N1czptLG9uQmx1cjpoLG9uQ2xpY2s6ZywuLi52fT1lLGI9VFtuXT8/bjtyZXR1cm4gby5jcmVhdGVFbGVtZW50KGYse2NsYXNzTmFtZTppKCkodSx5KCkuaWNvbldyYXBwZXIseSgpW3JdLHkoKVtkXSksdGl0bGU6YyxyZWY6dCx0YWJJbmRleDpwLG9uRm9jdXM6bSxvbkJsdXI6aCxvbkNsaWNrOmcsLi4uKDAsbC5maWx0ZXJEYXRhUHJvcHMpKHYpfSxvLmNyZWF0ZUVsZW1lbnQocy5JY29uLHsiYXJpYS1oaWRkZW4iOiFhLCJhcmlhLWxhYmVsIjphLGljb246YixjbGFzc05hbWU6eSgpLmljb259KSl9KSk7ZnVuY3Rpb24gUyhlKXtjb25zdHtpY29uOnQ9ImV4Y2xhbWF0aW9uIixpbnRlbnQ6bj0iZGVmYXVsdCIsc2l6ZTpyPUUsb25DbGljazphLG9uTW91c2VFbnRlcjpsLG9uTW91c2VMZWF2ZTpjLG9uRm9jdXM6dSxvbkJsdXI6ZixyZWZlcmVuY2U6cCxhcmlhTGFiZWw6ZH09ZSxtPVRbdF0/P3Q7cmV0dXJuIG8uY3JlYXRlRWxlbWVudCgiYnV0dG9uIix7CmNsYXNzTmFtZTppKCkoeSgpLmljb25XcmFwcGVyLHkoKVtuXSx5KClbcl0pLHJlZjpwLG9uQ2xpY2s6YSxvbk1vdXNlRW50ZXI6bCxvbk1vdXNlTGVhdmU6YyxvbkZvY3VzOnUsb25CbHVyOmYsImFyaWEtbGFiZWwiOmR9LG8uY3JlYXRlRWxlbWVudChzLkljb24se2ljb246bSxjbGFzc05hbWU6eSgpLmljb259KSl9fSw4NjUwOTIoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7dXNlVG9vbHRpcDooKT0+aX0pO3ZhciByPW4oNzc5NDc0KSxvPW4oMjkwMjQzKSxhPW4oNzg3ODk1KTtmdW5jdGlvbiBpKGUsdD1udWxsKXtjb25zdHtzaG93VG9vbHRpcDpuLGhpZGVUb29sdGlwOmksb25DbGljazpsLGRvTm90U2hvd1Rvb2x0aXBPblRvdWNoOnM9ITF9PWUsYz0oMCxhLnVzZUZ1bmN0aW9uYWxSZWZPYmplY3QpKHQpLHU9KDAsby51c2VTYWZlTW9iaWxlVG91Y2gpKCksZj11JiZzP3ZvaWQgMDplLnRvb2x0aXA7KDAsci51c2VFZmZlY3QpKCgoKT0+e2NvbnN0IGU9KCk9PmkmJmkoKTtyZXR1cm4gZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigic2Nyb2xsIixlLCEwKSwoKT0+ZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigic2Nyb2xsIixlLCEwKX0pLFtjLGldKTtyZXR1cm57b25CbHVyOigwLHIudXNlQ2FsbGJhY2spKChlPT57aSYmaSgpfSksW2ldKSxvbkZvY3VzOigwLHIudXNlQ2FsbGJhY2spKChlPT57IWUudGFyZ2V0Lm1hdGNoZXMoIjpob3ZlciIpJiZuJiZlLnRhcmdldC5tYXRjaGVzKCI6Zm9jdXMtdmlzaWJsZSIpJiZuKGUuY3VycmVudFRhcmdldCx7dG9vbHRpcERlbGF5OjIwMH0pfSksW25dKSxvbkNsaWNrOigwLHIudXNlQ2FsbGJhY2spKChlPT57dSYmYz8uY3VycmVudD8uZm9jdXMoKSxsJiZsKGUpfSksW2wsYyx1XSksdG9vbHRpcDpmLGNsYXNzTmFtZTp2b2lkIDAhPT1mPyJhcHBseS1jb21tb24tdG9vbHRpcCI6dm9pZCAwLHJlZjpjfX19LDQ2NzY1MihlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtQaWxsQWN0aXZlQXJlYTooKT0+Z30pO3ZhciByPW4oNzc5NDc0KSxvPW4oOTE0NDg3KSxhPW4ubihvKSxpPW4oNjM3NTY0KSxsPW4oMTUzMTU0KSxzPW4oNzg3ODk1KSxjPW4oMTUzNzI4KSx1PW4oMjMyNjc2KSxmPW4oMzQ1MTE2KSxwPW4oMTQ3OTAxKSxkPW4oNjk2NzczKSxtPW4ubihkKTtjb25zdCBoPSJwaWxsLWFjdGl2ZS1hcmVhLSI7ZnVuY3Rpb24gZyhlKXtjb25zdCB0PSgwLHIudXNlUmVmKShudWxsKSx7dG9vbHRpcDpuLGFyaWFMYWJlbDpvLGNoaWxkcmVuOmQsaXNTZWxlY3RlZDpnLG9uQ2xpY2s6dixvbktleURvd246eSxhcmlhQ29udHJvbHM6RSxhcmlhSGFzcG9wdXA6YixhcmlhRXhwYW5kZWQ6QyxkYXRhUWFJZDpULHRvb2x0aXBQbGFjZW1lbnQ6Xz1baS5Ub29sdGlwUGxhY2VtZW50cy5Ub3AsaS5Ub29sdGlwUGxhY2VtZW50cy5Cb3R0b21dLHJlZmVyZW5jZTpMPXQsc3RyZXRjaDpTPSExLC4uLkF9PWUsUD0oMCxmLmZpbHRlckRhdGFQcm9wcykoQSksdz0oMCxzLnVzZUZ1bmN0aW9uYWxSZWZPYmplY3QpKEwpLHtkaXNhYmxlZDprfT0oMCxyLnVzZUNvbnRleHQpKHUuUGlsbEludGVybmFsQ29udGV4dCkseD0oMCxyLnVzZUlkKSgpLHtvcGVuOk8sY2xvc2U6Tix2aXNpYmxlOlJ9PSgwLGMudXNlVG9vbHRpcFN0YXRlKSh7b3BlbkRlbGF5OjUwMCxjbG9zZURlbGF5OjB9KSxJPSgwLHIudXNlUmVmKSghMSksRD0oMCxyLnVzZVJlZikoITEpLEc9KDAsci51c2VSZWYpKCExKSxIPSgwLHIudXNlQ2FsbGJhY2spKCgoKT0+e2NvbnN0IGU9SS5jdXJyZW50LHQ9RC5jdXJyZW50O2V8fHQ/TygpOk4oKX0pLFtPLE5dKSxGPSgwLHIudXNlQ2FsbGJhY2spKCgoKT0+e0kuY3VycmVudD0hMCxIKCl9KSxbSF0pLEI9KDAsci51c2VDYWxsYmFjaykoKCgpPT57SS5jdXJyZW50PSExLEgoKX0pLFtIXSksTT0oMCxyLnVzZUNhbGxiYWNrKSgoKCk9PntJLmN1cnJlbnQ9ITEsRC5jdXJyZW50PSExLEgoKX0pLFtIXSksej12b2lkIDAhPT12JiYhazsoMCxyLnVzZUVmZmVjdCkoKCgpPT57IXomJkcuY3VycmVudCYmKEcuY3VycmVudD0hMSxELmN1cnJlbnQ9ITEpfSksW3pdKTtjb25zdCBqPSgwLHIudXNlQ2FsbGJhY2spKCgoKT0+e2NvbnN0IGU9dy5jdXJyZW50O2UmJmUubWF0Y2hlcygiOmZvY3VzLXZpc2libGUiKSYmKEQuY3VycmVudD0hMCxHLmN1cnJlbnQ9ITAsSCgpKX0pLFt3LEhdKSxXPSgwLHIudXNlQ2FsbGJhY2spKCgoKT0+e0cuY3VycmVudD0hMSxELmN1cnJlbnQ9ITEsSCgpfSksW0hdKSwkPXY/ImJ1dHRvbiI6ImRpdiI7cmV0dXJuIHIuY3JlYXRlRWxlbWVudChyLkZyYWdtZW50LG51bGwsbiYmci5jcmVhdGVFbGVtZW50KGwuVG9vbHRpcFN0YXRlbGVzcyx7aWQ6eCxvcGVuOlIsb25DbG9zZTpOLGFuY2hvcjp3LGNvbnRlbnQ6bixpc1J0bDohMSxwbGFjZW1lbnQ6XyxoYXNBcnJvdzohMCxkYXRhUWFJZDooMCxwLmRhdGFRYUlkcykoYCR7cC5VSV9MSUJfREFUQV9RQV9JRF9QUkVGSVh9JHtofXRvb2x0aXBgLFQpfSksci5jcmVhdGVFbGVtZW50KCQse2lkOmUuaWQsImFyaWEtZGVzY3JpYmVkYnkiOm4/eDp2b2lkIDAsImFyaWEtbGFiZWwiOm8sImFyaWEtY29udHJvbHMiOkUsImFyaWEtaGFzcG9wdXAiOmIsImFyaWEtZXhwYW5kZWQiOkMsImFyaWEtZGlzYWJsZWQiOno/azp2b2lkIDAscmVmOncsY2xhc3NOYW1lOmEoKShrJiZtKCkuZGlzYWJsZWQsbSgpLmFjdGl2ZUFyZWEsZyYmbSgpLnNlbGVjdGVkLFM/bSgpLnN0cmV0Y2g6bSgpLm5vU3RyZXRjaCx2JiZtKCkuaGFzQ2xpY2tMaXN0ZW5lciksb25DbGljazp6P3Y6dm9pZCAwLG9uS2V5RG93bjp6P3k6dm9pZCAwLG9uTW91c2VFbnRlcjpGLG9uTW91c2VEb3duOk0sb25Nb3VzZUxlYXZlOkIsb25Gb2N1czpqLG9uQmx1cjpXLHRhYkluZGV4Ono/MDotMSwiZGF0YS1xYS1pZCI6KDAscC5kYXRhUWFJZHMpKGAke3AuVUlfTElCX0RBVEFfUUFfSURfUFJFRklYfSR7aH1idXR0b25gLFQpLC4uLlB9LHIuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOm0oKS5hY3RpdmVBcmVhQ29udGVudH0sci5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6bSgpLmNoaWxkcmVufSxkKSkpKX19LDg5NjgzMShlLHQsbil7CiJ1c2Ugc3RyaWN0IjtuLmQodCx7UGlsbExheW91dEVxdWlsYXRlcmFsOigpPT5pfSk7dmFyIHI9big3Nzk0NzQpLG89big3NTU4NTUpLGE9bi5uKG8pO2NvbnN0IGk9ZnVuY3Rpb24oZSl7Y29uc3R7Y2hpbGRyZW46dH09ZTtyZXR1cm4gci5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6YSgpLmxheW91dEVxdWlsYXRlcmFsfSx0KX19LDIzMjY3NihlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtQaWxsOigpPT5wLFBpbGxJbnRlcm5hbENvbnRleHQ6KCk9PmZ9KTt2YXIgcj1uKDc3OTQ3NCksbz1uKDkxNDQ4NyksYT1uLm4obyksaT1uKDE1MDI2MyksbD1uKDg2NTk3Mikscz1uKDc4Nzg5NSksYz1uKDEzMjUwMyksdT1uLm4oYyk7Y29uc3QgZj0oMCxyLmNyZWF0ZUNvbnRleHQpKHtkaXNhYmxlZDohMX0pO2Z1bmN0aW9uIHAoZSl7Y29uc3R7c2l6ZTp0PWkuREVGQVVMVF9QSUxMX1NJWkUsdHlwZTpuPWkuREVGQVVMVF9QSUxMX1RZUEUsc2hhcGU6bz1pLkRFRkFVTFRfUElMTF9TSEFQRX09KDAsci51c2VDb250ZXh0KShsLlBpbGxDb250ZXh0KSxjPWUudHlwZT8/bix7b25Gb2N1czpwfT0oMCxyLnVzZUNvbnRleHQpKGwuUGlsbHNTY3JvbGxDb250ZXh0KSxkPSgwLHIudXNlUmVmKShudWxsKSx7YmxpbmtpbmdTdGF0ZTptPWkuREVGQVVMVF9QSUxMX0JMSU5LSU5HX1NUQVRFLGNoaWxkcmVuOmgscmVmZXJlbmNlOmc9ZCxkaXNhYmxlZDp2LGlkOnksc3RyZXRjaDpFLGRhdGFRYUlkOmJ9PWUsQz0oMCxzLnVzZUZ1bmN0aW9uYWxSZWZPYmplY3QpKGcpLFQ9KDAsci51c2VNZW1vKSgoKCk9Pih7ZGlzYWJsZWQ6dj8/ITF9KSksW3ZdKTtyZXR1cm4gci5jcmVhdGVFbGVtZW50KGYuUHJvdmlkZXIse3ZhbHVlOlR9LHIuY3JlYXRlRWxlbWVudCgiZGl2Iix7cmVmOkMsaWQ6eSxjbGFzc05hbWU6YSgpKHUoKS53cmFwcGVyLHUoKVt0XSx1KClbb10sRSYmdSgpLnN0cmV0Y2gpLG9uRm9jdXM6cCwiZGF0YS1xYS1pZCI6Yn0sci5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6YSgpKHUoKS5waWxsLHUoKVtjXSx1KCkuYmxpbmtBbmltYXRpb24sdSgpW21dLHYmJnUoKS5kaXNhYmxlZCl9LHIuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOnUoKS5ibGlua0ZvcmVncm91bmR9KSxoKSkpfX0sMjEwOTgwKGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse1BpbGxBY3RpdmVUZXh0OigpPT5zfSk7dmFyIHI9big3Nzk0NzQpLG89big5MTQ0ODcpLGE9bi5uKG8pLGk9big4MzExODEpLGw9bi5uKGkpO2Z1bmN0aW9uIHMoZSl7cmV0dXJuIHIuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOmEoKShsKCkuYWN0aXZlVGV4dCxlLmNsYXNzTmFtZSl9LGUuY2hpbGRyZW4pfX0sMjQ2MzUwKGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse1BpbGxQcmltYXJ5VGV4dDooKT0+c30pO3ZhciByPW4oNzc5NDc0KSxvPW4oOTE0NDg3KSxhPW4ubihvKSxpPW4oNTQwMTA3KSxsPW4ubihpKTtmdW5jdGlvbiBzKGUpe3JldHVybiByLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTphKCkobCgpLnByaW1hcnlUZXh0LGUuY2xhc3NOYW1lKX0sZS5jaGlsZHJlbil9fSw4NjU5NzIoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7UGlsbENvbnRleHQ6KCk9PmEsUGlsbHNTY3JvbGxDb250ZXh0OigpPT5pfSk7dmFyIHI9big3Nzk0NzQpLG89bigxNTAyNjMpO2NvbnN0IGE9KDAsci5jcmVhdGVDb250ZXh0KSh7c2l6ZTpvLkRFRkFVTFRfUElMTF9TSVpFLHR5cGU6by5ERUZBVUxUX1BJTExfVFlQRSxzaGFwZTpvLkRFRkFVTFRfUElMTF9TSEFQRX0pLGk9KDAsci5jcmVhdGVDb250ZXh0KSh7fSl9LDE1MDI2MyhlLHQsbil7InVzZSBzdHJpY3QiO3ZhciByLG8sYSxpO24uZCh0LHtERUZBVUxUX1BJTExfQkxJTktJTkdfU1RBVEU6KCk9PnUsREVGQVVMVF9QSUxMX1NIQVBFOigpPT5sLERFRkFVTFRfUElMTF9TSVpFOigpPT5jLERFRkFVTFRfUElMTF9UWVBFOigpPT5zfSksZnVuY3Rpb24oZSl7ZS5QcmltYXJ5PSJwcmltYXJ5IixlLlNlY29uZGFyeT0ic2Vjb25kYXJ5IixlLlRlcnRpYXJ5PSJ0ZXJ0aWFyeSIsZS5RdWFydGVybHk9InF1YXJ0ZXJseSIsZS5HaG9zdD0iZ2hvc3QifShyfHwocj17fSkpLGZ1bmN0aW9uKGUpe2UuTWVkaXVtPSJtZWRpdW0iLGUuU21hbGw9InNtYWxsIixlLlhTbWFsbD0ieHNtYWxsIn0ob3x8KG89e30pKSxmdW5jdGlvbihlKXtlLkJsaW5raW5nPSJibGlua2luZyIsZS5IaWdobGlnaHRpbmc9ImhpZ2hsaWdodGluZyIsZS5Ob3RCbGlua2luZz0ibm90QmxpbmtpbmcifShhfHwoYT17fSkpLGZ1bmN0aW9uKGUpe2UuU3F1YXJlPSJzcXVhcmUiLGUuUm91bmQ9InJvdW5kIn0oaXx8KGk9e30pKTtjb25zdCBsPSJzcXVhcmUiLHM9InNlY29uZGFyeSIsYz0ic21hbGwiLHU9Im5vdEJsaW5raW5nIn0sOTM4MjQyKGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse3VzZU5lc3RlZFBvcG92ZXJPcGVuU3RhdGU6KCk9PmwsdXNlT25DbG9zZVBvcG92ZXI6KCk9Pm8sdXNlUm9vdFBvcG92ZXJPcGVuU3RhdGU6KCk9PmF9KTt2YXIgcj1uKDc3OTQ3NCk7ZnVuY3Rpb24gbyhlLHQpe3JldHVybigwLHIudXNlQ2FsbGJhY2spKChuPT57dCgpLG4mJmUuY3VycmVudD8uZm9jdXMoKX0pLFtlLHRdKX1mdW5jdGlvbiBhKGUpe2NvbnN0W3Qsbl09KDAsci51c2VTdGF0ZSkoITEpLGE9KDAsci51c2VDYWxsYmFjaykoKCgpPT57bighMSl9KSxbXSk7cmV0dXJue2lzT3Blbjp0LG9uT3BlbjooMCxyLnVzZUNhbGxiYWNrKSgoKCk9PntuKCEwKX0pLFtdKSxvbkNsb3NlOm8oZSxhKX19Y29uc3QgaT1uZXcgV2Vha01hcDtmdW5jdGlvbiBsKGUsdCl7Y29uc3RbbixvXT0oMCxyLnVzZVN0YXRlKSghMSksYT0oMCxyLnVzZUNhbGxiYWNrKSgoKG4scj0iY3VycmVudExldmVsIik9PntvKCExKSwiYWxsTGV2ZWxzIj09PXI/dChuLHIpOm4mJmUuY3VycmVudD8uZm9jdXMoKX0pLFtlLHRdKTsoMCxyLnVzZUVmZmVjdCkoKCgpPT57Y29uc3QgZT1pLmdldCh0KT8/bmV3IFNldDtyZXR1cm4gZS5hZGQoYSksaS5zZXQodCxlKSwoKT0+e2NvbnN0IGU9aS5nZXQodCk7ZSYmKGUuZGVsZXRlKGEpLAowPT09ZS5zaXplJiZpLmRlbGV0ZSh0KSl9fSksW2EsdF0pO3JldHVybntpc09wZW46bixvbk9wZW46KDAsci51c2VDYWxsYmFjaykoKCgpPT57Y29uc3QgZT1pLmdldCh0KTtpZihlKWZvcihjb25zdCB0IG9mIGUpdCE9PWEmJnQoITEsImN1cnJlbnRMZXZlbCIpO28oITApfSksW3QsYV0pLG9uQ2xvc2U6YX19fSw3MzM2MTcoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7dXNlRGVmYXVsdEJ1dHRvbkFuY2hvclByb3BzOigpPT5sfSk7dmFyIHI9big3Nzk0NzQpLG89big3ODc4OTUpLGE9big5MzgyNDIpLGk9big2Mzg1ODUpO2Z1bmN0aW9uIGwoZSl7Y29uc3QgdD0oMCxyLnVzZVJlZikoKSxuPSgwLG8udXNlRnVuY3Rpb25hbFJlZk9iamVjdCkodCkse2lzT3BlbjpsLG9uT3BlbjpzLG9uQ2xvc2U6Y309KDAsYS51c2VSb290UG9wb3Zlck9wZW5TdGF0ZSkobiksdT0oMCxyLnVzZUlkKSgpLGY9ZT8uYW5jaG9ySWQ/P3UscD0oMCxyLnVzZUlkKSgpLGQ9KDAsaS51c2VPcGVuUG9wb3Zlck9uQW5jaG9yS2V5RG93bikoe2lzT3BlbjpsLG9uT3BlbjpzLG9wZW5PbkVudGVyOmU/Lm9wZW5PbkVudGVyLG9wZW5PbkFycm93OmU/Lm9wZW5PbkFycm93fSksbT0oMCxyLnVzZUNhbGxiYWNrKSgoKCk9PmMoITAsImFsbExldmVscyIpKSxbY10pO3JldHVybnthbmNob3JCdXR0b25SZWY6bixpc09wZW46bCxvbk9wZW46cyxvbkNsb3NlOmMsYW5jaG9ySWQ6Zixjb250ZW50SWQ6cCxoYW5kbGVBbmNob3JDbGljazpsP206cyxoYW5kbGVBbmNob3JLZXlEb3duOmR9fX0sNjM4NTg1KGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse3VzZU9wZW5Qb3BvdmVyT25BbmNob3JLZXlEb3duOigpPT5zfSk7dmFyIHI9big3Nzk0NzQpLG89bigyMzU3MjQpO2NvbnN0IGE9bmV3IFNldChbMzJdKSxpPW5ldyBTZXQoWzQwLDM4XSksbD1uZXcgU2V0KFsxM10pO2Z1bmN0aW9uIHMoZSl7Y29uc3R7aXNPcGVuOnQsb25PcGVuOm4sb3Blbk9uRW50ZXI6cz0hMCxvcGVuT25BcnJvdzpjPSEwLG9wZW5PblNwYWNlOnU9ITB9PWU7cmV0dXJuKDAsci51c2VDYWxsYmFjaykoKGU9Pntjb25zdCByPSgwLG8uaGFzaEZyb21FdmVudCkoZSk7IXQmJihzJiZsLmhhcyhyKXx8YyYmaS5oYXMocil8fHUmJmEuaGFzKHIpKSYmKG4oKSxlLnByZXZlbnREZWZhdWx0KCksZS5zdG9wUHJvcGFnYXRpb24oKSl9KSxbdCxuLHNdKX19LDg1NzAzOChlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtUb29sdGlwQmFzZTooKT0+bX0pO3ZhciByPW4oNzc5NDc0KSxvPW4oOTE0NDg3KSxhPW4ubihvKSxpPW4oNDUzNzgyKSxsPW4oODY4MzkxKSxzPW4ubihsKTtjb25zdCBjPSh7cGxhY2VtZW50OmUsLi4udH0pPT5yLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTphKCkocygpLmZsb2F0aW5nQXJyb3csZSYmcygpW2VdKSwuLi50fSk7dmFyIHU9big2Mzc1NjQpLGY9bigyMzI2NSkscD1uLm4oZik7ZnVuY3Rpb24gZCh7Y29udGVudDplLGlzUnRsOnR9KXtyZXR1cm4gci5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOmEoKShwKCkuZW5kU2xvdFdyYXBwZXIsdCYmcCgpLmVuZFNsb3RSdGwpfSxyLmNyZWF0ZUVsZW1lbnQoaS5EaXZpZGVyLHtjbGFzc05hbWU6cCgpLmRpdmlkZXIsb3JpZW50YXRpb246InZlcnRpY2FsIix0eXBlOiJzZWNvbmRhcnkiLHNpemU6InhzbWFsbCJ9KSxyLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6YSgpKHAoKS5lbmRTbG90Q29udGVudCx0JiZwKCkuZW5kU2xvdENvbnRlbnRSdGwpfSxlKSl9ZnVuY3Rpb24gbSh7aWQ6ZSxjb250ZW50OnQsZW5kU2xvdDpuLGhhc0Fycm93Om89ITAsaXNSdGw6aT0hMSxwbGFjZW1lbnQ6bD11LlRvb2x0aXBQbGFjZW1lbnRzLlRvcCxkaXNhYmxlSW50ZXJhY3RpdmU6cz0hMSx0cmFuc3BhcmVudDpmLC4uLm19KXtyZXR1cm4gci5jcmVhdGVFbGVtZW50KCJkaXYiLHtpZDplLHJvbGU6InRvb2x0aXAiLGNsYXNzTmFtZTphKCkocCgpLnRvb2x0aXBCYXNlV3JhcHBlcixzJiZwKCkuZGlzYWJsZUludGVyYWN0aXZlLGY/cCgpLnRyYW5zcGFyZW50OnAoKS5vcGFxdWUpfSxvJiZyLmNyZWF0ZUVsZW1lbnQoYyx7Li4ubSxwbGFjZW1lbnQ6bH0pLHIuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOnAoKS50b29sdGlwQmFzZX0sci5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6YSgpKHAoKS5jb250ZW50V3JhcHBlcixpJiZwKCkuY29udGVudFJ0bCl9LHIuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOnAoKS5jb250ZW50fSx0KSxuJiZyLmNyZWF0ZUVsZW1lbnQoZCx7Y29udGVudDpuLGlzUnRsOml9KSkpKX19LDE1MzE1NChlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtUb29sdGlwU3RhdGVsZXNzOigpPT55fSk7dmFyIHI9big3Nzk0NzQpLG89big2NDA1MTMpLGE9big1NjI5OCksaT1uKDQ0MDQ0NiksbD1uKDMwNjI4Nykscz1uKDI4NjMxMCksYz1uKDg5NTkyMSksdT1uKDc4Nzg5NSksZj1uKDg1NzAzOCkscD1uKDYzNzU2NCksZD1uKDk2NjQ2NSksbT1uLm4oZCk7ZnVuY3Rpb24gaChlKXtyZXR1cm5bey4uLmUsb3ZlcmZsb3dIb3Jpem9udGFsOntraW5kOiJzbGlkZU92ZXJmbG93IixhbmNob3JTYWZlU3BhY2U6OCxwb3NpdGlvbmVyU2FmZVNwYWNlOjE0fSxvdmVyZmxvd1ZlcnRpY2FsOiJrZWVwTm9uRml0dGluZyJ9XX1mdW5jdGlvbiBnKGUpe3JldHVyblt7Li4uZSxvdmVyZmxvd0hvcml6b250YWw6ImtlZXBOb25GaXR0aW5nIixvdmVyZmxvd1ZlcnRpY2FsOntraW5kOiJzbGlkZU92ZXJmbG93IixhbmNob3JTYWZlU3BhY2U6OCxwb3NpdGlvbmVyU2FmZVNwYWNlOjEyfX1dfWNvbnN0IHY9eyJib3R0b20tbGVmdCI6aChvLlBMQUNFTUVOVF9CT1RUT01fQUxJR05fTEVGVCksYm90dG9tOmgoby5QTEFDRU1FTlRfQk9UVE9NX0FMSUdOX0NFTlRFUiksImJvdHRvbS1yaWdodCI6aChvLlBMQUNFTUVOVF9CT1RUT01fQUxJR05fUklHSFQpLCJ0b3AtbGVmdCI6aChvLlBMQUNFTUVOVF9UT1BfQUxJR05fTEVGVCksdG9wOmgoby5QTEFDRU1FTlRfVE9QX0FMSUdOX0NFTlRFUiksInRvcC1yaWdodCI6aChvLlBMQUNFTUVOVF9UT1BfQUxJR05fUklHSFQpLAoicmlnaHQtdG9wIjpnKG8uUExBQ0VNRU5UX1JJR0hUX0FMSUdOX1RPUCkscmlnaHQ6ZyhvLlBMQUNFTUVOVF9SSUdIVF9BTElHTl9DRU5URVIpLCJyaWdodC1ib3R0b20iOmcoby5QTEFDRU1FTlRfUklHSFRfQUxJR05fQk9UVE9NKSwibGVmdC10b3AiOmcoby5QTEFDRU1FTlRfTEVGVF9BTElHTl9UT1ApLGxlZnQ6ZyhvLlBMQUNFTUVOVF9MRUZUX0FMSUdOX0NFTlRFUiksImxlZnQtYm90dG9tIjpnKG8uUExBQ0VNRU5UX0xFRlRfQUxJR05fQk9UVE9NKX0seT0oMCxhLmlnbm9yZU9uU1NSKSgoZnVuY3Rpb24oZSl7Y29uc3R7YW5jaG9yOnQsb3BlbjpuLGlkOm8sY29udGVudDphLGVuZFNsb3Q6cCxoYXNBcnJvdzpkPSEwLGlzUnRsOmg9ITEsb25DbG9zZTpnLHBsYWNlbWVudDp5PUUsb2Zmc2V0OmI9MCxjbG9zZU9uU2Nyb2xsT3V0c2lkZTpDPSExLGRpc2FibGVJbnRlcmFjdGl2ZTpULGRhdGFRYUlkOl8sZ2V0Um9vdFJlY3Q6TCxmb3JjZURpc2FibGVUcmFuc3BhcmVuY3k6U309ZSxbQSxQXT0oMCxyLnVzZVN0YXRlKSghUyksdz1kPzQ6YixrPSgwLHUudXNlRnVuY3Rpb25hbFJlZk9iamVjdCkoKDAsci51c2VSZWYpKG51bGwpKSx4PSgwLHIudXNlTWVtbykoKCgpPT4oKGUsdCk9PihBcnJheS5pc0FycmF5KGUpP2U6W2VdKS5mbGF0TWFwKChlPT4oKGUsdCk9PmUubWFwKChlPT57Y29uc3Qgbj17dG9wOnt4OjAseTotdH0scmlnaHQ6e3g6dCx5OjB9LGJvdHRvbTp7eDowLHk6dH0sbGVmdDp7eDotdCx5OjB9fTtyZXR1cm4gZS5uYW1lPy5zcGxpdCgiLSIpWzBdP3suLi5lLG9mZnNldDpuW2UubmFtZS5zcGxpdCgiLSIpWzBdXX06ZX0pKSkodltlXSx0KSkpKSh5LHcpKSxbdyx5XSksW08sTl09ci51c2VTdGF0ZSh2b2lkIDApLFI9KDAsci51c2VDYWxsYmFjaykoKGU9PntPPy5uYW1lIT09ZT8ubmFtZSYmbiYmKE4oZSksUCghMSkpfSksW24sTz8ubmFtZV0pOygwLHIudXNlRWZmZWN0KSgoKCk9PntufHwoTih2b2lkIDApLFAoITApKX0pLFtuXSk7Y29uc3QgST0oMCxsLnVzZVdpbmRvd1Jlc2l6ZVRyaWdnZXIpKG4pLEQ9KDAsaS51c2VDbG9zZVJlcG9zaXRpb25PblNjcm9sbE91dHNpZGUpKG4sQyxnLHQpLEc9KDAsci51c2VNZW1vKSgoKCk9PltJLERdKSxbRCxJXSksSD0oMCxjLnVzZVJlZlJlY3QpKHQsbixHKTtpZighSClyZXR1cm4gbnVsbDtyZXR1cm4gci5jcmVhdGVFbGVtZW50KHMuUmVjdGFuZ2xlUG9zaXRpb25lcix7cGxhY2VtZW50UnVsZXM6eCxpc09wZW46bix3aWR0aDpbXSxoZWlnaHQ6W10sYW5jaG9yZWRBdDpILGlzUnRsOmgscmVmT2JqZWN0VG9Db250ZW50V3JhcHBlckVsZW1lbnQ6ayxvblBsYWNlbWVudFJ1bGVTZWxlY3RlZDpSLGRhdGFRYUlkOl8sZ2V0Um9vdFJlY3Q6TCxhbmNob3JQb3NpdGlvbmVyQ2FyZEFwcGVhcmFuY2VDbGFzc25hbWU6bSgpLnRvb2x0aXBTdGF0ZWxlc3N9LHIuY3JlYXRlRWxlbWVudChmLlRvb2x0aXBCYXNlLHtpZDpvLGNvbnRlbnQ6YSxlbmRTbG90OnAsaGFzQXJyb3c6ZCxpc1J0bDpoLHBsYWNlbWVudDpPPy5uYW1lLGRpc2FibGVJbnRlcmFjdGl2ZTpULHRyYW5zcGFyZW50OkF9KSl9KSksRT1bcC5Ub29sdGlwUGxhY2VtZW50cy5Ub3AscC5Ub29sdGlwUGxhY2VtZW50cy5Cb3R0b20scC5Ub29sdGlwUGxhY2VtZW50cy5MZWZ0LHAuVG9vbHRpcFBsYWNlbWVudHMuUmlnaHRdfSw2Mzc1NjQoZSx0LG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcjtuLmQodCx7VG9vbHRpcFBsYWNlbWVudHM6KCk9PnJ9KSxmdW5jdGlvbihlKXtlLlRvcExlZnQ9InRvcC1sZWZ0IixlLlRvcD0idG9wIixlLlRvcFJpZ2h0PSJ0b3AtcmlnaHQiLGUuQm90dG9tTGVmdD0iYm90dG9tLWxlZnQiLGUuQm90dG9tPSJib3R0b20iLGUuQm90dG9tUmlnaHQ9ImJvdHRvbS1yaWdodCIsZS5SaWdodFRvcD0icmlnaHQtdG9wIixlLlJpZ2h0PSJyaWdodCIsZS5SaWdodEJvdHRvbT0icmlnaHQtYm90dG9tIixlLkxlZnRUb3A9ImxlZnQtdG9wIixlLkxlZnQ9ImxlZnQiLGUuTGVmdEJvdHRvbT0ibGVmdC1ib3R0b20ifShyfHwocj17fSkpfSwxNTM3MjgoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7dXNlVG9vbHRpcFN0YXRlOigpPT5hfSk7dmFyIHI9big3Nzk0NzQpO2Z1bmN0aW9uIG8oZSl7dm9pZCAwIT09ZS5jdXJyZW50JiYoY2xlYXJUaW1lb3V0KGUuY3VycmVudCksZS5jdXJyZW50PXZvaWQgMCl9ZnVuY3Rpb24gYShlKXtjb25zdHtvcGVuRGVsYXk6dD0wLGNsb3NlRGVsYXk6bj0wfT1lLFthLGldPSgwLHIudXNlU3RhdGUpKCExKSxsPSgwLHIudXNlUmVmKSgpLHM9KDAsci51c2VDYWxsYmFjaykoKGU9PntvKGwpO2NvbnN0IHI9ZT90Om47cj4wP2wuY3VycmVudD13aW5kb3cuc2V0VGltZW91dCgoKCk9PntpKGUpLGwuY3VycmVudD12b2lkIDB9KSxyKTppKGUpfSksW3Qsbl0pLGM9KDAsci51c2VDYWxsYmFjaykoKCgpPT5zKCEwKSksW3NdKSx1PSgwLHIudXNlQ2FsbGJhY2spKCgoKT0+cyghMSkpLFtzXSksZj0oMCxyLnVzZUNhbGxiYWNrKSgoKCk9PnMoIWEpKSxbYSxzXSkscD0oMCxyLnVzZUNhbGxiYWNrKSgoKCk9PntvKGwpLGkoITEpfSksW10pO3JldHVybigwLHIudXNlRWZmZWN0KSgoKCk9PigpPT57byhsKX0pLFtdKSx7dmlzaWJsZTphLG9wZW46YyxjbG9zZTp1LHRvZ2dsZTpmLGNsb3NlSW5zdGFudGx5OnB9fX0sMTQxNzA1KGUsdCxuKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gcihlKXtyZXR1cm4iIj09PWU/IiI6ZVswXS50b1VwcGVyQ2FzZSgpK2Uuc3Vic3RyaW5nKDEpfW4uZCh0LHtjYXBpdGFsaXplOigpPT5yfSl9LDMxNDcyMChlLHQsbil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHIoZSl7Y29uc3R7cGFkZGluZ1RvcDp0LHBhZGRpbmdCb3R0b206bn09d2luZG93LmdldENvbXB1dGVkU3R5bGUoZSk7cmV0dXJuW3Qsbl0ucmVkdWNlKCgoZSx0KT0+ZS1OdW1iZXIoKHR8fCIiKS5yZXBsYWNlKCJweCIsIiIpKSksZS5jbGllbnRIZWlnaHQpfWZ1bmN0aW9uIG8oZSx0PSExKXtjb25zdCBuPWdldENvbXB1dGVkU3R5bGUoZSkscj1bbi5oZWlnaHRdCjtyZXR1cm4iYm9yZGVyLWJveCIhPT1uLmJveFNpemluZyYmci5wdXNoKG4ucGFkZGluZ1RvcCxuLnBhZGRpbmdCb3R0b20sbi5ib3JkZXJUb3BXaWR0aCxuLmJvcmRlckJvdHRvbVdpZHRoKSx0JiZyLnB1c2gobi5tYXJnaW5Ub3Asbi5tYXJnaW5Cb3R0b20pLHIucmVkdWNlKCgoZSx0KT0+ZSsocGFyc2VGbG9hdCh0KXx8MCkpLDApfWZ1bmN0aW9uIGEoZSx0PSExKXtjb25zdCBuPWdldENvbXB1dGVkU3R5bGUoZSkscj1bbi53aWR0aF07cmV0dXJuImJvcmRlci1ib3giIT09bi5ib3hTaXppbmcmJnIucHVzaChuLnBhZGRpbmdMZWZ0LG4ucGFkZGluZ1JpZ2h0LG4uYm9yZGVyTGVmdFdpZHRoLG4uYm9yZGVyUmlnaHRXaWR0aCksdCYmci5wdXNoKG4ubWFyZ2luTGVmdCxuLm1hcmdpblJpZ2h0KSxyLnJlZHVjZSgoKGUsdCk9PmUrKHBhcnNlRmxvYXQodCl8fDApKSwwKX1uLmQodCx7Y29udGVudEhlaWdodDooKT0+cixvdXRlckhlaWdodDooKT0+byxvdXRlcldpZHRoOigpPT5hfSl9LDc4Mjk1NShlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtjcmVhdGVBcmlhQXR0cmlidXRlc1Byb3BzOigpPT5vfSk7dmFyIHI9bigxNDE3MDUpO2Z1bmN0aW9uIG8oZSx0KXtjb25zdCBuPXt9O2Zvcihjb25zdCBvIG9mIE9iamVjdC5lbnRyaWVzKHQpKW5bImNhbWVsQ2FzZSI9PT1lPyJhcmlhIisoMCxyLmNhcGl0YWxpemUpKG9bMF0pOiJhcmlhLSIrb1swXV09b1sxXTtyZXR1cm4gbn19LDM5MTE1MihlLHQsbil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHIoZSx0KXtyZXR1cm57W2VdOnR9fW4uZCh0LHtjcmVhdGVSZWZQcm9wOigpPT5yfSl9LDMzNjMzNChlLHQsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oMTI5MzY1KTt0LmNyZWF0ZVJvb3Q9ci5jcmVhdGVSb290LHIuaHlkcmF0ZVJvb3R9LDEyOTM2NShlLHQsbil7InVzZSBzdHJpY3QiOyFmdW5jdGlvbiBlKCl7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBfX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18mJiJmdW5jdGlvbiI9PXR5cGVvZiBfX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18uY2hlY2tEQ0UpdHJ5e19fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXy5jaGVja0RDRShlKX1jYXRjaChlKXtjb25zb2xlLmVycm9yKGUpfX0oKSxlLmV4cG9ydHM9big1MzIzODcpfSwxMjI3NDkoZSx0KXsidXNlIHN0cmljdCI7dmFyIG49U3ltYm9sLmZvcigicmVhY3QuZWxlbWVudCIpLHI9U3ltYm9sLmZvcigicmVhY3QucG9ydGFsIiksbz1TeW1ib2wuZm9yKCJyZWFjdC5mcmFnbWVudCIpLGE9U3ltYm9sLmZvcigicmVhY3Quc3RyaWN0X21vZGUiKSxpPVN5bWJvbC5mb3IoInJlYWN0LnByb2ZpbGVyIiksbD1TeW1ib2wuZm9yKCJyZWFjdC5wcm92aWRlciIpLHM9U3ltYm9sLmZvcigicmVhY3QuY29udGV4dCIpLGM9U3ltYm9sLmZvcigicmVhY3QuZm9yd2FyZF9yZWYiKSx1PVN5bWJvbC5mb3IoInJlYWN0LnN1c3BlbnNlIiksZj1TeW1ib2wuZm9yKCJyZWFjdC5tZW1vIikscD1TeW1ib2wuZm9yKCJyZWFjdC5sYXp5IiksZD1TeW1ib2wuaXRlcmF0b3I7dmFyIG09e2lzTW91bnRlZDpmdW5jdGlvbigpe3JldHVybiExfSxlbnF1ZXVlRm9yY2VVcGRhdGU6ZnVuY3Rpb24oKXt9LGVucXVldWVSZXBsYWNlU3RhdGU6ZnVuY3Rpb24oKXt9LGVucXVldWVTZXRTdGF0ZTpmdW5jdGlvbigpe319LGg9T2JqZWN0LmFzc2lnbixnPXt9O2Z1bmN0aW9uIHYoZSx0LG4pe3RoaXMucHJvcHM9ZSx0aGlzLmNvbnRleHQ9dCx0aGlzLnJlZnM9Zyx0aGlzLnVwZGF0ZXI9bnx8bX1mdW5jdGlvbiB5KCl7fWZ1bmN0aW9uIEUoZSx0LG4pe3RoaXMucHJvcHM9ZSx0aGlzLmNvbnRleHQ9dCx0aGlzLnJlZnM9Zyx0aGlzLnVwZGF0ZXI9bnx8bX12LnByb3RvdHlwZS5pc1JlYWN0Q29tcG9uZW50PXt9LHYucHJvdG90eXBlLnNldFN0YXRlPWZ1bmN0aW9uKGUsdCl7aWYoIm9iamVjdCIhPXR5cGVvZiBlJiYiZnVuY3Rpb24iIT10eXBlb2YgZSYmbnVsbCE9ZSl0aHJvdyBFcnJvcigic2V0U3RhdGUoLi4uKTogdGFrZXMgYW4gb2JqZWN0IG9mIHN0YXRlIHZhcmlhYmxlcyB0byB1cGRhdGUgb3IgYSBmdW5jdGlvbiB3aGljaCByZXR1cm5zIGFuIG9iamVjdCBvZiBzdGF0ZSB2YXJpYWJsZXMuIik7dGhpcy51cGRhdGVyLmVucXVldWVTZXRTdGF0ZSh0aGlzLGUsdCwic2V0U3RhdGUiKX0sdi5wcm90b3R5cGUuZm9yY2VVcGRhdGU9ZnVuY3Rpb24oZSl7dGhpcy51cGRhdGVyLmVucXVldWVGb3JjZVVwZGF0ZSh0aGlzLGUsImZvcmNlVXBkYXRlIil9LHkucHJvdG90eXBlPXYucHJvdG90eXBlO3ZhciBiPUUucHJvdG90eXBlPW5ldyB5O2IuY29uc3RydWN0b3I9RSxoKGIsdi5wcm90b3R5cGUpLGIuaXNQdXJlUmVhY3RDb21wb25lbnQ9ITA7dmFyIEM9QXJyYXkuaXNBcnJheSxUPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHksXz17Y3VycmVudDpudWxsfSxMPXtrZXk6ITAscmVmOiEwLF9fc2VsZjohMCxfX3NvdXJjZTohMH07ZnVuY3Rpb24gUyhlLHQscil7dmFyIG8sYT17fSxpPW51bGwsbD1udWxsO2lmKG51bGwhPXQpZm9yKG8gaW4gdm9pZCAwIT09dC5yZWYmJihsPXQucmVmKSx2b2lkIDAhPT10LmtleSYmKGk9IiIrdC5rZXkpLHQpVC5jYWxsKHQsbykmJiFMLmhhc093blByb3BlcnR5KG8pJiYoYVtvXT10W29dKTt2YXIgcz1hcmd1bWVudHMubGVuZ3RoLTI7aWYoMT09PXMpYS5jaGlsZHJlbj1yO2Vsc2UgaWYoMTxzKXtmb3IodmFyIGM9QXJyYXkocyksdT0wO3U8czt1KyspY1t1XT1hcmd1bWVudHNbdSsyXTthLmNoaWxkcmVuPWN9aWYoZSYmZS5kZWZhdWx0UHJvcHMpZm9yKG8gaW4gcz1lLmRlZmF1bHRQcm9wcyl2b2lkIDA9PT1hW29dJiYoYVtvXT1zW29dKTtyZXR1cm57JCR0eXBlb2Y6bix0eXBlOmUsa2V5OmkscmVmOmwscHJvcHM6YSxfb3duZXI6Xy5jdXJyZW50fX1mdW5jdGlvbiBBKGUpe3JldHVybiJvYmplY3QiPT10eXBlb2YgZSYmbnVsbCE9PWUmJmUuJCR0eXBlb2Y9PT1ufXZhciBQPS9cLysvZztmdW5jdGlvbiB3KGUsdCl7cmV0dXJuIm9iamVjdCI9PXR5cGVvZiBlJiZudWxsIT09ZSYmbnVsbCE9ZS5rZXk/ZnVuY3Rpb24oZSl7dmFyIHQ9eyI9IjoiPTAiLCI6IjoiPTIifQo7cmV0dXJuIiQiK2UucmVwbGFjZSgvWz06XS9nLChmdW5jdGlvbihlKXtyZXR1cm4gdFtlXX0pKX0oIiIrZS5rZXkpOnQudG9TdHJpbmcoMzYpfWZ1bmN0aW9uIGsoZSx0LG8sYSxpKXt2YXIgbD10eXBlb2YgZTsidW5kZWZpbmVkIiE9PWwmJiJib29sZWFuIiE9PWx8fChlPW51bGwpO3ZhciBzPSExO2lmKG51bGw9PT1lKXM9ITA7ZWxzZSBzd2l0Y2gobCl7Y2FzZSJzdHJpbmciOmNhc2UibnVtYmVyIjpzPSEwO2JyZWFrO2Nhc2Uib2JqZWN0Ijpzd2l0Y2goZS4kJHR5cGVvZil7Y2FzZSBuOmNhc2UgcjpzPSEwfX1pZihzKXJldHVybiBpPWkocz1lKSxlPSIiPT09YT8iLiIrdyhzLDApOmEsQyhpKT8obz0iIixudWxsIT1lJiYobz1lLnJlcGxhY2UoUCwiJCYvIikrIi8iKSxrKGksdCxvLCIiLChmdW5jdGlvbihlKXtyZXR1cm4gZX0pKSk6bnVsbCE9aSYmKEEoaSkmJihpPWZ1bmN0aW9uKGUsdCl7cmV0dXJueyQkdHlwZW9mOm4sdHlwZTplLnR5cGUsa2V5OnQscmVmOmUucmVmLHByb3BzOmUucHJvcHMsX293bmVyOmUuX293bmVyfX0oaSxvKyghaS5rZXl8fHMmJnMua2V5PT09aS5rZXk/IiI6KCIiK2kua2V5KS5yZXBsYWNlKFAsIiQmLyIpKyIvIikrZSkpLHQucHVzaChpKSksMTtpZihzPTAsYT0iIj09PWE/Ii4iOmErIjoiLEMoZSkpZm9yKHZhciBjPTA7YzxlLmxlbmd0aDtjKyspe3ZhciB1PWErdyhsPWVbY10sYyk7cys9ayhsLHQsbyx1LGkpfWVsc2UgaWYodT1mdW5jdGlvbihlKXtyZXR1cm4gbnVsbD09PWV8fCJvYmplY3QiIT10eXBlb2YgZT9udWxsOiJmdW5jdGlvbiI9PXR5cGVvZihlPWQmJmVbZF18fGVbIkBAaXRlcmF0b3IiXSk/ZTpudWxsfShlKSwiZnVuY3Rpb24iPT10eXBlb2YgdSlmb3IoZT11LmNhbGwoZSksYz0wOyEobD1lLm5leHQoKSkuZG9uZTspcys9ayhsPWwudmFsdWUsdCxvLHU9YSt3KGwsYysrKSxpKTtlbHNlIGlmKCJvYmplY3QiPT09bCl0aHJvdyB0PVN0cmluZyhlKSxFcnJvcigiT2JqZWN0cyBhcmUgbm90IHZhbGlkIGFzIGEgUmVhY3QgY2hpbGQgKGZvdW5kOiAiKygiW29iamVjdCBPYmplY3RdIj09PXQ/Im9iamVjdCB3aXRoIGtleXMgeyIrT2JqZWN0LmtleXMoZSkuam9pbigiLCAiKSsifSI6dCkrIikuIElmIHlvdSBtZWFudCB0byByZW5kZXIgYSBjb2xsZWN0aW9uIG9mIGNoaWxkcmVuLCB1c2UgYW4gYXJyYXkgaW5zdGVhZC4iKTtyZXR1cm4gc31mdW5jdGlvbiB4KGUsdCxuKXtpZihudWxsPT1lKXJldHVybiBlO3ZhciByPVtdLG89MDtyZXR1cm4gayhlLHIsIiIsIiIsKGZ1bmN0aW9uKGUpe3JldHVybiB0LmNhbGwobixlLG8rKyl9KSkscn1mdW5jdGlvbiBPKGUpe2lmKC0xPT09ZS5fc3RhdHVzKXt2YXIgdD1lLl9yZXN1bHQ7KHQ9dCgpKS50aGVuKChmdW5jdGlvbih0KXswIT09ZS5fc3RhdHVzJiYtMSE9PWUuX3N0YXR1c3x8KGUuX3N0YXR1cz0xLGUuX3Jlc3VsdD10KX0pLChmdW5jdGlvbih0KXswIT09ZS5fc3RhdHVzJiYtMSE9PWUuX3N0YXR1c3x8KGUuX3N0YXR1cz0yLGUuX3Jlc3VsdD10KX0pKSwtMT09PWUuX3N0YXR1cyYmKGUuX3N0YXR1cz0wLGUuX3Jlc3VsdD10KX1pZigxPT09ZS5fc3RhdHVzKXJldHVybiBlLl9yZXN1bHQuZGVmYXVsdDt0aHJvdyBlLl9yZXN1bHR9dmFyIE49e2N1cnJlbnQ6bnVsbH0sUj17dHJhbnNpdGlvbjpudWxsfSxJPXtSZWFjdEN1cnJlbnREaXNwYXRjaGVyOk4sUmVhY3RDdXJyZW50QmF0Y2hDb25maWc6UixSZWFjdEN1cnJlbnRPd25lcjpffTt0LkNoaWxkcmVuPXttYXA6eCxmb3JFYWNoOmZ1bmN0aW9uKGUsdCxuKXt4KGUsKGZ1bmN0aW9uKCl7dC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9KSxuKX0sY291bnQ6ZnVuY3Rpb24oZSl7dmFyIHQ9MDtyZXR1cm4geChlLChmdW5jdGlvbigpe3QrK30pKSx0fSx0b0FycmF5OmZ1bmN0aW9uKGUpe3JldHVybiB4KGUsKGZ1bmN0aW9uKGUpe3JldHVybiBlfSkpfHxbXX0sb25seTpmdW5jdGlvbihlKXtpZighQShlKSl0aHJvdyBFcnJvcigiUmVhY3QuQ2hpbGRyZW4ub25seSBleHBlY3RlZCB0byByZWNlaXZlIGEgc2luZ2xlIFJlYWN0IGVsZW1lbnQgY2hpbGQuIik7cmV0dXJuIGV9fSx0LkNvbXBvbmVudD12LHQuRnJhZ21lbnQ9byx0LlByb2ZpbGVyPWksdC5QdXJlQ29tcG9uZW50PUUsdC5TdHJpY3RNb2RlPWEsdC5TdXNwZW5zZT11LHQuX19TRUNSRVRfSU5URVJOQUxTX0RPX05PVF9VU0VfT1JfWU9VX1dJTExfQkVfRklSRUQ9SSx0LmNsb25lRWxlbWVudD1mdW5jdGlvbihlLHQscil7aWYobnVsbD09ZSl0aHJvdyBFcnJvcigiUmVhY3QuY2xvbmVFbGVtZW50KC4uLik6IFRoZSBhcmd1bWVudCBtdXN0IGJlIGEgUmVhY3QgZWxlbWVudCwgYnV0IHlvdSBwYXNzZWQgIitlKyIuIik7dmFyIG89aCh7fSxlLnByb3BzKSxhPWUua2V5LGk9ZS5yZWYsbD1lLl9vd25lcjtpZihudWxsIT10KXtpZih2b2lkIDAhPT10LnJlZiYmKGk9dC5yZWYsbD1fLmN1cnJlbnQpLHZvaWQgMCE9PXQua2V5JiYoYT0iIit0LmtleSksZS50eXBlJiZlLnR5cGUuZGVmYXVsdFByb3BzKXZhciBzPWUudHlwZS5kZWZhdWx0UHJvcHM7Zm9yKGMgaW4gdClULmNhbGwodCxjKSYmIUwuaGFzT3duUHJvcGVydHkoYykmJihvW2NdPXZvaWQgMD09PXRbY10mJnZvaWQgMCE9PXM/c1tjXTp0W2NdKX12YXIgYz1hcmd1bWVudHMubGVuZ3RoLTI7aWYoMT09PWMpby5jaGlsZHJlbj1yO2Vsc2UgaWYoMTxjKXtzPUFycmF5KGMpO2Zvcih2YXIgdT0wO3U8Yzt1Kyspc1t1XT1hcmd1bWVudHNbdSsyXTtvLmNoaWxkcmVuPXN9cmV0dXJueyQkdHlwZW9mOm4sdHlwZTplLnR5cGUsa2V5OmEscmVmOmkscHJvcHM6byxfb3duZXI6bH19LHQuY3JlYXRlQ29udGV4dD1mdW5jdGlvbihlKXtyZXR1cm4oZT17JCR0eXBlb2Y6cyxfY3VycmVudFZhbHVlOmUsX2N1cnJlbnRWYWx1ZTI6ZSxfdGhyZWFkQ291bnQ6MCxQcm92aWRlcjpudWxsLENvbnN1bWVyOm51bGwsX2RlZmF1bHRWYWx1ZTpudWxsLF9nbG9iYWxOYW1lOm51bGx9KS5Qcm92aWRlcj17JCR0eXBlb2Y6bCxfY29udGV4dDplfSxlLkNvbnN1bWVyPWV9LHQuY3JlYXRlRWxlbWVudD1TLHQuY3JlYXRlRmFjdG9yeT1mdW5jdGlvbihlKXt2YXIgdD1TLmJpbmQobnVsbCxlKQo7cmV0dXJuIHQudHlwZT1lLHR9LHQuY3JlYXRlUmVmPWZ1bmN0aW9uKCl7cmV0dXJue2N1cnJlbnQ6bnVsbH19LHQuZm9yd2FyZFJlZj1mdW5jdGlvbihlKXtyZXR1cm57JCR0eXBlb2Y6YyxyZW5kZXI6ZX19LHQuaXNWYWxpZEVsZW1lbnQ9QSx0Lmxhenk9ZnVuY3Rpb24oZSl7cmV0dXJueyQkdHlwZW9mOnAsX3BheWxvYWQ6e19zdGF0dXM6LTEsX3Jlc3VsdDplfSxfaW5pdDpPfX0sdC5tZW1vPWZ1bmN0aW9uKGUsdCl7cmV0dXJueyQkdHlwZW9mOmYsdHlwZTplLGNvbXBhcmU6dm9pZCAwPT09dD9udWxsOnR9fSx0LnN0YXJ0VHJhbnNpdGlvbj1mdW5jdGlvbihlKXt2YXIgdD1SLnRyYW5zaXRpb247Ui50cmFuc2l0aW9uPXt9O3RyeXtlKCl9ZmluYWxseXtSLnRyYW5zaXRpb249dH19LHQudW5zdGFibGVfYWN0PWZ1bmN0aW9uKCl7dGhyb3cgRXJyb3IoImFjdCguLi4pIGlzIG5vdCBzdXBwb3J0ZWQgaW4gcHJvZHVjdGlvbiBidWlsZHMgb2YgUmVhY3QuIil9LHQudXNlQ2FsbGJhY2s9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gTi5jdXJyZW50LnVzZUNhbGxiYWNrKGUsdCl9LHQudXNlQ29udGV4dD1mdW5jdGlvbihlKXtyZXR1cm4gTi5jdXJyZW50LnVzZUNvbnRleHQoZSl9LHQudXNlRGVidWdWYWx1ZT1mdW5jdGlvbigpe30sdC51c2VEZWZlcnJlZFZhbHVlPWZ1bmN0aW9uKGUpe3JldHVybiBOLmN1cnJlbnQudXNlRGVmZXJyZWRWYWx1ZShlKX0sdC51c2VFZmZlY3Q9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gTi5jdXJyZW50LnVzZUVmZmVjdChlLHQpfSx0LnVzZUlkPWZ1bmN0aW9uKCl7cmV0dXJuIE4uY3VycmVudC51c2VJZCgpfSx0LnVzZUltcGVyYXRpdmVIYW5kbGU9ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBOLmN1cnJlbnQudXNlSW1wZXJhdGl2ZUhhbmRsZShlLHQsbil9LHQudXNlSW5zZXJ0aW9uRWZmZWN0PWZ1bmN0aW9uKGUsdCl7cmV0dXJuIE4uY3VycmVudC51c2VJbnNlcnRpb25FZmZlY3QoZSx0KX0sdC51c2VMYXlvdXRFZmZlY3Q9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gTi5jdXJyZW50LnVzZUxheW91dEVmZmVjdChlLHQpfSx0LnVzZU1lbW89ZnVuY3Rpb24oZSx0KXtyZXR1cm4gTi5jdXJyZW50LnVzZU1lbW8oZSx0KX0sdC51c2VSZWR1Y2VyPWZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gTi5jdXJyZW50LnVzZVJlZHVjZXIoZSx0LG4pfSx0LnVzZVJlZj1mdW5jdGlvbihlKXtyZXR1cm4gTi5jdXJyZW50LnVzZVJlZihlKX0sdC51c2VTdGF0ZT1mdW5jdGlvbihlKXtyZXR1cm4gTi5jdXJyZW50LnVzZVN0YXRlKGUpfSx0LnVzZVN5bmNFeHRlcm5hbFN0b3JlPWZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gTi5jdXJyZW50LnVzZVN5bmNFeHRlcm5hbFN0b3JlKGUsdCxuKX0sdC51c2VUcmFuc2l0aW9uPWZ1bmN0aW9uKCl7cmV0dXJuIE4uY3VycmVudC51c2VUcmFuc2l0aW9uKCl9LHQudmVyc2lvbj0iMTguMi4wIn0sNzc5NDc0KGUsdCxuKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPW4oMTIyNzQ5KX0sNjczMDY1KGUpe2UuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxOCAxOCIgd2lkdGg9IjE4IiBoZWlnaHQ9IjE4Ij48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTkgMTdBOCA4IDAgMSAwIDkgMWE4IDggMCAwIDAgMCAxNlptNC05Ljk3TDExLjkgNiA4LjMgOS44MiA2LjEgNy40NiA0Ljk5IDguNSA4LjMyIDEyIDEzIDcuMDNaIi8+PC9zdmc+J30sNDAwMDQ2KGUpe2UuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxOCAxOCIgd2lkdGg9IjE4IiBoZWlnaHQ9IjE4Ij48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTkgMTdBOCA4IDAgMSAwIDkgMWE4IDggMCAwIDAgMCAxNlpNOSA0Yy0uNzkgMC0xLjM4LjctMS4yNSAxLjQ4bC42NyA0LjAzYS41OS41OSAwIDAgMCAxLjE2IDBsLjY3LTQuMDNBMS4yNyAxLjI3IDAgMCAwIDkgNFptMCA4YTEgMSAwIDEgMCAwIDIgMSAxIDAgMCAwIDAtMloiLz48L3N2Zz4nfSw1MjcyMTkoZSl7ZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDE4IDE4IiB3aWR0aD0iMTgiIGhlaWdodD0iMTgiPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZD0iTTkgMTdBOCA4IDAgMSAwIDkgMWE4IDggMCAwIDAgMCAxNlptMS0xMmExIDEgMCAxIDEtMiAwIDEgMSAwIDAgMSAyIDBaTTguNSA5LjVIN1Y4aDN2Nkg4LjVWOS41WiIvPjwvc3ZnPid9LDc4NTk5NShlKXtlLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMTggMTgiIHdpZHRoPSIxOCIgaGVpZ2h0PSIxOCI+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik05IDE3QTggOCAwIDEgMCA5IDFhOCA4IDAgMCAwIDAgMTZabS0xLTRhMSAxIDAgMSAwIDIgMCAxIDEgMCAwIDAtMiAwWm0yLjgzLTMuNTJjLS40OS40My0uOTcuODUtMS4wNiAxLjUySDguMjZjLjA4LTEuMTguNzQtMS42OSAxLjMyLTIuMTMuNDktLjM4LjkyLS43MS45Mi0xLjM3QzEwLjUgNi42NyA5LjgyIDYgOSA2cy0xLjUuNjctMS41IDEuNVY4SDZ2LS41YTMgMyAwIDEgMSA2IDBjMCAuOTYtLjYgMS40OC0xLjE3IDEuOThaIi8+PC9zdmc+J30sMjczNjc3KGUpe2UuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyOCAyOCIgd2lkdGg9IjI4IiBoZWlnaHQ9IjI4Ij48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGQ9Im0xNi40NyA3LjQ3IDEuMDYgMS4wNkwxMi4wNiAxNGw1LjQ3IDUuNDctMS4wNiAxLjA2TDkuOTQgMTRsNi41My02LjUzWiIvPjwvc3ZnPid9LDc4NjI2OChlKXsKZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDE4IDE4IiB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIGZpbGw9Im5vbmUiPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZD0ibTE0LjA3OCA3LjgyNy0uOTktMS4xMjhMOSAxMC4yOSA0LjkxMSA2LjdsLS45OSAxLjEyOEw5IDEyLjI4NXoiLz48L3N2Zz4nfSw4NTY3NzAoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7bmFub2lkOigpPT5yfSk7bGV0IHI9KGU9MjEpPT5jcnlwdG8uZ2V0UmFuZG9tVmFsdWVzKG5ldyBVaW50OEFycmF5KGUpKS5yZWR1Y2UoKChlLHQpPT5lKz0odCY9NjMpPDM2P3QudG9TdHJpbmcoMzYpOnQ8NjI/KHQtMjYpLnRvU3RyaW5nKDM2KS50b1VwcGVyQ2FzZSgpOnQ+NjI/Ii0iOiJfIiksIiIpfX1dKTs="}},"time_used":5,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":5,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/68964.9425b58730df13806ff6.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.802Z","timestamp":1785148034802,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/68964.9425b58730df13806ff6.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\ncontent-type: text/css; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a58ab11-2ef\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Thu, 16 Jul 2026 09:57:37 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/16/2026 11:06:27\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 5af01376022eb07af5fbd563f5e8fef5\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":751,"size_decoded":1141,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with very long lines (751), with no line terminators","md5":"2bf9755c7b957f5833bf93c6afc6b667","sha1":"e72b2ff45316aaf6353dee51b3efefee73802762","sha256":"70c1ac6d1b8d155535bf6a2b90b7a26d17f53310f5ec309c4c77edc1257ba843","sha512":"497d2db50576a0153628257249fbd979a402288c19bd370c9ebd33793adb3a40ef6278948e850593969b472f143e5c1d722fbba77b27aae3ca436a5a848a2926","ssdeep":"","tlshash":"6801bd497521a323fa7ff03a4bf4c109a057dc019902f74bad92910584c26e30776f4c","first_seen":"2026-07-22T10:21:04.833947Z","last_seen":"2026-07-27T10:28:13.964104Z","times_seen":9,"resource_available":false,"data":"W2RhdGEtdGhlbWU9bGlnaHRdey0tXzAtSDhSaDp2YXIoLS1jb2xvci10di1ibHVlLTUwMCk7LS1fMS1IOFJoOnZhcigtLWNvbG9yLWJsYWNrKX1bZGF0YS10aGVtZT1kYXJrXXstLV8wLUg4Umg6dmFyKC0tY29sb3ItdHYtYmx1ZS01MDApOy0tXzEtSDhSaDp2YXIoLS1jb2xvci1jb2xkLWdyYXktMzAwKX0uY29udGFpbmVyLUJyd3BvSlhLe2FsaWduLWl0ZW1zOmNlbnRlcjtjdXJzb3I6ZGVmYXVsdDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2p1c3RpZnktY29udGVudDpjZW50ZXI7dGV4dC1hbGlnbjpjZW50ZXJ9QG1lZGlhIChtYXgtaGVpZ2h0OjQ0MHB4KSBhbmQgKG9yaWVudGF0aW9uOmxhbmRzY2FwZSl7LmNvbnRhaW5lci1Ccndwb0pYS3tqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1zdGFydH19LmltYWdlLUJyd3BvSlhLe21hcmdpbi1ib3R0b206MTJweH1AbWVkaWEgKG1heC1oZWlnaHQ6NDQwcHgpIGFuZCAob3JpZW50YXRpb246bGFuZHNjYXBlKXsuaW1hZ2UtQnJ3cG9KWEt7ZGlzcGxheTpub25lfX0udGl0bGUtQnJ3cG9KWEt7Y29sb3I6dmFyKC0tXzEtSDhSaCk7Zm9udC1zaXplOjIwcHg7Zm9udC13ZWlnaHQ6NzAwO21hcmdpbjowIDAgMTZweH0uZGVzY3JpcHRpb24tQnJ3cG9KWEt7Y29sb3I6dmFyKC0tY29sb3ItdGV4dC1wcmltYXJ5KTtmb250LXNpemU6MTZweDtsaW5lLWhlaWdodDoyNHB4O21hcmdpbjowfS5idXR0b24tQnJ3cG9KWEt7Y3Vyc29yOmRlZmF1bHQ7bWFyZ2luLXRvcDoyNHB4fQ=="}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"fonts.gstatic.com/s/dmsans/v17/rP2Yp2ywxg089UriI5-g4vlH9VoD8Cmcqbu0-K6z8GXhnU0.woff2","fqdn":"fonts.gstatic.com","domain":"gstatic.com","tld":"com"},"ip":{"addr":"142.250.178.67","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"font","requested_by":"https://digital-assettrade.com/","date":"2026-07-27T10:27:12.721Z","timestamp":1785148032721,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.gstatic.com","organization":""},"issuer":{"commonName":"WE2","organization":"Google Trust Services"},"validity":{"start":"Mon, 29 Jun 2026 08:39:25 GMT","end":"Mon, 21 Sep 2026 08:39:24 GMT"},"fingerprint":{"sha1":"4E:F2:73:C6:27:16:58:35:FE:55:D5:30:6B:E8:6D:2B:DA:B0:E8:7B","sha256":"82:EF:6A:61:96:A5:23:D6:2C:2C:9D:77:67:04:D8:7B:3B:6A:50:DA:3C:6C:6A:5F:4E:2D:55:F3:FC:DA:0B:EE"}}},"request":{"raw":"GET /s/dmsans/v17/rP2Yp2ywxg089UriI5-g4vlH9VoD8Cmcqbu0-K6z8GXhnU0.woff2 HTTP/1.1\r\nHost: fonts.gstatic.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: application/font-woff2;q=1.0,application/font-woff;q=0.9,*/*;q=0.8\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: identity\r\nOrigin: https://digital-assettrade.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://fonts.googleapis.com/\r\nSec-Fetch-Dest: font\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=5\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccept-ranges: bytes\r\naccess-control-allow-origin: *\r\ncontent-security-policy-report-only: require-trusted-types-for 'script'; report-uri https://csp.withgoogle.com/csp/apps-themes\r\ncross-origin-resource-policy: cross-origin\r\ncross-origin-opener-policy: same-origin; report-to=\"apps-themes\"\r\nreport-to: {\"group\":\"apps-themes\",\"max_age\":2592000,\"endpoints\":[{\"url\":\"https://csp.withgoogle.com/csp/report-to/apps-themes\"}]}\r\ntiming-allow-origin: *\r\ncontent-length: 36932\r\nx-content-type-options: nosniff\r\nserver: sffe\r\nx-xss-protection: 0\r\ndate: Thu, 23 Jul 2026 04:46:20 GMT\r\nexpires: Fri, 23 Jul 2027 04:46:20 GMT\r\ncache-control: public, max-age=31536000\r\nage: 366052\r\nlast-modified: Wed, 10 Sep 2025 16:31:03 GMT\r\ncontent-type: font/woff2\r\nalt-svc: h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":null,"data":{"size":36932,"size_decoded":37745,"mime_type":"font/woff2","magic":"Web Open Font Format (Version 2), TrueType, length 36932, version 1.0","md5":"7c87a648293fbb5b2924aafaa59e8aea","sha1":"c57593e0adc4cf99dd9e67cb782242220a061a9d","sha256":"9fea608a947e67020c33cad9a6fe3d60c54119dfb8cff87768a8117a15ed7543","sha512":"764ced325a768dca84e1fb0cc458818239ce379dbcbdb324ee8849bbe15f54e3f0254ae6e52ee5a92741840637b4f9885d246a0978af23176b3acfe5b9cec23f","ssdeep":"768:mMQPOAQQKW6GccoXQ+OGpHNzXgtDM0SVu7P3nqtPl9Bf2csDpHUjbYE8j2:mMQz4W5og+tpH6tDJku73EPlPOcs5U/l","tlshash":"c0f2f23e7ea5691487c2b0be506b00935344c9bd37c18121bbb953f44ea67addc5d63c","first_seen":"2025-09-11T17:08:25.889763Z","last_seen":"2026-07-27T13:02:53.655404Z","times_seen":31267,"resource_available":false,"data":"d09GMgABAAAAAJBEABQAAAABKfgAAI/QAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGoYaG4GAMByMSj9IVkFShiIGYD9TVEFUgVwnMgCFBC9sEQgKgYEs5kELhB4AMIKPNAE2AiQDiDgEIAWHEgeJOAwHWxMZcYKNTZt6WG9W9dox98NpZyPabysQwLd9ZkaEjQMQgfzQZv//f1pSGUPTokkLgKK6/zvo0dBRRJpEIGqKJlqmKpWKTrHnmLO3HDjOuohcjWPV5cRZA1MmJFzVnKk1/ToxaNgOmUMIovNIldynIR5Dh1uOaWX0etNd/eZa1cQLWUF8rolAkvXlJxOpHLWaioGQ19WQJAiSIEsaPV0qPUEnPW75swHLeun1cdndJOZePt76tX9fo4LG0sPyMvOLb+7kAp0E9/Pqreb/iMeL4ntP3XSnyRX9DLPaBq+7CoxdHiNqRVxfgqe4+oqXWXCTv8biCa4BeaJvFHf753nd/HPfe0leQtgJIAQIKwwhBESWIYyZBYhuEEMSAoQYKIbpCsNAFcdC6g9IBQdRKdq6EWnB8S0qX9FdpWOp9eumy/z/31T/NxwekmSCAD0mWv+ZGaWPPunzInIhbZ3GtixpAA/Pf78f7Nc+FxoNEp4YMllsulkzrdbuw0tUaxaaaIbpJLEveoen6fxHxVKTpBrRu9jF7CInMbmkTdImNZqWikEL3lJMJ/hE/G9lYkyQmSBzYAr/o5/ZD+9m358EixCHhASiJIGEQoAg1lLxO51p18yZdvV3n+q/2d+K2Zi3422nBfyvnOX7v1stsixLxrGXkE45hg+nVOpO3dbMhvG0HIShRSQP32/r/wD2pE7rtPMia7H5vVt+5GftOqdaAZG60DcyuITEkc6iqlsyDSweAUUPDEHG2cj2Ufof5MDhAfICDXjGIEtqru6q+smuvn1V7elZ+Us4QBkYXZBI8UXOAa85WIzU0yxR0I/xO8QllT8/IppIGsWbvVTQTKKKh0Rzb+Q1ai2bPQrRXgjRR6ipeqW69omEjdGPkl0AYWHw5n+bqk/ndFwPPdz2GLgb42TzlAWK3BBJlSNWjIc+0SsZkxd4+K41uxcWjQ1yQF1gQ/rfLctFpUX3v7+CQxNpbsBVUs2emerC3EokZ1o7IdKvjtl2EY1kgIjhylmIOEvET+yrkha4AVt3JPz+36nNSFZhrlUXGR44ft0YsM0y6dc5Z79KDOukBA0IsBk6ARUECiDg/3SWrcZaLYQnyApBUQJh05H0R9J4NGveu/PYC5hb7x5590DHlu01HXGA8YCgzEuZogduyyu6lEnRJVUN3Depu0DF752Wu+FRuy0tykU+idKlLnThUoTBRcgv45DwPP+mpi0+rwKx3ZfkXKn1OFHh9HZbAX82AHhKaQhF0hHrBI4TF45N6aZzUXI5zqx8WKqr/PelaV7f78Zb/hEhuzFKn3TCOH5SDg2n+4YQT06XQwdgptHN0MBw7AZmWGqACgNQ2v2YobZ6QFJpwCxpU6I3R8qRcn1gSFVjKJZ7RtwSRG4Y0iEmep3iMcR7rrvLRx9OLt9Oe0yHow/Xq6GaSnpWYBPwwzuPouJQxHEsKlOU8dve76tP1XKzj27IMEhoJIQgIiIihRQiIiHzeH2txX767SxFTSWiYiJiY/VdLX93/+83/1wwVvmKuRCBgaBiocv38dWQEXNlssqJfokNrOUYSwWjNelr/8elzlJFREIU8UQkLPsEBFwK0Au8B/yChOFygGBWWQ0h4DGKCsE6YHkEuSUnMyB0hA3nC7OxsSsP7Mkb+wjBYWbjGDE4TipOl4nF5DjHIrxUAS5UgsvpsN5KXK0a12qAfATm2nNm5IYJyE2MvEvgPpgW/ts/DCFAhRjFu1Py8e82AqkXBuJXAN26gAwETJcn2Iv+8EfB0MfB7PNs8m228ApbeJ0tv84nX+ELl3lkk0df4LHneJv37O/LYuAZMfOsmHlJLD4j4s+KxGWReEY0Wc8OWCff9yDTr8rIEzJ6WcaflCsXZfaCLK6r8XW1dEktXVbJsyqzrjIbKnNOZc+p7HmVW1f5dVU8qazbp+Ht07r98WcR+zFif63qoVW9tKozZ3X59rj81LF1c2zfHJObY5iO0cFYno6N6Ti0MW7gxts5bVYw/W8acC2ECqair8R5SUGmOOS6PBMNwdJe6DVODxkjiySmJP6kMn5CkVQCVwkIIVSgCvuj/jGIqdQpjX+aSTfZRDYrW8hBKhLUQMkgGuCuABMCKByNcHwIzl8nftLHTw7xC318tI+LoJakIFg0KK6UaJTolBiUrJSslarU1iFcOYRbJ2hVk11rW2q31MFCbz3F53bqyT51uEmR5ynqPEU1VXKaSh/MjS/muJtz3O054fqC8odF4+dLV6Al53vgFAFAQL34n8ZVNZTkLb/waeqSTUlLAjDV2A5A8IfwGnjI9vGsLAkEUBMkG7b6ml4K2O2/y+IRYIcAzMzQSzt8vz0mBF9xawTux9/+9AKsFxgZLQjk4tyikahNtaMMIIoVHKjwAJgwVFS48vpOTnFN4DEfTCOSSajwniTkPBNMJe03ce/UoIu4Ik4/gx4SnaJNrG2EE/pcmOcDEGk56kb+UVZmCKgy/RNKTznjA77KZ9nCPQRz28pGrkmatDBlQCGiE+9ud0nU+E9ADvWcHtE4fQPho76h43QIdYrN1AIwMjjVMT/SIipCIGh3D0ZgpV4WL13FlAl4LJCGxGji0GGuuMqz9EA/Zbpq+Wc8USPEYPoOrOS+ySm6o3CcdTTZtZAa9jIew3ays4v+tEPEA49sT7cvxje2JauZz9ZE/zxv+q7TXzXj79mYftHL06FAC7mt7TP+qKwJ8JdXkvpnXQzoUJnT3WZaIL/cD3AOVV755T5wj0c0XPaC5pBmBR3mv5ewe9yvEMvnF72BQCbtQoL0zN5OxPtjM70Pd4w0vnTZ7jAuXRWQF57buRes6N7bUxwvX+xx0lpelpJdC//sCJ6XaSDOtj2gmsK3V+OE9IpFkv/unaK7bAv3qVoFPTunEw/VUQ6b31vgmz1KmXvN7nVQ8xZkZOej9TLILMru5VnVtIgLf2OD3FuNI2DrShD3EcsFoHPizI2HAHzh4kvCYa4UeRZJG7Qk5HWRCksUZjmoqP+RBgVYGVj4c5leD+q6gUy/66c4f4DbraL5MqNHlLeV70tN6FHjfOl/1kKySTeY/8PDkLC+C4EB6warg94DHAR8eVkvt7ZHanxW8P6keL13YM0Pl6FDQ5jXq3KXJu6G9q0Bh+5jQz2Y+J6qv80MfvfWKYoTqIXnsNSrMu92QOqdOpRnAvQYly1s6syNWAlk6AnaHWeqeRczgKaZ3DpTyrG/D5fRt5u1NIqVh05F/Yteo7gTxvQtdbP2BpOntSd+uSthzv+H757P1j0FOLt05H3NPmUOtZlDWG0RsYb6pe3icqXHxILYr5X68nG4B0dHvayP6lMY1RYsu77eZyt0ltNsrfwQ6WJa1nPnsfeHb3uCdqhe6mtfPu57AehNYYUlGZjt8a/5GG52dC71uUd4A6uMOMRK9MVECHtK2BqXR5nUwA1u7vO7QhkZ65l1X+xxzZutzuHb+yJwqSQWtIRRxwzpoAaETDsZWhq0qLbzw9DfrNMd+wI/HWumP8CP1ft2j6lZlW5KpKPlultbIeNYeeKtk/o2nxIg/+O3ymAMib35PTBGW/zSR3Ci0MD9b1LE6uHanKopyepr6Kg6i735dzMN0Rd7/HkgDb2j8Z0fdByWsFuG2vvv6sQcZYZkKBNk3Mnw5FnT3/tCS07PQzlo/5+dNftV2WrmsPOj55LlVbO7HnX3K/uQPfKgfeFzLqWi4e7jl8nXq4Pq2Gjp8HibitWd52h7VfelTN9DJyZr03EAYHZwzRlWH7yMDDq/fJ8M1hvCcWY11mpNH6N1WU/zZA536zTTvupqm9OrGsyPOdX6TLO+vPbNXIc7OeZ7bbZ26oErYqt+fSuhHpHpMCdl1B2MSPdsJfXuDu7fiUDdu0k//3eZeEBIoM4Oic0Dk6dAzoIF88IXw1ucTMHE5GLlyJVgqXyJllFLplFGrJyOnJ5ejmrVctVqMJeR0QJmZgv16LHIYUctdtpp+c46p8B55xW6YMRy3xpX5IYJKrfdVgxRdkCpA6DRAYRdHRA6OiDs6ICwswMY7ADogLC7A0JOB6QOIKg7CBs6ICzpIKg6oLsDhE0dEBQdhPYOoN4BhKYOSKIgJBIdHRsDA2KDCWfLFmKPBWFjw7nwgHjyhfgJhAsWAjdTKCRMGBwfHxIuHJOAgIMIs1FEi+YhRgxbceIxCKUipElDl04OkyOHk1y56Oaay1OePFRL5aNbZjkqBTWMRgmMlhamXDkqHR07enrOKqxEU62avVr1bDRowLLKKhxmZi569HBx2FGOzjnH1ZAhbs47z9WwYW4uGOHuW+OQG25guu02R1OmzIARQEgUNphItuxg2Nhm8OTJgxdvdH4CYYIFw/DxuQtDwgnx3T7rOc9JZ0IpqFIrknYSly6DnczX7b/2tSBswQaapVQv+bGXCm2GL6m4kjFSqgzOXDjElTiyiZtIODhhKbtwt2dxOZ4cT37VW571xBOS4vzmsaCYlAacvmQlMlkBP8hMjt9WcC5v6svbDyNG4edruQvzlE+uqWHOGBPI0f+3TqEe8wx6fGbjjZHrnLW58P1OSDxasouyQeW8+2S3YFYFlJQjzTvxXvxpZUaRM26Xt2RmMp3SYWk1nRWVWXuWfZUdWf0HK7RqijOUb2F+CR+HE6El3BcWtsbTp9N9YzFzenXzaRDV8KoOO1WVQnQpb1CSYo8lKgqOKlF4aynJCWCQF8P8/qUvMKfdkeMfJrfEiG/oETDePUptzdJgi5MMdvwUp6bKDMVc9iCQgUOsYZbFT51j6X8SWkYvgUGDHOuOkws1arPIprrclqqwrRbZdVLJrI/Kwdvo9PvCCsccZ3DCOTW1tKa71ijmC2MZ03R7e3Nzk92tpfs9qC2swSGUUbOlZFpinj7SQ4uq2i//x7W/qGEZJf2EMS1vkZxD1PMnGMERKKhoyDHdMBMJYl4RzXq+F8N7TONY/OQl7izx3K2ln/fUHdW3dF95PmZfxVPdAEegoKIhLwvYz6aioZYYdOOYz8riL5sMU1A/QlAHvxllir19MW428mtHTMLmx18AnkDBQoRVAe9kNOdJLUZY4/SKHxvkg7pqr9RCnfrpZsvrGJPk6aRtaKa3LuOD/vFNlqjDafORs6Z7QWUdbmSY0ixuQpkHQGDI38skDHAECioaMnTxxwLoESna/nIM+hCJXSZ4Xpy3j9zieaim69RmljpSPxituEMjUWhKs9e0SdcjVqvkIck8JfxyF/9yXU/0pYnaofZzYzGvDmhw33rkdgHGiPt5EJApWaZQghFQ4iilezh0fqTFtTXlpfBhyEAowe8iNAd3zI92qc6d9O6vNUai3/l7tIkeiTFOBk9sALgE4PA2naxvz/X5GvZb+rGwH//2zgirV34uyJJOjXMIQbfjYQaOQEFFQ1a69ghyTgwSJ0HiMTP3ktXwNtzswMnm2hbEZGx+/AXgCRQsRFjSoyQDMmURk5CSkVMooqSiplFC++LZIfJ6JAyOQEFFQ3ZttF8PxMTmx18AnkDBQoR1hej1eAlEEiVJliJVugyZsohJSMnIKRRRUlHTKKGNriFm+onrgdbh1zHNyHqk1T20CZXRs4xp8tA3G945LyZh8+MvAE+gYCHC7nbeRMRKJJklyuxxtMeXlmJ0njiIHy+O7HrrgsdGzqWqZvxuC2/HWq+40Xr0+UVX62HVpr6lK7607D+7rM1iXX91rFELbY3b+/Z5sH5YLC+OzoY+r42JzY+/ADyBgoUI+4XAgmT0rhVa/rKIcbpsyCqDZcoiJiElI6dQRElFTaOE9rp14rO59cLzhi6+d+6oFW+vtPW9TnHr5uodW+zduLbDNkcoRzEMFOwOJwq3ctIMp3wnpwvIGevs+ILX5w2NcG6H3YTaMwCUMYpb85bNMUyK7TP24MCRE2essH25cOU2PSPh1EPcmznnLo9HOPWMp40X8caND/jGL178jQA8gbOgczNfMCUEmclCE3bAPxXE0umX8wq+HL5h2Zdjb9jQc1fIOYkkEEmUJFmK1G46sjyQIVMWMQkpGfl0Dn+5Ls/kfrxlD4WWR8GKKKmoaZTQpjwguvKyrjtcbsJPuTWzej/EllrFsaTKU2xzDGYXNl7tmteane7TexI5aLF7r/8rUuPDuky2I8bRYcDGveGEtzg5HvXsJGmsS+dbcTNO40noFOl2wCFKMgCAI4rti/khr9fHMDgCBRUNeRu6q5M+Dmt9SSjz5hIeRBIlSZYidUjX3EsGZMoiJiElI6dQRElFTaOEdqwTry81j/MPWvhq7Xu+PtYq/uHnFn1Hfd5MCVfd8+YGPFufGj2W9TCG9o3XzHm+PBAH8dt0MF4BAAAAAAAAAADQsDNI/PtLcq+TU7486DpvLJP0Jr2HyxbhcsWJAnHycEpjEXIN9ZFggCNQUNGQJ+keL/448BWxYHZi9no50uVIj619btR+ZgYEGw8adBNOdIucNN2hANobPhyFFmoAznPcPxMgs6Fo4WychHqbeN4ghX/m3ODOgGdtXvP+t8af4EX7SluwdctGoDCBzY+/ADyBgoUI2woY47Gas2DlsKT+avYbok83NsBloWqbWnfqWP1li6F+xJRRd83wHjJ30zraGTXd0wngvN+aCdpWvZwjytLeOdaceWC/jNKOitryeQHwNjgHt40BuNduQ6xQhgEAkE9WmvW2+2dkqIpdHvmOkREFwBiOQEFFQ/4jOjwFEZCTg8j/bwzeHSmWM0XNq/tGeorXqFNGTbbp8S26p+e3qqWXgLOerMc8mPlF3Nv43YFQwSPghERjXRjgCBRUNOSOLh5b8puPujrekZUBlTUHKh5bGlbVPGbUZARDVY2x6cBE06NNjKWD2aQ/xmDB3bMBXndxfoOO5LQmctbcblQyrg2lGWBpyPvhZNgDjkBBRUN2bSTDdUzsuyM1fjb+JABP4DhIzUQLRkIg7MPoWGNxYsXjhOQwVAKIJEqSLEVqN53tHsuQKYuYhJSMfDo7fPb8coxWRnnpswwKLY/CK0WgpKKmUTIuJY2AFikP+0863f2+1slMCGPEMm6U1C81OVbNusb4axHnh6ynpq4z46XN3W40PnVPdWmiwewlSqqew9Cnw0q/9Dlcdo4YR4cBKMuJRstJ6p6Dh0nnuxfyCmDk8qj7/b7GEHe4hheZTJ/bMXLHzu7utVgPiHqLSmi9LDPk7Eriiz1DeNcZBkegoKIhd3Ska9D5cWdseIA6wuDarhNPqxwtrCbaI+VXWkBromOr7u3YjJcjesynB4Xdkv7Y1aKWgXgfDop0ft5tbyrSTaiUAbghntPADByBgoqGnKaT7VUCuh0TbTcxaM05L4laaR81jHPkTqHaK7VQp15jMW3etus8ObkfthMORey92t9N9nH7g9NUlrMmF/hopBWytD6ySXD9qaLFqmrtRH0nb4clzai/fJDXdBsrUA+nLGfjI7QyP9EIjkBBRTsiW4+64x/N/VgVfviZiO138o/H/lGPlZFF0Uq8Q/s8Hgz0pRXJGpZ1RiNlymuLitdT+fQwLBuzPhbTYPPjLwBPoGAhwnYCrTKrSnMfOpV4kTieOolHN532PBkyZRGTkJKRj7PDp11JYVMESipqGiW0MQSkBlmXV5qpmJ5dWOuuzay41P98yUqTmeYOr+7GSByg+LKU9I1bvY6B3sARKKhoyAW1or5VKOMTrkGtVmlWUBnQ6CeNZpWjH2dsz7xczCS6RPW4qyyTYC14gb5mF5TcPXrFKH/r3h3WQCw6ffPlvW6tPrbbmlG7G5NXdsW96apUbA9nJJTTXYIhkihJshSp3XSKzjJkyiImISUjp1BESUVNo4T2eVTjgLJ1Q6nZWbNVK5ooEwD0SZpDRh+HvITqQkgAkURJkqVInaV/jY8yZMoiJiElI5/OjtW0HIrXFIcUgZKKelysZbJpoCRaXKGT8Dx9+FSuawzvl5pBvbre82SwuslQs7frQ7Juo7BYjEntJahYMZJmyppXYRCkCKXl82E15hVAV1HZhfrPAHAt3XR1T8ZDpixiElIycgpFlFTUNEqOtG2anaC9WpVaqw7qf92E15UOTqIlb22j0xqSLnlcjfd8VN/61rwaWREe3GfXuHpcBWl3Z72a5wUz41JlwSG1Yimh6XRwXWO0edtrCp9/8A3oZLVad45z5gNgeBfRRazFuWfXTqOoBWru6dagNfGWsItYcwPGhUteL2KZP3P8csA43BuZsohJSMnIKRRRUlHTKKFd469/NAurg5qZkOUeTPaPF8fqh+o4fMFnAf1dWuIOvROCok6CIZIoSbIUqSX92UIZMmURk5CSkY9zMK6ksCkCJRU1jRLaizop39Scsk3yx5m2p8NRgqFQkdKvF1MBkKm2r3u87enS77ju268mxFzHr73+h4NjOUohVUoq6qzmDNIYhVruvGnV/hUtN5+uekSiUP+Yqd0vropFm8qXkeN62oZVyV8tTju2LF/N0FG5S3oC5mp4cByfsmW/KA1UNuTUBu58tHGDfvDVdqNSh5X8/y00j8T+BleKWBxf858Jgun2fzZGZ+t6/6K6aUoTkl/R7Bfba7Hj9XD+i1ZT2/ChS1cx3S3MJ+1Vpb19NPR5y9Cvl08GlC6AGb1WZ+wwTDKLV+80Yflsi+o0UkvZi+OzQTIOJjY//gLwBAoWIqwrpGSzBCKJkiRLkdpNF0qbDJmyiElIycjHOQHtEgUpoqSKGjRKaK/Q0dKkQlP2UgmfqLKyaxAlvqpTm13qoH63DpWar1jNM8HOlUoth3aP8pZovzb0hqhpZkHzbRPjuRS649iiuPqeUZZhHiK1xmYN6kr9qy7XO7rfLggkTYo5tGeg0xHlVKWHcAsTdgEs0w7MACANHEeRR/YBsLctNdt3WYWDpRY5kg3ZxSjdir1ktfwJMsXYcUJIBoi/D085yAXr5CP+kIrAGt1lSjDFygOP2x48kbR0mCmhGzo4TBnJxTTHEtUVAx6HJvw6Jcr6qpKPzMoC2Kz+UTMA3OL4bJOKvWGwUi6WDProqwahu3VEUqlRSqdAaDvvywTLpAbrpJIbomAnWc3IwnuzjfZ5GtBSetZpiZh56vRFZQIHRYOdbG4sZzDT7BKxBcCt5MK+SNQsju9drfo8Hur4rEnzYscQjCkMjkBBRUOeCfziOvcMxjSXqVqioVoYGr7eDKGvp82Oc0pnJUsklfItAMvGFaX0xVEh7+IZGByBgoqGvD3dgRnFOL7HKbEi4yTOdLRH/CNzCh0LNWVQAogkSpIsRWo3XRzHypApi5iElIx8nEPIEAWnCJRU1DRKaE82QzFLC53WfGNujKHLZzY9tqn0LK4bKO/BJXdF2rJVHke2sDWxM0h4djMLKoU7ZrgH4CRt1lNxucjMoJ2CJtrYCeiR0J7VTNqL96li4X3+jOdNsB0/RXZgJprb8foSSWGZPFtgWwqNdbPw/gaxRkg+aZL29fbvVHax9SYQLbjbIa6wWr0yM26s9xHjsrY7a0dosQraAmAMR6CgoiFjTpcerMM2q2m+0wBHoKCiIc/ozkkPPEVm+JbqWBx6IpIoSbIUqQuqMlcbZMoiJiElIx/nBGglhU0RKKmoaZTQvqZr5HfN8HfI6EoPvTpwDasMqABUAGYb19Z3f5XbxSLsuauYy75E4TPW9POIDLBI5OzN4pzN6/Z6OC7MYhdyqKwigIIqjU9UWdkifm+tGk0Welv72efC3ALY177UbLA7/Hex0/wAQLb2/Qt1GkMzcAQKKhpywangxY3OnBcV0FcA/rpJ6V3KrG2EMlR08iw0Kov0HzuXTdOXgUP3KIwx5J6+W8dftsrZvhrv/a1y2rVeTJVhao4fH/Qao+5drR8vaegYhKFRutdJYrhD1VtUTOqwSDOZEAWWqzbr1wEYmaewvysgEq6WFkRO7MKZkDVpo8hETe73s3b8NtF2BbxrqvYHfOWDtrPMwbDH/t0Cqt3AI6LEwckjUolCTCMjxpZVCDRNP7Z7aDHQH+sZHgMa87cLjo+MDoOF/28KN4DcEwOZLiA5MdozBNIeY9Gpi8MTIDY8NCDgGOgzMorNGS6RYKNP+ztP/9QKH8gJaZEdcn4hqsDK/1QvxHGxAe6/0aBL3hmmEAN296P6mpMKCnpiA4OUFguvSjlFlimU+eb5vuHsUUmXH6ruFl4ry6oJ7mZdik9kvEdf0WYqjYzwD8yUYWZGpfIIhfgeuWcvjWoDKrKFzP4rxuHt84ll0/v5yTO3pxT6kQ10+NzvQH4GvadsI6b638MzDufpMy/+xcl1FNXLDX1G4vum9xPvIyY862+osFR5+Hj9AArld7cI7hLvwytO7C7lXv7PSbb0Hvf6B2cZ07/u01tsWdP73Y+X3ERM7y2/yEbUzJBfZyNyZpzj8+zjy2+yq0ImwG8QwULaMjLCfWMYCarVsBqteqm5ECS7JSuFVnIhLb+inXD9mmHsUG3f1TXaccKQBho1QWGzs9D501PZwiBGzSC6z2nrTvCG2Z983F6uioID8lGhX3CeB8e+Txq8FIDdnKB4lL2KS1mBEyNzXREVN+N3DMWy5RvdqEANS6EshsfIZInlSx3ofvrik/FueIdcfLAxrKG5GFnsQ+nhCDv4i+ezzQn0Wz+vFOO3W8NZ3+JauLB/PLN2YFE7Oe0ujsWQH3cMPabGVno9Y+YelfXxhR1NhVVVxtr1pQmDIdJh+xyqCzLxvrTTl8/b0AJBfb2m+1YkWiPqQIMWejC0cnPdckLbtlZEe0XLhvgTS5Z2L9bbw8Q/9U0zs2u3H9PVqyfF5UzuOjp9dFScwhhKZXYugtygUFhWZrt+40YWq6go279FNzmpaS6NLx8pSJKkId0z2MmW5FDUHZ6rltHkNXIdZl7WSrQpcHx4uLFNIBArC/oGG4JlnoPGPFy+/08MWE/z8KX1Jt+/tD5g5LV1U5c+W/d0/Yv1FKe+uUX/d3fY8VMnG395gPGvZzT99RjjP1ua+7+wLgA8ABT2/H1FAfJqeGL8g/H628jr+O8z+Pnakfbz1v2rnXtj/b4AL6/WdGZV/6ai/6Xr21f0tPb6rnL4Wjj49utr4aubR84PL1zIKc61g1sr4AJiYAiMEifIfT+HD95j2wPPK/c723u3zzYjtylu3m5l9KvyL/SvCLxFugpzhaXCUUFUE3X2en2TqeN66iP2wyjv/w9Z/zts9FM29iqbepfNvMHmPmaxd9jqE2z1Ff73Z7znTd7zPu/9gve/ywfe5cNv8JEP+NirfOwtPvkWn3mez7/E59/g0ZfE5Fti+mUxf1nMvyEWXhYrl+XAO3Lsipx8UU6/JBdekJsX/pp7RsWeUfHLKr6pcud05IKOXNKRKzp2SS9d0MkTOr2WyK9MTztNdwNu2chtBwFAnlhB7q8gZ0lkVVRV0+NJ1Pea2/HxtcXI/eVfQb+X6e6T/IU0HltBAel0Xgyst7372FFkwq1OBzLXxLrwU2it9QESjLBtD2RPPb0KkH9T0dMALgDEX3oIYJobBCHhQD8mMD/soIMnly8gwaEH+xcvoEN/Uv/vzAJ3mD6d2hlVUltMJkmUIG5wGCzGAI1/TYzk3+xlvbnlsp7Mvaw7DV3WlbbOtOI3krNYNOPcm/pc1oj5r6i7gotq1AS0fnYqE5ch5hnf3voVeHrvNQDUbvYv5hcoKw0QcM5/xFOoo9XtQl9HAkJM4tCWIdLBP9WWxUVwZytcnLWOsAbFIjEvXeIH/EigXMiV6X5mPbOZyWbymQYmZjxqslm7zZutSnbNvwZNXALxegyEYV4G8Pw5fUw6s/EB62edDWxkvU8z4beA/6/7R/5x378uRdpNfQPAR+emGr7+Hsq/vfLk4JPcb750Jn90KSBgaWBzj7wFxPnA1yFOpg34pXmZz11wyA1Txoz4wqCDJnU5zKxft70euOe+XqMQBhu27LGwuXDF4ckLlw8/M4XhCycQIVqMWHHm+JLFVx4bCI1QmnSZY76SI/f0Fv8MlXF6hbOxp/2ptqL+Lhpur+bjE6NjvnXcI3vsc83/XHfTuEuhumyNc75zJUxXPdRhd0hPXLQ/tnZZa8gO2+3UhwpDIFHQ0DE5c+DIiQc3M7iz4yuQvwDBeO4IMlukWaLEC7VCkgQiKRIlS5VBTkJKZpF55lsgy3JqRZQ0VO4qtlKlT1SpU6ZeiBJnnHXCKaedhIBuGISFjmxAS9VWA9jNNFtUowaOxXeIP8h6SA1RHxKQj0ma3IbQ7hTFDKQFoiHRgcRehdmMooZh+OugNtLIyqi9qtQs7Yzxa6w3ZVDNGEB0Mwnipd3Dh2loeBgT+YQYoZtogDthJc70IQgCmawF0fjRIjMnZPOyFreXGVGXQnS1QL0IAdFsXFECorgMn2Sy3gFM5+M9IxXKRVLk3CdKBj9rk/E+ImSS9E/qcDNdoGzX2dwlNBgZopq1+G5ypov3IP9OsmNpSqqxp0jq9GvjQWud0xyMacVd0FluYNASo+cxky0YeTh45xUwzHOFBrwezLDpTC8O2bxIIu8ynl2jaqwsvJ0QrTlnE1CliT2oV16X6EU9J1icNpNZrbSGLOFUKMbriF+dm+lbnmvKulnSnl2SpgYDXIk1r2UlYiBZ3wgpVTSWpC4Y3SnmkZgzxpfY6xAVQt7jOWTfWWIAjP21sgLbIIzlwiCOBmySet5obaiHtpDitBYBV6YrIQRonD+S6cPELlffgmJOQ68cLSIMB2ary6fQ+lkW1HINSvUeJFpfCw6AMsUtPvB18+yOQyqcnAyBCZQUe/LPcshphUNPDJ8pE4kAsTY+kmK9wzHN0Yh/Ty+NKC9HYv9ryIheGYWipJQXTxI569ghJgEnF6o4Zm+aB2XzQFM0TfSZgKq+X7/gRzrQwCf+5PO4gKfBZxhTLVUvnm9dfaGAwj2In89XKdTl0nZLY2F2canKqmHBl37MUdD0afJ5VnZ0fiXXsgfEqn2cVOMfHIFwSFIotT48Tv75Q9tYQLgZX3AaFdS/wtreWLficCn7hpJ1pUjCHyFZrAduiHNIlZB0BhaB6Nwk1amnHNYBynVuO8wbT0xj+fhy8HI4O2NMVol7jTpfCC1Ex/hBzaJ9cABeyY2PP9PZxd9HPH4zH1oo+CC78t6/Gs5KAnjny5DWvvJ9wbtPm8by/hiiVFrzKB8xg8e7OoN3lH4NHr2bjpcbVXenOE+MNDO9OIwFn2RL2jNfBNGlGSCpPqnRmzwnuDyeser/q2H8aNx6RtSYZ0jTrUG2WvXZKl19uugj/FBp6VTd8Y7Mhksy6a0Bcb3H56uhxo/w3IIPr77qcPRRzS8C0aDigRtt7KHH/+WPGPdRR5iySA4oxrkqBn0X17LvKb87kYZUpb5Dokxa9Kx93tYyCtqkTd+4y02n9AURczzaBx1A8+52ShjvabTn0OPSLeHRRdY/M0s1eWUvu7FFLJXAKIRw+7m8e2V3st/eHzutmvk0n/Mc6U2TrxWvztVUqVlQRbTapKebtyRoNDjY646WI2d5SuHDbS6Q3peSwEot5o0bJ5ChLw9bvFMYFgSSciACpHsByyP9sA+Yw821C+oYktR4eGug2ULpHK2pcTJuroDL3YBUsCG9gJvzWxZ64ovX0JQKXPFEulllYs80/++7qf89mV1p8/Ux0ElAe5ixU63GhANl9UowhJXnV1LV58/Muque6mQNBns7T3pBBNcJ9O2+2hxfTLxyrizkOJfhgYRyoc+VZh8UtdIeYaS4kOLqNJ+pBhiorr5+V77XUP1L0EbjjV7VzOQc76c05bV+6dWeI6W4UolLp5ex0Y53dA3SwGmhizSg4vwic3qO7emQI902qV1lv6rMz3btZiqQq9bSKu1ojKO3pcibhhM8u8put1nXCRhIR1G3OhauZV3IgFlXveRKVtDUSy+pbApJddjpUCfpdy5T295O2M0VAhU++wO6rKcQJRQs61U2mSi/Bl1sA1lZPdDaRvQC+tscHVzzk7QO01aLSw1Uw7blFzn+76yab80CbaDsOKXnGh2msTHujzKcoK+H13/g16z8DjcAeHT1uzRaN4De2HCwdaSF39u1cT3jrTXbayNHwuEyyb43ma+7ZYg/dIS0jwQQ7mCGWEhPZbXsAXJJKFify1K3hJ+JcqfATTSkdXcSXYEzaDDdEiQthFjLC1gY1gjIIeHpUIPPkXDeJOBxHLbi1lxDoT0IpY1Y9/Bam21cs0WaDPEX+NFR1aRAso8vzDS7gQaWAMTmm+TGA7Mw9nJ0OUmDrZZNfajI5gF9hl14tY4O2m+gRXLP6Rpo6zC9m4zP6HejbkcG7G/19oNxQ6J0r+mLnhItDdkRf1Yxo6jviiHzJnLPZcHpdcwEqAvT0LRP1m9GrWghwW0T739DOvLTHUd206fJTbR7GLGLvu+a4tnaW8jQnRR9+uC2M3dpHcfenbeQdzDPXKtNOvrqzNLeqXgq/vJSpulSym1LOsF7NND02vEMJyC3npIiyctIM0g88et81Dn065eUlOeqzSOOwtdorB8S78X8BsidOjoP1C3Rwvnwkv6oLIPqJyR5U1Uqr5lDzbaztJmj7/anP5dueZ6hm2bK9DLIn8jmrpZZy3J+ApIPMjE+HaZY6lJfDGeax3zxTjLNDKlkyRRakHagDxVudputD0+B7ajzW2/NBm3XKb3WMLq6o8IUATY7w0qumiGVt9AiQbYpKZqvvp1DqtBV9ofNO7wvaM2K3B7Y4/2f5zgnyDrcdE9dB5fodyPVZDChAZWrIdwN2LZlyX3yhJRoW+XKKK4txSQo2PXlOCeGQXzHidKGIhWSuaWLPmJDA4clR44AsfK6gvziG0NqM3wkvB/a7GM8XWDim5InwYhI8aKLmrz61ndWyS7I+hl7HllrzsvbMvJEZbbxL9jA16gRZbaU28MS/NkhQR3IxqQbQjV4GBAWr5qX5FHnsBAOaW/fs8NalK8pvAeKxZsVsRiUmGNCjh8bJ4H7OlYBXvdMAiNnDc4D5bNsvFqsX9iw98jaFWuHEWWzZKyIpqs6R8bl67lVkPtLtxjLOt2/EQK2mswyDDBCX+5mO7JV4SaMpQ3v6zs9PPqvk/7XY/TAgS7gkDyetNL1/C7mPwPzqp1f1ZzmUjD+RZQuuo+9qHx+xTfL2wECSv+9ncUHKR234s7+zvKpwfKAevPtLdWSD1+ij+FelzcLZtGPH+r93+fkZuoO1rVse/bfLMeSaaCZgm9n21EHkB6+6lZIZUGFRkq6eTd/9ZpHIvbJ1cpYr8L9EH4X6bebjEGCvMNxCCNQrdpIyf1gOa3vlkTg7qEhMkKSvqW3jldnOsqsXX7KM4wZZxIJGIh4qC7vvx2Z3pUBgfTwiRW3U95DI0Peg7dHVizDl/ZN25UrY23KVdOOvXcKoGm8S7yNGoau0sNP4R2XUQy90ZEe/cR4GI9d5WAcM5imdd+cCN01NBi+Z1+yf+q2sZrerjMZV8Q3gZnXxOPmmRGHc2x8Lr/yfTtzypc3AdqsutZGUHSYOlzl62XJ+C5ZxnPZ4CwNTcjkcUuU08+EoTKCk01lp/r6YhYxc0yLsmvz7+073eMLVxyUlxF2E7uvnnft/G5xOx+cfRP96XXAPX3tYjlAqBcJWEsr3peg7h4aLIV9yYWZvcngDw5BtjfR5/JOYJaZRILYhMPrKZDvyBjwXTQfH5jP41rJZpp4hbK9E5kLBZF17ekVKldwg+2VJQdw4rIQE94g0g8s/jKgTzWqXC5h0XEDx7UOFznpwKc7iQHp4R8jizSKpFGvaB/QUruYmZ0U6TLbSILamavmTTeFB1RxiZHkgDpy081f7YqQpNlK4pFdwJT6ZbSrfnHWh022UpR8H85okKRBp+igT4IjW1jN+3Wp23Uz3ZuCbp/Z4nRGNgIRzTeuNffY20Q8zCnUyOzNPLaI/aqf/li4wRdx6FXRbjnm6Ea0MX1b0xdvSYMPL/BnvzfkqjvB9MvFHqNC1ZbRggvTH+FX8f9Ngwyac7Een+p4iZrHxNGAQKX2CeAoNk+91IFPLdGDprz55Klu8Lg7njcPTr46n9jTCiytqfvjoDOeeHO+8347sNgB77POzxLpR2rBPbWpzzo+70g/ygB3M8D1oh+eSs8vZ7y0PPX9U0UQZm+Xt7lesnfIu13gd5o5BAkISKkiOrn29bIToyI5Llsdi5qcHXwl0a6QJCw6T04b2PnjgUA1wdk24WNnr0ae31ffsDEXntEsIUgoKEmxrZvkr6aFEgeR1p+XCb7CFpct/zPNNzgX2jSLLEW1JWvrxT6Cz9c5VH+HB43eBGxwDFjOIrd6mvgEbBcLXVDZGtl9exrqN56tuCjPxsIeM9/B/AD4aDBG19MANez9kIKn4lq7axgzTXm9pulhR9iJeGQQZdBD0eAjCi+IonqDiMJPMiCkkWM2dMofRJeM2cnEdHuZL3a7T6mGXRAcRWUM56sPMrl7Vo3EyjxLU8CP5hrGjNNer3FqxOGytCPbYOpDb14YTNfj9RznWbOUQS+KPrcCUfADoqB5FmO2KY/PtnjS7pTGmv/32uy2C4fN1M5gPzJcO6qlsNVThJOQBSSymMkoo/xi+RBKI0bT+KObX1Lxq765Rw/YNHLIZp4KBE1LRmxOd59Ns8haVFtyyObJwiifFXbyYbeu0SKOOEWQGpOeixw2km1C0E3I//ptQb1TzCvhY3c+STJJwDyH9bP1pLqO8909u/HrdFbSUQPDXzQ0cyzO7HsCJQrBqbrOtJPRE3/jATPjnSosJ8wLiGGptwvxrUfbZJKgQiENtMpR1PuSABs8p1VmwTRfaNT195tVq9Zc23icTpxAAfEhJQHbEkqNISqVpF3iCMeLes0wJhL49DSQfZ2aFnUzAINRyqA3t5VyQEx6AfeTTgH/H56Tcmu9Nc+BUqH0YCDmHoCVF6q+/iFzYwHNCbnrQ+pDQGzO0XUvQYKaoFgu+PHGRbclFCpDTCpNuSQRrtfs0Qm+5Pj0xRQZ1vPftZJ3w1vB2jaV3hiVykRADWT3mCGbkO/VlwAejRi1olOBkHVqzEo4R6xhOhi0TY2qWBJ2QZIoahVTTkgMuSEYEl8c5V8HED57LfDltSdpmVweCQYsMABiIvZhKrjwGUbRcwtoSRYmHRnDkZ8GjLir36Yu616bRRIfwRPqSNXvrhFJwmZHv/HHT/0BDj0eBobPjPW7NguL+lAhxhTbQPrJT715IfChHq+XuIdw54Cpo+I2tyPbZA/RXcTcs/XRCBQ8BTDT9IJfnpROJTQ29zBmnHKXPySYC8bqDH8CWtj76T+ZtmKVxCd8lDRAATdD3tbC3PU23SrPATgtsV2kcYdjrj8XBXE+7alp+WBiKvdS+QccGLaHedpQj6/AFcEXyWW5LdWP4330UBOkkUnxKB88U7hgMJUfidiPK+V+Ef/YWl+9QyttPnLw4BsNUlxlcRFB/N+IsijTCzUeIgXLXRLuK7c/8GJVmTD/FSfd4tbLxM6QABRLbA1su57RRrYVLXMtv4m8iSELyjVO8A/NEJNI004pxfPYPCbIIeR7daXUdS/RCvRxFfjilWttu+8H++6PvXINHLn5GlX1YNnqB9OrH7g4fih607VY83zF3DyofvjPh/9sbz0ONh9PfJzLxKcnwMYTYOXJ5VVNb7+avGcGPDLTavsEcPHaoUpiAq8baiKA8ikf6fO7QbzCyeOV8L3S69Sxr5/KWUQvV5PNdEaLSXo/IfdIoLBaAwXdYpnSAV3Iw0wpUxMDJhyiapblvNBstyMy7ZhCnAP8mFQHJeKQRisJBcVygw0eWKuRhkISokV8XgSdl7Q0S96FRO82ghitfV0Cv3toCAa2trevJbA24jJ1YOqZRIJbOxwmU8qhgoGP7VMY6ExNN5luRvWHgdVIaGfGe8Z0gwre7Rvlsi+b7cIQSNN19yitaFqqSRKIsMvRHo7GPKkoAfxpjiE52rXAGc3n2nEBgth4zQLkN3+jTEWqcB+qkx63GHEHFhVqW9NyG5aUSQNy7u3oso1WCc+N6FWdGQPYtKfHFvmx+1S/u39P2zdFawBE05z9SlN8OvxCFHcoCAk/gCgFPhyS6QOIJqRfNeFC+J9vC3O1qgjHaGO2qpTMNjMW5wOc5s3ozKnGacti9PGl3VF7SqGNUv69XpNRFbHK12VrFuRgH9cHWhBjRmvtxYy6wUFHwCV1CoWERCbEnXyp1CWCCLEEIlwCsKV8csb5OVqyEoTTsEEFmjDBLNeR5ZOmCKJSR7oRnKCBVBEVYopMbjnCdMEmS2JI4XAFvE4TRuEkSXGYyef0UajLpjI6jVaUviuMKqcN8Gn2DoUmFvHv9ZgM6hCqWJulzs7DX9zqb0GM/VoR/aJuT0ZnSTVMWyYtTyztDgTDLAlLITwilTqFIlwq448CTj6g75mP7p0HqXSzvQKKi8SdwDctH02+08Vu+ruu/ozRIbGhFv7QB82i4u+Dxuc04M6EGdM4HFz6exXNYkbDUJNUJGnyNDAamxoLcBQu3i/SuPTiFsEXWe/2s4SkDryWtj+quOec+0epRmp/YHrwEACqHAag0wGDcbGIuwjw5fpTrbFTIH6k8HKyHOEcpQO6X/8tFvgWxDVk4aVk6GsRr/7k3yfQ9W72wRbIW/Q4LIeM//r+v8Vi0KSN9yA2Wy+iS6JuS3JY5Mzq4h5XUV+hyj4gkH0CkotMrHRBJHhcXbxbPyIiF3TyTtDL0+X0UNXIAK9GGYPxr1zJjn/KHL3KYl8d5bIDZbOSw0SGtm9FTLzFtNlYtCpWsg8r3bcy9v/N5ntQtDJqI+Dpm18P3PT6ROsEy/5PveU55Jn43X27G3ikyp5JRkwVlKWGMyMgM5ssJjH5MmYikBMA07siyR2apwYGWJrcGY4VHE3crHiwo4PeffLm+QJYtevACDscLYh1J3Yy/vAmdgDrXizi9rDvf5jPaPzoAeyBD5sYggfvZ3sjLkzjFIielzbde0CoUnofzTqi9KoFB+5tlj4vEjhB2d44SfMtDwvUKu+hLHOzXSV8+JYmOGsaLOLysu9/UMCQfLgX2/uRmMF/+H62J+IGkj1vPIP3ansJ8GLPM0R/F/gzIHup7vtU4nvPX6i10vj34MXPEj+ZdD/deCm9hfYn8Ox8ZEvTZyj9zHxome58/KFFeh7fnDudBOumkRMZe8HQwi8Ftk/HrlovAf/h044GC4++UdQapQAU/OKjkUQKVtE8a7U9Pdq1Ho83gjEczBNdluYPJftuTgs6ONm1iK44vupjJetpb2hi/J1zejtY9Q735ccTdOTE9o8K8EnVmVXg6JGBO8Jt+/oXEc/ObnzGMzxyNxXf22uoH1a3+lRKk8o1wCrZMei0eiLJgJbVY/HHJBozaU2ZamdJpHmgl8csYbrKoqK4a+UmRyq5xzY8ZTyUbHeu2WjvgKly65dvdFXUABiXSII4ka4VCp7eX0PyNWobyF85d1rgkUpgIijQa4NCmCyNSHYIpFY+01x9z0OP0TIXqQxpm0JIhaz33Hi+HaPbA1oR34bzpMaE4mcXjG05GxcH7lKFntBhy02gvmdr0dx+FZLUGxSJfnXwItN9JnwGsM7ZexBNa/4zEJtxGtVkcKg88Jtk4DU45t841ahXPyuNsVhggw57/+Njjfnq2EpYA3+crRVVvOKlP54JXv/j8zpmcnXsUkNfCLRnlxxMxO7I9HvJwXgmcyDeekd/hmQHEn3Ljd0aQ8blIiOslNE96q90+U7hUongKt+j1/G9VwQyu/RXXyU+GnRF05uC7h0daQibAunU5gD8dAcSbQ6CfxTGhFKRNBgViYTKaIirYFhjnCiurEibu5X27rQRISCBW44IXMwQxAn5iBwGfnz8+kWa3d3S3M2WU8vFJTQ7O4ZtKKjfoL6ijsMO+COoMzpWvqQ82GnJG8+Vj+YXgGWe+6RRCHme5HLvNEJC45Nm+j1VeDOdcfOFnwPuHhWlalnro3yRszoHoMyu0K6g9sUmOvm4E0dfqvRBYr9GI/H7IQXii5KBSP85/OOmTDi8/gLlD7QGAu9p6p5/TSB87fk6+vN3CgV3Pp96OxTMhEJvQaJgOAM+xvT4CMP9KPwRr/a/6JPoE/stT1pq9n6e82+Cxdqtdj/MbtxWgUEWdTKtQMl2LdIu8IkIr51zzItwKqxrWlgIm4oOExfUxlEjMDxk/tFcuv8z09GQ8eDLpgbHA3Ly5+SznmcLT5LvkUCWTW4jwcaBivUb1sywaqMzq2BmDYu/RSD9h9xMvn3fdeW56aydOUDS59zp3PFBEwuU0OWffru+36WzLv3kDaiHn4wYLn+/8awnrZUruzxdldvIkyQovtb47CKqtiHXax21rOY0vRWnahpzzNa0ZQ14eGbHWYfhI8D76JeffXU29tIGML8M/OQxiuGz+lDYLuIH9Auoi/el8jUJtb5lNH0RbNszT0HWS5OQQsijVEHu0EUiJYQit0op8gz3wkqf2s7mrJqi123YzmFvn+q3MYHTQAEMFMWAVeusnqqr27ND3AAEkeGMpF75KJdtCzt4HNDnnL79tvs9uf/ke+4EkCTg4FThmbg4k4ixykFf94EDd3ry/8n13J9h7OMzFI/jCNvefXQ4IwEl3V7wrcQqdWIHjOpbjeOcKgewNeGIVRyMz1bTH6ud2d4YphOzlXUPsW4WQBfPtV/77Znnei5KegF6O+nfoRu9kuHnyayVy08/9wzCzum+s8Sb5vBvz6c+f+k/z9mAL7A+O//i5PfqPvTcs4rnnjm9ZlWBo2DNyuuFM5c1D/y6Gz7/bf7FZ63AF9ieY3S8fl54HsHzhntZ870/nt8QCypn1qz8pA2Ep597RqEfUrQ9LBjhticEybH/10yw5k5FgcDMHlyW5d09c9ruPcjdaybGE1fZmehvgiMgQl9zrKb6OF93urrm1DaA47VjADFMR1EfcJR9dJJGgitrAMne2poq5Nk3BR9GJY2AUj38uVz+OSw+ov5D6MhLdNDQWEqva25sKAfH9Q3aszXlC/lIF5vXwL9WU9HHQ4JKEEaTKMhWt3Py6bV5HGSpjgjeQuO2/JbhgGxOvj5bjp7VAFb7Z7exBaveSDZeln58wy5V8PbRebaPpyzlFn0M+q9r9cAvdWLOc/9s0GHyuepjbxa5iSX2s/cfpVrxo3Ba8LrLAmi7D62/vix+cgACygE+EblRnHwdhbF5H40nrSJx9lOzYEQ20C/G7DMG+zF4ECyk859gT2+w50FzfSsFBqnGd5GPv2Sly0uwvz848uRjDNfwe4WGI1H4a97HYEkrU7Pg/SkiF7wXIhgOEVwKESsgrgnuR/g6bR+O/9QSv9Oe/ADdv/R9lfx9gih90v/XwzE7iWVzMojpDGJ6gniFLe+tZHomrv75KfLu66f3K3sfZgIoX0pzvyMqnJ7+Tu+kMMXiUy+gQv0cFWo/KsaYbAnqDqxQj2KFugUr9t8N+EGtvWLa4YgFsAuo2Zn8zHfLh6X/Xw7YgbvVTpdKM1u1Q93tdUrIy6HbDpnHaPbe0uFFnWkku2GuKTeF6jPPHFnXDOISBBZnhO1UXXMAjJ8GQ6mEkh1ccPsfr5+c2Qew0qX7/uuTBoLvhd6FDV4+h3VPszEDgNEFAiavSkfkXozr0XSwchpeluUT/E91N1+BlGj8VwA0YTnfCwbw4VANnP+D1qapP0dP2SzVz3kIl9PeMsPhpruqgNB0sHLI5EtzZKqA0LS5HDVYIC0EZxauip/4CeAZtXsMLhRk9HNE/E+1TSrAgJ9stwoIH8Sr+Q9BAd4ZqqnO31inpgH8wouA62uviiKjHmunCfBTvGtbFHwKCM9gNz4xJJBAY7oAeAa7DTyLPWrLFaC7DcQPPAFO2iwKPpJoh4b7kBEEm6YtEgU0ClojNAqaLtHkGzBAo6BpiIH0sA3kLnAv5XHIQ4bUVYQZ44WTsKL/5yPZWiErRLxGUpyxFNr0D0Caze16AgQEHKRFww6QlgYGSRSptdl+Q25RzVBc5Dls0jX037I+Th5Xk8ityA9Efj17Wfblejf6LdGfzunMmc7ZLmfn2djXx34sdzr3Dus71RL/uviP5iXyxvO+XDhY/HT+h0s+9v+OPXuS+5vXRHwN8cNFbUUjRbd4Ywd48sdoSdraXbM4oNhUHCkeKJ4p3l08ULKvdEbpxtLuMpeyp8uV5a7yzvLp8u3ln1Z8VMmq7KpcUXlT5UOVr1V+UflHladqXdWTVe9XfV89UP1y9ac15hqqZrBmbc3+2pJabu1/6zJ1p+h++m4GwjhTL6mfqd9b/3j92/WnGrIarA0rG+5rONzwScONxiWN25tymhJNrzWdbY43/90iaXmCmWSuYylZJ1kX2NnsOjbMRtkRdoa9gr2H/RT7GPscp4QzxAVcORfjtnHbuFu5j3Df4p7hXucZeCv4C/g7+G8KFgi8gt2CZwSfCX4RFgg5Qotwh/CMaA3UDFmhTmgt9DT0A1wJq2AKXg7fCb8Mfy0uFMPiW8T/VjDpEVmevEx+BFmIPKcoUnAVmOKoclzFVh1Sw+pZ9a3qF9Qfa4o1E5pbNK9qftFWace1O7Uv6yp0P+ub9CH9nP4F/XlDkyGhB3rrekfn2M9Zq7+i/2z/vJBrogY7Bm8k0BM2nj04+17CM5GtaEHL6Nz83MeJvujY8Kbhs8MvkhjWl1sfWflfm9uWss2tcvMqf9mD9kH7Kysb8ZqxgRvKymkEQHHlGMFrUAQ5IYop5/LxjKV8PL/32yY2dMdRGD2Lmjn/YvTf2VYw/Ru8m+qVbRN9RjUPcBeePeGmll//fmoHhhb5vE2BbG69t8+bfUH8b16A//Y0mQIy2uXIz3g0n3Oq2RykYRnKEZ2y9vvU0A0/w1DGicw2fj7GDccHqbcqrUOp9//xtjijFJay3n7T09vPCR4cVopI0Vc9RQ8cg7FmswGlBc3RmlIj1/7szZIlir9jbDybf+p3QEf7bwLM3H72GC351VDx77FvDSPiM9YN4MldFATmr19LVNEpFOfO+CnRv90deb90Xf2cHBGoe63KcAvPkXMzC2GuY/DIaMvO+UIMLoNgfkTniohu2DtokFgCkPS5AFCYRjZDUhJ6BqyCnLw7og83q3uNUvVR87IgthEox/gK/CmZywmBkp4JOVAiUUIpJhmmEghqkUZDxOSh3IPbDBw5bOh2uzvOe3rDFZ4k7LjbifN2dLgF0Wf8YX/Lx0qcJl+0t4AJSYCoZyYGrwg61USXiQm50wicZuMMvu0l+ccO9shsWTf2jiFEIIEHTvgSLYexgIjkLTL0eCfGStkInBNQfJM45kxLdotkdaKEluGeqqHrdWuHEraMQXi9cJFxAE89KI9rD3PFFnE+Dwe7ioQxjHDeXmVPJBfWG8XCt+r6gjJ8ISVGlfhJrfRUkwB5JMyJ53EWw8r/I265NN2b29mOaBq3lweMYxziRdRWUPRmQRU8mEBBnW5aAzBiCQMIZoIU5q7kBV+yI6WcXOHgYEACuuNViQsF2Ia6vIjoCyzL6BRLykl+cMmni6ccMCQS0zhRqTeAJuZMo5tVBsXqyxwbeMfdakK/VGthkuoWYOVmGVVaOreCM8qRJ4o3ywmMS9dpukuj3Upgs5AIUXAH07cmOI5HGfUyItgosqDaUQbKVNUGPaXw7BDV8Sh8TNc1p/PKPeTub3l+Zvr8dgMdsf66ctFYARVFD9xG9WQ8hfm0OEstv/not3xrEH0/cBDxzZpLZis6zfxQmvmhLAOQUDbUFHfOVOlEuG+jUehLOThMzA5dOf6/4rx0C46Ot/eXLiufox8ZxkDDFL6UCeBSh4z3Dw8OScmp+gcndmuQEUghBdSWuLRAUeqAHXEj1I1S6wKWEWmHbm1wziu3qre4M37pEE0Ds/SSTG/JHmd9IMYBEYieYk1wOQK2YgmnWUSeMB9ItCHPICenIofmatWbwSM3RFvGA1hNAOjS5XkH7vZXJPdcNXlx0dxxUoh35w3j2H/EnSvJatxJzVcwEgnpKMtqzh13ubIYXd8p9/evmA/KjbjVr+L2oLtyRr3ATLN24btlb6KL7uBWFn9/uDUXven+vNHosh5cgZEsY6Z51i113/8/3HJ+OGmdOS9qfkOczB+J8Y4Qzyl3M/5JJKuqcHW34GAE4+D9ya/sLnzvhCbX+fuf+be4LpyY3HwBZIE44oBXIMZ7u0GDtyxEb8uBfM85/ld9wNE5/yhpuAjyT3od/PSBIuWDU5/CKazanakJnZCAPvrEj0lJCogra2MW4kDRK0ID4/OcUtxoJ/SYGyK8zEWUaORPLt9tCwFp4N0VBJRFYrDhOLpdJuiIOjTtyXdZNOJvxIKmAj/xgF+vaGEForrn+8G8Hwd9avg1NzJztOyrNNPY1G+c/53ZUSgvoPrMRg1k6Dk7ov4zJlhOvefyDw8l8KcNOA2b6uJde0ElCbSJqaUlurEEpuZhCojD+wP+FqvLUeaZeOYC8QR3IdDbcPib2LZjzq9K2oc/EbQeDFvVs/UPEuynt29HDjCNaZCahAVNktn0P6CWl3m0UqUqQoPrQAHUCji96tjC/z/qC9720GCBwSvQC6Cw/CvR3a8ZGfJ5Z/EsE9TTK15lhBRVOBWA5WVVVEVqcBFqAwnvSX5l+rb8KXwBL5bLXz2fdsxOaEMdrjoj56XkVFhJKEgHNN2m3rD9WUcQSeQMIS/vNjj1OZjQ8uCtJ7njOvWWKL73BgCtYplXqBf8sA8XlKE6Cjg1Um/bO3FtC3j4KOyrwA441tKWvCTA/qaSQcdkiYM4JY1NNjjGmvW3H3DbI3M0H+WtTcDCkPw/YkD4zRqaheuNqzrqKxSwMbEzB/VTkWEZuowLkw5TPuRwSk113M4L2SpIt2l6QMUlH6TyAKmDEdXfmmQzJso/nPrPWU7k6FJx3CEVcCgYbHEBy/RKgzOxvv9R4X1CPTjjs/KPdn0cPtqdkFDgQGoTzzja6NW37nPbQn00fMERQ1VA04Yq6DRM6alNypAC7/nFvhjgxRReGcmVQISRsVQC/AbG4nsHwtlQQSjHhxiGgSUbNpsOs8Z38sSBfsKrB4ZWNJkTqWwo8x602+WZLd9X1dvG0jiKjRJV1Id+uFy0uKjvfMB1BZzHe9T7e2MfCq+Ix+3v19LZZ9wM+M4QtsDx1vJS7jX7a1oIR0vOj4sPmi+Zi/ylcRRXd/Xlx995VNt2RPaYf7VmuPYXjQHUA9QZjuxfWrpsvip9Pjub7aciflaQ9mm6SmdXK4EKETdu9s1MDrkNIWopyUeyT42HWWooqjIBgBSiz6DNalgTwXIaZRyMOaFyACKJlCiZZAxRuLMlTjqAYtF3Xh8OFmGWZrClcSP3Gil7CxikAimvdRaBglNsuh5/mFdZsYZNaFImtpYFtrUjx1xgDOEHBlrSNDgJWLKKGNKM2hgAWf6HGN6qUK51fuYQ6tLz7nSVaq4M54oiO6HwO2YnBMf4h7qJX/XFaotE1bmgmmsxx0jPdk3B8yw1vRwtUBTbOH8r14XtCXGX71/ewbi7+sttefc2hd6k2UbvHe16nH9yccP3Donk+fIb0g/b2CZtMRvmJgaXIMS0iYx57R2CYCdAD2ok9nbSHAupjwiyq8JG24FK+OFGpYC82u7kcmvRN63NoeqiGnexHCjuEWQbqHATbuTrFs6YedBpGgiO8+b2ogs5YWlv+X4hv+b0yZilGsfftAUsEIjpuo0Cl/bdAEdskuncy0sNfBO+lbw1ppHggrgcbOJKO07NSAQlmBFE55RmVtGYN3FVVl6TOxYR9KiC0gzrwU4LSaWrqRjzvDwpSycxHEHioWTEXFjuDCnq/sAfb16OOAu5fHH8SdpIYXGj6c4pgjhbSlbmTqkonh1vCJFToaxYSnKEJJlG1kKN7x8qwpldrjWCvMZFs4I5I9zX9BqN0JHE+HqnCqLq9zEvhzSLFPk/XR6SC8fTJXEdIUbo4/g42baD+o+beDx1FgLiSXWOjA+LMaYEHkw+CDTNwnUl1GTp7lJgSULyO5UVoO26Ve2eTrJeCCnZyVmmqaaTrBYhiSSQNCZMnLkgLGzQARymUoIvtyvJEELIavlptwV9A1rMuljFKlSzIGkOPq3hPBbWAsrYmKGGYc7UOAydUYxDapgxL4u5oK8Eb+canB6IBD5cw2TQlmrE9qF91ioTtKQeWtnmsJUaA/BrnCkvkeszeK9W1aAOTZmkwuZgM0LglqV4+5vZ+BzKuxKHPfjYk6PBm5T6dnCPUzgVUvOd4U5IQA45ws3FJa9LGZVG3rdKlnmf24C+6bJ1Zm0PEAn9M9slEf0i07h/cwJYafKuyIZs0ESTmBEuhEtEvVqHatXrVulhLU5SGRqyzIIa+b0IwceP0NPXe+7s/1s4yj5Cyyr9qYn+0kIfSsrL4vdC/JMH4dLRvT2Xq/I6EAN9MEEf6XjFb71bny+xT4MhqJYhUOtakzoOcI5GDVS1zU0QCubuV9av39Yw//zHvEsYdg8LCB6v7i0v9VC453jV6o9Ng9RHRq1gxmpvtV4OJisQ9DIGTyd+bWU8yigTuTuJyKuEsHgysNwDduCnZqBzv0v1ui2y/4LGRvw2C/1oOIJ+XTEXf6CoJP46kQApgqP0eOeFP6pBocpyeBX8P7MGXtUhGAII2P22pWLVxVCXh3BAcvY85OM3DiBzP36TBH+0mPq55OAtumH0h17G8gSA0q+R6TfLWW/ygV4OSpCdXZWZbq0Y0LpuIItR3Bk2PoOB95ySG1hSItRYNPS9MY0HoD4MFARMaSgYmLCKKU7NSAhQv47aTBJ7xSVR390r3vn7rrfnKaqRE0z0SonmsbOPxD5fedjYugoGO5goCbREtOh6SPOUTmdMYm5yMk2h4BsTmGbJlyW3kqO9X8tgUBhBKUnlYHEPO1X1c+HcHE6uOu01Jci9bI0N9JLUcVJQ1cPl7ZTkET2sYSIWYN9ZaafVx4n32bbTz0jRWS5rOnEH3z1UIE5wREdcHOrNUlc3GGawGs6CnSe9AdYOSlN2LvD2cUqozn9CEm5L4yIFKbSqgn+Gf0n+shprC9eIzUAmPOdZe98xU06YFMwKBudm+q4zIYvUN9NSimIZxQKYRsQZ+nLMQ2vg3DjGdlDCgFJCmLnYBEU196CMaaJFiATSIHkJkFn8vIy1YghBEqEkEcAqBeZRoBmG8vGZkBeX7jZSKjLuiNy1X65X1gzhakSbdf17POKE3TzEuZOZ/HtSsBy+/5DiqhWHRgvxJehhY/Bj4yokf6mWXJxB2zjGp09LRHHL/K6wlUHMuTguf1KT0pblt/Nym69gcBZikvYKc/PkYO/XWPbIkRkuko+vp+r7kkurqjA+cFs7VEG+3nBV1S1kuZSdbfx8/+yEjTn+aLbzUpslCmJGYFmuIB5nHGe1YztVkkpFjM//bGq0YS9GgQom4rRYV6KtoMcJ93uL/SDjFoc/n4HqQhFEcam+pG4QFQUiKxdZJVahOd1FkBiTYLfcRfAr23o526wMmIgbyma+d+XijcJA7chi69i2VneaapgxVytr5BA9njDSNiW3LJ2qDeBC1wO4ZyyU390tJJC3Zh/vU1WBDido3nhT9bnJ3G2bPgaQAYURjeEaOSsC/P/93wv7q5gL1pqblrs02O1qBt16emshVfAbQTttqZX8ClypTA+nMCdO4kvdtYH0OlRhhLcRhAy1sp8FpeHNXkNmuvr3pnZYo4Ezw2dUSBzgElmKR3peljnNMUwU9ugGojbmIkLrahyHykhRzyEph/pnWAmFOeVGEnPmZce830jkxe5kHDmZh5zJjW0NtIHQnYHdEn9BmKCLkZyFOMvpO1K+Id4Xpru5Zk3W5XQ9nndspRUrquLtfKv7KxIM/lKSxXw6Q0zcJ7B3+vMwgIHko4XmuUqUrd6GXyWCEz3LnjvAJjVNZg5XMaoUMv2JBLpe8x5kAEgPafqM3P2MD9I2IJLY7okth4k+YnPK4ENSVrVU41Iw2j67piXR0Pi6YnZZYBy6VRQ7OMROjxTlN8TJAimTbNd9tw1H1Fu2sl3byABSxQkWv6CJq0nuJg/CQT9CRRDftIxA7h5XFZYUERTYPYa559zeiKzWu8YfZsL1p1Z4JrHNq4QgG8pMGwx5xnAG8HNFoww3uze53lotofTPSHd8Fb6GvFaCjix5D8FVTFsUKCqHwY/3jBOHNQkk050Hl4lKga7fUHLBnWLbGZ+4qUhhonsWWLuBlDB/9cQh2HoElfdPe2URm23HM6cUt+2DpesaXXO4qPpyk4sv1xy0PWMzg+OdjsLbDPykpKxY5Fx2ggs/L0uqb716uzhtguMtjVpkJg13NrWNQFzd7V9P1ppYEna40+nCpB7/YNOzLTg1LcCFAcfMeGc1GU/wUilNAxsm4Dl5ayQbHSoZAU8rigtvyxiCX8rr+KPIgx84Rsuxwayz+aOJfk5/x03chu2pTAECv0wwD29ax4AzeGcswG+Wm2GsuoGS57SMVRUxNgSYZZAYRoFErpxLzOIBChdG5L1gf6XzWJJbrZ4ujjwhNvODQ7Q+SrZ/jTIqQDASWBqZlRGzCCfsJX61R7xPr8bnaE0qDupES3QvFTAWp6dyzm93azUHg9+SCbW0mqBFbFwF/nB4s9fToAdjxIzzeV6GemOqmrYQf2gbfhNj6ocaS3eQiElCOVfYh6vwqW+0Du/SHAopVWPP8AYNq8W9RYKCtEPTRbpDsRJIB5XUxkzkmAHwT+J0m05Ix9QyQwOHAHxKdN2KIYgGVK4mkC+JakTzDimWqaNMV31oooUO4gd01WGxXm8O1yv/8FfNmhKthx843ztcthncY2Oj2OHf4t+Tv5s91AK8kQ2p44oLmUCaXjQSMXjDroy2j6eCCSlMCDKQphO1gXT47sQ5QwfjAKIXimNK2zA/OJsYSPWWUrAYlQEx4FFmoRCglsUA5DRvFUZ4u41pmkLl40Fo5oyRD2JVDg9wO5xP1DJRwshZ23+lvb2yCgtWH1mclOSV4tBrIz03MnSD+V5moSdQ0zisRYXgxQ1SjIojNy3mWHiy22BZuBlvFnzPtbIS+0jZRgSN2GHa5kOGAs/QnMWYJI/wtao+PaxX99xkpfoG0NcZ384llfBVZ9tD7X44m1CK3meFeKobKfye9GCJvuzA7QpD1W2omaUiVxRD0RiDESDJ42aJbHg2qUq1HAcWqPbg7JbtWLdjp3fKHWX9VKx5okmqEV1B3zMFoY2dDmAlparUGR+R5zEPojfdq3z2MFpgN7Y/8X+ZxinFAgtYg+qzJQNkEvVQDGjtnavsD7jrf+JQYIbaBkGKkoVvRbZSKxX2YL528RApJwnALlVepL2MpSBK7QanwawiH52j1D0Qghju87uBS7WDncLCpATc2Vojn5jltk5apYZDNqgigibakC8T9kflNaUBLa1LxbW1MTa2KdlXJgTgFP14y2EnFXZGQbekm8Fdk/g7vBR6cV8xPm16u4geyr/gbMKXYrOjcGOwrRwk/XLK35ftYKwtkWNa24kxEsCTEBSAwodADlCoIPDQQ8ubfQsgpzyX95SKp1AKPTh+SqSs27mWiJvDxthROqYGcvHaMNApI4nSJ2IQonEujdY2QmVSVU1NgFGJaxXO+8NhVnRvPGWnGWKXJ0AJLQe+TTCV5mljP2WcUE5wqG6BLzilTO3Fzti8HKzyMmhByxu+VatqxMcNLK1OD0Sjihron4qbTYbcUUJfPYNJEfi88GGiXvYO0mQ8L7w17zxVMYUpIu2U7H3ZWZZZk050SkJq+4FUumL++dtvvuep4m+nx+688T2re63+46tXWsE6Diuuvv/PGN98zZkqPlyBxzI94FfXo9uAVTwU4/Nwh+yEfoiKeHayldGbfWCNLVDZAZO3oLNjSc4uGdaoMi2SScGl0JyBObUlq3yn9qoSrbjTDvCdjtlrUO1Wp9nMP9gO5bcFT7Mt3i3tbN9y7A0pWcijJBNde0uK7ie4uEWSzOzQ9QazwkpxZNdLmpAdv9Jr4v+013J3wOvECcLt9MTiUcE/2afbwUoE/q4/1ZhZ2vSQ6G9Qt5xJHMx4TAJt0bbupjZo324lMcAqCbwMJeoueJdANQlFFBvKVyfOi+JutxLnpd/ZKDcbpYKC+auLJ3hFZmoJZajJYaDUBX4q9q5diLoHc/o3mc7lXH39sLSIM4Zjunc3p0nsWGlR/DCBd2gAv6TgYE1zCqxs4XPsVQptgHXOiyzNuRRrO3yqqvNDOQHloMyuhtqGtofNvC9v5Njum37/0cYhFU+x29luMlfORcpvbZ+3vhlzrgk0jfx1dLWp0fD2IQDMbEozs3LRVMqGywjMeCfP4eP40lKSx1igwsg5UPQ8zyg87b6Ed12HBMVE5zJSKcMYtk86gaMDIeWDQ1Nyqk2N7z0ibq7x4TpsUDH+8hElIzTF0tHJpCn+mwRsQjNEq+bsqO8WABKbxacQDRH22okEn65PlTHKDw79Vh/daDvJ5U9K/mrJltnOtXw0f1p6W1UkUMQETX7Xez3cemuSfOtmWcn9pn3EmpSS6lQWFaQ/JtN7L8/Z61DjNQJKKBRLJoggJi8ofWy+TSJgpzOPBCq1OGIPasKirPiVVYuTbpAj6qzYRCYhNy4Qi9ohi28yspNAx+FpFBgGGHo/zRDNxY+2GRFuS7TM+iu1aGO7bbdmET+eijFOdqKFPiyXazu7/I/DCpZt05wvFhCZqdcJqNAigCjjWEHcyuhLBYcDVvOobJoz4Xtj1AFffd3042B/B+lT/V00x/hGEgxiJ5dWFwRt9N1G+WdnI3fJ7O+/uWNdMrTin1oztvGUT5ak/eV3Kxn3sIEACtEQ3F6Rz2d0rD4HG8DUI1cSDYV1hg4W3+blgTKnbPENgEK/EXDCg+SoCXkTNSLlrLSR4EUmn7AhD9/ryW7JghndwnfmctubGAWOeja182hFFneviq/+3GBtQSBzxyzevQ2OjlAHrDX9d2k6STBbERbBzw5C6mvlUqWa/JnGbJwpSKqKVpHH+Kl5XFoCK1nNXMyyNQ9eDNN5X3MHeBtkA8ELDJ52WhQ6O+eN1jDc5QTJZsvVckuscQDFqrvoP7LNLeY1bJovk7rmIJwwDpW+siZthoRc61WmgrZKZBazmPQwEiElV6CTIykrc2bYqm0MB12KFTVauMCZrJONnCyLbUprECB2xZruEHxJJHev/1kN+6tkCKPSHR4P+7uKdOwybAhKsY/SCsKF15hmGm5anqaMn4PuCG1b086HBxdGTkio5BUH2WE+VENt06kJpjSF9htVoIuyOtcUOT3HIO/M5/dKZZpZiaq12VLFIdwAIlVXWS+nXa7uxUHws4FAhAqQpLg62NhSI0elooLqU7ot+WtN+1ugsvJq5Q32GwxDHkQryzjkzzuFAqNxxMV32fFU49qWSkpBXjFzG2sJ6IeEMYSUTsqCpQ+xUoyeMYOqO0deP4+dY+BFNAK+9fEORXNTfHhGVp3hmZSrPYcix2x0cb+iHoUyiiGtdgsTBr1mFHynlLMBUQfpYjDalGRVzfC0zGKp6E44UI6Q9UaRNSeoZY6BcbwP+Kses80i57J4e2xEZ/bSWG0V6o1b6kz0ZjXSKVnVbrlmjA9HCrKRcua10ZWzjG+Tii6z3KCdxz4tZyUdl3aHZibQUTKhFO3wxfgh+MBUrgRtjHn5A0IjRrsEf2CYD04KQcUlZ2KhwWny0dt+7y373tiTkIfAFTMym1BAjamSSBhHpcHI/zVW+MuCv7YyYdgFK2jMCjth28VOHpL16pyEO6rhg79/WUL2pz///e8vecs6cMu0EcIhXLZ1Ai2GTZvHlQ3jSVoZuWimRtyYHEQYNNgQ0ilG9n5vGJbrlSQ5Rs6oPefdIzG7JGVmebbKRFqO7JbbPwfXudmVcmudYome4cnscE+qq1ea9IBWTFkKw8s9xVqM7/ZBFUzXmiIJ3dO93yGnOR328ygorf0GszLxTi6XEQWqoo8zEHw9FTZ8l88qYa/VSuA62pBCOHFJOoRCgtLaBvwFOZ6nof30Tqezo0SFYq0GahgZ7IQ3+kaUt9NqDC4TFfhvodCqY40+5yS/mKPrbLfYpQs2QORm9X3/fxtpV9Zw0OPshm/FOhWcVMY/k2v5nZWzAQkos7aqmLJrav5ko6gdTaksl01Vtiko7Xwy23ZI3jDFwRxvyxbeYdkguMYu34MqFrXGOXcqsTnjgebxvaqaApPU4DeC+a+uEQ2/FNGSJFVttTXfEVppjx1PJmelHLbgHZk22Oww5UOOpSClqnQvEzG/XYMiHqYquoT57bp+8Ae7oEW0r8Knwl9kmQ9vI/ZH9bbAEsJcIqmli7R3J22wsCQaIA2QgqGVl/B/fGnXqQfHV946s9hy/rstzWAhen0LvbaFcqeXcNn6ebghW7GWrnH0XZUCYxCURD0nqOdE+t7+B+ShtiUO2b1eeo8bxxwN3tDvTuKGJel2Hookr9tSY38977tj9LyHb43GE9AinUaJunN7it+YPGS1chfBLF4Vs3Lz8SRJYBUzJqGTvT36v8iZKKBAhPtMjoC4TEmv9iBEPZX79/kVvDH9+Bk58ZWrWJHSSbirbpT/M+Hg0d0ZEKbDf7J/A+uU1cUFkL0dnmdEtlOqbI9sHWIUWWr6lOriCA7XksMx+ql7++C5779Own86Nv328DteqWlHf/RFtE5HOI/P9zZt80aHhOzExXib3IhQP/n0k3cDFKxAz3p3IkyYYcpmaFLbtJYHUv0XitLYCqigx4SBRZsl9pcs0SyXPzZVtKc3/Hze//9/qifRmh56ozwCXkEsFaD4MkbukcGgEF10Ty0A2A9lZnicHnlKK+zsLCzcBkodD7sUbnTu7AIhNP3YaABzVfqZ9LmIHQvRG2/5iE5Kp60MAJVhH86G58FvyRGcwTVcJevTlmIsuDyU3EK56zKBxYiZxeAs7+AChiGTSpg7NDGgEAzboZC0zJY4xkXBGiFLGlySwPFn8XnMiPbC3c8c54qsMkkAdFQ/rAhgMqfdhOxrSyL84WrsY3RDu/HwcDfTCQvd3TKjyd5Ye2qZLj+LHozZ9GBmYWcx1NABkWdTRY1muYhU9qgS0LfUHRa93/JbmuBk9y7AjEOohHSEoplFWdKfngFFHrCNCSvsvM/p/ZaieYiwZTN87KJMlP67kzafMvEUVjzH8VosEvkY0dTY5JT5vT5n+eLqTLGUx4vgcOS8Y33DBy4YRWRY75YzZN06m9N2GUKUuugbA5tZfjfBYKziEFYolz2E7IqwRARxMuFAQLNeNDZqCDaX9zsTlk1tTaLXFiYLxOo2MhdONt2ZaDTS030MwhaIc6zrPWcAQdhXwXyYdHmaRQ4erE2mz+QQJGg3lUw3nClxcGna4MFqzSKYnQMWyKMEYuZ5IWDLPb8MdzEFaImtMVBCcwMbfcDxoviz7//D/4l2ychQRY28/XXdoG3q/c/OBLiMy2S5xYxKbZ2zpnHKMKWxFIhjLjQxOmPos1CqM46XWQnpDPNzmdHPXcwk8aMr3bKjLE2yrcSlo+uzTq2+nBidOSUoLatTvPvzD2dkoKEz05w7S+f9OrCXXGISOc7det0Q0cXDNgR9q2PGoBrlEtWWNrXOjVyRfc87ps5sr7cZjVXyJEQvm4rC1F9U7yKs50xzRPyWW/spb7rtJRxfB0steEvFqABNyD4zWWMU9u0QYnKZtsVUxFIb55QXkEbUIwbWLhdswPUmEvRLG4FEm3H7JJCcKRBCaGJTDPbsovxn/izSPX1UiE6cumFw1w/lZLGqQQdJbl0r0eJEDsZ4zbWA2h1NO4HGrEe+QoiPXcOj6mRD7w+ugCiSmPlSkGzxpDNGgrqDwWkWW/xlj0kn1z+ukOGmAb2Hyc2VXKd/14rIzUxPTdMMZqzKkNPwVJh2YKac2lyBU0qJxY/qsMYer8D3/4JvFcVgnKdIv5Mk23G9WkZeAuyG1DhuRJfQD6vBUa+86aBI1h20SYBZMKXu6O2t/K2nA0vaAVA85HqcFHTXyt82P39htrvgy0vEWgeXl5D1oc44AldsAxdx7bKwcellCLJvNfUlmCiriDlqyNzEwnppfmhZaFB/YCNlKsyw57kCRA+I8+52oGn8bImNxF4+SaTpPlrJJdG7crtSxRWOlTTF2FEF9zAxc415CIkjvPHweniajiSNxLH2bS9TkuShEjzvXiv7LL8mh6my3JNgPXd9JfgneXG+vYEp86UZRyNGZAK4DRNjN2ErG+K0mfj6e4/fj60clxZf/1WqzRRF0T4Tn+Kb8J3wTsfsNRTZiixsDlZi4xLxYzuJy1Pd5m5TM4uGWdeN4Dqc0xLgwAzOqZSENGVg1kFgfPKxCOqrEKwxDnuA5q1XFk7uo92KgrhRHCseVbKFQrG0W0RESTPhwsoeXPG5bGS9auW7QDywMKiBSZcVlDhJLrX06mnlyd7Vtdq4Dp4VSSgQQX98o0bDxPoWQ2Nomhwi+mWQM01Xv9dw59PtcyHig06VoWUELmlM8eNiE4vUbrvcEslApMbCytpQZz3cvGWh2+j3zAdBteaLWG+rRZ/hJzNqKbL4rrvCEevrvdbanOKmYTZaspcMmGoywxTu3NncmHBrH4N+So+2oG/u2G2BJ2wRovS7f8c3aAG+Ed/jvpdJN5EdG/GkMGa2UXRtFrg8BRJKC2YrgLJP9tpRrVvnxgrH7WK5NHgKFqwyhlGeVAKb9g7WiHZO+wKAnmpBNlCa5JLMXKxt7y6abOPxJpTI6uFpMsOQUzzHMHuyzcZ5Ki9QgMD4DBq4gsLwgP28i6hcGwvwGIrA+4Z8oHfYKbF8VDHNKJmfJGHWmwyGxxlqyHanpDXgUr3lVGu1/llC300Xs+nDCGyW9jeZIj19xKZbpY2VgsCD8UEFTqCyI2OZd6EBg1FQuUAh/FRckj5a0U6DrfJirTjdzMuYMqbbigW+Ct8B77xCK4sMd5tGxQIUKWeBfBQTFYENozRCKQRnxQAbEDawo08qGag5h1XsCyRLvvHhtMGL2oZjBGgyMM58pKX03TW/UHDtop3C9NfExlF23QbODqp6v8jpePWkmtO3NGBiCkGZPq7o9YOC2d82ydHlgDYiLwAChxi+NeMGYjbffokuLVZ3GxkMjTZb0/pgJBsvvv+wCXzzSsSww5oX9uN4JnAsLi6+l+U6Hm2Fy2WlWPfFoj5LpbwF9PCz0VaziRqDhCGVkcwKLAjBJviBcQ9vVpV7OnKb9Mm0MrfrsUOAEe6hfqPsgJGdplHuK/sf9KGrHtzGPlkpZ9SB/8WRhjjihJwZ67hvgTFzOTv94H0s211uJH5nEljFVpMsYogpSVG4jwHO3HHN6P/QEMXISXC/ntDJ4+2ANfAz8uSD8d1a/xSQa2du4VsokZ342gsirCJZHSnorJegOmm6oVzOmh5uNEBL22bjVv+l8aJ+H7p4y/5G9AAsB7Cn9BSYYHI8kwnywo3re6i6lfMpxBPbK0ooAoFglADIkREV4nLFtjvpoCjizUbiCQZFEIChi4u6PZLTrMZFojO9cKWIWnuP+hYqEdEvyG4a5cHc9K7XXnC41VReMPSgeUjcr2Xwdk2SVYNlqXcDIiKYVCqtLu7gq+HVFaUIyi0sxjsLx+bTuqZ7p8upSAPJisecoiJfYkwDtXGNYCVJGnFgpQSn6gXiOAug/Mhr8UmEc8JuCk/3VdUeSqMk5wSailG1Jttk67VaE5bLAKO3kGDtWuDEjJGPoWOjeFPleDoOeJg5c5KEDEs1ZoG+pcjavb1ZUtOxFfxoksuRuJDqiRbUD+0w2S3WVa8FQUuVlMIMegNGE1ZxPFhOwAc4YuCvaE61bb+vPyIQIgsmIb3KFcCeXlUpeKiTqQfaOKn8U9GOh5/XyPrctSVqAScmuAoRbJjVby+2h8g3Y9XTgA9qZj+BlJr+DNw02Sj7YfNeSaMgLdC0SqNqJcQEMuM2dlCV9SfCdwmAesQbwrozHHJxl/tpx7pkmugZLZwj+AYZZXuVxUTFDtpXyi35mV+BMp+mI08JTYgNPPTtXQ1DtVpO+lwbPIroNLrOOvVNYTD8io939gSXYMF53H4awM9HsoYMJs++cM2Ji33Bu08E/lx4Y/jEDgYzvgXf2Nicw3zp+yFVm8Zp5tLUf80ENUxPvI92ogzgtE7TLnVdqxoP1M57wihv27A0BconAxUsF+gY4ZT05jW8PQrb8Ui5BQF5sL+4eYlGogzxR61KNW52FK6mWwiwEAzkm1N2fmsxxR7NX0Rx27IGNeldGtyyrM2kGmgVTP27LU/zZEhBHtrh7Tq1u/lqqvkMnf/Ub3bm5JwnwuSAhhvPwyxdu5utW2gzd1zEl8JLy2n7wMDieisqUOO7aTNB0uk+uopGIsSkVZ/E1DEpE1jiDJRafilF2MzJiXA7WizISdbI52ejUlDaKSI8i8FwMB6ycVgRvApE4uoCLzhTtVEIf8++RLhQZbZQyiqiNV0jvU+V1OkVBhHHTJLLs2f9f1OsZ5Jqii9UW032ZIXtT+wBb4OCeFeDrzlUdV5+oK1nvSDO7XqPQQmQlqqwQtzGl3gvlZJllGITKloscTHpJ/aOWPIuaG17AqIzlQqSFlbKz7TR0kcXWHLU4KgwCYKKi4grHU3CoQJJW0oIW5XGVVE0wormkeTi+GKFian+MHOHUvHD19lBEyLtFh/JCkqH1oHHiMzHY5VtYkZvKKrVRUfGGJVs71erZ8v1dIL7mOZwJcrLukuo4+UD3LhU/EkIvkGF9rC9oukM1sHQicpCtvCTt8ghKKDu6XLm00kwf5XaST8hGMFEX7d9f47XW5f9fpafiP6fWUQKLdtXZ0g2k8sjIpZnCcOEVqDa8uygB8KUkPJMii4XQSFltKldvoyYRYbumIC79iWRg4O3C1b/uDA/fJqE3aH/TqqinVargj8k9O22puGVdEYPfeL1FAwnVj4zVGJU/FcSY4AaOpREL9Rl8TlroIiYZ1F3sW+69b74gtx7BJMGdynAEaGN9EMRndrTcWcfAhMX0DwrJV9Nj9dustHvnJEqs2VhpgVd6DCtnowsnpNL6MPcfbx9Q5e+6KJD3MW5BO26igo3kiuj6dyVppY5Ajwf9HrpE2+M5FGC+9uPNfzU6oX4G1ruuf/zM/4QhAkl7XKfwOalsUm+2ftW1Jp7Z98V+iv4+dSXFv9mf7sQxE/hRmvksSv8LFjzs9TzI9mtEtJIEzomRlw6qCDkvozys6x4zx6osPZ79mnOdT/vAuYjGFsvvpjB+hcXFZnG4OKeOdSEwcXXrrgmChhjGPfiai1srnEzHLaaDO/20HKl/uhC4o8mL0OkNZ99T64nn42ht3VtsFaPrb91pMytCnr1t6DVKqy3mquIwVes5PV18sEFP+7bo2iE2E0iycg7m8noD33eX41m/flvWMYZKDcgHRFceOzy7DnYY8VCgAZaCRIgwtQBYgTRLHM2Qp2Faug+WIP28vGL0K4E2jI+sAlMqOKUINKATx6X+aIVDdbZrfvpNOYO+m6HS0CbyWuTJLj7+JvgDfsY3JQxc9Lur+z7uIaE5AVz6UIsBYeacQSbErIpK8BGRfJ8z3xMBUl0oZbyPXvVtl/ds5mpD7xB0FGgeCU0kFwUrl+xzU61zg4L9wtuh8FfcttkvZZMCfB3Qb2j1zkIJ5gahC/Et8HbtmaLwZ1EJbsfbd25XJ5BRzoXpVnUHHK0hrqmTxzdkdZE0o5KCCU59UNSCsHWExQC4UVPErWuxjoqrUDyxRXHkd0yrUBOdSBVqATlLnmvHbTIr9N5zO5wITbnFJ/6VTRJS6JIZ6WDVfLVV4wgcEwShaE1Cosd/AUHg2uFMSnXQ6rFgE4L4m273W4Nz0F9Hsc7EC/4ggDaujcYbJKfQrTe2putwbbKh+LlxhB4UbC3Sr+41zqM5XlF1k3Tns8aBpkqTPwioyHMQz2DKsJ84eH1mOueGV0t9iZigLnpGaNNMt7bujvQfakPIoSUQeZjqdjzzEgigPDcv/A0ZUhJYyASVGAGf69ySUFMqvUmQTRvrecRCrSoW6ffs9/Dt+JsGEZJMhUEUZRUv07lfK721Z5mKW78K5ycNwujuTPKOfUvBCmyCyVxeCAMFOTDzXuB29ky8c8I+gjCF7w3k4gONqmbQtbtcv2SmK7fmaYuKzzPYsWHvL/VXF4QecEwYxW9t8UaVlhad4lII0xicr+k74N4Po/P/dsi1I2hpletu/3vUTt062y2/Dty8dAb+HP7OeA/Yd1On/mkuhw4T/zHv9x9S++99OiloayvL3zpTKpyUP2Pewsv2b/eE/ceP7UFzrA337t1i/MeHXwRqPoMxxUtFeiCg2TMra7fZuzqKX6ZaFnY2SiuMLr2vc/QcsfK6ibZ9e7ttIFBe/oEpyb7m+1vnz9UxoXfh6vf8G9fhd+nmfNDtLLh/tdaOz7Bqxdj6JjAnRDudJfsLJK1gw3s0NmFywY7IMmOCbdcurULt+Ks5yx3NPOc3wKgry/feT9pJFrc5UT3v/tBuXjhlpulozv7ZOF1EemS4O/VYEdbs6YdO7qzT25lfctV7swgG2xc1zbJxplFrlIuoQMsEh0fNnGdalMW9sFiEaVY4/AVggxzt2jhlPy89QM6M5HdZ6pLeW+7KYQrF+Ccj4IUo11d8nsKhZ+AuuBqErO2pL11auACPX93wQBvVYfZLLgGAutvB23cOmjB3gSO7+389YhM//U31PMmcIn8bPhjMiv42DDqiHeXBglBovYRGrxjG3DwsUobNF+6EnXvXjfCbIdrXa5QjEW43H9TNX6xebmbF1xWP4fOy0tKRlKGnQ0SVYBTgaSSACkZaf1pwWP+nTb4gyAqNXDd0hznonX1irycH0FhXqw1OA+lNLrVdUZbmUJlZ1i3KH/393jIaFdLEj8wC4tgfQXpBt1vyd/WJJu13auywvzth5AIRUEYBaZOAZCgZHVcahqSRyH8T1spYLNNeplX4mzhh40mnC0UvCIEeybz8DuL9ApULb7QVJIGdtenatbP4Gkd0LqF1gSzns1PTatahgqMH+f1+4XWNsSJroJz0aBe5NtZ7OESLFzB56RcaEbv3KmfqnsthTVuqpWyIAmYpkpBoudK4xD+tS0NhOzUfB6FOcp+patayg4GTGCDqbX78PdrIxkoP1ZfZuWohs3qpzN28UXFcwNt4qL1Qn3fkoRMUMSmWXzWlm9VLf8971UYmFCNi3yB8E/xX+DfS7VOa+EJIRzXN8tJHaNgvcs4/4H1rLQ3tZb7mls+SQJigIm5iSlxk+Mkx9z3kkvColiI3hoTxoKBdSmNxwvVBArDnKZM3ZAEMkICkS5WcQyJcRJbgOFN1DN8bCUGbVSPV0c4NcJR9d6i2JCK9hPzGbiNU4LVayQbVhKHd5rNBsap/eSRTNAqY4xsMARw553dR8RsBxUyTQKtqDOtLalXIANm0tv5W8OEJ2Hdxd5Pe9sJgufNflfFmzxL0Bj3plzXj3DCz7q0FckrVcndNFqvuhmML2SkFz/ZciutBUJm03ka07GwiN91WDgmDgxVkuFtg9m6n5doI36iuaWwO0haNzOqaNvVGbNiYGW/89WuNx9sVYwdEKQTihUPo6mcEy/RVqTjgQv3xP3Yry05o262m5rwF/lNvqTSpt9JvOb3VbSr9TKMu7ry7nAljV5Y/e1Yl1NwdLnXTuEH8MPkwxt6RsqZQDJ655RGNyxbgiEBdFeBCLfjS3kRaY2Wpg0x09LasC9sYWbBmKUQCzE7dFqg58VakyZqo5GSOGDwUNG3Yl8aSUUqmo+qtnAk59auBZY9V4KvH5SzA8z/45LfOTBNn0JorcDidVoPW0ET7v0aqrW6uArIxVlWHjkrsn7aVBDsKsuUCb9eBDNDKUTT2d2pIhqGs3HyxXFetr2R+6SF9otRVbvWyNWG1VjEieveTaOxZt7S3qlN4qBjrW8tKhf8i1shTaJpaIXWZn930Os5VkhxVtF1VKuf9bPTqorusgOuRiKCRiKVxkwv0vIwOGwucXy0WTOlCG8LSWtQYqKGDjgl3FhraZRnbupnw6JvHCKl8FLEU7uDal1Jn7HgIJHNgr8ZbTeEUraHnNO+YA9xkvZfZ9DNe/znZZrWphuMZtjeiwM7JOgfO1be+Of4L/AvWtgNowCQRsjWlfUibx22vxi/HiJhpVzkW8Y1xCuujFFioFRyXzBMsI+D9ZQiyzTSRuJQkr/6xC8WRbJtAsHFOgGWWgvBcw+FYUBDToUkzTgeCKWUDnzJmGIEGN66+9q9a6/OmCld1zNU23oNMyslhBBta6p0t32ygJu2s9lsttiWvFOJpmmGJCmKkuwVUTQMg0c7fQ/rFu43Na1nesoZB3cxFRi8P2tDUE2ZqmQraxgKY+wmx8SO/XywqJybuc1mqKLdsJUYmlaji67vrScFX10qQ5xkddUNOjMsPD7lKKzbbmQwvoiP1u732vyI+GwGw7ggOJRJLyKMYw73FKvan/s9paTU3su1bsQmlJRig7T4ppe9Rp1c1itJ3Q9X/a3pcxNBCyzWrcEbMBUxmrByuE6SfMq3yySMEJyomqbl7sBsVVl/MKSZavue+0ErUjrNs/G0cKphiKerDIXB1UKNNWai6bjFUosbcRvPw25dKYrJzr3FdJXytePsSoFyD0VQRAhHjiAECDIIQTF60bdRQ8wBmbVzcBr3SZSuynrtiLUy9rJwZAf2g0eX+cfaV0eHLC8x1f3GHPPrfaZ40GB6Ez8Y+TqKRzOf2nyRrx4HQvXM9ry3dBuGR6WSeUC2Wqy3MGkoLNZKz7nbAYbc86fmxLnHvSYHT0vOeRkCjh9ediqWV5uRW7HybOfuU4DktoY4J2qoNguJAS4wljFWrNHtqCTjSLPd5pmcNV33kwLXdVNSOD9HIoo8PmFJgd9ainhgIphQGufxPfAhP5U3K5RNTQqjLubtA6MNlAbSULSAt0YZFNHAINKMRCQrXE7TZAkvqSlFTRARVNG6KbItbMsXZ3HtBIRYrQ07cbyy+01SDcH1lIOV6X4H3tkTMew2bZ5QMI5miSDQUlnnwjgOnZPOLEoSrXc7AN0IxCcugnBTcRZHVHqfs6ByCTLxtTGvZZNmLtI5O+M5pDPTWU2B4DRWZd0Ja5735Z5pdTm+6H1K3pqh2y6HS2P9mSkM+25vhcYVG7YKn1djcAYrUPlTg1HO92NU2OI2bHZ2XPZhGOBM27qbDHccuCmceTqMVEYKxRaQO7MufqT8eAt9ODxyz3v0+fS3xhptCjuzrrXyKKW8tOyvpfV7YMNEyrjktBb+SW4GsqKCLXhfAvkAIA3LWNw0a11ZFIW1voNujsoXZGiuJiSsFaErQZc6panQ5y6n/fCZRFAW1bea2IfTm3RAkXCGajppUSm4nQuIKOVrQR1pxvkD/dtLFW0brqsT403Zlq3YFyjNCfvGo6blUldxfMj+vTvX4W2PyuEJcY2P3vbj5A/UObA9KV85Q+HVArfwBeQFTRyx9Jd75Fno6GrlJzCIZhdDzZ62/aH/gj3d1dCdY4v7izMnwjd8DjV7lsvv6gV76ntI1GJfAD9mvic7IbJDfBO+Cd7UhJoWwG+2V057C7qz9pFVl4j5sDlSxmiH3B1oSEWNCTr0B5cGKQGity8igEyLmQBrFScRSKK0BwHFygfmgsKbs91GFfgYUdMTj7/rTL6CWsN4XxzdbNnKo7iNbAwne2V6hgKU/pLWMrByueseOzstTmaRRf4RKkQQHBVJpJJgD9HV2Dk4QQ6MuwPbaR/ESbxrh72Y0JZPze+UIjfCTIogcW4roxYr7QUV759ZUydt88XK/cnPLbMMXD6JXS9K2L3JVuJYy5DgzgVOovUg2NXu7e/CNSVzosvi2/Cd5L3vgo4RIr+nD8G574IRmvk06vv0IdvwLhjRKnKc/9N3hSbAzAcqLuAZOKvBF9o5HIsnozkfBhKIO4RESgbBRVNggN1+vR7spfrHJxPdYbGxqdvtac8JT9cyzWYi4F9ubXMY3She5lwgYK97WHl+8ivcwX+FMtGdLaqVz0IjFU6u579WkZNif4e/XI0iere8u1nHwPNhOzfYp/ll/HTfKDeH3fEl+BKNEFFsIp05JNqPVl1KFh2CJo4l1bvl8WPs9brJJ8rHlCd1mpnOmcQxkMo+uFwD+KnOBnE0A7k32lbhGOZEDuy/u11avwEzeLmMYQnk0yig0P4CTVOU7PTAScxK2CXJcV2SGZUGe6cQzdbPgmDtQl9z0OvaciwrZad0DB9tqKWg8gduupPvrkvD0P7gi3Z59ch7SwPK0P4Op+h7upD0BiUrkcraQO7r5KsIDzc0u9gaLNjAz/6qW+KGNayRmisNqgisaTDWludQFedCgUAeaISFdXETL6JCkbFPtF76DS7uLettj6IZJXhhrz9N0P2g/BzMfIm5GPMuan1Z+x2qKnjuy4Kj9B/e/bbYQ/8sGgVh2qLH7QuD+vXBxZjX0Y7txZS7ymZ1dOdA95c6FUyxPjeuQv7g6BNH9uj47vqdWr97+pZ6dLJvIsuK9eRx7Vc/GumF49fwN9bRNVBDDbRzCtQjlmtJqiGwgq6COr48AHcxV0BRkwezE9d8X4k/lu0OH/1E2vaoZnpDqQegtdcqZvezVO+mnPju5yzUPtT1mxZdTZRfXFXvTIPPQv67cRaGjMtGyOXLwup4NLkjqLqjiLyIJPWjUpmwuJS27U5s19kMG7kTnYHGbu9qNhkJvB/uNhokGrC+dhYsRzwQMBiIyXWH2dB8btfjS4CJv4N3xDJy/giTMxbAD5A8xoDIKXvS1/dkV9efyyfOINm+/M+utk0K6/ZCvYFBq6LJROH77vfFpVCfO6qHGX73fYzjH77frXm74DPiEITd0W+9evo3sJE6PcBOo1NSEEhQh5ikLIQWDuwhL99av/GaVlALcNB73xr8mbH/BqCgTcTra7iN3QzXezC8b4UPLi4YiW9Qc2hwA7Lr+7cwqwyIzkP4kz/oV99895kBaxIIt9HDyCJ7ALufl/CeZAvrmPrCU1gHXQa1vpP6noxz7iegvLl1MTRfe3SKXevxHwXthWk5cAJWsA99RkfMFv3y8s6N9od0wuCeKkskyYr1QwltNLnWCyI1QPY6Tnf9i8HsN4rIaqsLzCvH5Fn2xr+rEFCnbn3i+K1CLK9ANFFXlPGWsfvZQJUyRwVBFMcfbisJaiNrOo5tmq9Lu2VQlzMNQRyytoabFnY0puJ3UTALCSQ2E3svkS83Yj2FjROoto+m9lrheP1R+GyqWo+8f+XnRiFFTES4GqRFC2tApBJzkrDkInzqn1tzxA64aRDcyYajn/OWSIj+3S6atLIDOgTXriu6f114jUGHqnj+9mSv382EpFjVzruxbBn8TmrG3GKB2nJCcl4H6NkrJOSRivGbk0A9mRZ+AMXQ/nEdxAnaUi/nNimeUZu9V7eY1nrZyJq5v+zJ+n9CPT5NlQAudTtBrkAno2huoOdXeuxqg19O/TNBYCJtKL8oaiOFXntfdelpsNUVVVdlQVB0szs37NRjnxgYfcZw+q2yKIgsdRIi7MaSoB5FezYmVXhNS9aF/RuMM64K1yXmmcKBSmeDTNdf+tB1w7hxW3tjquy0xQ4HZuJCx+cdrY1pst96bCr0PwfqHY/4ViMYzQ4o5vsyUkWkj42uJc9yqqRaE/jYEt+3E5bFH8PbZ5LTtLaX23d6u3apZGeeFMCLbf5ZAG8aFd7YzGHhsXugay8cg0afOWqPnY/cPQ44bthY63n77fLpQrFPVUbd8P8h9uXs+nwUlal55HJRxYL3ynFSbpK3WOHSOfv8HlK4b7mupSTFN/p4H0J5rh/8llV7gxrcil2JPYK0WshAOthD43fXZzxLlrnrFFawBOyU1Yk6om4m1x49ZZd+1DzCfBqwMxWW+YrXzdIT/F3fsW+oHB/v3DaeIzYgs2Z98ueG3tsddJDHv63QBU5TVYhLTeAh1P4wSIVz4PZ2OX5gc1aRtbFZA7dxW+8+3/LIqoLgt+b8g8efeMb4iuIFFjwNd/X8r9JqzrVw9S8IMyRz7smBDqndWiNOYI9r1onsuLsmwtxl9OfcE0b5pa+dc9dfEc+59lH8yMX3tA/uWNQmH/vxeZp4oe0XB9xb893rxQhjC02zRpsWWotQ+qsYScq2q3Mrvlmj5n4qbqThLpl/3LHpOPpk9zj5F1jEieGe9qDmWzhO17tKSg4O3LcHL6MHnLHYkusqXHR5kJWE/f4szcte894umD7CTGpLF8QxQkaf+31VPtifWJIdeVz9KXu2rjep+S5pzmve93q8AD99tRCKqqm+haktQwLh15OgEcaVsypN//IfwF39fzE4vgxPpINz/5FojJwEu5x/aKz+1YhzeW7MnY1nL+Q/zLFkgeUjq8dc7KQA6UMRd+M1pdgFP/nQfITlF/4oaK5x9XCysM+9Ii5p/yo9zjSv//B5klDeiZ48mfapF9owUVtRtbaN0ip3jLPqHuFKWSjoF6y/u5hWRcp/OIbjNr6hTmK8vL1z9LJWd0Vmzrf5s+fBLj6x0OovblnnqznfKp13QnTQISX5KNSH89FDCMsiwmTZ08JDQjJeJ8TEaadvnbNxbsKOu396acXNBPL4CXrX5TMESUOzsM+8Kp2pd7WT8+W3Mr77+PtzX5v8dynlveFLfn/Q+7FREb5z3+N3EyauuMMvdfwwun791Og1+f0CQtBGl9jdOF3uu54em3XCyesmDyAsuXh0Ma0bRXJ4+UJP3nm+2PxC/POT5Z26964970NEgOLrr/7zmVV30nb21OJDp49KsmjOlid/VTyh+xZ+8i/PeN7Ohe+AJsHU4uaLj/dE+OtPv58z6/NvK51EGfDLrl4FXeax87P8fRKydGU5w4YYeTbb5Tid1+TDd5xV+2En6iKJn2w+DZCet0pdSjfYhzL3+XgRCY7/UWR0XrjVj0TQykvPJ7qOoNTMKF+fTjUfQtGjS/n5+oG7SLgfFKhLy2JxsV10LzAeUxdzOcysLNydAdXsu3Ep2HrRH+eBKqqqzomcIdhcfIvI30fthRuSrYWaTc3qGCwEfsFCYeGPMD849Q5+X12+oZ4pevryJz7ATClb3hm1d+L4fCZFi9X1ZNEd5oXKnc3iCiKb6B6uanFmsUl7lHt7SDh97l6o6JE9eJE7mn1YtZ9EufWdXjGydjmEodX1pEHybuDOmGXY8qC1LF2FRQMB/rdL2j4Zw3W7H+yuPGzm9s3D1+RPqvSjJ90cqg/dexzkdsddqeTyBhsaX001ef3j0VcT2EHPW6cGULR9+O7+TFPWFhV61D3Ir+YcO/4zdpFyH9+uhhvsRe5gj+q1uAr5MLiJocoNwgkO53qyClRDCuVm1G57IGU+V/Au109NHWEtRgH+yuOmfep4Mv9Bo+Nph3wDMmfNMah9dt2Dm1PtJlHlPwvJ4aL7ewNWNfXFyq3aUQvGNKmH7seqCqL1FOWeZuMy3eQu8T1aHq837pdmYfgjKHd6kwy6EK7FoX180TfQG+9idNFT3Gho+P4aOFUQ4wtxQuSXvtQtuna1asuojqMexzjh2qOet5Ie7FePF9vfGhzjlvP6h/jRM0XXU/z+ZP+Guq4La1l983OYr/brdTnip+IMQfj3vto7c3p3p2I/uSEk96PjgpD7L/aVWxrXcTzgiNupaSs6O4oKvLmGZc5exSsJ8k8iAZObyd515YzOHw3dPVVwLSnpa7jjo543kx6My8eLrW8NjrkvH+0QGwKxExuvBufu4IROOt4xwVwPW21lEU4jsNZBMYc1qJUxrQBSxTI9QsfQDe5EjUWuZQDIeT+L3aLOhOkNlKuijTK0uzVjnHfM1Zs8OPOX6Q4VhnfyQVh+2Cyy5vC5tqIHhXfM1Zs85IEfVJAFpR2QnuaKlewCa+4s3FcLLaF9091tCY9fUpMLMgLcSWbKzMwUFe4PT0rObW9k0RbGRFxoAWVaFzILBux8xNTPYMTIOoirG6H/ukrNHa6/doRWgANqbQCnP5iDxbUKPL8CDuAxUkgRRhsJBjTNbgzvPVljXShhZpKEWaNt89fJw/UGWJZgFuuQa8E0KEY7LvUYRytK31gUu7oArpgSmFaJ3gm7uSJmreiMjMm7lZ0s2kEFJy9r6xDGVWSrZxyVBQEcd1u15zOU2comZjYP6v4gOzb1WIEgIB18oWAVERt+L+iYD91gF8pLcgggvYaz4j2RwP41R6MduAvDd1s3ZaoRIHqfXc3QSwrnyA82y4VioeBC/KBUaQ/69IVflyTnTMyHnl2GwKm028DtY0C4jftWBdvMAeVXhznU+k4b5PooDtiOvAEnvQ+9QiGlhQtdGLGgljqUsQByuYmXo0FvT8PVtxow3ORRhs64yl3m13SoT52c7UStUmZmaZuURncKHDdv1fUWzGuDYNf1XshSJFf6xumUMzw2xgMX4omNB95oTGhAuG4m7NDF9BYuMLxV3dFXM0XDYWNWrxE2yj3eyryJikXLArdt+TVEAkzw34cjSMg8EGY3C7cZK87j3azwXU0+ROfxF7aKm1X5Axt1dKBoOYBUkWnV2/QMrczFpykTyN2ShQKHjhBlXKHTfqoSpu50KWUladqtxnHavglBHytk5m/Kq5ouywPJa9ZuVCq5yYFhuCU57vBalPi6Y/StDwX66E2YPZH2OtperI0ljPxOgYwnChh53RIwEOkvN96Y5JaPbYUO1h7UWumAoLQvnNCZn1dRDV1drJalwxvp/MzLi5sVDN2ywXWc9r8gVi2EFTWsQbsFN1CT0L0lm6Ykqwi7MF6ZflsT1sJATN7iw3zq4k/IcjebHfVurzhO3z3MjH4bj9dWJADIHU4mzAn668yYGDpGkw399RSgA3Hdcwdutev8EOc4xEVyK9SIVWUeKZyo6mXBQYw88oS/iwSRL0VgwMqccMWl1oMTrv6aKR/N1rlhdpDF4dZoE7UjLGHb073yAY86FRicAAmHQsoLMdNRQwnY6+i8AMier1njukvmFaTHB2emkQCdYnOKVNggKhVsjhlsnSnG1TOBHFdrMr8uNvWNLBuD4w0ei+0IaxhCmGbiLYSJjOKmFD1gTLE9a7DeXhOe/KoFpA2Sl5WrTH6LY3EYRVD0/rIt4KHJm6gRrTerDV02S+YotnqmklX0h/Oxf52OwbsNy2UyqTR21gjEkxB1biwZSX+j/ptL7xziZ9n36s9X+2Z5fgFV48LKwm6EZmXTvpk6qb+oIZrW6CrRHVuHuyJr2mcMjpvz9hw5jIkJm9JbPnq7pFKQPMVngoBClN68NDWULhP+ruH5KwAfnWaO3Z76o0hyKo//1D75MkAJBhDgv+kvFbbdgP0vC0nO42iluUirE14r2raWKj+3M3kNAhQH472/CDItQQriWnzfnH6Ne0rAGBqWG6ElfgdOZbUN9kSbOF1fPuNGJaiSfInOWFqqNKlpBmretz2sInjVFqRxty64tCvwqHw8eSwUPd3D4poF2rZ/maqSUUIRZCUpfyCxkszHLj5eJTLHSyJPZACUoaGCax9FijdDhh8p47TLgEZD26oLS/SE54qoLhDEtN2ycrHIyqOY8fue9zCzdiAzbfCtBAmUtedWf3+lvARWhWILuQr/moWFWh5j1nx2IuoIBInFrSRJlWNWLRdQSsllEFMuPEohKeYmGseJhI/eqnuSsUnIF7UG/b5y9Q04LfSWXVUGYJq27uIJIU4iXB0jP5pR0dW/pGFNMfm5Ye5FU0qYKYiaP37awAFXnrKqq9TKGuyspZqAEV4OY/5IVOJJ1xUaQsT2wwfxSru5JmMIHYkMSxg/K3549q6tf4AV0/6ArB4jpKQCStLMqWrui5qGqEbwyCKBWuZSXSTYkitN64JzrSX4tZR3WsEpHv4HydFSJENSpEJqFCDFr9WMn/R4lSWjOQluSwRV9dHcmGZuqXs5QPq1uUnNzK/HPKmtI8Si3NwGWEosxsFL9rEhh6w5TuAnID5btCxAJUZAwPM+NhT392iFKnBDJhYVcclZFWMXt6i42BhUAi/ZKkV8WCqVr9fH2ok2dKqocNOnVjF1qjWkrWody2q1gaGqoJk+FK09RaN2cbBQ7UbKVns4Eaq9GCJZf62EqCNYXNRRTIxtHcMANlVhhSJ6YgZFdMqopKubWNXFUi5UlFwuQpTKRuF+sYoroN6GnafYCmV7JEdqVp0wmUSJ0i0amnoU85XGQL1FisFzUkJOkJvgWhnxBsXnkkGfE/HChY+oSpXAUw/O92G6wSqSFZUIlyODTBq5ecVqFY/zS4TJU/zi1UVpYgsnXhXIKozhuaLwCQgGmwPT2LyiJLFSfiL44j6dswgsixvgLj7ucjZcd6xEphw5fULn5OTeZZNGpKoYDfWqhBNckYLKca6w91yMG8ZyXVFBm3PVSySrHrxUNHCVDpI5XqLsJaopb65SEJyAKKxEsWIa4UgVRDh1URh2aAiGjf2cDuOOdPY/fi1gdv8N5jKlo1QGbBWARy3Q74IUu+KqbwULMVOocddcd0MYvvDgBCJoRJrwPyVu2eYLg2b5Q5TZosWINem2UnfEiTeH0DMJ0pQpp6Olt0KPdBkqZHoqS6UqK31CTEJK5i6DGrUhVJOHIltOqHLNVSdPvVVWa/C5NY6Z54X5FljoU4sstpZRo3WWWCpfgefOWmbE17p0c/4qGMYXqfhl74ETWlSiGrWoRyOa0TLkrXfexz66wzGc4NEXLI7sefJyGKGXr31GtbJF5SSRg+O+lMIGUyEFkSRjLvrKCSed0s9i2AUUjBgIF37o2phstEG7Zsv9psV5tBiyXkfc2Pm/l07j8uFthyJ9vvjCBbk0O1et1RvN1ny7011Y7PWXziyvDFbX1ocbm1vbO7t7+wdnz9lsyXa/QsMRGO0mNmVVcU0xIVNXGOhlfN2oSjc/T0qr1pcJItd76NQVBrJCX8xXj1SsIA21FW+c8WM6Q2jTf2Vn8EgS+BZLAOTNBJgSICNy3jrBS/+qKDzK1kjBfhPt9pRjqXmOvx5MTK3U/W7OA1ZOCmKTkPyczuDb+MX4COe+kctt+0tNK6q6xmurK4ctEce9iRIOc77rgeD3eDG9siOkY0LZDn7oF+Ndra5U65lEsc/JJjsFUYErRj4EgirXSDlaSl2g7Cz15q5lAgGS18Cs1yn39DfQFBf/JzGd9CJVtSE0T/tW6GWehYYynXpStqlb7Z0k+GNjAnYDY5fIomAmK1pNzrKTn9wuHbcAzAh0Pd3acMQmAAA="}},"time_used":112,"timings":{"blocked":19,"dns":0,"connect":0,"send":0,"wait":56,"receive":37,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/runtime-embed_advanced_chart.2adadf1cc0ec57097803.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:12.975Z","timestamp":1785148032975,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/runtime-embed_advanced_chart.2adadf1cc0ec57097803.js HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:12 GMT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a632877-132f5\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Fri, 24 Jul 2026 08:55:19 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/24/2026 10:31:23\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 42bf573f7624f08451fc76a857026e37\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":78581,"size_decoded":34908,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (14472)","md5":"14bf3ff2a3107514a76ce3b64ebfadc7","sha1":"cdbe48a268d7b51c28606b399cb8586afee97128","sha256":"99f49c837d9b9a85e81174053a80d5738c2d7c21a53faa30b396f377724df1ba","sha512":"e917564b665e35938d9d86ea200951191fa25a923f4012992d87c30408c3fe4188962849136025458fb8143a64842308d4783c9ae847f84f0720cd7f86a1301f","ssdeep":"1536:Hf6kU6QbwU/pS8wcbXbUFrGAMt6GYvlW1naSzKr1vhheth+47z:Hfy0yLBAK+v4nrD9z","tlshash":"32735cacd23c99b776f02e781c6bac52a33820537d6182ed4397736409b7ef4c666543","first_seen":"2026-07-24T11:36:48.051243Z","last_seen":"2026-07-27T12:53:06.180686Z","times_seen":189,"resource_available":true,"data":"KCgpPT57InVzZSBzdHJpY3QiO3ZhciBlLGEsYyxkLGYsYixfPXt9LG89e307ZnVuY3Rpb24gdChlKXt2YXIgYT1vW2VdO2lmKHZvaWQgMCE9PWEpcmV0dXJuIGEuZXhwb3J0czt2YXIgYz1vW2VdPXtpZDplLGxvYWRlZDohMSxleHBvcnRzOnt9fTtyZXR1cm4gX1tlXS5jYWxsKGMuZXhwb3J0cyxjLGMuZXhwb3J0cyx0KSxjLmxvYWRlZD0hMCxjLmV4cG9ydHN9dC5tPV8sdC5jPW8sdC5fcGx1cmFsPXthcjooZSxhPTYsYz0oMD09ZT8wOjE9PWU/MToyPT1lPzI6ZSUxMDA+PTMmJmUlMTAwPD0xMD8zOmUlMTAwPj0xMSYmZSUxMDA8PTk5PzQ6NSkpPT5udWxsPT1lPzA6K2MsY3M6KGUsYT0zLGM9KDE9PWU/MDplPj0yJiZlPD00PzE6MikpPT5udWxsPT1lPzA6K2MscnU6KGUsYT0zLGM9KGUlMTA9PTEmJmUlMTAwIT0xMT8wOmUlMTA+PTImJmUlMTA8PTQmJihlJTEwMDwxMHx8ZSUxMDA+PTIwKT8xOjIpKT0+bnVsbD09ZT8wOitjLHJvOihlLGE9MyxjPSgxPT1lPzA6ZSUxMDA+MTl8fGUlMTAwPT0wJiYwIT1lPzI6MSkpPT5udWxsPT1lPzA6K2MscGw6KGUsYT0zLGM9KDE9PWU/MDplJTEwPj0yJiZlJTEwPD00JiYoZSUxMDA8MTB8fGUlMTAwPj0yMCk/MToyKSk9Pm51bGw9PWU/MDorYyxwdDooZSxhPTIsYz0xIT1lKT0+bnVsbD09ZT8wOitjLGRlOihlLGE9MixjPTEhPWUpPT5udWxsPT1lPzA6K2MsZW46KGUsYT0yLGM9MSE9ZSk9Pm51bGw9PWU/MDorYyxlczooZSxhPTIsYz0xIT1lKT0+bnVsbD09ZT8wOitjLHN2OihlLGE9MixjPTEhPWUpPT5udWxsPT1lPzA6K2MsaXQ6KGUsYT0yLGM9MSE9ZSk9Pm51bGw9PWU/MDorYyx0cjooZSxhPTIsYz0xIT1lKT0+bnVsbD09ZT8wOitjLGVsOihlLGE9MixjPTEhPWUpPT5udWxsPT1lPzA6K2MsZnI6KGUsYT0yLGM9ZT4xKT0+bnVsbD09ZT8wOitjLGZhOihlLGE9MSxjPTApPT5udWxsPT1lPzA6K2MsamE6KGUsYT0xLGM9MCk9Pm51bGw9PWU/MDorYyxrbzooZSxhPTEsYz0wKT0+bnVsbD09ZT8wOitjLHRoOihlLGE9MSxjPTApPT5udWxsPT1lPzA6K2Msdmk6KGUsYT0xLGM9MCk9Pm51bGw9PWU/MDorYyx6aDooZSxhPTEsYz0wKT0+bnVsbD09ZT8wOitjLGhlX0lMOihlLGE9NCxjPSgxPT1lPzA6Mj09ZT8xOmU+MTAmJmUlMTA9PTA/MjozKSk9Pm51bGw9PWU/MDorYyxjYV9FUzooZSxhPTIsYz0xIT1lKT0+bnVsbD09ZT8wOitjLG5sX05MOihlLGE9MixjPTEhPWUpPT5udWxsPT1lPzA6K2MsaHVfSFU6KGUsYT0xLGM9MCk9Pm51bGw9PWU/MDorYyxpZF9JRDooZSxhPTEsYz0wKT0+bnVsbD09ZT8wOitjLG1zX01ZOihlLGE9MSxjPTApPT5udWxsPT1lPzA6K2MsemhfVFc6KGUsYT0xLGM9MCk9Pm51bGw9PWU/MDorY30sdC5hbWREPWZ1bmN0aW9uKCl7dGhyb3cgbmV3IEVycm9yKCJkZWZpbmUgY2Fubm90IGJlIHVzZWQgaW5kaXJlY3QiKX0sZT1bXSx0Lk89KGEsYyxkLGYpPT57aWYoIWMpe3ZhciBiPTEvMDtmb3IoaT0wO2k8ZS5sZW5ndGg7aSsrKXtmb3IodmFyW2MsZCxmXT1lW2ldLF89ITAsbz0wO288Yy5sZW5ndGg7bysrKSghMSZmfHxiPj1mKSYmT2JqZWN0LmtleXModC5PKS5ldmVyeSgoZT0+dC5PW2VdKGNbb10pKSk/Yy5zcGxpY2Uoby0tLDEpOihfPSExLGY8YiYmKGI9ZikpO2lmKF8pe2Uuc3BsaWNlKGktLSwxKTt2YXIgcz1kKCk7dm9pZCAwIT09cyYmKGE9cyl9fXJldHVybiBhfWY9Znx8MDtmb3IodmFyIGk9ZS5sZW5ndGg7aT4wJiZlW2ktMV1bMl0+ZjtpLS0pZVtpXT1lW2ktMV07ZVtpXT1bYyxkLGZdfSx0LkY9e30sdC5FPWU9PntPYmplY3Qua2V5cyh0LkYpLm1hcCgoYT0+e3QuRlthXShlKX0pKX0sdC5IPXt9LHQuRz1lPT57T2JqZWN0LmtleXModC5IKS5tYXAoKGE9Pnt0LkhbYV0oZSl9KSl9LHQubj1lPT57dmFyIGE9ZSYmZS5fX2VzTW9kdWxlPygpPT5lLmRlZmF1bHQ6KCk9PmU7cmV0dXJuIHQuZChhLHthfSksYX0sYz1PYmplY3QuZ2V0UHJvdG90eXBlT2Y/ZT0+T2JqZWN0LmdldFByb3RvdHlwZU9mKGUpOmU9PmUuX19wcm90b19fLHQudD1mdW5jdGlvbihlLGQpe2lmKDEmZCYmKGU9dGhpcyhlKSksOCZkKXJldHVybiBlO2lmKCJvYmplY3QiPT10eXBlb2YgZSYmZSl7aWYoNCZkJiZlLl9fZXNNb2R1bGUpcmV0dXJuIGU7aWYoMTYmZCYmImZ1bmN0aW9uIj09dHlwZW9mIGUudGhlbilyZXR1cm4gZX12YXIgZj1PYmplY3QuY3JlYXRlKG51bGwpO3QucihmKTt2YXIgYj17fTthPWF8fFtudWxsLGMoe30pLGMoW10pLGMoYyldO2Zvcih2YXIgXz0yJmQmJmU7KCJvYmplY3QiPT10eXBlb2YgX3x8ImZ1bmN0aW9uIj09dHlwZW9mIF8pJiYhfmEuaW5kZXhPZihfKTtfPWMoXykpT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoXykuZm9yRWFjaCgoYT0+YlthXT0oKT0+ZVthXSkpO3JldHVybiBiLmRlZmF1bHQ9KCk9PmUsdC5kKGYsYiksZn0sdC5kPShlLGEpPT57Zm9yKHZhciBjIGluIGEpdC5vKGEsYykmJiF0Lm8oZSxjKSYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsYyx7ZW51bWVyYWJsZTohMCxnZXQ6YVtjXX0pfSx0LmY9e30sdC5lPWU9PlByb21pc2UuYWxsKE9iamVjdC5rZXlzKHQuZikucmVkdWNlKCgoYSxjKT0+KHQuZltjXShlLGEpLGEpKSxbXSkpLAp0LnU9ZT0+Mjg4MzE9PT1lPyJfX0xBTkdfXy4iK2UrIi5mOWU3MzU2ZmY5MWY4MzdmNDdjNy5qcyI6MjM1Njc9PT1lPyJfX0xBTkdfXy4iK2UrIi41ZmRkYzE1OTk4MTQyY2JjNjFlZi5qcyI6ODk2MTg9PT1lPyJfX0xBTkdfXy4iK2UrIi5lOGRiMTlkODEzNzZkNDg2ZTI4OC5qcyI6NTQ4NTI9PT1lPyJfX0xBTkdfXy4iK2UrIi43NzI4Y2RlOWMwMTIyNTk0NWQxMC5qcyI6MTYxOTM9PT1lPyJfX0xBTkdfXy4iK2UrIi5iYTA3NWY4OTVjNmVkMDU3YzExYy5qcyI6OTU1NT09PWU/Il9fTEFOR19fLjk1NTUuNmU0NWM3ZjAyOGQ0NTU0Y2E3MjUuanMiOjg0NjkzPT09ZT8iX19MQU5HX18uIitlKyIuNzE1Y2I3YjI3MzJmMjBjNGM5NjEuanMiOjQ5Njg0PT09ZT8iX19MQU5HX18uIitlKyIuNDk5Y2ZiZDczNDdlOTc0NzIyMjguanMiOjU0OTg9PT1lPyJfX0xBTkdfXy41NDk4LjhlNGNjYzdjZWY4YmZhZjM5Mzk5LmpzIjo4NTUzNz09PWU/Il9fTEFOR19fLiIrZSsiLjQ5ZmRhMTNlMTg3NjEyNDYzZjg0LmpzIjo0OTM4MD09PWU/Il9fTEFOR19fLiIrZSsiLjc1NTNlZDk4YThkZDViYjg0NmI1LmpzIjoyNjk3Mz09PWU/Il9fTEFOR19fLiIrZSsiLjlhZTU2ZDYyMWE1ZjI5ODI3ZTAwLmpzIjo3MTIzNz09PWU/Il9fTEFOR19fLiIrZSsiLjAyYjAzZmQwNDU4MzAzMTQ1MGE3LmpzIjo2MzU1Mz09PWU/Il9fTEFOR19fLiIrZSsiLmQxZWU2MTk4YjcwMjg0NzhkZDYyLmpzIjo3MTcwOT09PWU/Il9fTEFOR19fLiIrZSsiLmVlMDU4NjY3MzBiMTY4YWJkMTM1LmpzIjozMDA3MD09PWU/Il9fTEFOR19fLiIrZSsiLjJiMTIzZWEwZDkyZTk0NGFjOWZiLmpzIjoxMTE1MT09PWU/Il9fTEFOR19fLiIrZSsiLjI1NTk0YzI3MDY2NTkxZTJiYzdiLmpzIjozMzIyNT09PWU/Il9fTEFOR19fLiIrZSsiLjQyOTVmMzJiMWM4ZmRjNzRjMDU2LmpzIjozMjc4PT09ZT8iX19MQU5HX18uMzI3OC5mMjMyMmNiMDExOWQ5MjRjY2Q2NC5qcyI6MjcwNDA9PT1lPyJfX0xBTkdfXy4iK2UrIi45MmRkNThmZDRiZDMwZGUwYmI2ZC5qcyI6MzQyODQ9PT1lPyJfX0xBTkdfXy4iK2UrIi40M2Y0NjA1YmI3MmQ2OWIzZWQ0My5qcyI6Mjc4MjA9PT1lPyJfX0xBTkdfXy4iK2UrIi5jMjJjYmU2NmQ0Y2E0MmE3ZTEyYy5qcyI6MzE2NjE9PT1lPyJfX0xBTkdfXy4iK2UrIi40MmYzMmIxNWExNzcxYTJkZmRlZC5qcyI6MTQ2OTM9PT1lPyJfX0xBTkdfXy4iK2UrIi4xYWZmZmM3MzFkN2NjM2YzYzZjMy5qcyI6NTI4ODI9PT1lPyJfX0xBTkdfXy4iK2UrIi4yODk4ZTYzOGE2ODE4MGVkNmRmNC5qcyI6NzQxMTQ9PT1lPyJfX0xBTkdfXy4iK2UrIi45MGY2N2UzNjU4YWIzMTNiYjVmYi5qcyI6OTA5MDc9PT1lPyJfX0xBTkdfXy4iK2UrIi41ZTkxYTllMWU2OWVlNGZkODkwZS5qcyI6ODM0NTA9PT1lPyJfX0xBTkdfXy4iK2UrIi5hNGQwYWNmYWQxOGNhMzVjNmYyOC5qcyI6NDk2Nzc9PT1lPyJfX0xBTkdfXy4iK2UrIi4wOTg2ODhiMzdmNzg1NWI0Yzc5Yi5qcyI6MjA1NzY9PT1lPyJfX0xBTkdfXy4iK2UrIi4wZTE2ZjI3YzQ3ZTdkZmEwOWE4MC5qcyI6ODEwMTU9PT1lPyJfX0xBTkdfXy4iK2UrIi4yMTUzNzJkNzBjMzNhOGFiNWQ1NC5qcyI6NDA1Mjg9PT1lPyJfX0xBTkdfXy4iK2UrIi4yODljYmViODYzMmM3OGJlYjA1OC5qcyI6Nzk2Njc9PT1lPyJfX0xBTkdfXy4iK2UrIi4zOGI0MDBiN2JjZDcxMjY1ZGU3ZS5qcyI6NjIyNz09PWU/Il9fTEFOR19fLjYyMjcuNDg5YTZlMWQxMjI0YmEwNDk3YzcuanMiOjU1MDc5PT09ZT8iX19MQU5HX18uIitlKyIuY2ZhODA4MmFhY2NlYTk1OTM2MDYuanMiOjM3MDEyPT09ZT8iX19MQU5HX18uIitlKyIuZWRlMGZjM2Q2ODU4N2Q4MTdlZDUuanMiOjE3NjYyPT09ZT8iX19MQU5HX18uIitlKyIuNDdmNWM5Y2FmNjYwYzRkMGU4MDQuanMiOjkyNDE5PT09ZT8iX19MQU5HX18uIitlKyIuOTk2ZmFkZGRmY2EzZTZjMjc2ZDcuanMiOjg4OTk3PT09ZT8iX19MQU5HX18uIitlKyIuMjU5OTFkYTU5ZTIwYTc5NmVkYWEuanMiOjExMzc4PT09ZT8iX19MQU5HX18uIitlKyIuOTdjYWQ3ZGZkZjllNDdhYjRmZjMuanMiOjE2NDYxPT09ZT8iX19MQU5HX18uIitlKyIuMGQ5MTBhNGVhY2VlNTU4NGNkN2YuanMiOjQ1MTE3PT09ZT8iX19MQU5HX18uIitlKyIuZGEwZmRjMGExNDllMTczOGJhNjYuanMiOjIyNjQ5PT09ZT8iX19MQU5HX18uIitlKyIuNmQ0YTQ3MWMxYTNjMTZlNjk1MzQuanMiOjczNjI2PT09ZT8iX19MQU5HX18uIitlKyIuZWZiY2ZlYmEzYjg1MTZkYWZjN2MuanMiOjY4OTUyPT09ZT8iX19MQU5HX18uIitlKyIuM2NhMDljZWIwY2I0MGQ5MjJmZmYuanMiOjE5MTkzPT09ZT8iX19MQU5HX18uIitlKyIuNjBiZDcxMWQ4MzhjNzUxZDY5OTAuanMiOjk5NzU4PT09ZT8iX19MQU5HX18uIitlKyIuOTllM2U2MTdhMWI2NmRkZmY2ZDQuanMiOjI5NDc3PT09ZT8iX19MQU5HX18uIitlKyIuNGJjOTY5OTY3ZTA4OGVmOWRhOTguanMiOjI1OTI0PT09ZT8iX19MQU5HX18uIitlKyIuYjJiOGZkMzA4ZTc2MDZmMDRkZGEuanMiOjkyMDc9PT1lPyJfX0xBTkdfXy45MjA3LmViMmEyYWU2ZDcwYjFhMzA0ZmZjLmpzIjo2MzU2MD09PWU/Il9fTEFOR19fLiIrZSsiLjIwM2YzYzA0YWFmZGE5MTk3OGM2LmpzIjo3NTkwNT09PWU/Il9fTEFOR19fLiIrZSsiLmM0NTQ4NWI5NWZlNjc2YzczNDhjLmpzIjo5ODQ3OT09PWU/Il9fTEFOR19fLiIrZSsiLjA3YjMyZjY5NTBmNWZhYTJkNWRiLmpzIjo3MDk4Mz09PWU/Il9fTEFOR19fLiIrZSsiLmQwYWNjZDU3MWQyNTNjYmU3ZmQ2LmpzIjo5NDE3NT09PWU/Il9fTEFOR19fLiIrZSsiLmMyZjAwM2JkZTQ0NWU2ZjA1Nzg3LmpzIjo4NDM2ND09PWU/Il9fTEFOR19fLiIrZSsiLmRmNWY3OTc0ZWY2NjVlZTBjYTliLmpzIjo2MzU5MT09PWU/Il9fTEFOR19fLiIrZSsiLjRkODFkMjUzMGMzOTQ2MjExMWU5LmpzIjozNjEyMT09PWU/Il9fTEFOR19fLiIrZSsiLjY3MjhmNDhmNTY5Y2I2MTAyZmFjLmpzIjoxNDkwPT09ZT8iX19MQU5HX18uMTQ5MC5mNzFkZGJlNDAxNDk2ZTU1YTVlZS5qcyI6NDQxMzY9PT1lPyJfX0xBTkdfXy4iK2UrIi5hZjczZWIyY2Q2Y2M5ZmVlM2FhMS5qcyI6NjU3ODI9PT1lPyJfX0xBTkdfXy4iK2UrIi41NTA5YmFiYmQ0ZWY1OWMyZmM5NC5qcyI6MTU3MTE9PT1lPyJfX0xBTkdfXy4iK2UrIi4xOTA5NjVlMWJiYTQxOTkzNWI1OS5qcyI6ODU3OTA9PT1lPyJfX0xBTkdfXy4iK2UrIi45YzMzZWI2MDExM2JiYjY1ZDYzOS5qcyI6ODE0NTY9PT1lPyJfX0xBTkdfXy4iK2UrIi4wMTM4MjRkMjYzNDY2NjI3YTZmYS5qcyI6ODc4OTQ9PT1lPyJfX0xBTkdfXy4iK2UrIi45NWVkNGI5ZjMzYTdiZjcwY2NiMy5qcyI6ODMzMzk9PT1lPyJfX0xBTkdfXy4iK2UrIi44ZDM5ZTc2MDFhMjU4ZTY4N2E5MS5qcyI6NjIxOTE9PT1lPyJfX0xBTkdfXy4iK2UrIi4zY2RjMmRiMWJjMTcxNmRjZDM5YS5qcyI6NDgwMzE9PT1lPyJfX0xBTkdfXy4iK2UrIi44Y2ExMDY5ODQ5ZjA5Y2YwZDlkNy5qcyI6Njk3MzA9PT1lPyJfX0xBTkdfXy4iK2UrIi4yODFiMjM5YWY3ZTA0MzU0MDNkZC5qcyI6Nzc1ODI9PT1lPyJfX0xBTkdfXy4iK2UrIi41MDcwYTFkMTc0MjQxNDNjNTc0NC5qcyI6NzgwMTE9PT1lPyJfX0xBTkdfXy4iK2UrIi4zYTJiMTIxZDJlNGUxNDA3ZTc1OS5qcyI6NTc4Njk9PT1lPyJfX0xBTkdfXy4iK2UrIi5jZjg2NDNjYTU3MWIwZjFjNGIxMS5qcyI6MjUwMjg9PT1lPyJfX0xBTkdfXy4iK2UrIi5iY2VkNzNlZDg3MDAxNWZjOWViYS5qcyI6NzA5MDk9PT1lPyJfX0xBTkdfXy4iK2UrIi5kYWY2ZjJjZjA2MTRiODYzMWQ4Ni5qcyI6MjU3ODg9PT1lPyJfX0xBTkdfXy4iK2UrIi44MDU3NTA4MGFlMzZmNjU3MTYwYi5qcyI6NjA2NTg9PT1lPyJfX0xBTkdfXy4iK2UrIi5jNzZjYzZiMWY2ZTRkZGZjYTc4MC5qcyI6MzQ1OTI9PT1lPyJfX0xBTkdfXy4iK2UrIi42MGY2ODI5YWYzNjU5NmMyN2NiMS5qcyI6OTUxMDI9PT1lPyJfX0xBTkdfXy4iK2UrIi4wNzNiMzVkMzA4YTZlMjU1NmJmOC5qcyI6ODc5MTM9PT1lPyJfX0xBTkdfXy4iK2UrIi5lZmYyYWU4NTBkZDhkYjM1ZTkwOS5qcyI6NTgzMzE9PT1lPyJfX0xBTkdfXy4iK2UrIi45NjhlY2JkZGNkNDAyNzg3YjliMy5qcyI6MjU0MzU9PT1lPyJfX0xBTkdfXy4iK2UrIi4xOTlmMGRlNjI3NjllMDM4ODIzYS5qcyI6MzUwMDc9PT1lPyJfX0xBTkdfXy4iK2UrIi5lMzgxYTZlMjRkOGNlZTNmODQ2MC5qcyI6MTcxMzg9PT1lPyJfX0xBTkdfXy4iK2UrIi42MGQ5OWRhZGIxOTZlZTc5MWZiMS5qcyI6OTY0MzE9PT1lPyJfX0xBTkdfXy4iK2UrIi5mZjNhYTNmYzQ1OTNkNTU1ZGQzZi5qcyI6NzI0Njc9PT1lPyJfX0xBTkdfXy4iK2UrIi40ZWZkNzdkYWJhYjJlZmUxYjcyZC5qcyI6NzY4MTE9PT1lPyJfX0xBTkdfXy4iK2UrIi4zODk4NDUzYjhjYmEzYzBlMTE1NS5qcyI6Mjk0Mzk9PT1lPyJfX0xBTkdfXy4iK2UrIi5lZWJlYTcxZTljZmEwYjM1OTJiOS5qcyI6MTM5MzY9PT1lPyJfX0xBTkdfXy4iK2UrIi45MDZhMGEyMjMxYWUxY2JkOWNkMy5qcyI6NTQwNDA9PT1lPyJfX0xBTkdfXy4iK2UrIi42MTFiYWNjNTI2YTI3YWFlMWEzYS5qcyI6NzMxMT09PWU/Il9fTEFOR19fLjczMTEuZmI1ZDA0OTRlZjg1NzNiZDkwNjguanMiOjc1NTI9PT1lPyJfX0xBTkdfXy43NTUyLmJjMDAyMDE5Mjk3Nzc3MWQ3MTE5LmpzIjoxNjU5OD09PWU/Il9fTEFOR19fLiIrZSsiLmIwYWI1YzJjMmRjNTQ0NGNkZWViLmpzIjoyMjUxMD09PWU/Il9fTEFOR19fLiIrZSsiLmM2MjcyNDU5YTE3YzUzOThmZDdiLmpzIjo1NTgwMT09PWU/Il9fTEFOR19fLiIrZSsiLmQ5NDk2ZGI4Y2QwYTUzZGRlMDJjLmpzIjoxMDc3Nj09PWU/Il9fTEFOR19fLiIrZSsiLjY0YzQxMjNlN2MwY2NjMzkwNWJhLmpzIjo3ODAzND09PWU/Il9fTEFOR19fLiIrZSsiLjgwMGIyY2VlNjQ5OGE2YzRiNDRhLmpzIjozOTE4Mj09PWU/Il9fTEFOR19fLiIrZSsiLjE4YjMxYTU4ZDRiNTc5NmQ5YjBkLmpzIjoyNDQxPT09ZT8iX19MQU5HX18uMjQ0MS4xYjQzNWE0M2RiMTY1ODAyNzdjMi5qcyI6MjcyOTI9PT1lPyJfX0xBTkdfXy4iK2UrIi5hNDUzMTNkNDlkZDc3NWJhZDI1Zi5qcyI6NTUzOD09PWU/Il9fTEFOR19fLjU1MzguYTdlNmE5YjliZDRlZGI4ODVmNzUuanMiOjk2Njc4PT09ZT8iX19MQU5HX18uIitlKyIuYzEwNmIyNjA0OWU5YjAyYmU3NzkuanMiOjg2NTkzPT09ZT8iX19MQU5HX18uIitlKyIuODIxODlmNjM2ODQ5YTUxZDA1NjkuanMiOjQ5MzA3PT09ZT8iX19MQU5HX18uIitlKyIuYzhkOGEyYjQ2NWY0MjBjMzZjOWQuanMiOjQyMDk2PT09ZT8iX19MQU5HX18uIitlKyIuODVhMWYyY2IzY2U2NzU3MTZjZjYuanMiOjIxNzg0PT09ZT8iX19MQU5HX18uIitlKyIuM2E4NzY3MGVmNDFlZGZkYzg4NWMuanMiOjc4NDQ9PT1lPyJfX0xBTkdfXy43ODQ0LmM3NDhlNzFlYWYxNzExODBhY2ZmLmpzIjo4NzIzOD09PWU/Il9fTEFOR19fLiIrZSsiLjdlNzczMDk3MzM3YTM0YmU2NjUyLmpzIjoyMDMzNz09PWU/Il9fTEFOR19fLiIrZSsiLjMwMTVkYjVlMGE1MjE5NjIzY2ZiLmpzIjo5Mzc0NT09PWU/Il9fTEFOR19fLiIrZSsiLjlkOTkxMTY3ZWY2ZDg5MjZiOTFlLmpzIjo2NjAwMj09PWU/Il9fTEFOR19fLiIrZSsiLmQxMWM0NDk1NTYxMjg0ZTg3MjI3LmpzIjoyMTg3MD09PWU/Il9fTEFOR19fLiIrZSsiLjdkMzdmZmE1M2RmYmJjMTg0MDg4LmpzIjo4NTAxND09PWU/Il9fTEFOR19fLiIrZSsiLjIzMzc2MTVhNGJkMmMzMDNjMDQ2LmpzIjo3Mzc3PT09ZT8iX19MQU5HX18uNzM3Ny5kYzEwMzEyNTJiZjkyY2ZiNDFmYi5qcyI6OTY4MjM9PT1lPyJfX0xBTkdfXy4iK2UrIi4xMjI2NWRkODhhNWQwOGQ2NmE4Yi5qcyI6Mjc1NzE9PT1lPyJfX0xBTkdfXy4iK2UrIi4yYTZjMzcwMmZiYzUxZTk0YzYyNi5qcyI6MzUyNTQ9PT1lPyJfX0xBTkdfXy4iK2UrIi5mMzE3NDgxOWIxNDBiNmE3ZDJlNy5qcyI6Njk2OTQ9PT1lPyJfX0xBTkdfXy4iK2UrIi4wOGEzMGYwN2JhMTk1YjVlODM0Zi5qcyI6ODU4Nzk9PT1lPyJfX0xBTkdfXy4iK2UrIi4zMTg5YjcwN2E5MTY1YzY1ZDlmYS5qcyI6MjY5NjA9PT1lPyJfX0xBTkdfXy4iK2UrIi4zMzcxZGJiZGEwM2Y5Y2EwZGUyOS5qcyI6OTgxMTE9PT1lPyJfX0xBTkdfXy4iK2UrIi44YzZiYTU1Nzk0YjY0YWQ3Zjg3Zi5qcyI6NTk4Mjk9PT1lPyJfX0xBTkdfXy4iK2UrIi4xODU0YTZiY2I5NjUxOTNjODkyZi5qcyI6OTQyNDQ9PT1lPyJfX0xBTkdfXy4iK2UrIi5iYTg5Yzc1NDA0MWMzNGI2YWVmMy5qcyI6MTIwODA9PT1lPyJfX0xBTkdfXy4iK2UrIi45MjM1MWEzNzc4MDEzMmM5ZTlmZC5qcyI6OTkxMjQ9PT1lPyJfX0xBTkdfXy4iK2UrIi43MTI5ZTA1N2M3NDQ0ZGYyNTk5NC5qcyI6MjcxNzQ9PT1lPyJfX0xBTkdfXy4iK2UrIi4yODQ4NDY0ZDVjMGNhNmMzMmE0My5qcyI6NDAxNTc9PT1lPyJfX0xBTkdfXy4iK2UrIi4wYjk5ZDU0NTMyYWIwNDAxNmJjYS5qcyI6NTQ4Nj09PWU/Il9fTEFOR19fLjU0ODYuMWIxZTMwODg0NGNkM2YwNDdiMDcuanMiOjYxOTUwPT09ZT8iX19MQU5HX18uIitlKyIuOGJiNWU5MDIwYTY0MmY3OTZjOTMuanMiOjE0OTI2PT09ZT8iX19MQU5HX18uIitlKyIuOTM2NDNhMjRkYjhiM2NkYmU1YzQuanMiOjk4MzgzPT09ZT8iX19MQU5HX18uIitlKyIuMmQ0MTY5YzRhZTMyMmFkYjc0MGUuanMiOjMzMTc2PT09ZT8iX19MQU5HX18uIitlKyIuMjkwMGIxNzFiNmFmY2JlNWZjYzQuanMiOjE0NT09PWU/Il9fTEFOR19fLjE0NS44MTJjOTAzYTA1Y2FhYTJjYTEyNS5qcyI6MTI2NjM9PT1lPyJfX0xBTkdfXy4iK2UrIi43NDE5MzQyMzU0ZWNhMmZmZTMxNy5qcyI6MTE1MjY9PT1lPyJfX0xBTkdfXy4iK2UrIi4xN2RkMTM5ZjYwNGEyZDk4M2M3Ny5qcyI6NDI1MzU9PT1lPyJfX0xBTkdfXy4iK2UrIi5iNDg3NjY3ZDMzMzE4MmMxZWI1Zi5qcyI6Njk4MTI9PT1lPyJfX0xBTkdfXy4iK2UrIi44MzM3NmJlMzMxZWJkZTk4YTU0ZC5qcyI6NDY4MzE9PT1lPyJfX0xBTkdfXy4iK2UrIi40ZGY5Y2Q3NDdjZWZjMjRmMTg0Yy5qcyI6MjEwODA9PT1lPyJfX0xBTkdfXy4iK2UrIi5jNzM3M2UxOGM3ZDc4MDc0ZTQwYS5qcyI6MTQ5OTE9PT1lPyJfX0xBTkdfXy4iK2UrIi4wN2Q2ZTg1YjZkMDU4ODE1MmJhYS5qcyI6NTQ5MDQ9PT1lPyJfX0xBTkdfXy4iK2UrIi40YWZkZmI5MGNjNzVkYWQ2ZThjYS5qcyI6MzkzNz09PWU/Il9fTEFOR19fLjM5MzcuY2IxM2QyZjQ0MWU5NjNiOGY4NTEuanMiOjM3MDkxPT09ZT8iX19MQU5HX18uIitlKyIuODg5OTAzZmE0MTgwYTQwYmI3MWYuanMiOjM5ODM9PT1lPyJfX0xBTkdfXy4zOTgzLjZmOWJlZmFhMDVhNjg1YzcwNjg0LmpzIjo0MzA2MD09PWU/Il9fTEFOR19fLiIrZSsiLjRjZWU5ZGJmZGY0ZmVjN2I0ZjM4LmpzIjoxMDg0MT09PWU/Il9fTEFOR19fLiIrZSsiLjc2NmY5NjY4NzhiN2Y4NzI2ZDc0LmpzIjo3OTk3OT09PWU/Il9fTEFOR19fLiIrZSsiLjNkYTNmZmQyNzExMGViODg5MGQzLmpzIjo5MzI5MD09PWU/Il9fTEFOR19fLiIrZSsiLmZhMDEwZTQyNmY5YWYwOGRkNDNlLmpzIjo0MjE2Nz09PWU/Il9fTEFOR19fLiIrZSsiLmM2ZTM1MWI0MTc1Y2YyZjg4NjhhLmpzIjoxOTI2ND09PWU/Il9fTEFOR19fLiIrZSsiLmE5NDdkNjMxODJlZjE1ZDg3MTgzLmpzIjo4ODQzMj09PWU/Il9fTEFOR19fLiIrZSsiLjQ0MDYwYWRkMjE2MjgwY2ZhMGQzLmpzIjoxMjY1Mz09PWU/Il9fTEFOR19fLiIrZSsiLjYzNTc2NjU5MmI0NmRlNzQ4ZThkLmpzIjoxNzEyMz09PWU/Il9fTEFOR19fLiIrZSsiLmFkNGQ4ZTc2ODNlMzQ2ZjEyZTEyLmpzIjoyNTc1Mz09PWU/Il9fTEFOR19fLiIrZSsiLjczN2Y2NTNhN2IxM2YwNmE5ZmNlLmpzIjozNDkwOD09PWU/Il9fTEFOR19fLiIrZSsiLjQ4OGNkMTQ3MzYwMTljZWYyN2JjLmpzIjo3MzcyNT09PWU/Il9fTEFOR19fLiIrZSsiLmFiNzNlOTU0ZDJjZDFiZTM2ZGM0LmpzIjo0MDg5Mj09PWU/Il9fTEFOR19fLiIrZSsiLjc2ZWUzYzUyNDE3YTYwZmIwOTMxLmpzIjo0ODgzNz09PWU/Il9fTEFOR19fLiIrZSsiLmVkNjU2NzNlNTgzN2NkODY3MzdhLmpzIjo5NjQ0OD09PWU/Il9fTEFOR19fLiIrZSsiLmEyMzA5M2IyMGMyZTQ4YWFjMTJiLmpzIjo2MDkzOT09PWU/Il9fTEFOR19fLiIrZSsiLmVlNmNiZWVmODZkZDhmZjEwOTY0LmpzIjo0OTIxNT09PWU/Il9fTEFOR19fLiIrZSsiLjJjMjE1NmZhMGU4NTQ1Y2JjYWFiLmpzIjoyMDg2Nj09PWU/Il9fTEFOR19fLiIrZSsiLjNkYjhlOGVlZWU2ODZhNTA5YjIwLmpzIjo0MTI4MD09PWU/Il9fTEFOR19fLiIrZSsiLjJhYTNjZDA3ZDYwMGViOTZjYmJjLmpzIjo4MTM5NT09PWU/Il9fTEFOR19fLiIrZSsiLmI2ZDgzYzc0ODhkZjQ5MDM5NGY4LmpzIjoyNjc3MT09PWU/Il9fTEFOR19fLiIrZSsiLmUzYjAzNTVjZmZkMDc3YmRlMjQyLmpzIjoxMDY3ND09PWU/Il9fTEFOR19fLiIrZSsiLjY1YWNkY2NmZWYwZjNmNDk4MmUwLmpzIjo0OTc0Nz09PWU/Il9fTEFOR19fLiIrZSsiLjlmZGRlOGRmYmQ0NTY2MzhmMzExLmpzIjozODUzNT09PWU/Il9fTEFOR19fLiIrZSsiLjI2OTE4OTI3NWFkZGQxZjc2N2I1LmpzIjo1OTMxPT09ZT8iX19MQU5HX18uNTkzMS4yZDAwYTEwNjc4ZTc4Y2Q2NmM5Mi5qcyI6ODYzMT09PWU/Il9fTEFOR19fLjg2MzEuN2FjZjJiYTQ0MjE2MzMyM2E2ZWMuanMiOjg0OTAwPT09ZT8iX19MQU5HX18uIitlKyIuMGQzNzYyZmQwY2U3MjNlNTQxZGIuanMiOjM5OTg4PT09ZT8iX19MQU5HX18uIitlKyIuM2M5ZDQ2ZDY5ZjVhZDcyMTA5YTAuanMiOjM5NTA0PT09ZT8iX19MQU5HX18uIitlKyIuZWI3Yzg1OGEyMzEwOGFjYTdmZWUuanMiOjgyMDAzPT09ZT8iX19MQU5HX18uIitlKyIuZDc0OGI4Njg4MDM4ZTcyOWVmMDkuanMiOjE4OTExPT09ZT8iX19MQU5HX18uIitlKyIuNjk4MTkzOGIxMTQzYWFhNjE1NzcuanMiOjUzNzg5PT09ZT8iX19MQU5HX18uIitlKyIuZTQ1ODQ1YmYwMDRlNjRhNzFmNmIuanMiOjU0NjQ9PT1lPyJfX0xBTkdfXy41NDY0LjFkNmMzNjI2ZTQ4NTNmYWUzN2ZlLmpzIjo4OTUzND09PWU/Il9fTEFOR19fLiIrZSsiLjE4N2FiMTllNDViNjZjNzk0MmMzLmpzIjo4Njg3MT09PWU/Il9fTEFOR19fLiIrZSsiLmJlN2JmMGEyYjM0YjM3Yjg1ZjRiLmpzIjoyMTg4OD09PWU/Il9fTEFOR19fLiIrZSsiLjliM2QzZmNjYjgyZDI1ODc2MzMyLmpzIjo3ODM9PT1lPyJfX0xBTkdfXy43ODMuNmI4ZDMzZmFiZjYwYmE1MzE1MDcuanMiOjI2NzY0PT09ZT8iX19MQU5HX18uIitlKyIuZDhmZjZlMjlmYWU1ZTJlNDMxNDguanMiOjE3MDkyPT09ZT8iX19MQU5HX18uIitlKyIuODlkOGUwYmY1MWE3N2Q2Y2U3MzEuanMiOjUzNDExPT09ZT8iX19MQU5HX18uIitlKyIuZTgwM2YzZDcyOWI5NTViZTZlMzYuanMiOjg2MjM4PT09ZT8iX19MQU5HX18uIitlKyIuZGIwNzUwYTcwZDM2NzhiM2ExMmQuanMiOjg2MzI0PT09ZT8iX19MQU5HX18uIitlKyIuZDkzN2I2NzRlMmUwYTY1MGZjMDkuanMiOjI0NTA9PT1lPyJfX0xBTkdfXy4yNDUwLjYxM2I4MWRmYjc1MDZkZjdjNTk5LmpzIjo3Mjc1PT09ZT8iX19MQU5HX18uNzI3NS43NTFmNzU4NzU0MDUwNDg4NzEyMy5qcyI6NTY4MDE9PT1lPyJfX0xBTkdfXy4iK2UrIi43MDAwZjcwOGViNmY0NzFiMGQ3Zi5qcyI6MzQ0NzE9PT1lPyJfX0xBTkdfXy4iK2UrIi5kODg0ZTE0ZDQzMjYxM2UxNzU5Yi5qcyI6OTQyNTg9PT1lPyJfX0xBTkdfXy4iK2UrIi5lYTFiMzM0MzhlYTEwOGNiNDcxZi5qcyI6ODQ5Mzk9PT1lPyJfX0xBTkdfXy4iK2UrIi4xZmNkMTM1ZGViODM4ZjdmOTFkYi5qcyI6ODc0Njg9PT1lPyJfX0xBTkdfXy4iK2UrIi44NWFjZDc2OTQyNzM2NzFhNWUxZS5qcyI6ODcwMDc9PT1lPyJfX0xBTkdfXy4iK2UrIi5jMGZmMDQ0NTQwZmNmMmZkZGYwNi5qcyI6Mjc3NjE9PT1lPyJfX0xBTkdfXy4iK2UrIi5jMzdiOTUxMGZlZjNhZjI4MDk5Mi5qcyI6NDkzOTQ9PT1lPyJfX0xBTkdfXy4iK2UrIi4yZWYyNTYyNTJjMjMxZDY5MzVhMi5qcyI6NDM1NzY9PT1lPyJfX0xBTkdfXy4iK2UrIi5iOGYyOGE1MjRjNzUxM2RjZjA1Zi5qcyI6MTMzOT09PWU/Il9fTEFOR19fLjEzMzkuZjkwZWUwZWNkMmM3NzZmNmRjMDcuanMiOjY5Nzc3PT09ZT8iX19MQU5HX18uIitlKyIuYWQyZmU0ZmM3YzJjMGYyZjRiMDEuanMiOjg4MDM9PT1lPyJfX0xBTkdfXy44ODAzLjIxYzJjYTgyOTEyMmU5MTVkZjIzLmpzIjoxOTkxNj09PWU/Il9fTEFOR19fLiIrZSsiLjQyZWUxZTk4ZDc1MzBhYTU2NTUzLmpzIjo2MTA4OD09PWU/Il9fTEFOR19fLiIrZSsiLjA4MzNmM2YxNzM1OGRkMTdlN2ZkLmpzIjozNTE1MD09PWU/Il9fTEFOR19fLiIrZSsiLjdiMGNmM2YwZmIwZDQ4YTU0MTg2LmpzIjoxNTk5OD09PWU/Il9fTEFOR19fLiIrZSsiLjVmYjFlN2JlYzc1NTcyYzAxMGExLmpzIjo2NTI1OT09PWU/Il9fTEFOR19fLiIrZSsiLmE2Njg5MzUwNTZhYWU5OWMzMzQxLmpzIjo4NTk0Mz09PWU/Il9fTEFOR19fLiIrZSsiLjM1Y2UwN2ZlOWViYzQ4NmIwMzAxLmpzIjo4NjgwOD09PWU/Il9fTEFOR19fLiIrZSsiLjQ4NzJlNjU3MmZlYTMwNDE0NWI5LmpzIjo0OTUwMT09PWU/Il9fTEFOR19fLiIrZSsiLjQwMzRjYWU3ZWFhZDVjZjY5Y2IyLmpzIjo4NzU0Mj09PWU/Il9fTEFOR19fLiIrZSsiLmExYTRhMDBmNGI2YmE0NDFkNmUyLmpzIjo3NzI2Mz09PWU/Il9fTEFOR19fLiIrZSsiLjcwMGYzYTAwYjI5MmRkMjg4YmI4LmpzIjo4MzA4Mz09PWU/Il9fTEFOR19fLiIrZSsiLjg4NDAxNmY2ZGJhMWEwOTRlYzU0LmpzIjo2MzA1MT09PWU/Il9fTEFOR19fLiIrZSsiLmQxN2Y3MmJkZjA4ZTAxOTdiMjJiLmpzIjo1MjMyND09PWU/Il9fTEFOR19fLiIrZSsiLjYyNjVlMDA0ZTAzNjE5NDY5ZmE2LmpzIjo2NTc1MD09PWU/Il9fTEFOR19fLiIrZSsiLmUwN2Y4NmZkZjY3ODE2ZDU4YTk3LmpzIjo2NzQzNj09PWU/Il9fTEFOR19fLiIrZSsiLmE3OTc2NTQ4OWE4NjJiYWY5NTNhLmpzIjo1NDI0OD09PWU/Il9fTEFOR19fLiIrZSsiLmI1MjVjMzAxNWM4NjE4Y2U3NDA4LmpzIjo1NDc4MT09PWU/Il9fTEFOR19fLiIrZSsiLjdhNzNjMTMzYjg4OGUxNmEzYWVjLmpzIjo3MzcwPT09ZT8iX19MQU5HX18uNzM3MC5hMGJmODgwN2RhOGQzNTlhMTQ5Yy5qcyI6MTQyMj09PWU/Il9fTEFOR19fLjE0MjIuYzU2MWU0NTkyN2M2Njg4MzhkM2EuanMiOjE3ODU5PT09ZT8iX19MQU5HX18uIitlKyIuNGE1ODBhY2U0OTE0ZjExNWNkMDcuanMiOjE2Mzc3PT09ZT8iX19MQU5HX18uIitlKyIuNGVhZDdiYmRlM2VlZDljYjJlY2IuanMiOjQyMjM2PT09ZT8iX19MQU5HX18uIitlKyIuZTg4NTUwNjljNzBlZTZiNjRlYzcuanMiOjM4NTU1PT09ZT8iX19MQU5HX18uIitlKyIuODQ3NzIyMDc2ZmQwMjExNjQyNmYuanMiOjk5MjIwPT09ZT8iX19MQU5HX18uIitlKyIuNWJmNGZlOTdkYTk2YzZkNGE4OTQuanMiOjYxOTEzPT09ZT8iX19MQU5HX18uIitlKyIuNmQ4MTczNzYyNzA5MzMzYzdhZGEuanMiOjY0MzYxPT09ZT8iX19MQU5HX18uIitlKyIuMzVkZjNiMjdkNDVlZTgyNjI0ZmUuanMiOjUxMzE0PT09ZT8iX19MQU5HX18uIitlKyIuMTAzMTQzYTZiMjg3ZmVkZWMwYzIuanMiOjk1NzcyPT09ZT8iX19MQU5HX18uIitlKyIuYzI4NDVlN2Q2YTIzYjU0NTliYTUuanMiOjY4NjcyPT09ZT8iX19MQU5HX18uIitlKyIuMjUzMzhhYjE2NzBlMDMwNzUyZWIuanMiOjI4ODc1PT09ZT8iX19MQU5HX18uIitlKyIuZWRlMWI3MjE4MTY5M2QxYWNmNGYuanMiOjczMTkwPT09ZT8iX19MQU5HX18uIitlKyIuNDI3NzkyYzcxOGEzZjU5MThkMDUuanMiOjk0NzAyPT09ZT8iX19MQU5HX18uIitlKyIuNmM1ZDUyOWVhY2Y1OGYxY2QyYzEuanMiOjEyMzkzPT09ZT8iX19MQU5HX18uIitlKyIuOGNhMDRmYTc4ZjA0M2E4Yjk5YWMuanMiOjQ3MDMwPT09ZT8iX19MQU5HX18uIitlKyIuOWFhNmUwZmY0ZWRkYTE2ODc1MzYuanMiOjkwMjUxPT09ZT8iX19MQU5HX18uIitlKyIuMjkxYzVkMGYxZWYwOTdiMDljMTguanMiOjQwNTU3PT09ZT8iX19MQU5HX18uIitlKyIuNzRlYzZhZjVmMTg5ZWExYjRiYmEuanMiOjI5NjE4PT09ZT8iX19MQU5HX18uIitlKyIuZGQyMDhmYTlkMjZlNzMyODEwOWMuanMiOjQ0MDY2PT09ZT8iX19MQU5HX18uIitlKyIuNjg4ODFlZTU3ZjMwYzQwM2JiMDMuanMiOjQyNTE9PT1lPyJfX0xBTkdfXy40MjUxLmVhZGNlODIwZTIwODFlNDFmZTM2LmpzIjoyOTgyMT09PWU/Il9fTEFOR19fLiIrZSsiLmEwOTkxMWZmNDhmYmIwN2JiNzdkLmpzIjo2MTA2Nj09PWU/Il9fTEFOR19fLiIrZSsiLjNjYjZjNjQyM2M2YjFmYTAxMGRmLmpzIjo3NjM4NT09PWU/Il9fTEFOR19fLiIrZSsiLmEzOGM4ZTkyMTk2MGNlYTQ0MDE5LmpzIjoyNjA1PT09ZT8iX19MQU5HX18uMjYwNS5mNzAwYWY2Y2I4MGIwNmU1NTRkZC5qcyI6OTk4NjU9PT1lPyJfX0xBTkdfXy4iK2UrIi41NTg4ZjJiZGYzNDkxMmVjMTQ0OC5qcyI6OTk3NjU9PT1lPyJfX0xBTkdfXy4iK2UrIi42ZGE2YmRiYjA4ZjZmN2I5YzFkZC5qcyI6MzA1OTc9PT1lPyJfX0xBTkdfXy4iK2UrIi44NGE0YjNlM2NjYjZkN2MyZjIyYS5qcyI6NDU1MjI9PT1lPyJfX0xBTkdfXy4iK2UrIi4zYTY2MGExNDIxMjRhZGY0NTA0My5qcyI6MTAzMz09PWU/Il9fTEFOR19fLjEwMzMuNzM0YmQ3ZGFmZTc3N2NmMmRmNjEuanMiOjg4ODkxPT09ZT8iX19MQU5HX18uIitlKyIuMmY2NjNiZDEyNWRiMjhmMWNiZGEuanMiOjg4NDI9PT1lPyJfX0xBTkdfXy44ODQyLmY0ODQ0YjQ0MDc4MWIxOWU0NTA4LmpzIjoxOTAzND09PWU/Il9fTEFOR19fLiIrZSsiLjMwNTE3MjA0N2U3ZmFiYjUzNDgxLmpzIjoxNjcyPT09ZT8iX19MQU5HX18uMTY3Mi5mY2Y2OTljNDJjYmY2ZGEwNTAzZC5qcyI6MjEzOTc9PT1lPyJfX0xBTkdfXy4iK2UrIi4zNDFmNmM3Yjc2NTdlNTU1NGRmMC5qcyI6MjkxNjk9PT1lPyJfX0xBTkdfXy4iK2UrIi5jMzU3M2RkMzNhYmVlZWViZWYwNC5qcyI6MTg4OTg9PT1lPyJfX0xBTkdfXy4iK2UrIi5kZjg2NzhmYjFmZWY3NzFiNTNhYS5qcyI6MTg2Mjg9PT1lPyJfX0xBTkdfXy4iK2UrIi4zMmIwYmMyMDhkNWUxOTBhMzczMy5qcyI6NzM2MzM9PT1lPyJfX0xBTkdfXy4iK2UrIi4wNWI1ZWZmNDZkNTkxNTcxNGZmYy5qcyI6Njc5NDk9PT1lPyJfX0xBTkdfXy4iK2UrIi45NDAxYWZjYjdiZDQ3N2UzMTlhMS5qcyI6Njg4NjA9PT1lPyJfX0xBTkdfXy4iK2UrIi4zNzY2ZDExMDc4ODEyZDdmMTQ1Ny5qcyI6MTg3ODE9PT1lPyJfX0xBTkdfXy4iK2UrIi4zOGYxMDNjZWIzNTFkNjhjMmY4Zi5qcyI6NDg5MTI9PT1lPyJfX0xBTkdfXy4iK2UrIi4wN2YxM2U2OTRkZGY1NGI0ZGVlYi5qcyI6NjQ0NDE9PT1lPyJfX0xBTkdfXy4iK2UrIi42ZDNhMDdiOWE4MTQwODczMWNjNC5qcyI6MzMzOTE9PT1lPyJfX0xBTkdfXy4iK2UrIi5hZWRkMWQzY2VlZmJlNGNlNjgwMi5qcyI6NTUwMzg9PT1lPyJfX0xBTkdfXy4iK2UrIi5jYWZjZDVlNTA1M2YxMDhlZTYzMS5qcyI6OTM3NTM9PT1lPyJfX0xBTkdfXy4iK2UrIi5iNmRlZWE5OWMyYTlkOTU5NWIzZi5qcyI6Njc1ND09PWU/Il9fTEFOR19fLjY3NTQuYmQxZGNiNWU1MzhkNzVhN2QxN2YuanMiOjkzOTA1PT09ZT8iX19MQU5HX18uIitlKyIuYzhmNjE0YzQxYzIzZjJmYTMwYjMuanMiOjgxNzQ2PT09ZT8iX19MQU5HX18uIitlKyIuNzNlNmU5ZmEzNzEyOTkyYWRmODEuanMiOjc4MzY1PT09ZT8iX19MQU5HX18uIitlKyIuYmEzMDJjMTI0NmY3ODJhZmJmZWUuanMiOjgyMjQyPT09ZT8iX19MQU5HX18uIitlKyIuZTJkZjJhNWQxMzYyZjZjNGEzOTYuanMiOjkxMjc4PT09ZT8iX19MQU5HX18uIitlKyIuNTVjOTRkZTIzNjQxZTBhZmU5NmEuanMiOjIxMDY2PT09ZT8iX19MQU5HX18uIitlKyIuYTgxOWE2MzE4MDEwYTBkOTkyZGMuanMiOjk0MjM3PT09ZT8iX19MQU5HX18uIitlKyIuZTlkZTczNGMwMDBjZTY3MDYxM2IuanMiOjYyNTc0PT09ZT8iX19MQU5HX18uIitlKyIuZDBiODNmZDliODM0YjBiY2MzNzUuanMiOjI0NDUwPT09ZT8iX19MQU5HX18uIitlKyIuZGQzMTBiZmNkNzBkM2JkMWVjMjAuanMiOjkyOTY0PT09ZT8iX19MQU5HX18uIitlKyIuYWE2NzBkZGZkMTY1OTU5NjRhZWIuanMiOjQ1NTk3PT09ZT8iX19MQU5HX18uIitlKyIuNThmYzJlMjJhZjhmMTAyYTQ2MGEuanMiOjEwMzgyPT09ZT8iX19MQU5HX18uIitlKyIuYThlM2Y3MzYzNzY4M2YwN2IxNWIuanMiOjcwODU3PT09ZT8iX19MQU5HX18uIitlKyIuNDAzZTRlM2JiOWI1OTZhZDAzOTcuanMiOjYwMzY1PT09ZT8iX19MQU5HX18uIitlKyIuYjQwN2FkMTYxOGFiNjViOWUxNjYuanMiOjYxODAzPT09ZT8iX19MQU5HX18uIitlKyIuZmY1ODc4OWM0MzVhMDk3MDZjZTkuanMiOjMyOTA9PT1lPyJfX0xBTkdfXy4zMjkwLjE3ZDk1OTMyOGQzYmMwN2Y0M2IxLmpzIjo5MjY1MT09PWU/Il9fTEFOR19fLiIrZSsiLjA4NDNiZjM4YmVlODMxMWM2NzdiLmpzIjo1ODgyMD09PWU/Il9fTEFOR19fLiIrZSsiLjA5YjQxZDJlZDg0Yjc5ZjRmZTI0LmpzIjo2NDUwPT09ZT8iX19MQU5HX18uNjQ1MC42NDc1NTY5ZjYxNGQyOTMyMTY4OC5qcyI6MTc0NDM9PT1lPyJfX0xBTkdfXy4iK2UrIi5iMzVkN2MwZmYxMDA5ZTM0ZTcyNC5qcyI6KHsKMTU1OiJzaG93LXJlcG9ydC1kaWFsb2ctaW1wbCIsMzM4OiJzdHVkeS1lbGxpb3R0LXdhdmUiLDU3NzoiY29udmVyc2lvbi1jb250ZXh0Iiw5OTM6ImxpbmUtdG9vbC1iZXppZXItY3ViaWMiLDExMDA6ImxpbmUtdG9vbC1yZWdyZXNzaW9uLXRyZW5kIiwxMjAzOiJmaW5hbmNpYWxzLXBlcmlvZC1kb2N1bWVudHMtZGlhbG9nIiwxNDA5OiJiYWNrdGVzdGluZy1pbXBsIiwxNDM4OiJsaWdodHdlaWdodC1hbmFseXNpcy1jaGFydC1kZXBzIiwxNDY0OiJzY3JpcHQtdmlldyIsMTUyMToienhjdmJuRW5QYWNrYWdlIiwxNjQ2OiJsZWdlbmQtdmlldy1yZW5kZXJlciIsMTY5OToiY2hhcnQtcmVuZGVyZXIiLDE4MjY6ImxpbmUtdG9vbC12ZXJ0aWNhbC1saW5lIiwyMjg0OiJyZWd3YWxscy1tYW5hZ2VyIiwyNTAxOiJsaW5lLXRvb2wtNXBvaW50cy1wYXR0ZXJucyIsMjg1OToidmlkZW8tanMtc3R5bGVzIiwzMDM5OiJuZXctY29uZmlybS1pbnB1dHMtZGlhbG9nIiwzNTI0OiJsaW5lLXRvb2wtc2lnbnBvc3QiLDM4NTE6InVzZXItYmFuLWZsb3ciLDM5NjE6InByb2ZpbGUtYXBpIiw0ODU1OiJjaGFydC1uZXdzIiw0OTg3OiJwaW5lLXZpZXdlci1pbXBsIiw1MzMxOiJvcGVuLXNoYXJlLXBvcHVwLWltcGwiLDUzNDM6Im9wZW4tYmxvY2staW5mby1tZW51LWltcGwiLDU5MTc6ImxpbmUtdG9vbC10ZXh0LW5vdGUiLDU5Nzk6ImhpcDMtZGlzY2xhaW1lciIsNjQyNToidGhlbWVzIiw2NDg5OiJzaG93LXN0b2NrLWJvbmRzLWRpYWxvZyIsNjg1MjoibGluZS10b29sLWhvcml6b250YWwtbGluZSIsNzM5NzoicGVyaW9kLWZvcm1hdHRlciIsNzYzNzoibGluZS10b29sLXNpbmUtbGluZSIsNzcxODoicGluZS5tb25hcmNoLnY1Iiw4MjA4OiJzaG93LWV0ZnMtZGlhbG9nIiw4Mjk3OiJjdXJyZW5jeS1sYWJlbC1tZW51Iiw4MzM2OiJsaW5lLXRvb2wtZmxhdC1ib3R0b20iLDg2MDg6InN1cHBvcnQtZGlhbG9nLWltcGwiLDg3MDc6InNlcmllcy1jaGFydC1iYXNlIiw5MDc1OiJsaW5lLXRvb2wtYXJyb3ctbWFya2VyIiw5MTA3OiJwdWJsaWNhdGlvbi12aWV3LXBvcHVwLXJlbmRlciIsOTU5OToiY29udGFjdC1hZHZhbmNlZC1jaGFydHMtZGlhbG9nIiwxMDMyNToiZm9ybSIsMTA1MDU6ImxpbmUtdG9vbC1lbGxpcHNlIiwxMDY0MzoibGluZS10b29sLWNhbGxvdXQiLDEwNzA0OiJjcmVhdGUtZGlhbG9nIiwxMDc4ODoibGluZS10b29sLXRyZW5kLWJhc2VkLWZpYi1leHRlbnNpb24iLDExMzA0OiJzaG93LWVjb25vbXktaW5kaWNhdG9yLWRpYWxvZyIsMTE0MzU6Im5vdGVzLWRpYWxvZyIsMTE5MTE6ImxpbmUtdG9vbC1mbGFnLW1hcmsiLDEyMDYwOiJzb3VyY2UtcHJvcGVydGllcy1lZGl0b3IiLDEyMTM2OiJpZGVhLXZpZXciLDEyMjI3OiJ2b2x1bWUtZm9vdHByaW50LXN0dWR5IiwxMjQ0ODoiZGVsYXktc3RhdHVzLXBhbmUtdmlldyIsMTNlMzoiZWRpdGNoYXRyb29tZGlhbG9nIiwxMzEyMzoiZWFybHktYmlyZC1iYW5uZXIiLDEzNjA5OiJnZXQtY2hhdGlkLWJ5LXVzZXIiLDEzNzE5OiJwaG9uZS1jaGFuZ2UtZmxvdyIsMTM3MzI6ImZ1bGxzY3JlZW4taW1hZ2UtZGlhbG9nLWltcGwiLDEzODM0OiJzaG93LXdhdGNobGlzdHMtZGlhbG9nIiwxMzk4MjoicGluZS1kaWFsb2ciLDEzOTkzOiJwdXNoc3RyZWFtLW11bHRpcGxleGVyIiwxNTE2MDoic2hvdy1hbmFseXNpcy1kaWFsb2ciLDE1MTczOiJmaXJlcy1hY3Rpb24tY3JlYXRvcnMiLDE1MTk2OiJzdnAtc3R1ZHkiLDE1NzM0OiJsaW5lLXRvb2wtcG9seS1saW5lIiwxNTc2NzoienhjdmJuQ29tbW9uUGFja2FnZSIsMTYxMjY6ImNhbnZhcy1yZW5kZXJpbmctY29udGV4dC1zYXZlLXJlc3RvcmUtbGVha3MtdXRpbHMiLDE2MjkyOiJtb25hY28uZWRpdG9yLmxvY2FsZS5kZSIsMTY2Nzg6InNjcmlwdC1hY2Nlc3MtcmVxdWlyZWQtZGlhbG9nIiwxNjgxMzoidHJhZGluZ3ZpZXctY29weXJpZ2h0LXdpdGgtYm9yZGVyLWRhdGEtaW1wbCIsMTY5NDk6InN0dWR5LXRlY2huaWNhbHMtc2VhcmNoLWRpYWxvZyIsMTcwMjg6ImRvY3VtZW50LWVhcm5pbmctcG9wdXAtY29udGVudCIsMTcyMjY6InNob3dNYXhGb2xsb3dpbmdzRXhjZWVkRGlhbG9nIiwxNzMzNjoiY29tcGFyZS1tb2RlbCIsMTc1MTU6ImxpbmV0b29scy1saW1pdC1leGNlZWRlZC1kaWFsb2ciLDE3NjMzOiJsaW5lLXRvb2xzLXNwbGl0LWFkanVzdGVyIiwxNzkwOToic2NyaXB0LWZvcm0iLDE4MzA0OiJsdC1pY29ucy1hdGxhcyIsMTgzMTE6InNjcmlwdC1wcmVmZXRjaGVyIiwxOTAxMjoibW9uYXJjaC5jb2xvcml6ZXIiLDE5MTQzOiJtb25hY28uZWRpdG9yLmxvY2FsZS56aC1oYW5zIiwxOTIxMzoicHVibGljYXRpb24tdmlldy1pZGVhIiwxOTMxMToidGFrZS1zY3JlZW5zaG90IiwxOTMxNDoib3Blbi1kZWZhdWx0LXNjcmlwdC1kaWFsb2ciLDE5NzIyOiJmbG9hdGluZy10b29sYmFycyIsMTk3Njk6InN1YnNjcmlwdGlvbi1oYXMtY2hhbmdlZC1kaWFsb2ciLDE5ODE2OiJ0b2FzdC1sYXllciIsMTk5Mzg6InN5bWJvbC1saXN0LXNlcnZpY2UiLDIwMjQ3OiJsaW5lLXRvb2wtdHdlZXQiLDIxMTA2OiJtaW5kLXBvcHVwLWVtcHR5LXN0YXRlIiwyMTI2MDoibnNkLXVucGFjay1pbXBsIiwyMTU5NjoibGluZS10b29sLWZpYi1zcGVlZC1yZXNpc3RhbmNlLWZhbiIsMjE3NjY6ImRyYXdpbmctaGludHMtcmVuZGVyZXIiLDIxOTc3OiJsaW5lLXRvb2wtdHJpYW5nbGUiLDIyMDIwOiJzaG93LXBvcnRmb2xpby1kaWFsb2ciLDIyMTYzOiJsaW5lLXRvb2wtdGVtcGxhdGVzLWxpc3QiLDIyMzQ3OiJhZGQtY29tcGFyZS1kaWFsb2ciLDIyNTMyOiJjaGFydC1zb3VyY2UtaWRzLWdldHRlciIsMjI1NDc6ImdvcHJvLWRpYWxvZyIsMjMxMTQ6ImxpbmUtdG9vbC1pY29uIiwyMzc2OToic3VwcG9ydC13aXphcmQtc2hvcnRjdXQtcGFnZSIsMjQwMTM6ImxpbmUtdG9vbC1wcmljZS1ub3RlIiwyNDA0NDoiY29va2llcy1ub3RpZmljYXRpb24iLDI0MTA4OiJvcGVuLXBpbmUtZWRpdG9yLXNvdXJjZS1jb2RlIiwyNDEzNzoibGluZS10b29sLWZpYi1yZXRyYWNlbWVudCIsMjQyNjk6Im1vbmFjby5sYW5ndWFnZS5jbGllbnQiLAoyNDk5MDoibW9uYWNvLmVkaXRvci5sb2NhbGUuamEiLDI1MjM3OiJuZXctZWRpdC1vYmplY3QtZGlhbG9nIiwyNTQ2Mzoic2hvdy13YXJuaW5nLWFsZXJ0cy1tYXgtdG90YWwtY291bnQtZXhjZWVkZWQiLDI1NTU3OiJzaG93LW92ZXJhbGwtd2F0Y2hsaXN0LWFsZXJ0cy1saW1pdC1wb3B1cCIsMjU2Mjg6InNuYWNrYmFyLW1hbmFnZXIiLDI1NjM0OiJsaW5lLXRvb2wtYXJyb3ctbWFyayIsMjU2NDg6ImxpbmUtdG9vbC1yaXNrLXJld2FyZCIsMjYwNjY6ImNvbnRhY3QtcHJpdmFjeS1wb2xpY2llcy1kaWFsb2ciLDI2MDcwOiJsaW5lLXRvb2wtZmliLXNwZWVkLXJlc2lzdGFuY2UtYXJjcyIsMjcwNTI6ImxpbmUtdG9vbC10cmVuZC1hbmdsZSIsMjcxMTg6InRvb2x0aXAtY2hhcnQtY2FyZCIsMjc4OTE6InNlbmQtbWVzc2FnZS1kaWFsb2ctaW1wbCIsMjg0OTg6InByaXZhY3ktcHJlZmVyZW5jZS1kaWFsb2ciLDI4NTA3OiJnZXQtZXJyb3ItY2FyZCIsMjg2NjA6ImZ1bGwtdG9vbHRpcHMtcG9wdXAiLDI4NzE1OiJtb25hY28uZWRpdG9yLmxvY2FsZS56aC1oYW50IiwyODcxODoiZ28tdG8tZGF0ZS1kaWFsb2ctaW1wbCIsMjkwNzQ6InN0dWR5LXppZy16YWciLDI5NzY1OiJpbmRpY2F0b3ItdGVtcGxhdGVzLWRpYWxvZyIsMjk3OTg6ImRvY3VtZW50LWNhcmQtcG9wdXAiLDMwMDM0OiJtb25hY28uZWRpdG9yLmxvY2FsZS5wdC1iciIsMzAzMDQ6ImNvbnRhY3QtZWR1Y2F0aW9uYWwtZGlhbG9nIiwzMDc3NDoibGluZS10b29sLXN0aWNrZXIiLDMwOTQ2OiJhbGVydHMtcmVzdC1hcGkiLDMxMTUyOiJtb25hY28ubGFuZ3VhZ2Uuc2VydmljZXMiLDMyMjczOiJzdHVkeS1waXZvdC1wb2ludHMtaGlnaC1sb3ciLDMyNjEzOiJjb250YWN0LWVudGVycHJpc2UtcGxhbnMtZGlhbG9nIiwzMzEyNDoibGluZS10b29sLXJlY3RhbmdsZSIsMzM0MTA6InBlcmZvcm1hbmNlLXRlc3QtbW9kZS0xIiwzNDE4OToiYnVnLWRpYWxvZy1jcmVhdGlvbi1oYW5kbGVyIiwzNDU1NToic2hvdy1jb250cmFjdHMtZGlhbG9nIiwzNDY0NzoibGluZS1yYW5nZS10b29scyIsMzQ2NTQ6ImxheW91dC1jaGFydC1zeW5jIiwzNDg3OToiaW50ZXJydXB0LWNvbmZpcm0tbW9kYWwiLDM0OTU0OiJzaG93LW9wdGlvbnMtZGlhbG9nIiwzNTM0NDoicHVibGljYXRpb24tY29tbWVudHMtY29udGFpbmVyIiwzNTQ4NToidHBvLXN0eWxlLXByb3BlcnR5LWRlZmluaXRpb25zIiwzNTUzNToidXNlci1wb3B1cCIsMzU1OTI6ImVycm9yLWxvdHRpZS1hbmltYXRpb24iLDM1NzkwOiJwb3BvdmVyLW1lbnUiLDM1OTIyOiJmYXZvcml0ZS1pbmRpY2F0b3JzIiwzNTk4MDoiY2xlYXItb2xkLXNldHRpbmdzIiwzNjM2NzoiYmFja3Rlc3Rpbmctc3RyYXRlZ3ktZmFjYWRlIiwzNjgwNDoiY2hhcnQtd2FybmluZy1oaW50IiwzNzIxMzoic2hvdy1ib25kLXlpZWxkLWN1cnZlLWRpYWxvZyIsMzc3NTY6ImV4Y2hhbmdlLWFncmVlbWVudC1kaWFsb2ciLDM3ODc3OiJpbnNlcnQtaW1hZ2UtZGlhbG9nIiwzODMzMzoiYm9vdHN0cmFwLW1vbmFjbyIsMzg0NDI6ImNoYXJ0LWFsZXJ0cy1mYWNhZGUiLDM4NDQ5OiJzaG93LXNlYXNvbmFscy1kaWFsb2ciLDM4Nzg3OiJwYWdlLXNuYXBzaG90IiwzOTIwMzoicGluZS1kaWFsb2ctb3Blbi1zdGF0ZSIsMzkyMzk6ImN1cnZlLWNoYXJ0LWNvbnRlbnQtdXRpbHMiLDM5MjUxOiJnZW5lcmF0ZS1hbGVydHMtZmlyZXMtY3N2LWZpbGUtaW1wbCIsMzk0NDI6ImNvbnZlcnQtbWVkaWF0b3Itc3RvcnkiLDM5ODQzOiJsaW5lLXRvb2wtdGFibGUiLDM5ODU5OiJmb290cHJpbnQtcGFuZS12aWV3Iiw0MDEwMToidHYtY29pbnMtZGlhbG9nIiw0MDI0MzoibGluZS10b29sLWFyYyIsNDAyNjY6InB1Ymxpc2gtdG9vbHMiLDQxMDYxOiJtb25hY28uZWRpdG9yLmxvY2FsZS5lcyIsNDEzMjg6InNlcmllcy1pY29ucy1tYXAiLDQxNTI0OiJoaXAzLWRpc2NsYWltZXItZGlhbG9nIiw0MTY3MjoibG9sbGlwb3AtdG9vbHRpcC1yZW5kZXJlciIsNDE4MTQ6InRvYXN0LWFkIiw0MjQwMjoidHJhY2stZXZlbnRzIiw0MjQ0MToic29sdXRpb24taWQtbWFwIiw0MjYyODoibGluZS10b29sLWFuY2hvcmVkLXZ3YXAiLDQyNzA2OiJzaW1wbGUtZGlhbG9nIiw0MjgzNjoid3JhcC1waW5lLXRhZ3MiLDQyOTM0OiJ3aWRnZXQtc2lkZXRvb2xiYXIiLDQzMTgwOiJjaGFydC1zY3JlZW5zaG90LWhpbnQiLDQzNDU4OiJhbGVydC11dGlscy1oYXMtdXNlci1hY2Nlc3MtdG8tZGF0YS1zb3VyY2UiLDQzNDk2OiJsaW5lLXRvb2wtcGF0aCIsNDM5MjY6IndpZGdldC10b3B0b29sYmFyIiw0NDE2MjoidGltZS1mcmFtZS12aWV3LXJlbmRlcmVyIiw0NDE2NToibGluZS10b29sLWNpcmNsZSIsNDQ0Njg6ImxpbmUtdG9vbC1yb3RhdGVkLXJlY3RhbmdsZSIsNDUzMjI6ImxpZ2h0d2VpZ2h0LWNoYXJ0LXByaWNlLXRpbWUtdG9vbHRpcCIsNDU5NDc6ImxpbmUtdG9vbC1nYW5uLXNxdWFyZSIsNDYxNjk6InVwZ3JhZGVEaWFsb2ciLDQ2MjUwOiJsaW5lLXRvb2wtcGFyYWxsZWwtY2hhbm5lbCIsNDYyNjA6InB1Ymxpc2hlZC1pZGVhLWJhbm5lciIsNDYzODM6ImNyZWF0ZS1lcnJvci1kaWFsb2ciLDQ2NjUwOiJ0YWJsZS12aWV3LWRpYWxvZyIsNDY3Mzk6ImxpbmUtdG9vbC1maWItd2VkZ2UiLDQ2NzcyOiJjaGFuZ2UtaW50ZXJ2YWwtZGlhbG9nIiw0NjgzMjoiYWdncmVnYXRlZC1iYXJzLWNoYXJ0Iiw0Njg4MjoidGFibGVjb250ZXh0LW1lbnUiLDQ3MzkwOiJsaW5lLXRvb2wtdGltZS1jeWNsZXMiLDQ3NTM4OiJzdHVkaWVzIiw0NzU1OToibWFuYWdlLWRyYXdpbmdzLWRpYWxvZyIsNDc1Nzc6InNob3ctbmV3cy1kaWFsb2ciLDQ3NjkyOiJsaW5lLXRvb2wtaW1hZ2UiLDQ3NzIzOiJjaGFydC1hY3Rpb25zLXByb3ZpZGVyIiw0Nzk2MToiZGVjbGFyYXRpb24iLDQ4MDAyOiJjb250YWN0LXdpZGdldHMtZGlhbG9nIiw0ODAyNzoidHJpYWwtY2FuY2VsZWQiLDQ4MTc4OiJzdXBwb3J0LXdpemFyZC13YXJuaW5ncyIsNDgyNTU6ImNoYXJ0LWZsb2F0aW5nLXRvb2x0aXAtYWN0aXZhdGlvbi1oaW50Iiw0ODQxMzoic3VwcG9ydC13aXphcmQtaGlnaC12b2x1bWUtaW5mbyIsCjQ4NTUyOiJ2aWRlby1iYW5uZXItZGlhbG9nIiw0OTY1MjoibW9uYWNvLm1vZGVsLnNlcnZpY2UiLDQ5ODM5OiJzb3VyY2UtdGFnLXBvcG92ZXIiLDQ5ODgzOiJicmFuZGluZy1zb3VyY2UiLDQ5OTc0OiJsaW5lLXRvb2wtYmFsbG9vbiIsNTAxODI6Imdsb2JhbC1ub3RpZmljYXRpb24iLDUwMjY5OiJjaGFydC10ZXh0LWVkaXRvci1yZW5kZXJlciIsNTAzMTc6ImxpbmUtdG9vbC1waXRjaGZvcmsiLDUwNjI1OiJnZW5lcmFsLWNoYXJ0LXByb3BlcnRpZXMtZGlhbG9nIiw1MDkyNzoibGluZS10b29sLWdob3N0LWZlZWQiLDUxMjYzOiJ2aWRlby5qcyIsNTE2ODY6ImN1c3RvbS1pbnRlcnZhbHMtYWRkLWRpYWxvZyIsNTIwODY6ImxpbmUtdG9vbC1nYW5uLWNvbXBsZXgiLDUyMDk0OiJzeW1ib2wtbGlzdC1jb250ZXh0LW1lbnUiLDUzNTQ3OiJwcm9tb3Rpb24tZGlhbG9nIiw1Mzc3MDoiZ2V0LW1lZGlhdG9yLWFwaSIsNTM4ODE6ImdvLXRvLXRyYWRpbmd2aWV3LXJlZmVycmFsLWRpYWxvZyIsNTQxNjA6InNob3ctcGluZS1kaWFsb2ciLDU0NjE1OiJyZWZlcnJhbC13ZWxjb21lIiw1NTM1NjoiZ2xvYmFsLW5vdGlmaWNhdGlvbi10b29scyIsNTUzODE6ImNoYXJ0LWJvdHRvbS10b29sYmFyIiw1NTk2MDoiY29udGFjdC1zZWN1cml0eS1yZXBvcnQtZGlhbG9nIiw1NjAwODoibmV3cy1kZXNjcmlwdGlvbi1kaWFsb2ciLDU2MzgyOiJ3aWRnZXRiYXIiLDU2NDA5OiJsaW5lLXRvb2wtZ2Fubi1mYW4iLDU2OTQ2OiJvcGVuLXJlcGxheS1wcm9wZXJ0aWVzLWRpYWxvZyIsNTcyMzQ6ImxpbmUtdG9vbC1maWItc3BpcmFsIiw1NzQ4NDoicHJvZHVjdHMtYnV0dG9uIiw1NzYzOToibWluaS1jaGFydC1zeW1ib2wtZGF0YSIsNTc2NzQ6ImFsZXJ0cy1jaGFydC1hY3Rpb24tY3JlYXRvcnMiLDU3NzE0OiJ1c2VyLXN0YXR1cy1kZWNsYXJhdGlvbiIsNTg0MTg6InNob3ctZG9jdW1lbnRzLWRpYWxvZyIsNTg2MTM6ImNoYW5nZS1wbGFuLWRpYWxvZy1pbXBsIiw1ODgxNzoidmFsaWRhdGUtaW50bC1hZGRyZXNzLWRpYWxvZyIsNTkzMjg6Imx0LXByb3BlcnR5LXBhZ2VzLXdpdGgtZGVmaW5pdGlvbnMiLDU5NTA3OiJwdWJsaWNhdGlvbi1hZHZlcnRpc2VtZW50Iiw1OTYzMDoiYXN5bmMtZ3ppcC53b3JrZXIiLDYwMzE3OiJiYWNrdGVzdGluZy1zdGF0aWMiLDYwNDkzOiJ3YXRjaGxpc3Qtd2lkZ2V0Iiw2MDU0ODoiZWRpdG9yLndvcmtlciIsNjA5Njk6ImVycm9yLXJlbmRlcmVyIiw2MTEyNjoiZ2V0LXNjYW4tZGF0YSIsNjE1MzM6InN0b3J5LWl0ZW0tdHJhbnNmb3JtIiw2MTg3NzoibGluZS10b29sLWJlemllci1xdWFkcm8iLDYyMDY4OiJmaW5hbmNpYWxzLXNvbHV0aW9uLWlkLW1hcCIsNjIyMzQ6Im5zZC1pbmZsYXRlLXBha28iLDYyMzYzOiJtb25hY28uZWRpdG9yLmxvY2FsZS50ciIsNjI1NTc6InN1cHBvcnQtd2l6YXJkLXdoYXRzLW5ldy1wYWdlIiw2MjgxMToid2FybmluZy1wb3B1cC1pbXBsIiw2MjkxNDoidm9sdW1lLWZvb3RwcmludC1zdHlsZS1wcm9wZXJ0eS1kZWZpbml0aW9ucyIsNjI5NDM6InJlYWN0LXBvcHBlciIsNjI5OTc6ImxvbGxpcG9wLWNoYXJ0LWV2ZW50cyIsNjMwODg6InBpbmUubW9uYXJjaC52MyIsNjMwOTQ6InN5bWJvbC1kZXRhaWxzIiw2MzE1OToic3RhY2tlZC1jb21wYXJlLXN5bWJvbHMtY2hhcnQiLDYzNTk1OiJ1c2VybmFtZS1oaW50cy1saXN0Iiw2MzYwNDoibGluZS10b29sLXBvc2l0aW9uIiw2Mzg3NToiY3JlYXRlLXB1Ymxpc2gtdW50cnVzdGVkLXN0cmF0ZWd5LWRpYWxvZyIsNjM4ODU6ImN1cnJlbmN5LWxhYmVsLW1lbnUtZXZlbnRzIiw2Mzk2ODoic3ltYm9sLWluZm8tZGlhbG9nLWltcGwiLDY0MTU4OiJsaW5lLXRvb2wtY3Jvc3MtbGluZSIsNjQxODU6Im1vbmFjby5lZGl0b3IubG9jYWxlLnBsIiw2NDU4ODoibGluZS10b29sLWZpYi10aW1lem9uZSIsNjQ2MzI6Im9mZmVyLWJ1dHRvbi1sb2dpbi1zdGF0ZS1jaGFuZ2UtaW1wbCIsNjQ2NDQ6InJlYWN0Iiw2NDg5MDoibGluZS10b29sLWJhcnMtcGF0dGVybiIsNjU1ODg6ImNoYXJ0LXdpZGdldC1ndWkiLDY1NjIzOiJwb3Atb3ZlciIsNjU2NDY6ImZvcmVjYXN0LXF1b3Rlcy1zbmFwc2hvdGVyIiw2NTkwOToicGVyc2lzdGVudC1sb2dnZXIiLDY1OTQ3OiJ2YWxpZGF0ZS1hZGRyZXNzLWRpYWxvZyIsNjYwNDA6ImxpbmUtdG9vbC1jb21tZW50Iiw2NjI4NDoibWFuYWdlLWFjY2Vzcy1kaWFsb2ctY29udGFpbmVyIiw2NjM5OToic25vd3Bsb3ctdHJhY2tlciIsNjY0NzI6InB1YmxpY2F0aW9uLXZpZXctcG9wdXAtbWFuYWdlciIsNjY2ODc6InJlY2FwdGNoYS1wb3B1cCIsNjY4NjY6InRwby1zdHVkeSIsNjc0ODQ6InNob3ctYWx0ZXJuYXRpdmUtZW1haWwtcG9wdXAiLDY3OTU4OiJwaW5lLWVkaXRvci1kaWFsb2ciLDY4MTU1OiJpbWFnZS1kaWFsb2ciLDY4MjAxOiJob3RsaXN0LXdpZGdldCIsNjgzODE6InN0dWR5LXByb3BlcnR5LXBhZ2VzLXdpdGgtZGVmaW5pdGlvbnMiLDY4NDgxOiJzeW1ib2wtc2VhcmNoLWRpYWxvZyIsNjg1MTk6InNob3ctZm9yd2FyZC1jdXJ2ZS1kaWFsb2ciLDY4OTgyOiJhbGVydHMtd2FybmluZy1kaWFsb2ciLDY5MjQxOiJtb25hY28uY29uZmlndXJhdGlvbi5zZXJ2aWNlIiw2OTQ4NjoiY2xlYXItY29udmVyc2F0aW9uLW1vZGFsIiw2OTg3NDoibG90dGllLndvcmtlciIsNjk4ODE6Indyb25nLWFjY291bnQtZGlhbG9nIiw3MDA1OToibGluZS10b29sLXZvbHVtZS1wcm9maWxlIiw3MDUzMjoiaW52b2tlLWFsZXJ0LWVkaXRvciIsNzA5MTc6ImVkaXRvci1iYXNlLWxheW91dCIsNzExODU6ImJhc2ljLXF1b3Rlcy1zbmFwc2hvdGVyIiw3MTE5MjoicXVvdGUtdGlja2VyIiw3MTMxOToiYWxlcnRzLWNvbGxlY3Rpb24iLDcxMzc1OiJwcmljZS1zY2FsZS1tb2RlLWJ1dHRvbnMtcmVuZGVyZXIiLDcxNTY1OiJwdWJsaWNhdGlvbi12aWV3LXNjcmlwdCIsNzE1OTY6ImxpbmUtdG9vbC1nYW5uLWZpeGVkIiw3MTYzMjoibGluZS10b29sLXRyaWFuZ2xlLXBhdHRlcm4iLDcxNjYyOiJsaW5lLXRvb2wtaG9yaXpvbnRhbC1yYXkiLDcxNzUzOiJjaGFydC1leHBvcnQtZGlhbG9nIiw3MjExMToicGluZS5tb25hcmNoLnY0IiwKNzIxODY6ImxpbmUtdG9vbC1wcmVkaWN0aW9uIiw3MjI2NDoiYWxlcnRzLWVycm9yLXByZXNlbnRlciIsNzMyMzQ6InN0dWR5LWlucHV0cy1wYW5lLXZpZXdzIiw3MzIzNjoicGxheWVyLWN1c3RvbWl6ZXIiLDczMzAwOiJjb250YWN0LWJyb2tlcmFnZS1pbnRlZ3JhdGlvbi1kaWFsb2ciLDczMzk3OiJsaW5lLXRvb2wtcHJpY2UtbGFiZWwiLDczNDgwOiJmaXJlcy1hY3Rpb25zIiw3MzY0NDoiaWdub3JlLXVzZXJzLWRpYWxvZy1saXN0Iiw3MzY3ODoiZGV0YWlscy1tZXRyaWNzLWFjdGlvbiIsNzQyMTg6ImFsZXJ0LWxhYmVsLWNvbnRleHQtbWVudS1hY3Rpb25zIiw3NDM0MToidGVjaG5pY2Fscy1kaWFsb2ctY29udHJvbGxlciIsNzQzNjQ6ImNvbnRleHQtbWVudS1yZW5kZXJlciIsNzQ0MDk6ImxpbmUtdG9vbC10cmVuZC1saW5lIiw3NDUyMzoic2hvdy1mb3JlY2FzdC1kaWFsb2ciLDc0NTcwOiJsaW5lLXRvb2wtZWxsaW90dCIsNzQ4Nzg6ImxpbmUtdG9vbC1maWItY2hhbm5lbCIsNzQ5NjI6InNob3ctdGVjaG5pY2Fscy1kaWFsb2ciLDc1NDM5OiJnZW5lcmFsLXByb3BlcnR5LXBhZ2UiLDc2Mjc0OiJzaG93LWZpbmFuY2lhbHMtZGlhbG9nIiw3NjY2MzoibW9uYWNvLmtleWJpbmRpbmcuc2VydmljZSIsNzc0Nzk6ImxpbmUtdG9vbC1icnVzaCIsNzc1ODg6ImNoYXJ0LWV2ZW50LWhpbnQiLDc4NzE3OiJwaW5lLm1vbmFyY2gudjYiLDc4ODQxOiJtYXRjaGVyUHduZWRGYWN0b3J5Iiw3ODg3NzoicGF5bWVudC1vcmRlci1kaWFsb2ciLDc4OTA1OiJzZWFzb25hbHMtY2hhcnQiLDc5MTM0OiJsaW5lLXRvb2wtcHJvamVjdGlvbiIsNzk0NzY6ImFsZXJ0cy10cmFja2VycyIsNzk2MTU6InZlcnNpb24taGlzdG9yeS1kaWFsb2ciLDc5NjcxOiJzaG93LXRoZW1lLXNhdmUtZGlhbG9nIiw3OTkwMjoibHQtc3RpY2tlcnMtYXRsYXMiLDgwNzYyOiJjaGFydC1mbG9hdGluZy10b29sdGlwIiw4MDkxMjoiZGV0YWlscy1kaWFsb2ctcmVuZGVyZXIiLDgwOTM5OiJ0cmFuc2xhdGVkLXN5bWJvbC1kZXNjcmlwdGlvbiIsODEwNzY6Im1vZGVyYXRvci1hY3Rpb25zLWNvbnRhaW5lciIsODEwOTc6ImFsZXJ0LWxhYmVsLWFjdGlvbi1jcmVhdG9ycyIsODE0OTU6Imx0LXBhbmUtdmlld3MiLDgxNTU0OiJtb25hY28uZWRpdG9yLmxvY2FsZS5ydSIsODE2MDU6ImFkdmFuY2VkLWNoYXJ0LWxvbGxpcG9wcyIsODE3NTg6ImxpbmUtdG9vbC1jeWNsaWMtbGluZXMiLDgzMTE5OiJsaW5lLXRvb2wtaGVhZC1hbmQtc2hvdWxkZXJzIiw4MzE3OToiY2hhdC1tZXNzYWdlIiw4MzQwODoib24tcHJpdmF0ZS1tZXNzYWdlLWJ1dHRvbi1hY3Rpb24iLDg0MDcwOiJzaG93LWVycm9yLWRpYWxvZyIsODQyMDY6InRpbWVyLndvcmtlciIsODQ0MzY6ImxpbmUtdG9vbC1pZGVhIiw4NDY5MjoibHNwLndvcmtlciIsODQ4Mjc6InB1Ymxpc2hlZC1jaGFydHMtdGltZWxpbmUtdG9vbHRpcCIsODQ5NTI6Im9iamVjdC10cmVlLWRpYWxvZyIsODUwNTc6ImFsZXJ0cy1zZXNzaW9uIiw4NTIyNzoib3BlbmVkLXNjcmlwdHMiLDg1NDgwOiJhbGVydHMtYWN0aW9ucyIsODU2NTI6ImhhbW1lcmpzIiw4NTk3NDoic2lnbmluLWRpYWxvZyIsODYwMDE6InBheXdhbGwtbWFuYWdlciIsODYyMzc6ImxpbmUtdG9vbC1hYmNkIiw4NjQxMzoicHVibGljYXRpb24tdmlldy12aWRlbyIsODY3NDA6InBlcmZvcm1hbmNlLXRlc3QtbW9kZSIsODY5MTQ6InNwaW5uZXIiLDg3MTk2OiJsaWdodHdlaWdodC1taW5pY2hhcnQtc3R1ZHktZGF0YS1zb3VyY2UiLDg3NTA5OiJtZXNzYWdlLWRpYWxvZyIsODc2MDc6ImxpbmUtdG9vbC1kaXNqb2ludC1jaGFubmVsIiw4Nzg1MToic3ZwLXN0eWxlLXByb3BlcnR5LWRlZmluaXRpb25zIiw4ODExNjoiaW52aXRlLW9ubHktZGlhbG9nIiw4ODM1ODoic2VyaWVzLXBhbmUtdmlld3MiLDg4NDgzOiJsaW5lLXRvb2wtb3JkZXIiLDg4NTkwOiJvcGVuLXByaWNpbmciLDg4NjQwOiJzdXBwb3J0LXdpemFyZC1tYWluLXByb2JsZW0iLDg4Njk3OiJsaW5lLXRvb2wtZW1vamkiLDg5NDY3OiJjb21wYXJlLXN5bWJvbHMtY2hhcnQiLDg5OTYzOiJtaW5kLXBvcHVwLXJlbmRlciIsOTA0MTU6InN5bXBob255LWNvbW11bmljYXRpb24iLDkwNDcwOiJsaW5lLXRvb2wtdHJlbmQtYmFzZWQtZmliLXRpbWUiLDkwNTU4OiJsaXF1aWRhdGlvbi12b2x1bWUtc3RyZWFtIiw5MDgxMDoiYWRkLW1pbmktY2hhcnQtY29weXJpZ2h0LWltcGwiLDkwODY0OiJ1c2UtdXNlci10aGVtZSIsOTA4ODA6InJlbmRlci11bnN1YnNjcmliZS1kaWFsb2ciLDkxMjkyOiJwYXl3YWxsLW9wZW4iLDkxNjY4OiJzdHVkeS1wYW5lLXZpZXdzIiw5MTgzMzoiZW5kLW9mLXNlcmllcy1iYW5uZXIiLDkyMjI5OiJhbGVydHMtYWN0aW9uLWNyZWF0b3JzIiw5Mjc0Njoib3Blbi1zY3JpcHQtZGlhbG9nIiw5Mjc4NjoicmVhZG9ubHktbGlzdC1ub3RpZmljYXRpb24iLDkyODE3OiJtb25hY28uZWRpdG9yLmxvY2FsZS5mciIsOTI5MTY6Im9wZW4taW1hZ2UtZGlhbG9nIiw5Mjk2ODoiY2hhdGJvdCIsOTMwNjY6ImRpc2Nvbm5lY3QtbWVzc2FnZXMiLDkzMTU4OiJtb25hY28uZWRpdG9yLmxvY2FsZS5pdCIsOTMyMDY6InB1YmxpY2F0aW9uLXZpZXctZXJyb3IiLDkzMjQ4OiJhbGVydHMtcmVzcG9uc2UtbW9ja3MiLDkzMjc5OiJtaW5pLWNoYXJ0LWJhci1idWlsZGVyIiw5MzM0MDoiZGVsZXRlLWxvY2tlZC1saW5lLWNvbmZpcm0tZGlhbG9nLWNvbnRlbnQiLDkzNTI4OiJ0YWtlLWNoYXJ0LWltYWdlLWltcGwiLDkzNzY1OiJsaW5lLXRvb2wtdGhyZWUtZHJpdmVycyIsOTM4MDE6InRwby1wYW5lLXZpZXciLDk0MDg1OiJzaG93LWNvbW11bml0eS1kaWFsb2ciLDk0ODIyOiJzaG93LWRlcml2YXRpdmVzLWRpYWxvZyIsOTUwNjI6ImxvbGxpcG9wLWZ1dHVyZXMtY29udHJhY3QtZXhwaXJhdGlvbiIsOTUyMDc6InNub3dwbG93LXRyYWNrZXItYmFzZSIsOTU2MzQ6InBpbmUtcmVmZXJlbmNlLWRpYWxvZyIsOTU3NTY6InR2LWNvaW5zIiw5NTc2MDoibGF0ZXN0LXVwZGF0ZXMtdG9vbHRpcC1zdHlsZXMiLDk2MDc1OiJsb2xsaXBvcC1sYXRlc3QtdXBkYXRlcyIsCjk2MTExOiJkZWxheS1zdGF0dXMtdmlldy1tb2RlbCIsOTYzMzc6ImNvbnRhY3QtdHJhZGluZy1lZGl0aW9uLWRpYWxvZyIsOTY0Mjc6Im1vbmFjby5lZGl0b3IubG9jYWxlLmtvIiw5NjUxMzoibW9uYWNvLnZzY29kZS5sYW5ndWFnZS5jbGllbnQiLDk2NzI3OiJsYXp5LWpxdWVyeS11aSIsOTcyMDI6ImdvcHJvLW9yZGVyLWRpYWxvZyIsOTg1NTc6ImxpbmUtdG9vbC1ub3RlIiw5ODgzMDoidHdvLWZhY3Rvci1hcGkiLDk5ODA1OiJjb250YWN0LWFkdmVydGlzaW5nLWRpYWxvZyJ9W2VdfHxlKSsiLiIrezE1NToiYzhkODlmY2ZkZDdmNzFlMjE2ZDciLDMzODoiMTFjMTZhNzFkNGY1Mzk2OGQzNWIiLDU3NzoiOWEzOTYxYzE0ZjIyOTNmOTA5ZWMiLDk5MzoiYTc4YTRkY2E4ZTI0NDhmOGM2NzgiLDExMDA6IjMxN2VmZGMyOTg4ZjNhNGY2NzA5IiwxMTI4OiIzYTJmZDE3MzYzM2Y0NmY5YTBmYiIsMTIwMzoiOTYwMjRkNzJkYTQzNmUxZGIzMjciLDEzMzE6IjU0ZmQyYTU5NTJjODhmMzU1NWMxIiwxMzU4OiIzZGI3YjVmZWUwNTZlZjc1ZDdkZiIsMTQwOToiNTI4YTIyNDg2YmJjZmQ5ZmMzODEiLDE0Mzg6Ijk5ODQxNzkzMDg0YmNkNjdlNGMyIiwxNDY0OiI1Y2RhNGNkODg1ZDE5MzVjNWRlZiIsMTUyMToiNzI0YjUwYjBhMDg2YThiMWVmYzAiLDE1MzQ6Ijc0ZmZlMWU3MjVhNDY1ZDQzNDFlIiwxNjQ2OiI4YzgwMDA1YWYyMTU4YmQwODNkYyIsMTY2MDoiNTM4NGFmMmRmYTAzMDQ3ZTVkNTIiLDE2OTk6IjI1YjUzYTkyODVmMGExODhkNDA3IiwxODI2OiJhYjMwOGEyNjYwMWQ0ZmRmYzg5YiIsMjI4NDoiYzQ0YWE5MjY3YmU4ZGMxYzcxNzkiLDI1MDE6IjkzMmQ5NTRhMjY5M2Q4OGY2NWU2IiwyODUxOiJlNmJmMjAwMGQ0ZmI0YzgxMDAxMiIsMjg1OToiYjQwODQwYzU3ODA0YTRmZWY5Y2YiLDI5Nzc6IjQ4ODYzODRhYTZhOWYxZDE4Y2I0IiwzMDM5OiIyZmUyODdmYWJmZGU1ODgzYWU0NyIsMzM2NzoiYjdjMTI1MWZkMGI2OWMzMjE2NDIiLDM0MTc6IjVmZmNmN2Y2YTM2MTI1NDljYjVkIiwzNDY3OiI4OTU1MGMyYjkxZGRjNDgwMjkwOSIsMzUyNDoiYjJhYWFiOWVhMWFhMzIyMzA0MzUiLDM4MDY6ImE0ZTIyZjk0ZTRhNmY1ZDM5YWYwIiwzODUxOiJiYjNkNzkxZjgzZGUzNjZlZjZhMiIsMzk2MToiZjNiMGNlZjNhYzljZDhkMTEwMGQiLDQzMjM6ImY2MWNiNTIzYzllNWExZTBjNTNmIiw0NTUyOiJjOWRhYWZmZTMyOGQxNTRiYmJkNSIsNDg1NToiZThlYmE5YzZkNTMzM2YzNDVjOGUiLDQ4NzY6IjI3NGQ1NWEwMmQzMjQwODc2ODc2Iiw0OTg3OiIxYmY1YzI0NWZjYjkyMDEwODA4YiIsNTMzMToiN2U2ZmE2NGYxMGE0NDE4NGI3MGEiLDUzNDM6Ijc2YWI5NzQwYTFiMzRkZjQyODcwIiw1MzU1OiIyZWEzYzQ4YTMxOWVlMGZmNWI3OCIsNTgwODoiZjQ4MDBmYTkyNDZmNDA0NjIxZWUiLDU5MTc6ImMxMDAzZjM2ZjBiNDMwMTk0ZDNiIiw1OTc5OiI0ZjNlM2JmOWMzNDVjM2YzZTA3YSIsNjQyNToiYjcyZGI1MGM2OTUxZjZlM2U5OWQiLDY0ODk6IjdiZWQyMGU0NmNjZDdkYjlmZDM3Iiw2Nzc5OiI3Y2M3NGQ1MzNlOTFiZTJlZTdkOCIsNjg1MjoiMWQ1MDVjZTI2M2Y0ZWYxNGU1YWIiLDcyMTE6IjJmOTM0YjMwY2YzODY1MTcxNDQ2Iiw3Mjg1OiI4YmM4MjkyNjY1MjhmYTc0YWY1YyIsNzM5NzoiMDU5ZTYyMjkyNDAyMzI3MDE2YzQiLDc0OTE6Ijc4MTQ0MTczOGE2Y2QwNjE4ZmRjIiw3NTA0OiIxMjg4ZDFkMjhiMmY0N2Y3YWM0MyIsNzYwODoiOWRkMTQ2NDkyMmMxZTY1MTU2YTgiLDc2Mzc6IjNhMjY1OGEwYzIzM2ZiYjY0N2YxIiw3Njc2OiIwYWYxNjc3MzE5ZGI3MGE3MWNkZCIsNzcxODoiOWExZTRkODM4ZTIyMmEzYTI3M2UiLDgyMDg6ImE2MzYzYmNhYTNiMDIwNWRjYjRmIiw4Mjk3OiI4MGI0YzAwNzhmMjdlN2UzODYxOSIsODMzNjoiMDg4MDU0OWZiNGY5OWMxYWI0MWQiLDg0Njc6IjA4M2RkN2E1MTNkNzdkYjNkMzQ0Iiw4NjA4OiJkYTRjNjljMmFmODRmYjhmYzYyNiIsODcwNzoiMWFhYjlhNTFmNjVmOTQ5NTVjMDEiLDg5Mjc6ImNmYmZjMDM3OGY2ZGVjNjVhMTg0Iiw4OTQ2OiIwYmUyMGNmNWI1NjgzOGJkMWNkZCIsOTA3NToiYWEyZGNhYjQ4MzJkZDgyYjQ5YTIiLDkxMDc6ImY0MTQ5ZjMxOTYzZGNlZjNhNTg0Iiw5MjE0OiJlYWY4MWQ2MTRhMjAxODI0NGY1NyIsOTI3MDoiMzI5MTA2MzViYjM5YzY4NmY1YmUiLDk1OTk6ImU4NjZmYzcxYTRmNjlhZmVhMDliIiwxMDA0MToiYzMwZmRkZmVjNjk0ZGFhNjZlZjQiLDEwMjkwOiIxZjJmMTZkYWM4YTFiNDI5MTA5NCIsMTAzMjI6IjYxZTU3ZWZlMmZiNDA4OGZjYWU1IiwxMDMyNToiMDU0M2M4ODdlYTJiZTYzNzdkOGYiLDEwNTA1OiI5NjJmNmNlYjIyMGIzNjA4OTE3NiIsMTA2NDM6IjY2YTM3YTczMGQwMDdiMDNhYmYwIiwxMDcwNDoiN2ExYThhZDc0NzNkMWVkN2RlODYiLDEwNzg4OiJlYTYwMjk4MjhjOWMwODNkNDJlNyIsMTA5OTk6ImY3MjhjZTEyYmFiMGQxNWRlMWZhIiwxMTMwNDoiM2JkOTU0OGRmMWMxMjgxN2FmZWMiLDExNDM1OiIzNTM1OWU3NDU4YjgyMTI0NWY0NiIsMTE5MTE6IjNhMjM5ZTAyNGNlNjU0YjAxOTg5IiwxMjA2MDoiZGQxYTU2ZWMzMmIyMGYyOTg5YjciLDEyMTM2OiIxMmIwNTVkYTc0MTM1MzVjYjg5NCIsMTIyMjc6IjlkYzY3NjBjYjAzYmE0MWQ2OGYxIiwxMjQ0ODoiNGMxZTQzZGVhMDA4YjkzN2JmYzgiLDEyOTY1OiI0MDZlZTU5ZmEwMDlmMGU5YzI2YiIsMTNlMzoiOWNjMDgxNGQ2NWZjOWMxNDAyM2EiLDEzMDI1OiJhNjBjNDg5MWJmOTllYTQ3NjNjMiIsMTMxMjM6IjMzYzAxZjlkNTBiYTNjZmUxZGFhIiwxMzYwOToiNjQwYWUxNDQzNDkwYjZlZGM0YTUiLDEzNzE5OiIzMzIwOGFkMDk1Y2UyODI0MGE2OCIsMTM3MzI6IjVhZjFlZWE1ZTIwNDg4ZTI5MjA0IiwxMzgwNToiOWEyMDI5ZmIxYTM3N2Y4NmMyNGQiLDEzODM0OiIxMWZjNjU1YmQ5Y2VlNTM4ODQ4ZiIsMTM5ODI6IjAwMTQ0YzE1ODc1MDZjZWY2NWEzIiwxMzk5MzoiM2IxOTljNmFkOGJmNWMzY2FjNjciLDE0ODg5OiI2MjEwYjFjNTZkYzNiMjBjOGZmYiIsMTUxNjA6IjRiZDQzOGFlMjEyNTFlNWRjMDc2IiwxNTE3MzoiZmY5NzNmNDZmZWRjYzIwMWU5ZDAiLAoxNTE5NjoiYjdjZmUzNTk4OTg5ZDQ4ZmEzNzUiLDE1MzI3OiJlMGRhZjA2ZmJkMTc5NjE5ZjI1YyIsMTUzOTQ6ImZhY2Y3NTNlOGNkZmI5YjkwODMxIiwxNTQ1NzoiOGIwMDMxMGNiNTc4YzdhYmJkYmIiLDE1NzM0OiJhZGMyOTQ0N2UzYmVkZWZkYzAwZSIsMTU3Njc6Ijk4ZjhmZTk2YmI3OGZlNTA4ZTA3IiwxNjAzMToiOTk4Njg0NmIwNDNmYjExYjZmYTgiLDE2MDc2OiI2YTYyYTY0YTVhYmYxNTIyNDNhNCIsMTYxMjY6IjY2N2YxZjVhZmIxY2NhOWExNzVhIiwxNjI5MjoiMmE4ZWIxNzM5ZTU4ZGI1YzFlMDYiLDE2Njc4OiIwMzdjMTdmZDZlYWNhNTgxOGVjNiIsMTY4MTM6IjdlNDUyN2JjNTUyMTllYTNhZDc2IiwxNjk0OToiMThhMjU2ZWEzNjUxYzkyNGUzNDYiLDE3MDI4OiI0NjQ5NTg4YzAyYjBmZGE0MmY5ZiIsMTcyMjY6ImFiOTVmZDg4YjJkMTNlN2Y5ZDkwIiwxNzMzNjoiODY3ZTViOTE2NjBhYjQ0ZDExYjMiLDE3NTE1OiI0MTg2MmViMWY5YWJjZDc5ZGUxOCIsMTc2MzM6ImNkMzIwYTA4ZDdhZmI1YTdhZGE1IiwxNzc3NzoiMTQ2MTFhOGQzNDYwNGU5YWNiMDEiLDE3Nzk3OiJiMmYyOTQ1MDAwYWNhYWYyZDE2NSIsMTc5MDk6IjQ3NWVlYzBlNTA0ZjExZTVjMDc2IiwxNzk5MToiYTMwN2JmZTAwMjM0ZGM0MTliZmQiLDE4MzA0OiI0MTZmMGI3NGNiNGY1N2JjMzY2NiIsMTgzMTE6IjM2ZDE3MjNkZDVmMmNmOTY3MjIzIiwxODUxMjoiYTNiY2RjNzFjNjg2MDFiN2RiZmMiLDE5MDEyOiJiNzZjNTlmZGFjYmFiYWJhZjM0OCIsMTkxNDM6Ijk3NjQwYjk2YTg2NTMyNWVjODkwIiwxOTIxMzoiODFlMjk4Nzc5MDgyNDdjZTRjZGUiLDE5MjYxOiJiZDMzYmIxMDcwNDc4N2I3ZDVlZSIsMTkzMTE6IjYyOGM2ZDNmNzZkYWM4ODJlODJkIiwxOTMxNDoiMjNmNGQ0NDhhMGNmNjBhMjNjNzMiLDE5NDYzOiJjYjlhODI1NzdjZTgxYjQ2OTJkMyIsMTk3MjI6ImJlMjY5ZmQ0OWU5YzI1OGUyZDkyIiwxOTc2OToiYmVlM2NhZjYyMTY4YTk5YjFkZTYiLDE5Nzc2OiIzMjViMjUyMGFjOTBkNTdjNmNmZCIsMTk4MDA6Ijk4ODI0N2E0M2I5MzcwMjFhN2I4IiwxOTgxNjoiZmI3MzI4MmJlNmJhZWE0N2UyM2QiLDE5OTM4OiI1ZTU0MWY5MGJjZWIxYTdhNzU1YiIsMjAyNDc6Ijk1MDg1ZWEwOTJmM2EzYmJhNTA4IiwyMDMzMToiNzQwMzVmZTkyOTcxODFhMTI3ZGIiLDIxMTA2OiI1NGMyODc3ZDZhZGY0MjdkZmJjNyIsMjEyNjA6ImQwOTU1YWFlNzVmODdkM2JkNDIxIiwyMTQyNjoiMTgyNWU3YTg1MGIzZjk1MzllNTgiLDIxNTk2OiJmNDk5YmQwMTM2ZDg4NGVjOGYwMCIsMjE3NjY6IjMzNjQ5ZGY0ODlkMGI4YzMyNDc0IiwyMTk3NzoiOGY1NDE4MDMzYzliZWI5MGU4ZmMiLDIyMDIwOiJlYTZkMDM1ZjRmZGU3YWZhNWQ0ZiIsMjIxNjM6IjMxZDc3NmM3ZDdjYTY2YWI3Njg3IiwyMjI3MToiZWM1M2ExMDUxMjdlNGM0MmQ0YTEiLDIyMzQ3OiI2YTAwNzFhMzkwNzAxOWQ2ZjNmNSIsMjI1MzI6IjBjYTk2ZDBlNWUyNjM2NTA3NWFhIiwyMjU0NzoiMjBjNWM4YWQ3NTg3NzQxNWUxNDkiLDIzMTE0OiIyZWRjYjc5NTRlN2Q4MGE5ZWU2YiIsMjMzNjQ6IjgwMmNkYWRhNzQ4NDU3Y2JmZGQ5IiwyMzc0MzoiNDczMzEzN2FmMmYyMzJhNmEzNGEiLDIzNzY5OiI2NmNlZTY1YTJhODYwYTMwNmQ4OCIsMjQwMTM6IjVjODcyNDUzODI5YTY1MGFiYmZlIiwyNDA0NDoiMzk3NDVhYzQ3ODlkOThkOWY2MDAiLDI0MTA4OiI3NDliNDBkMGMwNjFhMmEwNDUzNiIsMjQxMzc6IjM5NjBiYWRhNGIzZTBiNDdjZTNmIiwyNDI2OToiYzBhNzBlMmU2YTRhZTkxODYzMDQiLDI0Njk4OiJiZDk1NzA3MzA5NWJhYjdkYTU5NiIsMjQ4Nzk6ImNlN2ZlYmRiNGIwZjMwN2UyMWU4IiwyNDk5MDoiNDg2NjlmNWZjODk3YTY3YTNlNzciLDI1MjM3OiJhNmQxMDY4ZWNiZmZjMjA1MDY2OCIsMjU0NjM6IjI1N2E0MGQ0YjRjMWFiYTEwYjdkIiwyNTQ4MjoiYzVlZmZkZDI3MTAxODExMTY1NTgiLDI1NTU3OiI0Yzc4MTkzN2MxMTE0YmRmOTNkYyIsMjU2Mjg6IjA3YjhjYWNkZTliNTBkZTkxOGQwIiwyNTYzNDoiZjNlYTQzMzA4NGI2ZDRlNmMxMTMiLDI1NjQ4OiIzYTUwYTFlZjk4YzJmNTliMzRmMyIsMjU4NTQ6ImE2N2M2ZDVjZjMwZWIyYzkxYzk5IiwyNjA2NjoiMGYxZjFjYjE5YWY5ZmYzYWY4Y2MiLDI2MDcwOiI2NmMzMzk1MzFiODZmOGNkMmNmNyIsMjYxMTg6IjNmNGIwZTVkZTA0NWQ2YmQ4Mjk1IiwyNjE0NToiNzIxMWZmNTgwOGYwYTE4YTFlOWQiLDI2NDczOiJlNjkyZWM0YTUzMjljY2U2MWFjMyIsMjY1MDE6IjVlYzk4NjI0ZWQ3OTE0NjFjZDhhIiwyNjcyMzoiOGE2ODA3MmM3N2VjMDAyNjc5MDUiLDI3MDUyOiJiMzc2OTg1MjEzZGI3NDU5Y2Y3OSIsMjcxMTg6IjhmOTM4NjhlZTZkZGJmNjllNWQ2IiwyNzg5MToiYzBkMjY2YjY2MzJjMGRiODU4NzgiLDI3OTEzOiIyOTE4NjEyMjcyMmNmMGNjYjlkYyIsMjgxNzY6IjIxMzQyODY1ZTc0ZmZiZWZmZjQ0IiwyODQ0MjoiMGIwZTc4YzA4NzVkYjg0NDA3ZDciLDI4NDk4OiJjM2U3ZjQzMDhlMzc4ODU5MDYxMiIsMjg1MDc6ImU5ZTVlZWQxMDhkYzliMGJiNGE3IiwyODY2MDoiNDkzNTFjMjNiNGQyMDkxNmJlOTkiLDI4NzE1OiJlZDI5NmNhNGNlMTA2OTYyN2Y4YiIsMjg3MTg6IjRiMTlmMWZhMGIwOGE5MjkzMGZjIiwyODg2NDoiZjI4ZThlOTQzOGIwMGY5ZDYxZmEiLDI5MDc0OiIxMWYxYTM4ZWJkNmQxNjEzZTQxYSIsMjk3NjU6ImNjNDMwZjQ4OTczZmY4ZDYyZWM2IiwyOTc5ODoiMGFmMGMzNDRmNzRlYjE3YjEwMDUiLDI5ODQ0OiJhOWNjN2U5NzA0ZjkzMWQ2MmJlMSIsMjk4OTY6ImM4MjZlMDIzNTQ3MzVkZTk0ZTk4IiwzMDAzNDoiMWU0NDMxYjg0MDI0ZjExYmRlY2UiLDMwMzA0OiI4OTZiZTI1YWE5MjFhODIxNGUyNCIsMzA0MjE6IjQxMmMzMTlkZGJhZGNjOTk1YzcxIiwzMDY5OToiMTM4NmRmYWE3OGU2ZTVmNmM4N2MiLDMwNzc0OiIzNjliM2I1NjM0NGIzMTQ3ZGRhMSIsMzA5NDY6IjdlYWExZDdmOThlZmZjNTBjZjQ4IiwzMTE1MjoiZmEyMjI3MWVmMzYzMTNkZGMyNjkiLDMyMjczOiIzMjVlMGM3ZTVkY2UwNzVhNjg4YSIsMzIzODc6IjQ3YWNlODNjNjFhODg0MzQxY2Q2IiwKMzI2MTM6IjcyMzBkNzNlZGE2NDk1ZjlhOTBkIiwzMjk3NToiOTgwNzhhNmRmYTFjYzliNjRjYjkiLDMzMTI0OiJhZTUwYTg5ZWI5ODU1MGJhOGE2NSIsMzM0MTA6ImNjZWVhZjc4NWNkOTdlMDgzN2U2IiwzNDA0OToiNTc2MjlkMjM3ZGZhOTAxZDEyMjMiLDM0MTAxOiIwZDA0Y2RiYTM5ZTMzMTNlNDdiMSIsMzQxODk6IjAxNmJjODQ5ZjQ2MGI2ZGNjZjQzIiwzNDU1NToiODI1OWYzYTM4OWFhYzhjNDk2NTEiLDM0NjQ1OiI4NDFlYTYxNjg4ZWViYmJkNjk2YSIsMzQ2NDc6ImE4YWEyZTYwMzdjMmJiMTBlZmUyIiwzNDY1NDoiYTQ3YjBiMjMyZWVjMDZiZTYyMTgiLDM0ODc5OiIxZTZjZjFmNWE5MzU4ODgxZGU2NyIsMzQ5Mjk6IjQwNDkxN2UyNTEyY2ZiOGQxMjdjIiwzNDk1NDoiZWY5ZTY3MGJkMmYxNGM1NTNiOTgiLDM1MjUyOiIzOGI1N2EyYjdhYTA1MWMxMDA5ZiIsMzUzNDQ6IjM5OWQ1ODMwMmUyNWFlMzlmZGRiIiwzNTM5MDoiMjQxZmIxNDFhY2Q2NTVhNWRkYjAiLDM1NDg1OiIwMTZkMGJhY2RhNTJhYTM4ZjBhNyIsMzU1MzU6ImRiNDlkMDNiYzdiMDRkMTk3Mjk0IiwzNTU5MjoiZTI3MTFmNjViNWU0ZTQyNmM5MGQiLDM1NzkwOiIxOTNjZDhhMjg0YjVmNWFkZjE1ZCIsMzU5MjI6ImNiZWU1ZDY2ZDIyMGYzZTg1ZjA1IiwzNTk2NDoiNjc0YmE3ZDI2M2JhOTA0YTcyZmUiLDM1OTgwOiJjMzQwNDJhNGExMGNiNWZiMmUzZCIsMzYzNjc6IjJjODc5NWQzY2FkMzZkYTkzZWUyIiwzNjY4NToiNjkxN2ZjZmY5NjIzNzA3MDY0OTUiLDM2ODA0OiI2ZTdlYjAzYmFmZjhhYzU5Y2YwZiIsMzY5Mzg6IjU4NDU2ZGEwY2RiNGJiOWJiNDg1IiwzNzEwNjoiOWZhYTBkNTlkM2NmMWJiOGY5NzgiLDM3MjEzOiJiYWI3YmMxN2YyZTQzNjM4ODMyYyIsMzcyNTk6ImMyNzQ5MDZkY2EwY2U3OTNiOWQwIiwzNzc1NjoiY2RiZGZhYjRiZjdiMTcxYjZkYTAiLDM3ODc3OiIxYTcxZGNjOTBmOWQwZjI3YTcxOCIsMzgwMTY6IjkwZmY3MTRlMjMzNGRhOGE0NWFhIiwzODA4NjoiOTkwYjAxM2FlMzI1YTliNTA5OWEiLDM4MzMzOiIwY2I1NDE5NzdiYzdlMjk2NTc4ZCIsMzgzOTg6IjAyNTUwYzFhNDhhYzkzNjBjYTlhIiwzODQ0MjoiYjA5ZDkxOTRmOGU0MGU5MDFmMGEiLDM4NDQ5OiJjYjdkMGU1YmVjYWQ1N2NkMzYzYSIsMzg3ODc6ImVlZmFiMWQzYWZiYjMzMjhmZWQ2IiwzODk3MzoiMzc2MmJjZjQ1ZWY5OGJjMTg1MDEiLDM5MTY2OiIyMTM0MzIwOWQ4NzUwZGEzNjkzYSIsMzkyMDM6ImJlMzhjNzdhOTE3ODE2NGI4M2RiIiwzOTIzOToiNTQ0OTViMTFiODEyZTRhZTBjZDEiLDM5MjUxOiIxZTg4OGQ4YTVmYzUxZDRhMjk0MiIsMzk0NDI6IjI3NDA5NjNiNzhlZTRhNGU5NjQwIiwzOTYwNjoiYzkzYzc2NWVmNWM1MWEzMGQwN2QiLDM5NjA5OiI4Y2UwZDc5M2IyYjYwYmU3YTRkNSIsMzk4NDM6IjFkNTZjYTNkYTA0ZjEzYmQwY2UwIiwzOTg1OToiNzgyMDViYTBhYWFiMWFjNTRkNDEiLDQwMTAxOiI0YzFiZGEyYWJiZmFiODQ3MzgyZCIsNDAxNTI6IjY4NjkwMDVlM2EzMzZhNDkyYTk4Iiw0MDI0MzoiOTYyM2Y0ZTRlNTVmYTYzNzViZDMiLDQwMjY2OiIyZmQwNjdjZmY3MDA1ZDExNjQ3NiIsNDA3NTQ6IjczNTY3ZjQ1Y2UzOGMxNWFjYWZkIiw0MTA2MToiNDIyNzJjNzIxODY3NTliZDVlY2EiLDQxMzI4OiJlN2MzNDgxZjNhMDY5ZmFhNmZkMiIsNDE1MjQ6IjUxZjkxMmVmMjA5NWQ3YTJjYTRmIiw0MTY3MjoiOWFlYmZhZDcyMzQ1Yzk1ODYwMjMiLDQxODE0OiJmZWQ1YjgyOGMwMzlmMzYzMjUxZiIsNDIxNzE6IjFjMDVkODE0N2MyMzBkODZiNGZhIiw0MjIxMjoiNDc1NGMyODA0YWI5YTk3OTc3NmIiLDQyMjg4OiI0N2VjYWVjYTEwMTJlZTNlMWQ4YyIsNDIzMjc6IjgxMzc4NmRhZmI5Y2M3YjA2NWNlIiw0MjQwMjoiMWZlN2M3ODE2NzZhNWZlMzllMTYiLDQyNDQxOiI5ZjY2NDM0ZTBkYTUwNWIzMjA5YSIsNDI0NTc6IjMyOGE4NTIzNzdkNjQ0NTcwYjBjIiw0MjYyODoiZGZjNTE2Y2JlYjUxZDVmYzQ2MWMiLDQyNzA2OiI2YjExNWU3Mzc3MjU0M2Y0YmMzMCIsNDI4MzY6Ijg1N2UwNTFmYmY4OGI4ZDcwODljIiw0MjkzNDoiOGQ2Y2EzMGM1N2JjNjYyNzI2NjYiLDQzMTgwOiI5N2YwNmFlYmUyMTA2Yzc0MDIzNCIsNDM0NTg6IjkzNGMxYzdkMjg2Mzg4MTBlNzIxIiw0MzQ5NjoiZjFkOWQ4NTFkOTE4ODJmNTg1MmMiLDQzODI3OiI2OThlZGJjMWQ5ZmM5ZjlmOThhOSIsNDM5MjY6ImQ3ZWQ3Y2RlNWViMzVmMGZlNGI4Iiw0NDE2MjoiMWU2MmJjNzNkZWQ4NTgxMmYzNDMiLDQ0MTY1OiJlNWZjNDJhMWE5MWZkYjY0Y2RjMSIsNDQ0Njg6IjEwZmUzNmExZjczYmJmN2EyMWJmIiw0NDc4MDoiNzlkMjA1MWQzYjg0Y2FlYWI0ZTYiLDQ1Mjc3OiJlYzZlMzYxOTNkMTM5YzVjNWY3YiIsNDUzMjI6Ijg4NTFhMmQyZTE1ZGI5MjFkNDhhIiw0NTk0NzoiYmQ4NWM2ZGRiMDZhMGFkNTAxN2QiLDQ2MTY5OiIxOTAzODc5YzIyMjFmY2FkY2JhOCIsNDYyMTc6IjNkODY0YmI0YTcwZDRkM2Q4NDBmIiw0NjI1MDoiYmRlZWIyMDAwYTdiZThjZmYzNmUiLDQ2MjYwOiI5YWEzM2I1MzEwNjcwMTVjNTM4NCIsNDYzODM6IjZkMGJlYTAxNGUyNDZhOWUwZjJkIiw0NjYwMDoiMjQzMmE4NTNlZjg1YjM1ZDRlMmYiLDQ2NjUwOiI3MTk2ZmFjNGY3NmRhZjVjMGYwMSIsNDY3Mzk6IjVlMDFhY2U0NThhZGMxNjMyNWViIiw0Njc3MjoiN2ExZTIwNWFkOWFkNTk1ZGMyOGMiLDQ2ODIzOiJhYmE1MWJkMTFkMjNkOWNmNjFlMiIsNDY4MzI6IjgyOGVkODY1NGU0OGRjY2ExYzkwIiw0Njg4MjoiMjJiYTExNTNlYTBmZmY3NTUyNzciLDQ3MzkwOiI0MWEwNmI5YTgzMjgwYTgyZTdkZCIsNDc1Mzg6ImM1MGYyOGViOWEzNDZlMDkzMjUyIiw0NzU1OToiZTQxMTYyNzM1YzU4NzdmNzYzZmUiLDQ3NTc3OiJhM2IyNjRmNWQxZDUwM2E1YmFiMyIsNDc2OTI6ImZiZTM4Yzc0N2M4ODk4Mjg3ZTgyIiw0NzcxMToiNzFkMTgwZDliMWI2ODFhYTQxZTgiLDQ3NzIzOiI4ZTcyYjRlZWQxMDY5NTM5YzcxMSIsNDc5NjE6IjdjNjk1YmVmZGQwMDc3MWZjNGVkIiw0ODAwMjoiYmE1MWRkODM2MjFiMGE0MDgzMDciLDQ4MDI3OiI2M2NlZGMzMzZmN2IxMDYzNzAwZCIsCjQ4MTc4OiI1MzlkNTQ2ZDNkZDQ5NjVjNzJkZCIsNDgyNTU6ImY5MjVlZWU4ZGFjMTVhMWQ2YWNhIiw0ODQxMzoiZjNmMWMxNzJlMTU0Mjk0ZDE3NjIiLDQ4NTUyOiI5MzRjZDE0N2JhMzJhNzVmYzQ3OSIsNDg2MjA6IjFkY2Q1MmE5NGQwNGE3ZTEwN2RjIiw0ODY1MjoiOTQ4NzE0OGNhOTczYThjZTRjYWEiLDQ4ODU0OiJiMDczZjRmNTljZTlkZGMwOWRmNCIsNDk2NTI6IjU5OTg4NTU3YjAzYjNjYmVjNGIzIiw0OTgzOToiMjZmZmRlNjk3NTAyNTJhNGQyMmYiLDQ5ODgzOiI4M2I3ZGJjZjMyYzRjY2I0NjZiYyIsNDk5NzQ6ImYwZGJkOGIxYWRiY2ZlZGYxM2Q0Iiw1MDA0OToiNGNjOTBmNWQ3MjY4N2MxZjkyNDgiLDUwMDc3OiIxNjA3YjBiNGM3MzUzOTJjYjc4NyIsNTAxODI6ImE3YTlkNDExYWUyNzNmMzA1MTMyIiw1MDI2OToiZGU3OWZhOTU5M2I1ZWJmNjg2YWIiLDUwMzE3OiIxOWQ1YzcyZDU3NDBkODFhNjg0OSIsNTA2MjU6IjAzZDc3NjI1MGM0ZmZkNGRhMTNjIiw1MDkyNzoiNWY0ZDI1ZDEwZmI2ZjcxNTY3ZTUiLDUxMjYzOiIwY2JiMzBkMTk3NmU4ZmU3MTZiMiIsNTE2ODY6ImE1NWM4ODM1MGU4NTQ3ZTFhNDQyIiw1MjA4NjoiOTNkNTQ5MTgzNmMwODcyY2MwOWEiLDUyMDk0OiIyYWViOGQyZjI3NzgwZmQxMjBjYiIsNTI1MDA6IjAwNTlkOGUwZDFiYmRkMGY5NDhjIiw1MjUwOToiNDA2NTk0NzBlNTFiMDY1ZDUxMzkiLDUyODExOiIyODcwMGQ0MWY0Njg3YmU4MTU5NyIsNTI4NDM6ImEyOTk1ODU2MGVhYjYyY2Q5ZjA3Iiw1MzI5NzoiYTZmNjU0N2NkYWQ4ZDM3OTcxZmMiLDUzNTQ3OiI2MDg3NmQ2ZGQyZWY5Y2IzOWIzYSIsNTM2NTM6IjAzMGFkNTQ5OTcwMTUzNDMwZjkwIiw1Mzc3MDoiYmNjZGYyODhjYTFmMjA1NGUxNDUiLDUzODgxOiIzYmNjMmU0ZmJhM2RiZWVjNjkxMCIsNTQxNjA6IjM4ZGFjYjFlZDNiZTBiMGYwMThhIiw1NDYxNToiYTQ2ZDM5M2NlY2Q1MGMwMjZmOTkiLDU1MjI5OiIyNTcyMTg4MTlmYWE2NjM5YTM4OSIsNTUyNTM6ImEyYWVmZjhhYTliNTk2MzM0YjJmIiw1NTM1NjoiNjU4NTkxOWQ4ZTlkOWU5Yzc4NWMiLDU1MzgxOiI4ZGMzODYwZjViZTVmZWQ5MDRmZCIsNTU5NjA6IjMwZTY0ZjM2MTZiZTIyNTYwY2MyIiw1NjAwODoiNjUxOWMxNDg1ZWNiOWE2ZTc5OWIiLDU2MjE3OiJkZGI4ZDBkZTRhNjkwZWJiMDBlZiIsNTYzODI6ImRiMThlN2M0YzkxZGFmNjkxZGUyIiw1NjQwOToiOGYyNzhjNTM1YzRkOGY5MGU3ZjUiLDU2OTQ2OiIwZmU3MmNhYTk3ZTBhYzJkZTgyMyIsNTcwODI6IjZmY2M2YTU1YjVmMjg0YTljMmMxIiw1NzA5MzoiMjY2MDBjOTNiNjE3MWQ5OWI3MDAiLDU3MjM0OiI1YWRlM2M3ZjQ5MTU1NmJlZmQzYiIsNTc0ODQ6ImE3MGUxZjkyZDQ0MTgzNjk5ODlmIiw1NzQ4NToiODRmNzhiMGYxMzU5YmRlNWNjZTEiLDU3NjM4OiJiZWI4OTg5M2QzNGM3YzM3OTgyNiIsNTc2Mzk6IjM0OWNiZmE3OGQ2MTNjZDRmYjM1Iiw1NzY3NDoiM2IzMzdlMjI3MTYzNjZmZGEyNjEiLDU3NzE0OiIzMjU0ZDkwMDY5MTNhMjY4ZjU2OCIsNTg0MTg6IjdiODdiMDBhNDNjZGI1NjU4MTQ0Iiw1ODYxMzoiMzI3N2RkYTBiMmVhODkyOTY2YmIiLDU4ODE3OiI3ZTY1NDM0MTFiNmMxMzVjN2E4ZiIsNTkzMjg6IjEyNTRkN2ZmN2RkNmI1MTQ0NzM4Iiw1OTUwNzoiN2ZmZWIwZjliMmQyYTU3ZDA4OWYiLDU5NjE5OiJlZTYxN2U5MWY1YmRhMTRjNmFkMiIsNTk2MzA6IjFkYjgxNWUzNWE1MDk5ZDg0ZTI3Iiw1OTY0OToiOTJkZjVjNjY2MDU3MDcxNmM4M2IiLDYwMDExOiIxZTNjMzU0ZDY3MjlhOTgyZWVjNyIsNjAzMTc6IjA3NjY4ZTFkZmRhMWM0YjgyZjgzIiw2MDQ1MzoiMmYzNzY4NGNhNjhkODIzYmQ1N2QiLDYwNDkzOiI1ZTg2NjUzZTI5NTAzNzQ5NjAwYiIsNjA1NDg6IjE0NGMzMGQzMWQyMjhkMTJiNTUxIiw2MDg2NDoiZDE4NjQ5NDJhYzE4MjVjMzA1NjUiLDYwOTY5OiJkYzJjZTcxN2QwZTUwMjhiMzVmYyIsNjExMjY6ImQyMzExMjNlMDBiZWMxMzMwY2RiIiw2MTE4MzoiN2NiZDE2ZmJjN2M1MTkxNTkzNGYiLDYxNDk1OiIzN2VlN2QxODJjZjg0Y2FhNzY4MSIsNjE1MzM6ImFlZjE3MGE2NTM0MWM2OWQ2NmM2Iiw2MTY0NzoiZTkzN2U1Nzc5YmExNWIwOGJiOTIiLDYxODc3OiJmZWRkYjM4MWU0YjNkNThjNTU1MiIsNjIwNjg6IjdmYjVjMzhjMWVjYzQxMjU1ZjJmIiw2MjIzNDoiMjIwYjAxYTQyMmQxZGRjOWE2ZTIiLDYyMzYzOiI5NmEzYjM5MWZhMzRhNmNjYzk3ZSIsNjI1NTc6ImNkMmFiMTNkYjk0YzRiODNjNjliIiw2MjgxMToiYjQ0ZTc1NDFmYjY5N2NiOGE3MTMiLDYyOTE0OiI3ZTU4Nzc5YTdhNDBjZjViYjUyYyIsNjI5NDM6IjU3ODAyMDQzNzRmNGQ5ZjMwODE3Iiw2Mjk5NzoiMTk3ODJhYjY1NjE0ZjZiOWIxYTciLDYzMDg4OiIxNGVkNmExZjNmODBkZmFkYTkxNSIsNjMwOTQ6ImQzNTFmYjg3NjM2MTIyYjAwNjIwIiw2MzE1OToiNmU3ZmYwYjZiYmJhNjYxZGUxM2YiLDYzMjkwOiIyYTMyY2I2YTliMmNmYmIyYTU0OCIsNjM0MDI6ImQzMGMxZTAwM2IwNTQ5MzBkMzJjIiw2MzU5NToiY2IxZjVkYjNiYzY3Mjc5MGIyOWEiLDYzNjA0OiJiYWM0NDhjYmE2NjZmMDNjOTM3OCIsNjM4NzU6IjRmMDVjMTNlNjQ1NDNlMzVkOGE1Iiw2Mzg4NToiNDRiY2FlOGY1NTYyMjUwOTJmMjYiLDYzOTY4OiI0NjNiZDJiZTM5ZjMzNWU4ODIxYiIsNjQwMjQ6IjUxOWMwYTNlZTdhZGFlMmJhYWExIiw2NDE1ODoiMjk0NjNmZmVmZTQ0ODU3YzBjNDAiLDY0MTg1OiI0ZDA2YTEyNDQ2MDlhY2Q0YzNkZCIsNjQ1ODg6IjY0YTVjYTM2ODc2MGU1ZWM1ZWY3Iiw2NDYzMjoiZDlhZjkyMzVjOWJjZmYzOWZjZmUiLDY0NjQ0OiI5MDk5MmM5ZDBkNWRjOTJjODliNyIsNjQ2NDg6IjM2MDkxNjE5Zjg3Yjk3OTI1NjYzIiw2NDcxNToiNWY0OTE0OWNjMzJlOWVmYTE5N2IiLDY0ODkwOiI1ZTljMjVkNDllNGI5NGFiNjc1ZCIsNjUxMDA6ImY0MjJlMWFkMDYwMTZkYjBkNDdhIiw2NTU4ODoiMTM0NjhlNjllMDRhODA1Zjk3Y2YiLDY1NjIzOiJmZjRmYjc0ODQyNWQyYzViOTZkOSIsNjU2NDY6IjFkZTdmYWJiMGQ0ZmUwOWU1ZTU3Iiw2NTkwOToiNWRmNDMyOTk1YTkxYzIzNzQ3N2IiLAo2NTk0NzoiMmVlMGE3MmMxZjI4YjQ5MjNiYjIiLDY2MDQwOiJiM2MzMzIxMjE2YWJhZDIyMThmZiIsNjYyMzU6IjIzYTgwYTJiZmZjY2Y1NDlkZmNkIiw2NjI4NDoiNDI1ODdiYTJmZDk5MGYxMTEzZTMiLDY2Mzk5OiIzZjY4NjU3ZDVmZmUyOWIyMWY2MiIsNjY0NzI6IjVlNjVkNGFlMDc2MjFhZmZlZjVlIiw2NjY4NzoiNjYxNzRhNmJhOWFiMjdhNGMxNWYiLDY2ODY2OiI1YjY0NjBiZGRhZmNkN2ZhNTk1NyIsNjY4ODg6IjA2MDFjYmE1ZGQ4MmY5OGFhZmQwIiw2NjkzMzoiYzFiMWVkN2Y5NzVhYmRlNTY1OWMiLDY2OTg4OiI4NDU4YjZhMGI2YjZkYWI1NGVhNCIsNjcxMjA6ImE1NDk5NTVlOGRkMTY0NmU3YTQ4Iiw2NzIwODoiMTY0YmM1YmQzMzViM2NlNzI5NDIiLDY3NDg0OiI4ZDhiYzUzNGMwZmQyNmU1OTlkYSIsNjc4MTI6Ijg4OThlODQzY2ZhOWZjMWMzZDViIiw2Nzg1MzoiODBmZWEyMzkzMWJmNDY5YjExODciLDY3OTMwOiJmMGQ3N2MxNzIxZGM4ZmEwZDMzMyIsNjc5NTg6ImNlNTVmMjhhZWE4NWFhNThmZmUyIiw2ODE1NToiY2ZhNDAzZmQwZGVhZWU3ZjZjMjMiLDY4MjAxOiJkM2I2NmUxMzJmNTRkNWZlZjUwZCIsNjgzMDQ6ImY2NjU5NjkyNGRmNmU4OTE2M2JlIiw2ODM4MToiZGQzODJjNTdmNDZlYmQ0ZTBiMjEiLDY4NDgxOiIyYmQ1YWQ0YTUwZjExYzU1MTgxZCIsNjg1MTk6IjczNDlmNDBkODcyNzlmZGUyYjgzIiw2ODcyNToiZGY0NmQxNDBmZmNjZTVjYmVkYmYiLDY4NzQxOiJjYjhjMjQ0YmZiNjE0MGNjMTNiZiIsNjg5ODI6IjY4MWIwODk2ZjcwYzQ0MjU1YmE2Iiw2OTAzMjoiNzkyMTgwZDUxZWFhOGQ5OGI5ZTIiLDY5MTIwOiIzMjJhOGEzMTAzZDZmYzBiMTlkZSIsNjkyNDE6IjI3OGJmOWQyNjIxNGEwODU1NDg2Iiw2OTQ4NjoiOGZjMWM3MDg5YjJhNjg0NmJjMDkiLDY5Njk3OiI5NGY3YTNjNjhlNWI3MWU5MGFkMCIsNjk4NzQ6IjBhMjFlODBiNDQxOTY5OWFlODMyIiw2OTg4MToiMDY3N2UxNWMyOGRhZjVkNWVhZmQiLDcwMDU5OiI0NGVlMmQ0NzBmYjdmNWZjMDkyYiIsNzA1MzI6IjY2YjYwYWZhYWZkOWQzYzQyNGQzIiw3MDU5MDoiMDE3ODNiZDliMjRiMTU1YzhlMWUiLDcwNjQ0OiI0NDg3NDNkZWYzMjVmZWI2MTk2NyIsNzA3MTI6IjkyODAyOGM0M2JhOWI3MDdlODExIiw3MDkxNzoiOTI1MDVjYTk4YzhjM2ZlMWM5M2YiLDcwOTU3OiI1ZGVjMmFiYTdmZTY1MDYzMTczZiIsNzExODU6ImI0ZDIxMjJmYmZjMzA3YTFmNzcyIiw3MTE5MjoiM2Y1YmZhNTYwZjNkODY3NmFhMGUiLDcxMzAwOiJiNjcwOTQzMzk0MDMzOWRjMWY2NiIsNzEzMTk6ImZlNjMxMWI4MjJlMDc4ZjNjYzJkIiw3MTM3NToiM2Y2MTY2MTc5Mzc4OTU1OWI2MDUiLDcxNTY1OiI3MzRiMjc2Nzk1NGZhMjM0NDZlYiIsNzE1OTY6IjQ5OTViODZjYzgxYzE5NTA0ZTcyIiw3MTYzMjoiMTcxYjE0ZWQ1ZTc5MGFmZmQ5MzUiLDcxNjYyOiJlOTQ2MWJmODZlZGViZDllNDQxYSIsNzE3NTM6IjNjNGZlNmJmOGE2ZjJjOTljZWIzIiw3MjExMToiNDRlNzk2NGFiMzgxYmNiNTRkYTUiLDcyMTQxOiJkODE3ZjRiZTNiMTE4NWQwZWY0ZSIsNzIxODY6ImE1NmYxOGQ3MjVlYWFlMWZkMDcxIiw3MjI2NDoiZjFhNzNhNTY4MDUwOWVkNDYyZTciLDcyNjc0OiJkY2MxNzUyNTRlMGM2NjYyZGQxNCIsNzMyMzQ6IjhlMzFmMDU1OGFjNTc3NGQwYTJlIiw3MzIzNjoiY2I4MGU5YjM5NDJjOWQxMjZlY2UiLDczMzAwOiI2Mzk1NDI2MDFmN2RmNzgzY2MwNyIsNzMzOTc6ImRhNmRiMDY1NGM3MzhkMThiMDlkIiw3MzQ4MDoiMGNjYTU3MTFhNjIwMTAyNDk3NTIiLDczNTM1OiI5YWY2NTBlMDY5ZDNhYWZkNGY0YyIsNzM1NzM6ImMyMGViZmRiZDkzNzY4OTZmMzhhIiw3MzY0NDoiMmRkNWVmMWNiMWQ1YWIzYTVlNzMiLDczNjc4OiJkYmYxYWM0NmQwYzAwNzljZmY0YiIsNzQyMTg6IjhiZTcwODcyYTYwNWM4ZTZjNzc1Iiw3NDM0MToiMzM0NTUxN2Y2Nzk5ZWU2NDdjMzEiLDc0MzY0OiJkNTFjZWI4ZDEwNmE0OTUxY2NmMyIsNzQ0MDk6ImFkYmQ1ZmEwNzQyOTIyMGYxODUwIiw3NDUyMzoiMTBhYjlhM2UzYzYwOTBmYWI2MmMiLDc0NTcwOiI0Y2M3Njk4YjIzNjdhNjlkMzY0ZCIsNzQ4Nzg6ImNkMjI0NTA0MWNhZGYxYzcwZTBmIiw3NDk2MjoiNDJjYTY2ZDMwM2RkYzcxOGNhN2IiLDc1NDM5OiJhMzJjZTk2Zjg4NTUzNjliMjY0MCIsNzU0ODk6ImQ5YzA5MWUxYWVjMjQzY2FiMWE3Iiw3NTkzMDoiMTQzYzNiMjQxNmE1MDk4OTM3YzkiLDc2MDMzOiI0NTdmYzZhOWRlYTkzYWJjNjRhNiIsNzYyNzQ6ImJkYjEzNzJhNWI2MzYyYjZiMjg4Iiw3NjY2MzoiM2JkZjExYjk4ZGNiM2U0NTQ2NDMiLDc2NzU1OiI5MjFkNjdhNWEwYTg0MTU3OWI5ZSIsNzcwODg6ImZkYjRkYzk1MjgzODgxYTA0MzNhIiw3NzQ3OToiYmFiMDhkZTkyMWRiNmI2YjFhMWUiLDc3NTc4OiJmNmRiNDYwZWQxZThjZTMxZWE4NiIsNzc1ODg6IjRiZWViMjA1OTNlYzM4M2E1N2YxIiw3ODEwOToiNGFlYmYzYjdhYmFmM2E0MzBlMzYiLDc4MzEyOiIwOTBkOGEwMDJiOTQzZDI4YTgyNiIsNzg3MTc6ImMzYzBhYTk1MGNjMmFiZDE0ZDdhIiw3ODg0MToiMmRmOWM2OGUyYjI3ZTg1OTIwYmIiLDc4ODc3OiJkMjAwM2JiOGIzMTNjOGJlODU4OSIsNzg5MDU6Ijk3MTlmZTI1NWQ4YzQzNDg0ZmY5Iiw3OTEzNDoiZDJjNDNhNjdiNzU2Y2U2ZjVmNWEiLDc5MzI2OiJkMGQ1ZTA1NGMyODRmNWRjMGViMCIsNzk0NzY6IjI0MmIxY2U1NWEyOTc5ZmJiYjZiIiw3OTYxNToiYmNhZDZjZmU3ODk3MTBiM2QxNTMiLDc5NjcxOiI3NGMyYzcwNDgwNmU1MjZkMjE4MiIsNzk5MDI6ImRiNzM2MjNjYmNjOTI0OGZjZDM1Iiw3OTk5NjoiMWE3MWFiNWQyNjNjZGJhYTk0OGIiLDgwMjA3OiIzZTVlN2Q2OGM4NzViMzY3Y2FkMCIsODA3NjI6IjY4NzUzMDViNWYzMmU4NTlhM2Q0Iiw4MDkxMjoiMWFiZjRkNmYzZWE5NmU0YjE4NTkiLDgwOTE1OiI2OTQwNGZkYThhYWZjMjc0MmM1NSIsODA5Mzk6ImNlYzVlMzJiNjBkYmM0Mzc5ZTc2Iiw4MTA3NjoiZjBhMDdhMWM5MzY3Yzg1YzZlMjciLDgxMDk3OiJlMjZiZjk1ZjlmMjhkYTI2ZThjOCIsODExODk6IjE3YWNjMmZkYmYyMTk5NWJlNDY2IiwKODE0OTU6IjBhZjUyNjk4ZGI5ZWQzZTg4YWRlIiw4MTU0NDoiYWM5YThiMTUxNTQzZWMzZTE0ZDYiLDgxNTU0OiIyYzMyZjEzN2U1ZThkMzU3MTE1YyIsODE2MDU6ImIxNGNiZjBjMzg0ODQ4ODhjM2M2Iiw4MTc1MDoiMDc4NmZlYTYwN2QwMDdlNzZmMGYiLDgxNzU4OiIyZWE2MTJhZjI4N2MyMzY0Mzk4ZSIsODE4Njg6Ijk2YmUxZDBhNzI4NjNkY2M0N2I5Iiw4MjIzNzoiZGVhODI4NTkxMWQwM2ZiMDZjNWIiLDgzMTE5OiI1ZjRmNzU3MGE0OWQyZGU2NTc4YSIsODMxNTQ6IjhjZjllYzRmMTljNWMwNzAxNjBjIiw4MzE3OToiODBkY2M4OGUzN2VlMjE2Y2E3ZjIiLDgzMjI1OiJhNzgwNTk0OWZiNWE2MzdhOGU0OSIsODM0MDg6IjUwNmZlNjVmMTcwOGU5ZDc5M2Y5Iiw4Mzc4MToiYTQzMjNiMGYwMTgxZTlkZGZhNjAiLDgzOTM1OiIyZWVkNDVhOWNjNjQ3NmFmZDAzNSIsODQwNzA6IjNmZmIwMDcwNjhlMGNjN2M1MDdjIiw4NDIwNjoiODQ2YjJkODY1ODAzOTZhYzBjNzkiLDg0MjY1OiI0YzZkOGY3NzJkNTM4ZjUyODU5OCIsODQzNzE6IjI1NjU0NTJjYWVjYWI5OTgyNTVjIiw4NDQzNjoiMjI0YTgyZTcyZWQ4ZTQ3ZDYxZTgiLDg0NjkyOiJkZmU2NTkwODUwZGQ0NTg3NWQ4ZSIsODQ4Mjc6IjJlNzMyM2JhNTk5NGZlN2EwMDMyIiw4NDk1MjoiYmU3ZTI0ZTkxMjQwYjIyYmYxYmUiLDg1MDU3OiI1NDI0MDFkNmVlYzY5ZmE1Mjc1MSIsODUxMDg6IjVhNjNlMjg0MzY3YzYyOTY2ZDliIiw4NTIyNzoiNWUwZGNkZDc5OTUyNzU5YTgzZGEiLDg1NDM0OiJiODViNzVkZjkxYjIyYmFjOGQzOSIsODU0ODA6ImY1MGViYjk5Zjk2NzVkY2RkNDFkIiw4NTY1MjoiOGYyZmY0M2I2OGJmZTZlYTEyZmQiLDg1OTc0OiJhZWU2MjQ0NDA2NTU4Y2MxNTdkMyIsODYwMDE6IjA4MzcwYWRkNWIwNzgxZjk1OTI4Iiw4NjIzNzoiNDJjNDk3ZDYwMGUzYTQ0NTQ0ODYiLDg2NDEzOiJiNDE2NjYzZWUzYmI0Y2RiZjQ4OSIsODY3NDA6IjQxYjQwYWNkY2Q5MWI0ZGMxZWZkIiw4Njg2MDoiNDc0ODc3YmUwYjIzNWRjOGNiNGMiLDg2OTE0OiJmNjMxNDcxZmFiMDM4MzcxYmFkMCIsODcxOTY6ImIwOGYyYWEyOGJmNDA2OWE4ZjRjIiw4NzUwOToiNTdmMTVhMWZjZDJmNWY2ZjJkY2EiLDg3NTYzOiI0YTM5NDgxNzdjNjQyMGIyOGQ0NSIsODc2MDc6Ijg4MTgzY2U2MTE2MWJmYTYyMDc0Iiw4Nzg1MToiMjVkNDRhMzY5MGNmZGVjOTE4YzIiLDg3ODU4OiI2OTEzN2U2MmJiZDVlMGE2M2FmNCIsODc5OTU6IjkxMWIyNjE4MTc3OGZlY2M0YjRlIiw4ODExNjoiOWNjZjU2ZjA1NzI1MmY1MmU2OTQiLDg4MTcyOiIzYTgxOTA0YWU5NDEyMTkwMmZmZSIsODgzNTg6IjdlOTQ4ODgwNjJjMmU3Njg0YzMxIiw4ODQ4MzoiNzFkOGZmMDVjZTMxMDViYjI4MjIiLDg4NTkwOiIyZjVlMjA0YzdlM2RkOTA2ODc4ZCIsODg2NDA6IjFiNTM5OTA0NDBiMjMxYjcwZjJlIiw4ODY5NzoiY2ZjYjVlNTU4Y2ZhMjMxOWE3NTAiLDg5NDY3OiJmMjUzYjUwNzMwNmU1ZDU1ZTliNyIsODk5NjM6ImIzN2RiNTk0MmE3YjA5NmM2ODdjIiw5MDQxNToiOGUyYWMxZWMyMmEwYTMzNjI0NTIiLDkwNDcwOiJmYzc5MDJiNTQ5ZTg5ZTM1YTU5ZCIsOTA1NTg6Ijg2MzRiYzdjMWVmMjFkNDY1MjM0Iiw5MDgxMDoiZDVjZGE2NGMzYmU5MmNjNTMwNWEiLDkwODY0OiJlMzE4ZDQxZTY0MTMxYTZkNzgyOSIsOTA4ODA6IjkyNTBjMGY0YzY2OTNmZjFjOTUwIiw5MTI5MjoiNjUxNmJhYmEzYTVkOThlNTBiYTkiLDkxNjY4OiI2NjNjNWQ5YjIxZGM1ZTYxODk5OCIsOTE4MzM6IjcyZjhkY2MzYjk4NmQ4OTM1NjM4Iiw5MTk0NDoiY2Q1MWI0OGZhNGQ3NDJhMTE3MjYiLDkyMjI5OiJkZmZkZWZhZTY3ZmI3YWQzM2MwYyIsOTI3NDY6IjQyOTY4NmYxZDRkY2FhMzE0MmFlIiw5Mjc4NjoiMTIwMzQ5NmI3NDM3ZDk2MDU1ZTQiLDkyODE3OiIxZTczZDFmZDk3NTU5YjEzNjI3NiIsOTI5MTY6IjIzOTk2Y2U4MDNkOWExM2U1MDg3Iiw5Mjk2ODoiNGM0NTM2ZDBjNzE2MjJlOTdhYTMiLDkzMDY2OiI1MDk3YjcwYTZjZTE5NjY5OGEyYyIsOTMxNTg6Ijk4ZGZiZWQ0MDMyNjQyYjlmOGFhIiw5MzIwNjoiYWIyNjVmOTEyYjg1YTM5Nzg4YjAiLDkzMjQ4OiJhZmRlNTQ4ZGZlMDkxMTliNjliOSIsOTMyNzc6IjMyZTI3NDExMGE2OGViOGE1NDNlIiw5MzI3OToiZjMzYjA1ZDNmZmMyNGE2MTUxMjYiLDkzMzQwOiJhNjNjN2JjNzE1NzY2NjAzZDgwMSIsOTM1Mjg6IjgwMGE1MDk1MWYxY2FhYmFmN2Q0Iiw5Mzc2NToiMzA4NmFhNDJlZjIzNDZkOGNjNDQiLDkzODAxOiI2ZDQ1ZWI4ZDViZWU0YWZlN2RiNyIsOTQwODU6IjUwNGY0NWUxZDU4MTM4MWQzZWMxIiw5NDE4MjoiMjBkY2M3OGMwZTg0ODFkNDM0NzAiLDk0NTYwOiIzMmUzMDRhYThlMzkzN2Q4MDQxNCIsOTQ4MjI6IjdmYWQyMTE4NzI1MDhmYWIxMjI1Iiw5NTA2MjoiNGFkZTExYjE5MDFlYWI1MDY5YmIiLDk1MjA3OiI0NjVmOGFmMWFhNzJhYzNhMWMzMiIsOTUyNzM6ImZkMTE4MDJlMzIxYjE3N2I0ZDc1Iiw5NTU1NDoiZjljZTMzMmUxOWZjY2NmMzc1NTYiLDk1NjM0OiJiM2Q5YjdlYjFlN2Q4ODk5M2Y0MSIsOTU3NTY6ImVhMjMzMTQzNTI4M2QyNTMwNGE1Iiw5NTc2MDoiMzJmZmRlNjYxOWQyOTFjMzA3YzEiLDk2MDc1OiJmMjk2NDEzODQ5M2RhMTkwNWEwMCIsOTYwNzg6IjNhOTMyMTJhOWM0YjY0MGVjYzVlIiw5NjExMToiNGZjYzU0NGUxNmY4NzRmNWEyMjkiLDk2MzM3OiI4NmMzY2M2MTJjOThmN2U3NzQ4ZCIsOTY0Mjc6IjhhNjk3NGY5YzU3NGMyNTU2NDkwIiw5NjUxMzoiNjljNjNlNWQ0Y2Q3MjQ1ODg4YTQiLDk2NzI3OiIxOWM4ODgxZDhmMDBiZjkxNjkwZSIsOTY5NzA6ImE0YzUxNjMxMmEwYzIxMDdiZWM3Iiw5NzIwMjoiMzIzYzExY2RhZmRjYTMyZDRhZDciLDk3MjcyOiIzYmZiZmM4ZGFhYmNhMDQwY2Y3MyIsOTc0OTM6IjQ5YjdmNTMzZGNjNTQ4MWQ4ZDBiIiw5NzU1ODoiOTRiYjBjMjY0M2Q3NGViNmY4YTkiLDk3NjQ3OiI2NGZhMDdlZTc0ZmQ2NjVkNmUxOSIsOTc4Nzk6IjA2MjkwZWZkOGFiMWM1OWM3ZGQ0Iiw5ODU1NzoiNzMxYzFhMmUzMDM5YWMzM2QxNWUiLDk4ODMwOiI0OTZiZWRiM2U5MDcwZWRiNTkyYiIsCjk5MzA5OiJjYTRhYzE5YjhhYjM3Njc5ZjI1MSIsOTk4MDU6Ijk5NTVhNzc0NWY4NDk3NDE3MTgyIiw5OTkzNjoiYmRmZGE5NjBkNDhkZTQ1YjI2ZGUifVtlXSsiLmpzIix0Lm1pbmlDc3NGPWU9Pjg0MzA2PT09ZT9lKyIuMzFkNmNmZTBkMTZhZTkzMWI3M2MuY3NzIjo1MjM5Nj09PWU/ZSsiLmVkNzZjYWYyZmZlMDE0NDYwYmE2LmNzcyI6MjAzNTQ9PT1lP2UrIi4yZGRmOTM0ZjhlZGMyODAyZDkwYS5jc3MiOjEzNDkyPT09ZT9lKyIuMmM3NzczMGQxMTI1YTQ5ODViZGMuY3NzIjozNzc0Nj09PWU/ZSsiLjM0NTIyN2JiMTZlMGQ4YmM5YmQ1LmNzcyI6MTIzODU9PT1lP2UrIi43ODU2MWViZGVmMDVjZTY0OGI1ZC5jc3MiOjgxMDcyPT09ZT9lKyIuMjkyN2ExNzcyMzFmZGQwZTI0YzEuY3NzIjo5NDIzMj09PWU/ZSsiLmFiNjczMWI2OThhOGMyODU0YTkwLmNzcyI6MTcwODc9PT1lP2UrIi5hNWVhZWIzMGY3ZDI2OWY5N2I0MS5jc3MiOjQ2OTA3PT09ZT9lKyIuYzVhZjhhYTdiNTA4MmIxODc1YTUuY3NzIjo5NDk0OD09PWU/ZSsiLjBmYzg4ZmE2M2MwNTRhOGQ3Njg0LmNzcyI6MjM2MjQ9PT1lP2UrIi5kMjM5MGQxN2IxNTA5YjAxODgyNi5jc3MiOjUxODQ9PT1lPyI1MTg0LjBmYjQ1NzRjYWNlYzE2ZjYzNjVkLmNzcyI6Njc3OTk9PT1lP2UrIi5lMjQ5NTY5MWNlYTE3YjNhODFjMi5jc3MiOjI0NTgxPT09ZT9lKyIuNDVkZjAyMTgxYzQ1MDk3MzJkMjAuY3NzIjo4NjQyMz09PWU/ZSsiLjc5NzgzYWE3MmI2ZTI5MjUyZDBjLmNzcyI6NDA4MzU9PT1lP2UrIi43NmExYzc5MjNhMmM5ODZiZTlhYy5jc3MiOjc4NjUyPT09ZT9lKyIuNGI0ZTA5N2EzMDNkMjFiYzk3ODEuY3NzIjozNTc5ND09PWU/ZSsiLjBhMjczYmFmYzVkZTUwYTBkMjFkLmNzcyI6ODkyMDQ9PT1lP2UrIi5mNjQxOGZiYTczZDM5N2IyOTY0MS5jc3MiOjU1MDExPT09ZT9lKyIuZjljMGEzYzA5ZjdiODc3OWFhMzcuY3NzIjoxNTYzND09PWU/ZSsiLjlmZjUwMGY0MGMzZWMyNDk2YTlkLmNzcyI6NzUzMDQ9PT1lP2UrIi4xNzQ0OTZkYmY2MmJjOTBkYjU5YS5jc3MiOjUyMDk1PT09ZT9lKyIuZTZlYjUzMGExM2IyZmViZDJjZDMuY3NzIjo0NDAzMT09PWU/ZSsiLjI2OTFmYzJjMzQ2ODI5M2JmZDE2LmNzcyI6OTUwND09PWU/Ijk1MDQuOTAzNzdmN2Q1OTQ2Y2YzMjU0ZjAuY3NzIjoxMTIxOD09PWU/ZSsiLjExZmU3ZThmZGEzMDE5YWFjMWFmLmNzcyI6NzI2NjY9PT1lP2UrIi4yMjI5MTczYmY0ZDY3NDQ4NDYzNy5jc3MiOjM2MjIyPT09ZT9lKyIuZTliZTlhNzMzZTExNDczMGE0ZWEuY3NzIjo4MzQ4OD09PWU/ZSsiLjJhMzUzNzdmZDU0ZjBhZjQwODc0LmNzcyI6MTE0NjE9PT1lP2UrIi5lMjdjYjRlY2YzMDQ5MmFjMTFmNi5jc3MiOjk2NTg3PT09ZT9lKyIuOTdmZGQ2NWYyMDEyMTA2ZmYxMWUuY3NzIjozNzUxMz09PWU/ZSsiLmRlMTU3NGIzMzg5ODAwYzkzZWJjLmNzcyI6OTM0MjE9PT1lP2UrIi45NTM4MWY4ZTAwNGQwZDJmYThjZi5jc3MiOjQ3NjMyPT09ZT9lKyIuMzNkMmEzNzQ1YWY0OTdlM2RhNWQuY3NzIjo3NjY1PT09ZT8iNzY2NS45ZjFmMzJiMTc3M2IwNTRmZGYwNy5jc3MiOjMyODE2PT09ZT9lKyIuMzU1ZDc1YjIxYWU0YjUzNGE4NDkuY3NzIjoyNzUxNz09PWU/ZSsiLjczNjEzNzRkZWUyYjUyZmQxZjhlLmNzcyI6OTgwODQ9PT1lP2UrIi43Njk0ODc2NDAxNGFlMWQ0Y2NmYi5jc3MiOjUwMjIxPT09ZT9lKyIuZjQ5ZGEyYTcyNzk3NzRhYTVmZTguY3NzIjozMzUxNT09PWU/ZSsiLjg1MDA0NDgxZTRhZTY2MjRhOTg1LmNzcyI6MTY3Nj09PWU/IjE2NzYuMzQ4ODRiZWI4ZTZkYzRjNmMwYjEuY3NzIjo4MzA0MT09PWU/ZSsiLjljNTQ1Zjk4NjgyMDRjNzcwMGYyLmNzcyI6NzE1Mjg9PT1lP2UrIi43YzZjMDhjOGVlZDAxZDg0MTA1Mi5jc3MiOjQzNzkyPT09ZT9lKyIuZTFiZDA2MTEyNDA0ZjA5MDFhNjYuY3NzIjo1MDAzNT09PWU/ZSsiLjAyMjdjMDllOGRlM2I0MDA4Mzk1LmNzcyI6OTE4NTU9PT1lP2UrIi4wMDk3NjRkYTYxYmQ4YzhjNDRiZS5jc3MiOjc0NDYxPT09ZT9lKyIuNmNjNTEyYzQyMTlhMTVlMzU3NzMuY3NzIjozODAwMj09PWU/ZSsiLjg2ZDI4MGZlZWFiYWI2OTgzNjBiLmNzcyI6NzAzNjQ9PT1lP2UrIi42NDRjYjkzNDQxNjkwYzgyOWFiOS5jc3MiOjY1Njc1PT09ZT9lKyIuYjIyZTg2Mzg0ZGE5NWE0Mjc0ODUuY3NzIjo0MzY0ND09PWU/ZSsiLjBmN2MxNDAwMTlhNjdmZDUwYmU2LmNzcyI6NTgwNTE9PT1lP2UrIi5jNTQ0MDY2NWMzYjMyZTZjNmRlOC5jc3MiOjQ1MzY4PT09ZT9lKyIuOWZmMDBhM2UzODIxMjAyOWJhNTUuY3NzIjoxODQ3Mj09PWU/ZSsiLmQ5NDE5YjZkY2I2NGM4ODU2NGMxLmNzcyI6MjU4MDk9PT1lP2UrIi44ZGY0ZWE3YjA5OWFkYzE1ZDA2Ni5jc3MiOjI2MTAwPT09ZT9lKyIuNzY3N2ZjN2ZmOGZjNGEwZDc1ZjEuY3NzIjozNjk4Nj09PWU/ZSsiLmNlNzdjYmQ2NmU2MDUyNTBkNGZmLmNzcyI6MjcwODU9PT1lP2UrIi5jYjIyMjI5NTgwOTkzZTg2MWMxZi5jc3MiOjE0Njk3PT09ZT9lKyIuZjFkYzE5MTc0NDhkMjE4OTE5OGYuY3NzIjo0MzMyNT09PWU/ZSsiLjI1NmZhNWE1MjEzYjljYjcwZjVjLmNzcyI6MjY1OTI9PT1lP2UrIi4xYzYxMjM5MDJiYzg4ZWJhOWQ1Ny5jc3MiOjM3ODY3PT09ZT9lKyIuZWM3MzFhZDEwMmRiNjc2MmU0MGMuY3NzIjo2MjYzMD09PWU/ZSsiLjUzNzMyZGFlYTgxNzg0NDczOTNmLmNzcyI6NDE2MDg9PT1lP2UrIi5kOTg5ZTQ5NDBiMGVhMTI4NmRiYy5jc3MiOjk0ODg9PT1lPyI5NDg4LjA5ZjI2OWY4YjI2YjJiMDBhOGI3LmNzcyI6ZSsiLiIrezIwMjoiMDcyZTk5MGM3NjY0MTA2OGQ4ZTMiLDY0NToiZmIzNTBkOWFjOWM3ODJlNWU0MzkiLDY0NjoiZWUyOGIyYjE5Y2M4ODMyNzY0YjUiLDY1NzoiMjlkZGQ0ZjA0ZTZlYzUwZGE3MGIiLDE1MDk6IjI3YzRmMDExYzI1OTdhZGQ3Mjc2IiwxNjc4OiI5ZTk5YzZjN2MxNDI0NGZhZTc0ZSIsMjAxMzoiOTZhMmNmY2UzMWFmOTE0MTk4N2EiLDIzMzE6ImE0MTczYWZhMTVjYTg1YWQyZjY1IiwyMzcyOiIwMzQ4ODE1ZjIwOTZmMzc1MTY3NSIsMjUxMToiZmRjZWJmMjIxNTMyNjY5NTRjZWQiLDMzMTA6IjNlMzNlZGU2NTI2ZjBiYTg1NTI0IiwKMzMyMzoiM2RhNzk4ZGEzNTgwNmY4Njc5YTAiLDM3MTk6IjJkYzAwOTRlNTIzODFmNzQ1OTYwIiwzOTE2OiI1NDgxMjYxYjk1MTI3MTc0NjBmZSIsNDA0MjoiZmE5NDk2ODBhMmFkZjllMWFiODQiLDQxMjc6ImZhMWMxM2Q5YzMwNmY2NzdiYzA3Iiw0NDc3OiI1MTJjMDQ3MDlhMzI1OWJkMTEyNCIsNDY2MDoiMGYzMzJjMGE0Yzc1MTcxMDZlMTkiLDQ5Mjk6IjZkZDYxZDViZjk2YWIyMzQzZDk4Iiw0OTY5OiJjM2FkYjFhMTA4YmYyYmFmOWNiMyIsNTE4NjoiODNjMTM2MTFlNjYyNzdlYTc1OTciLDUzMjI6ImVmY2U2Yzg4YjkxZmY0NTczZWVjIiw1NTM5OiI5N2I0NGNmYWNhMzJiNDcyNmU1MyIsNTYwMzoiYjAyZDYxYTE4YjA4ZGI1ZWQ2OGQiLDU2ODk6IjA3ZDBkODUyNGJhNGI5YWY0YWRiIiw1NzU2OiJlNTY3NDBmYTNhZTA1OTlkYmE0MCIsNjA3MDoiMmJlYzRiOTY5ZTE3YzgzOTVhZmMiLDYwODI6ImUwMmI4OGY1NGY2OGNiYTQyNDcxIiw2NTgzOiJiY2M1NzQzZTIzNmZmYzViN2NjZiIsNjYwNToiMWU4OTQyMzE5YjQ4NWFmYzFmNzUiLDY2NDc6ImFkNDU4MDU4ZGQ1Yzg4MjgzM2I2Iiw3MTExOiJmNDE4NTFkNTQ1YmFjZWFjNzVhNCIsNzE2MzoiZWM0ZTdiY2MwYzc5ZTJlNjA3NGQiLDczODc6IjNkN2Q4NjQwMjJjODRmOTI4YWRhIiw3NDQ1OiI3ZGE5NjZhNDQwMTZhZTdhMDJmOCIsNzQ1NjoiMDZlNzBmNzY1OTY2Y2VlZDIxODEiLDc4NjM6ImQ1ODBlMjI1YzMyMmNiYTFlNmVjIiw3ODk5OiI0N2FhZDA1ZWFhMjBiZjMwMTJmNyIsNzkyNzoiZjczYjI5NjY5ZWQzYzNlZGMzZGIiLDgyMTY6ImQ3ZjIxZmUyNDg5ZGRmY2JjNDE4Iiw4NTc5OiI2ZjY1MThiZTQyOTM4MjI3ODZlMCIsOWUzOiJmODZlMWZkMTA1ZDhjYzdhZWNmNCIsOTE0MDoiNTEyODM4ZDdlNmUxMDdmMDczOGQiLDk3NDQ6IjcwYjUxMjY0OTVmN2FkY2NhZjJmIiwxMDM2NjoiMDdlMjBlN2JiZWUyN2M5ZDVmYmMiLDEwMzg1OiI4NzQ0ZDRmODY3MGRhYzMxMGQxZiIsMTEwMDg6IjUyYWZhNWVlZDRhMWNmNjZiZWQ2IiwxMTI1NzoiZTc5ZjBmNzk5NTg4NDA0NzNkMzEiLDExNDg5OiI1NDdlMzAzZTI5MmY1NDgxNGRiNCIsMTE1Mzc6IjYxYzc5NzI4NjhmZGRkNTJiNmU0IiwxMTcyNToiMzFlODBiMjNkMTUxNjIyMzJjNDgiLDEyMDUxOiJiODRiZTc4MWJiOTBkNDU3ZjFkZiIsMTI0MTI6IjEwMzgxYjNkM2UzN2NiOTA4NTJjIiwxMjUyNzoiZGJjMjBjMmI4YmM5NTQzMmE4OWEiLDEyNTY1OiIxZDQwNTM2Nzk3YTI5NDE5YzY2ZSIsMTI2NjY6IjdiNTZiOTQ0NWZkNTgyN2MwYzA4IiwxMzAzOToiZDYzN2FkMTI0ZTI0NmFjNTYzYmYiLDEzNjc3OiJkNThlOGQ2M2Q4YTNmZDc3NGM0MyIsMTQxOTM6ImZmZTZmMWY3M2RjYjE4ZjI5YjU1IiwxNDYyNToiYWRhNjEyY2NlZmRlZjc3OWUyOTUiLDE0NjQwOiJmNGUxODExMzgxYTVlMTQ5NDQ4YyIsMTQ2NTc6IjQwZGFhYzRiMzhiYmQ5NTViNWYyIiwxNTM4MzoiYzNhZGM1Mzg5MDAwMmVmNWVjYTAiLDE1NTI2OiJjODI5YzUyZmVkMjU5ODU1YmI5NiIsMTYzOTk6IjZkYWE5MGUyOWEwZDE5OWI5ZDMyIiwxNjQyMToiMzFkNmNmZTBkMTZhZTkzMWI3M2MiLDE3NjkzOiJiNTI5MzM0YzhjNzYwZWUzNTFkYSIsMTc3NTE6ImM5MmI4MDVlMDg3MzQ3ZjdmMTVlIiwxNzg2MToiMTllMTAzM2U5MmY1NDRiZDY4NWUiLDE3ODY1OiJhOGRkMzkxNzRhYTdiN2EwZjU5NyIsMTgxNjI6ImQwNjE4NGJjOTcxZWNiZGRhM2IzIiwxODQwMDoiNGYzMWU3ZDk4MGIwNDhlOTU3MmMiLDE4NDQyOiJiMzM2Y2QxMTdiYzE3Y2ExN2MwMiIsMTg2NzQ6ImJkMjEzYmJiNjk5MGY3MjNkNGQzIiwxOTQ0NzoiZGQ3MDRjOTk1ZTY5NjNhNjRjYTQiLDE5NTEzOiI4NzQ5ZWRjZTY0YTdlMmRlMjU4MyIsMTk1OTU6ImQ5NjJhYjc1YmQzZTFiYWE1YWFlIiwxOTU5ODoiNzhlMmRiMjFiNjlmMTQ1M2Q3MGMiLDE5NjMxOiI2YjRmZjUwNThjZGI2Y2Q0YjE5OSIsMTk3ODc6ImJiYjY2ZmEwZmQyYmQwNGQwODc1IiwxOTgzMzoiYTliOGZmNDRhOGM2NzYzMzA3OWEiLDIwMDg1OiJiNjg4MGUwNzg1NDBhNDFlY2RjMyIsMjAxNTM6Ijk3Y2JiMDNlNTMzNTVjM2M4ODY5IiwyMDI3MToiMGMxNGYxMjZlMzhmNmI0NjA3N2UiLDIwMzcwOiJmOTI1NDIyYmE0ZWIwYjYxMmM3YiIsMjA1NjQ6IjEzZTZlZmIzOGVhYWIwYTUyNjgzIiwyMDU5MDoiMDE4YzdkNmIwMTRlMTJiNGQ1ZmYiLDIwOTcxOiJkNDZhMzc4MGI0MDA1ZDk0N2Q3NCIsMjA5ODY6IjQwZTM0ZTIxYjNkODE5ZGY0OWU1IiwyMTI0NToiNTg2ZmE4ZDA0YWJhMGQ2YWRiYzgiLDIxNTgxOiIyZDU0NWRlZDViZjgwMDU0MDEzZiIsMjIwNzA6IjdiZDFiMWE5MTVjMjRlMTIzZTJmIiwyMjE0NDoiZGEyN2UyOWZhNDUwYWExNzIxNGEiLDIyNDA1OiJmMzBiNWNjNTU0OTBjYTM2Mjk2NyIsMjI0NjQ6Ijc2ZjMyNmVkMWQwNTA4NmUzZDA1IiwyMzI1NDoiMzA0M2Y2ZmYxMzk2ZjUwNjVjMmEiLDIzMzY5OiIzMTc4MjkzYjY1NGFjMDFmNGZhOCIsMjM2Njk6ImE2MTk3MWQ4NDI1N2MzNDZiZDVmIiwyNDMxNjoiYzg1OWI2NDBmODU2MDNjMjZkNjkiLDI0NDA4OiI4NmU0NWVjZjA4ODRiZTZhNmVlMyIsMjQ2MDM6ImRjMzA1ZTU1ZTgxNDgxOTgyNThhIiwyNTE0MjoiZTExNTA4NjI2ZTM5MGRkMDQzNDUiLDI1NDg1OiJmOTZhOWZkYWFkMTRiMGQ3NWQzNCIsMjU1NTQ6Ijc1ZWMxOTk5ZjVhYzk2NmQ4ODYzIiwyNTU2MjoiODYxYzQ0YWMzNzRkYzI3OGQyZGQiLDI1NjQ3OiIzZDQzMDE5OGM0MjIyMzlhNWY5MSIsMjU2OTg6Ijc2MDVhNTgyM2NhNmQyNWZlZTQ2IiwyNTg5NToiZTlkOTg2MjNkYzk1OWJhNTY3NjQiLDI2OTg5OiI3NzMyNWIzM2FhZGE5NDdjZTc3OCIsMjcyMTc6IjkyNWYxMTkxYTAwMGIwMmMwYWQ1IiwyNzMzNzoiZWRjYTYxZWZjZGIyMzBiYTY2M2EiLDI3NDQ2OiI0YjYzYmI4ZTkxMDliMzNiZDlkYiIsMjc1MTM6Ijg1MGU5MjAwMTNhZGFiNTI1MjQ4IiwyNzU0OToiM2VhNjQ3NWM3OWFiOGUxMWU5MDUiLDI3NjY1OiIwMTNmZGI2ZjA5ZmUxMjE3MDViMiIsMjc2OTY6IjEwZGU2MWZkNmM0M2JmNjNjZmQwIiwyNzczNjoiMjkzZDk0NzdjMTk1NGYxOTc3YTciLDI4MDE3OiJmZTc5OGY0ZDdjY2YwMjRiYmIxNSIsCjI4OTM2OiI4YzJmMTU1NzViYjE3OWYzYjEyNyIsMjg5OTU6IjA0YjQzNDVhNTNmMjAyMDA2YjM4IiwyOTEzMzoiYmRmYTE2NzA5M2YwNWRmYjI0ZDAiLDI5Mjk2OiJiNDA4ZjI4MjJmYTViOTU2OWJhYyIsMjkzMTU6ImRhOTc2ZGY0NWZlYzAxMDczN2Q3IiwyOTMyNzoiNWE2MjNmZTQ5ODgyYjljZjUxZTciLDI5MzQ4OiI4M2I3YjRkY2E4MGRkOWViMDdiOCIsMjk0ODk6IjA5ZmJmYWZiOWZmNTllMDQyYTNiIiwyOTUzNjoiNzM2ZjQ3MWE4ZDY0YTgxMjJmZDgiLDI5NzE0OiIzNzg4YzRhMzNkOTQ1MzZlOGNlYSIsMjk5NDM6IjJmMzM3MzNkZDY0OGI4MmM0NmZiIiwyOTk5MzoiOWQ5MjU4MjgwMTAwZDAyODBjMjAiLDMwMDI5OiI2Yzk4MTUxNjIxZWFlODNhNTU5ZSIsMzAzNzM6ImRlMzJhM2NkY2FlMTJiMTVkNmRmIiwzMDc0NToiZTc4ZDgxYmYyNTBjZDZlNDMwNjgiLDMwNzg5OiIyOTdlMGZiNmM3Mjk3MWU5NGI0YSIsMzA5MjI6IjUzYmJjNDVlZmRjNDljMDY5YTA3IiwzMDk2MDoiNTQ3MTA5OGJkMjdmOTBmMzExNWQiLDMxMDAxOiJjNTIyMjk0ZDNhMjhkOWNhMTUxYyIsMzEyNjI6IjI2MGI2MTg3OGUwNTlhNDJlNzlhIiwzMTU1NzoiZTZhZWY1MWYxMDkzNDJiNTk5MWMiLDMyMTc2OiI3YzU3Yzk4OTMzYjhjZmQzZjhlNyIsMzI0Mjc6IjZkMTY2Zjg3YjczNjcyZTU2MWRhIiwzMjc0ODoiMmRkMThlMjA5YTc3MmVhNGYxZDciLDMyODU3OiJlNDk2OGNjOTA2YWM1NzY5OTA2YSIsMzMxMjA6IjNlNmQxYzMzZDZjNTI1YzA3NzFmIiwzMzIyMToiZjQyY2M1NWE5MGM5ODg0MTIxZTUiLDMzMzY4OiJmMTVkZmNiYzBmNzE5NmQ3ZDY3NiIsMzM1NTM6IjBkZjliMzUyY2JjNmZhMDNjY2E4IiwzNDc1ODoiODgwZDk3M2JmNmNiYmM0ODIxNzQiLDM1MDczOiJiODU2MzJlYWEyMmNmMTllN2NkMiIsMzUxOTg6IjIyYTU2NTVmNTNlMDkxYTJmYjczIiwzNTM0MjoiN2Q2MWE3ZWM3NjRiYTZiMmM2YmQiLDM1Mzk5OiI1ZTZkMTQ5MTllZTBjODZmNjliMCIsMzU2MzA6IjhiOWVlMjVjNWUyZDIzNGQ5OTUxIiwzNjE3MzoiMzBhYjA3N2ExMGYxYWJhNDdkMmEiLDM2MzU2OiI2OGU2NmJmNzRmZGIyNDNkNDMyYSIsMzY1MjE6IjhlYTE5ZDE4YzZmMGIyNmFlMjUwIiwzNjU0NToiZmM0ZWIzNzExMmUzNWUwOGQwMmMiLDM3NTY3OiJmNzQyMzY2YTUwMmExZWQ3MzYxZiIsMzc3Njc6IjQ0MDI5NjA2YzczYTY4M2U3YjBjIiwzODI2MjoiYjQwZTdlNzgwNjQxNjNjZGMwZDIiLDM4NDc5OiIyNmUyZDUzYzA0MTAwZWE0MDE2YyIsMzg3ODI6IjNiMjY2ZDZhODE1MzgwNmI3MzFlIiwzODg2ODoiNWVlNzQxZmQ2Mzg2NjZkNDQ1ZGMiLDM5Nzg2OiIyYjAwZGMyMWVmOTQ2MDBlMDk2OCIsNDAxNjg6IjgwY2QyMjQyOWIxNDVhOGNiODIyIiw0MDIyMDoiZTBiZTM3OTczNDVjNmUyNGNlY2EiLDQwODY3OiI0OTU2YzYxNWZkZWFkODFkY2QxMSIsNDA5MDI6IjU2NDViOGVmZGQyYmRkN2JjNTdmIiw0MDkxNDoiYThkZDY5NmJlN2RkZTZjZTZkZGIiLDQxNTA2OiI0ZTQ4MWNmZTNkN2RjYzkxMTNkZiIsNDE1ODg6ImE0ZDFmYmJmYmMxM2JhZTc2MGQwIiw0MTgxMToiZTIxMjY3YjUxZjE0YWFhYjU0YzciLDQxOTgwOiI3NWJmNmUyZjNjMTI2NzliMDQ4YSIsNDIwMzM6IjkyNGRhYjc4MWU0NDc3Zjk1MWJmIiw0MjMwMToiMjI1MmQxY2NjYjQwMzUxYmQ1ODEiLDQyNzIxOiIzZWFhZTU3MWU3NTg2Zjk2N2Y3YyIsNDM0MzM6IjdiNjRlOTE4MjAyNTZkZGJiOTVlIiw0MzQ0MToiYWM2MDM1MGM4NmM1NzgxMWYyMjMiLDQzNDg2OiI2ZWRhYjk0YjBmNTJiZTQ3OTQzYiIsNDM4MDg6IjVhZDM2NTFhMzg2MzBmNzc1NDQyIiw0Mzg0MToiMzg2MzgyODcwNTVmNjg1MzlhOTIiLDQzOTE5OiI1NzNhYTE3YmRiNzc1NmYwNWNhOSIsNDM5Mzk6ImJhYmI2YzEzYWQyYTIzYzBhZjczIiw0NDQ2MDoiMWE0YjM5NTZjNTk5Mzk1OWVjMDUiLDQ0OTQ2OiIxOTY4MGRkNGU1YzQzZDlmNzE2MiIsNDUyNDI6IjhmNmM5MTBlZjgzZGM5ZGJhMTkxIiw0NTMzMToiYjRkNmY1MjQ5Mjk5NmRkMjliYzYiLDQ1NDE4OiIwNmQ3MTg1ODI1NjE2MWQ1NGZlOCIsNDU3ODM6IjRlYzU3ZjUzM2M1YWM1MDE1ODk4Iiw0NTk0NToiNWM5ZWNjZDI4MWNhN2YyZDc5ZTAiLDQ2MDM0OiI3ZmU1ZDY1NTVkMzUyMzg4NzIxNCIsNDYwNTU6IjAyMzJmNWExOTRkMGU2NDZlMDg5Iiw0NjI0NToiYjFmMDRlMzFkOGU4NzQ4ZTkwMjAiLDQ2NTkxOiI4ZDAzMzM5NGI4M2I2MTZiZjA2NiIsNDY3NTY6ImJlYzU1ZmEwNTBhMTFkYjgwYjFlIiw0NzAyMToiZWQxMTM0OTdlZjMyYTY1MjZlNTAiLDQ3MDkyOiJjNTcyMzg5MzRhMmY3YTM2YTBjMCIsNDcyMDE6IjQyODBhYTBjM2NmMTJjYWM5ZDZkIiw0NzMxNjoiZDIxNzQ0ZmY2ODlhYTZkYTYxNmIiLDQ3NDU3OiJhNmMxMTZjZTUxMTY5MTk2NGRkNiIsNDc1NTE6IjhkMmNlNTI0YjM4ZTRhOTI1NDdmIiw0NzU3OToiZGMzODc5MTkxYzA0YjkzOGZkM2YiLDQ4MzEyOiJhZmRjYzM4MmE5MjhiYzAyZmU2NSIsNDg2ODI6IjZmZjIzZDVhYzFjYjcwZDAyMzlmIiw0ODg2NDoiYzdiMmFmOThkOTE0ZWJkODMyN2MiLDQ5MTQ5OiI2MTBkOThlYWQ1Y2IwNmFiMzhmYSIsNDkyOTc6ImNhNDAwZTVmMmRkMDY4ZDc4YmNjIiw0OTQ5MDoiZDM5OGFiNGEyZTRiMDRmOGZjODMiLDQ5NTM2OiJjYmEyMDdhNWJhY2Y3YTE1M2EzZiIsNDk1ODg6IjE1NDI2YjIyMjc5NTYxZDk4ODBiIiw0OTk5NzoiNjhiZDc1OWI0YWRkNjVjZjc2NjAiLDUwMzE2OiIzMWQ2Y2ZlMGQxNmFlOTMxYjczYyIsNTAzMjU6IjU3N2NkMTE0NjE2MmJjZjA1YzJiIiw1MDU4ODoiYTI3MTE4NjIwNmU1M2ZjOTg3NGIiLDUwNjIyOiI1ZjA1ZWY1MWFiMDIzOGRhYTM2YSIsNTA3NDM6ImMwMzFkNTc0OTZmZmY3YmU5NWUyIiw1MDgwMDoiODBmOTBlMDQ0OWVmMjBmMzg5ODYiLDUxMDE3OiI0M2ViYWViNGQ2ZDg5OTBkOGM3ZiIsNTEwMzA6ImI3ZjUzZWQ2MzViMDkyZmQxNjkxIiw1MTE4NDoiOTkyMzI0MGQyODA2ZjBlMjU4ZjAiLDUxMjEzOiI2ZGIxOGY1NDVlOGZjYTg1OTFkMyIsNTEyNTY6IjgwY2MwMDFlMjFhYzg0N2U2NDJkIiw1MTMwOToiNmYwMmVhYzE0YmYwMjJkYzJhNDciLAo1MTY4MjoiMTVkMDEzNDcyYjg1Y2Q5ODUxN2EiLDUxODUwOiIzMGFmM2EzZDFmYTU3MjUyZDczYSIsNTE4ODA6ImNmODA5NmFkOWNmNjY1ZThmM2JiIiw1MjA2NToiZGU5ZWRkYjMzOWFjNzdkMWRiZjgiLDUyMTc4OiI0ZDU2MmEyNWFkM2MxMzc5MjFlMSIsNTI2ODA6IjhlZmE2YjRkOTk4MTg2ZjM5Y2JhIiw1MjkyMDoiMzBiYTA1ZDZhNTM5M2UzMzE4MjciLDUyOTYxOiJjZjY1MzhjNDFmN2Q4ZmUxNjc0MSIsNTMyMjg6ImQ1N2IxY2M5NDdkNTFkNTRmNGMwIiw1MzMyOToiMDNhNmQzNDAzNWMxNzY4ZmI3ZDUiLDUzNTIxOiJkYzliYzcwYTZhODBmMmM5NGY1NSIsNTM3MTM6IjQ5ZDg4M2M3N2IzZDc0ZjQ3YzEyIiw1MzkyMzoiZmEzMmI0NjhiZjcyYmU5MGE3M2QiLDU0MDkzOiJkODBjMGZmYjIzNDU3ZmY4NWVmNCIsNTQzMTA6ImNkZDAyMmZkYWZlNDRmYzJjNTg5Iiw1NDMzOToiY2FlZWU1MGNkMGIxZDBhYjRlOGMiLDU1MjkwOiIxODZjZTMzOGQyZTI3OGVkZjFmNCIsNTUzMzY6ImZhYTc3MTY0YTU2MzZkODI2NDc1Iiw1NjEyMToiYmQ2NGJkNTI5MGUxNzhlNThlNmUiLDU2MjEzOiIwMGQyNWZlOGFkMTY5ZTMxOGIyZSIsNTYyNTI6IjJiODJmNTc1YmExY2ViNTRmYTI5Iiw1NzI1NDoiMWQ3ZTg5NzFkOTJlYmI5NTcxMjQiLDU3MzAwOiJjMWY1ZmM0ZTE1OTkwNjg1ZmI3MyIsNTc1MDQ6ImM3Zjc1ZjYwMzlmN2NhNDc4YjJlIiw1NzYyNjoiOWE4YzNiOWQ5ZDRiM2YxM2MxZWIiLDU4MDQzOiJhMmFmMGRiYjQ1ZDBlMmNiMDM3NCIsNTgzODQ6IjY2YTYwYjVlYmIzZTA0NmY4MmQxIiw1ODkzMzoiYjNhZTUxYjliMzgzZjNhYzk1NjQiLDU5MzUwOiJiNjYzNjNkMTk5ODQxZWJmOGI4NiIsNTk0Mzc6ImI3MmM1MGI1MDVmMTJjOTljNzJlIiw1OTgzMDoiZWI3YzE4M2QzMzFiODVlOGFmNjAiLDYwMDYyOiI0OTU0NDRhN2ZhYzE3M2ZiMjhjZCIsNjAwOTA6ImRmMGExNDk4ZDQzOTI5YmE5MTBkIiw2MDc2OToiYzZiNTk2NmU5ZGY1NWRkMTlhYmYiLDYxMTkyOiIyMmQ1NDJiODYzM2Q1YTRhNTg3ZCIsNjE0MTM6IjRmYmY4ZDMzNTYyMGMwZWY4Mjc1Iiw2MTgyMToiZjY0ZDFlMmM2YjFlMzBkZmQ1NGUiLDYyNjAwOiI2MTA2MzU2Y2I4MTZmYjc0YjE3YiIsNjI3OTA6IjBjZDJiOTE3ZjdhNzE2OTBlNzQ1Iiw2MjgwNjoiYWU3Yjk5MmJkNTMxZTc2ZjhlNzYiLDYyODkyOiI2NWEwMzU1MGFjNGIzNmQ4Mzg4YyIsNjMwMzM6ImY5MmE4NzQ3MWU1ZTEwMWM4YzU1Iiw2MzEwMDoiMzYyMWZlYjhiZmFiZDRhYzVhNjQiLDYzNzIzOiIxYzY1YTA5YzIwYjYxZTM0NDcwOCIsNjQxMTM6IjAzYTJlNDc1YzQ1YTUzNzMxMjVkIiw2NDE5NToiNzIxNTFiYTJlNjczNDczZjcyYTQiLDY0NTAzOiJlYTZlMzRmMWYyN2JhZDdkZjhkMiIsNjQ2NDM6IjVlZjNiZGJhYTBjNmM0ODg5ZjRlIiw2NDY3NDoiNjZkNWEzY2I1Zjg0MDYzMzQ0N2EiLDY1NTI4OiI5ZGNjMTkxYTRhYjQ4N2QwYjEwYyIsNjU2MTM6ImM5OWYzYjY5MTBmMGY1ZWIyZWQzIiw2NTY0MzoiM2M5NjU5MTYyMmRlZmMwYWJkMDYiLDY1NjkyOiIyZjM4OWQ0NDNkOTc1Y2NiMDM1ZSIsNjU4NTY6IjZjZjI3MzA2NDUxNmNkODEyOWMwIiw2NjIyOToiMDkwYWQ1NGMyZmMzM2UxZjFmZjciLDY2MjcwOiIwMGY3ZTAyNzMwYjQ1NmFiZjI2ZCIsNjY0NzM6IjIxODIyZWI1YmE2ZDhiZDUwYzZlIiw2NjUyMjoiNjYxYTk3MTYxYzNjYWQ5NjkwZDIiLDY3MjEyOiI3Y2ExMmFiN2VjY2YxYzQ4YWVhMSIsNjcyNDQ6ImY5ZmYxMzY3YjE0MjNmNGEwNWVhIiw2NzU0MzoiZGNkYmE4OTk0OWMwMGJmNTc1ZDYiLDY3Njg1OiIxMzc1NTI5NmQ3ZDI2ZWI3ZGJjYyIsNjc3ODQ6IjIzYjc0NTZjMjEyODQ5ZTViN2U4Iiw2NzkyNDoiMTgwNTAwODZhOTQ2OGVjNGQwMTkiLDY3OTI1OiJjZGQ3N2E2OTcyNzg3Nzg5YTYxNiIsNjg1Nzk6ImMwMTg3NGFlOTNmY2VlOTRiMzg4Iiw2ODY4NjoiMjUxMTRiZWE1ZmZlZDBlZTIxNzEiLDY4OTQyOiI0OWNlMzVlMDhkZmJiN2I5OGU1YSIsNjg5NjQ6Ijk0MjViNTg3MzBkZjEzODA2ZmY2Iiw2OTE4NToiMjhlMGQ0MTJjNjQzNjk1N2I1ZjEiLDY5MjA5OiIxMTIxNGQxZmIxMGEzYTc2YTAwYiIsNjk3NDc6IjAzMWQyNTU0MjRiMGRlMWQzZmMyIiw2OTc2NjoiMTg5OWMwNzkyZGYwOWNjYTVlYTQiLDY5ODAzOiI2ZWQ3Yzc4MzA1ZmVlMGFiM2I3MiIsNjk4MDk6IjQyNDU3YmZiNjUxMjI1NmIyYzA4Iiw2OTg2MToiODdlMjBhODk1MWNlZWNjNDYxZDgiLDcwMjU1OiI1YzlhMWVlNDAyZjMxYjc2YzE4OSIsNzAyODA6ImZmMzJmOGU2MDg0NDBmMDU3YTI5Iiw3MDY1NjoiY2U0ZmI0ZGZkOTU5ZWVmYzg0YzciLDcwNzU2OiIyYzE2ZWJkYTk3ZGJmZTE3NDgyOSIsNzA4MTU6IjNjZTZkNmEyNjg2ZTg4OTA3YWIzIiw3MTE5MDoiOGY1YmYyYWU5NDg4ZDY1ZDMyNWEiLDcxMzUwOiJhZTI5ZGNiMzBjODJjOGQ4YzFmMyIsNzE0MTQ6ImUzNDVlZDc1MmQzYTIwZDE5NDY3Iiw3MTQzNzoiMTc2ZGI4ZGQ2ZTlhMGJkY2M4Y2MiLDcxNDgyOiIxZjBhZGE5MTYwZjNmOWZjZWMwMyIsNzE5MDE6IjQzZDViNDhkOTY0MzY1NmJmZDJjIiw3MTk5MToiZmM2MTlmNzViYWRiOTIwMTUyNzgiLDcyMjQ5OiI4NGJjNzg2N2Y1ZjEwNGJiYWQyNiIsNzI1MTI6IjYxOTMxMDJlMzE1MjgwNmI4YjBmIiw3MjY4MDoiZjc5YTU3MTYwY2Q3MjRhZGZkZmMiLDcyOTAyOiI3NzZkYmI0NDY5ZDE5NTRmNWM2YSIsNzM0MjU6ImFlYWI5MTI5ZThkZDM5YjVhMjQ0Iiw3MzU1MToiMzI4MmUwNTI1YTkzNTgyMGI0ZjciLDczOTYwOiIzMzRiMTNkYWM5ZjU1MjliMmU0NSIsNzQyMzM6IjFlNzc2MWE4MWM0ZWM1Zjk5ODc2Iiw3NDI3MzoiNjY3NDNmYjM2ODdjNzdjMTVjYTEiLDc0MzgxOiJmZDZiOTAxNTNjNmMxNmIyYmM5YSIsNzQ0MjI6IjNkNzg4NWI0MTQyY2Y1ZjA4YjA4Iiw3NDQ3MToiY2QxOTI3ZDIzYzE1NmIxZGYzMzciLDc0NjM2OiJiMGRlYTE2NWY0NDVmNDA5MDlmYSIsNzQ4MzA6IjRmNTBkMDBmYmY5NWMxZTI5Njk1Iiw3NTE3MjoiYjFkM2ZmZGVkZTk0ZWUzZWI0YmMiLDc1MjE3OiI4YmZkMjM0MzU0ODYzMTMwZTJlMCIsNzU2MDM6ImRlNDNjYmU1OWFkZDg5ZTkyY2M1IiwKNzYyNzg6IjQwOTJiMDM4NjgxYzUwZjFlN2Y2Iiw3NjMyOToiYzU3ZDE2ZDM1MGRkNmY0YWE3YWQiLDc2NjY0OiI5OWMxYzQ0M2M0NWI2NzRjMzQyZSIsNzY5MTI6ImYwNTUzYzUyODNjOWRhMTI1YjQ5Iiw3NzI2NDoiNzNkMTBjZmI1ZWMwZjEwNjcyN2MiLDc4MTgyOiI5MmZkZmNlMTAwZTgxMjIwNDZmYyIsNzgyMzc6ImU4OTZhOGJlYTkyNWQ2NWY2ZWZmIiw3ODM0MToiMDVhOGU0MzQ5MjM0YzYxOTI5MmUiLDc4NDA0OiJiNWVjZDZkYzY1ZjEzZGVmNWVhYiIsNzg0MzQ6IjU4MGY1ZDIyNWY0YjBmM2E3NjIzIiw3ODQ3MToiMDUyZjk2MzMwMzQ2MThiMDE1NjEiLDc4ODk5OiJiYjVmODFkOTRiZTViNWE3YmJkMSIsNzkxOTE6IjQ4MjM4YzczZTQwMzZjNDcyMzQwIiw3OTI0NDoiZmFkYzYxNGYwYTQwNWZkNGM0OWIiLDc5Mzk4OiI5ZjcwZTEwMTc1MjRlZDkzMDEzNiIsNzk0Mzk6IjE4ZDhiYWE1YTIzMDIyMTU1MGJmIiw3OTc5MToiMTYzYzFiYjA3YzYwNDI5NDQzZGYiLDc5ODkyOiJkM2Q5MGQ1ZjVlZTU0MGY1MzQyZSIsODAwNDE6ImZmMmUzZGY5NjNkNThjMTc3MWY1Iiw4MDYzOToiOTM0MDJjMDA5YTI3YjQ2NjBjN2IiLDgwNzMxOiJmOTY4Mzg1YmUyZTIwMDYyYmVkYSIsODA3NjE6IjE5MzFkYTk0Zjk0ODI1ZGJhYWY4Iiw4MDc4MjoiOTc1ZmI0MWQ0MmFlMmQ1MWMwOGIiLDgxMDAxOiJhZmY4NGJjMDRhMDNiMTdiNTQ2ZCIsODExMDc6IjFiYmE1OWUyMDg5ZTU4MzQ3ODU5Iiw4MTIxMDoiMGIxZWI3MTYxMzQ1ZDMzNDAwNDIiLDgxMjQ3OiI3MDU5MDYzYmE0ZDNiMzczMDJkYyIsODE1Mjk6Ijk2NTI0YjAzOTNjZjg2OTVkOWNmIiw4MTgxODoiNzY0N2UzNzljMDhjZmFkYzNhMGEiLDgxOTAzOiIyY2E2NzZiYmU0NjM4MmU2YzFmZiIsODIyNzA6IjUyMDAzODQwODAyYTdhMTVkNGY5Iiw4MjI3MToiYzAyMWJhZTQ0NDY2NWEzNDg1M2YiLDgyNTg2OiJkZTlhMmVhNTE1Yjk2MGUwNTQ3ZSIsODMyNjE6ImI0NWNkOTQyMzI4Y2Q5YjBlYWZhIiw4MzUyOToiZDk2ZWE1YzFmOWM4Mzc1ZmJjMTgiLDgzNjc1OiI1ZWQwMTg0ODI3MjNhYmFmOWU4NiIsODQyMjQ6IjMyNzgzNWMyMDIwZTlkN2U0YWQ4Iiw4NDMzNToiYjZjNThmZTViYjNhMDk5YzFmNjUiLDg0OTQ4OiIxZjA1ZDJlNjM4Nzc5MzFhNGExMSIsODU1MTE6ImJjMDAxNWM3MzY4MzBkYmI0MzkxIiw4NjA4NzoiOGRhNTZjMTMzNGU0MzZkZDNhOTEiLDg2MTc4OiJlNmZiZWM5MGFmNWJhNjIxMDM2OCIsODYzNjA6ImE5NDkyZDM3NzRhYmE3NjAzNDc5Iiw4NjU0NDoiOGU0YzYyODA0YjZmYjA3ZGNhNTUiLDg2OTk3OiJkOWExYjJhY2EwMGE2MjA5ZmU2MSIsODcyNTY6IjNmNWUwNWRjNDRkMjcwNmE5MDI2Iiw4NzQ3NDoiYmUyOGY5ZTAwM2UwYzQ3M2I5MWQiLDg3NDk4OiJlNTk0MDAyYTJjN2ViMzAxYWZhNSIsODc2NzM6ImFmZDEwMWJkOTczZGU0MzVmZTRhIiw4NzcyMToiZDQ4YzAyNjczMzZkYzY2OTEwN2QiLDg3NzQwOiI1ZTFhNzY3OTBlZTQ5YTM3OTVmYSIsODc3Njc6ImVkZWNmNDM5NTA0OGI3NDExYTg1Iiw4ODM4NToiMDg1NTFmMjAwZmVhMGZkMDNjZDUiLDg4NjQxOiIwNDE0MzhkMTFjNDZmY2U5ZDA4OSIsODkwNDQ6IjEyMjg4NjU5MWRiM2ZhNmZkYzAzIiw4OTE5NToiZjFlYmMyNGEwZGQ2YzllMDQ1NTIiLDg5NDMwOiIzOGJmODZiODVjOTg4MzE4ZmM3MiIsODk1NTg6Ijk4MWEzNGIxOWI0MWZhZDkyYjg4Iiw5MDMzMDoiYWFmMTYyMWU5ZTY4YjMxZjNjNmUiLDkwMzc4OiI4YjNhYjJjYWM5ZDBmZjkyN2ViZCIsOTA3NDE6ImFmMmI0ODE3MGQ2NDU0NzQwOGZmIiw5MDk2MDoiZWM5NDFhY2NmYWEzZWQyY2Q2ZTIiLDkxMjAwOiI5YTUyZjlmOTE4ZmMxOTZiYTQ0YSIsOTE2NzA6ImU4ZDNlZThkYmQ0MzVlMDM2ZWRlIiw5MTY3ODoiZTMwZDRjZGNkYzY4ODM3ZmY0ZDEiLDkyMzkzOiJmYmI4YzI3MWJjNGEwYjc1MTI2OSIsOTMxODg6IjgzMTJiOWEzNzZiNTU4ZTAwMzI0Iiw5MzQxNjoiOTA4MThkNzNlMGUzYTlhOWZlMmEiLDk0MDU0OiJkNTBlOTNlZjQzYzE4NGE1MTNlZiIsOTUxNTg6IjUzYmU2ZWU2NjRlNTA1MTg0NWY4Iiw5NTgzMToiZjA5ODQ4NjI4NDVlNTliYWY5MDUiLDk1ODUzOiI5YjIyODIxZWUzYjBlMzg3OTBjMCIsOTYxODE6ImFiNDljNzE0YTVkMmQ1MDMyMGRjIiw5NjM1MjoiODU2NGI0YWRmMTRlNDdlMDUxYWYiLDk3MTQ5OiI2NWQyNWE1Y2M5YjJhZTUxNjk2OCIsOTc2NjA6ImFlOWYzZDRlNTY5NmY1ZDExOWE3Iiw5Nzg0NToiZjJkYjRkYzgyMDIzZWQ0MjIwZmMiLDk4NDMzOiI1MTM4ZmFmM2FhZjE0ZjJhNGE3OCIsOTg0NzU6IjMzNzhmN2ExMjMwNjliMmU3ZjBmIiw5ODUwOToiZjhkNmFjMzg1NTgxOTY4MDBkODEiLDk4Njk2OiJlMTBjZWVjZmQ0NDUzNWQ2ZWExYSIsOTk0NDg6IjNlY2Q1MWNjNDRjMTZlNWZlMDRmIiw5OTU5MzoiYjRmOGFlMTdjMGZiNjhmMmZiMDAiLDk5OTA4OiJmM2Y3MmYyZTk3M2ZiZDlkYTkxZSIsOTk5NDQ6ImVmZjMyODgyYzdhZGU4ZDkwZTVmIn1bZV0rIi5jc3MiLHQuZz1mdW5jdGlvbigpe2lmKCJvYmplY3QiPT10eXBlb2YgZ2xvYmFsVGhpcylyZXR1cm4gZ2xvYmFsVGhpczt0cnl7cmV0dXJuIHRoaXN8fG5ldyBGdW5jdGlvbigicmV0dXJuIHRoaXMiKSgpfWNhdGNoKGUpe2lmKCJvYmplY3QiPT10eXBlb2Ygd2luZG93KXJldHVybiB3aW5kb3d9fSgpLHQubz0oZSxhKT0+T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUsYSksZD17fSxmPSJ0cmFkaW5ndmlldzoiLHQubD0oZSxhLGMsYik9PntpZihkW2VdKWRbZV0ucHVzaChhKTtlbHNle3ZhciBfLG87aWYodm9pZCAwIT09Yylmb3IodmFyIHM9ZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInNjcmlwdCIpLGk9MDtpPHMubGVuZ3RoO2krKyl7dmFyIHI9c1tpXTtpZihyLmdldEF0dHJpYnV0ZSgic3JjIik9PWV8fHIuZ2V0QXR0cmlidXRlKCJkYXRhLXdlYnBhY2siKT09ZitjKXtfPXI7YnJlYWt9fV98fChvPSEwLChfPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpKS5jaGFyc2V0PSJ1dGYtOCIsdC5uYyYmXy5zZXRBdHRyaWJ1dGUoIm5vbmNlIix0Lm5jKSxfLnNldEF0dHJpYnV0ZSgiZGF0YS13ZWJwYWNrIixmK2MpLApfLnNyYz1lLDAhPT1fLnNyYy5pbmRleE9mKHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4rIi8iKSYmKF8uY3Jvc3NPcmlnaW49ImFub255bW91cyIpKSxkW2VdPVthXTt2YXIgbj0oYSxjKT0+e18ub25lcnJvcj1fLm9ubG9hZD1udWxsLGNsZWFyVGltZW91dChsKTt2YXIgZj1kW2VdO2lmKGRlbGV0ZSBkW2VdLF8ucGFyZW50Tm9kZSYmXy5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKF8pLGYmJmYuZm9yRWFjaCgoZT0+ZShjKSkpLGEpcmV0dXJuIGEoYyl9LGw9c2V0VGltZW91dChuLmJpbmQobnVsbCx2b2lkIDAse3R5cGU6InRpbWVvdXQiLHRhcmdldDpffSksMTJlNCk7Xy5vbmVycm9yPW4uYmluZChudWxsLF8ub25lcnJvciksXy5vbmxvYWQ9bi5iaW5kKG51bGwsXy5vbmxvYWQpLG8mJmRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQoXyl9fSx0LnI9ZT0+eyJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZTeW1ib2wudG9TdHJpbmdUYWcmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFN5bWJvbC50b1N0cmluZ1RhZyx7dmFsdWU6Ik1vZHVsZSJ9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSl9LHQubm1kPWU9PihlLnBhdGhzPVtdLGUuY2hpbGRyZW58fChlLmNoaWxkcmVuPVtdKSxlKSx0Lmo9Nzk3OTUsKCgpPT57dmFyIGU7dC5nLmltcG9ydFNjcmlwdHMmJihlPXQuZy5sb2NhdGlvbisiIik7dmFyIGE9dC5nLmRvY3VtZW50O2lmKCFlJiZhJiYoYS5jdXJyZW50U2NyaXB0JiYiU0NSSVBUIj09PWEuY3VycmVudFNjcmlwdC50YWdOYW1lLnRvVXBwZXJDYXNlKCkmJihlPWEuY3VycmVudFNjcmlwdC5zcmMpLCFlKSl7dmFyIGM9YS5nZXRFbGVtZW50c0J5VGFnTmFtZSgic2NyaXB0Iik7aWYoYy5sZW5ndGgpZm9yKHZhciBkPWMubGVuZ3RoLTE7ZD4tMSYmKCFlfHwhL15odHRwKHM/KTovLnRlc3QoZSkpOyllPWNbZC0tXS5zcmN9aWYoIWUpdGhyb3cgbmV3IEVycm9yKCJBdXRvbWF0aWMgcHVibGljUGF0aCBpcyBub3Qgc3VwcG9ydGVkIGluIHRoaXMgYnJvd3NlciIpO2U9ZS5yZXBsYWNlKC9eYmxvYjovLCIiKS5yZXBsYWNlKC8jLiokLywiIikucmVwbGFjZSgvXD8uKiQvLCIiKS5yZXBsYWNlKC9cL1teXC9dKyQvLCIvIiksdC5wPWV9KSgpLHQuZy5sb2NhdGlvbiYmdC5wLnN0YXJ0c1dpdGgodC5nLmxvY2F0aW9uLm9yaWdpbikmJih0LnA9dC5wLnNsaWNlKHQuZy5sb2NhdGlvbi5vcmlnaW4ubGVuZ3RoKSksKCgpPT57Y29uc3QgZT10LnU7dC51PWE9PmUoYSkucmVwbGFjZSgiX19MQU5HX18iLHQuZy5sYW5ndWFnZSl9KSgpLCgoKT0+e3ZhciBlPXQuZSxhPU9iamVjdC5jcmVhdGUobnVsbCk7ZnVuY3Rpb24gYyhhLGQpe3JldHVybiBlKGEpLmNhdGNoKChmdW5jdGlvbigpe3JldHVybiBuZXcgUHJvbWlzZSgoZnVuY3Rpb24oZil7dmFyIGI9ZnVuY3Rpb24oKXtzZWxmLnJlbW92ZUV2ZW50TGlzdGVuZXIoIm9ubGluZSIsYiwhMSksITE9PT1uYXZpZ2F0b3Iub25MaW5lP3NlbGYuYWRkRXZlbnRMaXN0ZW5lcigib25saW5lIixiLCExKTpmKGQ8Mj9jKGEsZCsxKTplKGEpKX07c2V0VGltZW91dChiLGQqZCoxZTMpfSkpfSkpfXQuZT1mdW5jdGlvbihlKXtpZighYVtlXSl7YVtlXT1jKGUsMCk7dmFyIGQ9ZnVuY3Rpb24oKXtkZWxldGUgYVtlXX07YVtlXS50aGVuKGQsZCl9cmV0dXJuIGFbZV19fSkoKSwoKCk9PntpZigidW5kZWZpbmVkIiE9dHlwZW9mIGRvY3VtZW50KXt2YXIgZT1lPT5uZXcgUHJvbWlzZSgoKGEsYyk9Pnt2YXIgZD10Lm1pbmlDc3NGKGUpLGY9dC5wK2Q7aWYoKChlLGEpPT57Zm9yKHZhciBjPWRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJsaW5rIiksZD0wO2Q8Yy5sZW5ndGg7ZCsrKXt2YXIgZj0oXz1jW2RdKS5nZXRBdHRyaWJ1dGUoImRhdGEtaHJlZiIpfHxfLmdldEF0dHJpYnV0ZSgiaHJlZiIpO2lmKCJzdHlsZXNoZWV0Ij09PV8ucmVsJiYoZj09PWV8fGY9PT1hKSlyZXR1cm4gX312YXIgYj1kb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgic3R5bGUiKTtmb3IoZD0wO2Q8Yi5sZW5ndGg7ZCsrKXt2YXIgXztpZigoZj0oXz1iW2RdKS5nZXRBdHRyaWJ1dGUoImRhdGEtaHJlZiIpKT09PWV8fGY9PT1hKXJldHVybiBffX0pKGQsZikpcmV0dXJuIGEoKTsoKGUsYSxjLGQsZik9Pnt2YXIgYj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJsaW5rIik7Yi5yZWw9InN0eWxlc2hlZXQiLGIudHlwZT0idGV4dC9jc3MiLGIub25lcnJvcj1iLm9ubG9hZD1jPT57aWYoYi5vbmVycm9yPWIub25sb2FkPW51bGwsImxvYWQiPT09Yy50eXBlKWQoKTtlbHNle3ZhciBfPWMmJigibG9hZCI9PT1jLnR5cGU/Im1pc3NpbmciOmMudHlwZSksbz1jJiZjLnRhcmdldCYmYy50YXJnZXQuaHJlZnx8YSx0PW5ldyBFcnJvcigiTG9hZGluZyBDU1MgY2h1bmsgIitlKyIgZmFpbGVkLlxuKCIrbysiKSIpO3QuY29kZT0iQ1NTX0NIVU5LX0xPQURfRkFJTEVEIix0LnR5cGU9Xyx0LnJlcXVlc3Q9byxiLnBhcmVudE5vZGUmJmIucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChiKSxmKHQpfX0sYi5ocmVmPWEsMCE9PWIuaHJlZi5pbmRleE9mKHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4rIi8iKSYmKGIuY3Jvc3NPcmlnaW49ImFub255bW91cyIpLGM/Yy5wYXJlbnROb2RlLmluc2VydEJlZm9yZShiLGMubmV4dFNpYmxpbmcpOmRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQoYil9KShlLGYsbnVsbCxhLGMpfSkpLGE9ezc5Nzk1OjB9O3QuZi5taW5pQ3NzPShjLGQpPT57YVtjXT9kLnB1c2goYVtjXSk6MCE9PWFbY10mJnsyMDI6MSw2NDU6MSw2NDY6MSw2NTc6MSwxNTA5OjEsMTY3NjoxLDE2Nzg6MSwyMDEzOjEsMjMzMToxLDIzNzI6MSwyNTExOjEsMzMxMDoxLDMzMjM6MSwzNzE5OjEsMzkxNjoxLDQwNDI6MSw0MTI3OjEsNDQ3NzoxLDQ2NjA6MSw0OTI5OjEsNDk2OToxLDUxODQ6MSw1MTg2OjEsNTMyMjoxLDU1Mzk6MSw1NjAzOjEsNTY4OToxLDU3NTY6MSw2MDcwOjEsNjA4MjoxLDY1ODM6MSw2NjA1OjEsNjY0NzoxLDcxMTE6MSw3MTYzOjEsNzM4NzoxLDc0NDU6MSw3NDU2OjEsNzY2NToxLDc4NjM6MSw3ODk5OjEsNzkyNzoxLDgyMTY6MSw4NTc5OjEsOWUzOjEsOTE0MDoxLDk0ODg6MSwKOTUwNDoxLDk3NDQ6MSwxMDM2NjoxLDEwMzg1OjEsMTEwMDg6MSwxMTIxODoxLDExMjU3OjEsMTE0NjE6MSwxMTQ4OToxLDExNTM3OjEsMTE3MjU6MSwxMjA1MToxLDEyMzg1OjEsMTI0MTI6MSwxMjUyNzoxLDEyNTY1OjEsMTI2NjY6MSwxMzAzOToxLDEzNDkyOjEsMTM2Nzc6MSwxNDE5MzoxLDE0NjI1OjEsMTQ2NDA6MSwxNDY1NzoxLDE0Njk3OjEsMTUzODM6MSwxNTUyNjoxLDE1NjM0OjEsMTYzOTk6MSwxNjQyMToxLDE3MDg3OjEsMTc2OTM6MSwxNzc1MToxLDE3ODYxOjEsMTc4NjU6MSwxODE2MjoxLDE4NDAwOjEsMTg0NDI6MSwxODQ3MjoxLDE4Njc0OjEsMTk0NDc6MSwxOTUxMzoxLDE5NTk1OjEsMTk1OTg6MSwxOTYzMToxLDE5Nzg3OjEsMTk4MzM6MSwyMDA4NToxLDIwMTUzOjEsMjAyNzE6MSwyMDM1NDoxLDIwMzcwOjEsMjA1NjQ6MSwyMDU5MDoxLDIwOTcxOjEsMjA5ODY6MSwyMTI0NToxLDIxNTgxOjEsMjIwNzA6MSwyMjE0NDoxLDIyNDA1OjEsMjI0NjQ6MSwyMzI1NDoxLDIzMzY5OjEsMjM2MjQ6MSwyMzY2OToxLDI0MzE2OjEsMjQ0MDg6MSwyNDU4MToxLDI0NjAzOjEsMjUxNDI6MSwyNTQ4NToxLDI1NTU0OjEsMjU1NjI6MSwyNTY0NzoxLDI1Njk4OjEsMjU4MDk6MSwyNTg5NToxLDI2MTAwOjEsMjY1OTI6MSwyNjk4OToxLDI3MDg1OjEsMjcyMTc6MSwyNzMzNzoxLDI3NDQ2OjEsMjc1MTM6MSwyNzUxNzoxLDI3NTQ5OjEsMjc2NjU6MSwyNzY5NjoxLDI3NzM2OjEsMjgwMTc6MSwyODkzNjoxLDI4OTk1OjEsMjkxMzM6MSwyOTI5NjoxLDI5MzE1OjEsMjkzMjc6MSwyOTM0ODoxLDI5NDg5OjEsMjk1MzY6MSwyOTcxNDoxLDI5OTQzOjEsMjk5OTM6MSwzMDAyOToxLDMwMzczOjEsMzA3NDU6MSwzMDc4OToxLDMwOTIyOjEsMzA5NjA6MSwzMTAwMToxLDMxMjYyOjEsMzE1NTc6MSwzMjE3NjoxLDMyNDI3OjEsMzI3NDg6MSwzMjgxNjoxLDMyODU3OjEsMzMxMjA6MSwzMzIyMToxLDMzMzY4OjEsMzM1MTU6MSwzMzU1MzoxLDM0NzU4OjEsMzUwNzM6MSwzNTE5ODoxLDM1MzQyOjEsMzUzOTk6MSwzNTYzMDoxLDM1Nzk0OjEsMzYxNzM6MSwzNjIyMjoxLDM2MzU2OjEsMzY1MjE6MSwzNjU0NToxLDM2OTg2OjEsMzc1MTM6MSwzNzU2NzoxLDM3NzQ2OjEsMzc3Njc6MSwzNzg2NzoxLDM4MDAyOjEsMzgyNjI6MSwzODQ3OToxLDM4NzgyOjEsMzg4Njg6MSwzOTc4NjoxLDQwMTY4OjEsNDAyMjA6MSw0MDgzNToxLDQwODY3OjEsNDA5MDI6MSw0MDkxNDoxLDQxNTA2OjEsNDE1ODg6MSw0MTYwODoxLDQxODExOjEsNDE5ODA6MSw0MjAzMzoxLDQyMzAxOjEsNDI3MjE6MSw0MzMyNToxLDQzNDMzOjEsNDM0NDE6MSw0MzQ4NjoxLDQzNjQ0OjEsNDM3OTI6MSw0MzgwODoxLDQzODQxOjEsNDM5MTk6MSw0MzkzOToxLDQ0MDMxOjEsNDQ0NjA6MSw0NDk0NjoxLDQ1MjQyOjEsNDUzMzE6MSw0NTM2ODoxLDQ1NDE4OjEsNDU3ODM6MSw0NTk0NToxLDQ2MDM0OjEsNDYwNTU6MSw0NjI0NToxLDQ2NTkxOjEsNDY3NTY6MSw0NjkwNzoxLDQ3MDIxOjEsNDcwOTI6MSw0NzIwMToxLDQ3MzE2OjEsNDc0NTc6MSw0NzU1MToxLDQ3NTc5OjEsNDc2MzI6MSw0ODMxMjoxLDQ4NjgyOjEsNDg4NjQ6MSw0OTE0OToxLDQ5Mjk3OjEsNDk0OTA6MSw0OTUzNjoxLDQ5NTg4OjEsNDk5OTc6MSw1MDAzNToxLDUwMjIxOjEsNTAzMTY6MSw1MDMyNToxLDUwNTg4OjEsNTA2MjI6MSw1MDc0MzoxLDUwODAwOjEsNTEwMTc6MSw1MTAzMDoxLDUxMTg0OjEsNTEyMTM6MSw1MTI1NjoxLDUxMzA5OjEsNTE2ODI6MSw1MTg1MDoxLDUxODgwOjEsNTIwNjU6MSw1MjA5NToxLDUyMTc4OjEsNTIzOTY6MSw1MjY4MDoxLDUyOTIwOjEsNTI5NjE6MSw1MzIyODoxLDUzMzI5OjEsNTM1MjE6MSw1MzcxMzoxLDUzOTIzOjEsNTQwOTM6MSw1NDMxMDoxLDU0MzM5OjEsNTUwMTE6MSw1NTI5MDoxLDU1MzM2OjEsNTYxMjE6MSw1NjIxMzoxLDU2MjUyOjEsNTcyNTQ6MSw1NzMwMDoxLDU3NTA0OjEsNTc2MjY6MSw1ODA0MzoxLDU4MDUxOjEsNTgzODQ6MSw1ODkzMzoxLDU5MzUwOjEsNTk0Mzc6MSw1OTgzMDoxLDYwMDYyOjEsNjAwOTA6MSw2MDc2OToxLDYxMTkyOjEsNjE0MTM6MSw2MTgyMToxLDYyNjAwOjEsNjI2MzA6MSw2Mjc5MDoxLDYyODA2OjEsNjI4OTI6MSw2MzAzMzoxLDYzMTAwOjEsNjM3MjM6MSw2NDExMzoxLDY0MTk1OjEsNjQ1MDM6MSw2NDY0MzoxLDY0Njc0OjEsNjU1Mjg6MSw2NTYxMzoxLDY1NjQzOjEsNjU2NzU6MSw2NTY5MjoxLDY1ODU2OjEsNjYyMjk6MSw2NjI3MDoxLDY2NDczOjEsNjY1MjI6MSw2NzIxMjoxLDY3MjQ0OjEsNjc1NDM6MSw2NzY4NToxLDY3Nzg0OjEsNjc3OTk6MSw2NzkyNDoxLDY3OTI1OjEsNjg1Nzk6MSw2ODY4NjoxLDY4OTQyOjEsNjg5NjQ6MSw2OTE4NToxLDY5MjA5OjEsNjk3NDc6MSw2OTc2NjoxLDY5ODAzOjEsNjk4MDk6MSw2OTg2MToxLDcwMjU1OjEsNzAyODA6MSw3MDM2NDoxLDcwNjU2OjEsNzA3NTY6MSw3MDgxNToxLDcxMTkwOjEsNzEzNTA6MSw3MTQxNDoxLDcxNDM3OjEsNzE0ODI6MSw3MTUyODoxLDcxOTAxOjEsNzE5OTE6MSw3MjI0OToxLDcyNTEyOjEsNzI2NjY6MSw3MjY4MDoxLDcyOTAyOjEsNzM0MjU6MSw3MzU1MToxLDczOTYwOjEsNzQyMzM6MSw3NDI3MzoxLDc0MzgxOjEsNzQ0MjI6MSw3NDQ2MToxLDc0NDcxOjEsNzQ2MzY6MSw3NDgzMDoxLDc1MTcyOjEsNzUyMTc6MSw3NTMwNDoxLDc1NjAzOjEsNzYyNzg6MSw3NjMyOToxLDc2NjY0OjEsNzY5MTI6MSw3NzI2NDoxLDc4MTgyOjEsNzgyMzc6MSw3ODM0MToxLDc4NDA0OjEsNzg0MzQ6MSw3ODQ3MToxLDc4NjUyOjEsNzg4OTk6MSw3OTE5MToxLDc5MjQ0OjEsNzkzOTg6MSw3OTQzOToxLDc5NzkxOjEsNzk4OTI6MSw4MDA0MToxLDgwNjM5OjEsODA3MzE6MSw4MDc2MToxLDgwNzgyOjEsODEwMDE6MSw4MTA3MjoxLDgxMTA3OjEsODEyMTA6MSw4MTI0NzoxLDgxNTI5OjEsODE4MTg6MSw4MTkwMzoxLDgyMjcwOjEsODIyNzE6MSw4MjU4NjoxLDgzMDQxOjEsODMyNjE6MSw4MzQ4ODoxLDgzNTI5OjEsODM2NzU6MSw4NDIyNDoxLDg0MzA2OjEsODQzMzU6MSw4NDk0ODoxLDg1NTExOjEsODYwODc6MSw4NjE3ODoxLDg2MzYwOjEsODY0MjM6MSw4NjU0NDoxLAo4Njk5NzoxLDg3MjU2OjEsODc0NzQ6MSw4NzQ5ODoxLDg3NjczOjEsODc3MjE6MSw4Nzc0MDoxLDg3NzY3OjEsODgzODU6MSw4ODY0MToxLDg5MDQ0OjEsODkxOTU6MSw4OTIwNDoxLDg5NDMwOjEsODk1NTg6MSw5MDMzMDoxLDkwMzc4OjEsOTA3NDE6MSw5MDk2MDoxLDkxMjAwOjEsOTE2NzA6MSw5MTY3ODoxLDkxODU1OjEsOTIzOTM6MSw5MzE4ODoxLDkzNDE2OjEsOTM0MjE6MSw5NDA1NDoxLDk0MjMyOjEsOTQ5NDg6MSw5NTE1ODoxLDk1ODMxOjEsOTU4NTM6MSw5NjE4MToxLDk2MzUyOjEsOTY1ODc6MSw5NzE0OToxLDk3NjYwOjEsOTc4NDU6MSw5ODA4NDoxLDk4NDMzOjEsOTg0NzU6MSw5ODUwOToxLDk4Njk2OjEsOTk0NDg6MSw5OTU5MzoxLDk5OTA4OjEsOTk5NDQ6MX1bY10mJmQucHVzaChhW2NdPWUoYykudGhlbigoKCk9PnthW2NdPTB9KSwoZT0+e3Rocm93IGRlbGV0ZSBhW2NdLGV9KSkpfX19KSgpLHQuaTE4bmV4dD0oZSxhPXt9LGMsZD10LmcubGFuZ3VhZ2UpPT57aWYobnVsbD09PWUpe2lmKEFycmF5LmlzQXJyYXkoYykpcmV0dXJuIGNbdm9pZCAwPT09YS5jb3VudD8wOnQuX3BsdXJhbFtkXShhLmNvdW50KV0ucmVwbGFjZSgveyhcdyspfS9nLCgoZSxjKT0+dm9pZCAwIT09KGEucmVwbGFjZXx8YSlbY10/KGEucmVwbGFjZXx8YSlbY106ZSkpO2lmKCJvYmplY3QiPT10eXBlb2YgYylyZXR1cm4gY1t0LmcubGFuZ3VhZ2VdP3QuaTE4bmV4dChudWxsLGEsY1t0LmcubGFuZ3VhZ2VdKTp0LmkxOG5leHQobnVsbCxhLGMuZW4sImVuIil9ZWxzZSBpZihjJiZlKXtjb25zdCBkPWAke2V9JHthLmNvbnRleHQ/YF8ke2EuY29udGV4dH1gOiIifWA7aWYoY1tkXSlyZXR1cm4gdC5pMThuZXh0KG51bGwsYSxjW2RdKX1yZXR1cm4ibnVtYmVyIj09dHlwZW9mIGU/ZS50b1N0cmluZygpOiJzdHJpbmciIT10eXBlb2YgZT8iIjplfSwoKCk9Pnt0LmI9InVuZGVmaW5lZCIhPXR5cGVvZiBkb2N1bWVudCYmZG9jdW1lbnQuYmFzZVVSSXx8c2VsZi5sb2NhdGlvbi5ocmVmO3ZhciBlPXs3OTc5NTowLDM5MDU6MCw1NDY4MTowLDMxODM3OjAsNTE1MDg6MCw0OTUxODowLDMyNjMyOjAsODQwODowLDk5NTI3OjAsMTE0MDk6MCwzMDIwMDowLDUyODQyOjAsODg5MDY6MCwxMzgwOTowLDg1NTEwOjAsMzM3MzU6MH07dC5mLmo9KGEsYyk9Pnt2YXIgZD10Lm8oZSxhKT9lW2FdOnZvaWQgMAo7aWYoMCE9PWQpaWYoZCljLnB1c2goZFsyXSk7ZWxzZSBpZigvXigxKDAzKDY2fDg1KXwxKDQoMDl8NjF8ODkpfDAwOHwyMTh8MjU3fDUzN3w3MjUpfDIoMDUxfDM4NXw0MTJ8NTI3fDU2NXw2NjYpfDMoMDM5fDQ5Mnw2Nzd8ODA5KXw0KDYoMjV8NDB8NTd8OTcpfDE5Myl8NSgwOXwzODN8NTI2fDYzNCl8NigzOTl8NDIxfDc2fDc4KXw3KDg2WzE1XXwwODd8NjkzfDc1MSl8OCg0KDAwfDQyfDcyKXwxNjJ8Njc0KXw5KDUoMTN8OTV8OTgpfDQ0N3w2MzF8Nzg3fDgzMykpfDIoMChbMjldNzF8MDg1fDEzfDE1M3wyfDM1NHwzNzB8NTY0fDU5MHw5ODYpfDIoMDcwfDE0NHw0MDV8NDY0KXwzKFszNl02OXwyNTR8MzF8NjI0fDcyKXw0KDMxNnw0MDh8NTgxfDYwMyl8NSgxMXwxNDJ8NDg1fDU1NHw1NjJ8NjQ3fDY5OHw4MDl8ODk1KXw2KDEwMHw1OTJ8OTg5KXw3KDUoMTN8MTd8NDkpfCg0NHw2OXw3Myk2fDA4NXwyMTd8MzM3fDY2NSl8OCgwMTd8OTM2fDk5NSl8OSgzKDE1fDI3fDQ4KXwoMTN8OTR8OTkpM3wyOTZ8NDg5fDUzNnw3MTQpfDEyNDV8MTU4MSl8MygwKDAyOXwyMDB8MzczfDc0NXw3ODl8OTIyfDk2MCl8MSgwMDF8MjYyfDU1N3w4MzcpfDIoMTc2fDQyN3w2MzJ8NzQ4fDgxNnw4NTcpfDMoMTB8MTIwfDIyMXwyM3wzNjh8NTE1fDU1M3w3MzUpfDUoMDczfDE5OHwzNDJ8Mzk5fDYzMHw3OTQpfDYoMTczfDIyMnwzNTZ8NTIxfDU0NXw5ODYpfDcoWzU3OF02N3wxOXw1MTN8NzQ2KXw4KCgwMHwyNnw3OCkyfDQ3OXw4NjgpfDkoMDV8MTZ8Nzg2KXw0NzU4KXw0KDAoMTY4fDIyMHw0Mnw4MzV8ODY3fDkwMnw5MTQpfDEoMjd8NTA2fDU4OHw2MDh8ODExfDk4MCl8MigwMzN8MzAxfDcyMSl8Myg0KDMzfDQxfDg2KXwzMjV8NjQ0fDc5Mnw4MDh8ODQxfDkxOXw5MzkpfDQoMDMxfDQ2MHw3N3w5NDYpfDUoMjQyfDMzMXwzNjh8NDE4fDc4M3w5NDUpfDYoMDM0fDA1NXwyNDV8NTkxfDYwfDc1Nnw5MDcpfDcoKDAyfDIwfDU1KTF8MDkyfDMxNnw0NTd8NTc5fDYzMil8OCgzMTJ8NjgyfDg2NCl8OSgyOSh8Nyl8NSgxOHwzNnw4OCl8MTQ5fDQ5MHw2OXw5OTcpKXw1KDAoMDM1fDIyMXwzMTZ8MzI1fDU4OHw2MjJ8NzQzfDgwMCl8MSg4KDR8NTB8Nnw4MCl8MDE3fDAzMHwxODR8MjEzfDI1NnwzMDl8NTA4fDY4Mil8MigwNjV8MDk1fDE3OHwzOTZ8NjgwfDg0Mnw5MjB8OTYxKXwzKDIyKHw4KXwzMjl8NTIxfDcxM3w5MjMpfDQoMDkzfDMxMHwzMzl8NjgxKXw1KDAxMXwyOTB8MzM2fDM5KXw2KDAzfDEyMXwyMTN8MjUyfDg5KXw3KDI1NHwzMDB8NTA0fDU2fDYyNil8OCgwNDN8MDUxfDM4NHw5MzMpfDkoMzUwfDQzN3w4MzApKXw2KDAoMDYyfDA5MHw3MHw3Njl8ODIpfDEoMTkyfDQxM3w4MjEpfDIoKDYwfDYzfDc5KTB8ODA2fDg5Mil8MygwMzN8MTAwfDcyMyl8NCg2KHw0M3w3NCl8MTEzfDE5NXw1fDUwMyl8NSg2KDEzfDQzfDc1fDkyKXw1Mjh8N3w4M3w4NTYpfDYoNDcofDMpfDA1fDIyOXwyNzB8NTIyKXw3KDkyWzQ1XXwyMTJ8MjQ0fDU0M3w2ODV8Nzg0fDc5OSl8OCg1Nzl8Njg2fDk0Mnw5NjQpfDkoOCgwM3wwOXw2MSl8MTg1fDIwOXw3NDd8NzY2KSl8NygwKFs2N101NnwyNTV8MjgwfDM2NHw4MTUpfDEoNCgxNHwzN3w4Mil8KDF8OTB8OTkpMXwxOTB8MzUwfDUyOHw2Myl8MigyNDl8NTEyfDY2Nnw2ODB8OTAyKXwzKDQyNXw1NTF8ODd8OTYwKXw0KDQoMjJ8NXw2MXw3MSl8MjMzfDI3M3wzODF8NTZ8NjM2fDgzMCl8NSgxNzJ8MjE3fDMwNHw2MDMpfDYoMjc4fDMyOXw2NXw2NjR8OTEyKXw4KDQoMDR8MzR8NzEpfCh8OCk5OXwxODJ8MjM3fDM0MXw2M3w2NTIpfDkoNzlbMTVdfDE5MXwyNDR8Mjd8Mzk4fDQzOXw4OTIpfDcyNjQpfDgoMCg3KDMxfDYxfDgyKXwwNDF8NjM5KXwxKDAwMXwwNzJ8MTA3fDIxMHwyNDd8NTI5fDgxOHw5MDMpfDIoMjdbMDFdfDE2fDU4Nil8MygwNDF8MjYxfDQ4OHw1Mjl8Njc1KXw0KDA4fDIyNHwzMDZ8MzM1fDk0OCl8NSg1MVswMV18NzkpfDYoMDg3fDE3OHwzNjB8NDIzfDU0NHw5OTcpfDcoNygyMXw0MHw2Nyl8MjU2fDQ3NHw0OTh8NjczKXw4KDM4NXw2NDF8OTA2KXw5KDA0NHwxOTV8MjA0fDQzMHw1NTgpKXw5KDAoKDB8MzN8OTYpMHwzNzh8NzQxKXwxKDY3WzA4XXwyMDB8NDB8ODU1KXwzKDE4OHw0MTZ8NDIxKXw0KDA1NHwyMzJ8ODh8OTQ4KXw1KDA0fDE1OHw4MzF8ODUzKXw2KDE4MXwzNTJ8NTg3KXw3KDE0OXw0NHw2NjB8ODQ1KXw4KDA4NHw0MzN8NDc1fDUwOXw2OTYpfDkoNDQ4fDUyN3w1OTN8OTA4fDk0NCl8MjM5MykpJC8udGVzdChhKSllW2FdPTA7ZWxzZXt2YXIgZj1uZXcgUHJvbWlzZSgoKGMsZik9PmQ9ZVthXT1bYyxmXSkpO2MucHVzaChkWzJdPWYpO3ZhciBiPXQucCt0LnUoYSksXz1uZXcgRXJyb3I7dC5sKGIsKGM9PntpZih0Lm8oZSxhKSYmKDAhPT0oZD1lW2FdKSYmKGVbYV09dm9pZCAwKSxkKSl7dmFyIGY9YyYmKCJsb2FkIj09PWMudHlwZT8ibWlzc2luZyI6Yy50eXBlKSxiPWMmJmMudGFyZ2V0JiZjLnRhcmdldC5zcmM7Xy5tZXNzYWdlPSJMb2FkaW5nIGNodW5rICIrYSsiIGZhaWxlZC5cbigiK2YrIjogIitiKyIpIixfLm5hbWU9IkNodW5rTG9hZEVycm9yIixfLnR5cGU9ZixfLnJlcXVlc3Q9YixkWzFdKF8pfX0pLCJjaHVuay0iK2EsYSl9fSx0LkYuaj1hPT57CmlmKCEodC5vKGUsYSkmJnZvaWQgMCE9PWVbYV18fC9eKDEoMDMoNjZ8ODUpfDEoNCgwOXw2MXw4OSl8MDA4fDIxOHwyNTd8NTM3fDcyNSl8MigwNTF8Mzg1fDQxMnw1Mjd8NTY1fDY2Nil8MygwMzl8NDkyfDY3N3w4MDkpfDQoNigyNXw0MHw1N3w5Nyl8MTkzKXw1KDA5fDM4M3w1MjZ8NjM0KXw2KDM5OXw0MjF8NzZ8NzgpfDcoODZbMTVdfDA4N3w2OTN8NzUxKXw4KDQoMDB8NDJ8NzIpfDE2Mnw2NzQpfDkoNSgxM3w5NXw5OCl8NDQ3fDYzMXw3ODd8ODMzKSl8MigwKFsyOV03MXwwODV8MTN8MTUzfDJ8MzU0fDM3MHw1NjR8NTkwfDk4Nil8MigwNzB8MTQ0fDQwNXw0NjQpfDMoWzM2XTY5fDI1NHwzMXw2MjR8NzIpfDQoMzE2fDQwOHw1ODF8NjAzKXw1KDExfDE0Mnw0ODV8NTU0fDU2Mnw2NDd8Njk4fDgwOXw4OTUpfDYoMTAwfDU5Mnw5ODkpfDcoNSgxM3wxN3w0OSl8KDQ0fDY5fDczKTZ8MDg1fDIxN3wzMzd8NjY1KXw4KDAxN3w5MzZ8OTk1KXw5KDMoMTV8Mjd8NDgpfCgxM3w5NHw5OSkzfDI5Nnw0ODl8NTM2fDcxNCl8MTI0NXwxNTgxKXwzKDAoMDI5fDIwMHwzNzN8NzQ1fDc4OXw5MjJ8OTYwKXwxKDAwMXwyNjJ8NTU3fDgzNyl8MigxNzZ8NDI3fDYzMnw3NDh8ODE2fDg1Nyl8MygxMHwxMjB8MjIxfDIzfDM2OHw1MTV8NTUzfDczNSl8NSgwNzN8MTk4fDM0MnwzOTl8NjMwfDc5NCl8NigxNzN8MjIyfDM1Nnw1MjF8NTQ1fDk4Nil8NyhbNTc4XTY3fDE5fDUxM3w3NDYpfDgoKDAwfDI2fDc4KTJ8NDc5fDg2OCl8OSgwNXwxNnw3ODYpfDQ3NTgpfDQoMCgxNjh8MjIwfDQyfDgzNXw4Njd8OTAyfDkxNCl8MSgyN3w1MDZ8NTg4fDYwOHw4MTF8OTgwKXwyKDAzM3wzMDF8NzIxKXwzKDQoMzN8NDF8ODYpfDMyNXw2NDR8NzkyfDgwOHw4NDF8OTE5fDkzOSl8NCgwMzF8NDYwfDc3fDk0Nil8NSgyNDJ8MzMxfDM2OHw0MTh8NzgzfDk0NSl8NigwMzR8MDU1fDI0NXw1OTF8NjB8NzU2fDkwNyl8NygoMDJ8MjB8NTUpMXwwOTJ8MzE2fDQ1N3w1Nzl8NjMyKXw4KDMxMnw2ODJ8ODY0KXw5KDI5KHw3KXw1KDE4fDM2fDg4KXwxNDl8NDkwfDY5fDk5NykpfDUoMCgwMzV8MjIxfDMxNnwzMjV8NTg4fDYyMnw3NDN8ODAwKXwxKDgoNHw1MHw2fDgwKXwwMTd8MDMwfDE4NHwyMTN8MjU2fDMwOXw1MDh8NjgyKXwyKDA2NXwwOTV8MTc4fDM5Nnw2ODB8ODQyfDkyMHw5NjEpfDMoMjIofDgpfDMyOXw1MjF8NzEzfDkyMyl8NCgwOTN8MzEwfDMzOXw2ODEpfDUoMDExfDI5MHwzMzZ8MzkpfDYoMDN8MTIxfDIxM3wyNTJ8ODkpfDcoMjU0fDMwMHw1MDR8NTZ8NjI2KXw4KDA0M3wwNTF8Mzg0fDkzMyl8OSgzNTB8NDM3fDgzMCkpfDYoMCgwNjJ8MDkwfDcwfDc2OXw4Mil8MSgxOTJ8NDEzfDgyMSl8MigoNjB8NjN8NzkpMHw4MDZ8ODkyKXwzKDAzM3wxMDB8NzIzKXw0KDYofDQzfDc0KXwxMTN8MTk1fDV8NTAzKXw1KDYoMTN8NDN8NzV8OTIpfDUyOHw3fDgzfDg1Nil8Nig0Nyh8Myl8MDV8MjI5fDI3MHw1MjIpfDcoOTJbNDVdfDIxMnwyNDR8NTQzfDY4NXw3ODR8Nzk5KXw4KDU3OXw2ODZ8OTQyfDk2NCl8OSg4KDAzfDA5fDYxKXwxODV8MjA5fDc0N3w3NjYpKXw3KDAoWzY3XTU2fDI1NXwyODB8MzY0fDgxNSl8MSg0KDE0fDM3fDgyKXwoMXw5MHw5OSkxfDE5MHwzNTB8NTI4fDYzKXwyKDI0OXw1MTJ8NjY2fDY4MHw5MDIpfDMoNDI1fDU1MXw4N3w5NjApfDQoNCgyMnw1fDYxfDcxKXwyMzN8MjczfDM4MXw1Nnw2MzZ8ODMwKXw1KDE3MnwyMTd8MzA0fDYwMyl8NigyNzh8MzI5fDY1fDY2NHw5MTIpfDgoNCgwNHwzNHw3MSl8KHw4KTk5fDE4MnwyMzd8MzQxfDYzfDY1Mil8OSg3OVsxNV18MTkxfDI0NHwyN3wzOTh8NDM5fDg5Mil8NzI2NCl8OCgwKDcoMzF8NjF8ODIpfDA0MXw2MzkpfDEoMDAxfDA3MnwxMDd8MjEwfDI0N3w1Mjl8ODE4fDkwMyl8MigyN1swMV18MTZ8NTg2KXwzKDA0MXwyNjF8NDg4fDUyOXw2NzUpfDQoMDh8MjI0fDMwNnwzMzV8OTQ4KXw1KDUxWzAxXXw3OSl8NigwODd8MTc4fDM2MHw0MjN8NTQ0fDk5Nyl8Nyg3KDIxfDQwfDY3KXwyNTZ8NDc0fDQ5OHw2NzMpfDgoMzg1fDY0MXw5MDYpfDkoMDQ0fDE5NXwyMDR8NDMwfDU1OCkpfDkoMCgoMHwzM3w5NikwfDM3OHw3NDEpfDEoNjdbMDhdfDIwMHw0MHw4NTUpfDMoMTg4fDQxNnw0MjEpfDQoMDU0fDIzMnw4OHw5NDgpfDUoMDR8MTU4fDgzMXw4NTMpfDYoMTgxfDM1Mnw1ODcpfDcoMTQ5fDQ0fDY2MHw4NDUpfDgoMDg0fDQzM3w0NzV8NTA5fDY5Nil8OSg0NDh8NTI3fDU5M3w5MDh8OTQ0KXwyMzkzKSkkLy50ZXN0KGEpKSl7ZVthXT1udWxsO3ZhciBjPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImxpbmsiKTtjLmNoYXJzZXQ9InV0Zi04IixjLmNyb3NzT3JpZ2luPSJhbm9ueW1vdXMiLHQubmMmJmMuc2V0QXR0cmlidXRlKCJub25jZSIsdC5uYyksYy5yZWw9InByZWZldGNoIixjLmFzPSJzY3JpcHQiLGMuaHJlZj10LnArdC51KGEpLGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQoYyl9fSx0Lkguaj1hPT57CmlmKCEodC5vKGUsYSkmJnZvaWQgMCE9PWVbYV18fC9eKDEoMDMoNjZ8ODUpfDEoNCgwOXw2MXw4OSl8MDA4fDIxOHwyNTd8NTM3fDcyNSl8MigwNTF8Mzg1fDQxMnw1Mjd8NTY1fDY2Nil8MygwMzl8NDkyfDY3N3w4MDkpfDQoNigyNXw0MHw1N3w5Nyl8MTkzKXw1KDA5fDM4M3w1MjZ8NjM0KXw2KDM5OXw0MjF8NzZ8NzgpfDcoODZbMTVdfDA4N3w2OTN8NzUxKXw4KDQoMDB8NDJ8NzIpfDE2Mnw2NzQpfDkoNSgxM3w5NXw5OCl8NDQ3fDYzMXw3ODd8ODMzKSl8MigwKFsyOV03MXwwODV8MTN8MTUzfDJ8MzU0fDM3MHw1NjR8NTkwfDk4Nil8MigwNzB8MTQ0fDQwNXw0NjQpfDMoWzM2XTY5fDI1NHwzMXw2MjR8NzIpfDQoMzE2fDQwOHw1ODF8NjAzKXw1KDExfDE0Mnw0ODV8NTU0fDU2Mnw2NDd8Njk4fDgwOXw4OTUpfDYoMTAwfDU5Mnw5ODkpfDcoNSgxM3wxN3w0OSl8KDQ0fDY5fDczKTZ8MDg1fDIxN3wzMzd8NjY1KXw4KDAxN3w5MzZ8OTk1KXw5KDMoMTV8Mjd8NDgpfCgxM3w5NHw5OSkzfDI5Nnw0ODl8NTM2fDcxNCl8MTI0NXwxNTgxKXwzKDAoMDI5fDIwMHwzNzN8NzQ1fDc4OXw5MjJ8OTYwKXwxKDAwMXwyNjJ8NTU3fDgzNyl8MigxNzZ8NDI3fDYzMnw3NDh8ODE2fDg1Nyl8MygxMHwxMjB8MjIxfDIzfDM2OHw1MTV8NTUzfDczNSl8NSgwNzN8MTk4fDM0MnwzOTl8NjMwfDc5NCl8NigxNzN8MjIyfDM1Nnw1MjF8NTQ1fDk4Nil8NyhbNTc4XTY3fDE5fDUxM3w3NDYpfDgoKDAwfDI2fDc4KTJ8NDc5fDg2OCl8OSgwNXwxNnw3ODYpfDQ3NTgpfDQoMCgxNjh8MjIwfDQyfDgzNXw4Njd8OTAyfDkxNCl8MSgyN3w1MDZ8NTg4fDYwOHw4MTF8OTgwKXwyKDAzM3wzMDF8NzIxKXwzKDQoMzN8NDF8ODYpfDMyNXw2NDR8NzkyfDgwOHw4NDF8OTE5fDkzOSl8NCgwMzF8NDYwfDc3fDk0Nil8NSgyNDJ8MzMxfDM2OHw0MTh8NzgzfDk0NSl8NigwMzR8MDU1fDI0NXw1OTF8NjB8NzU2fDkwNyl8NygoMDJ8MjB8NTUpMXwwOTJ8MzE2fDQ1N3w1Nzl8NjMyKXw4KDMxMnw2ODJ8ODY0KXw5KDI5KHw3KXw1KDE4fDM2fDg4KXwxNDl8NDkwfDY5fDk5NykpfDUoMCgwMzV8MjIxfDMxNnwzMjV8NTg4fDYyMnw3NDN8ODAwKXwxKDgoNHw1MHw2fDgwKXwwMTd8MDMwfDE4NHwyMTN8MjU2fDMwOXw1MDh8NjgyKXwyKDA2NXwwOTV8MTc4fDM5Nnw2ODB8ODQyfDkyMHw5NjEpfDMoMjIofDgpfDMyOXw1MjF8NzEzfDkyMyl8NCgwOTN8MzEwfDMzOXw2ODEpfDUoMDExfDI5MHwzMzZ8MzkpfDYoMDN8MTIxfDIxM3wyNTJ8ODkpfDcoMjU0fDMwMHw1MDR8NTZ8NjI2KXw4KDA0M3wwNTF8Mzg0fDkzMyl8OSgzNTB8NDM3fDgzMCkpfDYoMCgwNjJ8MDkwfDcwfDc2OXw4Mil8MSgxOTJ8NDEzfDgyMSl8MigoNjB8NjN8NzkpMHw4MDZ8ODkyKXwzKDAzM3wxMDB8NzIzKXw0KDYofDQzfDc0KXwxMTN8MTk1fDV8NTAzKXw1KDYoMTN8NDN8NzV8OTIpfDUyOHw3fDgzfDg1Nil8Nig0Nyh8Myl8MDV8MjI5fDI3MHw1MjIpfDcoOTJbNDVdfDIxMnwyNDR8NTQzfDY4NXw3ODR8Nzk5KXw4KDU3OXw2ODZ8OTQyfDk2NCl8OSg4KDAzfDA5fDYxKXwxODV8MjA5fDc0N3w3NjYpKXw3KDAoWzY3XTU2fDI1NXwyODB8MzY0fDgxNSl8MSg0KDE0fDM3fDgyKXwoMXw5MHw5OSkxfDE5MHwzNTB8NTI4fDYzKXwyKDI0OXw1MTJ8NjY2fDY4MHw5MDIpfDMoNDI1fDU1MXw4N3w5NjApfDQoNCgyMnw1fDYxfDcxKXwyMzN8MjczfDM4MXw1Nnw2MzZ8ODMwKXw1KDE3MnwyMTd8MzA0fDYwMyl8NigyNzh8MzI5fDY1fDY2NHw5MTIpfDgoNCgwNHwzNHw3MSl8KHw4KTk5fDE4MnwyMzd8MzQxfDYzfDY1Mil8OSg3OVsxNV18MTkxfDI0NHwyN3wzOTh8NDM5fDg5Mil8NzI2NCl8OCgwKDcoMzF8NjF8ODIpfDA0MXw2MzkpfDEoMDAxfDA3MnwxMDd8MjEwfDI0N3w1Mjl8ODE4fDkwMyl8MigyN1swMV18MTZ8NTg2KXwzKDA0MXwyNjF8NDg4fDUyOXw2NzUpfDQoMDh8MjI0fDMwNnwzMzV8OTQ4KXw1KDUxWzAxXXw3OSl8NigwODd8MTc4fDM2MHw0MjN8NTQ0fDk5Nyl8Nyg3KDIxfDQwfDY3KXwyNTZ8NDc0fDQ5OHw2NzMpfDgoMzg1fDY0MXw5MDYpfDkoMDQ0fDE5NXwyMDR8NDMwfDU1OCkpfDkoMCgoMHwzM3w5NikwfDM3OHw3NDEpfDEoNjdbMDhdfDIwMHw0MHw4NTUpfDMoMTg4fDQxNnw0MjEpfDQoMDU0fDIzMnw4OHw5NDgpfDUoMDR8MTU4fDgzMXw4NTMpfDYoMTgxfDM1Mnw1ODcpfDcoMTQ5fDQ0fDY2MHw4NDUpfDgoMDg0fDQzM3w0NzV8NTA5fDY5Nil8OSg0NDh8NTI3fDU5M3w5MDh8OTQ0KXwyMzkzKSkkLy50ZXN0KGEpKSl7ZVthXT1udWxsO3ZhciBjPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImxpbmsiKTtjLmNoYXJzZXQ9InV0Zi04Iix0Lm5jJiZjLnNldEF0dHJpYnV0ZSgibm9uY2UiLHQubmMpLGMucmVsPSJwcmVsb2FkIixjLmFzPSJzY3JpcHQiLGMuaHJlZj10LnArdC51KGEpLDAhPT1jLmhyZWYuaW5kZXhPZih3aW5kb3cubG9jYXRpb24ub3JpZ2luKyIvIikmJihjLmNyb3NzT3JpZ2luPSJhbm9ueW1vdXMiKSxkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKGMpfX0sdC5PLmo9YT0+MD09PWVbYV07dmFyIGE9KGEsYyk9Pnt2YXIgZCxmLFtiLF8sb109YyxzPTA7aWYoYi5zb21lKChhPT4wIT09ZVthXSkpKXtmb3IoZCBpbiBfKXQubyhfLGQpJiYodC5tW2RdPV9bZF0pO2lmKG8pdmFyIGk9byh0KX1mb3IoYSYmYShjKTtzPGIubGVuZ3RoO3MrKylmPWJbc10sdC5vKGUsZikmJmVbZl0mJmVbZl1bMF0oKSxlW2ZdPTA7cmV0dXJuIHQuTyhpKX0sYz1zZWxmLndlYnBhY2tDaHVua3RyYWRpbmd2aWV3PXNlbGYud2VicGFja0NodW5rdHJhZGluZ3ZpZXd8fFtdO2MuZm9yRWFjaChhLmJpbmQobnVsbCwwKSksYy5wdXNoPWEuYmluZChudWxsLGMucHVzaC5iaW5kKGMpKX0pKCksdC5wPXQuZyYmdC5nLldFQlBBQ0tfUFVCTElDX1BBVEh8fHQucCxiPXsxNTE3MzpbODQ2OTMsODg5OTcsMzA2OTksNDYyMTcsNjY5MzMsNzEzMTldLDU2MzgyOls4NDY5Myw4ODk5NywzMDY5OSw0NjIxNyw2NjkzMyw3MTMxOV0sNzA1MzI6Wzg0NjkzLDg4OTk3LDMwNjk5LDQ2MjE3LDY2OTMzLDcxMzE5XSw5MjIyOTpbODQ2OTMsODg5OTcsMzA2OTksNDYyMTcsNjY5MzMsNzEzMTldLAo5Mjk2ODpbODQ2OTMsODg5OTcsMzA2OTksNDYyMTcsNjY5MzMsNzEzMTldfSx0LmYucHJlZmV0Y2g9KGUsYSk9PlByb21pc2UuYWxsKGEpLnRoZW4oKCgpPT57dmFyIGE9YltlXTtBcnJheS5pc0FycmF5KGEpJiZhLm1hcCh0LkUpfSkpLCgoKT0+e3ZhciBlPXsxOTIxMzpbNTY4MDEsMTMwMzksMTY5OV0sNzE1NjU6WzU2ODAxLDEzMDM5LDE2OTldLDg2NDEzOls1NjgwMSwxMzAzOSwxNjk5XX07dC5mLnByZWxvYWQ9YT0+e3ZhciBjPWVbYV07QXJyYXkuaXNBcnJheShjKSYmYy5tYXAodC5HKX19KSgpfSkoKTs="}},"time_used":4,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":4,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/en.52882.2898e638a68180ed6df4.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:13.815Z","timestamp":1785148033815,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/en.52882.2898e638a68180ed6df4.js HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:13 GMT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding, Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\netag: W/\"6a02f0b2-747\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Tue, 12 May 2026 09:19:46 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.52\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 05/12/2026 10:19:41\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: b55666fe2974c7f7ee2dbb82416d57f0\r\ncdn-cache: HIT\r\ncontent-encoding: br\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":1863,"size_decoded":1690,"mime_type":"application/javascript; charset=utf-8","magic":"ASCII text, with very long lines (1863), with no line terminators","md5":"b54a95821effe8d59779b9fc14228d18","sha1":"d2cbd7229e17a9b12d18689129ee09b6de60c175","sha256":"53c37f95be948df4fe80d94d0776fd26af6bf0f13d683652b1b74990e6326179","sha512":"6d4050b13aa9f106f683468ed7c071d0c67770f818a35c0245fc7121b9e6e2f75868f44a9b53f7bb110810e921f039ad158392dc1e157e8972db02bb87797d39","ssdeep":"","tlshash":"1c31ec5be30095ea2f22d646374dddc03af431a111f7d0c937860e689267d85d05dbbc","first_seen":"2026-05-05T12:17:23.709286Z","last_seen":"2026-07-27T12:53:06.143017Z","times_seen":535,"resource_available":true,"data":"KHNlbGYud2VicGFja0NodW5rdHJhZGluZ3ZpZXc9c2VsZi53ZWJwYWNrQ2h1bmt0cmFkaW5ndmlld3x8W10pLnB1c2goW1s1Mjg4Ml0sezYzNTkyMyhlKXtlLmV4cG9ydHM9WyJBY2NvdW50IGlzIGZyb3plbiJdfSw5NzU4MChlKXtlLmV4cG9ydHM9WyJDaGFuZ2Ugc3ltYm9sIl19LDQ4NzIwMShlKXtlLmV4cG9ydHM9WyJFcnJvciJdfSw1MjMyNzkoZSl7ZS5leHBvcnRzPVsiSG9saWRheSBhbGVydCwgdHJhZGVycyJdfSwxOTgwKGUpe2UuZXhwb3J0cz1bIk5vIGRhdGEgaGVyZSJdfSw4MjQzNDAoZSl7ZS5leHBvcnRzPVsiU3dpdGNoIHRvIHtyZXNvbHV0aW9ufSBpbnRlcnZhbCJdfSwxMzc4MDAoZSl7ZS5leHBvcnRzPVsiUHJpY2UgY2hhcnQgaXMgb24gaXRzIHdheSJdfSw3MzA3NihlKXtlLmV4cG9ydHM9WyJUaGlzIHN5bWJvbCBkb2Vzbid0IGV4aXN0Il19LDQwMzY3MihlKXtlLmV4cG9ydHM9WyJUaGlzIHN5bWJvbCBoYXMganVzdCBsaXN0ZWQuIFN0YXkgdHVuZWQsIGl0cyBkYXRhIHdpbGwgYXBwZWFyIGhlcmUgc29vbi4iXX0sODI0MDI3KGUpe2UuZXhwb3J0cz1bIkxlYXJuIG1vcmUiXX0sOTY5MDkoZSl7ZS5leHBvcnRzPVsiSG9wZSwgaXQnbGwgYXBwZWFyIG9uIHRoZSBjaGFydCBzb29uLiJdfSw3Nzg0NDgoZSl7ZS5leHBvcnRzPVsiSW50ZXJ2YWwgaXMgbm90IHN1cHBvcnRlZCJdfSw1NDE1NzAoZSl7ZS5leHBvcnRzPVsiSW50ZXJ2YWxzIGxlc3MgdGhhbiB7cmVzb2x1dGlvbn0gYXJlIG5vdCBzdXBwb3J0ZWQgZm9yIHRoaXMgc3ltYm9sLiBQbGVhc2UgY2hhbmdlIHRoZSBpbnRlcnZhbCB0byBhbnkgYXZhaWxhYmxlIG9uZS4iXX0sODYwMzg5KGUpe2UuZXhwb3J0cz1bIk9ubHkge2ludGVydmFsc30gaW50ZXJ2YWxzIGFyZSBhdmFpbGFibGUgZm9yIHRoaXMgc3ltYm9sIl19LDM3MTc3OShlKXtlLmV4cG9ydHM9WyJPdXIgc2Nhbm5lcnMgcGlja2VkIHVwIGFuIFVuaWRlbnRpZmllZCBGZXN0aXZlIE9iamVjdCBob3ZlcmluZyBvdmVyIHlvdXIgY2hhcnQuIFByb2NlZWQgd2l0aCBjaGVlci4iXX0sODMwMzg1KGUpe2UuZXhwb3J0cz1bIlN3aXRjaCB0byBhIHtyZXNvbHV0aW9ufSJdfSwyNTU3NjMoZSl7ZS5leHBvcnRzPVsiUGljayBhbm90aGVyIHR5cGUgb2YgaW50ZXJ2YWwgZm9yIHlvdXIgYW5hbHlzaXMuIl19LDQ2NTMxMyhlKXtlLmV4cG9ydHM9WyJQaWNrIGFub3RoZXIgdGltZSBpbnRlcnZhbCBmb3IgeW91ciBhbmFseXNpcy4iXX0sNTk1NTcwKGUpe2UuZXhwb3J0cz1bIlJlZHVjZSB0aGUgYm94IHNpemUgb3IgY2hhbmdlIHRoZSBtZXRob2QgdXNlZCB0byBzcGVjaWZ5IHRoZSBib3ggc2l6ZSBpbiBTZXR0aW5ncyA+IFN5bWJvbC4iXX0sNjQ2NjAxKGUpe2UuZXhwb3J0cz1bIldlIG5vdGljZWQgc29tZSBzdXNwaWNpb3VzIGFjdGl2aXR5IGZyb20geW91ciBJUCBhZGRyZXNzLCBzbyB3ZSd2ZSBoYWQgdG8gc3VzcGVuZCBpdC4gVG8gcmVzb2x2ZSB0aGlzLCBwbGVhc2Ugc2lnbiBpbnRvIHlvdXIgYWNjb3VudC4iXX0sNTkyMDE0KGUpe2UuZXhwb3J0cz1bIldlJ3ZlIG5vdGljZWQgdW51c3VhbCBhY3Rpdml0eSBvbiB5b3VyIGFjY291bnQgYW5kIGhhdmUgcmVzdHJpY3RlZCBhY2Nlc3MuIl19LDcxNjMwKGUpe2UuZXhwb3J0cz1bIlRoZSBib3ggc2l6ZSBmb3IgdGhlIHN5bWJvbCdzIHByaWNlIGFtcGxpdHVkZSBpcyB0b28gaGlnaCJdfSw1MjkzOTYoZSl7ZS5leHBvcnRzPVsiVGljay1iYXNlZCBpbnRlcnZhbHMgYXJlIG5vdCBhdmFpbGFibGUgZm9yIHRoaXMgc3ltYm9sIl19LDI4MzU2MihlKXtlLmV4cG9ydHM9WyJUcnkgcGlja2luZyBhbm90aGVyIG9uZSBmb3IgeW91ciBhbmFseXNpcywgYW5kIHlvdSdsbCBzZWUgdGhlIGRhdGEgaGVyZS4iXX19XSk7"}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/67799.e2495691cea17b3a81c2.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:13.947Z","timestamp":1785148033947,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/67799.e2495691cea17b3a81c2.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:13 GMT\r\ncontent-type: text/css; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a58ab11-1dd4\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Thu, 16 Jul 2026 09:57:37 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/16/2026 11:03:21\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 9a19b298f2aef7c1d896f1a42ea881aa\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":7636,"size_decoded":2594,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with very long lines (7636), with no line terminators","md5":"6098916a464733489420c06d4d157550","sha1":"3d922ecff9adfcac8b445b191abbbc96b8187051","sha256":"caeccc97bab3aa41bfb78157071643ae404f0ea6519d21a900a8d95d046e1e85","sha512":"da35876591ab0f26295aaa719b5305a8d64e2aeae102349f2e39f0db10964fa882cf4f4dcb4da145ab36fe83e84994e75dd61286e48abf8b54556caab7355962","ssdeep":"192:2QoSuITjVqGw07dUQdX+D3TQ3oimJmp9+9IianQm:cvCmJiTL","tlshash":"c9f124c621c49f7a7ce345afa674a2ec6348dd38f93309d7b621ae6480c16b5027492e","first_seen":"2026-07-17T14:15:58.312947Z","last_seen":"2026-07-27T12:51:16.028371Z","times_seen":157,"resource_available":false,"data":"LmJhY2tncm91bmQtTlFvbTVJOFp7YWxpZ24taXRlbXM6c3RyZXRjaDtiYWNrZ3JvdW5kOnZhcigtLXVpLWxpYi1wcml2YXRlLWxpc3RJdGVtLWJhY2tncm91bmQtY29sb3IpO2JvcmRlci1yYWRpdXM6NnB4O2JveC1zaXppbmc6Ym9yZGVyLWJveDtkaXNwbGF5OmZsZXg7cG9zaXRpb246cmVsYXRpdmU7dGV4dC1hbGlnbjpzdGFydDt3aWR0aDoxMDAlO3otaW5kZXg6MTstLXVpLWxpYi1wcml2YXRlLWxpc3RJdGVtLWlzLWhvdmVyZWQ6MH1AbWVkaWEgKGFueS1ob3Zlcjpob3Zlcil7LmJhY2tncm91bmQtTlFvbTVJOFo6aG92ZXJ7LS11aS1saWItcHJpdmF0ZS1saXN0SXRlbS1pcy1ob3ZlcmVkOjF9fS5tZWRpdW0tTlFvbTVJOFp7bWluLWhlaWdodDpjYWxjKHZhcigtLXVpLWxpYi1pbi1saXN0SXRlbS1zaXplSXNEZXNrdG9wLCAxKSozMnB4ICsgdmFyKC0tdWktbGliLWluLWxpc3RJdGVtLXNpemVJc01vYmlsZSwgMCkqNDBweCl9LmxhcmdlLU5Rb201SThae21pbi1oZWlnaHQ6NDBweH0uZGlzYWJsZWQtTlFvbTVJOFp7b3BhY2l0eTouNX0uYmFja2dyb3VuZC1OUW9tNUk4WnstLXVpLWxpYi1wcml2YXRlLWxpc3RJdGVtLWJhY2tncm91bmQtY29sb3I6dmFyKC0tdWktbGliLWluLWxpc3RJdGVtLWJhY2tncm91bmRDb2xvcix2YXIoLS1jb2xvci1jb250YWluZXItZmlsbC10ZXJ0aWFyeS1pbnZlcnNlKSl9Lm9wZW4tTlFvbTVJOFp7LS11aS1saWItcHJpdmF0ZS1saXN0SXRlbS1iYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXVpLWxpYi1pbi1saXN0SXRlbS1iYWNrZ3JvdW5kQ29sb3JIb3Zlcix2YXIoLS1jb2xvci1jb250YWluZXItZmlsbC1wcmltYXJ5LW5ldXRyYWwtZXh0cmEtbGlnaHQpKX1AbWVkaWEgKGFueS1ob3Zlcjpob3Zlcil7LmJhY2tncm91bmQtTlFvbTVJOFo6bm90KC5kaXNhYmxlZC1OUW9tNUk4Wik6aG92ZXJ7LS11aS1saWItcHJpdmF0ZS1saXN0SXRlbS1iYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXVpLWxpYi1pbi1saXN0SXRlbS1iYWNrZ3JvdW5kQ29sb3JIb3Zlcix2YXIoLS1jb2xvci1jb250YWluZXItZmlsbC1wcmltYXJ5LW5ldXRyYWwtZXh0cmEtbGlnaHQpKX19LnNlbGVjdGVkLU5Rb201SThaLC5zZWxlY3RlZC1OUW9tNUk4Wi5vcGVuLU5Rb201SThaey0tdWktbGliLXByaXZhdGUtbGlzdEl0ZW0tYmFja2dyb3VuZC1jb2xvcjp2YXIoLS11aS1saWItaW4tbGlzdEl0ZW0tYmFja2dyb3VuZENvbG9yU2VsZWN0ZWQsdmFyKC0tY29sb3ItY29udGFpbmVyLWZpbGwtcHJpbWFyeS1uZXV0cmFsLWV4dHJhLWJvbGQpKX1AbWVkaWEgKGFueS1ob3Zlcjpob3Zlcil7LnNlbGVjdGVkLU5Rb201SThaOm5vdCguZGlzYWJsZWQtTlFvbTVJOFopOmhvdmVyey0tdWktbGliLXByaXZhdGUtbGlzdEl0ZW0tYmFja2dyb3VuZC1jb2xvcjp2YXIoLS11aS1saWItaW4tbGlzdEl0ZW0tYmFja2dyb3VuZENvbG9yU2VsZWN0ZWQsdmFyKC0tY29sb3ItY29udGFpbmVyLWZpbGwtcHJpbWFyeS1uZXV0cmFsLWV4dHJhLWJvbGQpKX19LmJhY2tncm91bmQtTlFvbTVJOFo6bm90KC5kaXNhYmxlZC1OUW9tNUk4Wik6bm90KC5zZWxlY3RlZC1OUW9tNUk4Wik6YWN0aXZley0tdWktbGliLXByaXZhdGUtbGlzdEl0ZW0tYmFja2dyb3VuZC1jb2xvcjp2YXIoLS11aS1saWItaW4tbGlzdEl0ZW0tYmFja2dyb3VuZENvbG9yQWN0aXZlLHZhcigtLWNvbG9yLWNvbnRhaW5lci1maWxsLXByaW1hcnktbmV1dHJhbC1saWdodCkpfS5uZXV0cmFsLU5Rb201SThaLmJhY2tncm91bmQtTlFvbTVJOFp7LS11aS1saWItcHJpdmF0ZS1saXN0SXRlbS1wcmltYXJ5LWNvbG9yOnZhcigtLXVpLWxpYi1pbi1saXN0SXRlbS10ZXh0Q29sb3IsdmFyKC0tY29sb3ItY29udGVudC1wcmltYXJ5LW5ldXRyYWwtYm9sZCkpOy0tdWktbGliLXByaXZhdGUtbGlzdEl0ZW0tc2Vjb25kYXJ5LWNvbG9yOnZhcigtLXVpLWxpYi1pbi1saXN0SXRlbS1zZWNvbmRhcnlUZXh0Q29sb3IsdmFyKC0tY29sb3ItY29udGVudC1wcmltYXJ5LW5ldXRyYWwpKX0ubmV1dHJhbC1OUW9tNUk4Wi5zZWxlY3RlZC1OUW9tNUk4WnstLXVpLWxpYi1wcml2YXRlLWxpc3RJdGVtLXByaW1hcnktY29sb3I6dmFyKC0tdWktbGliLWluLWxpc3RJdGVtLXRleHRDb2xvclNlbGVjdGVkLHZhcigtLWNvbG9yLWNvbnRlbnQtc2Vjb25kYXJ5LWludmVyc2UpKTstLXVpLWxpYi1wcml2YXRlLWxpc3RJdGVtLXNlY29uZGFyeS1jb2xvcjp2YXIoLS11aS1saWItaW4tbGlzdEl0ZW0tc2Vjb25kYXJ5VGV4dENvbG9yU2VsZWN0ZWQsdmFyKC0tdWktbGliLWluLWxpc3RJdGVtLXRleHRDb2xvclNlbGVjdGVkLHZhcigtLWNvbG9yLWNvbnRlbnQtc2Vjb25kYXJ5LWludmVyc2UpKSl9LmRhbmdlci1OUW9tNUk4Wi5iYWNrZ3JvdW5kLU5Rb201SThaLC5kYW5nZXItTlFvbTVJOFouc2VsZWN0ZWQtTlFvbTVJOFp7LS11aS1saWItcHJpdmF0ZS1saXN0SXRlbS1wcmltYXJ5LWNvbG9yOnZhcigtLWNvbG9yLWNvbnRlbnQtcHJpbWFyeS1kYW5nZXIpOy0tdWktbGliLXByaXZhdGUtbGlzdEl0ZW0tc2Vjb25kYXJ5LWNvbG9yOnZhcigtLWNvbG9yLWNvbnRlbnQtcHJpbWFyeS1kYW5nZXIpfUBtZWRpYSAoYW55LWhvdmVyOmhvdmVyKXsubmV1dHJhbC1OUW9tNUk4Wi5iYWNrZ3JvdW5kLU5Rb201SThaOm5vdCguZGlzYWJsZWQtTlFvbTVJOFopOm5vdCguc2VsZWN0ZWQtTlFvbTVJOFopOmhvdmVyey0tdWktbGliLXByaXZhdGUtbGlzdEl0ZW0tcHJpbWFyeS1jb2xvcjp2YXIoLS11aS1saWItaW4tbGlzdEl0ZW0tdGV4dENvbG9ySG92ZXIsdmFyKC0tdWktbGliLWluLWxpc3RJdGVtLXRleHRDb2xvcix2YXIoLS1jb2xvci1jb250ZW50LXByaW1hcnktbmV1dHJhbC1ib2xkKSkpfX0uYnV0dG9uLVhOVWl2VG91e2FsaWduLWl0ZW1zOmNlbnRlcjstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTthcHBlYXJhbmNlOm5vbmU7YmFja2dyb3VuZDpub25lO2JvcmRlcjpub25lO2NvbG9yOmluaGVyaXQ7Y29sb3I6dmFyKC0tdWktbGliLXByaXZhdGUtbGlzdEl0ZW0tcHJpbWFyeS1jb2xvcik7Y3Vyc29yOmRlZmF1bHQ7ZGlzcGxheTpmbGV4O2ZsZXg6MTtmb250LWZhbWlseTppbmhlcml0O21pbi13aWR0aDowO3BhZGRpbmc6MDtwYWRkaW5nLWJsb2NrOmNhbGModmFyKC0tdWktbGliLWluLWxpc3RJdGVtLXNpemVJc0Rlc2t0b3AsIDEpKjJweCArIHZhcigtLXVpLWxpYi1pbi1saXN0SXRlbS1zaXplSXNNb2JpbGUsIDApKjZweCkgY2FsYyh2YXIoLS11aS1saWItaW4tbGlzdEl0ZW0tc2l6ZUlzRGVza3RvcCwgMSkqMnB4ICsgdmFyKC0tdWktbGliLWluLWxpc3RJdGVtLXNpemVJc01vYmlsZSwgMCkqNnB4KTtwYWRkaW5nLWlubGluZTpjYWxjKHZhcigtLXVpLWxpYi1pbi1saXN0SXRlbS1zaXplSXNEZXNrdG9wLCAxKSo0cHggKyB2YXIoLS11aS1saWItaW4tbGlzdEl0ZW0tc2l6ZUlzTW9iaWxlLCAwKSoxMnB4KSBjYWxjKHZhcigtLXVpLWxpYi1pbi1saXN0SXRlbS1zaXplSXNEZXNrdG9wLCAxKSo0cHggKyB2YXIoLS11aS1saWItaW4tbGlzdEl0ZW0tc2l6ZUlzTW9iaWxlLCAwKSoxMnB4KTt0ZXh0LWFsaWduOnN0YXJ0Oy13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTt1c2VyLXNlbGVjdDpub25lfS5idXR0b24tWE5VaXZUb3U6YWZ0ZXJ7aGVpZ2h0OmNhbGMoMTAwJSArIDhweCk7aW5zZXQtaW5saW5lLXN0YXJ0Oi00cHg7dG9wOi00cHg7d2lkdGg6Y2FsYygxMDAlICsgOHB4KX0uYnV0dG9uLVhOVWl2VG91OmZvY3VzOmFmdGVye2Rpc3BsYXk6YmxvY2t9LmJ1dHRvbi1YTlVpdlRvdTpmb2N1cy12aXNpYmxlOmFmdGVye2Rpc3BsYXk6YmxvY2t9LmJ1dHRvbi1YTlVpdlRvdTpmb2N1czpub3QoOmZvY3VzLXZpc2libGUpOmFmdGVye2Rpc3BsYXk6bm9uZX0uYnV0dG9uLVhOVWl2VG91OmFmdGVye2JvcmRlci1jb2xvcjp2YXIoLS1jb2xvci1mb2N1cy1vdXRsaW5lLWNvbG9yLWJsdWUpO2JvcmRlci1yYWRpdXM6NnB4fS5idXR0b24tWE5VaXZUb3V7b3V0bGluZTpub25lO292ZXJmbG93OnZpc2libGU7cG9zaXRpb246cmVsYXRpdmV9LmJ1dHRvbi1YTlVpdlRvdTpmb2N1c3tvdXRsaW5lOm5vbmV9LmJ1dHRvbi1YTlVpdlRvdTpmb2N1cy12aXNpYmxle291dGxpbmU6bm9uZX0uYnV0dG9uLVhOVWl2VG91OmFmdGVye2hlaWdodDoxMDAlO2luc2V0LWlubGluZS1zdGFydDowO3RvcDowO3dpZHRoOjEwMCV9LmJ1dHRvbi1YTlVpdlRvdTphZnRlciwuYnV0dG9uLVhOVWl2VG91OmJlZm9yZXtib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLXdpZHRoOjJweDtib3gtc2l6aW5nOmJvcmRlci1ib3g7Y29udGVudDoiIjtkaXNwbGF5Om5vbmU7cG9pbnRlci1ldmVudHM6bm9uZTtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjF9LmJ1dHRvbi1YTlVpdlRvdTpiZWZvcmV7Ym9yZGVyLWNvbG9yOnZhcigtLXVpLWxpYi1pbi1saXN0SXRlbS1iYWNrZ3JvdW5kQ29sb3IsdmFyKC0tY29sb3ItY29udGFpbmVyLWZpbGwtdGVydGlhcnktaW52ZXJzZSkpO2JvcmRlci1yYWRpdXM6NHB4O2hlaWdodDpjYWxjKDEwMCUgLSA0cHgpO2luc2V0LWlubGluZS1zdGFydDoycHg7dG9wOjJweDt3aWR0aDpjYWxjKDEwMCUgLSA0cHgpfS5idXR0b24tWE5VaXZUb3U6Zm9jdXM6YmVmb3Jle2Rpc3BsYXk6YmxvY2t9LmJ1dHRvbi1YTlVpdlRvdTpmb2N1cy12aXNpYmxlOmJlZm9yZXtkaXNwbGF5OmJsb2NrfS5idXR0b24tWE5VaXZUb3U6Zm9jdXM6bm90KDpmb2N1cy12aXNpYmxlKTpiZWZvcmV7ZGlzcGxheTpub25lfS5idXR0b24tWE5VaXZUb3U6Zm9jdXN7LS11aS1saWItcHJpdmF0ZS1saXN0SXRlbS1pcy1mb2N1c2VkOjF9LmJ1dHRvbi1YTlVpdlRvdTpmb2N1cy12aXNpYmxley0tdWktbGliLXByaXZhdGUtbGlzdEl0ZW0taXMtZm9jdXNlZC12aXNpYmxlOjF9YS5idXR0b24tWE5VaXZUb3V7Y3Vyc29yOnBvaW50ZXJ9LmhvdGtleS1YYzZTaHBDcXtjb2xvcjp2YXIoLS11aS1saWItaW4tbGlzdEl0ZW0taG90a2V5VGV4dENvbG9yLHZhcigtLWNvbG9yLWNvbnRlbnQtcHJpbWFyeS1uZXV0cmFsKSl9LmhvdGtleS1YYzZTaHBDcTpub3QoOmxhc3QtY2hpbGQpe21hcmdpbi1pbmxpbmUtZW5kOjRweH0ucmlnaHQtQ0dkakthOVl7YWxpZ24tc2VsZjpzdHJldGNoO2NvbG9yOnZhcigtLXVpLWxpYi1wcml2YXRlLWxpc3RJdGVtLXNlY29uZGFyeS1jb2xvcik7cG9zaXRpb246cmVsYXRpdmV9LnJpZ2h0LUNHZGpLYTlZOmhhcyhbZGF0YS1pcy1wb3BvdmVyLWNvbnRleHQtYWN0aW9uXSl7bWFyZ2luLWlubGluZS1lbmQ6LTJweH0uY2hpbGQtQ0dkakthOVl7YWxpZ24taXRlbXM6Y2VudGVyO2JveC1zaXppbmc6Ym9yZGVyLWJveDtkaXNwbGF5OmZsZXg7Zm9udC1mYW1pbHk6LWFwcGxlLXN5c3RlbSxCbGlua01hY1N5c3RlbUZvbnQsVHJlYnVjaGV0IE1TLFJvYm90byxVYnVudHUsc2Fucy1zZXJpZjtmb250LWZlYXR1cmUtc2V0dGluZ3M6InRudW0iIG9uLCJsbnVtIiBvbjtmb250LXN0eWxlOm5vcm1hbDtnYXA6NHB4O2hlaWdodDoyOHB4O3BhZGRpbmctYmxvY2s6M3B4IDNweDtwYWRkaW5nLWlubGluZToyNHB4IDRweDtwb3NpdGlvbjpyZWxhdGl2ZTt0b3A6Y2FsYyg1MCUqdmFyKC0tdWktbGliLWluLWxpc3RJdGVtLXNpemVJc01vYmlsZSwgMCkpO3RyYW5zZm9ybTp0cmFuc2xhdGVZKGNhbGMoLTUwJSp2YXIoLS11aS1saWItaW4tbGlzdEl0ZW0tc2l6ZUlzTW9iaWxlLCAwKSkpOy0tdWktbGliLXR5cG9ncmFwaHktZm9udC1zaXplOjEycHg7Zm9udC1zaXplOnZhcigtLXVpLWxpYi10eXBvZ3JhcGh5LWZvbnQtc2l6ZSk7Zm9udC13ZWlnaHQ6NDAwOy0tdWktbGliLXR5cG9ncmFwaHktbGluZS1oZWlnaHQ6MTZweDtsaW5lLWhlaWdodDp2YXIoLS11aS1saWItdHlwb2dyYXBoeS1saW5lLWhlaWdodCl9LmVsbGlwc2lzLURhelI4NVZBe292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3doaXRlLXNwYWNlOm5vd3JhcH0ud2l0aEdhcHMtRGF6Ujg1VkF7YWxpZ24taXRlbXM6Y2VudGVyO2Rpc3BsYXk6ZmxleDtnYXA6NnB4fS5taWRkbGUtRnR3d1JyN3V7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtnYXA6MnB4O21pbi13aWR0aDowO3BhZGRpbmctaW5saW5lLXN0YXJ0OjRweH0uaGFzTm9FbmRTbG90LUZ0d3dScjd1e3BhZGRpbmctaW5saW5lLWVuZDo0cHh9LnRpdGxlLUZ0d3dScjd1ey0tdWktbGliLXR5cG9ncmFwaHktZm9udC1zaXplOjE0cHg7LS11aS1saWItdHlwb2dyYXBoeS1saW5lLWhlaWdodDoxOHB4Oy0tdWktbGliLXR5cG9ncmFwaHktZm9udC1zaXplOmNhbGModmFyKC0tdWktbGliLWluLWxpc3RJdGVtLXNpemVJc0Rlc2t0b3AsIDEpKjE0cHggKyB2YXIoLS11aS1saWItaW4tbGlzdEl0ZW0tc2l6ZUlzTW9iaWxlLCAwKSoxNnB4KTstLXVpLWxpYi10eXBvZ3JhcGh5LWxpbmUtaGVpZ2h0OmNhbGModmFyKC0tdWktbGliLWluLWxpc3RJdGVtLXNpemVJc0Rlc2t0b3AsIDEpKjE4cHggKyB2YXIoLS11aS1saWItaW4tbGlzdEl0ZW0tc2l6ZUlzTW9iaWxlLCAwKSoyNHB4KX0uZGVzY3JpcHRpb24tRnR3d1JyN3UsLnRpdGxlLUZ0d3dScjd1e2ZvbnQtZmFtaWx5Oi1hcHBsZS1zeXN0ZW0sQmxpbmtNYWNTeXN0ZW1Gb250LFRyZWJ1Y2hldCBNUyxSb2JvdG8sVWJ1bnR1LHNhbnMtc2VyaWY7Zm9udC1mZWF0dXJlLXNldHRpbmdzOiJ0bnVtIiBvbiwibG51bSIgb247Zm9udC1zaXplOnZhcigtLXVpLWxpYi10eXBvZ3JhcGh5LWZvbnQtc2l6ZSk7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC13ZWlnaHQ6NDAwO2xpbmUtaGVpZ2h0OnZhcigtLXVpLWxpYi10eXBvZ3JhcGh5LWxpbmUtaGVpZ2h0KX0uZGVzY3JpcHRpb24tRnR3d1JyN3V7Y29sb3I6dmFyKC0tdWktbGliLXByaXZhdGUtbGlzdEl0ZW0tc2Vjb25kYXJ5LWNvbG9yKTstLXVpLWxpYi10eXBvZ3JhcGh5LWZvbnQtc2l6ZToxMnB4Oy0tdWktbGliLXR5cG9ncmFwaHktbGluZS1oZWlnaHQ6MTZweH0uaGFzRGVzY3JpcHRpb24tRnR3d1JyN3UsLmhhc1RpdGxlLUZ0d3dScjd1e2ZsZXg6MX0uaGFzVGl0bGUtRnR3d1JyN3UuaGFzRGVzY3JpcHRpb24tRnR3d1JyN3V7cGFkZGluZy1ib3R0b206Y2FsYyh2YXIoLS11aS1saWItaW4tbGlzdEl0ZW0tc2l6ZUlzRGVza3RvcCwgMSkqNHB4KTtwYWRkaW5nLXRvcDpjYWxjKHZhcigtLXVpLWxpYi1pbi1saXN0SXRlbS1zaXplSXNEZXNrdG9wLCAxKSo0cHgpfS5oYXNUaXRsZS1GdHd3UnI3dTpub3QoLmhhc0Rlc2NyaXB0aW9uLUZ0d3dScjd1KXtwYWRkaW5nLWJvdHRvbTpjYWxjKHZhcigtLXVpLWxpYi1pbi1saXN0SXRlbS1zaXplSXNEZXNrdG9wLCAxKSo1cHggKyB2YXIoLS11aS1saWItaW4tbGlzdEl0ZW0tc2l6ZUlzTW9iaWxlLCAwKSoycHgpO3BhZGRpbmctdG9wOmNhbGModmFyKC0tdWktbGliLWluLWxpc3RJdGVtLXNpemVJc0Rlc2t0b3AsIDEpKjVweCArIHZhcigtLXVpLWxpYi1pbi1saXN0SXRlbS1zaXplSXNNb2JpbGUsIDApKjJweCl9LmJ1dHRvbkNvbnRlbnQtVlg0a3BSOWl7YWxpZ24taXRlbXM6Y2VudGVyO2Rpc3BsYXk6ZmxleDtmbGV4OjE7bWluLXdpZHRoOjB9LmxlZnQtVlg0a3BSOWl7YWxpZ24taXRlbXM6Y2VudGVyO2Rpc3BsYXk6Z3JpZDtncmlkLXRlbXBsYXRlLWNvbHVtbnM6cmVwZWF0KHZhcigtLXVpLWxpYi1wcml2YXRlLWxpc3RJdGVtLWxlZnRTbG90SXRlbXNOdW1iZXIpLDI4cHgpO2hlaWdodDoyOHB4O2p1c3RpZnktaXRlbXM6Y2VudGVyfQ=="}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/31001.c522294d3a28d9ca151c.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.143Z","timestamp":1785148034143,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/31001.c522294d3a28d9ca151c.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\ncontent-type: text/css; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a4231b8-8cb\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Mon, 29 Jun 2026 08:50:00 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.57\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 06/29/2026 10:50:36\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 9c0ac59aa75034eac5b1e2d2a90ecff7\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":2251,"size_decoded":1671,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with very long lines (2251), with no line terminators","md5":"6802e4f2b88f1b95b3c00f50a4733ffa","sha1":"647de376bdd1c6a00b3bda320180479f481eed40","sha256":"721bbd1ae2d8cabdcddb25c2c5ec1eac0fe34d80a62a58972723c006890ced6d","sha512":"47c3f5437805efa03927e47dda89e1716a920079d2309e3a9f9c91d01c60801556de3a55308e1f97f5eaa074cc0a0852bb4a7e3550f91850ebfef6726f80e95e","ssdeep":"","tlshash":"85415288f35090a77cd78cbad397560d2a08fe33d91086fee50d991892c2ae36111b18","first_seen":"2026-06-29T12:05:37.516387Z","last_seen":"2026-07-27T12:47:44.644848Z","times_seen":200,"resource_available":false,"data":"W2RhdGEtdGhlbWU9ZGFya10sW2RhdGEtdGhlbWU9bGlnaHRdey0tXzAtaG5IeTp2YXIoLS1jb2xvci10YW4tb3JhbmdlLTYwMCk7LS1fMS1obkh5OnZhcigtLWNvbG9yLXRhbi1vcmFuZ2UtNDAwKTstLV8yLWhuSHk6dmFyKC0tY29sb3ItdHYtYmx1ZS01MDApOy0tXzMtaG5IeTp2YXIoLS1jb2xvci10di1ibHVlLTQwMCl9LnN1YnRpdGxlLWJMVEJoQ3dKe2ZvbnQtc2l6ZToxNHB4O2xpbmUtaGVpZ2h0OjIxcHh9LnN1YnRpdGxlLWJMVEJoQ3dKIC50ZXh0LWJMVEJoQ3dKe2ZsZXg6MSAwIDA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXN9LnN1bW1hcnktYkxUQmhDd0p7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMjc3ZGVnLCNmZmYwIDcwLjAyJSwjZDUwMGY5MWEgMTAwLjIxJSksbGluZWFyLWdyYWRpZW50KDI2M2RlZywjZmZmMCA2OS45MyUsIzAwZTVmZjFhKSxsaW5lYXItZ3JhZGllbnQoNzlkZWcsI2ZmZjAgNjUuODQlLCNkNTAwZjkxYSksbGluZWFyLWdyYWRpZW50KDEwMWRlZywjZmZmMCA2NS45JSwjMDBlNWZmMWEgMTAwLjEzJSk7Ym9yZGVyLXJhZGl1czo4cHg7Zm9udC1mYW1pbHk6LWFwcGxlLXN5c3RlbSxCbGlua01hY1N5c3RlbUZvbnQsVHJlYnVjaGV0IE1TLFJvYm90byxVYnVudHUsc2Fucy1zZXJpZjtmb250LWZlYXR1cmUtc2V0dGluZ3M6InRudW0iIG9uLCJsbnVtIiBvbjtmb250LXN0eWxlOm5vcm1hbDttYXJnaW4tYm90dG9tOjhweDtwYWRkaW5nOjhweDstLXVpLWxpYi10eXBvZ3JhcGh5LWZvbnQtc2l6ZToxM3B4O2ZvbnQtc2l6ZTp2YXIoLS11aS1saWItdHlwb2dyYXBoeS1mb250LXNpemUpO2ZvbnQtd2VpZ2h0OjQwMDstLXVpLWxpYi10eXBvZ3JhcGh5LWxpbmUtaGVpZ2h0OjE4cHg7bGluZS1oZWlnaHQ6dmFyKC0tdWktbGliLXR5cG9ncmFwaHktbGluZS1oZWlnaHQpO2xpbmUtaGVpZ2h0OjE4cHh9LnN1bW1hcnktYkxUQmhDd0o6Zmlyc3QtY2hpbGQ6YmVmb3Jle2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItZGVlcC1ibHVlLWEyMDApO2NvbnRlbnQ6IiAiO2Rpc3BsYXk6aW5saW5lLWJsb2NrO2hlaWdodDoxOHB4Oy13ZWJraXQtbWFzay1pbWFnZTp1cmwoc2l6ZV8xOHB4X19maWxsZWRfb25fX3R5cGVfZG91YmxlLmU2M2FmZDYzMGNkYWM4Zjc0ZWM4LnN2Zyk7bWFzay1pbWFnZTp1cmwoc2l6ZV8xOHB4X19maWxsZWRfb25fX3R5cGVfZG91YmxlLmU2M2FmZDYzMGNkYWM4Zjc0ZWM4LnN2Zyk7dmVydGljYWwtYWxpZ246Ym90dG9tO3dpZHRoOjE4cHh9Lmdyb3VwLWJMVEJoQ3dKe3BhZGRpbmctdG9wOjEycHh9Lmdyb3VwSWNvbi1iTFRCaEN3Sntib3JkZXItcmFkaXVzOjlweDtkaXNwbGF5OmlubGluZS1ibG9jaztoZWlnaHQ6MThweDttYXJnaW4taW5saW5lLXN0YXJ0OjdweDt2ZXJ0aWNhbC1hbGlnbjp0b3A7d2lkdGg6MThweH0uZ3JvdXBJY29uLWJMVEJoQ3dKLmJlZm9yZU1hcmtldE9wZW4tYkxUQmhDd0p7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1vdmVybGF5LXdhcm5pbmctMS1saWdodCk7Y29sb3I6dmFyKC0tXzAtaG5IeSl9QG1lZGlhIChhbnktaG92ZXI6aG92ZXIpey5ncm91cEljb24tYkxUQmhDd0ouYmVmb3JlTWFya2V0T3Blbi1iTFRCaEN3Sjpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLW92ZXJsYXktd2FybmluZy0xLW5vcm1hbCl9fS5ncm91cEljb24tYkxUQmhDd0ouYWZ0ZXJNYXJrZXRDbG9zZS1iTFRCaEN3SntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLW92ZXJsYXktYWNjZW50LTEtbGlnaHQpO2NvbG9yOnZhcigtLV8yLWhuSHkpfUBtZWRpYSAoYW55LWhvdmVyOmhvdmVyKXsuZ3JvdXBJY29uLWJMVEJoQ3dKLmFmdGVyTWFya2V0Q2xvc2UtYkxUQmhDd0o6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1vdmVybGF5LWFjY2VudC0xLW5vcm1hbCl9fS5ncm91cFRpdGxlLWJMVEJoQ3dKe2NvbG9yOnZhcigtLWNvbG9yLWRlZmF1bHQtZ3JheSk7Zm9udC1zaXplOjExcHg7Zm9udC13ZWlnaHQ6NDAwO2xldHRlci1zcGFjaW5nOi40cHg7bGluZS1oZWlnaHQ6MTZweDt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2V9Lmdyb3VwUm93LWJMVEJoQ3dKe2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpyb3d9Lmdyb3VwQ2VsbC1iTFRCaEN3SntmbGV4OjEgMCAwfS5ncm91cC1iTFRCaEN3SiAudGV4dC1iTFRCaEN3Sntmb250LXNpemU6MTRweDtsaW5lLWhlaWdodDoyMnB4O292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzfQ=="}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/52065.de9eddb339ac77d1dbf8.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.511Z","timestamp":1785148034511,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/52065.de9eddb339ac77d1dbf8.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\ncontent-type: text/css; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a4f5c82-3a3\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Thu, 09 Jul 2026 08:32:02 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/09/2026 11:43:01\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 994aae4c4507396d5e1dc32d74e9e663\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":931,"size_decoded":1213,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with very long lines (931), with no line terminators","md5":"3053a0430cd82554d9d18841226bcf14","sha1":"d36bf12346d438365d482697e192eb89e6c87dac","sha256":"d8e583ee4c6e07de08baade2e2c20f2ee50ce314ce21f56429ce719de2d80225","sha512":"7bf59310bea9e3dac3cef4eb734765099c03b81015f6f3e82b0024a156ac0bfe7d538daee6ff98605ea047dd495b5e9d79168d8c7f9e9788fed9cfd27e8a819d","ssdeep":"","tlshash":"bf11145751b7a222b4262a320741ce4da300cd375884dab5ee808a3cc3c999136d1b3d","first_seen":"2026-07-09T18:30:19.462745Z","last_seen":"2026-07-27T12:48:39.648105Z","times_seen":73,"resource_available":false,"data":"LmNvbnRhaW5lci1CWktFTmtoVHthbGlnbi1pdGVtczpjZW50ZXI7Y3Vyc29yOmRlZmF1bHQ7ZGlzcGxheTpmbGV4O2ZsZXg6MCAwIGF1dG87cGFkZGluZzowIDIwcHh9LnVuc2V0QWxpZ24tQlpLRU5raFR7YWxpZ24taXRlbXM6c3RyZXRjaH0udGl0bGUtQlpLRU5raFR7Y29sb3I6dmFyKC0tdHYtY29sb3ItZGlhbG9nLWhlYWRlci10ZXh0LHZhcigtLWNvbG9yLXRleHQtcHJpbWFyeSkpO2ZsZXgtZ3JvdzoxO2ZvbnQtc2l6ZToyMHB4O2ZvbnQtd2VpZ2h0OjYwMDtsaW5lLWhlaWdodDoyOHB4O21pbi13aWR0aDowO3BhZGRpbmc6MTdweCAwfUBtZWRpYSAobWF4LWhlaWdodDozNjBweCl7LnRpdGxlLUJaS0VOa2hUe3BhZGRpbmc6MTBweCAwfX0uc3VidGl0bGUtQlpLRU5raFR7Zm9udC1zaXplOjE2cHg7Zm9udC13ZWlnaHQ6NDAwO2xpbmUtaGVpZ2h0OjI0cHg7bWFyZ2luLWJsb2NrOjhweCAzcHg7bWFyZ2luLWlubGluZTowIDB9LnRleHRXcmFwLUJaS0VOa2hUe2Rpc3BsYXk6LXdlYmtpdC1ib3g7b3ZlcmZsb3c6aGlkZGVuOy13ZWJraXQtbGluZS1jbGFtcDoyOy13ZWJraXQtYm94LW9yaWVudDp2ZXJ0aWNhbDtsaW5lLWhlaWdodDoyOHB4O21heC1oZWlnaHQ6NTZweH0uZWxsaXBzaXMtQlpLRU5raFR7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7d2hpdGUtc3BhY2U6bm93cmFwfS5jbG9zZS1CWktFTmtoVHtjb2xvcjp2YXIoLS10di1jb2xvci1kaWFsb2ctaGVhZGVyLXRleHQsdmFyKC0tY29sb3ItdGV4dC1wcmltYXJ5KSk7ZmxleC1zaHJpbms6MDttYXJnaW4tYmxvY2s6MTdweCAxN3B4O21hcmdpbi1pbmxpbmU6MCAtM3B4fUBtZWRpYSAobWF4LWhlaWdodDozNjBweCl7LmNsb3NlLUJaS0VOa2hUe21hcmdpbi1ib3R0b206MTBweDttYXJnaW4tdG9wOjEwcHh9fS5pY29uLUJaS0VOa2hUe2hlaWdodDoxN3B4fQ=="}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/45368.9ff00a3e38212029ba55.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.771Z","timestamp":1785148034771,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/45368.9ff00a3e38212029ba55.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\ncontent-type: text/css; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a58ab11-ab7\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Thu, 16 Jul 2026 09:57:37 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/16/2026 11:04:45\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 4111a051569ae79e3a2a02196327d083\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":2743,"size_decoded":1688,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with very long lines (2743), with no line terminators","md5":"1b9b6d30d25f832a4ae245dfe44f7213","sha1":"94b221f3b98df900872565f146ae982a58ccc4e5","sha256":"350554344804fd43ba4503e3c1a52bf0bd432a763c3af60e0aa806456b7b9c77","sha512":"719896dc916140562428b6e90458f71fccdd7c6c7eb30b2120bb94b50417cb438b9ebdf7cf6706f92d86e7dba0ec6352ebac2f7cbe666268feaf3b1ee7fec34d","ssdeep":"","tlshash":"965130f6123159fc9627a76acf28f68880e57cd1d21103a3e6e4781fa0e3df819605c8","first_seen":"2026-07-17T06:02:50.776541Z","last_seen":"2026-07-27T12:54:15.390098Z","times_seen":144,"resource_available":false,"data":"W2RhdGEtdGhlbWU9bGlnaHRdey0tXzAtTlRkYzp2YXIoLS1jb2xvci1jb2xkLWdyYXktMTUwKTstLV8xLU5UZGM6IzZhNmQ3ODMzfVtkYXRhLXRoZW1lPWRhcmtdey0tXzAtTlRkYzp2YXIoLS1jb2xvci1jb2xkLWdyYXktNzAwKTstLV8xLU5UZGM6Izg2ODk5MzMzfS5wcmV2aWV3LWt5OXd1OVlBe2FsaWduLWl0ZW1zOmNlbnRlcjtib3JkZXItcmFkaXVzOnZhcigtLXVpLWxpYi1pbWFnZS1jYXJkLXByZXZpZXctYm9yZGVyLXJhZGl1cyk7ZGlzcGxheTpmbGV4O2lzb2xhdGlvbjppc29sYXRlO2p1c3RpZnktY29udGVudDpjZW50ZXI7b3JkZXI6LTE7cG9zaXRpb246cmVsYXRpdmV9LnByZXZpZXcta3k5d3U5WUE6YmVmb3Jle2JhY2tncm91bmQ6dmFyKC0tY29sb3ItYmctc2Nyb2xsLWJ1dHRvbnMpO3RvcDoxcHg7ei1pbmRleDotMX0ucHJldmlldy1reTl3dTlZQTphZnRlciwucHJldmlldy1reTl3dTlZQTpiZWZvcmV7Ym9yZGVyLXJhZGl1czp2YXIoLS11aS1saWItaW1hZ2UtY2FyZC1wcmV2aWV3LWJvcmRlci1yYWRpdXMpO2NvbnRlbnQ6IiI7aGVpZ2h0OmNhbGMoMTAwJSAtIDJweCk7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6Y2FsYygxMDAlIC0gMnB4KX0ucHJldmlldy1reTl3dTlZQTphZnRlcntib3JkZXI6MXB4IHNvbGlkIHJnYihmcm9tIHZhcigtLWNvbG9yLWRlZmF1bHQtZ3JheSkgciBnIGIvLjIpO3BvaW50ZXItZXZlbnRzOm5vbmU7dG9wOjB9QHN1cHBvcnRzIG5vdCAoYmFja2dyb3VuZDpyZ2IoZnJvbSAjMDAwIHIgZyBiKSl7LnByZXZpZXcta3k5d3U5WUE6YWZ0ZXJ7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1fMS1OVGRjKX19LnByZXZpZXcta3k5d3U5WUEuZml4ZWRIZWlnaHQta3k5d3U5WUF7aGVpZ2h0OjE4MHB4fS5wcmV2aWV3LWt5OXd1OVlBLnJhdGlvMTZieTkta3k5d3U5WUF7YXNwZWN0LXJhdGlvOjE2Lzl9QHN1cHBvcnRzIG5vdCAoYXNwZWN0LXJhdGlvOjE2Lzkpey5wcmV2aWV3LWt5OXd1OVlBLnJhdGlvMTZieTkta3k5d3U5WUF7cGFkZGluZy1ib3R0b206NTYuMjUlfX0ucHJldmlldy1reTl3dTlZQS5yYXRpbzJieTEta3k5d3U5WUF7YXNwZWN0LXJhdGlvOjIvMX1Ac3VwcG9ydHMgbm90IChhc3BlY3QtcmF0aW86Mi8xKXsucHJldmlldy1reTl3dTlZQS5yYXRpbzJieTEta3k5d3U5WUF7cGFkZGluZy1ib3R0b206NTAlfX0uYnJva2VuLWltYWdlLWt5OXd1OVlBOmFmdGVye2JvcmRlcjoxcHggc29saWQgdmFyKC0tY29sb3ItZGVmYXVsdC1ncmF5KTtib3JkZXItcmFkaXVzOnZhcigtLXVpLWxpYi1pbWFnZS1jYXJkLXByZXZpZXctYm9yZGVyLXJhZGl1cyk7Y29udGVudDoiIjtoZWlnaHQ6Y2FsYygxMDAlIC0gMnB4KTtwb2ludGVyLWV2ZW50czpub25lO3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO3dpZHRoOmNhbGMoMTAwJSAtIDJweCl9LnByZXZpZXctZ3JpZC1reTl3dTlZQXtkaXNwbGF5OmdyaWQ7Z3JpZC10ZW1wbGF0ZS1hcmVhczoidG9wLWxlZnQtY29ybmVyIHRvcC1yaWdodC1jb3JuZXIiICIuIC4iICJib3R0b20tbGVmdC1jb3JuZXIgYm90dG9tLXJpZ2h0LWNvcm5lciI7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOnJlcGVhdCgyLG1pbm1heCgwLGF1dG8pKTtncmlkLXRlbXBsYXRlLXJvd3M6bWluLWNvbnRlbnQgYXV0byBtaW4tY29udGVudDtoZWlnaHQ6MTAwJTtpbnNldC1pbmxpbmUtc3RhcnQ6MDtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDstd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZTt3aWR0aDoxMDAlfS5waWN0dXJlLWt5OXd1OVlBe2Rpc3BsYXk6Y29udGVudHN9LmltYWdlLWt5OXd1OVlBLC5pbWFnZS1saW5rLWt5OXd1OVlBLC5taWRkbGUta3k5d3U5WUF7aGVpZ2h0OjEwMCU7aW5zZXQtaW5saW5lLXN0YXJ0OjA7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7d2lkdGg6MTAwJX0uaW1hZ2Uta3k5d3U5WUF7YmFja2dyb3VuZDp2YXIoLS11aS1saWItaW1hZ2UtY2FyZC1wcmV2aWV3LWJhY2tncm91bmQpO2JvcmRlci1yYWRpdXM6dmFyKC0tdWktbGliLWltYWdlLWNhcmQtcHJldmlldy1ib3JkZXItcmFkaXVzKTtvYmplY3QtZml0OmNvdmVyfS5taWRkbGUta3k5d3U5WUF7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXJ9LmNvcm5lci1reTl3dTlZQSwubWlkZGxlLWt5OXd1OVlBe2Rpc3BsYXk6ZmxleDtwb2ludGVyLWV2ZW50czpub25lO3otaW5kZXg6MX0uY29ybmVyLWt5OXd1OVlBe2ZsZXgtZmxvdzpyb3cgbm93cmFwfS5jb3JuZXIta3k5d3U5WUE+Kntwb2ludGVyLWV2ZW50czphdXRvfS5jb3JuZXItdG9wLWxlZnQta3k5d3U5WUF7Z3JpZC1hcmVhOnRvcC1sZWZ0LWNvcm5lcjtwYWRkaW5nLWJsb2NrOjhweCAwO3BhZGRpbmctaW5saW5lOjhweCAwfS5jb3JuZXItdG9wLXJpZ2h0LWt5OXd1OVlBe2dyaWQtYXJlYTp0b3AtcmlnaHQtY29ybmVyO2p1c3RpZnktY29udGVudDpmbGV4LWVuZDtwYWRkaW5nLWJsb2NrOjhweCAwO3BhZGRpbmctaW5saW5lOjAgOHB4fS5jb3JuZXItYm90dG9tLWxlZnQta3k5d3U5WUF7YWxpZ24taXRlbXM6ZmxleC1lbmQ7Z3JpZC1hcmVhOmJvdHRvbS1sZWZ0LWNvcm5lcjtwYWRkaW5nLWJsb2NrOjAgOHB4O3BhZGRpbmctaW5saW5lOjhweCAwfS5jb3JuZXItYm90dG9tLXJpZ2h0LWt5OXd1OVlBe2FsaWduLWl0ZW1zOmZsZXgtZW5kO2dyaWQtYXJlYTpib3R0b20tcmlnaHQtY29ybmVyO2p1c3RpZnktY29udGVudDpmbGV4LWVuZDtwYWRkaW5nLWJsb2NrOjAgOHB4O3BhZGRpbmctaW5saW5lOjAgOHB4fQ=="}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/7491.781441738a6cd0618fdc.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.878Z","timestamp":1785148034878,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/7491.781441738a6cd0618fdc.js HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a632877-37e87\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Fri, 24 Jul 2026 08:55:19 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/24/2026 10:32:20\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 7cbe2eac7fc69f1a6aadf7e49474e748\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":228999,"size_decoded":72152,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, Unicode text, UTF-8 text, with very long lines (12440)","md5":"aa6ac472786cc847c34f9facdcf68b82","sha1":"0078a243f124d1cad6e081e0ec41762894eee717","sha256":"fa9ef48e40cc4d9ef0a1407437c1f0f6789bac373529c4a2bbfe51b15cf28f9f","sha512":"5e032cd4b980542eebdb6e080d1958b6916910e791aa1c317479897765618cce2c6e7b98e716ed5621a5d4c3cf59b5b2176ebca6fad003c3d3a2d330bb92084d","ssdeep":"6144:EL9/Eau26kHR65+5ffnmbgOk5ayQ179c99v:ELmau21OCffmbgOk5aZ17Gvv","tlshash":"e1240994f040696892f700db90ba4504b36c3f9ae4610869f9bcdd9e295ded8b13df3e","first_seen":"2026-07-27T03:26:08.850225Z","last_seen":"2026-07-27T10:53:39.25622Z","times_seen":8,"resource_available":true,"data":"KHNlbGYud2VicGFja0NodW5rdHJhZGluZ3ZpZXc9c2VsZi53ZWJwYWNrQ2h1bmt0cmFkaW5ndmlld3x8W10pLnB1c2goW1s3NDkxXSx7ODAzMjg3KGUpe2UuZXhwb3J0cz17ImRlZmF1bHQtZHJhd2VyLW1pbi10b3AtZGlzdGFuY2UiOiIxMDBweCIsd3JhcDoid3JhcC1paWkxMThvTiIscG9zaXRpb25Cb3R0b206InBvc2l0aW9uQm90dG9tLWlpaTExOG9OIixiYWNrZHJvcDoiYmFja2Ryb3AtaWlpMTE4b04iLGRyYXdlcjoiZHJhd2VyLWlpaTExOG9OIixwb3NpdGlvbkxlZnQ6InBvc2l0aW9uTGVmdC1paWkxMThvTiJ9fSwxNjQxMzkoZSl7ZS5leHBvcnRzPXtjb250YWluZXI6ImNvbnRhaW5lci1TVXlDc2tVWiIsc2VsbDoic2VsbC1TVXlDc2tVWiIsYnV5OiJidXktU1V5Q3NrVVoiLCJzdHJvbmctc2VsbCI6InN0cm9uZy1zZWxsLVNVeUNza1VaIiwic3Ryb25nLWJ1eSI6InN0cm9uZy1idXktU1V5Q3NrVVoiLG5ldXRyYWw6Im5ldXRyYWwtU1V5Q3NrVVoiLCJjb250YWluZXItc21hbGwiOiJjb250YWluZXItc21hbGwtU1V5Q3NrVVoiLHRleHRSb3c6InRleHRSb3ctU1V5Q3NrVVoiLHRleHRSb3dNaWRkbGU6InRleHRSb3dNaWRkbGUtU1V5Q3NrVVoiLHRleHRSb3dCb3R0b206InRleHRSb3dCb3R0b20tU1V5Q3NrVVoiLCJjb250YWluZXItbWVkaXVtIjoiY29udGFpbmVyLW1lZGl1bS1TVXlDc2tVWiIsImNvbnRhaW5lci1sYXJnZSI6ImNvbnRhaW5lci1sYXJnZS1TVXlDc2tVWiJ9fSwyOTczMzcoZSl7ZS5leHBvcnRzPXsic2NhbGUtYW5pbWF0aW9uLWR1cmF0aW9uIjoiMzAwMG1zIixjb250YWluZXI6ImNvbnRhaW5lci1GNTBnbmZlWSIsInNjYWxlLWNvbnRhaW5lciI6InNjYWxlLWNvbnRhaW5lci1GNTBnbmZlWSIsImNvbnRhaW5lci1zbWFsbCI6ImNvbnRhaW5lci1zbWFsbC1GNTBnbmZlWSIsYm9yZGVyOiJib3JkZXItRjUwZ25mZVkiLG1hc2s6Im1hc2stRjUwZ25mZVkiLGFycm93OiJhcnJvdy1GNTBnbmZlWSIsaWNvbjoiaWNvbi1GNTBnbmZlWSIsImNvbnRhaW5lci1tZWRpdW0iOiJjb250YWluZXItbWVkaXVtLUY1MGduZmVZIiwiY29udGFpbmVyLWxhcmdlIjoiY29udGFpbmVyLWxhcmdlLUY1MGduZmVZIixiYWNrZ3JvdW5kOiJiYWNrZ3JvdW5kLUY1MGduZmVZIixhcnJvd1dyYXA6ImFycm93V3JhcC1GNTBnbmZlWSIsbWFza1dyYXA6Im1hc2tXcmFwLUY1MGduZmVZIixhbmltYXRlZDoiYW5pbWF0ZWQtRjUwZ25mZVkiLCJ0cmVtb3ItdHJhbnNmb3JtIjoidHJlbW9yLXRyYW5zZm9ybS1GNTBnbmZlWSJ9fSw3NTg0MDEoZSl7ZS5leHBvcnRzPXtjb250YWluZXI6ImNvbnRhaW5lci1mTEZlb09hbyIsImNvbnRhaW5lci1zbWFsbCI6ImNvbnRhaW5lci1zbWFsbC1mTEZlb09hbyIsImNvbnRhaW5lci1tZWRpdW0iOiJjb250YWluZXItbWVkaXVtLWZMRmVvT2FvIiwiY29udGFpbmVyLWxhcmdlIjoiY29udGFpbmVyLWxhcmdlLWZMRmVvT2FvIiwidGV4dC1zbWFsbCI6InRleHQtc21hbGwtZkxGZW9PYW8iLCJ0ZXh0LW1lZGl1bSI6InRleHQtbWVkaXVtLWZMRmVvT2FvIiwidGV4dC1sYXJnZSI6InRleHQtbGFyZ2UtZkxGZW9PYW8iLCJzdHJvbmctc2VsbCI6InN0cm9uZy1zZWxsLWZMRmVvT2FvIixzZWxsOiJzZWxsLWZMRmVvT2FvIixuZXV0cmFsOiJuZXV0cmFsLWZMRmVvT2FvIixidXk6ImJ1eS1mTEZlb09hbyIsInN0cm9uZy1idXkiOiJzdHJvbmctYnV5LWZMRmVvT2FvIiwiY29udGFpbmVyLXN0cm9uZy1zZWxsIjoiY29udGFpbmVyLXN0cm9uZy1zZWxsLWZMRmVvT2FvIiwiY29udGFpbmVyLXNlbGwiOiJjb250YWluZXItc2VsbC1mTEZlb09hbyIsImNvbnRhaW5lci1uZXV0cmFsIjoiY29udGFpbmVyLW5ldXRyYWwtZkxGZW9PYW8iLCJjb250YWluZXItYnV5IjoiY29udGFpbmVyLWJ1eS1mTEZlb09hbyIsImNvbnRhaW5lci1zdHJvbmctYnV5IjoiY29udGFpbmVyLXN0cm9uZy1idXktZkxGZW9PYW8ifX0sODU0NDUoZSl7ZS5leHBvcnRzPXtwaWxsczoicGlsbHMtSWVRd1BqY1oiLHByaW1hcnk6InByaW1hcnktSWVRd1BqY1oiLGdyYXk6ImdyYXktSWVRd1BqY1oiLHNlbGVjdGVkOiJzZWxlY3RlZC1JZVF3UGpjWiIsZ3JvdXBlZDoiZ3JvdXBlZC1JZVF3UGpjWiIsYWN0aXZlOiJhY3RpdmUtSWVRd1BqY1oiLGRpc2FibGVBY3RpdmVPblRvdWNoOiJkaXNhYmxlQWN0aXZlT25Ub3VjaC1JZVF3UGpjWiIsZGlzYWJsZUFjdGl2ZVN0YXRlU3R5bGVzOiJkaXNhYmxlQWN0aXZlU3RhdGVTdHlsZXMtSWVRd1BqY1oiLHdpdGhHcm91cGVkOiJ3aXRoR3JvdXBlZC1JZVF3UGpjWiIsInF1aWV0LXByaW1hcnkiOiJxdWlldC1wcmltYXJ5LUllUXdQamNaIixncmVlbjoiZ3JlZW4tSWVRd1BqY1oiLHJlZDoicmVkLUllUXdQamNaIixibHVlOiJibHVlLUllUXdQamNaIixzZWNvbmRhcnk6InNlY29uZGFyeS1JZVF3UGpjWiIsZ2hvc3Q6Imdob3N0LUllUXdQamNaIn19LDM2NDgxNShlKXtlLmV4cG9ydHM9e2xpZ2h0QnV0dG9uOiJsaWdodEJ1dHRvbi1ralJmVGxmeCIsbGluazoibGluay1ralJmVGxmeCIsbHRyOiJsdHIta2pSZlRsZngiLHJ0bDoicnRsLWtqUmZUbGZ4IiwidHlwb2dyYXBoeS1yZWd1bGFyMTZweCI6InR5cG9ncmFwaHktcmVndWxhcjE2cHgta2pSZlRsZngiLCJ0eXBvZ3JhcGh5LW1lZGl1bTE2cHgiOiJ0eXBvZ3JhcGh5LW1lZGl1bTE2cHgta2pSZlRsZngiLCJ0eXBvZ3JhcGh5LXJlZ3VsYXIxNHB4IjoidHlwb2dyYXBoeS1yZWd1bGFyMTRweC1ralJmVGxmeCIsInR5cG9ncmFwaHktc2VtaWJvbGQxNHB4IjoidHlwb2dyYXBoeS1zZW1pYm9sZDE0cHgta2pSZlRsZngiLCJ0eXBvZ3JhcGh5LXNlbWlib2xkMTZweCI6InR5cG9ncmFwaHktc2VtaWJvbGQxNnB4LWtqUmZUbGZ4Iixjb250ZW50OiJjb250ZW50LWtqUmZUbGZ4Iix2aXN1YWxseUhpZGRlbjoidmlzdWFsbHlIaWRkZW4ta2pSZlRsZngiLG5vd3JhcDoibm93cmFwLWtqUmZUbGZ4IixlbGxpcHNpc0NvbnRhaW5lcjoiZWxsaXBzaXNDb250YWluZXIta2pSZlRsZngiLHRleHRXcmFwQ29udGFpbmVyOiJ0ZXh0V3JhcENvbnRhaW5lci1ralJmVGxmeCIsCnRleHRXcmFwV2l0aEVsbGlwc2lzOiJ0ZXh0V3JhcFdpdGhFbGxpcHNpcy1ralJmVGxmeCIsc2xvdDoic2xvdC1ralJmVGxmeCIsY2FyZXQ6ImNhcmV0LWtqUmZUbGZ4IixhY3RpdmVDYXJldDoiYWN0aXZlQ2FyZXQta2pSZlRsZngiLHhzbWFsbDoieHNtYWxsLWtqUmZUbGZ4Iix3aXRoU3RhcnRTbG90OiJ3aXRoU3RhcnRTbG90LWtqUmZUbGZ4Iix3aXRoRW5kU2xvdDoid2l0aEVuZFNsb3Qta2pSZlRsZngiLG5vQ29udGVudDoibm9Db250ZW50LWtqUmZUbGZ4Iix3cmFwOiJ3cmFwLWtqUmZUbGZ4IixzbWFsbDoic21hbGwta2pSZlRsZngiLG1lZGl1bToibWVkaXVtLWtqUmZUbGZ4In19LDg2MDAyNShlKXtlLmV4cG9ydHM9e3BhaXI6InBhaXIteHdHc1NYUjAiLHh4Y2VwdGlvbmFsbHlzbWFsbGRvbm90dXNlYnJ2MTAyMzoieHhjZXB0aW9uYWxseXNtYWxsZG9ub3R1c2VicnYxMDIzLXh3R3NTWFIwIix4eHh4c21hbGw6Inh4eHhzbWFsbC14d0dzU1hSMCIseHh4c21hbGw6Inh4eHNtYWxsLXh3R3NTWFIwIix4eHNtYWxsOiJ4eHNtYWxsLXh3R3NTWFIwIix4c21hbGw6InhzbWFsbC14d0dzU1hSMCIsc21hbGw6InNtYWxsLXh3R3NTWFIwIixtZWRpdW06Im1lZGl1bS14d0dzU1hSMCIsbGFyZ2U6ImxhcmdlLXh3R3NTWFIwIix4bGFyZ2U6InhsYXJnZS14d0dzU1hSMCIseHhsYXJnZToieHhsYXJnZS14d0dzU1hSMCIseHh4bGFyZ2U6Inh4eGxhcmdlLXh3R3NTWFIwIixsb2dvOiJsb2dvLXh3R3NTWFIwIixza2VsZXRvbjoic2tlbGV0b24teHdHc1NYUjAiLGVtcHR5OiJlbXB0eS14d0dzU1hSMCJ9fSwxNDAwMTcoZSl7ZS5leHBvcnRzPXtsb2dvOiJsb2dvLVZDTkt1YldxIixoaWRkZW46ImhpZGRlbi1WQ05LdWJXcSIseHhjZXB0aW9uYWxseXNtYWxsZG9ub3R1c2VicnYxMDIzOiJ4eGNlcHRpb25hbGx5c21hbGxkb25vdHVzZWJydjEwMjMtVkNOS3ViV3EiLHh4eHNtYWxsOiJ4eHhzbWFsbC1WQ05LdWJXcSIseHhzbWFsbDoieHhzbWFsbC1WQ05LdWJXcSIseHNtYWxsOiJ4c21hbGwtVkNOS3ViV3EiLHNtYWxsOiJzbWFsbC1WQ05LdWJXcSIsbWVkaXVtOiJtZWRpdW0tVkNOS3ViV3EiLGxhcmdlOiJsYXJnZS1WQ05LdWJXcSIseGxhcmdlOiJ4bGFyZ2UtVkNOS3ViV3EiLHh4bGFyZ2U6Inh4bGFyZ2UtVkNOS3ViV3EiLHh4eGxhcmdlOiJ4eHhsYXJnZS1WQ05LdWJXcSIsc2tlbGV0b246InNrZWxldG9uLVZDTkt1YldxIixsZXR0ZXI6ImxldHRlci1WQ05LdWJXcSJ9fSw5NzUyODUoZSl7ZS5leHBvcnRzPXt3cmFwcGVyOiJ3cmFwcGVyLWhjdDJ5SnZLIixhbmltYXRlZDoiYW5pbWF0ZWQtaGN0MnlKdksiLHB1bHNhdGlvbjoicHVsc2F0aW9uLWhjdDJ5SnZLIn19LDIzNjE2NChlKXtlLmV4cG9ydHM9eyJuZXdzLWl0ZW0iOiJuZXdzLWl0ZW0tY2l3amhwY1MiLGFjY2Vzc2libGU6ImFjY2Vzc2libGUtY2l3amhwY1MiLCJuZXdzLWl0ZW0tLW5vLWhvdmVyIjoibmV3cy1pdGVtLS1uby1ob3Zlci1jaXdqaHBjUyIsIm5ld3MtaXRlbS0taGlnaGxpZ2h0IjoibmV3cy1pdGVtLS1oaWdobGlnaHQtY2l3amhwY1MiLCJuZXdzLWl0ZW1fX2hlYWRlciI6Im5ld3MtaXRlbV9faGVhZGVyLWNpd2pocGNTIiwibmV3cy1pdGVtX19icmVhZGNydW1icyI6Im5ld3MtaXRlbV9fYnJlYWRjcnVtYnMtY2l3amhwY1MiLCJuZXdzLWl0ZW1fX2xvZ29zIjoibmV3cy1pdGVtX19sb2dvcy1jaXdqaHBjUyIsIm5ld3MtaXRlbV9fdGl0bGUiOiJuZXdzLWl0ZW1fX3RpdGxlLWNpd2pocGNTIiwibmV3cy1pdGVtX190aXRsZS0tZXh0ZXJuYWwtbGluayI6Im5ld3MtaXRlbV9fdGl0bGUtLWV4dGVybmFsLWxpbmstY2l3amhwY1MiLCJuZXdzLWl0ZW1fX2Rlc2NyaXB0aW9uIjoibmV3cy1pdGVtX19kZXNjcmlwdGlvbi1jaXdqaHBjUyJ9fSw3NzMwNzQoZSl7ZS5leHBvcnRzPXtjb250YWluZXI6ImNvbnRhaW5lci1xRFhsd29YZCIsY2hhbmdlOiJjaGFuZ2UtcURYbHdvWGQiLHByaWNlOiJwcmljZS1xRFhsd29YZCIsc3BlZWRvbWV0ZXJXcmFwOiJzcGVlZG9tZXRlcldyYXAtcURYbHdvWGQiLGl0ZW1XcmFwOiJpdGVtV3JhcC1xRFhsd29YZCJ9fSw2MjI4NjAoZSl7ZS5leHBvcnRzPXtzY2FsZUNlbGxGaXRjaDoic2NhbGVDZWxsRml0Y2gtUWJDa1BldDEiLHNjYWxlQ2VsbFNucDoic2NhbGVDZWxsU25wLVFiQ2tQZXQxIn19LDUyMTAoZSl7ZS5leHBvcnRzPXtpY29uOiJpY29uLUJJU0Q0YzVGIixjcm93bjoiY3Jvd24tQklTRDRjNUYgaWNvbi1CSVNENGM1RiJ9fSwxMDg5MihlKXtlLmV4cG9ydHM9e3BpZVdyYXA6InBpZVdyYXAtaHhfQ0dZWG0iLGNoYXJ0VGl0bGU6ImNoYXJ0VGl0bGUtaHhfQ0dZWG0iLGxlZ2VuZEl0ZW06ImxlZ2VuZEl0ZW0taHhfQ0dZWG0iLG91dHN0YW5kaW5nQW1vdW50OiJvdXRzdGFuZGluZ0Ftb3VudC1oeF9DR1lYbSIscGFpZEFtb3VudDoicGFpZEFtb3VudC1oeF9DR1lYbSIsbGVnZW5kVGV4dDoibGVnZW5kVGV4dC1oeF9DR1lYbSIsbGVnZW5kRGF0YToibGVnZW5kRGF0YS1oeF9DR1lYbSJ9fSw4NDYxNjYoZSl7ZS5leHBvcnRzPXthZGRpdGlvbmFsOiJhZGRpdGlvbmFsLWNGX3FEWndEIixpbnZhbGlkOiJpbnZhbGlkLWNGX3FEWndEIixkb3RXcmFwOiJkb3RXcmFwLWNGX3FEWndEIixzbWFsbE1hcmdpbjoic21hbGxNYXJnaW4tY0ZfcURad0QiLGRvdDoiZG90LWNGX3FEWndEIixtYWluOiJtYWluLWNGX3FEWndEIixsaW5rOiJsaW5rLWNGX3FEWndEIn19LDIyNTk2NihlKXtlLmV4cG9ydHM9e2NvbnRhaW5lcjoiY29udGFpbmVyLWhPMzduZHFNIixiaWQ6ImJpZC1oTzM3bmRxTSIsYXNrOiJhc2staE8zN25kcU0ifX0sNzE3MDIyKGUpe2UuZXhwb3J0cz17YnV0dG9uQ29udGFpbmVyOiJidXR0b25Db250YWluZXItYmU1Z0ExM2IiLGJ1dHRvbjoiYnV0dG9uLWJlNWdBMTNiIn19LDI3MjkwOShlKXtlLmV4cG9ydHM9e2J1dHRvbjoiYnV0dG9uLUt3RnpwR1ZXIn19LDE4NjEwNihlKXtlLmV4cG9ydHM9e2l0ZW06Iml0ZW0tQjJ2VDFQalAiLHRleHQ6InRleHQtQjJ2VDFQalAifX0sNzM4Mjc4KGUpe2UuZXhwb3J0cz17Y29udGFpbmVyOiJjb250YWluZXItbFU5a1pTTUciLGNoYXJ0OiJjaGFydC1sVTlrWlNNRyIsCnRvb2x0aXBXcmFwOiJ0b29sdGlwV3JhcC1sVTlrWlNNRyJ9fSw4Mjc0MDQoZSl7ZS5leHBvcnRzPXtzZWxlY3Rvcjoic2VsZWN0b3ItVW1yXzJVcmoiLGN1cnJlbmN5OiJjdXJyZW5jeS1VbXJfMlVyaiIsYmFyVGl0bGU6ImJhclRpdGxlLVVtcl8yVXJqIixiYXJXcmFwOiJiYXJXcmFwLVVtcl8yVXJqIn19LDQ5NTEwKGUpe2UuZXhwb3J0cz17aXRlbXM6Iml0ZW1zLWd6UW5SbElvIn19LDYzNDU3NChlKXtlLmV4cG9ydHM9e2Jsb2NrOiJibG9jay1PMGxIdUk5QyIsdGl0bGU6InRpdGxlLU8wbEh1STlDIn19LDMzMzQ2MihlKXtlLmV4cG9ydHM9e2RhbmdlcjoiZGFuZ2VyLVBXbDVDRFY1IixjYXBpdGFsaXplRmlyc3Q6ImNhcGl0YWxpemVGaXJzdC1QV2w1Q0RWNSJ9fSw3NzUzMChlKXtlLmV4cG9ydHM9e2l0ZW1zOiJpdGVtcy1JcU5LY3hTTCIsYnV0dG9uOiJidXR0b24tSXFOS2N4U0wifX0sODYxMjk4KGUpe2UuZXhwb3J0cz17dGl0bGU6InRpdGxlLU5XMzFDbGxjIix0ZXh0OiJ0ZXh0LU5XMzFDbGxjIn19LDIzNzc3OChlKXtlLmV4cG9ydHM9e2xpbms6ImxpbmstZzluelJZNlMiLGljb246Imljb24tZzluelJZNlMiLHRleHQ6InRleHQtZzluelJZNlMifX0sMjMxMzk4KGUpe2UuZXhwb3J0cz17c3RhdHVzV3JhcHBlcjoic3RhdHVzV3JhcHBlci1kTjFlMkxfZyIsbGFzdFRpbWU6Imxhc3RUaW1lLWROMWUyTF9nIixsYXN0UHJpY2U6Imxhc3RQcmljZS1kTjFlMkxfZyIscGx1czoicGx1cy1kTjFlMkxfZyIsY2hhbmdlOiJjaGFuZ2UtZE4xZTJMX2ciLGNoYW5nZVBlcmNlbnQ6ImNoYW5nZVBlcmNlbnQtZE4xZTJMX2ciLG1pbnVzOiJtaW51cy1kTjFlMkxfZyIscHJpY2U6InByaWNlLWROMWUyTF9nIixjaGFuZ2VXcmFwOiJjaGFuZ2VXcmFwLWROMWUyTF9nIixleHRyYToiZXh0cmEtZE4xZTJMX2ciLGljb246Imljb24tZE4xZTJMX2ciLG5ldXRyYWw6Im5ldXRyYWwtZE4xZTJMX2ciLGJsdWU6ImJsdWUtZE4xZTJMX2ciLHllbGxvdzoieWVsbG93LWROMWUyTF9nIixncmVlbjoiZ3JlZW4tZE4xZTJMX2ciLHB1cnBsZToicHVycGxlLWROMWUyTF9nIixjdXJyZW5jeToiY3VycmVuY3ktZE4xZTJMX2ciLHN0YXR1czoic3RhdHVzLWROMWUyTF9nIn19LDI5MTYxNihlKXtlLmV4cG9ydHM9e2J1dHRvbjoiYnV0dG9uLVhfSW9lbmp4Iixob3ZlcjoiaG92ZXItWF9Jb2VuangiLGlzT3BlbmVkOiJpc09wZW5lZC1YX0lvZW5qeCIsaW5uZXI6ImlubmVyLVhfSW9lbmp4In19LDY1OTQoZSl7ZS5leHBvcnRzPXt2YWx1ZToidmFsdWUtc2JhQ3hvdEMifX0sODE5OTEwKGUpe2UuZXhwb3J0cz17Y2FyZHM6ImNhcmRzLXZsS2lFbGJSIixoZWFkZXI6ImhlYWRlci12bEtpRWxiUiIsc2VsZWN0OiJzZWxlY3QtdmxLaUVsYlIifX0sNDg4MjE2KGUpe2UuZXhwb3J0cz17Y2hhcnQ6ImNoYXJ0LUcxdWRiNmVNIix0b29sdGlwV3JhcDoidG9vbHRpcFdyYXAtRzF1ZGI2ZU0ifX0sOTM1NTQ4KGUpe2UuZXhwb3J0cz17Y29udGFpbmVyOiJjb250YWluZXItcGhhU0Y4SFQiLHBlcmNlbnRhZ2U6InBlcmNlbnRhZ2UtcGhhU0Y4SFQiLHBlcmNlbnRhZ2VOZWdhdGl2ZToicGVyY2VudGFnZU5lZ2F0aXZlLXBoYVNGOEhUIixwZXJjZW50YWdlUG9zaXRpdmU6InBlcmNlbnRhZ2VQb3NpdGl2ZS1waGFTRjhIVCIscGVyY2VudGFnZU5vbmU6InBlcmNlbnRhZ2VOb25lLXBoYVNGOEhUIixwZXJpb2Q6InBlcmlvZC1waGFTRjhIVCIsbmVnYXRpdmVMb3c6Im5lZ2F0aXZlTG93LXBoYVNGOEhUIixuZWdhdGl2ZU1lZGl1bToibmVnYXRpdmVNZWRpdW0tcGhhU0Y4SFQiLG5lZ2F0aXZlSGlnaDoibmVnYXRpdmVIaWdoLXBoYVNGOEhUIixwb3NpdGl2ZUxvdzoicG9zaXRpdmVMb3ctcGhhU0Y4SFQiLHBvc2l0aXZlTWVkaXVtOiJwb3NpdGl2ZU1lZGl1bS1waGFTRjhIVCIscG9zaXRpdmVIaWdoOiJwb3NpdGl2ZUhpZ2gtcGhhU0Y4SFQiLG5vbmU6Im5vbmUtcGhhU0Y4SFQiLHNtYWxsU2l6ZToic21hbGxTaXplLXBoYVNGOEhUIn19LDU4MzY3MihlKXtlLmV4cG9ydHM9e2NvbnRhaW5lcjoiY29udGFpbmVyLVlyTG14UXprIixoZWFkZXI6ImhlYWRlci1ZckxteFF6ayIsdGl0bGU6InRpdGxlLVlyTG14UXprIixwcmljZToicHJpY2UtWXJMbXhRemsiLHJhbmdlOiJyYW5nZS1ZckxteFF6ayIsYmFyOiJiYXItWXJMbXhRemsiLGxvdzoibG93LVlyTG14UXprIixyb3VuZGVkTGVmdDoicm91bmRlZExlZnQtWXJMbXhRemsiLHJvdW5kZWRSaWdodDoicm91bmRlZFJpZ2h0LVlyTG14UXprIixhcnJvd0NvbnRhaW5lcjoiYXJyb3dDb250YWluZXItWXJMbXhRemsiLGFycm93OiJhcnJvdy1ZckxteFF6ayIsZXh0cmFNYXJnaW46ImV4dHJhTWFyZ2luLVlyTG14UXprIn19LDU3MzczNShlKXtlLmV4cG9ydHM9e2Rlc2NyaXB0aW9uczoiZGVzY3JpcHRpb25zLVhZUTh0cEd4Iixjb2xsYXBzZWQ6ImNvbGxhcHNlZC1YWVE4dHBHeCIsYnV0dG9uOiJidXR0b24tWFlROHRwR3gifX0sNzIwOTQ0KGUpe2UuZXhwb3J0cz17dmFsdWU6InZhbHVlLUhiS1RodW9HIixpdGVtOiJpdGVtLUhiS1RodW9HIixsaW5rOiJsaW5rLUhiS1RodW9HIixkZXRhaWxzTGlua0ljb246ImRldGFpbHNMaW5rSWNvbi1IYktUaHVvRyJ9fSwxODE4NzQoZSl7ZS5leHBvcnRzPXt0aXRsZToidGl0bGUtRXZpVUM2RDUiLGl0ZW1Db250ZW50OiJpdGVtQ29udGVudC1FdmlVQzZENSIsd2l0aEljb246IndpdGhJY29uLUV2aVVDNkQ1In19LDMwODQ0NShlKXtlLmV4cG9ydHM9e3dyYXA6IndyYXAtblRMVGdZaFkiLGxvZ286ImxvZ28tblRMVGdZaFkifX0sMzgyMzQxKGUpe2UuZXhwb3J0cz17dmFsdWU6InZhbHVlLVNyblY1eHgyIixsaW5rOiJsaW5rLVNyblY1eHgyIixpY29uQXJyb3c6Imljb25BcnJvdy1Tcm5WNXh4MiIsbGlua0l0ZW06ImxpbmtJdGVtLVNyblY1eHgyIixpc3N1ZXJMaW5rOiJpc3N1ZXJMaW5rLVNyblY1eHgyIixkZXRhaWxzTGlua0ljb246ImRldGFpbHNMaW5rSWNvbi1Tcm5WNXh4MiJ9fSwxOTQ4OTkoZSl7ZS5leHBvcnRzPXt3cmFwOiJ3cmFwLW1xRktkWEZPIn19LDM2NjI5MyhlKXtlLmV4cG9ydHM9e3dyYXA6IndyYXAtRFBXWGIxcXUiLGJsb2NrOiJibG9jay1EUFdYYjFxdSIsCmxvZ286ImxvZ28tRFBXWGIxcXUiLGNvcHk6ImNvcHktRFBXWGIxcXUifX0sNzQzNTY1KGUpe2UuZXhwb3J0cz17d3JhcDoid3JhcC1EbmFGbUI3YiJ9fSw1MjUzMTAoZSl7ZS5leHBvcnRzPXttZW51Q29weUJ1dHRvbjoibWVudUNvcHlCdXR0b24teWhsUUFaU1UiLGljb25zOiJpY29ucy15aGxRQVpTVSIsaWNvbjoiaWNvbi15aGxRQVpTVSIsbG9nbzoibG9nby15aGxRQVpTVSIsZGVzY3JpcHRpb246ImRlc2NyaXB0aW9uLXlobFFBWlNVIixsYWJlbDoibGFiZWwteWhsUUFaU1UifX0sNDUzNjAoZSl7ZS5leHBvcnRzPXtpY29uOiJpY29uLXZQRkw5SlVhIn19LDk5NzExNyhlKXtlLmV4cG9ydHM9e21lbnVIZWFkZXI6Im1lbnVIZWFkZXItRkpRMGtQS2giLHRpdGxlOiJ0aXRsZS1GSlEwa1BLaCIsbWVudUJ1dHRvbjoibWVudUJ1dHRvbi1GSlEwa1BLaCJ9fSw5NTgzOShlKXtlLmV4cG9ydHM9e2xpbms6ImxpbmstazMyOEFudmsiLHRleHQ6InRleHQtazMyOEFudmsiLGRldGFpbHNMaW5rSWNvbjoiZGV0YWlsc0xpbmtJY29uLWszMjhBbnZrIixpdGVtOiJpdGVtLWszMjhBbnZrIixpdGVtV2l0aE91dEhvdmVyOiJpdGVtV2l0aE91dEhvdmVyLWszMjhBbnZrIixsYWJlbDoibGFiZWwtazMyOEFudmsifX0sMTAzODA2KGUpe2UuZXhwb3J0cz17dmFsdWU6InZhbHVlLWpEZG1CR0QwIixkZXRhaWxzTGlua0ljb246ImRldGFpbHNMaW5rSWNvbi1qRGRtQkdEMCIsbGluazoibGluay1qRGRtQkdEMCIsaWNvbkFycm93OiJpY29uQXJyb3ctakRkbUJHRDAiLHVuZGVybHlpbmdTeW1ib2xMaW5rOiJ1bmRlcmx5aW5nU3ltYm9sTGluay1qRGRtQkdEMCJ9fSwzODQ0MzQoZSl7ZS5leHBvcnRzPXtjb250YWluZXI6ImNvbnRhaW5lci1hZDZUbHBlZSJ9fSw2MDc2NzQoZSl7ZS5leHBvcnRzPXtjb250YWluZXI6ImNvbnRhaW5lci1jQTg5bW5mUiIsbGFiZWxSb3c6ImxhYmVsUm93LWNBODltbmZSIixsYWJlbDoibGFiZWwtY0E4OW1uZlIifX0sMjc3OTMxKGUpe2UuZXhwb3J0cz17Y29udGFpbmVyOiJjb250YWluZXItaE1uazIyTVciLG9wYWNpdHk6Im9wYWNpdHktaE1uazIyTVciLHdpZGdldFdyYXBwZXI6IndpZGdldFdyYXBwZXItaE1uazIyTVciLGxhcmdlOiJsYXJnZS1oTW5rMjJNVyIsb2Zmc2V0RGlzYWJsZWQ6Im9mZnNldERpc2FibGVkLWhNbmsyMk1XIixzZXBhcmF0b3I6InNlcGFyYXRvci1oTW5rMjJNVyIsaGludFBsYWNlaG9sZGVyOiJoaW50UGxhY2Vob2xkZXItaE1uazIyTVciLGhpbnQ6ImhpbnQtaE1uazIyTVciLHByZXZpZXdCdXR0b25zV3JhcDoicHJldmlld0J1dHRvbnNXcmFwLWhNbmsyMk1XIixwcmV2aWV3QnV0dG9uOiJwcmV2aWV3QnV0dG9uLWhNbmsyMk1XIix1c2VyU2VsZWN0VGV4dDoidXNlclNlbGVjdFRleHQtaE1uazIyTVciLG1vcmVBYm91dEZ1bmRCdXR0b246Im1vcmVBYm91dEZ1bmRCdXR0b24taE1uazIyTVciLGhpZ2hsaWdodDoiaGlnaGxpZ2h0LWhNbmsyMk1XIixncm93aW5nOiJncm93aW5nLWhNbmsyMk1XIixmYWxsaW5nOiJmYWxsaW5nLWhNbmsyMk1XIixzZWNvbmRhcnlQcmljZVZhbHVlOiJzZWNvbmRhcnlQcmljZVZhbHVlLWhNbmsyMk1XIixpbmZvOiJpbmZvLWhNbmsyMk1XIixwcmljZVdyYXBwZXI6InByaWNlV3JhcHBlci1oTW5rMjJNVyJ9fSw5OTk0MjIoZSl7ZS5leHBvcnRzPXtub0RpdmlkZW5kc1RleHQ6Im5vRGl2aWRlbmRzVGV4dC1mS21PdjA1VSIsc3RhdHM6InN0YXRzLWZLbU92MDVVIn19LDkyNzkyMihlKXtlLmV4cG9ydHM9e3dyYXA6IndyYXAteVN3dkJDUjEiLHBpZVdyYXA6InBpZVdyYXAteVN3dkJDUjEiLGxlZ2VuZEl0ZW06ImxlZ2VuZEl0ZW0teVN3dkJDUjEiLHN3YXRjaDoic3dhdGNoLXlTd3ZCQ1IxIixzdG9ja3M6InN0b2Nrcy15U3d2QkNSMSIsb3RoZXI6Im90aGVyLXlTd3ZCQ1IxIixsZWdlbmRUZXh0OiJsZWdlbmRUZXh0LXlTd3ZCQ1IxIixsZWdlbmREYXRhOiJsZWdlbmREYXRhLXlTd3ZCQ1IxIn19LDc0ODkxNChlKXtlLmV4cG9ydHM9e3dyYXA6IndyYXAtbFdTODN5SnQifX0sMzQ4MDEyKGUpe2UuZXhwb3J0cz17Y29udGFpbmVyOiJjb250YWluZXItS3dyUGtlbXciLGhlYWRlcldyYXBwZXI6ImhlYWRlcldyYXBwZXItS3dyUGtlbXciLGhlYWRlcjoiaGVhZGVyLUt3clBrZW13IixzZXRTZWxlY3RXcmFwOiJzZXRTZWxlY3RXcmFwLUt3clBrZW13IixwZXJpb2RTZWxlY3Q6InBlcmlvZFNlbGVjdC1Ld3JQa2VtdyIscGVyaW9kVGl0bGU6InBlcmlvZFRpdGxlLUt3clBrZW13IixhY3RpdmU6ImFjdGl2ZS1Ld3JQa2VtdyIsZGlzYWJsZWQ6ImRpc2FibGVkLUt3clBrZW13In19LDU5OTk5MihlKXtlLmV4cG9ydHM9e2NhcmQ6ImNhcmQtbGN0Sm1Ed0UiLHByZXZpZXdCdXR0b246InByZXZpZXdCdXR0b24tbGN0Sm1Ed0UiLHRpdGxlOiJ0aXRsZS1sY3RKbUR3RSIsY29udGVudDoiY29udGVudC1sY3RKbUR3RSIsZG90OiJkb3QtbGN0Sm1Ed0UiLGRhdGU6ImRhdGUtbGN0Sm1Ed0UifX0sMjQxOTYoZSl7ZS5leHBvcnRzPXtibG9jazoiYmxvY2stTHpEYXNVM2siLHN0YXJ0SWNvbjoic3RhcnRJY29uLUx6RGFzVTNrIixlbmRJY29uOiJlbmRJY29uLUx6RGFzVTNrIixhZGROb3RlVGV4dDoiYWRkTm90ZVRleHQtTHpEYXNVM2sifX0sOTUwNjY0KGUpe2UuZXhwb3J0cz17Y29udGVudDoiY29udGVudC14QmgyOUUybSJ9fSwzNTE3ODYoZSl7ZS5leHBvcnRzPXtibG9jazoiYmxvY2stc3J1WnRncjUiLHN0YXJ0SWNvbjoic3RhcnRJY29uLXNydVp0Z3I1IixlbmRJY29uOiJlbmRJY29uLXNydVp0Z3I1In19LDkzMzY4MihlKXtlLmV4cG9ydHM9e2Jsb2NrOiJibG9jay1QM0o2Sko5dSIsdGl0bGU6InRpdGxlLVAzSjZKSjl1IixzdGFydEljb246InN0YXJ0SWNvbi1QM0o2Sko5dSIsZm9vdGVyOiJmb290ZXItUDNKNkpKOXUiLGFycm93SWNvbjoiYXJyb3dJY29uLVAzSjZKSjl1In19LDU1NjU2MihlKXtlLmV4cG9ydHM9e3NlbGVjdDoic2VsZWN0LUlaU0JQS2RiIix0aXRsZToidGl0bGUtSVpTQlBLZGIiLGFjdGl2ZToiYWN0aXZlLUlaU0JQS2RiIixkaXNhYmxlZDoiZGlzYWJsZWQtSVpTQlBLZGIifX0sMTYxMzcoZSl7ZS5leHBvcnRzPXsKdGl0bGU6InRpdGxlLW11dFJPNnlWIn19LDI0OTMxOChlKXtlLmV4cG9ydHM9e2NoYXJ0OiJjaGFydC1xcFpjN0R3ayIsaW5hY3RpdmU6ImluYWN0aXZlLXFwWmM3RHdrIn19LDQxNjYyKGUpe2UuZXhwb3J0cz17Y2hhcnQ6ImNoYXJ0LVNfdUx5UUd4IixpbmFjdGl2ZToiaW5hY3RpdmUtU191THlRR3gifX0sMTY4OTg3KGUpe2UuZXhwb3J0cz17Y29udGFpbmVyOiJjb250YWluZXItZXRhSWpBQ3MiLGNoYXJ0OiJjaGFydC1ldGFJakFDcyIsbW9yZUJ1dHRvbjoibW9yZUJ1dHRvbi1ldGFJakFDcyJ9fSwzMjIzMzIoZSl7ZS5leHBvcnRzPXtjb250ZW50OiJjb250ZW50LVVGb3dkVk56IixzbWFsbDoic21hbGwtVUZvd2RWTnoiLGJsb2NrOiJibG9jay1VRm93ZFZOeiIsdGl0bGU6InRpdGxlLVVGb3dkVk56Iix2YWx1ZToidmFsdWUtVUZvd2RWTnoiLHJhbmdlOiJyYW5nZS1VRm93ZFZOeiIscmFuZ2VJdGVtOiJyYW5nZUl0ZW0tVUZvd2RWTnoiLGxlZnQ6ImxlZnQtVUZvd2RWTnoiLHJpZ2h0OiJyaWdodC1VRm93ZFZOeiIsd2l0aFNlcGFyYXRvcjoid2l0aFNlcGFyYXRvci1VRm93ZFZOeiIsaGlkZToiaGlkZS1VRm93ZFZOeiJ9fSwxNzcxMTYoZSl7ZS5leHBvcnRzPXtjb250YWluZXI6ImNvbnRhaW5lci1NMW16NHF1QSIscGFpckNvbnRhaW5lcjoicGFpckNvbnRhaW5lci1NMW16NHF1QSIsbG9nbzoibG9nby1NMW16NHF1QSIsaGlkZGVuOiJoaWRkZW4tTTFtejRxdUEifX0sNjUxNjA4KGUpe2UuZXhwb3J0cz17bGFiZWw6ImxhYmVsLW91MktrVnI1Iix0ZXh0OiJ0ZXh0LW91MktrVnI1IixpY29uOiJpY29uLW91MktrVnI1In19LDQ2MDM3MChlKXtlLmV4cG9ydHM9e3Njcm9sbFdyYXA6InNjcm9sbFdyYXAtRmFPdlREMnIiLHNjcm9sbFdyYXBfdmlzaWJsZToic2Nyb2xsV3JhcF92aXNpYmxlLUZhT3ZURDJyIn19LDM0MzA2NihlKXtlLmV4cG9ydHM9e2NvbnRhaW5lcjoiY29udGFpbmVyLVR2N0xTalV6IixvdmVybGF5U2Nyb2xsV3JhcDoib3ZlcmxheVNjcm9sbFdyYXAtVHY3TFNqVXoiLHdyYXBwZXI6IndyYXBwZXItVHY3TFNqVXoifX0sNjQ2MTYyKGUpe2UuZXhwb3J0cz17d3JhcDoid3JhcC12U2I2QzBCaiIsIndyYXAtLWhvcml6b250YWwiOiJ3cmFwLS1ob3Jpem9udGFsLXZTYjZDMEJqIixiYXI6ImJhci12U2I2QzBCaiIsYmFySW5uZXI6ImJhcklubmVyLXZTYjZDMEJqIiwiYmFySW5uZXItLWhvcml6b250YWwiOiJiYXJJbm5lci0taG9yaXpvbnRhbC12U2I2QzBCaiIsImJhci0taG9yaXpvbnRhbCI6ImJhci0taG9yaXpvbnRhbC12U2I2QzBCaiJ9fSw0NzQ4MjQoZSl7ZS5leHBvcnRzPXtjaGFuZ2U6ImNoYW5nZS1TTnZQdmxKMyIsd3JhcDoid3JhcC1TTnZQdmxKMyJ9fSw2NDc4NDQoZSl7ZS5leHBvcnRzPXtoaWdobGlnaHQ6ImhpZ2hsaWdodC1tYUoyV256QSIsZ3Jvd2luZzoiZ3Jvd2luZy1tYUoyV256QSIsZmFsbGluZzoiZmFsbGluZy1tYUoyV256QSJ9fSw3MjAyNDQoZSl7ZS5leHBvcnRzPXtjb250YWluZXI6ImNvbnRhaW5lci1xV2NPNGJwOSIscHJpY2U6InByaWNlLXFXY080YnA5IixpbmZvOiJpbmZvLXFXY080YnA5IixjdXJyZW5jeToiY3VycmVuY3ktcVdjTzRicDkiLHByaWNlV3JhcHBlcjoicHJpY2VXcmFwcGVyLXFXY080YnA5In19LDI0NDgyMChlKXtlLmV4cG9ydHM9e2xvZ286ImxvZ28tZDB2Vm1HdlQifX0sNTMzODAxKGUpe2UuZXhwb3J0cz17ImNvbnRhaW5lci1zdHJvbmctc2VsbCI6ImNvbnRhaW5lci1zdHJvbmctc2VsbC1lN1V0RWp2ViIsInN0cm9uZy1zZWxsIjoic3Ryb25nLXNlbGwtZTdVdEVqdlYiLHNwZWVkb21ldGVyVGV4dDoic3BlZWRvbWV0ZXJUZXh0LWU3VXRFanZWIiwiY29udGFpbmVyLXNlbGwiOiJjb250YWluZXItc2VsbC1lN1V0RWp2ViIsc2VsbDoic2VsbC1lN1V0RWp2ViIsImNvbnRhaW5lci1uZXV0cmFsIjoiY29udGFpbmVyLW5ldXRyYWwtZTdVdEVqdlYiLG5ldXRyYWw6Im5ldXRyYWwtZTdVdEVqdlYiLCJjb250YWluZXItYnV5IjoiY29udGFpbmVyLWJ1eS1lN1V0RWp2ViIsYnV5OiJidXktZTdVdEVqdlYiLCJjb250YWluZXItc3Ryb25nLWJ1eSI6ImNvbnRhaW5lci1zdHJvbmctYnV5LWU3VXRFanZWIiwic3Ryb25nLWJ1eSI6InN0cm9uZy1idXktZTdVdEVqdlYiLHNwZWVkb21ldGVyVGV4dERlZmF1bHQ6InNwZWVkb21ldGVyVGV4dERlZmF1bHQtZTdVdEVqdlYiLHNjYWxlOiJzY2FsZS1lN1V0RWp2ViJ9fSw2NDQwMzkoZSl7ZS5leHBvcnRzPXsiY29udGFpbmVyLXN0cm9uZy1zZWxsIjoiY29udGFpbmVyLXN0cm9uZy1zZWxsLVRhdF82Wm1BIiwic3Ryb25nLXNlbGwiOiJzdHJvbmctc2VsbC1UYXRfNlptQSIsc3BlZWRvbWV0ZXJUZXh0OiJzcGVlZG9tZXRlclRleHQtVGF0XzZabUEiLCJjb250YWluZXItc2VsbCI6ImNvbnRhaW5lci1zZWxsLVRhdF82Wm1BIixzZWxsOiJzZWxsLVRhdF82Wm1BIiwiY29udGFpbmVyLW5ldXRyYWwiOiJjb250YWluZXItbmV1dHJhbC1UYXRfNlptQSIsbmV1dHJhbDoibmV1dHJhbC1UYXRfNlptQSIsImNvbnRhaW5lci1idXkiOiJjb250YWluZXItYnV5LVRhdF82Wm1BIixidXk6ImJ1eS1UYXRfNlptQSIsImNvbnRhaW5lci1zdHJvbmctYnV5IjoiY29udGFpbmVyLXN0cm9uZy1idXktVGF0XzZabUEiLCJzdHJvbmctYnV5Ijoic3Ryb25nLWJ1eS1UYXRfNlptQSIsc3BlZWRvbWV0ZXJUZXh0RGVmYXVsdDoic3BlZWRvbWV0ZXJUZXh0RGVmYXVsdC1UYXRfNlptQSIsc2NhbGU6InNjYWxlLVRhdF82Wm1BIn19LDMxMzc3MihlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtEcmF3ZXJDb250ZXh0OigpPT5pLERyYXdlck1hbmFnZXI6KCk9Pm99KTt2YXIgYT1uKDc3OTQ3NCkscj1uKDk5NTY3OCk7Y2xhc3MgbyBleHRlbmRzIGEuUHVyZUNvbXBvbmVudHtjb25zdHJ1Y3RvcihlKXtzdXBlcihlKSx0aGlzLl9pc0JvZHlGaXhlZD0hMSx0aGlzLl9hZGREcmF3ZXI9ZT0+e3RoaXMuc2V0U3RhdGUoKHQ9Pih7c3RhY2s6Wy4uLnQuc3RhY2ssZV19KSkpfSx0aGlzLl9yZW1vdmVEcmF3ZXI9ZT0+e3RoaXMuc2V0U3RhdGUoKHQ9Pih7c3RhY2s6dC5zdGFjay5maWx0ZXIoKHQ9PnQhPT1lKSl9KSkpfSx0aGlzLnN0YXRlPXsKc3RhY2s6W119fWNvbXBvbmVudERpZFVwZGF0ZShlLHQpeyF0LnN0YWNrLmxlbmd0aCYmdGhpcy5zdGF0ZS5zdGFjay5sZW5ndGgmJigoMCxyLnJlcXVlc3RNb2RhbFNjcm9sbExvY2spKHdpbmRvdyksdGhpcy5faXNCb2R5Rml4ZWQ9ITApLHQuc3RhY2subGVuZ3RoJiYhdGhpcy5zdGF0ZS5zdGFjay5sZW5ndGgmJnRoaXMuX2lzQm9keUZpeGVkJiYoKDAsci5yZWxlYXNlTW9kYWxTY3JvbGxMb2NrKSh3aW5kb3cpLHRoaXMuX2lzQm9keUZpeGVkPSExKX1jb21wb25lbnRXaWxsVW5tb3VudCgpe3RoaXMuc3RhdGUuc3RhY2subGVuZ3RoJiZ0aGlzLl9pc0JvZHlGaXhlZCYmKDAsci5yZWxlYXNlTW9kYWxTY3JvbGxMb2NrKSh3aW5kb3cpfXJlbmRlcigpe3JldHVybiBhLmNyZWF0ZUVsZW1lbnQoaS5Qcm92aWRlcix7dmFsdWU6e2FkZERyYXdlcjp0aGlzLl9hZGREcmF3ZXIscmVtb3ZlRHJhd2VyOnRoaXMuX3JlbW92ZURyYXdlcixjdXJyZW50RHJhd2VyOnRoaXMuc3RhdGUuc3RhY2subGVuZ3RoP3RoaXMuc3RhdGUuc3RhY2tbdGhpcy5zdGF0ZS5zdGFjay5sZW5ndGgtMV06bnVsbH19LHRoaXMucHJvcHMuY2hpbGRyZW4pfX1jb25zdCBpPWEuY3JlYXRlQ29udGV4dChudWxsKX0sOTY0MjE0KGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse0RyYXdlcjooKT0+Z30pO3ZhciBhPW4oNzc5NDc0KSxyPW4oOTE0NDg3KSxvPW4ubihyKSxpPW4oMTM4NjM4KSxsPW4oNTg1NDgpLHM9bigxNTAxNTApLGM9bigzMTM3NzIpLHU9big2MzI5OTIpLGQ9big1NTgwMzApLG09big4MDMyODcpO3ZhciBwO2Z1bmN0aW9uIGcoZSl7Y29uc3R7cG9zaXRpb246dD0iQm90dG9tIixvbkNsb3NlOm4sY2hpbGRyZW46cixyZWZlcmVuY2U6ZCxjbGFzc05hbWU6cCx0aGVtZTpnPW19PWUsdj0oMCxpLmVuc3VyZU5vdE51bGwpKCgwLGEudXNlQ29udGV4dCkoYy5EcmF3ZXJDb250ZXh0KSksW2ZdPSgwLGEudXNlU3RhdGUpKCgoKT0+KDAscy5yYW5kb21IYXNoKSgpKSkseT0oMCxhLnVzZVJlZikobnVsbCksdz0oMCxhLnVzZUNvbnRleHQpKHUuQ2xvc2VEZWxlZ2F0ZUNvbnRleHQpO3JldHVybigwLGEudXNlTGF5b3V0RWZmZWN0KSgoKCk9PigoMCxpLmVuc3VyZU5vdE51bGwpKHkuY3VycmVudCkuZm9jdXMoe3ByZXZlbnRTY3JvbGw6ITB9KSx3LnN1YnNjcmliZSh2LG4pLHYuYWRkRHJhd2VyKGYpLCgpPT57di5yZW1vdmVEcmF3ZXIoZiksdy51bnN1YnNjcmliZSh2LG4pfSkpLFtdKSxhLmNyZWF0ZUVsZW1lbnQobC5Qb3J0YWwsbnVsbCxhLmNyZWF0ZUVsZW1lbnQoImRpdiIse3JlZjpkLGNsYXNzTmFtZTpvKCkobS53cmFwLG1bYHBvc2l0aW9uJHt0fWBdKX0sZj09PXYuY3VycmVudERyYXdlciYmYS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6bS5iYWNrZHJvcCxvbkNsaWNrOm59KSxhLmNyZWF0ZUVsZW1lbnQoaCx7Y2xhc3NOYW1lOm8oKShnLmRyYXdlcixtW2Bwb3NpdGlvbiR7dH1gXSxwKSxyZWY6eSwiZGF0YS1uYW1lIjplWyJkYXRhLW5hbWUiXSwiZGF0YS1xYS1pZCI6ZVsiZGF0YS1xYS1pZCJdfSxyKSkpfSFmdW5jdGlvbihlKXtlLkxlZnQ9IkxlZnQiLGUuQm90dG9tPSJCb3R0b20ifShwfHwocD17fSkpO2NvbnN0IGg9KDAsYS5mb3J3YXJkUmVmKSgoKGUsdCk9Pntjb25zdHtjbGFzc05hbWU6biwuLi5yfT1lO3JldHVybiBhLmNyZWF0ZUVsZW1lbnQoZC5Ub3VjaFNjcm9sbENvbnRhaW5lcix7Y2xhc3NOYW1lOm8oKShtLmRyYXdlcixuKSx0YWJJbmRleDotMSxyZWY6dCwuLi5yfSl9KSl9LDgwNzEwKGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse0RFRkFVTFRfVEhFTUU6KCk9PnMsU2NhbGVUZXh0OigpPT5jfSk7dmFyIGE9big3Nzk0NzQpLHI9big5MTQ0ODcpLG89bi5uKHIpLGk9big2ODIxNjgpLGw9bigxNjQxMzkpO2NvbnN0IHM9bDtmdW5jdGlvbiBjKGUpe2NvbnN0e3NpemU6dCx0aGVtZTpuPXN9PWUscj0oMCxpLmdldFJlY29tbWVuZGF0aW9uVG9UaXRsZSkoKTtyZXR1cm4gYS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6bygpKGwuY29udGFpbmVyLGxbYGNvbnRhaW5lci0ke3R9YF0pfSxhLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6bi5uZXV0cmFsfSxyLm5ldXRyYWwpLGEuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOm8oKShsLnRleHRSb3csbC50ZXh0Um93TWlkZGxlKX0sYS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOm4uc2VsbH0sci5zZWxsKSxhLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6bi5idXl9LHIuYnV5KSksYS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6bygpKGwudGV4dFJvdyxsLnRleHRSb3dCb3R0b20pfSxhLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6blsic3Ryb25nLXNlbGwiXX0sclsic3Ryb25nLXNlbGwiXSksYS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOm5bInN0cm9uZy1idXkiXX0sclsic3Ryb25nLWJ1eSJdKSkpfX0sOTkzNzYwKGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse1NjYWxlOigpPT5wfSk7dmFyIGE9big3Nzk0NzQpLHI9big5MTQ0ODcpLG89bi5uKHIpLGk9bigyNzMzMTApLGw9bigyOTczMzcpLHM9bigxNzE5MjkpLGM9big4ODQxNTMpLHU9big4MzEwNzMpO2NvbnN0IGQ9e3NtYWxsOnMsbWVkaXVtOmMsbGFyZ2U6dX0sbT17InN0cm9uZy1zZWxsIjotMTY0Ljg1LHNlbGw6LTEyNy40MjUsbmV1dHJhbDotOTAsYnV5Oi01Mi41NzUsInN0cm9uZy1idXkiOi0xNS4xNX07ZnVuY3Rpb24gcChlKXtjb25zdHtzaXplOnQscmVjb21tZW5kYXRpb246bixjbGFzc05hbWU6cn09ZTtyZXR1cm4gYS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6bygpKGwuY29udGFpbmVyLGxbYGNvbnRhaW5lci0ke3R9YF0sbC5hbmltYXRlZCksc3R5bGU6eyItLXJlY29tbWVuZGF0aW9uLWRlZ3JlZXMiOm1bbl0rImRlZyJ9fSxhLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpsWyJzY2FsZS1jb250YWluZXIiXX0sYS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6bC5ib3JkZXJ9KSxhLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpsLm1hc2tXcmFwCn0sYS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6bC5tYXNrfSxhLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpvKCkobC5iYWNrZ3JvdW5kLHIpfSkpKSksYS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6bC5hcnJvd1dyYXB9LGEuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOmwuYXJyb3d9LGEuY3JlYXRlRWxlbWVudChpLkljb24se2ljb246ZFt0XSxjbGFzc05hbWU6bC5pY29ufSkpKSl9fSwzNTUxOTIoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7U3BlZWRvbWV0ZXJUZXh0OigpPT5jfSk7dmFyIGE9big3Nzk0NzQpLHI9big5MTQ0ODcpLG89bi5uKHIpLGk9big2ODIxNjgpLGw9big3NTg0MDEpO2NvbnN0IHM9WyJzdHJvbmctc2VsbCIsInNlbGwiLCJuZXV0cmFsIiwiYnV5Iiwic3Ryb25nLWJ1eSJdO2Z1bmN0aW9uIGMoZSl7Y29uc3R7c2l6ZTp0LGNsYXNzTmFtZTpufT1lLHI9KDAsaS5nZXRSZWNvbW1lbmRhdGlvblRvVGl0bGUpKCk7cmV0dXJuIGEuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOm8oKShsLmNvbnRhaW5lcixsW2Bjb250YWluZXItJHtlLnJlY29tbWVuZGF0aW9ufWBdLGxbYGNvbnRhaW5lci0ke3R9YF0pfSxzLm1hcCgoZT0+YS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOm8oKShsW2B0ZXh0LSR7dH1gXSxsW2VdLG4pLGtleTplfSxyW2VdKSkpKX19LDQ0OTgyNihlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtERUZBVUxUX1RIRU1FOigpPT5sLFNwZWVkb21ldGVyOigpPT5zfSk7dmFyIGE9big3Nzk0NzQpLHI9big5OTM3NjApLG89big4MDcxMCksaT1uKDM1NTE5Mik7Y29uc3QgbD1vLkRFRkFVTFRfVEhFTUU7ZnVuY3Rpb24gcyhlKXtjb25zdHtzaXplOnQscmVjb21tZW5kYXRpb246bix0aGVtZTpzPWx9PWUse2NvbnRhaW5lcjpjLHNwZWVkb21ldGVyVGV4dDp1LHNjYWxlOmQsLi4ubX09cztyZXR1cm4gYS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6Y30sYS5jcmVhdGVFbGVtZW50KG8uU2NhbGVUZXh0LHtzaXplOnQsdGhlbWU6bX0pLGEuY3JlYXRlRWxlbWVudChyLlNjYWxlLHtzaXplOnQscmVjb21tZW5kYXRpb246bixjbGFzc05hbWU6ZH0pLGEuY3JlYXRlRWxlbWVudChpLlNwZWVkb21ldGVyVGV4dCx7c2l6ZTp0LHJlY29tbWVuZGF0aW9uOm4sY2xhc3NOYW1lOnV9KSl9fSw2ODIxNjgoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7Z2V0UmVjb21tZW5kYXRpb25Ub1RpdGxlOigpPT5yfSk7dmFyIGE9big3ODMyNTQpO2Z1bmN0aW9uIHIoKXtyZXR1cm57InN0cm9uZy1zZWxsIjphLnQobnVsbCx7Y29udGV4dDoic2NyZWVuZXJfcmF0aW5nIn0sbig2NjMwMzcpKSxzZWxsOmEudChudWxsLHtjb250ZXh0OiJzY3JlZW5lcl9yYXRpbmcifSxuKDI1NzY0MykpLG5ldXRyYWw6YS50KG51bGwse2NvbnRleHQ6InNjcmVlbmVyX3JhdGluZyJ9LG4oNDU5NDYzKSksYnV5OmEudChudWxsLHtjb250ZXh0OiJzY3JlZW5lcl9yYXRpbmcifSxuKDU2NTk2MikpLCJzdHJvbmctYnV5IjphLnQobnVsbCx7Y29udGV4dDoic2NyZWVuZXJfcmF0aW5nIn0sbig3NDA0ODMpKX19fSw5OTk1MShlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtBcHBDb250ZXh0OigpPT5hfSk7Y29uc3QgYT0oMCxuKDc3OTQ3NCkuY3JlYXRlQ29udGV4dCkoe2lzT25Nb2JpbGVBcHBQYWdlOigpPT4hMSxpc1J0bDohMSxsb2NhbGU6ImVuIixyZW5kZXJNb2RlOiJsZWdhY3kifSl9LDEwNzU4NShlLHQsbil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGEoZSx0KXtyZXR1cm4gdHx8bnVsbD09ZXx8KCJzdHJpbmciPT10eXBlb2YgZXx8QXJyYXkuaXNBcnJheShlKSkmJjA9PT1lLmxlbmd0aH1uLmQodCx7aXNJY29uT25seTooKT0+YX0pfSwyMjA3NjQoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7QnV0dG9uR3JvdXBDb250ZXh0OigpPT5hfSk7Y29uc3QgYT1uKDc3OTQ3NCkuY3JlYXRlQ29udGV4dCh7aXNJbkJ1dHRvbkdyb3VwOiExLGlzR3JvdXBQcmltYXJ5OiExfSl9LDMyODIxOShlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHt1c2VMaWdodEJ1dHRvbkNsYXNzZXM6KCk9PnV9KTt2YXIgYT1uKDc3OTQ3NCkscj1uKDkxNDQ4Nyksbz1uLm4ociksaT1uKDMwOTkyMCksbD1uKDEwNzU4NSkscz1uKDUzMjAxMSksYz1uKDIyMDc2NCk7Y29uc3QgdT0oZSx0LG4pPT57Y29uc3Qgcj0oMCxhLnVzZUNvbnRleHQpKGkuQ3VzdG9tQmVoYXZpb3VyQ29udGV4dCkse2NsYXNzTmFtZTp1LGlzU2VsZWN0ZWQ6ZCxjaGlsZHJlbjptLHNob3dDYXJldDpwLGZvcmNlRGlyZWN0aW9uOmcsaWNvbk9ubHk6aCxjb2xvcjp2PSJncmF5Iix2YXJpYW50OmY9InByaW1hcnkiLHNpemU6eT0ibWVkaXVtIixlbmFibGVBY3RpdmVTdGF0ZVN0eWxlczp3PXIuZW5hYmxlQWN0aXZlU3RhdGVTdHlsZXMsdHlwb2dyYXBoeTpfLGlzTGluazpFPSExLHRleHRXcmFwOmIsaXNQaWxsczpOLGlzQWN0aXZlOlMsc3RhcnRTbG90OngsZW5kU2xvdDpDfT10LFQ9ZVtgdHlwb2dyYXBoeS0keygoZSx0LG4pPT57aWYobil7Y29uc3QgZT1uLnJlcGxhY2UoL15cRCsvZywiIik7cmV0dXJuIHQ/YHNlbWlib2xkJHtlfWA6bn1zd2l0Y2goZSl7Y2FzZSJ4c21hbGwiOnJldHVybiB0PyJzZW1pYm9sZDE0cHgiOiJyZWd1bGFyMTRweCI7Y2FzZSJzbWFsbCI6Y2FzZSJtZWRpdW0iOnJldHVybiB0PyJzZW1pYm9sZDE2cHgiOiJyZWd1bGFyMTZweCI7ZGVmYXVsdDpyZXR1cm4iIn19KSh5LGR8fE4sX3x8dm9pZCAwKX1gXSxrPSgwLGEudXNlQ29udGV4dCkocy5Db250cm9sR3JvdXBDb250ZXh0KSx7aXNJbkJ1dHRvbkdyb3VwOkQsaXNHcm91cFByaW1hcnk6SX09KDAsYS51c2VDb250ZXh0KShjLkJ1dHRvbkdyb3VwQ29udGV4dCk7cmV0dXJuIG8oKSh1LGUubGlnaHRCdXR0b24sRSYmZS5saW5rLFMmJmUuYWN0aXZlLGQmJmUuc2VsZWN0ZWQsKDAsCmwuaXNJY29uT25seSkobSxoKSYmZS5ub0NvbnRlbnQsISF4JiZlLndpdGhTdGFydFNsb3QsKHB8fCEhQykmJmUud2l0aEVuZFNsb3QsbiYmZS53aXRoR3JvdXBlZCxnJiZlW2ddLGVbST8icHJpbWFyeSI6Zl0sZVtJPyJncmF5Ijp2XSxlW3ldLFQsIXcmJmUuZGlzYWJsZUFjdGl2ZVN0YXRlU3R5bGVzLGsuaXNHcm91cGVkJiZlLmdyb3VwZWQsYiYmZS53cmFwLEQmJmUuZGlzYWJsZUFjdGl2ZU9uVG91Y2gsTiYmZS5waWxscyl9fSw4MzAxMihlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtMaWdodEJ1dHRvbkNvbnRlbnQ6KCk9PnB9KTt2YXIgYT1uKDc3OTQ3NCkscj1uKDkxNDQ4Nyksbz1uLm4ociksaT1uKDc3MDE0MyksbD1uKDEwNzU4NSkscz1uKDI3MzMxMCksYz1uKDkzNTEpLHU9bi5uKGMpLGQ9bigzNjQ4MTUpLG09bi5uKGQpO2Z1bmN0aW9uIHAoZSl7Y29uc3R7c2hvd0NhcmV0OnQsaWNvbk9ubHk6bixlbGxpcHNpczpyPSEwLHRleHRXcmFwOmMsdG9vbHRpcFRleHQ6ZCxjaGlsZHJlbjpwLGVuZFNsb3Q6ZyxzdGFydFNsb3Q6aCxpc0FjdGl2ZUNhcmV0OnZ9PWU7W2csdF0uZmlsdGVyKChlPT4hIWUpKTtyZXR1cm4gYS5jcmVhdGVFbGVtZW50KGEuRnJhZ21lbnQsbnVsbCxoJiZhLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6bygpKG0oKS5zbG90LG0oKS5zdGFydFNsb3QpfSxoKSwhKDAsbC5pc0ljb25Pbmx5KShwLG4pJiZhLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6bygpKG0oKS5jb250ZW50LCFjJiZtKCkubm93cmFwLCJhcHBseS1vdmVyZmxvdy10b29sdGlwIiwiYXBwbHktb3ZlcmZsb3ctdG9vbHRpcC0tY2hlY2stY2hpbGRyZW4tcmVjdXJzaXZlbHkiLCJhcHBseS1vdmVyZmxvdy10b29sdGlwLS1hbGxvdy10ZXh0IiksImRhdGEtb3ZlcmZsb3ctdG9vbHRpcC10ZXh0IjpkPz8oMCxpLmdldFRleHRGb3JUb29sdGlwKShwKX0sY3x8cj9hLmNyZWF0ZUVsZW1lbnQoYS5GcmFnbWVudCxudWxsLGEuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZTpvKCkoIWMmJnImJm0oKS5lbGxpcHNpc0NvbnRhaW5lcixjJiZtKCkudGV4dFdyYXBDb250YWluZXIsYyYmciYmbSgpLnRleHRXcmFwV2l0aEVsbGlwc2lzKX0scCksYS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOm0oKS52aXN1YWxseUhpZGRlbiwiYXJpYS1oaWRkZW4iOiEwfSxwKSk6YS5jcmVhdGVFbGVtZW50KGEuRnJhZ21lbnQsbnVsbCxwLGEuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZTptKCkudmlzdWFsbHlIaWRkZW4sImFyaWEtaGlkZGVuIjohMH0scCkpKSxnJiZhLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6bygpKG0oKS5zbG90LG0oKS5lbmRTbG90KX0sZyksdCYmKGU9PmEuY3JlYXRlRWxlbWVudChzLkljb24se2NsYXNzTmFtZTpvKCkobSgpLmNhcmV0LGUmJm0oKS5hY3RpdmVDYXJldCksaWNvbjp1KCl9KSkodikpfX0sODU0ODIwKGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse0xpZ2h0QnV0dG9uOigpPT5tfSk7dmFyIGE9big3Nzk0NzQpLHI9big1MzIwMTEpLG89bigzMjgyMTkpLGk9big4MzAxMiksbD1uKDM0NTExNikscz1uKDM2NDgxNSksYz1uLm4ocyksdT1uKDg1NDQ1KSxkPW4ubih1KTtmdW5jdGlvbiBtKGUpe2NvbnN0e2lzR3JvdXBlZDp0fT1hLnVzZUNvbnRleHQoci5Db250cm9sR3JvdXBDb250ZXh0KSx7cmVmZXJlbmNlOm4sY2xhc3NOYW1lOnMsaXNTZWxlY3RlZDp1LGNoaWxkcmVuOm0saWNvbk9ubHk6cCxlbGxpcHNpczpnLHNob3dDYXJldDpoLGZvcmNlRGlyZWN0aW9uOnYsZW5kU2xvdDpmLHN0YXJ0U2xvdDp5LGNvbG9yOncsdmFyaWFudDpfLHNpemU6RSxlbmFibGVBY3RpdmVTdGF0ZVN0eWxlczpiLHR5cG9ncmFwaHk6Tix0ZXh0V3JhcDpTPSExLG1heExpbmVzOngsc3R5bGU6Qz17fSxpc1BpbGxzOlQsaXNBY3RpdmU6ayx0b29sdGlwVGV4dDpELHJvbGU6SSxkYXRhUWFJZDpNLGFyaWFMYWJlbDpMLG5hbWU6UCxvbkZvY3VzOkYsb25CbHVyOkEsb25Nb3VzZUVudGVyOlIsb25Nb3VzZUxlYXZlOkIsb25Nb3VzZU92ZXI6Tyxvbk1vdXNlT3V0Olcsb25DbGljazpVLG9uQW5pbWF0aW9uRW5kOlYsb25Qb2ludGVyT3Zlcjp6LG9uUG9pbnRlck91dDpILG9uS2V5RG93bjpxLGF1dG9Gb2N1czpHLGlzQWN0aXZlQ2FyZXQ6WSxpZDpLLGRpc2FibGVkOmosdGFiSW5kZXg6JCx2YWx1ZTpaLHRpdGxlOlgsdHlwZTpRLC4uLkp9PWUsZWU9KDAsbC5maWx0ZXJEYXRhUHJvcHMpKEopLHRlPSgwLGwuZmlsdGVyQXJpYVByb3BzKShKKSxuZT1TP3g/PzI6MSxhZT1uZT4wP3suLi5DLCItLXVpLWxpYi1saWdodC1idXR0b24tY29udGVudC1tYXgtbGluZXMiOm5lfTpDO3JldHVybiBhLmNyZWF0ZUVsZW1lbnQoImJ1dHRvbiIse25hbWU6UCxvbkZvY3VzOkYsb25CbHVyOkEsb25Nb3VzZUVudGVyOlIsb25Nb3VzZUxlYXZlOkIsb25Nb3VzZU92ZXI6Tyxvbk1vdXNlT3V0Olcsb25DbGljazpVLG9uQW5pbWF0aW9uRW5kOlYsb25Qb2ludGVyT3Zlcjp6LG9uUG9pbnRlck91dDpILG9uS2V5RG93bjpxLGF1dG9Gb2N1czpHLGlkOkssZGlzYWJsZWQ6aix0YWJJbmRleDokLHZhbHVlOlosdGl0bGU6WCx0eXBlOlEsImRhdGEtcWEtaWQiOk0sImFyaWEtbGFiZWwiOkwsLi4uZWUsLi4udGUsY2xhc3NOYW1lOigwLG8udXNlTGlnaHRCdXR0b25DbGFzc2VzKSh7Li4uZCgpLC4uLmMoKX0se2NsYXNzTmFtZTpzLGlzU2VsZWN0ZWQ6dSxjaGlsZHJlbjptLGljb25Pbmx5OnAsc2hvd0NhcmV0OmgsZm9yY2VEaXJlY3Rpb246dixlbmRTbG90OmYsc3RhcnRTbG90OnksY29sb3I6dyx2YXJpYW50Ol8sc2l6ZTpFLGVuYWJsZUFjdGl2ZVN0YXRlU3R5bGVzOmIsdHlwb2dyYXBoeTpOLHRleHRXcmFwOlMsaXNQaWxsczpULGlzQWN0aXZlOmt9LHQpLHJlZjpuLHN0eWxlOmFlLHJvbGU6SX0sYS5jcmVhdGVFbGVtZW50KGkuTGlnaHRCdXR0b25Db250ZW50LHtzaG93Q2FyZXQ6aCxpc0FjdGl2ZUNhcmV0OmgmJihUfHxrfHx1fHxZKSxpY29uT25seTpwLGVsbGlwc2lzOmcsdGV4dFdyYXA6Uyx0b29sdGlwVGV4dDpELGVuZFNsb3Q6ZixzdGFydFNsb3Q6eX0sbSkpfX0sCjYyNzg0OChlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtnZXRCbG9ja1N0eWxlQ2xhc3NlczooKT0+cyxnZXRMb2dvU3R5bGVDbGFzc2VzOigpPT5jfSk7dmFyIGE9big5MTQ0ODcpLHI9bi5uKGEpLG89bigxMzY0KSxpPW4oODYwMDI1KSxsPW4ubihpKTtmdW5jdGlvbiBzKGUsdCl7cmV0dXJuIHIoKShsKCkucGFpcixsKClbZV0sdCl9ZnVuY3Rpb24gYyhlLHQ9MixuPSEwKXtyZXR1cm4gcigpKGwoKS5sb2dvLGwoKVtlXSxsKCkuc2tlbGV0b24sby5za2VsZXRvblRoZW1lLndyYXBwZXIsIW4mJmwoKS5lbXB0eSwxPT09dCYmcigpKG8uc2tlbGV0b25UaGVtZS5hbmltYXRlZCkpfX0sMzg3Nzc0KGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse0NpcmNsZUxvZ286KCk9PmwsaGlkZGVuQ2lyY2xlTG9nb0NsYXNzOigpPT5pfSk7dmFyIGE9big3Nzk0NzQpLHI9big3OTQxODcpLG89bigxNDAwMTcpO2NvbnN0IGk9bi5uKG8pKCkuaGlkZGVuO2Z1bmN0aW9uIGwoZSl7Y29uc3QgdD0oMCxyLmlzQ2lyY2xlTG9nb1dpdGhVcmxQcm9wcykoZSksW24sb109KDAsYS51c2VTdGF0ZSkoMCksaT0oMCxhLnVzZVJlZikobnVsbCksbD0oMCxyLmdldFN0eWxlQ2xhc3NlcykoZS5zaXplLG4sZS5jbGFzc05hbWUpLHM9ZS5hbHQ/P2UudGl0bGU/PyIiLGM9dD9zWzBdOmUucGxhY2Vob2xkZXJMZXR0ZXI7cmV0dXJuKDAsYS51c2VFZmZlY3QpKCgoKT0+byhpLmN1cnJlbnQ/LmNvbXBsZXRlPz8hdD8yOjEpKSxbdF0pLHQmJjMhPT1uP2EuY3JlYXRlRWxlbWVudCgiaW1nIix7cmVmOmksY2xhc3NOYW1lOmwsY3Jvc3NPcmlnaW46IiIsc3JjOmUubG9nb1VybCxhbHQ6cyx0aXRsZTplLnRpdGxlLGxvYWRpbmc6ZS5sb2FkaW5nLG9uTG9hZDooKT0+bygyKSxvbkVycm9yOigpPT5vKDMpLCJhcmlhLWxhYmVsIjplWyJhcmlhLWxhYmVsIl0sImFyaWEtaGlkZGVuIjplWyJhcmlhLWhpZGRlbiJdfSk6YS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOmwsdGl0bGU6ZS50aXRsZSwiYXJpYS1sYWJlbCI6ZVsiYXJpYS1sYWJlbCJdLCJhcmlhLWhpZGRlbiI6ZVsiYXJpYS1oaWRkZW4iXX0sYyl9fSw3OTQxODcoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7Z2V0U3R5bGVDbGFzc2VzOigpPT5zLGlzQ2lyY2xlTG9nb1dpdGhVcmxQcm9wczooKT0+Y30pO3ZhciBhPW4oOTE0NDg3KSxyPW4ubihhKSxvPW4oMTM2NCksaT1uKDE0MDAxNyksbD1uLm4oaSk7ZnVuY3Rpb24gcyhlLHQ9MixuKXtyZXR1cm4gcigpKGwoKS5sb2dvLGwoKVtlXSxuLDA9PT10fHwxPT09dD9yKCkoby5za2VsZXRvblRoZW1lLndyYXBwZXIsbCgpLnNrZWxldG9uKTpsKCkubGV0dGVyLDE9PT10JiZvLnNrZWxldG9uVGhlbWUuYW5pbWF0ZWQpfWZ1bmN0aW9uIGMoZSl7cmV0dXJuImxvZ29VcmwiaW4gZSYmbnVsbCE9PWUubG9nb1VybCYmdm9pZCAwIT09ZS5sb2dvVXJsJiYwIT09ZS5sb2dvVXJsLmxlbmd0aH19LDUzMjAxMShlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtDb250cm9sR3JvdXBDb250ZXh0OigpPT5vLGRlZmF1bHRDZWxsU3RhdGU6KCk9PnJ9KTt2YXIgYT1uKDc3OTQ3NCk7Y29uc3Qgcj17aXNUb3A6ITAsaXNSaWdodDohMCxpc0JvdHRvbTohMCxpc0xlZnQ6ITB9LG89YS5jcmVhdGVDb250ZXh0KHtpc0dyb3VwZWQ6ITEsY2VsbFN0YXRlOnJ9KX0sMzA5OTIwKGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse0N1c3RvbUJlaGF2aW91ckNvbnRleHQ6KCk9PmF9KTtjb25zdCBhPSgwLG4oNzc5NDc0KS5jcmVhdGVDb250ZXh0KSh7ZW5hYmxlQWN0aXZlU3RhdGVTdHlsZXM6ITB9KTthLmRpc3BsYXlOYW1lPSJDdXN0b21CZWhhdmlvdXJDb250ZXh0In0sMTM2NChlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtza2VsZXRvblRoZW1lOigpPT5yfSk7dmFyIGE9big5NzUyODUpO2NvbnN0IHI9bi5uKGEpKCl9LDM0NTExNihlLHQsbil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGEoZSl7cmV0dXJuIG8oZSxpKX1mdW5jdGlvbiByKGUpe3JldHVybiBvKGUsbCl9ZnVuY3Rpb24gbyhlLHQpe2NvbnN0IG49T2JqZWN0LmVudHJpZXMoZSkuZmlsdGVyKHQpLGE9e307Zm9yKGNvbnN0W2UsdF1vZiBuKWFbZV09dDtyZXR1cm4gYX1mdW5jdGlvbiBpKGUpe2NvbnN0W3Qsbl09ZTtyZXR1cm4gMD09PXQuaW5kZXhPZigiZGF0YS0iKSYmInN0cmluZyI9PXR5cGVvZiBufWZ1bmN0aW9uIGwoZSl7cmV0dXJuIDA9PT1lWzBdLmluZGV4T2YoImFyaWEtIil9ZnVuY3Rpb24gcyhlLHQpe2NvbnN0IG49YShlKTtyZXR1cm4gdCYmKG5bImRhdGEtcWEtaWQiXT10KSxufW4uZCh0LHtmaWx0ZXJBcmlhUHJvcHM6KCk9PnIsZmlsdGVyQ2hlY2tlZERhdGFQcm9wczooKT0+cyxmaWx0ZXJEYXRhUHJvcHM6KCk9PmEsZmlsdGVyUHJvcHM6KCk9Pm8saXNBcmlhQXR0cmlidXRlOigpPT5sLGlzRGF0YUF0dHJpYnV0ZTooKT0+aX0pfSw3NzAxNDMoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7Z2V0VGV4dEZvclRvb2x0aXA6KCk9Pml9KTt2YXIgYT1uKDc3OTQ3NCk7Y29uc3Qgcj1lPT4oMCxhLmlzVmFsaWRFbGVtZW50KShlKSYmQm9vbGVhbihlLnByb3BzLmNoaWxkcmVuKSxvPShlLHQ9ITApPT5udWxsPT1lfHwiYm9vbGVhbiI9PXR5cGVvZiBlfHwie30iPT09SlNPTi5zdHJpbmdpZnkoZSk/IiI6ZS50b1N0cmluZygpKyh0PyIgIjoiIiksaT1lPT5BcnJheS5pc0FycmF5KGUpfHwoMCxhLmlzVmFsaWRFbGVtZW50KShlKT9hLkNoaWxkcmVuLnRvQXJyYXkoZSkucmVkdWNlKCgoZSx0KT0+e2xldCBuPSIiO3JldHVybiBuPSgwLGEuaXNWYWxpZEVsZW1lbnQpKHQpJiZyKHQpP2kodC5wcm9wcy5jaGlsZHJlbik6KDAsYS5pc1ZhbGlkRWxlbWVudCkodCkmJiFyKHQpPyIiOm8odCksZS5jb25jYXQobil9KSwiIikudHJpbSgpOm8oZSwhMSl9LDk2NDU5NChlLHQsbil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGEoZSl7cmV0dXJuIHQ9PntlLmZvckVhY2goKGU9PnsiZnVuY3Rpb24iPT10eXBlb2YgZT9lKHQpOm51bGwhPWUmJihlLmN1cnJlbnQ9dCl9KSl9fWZ1bmN0aW9uIHIoZSl7cmV0dXJuIGEoW2VdKX1uLmQodCx7aXNvbW9ycGhpY1JlZjooKT0+cixtZXJnZVJlZnM6KCk9PmF9KX0sCjcyNjYwMihlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHt0cmllc1RyYW5zbGF0ZU1hcmtldFR5cGU6KCk9PnJ9KTt2YXIgYT1uKDE4NTI3MSk7ZnVuY3Rpb24gcihlKXtyZXR1cm4gby5nZXQoZSk/LigpfHxlfWNvbnN0IG89bmV3IE1hcChbWyJjZmQiLCgpPT5hLnQobnVsbCx2b2lkIDAsbigyMDgwMTcpKV0sWyJkciIsKCk9PmEudChudWxsLHZvaWQgMCxuKDk3NDI2NCkpXSxbImluZGV4IiwoKT0+YS50KG51bGwsdm9pZCAwLG4oNjU4OTI2KSldLFsiZm9yZXgiLCgpPT5hLnQobnVsbCx2b2lkIDAsbig4NzM1OTcpKV0sWyJyaWdodCIsKCk9PmEudChudWxsLHtjb250ZXh0OiJzeW1ib2xfdHlwZSJ9LG4oMjg3MDM4KSldLFsiYm9uZCIsKCk9PmEudChudWxsLHZvaWQgMCxuKDkwOTA1NCkpXSxbImJpdGNvaW4iLCgpPT5hLnQobnVsbCx2b2lkIDAsbig5OTEwNTkpKV0sWyJjcnlwdG8iLCgpPT5hLnQobnVsbCx2b2lkIDAsbig5OTEwNTkpKV0sWyJlY29ub21pYyIsKCk9PmEudChudWxsLHZvaWQgMCxuKDk5Njg4MikpXSxbImluZGljZXMiLCgpPT5hLnQobnVsbCx2b2lkIDAsbigxNTE2MSkpXSxbImZ1dHVyZXMiLCgpPT5hLnQobnVsbCx2b2lkIDAsbig4MDY3MjcpKV0sWyJzdG9jayIsKCk9PmEudChudWxsLHZvaWQgMCxuKDM2NDYyNSkpXSxbImNvbW1vZGl0eSIsKCk9PmEudChudWxsLHZvaWQgMCxuKDc2MjkyMikpXV0pfSw5NzMwNDEoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7dHJpZXNUcmFuc2xhdGVDb3VudHJpZU5hbWU6KCk9PnJ9KTt2YXIgYT1uKDE4NTI3MSk7ZnVuY3Rpb24gcihlKXtjb25zdCB0PW8uZ2V0KGUpO3JldHVybiB2b2lkIDAhPT10P3QoKTplfQpjb25zdCBvPW5ldyBNYXAoW1siQWZyaWNhIiwoKT0+YS50KG51bGwsdm9pZCAwLG4oNjUwMzQ0KSldLFsiQW1lcmljYXMiLCgpPT5hLnQobnVsbCx2b2lkIDAsbig5OTE0NjQpKV0sWyJBc2lhIiwoKT0+YS50KG51bGwsdm9pZCAwLG4oNjg5MTgyKSldLFsiRXVyb3BlIiwoKT0+YS50KG51bGwsdm9pZCAwLG4oOTUyMzY3KSldLFsiUGFjaWZpYyIsKCk9PmEudChudWxsLHZvaWQgMCxuKDk5MDU3NSkpXSxbIk1pZGRsZSBFYXN0IiwoKT0+YS50KG51bGwsdm9pZCAwLG4oNjg1NzUxKSldLFsiQWZnaGFuaXN0YW4iLCgpPT5hLnQobnVsbCx2b2lkIDAsbig5OTMxMDEpKV0sWyLDhWxhbmQgSXNsYW5kcyIsKCk9PmEudChudWxsLHZvaWQgMCxuKDkwNjU1NCkpXSxbIkFsYW5kIElzbGFuZHMiLCgpPT5hLnQobnVsbCx2b2lkIDAsbig5MDY1NTQpKV0sWyJBbGJhbmlhIiwoKT0+YS50KG51bGwsdm9pZCAwLG4oMjgwMDI1KSldLFsiQWxnZXJpYSIsKCk9PmEudChudWxsLHZvaWQgMCxuKDI5NjE4MSkpXSxbIkFtZXJpY2FuIFNhbW9hIiwoKT0+YS50KG51bGwsdm9pZCAwLG4oMTA0NTUzKSldLFsiQW5kb3JyYSIsKCk9PmEudChudWxsLHZvaWQgMCxuKDk2NTIxMykpXSxbIkFuZ29sYSIsKCk9PmEudChudWxsLHZvaWQgMCxuKDc3NzIwKSldLFsiQW5ndWlsbGEiLCgpPT5hLnQobnVsbCx2b2lkIDAsbig4NTQ5MDIpKV0sWyJBbnRhcmN0aWNhIiwoKT0+YS50KG51bGwsdm9pZCAwLG4oMjk3NTcwKSldLFsiQW50aWd1YSBhbmQgQmFyYnVkYSIsKCk9PmEudChudWxsLHZvaWQgMCxuKDc0NTg5KSldLFsiQXJnZW50aW5hIiwoKT0+YS50KG51bGwsdm9pZCAwLG4oODU3NTg3KSldLFsiQXJtZW5pYSIsKCk9PmEudChudWxsLHZvaWQgMCxuKDc3OTk1MikpXSxbIkFydWJhIiwoKT0+YS50KG51bGwsdm9pZCAwLG4oMTE0NzU2KSldLFsiQXVzdHJhbGlhIiwoKT0+YS50KG51bGwsdm9pZCAwLG4oMjc5MjMzKSldLFsiQXVzdHJpYSIsKCk9PmEudChudWxsLHZvaWQgMCxuKDIzODI3OCkpXSxbIkF6ZXJiYWlqYW4iLCgpPT5hLnQobnVsbCx2b2lkIDAsbig0NjgxNykpXSxbIkJhaGFtYXMiLCgpPT5hLnQobnVsbCx2b2lkIDAsbigzMzUyNTkpKV0sWyJCYWhyYWluIiwoKT0+YS50KG51bGwsdm9pZCAwLG4oNTc4NjY1KSldLFsiQmFuZ2xhZGVzaCIsKCk9PmEudChudWxsLHZvaWQgMCxuKDQ1MjAxNSkpXSxbIkJhcmJhZG9zIiwoKT0+YS50KG51bGwsdm9pZCAwLG4oODI5Mzg3KSldLFsiQmVsYXJ1cyIsKCk9PmEudChudWxsLHZvaWQgMCxuKDUyMzU1MikpXSxbIkJlbGdpdW0iLCgpPT5hLnQobnVsbCx2b2lkIDAsbig4MzMyNCkpXSxbIkJlbGl6ZSIsKCk9PmEudChudWxsLHZvaWQgMCxuKDc4NzcwMSkpXSxbIkJlbmluIiwoKT0+YS50KG51bGwsdm9pZCAwLG4oNTg4ODQ4KSldLFsiQmVybXVkYSIsKCk9PmEudChudWxsLHZvaWQgMCxuKDMxNDczNykpXSxbIkJodXRhbiIsKCk9PmEudChudWxsLHZvaWQgMCxuKDI4NDQ0MikpXSxbIkJvbGl2aWEiLCgpPT5hLnQobnVsbCx2b2lkIDAsbig5MzEzMDQpKV0sWyJCb25haXJlLCBTaW50IEV1c3RhdGl1cyBhbmQgU2FiYSIsKCk9PmEudChudWxsLHZvaWQgMCxuKDU1NzIzNSkpXSxbIkJvc25pYSBhbmQgSGVyemVnb3ZpbmEiLCgpPT5hLnQobnVsbCx2b2lkIDAsbig5NzA2OTEpKV0sWyJCb3Rzd2FuYSIsKCk9PmEudChudWxsLHZvaWQgMCxuKDQyNTM3OCkpXSxbIkJvdXZldCBJc2xhbmQiLCgpPT5hLnQobnVsbCx2b2lkIDAsbig3MzA3NjMpKV0sWyJCcmF6aWwiLCgpPT5hLnQobnVsbCx2b2lkIDAsbig2MTI5NjcpKV0sWyJCcml0aXNoIEluZGlhbiBPY2VhbiBUZXJyaXRvcnkiLCgpPT5hLnQobnVsbCx2b2lkIDAsbig3NDQyNDYpKV0sWyJCcml0aXNoIFZpcmdpbiBJc2xhbmRzIiwoKT0+YS50KG51bGwsdm9pZCAwLG4oNjUzMzQwKSldLFsiQnJ1bmVpIiwoKT0+YS50KG51bGwsdm9pZCAwLG4oMzkxOTA2KSldLFsiQnVsZ2FyaWEiLCgpPT5hLnQobnVsbCx2b2lkIDAsbig3MTQwMzEpKV0sWyJCdXJraW5hIEZhc28iLCgpPT5hLnQobnVsbCx2b2lkIDAsbigxOTgyOTcpKV0sWyJCdXJ1bmRpIiwoKT0+YS50KG51bGwsdm9pZCAwLG4oNzU4MjIpKV0sWyJDYWJvIFZlcmRlIiwoKT0+YS50KG51bGwsdm9pZCAwLG4oNjAxMDk3KSldLFsiQ2FtYm9kaWEiLCgpPT5hLnQobnVsbCx2b2lkIDAsbig1NTU0ODkpKV0sWyJDYW1lcm9vbiIsKCk9PmEudChudWxsLHZvaWQgMCxuKDk3NzAyOCkpXSxbIkNhbmFkYSIsKCk9PmEudChudWxsLHZvaWQgMCxuKDE1MTg5KSldLFsiQ2F5bWFuIElzbGFuZHMiLCgpPT5hLnQobnVsbCx2b2lkIDAsbig2NDEwMjYpKV0sWyJDZW50cmFsIEFmcmljYW4gUmVwdWJsaWMiLCgpPT5hLnQobnVsbCx2b2lkIDAsbig3NzQ3OCkpXSxbIkNoYWQiLCgpPT5hLnQobnVsbCx2b2lkIDAsbig0ODM1NSkpXSxbIkNoaWxlIiwoKT0+YS50KG51bGwsdm9pZCAwLG4oOTA0MzM4KSldLFsiQ2hpbmEiLCgpPT5hLnQobnVsbCx2b2lkIDAsbig2MDI1MTkpKV0sWyJDaHJpc3RtYXMgSXNsYW5kIiwoKT0+YS50KG51bGwsdm9pZCAwLG4oOTU2NDY0KSldLFsiQ29jb3MgKEtlZWxpbmcpIElzbGFuZHMiLCgpPT5hLnQobnVsbCx2b2lkIDAsbigzMjU3MzIpKV0sWyJDb2xvbWJpYSIsKCk9PmEudChudWxsLHZvaWQgMCxuKDEzNTg2NykpXSxbIkNvbW9yb3MiLCgpPT5hLnQobnVsbCx2b2lkIDAsbig0ODQxMzYpKV0sWyJDb25nbyIsKCk9PmEudChudWxsLHZvaWQgMCxuKDk2NDg1OCkpXSxbIkNvbmdvICh0aGUgRGVtb2NyYXRpYyBSZXB1YmxpYyBvZiB0aGUpIiwoKT0+YS50KG51bGwsdm9pZCAwLG4oMjcxNTU4KSldLFsiQ29vayBJc2xhbmRzIiwoKT0+YS50KG51bGwsdm9pZCAwLG4oNzA4ODU5KSldLFsiQ3VyYWNhbyIsKCk9PmEudChudWxsLHZvaWQgMCxuKDU4OTQxNykpXSxbIkNvc3RhIFJpY2EiLCgpPT5hLnQobnVsbCx2b2lkIDAsbigyNjg4NDQpKV0sWyJDw7R0ZSBkJ0l2b2lyZSIsKCk9PmEudChudWxsLHZvaWQgMCxuKDQ5ODc2MikpXSxbIkNyb2F0aWEiLCgpPT5hLnQobnVsbCx2b2lkIDAsbig0MDc0KSldLFsiQ3ViYSIsKCk9PmEudChudWxsLHZvaWQgMCxuKDc2OTE0MCkpXSxbIkN1cmHDp2FvIiwoKT0+YS50KG51bGwsdm9pZCAwLG4oOTQ1MTcxKSldLFsiQ3lwcnVzIiwoKT0+YS50KG51bGwsdm9pZCAwLG4oNjM0NzM3KSldLFsiQ3plY2hpYSIsKCk9PmEudChudWxsLHZvaWQgMCxuKDI2MTk5MCkpXSxbIkN6ZWNoIFJlcHVibGljIiwoKT0+YS50KG51bGwsdm9pZCAwLG4oMTI5ODA4KSldLFsiRGVubWFyayIsKCk9PmEudChudWxsLHZvaWQgMCxuKDg1MjUwMSkpXSxbIkRqaWJvdXRpIiwoKT0+YS50KG51bGwsdm9pZCAwLG4oNTA3Nzk4KSldLFsiRG9taW5pY2EiLCgpPT5hLnQobnVsbCx2b2lkIDAsbigxOTQzMjYpKV0sWyJEb21pbmljYW4gUmVwdWJsaWMiLCgpPT5hLnQobnVsbCx2b2lkIDAsbig4MTg2MDQpKV0sWyJFY3VhZG9yIiwoKT0+YS50KG51bGwsdm9pZCAwLG4oNDEzMzk3KSldLFsiRWd5cHQiLCgpPT5hLnQobnVsbCx2b2lkIDAsbigzMzc0MzcpKV0sWyJFbCBTYWx2YWRvciIsKCk9PmEudChudWxsLHZvaWQgMCxuKDg4MDg3MikpXSxbIkVxdWF0b3JpYWwgR3VpbmVhIiwoKT0+YS50KG51bGwsdm9pZCAwLG4oNzQ2NTI0KSldLFsiRXJpdHJlYSIsKCk9PmEudChudWxsLHZvaWQgMCxuKDczMDg3MykpXSxbIkVzdG9uaWEiLCgpPT5hLnQobnVsbCx2b2lkIDAsbig5NDEyMCkpXSxbIkZhbGtsYW5kIElzbGFuZHMiLCgpPT5hLnQobnVsbCx2b2lkIDAsbig5OTM0NzUpKV0sWyJFc3dhdGluaSIsKCk9PmEudChudWxsLHZvaWQgMCxuKDg5ODMwMykpXSxbIkV0aGlvcGlhIiwoKT0+YS50KG51bGwsdm9pZCAwLG4oMzMxOTEpKV0sWyJFdXJvcGVhbiBVbmlvbiIsKCk9PmEudChudWxsLHZvaWQgMCxuKDUzNTE0NikpXSxbIkZhbGtsYW5kIElzbGFuZHMgKE1hbHZpbmFzKSIsKCk9PmEudChudWxsLHZvaWQgMCxuKDYwNzcyMykpXSxbIkZhcm9lIElzbGFuZHMiLCgpPT5hLnQobnVsbCx2b2lkIDAsbig0NTI0ODcpKV0sWyJGaWppIiwoKT0+YS50KG51bGwsdm9pZCAwLG4oMTUyNDA5KSldLFsiRmlubGFuZCIsKCk9PmEudChudWxsLHZvaWQgMCxuKDk3NjQ1NCkpXSxbIkZyYW5jZSIsKCk9PmEudChudWxsLHZvaWQgMCxuKDEzNjIzOCkpXSxbIkZyZW5jaCBHdWlhbmEiLCgpPT5hLnQobnVsbCx2b2lkIDAsbig5NzYwNzkpKV0sWyJGcmVuY2ggUG9seW5lc2lhIiwoKT0+YS50KG51bGwsdm9pZCAwLG4oODYzODI1KSldLFsiRnJlbmNoIFNvdXRoZXJuIFRlcnJpdG9yaWVzIiwoKT0+YS50KG51bGwsdm9pZCAwLG4oMzI4NjA3KSldLFsiR2Fib24iLCgpPT5hLnQobnVsbCx2b2lkIDAsbigzNjc2OTApKV0sWyJHYW1iaWEiLCgpPT5hLnQobnVsbCx2b2lkIDAsbig3MDg3ODUpKV0sWyJHZW9yZ2lhIiwoKT0+YS50KG51bGwsdm9pZCAwLG4oNzk1OTUxKSldLFsiR2VybWFueSIsKCk9PmEudChudWxsLHZvaWQgMCxuKDQ2NjY5OCkpXSxbIkdoYW5hIiwoKT0+YS50KG51bGwsdm9pZCAwLG4oNDk4Njc5KSldLFsiR2licmFsdGFyIiwoKT0+YS50KG51bGwsdm9pZCAwLG4oNzcxMDE3KSldLFsiR3JlZWNlIiwoKT0+YS50KG51bGwsdm9pZCAwLG4oNzkzMjg5KSldLFsiR3JlZW5sYW5kIiwoKT0+YS50KG51bGwsdm9pZCAwLG4oMzE4Mzk5KSldLFsiR3JlbmFkYSIsKCk9PmEudChudWxsLHZvaWQgMCxuKDkzMjA4NikpXSxbIkd1YWRlbG91cGUiLCgpPT5hLnQobnVsbCx2b2lkIDAsbigxNjQ4NzcpKV0sWyJHdWFtIiwoKT0+YS50KG51bGwsdm9pZCAwLG4oNTQ0MzI1KSldLFsiR3VhdGVtYWxhIiwoKT0+YS50KG51bGwsdm9pZCAwLG4oODc3NDg3KSldLFsiR3Vlcm5zZXkiLCgpPT5hLnQobnVsbCx2b2lkIDAsbig0MDg5MTYpKV0sWyJHdWluZWEiLCgpPT5hLnQobnVsbCx2b2lkIDAsbig0MzY0NTUpKV0sWyJHdWluZWEtQmlzc2F1IiwoKT0+YS50KG51bGwsdm9pZCAwLG4oMzA4MjI5KSldLFsiR3V5YW5hIiwoKT0+YS50KG51bGwsdm9pZCAwLG4oMjQyMTE2KSldLFsiSGFpdGkiLCgpPT5hLnQobnVsbCx2b2lkIDAsbig4OTQ3MDkpKV0sWyJIZWFyZCBJc2xhbmQgYW5kIE1jRG9uYWxkIElzbGFuZHMiLCgpPT5hLnQobnVsbCx2b2lkIDAsbigyMzYxMjMpKV0sWyJIb2x5IFNlZSIsKCk9PmEudChudWxsLHZvaWQgMCxuKDEyNzQ5KSldLFsiSG9uZHVyYXMiLCgpPT5hLnQobnVsbCx2b2lkIDAsbigyMDI4MTYpKV0sWyJIb25nIEtvbmciLCgpPT5hLnQobnVsbCx2b2lkIDAsbig0NjM3NzkpKV0sWyJIdW5nYXJ5IiwoKT0+YS50KG51bGwsdm9pZCAwLG4oNjYxMzY2KSldLFsiSWNlbGFuZCIsKCk9PmEudChudWxsLHZvaWQgMCxuKDQ0MDE4OCkpXSxbIkluZGlhIiwoKT0+YS50KG51bGwsdm9pZCAwLG4oMzcyNTIwKSldLFsiSW5kb25lc2lhIiwoKT0+YS50KG51bGwsdm9pZCAwLG4oODAyOTc1KSldLFsiSXJhcSIsKCk9PmEudChudWxsLHZvaWQgMCxuKDM3MTc0NikpXSxbIklyZWxhbmQiLCgpPT5hLnQobnVsbCx2b2lkIDAsbig3MTE1MjcpKV0sWyJJc2xlIG9mIE1hbiIsKCk9PmEudChudWxsLHZvaWQgMCxuKDIwNzgyNSkpXSxbIklzcmFlbCIsKCk9PmEudChudWxsLHZvaWQgMCxuKDgwMzM1NCkpXSxbIkl0YWx5IiwoKT0+YS50KG51bGwsdm9pZCAwLG4oODk4MTYzKSldLFsiSmFtYWljYSIsKCk9PmEudChudWxsLHZvaWQgMCxuKDE2MzUpKV0sWyJKYXBhbiIsKCk9PmEudChudWxsLHZvaWQgMCxuKDIwMDA2OCkpXSxbIkplcnNleSIsKCk9PmEudChudWxsLHZvaWQgMCxuKDExODU5OCkpXSxbIkpvcmRhbiIsKCk9PmEudChudWxsLHZvaWQgMCxuKDU4MzAwOSkpXSxbIkthemFraHN0YW4iLCgpPT5hLnQobnVsbCx2b2lkIDAsbigyNzc1NjApKV0sWyJLZW55YSIsKCk9PmEudChudWxsLHZvaWQgMCxuKDgxNDk2NikpXSxbIktpcmliYXRpIiwoKT0+YS50KG51bGwsdm9pZCAwLG4oNDQ2MjkzKSldLFsiS29zb3ZvIiwoKT0+YS50KG51bGwsdm9pZCAwLG4oNjc2ODYpKV0sWyJLdXdhaXQiLCgpPT5hLnQobnVsbCx2b2lkIDAsbigzOTUxMzApKV0sWyJLeXJneXpzdGFuIiwoKT0+YS50KG51bGwsdm9pZCAwLG4oNDU4NjYwKSldLFsiTGFvcyIsKCk9PmEudChudWxsLHZvaWQgMCxuKDU5MTE4MCkpXSxbIkxhdHZpYSIsKCk9PmEudChudWxsLHZvaWQgMCxuKDI4Mjc3MykpXSxbIkxlYmFub24iLCgpPT5hLnQobnVsbCx2b2lkIDAsbig5NDU2MTMpKV0sWyJMZXNvdGhvIiwoKT0+YS50KG51bGwsdm9pZCAwLG4oNjUzMzk1KSldLFsiTGliZXJpYSIsKCk9PmEudChudWxsLHZvaWQgMCxuKDY2MjEpKV0sWyJMaWJ5YSIsKCk9PmEudChudWxsLHZvaWQgMCxuKDU1NTM1MikpXSxbIkxpZWNodGVuc3RlaW4iLCgpPT5hLnQobnVsbCx2b2lkIDAsbigzODY2NjcpKV0sWyJMaXRodWFuaWEiLCgpPT5hLnQobnVsbCx2b2lkIDAsbig4OTIxMDApKV0sWyJMdXhlbWJvdXJnIiwoKT0+YS50KG51bGwsdm9pZCAwLG4oOTc1NDQ3KSldLFsiTWFjYXUiLCgpPT5hLnQobnVsbCx2b2lkIDAsbig1MzIyNjkpKV0sWyJNYWNhbyIsKCk9PmEudChudWxsLHZvaWQgMCxuKDMwNzA2MikpXSxbIk1hY2Vkb25pYSIsKCk9PmEudChudWxsLHZvaWQgMCxuKDQ1OTEwOCkpXSxbIk1hZGFnYXNjYXIiLCgpPT5hLnQobnVsbCx2b2lkIDAsbig2NjAxODgpKV0sWyJNYWxhd2kiLCgpPT5hLnQobnVsbCx2b2lkIDAsbigyNDU5NDgpKV0sWyJNYWxheXNpYSIsKCk9PmEudChudWxsLHZvaWQgMCxuKDYyNzk2NykpXSxbIk1hbGRpdmVzIiwoKT0+YS50KG51bGwsdm9pZCAwLG4oMzMxNjE1KSldLFsiTWFsaSIsKCk9PmEudChudWxsLHZvaWQgMCxuKDYyMzQ2NSkpXSxbIk1hbHRhIiwoKT0+YS50KG51bGwsdm9pZCAwLG4oNTYzMjM3KSldLFsiTWFyc2hhbGwgSXNsYW5kcyIsKCk9PmEudChudWxsLHZvaWQgMCxuKDQ3Nzg0MykpXSxbIk1hcnRpbmlxdWUiLCgpPT5hLnQobnVsbCx2b2lkIDAsbigxMzUxNTIpKV0sWyJNYXVyaXRhbmlhIiwoKT0+YS50KG51bGwsdm9pZCAwLG4oNjY3OTk2KSldLFsiTWF1cml0aXVzIiwoKT0+YS50KG51bGwsdm9pZCAwLG4oMTUwMDU0KSldLFsiTWF5b3R0ZSIsKCk9PmEudChudWxsLHZvaWQgMCxuKDQ4MzE0OSkpXSxbIk1leGljbyIsKCk9PmEudChudWxsLHZvaWQgMCxuKDg2NTcwMCkpXSxbIk1pY3JvbmVzaWEgKEZlZGVyYXRlZCBTdGF0ZXMgb2YpIiwoKT0+YS50KG51bGwsdm9pZCAwLG4oMjkxMDk4KSldLFsiTW9sZG92YSIsKCk9PmEudChudWxsLHZvaWQgMCxuKDMyMTMzNikpXSxbIk1vbmFjbyIsKCk9PmEudChudWxsLHZvaWQgMCxuKDIwODkwNCkpXSxbIk1vbmdvbGlhIiwoKT0+YS50KG51bGwsdm9pZCAwLG4oOTEzNzA5KSldLFsiTW9udGVuZWdybyIsKCk9PmEudChudWxsLHZvaWQgMCxuKDczOTM2NSkpXSxbIk1vbnRzZXJyYXQiLCgpPT5hLnQobnVsbCx2b2lkIDAsbigzMzMyNjIpKV0sWyJNb3JvY2NvIiwoKT0+YS50KG51bGwsdm9pZCAwLG4oNzIxNDMzKSldLFsiTW96YW1iaXF1ZSIsKCk9PmEudChudWxsLHZvaWQgMCxuKDEwMDAyNikpXSxbIk15YW5tYXIiLCgpPT5hLnQobnVsbCx2b2lkIDAsbigyMzk0MykpXSxbIk5hbWliaWEiLCgpPT5hLnQobnVsbCx2b2lkIDAsbig1NzA2MTgpKV0sWyJOYXVydSIsKCk9PmEudChudWxsLHZvaWQgMCxuKDQ3MzQzNykpXSxbIk5lcGFsIiwoKT0+YS50KG51bGwsdm9pZCAwLG4oNDcxMjg4KSldLFsiTmV0aGVybGFuZHMiLCgpPT5hLnQobnVsbCx2b2lkIDAsbig2MTY4NjIpKV0sWyJOZXcgQ2FsZWRvbmlhIiwoKT0+YS50KG51bGwsdm9pZCAwLG4oMjQ5NTg4KSldLFsiTmV3IFplYWxhbmQiLCgpPT5hLnQobnVsbCx2b2lkIDAsbig0MjE2KSldLFsiTmljYXJhZ3VhIiwoKT0+YS50KG51bGwsdm9pZCAwLG4oNjIzNDQwKSldLFsiTmlnZXIiLCgpPT5hLnQobnVsbCx2b2lkIDAsbig1OTIxODkpKV0sWyJOaWdlcmlhIiwoKT0+YS50KG51bGwsdm9pZCAwLG4oODQ5ODY4KSldLFsiTml1ZSIsKCk9PmEudChudWxsLHZvaWQgMCxuKDkwNzQ3MCkpXSxbIk5vcmZvbGsgSXNsYW5kIiwoKT0+YS50KG51bGwsdm9pZCAwLG4oOTY3NDEyKSldLFsiTm9ydGggTWFjZWRvbmlhIiwoKT0+YS50KG51bGwsdm9pZCAwLG4oNzI5NzgyKSldLFsiTm9ydGhlcm4gTWFyaWFuYSBJc2xhbmRzIiwoKT0+YS50KG51bGwsdm9pZCAwLG4oNjEyNTU3KSldLFsiTm9yd2F5IiwoKT0+YS50KG51bGwsdm9pZCAwLG4oODQ1NTIzKSldLFsiT21hbiIsKCk9PmEudChudWxsLHZvaWQgMCxuKDI4NTI5MykpXSxbIlBha2lzdGFuIiwoKT0+YS50KG51bGwsdm9pZCAwLG4oODQ0NDM2KSldLFsiUGFsYXUiLCgpPT5hLnQobnVsbCx2b2lkIDAsbig3OTg0NzYpKV0sWyJQYWxlc3RpbmUsIFN0YXRlIG9mIiwoKT0+YS50KG51bGwsdm9pZCAwLG4oNjk4MDgzKSldLFsiUGFuYW1hIiwoKT0+YS50KG51bGwsdm9pZCAwLG4oMTAwNzI5KSldLFsiUGFwdWEgTmV3IEd1aW5lYSIsKCk9PmEudChudWxsLHZvaWQgMCxuKDcyNTY5NykpXSxbIlBhcmFndWF5IiwoKT0+YS50KG51bGwsdm9pZCAwLG4oNDIwMTM1KSldLFsiUGVydSIsKCk9PmEudChudWxsLHZvaWQgMCxuKDg1MTExMSkpXSxbIlBoaWxpcHBpbmVzIiwoKT0+YS50KG51bGwsdm9pZCAwLG4oNjEzNjQ3KSldLFsiUGl0Y2Fpcm4iLCgpPT5hLnQobnVsbCx2b2lkIDAsbigzODQzODIpKV0sWyJQb2xhbmQiLCgpPT5hLnQobnVsbCx2b2lkIDAsbig5Njg2MDkpKV0sWyJQb3J0dWdhbCIsKCk9PmEudChudWxsLHZvaWQgMCxuKDM5ODk0KSldLFsiUHVlcnRvIFJpY28iLCgpPT5hLnQobnVsbCx2b2lkIDAsbig4NDMzMjcpKV0sWyJRYXRhciIsKCk9PmEudChudWxsLHZvaWQgMCxuKDkzMzc1MykpXSxbIlLDqXVuaW9uIiwoKT0+YS50KG51bGwsdm9pZCAwLG4oODcyNjgwKSldLFsiTGEgUmV1bmlvbiIsKCk9PmEudChudWxsLHZvaWQgMCxuKDg3MjY4MCkpXSxbIlJvbWFuaWEiLCgpPT5hLnQobnVsbCx2b2lkIDAsbig5MDU5NDUpKV0sWyJSdXNzaWEiLCgpPT5hLnQobnVsbCx2b2lkIDAsbig5MzQ4ODMpKV0sWyJSdXNzaWFuIEZlZGVyYXRpb24iLCgpPT5hLnQobnVsbCx2b2lkIDAsbigzOTA1OTgpKV0sWyJTSU5UIE1BQVJURU4gKERVVENIIFBBUlQpIiwoKT0+YS50KG51bGwsdm9pZCAwLG4oNzk1MDIxKSldLFsiUndhbmRhIiwoKT0+YS50KG51bGwsdm9pZCAwLG4oNzU4Mjk3KSldLFsiU2FpbnQgQmFydGjDqWxlbXkiLCgpPT5hLnQobnVsbCx2b2lkIDAsbigxOTk0ODMpKV0sWyJTYWludCBIZWxlbmEsIEFzY2Vuc2lvbiBhbmQgVHJpc3RhbiBkYSBDdW5oYSIsKCk9PmEudChudWxsLHZvaWQgMCxuKDk1NTgzNSkpXSxbIlNhaW50IEtpdHRzIGFuZCBOZXZpcyIsKCk9PmEudChudWxsLHZvaWQgMCxuKDU3Njk3NSkpXSxbIlNhaW50IEx1Y2lhIiwoKT0+YS50KG51bGwsdm9pZCAwLG4oMjU4MzExKSldLFsiU2FpbnQgTWFydGluIChGcmVuY2ggcGFydCkiLCgpPT5hLnQobnVsbCx2b2lkIDAsbig0MjUwNjQpKV0sWyJTYWludCBQaWVycmUgYW5kIE1pcXVlbG9uIiwoKT0+YS50KG51bGwsdm9pZCAwLG4oNzk3MDM1KSldLFsiU2FpbnQgVmluY2VudCBhbmQgdGhlIEdyZW5hZGluZXMiLCgpPT5hLnQobnVsbCx2b2lkIDAsbig2MjI2MTMpKV0sWyJTYW1vYSIsKCk9PmEudChudWxsLHZvaWQgMCxuKDU5ODk2MykpXSxbIlNhbiBNYXJpbm8iLCgpPT5hLnQobnVsbCx2b2lkIDAsbig5OTk3NjIpKV0sWyJTYW8gVG9tZSBhbmQgUHJpbmNpcGUiLCgpPT5hLnQobnVsbCx2b2lkIDAsbigyNzkzODIpKV0sWyJTYXVkaSBBcmFiaWEiLCgpPT5hLnQobnVsbCx2b2lkIDAsbig3NjE1MjMpKV0sWyJTZW5lZ2FsIiwoKT0+YS50KG51bGwsdm9pZCAwLG4oMjI0Mjg5KSldLFsiU2VyYmlhIiwoKT0+YS50KG51bGwsdm9pZCAwLG4oNzE4NTI5KSldLFsiU2V5Y2hlbGxlcyIsKCk9PmEudChudWxsLHZvaWQgMCxuKDQyMDgyMSkpXSxbIlNpZXJyYSBMZW9uZSIsKCk9PmEudChudWxsLHZvaWQgMCxuKDE2NDk5MikpXSxbIlNpbmdhcG9yZSIsKCk9PmEudChudWxsLHZvaWQgMCxuKDY0Mzc5NSkpXSxbIlNpbnQgTWFhcnRlbiAoRHV0Y2ggcGFydCkiLCgpPT5hLnQobnVsbCx2b2lkIDAsbig3MzY0MCkpXSxbIlNsb3Zha2lhIiwoKT0+YS50KG51bGwsdm9pZCAwLG4oMjYzNDMyKSldLFsiU2xvdmVuaWEiLCgpPT5hLnQobnVsbCx2b2lkIDAsbig3MjE4MjEpKV0sWyJTb2xvbW9uIElzbGFuZHMiLCgpPT5hLnQobnVsbCx2b2lkIDAsbigxODE3OCkpXSxbIlNvbWFsaWEiLCgpPT5hLnQobnVsbCx2b2lkIDAsbig2MDA1NykpXSxbIlNvdXRoIEFmcmljYSIsKCk9PmEudChudWxsLHZvaWQgMCxuKDMxMDA4MikpXSxbIlNvdXRoIEdlb3JnaWEgYW5kIHRoZSBTb3V0aCBTYW5kd2ljaCBJc2xhbmRzIiwoKT0+YS50KG51bGwsdm9pZCAwLG4oNDQ3ODU0KSldLFsiU291dGggS29yZWEiLCgpPT5hLnQobnVsbCx2b2lkIDAsbig1ODc3NTIpKV0sWyJTb3V0aCBTdWRhbiIsKCk9PmEudChudWxsLHZvaWQgMCxuKDQ1NzE4NikpXSxbIlNwYWluIiwoKT0+YS50KG51bGwsdm9pZCAwLG4oNzg4MzIxKSldLFsiU3JpIExhbmthIiwoKT0+YS50KG51bGwsdm9pZCAwLG4oODA0NzY2KSldLFsiU3VkYW4iLCgpPT5hLnQobnVsbCx2b2lkIDAsbig5NzQ0MDQpKV0sWyJTdXJpbmFtZSIsKCk9PmEudChudWxsLHZvaWQgMCxuKDgxODgzNykpXSxbIlN2YWxiYXJkIGFuZCBKYW4gTWF5ZW4iLCgpPT5hLnQobnVsbCx2b2lkIDAsbig5NzM5MTUpKV0sWyJTd2VkZW4iLCgpPT5hLnQobnVsbCx2b2lkIDAsbigzNjk5NjMpKV0sWyJTd2l0emVybGFuZCIsKCk9PmEudChudWxsLHZvaWQgMCxuKDczMzk3MSkpXSxbIlN5cmlhIiwoKT0+YS50KG51bGwsdm9pZCAwLG4oMjc0NDg1KSldLFsiVGFpd2FuIiwoKT0+YS50KG51bGwsdm9pZCAwLG4oMjczMTU3KSldLFsiVGFqaWtpc3RhbiIsKCk9PmEudChudWxsLHZvaWQgMCxuKDk2ODQ1OCkpXSxbIlRhbnphbmlhIiwoKT0+YS50KG51bGwsdm9pZCAwLG4oNDk4MTgzKSldLFsiVGhhaWxhbmQiLCgpPT5hLnQobnVsbCx2b2lkIDAsbig1NTMwNDQpKV0sWyJUaW1vci1MZXN0ZSIsKCk9PmEudChudWxsLHZvaWQgMCxuKDgwMzA1MSkpXSxbIlRvZ28iLCgpPT5hLnQobnVsbCx2b2lkIDAsbig4MzI0NDgpKV0sWyJUb2tlbGF1IiwoKT0+YS50KG51bGwsdm9pZCAwLG4oMTA0MTc3KSldLFsiVG9uZ2EiLCgpPT5hLnQobnVsbCx2b2lkIDAsbigyNTA1NTUpKV0sWyJUcmluaWRhZCBhbmQgVG9iYWdvIiwoKT0+YS50KG51bGwsdm9pZCAwLG4oMzE0ODcpKV0sWyJUdW5pc2lhIiwoKT0+YS50KG51bGwsdm9pZCAwLG4oNjc3NTkpKV0sWyJUdXJrZXkiLCgpPT5hLnQobnVsbCx2b2lkIDAsbig2MzE4MTApKV0sWyJUdXJrbWVuaXN0YW4iLCgpPT5hLnQobnVsbCx2b2lkIDAsbig3MzU2ODMpKV0sWyJUdXJrcyBhbmQgQ2FpY29zIElzbGFuZHMiLCgpPT5hLnQobnVsbCx2b2lkIDAsbig5NzA2MjQpKV0sWyJUdXZhbHUiLCgpPT5hLnQobnVsbCx2b2lkIDAsbig0MzAxMzQpKV0sWyJVLlMuIFZpcmdpbiBJc2xhbmRzIiwoKT0+YS50KG51bGwsdm9pZCAwLG4oNDMxMzc3KSldLFsiVUFFIiwoKT0+YS50KG51bGwsdm9pZCAwLG4oMTYzMTEwKSldLFsiVVNBIiwoKT0+YS50KG51bGwsdm9pZCAwLG4oMzAxMTE3KSldLFsiVWdhbmRhIiwoKT0+YS50KG51bGwsdm9pZCAwLG4oNTg4NjkzKSldLFsiVWtyYWluZSIsKCk9PmEudChudWxsLHZvaWQgMCxuKDMxNzQ3NSkpXSxbIlVuaXRlZCBBcmFiIEVtaXJhdGVzIiwoKT0+YS50KG51bGwsdm9pZCAwLG4oMjQ5MDkxKSldLFsiVW5pdGVkIEtpbmdkb20iLCgpPT5hLnQobnVsbCx2b2lkIDAsbigyODI3MykpXSxbIlVuaXRlZCBTdGF0ZXMiLCgpPT5hLnQobnVsbCx2b2lkIDAsbig5Njc5NDEpKV0sWyJVbml0ZWQgU3RhdGVzIE1pbm9yIE91dGx5aW5nIElzbGFuZHMiLCgpPT5hLnQobnVsbCx2b2lkIDAsbig3MzY3OTkpKV0sWyJVcnVndWF5IiwoKT0+YS50KG51bGwsdm9pZCAwLG4oOTI4NTUzKSldLFsiVVNBIiwoKT0+YS50KG51bGwsdm9pZCAwLG4oMzAxMTE3KSldLFsiVXpiZWtpc3RhbiIsKCk9PmEudChudWxsLHZvaWQgMCxuKDc4Mzk3MCkpXSxbIlZhbnVhdHUiLCgpPT5hLnQobnVsbCx2b2lkIDAsbig0MTYyNTcpKV0sWyJWZW5lenVlbGEiLCgpPT5hLnQobnVsbCx2b2lkIDAsbig2NDM1MDMpKV0sWyJWaWV0bmFtIiwoKT0+YS50KG51bGwsdm9pZCAwLG4oODUyMjEpKV0sWyJWaXJnaW4gSXNsYW5kcyAoQnJpdGlzaCkiLCgpPT5hLnQobnVsbCx2b2lkIDAsbig0MjMyMDYpKV0sWyJWaXJnaW4gSXNsYW5kcyAoVS5TLikiLCgpPT5hLnQobnVsbCx2b2lkIDAsbigzMDEyMjkpKV0sWyJXYWxsaXMgYW5kIEZ1dHVuYSIsKCk9PmEudChudWxsLHZvaWQgMCxuKDU5MDUwNSkpXSxbIldlc3Rlcm4gU2FoYXJhIiwoKT0+YS50KG51bGwsdm9pZCAwLG4oODgxMjc3KSldLFsiWWVtZW4iLCgpPT5hLnQobnVsbCx2b2lkIDAsbig0MDkzODQpKV0sWyJaYW1iaWEiLCgpPT5hLnQobnVsbCx2b2lkIDAsbig4NjczOTMpKV0sWyJaaW1iYWJ3ZSIsKCk9PmEudChudWxsLHZvaWQgMCxuKDk1OTE1NSkpXV0pCn0sOTczODA0KGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse2dldEltYWdlOigpPT5vfSk7Y29uc3QgYT1uZXcgTWFwO2Z1bmN0aW9uIHIoZSl7ZS5jcm9zc09yaWdpbj0iYW5vbnltb3VzIn1mdW5jdGlvbiBvKGUsdCxuPXIsbyl7bGV0IGk9YS5nZXQoZSk7cmV0dXJuIHZvaWQgMD09PWkmJihpPW5ldyBQcm9taXNlKCgoZSxhKT0+e2NvbnN0IHI9bmV3IEltYWdlO3Iub25sb2FkPSgpPT57ZShyKSxyLm9ubG9hZD1udWxsLHIub25lcnJvcj1udWxsfSxyLm9uZXJyb3I9KCk9PnthKCksci5vbmxvYWQ9bnVsbCxyLm9uZXJyb3I9bnVsbH0sbihyKSxyLnNyYz10LG8mJihvLm9uYWJvcnQ9KCk9PnthKCksci5vbmxvYWQ9bnVsbCxyLm9uZXJyb3I9bnVsbH0pfSkpLGEuc2V0KGUsaSkpLGl9fSw2NTU0MTIoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7Ym9uZE1hdHVyaXR5V2hpdGVzcGFjZTooKT0+byxkdXJhdGlvblRvTW9udGhDb3VudDooKT0+cn0pO2NvbnN0IGE9L15QKD88ZGlnaXQ+XGQrKSg/PGxldHRlcj5bTVldKSQvO2Z1bmN0aW9uIHIoZSl7Y29uc3R7ZGlnaXQ6dCxsZXR0ZXI6bn09YS5leGVjKGUpPy5ncm91cHM/P3t9LHI9Ik0iPT09bj8xOjEyO3JldHVybiBwYXJzZUZsb2F0KHQpKnJ9ZnVuY3Rpb24gbyhlKXtyZXR1cm57bWF0dXJpdHlJbk1vbnRoOmUsaXNXaGl0ZXNwYWNlOiEwfX19LDU0NzQyMyhlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtCb25kc0hvcnpTY2FsZUJlaGF2aW9yOigpPT5hfSk7Y2xhc3MgYXtvcHRpb25zKCl7cmV0dXJuIHRoaXMuX29wdGlvbnN9c2V0T3B0aW9ucyhlKXt0aGlzLl9vcHRpb25zPWV9cHJlcHJvY2Vzc0RhdGEoZSl7fWNvbnZlcnRIb3J6SXRlbVRvSW50ZXJuYWwoZSl7cmV0dXJuIGV9Y3JlYXRlQ29udmVydGVyVG9JbnRlcm5hbE9iaihlKXtyZXR1cm4gdGhpcy5jb252ZXJ0SG9yekl0ZW1Ub0ludGVybmFsfWtleShlKXtyZXR1cm4gZS5tYXR1cml0eUluTW9udGh9Y2FjaGVLZXkoZSl7cmV0dXJuIGUubWF0dXJpdHlJbk1vbnRofXVwZGF0ZUZvcm1hdHRlcihlKXt9Zm9ybWF0SG9yekl0ZW0oZSl7cmV0dXJuInRpdGxlImluIGU/ZS50aXRsZToiIn1mb3JtYXRUaWNrbWFyayhlLHQpe2NvbnN0IG49ZS50aW1lO3JldHVybiJ0aXRsZSJpbiBuP24udGl0bGU6IiJ9bWF4VGlja01hcmtXZWlnaHQoZSl7cmV0dXJuIE1hdGgubWF4KC4uLmUubWFwKChlPT5lLndlaWdodCkpKX1maWxsV2VpZ2h0c0ZvclBvaW50cyhlLHQpe2ZvcihsZXQgbj10O248ZS5sZW5ndGg7KytuKWVbbl0udGltZVdlaWdodD1lW25dLnRpbWUuaXNXaGl0ZXNwYWNlPzA6MTtlLmxlbmd0aCYmKGVbMF0udGltZVdlaWdodD0yLGVbZS5sZW5ndGgtMV0udGltZVdlaWdodD0yKX19fSw0NzAwOShlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtmaW5kTmVhcmVzdFNlcmllc0l0ZW06KCk9Pm99KTt2YXIgYT1uKDY3ODMxMik7ZnVuY3Rpb24gcihlLHQsbil7cmV0dXJuIGUubWFwKChlPT5lLmRhdGFCeUluZGV4KHQsbikpKX1mdW5jdGlvbiBvKGUsdCxuKXtpZih2b2lkIDA9PT1lLmxvZ2ljYWx8fCFlLnBvaW50KXJldHVybiBudWxsO2NvbnN0IG89cihuLGUubG9naWNhbCxhLk1pc21hdGNoRGlyZWN0aW9uLk5lYXJlc3RMZWZ0KSxpPXIobixlLmxvZ2ljYWwsYS5NaXNtYXRjaERpcmVjdGlvbi5OZWFyZXN0UmlnaHQpLGw9dC50aW1lU2NhbGUoKSxzPW8ubWFwKChlPT5lP2wudGltZVRvQ29vcmRpbmF0ZShlLnRpbWUpOm51bGwpKS5maWx0ZXIoQm9vbGVhbiksYz1pLm1hcCgoZT0+ZT9sLnRpbWVUb0Nvb3JkaW5hdGUoZS50aW1lKTpudWxsKSkuZmlsdGVyKEJvb2xlYW4pLHU9TWF0aC5tYXgoLi4ucyksZD1NYXRoLm1pbiguLi5jKSxtPW51bGw9PT11fHxudWxsPT09ZHx8TWF0aC5hYnMoZS5wb2ludC54LXUpPE1hdGguYWJzKGUucG9pbnQueC1kKT9sLmNvb3JkaW5hdGVUb0xvZ2ljYWwodSk6bC5jb29yZGluYXRlVG9Mb2dpY2FsKGQpO3JldHVybiBudWxsIT09bT9yKG4sbSxhLk1pc21hdGNoRGlyZWN0aW9uLk5vbmUpLm1hcCgoZT0+bnVsbD09PWU/dm9pZCAwOmUpKTpbXX19LDQ3MjUzNChlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtjcmVhdGVUZW5vclNjYWxlOigpPT5yfSk7dmFyIGE9big2NTU0MTIpO2Z1bmN0aW9uIHIoZSl7Y29uc3QgdD1uZXcgTWFwKGUubWFwKChlPT5bZS50aW1lLm1hdHVyaXR5SW5Nb250aCxlXSkpKSxuPWUubWFwKChlPT5lLnRpbWUubWF0dXJpdHlJbk1vbnRoKSkscj1NYXRoLm1pbiguLi5uKSxvPU1hdGgubWF4KC4uLm4pLGk9W107Zm9yKGxldCBlPXI7ZTw9bztlKyspaS5wdXNoKHQuZ2V0KGUpPz97dGltZTooMCxhLmJvbmRNYXR1cml0eVdoaXRlc3BhY2UpKGUpfSk7cmV0dXJuIGl9fSwxMzQ3NDcoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7REVTQ1JJUFRJT05fV0lUSF9JTkRVU1RSWV9NQVJLRVRfTElTVDooKT0+YX0pO2NvbnN0IGE9bmV3IFNldChbInN0b2NrIiwiZnVuZCIsImRyIiwicmlnaHQiLCJ3YXJyYW50Iiwic3RydWN0dXJlZCJdKX0sODA2ODM1KGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse0RldGFpbHNDb250ZXh0OigpPT5hfSk7Y29uc3QgYT0oMCxuKDc3OTQ3NCkuY3JlYXRlQ29udGV4dCkobnVsbCl9LDE4MDAxOShlLHQsbil7InVzZSBzdHJpY3QiO3ZhciBhO2Z1bmN0aW9uIHIoZSl7cmV0dXJuISFlJiZPYmplY3QudmFsdWVzKGUpLnNvbWUoKGU9PnZvaWQgMCE9PWUpKX1uLmQodCx7Y2hlY2tQZXJmb3JtYW5jZVZpc2libGU6KCk9PnJ9KSxmdW5jdGlvbihlKXtlLk9uZVdlZWs9IjFXIixlLk9uZU1vbnRoPSIxTSIsZS5UaHJlZU1vbnRocz0iM00iLGUuU2l4TW9udGhzPSI2TSIsZS5PbmVZZWFyPSIxWSIsZS5ZZWFyVG9EYXRlPSJZVEQiLGUuVGhyZWVZZWFycz0iM1kiLGUuRml2ZVllYXJzPSI1WSJ9KGF8fChhPXt9KSl9LDY1NDM2NChlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtyZWNvbW1lbmRhdGlvbnNCeVNpZ25hbHM6KCk9PmF9KTtjb25zdCBhPXtCdXk6ImJ1eSIsIlN0cm9uZyBCdXkiOiJzdHJvbmctYnV5IixTZWxsOiJzZWxsIiwiU3Ryb25nIFNlbGwiOiJzdHJvbmctc2VsbCIsTmV1dHJhbDoibmV1dHJhbCJ9fSwKNTE5MTg0KGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse3VzZU5ld3NQcmV2aWV3UHJvdmlkZXI6KCk9PlB9KTt2YXIgYT1uKDc3OTQ3NCkscj1uKDE4NTI3MSksbz1uKDIyMTA2MSksaT1uKDIzNjE2NCk7ZnVuY3Rpb24gbChlLHQpe2NvbnN0e3RpdGxlOm4sc2hvcnREZXNjcmlwdGlvbjphLGxpbms6cixwcm92aWRlcjpvfT1lLHtpc0xpbmtCbG9jazpsLHdpdGhIb3ZlcjpjLHNob3dFeHRlcm5hbExpbms6dX09dCxkPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2Quc2V0QXR0cmlidXRlKCJpbml0X3VuQXV0aF90aXRsZV9jb250YWluZXIiLCIiKTtjb25zdCBtPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO20uY2xhc3NMaXN0LmFkZChpWyJuZXdzLWl0ZW1fX3RpdGxlIl0pLG0udGV4dENvbnRlbnQ9bixtLmNsYXNzTGlzdC50b2dnbGUoaVsibmV3cy1pdGVtX190aXRsZS0tZXh0ZXJuYWwtbGluayJdLHUpO2NvbnN0IHA9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7cC5jbGFzc0xpc3QuYWRkKGlbIm5ld3MtaXRlbV9faGVhZGVyIl0pO2NvbnN0IGc9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Zy5jbGFzc0xpc3QuYWRkKGlbIm5ld3MtaXRlbV9fYnJlYWRjcnVtYnMiXSk7e2NvbnN0IGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7ZS5zZXRBdHRyaWJ1dGUoImluaXRfaGVhZGVyX2NvbnRhaW5lciIsIiIpLHAuYXBwZW5kQ2hpbGQoZSl9cC5hcHBlbmRDaGlsZChnKTtjb25zdCBoPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQobD8iYSI6ImRpdiIpO2guY2xhc3NMaXN0LmFkZChpWyJuZXdzLWl0ZW0iXSxpLmFjY2Vzc2libGUpLGguY2xhc3NMaXN0LnRvZ2dsZShpWyJuZXdzLWl0ZW0tLW5vLWhvdmVyIl0sIWMpLGgudGFiSW5kZXg9MDtjb25zdCB2PWU9Pntzd2l0Y2goZS50eXBlKXtjYXNlInJvdmluZy10YWJpbmRleDptYWluLWVsZW1lbnQiOmgudGFiSW5kZXg9MDticmVhaztjYXNlInJvdmluZy10YWJpbmRleDpzZWNvbmRhcnktZWxlbWVudCI6aC50YWJJbmRleD0tMX19O2guYWRkRXZlbnRMaXN0ZW5lcigicm92aW5nLXRhYmluZGV4Om1haW4tZWxlbWVudCIsdiksaC5hZGRFdmVudExpc3RlbmVyKCJyb3ZpbmctdGFiaW5kZXg6c2Vjb25kYXJ5LWVsZW1lbnQiLHYpO2NvbnN0IGY9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7aWYoZi5jbGFzc0xpc3QuYWRkKGlbIm5ld3MtaXRlbV9fd3JhcHBlciJdKSxsJiZyJiYoaC5ocmVmPXIsaC50YXJnZXQ9Il9ibGFuayIsaC5yZWw9dT8ibm9vcGVuZXIgbm9mb2xsb3ciOiJub29wZW5lciIpLGx8fGguYWRkRXZlbnRMaXN0ZW5lcigiY29udGV4dG1lbnUiLHMpLGYuYXBwZW5kQ2hpbGQocCksZi5hcHBlbmRDaGlsZChkKSxmLmFwcGVuZENoaWxkKG0pLGEpe2NvbnN0IGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7ZS5jbGFzc0xpc3QuYWRkKGlbIm5ld3MtaXRlbV9fZGVzY3JpcHRpb24iXSksZS50ZXh0Q29udGVudD1hfHwiIixmLmFwcGVuZENoaWxkKGUpfXJldHVybiBoLmFwcGVuZENoaWxkKGYpLGh9ZnVuY3Rpb24gcyhlKXtlLnByZXZlbnREZWZhdWx0KCl9Y29uc3QgYz1yLnQobnVsbCx2b2lkIDAsbig1NTY2NDkpKTtjbGFzcyB1e3RpbWVvdXQoKXtyZXR1cm4gM2U1fWdldE5ld3MoZSl7cmV0dXJuIHRoaXMuX2ZldGNoKGUpfXJlbmRlckl0ZW0oZSl7cmV0dXJuIGwoZSxmdW5jdGlvbihlKXtyZXR1cm57aXNMaW5rQmxvY2s6Qm9vbGVhbihlLmxpbmspLHdpdGhIb3ZlcjpCb29sZWFuKGUubGluayksc2hvd0V4dGVybmFsTGluazpCb29sZWFuKGUubGluayl9fShlKSl9dW5tb3VudEl0ZW1zKCl7fV90aXRsZShlKXtyZXR1cm4gYy5mb3JtYXQoe3RpdGxlOnRoaXMuX3Byb3ZpZGVyVGl0bGUsc3ltYm9sOmV9KX19dmFyIGQ9bigxMjkzNjUpLG09big3NTc1MTUpLHA9big1NzIxNTMpLGc9bigxNTg2NTUpLGg9bigxNjEzNyksdj1uLm4oaCk7dmFyIGY9big5NjMwOTgpLHk9big1NjkzOTgpLHc9bigyMDI4OSksXz1uKDg3ODgwMyksRT1uKDM1NjI4NCksYj1uKDQ2OTI0MSk7dmFyIE49big1NDQxMDUpLFM9bigxNDczKSx4PW4oMTkyNDcyKSxDPW4oMjE0OTg3KTtjb25zdCBUPSgwLG8uZ2V0TG9nZ2VyKSgiTmV3c1Byb3ZpZGVyIiksaz1yLnQobnVsbCx2b2lkIDAsbigxMzkwNDMpKTtjbGFzcyBEIGV4dGVuZHMgdXtjb25zdHJ1Y3RvcihlKXtzdXBlcigpLHRoaXMuX3Byb3ZpZGVyVGl0bGU9ayx0aGlzLl91bm1vdW50QWxsUmVuZGVyZWRJdGVtcz1bXSx0aGlzLl9wbGFjZW1lbnQ9ZX1nZXROZXdzKGUsdCl7cmV0dXJuIHRoaXMuX2ZldGNoKHsuLi5lLHByb19uYW1lOigwLHcuaGFuZGxlTmV3c1Byb05hbWUpKGUucHJvX25hbWUsZS50eXBlKX0sdCl9YXN5bmMgZ2V0TmV3c0J5U3ltYm9sKGUpe3JldHVybiB0aGlzLl9mZXRjaEJ5U3ltYm9sKHsuLi5lLHByb19uYW1lOigwLHcuaGFuZGxlTmV3c1Byb05hbWUpKGUucHJvX25hbWUsZS50eXBlKX0pfWFzeW5jIGdldExhdGVzdE5ld3MoZSl7cmV0dXJuIGFzeW5jIGZ1bmN0aW9uKGUpe2NvbnN0e3NpZ25hbDp0fT1lLG49e2ZpbHRlcnM6e2xhbmc6W2UubGFuZ3x8KDAsZi5nZXRJc29MYW5ndWFnZUNvZGVGcm9tTGFuZ3VhZ2UpKHdpbmRvdy5sYW5ndWFnZSldLHN5bWJvbDpbKDAsdy5oYW5kbGVOZXdzUHJvTmFtZSkoZS5zeW1ib2wsZS50eXBlKV19LGNsaWVudDoiZGV0YWlsIixzdHJlYW1pbmc6ITF9O3JldHVybigwLHkuaXNGZWF0dXJlRW5hYmxlZCkoIm5ld3NfdXNlX25ld3NfbWVkaWF0b3IiKT8oMCxfLmdldE5ld3NGbG93TmV3cykoKDAsRS5nZXRNZWRpYXRvclJlcXVlc3RQYXJhbXMpKG4pLHQpLnRoZW4oKGU9PmUuaXRlbXNbMF0pKTooMCxiLmdldE5ld3NIdWJMYXRlc3ROZXdzSXRlbSkoKDAsRS5nZXROZXdzSHViUmVxdWVzdFBhcmFtcykobiksdCl9KGUpfXJlbmRlckl0ZW0oZSl7Y29uc3QgdD0oMCxTLmdldEFjY2Vzc0dhdGUpKGUpLG49ZnVuY3Rpb24oZSx0KXtyZXR1cm4gbCh7Li4uZSx0aXRsZTp0LmFjY2Vzc0xldmVsPT09cC5BY2Nlc3NMZXZlbC5Qcm92aWRlcj8iIjplLnRpdGxlLGxpbms6KDAsbS5nZXROZXdzSXRlbUxpbmspKGUpfSx7CmlzTGlua0Jsb2NrOiEwLHdpdGhIb3ZlcjohMCxzaG93RXh0ZXJuYWxMaW5rOkJvb2xlYW4oZS5pc0V4dGVybmFsKX0pfShlLHQpLHI9dC5hY2Nlc3NMZXZlbD09PXAuQWNjZXNzTGV2ZWwuUHJvdmlkZXIsbz1lLnJlbGF0ZWRTeW1ib2xzPygwLGcucHJlcGFyZUxvZ29VcmxzKShlLnJlbGF0ZWRTeW1ib2xzLnNsaWNlKDAsNCkpOltdLGk9ZS5yZWxhdGVkU3ltYm9scz9lLnJlbGF0ZWRTeW1ib2xzLm1hcCgoZT0+ZS5zeW1ib2wpKTpbXSxzPWZ1bmN0aW9uKGUsdCl7Y29uc3Qgbj10LnF1ZXJ5U2VsZWN0b3IoIltpbml0X2hlYWRlcl9jb250YWluZXJdIik7cmV0dXJuIGQucmVuZGVyKGEuY3JlYXRlRWxlbWVudChnLkhlYWRsaW5lSGVhZCx7Li4uZX0pLG4pLCgpPT57ZC51bm1vdW50Q29tcG9uZW50QXROb2RlKG4pfX0oe3B1Ymxpc2hlZDplLnB1Ymxpc2hlZCxsb2dvVXJsc09yU3ltYm9sczpvLHN5bWJvbHNQcm9OYW1lczppLHByb3ZpZGVyTmFtZTplLnByb3ZpZGVyLm5hbWUsaXNMb2NrZWQ6cn0sbik7aWYodGhpcy5fdW5tb3VudEFsbFJlbmRlcmVkSXRlbXMucHVzaChzKSxyKXtjb25zdCBlPWZ1bmN0aW9uKGUpe2NvbnN0IHQ9ZS5xdWVyeVNlbGVjdG9yKCJbaW5pdF91bkF1dGhfdGl0bGVfY29udGFpbmVyXSIpO3JldHVybiBkLnJlbmRlcihhLmNyZWF0ZUVsZW1lbnQoZy5IZWFkbGluZVVuYXV0aFRpdGxlLHtjbGFzc05hbWU6digpLnRpdGxlfSksdCksKCk9PntkLnVubW91bnRDb21wb25lbnRBdE5vZGUodCl9fShuKTt0aGlzLl91bm1vdW50QWxsUmVuZGVyZWRJdGVtcy5wdXNoKGUpfXJldHVybiBufXVubW91bnRJdGVtcygpe3RoaXMuX3VubW91bnRBbGxSZW5kZXJlZEl0ZW1zLmZvckVhY2goKGU9PmUoKSkpLHRoaXMuX3VubW91bnRBbGxSZW5kZXJlZEl0ZW1zPVtdfWFzeW5jIF9mZXRjaChlLHQpe3RyeXtjb25zdCBuPXtmaWx0ZXJzOntsYW5nOltlLmxhbmd8fCgwLGYuZ2V0SXNvTGFuZ3VhZ2VDb2RlRnJvbUxhbmd1YWdlKSh3aW5kb3cubGFuZ3VhZ2UpXSxzeW1ib2w6W2UucHJvX25hbWVdfSxjbGllbnQ6ZS5jbGllbnR8fCJ3ZWIifSxhPShhd2FpdCB4LlRyYWRpbmdWaWV3TmV3c1Byb3ZpZGVyRmV0Y2hlci5pbnN0YW5jZSgpLmZldGNoKG4sdGhpcy50aW1lb3V0KCksdCxlLnNpZ25hbCkpLml0ZW1zLHI9YS5tYXAoKGU9Pih7Li4uZSxjbGlja0hhbmRsZXI6dGhpcy5fY3JlYXRlQ2xpY2tIYW5kbGVyKGUsYSl9KSkpO3JldHVybnt0aXRsZTp0aGlzLl90aXRsZShlLnNob3J0X25hbWUpLG5ld3NJdGVtczpyfX1jYXRjaChlKXt0aHJvdygwLEMuaXNBYm9ydEVycm9yKShlKXx8VC5sb2dFcnJvcihlLm1lc3NhZ2UpLGV9fWFzeW5jIF9mZXRjaEJ5U3ltYm9sKGUpe3RyeXtjb25zdCB0PXtmaWx0ZXJzOntsYW5nOlsoMCxmLmdldElzb0xhbmd1YWdlQ29kZUZyb21MYW5ndWFnZSkod2luZG93Lmxhbmd1YWdlKV0sc3ltYm9sOltlLnByb19uYW1lXSxjb3JwX2FjdGl2aXR5OmUuc2VjdGlvbj9bZS5zZWN0aW9uXTp2b2lkIDB9LGNsaWVudDplLmNsaWVudHx8IndlYiJ9LG49YXdhaXQgeC5UcmFkaW5nVmlld05ld3NQcm92aWRlckZldGNoZXIuaW5zdGFuY2UoKS5mZXRjaEJ5U3ltYm9sKHQsdGhpcy50aW1lb3V0KCksZS5zaWduYWwpLGE9bi5pdGVtcy5tYXAoKGU9Pih7Li4uZSxjbGlja0hhbmRsZXI6dGhpcy5fY3JlYXRlQ2xpY2tIYW5kbGVyKGUsbi5pdGVtcyl9KSkpO3JldHVybntzZWN0aW9uczpuLnNlY3Rpb25zLG5ld3NJdGVtczphfX1jYXRjaChlKXt0aHJvdygwLEMuaXNBYm9ydEVycm9yKShlKXx8VC5sb2dFcnJvcihlLm1lc3NhZ2UpLGV9fV9jcmVhdGVDbGlja0hhbmRsZXIoZSx0KXtjb25zdCBuPSgwLE4ub25OZXdzQ2FyZEFjdGlvbikoe25ld3NJdGVtOmUsbmV3c0l0ZW1zOnQscGxhY2VtZW50OnRoaXMuX3BsYWNlbWVudH0pO3JldHVybiBlPT57biYmbihlKX19fXZhciBJPW4oNDQwMzQ3KSxNPW4oNTg2MjIzKSxMPW4oMTU2ODI5KTtmdW5jdGlvbiBQKGUpe2NvbnN0e2FjdGl2ZTp0PSEwLHR5cGU6bixzeW1ib2w6cn09ZSxbbyxpXT0oMCxhLnVzZVN0YXRlKSh7bmV3c1ByZXZpZXc6bnVsbCxzaG93TmV3czohMSxjb21wbGV0ZTohMX0pLFtsXT0oMCxhLnVzZVN0YXRlKSgoKCk9Pm5ldyBEKEkuTmV3c1dpZGdldFBsYWNlbWVudC5XaWRnZXRCYXIpKSkscz0oMCxNLnVzZVByZXZpb3VzKShyKTtyZXR1cm4oMCxhLnVzZUVmZmVjdCkoKCgpPT57aWYoIXQpcmV0dXJuIHZvaWQgaSgoZT0+KHsuLi5lLG5ld3NQcmV2aWV3Om51bGwsc2hvd05ld3M6ITF9KSkpO2lmKCFyfHwhbilyZXR1cm4gdm9pZCBpKChlPT4oey4uLmUsc2hvd05ld3M6ITF9KSkpO2lmKCgwLEwuaXNPcHRpb24pKG4pKXJldHVybiB2b2lkIGkoKGU9Pih7Li4uZSxuZXdzUHJldmlldzpudWxsLHNob3dOZXdzOiEwfSkpKTtpZihpKChlPT4oey4uLmUsc2hvd05ld3M6ITB9KSkpLHI9PT1zKXJldHVybjtpKChlPT4oey4uLmUsY29tcGxldGU6ITF9KSkpO2NvbnN0IGU9bmV3IEFib3J0Q29udHJvbGxlcjtGKGwscixuLGUuc2lnbmFsKS50aGVuKChlPT57aSgodD0+KHsuLi50LG5ld3NQcmV2aWV3OmUsY29tcGxldGU6ITB9KSkpfSkpO2NvbnN0IGE9c2V0SW50ZXJ2YWwoKCgpPT57RihsLHIsbixlLnNpZ25hbCkudGhlbigoZT0+e2koKHQ9Pih7Li4udCxuZXdzUHJldmlldzplfSkpKX0pKX0pLGwudGltZW91dCgpKTtyZXR1cm4oKT0+e2NsZWFySW50ZXJ2YWwoYSksZS5hYm9ydCgpfX0pLFtyLG4sdF0pLG99ZnVuY3Rpb24gRihlLHQsbixhKXtyZXR1cm4gZS5nZXRMYXRlc3ROZXdzKHtzeW1ib2w6dCx0eXBlOm4sc2lnbmFsOmF9KS5jYXRjaCgoKCk9Pm51bGwpKS50aGVuKChlPT57aWYoIWV8fCFlLnRpdGxlKXJldHVybiBudWxsO2NvbnN0e3RpdGxlOnQscHVibGlzaGVkOm4sdXJnZW5jeTphLHBlcm1pc3Npb246cixpc0V4Y2x1c2l2ZTpvfT1lO3JldHVybnt0aXRsZTp0LHB1Ymxpc2hlZDpuLHVyZ2VuY3k6YSxwZXJtaXNzaW9uOnIsaXNFeGNsdXNpdmU6b319KSl9fSw4MTkzODMoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7dXNlTmV3c1ByZXZpZXdTdHJlYW1pbmdQcm92aWRlcjooKT0+Zn0pCjt2YXIgYT1uKDc3OTQ3NCkscj1uKDk2MzA5OCksbz1uKDM1NjI4NCksaT1uKDIyMTA2MSksbD1uKDIxNDk4Nyk7Y29uc3Qgcz0oMCxpLmdldExvZ2dlcikoIldpZGdldE5ld3MiKTt2YXIgYz1uKDU4NjIyMyksdT1uKDIwMzY4MSksZD1uKDQ5MjkzNCksbT1uKDU2OTM5OCk7Y29uc3QgcD0oMCxpLmdldExvZ2dlcikoIk5ld3MuUHJvdmlkZXIiKTt2YXIgZzshZnVuY3Rpb24oZSl7ZVtlLkRlZmF1bHREZWxheU9uU3RyZWFtaW5nU3RhcnQ9NDAwXT0iRGVmYXVsdERlbGF5T25TdHJlYW1pbmdTdGFydCIsZVtlLk5ld1N0b3JpZXNHYXA9MTJlNF09Ik5ld1N0b3JpZXNHYXAifShnfHwoZz17fSkpO2NsYXNzIGh7Y29uc3RydWN0b3IoZSl7dmFyIHQ7dGhpcy5faXNTdHJlYW1pbmdBY3RpdmU9ITEsdGhpcy5fcmVxdWVzdE5ld3M9KHQ9ZS5yZXF1ZXN0TmV3cyxlPT57dHJ5e3JldHVybiB0KGUpfWNhdGNoKGUpe3JldHVybiBwLmxvZ0Vycm9yKGUpLFByb21pc2UucmVqZWN0KGUpfX0pLHRoaXMuX25ld3NJdGVtcz1lLm5ld3NSZXNwb25zZT8uaXRlbXM/P1tdLHRoaXMuX3N0cmVhbWluZ0NoYW5uZWw9ZS5uZXdzUmVzcG9uc2U/LnN0cmVhbWluZz8uY2hhbm5lbCx0aGlzLl9uZXdzSXRlbXNMaW1pdD1lLm5ld3NJdGVtc0xpbWl0LHRoaXMuX2Fib3J0Q29udHJvbGxlcj1uZXcgQWJvcnRDb250cm9sbGVyfWFzeW5jIHR1cm5PblJlYWxUaW1lVXBkYXRlcyhlKXtjb25zdHtuZXdJdGVtSGFuZGxlcjp0LGRlbGF5T25TdGFydDpuPTQwMH09ZTtpZighKDAsbS5pc0ZlYXR1cmVFbmFibGVkKSgibmV3c19lbmFibGVfc3RyZWFtaW5nIil8fHRoaXMuX3N0cmVhbWluZylyZXR1cm47dGhpcy5fbmV3SXRlbUhhbmRsZXI9dDtsZXQgYT1lLm5ld3NSZXNwb25zZT8uc3RyZWFtaW5nPy5jaGFubmVsPz90aGlzLl9zdHJlYW1pbmdDaGFubmVsO2lmKGUubmV3c1Jlc3BvbnNlJiYhdGhpcy5fbmV3c0l0ZW1zLmxlbmd0aCYmKHRoaXMuX25ld3NJdGVtcz1lLm5ld3NSZXNwb25zZT8uaXRlbXMpLCFhKXtjb25zdCB0PWF3YWl0IHRoaXMuX3JlcXVlc3ROZXdzKHRoaXMuX2Fib3J0Q29udHJvbGxlci5zaWduYWwpO2E9dC5zdHJlYW1pbmc/LmNoYW5uZWw7Y29uc3Qgbj10Lml0ZW1zPz9lPy5uZXdzUmVzcG9uc2U/Lml0ZW1zO3RoaXMuX25ld3NJdGVtcz10aGlzLl9tZXJnZUxvYWRlZEFuZERpc3BsYXllZE5ld3Mobix0aGlzLl9uZXdzSXRlbXMpfWEmJih0aGlzLl9zdHJlYW1pbmc9dGhpcy5fY3JlYXRlU3RyZWFtaW5nQ29ubmVjdGlvbihhKSxhd2FpdCB0aGlzLl9zdHJlYW1pbmcuc3RhcnQoKSxhd2FpdCB0aGlzLl9hZnRlclN0cmVhbWluZ0Nvbm5lY3Rpb24obikpfXR1cm5PZmZSZWFsVGltZVVwZGF0ZXMoKXt0aGlzLl9zdHJlYW1pbmc/LmRlc3Ryb3koKSx0aGlzLl9zdHJlYW1pbmc/Lm5ld0l0ZW0oKS51bnN1YnNjcmliZSh0aGlzLHRoaXMuX29uTmV3SXRlbS5iaW5kKHRoaXMpKX1nZXQgY3VycmVudE5ld3MoKXtjb25zdCBlPXRoaXMuX25ld3NJdGVtcztyZXR1cm4gdGhpcy5fbmV3c0l0ZW1zPSgwLHUuZGVmYXVsdCkodGhpcy5fbmV3c0l0ZW1zKSx0aGlzLl9uZXdzSXRlbXMubWFwKChlPT5lLmlzUmVhbFRpbWVOZXdzPXZvaWQgMCkpLGV9YXN5bmMgbG9hZE1vcmVOZXdzKCl7aWYodGhpcy5fbmV3c0l0ZW1zTGltaXQmJnRoaXMuX25ld3NJdGVtcy5sZW5ndGg+PXRoaXMuX25ld3NJdGVtc0xpbWl0KXJldHVybiB2b2lkKHRoaXMuX25ld3NJdGVtcz10aGlzLl9uZXdzSXRlbXMuc2xpY2UoMCx0aGlzLl9uZXdzSXRlbXNMaW1pdCkpO2NvbnN0IGU9KGF3YWl0IHRoaXMuX3JlcXVlc3ROZXdzKHRoaXMuX2Fib3J0Q29udHJvbGxlci5zaWduYWwpKS5pdGVtczt0aGlzLl9uZXdzSXRlbXM9dGhpcy5fbWVyZ2VMb2FkZWRBbmREaXNwbGF5ZWROZXdzKGUsdGhpcy5fbmV3c0l0ZW1zKX1zZXQgbmV3c0l0ZW1zTGltaXQoZSl7dGhpcy5fbmV3c0l0ZW1zTGltaXQ9ZX1kZXN0cm95KCl7dGhpcy5fYWJvcnRDb250cm9sbGVyLmFib3J0KCksdGhpcy50dXJuT2ZmUmVhbFRpbWVVcGRhdGVzKCl9X2NyZWF0ZVN0cmVhbWluZ0Nvbm5lY3Rpb24oZSl7cmV0dXJuIG5ldyBkLk5ld3NTdHJlYW1pbmcoe2NoYW5uZWw6ZSxsb2FkZWROZXdzSWRzOm5ldyBTZXQodGhpcy5fbmV3c0l0ZW1zLm1hcCgoZT0+ZS5pZCkpKSxiZWZvcmVSZWNvbm5lY3Q6YXN5bmMgZT0+e2NvbnN0IHQ9YXdhaXQgdGhpcy5fcmVxdWVzdE5ld3MoZSksbj1mdW5jdGlvbihlLHQpe2NvbnN0IG49bmV3IFNldCh0Lm1hcCgoZT0+ZS5pZCkpKTtyZXR1cm4gZS5maWx0ZXIoKGU9PiFuLmhhcyhlLmlkKSkpfSh0Lml0ZW1zLHRoaXMuX25ld3NJdGVtcyk7cmV0dXJuIG4uZm9yRWFjaCgoZT0+dGhpcy5fb25OZXdJdGVtKGUpKSkse2NoYW5uZWw6dC5zdHJlYW1pbmc/LmNoYW5uZWwsbG9hZGVkTmV3c0lkczpuZXcgU2V0KHRoaXMuX25ld3NJdGVtcy5tYXAoKGU9PmUuaWQpKSl9fSxuZXdJdGVtSGFuZGxlcjp0aGlzLl9vbk5ld0l0ZW0uYmluZCh0aGlzKX0pfWFzeW5jIF9hZnRlclN0cmVhbWluZ0Nvbm5lY3Rpb24oZSl7cmV0dXJuIG5ldyBQcm9taXNlKCh0PT57c2V0VGltZW91dCgoKCk9Pnt0aGlzLl9pc1N0cmVhbWluZ0FjdGl2ZT0hMCx0aGlzLl9uZXdzSXRlbXM9dGhpcy5fbmV3c0l0ZW1zLnNvcnQoKChlLHQpPT50LnB1Ymxpc2hlZC1lLnB1Ymxpc2hlZCkpLnNsaWNlKDAsdGhpcy5fbmV3c0l0ZW1zTGltaXQpLHQoKX0pLGUpfSkpfV9oYW5kbGVIaXN0b3J5SXRlbUZyb21TdHJlYW1pbmcoZSl7dGhpcy5fbmV3c0l0ZW1zPVtlLC4uLnRoaXMuX25ld3NJdGVtc119X2hhbmRsZU5ld0l0ZW1Gcm9tU3RyZWFtaW5nKGUpe2NvbnN0IHQ9dGhpcy5fbmV3c0l0ZW1zLmxlbmd0aD90aGlzLl9uZXdzSXRlbXNbMF0ucHVibGlzaGVkOjA7aWYoZS5wdWJsaXNoZWQ8PXQrMTJlNClyZXR1cm47Y29uc3Qgbj17Li4uZSxpc1JlYWxUaW1lTmV3czohMH07dGhpcy5fbmV3c0l0ZW1zPVtuLC4uLnRoaXMuX25ld3NJdGVtc10uc2xpY2UoMCx0aGlzLl9uZXdzSXRlbXNMaW1pdCksdGhpcy5fbmV3SXRlbUhhbmRsZXI/LihlKX1fb25OZXdJdGVtKGUpewp0aGlzLl9pc1N0cmVhbWluZ0FjdGl2ZT90aGlzLl9oYW5kbGVOZXdJdGVtRnJvbVN0cmVhbWluZyhlKTp0aGlzLl9oYW5kbGVIaXN0b3J5SXRlbUZyb21TdHJlYW1pbmcoZSl9X21lcmdlTG9hZGVkQW5kRGlzcGxheWVkTmV3cyhlLHQpe2lmKCFlLmxlbmd0aClyZXR1cm4gdC5zbGljZSgwLHRoaXMuX25ld3NJdGVtc0xpbWl0KTtpZighdC5sZW5ndGgpcmV0dXJuIGUuc2xpY2UoMCx0aGlzLl9uZXdzSXRlbXNMaW1pdCk7Y29uc3Qgbj1mdW5jdGlvbihlLHQpe2NvbnN0IG49ZS5maW5kSW5kZXgoKGU9PmUuaWQ9PT10KSk7cmV0dXJuIG4+PTA/ZS5zbGljZShuKzEpOltdfShlLHRbdC5sZW5ndGgtMV0uaWQpLGE9bmV3IFNldCh0Lm1hcCgoZT0+ZS5pZCkpKSxyPW4uZmlsdGVyKChlPT4hYS5oYXMoZS5pZCkpKTtyZXR1cm5bLi4udCwuLi5yXS5zbGljZSgwLHRoaXMuX25ld3NJdGVtc0xpbWl0KX19dmFyIHY9bigxNTY4MjkpO2Z1bmN0aW9uIGYoZSl7Y29uc3R7YWN0aXZlOnQ9ITAsdHlwZTpuLHN5bWJvbDpyfT1lLFtpLHVdPSgwLGEudXNlU3RhdGUpKHtuZXdzUHJldmlldzpudWxsLHNob3dOZXdzOiExLGNvbXBsZXRlOiExfSksZD0oMCxjLnVzZVByZXZpb3VzKShyKSxtPSgwLGEudXNlUmVmKShudWxsKTtyZXR1cm4oMCxhLnVzZUVmZmVjdCkoKCgpPT57aWYoIXQpcmV0dXJuIHZvaWQgdSgoZT0+KHsuLi5lLG5ld3NQcmV2aWV3Om51bGwsc2hvd05ld3M6ITF9KSkpO2lmKCFyfHwhbilyZXR1cm4gdm9pZCB1KChlPT4oey4uLmUsc2hvd05ld3M6ITF9KSkpO2lmKCgwLHYuaXNPcHRpb24pKG4pKXJldHVybiB2b2lkIHUoKGU9Pih7Li4uZSxuZXdzUHJldmlldzpudWxsLHNob3dOZXdzOiEwfSkpKTtpZih1KChlPT4oey4uLmUsc2hvd05ld3M6ITB9KSkpLHI9PT1kKXJldHVybjtjb25zdCBlPW5ldyBBYm9ydENvbnRyb2xsZXIsYT1tLmN1cnJlbnQ9bmV3IGgoe3JlcXVlc3ROZXdzOigpPT4oMCxvLmdldFRyYWRpbmdWaWV3TmV3cykoeShyKSxlLnNpZ25hbCl9KTtyZXR1cm4oYXN5bmMoKT0+e3RyeXtjb25zdCB0PWF3YWl0IGFzeW5jIGZ1bmN0aW9uKGUsdCxuKXt0cnl7cmV0dXJue3Jlc3BvbnNlOmF3YWl0KDAsby5nZXRUcmFkaW5nVmlld05ld3NCeVN5bWJvbFZpZXcpKGUsdCxuKSxoYXNFcnJvcjohMX19Y2F0Y2goZSl7aWYoKDAsbC5pc0Fib3J0RXJyb3IpKGUpKXRocm93IGU7cmV0dXJuIHMubG9nRXJyb3IoZSkse3Jlc3BvbnNlOntpdGVtczpbXSxzZWN0aW9uczpbXX0saGFzRXJyb3I6ITB9fX0oeShyKSxlLnNpZ25hbCk7aWYodC5oYXNFcnJvcilyZXR1cm47dC5yZXNwb25zZS5pdGVtcy5sZW5ndGgmJnUoKGU9Pih7Li4uZSxuZXdzUHJldmlldzp0LnJlc3BvbnNlLml0ZW1zWzBdLGNvbXBsZXRlOiEwfSkpKSxhd2FpdCBhLnR1cm5PblJlYWxUaW1lVXBkYXRlcyh7bmV3c1Jlc3BvbnNlOnQucmVzcG9uc2UsbmV3SXRlbUhhbmRsZXI6ZT0+e3UoKHQ9Pih7Li4udCxuZXdzUHJldmlldzplLGNvbXBsZXRlOiEwfSkpKX0sZGVsYXlPblN0YXJ0OjIwMCxzaWduYWw6ZS5zaWduYWx9KX1jYXRjaHtyZXR1cm59fSkoKSwoKT0+e2UuYWJvcnQoKSxtLmN1cnJlbnQ/LmRlc3Ryb3koKSxtLmN1cnJlbnQ9bnVsbH19KSxbcixuLHRdKSxpfWZ1bmN0aW9uIHkoZSl7cmV0dXJue2ZpbHRlcnM6e2xhbmc6WygwLHIuZ2V0SXNvTGFuZ3VhZ2VDb2RlRnJvbUxhbmd1YWdlKSh3aW5kb3cubGFuZ3VhZ2UpXSxzeW1ib2w6W2VdfSxjbGllbnQ6ImRldGFpbCIsc3RyZWFtaW5nOiEwfX19LDQ2ODgxNChlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtEZXRhaWxzOigpPT55aX0pO3ZhciBhPW4oNzc5NDc0KSxyPW4oOTE0NDg3KSxvPW4ubihyKSxpPW4oOTMwMjMxKSxsPW4oMzg2OTMxKSxzPW4oMTM4NjM4KSxjPW4oMjIxMDYxKSx1PW4oNTA1NTYpLGQ9big0MDIzOSksbT1uKDU4OTkxNSkscD1uKDg5MzExNSksZz1uKDE4NTI3MSksaD1uKDM3NDAxNyksdj1uKDY3ODMxMiksZj1uKDU4NzE2OCkseT1uKDIwMDY2Niksdz1uKDU0NzQyMyksXz1uKDEwNjkwMCksRT1uKDI3NjAxOSksYj1uKDU4NTQ4KSxOPW4oODUxNDU4KSxTPW4oNTM4NTE1KSx4PW4oNjEzOTg3KSxDPW4oOTI0OTc1KSxUPW4oOTYzMDk4KSxrPW4oODczNTczKSxEPW4oODEwNDEpO2Z1bmN0aW9uIEkoZSx0LG4pe3JldHVybnsuLi5uLHdpZHRoOnBhcnNlSW50KGdldENvbXB1dGVkU3R5bGUodCkud2lkdGgpLGhlaWdodDoxNzcsbG9jYWxpemF0aW9uOnsuLi5uPy5sb2NhbGl6YXRpb24sbG9jYWxlOigwLFQuZ2V0SXNvTGFuZ3VhZ2VDb2RlRnJvbUxhbmd1YWdlKSh3aW5kb3cubGFuZ3VhZ2V8fCJlbiIpfSxsYXlvdXQ6ey4uLm4/LmxheW91dCxiYWNrZ3JvdW5kOnt0eXBlOnYuQ29sb3JUeXBlLlNvbGlkLGNvbG9yOiJ0cmFuc3BhcmVudCJ9LHRleHRDb2xvcjplPT09RC5TdGRUaGVtZS5MaWdodD91LmNvbG9yc1BhbGV0dGVbImNvbG9yLWNvbGQtZ3JheS05MDAiXTp1LmNvbG9yc1BhbGV0dGVbImNvbG9yLWNvbGQtZ3JheS0zMDAiXSxhdHRyaWJ1dGlvbkxvZ286ITF9LGdyaWQ6ey4uLm4/LmdyaWQsdmVydExpbmVzOnsuLi5uPy5ncmlkPy52ZXJ0TGluZXMsdmlzaWJsZTohMX0saG9yekxpbmVzOnsuLi5uPy5ncmlkPy5ob3J6TGluZXMsY29sb3I6ZT09PUQuU3RkVGhlbWUuRGFyaz91LmNvbG9yc1BhbGV0dGVbImNvbG9yLWNvbGQtZ3JheS04MDAiXTp1LmNvbG9yc1BhbGV0dGVbImNvbG9yLWNvbGQtZ3JheS0xMDAiXX19LGxlZnRQcmljZVNjYWxlOnsuLi5uPy5sZWZ0UHJpY2VTY2FsZSxlbnRpcmVUZXh0T25seTohMH0scmlnaHRQcmljZVNjYWxlOnsuLi5uPy5yaWdodFByaWNlU2NhbGUsZW50aXJlVGV4dE9ubHk6ITAsYm9yZGVyVmlzaWJsZTohMX0sdGltZVNjYWxlOnsuLi5uPy50aW1lU2NhbGUsYm9yZGVyVmlzaWJsZTohMX0saGFuZGxlU2Nyb2xsOiExLGhhbmRsZVNjYWxlOiExfX1mdW5jdGlvbiBNKGUpe3JldHVybnsuLi5lLGNvbG9yOnUuY29sb3JzUGFsZXR0ZVsiY29sb3ItYnJhbmQiXSxsaW5lV2lkdGg6MixsYXN0VmFsdWVWaXNpYmxlOiExLHByaWNlTGluZVZpc2libGU6ITF9fWZ1bmN0aW9uIEwoZSl7cmV0dXJuey4uLmUsdG9wQ29sb3I6KDAsCmsuZ2VuZXJhdGVDb2xvcikodS5jb2xvcnNQYWxldHRlWyJjb2xvci1icmFuZCJdLDc1KSxib3R0b21Db2xvcjooMCxrLmdlbmVyYXRlQ29sb3IpKHUuY29sb3JzUGFsZXR0ZVsiY29sb3ItYnJhbmQiXSwxMDApLGxpbmVDb2xvcjp1LmNvbG9yc1BhbGV0dGVbImNvbG9yLWJyYW5kIl0sbGluZVdpZHRoOjIsbGFzdFZhbHVlVmlzaWJsZTohMSxwcmljZUxpbmVWaXNpYmxlOiExfX1jbGFzcyBQe29wdGlvbnMoKXtyZXR1cm4gdGhpcy5fb3B0aW9uc31zZXRPcHRpb25zKGUpe3RoaXMuX29wdGlvbnM9ZX1wcmVwcm9jZXNzRGF0YShlKXt9dXBkYXRlRm9ybWF0dGVyKGUpe31jcmVhdGVDb252ZXJ0ZXJUb0ludGVybmFsT2JqKGUpe3JldHVybiBlPT5lfWtleShlKXtyZXR1cm4gZX1jYWNoZUtleShlKXtyZXR1cm4gZX1jb252ZXJ0SG9yekl0ZW1Ub0ludGVybmFsKGUpe3JldHVybiBlfWZvcm1hdEhvcnpJdGVtKGUpe3JldHVybiBlLnRvU3RyaW5nKCl9Zm9ybWF0VGlja21hcmsoZSx0KXtyZXR1cm4gZS50aW1lLnRvU3RyaW5nKCl9bWF4VGlja01hcmtXZWlnaHQoZSl7cmV0dXJuIDF9ZmlsbFdlaWdodHNGb3JQb2ludHMoZSx0KXt9fXZhciBGPW4oNzM4Mjc4KTtmdW5jdGlvbiBBKGUpe2NvbnN0e2NsYXNzTmFtZTp0LHRpdGxlOm4sZGF0YTpyLGNoYXJ0T3B0aW9uczppLHNlcmllc09wdGlvbnM6bCxjdXJ2ZVR5cGU6Yyxjcm9zc0hhaXJBbGlnbmVyOmQsYnVpbGRUb29sdGlwOm09Un09ZSxwPSgwLGEudXNlUmVmKShudWxsKSxbZyxoXT0oMCxhLnVzZVN0YXRlKShudWxsKSxbVCxrXT0oMCxhLnVzZVN0YXRlKShudWxsKSxEPSgwLF8udXNlV2F0Y2hlZFZhbHVlUmVhZG9ubHkpKHt3YXRjaGVkVmFsdWU6eS53YXRjaGVkVGhlbWV9KSxBPSgwLGEudXNlUmVmKShudWxsKSxCPSgwLGEudXNlUmVmKShudWxsKSxbTyxXXT0oMCxTLnVzZURpbWVuc2lvbnMpKCksVT0oMCxhLnVzZUNhbGxiYWNrKSgoMCxmLmRlZmF1bHQpKCgoKT0+ezAhPT1yLmxlbmd0aCYmQS5jdXJyZW50JiZwLmN1cnJlbnQmJihBLmN1cnJlbnQuYXBwbHlPcHRpb25zKHt3aWR0aDpwLmN1cnJlbnQuY2xpZW50V2lkdGh9KSxBLmN1cnJlbnQudGltZVNjYWxlKCkuc2V0VmlzaWJsZUxvZ2ljYWxSYW5nZSh7ZnJvbTouNSx0bzpyLmxlbmd0aD4xP3IubGVuZ3RoLTEuNToxLjV9KSl9KSwyMDApLFtyXSk7cmV0dXJuKDAsYS51c2VFZmZlY3QpKCgoKT0+e2Z1bmN0aW9uIGUoKXtoKG51bGwpfXJldHVybiBFLmdsb2JhbENsb3NlRGVsZWdhdGUuc3Vic2NyaWJlKG51bGwsZSksKCk9PntFLmdsb2JhbENsb3NlRGVsZWdhdGUudW5zdWJzY3JpYmUobnVsbCxlKX19KSxbXSksKDAsYS51c2VFZmZlY3QpKCgoKT0+e2NvbnN0IGU9KDAscy5lbnN1cmVOb3ROdWxsKShwLmN1cnJlbnQpO0EuY3VycmVudD8uYXBwbHlPcHRpb25zKEkoRCxlLGkpKSwiZnV0dXJlcyI9PT1jP0IuY3VycmVudD8uYXBwbHlPcHRpb25zKEwobCkpOkIuY3VycmVudD8uYXBwbHlPcHRpb25zKE0obCkpfSksW0QsaSxsLGNdKSwoMCxhLnVzZUVmZmVjdCkoKCgpPT57aWYoMD09PXIubGVuZ3RoKXJldHVybjtjb25zdCBlPSgwLHMuZW5zdXJlTm90TnVsbCkocC5jdXJyZW50KSx0PUkoRCxlLGkpO2xldCBuO3N3aXRjaChjKXtjYXNlImJvbmRzIjpuPSgwLHYuY3JlYXRlQ2hhcnRFeCkoZSxuZXcgdy5Cb25kc0hvcnpTY2FsZUJlaGF2aW9yLHQpO2JyZWFrO2Nhc2Uidm9sYXRpbGl0eSI6bj0oMCx2LmNyZWF0ZUNoYXJ0RXgpKGUsbmV3IFAsdCk7YnJlYWs7ZGVmYXVsdDpuPSgwLHYuY3JlYXRlQ2hhcnQpKGUsdCl9QS5jdXJyZW50PW4sQi5jdXJyZW50PSJmdXR1cmVzIj09PWM/bi5hZGRTZXJpZXModi5BcmVhU2VyaWVzLEwobCkpOm4uYWRkU2VyaWVzKHYuTGluZVNlcmllcyxNKGwpKTtjb25zdCBhPXIubWFwKChlPT4oe3RpbWU6ZS50aW1lLHZhbHVlOmUudmFsdWV9KSkpO3JldHVybiBCLmN1cnJlbnQuc2V0RGF0YShhKSxuLnRpbWVTY2FsZSgpLmFwcGx5T3B0aW9ucyh7bWluQmFyU3BhY2luZzouMDEsYWxsb3dCb2xkTGFiZWxzOiJib25kcyIhPT1jfSksbi50aW1lU2NhbGUoKS5zZXRWaXNpYmxlTG9naWNhbFJhbmdlKHtmcm9tOi41LHRvOnIubGVuZ3RoPjE/ci5sZW5ndGgtMS41OjEuNX0pLCgpPT57bi5yZW1vdmUoKSxBLmN1cnJlbnQ9bnVsbCxCLmN1cnJlbnQ9bnVsbH19KSxbcixjXSksKDAsYS51c2VFZmZlY3QpKCgoKT0+e2NvbnN0IGU9ZT0+e0EuY3VycmVudD8uYXBwbHlPcHRpb25zKHtjcm9zc2hhaXI6e3ZlcnRMaW5lOnt2aXNpYmxlOmV9fX0pfSx0PSgwLHMuZW5zdXJlTm90TnVsbCkocC5jdXJyZW50KTtmdW5jdGlvbiBuKG4pe2lmKCFBLmN1cnJlbnQpcmV0dXJuO2NvbnN0e3BvaW50OmEsc2VyaWVzRGF0YTpvfT1uO2xldCBpPW8/LmdldCgoMCxzLmVuc3VyZU5vdE51bGwpKEIuY3VycmVudCkpO2lmKGQmJihpPWQobixBLmN1cnJlbnQsWygwLHMuZW5zdXJlTm90TnVsbCkoQi5jdXJyZW50KV0pPy5bMF0/P251bGwpLCEoaT8udGltZSYmYSYmbyYmaT8udmFsdWUpKXJldHVybiBoKG51bGwpLHZvaWQgZSghMSk7ZSghMCk7Y29uc3R7eDpsLHk6Y309dC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxwPUEuY3VycmVudC50aW1lU2NhbGUoKS50aW1lVG9Db29yZGluYXRlKGkudGltZSk7aWYobnVsbD09PXApcmV0dXJuIHZvaWQgaChudWxsKTtjb25zdCBnPWB0cmFuc2xhdGUoJHtsK0EuY3VycmVudC5wcmljZVNjYWxlKCJsZWZ0Iikud2lkdGgoKStwfXB4LCAke2N9cHgpYDtpZihnPT09VD8udHJhbnNmb3JtKXJldHVybjtjb25zdCB2PSgwLHMuZW5zdXJlRGVmaW5lZCkoci5maW5kKChlPT5lLnRpbWU9PT1pPy50aW1lKSkpLnN5bWJvbDtpZighdilyZXR1cm47Y29uc3QgZj1tKCgwLE4uc2hvcnROYW1lKSh2KSx1LmNvbG9yc1BhbGV0dGVbImNvbG9yLWJyYW5kIl0saSk7ZiYmKGgoZiksayh7dHJhbnNmb3JtOmcsV2Via2l0VHJhbnNmb3JtOmd9KSxkJiZBLmN1cnJlbnQuc2V0Q3Jvc3NoYWlyUG9zaXRpb24oaS52YWx1ZSxpLnRpbWUsKDAscy5lbnN1cmVOb3ROdWxsKShCLmN1cnJlbnQpKSl9cmV0dXJuIEEuY3VycmVudD8uc3Vic2NyaWJlQ3Jvc3NoYWlyTW92ZShuKSwoKT0+ewpBLmN1cnJlbnQ/LnVuc3Vic2NyaWJlQ3Jvc3NoYWlyTW92ZShuKX19KSxbbSxBLmN1cnJlbnRdKSwoMCxhLnVzZUVmZmVjdCkoVSxbV10pLGEuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOm8oKShGLmNvbnRhaW5lcix0KSxyZWY6T30sYS5jcmVhdGVFbGVtZW50KHguV2lkZ2V0VGl0bGUsbnVsbCxuKSxhLmNyZWF0ZUVsZW1lbnQoImRpdiIse3JlZjpwLGNsYXNzTmFtZTpGLmNoYXJ0fSksZyYmVCYmYS5jcmVhdGVFbGVtZW50KGIuUG9ydGFsLG51bGwsYS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6Ri50b29sdGlwV3JhcCxzdHlsZTpUfSxhLmNyZWF0ZUVsZW1lbnQoQy5Ub29sdGlwQm9keSx7dG9vbHRpcFZhbHVlczpnfSkpKSl9ZnVuY3Rpb24gUihlLHQsbil7cmV0dXJuW3t0aXRsZTplLGNvbG9yOnQsdmFsdWU6U3RyaW5nKG4udmFsdWUpfV19dmFyIEI9big0ODAyODQpLE89big3Nzc2ODApLFc9big4NTk2NTIpLFU9bigzNzIwNjApLFY9bigyMTQ5ODcpLHo9big1ODk3NDkpLEg9big3MjE4MjMpO2NvbnN0IHE9KDAsYy5nZXRMb2dnZXIpKCJPcHRpb25zLkRldGFpbHMuVm9sYXRpbGl0eUNoYXJ0IiksRz17IngtYXhpcyI6e3g6W119LHBsb3RzOltdfTtjb25zdCBZPXtwcmljZUxpbmVWaXNpYmxlOiExLGxhc3RWYWx1ZVZpc2libGU6ITEscHJpY2VGb3JtYXQ6e3R5cGU6InBlcmNlbnQiLHByZWNpc2lvbjoxMDB9fTtmdW5jdGlvbiBLKGUsdCxuKXtjb25zdCBhPWUudmFsdWVzW25dO3JldHVybiBudWxsPT09YT9udWxsOlt7Y29sb3I6dS5jb2xvcnNQYWxldHRlWyJjb2xvci10di1ibHVlLWEyMDAiXSx0aXRsZTplLm5hbWUsdmFsdWU6YS50b0ZpeGVkKDIpKyIlIn1dfWZ1bmN0aW9uIGooZSl7cmV0dXJuIGEuY3JlYXRlRWxlbWVudChCLk9wdGlvbnNTb3VyY2VUcmFja0V2ZW50UHJvdmlkZXIse3NvdXJjZTptLk9wdGlvbnNUcmFja2VyLlNvdXJjZS5EZXRhaWxzV2lkZ2V0fSxhLmNyZWF0ZUVsZW1lbnQoJCx7Li4uZX0pKX1mdW5jdGlvbiAkKGUpe2NvbnN0e2NsYXNzTmFtZTp0LHNlcGFyYXRvckNsYXNzTmFtZTpyLGRhdGE6b309ZSxpPSgwLE8udXNlR2V0U2VyaWVzKSgoMCxzLmVuc3VyZURlZmluZWQpKG8ucXVvdGVzWyJvcHRpb25zLWluZm8iXSkuZmFtaWxpZXMpLGw9KDAsYS51c2VNZW1vKSgoKCk9PigwLFUuZ2V0TW9zdFN1aXRhYmxlU2VyaWUpKGksMzApKSxbaV0pLGM9KDAsYS51c2VNZW1vKSgoKCk9Pk1hdGgubWF4KDAsKDAsZC5nZXRDYWxlbmRhckRheXNEaWZmKShsLmV4cERhdGUsbmV3IERhdGUpKSksW2xdKSxtPWZ1bmN0aW9uKGUpe2NvbnN0W3Qsbl09KDAsYS51c2VTdGF0ZSkoRykscj0oMCxCLnVzZU9wdGlvbnNTb3VyY2VUcmFja0V2ZW50KSgpO3JldHVybigwLGEudXNlRWZmZWN0KSgoKCk9Pntjb25zdCB0PW5ldyBBYm9ydENvbnRyb2xsZXI7cmV0dXJuKGFzeW5jIGU9Pnt0cnl7Y29uc3QgYT1hd2FpdCBILm9wdGlvbnNDaGFydGluZ1NlcnZpY2UubWFrZVZvbGF0aWxpdHlDaGFydFJlcXVlc3QoZSxgJHtyLnRvTG93ZXJDYXNlKCl9X3ZvbGF0aWxpdHlfY2hhcnRgLHQuc2lnbmFsKTtuKGEpfWNhdGNoKGUpe2lmKCgwLFYuaXNBYm9ydEVycm9yKShlKSlyZXR1cm47bihudWxsKSxlIGluc3RhbmNlb2YgSC5PQ1NIdHRwRXJyb3ImJiFlLmlzRXhwZWN0ZWRFcnJvciYmcS5sb2dFcnJvcihgT3B0aW9ucyBjaGFydGluZyBzZXJ2aWNlIGxvYWQgZGF0YSBlcnJvcjogJHsoMCx6LmVycm9yVG9TdHJpbmcpKGUpfWApfX0pKHtvcHRpb25TZXJpZXNJZHM6W2UuaWRdLHhBeGlzVHlwZToic3RyaWtlcyJ9KSwoKT0+dC5hYm9ydCgpfSksW2Uscl0pLHR9KGwpLHA9KDAsVy51c2VJblRpbWVJVkRhdGEpKGwpLHY9KDAsYS51c2VNZW1vKSgoKCk9Pm0/bVsieC1heGlzIl0ueC5tYXAoKChlLHQpPT4oe3N5bWJvbDpaKGwuZXhwRGF0ZSksdGltZTplLHZhbHVlOjEwMCptLnBsb3RzWzBdLnBsb3QueVt0XX0pKSk6bnVsbCksW2wuZXhwRGF0ZSxtXSksZj0oMCxhLnVzZU1lbW8pKCgoKT0+e2lmKCJzdWNjZXNzIiE9PXAudHlwZSlyZXR1cm4gbnVsbDtjb25zdCBlPXAuZGF0YVsic3RhbmRhcmQtaXZzIl0ubGVuZ3RoPjA/cC5kYXRhWyJzdGFuZGFyZC1pdnMiXTpwLmRhdGFbInJlYWwtaXZzIl07cmV0dXJue2JvdHRvbVNjYWxlTmFtZXM6ZS5tYXAoKGU9PihlLnNwYW4udmFsdWUrZS5zcGFuLnVuaXQpLnRvVXBwZXJDYXNlKCkpKSx2YWx1ZXM6ZS5tYXAoKGU9PiJudW1iZXIiPT10eXBlb2YgZS52YWx1ZT8xMDAqZS52YWx1ZTowKSksc3ltYm9sOnAuZGF0YS5zeW1ib2x9fSksW3BdKTtyZXR1cm4gYS5jcmVhdGVFbGVtZW50KGEuRnJhZ21lbnQsbnVsbCxmJiZhLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTp0fSxhLmNyZWF0ZUVsZW1lbnQoeC5XaWRnZXRUaXRsZSxudWxsLGcudChudWxsLHZvaWQgMCxuKDQzNjI1KSkpLGEuY3JlYXRlRWxlbWVudChoLkRldGFpbHNDaGFydCx7bWluaTohMCxyaWdodFZlcnRpY2FsU2NhbGVPcHRpb25zOnt2aXNpYmxlOiEwLHZhbHVlVHlwZToicGVyY2VudHMiLGNvbnNpZGVyWmVybzohMX0sYm90dG9tU2NhbGVOYW1lczpmLmJvdHRvbVNjYWxlTmFtZXMsc2VyaWVzQXJyYXk6W3tidWlsZFRvb2x0aXA6SyxuYW1lOmYuc3ltYm9sLHNob3dJbkxlZ2VuZDohMSx0eXBlOiJsaW5lIix2YWx1ZXM6Zi52YWx1ZXMsdmFsdWVUeXBlOiJwZXJjZW50cyIsZGVmYXVsdENvbG9yOnUuY29sb3JzUGFsZXR0ZVsiY29sb3ItYnJhbmQiXX1dfSkpLGEuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOnJ9KSx2JiZhLmNyZWF0ZUVsZW1lbnQoQSx7Y2xhc3NOYW1lOnQsY3VydmVUeXBlOiJ2b2xhdGlsaXR5Iix0aXRsZTpnLnQobnVsbCx7cGx1cmFsOiJWb2xhdGlsaXR5IGN1cnZlICh7ZGF5c1VudGlsRXhwaXJhdGlvbn0gZGF5cykiLGNvdW50OmMscmVwbGFjZTp7ZGF5c1VudGlsRXhwaXJhdGlvbjpjLnRvU3RyaW5nKCl9fSxuKDU1NTA3OSkpLGRhdGE6dixzZXJpZXNPcHRpb25zOlksYnVpbGRUb29sdGlwOlh9KSl9ZnVuY3Rpb24gWihlLHQ9KDAscC5nZXRMb2NhbGVJc28pKCkpe3JldHVybiBuZXcgSW50bC5EYXRlVGltZUZvcm1hdCh0LHsKeWVhcjoibnVtZXJpYyIsZGF5OiJudW1lcmljIixtb250aDoic2hvcnQifSkuZm9ybWF0KGUpfWZ1bmN0aW9uIFgoZSx0LG4pe3JldHVybiBuLnZhbHVlP1t7dGl0bGU6ZSxjb2xvcjp0LHZhbHVlOihhPW4udmFsdWUsYS50b0ZpeGVkKDIpKyIlIil9XTpudWxsO3ZhciBhfXZhciBRPW4oNzE3MDIyKTtmdW5jdGlvbiBKKGUpe2NvbnN0e2NoaWxkcmVuOnQsY2xhc3NOYW1lOm4sb25DbGljazpyLCJkYXRhLW5hbWUiOmksImRhdGEtcWEtaWQiOmwsaHJlZjpzfT1lO3JldHVybiBzP2EuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOlEuYnV0dG9uQ29udGFpbmVyLCJkYXRhLW5hbWUiOmksImRhdGEtcWEtaWQiOmx9LGEuY3JlYXRlRWxlbWVudCgiYSIse2hyZWY6cyx0YXJnZXQ6Il9ibGFuayIsY2xhc3NOYW1lOm8oKShRLmJ1dHRvbixuKX0sdCkpOmEuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOlEuYnV0dG9uQ29udGFpbmVyLCJkYXRhLW5hbWUiOmksImRhdGEtcWEtaWQiOmx9LGEuY3JlYXRlRWxlbWVudCgiYnV0dG9uIix7dGFiSW5kZXg6LTEsY2xhc3NOYW1lOm8oKShRLmJ1dHRvbixuKSxvbkNsaWNrOnJ9LHQpKX12YXIgZWU9big1MTg0NTApLHRlPW4oNzQyMTM4KTtuKDQxNjYyKTt2YXIgbmU9bigyNDkzMTgpO2Z1bmN0aW9uIGFlKGUpe2NvbnN0e2NsYXNzTmFtZTp0LGRhdGE6bixjdXJyZW5jeUNvZGU6cixwcmljZVNjYWxlSWQ6aX09ZSxsPSgwLGEudXNlTWVtbykoKCgpPT57cmV0dXJue2dyaWQ6e3ZlcnRMaW5lczp7dmlzaWJsZTohMX19LGxlZnRQcmljZVNjYWxlOnt2aXNpYmxlOihlPXtzaG93TGVmdFByaWNlU2NhbGU6ImxlZnQiPT09aSxzaG93UmlnaHRQcmljZVNjYWxlOiJyaWdodCI9PT1pfSkuc2hvd0xlZnRQcmljZVNjYWxlLHNjYWxlTWFyZ2luczp7dG9wOi4wNyxib3R0b206LjA3fX0scmlnaHRQcmljZVNjYWxlOnt2aXNpYmxlOmUuc2hvd1JpZ2h0UHJpY2VTY2FsZSxzY2FsZU1hcmdpbnM6e3RvcDouMDcsYm90dG9tOi4wN319LGhhbmRsZVNjYWxlOnttb3VzZVdoZWVsOiExfSxoYW5kbGVTY3JvbGw6e21vdXNlV2hlZWw6ITEsdmVydFRvdWNoRHJhZzohMSxob3J6VG91Y2hEcmFnOiEwfX07dmFyIGV9KSxbaV0pLFtzLGNdPSgwLGEudXNlU3RhdGUpKG51bGwpLHU9MD09PW4uY2hhcnRzLmxlbmd0aCxkPSgwLHRlLnVzZVBheW9mZlNlcmllcykocyxuLGkpOygwLHRlLnVzZVBubFNlcmllcykocyxuLGkpLCgwLHRlLnVzZUJyZWFrZXZlbkRvdHNQcmltaXRpdmUpKGRbMF0/LnNlcmllcyxuKSwoMCx0ZS51c2VSZXNldFNjYWxlcykocyxuKSwoMCx0ZS51c2VDaGFydFByZWNpc2lvbikocyxuKSwoMCx0ZS51c2VDaGFydFRoZW1lKShzKTtjb25zdCBtPSgwLHRlLnVzZUluaXRpYWxpemVkQ2hhcnQpKGMsbCk7cmV0dXJuIGEuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOm8oKSh0LG5lLmNoYXJ0LHtbbmUuaW5hY3RpdmVdOnV9KSxyZWY6bX0sYS5jcmVhdGVFbGVtZW50KGVlLlN0cmF0ZWd5Q2hhcnRUb29sdGlwLHtjaGFydDpzLGNvbnRhaW5lclJlZjptLGN1cnJlbmN5Q29kZTpyLGRhdGE6bixzaG93UHJvYmFiaWxpdHk6ITF9KSl9dmFyIHJlPW4oNDg1MTA4KSxvZT1uKDI1NTg5MSk7Y29uc3QgaWU9bmV3IE1hcDthc3luYyBmdW5jdGlvbiBsZShlLHQsbil7Y29uc3QgYT1KU09OLnN0cmluZ2lmeShlKSxyPWllLmdldChhKTtpZihyKXJldHVybiByO3tjb25zdCByPUgub3B0aW9uc0NoYXJ0aW5nU2VydmljZS5tYWtlU3RyYXRlZ2llc0NoYXJ0UmVxdWVzdChlLHQsbik7cmV0dXJuIGllLnNldChhLHIpLHNldFRpbWVvdXQoKCgpPT57aWUuZGVsZXRlKGEpfSksM2UzKSxyfX12YXIgc2U9bigzODk2NTQpO3ZhciBjZT1uKDE2ODk4Nyk7ZnVuY3Rpb24gdWUoZSl7Y29uc3R7ZGF0YTp0LHNob3dNb3JlQnRuOnIsY2xhc3NOYW1lOml9PWUse3F1b3RlczpsLGFnZ3JlZ2F0ZWQ6YyxzY3JlZW5lcjp1fT10LGQ9KDAscy5lbnN1cmVEZWZpbmVkKShsLmxhc3RfcHJpY2UpLG09KHA9dS51bmRlcmx5aW5nX3N5bWJvbCk/KDAsc2UuZ2V0SGFuZGJvb2tQYXRoKShwKTooMCxzZS5nZXRJbmRleFBhdGgpKCk7dmFyIHA7Y29uc3R7ZGF0YTpoLGVycm9yOnZ9PWZ1bmN0aW9uKHtzb3VyY2U6ZSxzeW1ib2w6dCxwcmljZTpuLHNpemU6cn0pe2NvbnN0IG89KDAscmUudXNlVGhyb3R0bGVkVmFsdWUpKG4sNmU0KSxpPSgwLGEudXNlTWVtbykoKCgpPT5mdW5jdGlvbihlLHQsbil7cmV0dXJue2xlZ3M6W3tzeW1ib2w6ZSxwcmljZTp0LHNpemU6bn1dfX0odCxvLHIpKSxbbyxyLHRdKSx7ZGF0YTpsLGVycm9yOnN9PSgwLG9lLnVzZVN0cmF0ZWd5Q2hhcnREYXRhKShpLGUsdm9pZCAwLGxlKTtyZXR1cm57ZGF0YTpsLGVycm9yOnN9fSh7c291cmNlOiJkZXRhaWxzX2V4cGVjdGVkX3BubF9jaGFydCIsc3ltYm9sOmwuc3ltYm9sLHByaWNlOmQsc2l6ZToxfSk7cmV0dXJuIHY/YS5jcmVhdGVFbGVtZW50KGEuRnJhZ21lbnQsbnVsbCk6YS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6bygpKGNlLmNvbnRhaW5lcixpKSwiZGF0YS1uYW1lIjoiZGV0YWlscy1leHBlY3RlZC1wbmwtY2hhcnQifSxhLmNyZWF0ZUVsZW1lbnQoeC5XaWRnZXRUaXRsZSxudWxsLGcudChudWxsLHZvaWQgMCxuKDY1MDM1MikpKSxhLmNyZWF0ZUVsZW1lbnQoYWUse2NsYXNzTmFtZTpjZS5jaGFydCxkYXRhOmgsY3VycmVuY3lDb2RlOmMuY3VycmVuY3k/P251bGwscHJpY2VTY2FsZUlkOiJsZWZ0In0pLHImJmEuY3JlYXRlRWxlbWVudChKLHtocmVmOm0sImRhdGEtbmFtZSI6ImRldGFpbHMtbW9yZS1leHBlY3RlZC1wbmwtY2hhcnQiLGNsYXNzTmFtZTpjZS5tb3JlQnV0dG9ufSxnLnQobnVsbCx2b2lkIDAsbig5ODIyNDgpKSkpfXZhciBkZT1uKDc1NTYyNyksbWU9bigyNTI4NjYpLHBlPW4oNTUxNTA1KTtmdW5jdGlvbiBnZShlKXtpZihudWxsPT1lKXJldHVybiBtZS5FTVBUWV9WQUxVRTtjb25zdCB0PSgwLHBlLmZpbmRQcmVjaXNpb25CeU1heFZhbHVlKShbZV0pO3JldHVybiBuZXcgZGUuUHJpY2VGb3JtYXR0ZXIoe3ByaWNlU2NhbGU6MTAqKnR9KS5mb3JtYXQoZSl9CnZhciBoZT1uKDg4OTM5NyksdmU9bigzMTE0OSksZmU9bigxODM5NTMpLHllPW4oODMzNDA5KSx3ZT1uKDc4MzI1NCksX2U9bigzODcyMzEpLEVlPW4oMTc1Mzk1KSxiZT1uKDU1MjU3KSxOZT1uKDEzNjYzKSxTZT1uKDM4MDIwNykseGU9big5NzMwNDEpLENlPW4oNzI2NjAyKSxUZT1uKDc2OTkpLGtlPW4oNTE4NzUpLERlPW4oNDQxNTU3KSxJZT1uKDE3NzUpLE1lPW4oMzM4MTE1KSxMZT1uKDIxNTQ5OSksUGU9big4ODgxMDgpLEZlPW4oOTExMzI3KSxBZT1uKDE1NjgyOSksUmU9big5OTUxMjYpLEJlPW4oNDYwNTc3KSxPZT1uKDMxMDk5KSxXZT1uKDYzMTI1NCksVWU9bigzNjIyMzkpLFZlPW4oNTUzNjY5KSx6ZT1uKDUzNDQ4MCksSGU9bigxOTk3NCkscWU9bigyNzMzMTApLEdlPW4oMjc4MjYzKTtmdW5jdGlvbiBZZShlLHQsbil7Y29uc3QgYT1LZShlKTtyZXR1cm4gZnVuY3Rpb24oZSx0LG4pe3JldHVybigwLEdlLmZvcm1hdFRpbWUpKGUudGltZSxuLHQsIm1pbnV0ZSIse3RpbWVab25lTmFtZTohMH0pfShhLGZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gbnx8ZS55ZWFyIT09dC55ZWFyPyJ5ZWFyIjpmdW5jdGlvbihlLHQpe3JldHVybiBlLmRheSE9PXQuZGF5fHx0LnRpbWUtZS50aW1lPjg2NGU1fShlLHQpPyJtb250aCI6ImhvdXIifShhLEtlKG5ldyBEYXRlKSxuKSx0KX1mdW5jdGlvbiBLZShlKXtjb25zdCB0PW5ldyBEYXRlKGUpO3JldHVybntkYXk6dC5nZXREYXRlKCksbW9udGg6dC5nZXRNb250aCgpKzEseWVhcjp0LmdldEZ1bGxZZWFyKCksaG91cnM6dC5nZXRIb3VycygpLG1pbnV0ZXM6dC5nZXRNaW51dGVzKCksdGltZTp0LmdldFRpbWUoKSx0aW1lem9uZTotMSp0LmdldFRpbWV6b25lT2Zmc2V0KCkvNjB9fXZhciBqZT1uKDEyNTIxOCksJGU9big4NzY1ODkpO3ZhciBaZT1uKDY2NjM1NyksWGU9bigyMjU0OCksUWU9bigzMDc4ODUpLEplPW4oNDM1MjczKSxldD1uKDU1MTQzMCksdHQ9bigyMzEzOTgpO2NvbnN0IG50PW5ldyBqZS5QZXJjZW50YWdlRm9ybWF0dGVyO2Z1bmN0aW9uIGF0KGUpe2NvbnN0e2NsYXNzTmFtZTp0LHByaWNlRm9ybWF0dGVyOnIsaXNFY29ub21pYzppLGRhdGE6bH09ZSx7cXVvdGVzOnMsYWdncmVnYXRlZDpjfT1sLHU9Im1hcmtldCI9PT1zLmN1cnJlbnRfc2Vzc2lvbixkPSJwcmVfbWFya2V0Ij09PXMuY3VycmVudF9zZXNzaW9uLG09InBvc3RfbWFya2V0Ij09PXMuY3VycmVudF9zZXNzaW9uLHA9Im5pZ2h0Ij09PXMuY3VycmVudF9zZXNzaW9uLGg9ZHx8bXx8cDtpZigoMCxBZS5pc1N5bWJvbERlbGlzdGVkKShzLnR5cGVzcGVjcykpcmV0dXJuIGEuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOm8oKSh0LHR0LnN0YXR1c1dyYXBwZXIpfSxhLmNyZWF0ZUVsZW1lbnQoJGUuRGVsaXN0ZWRMYWJlbCx7Y2xhc3NOYW1lOm8oKShzLmxwX3RpbWUmJnR0LndpdGhSaWdodE1hcmdpbil9KSxzLmxwX3RpbWUmJmEuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZTp0dC5sYXN0VGltZX0sbHQocy5scF90aW1lLCEwKSkpO2lmKGkmJnMubGFzdF9yZWxlYXNlX2RhdGUpcmV0dXJuIGEuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOnR9LGEuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZTpvKCkodHQubGFzdFRpbWUpfSxmdW5jdGlvbihlKXtjb25zdCB0PXdpbmRvdy5sYW5ndWFnZT8oMCxULmdldElzb0xhbmd1YWdlQ29kZUZyb21MYW5ndWFnZSkod2luZG93Lmxhbmd1YWdlKTp2b2lkIDA7cmV0dXJuIGcudChudWxsLHtyZXBsYWNlOntkYXRlOigwLEdlLmZvcm1hdFRpbWUpKDFlMyplLHQsInllYXIiLCJkYXkiKX19LG4oMjY5MjIxKSl9KHMubGFzdF9yZWxlYXNlX2RhdGUpKSk7aWYoIXMuY3VycmVudF9zZXNzaW9uKXJldHVybiBudWxsO2NvbnN0W3YsZix5LHddPWZ1bmN0aW9uKGUsdCl7c3dpdGNoKHQpe2Nhc2UibmlnaHQiOnJldHVybltlLm5jaCxlLm5jaHAsZS5udGMsZS5udGNfdGltZV07Y2FzZSJvdXRfb2Zfc2Vzc2lvbiI6Y2FzZSJwcmVfbWFya2V0IjpjYXNlImhvbGlkYXkiOmNhc2UicG9zdF9tYXJrZXQiOmNhc2UibWFya2V0IjpyZXR1cm5bZS5yY2gsZS5yY2hwLGUucnRjLGUucnRjX3RpbWVdfX0ocyxzLmN1cnJlbnRfc2Vzc2lvbik7cmV0dXJuIGEuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOnQsImRhdGEtcWEtaWQiOiJkZXRhaWxzLWVsZW1lbnQgc3RhdHVzIn0sYS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6bygpKHR0LnN0YXR1c1dyYXBwZXIscnQocy5jdXJyZW50X3Nlc3Npb24pKX0sIWgmJmEuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZTp0dC5zdGF0dXN9LGEuY3JlYXRlRWxlbWVudChxZS5JY29uLHtjbGFzc05hbWU6dHQuaWNvbixpY29uOm90KHMuY3VycmVudF9zZXNzaW9uKX0pLGEuY3JlYXRlRWxlbWVudCgic3BhbiIsbnVsbCxpdChzLmN1cnJlbnRfc2Vzc2lvbikpKSxzLmxwX3RpbWUmJiF1JiZhLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6dHQubGFzdFRpbWV9LGx0KHMubHBfdGltZSkpKSxoJiZhLmNyZWF0ZUVsZW1lbnQoYS5GcmFnbWVudCxudWxsLG51bGwhPXYmJmEuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOm8oKSh0dC5sYXN0UHJpY2UsdjwwJiZ0dC5taW51cyx2PjAmJnR0LnBsdXMpfSxhLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6dHQucHJpY2V9LHkmJnI/LmZvcm1hdCh5KSxjLmN1cnJlbmN5JiZhLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6dHQuY3VycmVuY3l9LGMuY3VycmVuY3kpKSxhLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6dHQuY2hhbmdlV3JhcH0sYS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOnR0LmNoYW5nZX0seSYmcj8uZm9ybWF0Q2hhbmdlKHkseS12LHtzaWduUG9zaXRpdmU6ITB9KSksbnVsbCE9ZiYmYS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOnR0LmNoYW5nZVBlcmNlbnR9LG50LmZvcm1hdChmLHtzaWduUG9zaXRpdmU6ITB9KSkpKSxhLmNyZWF0ZUVsZW1lbnQoImRpdiIsewpjbGFzc05hbWU6bygpKHR0LnN0YXR1c1dyYXBwZXIsdHQuZXh0cmEscnQocy5jdXJyZW50X3Nlc3Npb24pKX0sYS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOnR0LnN0YXR1c30sYS5jcmVhdGVFbGVtZW50KHFlLkljb24se2NsYXNzTmFtZTp0dC5pY29uLGljb246b3Qocy5jdXJyZW50X3Nlc3Npb24pfSksYS5jcmVhdGVFbGVtZW50KCJzcGFuIixudWxsLGl0KHMuY3VycmVudF9zZXNzaW9uKSkpLG51bGw9PXkmJmEuY3JlYXRlRWxlbWVudChhLkZyYWdtZW50LG51bGwsYS5jcmVhdGVFbGVtZW50KCJzcGFuIixudWxsLHdlLnQobnVsbCx2b2lkIDAsbigyNjEwNTIpKSkpLHcmJmEuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZTp0dC5sYXN0VGltZX0sbHQodykpKSkpfWZ1bmN0aW9uIHJ0KGUpe3N3aXRjaChlKXtjYXNlInByZV9tYXJrZXQiOnJldHVybiB0dC55ZWxsb3c7Y2FzZSJob2xpZGF5IjpjYXNlIm91dF9vZl9zZXNzaW9uIjpyZXR1cm4gdHQubmV1dHJhbDtjYXNlInBvc3RfbWFya2V0IjpyZXR1cm4gdHQuYmx1ZTtjYXNlIm5pZ2h0IjpyZXR1cm4gdHQucHVycGxlO2Nhc2UibWFya2V0IjpyZXR1cm4gdHQuZ3JlZW47ZGVmYXVsdDpyZXR1cm59fWZ1bmN0aW9uIG90KGUpe3N3aXRjaChlKXtjYXNlInByZV9tYXJrZXQiOnJldHVybiBldDtjYXNlImhvbGlkYXkiOnJldHVybiBRZTtjYXNlIm91dF9vZl9zZXNzaW9uIjpyZXR1cm4gWmU7Y2FzZSJwb3N0X21hcmtldCI6Y2FzZSJuaWdodCI6cmV0dXJuIEplO2Nhc2UibWFya2V0IjpyZXR1cm4gWGU7ZGVmYXVsdDpyZXR1cm59fWZ1bmN0aW9uIGl0KGUpe3N3aXRjaChlKXtjYXNlIm1hcmtldCI6cmV0dXJuIHdlLnQobnVsbCx7Y29udGV4dDoibWFya2V0LXN0YXR1cyJ9LG4oNzAyNzg4KSk7Y2FzZSJvdXRfb2Zfc2Vzc2lvbiI6cmV0dXJuIHdlLnQobnVsbCx7Y29udGV4dDoibWFya2V0LXN0YXR1cyJ9LG4oOTE0NTcyKSk7Y2FzZSJwcmVfbWFya2V0IjpyZXR1cm4gd2UudChudWxsLHtjb250ZXh0OiJtYXJrZXQtc3RhdHVzIn0sbig5MTg4NDIpKTtjYXNlIm5pZ2h0IjpyZXR1cm4gd2UudChudWxsLHtjb250ZXh0OiJtYXJrZXQtc3RhdHVzIn0sbig4OTc1OTEpKTtjYXNlInBvc3RfbWFya2V0IjpyZXR1cm4gd2UudChudWxsLHtjb250ZXh0OiJtYXJrZXQtc3RhdHVzIn0sbig4Njc0NTUpKTtjYXNlImhvbGlkYXkiOnJldHVybiB3ZS50KG51bGwse2NvbnRleHQ6Im1hcmtldC1zdGF0dXMifSxuKDY4NTEwNCkpO2RlZmF1bHQ6cmV0dXJufX1mdW5jdGlvbiBsdChlLHQpe3JldHVybiB3ZS50KG51bGwse3JlcGxhY2U6e2RhdGU6WWUoMWUzKmUsKDAscC5nZXRMb2NhbGVJc28pKCksdCl9fSxuKDM4OTE5MykpfXZhciBzdD1uKDMxOTg3MiksY3Q9bigzMzk1NjUpLHV0PW4oMjM3Nzc4KTtjb25zdCBkdD11dDtmdW5jdGlvbiBtdChlKXtjb25zdHt0ZXh0OnQsaHJlZjpuLHRoZW1lOnI9dXQsaGlkZUljb246byx0ZXh0UmVmOmkscmVsOmx9PWU7cmV0dXJuIGEuY3JlYXRlRWxlbWVudCgiYSIse2NsYXNzTmFtZTpyLmxpbmssImRhdGEtbmFtZSI6ZVsiZGF0YS1uYW1lIl0sImRhdGEtcWEtaWQiOmVbImRhdGEtcWEtaWQiXSxocmVmOm4scmVsOmwsdGFiSW5kZXg6LTEsdGFyZ2V0OiJfYmxhbmsifSxhLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtyZWY6aSxjbGFzc05hbWU6ci50ZXh0fSx0KSx0JiYhbyYmYS5jcmVhdGVFbGVtZW50KHFlLkljb24se2ljb246Y3QsY2xhc3NOYW1lOnIuaWNvbn0pKX12YXIgcHQ9big4NDYxNjYpO2Z1bmN0aW9uIGd0KGUpe3JldHVybiBhLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpvKCkocHQuZG90V3JhcCxlLmNsYXNzTmFtZSl9LGEuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOnB0LmRvdH0pKX1mdW5jdGlvbiBodChlKXtyZXR1cm4oMCxzdC5nZXRMb2NhbGl6ZWREb21haW5VcmwpKGZ1bmN0aW9uKGUpe3RyeXt0cnl7cmV0dXJuIG5ldyBVUkwoZSl9Y2F0Y2h7aWYoZS5zdGFydHNXaXRoKCJ3d3cuIikpcmV0dXJuIG5ldyBVUkwoYGh0dHBzOi8vJHtlfWApfWNvbnN0IHQ9d2luZG93LmxvY2F0aW9uLm9yaWdpbixuPWUuc3RhcnRzV2l0aCgiLyIpP2U6YC8ke2V9YDtyZXR1cm4gbmV3IFVSTChuLHQpfWNhdGNoKHQpe3Rocm93IG5ldyBFcnJvcihgSW52YWxpZCBwYXRoIG9yIFVSTCBmb3JtYXQ6ICR7ZX1gKX19KGUpLHdpbmRvdy5sb2NhbGUpfWZ1bmN0aW9uIHZ0KGUpe2NvbnN0e2V4Y2hhbmdlOnQsYWRkaXRpb25hbE1haW46bixhZGRpdGlvbmFsU2Vjb25kYXJ5OnIsc3ltYm9sUGFnZVBhdGg6aSxpbnZhbGlkRGVzY3JpcHRpb246bCxkYXRhOnN9PWUsYz1zLmFnZ3JlZ2F0ZWQuc3ltYm9sRGVzY3JpcHRpb247aWYocy5hZ2dyZWdhdGVkLmludmFsaWQpcmV0dXJuIGEuY3JlYXRlRWxlbWVudCgiZGl2IixudWxsLGEuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZTpwdC5pbnZhbGlkfSxsKSk7Y29uc3QgdT1uPy5saW5rPyJhIjoic3BhbiIsZD1yPy5saW5rPyJhIjoic3BhbiI7cmV0dXJuIGEuY3JlYXRlRWxlbWVudChhLkZyYWdtZW50LG51bGwsYS5jcmVhdGVFbGVtZW50KCJkaXYiLG51bGwsYS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOnB0Lm1haW59LGk/aSYmYyYmYS5jcmVhdGVFbGVtZW50KG10LHtocmVmOmh0KGkpLHRleHQ6YywiZGF0YS1xYS1pZCI6ImRldGFpbHMtZWxlbWVudCBkZXNjcmlwdGlvbiJ9KTpjLHQmJmEuY3JlYXRlRWxlbWVudChndCx7Y2xhc3NOYW1lOnB0LnNtYWxsTWFyZ2lufSksYS5jcmVhdGVFbGVtZW50KCJzcGFuIix7ImRhdGEtcWEtaWQiOiJkZXRhaWxzLWVsZW1lbnQgZXhjaGFuZ2UifSx0KSkpLChuPy52YWx1ZXx8cj8udmFsdWUpJiZhLmNyZWF0ZUVsZW1lbnQoImRpdiIsbnVsbCxhLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6cHQuYWRkaXRpb25hbH0sbj8udmFsdWUmJmEuY3JlYXRlRWxlbWVudCh1LHtocmVmOmh0KG4ubGlua3x8IiIpLHRhcmdldDoiX2JsYW5rIixjbGFzc05hbWU6bygpKHB0LmFkZGl0aW9uYWxUZXh0LG4ubGluayYmcHQubGluayksImRhdGEtcWEtaWQiOiJkZXRhaWxzLWVsZW1lbnQgc2VjdG9yIgp9LG4udmFsdWUpLHI/LnZhbHVlJiZhLmNyZWF0ZUVsZW1lbnQoYS5GcmFnbWVudCxudWxsLGEuY3JlYXRlRWxlbWVudChndCxudWxsKSxhLmNyZWF0ZUVsZW1lbnQoZCx7aHJlZjpodChyLmxpbmt8fCIiKSx0YXJnZXQ6Il9ibGFuayIsY2xhc3NOYW1lOm8oKShwdC5hZGRpdGlvbmFsVGV4dCxyLmxpbmsmJnB0LmxpbmspLCJkYXRhLXFhLWlkIjoiZGV0YWlscy1lbGVtZW50IGluZHVzdHJ5In0sci52YWx1ZSkpKSkpfXZhciBmdD1uKDEzNDc0Nyk7ZnVuY3Rpb24geXQoZSl7Y29uc3R7cHJpY2U6dCxwcmljZUZvcm1hdHRlcjpuLHNpemU6cixjbGFzc05hbWU6b309ZTtpZihuJiZ0KXtjb25zdCBlPW4uaGFzRm9yZXhBZGRpdGlvbmFsUHJlY2lzaW9uKCksaT1uLmZvcm1hdCh0KTtpZihlKXtjb25zdCBlPWkudG9TdHJpbmcoKTtyZXR1cm4gYS5jcmVhdGVFbGVtZW50KCJzcGFuIix7dHJhbnNsYXRlOiJubyIsY2xhc3NOYW1lOm99LGUuc2xpY2UoMCxlLmxlbmd0aC0xKSxhLmNyZWF0ZUVsZW1lbnQoInN1cCIsbnVsbCxlLnNsaWNlKGUubGVuZ3RoLTEpKSwhIXImJmEuY3JlYXRlRWxlbWVudCgic3BhbiIsbnVsbCxgw5cke3J9YCkpfXJldHVybiBhLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHt0cmFuc2xhdGU6Im5vIixjbGFzc05hbWU6b30saSwhIXImJmEuY3JlYXRlRWxlbWVudCgic3BhbiIsbnVsbCxgw5cke3J9YCkpfXJldHVybiBhLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHt0cmFuc2xhdGU6Im5vIixjbGFzc05hbWU6b30sdCl9dmFyIHd0PW4oMjI1OTY2KTtmdW5jdGlvbiBfdChlKXtjb25zdHtjbGFzc05hbWU6dCxwcmljZUZvcm1hdHRlcjpuLGRhdGE6cn09ZSx7cXVvdGVzOml9PXI7cmV0dXJuIGEuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOm8oKSh3dC5jb250YWluZXIsdCl9LGEuY3JlYXRlRWxlbWVudCh5dCx7cHJpY2U6aS5iaWQscHJpY2VGb3JtYXR0ZXI6bixzaXplOmkuYmlkX3NpemUsY2xhc3NOYW1lOnd0LmJpZH0pLGEuY3JlYXRlRWxlbWVudCh5dCx7cHJpY2U6aS5hc2sscHJpY2VGb3JtYXR0ZXI6bixzaXplOmkuYXNrX3NpemUsY2xhc3NOYW1lOnd0LmFza30pKX12YXIgRXQ9big5NjkxNjgpLGJ0PW4oMzg1MTYpLE50PW4oNTgzNjcyKTtmdW5jdGlvbiBTdChlKXtjb25zdHtsb3dQcmljZTp0LGhpZ2hQcmljZTpuLHByaWNlRm9ybWF0dGVyOnIsdGl0bGU6aSxvcGVuOmwsY2xvc2U6cyxsYXN0UHJpY2U6YyxjbGFzc05hbWU6dSwuLi5kfT1lLG09bi10LHA9KE1hdGgubWluKHMsbCktdCkvbSoxMDAsZz0oTWF0aC5tYXgocyxsKS10KS9tKjEwMCxoPXM8bCx2PXA8PTEsZj1nPj05OSx5PTEwMCooYy10KS9tLHc9e3dpZHRoOmctcCsiJSJ9LF89e307KDAsRXQuaXNSdGwpKCk/KHcucmlnaHQ9cCsiJSIsXy5yaWdodD15KyIlIik6KHcubGVmdD1wKyIlIixfLmxlZnQ9eSsiJSIpO2NvbnN0IEU9bygpKE50LmJhcixoJiZOdC5sb3csdiYmTnQucm91bmRlZExlZnQsZiYmTnQucm91bmRlZFJpZ2h0KSxiPW8oKShOdC5hcnJvdyx2JiZOdC5leHRyYU1hcmdpbik7cmV0dXJuIGEuY3JlYXRlRWxlbWVudCgiZGl2Iix7Li4uZCxjbGFzc05hbWU6bygpKE50LmNvbnRhaW5lcix1KX0sYS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6TnQuaGVhZGVyfSx0JiZhLmNyZWF0ZUVsZW1lbnQoeXQse3ByaWNlOnQscHJpY2VGb3JtYXR0ZXI6cixjbGFzc05hbWU6TnQucHJpY2V9KSxhLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6TnQudGl0bGV9LGkpLG4mJmEuY3JlYXRlRWxlbWVudCh5dCx7cHJpY2U6bixwcmljZUZvcm1hdHRlcjpyLGNsYXNzTmFtZTpOdC5wcmljZX0pKSxhLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpOdC5yYW5nZX0sYS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6RSxzdHlsZTp3fSkpLGEuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOk50LmFycm93Q29udGFpbmVyfSxhLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpiLHN0eWxlOl8sZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUw6e19faHRtbDpidH19KSkpfWZ1bmN0aW9uIHh0KGUpe2NvbnN0e29wZW5QcmljZTp0LGxhc3RQcmljZTpyLGxvd1ByaWNlOm8saGlnaFByaWNlOmkscHJpY2U1MldlZWtIaWdoOmwscHJpY2U1MldlZWtMb3c6cyxwcmljZUZvcm1hdHRlcjpjfT1lLHU9ISghdHx8IXIpJiZ0PnIsZD11P2k6byxtPXU/bzppLHA9aSYmbD9NYXRoLm1heChpLGwpOmwsZz1vJiZzP01hdGgubWluKG8scyk6cztyZXR1cm4gYS5jcmVhdGVFbGVtZW50KFN0LHsiZGF0YS1xYS1pZCI6ImRldGFpbHMtZWxlbWVudCA1MndrLXJhbmdlIixsb3dQcmljZTpnLGhpZ2hQcmljZTpwLHByaWNlRm9ybWF0dGVyOmMsdGl0bGU6d2UudChudWxsLHZvaWQgMCxuKDM3NTg2NykpLG9wZW46ZCxjbG9zZTptLGxhc3RQcmljZTpyfSl9ZnVuY3Rpb24gQ3QoZSl7Y29uc3R7Y2xhc3NOYW1lOnQsZGF0YTp7cXVvdGVzOnIsc2NyZWVuZXI6b30scHJpY2VGb3JtYXR0ZXI6aX09ZSxsPXtsb3dfcHJpY2U6ci5sb3dfcHJpY2UsaGlnaF9wcmljZTpyLmhpZ2hfcHJpY2Usb3Blbl9wcmljZTpyLm9wZW5fcHJpY2UsbGFzdF9wcmljZTpyLmxhc3RfcHJpY2UscHJpY2VfNTJfd2Vla19oaWdoOm8/LnByaWNlXzUyX3dlZWtfaGlnaD8/ci5wcmljZV81Ml93ZWVrX2hpZ2gscHJpY2VfNTJfd2Vla19sb3c6bz8ucHJpY2VfNTJfd2Vla19sb3c/P3IucHJpY2VfNTJfd2Vla19sb3d9O3JldHVybiBhLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTp0fSxrdChsKSYmYS5jcmVhdGVFbGVtZW50KFN0LHsiZGF0YS1xYS1pZCI6ImRldGFpbHMtZWxlbWVudCBkYXlzLXJhbmdlIix0aXRsZTp3ZS50KG51bGwsdm9pZCAwLG4oNjA2NTA0KSksbG93UHJpY2U6bC5sb3dfcHJpY2UsaGlnaFByaWNlOmwuaGlnaF9wcmljZSxwcmljZUZvcm1hdHRlcjppLG9wZW46bC5vcGVuX3ByaWNlLGNsb3NlOmwubGFzdF9wcmljZSxsYXN0UHJpY2U6bC5sYXN0X3ByaWNlfSksVHQobCkmJmEuY3JlYXRlRWxlbWVudCh4dCx7b3BlblByaWNlOmwub3Blbl9wcmljZSxsYXN0UHJpY2U6bC5sYXN0X3ByaWNlLApsb3dQcmljZTpsLmxvd19wcmljZSxoaWdoUHJpY2U6bC5oaWdoX3ByaWNlLHByaWNlNTJXZWVrSGlnaDpsLnByaWNlXzUyX3dlZWtfaGlnaCxwcmljZTUyV2Vla0xvdzpsLnByaWNlXzUyX3dlZWtfbG93LHByaWNlRm9ybWF0dGVyOml9KSl9ZnVuY3Rpb24gVHQoZSl7Y29uc3R7b3Blbl9wcmljZTp0LGxhc3RfcHJpY2U6bixsb3dfcHJpY2U6YSxoaWdoX3ByaWNlOnIscHJpY2VfNTJfd2Vla19oaWdoOm8scHJpY2VfNTJfd2Vla19sb3c6aX09ZTtyZXR1cm4gdm9pZCAwIT09dCYmdm9pZCAwIT09biYmdm9pZCAwIT09YSYmdm9pZCAwIT09ciYmdm9pZCAwIT09byYmdm9pZCAwIT09aX1mdW5jdGlvbiBrdChlKXtjb25zdHtvcGVuX3ByaWNlOnQsbGFzdF9wcmljZTpuLGxvd19wcmljZTphLGhpZ2hfcHJpY2U6cn09ZTtyZXR1cm4gdm9pZCAwIT09dCYmdm9pZCAwIT09biYmdm9pZCAwIT09YSYmdm9pZCAwIT09cn12YXIgRHQ9bigyODY0NzIpLEl0PW4oNzU0MDA0KSxNdD1uKDgwNjgzNSksTHQ9big2MDE4NDEpLFB0PW4oMTUzNzM0KSxGdD1uKDQ0NDM4NiksQXQ9bigxOTkxNzIpLFJ0PW4oMTUxNjU5KSxCdD1uKDMyMjMzMik7ZnVuY3Rpb24gT3QoZSl7Y29uc3R7aXRlbXM6dCxzaXplOm49Im1lZGl1bSJ9PWUsW3IsaV09dCxsPUJvb2xlYW4ociYmaSkscz0oMCxMdC5pc051bWJlcikoci52YWx1ZSkmJigwLEx0LmlzTnVtYmVyKShpLnZhbHVlKT9yLnZhbHVlK2kudmFsdWU6dm9pZCAwLGM9cz8xMDAqKHIudmFsdWV8fDApL3M6MCx1PXM/MTAwLWM6MCxkPSJzbWFsbCI9PT1uO3JldHVybiBhLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpvKCkoQnQuY29udGVudCwhKDAsTHQuaXNOdW1iZXIpKHMpJiZCdC5oaWRlLGQmJkJ0LnNtYWxsKX0sYS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6bygpKEJ0LmJsb2NrLEJ0LnRpdGxlLGQmJkJ0LnNtYWxsKX0sYS5jcmVhdGVFbGVtZW50KCJzcGFuIixudWxsLHIudGl0bGUpLGEuY3JlYXRlRWxlbWVudCgic3BhbiIsbnVsbCxpLnRpdGxlKSksYS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6bygpKEJ0LnJhbmdlLGQmJkJ0LnNtYWxsKX0sYS5jcmVhdGVFbGVtZW50KFd0LHt2YWx1ZTpjLHBvc2l0aW9uOiJsZWZ0Iix3aXRoU2VwYXJhdG9yOmx9KSxhLmNyZWF0ZUVsZW1lbnQoV3Qse3ZhbHVlOnUscG9zaXRpb246InJpZ2h0Iix3aXRoU2VwYXJhdG9yOmx9KSksYS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6bygpKEJ0LmJsb2NrLEJ0LnZhbHVlLGQmJkJ0LnNtYWxsKX0sYS5jcmVhdGVFbGVtZW50KCJzcGFuIixudWxsLCgwLFJ0LmZvcm1hdEZpbmFuY2lhbHNXaXRoWmVyb1ByZWNpc2lvbkFuZFBsYWNlaG9sZGVyKShyLnZhbHVlKSksYS5jcmVhdGVFbGVtZW50KCJzcGFuIixudWxsLCgwLFJ0LmZvcm1hdEZpbmFuY2lhbHNXaXRoWmVyb1ByZWNpc2lvbkFuZFBsYWNlaG9sZGVyKShpLnZhbHVlKSkpKX1mdW5jdGlvbiBXdChlKXtjb25zdHt2YWx1ZTp0LHBvc2l0aW9uOm4sd2l0aFNlcGFyYXRvcjpyfT1lLFtpLGxdPVstMTAwK3QsMTAwLXRdLHM9KDAsRXQuaXNSdGwpKCk/ImxlZnQiPT09bj9sOmk6ImxlZnQiPT09bj9pOmw7cmV0dXJuIGEuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOm8oKShCdC5yYW5nZUl0ZW0sImxlZnQiPT09bj9CdC5sZWZ0OkJ0LnJpZ2h0LHImJkJ0LndpdGhTZXBhcmF0b3IpLHN0eWxlOnt0cmFuc2Zvcm06YHRyYW5zbGF0ZVgoJHtzfSUpYH19KX12YXIgVXQ9bigzMDY4MzcpLFZ0PW4oMjk2NDQ5KSx6dD1uKDI5MTYxNik7Y29uc3QgSHQ9KDAsX2UubWVyZ2VUaGVtZXMpKFZ0LkRFRkFVTFRfVE9PTF9XSURHRVRfTUVOVV9USEVNRSx7YnV0dG9uOnp0LmJ1dHRvbixob3Zlcjp6dC5ob3Zlcixpc09wZW5lZDp6dC5pc09wZW5lZH0pO2Z1bmN0aW9uIHF0KGUpe2NvbnN0e2NsYXNzTmFtZTp0LGNvbnRlbnQ6biwuLi5yfT1lO3JldHVybiBhLmNyZWF0ZUVsZW1lbnQoVnQuVG9vbFdpZGdldE1lbnUsey4uLnIsdGhlbWU6SHQsY2xhc3NOYW1lOm8oKSh0KSxjb250ZW50OmEuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZTpvKCkoenQuaW5uZXIpfSxuKX0pfXZhciBHdD1uKDgyNzQwNCk7ZnVuY3Rpb24gWXQoZSl7Y29uc3R7Y2xhc3NOYW1lOnQsZGF0YTpyfT1lLHtxdW90ZXM6byxhZ2dyZWdhdGVkOml9PXIsbD1pLmRleF9jb252ZXJ0ZWRfc3ltYm9sX2RhdGEsYz1sPy5jdXJyZW5jeV9pZD8/by5jdXJyZW5jeV9pZCx1PSgwLHMuZW5zdXJlRGVmaW5lZCkoaS5kZXhUcmFkaW5nQWN0aXZpdHlEYXRhKSxbZCxtXT0oMCxhLnVzZVN0YXRlKShVdC50cmFkaW5nQWN0aXZpdHlQZXJpb2RzWzBdKSxwPSgwLGEudXNlTWVtbykoKCgpPT5be3RpdGxlOndlLnQobnVsbCx2b2lkIDAsbig2ODM5NDgpKSxsZWZ0VmFsdWU6e3RpdGxlOndlLnQobnVsbCx2b2lkIDAsbigxOTgyMDUpKSxmaWVsZE5hbWU6ImRleF9idXlzIn0scmlnaHRWYWx1ZTp7dGl0bGU6d2UudChudWxsLHZvaWQgMCxuKDg4OTczMikpLGZpZWxkTmFtZToiZGV4X3NlbGxzIn19LHt0aXRsZTp3ZS50KG51bGwsdm9pZCAwLG4oMjQ3MDYyKSksbGVmdFZhbHVlOnt0aXRsZTp3ZS50KG51bGwsdm9pZCAwLG4oMTY2OTU2KSksZmllbGROYW1lOiJkZXhfYnV5X3ZvbHVtZSJ9LHJpZ2h0VmFsdWU6e3RpdGxlOndlLnQobnVsbCx2b2lkIDAsbigxODE5MDIpKSxmaWVsZE5hbWU6ImRleF9zZWxsX3ZvbHVtZSJ9LHNob3dDdXJyZW5jeTohMH0se3RpdGxlOndlLnQobnVsbCx2b2lkIDAsbig2Mjg0MDkpKSxsZWZ0VmFsdWU6e3RpdGxlOndlLnQobnVsbCx2b2lkIDAsbigyNzQ3NDkpKSxmaWVsZE5hbWU6ImRleF9idXllcnMifSxyaWdodFZhbHVlOnt0aXRsZTp3ZS50KG51bGwsdm9pZCAwLG4oNjgzNzQ5KSksZmllbGROYW1lOiJkZXhfc2VsbGVycyJ9fV0pLFtdKTtyZXR1cm4gYS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6dH0sYS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6R3Quc2VsZWN0b3J9LGEuY3JlYXRlRWxlbWVudChxdCx7Y29udGVudDpmdW5jdGlvbihlKXtzd2l0Y2goZSl7Y2FzZSIxNW0iOgpyZXR1cm4gd2UudChudWxsLHZvaWQgMCxuKDcyNTc3NSkpO2Nhc2UiMWgiOnJldHVybiB3ZS50KG51bGwsdm9pZCAwLG4oODcxMjgzKSk7Y2FzZSI0aCI6cmV0dXJuIHdlLnQobnVsbCx2b2lkIDAsbig3NTE4MzIpKTtjYXNlIjEyaCI6cmV0dXJuIHdlLnQobnVsbCx2b2lkIDAsbigzOTIwNzUpKTtjYXNlIjI0aCI6cmV0dXJuIHdlLnQobnVsbCx2b2lkIDAsbigxNTA0NzMpKX19KGQpfSxhLmNyZWF0ZUVsZW1lbnQoQXQuVG9vbFdpZGdldE1lbnVTdW1tYXJ5LG51bGwsd2UudChudWxsLHZvaWQgMCxuKDU0OTcwNSkpKSxVdC50cmFkaW5nQWN0aXZpdHlQZXJpb2RzLm1hcCgoZT0+YS5jcmVhdGVFbGVtZW50KFB0LlBvcHVwTWVudUl0ZW0se2tleTplLGxhYmVsOmcoZSksaXNBY3RpdmU6ZT09PWQsb25DbGljazooKT0+e20oZSl9fSkpKSkpLHAubWFwKCgoZSx0KT0+e2NvbnN0IG49dVtkXVtlLmxlZnRWYWx1ZS5maWVsZE5hbWVdLHI9dVtkXVtlLnJpZ2h0VmFsdWUuZmllbGROYW1lXSxvPWZ1bmN0aW9uKGUsdCl7Y29uc3Qgbj1uZXcgRnQuRmluYW5jaWFsc0Zvcm1hdHRlcigyLDApO3JldHVybigwLEx0LmlzTnVtYmVyKShlKSYmKDAsTHQuaXNOdW1iZXIpKHQpP24uZm9ybWF0KGUrdCk6bnVsbH0obixyKTtyZXR1cm4gYS5jcmVhdGVFbGVtZW50KCJkaXYiLHtrZXk6dCxjbGFzc05hbWU6R3QuYmFyV3JhcH0sYS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6R3QuYmFyVGl0bGV9LGUudGl0bGUsbz9gICR7b31gOiIiLG8mJmUuc2hvd0N1cnJlbmN5JiZhLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6R3QuY3VycmVuY3l9LGMpKSxhLmNyZWF0ZUVsZW1lbnQoT3Qse2l0ZW1zOlt7dGl0bGU6ZS5sZWZ0VmFsdWUudGl0bGUsdmFsdWU6bj8/dm9pZCAwfSx7dGl0bGU6ZS5yaWdodFZhbHVlLnRpdGxlLHZhbHVlOnI/P3ZvaWQgMH1dLHNpemU6InNtYWxsIn0pKX0pKSk7ZnVuY3Rpb24gZyhlKXtjb25zdCB0PXBhcnNlRmxvYXQoZSk7cmV0dXJuIGUuaW5jbHVkZXMoIm0iKT9gJHt0fSAke3dlLnQobnVsbCx7cGx1cmFsOiJtaW51dGVzIixjb3VudDp0fSxuKDExMzY0MikpfWA6YCR7dH0gJHt3ZS50KG51bGwse3BsdXJhbDoiaG91cnMiLGNvdW50OnR9LG4oNDE5MTE0KSl9YH19dmFyIEt0LGp0PW4oMTY3MTg2KSwkdD1uKDQ3OTAzOCksWnQ9big5ODIzMzkpLFh0PW4oMTQ3NzMzKSxRdD1uKDg2Mjk1Mik7IWZ1bmN0aW9uKGUpe2UuWmVybz0iemVybyIsZS5WYXJpYWJsZT0idmFyaWFibGUiLGUuRml4ZWQ9ImZpeGVkIn0oS3R8fChLdD17fSkpO2NvbnN0IEp0PW5ldyBNYXAoW1tLdC5aZXJvLCgpPT5nLnQobnVsbCx7Y29udGV4dDoiY291cG9uX3R5cGVfZ2VuZXJhbCJ9LG4oMzQ4OTQwKSldLFtLdC5WYXJpYWJsZSwoKT0+Zy50KG51bGwse2NvbnRleHQ6ImNvdXBvbl90eXBlX2dlbmVyYWwifSxuKDQwOTMwMSkpXSxbS3QuRml4ZWQsKCk9PmcudChudWxsLHtjb250ZXh0OiJjb3Vwb25fdHlwZV9nZW5lcmFsIn0sbig4NTg1NjEpKV1dKTt2YXIgZW49big4NDQ0ODcpLHRuPW4oNTk4OTIyKSxubj1uKDU0NjQ4NSk7Y2xhc3MgYW57Zm9ybWF0KGUsdCl7cmV0dXJuKDAsdG4uZm9ybWF0TnVtYmVyKShlLCgwLG5uLmdldE51bWJlckZvcm1hdCkodD8uaWdub3JlTG9jYWxlTnVtYmVyRm9ybWF0KSw0LHQ/Lm5vRXhwb25lbnRpYWxGb3JtKX19dmFyIHJuPW4oMjY5KSxvbj1uKDE2ODgyNCksbG49big5MjY3MSksc249big3MDg4NDIpLGNuPW4oODYxMjk4KTtmdW5jdGlvbiB1bihlKXtjb25zdHt0aXRsZTp0LGFkZGl0aW9uYWxUZXh0Om59PWU7cmV0dXJuIGEuY3JlYXRlRWxlbWVudCh4LldpZGdldFRpdGxlLHtjbGFzc05hbWU6Y24udGl0bGV9LGEuY3JlYXRlRWxlbWVudCgic3BhbiIsbnVsbCx0KSxuJiZhLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6Y24udGV4dH0sbikpfXZhciBkbj1uKDI1ODUyMSksbW49big3NzUzMCk7ZnVuY3Rpb24gcG4oZSl7Y29uc3R7Y2xhc3NOYW1lOnQsdGl0bGU6bixpdGVtczpyLGFsd2F5c1Zpc2libGVJdGVtc0xpbWl0Om89ci5sZW5ndGgsaXNFeHBhbmRlZDppPSExLGFkZGl0aW9uYWxUZXh0OmwsaGFuZGxlRXhwYW5kOnMsZGF0YVFhSWQ6Y309ZTtyZXR1cm4gYS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6dCwiZGF0YS1xYS1pZCI6Y30sYS5jcmVhdGVFbGVtZW50KHVuLHt0aXRsZTpuLGFkZGl0aW9uYWxUZXh0Omx9KSxhLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTptbi5pdGVtc30sci5tYXAoKChlLHQpPT50PG98fGk/YS5jcmVhdGVFbGVtZW50KGRuLkRldGFpbHNLZXlWYWx1ZUl0ZW0sey4uLmUsa2V5OnR9KTpudWxsKSkpLHIubGVuZ3RoPm8mJnMmJmEuY3JlYXRlRWxlbWVudChKLHtjbGFzc05hbWU6bW4uYnV0dG9uLG9uQ2xpY2s6c30sYS5jcmVhdGVFbGVtZW50KHNuLlRvb2xXaWRnZXRDYXJldCx7ZHJvcHBlZDppfSkpKX12YXIgZ249bigyMTUyNTcpLGhuPW4oMzMzNDYyKTtjb25zdCB2bj0i4oCUIjt2YXIgZm47IWZ1bmN0aW9uKGUpe2UuU3RvY2s9InN0b2NrIixlLkNyeXB0bz0iY3J5cHRvIixlLkVURj0iZXRmIixlLkVUTj0iZXRuIixlLkJvbmQ9ImJvbmQiLGUuQ29ycG9yYXRlQm9uZD0iY29ycG9yYXRlQm9uZCIsZS5Hb3Zlcm5tZW50Qm9uZD0iZ292ZXJubWVudEJvbmQiLGUuRnV0dXJlcz0iZnV0dXJlcyIsZS5Db250aW51b3VzRnV0dXJlcz0iY29udGludW91c0Z1dHVyZXMiLGUuRWNvbm9taWM9ImVjb25vbWljIixlLk9wdGlvbj0ib3B0aW9uIn0oZm58fChmbj17fSkpO2NvbnN0IHluPW5ldyBqZS5QZXJjZW50YWdlRm9ybWF0dGVyO2Z1bmN0aW9uIHduKGUpewpjb25zdHtkYXRhOnQsY2xhc3NOYW1lOnJ9PWUse3F1b3RlczppLHNjcmVlbmVyOmwsYWdncmVnYXRlZDpzfT10LHtib25kczpjLHVuZGVybHlpbmdfc3ltYm9sX2RhdGE6dSxjcnlwdG9fZGF0YTptLGNyeXB0b19hc3NldF9kYXRhOmcsZGV4X2NvbnZlcnRlZF9zeW1ib2xfZGF0YTpoLGNyeXB0b19kZXJpdmF0aXZlX2RhdGE6dn09cyxmPWg/LmRleF90cmFkaW5nX3ZvbHVtZV8yNGg/P2kuZGV4X3RyYWRpbmdfdm9sdW1lXzI0aCx5PXMuaW5jb21lRGF0YT8uZWFybmluZ3NfcmVsZWFzZV9uZXh0X2RhdGUsdz1pLmZ1bmRhbWVudGFsX2N1cnJlbmN5X2NvZGUmJmkuZnVuZGFtZW50YWxfY3VycmVuY3lfY29kZSE9PXMuY3VycmVuY3k/aS5mdW5kYW1lbnRhbF9jdXJyZW5jeV9jb2RlOnZvaWQgMCxbXyxFXT0oMCxhLnVzZVN0YXRlKSgidHJ1ZSI9PT1ybi5zZXNzaW9uU3RvcmFnZU1hbmFnZXIuZ2V0SXRlbU9yRGVmYXVsdCgiZGV0YWlsc0tleVN0YXRzRXhwYW5kZWQiLCExKSkse21hdHVyaXR5RGF0ZVN0cmluZzpiLG1hdHVyaXR5RGF5czpOLGNvdXBvbjpTLHlpZWxkVmFsdWU6eCxwcmljZTpDfT0oMCxhLnVzZU1lbW8pKCgoKT0+e2lmKCFjfHwhaS5zeW1ib2x8fCFpLnR5cGVzcGVjcylyZXR1cm57fTtjb25zdCBlPWMuZmluZCgoZT0+ZS5zeW1ib2w9PT1pLnN5bWJvbCkpLHQ9Yy5maW5kKCh0PT50Lm1hdHVyaXR5X2RhdGU9PT1lPy5tYXR1cml0eV9kYXRlJiZ0LnN5bWJvbCE9PWkuc3ltYm9sKSksbj1lPy50eXBlc3BlY3MuaW5jbHVkZXMoInlpZWxkIik/ZTp0LGE9ZT8udHlwZXNwZWNzLmluY2x1ZGVzKCJ5aWVsZCIpP3Q6ZSxyPW5ldyBiZS5MYXN0Q2hhbmdlRm9ybWF0dGVyKHtmb3JtYXQ6aS5mb3JtYXQscHJpY2VTY2FsZTphPy5wcmljZXNjYWxlLG1pbk1vdmU6YT8ubWlubW92LGZyYWN0aW9uYWw6YT8uZnJhY3Rpb25hbCxtaW5Nb3ZlMjphPy5taW5tb3ZlMn0pO3JldHVybntjb3Vwb246ZT8uY291cG9uLG1hdHVyaXR5RGF0ZVN0cmluZzplPy5tYXR1cml0eV9kYXRlLHlpZWxkVmFsdWU6bj8uY2xvc2UscHJpY2U6YT8oMCxnbi5mb3JtYXREYXRhKShyLGEuY2xvc2UpOnZvaWQgMCxtYXR1cml0eURheXM6ZT8uZGF5c190b19tYXR1cml0eX19KSxbYyxpLnN5bWJvbCxpLnR5cGVzcGVjcyxpLmZvcm1hdF0pLFQ9ZnVuY3Rpb24oZSx0KXtpZigiYm9uZCI9PT1lKXJldHVybiB0Py5pbmNsdWRlcygiY29ycG9yYXRlIik/ImNvcnBvcmF0ZUJvbmQiOnQ/LmluY2x1ZGVzKCJnb3Zlcm5tZW50IikmJiF0Py5pbmNsdWRlcygiYmVuY2htYXJrIik/ImdvdmVybm1lbnRCb25kIjoiYm9uZCI7aWYoZSYmKDAsQWUuaXNPcHRpb24pKGUpKXJldHVybiJvcHRpb24iO2lmKHQmJigwLEFlLmhhc0NyeXB0b1R5cGVzcGVjKSh0KSlyZXR1cm4iY3J5cHRvIjtpZihlJiZ0JiYoMCxBZS5pc0Z1bmRFdGYpKGUsdCkpcmV0dXJuImV0ZiI7aWYodCYmdC5pbmNsdWRlcygiZXRuIikpcmV0dXJuImV0biI7aWYoZSYmKDAsQWUuaXNGdXR1cmVzKShlKSlyZXR1cm4gdD8uaW5jbHVkZXMoImNvbnRpbnVvdXMiKT8iY29udGludW91c0Z1dHVyZXMiOiJmdXR1cmVzIjtpZigiZWNvbm9taWMiPT09ZSlyZXR1cm4iZWNvbm9taWMiO3JldHVybiJzdG9jayJ9KGkudHlwZSxpLnR5cGVzcGVjcyksaz1mdW5jdGlvbihlKXtjb25zdCB0PW5ldyBGdC5GaW5hbmNpYWxzRm9ybWF0dGVyLGE9bmV3IGJlLkxhc3RDaGFuZ2VGb3JtYXR0ZXIoe2Zvcm1hdDppLmZvcm1hdH0pLHI9bmV3IEludGwuRGF0ZVRpbWVGb3JtYXQoKDAscC5nZXRMb2NhbGVJc28pKCkse2RheToibnVtZXJpYyIsbW9udGg6InNob3J0Iix5ZWFyOiJudW1lcmljIn0pLHM9bmV3IEludGwuUmVsYXRpdmVUaW1lRm9ybWF0KCgwLHAuZ2V0TG9jYWxlSXNvKSgpLHtudW1lcmljOiJhdXRvIixzdHlsZToibG9uZyJ9KSxjPWkuY291cG9uX3R5cGVfZ2VuZXJhbCYmKF89aS5jb3Vwb25fdHlwZV9nZW5lcmFsLnRvTG93ZXJDYXNlKCksSnQuZ2V0KF8pPy4oKSksaD1jP2AoJHtjfSlgOnZvaWQgMCx3PVtdO3ZhciBfO2lmKGkuZWFybmluZ3NfcmVsZWFzZV9kYXRlJiYoMCxlbi5oYXNSZWNlbnRFYXJuaW5ncykoaS5lYXJuaW5nc19yZWxlYXNlX2RhdGUpKXcucHVzaCh7dGl0bGU6d2UudChudWxsLHtjb250ZXh0OiJzZWN0aW9uX3RpdGxlIn0sbig3MTE5NzIpKSxkYXRhOigwLGxuLmdldEZvcm1hdHRlckNvbnRlbnRXaXRoWWVhcikoMWUzKmkuZWFybmluZ3NfcmVsZWFzZV9kYXRlKX0pO2Vsc2UgaWYobnVsbCE9eSl7Y29uc3QgZT0oMCxkLmdldENhbGVuZGFyRGF5c0RpZmYpKG5ldyBEYXRlKDFlMyp5KSxuZXcgRGF0ZSk7dy5wdXNoKHt0aXRsZTp3ZS50KG51bGwsdm9pZCAwLG4oNjc2OTY1KSksZGF0YTooMCxFZS5jYXBpdGFsaXplRmlyc3RMZXR0ZXIpKCgwLGduLmZvcm1hdERhdGEpKHtmb3JtYXQ6ZT0+cy5mb3JtYXQoZSwiZGF5cyIpfSxlKSksZGF0YUNsYXNzTmFtZTplPD03P2huLmRhbmdlcjp2b2lkIDB9KX1pZigic3RvY2siPT09ZSlyZXR1cm5bLi4udyx7dGl0bGU6d2UudChudWxsLHZvaWQgMCxuKDI0NzA2MikpLGRhdGE6KDAsZ24uZm9ybWF0RGF0YSkodCxpLnZvbHVtZSl9LHt0aXRsZTp3ZS50KG51bGwsdm9pZCAwLG4oMzIwOTk5KSksZGF0YTooMCxnbi5mb3JtYXREYXRhKSh0LGw/LmF2ZXJhZ2Vfdm9sdW1lXzMwZF9jYWxjKX0se3RpdGxlOndlLnQobnVsbCx2b2lkIDAsbig1MDVlMykpLGRhdGE6KDAsZ24uZm9ybWF0RGF0YSkodCxpLm1hcmtldF9jYXBfYmFzaWMpfSx7dGl0bGU6d2UudChudWxsLHZvaWQgMCxuKDU0MDEyNSkpLGRhdGE6KDAsZ24uZm9ybWF0RGF0YSkoeW4saS5kaXZpZGVuZHNfeWllbGQpfSx7dGl0bGU6d2UudChudWxsLHZvaWQgMCxuKDM1MTc4NykpLGRhdGE6KDAsZ24uZm9ybWF0RGF0YSkoYSxpLnByaWNlX2Vhcm5pbmdzX3R0bSl9LHt0aXRsZTp3ZS50KG51bGwsdm9pZCAwLG4oMTAzNzkxKSksZGF0YTooMCxnbi5mb3JtYXREYXRhKShhLGkuZWFybmluZ3NfcGVyX3NoYXJlX2Jhc2ljX3R0bSl9LHt0aXRsZTp3ZS50KG51bGwsdm9pZCAwLG4oOTgxNjQzKSksZGF0YTooMCxnbi5mb3JtYXREYXRhKSh0LGkuZmxvYXRfc2hhcmVzX291dHN0YW5kaW5nKQp9LHt0aXRsZTp3ZS50KG51bGwsdm9pZCAwLG4oNjEzMDEzKSksZGF0YTooMCxnbi5mb3JtYXREYXRhKSh0LGkuYmV0YV8xX3llYXIpfV07aWYoImNyeXB0byI9PT1lKXtjb25zdCBlPSgwLEFlLmlzRGV4KShpWyJleGNoYW5nZS1pbmZvIl0pLGE9Wy4uLnddO2lmKGV8fGEucHVzaCh7dGl0bGU6d2UudChudWxsLHZvaWQgMCxuKDI0NzA2MikpLGRhdGE6KDAsZ24uZm9ybWF0RGF0YSkodCxpLnZvbHVtZSl9LHt0aXRsZTp3ZS50KG51bGwsdm9pZCAwLG4oMzIwOTk5KSksZGF0YTooMCxnbi5mb3JtYXREYXRhKSh0LGw/LmF2ZXJhZ2Vfdm9sdW1lXzMwZF9jYWxjKX0pLG0mJmUpe2NvbnN0e2Z1bGx5X2RpbHV0ZWRfdmFsdWU6ZSxkZXhfdG90YWxfbGlxdWlkaXR5OnJ9PW07YS5wdXNoKHt0aXRsZTp3ZS50KG51bGwsdm9pZCAwLG4oMTAxMzgzKSksZGF0YTooMCxnbi5mb3JtYXREYXRhKSh0LGUpfSx7dGl0bGU6d2UudChudWxsLHZvaWQgMCxuKDY4NjY3NCkpLGRhdGE6KDAsZ24uZm9ybWF0RGF0YSkodCxyKX0se3RpdGxlOndlLnQobnVsbCx2b2lkIDAsbigxNzA2MTQpKSxkYXRhOigwLGduLmZvcm1hdERhdGEpKHQsZj8/bS5kZXhfdHJhZGluZ192b2x1bWVfMjRoKX0pfWVsc2UgaWYobSl7Y29uc3R7bWFya2V0X2NhcF9jYWxjOmUsbWFya2V0X2NhcF9kaWx1dGVkX2NhbGM6cix0b3RhbF9zaGFyZXNfb3V0c3RhbmRpbmc6byx0b3RhbF92YWx1ZV90cmFkZWQ6aSwiMjRoX3ZvbF90b19tYXJrZXRfY2FwIjpsfT1tLHM9Zz8uWyIyNGhfdm9sX3RvX21hcmtldF9jYXAiXSxjPWx8fHMsdT1uZXcgYW47YS5wdXNoKHt0aXRsZTp3ZS50KG51bGwsdm9pZCAwLG4oMTcwNjE0KSksZGF0YTooMCxnbi5mb3JtYXREYXRhKSh0LGkpfSx7dGl0bGU6d2UudChudWxsLHZvaWQgMCxuKDUwNWUzKSksZGF0YTooMCxnbi5mb3JtYXREYXRhKSh0LGUpfSx7dGl0bGU6d2UudChudWxsLHZvaWQgMCxuKDU3MzE3OCkpLGRhdGE6KDAsZ24uZm9ybWF0RGF0YSkodCxyKX0se3RpdGxlOndlLnQobnVsbCx2b2lkIDAsbigzMjc1MjYpKSxkYXRhOigwLGduLmZvcm1hdERhdGEpKHUsYyl9LHt0aXRsZTp3ZS50KG51bGwsdm9pZCAwLG4oMjcwNDY4KSksZGF0YTooMCxnbi5mb3JtYXREYXRhKSh0LG8pfSl9cmV0dXJuIHYmJmEucHVzaCh7dGl0bGU6d2UudChudWxsLHtjb250ZXh0OiJrZXlfc3RhdCJ9LG4oNzY2NjgzKSksZGF0YTooMCxnbi5mb3JtYXREYXRhKSh0LHYub3Blbl9pbnRlcmVzdCl9LHt0aXRsZTp3ZS50KG51bGwse2NvbnRleHQ6ImtleV9zdGF0In0sbig3NTQwOTMpKSxkYXRhOigwLGduLmZvcm1hdERhdGEpKHQsdi5saXF1aWRhdGlvbnNfdm9sdW1lXzI0aCl9LHt0aXRsZTp3ZS50KG51bGwse2NvbnRleHQ6ImtleV9zdGF0In0sbigxOTE3ODIpKSxkYXRhOihFPXYuZnVuZGluZ19yYXRlLFQ9NCwoMCxnbi5mb3JtYXREYXRhKShuZXcgamUuUGVyY2VudGFnZUZvcm1hdHRlcih7ZGVjaW1hbFBsYWNlczpUfSksRSkpfSksYX12YXIgRSxUO2lmKCJvcHRpb24iPT09ZSl7Y29uc3QgZT1pLmV4cGlyYXRpb24/bmV3IERhdGUoKDAsb24uZ2V0RGF0ZUZyb21ZWVlZTU1ERCkoaS5leHBpcmF0aW9uKSk6dm9pZCAwLHI9dT8ubGFzdF9wcmljZTtyZXR1cm5be3RpdGxlOndlLnQobnVsbCx2b2lkIDAsbig2MDI2OTcpKSxkYXRhOnZvaWQgMCE9PXI/KDAsZ24uZm9ybWF0RGF0YSkoYSxyKTp2bn0se3RpdGxlOndlLnQobnVsbCx2b2lkIDAsbig2MjExNzgpKSxkYXRhOigwLGduLmZvcm1hdERhdGEpKGEsaS5zdHJpa2UpfSx7dGl0bGU6d2UudChudWxsLHZvaWQgMCxuKDI0NzA2MikpLGRhdGE6KDAsZ24uZm9ybWF0RGF0YSkodCxpLnZvbHVtZSl9LHt0aXRsZTp3ZS50KG51bGwsdm9pZCAwLG4oOTQzMjgyKSksZGF0YTppLnBvaW50dmFsdWU/P3ZufSx7dGl0bGU6d2UudChudWxsLHZvaWQgMCxuKDQyNDYxOSkpLGRhdGE6aS5sb3RzaXplPz92bn0se3RpdGxlOndlLnQobnVsbCx2b2lkIDAsbigxOTcyODcpKSxkYXRhOnZvaWQgMCE9PWw/Lml2PygwLGduLmZvcm1hdERhdGEpKHluLDEwMCpsLml2KTp2bn0se3RpdGxlOndlLnQobnVsbCx2b2lkIDAsbigzNTczNzEpKSxkYXRhOmU/KDAsbG4uZ2V0Rm9ybWF0dGVyQ29udGVudFdpdGhZZWFyKShlKTp2bn0se3RpdGxlOndlLnQobnVsbCx2b2lkIDAsbig3OTY2NTEpKSxkYXRhOnZvaWQgMCE9PWU/KDAsanQuZm9ybWF0RGF5c1RvTWF0dXJpdHkpKCgwLGQuZ2V0Q2FsZW5kYXJEYXlzRGlmZikoZSxuZXcgRGF0ZSkpOnZufV19aWYoImJvbmQiPT09ZSlyZXR1cm5bLi4udyx7dGl0bGU6d2UudChudWxsLHZvaWQgMCxuKDIyNTcwNikpLGRhdGE6KDAsZ24uZm9ybWF0RGF0YSkoeW4sUyl9LHt0aXRsZTp3ZS50KG51bGwsdm9pZCAwLG4oMjAzMTEyKSksZGF0YTooMCxnbi5mb3JtYXREYXRhKShyLGI/bmV3IERhdGUoYik6bnVsbCl9LHt0aXRsZTp3ZS50KG51bGwsdm9pZCAwLG4oODM2MDYwKSksZGF0YTooMCxqdC5mb3JtYXREYXlzVG9NYXR1cml0eSkoTik/P3ZufSx7dGl0bGU6d2UudChudWxsLHZvaWQgMCxuKDY1NTAzNSkpLGRhdGE6KDAsZ24uZm9ybWF0RGF0YSkoeW4seCl9LHt0aXRsZTp3ZS50KG51bGwsdm9pZCAwLG4oODM0OTApKSxkYXRhOkM/P3ZufV07aWYoImNvcnBvcmF0ZUJvbmQiPT09ZXx8ImdvdmVybm1lbnRCb25kIj09PWUpcmV0dXJuWy4uLncse3RpdGxlOndlLnQobnVsbCx2b2lkIDAsbig0Njk0NzcpKSxkYXRhOigwLGduLmZvcm1hdERhdGEpKHQsaS5vdXRzdGFuZGluZ19hbW91bnQpfSx7dGl0bGU6d2UudChudWxsLHZvaWQgMCxuKDg5Mzg4MSkpLGRhdGE6KDAsUXQuZm9ybWF0UHJpY2VXaXRoUGxhY2Vob2xkZXIpKHt2YWx1ZTppLm5vbWluYWxfdmFsdWV9KT8/dm59LHt0aXRsZTp3ZS50KG51bGwsdm9pZCAwLG4oNDc2MTIwKSksZGF0YTooMCxRdC5mb3JtYXRQcmljZVdpdGhQbGFjZWhvbGRlcikoe3ZhbHVlOmkuZGVub21fbWlufSk/P3ZufSx7dGl0bGU6d2UudChudWxsLHZvaWQgMCxuKDIyNTcwNikpLGRhdGE6aS5jdXJyZW50X2NvdXBvbj9gJHsoMCxnbi5mb3JtYXREYXRhKSh5bixpLmN1cnJlbnRfY291cG9uKX0gJHtofWA6dm59LHsKdGl0bGU6d2UudChudWxsLHZvaWQgMCxuKDYwNjQ3OCkpLGRhdGE6aS5jb3Vwb25fZnJlcXVlbmN5PygwLFh0LmdldFRyYW5zbGF0ZUZyZXF1ZW5jeSkoaS5jb3Vwb25fZnJlcXVlbmN5LnRvTG93ZXJDYXNlKCkpOnZufSx7dGl0bGU6d2UudChudWxsLHZvaWQgMCxuKDIwMzExMikpLGRhdGE6aVsibWF0dXJpdHktZGF0ZSJdPygwLGxuLmdldEZvcm1hdHRlckNvbnRlbnRXaXRoWWVhcikoKDAsb24uZ2V0RGF0ZUZyb21ZWVlZTU1ERCkoaVsibWF0dXJpdHktZGF0ZSJdKSk6dm59LHt0aXRsZTp3ZS50KG51bGwsdm9pZCAwLG4oNDUwNjYzKSksZGF0YTooMCxqdC5mb3JtYXREYXlzVG9NYXR1cml0eSkoaS5kYXlzX3RvX21hdHVyaXR5KX1dO2lmKCJldGYiPT09ZXx8ImV0biI9PT1lKXJldHVyblsuLi53LHt0aXRsZTp3ZS50KG51bGwsdm9pZCAwLG4oMjQ3MDYyKSksZGF0YTooMCxnbi5mb3JtYXREYXRhKSh0LGkudm9sdW1lKX0se3RpdGxlOndlLnQobnVsbCx2b2lkIDAsbigzMjA5OTkpKSxkYXRhOigwLGduLmZvcm1hdERhdGEpKHQsbD8uYXZlcmFnZV92b2x1bWVfMzBkX2NhbGMpfSx7dGl0bGU6d2UudChudWxsLHtjb250ZXh0OiJhc3NldHNfdW5kZXJfbWFuYWdlbWVudCJ9LG4oOTg2NTA0KSksZGF0YTooMCxnbi5mb3JtYXREYXRhKSh0LGkuYXVtKX0se3RpdGxlOndlLnQobnVsbCx2b2lkIDAsbig1NDAxMjUpKSxkYXRhOigwLGduLmZvcm1hdERhdGEpKHluLGkuZGl2aWRlbmRzX3lpZWxkKX0se3RpdGxlOndlLnQobnVsbCx2b2lkIDAsbigyOTU5MzApKSxkYXRhOmw/Lm5hdl9kaXNjb3VudF9wcmVtaXVtPygwLCR0LmZvcm1hdERpc2NvdW50UHJlbWl1bVRvTmF2KShsLm5hdl9kaXNjb3VudF9wcmVtaXVtKTp2bn0se3RpdGxlOndlLnQobnVsbCx2b2lkIDAsbigxMzAwMzcpKSxkYXRhOmkuZXRmX2hvbGRpbmdzX2NvdW50Pz92bn0se3RpdGxlOndlLnQobnVsbCx2b2lkIDAsbig2MTMwMTMpKSxkYXRhOigwLGduLmZvcm1hdERhdGEpKHQsaS5iZXRhXzFfeWVhcil9XTtpZigiZnV0dXJlcyI9PT1lfHwiY29udGludW91c0Z1dHVyZXMiPT09ZSl7Y29uc3QgYT1bLi4udyx7dGl0bGU6d2UudChudWxsLHZvaWQgMCxuKDI0NzA2MikpLGRhdGE6KDAsZ24uZm9ybWF0RGF0YSkodCxpLnZvbHVtZSl9LHt0aXRsZTp3ZS50KG51bGwsdm9pZCAwLG4oMTgzOTA2KSksZGF0YTooMCxnbi5mb3JtYXREYXRhKSh0LGw/Lm9wZW5faW50ZXJlc3QpfSx7dGl0bGU6d2UudChudWxsLHZvaWQgMCxuKDc5OTE4MikpLGRhdGE6aS5wb2ludHZhbHVlfV07aWYoImZ1dHVyZXMiPT09ZSl7Y29uc3QgZT1pLmV4cGlyYXRpb24/KDAsb24uZ2V0RGF0ZUZyb21ZWVlZTU1ERCkoaS5leHBpcmF0aW9uKTpudWxsO2EucHVzaCh7dGl0bGU6d2UudChudWxsLHtjb250ZXh0OiJmdXR1cmVzIn0sbig5MDc5NCkpLGRhdGE6KDAsWnQuZm9ybWF0TW9udGgpKGlbImNvbnRyYWN0LWRlc2NyaXB0aW9uIl0pfSx7dGl0bGU6d2UudChudWxsLHZvaWQgMCxuKDY3NjEwMSkpLGRhdGE6KDAsZ24uZm9ybWF0RGF0YSkocixlKX0pfWVsc2UgYS5wdXNoKHt0aXRsZTp3ZS50KG51bGwsdm9pZCAwLG4oNjc4MjE2KSksZGF0YTppLmZyb250X2NvbnRyYWN0Pz92bn0pO3JldHVybiBhfWlmKCJlY29ub21pYyI9PT1lKXtjb25zdCBlPXZvaWQgMD09PWkubmV4dF9yZWxlYXNlX2RhdGU/dm9pZCAwOigwLGQuZ2V0Q2FsZW5kYXJEYXlzRGlmZikobmV3IERhdGUoMWUzKmkubmV4dF9yZWxlYXNlX2RhdGUpLG5ldyBEYXRlKSxhPXZvaWQgMCE9PWUmJmU8PTUsbD13ZS50KG51bGwsdm9pZCAwLG4oNjQ2NjkxKSksYz12b2lkIDAhPT1pLmFsbF90aW1lX2hpZ2gmJnZvaWQgMCE9PWkuYWxsX3RpbWVfaGlnaF9kYXk/WygwLGduLmZvcm1hdERhdGEpKHQsaS5hbGxfdGltZV9oaWdoKSwoMCxnbi5mb3JtYXREYXRhKShyLDFlMyppLmFsbF90aW1lX2hpZ2hfZGF5KV06dm9pZCAwLHU9dm9pZCAwIT09aS5hbGxfdGltZV9sb3cmJnZvaWQgMCE9PWkuYWxsX3RpbWVfbG93X2RheT9bKDAsZ24uZm9ybWF0RGF0YSkodCxpLmFsbF90aW1lX2xvdyksKDAsZ24uZm9ybWF0RGF0YSkociwxZTMqaS5hbGxfdGltZV9sb3dfZGF5KV06dm9pZCAwO3JldHVyblt7dGl0bGU6d2UudChudWxsLHZvaWQgMCxuKDgwNzc5OCkpLGRhdGE6KDAsZ24uZm9ybWF0RGF0YSkocixpLmxhc3RfcmVsZWFzZV9kYXRlJiYxZTMqaS5sYXN0X3JlbGVhc2VfZGF0ZSl9LHt0aXRsZTp3ZS50KG51bGwsdm9pZCAwLG4oMjQ0NzQ2KSksZGF0YTppWyJyZWZlcmVuY2UtbGFzdC1wZXJpb2QiXT8/dm59LHt0aXRsZTp3ZS50KG51bGwsdm9pZCAwLG4oNDY4MzA2KSksZGF0YTphPygwLGduLmZvcm1hdERhdGEpKHtmb3JtYXQ6ZT0+cy5mb3JtYXQoZSwiZGF5cyIpfSxlKTooMCxnbi5mb3JtYXREYXRhKShyLGkubmV4dF9yZWxlYXNlX2RhdGUmJjFlMyppLm5leHRfcmVsZWFzZV9kYXRlKSxkYXRhQ2xhc3NOYW1lOm8oKShobi5jYXBpdGFsaXplRmlyc3QsYT9obi5kYW5nZXI6dm9pZCAwKX0se3RpdGxlOndlLnQobnVsbCx2b2lkIDAsbigyNjc1OTQpKSxkYXRhOigwLGduLmZvcm1hdERhdGEpKHQsaS5mb3JlY2FzdF9yYXcpfSx7dGl0bGU6d2UudChudWxsLHZvaWQgMCxuKDg2OTczMikpLGRhdGE6Yz9sLmZvcm1hdCh7dmFsdWU6Y1swXSxkYXRlOmNbMV19KTp2bn0se3RpdGxlOndlLnQobnVsbCx2b2lkIDAsbigxMzExOTQpKSxkYXRhOnU/bC5mb3JtYXQoe3ZhbHVlOnVbMF0sZGF0ZTp1WzFdfSk6dm59XX1yZXR1cm5bXX0oVCk7aWYoMD09PWsubGVuZ3RoKXJldHVybiBudWxsO2NvbnN0IEQ9ZnVuY3Rpb24oZSl7c3dpdGNoKGUpe2Nhc2Uic3RvY2siOmNhc2UiY3J5cHRvIjpjYXNlImV0ZiI6Y2FzZSJldG4iOmNhc2UiZWNvbm9taWMiOnJldHVybiB3ZS50KG51bGwsdm9pZCAwLG4oODI3MTUpKTtjYXNlImNvcnBvcmF0ZUJvbmQiOmNhc2UiZ292ZXJubWVudEJvbmQiOmNhc2UiYm9uZCI6Y2FzZSJvcHRpb24iOnJldHVybiB3ZS50KG51bGwsdm9pZCAwLG4oNzI4NjEzKSk7Y2FzZSJmdXR1cmVzIjpjYXNlImNvbnRpbnVvdXNGdXR1cmVzIjpyZXR1cm4gd2UudChudWxsLHZvaWQgMCxuKDQzMjU3MikpfX0oVCkKO3JldHVybiBhLmNyZWF0ZUVsZW1lbnQocG4se2NsYXNzTmFtZTpyLHRpdGxlOkQsaXRlbXM6ayxkYXRhUWFJZDoiZGV0YWlscy1lbGVtZW50IGtleS1zdGF0cyIsaXNFeHBhbmRlZDpfLGhhbmRsZUV4cGFuZDpmdW5jdGlvbigpe2NvbnN0IGU9IV87RShlKSxybi5zZXNzaW9uU3RvcmFnZU1hbmFnZXIuc2V0SXRlbSgiZGV0YWlsc0tleVN0YXRzRXhwYW5kZWQiLFN0cmluZyhlKSl9LGFkZGl0aW9uYWxUZXh0OncmJndlLnQobnVsbCx7cmVwbGFjZTp7Y3VycmVuY3k6d30sY29udGV4dDoiY3VycmVuY3kifSxuKDE3Nzk3NikpLGFsd2F5c1Zpc2libGVJdGVtc0xpbWl0OjR9KX1jb25zdCBfbj1uZXcgU2V0KFsiZnV0dXJlcyIsInN0b2NrIiwiZHIiLCJyaWdodCIsImZ1bmQiLCJib25kIiwid2FycmFudCIsInN0cnVjdHVyZWQiLCJlY29ub21pYyIsIm9wdGlvbiJdKTt2YXIgRW49big3MTg5ODMpLGJuPW4oNDk0MzE3KSxObj1uKDcxMzE1MCksU249big5MzM2ODIpO2Z1bmN0aW9uIHhuKGUpe2NvbnN0e3RpdGxlOnQsZm9vdGVyTGFiZWw6bixjaGlsZHJlbjpyLHN0YXJ0SWNvbjppLGNsYXNzTmFtZTpsLHRpdGxlQ2xhc3NOYW1lOnMsb25DbGljazpjLC4uLnV9PWU7cmV0dXJuIGEuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOm8oKShTbi5ibG9jayxsKSxvbkNsaWNrOmMsLi4udX0sYS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6bygpKFNuLnRpdGxlLHMpfSxpJiZhLmNyZWF0ZUVsZW1lbnQocWUuSWNvbix7Y2xhc3NOYW1lOlNuLnN0YXJ0SWNvbixpY29uOml9KSx0KSxyLGEuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOlNuLmZvb3Rlcn0sYS5jcmVhdGVFbGVtZW50KCJkaXYiLG51bGwsbiksYS5jcmVhdGVFbGVtZW50KHFlLkljb24se2NsYXNzTmFtZTpTbi5hcnJvd0ljb24saWNvbjpObn0pKSl9dmFyIENuPW4oOTcxMDUxKSxUbj1uKDQ2MjQ2Miksa249bigxMTQ5NDEpLERuPW4oMjQxOTYpO2Z1bmN0aW9uIEluKGUpe2NvbnN0e29uQ2xpY2s6dH09ZTtyZXR1cm4gYS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6RG4uYmxvY2ssb25DbGljazp0LCJkYXRhLW5hbWUiOiJkZXRhaWxzLWFkZC1ub3RlLWJ1dHRvbiJ9LGEuY3JlYXRlRWxlbWVudChxZS5JY29uLHtjbGFzc05hbWU6RG4uc3RhcnRJY29uLGljb246VG59KSxhLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpEbi5hZGROb3RlVGV4dH0sd2UudChudWxsLHtjb250ZXh0OiJkZXRhaWxzX25vdGVzIn0sbigyOTEyODApKSksYS5jcmVhdGVFbGVtZW50KHFlLkljb24se2NsYXNzTmFtZTpEbi5lbmRJY29uLGljb246a259KSl9dmFyIE1uPW4oNTcwOTM3KSxMbj1uKDk1MDY2NCk7Y29uc3QgUG49d2UudChudWxsLHZvaWQgMCxuKDEyNjQyNSkpO2Z1bmN0aW9uIEZuKGUpe2NvbnN0e2RhdGE6dCxub3RlR3JvdXA6cixvbkNsaWNrOm8sdXNlTm90ZXNSb3V0aW5nOmksY2xhc3NOYW1lOmwsaXNEaWFsb2c6c309ZSxjPSgwLEVuLnVzZVNlbGVjdG9yKSgoZT0+e2lmKG51bGw9PT1yfHwwPT09ci5ub3Rlcy5sZW5ndGgpcmV0dXJuIG51bGw7Y29uc3QgdD1yLm5vdGVzW3Iubm90ZXMubGVuZ3RoLTFdO3JldHVybiBlLnN5bWJvbE5vdGVzLm5vdGVzW3RdPz9udWxsfSkpO2xldCB1O2lmKGMpe2NvbnN0IGU9Yy5jb250ZW50LnRyaW0oKSx0PWUubGVuZ3RoPjAmJmMuY29udGVudCE9PVBuO3U9YS5jcmVhdGVFbGVtZW50KHhuLHtzdGFydEljb246TW4sdGl0bGU6d2UudChudWxsLHtjb250ZXh0OiJkZXRhaWxzX25vdGVzIn0sbig3MjE0MSkpLGZvb3RlckxhYmVsOndlLnQobnVsbCx7Y29udGV4dDoiZGV0YWlsc19ub3RlcyJ9LG4oNDQ5MDQwKSksb25DbGljazpkLCJkYXRhLW5hbWUiOiJkZXRhaWxzLW5vdGUifSxhLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpMbi5jb250ZW50fSx0P2U6d2UudChudWxsLHtjb250ZXh0OiJkZXRhaWxzX25vdGVzIn0sbig4MTY2MDQpKSkpfWVsc2V7aWYoIWkmJiFzKXJldHVybiBudWxsO3U9YS5jcmVhdGVFbGVtZW50KEluLHtvbkNsaWNrOmR9KX1yZXR1cm4gYS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6bH0saT9hLmNyZWF0ZUVsZW1lbnQoYm4uTGluayx7dG86KDAsQ24ucGF0aFRvR3JvdXApKHQucXVvdGVzLnN5bWJvbD8/IiIpfSx1KTp1KTtmdW5jdGlvbiBkKCl7byhyKX19dmFyIEFuPW4oOTM1NTQ4KTtmdW5jdGlvbiBSbihlKXtpZih2b2lkIDA9PT1lKXJldHVybiBBbi5ub25lO3N3aXRjaCghMCl7Y2FzZSBlPj0xMDpyZXR1cm4gQW4ucG9zaXRpdmVIaWdoO2Nhc2UgZT49NTpyZXR1cm4gQW4ucG9zaXRpdmVNZWRpdW07Y2FzZSBlPj0wOnJldHVybiBBbi5wb3NpdGl2ZUxvdztjYXNlIGU8PS0xMDpyZXR1cm4gQW4ubmVnYXRpdmVIaWdoO2Nhc2UgZTw9LTU6cmV0dXJuIEFuLm5lZ2F0aXZlTWVkaXVtO2RlZmF1bHQ6cmV0dXJuIEFuLm5lZ2F0aXZlTG93fX1mdW5jdGlvbiBCbihlKXtjb25zdHtwZXJjZW50YWdlOnQscGVyaW9kOm4sd2lkZ2V0V2lkdGg6cn09ZSxpPXImJnI8MjQwP0FuLnNtYWxsU2l6ZTp2b2lkIDAsbD0oMCxhLnVzZU1lbW8pKCgoKT0+bmV3IGplLlBlcmNlbnRhZ2VGb3JtYXR0ZXIpLFtdKTtyZXR1cm4gYS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6bygpKEFuLmNvbnRhaW5lcixSbih0KSl9LGEuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZTpvKCkoQW4ucGVyY2VudGFnZSxPbih0KSxpKX0sdD9sLmZvcm1hdCh0KToi4oiSIiksYS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOkFuLnBlcmlvZH0sbikpfWZ1bmN0aW9uIE9uKGUpe3JldHVybiBlP2U+PTA/QW4ucGVyY2VudGFnZVBvc2l0aXZlOkFuLnBlcmNlbnRhZ2VOZWdhdGl2ZTpBbi5wZXJjZW50YWdlTm9uZX12YXIgV249big1NTY1NjIpO2Z1bmN0aW9uIFVuKGUpe2NvbnN0e29uU2VsZWN0OnQsaXRlbXM6bixzZWxlY3RlZDpyLGNsYXNzTmFtZTppfT1lO3JldHVybiBhLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpvKCkoV24uc2VsZWN0LGkpfSxuLm1hcCgoZT0+YS5jcmVhdGVFbGVtZW50KCJkaXYiLHtrZXk6ZS5pZCwKY2xhc3NOYW1lOm8oKShXbi50aXRsZSxlLmlkPT09ciYmV24uYWN0aXZlLGUuZGlzYWJsZWQmJlduLmRpc2FibGVkKSxvbkNsaWNrOigpPT57dmFyIG47bj1lLmlkLHQobil9fSxlLnRpdGxlKSkpKX12YXIgVm4sem49bigxODAwMTkpLEhuPW4oODE5OTEwKTshZnVuY3Rpb24oZSl7ZS5QZXJmb3JtYW5jZT0icGVyZm9ybWFuY2UiLGUuVG90YWxSZXR1cm5zPSJ0b3RhbCByZXR1cm5zIn0oVm58fChWbj17fSkpO2NvbnN0IHFuPVt7aWQ6InBlcmZvcm1hbmNlIix0aXRsZTp3ZS50KG51bGwsdm9pZCAwLG4oODM0OTApKX0se2lkOiJ0b3RhbCByZXR1cm5zIix0aXRsZTp3ZS50KG51bGwsdm9pZCAwLG4oNjIzNTQ2KSl9XTtmdW5jdGlvbiBHbihlKXtjb25zdHtjbGFzc05hbWU6dCxkYXRhOnIsc2hvd1JldHVybnM6byxoaWRlNVlkYXRhOmksd2lkZ2V0V2lkdGg6bH09ZSx7ZXRmX2RhdGE6Y309ci5hZ2dyZWdhdGVkLFt1LGRdPSgwLGEudXNlU3RhdGUpKCJwZXJmb3JtYW5jZSIpLG09KDAscy5lbnN1cmVEZWZpbmVkKShyLmFnZ3JlZ2F0ZWQucGVyZm9ybWFuY2UpLHA9KDAsYS51c2VNZW1vKSgoKCk9PmM/eyIxTSI6Y1sibmF2X3RvdGFsX3JldHVybi4xTSJdPz92b2lkIDAsIjNNIjpjWyJuYXZfdG90YWxfcmV0dXJuLjNNIl0/P3ZvaWQgMCxZVEQ6Y1sibmF2X3RvdGFsX3JldHVybi5ZVEQiXT8/dm9pZCAwLCIxWSI6Y1sibmF2X3RvdGFsX3JldHVybi4xWSJdPz92b2lkIDAsIjNZIjpjWyJuYXZfdG90YWxfcmV0dXJuLjNZIl0/P3ZvaWQgMCwiNVkiOmNbIm5hdl90b3RhbF9yZXR1cm4uNVkiXT8/dm9pZCAwfTp2b2lkIDApLFtjXSksZz1wJiYoMCx6bi5jaGVja1BlcmZvcm1hbmNlVmlzaWJsZSkocCksaD0oMCxhLnVzZU1lbW8pKCgoKT0+e2lmKCJwZXJmb3JtYW5jZSI9PT11KXJldHVybiBtO2lmKCJ0b3RhbCByZXR1cm5zIj09PXUmJmcpcmV0dXJuIHA7dGhyb3cgbmV3IEVycm9yKCJEZXRhaWxzIFBlcmZvcm1hbmNlOiBubyBkYXRhIHNldCBjb3JyZXNwb25kaW5nIHRvIHNlbGVjdGVkIGlkIil9KSxbdSxnLG0scF0pLHY9KDAsYS51c2VNZW1vKSgoKCk9PmkmJiI1WSJpbiBoP3suLi5oLCI1WSI6dm9pZCAwfTpoKSxbaSxoXSk7cmV0dXJuIGEuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOnQsImRhdGEtcWEtaWQiOiJkZXRhaWxzLWVsZW1lbnQgcGVyZm9ybWFuY2UifSxhLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpIbi5oZWFkZXJ9LGEuY3JlYXRlRWxlbWVudCh4LldpZGdldFRpdGxlLG51bGwsbz93ZS50KG51bGwse2NvbnRleHQ6ImZpbmFuY2lhbHMifSxuKDE1MjUzNCkpOndlLnQobnVsbCx2b2lkIDAsbigxMTEzNDEpKSksZyYmYS5jcmVhdGVFbGVtZW50KFVuLHtjbGFzc05hbWU6SG4uc2VsZWN0LHNlbGVjdGVkOnUsaXRlbXM6cW4sb25TZWxlY3Q6ZT0+ZChlKX0pKSxhLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpIbi5jYXJkc30sT2JqZWN0LmVudHJpZXModikubWFwKCgoW2UsdF0pPT5hLmNyZWF0ZUVsZW1lbnQoQm4se2tleTplLHBlcmlvZDplLHBlcmNlbnRhZ2U6dCx3aWRnZXRXaWR0aDpsfSkpKSkpfXZhciBZbj1uKDE1NTM3MCksS249big3ODc2Miksam49bigyMzc3NDUpLCRuPW4oMzMzMzE1KSxabj1uKDY4NDY3NiksWG49big4Njc3MzIpLFFuPW4oMzQ4MDEyKTtmdW5jdGlvbiBKbihlKXtjb25zdHtjbGFzc05hbWU6dCxkYXRhOm4scmVwb3J0RnJlcXVlbmN5OnJ9PWUse3F1b3RlczppLGFnZ3JlZ2F0ZWQ6bH09bixjPSgwLHMuZW5zdXJlRGVmaW5lZCkobC5maW5hbmNpYWxzRGF0YSksdT0oMCxZbi5leHRyYWN0VHJhZGl0aW9uYWxGdW5kVmlld01vZGUpKGkpLFtkLG1dPSgwLGEudXNlU3RhdGUpKCgoKT0+KDAsJG4uZ2V0RmluYW5jaWFsc1NldHMpKHUsaS5mdW5kYW1lbnRhbF9jdXJyZW5jeV9jb2RlKVswXS5pZCkpLFtwLGddPSgwLGEudXNlU3RhdGUpKCgoKT0+ZWEoYyxyKSkpLGg9KHY9ZCxmPXUsKDAsJG4uZ2V0RmluYW5jaWFsc1NldHMpKGYpLmZpbmRJbmRleCgoZT0+ZS5pZD09PXYpKXx8MCk7dmFyIHYsZjtjb25zdCB5PSgwLCRuLmdldEZpbmFuY2lhbHNTZXRzKSh1LGkuZnVuZGFtZW50YWxfY3VycmVuY3lfY29kZSlbaF07KDAsYS51c2VFZmZlY3QpKCgoKT0+e2NvbnN0IGU9ZWEoYyxyKTtlIT09cCYmZyhlKX0pLFtuLHIscF0pO2NvbnN0IHc9KDAsS24uUEVSSU9EUykocikubWFwKChlPT4oe2lkOmUuaWQsdGl0bGU6ZS50aXRsZSxkaXNhYmxlZDohY1tlLmlkXX0pKSk7cmV0dXJuIGEuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOm8oKShRbi5jb250YWluZXIsdCksImRhdGEtcWEtaWQiOiJkZXRhaWxzLWVsZW1lbnQgZmluYW5jaWFscyJ9LGEuY3JlYXRlRWxlbWVudCh4LldpZGdldFRpdGxlLHtjbGFzc05hbWU6UW4uaGVhZGVyV3JhcHBlcn0sYS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6UW4uaGVhZGVyfSxhLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpRbi5zZXRTZWxlY3RXcmFwfSxhLmNyZWF0ZUVsZW1lbnQocXQse2NvbnRlbnQ6eS50aXRsZX0sKDAsJG4uZ2V0RmluYW5jaWFsc1NldHMpKHUpLm1hcCgoZT0+YS5jcmVhdGVFbGVtZW50KFB0LlBvcHVwTWVudUl0ZW0se2tleTplLmlkLGxhYmVsOmUudGl0bGUsaXNBY3RpdmU6ZS5pZD09PWQsb25DbGljazooKT0+e20oZS5pZCl9fSkpKSkpLGEuY3JlYXRlRWxlbWVudChVbix7aXRlbXM6dyxzZWxlY3RlZDpwLG9uU2VsZWN0OmZ1bmN0aW9uKGUpe3Q9ZSxybi5zZXNzaW9uU3RvcmFnZU1hbmFnZXIuc2V0SXRlbSgiZGV0YWlsc0luY29tZVN0YXRlbWVudFBlcmlvZElkIix0KSxnKGUpO3ZhciB0fX0pKSksYS5jcmVhdGVFbGVtZW50KFpuLkZpbmFuY2lhbHNDaGFydCx7ZGF0YTpjLHNlbGVjdGVkU2V0Onksc2VsZWN0ZWRQZXJpb2RJZDpwLGFkYXB0aXZlVG9vbHRpcFBvc2l0aW9uOiEwLHNob3J0ZW5ZZWFyOiEwLGNvbG9yU3RhcnRJbmRleDozKmgsY29sb3JzOlhuLk9MRF9TRVJJRVNfQ09MT1JTfSkpfWZ1bmN0aW9uIGVhKGUsdCl7Y29uc3Qgbj1mdW5jdGlvbihlKXsKY29uc3QgdD1ybi5zZXNzaW9uU3RvcmFnZU1hbmFnZXIuZ2V0SXRlbU9yRGVmYXVsdCgiZGV0YWlsc0luY29tZVN0YXRlbWVudFBlcmlvZElkIiwoMCxLbi5ERUZBVUxUX1BFUklPRCkoZSkpO3JldHVybiB0JiZPYmplY3QudmFsdWVzKCRuLlBlcmlvZElkKS5pbmNsdWRlcyh0KT90OigwLEtuLkRFRkFVTFRfUEVSSU9EKShlKX0odCk7aWYoIUJvb2xlYW4oZVtuXSl8fCEoMCxqbi5pc1BlcmlvZEF2YWlsYWJsZSkobix0KSl7Y29uc3Qgbj0oMCxLbi5ERUZBVUxUX1BFUklPRCkodCk7cmV0dXJuIGVbbl0/bjooMCxqbi5nZXRPdGhlckF2YWlsYWJsZVBlcmlvZCkobix0KX1yZXR1cm4gbn12YXIgdGE9big2NTk0KTtmdW5jdGlvbiBuYShlKXtjb25zdHtjbGFzc05hbWU6dCxkYXRhOnJ9PWUse3F1b3RlczpvLHNjcmVlbmVyOmksYWdncmVnYXRlZDpsfT1yLHM9W3t0aXRsZTp3ZS50KG51bGwse2NvbnRleHQ6ImdyZWVrcyJ9LG4oNjU3NTMzKSksZGF0YTpnZShpPy5kZWx0YSksZGF0YUNsYXNzTmFtZTp0YS52YWx1ZX0se3RpdGxlOndlLnQobnVsbCx7Y29udGV4dDoiZ3JlZWtzIn0sbig4NzI2MjkpKSxkYXRhOmdlKGk/LmdhbW1hKSxkYXRhQ2xhc3NOYW1lOnRhLnZhbHVlfSx7dGl0bGU6d2UudChudWxsLHtjb250ZXh0OiJncmVla3MifSxuKDc5OTQ1OSkpLGRhdGE6Z2UoaT8ucmhvKSxkYXRhQ2xhc3NOYW1lOnRhLnZhbHVlfSx7dGl0bGU6d2UudChudWxsLHtjb250ZXh0OiJncmVla3MifSxuKDk3Mjc2NikpLGRhdGE6Z2UoaT8udGhldGEpLGRhdGFDbGFzc05hbWU6dGEudmFsdWV9LHt0aXRsZTp3ZS50KG51bGwse2NvbnRleHQ6ImdyZWVrcyJ9LG4oMTA0NTgpKSxkYXRhOmdlKGk/LnZlZ2EpLGRhdGFDbGFzc05hbWU6dGEudmFsdWV9LHt0aXRsZTp3ZS50KG51bGwse2NvbnRleHQ6Im9wdGlvbnNfcHJpY2luZ19tb2RlbCJ9LG4oOTIzNDE3KSksZGF0YTpnZShpPy50aGVvUHJpY2UpLGRhdGFDbGFzc05hbWU6dGEudmFsdWV9XTtyZXR1cm4gYS5jcmVhdGVFbGVtZW50KHBuLHtjbGFzc05hbWU6dCxkYXRhUWFJZDoiZGV0YWlscy1lbGVtZW50IG9wdGlvbnMtcHJpY2luZy1tb2RlbCIsYWRkaXRpb25hbFRleHQ6by5mdW5kYW1lbnRhbF9jdXJyZW5jeV9jb2RlJiZvLmZ1bmRhbWVudGFsX2N1cnJlbmN5X2NvZGUhPT1sLmN1cnJlbmN5P3dlLnQobnVsbCx7cmVwbGFjZTp7Y3VycmVuY3k6by5mdW5kYW1lbnRhbF9jdXJyZW5jeV9jb2RlfSxjb250ZXh0OiJjdXJyZW5jeSJ9LG4oMTc3OTc2KSk6dm9pZCAwLHRpdGxlOndlLnQobnVsbCx7Y29udGV4dDoib3B0aW9uc19wcmljaW5nX21vZGVsIn0sbig5OTc0NzEpKSxpdGVtczpzfSl9dmFyIGFhPW4oMzQ3MzUyKSxyYT1uKDkwMTE2KSxvYT1uKDcwMDU2MSksaWE9bigzMjMxMTUpLGxhPW4oOTI3OTIyKTtmdW5jdGlvbiBzYShlKXtjb25zdCB0PSgwLHMuZW5zdXJlRGVmaW5lZCkoZS5kYXRhLnF1b3Rlcy5ldGZfYXNzZXRfdHlwZV9leHBvc3VyZSksW3IsaV09KDAsYWEudXNlQXNzZXRUeXBlRXhwb3N1cmVEaXNwbGF5RGF0YSkodCksbD0oMCxhLnVzZU1lbW8pKCgoKT0+e2NvbnN0WyxlXT1yO3JldHVybltbLi4uZV1dfSksW3JdKSxjPSgwLHJhLnVzZUFzc2V0VHlwZUV4cG9zdXJlQXJjQ29sb3JHZXR0ZXIpKGwpO3JldHVybiBhLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpsYS53cmFwfSxhLmNyZWF0ZUVsZW1lbnQoeC5XaWRnZXRUaXRsZSxudWxsLHdlLnQobnVsbCx2b2lkIDAsbig3NTM1OTgpKSksYS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6bGEucGllV3JhcH0sYS5jcmVhdGVFbGVtZW50KGlhLlBpZUNoYXJ0LHtjaXJjbGVzOmwsZ2V0QXJjQ29sb3I6Yyxzb3J0RGF0YTohMSxzaG93TGFiZWxzOiExLHNob3dDb3VudDohMSxzaG93UGVyY2VudHM6ITEsc2hvd0hvdmVyOiExLGFyY1dpZHRoOjMxfSkpLGkubWFwKCgoZSx0KT0+YS5jcmVhdGVFbGVtZW50KCJkaXYiLHtrZXk6dCxjbGFzc05hbWU6bGEubGVnZW5kSXRlbX0sYS5jcmVhdGVFbGVtZW50KG9hLkxlZ2VuZENvbG9yU3dhdGNoLHtjbGFzc05hbWU6bygpKGxhLnN3YXRjaCwiU3RvY2siPT09ZVswXS5ncm91cE5hbWU/bGEuc3RvY2tzOmxhLm90aGVyKX0pLGEuY3JlYXRlRWxlbWVudChkbi5EZXRhaWxzS2V5VmFsdWVJdGVtLHtjbGFzc05hbWU6bGEubGVnZW5kVGV4dCxkYXRhQ2xhc3NOYW1lOmxhLmxlZ2VuZERhdGEsdGl0bGU6ZVswXS50aXRsZSxkYXRhOmVbMF0udmFsdWUrIiUifSkpKSkpfXZhciBjYT1uKDQ0NjEyOSksdWE9bigzMzM3ODIpLGRhPW4oNzQ4OTE0KTtmdW5jdGlvbiBtYShlKXtjb25zdCB0PWUuZGF0YS5xdW90ZXMuZXRmX3JlZ2lvbl9leHBvc3VyZSxbcixvXT0oMCx1YS51c2VSZWdpb25DaGFydERhdGEpKHQpO2lmKCFyKXJldHVybiBhLmNyZWF0ZUVsZW1lbnQoYS5GcmFnbWVudCxudWxsKTtjb25zdCBpPW5ldyBqZS5QZXJjZW50YWdlRm9ybWF0dGVyKHtwcmljZVNjYWxlOjEwMH0pO3JldHVybiBhLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpkYS53cmFwfSxhLmNyZWF0ZUVsZW1lbnQoeC5XaWRnZXRUaXRsZSxudWxsLHdlLnQobnVsbCx2b2lkIDAsbigyMDI3NzEpKSksby5tYXAoKGU9PmEuY3JlYXRlRWxlbWVudChkbi5EZXRhaWxzS2V5VmFsdWVJdGVtLHtrZXk6ZS5uYW1lLHRpdGxlOigwLGNhLmdldFJlZ2lvblRpdGxlTWFwKSgpW2UubmFtZV0sZGF0YTppLmZvcm1hdChlLndlaWdodCl9KSkpKX12YXIgcGE9bigzMjg1NDQpLGdhPW4oNTc0MTI5KSxoYT1uKDY1NDM2NCk7ZnVuY3Rpb24gdmEoZSl7cmV0dXJuKDAsYS51c2VNZW1vKSgoKCk9PigoKT0+e2NvbnN0IHQ9Z2EuVEVDSE5JQ0FMU19GSUVMRFNfREVGSU5JVElPTlNbIlJlY29tbWVuZC5BbGwiXTtpZih0JiZlJiZ0LnNpZ25hbENvbXB1dGF0aW9uKXtjb25zdCBuPXQuc2lnbmFsQ29tcHV0YXRpb24oZSk7cmV0dXJuKDAscy5lbnN1cmVEZWZpbmVkKShoYS5yZWNvbW1lbmRhdGlvbnNCeVNpZ25hbHNbbi5rZXldKX1yZXR1cm4ibmV1dHJhbCJ9KSgpKSxbZV0pfXZhciBmYT1uKDM4NDQzNCk7Y29uc3QgeWE9YS5tZW1vKChlPT57CmNvbnN0e2NsYXNzTmFtZTp0LGRhdGE6cn09ZSxpPXZhKHIuc2NyZWVuZXI/LlsiUmVjb21tZW5kLkFsbCJdKTtyZXR1cm4gYS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6bygpKGZhLmNvbnRhaW5lcix0KSwiZGF0YS1xYS1pZCI6ImRldGFpbHMtZWxlbWVudCB0ZWNobmljYWxzIn0sYS5jcmVhdGVFbGVtZW50KHguV2lkZ2V0VGl0bGUsbnVsbCx3ZS50KG51bGwse2NvbnRleHQ6InN0dWR5In0sbig0Nzc0NzUpKSksYS5jcmVhdGVFbGVtZW50KHBhLlNwZWVkb21ldGVyVGVjaG5pY2Fscyx7cmVjb21tZW5kYXRpb246aSxzaXplOiJzbWFsbCIsbmV1dHJhbFRleHRDb2xvcjohMH0pKX0pKTt2YXIgd2E9big0MTE5OTIpLF9hPW4oMTI4OTk4KTtjb25zdCBFYT17cmlnaHRQcmljZVNjYWxlOnt2aXNpYmxlOiExfSxsZWZ0UHJpY2VTY2FsZTp7dmlzaWJsZTohMCxib3JkZXJWaXNpYmxlOiExfX07ZnVuY3Rpb24gYmEoZSl7Y29uc3R7ZGF0YTp0LGNsYXNzTmFtZTpyfT1lLG89KDAscy5lbnN1cmVEZWZpbmVkKSh0LmFnZ3JlZ2F0ZWQuZnV0dXJlcyksaT0oMCxhLnVzZU1lbW8pKCgoKT0+by5tYXAoKGU9Pih7dGltZTplLmV4cGlyYXRpb24sdmFsdWU6ZS5jbG9zZSwuLi5lfSkpKSksW29dKSxbbCxjXT0oMCxhLnVzZU1lbW8pKCgoKT0+e2NvbnN0IGU9e3ByaWNlc2NhbGU6aVswXS5wcmljZXNjYWxlfHwxMDAsbWlubW92OmlbMF0ubWlubW92fHwxLG1pbm1vdmUyOjAsZnJhY3Rpb25hbDohMSxmb3JtYXQ6InByaWNlIn0sdD0oMCxfYS5jcmVhdGVTZXJpZXNGb3JtYXR0ZXIpKGUsImRlZmF1bHQiKTtyZXR1cm5be3ByaWNlRm9ybWF0Ont0eXBlOiJjdXN0b20iLG1pbk1vdmU6ZS5taW5tb3YvZS5wcmljZXNjYWxlLGZvcm1hdHRlcjplPT50LmZvcm1hdChlKX19LHRdfSksW2ldKSx1PSgwLGEudXNlQ2FsbGJhY2spKCgoZSx0LG4pPT5uLnZhbHVlP1t7dGl0bGU6ZSxjb2xvcjp0LHZhbHVlOmMuZm9ybWF0KG4udmFsdWUpfV06bnVsbCksW2NdKTtyZXR1cm4gYS5jcmVhdGVFbGVtZW50KEEse2N1cnZlVHlwZToiZnV0dXJlcyIsdGl0bGU6d2UudChudWxsLHZvaWQgMCxuKDI0NTAwNykpLGNsYXNzTmFtZTpyLGRhdGE6aSxzZXJpZXNPcHRpb25zOmwsYnVpbGRUb29sdGlwOnUsY2hhcnRPcHRpb25zOkVhfSl9dmFyIE5hPW4oNDcwMDkpLFNhPW4oNDcyNTM0KSx4YT1uKDY1NTQxMiksQ2E9big2MjQ2NzgpLFRhPW4oODIyNDMxKTtjb25zdCBrYT1uZXcgQ2EuRGF0ZUZvcm1hdHRlcigiZGQgTU1NICd5eSIpO2Z1bmN0aW9uIERhKGUpe2NvbnN0e2RhdGE6dCxjbGFzc05hbWU6cn09ZSxvPSgwLGEudXNlTWVtbykoKCgpPT57Y29uc3QgZT10Lm1hcCgoZT0+e2NvbnN0IHQ9KDAscy5lbnN1cmVEZWZpbmVkKShlWyJ0ZXJtLXRvLW1hdHVyaXR5Il0pO2lmKCF0LnN0YXJ0c1dpdGgoIlAiKSl0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgdGVybSBmb3JtYXQiKTtyZXR1cm57dGltZTp7c3ltYm9sOmUuc3ltYm9sLHByb05hbWU6ZS5zeW1ib2wsbWF0dXJpdHlJbk1vbnRoOigwLHhhLmR1cmF0aW9uVG9Nb250aENvdW50KSh0KSx0aXRsZTp0LnN1YnN0cmluZygxKSxpc1doaXRlc3BhY2U6ITEsbWF0dXJpdHlEYXRlOm5ldyBEYXRlKGUubWF0dXJpdHlfZGF0ZSl9LHZhbHVlOmUuY2xvc2UsbWlubW92OmUubWlubW92Pz8xLHByaWNlc2NhbGU6ZS5wcmljZXNjYWxlPz8xMDAsc3ltYm9sOmUuc3ltYm9sfX0pKTtyZXR1cm4gZS5zb3J0KCgoZSx0KT0+ZS50aW1lLm1hdHVyaXR5SW5Nb250aC10LnRpbWUubWF0dXJpdHlJbk1vbnRoKSksKDAsU2EuY3JlYXRlVGVub3JTY2FsZSkoZSl9KSxbdF0pLFtpLGxdPSgwLGEudXNlTWVtbykoKCgpPT57Y29uc3QgZT0oMCxzLmVuc3VyZURlZmluZWQpKG8uZmluZCgoZT0+IWUudGltZS5pc1doaXRlc3BhY2UpKSksdD17cHJpY2VzY2FsZTplLnByaWNlc2NhbGV8fDEwMCxtaW5tb3Y6ZS5taW5tb3Z8fDEsbWlubW92ZTI6MCxmcmFjdGlvbmFsOiExLGZvcm1hdDoicGVyY2VudCJ9LG49KDAsX2EuY3JlYXRlU2VyaWVzRm9ybWF0dGVyKSh0LCJkZWZhdWx0Iik7cmV0dXJuW3twb2ludE1hcmtlcnNWaXNpYmxlOiEwLHBvaW50TWFya2Vyc1JhZGl1czozLHByaWNlRm9ybWF0Ont0eXBlOiJjdXN0b20iLG1pbk1vdmU6dC5taW5tb3YvdC5wcmljZXNjYWxlLGZvcm1hdHRlcjplPT5uLmZvcm1hdChlKX19LG5dfSksW29dKSxjPSgwLGEudXNlQ2FsbGJhY2spKCgoZSx0LGEpPT57aWYoIWEudmFsdWV8fCFhLnRpbWUpcmV0dXJuIG51bGw7Y29uc3Qgcj1be3RpdGxlOmUsY29sb3I6dCx2YWx1ZTpsLmZvcm1hdChhLnZhbHVlKX1dLG89YS50aW1lO3JldHVybiFvLmlzV2hpdGVzcGFjZSYmby5tYXR1cml0eURhdGUmJnIucHVzaCh7dGl0bGU6d2UudChudWxsLHZvaWQgMCxuKDUwNzcyOSkpLHZhbHVlOmthLmZvcm1hdChvLm1hdHVyaXR5RGF0ZSl9KSxyfSksW2xdKTtyZXR1cm4gYS5jcmVhdGVFbGVtZW50KEEse2N1cnZlVHlwZToiYm9uZHMiLHRpdGxlOndlLnQobnVsbCx2b2lkIDAsbig3Mzc5NTcpKSxjbGFzc05hbWU6cixkYXRhOm8sY3Jvc3NIYWlyQWxpZ25lcjpOYS5maW5kTmVhcmVzdFNlcmllc0l0ZW0sc2VyaWVzT3B0aW9uczppLGJ1aWxkVG9vbHRpcDpjLGNoYXJ0T3B0aW9uczp7bG9jYWxpemF0aW9uOnt0aWNrbWFya3NQcmljZUZvcm1hdHRlcjpUYS55aWVsZEN1cnZlVGlja21hcmtzUHJpY2VGb3JtYXR0ZXJ9fX0pfXZhciBJYT1uKDEzMTMyMSksTWE9big4NzMwOTkpLExhPW4oOTk3MTE3KTtmdW5jdGlvbiBQYShlKXtjb25zdHtoZWFkZXI6dCxtZW51SXRlbXM6bix0aXRsZTpyfT1lO3JldHVybiBhLmNyZWF0ZUVsZW1lbnQoImRpdiIsbnVsbCxhLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6TGEudGl0bGV9LHIpLGEuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOkxhLm1lbnVIZWFkZXJ9LHQsbi5sZW5ndGg/YS5jcmVhdGVFbGVtZW50KFZ0LlRvb2xXaWRnZXRNZW51LHtjbGFzc05hbWU6TGEubWVudUJ1dHRvbixhcnJvdzohMSxjbG9zZU9uQ2xpY2tPdXRzaWRlOiEwLGhvcml6b250YWxBdHRhY2hFZGdlOklhLkhvcml6b250YWxBdHRhY2hFZGdlLlJpZ2h0LApob3Jpem9udGFsRHJvcERpcmVjdGlvbjpJYS5Ib3Jpem9udGFsRHJvcERpcmVjdGlvbi5Gcm9tUmlnaHRUb0xlZnQsdmVydGljYWxBdHRhY2hFZGdlOklhLlZlcnRpY2FsQXR0YWNoRWRnZS5BdXRvU3RyaWN0LGNvbnRlbnQ6YS5jcmVhdGVFbGVtZW50KHFlLkljb24se2ljb246TWF9KX0sbi5tYXAoKGU9PmUpKSk6bnVsbCkpfXZhciBGYT1uKDk1ODM5KTtjb25zdCBBYT0oMCxfZS5tZXJnZVRoZW1lcykoZHQse2ljb246RmEuZGV0YWlsc0xpbmtJY29uLGxpbms6RmEubGluayx0ZXh0OkZhLnRleHR9KSxSYT1lPT4oMCxfZS5tZXJnZVRoZW1lcykoUHQuREVGQVVMVF9QT1BVUF9NRU5VX0lURU1fVEhFTUUse2xhYmVsOkZhLmxhYmVsLGl0ZW06ZT9GYS5pdGVtV2l0aE91dEhvdmVyOkZhLml0ZW19KTt2YXIgQmE9big0NTM2MCk7ZnVuY3Rpb24gT2EoZSl7Y29uc3R7dGl0bGU6dCxsaW5rczpufT1lLHI9KDAsYS51c2VNZW1vKSgoKCk9Pm4ubWFwKChlPT57dHJ5e3JldHVybiBuZXcgVVJMKGUpfWNhdGNoKGUpe3JldHVybn19KSkuZmlsdGVyKChlPT52b2lkIDAhPT1lKSkpLFtuXSksW28sLi4uaV09cjtyZXR1cm4gbz9hLmNyZWF0ZUVsZW1lbnQoUGEse3RpdGxlOnQsaGVhZGVyOmEuY3JlYXRlRWxlbWVudChtdCx7dGhlbWU6QWEsaHJlZjpvLmhyZWYsdGV4dDpvLmhvc3RuYW1lLnJlcGxhY2UoL153d3dcLi9nLCIiKSxrZXk6by5ocmVmLHJlbDoibm9mb2xsb3cifSksbWVudUl0ZW1zOmkubWFwKChlPT5hLmNyZWF0ZUVsZW1lbnQoUHQuUG9wdXBNZW51SXRlbSx7c3VwcHJlc3NUb29sYm94Q2xpY2s6ITEsdGhlbWU6UmEoKSxvbkNsaWNrOigpPT5sKGUuaHJlZiksbGFiZWw6ZS5ob3N0bmFtZS5yZXBsYWNlKC9ed3d3XC4vZywiIiksa2V5OmUuaHJlZix0b29sYm94OmEuY3JlYXRlRWxlbWVudChxZS5JY29uLHtvbkNsaWNrOigpPT5sKGUuaHJlZiksY2xhc3NOYW1lOkJhLmljb24saWNvbjpjdH0pfSkpKX0pOm51bGw7ZnVuY3Rpb24gbChlKXt3aW5kb3cub3BlbihlKX19dmFyIFdhPW4oMzg3Nzc0KSxVYT1uKDg2MjIxMyksVmE9big1NTcwNjUpLHphPW4oMjYxOTM2KTthc3luYyBmdW5jdGlvbiBIYShlLHQpe2F3YWl0KDAsVmEuY29weVRvQ2xpcGJvYXJkKSh7dGV4dDplfSksdCYmKCgwLHphLnNob3dUb29sdGlwKSh0LHtpbml0aWFsRGVsYXk6MCxsZWF2ZU9uTW91c2VPdXQ6ITAsdGV4dDp3ZS50KG51bGwsdm9pZCAwLG4oNDc5MzQyKSl9KSwoMCx6YS5kZWJvdW5jZUhpZGVUb29sdGlwKSgpKX12YXIgcWE9big5OTU3MTkpLEdhPW4oMzc2MTU3KSxZYT1uKDI3MjkwOSk7ZnVuY3Rpb24gS2EoZSl7Y29uc3R7b25DbGljazp0LGNsYXNzTmFtZTpuLHRpdGxlOnJ9PWU7cmV0dXJuIGEuY3JlYXRlRWxlbWVudChxYS5Ub29sV2lkZ2V0QnV0dG9uLHtjbGFzc05hbWU6bygpKFlhLmJ1dHRvbixuKSxvbkNsaWNrOnQsaWNvbjpHYSx0aXRsZTpyfSl9dmFyIGphPW4oMzA4NDQ1KTtjb25zdCAkYT0oMCxVYS5nZXRMb2dvVXJsUmVzb2x2ZXIpKCk7ZnVuY3Rpb24gWmEoZSl7Y29uc3R7Y29udHJhY3Q6dCxsaW5rOnIsImJsb2NrY2hhaW4tbmFtZSI6byx0aGVtZTppLCJibG9ja2NoYWluLWlkIjpsfT1lLHM9KDAsYS51c2VSZWYpKG51bGwpO3JldHVybiBhLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6amEud3JhcH0sYS5jcmVhdGVFbGVtZW50KFdhLkNpcmNsZUxvZ28se2NsYXNzTmFtZTpqYS5sb2dvLGxvZ29Vcmw6JGEuZ2V0QmxvY2tjaGFpbkNvbnRyYWN0TG9nb1VybChsLFVhLkxvZ29TaXplLk1lZGl1bSksc2l6ZToieHh4c21hbGwiLHBsYWNlaG9sZGVyTGV0dGVyOm9bMF19KSxhLmNyZWF0ZUVsZW1lbnQobXQse2hyZWY6cix0ZXh0OlhhKG8sMyksdGhlbWU6aSx0ZXh0UmVmOnMsaGlkZUljb246ITAscmVsOiJub2ZvbGxvdyJ9KSxhLmNyZWF0ZUVsZW1lbnQoS2Ese29uQ2xpY2s6ZnVuY3Rpb24oKXtIYSh0LHMuY3VycmVudCl9LHRpdGxlOndlLnQobnVsbCx2b2lkIDAsbig2NTk0NzQpKX0pKX1mdW5jdGlvbiBYYShlLHQpe3JldHVybiBlLmxlbmd0aDw9Mip0P2U6YCR7ZS5zbGljZSgwLHQpfS4uLiR7ZS5zbGljZSgtdCl9YH12YXIgUWE9big1MjUzMTApO2NvbnN0IEphPSgwLFVhLmdldExvZ29VcmxSZXNvbHZlcikoKTtmdW5jdGlvbiBlcihlKXtjb25zdHt0aXRsZTp0LGNvbnRyYWN0czpyfT1lLFtpLC4uLmxdPXI7cmV0dXJuIGEuY3JlYXRlRWxlbWVudChQYSx7dGl0bGU6dCxoZWFkZXI6YS5jcmVhdGVFbGVtZW50KFphLHsuLi5pLHRoZW1lOkFhfSksbWVudUl0ZW1zOmwubWFwKCgoe2NvbnRyYWN0OmUsbGluazp0LCJibG9ja2NoYWluLW5hbWUiOnIsImJsb2NrY2hhaW4taWQiOml9KT0+YS5jcmVhdGVFbGVtZW50KFB0LlBvcHVwTWVudUl0ZW0se2tleTpyLCJkYXRhLXJvbGUiOiJsaXN0LWl0ZW0iLHRoZW1lOlJhKCF0KSxvbkNsaWNrOigpPT5mdW5jdGlvbihlKXtpZighZSlyZXR1cm47d2luZG93Lm9wZW4oZSl9KHQpLGxhYmVsOmEuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOlFhLmxhYmVsfSxhLmNyZWF0ZUVsZW1lbnQoV2EuQ2lyY2xlTG9nbyx7Y2xhc3NOYW1lOlFhLmxvZ28sbG9nb1VybDpKYS5nZXRCbG9ja2NoYWluQ29udHJhY3RMb2dvVXJsKGksVWEuTG9nb1NpemUuTWVkaXVtKSxzaXplOiJ4eHhzbWFsbCIscGxhY2Vob2xkZXJMZXR0ZXI6clswXX0pLGEuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZTpvKCkoUWEuZGVzY3JpcHRpb24sImFwcGx5LW92ZXJmbG93LXRvb2x0aXAiKX0sciksWGEoZSwzKSksdG9vbGJveDphLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpRYS5pY29uc30sdCYmYS5jcmVhdGVFbGVtZW50KHFlLkljb24se2NsYXNzTmFtZTpRYS5pY29uLGljb246Y3R9KSxhLmNyZWF0ZUVsZW1lbnQoS2Ese2NsYXNzTmFtZTpRYS5tZW51Q29weUJ1dHRvbixvbkNsaWNrOnQ9PmZ1bmN0aW9uKGUsdCl7SGEodCxlLnRhcmdldC5jbG9zZXN0KCJbZGF0YS1yb2xlPWxpc3QtaXRlbV0iKSl9KHQsZSksdGl0bGU6d2UudChudWxsLHZvaWQgMCxuKDY1OTQ3NCkpfSkpfSkpKX0pfXZhciB0cj1uKDE5NDg5OSk7ZnVuY3Rpb24gbnIoZSl7CmNvbnN0e3dlYnNpdGU6dCxkb2M6cixjb21tdW5pdHk6byxleHBsb3JlcjppLHNvdXJjZXM6bCxjb250cmFjdHM6c309ZTtyZXR1cm4gYS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6dHIud3JhcH0scz8ubGVuZ3RoP2EuY3JlYXRlRWxlbWVudChlcix7dGl0bGU6d2UudChudWxsLHZvaWQgMCxuKDM5ODkzNykpLGNvbnRyYWN0czpzfSk6bnVsbCx0Py5sZW5ndGg/YS5jcmVhdGVFbGVtZW50KE9hLHt0aXRsZTp3ZS50KG51bGwsdm9pZCAwLG4oMzg3OTc4KSksbGlua3M6dH0pOm51bGwsbD8ubGVuZ3RoP2EuY3JlYXRlRWxlbWVudChPYSx7dGl0bGU6d2UudChudWxsLHZvaWQgMCxuKDc5MzQwMikpLGxpbmtzOmx9KTpudWxsLGk/Lmxlbmd0aD9hLmNyZWF0ZUVsZW1lbnQoT2Ese3RpdGxlOndlLnQobnVsbCx2b2lkIDAsbig5MjAzMjkpKSxsaW5rczppfSk6bnVsbCxyPy5sZW5ndGg/YS5jcmVhdGVFbGVtZW50KE9hLHt0aXRsZTp3ZS50KG51bGwsdm9pZCAwLG4oODkzNjk2KSksbGlua3M6cn0pOm51bGwsbz8ubGVuZ3RoP2EuY3JlYXRlRWxlbWVudChPYSx7dGl0bGU6d2UudChudWxsLHZvaWQgMCxuKDI5NzMyMikpLGxpbmtzOm99KTpudWxsKX12YXIgYXI9big1NDQyNzgpLHJyPW4oMTg2MTA2KTtmdW5jdGlvbiBvcihlKXtjb25zdHt0ZXh0OnQsZGlzcGxheVZhbHVlOm4sY29weVRpdGxlOnJ9PWUsbz0oMCxhLnVzZVJlZikobnVsbCk7cmV0dXJuIGEuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOnJyLml0ZW19LGEuY3JlYXRlRWxlbWVudCgiZGl2Iix7cmVmOm8sY2xhc3NOYW1lOnJyLnRleHR9LG4/P3QpLGEuY3JlYXRlRWxlbWVudChLYSx7b25DbGljazpmdW5jdGlvbigpe0hhKHQsby5jdXJyZW50KX0sdGl0bGU6cn0pKX12YXIgaXI9big5MzU1OTcpLGxyPW4oNTczNzM1KTtmdW5jdGlvbiBzcihlKXtjb25zdHtidXNpbmVzc0Rlc2NyaXB0aW9uOnR9PWUse2lzQ29sbGFwc2VkOm4sdGV4dFJlZjpyLGlzVGV4dE92ZXJmbG93Omksc2V0SXNDb2xsYXBzZWQ6bH09KDAsaXIudXNlQ29sbGFwc2VkVGV4dCkoMTksNSk7cmV0dXJuIGEuY3JlYXRlRWxlbWVudChhLkZyYWdtZW50LG51bGwsYS5jcmVhdGVFbGVtZW50KCJwIix7ImRhdGEtYWxsb3ctY29udGV4dC1tZW51IjohMCxjbGFzc05hbWU6bygpKGxyLmRlc2NyaXB0aW9ucyxuJiZsci5jb2xsYXBzZWQpLHN0eWxlOnsiLS1idXNpbmVzcy1kZXNjcmlwdGlvbi1yb3ctaGVpZ2h0IjoiMTlweCIsIi0tYnVzaW5lc3MtZGVzY3JpcHRpb24tcm93LWxpbWl0Ijo1fSxyZWY6cn0sdCksKCFufHxpKSYmYS5jcmVhdGVFbGVtZW50KEose2NsYXNzTmFtZTpsci5idXR0b24sb25DbGljazpmdW5jdGlvbigpe2woIW4pfX0sYS5jcmVhdGVFbGVtZW50KHNuLlRvb2xXaWRnZXRDYXJldCx7ZHJvcHBlZDohbn0pKSl9dmFyIGNyPW4oNzIwOTQ0KTtjb25zdCB1cj0oMCxfZS5tZXJnZVRoZW1lcykoZHQse2ljb246Y3IuZGV0YWlsc0xpbmtJY29uLGxpbms6Y3IubGlua30pLGRyPW5ldyBGdC5GaW5hbmNpYWxzRm9ybWF0dGVyKDIsMCk7ZnVuY3Rpb24gbXIoZSl7Y29uc3R7ZGF0YTp0LHNob3dLZXlWYWx1ZXM6cn09ZSx7cXVvdGVzOm99PXQsaT0oMCxhLnVzZU1lbW8pKCgoKT0+e2lmKG8ud2ViX3NpdGVfdXJsKXRyeXtyZXR1cm4gbmV3IFVSTChvLndlYl9zaXRlX3VybCl9Y2F0Y2goZSl7cmV0dXJufX0pLFtvLndlYl9zaXRlX3VybF0pO3JldHVybiBhLmNyZWF0ZUVsZW1lbnQoYS5GcmFnbWVudCxudWxsLHImJmEuY3JlYXRlRWxlbWVudChhLkZyYWdtZW50LG51bGwsYS5jcmVhdGVFbGVtZW50KGRuLkRldGFpbHNLZXlWYWx1ZUl0ZW0se3RpdGxlOndlLnQobnVsbCx2b2lkIDAsbigzODc5NzgpKSxkYXRhQ2xhc3NOYW1lOmNyLnZhbHVlLGRhdGE6aT9hLmNyZWF0ZUVsZW1lbnQobXQse3JlbDoibm9mb2xsb3ciLHRoZW1lOnVyLGhyZWY6aS5ocmVmLHRleHQ6aS5ob3N0bmFtZS5yZXBsYWNlKC9ed3d3XC4vZywiIil9KToi4oCUIn0pLGEuY3JlYXRlRWxlbWVudChkbi5EZXRhaWxzS2V5VmFsdWVJdGVtLHt0aXRsZTp3ZS50KG51bGwsdm9pZCAwLG4oNjY4ODEwKSksZGF0YTpvLm51bWJlcl9vZl9lbXBsb3llZXM/ZHIuZm9ybWF0KG8ubnVtYmVyX29mX2VtcGxveWVlcyk6IuKAlCJ9KSxhLmNyZWF0ZUVsZW1lbnQoZG4uRGV0YWlsc0tleVZhbHVlSXRlbSx7dGl0bGU6d2UudChudWxsLHZvaWQgMCxuKDI2NzkxNykpLGRhdGFDbGFzc05hbWU6Y3IudmFsdWUsY2xhc3NOYW1lOmNyLml0ZW0sZGF0YTpvWyJpc2luLWRpc3BsYXllZCJdP2EuY3JlYXRlRWxlbWVudChvcix7dGV4dDpvWyJpc2luLWRpc3BsYXllZCJdfSk6IuKAlCJ9KSxhLmNyZWF0ZUVsZW1lbnQoZG4uRGV0YWlsc0tleVZhbHVlSXRlbSx7dGl0bGU6d2UudChudWxsLHZvaWQgMCxuKDYwOTkxOSkpLGRhdGFDbGFzc05hbWU6Y3IudmFsdWUsY2xhc3NOYW1lOmNyLml0ZW0sZGF0YTpvLmN1c2lwP2EuY3JlYXRlRWxlbWVudChvcix7dGV4dDpvLmN1c2lwfSk6IuKAlCJ9KSxhLmNyZWF0ZUVsZW1lbnQoZG4uRGV0YWlsc0tleVZhbHVlSXRlbSx7dGl0bGU6d2UudChudWxsLHZvaWQgMCxuKDg4MTkwOCkpLGRhdGFDbGFzc05hbWU6Y3IudmFsdWUsY2xhc3NOYW1lOmNyLml0ZW0sZGF0YToic3ByZWFkIiE9PW8udHlwZSYmby5maWdpJiZvLmZpZ2lbImV4Y2hhbmdlLWxldmVsIl0/YS5jcmVhdGVFbGVtZW50KG9yLHt0ZXh0Om8uZmlnaVsiZXhjaGFuZ2UtbGV2ZWwiXX0pOiLigJQifSksby5jZmlfY29kZSYmYS5jcmVhdGVFbGVtZW50KGRuLkRldGFpbHNLZXlWYWx1ZUl0ZW0se3RpdGxlOndlLnQobnVsbCx7Y29udGV4dDoic3ltYm9sX2luZm8ifSxuKDEyNzY3MikpLGRhdGFDbGFzc05hbWU6Y3IudmFsdWUsY2xhc3NOYW1lOmNyLml0ZW0sZGF0YTphLmNyZWF0ZUVsZW1lbnQob3Ise3RleHQ6by5jZmlfY29kZSxkaXNwbGF5VmFsdWU6YS5jcmVhdGVFbGVtZW50KGFyLkNmaUNvZGVWYWx1ZSx7Y29kZTpvLmNmaV9jb2RlLGxvY2FsZTooMCxwLmdldExvY2FsZUlzbykoKX0pfSl9KSksQm9vbGVhbihvLmJ1c2luZXNzX2Rlc2NyaXB0aW9uKSYmYS5jcmVhdGVFbGVtZW50KHNyLHtidXNpbmVzc0Rlc2NyaXB0aW9uOigwLApzLmVuc3VyZURlZmluZWQpKG8uYnVzaW5lc3NfZGVzY3JpcHRpb24pfSkpfXZhciBwcj1uKDEyODgxNCk7Y29uc3QgZ3I9bmV3IFNldChbIndlYnNpdGUiLCJkb2MiLCJleHBsb3JlciIsInNvdXJjZXMiLCJjb250cmFjdHMiLCJjcnlwdG9fY29tbW9uX2NhdGVnb3JpZXMiLCJjb21tdW5pdHkiXSksaHI9bmV3IHByLlF1b3RlU2Vzc2lvblNuYXBzaG90ZXIoe25hbWU6ImNyeXB0by1hc3NldCIsZmllbGRzOlsuLi5ncl0sYXBpOndpbmRvdy5DaGFydEFwaUluc3RhbmNlfSk7dmFyIHZyPW4oODAxMzEpLGZyPW4oOTY5NjkwKSx5cj1uKDE4MTg3NCk7ZnVuY3Rpb24gd3IoZSl7Y29uc3R7dGl0bGU6dCxjaGlsZHJlbjpuLGNsYXNzTmFtZTpyfT1lO3JldHVybiBhLmNyZWF0ZUVsZW1lbnQoImRpdiIsbnVsbCxhLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6eXIudGl0bGV9LHQpLGEuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOm8oKSgiYXBwbHktb3ZlcmZsb3ctdG9vbHRpcCIseXIuaXRlbUNvbnRlbnQscil9LG4pKX12YXIgX3I9big3NDM1NjUpO2NvbnN0IEVyPSLigJQiO2Z1bmN0aW9uIGJyKGUpe2NvbnN0e3F1b3Rlczp0fT1lLmRhdGEscj1uZXcgamUuUGVyY2VudGFnZUZvcm1hdHRlcixvPSgwLHAuZ2V0TG9jYWxlSXNvKSgpLGk9bmV3IEludGwuRGF0ZVRpbWVGb3JtYXQobyx7bW9udGg6InNob3J0Iix5ZWFyOiJudW1lcmljIixkYXk6Im51bWVyaWMifSksbD0oMCxhLnVzZU1lbW8pKCgoKT0+e2lmKHQuaG9tZXBhZ2UpdHJ5e3JldHVybiBuZXcgVVJMKHQuaG9tZXBhZ2UpfWNhdGNoKGUpe3JldHVybn19KSxbdC5ob21lcGFnZV0pLGM9KDAsYS51c2VNZW1vKSgoKCk9Plt7dGl0bGU6d2UudChudWxsLHZvaWQgMCxuKDIwNjM2MCkpLGNoaWxkcmVuOnQuYXNzZXRfY2xhc3M/TnIodnIuZ2V0QXNzZXRDbGFzc1RyYW5zbGF0aW9uTWFwLHQuYXNzZXRfY2xhc3MpOkVyfSx7dGl0bGU6d2UudChudWxsLHZvaWQgMCxuKDY0Nzg2NCkpLGNoaWxkcmVuOnQuZm9jdXM/TnIoZnIuZ2V0Rm9jdXNUcmFuc2xhdGlvbk1hcCx0LmZvY3VzKTpFcn0se3RpdGxlOndlLnQobnVsbCx2b2lkIDAsbigxMTEwMDIpKSxjaGlsZHJlbjp0LmV4cGVuc2VfcmF0aW8/ci5mb3JtYXQodC5leHBlbnNlX3JhdGlvKTpFcn0se3RpdGxlOndlLnQobnVsbCx2b2lkIDAsbig4MDYwODYpKSxjaGlsZHJlbjp0LmxhdW5jaF9kYXRlP2kuZm9ybWF0KG5ldyBEYXRlKDFlMyp0LmxhdW5jaF9kYXRlKSk6RXJ9LHt0aXRsZTp3ZS50KG51bGwsdm9pZCAwLG4oMTI0NjIzKSksY2hpbGRyZW46dC5pc3N1ZXImJnQuYnJhbmQ/YCR7dC5pc3N1ZXJ9LyR7dC5icmFuZH1gOkVyfSx7dGl0bGU6d2UudChudWxsLHZvaWQgMCxuKDI5MTg2OCkpLGNoaWxkcmVuOmw/YS5jcmVhdGVFbGVtZW50KG10LHt0aGVtZTpBYSxocmVmOmwuaHJlZix0ZXh0OmwuaG9zdG5hbWUucmVwbGFjZSgvXnd3d1wuL2csIiIpLHJlbDoibm9mb2xsb3cifSk6RXIsY2xhc3NOYW1lOl9yLndpdGhJY29ufSx7dGl0bGU6d2UudChudWxsLHZvaWQgMCxuKDI4ODQ3MSkpLGNoaWxkcmVuOnQuaW5kZXhfdHJhY2tlZHx8RXJ9LHt0aXRsZTp3ZS50KG51bGwsdm9pZCAwLG4oMjY3OTE3KSksY2hpbGRyZW46dFsiaXNpbi1kaXNwbGF5ZWQiXT9hLmNyZWF0ZUVsZW1lbnQob3Ise3RleHQ6dFsiaXNpbi1kaXNwbGF5ZWQiXX0pOkVyLGNsYXNzTmFtZTpfci53aXRoSWNvbn0se3RpdGxlOndlLnQobnVsbCx2b2lkIDAsbig2MDk5MTkpKSxjaGlsZHJlbjp0LmN1c2lwP2EuY3JlYXRlRWxlbWVudChvcix7dGV4dDp0LmN1c2lwfSk6RXJ9LHt0aXRsZTp3ZS50KG51bGwsdm9pZCAwLG4oODgxOTA4KSksY2hpbGRyZW46dC5maWdpJiZ0LmZpZ2lbImV4Y2hhbmdlLWxldmVsIl0/YS5jcmVhdGVFbGVtZW50KG9yLHt0ZXh0OnQuZmlnaVsiZXhjaGFuZ2UtbGV2ZWwiXX0pOkVyLGNsYXNzTmFtZTpfci53aXRoSWNvbn0sLi4udC5jZmlfY29kZT9be3RpdGxlOndlLnQobnVsbCx7Y29udGV4dDoic3ltYm9sX2luZm8ifSxuKDEyNzY3MikpLGNoaWxkcmVuOmEuY3JlYXRlRWxlbWVudChvcix7dGV4dDp0LmNmaV9jb2RlLGRpc3BsYXlWYWx1ZTphLmNyZWF0ZUVsZW1lbnQoYXIuQ2ZpQ29kZVZhbHVlLHtjb2RlOnQuY2ZpX2NvZGUsbG9jYWxlOm99KX0pLGNsYXNzTmFtZTpfci53aXRoSWNvbn1dOltdXSksW3QuYXNzZXRfY2xhc3MsdC5mb2N1cyx0LmV4cGVuc2VfcmF0aW8sdC5sYXVuY2hfZGF0ZSx0Lmlzc3Vlcix0LmJyYW5kLGwsdC5pbmRleF90cmFja2VkLHRbImlzaW4tZGlzcGxheWVkIl0sdC5maWdpLHIsaSx0LmNmaV9jb2RlLG9dKTtyZXR1cm4gYS5jcmVhdGVFbGVtZW50KGEuRnJhZ21lbnQsbnVsbCxhLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpfci53cmFwfSxjLm1hcCgoZT0+YS5jcmVhdGVFbGVtZW50KHdyLHtrZXk6ZS50aXRsZSx0aXRsZTplLnRpdGxlLGNoaWxkcmVuOmUuY2hpbGRyZW4sY2xhc3NOYW1lOmUuY2xhc3NOYW1lfSkpKSksQm9vbGVhbih0LmJ1c2luZXNzX2Rlc2NyaXB0aW9uKSYmYS5jcmVhdGVFbGVtZW50KHNyLHtidXNpbmVzc0Rlc2NyaXB0aW9uOigwLHMuZW5zdXJlRGVmaW5lZCkodC5idXNpbmVzc19kZXNjcmlwdGlvbil9KSl9ZnVuY3Rpb24gTnIoZSx0KXtjb25zdCBuPWUoKS5nZXQodCk7cmV0dXJuIG4/bigpOkVyfXZhciBTcj1uKDYzMjg5NCkseHI9big5ODYyNzUpLENyPW4oMjQ2MTc1KSxUcj1uKDMyMDU1KSxrcj1uKDM4MjM0MSk7Y29uc3QgRHI9KDAsX2UubWVyZ2VUaGVtZXMpKGR0LHtpY29uOmtyLmRldGFpbHNMaW5rSWNvbixsaW5rOmtyLmxpbmt9KSxJcj0i4oCUIjtmdW5jdGlvbiBNcihlKXtjb25zdHtxdW90ZXM6dH09ZS5kYXRhLHI9bmV3IEludGwuRGF0ZVRpbWVGb3JtYXQoKDAscC5nZXRMb2NhbGVJc28pKCkse2RheToibnVtZXJpYyIsbW9udGg6InNob3J0Iix5ZWFyOiJudW1lcmljIn0pLHtwcm9fbmFtZTppLGRlc2NyaXB0aW9uOmwsbG9nbzpjfT0oMCxDci51c2VRdW90ZXNDYWNoZWREYXRhKSh0LmJvbmRfaXNzdWVyX3N0b2NrX3N5bWJvbCxbInByb19uYW1lIiwiZGVzY3JpcHRpb24iLCJsb2dvIl0sewpwcm9fbmFtZTp0LmJvbmRfaXNzdWVyX3N0b2NrX3N5bWJvbD8/IiIsZGVzY3JpcHRpb246IiIsbG9nbzp2b2lkIDB9LFRyLnNuYXBzaG90ZXIpLHU9KDAsYS51c2VNZW1vKSgoKCk9PntpZih0LndlYl9zaXRlX3VybCl0cnl7cmV0dXJuIG5ldyBVUkwodC53ZWJfc2l0ZV91cmwpfWNhdGNoKGUpe3JldHVybn19KSxbdC53ZWJfc2l0ZV91cmxdKSxkPSgwLGEudXNlTWVtbykoKCgpPT5jPygwLHhyLnJlc29sdmVMb2dvVXJsc0Zyb21Mb2dvRGF0YSkoYyk6dm9pZCAwKSxbY10pO2lmKHQuYm9uZF9pc3N1ZXJfc3RvY2tfc3ltYm9sJiYhYylyZXR1cm4gbnVsbDtjb25zdCBtPWEuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOmtyLmlzc3Vlckxpbmt9LGQmJnQuYm9uZF9pc3N1ZXJfc3RvY2tfc3ltYm9sP2EuY3JlYXRlRWxlbWVudChMcix7dGV4dDp0LmJvbmRfaXNzdWVyPz9sLGxvZ29VcmxzOmQsaHJlZjooMCxGZS5tYWtlU3ltYm9sUGFnZVVybCkoe3Byb05hbWU6aX0pfSk6dC5ib25kX2lzc3Vlcj8/SXIpO3JldHVybiBhLmNyZWF0ZUVsZW1lbnQoYS5GcmFnbWVudCxudWxsLGEuY3JlYXRlRWxlbWVudChhLkZyYWdtZW50LG51bGwsYS5jcmVhdGVFbGVtZW50KGRuLkRldGFpbHNLZXlWYWx1ZUl0ZW0se3RpdGxlOndlLnQobnVsbCx2b2lkIDAsbig5OTM3NDApKSxkYXRhOm0sY2xhc3NOYW1lOm8oKShrci5pdGVtLGtyLmxpbmtJdGVtKSxkYXRhQ2xhc3NOYW1lOmtyLnZhbHVlfSksYS5jcmVhdGVFbGVtZW50KGRuLkRldGFpbHNLZXlWYWx1ZUl0ZW0se3RpdGxlOndlLnQobnVsbCx2b2lkIDAsbigyOTE4NjgpKSxkYXRhQ2xhc3NOYW1lOmtyLnZhbHVlLGRhdGE6dT9hLmNyZWF0ZUVsZW1lbnQobXQse3JlbDoibm9mb2xsb3ciLHRoZW1lOkRyLGhyZWY6dS5ocmVmLHRleHQ6dS5ob3N0bmFtZS5yZXBsYWNlKC9ed3d3XC4vZywiIil9KTpJcn0pLGEuY3JlYXRlRWxlbWVudChkbi5EZXRhaWxzS2V5VmFsdWVJdGVtLHt0aXRsZTp3ZS50KG51bGwsdm9pZCAwLG4oODYwNjc1KSksZGF0YTp0Lmlzc3VlX2RhdGU/KDAsZ24uZm9ybWF0RGF0YSkociwxZTMqdC5pc3N1ZV9kYXRlKTpJcixkYXRhQ2xhc3NOYW1lOmtyLnZhbHVlfSksYS5jcmVhdGVFbGVtZW50KGRuLkRldGFpbHNLZXlWYWx1ZUl0ZW0se3RpdGxlOndlLnQobnVsbCx2b2lkIDAsbigyNjc5MTcpKSxkYXRhQ2xhc3NOYW1lOmtyLnZhbHVlLGRhdGE6dFsiaXNpbi1kaXNwbGF5ZWQiXT9hLmNyZWF0ZUVsZW1lbnQob3Ise3RleHQ6dFsiaXNpbi1kaXNwbGF5ZWQiXX0pOklyfSksYS5jcmVhdGVFbGVtZW50KGRuLkRldGFpbHNLZXlWYWx1ZUl0ZW0se3RpdGxlOndlLnQobnVsbCx2b2lkIDAsbig2MDk5MTkpKSxkYXRhQ2xhc3NOYW1lOmtyLnZhbHVlLGRhdGE6dC5jdXNpcD9hLmNyZWF0ZUVsZW1lbnQob3Ise3RleHQ6dC5jdXNpcH0pOklyfSksYS5jcmVhdGVFbGVtZW50KGRuLkRldGFpbHNLZXlWYWx1ZUl0ZW0se3RpdGxlOndlLnQobnVsbCx2b2lkIDAsbig4ODE5MDgpKSxkYXRhQ2xhc3NOYW1lOmtyLnZhbHVlLGRhdGE6dC5maWdpJiZ0LmZpZ2lbImV4Y2hhbmdlLWxldmVsIl0/YS5jcmVhdGVFbGVtZW50KG9yLHt0ZXh0OnQuZmlnaVsiZXhjaGFuZ2UtbGV2ZWwiXX0pOklyfSksdC5jZmlfY29kZSYmYS5jcmVhdGVFbGVtZW50KGRuLkRldGFpbHNLZXlWYWx1ZUl0ZW0se3RpdGxlOndlLnQobnVsbCx7Y29udGV4dDoic3ltYm9sX2luZm8ifSxuKDEyNzY3MikpLGRhdGFDbGFzc05hbWU6a3IudmFsdWUsZGF0YTphLmNyZWF0ZUVsZW1lbnQob3Ise3RleHQ6dC5jZmlfY29kZSxkaXNwbGF5VmFsdWU6YS5jcmVhdGVFbGVtZW50KGFyLkNmaUNvZGVWYWx1ZSx7Y29kZTp0LmNmaV9jb2RlLGxvY2FsZTooMCxwLmdldExvY2FsZUlzbykoKX0pfSl9KSksQm9vbGVhbih0LmJ1c2luZXNzX2Rlc2NyaXB0aW9uKSYmYS5jcmVhdGVFbGVtZW50KHNyLHtidXNpbmVzc0Rlc2NyaXB0aW9uOigwLHMuZW5zdXJlRGVmaW5lZCkodC5idXNpbmVzc19kZXNjcmlwdGlvbil9KSl9ZnVuY3Rpb24gTHIoZSl7Y29uc3R7bG9nb1VybHM6dCx0ZXh0Om4saHJlZjpyfT1lO3JldHVybiBuJiZyP2EuY3JlYXRlRWxlbWVudChhLkZyYWdtZW50LG51bGwsYS5jcmVhdGVFbGVtZW50KFNyLkNpcmNsZUxvZ29Bbnkse2xvZ29VcmxzOnQsc2l6ZToieHh4c21hbGwifSksYS5jcmVhdGVFbGVtZW50KG10LHtyZWw6Im5vZm9sbG93Iix0aGVtZTpEcixocmVmOnIsdGV4dDpufSkpOm51bGx9dmFyIFByPW4oMTAzODA2KTtjb25zdCBGcj0oMCxfZS5tZXJnZVRoZW1lcykoZHQse2ljb246UHIuZGV0YWlsc0xpbmtJY29uLGxpbms6UHIubGlua30pLEFyPSLigJQiO2Z1bmN0aW9uIFJyKGUpe2NvbnN0e3F1b3Rlczp0LGFnZ3JlZ2F0ZWQ6cn09ZS5kYXRhLGk9ci51bmRlcmx5aW5nX3N5bWJvbF9kYXRhLHtzZWN0b3I6bCxsb2dvOmMsYnVzaW5lc3NfZGVzY3JpcHRpb246dSxpbmR1c3RyeTpkLHNob3J0X2Rlc2NyaXB0aW9uOm0scHJvX25hbWU6cH09aXx8e30sZz0oMCxhLnVzZU1lbW8pKCgoKT0+KHtldXJvcGVhbjp3ZS50KG51bGwsdm9pZCAwLG4oMTE3NjM3KSksYW1lcmljYW46d2UudChudWxsLHZvaWQgMCxuKDk4OTAzNikpfSkpLFtdKSxoPSgwLGEudXNlTWVtbykoKCgpPT5jPygwLHhyLnJlc29sdmVMb2dvVXJsc0Zyb21Mb2dvRGF0YSkoYyk6dm9pZCAwKSxbY10pLHY9YS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6UHIudW5kZXJseWluZ1N5bWJvbExpbmt9LGgmJm0/YS5jcmVhdGVFbGVtZW50KEJyLHt0ZXh0Om0sbG9nb1VybHM6aCxocmVmOigwLEZlLm1ha2VTeW1ib2xQYWdlVXJsKSh7cHJvTmFtZTpwfSl9KTpBcik7cmV0dXJuIGEuY3JlYXRlRWxlbWVudChhLkZyYWdtZW50LG51bGwsYS5jcmVhdGVFbGVtZW50KGRuLkRldGFpbHNLZXlWYWx1ZUl0ZW0se3RpdGxlOndlLnQobnVsbCx2b2lkIDAsbig5MzM5MjcpKSxjbGFzc05hbWU6bygpKFByLml0ZW0sUHIubGlua0l0ZW0pLGRhdGFDbGFzc05hbWU6UHIudmFsdWUsZGF0YTp2fSksYS5jcmVhdGVFbGVtZW50KGRuLkRldGFpbHNLZXlWYWx1ZUl0ZW0se3RpdGxlOndlLnQobnVsbCx2b2lkIDAsbig5NDkzMzUpKSwKZGF0YUNsYXNzTmFtZTpQci52YWx1ZSxkYXRhOnRbIm9wdGlvbi1zdHlsZSJdP2dbdFsib3B0aW9uLXN0eWxlIl1dOkFyfSksYS5jcmVhdGVFbGVtZW50KGRuLkRldGFpbHNLZXlWYWx1ZUl0ZW0se3RpdGxlOndlLnQobnVsbCx2b2lkIDAsbigyNzg3MjkpKSxkYXRhQ2xhc3NOYW1lOlByLnZhbHVlLGRhdGE6bD8oMCxTZS50cmllc1RyYW5zbGF0ZVNjcmVlbmVyRGF0YSkobCk6QXJ9KSxhLmNyZWF0ZUVsZW1lbnQoZG4uRGV0YWlsc0tleVZhbHVlSXRlbSx7dGl0bGU6d2UudChudWxsLHZvaWQgMCxuKDg3NzYxKSksZGF0YUNsYXNzTmFtZTpQci52YWx1ZSxkYXRhOmQ/KDAsU2UudHJpZXNUcmFuc2xhdGVTY3JlZW5lckRhdGEpKGQpOkFyfSksdC5jZmlfY29kZSYmYS5jcmVhdGVFbGVtZW50KGRuLkRldGFpbHNLZXlWYWx1ZUl0ZW0se3RpdGxlOndlLnQobnVsbCx7Y29udGV4dDoic3ltYm9sX2luZm8ifSxuKDEyNzY3MikpLGRhdGFDbGFzc05hbWU6UHIudmFsdWUsZGF0YTphLmNyZWF0ZUVsZW1lbnQob3Ise3RleHQ6dC5jZmlfY29kZX0pfSksQm9vbGVhbih1KSYmYS5jcmVhdGVFbGVtZW50KHNyLHtidXNpbmVzc0Rlc2NyaXB0aW9uOigwLHMuZW5zdXJlRGVmaW5lZCkodSl9KSl9ZnVuY3Rpb24gQnIoZSl7Y29uc3R7bG9nb1VybHM6dCx0ZXh0Om4saHJlZjpyfT1lO3JldHVybiBuJiZyP2EuY3JlYXRlRWxlbWVudChhLkZyYWdtZW50LG51bGwsYS5jcmVhdGVFbGVtZW50KFNyLkNpcmNsZUxvZ29Bbnkse2xvZ29VcmxzOnQsc2l6ZToieHh4c21hbGwifSksYS5jcmVhdGVFbGVtZW50KG10LHtyZWw6Im5vZm9sbG93Iix0aGVtZTpGcixocmVmOnIsdGV4dDpufSkpOm51bGx9dmFyIE9yPW4oMzY2MjkzKTtmdW5jdGlvbiBXcihlKXtjb25zdHtxdW90ZXM6dCxhZ2dyZWdhdGVkOnJ9PWUuZGF0YSxvPXIuZGV4X2NvbnZlcnRlZF9zeW1ib2xfZGF0YSxpPW8/LmJsb2NrY2hhaW5fYWRkcmVzc2VzPz90LmJsb2NrY2hhaW5fYWRkcmVzc2VzLGw9bz8uYmxvY2tjaGFpbl9hZGRyZXNzZXNfdXJscz8/dC5ibG9ja2NoYWluX2FkZHJlc3Nlc191cmxzLHM9bz8uZGV4X2N1cnJlbmN5Pz90LmRleF9jdXJyZW5jeSxjPW8/LmRleF9jcmVhdGVkX3RpbWU/P3QuZGV4X2NyZWF0ZWRfdGltZSxbdSxkXT10LmxvZ28/KDAseHIucmVzb2x2ZUxvZ29VcmxzRnJvbUxvZ29EYXRhKSh0LmxvZ28pOltdLG09bmV3IEludGwuRGF0ZVRpbWVGb3JtYXQoKDAscC5nZXRMb2NhbGVJc28pKCkse21vbnRoOiJzaG9ydCIseWVhcjoibnVtZXJpYyIsZGF5OiJudW1lcmljIn0pLGc9W107cmV0dXJuIGwmJmkmJihnLnB1c2goe3RpdGxlOndlLnQobnVsbCx2b2lkIDAsbig4NDYwNTcpKSxjaGlsZHJlbjphLmNyZWF0ZUVsZW1lbnQoVXIse2hyZWY6bC5wYWlyLHRleHQ6aS5wYWlyLGNvcHlUaXRsZTp3ZS50KG51bGwsdm9pZCAwLG4oMzk0OTg4KSl9KX0pLHQuYmFzZV9jdXJyZW5jeSYmZy5wdXNoKHt0aXRsZTp0LmJhc2VfY3VycmVuY3ksY2hpbGRyZW46YS5jcmVhdGVFbGVtZW50KFVyLHtocmVmOmwuYmFzZV9jdXJyZW5jeSx0ZXh0OmlbImJhc2UtY3VycmVuY3kiXSxsb2dvVXJsczpkJiZ1P1t1XTp2b2lkIDAsY29weVRpdGxlOndlLnQobnVsbCx7cmVwbGFjZTp7dGl0bGU6dC5iYXNlX2N1cnJlbmN5fX0sbig3MTM5NDApKX0pfSkscyYmZy5wdXNoKHt0aXRsZTpzLGNoaWxkcmVuOmEuY3JlYXRlRWxlbWVudChVcix7aHJlZjpsLmN1cnJlbmN5LHRleHQ6aS5jdXJyZW5jeSxsb2dvVXJsczpkP1tkXTp2b2lkIDAsY29weVRpdGxlOndlLnQobnVsbCx7cmVwbGFjZTp7dGl0bGU6c319LG4oNzEzOTQwKSl9KX0pKSxjJiZnLnB1c2goe3RpdGxlOndlLnQobnVsbCx2b2lkIDAsbigyMTU5MjMpKSxjaGlsZHJlbjptLmZvcm1hdCgxZTMqYyl9KSxhLmNyZWF0ZUVsZW1lbnQoYS5GcmFnbWVudCxudWxsLGEuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOk9yLndyYXB9LGcubWFwKChlPT5hLmNyZWF0ZUVsZW1lbnQod3Ise2tleTplLnRpdGxlLHRpdGxlOmUudGl0bGUsY2hpbGRyZW46ZS5jaGlsZHJlbixjbGFzc05hbWU6ZS5jbGFzc05hbWV9KSkpKSl9ZnVuY3Rpb24gVXIoZSl7Y29uc3R7dGV4dDp0LGhyZWY6bixsb2dvVXJsczpyLGNvcHlUaXRsZTpvfT1lLGk9KDAsYS51c2VSZWYpKG51bGwpLGw9KGM9Mywocz10KS5sZW5ndGg8PTIqYz9zOmAke3Muc2xpY2UoMCxjKX0uLi4ke3Muc2xpY2UoLWMpfWApO3ZhciBzLGM7cmV0dXJuIGEuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZTpPci5ibG9ja30sciYmYS5jcmVhdGVFbGVtZW50KFNyLkNpcmNsZUxvZ29Bbnkse2NsYXNzTmFtZTpPci5sb2dvLGxvZ29VcmxzOnIsc2l6ZToieHh4eHNtYWxsIn0pLG4/YS5jcmVhdGVFbGVtZW50KGEuRnJhZ21lbnQsbnVsbCxhLmNyZWF0ZUVsZW1lbnQobXQse3RoZW1lOkFhLGhyZWY6bix0ZXh0OmwscmVsOiJub2ZvbGxvdyIsdGV4dFJlZjppfSksYS5jcmVhdGVFbGVtZW50KEthLHtjbGFzc05hbWU6T3IuY29weSxvbkNsaWNrOmZ1bmN0aW9uKCl7SGEodCxpLmN1cnJlbnQpfSx0aXRsZTpvfSkpOmEuY3JlYXRlRWxlbWVudChvcix7dGV4dDp0LGRpc3BsYXlWYWx1ZTpsLGNvcHlUaXRsZTpvfSkpfWZ1bmN0aW9uIFZyKGUpe2NvbnN0e2NsYXNzTmFtZTp0LHNob3dLZXlWYWx1ZXM6cixkYXRhOm99PWUse3F1b3RlczppLGFnZ3JlZ2F0ZWQ6bH09byxzPWZ1bmN0aW9uKGUsdCl7Y29uc3RbbixyXT0oMCxhLnVzZVN0YXRlKSh7aXNMb2FkaW5nOiExLGRhdGE6ZSxhc3NldDp0fSk7cmV0dXJuKDAsYS51c2VFZmZlY3QpKCgoKT0+eyFlPy5oYXNDcnlwdG9NZXRhRGF0YSYmdD9uLmFzc2V0PT09dCYmKG4uaXNFcnJvck9uTG9hZGluZ3x8bi5pc0xvYWRpbmd8fG4uZGF0YT8uaGFzQ3J5cHRvTWV0YURhdGEpfHwocih7YXNzZXQ6dCxkYXRhOnZvaWQgMCxpc0xvYWRpbmc6ITB9KSxoci5nZXRTbmFwc2hvdCh0LGdyKS50aGVuKChlPT57aWYoImVycm9yIj09PWUuc3RhdHVzKXJldHVybiB2b2lkIHIoe2Fzc2V0OnQsaXNMb2FkaW5nOiExLGlzRXJyb3JPbkxvYWRpbmc6ITAsZGF0YTp2b2lkIDB9KQo7Y29uc3R7dmFsdWVzOnt3ZWJzaXRlOm4sZG9jOmEsZXhwbG9yZXI6byxzb3VyY2VzOmksY29udHJhY3RzOmwsY3J5cHRvX2NvbW1vbl9jYXRlZ29yaWVzOnMsY29tbXVuaXR5OmN9fT1lO3Ioe2Fzc2V0OnQsaXNMb2FkaW5nOiExLGRhdGE6e3dlYnNpdGU6bixkb2M6YSxleHBsb3JlcjpvLHNvdXJjZXM6aSxjb250cmFjdHM6bCxjYXRlZ29yaWVzOnMsY29tbXVuaXR5OmMsaGFzQ3J5cHRvTWV0YURhdGE6ITB9fSl9KSkpOnIoe2lzTG9hZGluZzohMSxkYXRhOmUsYXNzZXQ6dm9pZCAwfSl9KSxbZSx0XSksbi5kYXRhfShsLmNyeXB0b01ldGFEYXRhLGkuY3J5cHRvX2Fzc2V0KSxjPWkudHlwZSYmaS50eXBlc3BlY3MmJigwLEFlLmlzRnVuZEV0ZikoaS50eXBlLGkudHlwZXNwZWNzKSx1PWkudHlwZSYmaS50eXBlc3BlY3MmJigwLEFlLmlzQ29ycG9yYXRlQm9uZCkoaS50eXBlLGkudHlwZXNwZWNzKSxkPWkudHlwZSYmaS50eXBlc3BlY3MmJigwLEFlLmlzR292ZXJubWVudE9ubHlCb25kKShpLnR5cGUsaS50eXBlc3BlY3MpLG09aS50eXBlJiYoMCxBZS5pc09wdGlvbikoaS50eXBlKSxwPSgwLEFlLmlzRGV4KShpWyJleGNoYW5nZS1pbmZvIl0pO2xldCBnO3JldHVybiBnPXM/Lmhhc0NyeXB0b01ldGFEYXRhfHxpLmNyeXB0b19hc3NldD9hLmNyZWF0ZUVsZW1lbnQobnIsey4uLnN9KTpjP2EuY3JlYXRlRWxlbWVudChicix7ZGF0YTpvfSk6dXx8ZD9hLmNyZWF0ZUVsZW1lbnQoTXIse2RhdGE6b30pOm0/YS5jcmVhdGVFbGVtZW50KFJyLHtkYXRhOm99KTpwP2EuY3JlYXRlRWxlbWVudChXcix7ZGF0YTpvfSk6YS5jcmVhdGVFbGVtZW50KG1yLHtkYXRhOm8sc2hvd0tleVZhbHVlczpyfSksYS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6dCwiZGF0YS1xYS1pZCI6ImRldGFpbHMtZWxlbWVudCBwcm9maWxlIn0sYS5jcmVhdGVFbGVtZW50KHguV2lkZ2V0VGl0bGUsbnVsbCxjfHxtfHxwP3dlLnQobnVsbCx7Y29udGV4dDoiZGV0YWlsc19wcm9maWxlIn0sbig4NDg0MDYpKTp3ZS50KG51bGwsdm9pZCAwLG4oNTI3NDQxKSkpLGcpfXZhciB6cj1uKDM5MDkwNyksSHI9bigyMzc2MDMpLHFyPW4oNDI4MDQxKSxHcj1uKDk1NDU5MiksWXI9bigzNTE3ODYpO2Z1bmN0aW9uIEtyKGUpe2NvbnN0e29uQ2xpY2s6dCxzdGFydEljb246bixjbGFzc05hbWU6cix0aXRsZTppLC4uLmx9PWU7cmV0dXJuIGEuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOm8oKShyLFlyLmJsb2NrKSxvbkNsaWNrOnQsLi4ubH0sYS5jcmVhdGVFbGVtZW50KHFlLkljb24se2NsYXNzTmFtZTpZci5zdGFydEljb24saWNvbjpufSksYS5jcmVhdGVFbGVtZW50KHFyLldyYXBXaXRoTGFzdFdvcmQse3RleHQ6aX0sYS5jcmVhdGVFbGVtZW50KHFlLkljb24se2NsYXNzTmFtZTpZci5lbmRJY29uLGljb246R3J9KSkpfXZhciBqcj1uKDc0MTAzMSksJHI9bigxMjMxMzQpLFpyPW4oNDk1MiksWHI9bigyMDU1MzkpLFFyPW4oNTk5OTkyKTtmdW5jdGlvbiBKcihlKXtjb25zdHtvbkNsaWNrOnQsbmV3c1ByZXZpZXc6cn09ZSxpPSgwLEhyLnVzZUNoYW5nZVN0YXRlQXV0aGVudGljYXRpb24pKHdpbmRvdy5pc19hdXRoZW50aWNhdGVkKTtpZigicHJvdmlkZXIiPT09ci5wZXJtaXNzaW9uJiYhaSlyZXR1cm4gYS5jcmVhdGVFbGVtZW50KEtyLHtjbGFzc05hbWU6bygpKFFyLnByZXZpZXdCdXR0b24sUXIuY2FyZCksc3RhcnRJY29uOlhyLHRpdGxlOndlLnQobnVsbCx7Y29udGV4dDoiZGV0YWlsc19uZXdzIn0sbigyNjcwMjcpKSwiZGF0YS1xYS1pZCI6ImRldGFpbHMtbmV3cyIsb25DbGljazp0fSk7Y29uc3R7dGl0bGU6bCxpY29uOnN9PWZ1bmN0aW9uKGUpe2lmKGUuaXNGbGFzaClyZXR1cm57dGl0bGU6d2UudChudWxsLHtjb250ZXh0OiJkZXRhaWxzX25ld3MifSxuKDU0MzE3NikpLGljb246JHJ9O2lmKDE9PT1lLnVyZ2VuY3kpcmV0dXJue3RpdGxlOndlLnQobnVsbCx7Y29udGV4dDoiZGV0YWlsc19uZXdzIn0sbig2NDAxMjMpKSxpY29uOmpyfTtpZihlLmlzRXhjbHVzaXZlKXJldHVybnt0aXRsZTp3ZS50KG51bGwse2NvbnRleHQ6ImRldGFpbHNfbmV3cyJ9LG4oMzM3ODYpKSxpY29uOlpyfTtyZXR1cm57dGl0bGU6d2UudChudWxsLHtjb250ZXh0OiJkZXRhaWxzX25ld3MifSxuKDMwMjAyNykpfX0ocik7cmV0dXJuIGEuY3JlYXRlRWxlbWVudCh4bix7Y2xhc3NOYW1lOlFyLmNhcmQsdGl0bGVDbGFzc05hbWU6UXIudGl0bGUsc3RhcnRJY29uOnMsdGl0bGU6YS5jcmVhdGVFbGVtZW50KGEuRnJhZ21lbnQsbnVsbCxsLGEuY3JlYXRlRWxlbWVudChndCx7Y2xhc3NOYW1lOlFyLmRvdH0pLGEuY3JlYXRlRWxlbWVudCh6ci5BZ29EYXRlRm9ybWF0dGVyLHtjbGFzc05hbWU6UXIuZGF0ZSxldmVudFRpbWU6ci5wdWJsaXNoZWR9KSksZm9vdGVyTGFiZWw6d2UudChudWxsLHtjb250ZXh0OiJkZXRhaWxzX25ld3MifSxuKDUxNDE1MCkpLG9uQ2xpY2s6dCwiZGF0YS1xYS1pZCI6ImRldGFpbHMtbmV3cyJ9LGEuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOlFyLmNvbnRlbnR9LHIudGl0bGUpKX12YXIgZW89bigzNTA1MDgpLHRvPW4oOTA5NzczKSxubz1uKDY4MTMzMCksYW89big2NTM3MDEpLHJvPW4oNzczMDc0KTtjb25zdCBvbz0oMCxfZS5tZXJnZVRoZW1lcykodG8uREVGQVVMVF9USEVNRSx7Y2hhbmdlOnJvLmNoYW5nZX0pO2Z1bmN0aW9uIGlvKGUpe2NvbnN0e3ByaWNlRm9ybWF0dGVyOnQsZGF0YTpyLGNsYXNzTmFtZTppfT1lLHtxdW90ZXM6bCxhZ2dyZWdhdGVkOnN9PXIsYz12b2lkIDAhPT1sLnByaWNlX3RhcmdldF9hdmVyYWdlJiZudWxsIT09bC5wcmljZV90YXJnZXRfYXZlcmFnZSYmdm9pZCAwIT09cy5yYXRlc1B0VG9TeW1ib2w/bC5wcmljZV90YXJnZXRfYXZlcmFnZSpzLnJhdGVzUHRUb1N5bWJvbDp2b2lkIDAsdT12b2lkIDAhPT1sLmxhc3RfcHJpY2UmJnZvaWQgMCE9PWM/Yy1sLmxhc3RfcHJpY2U6MCxkPXZvaWQgMCE9PWwubGFzdF9wcmljZT91L2wubGFzdF9wcmljZSoxMDA6MCxtPSgwLGEudXNlTWVtbykoKCgpPT4oMCwKYW8uZ2V0QW5hbHlzdFJlY29tbWVuZGF0aW9uKShsLnJlY29tbWVuZGF0aW9uX21hcmspKSxbbC5yZWNvbW1lbmRhdGlvbl9tYXJrXSkscD0oMCxhLnVzZU1lbW8pKCgoKT0+bmV3IGplLlBlcmNlbnRhZ2VGb3JtYXR0ZXIpLFtdKTtyZXR1cm4gYS5jcmVhdGVFbGVtZW50KCJkaXYiLHsiZGF0YS1xYS1pZCI6ImRldGFpbHMtZWxlbWVudCBhbmFseXN0LXJhdGluZyIsY2xhc3NOYW1lOm8oKShyby5jb250YWluZXIsaSl9LGEuY3JlYXRlRWxlbWVudCh4LldpZGdldFRpdGxlLG51bGwsd2UudChudWxsLHZvaWQgMCxuKDg4MDE5OSkpKSxhLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpyby5zcGVlZG9tZXRlcldyYXB9LGEuY3JlYXRlRWxlbWVudChuby5TcGVlZG9tZXRlckFuYWx5c3Qse3JlY29tbWVuZGF0aW9uOm0sc2l6ZToic21hbGwiLG5ldXRyYWxUZXh0Q29sb3I6ITB9KSksdm9pZCAwIT09bC5sYXN0X3ByaWNlJiZ2b2lkIDAhPT1sLnByaWNlX3RhcmdldF9hdmVyYWdlJiZudWxsIT09bC5wcmljZV90YXJnZXRfYXZlcmFnZSYmYS5jcmVhdGVFbGVtZW50KGRuLkRldGFpbHNLZXlWYWx1ZUl0ZW0se3RpdGxlOndlLnQobnVsbCx2b2lkIDAsbig4MTgwMDIpKSxkYXRhOmEuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZTpyby5pdGVtV3JhcH0sYyYmYS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOnJvLnByaWNlfSx0Py5mb3JtYXQoYykpLGEuY3JlYXRlRWxlbWVudCh0by5DaGFuZ2Use2NoYW5nZVBlcmNlbnQ6ZCxmb3JtYXR0ZWRDaGFuZ2VQZXJjZW50OnAuZm9ybWF0KGQpLHNob3dCcmFja2V0czohMCx0aGVtZTpvb30pKX0pKX12YXIgbG89big3MDUyNzMpLHNvPW4oNzI4NjM5KSxjbz1uKDI5NTc0NCksdW89big3NjU5MTQpLG1vPW4oNjIxOTI2KSxwbz1uKDUyMTApO2Z1bmN0aW9uIGdvKGUpe2NvbnN0e2NsYXNzTmFtZTp0fT1lO3JldHVybiBhLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTp0fSxhLmNyZWF0ZUVsZW1lbnQodW8uRW1wdHlTdGF0ZUJsb2NrLHtpY29uQ2xhc3M6cG8uY3Jvd24sdGl0bGVTaXplOiJub3JtYWwiLHRleHQ6d2UudChudWxsLHZvaWQgMCxuKDMzMDA0MSkpLHRpdGxlOndlLnQobnVsbCx2b2lkIDAsbig1NTU4NzEpKSxhY3Rpb246YS5jcmVhdGVFbGVtZW50KGNvLlNxdWFyZUJ1dHRvbix7Y2xhc3NOYW1lOnBvLmJ1dHRvbixzaXplOiJzbWFsbCIsY29sb3I6ImJsYWNrIixvbkNsaWNrOigpPT57KDAsbW8ucnVuT3JTaWduaW5XaXRoRmVhdHVyZSkoKCgpPT57fSkse2ZlYXR1cmU6InVubG9ja0JvbmREYXRhIixzb3VyY2U6IkRldGFpbHMgYm9uZHMgd2lkZ2V0cyJ9KX19LHdlLnQobnVsbCx7Y29udGV4dDoiUGF5d2FsbCBiYW5uZXIifSxuKDUxMDgxMCkpKX0pKX12YXIgaG89bigzNzI3NDApLHZvPW4oNTk5MjgxKSxmbz1uKDM1MTYwMykseW89big5OTk0MjIpO2Z1bmN0aW9uIHdvKGUpe2NvbnN0e2NsYXNzTmFtZTp0LGRhdGE6cn09ZSx7c3ltYm9sOm99PXIucXVvdGVzLGk9KDAscy5lbnN1cmVEZWZpbmVkKShyLmFnZ3JlZ2F0ZWQuZGl2aWRlbmRzRGF0YSkse2hhc0RpdmlkZW5kczpsLGRpdmlkZW5kX3BheW91dF9yYXRpb190dG06Y309aTtyZXR1cm4gYS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6dCwiZGF0YS1xYS1pZCI6ImRldGFpbHMtZWxlbWVudCBkaXZpZGVuZHMifSxhLmNyZWF0ZUVsZW1lbnQoeC5XaWRnZXRUaXRsZSxudWxsLGEuY3JlYXRlRWxlbWVudCgiZGl2IixudWxsLHdlLnQobnVsbCx2b2lkIDAsbig2NTkyNjcpKSkpLGw/YS5jcmVhdGVFbGVtZW50KCJkaXYiLG51bGwsbnVsbCE9YyYmYS5jcmVhdGVFbGVtZW50KHZvLkRpdmlkZW5kc0NoYXJ0LHtkaXZpZGVuZFBheW91dFJhdGlvVHRtOmN9KSxhLmNyZWF0ZUVsZW1lbnQoZm8uRGl2aWRlbmRzU3RhdHMse2RhdGE6aSxjbGFzc05hbWU6eW8uc3RhdHN9KSk6YS5jcmVhdGVFbGVtZW50KGhvLk5vRGl2aWRlbmRzLHtjbGFzc05hbWU6eW8ubm9EaXZpZGVuZHNUZXh0LHN5bWJvbDpvfSkpfXZhciBfbz1uKDc2MjMzNSk7ZnVuY3Rpb24gRW8oZSl7Y29uc3R7b25DbGljazp0fT1lO3JldHVybiBhLmNyZWF0ZUVsZW1lbnQoS3Ise3RpdGxlOndlLnQobnVsbCx7Y29udGV4dDoiZGV0YWlsc19jb21tdW5pdHkifSxuKDExNjg3MikpLHN0YXJ0SWNvbjpfbyxvbkNsaWNrOnQsImRhdGEtcWEtaWQiOiJkZXRhaWxzLWNvbW11bml0eSJ9KX12YXIgYm89bigxMjMzMzYpO2NvbnN0IE5vPW5ldyBNYXAoW1sicHJpdmF0ZSIsKCk9PmcudChudWxsLHtjb250ZXh0OiJib25kcyJ9LG4oNDU3ODcpKV0sWyJwdWJsaWMiLCgpPT5nLnQobnVsbCx7Y29udGV4dDoiYm9uZHMifSxuKDk2Mjg5MykpXV0pLFNvPW5ldyBNYXAoW1sic2hvcnQtdGVybSIsKCk9PmcudChudWxsLHZvaWQgMCxuKDYyMzEyNSkpXSxbIm1lZGl1bS10ZXJtIiwoKT0+Zy50KG51bGwsdm9pZCAwLG4oNDA0MDYwKSldLFsibG9uZy10ZXJtIiwoKT0+Zy50KG51bGwsdm9pZCAwLG4oNTIyODk2KSldLFsicGVycGV0dWFsIiwoKT0+Zy50KG51bGwse2NvbnRleHQ6ImJvbmRzIn0sbigyNjk0OTkpKV1dKSx4bz1uZXcgTWFwKFtbInJlZ3VsYXIiLCgpPT5nLnQobnVsbCx7Y29udGV4dDoiYm9uZHMifSxuKDU4NTMyNSkpXSxbImV4dGVuZGlibGUiLCgpPT5nLnQobnVsbCx2b2lkIDAsbigxMTQ1NTIpKV0sWyJwZXJwZXR1YWwiLCgpPT5nLnQobnVsbCx2b2lkIDAsbig1NTY4NzYpKV1dKSxDbz1uZXcgTWFwKFtbImdsb2JhbCIsKCk9PmcudChudWxsLHZvaWQgMCxuKDM0NTA4KSldLFsic2luZ2xlLWNvdW50cnkiLCgpPT5nLnQobnVsbCx2b2lkIDAsbig4OTcyNjkpKV1dKSxUbz1uZXcgTWFwKFtbImNhbGxhYmxlIiwoKT0+Zy50KG51bGwsdm9pZCAwLG4oNTcyMDM5KSldLFsicHV0YWJsZSIsKCk9PmcudChudWxsLHZvaWQgMCxuKDcyMzA3NCkpXSxbImNhbGxhYmxlLWFuZC1wdXRhYmxlIiwoKT0+Zy50KG51bGwsdm9pZCAwLG4oODM2MzYpKV0sWyJub24tY2FsbGFibGUtYW5kLW5vbi1wdXRhYmxlIiwoKT0+Zy50KG51bGwsdm9pZCAwLG4oMTU5NzU5KSldLFsibm9uZSIsKCk9PmcudChudWxsLHsKY29udGV4dDoiYm9uZHMifSxuKDcxODcyMikpXV0pLGtvPW5ldyBNYXAoW1siY29udmVydGlibGUiLCgpPT5nLnQobnVsbCx2b2lkIDAsbigyNjE5NikpXSxbImV4Y2hhbmdlYWJsZSIsKCk9PmcudChudWxsLHZvaWQgMCxuKDYxNDkzNCkpXSxbIm5vbi1jb252ZXJ0aWJsZSIsKCk9PmcudChudWxsLHZvaWQgMCxuKDg0NTI5MikpXV0pLERvPW5ldyBNYXAoW1sic2lua2FibGUiLCgpPT5nLnQobnVsbCx2b2lkIDAsbigxMDAwOTkpKV0sWyJub24tc2lua2FibGUiLCgpPT5nLnQobnVsbCx2b2lkIDAsbig1Mjc0NjkpKV1dKSxJbz1uZXcgTWFwKFtbInJlZ2lzdGVyZWQiLCgpPT5nLnQobnVsbCx2b2lkIDAsbig0NTAzNjUpKV0sWyJiZWFyZXIiLCgpPT5nLnQobnVsbCx2b2lkIDAsbig5MDQ0NjIpKV0sWyJiZWFyZXItcmVnaXN0ZXJlZCIsKCk9PmcudChudWxsLHZvaWQgMCxuKDU3ODk3OSkpXSxbInJlZ2lzdGVyZWQtZGVwb3NpdG9yeS1yZWNlaXB0IiwoKT0+Zy50KG51bGwsdm9pZCAwLG4oMTgyNjQ3KSldLFsibmV3LWdsb2JhbC1ub3RlIiwoKT0+Zy50KG51bGwsdm9pZCAwLG4oNjU4OTU3KSldLFsiYmVhcmVyLWRlcG9zaXRvcnktcmVjZWlwdCIsKCk9PmcudChudWxsLHZvaWQgMCxuKDIzMDQ1MCkpXV0pO2Z1bmN0aW9uIE1vKGUpe2NvbnN0e2NsYXNzTmFtZTp0LGRhdGE6cn09ZSx7cXVvdGVzOm99PXIsaT1be3RpdGxlOndlLnQobnVsbCx2b2lkIDAsbig0ODI1ODcpKSxkYXRhOkxvKCgwLGJvLnRyYW5zbGF0ZUZyb21NYXApKG8ucGxhY2VtZW50X3R5cGUsTm8pKX0se3RpdGxlOndlLnQobnVsbCx2b2lkIDAsbigxOTA5NTQpKSxkYXRhOkxvKCgwLGJvLnRyYW5zbGF0ZUZyb21NYXApKG8uZHVyYXRpb25fdHlwZSxTbykpfSx7dGl0bGU6d2UudChudWxsLHZvaWQgMCxuKDM1Mjc2OCkpLGRhdGE6TG8oKDAsYm8udHJhbnNsYXRlRnJvbU1hcCkoby5tYXR1cml0eV90eXBlLHhvKSl9LHt0aXRsZTp3ZS50KG51bGwsdm9pZCAwLG4oMjg2NDYyKSksZGF0YTpMbygoMCxiby50cmFuc2xhdGVGcm9tTWFwKShvLm9mZmVyX3R5cGUsQ28pKX0se3RpdGxlOndlLnQobnVsbCx2b2lkIDAsbig2NDg3NTApKSxkYXRhOkxvKCgwLGJvLnRyYW5zbGF0ZUZyb21NYXApKG8ucmVkZW1wdGlvbl90eXBlLFRvKSl9LHt0aXRsZTp3ZS50KG51bGwsdm9pZCAwLG4oOTg0NjMxKSksZGF0YTpMbygoMCxiby50cmFuc2xhdGVGcm9tTWFwKShvLmNvbnZlcnNpb25fb3B0aW9uLGtvKSl9LHt0aXRsZTp3ZS50KG51bGwsdm9pZCAwLG4oMTI5NTk4KSksZGF0YTpMbygoMCxiby50cmFuc2xhdGVGcm9tTWFwKShvLnNpbmtpbmdfZnVuZCxEbykpfSx7dGl0bGU6d2UudChudWxsLHZvaWQgMCxuKDc2OTc3MCkpLGRhdGE6TG8oKDAsYm8udHJhbnNsYXRlRnJvbU1hcCkoby5vd25lcnNoaXBfZm9ybSxJbykpfV07cmV0dXJuIGEuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOnQsImRhdGEtcWEtaWQiOiJkZXRhaWxzLWVsZW1lbnQgYm9uZC1jbGFzc2lmaWNhdGlvbiJ9LGEuY3JlYXRlRWxlbWVudCh4LldpZGdldFRpdGxlLG51bGwsYS5jcmVhdGVFbGVtZW50KCJzcGFuIixudWxsLHdlLnQobnVsbCx2b2lkIDAsbig5NTkwNzIpKSkpLGEuY3JlYXRlRWxlbWVudCgiZGl2IixudWxsLGkubWFwKCgoZSx0KT0+YS5jcmVhdGVFbGVtZW50KGRuLkRldGFpbHNLZXlWYWx1ZUl0ZW0sey4uLmUsa2V5OnR9KSkpKSl9ZnVuY3Rpb24gTG8oZSl7cmV0dXJuIG51bGwhPWU/ZToi4oCUIn12YXIgUG89big0NjE1ODcpLEZvPW4oOTYwMDA2KSxBbz1uKDEwODkyKTtmdW5jdGlvbiBSbyhlKXtjb25zdHtjbGFzc05hbWU6dCxkYXRhOnJ9PWUse291dHN0YW5kaW5nX2Ftb3VudDpvPTAscGFpZF9hbW91bnQ6aT0wLHRvdGFsX2lzc3VlZF9hbW91bnQ6bD0wfT1yLnF1b3RlcyxzPSgwLGEudXNlTWVtbykoKCgpPT57Y29uc3QgZT1bXTtyZXR1cm4gbyYmZS5wdXNoKHtuYW1lOndlLnQobnVsbCx2b2lkIDAsbig0Njk0NzcpKSxjb3VudDpvLGNsYXNzTmFtZTpBby5vdXRzdGFuZGluZ0Ftb3VudH0pLGkmJmUucHVzaCh7bmFtZTp3ZS50KG51bGwsdm9pZCAwLG4oNDQ1ODA0KSksY291bnQ6aSxjbGFzc05hbWU6QW8ucGFpZEFtb3VudH0pLFtlXX0pLFtvLGldKSxjPWx8fG8raTtyZXR1cm4gYS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6dCwiZGF0YS1xYS1pZCI6ImRldGFpbHMtZWxlbWVudCBib25kLXJlZGVtcHRpb24ifSxhLmNyZWF0ZUVsZW1lbnQoeC5XaWRnZXRUaXRsZSxudWxsLGEuY3JlYXRlRWxlbWVudCgic3BhbiIsbnVsbCx3ZS50KG51bGwsdm9pZCAwLG4oMzA5NjcpKSkpLGEuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOkFvLnBpZVdyYXB9LGEuY3JlYXRlRWxlbWVudChpYS5QaWVDaGFydCx7dGl0bGU6KDAsRm8uZm9ybWF0KShjLCJ2b2x1bWUiKSx0aXRsZUNsYXNzTmFtZTpBby5jaGFydFRpdGxlLGNpcmNsZXM6cyxzaG93VG9vbHRpcDohMSxzaG93TGFiZWxzOiExLHNob3dQZXJjZW50czohMSxzaG93Q291bnQ6ITEsc2hvd0hvdmVyOiExLHNvcnREYXRhOiExfSkpLHNbMF0ubWFwKCgoZSx0KT0+YS5jcmVhdGVFbGVtZW50KCJkaXYiLHtrZXk6dCxjbGFzc05hbWU6QW8ubGVnZW5kSXRlbX0sYS5jcmVhdGVFbGVtZW50KG9hLkxlZ2VuZENvbG9yU3dhdGNoLHtjbGFzc05hbWU6ZS5jbGFzc05hbWV9KSxhLmNyZWF0ZUVsZW1lbnQoZG4uRGV0YWlsc0tleVZhbHVlSXRlbSx7Y2xhc3NOYW1lOkFvLmxlZ2VuZFRleHQsZGF0YUNsYXNzTmFtZTpBby5sZWdlbmREYXRhLHRpdGxlOmUubmFtZSxkYXRhOmAkeygwLEZvLmZvcm1hdCkoZS5jb3VudCwibnVtYmVycyIpfSAoJHsoMCxQby5mb3JtYXRQZXJjZW50KShlLmNvdW50LGMsITApfSlgfSkpKSkpfXZhciBCbz1uKDYzMzg1NCksT289bigzNDEyNzYpLFdvPW4oOTEwOTAxKSxVbz1uKDc2ODI5NSksVm89big2MjI4NjApO2Z1bmN0aW9uIHpvKGUpe2NvbnN0e2NsYXNzTmFtZTp0LGRhdGE6cn09ZSxvPSgwLGEudXNlTWVtbykoKCgpPT5be2l0ZW1zOnIucXVvdGVzLmJvbmRfc25wX3JhdGluZ19sdF9oPz9bXSwKcG9zc2libGVWYWx1ZXM6T28uQk9ORF9JU1NVRVJfTE9OR19QT1NTSUJMRV9WQUxVRVMsbGFiZWw6V28uU05QX0xBQkVMLGxpbmVDb2xvcjpXby5TTlBfTElORV9DT0xPUixzY2FsZUNlbGxDbGFzc05hbWU6Vm8uc2NhbGVDZWxsU25wLHRvb2x0aXBMYWJlbENsYXNzTmFtZTpXby5TTlBfVE9PTFRJUF9MQUJFTF9DTEFTU19OQU1FLG91dGxvb2tUaXRsZXM6KDAsVW8uZ2V0T3V0bG9va1RpdGxlcykoInNucCIpfSx7aXRlbXM6ci5xdW90ZXMuYm9uZF9maXRjaF9yYXRpbmdfbHRfaD8/W10scG9zc2libGVWYWx1ZXM6T28uQk9ORF9JU1NVRVJfTE9OR19QT1NTSUJMRV9WQUxVRVMsbGFiZWw6V28uRklUQ0hfTEFCRUwsbGluZUNvbG9yOldvLkZJVENIX0xJTkVfQ09MT1Isc2NhbGVDZWxsQ2xhc3NOYW1lOlZvLnNjYWxlQ2VsbEZpdGNoLHRvb2x0aXBMYWJlbENsYXNzTmFtZTpXby5GSVRDSF9UT09MVElQX0xBQkVMX0NMQVNTX05BTUUsb3V0bG9va1RpdGxlczooMCxVby5nZXRPdXRsb29rVGl0bGVzKSgiZml0Y2giKX1dLm1hcCgoZT0+KDAsV28uYnVpbGRSYXRpbmdTZXJpZXMpKGUpKSkuZmlsdGVyKChlPT5udWxsIT09ZSkpKSxbci5xdW90ZXMuYm9uZF9zbnBfcmF0aW5nX2x0X2gsci5xdW90ZXMuYm9uZF9maXRjaF9yYXRpbmdfbHRfaF0pO3JldHVybiBhLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTp0LCJkYXRhLXFhLWlkIjoiZGV0YWlscy1lbGVtZW50IGJvbmQtaXNzdWUtcmF0aW5nIn0sYS5jcmVhdGVFbGVtZW50KHguV2lkZ2V0VGl0bGUsbnVsbCxhLmNyZWF0ZUVsZW1lbnQoInNwYW4iLG51bGwsd2UudChudWxsLHtjb250ZXh0OiJib25kX3JhdGluZ193aWRnZXQifSxuKDUxODMyMykpKSksYS5jcmVhdGVFbGVtZW50KEJvLlJhdGluZ0NoYXJ0LHtzZXJpZXM6byxwZXJpb2RUeXBlOjAsc2hvcnRlblllYXI6ITAsc2hvd0xlZ2VuZDohMH0pKX12YXIgSG89bigxMDM1MzEpLHFvPW4oMzM0MjU0KTtjb25zdCBHbz17bGlzdDooZSx0KT0+YS5jcmVhdGVFbGVtZW50KFlvLHtub2RlOmUsa2V5OmUua2V5fHx0fSksIioiOihlLHQpPT5hLmNyZWF0ZUVsZW1lbnQoS28se25vZGU6ZSxrZXk6ZS5rZXl8fHR9KX07ZnVuY3Rpb24gWW8oZSl7Y29uc3R7bm9kZTp0fT1lLG49KDAsYS51c2VDb250ZXh0KShxby5BU1RSZW5kZXJlckNvbnRleHQpLHI9dC5jaGlsZHJlbj8uWzBdO3JldHVybiByP2EuY3JlYXRlRWxlbWVudChhLkZyYWdtZW50LG51bGwsbi5yZW5kZXJOb2RlKHIpKTpudWxsfWZ1bmN0aW9uIEtvKGUpe2NvbnN0e25vZGU6dH09ZSxuPSgwLGEudXNlQ29udGV4dCkocW8uQVNUUmVuZGVyZXJDb250ZXh0KTtyZXR1cm4gYS5jcmVhdGVFbGVtZW50KGEuRnJhZ21lbnQsbnVsbCxuLnJlbmRlckNoaWxkcmVuKHQpKX12YXIgam89big1Mjk5NDgpLCRvPW4oNjM0NTc0KTtmdW5jdGlvbiBabyhlKXtjb25zdCB0PWUuZGF0YS5xdW90ZXNbImRhaWx5LXN1bW1hcnktYXN0Il0scj0oMCxhLnVzZU1lbW8pKCgoKT0+dD9KU09OLnBhcnNlKHQpOm51bGwpLFt0XSk7cmV0dXJuIHI/YS5jcmVhdGVFbGVtZW50KHhuLHtjbGFzc05hbWU6JG8uYmxvY2ssdGl0bGVDbGFzc05hbWU6JG8udGl0bGUsc3RhcnRJY29uOmpvLHRpdGxlOndlLnQobnVsbCx7Y29udGV4dDoiZGV0YWlsc19uZXdzIn0sbig0MTI2OTEpKSxmb290ZXJMYWJlbDp3ZS50KG51bGwse2NvbnRleHQ6ImRldGFpbHNfbmV3cyJ9LG4oNTg3MTcyKSksb25DbGljazplLm9uQ2xpY2ssImRhdGEtcWEtaWQiOiJkZXRhaWxzLW5ld3MifSxhLmNyZWF0ZUVsZW1lbnQoSG8uQVNUVHJlZSx7Y2xhc3NOYW1lOiRvLmFzdCxyb290Tm9kZTpyLHJlbmRlcmVyczpHb30pKTpudWxsfWZ1bmN0aW9uIFhvKGUpe2NvbnN0e2FjdGlvbjp0LG9uQ2xpY2s6bn09ZSxyPSgwLE5lLnVzZUVuc3VyZWRDb250ZXh0KShNdC5EZXRhaWxzQ29udGV4dCk7cmV0dXJuIHQ/YS5jcmVhdGVFbGVtZW50KEosey4uLmUsb25DbGljazooKT0+e24/LigpLHIuY2xvc2VEaWFsb2c/LigpLHQuZXhlY3V0ZSgpfX0pOm51bGx9dmFyIFFvPW4oMjg0NTgpLEpvPW4oMzQ4Mzg4KSxlaT1uKDg5MDc5NyksdGk9big0ODgyMTYpO2NvbnN0IG5pPXsiLS1kZXRhaWxzLWNoYXJ0LXRvb2x0aXAtYXJyb3ctaGVpZ2h0IjoiNHB4In07ZnVuY3Rpb24gYWkoZSl7Y29uc3R7Y2xhc3NOYW1lOnQsZGF0YTpyfT1lLHtxdW90ZXM6byxhZ2dyZWdhdGVkOml9PXIsbD0oMCxhLnVzZU1lbW8pKCgoKT0+KG5ldyBEYXRlKS5nZXRVVENGdWxsWWVhcigpKSxbXSksYz0oMCxhLnVzZU1lbW8pKCgoKT0+e2lmKG8uZmlyc3RfYmFyX3RpbWVfMWQpe3JldHVybiBuZXcgRGF0ZSgxZTMqby5maXJzdF9iYXJfdGltZV8xZCkuZ2V0VVRDRnVsbFllYXIoKX1yZXR1cm4gbC01fSksW28uZmlyc3RfYmFyX3RpbWVfMWRdKSx7Y2hhcnRSZWY6dSxnZXRNaW5pQ2hhcnQ6ZCxjaGFydFZlcnNpb246bX09KDAsSm8udXNlU2Vhc29uYWxzQ2hhcnQpKHtwcm9OYW1lOigwLHMuZW5zdXJlRGVmaW5lZCkoby5wcm9fbmFtZSksaXNDaGFydFZpc2libGU6ITAsZ2V0TWluSGVpZ2h0OigpPT4xNzAsY2hhcnRPcHRpb25zOnttYWluUGxvdE9wdGlvbnM6e3BlcmlvZDp7c3RhcnQ6TWF0aC5tYXgoYyxsLTIpLGVuZDpsfSxoaWRlU2VyaWVzVGl0bGVzOiEwfSxjaGFydE9wdGlvbnM6e2NoYXJ0OntyaWdodFByaWNlU2NhbGU6e3Zpc2libGU6ITF9LGNyb3NzaGFpcjp7dmVydExpbmU6e2xhYmVsVmlzaWJsZTohMH19fX19fSksW3AsZ109KDAsYS51c2VTdGF0ZSkobnVsbCksW2gsZl09KDAsYS51c2VTdGF0ZSkoImRlZmF1bHQiKSxbeSx3XT0oMCxhLnVzZVN0YXRlKShudWxsKSxbXyxOXT0oMCxhLnVzZVN0YXRlKShudWxsKTsoMCxhLnVzZUVmZmVjdCkoKCgpPT57Y29uc3QgZT1kKCk/LnNlYXNvbmFsUGxvdCgpO2lmKCFlKXJldHVybjtjb25zdCB0PSgpPT57Y29uc3QgdD1lLmdldFllYXJEYXRhQnlZZWFyKCksbj1BcnJheS5mcm9tKHQudmFsdWVzKCkpLm1hcCgoZT0+KHtuYW1lOmUueWVhci50b1N0cmluZygpLGNvbG9yOmUuY29sb3IsY291bnQ6ZS55ZWFyLHByaW9yaXR5Vmlld0luZGV4Oi1lLnllYXJ9KSkpO04obil9CjtyZXR1cm4gZS5zZXJpZXMoKS5zdWJzY3JpYmVEYXRhQ2hhbmdlZCh0KSwoKT0+e2Uuc2VyaWVzKCkudW5zdWJzY3JpYmVEYXRhQ2hhbmdlZCh0KX19KSxbbV0pLCgwLGEudXNlRWZmZWN0KSgoKCk9Pntjb25zdCBlPSgpPT57dyhudWxsKX07cmV0dXJuIEUuZ2xvYmFsQ2xvc2VEZWxlZ2F0ZS5zdWJzY3JpYmUobnVsbCxlKSwoKT0+e0UuZ2xvYmFsQ2xvc2VEZWxlZ2F0ZS51bnN1YnNjcmliZShudWxsLGUpfX0pLFtdKSwoMCxhLnVzZUVmZmVjdCkoKCgpPT57Y29uc3QgZT1kKCk7aWYoIWUpcmV0dXJuO2NvbnN0IHQ9dS5jdXJyZW50O2Z1bmN0aW9uIG4obil7aWYoIWUpcmV0dXJuO2NvbnN0e3Nlcmllc0RhdGE6YX09bjtpZighYXx8IXQpcmV0dXJuIHZvaWQgdyhudWxsKTtjb25zdCByPWUud2lkZ2V0KCkucHJpY2VTY2FsZSgicmlnaHQiKS5vcHRpb25zKCkubW9kZT09PXYuUHJpY2VTY2FsZU1vZGUuUGVyY2VudGFnZSxvPWUuc2Vhc29uYWxQbG90KCksbD0odm9pZCAwPT09bi5sb2dpY2FsP1tdOm8uZ2V0TGVnZW5kRGF0YShuLmxvZ2ljYWwpKS5maWx0ZXIoKGU9PnZvaWQgMCE9PWUudGl0bGUpKS5tYXAoKGU9Pih7Y29sb3I6ZS5jb2xvcix0aXRsZTplLnRpdGxlLHZhbHVlOmUudmFsdWUsdW5pdDpyPyIiOmkuY3VycmVuY3l9KSkpLHM9YS5nZXQoZS5tYWluUGxvdCgpLnNlcmllcygpKTtpZighcz8udGltZXx8IWx8fCFsLmxlbmd0aClyZXR1cm4gdm9pZCB3KG51bGwpO2NvbnN0IGM9ZS53aWRnZXQoKS50aW1lU2NhbGUoKS50aW1lVG9Db29yZGluYXRlKHMudGltZSk7aWYobnVsbD09PWMpcmV0dXJuIHZvaWQgdyhudWxsKTtjb25zdHt4OnUseTpkLGhlaWdodDptfT10LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLHA9YHRyYW5zbGF0ZSgke3UrY31weCwgJHsiZGVmYXVsdCI9PT1oP2BjYWxjKCR7ZC00fXB4IC0gMTAwJSlgOmAke2QrbSs0fXB4YH0pYDtnKHsuLi5uaSx0cmFuc2Zvcm06cCxXZWJraXRUcmFuc2Zvcm06cH0pLHcobCl9cmV0dXJuIGUud2lkZ2V0KCkuc3Vic2NyaWJlQ3Jvc3NoYWlyTW92ZShuKSwoKT0+e2Uud2lkZ2V0KCkudW5zdWJzY3JpYmVDcm9zc2hhaXJNb3ZlKG4pfX0pLFtkLGgsaS5jdXJyZW5jeV0pO2NvbnN0IFM9KDAsUW8udXNlSW50ZXJzZWN0aW9uT2JzZXJ2ZXIpKChlPT57Y29uc3QgdD1lLnBvcCgpO2YodD8uaXNJbnRlcnNlY3Rpbmc/ImRlZmF1bHQiOiJyZXZlcnNlIil9KSk7cmV0dXJuIGEuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOnQsImRhdGEtcWEtaWQiOiJkZXRhaWxzLWVsZW1lbnQgc2Vhc29uYWxzIn0sYS5jcmVhdGVFbGVtZW50KHguV2lkZ2V0VGl0bGUse2NsYXNzTmFtZTp0aS50aXRsZX0sd2UudChudWxsLHZvaWQgMCxuKDE1MjM3NykpKSxhLmNyZWF0ZUVsZW1lbnQoImRpdiIse3JlZjpTfSksYS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6dGkuY2hhcnQscmVmOnV9KSxfJiZhLmNyZWF0ZUVsZW1lbnQoZWkuTGVnZW5kLHtpdGVtczpffSkseSYmcCYmYS5jcmVhdGVFbGVtZW50KGIuUG9ydGFsLG51bGwsYS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6dGkudG9vbHRpcFdyYXAsc3R5bGU6cH0sYS5jcmVhdGVFbGVtZW50KEMuVG9vbHRpcEJvZHkse3Rvb2x0aXBWYWx1ZXM6eSxyZXZlcnNlOiJyZXZlcnNlIj09PWh9KSkpKX12YXIgcmk9bigyNTg0OSksb2k9big0OTUxMCk7ZnVuY3Rpb24gaWkoZSl7Y29uc3R7Y2xhc3NOYW1lOnQsZGF0YTpyfT1lLG89KDAscy5lbnN1cmVEZWZpbmVkKShyLmFnZ3JlZ2F0ZWQuc3RvY2tzX3JlbGF0ZWRfYm9uZHNfZGF0YSksaT0oMCxhLnVzZU1lbW8pKCgoKT0+bmV3IGplLlBlcmNlbnRhZ2VGb3JtYXR0ZXIoe3ByaWNlU2NhbGU6MTAwfSkpLFtdKSxsPSgwLGEudXNlTWVtbykoKCgpPT5vLm1hcCgoZT0+KHt0aXRsZTooMCxHZS5mb3JtYXRUaW1lKSgoMCxvbi5nZXREYXRlRnJvbVlZWVlNTUREKShlLm1hdHVyaXR5X2RhdGUpLmdldFRpbWUoKSwoMCxwLmdldExvY2FsZUlzbykoKSwieWVhciIsImRheSIpLGRhdGE6aS5mb3JtYXQoZS55aWVsZF90b19tYXR1cml0eSl9KSkpKSxbbyxpXSk7cmV0dXJuIGEuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOnQsImRhdGEtcWEtaWQiOiJkZXRhaWxzLWVsZW1lbnQgaGlnaGVzdC15dG0tYm9uZHMifSxhLmNyZWF0ZUVsZW1lbnQoeC5XaWRnZXRUaXRsZSxudWxsLHdlLnQobnVsbCx2b2lkIDAsbig0NTU0ODUpKSksYS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6b2kuaXRlbXN9LGwubWFwKCgoZSx0KT0+YS5jcmVhdGVFbGVtZW50KGRuLkRldGFpbHNLZXlWYWx1ZUl0ZW0sey4uLmUsa2V5OnR9KSkpKSl9dmFyIGxpPW4oNjA3Njc0KTtmdW5jdGlvbiBzaShlKXtjb25zdHtjbGFzc05hbWU6dCxtZXRyaWNZdG06cix1cGRhdGVNb2RlOmksdXBkYXRlTW9kZVNlY29uZHM6bCxzeW1ib2w6cyxsYXN0UHJpY2VUaGVtZTpjLGRlZmF1bHRQcmljZUZvcm1hdHRlcjp1LG1ldHJpY3M6ZH09ZSxtPWQ/Lml0ZW1zPy55dG0se21pbm1vdmVtZW50OnAsbWlubW92ZW1lbnQyOmcscHJpY2VzY2FsZTpofT1tPz97fSx2PSgwLGEudXNlTWVtbykoKCgpPT52b2lkIDAhPT1wJiZ2b2lkIDAhPT1nJiZ2b2lkIDAhPT1oP25ldyBiZS5MYXN0Q2hhbmdlRm9ybWF0dGVyKHtwcmljZVNjYWxlOmgsbWluTW92ZTpwLG1pbk1vdmUyOmcsZnJhY3Rpb25hbDohMX0pOnUpLFt1LHAsZyxoXSk7cmV0dXJuIHZvaWQgMD09PXIubHA/bnVsbDphLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpvKCkobGkuY29udGFpbmVyLHQpLCJkYXRhLXFhLWlkIjoiZGV0YWlscy1lbGVtZW50IHl0bSJ9LGEuY3JlYXRlRWxlbWVudChEZS5QcmljZSx7Y2xhc3NTdWZmaXg6Ii0tZm9yLXl0bSIsbGFzdFByaWNlOnIubHAsY2hhbmdlOnIuY2gsY2hhbmdlUGVyY2VudDpyLmNocCxjaGFuZ2VTaWduUG9zaXRpdmU6ITAsY3VycmVuY3k6IiUiLHByaWNlRm9ybWF0dGVyOnYsbGFzdFByaWNlVGhlbWU6Yyx1cGRhdGVNb2RlOmksdXBkYXRlTW9kZVNlY29uZHM6bCxzeW1ib2w6c30pLGEuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOmxpLmxhYmVsUm93Cn0sYS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOmxpLmxhYmVsfSx3ZS50KG51bGwse2NvbnRleHQ6IlRoZSBsYWJlbCBiZWxvdyBib25kJ3MgeWllbGQgdG8gbWF0dXJpdHkgdmFsdWUifSxuKDEwODc4MykpKSkpfWZ1bmN0aW9uIGNpKGUpe2NvbnN0e2NsYXNzTmFtZTp0LGRhdGE6e3F1b3RlczpyfX09ZSxvPW5ldyBGdC5GaW5hbmNpYWxzRm9ybWF0dGVyLGk9bmV3IEludGwuRGF0ZVRpbWVGb3JtYXQoKDAscC5nZXRMb2NhbGVJc28pKCkse2RheToibnVtZXJpYyIsbW9udGg6InNob3J0Iix5ZWFyOiJudW1lcmljIn0pLGw9dm9pZCAwPT09ci5pcG9fb2ZmZXJfcHJpY2VfdXNkJiZ2b2lkIDAhPT1yLmlwb19wcmljZV9yYW5nZV91c2RfbWluJiZ2b2lkIDAhPT1yLmlwb19wcmljZV9yYW5nZV91c2RfbWF4LHM9W3ZvaWQgMCE9PXIuaXBvX29mZmVyX3ByaWNlX3VzZD97dGl0bGU6d2UudChudWxsLHtjb250ZXh0OiJpcG8tZGV0YWlscyJ9LG4oMTk1MTU1KSksZGF0YTooMCxnbi5mb3JtYXREYXRhKShvLHIuaXBvX29mZmVyX3ByaWNlX3VzZCl9Ont0aXRsZTp3ZS50KG51bGwse2NvbnRleHQ6Imlwby1kZXRhaWxzIn0sbigyMDU3MjUpKSxkYXRhOmw/YCR7KDAsZ24uZm9ybWF0RGF0YSkobyxyLmlwb19wcmljZV9yYW5nZV91c2RfbWluKX0g4oCUICR7KDAsZ24uZm9ybWF0RGF0YSkobyxyLmlwb19wcmljZV9yYW5nZV91c2RfbWF4KX1gOiLigJQifSx7dGl0bGU6d2UudChudWxsLHtjb250ZXh0OiJpcG8tZGV0YWlscyJ9LG4oMjMzMDU4KSksZGF0YTooMCxnbi5mb3JtYXREYXRhKShvLHIuaXBvX29mZmVyZWRfc2hhcmVzKX0se3RpdGxlOndlLnQobnVsbCx7Y29udGV4dDoiaXBvLWRldGFpbHMifSxuKDkzNTQ3MykpLGRhdGE6KDAsZ24uZm9ybWF0RGF0YSkobyxyLmlwb19kZWFsX2Ftb3VudF91c2QpfSx7dGl0bGU6d2UudChudWxsLHtjb250ZXh0OiJpcG8tZGV0YWlscyJ9LG4oNjE5ODQ0KSksZGF0YTooci5pcG9fYW5ub3VuY2VtZW50X2RhdGUmJmkuZm9ybWF0KDFlMypyLmlwb19hbm5vdW5jZW1lbnRfZGF0ZSkpPz8i4oCUIn0se3RpdGxlOndlLnQobnVsbCx7Y29udGV4dDoiaXBvLWRldGFpbHMifSxuKDEzMDQyOCkpLGRhdGE6KHIuaXBvX29mZmVyX2RhdGUmJmkuZm9ybWF0KDFlMypyLmlwb19vZmZlcl9kYXRlKSk/PyLigJQifV07cmV0dXJuIGEuY3JlYXRlRWxlbWVudChwbix7Y2xhc3NOYW1lOnQsZGF0YVFhSWQ6ImRldGFpbHMtZWxlbWVudCBpcG8tZGV0YWlscyIsYWRkaXRpb25hbFRleHQ6d2UudChudWxsLHtyZXBsYWNlOntjdXJyZW5jeToiVVNEIn0sY29udGV4dDoiY3VycmVuY3kifSxuKDE3Nzk3NikpLHRpdGxlOndlLnQobnVsbCx7Y29udGV4dDoiaXBvLWRldGFpbHMifSxuKDE4MTc4OCkpLGl0ZW1zOnN9KX1jb25zdCB1aT17c3BvdDp3ZS50KG51bGwsdm9pZCAwLG4oMjgzNDE2KSksc3dhcDp3ZS50KG51bGwsdm9pZCAwLG4oNDE3NzczKSksZnV0dXJlczp3ZS50KG51bGwsdm9pZCAwLG4oOTQzOTAzKSksaW5kZXg6d2UudChudWxsLHZvaWQgMCxuKDEyMjkwMCkpLGZ1bmRhbWVudGFsOndlLnQobnVsbCx2b2lkIDAsbig4ODMxNDIpKX07dmFyIGRpPW4oMjc3OTMxKTtjb25zdCBtaT0oMCxjLmdldExvZ2dlcikoIkRldGFpbHMiKSxwaT1bIkRlc2NyaXB0aW9uIiwiWVRNIiwiUHJpY2UiLCJNYXJrZXRTdGF0dXMiLCJCaWRBbmRBc2siLCJSYW5nZXMiLCJLZXlGYWN0cyIsIk5ld3MiLCJOb3RlcyIsIkZ1dHVyZXNDaGFydCIsIkJvbmRzQ2hhcnQiLCJFeHBlY3RlZFBubENoYXJ0IiwiSVBPSW5mbyIsIktleVN0YXRzIiwiRGV4VHJhZGluZ0FjdGl2aXR5IiwiT3B0aW9uc1ByaWNpbmdNb2RlbCIsIkJvbmRzUGx1ZyIsIkJvbmRzQ2xhc3NpZmljYXRpb24iLCJCb25kc1JlZGVtcHRpb24iLCJCb25kc0lzc3VlUmF0aW5nIiwiRWFybmluZ3MiLCJGaW5hbmNpYWxzIiwiRGl2aWRlbmRzIiwiTW9yZUZpbmFuY2lhbHMiLCJQZXJmb3JtYW5jZSIsIlNlYXNvbmFscyIsIkZ1bmRzRXhwb3N1cmUiLCJUZWNobmljYWxzIiwiQW5hbHlzdFJlY29tbWVuZGF0aW9ucyIsIlN0b2Nrc1JlbGF0ZWRCb25kcyIsImNvbW11bml0eSIsIlByb2ZpbGUiLCJFY29ub215SW5kaWNhdG9ycyIsIk9wdGlvbnMiXSxnaT1uZXcgU2V0KFsiQmlkQW5kQXNrIiwiRnV0dXJlc0NoYXJ0IiwiQm9uZHNDaGFydCIsIkZ1bmRzRXhwb3N1cmUiLCJCb25kc0NsYXNzaWZpY2F0aW9uIiwiQm9uZHNSZWRlbXB0aW9uIiwiQm9uZHNJc3N1ZVJhdGluZyIsIkV4cGVjdGVkUG5sQ2hhcnQiLCJTdG9ja3NSZWxhdGVkQm9uZHMiXSksaGk9bmV3IE1hcDtmb3IobGV0IGU9MDtlPHBpLmxlbmd0aDtlKyspaGkuc2V0KHBpW2VdLGUpO2NvbnN0IHZpPSgwLF9lLm1lcmdlVGhlbWVzKShMZS5ERUZBVUxUX1RIRU1FLHtoaWdobGlnaHQ6ZGkuaGlnaGxpZ2h0LGdyb3dpbmc6ZGkuZ3Jvd2luZyxmYWxsaW5nOmRpLmZhbGxpbmd9KSxmaT0oMCxfZS5tZXJnZVRoZW1lcykoRGUuREVGQVVMVF9USEVNRSx7cHJpY2U6ZGkuc2Vjb25kYXJ5UHJpY2VWYWx1ZSxjaGFuZ2VXcmFwOmRpLmNoYW5nZVdyYXAsaW5mbzpkaS5pbmZvLHByaWNlV3JhcHBlcjpkaS5wcmljZVdyYXBwZXJ9KTtmdW5jdGlvbiB5aShlKXtjb25zdHt2aXNpYmlsaXR5OnQsc2hvd1NvY2lhbFBhZ2VMaW5rczpyPSEwLHNob3dCb25kc1BsdWc6Yz0hMCxmaW5hbmNpYWxzTGluazp1LGZ1dHVyZXNDaGFydExpbms6ZCx0ZWNobmljYWxzTGluazptLGZvcmVjYXN0TGluazpwLHNlYXNvbmFsc0xpbms6ZyxzdG9ja0JvbmRzTGluazpoLG9wdGlvbnNMaW5rOnYsZGl2aWRlbmRzTGluazpmLGVhcm5pbmdzTGluazp5LGNvcnBvcmF0ZUJvbmRzTGluazp3LGV0ZkFuYWx5c2lzTGluazpfLGVjb25vbXlJbmRpY2F0b3JzTGluazpiLGJvbmRZaWVsZEN1cnZlTGluazpOLG5ld3NMaW5rOlMsY29tbXVuaXR5TGluazp4LHVzZU5vdGVzUm91dGluZzpDfT1lLFQ9KDAsRHQudXNlUHJldmlvdXNEaWZmKShlLChmdW5jdGlvbihlLHQsbil7aWYobnVsbD09PWUmJiFfZShuKSYmX2UodCkpcmV0dXJuITAKO3JldHVybiBlPy5kYXRhLnF1b3Rlcy5zeW1ib2whPT10Py5kYXRhLnF1b3Rlcy5zeW1ib2wmJnQ/LmRhdGEucXVvdGVzLnN5bWJvbCE9PW4uZGF0YS5xdW90ZXMuc3ltYm9sJiZfZSh0KX0pKSxrPWZlKCk/ZTooMCxzLmVuc3VyZU5vdE51bGwpKFQpLEQ9ay5kYXRhLHtxdW90ZXM6SSxzY3JlZW5lcjpNLGFnZ3JlZ2F0ZWQ6TH09RCxQPSgwLGEudXNlUmVmKShuZXcgTWFwKSxGPSgwLGEudXNlUmVmKShuZXcgTWFwKSxBPWJpKEQscikse2FkZGl0aW9uYWxNYWluOlIsYWRkaXRpb25hbFNlY29uZGFyeTpCfT1BLE89KDAsJG4uY29udmVydEZyZXF1ZW5jeVRvUGVyaW9kKShJLmxhc3RfcmVwb3J0X2ZyZXF1ZW5jeSksVz0iZm9yZXgiPT09SS50eXBlP0kuZXhjaGFuZ2U6SS5saXN0ZWRfZXhjaGFuZ2UsVT0hKDAsaS5pc0ZlYXR1cmVzZXRFbmFibGVkKSgid2lkZ2V0IikmJjE9PT1JLmRpdmlkZW5kc19hdmFpbGFiaWxpdHkmJiF3aShJLnR5cGUsSS50eXBlc3BlY3MpLFY9ISgwLGkuaXNGZWF0dXJlc2V0RW5hYmxlZCkoIndpZGdldCIpLHo9SS5saXN0ZWRfZXhjaGFuZ2UmJkkudHlwZSxIPUkudHlwZSYmSS50eXBlc3BlY3MmJigwLEFlLmlzRXRmKShJLnR5cGUsSS50eXBlc3BlY3MpLHE9KDAsYS51c2VSZWYpKG51bGwpLEc9KDAsTmUudXNlRW5zdXJlZENvbnRleHQpKE10LkRldGFpbHNDb250ZXh0KSxZPSgwLGEudXNlTWVtbykoKCgpPT5uZXcgYmUuTGFzdENoYW5nZUZvcm1hdHRlcih7Zm9ybWF0OkkuZm9ybWF0LHByaWNlU2NhbGU6SS5wcmljZXNjYWxlLG1pbk1vdmU6SS5taW5tb3YsbWluTW92ZTI6SS5taW5tb3ZlMixmcmFjdGlvbmFsOkkuZnJhY3Rpb25hbCx2YXJpYWJsZU1pblRpY2s6SS52YXJpYWJsZV90aWNrX3NpemV9KSksW0kucHJpY2VzY2FsZSxJLm1pbm1vdixJLmZyYWN0aW9uYWwsSS5taW5tb3ZlMixJLmZvcm1hdCxJLnZhcmlhYmxlX3RpY2tfc2l6ZV0pLEs9KDAsYS51c2VNZW1vKSgoKCk9PkwuYm9uZHM/LmZpbHRlcigoZT0+ZS50eXBlc3BlY3MuaW5jbHVkZXMoInlpZWxkIikpKSksW0kudHlwZXNwZWNzLEwuYm9uZHNdKSwkPUwuaW52YWxpZD97bm90ZXNHcm91cEtleTpJLnN5bWJvbCxzeW1ib2xGdWxsTmFtZTpJLnN5bWJvbH06KDAsZW8uZ2V0Tm90ZXNHcm91cEtleURhdGEpKHtzaG9ydF9uYW1lOkkuc2hvcnRfbmFtZSx0eXBlOkkudHlwZSxwcm9fbmFtZTpJLnByb19uYW1lLCJzeW1ib2wtcHJpbWFyeW5hbWUiOklbInN5bWJvbC1wcmltYXJ5bmFtZSJdLHR5cGVzcGVjczpJLnR5cGVzcGVjc30pLFo9ay5zeW1ib2xOb3RlcyYmJD9rLnN5bWJvbE5vdGVzWyQubm90ZXNHcm91cEtleV0/P251bGw6bnVsbDsoMCxhLnVzZUVmZmVjdCkoKCgpPT57dCYmKFAuY3VycmVudC5mb3JFYWNoKCgoZSx0KT0+e21pLmxvZ0RlYnVnKGAke3R9IHJlbmRlciByZWFzb246ICR7ZX1gKX0pKSxGLmN1cnJlbnQuZm9yRWFjaCgoKGUsdCk9PnttaS5sb2dEZWJ1ZyhgJHt0fSB3ZXJlIGJsb2NrZWQgYnkgJHtKU09OLnN0cmluZ2lmeShBcnJheS5mcm9tKGUpKX1gKX0pKSl9KSxbdF0pLCgwLGEudXNlRWZmZWN0KSgoKCk9PntQLmN1cnJlbnQ9bmV3IE1hcCxGLmN1cnJlbnQ9bmV3IE1hcH0pLFtJLnN5bWJvbF0pO2NvbnN0IFg9KDAsUGUudXNlQ2hhbmdlVXNlclN0YXRlKSh7aXNBdXRoZW50aWNhdGVkOndpbmRvdy5pc19hdXRoZW50aWNhdGVkLGlzUHJvOkJvb2xlYW4od2luZG93LnVzZXIuaXNfcHJvKX0pLHtzZWFzb25hbHNBY3Rpb246UT1udWxsLGZvcmVjYXN0QWN0aW9uOmVlPW51bGwsYW5hbHlzaXNBY3Rpb246dGU9bnVsbCxvcHRpb25zQWN0aW9uOm5lPW51bGwsZWNvbm9teUluZGljYXRvcnNBY3Rpb246YWU9bnVsbCxzdG9ja0JvbmRzQWN0aW9uOnJlPW51bGwsY29tbXVuaXR5QWN0aW9uOm9lPW51bGwsbmV3c0FjdGlvbjppZT1udWxsfT0oMCxyaS51c2VEaWFsb2dBY3Rpb25zKSh7c2Vhc29uYWxzTGluazpnLGZvcmVjYXN0TGluazpwLG9wdGlvbnNMaW5rOnYsZWNvbm9teUluZGljYXRvcnNMaW5rOmIsc3RvY2tCb25kc0xpbms6aCxjb21tdW5pdHlMaW5rOngsY29tbXVuaXR5T3ZlcnZpZXdPcHRpb25zOntpbml0aWFsU2VsZWN0ZWRUYWI6Im1pbmRzIn0sbmV3c0xpbms6U30pLGxlPXRlPy5pc0Rpc2FibGVkKCk/PyEwLHNlPWVlPy5pc0Rpc2FibGVkKCk/PyEwLGNlPVE/LmlzRGlzYWJsZWQoKT8/ITAsZGU9bmU/LmlzRGlzYWJsZWQoKT8/ITAsbWU9YWU/LmlzRGlzYWJsZWQoKT8/ITAscGU9cmU/LmlzRGlzYWJsZWQoKT8/ITAsZ2U9b2U/LmlzRGlzYWJsZWQoKT8/ITA7cmV0dXJuIGEuY3JlYXRlRWxlbWVudChJZS5PdmVybGF5U2Nyb2xsV3JhcHBlcix7Y2xhc3NOYW1lOm8oKShrLmNsYXNzTmFtZSwhZmUoKSYmZGkub3BhY2l0eSksb25Db250ZXh0TWVudTprZS5wcmV2ZW50RGVmYXVsdEZvckNvbnRleHRNZW51LG9uU2Nyb2xsQ2FwdHVyZTpmdW5jdGlvbihlKXtxLmN1cnJlbnQ/LmNvbnRhaW5zKGUudGFyZ2V0KSYmRS5nbG9iYWxDbG9zZURlbGVnYXRlLmZpcmUoKX0sc2Nyb2xsQ29udGFpbmVyUmVmOnF9LCghZmUoKXx8KF9pKCJEZXNjcmlwdGlvbiIsayl8fHQpKSYmYS5jcmVhdGVFbGVtZW50KE1lLkVycm9yQm91bmRhcnkse29uRXJyb3I6ZT0+U2koIkRlc2NyaXB0aW9uIixlKX0sYS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6bygpKGRpLndpZGdldFdyYXBwZXIsay5kZXNjcmlwdGlvbkNsYXNzTmFtZSl9LGEuY3JlYXRlRWxlbWVudCh2dCx7ZGF0YTpELGludmFsaWREZXNjcmlwdGlvbjp3ZS50KG51bGwsdm9pZCAwLG4oNzMyNzc2KSksZXhjaGFuZ2U6SS5zb3VyY2UyJiYiZWNvbm9taWMiPT09SS50eXBlP0kuc291cmNlMi5kZXNjcmlwdGlvbjooMCxUZS5yZWRlZmluZUV4Y2hhbmdlTmFtZSkoVyksc3ltYm9sUGFnZVBhdGg6ciYmKEkucHJvX25hbWV8fEkuc2hvcnRfbmFtZSk/ZnVuY3Rpb24oKXtpZihJLnN5bWJvbD8uc3RhcnRzV2l0aCgiU1BBUktTOiIpKXJldHVybmAvaWRlYXMvc2VhcmNoLz9xdWVyeT0ke0kuc3ltYm9sfWA7cmV0dXJuKDAsRmUuZ2V0U3ltYm9sUGFnZVBhdGgpKHtleGNoYW5nZTpXLHByb05hbWU6SS5wcm9fbmFtZSwKc2hvcnROYW1lOkkuc2hvcnRfbmFtZSx0eXBlOkkudHlwZSx0eXBlc3BlY3M6SS50eXBlc3BlY3Mscm9vdDpJLnJvb3R9KX0oKTp2b2lkIDAsYWRkaXRpb25hbE1haW46UixhZGRpdGlvbmFsU2Vjb25kYXJ5OkJ9KSkpLFNlKCJZVE0iKSYmSS5tZXRyaWNfeXRtJiZhLmNyZWF0ZUVsZW1lbnQoTWUuRXJyb3JCb3VuZGFyeSx7b25FcnJvcjplPT5TaSgiWVRNIixlKX0sYS5jcmVhdGVFbGVtZW50KHNpLHtjbGFzc05hbWU6bygpKGRpLndpZGdldFdyYXBwZXIsZGkudXNlclNlbGVjdFRleHQpLGxhc3RQcmljZVRoZW1lOnZpLG1ldHJpY1l0bTpJLm1ldHJpY195dG0sbWV0cmljczpJLm1ldHJpY3Msc3ltYm9sOkkuc3ltYm9sLGRlZmF1bHRQcmljZUZvcm1hdHRlcjpZfSkpLFNlKCJQcmljZSIpJiZhLmNyZWF0ZUVsZW1lbnQoTWUuRXJyb3JCb3VuZGFyeSx7b25FcnJvcjplPT5TaSgiUHJpY2UiLGUpfSxhLmNyZWF0ZUVsZW1lbnQoRGUuUHJpY2Use2NsYXNzTmFtZTpvKCkoZGkud2lkZ2V0V3JhcHBlcixkaS51c2VyU2VsZWN0VGV4dCwoSS5jdXJyZW50X3Nlc3Npb258fCJlY29ub21pYyI9PT1JLnR5cGUmJkkubGFzdF9yZWxlYXNlX2RhdGUpJiZkaS5vZmZzZXREaXNhYmxlZCksdXBkYXRlTW9kZTpJLnVwZGF0ZV9tb2RlLGNsYXNzU3VmZml4OiItLWZvci1kZXRhaWxzIix1cGRhdGVNb2RlU2Vjb25kczpJLnVwZGF0ZV9tb2RlX3NlY29uZHMsc3ltYm9sOkkuc3ltYm9sLHByaWNlRm9ybWF0dGVyOlksbGFzdFByaWNlOkkubGFzdF9wcmljZSxjaGFuZ2U6SS5jaGFuZ2UsY2hhbmdlUGVyY2VudDpJLmNoYW5nZV9wZXJjZW50LGN1cnJlbmN5OkwuY3VycmVuY3ksdHlwZTpJLnR5cGUsZnJhY3Rpb25hbDpJLmZyYWN0aW9uYWwsY2hhbmdlU2lnblBvc2l0aXZlOiEwLGxhc3RQcmljZVRoZW1lOnZpLHRoZW1lOl9pKCJZVE0iLGspP2ZpOnZvaWQgMCwiZGF0YS1xYS1pZCI6ImRldGFpbHMtZWxlbWVudCBwcmljZSJ9KSksU2UoIk1hcmtldFN0YXR1cyIpJiZhLmNyZWF0ZUVsZW1lbnQoTWUuRXJyb3JCb3VuZGFyeSx7b25FcnJvcjplPT5TaSgiTWFya2V0U3RhdHVzIixlKX0sYS5jcmVhdGVFbGVtZW50KGF0LHtjbGFzc05hbWU6ZGkud2lkZ2V0V3JhcHBlcixwcmljZUZvcm1hdHRlcjpZLGlzRWNvbm9taWM6ImVjb25vbWljIj09PUkudHlwZSxkYXRhOkR9KSksU2UoIkJpZEFuZEFzayIpJiZhLmNyZWF0ZUVsZW1lbnQoTWUuRXJyb3JCb3VuZGFyeSx7b25FcnJvcjplPT5TaSgiQmlkQW5kQXNrIixlKX0sYS5jcmVhdGVFbGVtZW50KF90LHtjbGFzc05hbWU6ZGkud2lkZ2V0V3JhcHBlcixkYXRhOkQscHJpY2VGb3JtYXR0ZXI6WX0pKSxTZSgiUmFuZ2VzIikmJmEuY3JlYXRlRWxlbWVudChNZS5FcnJvckJvdW5kYXJ5LHtvbkVycm9yOmU9PlNpKCJSYW5nZXMiLGUpfSxhLmNyZWF0ZUVsZW1lbnQoQ3Qse2NsYXNzTmFtZTpkaS53aWRnZXRXcmFwcGVyLGRhdGE6RCxwcmljZUZvcm1hdHRlcjpZfSkpLCEoMCxpLmlzRmVhdHVyZXNldEVuYWJsZWQpKCJ3aWRnZXQiKSYmU2UoIktleUZhY3RzIikmJmEuY3JlYXRlRWxlbWVudChNZS5FcnJvckJvdW5kYXJ5LHtvbkVycm9yOmU9PlNpKCJLZXlGYWN0cyIsZSl9LGEuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOmRpLndpZGdldFdyYXBwZXJ9LGEuY3JlYXRlRWxlbWVudChabyx7ZGF0YTpELG9uQ2xpY2s6dmV9KSkpLFNlKCJOZXdzIikmJmsubmV3c1ByZXZpZXcmJmEuY3JlYXRlRWxlbWVudChNZS5FcnJvckJvdW5kYXJ5LHtvbkVycm9yOmU9PlNpKCJOZXdzIixlKX0sYS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6ZGkud2lkZ2V0V3JhcHBlcn0sYS5jcmVhdGVFbGVtZW50KEpyLHtuZXdzUHJldmlldzprLm5ld3NQcmV2aWV3LG9uQ2xpY2s6dmV9KSkpLCEoMCxpLmlzRmVhdHVyZXNldEVuYWJsZWQpKCJ3aWRnZXQiKSYmU2UoIk5vdGVzIikmJmEuY3JlYXRlRWxlbWVudChNZS5FcnJvckJvdW5kYXJ5LHtvbkVycm9yOmU9PlNpKCJOb3RlcyIsZSl9LGEuY3JlYXRlRWxlbWVudChGbix7ZGF0YTpELGNsYXNzTmFtZTpkaS53aWRnZXRXcmFwcGVyLHVzZU5vdGVzUm91dGluZzpDLG5vdGVHcm91cDpaLG9uQ2xpY2s6ZnVuY3Rpb24oZSl7aWYoQylyZXR1cm47aWYobnVsbD09PWUpcmV0dXJuIHZvaWQgd2luZG93LnJ1bk9yU2lnbkluKCgoKT0+eygwLHNvLmNyZWF0ZVN5bWJvbE5vdGUpKEwuaW52YWxpZD9JLnN5bWJvbDpJLnByb19uYW1lLGsuaXNEaWFsb2cpfSkse3NvdXJjZToiQWRkIHRleHQgbm90ZSBpbiBkZXRhaWxzIn0pOygwLHNvLnNob3dTeW1ib2xOb3RlcykoZS5zeW1ib2w/P2UubmFtZSxrLmlzRGlhbG9nKX0saXNEaWFsb2c6ay5pc0RpYWxvZ30pKSxhLmNyZWF0ZUVsZW1lbnQoYS5GcmFnbWVudCxudWxsLGEuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOmRpLnNlcGFyYXRvcn0pLFNlKCJGdXR1cmVzQ2hhcnQiKSYmTC5mdXR1cmVzJiZhLmNyZWF0ZUVsZW1lbnQoTWUuRXJyb3JCb3VuZGFyeSx7b25FcnJvcjplPT5TaSgiRnV0dXJlc0NoYXJ0IixlKX0sYS5jcmVhdGVFbGVtZW50KGJhLHtjbGFzc05hbWU6ZGkud2lkZ2V0V3JhcHBlcixkYXRhOkR9KSxhLmNyZWF0ZUVsZW1lbnQoSix7b25DbGljazpmdW5jdGlvbigpe2lmKGQpcmV0dXJuIHZvaWQgd2luZG93LmxvY2F0aW9uLmFzc2lnbihkKTtFZSgiRm9yd2FyZCBjdXJ2ZSIpLEcuY2xvc2VEaWFsb2c/LigpLCgwLEhlLnNob3dGb3J3YXJkQ3VydmVEaWFsb2cpKHtzeW1ib2w6SS5zeW1ib2x9KX0sImRhdGEtbmFtZSI6ImRldGFpbHMtZnV0dXJlcy1jaGFydC1idXR0b24ifSx3ZS50KG51bGwse2NvbnRleHQ6ImRldGFpbHNfbW9yZV9pbmZvX2J1dHRvbiJ9LG4oOTY5MTEzKSkpKSxTZSgiQm9uZHNDaGFydCIpJiZLJiZhLmNyZWF0ZUVsZW1lbnQoTWUuRXJyb3JCb3VuZGFyeSx7b25FcnJvcjplPT5TaSgiQm9uZHNDaGFydCIsZSl9LGEuY3JlYXRlRWxlbWVudChEYSx7Y2xhc3NOYW1lOm8oKShkaS53aWRnZXRXcmFwcGVyLGRpLmxhcmdlKSxkYXRhOkt9KSxyJiZhLmNyZWF0ZUVsZW1lbnQoSix7b25DbGljazpmdW5jdGlvbigpewppZihOKXJldHVybiB2b2lkIHdpbmRvdy5sb2NhdGlvbi5hc3NpZ24oTik7RWUoIllpZWxkIGN1cnZlIiksRy5jbG9zZURpYWxvZz8uKCksKDAsV2Uuc2hvd0JvbmRZaWVsZEN1cnZlRGlhbG9nKSh7c3ltYm9sOkkuc3ltYm9sfSl9LCJkYXRhLW5hbWUiOiJkZXRhaWxzLWJvbmQteWllbGQtY3VydmUtYnV0dG9uIn0sd2UudChudWxsLHZvaWQgMCxuKDU5MDE0OCkpKSksYS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6ZGkuc2VwYXJhdG9yfSksISgwLGkuaXNGZWF0dXJlc2V0RW5hYmxlZCkoIndpZGdldCIpJiZTZSgiRXhwZWN0ZWRQbmxDaGFydCIpJiZ2b2lkIDAhPT1JLmxhc3RfcHJpY2UmJmEuY3JlYXRlRWxlbWVudChNZS5FcnJvckJvdW5kYXJ5LHtvbkVycm9yOmU9PlNpKCJFeHBlY3RlZFBubENoYXJ0IixlKX0sYS5jcmVhdGVFbGVtZW50KHVlLHtjbGFzc05hbWU6ZGkud2lkZ2V0V3JhcHBlcixkYXRhOkQsc2hvd01vcmVCdG46cn0pKSxhLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpkaS5zZXBhcmF0b3J9KSxTZSgiSVBPSW5mbyIpJiZhLmNyZWF0ZUVsZW1lbnQoTWUuRXJyb3JCb3VuZGFyeSx7b25FcnJvcjplPT5TaSgiSVBPSW5mbyIsZSl9LGEuY3JlYXRlRWxlbWVudChjaSx7Y2xhc3NOYW1lOmRpLndpZGdldFdyYXBwZXIsZGF0YTpEfSkpLGEuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOmRpLnNlcGFyYXRvcn0pLFNlKCJLZXlTdGF0cyIpJiZhLmNyZWF0ZUVsZW1lbnQoTWUuRXJyb3JCb3VuZGFyeSx7b25FcnJvcjplPT5TaSgiS2V5U3RhdHMiLGUpfSxhLmNyZWF0ZUVsZW1lbnQod24se2NsYXNzTmFtZTpkaS53aWRnZXRXcmFwcGVyLGRhdGE6RH0pKSxhLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpkaS5zZXBhcmF0b3J9KSxTZSgiRGV4VHJhZGluZ0FjdGl2aXR5IikmJmEuY3JlYXRlRWxlbWVudChNZS5FcnJvckJvdW5kYXJ5LHtvbkVycm9yOmU9PlNpKCJEZXhUcmFkaW5nQWN0aXZpdHkiLGUpfSxhLmNyZWF0ZUVsZW1lbnQoWXQse2NsYXNzTmFtZTpkaS53aWRnZXRXcmFwcGVyLGRhdGE6RH0pKSxTZSgiT3B0aW9uc1ByaWNpbmdNb2RlbCIpJiZhLmNyZWF0ZUVsZW1lbnQoTWUuRXJyb3JCb3VuZGFyeSx7b25FcnJvcjplPT5TaSgiT3B0aW9uc1ByaWNpbmdNb2RlbCIsZSl9LGEuY3JlYXRlRWxlbWVudChuYSx7Y2xhc3NOYW1lOmRpLndpZGdldFdyYXBwZXIsZGF0YTpEfSkpLGEuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOmRpLnNlcGFyYXRvcn0pLGMmJlNlKCJCb25kc1BsdWciKSYmYS5jcmVhdGVFbGVtZW50KE1lLkVycm9yQm91bmRhcnkse29uRXJyb3I6ZT0+U2koIkJvbmRzUGx1ZyIsZSl9LGEuY3JlYXRlRWxlbWVudChnbyx7Y2xhc3NOYW1lOmRpLndpZGdldFdyYXBwZXJ9KSksU2UoIkJvbmRzQ2xhc3NpZmljYXRpb24iKSYmYS5jcmVhdGVFbGVtZW50KE1lLkVycm9yQm91bmRhcnkse29uRXJyb3I6ZT0+U2koIkJvbmRzQ2xhc3NpZmljYXRpb24iLGUpfSxhLmNyZWF0ZUVsZW1lbnQoTW8se2NsYXNzTmFtZTpkaS53aWRnZXRXcmFwcGVyLGRhdGE6RH0pKSxhLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpkaS5zZXBhcmF0b3J9KSxTZSgiQm9uZHNSZWRlbXB0aW9uIikmJmEuY3JlYXRlRWxlbWVudChNZS5FcnJvckJvdW5kYXJ5LHtvbkVycm9yOmU9PlNpKCJCb25kc1JlZGVtcHRpb24iLGUpfSxhLmNyZWF0ZUVsZW1lbnQoUm8se2NsYXNzTmFtZTpkaS53aWRnZXRXcmFwcGVyLGRhdGE6RH0pKSxhLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpkaS5zZXBhcmF0b3J9KSxTZSgiQm9uZHNJc3N1ZVJhdGluZyIpJiZhLmNyZWF0ZUVsZW1lbnQoTWUuRXJyb3JCb3VuZGFyeSx7b25FcnJvcjplPT5TaSgiQm9uZHNJc3N1ZVJhdGluZyIsZSl9LGEuY3JlYXRlRWxlbWVudCh6byx7Y2xhc3NOYW1lOmRpLndpZGdldFdyYXBwZXIsZGF0YTpEfSkpLChTZSgiQm9uZHNDbGFzc2lmaWNhdGlvbiIpfHxTZSgiQm9uZHNSZWRlbXB0aW9uIil8fFNlKCJCb25kc0lzc3VlUmF0aW5nIikpJiYhbGUmJmEuY3JlYXRlRWxlbWVudChKLHtvbkNsaWNrOmZ1bmN0aW9uKCl7aWYodylyZXR1cm4gdm9pZCB3aW5kb3cubG9jYXRpb24uYXNzaWduKHcpO0cuY2xvc2VEaWFsb2c/LigpLHRlJiYoRWUoIlByb2ZpbGUiKSx0ZS5leGVjdXRlKCkpfSwiZGF0YS1uYW1lIjoiZGV0YWlscy1tb3JlLWNvcnBvcmF0ZS1ib25kcy1pbmZvIn0sd2UudChudWxsLHZvaWQgMCxuKDg5NzQ1NSkpKSxhLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpkaS5zZXBhcmF0b3J9KSxTZSgiRWFybmluZ3MiKSYmYS5jcmVhdGVFbGVtZW50KE1lLkVycm9yQm91bmRhcnkse29uRXJyb3I6ZT0+U2koIkVhcm5pbmdzIixlKX0sYS5jcmVhdGVFbGVtZW50KEJlLkluY29tZSx7Y2xhc3NOYW1lOmRpLndpZGdldFdyYXBwZXIsZGF0YTpJLGluaXRpYWxQZXJpb2Q6TyxzZWxlY3RlZFNldDooMCxPZS5FQVJOSU5HU19TRVQpKCEwKSxyZXBvcnRGcmVxdWVuY3k6TyxhZGFwdGl2ZVRvb2x0aXBQb3NpdGlvbjohMH0pLFYmJmEuY3JlYXRlRWxlbWVudChKLHtvbkNsaWNrOmZ1bmN0aW9uKCl7aWYoeSlyZXR1cm4gdm9pZCB3aW5kb3cubG9jYXRpb24uYXNzaWduKHkpO0VlKCJGaW5hbmNpYWxzIiksRy5jbG9zZURpYWxvZz8uKCksKDAsaGUuc2hvd0ZpbmFuY2lhbHNEaWFsb2cpKHtpbml0aWFsVGFiSWQ6ImVhcm5pbmdzIixzeW1ib2w6SS5zeW1ib2x9KX0sImRhdGEtbmFtZSI6ImRldGFpbHMtbW9yZS1lYXJuaW5ncy1idXR0b24ifSx3ZS50KG51bGwsdm9pZCAwLG4oNTkwMTQ4KSkpKSxhLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpkaS5zZXBhcmF0b3J9KSxTZSgiRGl2aWRlbmRzIikmJmEuY3JlYXRlRWxlbWVudChNZS5FcnJvckJvdW5kYXJ5LHtvbkVycm9yOmU9PlNpKCJEaXZpZGVuZHMiLGUpfSxhLmNyZWF0ZUVsZW1lbnQod28se2NsYXNzTmFtZTpkaS53aWRnZXRXcmFwcGVyLGRhdGE6RH0pLFUmJmEuY3JlYXRlRWxlbWVudChKLHtvbkNsaWNrOmZ1bmN0aW9uKCl7aWYoZilyZXR1cm4gdm9pZCB3aW5kb3cubG9jYXRpb24uYXNzaWduKGYpCjtFZSgiRmluYW5jaWFscyIpLEcuY2xvc2VEaWFsb2c/LigpLCgwLGhlLnNob3dGaW5hbmNpYWxzRGlhbG9nKSh7aW5pdGlhbFRhYklkOiJkaXZpZGVuZHMiLHN5bWJvbDpJLnN5bWJvbH0pfSwiZGF0YS1xYS1pZCI6ImRldGFpbHMtZWxlbWVudCBtb3JlLWRpdmlkZW5kcy1idXR0b24ifSx3ZS50KG51bGwsdm9pZCAwLG4oNTkwMTQ4KSkpKSxhLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpkaS5zZXBhcmF0b3J9KSxTZSgiRmluYW5jaWFscyIpJiZMLmZpbmFuY2lhbHNEYXRhJiZhLmNyZWF0ZUVsZW1lbnQoTWUuRXJyb3JCb3VuZGFyeSx7b25FcnJvcjplPT5TaSgiRmluYW5jaWFscyIsZSl9LGEuY3JlYXRlRWxlbWVudChKbix7Y2xhc3NOYW1lOm8oKShkaS53aWRnZXRXcmFwcGVyLF9pKCJNb3JlRmluYW5jaWFscyIsaykmJmRpLmxhcmdlKSxkYXRhOkQscmVwb3J0RnJlcXVlbmN5Ok99KSksU2UoIk1vcmVGaW5hbmNpYWxzIikmJmEuY3JlYXRlRWxlbWVudChNZS5FcnJvckJvdW5kYXJ5LHtvbkVycm9yOmU9PlNpKCJNb3JlRmluYW5jaWFscyIsZSl9LGEuY3JlYXRlRWxlbWVudChKLHtvbkNsaWNrOmZ1bmN0aW9uKCl7aWYodSlyZXR1cm4gdm9pZCB3aW5kb3cubG9jYXRpb24uYXNzaWduKHUpO0VlKCJGaW5hbmNpYWxzIiksRy5jbG9zZURpYWxvZz8uKCksKDAsaGUuc2hvd0ZpbmFuY2lhbHNEaWFsb2cpKHtzeW1ib2w6SS5zeW1ib2x9KSwiRGlhbG9nIj09PWUuc291cmNlPygwLGwudHJhY2tFdmVudCkoIkNvbnRleHRNZW51Q2xpY2siLCJNb2JpbGUiLCJGaW5hbmNpYWxzIERldGFpbHMiKToiUmlnaHRUb29sYmFyIj09PWUuc291cmNlJiYoMCxsLnRyYWNrRXZlbnQpKCJHVUkiLCJGaW5hbmNpYWxzIix3aW5kb3cuVHJhZGluZ1ZpZXcub25DaGFydFBhZ2U/IkRldGFpbHMgQ2hhcnQiOiJEZXRhaWxzIEhvbWUiKTsoMCxVZS5nZXRUcmFja2VyKSgpLnRoZW4oKGU9PntudWxsIT09ZSYmSS5wcm9fbmFtZSYmZS50cmFja0ZpbmFuY2lhbHNEaWFsb2coSS5wcm9fbmFtZSwiZGV0YWlscyIpfSkpfSwiZGF0YS1xYS1pZCI6ImRldGFpbHMtZWxlbWVudCBtb3JlLWZpbmFuY2lhbHMtYnV0dG9uIn0sd2UudChudWxsLHZvaWQgMCxuKDUyOTEwMikpKSksYS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6ZGkuc2VwYXJhdG9yfSksU2UoIlBlcmZvcm1hbmNlIikmJmEuY3JlYXRlRWxlbWVudChNZS5FcnJvckJvdW5kYXJ5LHtvbkVycm9yOmU9PlNpKCJQZXJmb3JtYW5jZSIsZSl9LGEuY3JlYXRlRWxlbWVudChHbix7Y2xhc3NOYW1lOmRpLndpZGdldFdyYXBwZXIsd2lkZ2V0V2lkdGg6ay53aWRnZXRXaWR0aCxkYXRhOkQsc2hvd1JldHVybnM6SCxoaWRlNVlkYXRhOkgmJighWD8uaXNBdXRoZW50aWNhdGVkfHwhWD8uaXNQcm8pfSkpLFNlKCJTZWFzb25hbHMiKSYmYS5jcmVhdGVFbGVtZW50KE1lLkVycm9yQm91bmRhcnkse29uRXJyb3I6ZT0+U2koIlNlYXNvbmFscyIsZSl9LGEuY3JlYXRlRWxlbWVudChhLkZyYWdtZW50LG51bGwsYS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6ZGkuc2VwYXJhdG9yfSksYS5jcmVhdGVFbGVtZW50KGFpLHtrZXk6KDAscy5lbnN1cmVEZWZpbmVkKShJLnByb19uYW1lKSxkYXRhOkQsY2xhc3NOYW1lOm8oKShkaS53aWRnZXRXcmFwcGVyLGRpLmxhcmdlKX0pLCFjZSYmYS5jcmVhdGVFbGVtZW50KFhvLHthY3Rpb246USxvbkNsaWNrOigpPT5FZSgiU2Vhc29uYWxzIiksImRhdGEtcWEtaWQiOiJkZXRhaWxzLWVsZW1lbnQgbW9yZS1zZWFzb25hbHMtYnV0dG9uIn0sd2UudChudWxsLHZvaWQgMCxuKDg1MDkzOCkpKSkpLFNlKCJGdW5kc0V4cG9zdXJlIikmJmEuY3JlYXRlRWxlbWVudChNZS5FcnJvckJvdW5kYXJ5LHtvbkVycm9yOmU9PlNpKCJGdW5kc0V4cG9zdXJlIixlKX0sSS5ldGZfYXNzZXRfdHlwZV9leHBvc3VyZSYmYS5jcmVhdGVFbGVtZW50KGEuRnJhZ21lbnQsbnVsbCxhLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpkaS5zZXBhcmF0b3J9KSxhLmNyZWF0ZUVsZW1lbnQoc2Ese2RhdGE6RH0pKSxJLmV0Zl9yZWdpb25fZXhwb3N1cmUmJmEuY3JlYXRlRWxlbWVudChhLkZyYWdtZW50LG51bGwsYS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6ZGkuc2VwYXJhdG9yfSksYS5jcmVhdGVFbGVtZW50KG1hLHtkYXRhOkR9KSksIWxlJiZhLmNyZWF0ZUVsZW1lbnQoSix7Y2xhc3NOYW1lOmRpLm1vcmVBYm91dEZ1bmRCdXR0b24sb25DbGljazpmdW5jdGlvbigpe2lmKF8pcmV0dXJuIHZvaWQgd2luZG93LmxvY2F0aW9uLmFzc2lnbihfKTtHLmNsb3NlRGlhbG9nPy4oKSx0ZSYmKEVlKCJQcm9maWxlIiksdGUuZXhlY3V0ZSgpKX0sImRhdGEtcWEtaWQiOiJkZXRhaWxzLWVsZW1lbnQgbW9yZS1mdW5kLWJ1dHRvbiJ9LHdlLnQobnVsbCx2b2lkIDAsbig2NTcxNjApKSkpLGEuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOmRpLnNlcGFyYXRvcn0pLFNlKCJUZWNobmljYWxzIikmJnZvaWQgMCE9PU1bIlJlY29tbWVuZC5BbGwiXSYmYS5jcmVhdGVFbGVtZW50KE1lLkVycm9yQm91bmRhcnkse29uRXJyb3I6ZT0+U2koIlRlY2huaWNhbHMiLGUpfSxhLmNyZWF0ZUVsZW1lbnQoeWEse2NsYXNzTmFtZTpvKCkoZGkud2lkZ2V0V3JhcHBlcix6JiZkaS5sYXJnZSksZGF0YTpEfSkpLFNlKCJUZWNobmljYWxzIikmJnomJmEuY3JlYXRlRWxlbWVudChNZS5FcnJvckJvdW5kYXJ5LHtvbkVycm9yOmU9PlNpKCJUZWNobmljYWxzIixlKX0sYS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6ZGkud2lkZ2V0V3JhcHBlcn0sYS5jcmVhdGVFbGVtZW50KEose29uQ2xpY2s6ZnVuY3Rpb24oKXtpZihtKXJldHVybiB2b2lkIHdpbmRvdy5sb2NhdGlvbi5hc3NpZ24obSk7eiYmKEVlKCJUZWNobmljYWxzIiksRy5jbG9zZURpYWxvZz8uKCksKDAseWUuc2hvd1RlY2huaWNhbHNEaWFsb2cpKHtzbmFwc2hvdDpJLmxpc3RlZF9leGNoYW5nZSYmSS50eXBlP3tsaXN0ZWRfZXhjaGFuZ2U6SS5saXN0ZWRfZXhjaGFuZ2UsdHlwZTpJLnR5cGUsdHlwZXNwZWNzOkkudHlwZXNwZWNzLHByaWNlc2NhbGU6SS5wcmljZXNjYWxlfTp2b2lkIDAsCnNob3VsZEZvcmNlRm9jdXM6ITEsc3ltYm9sOkkuc3ltYm9sfSkpfSwiZGF0YS1uYW1lIjoiZGV0YWlscy1tb3JlLXRlY2huaWNhbHMtYnV0dG9uIn0sd2UudChudWxsLHZvaWQgMCxuKDc4ODUyOCkpKSkpLGEuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOmRpLnNlcGFyYXRvcn0pLCEoMCxpLmlzRmVhdHVyZXNldEVuYWJsZWQpKCJ3aWRnZXQiKSYmU2UoIkFuYWx5c3RSZWNvbW1lbmRhdGlvbnMiKSYmYS5jcmVhdGVFbGVtZW50KE1lLkVycm9yQm91bmRhcnkse29uRXJyb3I6ZT0+U2koIkFuYWx5c3RSZWNvbW1lbmRhdGlvbnMiLGUpfSxhLmNyZWF0ZUVsZW1lbnQoaW8se2NsYXNzTmFtZTpkaS53aWRnZXRXcmFwcGVyLGRhdGE6RCxwcmljZUZvcm1hdHRlcjpZfSkpLCFzZSYmU2UoIkFuYWx5c3RSZWNvbW1lbmRhdGlvbnMiKSYmYS5jcmVhdGVFbGVtZW50KE1lLkVycm9yQm91bmRhcnkse29uRXJyb3I6ZT0+U2koIkFuYWx5c3RSZWNvbW1lbmRhdGlvbnMiLGUpfSxhLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpkaS53aWRnZXRXcmFwcGVyfSxhLmNyZWF0ZUVsZW1lbnQoWG8se2NsYXNzTmFtZTpkaS5tb3JlQWJvdXRGdW5kQnV0dG9uLGFjdGlvbjplZSxvbkNsaWNrOigpPT5FZSgiRm9yZWNhc3QiKSwiZGF0YS1uYW1lIjoiZGV0YWlscy1zZWUtZm9yZWNhc3QtYnV0dG9uIn0sd2UudChudWxsLHZvaWQgMCxuKDIwOTg2MykpKSkpLGEuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOmRpLnNlcGFyYXRvcn0pLFNlKCJTdG9ja3NSZWxhdGVkQm9uZHMiKSYmMCE9PUwuc3RvY2tzX3JlbGF0ZWRfYm9uZHNfZGF0YT8ubGVuZ3RoJiZhLmNyZWF0ZUVsZW1lbnQoTWUuRXJyb3JCb3VuZGFyeSx7b25FcnJvcjplPT5TaSgiU3RvY2tzUmVsYXRlZEJvbmRzIixlKX0sYS5jcmVhdGVFbGVtZW50KGlpLHtjbGFzc05hbWU6ZGkud2lkZ2V0V3JhcHBlcixkYXRhOkR9KSksIXBlJiZTZSgiU3RvY2tzUmVsYXRlZEJvbmRzIikmJmEuY3JlYXRlRWxlbWVudChNZS5FcnJvckJvdW5kYXJ5LHtvbkVycm9yOmU9PlNpKCJTdG9ja3NSZWxhdGVkQm9uZHMiLGUpfSxhLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpkaS53aWRnZXRXcmFwcGVyfSxhLmNyZWF0ZUVsZW1lbnQoWG8se2FjdGlvbjpyZSxvbkNsaWNrOigpPT5FZSgiQm9uZHMiKSwiZGF0YS1uYW1lIjoiZGV0YWlscy1tb3JlLXN0b2NrLWJvbmRzLWJ1dHRvbiJ9LHdlLnQobnVsbCx2b2lkIDAsbig2ODI4NTIpKSkpKSxhLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpkaS5zZXBhcmF0b3J9KSwhKDAsaS5pc0ZlYXR1cmVzZXRFbmFibGVkKSgid2lkZ2V0IikmJlNlKCJPcHRpb25zIikmJklbIm9wdGlvbnMtaW5mbyJdJiZhLmNyZWF0ZUVsZW1lbnQoTWUuRXJyb3JCb3VuZGFyeSx7b25FcnJvcjplPT5TaSgiT3B0aW9ucyIsZSl9LGEuY3JlYXRlRWxlbWVudChqLHtjbGFzc05hbWU6ZGkud2lkZ2V0V3JhcHBlcixkYXRhOkQsc2VwYXJhdG9yQ2xhc3NOYW1lOmRpLnNlcGFyYXRvcn0pKSwhZGUmJlNlKCJPcHRpb25zIikmJmEuY3JlYXRlRWxlbWVudChNZS5FcnJvckJvdW5kYXJ5LHtvbkVycm9yOmU9PlNpKCJPcHRpb25zIixlKX0sYS5jcmVhdGVFbGVtZW50KFhvLHthY3Rpb246bmUsb25DbGljazooKT0+RWUoIk9wdGlvbnMiKSwiZGF0YS1uYW1lIjoiZGV0YWlscy1tb3JlLW9wdGlvbnMtYnV0dG9uIn0sd2UudChudWxsLHZvaWQgMCxuKDU0OTUwNCkpKSksYS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6ZGkuc2VwYXJhdG9yfSksIWdlJiZTZSgiY29tbXVuaXR5IikmJmEuY3JlYXRlRWxlbWVudChNZS5FcnJvckJvdW5kYXJ5LHtvbkVycm9yOmU9PlNpKCJjb21tdW5pdHkiLGUpfSxhLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpkaS53aWRnZXRXcmFwcGVyfSxhLmNyZWF0ZUVsZW1lbnQoRW8se29uQ2xpY2s6ZnVuY3Rpb24oKXtHLmNsb3NlRGlhbG9nPy4oKSxvZT8uZXhlY3V0ZSgpfX0pKSksYS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6ZGkuc2VwYXJhdG9yfSksU2UoIlByb2ZpbGUiKSYmYS5jcmVhdGVFbGVtZW50KE1lLkVycm9yQm91bmRhcnkse29uRXJyb3I6ZT0+U2koIlByb2ZpbGUiLGUpfSxhLmNyZWF0ZUVsZW1lbnQoVnIse2NsYXNzTmFtZTpkaS53aWRnZXRXcmFwcGVyLHNob3dLZXlWYWx1ZXM6ImVjb25vbWljIiE9PUkudHlwZSxkYXRhOkR9KSksIW1lJiZTZSgiRWNvbm9teUluZGljYXRvcnMiKSYmYS5jcmVhdGVFbGVtZW50KE1lLkVycm9yQm91bmRhcnkse29uRXJyb3I6ZT0+U2koIkVjb25vbXlJbmRpY2F0b3JzIixlKX0sYS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6ZGkud2lkZ2V0V3JhcHBlcn0sYS5jcmVhdGVFbGVtZW50KFhvLHthY3Rpb246YWUsb25DbGljazooKT0+RWUoIkVjb25vbXkgaW5kaWNhdG9ycyIpLCJkYXRhLXFhLWlkIjoiZGV0YWlscy1lbGVtZW50IG1vcmUtaW5kaWNhdG9ycy1idXR0b24ifSx3ZS50KG51bGwsdm9pZCAwLG4oNzU4NDE4KSkpKSksYS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6ZGkuc2VwYXJhdG9yfSkpKTtmdW5jdGlvbiB2ZSgpeygwLGwudHJhY2tFdmVudCkoIkdVSSIsIkRldGFpbHMiLCJOZXdzIiksKDAsVmUudHJhY2tNZXRyaWNzTWVudUFjdGlvbikoe3NvdXJjZTp3aW5kb3cuVHJhZGluZ1ZpZXcub25DaGFydFBhZ2U/InN5bWJvbF9kZXRhaWxzX25ld3NsaXN0X2NoYXJ0Ijoic3ltYm9sX2RldGFpbHNfbmV3c2xpc3Rfc29jaWFsIixzeW1ib2xfdHlwZTpJLnR5cGU/P251bGwsc3ltYm9sOkkucHJvX25hbWU/P251bGwscHJpbWFyeV9tZW51OiJEZXRhaWxzQnV0dG9uIixzdWJfbWVudToiRGV0YWlscyIsbWVudV9pdGVtOiJOZXdzIn0pLEcuY2xvc2VEaWFsb2c/LigpLGllPy5leGVjdXRlKCl9ZnVuY3Rpb24gZmUoKXtyZXR1cm4gX2UoZSl8fG51bGw9PT1UfWZ1bmN0aW9uIF9lKGUpe3JldHVybiBudWxsIT09ZSYmKF9pKCJEZXNjcmlwdGlvbiIsZSl8fEJvb2xlYW4odCkpfWZ1bmN0aW9uIEVlKGUpeygwLFZlLnRyYWNrTWV0cmljc01lbnVBY3Rpb24pKHtzb3VyY2U6ImRldGFpbHMiLApzeW1ib2xfdHlwZTpJLnR5cGU/P251bGwsc3ltYm9sOkkucHJvX25hbWU/P251bGwscHJpbWFyeV9tZW51OiJEZXRhaWxzIixzdWJfbWVudToiRGV0YWlscyIsbWVudV9pdGVtOmV9KX1mdW5jdGlvbiBTZShlKXtpZih0JiZfaShlLGspKXJldHVybiBQLmN1cnJlbnQuaGFzKGUpfHxQLmN1cnJlbnQuc2V0KGUsSS5jb21wbGV0ZT8iY29tcGxldGUiOiJ0aW1lb3V0IiksITA7Y29uc3Qgbj1waS5zbGljZSgwLCgwLHMuZW5zdXJlRGVmaW5lZCkoaGkuZ2V0KGUpKSkuZmlsdGVyKChlPT4hZ2kuaGFzKGUpKSksYT0hZmUoKXx8bi5ldmVyeSgoZT0+X2koZSxrKSkpLHI9YSYmX2koZSxrKTtpZighYSYmX2koZSxrKSl7Y29uc3QgdD1uLmZpbmQoKGU9PiFfaShlLGspKSk7aWYodm9pZCAwIT09dCl7Y29uc3Qgbj1GLmN1cnJlbnQuZ2V0KGUpO24/bi5hZGQodCk6Ri5jdXJyZW50LnNldChlLG5ldyBTZXQoW3RdKSl9fXJldHVybiByJiYhUC5jdXJyZW50LmhhcyhlKSYmUC5jdXJyZW50LnNldChlLCJkYXRhIGV4aXN0Iikscn19ZnVuY3Rpb24gd2koZSx0KXtyZXR1cm4hKCFlfHwhdCkmJigwLEFlLmlzRnVuZEV0ZikoZSx0KX1mdW5jdGlvbiBfaShlLHQpe2NvbnN0e3F1b3RlczpuLHNjcmVlbmVyOmEsYWdncmVnYXRlZDpyfT10LmRhdGEse2Z1dHVyZXM6byxib25kczpsLGRleF9jb252ZXJ0ZWRfc3ltYm9sX2RhdGE6c309cjtpZihmdW5jdGlvbihlLHQpe2lmKCF0KXJldHVybiExO2NvbnN0IG49dC5oYXMoIkZpbmFuY2lhbHMiKSYmdC5oYXMoIkVhcm5pbmdzIikmJnQuaGFzKCJEaXZpZGVuZHMiKTtpZigiTW9yZUZpbmFuY2lhbHMiPT09ZSYmbilyZXR1cm4hMDtpZigiS2V5RmFjdHMiPT09ZSYmdC5oYXMoIk5ld3MiKSlyZXR1cm4hMDtyZXR1cm4gdC5oYXMoZSl9KGUsdC5kaXNhYmxlZFNldCkpcmV0dXJuITE7c3dpdGNoKGUpe2Nhc2UiRGVzY3JpcHRpb24iOnJldHVybiByLmludmFsaWR8fEJvb2xlYW4oYmkodC5kYXRhKS5hZGRpdGlvbmFsTWFpbj8udmFsdWUpO2Nhc2UiUHJpY2UiOnJldHVybiB2b2lkIDAhPT1uLmxhc3RfcHJpY2U7Y2FzZSJZVE0iOnJldHVybiBCb29sZWFuKHZvaWQgMCE9PW4ubWV0cmljX3l0bT8ubHApO2Nhc2UiS2V5RmFjdHMiOnJldHVybiBCb29sZWFuKG4uY29tcGxldGUmJkVpKCkmJnQuc2hvd05ld3MmJm5bImRhaWx5LXN1bW1hcnktYXN0Il0pO2Nhc2UiTmV3cyI6cmV0dXJuIEJvb2xlYW4obi5jb21wbGV0ZSYmIShuWyJkYWlseS1zdW1tYXJ5LWFzdCJdJiZFaSgpKSYmdC5zaG93TmV3cyk7Y2FzZSJjb21tdW5pdHkiOnJldHVybiBCb29sZWFuKG4uY29tcGxldGUmJiEoMCxpLmlzRmVhdHVyZXNldEVuYWJsZWQpKCJ3aWRnZXQiKSYmdC5zaG93Q29tbXVuaXR5KTtjYXNlIk5vdGVzIjpyZXR1cm4gQm9vbGVhbih0LnNob3dOb3RlcykmJnZvaWQgMCE9PXQubm90ZXNTdGF0dXMmJih0Lm5vdGVzU3RhdHVzPT09bG8uU3ltYm9sTm90ZXNTdGF0dXMuRmV0Y2hlZHx8d2luZG93JiYhd2luZG93LmlzX2F1dGhlbnRpY2F0ZWQpO2Nhc2UiTWFya2V0U3RhdHVzIjpyZXR1cm4gQm9vbGVhbigoMCxpLmlzRmVhdHVyZXNldEVuYWJsZWQpKCJkaXNwbGF5X21hcmtldF9zdGF0dXMiKSYmKG4uY3VycmVudF9zZXNzaW9ufHwiZWNvbm9taWMiPT09bi50eXBlJiZuLmxhc3RfcmVsZWFzZV9kYXRlKSk7Y2FzZSJCaWRBbmRBc2siOnJldHVybiFJdC5oaWRlQmlkQW5kQXNrJiZCb29sZWFuKG4uYmlkKSYmQm9vbGVhbihuLmFzayk7Y2FzZSJSYW5nZXMiOnJldHVybiBrdChuKXx8VHQobik7Y2FzZSJGdXR1cmVzQ2hhcnQiOnJldHVybiBCb29sZWFuKG8mJm8ubGVuZ3RoPjApO2Nhc2UiQm9uZHNDaGFydCI6cmV0dXJuIEJvb2xlYW4obCYmbC5sZW5ndGg+MCYmKDAsQWUuaXNZaWVsZCkoe3R5cGVzcGVjczpuLnR5cGVzcGVjc30pKTtjYXNlIklQT0luZm8iOnJldHVybiBmdW5jdGlvbihlKXtjb25zdHtxdW90ZXM6dH09ZSxuPVt0Lmlwb19vZmZlcl9wcmljZV91c2QsdC5pcG9fcHJpY2VfcmFuZ2VfdXNkX21heCx0Lmlwb19wcmljZV9yYW5nZV91c2RfbWluLHQuaXBvX29mZmVyZWRfc2hhcmVzLHQuaXBvX2RlYWxfYW1vdW50X3VzZCx0Lmlwb19hbm5vdW5jZW1lbnRfZGF0ZSx0Lmlwb19vZmZlcl9kYXRlXS5maW5kKChlPT52b2lkIDAhPT1lKSk7cmV0dXJuIEJvb2xlYW4odC50eXBlJiYoMCxBZS5pc1ByZUlwbykodC50eXBlLHQudHlwZXNwZWNzKSYmdC5oYXNfaXBvX2RldGFpbHNfdmlzaWJsZSYmbil9KHQuZGF0YSk7Y2FzZSJLZXlTdGF0cyI6cmV0dXJuIHU9bi50eXBlLGQ9bi50eXBlc3BlY3MsQm9vbGVhbih1JiZfbi5oYXModSkpfHxCb29sZWFuKGQmJigwLEFlLmhhc0NyeXB0b1R5cGVzcGVjKShkKSk7Y2FzZSJPcHRpb25zUHJpY2luZ01vZGVsIjpyZXR1cm4gQm9vbGVhbihuLnR5cGUmJigwLEFlLmlzT3B0aW9uKShuLnR5cGUpJiYoYS5kZWx0YXx8YS50aGV0YXx8YS5nYW1tYXx8YS5yaG98fGEudmVnYXx8YS50aGVvUHJpY2UpKTtjYXNlIkVhcm5pbmdzIjpyZXR1cm4oMCx6ZS5jaGVja0Vhcm5pbmdzVmlzaWJsZSkoci5pbmNvbWVEYXRhKTtjYXNlIkRpdmlkZW5kcyI6cmV0dXJuIHZvaWQgMCE9PW4udHlwZSYmWyJzdG9jayIsImRyIiwiZnVuZCIsInN0cnVjdHVyZWQiXS5pbmNsdWRlcyhuLnR5cGUpJiZ2b2lkIDAhPT1yLmRpdmlkZW5kc0RhdGE/Lmhhc0RpdmlkZW5kcyYmIXdpKG4udHlwZSxuLnR5cGVzcGVjcyk7Y2FzZSJGaW5hbmNpYWxzIjpyZXR1cm4gQm9vbGVhbihyLmZpbmFuY2lhbHNEYXRhJiYoci5maW5hbmNpYWxzRGF0YVskbi5QZXJpb2RJZC5ZZWFyXXx8ci5maW5hbmNpYWxzRGF0YVskbi5QZXJpb2RJZC5RdWFydGVyXXx8ci5maW5hbmNpYWxzRGF0YVskbi5QZXJpb2RJZC5IYWxmWWVhcl0pKTtjYXNlIk1vcmVGaW5hbmNpYWxzIjpyZXR1cm4hKDAsaS5pc0ZlYXR1cmVzZXRFbmFibGVkKSgid2lkZ2V0IikmJigwLHdhLmhhc0ZpbmFuY2lhbHNCeUF2YWlsYWJpbGl0eUZsYWdzKShuLG4udHlwZSxuLnR5cGVzcGVjcyk7Y2FzZSJQZXJmb3JtYW5jZSI6cmV0dXJuKDAsem4uY2hlY2tQZXJmb3JtYW5jZVZpc2libGUpKHIucGVyZm9ybWFuY2UpO2Nhc2UiRnVuZHNFeHBvc3VyZSI6CnJldHVybiBCb29sZWFuKG4udHlwZSYmbi50eXBlc3BlY3MmJigwLEFlLmlzRnVuZEV0Zikobi50eXBlLG4udHlwZXNwZWNzKSk7Y2FzZSJUZWNobmljYWxzIjpyZXR1cm4gdm9pZCAwIT09YVsiUmVjb21tZW5kLkFsbCJdO2Nhc2UiQW5hbHlzdFJlY29tbWVuZGF0aW9ucyI6cmV0dXJuIEJvb2xlYW4obi5yZWNvbW1lbmRhdGlvbl9tYXJrKTtjYXNlIlByb2ZpbGUiOnJldHVybiBmdW5jdGlvbihlKXtjb25zdHtxdW90ZXM6dCxzY3JlZW5lcjpuLGFnZ3JlZ2F0ZWQ6YX09ZTtyZXR1cm4gQm9vbGVhbigiZWNvbm9taWMiPT09dC50eXBlP3QuYnVzaW5lc3NfZGVzY3JpcHRpb246dC53ZWJfc2l0ZV91cmx8fHQuYnVzaW5lc3NfZGVzY3JpcHRpb258fHQubnVtYmVyX29mX2VtcGxveWVlc3x8dFsiaXNpbi1kaXNwbGF5ZWQiXXx8dC5ib25kX2lzc3Vlcl9zdG9ja19zeW1ib2x8fHQuYm9uZF9pc3N1ZXJ8fHQudHlwZSYmKDAsQWUuaXNPcHRpb24pKHQudHlwZSkmJihuLnVuZGVybHlpbmdfc3ltYm9sfHx0WyJvcHRpb24tc3R5bGUiXSl8fCgic3ByZWFkIiE9PXQudHlwZT90LmZpZ2k6bnVsbCl8fGEuY3J5cHRvTWV0YURhdGE/Lmhhc0NyeXB0b01ldGFEYXRhfHx0LmNyeXB0b19hc3NldHx8ZnVuY3Rpb24oe3F1b3RlczplLGFnZ3JlZ2F0ZWQ6dH0pe2NvbnN0IG49dC5kZXhfY29udmVydGVkX3N5bWJvbF9kYXRhLGE9bj8uYmxvY2tjaGFpbl9hZGRyZXNzZXM/P2UuYmxvY2tjaGFpbl9hZGRyZXNzZXMscj1uPy5ibG9ja2NoYWluX2FkZHJlc3Nlc191cmxzPz9lLmJsb2NrY2hhaW5fYWRkcmVzc2VzX3VybHM7cmV0dXJuIEJvb2xlYW4oKDAsQWUuaXNEZXgpKGVbImV4Y2hhbmdlLWluZm8iXSkmJihyJiZhfHxlLmRleF9jcmVhdGVkX3RpbWUpKX0oZSkpfSh0LmRhdGEpO2Nhc2UiRWNvbm9teUluZGljYXRvcnMiOnJldHVybiBCb29sZWFuKG4udHlwZSYmKDAsQWUuaXNFY29ub21pY1N5bWJvbCkobi50eXBlKSYmblsiZmluYW5jaWFsLWluZGljYXRvci1pZCJdKTtjYXNlIk9wdGlvbnMiOnJldHVybiBCb29sZWFuKG5bIm9wdGlvbnMtaW5mbyJdKTtjYXNlIkJvbmRzQ2xhc3NpZmljYXRpb24iOnJldHVybiB4aSh0LmRhdGEpO2Nhc2UiU3RvY2tzUmVsYXRlZEJvbmRzIjpyZXR1cm4gYz10LmRhdGEsQm9vbGVhbihjLmFnZ3JlZ2F0ZWQuc3RvY2tzX3JlbGF0ZWRfYm9uZHNfZGF0YT8ubGVuZ3RoKTtjYXNlIkJvbmRzUmVkZW1wdGlvbiI6cmV0dXJuIHhpKHQuZGF0YSkmJkJvb2xlYW4obi5vdXRzdGFuZGluZ19hbW91bnR8fG4ucGFpZF9hbW91bnQpO2Nhc2UiQm9uZHNJc3N1ZVJhdGluZyI6cmV0dXJuIHhpKHQuZGF0YSkmJihCb29sZWFuKG4uYm9uZF9zbnBfcmF0aW5nX2x0X2gmJm4uYm9uZF9zbnBfcmF0aW5nX2x0X2gubGVuZ3RoPjApfHxCb29sZWFuKG4uYm9uZF9maXRjaF9yYXRpbmdfbHRfaCYmbi5ib25kX2ZpdGNoX3JhdGluZ19sdF9oLmxlbmd0aD4wKSk7Y2FzZSJTZWFzb25hbHMiOnJldHVybiBmdW5jdGlvbih7cXVvdGVzOmV9KXswO3JldHVybiBCb29sZWFuKGUudHlwZSYmZS5wcm9fbmFtZSYmISgwLEFlLmlzRGV4KShlWyJleGNoYW5nZS1pbmZvIl0pJiYoMCxSZS5oYXNTZWFzb25hbHMpKGUudHlwZSxlLnR5cGVzcGVjcyxlLmZpcnN0X2Jhcl90aW1lXzFkKSl9KHQuZGF0YSk7Y2FzZSJCb25kc1BsdWciOnJldHVybiBCb29sZWFuKG4udHlwZSYmbi50eXBlc3BlY3MmJigoMCxBZS5pc0NvcnBvcmF0ZUJvbmQpKG4udHlwZSxuLnR5cGVzcGVjcyl8fCgwLEFlLmlzR292ZXJubWVudE9ubHlCb25kKShuLnR5cGUsbi50eXBlc3BlY3MpKSYmIXdpbmRvdy5pc19hdXRoZW50aWNhdGVkKTtjYXNlIkV4cGVjdGVkUG5sQ2hhcnQiOnJldHVybiBCb29sZWFuKG4udHlwZSYmKDAsQWUuaXNPcHRpb24pKG4udHlwZSkmJmEuaXYmJnIuY3VycmVuY3kmJm4ubGFzdF9wcmljZSYmYS51bmRlcmx5aW5nX3N5bWJvbCk7Y2FzZSJEZXhUcmFkaW5nQWN0aXZpdHkiOnJldHVybiBCb29sZWFuKCgiVVNEIj09PXM/LmN1cnJlbmN5X2lkfHwiVVNEIj09PW4uY3VycmVuY3lfaWQpJiZyLmRleFRyYWRpbmdBY3Rpdml0eURhdGEmJm5bImV4Y2hhbmdlLWluZm8iXSYmKDAsQWUuaXNEZXgpKG5bImV4Y2hhbmdlLWluZm8iXSkpO2RlZmF1bHQ6cmV0dXJuITF9dmFyIGMsdSxkfWZ1bmN0aW9uIEVpKCl7cmV0dXJuImVuIj09PXdpbmRvdy5sb2NhbGV9ZnVuY3Rpb24gYmkoZSx0PSEwKXtjb25zdHtxdW90ZXM6bixzY3JlZW5lcjphfT1lLHI9bi50eXBlJiZmdC5ERVNDUklQVElPTl9XSVRIX0lORFVTVFJZX01BUktFVF9MSVNULmhhcyhuLnR5cGUpLG89bi50eXBlJiZuLnR5cGVzcGVjcyYmKDAsQWUuaXNDb3Jwb3JhdGVCb25kKShuLnR5cGUsbi50eXBlc3BlY3MpLGk9YS5zZWN0b3I/P24uc2VjdG9yO2lmKHJ8fG8pe2NvbnN0IGU9bi5wcm9fbmFtZSYmaXx8IiI7bGV0IHIsbDtyZXR1cm4gdCYmbi5pbmR1c3RyeSYmYS5tYXJrZXQmJiFvJiYobD0oMCxmZS5nZXRJbmR1c3RyeVVybCkobi5pbmR1c3RyeSxhLm1hcmtldCkpLHQmJmkmJmEubWFya2V0JiYhbyYmKHI9KDAsdmUuZ2V0U2VjdG9yVXJsKShpLGEubWFya2V0KSkse2FkZGl0aW9uYWxNYWluOnt2YWx1ZTooMCxTZS50cmllc1RyYW5zbGF0ZVNjcmVlbmVyRGF0YSkoZSksbGluazpyfSxhZGRpdGlvbmFsU2Vjb25kYXJ5Ont2YWx1ZTooMCxTZS50cmllc1RyYW5zbGF0ZVNjcmVlbmVyRGF0YSkobi5pbmR1c3RyeXx8IiIpLGxpbms6bH19fWNvbnN0IGw9bmV3IFNldChbImNmZCIsImNyeXB0byJdKSxzPW4udHlwZXNwZWNzP24udHlwZXNwZWNzLmZpbHRlcigoZT0+bC5oYXMoZSkpKTpbXTtpZihuLnR5cGUmJnMubGVuZ3RoKXtjb25zdCBlPXNbMF0sdD0iY3J5cHRvIj09PWU/KGM9bi50eXBlKWluIHVpP3VpW2NdOmM6KDAsQ2UudHJpZXNUcmFuc2xhdGVNYXJrZXRUeXBlKShuLnR5cGUpLGE9KDAsQ2UudHJpZXNUcmFuc2xhdGVNYXJrZXRUeXBlKShlKTtyZXR1cm57YWRkaXRpb25hbE1haW46e3ZhbHVlOigwLEVlLmNhcGl0YWxpemVGaXJzdExldHRlcikodCl9LGFkZGl0aW9uYWxTZWNvbmRhcnk6e3ZhbHVlOigwLEVlLmNhcGl0YWxpemVGaXJzdExldHRlcikoYSl9fX12YXIgYwo7cmV0dXJue2FkZGl0aW9uYWxNYWluOnt2YWx1ZTpOaShlKX19fWZ1bmN0aW9uIE5pKHtzY3JlZW5lcjplLHF1b3Rlczp0fSl7Y29uc3QgYT10LnByb19uYW1lJiZlLmNvdW50cnl8fCIiLHI9dC5wcm9fbmFtZSYmKGUuc2VjdG9yPz90LnNlY3Rvcil8fCIiO2xldCBvO2lmKCgwLEFlLmhhc0NyeXB0b1R5cGVzcGVjKSh0LnR5cGVzcGVjcz8/W10pKXJldHVybiB3ZS50KG51bGwsdm9pZCAwLG4oODgyNDExKSk7c3dpdGNoKHQudHlwZSl7Y2FzZSJlcXVpdHkiOm89d2UudChudWxsLHZvaWQgMCxuKDI0MTc3NikpO2JyZWFrO2Nhc2UiZnV0dXJlcyI6bz13ZS50KG51bGwsdm9pZCAwLG4oOTQzOTAzKSk7YnJlYWs7Y2FzZSJpbmRleCI6bz13ZS50KG51bGwsdm9pZCAwLG4oMTIyOTAwKSk7YnJlYWs7Y2FzZSJzcHJlYWQiOm89d2UudChudWxsLHZvaWQgMCxuKDUwMTY4MSkpO2JyZWFrO2Nhc2UiZWNvbm9taWMiOm89d2UudChudWxsLHZvaWQgMCxuKDE3NjM3OCkpO2JyZWFrO2Nhc2UiY2ZkIjpvPSJDRkQiO2JyZWFrO2Nhc2UiYm9uZCI6bz13ZS50KG51bGwsdm9pZCAwLG4oOTA5MDU0KSk7YnJlYWs7Y2FzZSJmb3JleCI6bGV0IHQ7c3dpdGNoKHIpe2Nhc2UiTWlub3IiOnQ9d2UudChudWxsLHtjb250ZXh0OiJjdXJyZW5jeSJ9LG4oOTg1ODY2KSk7YnJlYWs7Y2FzZSJNYWpvciI6dD13ZS50KG51bGwse2NvbnRleHQ6ImN1cnJlbmN5In0sbigxMTUyNjApKTticmVhaztjYXNlIkV4b3RpYyI6dD13ZS50KG51bGwsdm9pZCAwLG4oNTgwODMyKSk7YnJlYWs7ZGVmYXVsdDp0PXJ9dCYmYT9vPXdlLnQobnVsbCx2b2lkIDAsbig2OTQ1NjApKS5yZXBsYWNlKCJ7c2VjdG9yfSIsdCkucmVwbGFjZSgie2NvdW50cnl9IiwoMCx4ZS50cmllc1RyYW5zbGF0ZUNvdW50cmllTmFtZSkoYSkpOmUuY29tcGxldGVTY3JlZW5lciYmKG89d2UudChudWxsLHZvaWQgMCxuKDI1NTA5MykpKX1yZXR1cm4gb31mdW5jdGlvbiBTaShlLHQpe21pLmxvZ0Vycm9yKGBBbiBlcnJvciBvY2N1cnJlZCBpbiBibG9jayAke2V9YCk7dHJ5e21pLmxvZ0Vycm9yKGAke3QubWVzc2FnZX0gJHt0LnN0YWNrfWApfWNhdGNoe319ZnVuY3Rpb24geGkoe3F1b3RlczplfSl7cmV0dXJuIEJvb2xlYW4od2luZG93LmlzX2F1dGhlbnRpY2F0ZWQmJmUudHlwZSYmZS50eXBlc3BlY3MmJigoMCxBZS5pc0NvcnBvcmF0ZUJvbmQpKGUudHlwZSxlLnR5cGVzcGVjcyl8fCgwLEFlLmlzR292ZXJubWVudE9ubHlCb25kKShlLnR5cGUsZS50eXBlc3BlY3MpKSl9fSw3NTQwMDQoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7aGlkZUJpZEFuZEFzazooKT0+YX0pO2NvbnN0IGE9KDAsbig1NjkzOTgpLmlzRmVhdHVyZUVuYWJsZWQpKCJkZXRhaWxzX2Rpc2FibGVfYmlkX2FzayIpfSwyODY0NzIoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7dXNlQ29tcGxldGVPclRpbWVvdXQ6KCk9Pm8sdXNlUHJldmlvdXNEaWZmOigpPT5pfSk7dmFyIGE9big3Nzk0NzQpLHI9big1ODYyMjMpO2Z1bmN0aW9uIG8oZSx0LG4pe2NvbnN0IG89KDAsYS51c2VSZWYpKG51bGwpLFtpLGxdPSgwLGEudXNlU3RhdGUpKCExKSxzPSgwLHIudXNlUHJldmlvdXMpKGUpO3JldHVybigwLGEudXNlRWZmZWN0KSgoKCk9PntlJiZ2b2lkIDA9PT1uJiZ0JiZudWxsIT09by5jdXJyZW50JiYoY2xlYXJUaW1lb3V0KG8uY3VycmVudCksby5jdXJyZW50PW51bGwsbCghMCkpfSksW3RdKSwoMCxhLnVzZUVmZmVjdCkoKCgpPT57aWYoZSYmdm9pZCAwPT09bilyZXR1cm4gZSE9PXMmJihsKCExKSxvLmN1cnJlbnQ9c2V0VGltZW91dCgoKCk9PmwoITApKSw1MDApKSwoKT0+e251bGwhPT1vLmN1cnJlbnQmJihjbGVhclRpbWVvdXQoby5jdXJyZW50KSxvLmN1cnJlbnQ9bnVsbCl9fSksW2VdKSwhIWUmJih2b2lkIDAhPT1uP246ZT09PXMmJihCb29sZWFuKHQpfHxpKSl9ZnVuY3Rpb24gaShlLHQpe2NvbnN0IG49KDAsci51c2VQcmV2aW91cykoZSksbz0oMCxhLnVzZVJlZikobnVsbCk7cmV0dXJuKHQ9dD8/KChlLHQsbik9PmUhPT10JiZ0IT09bikpKG8uY3VycmVudCxuLGUpJiYoby5jdXJyZW50PW4pLG8uY3VycmVudH19LDU3OTAxNihlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtNSU5fTk9URVNfV0lER0VUX0hFSUdIVF9JTl9JTlBVVF9NT0RFOigpPT5yLFJFUVVJUkVEX1FVT1RFX0ZJRUxEUzooKT0+YX0pO2NvbnN0IGE9bmV3IFNldChbInN5bWJvbC1wcmltYXJ5bmFtZSIsInNob3J0X25hbWUiLCJwcm9fbmFtZSIsImxvZ28iLCJ0eXBlIiwidHlwZXNwZWNzIl0pLHI9MTgxfSw4MTkyODQoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7dXNlR2V0Tm90ZXM6KCk9Pml9KTt2YXIgYT1uKDc3OTQ3NCkscj1uKDk4ODIwNiksbz1uKDkyMzA2MCk7ZnVuY3Rpb24gaSgpe2NvbnN0IGU9KDAsby51c2VOb3Rlc0Rpc3BhdGNoKSgpOygwLGEudXNlRWZmZWN0KSgoKCk9Pnt3aW5kb3cuaXNfYXV0aGVudGljYXRlZCYmZSgoMCxyLmZldGNoU3ltYm9sTm90ZXNUaHVuaykoKSl9KSxbXSl9fSw5MjMwNjAoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7dXNlTm90ZXNEaXNwYXRjaDooKT0+cn0pO3ZhciBhPW4oNzE4OTgzKTtjb25zdCByPSgpPT4oMCxhLnVzZURpc3BhdGNoKSgpfSw3MDUyNzMoZSx0LG4peyJ1c2Ugc3RyaWN0Ijt2YXIgYTtuLmQodCx7U3ltYm9sTm90ZXNTdGF0dXM6KCk9PmF9KSxmdW5jdGlvbihlKXtlLklkbGU9IklkbGUiLGUuRmV0Y2hpbmc9IkZldGNoaW5nIixlLkZldGNoZWQ9IkZldGNoZWQiLGUuRXJyb3I9IkVycm9yIn0oYXx8KGE9e30pKX0sMTQzODAyKGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse3NlbGVjdEFsbFN5bWJvbE5vdGVzR3JvdXBzOigpPT5sLHNlbGVjdExhc3RNb2RpZmllZE5vdGVJbkdyb3VwOigpPT5kLHNlbGVjdExhc3ROb3RlOigpPT5jLHNlbGVjdE5vdGVzU3RhdHVzOigpPT51LHNlbGVjdFN5bWJvbE5vdGVzQnlHcm91cDooKT0+c30pO3ZhciBhPW4oMzY0MzUwKSxyPW4oMTM4NjM4KSxvPW4oMzUwNTA4KTtjb25zdCBpPWU9PmUuc3ltYm9sTm90ZXMsbD0oMCxhLmNyZWF0ZVNlbGVjdG9yKShpLChlPT57Y29uc3QgdD17fQo7cmV0dXJuIE9iamVjdC5rZXlzKGUuZ3JvdXBzKS5mb3JFYWNoKChuPT57ZS5ncm91cHNbbl0mJih0W25dPXtuYW1lOm4sbm90ZXM6ZS5ncm91cHNbbl0/Lm5vdGVzLmZpbHRlcigodD0+ZS5ub3Rlc1t0XT8uY29udGVudC50cmltKCkpKT8/W10sc3ltYm9sOmUuZ3JvdXBzW25dPy5zeW1ib2x9KX0pKSx0fSkpLHM9KDAsYS5jcmVhdGVTZWxlY3RvcikoW2wsKGUsdCk9PnRdLCgoZSx0KT0+ZVt0XT8ubm90ZXM/P1tdKSksYz0oMCxhLmNyZWF0ZVNlbGVjdG9yKShbaSxzXSwoKGUsdCk9Pntjb25zdCBuPXRbdC5sZW5ndGgtMV07cmV0dXJuIGUubm90ZXNbbl0/P251bGx9KSksdT0oMCxhLmNyZWF0ZVNlbGVjdG9yKShpLChlPT5lLnN0YXR1cykpLGQ9KDAsYS5jcmVhdGVTZWxlY3RvcikoW2ksc10sKChlLHQpPT4oMCxyLmVuc3VyZURlZmluZWQpKGUubm90ZXNbKDAsby5nZXRMYXN0TW9kaWZpZWROb3RlSWQpKHQsZS5ub3RlcyldKSkpfSw0MDk1MyhlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtjcmVhdGVDcm9zc1RhYlN5bmNNaWRkbGV3YXJlOigpPT5nLHJlc2V0OigpPT52LHN5bWJvbE5vdGVzUmVkdWNlcjooKT0+aH0pO3ZhciBhPW4oMTMwNjk5KSxyPW4oMTM4NjM4KSxvPW4oOTg4MjA2KSxpPW4oNzA1MjczKTtmdW5jdGlvbiBsKCl7cmV0dXJue3N0YXR1czppLlN5bWJvbE5vdGVzU3RhdHVzLklkbGUsbm90ZXM6e30sZ3JvdXBzOnt9fX1jb25zdCBzPWwoKSxjPSgwLGEuY3JlYXRlU2xpY2UpKHtuYW1lOiJzeW1ib2xOb3RlcyIsaW5pdGlhbFN0YXRlOnMscmVkdWNlcnM6e3Jlc2V0OigpPT5sKCl9LGV4dHJhUmVkdWNlcnM6ZT0+eyFmdW5jdGlvbihlKXtbdSxkLG0scF0uZm9yRWFjaCgodD0+e3QoZSl9KSl9KGUpfX0pO2Z1bmN0aW9uIHUoZSl7ZS5hZGRDYXNlKG8uZmV0Y2hTeW1ib2xOb3Rlc1RodW5rLnBlbmRpbmcsKGU9PntlLnN0YXR1cz1pLlN5bWJvbE5vdGVzU3RhdHVzLkZldGNoaW5nfSkpLGUuYWRkQ2FzZShvLmZldGNoU3ltYm9sTm90ZXNUaHVuay5mdWxmaWxsZWQsKChlLHtwYXlsb2FkOnR9KT0+e2Uuc3RhdHVzPWkuU3ltYm9sTm90ZXNTdGF0dXMuRmV0Y2hlZDtjb25zdCBuPXt9LGE9e307dC5ub3Rlcy5mb3JFYWNoKChlPT57aWYoIXQuZGF0YS5oYXNPd25Qcm9wZXJ0eSgoMCxvLmdldFJhd1N5bWJvbEZyb21Ob3RlKShlKSkpcmV0dXJuO2NvbnN0IGk9KDAsby5nZXRSYXdTeW1ib2xGcm9tTm90ZSkoZSksbD10LmRhdGFbaV0scz1sLm5hbWU7bltlLmlkXT17aWQ6ZS5pZCxncm91cDpzLGNvbnRlbnQ6ZS5kZXNjcmlwdGlvbixkYXRlQ3JlYXRlZDoxZTMqZS5jcmVhdGVkLGRhdGVNb2RpZmllZDoxZTMqKDAsci5lbnN1cmVEZWZpbmVkKShlLm1vZGlmaWVkPz92b2lkIDApLHJhdzp7Li4uZX0sdGl0bGU6ZS50aXRsZX0sYS5oYXNPd25Qcm9wZXJ0eShzKT9hW3NdLm5vdGVzLnB1c2goZS5pZCk6YVtzXT17bmFtZTpsLm5hbWUsbm90ZXM6W2UuaWRdLHN5bWJvbDppfX0pKSxPYmplY3QudmFsdWVzKGEpLmZvckVhY2goKGU9PntlLm5vdGVzLnNvcnQoKChlLHQpPT5uW2VdLmRhdGVDcmVhdGVkLW5bdF0uZGF0ZUNyZWF0ZWQpKX0pKSxlLm5vdGVzPW4sZS5ncm91cHM9YX0pKSxlLmFkZENhc2Uoby5mZXRjaFN5bWJvbE5vdGVzVGh1bmsucmVqZWN0ZWQsKGU9PntlLnN0YXR1cz1pLlN5bWJvbE5vdGVzU3RhdHVzLkVycm9yfSkpfWZ1bmN0aW9uIGQoZSl7ZS5hZGRDYXNlKG8uZWRpdE5vdGVUaHVuay5mdWxmaWxsZWQsKChlLHtwYXlsb2FkOnR9KT0+e2NvbnN0IG49ZS5ub3Rlc1t0Lm5vdGVJZF07dm9pZCAwIT09biYmKG4uY29udGVudD10LmNvbnRlbnQsbi5kYXRlTW9kaWZpZWQ9MWUzKnQubW9kaWZpZWQsbi5yYXcuZGVzY3JpcHRpb249bi5jb250ZW50LG4ucmF3Lm1vZGlmaWVkPXQubW9kaWZpZWQsbi5yYXcuc25hcHNob3RfdGh1bWI9dC5yYXcuc25hcHNob3RfdGh1bWIsbi5yYXcuc25hcHNob3RfcGFnZT10LnJhdy5zbmFwc2hvdF9wYWdlLHQudGl0bGUmJihuLnRpdGxlPXQudGl0bGUsbi5yYXcudGl0bGU9dC50aXRsZSkpfSkpfWZ1bmN0aW9uIG0oZSl7ZS5hZGRDYXNlKG8ucmVtb3ZlTm90ZVRodW5rLmZ1bGZpbGxlZCwoKGUse3BheWxvYWQ6dH0pPT57Y29uc3Qgbj1lLm5vdGVzW3Qubm90ZUlkXTtpZih2b2lkIDA9PT1uKXJldHVybjtkZWxldGUgZS5ub3Rlc1t0Lm5vdGVJZF07Y29uc3QgYT1lLmdyb3Vwc1tuLmdyb3VwXTt2b2lkIDAhPT1hJiYoYS5ub3Rlcz1hLm5vdGVzLmZpbHRlcigoZT0+ZSE9PW4uaWQpKSwwPT09YS5ub3Rlcy5sZW5ndGgmJmRlbGV0ZSBlLmdyb3Vwc1thLm5hbWVdKX0pKX1mdW5jdGlvbiBwKGUpe2UuYWRkQ2FzZShvLmFkZE5vdGVUaHVuay5mdWxmaWxsZWQsKChlLHtwYXlsb2FkOnR9KT0+e2Uubm90ZXNbdC5ub3RlLmlkXT17aWQ6dC5ub3RlLmlkLGNvbnRlbnQ6dC5ub3RlLmNvbnRlbnQsZ3JvdXA6dC5ub3RlLmdyb3VwLGRhdGVDcmVhdGVkOnQubm90ZS5kYXRlQ3JlYXRlZCxkYXRlTW9kaWZpZWQ6dC5ub3RlLmRhdGVNb2RpZmllZCxyYXc6ey4uLnQubm90ZS5yYXd9LHRpdGxlOnQubm90ZS50aXRsZX07Y29uc3Qgbj1lLmdyb3Vwc1t0Lm5vdGUuZ3JvdXBdO2lmKHZvaWQgMD09PW4pe2NvbnN0IG49KDAsby5nZXRSYXdTeW1ib2xGcm9tTm90ZSkodC5ub3RlLnJhdyk7ZS5ncm91cHNbdC5ub3RlLmdyb3VwXT17bmFtZTp0Lm5vdGUuZ3JvdXAsbm90ZXM6W3Qubm90ZS5pZF0sc3ltYm9sOm59fWVsc2Ugbi5ub3Rlcy5wdXNoKHQubm90ZS5pZCl9KSl9ZnVuY3Rpb24gZyhlLHQsbj1jKXtyZXR1cm4gZnVuY3Rpb24oZSl7Y29uc3R7aWQ6dCxldmVudDpuLGNoYW5uZWw6YSxmaWx0ZXI6cn09ZTtyZXR1cm4gZT0+KGEub24obiwobj0+e2NvbnN0e2FjdGlvbjphLGVtaXR0ZXI6b309SlNPTi5wYXJzZShuKTtvIT09dCYmcihhKSYmZS5kaXNwYXRjaCh7Li4uYSxwYXlsb2FkOnsuLi5hLnBheWxvYWR8fHt9LHNpbGVudDohMH19KX0pKSxlPT5vPT57Y29uc3QgaT1lKG8pO3JldHVybiByKG8pJiYoby5wYXlsb2FkPy5zaWxlbnR8fGEuZW1pdChuLEpTT04uc3RyaW5naWZ5KHthY3Rpb246byxlbWl0dGVyOnR9KSkpLGl9KX0oe2lkOmUsY2hhbm5lbDp0LApldmVudDoibm90ZXMtY3Jvc3MtdGFiLXN5bmMiLGZpbHRlcjplPT5mdW5jdGlvbihlLHQpe3JldHVybiBvLmFkZE5vdGVUaHVuay5mdWxmaWxsZWQubWF0Y2goZSl8fG8uZWRpdE5vdGVUaHVuay5mdWxmaWxsZWQubWF0Y2goZSl8fG8ucmVtb3ZlTm90ZVRodW5rLmZ1bGZpbGxlZC5tYXRjaChlKXx8by5mZXRjaFN5bWJvbE5vdGVzVGh1bmsuZnVsZmlsbGVkLm1hdGNoKGUpfHx0LmFjdGlvbnMucmVzZXQubWF0Y2goZSl9KGUsbil9KX1jb25zdCBoPWMucmVkdWNlcix7cmVzZXQ6dn09Yy5hY3Rpb25zfSw3NjM0ODIoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7c3ltYm9sTm90ZXNTdG9yZTooKT0+Y30pO3ZhciBhPW4oMTMwNjk5KSxyPW4oMTc5NzcxKSxvPW4oMTUyNjk5KSxpPW4oMTUwMTUwKSxsPW4oOTg4MjA2KSxzPW4oNDA5NTMpO2NvbnN0IGM9KDAsYS5jb25maWd1cmVTdG9yZSkoe3JlZHVjZXI6e3N5bWJvbE5vdGVzOnMuc3ltYm9sTm90ZXNSZWR1Y2VyfSxtaWRkbGV3YXJlOmU9PlsuLi5lKCksZT0+ZT0+dD0+e2NvbnN0IG49ZSh0KTtyZXR1cm4gdS5zb21lKChlPT5lLm1hdGNoKHQpKSkmJnIuZW1pdCgiTk9USUZZX05PVEVTX1VQREFURSIsdCksbn0sKDAscy5jcmVhdGVDcm9zc1RhYlN5bmNNaWRkbGV3YXJlKSgoMCxpLnJhbmRvbUhhc2gpKCksby5UVlhXaW5kb3dFdmVudHMpXX0pLHU9W2wuYWRkTm90ZVRodW5rLmZ1bGZpbGxlZCxsLmVkaXROb3RlVGh1bmsuZnVsZmlsbGVkLGwucmVtb3ZlTm90ZVRodW5rLmZ1bGZpbGxlZF19LDk4ODIwNihlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHthZGROb3RlVGh1bms6KCk9Pm0sZWRpdE5vdGVUaHVuazooKT0+cCxmZXRjaFN5bWJvbE5vdGVzVGh1bms6KCk9PmQsZ2V0UmF3U3ltYm9sRnJvbU5vdGU6KCk9PnUscmVtb3ZlTm90ZVRodW5rOigpPT5nfSk7dmFyIGE9bigxMzA2OTkpLHI9bigxMzg2MzgpLG89bigzODQwMTcpO2NvbnN0IGk9Ii90ZXh0bm90ZXMiO3ZhciBsPW4oMzUwNTA4KSxzPW4oNzA1MjczKTtjb25zdCBjPW5ldyBjbGFzc3tnZXRBbGwoKXtyZXR1cm4oMCxvLmZldGNoKShgJHtpfS9nZXRhbGwvYCkudGhlbigoZT0+dGhpcy5faGFuZGxlUmVzcG9uc2UoZSwianNvbiIpKSl9YWRkKGUpe2NvbnN0IHQ9bmV3IEZvcm1EYXRhO3JldHVybiBPYmplY3QuZW50cmllcyhlKS5mb3JFYWNoKCgoW2Usbl0pPT57dm9pZCAwIT09biYmdC5zZXQoZSxuKX0pKSwoMCxvLmZldGNoKShgJHtpfS9hZGQvYCx7bWV0aG9kOiJQT1NUIixib2R5OnR9KS50aGVuKChlPT50aGlzLl9oYW5kbGVSZXNwb25zZShlLCJqc29uIikpKX1yZW1vdmUoZSl7Y29uc3QgdD1uZXcgRm9ybURhdGE7cmV0dXJuIHQuc2V0KCJpZF9ub3RlIixTdHJpbmcoZS5pZF9ub3RlKSksKDAsby5mZXRjaCkoYCR7aX0vcmVtb3ZlL2Ase21ldGhvZDoiUE9TVCIsYm9keTp0fSkudGhlbigoZT0+dGhpcy5faGFuZGxlUmVzcG9uc2UoZSwidGV4dCIpKSl9ZWRpdChlKXtjb25zdCB0PW5ldyBGb3JtRGF0YTtyZXR1cm4gT2JqZWN0LmVudHJpZXMoZSkuZm9yRWFjaCgoKFtlLG5dKT0+e3ZvaWQgMCE9PW4mJnQuc2V0KGUsbil9KSksKDAsby5mZXRjaCkoYCR7aX0vZWRpdC9gLHttZXRob2Q6IlBPU1QiLGJvZHk6dH0pLnRoZW4oKGU9PnRoaXMuX2hhbmRsZVJlc3BvbnNlKGUsImpzb24iKSkpfV9oYW5kbGVSZXNwb25zZShlLHQpe2lmKCFlLm9rKXRocm93IG5ldyBFcnJvcihlLnN0YXR1c1RleHQpO3JldHVybiJqc29uIj09PXQ/ZS5qc29uKCk6ZS50ZXh0KCl9fTtmdW5jdGlvbiB1KGUpe3JldHVybiBlLnN5bWJvbF9mdWxsPz9lLnN5bWJvbD8/IiJ9Y29uc3QgZD0oMCxhLmNyZWF0ZUFzeW5jVGh1bmspKCJzeW1ib2xOb3Rlcy9mZXRjaFN5bWJvbE5vdGVzIiwoYXN5bmMoZSx0KT0+e2NvbnN0IG49YXdhaXQgYy5nZXRBbGwoKSxhPWF3YWl0KDAsbC5nZXRSZXNvbHZlZFN5bWJvbE5vdGVzRGF0YSkobi5tYXAodSkpO3JldHVybntub3RlczpuLGRhdGE6YX19KSx7Y29uZGl0aW9uOihlLHQpPT50LmdldFN0YXRlKCkuc3ltYm9sTm90ZXMuc3RhdHVzPT09cy5TeW1ib2xOb3Rlc1N0YXR1cy5JZGxlfSksbT0oMCxhLmNyZWF0ZUFzeW5jVGh1bmspKCJzeW1ib2xOb3Rlcy9hZGRTeW1ib2xOb3RlIiwoYXN5bmMoZSx0KT0+e2NvbnN0IG49YXdhaXQgYy5hZGQoe3N5bWJvbDplLmdyb3VwLHN5bWJvbF9mdWxsOmUuc3ltYm9sRnVsbE5hbWUsZGVzY3JpcHRpb246ZS5jb250ZW50LHNuYXBzaG90X3VpZDplLnNuYXBzaG90VWlkLHRpdGxlOmUudGl0bGU/PyIifSk7cmV0dXJue25vdGU6e2lkOm4uaWQsZ3JvdXA6bi5zeW1ib2w/PyIiLGNvbnRlbnQ6bi5kZXNjcmlwdGlvbixkYXRlQ3JlYXRlZDoxZTMqbi5jcmVhdGVkLGRhdGVNb2RpZmllZDoxZTMqKDAsci5lbnN1cmVEZWZpbmVkKShuLm1vZGlmaWVkPz92b2lkIDApLHJhdzpuLHRpdGxlOm4udGl0bGV9fX0pKSxwPSgwLGEuY3JlYXRlQXN5bmNUaHVuaykoInN5bWJvbE5vdGVzL2VkaXRTeW1ib2xOb3RlIiwoYXN5bmMoZSx0KT0+e2NvbnN0IG49dC5nZXRTdGF0ZSgpLGE9KDAsci5lbnN1cmVEZWZpbmVkKShuLnN5bWJvbE5vdGVzLm5vdGVzW2Uubm90ZUlkXSksbz1hd2FpdCBjLmVkaXQoe2lkOmUubm90ZUlkLGRlc2NyaXB0aW9uOmUuY29udGVudCxzbmFwc2hvdF91aWQ6ZS5zbmFwc2hvdFVpZCx0aXRsZTplLnRpdGxlPz9hLnRpdGxlfSk7cmV0dXJuey4uLmUsbW9kaWZpZWQ6KDAsci5lbnN1cmVEZWZpbmVkKShvLm1vZGlmaWVkPz92b2lkIDApLHJhdzpvLHRpdGxlOmUudGl0bGU/P2EudGl0bGV9fSkpLGc9KDAsYS5jcmVhdGVBc3luY1RodW5rKSgic3ltYm9sTm90ZXMvcmVtb3ZlU3ltYm9sTm90ZSIsKGFzeW5jKGUsdCk9Pihhd2FpdCBjLnJlbW92ZSh7aWRfbm90ZTplLm5vdGVJZH0pLHtub3RlSWQ6ZS5ub3RlSWR9KSkpfSwzNTA1MDgoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7Z2V0TGFzdE1vZGlmaWVkTm90ZUlkOigpPT5nLGdldE5vdGVEYXRlU3RyaW5nOigpPT5tLGdldE5vdGVzR3JvdXBLZXlEYXRhOigpPT5wLGdldFJlc29sdmVkU3ltYm9sTm90ZXNEYXRhOigpPT5kfSkKO3ZhciBhPW4oMTM4NjM4KSxyPW4oMjc4MjYzKSxvPW4oNzgzMjU0KSxpPW4oNTA1NTgpLGw9bigxNTY4MjkpLHM9bigzMjA1NSksYz1uKDg5MzExNSksdT1uKDU3OTAxNik7YXN5bmMgZnVuY3Rpb24gZChlKXtjb25zdCB0PW5ldyBTZXQoZSksbj1hd2FpdCgwLHMuc25hcHNob3RlcikoKS5nZXRTbmFwc2hvdHNGb3JBbGwoWy4uLnRdLHUuUkVRVUlSRURfUVVPVEVfRklFTERTKSxhPXt9O2Zvcihjb25zdCBlIG9mIG4pe2NvbnN0IHQ9ZS5zeW1ib2xuYW1lO2lmKCJlcnJvciI9PT1lLnN0YXR1cyl7YVt0XT17bmFtZTp0fTtjb250aW51ZX1jb25zdCBuPXAoZS52YWx1ZXMpO24mJihhW3RdPXtuYW1lOm4ubm90ZXNHcm91cEtleX0pfXJldHVybiBhfWZ1bmN0aW9uIG0oZSl7cmV0dXJuKDAsaS5pc1NhbWVEYXkpKG5ldyBEYXRlLG5ldyBEYXRlKGUpKT9gJHtvLnQobnVsbCx2b2lkIDAsbig2MTQ0NTApKX0sICR7KDAsci5mb3JtYXRUaW1lKShlLCgwLGMuZ2V0TG9jYWxlSXNvKSgpLCJob3VyIiwibWludXRlIil9YDooMCxpLmlzWWVzdGVyZGF5KShuZXcgRGF0ZShlKSk/YCR7by50KG51bGwsdm9pZCAwLG4oOTY1NTczKSl9LCAkeygwLHIuZm9ybWF0VGltZSkoZSwoMCxjLmdldExvY2FsZUlzbykoKSwiaG91ciIsIm1pbnV0ZSIpfWA6KDAsci5mb3JtYXRUaW1lKShlLCgwLGMuZ2V0TG9jYWxlSXNvKSgpLCJ5ZWFyIiwibWludXRlIil9ZnVuY3Rpb24gcChlKXtjb25zdHt0eXBlOnQsdHlwZXNwZWNzOm49W10sc2hvcnRfbmFtZTphLCJzeW1ib2wtcHJpbWFyeW5hbWUiOnIscHJvX25hbWU6b309ZTtyZXR1cm4gYSYmKCgwLGwuaGFzQ3J5cHRvVHlwZXNwZWMpKG4pfHwiZm9yZXgiPT09dCk/e25vdGVzR3JvdXBLZXk6YSxzeW1ib2xGdWxsTmFtZTpvPz9udWxsfTpyP3tub3Rlc0dyb3VwS2V5OnIsc3ltYm9sRnVsbE5hbWU6cn06bz97bm90ZXNHcm91cEtleTpvLHN5bWJvbEZ1bGxOYW1lOm99Om51bGx9ZnVuY3Rpb24gZyhlLHQpe3JldHVybiBlLnJlZHVjZSgoKGUsbik9PigwLGEuZW5zdXJlRGVmaW5lZCkodFtlXSkuZGF0ZU1vZGlmaWVkPigwLGEuZW5zdXJlRGVmaW5lZCkodFtuXSkuZGF0ZU1vZGlmaWVkP2U6bikpfX0sMTU1NTQ3KGUsdCxuKXsidXNlIHN0cmljdCI7dmFyIGEscixvLGksbCxzO24uZCh0LHtBbmFseXRpY3NBY3Rpb246KCk9Pm8sQW5hbHl0aWNzVUlPYmplY3Q6KCk9PnIsQW5hbHl0aWNzVUlPYmplY3RWYWx1ZTooKT0+YSxNYWNyb01hcEFuYWx5dGljc1VpT2JqZWN0OigpPT5zLFN5bWJvbFBhZ2VGaWxpbmdzVGFiRGF0YUlkczooKT0+bCxTeW1ib2xQYWdlRmlsaW5nc1RhYk9iamVjdElkczooKT0+aX0pLGZ1bmN0aW9uKGUpe2UuTElOSz0ibGluayIsZS5MSUtFPSJsaWtlIixlLkNPTU1FTlQ9ImNvbW1lbnQifShhfHwoYT17fSkpLGZ1bmN0aW9uKGUpe2UuU09DSUFMX0lOVEVSQUNUSU9OPSJzb2NpYWxfaW50ZXJhY3Rpb24iLGUuV0lER0VUX1RBQj0id2lkZ2V0X3RhYiIsZS5XSURHRVRfVElUTEU9IndpZGdldF90aXRsZSIsZS5TRUVfQUxMPSJzZWVfYWxsIixlLlNZTUJPTD0ic3ltYm9sIixlLklERUE9ImlkZWEiLGUuTkVXUz0ibmV3cyIsZS5CVVRUT049ImJ1dHRvbiIsZS5TQ1JPTExfQlVUVE9OPSJzY3JvbGxfYnV0dG9uIixlLlNUSUNLSU5HX01FTlU9InN0aWNraW5nX21lbnUiLGUuTUlOSV9DSEFSVF9TWU1CT0w9Im1pbmljaGFydF9zeW1ib2wiLGUuTU9SRV9CVVRUT049Im1vcmVfYnV0dG9uIn0ocnx8KHI9e30pKSxmdW5jdGlvbihlKXtlLkNMSUNLPSJjbGljayIsZS5WSUVXPSJ2aWV3In0ob3x8KG89e30pKSxmdW5jdGlvbihlKXtlLlNFVF9GSUxURVI9IlNFVF9GSUxURVIiLGUuT1BFTl9QT1BVUD0iT1BFTl9QT1BVUCIsZS5ET0NVTUVOVF9QT1BVUD0iRE9DVU1FTlRfUE9QVVAiLGUuRE9DVU1FTlRfQ0FSRD0iRE9DVU1FTlRfQ0FSRCJ9KGl8fChpPXt9KSksZnVuY3Rpb24oZSl7ZS5DQVRFR09SWV9QSUxMPSJjYXRlZ29yeV9waWxsIixlLlRJTUVfUkFOR0U9InRpbWVfcmFuZ2UiLGUuUEFHRV9UQUJfU1dJVENIPSJwYWdlX3RhYl9zd2l0Y2giLGUuRE9DVU1FTlRfQ0FSRF9DTElDSz0iZG9jdW1lbnRfY2FyZF9jbGljayIsZS5ET0NVTUVOVF9DQVRFR09SWV9DTElDSz0iZG9jdW1lbnRfY2F0ZWdvcnlfY2xpY2siLGUuRklMVEVSX09QRU49ImZpbHRlcl9vcGVuIixlLkZJTFRFUl9TRUxFQ1Q9ImZpbHRlcl9zZWxlY3QiLGUuUE9QVVBfQ0FURUdPUllfU0VMRUNUPSJwb3B1cF9jYXRlZ29yeV9zZWxlY3QiLGUuRE9DVU1FTlRfVEFCX1NXSVRDSD0iZG9jdW1lbnRfdGFiX3N3aXRjaCIsZS5SRUFEX0ZVTExfRE9DVU1FTlQ9InJlYWRfZnVsbF9kb2N1bWVudCIsZS5FQVJOSU5HX0JVVFRPTl9DTElDSz0iZWFybmluZ19idXR0b25fY2xpY2sifShsfHwobD17fSkpLGZ1bmN0aW9uKGUpe2UuTUFDUk9fTUFQX1RPT0xUSVA9Im1hY3JvX21hcF90b29sdGlwIixlLlNMSURFUj0ic2xpZGVyIixlLk1PVVNFPSJtb3VzZSIsZS5UT1VDSFBBRD0idG91Y2hwYWQiLGUuVUlfQlVUVE9OPSJ1aV9idXR0b24iLGUuSU5ESUNBVE9SX0JVQkJMRT0iaW5kaWNhdG9yX2J1YmJsZSIsZS5TRVNTSU9OX0lORElDQVRPUl9TRVQ9InNlc3Npb25faW5kaWNhdG9yX3NldCIsZS5NQUNST19NQVA9Im1hY3JvX21hcCIsZS5FQ09OT01JQ19JTkRJQ0FUT1JfRkFWT1JJVEU9ImVjb25vbWljX2luZGljYXRvcl9mYXZvcml0ZSIsZS5NQUNST19NQVBfUEFORUxfQ09MTEFQU0VEPSJwYW5lbF9jb2xsYXBzZWQiLGUuTUFDUk9fTUFQX1BBTkVMX0VYUEFOREVEPSJwYW5lbF9leHBhbmRlZCIsZS5NQUNST19NQVBfUkVHSU9OX1NXSVRDSEVSPSJyZWdpb25fc3dpdGNoZXIiLGUuTUFDUk9fTUFQX1NZTUJPTF9MSU5LPSJzeW1ib2xfbGluayIsZS5NQUNST19NQVBfTkVXU0ZMT1dfTElOSz0ibmV3c2Zsb3dfbGluayIsZS5NQUNST19NQVBfQ09OVEVOVF9TV0lUQ0hFUj0iY29udGVudF9zd2l0Y2hlciJ9KHN8fChzPXt9KSl9LDE0NzMoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7Z2V0QWNjZXNzR2F0ZTooKT0+aSx1c2VBY2Nlc3NHYXRlUmVzb2x2ZXI6KCk9Pmx9KQo7dmFyIGE9big3Nzk0NzQpLHI9big1NzIxNTMpLG89bigzMzEyMzMpO2Z1bmN0aW9uIGkoZSl7cmV0dXJuKDAsci5jb21wdXRlQWNjZXNzKSgoMCxvLmdldEFjY2Vzc1VzZXIpKCksZSl9ZnVuY3Rpb24gbChlKXtjb25zdCB0PSgwLG8udXNlQWNjZXNzVXNlcikoZSk7cmV0dXJuKDAsYS51c2VDYWxsYmFjaykoKGU9PigwLHIuY29tcHV0ZUFjY2VzcykodCxlKSksW3RdKX19LDMzMTIzMyhlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtnZXRBY2Nlc3NVc2VyOigpPT5sLHVzZUFjY2Vzc1VzZXI6KCk9PnN9KTt2YXIgYT1uKDc3OTQ3NCkscj1uKDIzMjk0OCksbz1uKDgyNzAxKSxpPW4oMzgxNTE3KTtmdW5jdGlvbiBsKCl7Y29uc3QgZT1Cb29sZWFuKHdpbmRvdy5pc19hdXRoZW50aWNhdGVkKSx0PXdpbmRvdy51c2VyO3JldHVybntpc0F1dGhlbnRpY2F0ZWQ6ZSxpc1BybzplJiYoMCxyLmlzUHJvKSh0KSxjYW5TdGFydEZyZWVUcmlhbDplJiYoMCxpLmlzVHJpYWxBdmFpbGFibGVGb3JVc2VyKSh0LGUpfX1mdW5jdGlvbiBzKGUpe2NvbnN0W3Qsbl09KDAsYS51c2VTdGF0ZSkoZT8/bCgpKTtyZXR1cm4oMCxhLnVzZUVmZmVjdCkoKCgpPT57bGV0IGU9ITA7Y29uc3QgdD0oKT0+e2UmJm4obCgpKX07d2luZG93LmlzX2F1dGhlbnRpY2F0ZWQmJm8uYXZhaWxhYmxlT2ZmZXJzLmVuc3VyZU9mZmVycygpLnRoZW4odCk7Y29uc3QgYT0oKT0+e28uYXZhaWxhYmxlT2ZmZXJzLmludmFsaWRhdGUodCl9O3JldHVybiB3aW5kb3cubG9naW5TdGF0ZUNoYW5nZS5zdWJzY3JpYmUobnVsbCxhKSwoKT0+e2U9ITEsd2luZG93LmxvZ2luU3RhdGVDaGFuZ2UudW5zdWJzY3JpYmUobnVsbCxhKX19KSxbXSksdH19LDEyMzE5NihlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtnZXROZXdzVXNlclByb1N0YXR1czooKT0+b30pO3ZhciBhPW4oMjMyOTQ4KSxyPW4oNzc0NTA3KTtmdW5jdGlvbiBvKCl7cmV0dXJuIHdpbmRvdy51c2VyPy5kZWNsYXJlZF9zdGF0dXM9PT1yLlVzZXJTdGF0dXMuUHJvJiYoMCxhLmlzUGFpZFBybykod2luZG93LnVzZXIpPyJwcm8iOiJub25fcHJvIn19LDM1NjI4NChlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtnZXRNZWRpYXRvclJlcXVlc3RQYXJhbXM6KCk9PmgsZ2V0TmV3c0h1YlJlcXVlc3RQYXJhbXM6KCk9PnYsZ2V0VHJhZGluZ1ZpZXdOZXdzOigpPT5tLGdldFRyYWRpbmdWaWV3TmV3c0J5U3ltYm9sVmlldzooKT0+cH0pO3ZhciBhPW4oNTY5Mzk4KTtmdW5jdGlvbiByKGUpe3JldHVybiEhZS5wdWJVc2FnZT8ubGVuZ3RofWZ1bmN0aW9uIG8oZSl7cmV0dXJuIm1hcmtldCJpbiBlJiYhIWUubWFya2V0Py5sZW5ndGh9ZnVuY3Rpb24gaShlKXtyZXR1cm4iYXJlYSJpbiBlJiYhIWUuYXJlYT8ubGVuZ3RofWZ1bmN0aW9uIGwoZSl7cmV0dXJuInN5bWJvbCJpbiBlJiYhIWUuc3ltYm9sPy5sZW5ndGh9ZnVuY3Rpb24gcyhlKXtyZXR1cm4icHJvdmlkZXIiaW4gZSYmISFlLnByb3ZpZGVyPy5sZW5ndGh9ZnVuY3Rpb24gYyhlKXtyZXR1cm4icHJpb3JpdHkiaW4gZSYmISFlLnByaW9yaXR5Py5sZW5ndGh9dmFyIHU9big4Nzg4MDMpLGQ9big0NjkyNDEpO2FzeW5jIGZ1bmN0aW9uIG0oZSx0LG4pe2NvbnN0IHI9ZyhlKTtyZXR1cm4oKDAsYS5pc0ZlYXR1cmVFbmFibGVkKSgibmV3c191c2VfbmV3c19tZWRpYXRvciIpPygwLHUuZ2V0TmV3c0Zsb3dOZXdzKShoKHIpLHQpOigwLGQuZ2V0TmV3c0h1Yk5ld3MpKHYociksdCkpLnRoZW4oKGU9PmYoZSxuKSkpfWFzeW5jIGZ1bmN0aW9uIHAoZSx0LG4pe2NvbnN0IHI9ZyhlKTtyZXR1cm4oKDAsYS5pc0ZlYXR1cmVFbmFibGVkKSgibmV3c191c2VfbmV3c19tZWRpYXRvciIpPygwLHUuZ2V0TmV3c1ZpZXdCeVN5bWJvbCkoaChyKSx0KTooMCxkLmdldE5ld3NIdWJWaWV3QnlTeW1ib2wpKHYociksdCkpLnRoZW4oKGU9PmYoZSxuKSkpLnRoZW4odyl9ZnVuY3Rpb24gZyhlKXtyZXR1cm4oMCxhLmlzRmVhdHVyZUVuYWJsZWQpKCJuZXdzX2VuYWJsZV9zdHJlYW1pbmciKXx8KGUuc3RyZWFtaW5nPXZvaWQgMCksZX1mdW5jdGlvbiBoKGUpe3JldHVybnsuLi5lLGZpbHRlcnM6T2JqZWN0LmVudHJpZXMoZS5maWx0ZXJzKS5maWx0ZXIoKChbZSx0XSk9PihlPT5udWxsIT1lJiYoIm51bWJlciI9PXR5cGVvZiBlfHxlLmxlbmd0aD4wKSkodCkpKS5tYXAoKChbZSx0XSk9PigoZSx0KT0+KHtpZDplLHZhbHVlczoibnVtYmVyIj09dHlwZW9mIHQ/W1N0cmluZyh0KV06dH0pKShlLHQpKSl9fWZ1bmN0aW9uIHYoZSl7Y29uc3QgdD17Y2xpZW50OmUuY2xpZW50LGxhbmc6ZS5maWx0ZXJzLmxhbmdbMF0sc3RyZWFtaW5nOmUuc3RyZWFtaW5nLHB1Yl91c2FnZTpyKGUpP2UucHViVXNhZ2U6dm9pZCAwLGNhdGVnb3J5Om8oZS5maWx0ZXJzKT9lLmZpbHRlcnMubWFya2V0WzBdOnZvaWQgMCxtYXJrZXRfY291bnRyeToobj1lLmZpbHRlcnMsIm1hcmtldF9jb3VudHJ5ImluIG4mJm4ubWFya2V0X2NvdW50cnk/Lmxlbmd0aD9lLmZpbHRlcnMubWFya2V0X2NvdW50cnlbMF06dm9pZCAwKSxhcmVhOmkoZS5maWx0ZXJzKT9lLmZpbHRlcnMuYXJlYVswXTp2b2lkIDAsc3ltYm9sOmwoZS5maWx0ZXJzKT9lLmZpbHRlcnMuc3ltYm9sWzBdOnZvaWQgMCxwcm92aWRlcjpzKGUuZmlsdGVycyk/ZS5maWx0ZXJzLnByb3ZpZGVyWzBdOnZvaWQgMCx0YWc6YyhlLmZpbHRlcnMpP2UuZmlsdGVycy5wcmlvcml0eVswXTp2b2lkIDB9O3ZhciBuO3JldHVybiBmdW5jdGlvbihlKXtyZXR1cm4iY29ycF9hY3Rpdml0eSJpbiBlJiYhIWUuY29ycF9hY3Rpdml0eT8ubGVuZ3RofShlLmZpbHRlcnMpJiYoZS5maWx0ZXJzLmNvcnBfYWN0aXZpdHkubGVuZ3RoPj01P3Quc2VjdGlvbj0iY29ycF9hY3Rpdml0eSI6dC5zZWN0aW9uPWUuZmlsdGVycy5jb3JwX2FjdGl2aXR5WzBdKSxvKGUuZmlsdGVycykmJihlLmZpbHRlcnMubWFya2V0Lmxlbmd0aD49OD90LmNhdGVnb3J5PSJiYXNlIjp0LmNhdGVnb3J5PWUuZmlsdGVycy5tYXJrZXRbMF0pLHR9ZnVuY3Rpb24gZihlLHQpe3JldHVybiB0P3suLi5lLGl0ZW1zOmUuaXRlbXMuc2xpY2UoMCx0KX06ZX0KY29uc3QgeT1bImVhcm5pbmdzIiwiZGl2aWRlbmRzIiwic2hhcmVfYnV5YmFja3MiLCJtZXJnZXJzX2FuZF9hY3F1aXNpdGlvbnMiLCJpbnNpZGVyX3RyYWRpbmciLCJyZWNvbW1lbmRhdGlvbiJdO2Z1bmN0aW9uIHcoZSl7aWYoIWUuc2VjdGlvbnMpcmV0dXJuIGU7Y29uc3QgdD1uZXcgTWFwKGUuc2VjdGlvbnMubWFwKChlPT5bZS5pZCxlXSkpKSxuPXkubWFwKChlPT50LmdldChlKSkpLmZpbHRlcigoZT0+dm9pZCAwIT09ZSkpO3JldHVybnsuLi5lLHNlY3Rpb25zOm59fX0sNDY5MjQxKGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse2dldE5ld3NIdWJMYXRlc3ROZXdzSXRlbTooKT0+dSxnZXROZXdzSHViTmV3czooKT0+bCxnZXROZXdzSHViTmV3c0J5U3ltYm9sczooKT0+YyxnZXROZXdzSHViVmlld0J5U3ltYm9sOigpPT5zfSk7dmFyIGE9big0OTI2NzcpLHI9bigzODQwMTcpLG89bigxNTY4NTApLGk9bigyMzE5NzMpO2FzeW5jIGZ1bmN0aW9uIGwoZSx0KXtyZXR1cm4gbShgJHt3aW5kb3cuTkVXU19TRVJWSUNFX1VSTH0vdjIvaGVhZGxpbmVzP2ArKDAsYS5jcmVhdGVVcmxQYXJhbXMpKGUpLHQpLnRoZW4oZCkudGhlbihnKX1hc3luYyBmdW5jdGlvbiBzKGUsdCl7cmV0dXJuIG0oYCR7d2luZG93Lk5FV1NfU0VSVklDRV9VUkx9L3YyL3ZpZXcvaGVhZGxpbmVzL3N5bWJvbD9gKygwLGEuY3JlYXRlVXJsUGFyYW1zKShlKSx0KS50aGVuKGQpLnRoZW4oZyl9YXN5bmMgZnVuY3Rpb24gYyhlLHQpe2NvbnN0IG49YCR7d2luZG93Lk5FV1NfU0VSVklDRV9VUkx9L3YyL2hlYWRsaW5lcy9zeW1ib2wtbGlzdGAsYT17bGFuZzplLmxhbmcsc3ltYm9sczplLnN5bWJvbHMsY2xpZW50OiJ3ZWIifSxvPWF3YWl0KDAsci5mZXRjaCkobix7bWV0aG9kOiJQT1NUIixzaWduYWw6dCxib2R5OkpTT04uc3RyaW5naWZ5KGEpfSk7aWYoIW8ub2spe2NvbnN0IGU9YXdhaXQgby50ZXh0KCk7dGhyb3cgRXJyb3IoYEVycm9yIHdoaWxlIGZldGNoICR7by51cmx9LiBSZXNwb25zZSBzdGF0dXMgJHtvLnN0YXR1c30gJHtvLnN0YXR1c1RleHR9LiBSZXNwb25zZSB0ZXh0OiAnJHtlfSdgKX1yZXR1cm4gby5qc29uKCkudGhlbihkKS50aGVuKGcpfWFzeW5jIGZ1bmN0aW9uIHUoZSx0KXtjb25zdCBuPWAke3dpbmRvdy5ORVdTX1NFUlZJQ0VfVVJMfS9oZWFkbGluZXMvbGF0ZXN0Lz9gO3JldHVybigwLHIuZmV0Y2gpKGAke259JHsoMCxhLmNyZWF0ZVVybFBhcmFtcykoZSl9YCx7c2lnbmFsOnR9KS50aGVuKChlPT5lLmpzb24oKSkpLnRoZW4ocCkudGhlbihpLmhlYWRsaW5lSXRlbVRyYW5zZm9ybSl9ZnVuY3Rpb24gZChlKXtyZXR1cm57Li4uZSxpdGVtczplLml0ZW1zLm1hcChwKX19YXN5bmMgZnVuY3Rpb24gbShlLHQsbil7Y29uc3QgYT1EYXRlLm5vdygpLGk9YXdhaXQoMCxyLmZldGNoKShlLHtzaWduYWw6dCxjcmVkZW50aWFsczpufSksbD1EYXRlLm5vdygpLWE7aWYoby50ZWxlbWV0cnkuc2VuZFJlcG9ydCgibmV3cyIsImFwaV90aW1lX2ZyYW1lIix7dmFsdWU6bH0pLG8udGVsZW1ldHJ5LnNlbmRSZXBvcnQoIm5ld3MiLCJhcGlfaHR0cF9zdGF0dXMiLHt2YWx1ZTppLnN0YXR1c30pLCFpLm9rKXtjb25zdCBlPWF3YWl0IGkudGV4dCgpO3Rocm93IEVycm9yKGBFcnJvciB3aGlsZSBmZXRjaCAke2kudXJsfS4gUmVzcG9uc2Ugc3RhdHVzICR7aS5zdGF0dXN9ICR7aS5zdGF0dXNUZXh0fS4gUmVzcG9uc2UgdGV4dDogJyR7ZX0nYCl9cmV0dXJuIGF3YWl0IGkuanNvbigpfWZ1bmN0aW9uIHAoZSl7cmV0dXJuey4uLmUscHJvdmlkZXI6e2lkOmUucHJvdmlkZXI/PyIiLG5hbWU6ZS5zb3VyY2UsbG9nb19pZDplLnNvdXJjZUxvZ29JZCx1cmw6ZS5zb3VyY2VVcmx9fX1mdW5jdGlvbiBnKGUpe3JldHVybnsuLi5lLGl0ZW1zOmUuaXRlbXMubWFwKGkuaGVhZGxpbmVJdGVtVHJhbnNmb3JtKX19fSw4Nzg4MDMoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7Z2V0TmV3c0Zsb3dOZXdzOigpPT5zLGdldE5ld3NWaWV3QnlTeW1ib2w6KCk9PmMsbWVkaWF0b3JVcmw6KCk9PnV9KTt2YXIgYT1uKDM4NDAxNykscj1uKDQ5MjY3Nyksbz1uKDIzMTk3MyksaT1uKDE1Njg1MCksbD1uKDEyMzE5Nik7big0NjkyNDEpO2FzeW5jIGZ1bmN0aW9uIHMoZSx0KXtyZXR1cm4gbShgJHt1KCJwdWJsaWMvbmV3cy1mbG93L3YyL25ld3MiKX0/JHtkKGUpfWAse3NpZ25hbDp0fSkudGhlbihwKX1hc3luYyBmdW5jdGlvbiBjKGUsdCl7cmV0dXJuIG0oYCR7dSgicHVibGljL3ZpZXcvdjEvc3ltYm9sIil9PyR7ZChlKX1gLHtzaWduYWw6dH0pLnRoZW4ocCl9ZnVuY3Rpb24gdShlKXtsZXQgdD1gJHt3aW5kb3cuTkVXU19NRURJQVRPUl9VUkx9YDtyZXR1cm4gdC5lbmRzV2l0aCgiLyIpfHwodCs9Ii8iKSx0K2V9ZnVuY3Rpb24gZChlKXtyZXR1cm5bKG49ZS5maWx0ZXJzLG4uc2xpY2UoKS5zb3J0KCgoZSx0KT0+ZS5pZDx0LmlkPy0xOjEpKS5yZWR1Y2UoKChlLHQpPT57aWYoMD09PXQudmFsdWVzLmxlbmd0aClyZXR1cm4gZTtjb25zdCBuPXQudmFsdWVzLnNvcnQoKS5qb2luKCIsIiksYT1lbmNvZGVVUklDb21wb25lbnQodC5pZCsiOiIrbik7cmV0dXJuIGUucHVzaChgZmlsdGVyPSR7YX1gKSxlfSksW10pLmpvaW4oIiYiKSksKHQ9ZSwoMCxyLmNyZWF0ZVVybFBhcmFtcykoe2NsaWVudDp0LmNsaWVudCxzdHJlYW1pbmc6dC5zdHJlYW1pbmcscHViX3VzYWdlOnQucHViVXNhZ2U/dC5wdWJVc2FnZS5qb2luKCIsIik6dm9pZCAwLGluY2x1ZGU6dC5pbmNsdWRlP3QuaW5jbHVkZS5qb2luKCIsIik6dm9pZCAwLHVzZXJfcHJvc3RhdHVzOigwLGwuZ2V0TmV3c1VzZXJQcm9TdGF0dXMpKCl9KSldLmZpbHRlcigoZT0+ZS5sZW5ndGg+MCkpLmpvaW4oIiYiKTt2YXIgdCxufWFzeW5jIGZ1bmN0aW9uIG0oZSx0KXtjb25zdCBuPURhdGUubm93KCkscj1hd2FpdCgwLGEuZmV0Y2gpKGUsdCksbz1EYXRlLm5vdygpLW47aWYoaS50ZWxlbWV0cnkuc2VuZFJlcG9ydCgibmV3cyIsImFwaV90aW1lX2ZyYW1lIix7dmFsdWU6b30pLGkudGVsZW1ldHJ5LnNlbmRSZXBvcnQoIm5ld3MiLCJhcGlfaHR0cF9zdGF0dXMiLHt2YWx1ZTpyLnN0YXR1c30pLCFyLm9rKXsKY29uc3QgZT1hd2FpdCByLnRleHQoKTt0aHJvdyBFcnJvcihgRXJyb3Igd2hpbGUgZmV0Y2ggJHtyLnVybH0uIFJlc3BvbnNlIHN0YXR1cyAke3Iuc3RhdHVzfSAke3Iuc3RhdHVzVGV4dH0uIFJlc3BvbnNlIHRleHQ6ICcke2V9J2ApfXJldHVybiBhd2FpdCByLmpzb24oKX1mdW5jdGlvbiBwKGUpe3JldHVybnsuLi5lLGl0ZW1zOmUuaXRlbXMubWFwKG8uaGVhZGxpbmVJdGVtVHJhbnNmb3JtKX19fSw3NzY3MjgoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7b3Blbk5ld3NEZXNjcmlwdGlvbkRpYWxvZzooKT0+b30pO3ZhciBhPW4oNzc4NjUzKSxyPW4oNzM0ODAxKTtmdW5jdGlvbiBvKGUsdCxuLG8saSl7Y29uc3QgbD10LmZpbHRlcigoZT0+IWUuaXNFeHRlcm5hbCkpLHM9KDAsci5wcm9taXNpZnlOZXdzSXRlbXMpKGwpOygwLGEub3BlblRyYWRpbmdWaWV3TmV3c0Rlc2NyaXB0aW9uRGlhbG9nKShsLmZpbmRJbmRleCgodD0+dC5pZD09PWUuaWQpKSxzLG4sbyxpKX19LDE5MjQ3MihlLHQsbil7InVzZSBzdHJpY3QiO24ucih0KSxuLmQodCx7VHJhZGluZ1ZpZXdOZXdzUHJvdmlkZXJGZXRjaGVyOigpPT5vfSk7dmFyIGE9bigyMTQ5ODcpLHI9bigzNTYyODQpO2NsYXNzIG97Y29uc3RydWN0b3IoKXt0aGlzLl9jYWNoZT1uZXcgTWFwfWFzeW5jIGZldGNoKGUsdCxuLG8pe2NvbnN0IGk9cGVyZm9ybWFuY2Uubm93KCk7dGhpcy5fcmVtb3ZlRXhwaXJlZENhY2hlSXRlbXMoaSk7Y29uc3QgbD10aGlzLl9nZXRDYWNoZWRLZXkoZSkscz10aGlzLl9jYWNoZS5nZXQobCk7bGV0IGM7aWYodm9pZCAwIT09cyljPXMucHJvbWlzZTtlbHNle2M9KDAsci5nZXRUcmFkaW5nVmlld05ld3MpKGUpO2NvbnN0IG49e3Byb21pc2U6Yyx0aW1lOmksZXhwaXJhdGlvblRpbWU6aSt0fTt0aGlzLl9jYWNoZS5zZXQobCxuKSxjLmNhdGNoKCgoKT0+e3RoaXMuX2NhY2hlLmdldChsKT09PW4mJnRoaXMuX2NhY2hlLmRlbGV0ZShsKX0pKX1yZXR1cm4oMCxhLnJlc3BlY3RBYm9ydCkobz8/bnVsbCxjLnRoZW4oKGU9Pih7c3RyZWFtaW5nOmUuc3RyZWFtaW5nLGl0ZW1zOmUuaXRlbXMuc2xpY2UoMCxuKX0pKSkpfWFzeW5jIGZldGNoQnlTeW1ib2woZSx0LG4pe2NvbnN0IG89cGVyZm9ybWFuY2Uubm93KCk7dGhpcy5fcmVtb3ZlRXhwaXJlZENhY2hlSXRlbXMobyk7Y29uc3QgaT0ic3ltYm9sIit0aGlzLl9nZXRDYWNoZWRLZXkoZSksbD10aGlzLl9jYWNoZS5nZXQoaSk7bGV0IHM7cmV0dXJuIHZvaWQgMCE9PWw/cz1sLnByb21pc2U6KHM9KDAsci5nZXRUcmFkaW5nVmlld05ld3NCeVN5bWJvbFZpZXcpKGUpLHRoaXMuX2NhY2hlLnNldChpLHtwcm9taXNlOnMsdGltZTpvLGV4cGlyYXRpb25UaW1lOm8rdH0pKSwoMCxhLnJlc3BlY3RBYm9ydCkobj8/bnVsbCxzKX1zdGF0aWMgaW5zdGFuY2UoKXtyZXR1cm4gdm9pZCAwPT09by5faW5zdGFuY2UmJihvLl9pbnN0YW5jZT1uZXcgbyksby5faW5zdGFuY2V9X3JlbW92ZUV4cGlyZWRDYWNoZUl0ZW1zKGUpe2NvbnN0IHQ9W107Zm9yKGNvbnN0W24sYV1vZiB0aGlzLl9jYWNoZSlhLmV4cGlyYXRpb25UaW1lPGUmJnQucHVzaChuKTt0LmZvckVhY2goKGU9PnRoaXMuX2NhY2hlLmRlbGV0ZShlKSkpfV9nZXRDYWNoZWRLZXkoZSl7cmV0dXJuIEpTT04uc3RyaW5naWZ5KHtzeW1ib2w6ZS5maWx0ZXJzLnN5bWJvbFswXSxsYW5nOmUuZmlsdGVycy5sYW5nWzBdLGNsaWVudDplLmNsaWVudCxjb3JwX2FjdGl2aXR5OmUuZmlsdGVycy5jb3JwX2FjdGl2aXR5P2UuZmlsdGVycy5jb3JwX2FjdGl2aXR5WzBdOnZvaWQgMH0pfX19LDQ5MjkzNChlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtOZXdzU3RyZWFtaW5nOigpPT5ofSk7dmFyIGE9big4NDg3OTMpLHI9big5NDgzODApLG89bigyMjEwNjEpLGk9big4MDk5OTMpLGw9big2MzI2ODYpO2NsYXNzIHN7Y29uc3RydWN0b3IoZSl7dGhpcy5fb25DaGFuZ2VWaXNpYmlsaXR5Qm91bmQ9dGhpcy5fb25DaGFuZ2VWaXNpYmlsaXR5LmJpbmQodGhpcyksdGhpcy5fd2FrZVVwPWUud2FrZVVwLHRoaXMuX3R1cm5Ub1NsZWVwPWUudHVyblRvU2xlZXAsdGhpcy5faGliZXJuYXRpb25EZWxheT1lLmhpYmVybmF0aW9uRGVsYXksdGhpcy5faGF2ZUV2ZXJCZWVuSGliZXJuYXRlZD0hMSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJ2aXNpYmlsaXR5Y2hhbmdlIix0aGlzLl9vbkNoYW5nZVZpc2liaWxpdHlCb3VuZCksdGhpcy5faGliZXJuYXRpb25EZWxheS5zdWJzY3JpYmUoKCgpPT57dGhpcy5fdGltZW91dElkJiZ0aGlzLl9zY2hlZHVsZUhpYmVybmF0aW9uKCl9KSl9ZGVzdHJveSgpe2RvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInZpc2liaWxpdHljaGFuZ2UiLHRoaXMuX29uQ2hhbmdlVmlzaWJpbGl0eUJvdW5kKSxjbGVhclRpbWVvdXQodGhpcy5fdGltZW91dElkKX1fb25DaGFuZ2VWaXNpYmlsaXR5KCl7ZG9jdW1lbnQuaGlkZGVuP3RoaXMuX3NjaGVkdWxlSGliZXJuYXRpb24oKTooY2xlYXJUaW1lb3V0KHRoaXMuX3RpbWVvdXRJZCksdGhpcy5fdGltZW91dElkPXZvaWQgMCx0aGlzLl93YWtlVXAodGhpcy5faGF2ZUV2ZXJCZWVuSGliZXJuYXRlZCkpfV9zY2hlZHVsZUhpYmVybmF0aW9uKCl7dGhpcy5fdGltZW91dElkJiZjbGVhclRpbWVvdXQodGhpcy5fdGltZW91dElkKTtjb25zdCBlPXRoaXMuX2hpYmVybmF0aW9uRGVsYXkudmFsdWUoKTt0aGlzLl90aW1lb3V0SWQ9c2V0VGltZW91dCh0aGlzLl9vblR1cm5Ub1NsZWVwLmJpbmQodGhpcyksZSl9X29uVHVyblRvU2xlZXAoKXt0aGlzLl90dXJuVG9TbGVlcCgpLGNsZWFyVGltZW91dCh0aGlzLl90aW1lb3V0SWQpLHRoaXMuX3RpbWVvdXRJZD12b2lkIDAsdGhpcy5faGF2ZUV2ZXJCZWVuSGliZXJuYXRlZD0hMH19dmFyIGMsdT1uKDU2OTM5OCksZD1uKDIzMjM2NCk7IWZ1bmN0aW9uKGUpe2VbZS5PbmVNaW51dGU9NmU0XT0iT25lTWludXRlIixlW2UuRml2ZU1pbnV0ZXM9M2U1XT0iRml2ZU1pbnV0ZXMiLGVbZS5UZW5NaW51dGVzPTZlNV09IlRlbk1pbnV0ZXMiLGVbZS5TaXh0eU1pbnV0ZXM9MzZlNV09IlNpeHR5TWludXRlcyJ9KGN8fChjPXt9KSkKO2NvbnN0IG09bmV3IGQuV2F0Y2hlZFZhbHVlKGZ1bmN0aW9uKCl7aWYoKDAsdS5pc0ZlYXR1cmVFbmFibGVkKSgibmV3c19zdHJlYW1pbmdfaGliZXJuYXRpb25fZGVsYXlfNjBtaW4iKSlyZXR1cm4gMzZlNTtpZigoMCx1LmlzRmVhdHVyZUVuYWJsZWQpKCJuZXdzX3N0cmVhbWluZ19oaWJlcm5hdGlvbl9kZWxheV8xMG1pbiIpKXJldHVybiA2ZTU7aWYoKDAsdS5pc0ZlYXR1cmVFbmFibGVkKSgibmV3c19zdHJlYW1pbmdfaGliZXJuYXRpb25fZGVsYXlfNW1pbiIpKXJldHVybiAzZTU7cmV0dXJuIDZlNH0oKSkucmVhZG9ubHkoKTtjbGFzcyBwIGV4dGVuZHMgaS5QZXJzaXN0ZW50RXZlbnRTb3VyY2VUcmFuc3BvcnR7Y29uc3RydWN0b3IoZSl7c3VwZXIoKGU9PnRoaXMuX29uTWVzc2FnZShlKSkpLHRoaXMuX2NoYW5uZWw9ZS5jaGFubmVsLHRoaXMuX2lzRmlyc3RDb25uZWN0aW9uPSEwLHRoaXMuX29uTmV3c01lc3NhZ2VDYj1lLm1lc3NhZ2VIYW5kbGVyLHRoaXMuX3ByZXBhcmVQYXJhbXNGb3JSZWNvbm5lY3Rpb249ZS5wcmVwYXJlUGFyYW1zRm9yUmVjb25uZWN0aW9uLHRoaXMuX2hpYmVybmF0aW9uRGVsYXk9bS5zcGF3bigpLHRoaXMuX2hpYmVybmF0aW9uU2NoZWR1bGVyPW5ldyBzKHt0dXJuVG9TbGVlcDooKT0+eygwLHUuaXNGZWF0dXJlRW5hYmxlZCkoIm5ld3NfZW5hYmxlX3N0cmVhbWluZ19oaWJlcm5hdGlvbiIpJiZ0aGlzLmRpc2Nvbm5lY3QoKX0sd2FrZVVwOmFzeW5jKCk9Pnt0aGlzLmNvbm5lY3Rpb25TdGF0dXMoKS52YWx1ZSgpPT09bC5Db25uZWN0aW9uU3RhdHVzLkNsb3NlZCYmdGhpcy5jb25uZWN0KCl9LGhpYmVybmF0aW9uRGVsYXk6dGhpcy5faGliZXJuYXRpb25EZWxheX0pfWFzeW5jIHN0YXJ0KCl7YXdhaXQgdGhpcy5jb25uZWN0KCk7KGF3YWl0IHRoaXMuX3dhaXRVbnRpbENvbm5lY3Rpb25PcGVuZWQoMWUzKSkoKX1zZXRDaGFubmVsKGUpe3RoaXMuX2NoYW5uZWw9ZX1kZXN0cm95KCl7dGhpcy5kaXNjb25uZWN0KCksdGhpcy5faGliZXJuYXRpb25TY2hlZHVsZXIuZGVzdHJveSgpLHRoaXMuX2hpYmVybmF0aW9uRGVsYXkuZGVzdHJveSgpfWFzeW5jIF9wcmVwYXJlUGFyYW1zRm9yQ29ubmVjdGlvbihlKXt0aGlzLl9pc0ZpcnN0Q29ubmVjdGlvbnx8YXdhaXQgdGhpcy5fcHJlcGFyZVBhcmFtc0ZvclJlY29ubmVjdGlvbihlKSx0aGlzLl9pc0ZpcnN0Q29ubmVjdGlvbj0hMTtjb25zdCB0PWZ1bmN0aW9uKGUpe2NvbnN0IHQ9bmV3IFVSTCh3aW5kb3cuTkVXU19TVFJFQU1JTkdfVVJMKTt0LmhyZWYuZW5kc1dpdGgoIi8iKXx8KHQuaHJlZis9Ii8iKTtyZXR1cm4gbmV3IFVSTChlLHQpfSh0aGlzLl9jaGFubmVsKTt0aGlzLl91cmw9dD90LnRvU3RyaW5nKCk6IiJ9X2dldFJlY29ubmVjdFRpbWVvdXQoKXtjb25zdCBlPTFlMypNYXRoLmV4cCh0aGlzLl9yZWNvbm5lY3RDb3VudCk7cmV0dXJuIGZ1bmN0aW9uKGUpe2NvbnN0IHQ9ZS0uMSplLG49ZSsuMSplO3JldHVybiBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqKG4tdCsxKSkrdH0oTWF0aC5taW4oZSw2ZTUpKX1fb25NZXNzYWdlKGUpe2lmKCJzdHJpbmciIT10eXBlb2YgZSl0aHJvdyBuZXcgRXJyb3IoIldyb25nIG1lc3NhZ2UgdHlwZSwgZXhwZWN0ZWQgc3RyaW5nIik7Y29uc3QgdD1KU09OLnBhcnNlKGUpO3ZhciBuOyJuZXciPT09dC50eXBlJiYobnVsbCE9KG49dC5uZXdzLnN0b3J5X2lkKSYmIiIhPT1uKSYmdGhpcy5fb25OZXdzTWVzc2FnZUNiKHQubmV3cy5zdG9yeV9pZCl9YXN5bmMgX3dhaXRVbnRpbENvbm5lY3Rpb25PcGVuZWQoZSl7cmV0dXJuIG5ldyBQcm9taXNlKCh0PT57Y29uc3Qgbj1zZXRUaW1lb3V0KCgoKT0+e3QoKCgpPT57fSkpfSksZSksYT1lPT57ZT09PWwuQ29ubmVjdGlvblN0YXR1cy5PcGVuJiYodCgoKCk9Pnt9KSksY2xlYXJUaW1lb3V0KG4pKX07cmV0dXJuIHRoaXMuX2Nvbm5lY3Rpb25TdGF0dXMuc3Vic2NyaWJlKGEpLCgpPT57dGhpcy5fY29ubmVjdGlvblN0YXR1cy51bnN1YnNjcmliZShhKSxjbGVhclRpbWVvdXQobil9fSkpfX1jb25zdCBnPSgwLG8uZ2V0TG9nZ2VyKSgiTmV3c1N0cmVhbWluZyIpO2NsYXNzIGh7Y29uc3RydWN0b3IoZSl7dGhpcy5fbmV3SXRlbT1uZXcgci5EZWxlZ2F0ZSx0aGlzLl9uZXdTdG9yeUlkPW5ldyByLkRlbGVnYXRlLHRoaXMuX3Jlc29sdmVTdG9yeU1vZGU9ITAsdGhpcy5fY2hhbm5lbD1lLmNoYW5uZWwsZy5sb2dOb3JtYWwoYG5ldyBzdHJlYW0gJHt0aGlzLl9jaGFubmVsfWApLHRoaXMuX2xvYWRlZE5ld3NJZHM9ZS5sb2FkZWROZXdzSWRzLHRoaXMuX25ld0l0ZW1IYW5kbGVyPWUubmV3SXRlbUhhbmRsZXIsdGhpcy5fYmVmb3JlUmVjb25uZWN0PWUuYmVmb3JlUmVjb25uZWN0LHRoaXMuX3N1YnNjcmlwdGlvbj10aGlzLl9jcmVhdGVTdHJlYW1pbmdTdWJzY3JpcHRpb24oKX1zZXRSZXNvbHZlU3RvcnlNb2RlKGUpe3RoaXMuX3Jlc29sdmVTdG9yeU1vZGU9ZX1hc3luYyBzdGFydCgpe2cubG9nTm9ybWFsKGBzdGFydCBzdHJlYW0gJHt0aGlzLl9jaGFubmVsfWApLGF3YWl0KHRoaXMuX3N1YnNjcmlwdGlvbj8uc3RhcnQoKSksZy5sb2dOb3JtYWwoYHN0cmVhbSAke3RoaXMuX2NoYW5uZWx9IHN0YXJ0ZWRgKX1kZXN0cm95KCl7dGhpcy5fbmV3SXRlbS5kZXN0cm95KCksdGhpcy5fbmV3U3RvcnlJZC5kZXN0cm95KCksdGhpcy5fc3Vic2NyaXB0aW9uPy5kZXN0cm95KCksZy5sb2dOb3JtYWwoYGRlc3Ryb3kgc3RyZWFtICR7dGhpcy5fY2hhbm5lbH1gKX1uZXdJdGVtKCl7cmV0dXJuIHRoaXMuX25ld0l0ZW19bmV3U3RvcnlJZCgpe3JldHVybiB0aGlzLl9uZXdTdG9yeUlkfXN1Y2Nlc3NSZWNvbm5lY3RSZWFjaGVkRXZlbnQoKXtyZXR1cm4gdGhpcy5fc3Vic2NyaXB0aW9uPy5zdWNjZXNzUmVjb25uZWN0UmVhY2hlZEV2ZW50KCl9X2NyZWF0ZVN0cmVhbWluZ1N1YnNjcmlwdGlvbigpe3JldHVybiBuZXcgcCh7Y2hhbm5lbDp0aGlzLl9jaGFubmVsLG1lc3NhZ2VIYW5kbGVyOnRoaXMuX21lc3NhZ2VIYW5kbGVyLmJpbmQodGhpcyksCnByZXBhcmVQYXJhbXNGb3JSZWNvbm5lY3Rpb246dGhpcy5fcHJlcGFyZVBhcmFtc0ZvclJlY29ubmVjdGlvbi5iaW5kKHRoaXMpfSl9X21lc3NhZ2VIYW5kbGVyKGUpe3RoaXMuX2xvYWRlZE5ld3NJZHMuaGFzKGUpfHwodGhpcy5fbG9hZGVkTmV3c0lkcy5hZGQoZSksdGhpcy5fbmV3U3RvcnlJZC5maXJlKGUpLHRoaXMuX3Jlc29sdmVTdG9yeU1vZGUmJigwLGEuZ2V0VHJhZGluZ1ZpZXdTdG9yeUl0ZW0pKGUpLnRoZW4oKGU9PntpZigiZXJyb3JTdGF0dXMiaW4gZSl0aHJvdyBuZXcgRXJyb3I7dGhpcy5fbmV3SXRlbS5maXJlKGUpLHRoaXMuX25ld0l0ZW1IYW5kbGVyPy4oZSl9KSkuY2F0Y2goKCgpPT57dGhpcy5fbG9hZGVkTmV3c0lkcy5kZWxldGUoZSl9KSkpfWFzeW5jIF9wcmVwYXJlUGFyYW1zRm9yUmVjb25uZWN0aW9uKGUpe2NvbnN0e2NoYW5uZWw6dCxsb2FkZWROZXdzSWRzOm59PWF3YWl0IHRoaXMuX2JlZm9yZVJlY29ubmVjdChlKTtpZighdClyZXR1cm4gZy5sb2dXYXJuKCJubyBjaGFubmVsIGZvciByZWNvbm5lY3Rpb24iKSx2b2lkIHRoaXMuZGVzdHJveSgpO3RoaXMuX3N1YnNjcmlwdGlvbj8uc2V0Q2hhbm5lbCh0KSx0aGlzLl9sb2FkZWROZXdzSWRzPW59fX0sNjE2NDQoZSx0LG4peyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBhKGUpe3JldHVybnsuLi5lLHB1Ymxpc2hlZDpyKGUucHVibGlzaGVkKX19ZnVuY3Rpb24gcihlKXtyZXR1cm4gZT8xZTMqZTpEYXRlLm5vdygpfW4uZCh0LHtjb252ZXJ0TmV3c1RvVW5peFRpbWU6KCk9PmEsY29udmVydFB1Ymxpc2hlZFRvVW5peFRpbWU6KCk9PnJ9KX0sMjMxOTczKGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse2hlYWRsaW5lSXRlbVRyYW5zZm9ybTooKT0+cn0pO3ZhciBhPW4oNjE2NDQpO2Z1bmN0aW9uIHIoZSl7Y29uc3R7aXNfZmxhc2g6dCxwYXl3YWxsOm4sLi4ucn09KDAsYS5jb252ZXJ0TmV3c1RvVW5peFRpbWUpKGUpO3JldHVybnsuLi5yLGlzRmxhc2g6dD8/dm9pZCAwLHBheXdhbGw6bj8/ITF9fX0sMjAyODkoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7aGFuZGxlTmV3c1Byb05hbWU6KCk9PnJ9KTt2YXIgYT1uKDg1MTQ1OCk7ZnVuY3Rpb24gcihlLHQpe2lmKCJzcHJlYWQiIT09dClyZXR1cm4gZTt0cnl7cmV0dXJuKDAsYS50b2tlbml6ZSkoZSkuZmlsdGVyKChlPT4ic3ltYm9sIj09PWUudHlwZSkpLm1hcCgoZT0+ZS52YWx1ZSkpWzBdfWNhdGNoe3JldHVybiBlfX19LDU0NDEwNShlLHQsbil7InVzZSBzdHJpY3QiO24ucih0KSxuLmQodCx7b25OZXdzQ2FyZEFjdGlvbjooKT0+dSxvbk5ld3NDYXJkQ2xpY2s6KCk9PmR9KTt2YXIgYT1uKDIyMTA2MSkscj1uKDkyNTM5MSksbz1uKDc3NjcyOCk7dmFyIGk9big1NzIxNTMpLGw9bigxNDczKSxzPW4oNDQwMzQ3KTtjb25zdCBjPSgwLGEuZ2V0TG9nZ2VyKSgiTmV3cy5DYXJkQ2xpY2tBY3Rpb24iKTtmdW5jdGlvbiB1KGUpe3JldHVybiB0PT4oZS5uZXdzSXRlbS5pc0V4dGVybmFsfHx0LnByZXZlbnREZWZhdWx0KCksZChlKSl9ZnVuY3Rpb24gZChlKXtjb25zdHtuZXdzSXRlbTp0LG5ld3NJdGVtczphLHBsYWNlbWVudDp1LG9uQ2FyZEFjdGlvbjpkLG5ld3NEaWFsb2dPcGVuOm0sb25OZXdzSXRlbUNoYW5nZTpwfT1lO2lmKGUubmV3c0l0ZW0uaXNFeHRlcm5hbCYmIWUubmV3c0l0ZW0ubGluaylyZXR1cm4gdm9pZCBjLmxvZ0Vycm9yKGBObyBsaW5rIGZvciBleHRlcm5hbCBuZXdzIGl0ZW0gd2l0aCBpZCAiJHtlLm5ld3NJdGVtLmlkfSJgKTtjb25zdCBnPSgpPT57IWZ1bmN0aW9uKGUpe2NvbnN0e25ld3NJdGVtOnQsbmV3c0l0ZW1zOm4scGxhY2VtZW50OmEsb25PcGVuOmksb25OZXdzSXRlbUNoYW5nZTpsfT1lOygwLHIudHJhY2tOZXdzRXZlbnQpKHtuZXdzX2V2ZW50OiJvcGVuX25ld3MiLG5ld3NfaWQ6dC5pZCxwcm92aWRlcjp0LnByb3ZpZGVyLm5hbWUscGFnZTooMCxyLmdldFBhZ2VOYW1lKSgpLHBsYWNlbWVudDphLGxhbmd1YWdlOm51bGx9KSx0LmlzRXh0ZXJuYWx8fCgwLG8ub3Blbk5ld3NEZXNjcmlwdGlvbkRpYWxvZykodCxuLGEsaSxsKX0oe25ld3NJdGVtOnQsbmV3c0l0ZW1zOmEscGxhY2VtZW50OnUsb25PcGVuOm0sb25OZXdzSXRlbUNoYW5nZTpwfSksZD8uKCl9LGg9KDAsbC5nZXRBY2Nlc3NHYXRlKSh0KTtzd2l0Y2godSE9PXMuTmV3c1dpZGdldFBsYWNlbWVudC5OZXdzRmxvdyYmaC5hY2Nlc3NMZXZlbD09PWkuQWNjZXNzTGV2ZWwuUHJvdmlkZXI/aC53YXlUb1VubG9jazp2b2lkIDApe2Nhc2UgaS5XYXlUb1VubG9jay5TaWduVXA6d2luZG93LnJ1bk9yU2lnbkluKGcse3NvdXJjZToiTmV3cyBpdGVtIHBlcm1pc3Npb24gcHJvdmlkZXIiLG1vZGU6InNpZ251cCJ9KTticmVhaztjYXNlIGkuV2F5VG9VbmxvY2suU3RhcnRBRnJlZVRyaWFsOiFhc3luYyBmdW5jdGlvbihlKXtjb25zdHtvcGVuUHJpY2luZzp0fT1hd2FpdCBQcm9taXNlLmFsbChbbi5lKDM5NTA0KSxuLmUoMzMyMjEpLG4uZSg4ODU5MCldKS50aGVuKG4uYmluZChuLDc1MTcwNSkpO3Qoe2ZlYXR1cmU6Im5ld3MtaGVhZGxpbmUiLHRyaWFJZlNpZ25JbjplfSl9KCEwKTticmVhaztkZWZhdWx0OmcoKX19fSwxODM5NTMoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7Z2V0SW5kdXN0cnlVcmw6KCk9PnJ9KTt2YXIgYT1uKDMxMTQ5KTtmdW5jdGlvbiByKGUsdCl7Y29uc3Qgbj1mdW5jdGlvbihlKXtyZXR1cm4gZS5yZXBsYWNlKC9bXmEtekEtWjAtOV0rL2csIi0iKS5yZXBsYWNlKC8tKy9nLCItIikucmVwbGFjZSgvXi18LSQvZywiIikudG9Mb3dlckNhc2UoKX0oZSk7cmV0dXJuYC9tYXJrZXRzL3N0b2Nrcy0ke2EubWFya2V0QWxpYXNlc1t0XXx8dH0vc2VjdG9yYW5kaW5kdXN0cnktaW5kdXN0cnkvJHtufS9gfX0sMzExNDkoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7Z2V0U2VjdG9yVXJsOigpPT5yLG1hcmtldEFsaWFzZXM6KCk9PmF9KTtjb25zdCBhPXthbWVyaWNhOiJ1c2EiLGV1cm9uZXh0OiJldXJvcGUiLGhvbmdrb25nOiJob25nLWtvbmciLG5ld3plYWxhbmQ6Im5ldy16ZWFsYW5kIix1azoidW5pdGVkLWtpbmdkb20iLHJzYToic291dGgtYWZyaWNhIiwKc3JpbGFua2E6InNyaS1sYW5rYSJ9O2Z1bmN0aW9uIHIoZSx0KXtjb25zdCBuPWZ1bmN0aW9uKGUpe3JldHVybiBlLnJlcGxhY2UoL1teYS16QS1aMC05XSsvZywiLSIpLnJlcGxhY2UoLy0rL2csIi0iKS5yZXBsYWNlKC9eLXwtJC9nLCIiKS50b0xvd2VyQ2FzZSgpfShlKTtyZXR1cm5gL21hcmtldHMvc3RvY2tzLSR7YVt0XXx8dH0vc2VjdG9yYW5kaW5kdXN0cnktc2VjdG9yLyR7bn0vYH19LDM0ODM4OChlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHt1c2VTZWFzb25hbHNDaGFydDooKT0+d30pO3ZhciBhPW4oNzc5NDc0KSxyPW4oNjc4MzEyKSxvPW4oMTM4NjM4KSxpPW4oNTA1NTYpLGw9big2MTY2NDMpLHM9big0Njg0OTMpLGM9bigyMzIzNjQpLHU9big2MDE4NDEpLGQ9big0OTM1MzkpLG09big5ODQ4MTApLHA9big4NDA5MzMpLGc9big0ODgwNSksaD1uKDE4MDE5OCk7Y29uc3Qgdj17c2Vhc29uTGluZXNDb2xvcjooMCxpLmdldEhleENvbG9yQnlOYW1lKSgiY29sb3ItY29sZC1ncmF5LTY1MCIpLGF2ZXJhZ2VMaW5lQ29sb3I6KDAsaS5nZXRIZXhDb2xvckJ5TmFtZSkoImNvbG9yLWNvbGQtZ3JheS0yMDAiKX0sZj17c2Vhc29uTGluZXNDb2xvcjooMCxpLmdldEhleENvbG9yQnlOYW1lKSgiY29sb3ItY29sZC1ncmF5LTIwMCIpLGF2ZXJhZ2VMaW5lQ29sb3I6KDAsaS5nZXRIZXhDb2xvckJ5TmFtZSkoImNvbG9yLWNvbGQtZ3JheS05MDAiKX0seT17Y2hhcnRPcHRpb25zOntzZXJpZXM6e2Nyb3NzaGFpck1hcmtlclJhZGl1czozLjUsY3Jvc3NoYWlyTWFya2VyQm9yZGVyV2lkdGg6MyxwcmljZVNjYWxlSWQ6InJpZ2h0In0sY2hhcnQ6e3JpZ2h0UHJpY2VTY2FsZTp7bW9kZTpyLlByaWNlU2NhbGVNb2RlLlBlcmNlbnRhZ2V9fX19O2Z1bmN0aW9uIHcoZSl7Y29uc3QgdD0oMCxhLnVzZU1lbW8pKCgoKT0+ZSksW10pLHtwcm9OYW1lOnIsc2hvd1Rvb2x0aXA6aSxnZXRNaW5IZWlnaHQ6dyxnZXRUaGVtZTpfLGRvTm90RGlzY29ubmVjdE9uRGF0YVJlYWR5OkU9ITEsaXNDaGFydFZpc2libGU6YixzaG93Q29weXJpZ2h0Ok4sb25TdGF0dXNOb0RhdGE6U309dCx4PSgwLGEudXNlUmVmKShudWxsKSxDPSgwLGEudXNlUmVmKShudWxsKSxUPSgwLGEudXNlUmVmKShyKSxrPSgwLGEudXNlTWVtbykoKCgpPT5uZXcgYy5XYXRjaGVkVmFsdWUoMCkpLFtdKSxEPSgwLGEudXNlTWVtbykoKCgpPT4oMCx1Lm1lcmdlKSgoMCx1LmNsb25lKSh5KSx0LmNoYXJ0T3B0aW9ucz8/e30pKSxbdC5jaGFydE9wdGlvbnNdKSxJPSgwLGwudXNlVGhlbWUpKCksTT0oMCxzLnVzZVByb21pc2UpKCgoKT0+UHJvbWlzZS5hbGwoW24uZSgxNDIyKSxuLmUoNjI2MzApLG4uZSg4Nzk5NSksbi5lKDQyMTcxKSxuLmUoNzg5MDUpXSkudGhlbihuLmJpbmQobiwxNDQ4ODgpKSkpLFtMLFBdPSgwLGEudXNlU3RhdGUpKDApO3JldHVybigwLHAudXNlQ2hhcnRTdHlsZSkoe21pbmlDaGFydDp4LHRoZW1lOkksbWluaUNoYXJ0T3B0aW9uczpELGNoYXJ0VHlwZToibGluZSIsdGltZWZyYW1lOiIxWSIsbGluZVN0eWxlOjAsbWFpblBsb3RPcHRpb25zR2V0dGVyOmU9PiJkYXJrIj09PWU/djpmfSxbTF0pLCgwLGEudXNlRWZmZWN0KSgoKCk9PntpZighYnx8IU0pcmV0dXJuO2NvbnN0IGU9eC5jdXJyZW50PW5ldyBNLlNlYXNvbmFsc0NoYXJ0KFQuY3VycmVudCwoMCxvLmVuc3VyZU5vdE51bGwpKEMuY3VycmVudCksKDAsbS5nZXRDaGFydE9wdGlvbnMpKHtjaGFydFR5cGU6ImxpbmUiLGRvTm90RGlzY29ubmVjdE9uRGF0YVJlYWR5OkUsaXNWaXNpYmxlVGltZWZyYW1lOiExLHRoZW1lOkksdGltZWZyYW1lOiIxWSIsZ2V0TWluSGVpZ2h0OncsZ2V0VGhlbWU6XyxtaW5pQ2hhcnRPcHRpb25zOkR9KSk7bGV0IHQ7aWYoZS5tYWluUGxvdCgpLm5vRGF0YSgpLnN1YnNjcmliZShGLHtjYWxsV2l0aExhc3Q6ITB9KSxlLnRpbWVTY2FsZVNpemVDaGFuZ2VkKCkuc3Vic2NyaWJlKG51bGwsQSksQShlLndpZGdldCgpLnRpbWVTY2FsZSgpLndpZHRoKCkpLE4pe2NvbnN0IG49ZS5nZXRDaGFydENvbnRhaW5lcigpO24mJih0PSgwLGQuYWRkTWluaUNoYXJ0Q29weXJpZ2h0KShuLHIpKX1QKEwrMSk7Y29uc3Qgbj1pPygwLGguY3JlYXRlTGlnaHR3ZWlnaHRDaGFydFByaWNlVGltZVRvb2x0aXApKHtjaGFydDplLndpZGdldCgpLGNvbG9yZWRCb3JkZXJWaXNpYmxlOiExLGNyb3NzaGFpck1vdmVEYXRhR2V0dGVyOnQ9PmZ1bmN0aW9uKGUsdCl7Y29uc3Qgbj0oMCxnLmdldENyb3NzaGFpck1vdmVEYXRhKShlLHQpO3JldHVybiBuJiYobi50eXBlPSJsZWdlbmQiKSxufT8uKGUsdCl9KTp2b2lkIDA7cmV0dXJuKCk9PntuPy4oKSx0Py4oKSxlLm1haW5QbG90KCkubm9EYXRhKCkudW5zdWJzY3JpYmUoRiksZS50aW1lU2NhbGVTaXplQ2hhbmdlZCgpLnVuc3Vic2NyaWJlKG51bGwsQSksZS5kZXN0cm95KCkseC5jdXJyZW50PW51bGx9fSksW2IsTV0pLHtjaGFydFJlZjpDLGdldE1pbmlDaGFydDpmdW5jdGlvbigpe3JldHVybiB4LmN1cnJlbnR9LGNoYW5nZVN5bWJvbDpmdW5jdGlvbihlKXt4LmN1cnJlbnQ/LmNoYW5nZVN5bWJvbChlKX0sY2hhbmdlUGVyaW9kOmZ1bmN0aW9uKGUsdCl7eC5jdXJyZW50Py5tYWluUGxvdCgpLmFwcGx5T3B0aW9ucyh7cGVyaW9kOntzdGFydDplLGVuZDp0fX0pfSxwcmljZVNjYWxlV2lkdGg6ayxjaGFydFZlcnNpb246TH07ZnVuY3Rpb24gRihlKXtTPy4oZSl9ZnVuY3Rpb24gQShlKXtjb25zdCB0PXguY3VycmVudDt0JiZrLnNldFZhbHVlKHQud2lkdGgoKS52YWx1ZSgpLWUpfX19LDU3NDEyOShlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtURUNITklDQUxTX0ZJRUxEU19ERUZJTklUSU9OUzooKT0+b30pO3ZhciBhPW4oMTg1MjcxKSxyPW4oNjQ5NTM5KTtjb25zdCBvPXsiUmVjb21tZW5kLk90aGVyIjp7Z2V0IHRpdGxlKCl7cmV0dXJuIGEudChudWxsLHZvaWQgMCxuKDU0MDQ0MCkpfSxzaWduYWxDb21wdXRhdGlvbjpyLnNpZ25hbENvbXB1dGF0aW9uRnVuY3Rpb25zLmNvbXB1dGVSZWNvbW1lbmRTaWduYWx9LCJSZWNvbW1lbmQuQWxsIjp7Z2V0IHRpdGxlKCl7cmV0dXJuIGEudChudWxsLHZvaWQgMCxuKDU2OTU5NSkpfSwKc2lnbmFsQ29tcHV0YXRpb246ci5zaWduYWxDb21wdXRhdGlvbkZ1bmN0aW9ucy5jb21wdXRlUmVjb21tZW5kU2lnbmFsfSwiUmVjb21tZW5kLk1BIjp7Z2V0IHRpdGxlKCl7cmV0dXJuIGEudChudWxsLHZvaWQgMCxuKDIwMDQ1MikpfSxzaWduYWxDb21wdXRhdGlvbjpyLnNpZ25hbENvbXB1dGF0aW9uRnVuY3Rpb25zLmNvbXB1dGVSZWNvbW1lbmRTaWduYWx9LFJTSTp7Z2V0IHRpdGxlKCl7cmV0dXJuIGEudChudWxsLHZvaWQgMCxuKDgxMzQzMikpfSxhZGRpdGlvbmFsQ29sdW1uczpbIlJTSSIsIlJTSVsxXSJdLHNpZ25hbENvbXB1dGF0aW9uOnIuc2lnbmFsQ29tcHV0YXRpb25GdW5jdGlvbnMuY29tcHV0ZVJTSVNpZ25hbH0sIlN0b2NoLksiOntnZXQgdGl0bGUoKXtyZXR1cm4gYS50KG51bGwsdm9pZCAwLG4oMjIwNzI1KSl9LGFkZGl0aW9uYWxDb2x1bW5zOlsiU3RvY2guSyIsIlN0b2NoLkQiLCJTdG9jaC5LWzFdIiwiU3RvY2guRFsxXSJdLHNpZ25hbENvbXB1dGF0aW9uOnIuc2lnbmFsQ29tcHV0YXRpb25GdW5jdGlvbnMuY29tcHV0ZVN0b2NoU2lnbmFsfSxDQ0kyMDp7Z2V0IHRpdGxlKCl7cmV0dXJuIGEudChudWxsLHZvaWQgMCxuKDYxNzQyNykpfSxhZGRpdGlvbmFsQ29sdW1uczpbIkNDSTIwIiwiQ0NJMjBbMV0iXSxzaWduYWxDb21wdXRhdGlvbjpyLnNpZ25hbENvbXB1dGF0aW9uRnVuY3Rpb25zLmNvbXB1dGVDQ0kyMFNpZ25hbH0sQURYOntnZXQgdGl0bGUoKXtyZXR1cm4gYS50KG51bGwsdm9pZCAwLG4oNTc4MTk4KSl9LGFkZGl0aW9uYWxDb2x1bW5zOlsiQURYIiwiQURYK0RJIiwiQURYLURJIiwiQURYK0RJWzFdIiwiQURYLURJWzFdIl0sc2lnbmFsQ29tcHV0YXRpb246ci5zaWduYWxDb21wdXRhdGlvbkZ1bmN0aW9ucy5jb21wdXRlQURYU2lnbmFsfSxBTzp7Z2V0IHRpdGxlKCl7cmV0dXJuIGEudChudWxsLHZvaWQgMCxuKDM0NDU1MikpfSxhZGRpdGlvbmFsQ29sdW1uczpbIkFPIiwiQU9bMV0iLCJBT1syXSJdLHNpZ25hbENvbXB1dGF0aW9uOnIuc2lnbmFsQ29tcHV0YXRpb25GdW5jdGlvbnMuY29tcHV0ZUFPU2lnbmFsfSxNb206e2dldCB0aXRsZSgpe3JldHVybiBhLnQobnVsbCx2b2lkIDAsbig1MzE1MDIpKX0sYWRkaXRpb25hbENvbHVtbnM6WyJNb20iLCJNb21bMV0iXSxzaWduYWxDb21wdXRhdGlvbjpyLnNpZ25hbENvbXB1dGF0aW9uRnVuY3Rpb25zLmNvbXB1dGVNb21TaWduYWx9LCJNQUNELm1hY2QiOntnZXQgdGl0bGUoKXtyZXR1cm4gYS50KG51bGwsdm9pZCAwLG4oMjQ3NTYwKSl9LGFkZGl0aW9uYWxDb2x1bW5zOlsiTUFDRC5tYWNkIiwiTUFDRC5zaWduYWwiXSxzaWduYWxDb21wdXRhdGlvbjpyLnNpZ25hbENvbXB1dGF0aW9uRnVuY3Rpb25zLmNvbXB1dGVNQUNEU2lnbmFsfSwiU3RvY2guUlNJLksiOntnZXQgdGl0bGUoKXtyZXR1cm4gYS50KG51bGwsdm9pZCAwLG4oNTg1Njg5KSl9LGFkZGl0aW9uYWxDb2x1bW5zOlsiUmVjLlN0b2NoLlJTSSJdLHNpZ25hbENvbXB1dGF0aW9uOnIuc2lnbmFsQ29tcHV0YXRpb25GdW5jdGlvbnMuY29tcHV0ZVNpbXBsZVNpZ25hbH0sIlcuUiI6e2dldCB0aXRsZSgpe3JldHVybiBhLnQobnVsbCx2b2lkIDAsbigyNjA5MTApKX0sYWRkaXRpb25hbENvbHVtbnM6WyJSZWMuV1IiXSxzaWduYWxDb21wdXRhdGlvbjpyLnNpZ25hbENvbXB1dGF0aW9uRnVuY3Rpb25zLmNvbXB1dGVTaW1wbGVTaWduYWx9LEJCUG93ZXI6e2dldCB0aXRsZSgpe3JldHVybiBhLnQobnVsbCx7Y29udGV4dDoic3R1ZHkifSxuKDI0ODc4NSkpfSxhZGRpdGlvbmFsQ29sdW1uczpbIlJlYy5CQlBvd2VyIl0sc2lnbmFsQ29tcHV0YXRpb246ci5zaWduYWxDb21wdXRhdGlvbkZ1bmN0aW9ucy5jb21wdXRlU2ltcGxlU2lnbmFsfSxVTzp7Z2V0IHRpdGxlKCl7cmV0dXJuIGEudChudWxsLHZvaWQgMCxuKDk5OTk2MSkpfSxhZGRpdGlvbmFsQ29sdW1uczpbIlJlYy5VTyJdLHNpZ25hbENvbXB1dGF0aW9uOnIuc2lnbmFsQ29tcHV0YXRpb25GdW5jdGlvbnMuY29tcHV0ZVNpbXBsZVNpZ25hbH0sRU1BMTA6e2dldCB0aXRsZSgpe3JldHVybiBhLnQobnVsbCx7cmVwbGFjZTp7bnVtYmVyOiIxMCJ9fSxuKDYzNDUwNikpfSxhZGRpdGlvbmFsQ29sdW1uczpbIkVNQTEwIiwiY2xvc2UiXSxzaWduYWxDb21wdXRhdGlvbjpyLnNpZ25hbENvbXB1dGF0aW9uRnVuY3Rpb25zLmNvbXB1dGVNQVNpZ25hbH0sU01BMTA6e2dldCB0aXRsZSgpe3JldHVybiBhLnQobnVsbCx7cmVwbGFjZTp7bnVtYmVyOiIxMCJ9fSxuKDQ4NjU3MikpfSxhZGRpdGlvbmFsQ29sdW1uczpbIlNNQTEwIiwiY2xvc2UiXSxzaWduYWxDb21wdXRhdGlvbjpyLnNpZ25hbENvbXB1dGF0aW9uRnVuY3Rpb25zLmNvbXB1dGVNQVNpZ25hbH0sRU1BMjA6e2dldCB0aXRsZSgpe3JldHVybiBhLnQobnVsbCx7cmVwbGFjZTp7bnVtYmVyOiIyMCJ9fSxuKDYzNDUwNikpfSxhZGRpdGlvbmFsQ29sdW1uczpbIkVNQTIwIiwiY2xvc2UiXSxzaWduYWxDb21wdXRhdGlvbjpyLnNpZ25hbENvbXB1dGF0aW9uRnVuY3Rpb25zLmNvbXB1dGVNQVNpZ25hbH0sU01BMjA6e2dldCB0aXRsZSgpe3JldHVybiBhLnQobnVsbCx7cmVwbGFjZTp7bnVtYmVyOiIyMCJ9fSxuKDQ4NjU3MikpfSxhZGRpdGlvbmFsQ29sdW1uczpbIlNNQTIwIiwiY2xvc2UiXSxzaWduYWxDb21wdXRhdGlvbjpyLnNpZ25hbENvbXB1dGF0aW9uRnVuY3Rpb25zLmNvbXB1dGVNQVNpZ25hbH0sRU1BMzA6e2dldCB0aXRsZSgpe3JldHVybiBhLnQobnVsbCx7cmVwbGFjZTp7bnVtYmVyOiIzMCJ9fSxuKDYzNDUwNikpfSxhZGRpdGlvbmFsQ29sdW1uczpbIkVNQTMwIiwiY2xvc2UiXSxzaWduYWxDb21wdXRhdGlvbjpyLnNpZ25hbENvbXB1dGF0aW9uRnVuY3Rpb25zLmNvbXB1dGVNQVNpZ25hbH0sU01BMzA6e2dldCB0aXRsZSgpe3JldHVybiBhLnQobnVsbCx7cmVwbGFjZTp7bnVtYmVyOiIzMCJ9fSxuKDQ4NjU3MikpfSxhZGRpdGlvbmFsQ29sdW1uczpbIlNNQTMwIiwiY2xvc2UiXSxzaWduYWxDb21wdXRhdGlvbjpyLnNpZ25hbENvbXB1dGF0aW9uRnVuY3Rpb25zLmNvbXB1dGVNQVNpZ25hbH0sRU1BNTA6e2dldCB0aXRsZSgpe3JldHVybiBhLnQobnVsbCx7CnJlcGxhY2U6e251bWJlcjoiNTAifX0sbig2MzQ1MDYpKX0sYWRkaXRpb25hbENvbHVtbnM6WyJFTUE1MCIsImNsb3NlIl0sc2lnbmFsQ29tcHV0YXRpb246ci5zaWduYWxDb21wdXRhdGlvbkZ1bmN0aW9ucy5jb21wdXRlTUFTaWduYWx9LFNNQTUwOntnZXQgdGl0bGUoKXtyZXR1cm4gYS50KG51bGwse3JlcGxhY2U6e251bWJlcjoiNTAifX0sbig0ODY1NzIpKX0sYWRkaXRpb25hbENvbHVtbnM6WyJTTUE1MCIsImNsb3NlIl0sc2lnbmFsQ29tcHV0YXRpb246ci5zaWduYWxDb21wdXRhdGlvbkZ1bmN0aW9ucy5jb21wdXRlTUFTaWduYWx9LEVNQTEwMDp7Z2V0IHRpdGxlKCl7cmV0dXJuIGEudChudWxsLHtyZXBsYWNlOntudW1iZXI6IjEwMCJ9fSxuKDYzNDUwNikpfSxhZGRpdGlvbmFsQ29sdW1uczpbIkVNQTEwMCIsImNsb3NlIl0sc2lnbmFsQ29tcHV0YXRpb246ci5zaWduYWxDb21wdXRhdGlvbkZ1bmN0aW9ucy5jb21wdXRlTUFTaWduYWx9LFNNQTEwMDp7Z2V0IHRpdGxlKCl7cmV0dXJuIGEudChudWxsLHtyZXBsYWNlOntudW1iZXI6IjEwMCJ9fSxuKDQ4NjU3MikpfSxhZGRpdGlvbmFsQ29sdW1uczpbIlNNQTEwMCIsImNsb3NlIl0sc2lnbmFsQ29tcHV0YXRpb246ci5zaWduYWxDb21wdXRhdGlvbkZ1bmN0aW9ucy5jb21wdXRlTUFTaWduYWx9LEVNQTIwMDp7Z2V0IHRpdGxlKCl7cmV0dXJuIGEudChudWxsLHtyZXBsYWNlOntudW1iZXI6IjIwMCJ9fSxuKDYzNDUwNikpfSxhZGRpdGlvbmFsQ29sdW1uczpbIkVNQTIwMCIsImNsb3NlIl0sc2lnbmFsQ29tcHV0YXRpb246ci5zaWduYWxDb21wdXRhdGlvbkZ1bmN0aW9ucy5jb21wdXRlTUFTaWduYWx9LFNNQTIwMDp7Z2V0IHRpdGxlKCl7cmV0dXJuIGEudChudWxsLHtyZXBsYWNlOntudW1iZXI6IjIwMCJ9fSxuKDQ4NjU3MikpfSxhZGRpdGlvbmFsQ29sdW1uczpbIlNNQTIwMCIsImNsb3NlIl0sc2lnbmFsQ29tcHV0YXRpb246ci5zaWduYWxDb21wdXRhdGlvbkZ1bmN0aW9ucy5jb21wdXRlTUFTaWduYWx9LCJJY2hpbW9rdS5CTGluZSI6e2dldCB0aXRsZSgpe3JldHVybiBhLnQobnVsbCx2b2lkIDAsbig0OTA3MjgpKX0sYWRkaXRpb25hbENvbHVtbnM6WyJSZWMuSWNoaW1va3UiXSxzaWduYWxDb21wdXRhdGlvbjpyLnNpZ25hbENvbXB1dGF0aW9uRnVuY3Rpb25zLmNvbXB1dGVTaW1wbGVTaWduYWx9LFZXTUE6e2dldCB0aXRsZSgpe3JldHVybiBhLnQobnVsbCx2b2lkIDAsbig1NDMzOTEpKX0sYWRkaXRpb25hbENvbHVtbnM6WyJSZWMuVldNQSJdLHNpZ25hbENvbXB1dGF0aW9uOnIuc2lnbmFsQ29tcHV0YXRpb25GdW5jdGlvbnMuY29tcHV0ZVNpbXBsZVNpZ25hbH0sSHVsbE1BOTp7Z2V0IHRpdGxlKCl7cmV0dXJuIGEudChudWxsLHZvaWQgMCxuKDc2MDcxOSkpfSxhZGRpdGlvbmFsQ29sdW1uczpbIlJlYy5IdWxsTUE5Il0sc2lnbmFsQ29tcHV0YXRpb246ci5zaWduYWxDb21wdXRhdGlvbkZ1bmN0aW9ucy5jb21wdXRlU2ltcGxlU2lnbmFsfSwiUGl2b3QuTS5DbGFzc2ljLlMzIjp7Z2V0IHRpdGxlKCl7cmV0dXJuIGEudChudWxsLHZvaWQgMCxuKDEzMDQ2NykpfX0sIlBpdm90Lk0uQ2xhc3NpYy5TMiI6e2dldCB0aXRsZSgpe3JldHVybiBhLnQobnVsbCx2b2lkIDAsbig1MTkwMjcpKX19LCJQaXZvdC5NLkNsYXNzaWMuUzEiOntnZXQgdGl0bGUoKXtyZXR1cm4gYS50KG51bGwsdm9pZCAwLG4oNDk1MzE3KSl9fSwiUGl2b3QuTS5DbGFzc2ljLk1pZGRsZSI6e2dldCB0aXRsZSgpe3JldHVybiBhLnQobnVsbCx2b2lkIDAsbig1NjU1MjYpKX19LCJQaXZvdC5NLkNsYXNzaWMuUjEiOntnZXQgdGl0bGUoKXtyZXR1cm4gYS50KG51bGwsdm9pZCAwLG4oNjIyODM0KSl9fSwiUGl2b3QuTS5DbGFzc2ljLlIyIjp7Z2V0IHRpdGxlKCl7cmV0dXJuIGEudChudWxsLHZvaWQgMCxuKDUxNzMwMCkpfX0sIlBpdm90Lk0uQ2xhc3NpYy5SMyI6e2dldCB0aXRsZSgpe3JldHVybiBhLnQobnVsbCx2b2lkIDAsbig3NzE1NikpfX0sIlBpdm90Lk0uRmlib25hY2NpLlMzIjp7Z2V0IHRpdGxlKCl7cmV0dXJuIGEudChudWxsLHZvaWQgMCxuKDcxMjU3NikpfX0sIlBpdm90Lk0uRmlib25hY2NpLlMyIjp7Z2V0IHRpdGxlKCl7cmV0dXJuIGEudChudWxsLHZvaWQgMCxuKDIwMjU4NykpfX0sIlBpdm90Lk0uRmlib25hY2NpLlMxIjp7Z2V0IHRpdGxlKCl7cmV0dXJuIGEudChudWxsLHZvaWQgMCxuKDM4OTc3OCkpfX0sIlBpdm90Lk0uRmlib25hY2NpLk1pZGRsZSI6e2dldCB0aXRsZSgpe3JldHVybiBhLnQobnVsbCx2b2lkIDAsbig4ODU2MzQpKX19LCJQaXZvdC5NLkZpYm9uYWNjaS5SMSI6e2dldCB0aXRsZSgpe3JldHVybiBhLnQobnVsbCx2b2lkIDAsbigzNzQ0MDYpKX19LCJQaXZvdC5NLkZpYm9uYWNjaS5SMiI6e2dldCB0aXRsZSgpe3JldHVybiBhLnQobnVsbCx2b2lkIDAsbigxODcyMTUpKX19LCJQaXZvdC5NLkZpYm9uYWNjaS5SMyI6e2dldCB0aXRsZSgpe3JldHVybiBhLnQobnVsbCx2b2lkIDAsbig1ODEwMTIpKX19LCJQaXZvdC5NLkNhbWFyaWxsYS5TMyI6e2dldCB0aXRsZSgpe3JldHVybiBhLnQobnVsbCx2b2lkIDAsbig5NDI5NzcpKX19LCJQaXZvdC5NLkNhbWFyaWxsYS5TMiI6e2dldCB0aXRsZSgpe3JldHVybiBhLnQobnVsbCx2b2lkIDAsbig3NTU3ODYpKX19LCJQaXZvdC5NLkNhbWFyaWxsYS5TMSI6e2dldCB0aXRsZSgpe3JldHVybiBhLnQobnVsbCx2b2lkIDAsbig3MzYzNzEpKX19LCJQaXZvdC5NLkNhbWFyaWxsYS5NaWRkbGUiOntnZXQgdGl0bGUoKXtyZXR1cm4gYS50KG51bGwsdm9pZCAwLG4oODc0NDY5KSl9fSwiUGl2b3QuTS5DYW1hcmlsbGEuUjEiOntnZXQgdGl0bGUoKXtyZXR1cm4gYS50KG51bGwsdm9pZCAwLG4oOTM5ODg3KSl9fSwiUGl2b3QuTS5DYW1hcmlsbGEuUjIiOntnZXQgdGl0bGUoKXtyZXR1cm4gYS50KG51bGwsdm9pZCAwLG4oNzU0OTQpKX19LCJQaXZvdC5NLkNhbWFyaWxsYS5SMyI6e2dldCB0aXRsZSgpe3JldHVybiBhLnQobnVsbCx2b2lkIDAsbigxNDY0OTMpKX19LCJQaXZvdC5NLldvb2RpZS5TMyI6e2dldCB0aXRsZSgpe3JldHVybiBhLnQobnVsbCx2b2lkIDAsbigzMTkxMDYpKX19LAoiUGl2b3QuTS5Xb29kaWUuUzIiOntnZXQgdGl0bGUoKXtyZXR1cm4gYS50KG51bGwsdm9pZCAwLG4oOTM4MzYxKSl9fSwiUGl2b3QuTS5Xb29kaWUuUzEiOntnZXQgdGl0bGUoKXtyZXR1cm4gYS50KG51bGwsdm9pZCAwLG4oMTI1NTUyKSl9fSwiUGl2b3QuTS5Xb29kaWUuTWlkZGxlIjp7Z2V0IHRpdGxlKCl7cmV0dXJuIGEudChudWxsLHZvaWQgMCxuKDE1OTA5MikpfX0sIlBpdm90Lk0uV29vZGllLlIxIjp7Z2V0IHRpdGxlKCl7cmV0dXJuIGEudChudWxsLHZvaWQgMCxuKDI2ODcxNikpfX0sIlBpdm90Lk0uV29vZGllLlIyIjp7Z2V0IHRpdGxlKCl7cmV0dXJuIGEudChudWxsLHZvaWQgMCxuKDgxNTI1KSl9fSwiUGl2b3QuTS5Xb29kaWUuUjMiOntnZXQgdGl0bGUoKXtyZXR1cm4gYS50KG51bGwsdm9pZCAwLG4oODk0MzM0KSl9fSwiUGl2b3QuTS5EZW1hcmsuUzEiOntnZXQgdGl0bGUoKXtyZXR1cm4gYS50KG51bGwsdm9pZCAwLG4oODgxNzIwKSl9fSwiUGl2b3QuTS5EZW1hcmsuTWlkZGxlIjp7Z2V0IHRpdGxlKCl7cmV0dXJuIGEudChudWxsLHZvaWQgMCxuKDQ5MTU0MCkpfX0sIlBpdm90Lk0uRGVtYXJrLlIxIjp7Z2V0IHRpdGxlKCl7cmV0dXJuIGEudChudWxsLHZvaWQgMCxuKDk0MTIyNCkpfX19fSw1NTI1NyhlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtMYXN0Q2hhbmdlRm9ybWF0dGVyOigpPT5vfSk7dmFyIGE9big5ODQzNzYpLHI9big3NTU2MjcpO2NsYXNzIG97Y29uc3RydWN0b3IoZSl7Y29uc3R7cHJpY2VTY2FsZTp0LG1pbk1vdmU6bixmcmFjdGlvbmFsOm8sbWluTW92ZTI6aSx2YXJpYWJsZU1pblRpY2s6bCxwcmVjaXNpb246cyxmb3JtYXQ6YyxpZ25vcmVMb2NhbGVOdW1iZXJGb3JtYXQ6dX09ZTt0aGlzLl9mb3JtYXR0ZXI9InZvbHVtZSI9PT1jP25ldyBhLlZvbHVtZUZvcm1hdHRlcih7cHJlY2lzaW9uOnM/PzIsaWdub3JlTG9jYWxlTnVtYmVyRm9ybWF0OnV9KTpuZXcgci5QcmljZUZvcm1hdHRlcih7cHJpY2VTY2FsZTp0LG1pbk1vdmU6bixmcmFjdGlvbmFsOm8sbWluTW92ZTI6aSx2YXJpYWJsZU1pblRpY2s6bHx8dm9pZCAwLGlnbm9yZUxvY2FsZU51bWJlckZvcm1hdDp1fSl9Zm9ybWF0KGUsdD17fSl7Y29uc3R7c2lnblBvc2l0aXZlOm4sdGFpbFNpemU6YSxzaWduTmVnYXRpdmU6cj0hMCx1c2VSdGxGb3JtYXQ6bz0hMCxpZ25vcmVMb2NhbGVOdW1iZXJGb3JtYXQ6aSxub0V4cG9uZW50aWFsRm9ybTpsfT10O3JldHVybiJwcmljZSI9PT10aGlzLl9mb3JtYXR0ZXIudHlwZT90aGlzLl9mb3JtYXR0ZXIuZm9ybWF0KGUse3NpZ25Qb3NpdGl2ZTpuLHRhaWxTaXplOmEsc2lnbk5lZ2F0aXZlOnIsdXNlUnRsRm9ybWF0Om8saWdub3JlTG9jYWxlTnVtYmVyRm9ybWF0Omksbm9FeHBvbmVudGlhbEZvcm06bH0pOnRoaXMuX2Zvcm1hdHRlci5mb3JtYXQoZSx7c2lnblBvc2l0aXZlOm4saWdub3JlTG9jYWxlTnVtYmVyRm9ybWF0Omksbm9FeHBvbmVudGlhbEZvcm06bH0pfWZvcm1hdENoYW5nZShlLHQsbj17fSl7Y29uc3R7c2lnblBvc2l0aXZlOmEsaWdub3JlTG9jYWxlTnVtYmVyRm9ybWF0OnIsbm9FeHBvbmVudGlhbEZvcm06b309bjtyZXR1cm4icHJpY2UiPT09dGhpcy5fZm9ybWF0dGVyLnR5cGU/dGhpcy5fZm9ybWF0dGVyLmZvcm1hdENoYW5nZShlLHQse3NpZ25Qb3NpdGl2ZTphLGlnbm9yZUxvY2FsZU51bWJlckZvcm1hdDpyLG5vRXhwb25lbnRpYWxGb3JtOm99KTp0aGlzLl9mb3JtYXR0ZXIuZm9ybWF0KGUtdCx7c2lnblBvc2l0aXZlOmEsaWdub3JlTG9jYWxlTnVtYmVyRm9ybWF0OnJ9KX1oYXNGb3JleEFkZGl0aW9uYWxQcmVjaXNpb24oKXtyZXR1cm4iaGFzRm9yZXhBZGRpdGlvbmFsUHJlY2lzaW9uImluIHRoaXMuX2Zvcm1hdHRlciYmdGhpcy5fZm9ybWF0dGVyLmhhc0ZvcmV4QWRkaXRpb25hbFByZWNpc2lvbigpfX19LDY0OTUzOShlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtzaWduYWxDb21wdXRhdGlvbkZ1bmN0aW9uczooKT0+cn0pO3ZhciBhPW4oMjE0MTE3KTtjb25zdCByPXtjb21wdXRlTUFTaWduYWw6KGUsdCk9PntsZXQgbj1hLlNJR05BTC5ORVVUUkFMO3JldHVybiBlPHQmJihuPWEuU0lHTkFMLkJVWSksZT50JiYobj1hLlNJR05BTC5TRUxMKSxufSxjb21wdXRlUlNJU2lnbmFsOihlLHQpPT57bGV0IG49YS5TSUdOQUwuTkVVVFJBTDtyZXR1cm4gZTwzMCYmdDxlJiYobj1hLlNJR05BTC5CVVkpLGU+NzAmJnQ+ZSYmKG49YS5TSUdOQUwuU0VMTCksbn0sY29tcHV0ZVN0b2NoU2lnbmFsOihlLHQsbixyKT0+e2xldCBvPWEuU0lHTkFMLk5FVVRSQUw7cmV0dXJuIGU8MjAmJnQ8MjAmJmU+dCYmbjxyJiYobz1hLlNJR05BTC5CVVkpLGU+ODAmJnQ+ODAmJmU8dCYmbj5yJiYobz1hLlNJR05BTC5TRUxMKSxvfSxjb21wdXRlQ0NJMjBTaWduYWw6KGUsdCk9PntsZXQgbj1hLlNJR05BTC5ORVVUUkFMO3JldHVybiBlPC0xMDAmJmU+dCYmKG49YS5TSUdOQUwuQlVZKSxlPjEwMCYmZTx0JiYobj1hLlNJR05BTC5TRUxMKSxufSxjb21wdXRlQURYU2lnbmFsOihlLHQsbixyLG8pPT57bGV0IGk9YS5TSUdOQUwuTkVVVFJBTDtyZXR1cm4gZT4yMCYmcjxvJiZ0Pm4mJihpPWEuU0lHTkFMLkJVWSksZT4yMCYmcj5vJiZ0PG4mJihpPWEuU0lHTkFMLlNFTEwpLGl9LGNvbXB1dGVBT1NpZ25hbDooZSx0LG4pPT57bGV0IHI9YS5TSUdOQUwuTkVVVFJBTDtyZXR1cm4oZT4wJiZ0PDB8fGU+MCYmdD4wJiZlPnQmJm4+dCkmJihyPWEuU0lHTkFMLkJVWSksKGU8MCYmdD4wfHxlPDAmJnQ8MCYmZTx0JiZuPHQpJiYocj1hLlNJR05BTC5TRUxMKSxyfSxjb21wdXRlTW9tU2lnbmFsOihlLHQpPT57bGV0IG49YS5TSUdOQUwuTkVVVFJBTDtyZXR1cm4gZT50JiYobj1hLlNJR05BTC5CVVkpLGU8dCYmKG49YS5TSUdOQUwuU0VMTCksbn0sY29tcHV0ZU1BQ0RTaWduYWw6KGUsdCk9PntsZXQgbj1hLlNJR05BTC5ORVVUUkFMO3JldHVybiBlPnQmJihuPWEuU0lHTkFMLkJVWSksZTx0JiYobj1hLlNJR05BTC5TRUxMKSxufSxjb21wdXRlQkJCdXlTaWduYWw6KGUsdCk9PntsZXQgbj1hLlNJR05BTC5ORVVUUkFMO3JldHVybiBlPHQmJihuPWEuU0lHTkFMLkJVWSksbn0sCmNvbXB1dGVCQlNlbGxTaWduYWw6KGUsdCk9PntsZXQgbj1hLlNJR05BTC5ORVVUUkFMO3JldHVybiBlPnQmJihuPWEuU0lHTkFMLlNFTEwpLG59LGNvbXB1dGVQU0FSU2lnbmFsOihlLHQpPT57bGV0IG49YS5TSUdOQUwuTkVVVFJBTDtyZXR1cm4gZTx0JiYobj1hLlNJR05BTC5CVVkpLGU+dCYmKG49YS5TSUdOQUwuU0VMTCksbn0sY29tcHV0ZVJlY29tbWVuZFNpZ25hbDplPT57bGV0IHQ7cmV0dXJuIGU+PS0xJiZlPC0uNSYmKHQ9YS5TSUdOQUwuU1RST05HX1NFTEwpLGU+PS0uNSYmZTwtLjEmJih0PWEuU0lHTkFMLlNFTEwpLGU+PS0uMSYmZTw9LjEmJih0PWEuU0lHTkFMLk5FVVRSQUwpLGU+LjEmJmU8PS41JiYodD1hLlNJR05BTC5CVVkpLGU+LjUmJmU8PTEmJih0PWEuU0lHTkFMLlNUUk9OR19CVVkpLHR9LGNvbXB1dGVTaW1wbGVTaWduYWw6ZT0+e2xldCB0PWEuU0lHTkFMLk5FVVRSQUw7cmV0dXJuLTE9PT1lJiYodD1hLlNJR05BTC5TRUxMKSwxPT09ZSYmKHQ9YS5TSUdOQUwuQlVZKSx0fX19LDIxNDExNyhlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtTSUdOQUw6KCk9PnJ9KTt2YXIgYT1uKDc4MzI1NCk7Y29uc3Qgcj17U1RST05HX0JVWTp7a2V5OiJTdHJvbmcgQnV5IixnZXQgdGl0bGUoKXtyZXR1cm4gYS50KG51bGwse2NvbnRleHQ6InNjcmVlbmVyX3JhdGluZyJ9LG4oNDg5ODY5KSl9LGdldCBzaG9ydFRpdGxlKCl7cmV0dXJuIGEudChudWxsLHtjb250ZXh0OiJzY3JlZW5lcl9yYXRpbmcifSxuKDQ4OTg2OSkpfSxjc3NDbGFzczoidHYtc2NyZWVuZXItdGFibGVfX3NpZ25hbC0tc3Ryb25nLWJ1eSJ9LEJVWTp7a2V5OiJCdXkiLGdldCB0aXRsZSgpe3JldHVybiBhLnQobnVsbCx7Y29udGV4dDoic2NyZWVuZXJfcmF0aW5nIn0sbig1NjU5NjIpKX0sZ2V0IHNob3J0VGl0bGUoKXtyZXR1cm4gYS50KG51bGwse2NvbnRleHQ6ImZpcnN0X2xldHRlcl9vZl9CdXkifSxuKDQxMzUzNykpfSxjc3NDbGFzczoidHYtc2NyZWVuZXItdGFibGVfX3NpZ25hbC0tYnV5In0sU1RST05HX1NFTEw6e2tleToiU3Ryb25nIFNlbGwiLGdldCB0aXRsZSgpe3JldHVybiBhLnQobnVsbCx7Y29udGV4dDoic2NyZWVuZXJfcmF0aW5nIn0sbig2OTE1NDMpKX0sZ2V0IHNob3J0VGl0bGUoKXtyZXR1cm4gYS50KG51bGwse2NvbnRleHQ6InNjcmVlbmVyX3JhdGluZyJ9LG4oNjkxNTQzKSl9LGNzc0NsYXNzOiJ0di1zY3JlZW5lci10YWJsZV9fc2lnbmFsLS1zdHJvbmctc2VsbCJ9LFNFTEw6e2tleToiU2VsbCIsZ2V0IHRpdGxlKCl7cmV0dXJuIGEudChudWxsLHtjb250ZXh0OiJzY3JlZW5lcl9yYXRpbmcifSxuKDI1NzY0MykpfSxnZXQgc2hvcnRUaXRsZSgpe3JldHVybiBhLnQobnVsbCx7Y29udGV4dDoiZmlyc3RfbGV0dGVyX29mX1NlbGwifSxuKDk5MTY5NykpfSxjc3NDbGFzczoidHYtc2NyZWVuZXItdGFibGVfX3NpZ25hbC0tc2VsbCJ9LE5FVVRSQUw6e2tleToiTmV1dHJhbCIsZ2V0IHRpdGxlKCl7cmV0dXJuIGEudChudWxsLHtjb250ZXh0OiJzY3JlZW5lcl9yYXRpbmcifSxuKDQ1OTQ2MykpfSxnZXQgc2hvcnRUaXRsZSgpe3JldHVybiBhLnQobnVsbCx7Y29udGV4dDoiZmlyc3RfbGV0dGVyX29mX05ldXRyYWwifSxuKDIxNzc4OCkpfSxjc3NDbGFzczoidHYtc2NyZWVuZXItdGFibGVfX3NpZ25hbC0tbmV1dHJhbCJ9fX0sNDQ4NjQ1KGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse0NhY2hlZExvZ286KCk9Pm19KTt2YXIgYT1uKDc3OTQ3NCkscj1uKDkxNDQ4Nyksbz1uLm4ociksaT1uKDM4Nzc3NCksbD1uKDc5NDE4Nykscz1uKDYyNzg0OCksYz1uKDk3MzgwNCksdT1uKDYxNjMxMSksZD1uKDE3NzExNik7ZnVuY3Rpb24gbShlKXtjb25zdHtjbGFzc05hbWU6dCxwbGFjZWhvbGRlckxldHRlcjpuLHVybDE6cix1cmwyOm0sc2l6ZTpoPSJ4eHhzbWFsbCJ9PWUsdj0oMCxhLnVzZVJlZikobnVsbCksZj0oMCxhLnVzZVJlZikobnVsbCkseT0oMCxhLnVzZVJlZikobnVsbCksdz0oMCxhLnVzZVJlZikobnVsbCksXz0oMCxhLnVzZVJlZikobnVsbCksRT0oMCxhLnVzZVJlZikobnVsbCk7cmV0dXJuKDAsdS51c2VJc29tb3JwaGljTGF5b3V0RWZmZWN0KSgoKCk9Pntjb25zdCBlPXZvaWQgMD09PXI/W106dm9pZCAwPT09bT9bcl06W3IsbV0sdD1FLmN1cnJlbnQ9KG49ZSxQcm9taXNlLmFsbChuLm1hcCgoZT0+KDAsYy5nZXRJbWFnZSkoYHN5bWJvbF9sb2dvXyR7ZX1gLGUsZykudGhlbigoZT0+ZS5jbG9uZU5vZGUoKSkpKSkpKTt2YXIgbjt0LmNhdGNoKCgoKT0+W10pKS50aGVuKChlPT57aWYodD09PUUuY3VycmVudClzd2l0Y2goZS5sZW5ndGgpe2Nhc2UgMDp5LmN1cnJlbnQ/LmNsYXNzTGlzdC5hZGQoZC5oaWRkZW4pLGYuY3VycmVudD8uY2xhc3NMaXN0LmFkZChpLmhpZGRlbkNpcmNsZUxvZ29DbGFzcyksdi5jdXJyZW50Py5jbGFzc0xpc3QucmVtb3ZlKGkuaGlkZGVuQ2lyY2xlTG9nb0NsYXNzKTticmVhaztjYXNlIDE6cChmLmN1cnJlbnQsZVswXSkseS5jdXJyZW50Py5jbGFzc0xpc3QuYWRkKGQuaGlkZGVuKSxmLmN1cnJlbnQ/LmNsYXNzTGlzdC5yZW1vdmUoaS5oaWRkZW5DaXJjbGVMb2dvQ2xhc3MpLHYuY3VycmVudD8uY2xhc3NMaXN0LmFkZChpLmhpZGRlbkNpcmNsZUxvZ29DbGFzcyk7YnJlYWs7Y2FzZSAyOnAody5jdXJyZW50LGVbMF0pLHAoXy5jdXJyZW50LGVbMV0pLHkuY3VycmVudD8uY2xhc3NMaXN0LnJlbW92ZShkLmhpZGRlbiksZi5jdXJyZW50Py5jbGFzc0xpc3QuYWRkKGkuaGlkZGVuQ2lyY2xlTG9nb0NsYXNzKSx2LmN1cnJlbnQ/LmNsYXNzTGlzdC5hZGQoaS5oaWRkZW5DaXJjbGVMb2dvQ2xhc3MpfX0pKX0pLFtyLG1dKSxhLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6bygpKHQsZC5jb250YWluZXIpfSxhLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtyZWY6eSxjbGFzc05hbWU6bygpKGQucGFpckNvbnRhaW5lcixkLmhpZGRlbil9LGEuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZTooMCxzLmdldEJsb2NrU3R5bGVDbGFzc2VzKShoKX0sYS5jcmVhdGVFbGVtZW50KCJzcGFuIix7cmVmOl8sY2xhc3NOYW1lOm8oKShkLmxvZ28sKDAsCnMuZ2V0TG9nb1N0eWxlQ2xhc3NlcykoaCkpfSksYS5jcmVhdGVFbGVtZW50KCJzcGFuIix7cmVmOncsY2xhc3NOYW1lOm8oKShkLmxvZ28sKDAscy5nZXRMb2dvU3R5bGVDbGFzc2VzKShoKSl9KSkpLGEuY3JlYXRlRWxlbWVudCgic3BhbiIse3JlZjpmLGNsYXNzTmFtZTpvKCkoZC5sb2dvLGkuaGlkZGVuQ2lyY2xlTG9nb0NsYXNzLCgwLGwuZ2V0U3R5bGVDbGFzc2VzKShoKSl9KSxhLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtyZWY6dixjbGFzc05hbWU6bygpKGQubG9nbywoMCxsLmdldFN0eWxlQ2xhc3NlcykoaCkpfSxhLmNyZWF0ZUVsZW1lbnQoaS5DaXJjbGVMb2dvLHtzaXplOmgscGxhY2Vob2xkZXJMZXR0ZXI6bn0pKSl9ZnVuY3Rpb24gcChlLHQpe2UmJihlLmlubmVySFRNTD0iIixlLmFwcGVuZENoaWxkKHQpKX1mdW5jdGlvbiBnKGUpe2UuY3Jvc3NPcmlnaW49IiIsZS5kZWNvZGluZz0iYXN5bmMifX0sODc2NTg5KGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse0RlbGlzdGVkTGFiZWw6KCk9PnV9KTt2YXIgYT1uKDc3OTQ3NCkscj1uKDE4NTI3MSksbz1uKDkxNDQ4NyksaT1uLm4obyksbD1uKDI3MzMxMCkscz1uKDk2NDk0NSksYz1uKDY1MTYwOCk7ZnVuY3Rpb24gdShlKXtjb25zdHtjbGFzc05hbWU6dH09ZTtyZXR1cm4gYS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOmkoKSh0LGMubGFiZWwpfSxhLmNyZWF0ZUVsZW1lbnQobC5JY29uLHtjbGFzc05hbWU6Yy5pY29uLGljb246c30pLGEuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZTpjLnRleHR9LHIudChudWxsLHZvaWQgMCxuKDM0MTQ1OCkpKSl9fSw1OTgyMyhlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtPdmVybGF5U2Nyb2xsQ29udGFpbmVyOigpPT51fSk7dmFyIGE9big3Nzk0NzQpLHI9big5MTQ0ODcpLG89bi5uKHIpLGk9big5NjkxNjgpLGw9bigxMDI2NzUpLHM9big2ODk4OTQpLGM9big0NjAzNzApO2Z1bmN0aW9uIHUoZSl7Y29uc3R7cmVmZXJlbmNlOnQsY2xhc3NOYW1lOm4sY29udGFpbmVySGVpZ2h0OnI9MCxjb250YWluZXJXaWR0aDp1PTAsY29udGVudEhlaWdodDpkPTAsY29udGVudFdpZHRoOm09MCxzY3JvbGxQb3NUb3A6cD0wLHNjcm9sbFBvc0xlZnQ6Zz0wLG9uVmVydGljYWxDaGFuZ2U6aCxvbkhvcml6b250YWxDaGFuZ2U6dix2aXNpYmxlOmZ9PWUsW3ksd109KDAscy51c2VIb3ZlckRlcHJlY2F0ZWQpKCksW18sRV09KDAsYS51c2VTdGF0ZSkoITEpLGI9cjxkLE49dTxtLFM9YiYmTj84OjA7cmV0dXJuIGEuY3JlYXRlRWxlbWVudCgiZGl2Iix7Li4udyxyZWY6dCxjbGFzc05hbWU6bygpKG4sYy5zY3JvbGxXcmFwLChmfHx5fHxfKSYmYy5zY3JvbGxXcmFwX3Zpc2libGUpfSxiJiZhLmNyZWF0ZUVsZW1lbnQobC5PdmVybGF5U2Nyb2xsLHtzaXplOnItUyxzY3JvbGxTaXplOmQtUyxjbGllbnRTaXplOnItUyxzY3JvbGxQcm9ncmVzczpwLG9uU2Nyb2xsUHJvZ3Jlc3NDaGFuZ2U6ZnVuY3Rpb24oZSl7aCYmaChlKX0sb25EcmFnU3RhcnQ6eCxvbkRyYWdFbmQ6QyxzY3JvbGxNb2RlOjB9KSxOJiZhLmNyZWF0ZUVsZW1lbnQobC5PdmVybGF5U2Nyb2xsLHtzaXplOnUtUyxzY3JvbGxTaXplOm0tUyxjbGllbnRTaXplOnUtUyxzY3JvbGxQcm9ncmVzczpnLG9uU2Nyb2xsUHJvZ3Jlc3NDaGFuZ2U6ZnVuY3Rpb24oZSl7diYmdihlKX0sb25EcmFnU3RhcnQ6eCxvbkRyYWdFbmQ6QyxzY3JvbGxNb2RlOigwLGkuaXNSdGwpKCk/MjoxfSkpO2Z1bmN0aW9uIHgoKXtFKCEwKX1mdW5jdGlvbiBDKCl7RSghMSl9fX0sMTc3NShlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtPdmVybGF5U2Nyb2xsV3JhcHBlcjooKT0+dX0pO3ZhciBhPW4oNzc5NDc0KSxyPW4oOTE0NDg3KSxvPW4ubihyKSxpPW4oNTk4MjMpLGw9bigyMTA3NjQpLHM9bigzMDU0NzQpLGM9bigzNDMwNjYpO2Z1bmN0aW9uIHUoZSl7Y29uc3R7Y2hpbGRyZW46dCxjbGFzc05hbWU6bix3cmFwcGVyQ2xhc3NOYW1lOnIscmVmZXJlbmNlOnUsaGFzQ3VzdG9tVG91Y2hTY3JvbGxBbmltYXRpb246ZCxzY3JvbGxDb250YWluZXJSZWY6bSxpc0ZvcmNlVmlzaWJsZTpwLHRhYkluZGV4OmcsLi4uaH09ZSxbdixmLHksd109KDAsbC51c2VPdmVybGF5U2Nyb2xsKShtLGQpO3JldHVybigwLHMudXNlQ3VzdG9tVG91Y2hTY3JvbGxBbmltYXRpb24pKHtzY3JvbGxDb250YWluZXJSZWY6ZD95OnZvaWQgMH0pLCgwLGEudXNlSW1wZXJhdGl2ZUhhbmRsZSkodSwoKCk9Pih7dXBkYXRlU2Nyb2xsU3RhdGU6d30pKSksYS5jcmVhdGVFbGVtZW50KCJkaXYiLHsuLi5oLC4uLmYsY2xhc3NOYW1lOm8oKShjLmNvbnRhaW5lcixuKX0sYS5jcmVhdGVFbGVtZW50KGkuT3ZlcmxheVNjcm9sbENvbnRhaW5lcix7Li4udix2aXNpYmxlOnA/P3YudmlzaWJsZSxjbGFzc05hbWU6Yy5vdmVybGF5U2Nyb2xsV3JhcH0pLGEuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOm8oKShjLndyYXBwZXIsciksdGFiSW5kZXg6ZyxyZWY6eSxvblNjcm9sbDp3fSx0KSl9fSwxMDI2NzUoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7T3ZlcmxheVNjcm9sbDooKT0+cH0pO3ZhciBhPW4oNzc5NDc0KSxyPW4oOTE0NDg3KSxvPW4ubihyKSxpPW4oMTM4NjM4KSxsPW4oNjQwNzQ0KSxzPW4oNjQ2MTYyKTtjb25zdCBjPXM7dmFyIHU7IWZ1bmN0aW9uKGUpe2VbZS5WZXJ0aWNhbD0wXT0iVmVydGljYWwiLGVbZS5Ib3Jpem9udGFsPTFdPSJIb3Jpem9udGFsIixlW2UuSG9yaXpvbnRhbFJ0bD0yXT0iSG9yaXpvbnRhbFJ0bCJ9KHV8fCh1PXt9KSk7Y29uc3QgZD17MDp7aXNIb3Jpem9udGFsOiExLGlzTmVnYXRpdmU6ITEsc2l6ZVByb3BOYW1lOiJoZWlnaHQiLG1pblNpemVQcm9wTmFtZToibWluSGVpZ2h0IixzdGFydFBvaW50UHJvcE5hbWU6InRvcCIsY3VycmVudE1vdXNlUG9pbnRQcm9wTmFtZToiY2xpZW50WSIscHJvZ3Jlc3NCYXJUcmFuc2Zvcm06InRyYW5zbGF0ZVkifSwxOntpc0hvcml6b250YWw6ITAsaXNOZWdhdGl2ZTohMSxzaXplUHJvcE5hbWU6IndpZHRoIixtaW5TaXplUHJvcE5hbWU6Im1pbldpZHRoIixzdGFydFBvaW50UHJvcE5hbWU6ImxlZnQiLApjdXJyZW50TW91c2VQb2ludFByb3BOYW1lOiJjbGllbnRYIixwcm9ncmVzc0JhclRyYW5zZm9ybToidHJhbnNsYXRlWCJ9LDI6e2lzSG9yaXpvbnRhbDohMCxpc05lZ2F0aXZlOiEwLHNpemVQcm9wTmFtZToid2lkdGgiLG1pblNpemVQcm9wTmFtZToibWluV2lkdGgiLHN0YXJ0UG9pbnRQcm9wTmFtZToicmlnaHQiLGN1cnJlbnRNb3VzZVBvaW50UHJvcE5hbWU6ImNsaWVudFgiLHByb2dyZXNzQmFyVHJhbnNmb3JtOiJ0cmFuc2xhdGVYIn19LG09NDA7ZnVuY3Rpb24gcChlKXtjb25zdHtzaXplOnQsc2Nyb2xsU2l6ZTpuLGNsaWVudFNpemU6cixzY3JvbGxQcm9ncmVzczpzLG9uU2Nyb2xsUHJvZ3Jlc3NDaGFuZ2U6dSxzY3JvbGxNb2RlOnAsdGhlbWU6Zz1jLG9uRHJhZ1N0YXJ0Omgsb25EcmFnRW5kOnYsbWluQmFyU2l6ZTpmPW19PWUseT0oMCxhLnVzZVJlZikobnVsbCksdz0oMCxhLnVzZVJlZikobnVsbCksW18sRV09KDAsYS51c2VTdGF0ZSkoITEpLGI9KDAsYS51c2VSZWYpKDApLHtpc0hvcml6b250YWw6Tixpc05lZ2F0aXZlOlMsc2l6ZVByb3BOYW1lOngsbWluU2l6ZVByb3BOYW1lOkMsc3RhcnRQb2ludFByb3BOYW1lOlQsY3VycmVudE1vdXNlUG9pbnRQcm9wTmFtZTprLHByb2dyZXNzQmFyVHJhbnNmb3JtOkR9PWRbcF07KDAsYS51c2VFZmZlY3QpKCgoKT0+e2NvbnN0IGU9KDAsaS5lbnN1cmVOb3ROdWxsKSh5LmN1cnJlbnQpLm93bmVyRG9jdW1lbnQ7cmV0dXJuIF8/KGgmJmgoKSxlJiYoZS5hZGRFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLE8pLGUuYWRkRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsVykpKTp2JiZ2KCksKCk9PntlJiYoZS5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLE8pLGUucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsVykpfX0pLFtfXSk7Y29uc3QgST10L258fDAsTT1yKkl8fDAsTD1NYXRoLm1heChNLGYpLFA9KHQtTCkvKHQtTSksRj1uLXQsQT1TPy1GOjAsUj1TPzA6RixCPVYoKDAsbC5jbGFtcCkocyxBLFIpKXx8MDtyZXR1cm4gYS5jcmVhdGVFbGVtZW50KCJkaXYiLHtyZWY6eSxjbGFzc05hbWU6bygpKGcud3JhcCxOJiZnWyJ3cmFwLS1ob3Jpem9udGFsIl0pLHN0eWxlOntbeF06dH0sb25Nb3VzZURvd246ZnVuY3Rpb24oZSl7aWYoZS5pc0RlZmF1bHRQcmV2ZW50ZWQoKSlyZXR1cm47ZS5wcmV2ZW50RGVmYXVsdCgpO2NvbnN0IHQ9VShlLm5hdGl2ZUV2ZW50LCgwLGkuZW5zdXJlTm90TnVsbCkoeS5jdXJyZW50KSksbj1NYXRoLnNpZ24odCksYT0oMCxpLmVuc3VyZU5vdE51bGwpKHcuY3VycmVudCkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7Yi5jdXJyZW50PW4qYVt4XS8yO2xldCByPU1hdGguYWJzKHQpLU1hdGguYWJzKGIuY3VycmVudCk7Y29uc3Qgbz1WKEYpO3I8MD8ocj0wLGIuY3VycmVudD10KTpyPm8mJihyPW8sYi5jdXJyZW50PXQtbipvKTt1KHoobipyKSksRSghMCl9fSxhLmNyZWF0ZUVsZW1lbnQoImRpdiIse3JlZjp3LGNsYXNzTmFtZTpvKCkoZy5iYXIsTiYmZ1siYmFyLS1ob3Jpem9udGFsIl0pLHN0eWxlOntbQ106ZixbeF06TCx0cmFuc2Zvcm06YCR7RH0oJHtCfXB4KWB9LG9uTW91c2VEb3duOmZ1bmN0aW9uKGUpe2UucHJldmVudERlZmF1bHQoKSxiLmN1cnJlbnQ9VShlLm5hdGl2ZUV2ZW50LCgwLGkuZW5zdXJlTm90TnVsbCkody5jdXJyZW50KSksRSghMCl9fSxhLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpvKCkoZy5iYXJJbm5lcixOJiZnWyJiYXJJbm5lci0taG9yaXpvbnRhbCJdKX0pKSk7ZnVuY3Rpb24gTyhlKXtjb25zdCB0PVUoZSwoMCxpLmVuc3VyZU5vdE51bGwpKHkuY3VycmVudCkpLWIuY3VycmVudDt1KHoodCkpfWZ1bmN0aW9uIFcoKXtFKCExKX1mdW5jdGlvbiBVKGUsdCl7Y29uc3Qgbj10LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpW1RdO3JldHVybiBlW2tdLW59ZnVuY3Rpb24gVihlKXtyZXR1cm4gZSpJKlB9ZnVuY3Rpb24geihlKXtyZXR1cm4gZS9JL1B9fX0sOTA5NzczKGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse0NoYW5nZTooKT0+dSxERUZBVUxUX1RIRU1FOigpPT5jfSk7dmFyIGE9big3Nzk0NzQpLHI9big5MTQ0ODcpLG89bi5uKHIpLGk9big2MDE4NDEpLGw9bigyMTU0OTkpLHM9big0NzQ4MjQpO2NvbnN0IGM9cztmdW5jdGlvbiB1KGUpe2NvbnN0e2NoYW5nZTp0LGZvcm1hdHRlZENoYW5nZTpuLGZvcm1hdHRlZENoYW5nZVBlcmNlbnQ6cixjaGFuZ2VQZXJjZW50OnMsbGFzdFByaWNlVGhlbWU6dSxzaG93QnJhY2tldHM6ZCx0aGVtZTptPWN9PWU7cmV0dXJuIGEuY3JlYXRlRWxlbWVudCgic3BhbiIse3RyYW5zbGF0ZToibm8iLGNsYXNzTmFtZTptLndyYXB9LCgwLGkuaXNOdW1iZXIpKHQpJiZhLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6bygpKG0uY2hhbmdlLCgwLGwucmVzb2x2ZUhpZ2hsaWdodENsYXNzTmFtZSkodCx1KSl9LG4pLCgwLGkuaXNOdW1iZXIpKHMpJiZhLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6bygpKG0uY2hhbmdlLCgwLGwucmVzb2x2ZUhpZ2hsaWdodENsYXNzTmFtZSkocyx1KSl9LGQ/YCgke3J9KWA6cikpfX0sMjE1NDk5KGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse0RFRkFVTFRfVEhFTUU6KCk9PmwsTGFzdFByaWNlOigpPT5zLHJlc29sdmVIaWdobGlnaHRDbGFzc05hbWU6KCk9PnV9KTt2YXIgYT1uKDc3OTQ3NCkscj1uKDkxNDQ4Nyksbz1uLm4ociksaT1uKDU4NjIyMyk7Y29uc3QgbD1uKDY0Nzg0NCk7ZnVuY3Rpb24gcyhlKXtjb25zdHt2YWx1ZTp0LGZvcm1hdHRlcjpuLGNsYXNzTmFtZTpyLHRoZW1lOnM9bCwiZGF0YS1xYS1pZCI6dX09ZSxkPSgwLGEudXNlUmVmKShudWxsKSxtPSgwLGEudXNlUmVmKShudWxsKSxwPSgwLGEudXNlUmVmKShyKTtwLmN1cnJlbnQ9cjtjb25zdCBnPSgwLGkudXNlUHJldmlvdXMpKHQpLGg9ZnVuY3Rpb24oZSl7Y29uc3QgdD0oMCxpLnVzZVByZXZpb3VzKShlKSxuPSgwLGEudXNlUmVmKShudWxsKTtyZXR1cm4oMCxhLnVzZUVmZmVjdCkoKCgpPT57dCE9PWUmJihuLmN1cnJlbnQ9dCl9KSxbZV0pLG4uY3VycmVudH0odCksdj0oMCxhLnVzZUNhbGxiYWNrKSgoKCk9PnsKbnVsbCE9PWQuY3VycmVudCYmKGNsZWFyVGltZW91dChkLmN1cnJlbnQpLGQuY3VycmVudD1udWxsKX0pLFtdKSxbZix5XT0oMCxhLnVzZVN0YXRlKShyKSxbdyxfXT0oMCxhLnVzZU1lbW8pKCgoKT0+e2lmKHZvaWQgMD09PXR8fCFuKXJldHVyblsiIiwiIl07aWYobnVsbD09aClyZXR1cm5bbi5mb3JtYXQodCksIiJdO2NvbnN0IGU9bi5mb3JtYXQoaCksYT1uLmZvcm1hdCh0KSxyPU1hdGgubWluKGUubGVuZ3RoLGEubGVuZ3RoKTtsZXQgbz0wO2Zvcig7bzxyJiZlLmNoYXJBdChvKT09PWEuY2hhckF0KG8pOylvKys7cmV0dXJuW2Euc2xpY2UoMCxvKSxhLnNsaWNlKG8pXX0pLFt0LGgsbl0pOygwLGEudXNlRWZmZWN0KSgoKCk9PnYpLFtdKSwoMCxhLnVzZUVmZmVjdCkoKCgpPT57aWYodm9pZCAwPT09dHx8bnVsbD09ZylyZXR1cm4gdm9pZCB5KHIpO2lmKCEoZyE9PXQpKXtjb25zdCBlPW0uY3VycmVudDtyZXR1cm4gdm9pZCB5KG8oKShyLGUmJnNbZV0pKX12KCk7Y29uc3QgZT10Pmc/Imdyb3dpbmciOiJmYWxsaW5nIjttLmN1cnJlbnQ9ZSxkLmN1cnJlbnQ9c2V0VGltZW91dCgoKCk9PnttLmN1cnJlbnQ9bnVsbCx5KHAuY3VycmVudCl9KSw1MDApLHkobygpKHIsc1tlXSkpfSksW3QsZyxyXSk7Y29uc3QgRT1ofHxnLGI9Qm9vbGVhbihuJiZuLmhhc0ZvcmV4QWRkaXRpb25hbFByZWNpc2lvbigpKTtyZXR1cm4gYS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOm8oKShzLmhpZ2hsaWdodCxmKSx0cmFuc2xhdGU6Im5vIiwiZGF0YS1xYS1pZCI6dX0sIV8ubGVuZ3RoJiZiP2EuY3JlYXRlRWxlbWVudChjLHt2YWx1ZTp3fSk6dywhIV8ubGVuZ3RoJiZhLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6bygpKHMuaGlnaGxpZ2h0LHQmJkUmJnQ+RSYmcy5ncm93aW5nLHQmJkUmJnQ8RSYmcy5mYWxsaW5nKX0sYj9hLmNyZWF0ZUVsZW1lbnQoYyx7dmFsdWU6X30pOl8pKX1mdW5jdGlvbiBjKGUpe2NvbnN0e3ZhbHVlOnR9PWU7cmV0dXJuIGEuY3JlYXRlRWxlbWVudChhLkZyYWdtZW50LG51bGwsdC5zbGljZSgwLHQubGVuZ3RoLTEpLGEuY3JlYXRlRWxlbWVudCgic3VwIixudWxsLHQuc2xpY2UodC5sZW5ndGgtMSkpKX1mdW5jdGlvbiB1KGUsdD1sKXtyZXR1cm4gZT9vKCkodC5oaWdobGlnaHQsZT4wP3QuZ3Jvd2luZzp0LmZhbGxpbmcpOiIifX0sNDQxNTU3KGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse0RFRkFVTFRfVEhFTUU6KCk9PmcsUHJpY2U6KCk9PnZ9KTt2YXIgYT1uKDc3OTQ3NCkscj1uKDkxNDQ4Nyksbz1uLm4ociksaT1uKDYwMTg0MSksbD1uKDEwNzA0NSkscz1uKDIxNTQ5OSksYz1uKDMwNjkwKSx1PW4oOTA5NzczKSxkPW4oMTI1MjE4KSxtPW4oMzg3MjMxKSxwPW4oNzIwMjQ0KTtjb25zdCBnPXAsaD1uZXcgbC5OdW1lcmljRm9ybWF0dGVyO2Z1bmN0aW9uIHYoZSl7Y29uc3R7Y2xhc3NOYW1lOnQsc3ltYm9sOm4sdXBkYXRlTW9kZTpyLHVwZGF0ZU1vZGVTZWNvbmRzOmwsY3VycmVuY3k6cCxsYXN0UHJpY2U6dixjaGFuZ2U6ZixjaGFuZ2VTaWduUG9zaXRpdmU6eSxjaGFuZ2VQZXJjZW50OncscHJpY2VGb3JtYXR0ZXI6XyxsYXN0UHJpY2VUaGVtZTpFLHRoZW1lOmI9ZyxjbGFzc1N1ZmZpeDpOLHR5cGU6UyxmcmFjdGlvbmFsOngsY2hhbmdlVGhlbWU6QywiZGF0YS1xYS1pZCI6VH09ZSxrPSgwLGEudXNlUmVmKShudWxsKSxEPSgwLGEudXNlUmVmKShudWxsKSxJPSgwLGEudXNlTWVtbykoKCgpPT57aWYoKDAsaS5pc051bWJlcikodikmJigwLGkuaXNOdW1iZXIpKGYpKXJldHVybiJzcHJlYWQiIT09U3x8eD9fPy5mb3JtYXRDaGFuZ2Uodix2LWYse3NpZ25Qb3NpdGl2ZTp5fSk6aC5mb3JtYXQoZil9KSxbUyxfLHgsdixmLHldKSxNPSgwLGEudXNlTWVtbykoKCgpPT5uZXcgZC5QZXJjZW50YWdlRm9ybWF0dGVyKSxbXSksTD0oMCxhLnVzZU1lbW8pKCgoKT0+e2lmKCgwLGkuaXNOdW1iZXIpKHcpKXJldHVybiBNLmZvcm1hdCh3LHtzaWduUG9zaXRpdmU6eX0pfSksW00seSx3XSk7cmV0dXJuKDAsYS51c2VFZmZlY3QpKCgoKT0+KG51bGwhPT1rLmN1cnJlbnQmJihELmN1cnJlbnQ9bmV3IGMuRGF0YU1vZGVJbmRpY2F0b3Ioe2NsYXNzU3VmZml4Ok4sZWw6ay5jdXJyZW50LHNob3J0OiEwLHN5bWJvbDpuLG1hbnVhbFVwZGF0ZTohMH0pKSwoKT0+e0QuY3VycmVudD1udWxsfSkpLFtdKSwoMCxhLnVzZUVmZmVjdCkoKCgpPT57Y29uc3QgZT1ELmN1cnJlbnQ7bnVsbCE9PWUmJih2b2lkIDA9PT1yfHwiZWNvbm9taWMiPT09UyYmImVuZG9mZGF5Ij09PXI/ZS5oaWRlKCk6KGUuc2hvdygpLGUudXBkYXRlKHt2YWx1ZXM6e3VwZGF0ZV9tb2RlOnIsdXBkYXRlX21vZGVfc2Vjb25kczpsfX0pKSl9KSxbcixsXSksYS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6bygpKGIuY29udGFpbmVyLHQpLCJkYXRhLXFhLWlkIjpUfSxhLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6Yi5wcmljZVdyYXBwZXJ9LGEuY3JlYXRlRWxlbWVudChzLkxhc3RQcmljZSx7a2V5Om4sY2xhc3NOYW1lOmIucHJpY2UsdmFsdWU6dixmb3JtYXR0ZXI6Xyx0aGVtZTpFLCJkYXRhLXFhLWlkIjoidmFsdWUifSksYS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOmIuaW5mb30sYS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOmIubW9kZSxyZWY6a30pLGEuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZTpiLmN1cnJlbmN5LCJkYXRhLXFhLWlkIjoiY3VycmVuY3kifSxwKSkpLGEuY3JlYXRlRWxlbWVudCh1LkNoYW5nZSx7Y2hhbmdlOmYsZm9ybWF0dGVkQ2hhbmdlOkksZm9ybWF0dGVkQ2hhbmdlUGVyY2VudDpMLGNoYW5nZVBlcmNlbnQ6dyxsYXN0UHJpY2VUaGVtZTpFLHRoZW1lOigwLG0ubWVyZ2VUaGVtZXMpKEM/P3UuREVGQVVMVF9USEVNRSx7d3JhcDpiLmNoYW5nZVdyYXB9KX0pKX19LDU3NzEwOShlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtTeW1ib2xMb2dvOigpPT51fSk7dmFyIGE9big3Nzk0NzQpLHI9big5MTQ0ODcpLG89bi5uKHIpO3ZhciBpPW4oOTg2Mjc1KSxsPW4oNjIwMzU0KSxzPW4oNDQ4NjQ1KSxjPW4oMjQ0ODIwKQo7ZnVuY3Rpb24gdShlKXtjb25zdHtwbGFjZWhvbGRlcjp0LGNsYXNzTmFtZTpuLHNpemU6cj0ieHNtYWxsIn09ZSx1PWZ1bmN0aW9uKGUpe3JldHVybiJsb2dvImluIGV9KGUpP2UubG9nbzpmdW5jdGlvbihlKXtjb25zdCB0PWUubG9nbz8/bnVsbDtpZighdCl7aWYoImxvZ29pZCJpbiBlJiZlLmxvZ29pZClyZXR1cm57c3R5bGU6InNpbmdsZSIsbG9nb2lkOmUubG9nb2lkfTtjb25zdCB0PSJjdXJyZW5jeS1sb2dvaWQiaW4gZT9lWyJjdXJyZW5jeS1sb2dvaWQiXTpudWxsLG49ImJhc2UtY3VycmVuY3ktbG9nb2lkImluIGU/ZVsiYmFzZS1jdXJyZW5jeS1sb2dvaWQiXTpudWxsO2lmKHQmJm4pcmV0dXJue3N0eWxlOiJwYWlyIixsb2dvaWQ6bixsb2dvaWQyOnR9O2lmKHR8fG4pcmV0dXJue3N0eWxlOiJzaW5nbGUiLGxvZ29pZDp0Pz9ufX1yZXR1cm4gdH0oe2xvZ29pZDplLmxvZ29JZCwiY3VycmVuY3ktbG9nb2lkIjplLmN1cnJlbmN5TG9nb0lkLCJiYXNlLWN1cnJlbmN5LWxvZ29pZCI6ZS5iYXNlQ3VycmVuY3lMb2dvSWR9KSxkPSgwLGEudXNlTWVtbykoKCgpPT51PygwLGkucmVtb3ZlVXNkRnJvbUNyeXB0b1BhaXJMb2dvcykoKDAsaS5yZXNvbHZlTG9nb1VybHNGcm9tTG9nb0RhdGEpKHUsbC5Mb2dvU2l6ZS5NZWRpdW0pKTpbXSksW3VdKTtyZXR1cm4gYS5jcmVhdGVFbGVtZW50KHMuQ2FjaGVkTG9nbyx7a2V5OnIsY2xhc3NOYW1lOm8oKShjLmxvZ28sbiksdXJsMTpkWzBdLHVybDI6ZFsxXSxwbGFjZWhvbGRlckxldHRlcjp0LHNpemU6cn0pfX0sMjY5KGUsdCxuKXsidXNlIHN0cmljdCI7dmFyIGE7bi5kKHQse3Nlc3Npb25TdG9yYWdlTWFuYWdlcjooKT0+cn0pLGZ1bmN0aW9uKGUpe2UuR29Ub0RhdGVUYWJMYXN0UGlja2VkRGF0ZT0iZ29Ub0RhdGVUYWJMYXN0UGlja2VkRGF0ZSIsZS5EZXRhaWxzS2V5U3RhdHNFeHBhbmRlZD0iZGV0YWlsc0tleVN0YXRzRXhwYW5kZWQiLGUuRGV0YWlsc0luY29tZVN0YXRlbWVudFBlcmlvZElkPSJkZXRhaWxzSW5jb21lU3RhdGVtZW50UGVyaW9kSWQifShhfHwoYT17fSkpO2NvbnN0IHI9bmV3IGNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5faGFzRXJyb3I9ITF9Z2V0SXRlbU9yRGVmYXVsdChlLHQpe3JldHVybiFzZXNzaW9uU3RvcmFnZXx8dGhpcy5faGFzRXJyb3I/dDpzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKGUpfXNldEl0ZW0oZSx0PSJ0cnVlIil7dHJ5e3Nlc3Npb25TdG9yYWdlLnNldEl0ZW0oZSx0KSx0aGlzLl9oYXNFcnJvcj0hMX1jYXRjaChlKXt0aGlzLl9oYXNFcnJvcj0hMH19fX0sOTg2Mjc1KGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse3JlbW92ZVVzZEZyb21DcnlwdG9QYWlyTG9nb3M6KCk9PnMscmVzb2x2ZUxvZ29VcmxzOigpPT5pLHJlc29sdmVMb2dvVXJsc0Zyb21Mb2dvRGF0YTooKT0+bH0pO3ZhciBhPW4oNjAxODQxKSxyPW4oODYyMjEzKTtjb25zdCBvPSgwLHIuZ2V0TG9nb1VybFJlc29sdmVyKSgpO2Z1bmN0aW9uIGkoZSx0PXIuTG9nb1NpemUuTWVkaXVtKXtjb25zdCBuPWUubG9nb2lkLGE9ZVsiYmFzZS1jdXJyZW5jeS1sb2dvaWQiXSxpPWVbImN1cnJlbmN5LWxvZ29pZCJdLGw9biYmby5nZXRTeW1ib2xMb2dvVXJsKG4sdCk7aWYobClyZXR1cm5bbF07Y29uc3Qgcz1hJiZvLmdldFN5bWJvbExvZ29VcmwoYSx0KSxjPWkmJm8uZ2V0U3ltYm9sTG9nb1VybChpLHQpO3JldHVybiBzJiZjP1tzLGNdOnM/W3NdOmM/W2NdOltdfWZ1bmN0aW9uIGwoZSx0PXIuTG9nb1NpemUuTWVkaXVtKXtyZXR1cm4oInBhaXIiPT09ZS5zdHlsZT9bZS5sb2dvaWQsZS5sb2dvaWQyXTpbZS5sb2dvaWRdKS5tYXAoKGU9Pm8uZ2V0U3ltYm9sTG9nb1VybChlLHQpKSkuZmlsdGVyKGEubm90TnVsbCl9ZnVuY3Rpb24gcyhlKXtyZXR1cm4gMiE9PWUubGVuZ3RoP2U6ZnVuY3Rpb24oZSl7cmV0dXJuIGUuc29tZSgoZT0+YyhlKSkpfShlKSYmIWZ1bmN0aW9uKGUpe3JldHVybiBlLnNvbWUoKGU9PmUuaW5jbHVkZXMoImNvdW50cnkiKSYmIWMoZSkpKX0oZSk/ZS5maWx0ZXIoKGU9PiFjKGUpKSk6ZX1mdW5jdGlvbiBjKGUpe3JldHVybiBlLmluY2x1ZGVzKCJjb3VudHJ5L1VTIil9fSw1MDU1OChlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHthZGRMb2NhbFRpbWU6KCk9PmYsZm9ybWF0VGltZXpvbmVPZmZzZXQ6KCk9PkMsZ2V0Q2xvbmVEYXRlV2l0aE9mZnNldDooKT0+UyxnZXREYXRlSW5UYWJPcmRlcjooKT0+eCxnZXREZWNhZGVzU3RhcnQ6KCk9PnksZ2V0Rmlyc3RFbmFibGVkRGF5OigpPT5FLGdldEZpcnN0RW5hYmxlZE1vbnRoOigpPT5iLGdldEZpcnN0RW5hYmxlZFllYXI6KCk9Pk4sZ2V0V2Vla3M6KCk9PncsaXNEYXlEaXNhYmxlZDooKT0+Xyxpc0luUmFuZ2U6KCk9PnAsaXNJbnZhbGlkRGF0ZU9iajooKT0+Zyxpc1NhbWVEYXk6KCk9PmksaXNTYW1lTW9udGg6KCk9PnMsaXNTYW1lWWVhcjooKT0+Yyxpc1dlZWtlbmQ6KCk9PlQsaXNZZXN0ZXJkYXk6KCk9Pmwsc3VidHJhY3RMb2NhbFRpbWU6KCk9PnYsdHdvRGlnaXRzRm9ybWF0OigpPT5vfSk7dmFyIGEscj1uKDY1OTM4MSk7ZnVuY3Rpb24gbyhlKXtyZXR1cm4oIjAiK2UpLnNsaWNlKC0yKX1mdW5jdGlvbiBpKGUsdCl7cmV0dXJuISF0JiZOdW1iZXIoKDAsci5yZXNldFRvRGF5U3RhcnQpKGUpKT09PU51bWJlcigoMCxyLnJlc2V0VG9EYXlTdGFydCkodCkpfWZ1bmN0aW9uIGwoZSl7cmV0dXJuIGkoZSxmdW5jdGlvbihlKXtjb25zdCB0PW5ldyBEYXRlKGUpO3JldHVybiB0LnNldERhdGUodC5nZXREYXRlKCktMSksdH0obmV3IERhdGUpKX1mdW5jdGlvbiBzKGUsdCl7cmV0dXJuISF0JiZOdW1iZXIoKDAsci5yZXNldFRvTW9udGhTdGFydCkoZSkpPT09TnVtYmVyKCgwLHIucmVzZXRUb01vbnRoU3RhcnQpKHQpKX1mdW5jdGlvbiBjKGUsdCl7cmV0dXJuISF0JiZOdW1iZXIoKDAsci5yZXNldFRvWWVhclN0YXJ0KShlKSk9PT1OdW1iZXIoKDAsci5yZXNldFRvWWVhclN0YXJ0KSh0KSl9ZnVuY3Rpb24gdShlKXtjb25zdCB0PW5ldyBEYXRlKGUuZ2V0RnVsbFllYXIoKSwwLDEpLG49KE51bWJlcihlKS1OdW1iZXIodCkpLzg2NGU1O3JldHVybiBNYXRoLmNlaWwoKG4rdC5nZXREYXkoKSsxKS83KX0KZnVuY3Rpb24gZChlKXtjb25zdCB0PW5ldyBEYXRlKGUpO3JldHVybiB0LnNldERhdGUodC5nZXREYXRlKCkrNyksdH0hZnVuY3Rpb24oZSl7ZS5EYXk9ImRheSIsZS5Nb250aD0ibW9udGgiLGUuWWVhcj0ieWVhciJ9KGF8fChhPXt9KSk7Y29uc3QgbT17ZGF5OnIucmVzZXRUb0RheVN0YXJ0LG1vbnRoOnIucmVzZXRUb01vbnRoU3RhcnQseWVhcjpyLnJlc2V0VG9ZZWFyU3RhcnR9O2Z1bmN0aW9uIHAoZSx0LG4sYT0iZGF5Iil7Y29uc3Qgcj1tW2FdLG89IXR8fE51bWJlcihyKHQpKS1OdW1iZXIocihlKSk8PTA7cmV0dXJuKCFufHxOdW1iZXIocihuKSktTnVtYmVyKHIoZSkpPj0wKSYmb31mdW5jdGlvbiBnKGUpe3JldHVybiBOdW1iZXIuaXNOYU4oTnVtYmVyKGUpKX1mdW5jdGlvbiBoKGUpe3JldHVybiBuZXcgRGF0ZShlKS5nZXRUaW1lem9uZU9mZnNldCgpLzYwfWZ1bmN0aW9uIHYoZSl7Y29uc3QgdD1uZXcgRGF0ZShlKTtyZXR1cm4gdC5zZXRIb3Vycyh0LmdldEhvdXJzKCkraCh0KSksdH1mdW5jdGlvbiBmKGUpe2NvbnN0IHQ9bmV3IERhdGUoZSksbj02MCpoKHQpKjYwKjFlMztyZXR1cm4gdC5zZXRUaW1lKHQuZ2V0VGltZSgpLW4pLHR9ZnVuY3Rpb24geShlKXtjb25zdCB0PWUuZ2V0RnVsbFllYXIoKSUxMCotMSxuPW5ldyBEYXRlKGUpO3JldHVybiBuLnNldEZ1bGxZZWFyKGUuZ2V0RnVsbFllYXIoKSt0KSxufWZ1bmN0aW9uIHcoZSx0KXtjb25zdCBuPVtdO2xldCBhPSgwLHIucmVzZXRUb1dlZWtTdGFydCkoKDAsci5yZXNldFRvTW9udGhTdGFydCkoZSksITApO2ZvcihsZXQgcj0wO3I8NjtyKyspe2NvbnN0IHI9W107Zm9yKGxldCBuPTA7bjw3O24rKyl7Y29uc3Qgbz1uZXcgRGF0ZShhKTtvLnNldERhdGUoby5nZXREYXRlKCkrbiksKHMobyxlKXx8dCkmJnIucHVzaChvKX1yLmxlbmd0aCYmbi5wdXNoKHt3ZWVrOnUoYSksZGF5czpyfSksYT1uZXcgRGF0ZShkKGEpKX1yZXR1cm4gbn1mdW5jdGlvbiBfKHtkYXk6ZSxtaW5EYXRlOnQsbWF4RGF0ZTpuLGlzRGF0ZURpc2FibGVkOmF9KXtyZXR1cm4hcChlLHQsbil8fCEhYSYmYShlKX1mdW5jdGlvbiBFKGUsdCl7cmV0dXJuIGZ1bmN0aW9uIG4oYT0wLHI9MCl7aWYoIWVbYV18fCFlW2FdLmRheXNbcl0pcmV0dXJuO2NvbnN0IG89ZVthXS5kYXlzLGk9b1tyXTtyZXR1cm4gdChpKT9yKzE8by5sZW5ndGg/bihhLHIrMSk6bihhKzEsMCk6aX0oKX1mdW5jdGlvbiBiKGUsdCl7cmV0dXJuIGZ1bmN0aW9uIG4oYT0wKXtpZighZVthXSlyZXR1cm47Y29uc3Qgcj1lW2FdLmRhdGU7cmV0dXJuIHQocik/bihhKzEpOnJ9KCl9ZnVuY3Rpb24gTihlLHQpe3JldHVybiBmdW5jdGlvbiBuKGE9MCl7aWYoIWVbYV0pcmV0dXJuO2NvbnN0IHI9ZVthXTtyZXR1cm4gdChyKT9uKGErMSk6cn0oKX1mdW5jdGlvbiBTKHtkYXRlRnJvbTplLG9mZnNldDp0LGxldmVsOm49ImRheSIsbWF4SXRlcmF0aW9uczphPTYsaXNEaXNhYmxlZERhdGU6cj0oKT0+ITF9KXtyZXR1cm4gZnVuY3Rpb24gZShvLGk9MCl7Y29uc3QgbD1uZXcgRGF0ZShvKTtzd2l0Y2gobil7Y2FzZSJkYXkiOmwuc2V0RGF0ZShsLmdldERhdGUoKSt0KTticmVhaztjYXNlIm1vbnRoIjpsLnNldE1vbnRoKGwuZ2V0TW9udGgoKSt0KTticmVhaztjYXNlInllYXIiOmwuc2V0RnVsbFllYXIobC5nZXRGdWxsWWVhcigpK3QpfWNvbnN0IHM9cihsKTtyZXR1cm4gaT5hfHwhcz9zP251bGw6bDplKGwsaSsxKX0oZSl9ZnVuY3Rpb24geCh7c2VsZWN0ZWREYXRlOmUsZGF0ZVRvRm9jdXM6dCxjdXJyZW50bHlGb2N1c2VkOm4sZmlyc3RFbmFibGVkRGF0ZTphLGdldEZpcnN0RGF0ZTpyLGdldExhc3REYXRlOm8saXNEaXNhYmxlZERhdGU6aX0pe2NvbnN0IGw9cChlLHIoKSxvKCksImRheSIpJiYhaShlKT9lOm51bGwscz10JiZwKHQscigpLG8oKSwiZGF5IikmJiFpKHQpP3Q6bnVsbDtyZXR1cm4obiYmcChuLHIoKSxvKCksImRheSIpJiYhaShuKT9uOm51bGwpfHxsfHxzfHxhfWZ1bmN0aW9uIEMoZSl7aWYoMD09PWUpcmV0dXJuIlVUQyI7Y29uc3QgdD1NYXRoLmFicyhlLzZlNCksbj1NYXRoLmZsb29yKHQvNjApLGE9dC02MCpuO3JldHVybmBVVEMke01hdGguc2lnbihlKTw9MD8iLSI6IisifSR7bn0ke2E+MD9gOiR7YX1gOiIifWB9ZnVuY3Rpb24gVChlKXtjb25zdCB0PWUuZ2V0RGF5KCk7cmV0dXJuIDY9PT10fHwwPT09dH19LDMwNTQ3NChlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHt1c2VDdXN0b21Ub3VjaFNjcm9sbEFuaW1hdGlvbjooKT0+c30pO3ZhciBhLHIsbz1uKDc3OTQ3NCksaT1uKDEzODYzOCksbD1uKDkyNTk4NSk7ZnVuY3Rpb24gcyhlKXtjb25zdHtzY3JvbGxDb250YWluZXJSZWY6dH09ZTtjKHtzY3JvbGxDb250YWluZXJSZWY6dCxkaXJlY3Rpb246MH0pLGMoe3Njcm9sbENvbnRhaW5lclJlZjp0LGRpcmVjdGlvbjoxfSl9ZnVuY3Rpb24gYyhlKXtjb25zdHtzY3JvbGxDb250YWluZXJSZWY6dCxkaXJlY3Rpb246bn09ZSxhPSgwLG8udXNlUmVmKShudWxsKSxyPSgwLG8udXNlUmVmKShudWxsKSxsPSgwLG8udXNlUmVmKSh1KCkpLHM9KDAsby51c2VSZWYpKCExKSxjPSgwLG8udXNlUmVmKSh7eDowLHk6MH0pO2Z1bmN0aW9uIGQoZSl7cmV0dXJuIDA9PT1uP2UudG91Y2hlc1swXS5jbGllbnRZOmUudG91Y2hlc1swXS5jbGllbnRYfWZ1bmN0aW9uIG0oZSl7cmV0dXJuIDA9PT1uP2Uuc2Nyb2xsVG9wOmUuc2Nyb2xsTGVmdH1mdW5jdGlvbiBwKGUsdCl7MD09PW4/ZS5zY3JvbGxUb3A9dDplLnNjcm9sbExlZnQ9dH1mdW5jdGlvbiBnKGUpe3JldHVybiAwPT09bj9lLnNjcm9sbEhlaWdodC1lLmNsaWVudEhlaWdodDplLnNjcm9sbFdpZHRoLWUuY2xpZW50V2lkdGh9ZnVuY3Rpb24gaChlKXtjb25zdCBuPSgwLGkuZW5zdXJlTm90TnVsbCkoKDAsaS5lbnN1cmVEZWZpbmVkKSh0KS5jdXJyZW50KTtzLmN1cnJlbnQ9MD09PWcobikscy5jdXJyZW50fHwoYS5jdXJyZW50PWQoZSksYy5jdXJyZW50PXt4OmUudG91Y2hlc1swXS5jbGllbnRYLHk6ZS50b3VjaGVzWzBdLmNsaWVudFl9LGwuY3VycmVudD11KCkpfWZ1bmN0aW9uIHYoZSl7aWYocy5jdXJyZW50KXJldHVybjtpZihmdW5jdGlvbihlKXsKY29uc3QgdD1NYXRoLmF0YW4yKGUudG91Y2hlc1swXS5jbGllbnRZLWMuY3VycmVudC55LGUudG91Y2hlc1swXS5jbGllbnRYLWMuY3VycmVudC54KSxuPU1hdGguYWJzKHQpO3JldHVybiBuPk1hdGguUEkvNCYmbjwzKk1hdGguUEkvND8wOjF9KGUpIT09bilyZXR1cm4gdm9pZChzLmN1cnJlbnQ9ITApO2UucHJldmVudERlZmF1bHQoKTtjb25zdCByPSgwLGkuZW5zdXJlTm90TnVsbCkoKDAsaS5lbnN1cmVEZWZpbmVkKSh0KS5jdXJyZW50KSxvPWQoZSksdT1vLSgwLGkuZW5zdXJlTm90TnVsbCkoYS5jdXJyZW50KTtwKHIsbShyKS11KSxhLmN1cnJlbnQ9bztjb25zdCBnPXBlcmZvcm1hbmNlLm5vdygpOygwLGkuZW5zdXJlTm90TnVsbCkobC5jdXJyZW50KS5hZGRQb3NpdGlvbihtKHIpLGcpfWZ1bmN0aW9uIGYoKXtpZihzLmN1cnJlbnQpcmV0dXJuO2NvbnN0IGU9cGVyZm9ybWFuY2Uubm93KCksbj0oMCxpLmVuc3VyZU5vdE51bGwpKCgwLGkuZW5zdXJlRGVmaW5lZCkodCkuY3VycmVudCk7bC5jdXJyZW50LnN0YXJ0KG0obiksZSksbC5jdXJyZW50LmZpbmlzaGVkKGUpfHwoci5jdXJyZW50PXJlcXVlc3RBbmltYXRpb25GcmFtZSh5KSksYS5jdXJyZW50PW51bGx9ZnVuY3Rpb24geShlKXtpZihsLmN1cnJlbnQuZmluaXNoZWQoZSkpcmV0dXJuIHZvaWQgdygpO2NvbnN0IG49KDAsaS5lbnN1cmVOb3ROdWxsKSgoMCxpLmVuc3VyZURlZmluZWQpKHQpLmN1cnJlbnQpLGE9bC5jdXJyZW50LmdldFBvc2l0aW9uKGUpO3AobixhKSxhPD0wfHxnKG4pPD1hP3coKTpyLmN1cnJlbnQ9cmVxdWVzdEFuaW1hdGlvbkZyYW1lKHkpfWZ1bmN0aW9uIHcoKXtyLmN1cnJlbnQmJmNhbmNlbEFuaW1hdGlvbkZyYW1lKHIuY3VycmVudCl9KDAsby51c2VFZmZlY3QpKCgoKT0+e2NvbnN0IGU9dD8uY3VycmVudDtyZXR1cm4gZT8uYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hzdGFydCIsaCksZT8uYWRkRXZlbnRMaXN0ZW5lcigidG91Y2htb3ZlIix2KSxlPy5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaGVuZCIsZiksZT8uYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hjYW5jZWwiLGYpLCgpPT57ZT8ucmVtb3ZlRXZlbnRMaXN0ZW5lcigidG91Y2hzdGFydCIsaCksZT8ucmVtb3ZlRXZlbnRMaXN0ZW5lcigidG91Y2htb3ZlIix2KSxlPy5yZW1vdmVFdmVudExpc3RlbmVyKCJ0b3VjaGVuZCIsZiksZT8ucmVtb3ZlRXZlbnRMaXN0ZW5lcigidG91Y2hjYW5jZWwiLGYpfX0pLFt0LG5dKSwoMCxvLnVzZUVmZmVjdCkoKCgpPT4oKT0+dygpKSxbXSl9ZnVuY3Rpb24gdSgpe3JldHVybiBuZXcgbC5LaW5ldGljQW5pbWF0aW9uKC4yLDcsLjk5NywxNSl9IWZ1bmN0aW9uKGUpe2VbZS5WZXJ0aWNhbD0wXT0iVmVydGljYWwiLGVbZS5Ib3Jpem9udGFsPTFdPSJIb3Jpem9udGFsIn0oYXx8KGE9e30pKSxmdW5jdGlvbihlKXtlW2UuTWluU2Nyb2xsU3BlZWQ9LjJdPSJNaW5TY3JvbGxTcGVlZCIsZVtlLk1heFNjcm9sbFNwZWVkPTddPSJNYXhTY3JvbGxTcGVlZCIsZVtlLkR1bXBpbmdDb2VmZj0uOTk3XT0iRHVtcGluZ0NvZWZmIixlW2UuU2Nyb2xsTWluTW92ZT0xNV09IlNjcm9sbE1pbk1vdmUifShyfHwocj17fSkpfSw1Mzg1MTUoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7dXNlRGltZW5zaW9uczooKT0+b30pO3ZhciBhPW4oNzc5NDc0KSxyPW4oNzE5NDI1KTtmdW5jdGlvbiBvKGUpe2NvbnN0W3Qsbl09KDAsYS51c2VTdGF0ZSkobnVsbCksbz0oMCxhLnVzZUNhbGxiYWNrKSgoKFtlXSk9Pntjb25zdCBhPWUudGFyZ2V0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO2Eud2lkdGg9PT10Py53aWR0aCYmYS5oZWlnaHQ9PT10LmhlaWdodHx8bihhKX0pLFt0XSk7cmV0dXJuWygwLHIudXNlUmVzaXplT2JzZXJ2ZXIpKHtjYWxsYmFjazpvLHJlZjplfSksdF19fSwyMTA3NjQoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7dXNlT3ZlcmxheVNjcm9sbDooKT0+c30pO3ZhciBhPW4oNzc5NDc0KSxyPW4oMTM4NjM4KSxvPW4oNjg5ODk0KSxpPW4oMzE4OTc0KTtjb25zdCBsPXtvbk1vdXNlRW50ZXI6KCk9Pnt9LG9uTW91c2VMZWF2ZTooKT0+e319O2Z1bmN0aW9uIHMoZSx0PWkuQ2hlY2tNb2JpbGUuYW55KCkpe2NvbnN0IG49KDAsYS51c2VSZWYpKG51bGwpLHM9ZXx8KDAsYS51c2VSZWYpKG51bGwpLFtjLHVdPSgwLG8udXNlSG92ZXIpKCksW2QsbV09KDAsYS51c2VTdGF0ZSkoe3JlZmVyZW5jZTpuLGNvbnRhaW5lckhlaWdodDowLGNvbnRhaW5lcldpZHRoOjAsY29udGVudEhlaWdodDowLGNvbnRlbnRXaWR0aDowLHNjcm9sbFBvc1RvcDowLHNjcm9sbFBvc0xlZnQ6MCxvblZlcnRpY2FsQ2hhbmdlOmZ1bmN0aW9uKGUpe20oKHQ9Pih7Li4udCxzY3JvbGxQb3NUb3A6ZX0pKSksKDAsci5lbnN1cmVOb3ROdWxsKShzLmN1cnJlbnQpLnNjcm9sbFRvcD1lfSxvbkhvcml6b250YWxDaGFuZ2U6ZnVuY3Rpb24oZSl7bSgodD0+KHsuLi50LHNjcm9sbFBvc0xlZnQ6ZX0pKSksKDAsci5lbnN1cmVOb3ROdWxsKShzLmN1cnJlbnQpLnNjcm9sbExlZnQ9ZX0sdmlzaWJsZTpjfSkscD0oMCxhLnVzZUNhbGxiYWNrKSgoKCk9PntpZighcy5jdXJyZW50KXJldHVybjtjb25zdHtjbGllbnRIZWlnaHQ6ZSxzY3JvbGxIZWlnaHQ6dCxzY3JvbGxUb3A6YSxjbGllbnRXaWR0aDpyLHNjcm9sbFdpZHRoOm8sc2Nyb2xsTGVmdDppfT1zLmN1cnJlbnQsbD1uLmN1cnJlbnQ/bi5jdXJyZW50Lm9mZnNldFRvcDowO20oKG49Pih7Li4ubixjb250YWluZXJIZWlnaHQ6ZS1sLGNvbnRlbnRIZWlnaHQ6dC1sLHNjcm9sbFBvc1RvcDphLGNvbnRhaW5lcldpZHRoOnIsY29udGVudFdpZHRoOm8sc2Nyb2xsUG9zTGVmdDppfSkpKX0pLFtdKTtmdW5jdGlvbiBnKCl7bSgoZT0+KHsuLi5lLHNjcm9sbFBvc1RvcDooMCxyLmVuc3VyZU5vdE51bGwpKHMuY3VycmVudCkuc2Nyb2xsVG9wLHNjcm9sbFBvc0xlZnQ6KDAsci5lbnN1cmVOb3ROdWxsKShzLmN1cnJlbnQpLnNjcm9sbExlZnR9KSkpfXJldHVybigwLGEudXNlRWZmZWN0KSgoKCk9PntjJiZwKCksbSgoZT0+KHsuLi5lLHZpc2libGU6Y30pKSl9KSxbY10pLCgwLGEudXNlRWZmZWN0KSgoKCk9Pntjb25zdCBlPXMuY3VycmVudAo7cmV0dXJuIGUmJmUuYWRkRXZlbnRMaXN0ZW5lcigic2Nyb2xsIixnKSwoKT0+e2UmJmUucmVtb3ZlRXZlbnRMaXN0ZW5lcigic2Nyb2xsIixnKX19KSxbc10pLFtkLHQ/bDp1LHMscF19fSw0ODUxMDgoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7dXNlVGhyb3R0bGVkVmFsdWU6KCk9Pm99KTt2YXIgYT1uKDc3OTQ3NCk7Y29uc3Qgcj0oZSx0KT0+e2NvbnN0IG49dC0oRGF0ZS5ub3coKS1lKTtyZXR1cm4gbjwwPzA6bn0sbz0oZSx0PTUwMCk9Pntjb25zdFtuLG9dPSgwLGEudXNlU3RhdGUpKGUpLGk9KDAsYS51c2VSZWYpKERhdGUubm93KCkpLGw9KDAsYS51c2VSZWYpKG51bGwpLHM9KDAsYS51c2VDYWxsYmFjaykoKCgpPT57bC5jdXJyZW50JiYoY2xlYXJUaW1lb3V0KGwuY3VycmVudCksbC5jdXJyZW50PW51bGwpfSksW10pO3JldHVybigwLGEudXNlRWZmZWN0KSgoKCk9PntsZXQgbj1yKGkuY3VycmVudCx0KTtyZXR1cm4gMD09PW4/KGkuY3VycmVudD1EYXRlLm5vdygpLG8oZSkscygpKTpsLmN1cnJlbnR8fChsLmN1cnJlbnQ9c2V0VGltZW91dCgoKCk9PntuPXIoaS5jdXJyZW50LHQpLDA9PT1uJiYoaS5jdXJyZW50PURhdGUubm93KCksbyhlKSxzKCkpfSksbikpLHN9KSxbcyx0LGVdKSxufX0sNjgxMzMwKGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse1NwZWVkb21ldGVyQW5hbHlzdDooKT0+bH0pO3ZhciBhPW4oNzc5NDc0KSxyPW4oMzg3MjMxKSxvPW4oNDQ5ODI2KSxpPW4oNTMzODAxKTtmdW5jdGlvbiBsKGUpe2NvbnN0e25ldXRyYWxUZXh0Q29sb3I6dH09ZSxuPSgwLHIubWVyZ2VUaGVtZXMpKG8uREVGQVVMVF9USEVNRSx7Y29udGFpbmVyOmlbYGNvbnRhaW5lci0ke2UucmVjb21tZW5kYXRpb259YF0sc3BlZWRvbWV0ZXJUZXh0OnQ/aS5zcGVlZG9tZXRlclRleHREZWZhdWx0Omkuc3BlZWRvbWV0ZXJUZXh0LHNjYWxlOmkuc2NhbGUsInN0cm9uZy1zZWxsIjp0P3ZvaWQgMDppWyJzdHJvbmctc2VsbCJdLHNlbGw6dD92b2lkIDA6aS5zZWxsLG5ldXRyYWw6dD92b2lkIDA6aS5uZXV0cmFsLGJ1eTp0P3ZvaWQgMDppLmJ1eSwic3Ryb25nLWJ1eSI6dD92b2lkIDA6aVsic3Ryb25nLWJ1eSJdfSk7cmV0dXJuIGEuY3JlYXRlRWxlbWVudChvLlNwZWVkb21ldGVyLHsuLi5lLHRoZW1lOm59KX19LDMyODU0NChlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtTcGVlZG9tZXRlclRlY2huaWNhbHM6KCk9Pmx9KTt2YXIgYT1uKDc3OTQ3NCkscj1uKDM4NzIzMSksbz1uKDQ0OTgyNiksaT1uKDY0NDAzOSk7ZnVuY3Rpb24gbChlKXtjb25zdHtuZXV0cmFsVGV4dENvbG9yOnR9PWUsbj0oMCxyLm1lcmdlVGhlbWVzKShvLkRFRkFVTFRfVEhFTUUse2NvbnRhaW5lcjppW2Bjb250YWluZXItJHtlLnJlY29tbWVuZGF0aW9ufWBdLHNwZWVkb21ldGVyVGV4dDp0P2kuc3BlZWRvbWV0ZXJUZXh0RGVmYXVsdDppLnNwZWVkb21ldGVyVGV4dCxzY2FsZTppLnNjYWxlLCJzdHJvbmctc2VsbCI6dD92b2lkIDA6aVsic3Ryb25nLXNlbGwiXSxzZWxsOnQ/dm9pZCAwOmkuc2VsbCxuZXV0cmFsOnQ/dm9pZCAwOmkubmV1dHJhbCxidXk6dD92b2lkIDA6aS5idXksInN0cm9uZy1idXkiOnQ/dm9pZCAwOmlbInN0cm9uZy1idXkiXX0pO3JldHVybiBhLmNyZWF0ZUVsZW1lbnQoby5TcGVlZG9tZXRlcix7Li4uZSx0aGVtZTpufSl9fSw3Njk5KGUsdCxuKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gYShlKXtpZighZSlyZXR1cm4iIjtpZihbIk5ZU0UgQVJDQSAmIE1LVCIsIkFNRVgiXS5pbmNsdWRlcyhlKSlyZXR1cm4iTllTRSBBcmNhIjtpZihbIkNib2UgQlpYIl0uaW5jbHVkZXMoZSkpcmV0dXJuIkNib2UgT25lIjtpZihbIkZUU0VTVCJdLmluY2x1ZGVzKGUpKXJldHVybiJGVFNFIFNUIjtjb25zdCB0PS9eKENNRXxDT01FWHxDQk9UfE5ZTUVYKV9NSU5JJC8uZXhlYyhlKTtyZXR1cm4gbnVsbCE9PXQ/dFsxXTplfW4uZCh0LHtyZWRlZmluZUV4Y2hhbmdlTmFtZTooKT0+YX0pfSwzMTk4NzIoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7Z2V0TG9jYWxpemVkRG9tYWluOigpPT5yLGdldExvY2FsaXplZERvbWFpblVybDooKT0+b30pO2NvbnN0IGE9e2FyX0FFOiJhciIsZGVfREU6ImRlIixlbjoid3d3IixlczoiZXMiLGNhX0VTOiJlcyIsZmFfSVI6Ind3dyIsZnI6ImZyIixoZV9JTDoiaWwiLGlkOiJpZCIsaW46ImluIixpdDoiaXQiLGphOiJqcCIsa3I6ImtyIixtc19NWToibXkiLHBsOiJwbCIsYnI6ImJyIixydToicnUiLHN2X1NFOiJzZSIsdGhfVEg6InRoIix0cjoidHIiLHVrOiJ1ayIsdmlfVk46InZuIix6aF9DTjoiY24iLHpoX1RXOiJ0dyJ9O2Z1bmN0aW9uIHIoZSl7cmV0dXJuIGFbZV18fCJ3d3cifWZ1bmN0aW9uIG8oZSx0KXtjb25zdCBuPXIodCksYT1lLnRvU3RyaW5nKCksbz1gJHtlLnBhdGhuYW1lfSR7ZS5zZWFyY2h9JHtlLmhhc2h9YCxpPS9eaHR0cHM6XC9cLyhbXHctXSspXC54c3RhZ2luZygtd2lkZ2V0KT9cLnR2LztyZXR1cm4vXmh0dHBzOlwvXC8oKFx3Ki0pPyhiZXRhfGJldGEwKSlcLnRyYWRpbmd2aWV3XC5jb20vLnRlc3QoYSk/Ind3dyI9PT1uP2BodHRwczovL2JldGEudHJhZGluZ3ZpZXcuY29tJHtvfWA6YGh0dHBzOi8vJHtufS1iZXRhLnRyYWRpbmd2aWV3LmNvbSR7b31gOmkudGVzdChhKT9hLnJlcGxhY2UoaSwiaHR0cHM6Ly8kMS54c3RhZ2luZy50diIpOi9cL2xvY2FsaG9zdC8udGVzdChhKT9hOi9eaHR0cHM6XC9cLyhcdytcLik/dHJhZGluZ3ZpZXdcLmNvbS8udGVzdChhKT9gaHR0cHM6Ly8ke259LnRyYWRpbmd2aWV3LmNvbSR7b31gOmF9fSwzNzYxNTcoZSl7CmUuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxOCAxOCIgd2lkdGg9IjE4IiBoZWlnaHQ9IjE4Ij48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGQ9Ik02LjUgMkM1LjY3IDIgNSAyLjY3IDUgMy41djhjMCAuODMuNjcgMS41IDEuNSAxLjVoOGMuODMgMCAxLjUtLjY3IDEuNS0xLjV2LThjMC0uODMtLjY3LTEuNS0xLjUtMS41aC04Wk02IDMuNWMwLS4yOC4yMi0uNS41LS41aDhjLjI4IDAgLjUuMjIuNS41djhhLjUuNSAwIDAgMS0uNS41aC04YS41LjUgMCAwIDEtLjUtLjV2LThabS0zIDNjMC0uMjguMjItLjUuNS0uNUg0VjVoLS41QzIuNjcgNSAyIDUuNjcgMiA2LjV2OGMwIC44My42NyAxLjUgMS41IDEuNWg4Yy44MyAwIDEuNS0uNjcgMS41LTEuNVYxNGgtMXYuNWEuNS41IDAgMCAxLS41LjVoLThhLjUuNSAwIDAgMS0uNS0uNXYtOFoiLz48L3N2Zz4nfSw4MzEwNzMoZSl7ZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDEyIDExNyIgd2lkdGg9IjEyIiBoZWlnaHQ9IjExNyI+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBkPSJNNiAwaDEuNWwxLjQgMTA1Ljc0YTYgNiAwIDEgMS01LjggMEw0LjUgMEg2eiIvPjwvc3ZnPid9LDg4NDE1MyhlKXtlLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgOCA3NyIgd2lkdGg9IjgiIGhlaWdodD0iNzciPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZD0iTTQgMGgxbC45MyA2OS41YTQgNCAwIDEgMS0zLjg2IDBMMyAwaDF6Ii8+PC9zdmc+J30sMTcxOTI5KGUpe2UuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2IDU5IiB3aWR0aD0iNiIgaGVpZ2h0PSI1OSI+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBkPSJNMS41NSA1My4zN0EzIDMgMCAwIDAgMyA1OWEzIDMgMCAwIDAgMS40NS01LjYzTDMuNzUgMGgtMS41bC0uNyA1My4zN3oiLz48L3N2Zz4nfSw5MzUxKGUpe2UuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxOCAxOCIgd2lkdGg9IjE4IiBoZWlnaHQ9IjE4Ij48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGQ9Ik0zLjkyIDcuODMgOSAxMi4yOWw1LjA4LTQuNDYtMS0xLjEzTDkgMTAuMjlsLTQuMDktMy42LS45OSAxLjE0WiIvPjwvc3ZnPid9LDExNDk0MShlKXtlLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMTggMTgiIHdpZHRoPSIxOCIgaGVpZ2h0PSIxOCI+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBkPSJNOS41IDQuNWgtMXY0aC00djFoNHY0aDF2LTRoNHYtMWgtNHYtNFoiLz48L3N2Zz4nfSw4NzMwOTkoZSl7ZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDE4IDE4IiB3aWR0aD0iMTgiIGhlaWdodD0iMTgiPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNMyAxMGExIDEgMCAxIDAgMC0yIDEgMSAwIDAgMCAwIDJ6bTAgMWEyIDIgMCAxIDAgMC00IDIgMiAwIDAgMCAwIDR6bTYtMWExIDEgMCAxIDAgMC0yIDEgMSAwIDAgMCAwIDJ6bTAgMWEyIDIgMCAxIDAgMC00IDIgMiAwIDAgMCAwIDR6bTctMmExIDEgMCAxIDEtMiAwIDEgMSAwIDAgMSAyIDB6bTEgMGEyIDIgMCAxIDEtNCAwIDIgMiAwIDAgMSA0IDB6Ii8+PC9zdmc+J30sNDYyNDYyKGUpe2UuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxOCAxOCIgd2lkdGg9IjE4IiBoZWlnaHQ9IjE4Ij48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGQ9Ik0xMy4yIDMuNWExIDEgMCAwIDAtMS40IDBsLTEuNjUgMS42NUw3LjI5IDhhMSAxIDAgMCAwLS4yOS43VjExaDIuM2ExIDEgMCAwIDAgLjctLjNsMi44NS0yLjg1IDEuNjUtMS42NGExIDEgMCAwIDAgMC0xLjQyTDEzLjIgMy41em0tLjcgMy4zbC0xLjMtMS4zIDEuMy0xLjMgMS4zIDEuMy0xLjMgMS4zem0tMi0uNmwxLjMgMS4zTDkuMyAxMEg4VjguN2wyLjUtMi41ek01IDUuNWMwLS4yOC4yMi0uNS41LS41aDFhLjUuNSAwIDEgMCAwLTFoLTFDNC42NyA0IDQgNC42NyA0IDUuNXY3YzAgLjgzLjY3IDEuNSAxLjUgMS41aDdjLjgzIDAgMS41LS42NyAxLjUtMS41di0xYS41LjUgMCAwIDAtMSAwdjFhLjUuNSAwIDAgMS0uNS41aC03YS41LjUgMCAwIDEtLjUtLjV2LTd6Ii8+PC9zdmc+J30sNzQxMDMxKGUpe2UuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxOCAxOCIgd2lkdGg9IjE4IiBoZWlnaHQ9IjE4Ij48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGQ9Ik0xMS4xIDkuNTRBNi4yNSA2LjI1IDAgMCAwIDggMmMtLjAzIDIuMTUtLjEzIDMuMjMtMS4yIDQuMy0xLjAzIDEuMDMtMy43NyAyLjE2LTMuMjMgNS40LjM2IDIuMTkgMi4zMyAzLjc4IDQuMyA0LjMgMC0uOTUuNjMtMi4wMSAyLjE1LTMuMjMuMDEgMS44Ni0uMTYgMi42IDEuMDcgMy4yMyAxLjgzLS41OSAzLjg5LTIuMjIgNC4zLTQuMy41NC0yLjc0LTEuMzEtNC4xLTIuMzktNS4yLjM2IDEuNDctLjI5IDMuMDQtMS45IDMuMDRaIi8+PC9zdmc+J30sNzYyMzM1KGUpewplLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMTggMTgiIHdpZHRoPSIxOCIgaGVpZ2h0PSIxOCIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBkPSJNNyAxMGEzIDMgMCAwIDEgMyAzSDguNUExLjUgMS41IDAgMCAwIDcgMTEuNUg0QTEuNSAxLjUgMCAwIDAgMi41IDEzSDFhMyAzIDAgMCAxIDMtM3ptNyAwYTMgMyAwIDAgMSAzIDNoLTEuNWExLjUgMS41IDAgMCAwLTEuNS0xLjVoLTNWMTB6TTUuODU3IDQuMDA2YTIuMyAyLjMgMCAwIDEgMi4xMzggMi4xMzhDOCA2LjIyMSA4IDYuMzE1IDggNi41YzAgLjE4NiAwIC4yOC0uMDA1LjM1OGwtLjAyNC4yMTJhMi4zIDIuMyAwIDAgMS0yLjExNCAxLjkyNkw1LjUgOWwtLjM1Ny0uMDA1QTIuMyAyLjMgMCAwIDEgMy4wMjkgNy4wN2wtLjAyNC0uMjEyQzMgNi43OCAzIDYuNjg2IDMgNi41czAtLjI4LjAwNS0uMzU4YTIuMyAyLjMgMCAwIDEgMi4xMzgtMi4xMzhDNS4yMiA0IDUuMzE1IDQgNS41IDRzLjI4IDAgLjM1Ny4wMDVtNyAwYTIuMyAyLjMgMCAwIDEgMi4xMzggMi4xMzhjLjAwNS4wNzguMDA1LjE3Mi4wMDUuMzU3IDAgLjE4NiAwIC4yOC0uMDA1LjM1OGwtLjAyNC4yMTJhMi4zIDIuMyAwIDAgMS0yLjExNCAxLjkyNkwxMi41IDlsLS4zNTctLjAwNWEyLjMgMi4zIDAgMCAxLTIuMTE0LTEuOTI2bC0uMDI0LS4yMTJDMTAgNi43OCAxMCA2LjY4NiAxMCA2LjVzMC0uMjguMDA1LS4zNThhMi4zIDIuMyAwIDAgMSAyLjEzOC0yLjEzOEMxMi4yMiA0IDEyLjMxNSA0IDEyLjUgNHMuMjggMCAuMzU3LjAwNU01LjMgNS41MDFsLS4wNTQuMDAxYS44LjggMCAwIDAtLjc0NC43OTcgMTcgMTcgMCAwIDAgMCAuNDAzdi4wNTNhLjguOCAwIDAgMCAuNzQ0Ljc0NEg1LjNhMTcgMTcgMCAwIDAgLjQ1NiAwIC44LjggMCAwIDAgLjc0My0uNzQ0bC4wMDEtLjA1M2ExNyAxNyAwIDAgMCAwLS40NTYuOC44IDAgMCAwLS44LS43NDYgMTcgMTcgMCAwIDAtLjQwMiAwbTcgMC0uMDU0LjAwMWEuOC44IDAgMCAwLS43NDQuNzk3IDE1IDE1IDAgMCAwIC4wMDEuNDU2LjguOCAwIDAgMCAuNzQzLjc0NGguMDU0YTE3IDE3IDAgMCAwIC40NTYgMCAuOC44IDAgMCAwIC43NDMtLjc0NGwuMDAxLS4wNTNhMTUgMTUgMCAwIDAtLjAwMS0uNDU2LjguOCAwIDAgMC0uNzk3LS43NDUgMTcgMTcgMCAwIDAtLjQwMiAwIi8+PC9zdmc+J30sMTIzMTM0KGUpe2UuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxOCAxOCIgd2lkdGg9IjE4IiBoZWlnaHQ9IjE4IiBmaWxsPSJub25lIj48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGQ9Ik0xMS41IDggMTUgMkg3TDQgOWg0bC0zIDcgMTAtOHoiLz48L3N2Zz4nfSwyMDU1MzkoZSl7ZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDE4IDE4IiB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIGZpbGw9Im5vbmUiPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZD0iTTkgMS45OTljMS4xNDEgMCAyLjE1Mi4zOTIgMi44OCAxLjEyUzEzIDQuODU4IDEzIDZ2MWEyIDIgMCAwIDEgMiAydjVhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJWOWEyIDIgMCAwIDEgMi0yVjUuOTk5YzAtMS4xNDEuMzkyLTIuMTUyIDEuMTItMi44OFM3Ljg2IDIgOSAybTAgOGExIDEgMCAwIDAtMSAxdjFhMSAxIDAgMSAwIDIgMHYtMWExIDEgMCAwIDAtMS0xbTAtNi41MDFjLS43OTIgMC0xLjQwNS4yNjctMS44Mi42OC0uNDEzLjQxNS0uNjggMS4wMjgtLjY4IDEuODJWN2g1VjUuOTk5YzAtLjc5Mi0uMjY3LTEuNDA1LS42OC0xLjgyLS40MTUtLjQxMy0xLjAyOC0uNjgtMS44Mi0uNjgiLz48L3N2Zz4nfSw1Mjk5NDgoZSl7ZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDE4IDE4IiB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIGZpbGw9Im5vbmUiPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZD0iTTcuMTUyIDUuMjQyYS4zNzIuMzcyIDAgMCAxIC42OTcgMGwuNzMyIDEuOTc5YTMuNzIgMy43MiAwIDAgMCAyLjE5OCAyLjE5OGwxLjk3OC43MzNhLjM3Mi4zNzIgMCAwIDEgMCAuNjk3bC0xLjk3OS43MzJhMy43MiAzLjcyIDAgMCAwLTIuMTk3IDIuMTk4bC0uNzMyIDEuOTc4YS4zNzIuMzcyIDAgMCAxLS42OTcgMGwtLjczMy0xLjk3OWEzLjcyIDMuNzIgMCAwIDAtMi4xOTctMi4xOTdsLTEuOTc5LS43MzJhLjM3Mi4zNzIgMCAwIDEgMC0uNjk3bDEuOTc5LS43MzNhMy43MiAzLjcyIDAgMCAwIDIuMTk3LTIuMTk4em01LjY1OC0zLjExYS4yMDMuMjAzIDAgMCAxIC4zOCAwbC40IDEuMDhhMi4wMyAyLjAzIDAgMCAwIDEuMTk4IDEuMTk4bDEuMDguNGEuMjAzLjIwMyAwIDAgMSAwIC4zOGwtMS4wOC40YTIuMDMgMi4wMyAwIDAgMC0xLjE5OCAxLjE5OGwtLjQgMS4wOGEuMjAzLjIwMyAwIDAgMS0uMzggMGwtLjQtMS4wOGEyLjAzIDIuMDMgMCAwIDAtMS4xOTgtMS4xOThsLTEuMDc5LS40YS4yMDMuMjAzIDAgMCAxIDAtLjM4bDEuMDgtLjRhMi4wMyAyLjAzIDAgMCAwIDEuMTk3LTEuMTk5eiIvPjwvc3ZnPid9LDQ5NTIoZSl7ZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDE4IDE4IiB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIGZpbGw9Im5vbmUiPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZD0ibTExLjM4MyA2LjA1OSA1LjYxNy42Ny00LjE0NCAzLjc5N0wxMy44NyAxNiA5IDEzLjI4OCA0LjEzIDE2bDEuMDE0LTUuNDc0TDEgNi43M2w1LjYxNy0uNjdMOSAxeiIvPjwvc3ZnPid9LDU3MDkzNyhlKXsKZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDE4IDE4IiB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIGZpbGw9Im5vbmUiPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZD0iTTcgNS41SDUuNXY3aDdWMTFIMTR2MS41YzAgLjgyOC0uNjczIDEuNS0xLjUwMSAxLjVINS41MDFsLS4xNTMtLjAwOEExLjUgMS41IDAgMCAxIDQgMTIuNXYtN0ExLjUgMS41IDAgMCAxIDUuNSA0SDd6TTEyLjQxNCAzYTEgMSAwIDAgMSAuNzA3LjI4N2wxLjU4NiAxLjU4NmExIDEgMCAwIDEgLjAwMSAxLjQxM0wxMyA3Ljk5N2wtMi44NTQgMi44NTRhLjUuNSAwIDAgMS0uMzUzLjE0Nkg3VjguMjA0YzAtLjEzMi4wNTMtLjI2LjE0Ni0uMzUzTDEwIDQuOTk3bDEuNzA2LTEuNzA5QTEgMSAwIDAgMSAxMi40MTQgM004LjUgOC42MTh2Ljg4aC44NzlsMi4wMy0yLjAzMS0uODc5LS44Nzl6bTMuMDktMy4wOTEuODc5Ljg3OS44MjMtLjgyNy0uODc4LS44Nzh6Ii8+PC9zdmc+J30sNjY2MzU3KGUpe2UuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxOCAxOCIgd2lkdGg9IjE4IiBoZWlnaHQ9IjE4Ij48cmVjdCB3aWR0aD0iMTAiIGhlaWdodD0iNCIgZmlsbD0iY3VycmVudENvbG9yIiByeD0iMiIgeD0iNCIgeT0iNyIvPjwvc3ZnPid9LDIyNTQ4KGUpe2UuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxOCAxOCIgd2lkdGg9IjE4IiBoZWlnaHQ9IjE4IiBmaWxsPSJub25lIj48Y2lyY2xlIGZpbGw9ImN1cnJlbnRDb2xvciIgY3g9IjkiIGN5PSI5IiByPSI0Ii8+PC9zdmc+J30sMzA3ODg1KGUpe2UuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxOCAxOCIgd2lkdGg9IjE4IiBoZWlnaHQ9IjE4Ij48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGQ9Ik05LjMgOWwuOS00LjUzYTEuMjMgMS4yMyAwIDEgMC0yLjQgMEw4LjcgOWwtLjkgNC41M2ExLjIzIDEuMjMgMCAxIDAgMi40IDBMOS4zIDl6Ii8+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBkPSJNOS4xNSA5LjI2bDQuMzgtMS40OGExLjIzIDEuMjMgMCAxIDAtMS4yMS0yLjA5TDguODUgOC43NGwtNC4zOCAxLjQ4YTEuMjMgMS4yMyAwIDEgMCAxLjIxIDIuMDlsMy40Ny0zLjA1eiIvPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZD0iTTkuMTUgOC43NEw1LjY4IDUuNjlhMS4yMyAxLjIzIDAgMSAwLTEuMiAyLjA5bDQuMzcgMS40OCAzLjQ3IDMuMDVhMS4yMyAxLjIzIDAgMSAwIDEuMi0yLjA5TDkuMTYgOC43NHoiLz48L3N2Zz4nfSw0MzUyNzMoZSl7ZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDE4IDE4IiB3aWR0aD0iMTgiIGhlaWdodD0iMTgiPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZD0iTTEyLjU3IDUuNWgtLjA3YTMuNSAzLjUgMCAxIDAgLjA3IDdBNC45OCA0Ljk4IDAgMCAxIDQgOWE1IDUgMCAwIDEgOC41Ny0zLjV6Ii8+PC9zdmc+J30sNTUxNDMwKGUpe2UuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxOCAxOCIgd2lkdGg9IjE4IiBoZWlnaHQ9IjE4Ij48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGQ9Ik0xMi4yMiAxMS43OEEzLjQ3IDMuNDcgMCAwIDAgOSA2Ljk4YTMuNDggMy40OCAwIDAgMC0zLjIyIDQuOCA2Ljk3IDYuOTcgMCAwIDEgNi40NCAwek00LjE4IDkuODNMMi4xIDkuMjhsLjMzLTEuMjQgMi4wNy41NS0uMzMgMS4yNHpNNi4zOCA2LjM2bC0uOS0xLjk0IDEuMTYtLjU0LjkgMS45NC0xLjE2LjU0ek0xMC40NiA1LjgybC45LTEuOTQgMS4xNi41NC0uOSAxLjk0LTEuMTYtLjU0ek0xMy40OSA4LjZsMi4wNy0uNTYuMzMgMS4yNC0yLjA3LjU1LS4zMy0xLjI0eiIvPjwvc3ZnPid9LDM4NTE2KGUpe2UuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMiA4IiB3aWR0aD0iMTIiIGhlaWdodD0iOCIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBkPSJNMTAgOEgyYTEgMSAwIDAgMS0uOC0xLjZsNC01LjMzYTEgMSAwIDAgMSAxLjYgMGw0IDUuMzNBMSAxIDAgMCAxIDEwIDh6Ii8+PC9zdmc+J30sOTU0NTkyKGUpe2UuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA4IDgiIHdpZHRoPSI4IiBoZWlnaHQ9IjgiPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZD0ibTMuMTcgMCAzLjIxIDQtMy4yIDRMMiA3LjA2IDQuNDYgNCAyIC45NHoiLz48L3N2Zz4nfSw3MTMxNTAoZSl7ZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDggOCIgd2lkdGg9IjgiIGhlaWdodD0iOCI+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBkPSJNMi43NyAwdi4wMWguMDFsMyAzLjY3LjI2LjMyLS4yNS4zMi0zIDMuNjdoLS4wMUwyLjc3IDggMiA3LjM3IDQuNzIgNCAyIC42M3oiLz48L3N2Zz4nfSwzMzk1NjUoZSl7ZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDE4IDE4IiB3aWR0aD0iMTgiIGhlaWdodD0iMTgiPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZD0iTTQuNSAzQzMuNjcgMyAzIDMuNjcgMyA0LjV2OWMwIC44My42NyAxLjUgMS41IDEuNWg5Yy44MyAwIDEuNS0uNjcgMS41LTEuNVYxMGgtMXYzLjVhLjUuNSAwIDAgMS0uNS41aC05YS41LjUgMCAwIDEtLjUtLjV2LTljMC0uMjguMjItLjUuNS0uNUg4VjNINC41Wk0xMSA0aDIuM0w5LjE0IDguMTVsLjcuN0wxNCA0LjcxVjdoMVYzaC00djFaIi8+PC9zdmc+J319XSk7"}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/99827.d3976dc0c5cfa2c2140e.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:12.986Z","timestamp":1785148032986,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/99827.d3976dc0c5cfa2c2140e.js HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:12 GMT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding, Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\netag: W/\"69f98b71-15b86\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Tue, 05 May 2026 06:17:21 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.51\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 05/05/2026 10:16:23\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 6f2f23f6720d18b662b058c1b0b28067\r\ncdn-cache: HIT\r\ncontent-encoding: br\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":88966,"size_decoded":33770,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, Unicode text, UTF-8 text, with very long lines (3072)","md5":"0af33a0629a4a15d05b8d21be003c0eb","sha1":"d61ed97048a72976c85785513a62b5e8590fb75a","sha256":"4dbdbd0c38d1d6468cbd0ec6b02411faaeffeddfc87c7b638be2e1263931cd14","sha512":"4350a5eab085a85477d149b1a91edb41a808bb070818e9d43e5e1147e4c71a0a5c3438616ab61efb6497365cb84e1f518343afd20431bb8612ba9f7a2165f814","ssdeep":"1536:wjugPsJO3KbxBvr1tBzoxvAgVIvrKfu2DNzmR5axsx5Eng/vc2JZu4+ej3aNOtHm:k0yKlvh/Z+839HMY74qBs","tlshash":"149309ddb2c5b06257e731b910af650ab237249d680d8440f139e8f6bc74b4aa13be7d","first_seen":"2026-05-05T10:36:04.846561Z","last_seen":"2026-07-27T12:54:15.358664Z","times_seen":2280,"resource_available":true,"data":"KHNlbGYud2VicGFja0NodW5rdHJhZGluZ3ZpZXc9c2VsZi53ZWJwYWNrQ2h1bmt0cmFkaW5ndmlld3x8W10pLnB1c2goW1s5OTgyN10sezE5OTgyNyhlKXt2YXIgdD13aW5kb3cuZG9jdW1lbnQsbj13aW5kb3cubmF2aWdhdG9yLHI9d2luZG93LmxvY2F0aW9uLGk9ZnVuY3Rpb24oKXt2YXIgZSxyLGksbyxhPWZ1bmN0aW9uKHQsbil7cmV0dXJuIG5ldyBhLmZuLmluaXQodCxuLGUpfSxzPXdpbmRvdy5qUXVlcnksbD13aW5kb3cuJCx1PS9eKD86W14jPF0qKDxbXHdcV10rPilbXj5dKiR8IyhbXHdcLV0qKSQpLyxjPS9eXHMrLyxmPS9ccyskLyxkPS9ePChcdyspXHMqXC8/Pig/OjxcL1wxPik/JC8scD0vXltcXSw6e31cc10qJC8saD0vXFwoPzpbIlxcXC9iZm5ydF18dVswLTlhLWZBLUZdezR9KS9nLG09LyJbXiJcXFxuXHJdKiJ8dHJ1ZXxmYWxzZXxudWxsfC0/XGQrKD86XC5cZCopPyg/OltlRV1bK1wtXT9cZCspPy9nLGc9Lyg/Ol58OnwsKSg/OlxzKlxbKSsvZyx2PS8od2Via2l0KVsgXC9dKFtcdy5dKykvLHk9LyhvcGVyYSkoPzouKnZlcnNpb24pP1sgXC9dKFtcdy5dKykvLGI9Lyhtc2llKSAoW1x3Ll0rKS8seD0vKG1vemlsbGEpKD86Lio/IHJ2OihbXHcuXSspKT8vLHc9Ly0oW2Etel18WzAtOV0pL2dpLFQ9L14tbXMtLyxOPWZ1bmN0aW9uKGUsdCl7cmV0dXJuKHQrIiIpLnRvVXBwZXJDYXNlKCl9LEM9bi51c2VyQWdlbnQsUz1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLGs9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSxFPUFycmF5LnByb3RvdHlwZS5wdXNoLEE9QXJyYXkucHJvdG90eXBlLnNsaWNlLEQ9U3RyaW5nLnByb3RvdHlwZS50cmltLEw9QXJyYXkucHJvdG90eXBlLmluZGV4T2YsRj17fTtmdW5jdGlvbiBqKCl7aWYoIWEuaXNSZWFkeSl7dHJ5e3QuZG9jdW1lbnRFbGVtZW50LmRvU2Nyb2xsKCJsZWZ0Iil9Y2F0Y2goZSl7cmV0dXJuIHZvaWQgc2V0VGltZW91dChqLDEpfWEucmVhZHkoKX19cmV0dXJuIGEuZm49YS5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOmEsaW5pdDpmdW5jdGlvbihlLG4scil7dmFyIGksbyxzLGw7aWYoIWUpcmV0dXJuIHRoaXM7aWYoZS5ub2RlVHlwZSlyZXR1cm4gdGhpcy5jb250ZXh0PXRoaXNbMF09ZSx0aGlzLmxlbmd0aD0xLHRoaXM7aWYoImJvZHkiPT09ZSYmIW4mJnQuYm9keSlyZXR1cm4gdGhpcy5jb250ZXh0PXQsdGhpc1swXT10LmJvZHksdGhpcy5zZWxlY3Rvcj1lLHRoaXMubGVuZ3RoPTEsdGhpcztpZigic3RyaW5nIj09dHlwZW9mIGUpe2lmKCEoaT0iPCI9PT1lLmNoYXJBdCgwKSYmIj4iPT09ZS5jaGFyQXQoZS5sZW5ndGgtMSkmJmUubGVuZ3RoPj0zP1tudWxsLGUsbnVsbF06dS5leGVjKGUpKXx8IWlbMV0mJm4pcmV0dXJuIW58fG4uanF1ZXJ5PyhufHxyKS5maW5kKGUpOnRoaXMuY29uc3RydWN0b3IobikuZmluZChlKTtpZihpWzFdKXJldHVybiBsPShuPW4gaW5zdGFuY2VvZiBhP25bMF06bik/bi5vd25lckRvY3VtZW50fHxuOnQsKHM9ZC5leGVjKGUpKT9hLmlzUGxhaW5PYmplY3Qobik/KGU9W3QuY3JlYXRlRWxlbWVudChzWzFdKV0sYS5mbi5hdHRyLmNhbGwoZSxuLCEwKSk6ZT1bbC5jcmVhdGVFbGVtZW50KHNbMV0pXTplPSgocz1hLmJ1aWxkRnJhZ21lbnQoW2lbMV1dLFtsXSkpLmNhY2hlYWJsZT9hLmNsb25lKHMuZnJhZ21lbnQpOnMuZnJhZ21lbnQpLmNoaWxkTm9kZXMsYS5tZXJnZSh0aGlzLGUpO2lmKChvPXQuZ2V0RWxlbWVudEJ5SWQoaVsyXSkpJiZvLnBhcmVudE5vZGUpe2lmKG8uaWQhPT1pWzJdKXJldHVybiByLmZpbmQoZSk7dGhpcy5sZW5ndGg9MSx0aGlzWzBdPW99cmV0dXJuIHRoaXMuY29udGV4dD10LHRoaXMuc2VsZWN0b3I9ZSx0aGlzfXJldHVybiBhLmlzRnVuY3Rpb24oZSk/ci5yZWFkeShlKToodm9pZCAwIT09ZS5zZWxlY3RvciYmKHRoaXMuc2VsZWN0b3I9ZS5zZWxlY3Rvcix0aGlzLmNvbnRleHQ9ZS5jb250ZXh0KSxhLm1ha2VBcnJheShlLHRoaXMpKX0sc2VsZWN0b3I6IiIsanF1ZXJ5OiIxLjcuMiIsbGVuZ3RoOjAsc2l6ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmxlbmd0aH0sdG9BcnJheTpmdW5jdGlvbigpe3JldHVybiBBLmNhbGwodGhpcywwKX0sZ2V0OmZ1bmN0aW9uKGUpe3JldHVybiBudWxsPT1lP3RoaXMudG9BcnJheSgpOmU8MD90aGlzW3RoaXMubGVuZ3RoK2VdOnRoaXNbZV19LHB1c2hTdGFjazpmdW5jdGlvbihlLHQsbil7dmFyIHI9dGhpcy5jb25zdHJ1Y3RvcigpO3JldHVybiBhLmlzQXJyYXkoZSk/RS5hcHBseShyLGUpOmEubWVyZ2UocixlKSxyLnByZXZPYmplY3Q9dGhpcyxyLmNvbnRleHQ9dGhpcy5jb250ZXh0LCJmaW5kIj09PXQ/ci5zZWxlY3Rvcj10aGlzLnNlbGVjdG9yKyh0aGlzLnNlbGVjdG9yPyIgIjoiIikrbjp0JiYoci5zZWxlY3Rvcj10aGlzLnNlbGVjdG9yKyIuIit0KyIoIituKyIpIikscn0sZWFjaDpmdW5jdGlvbihlLHQpe3JldHVybiBhLmVhY2godGhpcyxlLHQpfSxyZWFkeTpmdW5jdGlvbihlKXtyZXR1cm4gYS5iaW5kUmVhZHkoKSxpLmFkZChlKSx0aGlzfSxlcTpmdW5jdGlvbihlKXtyZXR1cm4tMT09PShlPStlKT90aGlzLnNsaWNlKGUpOnRoaXMuc2xpY2UoZSxlKzEpfSxmaXJzdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmVxKDApfSxsYXN0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZXEoLTEpfSxzbGljZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnB1c2hTdGFjayhBLmFwcGx5KHRoaXMsYXJndW1lbnRzKSwic2xpY2UiLEEuY2FsbChhcmd1bWVudHMpLmpvaW4oIiwiKSl9LG1hcDpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5wdXNoU3RhY2soYS5tYXAodGhpcywoZnVuY3Rpb24odCxuKXtyZXR1cm4gZS5jYWxsKHQsbix0KX0pKSl9LGVuZDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnByZXZPYmplY3R8fHRoaXMuY29uc3RydWN0b3IobnVsbCl9LHB1c2g6RSxzb3J0OltdLnNvcnQsc3BsaWNlOltdLnNwbGljZX0sYS5mbi5pbml0LnByb3RvdHlwZT1hLmZuLGEuZXh0ZW5kPWEuZm4uZXh0ZW5kPWZ1bmN0aW9uKCl7dmFyIGUsdCxuLHIsaSxvLHM9YXJndW1lbnRzWzBdfHx7fSxsPTEsdT1hcmd1bWVudHMubGVuZ3RoLGM9ITEKO2ZvcigiYm9vbGVhbiI9PXR5cGVvZiBzJiYoYz1zLHM9YXJndW1lbnRzWzFdfHx7fSxsPTIpLCJvYmplY3QiPT10eXBlb2Ygc3x8YS5pc0Z1bmN0aW9uKHMpfHwocz17fSksdT09PWwmJihzPXRoaXMsLS1sKTtsPHU7bCsrKWlmKG51bGwhPShlPWFyZ3VtZW50c1tsXSkpZm9yKHQgaW4gZSluPXNbdF0scyE9PShyPWVbdF0pJiYoYyYmciYmKGEuaXNQbGFpbk9iamVjdChyKXx8KGk9YS5pc0FycmF5KHIpKSk/KGk/KGk9ITEsbz1uJiZhLmlzQXJyYXkobik/bjpbXSk6bz1uJiZhLmlzUGxhaW5PYmplY3Qobik/bjp7fSxzW3RdPWEuZXh0ZW5kKGMsbyxyKSk6dm9pZCAwIT09ciYmKHNbdF09cikpO3JldHVybiBzfSxhLmV4dGVuZCh7bm9Db25mbGljdDpmdW5jdGlvbihlKXtyZXR1cm4gd2luZG93LiQ9PT1hJiYod2luZG93LiQ9bCksZSYmd2luZG93LmpRdWVyeT09PWEmJih3aW5kb3cualF1ZXJ5PXMpLGF9LGlzUmVhZHk6ITEscmVhZHlXYWl0OjEsaG9sZFJlYWR5OmZ1bmN0aW9uKGUpe2U/YS5yZWFkeVdhaXQrKzphLnJlYWR5KCEwKX0scmVhZHk6ZnVuY3Rpb24oZSl7aWYoITA9PT1lJiYhIC0tYS5yZWFkeVdhaXR8fCEwIT09ZSYmIWEuaXNSZWFkeSl7aWYoIXQuYm9keSlyZXR1cm4gc2V0VGltZW91dChhLnJlYWR5LDEpO2lmKGEuaXNSZWFkeT0hMCwhMCE9PWUmJi0tYS5yZWFkeVdhaXQ+MClyZXR1cm47aS5maXJlV2l0aCh0LFthXSksYS5mbi50cmlnZ2VyJiZhKHQpLnRyaWdnZXIoInJlYWR5Iikub2ZmKCJyZWFkeSIpfX0sYmluZFJlYWR5OmZ1bmN0aW9uKCl7aWYoIWkpe2lmKGk9YS5DYWxsYmFja3MoIm9uY2UgbWVtb3J5IiksImNvbXBsZXRlIj09PXQucmVhZHlTdGF0ZSlyZXR1cm4gc2V0VGltZW91dChhLnJlYWR5LDEpO2lmKHQuYWRkRXZlbnRMaXN0ZW5lcil0LmFkZEV2ZW50TGlzdGVuZXIoIkRPTUNvbnRlbnRMb2FkZWQiLG8sITEpLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJsb2FkIixhLnJlYWR5LCExKTtlbHNlIGlmKHQuYXR0YWNoRXZlbnQpe3QuYXR0YWNoRXZlbnQoIm9ucmVhZHlzdGF0ZWNoYW5nZSIsbyksd2luZG93LmF0dGFjaEV2ZW50KCJvbmxvYWQiLGEucmVhZHkpO3ZhciBlPSExO3RyeXtlPW51bGw9PXdpbmRvdy5mcmFtZUVsZW1lbnR9Y2F0Y2goZSl7fXQuZG9jdW1lbnRFbGVtZW50LmRvU2Nyb2xsJiZlJiZqKCl9fX0saXNGdW5jdGlvbjpmdW5jdGlvbihlKXtyZXR1cm4iZnVuY3Rpb24iPT09YS50eXBlKGUpfSxpc0FycmF5OkFycmF5LmlzQXJyYXl8fGZ1bmN0aW9uKGUpe3JldHVybiJhcnJheSI9PT1hLnR5cGUoZSl9LGlzV2luZG93OmZ1bmN0aW9uKGUpe3JldHVybiBudWxsIT1lJiZlPT1lLndpbmRvd30saXNOdW1lcmljOmZ1bmN0aW9uKGUpe3JldHVybiFpc05hTihwYXJzZUZsb2F0KGUpKSYmaXNGaW5pdGUoZSl9LHR5cGU6ZnVuY3Rpb24oZSl7cmV0dXJuIG51bGw9PWU/U3RyaW5nKGUpOkZbUy5jYWxsKGUpXXx8Im9iamVjdCJ9LGlzUGxhaW5PYmplY3Q6ZnVuY3Rpb24oZSl7aWYoIWV8fCJvYmplY3QiIT09YS50eXBlKGUpfHxlLm5vZGVUeXBlfHxhLmlzV2luZG93KGUpKXJldHVybiExO3RyeXtpZihlLmNvbnN0cnVjdG9yJiYhay5jYWxsKGUsImNvbnN0cnVjdG9yIikmJiFrLmNhbGwoZS5jb25zdHJ1Y3Rvci5wcm90b3R5cGUsImlzUHJvdG90eXBlT2YiKSlyZXR1cm4hMX1jYXRjaChlKXtyZXR1cm4hMX12YXIgdDtmb3IodCBpbiBlKTtyZXR1cm4gdm9pZCAwPT09dHx8ay5jYWxsKGUsdCl9LGlzRW1wdHlPYmplY3Q6ZnVuY3Rpb24oZSl7Zm9yKHZhciB0IGluIGUpcmV0dXJuITE7cmV0dXJuITB9LGVycm9yOmZ1bmN0aW9uKGUpe3Rocm93IG5ldyBFcnJvcihlKX0scGFyc2VKU09OOmZ1bmN0aW9uKGUpe3JldHVybiJzdHJpbmciPT10eXBlb2YgZSYmZT8oZT1hLnRyaW0oZSksd2luZG93LkpTT04mJndpbmRvdy5KU09OLnBhcnNlP3dpbmRvdy5KU09OLnBhcnNlKGUpOnAudGVzdChlLnJlcGxhY2UoaCwiQCIpLnJlcGxhY2UobSwiXSIpLnJlcGxhY2UoZywiIikpP25ldyBGdW5jdGlvbigicmV0dXJuICIrZSkoKTp2b2lkIGEuZXJyb3IoIkludmFsaWQgSlNPTjogIitlKSk6bnVsbH0scGFyc2VYTUw6ZnVuY3Rpb24oZSl7aWYoInN0cmluZyIhPXR5cGVvZiBlfHwhZSlyZXR1cm4gbnVsbDt2YXIgdDt0cnl7d2luZG93LkRPTVBhcnNlcj90PShuZXcgRE9NUGFyc2VyKS5wYXJzZUZyb21TdHJpbmcoZSwidGV4dC94bWwiKTooKHQ9bmV3IEFjdGl2ZVhPYmplY3QoIk1pY3Jvc29mdC5YTUxET00iKSkuYXN5bmM9ImZhbHNlIix0LmxvYWRYTUwoZSkpfWNhdGNoKGUpe3Q9dm9pZCAwfXJldHVybiB0JiZ0LmRvY3VtZW50RWxlbWVudCYmIXQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInBhcnNlcmVycm9yIikubGVuZ3RofHxhLmVycm9yKCJJbnZhbGlkIFhNTDogIitlKSx0fSxub29wOmZ1bmN0aW9uKCl7fSxnbG9iYWxFdmFsOmZ1bmN0aW9uKGUpe30sY2FtZWxDYXNlOmZ1bmN0aW9uKGUpe3JldHVybiBlLnJlcGxhY2UoVCwibXMtIikucmVwbGFjZSh3LE4pfSxub2RlTmFtZTpmdW5jdGlvbihlLHQpe3JldHVybiBlLm5vZGVOYW1lJiZlLm5vZGVOYW1lLnRvVXBwZXJDYXNlKCk9PT10LnRvVXBwZXJDYXNlKCl9LGVhY2g6ZnVuY3Rpb24oZSx0LG4pe3ZhciByLGk9MCxvPWUubGVuZ3RoLHM9dm9pZCAwPT09b3x8YS5pc0Z1bmN0aW9uKGUpO2lmKG4paWYocyl7Zm9yKHIgaW4gZSlpZighMT09PXQuYXBwbHkoZVtyXSxuKSlicmVha31lbHNlIGZvcig7aTxvJiYhMSE9PXQuYXBwbHkoZVtpKytdLG4pOyk7ZWxzZSBpZihzKXtmb3IociBpbiBlKWlmKCExPT09dC5jYWxsKGVbcl0scixlW3JdKSlicmVha31lbHNlIGZvcig7aTxvJiYhMSE9PXQuY2FsbChlW2ldLGksZVtpKytdKTspO3JldHVybiBlfSx0cmltOkQ/ZnVuY3Rpb24oZSl7cmV0dXJuIG51bGw9PWU/IiI6RC5jYWxsKGUpfTpmdW5jdGlvbihlKXtyZXR1cm4gbnVsbD09ZT8iIjplLnRvU3RyaW5nKCkucmVwbGFjZShjLCIiKS5yZXBsYWNlKGYsIiIpfSxtYWtlQXJyYXk6ZnVuY3Rpb24oZSx0KXt2YXIgbj10fHxbXTtpZihudWxsIT1lKXt2YXIgcj1hLnR5cGUoZSkKO251bGw9PWUubGVuZ3RofHwic3RyaW5nIj09PXJ8fCJmdW5jdGlvbiI9PT1yfHwicmVnZXhwIj09PXJ8fGEuaXNXaW5kb3coZSk/RS5jYWxsKG4sZSk6YS5tZXJnZShuLGUpfXJldHVybiBufSxpbkFycmF5OmZ1bmN0aW9uKGUsdCxuKXt2YXIgcjtpZih0KXtpZihMKXJldHVybiBMLmNhbGwodCxlLG4pO2ZvcihyPXQubGVuZ3RoLG49bj9uPDA/TWF0aC5tYXgoMCxyK24pOm46MDtuPHI7bisrKWlmKG4gaW4gdCYmdFtuXT09PWUpcmV0dXJuIG59cmV0dXJuLTF9LG1lcmdlOmZ1bmN0aW9uKGUsdCl7dmFyIG49ZS5sZW5ndGgscj0wO2lmKCJudW1iZXIiPT10eXBlb2YgdC5sZW5ndGgpZm9yKHZhciBpPXQubGVuZ3RoO3I8aTtyKyspZVtuKytdPXRbcl07ZWxzZSBmb3IoO3ZvaWQgMCE9PXRbcl07KWVbbisrXT10W3IrK107cmV0dXJuIGUubGVuZ3RoPW4sZX0sZ3JlcDpmdW5jdGlvbihlLHQsbil7dmFyIHI9W107bj0hIW47Zm9yKHZhciBpPTAsbz1lLmxlbmd0aDtpPG87aSsrKW4hPT0hIXQoZVtpXSxpKSYmci5wdXNoKGVbaV0pO3JldHVybiByfSxtYXA6ZnVuY3Rpb24oZSx0LG4pe3ZhciByLGksbz1bXSxzPTAsbD1lLmxlbmd0aDtpZihlIGluc3RhbmNlb2YgYXx8dm9pZCAwIT09bCYmIm51bWJlciI9PXR5cGVvZiBsJiYobD4wJiZlWzBdJiZlW2wtMV18fDA9PT1sfHxhLmlzQXJyYXkoZSkpKWZvcig7czxsO3MrKyludWxsIT0ocj10KGVbc10scyxuKSkmJihvW28ubGVuZ3RoXT1yKTtlbHNlIGZvcihpIGluIGUpbnVsbCE9KHI9dChlW2ldLGksbikpJiYob1tvLmxlbmd0aF09cik7cmV0dXJuIG8uY29uY2F0LmFwcGx5KFtdLG8pfSxndWlkOjEscHJveHk6ZnVuY3Rpb24oZSx0KXtpZigic3RyaW5nIj09dHlwZW9mIHQpe3ZhciBuPWVbdF07dD1lLGU9bn1pZihhLmlzRnVuY3Rpb24oZSkpe3ZhciByPUEuY2FsbChhcmd1bWVudHMsMiksaT1mdW5jdGlvbigpe3JldHVybiBlLmFwcGx5KHQsci5jb25jYXQoQS5jYWxsKGFyZ3VtZW50cykpKX07cmV0dXJuIGkuZ3VpZD1lLmd1aWQ9ZS5ndWlkfHxpLmd1aWR8fGEuZ3VpZCsrLGl9fSxhY2Nlc3M6ZnVuY3Rpb24oZSx0LG4scixpLG8scyl7dmFyIGwsdT1udWxsPT1uLGM9MCxmPWUubGVuZ3RoO2lmKG4mJiJvYmplY3QiPT10eXBlb2Ygbil7Zm9yKGMgaW4gbilhLmFjY2VzcyhlLHQsYyxuW2NdLDEsbyxyKTtpPTF9ZWxzZSBpZih2b2lkIDAhPT1yKXtpZihsPXZvaWQgMD09PXMmJmEuaXNGdW5jdGlvbihyKSx1JiYobD8obD10LHQ9ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBsLmNhbGwoYShlKSxuKX0pOih0LmNhbGwoZSxyKSx0PW51bGwpKSx0KWZvcig7YzxmO2MrKyl0KGVbY10sbixsP3IuY2FsbChlW2NdLGMsdChlW2NdLG4pKTpyLHMpO2k9MX1yZXR1cm4gaT9lOnU/dC5jYWxsKGUpOmY/dChlWzBdLG4pOm99LG5vdzpmdW5jdGlvbigpe3JldHVybihuZXcgRGF0ZSkuZ2V0VGltZSgpfSx1YU1hdGNoOmZ1bmN0aW9uKGUpe2U9ZS50b0xvd2VyQ2FzZSgpO3ZhciB0PXYuZXhlYyhlKXx8eS5leGVjKGUpfHxiLmV4ZWMoZSl8fGUuaW5kZXhPZigiY29tcGF0aWJsZSIpPDAmJnguZXhlYyhlKXx8W107cmV0dXJue2Jyb3dzZXI6dFsxXXx8IiIsdmVyc2lvbjp0WzJdfHwiMCJ9fSxzdWI6ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKHQsbil7cmV0dXJuIG5ldyBlLmZuLmluaXQodCxuKX1hLmV4dGVuZCghMCxlLHRoaXMpLGUuc3VwZXJjbGFzcz10aGlzLGUuZm49ZS5wcm90b3R5cGU9dGhpcygpLGUuZm4uY29uc3RydWN0b3I9ZSxlLnN1Yj10aGlzLnN1YixlLmZuLmluaXQ9ZnVuY3Rpb24odCxyKXtyZXR1cm4gciYmciBpbnN0YW5jZW9mIGEmJiEociBpbnN0YW5jZW9mIGUpJiYocj1lKHIpKSxhLmZuLmluaXQuY2FsbCh0aGlzLHQscixuKX0sZS5mbi5pbml0LnByb3RvdHlwZT1lLmZuO3ZhciBuPWUodCk7cmV0dXJuIGV9LGJyb3dzZXI6e319KSxhLmVhY2goIkJvb2xlYW4gTnVtYmVyIFN0cmluZyBGdW5jdGlvbiBBcnJheSBEYXRlIFJlZ0V4cCBPYmplY3QiLnNwbGl0KCIgIiksKGZ1bmN0aW9uKGUsdCl7RlsiW29iamVjdCAiK3QrIl0iXT10LnRvTG93ZXJDYXNlKCl9KSksKHI9YS51YU1hdGNoKEMpKS5icm93c2VyJiYoYS5icm93c2VyW3IuYnJvd3Nlcl09ITAsYS5icm93c2VyLnZlcnNpb249ci52ZXJzaW9uKSxhLmJyb3dzZXIud2Via2l0JiYoYS5icm93c2VyLnNhZmFyaT0hMCksL1xTLy50ZXN0KCLCoCIpJiYoYz0vXltcc1x4QTBdKy8sZj0vW1xzXHhBMF0rJC8pLGU9YSh0KSx0LmFkZEV2ZW50TGlzdGVuZXI/bz1mdW5jdGlvbigpe3QucmVtb3ZlRXZlbnRMaXN0ZW5lcigiRE9NQ29udGVudExvYWRlZCIsbywhMSksYS5yZWFkeSgpfTp0LmF0dGFjaEV2ZW50JiYobz1mdW5jdGlvbigpeyJjb21wbGV0ZSI9PT10LnJlYWR5U3RhdGUmJih0LmRldGFjaEV2ZW50KCJvbnJlYWR5c3RhdGVjaGFuZ2UiLG8pLGEucmVhZHkoKSl9KSxhfSgpLG89e307aS5DYWxsYmFja3M9ZnVuY3Rpb24oZSl7ZT1lP29bZV18fGZ1bmN0aW9uKGUpe3ZhciB0LG4scj1vW2VdPXt9O2Zvcih0PTAsbj0oZT1lLnNwbGl0KC9ccysvKSkubGVuZ3RoO3Q8bjt0KyspcltlW3RdXT0hMDtyZXR1cm4gcn0oZSk6e307dmFyIHQsbixyLGEscyxsLHU9W10sYz1bXSxmPWZ1bmN0aW9uKHQpe3ZhciBuLHIsbyxhO2ZvcihuPTAscj10Lmxlbmd0aDtuPHI7bisrKW89dFtuXSwiYXJyYXkiPT09KGE9aS50eXBlKG8pKT9mKG8pOiJmdW5jdGlvbiI9PT1hJiYoZS51bmlxdWUmJnAuaGFzKG8pfHx1LnB1c2gobykpfSxkPWZ1bmN0aW9uKGksbyl7Zm9yKG89b3x8W10sdD0hZS5tZW1vcnl8fFtpLG9dLG49ITAscj0hMCxsPWF8fDAsYT0wLHM9dS5sZW5ndGg7dSYmbDxzO2wrKylpZighMT09PXVbbF0uYXBwbHkoaSxvKSYmZS5zdG9wT25GYWxzZSl7dD0hMDticmVha31yPSExLHUmJihlLm9uY2U/ITA9PT10P3AuZGlzYWJsZSgpOnU9W106YyYmYy5sZW5ndGgmJih0PWMuc2hpZnQoKSxwLmZpcmVXaXRoKHRbMF0sdFsxXSkpKX0scD17YWRkOmZ1bmN0aW9uKCl7aWYodSl7dmFyIGU9dS5sZW5ndGg7Zihhcmd1bWVudHMpLHI/cz11Lmxlbmd0aDp0JiYhMCE9PXQmJihhPWUsZCh0WzBdLHRbMV0pKX1yZXR1cm4gdGhpc30sCnJlbW92ZTpmdW5jdGlvbigpe2lmKHUpZm9yKHZhciB0PWFyZ3VtZW50cyxuPTAsaT10Lmxlbmd0aDtuPGk7bisrKWZvcih2YXIgbz0wO288dS5sZW5ndGgmJih0W25dIT09dVtvXXx8KHImJm88PXMmJihzLS0sbzw9bCYmbC0tKSx1LnNwbGljZShvLS0sMSksIWUudW5pcXVlKSk7bysrKTtyZXR1cm4gdGhpc30saGFzOmZ1bmN0aW9uKGUpe2lmKHUpZm9yKHZhciB0PTAsbj11Lmxlbmd0aDt0PG47dCsrKWlmKGU9PT11W3RdKXJldHVybiEwO3JldHVybiExfSxlbXB0eTpmdW5jdGlvbigpe3JldHVybiB1PVtdLHRoaXN9LGRpc2FibGU6ZnVuY3Rpb24oKXtyZXR1cm4gdT1jPXQ9dm9pZCAwLHRoaXN9LGRpc2FibGVkOmZ1bmN0aW9uKCl7cmV0dXJuIXV9LGxvY2s6ZnVuY3Rpb24oKXtyZXR1cm4gYz12b2lkIDAsdCYmITAhPT10fHxwLmRpc2FibGUoKSx0aGlzfSxsb2NrZWQ6ZnVuY3Rpb24oKXtyZXR1cm4hY30sZmlyZVdpdGg6ZnVuY3Rpb24obixpKXtyZXR1cm4gYyYmKHI/ZS5vbmNlfHxjLnB1c2goW24saV0pOmUub25jZSYmdHx8ZChuLGkpKSx0aGlzfSxmaXJlOmZ1bmN0aW9uKCl7cmV0dXJuIHAuZmlyZVdpdGgodGhpcyxhcmd1bWVudHMpLHRoaXN9LGZpcmVkOmZ1bmN0aW9uKCl7cmV0dXJuISFufX07cmV0dXJuIHB9O3ZhciBhPVtdLnNsaWNlO2kuZXh0ZW5kKHtEZWZlcnJlZDpmdW5jdGlvbihlKXt2YXIgdCxuPWkuQ2FsbGJhY2tzKCJvbmNlIG1lbW9yeSIpLHI9aS5DYWxsYmFja3MoIm9uY2UgbWVtb3J5Iiksbz1pLkNhbGxiYWNrcygibWVtb3J5IiksYT0icGVuZGluZyIscz17cmVzb2x2ZTpuLHJlamVjdDpyLG5vdGlmeTpvfSxsPXtkb25lOm4uYWRkLGZhaWw6ci5hZGQscHJvZ3Jlc3M6by5hZGQsc3RhdGU6ZnVuY3Rpb24oKXtyZXR1cm4gYX0saXNSZXNvbHZlZDpuLmZpcmVkLGlzUmVqZWN0ZWQ6ci5maXJlZCx0aGVuOmZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gdS5kb25lKGUpLmZhaWwodCkucHJvZ3Jlc3MobiksdGhpc30sYWx3YXlzOmZ1bmN0aW9uKCl7cmV0dXJuIHUuZG9uZS5hcHBseSh1LGFyZ3VtZW50cykuZmFpbC5hcHBseSh1LGFyZ3VtZW50cyksdGhpc30scGlwZTpmdW5jdGlvbihlLHQsbil7cmV0dXJuIGkuRGVmZXJyZWQoKGZ1bmN0aW9uKHIpe2kuZWFjaCh7ZG9uZTpbZSwicmVzb2x2ZSJdLGZhaWw6W3QsInJlamVjdCJdLHByb2dyZXNzOltuLCJub3RpZnkiXX0sKGZ1bmN0aW9uKGUsdCl7dmFyIG4sbz10WzBdLGE9dFsxXTtpLmlzRnVuY3Rpb24obyk/dVtlXSgoZnVuY3Rpb24oKXsobj1vLmFwcGx5KHRoaXMsYXJndW1lbnRzKSkmJmkuaXNGdW5jdGlvbihuLnByb21pc2UpP24ucHJvbWlzZSgpLnRoZW4oci5yZXNvbHZlLHIucmVqZWN0LHIubm90aWZ5KTpyW2ErIldpdGgiXSh0aGlzPT09dT9yOnRoaXMsW25dKX0pKTp1W2VdKHJbYV0pfSkpfSkpLnByb21pc2UoKX0scHJvbWlzZTpmdW5jdGlvbihlKXtpZihudWxsPT1lKWU9bDtlbHNlIGZvcih2YXIgdCBpbiBsKWVbdF09bFt0XTtyZXR1cm4gZX19LHU9bC5wcm9taXNlKHt9KTtmb3IodCBpbiBzKXVbdF09c1t0XS5maXJlLHVbdCsiV2l0aCJdPXNbdF0uZmlyZVdpdGg7cmV0dXJuIHUuZG9uZSgoZnVuY3Rpb24oKXthPSJyZXNvbHZlZCJ9KSxyLmRpc2FibGUsby5sb2NrKS5mYWlsKChmdW5jdGlvbigpe2E9InJlamVjdGVkIn0pLG4uZGlzYWJsZSxvLmxvY2spLGUmJmUuY2FsbCh1LHUpLHV9LHdoZW46ZnVuY3Rpb24oZSl7dmFyIHQ9YS5jYWxsKGFyZ3VtZW50cywwKSxuPTAscj10Lmxlbmd0aCxvPW5ldyBBcnJheShyKSxzPXIsbD1yPD0xJiZlJiZpLmlzRnVuY3Rpb24oZS5wcm9taXNlKT9lOmkuRGVmZXJyZWQoKSx1PWwucHJvbWlzZSgpO2Z1bmN0aW9uIGMoZSl7cmV0dXJuIGZ1bmN0aW9uKG4pe3RbZV09YXJndW1lbnRzLmxlbmd0aD4xP2EuY2FsbChhcmd1bWVudHMsMCk6biwtLXN8fGwucmVzb2x2ZVdpdGgobCx0KX19ZnVuY3Rpb24gZihlKXtyZXR1cm4gZnVuY3Rpb24odCl7b1tlXT1hcmd1bWVudHMubGVuZ3RoPjE/YS5jYWxsKGFyZ3VtZW50cywwKTp0LGwubm90aWZ5V2l0aCh1LG8pfX1pZihyPjEpe2Zvcig7bjxyO24rKyl0W25dJiZ0W25dLnByb21pc2UmJmkuaXNGdW5jdGlvbih0W25dLnByb21pc2UpP3Rbbl0ucHJvbWlzZSgpLnRoZW4oYyhuKSxsLnJlamVjdCxmKG4pKTotLXM7c3x8bC5yZXNvbHZlV2l0aChsLHQpfWVsc2UgbCE9PWUmJmwucmVzb2x2ZVdpdGgobCxyP1tlXTpbXSk7cmV0dXJuIHV9fSksaS5zdXBwb3J0PXtsZWFkaW5nV2hpdGVzcGFjZTohMCx0Ym9keTohMCxodG1sU2VyaWFsaXplOiEwLHN0eWxlOiEwLGhyZWZOb3JtYWxpemVkOiEwLG9wYWNpdHk6ITAsY3NzRmxvYXQ6ITAsY2hlY2tPbjohMCxvcHRTZWxlY3RlZDohMCxnZXRTZXRBdHRyaWJ1dGU6ITAsZW5jdHlwZTohMCxodG1sNUNsb25lOiEwLHN1Ym1pdEJ1YmJsZXM6ITAsY2hhbmdlQnViYmxlczohMCxmb2N1c2luQnViYmxlczohMSxkZWxldGVFeHBhbmRvOiEwLG5vQ2xvbmVFdmVudDohMCxpbmxpbmVCbG9ja05lZWRzTGF5b3V0OiExLHNocmlua1dyYXBCbG9ja3M6ITEscmVsaWFibGVNYXJnaW5SaWdodDohMCxwaXhlbE1hcmdpbjohMCxib3hNb2RlbDohMCxub0Nsb25lQ2hlY2tlZDohMCxvcHREaXNhYmxlZDohMCxyYWRpb1ZhbHVlOiEwLGNoZWNrQ2xvbmU6ITAsYXBwZW5kQ2hlY2tlZDohMCxhamF4OiEwLGNvcnM6ITAscmVsaWFibGVIaWRkZW5PZmZzZXRzOiEwLGRvZXNOb3RBZGRCb3JkZXI6ITAsZG9lc0FkZEJvcmRlckZvclRhYmxlQW5kQ2VsbHM6ITEsZml4ZWRQb3NpdGlvbjohMCxzdWJ0cmFjdHNCb3JkZXJGb3JPdmVyZmxvd05vdFZpc2libGU6ITEsZG9lc05vdEluY2x1ZGVNYXJnaW5JbkJvZHlPZmZzZXQ6ITB9O3ZhciBzPS9eKD86XHsuKlx9fFxbLipcXSkkLyxsPS8oW0EtWl0pL2c7ZnVuY3Rpb24gdShlLHQsbil7aWYodm9pZCAwPT09biYmMT09PWUubm9kZVR5cGUpe3ZhciByPSJkYXRhLSIrdC5yZXBsYWNlKGwsIi0kMSIpLnRvTG93ZXJDYXNlKCk7aWYoInN0cmluZyI9PXR5cGVvZihuPWUuZ2V0QXR0cmlidXRlKHIpKSl7dHJ5ewpuPSJ0cnVlIj09PW58fCJmYWxzZSIhPT1uJiYoIm51bGwiPT09bj9udWxsOmkuaXNOdW1lcmljKG4pPytuOnMudGVzdChuKT9pLnBhcnNlSlNPTihuKTpuKX1jYXRjaChlKXt9aS5kYXRhKGUsdCxuKX1lbHNlIG49dm9pZCAwfXJldHVybiBufWZ1bmN0aW9uIGMoZSl7Zm9yKHZhciB0IGluIGUpaWYoKCJkYXRhIiE9PXR8fCFpLmlzRW1wdHlPYmplY3QoZVt0XSkpJiYidG9KU09OIiE9PXQpcmV0dXJuITE7cmV0dXJuITB9ZnVuY3Rpb24gZihlLHQsbil7dmFyIHI9dCsiZGVmZXIiLG89dCsicXVldWUiLGE9dCsibWFyayIscz1pLl9kYXRhKGUscik7IXN8fCJxdWV1ZSIhPT1uJiZpLl9kYXRhKGUsbyl8fCJtYXJrIiE9PW4mJmkuX2RhdGEoZSxhKXx8c2V0VGltZW91dCgoZnVuY3Rpb24oKXtpLl9kYXRhKGUsbyl8fGkuX2RhdGEoZSxhKXx8KGkucmVtb3ZlRGF0YShlLHIsITApLHMuZmlyZSgpKX0pLDApfWkuZXh0ZW5kKHtjYWNoZTp7fSx1dWlkOjAsZXhwYW5kbzoialF1ZXJ5IisoaS5mbi5qcXVlcnkrTWF0aC5yYW5kb20oKSkucmVwbGFjZSgvXEQvZywiIiksbm9EYXRhOntlbWJlZDohMCxvYmplY3Q6ImNsc2lkOkQyN0NEQjZFLUFFNkQtMTFjZi05NkI4LTQ0NDU1MzU0MDAwMCIsYXBwbGV0OiEwfSxoYXNEYXRhOmZ1bmN0aW9uKGUpe3JldHVybiEhKGU9ZS5ub2RlVHlwZT9pLmNhY2hlW2VbaS5leHBhbmRvXV06ZVtpLmV4cGFuZG9dKSYmIWMoZSl9LGRhdGE6ZnVuY3Rpb24oZSx0LG4scil7aWYoaS5hY2NlcHREYXRhKGUpKXt2YXIgbyxhLHMsbD1pLmV4cGFuZG8sdT0ic3RyaW5nIj09dHlwZW9mIHQsYz1lLm5vZGVUeXBlLGY9Yz9pLmNhY2hlOmUsZD1jP2VbbF06ZVtsXSYmbCxwPSJldmVudHMiPT09dDtpZihkJiZmW2RdJiYocHx8cnx8ZltkXS5kYXRhKXx8IXV8fHZvaWQgMCE9PW4pcmV0dXJuIGR8fChjP2VbbF09ZD0rK2kudXVpZDpkPWwpLGZbZF18fChmW2RdPXt9LGN8fChmW2RdLnRvSlNPTj1pLm5vb3ApKSwib2JqZWN0IiE9dHlwZW9mIHQmJiJmdW5jdGlvbiIhPXR5cGVvZiB0fHwocj9mW2RdPWkuZXh0ZW5kKGZbZF0sdCk6ZltkXS5kYXRhPWkuZXh0ZW5kKGZbZF0uZGF0YSx0KSksbz1hPWZbZF0scnx8KGEuZGF0YXx8KGEuZGF0YT17fSksYT1hLmRhdGEpLHZvaWQgMCE9PW4mJihhW2kuY2FtZWxDYXNlKHQpXT1uKSxwJiYhYVt0XT9vLmV2ZW50czoodT9udWxsPT0ocz1hW3RdKSYmKHM9YVtpLmNhbWVsQ2FzZSh0KV0pOnM9YSxzKX19LHJlbW92ZURhdGE6ZnVuY3Rpb24oZSx0LG4pe2lmKGkuYWNjZXB0RGF0YShlKSl7dmFyIHIsbyxhLHM9aS5leHBhbmRvLGw9ZS5ub2RlVHlwZSx1PWw/aS5jYWNoZTplLGY9bD9lW3NdOnM7aWYodVtmXSl7aWYodCYmKHI9bj91W2ZdOnVbZl0uZGF0YSkpe2kuaXNBcnJheSh0KXx8KHQ9dCBpbiByfHwodD1pLmNhbWVsQ2FzZSh0KSlpbiByP1t0XTp0LnNwbGl0KCIgIikpO2ZvcihvPTAsYT10Lmxlbmd0aDtvPGE7bysrKWRlbGV0ZSByW3Rbb11dO2lmKCEobj9jOmkuaXNFbXB0eU9iamVjdCkocikpcmV0dXJufShufHwoZGVsZXRlIHVbZl0uZGF0YSxjKHVbZl0pKSkmJihpLnN1cHBvcnQuZGVsZXRlRXhwYW5kb3x8IXUuc2V0SW50ZXJ2YWw/ZGVsZXRlIHVbZl06dVtmXT1udWxsLGwmJihpLnN1cHBvcnQuZGVsZXRlRXhwYW5kbz9kZWxldGUgZVtzXTplLnJlbW92ZUF0dHJpYnV0ZT9lLnJlbW92ZUF0dHJpYnV0ZShzKTplW3NdPW51bGwpKX19fSxfZGF0YTpmdW5jdGlvbihlLHQsbil7cmV0dXJuIGkuZGF0YShlLHQsbiwhMCl9LGFjY2VwdERhdGE6ZnVuY3Rpb24oZSl7aWYoZS5ub2RlTmFtZSl7dmFyIHQ9aS5ub0RhdGFbZS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpXTtpZih0KXJldHVybiEoITA9PT10fHxlLmdldEF0dHJpYnV0ZSgiY2xhc3NpZCIpIT09dCl9cmV0dXJuITB9fSksaS5mbi5leHRlbmQoe2RhdGE6ZnVuY3Rpb24oZSx0KXt2YXIgbixyLG8sYSxzLGw9dGhpc1swXSxjPTAsZj1udWxsO2lmKHZvaWQgMD09PWUpe2lmKHRoaXMubGVuZ3RoJiYoZj1pLmRhdGEobCksMT09PWwubm9kZVR5cGUmJiFpLl9kYXRhKGwsInBhcnNlZEF0dHJzIikpKXtmb3Iocz0obz1sLmF0dHJpYnV0ZXMpLmxlbmd0aDtjPHM7YysrKTA9PT0oYT1vW2NdLm5hbWUpLmluZGV4T2YoImRhdGEtIikmJihhPWkuY2FtZWxDYXNlKGEuc3Vic3RyaW5nKDUpKSx1KGwsYSxmW2FdKSk7aS5fZGF0YShsLCJwYXJzZWRBdHRycyIsITApfXJldHVybiBmfXJldHVybiJvYmplY3QiPT10eXBlb2YgZT90aGlzLmVhY2goKGZ1bmN0aW9uKCl7aS5kYXRhKHRoaXMsZSl9KSk6KChuPWUuc3BsaXQoIi4iLDIpKVsxXT1uWzFdPyIuIituWzFdOiIiLHI9blsxXSsiISIsaS5hY2Nlc3ModGhpcywoZnVuY3Rpb24odCl7aWYodm9pZCAwPT09dClyZXR1cm4gdm9pZCAwPT09KGY9dGhpcy50cmlnZ2VySGFuZGxlcigiZ2V0RGF0YSIrcixbblswXV0pKSYmbCYmKGY9aS5kYXRhKGwsZSksZj11KGwsZSxmKSksdm9pZCAwPT09ZiYmblsxXT90aGlzLmRhdGEoblswXSk6ZjtuWzFdPXQsdGhpcy5lYWNoKChmdW5jdGlvbigpe3ZhciBvPWkodGhpcyk7by50cmlnZ2VySGFuZGxlcigic2V0RGF0YSIrcixuKSxpLmRhdGEodGhpcyxlLHQpLG8udHJpZ2dlckhhbmRsZXIoImNoYW5nZURhdGEiK3Isbil9KSl9KSxudWxsLHQsYXJndW1lbnRzLmxlbmd0aD4xLG51bGwsITEpKX0scmVtb3ZlRGF0YTpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5lYWNoKChmdW5jdGlvbigpe2kucmVtb3ZlRGF0YSh0aGlzLGUpfSkpfX0pLGkuZXh0ZW5kKHtfbWFyazpmdW5jdGlvbihlLHQpe2UmJih0PSh0fHwiZngiKSsibWFyayIsaS5fZGF0YShlLHQsKGkuX2RhdGEoZSx0KXx8MCkrMSkpfSxfdW5tYXJrOmZ1bmN0aW9uKGUsdCxuKXtpZighMCE9PWUmJihuPXQsdD1lLGU9ITEpLHQpe3ZhciByPShuPW58fCJmeCIpKyJtYXJrIixvPWU/MDooaS5fZGF0YSh0LHIpfHwxKS0xO28/aS5fZGF0YSh0LHIsbyk6KGkucmVtb3ZlRGF0YSh0LHIsITApLGYodCxuLCJtYXJrIikpfX0scXVldWU6ZnVuY3Rpb24oZSx0LG4pe3ZhciByO2lmKGUpcmV0dXJuIHQ9KHR8fCJmeCIpKyJxdWV1ZSIscj1pLl9kYXRhKGUsdCksCm4mJighcnx8aS5pc0FycmF5KG4pP3I9aS5fZGF0YShlLHQsaS5tYWtlQXJyYXkobikpOnIucHVzaChuKSkscnx8W119LGRlcXVldWU6ZnVuY3Rpb24oZSx0KXt0PXR8fCJmeCI7dmFyIG49aS5xdWV1ZShlLHQpLHI9bi5zaGlmdCgpLG89e307ImlucHJvZ3Jlc3MiPT09ciYmKHI9bi5zaGlmdCgpKSxyJiYoImZ4Ij09PXQmJm4udW5zaGlmdCgiaW5wcm9ncmVzcyIpLGkuX2RhdGEoZSx0KyIucnVuIixvKSxyLmNhbGwoZSwoZnVuY3Rpb24oKXtpLmRlcXVldWUoZSx0KX0pLG8pKSxuLmxlbmd0aHx8KGkucmVtb3ZlRGF0YShlLHQrInF1ZXVlICIrdCsiLnJ1biIsITApLGYoZSx0LCJxdWV1ZSIpKX19KSxpLmZuLmV4dGVuZCh7cXVldWU6ZnVuY3Rpb24oZSx0KXt2YXIgbj0yO3JldHVybiJzdHJpbmciIT10eXBlb2YgZSYmKHQ9ZSxlPSJmeCIsbi0tKSxhcmd1bWVudHMubGVuZ3RoPG4/aS5xdWV1ZSh0aGlzWzBdLGUpOnZvaWQgMD09PXQ/dGhpczp0aGlzLmVhY2goKGZ1bmN0aW9uKCl7dmFyIG49aS5xdWV1ZSh0aGlzLGUsdCk7ImZ4Ij09PWUmJiJpbnByb2dyZXNzIiE9PW5bMF0mJmkuZGVxdWV1ZSh0aGlzLGUpfSkpfSxkZXF1ZXVlOmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmVhY2goKGZ1bmN0aW9uKCl7aS5kZXF1ZXVlKHRoaXMsZSl9KSl9LGRlbGF5OmZ1bmN0aW9uKGUsdCl7cmV0dXJuIGU9aS5meCYmaS5meC5zcGVlZHNbZV18fGUsdD10fHwiZngiLHRoaXMucXVldWUodCwoZnVuY3Rpb24odCxuKXt2YXIgcj1zZXRUaW1lb3V0KHQsZSk7bi5zdG9wPWZ1bmN0aW9uKCl7Y2xlYXJUaW1lb3V0KHIpfX0pKX0sY2xlYXJRdWV1ZTpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5xdWV1ZShlfHwiZngiLFtdKX0scHJvbWlzZTpmdW5jdGlvbihlLHQpeyJzdHJpbmciIT10eXBlb2YgZSYmKHQ9ZSxlPXZvaWQgMCksZT1lfHwiZngiO3ZhciBuLHI9aS5EZWZlcnJlZCgpLG89dGhpcyxhPW8ubGVuZ3RoLHM9MSxsPWUrImRlZmVyIix1PWUrInF1ZXVlIixjPWUrIm1hcmsiO2Z1bmN0aW9uIGYoKXstLXN8fHIucmVzb2x2ZVdpdGgobyxbb10pfWZvcig7YS0tOykobj1pLmRhdGEob1thXSxsLHZvaWQgMCwhMCl8fChpLmRhdGEob1thXSx1LHZvaWQgMCwhMCl8fGkuZGF0YShvW2FdLGMsdm9pZCAwLCEwKSkmJmkuZGF0YShvW2FdLGwsaS5DYWxsYmFja3MoIm9uY2UgbWVtb3J5IiksITApKSYmKHMrKyxuLmFkZChmKSk7cmV0dXJuIGYoKSxyLnByb21pc2UodCl9fSk7dmFyIGQscCxoLG09L1tcblx0XHJdL2csZz0vXHMrLyx2PS9cci9nLHk9L14oPzpidXR0b258aW5wdXQpJC9pLGI9L14oPzpidXR0b258aW5wdXR8b2JqZWN0fHNlbGVjdHx0ZXh0YXJlYSkkL2kseD0vXmEoPzpyZWEpPyQvaSx3PS9eKD86YXV0b2ZvY3VzfGF1dG9wbGF5fGFzeW5jfGNoZWNrZWR8Y29udHJvbHN8ZGVmZXJ8ZGlzYWJsZWR8aGlkZGVufGxvb3B8bXVsdGlwbGV8b3BlbnxyZWFkb25seXxyZXF1aXJlZHxzY29wZWR8c2VsZWN0ZWQpJC9pLFQ9aS5zdXBwb3J0LmdldFNldEF0dHJpYnV0ZTtpLmZuLmV4dGVuZCh7YXR0cjpmdW5jdGlvbihlLHQpe3JldHVybiBpLmFjY2Vzcyh0aGlzLGkuYXR0cixlLHQsYXJndW1lbnRzLmxlbmd0aD4xKX0scmVtb3ZlQXR0cjpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5lYWNoKChmdW5jdGlvbigpe2kucmVtb3ZlQXR0cih0aGlzLGUpfSkpfSxwcm9wOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIGkuYWNjZXNzKHRoaXMsaS5wcm9wLGUsdCxhcmd1bWVudHMubGVuZ3RoPjEpfSxyZW1vdmVQcm9wOmZ1bmN0aW9uKGUpe3JldHVybiBlPWkucHJvcEZpeFtlXXx8ZSx0aGlzLmVhY2goKGZ1bmN0aW9uKCl7dHJ5e3RoaXNbZV09dm9pZCAwLGRlbGV0ZSB0aGlzW2VdfWNhdGNoKGUpe319KSl9LGFkZENsYXNzOmZ1bmN0aW9uKGUpe3ZhciB0LG4scixvLGEscyxsO2lmKGkuaXNGdW5jdGlvbihlKSlyZXR1cm4gdGhpcy5lYWNoKChmdW5jdGlvbih0KXtpKHRoaXMpLmFkZENsYXNzKGUuY2FsbCh0aGlzLHQsdGhpcy5jbGFzc05hbWUpKX0pKTtpZihlJiYic3RyaW5nIj09dHlwZW9mIGUpZm9yKHQ9ZS5zcGxpdChnKSxuPTAscj10aGlzLmxlbmd0aDtuPHI7bisrKWlmKDE9PT0obz10aGlzW25dKS5ub2RlVHlwZSlpZihvLmNsYXNzTmFtZXx8MSE9PXQubGVuZ3RoKXtmb3IoYT0iICIrby5jbGFzc05hbWUrIiAiLHM9MCxsPXQubGVuZ3RoO3M8bDtzKyspfmEuaW5kZXhPZigiICIrdFtzXSsiICIpfHwoYSs9dFtzXSsiICIpO28uY2xhc3NOYW1lPWkudHJpbShhKX1lbHNlIG8uY2xhc3NOYW1lPWU7cmV0dXJuIHRoaXN9LHJlbW92ZUNsYXNzOmZ1bmN0aW9uKGUpe3ZhciB0LG4scixvLGEscyxsO2lmKGkuaXNGdW5jdGlvbihlKSlyZXR1cm4gdGhpcy5lYWNoKChmdW5jdGlvbih0KXtpKHRoaXMpLnJlbW92ZUNsYXNzKGUuY2FsbCh0aGlzLHQsdGhpcy5jbGFzc05hbWUpKX0pKTtpZihlJiYic3RyaW5nIj09dHlwZW9mIGV8fHZvaWQgMD09PWUpZm9yKHQ9KGV8fCIiKS5zcGxpdChnKSxuPTAscj10aGlzLmxlbmd0aDtuPHI7bisrKWlmKDE9PT0obz10aGlzW25dKS5ub2RlVHlwZSYmby5jbGFzc05hbWUpaWYoZSl7Zm9yKGE9KCIgIitvLmNsYXNzTmFtZSsiICIpLnJlcGxhY2UobSwiICIpLHM9MCxsPXQubGVuZ3RoO3M8bDtzKyspYT1hLnJlcGxhY2UoIiAiK3Rbc10rIiAiLCIgIik7by5jbGFzc05hbWU9aS50cmltKGEpfWVsc2Ugby5jbGFzc05hbWU9IiI7cmV0dXJuIHRoaXN9LHRvZ2dsZUNsYXNzOmZ1bmN0aW9uKGUsdCl7dmFyIG49dHlwZW9mIGUscj0iYm9vbGVhbiI9PXR5cGVvZiB0O3JldHVybiBpLmlzRnVuY3Rpb24oZSk/dGhpcy5lYWNoKChmdW5jdGlvbihuKXtpKHRoaXMpLnRvZ2dsZUNsYXNzKGUuY2FsbCh0aGlzLG4sdGhpcy5jbGFzc05hbWUsdCksdCl9KSk6dGhpcy5lYWNoKChmdW5jdGlvbigpe2lmKCJzdHJpbmciPT09bilmb3IodmFyIG8sYT0wLHM9aSh0aGlzKSxsPXQsdT1lLnNwbGl0KGcpO289dVthKytdOylsPXI/bDohcy5oYXNDbGFzcyhvKSwKc1tsPyJhZGRDbGFzcyI6InJlbW92ZUNsYXNzIl0obyk7ZWxzZSJ1bmRlZmluZWQiIT09biYmImJvb2xlYW4iIT09bnx8KHRoaXMuY2xhc3NOYW1lJiZpLl9kYXRhKHRoaXMsIl9fY2xhc3NOYW1lX18iLHRoaXMuY2xhc3NOYW1lKSx0aGlzLmNsYXNzTmFtZT10aGlzLmNsYXNzTmFtZXx8ITE9PT1lPyIiOmkuX2RhdGEodGhpcywiX19jbGFzc05hbWVfXyIpfHwiIil9KSl9LGhhc0NsYXNzOmZ1bmN0aW9uKGUpe2Zvcih2YXIgdD0iICIrZSsiICIsbj0wLHI9dGhpcy5sZW5ndGg7bjxyO24rKylpZigxPT09dGhpc1tuXS5ub2RlVHlwZSYmKCIgIit0aGlzW25dLmNsYXNzTmFtZSsiICIpLnJlcGxhY2UobSwiICIpLmluZGV4T2YodCk+LTEpcmV0dXJuITA7cmV0dXJuITF9LHZhbDpmdW5jdGlvbihlKXt2YXIgdCxuLHIsbz10aGlzWzBdO3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPWkuaXNGdW5jdGlvbihlKSx0aGlzLmVhY2goKGZ1bmN0aW9uKG4pe3ZhciBvLGE9aSh0aGlzKTsxPT09dGhpcy5ub2RlVHlwZSYmKG51bGw9PShvPXI/ZS5jYWxsKHRoaXMsbixhLnZhbCgpKTplKT9vPSIiOiJudW1iZXIiPT10eXBlb2Ygbz9vKz0iIjppLmlzQXJyYXkobykmJihvPWkubWFwKG8sKGZ1bmN0aW9uKGUpe3JldHVybiBudWxsPT1lPyIiOmUrIiJ9KSkpLCh0PWkudmFsSG9va3NbdGhpcy50eXBlXXx8aS52YWxIb29rc1t0aGlzLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCldKSYmInNldCJpbiB0JiZ2b2lkIDAhPT10LnNldCh0aGlzLG8sInZhbHVlIil8fCh0aGlzLnZhbHVlPW8pKX0pKSk6bz8odD1pLnZhbEhvb2tzW28udHlwZV18fGkudmFsSG9va3Nbby5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpXSkmJiJnZXQiaW4gdCYmdm9pZCAwIT09KG49dC5nZXQobywidmFsdWUiKSk/bjoic3RyaW5nIj09dHlwZW9mKG49by52YWx1ZSk/bi5yZXBsYWNlKHYsIiIpOm4/PyIiOnZvaWQgMH19KSxpLmV4dGVuZCh7dmFsSG9va3M6e29wdGlvbjp7Z2V0OmZ1bmN0aW9uKGUpe3ZhciB0PWUuYXR0cmlidXRlcy52YWx1ZTtyZXR1cm4hdHx8dC5zcGVjaWZpZWQ/ZS52YWx1ZTplLnRleHR9fSxzZWxlY3Q6e2dldDpmdW5jdGlvbihlKXt2YXIgdCxuLHIsbyxhPWUuc2VsZWN0ZWRJbmRleCxzPVtdLGw9ZS5vcHRpb25zLHU9InNlbGVjdC1vbmUiPT09ZS50eXBlO2lmKGE8MClyZXR1cm4gbnVsbDtmb3Iobj11P2E6MCxyPXU/YSsxOmwubGVuZ3RoO248cjtuKyspaWYoKG89bFtuXSkuc2VsZWN0ZWQmJihpLnN1cHBvcnQub3B0RGlzYWJsZWQ/IW8uZGlzYWJsZWQ6bnVsbD09PW8uZ2V0QXR0cmlidXRlKCJkaXNhYmxlZCIpKSYmKCFvLnBhcmVudE5vZGUuZGlzYWJsZWR8fCFpLm5vZGVOYW1lKG8ucGFyZW50Tm9kZSwib3B0Z3JvdXAiKSkpe2lmKHQ9aShvKS52YWwoKSx1KXJldHVybiB0O3MucHVzaCh0KX1yZXR1cm4gdSYmIXMubGVuZ3RoJiZsLmxlbmd0aD9pKGxbYV0pLnZhbCgpOnN9LHNldDpmdW5jdGlvbihlLHQpe3ZhciBuPWkubWFrZUFycmF5KHQpO3JldHVybiBpKGUpLmZpbmQoIm9wdGlvbiIpLmVhY2goKGZ1bmN0aW9uKCl7dGhpcy5zZWxlY3RlZD1pLmluQXJyYXkoaSh0aGlzKS52YWwoKSxuKT49MH0pKSxuLmxlbmd0aHx8KGUuc2VsZWN0ZWRJbmRleD0tMSksbn19fSxhdHRyRm46e3ZhbDohMCxjc3M6ITAsaHRtbDohMCx0ZXh0OiEwLGRhdGE6ITAsd2lkdGg6ITAsaGVpZ2h0OiEwLG9mZnNldDohMH0sYXR0cjpmdW5jdGlvbihlLHQsbixyKXt2YXIgbyxhLHMsbD1lLm5vZGVUeXBlO2lmKGUmJjMhPT1sJiY4IT09bCYmMiE9PWwpcmV0dXJuIHImJnQgaW4gaS5hdHRyRm4/aShlKVt0XShuKTp2b2lkIDA9PT1lLmdldEF0dHJpYnV0ZT9pLnByb3AoZSx0LG4pOigocz0xIT09bHx8IWkuaXNYTUxEb2MoZSkpJiYodD10LnRvTG93ZXJDYXNlKCksYT1pLmF0dHJIb29rc1t0XXx8KHcudGVzdCh0KT9wOmQpKSx2b2lkIDAhPT1uP251bGw9PT1uP3ZvaWQgaS5yZW1vdmVBdHRyKGUsdCk6YSYmInNldCJpbiBhJiZzJiZ2b2lkIDAhPT0obz1hLnNldChlLG4sdCkpP286KGUuc2V0QXR0cmlidXRlKHQsIiIrbiksbik6YSYmImdldCJpbiBhJiZzJiZudWxsIT09KG89YS5nZXQoZSx0KSk/bzpudWxsPT09KG89ZS5nZXRBdHRyaWJ1dGUodCkpP3ZvaWQgMDpvKX0scmVtb3ZlQXR0cjpmdW5jdGlvbihlLHQpe3ZhciBuLHIsbyxhLHMsbD0wO2lmKHQmJjE9PT1lLm5vZGVUeXBlKWZvcihhPShyPXQudG9Mb3dlckNhc2UoKS5zcGxpdChnKSkubGVuZ3RoO2w8YTtsKyspKG89cltsXSkmJihuPWkucHJvcEZpeFtvXXx8bywocz13LnRlc3QobykpfHxpLmF0dHIoZSxvLCIiKSxlLnJlbW92ZUF0dHJpYnV0ZShUP286bikscyYmbiBpbiBlJiYoZVtuXT0hMSkpfSxhdHRySG9va3M6e3R5cGU6e3NldDpmdW5jdGlvbihlLHQpe2lmKHkudGVzdChlLm5vZGVOYW1lKSYmZS5wYXJlbnROb2RlKWkuZXJyb3IoInR5cGUgcHJvcGVydHkgY2FuJ3QgYmUgY2hhbmdlZCIpO2Vsc2UgaWYoIWkuc3VwcG9ydC5yYWRpb1ZhbHVlJiYicmFkaW8iPT09dCYmaS5ub2RlTmFtZShlLCJpbnB1dCIpKXt2YXIgbj1lLnZhbHVlO3JldHVybiBlLnNldEF0dHJpYnV0ZSgidHlwZSIsdCksbiYmKGUudmFsdWU9biksdH19fSx2YWx1ZTp7Z2V0OmZ1bmN0aW9uKGUsdCl7cmV0dXJuIGQmJmkubm9kZU5hbWUoZSwiYnV0dG9uIik/ZC5nZXQoZSx0KTp0IGluIGU/ZS52YWx1ZTpudWxsfSxzZXQ6ZnVuY3Rpb24oZSx0LG4pe2lmKGQmJmkubm9kZU5hbWUoZSwiYnV0dG9uIikpcmV0dXJuIGQuc2V0KGUsdCxuKTtlLnZhbHVlPXR9fX0scHJvcEZpeDp7dGFiaW5kZXg6InRhYkluZGV4IixyZWFkb25seToicmVhZE9ubHkiLGZvcjoiaHRtbEZvciIsY2xhc3M6ImNsYXNzTmFtZSIsbWF4bGVuZ3RoOiJtYXhMZW5ndGgiLGNlbGxzcGFjaW5nOiJjZWxsU3BhY2luZyIsY2VsbHBhZGRpbmc6ImNlbGxQYWRkaW5nIixyb3dzcGFuOiJyb3dTcGFuIixjb2xzcGFuOiJjb2xTcGFuIix1c2VtYXA6InVzZU1hcCIsZnJhbWVib3JkZXI6ImZyYW1lQm9yZGVyIixjb250ZW50ZWRpdGFibGU6ImNvbnRlbnRFZGl0YWJsZSJ9LHByb3A6ZnVuY3Rpb24oZSx0LG4pe3ZhciByLG8sYT1lLm5vZGVUeXBlCjtpZihlJiYzIT09YSYmOCE9PWEmJjIhPT1hKXJldHVybigxIT09YXx8IWkuaXNYTUxEb2MoZSkpJiYodD1pLnByb3BGaXhbdF18fHQsbz1pLnByb3BIb29rc1t0XSksdm9pZCAwIT09bj9vJiYic2V0ImluIG8mJnZvaWQgMCE9PShyPW8uc2V0KGUsbix0KSk/cjplW3RdPW46byYmImdldCJpbiBvJiZudWxsIT09KHI9by5nZXQoZSx0KSk/cjplW3RdfSxwcm9wSG9va3M6e3RhYkluZGV4OntnZXQ6ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5nZXRBdHRyaWJ1dGVOb2RlKCJ0YWJpbmRleCIpO3JldHVybiB0JiZ0LnNwZWNpZmllZD9wYXJzZUludCh0LnZhbHVlLDEwKTpiLnRlc3QoZS5ub2RlTmFtZSl8fHgudGVzdChlLm5vZGVOYW1lKSYmZS5ocmVmPzA6dm9pZCAwfX19fSksaS5hdHRySG9va3MudGFiaW5kZXg9aS5wcm9wSG9va3MudGFiSW5kZXgscD17Z2V0OmZ1bmN0aW9uKGUsdCl7dmFyIG4scj1pLnByb3AoZSx0KTtyZXR1cm4hMD09PXJ8fCJib29sZWFuIiE9dHlwZW9mIHImJihuPWUuZ2V0QXR0cmlidXRlTm9kZSh0KSkmJiExIT09bi5ub2RlVmFsdWU/dC50b0xvd2VyQ2FzZSgpOnZvaWQgMH0sc2V0OmZ1bmN0aW9uKGUsdCxuKXt2YXIgcjtyZXR1cm4hMT09PXQ/aS5yZW1vdmVBdHRyKGUsbik6KChyPWkucHJvcEZpeFtuXXx8bilpbiBlJiYoZVtyXT0hMCksZS5zZXRBdHRyaWJ1dGUobixuLnRvTG93ZXJDYXNlKCkpKSxufX0sVHx8KGg9e25hbWU6ITAsaWQ6ITAsY29vcmRzOiEwfSxkPWkudmFsSG9va3MuYnV0dG9uPXtnZXQ6ZnVuY3Rpb24oZSx0KXt2YXIgbjtyZXR1cm4obj1lLmdldEF0dHJpYnV0ZU5vZGUodCkpJiYoaFt0XT8iIiE9PW4ubm9kZVZhbHVlOm4uc3BlY2lmaWVkKT9uLm5vZGVWYWx1ZTp2b2lkIDB9LHNldDpmdW5jdGlvbihlLG4scil7dmFyIGk9ZS5nZXRBdHRyaWJ1dGVOb2RlKHIpO3JldHVybiBpfHwoaT10LmNyZWF0ZUF0dHJpYnV0ZShyKSxlLnNldEF0dHJpYnV0ZU5vZGUoaSkpLGkubm9kZVZhbHVlPW4rIiJ9fSxpLmF0dHJIb29rcy50YWJpbmRleC5zZXQ9ZC5zZXQsaS5lYWNoKFsid2lkdGgiLCJoZWlnaHQiXSwoZnVuY3Rpb24oZSx0KXtpLmF0dHJIb29rc1t0XT1pLmV4dGVuZChpLmF0dHJIb29rc1t0XSx7c2V0OmZ1bmN0aW9uKGUsbil7aWYoIiI9PT1uKXJldHVybiBlLnNldEF0dHJpYnV0ZSh0LCJhdXRvIiksbn19KX0pKSxpLmF0dHJIb29rcy5jb250ZW50ZWRpdGFibGU9e2dldDpkLmdldCxzZXQ6ZnVuY3Rpb24oZSx0LG4peyIiPT09dCYmKHQ9ImZhbHNlIiksZC5zZXQoZSx0LG4pfX0pLGkuc3VwcG9ydC5ocmVmTm9ybWFsaXplZHx8aS5lYWNoKFsiaHJlZiIsInNyYyIsIndpZHRoIiwiaGVpZ2h0Il0sKGZ1bmN0aW9uKGUsdCl7aS5hdHRySG9va3NbdF09aS5leHRlbmQoaS5hdHRySG9va3NbdF0se2dldDpmdW5jdGlvbihlKXt2YXIgbj1lLmdldEF0dHJpYnV0ZSh0LDIpO3JldHVybiBudWxsPT09bj92b2lkIDA6bn19KX0pKSxpLnN1cHBvcnQuc3R5bGV8fChpLmF0dHJIb29rcy5zdHlsZT17Z2V0OmZ1bmN0aW9uKGUpe3JldHVybiBlLnN0eWxlLmNzc1RleHQudG9Mb3dlckNhc2UoKXx8dm9pZCAwfSxzZXQ6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZS5zdHlsZS5jc3NUZXh0PSIiK3R9fSksaS5zdXBwb3J0Lm9wdFNlbGVjdGVkfHwoaS5wcm9wSG9va3Muc2VsZWN0ZWQ9aS5leHRlbmQoaS5wcm9wSG9va3Muc2VsZWN0ZWQse2dldDpmdW5jdGlvbihlKXt2YXIgdD1lLnBhcmVudE5vZGU7cmV0dXJuIHQmJih0LnNlbGVjdGVkSW5kZXgsdC5wYXJlbnROb2RlJiZ0LnBhcmVudE5vZGUuc2VsZWN0ZWRJbmRleCksbnVsbH19KSksaS5zdXBwb3J0LmVuY3R5cGV8fChpLnByb3BGaXguZW5jdHlwZT0iZW5jb2RpbmciKSxpLnN1cHBvcnQuY2hlY2tPbnx8aS5lYWNoKFsicmFkaW8iLCJjaGVja2JveCJdLChmdW5jdGlvbigpe2kudmFsSG9va3NbdGhpc109e2dldDpmdW5jdGlvbihlKXtyZXR1cm4gbnVsbD09PWUuZ2V0QXR0cmlidXRlKCJ2YWx1ZSIpPyJvbiI6ZS52YWx1ZX19fSkpLGkuZWFjaChbInJhZGlvIiwiY2hlY2tib3giXSwoZnVuY3Rpb24oKXtpLnZhbEhvb2tzW3RoaXNdPWkuZXh0ZW5kKGkudmFsSG9va3NbdGhpc10se3NldDpmdW5jdGlvbihlLHQpe2lmKGkuaXNBcnJheSh0KSlyZXR1cm4gZS5jaGVja2VkPWkuaW5BcnJheShpKGUpLnZhbCgpLHQpPj0wfX0pfSkpO3ZhciBOPS9eKD86dGV4dGFyZWF8aW5wdXR8c2VsZWN0KSQvaSxDPS9eKFteXC5dKik/KD86XC4oLispKT8kLyxTPS8oPzpefFxzKWhvdmVyKFwuXFMrKT9cYi8saz0vXmtleS8sRT0vXig/Om1vdXNlfGNvbnRleHRtZW51KXxjbGljay8sQT0vXig/OmZvY3VzaW5mb2N1c3xmb2N1c291dGJsdXIpJC8sRD0vXihcdyopKD86IyhbXHdcLV0rKSk/KD86XC4oW1x3XC1dKykpPyQvLEw9ZnVuY3Rpb24oZSl7dmFyIHQ9RC5leGVjKGUpO3JldHVybiB0JiYodFsxXT0odFsxXXx8IiIpLnRvTG93ZXJDYXNlKCksdFszXT10WzNdJiZuZXcgUmVnRXhwKCIoPzpefFxccykiK3RbM10rIig/Olxcc3wkKSIpKSx0fSxGPWZ1bmN0aW9uKGUpe3JldHVybiBpLmV2ZW50LnNwZWNpYWwuaG92ZXI/ZTplLnJlcGxhY2UoUywibW91c2VlbnRlciQxIG1vdXNlbGVhdmUkMSIpfTtmdW5jdGlvbiBqKCl7cmV0dXJuITF9ZnVuY3Rpb24gXygpe3JldHVybiEwfWkuZXZlbnQ9e2FkZDpmdW5jdGlvbihlLHQsbixyLG8pe3ZhciBhLHMsbCx1LGMsZixkLHAsaCxtLGc7aWYoMyE9PWUubm9kZVR5cGUmJjghPT1lLm5vZGVUeXBlJiZ0JiZuJiYoYT1pLl9kYXRhKGUpKSl7Zm9yKG4uaGFuZGxlciYmKG49KGg9bikuaGFuZGxlcixvPWguc2VsZWN0b3IpLG4uZ3VpZHx8KG4uZ3VpZD1pLmd1aWQrKyksKGw9YS5ldmVudHMpfHwoYS5ldmVudHM9bD17fSksKHM9YS5oYW5kbGUpfHwoYS5oYW5kbGU9cz1mdW5jdGlvbihlKXtyZXR1cm4gdm9pZCAwPT09aXx8ZSYmaS5ldmVudC50cmlnZ2VyZWQ9PT1lLnR5cGU/dm9pZCAwOmkuZXZlbnQuZGlzcGF0Y2guYXBwbHkocy5lbGVtLGFyZ3VtZW50cyl9LHMuZWxlbT1lKSx0PWkudHJpbShGKHQpKS5zcGxpdCgiICIpLHU9MDt1PHQubGVuZ3RoO3UrKylmPShjPUMuZXhlYyh0W3VdKXx8W10pWzFdLApkPShjWzJdfHwiIikuc3BsaXQoIi4iKS5zb3J0KCksZz1pLmV2ZW50LnNwZWNpYWxbZl18fHt9LGY9KG8/Zy5kZWxlZ2F0ZVR5cGU6Zy5iaW5kVHlwZSl8fGYsZz1pLmV2ZW50LnNwZWNpYWxbZl18fHt9LHA9aS5leHRlbmQoe3R5cGU6ZixvcmlnVHlwZTpjWzFdLGRhdGE6cixoYW5kbGVyOm4sZ3VpZDpuLmd1aWQsc2VsZWN0b3I6byxxdWljazpvJiZMKG8pLG5hbWVzcGFjZTpkLmpvaW4oIi4iKX0saCksKG09bFtmXSl8fCgobT1sW2ZdPVtdKS5kZWxlZ2F0ZUNvdW50PTAsZy5zZXR1cCYmITEhPT1nLnNldHVwLmNhbGwoZSxyLGQscyl8fChlLmFkZEV2ZW50TGlzdGVuZXI/ZS5hZGRFdmVudExpc3RlbmVyKGYscywhMSk6ZS5hdHRhY2hFdmVudCYmZS5hdHRhY2hFdmVudCgib24iK2YscykpKSxnLmFkZCYmKGcuYWRkLmNhbGwoZSxwKSxwLmhhbmRsZXIuZ3VpZHx8KHAuaGFuZGxlci5ndWlkPW4uZ3VpZCkpLG8/bS5zcGxpY2UobS5kZWxlZ2F0ZUNvdW50KyssMCxwKTptLnB1c2gocCksaS5ldmVudC5nbG9iYWxbZl09ITA7ZT1udWxsfX0sZ2xvYmFsOnt9LHJlbW92ZTpmdW5jdGlvbihlLHQsbixyLG8pe3ZhciBhLHMsbCx1LGMsZixkLHAsaCxtLGcsdix5PWkuaGFzRGF0YShlKSYmaS5fZGF0YShlKTtpZih5JiYocD15LmV2ZW50cykpe2Zvcih0PWkudHJpbShGKHR8fCIiKSkuc3BsaXQoIiAiKSxhPTA7YTx0Lmxlbmd0aDthKyspaWYobD11PShzPUMuZXhlYyh0W2FdKXx8W10pWzFdLGM9c1syXSxsKXtmb3IoaD1pLmV2ZW50LnNwZWNpYWxbbF18fHt9LGY9KGc9cFtsPShyP2guZGVsZWdhdGVUeXBlOmguYmluZFR5cGUpfHxsXXx8W10pLmxlbmd0aCxjPWM/bmV3IFJlZ0V4cCgiKF58XFwuKSIrYy5zcGxpdCgiLiIpLnNvcnQoKS5qb2luKCJcXC4oPzouKlxcLik/IikrIihcXC58JCkiKTpudWxsLGQ9MDtkPGcubGVuZ3RoO2QrKyl2PWdbZF0sIW8mJnUhPT12Lm9yaWdUeXBlfHxuJiZuLmd1aWQhPT12Lmd1aWR8fGMmJiFjLnRlc3Qodi5uYW1lc3BhY2UpfHxyJiZyIT09di5zZWxlY3RvciYmKCIqKiIhPT1yfHwhdi5zZWxlY3Rvcil8fChnLnNwbGljZShkLS0sMSksdi5zZWxlY3RvciYmZy5kZWxlZ2F0ZUNvdW50LS0saC5yZW1vdmUmJmgucmVtb3ZlLmNhbGwoZSx2KSk7MD09PWcubGVuZ3RoJiZmIT09Zy5sZW5ndGgmJihoLnRlYXJkb3duJiYhMSE9PWgudGVhcmRvd24uY2FsbChlLGMpfHxpLnJlbW92ZUV2ZW50KGUsbCx5LmhhbmRsZSksZGVsZXRlIHBbbF0pfWVsc2UgZm9yKGwgaW4gcClpLmV2ZW50LnJlbW92ZShlLGwrdFthXSxuLHIsITApO2kuaXNFbXB0eU9iamVjdChwKSYmKChtPXkuaGFuZGxlKSYmKG0uZWxlbT1udWxsKSxpLnJlbW92ZURhdGEoZSxbImV2ZW50cyIsImhhbmRsZSJdLCEwKSl9fSxjdXN0b21FdmVudDp7Z2V0RGF0YTohMCxzZXREYXRhOiEwLGNoYW5nZURhdGE6ITB9LHRyaWdnZXI6ZnVuY3Rpb24oZSx0LG4scil7aWYoIW58fDMhPT1uLm5vZGVUeXBlJiY4IT09bi5ub2RlVHlwZSl7dmFyIG8sYSxzLGwsdSxjLGYsZCxwLGgsbT1lLnR5cGV8fGUsZz1bXTtpZighQS50ZXN0KG0raS5ldmVudC50cmlnZ2VyZWQpJiYobS5pbmRleE9mKCIhIik+PTAmJihtPW0uc2xpY2UoMCwtMSksYT0hMCksbS5pbmRleE9mKCIuIik+PTAmJihnPW0uc3BsaXQoIi4iKSxtPWcuc2hpZnQoKSxnLnNvcnQoKSksbiYmIWkuZXZlbnQuY3VzdG9tRXZlbnRbbV18fGkuZXZlbnQuZ2xvYmFsW21dKSlpZigoZT0ib2JqZWN0Ij09dHlwZW9mIGU/ZVtpLmV4cGFuZG9dP2U6bmV3IGkuRXZlbnQobSxlKTpuZXcgaS5FdmVudChtKSkudHlwZT1tLGUuaXNUcmlnZ2VyPSEwLGUuZXhjbHVzaXZlPWEsZS5uYW1lc3BhY2U9Zy5qb2luKCIuIiksZS5uYW1lc3BhY2VfcmU9ZS5uYW1lc3BhY2U/bmV3IFJlZ0V4cCgiKF58XFwuKSIrZy5qb2luKCJcXC4oPzouKlxcLik/IikrIihcXC58JCkiKTpudWxsLGM9bS5pbmRleE9mKCI6Iik8MD8ib24iK206IiIsbil7aWYoZS5yZXN1bHQ9dm9pZCAwLGUudGFyZ2V0fHwoZS50YXJnZXQ9biksKHQ9bnVsbCE9dD9pLm1ha2VBcnJheSh0KTpbXSkudW5zaGlmdChlKSwhKGY9aS5ldmVudC5zcGVjaWFsW21dfHx7fSkudHJpZ2dlcnx8ITEhPT1mLnRyaWdnZXIuYXBwbHkobix0KSl7aWYocD1bW24sZi5iaW5kVHlwZXx8bV1dLCFyJiYhZi5ub0J1YmJsZSYmIWkuaXNXaW5kb3cobikpe2ZvcihoPWYuZGVsZWdhdGVUeXBlfHxtLGw9QS50ZXN0KGgrbSk/bjpuLnBhcmVudE5vZGUsdT1udWxsO2w7bD1sLnBhcmVudE5vZGUpcC5wdXNoKFtsLGhdKSx1PWw7dSYmdT09PW4ub3duZXJEb2N1bWVudCYmcC5wdXNoKFt1LmRlZmF1bHRWaWV3fHx1LnBhcmVudFdpbmRvd3x8d2luZG93LGhdKX1mb3Iocz0wO3M8cC5sZW5ndGgmJiFlLmlzUHJvcGFnYXRpb25TdG9wcGVkKCk7cysrKWw9cFtzXVswXSxlLnR5cGU9cFtzXVsxXSwoZD0oaS5fZGF0YShsLCJldmVudHMiKXx8e30pW2UudHlwZV0mJmkuX2RhdGEobCwiaGFuZGxlIikpJiZkLmFwcGx5KGwsdCksKGQ9YyYmbFtjXSkmJmkuYWNjZXB0RGF0YShsKSYmITE9PT1kLmFwcGx5KGwsdCkmJmUucHJldmVudERlZmF1bHQoKTtyZXR1cm4gZS50eXBlPW0scnx8ZS5pc0RlZmF1bHRQcmV2ZW50ZWQoKXx8Zi5fZGVmYXVsdCYmITEhPT1mLl9kZWZhdWx0LmFwcGx5KG4ub3duZXJEb2N1bWVudCx0KXx8ImNsaWNrIj09PW0mJmkubm9kZU5hbWUobiwiYSIpfHwhaS5hY2NlcHREYXRhKG4pfHxjJiZuW21dJiYoImZvY3VzIiE9PW0mJiJibHVyIiE9PW18fDAhPT1lLnRhcmdldC5vZmZzZXRXaWR0aCkmJiFpLmlzV2luZG93KG4pJiYoKHU9bltjXSkmJihuW2NdPW51bGwpLGkuZXZlbnQudHJpZ2dlcmVkPW0sblttXSgpLGkuZXZlbnQudHJpZ2dlcmVkPXZvaWQgMCx1JiYobltjXT11KSksZS5yZXN1bHR9fWVsc2UgZm9yKHMgaW4gbz1pLmNhY2hlKW9bc10uZXZlbnRzJiZvW3NdLmV2ZW50c1ttXSYmaS5ldmVudC50cmlnZ2VyKGUsdCxvW3NdLmhhbmRsZS5lbGVtLCEwKX19LGRpc3BhdGNoOmZ1bmN0aW9uKGUpe2U9aS5ldmVudC5maXgoZXx8d2luZG93LmV2ZW50KQo7dmFyIHQsbixyLG8sYSxzLGwsdSxjLGYsZD0oaS5fZGF0YSh0aGlzLCJldmVudHMiKXx8e30pW2UudHlwZV18fFtdLHA9ZC5kZWxlZ2F0ZUNvdW50LGg9W10uc2xpY2UuY2FsbChhcmd1bWVudHMsMCksbT0hZS5leGNsdXNpdmUmJiFlLm5hbWVzcGFjZSxnPWkuZXZlbnQuc3BlY2lhbFtlLnR5cGVdfHx7fSx2PVtdO2lmKGhbMF09ZSxlLmRlbGVnYXRlVGFyZ2V0PXRoaXMsIWcucHJlRGlzcGF0Y2h8fCExIT09Zy5wcmVEaXNwYXRjaC5jYWxsKHRoaXMsZSkpe2lmKHAmJighZS5idXR0b258fCJjbGljayIhPT1lLnR5cGUpKWZvcigobz1pKHRoaXMpKS5jb250ZXh0PXRoaXMub3duZXJEb2N1bWVudHx8dGhpcyxyPWUudGFyZ2V0O3IhPXRoaXM7cj1yLnBhcmVudE5vZGV8fHRoaXMpaWYoITAhPT1yLmRpc2FibGVkKXtmb3Iocz17fSx1PVtdLG9bMF09cix0PTA7dDxwO3QrKyl2b2lkIDA9PT1zW2Y9KGM9ZFt0XSkuc2VsZWN0b3JdJiYoc1tmXT1jLnF1aWNrPyh5PXIsYj1jLnF1aWNrLHg9dm9pZCAwLHg9eS5hdHRyaWJ1dGVzfHx7fSwoIWJbMV18fHkubm9kZU5hbWUudG9Mb3dlckNhc2UoKT09PWJbMV0pJiYoIWJbMl18fCh4LmlkfHx7fSkudmFsdWU9PT1iWzJdKSYmKCFiWzNdfHxiWzNdLnRlc3QoKHguY2xhc3N8fHt9KS52YWx1ZSkpKTpvLmlzKGYpKSxzW2ZdJiZ1LnB1c2goYyk7dS5sZW5ndGgmJnYucHVzaCh7ZWxlbTpyLG1hdGNoZXM6dX0pfXZhciB5LGIseDtmb3IoZC5sZW5ndGg+cCYmdi5wdXNoKHtlbGVtOnRoaXMsbWF0Y2hlczpkLnNsaWNlKHApfSksdD0wO3Q8di5sZW5ndGgmJiFlLmlzUHJvcGFnYXRpb25TdG9wcGVkKCk7dCsrKWZvcihsPXZbdF0sZS5jdXJyZW50VGFyZ2V0PWwuZWxlbSxuPTA7bjxsLm1hdGNoZXMubGVuZ3RoJiYhZS5pc0ltbWVkaWF0ZVByb3BhZ2F0aW9uU3RvcHBlZCgpO24rKyljPWwubWF0Y2hlc1tuXSwobXx8IWUubmFtZXNwYWNlJiYhYy5uYW1lc3BhY2V8fGUubmFtZXNwYWNlX3JlJiZlLm5hbWVzcGFjZV9yZS50ZXN0KGMubmFtZXNwYWNlKSkmJihlLmRhdGE9Yy5kYXRhLGUuaGFuZGxlT2JqPWMsdm9pZCAwIT09KGE9KChpLmV2ZW50LnNwZWNpYWxbYy5vcmlnVHlwZV18fHt9KS5oYW5kbGV8fGMuaGFuZGxlcikuYXBwbHkobC5lbGVtLGgpKSYmKGUucmVzdWx0PWEsITE9PT1hJiYoZS5wcmV2ZW50RGVmYXVsdCgpLGUuc3RvcFByb3BhZ2F0aW9uKCkpKSk7cmV0dXJuIGcucG9zdERpc3BhdGNoJiZnLnBvc3REaXNwYXRjaC5jYWxsKHRoaXMsZSksZS5yZXN1bHR9fSxwcm9wczoiYXR0ckNoYW5nZSBhdHRyTmFtZSByZWxhdGVkTm9kZSBzcmNFbGVtZW50IGFsdEtleSBidWJibGVzIGNhbmNlbGFibGUgY3RybEtleSBjdXJyZW50VGFyZ2V0IGV2ZW50UGhhc2UgbWV0YUtleSByZWxhdGVkVGFyZ2V0IHNoaWZ0S2V5IHRhcmdldCB0aW1lU3RhbXAgdmlldyB3aGljaCIuc3BsaXQoIiAiKSxmaXhIb29rczp7fSxrZXlIb29rczp7cHJvcHM6ImNoYXIgY2hhckNvZGUga2V5IGtleUNvZGUiLnNwbGl0KCIgIiksZmlsdGVyOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIG51bGw9PWUud2hpY2gmJihlLndoaWNoPW51bGwhPXQuY2hhckNvZGU/dC5jaGFyQ29kZTp0LmtleUNvZGUpLGV9fSxtb3VzZUhvb2tzOntwcm9wczoiYnV0dG9uIGJ1dHRvbnMgY2xpZW50WCBjbGllbnRZIGZyb21FbGVtZW50IG9mZnNldFggb2Zmc2V0WSBwYWdlWCBwYWdlWSBzY3JlZW5YIHNjcmVlblkgdG9FbGVtZW50Ii5zcGxpdCgiICIpLGZpbHRlcjpmdW5jdGlvbihlLG4pe3ZhciByLGksbyxhPW4uYnV0dG9uLHM9bi5mcm9tRWxlbWVudDtyZXR1cm4gbnVsbD09ZS5wYWdlWCYmbnVsbCE9bi5jbGllbnRYJiYoaT0ocj1lLnRhcmdldC5vd25lckRvY3VtZW50fHx0KS5kb2N1bWVudEVsZW1lbnQsbz1yLmJvZHksZS5wYWdlWD1uLmNsaWVudFgrKGkmJmkuc2Nyb2xsTGVmdHx8byYmby5zY3JvbGxMZWZ0fHwwKS0oaSYmaS5jbGllbnRMZWZ0fHxvJiZvLmNsaWVudExlZnR8fDApLGUucGFnZVk9bi5jbGllbnRZKyhpJiZpLnNjcm9sbFRvcHx8byYmby5zY3JvbGxUb3B8fDApLShpJiZpLmNsaWVudFRvcHx8byYmby5jbGllbnRUb3B8fDApKSwhZS5yZWxhdGVkVGFyZ2V0JiZzJiYoZS5yZWxhdGVkVGFyZ2V0PXM9PT1lLnRhcmdldD9uLnRvRWxlbWVudDpzKSxlLndoaWNofHx2b2lkIDA9PT1hfHwoZS53aGljaD0xJmE/MToyJmE/Mzo0JmE/MjowKSxlfX0sZml4OmZ1bmN0aW9uKGUpe2lmKGVbaS5leHBhbmRvXSlyZXR1cm4gZTt2YXIgbixyLG89ZSxhPWkuZXZlbnQuZml4SG9va3NbZS50eXBlXXx8e30scz1hLnByb3BzP3RoaXMucHJvcHMuY29uY2F0KGEucHJvcHMpOnRoaXMucHJvcHM7Zm9yKGU9aS5FdmVudChvKSxuPXMubGVuZ3RoO247KWVbcj1zWy0tbl1dPW9bcl07cmV0dXJuIGUudGFyZ2V0fHwoZS50YXJnZXQ9by5zcmNFbGVtZW50fHx0KSwzPT09ZS50YXJnZXQubm9kZVR5cGUmJihlLnRhcmdldD1lLnRhcmdldC5wYXJlbnROb2RlKSx2b2lkIDA9PT1lLm1ldGFLZXkmJihlLm1ldGFLZXk9ZS5jdHJsS2V5KSxhLmZpbHRlcj9hLmZpbHRlcihlLG8pOmV9LHNwZWNpYWw6e3JlYWR5OntzZXR1cDppLmJpbmRSZWFkeX0sbG9hZDp7bm9CdWJibGU6ITB9LGZvY3VzOntkZWxlZ2F0ZVR5cGU6ImZvY3VzaW4ifSxibHVyOntkZWxlZ2F0ZVR5cGU6ImZvY3Vzb3V0In0sYmVmb3JldW5sb2FkOntzZXR1cDpmdW5jdGlvbihlLHQsbil7aS5pc1dpbmRvdyh0aGlzKSYmKHRoaXMub25iZWZvcmV1bmxvYWQ9bil9LHRlYXJkb3duOmZ1bmN0aW9uKGUsdCl7dGhpcy5vbmJlZm9yZXVubG9hZD09PXQmJih0aGlzLm9uYmVmb3JldW5sb2FkPW51bGwpfX19LHNpbXVsYXRlOmZ1bmN0aW9uKGUsdCxuLHIpe3ZhciBvPWkuZXh0ZW5kKG5ldyBpLkV2ZW50LG4se3R5cGU6ZSxpc1NpbXVsYXRlZDohMCxvcmlnaW5hbEV2ZW50Ont9fSk7cj9pLmV2ZW50LnRyaWdnZXIobyxudWxsLHQpOmkuZXZlbnQuZGlzcGF0Y2guY2FsbCh0LG8pLG8uaXNEZWZhdWx0UHJldmVudGVkKCkmJm4ucHJldmVudERlZmF1bHQoKX19LGkuZXZlbnQuaGFuZGxlPWkuZXZlbnQuZGlzcGF0Y2gsCmkucmVtb3ZlRXZlbnQ9dC5yZW1vdmVFdmVudExpc3RlbmVyP2Z1bmN0aW9uKGUsdCxuKXtlLnJlbW92ZUV2ZW50TGlzdGVuZXImJmUucmVtb3ZlRXZlbnRMaXN0ZW5lcih0LG4sITEpfTpmdW5jdGlvbihlLHQsbil7ZS5kZXRhY2hFdmVudCYmZS5kZXRhY2hFdmVudCgib24iK3Qsbil9LGkuRXZlbnQ9ZnVuY3Rpb24oZSx0KXtpZighKHRoaXMgaW5zdGFuY2VvZiBpLkV2ZW50KSlyZXR1cm4gbmV3IGkuRXZlbnQoZSx0KTtlJiZlLnR5cGU/KHRoaXMub3JpZ2luYWxFdmVudD1lLHRoaXMudHlwZT1lLnR5cGUsdGhpcy5pc0RlZmF1bHRQcmV2ZW50ZWQ9ZS5kZWZhdWx0UHJldmVudGVkfHwhMT09PWUucmV0dXJuVmFsdWV8fGUuZ2V0UHJldmVudERlZmF1bHQmJmUuZ2V0UHJldmVudERlZmF1bHQoKT9fOmopOnRoaXMudHlwZT1lLHQmJmkuZXh0ZW5kKHRoaXMsdCksdGhpcy50aW1lU3RhbXA9ZSYmZS50aW1lU3RhbXB8fGkubm93KCksdGhpc1tpLmV4cGFuZG9dPSEwfSxpLkV2ZW50LnByb3RvdHlwZT17cHJldmVudERlZmF1bHQ6ZnVuY3Rpb24oKXt0aGlzLmlzRGVmYXVsdFByZXZlbnRlZD1fO3ZhciBlPXRoaXMub3JpZ2luYWxFdmVudDtlJiYoZS5wcmV2ZW50RGVmYXVsdD9lLnByZXZlbnREZWZhdWx0KCk6ZS5yZXR1cm5WYWx1ZT0hMSl9LHN0b3BQcm9wYWdhdGlvbjpmdW5jdGlvbigpe3RoaXMuaXNQcm9wYWdhdGlvblN0b3BwZWQ9Xzt2YXIgZT10aGlzLm9yaWdpbmFsRXZlbnQ7ZSYmKGUuc3RvcFByb3BhZ2F0aW9uJiZlLnN0b3BQcm9wYWdhdGlvbigpLGUuY2FuY2VsQnViYmxlPSEwKX0sc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uOmZ1bmN0aW9uKCl7dGhpcy5pc0ltbWVkaWF0ZVByb3BhZ2F0aW9uU3RvcHBlZD1fLHRoaXMuc3RvcFByb3BhZ2F0aW9uKCl9LGlzRGVmYXVsdFByZXZlbnRlZDpqLGlzUHJvcGFnYXRpb25TdG9wcGVkOmosaXNJbW1lZGlhdGVQcm9wYWdhdGlvblN0b3BwZWQ6an0saS5lYWNoKHttb3VzZWVudGVyOiJtb3VzZW92ZXIiLG1vdXNlbGVhdmU6Im1vdXNlb3V0In0sKGZ1bmN0aW9uKGUsdCl7aS5ldmVudC5zcGVjaWFsW2VdPXtkZWxlZ2F0ZVR5cGU6dCxiaW5kVHlwZTp0LGhhbmRsZTpmdW5jdGlvbihlKXt2YXIgbixyPWUucmVsYXRlZFRhcmdldCxvPWUuaGFuZGxlT2JqO28uc2VsZWN0b3I7cmV0dXJuIHImJihyPT09dGhpc3x8aS5jb250YWlucyh0aGlzLHIpKXx8KGUudHlwZT1vLm9yaWdUeXBlLG49by5oYW5kbGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKSxlLnR5cGU9dCksbn19fSkpLGkuc3VwcG9ydC5zdWJtaXRCdWJibGVzfHwoaS5ldmVudC5zcGVjaWFsLnN1Ym1pdD17c2V0dXA6ZnVuY3Rpb24oKXtpZihpLm5vZGVOYW1lKHRoaXMsImZvcm0iKSlyZXR1cm4hMTtpLmV2ZW50LmFkZCh0aGlzLCJjbGljay5fc3VibWl0IGtleXByZXNzLl9zdWJtaXQiLChmdW5jdGlvbihlKXt2YXIgdD1lLnRhcmdldCxuPWkubm9kZU5hbWUodCwiaW5wdXQiKXx8aS5ub2RlTmFtZSh0LCJidXR0b24iKT90LmZvcm06dm9pZCAwO24mJiFuLl9zdWJtaXRfYXR0YWNoZWQmJihpLmV2ZW50LmFkZChuLCJzdWJtaXQuX3N1Ym1pdCIsKGZ1bmN0aW9uKGUpe2UuX3N1Ym1pdF9idWJibGU9ITB9KSksbi5fc3VibWl0X2F0dGFjaGVkPSEwKX0pKX0scG9zdERpc3BhdGNoOmZ1bmN0aW9uKGUpe2UuX3N1Ym1pdF9idWJibGUmJihkZWxldGUgZS5fc3VibWl0X2J1YmJsZSx0aGlzLnBhcmVudE5vZGUmJiFlLmlzVHJpZ2dlciYmaS5ldmVudC5zaW11bGF0ZSgic3VibWl0Iix0aGlzLnBhcmVudE5vZGUsZSwhMCkpfSx0ZWFyZG93bjpmdW5jdGlvbigpe2lmKGkubm9kZU5hbWUodGhpcywiZm9ybSIpKXJldHVybiExO2kuZXZlbnQucmVtb3ZlKHRoaXMsIi5fc3VibWl0Iil9fSksaS5zdXBwb3J0LmNoYW5nZUJ1YmJsZXN8fChpLmV2ZW50LnNwZWNpYWwuY2hhbmdlPXtzZXR1cDpmdW5jdGlvbigpe2lmKE4udGVzdCh0aGlzLm5vZGVOYW1lKSlyZXR1cm4iY2hlY2tib3giIT09dGhpcy50eXBlJiYicmFkaW8iIT09dGhpcy50eXBlfHwoaS5ldmVudC5hZGQodGhpcywicHJvcGVydHljaGFuZ2UuX2NoYW5nZSIsKGZ1bmN0aW9uKGUpeyJjaGVja2VkIj09PWUub3JpZ2luYWxFdmVudC5wcm9wZXJ0eU5hbWUmJih0aGlzLl9qdXN0X2NoYW5nZWQ9ITApfSkpLGkuZXZlbnQuYWRkKHRoaXMsImNsaWNrLl9jaGFuZ2UiLChmdW5jdGlvbihlKXt0aGlzLl9qdXN0X2NoYW5nZWQmJiFlLmlzVHJpZ2dlciYmKHRoaXMuX2p1c3RfY2hhbmdlZD0hMSxpLmV2ZW50LnNpbXVsYXRlKCJjaGFuZ2UiLHRoaXMsZSwhMCkpfSkpKSwhMTtpLmV2ZW50LmFkZCh0aGlzLCJiZWZvcmVhY3RpdmF0ZS5fY2hhbmdlIiwoZnVuY3Rpb24oZSl7dmFyIHQ9ZS50YXJnZXQ7Ti50ZXN0KHQubm9kZU5hbWUpJiYhdC5fY2hhbmdlX2F0dGFjaGVkJiYoaS5ldmVudC5hZGQodCwiY2hhbmdlLl9jaGFuZ2UiLChmdW5jdGlvbihlKXshdGhpcy5wYXJlbnROb2RlfHxlLmlzU2ltdWxhdGVkfHxlLmlzVHJpZ2dlcnx8aS5ldmVudC5zaW11bGF0ZSgiY2hhbmdlIix0aGlzLnBhcmVudE5vZGUsZSwhMCl9KSksdC5fY2hhbmdlX2F0dGFjaGVkPSEwKX0pKX0saGFuZGxlOmZ1bmN0aW9uKGUpe3ZhciB0PWUudGFyZ2V0O2lmKHRoaXMhPT10fHxlLmlzU2ltdWxhdGVkfHxlLmlzVHJpZ2dlcnx8InJhZGlvIiE9PXQudHlwZSYmImNoZWNrYm94IiE9PXQudHlwZSlyZXR1cm4gZS5oYW5kbGVPYmouaGFuZGxlci5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LHRlYXJkb3duOmZ1bmN0aW9uKCl7cmV0dXJuIGkuZXZlbnQucmVtb3ZlKHRoaXMsIi5fY2hhbmdlIiksTi50ZXN0KHRoaXMubm9kZU5hbWUpfX0pLGkuc3VwcG9ydC5mb2N1c2luQnViYmxlc3x8aS5lYWNoKHtmb2N1czoiZm9jdXNpbiIsYmx1cjoiZm9jdXNvdXQifSwoZnVuY3Rpb24oZSxuKXt2YXIgcj0wLG89ZnVuY3Rpb24oZSl7aS5ldmVudC5zaW11bGF0ZShuLGUudGFyZ2V0LGkuZXZlbnQuZml4KGUpLCEwKX07aS5ldmVudC5zcGVjaWFsW25dPXtzZXR1cDpmdW5jdGlvbigpezA9PXIrKyYmdC5hZGRFdmVudExpc3RlbmVyKGUsbywhMCl9LHRlYXJkb3duOmZ1bmN0aW9uKCl7CjA9PS0tciYmdC5yZW1vdmVFdmVudExpc3RlbmVyKGUsbywhMCl9fX0pKSxpLmZuLmV4dGVuZCh7b246ZnVuY3Rpb24oZSx0LG4scixvKXt2YXIgYSxzO2lmKCJvYmplY3QiPT10eXBlb2YgZSl7Zm9yKHMgaW4ic3RyaW5nIiE9dHlwZW9mIHQmJihuPW58fHQsdD12b2lkIDApLGUpdGhpcy5vbihzLHQsbixlW3NdLG8pO3JldHVybiB0aGlzfWlmKG51bGw9PW4mJm51bGw9PXI/KHI9dCxuPXQ9dm9pZCAwKTpudWxsPT1yJiYoInN0cmluZyI9PXR5cGVvZiB0PyhyPW4sbj12b2lkIDApOihyPW4sbj10LHQ9dm9pZCAwKSksITE9PT1yKXI9ajtlbHNlIGlmKCFyKXJldHVybiB0aGlzO3JldHVybiAxPT09byYmKGE9cixyPWZ1bmN0aW9uKGUpe3JldHVybiBpKCkub2ZmKGUpLGEuYXBwbHkodGhpcyxhcmd1bWVudHMpfSxyLmd1aWQ9YS5ndWlkfHwoYS5ndWlkPWkuZ3VpZCsrKSksdGhpcy5lYWNoKChmdW5jdGlvbigpe2kuZXZlbnQuYWRkKHRoaXMsZSxyLG4sdCl9KSl9LG9uZTpmdW5jdGlvbihlLHQsbixyKXtyZXR1cm4gdGhpcy5vbihlLHQsbixyLDEpfSxvZmY6ZnVuY3Rpb24oZSx0LG4pe2lmKGUmJmUucHJldmVudERlZmF1bHQmJmUuaGFuZGxlT2JqKXt2YXIgcj1lLmhhbmRsZU9iajtyZXR1cm4gaShlLmRlbGVnYXRlVGFyZ2V0KS5vZmYoci5uYW1lc3BhY2U/ci5vcmlnVHlwZSsiLiIrci5uYW1lc3BhY2U6ci5vcmlnVHlwZSxyLnNlbGVjdG9yLHIuaGFuZGxlciksdGhpc31pZigib2JqZWN0Ij09dHlwZW9mIGUpe2Zvcih2YXIgbyBpbiBlKXRoaXMub2ZmKG8sdCxlW29dKTtyZXR1cm4gdGhpc31yZXR1cm4hMSE9PXQmJiJmdW5jdGlvbiIhPXR5cGVvZiB0fHwobj10LHQ9dm9pZCAwKSwhMT09PW4mJihuPWopLHRoaXMuZWFjaCgoZnVuY3Rpb24oKXtpLmV2ZW50LnJlbW92ZSh0aGlzLGUsbix0KX0pKX0sYmluZDpmdW5jdGlvbihlLHQsbil7cmV0dXJuIHRoaXMub24oZSxudWxsLHQsbil9LHVuYmluZDpmdW5jdGlvbihlLHQpe3JldHVybiB0aGlzLm9mZihlLG51bGwsdCl9LGxpdmU6ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBpKHRoaXMuY29udGV4dCkub24oZSx0aGlzLnNlbGVjdG9yLHQsbiksdGhpc30sZGllOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIGkodGhpcy5jb250ZXh0KS5vZmYoZSx0aGlzLnNlbGVjdG9yfHwiKioiLHQpLHRoaXN9LGRlbGVnYXRlOmZ1bmN0aW9uKGUsdCxuLHIpe3JldHVybiB0aGlzLm9uKHQsZSxuLHIpfSx1bmRlbGVnYXRlOmZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gMT09YXJndW1lbnRzLmxlbmd0aD90aGlzLm9mZihlLCIqKiIpOnRoaXMub2ZmKHQsZSxuKX0sdHJpZ2dlcjpmdW5jdGlvbihlLHQpe3JldHVybiB0aGlzLmVhY2goKGZ1bmN0aW9uKCl7aS5ldmVudC50cmlnZ2VyKGUsdCx0aGlzKX0pKX0sdHJpZ2dlckhhbmRsZXI6ZnVuY3Rpb24oZSx0KXtpZih0aGlzWzBdKXJldHVybiBpLmV2ZW50LnRyaWdnZXIoZSx0LHRoaXNbMF0sITApfSx0b2dnbGU6ZnVuY3Rpb24oZSl7dmFyIHQ9YXJndW1lbnRzLG49ZS5ndWlkfHxpLmd1aWQrKyxyPTAsbz1mdW5jdGlvbihuKXt2YXIgbz0oaS5fZGF0YSh0aGlzLCJsYXN0VG9nZ2xlIitlLmd1aWQpfHwwKSVyO3JldHVybiBpLl9kYXRhKHRoaXMsImxhc3RUb2dnbGUiK2UuZ3VpZCxvKzEpLG4ucHJldmVudERlZmF1bHQoKSx0W29dLmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8ITF9O2ZvcihvLmd1aWQ9bjtyPHQubGVuZ3RoOyl0W3IrK10uZ3VpZD1uO3JldHVybiB0aGlzLmNsaWNrKG8pfSxob3ZlcjpmdW5jdGlvbihlLHQpe3JldHVybiB0aGlzLm1vdXNlZW50ZXIoZSkubW91c2VsZWF2ZSh0fHxlKX19KSxpLmVhY2goImJsdXIgZm9jdXMgZm9jdXNpbiBmb2N1c291dCBsb2FkIHJlc2l6ZSBzY3JvbGwgdW5sb2FkIGNsaWNrIGRibGNsaWNrIG1vdXNlZG93biBtb3VzZXVwIG1vdXNlbW92ZSBtb3VzZW92ZXIgbW91c2VvdXQgbW91c2VlbnRlciBtb3VzZWxlYXZlIGNoYW5nZSBzZWxlY3Qgc3VibWl0IGtleWRvd24ga2V5cHJlc3Mga2V5dXAgZXJyb3IgY29udGV4dG1lbnUiLnNwbGl0KCIgIiksKGZ1bmN0aW9uKGUsdCl7aS5mblt0XT1mdW5jdGlvbihlLG4pe3JldHVybiBudWxsPT1uJiYobj1lLGU9bnVsbCksYXJndW1lbnRzLmxlbmd0aD4wP3RoaXMub24odCxudWxsLGUsbik6dGhpcy50cmlnZ2VyKHQpfSxpLmF0dHJGbiYmKGkuYXR0ckZuW3RdPSEwKSxrLnRlc3QodCkmJihpLmV2ZW50LmZpeEhvb2tzW3RdPWkuZXZlbnQua2V5SG9va3MpLEUudGVzdCh0KSYmKGkuZXZlbnQuZml4SG9va3NbdF09aS5ldmVudC5tb3VzZUhvb2tzKX0pKSxmdW5jdGlvbigpe3ZhciBlPS8oKD86XCgoPzpcKFteKCldK1wpfFteKCldKykrXCl8XFsoPzpcW1teXFtcXV0qXF18WyciXVteJyJdKlsnIl18W15cW1xdJyJdKykrXF18XFwufFteID4rfiwoXFtcXF0rKSt8Wz4rfl0pKFxzKixccyopPygoPzoufFxyfFxuKSopL2csbj0ic2l6Y2FjaGUiKyhNYXRoLnJhbmRvbSgpKyIiKS5yZXBsYWNlKCIuIiwiIikscj0wLG89T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZyxhPSExLHM9ITAsbD0vXFwvZyx1PS9cclxuL2csYz0vXFcvO1swLDBdLnNvcnQoKGZ1bmN0aW9uKCl7cmV0dXJuIHM9ITEsMH0pKTt2YXIgZj1mdW5jdGlvbihuLHIsaSxhKXtpPWl8fFtdO3ZhciBzPXI9cnx8dDtpZigxIT09ci5ub2RlVHlwZSYmOSE9PXIubm9kZVR5cGUpcmV0dXJuW107aWYoIW58fCJzdHJpbmciIT10eXBlb2YgbilyZXR1cm4gaTt2YXIgbCx1LGMsZCxtLGcsdix5LGI9ITAsdz1mLmlzWE1MKHIpLFQ9W10sQz1uO2Rve2lmKGUuZXhlYygiIiksKGw9ZS5leGVjKEMpKSYmKEM9bFszXSxULnB1c2gobFsxXSksbFsyXSkpe2Q9bFszXTticmVha319d2hpbGUobCk7aWYoVC5sZW5ndGg+MSYmaC5leGVjKG4pKWlmKDI9PT1ULmxlbmd0aCYmcC5yZWxhdGl2ZVtUWzBdXSl1PU4oVFswXStUWzFdLHIsYSk7ZWxzZSBmb3IodT1wLnJlbGF0aXZlW1RbMF1dP1tyXTpmKFQuc2hpZnQoKSxyKTtULmxlbmd0aDspbj1ULnNoaWZ0KCkscC5yZWxhdGl2ZVtuXSYmKG4rPVQuc2hpZnQoKSksCnU9TihuLHUsYSk7ZWxzZSBpZighYSYmVC5sZW5ndGg+MSYmOT09PXIubm9kZVR5cGUmJiF3JiZwLm1hdGNoLklELnRlc3QoVFswXSkmJiFwLm1hdGNoLklELnRlc3QoVFtULmxlbmd0aC0xXSkmJihyPShtPWYuZmluZChULnNoaWZ0KCkscix3KSkuZXhwcj9mLmZpbHRlcihtLmV4cHIsbS5zZXQpWzBdOm0uc2V0WzBdKSxyKWZvcih1PShtPWE/e2V4cHI6VC5wb3AoKSxzZXQ6eChhKX06Zi5maW5kKFQucG9wKCksMSE9PVQubGVuZ3RofHwifiIhPT1UWzBdJiYiKyIhPT1UWzBdfHwhci5wYXJlbnROb2RlP3I6ci5wYXJlbnROb2RlLHcpKS5leHByP2YuZmlsdGVyKG0uZXhwcixtLnNldCk6bS5zZXQsVC5sZW5ndGg+MD9jPXgodSk6Yj0hMTtULmxlbmd0aDspdj1nPVQucG9wKCkscC5yZWxhdGl2ZVtnXT92PVQucG9wKCk6Zz0iIixudWxsPT12JiYodj1yKSxwLnJlbGF0aXZlW2ddKGMsdix3KTtlbHNlIGM9VD1bXTtpZihjfHwoYz11KSxjfHxmLmVycm9yKGd8fG4pLCJbb2JqZWN0IEFycmF5XSI9PT1vLmNhbGwoYykpaWYoYilpZihyJiYxPT09ci5ub2RlVHlwZSlmb3IoeT0wO251bGwhPWNbeV07eSsrKWNbeV0mJighMD09PWNbeV18fDE9PT1jW3ldLm5vZGVUeXBlJiZmLmNvbnRhaW5zKHIsY1t5XSkpJiZpLnB1c2godVt5XSk7ZWxzZSBmb3IoeT0wO251bGwhPWNbeV07eSsrKWNbeV0mJjE9PT1jW3ldLm5vZGVUeXBlJiZpLnB1c2godVt5XSk7ZWxzZSBpLnB1c2guYXBwbHkoaSxjKTtlbHNlIHgoYyxpKTtyZXR1cm4gZCYmKGYoZCxzLGksYSksZi51bmlxdWVTb3J0KGkpKSxpfTtmLnVuaXF1ZVNvcnQ9ZnVuY3Rpb24oZSl7aWYodiYmKGE9cyxlLnNvcnQodiksYSkpZm9yKHZhciB0PTE7dDxlLmxlbmd0aDt0KyspZVt0XT09PWVbdC0xXSYmZS5zcGxpY2UodC0tLDEpO3JldHVybiBlfSxmLm1hdGNoZXM9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZihlLG51bGwsbnVsbCx0KX0sZi5tYXRjaGVzU2VsZWN0b3I9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZih0LG51bGwsbnVsbCxbZV0pLmxlbmd0aD4wfSxmLmZpbmQ9ZnVuY3Rpb24oZSx0LG4pe3ZhciByLGksbyxhLHMsdTtpZighZSlyZXR1cm5bXTtmb3IoaT0wLG89cC5vcmRlci5sZW5ndGg7aTxvO2krKylpZihzPXAub3JkZXJbaV0sKGE9cC5sZWZ0TWF0Y2hbc10uZXhlYyhlKSkmJih1PWFbMV0sYS5zcGxpY2UoMSwxKSwiXFwiIT09dS5zdWJzdHIodS5sZW5ndGgtMSkmJihhWzFdPShhWzFdfHwiIikucmVwbGFjZShsLCIiKSxudWxsIT0ocj1wLmZpbmRbc10oYSx0LG4pKSkpKXtlPWUucmVwbGFjZShwLm1hdGNoW3NdLCIiKTticmVha31yZXR1cm4gcnx8KHI9dm9pZCAwIT09dC5nZXRFbGVtZW50c0J5VGFnTmFtZT90LmdldEVsZW1lbnRzQnlUYWdOYW1lKCIqIik6W10pLHtzZXQ6cixleHByOmV9fSxmLmZpbHRlcj1mdW5jdGlvbihlLHQsbixyKXtmb3IodmFyIGksbyxhLHMsbCx1LGMsZCxoLG09ZSxnPVtdLHY9dCx5PXQmJnRbMF0mJmYuaXNYTUwodFswXSk7ZSYmdC5sZW5ndGg7KXtmb3IoYSBpbiBwLmZpbHRlcilpZihudWxsIT0oaT1wLmxlZnRNYXRjaFthXS5leGVjKGUpKSYmaVsyXSl7aWYodT1wLmZpbHRlclthXSxjPWlbMV0sbz0hMSxpLnNwbGljZSgxLDEpLCJcXCI9PT1jLnN1YnN0cihjLmxlbmd0aC0xKSljb250aW51ZTtpZih2PT09ZyYmKGc9W10pLHAucHJlRmlsdGVyW2FdKWlmKGk9cC5wcmVGaWx0ZXJbYV0oaSx2LG4sZyxyLHkpKXtpZighMD09PWkpY29udGludWV9ZWxzZSBvPXM9ITA7aWYoaSlmb3IoZD0wO251bGwhPShsPXZbZF0pO2QrKylsJiYoaD1yXihzPXUobCxpLGQsdikpLG4mJm51bGwhPXM/aD9vPSEwOnZbZF09ITE6aCYmKGcucHVzaChsKSxvPSEwKSk7aWYodm9pZCAwIT09cyl7aWYobnx8KHY9ZyksZT1lLnJlcGxhY2UocC5tYXRjaFthXSwiIiksIW8pcmV0dXJuW107YnJlYWt9fWlmKGU9PT1tKXtpZihudWxsIT1vKWJyZWFrO2YuZXJyb3IoZSl9bT1lfXJldHVybiB2fSxmLmVycm9yPWZ1bmN0aW9uKGUpe3Rocm93IG5ldyBFcnJvcigiU3ludGF4IGVycm9yLCB1bnJlY29nbml6ZWQgZXhwcmVzc2lvbjogIitlKX07dmFyIGQ9Zi5nZXRUZXh0PWZ1bmN0aW9uKGUpe3ZhciB0LG4scj1lLm5vZGVUeXBlLGk9IiI7aWYocil7aWYoMT09PXJ8fDk9PT1yfHwxMT09PXIpe2lmKCJzdHJpbmciPT10eXBlb2YgZS50ZXh0Q29udGVudClyZXR1cm4gZS50ZXh0Q29udGVudDtpZigic3RyaW5nIj09dHlwZW9mIGUuaW5uZXJUZXh0KXJldHVybiBlLmlubmVyVGV4dC5yZXBsYWNlKHUsIiIpO2ZvcihlPWUuZmlyc3RDaGlsZDtlO2U9ZS5uZXh0U2libGluZylpKz1kKGUpfWVsc2UgaWYoMz09PXJ8fDQ9PT1yKXJldHVybiBlLm5vZGVWYWx1ZX1lbHNlIGZvcih0PTA7bj1lW3RdO3QrKyk4IT09bi5ub2RlVHlwZSYmKGkrPWQobikpO3JldHVybiBpfSxwPWYuc2VsZWN0b3JzPXtvcmRlcjpbIklEIiwiTkFNRSIsIlRBRyJdLG1hdGNoOntJRDovIygoPzpbXHdcdTAwYzAtXHVGRkZGXC1dfFxcLikrKS8sQ0xBU1M6L1wuKCg/Oltcd1x1MDBjMC1cdUZGRkZcLV18XFwuKSspLyxOQU1FOi9cW25hbWU9WyciXSooKD86W1x3XHUwMGMwLVx1RkZGRlwtXXxcXC4pKylbJyJdKlxdLyxBVFRSOi9cW1xzKigoPzpbXHdcdTAwYzAtXHVGRkZGXC1dfFxcLikrKVxzKig/OihcUz89KVxzKig/OihbJyJdKSguKj8pXDN8KCM/KD86W1x3XHUwMGMwLVx1RkZGRlwtXXxcXC4pKil8KXwpXHMqXF0vLFRBRzovXigoPzpbXHdcdTAwYzAtXHVGRkZGXCpcLV18XFwuKSspLyxDSElMRDovOihvbmx5fG50aHxsYXN0fGZpcnN0KS1jaGlsZCg/OlwoXHMqKGV2ZW58b2RkfCg/OlsrXC1dP1xkK3woPzpbK1wtXT9cZCopP25ccyooPzpbK1wtXVxzKlxkKyk/KSlccypcKSk/LyxQT1M6LzoobnRofGVxfGd0fGx0fGZpcnN0fGxhc3R8ZXZlbnxvZGQpKD86XCgoXGQqKVwpKT8oPz1bXlwtXXwkKS8sUFNFVURPOi86KCg/Oltcd1x1MDBjMC1cdUZGRkZcLV18XFwuKSspKD86XCgoWyciXT8pKCg/OlwoW15cKV0rXCl8W15cKFwpXSopKylcMlwpKT8vfSxsZWZ0TWF0Y2g6e30sYXR0ck1hcDp7Y2xhc3M6ImNsYXNzTmFtZSIsZm9yOiJodG1sRm9yIn0sYXR0ckhhbmRsZTp7CmhyZWY6ZnVuY3Rpb24oZSl7cmV0dXJuIGUuZ2V0QXR0cmlidXRlKCJocmVmIil9LHR5cGU6ZnVuY3Rpb24oZSl7cmV0dXJuIGUuZ2V0QXR0cmlidXRlKCJ0eXBlIil9fSxyZWxhdGl2ZTp7IisiOmZ1bmN0aW9uKGUsdCl7dmFyIG49InN0cmluZyI9PXR5cGVvZiB0LHI9biYmIWMudGVzdCh0KSxpPW4mJiFyO3ImJih0PXQudG9Mb3dlckNhc2UoKSk7Zm9yKHZhciBvLGE9MCxzPWUubGVuZ3RoO2E8czthKyspaWYobz1lW2FdKXtmb3IoOyhvPW8ucHJldmlvdXNTaWJsaW5nKSYmMSE9PW8ubm9kZVR5cGU7KTtlW2FdPWl8fG8mJm8ubm9kZU5hbWUudG9Mb3dlckNhc2UoKT09PXQ/b3x8ITE6bz09PXR9aSYmZi5maWx0ZXIodCxlLCEwKX0sIj4iOmZ1bmN0aW9uKGUsdCl7dmFyIG4scj0ic3RyaW5nIj09dHlwZW9mIHQsaT0wLG89ZS5sZW5ndGg7aWYociYmIWMudGVzdCh0KSl7Zm9yKHQ9dC50b0xvd2VyQ2FzZSgpO2k8bztpKyspaWYobj1lW2ldKXt2YXIgYT1uLnBhcmVudE5vZGU7ZVtpXT1hLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk9PT10JiZhfX1lbHNle2Zvcig7aTxvO2krKykobj1lW2ldKSYmKGVbaV09cj9uLnBhcmVudE5vZGU6bi5wYXJlbnROb2RlPT09dCk7ciYmZi5maWx0ZXIodCxlLCEwKX19LCIiOmZ1bmN0aW9uKGUsdCxuKXt2YXIgaSxvPXIrKyxhPVQ7InN0cmluZyIhPXR5cGVvZiB0fHxjLnRlc3QodCl8fChpPXQ9dC50b0xvd2VyQ2FzZSgpLGE9dyksYSgicGFyZW50Tm9kZSIsdCxvLGUsaSxuKX0sIn4iOmZ1bmN0aW9uKGUsdCxuKXt2YXIgaSxvPXIrKyxhPVQ7InN0cmluZyIhPXR5cGVvZiB0fHxjLnRlc3QodCl8fChpPXQ9dC50b0xvd2VyQ2FzZSgpLGE9dyksYSgicHJldmlvdXNTaWJsaW5nIix0LG8sZSxpLG4pfX0sZmluZDp7SUQ6ZnVuY3Rpb24oZSx0LG4pe2lmKHZvaWQgMCE9PXQuZ2V0RWxlbWVudEJ5SWQmJiFuKXt2YXIgcj10LmdldEVsZW1lbnRCeUlkKGVbMV0pO3JldHVybiByJiZyLnBhcmVudE5vZGU/W3JdOltdfX0sTkFNRTpmdW5jdGlvbihlLHQpe2lmKHZvaWQgMCE9PXQuZ2V0RWxlbWVudHNCeU5hbWUpe2Zvcih2YXIgbj1bXSxyPXQuZ2V0RWxlbWVudHNCeU5hbWUoZVsxXSksaT0wLG89ci5sZW5ndGg7aTxvO2krKylyW2ldLmdldEF0dHJpYnV0ZSgibmFtZSIpPT09ZVsxXSYmbi5wdXNoKHJbaV0pO3JldHVybiAwPT09bi5sZW5ndGg/bnVsbDpufX0sVEFHOmZ1bmN0aW9uKGUsdCl7aWYodm9pZCAwIT09dC5nZXRFbGVtZW50c0J5VGFnTmFtZSlyZXR1cm4gdC5nZXRFbGVtZW50c0J5VGFnTmFtZShlWzFdKX19LHByZUZpbHRlcjp7Q0xBU1M6ZnVuY3Rpb24oZSx0LG4scixpLG8pe2lmKGU9IiAiK2VbMV0ucmVwbGFjZShsLCIiKSsiICIsbylyZXR1cm4gZTtmb3IodmFyIGEscz0wO251bGwhPShhPXRbc10pO3MrKylhJiYoaV4oYS5jbGFzc05hbWUmJigiICIrYS5jbGFzc05hbWUrIiAiKS5yZXBsYWNlKC9bXHRcblxyXS9nLCIgIikuaW5kZXhPZihlKT49MCk/bnx8ci5wdXNoKGEpOm4mJih0W3NdPSExKSk7cmV0dXJuITF9LElEOmZ1bmN0aW9uKGUpe3JldHVybiBlWzFdLnJlcGxhY2UobCwiIil9LFRBRzpmdW5jdGlvbihlLHQpe3JldHVybiBlWzFdLnJlcGxhY2UobCwiIikudG9Mb3dlckNhc2UoKX0sQ0hJTEQ6ZnVuY3Rpb24oZSl7aWYoIm50aCI9PT1lWzFdKXtlWzJdfHxmLmVycm9yKGVbMF0pLGVbMl09ZVsyXS5yZXBsYWNlKC9eXCt8XHMqL2csIiIpO3ZhciB0PS8oLT8pKFxkKikoPzpuKFsrXC1dP1xkKikpPy8uZXhlYygoImV2ZW4iPT09ZVsyXT8iMm4iOiJvZGQiPT09ZVsyXSYmIjJuKzEiKXx8IS9cRC8udGVzdChlWzJdKSYmIjBuKyIrZVsyXXx8ZVsyXSk7ZVsyXT10WzFdKyh0WzJdfHwxKS0wLGVbM109dFszXS0wfWVsc2UgZVsyXSYmZi5lcnJvcihlWzBdKTtyZXR1cm4gZVswXT1yKyssZX0sQVRUUjpmdW5jdGlvbihlLHQsbixyLGksbyl7dmFyIGE9ZVsxXT1lWzFdLnJlcGxhY2UobCwiIik7cmV0dXJuIW8mJnAuYXR0ck1hcFthXSYmKGVbMV09cC5hdHRyTWFwW2FdKSxlWzRdPShlWzRdfHxlWzVdfHwiIikucmVwbGFjZShsLCIiKSwifj0iPT09ZVsyXSYmKGVbNF09IiAiK2VbNF0rIiAiKSxlfSxQU0VVRE86ZnVuY3Rpb24odCxuLHIsaSxvKXtpZigibm90Ij09PXRbMV0pe2lmKCEoKGUuZXhlYyh0WzNdKXx8IiIpLmxlbmd0aD4xfHwvXlx3Ly50ZXN0KHRbM10pKSl7dmFyIGE9Zi5maWx0ZXIodFszXSxuLHIsITBebyk7cmV0dXJuIHJ8fGkucHVzaC5hcHBseShpLGEpLCExfXRbM109Zih0WzNdLG51bGwsbnVsbCxuKX1lbHNlIGlmKHAubWF0Y2guUE9TLnRlc3QodFswXSl8fHAubWF0Y2guQ0hJTEQudGVzdCh0WzBdKSlyZXR1cm4hMDtyZXR1cm4gdH0sUE9TOmZ1bmN0aW9uKGUpe3JldHVybiBlLnVuc2hpZnQoITApLGV9fSxmaWx0ZXJzOntlbmFibGVkOmZ1bmN0aW9uKGUpe3JldHVybiExPT09ZS5kaXNhYmxlZCYmImhpZGRlbiIhPT1lLnR5cGV9LGRpc2FibGVkOmZ1bmN0aW9uKGUpe3JldHVybiEwPT09ZS5kaXNhYmxlZH0sY2hlY2tlZDpmdW5jdGlvbihlKXtyZXR1cm4hMD09PWUuY2hlY2tlZH0sc2VsZWN0ZWQ6ZnVuY3Rpb24oZSl7cmV0dXJuIGUucGFyZW50Tm9kZSYmZS5wYXJlbnROb2RlLnNlbGVjdGVkSW5kZXgsITA9PT1lLnNlbGVjdGVkfSxwYXJlbnQ6ZnVuY3Rpb24oZSl7cmV0dXJuISFlLmZpcnN0Q2hpbGR9LGVtcHR5OmZ1bmN0aW9uKGUpe3JldHVybiFlLmZpcnN0Q2hpbGR9LGhhczpmdW5jdGlvbihlLHQsbil7cmV0dXJuISFmKG5bM10sZSkubGVuZ3RofSxoZWFkZXI6ZnVuY3Rpb24oZSl7cmV0dXJuL2hcZC9pLnRlc3QoZS5ub2RlTmFtZSl9LHRleHQ6ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5nZXRBdHRyaWJ1dGUoInR5cGUiKSxuPWUudHlwZTtyZXR1cm4iaW5wdXQiPT09ZS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpJiYidGV4dCI9PT1uJiYodD09PW58fG51bGw9PT10KX0scmFkaW86ZnVuY3Rpb24oZSl7cmV0dXJuImlucHV0Ij09PWUubm9kZU5hbWUudG9Mb3dlckNhc2UoKSYmInJhZGlvIj09PWUudHlwZX0sY2hlY2tib3g6ZnVuY3Rpb24oZSl7cmV0dXJuImlucHV0Ij09PWUubm9kZU5hbWUudG9Mb3dlckNhc2UoKSYmImNoZWNrYm94Ij09PWUudHlwZQp9LGZpbGU6ZnVuY3Rpb24oZSl7cmV0dXJuImlucHV0Ij09PWUubm9kZU5hbWUudG9Mb3dlckNhc2UoKSYmImZpbGUiPT09ZS50eXBlfSxwYXNzd29yZDpmdW5jdGlvbihlKXtyZXR1cm4iaW5wdXQiPT09ZS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpJiYicGFzc3dvcmQiPT09ZS50eXBlfSxzdWJtaXQ6ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpO3JldHVybigiaW5wdXQiPT09dHx8ImJ1dHRvbiI9PT10KSYmInN1Ym1pdCI9PT1lLnR5cGV9LGltYWdlOmZ1bmN0aW9uKGUpe3JldHVybiJpbnB1dCI9PT1lLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkmJiJpbWFnZSI9PT1lLnR5cGV9LHJlc2V0OmZ1bmN0aW9uKGUpe3ZhciB0PWUubm9kZU5hbWUudG9Mb3dlckNhc2UoKTtyZXR1cm4oImlucHV0Ij09PXR8fCJidXR0b24iPT09dCkmJiJyZXNldCI9PT1lLnR5cGV9LGJ1dHRvbjpmdW5jdGlvbihlKXt2YXIgdD1lLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7cmV0dXJuImlucHV0Ij09PXQmJiJidXR0b24iPT09ZS50eXBlfHwiYnV0dG9uIj09PXR9LGlucHV0OmZ1bmN0aW9uKGUpe3JldHVybi9pbnB1dHxzZWxlY3R8dGV4dGFyZWF8YnV0dG9uL2kudGVzdChlLm5vZGVOYW1lKX0sZm9jdXM6ZnVuY3Rpb24oZSl7cmV0dXJuIGU9PT1lLm93bmVyRG9jdW1lbnQuYWN0aXZlRWxlbWVudH19LHNldEZpbHRlcnM6e2ZpcnN0OmZ1bmN0aW9uKGUsdCl7cmV0dXJuIDA9PT10fSxsYXN0OmZ1bmN0aW9uKGUsdCxuLHIpe3JldHVybiB0PT09ci5sZW5ndGgtMX0sZXZlbjpmdW5jdGlvbihlLHQpe3JldHVybiB0JTI9PTB9LG9kZDpmdW5jdGlvbihlLHQpe3JldHVybiB0JTI9PTF9LGx0OmZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gdDxuWzNdLTB9LGd0OmZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gdD5uWzNdLTB9LG50aDpmdW5jdGlvbihlLHQsbil7cmV0dXJuIG5bM10tMD09PXR9LGVxOmZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gblszXS0wPT09dH19LGZpbHRlcjp7UFNFVURPOmZ1bmN0aW9uKGUsdCxuLHIpe3ZhciBpPXRbMV0sbz1wLmZpbHRlcnNbaV07aWYobylyZXR1cm4gbyhlLG4sdCxyKTtpZigiY29udGFpbnMiPT09aSlyZXR1cm4oZS50ZXh0Q29udGVudHx8ZS5pbm5lclRleHR8fGQoW2VdKXx8IiIpLmluZGV4T2YodFszXSk+PTA7aWYoIm5vdCI9PT1pKXtmb3IodmFyIGE9dFszXSxzPTAsbD1hLmxlbmd0aDtzPGw7cysrKWlmKGFbc109PT1lKXJldHVybiExO3JldHVybiEwfWYuZXJyb3IoaSl9LENISUxEOmZ1bmN0aW9uKGUsdCl7dmFyIHIsaSxvLGEscyxsLHU9dFsxXSxjPWU7c3dpdGNoKHUpe2Nhc2Uib25seSI6Y2FzZSJmaXJzdCI6Zm9yKDtjPWMucHJldmlvdXNTaWJsaW5nOylpZigxPT09Yy5ub2RlVHlwZSlyZXR1cm4hMTtpZigiZmlyc3QiPT09dSlyZXR1cm4hMDtjPWU7Y2FzZSJsYXN0Ijpmb3IoO2M9Yy5uZXh0U2libGluZzspaWYoMT09PWMubm9kZVR5cGUpcmV0dXJuITE7cmV0dXJuITA7Y2FzZSJudGgiOmlmKHI9dFsyXSxpPXRbM10sMT09PXImJjA9PT1pKXJldHVybiEwO2lmKG89dFswXSwoYT1lLnBhcmVudE5vZGUpJiYoYVtuXSE9PW98fCFlLm5vZGVJbmRleCkpe2ZvcihzPTAsYz1hLmZpcnN0Q2hpbGQ7YztjPWMubmV4dFNpYmxpbmcpMT09PWMubm9kZVR5cGUmJihjLm5vZGVJbmRleD0rK3MpO2Fbbl09b31yZXR1cm4gbD1lLm5vZGVJbmRleC1pLDA9PT1yPzA9PT1sOmwlcj09MCYmbC9yPj0wfX0sSUQ6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gMT09PWUubm9kZVR5cGUmJmUuZ2V0QXR0cmlidXRlKCJpZCIpPT09dH0sVEFHOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIioiPT09dCYmMT09PWUubm9kZVR5cGV8fCEhZS5ub2RlTmFtZSYmZS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpPT09dH0sQ0xBU1M6ZnVuY3Rpb24oZSx0KXtyZXR1cm4oIiAiKyhlLmNsYXNzTmFtZXx8ZS5nZXRBdHRyaWJ1dGUoImNsYXNzIikpKyIgIikuaW5kZXhPZih0KT4tMX0sQVRUUjpmdW5jdGlvbihlLHQpe3ZhciBuPXRbMV0scj1mLmF0dHI/Zi5hdHRyKGUsbik6cC5hdHRySGFuZGxlW25dP3AuYXR0ckhhbmRsZVtuXShlKTpudWxsIT1lW25dP2Vbbl06ZS5nZXRBdHRyaWJ1dGUobiksaT1yKyIiLG89dFsyXSxhPXRbNF07cmV0dXJuIG51bGw9PXI/IiE9Ij09PW86IW8mJmYuYXR0cj9udWxsIT1yOiI9Ij09PW8/aT09PWE6Iio9Ij09PW8/aS5pbmRleE9mKGEpPj0wOiJ+PSI9PT1vPygiICIraSsiICIpLmluZGV4T2YoYSk+PTA6YT8iIT0iPT09bz9pIT09YToiXj0iPT09bz8wPT09aS5pbmRleE9mKGEpOiIkPSI9PT1vP2kuc3Vic3RyKGkubGVuZ3RoLWEubGVuZ3RoKT09PWE6Inw9Ij09PW8mJihpPT09YXx8aS5zdWJzdHIoMCxhLmxlbmd0aCsxKT09PWErIi0iKTppJiYhMSE9PXJ9LFBPUzpmdW5jdGlvbihlLHQsbixyKXt2YXIgaT10WzJdLG89cC5zZXRGaWx0ZXJzW2ldO2lmKG8pcmV0dXJuIG8oZSxuLHQscil9fX0saD1wLm1hdGNoLlBPUyxtPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIlxcIisodC0wKzEpfTtmb3IodmFyIGcgaW4gcC5tYXRjaClwLm1hdGNoW2ddPW5ldyBSZWdFeHAocC5tYXRjaFtnXS5zb3VyY2UrLyg/IVteXFtdKlxdKSg/IVteXChdKlwpKS8uc291cmNlKSxwLmxlZnRNYXRjaFtnXT1uZXcgUmVnRXhwKC8oXig/Oi58XHJ8XG4pKj8pLy5zb3VyY2UrcC5tYXRjaFtnXS5zb3VyY2UucmVwbGFjZSgvXFwoXGQrKS9nLG0pKTtwLm1hdGNoLmdsb2JhbFBPUz1oO3ZhciB2LHksYix4PWZ1bmN0aW9uKGUsdCl7cmV0dXJuIGU9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoZSwwKSx0Pyh0LnB1c2guYXBwbHkodCxlKSx0KTplfTt0cnl7QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwodC5kb2N1bWVudEVsZW1lbnQuY2hpbGROb2RlcywwKVswXS5ub2RlVHlwZX1jYXRjaChlKXt4PWZ1bmN0aW9uKGUsdCl7dmFyIG49MCxyPXR8fFtdCjtpZigiW29iamVjdCBBcnJheV0iPT09by5jYWxsKGUpKUFycmF5LnByb3RvdHlwZS5wdXNoLmFwcGx5KHIsZSk7ZWxzZSBpZigibnVtYmVyIj09dHlwZW9mIGUubGVuZ3RoKWZvcih2YXIgaT1lLmxlbmd0aDtuPGk7bisrKXIucHVzaChlW25dKTtlbHNlIGZvcig7ZVtuXTtuKyspci5wdXNoKGVbbl0pO3JldHVybiByfX1mdW5jdGlvbiB3KGUsdCxyLGksbyxhKXtmb3IodmFyIHM9MCxsPWkubGVuZ3RoO3M8bDtzKyspe3ZhciB1PWlbc107aWYodSl7dmFyIGM9ITE7Zm9yKHU9dVtlXTt1Oyl7aWYodVtuXT09PXIpe2M9aVt1LnNpenNldF07YnJlYWt9aWYoMSE9PXUubm9kZVR5cGV8fGF8fCh1W25dPXIsdS5zaXpzZXQ9cyksdS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpPT09dCl7Yz11O2JyZWFrfXU9dVtlXX1pW3NdPWN9fX1mdW5jdGlvbiBUKGUsdCxyLGksbyxhKXtmb3IodmFyIHM9MCxsPWkubGVuZ3RoO3M8bDtzKyspe3ZhciB1PWlbc107aWYodSl7dmFyIGM9ITE7Zm9yKHU9dVtlXTt1Oyl7aWYodVtuXT09PXIpe2M9aVt1LnNpenNldF07YnJlYWt9aWYoMT09PXUubm9kZVR5cGUpaWYoYXx8KHVbbl09cix1LnNpenNldD1zKSwic3RyaW5nIiE9dHlwZW9mIHQpe2lmKHU9PT10KXtjPSEwO2JyZWFrfX1lbHNlIGlmKGYuZmlsdGVyKHQsW3VdKS5sZW5ndGg+MCl7Yz11O2JyZWFrfXU9dVtlXX1pW3NdPWN9fX10LmRvY3VtZW50RWxlbWVudC5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbj92PWZ1bmN0aW9uKGUsdCl7cmV0dXJuIGU9PT10PyhhPSEwLDApOmUuY29tcGFyZURvY3VtZW50UG9zaXRpb24mJnQuY29tcGFyZURvY3VtZW50UG9zaXRpb24/NCZlLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKHQpPy0xOjE6ZS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbj8tMToxfToodj1mdW5jdGlvbihlLHQpe2lmKGU9PT10KXJldHVybiBhPSEwLDA7aWYoZS5zb3VyY2VJbmRleCYmdC5zb3VyY2VJbmRleClyZXR1cm4gZS5zb3VyY2VJbmRleC10LnNvdXJjZUluZGV4O3ZhciBuLHIsaT1bXSxvPVtdLHM9ZS5wYXJlbnROb2RlLGw9dC5wYXJlbnROb2RlLHU9cztpZihzPT09bClyZXR1cm4geShlLHQpO2lmKCFzKXJldHVybi0xO2lmKCFsKXJldHVybiAxO2Zvcig7dTspaS51bnNoaWZ0KHUpLHU9dS5wYXJlbnROb2RlO2Zvcih1PWw7dTspby51bnNoaWZ0KHUpLHU9dS5wYXJlbnROb2RlO249aS5sZW5ndGgscj1vLmxlbmd0aDtmb3IodmFyIGM9MDtjPG4mJmM8cjtjKyspaWYoaVtjXSE9PW9bY10pcmV0dXJuIHkoaVtjXSxvW2NdKTtyZXR1cm4gYz09PW4/eShlLG9bY10sLTEpOnkoaVtjXSx0LDEpfSx5PWZ1bmN0aW9uKGUsdCxuKXtpZihlPT09dClyZXR1cm4gbjtmb3IodmFyIHI9ZS5uZXh0U2libGluZztyOyl7aWYocj09PXQpcmV0dXJuLTE7cj1yLm5leHRTaWJsaW5nfXJldHVybiAxfSksZnVuY3Rpb24oKXt2YXIgZT10LmNyZWF0ZUVsZW1lbnQoImRpdiIpLG49InNjcmlwdCIrKG5ldyBEYXRlKS5nZXRUaW1lKCkscj10LmRvY3VtZW50RWxlbWVudDtlLmlubmVySFRNTD0iPGEgbmFtZT0nIituKyInLz4iLHIuaW5zZXJ0QmVmb3JlKGUsci5maXJzdENoaWxkKSx0LmdldEVsZW1lbnRCeUlkKG4pJiYocC5maW5kLklEPWZ1bmN0aW9uKGUsdCxuKXtpZih2b2lkIDAhPT10LmdldEVsZW1lbnRCeUlkJiYhbil7dmFyIHI9dC5nZXRFbGVtZW50QnlJZChlWzFdKTtyZXR1cm4gcj9yLmlkPT09ZVsxXXx8dm9pZCAwIT09ci5nZXRBdHRyaWJ1dGVOb2RlJiZyLmdldEF0dHJpYnV0ZU5vZGUoImlkIikubm9kZVZhbHVlPT09ZVsxXT9bcl06dm9pZCAwOltdfX0scC5maWx0ZXIuSUQ9ZnVuY3Rpb24oZSx0KXt2YXIgbj12b2lkIDAhPT1lLmdldEF0dHJpYnV0ZU5vZGUmJmUuZ2V0QXR0cmlidXRlTm9kZSgiaWQiKTtyZXR1cm4gMT09PWUubm9kZVR5cGUmJm4mJm4ubm9kZVZhbHVlPT09dH0pLHIucmVtb3ZlQ2hpbGQoZSkscj1lPW51bGx9KCksKGI9dC5jcmVhdGVFbGVtZW50KCJkaXYiKSkuYXBwZW5kQ2hpbGQodC5jcmVhdGVDb21tZW50KCIiKSksYi5nZXRFbGVtZW50c0J5VGFnTmFtZSgiKiIpLmxlbmd0aD4wJiYocC5maW5kLlRBRz1mdW5jdGlvbihlLHQpe3ZhciBuPXQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoZVsxXSk7aWYoIioiPT09ZVsxXSl7Zm9yKHZhciByPVtdLGk9MDtuW2ldO2krKykxPT09bltpXS5ub2RlVHlwZSYmci5wdXNoKG5baV0pO249cn1yZXR1cm4gbn0pLGIuaW5uZXJIVE1MPSI8YSBocmVmPScjJz48L2E+IixiLmZpcnN0Q2hpbGQmJnZvaWQgMCE9PWIuZmlyc3RDaGlsZC5nZXRBdHRyaWJ1dGUmJiIjIiE9PWIuZmlyc3RDaGlsZC5nZXRBdHRyaWJ1dGUoImhyZWYiKSYmKHAuYXR0ckhhbmRsZS5ocmVmPWZ1bmN0aW9uKGUpe3JldHVybiBlLmdldEF0dHJpYnV0ZSgiaHJlZiIsMil9KSxiPW51bGwsdC5xdWVyeVNlbGVjdG9yQWxsJiZmdW5jdGlvbigpe3ZhciBlPWYsbj10LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2lmKG4uaW5uZXJIVE1MPSI8cCBjbGFzcz0nVEVTVCc+PC9wPiIsIW4ucXVlcnlTZWxlY3RvckFsbHx8MCE9PW4ucXVlcnlTZWxlY3RvckFsbCgiLlRFU1QiKS5sZW5ndGgpe2Zvcih2YXIgciBpbiBmPWZ1bmN0aW9uKG4scixpLG8pe2lmKHI9cnx8dCwhbyYmIWYuaXNYTUwocikpe3ZhciBhPS9eKFx3KyQpfF5cLihbXHdcLV0rJCl8XiMoW1x3XC1dKyQpLy5leGVjKG4pO2lmKGEmJigxPT09ci5ub2RlVHlwZXx8OT09PXIubm9kZVR5cGUpKXtpZihhWzFdKXJldHVybiB4KHIuZ2V0RWxlbWVudHNCeVRhZ05hbWUobiksaSk7aWYoYVsyXSYmcC5maW5kLkNMQVNTJiZyLmdldEVsZW1lbnRzQnlDbGFzc05hbWUpcmV0dXJuIHgoci5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKGFbMl0pLGkpfWlmKDk9PT1yLm5vZGVUeXBlKXtpZigiYm9keSI9PT1uJiZyLmJvZHkpcmV0dXJuIHgoW3IuYm9keV0saSk7aWYoYSYmYVszXSl7dmFyIHM9ci5nZXRFbGVtZW50QnlJZChhWzNdKTtpZighc3x8IXMucGFyZW50Tm9kZSlyZXR1cm4geChbXSxpKTtpZihzLmlkPT09YVszXSlyZXR1cm4geChbc10saSl9dHJ5e3JldHVybiB4KHIucXVlcnlTZWxlY3RvckFsbChuKSxpKX1jYXRjaChlKXt9Cn1lbHNlIGlmKDE9PT1yLm5vZGVUeXBlJiYib2JqZWN0IiE9PXIubm9kZU5hbWUudG9Mb3dlckNhc2UoKSl7dmFyIGw9cix1PXIuZ2V0QXR0cmlidXRlKCJpZCIpLGM9dXx8Il9fc2l6emxlX18iLGQ9ci5wYXJlbnROb2RlLGg9L15ccypbK35dLy50ZXN0KG4pO3U/Yz1jLnJlcGxhY2UoLycvZywiXFwkJiIpOnIuc2V0QXR0cmlidXRlKCJpZCIsYyksaCYmZCYmKHI9ci5wYXJlbnROb2RlKTt0cnl7aWYoIWh8fGQpcmV0dXJuIHgoci5xdWVyeVNlbGVjdG9yQWxsKCJbaWQ9JyIrYysiJ10gIituKSxpKX1jYXRjaChlKXt9ZmluYWxseXt1fHxsLnJlbW92ZUF0dHJpYnV0ZSgiaWQiKX19fXJldHVybiBlKG4scixpLG8pfSxlKWZbcl09ZVtyXTtuPW51bGx9fSgpLGZ1bmN0aW9uKCl7dmFyIGU9dC5kb2N1bWVudEVsZW1lbnQsbj1lLm1hdGNoZXNTZWxlY3Rvcnx8ZS5tb3pNYXRjaGVzU2VsZWN0b3J8fGUud2Via2l0TWF0Y2hlc1NlbGVjdG9yfHxlLm1zTWF0Y2hlc1NlbGVjdG9yO2lmKG4pe3ZhciByPSFuLmNhbGwodC5jcmVhdGVFbGVtZW50KCJkaXYiKSwiZGl2IiksaT0hMTt0cnl7bi5jYWxsKHQuZG9jdW1lbnRFbGVtZW50LCJbdGVzdCE9JyddOnNpenpsZSIpfWNhdGNoKGUpe2k9ITB9Zi5tYXRjaGVzU2VsZWN0b3I9ZnVuY3Rpb24oZSx0KXtpZih0PXQucmVwbGFjZSgvXD1ccyooW14nIlxdXSopXHMqXF0vZywiPSckMSddIiksIWYuaXNYTUwoZSkpdHJ5e2lmKGl8fCFwLm1hdGNoLlBTRVVETy50ZXN0KHQpJiYhLyE9Ly50ZXN0KHQpKXt2YXIgbz1uLmNhbGwoZSx0KTtpZihvfHwhcnx8ZS5kb2N1bWVudCYmMTEhPT1lLmRvY3VtZW50Lm5vZGVUeXBlKXJldHVybiBvfX1jYXRjaChlKXt9cmV0dXJuIGYodCxudWxsLG51bGwsW2VdKS5sZW5ndGg+MH19fSgpLGZ1bmN0aW9uKCl7dmFyIGU9dC5jcmVhdGVFbGVtZW50KCJkaXYiKTtlLmlubmVySFRNTD0iPGRpdiBjbGFzcz0ndGVzdCBlJz48L2Rpdj48ZGl2IGNsYXNzPSd0ZXN0Jz48L2Rpdj4iLGUuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSYmMCE9PWUuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgiZSIpLmxlbmd0aCYmKGUubGFzdENoaWxkLmNsYXNzTmFtZT0iZSIsMSE9PWUuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgiZSIpLmxlbmd0aCYmKHAub3JkZXIuc3BsaWNlKDEsMCwiQ0xBU1MiKSxwLmZpbmQuQ0xBU1M9ZnVuY3Rpb24oZSx0LG4pe2lmKHZvaWQgMCE9PXQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSYmIW4pcmV0dXJuIHQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZShlWzFdKX0sZT1udWxsKSl9KCksdC5kb2N1bWVudEVsZW1lbnQuY29udGFpbnM/Zi5jb250YWlucz1mdW5jdGlvbihlLHQpe3JldHVybiBlIT09dCYmKCFlLmNvbnRhaW5zfHxlLmNvbnRhaW5zKHQpKX06dC5kb2N1bWVudEVsZW1lbnQuY29tcGFyZURvY3VtZW50UG9zaXRpb24/Zi5jb250YWlucz1mdW5jdGlvbihlLHQpe3JldHVybiEhKDE2JmUuY29tcGFyZURvY3VtZW50UG9zaXRpb24odCkpfTpmLmNvbnRhaW5zPWZ1bmN0aW9uKCl7cmV0dXJuITF9LGYuaXNYTUw9ZnVuY3Rpb24oZSl7dmFyIHQ9KGU/ZS5vd25lckRvY3VtZW50fHxlOjApLmRvY3VtZW50RWxlbWVudDtyZXR1cm4hIXQmJiJIVE1MIiE9PXQubm9kZU5hbWV9O3ZhciBOPWZ1bmN0aW9uKGUsdCxuKXtmb3IodmFyIHIsaT1bXSxvPSIiLGE9dC5ub2RlVHlwZT9bdF06dDtyPXAubWF0Y2guUFNFVURPLmV4ZWMoZSk7KW8rPXJbMF0sZT1lLnJlcGxhY2UocC5tYXRjaC5QU0VVRE8sIiIpO2U9cC5yZWxhdGl2ZVtlXT9lKyIqIjplO2Zvcih2YXIgcz0wLGw9YS5sZW5ndGg7czxsO3MrKylmKGUsYVtzXSxpLG4pO3JldHVybiBmLmZpbHRlcihvLGkpfTtmLmF0dHI9aS5hdHRyLGYuc2VsZWN0b3JzLmF0dHJNYXA9e30saS5maW5kPWYsaS5leHByPWYuc2VsZWN0b3JzLGkuZXhwclsiOiJdPWkuZXhwci5maWx0ZXJzLGkudW5pcXVlPWYudW5pcXVlU29ydCxpLnRleHQ9Zi5nZXRUZXh0LGkuaXNYTUxEb2M9Zi5pc1hNTCxpLmNvbnRhaW5zPWYuY29udGFpbnN9KCk7dmFyIE09L1VudGlsJC8sTz0vXig/OnBhcmVudHN8cHJldlVudGlsfHByZXZBbGwpLyxIPS8sLyxQPS9eLlteOiNcW1wuLF0qJC8scT1BcnJheS5wcm90b3R5cGUuc2xpY2UsQj1pLmV4cHIubWF0Y2guZ2xvYmFsUE9TLFc9e2NoaWxkcmVuOiEwLGNvbnRlbnRzOiEwLG5leHQ6ITAscHJldjohMH07ZnVuY3Rpb24gSShlKXtyZXR1cm4hZXx8IWUucGFyZW50Tm9kZXx8MTE9PT1lLnBhcmVudE5vZGUubm9kZVR5cGV9ZnVuY3Rpb24gJChlLHQsbil7aWYodD10fHwwLGkuaXNGdW5jdGlvbih0KSlyZXR1cm4gaS5ncmVwKGUsKGZ1bmN0aW9uKGUscil7cmV0dXJuISF0LmNhbGwoZSxyLGUpPT09bn0pKTtpZih0Lm5vZGVUeXBlKXJldHVybiBpLmdyZXAoZSwoZnVuY3Rpb24oZSxyKXtyZXR1cm4gZT09PXQ9PT1ufSkpO2lmKCJzdHJpbmciPT10eXBlb2YgdCl7dmFyIHI9aS5ncmVwKGUsKGZ1bmN0aW9uKGUpe3JldHVybiAxPT09ZS5ub2RlVHlwZX0pKTtpZihQLnRlc3QodCkpcmV0dXJuIGkuZmlsdGVyKHQsciwhbik7dD1pLmZpbHRlcih0LHIpfXJldHVybiBpLmdyZXAoZSwoZnVuY3Rpb24oZSxyKXtyZXR1cm4gaS5pbkFycmF5KGUsdCk+PTA9PT1ufSkpfWZ1bmN0aW9uIFIoZSl7dmFyIHQ9WC5zcGxpdCgifCIpLG49ZS5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCk7aWYobi5jcmVhdGVFbGVtZW50KWZvcig7dC5sZW5ndGg7KW4uY3JlYXRlRWxlbWVudCh0LnBvcCgpKTtyZXR1cm4gbn1pLmZuLmV4dGVuZCh7ZmluZDpmdW5jdGlvbihlKXt2YXIgdCxuLHI9dGhpcztpZigic3RyaW5nIiE9dHlwZW9mIGUpcmV0dXJuIGkoZSkuZmlsdGVyKChmdW5jdGlvbigpe2Zvcih0PTAsbj1yLmxlbmd0aDt0PG47dCsrKWlmKGkuY29udGFpbnMoclt0XSx0aGlzKSlyZXR1cm4hMH0pKTt2YXIgbyxhLHMsbD10aGlzLnB1c2hTdGFjaygiIiwiZmluZCIsZSk7Zm9yKHQ9MCxuPXRoaXMubGVuZ3RoO3Q8bjt0KyspaWYobz1sLmxlbmd0aCxpLmZpbmQoZSx0aGlzW3RdLGwpLHQ+MClmb3IoYT1vO2E8bC5sZW5ndGg7YSsrKWZvcihzPTA7czxvO3MrKylpZihsW3NdPT09bFthXSl7bC5zcGxpY2UoYS0tLDEpCjticmVha31yZXR1cm4gbH0saGFzOmZ1bmN0aW9uKGUpe3ZhciB0PWkoZSk7cmV0dXJuIHRoaXMuZmlsdGVyKChmdW5jdGlvbigpe2Zvcih2YXIgZT0wLG49dC5sZW5ndGg7ZTxuO2UrKylpZihpLmNvbnRhaW5zKHRoaXMsdFtlXSkpcmV0dXJuITB9KSl9LG5vdDpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5wdXNoU3RhY2soJCh0aGlzLGUsITEpLCJub3QiLGUpfSxmaWx0ZXI6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMucHVzaFN0YWNrKCQodGhpcyxlLCEwKSwiZmlsdGVyIixlKX0saXM6ZnVuY3Rpb24oZSl7cmV0dXJuISFlJiYoInN0cmluZyI9PXR5cGVvZiBlP0IudGVzdChlKT9pKGUsdGhpcy5jb250ZXh0KS5pbmRleCh0aGlzWzBdKT49MDppLmZpbHRlcihlLHRoaXMpLmxlbmd0aD4wOnRoaXMuZmlsdGVyKGUpLmxlbmd0aD4wKX0sY2xvc2VzdDpmdW5jdGlvbihlLHQpe3ZhciBuLHIsbz1bXSxhPXRoaXNbMF07aWYoaS5pc0FycmF5KGUpKXtmb3IodmFyIHM9MTthJiZhLm93bmVyRG9jdW1lbnQmJmEhPT10Oyl7Zm9yKG49MDtuPGUubGVuZ3RoO24rKylpKGEpLmlzKGVbbl0pJiZvLnB1c2goe3NlbGVjdG9yOmVbbl0sZWxlbTphLGxldmVsOnN9KTthPWEucGFyZW50Tm9kZSxzKyt9cmV0dXJuIG99dmFyIGw9Qi50ZXN0KGUpfHwic3RyaW5nIiE9dHlwZW9mIGU/aShlLHR8fHRoaXMuY29udGV4dCk6MDtmb3Iobj0wLHI9dGhpcy5sZW5ndGg7bjxyO24rKylmb3IoYT10aGlzW25dO2E7KXtpZihsP2wuaW5kZXgoYSk+LTE6aS5maW5kLm1hdGNoZXNTZWxlY3RvcihhLGUpKXtvLnB1c2goYSk7YnJlYWt9aWYoIShhPWEucGFyZW50Tm9kZSl8fCFhLm93bmVyRG9jdW1lbnR8fGE9PT10fHwxMT09PWEubm9kZVR5cGUpYnJlYWt9cmV0dXJuIG89by5sZW5ndGg+MT9pLnVuaXF1ZShvKTpvLHRoaXMucHVzaFN0YWNrKG8sImNsb3Nlc3QiLGUpfSxpbmRleDpmdW5jdGlvbihlKXtyZXR1cm4gZT8ic3RyaW5nIj09dHlwZW9mIGU/aS5pbkFycmF5KHRoaXNbMF0saShlKSk6aS5pbkFycmF5KGUuanF1ZXJ5P2VbMF06ZSx0aGlzKTp0aGlzWzBdJiZ0aGlzWzBdLnBhcmVudE5vZGU/dGhpcy5wcmV2QWxsKCkubGVuZ3RoOi0xfSxhZGQ6ZnVuY3Rpb24oZSx0KXt2YXIgbj0ic3RyaW5nIj09dHlwZW9mIGU/aShlLHQpOmkubWFrZUFycmF5KGUmJmUubm9kZVR5cGU/W2VdOmUpLHI9aS5tZXJnZSh0aGlzLmdldCgpLG4pO3JldHVybiB0aGlzLnB1c2hTdGFjayhJKG5bMF0pfHxJKHJbMF0pP3I6aS51bmlxdWUocikpfSxhbmRTZWxmOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuYWRkKHRoaXMucHJldk9iamVjdCl9fSksaS5lYWNoKHtwYXJlbnQ6ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5wYXJlbnROb2RlO3JldHVybiB0JiYxMSE9PXQubm9kZVR5cGU/dDpudWxsfSxwYXJlbnRzOmZ1bmN0aW9uKGUpe3JldHVybiBpLmRpcihlLCJwYXJlbnROb2RlIil9LHBhcmVudHNVbnRpbDpmdW5jdGlvbihlLHQsbil7cmV0dXJuIGkuZGlyKGUsInBhcmVudE5vZGUiLG4pfSxuZXh0OmZ1bmN0aW9uKGUpe3JldHVybiBpLm50aChlLDIsIm5leHRTaWJsaW5nIil9LHByZXY6ZnVuY3Rpb24oZSl7cmV0dXJuIGkubnRoKGUsMiwicHJldmlvdXNTaWJsaW5nIil9LG5leHRBbGw6ZnVuY3Rpb24oZSl7cmV0dXJuIGkuZGlyKGUsIm5leHRTaWJsaW5nIil9LHByZXZBbGw6ZnVuY3Rpb24oZSl7cmV0dXJuIGkuZGlyKGUsInByZXZpb3VzU2libGluZyIpfSxuZXh0VW50aWw6ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBpLmRpcihlLCJuZXh0U2libGluZyIsbil9LHByZXZVbnRpbDpmdW5jdGlvbihlLHQsbil7cmV0dXJuIGkuZGlyKGUsInByZXZpb3VzU2libGluZyIsbil9LHNpYmxpbmdzOmZ1bmN0aW9uKGUpe3JldHVybiBpLnNpYmxpbmcoKGUucGFyZW50Tm9kZXx8e30pLmZpcnN0Q2hpbGQsZSl9LGNoaWxkcmVuOmZ1bmN0aW9uKGUpe3JldHVybiBpLnNpYmxpbmcoZS5maXJzdENoaWxkKX0sY29udGVudHM6ZnVuY3Rpb24oZSl7cmV0dXJuIGkubm9kZU5hbWUoZSwiaWZyYW1lIik/ZS5jb250ZW50RG9jdW1lbnR8fGUuY29udGVudFdpbmRvdy5kb2N1bWVudDppLm1ha2VBcnJheShlLmNoaWxkTm9kZXMpfX0sKGZ1bmN0aW9uKGUsdCl7aS5mbltlXT1mdW5jdGlvbihuLHIpe3ZhciBvPWkubWFwKHRoaXMsdCxuKTtyZXR1cm4gTS50ZXN0KGUpfHwocj1uKSxyJiYic3RyaW5nIj09dHlwZW9mIHImJihvPWkuZmlsdGVyKHIsbykpLG89dGhpcy5sZW5ndGg+MSYmIVdbZV0/aS51bmlxdWUobyk6bywodGhpcy5sZW5ndGg+MXx8SC50ZXN0KHIpKSYmTy50ZXN0KGUpJiYobz1vLnJldmVyc2UoKSksdGhpcy5wdXNoU3RhY2sobyxlLHEuY2FsbChhcmd1bWVudHMpLmpvaW4oIiwiKSl9fSkpLGkuZXh0ZW5kKHtmaWx0ZXI6ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBuJiYoZT0iOm5vdCgiK2UrIikiKSwxPT09dC5sZW5ndGg/aS5maW5kLm1hdGNoZXNTZWxlY3Rvcih0WzBdLGUpP1t0WzBdXTpbXTppLmZpbmQubWF0Y2hlcyhlLHQpfSxkaXI6ZnVuY3Rpb24oZSx0LG4pe2Zvcih2YXIgcj1bXSxvPWVbdF07byYmOSE9PW8ubm9kZVR5cGUmJih2b2lkIDA9PT1ufHwxIT09by5ub2RlVHlwZXx8IWkobykuaXMobikpOykxPT09by5ub2RlVHlwZSYmci5wdXNoKG8pLG89b1t0XTtyZXR1cm4gcn0sbnRoOmZ1bmN0aW9uKGUsdCxuLHIpe3Q9dHx8MTtmb3IodmFyIGk9MDtlJiYoMSE9PWUubm9kZVR5cGV8fCsraSE9PXQpO2U9ZVtuXSk7cmV0dXJuIGV9LHNpYmxpbmc6ZnVuY3Rpb24oZSx0KXtmb3IodmFyIG49W107ZTtlPWUubmV4dFNpYmxpbmcpMT09PWUubm9kZVR5cGUmJmUhPT10JiZuLnB1c2goZSk7cmV0dXJuIG59fSkKO3ZhciBYPSJhYmJyfGFydGljbGV8YXNpZGV8YXVkaW98YmRpfGNhbnZhc3xkYXRhfGRhdGFsaXN0fGRldGFpbHN8ZmlnY2FwdGlvbnxmaWd1cmV8Zm9vdGVyfGhlYWRlcnxoZ3JvdXB8bWFya3xtZXRlcnxuYXZ8b3V0cHV0fHByb2dyZXNzfHNlY3Rpb258c3VtbWFyeXx0aW1lfHZpZGVvIix6PS8galF1ZXJ5XGQrPSIoPzpcZCt8bnVsbCkiL2csVj0vXlxzKy8sVT0vPCg/IWFyZWF8YnJ8Y29sfGVtYmVkfGhyfGltZ3xpbnB1dHxsaW5rfG1ldGF8cGFyYW0pKChbXHc6XSspW14+XSopXC8+L2dpLFk9LzwoW1x3Ol0rKS8sSj0vPHRib2R5L2ksRz0vPHwmIz9cdys7LyxLPS88KD86c2NyaXB0fHN0eWxlKS9pLFE9LzwoPzpzY3JpcHR8b2JqZWN0fGVtYmVkfG9wdGlvbnxzdHlsZSkvaSxaPW5ldyBSZWdFeHAoIjwoPzoiK1grIilbXFxzLz5dIiwiaSIpLGVlPS9jaGVja2VkXHMqKD86W149XXw9XHMqLmNoZWNrZWQuKS9pLHRlPS9cLyhqYXZhfGVjbWEpc2NyaXB0L2ksbmU9e29wdGlvbjpbMSwiPHNlbGVjdCBtdWx0aXBsZT0nbXVsdGlwbGUnPiIsIjwvc2VsZWN0PiJdLGxlZ2VuZDpbMSwiPGZpZWxkc2V0PiIsIjwvZmllbGRzZXQ+Il0sdGhlYWQ6WzEsIjx0YWJsZT4iLCI8L3RhYmxlPiJdLHRyOlsyLCI8dGFibGU+PHRib2R5PiIsIjwvdGJvZHk+PC90YWJsZT4iXSx0ZDpbMywiPHRhYmxlPjx0Ym9keT48dHI+IiwiPC90cj48L3Rib2R5PjwvdGFibGU+Il0sY29sOlsyLCI8dGFibGU+PHRib2R5PjwvdGJvZHk+PGNvbGdyb3VwPiIsIjwvY29sZ3JvdXA+PC90YWJsZT4iXSxhcmVhOlsxLCI8bWFwPiIsIjwvbWFwPiJdLF9kZWZhdWx0OlswLCIiLCIiXX0scmU9Uih0KTtmdW5jdGlvbiBpZShlLHQpe2lmKDE9PT10Lm5vZGVUeXBlJiZpLmhhc0RhdGEoZSkpe3ZhciBuLHIsbyxhPWkuX2RhdGEoZSkscz1pLl9kYXRhKHQsYSksbD1hLmV2ZW50cztpZihsKWZvcihuIGluIGRlbGV0ZSBzLmhhbmRsZSxzLmV2ZW50cz17fSxsKWZvcihyPTAsbz1sW25dLmxlbmd0aDtyPG87cisrKWkuZXZlbnQuYWRkKHQsbixsW25dW3JdKTtzLmRhdGEmJihzLmRhdGE9aS5leHRlbmQoe30scy5kYXRhKSl9fWZ1bmN0aW9uIG9lKGUsdCl7dmFyIG47MT09PXQubm9kZVR5cGUmJih0LmNsZWFyQXR0cmlidXRlcyYmdC5jbGVhckF0dHJpYnV0ZXMoKSx0Lm1lcmdlQXR0cmlidXRlcyYmdC5tZXJnZUF0dHJpYnV0ZXMoZSksIm9iamVjdCI9PT0obj10Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkpP3Qub3V0ZXJIVE1MPWUub3V0ZXJIVE1MOiJpbnB1dCIhPT1ufHwiY2hlY2tib3giIT09ZS50eXBlJiYicmFkaW8iIT09ZS50eXBlPyJvcHRpb24iPT09bj90LnNlbGVjdGVkPWUuZGVmYXVsdFNlbGVjdGVkOiJpbnB1dCI9PT1ufHwidGV4dGFyZWEiPT09bj90LmRlZmF1bHRWYWx1ZT1lLmRlZmF1bHRWYWx1ZToic2NyaXB0Ij09PW4mJnQudGV4dCE9PWUudGV4dCYmKHQudGV4dD1lLnRleHQpOihlLmNoZWNrZWQmJih0LmRlZmF1bHRDaGVja2VkPXQuY2hlY2tlZD1lLmNoZWNrZWQpLHQudmFsdWUhPT1lLnZhbHVlJiYodC52YWx1ZT1lLnZhbHVlKSksdC5yZW1vdmVBdHRyaWJ1dGUoaS5leHBhbmRvKSx0LnJlbW92ZUF0dHJpYnV0ZSgiX3N1Ym1pdF9hdHRhY2hlZCIpLHQucmVtb3ZlQXR0cmlidXRlKCJfY2hhbmdlX2F0dGFjaGVkIikpfWZ1bmN0aW9uIGFlKGUpe3JldHVybiB2b2lkIDAhPT1lLmdldEVsZW1lbnRzQnlUYWdOYW1lP2UuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIioiKTp2b2lkIDAhPT1lLnF1ZXJ5U2VsZWN0b3JBbGw/ZS5xdWVyeVNlbGVjdG9yQWxsKCIqIik6W119ZnVuY3Rpb24gc2UoZSl7ImNoZWNrYm94IiE9PWUudHlwZSYmInJhZGlvIiE9PWUudHlwZXx8KGUuZGVmYXVsdENoZWNrZWQ9ZS5jaGVja2VkKX1mdW5jdGlvbiBsZShlKXt2YXIgdD0oZS5ub2RlTmFtZXx8IiIpLnRvTG93ZXJDYXNlKCk7ImlucHV0Ij09PXQ/c2UoZSk6InNjcmlwdCIhPT10JiZ2b2lkIDAhPT1lLmdldEVsZW1lbnRzQnlUYWdOYW1lJiZpLmdyZXAoZS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaW5wdXQiKSxzZSl9bmUub3B0Z3JvdXA9bmUub3B0aW9uLG5lLnRib2R5PW5lLnRmb290PW5lLmNvbGdyb3VwPW5lLmNhcHRpb249bmUudGhlYWQsbmUudGg9bmUudGQsaS5zdXBwb3J0Lmh0bWxTZXJpYWxpemV8fChuZS5fZGVmYXVsdD1bMSwiZGl2PGRpdj4iLCI8L2Rpdj4iXSksaS5mbi5leHRlbmQoe3RleHQ6ZnVuY3Rpb24oZSl7cmV0dXJuIGkuYWNjZXNzKHRoaXMsKGZ1bmN0aW9uKGUpe3JldHVybiB2b2lkIDA9PT1lP2kudGV4dCh0aGlzKTp0aGlzLmVtcHR5KCkuYXBwZW5kKCh0aGlzWzBdJiZ0aGlzWzBdLm93bmVyRG9jdW1lbnR8fHQpLmNyZWF0ZVRleHROb2RlKGUpKX0pLG51bGwsZSxhcmd1bWVudHMubGVuZ3RoKX0sd3JhcEFsbDpmdW5jdGlvbihlKXtpZihpLmlzRnVuY3Rpb24oZSkpcmV0dXJuIHRoaXMuZWFjaCgoZnVuY3Rpb24odCl7aSh0aGlzKS53cmFwQWxsKGUuY2FsbCh0aGlzLHQpKX0pKTtpZih0aGlzWzBdKXt2YXIgdD1pKGUsdGhpc1swXS5vd25lckRvY3VtZW50KS5lcSgwKS5jbG9uZSghMCk7dGhpc1swXS5wYXJlbnROb2RlJiZ0Lmluc2VydEJlZm9yZSh0aGlzWzBdKSx0Lm1hcCgoZnVuY3Rpb24oKXtmb3IodmFyIGU9dGhpcztlLmZpcnN0Q2hpbGQmJjE9PT1lLmZpcnN0Q2hpbGQubm9kZVR5cGU7KWU9ZS5maXJzdENoaWxkO3JldHVybiBlfSkpLmFwcGVuZCh0aGlzKX1yZXR1cm4gdGhpc30sd3JhcElubmVyOmZ1bmN0aW9uKGUpe3JldHVybiBpLmlzRnVuY3Rpb24oZSk/dGhpcy5lYWNoKChmdW5jdGlvbih0KXtpKHRoaXMpLndyYXBJbm5lcihlLmNhbGwodGhpcyx0KSl9KSk6dGhpcy5lYWNoKChmdW5jdGlvbigpe3ZhciB0PWkodGhpcyksbj10LmNvbnRlbnRzKCk7bi5sZW5ndGg/bi53cmFwQWxsKGUpOnQuYXBwZW5kKGUpfSkpfSx3cmFwOmZ1bmN0aW9uKGUpe3ZhciB0PWkuaXNGdW5jdGlvbihlKTtyZXR1cm4gdGhpcy5lYWNoKChmdW5jdGlvbihuKXtpKHRoaXMpLndyYXBBbGwodD9lLmNhbGwodGhpcyxuKTplKX0pKX0sdW53cmFwOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucGFyZW50KCkuZWFjaCgoZnVuY3Rpb24oKXsKaS5ub2RlTmFtZSh0aGlzLCJib2R5Iil8fGkodGhpcykucmVwbGFjZVdpdGgodGhpcy5jaGlsZE5vZGVzKX0pKS5lbmQoKX0sYXBwZW5kOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZG9tTWFuaXAoYXJndW1lbnRzLCEwLChmdW5jdGlvbihlKXsxPT09dGhpcy5ub2RlVHlwZSYmdGhpcy5hcHBlbmRDaGlsZChlKX0pKX0scHJlcGVuZDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmRvbU1hbmlwKGFyZ3VtZW50cywhMCwoZnVuY3Rpb24oZSl7MT09PXRoaXMubm9kZVR5cGUmJnRoaXMuaW5zZXJ0QmVmb3JlKGUsdGhpcy5maXJzdENoaWxkKX0pKX0sYmVmb3JlOmZ1bmN0aW9uKCl7aWYodGhpc1swXSYmdGhpc1swXS5wYXJlbnROb2RlKXJldHVybiB0aGlzLmRvbU1hbmlwKGFyZ3VtZW50cywhMSwoZnVuY3Rpb24oZSl7dGhpcy5wYXJlbnROb2RlLmluc2VydEJlZm9yZShlLHRoaXMpfSkpO2lmKGFyZ3VtZW50cy5sZW5ndGgpe3ZhciBlPWkuY2xlYW4oYXJndW1lbnRzKTtyZXR1cm4gZS5wdXNoLmFwcGx5KGUsdGhpcy50b0FycmF5KCkpLHRoaXMucHVzaFN0YWNrKGUsImJlZm9yZSIsYXJndW1lbnRzKX19LGFmdGVyOmZ1bmN0aW9uKCl7aWYodGhpc1swXSYmdGhpc1swXS5wYXJlbnROb2RlKXJldHVybiB0aGlzLmRvbU1hbmlwKGFyZ3VtZW50cywhMSwoZnVuY3Rpb24oZSl7dGhpcy5wYXJlbnROb2RlLmluc2VydEJlZm9yZShlLHRoaXMubmV4dFNpYmxpbmcpfSkpO2lmKGFyZ3VtZW50cy5sZW5ndGgpe3ZhciBlPXRoaXMucHVzaFN0YWNrKHRoaXMsImFmdGVyIixhcmd1bWVudHMpO3JldHVybiBlLnB1c2guYXBwbHkoZSxpLmNsZWFuKGFyZ3VtZW50cykpLGV9fSxyZW1vdmU6ZnVuY3Rpb24oZSx0KXtmb3IodmFyIG4scj0wO251bGwhPShuPXRoaXNbcl0pO3IrKyllJiYhaS5maWx0ZXIoZSxbbl0pLmxlbmd0aHx8KHR8fDEhPT1uLm5vZGVUeXBlfHwoaS5jbGVhbkRhdGEobi5nZXRFbGVtZW50c0J5VGFnTmFtZSgiKiIpKSxpLmNsZWFuRGF0YShbbl0pKSxuLnBhcmVudE5vZGUmJm4ucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChuKSk7cmV0dXJuIHRoaXN9LGVtcHR5OmZ1bmN0aW9uKCl7Zm9yKHZhciBlLHQ9MDtudWxsIT0oZT10aGlzW3RdKTt0KyspZm9yKDE9PT1lLm5vZGVUeXBlJiZpLmNsZWFuRGF0YShlLmdldEVsZW1lbnRzQnlUYWdOYW1lKCIqIikpO2UuZmlyc3RDaGlsZDspZS5yZW1vdmVDaGlsZChlLmZpcnN0Q2hpbGQpO3JldHVybiB0aGlzfSxjbG9uZTpmdW5jdGlvbihlLHQpe3JldHVybiBlPWU/PyExLHQ9dD8/ZSx0aGlzLm1hcCgoZnVuY3Rpb24oKXtyZXR1cm4gaS5jbG9uZSh0aGlzLGUsdCl9KSl9LGh0bWw6ZnVuY3Rpb24oZSl7cmV0dXJuIGkuYWNjZXNzKHRoaXMsKGZ1bmN0aW9uKGUpe3ZhciB0PXRoaXNbMF18fHt9LG49MCxyPXRoaXMubGVuZ3RoO2lmKHZvaWQgMD09PWUpcmV0dXJuIDE9PT10Lm5vZGVUeXBlP3QuaW5uZXJIVE1MLnJlcGxhY2UoeiwiIik6bnVsbDtpZigic3RyaW5nIj09dHlwZW9mIGUmJiFLLnRlc3QoZSkmJihpLnN1cHBvcnQubGVhZGluZ1doaXRlc3BhY2V8fCFWLnRlc3QoZSkpJiYhbmVbKFkuZXhlYyhlKXx8WyIiLCIiXSlbMV0udG9Mb3dlckNhc2UoKV0pe2U9ZS5yZXBsYWNlKFUsIjwkMT48LyQyPiIpO3RyeXtmb3IoO248cjtuKyspMT09PSh0PXRoaXNbbl18fHt9KS5ub2RlVHlwZSYmKGkuY2xlYW5EYXRhKHQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIioiKSksdC5pbm5lckhUTUw9ZSk7dD0wfWNhdGNoKGUpe319dCYmdGhpcy5lbXB0eSgpLmFwcGVuZChlKX0pLG51bGwsZSxhcmd1bWVudHMubGVuZ3RoKX0scmVwbGFjZVdpdGg6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXNbMF0mJnRoaXNbMF0ucGFyZW50Tm9kZT9pLmlzRnVuY3Rpb24oZSk/dGhpcy5lYWNoKChmdW5jdGlvbih0KXt2YXIgbj1pKHRoaXMpLHI9bi5odG1sKCk7bi5yZXBsYWNlV2l0aChlLmNhbGwodGhpcyx0LHIpKX0pKTooInN0cmluZyIhPXR5cGVvZiBlJiYoZT1pKGUpLmRldGFjaCgpKSx0aGlzLmVhY2goKGZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5uZXh0U2libGluZyxuPXRoaXMucGFyZW50Tm9kZTtpKHRoaXMpLnJlbW92ZSgpLHQ/aSh0KS5iZWZvcmUoZSk6aShuKS5hcHBlbmQoZSl9KSkpOnRoaXMubGVuZ3RoP3RoaXMucHVzaFN0YWNrKGkoaS5pc0Z1bmN0aW9uKGUpP2UoKTplKSwicmVwbGFjZVdpdGgiLGUpOnRoaXN9LGRldGFjaDpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5yZW1vdmUoZSwhMCl9LGRvbU1hbmlwOmZ1bmN0aW9uKGUsdCxuKXt2YXIgcixvLGEscyxsLHU9ZVswXSxjPVtdO2lmKCFpLnN1cHBvcnQuY2hlY2tDbG9uZSYmMz09PWFyZ3VtZW50cy5sZW5ndGgmJiJzdHJpbmciPT10eXBlb2YgdSYmZWUudGVzdCh1KSlyZXR1cm4gdGhpcy5lYWNoKChmdW5jdGlvbigpe2kodGhpcykuZG9tTWFuaXAoZSx0LG4sITApfSkpO2lmKGkuaXNGdW5jdGlvbih1KSlyZXR1cm4gdGhpcy5lYWNoKChmdW5jdGlvbihyKXt2YXIgbz1pKHRoaXMpO2VbMF09dS5jYWxsKHRoaXMscix0P28uaHRtbCgpOnZvaWQgMCksby5kb21NYW5pcChlLHQsbil9KSk7aWYodGhpc1swXSl7aWYocz11JiZ1LnBhcmVudE5vZGUsbz0xPT09KGE9KHI9aS5zdXBwb3J0LnBhcmVudE5vZGUmJnMmJjExPT09cy5ub2RlVHlwZSYmcy5jaGlsZE5vZGVzLmxlbmd0aD09PXRoaXMubGVuZ3RoP3tmcmFnbWVudDpzfTppLmJ1aWxkRnJhZ21lbnQoZSx0aGlzLGMpKS5mcmFnbWVudCkuY2hpbGROb2Rlcy5sZW5ndGg/YT1hLmZpcnN0Q2hpbGQ6YS5maXJzdENoaWxkKXt0PXQmJmkubm9kZU5hbWUobywidHIiKTtmb3IodmFyIGY9MCxkPXRoaXMubGVuZ3RoLHA9ZC0xO2Y8ZDtmKyspbi5jYWxsKHQ/KGw9dGhpc1tmXSxpLm5vZGVOYW1lKGwsInRhYmxlIik/bC5nZXRFbGVtZW50c0J5VGFnTmFtZSgidGJvZHkiKVswXXx8bC5hcHBlbmRDaGlsZChsLm93bmVyRG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidGJvZHkiKSk6bCk6dGhpc1tmXSxyLmNhY2hlYWJsZXx8ZD4xJiZmPHA/aS5jbG9uZShhLCEwLCEwKTphKX1jLmxlbmd0aCYmaS5lYWNoKGMsKGZ1bmN0aW9uKGUsdCl7dC5wYXJlbnROb2RlJiZ0LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodCl9KSl9CnJldHVybiB0aGlzfX0pLGkuYnVpbGRGcmFnbWVudD1mdW5jdGlvbihlLG4scil7dmFyIG8sYSxzLGwsdT1lWzBdO3JldHVybiBuJiZuWzBdJiYobD1uWzBdLm93bmVyRG9jdW1lbnR8fG5bMF0pLGwuY3JlYXRlRG9jdW1lbnRGcmFnbWVudHx8KGw9dCksISgxPT09ZS5sZW5ndGgmJiJzdHJpbmciPT10eXBlb2YgdSYmdS5sZW5ndGg8NTEyJiZsPT09dCYmIjwiPT09dS5jaGFyQXQoMCkpfHxRLnRlc3QodSl8fCFpLnN1cHBvcnQuY2hlY2tDbG9uZSYmZWUudGVzdCh1KXx8IWkuc3VwcG9ydC5odG1sNUNsb25lJiZaLnRlc3QodSl8fChhPSEwLChzPWkuZnJhZ21lbnRzW3VdKSYmMSE9PXMmJihvPXMpKSxvfHwobz1sLmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKSxpLmNsZWFuKGUsbCxvLHIpKSxhJiYoaS5mcmFnbWVudHNbdV09cz9vOjEpLHtmcmFnbWVudDpvLGNhY2hlYWJsZTphfX0saS5mcmFnbWVudHM9e30saS5lYWNoKHthcHBlbmRUbzoiYXBwZW5kIixwcmVwZW5kVG86InByZXBlbmQiLGluc2VydEJlZm9yZToiYmVmb3JlIixpbnNlcnRBZnRlcjoiYWZ0ZXIiLHJlcGxhY2VBbGw6InJlcGxhY2VXaXRoIn0sKGZ1bmN0aW9uKGUsdCl7aS5mbltlXT1mdW5jdGlvbihuKXt2YXIgcj1bXSxvPWkobiksYT0xPT09dGhpcy5sZW5ndGgmJnRoaXNbMF0ucGFyZW50Tm9kZTtpZihhJiYxMT09PWEubm9kZVR5cGUmJjE9PT1hLmNoaWxkTm9kZXMubGVuZ3RoJiYxPT09by5sZW5ndGgpcmV0dXJuIG9bdF0odGhpc1swXSksdGhpcztmb3IodmFyIHM9MCxsPW8ubGVuZ3RoO3M8bDtzKyspe3ZhciB1PShzPjA/dGhpcy5jbG9uZSghMCk6dGhpcykuZ2V0KCk7aShvW3NdKVt0XSh1KSxyPXIuY29uY2F0KHUpfXJldHVybiB0aGlzLnB1c2hTdGFjayhyLGUsby5zZWxlY3Rvcil9fSkpLGkuZXh0ZW5kKHtjbG9uZTpmdW5jdGlvbihlLG4scil7dmFyIG8sYSxzLGw9aS5zdXBwb3J0Lmh0bWw1Q2xvbmV8fGkuaXNYTUxEb2MoZSl8fCFaLnRlc3QoIjwiK2Uubm9kZU5hbWUrIj4iKT9lLmNsb25lTm9kZSghMCk6ZnVuY3Rpb24oZSl7dmFyIG49dC5jcmVhdGVFbGVtZW50KCJkaXYiKTtyZXR1cm4gcmUuYXBwZW5kQ2hpbGQobiksbi5pbm5lckhUTUw9ZS5vdXRlckhUTUwsbi5maXJzdENoaWxkfShlKTtpZighKGkuc3VwcG9ydC5ub0Nsb25lRXZlbnQmJmkuc3VwcG9ydC5ub0Nsb25lQ2hlY2tlZHx8MSE9PWUubm9kZVR5cGUmJjExIT09ZS5ub2RlVHlwZXx8aS5pc1hNTERvYyhlKSkpZm9yKG9lKGUsbCksbz1hZShlKSxhPWFlKGwpLHM9MDtvW3NdOysrcylhW3NdJiZvZShvW3NdLGFbc10pO2lmKG4mJihpZShlLGwpLHIpKWZvcihvPWFlKGUpLGE9YWUobCkscz0wO29bc107KytzKWllKG9bc10sYVtzXSk7cmV0dXJuIG89YT1udWxsLGx9LGNsZWFuOmZ1bmN0aW9uKGUsbixyLG8pe3ZhciBhLHMsbCx1PVtdO3ZvaWQgMD09PShuPW58fHQpLmNyZWF0ZUVsZW1lbnQmJihuPW4ub3duZXJEb2N1bWVudHx8blswXSYmblswXS5vd25lckRvY3VtZW50fHx0KTtmb3IodmFyIGMsZj0wO251bGwhPShjPWVbZl0pO2YrKylpZigibnVtYmVyIj09dHlwZW9mIGMmJihjKz0iIiksYyl7aWYoInN0cmluZyI9PXR5cGVvZiBjKWlmKEcudGVzdChjKSl7Yz1jLnJlcGxhY2UoVSwiPCQxPjwvJDI+Iik7dmFyIGQscD0oWS5leGVjKGMpfHxbIiIsIiJdKVsxXS50b0xvd2VyQ2FzZSgpLGg9bmVbcF18fG5lLl9kZWZhdWx0LG09aFswXSxnPW4uY3JlYXRlRWxlbWVudCgiZGl2Iiksdj1yZS5jaGlsZE5vZGVzO2ZvcihuPT09dD9yZS5hcHBlbmRDaGlsZChnKTpSKG4pLmFwcGVuZENoaWxkKGcpLGcuaW5uZXJIVE1MPWhbMV0rYytoWzJdO20tLTspZz1nLmxhc3RDaGlsZDtpZighaS5zdXBwb3J0LnRib2R5KXt2YXIgeT1KLnRlc3QoYyksYj0idGFibGUiIT09cHx8eT8iPHRhYmxlPiIhPT1oWzFdfHx5P1tdOmcuY2hpbGROb2RlczpnLmZpcnN0Q2hpbGQmJmcuZmlyc3RDaGlsZC5jaGlsZE5vZGVzO2ZvcihsPWIubGVuZ3RoLTE7bD49MDstLWwpaS5ub2RlTmFtZShiW2xdLCJ0Ym9keSIpJiYhYltsXS5jaGlsZE5vZGVzLmxlbmd0aCYmYltsXS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGJbbF0pfSFpLnN1cHBvcnQubGVhZGluZ1doaXRlc3BhY2UmJlYudGVzdChjKSYmZy5pbnNlcnRCZWZvcmUobi5jcmVhdGVUZXh0Tm9kZShWLmV4ZWMoYylbMF0pLGcuZmlyc3RDaGlsZCksYz1nLmNoaWxkTm9kZXMsZyYmKGcucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChnKSx2Lmxlbmd0aD4wJiYoZD12W3YubGVuZ3RoLTFdKSYmZC5wYXJlbnROb2RlJiZkLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoZCkpfWVsc2UgYz1uLmNyZWF0ZVRleHROb2RlKGMpO3ZhciB4O2lmKCFpLnN1cHBvcnQuYXBwZW5kQ2hlY2tlZClpZihjWzBdJiYibnVtYmVyIj09dHlwZW9mKHg9Yy5sZW5ndGgpKWZvcihsPTA7bDx4O2wrKylsZShjW2xdKTtlbHNlIGxlKGMpO2Mubm9kZVR5cGU/dS5wdXNoKGMpOnU9aS5tZXJnZSh1LGMpfWlmKHIpZm9yKGE9ZnVuY3Rpb24oZSl7cmV0dXJuIWUudHlwZXx8dGUudGVzdChlLnR5cGUpfSxmPTA7dVtmXTtmKyspaWYocz11W2ZdLG8mJmkubm9kZU5hbWUocywic2NyaXB0IikmJighcy50eXBlfHx0ZS50ZXN0KHMudHlwZSkpKW8ucHVzaChzLnBhcmVudE5vZGU/cy5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHMpOnMpO2Vsc2V7aWYoMT09PXMubm9kZVR5cGUpe3ZhciB3PWkuZ3JlcChzLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJzY3JpcHQiKSxhKTt1LnNwbGljZS5hcHBseSh1LFtmKzEsMF0uY29uY2F0KHcpKX1yLmFwcGVuZENoaWxkKHMpfXJldHVybiB1fSxjbGVhbkRhdGE6ZnVuY3Rpb24oZSl7Zm9yKHZhciB0LG4scixvPWkuY2FjaGUsYT1pLmV2ZW50LnNwZWNpYWwscz1pLnN1cHBvcnQuZGVsZXRlRXhwYW5kbyxsPTA7bnVsbCE9KHI9ZVtsXSk7bCsrKWlmKCghci5ub2RlTmFtZXx8IWkubm9EYXRhW3Iubm9kZU5hbWUudG9Mb3dlckNhc2UoKV0pJiYobj1yW2kuZXhwYW5kb10pKXtpZigodD1vW25dKSYmdC5ldmVudHMpe2Zvcih2YXIgdSBpbiB0LmV2ZW50cylhW3VdP2kuZXZlbnQucmVtb3ZlKHIsdSk6aS5yZW1vdmVFdmVudChyLHUsdC5oYW5kbGUpCjt0LmhhbmRsZSYmKHQuaGFuZGxlLmVsZW09bnVsbCl9cz9kZWxldGUgcltpLmV4cGFuZG9dOnIucmVtb3ZlQXR0cmlidXRlJiZyLnJlbW92ZUF0dHJpYnV0ZShpLmV4cGFuZG8pLGRlbGV0ZSBvW25dfX19KTt2YXIgdWUsY2UsZmUsZGU9L2FscGhhXChbXildKlwpL2kscGU9L29wYWNpdHk9KFteKV0qKS8saGU9LyhbQS1aXXxebXMpL2csbWU9L15bXC0rXT8oPzpcZCpcLik/XGQrJC9pLGdlPS9eLT8oPzpcZCpcLik/XGQrKD8hcHgpW15cZFxzXSskL2ksdmU9L14oW1wtK10pPShbXC0rLlxkZV0rKS8seWU9L15tYXJnaW4vLGJlPXtwb3NpdGlvbjoiYWJzb2x1dGUiLHZpc2liaWxpdHk6ImhpZGRlbiIsZGlzcGxheToiYmxvY2sifSx4ZT1bIlRvcCIsIlJpZ2h0IiwiQm90dG9tIiwiTGVmdCJdO2Z1bmN0aW9uIHdlKGUsdCxuKXt2YXIgcj0id2lkdGgiPT09dD9lLm9mZnNldFdpZHRoOmUub2Zmc2V0SGVpZ2h0LG89IndpZHRoIj09PXQ/MTowO2lmKHI+MCl7aWYoImJvcmRlciIhPT1uKWZvcig7bzw0O28rPTIpbnx8KHItPXBhcnNlRmxvYXQoaS5jc3MoZSwicGFkZGluZyIreGVbb10pKXx8MCksIm1hcmdpbiI9PT1uP3IrPXBhcnNlRmxvYXQoaS5jc3MoZSxuK3hlW29dKSl8fDA6ci09cGFyc2VGbG9hdChpLmNzcyhlLCJib3JkZXIiK3hlW29dKyJXaWR0aCIpKXx8MDtyZXR1cm4gcisicHgifWlmKCgocj11ZShlLHQpKTwwfHxudWxsPT1yKSYmKHI9ZS5zdHlsZVt0XSksZ2UudGVzdChyKSlyZXR1cm4gcjtpZihyPXBhcnNlRmxvYXQocil8fDAsbilmb3IoO288NDtvKz0yKXIrPXBhcnNlRmxvYXQoaS5jc3MoZSwicGFkZGluZyIreGVbb10pKXx8MCwicGFkZGluZyIhPT1uJiYocis9cGFyc2VGbG9hdChpLmNzcyhlLCJib3JkZXIiK3hlW29dKyJXaWR0aCIpKXx8MCksIm1hcmdpbiI9PT1uJiYocis9cGFyc2VGbG9hdChpLmNzcyhlLG4reGVbb10pKXx8MCk7cmV0dXJuIHIrInB4In1pLmZuLmNzcz1mdW5jdGlvbihlLHQpe3JldHVybiBpLmFjY2Vzcyh0aGlzLChmdW5jdGlvbihlLHQsbil7cmV0dXJuIHZvaWQgMCE9PW4/aS5zdHlsZShlLHQsbik6aS5jc3MoZSx0KX0pLGUsdCxhcmd1bWVudHMubGVuZ3RoPjEpfSxpLmV4dGVuZCh7Y3NzSG9va3M6e29wYWNpdHk6e2dldDpmdW5jdGlvbihlLHQpe2lmKHQpe3ZhciBuPXVlKGUsIm9wYWNpdHkiKTtyZXR1cm4iIj09PW4/IjEiOm59cmV0dXJuIGUuc3R5bGUub3BhY2l0eX19fSxjc3NOdW1iZXI6e2ZpbGxPcGFjaXR5OiEwLGZvbnRXZWlnaHQ6ITAsbGluZUhlaWdodDohMCxvcGFjaXR5OiEwLG9ycGhhbnM6ITAsd2lkb3dzOiEwLHpJbmRleDohMCx6b29tOiEwfSxjc3NQcm9wczp7ZmxvYXQ6aS5zdXBwb3J0LmNzc0Zsb2F0PyJjc3NGbG9hdCI6InN0eWxlRmxvYXQifSxzdHlsZTpmdW5jdGlvbihlLHQsbixyKXtpZihlJiYzIT09ZS5ub2RlVHlwZSYmOCE9PWUubm9kZVR5cGUmJmUuc3R5bGUpe3ZhciBvLGEscz1pLmNhbWVsQ2FzZSh0KSxsPWUuc3R5bGUsdT1pLmNzc0hvb2tzW3NdO2lmKHQ9aS5jc3NQcm9wc1tzXXx8cyx2b2lkIDA9PT1uKXJldHVybiB1JiYiZ2V0ImluIHUmJnZvaWQgMCE9PShvPXUuZ2V0KGUsITEscikpP286bFt0XTtpZighKCJzdHJpbmciPT09KGE9dHlwZW9mIG4pJiYobz12ZS5leGVjKG4pKSYmKG49KyhvWzFdKzEpKitvWzJdK3BhcnNlRmxvYXQoaS5jc3MoZSx0KSksYT0ibnVtYmVyIiksbnVsbD09bnx8Im51bWJlciI9PT1hJiZpc05hTihuKXx8KCJudW1iZXIiIT09YXx8aS5jc3NOdW1iZXJbc118fChuKz0icHgiKSx1JiYic2V0ImluIHUmJnZvaWQgMD09PShuPXUuc2V0KGUsbikpKSkpdHJ5e2xbdF09bn1jYXRjaChlKXt9fX0sY3NzOmZ1bmN0aW9uKGUsdCxuKXt2YXIgcixvO3JldHVybiB0PWkuY2FtZWxDYXNlKHQpLG89aS5jc3NIb29rc1t0XSwiY3NzRmxvYXQiPT09KHQ9aS5jc3NQcm9wc1t0XXx8dCkmJih0PSJmbG9hdCIpLG8mJiJnZXQiaW4gbyYmdm9pZCAwIT09KHI9by5nZXQoZSwhMCxuKSk/cjp1ZT91ZShlLHQpOnZvaWQgMH0sc3dhcDpmdW5jdGlvbihlLHQsbil7dmFyIHIsaSxvPXt9O2ZvcihpIGluIHQpb1tpXT1lLnN0eWxlW2ldLGUuc3R5bGVbaV09dFtpXTtmb3IoaSBpbiByPW4uY2FsbChlKSx0KWUuc3R5bGVbaV09b1tpXTtyZXR1cm4gcn19KSxpLmN1ckNTUz1pLmNzcyx0LmRlZmF1bHRWaWV3JiZ0LmRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGUmJihjZT1mdW5jdGlvbihlLHQpe3ZhciBuLHIsbyxhLHM9ZS5zdHlsZTtyZXR1cm4gdD10LnJlcGxhY2UoaGUsIi0kMSIpLnRvTG93ZXJDYXNlKCksKHI9ZS5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3KSYmKG89ci5nZXRDb21wdXRlZFN0eWxlKGUsbnVsbCkpJiYoIiIhPT0obj1vLmdldFByb3BlcnR5VmFsdWUodCkpfHxpLmNvbnRhaW5zKGUub3duZXJEb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsZSl8fChuPWkuc3R5bGUoZSx0KSkpLCFpLnN1cHBvcnQucGl4ZWxNYXJnaW4mJm8mJnllLnRlc3QodCkmJmdlLnRlc3QobikmJihhPXMud2lkdGgscy53aWR0aD1uLG49by53aWR0aCxzLndpZHRoPWEpLG59KSx0LmRvY3VtZW50RWxlbWVudC5jdXJyZW50U3R5bGUmJihmZT1mdW5jdGlvbihlLHQpe3ZhciBuLHIsaSxvPWUuY3VycmVudFN0eWxlJiZlLmN1cnJlbnRTdHlsZVt0XSxhPWUuc3R5bGU7cmV0dXJuIG51bGw9PW8mJmEmJihpPWFbdF0pJiYobz1pKSxnZS50ZXN0KG8pJiYobj1hLmxlZnQsKHI9ZS5ydW50aW1lU3R5bGUmJmUucnVudGltZVN0eWxlLmxlZnQpJiYoZS5ydW50aW1lU3R5bGUubGVmdD1lLmN1cnJlbnRTdHlsZS5sZWZ0KSxhLmxlZnQ9ImZvbnRTaXplIj09PXQ/IjFlbSI6byxvPWEucGl4ZWxMZWZ0KyJweCIsYS5sZWZ0PW4sciYmKGUucnVudGltZVN0eWxlLmxlZnQ9cikpLCIiPT09bz8iYXV0byI6b30pLHVlPWNlfHxmZSxpLmVhY2goWyJoZWlnaHQiLCJ3aWR0aCJdLChmdW5jdGlvbihlLHQpe2kuY3NzSG9va3NbdF09e2dldDpmdW5jdGlvbihlLG4scil7aWYobilyZXR1cm4gMCE9PWUub2Zmc2V0V2lkdGg/d2UoZSx0LHIpOmkuc3dhcChlLGJlLChmdW5jdGlvbigpe3JldHVybiB3ZShlLHQscil9KSl9LHNldDpmdW5jdGlvbihlLHQpewpyZXR1cm4gbWUudGVzdCh0KT90KyJweCI6dH19fSkpLGkuc3VwcG9ydC5vcGFjaXR5fHwoaS5jc3NIb29rcy5vcGFjaXR5PXtnZXQ6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gcGUudGVzdCgodCYmZS5jdXJyZW50U3R5bGU/ZS5jdXJyZW50U3R5bGUuZmlsdGVyOmUuc3R5bGUuZmlsdGVyKXx8IiIpP3BhcnNlRmxvYXQoUmVnRXhwLiQxKS8xMDArIiI6dD8iMSI6IiJ9LHNldDpmdW5jdGlvbihlLHQpe3ZhciBuPWUuc3R5bGUscj1lLmN1cnJlbnRTdHlsZSxvPWkuaXNOdW1lcmljKHQpPyJhbHBoYShvcGFjaXR5PSIrMTAwKnQrIikiOiIiLGE9ciYmci5maWx0ZXJ8fG4uZmlsdGVyfHwiIjtuLnpvb209MSx0Pj0xJiYiIj09PWkudHJpbShhLnJlcGxhY2UoZGUsIiIpKSYmKG4ucmVtb3ZlQXR0cmlidXRlKCJmaWx0ZXIiKSxyJiYhci5maWx0ZXIpfHwobi5maWx0ZXI9ZGUudGVzdChhKT9hLnJlcGxhY2UoZGUsbyk6YSsiICIrbyl9fSksaSgoZnVuY3Rpb24oKXtpLnN1cHBvcnQucmVsaWFibGVNYXJnaW5SaWdodHx8KGkuY3NzSG9va3MubWFyZ2luUmlnaHQ9e2dldDpmdW5jdGlvbihlLHQpe3JldHVybiBpLnN3YXAoZSx7ZGlzcGxheToiaW5saW5lLWJsb2NrIn0sKGZ1bmN0aW9uKCl7cmV0dXJuIHQ/dWUoZSwibWFyZ2luLXJpZ2h0Iik6ZS5zdHlsZS5tYXJnaW5SaWdodH0pKX19KX0pKSxpLmV4cHImJmkuZXhwci5maWx0ZXJzJiYoaS5leHByLmZpbHRlcnMuaGlkZGVuPWZ1bmN0aW9uKGUpe3ZhciB0PWUub2Zmc2V0V2lkdGgsbj1lLm9mZnNldEhlaWdodDtyZXR1cm4gMD09PXQmJjA9PT1ufHwhaS5zdXBwb3J0LnJlbGlhYmxlSGlkZGVuT2Zmc2V0cyYmIm5vbmUiPT09KGUuc3R5bGUmJmUuc3R5bGUuZGlzcGxheXx8aS5jc3MoZSwiZGlzcGxheSIpKX0saS5leHByLmZpbHRlcnMudmlzaWJsZT1mdW5jdGlvbihlKXtyZXR1cm4haS5leHByLmZpbHRlcnMuaGlkZGVuKGUpfSksaS5lYWNoKHttYXJnaW46IiIscGFkZGluZzoiIixib3JkZXI6IldpZHRoIn0sKGZ1bmN0aW9uKGUsdCl7aS5jc3NIb29rc1tlK3RdPXtleHBhbmQ6ZnVuY3Rpb24obil7dmFyIHIsaT0ic3RyaW5nIj09dHlwZW9mIG4/bi5zcGxpdCgiICIpOltuXSxvPXt9O2ZvcihyPTA7cjw0O3IrKylvW2UreGVbcl0rdF09aVtyXXx8aVtyLTJdfHxpWzBdO3JldHVybiBvfX19KSk7dmFyIFRlLE5lLENlPS8lMjAvZyxTZT0vXFtcXSQvLGtlPS9ccj9cbi9nLEVlPS8jLiokLyxBZT0vXiguKj8pOlsgXHRdKihbXlxyXG5dKilccj8kL2dtLERlPS9eKD86Y29sb3J8ZGF0ZXxkYXRldGltZXxkYXRldGltZS1sb2NhbHxlbWFpbHxoaWRkZW58bW9udGh8bnVtYmVyfHBhc3N3b3JkfHJhbmdlfHNlYXJjaHx0ZWx8dGV4dHx0aW1lfHVybHx3ZWVrKSQvaSxMZT0vXig/OkdFVHxIRUFEKSQvLEZlPS9eXC9cLy8samU9L1w/LyxfZT0vPHNjcmlwdFxiW148XSooPzooPyE8XC9zY3JpcHQ+KTxbXjxdKikqPFwvc2NyaXB0Pi9naSxNZT0vXig/OnNlbGVjdHx0ZXh0YXJlYSkvaSxPZT0vXHMrLyxIZT0vKFs/Jl0pXz1bXiZdKi8sUGU9L14oW1x3XCtcLlwtXSs6KSg/OlwvXC8oW15cLz8jOl0qKSg/OjooXGQrKSk/KT8vLHFlPWkuZm4ubG9hZCxCZT17fSxXZT17fSxJZT1bIiovIl0rWyIqIl07dHJ5e1RlPXIuaHJlZn1jYXRjaChlKXsoVGU9dC5jcmVhdGVFbGVtZW50KCJhIikpLmhyZWY9IiIsVGU9VGUuaHJlZn1mdW5jdGlvbiAkZShlKXtyZXR1cm4gZnVuY3Rpb24odCxuKXtpZigic3RyaW5nIiE9dHlwZW9mIHQmJihuPXQsdD0iKiIpLGkuaXNGdW5jdGlvbihuKSlmb3IodmFyIHIsbyxhPXQudG9Mb3dlckNhc2UoKS5zcGxpdChPZSkscz0wLGw9YS5sZW5ndGg7czxsO3MrKylyPWFbc10sKG89L15cKy8udGVzdChyKSkmJihyPXIuc3Vic3RyKDEpfHwiKiIpLChlW3JdPWVbcl18fFtdKVtvPyJ1bnNoaWZ0IjoicHVzaCJdKG4pfX1mdW5jdGlvbiBSZShlLHQsbixyLGksbyl7KG89b3x8e30pW2k9aXx8dC5kYXRhVHlwZXNbMF1dPSEwO2Zvcih2YXIgYSxzPWVbaV0sbD0wLHU9cz9zLmxlbmd0aDowLGM9ZT09PUJlO2w8dSYmKGN8fCFhKTtsKyspInN0cmluZyI9PXR5cGVvZihhPXNbbF0odCxuLHIpKSYmKCFjfHxvW2FdP2E9dm9pZCAwOih0LmRhdGFUeXBlcy51bnNoaWZ0KGEpLGE9UmUoZSx0LG4scixhLG8pKSk7cmV0dXJuIWMmJmF8fG9bIioiXXx8KGE9UmUoZSx0LG4sciwiKiIsbykpLGF9ZnVuY3Rpb24gWGUoZSx0KXt2YXIgbixyLG89aS5hamF4U2V0dGluZ3MuZmxhdE9wdGlvbnN8fHt9O2ZvcihuIGluIHQpdm9pZCAwIT09dFtuXSYmKChvW25dP2U6cnx8KHI9e30pKVtuXT10W25dKTtyJiZpLmV4dGVuZCghMCxlLHIpfWZ1bmN0aW9uIHplKGUsdCxuLHIpe2lmKGkuaXNBcnJheSh0KSlpLmVhY2godCwoZnVuY3Rpb24odCxpKXtufHxTZS50ZXN0KGUpP3IoZSxpKTp6ZShlKyJbIisoIm9iamVjdCI9PXR5cGVvZiBpP3Q6IiIpKyJdIixpLG4scil9KSk7ZWxzZSBpZihufHwib2JqZWN0IiE9PWkudHlwZSh0KSlyKGUsdCk7ZWxzZSBmb3IodmFyIG8gaW4gdCl6ZShlKyJbIitvKyJdIix0W29dLG4scil9TmU9UGUuZXhlYyhUZS50b0xvd2VyQ2FzZSgpKXx8W10saS5mbi5leHRlbmQoe2xvYWQ6ZnVuY3Rpb24oZSx0LG4pe2lmKCJzdHJpbmciIT10eXBlb2YgZSYmcWUpcmV0dXJuIHFlLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtpZighdGhpcy5sZW5ndGgpcmV0dXJuIHRoaXM7dmFyIHI9ZS5pbmRleE9mKCIgIik7aWYocj49MCl7dmFyIG89ZS5zbGljZShyLGUubGVuZ3RoKTtlPWUuc2xpY2UoMCxyKX12YXIgYT0iR0VUIjt0JiYoaS5pc0Z1bmN0aW9uKHQpPyhuPXQsdD12b2lkIDApOiJvYmplY3QiPT10eXBlb2YgdCYmKHQ9aS5wYXJhbSh0LGkuYWpheFNldHRpbmdzLnRyYWRpdGlvbmFsKSxhPSJQT1NUIikpO3ZhciBzPXRoaXM7cmV0dXJuIGkuYWpheCh7dXJsOmUsdHlwZTphLGRhdGFUeXBlOiJodG1sIixkYXRhOnQsY29tcGxldGU6ZnVuY3Rpb24oZSx0LHIpe3I9ZS5yZXNwb25zZVRleHQsZS5pc1Jlc29sdmVkKCkmJihlLmRvbmUoKGZ1bmN0aW9uKGUpe3I9ZX0pKSxzLmh0bWwobz9pKCI8ZGl2PiIpLmFwcGVuZChyLnJlcGxhY2UoX2UsIiIpKS5maW5kKG8pOnIpKSwKbiYmcy5lYWNoKG4sW3IsdCxlXSl9fSksdGhpc30sc2VyaWFsaXplOmZ1bmN0aW9uKCl7cmV0dXJuIGkucGFyYW0odGhpcy5zZXJpYWxpemVBcnJheSgpKX0sc2VyaWFsaXplQXJyYXk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tYXAoKGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZWxlbWVudHM/aS5tYWtlQXJyYXkodGhpcy5lbGVtZW50cyk6dGhpc30pKS5maWx0ZXIoKGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubmFtZSYmIXRoaXMuZGlzYWJsZWQmJih0aGlzLmNoZWNrZWR8fE1lLnRlc3QodGhpcy5ub2RlTmFtZSl8fERlLnRlc3QodGhpcy50eXBlKSl9KSkubWFwKChmdW5jdGlvbihlLHQpe3ZhciBuPWkodGhpcykudmFsKCk7cmV0dXJuIG51bGw9PW4/bnVsbDppLmlzQXJyYXkobik/aS5tYXAobiwoZnVuY3Rpb24oZSxuKXtyZXR1cm57bmFtZTp0Lm5hbWUsdmFsdWU6ZS5yZXBsYWNlKGtlLCJcclxuIil9fSkpOntuYW1lOnQubmFtZSx2YWx1ZTpuLnJlcGxhY2Uoa2UsIlxyXG4iKX19KSkuZ2V0KCl9fSksaS5lYWNoKCJhamF4U3RhcnQgYWpheFN0b3AgYWpheENvbXBsZXRlIGFqYXhFcnJvciBhamF4U3VjY2VzcyBhamF4U2VuZCIuc3BsaXQoIiAiKSwoZnVuY3Rpb24oZSx0KXtpLmZuW3RdPWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLm9uKHQsZSl9fSkpLGkuZWFjaChbImdldCIsInBvc3QiXSwoZnVuY3Rpb24oZSx0KXtpW3RdPWZ1bmN0aW9uKGUsbixyLG8pe3JldHVybiBpLmlzRnVuY3Rpb24obikmJihvPW98fHIscj1uLG49dm9pZCAwKSxpLmFqYXgoe3R5cGU6dCx1cmw6ZSxkYXRhOm4sc3VjY2VzczpyLGRhdGFUeXBlOm99KX19KSksaS5leHRlbmQoe2dldFNjcmlwdDpmdW5jdGlvbihlLHQpe3JldHVybiBpLmdldChlLHZvaWQgMCx0LCJzY3JpcHQiKX0sZ2V0SlNPTjpmdW5jdGlvbihlLHQsbil7cmV0dXJuIGkuZ2V0KGUsdCxuLCJqc29uIil9LGFqYXhTZXR1cDpmdW5jdGlvbihlLHQpe3JldHVybiB0P1hlKGUsaS5hamF4U2V0dGluZ3MpOih0PWUsZT1pLmFqYXhTZXR0aW5ncyksWGUoZSx0KSxlfSxhamF4U2V0dGluZ3M6e3VybDpUZSxpc0xvY2FsOi9eKD86YWJvdXR8YXBwfGFwcFwtc3RvcmFnZXwuK1wtZXh0ZW5zaW9ufGZpbGV8cmVzfHdpZGdldCk6JC8udGVzdChOZVsxXSksZ2xvYmFsOiEwLHR5cGU6IkdFVCIsY29udGVudFR5cGU6ImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZDsgY2hhcnNldD1VVEYtOCIscHJvY2Vzc0RhdGE6ITAsYXN5bmM6ITAsYWNjZXB0czp7eG1sOiJhcHBsaWNhdGlvbi94bWwsIHRleHQveG1sIixodG1sOiJ0ZXh0L2h0bWwiLHRleHQ6InRleHQvcGxhaW4iLGpzb246ImFwcGxpY2F0aW9uL2pzb24sIHRleHQvamF2YXNjcmlwdCIsIioiOkllfSxjb250ZW50czp7eG1sOi94bWwvLGh0bWw6L2h0bWwvLGpzb246L2pzb24vfSxyZXNwb25zZUZpZWxkczp7eG1sOiJyZXNwb25zZVhNTCIsdGV4dDoicmVzcG9uc2VUZXh0In0sY29udmVydGVyczp7IiogdGV4dCI6d2luZG93LlN0cmluZywidGV4dCBodG1sIjohMCwidGV4dCBqc29uIjppLnBhcnNlSlNPTiwidGV4dCB4bWwiOmkucGFyc2VYTUx9LGZsYXRPcHRpb25zOntjb250ZXh0OiEwLHVybDohMH19LGFqYXhQcmVmaWx0ZXI6JGUoQmUpLGFqYXhUcmFuc3BvcnQ6JGUoV2UpLGFqYXg6ZnVuY3Rpb24oZSx0KXsib2JqZWN0Ij09dHlwZW9mIGUmJih0PWUsZT12b2lkIDApLHQ9dHx8e307dmFyIG4scixvLGEscyxsLHUsYyxmPWkuYWpheFNldHVwKHt9LHQpLGQ9Zi5jb250ZXh0fHxmLHA9ZCE9PWYmJihkLm5vZGVUeXBlfHxkIGluc3RhbmNlb2YgaSk/aShkKTppLmV2ZW50LGg9aS5EZWZlcnJlZCgpLG09aS5DYWxsYmFja3MoIm9uY2UgbWVtb3J5IiksZz1mLnN0YXR1c0NvZGV8fHt9LHY9e30seT17fSxiPTAseD17cmVhZHlTdGF0ZTowLHNldFJlcXVlc3RIZWFkZXI6ZnVuY3Rpb24oZSx0KXtpZighYil7dmFyIG49ZS50b0xvd2VyQ2FzZSgpO2U9eVtuXT15W25dfHxlLHZbZV09dH1yZXR1cm4gdGhpc30sZ2V0QWxsUmVzcG9uc2VIZWFkZXJzOmZ1bmN0aW9uKCl7cmV0dXJuIDI9PT1iP3I6bnVsbH0sZ2V0UmVzcG9uc2VIZWFkZXI6ZnVuY3Rpb24oZSl7dmFyIHQ7aWYoMj09PWIpe2lmKCFvKWZvcihvPXt9O3Q9QWUuZXhlYyhyKTspb1t0WzFdLnRvTG93ZXJDYXNlKCldPXRbMl07dD1vW2UudG9Mb3dlckNhc2UoKV19cmV0dXJuIHZvaWQgMD09PXQ/bnVsbDp0fSxvdmVycmlkZU1pbWVUeXBlOmZ1bmN0aW9uKGUpe3JldHVybiBifHwoZi5taW1lVHlwZT1lKSx0aGlzfSxhYm9ydDpmdW5jdGlvbihlKXtyZXR1cm4gZT1lfHwiYWJvcnQiLGEmJmEuYWJvcnQoZSksdygwLGUpLHRoaXN9fTtmdW5jdGlvbiB3KGUsdCxvLGwpe2lmKDIhPT1iKXtiPTIscyYmY2xlYXJUaW1lb3V0KHMpLGE9dm9pZCAwLHI9bHx8IiIseC5yZWFkeVN0YXRlPWU+MD80OjA7dmFyIGMsdix5LHcsVCxOPXQsQz1vP2Z1bmN0aW9uKGUsdCxuKXt2YXIgcixpLG8sYSxzPWUuY29udGVudHMsbD1lLmRhdGFUeXBlcyx1PWUucmVzcG9uc2VGaWVsZHM7Zm9yKGkgaW4gdSlpIGluIG4mJih0W3VbaV1dPW5baV0pO2Zvcig7IioiPT09bFswXTspbC5zaGlmdCgpLHZvaWQgMD09PXImJihyPWUubWltZVR5cGV8fHQuZ2V0UmVzcG9uc2VIZWFkZXIoImNvbnRlbnQtdHlwZSIpKTtpZihyKWZvcihpIGluIHMpaWYoc1tpXSYmc1tpXS50ZXN0KHIpKXtsLnVuc2hpZnQoaSk7YnJlYWt9aWYobFswXWluIG4pbz1sWzBdO2Vsc2V7Zm9yKGkgaW4gbil7aWYoIWxbMF18fGUuY29udmVydGVyc1tpKyIgIitsWzBdXSl7bz1pO2JyZWFrfWF8fChhPWkpfW89b3x8YX1pZihvKXJldHVybiBvIT09bFswXSYmbC51bnNoaWZ0KG8pLG5bb119KGYseCxvKTp2b2lkIDA7aWYoZT49MjAwJiZlPDMwMHx8MzA0PT09ZSlpZihmLmlmTW9kaWZpZWQmJigodz14LmdldFJlc3BvbnNlSGVhZGVyKCJMYXN0LU1vZGlmaWVkIikpJiYoaS5sYXN0TW9kaWZpZWRbbl09dyksKFQ9eC5nZXRSZXNwb25zZUhlYWRlcigiRXRhZyIpKSYmKGkuZXRhZ1tuXT1UKSksMzA0PT09ZSlOPSJub3Rtb2RpZmllZCIsYz0hMDtlbHNlIHRyeXt2PWZ1bmN0aW9uKGUsdCl7CmUuZGF0YUZpbHRlciYmKHQ9ZS5kYXRhRmlsdGVyKHQsZS5kYXRhVHlwZSkpO3ZhciBuLHIsbyxhLHMsbCx1LGMsZj1lLmRhdGFUeXBlcyxkPXt9LHA9Zi5sZW5ndGgsaD1mWzBdO2ZvcihuPTE7bjxwO24rKyl7aWYoMT09PW4pZm9yKHIgaW4gZS5jb252ZXJ0ZXJzKSJzdHJpbmciPT10eXBlb2YgciYmKGRbci50b0xvd2VyQ2FzZSgpXT1lLmNvbnZlcnRlcnNbcl0pO2lmKGE9aCwiKiI9PT0oaD1mW25dKSloPWE7ZWxzZSBpZigiKiIhPT1hJiZhIT09aCl7aWYoIShsPWRbcz1hKyIgIitoXXx8ZFsiKiAiK2hdKSlmb3IodSBpbiBjPXZvaWQgMCxkKWlmKCgobz11LnNwbGl0KCIgIikpWzBdPT09YXx8IioiPT09b1swXSkmJihjPWRbb1sxXSsiICIraF0pKXshMD09PSh1PWRbdV0pP2w9YzohMD09PWMmJihsPXUpO2JyZWFrfWx8fGN8fGkuZXJyb3IoIk5vIGNvbnZlcnNpb24gZnJvbSAiK3MucmVwbGFjZSgiICIsIiB0byAiKSksITAhPT1sJiYodD1sP2wodCk6Yyh1KHQpKSl9fXJldHVybiB0fShmLEMpLE49InN1Y2Nlc3MiLGM9ITB9Y2F0Y2goZSl7Tj0icGFyc2VyZXJyb3IiLHk9ZX1lbHNlIHk9TixOJiYhZXx8KE49ImVycm9yIixlPDAmJihlPTApKTt4LnN0YXR1cz1lLHguc3RhdHVzVGV4dD0iIisodHx8TiksYz9oLnJlc29sdmVXaXRoKGQsW3YsTix4XSk6aC5yZWplY3RXaXRoKGQsW3gsTix5XSkseC5zdGF0dXNDb2RlKGcpLGc9dm9pZCAwLHUmJnAudHJpZ2dlcigiYWpheCIrKGM/IlN1Y2Nlc3MiOiJFcnJvciIpLFt4LGYsYz92OnldKSxtLmZpcmVXaXRoKGQsW3gsTl0pLHUmJihwLnRyaWdnZXIoImFqYXhDb21wbGV0ZSIsW3gsZl0pLC0taS5hY3RpdmV8fGkuZXZlbnQudHJpZ2dlcigiYWpheFN0b3AiKSl9fWlmKGgucHJvbWlzZSh4KSx4LnN1Y2Nlc3M9eC5kb25lLHguZXJyb3I9eC5mYWlsLHguY29tcGxldGU9bS5hZGQseC5zdGF0dXNDb2RlPWZ1bmN0aW9uKGUpe3ZhciB0O2lmKGUpaWYoYjwyKWZvcih0IGluIGUpZ1t0XT1bZ1t0XSxlW3RdXTtlbHNlIHQ9ZVt4LnN0YXR1c10seC50aGVuKHQsdCk7cmV0dXJuIHRoaXN9LGYudXJsPSgoZXx8Zi51cmwpKyIiKS5yZXBsYWNlKEVlLCIiKS5yZXBsYWNlKEZlLE5lWzFdKyIvLyIpLGYuZGF0YVR5cGVzPWkudHJpbShmLmRhdGFUeXBlfHwiKiIpLnRvTG93ZXJDYXNlKCkuc3BsaXQoT2UpLG51bGw9PWYuY3Jvc3NEb21haW4mJihsPVBlLmV4ZWMoZi51cmwudG9Mb3dlckNhc2UoKSksZi5jcm9zc0RvbWFpbj0hKCFsfHxsWzFdPT1OZVsxXSYmbFsyXT09TmVbMl0mJihsWzNdfHwoImh0dHA6Ij09PWxbMV0/ODA6NDQzKSk9PShOZVszXXx8KCJodHRwOiI9PT1OZVsxXT84MDo0NDMpKSkpLGYuZGF0YSYmZi5wcm9jZXNzRGF0YSYmInN0cmluZyIhPXR5cGVvZiBmLmRhdGEmJihmLmRhdGE9aS5wYXJhbShmLmRhdGEsZi50cmFkaXRpb25hbCkpLFJlKEJlLGYsdCx4KSwyPT09YilyZXR1cm4hMTtpZih1PWYuZ2xvYmFsLGYudHlwZT1mLnR5cGUudG9VcHBlckNhc2UoKSxmLmhhc0NvbnRlbnQ9IUxlLnRlc3QoZi50eXBlKSx1JiYwPT1pLmFjdGl2ZSsrJiZpLmV2ZW50LnRyaWdnZXIoImFqYXhTdGFydCIpLCFmLmhhc0NvbnRlbnQmJihmLmRhdGEmJihmLnVybCs9KGplLnRlc3QoZi51cmwpPyImIjoiPyIpK2YuZGF0YSxkZWxldGUgZi5kYXRhKSxuPWYudXJsLCExPT09Zi5jYWNoZSkpe3ZhciBUPWkubm93KCksTj1mLnVybC5yZXBsYWNlKEhlLCIkMV89IitUKTtmLnVybD1OKyhOPT09Zi51cmw/KGplLnRlc3QoZi51cmwpPyImIjoiPyIpKyJfPSIrVDoiIil9Zm9yKGMgaW4oZi5kYXRhJiZmLmhhc0NvbnRlbnQmJiExIT09Zi5jb250ZW50VHlwZXx8dC5jb250ZW50VHlwZSkmJnguc2V0UmVxdWVzdEhlYWRlcigiQ29udGVudC1UeXBlIixmLmNvbnRlbnRUeXBlKSxmLmlmTW9kaWZpZWQmJihuPW58fGYudXJsLGkubGFzdE1vZGlmaWVkW25dJiZ4LnNldFJlcXVlc3RIZWFkZXIoIklmLU1vZGlmaWVkLVNpbmNlIixpLmxhc3RNb2RpZmllZFtuXSksaS5ldGFnW25dJiZ4LnNldFJlcXVlc3RIZWFkZXIoIklmLU5vbmUtTWF0Y2giLGkuZXRhZ1tuXSkpLHguc2V0UmVxdWVzdEhlYWRlcigiQWNjZXB0IixmLmRhdGFUeXBlc1swXSYmZi5hY2NlcHRzW2YuZGF0YVR5cGVzWzBdXT9mLmFjY2VwdHNbZi5kYXRhVHlwZXNbMF1dKygiKiIhPT1mLmRhdGFUeXBlc1swXT8iLCAiK0llKyI7IHE9MC4wMSI6IiIpOmYuYWNjZXB0c1siKiJdKSxmLmhlYWRlcnMpeC5zZXRSZXF1ZXN0SGVhZGVyKGMsZi5oZWFkZXJzW2NdKTtpZihmLmJlZm9yZVNlbmQmJighMT09PWYuYmVmb3JlU2VuZC5jYWxsKGQseCxmKXx8Mj09PWIpKXJldHVybiB4LmFib3J0KCksITE7Zm9yKGMgaW57c3VjY2VzczoxLGVycm9yOjEsY29tcGxldGU6MX0peFtjXShmW2NdKTtpZihhPVJlKFdlLGYsdCx4KSl7eC5yZWFkeVN0YXRlPTEsdSYmcC50cmlnZ2VyKCJhamF4U2VuZCIsW3gsZl0pLGYuYXN5bmMmJmYudGltZW91dD4wJiYocz1zZXRUaW1lb3V0KChmdW5jdGlvbigpe3guYWJvcnQoInRpbWVvdXQiKX0pLGYudGltZW91dCkpO3RyeXtiPTEsYS5zZW5kKHYsdyl9Y2F0Y2goZSl7aWYoIShiPDIpKXRocm93IGU7dygtMSxlKX19ZWxzZSB3KC0xLCJObyBUcmFuc3BvcnQiKTtyZXR1cm4geH0scGFyYW06ZnVuY3Rpb24oZSx0KXt2YXIgbj1bXSxyPWZ1bmN0aW9uKGUsdCl7dD1pLmlzRnVuY3Rpb24odCk/dCgpOnQsbltuLmxlbmd0aF09ZW5jb2RlVVJJQ29tcG9uZW50KGUpKyI9IitlbmNvZGVVUklDb21wb25lbnQodCl9O2lmKHZvaWQgMD09PXQmJih0PWkuYWpheFNldHRpbmdzLnRyYWRpdGlvbmFsKSxpLmlzQXJyYXkoZSl8fGUuanF1ZXJ5JiYhaS5pc1BsYWluT2JqZWN0KGUpKWkuZWFjaChlLChmdW5jdGlvbigpe3IodGhpcy5uYW1lLHRoaXMudmFsdWUpfSkpO2Vsc2UgZm9yKHZhciBvIGluIGUpemUobyxlW29dLHQscik7cmV0dXJuIG4uam9pbigiJiIpLnJlcGxhY2UoQ2UsIisiKX19KSxpLmV4dGVuZCh7YWN0aXZlOjAsbGFzdE1vZGlmaWVkOnt9LGV0YWc6e319KTt2YXIgVmUsVWUsWWU9ISF3aW5kb3cuQWN0aXZlWE9iamVjdCYmZnVuY3Rpb24oKXtmb3IodmFyIGUgaW4gVmUpVmVbZV0oMCwxKX0sSmU9MAo7ZnVuY3Rpb24gR2UoKXt0cnl7cmV0dXJuIG5ldyB3aW5kb3cuWE1MSHR0cFJlcXVlc3R9Y2F0Y2goZSl7fX1pLmFqYXhTZXR0aW5ncy54aHI9d2luZG93LkFjdGl2ZVhPYmplY3Q/ZnVuY3Rpb24oKXtyZXR1cm4hdGhpcy5pc0xvY2FsJiZHZSgpfHxmdW5jdGlvbigpe3RyeXtyZXR1cm4gbmV3IHdpbmRvdy5BY3RpdmVYT2JqZWN0KCJNaWNyb3NvZnQuWE1MSFRUUCIpfWNhdGNoKGUpe319KCl9OkdlLFVlPWkuYWpheFNldHRpbmdzLnhocigpLGkuZXh0ZW5kKGkuc3VwcG9ydCx7YWpheDohIVVlLGNvcnM6ISFVZSYmIndpdGhDcmVkZW50aWFscyJpbiBVZX0pLGkuc3VwcG9ydC5hamF4JiZpLmFqYXhUcmFuc3BvcnQoKGZ1bmN0aW9uKGUpe3ZhciB0O2lmKCFlLmNyb3NzRG9tYWlufHxpLnN1cHBvcnQuY29ycylyZXR1cm57c2VuZDpmdW5jdGlvbihuLHIpe3ZhciBvLGEscz1lLnhocigpO2lmKGUudXNlcm5hbWU/cy5vcGVuKGUudHlwZSxlLnVybCxlLmFzeW5jLGUudXNlcm5hbWUsZS5wYXNzd29yZCk6cy5vcGVuKGUudHlwZSxlLnVybCxlLmFzeW5jKSxlLnhockZpZWxkcylmb3IoYSBpbiBlLnhockZpZWxkcylzW2FdPWUueGhyRmllbGRzW2FdO2UubWltZVR5cGUmJnMub3ZlcnJpZGVNaW1lVHlwZSYmcy5vdmVycmlkZU1pbWVUeXBlKGUubWltZVR5cGUpLGUuY3Jvc3NEb21haW58fG5bIlgtUmVxdWVzdGVkLVdpdGgiXXx8KG5bIlgtUmVxdWVzdGVkLVdpdGgiXT0iWE1MSHR0cFJlcXVlc3QiKTt0cnl7Zm9yKGEgaW4gbilzLnNldFJlcXVlc3RIZWFkZXIoYSxuW2FdKX1jYXRjaChlKXt9cy5zZW5kKGUuaGFzQ29udGVudCYmZS5kYXRhfHxudWxsKSx0PWZ1bmN0aW9uKG4sYSl7dmFyIGwsdSxjLGYsZDt0cnl7aWYodCYmKGF8fDQ9PT1zLnJlYWR5U3RhdGUpKWlmKHQ9dm9pZCAwLG8mJihzLm9ucmVhZHlzdGF0ZWNoYW5nZT1pLm5vb3AsWWUmJmRlbGV0ZSBWZVtvXSksYSk0IT09cy5yZWFkeVN0YXRlJiZzLmFib3J0KCk7ZWxzZXtsPXMuc3RhdHVzLGM9cy5nZXRBbGxSZXNwb25zZUhlYWRlcnMoKSxmPXt9LChkPXMucmVzcG9uc2VYTUwpJiZkLmRvY3VtZW50RWxlbWVudCYmKGYueG1sPWQpO3RyeXtmLnRleHQ9cy5yZXNwb25zZVRleHR9Y2F0Y2gobil7fXRyeXt1PXMuc3RhdHVzVGV4dH1jYXRjaChlKXt1PSIifWx8fCFlLmlzTG9jYWx8fGUuY3Jvc3NEb21haW4/MTIyMz09PWwmJihsPTIwNCk6bD1mLnRleHQ/MjAwOjQwNH19Y2F0Y2goZSl7YXx8cigtMSxlKX1mJiZyKGwsdSxmLGMpfSxlLmFzeW5jJiY0IT09cy5yZWFkeVN0YXRlPyhvPSsrSmUsWWUmJihWZXx8KFZlPXt9LGkod2luZG93KS51bmxvYWQoWWUpKSxWZVtvXT10KSxzLm9ucmVhZHlzdGF0ZWNoYW5nZT10KTp0KCl9LGFib3J0OmZ1bmN0aW9uKCl7dCYmdCgwLDEpfX19KSk7dmFyIEtlLFFlLFplLGV0LHR0PXt9LG50PS9eKD86dG9nZ2xlfHNob3d8aGlkZSkkLyxydD0vXihbK1wtXT0pPyhbXGQrLlwtXSspKFthLXolXSopJC9pLGl0PVtbImhlaWdodCIsIm1hcmdpblRvcCIsIm1hcmdpbkJvdHRvbSIsInBhZGRpbmdUb3AiLCJwYWRkaW5nQm90dG9tIl0sWyJ3aWR0aCIsIm1hcmdpbkxlZnQiLCJtYXJnaW5SaWdodCIsInBhZGRpbmdMZWZ0IiwicGFkZGluZ1JpZ2h0Il0sWyJvcGFjaXR5Il1dO2Z1bmN0aW9uIG90KCl7cmV0dXJuIHNldFRpbWVvdXQoYXQsMCksZXQ9aS5ub3coKX1mdW5jdGlvbiBhdCgpe2V0PXZvaWQgMH1mdW5jdGlvbiBzdChlLHQpe3ZhciBuPXt9O3JldHVybiBpLmVhY2goaXQuY29uY2F0LmFwcGx5KFtdLGl0LnNsaWNlKDAsdCkpLChmdW5jdGlvbigpe25bdGhpc109ZX0pKSxufWZ1bmN0aW9uIGx0KGUpe2lmKCF0dFtlXSl7dmFyIG49dC5ib2R5LHI9aSgiPCIrZSsiPiIpLmFwcGVuZFRvKG4pLG89ci5jc3MoImRpc3BsYXkiKTtyLnJlbW92ZSgpLCJub25lIiE9PW8mJiIiIT09b3x8KEtlfHwoKEtlPXQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIikpLmZyYW1lQm9yZGVyPUtlLndpZHRoPUtlLmhlaWdodD0wKSxuLmFwcGVuZENoaWxkKEtlKSxRZSYmS2UuY3JlYXRlRWxlbWVudHx8KChRZT0oS2UuY29udGVudFdpbmRvd3x8S2UuY29udGVudERvY3VtZW50KS5kb2N1bWVudCkud3JpdGUoKGkuc3VwcG9ydC5ib3hNb2RlbD8iPCFkb2N0eXBlIGh0bWw+IjoiIikrIjxodG1sPjxib2R5PiIpLFFlLmNsb3NlKCkpLHI9UWUuY3JlYXRlRWxlbWVudChlKSxRZS5ib2R5LmFwcGVuZENoaWxkKHIpLG89aS5jc3MociwiZGlzcGxheSIpLG4ucmVtb3ZlQ2hpbGQoS2UpKSx0dFtlXT1vfXJldHVybiB0dFtlXX1pLmZuLmV4dGVuZCh7c2hvdzpmdW5jdGlvbihlLHQsbil7dmFyIHIsbztpZihlfHwwPT09ZSlyZXR1cm4gdGhpcy5hbmltYXRlKHN0KCJzaG93IiwzKSxlLHQsbik7Zm9yKHZhciBhPTAscz10aGlzLmxlbmd0aDthPHM7YSsrKShyPXRoaXNbYV0pLnN0eWxlJiYobz1yLnN0eWxlLmRpc3BsYXksaS5fZGF0YShyLCJvbGRkaXNwbGF5Iil8fCJub25lIiE9PW98fChvPXIuc3R5bGUuZGlzcGxheT0iIiksKCIiPT09byYmIm5vbmUiPT09aS5jc3MociwiZGlzcGxheSIpfHwhaS5jb250YWlucyhyLm93bmVyRG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LHIpKSYmaS5fZGF0YShyLCJvbGRkaXNwbGF5IixsdChyLm5vZGVOYW1lKSkpO2ZvcihhPTA7YTxzO2ErKykocj10aGlzW2FdKS5zdHlsZSYmKCIiIT09KG89ci5zdHlsZS5kaXNwbGF5KSYmIm5vbmUiIT09b3x8KHIuc3R5bGUuZGlzcGxheT1pLl9kYXRhKHIsIm9sZGRpc3BsYXkiKXx8IiIpKTtyZXR1cm4gdGhpc30saGlkZTpmdW5jdGlvbihlLHQsbil7aWYoZXx8MD09PWUpcmV0dXJuIHRoaXMuYW5pbWF0ZShzdCgiaGlkZSIsMyksZSx0LG4pO2Zvcih2YXIgcixvLGE9MCxzPXRoaXMubGVuZ3RoO2E8czthKyspKHI9dGhpc1thXSkuc3R5bGUmJigibm9uZSI9PT0obz1pLmNzcyhyLCJkaXNwbGF5IikpfHxpLl9kYXRhKHIsIm9sZGRpc3BsYXkiKXx8aS5fZGF0YShyLCJvbGRkaXNwbGF5IixvKSk7Zm9yKGE9MDthPHM7YSsrKXRoaXNbYV0uc3R5bGUmJih0aGlzW2FdLnN0eWxlLmRpc3BsYXk9Im5vbmUiKTtyZXR1cm4gdGhpc30sX3RvZ2dsZTppLmZuLnRvZ2dsZSwKdG9nZ2xlOmZ1bmN0aW9uKGUsdCxuKXt2YXIgcj0iYm9vbGVhbiI9PXR5cGVvZiBlO3JldHVybiBpLmlzRnVuY3Rpb24oZSkmJmkuaXNGdW5jdGlvbih0KT90aGlzLl90b2dnbGUuYXBwbHkodGhpcyxhcmd1bWVudHMpOm51bGw9PWV8fHI/dGhpcy5lYWNoKChmdW5jdGlvbigpe3ZhciB0PXI/ZTppKHRoaXMpLmlzKCI6aGlkZGVuIik7aSh0aGlzKVt0PyJzaG93IjoiaGlkZSJdKCl9KSk6dGhpcy5hbmltYXRlKHN0KCJ0b2dnbGUiLDMpLGUsdCxuKSx0aGlzfSxmYWRlVG86ZnVuY3Rpb24oZSx0LG4scil7cmV0dXJuIHRoaXMuZmlsdGVyKCI6aGlkZGVuIikuY3NzKCJvcGFjaXR5IiwwKS5zaG93KCkuZW5kKCkuYW5pbWF0ZSh7b3BhY2l0eTp0fSxlLG4scil9LGFuaW1hdGU6ZnVuY3Rpb24oZSx0LG4scil7dmFyIG89aS5zcGVlZCh0LG4scik7aWYoaS5pc0VtcHR5T2JqZWN0KGUpKXJldHVybiB0aGlzLmVhY2goby5jb21wbGV0ZSxbITFdKTtmdW5jdGlvbiBhKCl7ITE9PT1vLnF1ZXVlJiZpLl9tYXJrKHRoaXMpO3ZhciB0LG4scixhLHMsbCx1LGMsZixkLHAsaD1pLmV4dGVuZCh7fSxvKSxtPTE9PT10aGlzLm5vZGVUeXBlLGc9bSYmaSh0aGlzKS5pcygiOmhpZGRlbiIpO2ZvcihyIGluIGguYW5pbWF0ZWRQcm9wZXJ0aWVzPXt9LGUpaWYociE9PSh0PWkuY2FtZWxDYXNlKHIpKSYmKGVbdF09ZVtyXSxkZWxldGUgZVtyXSksKHM9aS5jc3NIb29rc1t0XSkmJiJleHBhbmQiaW4gcylmb3IociBpbiBsPXMuZXhwYW5kKGVbdF0pLGRlbGV0ZSBlW3RdLGwpciBpbiBlfHwoZVtyXT1sW3JdKTtmb3IodCBpbiBlKXtpZihuPWVbdF0saS5pc0FycmF5KG4pPyhoLmFuaW1hdGVkUHJvcGVydGllc1t0XT1uWzFdLG49ZVt0XT1uWzBdKTpoLmFuaW1hdGVkUHJvcGVydGllc1t0XT1oLnNwZWNpYWxFYXNpbmcmJmguc3BlY2lhbEVhc2luZ1t0XXx8aC5lYXNpbmd8fCJzd2luZyIsImhpZGUiPT09biYmZ3x8InNob3ciPT09biYmIWcpcmV0dXJuIGguY29tcGxldGUuY2FsbCh0aGlzKTshbXx8ImhlaWdodCIhPT10JiYid2lkdGgiIT09dHx8KGgub3ZlcmZsb3c9W3RoaXMuc3R5bGUub3ZlcmZsb3csdGhpcy5zdHlsZS5vdmVyZmxvd1gsdGhpcy5zdHlsZS5vdmVyZmxvd1ldLCJpbmxpbmUiPT09aS5jc3ModGhpcywiZGlzcGxheSIpJiYibm9uZSI9PT1pLmNzcyh0aGlzLCJmbG9hdCIpJiYoaS5zdXBwb3J0LmlubGluZUJsb2NrTmVlZHNMYXlvdXQmJiJpbmxpbmUiIT09bHQodGhpcy5ub2RlTmFtZSk/dGhpcy5zdHlsZS56b29tPTE6dGhpcy5zdHlsZS5kaXNwbGF5PSJpbmxpbmUtYmxvY2siKSl9Zm9yKHIgaW4gbnVsbCE9aC5vdmVyZmxvdyYmKHRoaXMuc3R5bGUub3ZlcmZsb3c9ImhpZGRlbiIpLGUpYT1uZXcgaS5meCh0aGlzLGgsciksbj1lW3JdLG50LnRlc3Qobik/KHA9aS5fZGF0YSh0aGlzLCJ0b2dnbGUiK3IpfHwoInRvZ2dsZSI9PT1uP2c/InNob3ciOiJoaWRlIjowKSk/KGkuX2RhdGEodGhpcywidG9nZ2xlIityLCJzaG93Ij09PXA/ImhpZGUiOiJzaG93IiksYVtwXSgpKTphW25dKCk6KHU9cnQuZXhlYyhuKSxjPWEuY3VyKCksdT8oZj1wYXJzZUZsb2F0KHVbMl0pLCJweCIhPT0oZD11WzNdfHwoaS5jc3NOdW1iZXJbcl0/IiI6InB4IikpJiYoaS5zdHlsZSh0aGlzLHIsKGZ8fDEpK2QpLGM9KGZ8fDEpL2EuY3VyKCkqYyxpLnN0eWxlKHRoaXMscixjK2QpKSx1WzFdJiYoZj0oIi09Ij09PXVbMV0/LTE6MSkqZitjKSxhLmN1c3RvbShjLGYsZCkpOmEuY3VzdG9tKGMsbiwiIikpO3JldHVybiEwfXJldHVybiBlPWkuZXh0ZW5kKHt9LGUpLCExPT09by5xdWV1ZT90aGlzLmVhY2goYSk6dGhpcy5xdWV1ZShvLnF1ZXVlLGEpfSxzdG9wOmZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4ic3RyaW5nIiE9dHlwZW9mIGUmJihuPXQsdD1lLGU9dm9pZCAwKSx0JiYhMSE9PWUmJnRoaXMucXVldWUoZXx8ImZ4IixbXSksdGhpcy5lYWNoKChmdW5jdGlvbigpe3ZhciB0LHI9ITEsbz1pLnRpbWVycyxhPWkuX2RhdGEodGhpcyk7ZnVuY3Rpb24gcyhlLHQscil7dmFyIG89dFtyXTtpLnJlbW92ZURhdGEoZSxyLCEwKSxvLnN0b3Aobil9aWYobnx8aS5fdW5tYXJrKCEwLHRoaXMpLG51bGw9PWUpZm9yKHQgaW4gYSlhW3RdJiZhW3RdLnN0b3AmJnQuaW5kZXhPZigiLnJ1biIpPT09dC5sZW5ndGgtNCYmcyh0aGlzLGEsdCk7ZWxzZSBhW3Q9ZSsiLnJ1biJdJiZhW3RdLnN0b3AmJnModGhpcyxhLHQpO2Zvcih0PW8ubGVuZ3RoO3QtLTspb1t0XS5lbGVtIT09dGhpc3x8bnVsbCE9ZSYmb1t0XS5xdWV1ZSE9PWV8fChuP29bdF0oITApOm9bdF0uc2F2ZVN0YXRlKCkscj0hMCxvLnNwbGljZSh0LDEpKTtuJiZyfHxpLmRlcXVldWUodGhpcyxlKX0pKX19KSxpLmVhY2goe3NsaWRlRG93bjpzdCgic2hvdyIsMSksc2xpZGVVcDpzdCgiaGlkZSIsMSksc2xpZGVUb2dnbGU6c3QoInRvZ2dsZSIsMSksZmFkZUluOntvcGFjaXR5OiJzaG93In0sZmFkZU91dDp7b3BhY2l0eToiaGlkZSJ9LGZhZGVUb2dnbGU6e29wYWNpdHk6InRvZ2dsZSJ9fSwoZnVuY3Rpb24oZSx0KXtpLmZuW2VdPWZ1bmN0aW9uKGUsbixyKXtyZXR1cm4gdGhpcy5hbmltYXRlKHQsZSxuLHIpfX0pKSxpLmV4dGVuZCh7c3BlZWQ6ZnVuY3Rpb24oZSx0LG4pe3ZhciByPWUmJiJvYmplY3QiPT10eXBlb2YgZT9pLmV4dGVuZCh7fSxlKTp7Y29tcGxldGU6bnx8IW4mJnR8fGkuaXNGdW5jdGlvbihlKSYmZSxkdXJhdGlvbjplLGVhc2luZzpuJiZ0fHx0JiYhaS5pc0Z1bmN0aW9uKHQpJiZ0fTtyZXR1cm4gci5kdXJhdGlvbj1pLmZ4Lm9mZj8wOiJudW1iZXIiPT10eXBlb2Ygci5kdXJhdGlvbj9yLmR1cmF0aW9uOnIuZHVyYXRpb24gaW4gaS5meC5zcGVlZHM/aS5meC5zcGVlZHNbci5kdXJhdGlvbl06aS5meC5zcGVlZHMuX2RlZmF1bHQsbnVsbCE9ci5xdWV1ZSYmITAhPT1yLnF1ZXVlfHwoci5xdWV1ZT0iZngiKSxyLm9sZD1yLmNvbXBsZXRlLHIuY29tcGxldGU9ZnVuY3Rpb24oZSl7aS5pc0Z1bmN0aW9uKHIub2xkKSYmci5vbGQuY2FsbCh0aGlzKSxyLnF1ZXVlP2kuZGVxdWV1ZSh0aGlzLHIucXVldWUpOiExIT09ZSYmaS5fdW5tYXJrKHRoaXMpfSxyfSxlYXNpbmc6ewpsaW5lYXI6ZnVuY3Rpb24oZSl7cmV0dXJuIGV9LHN3aW5nOmZ1bmN0aW9uKGUpe3JldHVybi1NYXRoLmNvcyhlKk1hdGguUEkpLzIrLjV9fSx0aW1lcnM6W10sZng6ZnVuY3Rpb24oZSx0LG4pe3RoaXMub3B0aW9ucz10LHRoaXMuZWxlbT1lLHRoaXMucHJvcD1uLHQub3JpZz10Lm9yaWd8fHt9fX0pLGkuZngucHJvdG90eXBlPXt1cGRhdGU6ZnVuY3Rpb24oKXt0aGlzLm9wdGlvbnMuc3RlcCYmdGhpcy5vcHRpb25zLnN0ZXAuY2FsbCh0aGlzLmVsZW0sdGhpcy5ub3csdGhpcyksKGkuZnguc3RlcFt0aGlzLnByb3BdfHxpLmZ4LnN0ZXAuX2RlZmF1bHQpKHRoaXMpfSxjdXI6ZnVuY3Rpb24oKXtpZihudWxsIT10aGlzLmVsZW1bdGhpcy5wcm9wXSYmKCF0aGlzLmVsZW0uc3R5bGV8fG51bGw9PXRoaXMuZWxlbS5zdHlsZVt0aGlzLnByb3BdKSlyZXR1cm4gdGhpcy5lbGVtW3RoaXMucHJvcF07dmFyIGUsdD1pLmNzcyh0aGlzLmVsZW0sdGhpcy5wcm9wKTtyZXR1cm4gaXNOYU4oZT1wYXJzZUZsb2F0KHQpKT90JiYiYXV0byIhPT10P3Q6MDplfSxjdXN0b206ZnVuY3Rpb24oZSx0LG4pe3ZhciByPXRoaXMsbz1pLmZ4O2Z1bmN0aW9uIGEoZSl7cmV0dXJuIHIuc3RlcChlKX10aGlzLnN0YXJ0VGltZT1ldHx8b3QoKSx0aGlzLmVuZD10LHRoaXMubm93PXRoaXMuc3RhcnQ9ZSx0aGlzLnBvcz10aGlzLnN0YXRlPTAsdGhpcy51bml0PW58fHRoaXMudW5pdHx8KGkuY3NzTnVtYmVyW3RoaXMucHJvcF0/IiI6InB4IiksYS5xdWV1ZT10aGlzLm9wdGlvbnMucXVldWUsYS5lbGVtPXRoaXMuZWxlbSxhLnNhdmVTdGF0ZT1mdW5jdGlvbigpe3ZvaWQgMD09PWkuX2RhdGEoci5lbGVtLCJmeHNob3ciK3IucHJvcCkmJihyLm9wdGlvbnMuaGlkZT9pLl9kYXRhKHIuZWxlbSwiZnhzaG93IityLnByb3Asci5zdGFydCk6ci5vcHRpb25zLnNob3cmJmkuX2RhdGEoci5lbGVtLCJmeHNob3ciK3IucHJvcCxyLmVuZCkpfSxhKCkmJmkudGltZXJzLnB1c2goYSkmJiFaZSYmKFplPXNldEludGVydmFsKG8udGljayxvLmludGVydmFsKSl9LHNob3c6ZnVuY3Rpb24oKXt2YXIgZT1pLl9kYXRhKHRoaXMuZWxlbSwiZnhzaG93Iit0aGlzLnByb3ApO3RoaXMub3B0aW9ucy5vcmlnW3RoaXMucHJvcF09ZXx8aS5zdHlsZSh0aGlzLmVsZW0sdGhpcy5wcm9wKSx0aGlzLm9wdGlvbnMuc2hvdz0hMCx2b2lkIDAhPT1lP3RoaXMuY3VzdG9tKHRoaXMuY3VyKCksZSk6dGhpcy5jdXN0b20oIndpZHRoIj09PXRoaXMucHJvcHx8ImhlaWdodCI9PT10aGlzLnByb3A/MTowLHRoaXMuY3VyKCkpLGkodGhpcy5lbGVtKS5zaG93KCl9LGhpZGU6ZnVuY3Rpb24oKXt0aGlzLm9wdGlvbnMub3JpZ1t0aGlzLnByb3BdPWkuX2RhdGEodGhpcy5lbGVtLCJmeHNob3ciK3RoaXMucHJvcCl8fGkuc3R5bGUodGhpcy5lbGVtLHRoaXMucHJvcCksdGhpcy5vcHRpb25zLmhpZGU9ITAsdGhpcy5jdXN0b20odGhpcy5jdXIoKSwwKX0sc3RlcDpmdW5jdGlvbihlKXt2YXIgdCxuLHIsbz1ldHx8b3QoKSxhPSEwLHM9dGhpcy5lbGVtLGw9dGhpcy5vcHRpb25zO2lmKGV8fG8+PWwuZHVyYXRpb24rdGhpcy5zdGFydFRpbWUpe2Zvcih0IGluIHRoaXMubm93PXRoaXMuZW5kLHRoaXMucG9zPXRoaXMuc3RhdGU9MSx0aGlzLnVwZGF0ZSgpLGwuYW5pbWF0ZWRQcm9wZXJ0aWVzW3RoaXMucHJvcF09ITAsbC5hbmltYXRlZFByb3BlcnRpZXMpITAhPT1sLmFuaW1hdGVkUHJvcGVydGllc1t0XSYmKGE9ITEpO2lmKGEpe2lmKG51bGw9PWwub3ZlcmZsb3d8fGkuc3VwcG9ydC5zaHJpbmtXcmFwQmxvY2tzfHxpLmVhY2goWyIiLCJYIiwiWSJdLChmdW5jdGlvbihlLHQpe3Muc3R5bGVbIm92ZXJmbG93Iit0XT1sLm92ZXJmbG93W2VdfSkpLGwuaGlkZSYmaShzKS5oaWRlKCksbC5oaWRlfHxsLnNob3cpZm9yKHQgaW4gbC5hbmltYXRlZFByb3BlcnRpZXMpaS5zdHlsZShzLHQsbC5vcmlnW3RdKSxpLnJlbW92ZURhdGEocywiZnhzaG93Iit0LCEwKSxpLnJlbW92ZURhdGEocywidG9nZ2xlIit0LCEwKTsocj1sLmNvbXBsZXRlKSYmKGwuY29tcGxldGU9ITEsci5jYWxsKHMpKX1yZXR1cm4hMX1yZXR1cm4gbC5kdXJhdGlvbj09MS8wP3RoaXMubm93PW86KG49by10aGlzLnN0YXJ0VGltZSx0aGlzLnN0YXRlPW4vbC5kdXJhdGlvbix0aGlzLnBvcz1pLmVhc2luZ1tsLmFuaW1hdGVkUHJvcGVydGllc1t0aGlzLnByb3BdXSh0aGlzLnN0YXRlLG4sMCwxLGwuZHVyYXRpb24pLHRoaXMubm93PXRoaXMuc3RhcnQrKHRoaXMuZW5kLXRoaXMuc3RhcnQpKnRoaXMucG9zKSx0aGlzLnVwZGF0ZSgpLCEwfX0saS5leHRlbmQoaS5meCx7dGljazpmdW5jdGlvbigpe2Zvcih2YXIgZSx0PWkudGltZXJzLG49MDtuPHQubGVuZ3RoO24rKykoZT10W25dKSgpfHx0W25dIT09ZXx8dC5zcGxpY2Uobi0tLDEpO3QubGVuZ3RofHxpLmZ4LnN0b3AoKX0saW50ZXJ2YWw6MTMsc3RvcDpmdW5jdGlvbigpe2NsZWFySW50ZXJ2YWwoWmUpLFplPW51bGx9LHNwZWVkczp7c2xvdzo2MDAsZmFzdDoyMDAsX2RlZmF1bHQ6NDAwfSxzdGVwOntvcGFjaXR5OmZ1bmN0aW9uKGUpe2kuc3R5bGUoZS5lbGVtLCJvcGFjaXR5IixlLm5vdyl9LF9kZWZhdWx0OmZ1bmN0aW9uKGUpe2UuZWxlbS5zdHlsZSYmbnVsbCE9ZS5lbGVtLnN0eWxlW2UucHJvcF0/ZS5lbGVtLnN0eWxlW2UucHJvcF09ZS5ub3crZS51bml0OmUuZWxlbVtlLnByb3BdPWUubm93fX19KSxpLmVhY2goaXQuY29uY2F0LmFwcGx5KFtdLGl0KSwoZnVuY3Rpb24oZSx0KXt0LmluZGV4T2YoIm1hcmdpbiIpJiYoaS5meC5zdGVwW3RdPWZ1bmN0aW9uKGUpe2kuc3R5bGUoZS5lbGVtLHQsTWF0aC5tYXgoMCxlLm5vdykrZS51bml0KX0pfSkpLGkuZXhwciYmaS5leHByLmZpbHRlcnMmJihpLmV4cHIuZmlsdGVycy5hbmltYXRlZD1mdW5jdGlvbihlKXtyZXR1cm4gaS5ncmVwKGkudGltZXJzLChmdW5jdGlvbih0KXtyZXR1cm4gZT09PXQuZWxlbX0pKS5sZW5ndGh9KTt2YXIgdXQsY3Q9L150KD86YWJsZXxkfGgpJC9pLGZ0PS9eKD86Ym9keXxodG1sKSQvaTtmdW5jdGlvbiBkdChlKXsKcmV0dXJuIGkuaXNXaW5kb3coZSk/ZTo5PT09ZS5ub2RlVHlwZSYmKGUuZGVmYXVsdFZpZXd8fGUucGFyZW50V2luZG93KX11dD0iZ2V0Qm91bmRpbmdDbGllbnRSZWN0ImluIHQuZG9jdW1lbnRFbGVtZW50P2Z1bmN0aW9uKGUsdCxuLHIpe3RyeXtyPWUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCl9Y2F0Y2goZSl7fWlmKCFyfHwhaS5jb250YWlucyhuLGUpKXJldHVybiByP3t0b3A6ci50b3AsbGVmdDpyLmxlZnR9Ont0b3A6MCxsZWZ0OjB9O3ZhciBvPXQuYm9keSxhPWR0KHQpLHM9bi5jbGllbnRUb3B8fG8uY2xpZW50VG9wfHwwLGw9bi5jbGllbnRMZWZ0fHxvLmNsaWVudExlZnR8fDAsdT1hLnBhZ2VZT2Zmc2V0fHxpLnN1cHBvcnQuYm94TW9kZWwmJm4uc2Nyb2xsVG9wfHxvLnNjcm9sbFRvcCxjPWEucGFnZVhPZmZzZXR8fGkuc3VwcG9ydC5ib3hNb2RlbCYmbi5zY3JvbGxMZWZ0fHxvLnNjcm9sbExlZnQ7cmV0dXJue3RvcDpyLnRvcCt1LXMsbGVmdDpyLmxlZnQrYy1sfX06ZnVuY3Rpb24oZSx0LG4pe2Zvcih2YXIgcixvPWUub2Zmc2V0UGFyZW50LGE9dC5ib2R5LHM9dC5kZWZhdWx0VmlldyxsPXM/cy5nZXRDb21wdXRlZFN0eWxlKGUsbnVsbCk6ZS5jdXJyZW50U3R5bGUsdT1lLm9mZnNldFRvcCxjPWUub2Zmc2V0TGVmdDsoZT1lLnBhcmVudE5vZGUpJiZlIT09YSYmZSE9PW4mJighaS5zdXBwb3J0LmZpeGVkUG9zaXRpb258fCJmaXhlZCIhPT1sLnBvc2l0aW9uKTspcj1zP3MuZ2V0Q29tcHV0ZWRTdHlsZShlLG51bGwpOmUuY3VycmVudFN0eWxlLHUtPWUuc2Nyb2xsVG9wLGMtPWUuc2Nyb2xsTGVmdCxlPT09byYmKHUrPWUub2Zmc2V0VG9wLGMrPWUub2Zmc2V0TGVmdCwhaS5zdXBwb3J0LmRvZXNOb3RBZGRCb3JkZXJ8fGkuc3VwcG9ydC5kb2VzQWRkQm9yZGVyRm9yVGFibGVBbmRDZWxscyYmY3QudGVzdChlLm5vZGVOYW1lKXx8KHUrPXBhcnNlRmxvYXQoci5ib3JkZXJUb3BXaWR0aCl8fDAsYys9cGFyc2VGbG9hdChyLmJvcmRlckxlZnRXaWR0aCl8fDApLG89ZS5vZmZzZXRQYXJlbnQpLGkuc3VwcG9ydC5zdWJ0cmFjdHNCb3JkZXJGb3JPdmVyZmxvd05vdFZpc2libGUmJiJ2aXNpYmxlIiE9PXIub3ZlcmZsb3cmJih1Kz1wYXJzZUZsb2F0KHIuYm9yZGVyVG9wV2lkdGgpfHwwLGMrPXBhcnNlRmxvYXQoci5ib3JkZXJMZWZ0V2lkdGgpfHwwKSxsPXI7cmV0dXJuInJlbGF0aXZlIiE9PWwucG9zaXRpb24mJiJzdGF0aWMiIT09bC5wb3NpdGlvbnx8KHUrPWEub2Zmc2V0VG9wLGMrPWEub2Zmc2V0TGVmdCksaS5zdXBwb3J0LmZpeGVkUG9zaXRpb24mJiJmaXhlZCI9PT1sLnBvc2l0aW9uJiYodSs9TWF0aC5tYXgobi5zY3JvbGxUb3AsYS5zY3JvbGxUb3ApLGMrPU1hdGgubWF4KG4uc2Nyb2xsTGVmdCxhLnNjcm9sbExlZnQpKSx7dG9wOnUsbGVmdDpjfX0saS5mbi5vZmZzZXQ9ZnVuY3Rpb24oZSl7aWYoYXJndW1lbnRzLmxlbmd0aClyZXR1cm4gdm9pZCAwPT09ZT90aGlzOnRoaXMuZWFjaCgoZnVuY3Rpb24odCl7aS5vZmZzZXQuc2V0T2Zmc2V0KHRoaXMsZSx0KX0pKTt2YXIgdD10aGlzWzBdLG49dCYmdC5vd25lckRvY3VtZW50O3JldHVybiBuP3Q9PT1uLmJvZHk/aS5vZmZzZXQuYm9keU9mZnNldCh0KTp1dCh0LG4sbi5kb2N1bWVudEVsZW1lbnQpOm51bGx9LGkub2Zmc2V0PXtib2R5T2Zmc2V0OmZ1bmN0aW9uKGUpe3ZhciB0PWUub2Zmc2V0VG9wLG49ZS5vZmZzZXRMZWZ0O3JldHVybiBpLnN1cHBvcnQuZG9lc05vdEluY2x1ZGVNYXJnaW5JbkJvZHlPZmZzZXQmJih0Kz1wYXJzZUZsb2F0KGkuY3NzKGUsIm1hcmdpblRvcCIpKXx8MCxuKz1wYXJzZUZsb2F0KGkuY3NzKGUsIm1hcmdpbkxlZnQiKSl8fDApLHt0b3A6dCxsZWZ0Om59fSxzZXRPZmZzZXQ6ZnVuY3Rpb24oZSx0LG4pe3ZhciByPWkuY3NzKGUsInBvc2l0aW9uIik7InN0YXRpYyI9PT1yJiYoZS5zdHlsZS5wb3NpdGlvbj0icmVsYXRpdmUiKTt2YXIgbyxhLHM9aShlKSxsPXMub2Zmc2V0KCksdT1pLmNzcyhlLCJ0b3AiKSxjPWkuY3NzKGUsImxlZnQiKSxmPXt9LGQ9e307KCJhYnNvbHV0ZSI9PT1yfHwiZml4ZWQiPT09cikmJmkuaW5BcnJheSgiYXV0byIsW3UsY10pPi0xPyhvPShkPXMucG9zaXRpb24oKSkudG9wLGE9ZC5sZWZ0KToobz1wYXJzZUZsb2F0KHUpfHwwLGE9cGFyc2VGbG9hdChjKXx8MCksaS5pc0Z1bmN0aW9uKHQpJiYodD10LmNhbGwoZSxuLGwpKSxudWxsIT10LnRvcCYmKGYudG9wPXQudG9wLWwudG9wK28pLG51bGwhPXQubGVmdCYmKGYubGVmdD10LmxlZnQtbC5sZWZ0K2EpLCJ1c2luZyJpbiB0P3QudXNpbmcuY2FsbChlLGYpOnMuY3NzKGYpfX0saS5mbi5leHRlbmQoe3Bvc2l0aW9uOmZ1bmN0aW9uKCl7aWYoIXRoaXNbMF0pcmV0dXJuIG51bGw7dmFyIGU9dGhpc1swXSx0PXRoaXMub2Zmc2V0UGFyZW50KCksbj10aGlzLm9mZnNldCgpLHI9ZnQudGVzdCh0WzBdLm5vZGVOYW1lKT97dG9wOjAsbGVmdDowfTp0Lm9mZnNldCgpO3JldHVybiBuLnRvcC09cGFyc2VGbG9hdChpLmNzcyhlLCJtYXJnaW5Ub3AiKSl8fDAsbi5sZWZ0LT1wYXJzZUZsb2F0KGkuY3NzKGUsIm1hcmdpbkxlZnQiKSl8fDAsci50b3ArPXBhcnNlRmxvYXQoaS5jc3ModFswXSwiYm9yZGVyVG9wV2lkdGgiKSl8fDAsci5sZWZ0Kz1wYXJzZUZsb2F0KGkuY3NzKHRbMF0sImJvcmRlckxlZnRXaWR0aCIpKXx8MCx7dG9wOm4udG9wLXIudG9wLGxlZnQ6bi5sZWZ0LXIubGVmdH19LG9mZnNldFBhcmVudDpmdW5jdGlvbigpe3JldHVybiB0aGlzLm1hcCgoZnVuY3Rpb24oKXtmb3IodmFyIGU9dGhpcy5vZmZzZXRQYXJlbnR8fHQuYm9keTtlJiYhZnQudGVzdChlLm5vZGVOYW1lKSYmInN0YXRpYyI9PT1pLmNzcyhlLCJwb3NpdGlvbiIpOyllPWUub2Zmc2V0UGFyZW50O3JldHVybiBlfSkpfX0pLGkuZWFjaCh7c2Nyb2xsTGVmdDoicGFnZVhPZmZzZXQiLHNjcm9sbFRvcDoicGFnZVlPZmZzZXQifSwoZnVuY3Rpb24oZSx0KXt2YXIgbj0vWS8udGVzdCh0KTtpLmZuW2VdPWZ1bmN0aW9uKHIpe3JldHVybiBpLmFjY2Vzcyh0aGlzLChmdW5jdGlvbihlLHIsbyl7dmFyIGE9ZHQoZSkKO2lmKHZvaWQgMD09PW8pcmV0dXJuIGE/dCBpbiBhP2FbdF06aS5zdXBwb3J0LmJveE1vZGVsJiZhLmRvY3VtZW50LmRvY3VtZW50RWxlbWVudFtyXXx8YS5kb2N1bWVudC5ib2R5W3JdOmVbcl07YT9hLnNjcm9sbFRvKG4/aShhKS5zY3JvbGxMZWZ0KCk6byxuP286aShhKS5zY3JvbGxUb3AoKSk6ZVtyXT1vfSksZSxyLGFyZ3VtZW50cy5sZW5ndGgsbnVsbCl9fSkpLGkuZWFjaCh7SGVpZ2h0OiJoZWlnaHQiLFdpZHRoOiJ3aWR0aCJ9LChmdW5jdGlvbihlLHQpe3ZhciBuPSJjbGllbnQiK2Uscj0ic2Nyb2xsIitlLG89Im9mZnNldCIrZTtpLmZuWyJpbm5lciIrZV09ZnVuY3Rpb24oKXt2YXIgZT10aGlzWzBdO3JldHVybiBlP2Uuc3R5bGU/cGFyc2VGbG9hdChpLmNzcyhlLHQsInBhZGRpbmciKSk6dGhpc1t0XSgpOm51bGx9LGkuZm5bIm91dGVyIitlXT1mdW5jdGlvbihlKXt2YXIgbj10aGlzWzBdO3JldHVybiBuP24uc3R5bGU/cGFyc2VGbG9hdChpLmNzcyhuLHQsZT8ibWFyZ2luIjoiYm9yZGVyIikpOnRoaXNbdF0oKTpudWxsfSxpLmZuW3RdPWZ1bmN0aW9uKGUpe3JldHVybiBpLmFjY2Vzcyh0aGlzLChmdW5jdGlvbihlLHQsYSl7dmFyIHMsbCx1LGM7cmV0dXJuIGkuaXNXaW5kb3coZSk/KGw9KHM9ZS5kb2N1bWVudCkuZG9jdW1lbnRFbGVtZW50W25dLGkuc3VwcG9ydC5ib3hNb2RlbCYmbHx8cy5ib2R5JiZzLmJvZHlbbl18fGwpOjk9PT1lLm5vZGVUeXBlPyhzPWUuZG9jdW1lbnRFbGVtZW50KVtuXT49c1tyXT9zW25dOk1hdGgubWF4KGUuYm9keVtyXSxzW3JdLGUuYm9keVtvXSxzW29dKTp2b2lkIDA9PT1hPyh1PWkuY3NzKGUsdCksYz1wYXJzZUZsb2F0KHUpLGkuaXNOdW1lcmljKGMpP2M6dSk6dm9pZCBpKGUpLmNzcyh0LGEpfSksdCxlLGFyZ3VtZW50cy5sZW5ndGgsbnVsbCl9fSkpLGUuZXhwb3J0cz13aW5kb3cualF1ZXJ5PXdpbmRvdy4kPWl9fV0pOw=="}},"time_used":6,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":6,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/34678.4a992aa150d8eda5f29c.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:12.991Z","timestamp":1785148032991,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/34678.4a992aa150d8eda5f29c.js HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:12 GMT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a61b1a8-2773\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Thu, 23 Jul 2026 06:16:08 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/23/2026 10:17:24\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: b8bb7eaf778fd71ba9b9afde5beb85c8\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":10099,"size_decoded":5459,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (3068)","md5":"64083c0234bda2342afde952ad595ff1","sha1":"9de336bb851649fef34561583d096a3859314ba7","sha256":"c466ce31a3b07b166d26cf6a472c415df8a148dce9df6e232151349a72e1d8fc","sha512":"a269c9660021311bb08ba6849fe621cd4162f40400e6946e2623373ecbc7e741a5ef06b7b05041d0f49c0350603fbe5e6fa62ea47a82a5fcaef9a6270014c765","ssdeep":"192:AJfFriQ107DuXc1MatsfICpyxjb9yQaAKM2pRZPu+uFRMVIMLC:AJfFrF46cTmxygQaM2pRZP6FuqMLC","tlshash":"5622b68832f1f0e643e368e440ab0406f139690a544eb5a4e396e2d36d75fc5c1bbfe6","first_seen":"2026-07-23T13:54:09.149892Z","last_seen":"2026-07-27T12:53:06.215669Z","times_seen":293,"resource_available":true,"data":"KHNlbGYud2VicGFja0NodW5rdHJhZGluZ3ZpZXc9c2VsZi53ZWJwYWNrQ2h1bmt0cmFkaW5ndmlld3x8W10pLnB1c2goW1szNDY3OF0sezcxMjc0NShyLGUsdCl7dmFyIG47IWZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO3ZhciBvLGk9MWU2LGM9MWU2LHM9IltiaWcuanNdICIsZj1zKyJJbnZhbGlkICIsdT1mKyJkZWNpbWFsIHBsYWNlcyIsYT1mKyJyb3VuZGluZyBtb2RlIixsPXMrIkRpdmlzaW9uIGJ5IHplcm8iLGg9e30sdj12b2lkIDAsZD0vXi0/KFxkKyhcLlxkKik/fFwuXGQrKShlWystXT9cZCspPyQvaTtmdW5jdGlvbiBwKHIsZSx0LG4pe3ZhciBvPXIuYztpZih0PT09diYmKHQ9ci5jb25zdHJ1Y3Rvci5STSksMCE9PXQmJjEhPT10JiYyIT09dCYmMyE9PXQpdGhyb3cgRXJyb3IoYSk7aWYoZTwxKW49Mz09PXQmJihufHwhIW9bMF0pfHwwPT09ZSYmKDE9PT10JiZvWzBdPj01fHwyPT09dCYmKG9bMF0+NXx8NT09PW9bMF0mJihufHxvWzFdIT09dikpKSxvLmxlbmd0aD0xLG4/KHIuZT1yLmUtZSsxLG9bMF09MSk6b1swXT1yLmU9MDtlbHNlIGlmKGU8by5sZW5ndGgpe2lmKG49MT09PXQmJm9bZV0+PTV8fDI9PT10JiYob1tlXT41fHw1PT09b1tlXSYmKG58fG9bZSsxXSE9PXZ8fDEmb1tlLTFdKSl8fDM9PT10JiYobnx8ISFvWzBdKSxvLmxlbmd0aD1lLS0sbilmb3IoOysrb1tlXT45OylvW2VdPTAsZS0tfHwoKytyLmUsby51bnNoaWZ0KDEpKTtmb3IoZT1vLmxlbmd0aDshb1stLWVdOylvLnBvcCgpfXJldHVybiByfWZ1bmN0aW9uIGcocixlLHQpe3ZhciBuPXIuZSxvPXIuYy5qb2luKCIiKSxpPW8ubGVuZ3RoO2lmKGUpbz1vLmNoYXJBdCgwKSsoaT4xPyIuIitvLnNsaWNlKDEpOiIiKSsobjwwPyJlIjoiZSsiKStuO2Vsc2UgaWYobjwwKXtmb3IoOysrbjspbz0iMCIrbztvPSIwLiIrb31lbHNlIGlmKG4+MClpZigrK24+aSlmb3Iobi09aTtuLS07KW8rPSIwIjtlbHNlIG48aSYmKG89by5zbGljZSgwLG4pKyIuIitvLnNsaWNlKG4pKTtlbHNlIGk+MSYmKG89by5jaGFyQXQoMCkrIi4iK28uc2xpY2UoMSkpO3JldHVybiByLnM8MCYmdD8iLSIrbzpvfWguYWJzPWZ1bmN0aW9uKCl7dmFyIHI9bmV3IHRoaXMuY29uc3RydWN0b3IodGhpcyk7cmV0dXJuIHIucz0xLHJ9LGguY21wPWZ1bmN0aW9uKHIpe3ZhciBlLHQ9dGhpcyxuPXQuYyxvPShyPW5ldyB0LmNvbnN0cnVjdG9yKHIpKS5jLGk9dC5zLGM9ci5zLHM9dC5lLGY9ci5lO2lmKCFuWzBdfHwhb1swXSlyZXR1cm4gblswXT9pOm9bMF0/LWM6MDtpZihpIT1jKXJldHVybiBpO2lmKGU9aTwwLHMhPWYpcmV0dXJuIHM+Zl5lPzE6LTE7Zm9yKGM9KHM9bi5sZW5ndGgpPChmPW8ubGVuZ3RoKT9zOmYsaT0tMTsrK2k8YzspaWYobltpXSE9b1tpXSlyZXR1cm4gbltpXT5vW2ldXmU/MTotMTtyZXR1cm4gcz09Zj8wOnM+Zl5lPzE6LTF9LGguZGl2PWZ1bmN0aW9uKHIpe3ZhciBlPXRoaXMsdD1lLmNvbnN0cnVjdG9yLG49ZS5jLG89KHI9bmV3IHQocikpLmMsYz1lLnM9PXIucz8xOi0xLHM9dC5EUDtpZihzIT09fn5zfHxzPDB8fHM+aSl0aHJvdyBFcnJvcih1KTtpZighb1swXSl0aHJvdyBFcnJvcihsKTtpZighblswXSlyZXR1cm4gci5zPWMsci5jPVtyLmU9MF0scjt2YXIgZixhLGgsZCxnLHc9by5zbGljZSgpLGI9Zj1vLmxlbmd0aCxtPW4ubGVuZ3RoLEU9bi5zbGljZSgwLGYpLGo9RS5sZW5ndGgseT1yLFA9eS5jPVtdLE89MCxrPXMrKHkuZT1lLmUtci5lKSsxO2Zvcih5LnM9YyxjPWs8MD8wOmssdy51bnNoaWZ0KDApO2orKzxmOylFLnB1c2goMCk7ZG97Zm9yKGg9MDtoPDEwO2grKyl7aWYoZiE9KGo9RS5sZW5ndGgpKWQ9Zj5qPzE6LTE7ZWxzZSBmb3IoZz0tMSxkPTA7KytnPGY7KWlmKG9bZ10hPUVbZ10pe2Q9b1tnXT5FW2ddPzE6LTE7YnJlYWt9aWYoIShkPDApKWJyZWFrO2ZvcihhPWo9PWY/bzp3O2o7KXtpZihFWy0tal08YVtqXSl7Zm9yKGc9ajtnJiYhRVstLWddOylFW2ddPTk7LS1FW2ddLEVbal0rPTEwfUVbal0tPWFbal19Zm9yKDshRVswXTspRS5zaGlmdCgpfVBbTysrXT1kP2g6KytoLEVbMF0mJmQ/RVtqXT1uW2JdfHwwOkU9W25bYl1dfXdoaWxlKChiKys8bXx8RVswXSE9PXYpJiZjLS0pO3JldHVybiBQWzBdfHwxPT1PfHwoUC5zaGlmdCgpLHkuZS0tLGstLSksTz5rJiZwKHksayx0LlJNLEVbMF0hPT12KSx5fSxoLmVxPWZ1bmN0aW9uKHIpe3JldHVybiAwPT09dGhpcy5jbXAocil9LGguZ3Q9ZnVuY3Rpb24ocil7cmV0dXJuIHRoaXMuY21wKHIpPjB9LGguZ3RlPWZ1bmN0aW9uKHIpe3JldHVybiB0aGlzLmNtcChyKT4tMX0saC5sdD1mdW5jdGlvbihyKXtyZXR1cm4gdGhpcy5jbXAocik8MH0saC5sdGU9ZnVuY3Rpb24ocil7cmV0dXJuIHRoaXMuY21wKHIpPDF9LGgubWludXM9aC5zdWI9ZnVuY3Rpb24ocil7dmFyIGUsdCxuLG8saT10aGlzLGM9aS5jb25zdHJ1Y3RvcixzPWkucyxmPShyPW5ldyBjKHIpKS5zO2lmKHMhPWYpcmV0dXJuIHIucz0tZixpLnBsdXMocik7dmFyIHU9aS5jLnNsaWNlKCksYT1pLmUsbD1yLmMsaD1yLmU7aWYoIXVbMF18fCFsWzBdKXJldHVybiBsWzBdP3Iucz0tZjp1WzBdP3I9bmV3IGMoaSk6ci5zPTEscjtpZihzPWEtaCl7Zm9yKChvPXM8MCk/KHM9LXMsbj11KTooaD1hLG49bCksbi5yZXZlcnNlKCksZj1zO2YtLTspbi5wdXNoKDApO24ucmV2ZXJzZSgpfWVsc2UgZm9yKHQ9KChvPXUubGVuZ3RoPGwubGVuZ3RoKT91OmwpLmxlbmd0aCxzPWY9MDtmPHQ7ZisrKWlmKHVbZl0hPWxbZl0pe289dVtmXTxsW2ZdO2JyZWFrfWlmKG8mJihuPXUsdT1sLGw9bixyLnM9LXIucyksKGY9KHQ9bC5sZW5ndGgpLShlPXUubGVuZ3RoKSk+MClmb3IoO2YtLTspdVtlKytdPTA7Zm9yKGY9ZTt0PnM7KXtpZih1Wy0tdF08bFt0XSl7Zm9yKGU9dDtlJiYhdVstLWVdOyl1W2VdPTk7LS11W2VdLHVbdF0rPTEwfXVbdF0tPWxbdF19Zm9yKDswPT09dVstLWZdOyl1LnBvcCgpO2Zvcig7MD09PXVbMF07KXUuc2hpZnQoKSwtLWg7cmV0dXJuIHVbMF18fChyLnM9MSx1PVtoPTBdKSxyLmM9dSxyLmU9aCxyfSxoLm1vZD1mdW5jdGlvbihyKXt2YXIgZSx0PXRoaXMsbj10LmNvbnN0cnVjdG9yLG89dC5zLGk9KHI9bmV3IG4ocikpLnMKO2lmKCFyLmNbMF0pdGhyb3cgRXJyb3IobCk7cmV0dXJuIHQucz1yLnM9MSxlPTE9PXIuY21wKHQpLHQucz1vLHIucz1pLGU/bmV3IG4odCk6KG89bi5EUCxpPW4uUk0sbi5EUD1uLlJNPTAsdD10LmRpdihyKSxuLkRQPW8sbi5STT1pLHRoaXMubWludXModC50aW1lcyhyKSkpfSxoLnBsdXM9aC5hZGQ9ZnVuY3Rpb24ocil7dmFyIGUsdCxuLG89dGhpcyxpPW8uY29uc3RydWN0b3I7aWYocj1uZXcgaShyKSxvLnMhPXIucylyZXR1cm4gci5zPS1yLnMsby5taW51cyhyKTt2YXIgYz1vLmUscz1vLmMsZj1yLmUsdT1yLmM7aWYoIXNbMF18fCF1WzBdKXJldHVybiB1WzBdfHwoc1swXT9yPW5ldyBpKG8pOnIucz1vLnMpLHI7aWYocz1zLnNsaWNlKCksZT1jLWYpe2ZvcihlPjA/KGY9YyxuPXUpOihlPS1lLG49cyksbi5yZXZlcnNlKCk7ZS0tOyluLnB1c2goMCk7bi5yZXZlcnNlKCl9Zm9yKHMubGVuZ3RoLXUubGVuZ3RoPDAmJihuPXUsdT1zLHM9biksZT11Lmxlbmd0aCx0PTA7ZTtzW2VdJT0xMCl0PShzWy0tZV09c1tlXSt1W2VdK3QpLzEwfDA7Zm9yKHQmJihzLnVuc2hpZnQodCksKytmKSxlPXMubGVuZ3RoOzA9PT1zWy0tZV07KXMucG9wKCk7cmV0dXJuIHIuYz1zLHIuZT1mLHJ9LGgucG93PWZ1bmN0aW9uKHIpe3ZhciBlPXRoaXMsdD1uZXcgZS5jb25zdHJ1Y3RvcigiMSIpLG49dCxvPXI8MDtpZihyIT09fn5yfHxyPC0xZTZ8fHI+Yyl0aHJvdyBFcnJvcihmKyJleHBvbmVudCIpO2ZvcihvJiYocj0tcik7MSZyJiYobj1uLnRpbWVzKGUpKSxyPj49MTspZT1lLnRpbWVzKGUpO3JldHVybiBvP3QuZGl2KG4pOm59LGgucHJlYz1mdW5jdGlvbihyLGUpe2lmKHIhPT1+fnJ8fHI8MXx8cj5pKXRocm93IEVycm9yKGYrInByZWNpc2lvbiIpO3JldHVybiBwKG5ldyB0aGlzLmNvbnN0cnVjdG9yKHRoaXMpLHIsZSl9LGgucm91bmQ9ZnVuY3Rpb24ocixlKXtpZihyPT09dilyPTA7ZWxzZSBpZihyIT09fn5yfHxyPC1pfHxyPmkpdGhyb3cgRXJyb3IodSk7cmV0dXJuIHAobmV3IHRoaXMuY29uc3RydWN0b3IodGhpcykscit0aGlzLmUrMSxlKX0saC5zcXJ0PWZ1bmN0aW9uKCl7dmFyIHIsZSx0LG49dGhpcyxvPW4uY29uc3RydWN0b3IsaT1uLnMsYz1uLmUsZj1uZXcgbygiMC41Iik7aWYoIW4uY1swXSlyZXR1cm4gbmV3IG8obik7aWYoaTwwKXRocm93IEVycm9yKHMrIk5vIHNxdWFyZSByb290Iik7MD09PShpPU1hdGguc3FydChuKyIiKSl8fGk9PT0xLzA/KChlPW4uYy5qb2luKCIiKSkubGVuZ3RoK2MmMXx8KGUrPSIwIiksYz0oKGMrMSkvMnwwKS0oYzwwfHwxJmMpLHI9bmV3IG8oKChpPU1hdGguc3FydChlKSk9PTEvMD8iNWUiOihpPWkudG9FeHBvbmVudGlhbCgpKS5zbGljZSgwLGkuaW5kZXhPZigiZSIpKzEpKStjKSk6cj1uZXcgbyhpKyIiKSxjPXIuZSsoby5EUCs9NCk7ZG97dD1yLHI9Zi50aW1lcyh0LnBsdXMobi5kaXYodCkpKX13aGlsZSh0LmMuc2xpY2UoMCxjKS5qb2luKCIiKSE9PXIuYy5zbGljZSgwLGMpLmpvaW4oIiIpKTtyZXR1cm4gcChyLChvLkRQLT00KStyLmUrMSxvLlJNKX0saC50aW1lcz1oLm11bD1mdW5jdGlvbihyKXt2YXIgZSx0PXRoaXMsbj10LmNvbnN0cnVjdG9yLG89dC5jLGk9KHI9bmV3IG4ocikpLmMsYz1vLmxlbmd0aCxzPWkubGVuZ3RoLGY9dC5lLHU9ci5lO2lmKHIucz10LnM9PXIucz8xOi0xLCFvWzBdfHwhaVswXSlyZXR1cm4gci5jPVtyLmU9MF0scjtmb3Ioci5lPWYrdSxjPHMmJihlPW8sbz1pLGk9ZSx1PWMsYz1zLHM9dSksZT1uZXcgQXJyYXkodT1jK3MpO3UtLTspZVt1XT0wO2ZvcihmPXM7Zi0tOyl7Zm9yKHM9MCx1PWMrZjt1PmY7KXM9ZVt1XStpW2ZdKm9bdS1mLTFdK3MsZVt1LS1dPXMlMTAscz1zLzEwfDA7ZVt1XT1zfWZvcihzPysrci5lOmUuc2hpZnQoKSxmPWUubGVuZ3RoOyFlWy0tZl07KWUucG9wKCk7cmV0dXJuIHIuYz1lLHJ9LGgudG9FeHBvbmVudGlhbD1mdW5jdGlvbihyLGUpe3ZhciB0PXRoaXMsbj10LmNbMF07aWYociE9PXYpe2lmKHIhPT1+fnJ8fHI8MHx8cj5pKXRocm93IEVycm9yKHUpO2Zvcih0PXAobmV3IHQuY29uc3RydWN0b3IodCksKytyLGUpO3QuYy5sZW5ndGg8cjspdC5jLnB1c2goMCl9cmV0dXJuIGcodCwhMCwhIW4pfSxoLnRvRml4ZWQ9ZnVuY3Rpb24ocixlKXt2YXIgdD10aGlzLG49dC5jWzBdO2lmKHIhPT12KXtpZihyIT09fn5yfHxyPDB8fHI+aSl0aHJvdyBFcnJvcih1KTtmb3Iocj1yKyh0PXAobmV3IHQuY29uc3RydWN0b3IodCkscit0LmUrMSxlKSkuZSsxO3QuYy5sZW5ndGg8cjspdC5jLnB1c2goMCl9cmV0dXJuIGcodCwhMSwhIW4pfSxoLnRvSlNPTj1oLnRvU3RyaW5nPWZ1bmN0aW9uKCl7dmFyIHI9dGhpcyxlPXIuY29uc3RydWN0b3I7cmV0dXJuIGcocixyLmU8PWUuTkV8fHIuZT49ZS5QRSwhIXIuY1swXSl9LGgudG9OdW1iZXI9ZnVuY3Rpb24oKXt2YXIgcj1OdW1iZXIoZyh0aGlzLCEwLCEwKSk7aWYoITA9PT10aGlzLmNvbnN0cnVjdG9yLnN0cmljdCYmIXRoaXMuZXEoci50b1N0cmluZygpKSl0aHJvdyBFcnJvcihzKyJJbXByZWNpc2UgY29udmVyc2lvbiIpO3JldHVybiByfSxoLnRvUHJlY2lzaW9uPWZ1bmN0aW9uKHIsZSl7dmFyIHQ9dGhpcyxuPXQuY29uc3RydWN0b3Isbz10LmNbMF07aWYociE9PXYpe2lmKHIhPT1+fnJ8fHI8MXx8cj5pKXRocm93IEVycm9yKGYrInByZWNpc2lvbiIpO2Zvcih0PXAobmV3IG4odCkscixlKTt0LmMubGVuZ3RoPHI7KXQuYy5wdXNoKDApfXJldHVybiBnKHQscjw9dC5lfHx0LmU8PW4uTkV8fHQuZT49bi5QRSwhIW8pfSxoLnZhbHVlT2Y9ZnVuY3Rpb24oKXt2YXIgcj10aGlzLGU9ci5jb25zdHJ1Y3RvcjtpZighMD09PWUuc3RyaWN0KXRocm93IEVycm9yKHMrInZhbHVlT2YgZGlzYWxsb3dlZCIpO3JldHVybiBnKHIsci5lPD1lLk5FfHxyLmU+PWUuUEUsITApfSxvPWZ1bmN0aW9uIHIoKXtmdW5jdGlvbiBlKHQpe3ZhciBuPXRoaXM7aWYoIShuIGluc3RhbmNlb2YgZSkpcmV0dXJuIHQ9PT12P3IoKTpuZXcgZSh0KTtpZih0IGluc3RhbmNlb2YgZSluLnM9dC5zLG4uZT10LmUsbi5jPXQuYy5zbGljZSgpO2Vsc2V7aWYoInN0cmluZyIhPXR5cGVvZiB0KXsKaWYoITA9PT1lLnN0cmljdCl0aHJvdyBUeXBlRXJyb3IoZisibnVtYmVyIik7dD0wPT09dCYmMS90PDA/Ii0wIjpTdHJpbmcodCl9IWZ1bmN0aW9uKHIsZSl7dmFyIHQsbixvO2lmKCFkLnRlc3QoZSkpdGhyb3cgRXJyb3IoZisibnVtYmVyIik7ci5zPSItIj09ZS5jaGFyQXQoMCk/KGU9ZS5zbGljZSgxKSwtMSk6MSwodD1lLmluZGV4T2YoIi4iKSk+LTEmJihlPWUucmVwbGFjZSgiLiIsIiIpKTsobj1lLnNlYXJjaCgvZS9pKSk+MD8odDwwJiYodD1uKSx0Kz0rZS5zbGljZShuKzEpLGU9ZS5zdWJzdHJpbmcoMCxuKSk6dDwwJiYodD1lLmxlbmd0aCk7Zm9yKG89ZS5sZW5ndGgsbj0wO248byYmIjAiPT1lLmNoYXJBdChuKTspKytuO2lmKG49PW8pci5jPVtyLmU9MF07ZWxzZXtmb3IoO28+MCYmIjAiPT1lLmNoYXJBdCgtLW8pOyk7Zm9yKHIuZT10LW4tMSxyLmM9W10sdD0wO248PW87KXIuY1t0KytdPStlLmNoYXJBdChuKyspfX0obix0KX1uLmNvbnN0cnVjdG9yPWV9cmV0dXJuIGUucHJvdG90eXBlPWgsZS5EUD0yMCxlLlJNPTEsZS5ORT0tNyxlLlBFPTIxLGUuc3RyaWN0PWZhbHNlLGUucm91bmREb3duPTAsZS5yb3VuZEhhbGZVcD0xLGUucm91bmRIYWxmRXZlbj0yLGUucm91bmRVcD0zLGV9KCksby5kZWZhdWx0PW8uQmlnPW8sdm9pZCAwPT09KG49ZnVuY3Rpb24oKXtyZXR1cm4gb30uY2FsbChlLHQsZSxyKSl8fChyLmV4cG9ydHM9bil9KCl9LDg3Mjg4MShyLGUsdCl7InVzZSBzdHJpY3QiO3QuZChlLHtkZWZhdWx0OigpPT5OfSk7dmFyIG49dCg4ODY1MTQpLG89dCgyNjkzNjYpO2NvbnN0IGk9ZnVuY3Rpb24ocixlKXtmb3IodmFyIHQ9LTEsbj1udWxsPT1yPzA6ci5sZW5ndGg7Kyt0PG47KWlmKGUoclt0XSx0LHIpKXJldHVybiEwO3JldHVybiExfTt2YXIgYz10KDcxMjgwMSk7Y29uc3Qgcz1mdW5jdGlvbihyLGUsdCxuLHMsZil7dmFyIHU9MSZ0LGE9ci5sZW5ndGgsbD1lLmxlbmd0aDtpZihhIT1sJiYhKHUmJmw+YSkpcmV0dXJuITE7dmFyIGg9Zi5nZXQociksdj1mLmdldChlKTtpZihoJiZ2KXJldHVybiBoPT1lJiZ2PT1yO3ZhciBkPS0xLHA9ITAsZz0yJnQ/bmV3IG8uZGVmYXVsdDp2b2lkIDA7Zm9yKGYuc2V0KHIsZSksZi5zZXQoZSxyKTsrK2Q8YTspe3ZhciB3PXJbZF0sYj1lW2RdO2lmKG4pdmFyIG09dT9uKGIsdyxkLGUscixmKTpuKHcsYixkLHIsZSxmKTtpZih2b2lkIDAhPT1tKXtpZihtKWNvbnRpbnVlO3A9ITE7YnJlYWt9aWYoZyl7aWYoIWkoZSwoZnVuY3Rpb24ocixlKXtpZighKDAsYy5kZWZhdWx0KShnLGUpJiYodz09PXJ8fHModyxyLHQsbixmKSkpcmV0dXJuIGcucHVzaChlKX0pKSl7cD0hMTticmVha319ZWxzZSBpZih3IT09YiYmIXModyxiLHQsbixmKSl7cD0hMTticmVha319cmV0dXJuIGYuZGVsZXRlKHIpLGYuZGVsZXRlKGUpLHB9O3ZhciBmPXQoODcyOTk5KSx1PXQoODY1MzMwKSxhPXQoOTEwNzc4KTtjb25zdCBsPWZ1bmN0aW9uKHIpe3ZhciBlPS0xLHQ9QXJyYXkoci5zaXplKTtyZXR1cm4gci5mb3JFYWNoKChmdW5jdGlvbihyLG4pe3RbKytlXT1bbixyXX0pKSx0fTt2YXIgaD10KDk3MjAxNyksdj1mLmRlZmF1bHQ/Zi5kZWZhdWx0LnByb3RvdHlwZTp2b2lkIDAsZD12P3YudmFsdWVPZjp2b2lkIDA7Y29uc3QgcD1mdW5jdGlvbihyLGUsdCxuLG8saSxjKXtzd2l0Y2godCl7Y2FzZSJbb2JqZWN0IERhdGFWaWV3XSI6aWYoci5ieXRlTGVuZ3RoIT1lLmJ5dGVMZW5ndGh8fHIuYnl0ZU9mZnNldCE9ZS5ieXRlT2Zmc2V0KXJldHVybiExO3I9ci5idWZmZXIsZT1lLmJ1ZmZlcjtjYXNlIltvYmplY3QgQXJyYXlCdWZmZXJdIjpyZXR1cm4hKHIuYnl0ZUxlbmd0aCE9ZS5ieXRlTGVuZ3RofHwhaShuZXcgdS5kZWZhdWx0KHIpLG5ldyB1LmRlZmF1bHQoZSkpKTtjYXNlIltvYmplY3QgQm9vbGVhbl0iOmNhc2UiW29iamVjdCBEYXRlXSI6Y2FzZSJbb2JqZWN0IE51bWJlcl0iOnJldHVybigwLGEuZGVmYXVsdCkoK3IsK2UpO2Nhc2UiW29iamVjdCBFcnJvcl0iOnJldHVybiByLm5hbWU9PWUubmFtZSYmci5tZXNzYWdlPT1lLm1lc3NhZ2U7Y2FzZSJbb2JqZWN0IFJlZ0V4cF0iOmNhc2UiW29iamVjdCBTdHJpbmddIjpyZXR1cm4gcj09ZSsiIjtjYXNlIltvYmplY3QgTWFwXSI6dmFyIGY9bDtjYXNlIltvYmplY3QgU2V0XSI6dmFyIHY9MSZuO2lmKGZ8fChmPWguZGVmYXVsdCksci5zaXplIT1lLnNpemUmJiF2KXJldHVybiExO3ZhciBwPWMuZ2V0KHIpO2lmKHApcmV0dXJuIHA9PWU7bnw9MixjLnNldChyLGUpO3ZhciBnPXMoZihyKSxmKGUpLG4sbyxpLGMpO3JldHVybiBjLmRlbGV0ZShyKSxnO2Nhc2UiW29iamVjdCBTeW1ib2xdIjppZihkKXJldHVybiBkLmNhbGwocik9PWQuY2FsbChlKX1yZXR1cm4hMX07dmFyIGc9dCg4MDYyNDApLHc9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTtjb25zdCBiPWZ1bmN0aW9uKHIsZSx0LG4sbyxpKXt2YXIgYz0xJnQscz0oMCxnLmRlZmF1bHQpKHIpLGY9cy5sZW5ndGg7aWYoZiE9KDAsZy5kZWZhdWx0KShlKS5sZW5ndGgmJiFjKXJldHVybiExO2Zvcih2YXIgdT1mO3UtLTspe3ZhciBhPXNbdV07aWYoIShjP2EgaW4gZTp3LmNhbGwoZSxhKSkpcmV0dXJuITF9dmFyIGw9aS5nZXQociksaD1pLmdldChlKTtpZihsJiZoKXJldHVybiBsPT1lJiZoPT1yO3ZhciB2PSEwO2kuc2V0KHIsZSksaS5zZXQoZSxyKTtmb3IodmFyIGQ9YzsrK3U8Zjspe3ZhciBwPXJbYT1zW3VdXSxiPWVbYV07aWYobil2YXIgbT1jP24oYixwLGEsZSxyLGkpOm4ocCxiLGEscixlLGkpO2lmKCEodm9pZCAwPT09bT9wPT09Ynx8byhwLGIsdCxuLGkpOm0pKXt2PSExO2JyZWFrfWR8fChkPSJjb25zdHJ1Y3RvciI9PWEpfWlmKHYmJiFkKXt2YXIgRT1yLmNvbnN0cnVjdG9yLGo9ZS5jb25zdHJ1Y3RvcjtFPT1qfHwhKCJjb25zdHJ1Y3RvciJpbiByKXx8ISgiY29uc3RydWN0b3IiaW4gZSl8fCJmdW5jdGlvbiI9PXR5cGVvZiBFJiZFIGluc3RhbmNlb2YgRSYmImZ1bmN0aW9uIj09dHlwZW9mIGomJmogaW5zdGFuY2VvZiBqfHwodj0hMSl9cmV0dXJuIGkuZGVsZXRlKHIpLGkuZGVsZXRlKGUpLHZ9Cjt2YXIgbT10KDk2OTc4NSksRT10KDI5NTYzNSksaj10KDY1OTAxOCkseT10KDE2NTI2NyksUD0iW29iamVjdCBBcmd1bWVudHNdIixPPSJbb2JqZWN0IEFycmF5XSIsaz0iW29iamVjdCBPYmplY3RdIixBPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7Y29uc3QgRD1mdW5jdGlvbihyLGUsdCxvLGksYyl7dmFyIGY9KDAsRS5kZWZhdWx0KShyKSx1PSgwLEUuZGVmYXVsdCkoZSksYT1mP086KDAsbS5kZWZhdWx0KShyKSxsPXU/TzooMCxtLmRlZmF1bHQpKGUpLGg9KGE9YT09UD9rOmEpPT1rLHY9KGw9bD09UD9rOmwpPT1rLGQ9YT09bDtpZihkJiYoMCxqLmRlZmF1bHQpKHIpKXtpZighKDAsai5kZWZhdWx0KShlKSlyZXR1cm4hMTtmPSEwLGg9ITF9aWYoZCYmIWgpcmV0dXJuIGN8fChjPW5ldyBuLmRlZmF1bHQpLGZ8fCgwLHkuZGVmYXVsdCkocik/cyhyLGUsdCxvLGksYyk6cChyLGUsYSx0LG8saSxjKTtpZighKDEmdCkpe3ZhciBnPWgmJkEuY2FsbChyLCJfX3dyYXBwZWRfXyIpLHc9diYmQS5jYWxsKGUsIl9fd3JhcHBlZF9fIik7aWYoZ3x8dyl7dmFyIEQ9Zz9yLnZhbHVlKCk6cixNPXc/ZS52YWx1ZSgpOmU7cmV0dXJuIGN8fChjPW5ldyBuLmRlZmF1bHQpLGkoRCxNLHQsbyxjKX19cmV0dXJuISFkJiYoY3x8KGM9bmV3IG4uZGVmYXVsdCksYihyLGUsdCxvLGksYykpfTt2YXIgTT10KDM2MDYyMCk7Y29uc3QgTj1mdW5jdGlvbiByKGUsdCxuLG8saSl7cmV0dXJuIGU9PT10fHwobnVsbD09ZXx8bnVsbD09dHx8ISgwLE0uZGVmYXVsdCkoZSkmJiEoMCxNLmRlZmF1bHQpKHQpP2UhPWUmJnQhPXQ6RChlLHQsbixvLHIsaSkpfX0sMTY3NTAyKHIsZSx0KXsidXNlIHN0cmljdCI7dC5kKGUse2RlZmF1bHQ6KCk9Pm99KTt2YXIgbj10KDg3Mjg4MSk7Y29uc3Qgbz1mdW5jdGlvbihyLGUpe3JldHVybigwLG4uZGVmYXVsdCkocixlKX19fV0pOw=="}},"time_used":9,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":9,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/35390.241fb141acd655a5ddb0.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.020Z","timestamp":1785148034020,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/35390.241fb141acd655a5ddb0.js HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a61b1a8-711d\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Thu, 23 Jul 2026 06:16:08 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/23/2026 10:17:28\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 96a6b7fee39d08f1d23a8c8335077e8b\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":28957,"size_decoded":11488,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, Unicode text, UTF-8 text, with very long lines (8724)","md5":"d04af10cb7b934f96922d211010fa647","sha1":"90e4cefe76d45bfee65c51cbe842dc30e8982711","sha256":"e1df7a1b17e8d4b49da381253394d4a46418e863db8410ab93612f71170a8941","sha512":"94759d474d0ab5ea3f8f4986c84217076e35ede171b9694b89f53d8d48025ae6ad62f90aee26bb625c1160829c6216144a5044698dacbd468dcd7d6113a88edf","ssdeep":"768:SEKRgP4jmN+0Z1r2ogUUUh3W//YWXgARQ:lramN+s1r35Z","tlshash":"8cd2768b72666dd6347f36e2cc6f8e4ee1ba189a3484e074d7e6f5c039e005e8131e65","first_seen":"2026-07-25T03:24:57.334067Z","last_seen":"2026-07-27T12:07:26.457245Z","times_seen":19,"resource_available":true,"data":"KHNlbGYud2VicGFja0NodW5rdHJhZGluZ3ZpZXc9c2VsZi53ZWJwYWNrQ2h1bmt0cmFkaW5ndmlld3x8W10pLnB1c2goW1szNTM5MCw2NDY0NCw5NDU2MCw5NTI3M10sezQ3NDEzNihkLHUsZSl7InVzZSBzdHJpY3QiO2UuZCh1LHthcnJheTooKT0+byxjaGFubmVsOigpPT5zLGZ1bmM6KCk9Pm4saXRlcmF0b3I6KCk9PmksbXVsdGljYXN0OigpPT55LG5vdFVuZGVmOigpPT5mLHBhdHRlcm46KCk9PmwscHJvbWlzZTooKT0+YSxzdHJpbmc6KCk9PmMsc3RyaW5nYWJsZUZ1bmM6KCk9PnAsc3ltYm9sOigpPT5iLHVuZGVmOigpPT5yfSk7dmFyIHQ9ZSg1NjQ1MjEpLHI9ZnVuY3Rpb24oZCl7cmV0dXJuIG51bGw9PWR9LGY9ZnVuY3Rpb24oZCl7cmV0dXJuIG51bGwhPWR9LG49ZnVuY3Rpb24oZCl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIGR9LGM9ZnVuY3Rpb24oZCl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiBkfSxvPUFycmF5LmlzQXJyYXksYT1mdW5jdGlvbihkKXtyZXR1cm4gZCYmbihkLnRoZW4pfSxpPWZ1bmN0aW9uKGQpe3JldHVybiBkJiZuKGQubmV4dCkmJm4oZC50aHJvdyl9LGw9ZnVuY3Rpb24gZCh1KXtyZXR1cm4gdSYmKGModSl8fGIodSl8fG4odSl8fG8odSkmJnUuZXZlcnkoZCkpfSxzPWZ1bmN0aW9uKGQpe3JldHVybiBkJiZuKGQudGFrZSkmJm4oZC5jbG9zZSl9LHA9ZnVuY3Rpb24oZCl7cmV0dXJuIG4oZCkmJmQuaGFzT3duUHJvcGVydHkoInRvU3RyaW5nIil9LGI9ZnVuY3Rpb24oZCl7cmV0dXJuIEJvb2xlYW4oZCkmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJmQuY29uc3RydWN0b3I9PT1TeW1ib2wmJmQhPT1TeW1ib2wucHJvdG90eXBlfSx5PWZ1bmN0aW9uKGQpe3JldHVybiBzKGQpJiZkW3QuTVVMVElDQVNUXX19LDg1MzMzNihkLHUpe3ZhciBlLHQscjt0PVt1XSxlPWZ1bmN0aW9uKGQpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiB1KGQpe2lmKEFycmF5LmlzQXJyYXkoZCkpe2Zvcih2YXIgdT0wLGU9QXJyYXkoZC5sZW5ndGgpO3U8ZC5sZW5ndGg7dSsrKWVbdV09ZFt1XTtyZXR1cm4gZX1yZXR1cm4gQXJyYXkuZnJvbShkKX1PYmplY3QuZGVmaW5lUHJvcGVydHkoZCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9ITE7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3cpe3ZhciB0PXtnZXQgcGFzc2l2ZSgpe2U9ITB9fTt3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigidGVzdFBhc3NpdmUiLG51bGwsdCksd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoInRlc3RQYXNzaXZlIixudWxsLHQpfXZhciByPSJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93JiZ3aW5kb3cubmF2aWdhdG9yJiZ3aW5kb3cubmF2aWdhdG9yLnBsYXRmb3JtJiYvaVAoYWR8aG9uZXxvZCkvLnRlc3Qod2luZG93Lm5hdmlnYXRvci5wbGF0Zm9ybSksZj1bXSxuPSExLGM9LTEsbz12b2lkIDAsYT12b2lkIDAsaT1mdW5jdGlvbihkKXtyZXR1cm4gZi5zb21lKChmdW5jdGlvbih1KXtyZXR1cm4hKCF1Lm9wdGlvbnMuYWxsb3dUb3VjaE1vdmV8fCF1Lm9wdGlvbnMuYWxsb3dUb3VjaE1vdmUoZCkpfSkpfSxsPWZ1bmN0aW9uKGQpe3ZhciB1PWR8fHdpbmRvdy5ldmVudDtyZXR1cm4hIWkodS50YXJnZXQpfHwxPHUudG91Y2hlcy5sZW5ndGh8fCh1LnByZXZlbnREZWZhdWx0JiZ1LnByZXZlbnREZWZhdWx0KCksITEpfSxzPWZ1bmN0aW9uKCl7c2V0VGltZW91dCgoZnVuY3Rpb24oKXt2b2lkIDAhPT1hJiYoZG9jdW1lbnQuYm9keS5zdHlsZS5wYWRkaW5nUmlnaHQ9YSxhPXZvaWQgMCksdm9pZCAwIT09byYmKGRvY3VtZW50LmJvZHkuc3R5bGUub3ZlcmZsb3c9byxvPXZvaWQgMCl9KSl9O2QuZGlzYWJsZUJvZHlTY3JvbGw9ZnVuY3Rpb24oZCx0KXtpZihyKXtpZighZClyZXR1cm4gdm9pZCBjb25zb2xlLmVycm9yKCJkaXNhYmxlQm9keVNjcm9sbCB1bnN1Y2Nlc3NmdWwgLSB0YXJnZXRFbGVtZW50IG11c3QgYmUgcHJvdmlkZWQgd2hlbiBjYWxsaW5nIGRpc2FibGVCb2R5U2Nyb2xsIG9uIElPUyBkZXZpY2VzLiIpO2lmKGQmJiFmLnNvbWUoKGZ1bmN0aW9uKHUpe3JldHVybiB1LnRhcmdldEVsZW1lbnQ9PT1kfSkpKXt2YXIgcz17dGFyZ2V0RWxlbWVudDpkLG9wdGlvbnM6dHx8e319O2Y9W10uY29uY2F0KHUoZiksW3NdKSxkLm9udG91Y2hzdGFydD1mdW5jdGlvbihkKXsxPT09ZC50YXJnZXRUb3VjaGVzLmxlbmd0aCYmKGM9ZC50YXJnZXRUb3VjaGVzWzBdLmNsaWVudFkpfSxkLm9udG91Y2htb3ZlPWZ1bmN0aW9uKHUpe3ZhciBlLHQscixmOzE9PT11LnRhcmdldFRvdWNoZXMubGVuZ3RoJiYodD1kLGY9KGU9dSkudGFyZ2V0VG91Y2hlc1swXS5jbGllbnRZLWMsIWkoZS50YXJnZXQpJiYodCYmMD09PXQuc2Nyb2xsVG9wJiYwPGZ8fChyPXQpJiZyLnNjcm9sbEhlaWdodC1yLnNjcm9sbFRvcDw9ci5jbGllbnRIZWlnaHQmJmY8MD9sKGUpOmUuc3RvcFByb3BhZ2F0aW9uKCkpKX0sbnx8KGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoInRvdWNobW92ZSIsbCxlP3twYXNzaXZlOiExfTp2b2lkIDApLG49ITApfX1lbHNle2I9dCxzZXRUaW1lb3V0KChmdW5jdGlvbigpe2lmKHZvaWQgMD09PWEpe3ZhciBkPSEhYiYmITA9PT1iLnJlc2VydmVTY3JvbGxCYXJHYXAsdT13aW5kb3cuaW5uZXJXaWR0aC1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50V2lkdGg7ZCYmMDx1JiYoYT1kb2N1bWVudC5ib2R5LnN0eWxlLnBhZGRpbmdSaWdodCxkb2N1bWVudC5ib2R5LnN0eWxlLnBhZGRpbmdSaWdodD11KyJweCIpfXZvaWQgMD09PW8mJihvPWRvY3VtZW50LmJvZHkuc3R5bGUub3ZlcmZsb3csZG9jdW1lbnQuYm9keS5zdHlsZS5vdmVyZmxvdz0iaGlkZGVuIil9KSk7dmFyIHA9e3RhcmdldEVsZW1lbnQ6ZCxvcHRpb25zOnR8fHt9fTtmPVtdLmNvbmNhdCh1KGYpLFtwXSl9dmFyIGJ9LGQuY2xlYXJBbGxCb2R5U2Nyb2xsTG9ja3M9ZnVuY3Rpb24oKXtyPyhmLmZvckVhY2goKGZ1bmN0aW9uKGQpe2QudGFyZ2V0RWxlbWVudC5vbnRvdWNoc3RhcnQ9bnVsbCxkLnRhcmdldEVsZW1lbnQub250b3VjaG1vdmU9bnVsbH0pKSxuJiYoZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigidG91Y2htb3ZlIixsLGU/ewpwYXNzaXZlOiExfTp2b2lkIDApLG49ITEpLGY9W10sYz0tMSk6KHMoKSxmPVtdKX0sZC5lbmFibGVCb2R5U2Nyb2xsPWZ1bmN0aW9uKGQpe2lmKHIpe2lmKCFkKXJldHVybiB2b2lkIGNvbnNvbGUuZXJyb3IoImVuYWJsZUJvZHlTY3JvbGwgdW5zdWNjZXNzZnVsIC0gdGFyZ2V0RWxlbWVudCBtdXN0IGJlIHByb3ZpZGVkIHdoZW4gY2FsbGluZyBlbmFibGVCb2R5U2Nyb2xsIG9uIElPUyBkZXZpY2VzLiIpO2Qub250b3VjaHN0YXJ0PW51bGwsZC5vbnRvdWNobW92ZT1udWxsLGY9Zi5maWx0ZXIoKGZ1bmN0aW9uKHUpe3JldHVybiB1LnRhcmdldEVsZW1lbnQhPT1kfSkpLG4mJjA9PT1mLmxlbmd0aCYmKGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInRvdWNobW92ZSIsbCxlP3twYXNzaXZlOiExfTp2b2lkIDApLG49ITEpfWVsc2UgMT09PWYubGVuZ3RoJiZmWzBdLnRhcmdldEVsZW1lbnQ9PT1kPyhzKCksZj1bXSk6Zj1mLmZpbHRlcigoZnVuY3Rpb24odSl7cmV0dXJuIHUudGFyZ2V0RWxlbWVudCE9PWR9KSl9fSx2b2lkIDA9PT0ocj0iZnVuY3Rpb24iPT10eXBlb2YgZT9lLmFwcGx5KHUsdCk6ZSl8fChkLmV4cG9ydHM9cil9LDkxNDQ4NyhkLHUpe3ZhciBlOyFmdW5jdGlvbigpeyJ1c2Ugc3RyaWN0Ijt2YXIgdD17fS5oYXNPd25Qcm9wZXJ0eTtmdW5jdGlvbiByKCl7Zm9yKHZhciBkPVtdLHU9MDt1PGFyZ3VtZW50cy5sZW5ndGg7dSsrKXt2YXIgZT1hcmd1bWVudHNbdV07aWYoZSl7dmFyIGY9dHlwZW9mIGU7aWYoInN0cmluZyI9PT1mfHwibnVtYmVyIj09PWYpZC5wdXNoKGUpO2Vsc2UgaWYoQXJyYXkuaXNBcnJheShlKSYmZS5sZW5ndGgpe3ZhciBuPXIuYXBwbHkobnVsbCxlKTtuJiZkLnB1c2gobil9ZWxzZSBpZigib2JqZWN0Ij09PWYpZm9yKHZhciBjIGluIGUpdC5jYWxsKGUsYykmJmVbY10mJmQucHVzaChjKX19cmV0dXJuIGQuam9pbigiICIpfWQuZXhwb3J0cz8oci5kZWZhdWx0PXIsZC5leHBvcnRzPXIpOnZvaWQgMD09PShlPWZ1bmN0aW9uKCl7cmV0dXJuIHJ9LmFwcGx5KHUsW10pKXx8KGQuZXhwb3J0cz1lKX0oKX0sNjMyMjIwKGQpeyJ1c2Ugc3RyaWN0Ijt2YXIgdT1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O2Z1bmN0aW9uIGUoZCx1KXtyZXR1cm4gZD09PXU/MCE9PWR8fDAhPT11fHwxL2Q9PTEvdTpkIT1kJiZ1IT11fWQuZXhwb3J0cz1mdW5jdGlvbihkLHQpe2lmKGUoZCx0KSlyZXR1cm4hMDtpZigib2JqZWN0IiE9dHlwZW9mIGR8fG51bGw9PT1kfHwib2JqZWN0IiE9dHlwZW9mIHR8fG51bGw9PT10KXJldHVybiExO3ZhciByPU9iamVjdC5rZXlzKGQpLGY9T2JqZWN0LmtleXModCk7aWYoci5sZW5ndGghPT1mLmxlbmd0aClyZXR1cm4hMTtmb3IodmFyIG49MDtuPHIubGVuZ3RoO24rKylpZighdS5jYWxsKHQscltuXSl8fCFlKGRbcltuXV0sdFtyW25dXSkpcmV0dXJuITE7cmV0dXJuITB9fSw5OTQxNzgoZCx1LGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgdD1lKDk2NzEyMSk7ZnVuY3Rpb24gcigpe31mdW5jdGlvbiBmKCl7fWYucmVzZXRXYXJuaW5nQ2FjaGU9cixkLmV4cG9ydHM9ZnVuY3Rpb24oKXtmdW5jdGlvbiBkKGQsdSxlLHIsZixuKXtpZihuIT09dCl7dmFyIGM9bmV3IEVycm9yKCJDYWxsaW5nIFByb3BUeXBlcyB2YWxpZGF0b3JzIGRpcmVjdGx5IGlzIG5vdCBzdXBwb3J0ZWQgYnkgdGhlIGBwcm9wLXR5cGVzYCBwYWNrYWdlLiBVc2UgUHJvcFR5cGVzLmNoZWNrUHJvcFR5cGVzKCkgdG8gY2FsbCB0aGVtLiBSZWFkIG1vcmUgYXQgaHR0cDovL2ZiLm1lL3VzZS1jaGVjay1wcm9wLXR5cGVzIik7dGhyb3cgYy5uYW1lPSJJbnZhcmlhbnQgVmlvbGF0aW9uIixjfX1mdW5jdGlvbiB1KCl7cmV0dXJuIGR9ZC5pc1JlcXVpcmVkPWQ7dmFyIGU9e2FycmF5OmQsYm9vbDpkLGZ1bmM6ZCxudW1iZXI6ZCxvYmplY3Q6ZCxzdHJpbmc6ZCxzeW1ib2w6ZCxhbnk6ZCxhcnJheU9mOnUsZWxlbWVudDpkLGVsZW1lbnRUeXBlOmQsaW5zdGFuY2VPZjp1LG5vZGU6ZCxvYmplY3RPZjp1LG9uZU9mOnUsb25lT2ZUeXBlOnUsc2hhcGU6dSxleGFjdDp1LGNoZWNrUHJvcFR5cGVzOmYscmVzZXRXYXJuaW5nQ2FjaGU6cn07cmV0dXJuIGUuUHJvcFR5cGVzPWUsZX19LDIyMTg5NihkLHUsZSl7ZC5leHBvcnRzPWUoOTk0MTc4KSgpfSw5NjcxMjEoZCl7InVzZSBzdHJpY3QiO2QuZXhwb3J0cz0iU0VDUkVUX0RPX05PVF9QQVNTX1RISVNfT1JfWU9VX1dJTExfQkVfRklSRUQifSwxMjkzNjUoZCx1LGUpeyJ1c2Ugc3RyaWN0IjshZnVuY3Rpb24gZCgpe2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgX19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fJiYiZnVuY3Rpb24iPT10eXBlb2YgX19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fLmNoZWNrRENFKXRyeXtfX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18uY2hlY2tEQ0UoZCl9Y2F0Y2goZCl7Y29uc29sZS5lcnJvcihkKX19KCksZC5leHBvcnRzPWUoNTMyMzg3KX0sMTIyNzQ5KGQsdSl7InVzZSBzdHJpY3QiO3ZhciBlPVN5bWJvbC5mb3IoInJlYWN0LmVsZW1lbnQiKSx0PVN5bWJvbC5mb3IoInJlYWN0LnBvcnRhbCIpLHI9U3ltYm9sLmZvcigicmVhY3QuZnJhZ21lbnQiKSxmPVN5bWJvbC5mb3IoInJlYWN0LnN0cmljdF9tb2RlIiksbj1TeW1ib2wuZm9yKCJyZWFjdC5wcm9maWxlciIpLGM9U3ltYm9sLmZvcigicmVhY3QucHJvdmlkZXIiKSxvPVN5bWJvbC5mb3IoInJlYWN0LmNvbnRleHQiKSxhPVN5bWJvbC5mb3IoInJlYWN0LmZvcndhcmRfcmVmIiksaT1TeW1ib2wuZm9yKCJyZWFjdC5zdXNwZW5zZSIpLGw9U3ltYm9sLmZvcigicmVhY3QubWVtbyIpLHM9U3ltYm9sLmZvcigicmVhY3QubGF6eSIpLHA9U3ltYm9sLml0ZXJhdG9yO3ZhciBiPXtpc01vdW50ZWQ6ZnVuY3Rpb24oKXtyZXR1cm4hMX0sZW5xdWV1ZUZvcmNlVXBkYXRlOmZ1bmN0aW9uKCl7fSxlbnF1ZXVlUmVwbGFjZVN0YXRlOmZ1bmN0aW9uKCl7fSxlbnF1ZXVlU2V0U3RhdGU6ZnVuY3Rpb24oKXt9fSx5PU9iamVjdC5hc3NpZ24sdj17fTtmdW5jdGlvbiBoKGQsdSxlKXt0aGlzLnByb3BzPWQsdGhpcy5jb250ZXh0PXUsdGhpcy5yZWZzPXYsCnRoaXMudXBkYXRlcj1lfHxifWZ1bmN0aW9uIG0oKXt9ZnVuY3Rpb24gZyhkLHUsZSl7dGhpcy5wcm9wcz1kLHRoaXMuY29udGV4dD11LHRoaXMucmVmcz12LHRoaXMudXBkYXRlcj1lfHxifWgucHJvdG90eXBlLmlzUmVhY3RDb21wb25lbnQ9e30saC5wcm90b3R5cGUuc2V0U3RhdGU9ZnVuY3Rpb24oZCx1KXtpZigib2JqZWN0IiE9dHlwZW9mIGQmJiJmdW5jdGlvbiIhPXR5cGVvZiBkJiZudWxsIT1kKXRocm93IEVycm9yKCJzZXRTdGF0ZSguLi4pOiB0YWtlcyBhbiBvYmplY3Qgb2Ygc3RhdGUgdmFyaWFibGVzIHRvIHVwZGF0ZSBvciBhIGZ1bmN0aW9uIHdoaWNoIHJldHVybnMgYW4gb2JqZWN0IG9mIHN0YXRlIHZhcmlhYmxlcy4iKTt0aGlzLnVwZGF0ZXIuZW5xdWV1ZVNldFN0YXRlKHRoaXMsZCx1LCJzZXRTdGF0ZSIpfSxoLnByb3RvdHlwZS5mb3JjZVVwZGF0ZT1mdW5jdGlvbihkKXt0aGlzLnVwZGF0ZXIuZW5xdWV1ZUZvcmNlVXBkYXRlKHRoaXMsZCwiZm9yY2VVcGRhdGUiKX0sbS5wcm90b3R5cGU9aC5wcm90b3R5cGU7dmFyIHc9Zy5wcm90b3R5cGU9bmV3IG07dy5jb25zdHJ1Y3Rvcj1nLHkodyxoLnByb3RvdHlwZSksdy5pc1B1cmVSZWFjdENvbXBvbmVudD0hMDt2YXIgTz1BcnJheS5pc0FycmF5LF89T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSxFPXtjdXJyZW50Om51bGx9LFM9e2tleTohMCxyZWY6ITAsX19zZWxmOiEwLF9fc291cmNlOiEwfTtmdW5jdGlvbiBqKGQsdSx0KXt2YXIgcixmPXt9LG49bnVsbCxjPW51bGw7aWYobnVsbCE9dSlmb3IociBpbiB2b2lkIDAhPT11LnJlZiYmKGM9dS5yZWYpLHZvaWQgMCE9PXUua2V5JiYobj0iIit1LmtleSksdSlfLmNhbGwodSxyKSYmIVMuaGFzT3duUHJvcGVydHkocikmJihmW3JdPXVbcl0pO3ZhciBvPWFyZ3VtZW50cy5sZW5ndGgtMjtpZigxPT09bylmLmNoaWxkcmVuPXQ7ZWxzZSBpZigxPG8pe2Zvcih2YXIgYT1BcnJheShvKSxpPTA7aTxvO2krKylhW2ldPWFyZ3VtZW50c1tpKzJdO2YuY2hpbGRyZW49YX1pZihkJiZkLmRlZmF1bHRQcm9wcylmb3IociBpbiBvPWQuZGVmYXVsdFByb3BzKXZvaWQgMD09PWZbcl0mJihmW3JdPW9bcl0pO3JldHVybnskJHR5cGVvZjplLHR5cGU6ZCxrZXk6bixyZWY6Yyxwcm9wczpmLF9vd25lcjpFLmN1cnJlbnR9fWZ1bmN0aW9uIEMoZCl7cmV0dXJuIm9iamVjdCI9PXR5cGVvZiBkJiZudWxsIT09ZCYmZC4kJHR5cGVvZj09PWV9dmFyIHg9L1wvKy9nO2Z1bmN0aW9uIFAoZCx1KXtyZXR1cm4ib2JqZWN0Ij09dHlwZW9mIGQmJm51bGwhPT1kJiZudWxsIT1kLmtleT9mdW5jdGlvbihkKXt2YXIgdT17Ij0iOiI9MCIsIjoiOiI9MiJ9O3JldHVybiIkIitkLnJlcGxhY2UoL1s9Ol0vZywoZnVuY3Rpb24oZCl7cmV0dXJuIHVbZF19KSl9KCIiK2Qua2V5KTp1LnRvU3RyaW5nKDM2KX1mdW5jdGlvbiBrKGQsdSxyLGYsbil7dmFyIGM9dHlwZW9mIGQ7InVuZGVmaW5lZCIhPT1jJiYiYm9vbGVhbiIhPT1jfHwoZD1udWxsKTt2YXIgbz0hMTtpZihudWxsPT09ZClvPSEwO2Vsc2Ugc3dpdGNoKGMpe2Nhc2Uic3RyaW5nIjpjYXNlIm51bWJlciI6bz0hMDticmVhaztjYXNlIm9iamVjdCI6c3dpdGNoKGQuJCR0eXBlb2Ype2Nhc2UgZTpjYXNlIHQ6bz0hMH19aWYobylyZXR1cm4gbj1uKG89ZCksZD0iIj09PWY/Ii4iK1AobywwKTpmLE8obik/KHI9IiIsbnVsbCE9ZCYmKHI9ZC5yZXBsYWNlKHgsIiQmLyIpKyIvIiksayhuLHUsciwiIiwoZnVuY3Rpb24oZCl7cmV0dXJuIGR9KSkpOm51bGwhPW4mJihDKG4pJiYobj1mdW5jdGlvbihkLHUpe3JldHVybnskJHR5cGVvZjplLHR5cGU6ZC50eXBlLGtleTp1LHJlZjpkLnJlZixwcm9wczpkLnByb3BzLF9vd25lcjpkLl9vd25lcn19KG4scisoIW4ua2V5fHxvJiZvLmtleT09PW4ua2V5PyIiOigiIituLmtleSkucmVwbGFjZSh4LCIkJi8iKSsiLyIpK2QpKSx1LnB1c2gobikpLDE7aWYobz0wLGY9IiI9PT1mPyIuIjpmKyI6IixPKGQpKWZvcih2YXIgYT0wO2E8ZC5sZW5ndGg7YSsrKXt2YXIgaT1mK1AoYz1kW2FdLGEpO28rPWsoYyx1LHIsaSxuKX1lbHNlIGlmKGk9ZnVuY3Rpb24oZCl7cmV0dXJuIG51bGw9PT1kfHwib2JqZWN0IiE9dHlwZW9mIGQ/bnVsbDoiZnVuY3Rpb24iPT10eXBlb2YoZD1wJiZkW3BdfHxkWyJAQGl0ZXJhdG9yIl0pP2Q6bnVsbH0oZCksImZ1bmN0aW9uIj09dHlwZW9mIGkpZm9yKGQ9aS5jYWxsKGQpLGE9MDshKGM9ZC5uZXh0KCkpLmRvbmU7KW8rPWsoYz1jLnZhbHVlLHUscixpPWYrUChjLGErKyksbik7ZWxzZSBpZigib2JqZWN0Ij09PWMpdGhyb3cgdT1TdHJpbmcoZCksRXJyb3IoIk9iamVjdHMgYXJlIG5vdCB2YWxpZCBhcyBhIFJlYWN0IGNoaWxkIChmb3VuZDogIisoIltvYmplY3QgT2JqZWN0XSI9PT11PyJvYmplY3Qgd2l0aCBrZXlzIHsiK09iamVjdC5rZXlzKGQpLmpvaW4oIiwgIikrIn0iOnUpKyIpLiBJZiB5b3UgbWVhbnQgdG8gcmVuZGVyIGEgY29sbGVjdGlvbiBvZiBjaGlsZHJlbiwgdXNlIGFuIGFycmF5IGluc3RlYWQuIik7cmV0dXJuIG99ZnVuY3Rpb24gVChkLHUsZSl7aWYobnVsbD09ZClyZXR1cm4gZDt2YXIgdD1bXSxyPTA7cmV0dXJuIGsoZCx0LCIiLCIiLChmdW5jdGlvbihkKXtyZXR1cm4gdS5jYWxsKGUsZCxyKyspfSkpLHR9ZnVuY3Rpb24gUihkKXtpZigtMT09PWQuX3N0YXR1cyl7dmFyIHU9ZC5fcmVzdWx0Oyh1PXUoKSkudGhlbigoZnVuY3Rpb24odSl7MCE9PWQuX3N0YXR1cyYmLTEhPT1kLl9zdGF0dXN8fChkLl9zdGF0dXM9MSxkLl9yZXN1bHQ9dSl9KSwoZnVuY3Rpb24odSl7MCE9PWQuX3N0YXR1cyYmLTEhPT1kLl9zdGF0dXN8fChkLl9zdGF0dXM9MixkLl9yZXN1bHQ9dSl9KSksLTE9PT1kLl9zdGF0dXMmJihkLl9zdGF0dXM9MCxkLl9yZXN1bHQ9dSl9aWYoMT09PWQuX3N0YXR1cylyZXR1cm4gZC5fcmVzdWx0LmRlZmF1bHQ7dGhyb3cgZC5fcmVzdWx0fXZhciBBPXtjdXJyZW50Om51bGx9LE49e3RyYW5zaXRpb246bnVsbH0sST17UmVhY3RDdXJyZW50RGlzcGF0Y2hlcjpBLFJlYWN0Q3VycmVudEJhdGNoQ29uZmlnOk4sUmVhY3RDdXJyZW50T3duZXI6RX07dS5DaGlsZHJlbj17bWFwOlQsCmZvckVhY2g6ZnVuY3Rpb24oZCx1LGUpe1QoZCwoZnVuY3Rpb24oKXt1LmFwcGx5KHRoaXMsYXJndW1lbnRzKX0pLGUpfSxjb3VudDpmdW5jdGlvbihkKXt2YXIgdT0wO3JldHVybiBUKGQsKGZ1bmN0aW9uKCl7dSsrfSkpLHV9LHRvQXJyYXk6ZnVuY3Rpb24oZCl7cmV0dXJuIFQoZCwoZnVuY3Rpb24oZCl7cmV0dXJuIGR9KSl8fFtdfSxvbmx5OmZ1bmN0aW9uKGQpe2lmKCFDKGQpKXRocm93IEVycm9yKCJSZWFjdC5DaGlsZHJlbi5vbmx5IGV4cGVjdGVkIHRvIHJlY2VpdmUgYSBzaW5nbGUgUmVhY3QgZWxlbWVudCBjaGlsZC4iKTtyZXR1cm4gZH19LHUuQ29tcG9uZW50PWgsdS5GcmFnbWVudD1yLHUuUHJvZmlsZXI9bix1LlB1cmVDb21wb25lbnQ9Zyx1LlN0cmljdE1vZGU9Zix1LlN1c3BlbnNlPWksdS5fX1NFQ1JFVF9JTlRFUk5BTFNfRE9fTk9UX1VTRV9PUl9ZT1VfV0lMTF9CRV9GSVJFRD1JLHUuY2xvbmVFbGVtZW50PWZ1bmN0aW9uKGQsdSx0KXtpZihudWxsPT1kKXRocm93IEVycm9yKCJSZWFjdC5jbG9uZUVsZW1lbnQoLi4uKTogVGhlIGFyZ3VtZW50IG11c3QgYmUgYSBSZWFjdCBlbGVtZW50LCBidXQgeW91IHBhc3NlZCAiK2QrIi4iKTt2YXIgcj15KHt9LGQucHJvcHMpLGY9ZC5rZXksbj1kLnJlZixjPWQuX293bmVyO2lmKG51bGwhPXUpe2lmKHZvaWQgMCE9PXUucmVmJiYobj11LnJlZixjPUUuY3VycmVudCksdm9pZCAwIT09dS5rZXkmJihmPSIiK3Uua2V5KSxkLnR5cGUmJmQudHlwZS5kZWZhdWx0UHJvcHMpdmFyIG89ZC50eXBlLmRlZmF1bHRQcm9wcztmb3IoYSBpbiB1KV8uY2FsbCh1LGEpJiYhUy5oYXNPd25Qcm9wZXJ0eShhKSYmKHJbYV09dm9pZCAwPT09dVthXSYmdm9pZCAwIT09bz9vW2FdOnVbYV0pfXZhciBhPWFyZ3VtZW50cy5sZW5ndGgtMjtpZigxPT09YSlyLmNoaWxkcmVuPXQ7ZWxzZSBpZigxPGEpe289QXJyYXkoYSk7Zm9yKHZhciBpPTA7aTxhO2krKylvW2ldPWFyZ3VtZW50c1tpKzJdO3IuY2hpbGRyZW49b31yZXR1cm57JCR0eXBlb2Y6ZSx0eXBlOmQudHlwZSxrZXk6ZixyZWY6bixwcm9wczpyLF9vd25lcjpjfX0sdS5jcmVhdGVDb250ZXh0PWZ1bmN0aW9uKGQpe3JldHVybihkPXskJHR5cGVvZjpvLF9jdXJyZW50VmFsdWU6ZCxfY3VycmVudFZhbHVlMjpkLF90aHJlYWRDb3VudDowLFByb3ZpZGVyOm51bGwsQ29uc3VtZXI6bnVsbCxfZGVmYXVsdFZhbHVlOm51bGwsX2dsb2JhbE5hbWU6bnVsbH0pLlByb3ZpZGVyPXskJHR5cGVvZjpjLF9jb250ZXh0OmR9LGQuQ29uc3VtZXI9ZH0sdS5jcmVhdGVFbGVtZW50PWosdS5jcmVhdGVGYWN0b3J5PWZ1bmN0aW9uKGQpe3ZhciB1PWouYmluZChudWxsLGQpO3JldHVybiB1LnR5cGU9ZCx1fSx1LmNyZWF0ZVJlZj1mdW5jdGlvbigpe3JldHVybntjdXJyZW50Om51bGx9fSx1LmZvcndhcmRSZWY9ZnVuY3Rpb24oZCl7cmV0dXJueyQkdHlwZW9mOmEscmVuZGVyOmR9fSx1LmlzVmFsaWRFbGVtZW50PUMsdS5sYXp5PWZ1bmN0aW9uKGQpe3JldHVybnskJHR5cGVvZjpzLF9wYXlsb2FkOntfc3RhdHVzOi0xLF9yZXN1bHQ6ZH0sX2luaXQ6Un19LHUubWVtbz1mdW5jdGlvbihkLHUpe3JldHVybnskJHR5cGVvZjpsLHR5cGU6ZCxjb21wYXJlOnZvaWQgMD09PXU/bnVsbDp1fX0sdS5zdGFydFRyYW5zaXRpb249ZnVuY3Rpb24oZCl7dmFyIHU9Ti50cmFuc2l0aW9uO04udHJhbnNpdGlvbj17fTt0cnl7ZCgpfWZpbmFsbHl7Ti50cmFuc2l0aW9uPXV9fSx1LnVuc3RhYmxlX2FjdD1mdW5jdGlvbigpe3Rocm93IEVycm9yKCJhY3QoLi4uKSBpcyBub3Qgc3VwcG9ydGVkIGluIHByb2R1Y3Rpb24gYnVpbGRzIG9mIFJlYWN0LiIpfSx1LnVzZUNhbGxiYWNrPWZ1bmN0aW9uKGQsdSl7cmV0dXJuIEEuY3VycmVudC51c2VDYWxsYmFjayhkLHUpfSx1LnVzZUNvbnRleHQ9ZnVuY3Rpb24oZCl7cmV0dXJuIEEuY3VycmVudC51c2VDb250ZXh0KGQpfSx1LnVzZURlYnVnVmFsdWU9ZnVuY3Rpb24oKXt9LHUudXNlRGVmZXJyZWRWYWx1ZT1mdW5jdGlvbihkKXtyZXR1cm4gQS5jdXJyZW50LnVzZURlZmVycmVkVmFsdWUoZCl9LHUudXNlRWZmZWN0PWZ1bmN0aW9uKGQsdSl7cmV0dXJuIEEuY3VycmVudC51c2VFZmZlY3QoZCx1KX0sdS51c2VJZD1mdW5jdGlvbigpe3JldHVybiBBLmN1cnJlbnQudXNlSWQoKX0sdS51c2VJbXBlcmF0aXZlSGFuZGxlPWZ1bmN0aW9uKGQsdSxlKXtyZXR1cm4gQS5jdXJyZW50LnVzZUltcGVyYXRpdmVIYW5kbGUoZCx1LGUpfSx1LnVzZUluc2VydGlvbkVmZmVjdD1mdW5jdGlvbihkLHUpe3JldHVybiBBLmN1cnJlbnQudXNlSW5zZXJ0aW9uRWZmZWN0KGQsdSl9LHUudXNlTGF5b3V0RWZmZWN0PWZ1bmN0aW9uKGQsdSl7cmV0dXJuIEEuY3VycmVudC51c2VMYXlvdXRFZmZlY3QoZCx1KX0sdS51c2VNZW1vPWZ1bmN0aW9uKGQsdSl7cmV0dXJuIEEuY3VycmVudC51c2VNZW1vKGQsdSl9LHUudXNlUmVkdWNlcj1mdW5jdGlvbihkLHUsZSl7cmV0dXJuIEEuY3VycmVudC51c2VSZWR1Y2VyKGQsdSxlKX0sdS51c2VSZWY9ZnVuY3Rpb24oZCl7cmV0dXJuIEEuY3VycmVudC51c2VSZWYoZCl9LHUudXNlU3RhdGU9ZnVuY3Rpb24oZCl7cmV0dXJuIEEuY3VycmVudC51c2VTdGF0ZShkKX0sdS51c2VTeW5jRXh0ZXJuYWxTdG9yZT1mdW5jdGlvbihkLHUsZSl7cmV0dXJuIEEuY3VycmVudC51c2VTeW5jRXh0ZXJuYWxTdG9yZShkLHUsZSl9LHUudXNlVHJhbnNpdGlvbj1mdW5jdGlvbigpe3JldHVybiBBLmN1cnJlbnQudXNlVHJhbnNpdGlvbigpfSx1LnZlcnNpb249IjE4LjIuMCJ9LDc3OTQ3NChkLHUsZSl7InVzZSBzdHJpY3QiO2QuZXhwb3J0cz1lKDEyMjc0OSl9LDc4NzcyNChkLHUsZSl7InVzZSBzdHJpY3QiO2UuZCh1LHthcHBseU1pZGRsZXdhcmU6KCk9PmIsYmluZEFjdGlvbkNyZWF0b3JzOigpPT5zLGNvbWJpbmVSZWR1Y2VyczooKT0+aSxjb21wb3NlOigpPT5wLGNyZWF0ZVN0b3JlOigpPT5hfSk7dmFyIHQ9ZSgyMjQxMDcpO2Z1bmN0aW9uIHIoZCl7CnJldHVybiJNaW5pZmllZCBSZWR1eCBlcnJvciAjIitkKyI7IHZpc2l0IGh0dHBzOi8vcmVkdXguanMub3JnL0Vycm9ycz9jb2RlPSIrZCsiIGZvciB0aGUgZnVsbCBtZXNzYWdlIG9yIHVzZSB0aGUgbm9uLW1pbmlmaWVkIGRldiBlbnZpcm9ubWVudCBmb3IgZnVsbCBlcnJvcnMuICJ9dmFyIGY9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmU3ltYm9sLm9ic2VydmFibGV8fCJAQG9ic2VydmFibGUiLG49ZnVuY3Rpb24oKXtyZXR1cm4gTWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyaW5nKDcpLnNwbGl0KCIiKS5qb2luKCIuIil9LGM9e0lOSVQ6IkBAcmVkdXgvSU5JVCIrbigpLFJFUExBQ0U6IkBAcmVkdXgvUkVQTEFDRSIrbigpLFBST0JFX1VOS05PV05fQUNUSU9OOmZ1bmN0aW9uKCl7cmV0dXJuIkBAcmVkdXgvUFJPQkVfVU5LTk9XTl9BQ1RJT04iK24oKX19O2Z1bmN0aW9uIG8oZCl7aWYoIm9iamVjdCIhPXR5cGVvZiBkfHxudWxsPT09ZClyZXR1cm4hMTtmb3IodmFyIHU9ZDtudWxsIT09T2JqZWN0LmdldFByb3RvdHlwZU9mKHUpOyl1PU9iamVjdC5nZXRQcm90b3R5cGVPZih1KTtyZXR1cm4gT2JqZWN0LmdldFByb3RvdHlwZU9mKGQpPT09dX1mdW5jdGlvbiBhKGQsdSxlKXt2YXIgdDtpZigiZnVuY3Rpb24iPT10eXBlb2YgdSYmImZ1bmN0aW9uIj09dHlwZW9mIGV8fCJmdW5jdGlvbiI9PXR5cGVvZiBlJiYiZnVuY3Rpb24iPT10eXBlb2YgYXJndW1lbnRzWzNdKXRocm93IG5ldyBFcnJvcihyKDApKTtpZigiZnVuY3Rpb24iPT10eXBlb2YgdSYmdm9pZCAwPT09ZSYmKGU9dSx1PXZvaWQgMCksdm9pZCAwIT09ZSl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGUpdGhyb3cgbmV3IEVycm9yKHIoMSkpO3JldHVybiBlKGEpKGQsdSl9aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGQpdGhyb3cgbmV3IEVycm9yKHIoMikpO3ZhciBuPWQsaT11LGw9W10scz1sLHA9ITE7ZnVuY3Rpb24gYigpe3M9PT1sJiYocz1sLnNsaWNlKCkpfWZ1bmN0aW9uIHkoKXtpZihwKXRocm93IG5ldyBFcnJvcihyKDMpKTtyZXR1cm4gaX1mdW5jdGlvbiB2KGQpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBkKXRocm93IG5ldyBFcnJvcihyKDQpKTtpZihwKXRocm93IG5ldyBFcnJvcihyKDUpKTt2YXIgdT0hMDtyZXR1cm4gYigpLHMucHVzaChkKSxmdW5jdGlvbigpe2lmKHUpe2lmKHApdGhyb3cgbmV3IEVycm9yKHIoNikpO3U9ITEsYigpO3ZhciBlPXMuaW5kZXhPZihkKTtzLnNwbGljZShlLDEpLGw9bnVsbH19fWZ1bmN0aW9uIGgoZCl7aWYoIW8oZCkpdGhyb3cgbmV3IEVycm9yKHIoNykpO2lmKHZvaWQgMD09PWQudHlwZSl0aHJvdyBuZXcgRXJyb3Iocig4KSk7aWYocCl0aHJvdyBuZXcgRXJyb3Iocig5KSk7dHJ5e3A9ITAsaT1uKGksZCl9ZmluYWxseXtwPSExfWZvcih2YXIgdT1sPXMsZT0wO2U8dS5sZW5ndGg7ZSsrKXsoMCx1W2VdKSgpfXJldHVybiBkfXJldHVybiBoKHt0eXBlOmMuSU5JVH0pLCh0PXtkaXNwYXRjaDpoLHN1YnNjcmliZTp2LGdldFN0YXRlOnkscmVwbGFjZVJlZHVjZXI6ZnVuY3Rpb24oZCl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGQpdGhyb3cgbmV3IEVycm9yKHIoMTApKTtuPWQsaCh7dHlwZTpjLlJFUExBQ0V9KX19KVtmXT1mdW5jdGlvbigpe3ZhciBkLHU9djtyZXR1cm4oZD17c3Vic2NyaWJlOmZ1bmN0aW9uKGQpe2lmKCJvYmplY3QiIT10eXBlb2YgZHx8bnVsbD09PWQpdGhyb3cgbmV3IEVycm9yKHIoMTEpKTtmdW5jdGlvbiBlKCl7ZC5uZXh0JiZkLm5leHQoeSgpKX1yZXR1cm4gZSgpLHt1bnN1YnNjcmliZTp1KGUpfX19KVtmXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSxkfSx0fWZ1bmN0aW9uIGkoZCl7Zm9yKHZhciB1PU9iamVjdC5rZXlzKGQpLGU9e30sdD0wO3Q8dS5sZW5ndGg7dCsrKXt2YXIgZj11W3RdOzAsImZ1bmN0aW9uIj09dHlwZW9mIGRbZl0mJihlW2ZdPWRbZl0pfXZhciBuLG89T2JqZWN0LmtleXMoZSk7dHJ5eyFmdW5jdGlvbihkKXtPYmplY3Qua2V5cyhkKS5mb3JFYWNoKChmdW5jdGlvbih1KXt2YXIgZT1kW3VdO2lmKHZvaWQgMD09PWUodm9pZCAwLHt0eXBlOmMuSU5JVH0pKXRocm93IG5ldyBFcnJvcihyKDEyKSk7aWYodm9pZCAwPT09ZSh2b2lkIDAse3R5cGU6Yy5QUk9CRV9VTktOT1dOX0FDVElPTigpfSkpdGhyb3cgbmV3IEVycm9yKHIoMTMpKX0pKX0oZSl9Y2F0Y2goZCl7bj1kfXJldHVybiBmdW5jdGlvbihkLHUpe2lmKHZvaWQgMD09PWQmJihkPXt9KSxuKXRocm93IG47Zm9yKHZhciB0PSExLGY9e30sYz0wO2M8by5sZW5ndGg7YysrKXt2YXIgYT1vW2NdLGk9ZVthXSxsPWRbYV0scz1pKGwsdSk7aWYodm9pZCAwPT09cyl7dSYmdS50eXBlO3Rocm93IG5ldyBFcnJvcihyKDE0KSl9ZlthXT1zLHQ9dHx8cyE9PWx9cmV0dXJuKHQ9dHx8by5sZW5ndGghPT1PYmplY3Qua2V5cyhkKS5sZW5ndGgpP2Y6ZH19ZnVuY3Rpb24gbChkLHUpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiB1KGQuYXBwbHkodGhpcyxhcmd1bWVudHMpKX19ZnVuY3Rpb24gcyhkLHUpe2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBkKXJldHVybiBsKGQsdSk7aWYoIm9iamVjdCIhPXR5cGVvZiBkfHxudWxsPT09ZCl0aHJvdyBuZXcgRXJyb3IocigxNikpO3ZhciBlPXt9O2Zvcih2YXIgdCBpbiBkKXt2YXIgZj1kW3RdOyJmdW5jdGlvbiI9PXR5cGVvZiBmJiYoZVt0XT1sKGYsdSkpfXJldHVybiBlfWZ1bmN0aW9uIHAoKXtmb3IodmFyIGQ9YXJndW1lbnRzLmxlbmd0aCx1PW5ldyBBcnJheShkKSxlPTA7ZTxkO2UrKyl1W2VdPWFyZ3VtZW50c1tlXTtyZXR1cm4gMD09PXUubGVuZ3RoP2Z1bmN0aW9uKGQpe3JldHVybiBkfToxPT09dS5sZW5ndGg/dVswXTp1LnJlZHVjZSgoZnVuY3Rpb24oZCx1KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gZCh1LmFwcGx5KHZvaWQgMCxhcmd1bWVudHMpKX19KSl9ZnVuY3Rpb24gYigpe2Zvcih2YXIgZD1hcmd1bWVudHMubGVuZ3RoLHU9bmV3IEFycmF5KGQpLGU9MDtlPGQ7ZSsrKXVbZV09YXJndW1lbnRzW2VdO3JldHVybiBmdW5jdGlvbihkKXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgZT1kLmFwcGx5KHZvaWQgMCxhcmd1bWVudHMpLGY9ZnVuY3Rpb24oKXsKdGhyb3cgbmV3IEVycm9yKHIoMTUpKX0sbj17Z2V0U3RhdGU6ZS5nZXRTdGF0ZSxkaXNwYXRjaDpmdW5jdGlvbigpe3JldHVybiBmLmFwcGx5KHZvaWQgMCxhcmd1bWVudHMpfX0sYz11Lm1hcCgoZnVuY3Rpb24oZCl7cmV0dXJuIGQobil9KSk7cmV0dXJuIGY9cC5hcHBseSh2b2lkIDAsYykoZS5kaXNwYXRjaCksKDAsdC5kZWZhdWx0KSgoMCx0LmRlZmF1bHQpKHt9LGUpLHt9LHtkaXNwYXRjaDpmfSl9fX19LDI2MDYwMyhkLHUsZSl7InVzZSBzdHJpY3QiO2UuZCh1LHtkZWZhdWx0OigpPT50fSk7Y29uc3QgdD1mdW5jdGlvbigpe3ZhciBkPXtiYXNlOiJodHRwczovL3R3ZW1vamkubWF4Y2RuLmNvbS92LzEzLjAuMS8iLGV4dDoiLnBuZyIsc2l6ZToiNzJ4NzIiLGNsYXNzTmFtZToiZW1vamkiLGNvbnZlcnQ6e2Zyb21Db2RlUG9pbnQ6ZnVuY3Rpb24oZCl7dmFyIHU9InN0cmluZyI9PXR5cGVvZiBkP3BhcnNlSW50KGQsMTYpOmQ7aWYodTw2NTUzNilyZXR1cm4gYyh1KTtyZXR1cm4gYyg1NTI5NisoKHUtPTY1NTM2KT4+MTApLDU2MzIwKygxMDIzJnUpKX0sdG9Db2RlUG9pbnQ6aH0sb25lcnJvcjpmdW5jdGlvbigpe3RoaXMucGFyZW50Tm9kZSYmdGhpcy5wYXJlbnROb2RlLnJlcGxhY2VDaGlsZChvKHRoaXMuYWx0LCExKSx0aGlzKX0scGFyc2U6ZnVuY3Rpb24odSxlKXtlJiYiZnVuY3Rpb24iIT10eXBlb2YgZXx8KGU9e2NhbGxiYWNrOmV9KTtyZXR1cm4oInN0cmluZyI9PXR5cGVvZiB1P3A6cykodSx7Y2FsbGJhY2s6ZS5jYWxsYmFja3x8YSxhdHRyaWJ1dGVzOiJmdW5jdGlvbiI9PXR5cGVvZiBlLmF0dHJpYnV0ZXM/ZS5hdHRyaWJ1dGVzOnksYmFzZToic3RyaW5nIj09dHlwZW9mIGUuYmFzZT9lLmJhc2U6ZC5iYXNlLGV4dDplLmV4dHx8ZC5leHQsc2l6ZTplLmZvbGRlcnx8KHQ9ZS5zaXplfHxkLnNpemUsIm51bWJlciI9PXR5cGVvZiB0P3QrIngiK3Q6dCksY2xhc3NOYW1lOmUuY2xhc3NOYW1lfHxkLmNsYXNzTmFtZSxvbmVycm9yOmUub25lcnJvcnx8ZC5vbmVycm9yfSk7dmFyIHR9LHJlcGxhY2U6dix0ZXN0OmZ1bmN0aW9uKGQpe2UubGFzdEluZGV4PTA7dmFyIHU9ZS50ZXN0KGQpO3JldHVybiBlLmxhc3RJbmRleD0wLHV9fSx1PXsiJiI6IiZhbXA7IiwiPCI6IiZsdDsiLCI+IjoiJmd0OyIsIiciOiImIzM5OyIsJyInOiImcXVvdDsiCn0sZT0vKD86XHVkODNkXHVkYzY4XHVkODNjXHVkZmZiXHUyMDBkXHVkODNlXHVkZDFkXHUyMDBkXHVkODNkXHVkYzY4XHVkODNjW1x1ZGZmYy1cdWRmZmZdfFx1ZDgzZFx1ZGM2OFx1ZDgzY1x1ZGZmY1x1MjAwZFx1ZDgzZVx1ZGQxZFx1MjAwZFx1ZDgzZFx1ZGM2OFx1ZDgzY1tcdWRmZmJcdWRmZmQtXHVkZmZmXXxcdWQ4M2RcdWRjNjhcdWQ4M2NcdWRmZmRcdTIwMGRcdWQ4M2VcdWRkMWRcdTIwMGRcdWQ4M2RcdWRjNjhcdWQ4M2NbXHVkZmZiXHVkZmZjXHVkZmZlXHVkZmZmXXxcdWQ4M2RcdWRjNjhcdWQ4M2NcdWRmZmVcdTIwMGRcdWQ4M2VcdWRkMWRcdTIwMGRcdWQ4M2RcdWRjNjhcdWQ4M2NbXHVkZmZiLVx1ZGZmZFx1ZGZmZl18XHVkODNkXHVkYzY4XHVkODNjXHVkZmZmXHUyMDBkXHVkODNlXHVkZDFkXHUyMDBkXHVkODNkXHVkYzY4XHVkODNjW1x1ZGZmYi1cdWRmZmVdfFx1ZDgzZFx1ZGM2OVx1ZDgzY1x1ZGZmYlx1MjAwZFx1ZDgzZVx1ZGQxZFx1MjAwZFx1ZDgzZFx1ZGM2OFx1ZDgzY1tcdWRmZmMtXHVkZmZmXXxcdWQ4M2RcdWRjNjlcdWQ4M2NcdWRmZmJcdTIwMGRcdWQ4M2VcdWRkMWRcdTIwMGRcdWQ4M2RcdWRjNjlcdWQ4M2NbXHVkZmZjLVx1ZGZmZl18XHVkODNkXHVkYzY5XHVkODNjXHVkZmZjXHUyMDBkXHVkODNlXHVkZDFkXHUyMDBkXHVkODNkXHVkYzY4XHVkODNjW1x1ZGZmYlx1ZGZmZC1cdWRmZmZdfFx1ZDgzZFx1ZGM2OVx1ZDgzY1x1ZGZmY1x1MjAwZFx1ZDgzZVx1ZGQxZFx1MjAwZFx1ZDgzZFx1ZGM2OVx1ZDgzY1tcdWRmZmJcdWRmZmQtXHVkZmZmXXxcdWQ4M2RcdWRjNjlcdWQ4M2NcdWRmZmRcdTIwMGRcdWQ4M2VcdWRkMWRcdTIwMGRcdWQ4M2RcdWRjNjhcdWQ4M2NbXHVkZmZiXHVkZmZjXHVkZmZlXHVkZmZmXXxcdWQ4M2RcdWRjNjlcdWQ4M2NcdWRmZmRcdTIwMGRcdWQ4M2VcdWRkMWRcdTIwMGRcdWQ4M2RcdWRjNjlcdWQ4M2NbXHVkZmZiXHVkZmZjXHVkZmZlXHVkZmZmXXxcdWQ4M2RcdWRjNjlcdWQ4M2NcdWRmZmVcdTIwMGRcdWQ4M2VcdWRkMWRcdTIwMGRcdWQ4M2RcdWRjNjhcdWQ4M2NbXHVkZmZiLVx1ZGZmZFx1ZGZmZl18XHVkODNkXHVkYzY5XHVkODNjXHVkZmZlXHUyMDBkXHVkODNlXHVkZDFkXHUyMDBkXHVkODNkXHVkYzY5XHVkODNjW1x1ZGZmYi1cdWRmZmRcdWRmZmZdfFx1ZDgzZFx1ZGM2OVx1ZDgzY1x1ZGZmZlx1MjAwZFx1ZDgzZVx1ZGQxZFx1MjAwZFx1ZDgzZFx1ZGM2OFx1ZDgzY1tcdWRmZmItXHVkZmZlXXxcdWQ4M2RcdWRjNjlcdWQ4M2NcdWRmZmZcdTIwMGRcdWQ4M2VcdWRkMWRcdTIwMGRcdWQ4M2RcdWRjNjlcdWQ4M2NbXHVkZmZiLVx1ZGZmZV18XHVkODNlXHVkZGQxXHVkODNjXHVkZmZiXHUyMDBkXHVkODNlXHVkZDFkXHUyMDBkXHVkODNlXHVkZGQxXHVkODNjW1x1ZGZmYi1cdWRmZmZdfFx1ZDgzZVx1ZGRkMVx1ZDgzY1x1ZGZmY1x1MjAwZFx1ZDgzZVx1ZGQxZFx1MjAwZFx1ZDgzZVx1ZGRkMVx1ZDgzY1tcdWRmZmItXHVkZmZmXXxcdWQ4M2VcdWRkZDFcdWQ4M2NcdWRmZmRcdTIwMGRcdWQ4M2VcdWRkMWRcdTIwMGRcdWQ4M2VcdWRkZDFcdWQ4M2NbXHVkZmZiLVx1ZGZmZl18XHVkODNlXHVkZGQxXHVkODNjXHVkZmZlXHUyMDBkXHVkODNlXHVkZDFkXHUyMDBkXHVkODNlXHVkZGQxXHVkODNjW1x1ZGZmYi1cdWRmZmZdfFx1ZDgzZVx1ZGRkMVx1ZDgzY1x1ZGZmZlx1MjAwZFx1ZDgzZVx1ZGQxZFx1MjAwZFx1ZDgzZVx1ZGRkMVx1ZDgzY1tcdWRmZmItXHVkZmZmXXxcdWQ4M2VcdWRkZDFcdTIwMGRcdWQ4M2VcdWRkMWRcdTIwMGRcdWQ4M2VcdWRkZDF8XHVkODNkXHVkYzZiXHVkODNjW1x1ZGZmYi1cdWRmZmZdfFx1ZDgzZFx1ZGM2Y1x1ZDgzY1tcdWRmZmItXHVkZmZmXXxcdWQ4M2RcdWRjNmRcdWQ4M2NbXHVkZmZiLVx1ZGZmZl18XHVkODNkW1x1ZGM2Yi1cdWRjNmRdKXwoPzpcdWQ4M2RbXHVkYzY4XHVkYzY5XXxcdWQ4M2VcdWRkZDEpKD86XHVkODNjW1x1ZGZmYi1cdWRmZmZdKT9cdTIwMGQoPzpcdTI2OTVcdWZlMGZ8XHUyNjk2XHVmZTBmfFx1MjcwOFx1ZmUwZnxcdWQ4M2NbXHVkZjNlXHVkZjczXHVkZjdjXHVkZjg0XHVkZjkzXHVkZmE0XHVkZmE4XHVkZmViXHVkZmVkXXxcdWQ4M2RbXHVkY2JiXHVkY2JjXHVkZDI3XHVkZDJjXHVkZTgwXHVkZTkyXXxcdWQ4M2VbXHVkZGFmLVx1ZGRiM1x1ZGRiY1x1ZGRiZF0pfCg/Olx1ZDgzY1tcdWRmY2JcdWRmY2NdfFx1ZDgzZFtcdWRkNzRcdWRkNzVdfFx1MjZmOSkoKD86XHVkODNjW1x1ZGZmYi1cdWRmZmZdfFx1ZmUwZilcdTIwMGRbXHUyNjQwXHUyNjQyXVx1ZmUwZil8KD86XHVkODNjW1x1ZGZjM1x1ZGZjNFx1ZGZjYV18XHVkODNkW1x1ZGM2ZVx1ZGM3MFx1ZGM3MVx1ZGM3M1x1ZGM3N1x1ZGM4MVx1ZGM4Mlx1ZGM4Nlx1ZGM4N1x1ZGU0NS1cdWRlNDdcdWRlNGJcdWRlNGRcdWRlNGVcdWRlYTNcdWRlYjQtXHVkZWI2XXxcdWQ4M2VbXHVkZDI2XHVkZDM1XHVkZDM3LVx1ZGQzOVx1ZGQzZFx1ZGQzZVx1ZGRiOFx1ZGRiOVx1ZGRjZC1cdWRkY2ZcdWRkZDYtXHVkZGRkXSkoPzpcdWQ4M2NbXHVkZmZiLVx1ZGZmZl0pP1x1MjAwZFtcdTI2NDBcdTI2NDJdXHVmZTBmfCg/Olx1ZDgzZFx1ZGM2OFx1MjAwZFx1Mjc2NFx1ZmUwZlx1MjAwZFx1ZDgzZFx1ZGM4Ylx1MjAwZFx1ZDgzZFx1ZGM2OHxcdWQ4M2RcdWRjNjhcdTIwMGRcdWQ4M2RcdWRjNjhcdTIwMGRcdWQ4M2RcdWRjNjZcdTIwMGRcdWQ4M2RcdWRjNjZ8XHVkODNkXHVkYzY4XHUyMDBkXHVkODNkXHVkYzY4XHUyMDBkXHVkODNkXHVkYzY3XHUyMDBkXHVkODNkW1x1ZGM2Nlx1ZGM2N118XHVkODNkXHVkYzY4XHUyMDBkXHVkODNkXHVkYzY5XHUyMDBkXHVkODNkXHVkYzY2XHUyMDBkXHVkODNkXHVkYzY2fFx1ZDgzZFx1ZGM2OFx1MjAwZFx1ZDgzZFx1ZGM2OVx1MjAwZFx1ZDgzZFx1ZGM2N1x1MjAwZFx1ZDgzZFtcdWRjNjZcdWRjNjddfFx1ZDgzZFx1ZGM2OVx1MjAwZFx1Mjc2NFx1ZmUwZlx1MjAwZFx1ZDgzZFx1ZGM4Ylx1MjAwZFx1ZDgzZFtcdWRjNjhcdWRjNjldfFx1ZDgzZFx1ZGM2OVx1MjAwZFx1ZDgzZFx1ZGM2OVx1MjAwZFx1ZDgzZFx1ZGM2Nlx1MjAwZFx1ZDgzZFx1ZGM2NnxcdWQ4M2RcdWRjNjlcdTIwMGRcdWQ4M2RcdWRjNjlcdTIwMGRcdWQ4M2RcdWRjNjdcdTIwMGRcdWQ4M2RbXHVkYzY2XHVkYzY3XXxcdWQ4M2RcdWRjNjhcdTIwMGRcdTI3NjRcdWZlMGZcdTIwMGRcdWQ4M2RcdWRjNjh8XHVkODNkXHVkYzY4XHUyMDBkXHVkODNkXHVkYzY2XHUyMDBkXHVkODNkXHVkYzY2fFx1ZDgzZFx1ZGM2OFx1MjAwZFx1ZDgzZFx1ZGM2N1x1MjAwZFx1ZDgzZFtcdWRjNjZcdWRjNjddfFx1ZDgzZFx1ZGM2OFx1MjAwZFx1ZDgzZFx1ZGM2OFx1MjAwZFx1ZDgzZFtcdWRjNjZcdWRjNjddfFx1ZDgzZFx1ZGM2OFx1MjAwZFx1ZDgzZFx1ZGM2OVx1MjAwZFx1ZDgzZFtcdWRjNjZcdWRjNjddfFx1ZDgzZFx1ZGM2OVx1MjAwZFx1Mjc2NFx1ZmUwZlx1MjAwZFx1ZDgzZFtcdWRjNjhcdWRjNjldfFx1ZDgzZFx1ZGM2OVx1MjAwZFx1ZDgzZFx1ZGM2Nlx1MjAwZFx1ZDgzZFx1ZGM2NnxcdWQ4M2RcdWRjNjlcdTIwMGRcdWQ4M2RcdWRjNjdcdTIwMGRcdWQ4M2RbXHVkYzY2XHVkYzY3XXxcdWQ4M2RcdWRjNjlcdTIwMGRcdWQ4M2RcdWRjNjlcdTIwMGRcdWQ4M2RbXHVkYzY2XHVkYzY3XXxcdWQ4M2NcdWRmZjNcdWZlMGZcdTIwMGRcdTI2YTdcdWZlMGZ8XHVkODNjXHVkZmYzXHVmZTBmXHUyMDBkXHVkODNjXHVkZjA4fFx1ZDgzY1x1ZGZmNFx1MjAwZFx1MjYyMFx1ZmUwZnxcdWQ4M2RcdWRjMTVcdTIwMGRcdWQ4M2VcdWRkYmF8XHVkODNkXHVkYzNiXHUyMDBkXHUyNzQ0XHVmZTBmfFx1ZDgzZFx1ZGM0MVx1MjAwZFx1ZDgzZFx1ZGRlOHxcdWQ4M2RcdWRjNjhcdTIwMGRcdWQ4M2RbXHVkYzY2XHVkYzY3XXxcdWQ4M2RcdWRjNjlcdTIwMGRcdWQ4M2RbXHVkYzY2XHVkYzY3XXxcdWQ4M2RcdWRjNmZcdTIwMGRcdTI2NDBcdWZlMGZ8XHVkODNkXHVkYzZmXHUyMDBkXHUyNjQyXHVmZTBmfFx1ZDgzZVx1ZGQzY1x1MjAwZFx1MjY0MFx1ZmUwZnxcdWQ4M2VcdWRkM2NcdTIwMGRcdTI2NDJcdWZlMGZ8XHVkODNlXHVkZGRlXHUyMDBkXHUyNjQwXHVmZTBmfFx1ZDgzZVx1ZGRkZVx1MjAwZFx1MjY0Mlx1ZmUwZnxcdWQ4M2VcdWRkZGZcdTIwMGRcdTI2NDBcdWZlMGZ8XHVkODNlXHVkZGRmXHUyMDBkXHUyNjQyXHVmZTBmfFx1ZDgzZFx1ZGMwOFx1MjAwZFx1MmIxYil8WyMqMC05XVx1ZmUwZj9cdTIwZTN8KD86W8Kpwq5cdTIxMjJcdTI2NWZdXHVmZTBmKXwoPzpcdWQ4M2NbXHVkYzA0XHVkZDcwXHVkZDcxXHVkZDdlXHVkZDdmXHVkZTAyXHVkZTFhXHVkZTJmXHVkZTM3XHVkZjIxXHVkZjI0LVx1ZGYyY1x1ZGYzNlx1ZGY3ZFx1ZGY5Nlx1ZGY5N1x1ZGY5OS1cdWRmOWJcdWRmOWVcdWRmOWZcdWRmY2RcdWRmY2VcdWRmZDQtXHVkZmRmXHVkZmYzXHVkZmY1XHVkZmY3XXxcdWQ4M2RbXHVkYzNmXHVkYzQxXHVkY2ZkXHVkZDQ5XHVkZDRhXHVkZDZmXHVkZDcwXHVkZDczXHVkZDc2LVx1ZGQ3OVx1ZGQ4N1x1ZGQ4YS1cdWRkOGRcdWRkYTVcdWRkYThcdWRkYjFcdWRkYjJcdWRkYmNcdWRkYzItXHVkZGM0XHVkZGQxLVx1ZGRkM1x1ZGRkYy1cdWRkZGVcdWRkZTFcdWRkZTNcdWRkZThcdWRkZWZcdWRkZjNcdWRkZmFcdWRlY2JcdWRlY2QtXHVkZWNmXHVkZWUwLVx1ZGVlNVx1ZGVlOVx1ZGVmMFx1ZGVmM118W1x1MjAzY1x1MjA0OVx1MjEzOVx1MjE5NC1cdTIxOTlcdTIxYTlcdTIxYWFcdTIzMWFcdTIzMWJcdTIzMjhcdTIzY2ZcdTIzZWQtXHUyM2VmXHUyM2YxXHUyM2YyXHUyM2Y4LVx1MjNmYVx1MjRjMlx1MjVhYVx1MjVhYlx1MjViNlx1MjVjMFx1MjVmYi1cdTI1ZmVcdTI2MDAtXHUyNjA0XHUyNjBlXHUyNjExXHUyNjE0XHUyNjE1XHUyNjE4XHUyNjIwXHUyNjIyXHUyNjIzXHUyNjI2XHUyNjJhXHUyNjJlXHUyNjJmXHUyNjM4LVx1MjYzYVx1MjY0MFx1MjY0Mlx1MjY0OC1cdTI2NTNcdTI2NjBcdTI2NjNcdTI2NjVcdTI2NjZcdTI2NjhcdTI2N2JcdTI2N2ZcdTI2OTItXHUyNjk3XHUyNjk5XHUyNjliXHUyNjljXHUyNmEwXHUyNmExXHUyNmE3XHUyNmFhXHUyNmFiXHUyNmIwXHUyNmIxXHUyNmJkXHUyNmJlXHUyNmM0XHUyNmM1XHUyNmM4XHUyNmNmXHUyNmQxXHUyNmQzXHUyNmQ0XHUyNmU5XHUyNmVhXHUyNmYwLVx1MjZmNVx1MjZmOFx1MjZmYVx1MjZmZFx1MjcwMlx1MjcwOFx1MjcwOVx1MjcwZlx1MjcxMlx1MjcxNFx1MjcxNlx1MjcxZFx1MjcyMVx1MjczM1x1MjczNFx1Mjc0NFx1Mjc0N1x1Mjc1N1x1Mjc2M1x1Mjc2NFx1MjdhMVx1MjkzNFx1MjkzNVx1MmIwNS1cdTJiMDdcdTJiMWJcdTJiMWNcdTJiNTBcdTJiNTVcdTMwMzBcdTMwM2RcdTMyOTdcdTMyOTldKSg/Olx1ZmUwZnwoPyFcdWZlMGUpKXwoPzooPzpcdWQ4M2NbXHVkZmNiXHVkZmNjXXxcdWQ4M2RbXHVkZDc0XHVkZDc1XHVkZDkwXXxbXHUyNjFkXHUyNmY3XHUyNmY5XHUyNzBjXHUyNzBkXSkoPzpcdWZlMGZ8KD8hXHVmZTBlKSl8KD86XHVkODNjW1x1ZGY4NVx1ZGZjMi1cdWRmYzRcdWRmYzdcdWRmY2FdfFx1ZDgzZFtcdWRjNDJcdWRjNDNcdWRjNDYtXHVkYzUwXHVkYzY2LVx1ZGM2OVx1ZGM2ZVx1ZGM3MC1cdWRjNzhcdWRjN2NcdWRjODEtXHVkYzgzXHVkYzg1LVx1ZGM4N1x1ZGNhYVx1ZGQ3YVx1ZGQ5NVx1ZGQ5Nlx1ZGU0NS1cdWRlNDdcdWRlNGItXHVkZTRmXHVkZWEzXHVkZWI0LVx1ZGViNlx1ZGVjMFx1ZGVjY118XHVkODNlW1x1ZGQwY1x1ZGQwZlx1ZGQxOC1cdWRkMWNcdWRkMWVcdWRkMWZcdWRkMjZcdWRkMzAtXHVkZDM5XHVkZDNkXHVkZDNlXHVkZDc3XHVkZGI1XHVkZGI2XHVkZGI4XHVkZGI5XHVkZGJiXHVkZGNkLVx1ZGRjZlx1ZGRkMS1cdWRkZGRdfFtcdTI3MGFcdTI3MGJdKSkoPzpcdWQ4M2NbXHVkZmZiLVx1ZGZmZl0pP3woPzpcdWQ4M2NcdWRmZjRcdWRiNDBcdWRjNjdcdWRiNDBcdWRjNjJcdWRiNDBcdWRjNjVcdWRiNDBcdWRjNmVcdWRiNDBcdWRjNjdcdWRiNDBcdWRjN2Z8XHVkODNjXHVkZmY0XHVkYjQwXHVkYzY3XHVkYjQwXHVkYzYyXHVkYjQwXHVkYzczXHVkYjQwXHVkYzYzXHVkYjQwXHVkYzc0XHVkYjQwXHVkYzdmfFx1ZDgzY1x1ZGZmNFx1ZGI0MFx1ZGM2N1x1ZGI0MFx1ZGM2Mlx1ZGI0MFx1ZGM3N1x1ZGI0MFx1ZGM2Y1x1ZGI0MFx1ZGM3M1x1ZGI0MFx1ZGM3ZnxcdWQ4M2NcdWRkZTZcdWQ4M2NbXHVkZGU4LVx1ZGRlY1x1ZGRlZVx1ZGRmMVx1ZGRmMlx1ZGRmNFx1ZGRmNi1cdWRkZmFcdWRkZmNcdWRkZmRcdWRkZmZdfFx1ZDgzY1x1ZGRlN1x1ZDgzY1tcdWRkZTZcdWRkZTdcdWRkZTktXHVkZGVmXHVkZGYxLVx1ZGRmNFx1ZGRmNi1cdWRkZjlcdWRkZmJcdWRkZmNcdWRkZmVcdWRkZmZdfFx1ZDgzY1x1ZGRlOFx1ZDgzY1tcdWRkZTZcdWRkZThcdWRkZTlcdWRkZWItXHVkZGVlXHVkZGYwLVx1ZGRmNVx1ZGRmN1x1ZGRmYS1cdWRkZmZdfFx1ZDgzY1x1ZGRlOVx1ZDgzY1tcdWRkZWFcdWRkZWNcdWRkZWZcdWRkZjBcdWRkZjJcdWRkZjRcdWRkZmZdfFx1ZDgzY1x1ZGRlYVx1ZDgzY1tcdWRkZTZcdWRkZThcdWRkZWFcdWRkZWNcdWRkZWRcdWRkZjctXHVkZGZhXXxcdWQ4M2NcdWRkZWJcdWQ4M2NbXHVkZGVlLVx1ZGRmMFx1ZGRmMlx1ZGRmNFx1ZGRmN118XHVkODNjXHVkZGVjXHVkODNjW1x1ZGRlNlx1ZGRlN1x1ZGRlOS1cdWRkZWVcdWRkZjEtXHVkZGYzXHVkZGY1LVx1ZGRmYVx1ZGRmY1x1ZGRmZV18XHVkODNjXHVkZGVkXHVkODNjW1x1ZGRmMFx1ZGRmMlx1ZGRmM1x1ZGRmN1x1ZGRmOVx1ZGRmYV18XHVkODNjXHVkZGVlXHVkODNjW1x1ZGRlOC1cdWRkZWFcdWRkZjEtXHVkZGY0XHVkZGY2LVx1ZGRmOV18XHVkODNjXHVkZGVmXHVkODNjW1x1ZGRlYVx1ZGRmMlx1ZGRmNFx1ZGRmNV18XHVkODNjXHVkZGYwXHVkODNjW1x1ZGRlYVx1ZGRlYy1cdWRkZWVcdWRkZjJcdWRkZjNcdWRkZjVcdWRkZjdcdWRkZmNcdWRkZmVcdWRkZmZdfFx1ZDgzY1x1ZGRmMVx1ZDgzY1tcdWRkZTYtXHVkZGU4XHVkZGVlXHVkZGYwXHVkZGY3LVx1ZGRmYlx1ZGRmZV18XHVkODNjXHVkZGYyXHVkODNjW1x1ZGRlNlx1ZGRlOC1cdWRkZWRcdWRkZjAtXHVkZGZmXXxcdWQ4M2NcdWRkZjNcdWQ4M2NbXHVkZGU2XHVkZGU4XHVkZGVhLVx1ZGRlY1x1ZGRlZVx1ZGRmMVx1ZGRmNFx1ZGRmNVx1ZGRmN1x1ZGRmYVx1ZGRmZl18XHVkODNjXHVkZGY0XHVkODNjXHVkZGYyfFx1ZDgzY1x1ZGRmNVx1ZDgzY1tcdWRkZTZcdWRkZWEtXHVkZGVkXHVkZGYwLVx1ZGRmM1x1ZGRmNy1cdWRkZjlcdWRkZmNcdWRkZmVdfFx1ZDgzY1x1ZGRmNlx1ZDgzY1x1ZGRlNnxcdWQ4M2NcdWRkZjdcdWQ4M2NbXHVkZGVhXHVkZGY0XHVkZGY4XHVkZGZhXHVkZGZjXXxcdWQ4M2NcdWRkZjhcdWQ4M2NbXHVkZGU2LVx1ZGRlYVx1ZGRlYy1cdWRkZjRcdWRkZjctXHVkZGY5XHVkZGZiXHVkZGZkLVx1ZGRmZl18XHVkODNjXHVkZGY5XHVkODNjW1x1ZGRlNlx1ZGRlOFx1ZGRlOVx1ZGRlYi1cdWRkZWRcdWRkZWYtXHVkZGY0XHVkZGY3XHVkZGY5XHVkZGZiXHVkZGZjXHVkZGZmXXxcdWQ4M2NcdWRkZmFcdWQ4M2NbXHVkZGU2XHVkZGVjXHVkZGYyXHVkZGYzXHVkZGY4XHVkZGZlXHVkZGZmXXxcdWQ4M2NcdWRkZmJcdWQ4M2NbXHVkZGU2XHVkZGU4XHVkZGVhXHVkZGVjXHVkZGVlXHVkZGYzXHVkZGZhXXxcdWQ4M2NcdWRkZmNcdWQ4M2NbXHVkZGViXHVkZGY4XXxcdWQ4M2NcdWRkZmRcdWQ4M2NcdWRkZjB8XHVkODNjXHVkZGZlXHVkODNjW1x1ZGRlYVx1ZGRmOV18XHVkODNjXHVkZGZmXHVkODNjW1x1ZGRlNlx1ZGRmMlx1ZGRmY118XHVkODNjW1x1ZGNjZlx1ZGQ4ZVx1ZGQ5MS1cdWRkOWFcdWRkZTYtXHVkZGZmXHVkZTAxXHVkZTMyLVx1ZGUzNlx1ZGUzOC1cdWRlM2FcdWRlNTBcdWRlNTFcdWRmMDAtXHVkZjIwXHVkZjJkLVx1ZGYzNVx1ZGYzNy1cdWRmN2NcdWRmN2UtXHVkZjg0XHVkZjg2LVx1ZGY5M1x1ZGZhMC1cdWRmYzFcdWRmYzVcdWRmYzZcdWRmYzhcdWRmYzlcdWRmY2YtXHVkZmQzXHVkZmUwLVx1ZGZmMFx1ZGZmNFx1ZGZmOC1cdWRmZmZdfFx1ZDgzZFtcdWRjMDAtXHVkYzNlXHVkYzQwXHVkYzQ0XHVkYzQ1XHVkYzUxLVx1ZGM2NVx1ZGM2YVx1ZGM2Zlx1ZGM3OS1cdWRjN2JcdWRjN2QtXHVkYzgwXHVkYzg0XHVkYzg4LVx1ZGNhOVx1ZGNhYi1cdWRjZmNcdWRjZmYtXHVkZDNkXHVkZDRiLVx1ZGQ0ZVx1ZGQ1MC1cdWRkNjdcdWRkYTRcdWRkZmItXHVkZTQ0XHVkZTQ4LVx1ZGU0YVx1ZGU4MC1cdWRlYTJcdWRlYTQtXHVkZWIzXHVkZWI3LVx1ZGViZlx1ZGVjMS1cdWRlYzVcdWRlZDAtXHVkZWQyXHVkZWQ1LVx1ZGVkN1x1ZGVlYlx1ZGVlY1x1ZGVmNC1cdWRlZmNcdWRmZTAtXHVkZmViXXxcdWQ4M2VbXHVkZDBkXHVkZDBlXHVkZDEwLVx1ZGQxN1x1ZGQxZFx1ZGQyMC1cdWRkMjVcdWRkMjctXHVkZDJmXHVkZDNhXHVkZDNjXHVkZDNmLVx1ZGQ0NVx1ZGQ0Ny1cdWRkNzZcdWRkNzhcdWRkN2EtXHVkZGI0XHVkZGI3XHVkZGJhXHVkZGJjLVx1ZGRjYlx1ZGRkMFx1ZGRkZS1cdWRkZmZcdWRlNzAtXHVkZTc0XHVkZTc4LVx1ZGU3YVx1ZGU4MC1cdWRlODZcdWRlOTAtXHVkZWE4XHVkZWIwLVx1ZGViNlx1ZGVjMC1cdWRlYzJcdWRlZDAtXHVkZWQ2XXxbXHUyM2U5LVx1MjNlY1x1MjNmMFx1MjNmM1x1MjY3ZVx1MjZjZVx1MjcwNVx1MjcyOFx1Mjc0Y1x1Mjc0ZVx1Mjc1My1cdTI3NTVcdTI3OTUtXHUyNzk3XHUyN2IwXHUyN2JmXHVlNTBhXSl8XHVmZTBmL2csdD0vXHVGRTBGL2cscj1TdHJpbmcuZnJvbUNoYXJDb2RlKDgyMDUpLGY9L1smPD4nIl0vZyxuPS9eKD86aWZyYW1lfG5vZnJhbWVzfG5vc2NyaXB0fHNjcmlwdHxzZWxlY3R8c3R5bGV8dGV4dGFyZWEpJC8sYz1TdHJpbmcuZnJvbUNoYXJDb2RlCjtyZXR1cm4gZDtmdW5jdGlvbiBvKGQsdSl7cmV0dXJuIGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHU/ZC5yZXBsYWNlKHQsIiIpOmQpfWZ1bmN0aW9uIGEoZCx1KXtyZXR1cm4iIi5jb25jYXQodS5iYXNlLHUuc2l6ZSwiLyIsZCx1LmV4dCl9ZnVuY3Rpb24gaShkLHUpe2Zvcih2YXIgZSx0LHI9ZC5jaGlsZE5vZGVzLGY9ci5sZW5ndGg7Zi0tOykzPT09KHQ9KGU9cltmXSkubm9kZVR5cGUpP3UucHVzaChlKToxIT09dHx8Im93bmVyU1ZHRWxlbWVudCJpbiBlfHxuLnRlc3QoZS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpKXx8aShlLHUpO3JldHVybiB1fWZ1bmN0aW9uIGwoZCl7cmV0dXJuIGgoZC5pbmRleE9mKHIpPDA/ZC5yZXBsYWNlKHQsIiIpOmQpfWZ1bmN0aW9uIHMoZCx1KXtmb3IodmFyIHQscixmLG4sYyxhLHMscCxiLHksdixoLG0sZz1pKGQsW10pLHc9Zy5sZW5ndGg7dy0tOyl7Zm9yKGY9ITEsbj1kb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCksYT0oYz1nW3ddKS5ub2RlVmFsdWUscD0wO3M9ZS5leGVjKGEpOyl7aWYoKGI9cy5pbmRleCkhPT1wJiZuLmFwcGVuZENoaWxkKG8oYS5zbGljZShwLGIpLCEwKSksaD1sKHY9c1swXSkscD1iK3YubGVuZ3RoLG09dS5jYWxsYmFjayhoLHUpLGgmJm0pe2ZvcihyIGluKHk9bmV3IEltYWdlKS5vbmVycm9yPXUub25lcnJvcix5LnNldEF0dHJpYnV0ZSgiZHJhZ2dhYmxlIiwiZmFsc2UiKSx0PXUuYXR0cmlidXRlcyh2LGgpKXQuaGFzT3duUHJvcGVydHkocikmJjAhPT1yLmluZGV4T2YoIm9uIikmJiF5Lmhhc0F0dHJpYnV0ZShyKSYmeS5zZXRBdHRyaWJ1dGUocix0W3JdKTt5LmNsYXNzTmFtZT11LmNsYXNzTmFtZSx5LmFsdD12LHkuc3JjPW0sZj0hMCxuLmFwcGVuZENoaWxkKHkpfXl8fG4uYXBwZW5kQ2hpbGQobyh2LCExKSkseT1udWxsfWYmJihwPGEubGVuZ3RoJiZuLmFwcGVuZENoaWxkKG8oYS5zbGljZShwKSwhMCkpLGMucGFyZW50Tm9kZS5yZXBsYWNlQ2hpbGQobixjKSl9cmV0dXJuIGR9ZnVuY3Rpb24gcChkLHUpe3JldHVybiB2KGQsKGZ1bmN0aW9uKGQpe3ZhciBlLHQscj1kLG49bChkKSxjPXUuY2FsbGJhY2sobix1KTtpZihuJiZjKXtmb3IodCBpbiByPSI8aW1nICIuY29uY2F0KCdjbGFzcz0iJyx1LmNsYXNzTmFtZSwnIiAnLCdkcmFnZ2FibGU9ImZhbHNlIiAnLCdhbHQ9IicsZCwnIicsJyBzcmM9IicsYywnIicpLGU9dS5hdHRyaWJ1dGVzKGQsbikpZS5oYXNPd25Qcm9wZXJ0eSh0KSYmMCE9PXQuaW5kZXhPZigib24iKSYmLTE9PT1yLmluZGV4T2YoIiAiK3QrIj0iKSYmKHI9ci5jb25jYXQoIiAiLHQsJz0iJyxlW3RdLnJlcGxhY2UoZixiKSwnIicpKTtyPXIuY29uY2F0KCIvPiIpfXJldHVybiByfSkpfWZ1bmN0aW9uIGIoZCl7cmV0dXJuIHVbZF19ZnVuY3Rpb24geSgpe3JldHVybiBudWxsfWZ1bmN0aW9uIHYoZCx1KXtyZXR1cm4gU3RyaW5nKGQpLnJlcGxhY2UoZSx1KX1mdW5jdGlvbiBoKGQsdSl7Zm9yKHZhciBlPVtdLHQ9MCxyPTAsZj0wO2Y8ZC5sZW5ndGg7KXQ9ZC5jaGFyQ29kZUF0KGYrKykscj8oZS5wdXNoKCg2NTUzNisoci01NTI5Njw8MTApKyh0LTU2MzIwKSkudG9TdHJpbmcoMTYpKSxyPTApOjU1Mjk2PD10JiZ0PD01NjMxOT9yPXQ6ZS5wdXNoKHQudG9TdHJpbmcoMTYpKTtyZXR1cm4gZS5qb2luKHV8fCItIil9fSgpfSwxOTM3MShkLHUsZSl7InVzZSBzdHJpY3QiO2UuZCh1LHtkZWZhdWx0OigpPT5yfSk7dmFyIHQ9ZSg5MDgxNTQpO2Z1bmN0aW9uIHIoZCx1LGUpe3JldHVybih1PSgwLHQuZGVmYXVsdCkodSkpaW4gZD9PYmplY3QuZGVmaW5lUHJvcGVydHkoZCx1LHt2YWx1ZTplLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6ZFt1XT1lLGR9fSwyMjQxMDcoZCx1LGUpeyJ1c2Ugc3RyaWN0IjtlLmQodSx7ZGVmYXVsdDooKT0+Zn0pO3ZhciB0PWUoMTkzNzEpO2Z1bmN0aW9uIHIoZCx1KXt2YXIgZT1PYmplY3Qua2V5cyhkKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgdD1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGQpO3UmJih0PXQuZmlsdGVyKChmdW5jdGlvbih1KXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLHUpLmVudW1lcmFibGV9KSkpLGUucHVzaC5hcHBseShlLHQpfXJldHVybiBlfWZ1bmN0aW9uIGYoZCl7Zm9yKHZhciB1PTE7dTxhcmd1bWVudHMubGVuZ3RoO3UrKyl7dmFyIGU9bnVsbCE9YXJndW1lbnRzW3VdP2FyZ3VtZW50c1t1XTp7fTt1JTI/cihPYmplY3QoZSksITApLmZvckVhY2goKGZ1bmN0aW9uKHUpeygwLHQuZGVmYXVsdCkoZCx1LGVbdV0pfSkpOk9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzP09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGQsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMoZSkpOnIoT2JqZWN0KGUpKS5mb3JFYWNoKChmdW5jdGlvbih1KXtPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx1LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZSx1KSl9KSl9cmV0dXJuIGR9fSw4OTI2MzkoZCx1LGUpeyJ1c2Ugc3RyaWN0IjtlLmQodSx7ZGVmYXVsdDooKT0+cn0pO3ZhciB0PWUoMTI5NDc2KTtmdW5jdGlvbiByKGQsdSl7aWYoIm9iamVjdCIhPSgwLHQuZGVmYXVsdCkoZCl8fCFkKXJldHVybiBkO3ZhciBlPWRbU3ltYm9sLnRvUHJpbWl0aXZlXTtpZih2b2lkIDAhPT1lKXt2YXIgcj1lLmNhbGwoZCx1fHwiZGVmYXVsdCIpO2lmKCJvYmplY3QiIT0oMCx0LmRlZmF1bHQpKHIpKXJldHVybiByO3Rocm93IG5ldyBUeXBlRXJyb3IoIkBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuIil9cmV0dXJuKCJzdHJpbmciPT09dT9TdHJpbmc6TnVtYmVyKShkKX19LDkwODE1NChkLHUsZSl7InVzZSBzdHJpY3QiO2UuZCh1LHtkZWZhdWx0OigpPT5mfSk7dmFyIHQ9ZSgxMjk0NzYpLHI9ZSg4OTI2MzkpO2Z1bmN0aW9uIGYoZCl7dmFyIHU9KDAsci5kZWZhdWx0KShkLCJzdHJpbmciKTtyZXR1cm4ic3ltYm9sIj09KDAsdC5kZWZhdWx0KSh1KT91OnUrIiJ9fSwxMjk0NzYoZCx1LGUpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiB0KGQpewpyZXR1cm4gdD0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihkKXtyZXR1cm4gdHlwZW9mIGR9OmZ1bmN0aW9uKGQpe3JldHVybiBkJiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZkLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZkIT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgZH0sdChkKX1lLmQodSx7ZGVmYXVsdDooKT0+dH0pfSwyOTYwMjMoZCx1LGUpeyJ1c2Ugc3RyaWN0IjtlLmQodSx7ZGVmYXVsdDooKT0+b30pO3ZhciB0PWUoNDkzNzE4KSxyPWUoODU0ODk0KSxmPWUoNjkyMzY5KSxuPU1hdGguY2VpbCxjPU1hdGgubWF4O2NvbnN0IG89ZnVuY3Rpb24oZCx1LGUpe3U9KGU/KDAsci5kZWZhdWx0KShkLHUsZSk6dm9pZCAwPT09dSk/MTpjKCgwLGYuZGVmYXVsdCkodSksMCk7dmFyIG89bnVsbD09ZD8wOmQubGVuZ3RoO2lmKCFvfHx1PDEpcmV0dXJuW107Zm9yKHZhciBhPTAsaT0wLGw9QXJyYXkobihvL3UpKTthPG87KWxbaSsrXT0oMCx0LmRlZmF1bHQpKGQsYSxhKz11KTtyZXR1cm4gbH19LDg1Njc3MChkLHUsZSl7InVzZSBzdHJpY3QiO2UuZCh1LHtuYW5vaWQ6KCk9PnR9KTtsZXQgdD0oZD0yMSk9PmNyeXB0by5nZXRSYW5kb21WYWx1ZXMobmV3IFVpbnQ4QXJyYXkoZCkpLnJlZHVjZSgoKGQsdSk9PmQrPSh1Jj02Myk8MzY/dS50b1N0cmluZygzNik6dTw2Mj8odS0yNikudG9TdHJpbmcoMzYpLnRvVXBwZXJDYXNlKCk6dT42Mj8iLSI6Il8iKSwiIil9fV0pOw=="}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/66988.8458b6a0b6b6dab54ea4.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.173Z","timestamp":1785148034173,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/66988.8458b6a0b6b6dab54ea4.js HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a5dbd31-1fd7\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Mon, 20 Jul 2026 06:16:17 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/20/2026 11:21:48\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 964067829c9b54353eb5721d2e5f33a6\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":8151,"size_decoded":3735,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (3064)","md5":"e8573dd152b6351a68d9431ffb61d357","sha1":"928cec3f4c876d4d701f3b8ae035b67e5e5bc22e","sha256":"02111defc5b8b61ff158655750e36cf18a318ecba45bd6410bd9397a5e380f2c","sha512":"21379f317449ebd372b6e4aed63443ec02937076567807d8da941855c0ae9b8b23c7fa923b3ac87cf6050146b69b4248aba05f8520df72587eb193f1b3010702","ssdeep":"192:Cm/zVycbWsCCMrRomnPpUeM+MYklUXFJmlp/aCiB86aECfSiRuve4w3qG9ytqv:Cew9CM1M+HZylQCiBTalfnuvBuqntqv","tlshash":"2df184a2b1a2a853677350fc5d75d823a5493809fc0846dcf1aeaadf284dd9c217ce7c","first_seen":"2026-07-20T16:56:18.385469Z","last_seen":"2026-07-27T12:48:39.849638Z","times_seen":90,"resource_available":true,"data":"InVzZSBzdHJpY3QiOyhzZWxmLndlYnBhY2tDaHVua3RyYWRpbmd2aWV3PXNlbGYud2VicGFja0NodW5rdHJhZGluZ3ZpZXd8fFtdKS5wdXNoKFtbNjY5ODhdLHs4NzcyMTcoZSx0LG8pe28uZCh0LHtBYnN0cmFjdEZpbGxlZEFyZWFQYW5lVmlldzooKT0+cH0pO3ZhciBpPW8oMTM4NjM4KSxsPW8oMTk4OTAxKSxyPW8oOTgzMzc4KSxuPW8oOTk1MjQwKSxhPW8oMTY4MjU4KSxzPW8oNTIxOTgzKTtmdW5jdGlvbiBkKGUsdCl7cmV0dXJuIEFycmF5LmZyb20oe2xlbmd0aDplfSwoKGUsbyk9Pih7dGltZVBvaW50SW5kZXg6byt0fSkpKX1mdW5jdGlvbiBjKGUsdCxvKXtsZXQgaSxsO2NvbnN0IHI9ZS5sZW5ndGg7Zm9yKGxldCBuPXQ7bj49MCYmbjxyO24rPW8pe2NvbnN0IHQ9ZVtuXTtpZih2b2lkIDA9PT1pJiZ2b2lkIDAhPT10LnBsb3QxVmFsdWUmJihpPW4pLHZvaWQgMD09PWwmJnZvaWQgMCE9PXQucGxvdDJWYWx1ZSYmKGw9biksdm9pZCAwIT09aSYmdm9pZCAwIT09bClyZXR1cm4gbn1yZXR1cm4gbnVsbH1mdW5jdGlvbiB1KGUpe3JldHVybiAwPT09ZS50eXBlP2Ake2UuY29sb3J9YDpgJHtlLmNvbG9yMX06JHtlLmNvbG9yMn06JHtlLmNvb3JkaW5hdGUxfToke2UuY29vcmRpbmF0ZTJ9YH1jb25zdCBoPXt0eXBlOjAsY29sb3I6IiJ9O2Z1bmN0aW9uIF8oZSl7cmV0dXJuW2EuTGluZVN0dWR5UGxvdFN0eWxlLlN0ZXBMaW5lLGEuTGluZVN0dWR5UGxvdFN0eWxlLlN0ZXBMaW5lV2l0aEJyZWFrcyxhLkxpbmVTdHVkeVBsb3RTdHlsZS5TdGVwTGluZVdpdGhEaWFtb25kc10uaW5jbHVkZXMoZSl9Y2xhc3MgcHtjb25zdHJ1Y3RvcihlLHQsbyl7dGhpcy5faXNIbGluZUZpbGw9ITEsdGhpcy5fYmFuZEFLZXk9bnVsbCx0aGlzLl9iYW5kQktleT1udWxsLHRoaXMuX2NvbG9yUGxvdEluZGV4PW51bGwsdGhpcy5fYXJlYVJlbmRlcmVyPW5ldyBuLkFyZWFCYWNrZ3JvdW5kUmVuZGVyZXIsdGhpcy5fZGF0YUludmFsaWRhdGVkPW51bGwsdGhpcy5fdmlld3BvcnRJbnZhbGlkYXRlZD0hMSx0aGlzLl9wbEluZGV4MT1udWxsLHRoaXMuX3BsSW5kZXgyPW51bGwsdGhpcy5faXRlbXM9W10sdGhpcy5fY29sb3JBcmVhcz1uZXcgbi5DYWNoZWRNYXAsdGhpcy5fZ2VuZXJhdGVDb2xvcj0oMCxyLmdlbmVyYXRlQ29sb3JDYWNoZWQpKCksdGhpcy5fcGxvdEdlb21ldHJ5Q2FjaGU9bnVsbCx0aGlzLl9zb3VyY2U9ZSx0aGlzLl9tb2RlbD10LHRoaXMuX2ZpbGxHYXBzPSEhbz8uZmlsbGdhcHMsdGhpcy5fZmlsbFRvSW50ZXJzZWN0aW9uPSEhbz8uZmlsbFRvSW50ZXJzZWN0aW9ufXVwZGF0ZShlKXtpZigiZ2xvYmFsLWNoYW5nZSI9PT1lLnR5cGUpcmV0dXJuIHRoaXMuX2RhdGFJbnZhbGlkYXRlZD0oMCxzLm1lcmdlRGF0YUludmFsaWRhdGlvbikodGhpcy5fZGF0YUludmFsaWRhdGVkLHt9KSx2b2lkKHRoaXMuX3ZpZXdwb3J0SW52YWxpZGF0ZWQ9ITApO2lmKCJkYXRhLXNvdXJjZS1jaGFuZ2UiIT09ZS50eXBlKXRoaXMuX3ZpZXdwb3J0SW52YWxpZGF0ZWQ9ITA7ZWxzZXtlLnNvdXJjZUlkPT09dGhpcy5fc291cmNlLmlkKCkmJih0aGlzLl9kYXRhSW52YWxpZGF0ZWQ9KDAscy5tZXJnZURhdGFJbnZhbGlkYXRpb24pKHRoaXMuX2RhdGFJbnZhbGlkYXRlZCx7Zmlyc3RJbmRleDplLmZpcnN0VXBkYXRlZFRpbWVQb2ludEluZGV4LGNsZWFyRGF0YTplLmNsZWFyRGF0YX0pKX19cmVuZGVyZXIoKXtyZXR1cm4gdGhpcy5fZGF0YUludmFsaWRhdGVkP3RoaXMuX3VwZGF0ZUltcGxGdWxsKHRoaXMuX2RhdGFJbnZhbGlkYXRlZCkmJih0aGlzLl9kYXRhSW52YWxpZGF0ZWQ9bnVsbCx0aGlzLl92aWV3cG9ydEludmFsaWRhdGVkPSExKTp0aGlzLl92aWV3cG9ydEludmFsaWRhdGVkJiYodGhpcy5fdXBkYXRlSW1wbExpZ2h0KCksdGhpcy5fdmlld3BvcnRJbnZhbGlkYXRlZD0hMSksdGhpcy5fYXJlYVJlbmRlcmVyfV9taW5GaXJzdEJhckluZGV4KCl7cmV0dXJuLTEvMH1fcHJpY2VTY2FsZSgpe3JldHVybiB0aGlzLl9zb3VyY2UucHJpY2VTY2FsZSgpfV9maXJzdFZhbHVlKCl7cmV0dXJuIHRoaXMuX3NvdXJjZS5maXJzdFZhbHVlKCl9X2NyZWF0ZUFyZWFCYWNrZ3JvdW5kSXRlbSgpe2lmKCF0aGlzLl9wbG90R2VvbWV0cnlDYWNoZSl7Y29uc3QgZT10aGlzLl9zb3VyY2UucHJvcGVydGllcygpLmNoaWxkcygpLnN0eWxlcyx0PV8oZVt0aGlzLl9wbG90QUlkKCldLnBsb3R0eXBlLnZhbHVlKCkpLG89XyhlW3RoaXMuX3Bsb3RCSWQoKV0ucGxvdHR5cGUudmFsdWUoKSk7dGhpcy5fcGxvdEdlb21ldHJ5Q2FjaGU9e3Bsb3QxSGFzU3RlcGxpbmVHZW9tZXRyeTp0LHBsb3QySGFzU3RlcGxpbmVHZW9tZXRyeTpvfX1yZXR1cm4gbmV3IG4uQXJlYUJhY2tncm91bmRJdGVtKHRoaXMuX3Bsb3RHZW9tZXRyeUNhY2hlLnBsb3QxSGFzU3RlcGxpbmVHZW9tZXRyeSx0aGlzLl9wbG90R2VvbWV0cnlDYWNoZS5wbG90Mkhhc1N0ZXBsaW5lR2VvbWV0cnkpfV9wbG90TmFtZXMoKXtyZXR1cm4gdGhpcy5fc291cmNlLm1ldGFJbmZvKCkucGxvdHMubWFwKChlPT5lLmlkKSl9X3Bsb3RJbmRleDEoKXtyZXR1cm4gbnVsbD09PXRoaXMuX3BsSW5kZXgxJiYodGhpcy5fcGxJbmRleDE9dGhpcy5fcGxvdE5hbWVzKCkuaW5kZXhPZih0aGlzLl9wbG90QUlkKCkpKzEpLHRoaXMuX3BsSW5kZXgxfV9wbG90SW5kZXgyKCl7cmV0dXJuIG51bGw9PT10aGlzLl9wbEluZGV4MiYmKHRoaXMuX3BsSW5kZXgyPXRoaXMuX3Bsb3ROYW1lcygpLmluZGV4T2YodGhpcy5fcGxvdEJJZCgpKSsxKSx0aGlzLl9wbEluZGV4Mn1fdXBkYXRlSW1wbEZ1bGwoZSl7aWYodGhpcy5fYXJlYVJlbmRlcmVyLnNldERhdGEobnVsbCksdGhpcy5fcGxvdEdlb21ldHJ5Q2FjaGU9bnVsbCx0aGlzLl9kYXRhSW52YWxpZGF0ZWQ/LmNsZWFyRGF0YSYmKHRoaXMuX2l0ZW1zPVtdKSwhdGhpcy5fdmlzaWJsZSgpKXJldHVybiExO2lmKG51bGw9PT10aGlzLl9wcmljZVNjYWxlKCkpcmV0dXJuITE7aWYobnVsbD09PXRoaXMuX2ZpcnN0VmFsdWUoKSlyZXR1cm4hMTtjb25zdCB0PXRoaXMuX3NvdXJjZS5wbG90cygpLnBsb3R0YWJsZVJhbmdlKCksbz10LnNpemUoKTtpZigwPT09bylyZXR1cm4hMQo7Y29uc3Qgcj10aGlzLl9zb3VyY2Uub2Zmc2V0KHRoaXMuX3Bsb3RBSWQoKSksbj10aGlzLl9zb3VyY2Uub2Zmc2V0KHRoaXMuX3Bsb3RCSWQoKSksYT1NYXRoLm1pbihyLG4pLHM9TWF0aC5tYXgocixuKTtsZXQgYz1lLmZpcnN0SW5kZXg7Y29uc3QgdT1vKyhzLWEpKzEsaD10aGlzLl9wbG90SW5kZXgxKCksXz10aGlzLl9wbG90SW5kZXgyKCk7dSE9PXRoaXMuX2l0ZW1zLmxlbmd0aCYmKHZvaWQgMD09PWN8fDA9PT10aGlzLl9pdGVtcy5sZW5ndGh8fGM8dGhpcy5faXRlbXNbMF0udGltZVBvaW50SW5kZXgrYT8oYz12b2lkIDAsdGhpcy5faXRlbXM9ZCh1LDFlMTApKTp0aGlzLl9pdGVtcz10aGlzLl9pdGVtcy5jb25jYXQoZCh1LXRoaXMuX2l0ZW1zLmxlbmd0aCwxZTEwK3RoaXMuX2l0ZW1zLmxlbmd0aCkpKTtjb25zdCBwPXRoaXMuX2NvbG9yUGxvdEluZGV4LHY9dGhpcy5fdHJhbnNwYXJlbmN5KCksbT12b2lkIDA9PT1jP3QuZnVsbFJhbmdlSXRlcmF0b3IoKTp0LnJhbmdlSXRlcmF0b3IoYywoMCxpLmVuc3VyZU5vdE51bGwpKHQubGFzdEluZGV4KCkpKTtsZXQgST12b2lkIDAhPT1jPygwLGwubG93ZXJib3VuZCkodGhpcy5faXRlbXMsYythLCgoZSx0KT0+ZS50aW1lUG9pbnRJbmRleDx0KSktYTotYTtmb3IoY29uc3QgZSBvZiBtKXtjb25zdCB0PWUuaW5kZXgrcixvPWUuaW5kZXgrbixpPXRoaXMuX2l0ZW1zW0krcl0sbD10aGlzLl9pdGVtc1tJK25dO2lmKGkudGltZVBvaW50SW5kZXg9dCxsLnRpbWVQb2ludEluZGV4PW8sdGhpcy5faXNIbGluZUZpbGx8fChpLnBsb3QxVmFsdWU9ZS52YWx1ZVtoXT8/dm9pZCAwLGwucGxvdDJWYWx1ZT1lLnZhbHVlW19dPz92b2lkIDApLG51bGwhPT1wKXtjb25zdCB0PUkrYS0xO2lmKHQ+PTAmJnQ8dGhpcy5faXRlbXMubGVuZ3RoKXtjb25zdCBvPXRoaXMuX2l0ZW1zW3RdO2xldCBpO2k9MD09PXAudHlwZT97dHlwZTowLGNvbG9ySW5kZXhPclJnYmE6ZS52YWx1ZVtwLmNvbG9ySW5kZXhPclJnYmErMV19Ont0eXBlOjEsY29sb3JJbmRleE9yUmdiYTE6dm9pZCAwPT09cC5jb2xvckluZGV4T3JSZ2JhMT92b2lkIDA6ZS52YWx1ZVtwLmNvbG9ySW5kZXhPclJnYmExKzFdLGNvbG9ySW5kZXhPclJnYmEyOnZvaWQgMD09PXAuY29sb3JJbmRleE9yUmdiYTI/dm9pZCAwOmUudmFsdWVbcC5jb2xvckluZGV4T3JSZ2JhMisxXSx2YWx1ZTE6dm9pZCAwPT09cC52YWx1ZUluZGV4MT92b2lkIDA6ZS52YWx1ZVtwLnZhbHVlSW5kZXgxKzFdLHZhbHVlMjp2b2lkIDA9PT1wLnZhbHVlSW5kZXgyP3ZvaWQgMDplLnZhbHVlW3AudmFsdWVJbmRleDIrMV19O2NvbnN0IGw9by5jb2xvcj10aGlzLl9nZXRDb2xvckJ5UGxvdFZhbHVlKGkpPz92b2lkIDA7dm9pZCAwIT09bCYmKDE9PT1sLnR5cGU/KGwuY29sb3IxPWwuY29sb3IxJiZ0aGlzLl9nZW5lcmF0ZUNvbG9yKGwuY29sb3IxLHYpLGwuY29sb3IyPWwuY29sb3IyJiZ0aGlzLl9nZW5lcmF0ZUNvbG9yKGwuY29sb3IyLHYpKTpsLmNvbG9yPXRoaXMuX2dlbmVyYXRlQ29sb3IobC5jb2xvcix2KSl9fUkrPTF9cmV0dXJuIHRoaXMuX3VwZGF0ZUltcGxMaWdodCgpLCEwfV91cGRhdGVJbXBsTGlnaHQoKXtpZighdGhpcy5fdmlzaWJsZSgpKXJldHVybjtjb25zdCBlPXRoaXMuX3ByaWNlU2NhbGUoKTtpZihudWxsPT09ZSlyZXR1cm47Y29uc3QgdD10aGlzLl9maXJzdFZhbHVlKCk7aWYobnVsbD09PXQpcmV0dXJuO2lmKDA9PT10aGlzLl9pdGVtcy5sZW5ndGgpcmV0dXJuO2xldCBvO2lmKHRoaXMuX2lzSGxpbmVGaWxsKXtjb25zdCBsPXRoaXMuX3NvdXJjZS5wcm9wZXJ0aWVzKCkuYmFuZHNbKDAsaS5lbnN1cmVOb3ROdWxsKSh0aGlzLl9iYW5kQUtleSldLHI9dGhpcy5fc291cmNlLnByb3BlcnRpZXMoKS5iYW5kc1soMCxpLmVuc3VyZU5vdE51bGwpKHRoaXMuX2JhbmRCS2V5KV07bz17bGV2ZWwxOmUucHJpY2VUb0Nvb3JkaW5hdGUobC52YWx1ZS52YWx1ZSgpLHQpLGxldmVsMjplLnByaWNlVG9Db29yZGluYXRlKHIudmFsdWUudmFsdWUoKSx0KX19Y29uc3Qgcj10aGlzLl9tb2RlbC50aW1lU2NhbGUoKSxhPXIudmlzaWJsZUJhcnNTdHJpY3RSYW5nZSgpO2lmKG51bGw9PT1hKXJldHVybjtjb25zdCBzPWUucHJpY2VUb0Nvb3JkaW5hdGVGbih0KSxkPXRoaXMuX3RyYW5zcGFyZW5jeSgpLF89dGhpcy5fbWluRmlyc3RCYXJJbmRleCgpLHA9TWF0aC5tYXgoXyxhLmZpcnN0QmFyKCkpLHY9KDAsbC5sb3dlcmJvdW5kKSh0aGlzLl9pdGVtcyxwLCgoZSx0KT0+ZS50aW1lUG9pbnRJbmRleDx0KSk7aWYodj49dGhpcy5faXRlbXMubGVuZ3RoKXJldHVybjtjb25zdCBtPU1hdGgubWluKHRoaXMuX2l0ZW1zLmxlbmd0aC0xLCgwLGwubG93ZXJib3VuZCkodGhpcy5faXRlbXMsYS5sYXN0QmFyKCksKChlLHQpPT5lLnRpbWVQb2ludEluZGV4PHQpKSk7bGV0IEksZjt0aGlzLl9pc0hsaW5lRmlsbD8oST1fPT09cD92Ok1hdGgubWF4KDAsdi0xKSxmPU1hdGgubWluKHRoaXMuX2l0ZW1zLmxlbmd0aC0xLG0rMSkpOihJPV89PT1wP3Y6Yyh0aGlzLl9pdGVtcyx2LTEsLTEpPz92LGY9Yyh0aGlzLl9pdGVtcyxtKzEsMSk/P20pO2NvbnN0IGc9dGhpcy5fY29sb3JBcmVhcztnLmludmFsaWRhdGVDYWNoZSgpO2xldCB4LHk9bnVsbCxDPW51bGwsYj1udWxsO2NvbnN0IFA9dGhpcy5fY29tbW9uQ29sb3IoKTtsZXQgQjsxPT09UC50eXBlPyhQLmNvb3JkaW5hdGUxPXMoUC52YWx1ZTEpLFAuY29vcmRpbmF0ZTI9cyhQLnZhbHVlMiksUC5jb2xvcjE9UC5jb2xvcjEmJnRoaXMuX2dlbmVyYXRlQ29sb3IoUC5jb2xvcjEsZCksUC5jb2xvcjI9UC5jb2xvcjImJnRoaXMuX2dlbmVyYXRlQ29sb3IoUC5jb2xvcjIsZCkpOlAuY29sb3I9dGhpcy5fZ2VuZXJhdGVDb2xvcihQLmNvbG9yLGQpO2xldCBTPTA9PT1JO2ZvcihsZXQgZT1JO2U8PWY7ZSs9MSl7Y29uc3QgdD10aGlzLl9pdGVtc1tlXSxpPXQudGltZVBvaW50SW5kZXg7bGV0IGwsYTshdGhpcy5fZmlsbEdhcHMmJnZvaWQgMCE9PUImJmktQj4xJiYoeT1udWxsKSx2b2lkIDAhPT1vPyhsPW8ubGV2ZWwxLAphPW8ubGV2ZWwyKToobD10LnBsb3QxQ29vcmRpbmF0ZT12b2lkIDA9PT10LnBsb3QxVmFsdWU/dm9pZCAwOnModC5wbG90MVZhbHVlKSxhPXQucGxvdDJDb29yZGluYXRlPXZvaWQgMD09PXQucGxvdDJWYWx1ZT92b2lkIDA6cyh0LnBsb3QyVmFsdWUpKTtjb25zdCBkPXQueENvb3JkaW5hdGU9ci5pbmRleFRvQ29vcmRpbmF0ZSh0LnRpbWVQb2ludEluZGV4KTtpZih0LmNvbG9yJiYxPT09dC5jb2xvci50eXBlJiYodC5jb2xvci5jb29yZGluYXRlMT1zKHQuY29sb3IudmFsdWUxKSx0LmNvbG9yLmNvb3JkaW5hdGUyPXModC5jb2xvci52YWx1ZTIpKSx0aGlzLl9maWxsR2Fwcz92b2lkIDAhPT1sfHx2b2lkIDAhPT1hOnZvaWQgMCE9PWwmJnZvaWQgMCE9PWEpe2NvbnN0IG89bnVsbCE9PXRoaXMuX2NvbG9yUGxvdEluZGV4P3QuY29sb3J8fGg6UDtpZihBPW8sIShudWxsPT09KHc9Yil8fG51bGw9PT1BP3c9PT1BOjA9PT13LnR5cGUmJjA9PT1BLnR5cGU/dy5jb2xvcj09PUEuY29sb3I6MT09PXcudHlwZSYmMT09PUEudHlwZSYmdy5jb2xvcjE9PT1BLmNvbG9yMSYmdy5jb2xvcjI9PT1BLmNvbG9yMiYmdy5jb29yZGluYXRlMT09PUEuY29vcmRpbmF0ZTEmJncuY29vcmRpbmF0ZTI9PT1BLmNvb3JkaW5hdGUyKXx8bnVsbD09PXkpe2lmKG51bGwhPT15JiYodm9pZCAwIT09bCYmKHkuYWRkUG9pbnRzMVBvaW50KGQsbCxTKSxTPSExKSx2b2lkIDAhPT1hJiZ5LmFkZFBvaW50czJQb2ludChkLGEpKSxlPT09Ziljb250aW51ZTtiPW87Y29uc3QgdD11KG8pLGk9Zy5nZXQodCk/P25ldyBuLkFyZWFCYWNrZ3JvdW5kSXRlbXNHcm91cChvKTtDPXkseT1pLm5ld0l0ZW0oKT8/dGhpcy5fY3JlYXRlQXJlYUJhY2tncm91bmRJdGVtKCksaS5wdXNoKHkpLGcuc2V0KHQsaSl9dm9pZCAwIT09bCYmKHkuYWRkUG9pbnRzMVBvaW50KGQsbCxTKSxTPSExKSx2b2lkIDAhPT1hJiZ5LmFkZFBvaW50czJQb2ludChkLGEpfWVsc2UgdGhpcy5fZmlsbEdhcHN8fChiPW51bGwseT1udWxsLEM9bnVsbCk7Qj1pLHg9dH12YXIgdyxBO2cuZGVsZXRlKHUoaCkpO2NvbnN0IFY9e2JhclNwYWNpbmc6dGhpcy5fbW9kZWwudGltZVNjYWxlKCkuYmFyU3BhY2luZygpLGNvbG9yQXJlYXM6Z307dGhpcy5fYXJlYVJlbmRlcmVyLnNldERhdGEoVil9fX0sMTY2OTg4KGUsdCxvKXtvLmQodCx7QXJlYUJhY2tncm91bmRQYW5lVmlldzooKT0+cn0pO3ZhciBpPW8oMTM4NjM4KSxsPW8oODc3MjE3KTtjbGFzcyByIGV4dGVuZHMgbC5BYnN0cmFjdEZpbGxlZEFyZWFQYW5lVmlld3tjb25zdHJ1Y3RvcihlLHQpe3N1cGVyKGUsdCl9X3Bsb3RBSWQoKXtyZXR1cm4oMCxpLmVuc3VyZURlZmluZWQpKHRoaXMuX3NvdXJjZS5tZXRhSW5mbygpLmFyZWEpWzBdLm5hbWV9X3Bsb3RCSWQoKXtyZXR1cm4oMCxpLmVuc3VyZURlZmluZWQpKHRoaXMuX3NvdXJjZS5tZXRhSW5mbygpLmFyZWEpWzFdLm5hbWV9X2NvbW1vbkNvbG9yKCl7cmV0dXJue3R5cGU6MCxjb2xvcjp0aGlzLl9zb3VyY2UucHJvcGVydGllcygpLmFyZWFCYWNrZ3JvdW5kLmJhY2tncm91bmRDb2xvci52YWx1ZSgpfX1fdHJhbnNwYXJlbmN5KCl7cmV0dXJuIHRoaXMuX3NvdXJjZS5wcm9wZXJ0aWVzKCkuYXJlYUJhY2tncm91bmQudHJhbnNwYXJlbmN5Py52YWx1ZSgpPz8wfV92aXNpYmxlKCl7cmV0dXJuIHRoaXMuX3NvdXJjZS5wcm9wZXJ0aWVzKCkuYXJlYUJhY2tncm91bmQuZmlsbEJhY2tncm91bmQudmFsdWUoKX1fZ2V0Q29sb3JCeVBsb3RWYWx1ZShlKXtyZXR1cm4gdGhpcy5fY29tbW9uQ29sb3IoKX19fSw5ODMzNzgoZSx0LG8pe28uZCh0LHtnZW5lcmF0ZUNvbG9yQ2FjaGVkOigpPT5ufSk7dmFyIGk9byg2NjMwNDYpLGw9byg4NzM1NzMpLHI9byg1MTcyOTMpO2Z1bmN0aW9uIG4oZT0xZTMpe2NvbnN0IHQ9aS5kZWZhdWx0LkNhY2hlO2kuZGVmYXVsdC5DYWNoZT1yLkNpcmN1bGFyQ2FjaGVCdWZmZXIuYmluZChyLkNpcmN1bGFyQ2FjaGVCdWZmZXIsZSk7Y29uc3Qgbz0oMCxpLmRlZmF1bHQpKGwuZ2VuZXJhdGVDb2xvciwoKGUsdCxvKT0+YCR7ZX1fJHt0fV8ke299YCkpO3JldHVybiBpLmRlZmF1bHQuQ2FjaGU9dCxvfX19XSk7"}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/41506.4e481cfe3d7dcc9113df.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.255Z","timestamp":1785148034255,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/41506.4e481cfe3d7dcc9113df.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\ncontent-type: text/css; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a5dbd8a-ec4\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Mon, 20 Jul 2026 06:17:46 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/20/2026 11:21:55\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 6db058955b7f9eaca08e7900185e42ea\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":3780,"size_decoded":1592,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with very long lines (3780), with no line terminators","md5":"4fd46403ac7bdbbc945dafd84cf4cce7","sha1":"abd6547add65404e86c3af3ac24c2ff5b5e7465f","sha256":"d33a476bc76a1595c539524ddbb7c6e4bb5974d727ad3e30d51b941ce9bfc37b","sha512":"be32a0f9edfb7b21dae05b1d39bd71d5006ea92cbb25311c97915ec20eff60262d1c54a6ac1ca2077ce8cd870276676515361a5ca95413c92e49d0d9ae313e8f","ssdeep":"","tlshash":"407125fcea9078342d876dadda1eb73519c8f45797836eabb509a08040e96de10f350e","first_seen":"2026-07-20T16:56:18.315644Z","last_seen":"2026-07-27T12:47:44.625457Z","times_seen":83,"resource_available":false,"data":"LnByaWNlU2NhbGVNb2RlQnV0dG9uLVFZTUg1cFRley0tcHJpY2VTY2FsZU1vZGVCdXR0b25zLWNvbG9yOnZhcigtLWNvbG9yLWNvbnRlbnQtcHJpbWFyeS1uZXV0cmFsLWJvbGQpOy0tcHJpY2VTY2FsZU1vZGVCdXR0b25zLWJhY2tncm91bmQtaG92ZXI6dmFyKC0tY29sb3ItY29udGFpbmVyLWZpbGwtcHJpbWFyeS1uZXV0cmFsLWV4dHJhLWxpZ2h0KTstLXByaWNlU2NhbGVNb2RlQnV0dG9ucy1iYWNrZ3JvdW5kLWFjdGl2ZTp2YXIoLS1jb2xvci1jb250YWluZXItZmlsbC1wcmltYXJ5LW5ldXRyYWwtbGlnaHQpOy0tcHJpY2VTY2FsZU1vZGVCdXR0b25zLWJvcmRlcjp2YXIoLS1jb2xvci1ib3JkZXItcHJpbWFyeS1uZXV0cmFsLWxpZ2h0KTstLXByaWNlU2NhbGVNb2RlQnV0dG9ucy1hY3RpdmF0ZWQtY29sb3I6dmFyKC0tY29sb3ItY29udGVudC1zZWNvbmRhcnktaW52ZXJzZSk7LS1wcmljZVNjYWxlTW9kZUJ1dHRvbnMtYWN0aXZhdGVkLWJhY2tncm91bmQ6dmFyKC0tY29sb3ItY29udGFpbmVyLWZpbGwtcHJpbWFyeS1uZXV0cmFsLWV4dHJhLWJvbGQpOy0tcHJpY2VTY2FsZU1vZGVCdXR0b25zLWFjdGl2YXRlZC1ib3JkZXI6dmFyKC0tY29sb3ItY29udGFpbmVyLWZpbGwtcHJpbWFyeS1uZXV0cmFsLWV4dHJhLWJvbGQpOy0tcHJpY2VTY2FsZU1vZGVCdXR0b25zLWFjdGl2YXRlZC1ib3JkZXItaG92ZXI6dmFyKC0tY29sb3ItY29udGFpbmVyLWZpbGwtcHJpbWFyeS1uZXV0cmFsLWJvbGQpOy0tcHJpY2VTY2FsZU1vZGVCdXR0b25zLWFjdGl2YXRlZC1iYWNrZ3JvdW5kLWhvdmVyOnZhcigtLWNvbG9yLWNvbnRhaW5lci1maWxsLXByaW1hcnktbmV1dHJhbC1ib2xkKTtmb250LWZhbWlseTotYXBwbGUtc3lzdGVtLEJsaW5rTWFjU3lzdGVtRm9udCxUcmVidWNoZXQgTVMsUm9ib3RvLFVidW50dSxzYW5zLXNlcmlmO2ZvbnQtZmVhdHVyZS1zZXR0aW5nczoidG51bSIgb24sImxudW0iIG9uO2ZvbnQtc3R5bGU6bm9ybWFsOy0tdWktbGliLXR5cG9ncmFwaHktZm9udC1zaXplOjE0cHg7Zm9udC1zaXplOnZhcigtLXVpLWxpYi10eXBvZ3JhcGh5LWZvbnQtc2l6ZSk7Zm9udC13ZWlnaHQ6NDAwOy0tdWktbGliLXR5cG9ncmFwaHktbGluZS1oZWlnaHQ6MThweDtiYWNrZ3JvdW5kLWNvbG9yOmluaXRpYWw7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1wcmljZVNjYWxlTW9kZUJ1dHRvbnMtYm9yZGVyKTtib3JkZXItcmFkaXVzOjRweDtjb2xvcjp2YXIoLS1wcmljZVNjYWxlTW9kZUJ1dHRvbnMtY29sb3IpO2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2xpbmUtaGVpZ2h0OnZhcigtLXVpLWxpYi10eXBvZ3JhcGh5LWxpbmUtaGVpZ2h0KTtwYWRkaW5nOjFweCAwO3dpZHRoOjIwcHh9QG1lZGlhIChhbnktaG92ZXI6aG92ZXIpey5wcmljZVNjYWxlTW9kZUJ1dHRvbi1RWU1INXBUZTpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXByaWNlU2NhbGVNb2RlQnV0dG9ucy1iYWNrZ3JvdW5kLWhvdmVyKX19LnByaWNlU2NhbGVNb2RlQnV0dG9uLVFZTUg1cFRlOmFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXByaWNlU2NhbGVNb2RlQnV0dG9ucy1iYWNrZ3JvdW5kLWFjdGl2ZSl9LnByaWNlU2NhbGVNb2RlQnV0dG9uX2FjdGl2YXRlZC1RWU1INXBUZXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXByaWNlU2NhbGVNb2RlQnV0dG9ucy1hY3RpdmF0ZWQtYmFja2dyb3VuZCk7Ym9yZGVyLWNvbG9yOnZhcigtLXByaWNlU2NhbGVNb2RlQnV0dG9ucy1hY3RpdmF0ZWQtYm9yZGVyKTtjb2xvcjp2YXIoLS1wcmljZVNjYWxlTW9kZUJ1dHRvbnMtYWN0aXZhdGVkLWNvbG9yKX1AbWVkaWEgKGFueS1ob3Zlcjpob3Zlcil7LnByaWNlU2NhbGVNb2RlQnV0dG9uX2FjdGl2YXRlZC1RWU1INXBUZTpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXByaWNlU2NhbGVNb2RlQnV0dG9ucy1hY3RpdmF0ZWQtYmFja2dyb3VuZC1ob3Zlcik7Ym9yZGVyLWNvbG9yOnZhcigtLXByaWNlU2NhbGVNb2RlQnV0dG9ucy1hY3RpdmF0ZWQtYm9yZGVyLWhvdmVyKX19LnByaWNlU2NhbGVNb2RlQnV0dG9ucy1hYUtYNksxYXtib3gtc2l6aW5nOmJvcmRlci1ib3g7ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpjZW50ZXI7d2lkdGg6MTAwJX0ucHJpY2VTY2FsZU1vZGVCdXR0b25zX19idXR0b25XcmFwcGVyLWFhS1g2SzFhe2Rpc3BsYXk6ZmxleDtmbGV4OjEgMTtwYWRkaW5nOjRweH0ucHJpY2VTY2FsZU1vZGVCdXR0b25zX19idXR0b25XcmFwcGVyLWFhS1g2SzFhOmZpcnN0LWNoaWxke2p1c3RpZnktY29udGVudDpmbGV4LWVuZDtwYWRkaW5nLWlubGluZS1lbmQ6MnB4fS5wcmljZVNjYWxlTW9kZUJ1dHRvbnNfX2J1dHRvbldyYXBwZXItYWFLWDZLMWE6bGFzdC1jaGlsZHtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1zdGFydDtwYWRkaW5nLWlubGluZS1zdGFydDoycHh9LmNoYXJ0LXdpZGdldF9fYm90dG9tLS10aGVtZWQtbGlnaHQgLnByaWNlU2NhbGVNb2RlQnV0dG9uc19fYnV0dG9uLWFhS1g2SzFhey0tcHJpY2VTY2FsZU1vZGVCdXR0b25zLWNvbG9yOnZhcigtLWNvbG9yLWNvbGQtZ3JheS05MDApOy0tcHJpY2VTY2FsZU1vZGVCdXR0b25zLWJhY2tncm91bmQtaG92ZXI6dmFyKC0tY29sb3ItY29sZC1ncmF5LTEwMCk7LS1wcmljZVNjYWxlTW9kZUJ1dHRvbnMtYmFja2dyb3VuZC1hY3RpdmU6dmFyKC0tY29sb3ItY29sZC1ncmF5LTE1MCk7LS1wcmljZVNjYWxlTW9kZUJ1dHRvbnMtYm9yZGVyOnZhcigtLWNvbG9yLWNvbGQtZ3JheS0xNTApOy0tcHJpY2VTY2FsZU1vZGVCdXR0b25zLWFjdGl2YXRlZC1jb2xvcjp2YXIoLS1jb2xvci13aGl0ZSk7LS1wcmljZVNjYWxlTW9kZUJ1dHRvbnMtYWN0aXZhdGVkLWJhY2tncm91bmQ6dmFyKC0tY29sb3ItY29sZC1ncmF5LTgwMCk7LS1wcmljZVNjYWxlTW9kZUJ1dHRvbnMtYWN0aXZhdGVkLWJvcmRlcjp2YXIoLS1jb2xvci1jb2xkLWdyYXktODAwKTstLXByaWNlU2NhbGVNb2RlQnV0dG9ucy1hY3RpdmF0ZWQtYm9yZGVyLWhvdmVyOnZhcigtLWNvbG9yLWNvbGQtZ3JheS03MDApOy0tcHJpY2VTY2FsZU1vZGVCdXR0b25zLWFjdGl2YXRlZC1iYWNrZ3JvdW5kLWhvdmVyOnZhcigtLWNvbG9yLWNvbGQtZ3JheS03MDApfS5jaGFydC13aWRnZXRfX2JvdHRvbS0tdGhlbWVkLWRhcmsgLnByaWNlU2NhbGVNb2RlQnV0dG9uc19fYnV0dG9uLWFhS1g2SzFhey0tcHJpY2VTY2FsZU1vZGVCdXR0b25zLWNvbG9yOnZhcigtLWNvbG9yLWNvbGQtZ3JheS0yMDApOy0tcHJpY2VTY2FsZU1vZGVCdXR0b25zLWJhY2tncm91bmQtaG92ZXI6dmFyKC0tY29sb3ItY29sZC1ncmF5LTgwMCk7LS1wcmljZVNjYWxlTW9kZUJ1dHRvbnMtYmFja2dyb3VuZC1hY3RpdmU6dmFyKC0tY29sb3ItY29sZC1ncmF5LTc1MCk7LS1wcmljZVNjYWxlTW9kZUJ1dHRvbnMtYm9yZGVyOnZhcigtLWNvbG9yLWNvbGQtZ3JheS03MDApOy0tcHJpY2VTY2FsZU1vZGVCdXR0b25zLWFjdGl2YXRlZC1jb2xvcjp2YXIoLS1jb2xvci1jb2xkLWdyYXktOTAwKTstLXByaWNlU2NhbGVNb2RlQnV0dG9ucy1hY3RpdmF0ZWQtYmFja2dyb3VuZDp2YXIoLS1jb2xvci1jb2xkLWdyYXktMTAwKTstLXByaWNlU2NhbGVNb2RlQnV0dG9ucy1hY3RpdmF0ZWQtYm9yZGVyOnZhcigtLWNvbG9yLWNvbGQtZ3JheS0xMDApOy0tcHJpY2VTY2FsZU1vZGVCdXR0b25zLWFjdGl2YXRlZC1ib3JkZXItaG92ZXI6dmFyKC0tY29sb3ItY29sZC1ncmF5LTIwMCk7LS1wcmljZVNjYWxlTW9kZUJ1dHRvbnMtYWN0aXZhdGVkLWJhY2tncm91bmQtaG92ZXI6dmFyKC0tY29sb3ItY29sZC1ncmF5LTIwMCl9"}},"time_used":3,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":3,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/51880.cf8096ad9cf665e8f3bb.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.776Z","timestamp":1785148034776,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/51880.cf8096ad9cf665e8f3bb.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\ncontent-type: text/css; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a3509f3-7c6\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Fri, 19 Jun 2026 09:20:51 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.57\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 06/19/2026 10:48:25\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: b4185fbc475a2cc5f6be078ad709fd75\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":1990,"size_decoded":1243,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with very long lines (1990), with no line terminators","md5":"9ae7e817d5ebf4b7da4fe82c6b521a11","sha1":"4913f9e6418079a5343a331d6bbaea0058216f3f","sha256":"079df4a29dac31ba71f5e4a369b6f3b9125b87bdb22ba9c65a0ce70fa87cbcaf","sha512":"c43090056d4c668d0d3affbf92f0dbfc4f55ddb0c3daae70a76757a8d2fbc0631a4fbcdb2d0a266651b4929ccaf48d74214c5967811d42fe2d4dd101ddbff0c4","ssdeep":"","tlshash":"164182d8fac1a0bb2e46a2bf07a9d16f4a45fd16e801d6d5772c913020c3bf69493f19","first_seen":"2026-07-04T06:34:20.004067Z","last_seen":"2026-07-27T10:28:13.940417Z","times_seen":15,"resource_available":false,"data":"W2RhdGEtdGhlbWU9bGlnaHRdey0tXzAtNThjZzp2YXIoLS1jb2xvci1ibGFjayk7LS1fMS01OGNnOnZhcigtLWNvbG9yLWNvbGQtZ3JheS05MDApOy0tXzItNThjZzp2YXIoLS1jb2xvci10YW4tb3JhbmdlLTcwMCk7LS1fMy01OGNnOnZhcigtLWNvbG9yLXR2LWJsdWUtODAwKTstLV80LTU4Y2c6dmFyKC0tY29sb3ItZGVlcC1ibHVlLTYwMCk7LS1fNS01OGNnOnZhcigtLWNvbG9yLWZvcmVzdC1ncmVlbi04MDApOy0tXzYtNThjZzp2YXIoLS1jb2xvci1yaXBlLXJlZC04MDApOy0tXzctNThjZzp2YXIoLS1jb2xvci1vdmVybGF5LXdhcm5pbmctMS1saWdodCk7LS1fOC01OGNnOnZhcigtLWNvbG9yLXRhbi1vcmFuZ2UtNzAwKTstLV85LTU4Y2c6dmFyKC0tY29sb3Itb3ZlcmxheS1hY2NlbnQtMS1saWdodCk7LS1fMTAtNThjZzp2YXIoLS1jb2xvci10di1ibHVlLTgwMCk7LS1fMTEtNThjZzp2YXIoLS1jb2xvci1vdmVybGF5LWFjY2VudC00LWxpZ2h0KTstLV8xMi01OGNnOnZhcigtLWNvbG9yLWRlZXAtYmx1ZS02MDApOy0tXzEzLTU4Y2c6dmFyKC0tY29sb3Itb3ZlcmxheS1wb3NpdGl2ZS0yLWxpZ2h0KTstLV8xNC01OGNnOnZhcigtLWNvbG9yLWZvcmVzdC1ncmVlbi04MDApOy0tXzE1LTU4Y2c6dmFyKC0tY29sb3Itb3ZlcmxheS1uZWdhdGl2ZS0xLWxpZ2h0KTstLV8xNi01OGNnOnZhcigtLWNvbG9yLXJpcGUtcmVkLTgwMCl9W2RhdGEtdGhlbWU9ZGFya117LS1fMC01OGNnOnZhcigtLWNvbG9yLXdoaXRlKTstLV8xLTU4Y2c6dmFyKC0tY29sb3ItY29sZC1ncmF5LTIwMCk7LS1fMi01OGNnOnZhcigtLWNvbG9yLXRhbi1vcmFuZ2UtNjAwKTstLV8zLTU4Y2c6dmFyKC0tY29sb3ItdHYtYmx1ZS1hMTAwKTstLV80LTU4Y2c6dmFyKC0tY29sb3ItZGVlcC1ibHVlLWExMDApOy0tXzUtNThjZzp2YXIoLS1jb2xvci1mb3Jlc3QtZ3JlZW4tNDAwKTstLV82LTU4Y2c6dmFyKC0tY29sb3ItcmlwZS1yZWQtYTQwMCk7LS1fNy01OGNnOnZhcigtLWNvbG9yLW92ZXJsYXktd2FybmluZy0xLWxpZ2h0KTstLV84LTU4Y2c6dmFyKC0tY29sb3ItdGFuLW9yYW5nZS02MDApOy0tXzktNThjZzp2YXIoLS1jb2xvci1vdmVybGF5LWFjY2VudC0xLWxpZ2h0KTstLV8xMC01OGNnOnZhcigtLWNvbG9yLXR2LWJsdWUtYTEwMCk7LS1fMTEtNThjZzp2YXIoLS1jb2xvci1vdmVybGF5LWFjY2VudC00LWxpZ2h0KTstLV8xMi01OGNnOnZhcigtLWNvbG9yLWRlZXAtYmx1ZS1hMTAwKTstLV8xMy01OGNnOnZhcigtLWNvbG9yLW92ZXJsYXktcG9zaXRpdmUtMi1saWdodCk7LS1fMTQtNThjZzp2YXIoLS1jb2xvci1mb3Jlc3QtZ3JlZW4tNDAwKTstLV8xNS01OGNnOnZhcigtLWNvbG9yLW92ZXJsYXktbmVnYXRpdmUtMS1saWdodCk7LS1fMTYtNThjZzp2YXIoLS1jb2xvci1yaXBlLXJlZC1hNDAwKX0uaW1wb3J0YW50LXYwUTF5MHYxey0tdWktbGliLWJhZGdlLWJhY2tncm91bmQ6dmFyKC0tXzktNThjZyk7LS11aS1saWItYmFkZ2UtY29sb3ItY29udGVudDp2YXIoLS1fMTAtNThjZyl9LmV4Y2x1c2l2ZS12MFExeTB2MXstLXVpLWxpYi1iYWRnZS1iYWNrZ3JvdW5kOnZhcigtLV8xMS01OGNnKTstLXVpLWxpYi1iYWRnZS1jb2xvci1jb250ZW50OnZhcigtLV8xMi01OGNnKX0uZmxhc2gtdjBRMXkwdjF7LS11aS1saWItYmFkZ2UtYmFja2dyb3VuZDp2YXIoLS1fNy01OGNnKTstLXVpLWxpYi1iYWRnZS1jb2xvci1jb250ZW50OnZhcigtLV84LTU4Y2cpfS5wb3NpdGl2ZS12MFExeTB2MXstLXVpLWxpYi1iYWRnZS1iYWNrZ3JvdW5kOnZhcigtLV8xMy01OGNnKTstLXVpLWxpYi1iYWRnZS1jb2xvci1jb250ZW50OnZhcigtLV8xNC01OGNnKX0ubmVnYXRpdmUtdjBRMXkwdjF7LS11aS1saWItYmFkZ2UtYmFja2dyb3VuZDp2YXIoLS1fMTUtNThjZyk7LS11aS1saWItYmFkZ2UtY29sb3ItY29udGVudDp2YXIoLS1fMTYtNThjZyl9LmJsb2NrLWdiczVwQjlae2Rpc3BsYXk6aW5saW5lLWZsZXg7ZmxleC13cmFwOm5vd3JhcDtnYXA6NHB4fQ=="}},"time_used":3,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":3,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/80731.f968385be2e20062beda.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.781Z","timestamp":1785148034781,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/80731.f968385be2e20062beda.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\ncontent-type: text/css; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding, Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\netag: W/\"69f98b76-1bd\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Tue, 05 May 2026 06:17:26 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.51\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 05/05/2026 10:18:38\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: cae75649a1ab781d4d0b905ad8c46469\r\ncdn-cache: HIT\r\ncontent-encoding: br\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":445,"size_decoded":1056,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with very long lines (445), with no line terminators","md5":"b78aa6501d4ed3636d43d717e892b2e5","sha1":"142caa552f351c0f83135c3543c1cfb7bac08c30","sha256":"b29ada95d93cff175fbf22d43b7775aacb0a4616b43e1b3c026562562bf2f50f","sha512":"5966661a95f4cbef488707aea6ecda0a04b813c959ac0ccbb3e525aa8632139357348759c47df775b24c7151f904898d17c74825e019c88f8e56b4f559798ba1","ssdeep":"","tlshash":"61f05c4002d4192df82fa22255818288393bc922d8f3ef7f82833e3642ba4fc2b33000","first_seen":"2026-04-04T14:08:55.449546Z","last_seen":"2026-07-27T10:28:13.950634Z","times_seen":19,"resource_available":false,"data":"Lmljb257YmFja2dyb3VuZDp1cmwoaWNvbnMuNGQzOTAxOGQwNzY2Y2Y3MDA2YmMucG5nKSAwIDAgbm8tcmVwZWF0O2Rpc3BsYXk6aW5saW5lLWJsb2NrO3Bvc2l0aW9uOnJlbGF0aXZlO3ZlcnRpY2FsLWFsaWduOm1pZGRsZX0uaWNvbi1wbHVze2JhY2tncm91bmQtcG9zaXRpb246LTQwcHggMDtoZWlnaHQ6MTRweDtpbnNldC1pbmxpbmUtc3RhcnQ6LTVweDt3aWR0aDoxNHB4fS5pY29uLXNuYXBzaG90LXNtYWxse2JhY2tncm91bmQtcG9zaXRpb246LTgwcHggLTI0MHB4O2hlaWdodDo5cHg7dG9wOjVweDt2ZXJ0aWNhbC1hbGlnbjp0b3A7d2lkdGg6MTFweH0uaWNvbi1zbmFwc2hvdC1kZWxldGV7YmFja2dyb3VuZC1wb3NpdGlvbjotMjBweCAtMjYwcHg7Y3Vyc29yOnBvaW50ZXI7aGVpZ2h0OjdweDttYXJnaW4tYmxvY2s6MCAwO21hcmdpbi1pbmxpbmU6NXB4IDA7d2lkdGg6N3B4fQ=="}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/26100.7677fc7ff8fc4a0d75f1.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.817Z","timestamp":1785148034817,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/26100.7677fc7ff8fc4a0d75f1.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\ncontent-type: text/css; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a58ab11-1e00\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Thu, 16 Jul 2026 09:57:37 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/16/2026 11:04:45\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 95d21bac0b81cb54f6fb7e81822ab5f9\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":7680,"size_decoded":2481,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with very long lines (7680), with no line terminators","md5":"081686f1e769de76b1be5577bb179086","sha1":"ea802190913b20633dfac184e53b07b1fd0e3996","sha256":"0214eb192c9b2043da93943abcbfe6825cf16b66c57f01b6841146848194a06a","sha512":"e790dc5f780c75df92b59276eb79d9fb1f8f6d5c84fb5e3e0579abcd54b7faf803fc40252cab82f70f5ba2d29a85442b8afbe3dc1ddfa96768c4458a9caf9b50","ssdeep":"96:1ootxHIKZbkTCewXQdmR9V0V5NWIXSCJWLfWUmbkyLohvWMJWEW+:1HNlcCewAw2OfWUQkMohT","tlshash":"92f120272fc41639b85745eda0906658b948de33d6a3ecd9fe01beb6c5c14bb121cf18","first_seen":"2026-07-17T15:20:24.848055Z","last_seen":"2026-07-27T10:28:13.774901Z","times_seen":32,"resource_available":false,"data":"LmNvbnRhaW5lci1GNTBnbmZlWXtjb250YWluOnBhaW50O3Bvc2l0aW9uOnJlbGF0aXZlOy0tcmVjb21tZW5kYXRpb24tZGVncmVlczotOTBkZWd9LnNjYWxlLWNvbnRhaW5lci1GNTBnbmZlWXtvdmVyZmxvdzpoaWRkZW47cG9zaXRpb246YWJzb2x1dGV9LmNvbnRhaW5lci1zbWFsbC1GNTBnbmZlWXtoZWlnaHQ6ODNweDt3aWR0aDoxNTRweH0uY29udGFpbmVyLXNtYWxsLUY1MGduZmVZIC5zY2FsZS1jb250YWluZXItRjUwZ25mZVl7aGVpZ2h0Ojc3cHg7d2lkdGg6MTU0cHh9LmNvbnRhaW5lci1zbWFsbC1GNTBnbmZlWSAuYm9yZGVyLUY1MGduZmVZe2JvcmRlci13aWR0aDo1cHh9LmNvbnRhaW5lci1zbWFsbC1GNTBnbmZlWSAubWFzay1GNTBnbmZlWXstd2Via2l0LW1hc2s6dXJsKGdhdWdlLXNtYWxsLjllY2I4MTBmMzQ5MTczNWUyMGUzLnN2Zyk7bWFzazp1cmwoZ2F1Z2Utc21hbGwuOWVjYjgxMGYzNDkxNzM1ZTIwZTMuc3ZnKX0uY29udGFpbmVyLXNtYWxsLUY1MGduZmVZIC5hcnJvdy1GNTBnbmZlWXtib3R0b206NnB4O2hlaWdodDo1OXB4O2luc2V0LWlubGluZS1zdGFydDpjYWxjKDUwJSAtIDNweCk7d2lkdGg6NnB4fS5jb250YWluZXItc21hbGwtRjUwZ25mZVkgLmFycm93LUY1MGduZmVZIC5pY29uLUY1MGduZmVZe21hcmdpbi10b3A6M3B4fS5jb250YWluZXItbWVkaXVtLUY1MGduZmVZe2hlaWdodDoxMThweDt3aWR0aDoyMjBweH0uY29udGFpbmVyLW1lZGl1bS1GNTBnbmZlWSAuc2NhbGUtY29udGFpbmVyLUY1MGduZmVZe2hlaWdodDoxMTBweDt3aWR0aDoyMjBweH0uY29udGFpbmVyLW1lZGl1bS1GNTBnbmZlWSAuYm9yZGVyLUY1MGduZmVZe2JvcmRlci13aWR0aDo3cHh9LmNvbnRhaW5lci1tZWRpdW0tRjUwZ25mZVkgLm1hc2stRjUwZ25mZVl7LXdlYmtpdC1tYXNrOnVybChnYXVnZS1tZWRpdW0uZjkxMDFiMTk5MjBhMGI4ZGUxMjkuc3ZnKTttYXNrOnVybChnYXVnZS1tZWRpdW0uZjkxMDFiMTk5MjBhMGI4ZGUxMjkuc3ZnKX0uY29udGFpbmVyLW1lZGl1bS1GNTBnbmZlWSAuYXJyb3ctRjUwZ25mZVl7Ym90dG9tOjhweDtoZWlnaHQ6NzdweDtpbnNldC1pbmxpbmUtc3RhcnQ6Y2FsYyg1MCUgLSA0cHgpO3dpZHRoOjhweH0uY29udGFpbmVyLW1lZGl1bS1GNTBnbmZlWSAuYXJyb3ctRjUwZ25mZVkgLmljb24tRjUwZ25mZVl7bWFyZ2luLXRvcDo0cHh9LmNvbnRhaW5lci1sYXJnZS1GNTBnbmZlWXtoZWlnaHQ6MTcwcHg7d2lkdGg6MzE2cHh9LmNvbnRhaW5lci1sYXJnZS1GNTBnbmZlWSAuc2NhbGUtY29udGFpbmVyLUY1MGduZmVZe2hlaWdodDoxNThweDt3aWR0aDozMTZweH0uY29udGFpbmVyLWxhcmdlLUY1MGduZmVZIC5ib3JkZXItRjUwZ25mZVl7Ym9yZGVyLXdpZHRoOjExcHh9LmNvbnRhaW5lci1sYXJnZS1GNTBnbmZlWSAubWFzay1GNTBnbmZlWXstd2Via2l0LW1hc2s6dXJsKGdhdWdlLWxhcmdlLjdkNzhhNTJmMGJjNDg0YjQxYjU0LnN2Zyk7bWFzazp1cmwoZ2F1Z2UtbGFyZ2UuN2Q3OGE1MmYwYmM0ODRiNDFiNTQuc3ZnKX0uY29udGFpbmVyLWxhcmdlLUY1MGduZmVZIC5hcnJvdy1GNTBnbmZlWXtib3R0b206MTJweDtoZWlnaHQ6MTE3cHg7aW5zZXQtaW5saW5lLXN0YXJ0OmNhbGMoNTAlIC0gNnB4KTt3aWR0aDoxMnB4fS5jb250YWluZXItbGFyZ2UtRjUwZ25mZVkgLmFycm93LUY1MGduZmVZIC5pY29uLUY1MGduZmVZe21hcmdpbi10b3A6NnB4fS5ib3JkZXItRjUwZ25mZVl7Ym9yZGVyLWNvbG9yOnZhcigtLWNvbG9yLWRpdmlkZXIpO2JvcmRlci1yYWRpdXM6NTAlO2JvcmRlci1zdHlsZTpzb2xpZDtib3gtc2l6aW5nOmJvcmRlci1ib3g7aGVpZ2h0OjIwMCU7aW5zZXQtaW5saW5lLXN0YXJ0OjA7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7d2lkdGg6MTAwJX0ubWFzay1GNTBnbmZlWXtoZWlnaHQ6MTAwJTt0cmFuc2Zvcm06cm90YXRlKHZhcigtLXJlY29tbWVuZGF0aW9uLWRlZ3JlZXMpKTt0cmFuc2Zvcm0tb3JpZ2luOmJvdHRvbTt3aWR0aDoxMDAlfS5iYWNrZ3JvdW5kLUY1MGduZmVZe2JvcmRlci1yYWRpdXM6NTAlO2hlaWdodDoyMDAlO3RyYW5zZm9ybTpyb3RhdGUoY2FsYyh2YXIoLS1yZWNvbW1lbmRhdGlvbi1kZWdyZWVzKSotMSkpO3RyYW5zZm9ybS1vcmlnaW46Y2VudGVyO3dpZHRoOjEwMCV9LmFycm93LUY1MGduZmVZe2JvdHRvbTowO2NvbG9yOnZhcigtLWNvbG9yLXRleHQtcHJpbWFyeSk7cG9zaXRpb246YWJzb2x1dGU7dHJhbnNmb3JtOnJvdGF0ZShjYWxjKDkwZGVnICsgdmFyKC0tcmVjb21tZW5kYXRpb24tZGVncmVlcykpKTt0cmFuc2Zvcm0tb3JpZ2luOmJvdHRvbX0uYXJyb3dXcmFwLUY1MGduZmVZLC5tYXNrV3JhcC1GNTBnbmZlWXtoZWlnaHQ6MTAwJTt0cmFuc2Zvcm0tb3JpZ2luOmJvdHRvbTt3aWR0aDoxMDAlfS5hbmltYXRlZC1GNTBnbmZlWSAuYXJyb3dXcmFwLUY1MGduZmVZLC5hbmltYXRlZC1GNTBnbmZlWSAubWFza1dyYXAtRjUwZ25mZVl7YW5pbWF0aW9uOnRyZW1vci10cmFuc2Zvcm0tRjUwZ25mZVkgM3MgaW5maW5pdGV9QG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOnJlZHVjZSl7LmFuaW1hdGVkLUY1MGduZmVZIC5hcnJvd1dyYXAtRjUwZ25mZVksLmFuaW1hdGVkLUY1MGduZmVZIC5tYXNrV3JhcC1GNTBnbmZlWXthbmltYXRpb24tcGxheS1zdGF0ZTpwYXVzZWR9fS5hcnJvdy1GNTBnbmZlWSwuYmFja2dyb3VuZC1GNTBnbmZlWSwubWFzay1GNTBnbmZlWXt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuOHMgY3ViaWMtYmV6aWVyKC4zMiwwLC4xNSwxKX1AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246cmVkdWNlKXsuYXJyb3ctRjUwZ25mZVksLmJhY2tncm91bmQtRjUwZ25mZVksLm1hc2stRjUwZ25mZVl7dHJhbnNpdGlvbjpub25lfX0uaWNvbi1GNTBnbmZlWXtkaXNwbGF5OmJsb2NrfUBrZXlmcmFtZXMgdHJlbW9yLXRyYW5zZm9ybS1GNTBnbmZlWXswJXt0cmFuc2Zvcm06cm90YXRlKDBkZWcpfTUwJXt0cmFuc2Zvcm06cm90YXRlKDFkZWcpfTc1JXt0cmFuc2Zvcm06cm90YXRlKC0xZGVnKX10b3t0cmFuc2Zvcm06cm90YXRlKDBkZWcpfX1bZGF0YS10aGVtZT1saWdodF17LS1fMC1Pc2tvOnZhcigtLWNvbG9yLWNvbGQtZ3JheS0zMDApfVtkYXRhLXRoZW1lPWRhcmtdey0tXzAtT3Nrbzp2YXIoLS1jb2xvci1jb2xkLWdyYXktNjAwKX0uY29udGFpbmVyLVNVeUNza1Vae2FsaWduLWl0ZW1zOmNlbnRlcjtkaXJlY3Rpb246bHRyO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW59LmJ1eS1TVXlDc2tVWiwubmV1dHJhbC1TVXlDc2tVWiwuc2VsbC1TVXlDc2tVWiwuc3Ryb25nLWJ1eS1TVXlDc2tVWiwuc3Ryb25nLXNlbGwtU1V5Q3NrVVp7Y29sb3I6dmFyKC0tXzAtT3Nrbyk7dGV4dC1hbGlnbjpjZW50ZXI7dHJhbnNpdGlvbjpjb2xvciAuNXMgY3ViaWMtYmV6aWVyKC4zMiwwLC4xNSwxKX0uY29udGFpbmVyLXNtYWxsLVNVeUNza1Vae2hlaWdodDoyNnB4fS5jb250YWluZXItc21hbGwtU1V5Q3NrVVogLmJ1eS1TVXlDc2tVWiwuY29udGFpbmVyLXNtYWxsLVNVeUNza1VaIC5uZXV0cmFsLVNVeUNza1VaLC5jb250YWluZXItc21hbGwtU1V5Q3NrVVogLnNlbGwtU1V5Q3NrVVosLmNvbnRhaW5lci1zbWFsbC1TVXlDc2tVWiAuc3Ryb25nLWJ1eS1TVXlDc2tVWiwuY29udGFpbmVyLXNtYWxsLVNVeUNza1VaIC5zdHJvbmctc2VsbC1TVXlDc2tVWntmb250LWZhbWlseTotYXBwbGUtc3lzdGVtLEJsaW5rTWFjU3lzdGVtRm9udCxUcmVidWNoZXQgTVMsUm9ib3RvLFVidW50dSxzYW5zLXNlcmlmO2ZvbnQtZmVhdHVyZS1zZXR0aW5nczoidG51bSIgb24sImxudW0iIG9uOy0tdWktbGliLXR5cG9ncmFwaHktbGluZS1oZWlnaHQ6MTZweDtsaW5lLWhlaWdodDp2YXIoLS11aS1saWItdHlwb2dyYXBoeS1saW5lLWhlaWdodCk7LS11aS1saWItdHlwb2dyYXBoeS1mb250LXNpemU6MTJweDtmb250LXNpemU6dmFyKC0tdWktbGliLXR5cG9ncmFwaHktZm9udC1zaXplKTtmb250LXN0eWxlOm5vcm1hbDtmb250LXdlaWdodDo2MDB9LmNvbnRhaW5lci1zbWFsbC1TVXlDc2tVWiAudGV4dFJvdy1TVXlDc2tVWntoZWlnaHQ6MTZweH0uY29udGFpbmVyLXNtYWxsLVNVeUNza1VaIC50ZXh0Um93TWlkZGxlLVNVeUNza1Vae2dyaWQtY29sdW1uLWdhcDoxMzZweDttYXJnaW4tdG9wOjEwcHh9LmNvbnRhaW5lci1zbWFsbC1TVXlDc2tVWiAudGV4dFJvd0JvdHRvbS1TVXlDc2tVWntncmlkLWNvbHVtbi1nYXA6MTgwcHg7bWFyZ2luLXRvcDoyMnB4fS5jb250YWluZXItbWVkaXVtLVNVeUNza1Vae2hlaWdodDoyOHB4fS5jb250YWluZXItbWVkaXVtLVNVeUNza1VaIC5idXktU1V5Q3NrVVosLmNvbnRhaW5lci1tZWRpdW0tU1V5Q3NrVVogLm5ldXRyYWwtU1V5Q3NrVVosLmNvbnRhaW5lci1tZWRpdW0tU1V5Q3NrVVogLnNlbGwtU1V5Q3NrVVosLmNvbnRhaW5lci1tZWRpdW0tU1V5Q3NrVVogLnN0cm9uZy1idXktU1V5Q3NrVVosLmNvbnRhaW5lci1tZWRpdW0tU1V5Q3NrVVogLnN0cm9uZy1zZWxsLVNVeUNza1Vae2ZvbnQtZmFtaWx5Oi1hcHBsZS1zeXN0ZW0sQmxpbmtNYWNTeXN0ZW1Gb250LFRyZWJ1Y2hldCBNUyxSb2JvdG8sVWJ1bnR1LHNhbnMtc2VyaWY7Zm9udC1mZWF0dXJlLXNldHRpbmdzOiJ0bnVtIiBvbiwibG51bSIgb247Zm9udC1zdHlsZTpub3JtYWw7LS11aS1saWItdHlwb2dyYXBoeS1mb250LXNpemU6MTRweDtmb250LXNpemU6dmFyKC0tdWktbGliLXR5cG9ncmFwaHktZm9udC1zaXplKTtmb250LXdlaWdodDo2MDA7LS11aS1saWItdHlwb2dyYXBoeS1saW5lLWhlaWdodDoxOHB4O2xpbmUtaGVpZ2h0OnZhcigtLXVpLWxpYi10eXBvZ3JhcGh5LWxpbmUtaGVpZ2h0KX0uY29udGFpbmVyLW1lZGl1bS1TVXlDc2tVWiAudGV4dFJvdy1TVXlDc2tVWntoZWlnaHQ6MThweH0uY29udGFpbmVyLW1lZGl1bS1TVXlDc2tVWiAudGV4dFJvd01pZGRsZS1TVXlDc2tVWntncmlkLWNvbHVtbi1nYXA6MTY2cHg7bWFyZ2luLXRvcDoxMHB4fS5jb250YWluZXItbWVkaXVtLVNVeUNza1VaIC50ZXh0Um93Qm90dG9tLVNVeUNza1Vae2dyaWQtY29sdW1uLWdhcDoyMzhweDttYXJnaW4tdG9wOjM0cHh9LmNvbnRhaW5lci1sYXJnZS1TVXlDc2tVWntoZWlnaHQ6NDJweH0uY29udGFpbmVyLWxhcmdlLVNVeUNza1VaIC5idXktU1V5Q3NrVVosLmNvbnRhaW5lci1sYXJnZS1TVXlDc2tVWiAubmV1dHJhbC1TVXlDc2tVWiwuY29udGFpbmVyLWxhcmdlLVNVeUNza1VaIC5zZWxsLVNVeUNza1VaLC5jb250YWluZXItbGFyZ2UtU1V5Q3NrVVogLnN0cm9uZy1idXktU1V5Q3NrVVosLmNvbnRhaW5lci1sYXJnZS1TVXlDc2tVWiAuc3Ryb25nLXNlbGwtU1V5Q3NrVVp7Zm9udC1mYW1pbHk6LWFwcGxlLXN5c3RlbSxCbGlua01hY1N5c3RlbUZvbnQsVHJlYnVjaGV0IE1TLFJvYm90byxVYnVudHUsc2Fucy1zZXJpZjtmb250LWZlYXR1cmUtc2V0dGluZ3M6InRudW0iIG9uLCJsbnVtIiBvbjtmb250LXN0eWxlOm5vcm1hbDstLXVpLWxpYi10eXBvZ3JhcGh5LWZvbnQtc2l6ZToxNnB4O2ZvbnQtc2l6ZTp2YXIoLS11aS1saWItdHlwb2dyYXBoeS1mb250LXNpemUpO2ZvbnQtd2VpZ2h0OjYwMDstLXVpLWxpYi10eXBvZ3JhcGh5LWxpbmUtaGVpZ2h0OjI0cHg7bGluZS1oZWlnaHQ6dmFyKC0tdWktbGliLXR5cG9ncmFwaHktbGluZS1oZWlnaHQpfS5jb250YWluZXItbGFyZ2UtU1V5Q3NrVVogLnRleHRSb3ctU1V5Q3NrVVp7aGVpZ2h0OjI0cHh9LmNvbnRhaW5lci1sYXJnZS1TVXlDc2tVWiAudGV4dFJvd01pZGRsZS1TVXlDc2tVWntncmlkLWNvbHVtbi1nYXA6MjI4cHg7bWFyZ2luLXRvcDoxOHB4fS5jb250YWluZXItbGFyZ2UtU1V5Q3NrVVogLnRleHRSb3dCb3R0b20tU1V5Q3NrVVp7Z3JpZC1jb2x1bW4tZ2FwOjM2MHB4O21hcmdpbi10b3A6NTZweH0udGV4dFJvdy1TVXlDc2tVWntkaXNwbGF5OmdyaWQ7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOnJlcGVhdCgyLDFmcil9LmNvbnRhaW5lci1mTEZlb09hb3twb3NpdGlvbjpyZWxhdGl2ZTt0ZXh0LWFsaWduOmNlbnRlcjt3aWR0aDoxMDAlfS5jb250YWluZXItc21hbGwtZkxGZW9PYW97aGVpZ2h0OjI0cHg7bWFyZ2luLXRvcDo4cHh9LmNvbnRhaW5lci1tZWRpdW0tZkxGZW9PYW97aGVpZ2h0OjI0cHg7bWFyZ2luLXRvcDo2cHh9LmNvbnRhaW5lci1sYXJnZS1mTEZlb09hb3toZWlnaHQ6MjhweDttYXJnaW4tdG9wOjRweH0udGV4dC1zbWFsbC1mTEZlb09hb3stLXVpLWxpYi10eXBvZ3JhcGh5LWZvbnQtc2l6ZToxNnB4Oy0tdWktbGliLXR5cG9ncmFwaHktbGluZS1oZWlnaHQ6MjRweH0udGV4dC1tZWRpdW0tZkxGZW9PYW8sLnRleHQtc21hbGwtZkxGZW9PYW97Zm9udC1mYW1pbHk6LWFwcGxlLXN5c3RlbSxCbGlua01hY1N5c3RlbUZvbnQsVHJlYnVjaGV0IE1TLFJvYm90byxVYnVudHUsc2Fucy1zZXJpZjtmb250LWZlYXR1cmUtc2V0dGluZ3M6InRudW0iIG9uLCJsbnVtIiBvbjtmb250LXNpemU6dmFyKC0tdWktbGliLXR5cG9ncmFwaHktZm9udC1zaXplKTtmb250LXN0eWxlOm5vcm1hbDtmb250LXdlaWdodDo2MDA7bGluZS1oZWlnaHQ6dmFyKC0tdWktbGliLXR5cG9ncmFwaHktbGluZS1oZWlnaHQpfS50ZXh0LW1lZGl1bS1mTEZlb09hb3stLXVpLWxpYi10eXBvZ3JhcGh5LWZvbnQtc2l6ZToyMHB4Oy0tdWktbGliLXR5cG9ncmFwaHktbGluZS1oZWlnaHQ6MjRweH0udGV4dC1sYXJnZS1mTEZlb09hb3tmb250LWZhbWlseTotYXBwbGUtc3lzdGVtLEJsaW5rTWFjU3lzdGVtRm9udCxUcmVidWNoZXQgTVMsUm9ib3RvLFVidW50dSxzYW5zLXNlcmlmO2ZvbnQtZmVhdHVyZS1zZXR0aW5nczoidG51bSIgb24sImxudW0iIG9uOy0tdWktbGliLXR5cG9ncmFwaHktbGluZS1oZWlnaHQ6MjhweDtsaW5lLWhlaWdodDp2YXIoLS11aS1saWItdHlwb2dyYXBoeS1saW5lLWhlaWdodCk7LS11aS1saWItdHlwb2dyYXBoeS1mb250LXNpemU6MjRweDtmb250LXNpemU6dmFyKC0tdWktbGliLXR5cG9ncmFwaHktZm9udC1zaXplKTtmb250LXN0eWxlOm5vcm1hbDtmb250LXdlaWdodDo3MDB9LnRleHQtbGFyZ2UtZkxGZW9PYW8sLnRleHQtbWVkaXVtLWZMRmVvT2FvLC50ZXh0LXNtYWxsLWZMRmVvT2Fve2luc2V0LWlubGluZS1zdGFydDowO29wYWNpdHk6MDtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDt3aWR0aDoxMDAlfS5jb250YWluZXItZkxGZW9PYW8gLmJ1eS1mTEZlb09hbywuY29udGFpbmVyLWZMRmVvT2FvIC5uZXV0cmFsLWZMRmVvT2FvLC5jb250YWluZXItZkxGZW9PYW8gLnNlbGwtZkxGZW9PYW8sLmNvbnRhaW5lci1mTEZlb09hbyAuc3Ryb25nLWJ1eS1mTEZlb09hbywuY29udGFpbmVyLWZMRmVvT2FvIC5zdHJvbmctc2VsbC1mTEZlb09hb3t0cmFuc2l0aW9uOm9wYWNpdHkgLjVzIGN1YmljLWJlemllciguMzIsMCwuMTUsMSksY29sb3IgLjVzIGN1YmljLWJlemllciguMzIsMCwuMTUsMSkgLjVzfS5jb250YWluZXItYnV5LWZMRmVvT2FvIC5idXktZkxGZW9PYW8sLmNvbnRhaW5lci1uZXV0cmFsLWZMRmVvT2FvIC5uZXV0cmFsLWZMRmVvT2FvLC5jb250YWluZXItc2VsbC1mTEZlb09hbyAuc2VsbC1mTEZlb09hbywuY29udGFpbmVyLXN0cm9uZy1idXktZkxGZW9PYW8gLnN0cm9uZy1idXktZkxGZW9PYW8sLmNvbnRhaW5lci1zdHJvbmctc2VsbC1mTEZlb09hbyAuc3Ryb25nLXNlbGwtZkxGZW9PYW97b3BhY2l0eToxO3RyYW5zaXRpb246b3BhY2l0eSAuNXMgY3ViaWMtYmV6aWVyKC4zMiwwLC4xNSwxKSAuNXN9"}},"time_used":3,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":3,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/30200.71da076fb0197e4d5953.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:12.967Z","timestamp":1785148032967,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/30200.71da076fb0197e4d5953.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:12 GMT\r\ncontent-type: text/css; charset=utf-8\r\ncontent-length: 86\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\netag: \"69f98b73-56\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Tue, 05 May 2026 06:17:23 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.51\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 05/05/2026 10:16:23\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: ecfc8c8ebe30a774f265bdf89b580828\r\ncdn-cache: HIT\r\naccept-ranges: bytes\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":86,"size_decoded":870,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with no line terminators","md5":"b02278d29b4e6fb9286fa4e3d93d2ce5","sha1":"0e3940c360032f59c0eb14248728f6b6d0c99cae","sha256":"6373ee883ff860f1955a9c73438e96ed35056eacf0fadb1c6ae58a57e31a5e34","sha512":"cf3ba4d72f48389a359a141bea634d0369e9ba9b4e796f108b6c71cd23e57123b60f7b390b1edba4debfc2e84ebd9bc8cefa9ab0ef5f5d70274f73ef0be4ac8c","ssdeep":"","tlshash":"ada012d2b4410450000501481120733bcab721c426940d0804c0bf2203464a19c78150","first_seen":"2026-01-13T13:30:16.848169Z","last_seen":"2026-07-27T12:53:42.594014Z","times_seen":2030,"resource_available":false,"data":"LmpzLWhpZGRlbntkaXNwbGF5Om5vbmUhaW1wb3J0YW50fS5qcy1uby1wb2ludGVyLWV2ZW50c3twb2ludGVyLWV2ZW50czpub25lIWltcG9ydGFudH0="}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/36222.e9be9a733e114730a4ea.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:13.887Z","timestamp":1785148033887,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/36222.e9be9a733e114730a4ea.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:13 GMT\r\ncontent-type: text/css; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a58ab11-817\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Thu, 16 Jul 2026 09:57:37 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/16/2026 11:03:21\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: db0ca4f827fa564147e201f247878cd2\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":2071,"size_decoded":1307,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with very long lines (2071), with no line terminators","md5":"2e8e694e16e9459d863140b929080820","sha1":"49a854bbed81708280adaa8bbe6867c856fcec99","sha256":"39a8612e5776ad12480990df92ddf0ae28da68e6fda202f92e646cfbd754ed65","sha512":"f624307751b27dd6725309a31659c60b989256ea30ddbc8f0b6a2632af721b14d2c15e8ad1e8f78fae96aada441df8c0d4a42bec925b80236c39d5fd8fa5f59e","ssdeep":"","tlshash":"3041dd2045d5ec78bc53b366d2e5160c55b5bd34de4b2cce3ba438222ac2bf400b7a5e","first_seen":"2026-07-16T13:40:49.685175Z","last_seen":"2026-07-27T12:57:37.097659Z","times_seen":242,"resource_available":false,"data":"LnBvc2l0aW9uZXItaEJWa2FQMlB7Ym94LXNpemluZzpib3JkZXItYm94O2Rpc3BsYXk6Z3JpZDtncmlkLXRlbXBsYXRlLWNvbHVtbnM6MWZyO2dyaWQtdGVtcGxhdGUtcm93czoxZnI7aGVpZ2h0OnZhcigtLXVpLWxpYi1pbi1wb3NpdGlvbmVyLWV4YWN0SGVpZ2h0LHZhcigtLXVpLWxpYi1wcml2YXRlLXBvc2l0aW9uZXItYW5jaG9yRXhhY3RIZWlnaHQsYXV0bykpO2xlZnQ6dmFyKC0tdWktbGliLW91dC1wb3NpdGlvbmVyLWFuY2hvcmVkWCk7bWF4LWhlaWdodDptaW4odmFyKC0tdWktbGliLWluLXBvc2l0aW9uZXItbWF4SGVpZ2h0LDEwMDAwMHZoKSx2YXIoLS11aS1saWItcHJpdmF0ZS1wb3NpdGlvbmVyLWFuY2hvck1heEhlaWdodCwxMDAwMDB2aCksdmFyKC0tdWktbGliLXByaXZhdGUtcG9zaXRpb25lci1zY3JlZW5SZXN0cmljdGlvbk1heEhlaWdodCwxMDAwMDB2aCksdmFyKC0tdWktbGliLXByaXZhdGUtcG9zaXRpb25lci1yZXNpemVSZXN0cmljdGlvbk1heEhlaWdodCwxMDAwMDB2aCkpO21heC13aWR0aDptaW4odmFyKC0tdWktbGliLWluLXBvc2l0aW9uZXItbWF4V2lkdGgsMTAwMDB2dyksdmFyKC0tdWktbGliLXByaXZhdGUtcG9zaXRpb25lci1hbmNob3JNYXhXaWR0aCwxMDAwMHZ3KSx2YXIoLS11aS1saWItcHJpdmF0ZS1wb3NpdGlvbmVyLXNjcmVlblJlc3RyaWN0aW9uTWF4V2lkdGgsMTAwMDB2dyksdmFyKC0tdWktbGliLXByaXZhdGUtcG9zaXRpb25lci1yZXNpemVSZXN0cmljdGlvbk1heFdpZHRoLDEwMDAwdncpKTttaW4taGVpZ2h0Om1heCh2YXIoLS11aS1saWItaW4tcG9zaXRpb25lci1taW5IZWlnaHQsMHB4KSx2YXIoLS11aS1saWItcHJpdmF0ZS1wb3NpdGlvbmVyLWFuY2hvck1pbkhlaWdodCwwcHgpLHZhcigtLXVpLWxpYi1wcml2YXRlLXBvc2l0aW9uZXItcmVzaXplUmVzdHJpY3Rpb25NaW5IZWlnaHQsMHB4KSk7bWluLXdpZHRoOm1heCh2YXIoLS11aS1saWItaW4tcG9zaXRpb25lci1taW5XaWR0aCwwcHgpLHZhcigtLXVpLWxpYi1wcml2YXRlLXBvc2l0aW9uZXItYW5jaG9yTWluV2lkdGgsMHB4KSx2YXIoLS11aS1saWItcHJpdmF0ZS1wb3NpdGlvbmVyLXJlc2l6ZVJlc3RyaWN0aW9uTWluV2lkdGgsMHB4KSk7cG9pbnRlci1ldmVudHM6YXV0bztwb3NpdGlvbjpmaXhlZDt0b3A6dmFyKC0tdWktbGliLW91dC1wb3NpdGlvbmVyLWFuY2hvcmVkWSk7dHJhbnNmb3JtOnRyYW5zbGF0ZShjYWxjKHZhcigtLXVpLWxpYi1vdXQtcG9zaXRpb25lci1jb250ZW50UG9pbnRYKSotMTAwJSksY2FsYyh2YXIoLS11aS1saWItb3V0LXBvc2l0aW9uZXItY29udGVudFBvaW50WSkqLTEwMCUpKTt3aWR0aDp2YXIoLS11aS1saWItaW4tcG9zaXRpb25lci1leGFjdFdpZHRoLHZhcigtLXVpLWxpYi1wcml2YXRlLXBvc2l0aW9uZXItYW5jaG9yRXhhY3RXaWR0aCxhdXRvKSl9Lm5vSG9yaXpvbnRhbFNocmluay1oQlZrYVAyUHstLXVpLWxpYi1wcml2YXRlLXBvc2l0aW9uZXItcmVzaXplUmVzdHJpY3Rpb25NaW5XaWR0aDp2YXIoLS11aS1saWItb3V0LXBvc2l0aW9uZXItY29udGVudFdpZHRoKX0ubm9Ib3Jpem9udGFsR3Jvdy1oQlZrYVAyUHstLXVpLWxpYi1wcml2YXRlLXBvc2l0aW9uZXItcmVzaXplUmVzdHJpY3Rpb25NYXhXaWR0aDp2YXIoLS11aS1saWItb3V0LXBvc2l0aW9uZXItY29udGVudFdpZHRoKX0ubm9WZXJ0aWNhbFNocmluay1oQlZrYVAyUHstLXVpLWxpYi1wcml2YXRlLXBvc2l0aW9uZXItcmVzaXplUmVzdHJpY3Rpb25NaW5IZWlnaHQ6dmFyKC0tdWktbGliLW91dC1wb3NpdGlvbmVyLWNvbnRlbnRIZWlnaHQpfS5ub1ZlcnRpY2FsR3Jvdy1oQlZrYVAyUHstLXVpLWxpYi1wcml2YXRlLXBvc2l0aW9uZXItcmVzaXplLXJlc3RyaWN0aW9uLW1heC1oZWlnaHQ6dmFyKC0tdWktbGliLXBvc2l0aW9uZXItY29udGVudC1oZWlnaHQtbWVhc3VyZWQpfS5pbnZpc2libGUtaEJWa2FQMlB7b3BhY2l0eTowO3BvaW50ZXItZXZlbnRzOm5vbmV9LnBvcnRhbC1oQlZrYVAyUHtoZWlnaHQ6MTAwMHZoO2xlZnQ6MDtwb2ludGVyLWV2ZW50czpub25lO3RvcDowO3RyYW5zZm9ybTp0cmFuc2xhdGUoMCk7d2lkdGg6MTAwMHZ3fQ=="}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/21245.586fa8d04aba0d6adbc8.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.806Z","timestamp":1785148034806,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/21245.586fa8d04aba0d6adbc8.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\ncontent-type: text/css; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding, Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\netag: W/\"6a06d56b-12d9\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Fri, 15 May 2026 08:12:27 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.53\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 05/15/2026 10:19:06\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 7635dda21ee3577d58488b6101af0cd7\r\ncdn-cache: HIT\r\ncontent-encoding: br\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":4825,"size_decoded":2347,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with very long lines (4825), with no line terminators","md5":"e990bd8718ea01f4fc9aa0a8cb4aafb0","sha1":"c8d8eb1aec6da90e1ab3ac61c99a4feaa9de414c","sha256":"2e9fa21d060739d060106a342b6f8a14fdc46e51da4f03314ce9d83d1fb6df45","sha512":"082e617e7a9d79883f886416e235a8546678badd7a8fe1fc94281dfeda5bfe57212da30f1b4bba87c75b1e36b03b757e43519f4f46142460b6b5214f3ed6c95f","ssdeep":"96:DJRYJRr0QW/i+UJjgaHW5KK+PKcQGh4ci:OrcZUJ05KKnGh4ci","tlshash":"f7a152b5f7926a7cfa13c2372100ebabf004a125955395f4ea429f5498db7fa1f30e48","first_seen":"2026-06-04T22:48:06.043759Z","last_seen":"2026-07-27T10:28:13.882085Z","times_seen":17,"resource_available":false,"data":"W2RhdGEtdGhlbWU9bGlnaHRdey0tXzAtaXZfVDp2YXIoLS1jb2xvci1jb2xkLWdyYXktOTAwKX1bZGF0YS10aGVtZT1kYXJrXXstLV8wLWl2X1Q6dmFyKC0tY29sb3ItY29sZC1ncmF5LTIwMCl9LnNjYWxlLV9kUUljTWg1e2RpcmVjdGlvbjpsdHI7ZGlzcGxheTpmbGV4fS5zY2FsZVZhbHVlLV9kUUljTWg1e2NvbG9yOnZhcigtLV8wLWl2X1QpO2N1cnNvcjpkZWZhdWx0O2Rpc3BsYXk6ZmxleDtmbGV4OjEgMSBhdXRvO2ZvbnQtc2l6ZToxMnB4O2xpbmUtaGVpZ2h0OjE3cHh9LnNjYWxlVmFsdWUtX2RRSWNNaDUubWluaS1fZFFJY01oNXtmb250LXNpemU6MTFweDtsZXR0ZXItc3BhY2luZzp2YXIoLS1zY2FsZS1sZXR0ZXItc3BhY2luZywuNHB4KTtsaW5lLWhlaWdodDoxNnB4fS5ib2xkVmFsdWUtX2RRSWNNaDV7Zm9udC13ZWlnaHQ6NzAwfS52ZXJ0aWNhbFNjYWxlLUtXUnZINlFme2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW4tcmV2ZXJzZTtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmR9LnZlcnRpY2FsU2NhbGVWYWx1ZS1LV1J2SDZRZntkaXNwbGF5OmZsZXg7ZmxleC1ncm93OjA7anVzdGlmeS1jb250ZW50OmZsZXgtZW5kO21hcmdpbi10b3A6Y2FsYyh2YXIoLS1kZXRhaWxzLWNoYXJ0LWhlaWdodCkvdmFyKC0taG9yaXpvbnRhbC1saW5lcy1jb3VudCkgLSAxN3B4KX0udmVydGljYWxTY2FsZVZhbHVlLUtXUnZINlFmLm1pbmktS1dSdkg2UWZ7bWFyZ2luLXRvcDpjYWxjKHZhcigtLWRldGFpbHMtY2hhcnQtaGVpZ2h0KS92YXIoLS1ob3Jpem9udGFsLWxpbmVzLWNvdW50KSAtIDE2cHgpfS52ZXJ0aWNhbFNjYWxlVmFsdWUtS1dSdkg2UWYubWluaS1LV1J2SDZRZjpsYXN0LWNoaWxkLC52ZXJ0aWNhbFNjYWxlVmFsdWUtS1dSdkg2UWY6bGFzdC1jaGlsZHttYXJnaW4tdG9wOjB9LnZlcnRpY2FsU2NhbGVWYWx1ZS1LV1J2SDZRZi56ZXJvVmFsdWVPbmx5LUtXUnZINlFme21hcmdpbi10b3A6dmFyKC0tZGV0YWlscy1jaGFydC1oZWlnaHQpfS5ob3Jpem9udGFsU2NhbGUtclFzV2xjanB7ZGlzcGxheTpncmlkO2dyaWQtYXV0by1jb2x1bW5zOjFmcjtncmlkLWF1dG8tZmxvdzpjb2x1bW47bWluLWhlaWdodDoxN3B4O3dvcmQtYnJlYWs6YnJlYWstd29yZH0uaG9yaXpvbnRhbFNjYWxlLXJRc1dsY2pwLm1pbmktclFzV2xjanB7bWluLWhlaWdodDoxNnB4fS5ob3Jpem9udGFsU2NhbGVWYWx1ZS1yUXNXbGNqcHtkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OmNlbnRlcjttaW4td2lkdGg6MDtwYWRkaW5nOjAgdmFyKC0taG9yaXpvbnRhbC1zY2FsZS12YWx1ZXMtZ2FwLDApO3RleHQtYWxpZ246Y2VudGVyfVtkYXRhLXRoZW1lPWRhcmtdLFtkYXRhLXRoZW1lPWxpZ2h0XXstLV8wLV8yY186IzAwMDA7LS1fMS1fMmNfOnZhcigtLWNvbG9yLXdoaXRlKTstLV8yLV8yY186IzAwMDB9LnRvb2x0aXBXcmFwLXZzUjIwRThpe2xlZnQ6LTUwJTtwb2ludGVyLWV2ZW50czpub25lO3Bvc2l0aW9uOnJlbGF0aXZlfS50b29sdGlwLXZzUjIwRThpe2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItY29tbW9uLXRvb2x0aXAtYmcpO2JvcmRlci1jb2xsYXBzZTppbml0aWFsO2JvcmRlci1yYWRpdXM6NHB4O2JvcmRlci1zcGFjaW5nOjJweDtkaXJlY3Rpb246bHRyO3BhZGRpbmc6NnB4O3RvcDowO3Zpc2liaWxpdHk6aGlkZGVufS50b29sdGlwLXZzUjIwRThpLnZhbGlkYXRlZC12c1IyMEU4aXt2aXNpYmlsaXR5OnZpc2libGV9LnRvb2x0aXAtdnNSMjBFOGk6ZGlyKHJ0bCl7ZGlyZWN0aW9uOnJ0bH0uYm9keS12c1IyMEU4aXt2ZXJ0aWNhbC1hbGlnbjppbml0aWFsfS52YWx1ZS12c1IyMEU4aXt0ZXh0LWFsaWduOmVuZH0udmFsdWUtdnNSMjBFOGk6ZGlyKHJ0bCl7ZGlyZWN0aW9uOmx0cn0ubGFiZWwtdnNSMjBFOGl7d2hpdGUtc3BhY2U6bm93cmFwfS5sYWJlbC12c1IyMEU4aTpub3QoOmxhc3QtY2hpbGQpe3BhZGRpbmctaW5saW5lLWVuZDo4cHh9LnN3YXRjaC12c1IyMEU4aXttYXJnaW4taW5saW5lLWVuZDo0cHg7bWFyZ2luLWJvdHRvbToxcHh9LnRpdGxlV2l0aFZhbHVlLXZzUjIwRThpe2NvbG9yOnZhcigtLV8xLV8yY18pO2ZvbnQtc2l6ZToxM3B4O2xpbmUtaGVpZ2h0OjE3cHh9LnRpdGxlV2l0aFZhbHVlLXZzUjIwRThpOmFmdGVyOmRpcihydGwpe2NvbnRlbnQ6IlwyMDBFIn0udGl0bGUtdnNSMjBFOGl7d2hpdGUtc3BhY2U6YnJlYWstc3BhY2VzfS50aXRsZS12c1IyMEU4aSwudmFsdWUtdnNSMjBFOGl7Y29sb3I6dmFyKC0tXzEtXzJjXyk7Zm9udC1zaXplOjEzcHg7bGluZS1oZWlnaHQ6MTZweH0uZnVsbFdpZHRoQ2VsbC12c1IyMEU4aXt0ZXh0LWFsaWduOmNlbnRlcn0uYXJyb3ctdnNSMjBFOGl7Ym90dG9tOjA7aW5zZXQtaW5saW5lLXN0YXJ0OjUwJTtwb3NpdGlvbjphYnNvbHV0ZX0uYXJyb3ctdnNSMjBFOGk6YWZ0ZXJ7Ym9yZGVyOjAgc29saWQ7Ym9yZGVyLWNvbG9yOnZhcigtLWNvbG9yLWNvbW1vbi10b29sdGlwLWJnKTtib3gtc2l6aW5nOmJvcmRlci1ib3g7Y29udGVudDoiIjtkaXNwbGF5OmJsb2NrO2hlaWdodDowO3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjB9LmFycm93LS1hYm92ZS12c1IyMEU4aTphZnRlciwuYXJyb3ctLWJlbG93LXZzUjIwRThpOmFmdGVye2JvcmRlci1sZWZ0OjZweCBzb2xpZDtib3JkZXItbGVmdC1jb2xvcjp2YXIoLS1fMi1fMmNfKTtib3JkZXItcmlnaHQ6NnB4IHNvbGlkO2JvcmRlci1yaWdodC1jb2xvcjp2YXIoLS1fMi1fMmNfKTtsZWZ0OjUwJTttYXJnaW4tbGVmdDotNnB4fS5hcnJvdy0tYmVsb3ctdnNSMjBFOGk6YWZ0ZXJ7Ym9yZGVyLWJvdHRvbS13aWR0aDo0cHg7Ym90dG9tOjEwMCV9LmFycm93LS1hYm92ZS12c1IyMEU4aTphZnRlcntib3JkZXItdG9wLXdpZHRoOjRweDt0b3A6MTAwJX0uYXJyb3ctLWFmdGVyLXZzUjIwRThpOmFmdGVyLC5hcnJvdy0tYmVmb3JlLXZzUjIwRThpOmFmdGVye2JvcmRlci1ib3R0b206NnB4IHNvbGlkO2JvcmRlci1ib3R0b20tY29sb3I6dmFyKC0tXzItXzJjXyk7Ym9yZGVyLXRvcDo2cHggc29saWQ7Ym9yZGVyLXRvcC1jb2xvcjp2YXIoLS1fMi1fMmNfKTttYXJnaW4tdG9wOi02cHg7dG9wOjUwJX0uYXJyb3ctLWJlZm9yZS12c1IyMEU4aTphZnRlcntib3JkZXItcmlnaHQtd2lkdGg6NHB4O3JpZ2h0OjEwMCV9LmFycm93LS1hZnRlci12c1IyMEU4aTphZnRlcntib3JkZXItbGVmdC13aWR0aDo0cHg7bGVmdDoxMDAlfS5hcnJvdy12c1IyMEU4aTphZnRlcntib3JkZXItaW5saW5lLWVuZDo2cHggc29saWQ7Ym9yZGVyLWlubGluZS1lbmQtY29sb3I6dmFyKC0tXzAtXzJjXyk7Ym9yZGVyLWlubGluZS1zdGFydDo2cHggc29saWQ7Ym9yZGVyLWlubGluZS1zdGFydC1jb2xvcjp2YXIoLS1fMC1fMmNfKTtib3JkZXItdG9wLXdpZHRoOnZhcigtLWRldGFpbHMtY2hhcnQtdG9vbHRpcC1hcnJvdy1oZWlnaHQpO21hcmdpbi1pbmxpbmUtc3RhcnQ6LTZweH0ucmV2ZXJzZWQtdnNSMjBFOGl7Ym90dG9tOnVuc2V0O3RvcDpjYWxjKHZhcigtLWRldGFpbHMtY2hhcnQtdG9vbHRpcC1hcnJvdy1oZWlnaHQpKi0xKX0ucmV2ZXJzZWQtdnNSMjBFOGk6YWZ0ZXJ7Ym9yZGVyLWJvdHRvbS13aWR0aDp2YXIoLS1kZXRhaWxzLWNoYXJ0LXRvb2x0aXAtYXJyb3ctaGVpZ2h0KTtib3JkZXItdG9wLXdpZHRoOjB9LnVuaXQtdnNSMjBFOGl7Zm9udC1mYW1pbHk6LWFwcGxlLXN5c3RlbSxCbGlua01hY1N5c3RlbUZvbnQsVHJlYnVjaGV0IE1TLFJvYm90byxVYnVudHUsc2Fucy1zZXJpZjtmb250LWZlYXR1cmUtc2V0dGluZ3M6InRudW0iIG9uLCJsbnVtIiBvbjstLXVpLWxpYi10eXBvZ3JhcGh5LWxpbmUtaGVpZ2h0OjE2cHg7bGluZS1oZWlnaHQ6dmFyKC0tdWktbGliLXR5cG9ncmFwaHktbGluZS1oZWlnaHQpOy0tdWktbGliLXR5cG9ncmFwaHktZm9udC1zaXplOjExcHg7Zm9udC1zaXplOnZhcigtLXVpLWxpYi10eXBvZ3JhcGh5LWZvbnQtc2l6ZSk7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC13ZWlnaHQ6NDAwO2xldHRlci1zcGFjaW5nOi40cHg7dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlfS5lbmRTbG90LXZzUjIwRThpLC51bml0LXZzUjIwRThpe21hcmdpbi1sZWZ0OjNweH0ucGxhaW5Db2x1bW4tdnNSMjBFOGl7YWxpZ24taXRlbXM6Y2VudGVyO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW59LnBsYWluVmFsdWUtdnNSMjBFOGl7LS11aS1saWItdHlwb2dyYXBoeS1mb250LXNpemU6MTNweDstLXVpLWxpYi10eXBvZ3JhcGh5LWxpbmUtaGVpZ2h0OjE4cHh9LnBsYWluVmFsdWUtdnNSMjBFOGksLnBsYWluVmFsdWUtdnNSMjBFOGkgLnVuaXQtdnNSMjBFOGl7Zm9udC1mYW1pbHk6LWFwcGxlLXN5c3RlbSxCbGlua01hY1N5c3RlbUZvbnQsVHJlYnVjaGV0IE1TLFJvYm90byxVYnVudHUsc2Fucy1zZXJpZjtmb250LWZlYXR1cmUtc2V0dGluZ3M6InRudW0iIG9uLCJsbnVtIiBvbjtmb250LXNpemU6dmFyKC0tdWktbGliLXR5cG9ncmFwaHktZm9udC1zaXplKTtmb250LXN0eWxlOm5vcm1hbDtmb250LXdlaWdodDo0MDA7bGluZS1oZWlnaHQ6dmFyKC0tdWktbGliLXR5cG9ncmFwaHktbGluZS1oZWlnaHQpfS5wbGFpblZhbHVlLXZzUjIwRThpIC51bml0LXZzUjIwRThpe21hcmdpbi1sZWZ0OjJweDstLXVpLWxpYi10eXBvZ3JhcGh5LWxpbmUtaGVpZ2h0OjE2cHg7LS11aS1saWItdHlwb2dyYXBoeS1mb250LXNpemU6MTFweDtsZXR0ZXItc3BhY2luZzouNHB4O3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZX0ucGxhaW5FbmRTbG90LXZzUjIwRThpe2NvbG9yOnZhcigtLWNvbG9yLWNvbnRlbnQtcHJpbWFyeS1uZXV0cmFsLWxpZ2h0KTtmb250LXNpemU6MTFweDtsaW5lLWhlaWdodDoxNHB4O21hcmdpbi10b3A6MnB4fQ=="}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/3905.682e89ef2dc4c70423c6.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:12.933Z","timestamp":1785148032933,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/3905.682e89ef2dc4c70423c6.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:12 GMT\r\ncontent-type: text/css; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding, Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\netag: W/\"69f98b71-23c4\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Tue, 05 May 2026 06:17:21 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.51\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 05/05/2026 10:16:40\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: bcbccc67370727b9386766f0f05ecdfe\r\ncdn-cache: HIT\r\ncontent-encoding: br\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":9156,"size_decoded":2693,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with very long lines (9156), with no line terminators","md5":"585b0debea11681772c2af93fac32f6f","sha1":"239ef62778933c4ffbb2003ad1da3ab7f1c412e6","sha256":"7a6f9ce2286878bf4b28af0ff0922e443fe7fd6f6289968222d35cacb1fd8f85","sha512":"f37cf7f51a2fb42cf0f1822ddea62c13673cc6ac0dd4e9ec40de3f0387a5fc680d4eeec0d9d2b81cbc71136e743b6e8692b20d29e16cd72a6c83c741eea6239e","ssdeep":"192:aB56ZYifpWjOHpRSvoAyGGoCARk3NPmHHZ+DG4x8:ayXsh","tlshash":"6612cf5bf5e30baa2f63e1255a2d7b48516773062887a5f5ee42f3e045caec216036cc","first_seen":"2026-03-24T10:38:42.78469Z","last_seen":"2026-07-27T13:00:41.353998Z","times_seen":6532,"resource_available":false,"data":"W2RhdGEtdGhlbWU9bGlnaHRdey0tXzAtd01EZjojMDAwMDstLV8xLXdNRGY6dmFyKC0tY29sb3ItdGFuLW9yYW5nZS01MDApOy0tXzItd01EZjp2YXIoLS1jb2xvci1jb2xkLWdyYXktNjAwKTstLV8zLXdNRGY6IzAwMDB9W2RhdGEtdGhlbWU9ZGFya117LS1fMC13TURmOiMwMDAwOy0tXzEtd01EZjp2YXIoLS1jb2xvci10YW4tb3JhbmdlLTUwMCk7LS1fMi13TURmOnZhcigtLWNvbG9yLWNvbGQtZ3JheS00NTApOy0tXzMtd01EZjojMDAwMH0uY29tbW9uLXRvb2x0aXAtRUpCRDk2elh7Zm9udC1mYW1pbHk6LWFwcGxlLXN5c3RlbSxCbGlua01hY1N5c3RlbUZvbnQsVHJlYnVjaGV0IE1TLFJvYm90byxVYnVudHUsc2Fucy1zZXJpZjtmb250LWZlYXR1cmUtc2V0dGluZ3M6InRudW0iIG9uLCJsbnVtIiBvbjtmb250LXN0eWxlOm5vcm1hbDstLXVpLWxpYi10eXBvZ3JhcGh5LWZvbnQtc2l6ZToxM3B4O2ZvbnQtc2l6ZTp2YXIoLS11aS1saWItdHlwb2dyYXBoeS1mb250LXNpemUpO2ZvbnQtd2VpZ2h0OjQwMDstLXVpLWxpYi10eXBvZ3JhcGh5LWxpbmUtaGVpZ2h0OjE4cHg7Y29sb3I6dmFyKC0tY29sb3ItY29tbW9uLXRvb2x0aXAtdGV4dCk7ZGlzcGxheTppbmxpbmUtZmxleDtsaW5lLWhlaWdodDp2YXIoLS11aS1saWItdHlwb2dyYXBoeS1saW5lLWhlaWdodCk7b3BhY2l0eToxO3BvaW50ZXItZXZlbnRzOm5vbmU7cG9zaXRpb246Zml4ZWQ7dHJhbnNpdGlvbjpvcGFjaXR5IC4xNXMgbGluZWFyO3otaW5kZXg6MTAwMH0uY29tbW9uLXRvb2x0aXAtLWhpZGRlbi1FSkJEOTZ6WHtvcGFjaXR5OjB9LmNvbW1vbi10b29sdGlwLS1ob3Jpem9udGFsLUVKQkQ5NnpYe21hcmdpbjo0cHggMH0uY29tbW9uLXRvb2x0aXAtLWhvcml6b250YWwtRUpCRDk2elguY29tbW9uLXRvb2x0aXAtLWZhcnRoZXItRUpCRDk2elh7bWFyZ2luOjhweCAwfS5jb21tb24tdG9vbHRpcC0tdmVydGljYWwtRUpCRDk2elh7bWFyZ2luOjAgNHB4fS5jb21tb24tdG9vbHRpcC0tdmVydGljYWwtRUpCRDk2elguY29tbW9uLXRvb2x0aXAtZmFydGhlci1FSkJEOTZ6WHttYXJnaW46MCA4cHh9LmNvbW1vbi10b29sdGlwLS1kaXJlY3Rpb25fbm9ybWFsLUVKQkQ5NnpYe2ZsZXgtZGlyZWN0aW9uOnJvd30uY29tbW9uLXRvb2x0aXAtLWRpcmVjdGlvbl9ub3JtYWwtRUpCRDk2elggLmNvbW1vbi10b29sdGlwX19ib2R5LUVKQkQ5NnpYe2JvcmRlci1lbmQtc3RhcnQtcmFkaXVzOjJweDtib3JkZXItc3RhcnQtc3RhcnQtcmFkaXVzOjJweH0uY29tbW9uLXRvb2x0aXAtLWRpcmVjdGlvbl9ub3JtYWwtRUpCRDk2elggLmNvbW1vbi10b29sdGlwX19ib2R5LS1uby1idXR0b25zLUVKQkQ5NnpYLC5jb21tb24tdG9vbHRpcC0tZGlyZWN0aW9uX25vcm1hbC1FSkJEOTZ6WCAuY29tbW9uLXRvb2x0aXBfX2J1dHRvbi1jb250YWluZXItRUpCRDk2elh7Ym9yZGVyLWVuZC1lbmQtcmFkaXVzOjJweDtib3JkZXItc3RhcnQtZW5kLXJhZGl1czoycHh9LmNvbW1vbi10b29sdGlwLS1kaXJlY3Rpb25fbm9ybWFsLUVKQkQ5NnpYIC5jb21tb24tdG9vbHRpcF9fYnV0dG9uLUVKQkQ5NnpYOm5vdCg6bGFzdC1jaGlsZCl7bWFyZ2luLWlubGluZS1lbmQ6MXB4fS5jb21tb24tdG9vbHRpcC0tZGlyZWN0aW9uX3JldmVyc2VkLUVKQkQ5NnpYe2ZsZXgtZGlyZWN0aW9uOnJvdy1yZXZlcnNlfS5jb21tb24tdG9vbHRpcC0tZGlyZWN0aW9uX3JldmVyc2VkLUVKQkQ5NnpYIC5jb21tb24tdG9vbHRpcF9fYm9keS1FSkJEOTZ6WHtib3JkZXItZW5kLWVuZC1yYWRpdXM6MnB4O2JvcmRlci1zdGFydC1lbmQtcmFkaXVzOjJweH0uY29tbW9uLXRvb2x0aXAtLWRpcmVjdGlvbl9yZXZlcnNlZC1FSkJEOTZ6WCAuY29tbW9uLXRvb2x0aXBfX2JvZHktLW5vLWJ1dHRvbnMtRUpCRDk2elgsLmNvbW1vbi10b29sdGlwLS1kaXJlY3Rpb25fcmV2ZXJzZWQtRUpCRDk2elggLmNvbW1vbi10b29sdGlwX19idXR0b24tY29udGFpbmVyLUVKQkQ5NnpYe2JvcmRlci1lbmQtc3RhcnQtcmFkaXVzOjJweDtib3JkZXItc3RhcnQtc3RhcnQtcmFkaXVzOjJweH0uY29tbW9uLXRvb2x0aXAtLWRpcmVjdGlvbl9yZXZlcnNlZC1FSkJEOTZ6WCAuY29tbW9uLXRvb2x0aXBfX2J1dHRvbi1FSkJEOTZ6WDpub3QoOmZpcnN0LWNoaWxkKXttYXJnaW4taW5saW5lLXN0YXJ0OjFweH0uY29tbW9uLXRvb2x0aXBfX2Vhci1ob2xkZXItRUpCRDk2elh7cG9zaXRpb246cmVsYXRpdmV9LmNvbW1vbi10b29sdGlwX19lYXItaG9sZGVyLUVKQkQ5NnpYOmFmdGVye2JvcmRlcjowIHNvbGlkO2JvcmRlci1jb2xvcjp2YXIoLS1jb2xvci1jb21tb24tdG9vbHRpcC1iZyk7Ym94LXNpemluZzpib3JkZXItYm94O2NvbnRlbnQ6IiI7ZGlzcGxheTpibG9jaztoZWlnaHQ6MDtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDowfS5jb21tb24tdG9vbHRpcF9fZWFyLWhvbGRlci0tYWJvdmUtRUpCRDk2elg6YWZ0ZXIsLmNvbW1vbi10b29sdGlwX19lYXItaG9sZGVyLS1iZWxvdy1FSkJEOTZ6WDphZnRlcntib3JkZXItbGVmdDo2cHggc29saWQ7Ym9yZGVyLWxlZnQtY29sb3I6dmFyKC0tXzMtd01EZik7Ym9yZGVyLXJpZ2h0OjZweCBzb2xpZDtib3JkZXItcmlnaHQtY29sb3I6dmFyKC0tXzMtd01EZik7bGVmdDo1MCU7bWFyZ2luLWxlZnQ6LTZweH0uY29tbW9uLXRvb2x0aXBfX2Vhci1ob2xkZXItLWJlbG93LUVKQkQ5NnpYOmFmdGVye2JvcmRlci1ib3R0b20td2lkdGg6NHB4O2JvdHRvbToxMDAlfS5jb21tb24tdG9vbHRpcF9fZWFyLWhvbGRlci0tYWJvdmUtRUpCRDk2elg6YWZ0ZXJ7Ym9yZGVyLXRvcC13aWR0aDo0cHg7dG9wOjEwMCV9LmNvbW1vbi10b29sdGlwX19lYXItaG9sZGVyLS1hZnRlci1FSkJEOTZ6WDphZnRlciwuY29tbW9uLXRvb2x0aXBfX2Vhci1ob2xkZXItLWJlZm9yZS1FSkJEOTZ6WDphZnRlcntib3JkZXItYm90dG9tOjZweCBzb2xpZDtib3JkZXItYm90dG9tLWNvbG9yOnZhcigtLV8zLXdNRGYpO2JvcmRlci10b3A6NnB4IHNvbGlkO2JvcmRlci10b3AtY29sb3I6dmFyKC0tXzMtd01EZik7bWFyZ2luLXRvcDotNnB4O3RvcDo1MCV9LmNvbW1vbi10b29sdGlwX19lYXItaG9sZGVyLS1iZWZvcmUtRUpCRDk2elg6YWZ0ZXJ7Ym9yZGVyLXJpZ2h0LXdpZHRoOjRweDtyaWdodDoxMDAlfS5jb21tb24tdG9vbHRpcF9fZWFyLWhvbGRlci0tYWZ0ZXItRUpCRDk2elg6YWZ0ZXJ7Ym9yZGVyLWxlZnQtd2lkdGg6NHB4O2xlZnQ6MTAwJX0uY29tbW9uLXRvb2x0aXBfX2JvZHktRUpCRDk2elh7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1jb21tb24tdG9vbHRpcC1iZyk7Ym94LXNpemluZzpib3JkZXItYm94O2Rpc3BsYXk6YmxvY2s7bWF4LXdpZHRoOjMxMHB4O3BhZGRpbmc6M3B4IDhweDtwb3NpdGlvbjpyZWxhdGl2ZTt3aGl0ZS1zcGFjZTpwcmUtd3JhcDt3b3JkLXdyYXA6YnJlYWstd29yZDtvdmVyZmxvdzpoaWRkZW47dGV4dC1hbGlnbjpzdGFydH0uY29tbW9uLXRvb2x0aXBfX2JvZHktLXdpdGgtaG90a2V5LUVKQkQ5NnpYe2Rpc3BsYXk6ZmxleDttYXgtd2lkdGg6NDIwcHg7cGFkZGluZzowfS5jb21tb24tdG9vbHRpcF9fYm9keS0td2lkdGhfd2lkZS1FSkJEOTZ6WHttYXgtd2lkdGg6NjQwcHh9LmNvbW1vbi10b29sdGlwX19ib2R5LS13aWR0aF9uYXJyb3ctRUpCRDk2elh7bWF4LXdpZHRoOjIwMHB4fS5jb21tb24tdG9vbHRpcF9fYm9keS0tbm8tcGFkZGluZy1FSkJEOTZ6WHtwYWRkaW5nOjB9LmNvbW1vbi10b29sdGlwX19ob3RrZXktYmxvY2stRUpCRDk2elh7YWxpZ24taXRlbXM6Y2VudGVyO2NvbG9yOnZhcigtLWNvbG9yLWNvbGQtZ3JheS0xMDApO2Rpc3BsYXk6aW5saW5lLWZsZXg7ZmxleDoxIDAgYXV0bztqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2xpbmUtaGVpZ2h0OjEycHg7bWFyZ2luOjNweCAwO3BhZGRpbmctaW5saW5lLWVuZDo4cHh9LmNvbW1vbi10b29sdGlwX19ob3RrZXktYmxvY2stLWRpdmlkZXItRUpCRDk2elg6YmVmb3Jle2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItY29sZC1ncmF5LTYwMCk7Y29udGVudDoiIjtoZWlnaHQ6MTAwJTttYXJnaW4taW5saW5lLWVuZDo4cHg7d2lkdGg6MXB4fS5jb21tb24tdG9vbHRpcF9faG90a2V5LXRleHQtRUpCRDk2elh7YWxpZ24taXRlbXM6Y2VudGVyO2Rpc3BsYXk6aW5saW5lLWZsZXg7bWFyZ2luOjNweCA4cHh9LmNvbW1vbi10b29sdGlwX19ob3RrZXktYnV0dG9uLUVKQkQ5NnpYe2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItY29sZC1ncmF5LTYwMCk7ZGlzcGxheTppbmxpbmUtYmxvY2s7Zm9udC1mYW1pbHk6LWFwcGxlLXN5c3RlbSxCbGlua01hY1N5c3RlbUZvbnQsVHJlYnVjaGV0IE1TLFJvYm90byxVYnVudHUsc2Fucy1zZXJpZjtmb250LWZlYXR1cmUtc2V0dGluZ3M6InRudW0iIG9uLCJsbnVtIiBvbjtoZWlnaHQ6MThweDtwYWRkaW5nOjFweCA2cHg7d2lkdGg6YXV0bzstLXVpLWxpYi10eXBvZ3JhcGh5LWxpbmUtaGVpZ2h0OjE2cHg7bGluZS1oZWlnaHQ6dmFyKC0tdWktbGliLXR5cG9ncmFwaHktbGluZS1oZWlnaHQpOy0tdWktbGliLXR5cG9ncmFwaHktZm9udC1zaXplOjEycHg7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgdmFyKC0tY29sb3ItY29sZC1ncmF5LTQ1MCk7Ym9yZGVyLXJhZGl1czo0cHg7Ym94LXNpemluZzpib3JkZXItYm94O2ZvbnQtc2l6ZTp2YXIoLS11aS1saWItdHlwb2dyYXBoeS1mb250LXNpemUpO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtd2VpZ2h0OjYwMH0uY29tbW9uLXRvb2x0aXBfX3BsdXMtc2lnbi1FSkJEOTZ6WHtoZWlnaHQ6MTVweDtsaW5lLWhlaWdodDoxNHB4O3RleHQtYWxpZ246Y2VudGVyO3dpZHRoOjEzcHh9LmNvbW1vbi10b29sdGlwX19idXR0b24tY29udGFpbmVyLUVKQkQ5NnpYe2Rpc3BsYXk6ZmxleDtvdmVyZmxvdzpoaWRkZW47cG9zaXRpb246cmVsYXRpdmV9LmNvbW1vbi10b29sdGlwX19idXR0b24tRUpCRDk2elh7YWxpZ24taXRlbXM6Y2VudGVyO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItYnJhbmQpO2NvbG9yOiNmZmY7ZGlzcGxheTpmbGV4O3BhZGRpbmc6MCAxMHB4fUBtZWRpYSAoYW55LWhvdmVyOmhvdmVyKXsuY29tbW9uLXRvb2x0aXBfX2J1dHRvbi1FSkJEOTZ6WDpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLXR2LWJsdWUtMTAwKX19LmNvbW1vbi10b29sdGlwLUVKQkQ5NnpYLnRoZW1lLXdoaXRle2NvbG9yOnZhcigtLWNvbG9yLXRleHQtcHJpbWFyeSl9LmNvbW1vbi10b29sdGlwLUVKQkQ5NnpYLnRoZW1lLXdoaXRlIC5jb21tb24tdG9vbHRpcF9fYm9keS1FSkJEOTZ6WHtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLWJnLXByaW1hcnkpO2JvcmRlci1yYWRpdXM6MH0uY29tbW9uLXRvb2x0aXAtRUpCRDk2elgudGhlbWUtd2hpdGUgLmNvbW1vbi10b29sdGlwX19lYXItaG9sZGVyLUVKQkQ5NnpYe2JvcmRlcjoxcHggc29saWQgdmFyKC0tY29sb3ItYm9yZGVyKX0uY29tbW9uLXRvb2x0aXAtRUpCRDk2elgudGhlbWUtd2hpdGUgLmNvbW1vbi10b29sdGlwX19lYXItaG9sZGVyLUVKQkQ5NnpYOmFmdGVye2JvcmRlci1jb2xvcjp2YXIoLS1jb2xvci1iZy1wcmltYXJ5KX0uY29tbW9uLXRvb2x0aXAtRUpCRDk2elgudGhlbWUtd2hpdGUgLmNvbW1vbi10b29sdGlwX19lYXItaG9sZGVyLS1hYm92ZS1FSkJEOTZ6WDphZnRlciwuY29tbW9uLXRvb2x0aXAtRUpCRDk2elgudGhlbWUtd2hpdGUgLmNvbW1vbi10b29sdGlwX19lYXItaG9sZGVyLS1iZWxvdy1FSkJEOTZ6WDphZnRlcntib3JkZXItaW5saW5lLWVuZDo2cHggc29saWQ7Ym9yZGVyLWlubGluZS1lbmQtY29sb3I6dmFyKC0tXzAtd01EZik7Ym9yZGVyLWlubGluZS1zdGFydDo2cHggc29saWQ7Ym9yZGVyLWlubGluZS1zdGFydC1jb2xvcjp2YXIoLS1fMC13TURmKX0uY29tbW9uLXRvb2x0aXAtRUpCRDk2elgudGhlbWUtd2hpdGUgLmNvbW1vbi10b29sdGlwX19lYXItaG9sZGVyLS1hZnRlci1FSkJEOTZ6WDphZnRlciwuY29tbW9uLXRvb2x0aXAtRUpCRDk2elgudGhlbWUtd2hpdGUgLmNvbW1vbi10b29sdGlwX19lYXItaG9sZGVyLS1iZWZvcmUtRUpCRDk2elg6YWZ0ZXJ7Ym9yZGVyLWJvdHRvbTo2cHggc29saWQ7Ym9yZGVyLWJvdHRvbS1jb2xvcjp2YXIoLS1fMC13TURmKTtib3JkZXItdG9wOjZweCBzb2xpZDtib3JkZXItdG9wLWNvbG9yOnZhcigtLV8wLXdNRGYpfS5jb21tb24tdG9vbHRpcC1FSkJEOTZ6WC50aGVtZS13aGl0ZSAuY29tbW9uLXRvb2x0aXBfX2Vhci1ob2xkZXItRUpCRDk2elg6YmVmb3Jle2JvcmRlcjowIHNvbGlkO2JvcmRlci1jb2xvcjp2YXIoLS1jb2xvci1ib3JkZXIpO2NvbnRlbnQ6IiI7ZGlzcGxheTpibG9jaztoZWlnaHQ6MDtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDowO3otaW5kZXg6MTAwMH0uY29tbW9uLXRvb2x0aXAtRUpCRDk2elgudGhlbWUtd2hpdGUgLmNvbW1vbi10b29sdGlwX19lYXItaG9sZGVyLS1hYm92ZS1FSkJEOTZ6WDpiZWZvcmUsLmNvbW1vbi10b29sdGlwLUVKQkQ5NnpYLnRoZW1lLXdoaXRlIC5jb21tb24tdG9vbHRpcF9fZWFyLWhvbGRlci0tYmVsb3ctRUpCRDk2elg6YmVmb3Jle2JvcmRlci1pbmxpbmUtZW5kOjdweCBzb2xpZDtib3JkZXItaW5saW5lLWVuZC1jb2xvcjp2YXIoLS1fMC13TURmKTtib3JkZXItaW5saW5lLXN0YXJ0OjdweCBzb2xpZDtib3JkZXItaW5saW5lLXN0YXJ0LWNvbG9yOnZhcigtLV8wLXdNRGYpO2luc2V0LWlubGluZS1zdGFydDo1MCU7bWFyZ2luLWlubGluZS1zdGFydDotN3B4fS5jb21tb24tdG9vbHRpcC1FSkJEOTZ6WC50aGVtZS13aGl0ZSAuY29tbW9uLXRvb2x0aXBfX2Vhci1ob2xkZXItLWJlbG93LUVKQkQ5NnpYOmJlZm9yZXtib3JkZXItYm90dG9tLXdpZHRoOjZweDt0b3A6LTZweH0uY29tbW9uLXRvb2x0aXAtRUpCRDk2elgudGhlbWUtd2hpdGUgLmNvbW1vbi10b29sdGlwX19lYXItaG9sZGVyLS1hYm92ZS1FSkJEOTZ6WDpiZWZvcmV7Ym9yZGVyLXRvcC13aWR0aDo2cHg7Ym90dG9tOi02cHh9LmNvbW1vbi10b29sdGlwLUVKQkQ5NnpYLnRoZW1lLXdoaXRlIC5jb21tb24tdG9vbHRpcF9fZWFyLWhvbGRlci0tYWZ0ZXItRUpCRDk2elg6YmVmb3JlLC5jb21tb24tdG9vbHRpcC1FSkJEOTZ6WC50aGVtZS13aGl0ZSAuY29tbW9uLXRvb2x0aXBfX2Vhci1ob2xkZXItLWJlZm9yZS1FSkJEOTZ6WDpiZWZvcmV7Ym9yZGVyLWJvdHRvbTo3cHggc29saWQ7Ym9yZGVyLWJvdHRvbS1jb2xvcjp2YXIoLS1fMC13TURmKTtib3JkZXItdG9wOjdweCBzb2xpZDtib3JkZXItdG9wLWNvbG9yOnZhcigtLV8wLXdNRGYpO21hcmdpbi10b3A6LTdweDt0b3A6NTAlfS5jb21tb24tdG9vbHRpcC1FSkJEOTZ6WC50aGVtZS13aGl0ZSAuY29tbW9uLXRvb2x0aXBfX2Vhci1ob2xkZXItLWJlZm9yZS1FSkJEOTZ6WDpiZWZvcmV7Ym9yZGVyLWlubGluZS1lbmQtd2lkdGg6NnB4O2luc2V0LWlubGluZS1zdGFydDotNnB4fS5jb21tb24tdG9vbHRpcC1FSkJEOTZ6WC50aGVtZS13aGl0ZSAuY29tbW9uLXRvb2x0aXBfX2Vhci1ob2xkZXItLWFmdGVyLUVKQkQ5NnpYOmJlZm9yZXtib3JkZXItaW5saW5lLXN0YXJ0LXdpZHRoOjZweDtpbnNldC1pbmxpbmUtZW5kOi02cHh9LmNvbW1vbi10b29sdGlwLUVKQkQ5NnpYLnRoZW1lLXJvdW5kLXNoYWRvd3tib3gtc2hhZG93OjAgMXB4IDNweCAwICMyYTJjMzk0YTtjb2xvcjp2YXIoLS1jb2xvci10ZXh0LXByaW1hcnkpfS5jb21tb24tdG9vbHRpcC1FSkJEOTZ6WC50aGVtZS1yb3VuZC1zaGFkb3cgLmNvbW1vbi10b29sdGlwX19ib2R5LUVKQkQ5NnpYe2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItYmctcHJpbWFyeSl9LmNvbW1vbi10b29sdGlwLUVKQkQ5NnpYLnRoZW1lLXJvdW5kLXNoYWRvdyAuY29tbW9uLXRvb2x0aXBfX2Vhci1ob2xkZXItRUpCRDk2elg6YWZ0ZXJ7Ym9yZGVyLWNvbG9yOnZhcigtLWNvbG9yLWJnLXByaW1hcnkpfS5jb21tb24tdG9vbHRpcC1FSkJEOTZ6WC50aGVtZS1yb3VuZC1zaGFkb3cgLmNvbW1vbi10b29sdGlwX19lYXItaG9sZGVyLS1hYm92ZS1FSkJEOTZ6WDphZnRlciwuY29tbW9uLXRvb2x0aXAtRUpCRDk2elgudGhlbWUtcm91bmQtc2hhZG93IC5jb21tb24tdG9vbHRpcF9fZWFyLWhvbGRlci0tYmVsb3ctRUpCRDk2elg6YWZ0ZXJ7Ym9yZGVyLWlubGluZS1lbmQ6NnB4IHNvbGlkO2JvcmRlci1pbmxpbmUtZW5kLWNvbG9yOnZhcigtLV8wLXdNRGYpO2JvcmRlci1pbmxpbmUtc3RhcnQ6NnB4IHNvbGlkO2JvcmRlci1pbmxpbmUtc3RhcnQtY29sb3I6dmFyKC0tXzAtd01EZil9LmNvbW1vbi10b29sdGlwLUVKQkQ5NnpYLnRoZW1lLXJvdW5kLXNoYWRvdyAuY29tbW9uLXRvb2x0aXBfX2Vhci1ob2xkZXItLWFmdGVyLUVKQkQ5NnpYOmFmdGVyLC5jb21tb24tdG9vbHRpcC1FSkJEOTZ6WC50aGVtZS1yb3VuZC1zaGFkb3cgLmNvbW1vbi10b29sdGlwX19lYXItaG9sZGVyLS1iZWZvcmUtRUpCRDk2elg6YWZ0ZXJ7Ym9yZGVyLWJvdHRvbTo2cHggc29saWQ7Ym9yZGVyLWJvdHRvbS1jb2xvcjp2YXIoLS1fMC13TURmKTtib3JkZXItdG9wOjZweCBzb2xpZDtib3JkZXItdG9wLWNvbG9yOnZhcigtLV8wLXdNRGYpfS5jb21tb24tdG9vbHRpcC1FSkJEOTZ6WC50aGVtZS1jaGFydCAuY29tbW9uLXRvb2x0aXBfX2JvZHktRUpCRDk2elh7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1iZy1wcmltYXJ5KTtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWNvbG9yLWRpdmlkZXIpO2JvcmRlci1yYWRpdXM6MTZweDtib3gtc2hhZG93OjAgMnB4IDRweCB2YXIoLS1jb2xvci1zaGFkb3ctcHJpbWFyeS1uZXV0cmFsLWV4dHJhLWhlYXZ5KTttYXgtd2lkdGg6MzQycHh9LmNvbW1vbi10b29sdGlwLUVKQkQ5NnpYLnRoZW1lLWNoYXJ0IC5jb21tb24tdG9vbHRpcF9fZWFyLWhvbGRlci1FSkJEOTZ6WDphZnRlcntjb250ZW50Om5vbmV9LmNvbW1vbi10b29sdGlwLUVKQkQ5NnpYLnRoZW1lLW5ld3MgLmNvbW1vbi10b29sdGlwX19ib2R5LUVKQkQ5NnpYe2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItYmctcHJpbWFyeSk7Ym9yZGVyLXJhZGl1czo4cHg7Ym94LXNoYWRvdzowIDJweCA0cHggdmFyKC0tY29sb3Itc2hhZG93LXByaW1hcnktbmV1dHJhbC1leHRyYS1oZWF2eSk7bWF4LXdpZHRoOjMyMHB4fS5jb21tb24tdG9vbHRpcC1FSkJEOTZ6WC50aGVtZS1uZXdzIC5jb21tb24tdG9vbHRpcF9fZWFyLWhvbGRlci1FSkJEOTZ6WDphZnRlcntjb250ZW50Om5vbmV9"}},"time_used":22,"timings":{"blocked":-1,"dns":2,"connect":1,"send":0,"wait":6,"receive":0,"ssl":12},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/13148.32cc01dc01751b91682c.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:12.982Z","timestamp":1785148032982,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/13148.32cc01dc01751b91682c.js HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:12 GMT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding, Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\netag: W/\"6a06d56c-12cc\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Fri, 15 May 2026 08:12:28 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.53\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 05/15/2026 10:19:05\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 80c7960a8de2dad37e5dc0959b8672d7\r\ncdn-cache: HIT\r\ncontent-encoding: br\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":4812,"size_decoded":2619,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (3061)","md5":"9eb8a2729659cd900aee823198b62b43","sha1":"27c53602ca760b97d71eef345b01c1d537900aad","sha256":"3ac4b66b0a6823b837035a5dfdf7fe41b01ccf2a2ac115b143c12356080ebdac","sha512":"6c86fb2c2378e589f4353d32a048ae866196581fc0a8a7ed13c379eb47eab41fcbfc0ee44f3ffe77ff3800136be1da4fbfecfe3456524b96712a1e5cef42945f","ssdeep":"96:FRi/jMMHFeHojARuZi0DWss7UebYiWWD+WRdiaEBymSM0qRIv0nrWvW1HN6Fb0so:rEjMMlIeARmLWss77bJWWD+WRd8ymSM9","tlshash":"66a1e987b9c2f0a063d9aca5953b054ae23d6c1c711bf0e8e2e9d5d19c7b10b9112f36","first_seen":"2026-05-15T11:49:16.287975Z","last_seen":"2026-07-27T13:00:41.383243Z","times_seen":4460,"resource_available":true,"data":"InVzZSBzdHJpY3QiOyhzZWxmLndlYnBhY2tDaHVua3RyYWRpbmd2aWV3PXNlbGYud2VicGFja0NodW5rdHJhZGluZ3ZpZXd8fFtdKS5wdXNoKFtbMTMxNDhdLHs3MzU5ODModCxlLG4pe24uZChlLHtkZWZhdWx0OigpPT5kfSk7Y29uc3Qgbz1mdW5jdGlvbigpe3RoaXMuX19kYXRhX189W10sdGhpcy5zaXplPTB9O3ZhciByPW4oOTEwNzc4KTtjb25zdCBhPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuPXQubGVuZ3RoO24tLTspaWYoKDAsci5kZWZhdWx0KSh0W25dWzBdLGUpKXJldHVybiBuO3JldHVybi0xfTt2YXIgcz1BcnJheS5wcm90b3R5cGUuc3BsaWNlO2NvbnN0IGM9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fX2RhdGFfXyxuPWEoZSx0KTtyZXR1cm4hKG48MCkmJihuPT1lLmxlbmd0aC0xP2UucG9wKCk6cy5jYWxsKGUsbiwxKSwtLXRoaXMuc2l6ZSwhMCl9O2NvbnN0IGk9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fX2RhdGFfXyxuPWEoZSx0KTtyZXR1cm4gbjwwP3ZvaWQgMDplW25dWzFdfTtjb25zdCB1PWZ1bmN0aW9uKHQpe3JldHVybiBhKHRoaXMuX19kYXRhX18sdCk+LTF9O2NvbnN0IGw9ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzLl9fZGF0YV9fLG89YShuLHQpO3JldHVybiBvPDA/KCsrdGhpcy5zaXplLG4ucHVzaChbdCxlXSkpOm5bb11bMV09ZSx0aGlzfTtmdW5jdGlvbiBmKHQpe3ZhciBlPS0xLG49bnVsbD09dD8wOnQubGVuZ3RoO2Zvcih0aGlzLmNsZWFyKCk7KytlPG47KXt2YXIgbz10W2VdO3RoaXMuc2V0KG9bMF0sb1sxXSl9fWYucHJvdG90eXBlLmNsZWFyPW8sZi5wcm90b3R5cGUuZGVsZXRlPWMsZi5wcm90b3R5cGUuZ2V0PWksZi5wcm90b3R5cGUuaGFzPXUsZi5wcm90b3R5cGUuc2V0PWw7Y29uc3QgZD1mfSw2OTQyMSh0LGUsbil7bi5kKGUse2RlZmF1bHQ6KCk9PmF9KTt2YXIgbz1uKDE2MjMxNikscj1uKDk4MTUyMyk7Y29uc3QgYT0oMCxvLmRlZmF1bHQpKHIuZGVmYXVsdCwiTWFwIil9LDcxMzE0OCh0LGUsbil7bi5kKGUse2RlZmF1bHQ6KCk9Pnp9KTtjb25zdCBvPSgwLG4oMTYyMzE2KS5kZWZhdWx0KShPYmplY3QsImNyZWF0ZSIpO2NvbnN0IHI9ZnVuY3Rpb24oKXt0aGlzLl9fZGF0YV9fPW8/byhudWxsKTp7fSx0aGlzLnNpemU9MH07Y29uc3QgYT1mdW5jdGlvbih0KXt2YXIgZT10aGlzLmhhcyh0KSYmZGVsZXRlIHRoaXMuX19kYXRhX19bdF07cmV0dXJuIHRoaXMuc2l6ZS09ZT8xOjAsZX07dmFyIHM9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTtjb25zdCBjPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuX19kYXRhX187aWYobyl7dmFyIG49ZVt0XTtyZXR1cm4iX19sb2Rhc2hfaGFzaF91bmRlZmluZWRfXyI9PT1uP3ZvaWQgMDpufXJldHVybiBzLmNhbGwoZSx0KT9lW3RdOnZvaWQgMH07dmFyIGk9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTtjb25zdCB1PWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuX19kYXRhX187cmV0dXJuIG8/dm9pZCAwIT09ZVt0XTppLmNhbGwoZSx0KX07Y29uc3QgbD1mdW5jdGlvbih0LGUpe3ZhciBuPXRoaXMuX19kYXRhX187cmV0dXJuIHRoaXMuc2l6ZSs9dGhpcy5oYXModCk/MDoxLG5bdF09byYmdm9pZCAwPT09ZT8iX19sb2Rhc2hfaGFzaF91bmRlZmluZWRfXyI6ZSx0aGlzfTtmdW5jdGlvbiBmKHQpe3ZhciBlPS0xLG49bnVsbD09dD8wOnQubGVuZ3RoO2Zvcih0aGlzLmNsZWFyKCk7KytlPG47KXt2YXIgbz10W2VdO3RoaXMuc2V0KG9bMF0sb1sxXSl9fWYucHJvdG90eXBlLmNsZWFyPXIsZi5wcm90b3R5cGUuZGVsZXRlPWEsZi5wcm90b3R5cGUuZ2V0PWMsZi5wcm90b3R5cGUuaGFzPXUsZi5wcm90b3R5cGUuc2V0PWw7Y29uc3QgZD1mO3ZhciBfPW4oNzM1OTgzKSxoPW4oNjk0MjEpO2NvbnN0IHA9ZnVuY3Rpb24oKXt0aGlzLnNpemU9MCx0aGlzLl9fZGF0YV9fPXtoYXNoOm5ldyBkLG1hcDpuZXcoaC5kZWZhdWx0fHxfLmRlZmF1bHQpLHN0cmluZzpuZXcgZH19O2NvbnN0IHY9ZnVuY3Rpb24odCl7dmFyIGU9dHlwZW9mIHQ7cmV0dXJuInN0cmluZyI9PWV8fCJudW1iZXIiPT1lfHwic3ltYm9sIj09ZXx8ImJvb2xlYW4iPT1lPyJfX3Byb3RvX18iIT09dDpudWxsPT09dH07Y29uc3QgeT1mdW5jdGlvbih0LGUpe3ZhciBuPXQuX19kYXRhX187cmV0dXJuIHYoZSk/blsic3RyaW5nIj09dHlwZW9mIGU/InN0cmluZyI6Imhhc2giXTpuLm1hcH07Y29uc3QgZz1mdW5jdGlvbih0KXt2YXIgZT15KHRoaXMsdCkuZGVsZXRlKHQpO3JldHVybiB0aGlzLnNpemUtPWU/MTowLGV9O2NvbnN0IGI9ZnVuY3Rpb24odCl7cmV0dXJuIHkodGhpcyx0KS5nZXQodCl9O2NvbnN0IGo9ZnVuY3Rpb24odCl7cmV0dXJuIHkodGhpcyx0KS5oYXModCl9O2NvbnN0IE89ZnVuY3Rpb24odCxlKXt2YXIgbj15KHRoaXMsdCksbz1uLnNpemU7cmV0dXJuIG4uc2V0KHQsZSksdGhpcy5zaXplKz1uLnNpemU9PW8/MDoxLHRoaXN9O2Z1bmN0aW9uIHcodCl7dmFyIGU9LTEsbj1udWxsPT10PzA6dC5sZW5ndGg7Zm9yKHRoaXMuY2xlYXIoKTsrK2U8bjspe3ZhciBvPXRbZV07dGhpcy5zZXQob1swXSxvWzFdKX19dy5wcm90b3R5cGUuY2xlYXI9cCx3LnByb3RvdHlwZS5kZWxldGU9Zyx3LnByb3RvdHlwZS5nZXQ9Yix3LnByb3RvdHlwZS5oYXM9aix3LnByb3RvdHlwZS5zZXQ9Tztjb25zdCB6PXd9LDg3Mjk5OSh0LGUsbil7bi5kKGUse2RlZmF1bHQ6KCk9Pm99KTtjb25zdCBvPW4oOTgxNTIzKS5kZWZhdWx0LlN5bWJvbH0sMTc4NDk3KHQsZSxuKXtuLmQoZSx7ZGVmYXVsdDooKT0+ZH0pO3ZhciBvPW4oODcyOTk5KSxyPU9iamVjdC5wcm90b3R5cGUsYT1yLmhhc093blByb3BlcnR5LHM9ci50b1N0cmluZyxjPW8uZGVmYXVsdD9vLmRlZmF1bHQudG9TdHJpbmdUYWc6dm9pZCAwO2NvbnN0IGk9ZnVuY3Rpb24odCl7dmFyIGU9YS5jYWxsKHQsYyksbj10W2NdO3RyeXt0W2NdPXZvaWQgMDt2YXIgbz0hMH1jYXRjaCh0KXt9dmFyIHI9cy5jYWxsKHQpO3JldHVybiBvJiYoZT90W2NdPW46ZGVsZXRlIHRbY10pLHJ9O3ZhciB1PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmc7Y29uc3QgbD1mdW5jdGlvbih0KXtyZXR1cm4gdS5jYWxsKHQpfQo7dmFyIGY9by5kZWZhdWx0P28uZGVmYXVsdC50b1N0cmluZ1RhZzp2b2lkIDA7Y29uc3QgZD1mdW5jdGlvbih0KXtyZXR1cm4gbnVsbD09dD92b2lkIDA9PT10PyJbb2JqZWN0IFVuZGVmaW5lZF0iOiJbb2JqZWN0IE51bGxdIjpmJiZmIGluIE9iamVjdCh0KT9pKHQpOmwodCl9fSw2MDI5NDIodCxlLG4pe24uZChlLHtkZWZhdWx0OigpPT5vfSk7Y29uc3Qgbz0ib2JqZWN0Ij09dHlwZW9mIG4uZyYmbi5nJiZuLmcuT2JqZWN0PT09T2JqZWN0JiZuLmd9LDE2MjMxNih0LGUsbil7bi5kKGUse2RlZmF1bHQ6KCk9Pmd9KTt2YXIgbz1uKDkyODEzMik7Y29uc3Qgcj1uKDk4MTUyMykuZGVmYXVsdFsiX19jb3JlLWpzX3NoYXJlZF9fIl07dmFyIGEscz0oYT0vW14uXSskLy5leGVjKHImJnIua2V5cyYmci5rZXlzLklFX1BST1RPfHwiIikpPyJTeW1ib2woc3JjKV8xLiIrYToiIjtjb25zdCBjPWZ1bmN0aW9uKHQpe3JldHVybiEhcyYmcyBpbiB0fTt2YXIgaT1uKDg4MDExNSksdT1uKDczMDUwMyksbD0vXlxbb2JqZWN0IC4rP0NvbnN0cnVjdG9yXF0kLyxmPUZ1bmN0aW9uLnByb3RvdHlwZSxkPU9iamVjdC5wcm90b3R5cGUsXz1mLnRvU3RyaW5nLGg9ZC5oYXNPd25Qcm9wZXJ0eSxwPVJlZ0V4cCgiXiIrXy5jYWxsKGgpLnJlcGxhY2UoL1tcXF4kLiorPygpW1xde318XS9nLCJcXCQmIikucmVwbGFjZSgvaGFzT3duUHJvcGVydHl8KGZ1bmN0aW9uKS4qPyg/PVxcXCgpfCBmb3IgLis/KD89XFxcXSkvZywiJDEuKj8iKSsiJCIpO2NvbnN0IHY9ZnVuY3Rpb24odCl7cmV0dXJuISghKDAsaS5kZWZhdWx0KSh0KXx8Yyh0KSkmJigoMCxvLmRlZmF1bHQpKHQpP3A6bCkudGVzdCgoMCx1LmRlZmF1bHQpKHQpKX07Y29uc3QgeT1mdW5jdGlvbih0LGUpe3JldHVybiBudWxsPT10P3ZvaWQgMDp0W2VdfTtjb25zdCBnPWZ1bmN0aW9uKHQsZSl7dmFyIG49eSh0LGUpO3JldHVybiB2KG4pP246dm9pZCAwfX0sOTgxNTIzKHQsZSxuKXtuLmQoZSx7ZGVmYXVsdDooKT0+YX0pO3ZhciBvPW4oNjAyOTQyKSxyPSJvYmplY3QiPT10eXBlb2Ygc2VsZiYmc2VsZiYmc2VsZi5PYmplY3Q9PT1PYmplY3QmJnNlbGY7Y29uc3QgYT1vLmRlZmF1bHR8fHJ8fEZ1bmN0aW9uKCJyZXR1cm4gdGhpcyIpKCl9LDczMDUwMyh0LGUsbil7bi5kKGUse2RlZmF1bHQ6KCk9PnJ9KTt2YXIgbz1GdW5jdGlvbi5wcm90b3R5cGUudG9TdHJpbmc7Y29uc3Qgcj1mdW5jdGlvbih0KXtpZihudWxsIT10KXt0cnl7cmV0dXJuIG8uY2FsbCh0KX1jYXRjaCh0KXt9dHJ5e3JldHVybiB0KyIifWNhdGNoKHQpe319cmV0dXJuIiJ9fSw5MTA3NzgodCxlLG4pe24uZChlLHtkZWZhdWx0OigpPT5vfSk7Y29uc3Qgbz1mdW5jdGlvbih0LGUpe3JldHVybiB0PT09ZXx8dCE9dCYmZSE9ZX19LDkyODEzMih0LGUsbil7bi5kKGUse2RlZmF1bHQ6KCk9PmF9KTt2YXIgbz1uKDE3ODQ5Nykscj1uKDg4MDExNSk7Y29uc3QgYT1mdW5jdGlvbih0KXtpZighKDAsci5kZWZhdWx0KSh0KSlyZXR1cm4hMTt2YXIgZT0oMCxvLmRlZmF1bHQpKHQpO3JldHVybiJbb2JqZWN0IEZ1bmN0aW9uXSI9PWV8fCJbb2JqZWN0IEdlbmVyYXRvckZ1bmN0aW9uXSI9PWV8fCJbb2JqZWN0IEFzeW5jRnVuY3Rpb25dIj09ZXx8IltvYmplY3QgUHJveHldIj09ZX19LDg4MDExNSh0LGUsbil7bi5kKGUse2RlZmF1bHQ6KCk9Pm99KTtjb25zdCBvPWZ1bmN0aW9uKHQpe3ZhciBlPXR5cGVvZiB0O3JldHVybiBudWxsIT10JiYoIm9iamVjdCI9PWV8fCJmdW5jdGlvbiI9PWUpfX19XSk7"}},"time_used":3,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":3,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/49265.c208ef8379e073f94d16.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:12.983Z","timestamp":1785148032983,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/49265.c208ef8379e073f94d16.js HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:12 GMT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a435fcb-4ddf\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Tue, 30 Jun 2026 06:18:51 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.57\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 06/30/2026 11:55:09\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 1dfcf7a86922dcec6b5d4534a0ba8eb6\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":19935,"size_decoded":7323,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (3072)","md5":"7b82078f584e6803982971fd98e254ad","sha1":"68381b82a3c15fb84e25d74f902a92fd1de3a245","sha256":"e79b56277f3ab3f995df2d44c612a393858265d70e8d4151a858384901aaa5ae","sha512":"856120280da4d842117fb927a8dbab94215dfb803172d5217ef06b3e3160c27bfbc9fda244b20ac94ce02cebb4356d25c92927cb9292b29f658e377fca579fec","ssdeep":"384:j9PRJCURbRGehSowQ7pJIdRW5TejB6ScRTtDe1efLBHxe+Wl2XaKKTV28fRJmRDM:RPTCURbwehStQ7pJIdk5TejB6ScZtDeb","tlshash":"7e92de8679c2f0e962d55cd4c07b4846f01a0d3c704db8e9e7e6c8d2da7a14ed436bba","first_seen":"2026-06-30T14:35:40.41523Z","last_seen":"2026-07-27T13:00:41.442567Z","times_seen":2902,"resource_available":true,"data":"KHNlbGYud2VicGFja0NodW5rdHJhZGluZ3ZpZXc9c2VsZi53ZWJwYWNrQ2h1bmt0cmFkaW5ndmlld3x8W10pLnB1c2goW1s0OTI2NV0sezc1Njg1MSh0KXsidXNlIHN0cmljdCI7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1bXSxyPXQubGVuZ3RoLG49MDtuPHI7bisrKXt2YXIgdT10LmNoYXJDb2RlQXQobik7aWYodT49NTUyOTYmJnU8PTU2MzE5JiZyPm4rMSl7dmFyIGE9dC5jaGFyQ29kZUF0KG4rMSk7YT49NTYzMjAmJmE8PTU3MzQzJiYodT0xMDI0Kih1LTU1Mjk2KSthLTU2MzIwKzY1NTM2LG4rPTEpfXU8MTI4P2UucHVzaCh1KTp1PDIwNDg/KGUucHVzaCh1Pj42fDE5MiksZS5wdXNoKDYzJnV8MTI4KSk6dTw1NTI5Nnx8dT49NTczNDQmJnU8NjU1MzY/KGUucHVzaCh1Pj4xMnwyMjQpLGUucHVzaCh1Pj42JjYzfDEyOCksZS5wdXNoKDYzJnV8MTI4KSk6dT49NjU1MzYmJnU8PTExMTQxMTE/KGUucHVzaCh1Pj4xOHwyNDApLGUucHVzaCh1Pj4xMiY2M3wxMjgpLGUucHVzaCh1Pj42JjYzfDEyOCksZS5wdXNoKDYzJnV8MTI4KSk6ZS5wdXNoKDIzOSwxOTEsMTg5KX1yZXR1cm4gbmV3IFVpbnQ4QXJyYXkoZSkuYnVmZmVyfX0sNTA0NDAyKHQsZSxyKXt2YXIgbj1yKDYzODIyMSk7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe3JldHVybiB0PW4odF49dD4+PjE2LDIyNDY4MjI1MDcpLHQ9bih0Xj10Pj4+MTMsMzI2NjQ4OTkwOSksKHRePXQ+Pj4xNik+Pj4wfX0sNjM4MjIxKHQpeyJ1c2Ugc3RyaWN0Ijt0LmV4cG9ydHM9TWF0aC5pbXVsfHxmdW5jdGlvbih0LGUpe3ZhciByPTY1NTM1JnQsbj02NTUzNSZlO3JldHVybiByKm4rKCh0Pj4+MTYmNjU1MzUpKm4rciooZT4+PjE2JjY1NTM1KTw8MTY+Pj4wKXwwfX0sMTAwNTk1KHQsZSxyKXt2YXIgbj1yKDYzODIyMSksdT1yKDUwNDQwMiksYT1yKDc1Njg1MSksbz1uZXcgVWludDMyQXJyYXkoWzM0MzI5MTgzNTMsNDYxODQ1OTA3XSk7ZnVuY3Rpb24gYyh0LGUpe3JldHVybiB0PDxlfHQ+Pj4zMi1lfXQuZXhwb3J0cz1mdW5jdGlvbih0LGUpe2lmKGU9ZT8wfGU6MCwic3RyaW5nIj09dHlwZW9mIHQmJih0PWEodCkpLCEodCBpbnN0YW5jZW9mIEFycmF5QnVmZmVyKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJFeHBlY3RlZCBrZXkgdG8gYmUgQXJyYXlCdWZmZXIgb3Igc3RyaW5nIik7dmFyIHI9bmV3IFVpbnQzMkFycmF5KFtlXSk7cmV0dXJuIGZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPXQuYnl0ZUxlbmd0aC80fDAsdT1uZXcgVWludDMyQXJyYXkodCwwLHIpLGE9MDthPHI7YSsrKXVbYV09bih1W2FdLG9bMF0pLHVbYV09Yyh1W2FdLDE1KSx1W2FdPW4odVthXSxvWzFdKSxlWzBdPWVbMF1edVthXSxlWzBdPWMoZVswXSwxMyksZVswXT1uKGVbMF0sNSkrMzg2NDI5MjE5Nn0odCxyKSxmdW5jdGlvbih0LGUpe3ZhciByPXQuYnl0ZUxlbmd0aC80fDAsdT10LmJ5dGVMZW5ndGglNCxhPTAsZj1uZXcgVWludDhBcnJheSh0LDQqcix1KTtzd2l0Y2godSl7Y2FzZSAzOmFePWZbMl08PDE2O2Nhc2UgMjphXj1mWzFdPDw4O2Nhc2UgMTphXj1mWzBdLGE9YyhhPW4oYSxvWzBdKSwxNSksYT1uKGEsb1sxXSksZVswXT1lWzBdXmF9fSh0LHIpLGZ1bmN0aW9uKHQsZSl7ZVswXT1lWzBdXnQuYnl0ZUxlbmd0aCxlWzBdPXUoZVswXSl9KHQsciksci5idWZmZXJ9fSw0MTQxMjModCxlLHIpeyJ1c2Ugc3RyaWN0IjtyLmQoZSx7ZGVmYXVsdDooKT0+YX0pO3ZhciBuPXIoMTYyMzE2KSx1PXIoOTgxNTIzKTtjb25zdCBhPSgwLG4uZGVmYXVsdCkodS5kZWZhdWx0LCJTZXQiKX0sMjY5MzY2KHQsZSxyKXsidXNlIHN0cmljdCI7ci5kKGUse2RlZmF1bHQ6KCk9PmN9KTt2YXIgbj1yKDcxMzE0OCk7Y29uc3QgdT1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fX2RhdGFfXy5zZXQodCwiX19sb2Rhc2hfaGFzaF91bmRlZmluZWRfXyIpLHRoaXN9O2NvbnN0IGE9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX19kYXRhX18uaGFzKHQpfTtmdW5jdGlvbiBvKHQpe3ZhciBlPS0xLHI9bnVsbD09dD8wOnQubGVuZ3RoO2Zvcih0aGlzLl9fZGF0YV9fPW5ldyBuLmRlZmF1bHQ7KytlPHI7KXRoaXMuYWRkKHRbZV0pfW8ucHJvdG90eXBlLmFkZD1vLnByb3RvdHlwZS5wdXNoPXUsby5wcm90b3R5cGUuaGFzPWE7Y29uc3QgYz1vfSw4ODY1MTQodCxlLHIpeyJ1c2Ugc3RyaWN0IjtyLmQoZSx7ZGVmYXVsdDooKT0+ZH0pO3ZhciBuPXIoNzM1OTgzKTtjb25zdCB1PWZ1bmN0aW9uKCl7dGhpcy5fX2RhdGFfXz1uZXcgbi5kZWZhdWx0LHRoaXMuc2l6ZT0wfTtjb25zdCBhPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuX19kYXRhX18scj1lLmRlbGV0ZSh0KTtyZXR1cm4gdGhpcy5zaXplPWUuc2l6ZSxyfTtjb25zdCBvPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9fZGF0YV9fLmdldCh0KX07Y29uc3QgYz1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fX2RhdGFfXy5oYXModCl9O3ZhciBmPXIoNjk0MjEpLHM9cig3MTMxNDgpO2NvbnN0IGk9ZnVuY3Rpb24odCxlKXt2YXIgcj10aGlzLl9fZGF0YV9fO2lmKHIgaW5zdGFuY2VvZiBuLmRlZmF1bHQpe3ZhciB1PXIuX19kYXRhX187aWYoIWYuZGVmYXVsdHx8dS5sZW5ndGg8MTk5KXJldHVybiB1LnB1c2goW3QsZV0pLHRoaXMuc2l6ZT0rK3Iuc2l6ZSx0aGlzO3I9dGhpcy5fX2RhdGFfXz1uZXcgcy5kZWZhdWx0KHUpfXJldHVybiByLnNldCh0LGUpLHRoaXMuc2l6ZT1yLnNpemUsdGhpc307ZnVuY3Rpb24gbCh0KXt2YXIgZT10aGlzLl9fZGF0YV9fPW5ldyBuLmRlZmF1bHQodCk7dGhpcy5zaXplPWUuc2l6ZX1sLnByb3RvdHlwZS5jbGVhcj11LGwucHJvdG90eXBlLmRlbGV0ZT1hLGwucHJvdG90eXBlLmdldD1vLGwucHJvdG90eXBlLmhhcz1jLGwucHJvdG90eXBlLnNldD1pO2NvbnN0IGQ9bH0sODY1MzMwKHQsZSxyKXsidXNlIHN0cmljdCI7ci5kKGUse2RlZmF1bHQ6KCk9Pm59KTtjb25zdCBuPXIoOTgxNTIzKS5kZWZhdWx0LlVpbnQ4QXJyYXl9LDkyODQ1Myh0LGUscil7InVzZSBzdHJpY3QiO3IuZChlLHtkZWZhdWx0OigpPT5hfSk7dmFyIG49cigxNjIzMTYpLHU9cig5ODE1MjMpO2NvbnN0IGE9KDAsbi5kZWZhdWx0KSh1LmRlZmF1bHQsIldlYWtNYXAiKX0sCjk4NDEzOSh0LGUscil7InVzZSBzdHJpY3QiO3IuZChlLHtkZWZhdWx0OigpPT5ufSk7Y29uc3Qgbj1mdW5jdGlvbih0LGUpe2Zvcih2YXIgcj0tMSxuPW51bGw9PXQ/MDp0Lmxlbmd0aDsrK3I8biYmITEhPT1lKHRbcl0scix0KTspO3JldHVybiB0fX0sMjI0NDE2KHQsZSxyKXsidXNlIHN0cmljdCI7ci5kKGUse2RlZmF1bHQ6KCk9PmN9KTt2YXIgbj1yKDY4ODk2NSk7Y29uc3QgdT1mdW5jdGlvbih0KXtyZXR1cm4gdCE9dH07Y29uc3QgYT1mdW5jdGlvbih0LGUscil7Zm9yKHZhciBuPXItMSx1PXQubGVuZ3RoOysrbjx1OylpZih0W25dPT09ZSlyZXR1cm4gbjtyZXR1cm4tMX07Y29uc3Qgbz1mdW5jdGlvbih0LGUscil7cmV0dXJuIGU9PWU/YSh0LGUscik6KDAsbi5kZWZhdWx0KSh0LHUscil9O2NvbnN0IGM9ZnVuY3Rpb24odCxlKXtyZXR1cm4hIShudWxsPT10PzA6dC5sZW5ndGgpJiZvKHQsZSwwKT4tMX19LDgyNTAzOSh0LGUscil7InVzZSBzdHJpY3QiO3IuZChlLHtkZWZhdWx0OigpPT5ufSk7Y29uc3Qgbj1mdW5jdGlvbih0LGUscil7Zm9yKHZhciBuPS0xLHU9bnVsbD09dD8wOnQubGVuZ3RoOysrbjx1OylpZihyKGUsdFtuXSkpcmV0dXJuITA7cmV0dXJuITF9fSw4MjA5NzUodCxlLHIpeyJ1c2Ugc3RyaWN0IjtyLmQoZSx7ZGVmYXVsdDooKT0+aX0pO2NvbnN0IG49ZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9LTEsbj1BcnJheSh0KTsrK3I8dDspbltyXT1lKHIpO3JldHVybiBufTt2YXIgdT1yKDUzMTU1NyksYT1yKDI5NTYzNSksbz1yKDY1OTAxOCksYz1yKDkyMTE0MyksZj1yKDE2NTI2Nykscz1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O2NvbnN0IGk9ZnVuY3Rpb24odCxlKXt2YXIgcj0oMCxhLmRlZmF1bHQpKHQpLGk9IXImJigwLHUuZGVmYXVsdCkodCksbD0hciYmIWkmJigwLG8uZGVmYXVsdCkodCksZD0hciYmIWkmJiFsJiYoMCxmLmRlZmF1bHQpKHQpLHY9cnx8aXx8bHx8ZCxwPXY/bih0Lmxlbmd0aCxTdHJpbmcpOltdLGI9cC5sZW5ndGg7Zm9yKHZhciB5IGluIHQpIWUmJiFzLmNhbGwodCx5KXx8diYmKCJsZW5ndGgiPT15fHxsJiYoIm9mZnNldCI9PXl8fCJwYXJlbnQiPT15KXx8ZCYmKCJidWZmZXIiPT15fHwiYnl0ZUxlbmd0aCI9PXl8fCJieXRlT2Zmc2V0Ij09eSl8fCgwLGMuZGVmYXVsdCkoeSxiKSl8fHAucHVzaCh5KTtyZXR1cm4gcH19LDQ0ODYyNih0LGUscil7InVzZSBzdHJpY3QiO3IuZChlLHtkZWZhdWx0OigpPT5ufSk7Y29uc3Qgbj1mdW5jdGlvbih0LGUpe2Zvcih2YXIgcj0tMSxuPWUubGVuZ3RoLHU9dC5sZW5ndGg7KytyPG47KXRbdStyXT1lW3JdO3JldHVybiB0fX0sMTY4NTMzKHQsZSxyKXsidXNlIHN0cmljdCI7ci5kKGUse2RlZmF1bHQ6KCk9Pm99KTt2YXIgbj1yKDI1NDczOCksdT1yKDkxMDc3OCksYT1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O2NvbnN0IG89ZnVuY3Rpb24odCxlLHIpe3ZhciBvPXRbZV07YS5jYWxsKHQsZSkmJigwLHUuZGVmYXVsdCkobyxyKSYmKHZvaWQgMCE9PXJ8fGUgaW4gdCl8fCgwLG4uZGVmYXVsdCkodCxlLHIpfX0sMjU0NzM4KHQsZSxyKXsidXNlIHN0cmljdCI7ci5kKGUse2RlZmF1bHQ6KCk9PnV9KTt2YXIgbj1yKDM2MDQ5KTtjb25zdCB1PWZ1bmN0aW9uKHQsZSxyKXsiX19wcm90b19fIj09ZSYmbi5kZWZhdWx0PygwLG4uZGVmYXVsdCkodCxlLHtjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMCx2YWx1ZTpyLHdyaXRhYmxlOiEwfSk6dFtlXT1yfX0sNDkzMDE4KHQsZSxyKXsidXNlIHN0cmljdCI7ci5kKGUse2RlZmF1bHQ6KCk9Pkh9KTt2YXIgbj1yKDg4NjUxNCksdT1yKDk4NDEzOSksYT1yKDE2ODUzMyksbz1yKDYxODU3KSxjPXIoMzA5MDgwKTtjb25zdCBmPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQmJigwLG8uZGVmYXVsdCkoZSwoMCxjLmRlZmF1bHQpKGUpLHQpfTt2YXIgcz1yKDIxNzQ1Nyk7Y29uc3QgaT1mdW5jdGlvbih0LGUpe3JldHVybiB0JiYoMCxvLmRlZmF1bHQpKGUsKDAscy5kZWZhdWx0KShlKSx0KX07dmFyIGw9cig0ODcwNjApLGQ9cig3MDU3NDkpLHY9cigyMzA5NTEpO2NvbnN0IHA9ZnVuY3Rpb24odCxlKXtyZXR1cm4oMCxvLmRlZmF1bHQpKHQsKDAsdi5kZWZhdWx0KSh0KSxlKX07dmFyIGI9cigxMTY2NDEpO2NvbnN0IHk9ZnVuY3Rpb24odCxlKXtyZXR1cm4oMCxvLmRlZmF1bHQpKHQsKDAsYi5kZWZhdWx0KSh0KSxlKX07dmFyIGg9cig4MDYyNDApLGo9cig5OTE1OTkpLGc9cig5Njk3ODUpLHc9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTtjb25zdCBfPWZ1bmN0aW9uKHQpe3ZhciBlPXQubGVuZ3RoLHI9bmV3IHQuY29uc3RydWN0b3IoZSk7cmV0dXJuIGUmJiJzdHJpbmciPT10eXBlb2YgdFswXSYmdy5jYWxsKHQsImluZGV4IikmJihyLmluZGV4PXQuaW5kZXgsci5pbnB1dD10LmlucHV0KSxyfTt2YXIgQT1yKDM3NzI1MSk7Y29uc3QgbT1mdW5jdGlvbih0LGUpe3ZhciByPWU/KDAsQS5kZWZhdWx0KSh0LmJ1ZmZlcik6dC5idWZmZXI7cmV0dXJuIG5ldyB0LmNvbnN0cnVjdG9yKHIsdC5ieXRlT2Zmc2V0LHQuYnl0ZUxlbmd0aCl9O3ZhciBPPS9cdyokLztjb25zdCB4PWZ1bmN0aW9uKHQpe3ZhciBlPW5ldyB0LmNvbnN0cnVjdG9yKHQuc291cmNlLE8uZXhlYyh0KSk7cmV0dXJuIGUubGFzdEluZGV4PXQubGFzdEluZGV4LGV9O3ZhciBVPXIoODcyOTk5KSxFPVUuZGVmYXVsdD9VLmRlZmF1bHQucHJvdG90eXBlOnZvaWQgMCxUPUU/RS52YWx1ZU9mOnZvaWQgMDtjb25zdCBTPWZ1bmN0aW9uKHQpe3JldHVybiBUP09iamVjdChULmNhbGwodCkpOnt9fTt2YXIgST1yKDEzOTA3KTtjb25zdCBNPWZ1bmN0aW9uKHQsZSxyKXt2YXIgbj10LmNvbnN0cnVjdG9yO3N3aXRjaChlKXtjYXNlIltvYmplY3QgQXJyYXlCdWZmZXJdIjpyZXR1cm4oMCxBLmRlZmF1bHQpKHQpO2Nhc2UiW29iamVjdCBCb29sZWFuXSI6Y2FzZSJbb2JqZWN0IERhdGVdIjpyZXR1cm4gbmV3IG4oK3QpO2Nhc2UiW29iamVjdCBEYXRhVmlld10iOnJldHVybiBtKHQscik7Y2FzZSJbb2JqZWN0IEZsb2F0MzJBcnJheV0iOmNhc2UiW29iamVjdCBGbG9hdDY0QXJyYXldIjoKY2FzZSJbb2JqZWN0IEludDhBcnJheV0iOmNhc2UiW29iamVjdCBJbnQxNkFycmF5XSI6Y2FzZSJbb2JqZWN0IEludDMyQXJyYXldIjpjYXNlIltvYmplY3QgVWludDhBcnJheV0iOmNhc2UiW29iamVjdCBVaW50OENsYW1wZWRBcnJheV0iOmNhc2UiW29iamVjdCBVaW50MTZBcnJheV0iOmNhc2UiW29iamVjdCBVaW50MzJBcnJheV0iOnJldHVybigwLEkuZGVmYXVsdCkodCxyKTtjYXNlIltvYmplY3QgTWFwXSI6Y2FzZSJbb2JqZWN0IFNldF0iOnJldHVybiBuZXcgbjtjYXNlIltvYmplY3QgTnVtYmVyXSI6Y2FzZSJbb2JqZWN0IFN0cmluZ10iOnJldHVybiBuZXcgbih0KTtjYXNlIltvYmplY3QgUmVnRXhwXSI6cmV0dXJuIHgodCk7Y2FzZSJbb2JqZWN0IFN5bWJvbF0iOnJldHVybiBTKHQpfX07dmFyIEI9cig4MDc1NzUpLFA9cigyOTU2MzUpLGs9cig2NTkwMTgpLHo9cig2NzI1MTEpLEM9cig4ODAxMTUpLEQ9cigzNjA2MjApO2NvbnN0IEY9ZnVuY3Rpb24odCl7cmV0dXJuKDAsRC5kZWZhdWx0KSh0KSYmIltvYmplY3QgU2V0XSI9PSgwLGcuZGVmYXVsdCkodCl9O3ZhciBMPXIoODk5MzM5KSxOPXIoMzY5ODk5KSxXPU4uZGVmYXVsdCYmTi5kZWZhdWx0LmlzU2V0O2NvbnN0IFY9Vz8oMCxMLmRlZmF1bHQpKFcpOkY7dmFyICQ9IltvYmplY3QgQXJndW1lbnRzXSIsUj0iW29iamVjdCBGdW5jdGlvbl0iLHE9IltvYmplY3QgT2JqZWN0XSIsRz17fTtHWyRdPUdbIltvYmplY3QgQXJyYXldIl09R1siW29iamVjdCBBcnJheUJ1ZmZlcl0iXT1HWyJbb2JqZWN0IERhdGFWaWV3XSJdPUdbIltvYmplY3QgQm9vbGVhbl0iXT1HWyJbb2JqZWN0IERhdGVdIl09R1siW29iamVjdCBGbG9hdDMyQXJyYXldIl09R1siW29iamVjdCBGbG9hdDY0QXJyYXldIl09R1siW29iamVjdCBJbnQ4QXJyYXldIl09R1siW29iamVjdCBJbnQxNkFycmF5XSJdPUdbIltvYmplY3QgSW50MzJBcnJheV0iXT1HWyJbb2JqZWN0IE1hcF0iXT1HWyJbb2JqZWN0IE51bWJlcl0iXT1HW3FdPUdbIltvYmplY3QgUmVnRXhwXSJdPUdbIltvYmplY3QgU2V0XSJdPUdbIltvYmplY3QgU3RyaW5nXSJdPUdbIltvYmplY3QgU3ltYm9sXSJdPUdbIltvYmplY3QgVWludDhBcnJheV0iXT1HWyJbb2JqZWN0IFVpbnQ4Q2xhbXBlZEFycmF5XSJdPUdbIltvYmplY3QgVWludDE2QXJyYXldIl09R1siW29iamVjdCBVaW50MzJBcnJheV0iXT0hMCxHWyJbb2JqZWN0IEVycm9yXSJdPUdbUl09R1siW29iamVjdCBXZWFrTWFwXSJdPSExO2NvbnN0IEg9ZnVuY3Rpb24gdChlLHIsbyx2LGIsdyl7dmFyIEEsbT0xJnIsTz0yJnIseD00JnI7aWYobyYmKEE9Yj9vKGUsdixiLHcpOm8oZSkpLHZvaWQgMCE9PUEpcmV0dXJuIEE7aWYoISgwLEMuZGVmYXVsdCkoZSkpcmV0dXJuIGU7dmFyIFU9KDAsUC5kZWZhdWx0KShlKTtpZihVKXtpZihBPV8oZSksIW0pcmV0dXJuKDAsZC5kZWZhdWx0KShlLEEpfWVsc2V7dmFyIEU9KDAsZy5kZWZhdWx0KShlKSxUPUU9PVJ8fCJbb2JqZWN0IEdlbmVyYXRvckZ1bmN0aW9uXSI9PUU7aWYoKDAsay5kZWZhdWx0KShlKSlyZXR1cm4oMCxsLmRlZmF1bHQpKGUsbSk7aWYoRT09cXx8RT09JHx8VCYmIWIpe2lmKEE9T3x8VD97fTooMCxCLmRlZmF1bHQpKGUpLCFtKXJldHVybiBPP3koZSxpKEEsZSkpOnAoZSxmKEEsZSkpfWVsc2V7aWYoIUdbRV0pcmV0dXJuIGI/ZTp7fTtBPU0oZSxFLG0pfX13fHwodz1uZXcgbi5kZWZhdWx0KTt2YXIgUz13LmdldChlKTtpZihTKXJldHVybiBTO3cuc2V0KGUsQSksVihlKT9lLmZvckVhY2goKGZ1bmN0aW9uKG4pe0EuYWRkKHQobixyLG8sbixlLHcpKX0pKTooMCx6LmRlZmF1bHQpKGUpJiZlLmZvckVhY2goKGZ1bmN0aW9uKG4sdSl7QS5zZXQodSx0KG4scixvLHUsZSx3KSl9KSk7dmFyIEk9eD9PP2ouZGVmYXVsdDpoLmRlZmF1bHQ6Tz9zLmRlZmF1bHQ6Yy5kZWZhdWx0LEQ9VT92b2lkIDA6SShlKTtyZXR1cm4oMCx1LmRlZmF1bHQpKER8fGUsKGZ1bmN0aW9uKG4sdSl7RCYmKG49ZVt1PW5dKSwoMCxhLmRlZmF1bHQpKEEsdSx0KG4scixvLHUsZSx3KSl9KSksQX19LDg1MTA4Mih0LGUscil7InVzZSBzdHJpY3QiO3IuZChlLHtkZWZhdWx0OigpPT5hfSk7dmFyIG49cig4ODAxMTUpLHU9T2JqZWN0LmNyZWF0ZTtjb25zdCBhPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCgpe31yZXR1cm4gZnVuY3Rpb24oZSl7aWYoISgwLG4uZGVmYXVsdCkoZSkpcmV0dXJue307aWYodSlyZXR1cm4gdShlKTt0LnByb3RvdHlwZT1lO3ZhciByPW5ldyB0O3JldHVybiB0LnByb3RvdHlwZT12b2lkIDAscn19KCl9LDY4ODk2NSh0LGUscil7InVzZSBzdHJpY3QiO3IuZChlLHtkZWZhdWx0OigpPT5ufSk7Y29uc3Qgbj1mdW5jdGlvbih0LGUscixuKXtmb3IodmFyIHU9dC5sZW5ndGgsYT1yKyhuPzE6LTEpO24/YS0tOisrYTx1OylpZihlKHRbYV0sYSx0KSlyZXR1cm4gYTtyZXR1cm4tMX19LDkxNjA4NSh0LGUscil7InVzZSBzdHJpY3QiO3IuZChlLHtkZWZhdWx0OigpPT5hfSk7dmFyIG49cig0NDg2MjYpLHU9cigyOTU2MzUpO2NvbnN0IGE9ZnVuY3Rpb24odCxlLHIpe3ZhciBhPWUodCk7cmV0dXJuKDAsdS5kZWZhdWx0KSh0KT9hOigwLG4uZGVmYXVsdCkoYSxyKHQpKX19LDgzMDg3NSh0LGUscil7InVzZSBzdHJpY3QiO3IuZChlLHtkZWZhdWx0OigpPT5vfSk7dmFyIG49cig2OTM5NDEpO2NvbnN0IHU9KDAscigxMzk4NDkpLmRlZmF1bHQpKE9iamVjdC5rZXlzLE9iamVjdCk7dmFyIGE9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTtjb25zdCBvPWZ1bmN0aW9uKHQpe2lmKCEoMCxuLmRlZmF1bHQpKHQpKXJldHVybiB1KHQpO3ZhciBlPVtdO2Zvcih2YXIgciBpbiBPYmplY3QodCkpYS5jYWxsKHQscikmJiJjb25zdHJ1Y3RvciIhPXImJmUucHVzaChyKTtyZXR1cm4gZX19LDg5OTMzOSh0LGUscil7InVzZSBzdHJpY3QiO3IuZChlLHtkZWZhdWx0OigpPT5ufSk7Y29uc3Qgbj1mdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJuIHQoZSl9fX0sNzEyODAxKHQsZSxyKXsidXNlIHN0cmljdCI7ci5kKGUse2RlZmF1bHQ6KCk9Pm59KTtjb25zdCBuPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQuaGFzKGUpfX0sCjM3NzI1MSh0LGUscil7InVzZSBzdHJpY3QiO3IuZChlLHtkZWZhdWx0OigpPT51fSk7dmFyIG49cig4NjUzMzApO2NvbnN0IHU9ZnVuY3Rpb24odCl7dmFyIGU9bmV3IHQuY29uc3RydWN0b3IodC5ieXRlTGVuZ3RoKTtyZXR1cm4gbmV3IG4uZGVmYXVsdChlKS5zZXQobmV3IG4uZGVmYXVsdCh0KSksZX19LDQ4NzA2MCh0LGUscil7InVzZSBzdHJpY3QiO3IuZChlLHtkZWZhdWx0OigpPT5mfSk7dmFyIG49cig5ODE1MjMpLHU9Im9iamVjdCI9PXR5cGVvZiBleHBvcnRzJiZleHBvcnRzJiYhZXhwb3J0cy5ub2RlVHlwZSYmZXhwb3J0cyxhPXUmJiJvYmplY3QiPT10eXBlb2YgbW9kdWxlJiZtb2R1bGUmJiFtb2R1bGUubm9kZVR5cGUmJm1vZHVsZSxvPWEmJmEuZXhwb3J0cz09PXU/bi5kZWZhdWx0LkJ1ZmZlcjp2b2lkIDAsYz1vP28uYWxsb2NVbnNhZmU6dm9pZCAwO2NvbnN0IGY9ZnVuY3Rpb24odCxlKXtpZihlKXJldHVybiB0LnNsaWNlKCk7dmFyIHI9dC5sZW5ndGgsbj1jP2Mocik6bmV3IHQuY29uc3RydWN0b3Iocik7cmV0dXJuIHQuY29weShuKSxufX0sMTM5MDcodCxlLHIpeyJ1c2Ugc3RyaWN0IjtyLmQoZSx7ZGVmYXVsdDooKT0+dX0pO3ZhciBuPXIoMzc3MjUxKTtjb25zdCB1PWZ1bmN0aW9uKHQsZSl7dmFyIHI9ZT8oMCxuLmRlZmF1bHQpKHQuYnVmZmVyKTp0LmJ1ZmZlcjtyZXR1cm4gbmV3IHQuY29uc3RydWN0b3Iocix0LmJ5dGVPZmZzZXQsdC5sZW5ndGgpfX0sNzA1NzQ5KHQsZSxyKXsidXNlIHN0cmljdCI7ci5kKGUse2RlZmF1bHQ6KCk9Pm59KTtjb25zdCBuPWZ1bmN0aW9uKHQsZSl7dmFyIHI9LTEsbj10Lmxlbmd0aDtmb3IoZXx8KGU9QXJyYXkobikpOysrcjxuOyllW3JdPXRbcl07cmV0dXJuIGV9fSw2MTg1Nyh0LGUscil7InVzZSBzdHJpY3QiO3IuZChlLHtkZWZhdWx0OigpPT5hfSk7dmFyIG49cigxNjg1MzMpLHU9cigyNTQ3MzgpO2NvbnN0IGE9ZnVuY3Rpb24odCxlLHIsYSl7dmFyIG89IXI7cnx8KHI9e30pO2Zvcih2YXIgYz0tMSxmPWUubGVuZ3RoOysrYzxmOyl7dmFyIHM9ZVtjXSxpPWE/YShyW3NdLHRbc10scyxyLHQpOnZvaWQgMDt2b2lkIDA9PT1pJiYoaT10W3NdKSxvPygwLHUuZGVmYXVsdCkocixzLGkpOigwLG4uZGVmYXVsdCkocixzLGkpfXJldHVybiByfX0sMzYwNDkodCxlLHIpeyJ1c2Ugc3RyaWN0IjtyLmQoZSx7ZGVmYXVsdDooKT0+dX0pO3ZhciBuPXIoMTYyMzE2KTtjb25zdCB1PWZ1bmN0aW9uKCl7dHJ5e3ZhciB0PSgwLG4uZGVmYXVsdCkoT2JqZWN0LCJkZWZpbmVQcm9wZXJ0eSIpO3JldHVybiB0KHt9LCIiLHt9KSx0fWNhdGNoKHQpe319KCl9LDgwNjI0MCh0LGUscil7InVzZSBzdHJpY3QiO3IuZChlLHtkZWZhdWx0OigpPT5vfSk7dmFyIG49cig5MTYwODUpLHU9cigyMzA5NTEpLGE9cigzMDkwODApO2NvbnN0IG89ZnVuY3Rpb24odCl7cmV0dXJuKDAsbi5kZWZhdWx0KSh0LGEuZGVmYXVsdCx1LmRlZmF1bHQpfX0sOTkxNTk5KHQsZSxyKXsidXNlIHN0cmljdCI7ci5kKGUse2RlZmF1bHQ6KCk9Pm99KTt2YXIgbj1yKDkxNjA4NSksdT1yKDExNjY0MSksYT1yKDIxNzQ1Nyk7Y29uc3Qgbz1mdW5jdGlvbih0KXtyZXR1cm4oMCxuLmRlZmF1bHQpKHQsYS5kZWZhdWx0LHUuZGVmYXVsdCl9fSwzOTI1NDUodCxlLHIpeyJ1c2Ugc3RyaWN0IjtyLmQoZSx7ZGVmYXVsdDooKT0+bn0pO2NvbnN0IG49KDAscigxMzk4NDkpLmRlZmF1bHQpKE9iamVjdC5nZXRQcm90b3R5cGVPZixPYmplY3QpfSwyMzA5NTEodCxlLHIpeyJ1c2Ugc3RyaWN0IjtyLmQoZSx7ZGVmYXVsdDooKT0+Y30pO2NvbnN0IG49ZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9LTEsbj1udWxsPT10PzA6dC5sZW5ndGgsdT0wLGE9W107KytyPG47KXt2YXIgbz10W3JdO2UobyxyLHQpJiYoYVt1KytdPW8pfXJldHVybiBhfTt2YXIgdT1yKDE3NzY1NSksYT1PYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLG89T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scztjb25zdCBjPW8/ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw9PXQ/W106KHQ9T2JqZWN0KHQpLG4obyh0KSwoZnVuY3Rpb24oZSl7cmV0dXJuIGEuY2FsbCh0LGUpfSkpKX06dS5kZWZhdWx0fSwxMTY2NDEodCxlLHIpeyJ1c2Ugc3RyaWN0IjtyLmQoZSx7ZGVmYXVsdDooKT0+Y30pO3ZhciBuPXIoNDQ4NjI2KSx1PXIoMzkyNTQ1KSxhPXIoMjMwOTUxKSxvPXIoMTc3NjU1KTtjb25zdCBjPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM/ZnVuY3Rpb24odCl7Zm9yKHZhciBlPVtdO3Q7KSgwLG4uZGVmYXVsdCkoZSwoMCxhLmRlZmF1bHQpKHQpKSx0PSgwLHUuZGVmYXVsdCkodCk7cmV0dXJuIGV9Om8uZGVmYXVsdH0sOTY5Nzg1KHQsZSxyKXsidXNlIHN0cmljdCI7ci5kKGUse2RlZmF1bHQ6KCk9Pm19KTt2YXIgbj1yKDE2MjMxNiksdT1yKDk4MTUyMyk7Y29uc3QgYT0oMCxuLmRlZmF1bHQpKHUuZGVmYXVsdCwiRGF0YVZpZXciKTt2YXIgbz1yKDY5NDIxKTtjb25zdCBjPSgwLG4uZGVmYXVsdCkodS5kZWZhdWx0LCJQcm9taXNlIik7dmFyIGY9cig0MTQxMjMpLHM9cig5Mjg0NTMpLGk9cigxNzg0OTcpLGw9cig3MzA1MDMpLGQ9IltvYmplY3QgTWFwXSIsdj0iW29iamVjdCBQcm9taXNlXSIscD0iW29iamVjdCBTZXRdIixiPSJbb2JqZWN0IFdlYWtNYXBdIix5PSJbb2JqZWN0IERhdGFWaWV3XSIsaD0oMCxsLmRlZmF1bHQpKGEpLGo9KDAsbC5kZWZhdWx0KShvLmRlZmF1bHQpLGc9KDAsbC5kZWZhdWx0KShjKSx3PSgwLGwuZGVmYXVsdCkoZi5kZWZhdWx0KSxfPSgwLGwuZGVmYXVsdCkocy5kZWZhdWx0KSxBPWkuZGVmYXVsdDsoYSYmQShuZXcgYShuZXcgQXJyYXlCdWZmZXIoMSkpKSE9eXx8by5kZWZhdWx0JiZBKG5ldyBvLmRlZmF1bHQpIT1kfHxjJiZBKGMucmVzb2x2ZSgpKSE9dnx8Zi5kZWZhdWx0JiZBKG5ldyBmLmRlZmF1bHQpIT1wfHxzLmRlZmF1bHQmJkEobmV3IHMuZGVmYXVsdCkhPWIpJiYoQT1mdW5jdGlvbih0KXt2YXIgZT0oMCxpLmRlZmF1bHQpKHQpLHI9IltvYmplY3QgT2JqZWN0XSI9PWU/dC5jb25zdHJ1Y3Rvcjp2b2lkIDAsbj1yPygwLGwuZGVmYXVsdCkocik6IiI7aWYobilzd2l0Y2gobil7Y2FzZSBoOgpyZXR1cm4geTtjYXNlIGo6cmV0dXJuIGQ7Y2FzZSBnOnJldHVybiB2O2Nhc2UgdzpyZXR1cm4gcDtjYXNlIF86cmV0dXJuIGJ9cmV0dXJuIGV9KTtjb25zdCBtPUF9LDgwNzU3NSh0LGUscil7InVzZSBzdHJpY3QiO3IuZChlLHtkZWZhdWx0OigpPT5vfSk7dmFyIG49cig4NTEwODIpLHU9cigzOTI1NDUpLGE9cig2OTM5NDEpO2NvbnN0IG89ZnVuY3Rpb24odCl7cmV0dXJuImZ1bmN0aW9uIiE9dHlwZW9mIHQuY29uc3RydWN0b3J8fCgwLGEuZGVmYXVsdCkodCk/e306KDAsbi5kZWZhdWx0KSgoMCx1LmRlZmF1bHQpKHQpKX19LDkyMTE0Myh0LGUscil7InVzZSBzdHJpY3QiO3IuZChlLHtkZWZhdWx0OigpPT51fSk7dmFyIG49L14oPzowfFsxLTldXGQqKSQvO2NvbnN0IHU9ZnVuY3Rpb24odCxlKXt2YXIgcj10eXBlb2YgdDtyZXR1cm4hIShlPWU/PzkwMDcxOTkyNTQ3NDA5OTEpJiYoIm51bWJlciI9PXJ8fCJzeW1ib2wiIT1yJiZuLnRlc3QodCkpJiZ0Pi0xJiZ0JTE9PTAmJnQ8ZX19LDY5Mzk0MSh0LGUscil7InVzZSBzdHJpY3QiO3IuZChlLHtkZWZhdWx0OigpPT51fSk7dmFyIG49T2JqZWN0LnByb3RvdHlwZTtjb25zdCB1PWZ1bmN0aW9uKHQpe3ZhciBlPXQmJnQuY29uc3RydWN0b3I7cmV0dXJuIHQ9PT0oImZ1bmN0aW9uIj09dHlwZW9mIGUmJmUucHJvdG90eXBlfHxuKX19LDM2OTg5OSh0LGUscil7InVzZSBzdHJpY3QiO3IuZChlLHtkZWZhdWx0OigpPT5jfSk7dmFyIG49cig2MDI5NDIpLHU9Im9iamVjdCI9PXR5cGVvZiBleHBvcnRzJiZleHBvcnRzJiYhZXhwb3J0cy5ub2RlVHlwZSYmZXhwb3J0cyxhPXUmJiJvYmplY3QiPT10eXBlb2YgbW9kdWxlJiZtb2R1bGUmJiFtb2R1bGUubm9kZVR5cGUmJm1vZHVsZSxvPWEmJmEuZXhwb3J0cz09PXUmJm4uZGVmYXVsdC5wcm9jZXNzO2NvbnN0IGM9ZnVuY3Rpb24oKXt0cnl7dmFyIHQ9YSYmYS5yZXF1aXJlJiZhLnJlcXVpcmUoInV0aWwiKS50eXBlcztyZXR1cm4gdHx8byYmby5iaW5kaW5nJiZvLmJpbmRpbmcoInV0aWwiKX1jYXRjaCh0KXt9fSgpfSwxMzk4NDkodCxlLHIpeyJ1c2Ugc3RyaWN0IjtyLmQoZSx7ZGVmYXVsdDooKT0+bn0pO2NvbnN0IG49ZnVuY3Rpb24odCxlKXtyZXR1cm4gZnVuY3Rpb24ocil7cmV0dXJuIHQoZShyKSl9fX0sOTcyMDE3KHQsZSxyKXsidXNlIHN0cmljdCI7ci5kKGUse2RlZmF1bHQ6KCk9Pm59KTtjb25zdCBuPWZ1bmN0aW9uKHQpe3ZhciBlPS0xLHI9QXJyYXkodC5zaXplKTtyZXR1cm4gdC5mb3JFYWNoKChmdW5jdGlvbih0KXtyWysrZV09dH0pKSxyfX0sMjAzNjgxKHQsZSxyKXsidXNlIHN0cmljdCI7ci5kKGUse2RlZmF1bHQ6KCk9PnV9KTt2YXIgbj1yKDQ5MzAxOCk7Y29uc3QgdT1mdW5jdGlvbih0KXtyZXR1cm4oMCxuLmRlZmF1bHQpKHQsNSl9fSw1NDc4NTEodCxlLHIpeyJ1c2Ugc3RyaWN0IjtyLmQoZSx7ZGVmYXVsdDooKT0+c30pO3ZhciBuPXIoODgwMTE1KSx1PXIoOTgxNTIzKTtjb25zdCBhPWZ1bmN0aW9uKCl7cmV0dXJuIHUuZGVmYXVsdC5EYXRlLm5vdygpfTt2YXIgbz1yKDQwNjQ0OSksYz1NYXRoLm1heCxmPU1hdGgubWluO2NvbnN0IHM9ZnVuY3Rpb24odCxlLHIpe3ZhciB1LHMsaSxsLGQsdixwPTAsYj0hMSx5PSExLGg9ITA7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIHQpdGhyb3cgbmV3IFR5cGVFcnJvcigiRXhwZWN0ZWQgYSBmdW5jdGlvbiIpO2Z1bmN0aW9uIGooZSl7dmFyIHI9dSxuPXM7cmV0dXJuIHU9cz12b2lkIDAscD1lLGw9dC5hcHBseShuLHIpfWZ1bmN0aW9uIGcodCl7dmFyIHI9dC12O3JldHVybiB2b2lkIDA9PT12fHxyPj1lfHxyPDB8fHkmJnQtcD49aX1mdW5jdGlvbiB3KCl7dmFyIHQ9YSgpO2lmKGcodCkpcmV0dXJuIF8odCk7ZD1zZXRUaW1lb3V0KHcsZnVuY3Rpb24odCl7dmFyIHI9ZS0odC12KTtyZXR1cm4geT9mKHIsaS0odC1wKSk6cn0odCkpfWZ1bmN0aW9uIF8odCl7cmV0dXJuIGQ9dm9pZCAwLGgmJnU/aih0KToodT1zPXZvaWQgMCxsKX1mdW5jdGlvbiBBKCl7dmFyIHQ9YSgpLHI9Zyh0KTtpZih1PWFyZ3VtZW50cyxzPXRoaXMsdj10LHIpe2lmKHZvaWQgMD09PWQpcmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBwPXQsZD1zZXRUaW1lb3V0KHcsZSksYj9qKHQpOmx9KHYpO2lmKHkpcmV0dXJuIGNsZWFyVGltZW91dChkKSxkPXNldFRpbWVvdXQodyxlKSxqKHYpfXJldHVybiB2b2lkIDA9PT1kJiYoZD1zZXRUaW1lb3V0KHcsZSkpLGx9cmV0dXJuIGU9KDAsby5kZWZhdWx0KShlKXx8MCwoMCxuLmRlZmF1bHQpKHIpJiYoYj0hIXIubGVhZGluZyxpPSh5PSJtYXhXYWl0ImluIHIpP2MoKDAsby5kZWZhdWx0KShyLm1heFdhaXQpfHwwLGUpOmksaD0idHJhaWxpbmciaW4gcj8hIXIudHJhaWxpbmc6aCksQS5jYW5jZWw9ZnVuY3Rpb24oKXt2b2lkIDAhPT1kJiZjbGVhclRpbWVvdXQoZCkscD0wLHU9dj1zPWQ9dm9pZCAwfSxBLmZsdXNoPWZ1bmN0aW9uKCl7cmV0dXJuIHZvaWQgMD09PWQ/bDpfKGEoKSl9LEF9fSw1MzE1NTcodCxlLHIpeyJ1c2Ugc3RyaWN0IjtyLmQoZSx7ZGVmYXVsdDooKT0+aX0pO3ZhciBuPXIoMTc4NDk3KSx1PXIoMzYwNjIwKTtjb25zdCBhPWZ1bmN0aW9uKHQpe3JldHVybigwLHUuZGVmYXVsdCkodCkmJiJbb2JqZWN0IEFyZ3VtZW50c10iPT0oMCxuLmRlZmF1bHQpKHQpfTt2YXIgbz1PYmplY3QucHJvdG90eXBlLGM9by5oYXNPd25Qcm9wZXJ0eSxmPW8ucHJvcGVydHlJc0VudW1lcmFibGUscz1hKGZ1bmN0aW9uKCl7cmV0dXJuIGFyZ3VtZW50c30oKSk/YTpmdW5jdGlvbih0KXtyZXR1cm4oMCx1LmRlZmF1bHQpKHQpJiZjLmNhbGwodCwiY2FsbGVlIikmJiFmLmNhbGwodCwiY2FsbGVlIil9O2NvbnN0IGk9c30sMjk1NjM1KHQsZSxyKXsidXNlIHN0cmljdCI7ci5kKGUse2RlZmF1bHQ6KCk9Pm59KTtjb25zdCBuPUFycmF5LmlzQXJyYXl9LDM5MjkwOCh0LGUscil7InVzZSBzdHJpY3QiO3IuZChlLHtkZWZhdWx0OigpPT5hfSk7dmFyIG49cig5MjgxMzIpLHU9cig5OTA2MDQpO2NvbnN0IGE9ZnVuY3Rpb24odCl7cmV0dXJuIG51bGwhPXQmJigwLHUuZGVmYXVsdCkodC5sZW5ndGgpJiYhKDAsbi5kZWZhdWx0KSh0KX19LDY1OTAxOCh0LGUscil7CiJ1c2Ugc3RyaWN0IjtyLmQoZSx7ZGVmYXVsdDooKT0+Zn0pO3ZhciBuPXIoOTgxNTIzKTtjb25zdCB1PWZ1bmN0aW9uKCl7cmV0dXJuITF9O3ZhciBhPSJvYmplY3QiPT10eXBlb2YgZXhwb3J0cyYmZXhwb3J0cyYmIWV4cG9ydHMubm9kZVR5cGUmJmV4cG9ydHMsbz1hJiYib2JqZWN0Ij09dHlwZW9mIG1vZHVsZSYmbW9kdWxlJiYhbW9kdWxlLm5vZGVUeXBlJiZtb2R1bGUsYz1vJiZvLmV4cG9ydHM9PT1hP24uZGVmYXVsdC5CdWZmZXI6dm9pZCAwO2NvbnN0IGY9KGM/Yy5pc0J1ZmZlcjp2b2lkIDApfHx1fSw5OTA2MDQodCxlLHIpeyJ1c2Ugc3RyaWN0IjtyLmQoZSx7ZGVmYXVsdDooKT0+bn0pO2NvbnN0IG49ZnVuY3Rpb24odCl7cmV0dXJuIm51bWJlciI9PXR5cGVvZiB0JiZ0Pi0xJiZ0JTE9PTAmJnQ8PTkwMDcxOTkyNTQ3NDA5OTF9fSw2NzI1MTEodCxlLHIpeyJ1c2Ugc3RyaWN0IjtyLmQoZSx7ZGVmYXVsdDooKT0+c30pO3ZhciBuPXIoOTY5Nzg1KSx1PXIoMzYwNjIwKTtjb25zdCBhPWZ1bmN0aW9uKHQpe3JldHVybigwLHUuZGVmYXVsdCkodCkmJiJbb2JqZWN0IE1hcF0iPT0oMCxuLmRlZmF1bHQpKHQpfTt2YXIgbz1yKDg5OTMzOSksYz1yKDM2OTg5OSksZj1jLmRlZmF1bHQmJmMuZGVmYXVsdC5pc01hcDtjb25zdCBzPWY/KDAsby5kZWZhdWx0KShmKTphfSwzNjA2MjAodCxlLHIpeyJ1c2Ugc3RyaWN0IjtyLmQoZSx7ZGVmYXVsdDooKT0+bn0pO2NvbnN0IG49ZnVuY3Rpb24odCl7cmV0dXJuIG51bGwhPXQmJiJvYmplY3QiPT10eXBlb2YgdH19LDcxNzMzMih0LGUscil7InVzZSBzdHJpY3QiO3IuZChlLHtkZWZhdWx0OigpPT5hfSk7dmFyIG49cigxNzg0OTcpLHU9cigzNjA2MjApO2NvbnN0IGE9ZnVuY3Rpb24odCl7cmV0dXJuInN5bWJvbCI9PXR5cGVvZiB0fHwoMCx1LmRlZmF1bHQpKHQpJiYiW29iamVjdCBTeW1ib2xdIj09KDAsbi5kZWZhdWx0KSh0KX19LDE2NTI2Nyh0LGUscil7InVzZSBzdHJpY3QiO3IuZChlLHtkZWZhdWx0OigpPT5sfSk7dmFyIG49cigxNzg0OTcpLHU9cig5OTA2MDQpLGE9cigzNjA2MjApLG89e307b1siW29iamVjdCBGbG9hdDMyQXJyYXldIl09b1siW29iamVjdCBGbG9hdDY0QXJyYXldIl09b1siW29iamVjdCBJbnQ4QXJyYXldIl09b1siW29iamVjdCBJbnQxNkFycmF5XSJdPW9bIltvYmplY3QgSW50MzJBcnJheV0iXT1vWyJbb2JqZWN0IFVpbnQ4QXJyYXldIl09b1siW29iamVjdCBVaW50OENsYW1wZWRBcnJheV0iXT1vWyJbb2JqZWN0IFVpbnQxNkFycmF5XSJdPW9bIltvYmplY3QgVWludDMyQXJyYXldIl09ITAsb1siW29iamVjdCBBcmd1bWVudHNdIl09b1siW29iamVjdCBBcnJheV0iXT1vWyJbb2JqZWN0IEFycmF5QnVmZmVyXSJdPW9bIltvYmplY3QgQm9vbGVhbl0iXT1vWyJbb2JqZWN0IERhdGFWaWV3XSJdPW9bIltvYmplY3QgRGF0ZV0iXT1vWyJbb2JqZWN0IEVycm9yXSJdPW9bIltvYmplY3QgRnVuY3Rpb25dIl09b1siW29iamVjdCBNYXBdIl09b1siW29iamVjdCBOdW1iZXJdIl09b1siW29iamVjdCBPYmplY3RdIl09b1siW29iamVjdCBSZWdFeHBdIl09b1siW29iamVjdCBTZXRdIl09b1siW29iamVjdCBTdHJpbmddIl09b1siW29iamVjdCBXZWFrTWFwXSJdPSExO2NvbnN0IGM9ZnVuY3Rpb24odCl7cmV0dXJuKDAsYS5kZWZhdWx0KSh0KSYmKDAsdS5kZWZhdWx0KSh0Lmxlbmd0aCkmJiEhb1soMCxuLmRlZmF1bHQpKHQpXX07dmFyIGY9cig4OTkzMzkpLHM9cigzNjk4OTkpLGk9cy5kZWZhdWx0JiZzLmRlZmF1bHQuaXNUeXBlZEFycmF5O2NvbnN0IGw9aT8oMCxmLmRlZmF1bHQpKGkpOmN9LDMwOTA4MCh0LGUscil7InVzZSBzdHJpY3QiO3IuZChlLHtkZWZhdWx0OigpPT5vfSk7dmFyIG49cig4MjA5NzUpLHU9cig4MzA4NzUpLGE9cigzOTI5MDgpO2NvbnN0IG89ZnVuY3Rpb24odCl7cmV0dXJuKDAsYS5kZWZhdWx0KSh0KT8oMCxuLmRlZmF1bHQpKHQpOigwLHUuZGVmYXVsdCkodCl9fSwyMTc0NTcodCxlLHIpeyJ1c2Ugc3RyaWN0IjtyLmQoZSx7ZGVmYXVsdDooKT0+aX0pO3ZhciBuPXIoODIwOTc1KSx1PXIoODgwMTE1KSxhPXIoNjkzOTQxKTtjb25zdCBvPWZ1bmN0aW9uKHQpe3ZhciBlPVtdO2lmKG51bGwhPXQpZm9yKHZhciByIGluIE9iamVjdCh0KSllLnB1c2gocik7cmV0dXJuIGV9O3ZhciBjPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7Y29uc3QgZj1mdW5jdGlvbih0KXtpZighKDAsdS5kZWZhdWx0KSh0KSlyZXR1cm4gbyh0KTt2YXIgZT0oMCxhLmRlZmF1bHQpKHQpLHI9W107Zm9yKHZhciBuIGluIHQpKCJjb25zdHJ1Y3RvciIhPW58fCFlJiZjLmNhbGwodCxuKSkmJnIucHVzaChuKTtyZXR1cm4gcn07dmFyIHM9cigzOTI5MDgpO2NvbnN0IGk9ZnVuY3Rpb24odCl7cmV0dXJuKDAscy5kZWZhdWx0KSh0KT8oMCxuLmRlZmF1bHQpKHQsITApOmYodCl9fSw2NjMwNDYodCxlLHIpeyJ1c2Ugc3RyaWN0IjtyLmQoZSx7ZGVmYXVsdDooKT0+YX0pO3ZhciBuPXIoNzEzMTQ4KTtmdW5jdGlvbiB1KHQsZSl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIHR8fG51bGwhPWUmJiJmdW5jdGlvbiIhPXR5cGVvZiBlKXRocm93IG5ldyBUeXBlRXJyb3IoIkV4cGVjdGVkIGEgZnVuY3Rpb24iKTt2YXIgcj1mdW5jdGlvbigpe3ZhciBuPWFyZ3VtZW50cyx1PWU/ZS5hcHBseSh0aGlzLG4pOm5bMF0sYT1yLmNhY2hlO2lmKGEuaGFzKHUpKXJldHVybiBhLmdldCh1KTt2YXIgbz10LmFwcGx5KHRoaXMsbik7cmV0dXJuIHIuY2FjaGU9YS5zZXQodSxvKXx8YSxvfTtyZXR1cm4gci5jYWNoZT1uZXcodS5DYWNoZXx8bi5kZWZhdWx0KSxyfXUuQ2FjaGU9bi5kZWZhdWx0O2NvbnN0IGE9dX0sODYyMzg4KHQsZSxyKXsidXNlIHN0cmljdCI7ci5kKGUse2RlZmF1bHQ6KCk9Pm59KTtjb25zdCBuPWZ1bmN0aW9uKCl7fX0sMTc3NjU1KHQsZSxyKXsidXNlIHN0cmljdCI7ci5kKGUse2RlZmF1bHQ6KCk9Pm59KTtjb25zdCBuPWZ1bmN0aW9uKCl7cmV0dXJuW119fSw1ODcxNjgodCxlLHIpeyJ1c2Ugc3RyaWN0IjtyLmQoZSx7ZGVmYXVsdDooKT0+YX0pO3ZhciBuPXIoNTQ3ODUxKSx1PXIoODgwMTE1KTtjb25zdCBhPWZ1bmN0aW9uKHQsZSxyKXsKdmFyIGE9ITAsbz0hMDtpZigiZnVuY3Rpb24iIT10eXBlb2YgdCl0aHJvdyBuZXcgVHlwZUVycm9yKCJFeHBlY3RlZCBhIGZ1bmN0aW9uIik7cmV0dXJuKDAsdS5kZWZhdWx0KShyKSYmKGE9ImxlYWRpbmciaW4gcj8hIXIubGVhZGluZzphLG89InRyYWlsaW5nImluIHI/ISFyLnRyYWlsaW5nOm8pLCgwLG4uZGVmYXVsdCkodCxlLHtsZWFkaW5nOmEsbWF4V2FpdDplLHRyYWlsaW5nOm99KX19LDQwNjQ0OSh0LGUscil7InVzZSBzdHJpY3QiO3IuZChlLHtkZWZhdWx0OigpPT52fSk7dmFyIG49L1xzLztjb25zdCB1PWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10Lmxlbmd0aDtlLS0mJm4udGVzdCh0LmNoYXJBdChlKSk7KTtyZXR1cm4gZX07dmFyIGE9L15ccysvO2NvbnN0IG89ZnVuY3Rpb24odCl7cmV0dXJuIHQ/dC5zbGljZSgwLHUodCkrMSkucmVwbGFjZShhLCIiKTp0fTt2YXIgYz1yKDg4MDExNSksZj1yKDcxNzMzMikscz0vXlstK10weFswLTlhLWZdKyQvaSxpPS9eMGJbMDFdKyQvaSxsPS9eMG9bMC03XSskL2ksZD1wYXJzZUludDtjb25zdCB2PWZ1bmN0aW9uKHQpe2lmKCJudW1iZXIiPT10eXBlb2YgdClyZXR1cm4gdDtpZigoMCxmLmRlZmF1bHQpKHQpKXJldHVybiBOYU47aWYoKDAsYy5kZWZhdWx0KSh0KSl7dmFyIGU9ImZ1bmN0aW9uIj09dHlwZW9mIHQudmFsdWVPZj90LnZhbHVlT2YoKTp0O3Q9KDAsYy5kZWZhdWx0KShlKT9lKyIiOmV9aWYoInN0cmluZyIhPXR5cGVvZiB0KXJldHVybiAwPT09dD90Oit0O3Q9byh0KTt2YXIgcj1pLnRlc3QodCk7cmV0dXJuIHJ8fGwudGVzdCh0KT9kKHQuc2xpY2UoMikscj8yOjgpOnMudGVzdCh0KT9OYU46K3R9fSwzNTI4MzcodCxlLHIpeyJ1c2Ugc3RyaWN0IjtyLmQoZSx7ZGVmYXVsdDooKT0+ZH0pO3ZhciBuPXIoMjY5MzY2KSx1PXIoMjI0NDE2KSxhPXIoODI1MDM5KSxvPXIoNzEyODAxKSxjPXIoNDE0MTIzKSxmPXIoODYyMzg4KSxzPXIoOTcyMDE3KTtjb25zdCBpPWMuZGVmYXVsdCYmMS8oMCxzLmRlZmF1bHQpKG5ldyBjLmRlZmF1bHQoWywtMF0pKVsxXT09MS8wP2Z1bmN0aW9uKHQpe3JldHVybiBuZXcgYy5kZWZhdWx0KHQpfTpmLmRlZmF1bHQ7Y29uc3QgbD1mdW5jdGlvbih0LGUscil7dmFyIGM9LTEsZj11LmRlZmF1bHQsbD10Lmxlbmd0aCxkPSEwLHY9W10scD12O2lmKHIpZD0hMSxmPWEuZGVmYXVsdDtlbHNlIGlmKGw+PTIwMCl7dmFyIGI9ZT9udWxsOmkodCk7aWYoYilyZXR1cm4oMCxzLmRlZmF1bHQpKGIpO2Q9ITEsZj1vLmRlZmF1bHQscD1uZXcgbi5kZWZhdWx0fWVsc2UgcD1lP1tdOnY7dDpmb3IoOysrYzxsOyl7dmFyIHk9dFtjXSxoPWU/ZSh5KTp5O2lmKHk9cnx8MCE9PXk/eTowLGQmJmg9PWgpe2Zvcih2YXIgaj1wLmxlbmd0aDtqLS07KWlmKHBbal09PT1oKWNvbnRpbnVlIHQ7ZSYmcC5wdXNoKGgpLHYucHVzaCh5KX1lbHNlIGYocCxoLHIpfHwocCE9PXYmJnAucHVzaChoKSx2LnB1c2goeSkpfXJldHVybiB2fTtjb25zdCBkPWZ1bmN0aW9uKHQpe3JldHVybiB0JiZ0Lmxlbmd0aD9sKHQpOltdfX19XSk7"}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/90741.af2b48170d64547408ff.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:13.921Z","timestamp":1785148033921,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/90741.af2b48170d64547408ff.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:13 GMT\r\ncontent-type: text/css; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a5dbd31-8800\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Mon, 20 Jul 2026 06:16:17 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/20/2026 11:21:48\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 715c02bdae105301b3475727f9e266c5\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":34816,"size_decoded":6493,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with very long lines (34816), with no line terminators","md5":"397df641db9c72f75974df50d0ea576c","sha1":"d1064650fc562fa19960f953f2ec569aa4cd6305","sha256":"b0d61a1080fb8d0f614dcf7b4b96cf28b1ce834dc3b327efeb2d408ed9ba0759","sha512":"bb92033b33407fc3bdbe519ca24b7c1a576b974c7057d61212e9108ff03783af1fe63ea696e98c25332e6b41e1a7a35bbbedf7e71cf6193997d6ae884719480a","ssdeep":"384:TJgnHqCXVElvht/waL2Ws7Zp5Ijjyrr0dS0W4BH+m8S/2WU:TJgnHqCKz/8G7+mY","tlshash":"20f2f04e8e9ce7254603416d2dc27588e32e954eb05a33ffe2ad539e0dd69b182f142f","first_seen":"2026-07-20T16:56:18.360342Z","last_seen":"2026-07-27T12:48:39.822472Z","times_seen":113,"resource_available":false,"data":"LnBhbmVDb250cm9scy1FeHp4OUlBWntwb2ludGVyLWV2ZW50czphbGw7cG9zaXRpb246c3RhdGljO3RyYW5zaXRpb246b3BhY2l0eSAuNHMsdmlzaWJpbGl0eSAuNHM7ei1pbmRleDo3fS5wYW5lQ29udHJvbHNfaGlkZGVuLUV4eng5SUFae29wYWNpdHk6MDtwb2ludGVyLWV2ZW50czpub25lO3Zpc2liaWxpdHk6aGlkZGVufS5wYW5lQ29udHJvbHNfZm9yY2VIaWRkZW4tRXh6eDlJQVp7aGVpZ2h0OjA7bGluZS1oZWlnaHQ6MDt3aWR0aDowfS5wYW5lQ29udHJvbHNfcmVtb3ZlLUV4eng5SUFae2Rpc3BsYXk6bm9uZX0uYnV0dG9ucy1FeHp4OUlBWntjb2x1bW4tZ2FwOjRweDtmbGV4LXdyYXA6bm93cmFwfS5idXR0b24tRXh6eDlJQVosLmJ1dHRvbnMtRXh6eDlJQVp7YWxpZ24taXRlbXM6Y2VudGVyO2Rpc3BsYXk6ZmxleDtmbGV4OjAgMCBhdXRvfS5idXR0b24tRXh6eDlJQVp7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci13aGl0ZSk7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1jb2xvci1jb2xkLWdyYXktMTUwKTtib3JkZXItcmFkaXVzOjRweDtib3gtc2l6aW5nOmJvcmRlci1ib3g7Y29sb3I6dmFyKC0tY29sb3ItY29sZC1ncmF5LTkwMCk7Y3Vyc29yOmRlZmF1bHQ7aGVpZ2h0OjI0cHg7anVzdGlmeS1jb250ZW50OmNlbnRlcjtvdmVyZmxvdzpoaWRkZW47cG9zaXRpb246cmVsYXRpdmU7d2lkdGg6MjRweH1AbWVkaWEgKGFueS1ob3Zlcjpob3Zlcil7LmJ1dHRvbi1FeHp4OUlBWjpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLWNvbGQtZ3JheS0xMDApfX0uYnV0dG9uLUV4eng5SUFaOmFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLWNvbGQtZ3JheS0xNTApfS5idXR0b25fYWN0aXZhdGVkLUV4eng5SUFae2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItY29sZC1ncmF5LTgwMCk7Y29sb3I6dmFyKC0tY29sb3Itd2hpdGUpfUBtZWRpYSAoYW55LWhvdmVyOmhvdmVyKXsuYnV0dG9uX2FjdGl2YXRlZC1FeHp4OUlBWjpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLWNvbGQtZ3JheS03MDApfX0uYnV0dG9uLUV4eng5SUFaOmFjdGl2ZSwuYnV0dG9uX2FjdGl2YXRlZC1FeHp4OUlBWntib3JkZXItd2lkdGg6MH0uY2hhcnQtd2lkZ2V0X190b3AtLXRoZW1lZC1kYXJrIC5idXR0b24tRXh6eDlJQVp7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1jb2xkLWdyYXktOTAwKTtib3JkZXItY29sb3I6dmFyKC0tY29sb3ItY29sZC1ncmF5LTcwMCk7Y29sb3I6dmFyKC0tY29sb3ItY29sZC1ncmF5LTIwMCl9QG1lZGlhIChhbnktaG92ZXI6aG92ZXIpey5jaGFydC13aWRnZXRfX3RvcC0tdGhlbWVkLWRhcmsgLmJ1dHRvbi1FeHp4OUlBWjpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLWNvbGQtZ3JheS04MDApfX0uY2hhcnQtd2lkZ2V0X190b3AtLXRoZW1lZC1kYXJrIC5idXR0b24tRXh6eDlJQVo6YWN0aXZle2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItY29sZC1ncmF5LTc1MCl9LmNoYXJ0LXdpZGdldF9fdG9wLS10aGVtZWQtZGFyayAuYnV0dG9uX2FjdGl2YXRlZC1FeHp4OUlBWntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLWNvbGQtZ3JheS0xMDApO2NvbG9yOnZhcigtLWNvbG9yLWNvbGQtZ3JheS05MDApfUBtZWRpYSAoYW55LWhvdmVyOmhvdmVyKXsuY2hhcnQtd2lkZ2V0X190b3AtLXRoZW1lZC1kYXJrIC5idXR0b25fYWN0aXZhdGVkLUV4eng5SUFaOmhvdmVye2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItY29sZC1ncmF5LTIwMCl9fS50b3VjaE1vZGUtRXh6eDlJQVogLmJ1dHRvbi1FeHp4OUlBWntoZWlnaHQ6MjRweDt3aWR0aDoyNHB4fUBtZWRpYSAoYW55LWhvdmVyOmhvdmVyKXsuY29sbGFwc2UtRXh6eDlJQVo6aG92ZXIgLmJyYWNrZXQtdXAsLm1heGltaXplLUV4eng5SUFaOmhvdmVyIC5icmFja2V0LXVwe2FuaW1hdGlvbjptYXhpbWl6ZS1hbmltYXRpb24tdXAtYnJhY2tldC1FeHp4OUlBWiAuNnMgZWFzZX0uY29sbGFwc2UtRXh6eDlJQVo6aG92ZXIgLmJyYWNrZXQtZG93biwubWF4aW1pemUtRXh6eDlJQVo6aG92ZXIgLmJyYWNrZXQtZG93bnthbmltYXRpb246bWF4aW1pemUtYW5pbWF0aW9uLWRvd24tYnJhY2tldC1FeHp4OUlBWiAuNnMgZWFzZX19LmNvbGxhcHNlLUV4eng5SUFaIC5icmFja2V0LWRvd24sLmNvbGxhcHNlLUV4eng5SUFaIC5icmFja2V0LXVwLC5tYXhpbWl6ZS1FeHp4OUlBWiAuYnJhY2tldC1kb3duLC5tYXhpbWl6ZS1FeHp4OUlBWiAuYnJhY2tldC11cHt0cmFuc2Zvcm06dHJhbnNsYXRlWSgwKX1Aa2V5ZnJhbWVzIG1heGltaXplLWFuaW1hdGlvbi11cC1icmFja2V0LUV4eng5SUFaezUwJXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgxcHgpfX1Aa2V5ZnJhbWVzIG1heGltaXplLWFuaW1hdGlvbi1kb3duLWJyYWNrZXQtRXh6eDlJQVp7NTAle3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xcHgpfX1AbWVkaWEgKGFueS1ob3Zlcjpob3Zlcil7Lm1pbmltaXplLUV4eng5SUFaOmhvdmVyIC5icmFja2V0LXVwLC5yZXN0b3JlLUV4eng5SUFaOmhvdmVyIC5icmFja2V0LXVwe2FuaW1hdGlvbjptaW5pbWl6ZS1hbmltYXRpb24tdXAtYnJhY2tldC1FeHp4OUlBWiAuNnMgZWFzZX0ubWluaW1pemUtRXh6eDlJQVo6aG92ZXIgLmJyYWNrZXQtZG93biwucmVzdG9yZS1FeHp4OUlBWjpob3ZlciAuYnJhY2tldC1kb3due2FuaW1hdGlvbjptaW5pbWl6ZS1hbmltYXRpb24tZG93bi1icmFja2V0LUV4eng5SUFaIC42cyBlYXNlfX0ubWluaW1pemUtRXh6eDlJQVogLmJyYWNrZXQtZG93biwubWluaW1pemUtRXh6eDlJQVogLmJyYWNrZXQtdXAsLnJlc3RvcmUtRXh6eDlJQVogLmJyYWNrZXQtZG93biwucmVzdG9yZS1FeHp4OUlBWiAuYnJhY2tldC11cHt0cmFuc2Zvcm06dHJhbnNsYXRlWSgwKX1Aa2V5ZnJhbWVzIG1pbmltaXplLWFuaW1hdGlvbi11cC1icmFja2V0LUV4eng5SUFaezUwJXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMXB4KX19QGtleWZyYW1lcyBtaW5pbWl6ZS1hbmltYXRpb24tZG93bi1icmFja2V0LUV4eng5SUFaezUwJXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgxcHgpfX1AbWVkaWEgKGFueS1ob3Zlcjpob3Zlcil7LnVwLUV4eng5SUFaOmhvdmVyIC5idXR0b25JY29uLUV4eng5SUFae2FuaW1hdGlvbjp1cC1hbmltYXRpb24tRXh6eDlJQVogLjZzIGVhc2V9fUBrZXlmcmFtZXMgdXAtYW5pbWF0aW9uLUV4eng5SUFaezAle3RyYW5zZm9ybTp0cmFuc2xhdGVZKDApfTUwJXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMnB4KX19QG1lZGlhIChhbnktaG92ZXI6aG92ZXIpey5kb3duLUV4eng5SUFaOmhvdmVyIC5idXR0b25JY29uLUV4eng5SUFae2FuaW1hdGlvbjpkb3duLWFuaW1hdGlvbi1FeHp4OUlBWiAuNnMgZWFzZX19QGtleWZyYW1lcyBkb3duLWFuaW1hdGlvbi1FeHp4OUlBWnswJXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgwKX01MCV7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMnB4KX19LmJsb2NrSGlkZGVuLUxjWWRvMk42e2Rpc3BsYXk6bm9uZSFpbXBvcnRhbnR9LnBhbmUtYnV0dG9uLUxjWWRvMk42e2JhY2tncm91bmQtY29sb3I6Y3VycmVudENvbG9yO2JvcmRlcjoxcHggc29saWQgdmFyKC0tY29sb3ItY29sZC1ncmF5LTIwMCk7Ym9yZGVyLXJhZGl1czozcHg7Y3Vyc29yOmRlZmF1bHR9QG1lZGlhIChhbnktaG92ZXI6aG92ZXIpey5wYW5lLWJ1dHRvbi1MY1lkbzJONjpob3ZlcjphZnRlcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLW92ZXJsYXktbmV1dHJhbC0xLWxpZ2h0KTtib3JkZXItcmFkaXVzOjNweDtib3R0b206MDtjb250ZW50OiIiO2Rpc3BsYXk6YmxvY2s7bGVmdDowO3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjA7dG9wOjA7ei1pbmRleDowfX0uY2hhcnQtd2lkZ2V0X190b3AtLXRoZW1lZC1kYXJrIC5wYW5lLWJ1dHRvbi1MY1lkbzJONntib3JkZXItY29sb3I6dmFyKC0tY29sb3ItY29sZC1ncmF5LTc1MCl9QG1lZGlhIChhbnktaG92ZXI6aG92ZXIpey5jaGFydC13aWRnZXRfX3RvcC0tdGhlbWVkLWRhcmsgLnBhbmUtYnV0dG9uLUxjWWRvMk42OmhvdmVyOmFmdGVye2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3Itb3ZlcmxheS1uZXV0cmFsLTEtbGlnaHQpfX0uY29udHJvbC1iYXItd3JhcHBlcntkaXJlY3Rpb246bHRyO2hlaWdodDoyNHB4O3BhZGRpbmc6NXB4IDA7cG9pbnRlci1ldmVudHM6bm9uZTtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjF9LmNvbnRyb2wtYmFyLXdyYXBwZXItLWJhY2stcHJlc2VudHtyaWdodDoycHh9LmNvbnRyb2wtYmFye2Rpc3BsYXk6ZmxleDt0cmFuc2l0aW9uOm9wYWNpdHkgLjNzLHZpc2liaWxpdHkgLjNzO3Zpc2liaWxpdHk6dmlzaWJsZX0uY29udHJvbC1iYXItLWhpZGRlbiwuY29udHJvbC1iYXItLWhpZGRlbiAuY29udHJvbC1iYXJfX2J0bntvcGFjaXR5OjA7dmlzaWJpbGl0eTpoaWRkZW59LmNvbnRyb2wtYmFyX19ncm91cHthbGlnbi1pdGVtczpjZW50ZXI7ZGlzcGxheTpmbGV4O21hcmdpbjowIDRweH0uY29udHJvbC1iYXJfX2J0bnthbGlnbi1pdGVtczpjZW50ZXI7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1jb250YWluZXItZmlsbC1xdWluYXJ5LWludmVyc2UpO2JvcmRlci1yYWRpdXM6NHB4O2JveC1zaGFkb3c6MCAycHggNHB4IHZhcigtLWNvbG9yLXNoYWRvdy1wcmltYXJ5LW5ldXRyYWwtZXh0cmEtaGVhdnkpO2NvbG9yOnZhcigtLWNvbG9yLWJ1dHRvbi1jb250ZW50LXF1aWV0LXByaW1hcnktbmV1dHJhbC1ib2xkLWRlZmF1bHQpO2Rpc3BsYXk6aW5saW5lLWZsZXg7aGVpZ2h0OjI0cHg7anVzdGlmeS1jb250ZW50OmNlbnRlcjttYXJnaW46MCA0cHg7b3BhY2l0eToxO3BvaW50ZXItZXZlbnRzOmF1dG87dHJhbnNpdGlvbjpjb2xvciAuM3MsdmlzaWJpbGl0eSAuNHMsb3BhY2l0eSAuNHM7LXdlYmtpdC11c2VyLXNlbGVjdDpub25lO3VzZXItc2VsZWN0Om5vbmU7dmlzaWJpbGl0eTp2aXNpYmxlO3dpZHRoOjI0cHg7ei1pbmRleDoxfUBtZWRpYSAoYW55LWhvdmVyOmhvdmVyKXsuY29udHJvbC1iYXJfX2J0bjpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLWNvbnRhaW5lci1maWxsLXByaW1hcnktbmV1dHJhbC1leHRyYS1saWdodCl9fS5jb250cm9sLWJhcl9fYnRuOmFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLWNvbnRhaW5lci1maWxsLXByaW1hcnktbmV1dHJhbC1saWdodCk7dHJhbnNpdGlvbjpub25lfS5jb250cm9sLWJhcl9fYnRuLS1hY3RpdmF0ZWR7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1jb250YWluZXItZmlsbC1wcmltYXJ5LW5ldXRyYWwtZXh0cmEtYm9sZCk7Y29sb3I6dmFyKC0tY29sb3ItY29udGVudC1zZWNvbmRhcnktaW52ZXJzZSl9QG1lZGlhIChhbnktaG92ZXI6aG92ZXIpey5jb250cm9sLWJhcl9fYnRuLS1hY3RpdmF0ZWQ6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1jb250YWluZXItZmlsbC1wcmltYXJ5LW5ldXRyYWwtYm9sZCk7Y29sb3I6dmFyKC0tY29sb3ItY29udGVudC1zZWNvbmRhcnktaW52ZXJzZSl9fS5jb250cm9sLWJhcl9fYnRuLS1idG4taGlkZGVue29wYWNpdHk6MDt2aXNpYmlsaXR5OmhpZGRlbn0uY29udHJvbC1iYXJfX2J0bi0tbW92ZS1sZWZ0IHN2Z3t0cmFuc2Zvcm06cm90YXRlKDE4MGRlZyl9LmNvbnRyb2wtYmFyX19idG4tLW1vdmUtbGVmdCBzdmc6ZGlyKHJ0bCl7dHJhbnNmb3JtOnJvdGF0ZSgtMTgwZGVnKX0uY29udHJvbC1iYXJfX2J0biBzdmcsLmxlZ2VuZC1ZVEZJSjYyaHtwb2ludGVyLWV2ZW50czpub25lfS5sZWdlbmQtWVRGSUo2Mmh7Y29sb3I6IzAwMDA7Y29udGFpbjpjb250ZW50O2RpcmVjdGlvbjpsdHI7bGluZS1oZWlnaHQ6bm9ybWFsO3RyYW5zZm9ybTp0cmFuc2xhdGVaKDApOy13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTt1c2VyLXNlbGVjdDpub25lO3otaW5kZXg6Nn0ubGVnZW5kX3dpdGhIaWRkZW5BY3Rpb25zLVlURklKNjJoIC5pdGVtLVlURklKNjJoOm5vdCguaGlkZUludmlzaWJsZUhvdmVyLVlURklKNjJoKSAuYnV0dG9uLVlURklKNjJoe2Rpc3BsYXk6ZmxleH0ubGVnZW5kX3dpdGhIaWRkZW5BY3Rpb25zLVlURklKNjJoIC5pdGVtLVlURklKNjJoOm5vdCguaGlkZUludmlzaWJsZUhvdmVyLVlURklKNjJoKSAuYnV0dG9ucy1ZVEZJSjYyaHtwb2ludGVyLWV2ZW50czphdXRvfS5pdGVtLVlURklKNjJoe2JhY2tmYWNlLXZpc2liaWxpdHk6aGlkZGVuO2ZsZXgtd3JhcDp3cmFwO2ZvbnQtc2l6ZToxM3B4O21heC13aWR0aDoxMDAlO21pbi1oZWlnaHQ6MjRweDt6LWluZGV4OjF9Lml0ZW0tWVRGSUo2Mmguc2VsZWN0ZWQtWVRGSUo2MmgsLml0ZW0tWVRGSUo2Mmgud2l0aEFjdGlvbi1ZVEZJSjYyaHt6LWluZGV4OjJ9Lml0ZW0tWVRGSUo2MmgubGFzdC1ZVEZJSjYyaHthbGlnbi1pdGVtczpjZW50ZXI7YmFja2dyb3VuZC1jb2xvcjpjdXJyZW50Q29sb3I7Ym9yZGVyLWNvbG9yOiMwMDAwO2JvcmRlci1zdHlsZTpzb2xpZDtib3JkZXItd2lkdGg6MCAxcHg7Y29sdW1uLWdhcDo4cHg7Y3Vyc29yOmRlZmF1bHQ7bWF4LXdpZHRoOmZpdC1jb250ZW50O29yZGVyOjEwMDAwMDtwYWRkaW5nOjAgNHB4O3BvaW50ZXItZXZlbnRzOmF1dG99Lml0ZW0tWVRGSUo2MmgubGFzdC1ZVEZJSjYyaCAuc3RhdHVzZXNXcmFwcGVyLVlURklKNjJoe2JhY2tncm91bmQ6bm9uZX0uaXRlbS1ZVEZJSjYyaC5sYXN0LVlURklKNjJoIC5zdGF0dXNlc1dyYXBwZXJfX3N0YXR1c2VzLVlURklKNjJoOm5vdCg6ZW1wdHkpe21hcmdpbjowfS5pdGVtLVlURklKNjJoLmxhc3QtWVRGSUo2MmggLnRleHQtWVRGSUo2Mmh7Y29sb3I6dmFyKC0tY29sb3ItY29sZC1ncmF5LTkwMCl9Lml0ZW0tWVRGSUo2MmggLm5vV3JhcFdyYXBwZXItWVRGSUo2Mmh7ZGlzcGxheTpmbGV4O2ZsZXgtd3JhcDpub3dyYXA7bWF4LXdpZHRoOjEwMCV9Lm5vV3JhcC1ZVEZJSjYyaCAuaXRlbS1ZVEZJSjYyaHtmbGV4LXdyYXA6bm93cmFwfS5ub1dyYXAtWVRGSUo2MmggLnNlcmllcy1ZVEZJSjYyaCAudmFsdWVzQWRkaXRpb25hbFdyYXBwZXItWVRGSUo2Mmh7YWxpZ24tc2VsZjphdXRvO2Rpc3BsYXk6YmxvY2t9Lm5vV3JhcC1ZVEZJSjYyaCAuc2VyaWVzLVlURklKNjJoIC52YWx1ZXNBZGRpdGlvbmFsV3JhcHBlci1ZVEZJSjYyaCAudmFsdWVJdGVtLVlURklKNjJoe2Rpc3BsYXk6aW5saW5lLWZsZXh9LmhpZGVVbmlwb3J0YW50VmFsdWVJdGVtcy1ZVEZJSjYyaCAubm9XcmFwLVlURklKNjJoIC5zZXJpZXMtWVRGSUo2MmggLnZhbHVlc0FkZGl0aW9uYWxXcmFwcGVyLVlURklKNjJoLnVuaW1wb3J0YW50LVlURklKNjJoe2Rpc3BsYXk6bm9uZX0ubm9XcmFwLVlURklKNjJoIC52YWx1ZXNXcmFwcGVyLVlURklKNjJoe2FsaWduLWl0ZW1zOmNlbnRlcn0ubm9XcmFwLVlURklKNjJoIC52YWx1ZXNBZGRpdGlvbmFsV3JhcHBlci1ZVEZJSjYyaHthbGlnbi1zZWxmOmF1dG87Y29sb3I6dmFyKC0tY29sb3ItY29sZC1ncmF5LTkwMCk7ZGlzcGxheTpibG9jazttaW4td2lkdGg6MDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpczt3aGl0ZS1zcGFjZTpub3dyYXB9LndyYXBwYWJsZS1ZVEZJSjYyaCAuc2VyaWVzLVlURklKNjJoLml0ZW0tWVRGSUo2Mmh7ZmxleC13cmFwOndyYXB9LmRpcmVjdGlvbkNvbHVtbi1ZVEZJSjYyaCAuc2VyaWVzLVlURklKNjJoe2FsaWduLWl0ZW1zOmZsZXgtc3RhcnQ7ZmxleC1kaXJlY3Rpb246Y29sdW1ufS5kaXJlY3Rpb25Db2x1bW4tWVRGSUo2MmggLnNlcmllcy1ZVEZJSjYyaCAudmFsdWVzV3JhcHBlci1ZVEZJSjYyaHthbGlnbi1zZWxmOmZsZXgtc3RhcnQ7bWF4LXdpZHRoOjEwMCV9LmJ1dHRvbi1ZVEZJSjYyaCwuc3RhdHVzZXNXcmFwcGVyLVlURklKNjJoLC50aXRsZXNXcmFwcGVyLVlURklKNjJoLC52YWx1ZUl0ZW0tWVRGSUo2Mmh7YmFja2dyb3VuZC1jb2xvcjpjdXJyZW50Q29sb3J9LmJ1dHRvbnMtWVRGSUo2MmgsLmJ1dHRvbnNXcmFwcGVyLVlURklKNjJoLC5pdGVtLVlURklKNjJoLC5sb2dvV3JhcHBlci1ZVEZJSjYyaCwuc3RhdHVzZXNXcmFwcGVyLVlURklKNjJoLC50aXRsZXNXcmFwcGVyLVlURklKNjJoLC52YWx1ZUl0ZW0tWVRGSUo2MmgsLnZhbHVlc1dyYXBwZXItWVRGSUo2Mmh7ZGlzcGxheTpmbGV4fS5zdGF0dXNlc1dyYXBwZXJfX3N0YXR1c2VzLVlURklKNjJoOm5vdCg6ZW1wdHkpe21hcmdpbi1pbmxpbmUtZW5kOjRweDttYXJnaW4taW5saW5lLXN0YXJ0OjRweH0udGl0bGVzV3JhcHBlci1ZVEZJSjYyaHthbGlnbi1pdGVtczpjZW50ZXI7Ym9yZGVyOjFweCBzb2xpZCAjMDAwMDtib3JkZXItcmlnaHQtd2lkdGg6MDtib3gtc2l6aW5nOmJvcmRlci1ib3g7Y3Vyc29yOmRlZmF1bHQ7ZmxleDoxIDE7bWF4LXdpZHRoOmZpdC1jb250ZW50O292ZXJmbG93OmhpZGRlbjtwYWRkaW5nOjAgNHB4IDAgMXB4O3BvaW50ZXItZXZlbnRzOmF1dG87cG9zaXRpb246cmVsYXRpdmU7ei1pbmRleDotM30ubG9nb1dyYXBwZXItWVRGSUo2Mmh7YWxpZ24taXRlbXM6Y2VudGVyO2Rpc3BsYXk6ZmxleDtmbGV4Om5vbmU7cG9zaXRpb246cmVsYXRpdmU7d2hpdGUtc3BhY2U6bm93cmFwO3dpZHRoOjE4cHh9LmxvZ29XcmFwcGVyLVlURklKNjJoIC5wYWlyQ29udGFpbmVyLVlURklKNjJoe2Rpc3BsYXk6aW5saW5lLWZsZXh9LmxvZ29XcmFwcGVyLVlURklKNjJoIC5sb2dvLVlURklKNjJoe2JvcmRlci1yYWRpdXM6NTAlO2Rpc3BsYXk6aW5saW5lLWZsZXg7ZmxleDpub25lO292ZXJmbG93OmhpZGRlbn0ubG9nb1dyYXBwZXItWVRGSUo2MmggLmxvZ28tWVRGSUo2MmggaW1ne2hlaWdodDoxMDAlO3dpZHRoOjEwMCV9LmxvZ29XcmFwcGVyLVlURklKNjJoIC5oaWRkZW4tWVRGSUo2MmgsLmxvZ29XcmFwcGVyLVlURklKNjJoLmhpZGRlbi1ZVEZJSjYyaHtkaXNwbGF5Om5vbmV9Lm5vQWN0aW9ucy1ZVEZJSjYyaCAudGl0bGVzV3JhcHBlci1ZVEZJSjYyaHtwb2ludGVyLWV2ZW50czpub25lfS50aXRsZXNHcm91cFdyYXBwZXItWVRGSUo2Mmh7Y29sdW1uLWdhcDo0cHg7ZGlzcGxheTpmbGV4O21pbi13aWR0aDowfS50aXRsZVdyYXBwZXItWVRGSUo2Mmh7YWxpZ24taXRlbXM6Y2VudGVyO2NvbG9yOnZhcigtLWNvbG9yLWNvbGQtZ3JheS05MDApO2NvbHVtbi1nYXA6NHB4O2Rpc3BsYXk6ZmxleDttaW4taGVpZ2h0OjIwcHg7cG9zaXRpb246cmVsYXRpdmU7dGV4dC1hbGlnbjpsZWZ0O3doaXRlLXNwYWNlOm5vd3JhcH0udGl0bGVXcmFwcGVyLVlURklKNjJoIC50aXRsZS1ZVEZJSjYyaHthbGw6dW5zZXQ7ZGlyZWN0aW9uOmx0cjtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpc30udGl0bGVXcmFwcGVyLVlURklKNjJoIC50aXRsZS1ZVEZJSjYyaDpkaXIocnRsKXtkaXJlY3Rpb246cnRsfS50aXRsZVdyYXBwZXItWVRGSUo2Mmgud2l0aEFjdGlvbi1ZVEZJSjYyaDphZnRlcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLWNvbGQtZ3JheS0xMDApO2JvcmRlci1yYWRpdXM6M3B4O2NvbnRlbnQ6IiI7aW5zZXQ6MDtwb3NpdGlvbjphYnNvbHV0ZTt2aXNpYmlsaXR5OmhpZGRlbjt6LWluZGV4Oi0yfS50aXRsZVdyYXBwZXItWVRGSUo2Mmgud2l0aERvdC1ZVEZJSjYyaDpmaXJzdC1jaGlsZDphZnRlcntyaWdodDotNHB4fS50aXRsZVdyYXBwZXItWVRGSUo2Mmgud2l0aERvdC1ZVEZJSjYyaDpub3QoOmZpcnN0LWNoaWxkKTphZnRlcntsZWZ0OjhweDtyaWdodDotNHB4fS50aXRsZVdyYXBwZXItWVRGSUo2Mmg6Zmlyc3QtY2hpbGR7cGFkZGluZy1sZWZ0OjNweH1AbWVkaWEgKGFueS1ob3Zlcjpob3Zlcil7LnRpdGxlV3JhcHBlci1ZVEZJSjYyaDpob3Zlci53aXRoQWN0aW9uLVlURklKNjJoOmFmdGVye3Zpc2liaWxpdHk6dmlzaWJsZX19LnRpdGxlV3JhcHBlci1ZVEZJSjYyaDphY3RpdmUud2l0aEFjdGlvbi1ZVEZJSjYyaDphZnRlciwudGl0bGVXcmFwcGVyX19hY3RpdmUtWVRGSUo2Mmgud2l0aEFjdGlvbi1ZVEZJSjYyaDphZnRlcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLWNvbGQtZ3JheS0xNTApO3Zpc2liaWxpdHk6dmlzaWJsZX0uYWNjZXNzaWJsZS1ZVEZJSjYyaDpmb2N1c3tib3JkZXItcmFkaXVzOjJweCFpbXBvcnRhbnQ7b3V0bGluZToycHggc29saWQgdmFyKC0tY29sb3ItdHYtYmx1ZS01MDApfS5hY2Nlc3NpYmxlLVlURklKNjJoOmZvY3VzLXZpc2libGV7Ym9yZGVyLXJhZGl1czoycHghaW1wb3J0YW50O291dGxpbmU6MnB4IHNvbGlkIHZhcigtLWNvbG9yLXR2LWJsdWUtNTAwKX0uYWNjZXNzaWJsZS1ZVEZJSjYyaDpmb2N1czpub3QoOmZvY3VzLXZpc2libGUpe291dGxpbmU6bm9uZX0uZGlzYWJsZWQtWVRGSUo2MmggLnRpdGxlV3JhcHBlci1ZVEZJSjYyaCwuZGlzYWJsZWRPbkludGVydmFsLVlURklKNjJoIC50aXRsZVdyYXBwZXItWVRGSUo2Mmh7Y29sb3I6dmFyKC0tY29sb3ItY29sZC1ncmF5LTMwMCl9LmRpc2FibGVkLVlURklKNjJoIC50aXRsZVdyYXBwZXItWVRGSUo2Mmgud2l0aERvdC1ZVEZJSjYyaDpub3QoOmZpcnN0LWNoaWxkKTpiZWZvcmUsLmRpc2FibGVkLVlURklKNjJoLndpdGhDdXN0b21UZXh0Q29sb3ItWVRGSUo2MmggLnRpdGxlV3JhcHBlci1ZVEZJSjYyaCwuZGlzYWJsZWRPbkludGVydmFsLVlURklKNjJoIC50aXRsZVdyYXBwZXItWVRGSUo2Mmgud2l0aERvdC1ZVEZJSjYyaDpub3QoOmZpcnN0LWNoaWxkKTpiZWZvcmUsLmRpc2FibGVkT25JbnRlcnZhbC1ZVEZJSjYyaC53aXRoQ3VzdG9tVGV4dENvbG9yLVlURklKNjJoIC50aXRsZVdyYXBwZXItWVRGSUo2Mmh7Y29sb3I6dmFyKC0tY29sb3ItY29sZC1ncmF5LTMwMCkhaW1wb3J0YW50fS5zdHVkeS1ZVEZJSjYyaCAudGl0bGVXcmFwcGVyLVlURklKNjJoLm1haW5UaXRsZS1ZVEZJSjYyaHtmbGV4OjAgMSBhdXRvO21pbi13aWR0aDoxNXB4fS5zdHVkeS1ZVEZJSjYyaCAudGl0bGVXcmFwcGVyLVlURklKNjJoLm1haW5UaXRsZS1ZVEZJSjYyaC53aXRoRG90LVlURklKNjJoOm5vdCg6Zmlyc3QtY2hpbGQpe2ZsZXg6MCAzIGF1dG87cGFkZGluZy1sZWZ0OjEycHh9LnN0dWR5LVlURklKNjJoIC50aXRsZVdyYXBwZXItWVRGSUo2MmgubWFpblRpdGxlLVlURklKNjJoLndpdGhEb3QtWVRGSUo2Mmg6bm90KDpmaXJzdC1jaGlsZCk6YmVmb3Jle2NvbG9yOnZhcigtLWxlZ2VuZC10aXRsZS1kb3QtY29sb3IsdmFyKC0tY29sb3ItY29sZC1ncmF5LTkwMCkpO2NvbnRlbnQ6IlxiNyI7aGVpZ2h0OjEwMCU7bGVmdDowO2xpbmUtaGVpZ2h0OmluaGVyaXQ7cG9zaXRpb246YWJzb2x1dGU7dGV4dC1hbGlnbjpjZW50ZXI7dG9wOjFweDt3aWR0aDoxMnB4O3otaW5kZXg6LTF9LnN0dWR5LVlURklKNjJoIC50aXRsZVdyYXBwZXItWVRGSUo2MmguaW5wdXRUaXRsZS1ZVEZJSjYyaHtjb2xvcjp2YXIoLS1jb2xvci1jb2xkLWdyYXktNjAwKX0uc3R1ZHktWVRGSUo2MmguZGlzYWJsZWQtWVRGSUo2MmggLnRpdGxlV3JhcHBlci1ZVEZJSjYyaC5pbnB1dFRpdGxlLVlURklKNjJoLC5zdHVkeS1ZVEZJSjYyaC5kaXNhYmxlZE9uSW50ZXJ2YWwtWVRGSUo2MmggLnRpdGxlV3JhcHBlci1ZVEZJSjYyaC5pbnB1dFRpdGxlLVlURklKNjJoe2NvbG9yOnZhcigtLWNvbG9yLWNvbGQtZ3JheS0zMDApfS5zdHVkeS1ZVEZJSjYyaC5kaXNhYmxlZC1ZVEZJSjYyaC53aXRoQ3VzdG9tVGV4dENvbG9yLVlURklKNjJoIC50aXRsZVdyYXBwZXItWVRGSUo2MmgsLnN0dWR5LVlURklKNjJoLmRpc2FibGVkT25JbnRlcnZhbC1ZVEZJSjYyaC53aXRoQ3VzdG9tVGV4dENvbG9yLVlURklKNjJoIC50aXRsZVdyYXBwZXItWVRGSUo2Mmh7Y29sb3I6dmFyKC0tY29sb3ItY29sZC1ncmF5LTMwMCkhaW1wb3J0YW50fS5zdHVkeS1ZVEZJSjYyaC5oaWRlVmFsdWVzLVlURklKNjJoIC52YWx1ZXNXcmFwcGVyLVlURklKNjJoe2Rpc3BsYXk6bm9uZX0ubGVnZW5kLVlURklKNjJoIC5zdHVkeS1ZVEZJSjYyaC5oYXM1QnV0dG9ucy1ZVEZJSjYyaC5zZWxlY3RlZC1ZVEZJSjYyaC53aXRoVGFpbC1ZVEZJSjYyaCAudmFsdWVzV3JhcHBlci1ZVEZJSjYyaDphZnRlciwubGVnZW5kLVlURklKNjJoIC5zdHVkeS1ZVEZJSjYyaC5oYXM1QnV0dG9ucy1ZVEZJSjYyaC5zdGF5SW5Ib3ZlcmVkTW9kZS1ZVEZJSjYyaC53aXRoVGFpbC1ZVEZJSjYyaCAudmFsdWVzV3JhcHBlci1ZVEZJSjYyaDphZnRlcntsZWZ0OmNhbGModmFyKC0tbGVnZW5kLXNvdXJjZS1pdGVtLWJ1dHRvbi13aWR0aCkqNSl9QG1lZGlhIChhbnktaG92ZXI6aG92ZXIpey5sZWdlbmQtWVRGSUo2Mmg6aG92ZXIgLnN0dWR5LVlURklKNjJoLmhhczVCdXR0b25zLVlURklKNjJoLndpdGhBY3Rpb24tWVRGSUo2Mmgud2l0aFRhaWwtWVRGSUo2MmggLnZhbHVlc1dyYXBwZXItWVRGSUo2Mmg6YWZ0ZXJ7bGVmdDpjYWxjKHZhcigtLWxlZ2VuZC1zb3VyY2UtaXRlbS1idXR0b24td2lkdGgpKjUpfX0ubm9XcmFwLVlURklKNjJoIC52YWx1ZXNXcmFwcGVyLVlURklKNjJoLC5zZXJpZXMtWVRGSUo2MmggLnZhbHVlc1dyYXBwZXItWVRGSUo2Mmh7YmFja2dyb3VuZC1jb2xvcjpjdXJyZW50Q29sb3I7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgIzAwMDA7Ym9yZGVyLXRvcDoxcHggc29saWQgIzAwMDB9LmxvYWRlci1ZVEZJSjYyaHttYXJnaW4tbGVmdDo0cHh9Lm5vV3JhcC1ZVEZJSjYyaCAudmFsdWVzQWRkaXRpb25hbFdyYXBwZXItWVRGSUo2MmgsLnNlcmllcy1ZVEZJSjYyaCAudmFsdWVzQWRkaXRpb25hbFdyYXBwZXItWVRGSUo2Mmh7Ym9yZGVyLWxlZnQtY29sb3I6IzAwMDB9Lm5vV3JhcC1ZVEZJSjYyaCAudmFsdWVJdGVtLVlURklKNjJoLC5zZXJpZXMtWVRGSUo2MmggLnZhbHVlSXRlbS1ZVEZJSjYyaHtiYWNrZ3JvdW5kLWNvbG9yOmluaXRpYWx9Lm5vV3JhcC1ZVEZJSjYyaCAudmFsdWVJdGVtLVlURklKNjJoLC5ub1dyYXAtWVRGSUo2MmggLnZhbHVlSXRlbS1ZVEZJSjYyaCAudmFsdWVUaXRsZS1ZVEZJSjYyaCwubm9XcmFwLVlURklKNjJoIC52YWx1ZUl0ZW0tWVRGSUo2MmggLnZhbHVlVmFsdWUtWVRGSUo2MmgsLnNlcmllcy1ZVEZJSjYyaCAudmFsdWVJdGVtLVlURklKNjJoLC5zZXJpZXMtWVRGSUo2MmggLnZhbHVlSXRlbS1ZVEZJSjYyaCAudmFsdWVUaXRsZS1ZVEZJSjYyaCwuc2VyaWVzLVlURklKNjJoIC52YWx1ZUl0ZW0tWVRGSUo2MmggLnZhbHVlVmFsdWUtWVRGSUo2Mmh7ZGlzcGxheTppbmxpbmUtZmxleH0uaGlkZVVuaXBvcnRhbnRWYWx1ZUl0ZW1zLVlURklKNjJoIC5ub1dyYXAtWVRGSUo2MmggLnZhbHVlSXRlbS1ZVEZJSjYyaC51bmltcG9ydGFudC1ZVEZJSjYyaCwuaGlkZVVuaXBvcnRhbnRWYWx1ZUl0ZW1zLVlURklKNjJoIC5zZXJpZXMtWVRGSUo2MmggLnZhbHVlSXRlbS1ZVEZJSjYyaC51bmltcG9ydGFudC1ZVEZJSjYyaHtkaXNwbGF5Om5vbmV9LnNlcmllcy1ZVEZJSjYyaCAudGl0bGVzV3JhcHBlci1ZVEZJSjYyaHthbGlnbi1pdGVtczpjZW50ZXI7Zm9udC1zaXplOjE2cHg7bGluZS1oZWlnaHQ6bm9ybWFsO21pbi1oZWlnaHQ6MjRweDtwb3NpdGlvbjpyZWxhdGl2ZX0uc2VyaWVzLVlURklKNjJoIC50aXRsZXNXcmFwcGVyLVlURklKNjJoIC50aXRsZVdyYXBwZXItWVRGSUo2Mmh7bWluLXdpZHRoOjIzcHh9LnNlcmllcy1ZVEZJSjYyaCAudGl0bGVzV3JhcHBlci1ZVEZJSjYyaCAudGl0bGVXcmFwcGVyLVlURklKNjJoLndpdGhEb3QtWVRGSUo2Mmg6bm90KDpmaXJzdC1jaGlsZCl7cGFkZGluZy1sZWZ0OjEycHh9LnNlcmllcy1ZVEZJSjYyaCAudGl0bGVzV3JhcHBlci1ZVEZJSjYyaCAudGl0bGVXcmFwcGVyLVlURklKNjJoLndpdGhEb3QtWVRGSUo2Mmg6bm90KDpmaXJzdC1jaGlsZCk6YmVmb3Jle2NvbG9yOnZhcigtLWxlZ2VuZC10aXRsZS1kb3QtY29sb3IsdmFyKC0tY29sb3ItY29sZC1ncmF5LTkwMCkpO2NvbnRlbnQ6IlxiNyI7Zm9udC1zaXplOjE2cHg7aGVpZ2h0OjEwMCU7bGVmdDowO2xpbmUtaGVpZ2h0OmluaGVyaXQ7cG9zaXRpb246YWJzb2x1dGU7dGV4dC1hbGlnbjpjZW50ZXI7dG9wOjFweDt3aWR0aDoxMnB4O3otaW5kZXg6LTF9LnNlcmllcy1ZVEZJSjYyaCAudGl0bGVzV3JhcHBlci1ZVEZJSjYyaCAudGl0bGVXcmFwcGVyLVlURklKNjJoLmRlc2NUaXRsZS1ZVEZJSjYyaCwuc2VyaWVzLVlURklKNjJoIC50aXRsZXNXcmFwcGVyLVlURklKNjJoIC50aXRsZVdyYXBwZXItWVRGSUo2MmgubWFpblRpdGxlLVlURklKNjJoe2ZsZXg6MCAxIGF1dG99LnNlcmllcy1ZVEZJSjYyaCAudGl0bGVzV3JhcHBlci1ZVEZJSjYyaCAudGl0bGVXcmFwcGVyLVlURklKNjJoLmludGVydmFsVGl0bGUtWVRGSUo2Mmh7ZmxleDowIDEgYXV0bzttaW4td2lkdGg6YXV0b30uc2VyaWVzLVlURklKNjJoIC50aXRsZXNXcmFwcGVyLVlURklKNjJoIC50aXRsZVdyYXBwZXItWVRGSUo2MmguZXhjaGFuZ2VUaXRsZS1ZVEZJSjYyaCwuc2VyaWVzLVlURklKNjJoIC50aXRsZXNXcmFwcGVyLVlURklKNjJoIC50aXRsZVdyYXBwZXItWVRGSUo2MmgucHJpY2VTb3VyY2VUaXRsZS1ZVEZJSjYyaCwuc2VyaWVzLVlURklKNjJoIC50aXRsZXNXcmFwcGVyLVlURklKNjJoIC50aXRsZVdyYXBwZXItWVRGSUo2MmgucHJvdmlkZXJUaXRsZS1ZVEZJSjYyaCwuc2VyaWVzLVlURklKNjJoIC50aXRsZXNXcmFwcGVyLVlURklKNjJoIC50aXRsZVdyYXBwZXItWVRGSUo2Mmguc3R5bGVUaXRsZS1ZVEZJSjYyaHtmbGV4OjAgMyBhdXRvfS5zZXJpZXMtWVRGSUo2MmggLnZhbHVlc1dyYXBwZXItWVRGSUo2Mmh7ZGlzcGxheTpmbGV4fS5zZXJpZXMtWVRGSUo2MmggLnRpdGxlc1dyYXBwZXItWVRGSUo2MmgsLnNlcmllcy1ZVEZJSjYyaCAudmFsdWVzV3JhcHBlci1ZVEZJSjYyaHttaW4td2lkdGg6MjNweH0ubGVnZW5kLVlURklKNjJoIC5zZXJpZXMtWVRGSUo2Mmguc2VsZWN0ZWQtWVRGSUo2Mmgud2l0aFRhaWwtWVRGSUo2MmggLnZhbHVlc1dyYXBwZXItWVRGSUo2Mmg6YWZ0ZXIsLmxlZ2VuZC1ZVEZJSjYyaCAuc2VyaWVzLVlURklKNjJoLnN0YXlJbkhvdmVyZWRNb2RlLVlURklKNjJoLndpdGhUYWlsLVlURklKNjJoIC52YWx1ZXNXcmFwcGVyLVlURklKNjJoOmFmdGVye2xlZnQ6Y2FsYyh2YXIoLS1sZWdlbmQtc291cmNlLWl0ZW0tYnV0dG9uLXdpZHRoKSozKX1AbWVkaWEgKGFueS1ob3Zlcjpob3Zlcil7LmxlZ2VuZC1ZVEZJSjYyaDpob3ZlciAuc2VyaWVzLVlURklKNjJoLndpdGhBY3Rpb24tWVRGSUo2Mmgud2l0aFRhaWwtWVRGSUo2MmggLnZhbHVlc1dyYXBwZXItWVRGSUo2Mmg6YWZ0ZXJ7bGVmdDpjYWxjKHZhcigtLWxlZ2VuZC1zb3VyY2UtaXRlbS1idXR0b24td2lkdGgpKjMpfX0ubGVnZW5kLVlURklKNjJoIC5zZXJpZXMtWVRGSUo2MmguZmxhZ2dlZC1ZVEZJSjYyaC5zZWxlY3RlZC1ZVEZJSjYyaC53aXRoVGFpbC1ZVEZJSjYyaCAudmFsdWVzV3JhcHBlci1ZVEZJSjYyaDphZnRlciwubGVnZW5kLVlURklKNjJoIC5zZXJpZXMtWVRGSUo2MmguZmxhZ2dlZC1ZVEZJSjYyaC5zdGF5SW5Ib3ZlcmVkTW9kZS1ZVEZJSjYyaC53aXRoVGFpbC1ZVEZJSjYyaCAudmFsdWVzV3JhcHBlci1ZVEZJSjYyaDphZnRlcntsZWZ0OmNhbGModmFyKC0tbGVnZW5kLXNvdXJjZS1pdGVtLWJ1dHRvbi13aWR0aCkqMil9QG1lZGlhIChhbnktaG92ZXI6aG92ZXIpey5sZWdlbmQtWVRGSUo2Mmg6aG92ZXIgLnNlcmllcy1ZVEZJSjYyaC5mbGFnZ2VkLVlURklKNjJoLndpdGhBY3Rpb24tWVRGSUo2Mmgud2l0aFRhaWwtWVRGSUo2MmggLnZhbHVlc1dyYXBwZXItWVRGSUo2Mmg6YWZ0ZXJ7bGVmdDpjYWxjKHZhcigtLWxlZ2VuZC1zb3VyY2UtaXRlbS1idXR0b24td2lkdGgpKjIpfX0uc2VsZWN0ZWQtWVRGSUo2MmggLmJ1dHRvbnMtWVRGSUo2MmgsLnNlbGVjdGVkLVlURklKNjJoIC50aXRsZXNXcmFwcGVyLVlURklKNjJoLC53aXRoQWN0aW9uLVlURklKNjJoIC5idXR0b25zLVlURklKNjJoLC53aXRoQWN0aW9uLVlURklKNjJoIC50aXRsZXNXcmFwcGVyLVlURklKNjJoe2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3Itd2hpdGUpfS5zZWxlY3RlZC1ZVEZJSjYyaCAuYnV0dG9uLVlURklKNjJoLC53aXRoQWN0aW9uLVlURklKNjJoIC5idXR0b24tWVRGSUo2Mmh7YmFja2dyb3VuZC1jb2xvcjppbml0aWFsfS5zZWxlY3RlZC1ZVEZJSjYyaCAudGl0bGVzV3JhcHBlci1ZVEZJSjYyaCwud2l0aEFjdGlvbi1ZVEZJSjYyaCAudGl0bGVzV3JhcHBlci1ZVEZJSjYyaCwud2l0aEFjdGlvbi1ZVEZJSjYyaC5zZWxlY3RlZC1ZVEZJSjYyaCAudGl0bGVzV3JhcHBlci1ZVEZJSjYyaHtib3JkZXItcmFkaXVzOjRweCAwIDAgNHB4fS5tZWRpdW0tWVRGSUo2MmgubGVnZW5kLVlURklKNjJoIC5pdGVtLVlURklKNjJoLnN0dWR5LVlURklKNjJoLnNlbGVjdGVkLVlURklKNjJoLndpdGhUYWlsLVlURklKNjJoIC52YWx1ZXNXcmFwcGVyLVlURklKNjJoOmFmdGVyLC5tZWRpdW0tWVRGSUo2MmgubGVnZW5kLVlURklKNjJoIC5pdGVtLVlURklKNjJoLnN0dWR5LVlURklKNjJoLnN0YXlJbkhvdmVyZWRNb2RlLVlURklKNjJoLndpdGhUYWlsLVlURklKNjJoIC52YWx1ZXNXcmFwcGVyLVlURklKNjJoOmFmdGVye2xlZnQ6Y2FsYyh2YXIoLS1sZWdlbmQtc291cmNlLWl0ZW0tYnV0dG9uLXdpZHRoKSozKX1AbWVkaWEgKGFueS1ob3Zlcjpob3Zlcil7Lm1lZGl1bS1ZVEZJSjYyaC5sZWdlbmQtWVRGSUo2Mmg6aG92ZXIgLml0ZW0tWVRGSUo2Mmguc3R1ZHktWVRGSUo2Mmgud2l0aEFjdGlvbi1ZVEZJSjYyaC53aXRoVGFpbC1ZVEZJSjYyaCAudmFsdWVzV3JhcHBlci1ZVEZJSjYyaDphZnRlcntsZWZ0OmNhbGModmFyKC0tbGVnZW5kLXNvdXJjZS1pdGVtLWJ1dHRvbi13aWR0aCkqMyl9fS5taW5pbWl6ZWQtWVRGSUo2MmgubGVnZW5kLVlURklKNjJoIC5pdGVtLVlURklKNjJoLnN0dWR5LVlURklKNjJoLnNlbGVjdGVkLVlURklKNjJoLndpdGhUYWlsLVlURklKNjJoIC52YWx1ZXNXcmFwcGVyLVlURklKNjJoOmFmdGVyLC5taW5pbWl6ZWQtWVRGSUo2MmgubGVnZW5kLVlURklKNjJoIC5pdGVtLVlURklKNjJoLnN0dWR5LVlURklKNjJoLnN0YXlJbkhvdmVyZWRNb2RlLVlURklKNjJoLndpdGhUYWlsLVlURklKNjJoIC52YWx1ZXNXcmFwcGVyLVlURklKNjJoOmFmdGVye2xlZnQ6Y2FsYyh2YXIoLS1sZWdlbmQtc291cmNlLWl0ZW0tYnV0dG9uLXdpZHRoKSoyKX1AbWVkaWEgKGFueS1ob3Zlcjpob3Zlcil7Lm1pbmltaXplZC1ZVEZJSjYyaC5sZWdlbmQtWVRGSUo2Mmg6aG92ZXIgLml0ZW0tWVRGSUo2Mmguc3R1ZHktWVRGSUo2Mmgud2l0aEFjdGlvbi1ZVEZJSjYyaC53aXRoVGFpbC1ZVEZJSjYyaCAudmFsdWVzV3JhcHBlci1ZVEZJSjYyaDphZnRlcntsZWZ0OmNhbGModmFyKC0tbGVnZW5kLXNvdXJjZS1pdGVtLWJ1dHRvbi13aWR0aCkqMil9fS52YWx1ZXNXcmFwcGVyLVlURklKNjJoe2FsaWduLWl0ZW1zOmNlbnRlcjthbGlnbi1zZWxmOnN0cmV0Y2g7Y3Vyc29yOmRlZmF1bHQ7ZmxleC13cmFwOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47cG9pbnRlci1ldmVudHM6YXV0bztwb3NpdGlvbjpyZWxhdGl2ZX0udmFsdWVzQWRkaXRpb25hbFdyYXBwZXItWVRGSUo2Mmh7YWxpZ24taXRlbXM6YmFzZWxpbmU7YWxpZ24tc2VsZjpzdHJldGNoO2JvcmRlci1sZWZ0OjRweCBzb2xpZDtkaXJlY3Rpb246bHRyO2Rpc3BsYXk6ZmxleDtmbGV4LXdyYXA6d3JhcDtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1zdGFydH0udmFsdWVzQWRkaXRpb25hbFdyYXBwZXItWVRGSUo2Mmg6ZGlyKHJ0bCl7ZGlyZWN0aW9uOnJ0bDtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmR9LmRpc2FibGVkLVlURklKNjJoIC52YWx1ZXNXcmFwcGVyLVlURklKNjJoe2Rpc3BsYXk6bm9uZX0udmFsdWVJdGVtLVlURklKNjJoe2FsaWduLWl0ZW1zOmNlbnRlcjthbGlnbi1zZWxmOnN0cmV0Y2g7ZGlzcGxheTpmbGV4O3RleHQtYWxpZ246bGVmdH0udmFsdWVJdGVtLVlURklKNjJoOmJlZm9yZXtjb250ZW50OnZhcigtLW5vdC1hdmFpbGFibGUtY29udGVudCwiMCIpO292ZXJmbG93OmhpZGRlbjt2aXNpYmlsaXR5OmhpZGRlbjt3aWR0aDowfS52YWx1ZUl0ZW0tWVRGSUo2Mmg6bm90KDpsYXN0LWNoaWxkKXtwYWRkaW5nLXJpZ2h0OjZweH0udmFsdWVJdGVtLVlURklKNjJoOmxhc3QtY2hpbGR7cGFkZGluZy1yaWdodDo0cHh9LnZhbHVlSXRlbS1ZVEZJSjYyaCAudmFsdWVUaXRsZS1ZVEZJSjYyaHtwYWRkaW5nLXJpZ2h0OjFweH0udmFsdWVJdGVtLVlURklKNjJoIC52YWx1ZVRpdGxlLVlURklKNjJoLC52YWx1ZUl0ZW0tWVRGSUo2MmggLnZhbHVlVmFsdWUtWVRGSUo2Mmh7Y29sb3I6dmFyKC0tY29sb3ItY29sZC1ncmF5LTkwMCl9LnNlcmllcy1ZVEZJSjYyaCAudmFsdWVJdGVtLVlURklKNjJoOmxhc3QtY2hpbGR7cGFkZGluZy1yaWdodDo2cHh9LnNlcmllcy1ZVEZJSjYyaCAudmFsdWVJdGVtLVlURklKNjJoOmxhc3QtY2hpbGQgLnRpdGxlV3JhcHBlci1ZVEZJSjYyaHtkaXNwbGF5Om5vbmV9LnNlcmllcy1ZVEZJSjYyaCAudmFsdWVJdGVtLVlURklKNjJoIC52YWx1ZVRpdGxlLVlURklKNjJoe2NvbG9yOnZhcigtLWNvbG9yLWNvbGQtZ3JheS05MDApfS5idXR0b25zV3JhcHBlci1ZVEZJSjYyaHttYXgtd2lkdGg6MDtwb3NpdGlvbjpyZWxhdGl2ZTt3aWR0aDowO3otaW5kZXg6Mn0ubWljcm8tWVRGSUo2MmggLml0ZW0tWVRGSUo2Mmguc2VyaWVzLVlURklKNjJoW2RhdGEtcWEtaWQ9bGVnZW5kLXNlcmllcy1pdGVtXSAuYnV0dG9uc1dyYXBwZXItWVRGSUo2Mmh7bWF4LXdpZHRoOjA7d2lkdGg6MH0uZGlzYWJsZWQtWVRGSUo2MmggLmJ1dHRvbnNXcmFwcGVyLVlURklKNjJoLC5mbGFnZ2VkLVlURklKNjJoIC5idXR0b25zV3JhcHBlci1ZVEZJSjYyaHttYXgtd2lkdGg6dmFyKC0tbGVnZW5kLXNvdXJjZS1pdGVtLWJ1dHRvbi13aWR0aCk7d2lkdGg6dmFyKC0tbGVnZW5kLXNvdXJjZS1pdGVtLWJ1dHRvbi13aWR0aCl9LmxpbmtlZC1ZVEZJSjYyaC5zZXJpZXMtWVRGSUo2Mmg6bm90KC5vbmx5T25lQnV0dG9uQ2FuQmVTdGljay1ZVEZJSjYyaCkgLmJ1dHRvbnNXcmFwcGVyLVlURklKNjJoe21heC13aWR0aDpjYWxjKHZhcigtLWxlZ2VuZC1zb3VyY2UtaXRlbS1idXR0b24td2lkdGgpKjIpO3dpZHRoOmNhbGModmFyKC0tbGVnZW5kLXNvdXJjZS1pdGVtLWJ1dHRvbi13aWR0aCkqMil9LmRpc2FibGVkLVlURklKNjJoLnNlcmllcy1ZVEZJSjYyaDpub3QoLm9ubHlPbmVCdXR0b25DYW5CZVN0aWNrLVlURklKNjJoKSAuYnV0dG9uc1dyYXBwZXItWVRGSUo2Mmh7bWF4LXdpZHRoOmNhbGModmFyKC0tbGVnZW5kLXNvdXJjZS1pdGVtLWJ1dHRvbi13aWR0aCkqMyk7d2lkdGg6Y2FsYyh2YXIoLS1sZWdlbmQtc291cmNlLWl0ZW0tYnV0dG9uLXdpZHRoKSozKX0uYnV0dG9ucy1ZVEZJSjYyaHthbGlnbi1pdGVtczpjZW50ZXI7ZGlzcGxheTpmbGV4O2ZsZXgtc2hyaW5rOjA7b3BhY2l0eTowO3BhZGRpbmc6MDtwb2ludGVyLWV2ZW50czpub25lfS5kaXNhYmxlZC1ZVEZJSjYyaCAuYnV0dG9ucy1ZVEZJSjYyaCwuZGlzYWJsZWRPbkludGVydmFsLVlURklKNjJoIC5idXR0b25zLVlURklKNjJoLC5mbGFnZ2VkLVlURklKNjJoIC5idXR0b25zLVlURklKNjJoLC5saW5rZWQtWVRGSUo2MmggLmJ1dHRvbnMtWVRGSUo2MmgsLnRvdWNoTW9kZS1ZVEZJSjYyaCAuYnV0dG9ucy1ZVEZJSjYyaHtvcGFjaXR5OjF9Lm5vQWN0aW9ucy1ZVEZJSjYyaCAuYnV0dG9ucy1ZVEZJSjYyaHtwb2ludGVyLWV2ZW50czpub25lfS5zZWxlY3RlZC1ZVEZJSjYyaCAuYnV0dG9ucy1ZVEZJSjYyaCwud2l0aEFjdGlvbi1ZVEZJSjYyaCAuYnV0dG9ucy1ZVEZJSjYyaHtib3JkZXItcmFkaXVzOjAgNHB4IDRweCAwfS5sZWdlbmQtWVRGSUo2MmggLnNlbGVjdGVkLVlURklKNjJoIC5idXR0b25zLVlURklKNjJoLC5sZWdlbmQtWVRGSUo2MmggLnN0YXlJbkhvdmVyZWRNb2RlLVlURklKNjJoIC5idXR0b25zLVlURklKNjJoLC5sZWdlbmQtWVRGSUo2MmggLndpdGhBY3Rpb24tWVRGSUo2MmggLmJ1dHRvbnMtWVRGSUo2Mmh7Y3Vyc29yOmRlZmF1bHQ7b3BhY2l0eToxO3BvaW50ZXItZXZlbnRzOmF1dG99LmxlZ2VuZC1ZVEZJSjYyaCAuc2VsZWN0ZWQtWVRGSUo2Mmgud2l0aFRhaWwtWVRGSUo2MmggLnZhbHVlc1dyYXBwZXItWVRGSUo2Mmg6YWZ0ZXIsLmxlZ2VuZC1ZVEZJSjYyaCAuc3RheUluSG92ZXJlZE1vZGUtWVRGSUo2Mmgud2l0aFRhaWwtWVRGSUo2MmggLnZhbHVlc1dyYXBwZXItWVRGSUo2Mmg6YWZ0ZXJ7YmFja2dyb3VuZDpyYWRpYWwtZ3JhZGllbnQoMTBweCBhdCAwIDUwJSxjdXJyZW50Q29sb3IgMCwjMDAwMCAxMDAlKTtjb250ZW50OiIiO2hlaWdodDoxOHB4O2xlZnQ6Y2FsYyh2YXIoLS1sZWdlbmQtc291cmNlLWl0ZW0tYnV0dG9uLXdpZHRoKSo0KTtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6M3B4O3dpZHRoOjE2cHh9QG1lZGlhIChhbnktaG92ZXI6aG92ZXIpey5sZWdlbmQtWVRGSUo2Mmg6aG92ZXIgLndpdGhBY3Rpb24tWVRGSUo2Mmgud2l0aFRhaWwtWVRGSUo2MmggLnZhbHVlc1dyYXBwZXItWVRGSUo2Mmg6YWZ0ZXJ7YmFja2dyb3VuZDpyYWRpYWwtZ3JhZGllbnQoMTBweCBhdCAwIDUwJSxjdXJyZW50Q29sb3IgMCwjMDAwMCAxMDAlKTtjb250ZW50OiIiO2hlaWdodDoxOHB4O2xlZnQ6Y2FsYyh2YXIoLS1sZWdlbmQtc291cmNlLWl0ZW0tYnV0dG9uLXdpZHRoKSo0KTtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6M3B4O3dpZHRoOjE2cHh9fS5idXR0b24tWVRGSUo2Mmh7YWxsOnVuc2V0O2FsaWduLWl0ZW1zOmNlbnRlcjthbGlnbi1zZWxmOnN0cmV0Y2g7anVzdGlmeS1jb250ZW50OmNlbnRlcjtvcGFjaXR5OjA7cG9zaXRpb246cmVsYXRpdmU7d2lkdGg6dmFyKC0tbGVnZW5kLXNvdXJjZS1pdGVtLWJ1dHRvbi13aWR0aCk7ei1pbmRleDowfS5idXR0b25JY29uLVlURklKNjJoe2NvbG9yOnZhcigtLWNvbG9yLWNvbGQtZ3JheS05MDApO2Rpc3BsYXk6ZmxleH0uYnV0dG9uLVlURklKNjJoOmxhc3QtY2hpbGR7Ym9yZGVyLXJhZGl1czowIDRweCA0cHggMDttYXJnaW4tcmlnaHQ6MXB4fS5idXR0b24tWVRGSUo2Mmg6YWZ0ZXJ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1jb2xkLWdyYXktMTAwKTtib3JkZXItcmFkaXVzOjJweDtjb250ZW50OiIiO2Rpc3BsYXk6YmxvY2s7aW5zZXQ6MXB4IDA7cG9zaXRpb246YWJzb2x1dGU7dmlzaWJpbGl0eTpoaWRkZW47ei1pbmRleDotMX0uYnV0dG9uLVlURklKNjJoOmFjdGl2ZTphZnRlciwuYnV0dG9uX19hY3RpdmUtWVRGSUo2Mmg6YWZ0ZXJ7dmlzaWJpbGl0eTp2aXNpYmxlfUBtZWRpYSAoYW55LWhvdmVyOmhvdmVyKXsuYnV0dG9uLVlURklKNjJoOmhvdmVyOmFmdGVye3Zpc2liaWxpdHk6dmlzaWJsZX19LmJ1dHRvbi1ZVEZJSjYyaDphY3RpdmU6YWZ0ZXIsLmJ1dHRvbl9fYWN0aXZlLVlURklKNjJoOmFmdGVye2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItY29sZC1ncmF5LTE1MCl9LmJ1dHRvbi1ZVEZJSjYyaC5mbGFnLVlURklKNjJoPnNwYW57bWFyZ2luLXRvcDotMXB4fS5kaXNhYmxlZC1ZVEZJSjYyaCAuYnV0dG9uSWNvbi1ZVEZJSjYyaHtjb2xvcjp2YXIoLS1jb2xvci1jb2xkLWdyYXktOTAwKX0ud2l0aEFjdGlvbi1ZVEZJSjYyaCAuYnV0dG9ucy1ZVEZJSjYyaCAuYnV0dG9uLVlURklKNjJoOm5vdCg6Zmlyc3QtY2hpbGQpLC53aXRoQWN0aW9uLVlURklKNjJoIC50aXRsZXNXcmFwcGVyLVlURklKNjJoe2JvcmRlci1jb2xvcjp2YXIoLS1jb2xvci1jb2xkLWdyYXktMjAwKX0uc2VsZWN0ZWQtWVRGSUo2MmggLnRpdGxlc1dyYXBwZXItWVRGSUo2Mmg6YWZ0ZXIsLndpdGhBY3Rpb24tWVRGSUo2MmggLnRpdGxlc1dyYXBwZXItWVRGSUo2Mmg6YWZ0ZXJ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1jb2xkLWdyYXktMTAwKX0uc2VsZWN0ZWQtWVRGSUo2MmggLmJ1dHRvbnMtWVRGSUo2MmgsLndpdGhBY3Rpb24tWVRGSUo2MmggLmJ1dHRvbnMtWVRGSUo2Mmh7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1jb2xvci1jb2xkLWdyYXktMjAwKTtib3JkZXItbGVmdDowfS5zZWxlY3RlZC1ZVEZJSjYyaCAuYnV0dG9ucy1ZVEZJSjYyaCwuc2VsZWN0ZWQtWVRGSUo2MmggLmJ1dHRvbnMtWVRGSUo2MmggLmJ1dHRvbi1ZVEZJSjYyaDpub3QoOmZpcnN0LWNoaWxkKSwuc2VsZWN0ZWQtWVRGSUo2MmggLmJ1dHRvbnNXcmFwcGVyLVlURklKNjJoLC5zZWxlY3RlZC1ZVEZJSjYyaCAudGl0bGVzV3JhcHBlci1ZVEZJSjYyaHtib3JkZXItY29sb3I6dmFyKC0tY29sb3ItdHYtYmx1ZS01MDApfS5idXR0b25zLVlURklKNjJoIC5leWUtWVRGSUo2MmggLmFuaW1hdGVkLWxvYWRpbmctZXllLC5idXR0b25zLVlURklKNjJoIC5leWUtWVRGSUo2MmggLmNyb3NzZWQtZXllLC5idXR0b25zLVlURklKNjJoIC5leWUtWVRGSUo2MmggLmxvYWRpbmctZXllLC5kaXNhYmxlZC1ZVEZJSjYyaCAuYnV0dG9ucy1ZVEZJSjYyaCAuZXllLVlURklKNjJoIC5hbmltYXRlZC1sb2FkaW5nLWV5ZSwuZGlzYWJsZWQtWVRGSUo2MmggLmJ1dHRvbnMtWVRGSUo2MmggLmV5ZS1ZVEZJSjYyaCAubG9hZGluZy1leWUsLmRpc2FibGVkLVlURklKNjJoIC5idXR0b25zLVlURklKNjJoIC5leWUtWVRGSUo2MmggLm5vcm1hbC1leWUsLm1lZGl1bS1ZVEZJSjYyaCAuc3R1ZHktWVRGSUo2MmggLmJ1dHRvbnMtWVRGSUo2MmggLmJ1dHRvbi1ZVEZJSjYyaDpudGgtY2hpbGQoMiksLm1lZGl1bS1ZVEZJSjYyaCAuc3R1ZHktWVRGSUo2MmggLmJ1dHRvbnMtWVRGSUo2MmggLmJ1dHRvbi1ZVEZJSjYyaDpudGgtY2hpbGQoMyk6bnRoLWxhc3QtY2hpbGQoMyl7ZGlzcGxheTpub25lfS5kaXNhYmxlZC1ZVEZJSjYyaCAuYnV0dG9ucy1ZVEZJSjYyaCAuZXllLVlURklKNjJoIC5jcm9zc2VkLWV5ZXtkaXNwbGF5OmJsb2NrfS5leWVMb2FkaW5nLVlURklKNjJoIC5idXR0b25zLVlURklKNjJoIC5leWUtWVRGSUo2MmggLmNyb3NzZWQtZXllLC5leWVMb2FkaW5nLVlURklKNjJoIC5idXR0b25zLVlURklKNjJoIC5leWUtWVRGSUo2MmggLm5vcm1hbC1leWV7ZGlzcGxheTpub25lfS5leWVMb2FkaW5nLVlURklKNjJoIC5idXR0b25zLVlURklKNjJoIC5leWUtWVRGSUo2MmggLmFuaW1hdGVkLWxvYWRpbmctZXllLC5leWVMb2FkaW5nLVlURklKNjJoIC5idXR0b25zLVlURklKNjJoIC5leWUtWVRGSUo2MmggLmxvYWRpbmctZXlle2Rpc3BsYXk6YmxvY2t9LmV5ZUxvYWRpbmctWVRGSUo2MmggLmJ1dHRvbnMtWVRGSUo2MmggLmV5ZS1ZVEZJSjYyaCAuYW5pbWF0ZWQtbG9hZGluZy1leWV7YW5pbWF0aW9uOmV5ZS1hbmltYXRpb24tWVRGSUo2MmggLjk2cyBsaW5lYXIgaW5maW5pdGU7dHJhbnNmb3JtLW9yaWdpbjpjZW50ZXJ9LmRpc2FibGVkLVlURklKNjJoOm5vdCguc2VsZWN0ZWQtWVRGSUo2MmgpOm5vdCgud2l0aEFjdGlvbi1ZVEZJSjYyaCkgLmJ1dHRvbnMtWVRGSUo2MmggLmV5ZS1ZVEZJSjYyaCwuZGlzYWJsZWRPbkludGVydmFsLVlURklKNjJoOm5vdCguc2VsZWN0ZWQtWVRGSUo2MmgpOm5vdCgud2l0aEFjdGlvbi1ZVEZJSjYyaCkgLmJ1dHRvbnMtWVRGSUo2MmggLmludGVydmFsRXllLVlURklKNjJoLC5mbGFnZ2VkLVlURklKNjJoOm5vdCguc2VsZWN0ZWQtWVRGSUo2MmgpOm5vdCgud2l0aEFjdGlvbi1ZVEZJSjYyaCkgLmJ1dHRvbnMtWVRGSUo2MmggLmZsYWctWVRGSUo2MmgsLmxpbmtlZC1ZVEZJSjYyaDpub3QoLnNlbGVjdGVkLVlURklKNjJoKTpub3QoLndpdGhBY3Rpb24tWVRGSUo2MmgpIC5idXR0b25zLVlURklKNjJoIC5mbGFnLVlURklKNjJoLC5saW5rZWQtWVRGSUo2Mmg6bm90KC5zZWxlY3RlZC1ZVEZJSjYyaCk6bm90KC53aXRoQWN0aW9uLVlURklKNjJoKSAuYnV0dG9ucy1ZVEZJSjYyaCAubGlua2luZy1ZVEZJSjYyaCwuc2VyaWVzLVlURklKNjJoLmRpc2FibGVkLVlURklKNjJoOm5vdCguc2VsZWN0ZWQtWVRGSUo2MmgpOm5vdCgud2l0aEFjdGlvbi1ZVEZJSjYyaCkgLmJ1dHRvbnMtWVRGSUo2MmggLmZsYWctWVRGSUo2MmgsLnNlcmllcy1ZVEZJSjYyaC5kaXNhYmxlZC1ZVEZJSjYyaDpub3QoLnNlbGVjdGVkLVlURklKNjJoKTpub3QoLndpdGhBY3Rpb24tWVRGSUo2MmgpIC5idXR0b25zLVlURklKNjJoIC5saW5raW5nLVlURklKNjJoe2JhY2tncm91bmQtY29sb3I6Y3VycmVudENvbG9yfS5kaXNhYmxlZC1ZVEZJSjYyaCAuYnV0dG9ucy1ZVEZJSjYyaCAuZXllLVlURklKNjJoLC5kaXNhYmxlZE9uSW50ZXJ2YWwtWVRGSUo2MmggLmJ1dHRvbnMtWVRGSUo2MmggLmludGVydmFsRXllLVlURklKNjJoLC5mbGFnZ2VkLVlURklKNjJoIC5idXR0b25zLVlURklKNjJoIC5mbGFnLVlURklKNjJoLC5saW5rZWQtWVRGSUo2MmggLmJ1dHRvbnMtWVRGSUo2MmggLmZsYWctWVRGSUo2MmgsLmxpbmtlZC1ZVEZJSjYyaCAuYnV0dG9ucy1ZVEZJSjYyaCAubGlua2luZy1ZVEZJSjYyaCwuc2VsZWN0ZWQtWVRGSUo2MmggLmJ1dHRvbnMtWVRGSUo2MmggLmJ1dHRvbi1ZVEZJSjYyaCwuc2VyaWVzLVlURklKNjJoLmRpc2FibGVkLVlURklKNjJoIC5idXR0b25zLVlURklKNjJoIC5mbGFnLVlURklKNjJoLC5zZXJpZXMtWVRGSUo2MmguZGlzYWJsZWQtWVRGSUo2MmggLmJ1dHRvbnMtWVRGSUo2MmggLmxpbmtpbmctWVRGSUo2MmgsLndpdGhBY3Rpb24tWVRGSUo2MmggLmJ1dHRvbnMtWVRGSUo2MmggLmJ1dHRvbi1ZVEZJSjYyaHtkaXNwbGF5OmZsZXg7b3BhY2l0eToxO3BvaW50ZXItZXZlbnRzOmF1dG99LmJ1dHRvbnMtWVRGSUo2MmggLmludGVydmFsRXllLVlURklKNjJoIC5hbmltYXRlZC1sb2FkaW5nLWV5ZSwuYnV0dG9ucy1ZVEZJSjYyaCAuaW50ZXJ2YWxFeWUtWVRGSUo2MmggLmxvYWRpbmctZXllLC5idXR0b25zLVlURklKNjJoIC5pbnRlcnZhbEV5ZS1ZVEZJSjYyaCAubm9ybWFsLWV5ZXtkaXNwbGF5Om5vbmV9LmJ1dHRvbnMtWVRGSUo2MmggLmludGVydmFsRXllLVlURklKNjJoIC5jcm9zc2VkLWV5ZXtjb2xvcjp2YXIoLS1jb2xvci10YW4tb3JhbmdlLTYwMCl9LnNlbGVjdGVkLVlURklKNjJoLnNlcmllcy1ZVEZJSjYyaC5kaXNhYmxlZC1ZVEZJSjYyaCAuZmxhZy1ZVEZJSjYyaCAuYnV0dG9uSWNvbi1ZVEZJSjYyaCwuc2VyaWVzLVlURklKNjJoLmRpc2FibGVkLVlURklKNjJoLmZsYWdnZWQtWVRGSUo2MmggLmZsYWctWVRGSUo2MmggLmJ1dHRvbkljb24tWVRGSUo2MmgsLnNlcmllcy1ZVEZJSjYyaC5kaXNhYmxlZC1ZVEZJSjYyaC5saW5rZWQtWVRGSUo2MmggLmZsYWctWVRGSUo2MmggLmJ1dHRvbkljb24tWVRGSUo2MmgsLnNlcmllcy1ZVEZJSjYyaC5saW5rZWQtWVRGSUo2MmggLmZsYWctWVRGSUo2MmggLmJ1dHRvbkljb24tWVRGSUo2MmgsLndpdGhBY3Rpb24tWVRGSUo2Mmguc2VyaWVzLVlURklKNjJoLmRpc2FibGVkLVlURklKNjJoIC5mbGFnLVlURklKNjJoIC5idXR0b25JY29uLVlURklKNjJoe3Zpc2liaWxpdHk6dmlzaWJsZX0uZmxhZy1ZVEZJSjYyaCAuYnV0dG9uSWNvbi1ZVEZJSjYyaHthbGlnbi1zZWxmOnN0cmV0Y2g7ZmxleDoxfS5mbGFnV3JhcHBlci1ZVEZJSjYyaCwubWFya2VyQ29udGFpbmVyLVlURklKNjJoe2Rpc3BsYXk6ZmxleDtmbGV4OjE7anVzdGlmeS1jb250ZW50OmNlbnRlcn0ubWFya2VyQ29udGFpbmVyLVlURklKNjJoe2FsaWduLWl0ZW1zOnN0cmV0Y2h9LmZsYWdXcmFwcGVyLVlURklKNjJoe3dpZHRoOjEycHh9LmZsYWdXcmFwcGVyLVlURklKNjJoIHN2Z3toZWlnaHQ6MTJweH0uc291cmNlc1dyYXBwZXItWVRGSUo2Mmh7YWxpZ24taXRlbXM6ZmxleC1zdGFydDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uLXJldmVyc2U7bWFyZ2luOjA7cG9zaXRpb246cmVsYXRpdmV9LmxlZ2VuZE1haW5Tb3VyY2VXcmFwcGVyLVlURklKNjJoe3RleHQtYWxpZ246bGVmdH0uc291cmNlcy1ZVEZJSjYyaHtkaXNwbGF5OmZsZXg7ZmxleDoxIDEgYXV0bztmbGV4LWRpcmVjdGlvbjpjb2x1bW47d2lkdGg6MTAwJX0udG9nZ2xlcldyYXBwZXItWVRGSUo2Mmh7YWxpZ24taXRlbXM6Y2VudGVyO2NvbHVtbi1nYXA6OHB4O2Rpc3BsYXk6ZmxleDtwYWRkaW5nLWJsb2NrOjNweCAzcHg7cGFkZGluZy1pbmxpbmU6NXB4IDVweH0udG9nZ2xlcldyYXBwZXItWVRGSUo2MmggLnN0YXR1c2VzV3JhcHBlci1ZVEZJSjYyaHtiYWNrZ3JvdW5kOm5vbmV9LnRvZ2dsZXJXcmFwcGVyLVlURklKNjJoIC5zdGF0dXNlc1dyYXBwZXJfX3N0YXR1c2VzLVlURklKNjJoOm5vdCg6ZW1wdHkpe21hcmdpbi1ibG9jazowIDA7bWFyZ2luLWlubGluZTo4cHggMH0udG9nZ2xlci1ZVEZJSjYyaHthbGlnbi1pdGVtczpjZW50ZXI7ZGlzcGxheTpmbGV4O2ZsZXg6MCAwIGF1dG87cGFkZGluZzowO3BvaW50ZXItZXZlbnRzOmFsbDtwb3NpdGlvbjpyZWxhdGl2ZX0udG9nZ2xlci1ZVEZJSjYyaC5vbmx5T25lU291cmNlU2hvd24tWVRGSUo2Mmh7ZGlzcGxheTpub25lfUBtZWRpYSAoYW55LWhvdmVyOmhvdmVyKXsudG9nZ2xlci1ZVEZJSjYyaDpob3ZlcjphZnRlcnt6LWluZGV4OjB9LnRvZ2dsZXItWVRGSUo2Mmg6aG92ZXIgLmNvdW50ZXItWVRGSUo2MmgsLnRvZ2dsZXItWVRGSUo2Mmg6aG92ZXIgLmljb25BcnJvdy1ZVEZJSjYyaCwudG9nZ2xlci1ZVEZJSjYyaDpob3ZlciAub2JqZWN0VHJlZS1ZVEZJSjYyaHtjb2xvcjp2YXIoLS1jb2xvci1ibGFjayl9fS50b2dnbGVyLVlURklKNjJoIC5jb3VudGVyLVlURklKNjJoe2NvbG9yOmluaGVyaXQ7ZGlzcGxheTpub25lO2ZvbnQtc2l6ZToxM3B4O2xpbmUtaGVpZ2h0OjE2cHg7cGFkZGluZy1yaWdodDo0cHh9LnRvZ2dsZXItWVRGSUo2MmggLmljb25BcnJvdy1ZVEZJSjYyaHtkaXNwbGF5OmZsZXg7dHJhbnNmb3JtOnJvdGF0ZSgtMTgwZGVnKTt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuMXMgY3ViaWMtYmV6aWVyKC4wNiwuNTIsMSwuNTQpO3dpZHRoOjI3cHh9LnRvZ2dsZXItWVRGSUo2MmggLm9iamVjdFRyZWUtWVRGSUo2Mmh7ZGlzcGxheTpub25lO3dpZHRoOjE5cHh9LnRvZ2dsZXItWVRGSUo2MmggLmljb25BcnJvdy1ZVEZJSjYyaCwudG9nZ2xlci1ZVEZJSjYyaCAub2JqZWN0VHJlZS1ZVEZJSjYyaHthbGlnbi1pdGVtczpjZW50ZXI7aGVpZ2h0OjE5cHg7anVzdGlmeS1jb250ZW50OmNlbnRlcn0udG9nZ2xlci1ZVEZJSjYyaCAuY291bnRlci1ZVEZJSjYyaCwudG9nZ2xlci1ZVEZJSjYyaCAuaWNvbkFycm93LVlURklKNjJoLC50b2dnbGVyLVlURklKNjJoIC5vYmplY3RUcmVlLVlURklKNjJoe2NvbG9yOnZhcigtLWNvbG9yLWNvbGQtZ3JheS05MDApO3Bvc2l0aW9uOnJlbGF0aXZlO3otaW5kZXg6MX0uY2xvc2VkLVlURklKNjJoLnNvdXJjZXNXcmFwcGVyLVlURklKNjJoe3BhZGRpbmctYm90dG9tOjRweH0uY2xvc2VkLVlURklKNjJoIC50b2dnbGVyLVlURklKNjJoIC5jb3VudGVyLVlURklKNjJoe2Rpc3BsYXk6ZmxleH0uY2xvc2VkLVlURklKNjJoIC50b2dnbGVyLVlURklKNjJoIC5pY29uQXJyb3ctWVRGSUo2Mmh7dHJhbnNmb3JtOnJvdGF0ZSgwKX0uY2xvc2VkLVlURklKNjJoOm5vdCguc2F2ZUFycm93V2lkdGgtWVRGSUo2MmgpIC5pY29uQXJyb3ctWVRGSUo2MmgsLmNsb3NlZC1ZVEZJSjYyaDpub3QoLnNhdmVBcnJvd1dpZHRoLVlURklKNjJoKSAub2JqZWN0VHJlZS1ZVEZJSjYyaHt3aWR0aDoxOXB4fS5jbG9zZWQtWVRGSUo2MmggLnNvdXJjZXMtWVRGSUo2Mmh7ZGlzcGxheTpub25lfS5taWNyby1ZVEZJSjYyaCAuc291cmNlc1dyYXBwZXItWVRGSUo2Mmh7cGFkZGluZy1ib3R0b206NHB4fS5taWNyby1ZVEZJSjYyaCAudG9nZ2xlci1ZVEZJSjYyaC5vYmplY3RzVHJlZUNhbkJlU2hvd24tWVRGSUo2MmggLm9iamVjdFRyZWUtWVRGSUo2MmgsLm1pY3JvLVlURklKNjJoIC50b2dnbGVyLVlURklKNjJoLm9iamVjdHNUcmVlQ2FuQmVTaG93bi1ZVEZJSjYyaC5vbmx5T25lU291cmNlU2hvd24tWVRGSUo2Mmh7ZGlzcGxheTpmbGV4fS5taWNyby1ZVEZJSjYyaCAuY2xvc2VkLVlURklKNjJoIC50b2dnbGVyLVlURklKNjJoIC5jb3VudGVyLVlURklKNjJoLC5taWNyby1ZVEZJSjYyaCAuY2xvc2VkLVlURklKNjJoIC50b2dnbGVyLVlURklKNjJoIC5pY29uQXJyb3ctWVRGSUo2MmgsLm1pY3JvLVlURklKNjJoIC5zZXJpZXMtWVRGSUo2MmggLnZhbHVlc1dyYXBwZXItWVRGSUo2MmgsLm1pY3JvLVlURklKNjJoIC5zb3VyY2VzLVlURklKNjJoLC5taWNyby1ZVEZJSjYyaCAudG9nZ2xlci1ZVEZJSjYyaCAuY291bnRlci1ZVEZJSjYyaCwubWljcm8tWVRGSUo2MmggLnRvZ2dsZXItWVRGSUo2MmggLmljb25BcnJvdy1ZVEZJSjYyaCwubWljcm8tWVRGSUo2MmggLnRvZ2dsZXJXcmFwcGVyLVlURklKNjJoIC5zdGF0dXNlc1dyYXBwZXItWVRGSUo2Mmh7ZGlzcGxheTpub25lfS50b3VjaE1vZGUtWVRGSUo2MmggLnRpdGxlc1dyYXBwZXItWVRGSUo2Mmh7aGVpZ2h0OjI2cHg7bGluZS1oZWlnaHQ6MjVweH0udG91Y2hNb2RlLVlURklKNjJoIC5zZWxlY3RlZC1ZVEZJSjYyaCAudGl0bGVzV3JhcHBlci1ZVEZJSjYyaDphZnRlciwudG91Y2hNb2RlLVlURklKNjJoIC53aXRoQWN0aW9uLVlURklKNjJoIC50aXRsZXNXcmFwcGVyLVlURklKNjJoOmFmdGVye2JvdHRvbTo1cHg7dG9wOjVweH0udG91Y2hNb2RlLVlURklKNjJoIC5zZXJpZXMtWVRGSUo2MmggLnRpdGxlc1dyYXBwZXItWVRGSUo2Mmh7bWluLWhlaWdodDoyNnB4fS50b3VjaE1vZGUtWVRGSUo2MmggLnRvZ2dsZXItWVRGSUo2MmggLmljb25BcnJvdy1ZVEZJSjYyaCwudG91Y2hNb2RlLVlURklKNjJoIC50b2dnbGVyLVlURklKNjJoIC5vYmplY3RUcmVlLVlURklKNjJoe2hlaWdodDoyNHB4O3dpZHRoOjMwcHh9LnRvdWNoTW9kZS1ZVEZJSjYyaCAudG9nZ2xlci1ZVEZJSjYyaCAuY291bnRlci1ZVEZJSjYyaHtmb250LXNpemU6MTRweH0udG91Y2hNb2RlLVlURklKNjJoIC5pdGVtLVlURklKNjJoe21pbi1oZWlnaHQ6MjZweH0udG91Y2hNb2RlLVlURklKNjJoIC5jbG9zZWQtWVRGSUo2MmggLnRvZ2dsZXItWVRGSUo2MmggLm9iamVjdFRyZWUtWVRGSUo2Mmh7d2lkdGg6MjRweH0uY2hhcnQtd2lkZ2V0X190b3AtLXRoZW1lZC1kYXJrey0tbGVnZW5kLXRpdGxlLWRvdC1jb2xvcjp2YXIoLS1jb2xvci1jb2xkLWdyYXktMjAwKX0uY2hhcnQtd2lkZ2V0X190b3AtLXRoZW1lZC1kYXJrIC5pdGVtLVlURklKNjJoLmxhc3QtWVRGSUo2MmggLnRleHQtWVRGSUo2MmgsLmNoYXJ0LXdpZGdldF9fdG9wLS10aGVtZWQtZGFyayAubm9XcmFwLVlURklKNjJoIC52YWx1ZXNBZGRpdGlvbmFsV3JhcHBlci1ZVEZJSjYyaCwuY2hhcnQtd2lkZ2V0X190b3AtLXRoZW1lZC1kYXJrIC50aXRsZVdyYXBwZXItWVRGSUo2MmgsLmNoYXJ0LXdpZGdldF9fdG9wLS10aGVtZWQtZGFyayAudmFsdWVUaXRsZS1ZVEZJSjYyaCwuY2hhcnQtd2lkZ2V0X190b3AtLXRoZW1lZC1kYXJrIC52YWx1ZVZhbHVlLVlURklKNjJoe2NvbG9yOnZhcigtLWNvbG9yLWNvbGQtZ3JheS0yMDApfS5jaGFydC13aWRnZXRfX3RvcC0tdGhlbWVkLWRhcmsgLnRpdGxlV3JhcHBlci1ZVEZJSjYyaC53aXRoQWN0aW9uLVlURklKNjJoOmFmdGVye2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItY29sZC1ncmF5LTgwMCl9LmNoYXJ0LXdpZGdldF9fdG9wLS10aGVtZWQtZGFyayAudGl0bGVXcmFwcGVyLVlURklKNjJoOmFjdGl2ZS53aXRoQWN0aW9uLVlURklKNjJoOmFmdGVyLC5jaGFydC13aWRnZXRfX3RvcC0tdGhlbWVkLWRhcmsgLnRpdGxlV3JhcHBlcl9fYWN0aXZlLVlURklKNjJoLndpdGhBY3Rpb24tWVRGSUo2Mmg6YWZ0ZXJ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1jb2xkLWdyYXktNzUwKX0uY2hhcnQtd2lkZ2V0X190b3AtLXRoZW1lZC1kYXJrIC5kaXNhYmxlZC1ZVEZJSjYyaCAudGl0bGVXcmFwcGVyLVlURklKNjJoLC5jaGFydC13aWRnZXRfX3RvcC0tdGhlbWVkLWRhcmsgLmRpc2FibGVkLVlURklKNjJoIC52YWx1ZVRpdGxlLVlURklKNjJoLC5jaGFydC13aWRnZXRfX3RvcC0tdGhlbWVkLWRhcmsgLmRpc2FibGVkLVlURklKNjJoIC52YWx1ZVZhbHVlLVlURklKNjJoLC5jaGFydC13aWRnZXRfX3RvcC0tdGhlbWVkLWRhcmsgLmRpc2FibGVkT25JbnRlcnZhbC1ZVEZJSjYyaCAudGl0bGVXcmFwcGVyLVlURklKNjJoLC5jaGFydC13aWRnZXRfX3RvcC0tdGhlbWVkLWRhcmsgLmRpc2FibGVkT25JbnRlcnZhbC1ZVEZJSjYyaCAudmFsdWVUaXRsZS1ZVEZJSjYyaCwuY2hhcnQtd2lkZ2V0X190b3AtLXRoZW1lZC1kYXJrIC5kaXNhYmxlZE9uSW50ZXJ2YWwtWVRGSUo2MmggLnZhbHVlVmFsdWUtWVRGSUo2Mmh7Y29sb3I6dmFyKC0tY29sb3ItY29sZC1ncmF5LTY1MCl9LmNoYXJ0LXdpZGdldF9fdG9wLS10aGVtZWQtZGFyayAuZGlzYWJsZWQtWVRGSUo2MmggLnRpdGxlV3JhcHBlci1ZVEZJSjYyaC53aXRoRG90LVlURklKNjJoOm5vdCg6Zmlyc3QtY2hpbGQpOmJlZm9yZSwuY2hhcnQtd2lkZ2V0X190b3AtLXRoZW1lZC1kYXJrIC5kaXNhYmxlZC1ZVEZJSjYyaC53aXRoQ3VzdG9tVGV4dENvbG9yLVlURklKNjJoIC50aXRsZVdyYXBwZXItWVRGSUo2MmgsLmNoYXJ0LXdpZGdldF9fdG9wLS10aGVtZWQtZGFyayAuZGlzYWJsZWQtWVRGSUo2Mmgud2l0aEN1c3RvbVRleHRDb2xvci1ZVEZJSjYyaCAudmFsdWVUaXRsZS1ZVEZJSjYyaCwuY2hhcnQtd2lkZ2V0X190b3AtLXRoZW1lZC1kYXJrIC5kaXNhYmxlZC1ZVEZJSjYyaC53aXRoQ3VzdG9tVGV4dENvbG9yLVlURklKNjJoIC52YWx1ZVZhbHVlLVlURklKNjJoLC5jaGFydC13aWRnZXRfX3RvcC0tdGhlbWVkLWRhcmsgLmRpc2FibGVkT25JbnRlcnZhbC1ZVEZJSjYyaCAudGl0bGVXcmFwcGVyLVlURklKNjJoLndpdGhEb3QtWVRGSUo2Mmg6bm90KDpmaXJzdC1jaGlsZCk6YmVmb3JlLC5jaGFydC13aWRnZXRfX3RvcC0tdGhlbWVkLWRhcmsgLmRpc2FibGVkT25JbnRlcnZhbC1ZVEZJSjYyaC53aXRoQ3VzdG9tVGV4dENvbG9yLVlURklKNjJoIC50aXRsZVdyYXBwZXItWVRGSUo2MmgsLmNoYXJ0LXdpZGdldF9fdG9wLS10aGVtZWQtZGFyayAuZGlzYWJsZWRPbkludGVydmFsLVlURklKNjJoLndpdGhDdXN0b21UZXh0Q29sb3ItWVRGSUo2MmggLnZhbHVlVGl0bGUtWVRGSUo2MmgsLmNoYXJ0LXdpZGdldF9fdG9wLS10aGVtZWQtZGFyayAuZGlzYWJsZWRPbkludGVydmFsLVlURklKNjJoLndpdGhDdXN0b21UZXh0Q29sb3ItWVRGSUo2MmggLnZhbHVlVmFsdWUtWVRGSUo2Mmh7Y29sb3I6dmFyKC0tY29sb3ItY29sZC1ncmF5LTY1MCkhaW1wb3J0YW50fS5jaGFydC13aWRnZXRfX3RvcC0tdGhlbWVkLWRhcmsgLnN0dWR5LVlURklKNjJoIC50aXRsZVdyYXBwZXItWVRGSUo2MmguaW5wdXRUaXRsZS1ZVEZJSjYyaHtjb2xvcjp2YXIoLS1jb2xvci1jb2xkLWdyYXktNDUwKX0uY2hhcnQtd2lkZ2V0X190b3AtLXRoZW1lZC1kYXJrIC5zdHVkeS1ZVEZJSjYyaC5kaXNhYmxlZC1ZVEZJSjYyaCAudGl0bGVXcmFwcGVyLVlURklKNjJoLmlucHV0VGl0bGUtWVRGSUo2MmgsLmNoYXJ0LXdpZGdldF9fdG9wLS10aGVtZWQtZGFyayAuc3R1ZHktWVRGSUo2MmguZGlzYWJsZWRPbkludGVydmFsLVlURklKNjJoIC50aXRsZVdyYXBwZXItWVRGSUo2MmguaW5wdXRUaXRsZS1ZVEZJSjYyaHtjb2xvcjp2YXIoLS1jb2xvci1jb2xkLWdyYXktNjUwKX0uY2hhcnQtd2lkZ2V0X190b3AtLXRoZW1lZC1kYXJrIC5zdHVkeS1ZVEZJSjYyaC53aXRoQ3VzdG9tVGV4dENvbG9yLVlURklKNjJoLmRpc2FibGVkLVlURklKNjJoIC50aXRsZVdyYXBwZXItWVRGSUo2MmguaW5wdXRUaXRsZS1ZVEZJSjYyaCwuY2hhcnQtd2lkZ2V0X190b3AtLXRoZW1lZC1kYXJrIC5zdHVkeS1ZVEZJSjYyaC53aXRoQ3VzdG9tVGV4dENvbG9yLVlURklKNjJoLmRpc2FibGVkT25JbnRlcnZhbC1ZVEZJSjYyaCAudGl0bGVXcmFwcGVyLVlURklKNjJoLmlucHV0VGl0bGUtWVRGSUo2Mmh7Y29sb3I6dmFyKC0tY29sb3ItY29sZC1ncmF5LTY1MCkhaW1wb3J0YW50fS5jaGFydC13aWRnZXRfX3RvcC0tdGhlbWVkLWRhcmsgLmJ1dHRvbkljb24tWVRGSUo2MmgsLmNoYXJ0LXdpZGdldF9fdG9wLS10aGVtZWQtZGFyayAuc2VyaWVzLVlURklKNjJoIC52YWx1ZUl0ZW0tWVRGSUo2MmggLnZhbHVlVGl0bGUtWVRGSUo2Mmh7Y29sb3I6dmFyKC0tY29sb3ItY29sZC1ncmF5LTIwMCl9QG1lZGlhIChhbnktaG92ZXI6aG92ZXIpey5jaGFydC13aWRnZXRfX3RvcC0tdGhlbWVkLWRhcmsgLmJ1dHRvbi1ZVEZJSjYyaDpob3ZlcjphZnRlcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLWNvbGQtZ3JheS04MDApfX0uY2hhcnQtd2lkZ2V0X190b3AtLXRoZW1lZC1kYXJrIC5idXR0b24tWVRGSUo2Mmg6YWN0aXZlOmFmdGVyLC5jaGFydC13aWRnZXRfX3RvcC0tdGhlbWVkLWRhcmsgLmJ1dHRvbl9fYWN0aXZlLVlURklKNjJoOmFmdGVye2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItY29sZC1ncmF5LTc1MCl9LmNoYXJ0LXdpZGdldF9fdG9wLS10aGVtZWQtZGFyayAud2l0aEFjdGlvbi1ZVEZJSjYyaCAuYnV0dG9ucy1ZVEZJSjYyaCwuY2hhcnQtd2lkZ2V0X190b3AtLXRoZW1lZC1kYXJrIC53aXRoQWN0aW9uLVlURklKNjJoIC5idXR0b25zLVlURklKNjJoIC5idXR0b24tWVRGSUo2Mmg6bm90KDpmaXJzdC1jaGlsZCksLmNoYXJ0LXdpZGdldF9fdG9wLS10aGVtZWQtZGFyayAud2l0aEFjdGlvbi1ZVEZJSjYyaCAudGl0bGVzV3JhcHBlci1ZVEZJSjYyaHtib3JkZXItY29sb3I6dmFyKC0tY29sb3ItY29sZC1ncmF5LTc1MCl9LmNoYXJ0LXdpZGdldF9fdG9wLS10aGVtZWQtZGFyayAuc2VsZWN0ZWQtWVRGSUo2MmggLnRpdGxlc1dyYXBwZXItWVRGSUo2Mmg6YWZ0ZXIsLmNoYXJ0LXdpZGdldF9fdG9wLS10aGVtZWQtZGFyayAud2l0aEFjdGlvbi1ZVEZJSjYyaCAudGl0bGVzV3JhcHBlci1ZVEZJSjYyaDphZnRlcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLWNvbGQtZ3JheS03NTApfS5jaGFydC13aWRnZXRfX3RvcC0tdGhlbWVkLWRhcmsgLnNlbGVjdGVkLVlURklKNjJoIC5idXR0b25zLVlURklKNjJoLC5jaGFydC13aWRnZXRfX3RvcC0tdGhlbWVkLWRhcmsgLnNlbGVjdGVkLVlURklKNjJoIC50aXRsZXNXcmFwcGVyLVlURklKNjJoLC5jaGFydC13aWRnZXRfX3RvcC0tdGhlbWVkLWRhcmsgLndpdGhBY3Rpb24tWVRGSUo2MmggLmJ1dHRvbnMtWVRGSUo2MmgsLmNoYXJ0LXdpZGdldF9fdG9wLS10aGVtZWQtZGFyayAud2l0aEFjdGlvbi1ZVEZJSjYyaCAudGl0bGVzV3JhcHBlci1ZVEZJSjYyaHtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLWNvbGQtZ3JheS05MDApfS5jaGFydC13aWRnZXRfX3RvcC0tdGhlbWVkLWRhcmsgLnNlbGVjdGVkLVlURklKNjJoIC5idXR0b25zLVlURklKNjJoLC5jaGFydC13aWRnZXRfX3RvcC0tdGhlbWVkLWRhcmsgLnNlbGVjdGVkLVlURklKNjJoIC5idXR0b25zLVlURklKNjJoIC5idXR0b24tWVRGSUo2Mmg6bm90KDpmaXJzdC1jaGlsZCksLmNoYXJ0LXdpZGdldF9fdG9wLS10aGVtZWQtZGFyayAuc2VsZWN0ZWQtWVRGSUo2MmggLmJ1dHRvbnNXcmFwcGVyLVlURklKNjJoLC5jaGFydC13aWRnZXRfX3RvcC0tdGhlbWVkLWRhcmsgLnNlbGVjdGVkLVlURklKNjJoIC50aXRsZXNXcmFwcGVyLVlURklKNjJoe2JvcmRlci1jb2xvcjp2YXIoLS1jb2xvci10di1ibHVlLTcwMCl9LmNoYXJ0LXdpZGdldF9fdG9wLS10aGVtZWQtZGFyayAudG9nZ2xlci1ZVEZJSjYyaHtib3JkZXItY29sb3I6dmFyKC0tY29sb3ItY29sZC1ncmF5LTc1MCl9QG1lZGlhIChhbnktaG92ZXI6aG92ZXIpey5jaGFydC13aWRnZXRfX3RvcC0tdGhlbWVkLWRhcmsgLnRvZ2dsZXItWVRGSUo2Mmg6aG92ZXI6YWZ0ZXJ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1vdmVybGF5LW5ldXRyYWwtMS1saWdodCl9LmNoYXJ0LXdpZGdldF9fdG9wLS10aGVtZWQtZGFyayAudG9nZ2xlci1ZVEZJSjYyaDpob3ZlciAuY291bnRlci1ZVEZJSjYyaCwuY2hhcnQtd2lkZ2V0X190b3AtLXRoZW1lZC1kYXJrIC50b2dnbGVyLVlURklKNjJoOmhvdmVyIC5pY29uQXJyb3ctWVRGSUo2MmgsLmNoYXJ0LXdpZGdldF9fdG9wLS10aGVtZWQtZGFyayAudG9nZ2xlci1ZVEZJSjYyaDpob3ZlciAub2JqZWN0VHJlZS1ZVEZJSjYyaHtjb2xvcjp2YXIoLS1jb2xvci1jb2xkLWdyYXktMTAwKX19LmNoYXJ0LXdpZGdldF9fdG9wLS10aGVtZWQtZGFyayAudG9nZ2xlci1ZVEZJSjYyaCAuY291bnRlci1ZVEZJSjYyaCwuY2hhcnQtd2lkZ2V0X190b3AtLXRoZW1lZC1kYXJrIC50b2dnbGVyLVlURklKNjJoIC5pY29uQXJyb3ctWVRGSUo2MmgsLmNoYXJ0LXdpZGdldF9fdG9wLS10aGVtZWQtZGFyayAudG9nZ2xlci1ZVEZJSjYyaCAub2JqZWN0VHJlZS1ZVEZJSjYyaHtjb2xvcjp2YXIoLS1jb2xvci1jb2xkLWdyYXktMjAwKX1Aa2V5ZnJhbWVzIGV5ZS1hbmltYXRpb24tWVRGSUo2Mmh7dG97dHJhbnNmb3JtOnJvdGF0ZSgxdHVybil9fTpyb290LnRoZW1lLWN1c3RvbSAudGl0bGVXcmFwcGVyLVlURklKNjJoLndpdGhBY3Rpb24tWVRGSUo2Mmg6YWZ0ZXJ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS10aGVtZWQtY29sb3ItbGVnZW5kLWJhY2tncm91bmQtdGVydGlhcnkpfTpyb290LnRoZW1lLWN1c3RvbSAuc2VsZWN0ZWQtWVRGSUo2MmggLmJ1dHRvbnMtWVRGSUo2MmgsOnJvb3QudGhlbWUtY3VzdG9tIC5zZWxlY3RlZC1ZVEZJSjYyaCAudGl0bGVzV3JhcHBlci1ZVEZJSjYyaCw6cm9vdC50aGVtZS1jdXN0b20gLndpdGhBY3Rpb24tWVRGSUo2MmggLmJ1dHRvbnMtWVRGSUo2MmgsOnJvb3QudGhlbWUtY3VzdG9tIC53aXRoQWN0aW9uLVlURklKNjJoIC50aXRsZXNXcmFwcGVyLVlURklKNjJoe2JhY2tncm91bmQtY29sb3I6dmFyKC0tdGhlbWVkLWNvbG9yLWxlZ2VuZC1iYWNrZ3JvdW5kLXNlY29uZGFyeS1pbnZlcnNlKX1AbWVkaWEgKGFueS1ob3Zlcjpob3Zlcil7OnJvb3QudGhlbWUtY3VzdG9tIC5idXR0b24tWVRGSUo2Mmg6aG92ZXI6YWZ0ZXJ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS10aGVtZWQtY29sb3ItbGVnZW5kLWJhY2tncm91bmQtdGVydGlhcnkpfX0ubGVnZW5kQWN0aW9uQnV0dG9uLXEzTzZ6eklIe2FsaWduLWl0ZW1zOmNlbnRlcjtkaXNwbGF5OmZsZXg7aGVpZ2h0OjEwMCU7anVzdGlmeS1jb250ZW50OmNlbnRlcjt3aWR0aDoxMDAlfQ=="}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/7927.f73b29669ed3c3edc3db.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.004Z","timestamp":1785148034004,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/7927.f73b29669ed3c3edc3db.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\ncontent-type: text/css; charset=utf-8\r\ncontent-length: 79\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\netag: \"6a323ca6-4f\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Wed, 17 Jun 2026 06:20:22 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.57\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 06/17/2026 11:15:56\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 14b935fbb509d0562b64e1db242b0bcd\r\ncdn-cache: HIT\r\naccept-ranges: bytes\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":79,"size_decoded":863,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with no line terminators","md5":"0d6a91ba88920f332ce9b8555beb1909","sha1":"966c69336ed4f5fb20ed666aeae8a5a4b31f13de","sha256":"f8401e823093cc844366a92811d2ded2850c0ef30bb54db7ceab81d8d3cd1f41","sha512":"48a4f4f4a5d0892c16867b02a628802df15866d09a4d75a0e69e34863037d16584613fc1cdeace4d0ee9cbdc7c6397632b6ff4d3a2ee95a0cf73f2e11df01a92","ssdeep":"","tlshash":"50a0129011020718b601d85c08741203cc81c850c50a90090009021bc4df10201b4754","first_seen":"2026-06-23T07:56:48.270189Z","last_seen":"2026-07-27T12:07:26.344956Z","times_seen":48,"resource_available":false,"data":"Lmljb25Db250YWluZXItbVJRUDhFUF97YWxpZ24taXRlbXM6Y2VudGVyO2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyfQ=="}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/35073.b85632eaa22cf19e7cd2.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.008Z","timestamp":1785148034008,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/35073.b85632eaa22cf19e7cd2.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\ncontent-type: text/css; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a61b1a8-550\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Thu, 23 Jul 2026 06:16:08 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/23/2026 10:17:27\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: fa2cc60ab3c518f493ca8943e5d07e38\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":1360,"size_decoded":1350,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with very long lines (1360), with no line terminators","md5":"a63450800550d47af3215876f33966b2","sha1":"d4beaefff69c30fa0cd065edb9e71ffc853cffb4","sha256":"8f13f0ec64a2f2cb39535be3a9160c26e9515faa06d34cc43d3683b82c12c144","sha512":"e6f58ffda5c1e95294cbaf66fbbdbc3a944d8ca6a752abe81a22e14dbb3135534fd57f18f48f5071ec2248475a1a0c873a46ae26dacd8e6d2b8726cc3734d44d","ssdeep":"","tlshash":"11211112925a3213aafba320234497c93b347a3348b3671eed01b46985cbfec2344d46","first_seen":"2026-07-25T03:24:57.192438Z","last_seen":"2026-07-27T12:07:26.390564Z","times_seen":19,"resource_available":false,"data":"W2RhdGEtdGhlbWU9bGlnaHRdey0tXzAtWHR4ajp2YXIoLS1jb2xvci1jb2xkLWdyYXktNDAwKX1bZGF0YS10aGVtZT1kYXJrXXstLV8wLVh0eGo6dmFyKC0tY29sb3ItY29sZC1ncmF5LTY1MCl9LnJvdy1fQ3duWWxGX3t2ZXJ0aWNhbC1hbGlnbjp0b3B9LmxpbmUtX0N3bllsRl97YmFja2dyb3VuZC1jb2xvcjp2YXIoLS10di1jb2xvci1wb3B1cC1lbGVtZW50LWRpdmlkZXItYmFja2dyb3VuZCx2YXIoLS1jb2xvci1wb3B1cC1tZW51LXNlcGFyYXRvcikpO2hlaWdodDoxcHg7bWFyZ2luOjZweCAwfS5oaW50LV9Dd25ZbEZfe2NvbG9yOnZhcigtLV8wLVh0eGopO2ZvbnQtc2l6ZToxMnB4O21hcmdpbi1pbmxpbmUtc3RhcnQ6NnB4O21hcmdpbi10b3A6MTJweDt0ZXh0LWFsaWduOnN0YXJ0fS5sb2FkZXJXcmFwLU8xNlh2NFQye2hlaWdodDozMnB4O21hcmdpbi1pbmxpbmUtc3RhcnQ6LTJweDtwb3NpdGlvbjpyZWxhdGl2ZX0ubG9hZGVyV3JhcC1PMTZYdjRUMi5iaWctTzE2WHY0VDJ7bWluLXdpZHRoOjEwMHB4fS5sb2FkZXJXcmFwLU8xNlh2NFQyLmJpZy1PMTZYdjRUMiAubG9hZGVyLU8xNlh2NFQye3Bvc2l0aW9uOmFic29sdXRlfS5sb2FkZXItTzE2WHY0VDJ7cG9zaXRpb246c3RhdGljfS5hY2Nlc3NpYmxlLWljQ2pGVHEye291dGxpbmU6bm9uZTtvdmVyZmxvdzp2aXNpYmxlO3Bvc2l0aW9uOnJlbGF0aXZlfS5hY2Nlc3NpYmxlLWljQ2pGVHEyOmZvY3Vze291dGxpbmU6bm9uZX0uYWNjZXNzaWJsZS1pY0NqRlRxMjpmb2N1cy12aXNpYmxle291dGxpbmU6bm9uZX0uYWNjZXNzaWJsZS1pY0NqRlRxMjphZnRlcntib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLXdpZHRoOjJweDtib3gtc2l6aW5nOmJvcmRlci1ib3g7Y29udGVudDoiIjtkaXNwbGF5Om5vbmU7aGVpZ2h0OjEwMCU7aW5zZXQtaW5saW5lLXN0YXJ0OjA7cG9pbnRlci1ldmVudHM6bm9uZTtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDt3aWR0aDoxMDAlO3otaW5kZXg6MX0uYWNjZXNzaWJsZS1pY0NqRlRxMjpmb2N1czphZnRlcntkaXNwbGF5OmJsb2NrfS5hY2Nlc3NpYmxlLWljQ2pGVHEyOmZvY3VzLXZpc2libGU6YWZ0ZXJ7ZGlzcGxheTpibG9ja30uYWNjZXNzaWJsZS1pY0NqRlRxMjpmb2N1czpub3QoOmZvY3VzLXZpc2libGUpOmFmdGVye2Rpc3BsYXk6bm9uZX0uYWNjZXNzaWJsZS1pY0NqRlRxMjphZnRlcntib3JkZXItY29sb3I6dmFyKC0tY29sb3ItdHYtYmx1ZS01MDApO2JvcmRlci1yYWRpdXM6NnB4fS5tZW51LW9xd0g4ODVNe2JvcmRlci1jb2xsYXBzZTpjb2xsYXBzZTtjdXJzb3I6ZGVmYXVsdDtvdmVyZmxvdzp2aXNpYmxlOy13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTt1c2VyLXNlbGVjdDpub25lO3otaW5kZXg6NTAwfQ=="}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/35399.5e6d14919ee0c86f69b0.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.013Z","timestamp":1785148034013,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/35399.5e6d14919ee0c86f69b0.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\ncontent-type: text/css; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a608293-2ecd\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Wed, 22 Jul 2026 08:42:59 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/22/2026 11:01:40\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: d8a5dae1e0eaa32ec47edb3530c04d53\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":11981,"size_decoded":3963,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with very long lines (11981), with no line terminators","md5":"9351a8b20f33b98bcbf08b0118e02971","sha1":"36b7040095991e224cc96a548f60d3b8f86d3bc7","sha256":"346c45a6620319a83e8ee408288048f3139f8ab1a6440c57b570a87847c870e9","sha512":"721b5cfc673391922794d4c33e27007312c71066af7fbcb873b6edcd4ed1e7afb72fd6b049726b52fd19438579574437d74fc05b729c65c4753b4e4e28f26bbb","ssdeep":"192:v3WYS7hF2l5VFnturuIT1TpCqk5vmyblxHQV9g1xan:sAG","tlshash":"ef326448e391523d29378238c7d193bca209f4a3d6362eeebd26f2440dc57e6d376949","first_seen":"2026-07-25T03:24:57.328856Z","last_seen":"2026-07-27T12:07:26.523988Z","times_seen":19,"resource_available":false,"data":"Lml0ZW0tbWhmNTRWY217cGFkZGluZy1pbmxpbmUtZW5kOjEycHg7cGFkZGluZy1pbmxpbmUtc3RhcnQ6MTNweH0uaXRlbS1taGY1NFZjbS53aXRoSWNvbi1taGY1NFZjbXtwYWRkaW5nLWJvdHRvbToycHg7cGFkZGluZy10b3A6MnB4fS5pY29uLW1oZjU0VmNte21hcmdpbi1pbmxpbmUtZW5kOjExcHh9LmxhYmVsUm93LW1oZjU0VmNtOmxhc3QtY2hpbGR7cGFkZGluZy1pbmxpbmUtZW5kOjJweH0ubXVsdGlXaWR0aC1taGY1NFZjbXtwYWRkaW5nOjVweH0uYnV0dG9uV3JhcC1taGY1NFZjbXthbGlnbi1pdGVtczpjZW50ZXI7ZGlzcGxheTpmbGV4O3BhZGRpbmctYmxvY2s6MTFweCAxMXB4O3BhZGRpbmctaW5saW5lOjEwcHggMTFweH0uYnV0dG9uTGFiZWwtbWhmNTRWY217bWFyZ2luLWlubGluZS1zdGFydDo3cHh9W2RhdGEtdGhlbWU9bGlnaHRdey0tXzAtZEVXVzp2YXIoLS1jb2xvci1jb2xkLWdyYXktMjAwKTstLV8xLWRFV1c6dmFyKC0tY29sb3Itd2hpdGUpfVtkYXRhLXRoZW1lPWRhcmtdey0tXzAtZEVXVzojMDAwMDstLV8xLWRFV1c6dmFyKC0tY29sb3ItYmxhY2spfS53cmFwLUc1aWVJMUlKe2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtoZWlnaHQ6MzhweDt3aWR0aDozOHB4fS5pY29uLUc1aWVJMUlKLC53cmFwLUc1aWVJMUlKe2FsaWduLWl0ZW1zOmNlbnRlcjtkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OmNlbnRlcn0uaWNvbi1HNWllSTFJSntoZWlnaHQ6MTZweDt3aWR0aDoxNnB4fS5jb2xvckJnLUc1aWVJMUlKe2JhY2tncm91bmQtY29sb3I6dmFyKC0tXzEtZEVXVyk7YmFja2dyb3VuZC1pbWFnZTp1cmwob3BhY2l0eS1wYXR0ZXJuLjRkOGZiYjU1MmRkZTNkYjI2ZjRhLnN2Zyk7YmFja2dyb3VuZC1zaXplOjRweDttYXJnaW4tdG9wOjRweH0uY29sb3ItRzVpZUkxSUosLmNvbG9yQmctRzVpZUkxSUp7Ym9yZGVyLXJhZGl1czoycHg7aGVpZ2h0OjRweDt3aWR0aDoyMnB4fS5jb2xvci1HNWllSTFJSi5tdWx0aWNvbG9yLUc1aWVJMUlKe2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDI3MGRlZywjZmYyZTAwLCNmZmU2MDAgMjcuMjclLCM2MWZmMDAgNTAlLCMwMGMyZmYgNzIuNDQlLCM4ZjAwZmYpfS5jb2xvci1HNWllSTFJSi5tdWx0aWNvbG9yLUc1aWVJMUlKOmRpcihydGwpe2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KC0yNzBkZWcsI2ZmMmUwMCwjZmZlNjAwIDI3LjI3JSwjNjFmZjAwIDUwJSwjMDBjMmZmIDcyLjQ0JSwjOGYwMGZmKX0uY29sb3ItRzVpZUkxSUoud2hpdGUtRzVpZUkxSUp7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1fMC1kRVdXKTtoZWlnaHQ6MnB4O3dpZHRoOjIwcHh9W2RhdGEtdGhlbWU9bGlnaHRdey0tXzAtVDlJRzp2YXIoLS1jb2xvci1jb2xkLWdyYXktMzAwKX1bZGF0YS10aGVtZT1kYXJrXXstLV8wLVQ5SUc6dmFyKC0tY29sb3ItY29sZC1ncmF5LTY1MCl9LmZsb2F0aW5nLXRvb2xiYXItcmVhY3Qtd2lkZ2V0c3tkaXNwbGF5OmlubGluZS1mbGV4fS5mbG9hdGluZy10b29sYmFyLXJlYWN0LXdpZGdldHNfX2J1dHRvbnthbGlnbi1pdGVtczpjZW50ZXI7ZGlzcGxheTpmbGV4O2hlaWdodDozOHB4O2p1c3RpZnktY29udGVudDpjZW50ZXI7bWluLXdpZHRoOjM4cHh9LnR2LWZsb2F0aW5nLXRvb2xiYXJ7YWxpZ24taXRlbXM6c3RyZXRjaDtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXR2LWNvbG9yLXBvcHVwLWJhY2tncm91bmQsdmFyKC0tY29sb3ItcG9wdXAtYmFja2dyb3VuZCkpO2JvcmRlci1yYWRpdXM6NnB4O2JveC1zaGFkb3c6MCAycHggNHB4IDAgdmFyKC0tY29sb3Itb3RoZXItc2hhZG93LXByaW1hcnktbmV1dHJhbC1leHRyYS1oZWF2eSk7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtvcGFjaXR5OjE7cG9zaXRpb246YWJzb2x1dGU7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjI2MjVzIGN1YmljLWJlemllciguMjE1LC42MSwuMzU1LDEpLG9wYWNpdHkgLjI2MjVzIGN1YmljLWJlemllciguMjE1LC42MSwuMzU1LDEpfS50di1mbG9hdGluZy10b29sYmFyLmktY2xvc2Vke29wYWNpdHk6MDtwb2ludGVyLWV2ZW50czpub25lO3RyYW5zZm9ybTpzY2FsZSguOTI1KX0udHYtZmxvYXRpbmctdG9vbGJhci5pLXZlcnRpY2Fse2hlaWdodDphdXRvO21pbi13aWR0aDozN3B4fS50di1mbG9hdGluZy10b29sYmFyX193aWRnZXQtd3JhcHBlcntkaXNwbGF5OmZsZXh9LnR2LWZsb2F0aW5nLXRvb2xiYXIuaS12ZXJ0aWNhbCAudHYtZmxvYXRpbmctdG9vbGJhcl9fd2lkZ2V0LXdyYXBwZXJ7ZmxleC1kaXJlY3Rpb246Y29sdW1ufS50di1mbG9hdGluZy10b29sYmFyX19kcmFne2FsaWduLWl0ZW1zOmNlbnRlcjtjb2xvcjp2YXIoLS1fMC1UOUlHKTtjdXJzb3I6Z3JhYjtkaXNwbGF5OmZsZXg7ZmxleC1zaHJpbms6MDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3dpZHRoOjI0cHh9LnR2LWZsb2F0aW5nLXRvb2xiYXIudWktZHJhZ2dhYmxlLWRyYWdnaW5nIC50di1mbG9hdGluZy10b29sYmFyX19kcmFne2N1cnNvcjpncmFiYmluZ30udHYtZmxvYXRpbmctdG9vbGJhci5pLXZlcnRpY2FsIC50di1mbG9hdGluZy10b29sYmFyX19kcmFne2hlaWdodDoyNHB4O3dpZHRoOjEwMCV9LnR2LWZsb2F0aW5nLXRvb2xiYXIuaS12ZXJ0aWNhbCAudHYtZmxvYXRpbmctdG9vbGJhcl9fZHJhZyBzdmd7dHJhbnNmb3JtOnJvdGF0ZSg5MGRlZyl9LnR2LWZsb2F0aW5nLXRvb2xiYXIuaS12ZXJ0aWNhbCAudHYtZmxvYXRpbmctdG9vbGJhcl9fZHJhZyBzdmc6ZGlyKHJ0bCl7dHJhbnNmb3JtOnJvdGF0ZSgtOTBkZWcpfS50di1mbG9hdGluZy10b29sYmFyX19jb250ZW50e2JvcmRlci1lbmQtZW5kLXJhZGl1czo2cHg7Ym9yZGVyLXN0YXJ0LWVuZC1yYWRpdXM6NnB4O2Rpc3BsYXk6ZmxleDtmbGV4LXNocmluazowO292ZXJmbG93OmhpZGRlbn0udHYtZmxvYXRpbmctdG9vbGJhci5pLXZlcnRpY2FsIC50di1mbG9hdGluZy10b29sYmFyX19jb250ZW50e2JvcmRlci1lbmQtc3RhcnQtcmFkaXVzOjZweDtib3JkZXItc3RhcnQtZW5kLXJhZGl1czowO2ZsZXgtZGlyZWN0aW9uOmNvbHVtbn0udHYtZmxvYXRpbmctdG9vbGJhcl9fd2lkZ2V0e2FsaWduLWl0ZW1zOnN0cmV0Y2g7ZGlzcGxheTpmbGV4fS50di1mbG9hdGluZy10b29sYmFyX193aWRnZXQudWktc29ydGFibGUtcGxhY2Vob2xkZXJ7dmlzaWJpbGl0eTp2aXNpYmxlIWltcG9ydGFudH0udHYtZmxvYXRpbmctdG9vbGJhci5pLXZlcnRpY2FsIC50di1mbG9hdGluZy10b29sYmFyX193aWRnZXR7Ym9yZGVyLWlubGluZS1zdGFydDpub25lfS5idXR0b24tcDhmUzh4MlF7aGVpZ2h0OjM4cHg7anVzdGlmeS1jb250ZW50OmNlbnRlcjt3aWR0aDo1MnB4fS5idXR0b24tYnhuaEkxajl7aGVpZ2h0OjM4cHg7d2lkdGg6MzhweH0ud3JhcHBlci1hYlNTQWNFaXtmb250LWZhbWlseTotYXBwbGUtc3lzdGVtLEJsaW5rTWFjU3lzdGVtRm9udCxUcmVidWNoZXQgTVMsUm9ib3RvLFVidW50dSxzYW5zLXNlcmlmO2ZvbnQtZmVhdHVyZS1zZXR0aW5nczoidG51bSIgb24sImxudW0iIG9uO2ZvbnQtc3R5bGU6bm9ybWFsOy0tdWktbGliLXR5cG9ncmFwaHktZm9udC1zaXplOjE2cHg7Zm9udC1zaXplOnZhcigtLXVpLWxpYi10eXBvZ3JhcGh5LWZvbnQtc2l6ZSk7Zm9udC13ZWlnaHQ6NDAwOy0tdWktbGliLXR5cG9ncmFwaHktbGluZS1oZWlnaHQ6MjRweDtsaW5lLWhlaWdodDp2YXIoLS11aS1saWItdHlwb2dyYXBoeS1saW5lLWhlaWdodCl9QG1lZGlhIChhbnktaG92ZXI6aG92ZXIpey53cmFwcGVyLWFiU1NBY0VpOmhvdmVye2NvbG9yOnZhcigtLXR2LWNvbG9yLXBvcHVwLWVsZW1lbnQtYmFja2dyb3VuZC1hY3RpdmUsdmFyKC0tY29sb3ItcG9wdXAtZWxlbWVudC1iYWNrZ3JvdW5kLWFjdGl2ZSkpfX1bZGF0YS10aGVtZT1saWdodF17LS1fMC0tclBGOnZhcigtLWNvbG9yLWNvbGQtZ3JheS05MDApOy0tXzEtLXJQRjp2YXIoLS1jb2xvci1ibGFjayl9W2RhdGEtdGhlbWU9ZGFya117LS1fMC0tclBGOnZhcigtLWNvbG9yLWNvbGQtZ3JheS00NTApOy0tXzEtLXJQRjp2YXIoLS1jb2xvci1jb2xkLWdyYXktNDUwKX0uZHJvcGRvd24tdkx4bU9nWjN7cG9zaXRpb246cmVsYXRpdmV9LmJ1dHRvbldyYXAtdkx4bU9nWjN7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoMCl9LmNvbnRyb2wtdkx4bU9nWjN7Ym94LXNpemluZzpib3JkZXItYm94O292ZXJmbG93OmhpZGRlbjtwb3NpdGlvbjpyZWxhdGl2ZTt0b3VjaC1hY3Rpb246bWFuaXB1bGF0aW9uO3dpZHRoOjUycHh9QG1lZGlhIChhbnktaG92ZXI6aG92ZXIpey5jb250cm9sLXZMeG1PZ1ozOmhvdmVyIC5hcnJvdy12THhtT2daM3tvcGFjaXR5OjF9fS5hcnJvdy12THhtT2daM3thbGw6dW5zZXQ7YWxpZ24taXRlbXM6Y2VudGVyO2JvcmRlci1yYWRpdXM6NHB4IDAgMCA0cHg7Ym90dG9tOjJweDtib3gtc2l6aW5nOmJvcmRlci1ib3g7Y29sb3I6dmFyKC0tXzAtLXJQRik7Y3Vyc29yOmRlZmF1bHQ7ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpjZW50ZXI7b3BhY2l0eTowO292ZXJmbG93OmhpZGRlbjtwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDowO3RvcDoycHg7d2lkdGg6MTFweH1AbWVkaWEgKGFueS1ob3Zlcjpob3Zlcil7LmFycm93LXZMeG1PZ1ozOmhvdmVye2NvbG9yOnZhcigtLV8xLS1yUEYpfX0uYXJyb3ctdkx4bU9nWjMgLmFycm93SWNvbi12THhtT2daMywuYXJyb3ctdkx4bU9nWjMgLmFycm93SWNvbi12THhtT2daMyBzdmd7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjVzIGN1YmljLWJlemllciguMTc1LC44ODUsLjMyLDEuMjc1KX0uYXJyb3ctdkx4bU9nWjMgLmFycm93SWNvbi12THhtT2daMyBzdmd7ZGlzcGxheTpibG9jaztoZWlnaHQ6N3B4O3dpZHRoOjRweDtmaWxsOmN1cnJlbnRDb2xvcn0uYXJyb3ctdkx4bU9nWjM6ZGlyKHJ0bCl7Ym9yZGVyLXJhZGl1czowIDRweCA0cHggMH0uZmVhdHVyZS1tb2JpbGV0b3VjaCAuY29udHJvbC12THhtT2daMyAuYXJyb3ctdkx4bU9nWjMsLmlzT3BlbmVkLXZMeG1PZ1ozIC5jb250cm9sLXZMeG1PZ1ozIC5hcnJvdy12THhtT2daM3t0cmFuc2Zvcm06dHJhbnNsYXRlWCgwKX1AbWVkaWEgKGFueS1ob3Zlcjpob3Zlcil7LmNvbnRyb2wtdkx4bU9nWjM6aG92ZXIgLmFycm93LXZMeG1PZ1oze3RyYW5zZm9ybTp0cmFuc2xhdGVYKDApfX0uZmVhdHVyZS1tb2JpbGV0b3VjaCAuY29udHJvbC12THhtT2daMyAuYXJyb3ctdkx4bU9nWjMuaG92ZXItdkx4bU9nWjMsLmlzT3BlbmVkLXZMeG1PZ1ozIC5jb250cm9sLXZMeG1PZ1ozIC5hcnJvdy12THhtT2daMy5ob3Zlci12THhtT2daM3tiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXR2LWNvbG9yLXRvb2xiYXItYnV0dG9uLWJhY2tncm91bmQtaG92ZXIsdmFyKC0tY29sb3ItdG9vbGJhci1idXR0b24tYmFja2dyb3VuZC1ob3ZlcikpfUBtZWRpYSAoYW55LWhvdmVyOmhvdmVyKXsuY29udHJvbC12THhtT2daMzpob3ZlciAuYXJyb3ctdkx4bU9nWjMuaG92ZXItdkx4bU9nWjMsLmNvbnRyb2wtdkx4bU9nWjM6aG92ZXIgLmFycm93LXZMeG1PZ1ozOmhvdmVyLC5mZWF0dXJlLW1vYmlsZXRvdWNoIC5jb250cm9sLXZMeG1PZ1ozIC5hcnJvdy12THhtT2daMzpob3ZlciwuaXNPcGVuZWQtdkx4bU9nWjMgLmNvbnRyb2wtdkx4bU9nWjMgLmFycm93LXZMeG1PZ1ozOmhvdmVye2JhY2tncm91bmQtY29sb3I6dmFyKC0tdHYtY29sb3ItdG9vbGJhci1idXR0b24tYmFja2dyb3VuZC1ob3Zlcix2YXIoLS1jb2xvci10b29sYmFyLWJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyKSl9fS5mZWF0dXJlLW1vYmlsZXRvdWNoIC5jb250cm9sLXZMeG1PZ1ozIC5hcnJvdy12THhtT2daMy5ob3Zlci12THhtT2daMyBzdmcsLmlzT3BlbmVkLXZMeG1PZ1ozIC5jb250cm9sLXZMeG1PZ1ozIC5hcnJvdy12THhtT2daMy5ob3Zlci12THhtT2daMyBzdmd7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoMXB4KX1AbWVkaWEgKGFueS1ob3Zlcjpob3Zlcil7LmNvbnRyb2wtdkx4bU9nWjM6aG92ZXIgLmFycm93LXZMeG1PZ1ozLmhvdmVyLXZMeG1PZ1ozIHN2ZywuY29udHJvbC12THhtT2daMzpob3ZlciAuYXJyb3ctdkx4bU9nWjM6aG92ZXIgc3ZnLC5mZWF0dXJlLW1vYmlsZXRvdWNoIC5jb250cm9sLXZMeG1PZ1ozIC5hcnJvdy12THhtT2daMzpob3ZlciBzdmcsLmlzT3BlbmVkLXZMeG1PZ1ozIC5jb250cm9sLXZMeG1PZ1ozIC5hcnJvdy12THhtT2daMzpob3ZlciBzdmd7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoMXB4KX19LmZlYXR1cmUtbW9iaWxldG91Y2ggLmNvbnRyb2wtdkx4bU9nWjMgLmFycm93LXZMeG1PZ1ozLmhvdmVyLXZMeG1PZ1ozIHN2ZzpkaXIocnRsKSwuaXNPcGVuZWQtdkx4bU9nWjMgLmNvbnRyb2wtdkx4bU9nWjMgLmFycm93LXZMeG1PZ1ozLmhvdmVyLXZMeG1PZ1ozIHN2ZzpkaXIocnRsKXt0cmFuc2Zvcm06dHJhbnNsYXRlWCgtMXB4KX1AbWVkaWEgKGFueS1ob3Zlcjpob3Zlcil7LmNvbnRyb2wtdkx4bU9nWjM6aG92ZXIgLmFycm93LXZMeG1PZ1ozLmhvdmVyLXZMeG1PZ1ozIHN2ZzpkaXIocnRsKSwuY29udHJvbC12THhtT2daMzpob3ZlciAuYXJyb3ctdkx4bU9nWjM6aG92ZXIgc3ZnOmRpcihydGwpLC5mZWF0dXJlLW1vYmlsZXRvdWNoIC5jb250cm9sLXZMeG1PZ1ozIC5hcnJvdy12THhtT2daMzpob3ZlciBzdmc6ZGlyKHJ0bCksLmlzT3BlbmVkLXZMeG1PZ1ozIC5jb250cm9sLXZMeG1PZ1ozIC5hcnJvdy12THhtT2daMzpob3ZlciBzdmc6ZGlyKHJ0bCl7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTFweCl9fS5pc09wZW5lZC12THhtT2daMyAuY29udHJvbC12THhtT2daMyAuYXJyb3ctdkx4bU9nWjN7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS10di1jb2xvci10b29sYmFyLWJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyLHZhcigtLWNvbG9yLXRvb2xiYXItYnV0dG9uLWJhY2tncm91bmQtaG92ZXIpKTtvcGFjaXR5OjF9LmlzT3BlbmVkLXZMeG1PZ1ozIC5jb250cm9sLXZMeG1PZ1ozIC5hcnJvdy12THhtT2daMyAuYXJyb3dJY29uLXZMeG1PZ1oze3RyYW5zZm9ybTpyb3RhdGUoMTgwZGVnKX0uaXNPcGVuZWQtdkx4bU9nWjMgLmNvbnRyb2wtdkx4bU9nWjMgLmFycm93LXZMeG1PZ1ozIC5hcnJvd0ljb24tdkx4bU9nWjM6ZGlyKHJ0bCl7dHJhbnNmb3JtOnJvdGF0ZSgtMTgwZGVnKX1AbWVkaWEgKGFueS1ob3Zlcjpob3Zlcil7LmlzT3BlbmVkLXZMeG1PZ1ozIC5jb250cm9sLXZMeG1PZ1ozIC5hcnJvdy12THhtT2daMzpob3ZlciBzdmd7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTFweCl9fUBtZWRpYSAoYW55LWhvdmVyOmhvdmVyKXsuaXNPcGVuZWQtdkx4bU9nWjMgLmNvbnRyb2wtdkx4bU9nWjMgLmFycm93LXZMeG1PZ1ozOmhvdmVyIHN2ZzpkaXIocnRsKXt0cmFuc2Zvcm06dHJhbnNsYXRlWCgxcHgpfX0uZmVhdHVyZS1tb2JpbGV0b3VjaCAuaXNHcmF5ZWQtdkx4bU9nWjMgLmNvbnRyb2wtdkx4bU9nWjMgLmJ1dHRvbldyYXAtdkx4bU9nWjN7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoMCl9QG1lZGlhIChhbnktaG92ZXI6aG92ZXIpey5pc0dyYXllZC12THhtT2daMyAuY29udHJvbC12THhtT2daMzpob3ZlciAuYnV0dG9uV3JhcC12THhtT2daM3t0cmFuc2Zvcm06dHJhbnNsYXRlWCgwKX19Lm5ld1ZpZXctdkx4bU9nWjN7cGFkZGluZzowIDZweDstLXVpLWxpYi1pbi1saXN0SXRlbS1zaXplSXNEZXNrdG9wOjA7LS11aS1saWItaW4tbGlzdEl0ZW0tc2l6ZUlzTW9iaWxlOjF9Lm5ld1ZpZXctdkx4bU9nWjMuZGVza3RvcC12THhtT2daM3stLXVpLWxpYi1pbi1saXN0SXRlbS1zaXplSXNEZXNrdG9wOjE7LS11aS1saWItaW4tbGlzdEl0ZW0tc2l6ZUlzTW9iaWxlOjB9LmNvbnRyb2wtdkx4bU9nWjM6Zm9jdXMtd2l0aGluIC5hcnJvdy12THhtT2daMy5hY2Nlc3NpYmxlLXZMeG1PZ1oze29wYWNpdHk6MX0uYXJyb3ctdkx4bU9nWjMuYWNjZXNzaWJsZS12THhtT2daMzpiZWZvcmV7Ym9yZGVyLXJhZGl1czo0cHg7Y29udGVudDoiIjtoZWlnaHQ6MzJweDtpbnNldC1pbmxpbmUtZW5kOjJweDtvdXRsaW5lOnZhcigtLWNvbG9yLXR2LWJsdWUtNTAwKSBub25lIDJweDtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDo3cHh9LmFycm93LXZMeG1PZ1ozLmFjY2Vzc2libGUtdkx4bU9nWjM6Zm9jdXMtdmlzaWJsZXtvcGFjaXR5OjE7b3ZlcmZsb3c6dmlzaWJsZX0uYXJyb3ctdkx4bU9nWjMuYWNjZXNzaWJsZS12THhtT2daMzpmb2N1cy12aXNpYmxlOmJlZm9yZXtvdXRsaW5lLXN0eWxlOnNvbGlkfS5pdGVtLXI0N012a2x1e2NvbG9yOnZhcigtLXR2LWNvbG9yLXBvcHVwLWVsZW1lbnQtdGV4dCx2YXIoLS1jb2xvci1wb3B1cC1lbGVtZW50LXRleHQpKX0uaXRlbS1yNDdNdmtsdS5ob3ZlcmVkLXI0N012a2x1LC5pdGVtLXI0N012a2x1OmFjdGl2ZXtjb2xvcjp2YXIoLS10di1jb2xvci1wb3B1cC1lbGVtZW50LXRleHQtaG92ZXIsdmFyKC0tY29sb3ItcG9wdXAtZWxlbWVudC10ZXh0LWhvdmVyKSl9QG1lZGlhIChhbnktaG92ZXI6aG92ZXIpey5pdGVtLXI0N012a2x1OmhvdmVye2NvbG9yOnZhcigtLXR2LWNvbG9yLXBvcHVwLWVsZW1lbnQtdGV4dC1ob3Zlcix2YXIoLS1jb2xvci1wb3B1cC1lbGVtZW50LXRleHQtaG92ZXIpKX19Lml0ZW0tcjQ3TXZrbHUuaG92ZXJlZC1yNDdNdmtsdXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXR2LWNvbG9yLXBvcHVwLWVsZW1lbnQtYmFja2dyb3VuZC1ob3Zlcix2YXIoLS1jb2xvci1wb3B1cC1lbGVtZW50LWJhY2tncm91bmQtaG92ZXIpKX1AbWVkaWEgKGFueS1ob3Zlcjpob3Zlcil7Lml0ZW0tcjQ3TXZrbHU6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS10di1jb2xvci1wb3B1cC1lbGVtZW50LWJhY2tncm91bmQtaG92ZXIsdmFyKC0tY29sb3ItcG9wdXAtZWxlbWVudC1iYWNrZ3JvdW5kLWhvdmVyKSl9fS5pdGVtLXI0N012a2x1OmFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXR2LWNvbG9yLXBvcHVwLWVsZW1lbnQtYmFja2dyb3VuZC1ob3Zlcix2YXIoLS1jb2xvci1jb250YWluZXItZmlsbC1wcmltYXJ5LW5ldXRyYWwtbGlnaHQpKX0uc3RpY2tlci1JYUVDa01Sb3twYWRkaW5nOjVweH0uc3RpY2tlci1JYUVDa01SbyBzdmd7aGVpZ2h0OjEwMCU7d2lkdGg6MTAwJX1AbWVkaWEgKG1heC13aWR0aDo0NDBweCl7LnN0aWNrZXJSb3ctb29zdksxeDN7ZGlzcGxheTpncmlkO2dyaWQtdGVtcGxhdGUtY29sdW1uczpyZXBlYXQoNSwxZnIpfUBtZWRpYSAobWF4LXdpZHRoOjQwMXB4KXsuc3RpY2tlclJvdy1vb3N2SzF4M3tncmlkLXRlbXBsYXRlLWNvbHVtbnM6cmVwZWF0KDQsMWZyKX19QG1lZGlhIChtYXgtd2lkdGg6MzIzcHgpey5zdGlja2VyUm93LW9vc3ZLMXgze2dyaWQtdGVtcGxhdGUtY29sdW1uczpyZXBlYXQoMywxZnIpfX19LmRlc2t0b3BTaXplLWJ1bXhXQ2N0e3dpZHRoOjM1NHB4fS5kZXNrdG9wU2l6ZS1idW14V0NjdC5zbWFsbFNpemUtYnVteFdDY3R7d2lkdGg6YXV0b30udGFicy1idW14V0NjdHtib3JkZXItYm90dG9tOjAgc29saWQgdmFyKC0tY29sb3Itc3RhdGljLXRyYW5zcGFyZW50KTtib3JkZXItdG9wOjFweCBzb2xpZCB2YXIoLS10di1jb2xvci1wb3B1cC1lbGVtZW50LWRpdmlkZXItYmFja2dyb3VuZCx2YXIoLS1jb2xvci1wb3B1cC1tZW51LXNlcGFyYXRvcikpO2Rpc3BsYXk6ZmxleDtoZWlnaHQ6NDNweDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3BhZGRpbmc6MCA2cHggNHB4fS5jYXRlZ29yaWVzLWJ1bXhXQ2N0e3BhZGRpbmc6MCAxMnB4fS5jYXRlZ29yaWVzLWJ1bXhXQ2N0OmFmdGVye21hcmdpbjowIDEycHh9LmRyYXdlci1ZZ3daWDEwMSwubWVudUJveC1ZZ3daWDEwMXtwYWRkaW5nOjB9Lml0ZW0tWVRHVkgyNDV7cGFkZGluZy1pbmxpbmUtZW5kOjEycHg7cGFkZGluZy1pbmxpbmUtc3RhcnQ6MTNweH0uYnV0dG9uV3JhcC1ZVEdWSDI0NXthbGlnbi1pdGVtczpjZW50ZXI7ZGlzcGxheTpmbGV4O3BhZGRpbmctYmxvY2s6MCAwO3BhZGRpbmctaW5saW5lOjVweCAxMnB4fS5idXR0b25XcmFwLVlUR1ZIMjQ1LnNtYWxsLVlUR1ZIMjQ1e3BhZGRpbmctaW5saW5lLWVuZDo1cHh9LmJ1dHRvbkxhYmVsLVlUR1ZIMjQ1e21hcmdpbi1pbmxpbmUtc3RhcnQ6MnB4fS5zd2l0Y2hlckxhYmVsLUR3cVVIUk52e21hcmdpbi1pbmxpbmUtZW5kOjI0cHh9LnRpdGxlLXN6dEFRWjVpe2FsaWduLWl0ZW1zOmNlbnRlcjtjb2x1bW4tZ2FwOjZweDtkaXNwbGF5OmlubGluZS1mbGV4fS5zZWN0aW9uVGl0bGUtWTY1eVptS0V7bWFyZ2luOjA7cGFkZGluZzo0cHggMTJweH0ubmV3QmFkZ2UtWTY1eVptS0V7LS11aS1saWItYmFkZ2UtY29sb3ItY29udGVudDp2YXIoLS1jb2xvci13aGl0ZSl9LmxhYmVsLVk2NXlabUtFe2FsaWduLWl0ZW1zOmNlbnRlcjtjb2x1bW4tZ2FwOjZweDtkaXNwbGF5OmZsZXg7ZmxleDowIDAgYXV0b30uaXRlbS12RXNKN041T3tmb250LXNpemU6MTZweDtwYWRkaW5nLWJvdHRvbTo2cHg7cGFkZGluZy10b3A6MTBweDt3aGl0ZS1zcGFjZTpub3JtYWx9Lml0ZW0tdkVzSjdONU86YmVmb3Jle2NvbnRlbnQ6bm9uZX0ubGFiZWwtdkVzSjdONU97bGluZS1oZWlnaHQ6MjRweDtvdmVyZmxvdzp2aXNpYmxlfS53cmFwcGVyLVJSMlp6MGI0e3BhZGRpbmc6OHB4IDEwcHh9LndyYXBwZXItTFgxWG5SV197d2lkdGg6Mjg4cHh9LnRvb2xCdXR0b25NYWduZXQtZjhNR2k5c1d7cG9zaXRpb246cmVsYXRpdmV9LnRvb2xCdXR0b25NYWduZXRfX21lbnVJdGVtLWY4TUdpOXNXe2ZvbnQtc2l6ZToxNnB4fS50b29sQnV0dG9uTWFnbmV0X19oaW50UGxhY2Vob2xkZXItZjhNR2k5c1d7d2lkdGg6MTAwJX0uc3dpdGNoZXJMYWJlbC1mOE1HaTlzV3ttYXJnaW4taW5saW5lLWVuZDoyNHB4fS5wb3B1cE1lbnVJdGVtLVROQ0dpMlc4e2ZvbnQtc2l6ZToxNnB4fVtkYXRhLXRoZW1lPWRhcmtdLFtkYXRhLXRoZW1lPWxpZ2h0XXstLV8wLXoweGo6IzAwMDB9LmRyYXdpbmdUb29sYmFyLWNEdWpCVHg0e2JhY2tncm91bmQtY29sb3I6dmFyKC0tdHYtY29sb3ItcGFuZS1iYWNrZ3JvdW5kLHZhcigtLWNvbG9yLXBhbmUtYmcpKTtoZWlnaHQ6MTAwJTtvdmVyZmxvdzpoaWRkZW47cG9zaXRpb246cmVsYXRpdmU7LXdlYmtpdC11c2VyLXNlbGVjdDpub25lO3VzZXItc2VsZWN0Om5vbmV9LmRyYXdpbmdUb29sYmFyLWNEdWpCVHg0LmlzSGlkZGVuLWNEdWpCVHg0e2JhY2tncm91bmQtY29sb3I6dmFyKC0tXzAtejB4ail9LmRyYXdpbmdUb29sYmFyLWNEdWpCVHg0LmlzSGlkZGVuLWNEdWpCVHg0IC5pbm5lci1jRHVqQlR4NHtkaXNwbGF5Om5vbmV9LmlubmVyLWNEdWpCVHg0e2JhY2tncm91bmQtY29sb3I6dmFyKC0tdHYtY29sb3ItcGxhdGZvcm0tYmFja2dyb3VuZCx2YXIoLS1jb2xvci1jaGFydC1wYWdlLWJnKSk7ZGlzcGxheTpmbGV4O2ZsZXg6MSAwIGF1dG87ZmxleC1kaXJlY3Rpb246Y29sdW1uO3dpZHRoOjUycHg7LS10di10b29sYmFyLWV4cGxpY2l0LWhvdmVyLW1hcmdpbi1sZWZ0OjlweDstLXR2LXRvb2xiYXItZXhwbGljaXQtaG92ZXItbWFyZ2luLXJpZ2h0OjlweH0uZ3JvdXAtY0R1akJUeDR7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS10di1jb2xvci1wYW5lLWJhY2tncm91bmQsdmFyKC0tY29sb3ItcGFuZS1iZykpO3BhZGRpbmc6NnB4IDB9Lmdyb3VwLWNEdWpCVHg0Ky5ncm91cC1jRHVqQlR4NHtwYWRkaW5nLXRvcDowfS5ncm91cC1jRHVqQlR4NCsuZ3JvdXAtY0R1akJUeDQ6YmVmb3Jle2JhY2tncm91bmQtY29sb3I6dmFyKC0tdHYtY29sb3ItdG9vbGJhci1kaXZpZGVyLWJhY2tncm91bmQsdmFyKC0tY29sb3ItdG9vbGJhci1kaXZpZGVyLWJhY2tncm91bmQpKTtjb250ZW50OiIiO2Rpc3BsYXk6YmxvY2s7aGVpZ2h0OjFweDttYXJnaW46MCA4cHggNnB4fS5sYXlvdXQtd2l0aC1ib3JkZXItcmFkaXVzIC5kcmF3aW5nVG9vbGJhci1jRHVqQlR4NHtib3JkZXItc3RhcnQtZW5kLXJhZGl1czo0cHh9Lmxhc3RHcm91cC1jRHVqQlR4NHtwYWRkaW5nLWJvdHRvbToyMHB4fS5maWxsLWNEdWpCVHg0e2JhY2tncm91bmQtY29sb3I6dmFyKC0tdHYtY29sb3ItcGFuZS1iYWNrZ3JvdW5kLHZhcigtLWNvbG9yLXBhbmUtYmcpKTtmbGV4OjEgMSAxMDAlO21hcmdpbi10b3A6LTJweDttaW4taGVpZ2h0OjJweH0="}},"time_used":4,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":4,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"s3.tradingview.com/conversions_en.json","fqdn":"s3.tradingview.com","domain":"tradingview.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"fetch","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.331Z","timestamp":1785148034331,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_256_GCM_SHA384","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.tradingview.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 21 Oct 2025 00:00:00 GMT","end":"Tue, 17 Nov 2026 23:59:59 GMT"},"fingerprint":{"sha1":"C4:FE:64:00:30:2A:CD:16:30:95:7E:E1:70:D1:31:3A:D6:33:3A:CC","sha256":"87:D2:67:7D:3E:02:F0:3B:58:BD:38:17:DA:FE:73:C0:CA:25:F9:58:CC:11:14:E0:3A:6E:C3:58:84:9E:BF:52"}}},"request":{"raw":"GET /conversions_en.json HTTP/1.1\r\nHost: s3.tradingview.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\nReferer: https://s.tradingview.com/\r\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: empty\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-site\r\nPriority: u=4\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\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\ncontent-type: application/json\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 1837468\r\ncdn-requestcountrycode: NO\r\nvary: Origin\r\naccess-control-allow-credentials: true\r\naccess-control-allow-methods: GET\r\naccess-control-allow-origin: https://s.tradingview.com\r\naccess-control-max-age: 3000\r\ncache-control: public, max-age=300\r\ncontent-encoding: zstd\r\netag: \"515bac03f6b5494f4a2d397393953729\"\r\nlast-modified: Mon, 15 Jun 2026 15:45:26 GMT\r\nx-amz-id-2: AcTEzbgJj5UVjviOBerPMHl9CcyGFkXAB50eHmkW2BDfGgX4Yc7TglEScD4yMvyRQ/R65eYs1cIAtqsKtJeZ+qBUqkJPY/pt\r\nx-amz-request-id: X29DMBVXVHJYXCJD\r\nx-amz-server-side-encryption: AES256\r\nx-amz-version-id: Yn7olbYD7o6TYkLq4b0mzbwmM.NLtydg\r\ncdn-proxyver: 1.57\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 06/15/2026 15:54:58\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 30432e99df0ca7cb583233d081623752\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Amazon Web Services","description":"Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.","website":"https://aws.amazon.com/","common_platform_enumeration":"","icon":"Amazon Web Services.svg","categories":["PaaS"]},{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":32165,"size_decoded":7567,"mime_type":"application/json","magic":"JSON text data","md5":"c35fd928c50e8b2349e85132fa6f8286","sha1":"49b62853a99436088ce7d39b040dd57bb927544d","sha256":"ad70a372c2fb1521db79bec862591a3a359a6bcd2ebdd99235fa781df4830cb2","sha512":"1932532c69fa69b4a039070fcc8ef701e2411e0a55db2ff6691f28e1a85f907276924eb7a64ed86c180321be77bbca6b21729dc6b322d41e5143354536492d94","ssdeep":"192:VRw3A1ugr/uPIbl9oucdDYjUl5On5AIEZK0kLt707iY35IZCCxuUupPj8T+1JQAh:VREA//CIudDYjB5AXZWt7zY6ZCNphjT3","tlshash":"e8e243181e49fa249b9ad3e35cbbdc28e4bc0309c9a5c9cd4db387b9028c3d5e552977","first_seen":"2026-06-15T23:45:30.057746Z","last_seen":"2026-07-27T12:47:44.710454Z","times_seen":234,"resource_available":false,"data":"ewoiY3VycmVuY2llcyI6IFsKeyJpZCI6IkFFRCIsImNvZGUiOiJBRUQiLCJkZXNjcmlwdGlvbiI6IlVuaXRlZCBBcmFiIEVtaXJhdGVzIERpcmhhbSIsImtpbmQiOiJmaWF0IiwibG9nb2lkIjoiY291bnRyeS9BRSJ9LAp7ImlkIjoiQUZOIiwiY29kZSI6IkFGTiIsImRlc2NyaXB0aW9uIjoiQWZnaGFuIEFmZ2hhbmkiLCJraW5kIjoiZmlhdCIsImxvZ29pZCI6ImNvdW50cnkvQUYifSwKeyJpZCI6IkFMTCIsImNvZGUiOiJBTEwiLCJkZXNjcmlwdGlvbiI6IkFsYmFuaWFuIExlayIsImtpbmQiOiJmaWF0IiwibG9nb2lkIjoiY291bnRyeS9BTCJ9LAp7ImlkIjoiQU1EIiwiY29kZSI6IkFNRCIsImRlc2NyaXB0aW9uIjoiQXJtZW5pYW4gRHJhbSIsImtpbmQiOiJmaWF0IiwibG9nb2lkIjoiY291bnRyeS9BTSJ9LAp7ImlkIjoiQU9BIiwiY29kZSI6IkFPQSIsImRlc2NyaXB0aW9uIjoiQW5nb2xhbiBLd2FuemEiLCJraW5kIjoiZmlhdCIsImxvZ29pZCI6ImNvdW50cnkvQU8ifSwKeyJpZCI6IkFSUyIsImNvZGUiOiJBUlMiLCJkZXNjcmlwdGlvbiI6IkFyZ2VudGluZSBQZXNvIiwia2luZCI6ImZpYXQiLCJsb2dvaWQiOiJjb3VudHJ5L0FSIn0sCnsiaWQiOiJBVUQiLCJjb2RlIjoiQVVEIiwiZGVzY3JpcHRpb24iOiJBdXN0cmFsaWFuIERvbGxhciIsImtpbmQiOiJmaWF0IiwibG9nb2lkIjoiY291bnRyeS9BVSJ9LAp7ImlkIjoiQVdHIiwiY29kZSI6IkFXRyIsImRlc2NyaXB0aW9uIjoiQXJ1YmFuIEZsb3JpbiIsImtpbmQiOiJmaWF0IiwibG9nb2lkIjoiY291bnRyeS9BVyJ9LAp7ImlkIjoiQVpOIiwiY29kZSI6IkFaTiIsImRlc2NyaXB0aW9uIjoiQXplcmJhaWphbmkgTWFuYXQiLCJraW5kIjoiZmlhdCIsImxvZ29pZCI6ImNvdW50cnkvQVoifSwKeyJpZCI6IkJBTSIsImNvZGUiOiJCQU0iLCJkZXNjcmlwdGlvbiI6IkJvc25pYS1IZXJ6ZWdvdmluYSBDb252ZXJ0aWJsZSBNYXJrIiwia2luZCI6ImZpYXQiLCJsb2dvaWQiOiJjb3VudHJ5L0JBIn0sCnsiaWQiOiJCQkQiLCJjb2RlIjoiQkJEIiwiZGVzY3JpcHRpb24iOiJCYXJiYWRpYW4gRG9sbGFyIiwia2luZCI6ImZpYXQiLCJsb2dvaWQiOiJjb3VudHJ5L0JCIn0sCnsiaWQiOiJCRFQiLCJjb2RlIjoiQkRUIiwiZGVzY3JpcHRpb24iOiJCYW5nbGFkZXNoaSBUYWthIiwia2luZCI6ImZpYXQiLCJsb2dvaWQiOiJjb3VudHJ5L0JEIn0sCnsiaWQiOiJCR04iLCJjb2RlIjoiQkdOIiwiZGVzY3JpcHRpb24iOiJCdWxnYXJpYW4gTGV2Iiwia2luZCI6ImZpYXQiLCJsb2dvaWQiOiJjb3VudHJ5L0JHIn0sCnsiaWQiOiJCSEQiLCJjb2RlIjoiQkhEIiwiZGVzY3JpcHRpb24iOiJCYWhyYWluaSBEaW5hciIsImtpbmQiOiJmaWF0IiwibG9nb2lkIjoiY291bnRyeS9CSCJ9LAp7ImlkIjoiQklGIiwiY29kZSI6IkJJRiIsImRlc2NyaXB0aW9uIjoiQnVydW5kaWFuIEZyYW5jIiwia2luZCI6ImZpYXQiLCJsb2dvaWQiOiJjb3VudHJ5L0JJIn0sCnsiaWQiOiJCTUQiLCJjb2RlIjoiQk1EIiwiZGVzY3JpcHRpb24iOiJCZXJtdWRhbiBEb2xsYXIiLCJraW5kIjoiZmlhdCIsImxvZ29pZCI6ImNvdW50cnkvQk0ifSwKeyJpZCI6IkJORCIsImNvZGUiOiJCTkQiLCJkZXNjcmlwdGlvbiI6IkJydW5laSBEb2xsYXIiLCJraW5kIjoiZmlhdCIsImxvZ29pZCI6ImNvdW50cnkvQk4ifSwKeyJpZCI6IkJPQiIsImNvZGUiOiJCT0IiLCJkZXNjcmlwdGlvbiI6IkJvbGl2aWFuIEJvbGl2aWFubyIsImtpbmQiOiJmaWF0IiwibG9nb2lkIjoiY291bnRyeS9CTyJ9LAp7ImlkIjoiQlJMIiwiY29kZSI6IkJSTCIsImRlc2NyaXB0aW9uIjoiQnJhemlsaWFuIFJlYWwiLCJraW5kIjoiZmlhdCIsImxvZ29pZCI6ImNvdW50cnkvQlIifSwKeyJpZCI6IkJTRCIsImNvZGUiOiJCU0QiLCJkZXNjcmlwdGlvbiI6IkJhaGFtaWFuIERvbGxhciIsImtpbmQiOiJmaWF0IiwibG9nb2lkIjoiY291bnRyeS9CUyJ9LAp7ImlkIjoiQlROIiwiY29kZSI6IkJUTiIsImRlc2NyaXB0aW9uIjoiQmh1dGFuZXNlIE5ndWx0cnVtIiwia2luZCI6ImZpYXQiLCJsb2dvaWQiOiJjb3VudHJ5L0JUIn0sCnsiaWQiOiJCV1AiLCJjb2RlIjoiQldQIiwiZGVzY3JpcHRpb24iOiJCb3Rzd2FuYW4gUHVsYSIsImtpbmQiOiJmaWF0IiwibG9nb2lkIjoiY291bnRyeS9CVyJ9LAp7ImlkIjoiQllOIiwiY29kZSI6IkJZTiIsImRlc2NyaXB0aW9uIjoiQmVsYXJ1c2lhbiBSdWJsZSIsImtpbmQiOiJmaWF0IiwibG9nb2lkIjoiY291bnRyeS9CWSJ9LAp7ImlkIjoiQlpEIiwiY29kZSI6IkJaRCIsImRlc2NyaXB0aW9uIjoiQmVsaXplIERvbGxhciIsImtpbmQiOiJmaWF0IiwibG9nb2lkIjoiY291bnRyeS9CWiJ9LAp7ImlkIjoiQ0FEIiwiY29kZSI6IkNBRCIsImRlc2NyaXB0aW9uIjoiQ2FuYWRpYW4gRG9sbGFyIiwia2luZCI6ImZpYXQiLCJsb2dvaWQiOiJjb3VudHJ5L0NBIn0sCnsiaWQiOiJDREYiLCJjb2RlIjoiQ0RGIiwiZGVzY3JpcHRpb24iOiJDb25nb2xlc2UgRnJhbmMiLCJraW5kIjoiZmlhdCIsImxvZ29pZCI6ImNvdW50cnkvQ0QifSwKeyJpZCI6IkNIRiIsImNvZGUiOiJDSEYiLCJkZXNjcmlwdGlvbiI6IlN3aXNzIEZyYW5jIiwia2luZCI6ImZpYXQiLCJsb2dvaWQiOiJjb3VudHJ5L0NIIn0sCnsiaWQiOiJDTEYiLCJjb2RlIjoiQ0xGIiwiZGVzY3JpcHRpb24iOiJDaGlsZWFuIFVuaXQgb2YgQWNjb3VudCAoVUYpIiwia2luZCI6ImZpYXQiLCJsb2dvaWQiOiJjb3VudHJ5L0NMIn0sCnsiaWQiOiJDTFAiLCJjb2RlIjoiQ0xQIiwiZGVzY3JpcHRpb24iOiJDaGlsZWFuIFBlc28iLCJraW5kIjoiZmlhdCIsImxvZ29pZCI6ImNvdW50cnkvQ0wifSwKeyJpZCI6IkNOWSIsImNvZGUiOiJDTlkiLCJkZXNjcmlwdGlvbiI6IkNoaW5lc2UgWXVhbiIsImtpbmQiOiJmaWF0IiwibG9nb2lkIjoiY291bnRyeS9DTiJ9LAp7ImlkIjoiQ09QIiwiY29kZSI6IkNPUCIsImRlc2NyaXB0aW9uIjoiQ29sb21iaWFuIFBlc28iLCJraW5kIjoiZmlhdCIsImxvZ29pZCI6ImNvdW50cnkvQ08ifSwKeyJpZCI6IkNSQyIsImNvZGUiOiJDUkMiLCJkZXNjcmlwdGlvbiI6IkNvc3RhIFJpY2FuIENvbMOzbiIsImtpbmQiOiJmaWF0IiwibG9nb2lkIjoiY291bnRyeS9DUiJ9LAp7ImlkIjoiQ1VQIiwiY29kZSI6IkNVUCIsImRlc2NyaXB0aW9uIjoiQ3ViYW4gUGVzbyIsImtpbmQiOiJmaWF0IiwibG9nb2lkIjoiY291bnRyeS9DVSJ9LAp7ImlkIjoiQ1ZFIiwiY29kZSI6IkNWRSIsImRlc2NyaXB0aW9uIjoiQ2FwZSBWZXJkZWFuIEVzY3VkbyIsImtpbmQiOiJmaWF0IiwibG9nb2lkIjoiY291bnRyeS9DViJ9LAp7ImlkIjoiQ1pLIiwiY29kZSI6IkNaSyIsImRlc2NyaXB0aW9uIjoiQ3plY2ggS29ydW5hIiwia2luZCI6ImZpYXQiLCJsb2dvaWQiOiJjb3VudHJ5L0NaIn0sCnsiaWQiOiJESkYiLCJjb2RlIjoiREpGIiwiZGVzY3JpcHRpb24iOiJEamlib3V0aWFuIEZyYW5jIiwia2luZCI6ImZpYXQiLCJsb2dvaWQiOiJjb3VudHJ5L0RKIn0sCnsiaWQiOiJES0siLCJjb2RlIjoiREtLIiwiZGVzY3JpcHRpb24iOiJEYW5pc2ggS3JvbmUiLCJraW5kIjoiZmlhdCIsImxvZ29pZCI6ImNvdW50cnkvREsifSwKeyJpZCI6IkRPUCIsImNvZGUiOiJET1AiLCJkZXNjcmlwdGlvbiI6IkRvbWluaWNhbiBQZXNvIiwia2luZCI6ImZpYXQiLCJsb2dvaWQiOiJjb3VudHJ5L0RPIn0sCnsiaWQiOiJEWkQiLCJjb2RlIjoiRFpEIiwiZGVzY3JpcHRpb24iOiJBbGdlcmlhbiBEaW5hciIsImtpbmQiOiJmaWF0IiwibG9nb2lkIjoiY291bnRyeS9EWiJ9LAp7ImlkIjoiRUdQIiwiY29kZSI6IkVHUCIsImRlc2NyaXB0aW9uIjoiRWd5cHRpYW4gUG91bmQiLCJraW5kIjoiZmlhdCIsImxvZ29pZCI6ImNvdW50cnkvRUcifSwKeyJpZCI6IkVSTiIsImNvZGUiOiJFUk4iLCJkZXNjcmlwdGlvbiI6IkVyaXRyZWFuIE5ha2ZhIiwia2luZCI6ImZpYXQiLCJsb2dvaWQiOiJjb3VudHJ5L0VSIn0sCnsiaWQiOiJFVEIiLCJjb2RlIjoiRVRCIiwiZGVzY3JpcHRpb24iOiJFdGhpb3BpYW4gQmlyciIsImtpbmQiOiJmaWF0IiwibG9nb2lkIjoiY291bnRyeS9FVCJ9LAp7ImlkIjoiRVVSIiwiY29kZSI6IkVVUiIsImRlc2NyaXB0aW9uIjoiRXVybyIsImtpbmQiOiJmaWF0IiwibG9nb2lkIjoiY291bnRyeS9FVSJ9LAp7ImlkIjoiRkpEIiwiY29kZSI6IkZKRCIsImRlc2NyaXB0aW9uIjoiRmlqaWFuIERvbGxhciIsImtpbmQiOiJmaWF0IiwibG9nb2lkIjoiY291bnRyeS9GSiJ9LAp7ImlkIjoiR0JQIiwiY29kZSI6IkdCUCIsImRlc2NyaXB0aW9uIjoiQnJpdGlzaCBQb3VuZCIsImtpbmQiOiJmaWF0IiwibG9nb2lkIjoiY291bnRyeS9HQiJ9LAp7ImlkIjoiR0VMIiwiY29kZSI6IkdFTCIsImRlc2NyaXB0aW9uIjoiR2VvcmdpYW4gTGFyaSIsImtpbmQiOiJmaWF0IiwibG9nb2lkIjoiY291bnRyeS9HRSJ9LAp7ImlkIjoiR0hTIiwiY29kZSI6IkdIUyIsImRlc2NyaXB0aW9uIjoiR2hhbmFpYW4gQ2VkaSIsImtpbmQiOiJmaWF0IiwibG9nb2lkIjoiY291bnRyeS9HSCJ9LAp7ImlkIjoiR0lQIiwiY29kZSI6IkdJUCIsImRlc2NyaXB0aW9uIjoiR2licmFsdGFyIFBvdW5kIiwia2luZCI6ImZpYXQiLCJsb2dvaWQiOiJjb3VudHJ5L0dJIn0sCnsiaWQiOiJHTUQiLCJjb2RlIjoiR01EIiwiZGVzY3JpcHRpb24iOiJHYW1iaWFuIERhbGFzaSIsImtpbmQiOiJmaWF0IiwibG9nb2lkIjoiY291bnRyeS9HTSJ9LAp7ImlkIjoiR05GIiwiY29kZSI6IkdORiIsImRlc2NyaXB0aW9uIjoiR3VpbmVhbiBGcmFuYyIsImtpbmQiOiJmaWF0IiwibG9nb2lkIjoiY291bnRyeS9HTiJ9LAp7ImlkIjoiR1RRIiwiY29kZSI6IkdUUSIsImRlc2NyaXB0aW9uIjoiR3VhdGVtYWxhbiBRdWV0emFsIiwia2luZCI6ImZpYXQiLCJsb2dvaWQiOiJjb3VudHJ5L0dUIn0sCnsiaWQiOiJHWUQiLCJjb2RlIjoiR1lEIiwiZGVzY3JpcHRpb24iOiJHdXlhbmFlc2UgRG9sbGFyIiwia2luZCI6ImZpYXQiLCJsb2dvaWQiOiJjb3VudHJ5L0dZIn0sCnsiaWQiOiJIS0QiLCJjb2RlIjoiSEtEIiwiZGVzY3JpcHRpb24iOiJIb25nIEtvbmcgRG9sbGFyIiwia2luZCI6ImZpYXQiLCJsb2dvaWQiOiJjb3VudHJ5L0hLIn0sCnsiaWQiOiJITkwiLCJjb2RlIjoiSE5MIiwiZGVzY3JpcHRpb24iOiJIb25kdXJhbiBMZW1waXJhIiwia2luZCI6ImZpYXQiLCJsb2dvaWQiOiJjb3VudHJ5L0hOIn0sCnsiaWQiOiJIVEciLCJjb2RlIjoiSFRHIiwiZGVzY3JpcHRpb24iOiJIYWl0aWFuIEdvdXJkZSIsImtpbmQiOiJmaWF0IiwibG9nb2lkIjoiY291bnRyeS9IVCJ9LAp7ImlkIjoiSFVGIiwiY29kZSI6IkhVRiIsImRlc2NyaXB0aW9uIjoiSHVuZ2FyaWFuIEZvcmludCIsImtpbmQiOiJmaWF0IiwibG9nb2lkIjoiY291bnRyeS9IVSJ9LAp7ImlkIjoiSURSIiwiY29kZSI6IklEUiIsImRlc2NyaXB0aW9uIjoiSW5kb25lc2lhbiBSdXBpYWgiLCJraW5kIjoiZmlhdCIsImxvZ29pZCI6ImNvdW50cnkvSUQifSwKeyJpZCI6IklMUyIsImNvZGUiOiJJTFMiLCJkZXNjcmlwdGlvbiI6IklzcmFlbGkgTmV3IFNoZWtlbCIsImtpbmQiOiJmaWF0IiwibG9nb2lkIjoiY291bnRyeS9JTCJ9LAp7ImlkIjoiSU5SIiwiY29kZSI6IklOUiIsImRlc2NyaXB0aW9uIjoiSW5kaWFuIFJ1cGVlIiwia2luZCI6ImZpYXQiLCJsb2dvaWQiOiJjb3VudHJ5L0lOIn0sCnsiaWQiOiJJUUQiLCJjb2RlIjoiSVFEIiwiZGVzY3JpcHRpb24iOiJJcmFxaSBEaW5hciIsImtpbmQiOiJmaWF0IiwibG9nb2lkIjoiY291bnRyeS9JUSJ9LAp7ImlkIjoiSVJSIiwiY29kZSI6IklSUiIsImRlc2NyaXB0aW9uIjoiSXJhbmlhbiBSaWFsIiwia2luZCI6ImZpYXQiLCJsb2dvaWQiOiJjb3VudHJ5L0lSIn0sCnsiaWQiOiJJU0siLCJjb2RlIjoiSVNLIiwiZGVzY3JpcHRpb24iOiJJY2VsYW5kaWMgS3LDs25hIiwia2luZCI6ImZpYXQiLCJsb2dvaWQiOiJjb3VudHJ5L0lTIn0sCnsiaWQiOiJKTUQiLCJjb2RlIjoiSk1EIiwiZGVzY3JpcHRpb24iOiJKYW1haWNhbiBEb2xsYXIiLCJraW5kIjoiZmlhdCIsImxvZ29pZCI6ImNvdW50cnkvSk0ifSwKeyJpZCI6IkpPRCIsImNvZGUiOiJKT0QiLCJkZXNjcmlwdGlvbiI6IkpvcmRhbmlhbiBEaW5hciIsImtpbmQiOiJmaWF0IiwibG9nb2lkIjoiY291bnRyeS9KTyJ9LAp7ImlkIjoiSlBZIiwiY29kZSI6IkpQWSIsImRlc2NyaXB0aW9uIjoiSmFwYW5lc2UgWWVuIiwia2luZCI6ImZpYXQiLCJsb2dvaWQiOiJjb3VudHJ5L0pQIn0sCnsiaWQiOiJLRVMiLCJjb2RlIjoiS0VTIiwiZGVzY3JpcHRpb24iOiJLZW55YW4gU2hpbGxpbmciLCJraW5kIjoiZmlhdCIsImxvZ29pZCI6ImNvdW50cnkvS0UifSwKeyJpZCI6IktHUyIsImNvZGUiOiJLR1MiLCJkZXNjcmlwdGlvbiI6Ikt5cmd5c3RhbmkgU29tIiwia2luZCI6ImZpYXQiLCJsb2dvaWQiOiJjb3VudHJ5L0tHIn0sCnsiaWQiOiJLSFIiLCJjb2RlIjoiS0hSIiwiZGVzY3JpcHRpb24iOiJDYW1ib2RpYW4gUmllbCIsImtpbmQiOiJmaWF0IiwibG9nb2lkIjoiY291bnRyeS9LSCJ9LAp7ImlkIjoiS01GIiwiY29kZSI6IktNRiIsImRlc2NyaXB0aW9uIjoiQ29tb3JpYW4gRnJhbmMiLCJraW5kIjoiZmlhdCIsImxvZ29pZCI6ImNvdW50cnkvS00ifSwKeyJpZCI6IktQVyIsImNvZGUiOiJLUFciLCJkZXNjcmlwdGlvbiI6Ik5vcnRoIEtvcmVhbiBXb24iLCJraW5kIjoiZmlhdCIsImxvZ29pZCI6ImNvdW50cnkvS1AifSwKeyJpZCI6IktSVyIsImNvZGUiOiJLUlciLCJkZXNjcmlwdGlvbiI6IlNvdXRoIEtvcmVhbiBXb24iLCJraW5kIjoiZmlhdCIsImxvZ29pZCI6ImNvdW50cnkvS1IifSwKeyJpZCI6IktXRCIsImNvZGUiOiJLV0QiLCJkZXNjcmlwdGlvbiI6Ikt1d2FpdGkgRGluYXIiLCJraW5kIjoiZmlhdCIsImxvZ29pZCI6ImNvdW50cnkvS1cifSwKeyJpZCI6IktZRCIsImNvZGUiOiJLWUQiLCJkZXNjcmlwdGlvbiI6IkNheW1hbiBJc2xhbmRzIERvbGxhciIsImtpbmQiOiJmaWF0IiwibG9nb2lkIjoiY291bnRyeS9LWSJ9LAp7ImlkIjoiS1pUIiwiY29kZSI6IktaVCIsImRlc2NyaXB0aW9uIjoiS2F6YWtoc3RhbmkgVGVuZ2UiLCJraW5kIjoiZmlhdCIsImxvZ29pZCI6ImNvdW50cnkvS1oifSwKeyJpZCI6IkxBSyIsImNvZGUiOiJMQUsiLCJkZXNjcmlwdGlvbiI6Ikxhb3RpYW4gS2lwIiwia2luZCI6ImZpYXQiLCJsb2dvaWQiOiJjb3VudHJ5L0xBIn0sCnsiaWQiOiJMQlAiLCJjb2RlIjoiTEJQIiwiZGVzY3JpcHRpb24iOiJMZWJhbmVzZSBQb3VuZCIsImtpbmQiOiJmaWF0IiwibG9nb2lkIjoiY291bnRyeS9MQiJ9LAp7ImlkIjoiTEtSIiwiY29kZSI6IkxLUiIsImRlc2NyaXB0aW9uIjoiU3JpIExhbmthbiBSdXBlZSIsImtpbmQiOiJmaWF0IiwibG9nb2lkIjoiY291bnRyeS9MSyJ9LAp7ImlkIjoiTFJEIiwiY29kZSI6IkxSRCIsImRlc2NyaXB0aW9uIjoiTGliZXJpYW4gRG9sbGFyIiwia2luZCI6ImZpYXQiLCJsb2dvaWQiOiJjb3VudHJ5L0xSIn0sCnsiaWQiOiJMU0wiLCJjb2RlIjoiTFNMIiwiZGVzY3JpcHRpb24iOiJMZXNvdGhvIExvdGkiLCJraW5kIjoiZmlhdCIsImxvZ29pZCI6ImNvdW50cnkvTFMifSwKeyJpZCI6IkxZRCIsImNvZGUiOiJMWUQiLCJkZXNjcmlwdGlvbiI6IkxpYnlhbiBEaW5hciIsImtpbmQiOiJmaWF0IiwibG9nb2lkIjoiY291bnRyeS9MWSJ9LAp7ImlkIjoiTUFEIiwiY29kZSI6Ik1BRCIsImRlc2NyaXB0aW9uIjoiTW9yb2NjYW4gRGlyaGFtIiwia2luZCI6ImZpYXQiLCJsb2dvaWQiOiJjb3VudHJ5L01BIn0sCnsiaWQiOiJNREwiLCJjb2RlIjoiTURMIiwiZGVzY3JpcHRpb24iOiJNb2xkb3ZhbiBMZXUiLCJraW5kIjoiZmlhdCIsImxvZ29pZCI6ImNvdW50cnkvTUQifSwKeyJpZCI6Ik1HQSIsImNvZGUiOiJNR0EiLCJkZXNjcmlwdGlvbiI6Ik1hbGFnYXN5IEFyaWFyeSIsImtpbmQiOiJmaWF0IiwibG9nb2lkIjoiY291bnRyeS9NRyJ9LAp7ImlkIjoiTUtEIiwiY29kZSI6Ik1LRCIsImRlc2NyaXB0aW9uIjoiTWFjZWRvbmlhbiBEZW5hciIsImtpbmQiOiJmaWF0IiwibG9nb2lkIjoiY291bnRyeS9NSyJ9LAp7ImlkIjoiTU1LIiwiY29kZSI6Ik1NSyIsImRlc2NyaXB0aW9uIjoiTXlhbm1hciBLeWF0Iiwia2luZCI6ImZpYXQiLCJsb2dvaWQiOiJjb3VudHJ5L01NIn0sCnsiaWQiOiJNTlQiLCJjb2RlIjoiTU5UIiwiZGVzY3JpcHRpb24iOiJNb25nb2xpYW4gVHVncmlrIiwia2luZCI6ImZpYXQiLCJsb2dvaWQiOiJjb3VudHJ5L01OIn0sCnsiaWQiOiJNT1AiLCJjb2RlIjoiTU9QIiwiZGVzY3JpcHRpb24iOiJNYWNhbmVzZSBQYXRhY2EiLCJraW5kIjoiZmlhdCIsImxvZ29pZCI6ImNvdW50cnkvTU8ifSwKeyJpZCI6Ik1SVSIsImNvZGUiOiJNUlUiLCJkZXNjcmlwdGlvbiI6Ik1hdXJpdGFuaWFuIG91Z3VpeWEiLCJraW5kIjoiZmlhdCIsImxvZ29pZCI6ImNvdW50cnkvTVIifSwKeyJpZCI6Ik1VUiIsImNvZGUiOiJNVVIiLCJkZXNjcmlwdGlvbiI6Ik1hdXJpdGlhbiBSdXBlZSIsImtpbmQiOiJmaWF0IiwibG9nb2lkIjoiY291bnRyeS9NVSJ9LAp7ImlkIjoiTVZSIiwiY29kZSI6Ik1WUiIsImRlc2NyaXB0aW9uIjoiTWFsZGl2aWFuIFJ1Zml5YWEiLCJraW5kIjoiZmlhdCIsImxvZ29pZCI6ImNvdW50cnkvTVYifSwKeyJpZCI6Ik1XSyIsImNvZGUiOiJNV0siLCJkZXNjcmlwdGlvbiI6Ik1hbGF3aWFuIEt3YWNoYSIsImtpbmQiOiJmaWF0IiwibG9nb2lkIjoiY291bnRyeS9NVyJ9LAp7ImlkIjoiTVhOIiwiY29kZSI6Ik1YTiIsImRlc2NyaXB0aW9uIjoiTWV4aWNhbiBQZXNvIiwia2luZCI6ImZpYXQiLCJsb2dvaWQiOiJjb3VudHJ5L01YIn0sCnsiaWQiOiJNWFYiLCJjb2RlIjoiTVhWIiwiZGVzY3JpcHRpb24iOiJNZXhpY2FuIEludmVzdG1lbnQgVW5pdCIsImtpbmQiOiJmaWF0IiwibG9nb2lkIjoiY291bnRyeS9NWCJ9LAp7ImlkIjoiTVlSIiwiY29kZSI6Ik1ZUiIsImRlc2NyaXB0aW9uIjoiTWFsYXlzaWFuIFJpbmdnaXQiLCJraW5kIjoiZmlhdCIsImxvZ29pZCI6ImNvdW50cnkvTVkifSwKeyJpZCI6Ik1aTiIsImNvZGUiOiJNWk4iLCJkZXNjcmlwdGlvbiI6Ik1vemFtYmljYW4gTWV0aWNhbCIsImtpbmQiOiJmaWF0IiwibG9nb2lkIjoiY291bnRyeS9NWiJ9LAp7ImlkIjoiTkFEIiwiY29kZSI6Ik5BRCIsImRlc2NyaXB0aW9uIjoiTmFtaWJpYW4gRG9sbGFyIiwia2luZCI6ImZpYXQiLCJsb2dvaWQiOiJjb3VudHJ5L05BIn0sCnsiaWQiOiJOR04iLCJjb2RlIjoiTkdOIiwiZGVzY3JpcHRpb24iOiJOaWdlcmlhbiBOYWlyYSIsImtpbmQiOiJmaWF0IiwibG9nb2lkIjoiY291bnRyeS9ORyJ9LAp7ImlkIjoiTklPIiwiY29kZSI6Ik5JTyIsImRlc2NyaXB0aW9uIjoiTmljYXJhZ3VhbiBDw7NyZG9iYSIsImtpbmQiOiJmaWF0IiwibG9nb2lkIjoiY291bnRyeS9OSSJ9LAp7ImlkIjoiTk9LIiwiY29kZSI6Ik5PSyIsImRlc2NyaXB0aW9uIjoiTm9yd2VnaWFuIEtyb25lIiwia2luZCI6ImZpYXQiLCJsb2dvaWQiOiJjb3VudHJ5L05PIn0sCnsiaWQiOiJOUFIiLCJjb2RlIjoiTlBSIiwiZGVzY3JpcHRpb24iOiJOZXBhbGVzZSBSdXBlZSIsImtpbmQiOiJmaWF0IiwibG9nb2lkIjoiY291bnRyeS9OUCJ9LAp7ImlkIjoiTlpEIiwiY29kZSI6Ik5aRCIsImRlc2NyaXB0aW9uIjoiTmV3IFplYWxhbmQgRG9sbGFyIiwia2luZCI6ImZpYXQiLCJsb2dvaWQiOiJjb3VudHJ5L05aIn0sCnsiaWQiOiJPTVIiLCJjb2RlIjoiT01SIiwiZGVzY3JpcHRpb24iOiJPbWFuaSBSaWFsIiwia2luZCI6ImZpYXQiLCJsb2dvaWQiOiJjb3VudHJ5L09NIn0sCnsiaWQiOiJQQUIiLCJjb2RlIjoiUEFCIiwiZGVzY3JpcHRpb24iOiJQYW5hbWFuaWFuIEJhbGJvYSIsImtpbmQiOiJmaWF0IiwibG9nb2lkIjoiY291bnRyeS9QQSJ9LAp7ImlkIjoiUEVOIiwiY29kZSI6IlBFTiIsImRlc2NyaXB0aW9uIjoiUGVydXZpYW4gU29sIiwia2luZCI6ImZpYXQiLCJsb2dvaWQiOiJjb3VudHJ5L1BFIn0sCnsiaWQiOiJQR0siLCJjb2RlIjoiUEdLIiwiZGVzY3JpcHRpb24iOiJQYXB1YSBOZXcgR3VpbmVhbiBLaW5hIiwia2luZCI6ImZpYXQiLCJsb2dvaWQiOiJjb3VudHJ5L1BHIn0sCnsiaWQiOiJQSFAiLCJjb2RlIjoiUEhQIiwiZGVzY3JpcHRpb24iOiJQaGlsaXBwaW5lIFBlc28iLCJraW5kIjoiZmlhdCIsImxvZ29pZCI6ImNvdW50cnkvUEgifSwKeyJpZCI6IlBLUiIsImNvZGUiOiJQS1IiLCJkZXNjcmlwdGlvbiI6IlBha2lzdGFuaSBSdXBlZSIsImtpbmQiOiJmaWF0IiwibG9nb2lkIjoiY291bnRyeS9QSyJ9LAp7ImlkIjoiUExOIiwiY29kZSI6IlBMTiIsImRlc2NyaXB0aW9uIjoiUG9saXNoIFpsb3R5Iiwia2luZCI6ImZpYXQiLCJsb2dvaWQiOiJjb3VudHJ5L1BMIn0sCnsiaWQiOiJQWUciLCJjb2RlIjoiUFlHIiwiZGVzY3JpcHRpb24iOiJQYXJhZ3VheWFuIEd1YXJhbmkiLCJraW5kIjoiZmlhdCIsImxvZ29pZCI6ImNvdW50cnkvUFkifSwKeyJpZCI6IlFBUiIsImNvZGUiOiJRQVIiLCJkZXNjcmlwdGlvbiI6IlFhdGFyaSBSaWFsIiwia2luZCI6ImZpYXQiLCJsb2dvaWQiOiJjb3VudHJ5L1FBIn0sCnsiaWQiOiJST04iLCJjb2RlIjoiUk9OIiwiZGVzY3JpcHRpb24iOiJSb21hbmlhbiBMZXUiLCJraW5kIjoiZmlhdCIsImxvZ29pZCI6ImNvdW50cnkvUk8ifSwKeyJpZCI6IlJTRCIsImNvZGUiOiJSU0QiLCJkZXNjcmlwdGlvbiI6IlNlcmJpYW4gRGluYXIiLCJraW5kIjoiZmlhdCIsImxvZ29pZCI6ImNvdW50cnkvUlMifSwKeyJpZCI6IlJVQiIsImNvZGUiOiJSVUIiLCJkZXNjcmlwdGlvbiI6IlJ1c3NpYW4gUnVibGUiLCJraW5kIjoiZmlhdCIsImxvZ29pZCI6ImNvdW50cnkvUlUifSwKeyJpZCI6IlJXRiIsImNvZGUiOiJSV0YiLCJkZXNjcmlwdGlvbiI6IlJ3YW5kYW4gRnJhbmMiLCJraW5kIjoiZmlhdCIsImxvZ29pZCI6ImNvdW50cnkvUlcifSwKeyJpZCI6IlNBUiIsImNvZGUiOiJTQVIiLCJkZXNjcmlwdGlvbiI6IlNhdWRpIFJpeWFsIiwia2luZCI6ImZpYXQiLCJsb2dvaWQiOiJjb3VudHJ5L1NBIn0sCnsiaWQiOiJTQkQiLCJjb2RlIjoiU0JEIiwiZGVzY3JpcHRpb24iOiJTb2xvbW9uIElzbGFuZHMgRG9sbGFyIiwia2luZCI6ImZpYXQiLCJsb2dvaWQiOiJjb3VudHJ5L1NCIn0sCnsiaWQiOiJTQ1IiLCJjb2RlIjoiU0NSIiwiZGVzY3JpcHRpb24iOiJTZXljaGVsbG9pcyBSdXBlZSIsImtpbmQiOiJmaWF0IiwibG9nb2lkIjoiY291bnRyeS9TQyJ9LAp7ImlkIjoiU0RHIiwiY29kZSI6IlNERyIsImRlc2NyaXB0aW9uIjoiU3VkYW5lc2UgUG91bmQiLCJraW5kIjoiZmlhdCIsImxvZ29pZCI6ImNvdW50cnkvU0QifSwKeyJpZCI6IlNFSyIsImNvZGUiOiJTRUsiLCJkZXNjcmlwdGlvbiI6IlN3ZWRpc2ggS3JvbmEiLCJraW5kIjoiZmlhdCIsImxvZ29pZCI6ImNvdW50cnkvU0UifSwKeyJpZCI6IlNHRCIsImNvZGUiOiJTR0QiLCJkZXNjcmlwdGlvbiI6IlNpbmdhcG9yZSBEb2xsYXIiLCJraW5kIjoiZmlhdCIsImxvZ29pZCI6ImNvdW50cnkvU0cifSwKeyJpZCI6IlNMTCIsImNvZGUiOiJTTEwiLCJkZXNjcmlwdGlvbiI6IlNpZXJyYSBMZW9uZWFuIExlb25lIiwia2luZCI6ImZpYXQiLCJsb2dvaWQiOiJjb3VudHJ5L1NMIn0sCnsiaWQiOiJTT1MiLCJjb2RlIjoiU09TIiwiZGVzY3JpcHRpb24iOiJTb21hbGkgU2hpbGxpbmciLCJraW5kIjoiZmlhdCIsImxvZ29pZCI6ImNvdW50cnkvU08ifSwKeyJpZCI6IlNSRCIsImNvZGUiOiJTUkQiLCJkZXNjcmlwdGlvbiI6IlN1cmluYW1lc2UgRG9sbGFyIiwia2luZCI6ImZpYXQiLCJsb2dvaWQiOiJjb3VudHJ5L1NSIn0sCnsiaWQiOiJTVE4iLCJjb2RlIjoiU1ROIiwiZGVzY3JpcHRpb24iOiJTYW8gVG9tZSBhbmQgUHJpbmNpcGUgZG9icmEiLCJraW5kIjoiZmlhdCIsImxvZ29pZCI6ImNvdW50cnkvU1QifSwKeyJpZCI6IlNWQyIsImNvZGUiOiJTVkMiLCJkZXNjcmlwdGlvbiI6IlNhbHZhZG9yYW4gQ29sw7NuIiwia2luZCI6ImZpYXQiLCJsb2dvaWQiOiJjb3VudHJ5L1NWIn0sCnsiaWQiOiJTWVAiLCJjb2RlIjoiU1lQIiwiZGVzY3JpcHRpb24iOiJTeXJpYW4gUG91bmQiLCJraW5kIjoiZmlhdCIsImxvZ29pZCI6ImNvdW50cnkvU1kifSwKeyJpZCI6IlNaTCIsImNvZGUiOiJTWkwiLCJkZXNjcmlwdGlvbiI6IlN3YXppIExpbGFuZ2VuaSIsImtpbmQiOiJmaWF0IiwibG9nb2lkIjoiY291bnRyeS9TWiJ9LAp7ImlkIjoiVEhCIiwiY29kZSI6IlRIQiIsImRlc2NyaXB0aW9uIjoiVGhhaSBCYWh0Iiwia2luZCI6ImZpYXQiLCJsb2dvaWQiOiJjb3VudHJ5L1RIIn0sCnsiaWQiOiJUSlMiLCJjb2RlIjoiVEpTIiwiZGVzY3JpcHRpb24iOiJUYWppa2lzdGFuaSBTb21vbmkiLCJraW5kIjoiZmlhdCIsImxvZ29pZCI6ImNvdW50cnkvVEoifSwKeyJpZCI6IlRNVCIsImNvZGUiOiJUTVQiLCJkZXNjcmlwdGlvbiI6IlR1cmttZW5pc3RhbmkgTWFuYXQiLCJraW5kIjoiZmlhdCIsImxvZ29pZCI6ImNvdW50cnkvVE0ifSwKeyJpZCI6IlRORCIsImNvZGUiOiJUTkQiLCJkZXNjcmlwdGlvbiI6IlR1bmlzaWFuIERpbmFyIiwia2luZCI6ImZpYXQiLCJsb2dvaWQiOiJjb3VudHJ5L1ROIn0sCnsiaWQiOiJUT1AiLCJjb2RlIjoiVE9QIiwiZGVzY3JpcHRpb24iOiJUb25nYW4gUGHKu2FuZ2EiLCJraW5kIjoiZmlhdCIsImxvZ29pZCI6ImNvdW50cnkvVE8ifSwKeyJpZCI6IlRSWSIsImNvZGUiOiJUUlkiLCJkZXNjcmlwdGlvbiI6IlR1cmtpc2ggTGlyYSIsImtpbmQiOiJmaWF0IiwibG9nb2lkIjoiY291bnRyeS9UUiJ9LAp7ImlkIjoiVFREIiwiY29kZSI6IlRURCIsImRlc2NyaXB0aW9uIjoiVHJpbmlkYWQgJiBUb2JhZ28gRG9sbGFyIiwia2luZCI6ImZpYXQiLCJsb2dvaWQiOiJjb3VudHJ5L1RUIn0sCnsiaWQiOiJUV0QiLCJjb2RlIjoiVFdEIiwiZGVzY3JpcHRpb24iOiJOZXcgVGFpd2FuIERvbGxhciIsImtpbmQiOiJmaWF0IiwibG9nb2lkIjoiY291bnRyeS9UVyJ9LAp7ImlkIjoiVFpTIiwiY29kZSI6IlRaUyIsImRlc2NyaXB0aW9uIjoiVGFuemFuaWFuIFNoaWxsaW5nIiwia2luZCI6ImZpYXQiLCJsb2dvaWQiOiJjb3VudHJ5L1RaIn0sCnsiaWQiOiJVQUgiLCJjb2RlIjoiVUFIIiwiZGVzY3JpcHRpb24iOiJVa3JhaW5pYW4gSHJ5dm5pYSIsImtpbmQiOiJmaWF0IiwibG9nb2lkIjoiY291bnRyeS9VQSJ9LAp7ImlkIjoiVUdYIiwiY29kZSI6IlVHWCIsImRlc2NyaXB0aW9uIjoiVWdhbmRhbiBTaGlsbGluZyIsImtpbmQiOiJmaWF0IiwibG9nb2lkIjoiY291bnRyeS9VRyJ9LAp7ImlkIjoiVVNEIiwiY29kZSI6IlVTRCIsImRlc2NyaXB0aW9uIjoiVVMgRG9sbGFyIiwia2luZCI6ImZpYXQiLCJsb2dvaWQiOiJjb3VudHJ5L1VTIn0sCnsiaWQiOiJVWVUiLCJjb2RlIjoiVVlVIiwiZGVzY3JpcHRpb24iOiJVcnVndWF5YW4gUGVzbyIsImtpbmQiOiJmaWF0IiwibG9nb2lkIjoiY291bnRyeS9VWSJ9LAp7ImlkIjoiVVpTIiwiY29kZSI6IlVaUyIsImRlc2NyaXB0aW9uIjoiVXpiZWtpc3RhbmkgU29tIiwia2luZCI6ImZpYXQiLCJsb2dvaWQiOiJjb3VudHJ5L1VaIn0sCnsiaWQiOiJWRVMiLCJjb2RlIjoiVkVTIiwiZGVzY3JpcHRpb24iOiJTb3ZlcmVpZ24gYm9sw612YXIiLCJraW5kIjoiZmlhdCIsImxvZ29pZCI6ImNvdW50cnkvVkUifSwKeyJpZCI6IlZORCIsImNvZGUiOiJWTkQiLCJkZXNjcmlwdGlvbiI6IlZpZXRuYW1lc2UgRG9uZyIsImtpbmQiOiJmaWF0IiwibG9nb2lkIjoiY291bnRyeS9WTiJ9LAp7ImlkIjoiVlVWIiwiY29kZSI6IlZVViIsImRlc2NyaXB0aW9uIjoiVmFudWF0dSBWYXR1Iiwia2luZCI6ImZpYXQiLCJsb2dvaWQiOiJjb3VudHJ5L1ZVIn0sCnsiaWQiOiJXU1QiLCJjb2RlIjoiV1NUIiwiZGVzY3JpcHRpb24iOiJTYW1vYW4gVGFsYSIsImtpbmQiOiJmaWF0IiwibG9nb2lkIjoiY291bnRyeS9XUyJ9LAp7ImlkIjoiWEFGIiwiY29kZSI6IlhBRiIsImRlc2NyaXB0aW9uIjoiQ2VudHJhbCBBZnJpY2FuIENGQSBGcmFuYyIsImtpbmQiOiJmaWF0IiwibG9nb2lkIjoiY291bnRyeS9DRiJ9LAp7ImlkIjoiWENEIiwiY29kZSI6IlhDRCIsImRlc2NyaXB0aW9uIjoiRWFzdCBDYXJpYmJlYW4gRG9sbGFyIiwia2luZCI6ImZpYXQiLCJsb2dvaWQiOiJjb3VudHJ5L0FHIn0sCnsiaWQiOiJYQ0ciLCJjb2RlIjoiWENHIiwiZGVzY3JpcHRpb24iOiJDYXJpYmJlYW4gZ3VpbGRlciIsImtpbmQiOiJmaWF0IiwibG9nb2lkIjoiY291bnRyeS9DVyJ9LAp7ImlkIjoiWERSIiwiY29kZSI6IlhEUiIsImRlc2NyaXB0aW9uIjoiU0RSIChTcGVjaWFsIERyYXdpbmcgUmlnaHQpIiwia2luZCI6ImZpYXQiLCJsb2dvaWQiOiJjb3VudHJ5L1VTIn0sCnsiaWQiOiJYT0YiLCJjb2RlIjoiWE9GIiwiZGVzY3JpcHRpb24iOiJXZXN0IEFmcmljYW4gQ0ZBIEZyYW5jIiwia2luZCI6ImZpYXQiLCJsb2dvaWQiOiJjb3VudHJ5L0JKIn0sCnsiaWQiOiJYUEYiLCJjb2RlIjoiWFBGIiwiZGVzY3JpcHRpb24iOiJDRlAgRnJhbmMiLCJraW5kIjoiZmlhdCIsImxvZ29pZCI6ImNvdW50cnkvUEYifSwKeyJpZCI6IlhUVkFUUyIsImNvZGUiOiJBVFMiLCJkZXNjcmlwdGlvbiI6IkF1c3RyaWFuIFNjaGlsbGluZyIsImtpbmQiOiJmaWF0IiwibG9nb2lkIjoiY291bnRyeS9BVCJ9LAp7ImlkIjoiWFRWQkVGIiwiY29kZSI6IkJFRiIsImRlc2NyaXB0aW9uIjoiQmVsZ2lhbiBGcmFuYyIsImtpbmQiOiJmaWF0IiwibG9nb2lkIjoiY291bnRyeS9CRSJ9LAp7ImlkIjoiWFRWQzFJTkNIIiwiY29kZSI6IjFJTkNIIiwiZGVzY3JpcHRpb24iOiIxaW5jaCIsImtpbmQiOiJjcnlwdG8iLCJsb2dvaWQiOiJjcnlwdG8vWFRWQzFJTkNIIn0sCnsiaWQiOiJYVFZDQUFWRSIsImNvZGUiOiJBQVZFIiwiZGVzY3JpcHRpb24iOiJBYXZlIiwia2luZCI6ImNyeXB0byIsImxvZ29pZCI6ImNyeXB0by9YVFZDQUFWRSJ9LAp7ImlkIjoiWFRWQ0FEQSIsImNvZGUiOiJBREEiLCJkZXNjcmlwdGlvbiI6IkNhcmRhbm8iLCJraW5kIjoiY3J5cHRvIiwibG9nb2lkIjoiY3J5cHRvL1hUVkNBREEifSwKeyJpZCI6IlhUVkNBTEdPIiwiY29kZSI6IkFMR08iLCJkZXNjcmlwdGlvbiI6IkFsZ29yYW5kIiwia2luZCI6ImNyeXB0byIsImxvZ29pZCI6ImNyeXB0by9YVFZDQUxHTyJ9LAp7ImlkIjoiWFRWQ0FOS1IiLCJjb2RlIjoiQU5LUiIsImRlc2NyaXB0aW9uIjoiQW5rciIsImtpbmQiOiJjcnlwdG8iLCJsb2dvaWQiOiJjcnlwdG8vWFRWQ0FOS1IifSwKeyJpZCI6IlhUVkNBVE9NIiwiY29kZSI6IkFUT00iLCJkZXNjcmlwdGlvbiI6IkNvc21vcyIsImtpbmQiOiJjcnlwdG8iLCJsb2dvaWQiOiJjcnlwdG8vWFRWQ0FUT00ifSwKeyJpZCI6IlhUVkNBVkFYIiwiY29kZSI6IkFWQVgiLCJkZXNjcmlwdGlvbiI6IkF2YWxhbmNoZSIsImtpbmQiOiJjcnlwdG8iLCJsb2dvaWQiOiJjcnlwdG8vWFRWQ0FWQVgifSwKeyJpZCI6IlhUVkNBWFMiLCJjb2RlIjoiQVhTIiwiZGVzY3JpcHRpb24iOiJBeGllIEluZmluaXR5Iiwia2luZCI6ImNyeXB0byIsImxvZ29pZCI6ImNyeXB0by9YVFZDQVhTIn0sCnsiaWQiOiJYVFZDQkFUIiwiY29kZSI6IkJBVCIsImRlc2NyaXB0aW9uIjoiQmFzaWMgQXR0ZW50aW9uIFRva2VuIiwia2luZCI6ImNyeXB0byIsImxvZ29pZCI6ImNyeXB0by9YVFZDQkFUIn0sCnsiaWQiOiJYVFZDQkNIIiwiY29kZSI6IkJDSCIsImRlc2NyaXB0aW9uIjoiQml0Y29pbiBDYXNoIiwia2luZCI6ImNyeXB0byIsImxvZ29pZCI6ImNyeXB0by9YVFZDQkNIIn0sCnsiaWQiOiJYVFZDQk5CIiwiY29kZSI6IkJOQiIsImRlc2NyaXB0aW9uIjoiQk5CIiwia2luZCI6ImNyeXB0byIsImxvZ29pZCI6ImNyeXB0by9YVFZDQk5CIn0sCnsiaWQiOiJYVFZDQk5UIiwiY29kZSI6IkJOVCIsImRlc2NyaXB0aW9uIjoiQmFuY29yIiwia2luZCI6ImNyeXB0byIsImxvZ29pZCI6ImNyeXB0by9YVFZDQk5UIn0sCnsiaWQiOiJYVFZDQlNWIiwiY29kZSI6IkJTViIsImRlc2NyaXB0aW9uIjoiQml0Y29pbiBTViIsImtpbmQiOiJjcnlwdG8iLCJsb2dvaWQiOiJjcnlwdG8vWFRWQ0JTViJ9LAp7ImlkIjoiWFRWQ0JUQyIsImNvZGUiOiJCVEMiLCJkZXNjcmlwdGlvbiI6IkJpdGNvaW4iLCJraW5kIjoiY3J5cHRvIiwibG9nb2lkIjoiY3J5cHRvL1hUVkNCVEMifSwKeyJpZCI6IlhUVkNDQUtFIiwiY29kZSI6IkNBS0UiLCJkZXNjcmlwdGlvbiI6IlBhbmNha2VTd2FwIiwia2luZCI6ImNyeXB0byIsImxvZ29pZCI6ImNyeXB0by9YVFZDQ0FLRSJ9LAp7ImlkIjoiWFRWQ0NLQiIsImNvZGUiOiJDS0IiLCJkZXNjcmlwdGlvbiI6Ik5lcnZvcyBOZXR3b3JrIiwia2luZCI6ImNyeXB0byIsImxvZ29pZCI6ImNyeXB0by9YVFZDQ0tCIn0sCnsiaWQiOiJYVFZDQ09NUCIsImNvZGUiOiJDT01QIiwiZGVzY3JpcHRpb24iOiJDb21wb3VuZCIsImtpbmQiOiJjcnlwdG8iLCJsb2dvaWQiOiJjcnlwdG8vWFRWQ0NPTVAifSwKeyJpZCI6IlhUVkNDT1RJIiwiY29kZSI6IkNPVEkiLCJkZXNjcmlwdGlvbiI6IkNPVEkiLCJraW5kIjoiY3J5cHRvIiwibG9nb2lkIjoiY3J5cHRvL1hUVkNDT1RJIn0sCnsiaWQiOiJYVFZDQ1JWIiwiY29kZSI6IkNSViIsImRlc2NyaXB0aW9uIjoiQ3VydmUgREFPIFRva2VuIiwia2luZCI6ImNyeXB0byIsImxvZ29pZCI6ImNyeXB0by9YVFZDQ1JWIn0sCnsiaWQiOiJYVFZDREFJIiwiY29kZSI6IkRBSSIsImRlc2NyaXB0aW9uIjoiRGFpIiwia2luZCI6ImNyeXB0byIsImxvZ29pZCI6ImNyeXB0by9YVFZDREFJIn0sCnsiaWQiOiJYVFZDRE9HRSIsImNvZGUiOiJET0dFIiwiZGVzY3JpcHRpb24iOiJEb2dlY29pbiIsImtpbmQiOiJjcnlwdG8iLCJsb2dvaWQiOiJjcnlwdG8vWFRWQ0RPR0UifSwKeyJpZCI6IlhUVkNET1QiLCJjb2RlIjoiRE9UIiwiZGVzY3JpcHRpb24iOiJQb2xrYWRvdCIsImtpbmQiOiJjcnlwdG8iLCJsb2dvaWQiOiJjcnlwdG8vWFRWQ0RPVCJ9LAp7ImlkIjoiWFRWQ0RZRFgiLCJjb2RlIjoiRVRIRFlEWCIsImRlc2NyaXB0aW9uIjoiZFlkWCAoZXRoRFlEWCkiLCJraW5kIjoiY3J5cHRvIiwibG9nb2lkIjoiY3J5cHRvL1hUVkNEWURYIn0sCnsiaWQiOiJYVFZDRUdMRCIsImNvZGUiOiJFR0xEIiwiZGVzY3JpcHRpb24iOiJNdWx0aXZlcnNYIiwia2luZCI6ImNyeXB0byIsImxvZ29pZCI6ImNyeXB0by9YVFZDRUdMRCJ9LAp7ImlkIjoiWFRWQ0VPUyIsImNvZGUiOiJFT1MiLCJkZXNjcmlwdGlvbiI6IkVPUyIsImtpbmQiOiJjcnlwdG8iLCJsb2dvaWQiOiJjcnlwdG8vWFRWQ0VPUyJ9LAp7ImlkIjoiWFRWQ0VUQyIsImNvZGUiOiJFVEMiLCJkZXNjcmlwdGlvbiI6IkV0aGVyZXVtIENsYXNzaWMiLCJraW5kIjoiY3J5cHRvIiwibG9nb2lkIjoiY3J5cHRvL1hUVkNFVEMifSwKeyJpZCI6IlhUVkNFVEgiLCJjb2RlIjoiRVRIIiwiZGVzY3JpcHRpb24iOiJFdGhlcmV1bSIsImtpbmQiOiJjcnlwdG8iLCJsb2dvaWQiOiJjcnlwdG8vWFRWQ0VUSCJ9LAp7ImlkIjoiWFRWQ0ZJTCIsImNvZGUiOiJGSUwiLCJkZXNjcmlwdGlvbiI6IkZpbGVjb2luIiwia2luZCI6ImNyeXB0byIsImxvZ29pZCI6ImNyeXB0by9YVFZDRklMIn0sCnsiaWQiOiJYVFZDRlRNIiwiY29kZSI6IkZUTSIsImRlc2NyaXB0aW9uIjoiRmFudG9tIChNaWdyYXRlZCB0byBTb25pYykiLCJraW5kIjoiY3J5cHRvIiwibG9nb2lkIjoiY3J5cHRvL1hUVkNGVE0ifSwKeyJpZCI6IlhUVkNGVFQiLCJjb2RlIjoiRlRUIiwiZGVzY3JpcHRpb24iOiJGVFggVG9rZW4iLCJraW5kIjoiY3J5cHRvIiwibG9nb2lkIjoiY3J5cHRvL1hUVkNGVFQifSwKeyJpZCI6IlhUVkNHTk8iLCJjb2RlIjoiR05PIiwiZGVzY3JpcHRpb24iOiJHbm9zaXMiLCJraW5kIjoiY3J5cHRvIiwibG9nb2lkIjoiY3J5cHRvL1hUVkNHTk8ifSwKeyJpZCI6IlhUVkNHUkFNIiwiY29kZSI6IkdSQU0iLCJkZXNjcmlwdGlvbiI6IkdyYW0gKHByZXYuIFRvbmNvaW4pIiwia2luZCI6ImNyeXB0byIsImxvZ29pZCI6ImNyeXB0by9YVFZDR1JBTSJ9LAp7ImlkIjoiWFRWQ0dSVCIsImNvZGUiOiJHUlQiLCJkZXNjcmlwdGlvbiI6IlRoZSBHcmFwaCIsImtpbmQiOiJjcnlwdG8iLCJsb2dvaWQiOiJjcnlwdG8vWFRWQ0dSQVBIIn0sCnsiaWQiOiJYVFZDSEJBUiIsImNvZGUiOiJIQkFSIiwiZGVzY3JpcHRpb24iOiJIZWRlcmEiLCJraW5kIjoiY3J5cHRvIiwibG9nb2lkIjoiY3J5cHRvL1hUVkNIQkFSIn0sCnsiaWQiOiJYVFZDSE5UIiwiY29kZSI6IkhOVCIsImRlc2NyaXB0aW9uIjoiSGVsaXVtIiwia2luZCI6ImNyeXB0byIsImxvZ29pZCI6ImNyeXB0by9YVFZDSE5UIn0sCnsiaWQiOiJYVFZDSE9UIiwiY29kZSI6IkhPVCIsImRlc2NyaXB0aW9uIjoiSG9sbyIsImtpbmQiOiJjcnlwdG8iLCJsb2dvaWQiOiJjcnlwdG8vWFRWQ0hPVCJ9LAp7ImlkIjoiWFRWQ0lDUCIsImNvZGUiOiJJQ1AiLCJkZXNjcmlwdGlvbiI6IkludGVybmV0IENvbXB1dGVyIiwia2luZCI6ImNyeXB0byIsImxvZ29pZCI6ImNyeXB0by9YVFZDSUNQIn0sCnsiaWQiOiJYVFZDSU9UQSIsImNvZGUiOiJJT1RBIiwiZGVzY3JpcHRpb24iOiJJT1RBIiwia2luZCI6ImNyeXB0byIsImxvZ29pZCI6ImNyeXB0by9YVFZDSU9UQSJ9LAp7ImlkIjoiWFRWQ0tBUyIsImNvZGUiOiJLQVMiLCJkZXNjcmlwdGlvbiI6Ikthc3BhIiwia2luZCI6ImNyeXB0byIsImxvZ29pZCI6ImNyeXB0by9YVFZDS0FTIn0sCnsiaWQiOiJYVFZDS0FWQSIsImNvZGUiOiJLQVZBIiwiZGVzY3JpcHRpb24iOiJLYXZhIiwia2luZCI6ImNyeXB0byIsImxvZ29pZCI6ImNyeXB0by9YVFZDS0FWQSJ9LAp7ImlkIjoiWFRWQ0tFRVAiLCJjb2RlIjoiS0VFUCIsImRlc2NyaXB0aW9uIjoiS2VlcCBOZXR3b3JrIiwia2luZCI6ImNyeXB0byIsImxvZ29pZCI6ImNyeXB0by9YVFZDS0VFUCJ9LAp7ImlkIjoiWFRWQ0tOQyIsImNvZGUiOiJLTkMiLCJkZXNjcmlwdGlvbiI6Ikt5YmVyIE5ldHdvcmsgQ3J5c3RhbCB2MiIsImtpbmQiOiJjcnlwdG8iLCJsb2dvaWQiOiJjcnlwdG8vWFRWQ0tOQyJ9LAp7ImlkIjoiWFRWQ0xFTyIsImNvZGUiOiJMRU8iLCJkZXNjcmlwdGlvbiI6IlVOVVMgU0VEIExFTyIsImtpbmQiOiJjcnlwdG8iLCJsb2dvaWQiOiJjcnlwdG8vWFRWQ0xFTyJ9LAp7ImlkIjoiWFRWQ0xJTksiLCJjb2RlIjoiTElOSyIsImRlc2NyaXB0aW9uIjoiQ2hhaW5saW5rIiwia2luZCI6ImNyeXB0byIsImxvZ29pZCI6ImNyeXB0by9YVFZDTElOSyJ9LAp7ImlkIjoiWFRWQ0xSQyIsImNvZGUiOiJMUkMiLCJkZXNjcmlwdGlvbiI6Ikxvb3ByaW5nIiwia2luZCI6ImNyeXB0byIsImxvZ29pZCI6ImNyeXB0by9YVFZDTFJDIn0sCnsiaWQiOiJYVFZDTFRDIiwiY29kZSI6IkxUQyIsImRlc2NyaXB0aW9uIjoiTGl0ZWNvaW4iLCJraW5kIjoiY3J5cHRvIiwibG9nb2lkIjoiY3J5cHRvL1hUVkNMVEMifSwKeyJpZCI6IlhUVkNNQU5BIiwiY29kZSI6Ik1BTkEiLCJkZXNjcmlwdGlvbiI6IkRlY2VudHJhbGFuZCIsImtpbmQiOiJjcnlwdG8iLCJsb2dvaWQiOiJjcnlwdG8vWFRWQ01BTkEifSwKeyJpZCI6IlhUVkNNQVRJQyIsImNvZGUiOiJNQVRJQyIsImRlc2NyaXB0aW9uIjoiUG9seWdvbiIsImtpbmQiOiJjcnlwdG8iLCJsb2dvaWQiOiJjcnlwdG8vWFRWQ01BVElDIn0sCnsiaWQiOiJYVFZDTUtSIiwiY29kZSI6Ik1LUiIsImRlc2NyaXB0aW9uIjoiTWFrZXIiLCJraW5kIjoiY3J5cHRvIiwibG9nb2lkIjoiY3J5cHRvL1hUVkNNS1IifSwKeyJpZCI6IlhUVkNORUFSIiwiY29kZSI6Ik5FQVIiLCJkZXNjcmlwdGlvbiI6Ik5FQVIgUHJvdG9jb2wiLCJraW5kIjoiY3J5cHRvIiwibG9nb2lkIjoiY3J5cHRvL1hUVkNORUFSIn0sCnsiaWQiOiJYVFZDTkgiLCJjb2RlIjoiQ05IIiwiZGVzY3JpcHRpb24iOiJDaGluZXNlIHl1YW4gb2Zmc2hvcmUiLCJraW5kIjoiZmlhdCIsImxvZ29pZCI6ImNvdW50cnkvQ04ifSwKeyJpZCI6IlhUVkNPQ0VBTiIsImNvZGUiOiJPQ0VBTiIsImRlc2NyaXB0aW9uIjoiT2NlYW4gUHJvdG9jb2wiLCJraW5kIjoiY3J5cHRvIiwibG9nb2lkIjoiY3J5cHRvL1hUVkNPQ0VBTiJ9LAp7ImlkIjoiWFRWQ09ORSIsImNvZGUiOiJPTkUiLCJkZXNjcmlwdGlvbiI6Ikhhcm1vbnkiLCJraW5kIjoiY3J5cHRvIiwibG9nb2lkIjoiY3J5cHRvL1hUVkNPTkUifSwKeyJpZCI6IlhUVkNQRVJQIiwiY29kZSI6IlBFUlAiLCJkZXNjcmlwdGlvbiI6IlBlcnBldHVhbCBQcm90b2NvbCIsImtpbmQiOiJjcnlwdG8iLCJsb2dvaWQiOiJjcnlwdG8vWFRWQ1BFUlAifSwKeyJpZCI6IlhUVkNSRU4iLCJjb2RlIjoiUkVOIiwiZGVzY3JpcHRpb24iOiJSZW4iLCJraW5kIjoiY3J5cHRvIiwibG9nb2lkIjoiY3J5cHRvL1hUVkNSRU4ifSwKeyJpZCI6IlhUVkNSRVEiLCJjb2RlIjoiUkVRIiwiZGVzY3JpcHRpb24iOiJSZXF1ZXN0Iiwia2luZCI6ImNyeXB0byIsImxvZ29pZCI6ImNyeXB0by9YVFZDUkVRIn0sCnsiaWQiOiJYVFZDUk9TRSIsImNvZGUiOiJST1NFIiwiZGVzY3JpcHRpb24iOiJPYXNpcyIsImtpbmQiOiJjcnlwdG8iLCJsb2dvaWQiOiJjcnlwdG8vWFRWQ1JPU0UifSwKeyJpZCI6IlhUVkNSU1IiLCJjb2RlIjoiUlNSIiwiZGVzY3JpcHRpb24iOiJSZXNlcnZlIFJpZ2h0cyIsImtpbmQiOiJjcnlwdG8iLCJsb2dvaWQiOiJjcnlwdG8vWFRWQ1JTUiJ9LAp7ImlkIjoiWFRWQ1JVTkUiLCJjb2RlIjoiUlVORSIsImRlc2NyaXB0aW9uIjoiVEhPUkNoYWluIiwia2luZCI6ImNyeXB0byIsImxvZ29pZCI6ImNyeXB0by9YVFZDUlVORSJ9LAp7ImlkIjoiWFRWQ1NBTkQiLCJjb2RlIjoiU0FORCIsImRlc2NyaXB0aW9uIjoiVGhlIFNhbmRib3giLCJraW5kIjoiY3J5cHRvIiwibG9nb2lkIjoiY3J5cHRvL1hUVkNTQU5EIn0sCnsiaWQiOiJYVFZDU0NSVCIsImNvZGUiOiJTQ1JUIiwiZGVzY3JpcHRpb24iOiJTZWNyZXQiLCJraW5kIjoiY3J5cHRvIiwibG9nb2lkIjoiY3J5cHRvL1hUVkNTQ1JUIn0sCnsiaWQiOiJYVFZDU0hJQiIsImNvZGUiOiJTSElCIiwiZGVzY3JpcHRpb24iOiJTaGliYSBJbnUiLCJraW5kIjoiY3J5cHRvIiwibG9nb2lkIjoiY3J5cHRvL1hUVkNTSElCIn0sCnsiaWQiOiJYVFZDU05YIiwiY29kZSI6IlNOWCIsImRlc2NyaXB0aW9uIjoiU3ludGhldGl4Iiwia2luZCI6ImNyeXB0byIsImxvZ29pZCI6ImNyeXB0by9YVFZDU05YIn0sCnsiaWQiOiJYVFZDU09MIiwiY29kZSI6IlNPTCIsImRlc2NyaXB0aW9uIjoiU29sYW5hIiwia2luZCI6ImNyeXB0byIsImxvZ29pZCI6ImNyeXB0by9YVFZDU09MIn0sCnsiaWQiOiJYVFZDU1JNIiwiY29kZSI6IlNSTSIsImRlc2NyaXB0aW9uIjoiU2VydW0iLCJraW5kIjoiY3J5cHRvIiwibG9nb2lkIjoiY3J5cHRvL1hUVkNTUk0ifSwKeyJpZCI6IlhUVkNTVVNISSIsImNvZGUiOiJTVVNISSIsImRlc2NyaXB0aW9uIjoiU3VzaGlTd2FwIiwia2luZCI6ImNyeXB0byIsImxvZ29pZCI6ImNyeXB0by9YVFZDU1VTSEkifSwKeyJpZCI6IlhUVkNTWFAiLCJjb2RlIjoiU1hQIiwiZGVzY3JpcHRpb24iOiJTb2xhciIsImtpbmQiOiJjcnlwdG8iLCJsb2dvaWQiOiJjcnlwdG8vWFRWQ1NYUCJ9LAp7ImlkIjoiWFRWQ1RIRVRBIiwiY29kZSI6IlRIRVRBIiwiZGVzY3JpcHRpb24iOiJUaGV0YSBOZXR3b3JrIiwia2luZCI6ImNyeXB0byIsImxvZ29pZCI6ImNyeXB0by9YVFZDVEhFVEEifSwKeyJpZCI6IlhUVkNUTE9TIiwiY29kZSI6IlRMT1MiLCJkZXNjcmlwdGlvbiI6IlRlbG9zIiwia2luZCI6ImNyeXB0byIsImxvZ29pZCI6ImNyeXB0by9YVFZDVExPUyJ9LAp7ImlkIjoiWFRWQ1RPTiIsImNvZGUiOiJUT04iLCJkZXNjcmlwdGlvbiI6IlRvbmNvaW4iLCJraW5kIjoiY3J5cHRvIiwibG9nb2lkIjoiY3J5cHRvL1hUVkNUT04ifSwKeyJpZCI6IlhUVkNUUlgiLCJjb2RlIjoiVFJYIiwiZGVzY3JpcHRpb24iOiJUUk9OIiwia2luZCI6ImNyeXB0byIsImxvZ29pZCI6ImNyeXB0by9YVFZDVFJYIn0sCnsiaWQiOiJYVFZDVU1BIiwiY29kZSI6IlVNQSIsImRlc2NyaXB0aW9uIjoiVU1BIiwia2luZCI6ImNyeXB0byIsImxvZ29pZCI6ImNyeXB0by9YVFZDVU1BIn0sCnsiaWQiOiJYVFZDVU5JIiwiY29kZSI6IlVOSSIsImRlc2NyaXB0aW9uIjoiVW5pc3dhcCIsImtpbmQiOiJjcnlwdG8iLCJsb2dvaWQiOiJjcnlwdG8vWFRWQ1VOSSJ9LAp7ImlkIjoiWFRWQ1VTREMiLCJjb2RlIjoiVVNEQyIsImRlc2NyaXB0aW9uIjoiVVNEQyIsImtpbmQiOiJjcnlwdG8iLCJsb2dvaWQiOiJjcnlwdG8vWFRWQ1VTREMifSwKeyJpZCI6IlhUVkNVU0RUIiwiY29kZSI6IlVTRFQiLCJkZXNjcmlwdGlvbiI6IlRldGhlciBVU0R0Iiwia2luZCI6ImNyeXB0byIsImxvZ29pZCI6ImNyeXB0by9YVFZDVVNEVCJ9LAp7ImlkIjoiWFRWQ1ZFVCIsImNvZGUiOiJWRVQiLCJkZXNjcmlwdGlvbiI6IlZlQ2hhaW4iLCJraW5kIjoiY3J5cHRvIiwibG9nb2lkIjoiY3J5cHRvL1hUVkNWRVQifSwKeyJpZCI6IlhUVkNXQlRDIiwiY29kZSI6IldCVEMiLCJkZXNjcmlwdGlvbiI6IldyYXBwZWQgQml0Y29pbiIsImtpbmQiOiJjcnlwdG8iLCJsb2dvaWQiOiJjcnlwdG8vWFRWQ1dCVEMifSwKeyJpZCI6IlhUVkNYQVVUIiwiY29kZSI6IlhBVVQiLCJkZXNjcmlwdGlvbiI6IlRldGhlciBHb2xkIiwia2luZCI6ImNyeXB0byIsImxvZ29pZCI6ImNyeXB0by9YVFZDWEFVVCJ9LAp7ImlkIjoiWFRWQ1hMTSIsImNvZGUiOiJYTE0iLCJkZXNjcmlwdGlvbiI6IlN0ZWxsYXIiLCJraW5kIjoiY3J5cHRvIiwibG9nb2lkIjoiY3J5cHRvL1hUVkNYTE0ifSwKeyJpZCI6IlhUVkNYTVIiLCJjb2RlIjoiWE1SIiwiZGVzY3JpcHRpb24iOiJNb25lcm8iLCJraW5kIjoiY3J5cHRvIiwibG9nb2lkIjoiY3J5cHRvL1hUVkNYTVIifSwKeyJpZCI6IlhUVkNYUlAiLCJjb2RlIjoiWFJQIiwiZGVzY3JpcHRpb24iOiJYUlAiLCJraW5kIjoiY3J5cHRvIiwibG9nb2lkIjoiY3J5cHRvL1hUVkNYUlAifSwKeyJpZCI6IlhUVkNYVFoiLCJjb2RlIjoiWFRaIiwiZGVzY3JpcHRpb24iOiJUZXpvcyIsImtpbmQiOiJjcnlwdG8iLCJsb2dvaWQiOiJjcnlwdG8vWFRWQ1hUWiJ9LAp7ImlkIjoiWFRWQ1lGSSIsImNvZGUiOiJZRkkiLCJkZXNjcmlwdGlvbiI6IlllYXJuIiwia2luZCI6ImNyeXB0byIsImxvZ29pZCI6ImNyeXB0by9YVFZDWUZJIn0sCnsiaWQiOiJYVFZDWlJYIiwiY29kZSI6IlpSWCIsImRlc2NyaXB0aW9uIjoiMHggUHJvdG9jb2wiLCJraW5kIjoiY3J5cHRvIiwibG9nb2lkIjoiY3J5cHRvL1hUVkNaUlgifSwKeyJpZCI6IlhUVkRFTSIsImNvZGUiOiJERU0iLCJkZXNjcmlwdGlvbiI6Ikdlcm1hbiBNYXJrIiwia2luZCI6ImZpYXQiLCJsb2dvaWQiOiJjb3VudHJ5L0RFIn0sCnsiaWQiOiJYVFZFU1AiLCJjb2RlIjoiRVNQIiwiZGVzY3JpcHRpb24iOiJTcGFuaXNoIFBlc2V0YSIsImtpbmQiOiJmaWF0IiwibG9nb2lkIjoiY291bnRyeS9FUyJ9LAp7ImlkIjoiWFRWRklNIiwiY29kZSI6IkZJTSIsImRlc2NyaXB0aW9uIjoiRmlubmlzaCBNYXJra2EiLCJraW5kIjoiZmlhdCIsImxvZ29pZCI6ImNvdW50cnkvRkkifSwKeyJpZCI6IlhUVkZSRiIsImNvZGUiOiJGUkYiLCJkZXNjcmlwdGlvbiI6IkZyZW5jaCBGcmFuYyIsImtpbmQiOiJmaWF0IiwibG9nb2lkIjoiY291bnRyeS9GUiJ9LAp7ImlkIjoiWFRWR0JYIiwiY29kZSI6IkdCWCIsImRlc2NyaXB0aW9uIjoiUGVuY2Ugc3RlcmxpbmciLCJraW5kIjoiZmlhdCIsImxvZ29pZCI6ImNvdW50cnkvR0IifSwKeyJpZCI6IlhUVkdSRCIsImNvZGUiOiJHUkQiLCJkZXNjcmlwdGlvbiI6IkdyZWVrIERyYWNobWEiLCJraW5kIjoiZmlhdCIsImxvZ29pZCI6ImNvdW50cnkvR1IifSwKeyJpZCI6IlhUVklFUCIsImNvZGUiOiJJRVAiLCJkZXNjcmlwdGlvbiI6IklyaXNoIFBvdW5kIiwia2luZCI6ImZpYXQiLCJsb2dvaWQiOiJjb3VudHJ5L0lFIn0sCnsiaWQiOiJYVFZJTEEiLCJjb2RlIjoiSUxBIiwiZGVzY3JpcHRpb24iOiJJc3JhZWxpIGFnb3JvdCIsImtpbmQiOiJmaWF0IiwibG9nb2lkIjoiY291bnRyeS9JTCJ9LAp7ImlkIjoiWFRWSVRMIiwiY29kZSI6IklUTCIsImRlc2NyaXB0aW9uIjoiSXRhbGlhbiBMaXJhIiwia2luZCI6ImZpYXQiLCJsb2dvaWQiOiJjb3VudHJ5L0lUIn0sCnsiaWQiOiJYVFZLV0YiLCJjb2RlIjoiS1dGIiwiZGVzY3JpcHRpb24iOiJLdXdhaXRpIGZpbHMiLCJraW5kIjoiZmlhdCIsImxvZ29pZCI6ImNvdW50cnkvS1cifSwKeyJpZCI6IlhUVkxVRiIsImNvZGUiOiJMVUYiLCJkZXNjcmlwdGlvbiI6Ikx1eGVtYm91cmdpYW4gRnJhbmMiLCJraW5kIjoiZmlhdCIsImxvZ29pZCI6ImNvdW50cnkvTFUifSwKeyJpZCI6IlhUVk5MRyIsImNvZGUiOiJOTEciLCJkZXNjcmlwdGlvbiI6IkR1dGNoIEd1aWxkZXIiLCJraW5kIjoiZmlhdCIsImxvZ29pZCI6ImNvdW50cnkvTkwifSwKeyJpZCI6IlhUVlBURSIsImNvZGUiOiJQVEUiLCJkZXNjcmlwdGlvbiI6IlBvcnR1Z3Vlc2UgRXNjdWRvIiwia2luZCI6ImZpYXQiLCJsb2dvaWQiOiJjb3VudHJ5L1BUIn0sCnsiaWQiOiJYVFZTSVQiLCJjb2RlIjoiU0lUIiwiZGVzY3JpcHRpb24iOiJTbG92ZW5pYW4gVG9sYXIiLCJraW5kIjoiZmlhdCIsImxvZ29pZCI6ImNvdW50cnkvU0kifSwKeyJpZCI6IlhUVlVTWCIsImNvZGUiOiJVU1giLCJkZXNjcmlwdGlvbiI6IlUuUy4gY2VudHMiLCJraW5kIjoiZmlhdCIsImxvZ29pZCI6ImNvdW50cnkvVVMifSwKeyJpZCI6IlhUVlpBQyIsImNvZGUiOiJaQUMiLCJkZXNjcmlwdGlvbiI6IlNvdXRoIEFmcmljYW4gY2VudHMiLCJraW5kIjoiZmlhdCIsImxvZ29pZCI6ImNvdW50cnkvWkEifSwKeyJpZCI6IllFUiIsImNvZGUiOiJZRVIiLCJkZXNjcmlwdGlvbiI6IlllbWVuaSBSaWFsIiwia2luZCI6ImZpYXQiLCJsb2dvaWQiOiJjb3VudHJ5L1lFIn0sCnsiaWQiOiJaQVIiLCJjb2RlIjoiWkFSIiwiZGVzY3JpcHRpb24iOiJTb3V0aCBBZnJpY2FuIFJhbmQiLCJraW5kIjoiZmlhdCIsImxvZ29pZCI6ImNvdW50cnkvWkEifSwKeyJpZCI6IlpNVyIsImNvZGUiOiJaTVciLCJkZXNjcmlwdGlvbiI6IlphbWJpYW4gS3dhY2hhIiwia2luZCI6ImZpYXQiLCJsb2dvaWQiOiJjb3VudHJ5L1pNIn0KXSwKInVuaXRzIjogWwp7ImlkIjoiMTAwS0dNIiwibmFtZSI6IjEwMGtnIiwiZGVzY3JpcHRpb24iOiIxMDAga2lsb2dyYW1zIiwidHlwZSI6Im1hc3MifSwKeyJpZCI6IjEwS0dNIiwibmFtZSI6IjEwa2ciLCJkZXNjcmlwdGlvbiI6IjEwIGtpbG9ncmFtcyIsInR5cGUiOiJtYXNzIn0sCnsiaWQiOiIyMEtHTSIsIm5hbWUiOiIyMGtnIiwiZGVzY3JpcHRpb24iOiIyMCBraWxvZ3JhbXMiLCJ0eXBlIjoibWFzcyJ9LAp7ImlkIjoiNDBLR00iLCJuYW1lIjoiNDBrZyIsImRlc2NyaXB0aW9uIjoiNDAga2lsb2dyYW1zIiwidHlwZSI6Im1hc3MifSwKeyJpZCI6IjYwS0dNIiwibmFtZSI6IjYwa2ciLCJkZXNjcmlwdGlvbiI6IjYwIGtpbG9ncmFtcyIsInR5cGUiOiJtYXNzIn0sCnsiaWQiOiJBUFoiLCJuYW1lIjoiYXBveiIsImRlc2NyaXB0aW9uIjoidHJveSBvdW5jZSIsInR5cGUiOiJtYXNzIn0sCnsiaWQiOiJBUlJPQkEiLCJuYW1lIjoiYXJyb2JhIiwiZGVzY3JpcHRpb24iOiJhcnJvYmEiLCJ0eXBlIjoibWFzcyJ9LAp7ImlkIjoiQkxEIiwibmFtZSI6IkJMRCIsImRlc2NyaXB0aW9uIjoiZHJ5IGJhcnJlbCAoVVMpIiwidHlwZSI6InZvbHVtZSJ9LAp7ImlkIjoiQkxMIiwibmFtZSI6IkJMTCIsImRlc2NyaXB0aW9uIjoiYmFycmVsIChVUykiLCJ0eXBlIjoidm9sdW1lIn0sCnsiaWQiOiJCTExQREFZIiwibmFtZSI6IkJMTC9kYXkiLCJkZXNjcmlwdGlvbiI6ImJhcnJlbCBwZXIgZGF5IiwidHlwZSI6ImJsbHBlcmRheSJ9LAp7ImlkIjoiQlJUIiwibmFtZSI6IkJSVCIsImRlc2NyaXB0aW9uIjoiYmlydGggcmF0ZSIsInR5cGUiOiJiaXJ0aHNwZXJ0aG91c2FuZHBlb3BsZSJ9LAp7ImlkIjoiQlRVIiwibmFtZSI6IkJ0dSIsImRlc2NyaXB0aW9uIjoiQnJpdGlzaCB0aGVybWFsIHVuaXQiLCJ0eXBlIjoiZW5lcmd5In0sCnsiaWQiOiJCVUEiLCJuYW1lIjoiQlVBIiwiZGVzY3JpcHRpb24iOiJidXNoZWwgKFVTKSIsInR5cGUiOiJ2b2x1bWUifSwKeyJpZCI6IkJVSSIsIm5hbWUiOiJCVUkiLCJkZXNjcmlwdGlvbiI6ImJ1c2hlbCAoVUspIiwidHlwZSI6InZvbHVtZSJ9LAp7ImlkIjoiQ0FQIiwibmFtZSI6IkNBUCIsImRlc2NyaXB0aW9uIjoiY29tcGFueSBhbmQgcGVyc29uIiwidHlwZSI6ImNvbXBhbnlhbmRwZXJzb24ifSwKeyJpZCI6IkNBU0VTIiwibmFtZSI6IkNhc2VzLzEwMDAwIiwiZGVzY3JpcHRpb24iOiJjYXNlcyBwZXIgMTAwMDAgcGVvcGxlIiwidHlwZSI6ImNhc2VzcGVyMTAwMDAifSwKeyJpZCI6IkNNUE5ZIiwibmFtZSI6IkNNUE5ZIiwiZGVzY3JpcHRpb24iOiJjb21wYW55IiwidHlwZSI6ImNvbXBhbnkifSwKeyJpZCI6IkNNUSIsIm5hbWUiOiJjbTMiLCJkZXNjcmlwdGlvbiI6ImNtMyIsInR5cGUiOiJ2b2x1bWUifSwKeyJpZCI6IkNOVFJUIiwibmFtZSI6ImNvbnRyYWN0IiwiZGVzY3JpcHRpb24iOiJjb250cmFjdCIsInR5cGUiOiJjb250cmFjdCJ9LAp7ImlkIjoiQ1JMIiwibmFtZSI6IkNSTCIsImRlc2NyaXB0aW9uIjoiY2FybG9hZCIsInR5cGUiOiJjYXJsb2FkIn0sCnsiaWQiOiJDV0EiLCJuYW1lIjoiQ1dBIiwiZGVzY3JpcHRpb24iOiJodW5kcmVkd2VpZ2h0IFVTIiwidHlwZSI6Im1hc3MifSwKeyJpZCI6IkNXSSIsIm5hbWUiOiJDV0kiLCJkZXNjcmlwdGlvbiI6Imh1bmRyZWR3ZWlnaHQgVUsiLCJ0eXBlIjoibWFzcyJ9LAp7ImlkIjoiREFHIiwibmFtZSI6ImRhZyIsImRlc2NyaXB0aW9uIjoiZGVjYWdyYW0iLCJ0eXBlIjoibWFzcyJ9LAp7ImlkIjoiREFZIiwibmFtZSI6ImRheSIsImRlc2NyaXB0aW9uIjoiZGF5IiwidHlwZSI6InRpbWUifSwKeyJpZCI6IkRFR0MiLCJuYW1lIjoiREVHQyIsImRlc2NyaXB0aW9uIjoiZGVncmVlcyBDZWxzaXVzIiwidHlwZSI6InRlbXBlcmF0dXJlIn0sCnsiaWQiOiJET1oiLCJuYW1lIjoiRE9aIiwiZGVzY3JpcHRpb24iOiJkb3plbiIsInR5cGUiOiJkb3plbiJ9LAp7ImlkIjoiRVVBIiwibmFtZSI6IkVVQSIsImRlc2NyaXB0aW9uIjoiRVUgYWxsb3dhbmNlIiwidHlwZSI6ImFsbG93YW5jZSJ9LAp7ImlkIjoiRlRRIiwibmFtZSI6ImZ0MyIsImRlc2NyaXB0aW9uIjoiZnQzIiwidHlwZSI6InZvbHVtZSJ9LAp7ImlkIjoiR0pPIiwibmFtZSI6ImdKIiwiZGVzY3JpcHRpb24iOiJnaWdham91bGUiLCJ0eXBlIjoiZW5lcmd5In0sCnsiaWQiOiJHTEQiLCJuYW1lIjoiR0xEIiwiZGVzY3JpcHRpb24iOiJkcnkgZ2FsbG9uIChVUykiLCJ0eXBlIjoidm9sdW1lIn0sCnsiaWQiOiJHTEkiLCJuYW1lIjoiR0xJIiwiZGVzY3JpcHRpb24iOiJnYWxsb24gKFVLKSIsInR5cGUiOiJ2b2x1bWUifSwKeyJpZCI6IkdMTCIsIm5hbWUiOiJHTEwiLCJkZXNjcmlwdGlvbiI6ImdhbGxvbiAoVVMpIiwidHlwZSI6InZvbHVtZSJ9LAp7ImlkIjoiR1JNIiwibmFtZSI6ImciLCJkZXNjcmlwdGlvbiI6ImdyYW0iLCJ0eXBlIjoibWFzcyJ9LAp7ImlkIjoiR1dIIiwibmFtZSI6IkdXaCIsImRlc2NyaXB0aW9uIjoiZ2lnYXdhdHQgaG91ciIsInR5cGUiOiJlbmVyZ3kifSwKeyJpZCI6IkhJUkUiLCJuYW1lIjoiSGlyZSIsImRlc2NyaXB0aW9uIjoiaGlyZSIsInR5cGUiOiJoaXJlIn0sCnsiaWQiOiJITFQiLCJuYW1lIjoiaGwiLCJkZXNjcmlwdGlvbiI6ImhlY3RvbGl0cmUiLCJ0eXBlIjoidm9sdW1lIn0sCnsiaWQiOiJIT1VSIiwibmFtZSI6ImhvdXIiLCJkZXNjcmlwdGlvbiI6ImhvdXIiLCJ0eXBlIjoidGltZSJ9LAp7ImlkIjoiSFMiLCJuYW1lIjoiSG91c2UiLCJkZXNjcmlwdGlvbiI6ImhvdXNlIiwidHlwZSI6ImhvdXNlIn0sCnsiaWQiOiJIU0giLCJuYW1lIjoiSFNIIiwiZGVzY3JpcHRpb24iOiJob3VzZWhvbGQiLCJ0eXBlIjoiaG91c2Vob2xkIn0sCnsiaWQiOiJIU0kiLCJuYW1lIjoiSFNJIiwiZGVzY3JpcHRpb24iOiJob3VzaW5nIGludmVudG9yeSIsInR5cGUiOiJob3VzaW5naW52ZW50b3J5In0sCnsiaWQiOiJJTkQiLCJuYW1lIjoiSU5EIiwiZGVzY3JpcHRpb24iOiJpbmRpY2F0b3IiLCJ0eXBlIjoiaW5kaWNhdG9yIn0sCnsiaWQiOiJJUCIsIm5hbWUiOiJJUCIsImRlc2NyaXB0aW9uIjoiSVAgYWRkcmVzcyIsInR5cGUiOiJpcCJ9LAp7ImlkIjoiSkJPIiwibmFtZSI6IkpCTyIsImRlc2NyaXB0aW9uIjoiam9iIG9wZW5pbmciLCJ0eXBlIjoiam9ib3BlbmluZyJ9LAp7ImlkIjoiSkxDIiwibmFtZSI6IkpMQyIsImRlc2NyaXB0aW9uIjoiam9ibGVzcyBjbGFpbSIsInR5cGUiOiJqb2JsZXNzY2xhaW0ifSwKeyJpZCI6IkpPVSIsIm5hbWUiOiJKIiwiZGVzY3JpcHRpb24iOiJqb3VsZSIsInR5cGUiOiJlbmVyZ3kifSwKeyJpZCI6IktCUFMiLCJuYW1lIjoia2JwcyIsImRlc2NyaXB0aW9uIjoia2lsb2JpdCBwZXIgc2Vjb25kIiwidHlwZSI6Im5ldHdvcmtiYW5kd2l0aCJ9LAp7ImlkIjoiS0dNIiwibmFtZSI6ImtnIiwiZGVzY3JpcHRpb24iOiJraWxvZ3JhbSIsInR5cGUiOiJtYXNzIn0sCnsiaWQiOiJLSk8iLCJuYW1lIjoia0oiLCJkZXNjcmlwdGlvbiI6ImtpbG9qb3VsZSIsInR5cGUiOiJlbmVyZ3kifSwKeyJpZCI6IktXSCIsIm5hbWUiOiJrV2giLCJkZXNjcmlwdGlvbiI6ImtpbG93YXR0IGhvdXIiLCJ0eXBlIjoiZW5lcmd5In0sCnsiaWQiOiJMQUQiLCJuYW1lIjoiTEFEIiwiZGVzY3JpcHRpb24iOiJsYXlvZmYgYW5kIGRpc2NoYXJnZSIsInR5cGUiOiJsYXlvZmZhbmRkaXNjaGFyZ2UifSwKeyJpZCI6IkxCUiIsIm5hbWUiOiJsYiIsImRlc2NyaXB0aW9uIjoicG91bmQiLCJ0eXBlIjoibWFzcyJ9LAp7ImlkIjoiTFROIiwibmFtZSI6Imx0IiwiZGVzY3JpcHRpb24iOiJsb25nIHRvbiIsInR5cGUiOiJtYXNzIn0sCnsiaWQiOiJMVFIiLCJuYW1lIjoibCIsImRlc2NyaXB0aW9uIjoibGl0cmUiLCJ0eXBlIjoidm9sdW1lIn0sCnsiaWQiOiJNQSIsIm5hbWUiOiJtb3J0Z2FnZSBhcGwuIiwiZGVzY3JpcHRpb24iOiJtb3J0Z2FnZSBhcHBsaWNhdGlvbiIsInR5cGUiOiJtb3J0Z2FnZWFwcGxpY2F0aW9uIn0sCnsiaWQiOiJNQkYiLCJuYW1lIjoiTUJGIiwiZGVzY3JpcHRpb24iOiIxMDAwIGJvYXJkIGZlZXQiLCJ0eXBlIjoidm9sdW1lIn0sCnsiaWQiOiJNTUJUVSIsIm5hbWUiOiJNTUJ0dSIsImRlc2NyaXB0aW9uIjoibWlsbGlvbiBCcml0aXNoIHRoZXJtYWwgdW5pdCIsInR5cGUiOiJlbmVyZ3kifSwKeyJpZCI6Ik1NVFIiLCJuYW1lIjoiTWlsbGltZXRlciIsImRlc2NyaXB0aW9uIjoibWlsbGltZXRlciIsInR5cGUiOiJsZW5ndGgifSwKeyJpZCI6Ik1PTlRIIiwibmFtZSI6Im1vbnRoIiwiZGVzY3JpcHRpb24iOiJtb250aCIsInR5cGUiOiJ0aW1lIn0sCnsiaWQiOiJNVCIsIm5hbWUiOiJNVCIsImRlc2NyaXB0aW9uIjoibWV0cmljIHRvbm5lIiwidHlwZSI6Im1hc3MifSwKeyJpZCI6Ik1USyIsIm5hbWUiOiJtMiIsImRlc2NyaXB0aW9uIjoibTIiLCJ0eXBlIjoiYXJlYSJ9LAp7ImlkIjoiTVRRIiwibmFtZSI6Im0zIiwiZGVzY3JpcHRpb24iOiJtMyIsInR5cGUiOiJ2b2x1bWUifSwKeyJpZCI6Ik1XRCIsIm5hbWUiOiJNV2QiLCJkZXNjcmlwdGlvbiI6Im1lZ2F3YXR0IGRheSIsInR5cGUiOiJlbmVyZ3kifSwKeyJpZCI6Ik1XSCIsIm5hbWUiOiLQnFdoIiwiZGVzY3JpcHRpb24iOiJtZWdhd2F0dCBob3VyIiwidHlwZSI6ImVuZXJneSJ9LAp7ImlkIjoiTkJMIiwibmFtZSI6Ik5CTCIsImRlc2NyaXB0aW9uIjoibmV0IGJhbGFuY2UiLCJ0eXBlIjoibmV0YmFsYW5jZSJ9LAp7ImlkIjoiTk1JIiwibmFtZSI6Ik5NSSIsImRlc2NyaXB0aW9uIjoibmF1dGljYWwgbWlsZSIsInR5cGUiOiJsZW5ndGgifSwKeyJpZCI6Ik9OWiIsIm5hbWUiOiJPTloiLCJkZXNjcmlwdGlvbiI6Im91bmNlIiwidHlwZSI6Im1hc3MifSwKeyJpZCI6Ik9aQSIsIm5hbWUiOiJPWkEiLCJkZXNjcmlwdGlvbiI6ImZsdWlkIG91bmNlIChVUykiLCJ0eXBlIjoidm9sdW1lIn0sCnsiaWQiOiJPWkkiLCJuYW1lIjoiT1pJIiwiZGVzY3JpcHRpb24iOiJmbHVpZCBvdW5jZSAoVUspIiwidHlwZSI6InZvbHVtZSJ9LAp7ImlkIjoiUEFZUk9MTCIsIm5hbWUiOiJQYXlyb2xsIiwiZGVzY3JpcHRpb24iOiJwYXlyb2xsIiwidHlwZSI6InBheXJvbGwifSwKeyJpZCI6IlBDVCIsIm5hbWUiOiIlIiwiZGVzY3JpcHRpb24iOiJwZXJjZW50IiwidHlwZSI6InBlcmNlbnQifSwKeyJpZCI6IlBDVERZIiwibmFtZSI6IkRpc2NvdW50IHlpZWxkLCAlIiwiZGVzY3JpcHRpb24iOiJkaXNjb3VudCB5aWVsZCIsInR5cGUiOiJwZXJjZW50In0sCnsiaWQiOiJQQ1RHRFAiLCJuYW1lIjoiJSBvZiBHRFAiLCJkZXNjcmlwdGlvbiI6InBlcmNlbnQgb2YgR0RQIiwidHlwZSI6InBlcmNlbnQifSwKeyJpZCI6IlBDVFBBUiIsIm5hbWUiOiIlIG9mIHBhciIsImRlc2NyaXB0aW9uIjoicGVyY2VudCBvZiBwYXIiLCJ0eXBlIjoicGVyY2VudCJ9LAp7ImlkIjoiUENUWVRNIiwibmFtZSI6IllUTSwgJSIsImRlc2NyaXB0aW9uIjoieWllbGQgdG8gbWF0dXJpdHkiLCJ0eXBlIjoicGVyY2VudCJ9LAp7ImlkIjoiUEhUUCIsIm5hbWUiOiJQSFRQIiwiZGVzY3JpcHRpb24iOiJwZXIgMTAwIDAwMCBwZW9wbGUiLCJ0eXBlIjoicGVyMTAwMDAwcGVvcGxlIn0sCnsiaWQiOiJQTVAiLCJuYW1lIjoiUE1QIiwiZGVzY3JpcHRpb24iOiJwZXIgb25lIG1pbGxpb24gcGVvcGxlIiwidHlwZSI6InBlcm9uZW1pbGxpb25wZW9wbGUifSwKeyJpZCI6IlBPSU5UIiwibmFtZSI6InBvaW50IiwiZGVzY3JpcHRpb24iOiJwb2ludCIsInR5cGUiOiJwb2ludCJ9LAp7ImlkIjoiUFBMIiwibmFtZSI6IlBQTCIsImRlc2NyaXB0aW9uIjoicGVvcGxlIiwidHlwZSI6InBlb3BsZSJ9LAp7ImlkIjoiUFNOIiwibmFtZSI6IlBTTiIsImRlc2NyaXB0aW9uIjoicGVyc29uIiwidHlwZSI6InBlcnNvbiJ9LAp7ImlkIjoiUFRQIiwibmFtZSI6IlBUUCIsImRlc2NyaXB0aW9uIjoicGVyIDEwMDAgcGVvcGxlIiwidHlwZSI6InBlcjEwMDBwZW9wbGUifSwKeyJpZCI6IlJBVElPIiwibmFtZSI6IlJhdGlvIiwiZGVzY3JpcHRpb24iOiJyYXRpbyIsInR5cGUiOiJyYXRpbyJ9LAp7ImlkIjoiUlBNSSIsIm5hbWUiOiJSUE1JIiwiZGVzY3JpcHRpb24iOiJyZXZlbnVlIHBhc3NlbmdlciBtaWxlIiwidHlwZSI6InJldmVudWVwYXNzZW5nZXJtaWxlIn0sCnsiaWQiOiJTRVAiLCJuYW1lIjoiU0VQIiwiZGVzY3JpcHRpb24iOiJzZXBhcmFpb24iLCJ0eXBlIjoic2VwYXJhdGlvbiJ9LAp7ImlkIjoiU0hBUkUiLCJuYW1lIjoic2hhcmUiLCJkZXNjcmlwdGlvbiI6InNoYXJlIiwidHlwZSI6InNoYXJlIn0sCnsiaWQiOiJTTUkiLCJuYW1lIjoiTWlsZSIsImRlc2NyaXB0aW9uIjoibWlsZSIsInR5cGUiOiJsZW5ndGgifSwKeyJpZCI6IlNUTiIsIm5hbWUiOiJTVE4iLCJkZXNjcmlwdGlvbiI6InNob3J0IHRvbiIsInR5cGUiOiJtYXNzIn0sCnsiaWQiOiJUQ00iLCJuYW1lIjoidGNtIiwiZGVzY3JpcHRpb24iOiJ0aG91c2FuZCBjdWJpYyBtZXRyZXMiLCJ0eXBlIjoidm9sdW1lIn0sCnsiaWQiOiJURlIiLCJuYW1lIjoiVEZSIiwiZGVzY3JpcHRpb24iOiJ0b3RhbCBmZXJ0aWxpdHkgcmF0ZSIsInR5cGUiOiJiaXJ0aHNwZXJ3b21hbiJ9LAp7ImlkIjoiVElWIiwibmFtZSI6IlRJViIsImRlc2NyaXB0aW9uIjoiU0lQUkkgVElWIiwidHlwZSI6InNpcHJpdGl2In0sCnsiaWQiOiJUTkUiLCJuYW1lIjoidCIsImRlc2NyaXB0aW9uIjoidG9ubmUiLCJ0eXBlIjoibWFzcyJ9LAp7ImlkIjoiVFdIIiwibmFtZSI6IlRXaCIsImRlc2NyaXB0aW9uIjoidGVyYXdhdHQgaG91ciIsInR5cGUiOiJlbmVyZ3kifSwKeyJpZCI6IlRoR0IiLCJuYW1lIjoidGhhaWdvbGRiYWh0IiwiZGVzY3JpcHRpb24iOiJ0aGFpIGdvbGQgYmFodCIsInR5cGUiOiJtYXNzIn0sCnsiaWQiOiJVS0EiLCJuYW1lIjoiVUtBIiwiZGVzY3JpcHRpb24iOiJVSyBhbGxvd2FuY2UiLCJ0eXBlIjoiYWxsb3dhbmNlIn0sCnsiaWQiOiJVTklUIiwibmFtZSI6InVuaXQiLCJkZXNjcmlwdGlvbiI6InVuaXQiLCJ0eXBlIjoidW5pdCJ9LAp7ImlkIjoiVkNOQ1kiLCJuYW1lIjoiVkNOQ1kiLCJkZXNjcmlwdGlvbiI6ImpvYiB2YWNhbmNpZXMiLCJ0eXBlIjoidmFjYW5jeSJ9LAp7ImlkIjoiV0NEIiwibmFtZSI6ImNvcmQiLCJkZXNjcmlwdGlvbiI6IkNvcmQiLCJ0eXBlIjoidm9sdW1lIn0sCnsiaWQiOiJXRUVLIiwibmFtZSI6IndlZWsiLCJkZXNjcmlwdGlvbiI6IndlZWsiLCJ0eXBlIjoidGltZSJ9LAp7ImlkIjoiV0hSIiwibmFtZSI6IldoIiwiZGVzY3JpcHRpb24iOiJ3YXR0IGhvdXIiLCJ0eXBlIjoiZW5lcmd5In0sCnsiaWQiOiJZRUFSIiwibmFtZSI6InllYXIiLCJkZXNjcmlwdGlvbiI6InllYXIiLCJ0eXBlIjoidGltZSJ9Cl0KfQo="}},"time_used":25,"timings":{"blocked":-1,"dns":8,"connect":9,"send":0,"wait":2,"receive":-1,"ssl":6},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/96587.97fdd65f2012106ff11e.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:13.898Z","timestamp":1785148033898,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/96587.97fdd65f2012106ff11e.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:13 GMT\r\ncontent-type: text/css; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a58ab11-89c\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Thu, 16 Jul 2026 09:57:37 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/16/2026 11:03:21\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: f54c522168173fabe97cb750dae81d24\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":2204,"size_decoded":1357,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with very long lines (2204), with no line terminators","md5":"f433859778b8873df447ea9031315a49","sha1":"df04d29a1667cf45c2a516da5d3bedce4fc9a55c","sha256":"0df353dbede0a246d8930b6d765ced13c2b7fa3f8ea2d8db833f33027feb0606","sha512":"ebca2adbb2080c216fa0da94a394221c5adc6469fce46f03094243ce23b3b6b93db20d13fb260b091f955307ba74cb49d451ae5705b0dd620fc7bd82be87b980","ssdeep":"","tlshash":"b5418b63a9f028a035ff95aeca15d2dc128859b7d64552dcb6307f35c6c27f881a1a0c","first_seen":"2026-07-16T13:40:49.747928Z","last_seen":"2026-07-27T12:57:36.988916Z","times_seen":229,"resource_available":false,"data":"LnNjcm9sbENvbnRhaW5lci16RzJDcURlMntoZWlnaHQ6MDtvdmVyZmxvdy15OnNjcm9sbH1Ac3VwcG9ydHMgKC1tb3otYXBwZWFyYW5jZTpub25lKXsuc2Nyb2xsQ29udGFpbmVyLXpHMkNxRGUye3Njcm9sbGJhci1jb2xvcjp2YXIoLS10di1jb2xvci1zY3JvbGxiYXItdGh1bWItYmFja2dyb3VuZCx2YXIoLS1jb2xvci1zY3JvbGwtYmcpKSAjMDAwMDtzY3JvbGxiYXItd2lkdGg6dGhpbn19LnNjcm9sbENvbnRhaW5lci16RzJDcURlMjo6LXdlYmtpdC1zY3JvbGxiYXJ7aGVpZ2h0OjVweDt3aWR0aDo1cHh9LnNjcm9sbENvbnRhaW5lci16RzJDcURlMjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWJ7YmFja2dyb3VuZC1jbGlwOmNvbnRlbnQtYm94O2JhY2tncm91bmQtY29sb3I6dmFyKC0tdHYtY29sb3Itc2Nyb2xsYmFyLXRodW1iLWJhY2tncm91bmQsdmFyKC0tY29sb3Itc2Nyb2xsLWJnKSk7Ym9yZGVyOjFweCBzb2xpZCAjMDAwMDtib3JkZXItcmFkaXVzOjNweH0uc2Nyb2xsQ29udGFpbmVyLXpHMkNxRGUyOjotd2Via2l0LXNjcm9sbGJhci10cmFja3tiYWNrZ3JvdW5kLWNvbG9yOmluaXRpYWw7Ym9yZGVyLXJhZGl1czozcHh9LnNjcm9sbENvbnRhaW5lci16RzJDcURlMjo6LXdlYmtpdC1zY3JvbGxiYXItY29ybmVye2Rpc3BsYXk6bm9uZX0uZmxleC1nbzBaZU5RRntkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO3BvaW50ZXItZXZlbnRzOmF1dG87LS11aS1saWItcG9wb3Zlci1jb250ZW50LXZlcnRpY2FsLWNhbGN1bGF0ZWQtcGFkZGluZzp2YXIoLS11aS1saWItcHJpdmF0ZS1wb3BvdmVyLWNvbnRlbnQtdmVydGljYWwtcGFkZGluZyw2cHgpO292ZXJmbG93OmhpZGRlbn0uZml4ZWRGb290ZXItZ28wWmVOUUYsLmZpeGVkSGVhZGVyLWdvMFplTlFGe2ZsZXg6bm9uZX0uZml4ZWRGb290ZXItZ28wWmVOUUYsLmZpeGVkSGVhZGVyLWdvMFplTlFGLC5tYWluU2Nyb2xsV3JhcHBlci1nbzBaZU5RRntwYWRkaW5nOjAgdmFyKC0tdWktbGliLXBvcG92ZXItY29udGVudC12ZXJ0aWNhbC1jYWxjdWxhdGVkLXBhZGRpbmcpfS5maXhlZEhlYWRlckNvbnRlbnQtZ28wWmVOUUZ7cGFkZGluZy10b3A6dmFyKC0tdWktbGliLXBvcG92ZXItY29udGVudC12ZXJ0aWNhbC1jYWxjdWxhdGVkLXBhZGRpbmcpfS5maXhlZEZvb3RlckNvbnRlbnQtZ28wWmVOUUZ7cGFkZGluZy1ib3R0b206dmFyKC0tdWktbGliLXBvcG92ZXItY29udGVudC12ZXJ0aWNhbC1jYWxjdWxhdGVkLXBhZGRpbmcpfS5tYWluU2Nyb2xsV3JhcHBlci1nbzBaZU5RRntmbGV4LWdyb3c6MTtmbGV4LXNocmluazoxO2hlaWdodDoxMDAlO292ZXJmbG93LXg6aGlkZGVuO292ZXJmbG93LXk6c2Nyb2xsfUBzdXBwb3J0cyAoLW1vei1hcHBlYXJhbmNlOm5vbmUpey5tYWluU2Nyb2xsV3JhcHBlci1nbzBaZU5RRntzY3JvbGxiYXItY29sb3I6dmFyKC0tdHYtY29sb3Itc2Nyb2xsYmFyLXRodW1iLWJhY2tncm91bmQsdmFyKC0tY29sb3Itc2Nyb2xsLWJnKSkgIzAwMDA7c2Nyb2xsYmFyLXdpZHRoOnRoaW59fS5tYWluU2Nyb2xsV3JhcHBlci1nbzBaZU5RRjo6LXdlYmtpdC1zY3JvbGxiYXJ7aGVpZ2h0OjVweDt3aWR0aDo1cHh9Lm1haW5TY3JvbGxXcmFwcGVyLWdvMFplTlFGOjotd2Via2l0LXNjcm9sbGJhci10aHVtYntiYWNrZ3JvdW5kLWNsaXA6Y29udGVudC1ib3g7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS10di1jb2xvci1zY3JvbGxiYXItdGh1bWItYmFja2dyb3VuZCx2YXIoLS1jb2xvci1zY3JvbGwtYmcpKTtib3JkZXI6MXB4IHNvbGlkICMwMDAwO2JvcmRlci1yYWRpdXM6M3B4fS5tYWluU2Nyb2xsV3JhcHBlci1nbzBaZU5RRjo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2t7YmFja2dyb3VuZC1jb2xvcjppbml0aWFsO2JvcmRlci1yYWRpdXM6M3B4fS5tYWluU2Nyb2xsV3JhcHBlci1nbzBaZU5RRjo6LXdlYmtpdC1zY3JvbGxiYXItY29ybmVye2Rpc3BsYXk6bm9uZX0ubWFpblNjcm9sbFdyYXBwZXItZ28wWmVOUUYubm9TY3JvbGwtZ28wWmVOUUZ7b3ZlcmZsb3cteTpoaWRkZW59Lm1haW4tZ28wWmVOUUZ7bWFyZ2luLWlubGluZS1lbmQ6dmFyKC0tdWktbGliLXByaXZhdGUtcG9wb3ZlckNvbnRlbnRWZXJ0aWNhbC1zY3JvbGwtY29tcGVuc2F0aW9uKX0ubWFpbkNvbnRlbnQtZ28wWmVOUUZ7cGFkZGluZzp2YXIoLS11aS1saWItcG9wb3Zlci1jb250ZW50LXZlcnRpY2FsLWNhbGN1bGF0ZWQtcGFkZGluZykgMH0="}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/widget-toptoolbar.d7ed7cde5eb35f0fe4b8.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.115Z","timestamp":1785148034115,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/widget-toptoolbar.d7ed7cde5eb35f0fe4b8.js HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a632877-cc58\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Fri, 24 Jul 2026 08:55:19 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/24/2026 10:31:24\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: c15d54455199b320ea37d6b07982b854\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":52312,"size_decoded":18239,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (3072)","md5":"b35e59efb0bd11483b985f2bd44f849a","sha1":"c6462f8d45b288692eefab16cfce1bde8633a682","sha256":"aa5adcee7d49a8b57e50e07d14931f3c5213ddbe82695bbab124f86371af9dfa","sha512":"ef350f2c4925c583157615f8d1dd4471e1f6fd1336c82a65652400776b43fba8fc75a96d410457e518e6a1dbd3f932f6386b6c178959ff9de6c112734a06ac42","ssdeep":"1536:q/H3qVRbkqWN+plfUCCCsHllfltQO45eQjF4ff1qcfTjD5NQcj1kfBZoBIgd6:q/H3qXkCp8R7Igd6","tlshash":"013308547175b0384ad720aed43b0407b36a68a9b41f51a8f2f49ddd35edd8cd22ab3c","first_seen":"2026-07-24T11:36:48.152611Z","last_seen":"2026-07-27T12:48:39.764568Z","times_seen":96,"resource_available":true,"data":"KHNlbGYud2VicGFja0NodW5rdHJhZGluZ3ZpZXc9c2VsZi53ZWJwYWNrQ2h1bmt0cmFkaW5ndmlld3x8W10pLnB1c2goW1s0MzkyNiw2NDY0NF0sezkxNDQ4NyhlLHQpe3ZhciByOyFmdW5jdGlvbigpeyJ1c2Ugc3RyaWN0Ijt2YXIgcz17fS5oYXNPd25Qcm9wZXJ0eTtmdW5jdGlvbiBuKCl7Zm9yKHZhciBlPVtdLHQ9MDt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgcj1hcmd1bWVudHNbdF07aWYocil7dmFyIGk9dHlwZW9mIHI7aWYoInN0cmluZyI9PT1pfHwibnVtYmVyIj09PWkpZS5wdXNoKHIpO2Vsc2UgaWYoQXJyYXkuaXNBcnJheShyKSYmci5sZW5ndGgpe3ZhciBhPW4uYXBwbHkobnVsbCxyKTthJiZlLnB1c2goYSl9ZWxzZSBpZigib2JqZWN0Ij09PWkpZm9yKHZhciBvIGluIHIpcy5jYWxsKHIsbykmJnJbb10mJmUucHVzaChvKX19cmV0dXJuIGUuam9pbigiICIpfWUuZXhwb3J0cz8obi5kZWZhdWx0PW4sZS5leHBvcnRzPW4pOnZvaWQgMD09PShyPWZ1bmN0aW9uKCl7cmV0dXJuIG59LmFwcGx5KHQsW10pKXx8KGUuZXhwb3J0cz1yKX0oKX0sODQ2MDExKGUpe2UuZXhwb3J0cz17d3JhcDoid3JhcC1xWW00eDJ1dSIsd3JhcFdpdGhBcnJvd3NPdXRpbmc6IndyYXBXaXRoQXJyb3dzT3V0aW5nLXFZbTR4MnV1Iix3cmFwT3ZlcmZsb3c6IndyYXBPdmVyZmxvdy1xWW00eDJ1dSIsc2Nyb2xsV3JhcDoic2Nyb2xsV3JhcC1xWW00eDJ1dSIsbm9TY3JvbGxCYXI6Im5vU2Nyb2xsQmFyLXFZbTR4MnV1IixpY29uOiJpY29uLXFZbTR4MnV1IixzY3JvbGxMZWZ0OiJzY3JvbGxMZWZ0LXFZbTR4MnV1IixzY3JvbGxSaWdodDoic2Nyb2xsUmlnaHQtcVltNHgydXUiLGlzVmlzaWJsZToiaXNWaXNpYmxlLXFZbTR4MnV1IixpY29uV3JhcDoiaWNvbldyYXAtcVltNHgydXUiLGZhZGVMZWZ0OiJmYWRlTGVmdC1xWW00eDJ1dSIsZmFkZVJpZ2h0OiJmYWRlUmlnaHQtcVltNHgydXUifX0sNTc1MTM3KGUpe2UuZXhwb3J0cz17ImNzcy12YWx1ZS1oZWFkZXItdG9vbGJhci1oZWlnaHQiOiIzOHB4In19LDYzMzI5KGUpe2UuZXhwb3J0cz17ImNzcy12YWx1ZS1oZWFkZXItdG9vbGJhci1oZWlnaHQiOiIzOHB4Iix0b29sYmFyOiJ0b29sYmFyLU5DWXlvemhoIixpc0hpZGRlbjoiaXNIaWRkZW4tTkNZeW96aGgiLG92ZXJmbG93V3JhcDoib3ZlcmZsb3dXcmFwLU5DWXlvemhoIixjdXN0b21CdXR0b246ImN1c3RvbUJ1dHRvbi1OQ1l5b3poaCIsaG92ZXI6ImhvdmVyLU5DWXlvemhoIixjbGlja2VkOiJjbGlja2VkLU5DWXlvemhoIn19LDM3MDc3NShlKXtlLmV4cG9ydHM9e3dyYXA6IndyYXAtVUwzRklwc2UiLGljb246Imljb24tVUwzRklwc2UifX0sMjE4NjAzKGUpe2UuZXhwb3J0cz17ImNzcy12YWx1ZS1oZWFkZXItdG9vbGJhci1oZWlnaHQiOiIzOHB4Iixpbm5lcldyYXA6ImlubmVyV3JhcC1kbEZETjBaZCIsaW5uZXI6ImlubmVyLWRsRkROMFpkIixmYWtlOiJmYWtlLWRsRkROMFpkIixmaWxsOiJmaWxsLWRsRkROMFpkIixjb2xsYXBzZToiY29sbGFwc2UtZGxGRE4wWmQiLGJ1dHRvbjoiYnV0dG9uLWRsRkROMFpkIixpY29uQnV0dG9uOiJpY29uQnV0dG9uLWRsRkROMFpkIixoaWRkZW46ImhpZGRlbi1kbEZETjBaZCIsY29udGVudDoiY29udGVudC1kbEZETjBaZCIsZGVza3RvcFRyYWRlOiJkZXNrdG9wVHJhZGUtZGxGRE4wWmQiLGRlc2t0b3BQdWJsaXNoOiJkZXNrdG9wUHVibGlzaC1kbEZETjBaZCIsbW9iaWxlVHJhZGU6Im1vYmlsZVRyYWRlLWRsRkROMFpkIixtb2JpbGVQdWJsaXNoOiJtb2JpbGVQdWJsaXNoLWRsRkROMFpkIn19LDI3OTUzMihlKXtlLmV4cG9ydHM9e2dyb3VwOiJncm91cC1MTFpBYnMwRyIsc2VwYXJhdG9yOiJzZXBhcmF0b3ItTExaQWJzMEciLG5vTGVmdERlY29yYXRpb246Im5vTGVmdERlY29yYXRpb24tTExaQWJzMEciLG5vUmlnaHREZWNvcmF0aW9uOiJub1JpZ2h0RGVjb3JhdGlvbi1MTFpBYnMwRyIsbm9NaW5pbWFsV2lkdGg6Im5vTWluaW1hbFdpZHRoLUxMWkFiczBHIixzZXBhcmF0b3JXcmFwOiJzZXBhcmF0b3JXcmFwLUxMWkFiczBHIn19LDE2NDU2NihlKXtlLmV4cG9ydHM9e3NlcGFyYXRvcjoic2VwYXJhdG9yLWxsdXF1ZlZxIn19LDUwOTk5MChlLHQscil7InVzZSBzdHJpY3QiO3IuZCh0LHtNZWFzdXJlOigpPT5ufSk7dmFyIHM9cig3MTk0MjUpO2Z1bmN0aW9uIG4oZSl7Y29uc3R7Y2hpbGRyZW46dCxvblJlc2l6ZTpyfT1lO3JldHVybiB0KCgwLHMudXNlUmVzaXplT2JzZXJ2ZXIpKHJ8fCgoKT0+e30pLFtudWxsPT09cl0pKX19LDc4Nzg5NShlLHQscil7InVzZSBzdHJpY3QiO3IuZCh0LHt1c2VGdW5jdGlvbmFsUmVmT2JqZWN0OigpPT5pfSk7dmFyIHM9cig3Nzk0NzQpLG49cig2MTYzMTEpO2Z1bmN0aW9uIGkoZSl7Y29uc3QgdD0oMCxzLnVzZU1lbW8pKCgoKT0+ZnVuY3Rpb24oZSl7Y29uc3QgdD1yPT57ZShyKSx0LmN1cnJlbnQ9cn07cmV0dXJuIHQuY3VycmVudD1udWxsLHR9KChlPT57by5jdXJyZW50KGUpfSkpKSxbXSkscj0oMCxzLnVzZVJlZikobnVsbCksaT10PT57aWYobnVsbD09PXQpcmV0dXJuIGEoci5jdXJyZW50LHQpLHZvaWQoci5jdXJyZW50PW51bGwpO3IuY3VycmVudCE9PWUmJihyLmN1cnJlbnQ9ZSxhKHIuY3VycmVudCx0KSl9LG89KDAscy51c2VSZWYpKGkpO3JldHVybiBvLmN1cnJlbnQ9aSwoMCxuLnVzZUlzb21vcnBoaWNMYXlvdXRFZmZlY3QpKCgoKT0+e2lmKG51bGwhPT10LmN1cnJlbnQpcmV0dXJuIG8uY3VycmVudCh0LmN1cnJlbnQpLCgpPT5vLmN1cnJlbnQobnVsbCl9KSxbZV0pLHR9ZnVuY3Rpb24gYShlLHQpe251bGwhPT1lJiYoImZ1bmN0aW9uIj09dHlwZW9mIGU/ZSh0KTplLmN1cnJlbnQ9dCl9fSw2ODk4OTQoZSx0LHIpeyJ1c2Ugc3RyaWN0IjtyLmQodCx7aG92ZXJNb3VzZUV2ZW50RmlsdGVyOigpPT5hLHVzZUFjY3VyYXRlSG92ZXI6KCk9Pm8sdXNlSG92ZXI6KCk9Pm4sdXNlSG92ZXJEZXByZWNhdGVkOigpPT5pfSk7dmFyIHM9cig3Nzk0NzQpO2Z1bmN0aW9uIG4oKXtjb25zdFtlLHRdPSgwLHMudXNlU3RhdGUpKCExKTtyZXR1cm5bZSx7b25Nb3VzZUVudGVyOmZ1bmN0aW9uKGUpe3QoITApfSwKb25Nb3VzZUxlYXZlOmZ1bmN0aW9uKGUpe3QoITEpfX1dfWZ1bmN0aW9uIGkoKXtjb25zdFtlLHRdPSgwLHMudXNlU3RhdGUpKCExKTtyZXR1cm5bZSx7b25Nb3VzZU92ZXI6ZnVuY3Rpb24oZSl7YShlKSYmdCghMCl9LG9uTW91c2VPdXQ6ZnVuY3Rpb24oZSl7YShlKSYmdCghMSl9fV19ZnVuY3Rpb24gYShlKXtyZXR1cm4hZS5jdXJyZW50VGFyZ2V0LmNvbnRhaW5zKGUucmVsYXRlZFRhcmdldCl9ZnVuY3Rpb24gbyhlKXtjb25zdFt0LHJdPSgwLHMudXNlU3RhdGUpKCExKTtyZXR1cm4oMCxzLnVzZUVmZmVjdCkoKCgpPT57Y29uc3QgdD10PT57aWYobnVsbD09PWUuY3VycmVudClyZXR1cm47Y29uc3Qgcz1lLmN1cnJlbnQuY29udGFpbnModC50YXJnZXQpO3Iocyl9O3JldHVybiBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZW92ZXIiLHQpLCgpPT5kb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZW92ZXIiLHQpfSksW10pLHR9fSw3MTk0MjUoZSx0LHIpeyJ1c2Ugc3RyaWN0IjtyLmQodCx7dXNlUmVzaXplT2JzZXJ2ZXI6KCk9PmF9KTt2YXIgcz1yKDc3OTQ3NCksbj1yKDYxNjMxMSksaT1yKDc4Nzg5NSk7ZnVuY3Rpb24gYShlLHQ9W10pe2NvbnN0e2NhbGxiYWNrOnIscmVmOmE9bnVsbH09ZnVuY3Rpb24oZSl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIGU/e2NhbGxiYWNrOmV9OmV9KGUpLG89KDAscy51c2VSZWYpKG51bGwpLGw9KDAscy51c2VSZWYpKHIpO2wuY3VycmVudD1yO2NvbnN0IGM9KDAsaS51c2VGdW5jdGlvbmFsUmVmT2JqZWN0KShhKSx1PSgwLHMudXNlQ2FsbGJhY2spKChlPT57YyhlKSxudWxsIT09by5jdXJyZW50JiYoby5jdXJyZW50LmRpc2Nvbm5lY3QoKSxudWxsIT09ZSYmby5jdXJyZW50Lm9ic2VydmUoZSkpfSksW2Msb10pO3JldHVybigwLG4udXNlSXNvbW9ycGhpY0xheW91dEVmZmVjdCkoKCgpPT4oby5jdXJyZW50PW5ldyBSZXNpemVPYnNlcnZlcigoKGUsdCk9PntsLmN1cnJlbnQoZSx0KX0pKSxjLmN1cnJlbnQmJnUoYy5jdXJyZW50KSwoKT0+e28uY3VycmVudD8uZGlzY29ubmVjdCgpfSkpLFtjLC4uLnRdKSx1fX0sMjczMzEwKGUsdCxyKXsidXNlIHN0cmljdCI7ci5kKHQse0ljb246KCk9Pm59KTt2YXIgcz1yKDc3OTQ3NCk7Y29uc3Qgbj1zLmZvcndhcmRSZWYoKChlLHQpPT57Y29uc3R7aWNvbjpyPSIiLHRpdGxlOm4sYXJpYUxhYmVsOmksYXJpYUxhYmVsbGVkYnk6YSxhcmlhSGlkZGVuOm8sLi4ubH09ZSxjPSEhKG58fGl8fGEpO3JldHVybiBzLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtyb2xlOiJpbWciLC4uLmwscmVmOnQsImFyaWEtbGFiZWwiOmksImFyaWEtbGFiZWxsZWRieSI6YSwiYXJpYS1oaWRkZW4iOm98fCFjLHRpdGxlOm4sZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUw6e19faHRtbDpyfX0pfSkpfSw4MzM5MDMoZSx0LHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBzKC4uLmUpe3JldHVybiB0PT57Zm9yKGNvbnN0IHIgb2YgZSl2b2lkIDAhPT1yJiZyKHQpfX1yLmQodCx7Y3JlYXRlU2FmZU11bHRpY2FzdEV2ZW50SGFuZGxlcjooKT0+c30pfSwzNjUyMTcoZSx0LHIpeyJ1c2Ugc3RyaWN0IjtyLmQodCx7SEVBREVSX1RPT0xCQVJfSEVJR0hUX0NPTExBUFNFRDooKT0+aSxIRUFERVJfVE9PTEJBUl9IRUlHSFRfRVhQQU5ERUQ6KCk9Pm59KTt2YXIgcz1yKDU3NTEzNyk7Y29uc3Qgbj1wYXJzZUludChzWyJjc3MtdmFsdWUtaGVhZGVyLXRvb2xiYXItaGVpZ2h0Il0pLGk9M30sNTIzODAxKGUsdCxyKXsidXNlIHN0cmljdCI7ci5yKHQpLHIuZCh0LHtIZWFkZXJUb29sYmFyOigpPT5fZX0pO3ZhciBzPXIoNzc5NDc0KSxuPXIoOTE0NDg3KSxpPXIubihuKSxhPXIoNTI3MzIzKSxvPXIubihhKSxsPXIoNTg3MTY4KSxjPXIoMzA0MjIxKTtjb25zdCB1PWZ1bmN0aW9uKGUpe3JldHVybiBudWxsPT1lfTt2YXIgZD1yKDEzODYzOCksaD1yKDIzMjM2NCksbT1yKDkzMDIzMSksdj1yKDE3OTc3MSkscD1yKDIyMTg5NiksZj1yKDM2MzI2OSksUz1yKDk5ODE1OCksYj1yKDE2NDU2Nik7ZnVuY3Rpb24gZyhlKXtyZXR1cm4gcy5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6aSgpKGIuc2VwYXJhdG9yLGUuY2xhc3NOYW1lKX0pfXZhciBfPXIoMjc5NTMyKTtmdW5jdGlvbiB5KGUpe2NvbnN0e2NoaWxkcmVuOnQsY2xhc3NOYW1lOnIsbm9MZWZ0RGVjb3JhdGlvbjpuLG5vUmlnaHREZWNvcmF0aW9uOmEsbm9NaW5pbWFsV2lkdGg6byxvbkNsaWNrOmwscmVtb3ZlU2VwYXJhdG9yOmN9PWU7cmV0dXJuIHMuY3JlYXRlRWxlbWVudChzLkZyYWdtZW50LG51bGwsIWMmJnMuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOl8uc2VwYXJhdG9yV3JhcH0scy5jcmVhdGVFbGVtZW50KGcse2NsYXNzTmFtZTpfLnNlcGFyYXRvcn0pKSxzLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTppKCkocixfLmdyb3VwLHtbXy5ub01pbmltYWxXaWR0aF06byxbXy5ub0xlZnREZWNvcmF0aW9uXTpuLFtfLm5vUmlnaHREZWNvcmF0aW9uXTphfSksb25DbGljazpsfSx0KSl9dmFyIEU9cig1MDk5OTApLEM9cigxODUyNzEpLFQ9cigyNzMzMTApLHc9cigzNzA3NzUpLEQ9cigzMDE2MDcpO2NvbnN0IE09e3RleHQ6Qy50KG51bGwsdm9pZCAwLHIoNTQwOTEwKSl9O2Z1bmN0aW9uIFIoZSl7cmV0dXJuIHMuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOncud3JhcH0scy5jcmVhdGVFbGVtZW50KFQuSWNvbix7Y2xhc3NOYW1lOncuaWNvbixpY29uOkR9KSxNLnRleHQpfXZhciBrPXIoMjE4ODE0KSxJPXIoMTE1MjkzKSxGPXIoMzQyNzgpLE89cigzOTE4OTApLEE9cig4NDYwMTEpO2NvbnN0IFY9e2lzVmlzaWJsZVNjcm9sbGJhcjohMCxzaG91bGRNZWFzdXJlOiEwLGhpZGVCdXR0b25zRnJvbToxfTtmdW5jdGlvbiBOKGUpe3JldHVybiBzLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTppKCkoQS5mYWRlTGVmdCxlLmNsYXNzTmFtZSx7W0EuaXNWaXNpYmxlXTplLmlzVmlzaWJsZX0pfSl9ZnVuY3Rpb24gTChlKXtyZXR1cm4gcy5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6aSgpKEEuZmFkZVJpZ2h0LGUuY2xhc3NOYW1lLHsKW0EuaXNWaXNpYmxlXTplLmlzVmlzaWJsZX0pfSl9ZnVuY3Rpb24geChlKXtyZXR1cm4gcy5jcmVhdGVFbGVtZW50KEIsey4uLmUsY2xhc3NOYW1lOkEuc2Nyb2xsTGVmdH0pfWZ1bmN0aW9uIFcoZSl7cmV0dXJuIHMuY3JlYXRlRWxlbWVudChCLHsuLi5lLGNsYXNzTmFtZTpBLnNjcm9sbFJpZ2h0fSl9ZnVuY3Rpb24gQihlKXtyZXR1cm4gcy5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6aSgpKGUuY2xhc3NOYW1lLHtbQS5pc1Zpc2libGVdOmUuaXNWaXNpYmxlfSksb25DbGljazplLm9uQ2xpY2t9LHMuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOkEuaWNvbldyYXB9LHMuY3JlYXRlRWxlbWVudChULkljb24se2ljb246TyxjbGFzc05hbWU6QS5pY29ufSkpKX1jb25zdCBQPWZ1bmN0aW9uKGU9eCx0PVcscj1OLG49TCl7dmFyIGE7cmV0dXJuKGE9Y2xhc3MgZXh0ZW5kcyBzLlB1cmVDb21wb25lbnR7Y29uc3RydWN0b3IoZSl7c3VwZXIoZSksdGhpcy5fc2Nyb2xsPXMuY3JlYXRlUmVmKCksdGhpcy5faGFuZGxlU2Nyb2xsTGVmdD0oKT0+e2lmKHRoaXMucHJvcHMub25TY3JvbGxCdXR0b25DbGljaylyZXR1cm4gdm9pZCB0aGlzLnByb3BzLm9uU2Nyb2xsQnV0dG9uQ2xpY2soImxlZnQiKTtjb25zdCBlPXRoaXMucHJvcHMuc2Nyb2xsU3RlcFNpemV8fHRoaXMuc3RhdGUud2lkdGhXcmFwLTUwO3RoaXMuYW5pbWF0ZVRvKE1hdGgubWF4KDAsdGhpcy5jdXJyZW50UG9zaXRpb24oKS1lKSl9LHRoaXMuX2hhbmRsZVNjcm9sbFJpZ2h0PSgpPT57aWYodGhpcy5wcm9wcy5vblNjcm9sbEJ1dHRvbkNsaWNrKXJldHVybiB2b2lkIHRoaXMucHJvcHMub25TY3JvbGxCdXR0b25DbGljaygicmlnaHQiKTtjb25zdCBlPXRoaXMucHJvcHMuc2Nyb2xsU3RlcFNpemV8fHRoaXMuc3RhdGUud2lkdGhXcmFwLTUwO3RoaXMuYW5pbWF0ZVRvKE1hdGgubWluKCh0aGlzLnN0YXRlLndpZHRoQ29udGVudHx8MCktKHRoaXMuc3RhdGUud2lkdGhXcmFwfHwwKSx0aGlzLmN1cnJlbnRQb3NpdGlvbigpK2UpKX0sdGhpcy5faGFuZGxlUmVzaXplV3JhcD0oW2VdKT0+e2NvbnN0IHQ9ZS50YXJnZXQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7dGhpcy5wcm9wcy5vbk1lYXN1cmVXcmFwJiZ0aGlzLnByb3BzLm9uTWVhc3VyZVdyYXAodCksdGhpcy5zZXRTdGF0ZSh7d2lkdGhXcmFwOnQud2lkdGh9KSx0aGlzLl9jaGVja0J1dHRvbnNWaXNpYmlsaXR5KCl9LHRoaXMuX2hhbmRsZVJlc2l6ZUNvbnRlbnQ9KFtlXSk9Pntjb25zdCB0PWUudGFyZ2V0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3RoaXMucHJvcHMub25NZWFzdXJlQ29udGVudCYmdGhpcy5wcm9wcy5vbk1lYXN1cmVDb250ZW50KHQpO2NvbnN0e3Nob3VsZERlY3JlYXNlV2lkdGhDb250ZW50OnIsYnV0dG9uc1dpZHRoSWZEZWNyZWFzZWRXaWR0aENvbnRlbnQ6c309dGhpcy5wcm9wcztyJiZzP3RoaXMuc2V0U3RhdGUoe3dpZHRoQ29udGVudDp0LndpZHRoKzIqc30pOnRoaXMuc2V0U3RhdGUoe3dpZHRoQ29udGVudDp0LndpZHRofSl9LHRoaXMuX2hhbmRsZVNjcm9sbD0oKT0+e2NvbnN0e29uU2Nyb2xsOmV9PXRoaXMucHJvcHM7ZSYmZSh0aGlzLmN1cnJlbnRQb3NpdGlvbigpLHRoaXMuaXNBdExlZnQoKSx0aGlzLmlzQXRSaWdodCgpKSx0aGlzLl9jaGVja0J1dHRvbnNWaXNpYmlsaXR5KCl9LHRoaXMuX2NoZWNrQnV0dG9uc1Zpc2liaWxpdHk9KCk9Pntjb25zdHtpc1Zpc2libGVMZWZ0QnV0dG9uOmUsaXNWaXNpYmxlUmlnaHRCdXR0b246dH09dGhpcy5zdGF0ZSxyPXRoaXMuaXNBdExlZnQoKSxzPXRoaXMuaXNBdFJpZ2h0KCk7cnx8ZT9yJiZlJiZ0aGlzLnNldFN0YXRlKHtpc1Zpc2libGVMZWZ0QnV0dG9uOiExfSk6dGhpcy5zZXRTdGF0ZSh7aXNWaXNpYmxlTGVmdEJ1dHRvbjohMH0pLHN8fHQ/cyYmdCYmdGhpcy5zZXRTdGF0ZSh7aXNWaXNpYmxlUmlnaHRCdXR0b246ITF9KTp0aGlzLnNldFN0YXRlKHtpc1Zpc2libGVSaWdodEJ1dHRvbjohMH0pfSx0aGlzLnN0YXRlPXt3aWR0aENvbnRlbnQ6MCx3aWR0aFdyYXA6MCxpc1Zpc2libGVSaWdodEJ1dHRvbjohMSxpc1Zpc2libGVMZWZ0QnV0dG9uOiExfX1jb21wb25lbnREaWRNb3VudCgpe3RoaXMuX2NoZWNrQnV0dG9uc1Zpc2liaWxpdHkoKX1jb21wb25lbnREaWRVcGRhdGUoZSx0KXt0LndpZHRoV3JhcD09PXRoaXMuc3RhdGUud2lkdGhXcmFwJiZ0LndpZHRoQ29udGVudD09PXRoaXMuc3RhdGUud2lkdGhDb250ZW50fHx0aGlzLl9oYW5kbGVTY3JvbGwoKX1jdXJyZW50UG9zaXRpb24oKXtyZXR1cm4gdGhpcy5fc2Nyb2xsLmN1cnJlbnQ/KDAsSS5pc1J0bCkoKT8oMCxJLmdldExUUlNjcm9sbExlZnQpKHRoaXMuX3Njcm9sbC5jdXJyZW50KTp0aGlzLl9zY3JvbGwuY3VycmVudC5zY3JvbGxMZWZ0OjB9aXNBdExlZnQoKXtyZXR1cm4hdGhpcy5faXNPdmVyZmxvd2VkKCl8fHRoaXMuY3VycmVudFBvc2l0aW9uKCk8PSgwLGQuZW5zdXJlRGVmaW5lZCkodGhpcy5wcm9wcy5oaWRlQnV0dG9uc0Zyb20pfWlzQXRSaWdodCgpe3JldHVybiF0aGlzLl9pc092ZXJmbG93ZWQoKXx8dGhpcy5jdXJyZW50UG9zaXRpb24oKSt0aGlzLnN0YXRlLndpZHRoV3JhcD49dGhpcy5zdGF0ZS53aWR0aENvbnRlbnQtKDAsZC5lbnN1cmVEZWZpbmVkKSh0aGlzLnByb3BzLmhpZGVCdXR0b25zRnJvbSl9YW5pbWF0ZVRvKGUsdD1rLmR1cil7Y29uc3Qgcj10aGlzLl9zY3JvbGwuY3VycmVudDtyJiYoKDAsSS5pc1J0bCkoKSYmKGU9KDAsSS5nZXRMVFJTY3JvbGxMZWZ0T2Zmc2V0KShyLGUpKSx0PD0wP3Iuc2Nyb2xsTGVmdD1NYXRoLnJvdW5kKGUpOigwLEYuZG9BbmltYXRlKSh7b25TdGVwKGUsdCl7ci5zY3JvbGxMZWZ0PU1hdGgucm91bmQodCl9LGZyb206ci5zY3JvbGxMZWZ0LHRvOk1hdGgucm91bmQoZSksZWFzaW5nOmsuZWFzaW5nRnVuYy5lYXNlSW5PdXRDdWJpYyxkdXJhdGlvbjp0fSkpfXJlbmRlcigpewpjb25zdHtjaGlsZHJlbjphLGlzVmlzaWJsZVNjcm9sbGJhcjpvLGlzVmlzaWJsZUZhZGU6bCxpc1Zpc2libGVCdXR0b25zOmMsc2hvdWxkTWVhc3VyZTp1LHNob3VsZERlY3JlYXNlV2lkdGhDb250ZW50OmQsYnV0dG9uc1dpZHRoSWZEZWNyZWFzZWRXaWR0aENvbnRlbnQ6aCxvbk1vdXNlT3ZlcjptLG9uTW91c2VPdXQ6dixzY3JvbGxXcmFwQ2xhc3NOYW1lOnAsZmFkZUNsYXNzTmFtZTpmfT10aGlzLnByb3BzLHtpc1Zpc2libGVSaWdodEJ1dHRvbjpTLGlzVmlzaWJsZUxlZnRCdXR0b246Yn09dGhpcy5zdGF0ZSxnPWQmJmg7cmV0dXJuIHMuY3JlYXRlRWxlbWVudChFLk1lYXN1cmUse29uUmVzaXplOnU/dGhpcy5faGFuZGxlUmVzaXplV3JhcDpudWxsfSwoZD0+cy5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6QS53cmFwT3ZlcmZsb3csb25Nb3VzZU92ZXI6bSxvbk1vdXNlT3V0OnYscmVmOmR9LHMuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOmkoKShBLndyYXAsZz9BLndyYXBXaXRoQXJyb3dzT3V0aW5nOiIiKX0scy5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6aSgpKEEuc2Nyb2xsV3JhcCxwLHtbQS5ub1Njcm9sbEJhcl06IW99KSxvblNjcm9sbDp0aGlzLl9oYW5kbGVTY3JvbGwscmVmOnRoaXMuX3Njcm9sbH0scy5jcmVhdGVFbGVtZW50KEUuTWVhc3VyZSx7b25SZXNpemU6dT90aGlzLl9oYW5kbGVSZXNpemVDb250ZW50Om51bGx9LGEpKSxsJiZzLmNyZWF0ZUVsZW1lbnQocix7aXNWaXNpYmxlOmIsY2xhc3NOYW1lOmZ9KSxsJiZzLmNyZWF0ZUVsZW1lbnQobix7aXNWaXNpYmxlOlMsY2xhc3NOYW1lOmZ9KSxjJiZzLmNyZWF0ZUVsZW1lbnQoZSx7b25DbGljazp0aGlzLl9oYW5kbGVTY3JvbGxMZWZ0LGlzVmlzaWJsZTpifSksYyYmcy5jcmVhdGVFbGVtZW50KHQse29uQ2xpY2s6dGhpcy5faGFuZGxlU2Nyb2xsUmlnaHQsaXNWaXNpYmxlOlN9KSkpKSl9X2lzT3ZlcmZsb3dlZCgpe2NvbnN0e3dpZHRoQ29udGVudDplLHdpZHRoV3JhcDp0fT10aGlzLnN0YXRlO3JldHVybiBlPnR9fSkuZGVmYXVsdFByb3BzPVYsYX0oeCxXLE4sTCk7dmFyIEgsej1yKDUxODc1KTshZnVuY3Rpb24oZSl7ZS5TeW1ib2xTZWFyY2g9ImhlYWRlci10b29sYmFyLXN5bWJvbC1zZWFyY2giLGUuSW50ZXJ2YWxzPSJoZWFkZXItdG9vbGJhci1pbnRlcnZhbHMiLGUuQ2hhcnRTdHlsZXM9ImhlYWRlci10b29sYmFyLWNoYXJ0LXN0eWxlcyIsZS5Db21wYXJlPSJoZWFkZXItdG9vbGJhci1jb21wYXJlIixlLkluZGljYXRvcnM9ImhlYWRlci10b29sYmFyLWluZGljYXRvcnMiLGUuU3R1ZHlUZW1wbGF0ZXM9ImhlYWRlci10b29sYmFyLXN0dWR5LXRlbXBsYXRlcyIsZS5Ecm9wZG93bj0iaGVhZGVyLXRvb2xiYXItZHJvcGRvd24iLGUuQWxlcnRzPSJoZWFkZXItdG9vbGJhci1hbGVydHMiLGUuTGF5b3V0cz0iaGVhZGVyLXRvb2xiYXItbGF5b3V0cyIsZS5TYXZlTG9hZD0iaGVhZGVyLXRvb2xiYXItc2F2ZS1sb2FkIixlLlVuZG9SZWRvPSJoZWFkZXItdG9vbGJhci11bmRvLXJlZG8iLGUuUHJvcGVydGllcz0iaGVhZGVyLXRvb2xiYXItcHJvcGVydGllcyIsZS5RdWlja1NlYXJjaD0iaGVhZGVyLXRvb2xiYXItcXVpY2stc2VhcmNoIixlLlRyYWRlRGVza3RvcD0iaGVhZGVyLXRvb2xiYXItdHJhZGUtZGVza3RvcCIsZS5UcmFkZU1vYmlsZT0iaGVhZGVyLXRvb2xiYXItdHJhZGUtbW9iaWxlIixlLlB1Ymxpc2hEZXNrdG9wPSJoZWFkZXItdG9vbGJhci1wdWJsaXNoLWRlc2t0b3AiLGUuUHVibGlzaE1vYmlsZT0iaGVhZGVyLXRvb2xiYXItcHVibGlzaC1tb2JpbGUiLGUuRnVsbHNjcmVlbj0iaGVhZGVyLXRvb2xiYXItZnVsbHNjcmVlbiIsZS5TY3JlZW5zaG90PSJoZWFkZXItdG9vbGJhci1zY3JlZW5zaG90IixlLlRlbGVncmFtU2hhcmU9ImhlYWRlci10b29sYmFyLXRlbGVncmFtLXNoYXJlIixlLlJlcGxheT0iaGVhZGVyLXRvb2xiYXItcmVwbGF5IixlLkZpbmFuY2lhbHM9ImhlYWRlci10b29sYmFyLWZpbmFuY2lhbHMifShIfHwoSD17fSkpO3ZhciBxPXIoNjg5ODk0KSxqPXIoNTY5NjUyKSxHPXIoNzMwMDA5KSxVPXIoNTY5Mzk4KSxLPXIoMzE4OTc0KSwkPXIoMzg2OTMxKSxZPXIoNzAxMTU2KSxKPXIoMjE4NjAzKTtjb25zdCBaPSgwLGoucmVnaXN0cnlDb250ZXh0VHlwZSkoKSxYPSgwLG0uaXNGZWF0dXJlc2V0RW5hYmxlZCkoIndpZGdldCIpO2NsYXNzIFEgZXh0ZW5kcyBzLlB1cmVDb21wb25lbnR7Y29uc3RydWN0b3IoZSx0KXtzdXBlcihlLHQpLHRoaXMuX2hhbmRsZU1vdXNlT3Zlcj1lPT57KDAscS5ob3Zlck1vdXNlRXZlbnRGaWx0ZXIpKGUpJiZ0aGlzLnNldFN0YXRlKHtpc0hvdmVyZWQ6ITB9KX0sdGhpcy5faGFuZGxlTW91c2VPdXQ9ZT0+eygwLHEuaG92ZXJNb3VzZUV2ZW50RmlsdGVyKShlKSYmdGhpcy5zZXRTdGF0ZSh7aXNIb3ZlcmVkOiExfSl9LHRoaXMuX2hhbmRsZUlubmVyUmVzaXplPShbZV0pPT57Y29uc3QgdD1lLmNvbnRlbnRSZWN0LndpZHRoLHtvbldpZHRoQ2hhbmdlOnJ9PXRoaXMucHJvcHM7ciYmcih0KX0sdGhpcy5faGFuZGxlTWVhc3VyZUF2YWlsYWJsZVNwYWNlPWU9Pntjb25zdHtvbkF2YWlsYWJsZVNwYWNlQ2hhbmdlOnR9PXRoaXMucHJvcHM7dCYmdChlLndpZHRoKX0sdGhpcy5fcHJvY2Vzc0N1c3RvbXM9KGUsdD0hMSk9Pntjb25zdHtpc0Zha2U6cixkaXNwbGF5TW9kZTpufT10aGlzLnByb3BzLHt0b29sczppfT10aGlzLmNvbnRleHQ7cmV0dXJuIGUubWFwKChlPT5zLmNyZWF0ZUVsZW1lbnQoeSx7a2V5OmUuaWQscmVtb3ZlU2VwYXJhdG9yOnR9LChlPT57c3dpdGNoKGUudHlwZSl7Y2FzZSJCdXR0b24iOnJldHVybiBzLmNyZWF0ZUVsZW1lbnQoaS5DdXN0b20sey4uLmUucGFyYW1zLGlzRmFrZTpyfSk7Y2FzZSJUcmFkaW5nVmlld1N0eWxlZEJ1dHRvbiI6cmV0dXJuIHMuY3JlYXRlRWxlbWVudChpLkN1c3RvbVRyYWRpbmdWaWV3U3R5bGVkQnV0dG9uLHsuLi5lLnBhcmFtcyxjbGFzc05hbWU6Si5idXR0b24sZGlzcGxheU1vZGU6bn0pO2Nhc2UiRHJvcGRvd24iOnJldHVybiBzLmNyZWF0ZUVsZW1lbnQoaS5Ecm9wZG93bix7ZGlzcGxheU1vZGU6biwKcGFyYW1zOmUucGFyYW1zfSk7ZGVmYXVsdDpyZXR1cm4gbnVsbH19KShlKSkpKX0sdGhpcy5fZml4TGFzdEdyb3VwPShlLHQscik9PntpZih0PT09ci5sZW5ndGgtMSYmcy5pc1ZhbGlkRWxlbWVudChlKSYmZS50eXBlPT09eSl7Y29uc3QgdD12b2lkIDAhPT10aGlzLmNvbnRleHQudG9vbHMuUHVibGlzaCYmIXRoaXMucHJvcHMucmVhZE9ubHk7cmV0dXJuIHMuY2xvbmVFbGVtZW50KGUse25vUmlnaHREZWNvcmF0aW9uOnR9KX1yZXR1cm4gZX0sdGhpcy5faGFuZGxlRGlhbG9nVG9vbHNDaGFuZ2U9ZT0+e3RoaXMuc2V0U3RhdGUoe2FjdGl2ZURpYWxvZ1Rvb2xzQ29uZmlnOmV9KX0sKDAsai52YWxpZGF0ZVJlZ2lzdHJ5KSh0LHt0b29sczpwLmFueS5pc1JlcXVpcmVkfSksdGhpcy5zdGF0ZT17aXNIb3ZlcmVkOiExLGFjdGl2ZURpYWxvZ1Rvb2xzQ29uZmlnOm51bGx9fWNvbXBvbmVudERpZE1vdW50KCl7KDAsWS5nZXREaWFsb2dUb29sc01hbmFnZXIpKCk/LmdldEFjdGl2ZURpYWxvZ1Rvb2xzKCkuc3Vic2NyaWJlKHRoaXMuX2hhbmRsZURpYWxvZ1Rvb2xzQ2hhbmdlKX1jb21wb25lbnRXaWxsVW5tb3VudCgpeygwLFkuZ2V0RGlhbG9nVG9vbHNNYW5hZ2VyKSgpPy5nZXRBY3RpdmVEaWFsb2dUb29scygpLnVuc3Vic2NyaWJlKHRoaXMuX2hhbmRsZURpYWxvZ1Rvb2xzQ2hhbmdlKX1yZW5kZXIoKXtjb25zdHt0b29sczplfT10aGlzLmNvbnRleHQse3JlYWRPbmx5OnQsc2hvd1Njcm9sbGJhcldoZW46cixkaXNwbGF5TW9kZTpuLGlzRmFrZTphPSExfT10aGlzLnByb3BzLHtpc0hvdmVyZWQ6b309dGhpcy5zdGF0ZSxsPXIuaW5jbHVkZXMobik7cmV0dXJuIHMuY3JlYXRlRWxlbWVudChHLlRvb2xiYXIse2NsYXNzTmFtZTppKCkoSi5pbm5lcix7W0ouZmFrZV06YX0pLG9uQ29udGV4dE1lbnU6ei5wcmV2ZW50RGVmYXVsdEZvckNvbnRleHRNZW51LCJkYXRhLWlzLWZha2UtbWFpbi1wYW5lbCI6YSwiYXJpYS1oaWRkZW4iOmF9LHMuY3JlYXRlRWxlbWVudChQLHtpc1Zpc2libGVGYWRlOmYubW9iaWxldG91Y2gmJmwsaXNWaXNpYmxlQnV0dG9uczohZi5tb2JpbGV0b3VjaCYmbCYmbyxpc1Zpc2libGVTY3JvbGxiYXI6ITEsc2hvdWxkTWVhc3VyZTohYSxvbk1vdXNlT3Zlcjp0aGlzLl9oYW5kbGVNb3VzZU92ZXIsb25Nb3VzZU91dDp0aGlzLl9oYW5kbGVNb3VzZU91dCxvbk1lYXN1cmVXcmFwOnRoaXMuX2hhbmRsZU1lYXN1cmVBdmFpbGFibGVTcGFjZX0sKGU9PnMuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOkouY29udGVudCxyZWY6ZSxyb2xlOiJub25lIn0scy5jcmVhdGVFbGVtZW50KEUuTWVhc3VyZSx7b25SZXNpemU6YT90aGlzLl9oYW5kbGVJbm5lclJlc2l6ZTpudWxsfSwoZT0+cy5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6Si5pbm5lcldyYXAscmVmOmV9LHRoaXMuc3RhdGUuYWN0aXZlRGlhbG9nVG9vbHNDb25maWc/dGhpcy5fcmVuZGVyRGlhbG9nVG9vbHMoKTpzLmNyZWF0ZUVsZW1lbnQoUy5GcmFnbWVudE1hcCx7bWFwOnRoaXMuX2ZpeExhc3RHcm91cH0sdGhpcy5fcmVuZGVyTGVmdFRvb2xzKCksdGhpcy5fcmVuZGVyUmlnaHRUb29scygpKSkpKSkpKSwhdCYmIWEmJiF0aGlzLnN0YXRlLmFjdGl2ZURpYWxvZ1Rvb2xzQ29uZmlnJiZzLmNyZWF0ZUVsZW1lbnQocy5GcmFnbWVudCxudWxsLCEoMCxLLmlzU3ltcGhvbnlFbWJlZCkoKSYmZS5UcmFkZSYmcy5jcmVhdGVFbGVtZW50KGUuVHJhZGUse2lkOkguVHJhZGVEZXNrdG9wLGNsYXNzTmFtZTpKLmRlc2t0b3BUcmFkZX0pLGUuUHVibGlzaCYmISgwLG0uaXNGZWF0dXJlc2V0RW5hYmxlZCkoImhpZGVfcHVibGlzaF9idXR0b24iKSYmcy5jcmVhdGVFbGVtZW50KGUuUHVibGlzaCx7aWQ6SC5QdWJsaXNoRGVza3RvcCxjbGFzc05hbWU6Si5kZXNrdG9wUHVibGlzaH0pKSl9X3RyYWNrRnVsbHNjcmVlbkJ1dHRvbkNsaWNrKCl7KDAsJC50cmFja0V2ZW50KSgiR1VJIiwiQ2hhcnQgSGVhZGVyIFRvb2xiYXIiLCJmdWxsc2NyZWVuIil9X3JlbmRlckxlZnRUb29scygpe2NvbnN0e3Rvb2xzOmV9PXRoaXMuY29udGV4dCx7ZmVhdHVyZXM6dCxkaXNwbGF5TW9kZTpyLHN0dWR5TWFya2V0Om4sbGVmdEN1c3RvbUVsZW1lbnRzOmkscmVhZE9ubHk6YSxpc0Zha2U6bz0hMX09dGhpcy5wcm9wcztpZihhKXJldHVybiBudWxsO2NvbnN0IGw9dGhpcy5fcHJvY2Vzc0N1c3RvbXMoaSk7cmV0dXJuIHMuQ2hpbGRyZW4udG9BcnJheShbKGUuU3ltYm9sU2VhcmNofHwhWCYmZS5Db21wYXJlKSYmcy5jcmVhdGVFbGVtZW50KHkse2tleToic3ltYm9sIn0sZS5TeW1ib2xTZWFyY2gmJnMuY3JlYXRlRWxlbWVudChlLlN5bWJvbFNlYXJjaCx7aWQ6bz92b2lkIDA6SC5TeW1ib2xTZWFyY2gsaXNGYWtlOm8saXNBY3Rpb25zVmlzaWJsZTp0LmFsbG93U3ltYm9sU2VhcmNoU3ByZWFkfSksZS5Db21wYXJlJiZzLmNyZWF0ZUVsZW1lbnQoZS5Db21wYXJlLHtpZDpvP3ZvaWQgMDpILkNvbXBhcmUsY2xhc3NOYW1lOkouYnV0dG9uLGRpc3BsYXlNb2RlOnJ9KSksZS5EYXRlUmFuZ2UmJnMuY3JlYXRlRWxlbWVudCh5LHtrZXk6InJhbmdlIn0scy5jcmVhdGVFbGVtZW50KGUuRGF0ZVJhbmdlLG51bGwpKSxlLkludGVydmFscyYmcy5jcmVhdGVFbGVtZW50KHkse2tleToiaW50ZXJ2YWxzIn0scy5jcmVhdGVFbGVtZW50KGUuSW50ZXJ2YWxzLHtpZDpvP3ZvaWQgMDpILkludGVydmFscyxpc1Nob3duUXVpY2tzOnQuYWxsb3dGYXZvcml0aW5nLGlzRmF2b3JpdGluZ0FsbG93ZWQ6dC5hbGxvd0Zhdm9yaXRpbmcsZGlzcGxheU1vZGU6cixpc0Zha2U6b30pKSxlLkJhcnMmJnMuY3JlYXRlRWxlbWVudCh5LHtrZXk6InN0eWxlcyJ9LHMuY3JlYXRlRWxlbWVudChlLkJhcnMse2lkOm8/dm9pZCAwOkguQ2hhcnRTdHlsZXMsaXNTaG93blF1aWNrczp0LmFsbG93RmF2b3JpdGluZyxpc0Zhdm9yaXRpbmdBbGxvd2VkOnQuYWxsb3dGYXZvcml0aW5nLGRpc3BsYXlNb2RlOnIsaXNGYWtlOm99KSksWCYmZS5Db21wYXJlJiYhZS5TeW1ib2xTZWFyY2gmJnMuY3JlYXRlRWxlbWVudCh5LHtrZXk6ImNvbXBhcmUifSxzLmNyZWF0ZUVsZW1lbnQoZS5Db21wYXJlLHsKaWQ6bz92b2lkIDA6SC5Db21wYXJlLGNsYXNzTmFtZTpKLmJ1dHRvbixkaXNwbGF5TW9kZTpyfSkpLGUuSW5kaWNhdG9ycyYmcy5jcmVhdGVFbGVtZW50KHkse2tleToiaW5kaWNhdG9ycyJ9LHMuY3JlYXRlRWxlbWVudChlLkluZGljYXRvcnMse2lkOm8/dm9pZCAwOkguSW5kaWNhdG9ycyxjbGFzc05hbWU6Si5idXR0b24sc3R1ZHlNYXJrZXQ6bixkaXNwbGF5TW9kZTpyfSksZS5UZW1wbGF0ZXMmJnMuY3JlYXRlRWxlbWVudChlLlRlbXBsYXRlcyx7aWQ6bz92b2lkIDA6SC5TdHVkeVRlbXBsYXRlcyxpc1Nob3duUXVpY2tzOnQuYWxsb3dGYXZvcml0aW5nLGlzRmF2b3JpdGluZ0FsbG93ZWQ6dC5hbGxvd0Zhdm9yaXRpbmcsZGlzcGxheU1vZGU6cn0pKSxlLkFsZXJ0JiZzLmNyZWF0ZUVsZW1lbnQoeSx7a2V5OiJhbGVydCJ9LHMuY3JlYXRlRWxlbWVudChlLkFsZXJ0LHtpZDpvP3ZvaWQgMDpILkFsZXJ0cyxjbGFzc05hbWU6Si5idXR0b24sZGlzcGxheU1vZGU6cn0pLGUuUmVwbGF5JiZzLmNyZWF0ZUVsZW1lbnQoZS5SZXBsYXkse2lkOm8/dm9pZCAwOkguUmVwbGF5LGNsYXNzTmFtZTpKLmJ1dHRvbixkaXNwbGF5TW9kZTpyfSkpLGUuQWxlcnRSZWZlcnJhbCYmISgwLG0uaXNGZWF0dXJlc2V0RW5hYmxlZCkoImhpZGVfYWxlcnRfcmVmZXJyYWxfdG9vbCIpJiZzLmNyZWF0ZUVsZW1lbnQoeSx7a2V5OiJhbGVydC1yZWZlcnJhbCJ9LHMuY3JlYXRlRWxlbWVudChlLkFsZXJ0UmVmZXJyYWwse2NsYXNzTmFtZTpKLmJ1dHRvbixkaXNwbGF5TW9kZTpyfSkpLGUuU2NhbGVQZXJjZW50YWdlJiZzLmNyZWF0ZUVsZW1lbnQoeSx7a2V5OiJwZXJjZW50YWdlIn0scy5jcmVhdGVFbGVtZW50KGUuU2NhbGVQZXJjZW50YWdlLG51bGwpKSxlLlNjYWxlTG9nYXJpdGhtJiZzLmNyZWF0ZUVsZW1lbnQoeSx7a2V5OiJsb2dhcml0aG0ifSxzLmNyZWF0ZUVsZW1lbnQoZS5TY2FsZUxvZ2FyaXRobSxudWxsKSksLi4ubF0pfV9yZW5kZXJSaWdodFRvb2xzKCl7Y29uc3R7dG9vbHM6ZX09dGhpcy5jb250ZXh0LHtmZWF0dXJlczp0LGRpc3BsYXlNb2RlOnIsY2hhcnRTYXZlcjpuLHJlYWRPbmx5OmEsc2F2ZUxvYWRTeW5jRW1pdHRlcjpvLHJpZ2h0Q3VzdG9tRWxlbWVudHM6bCxpc0Zha2U6Yz0hMX09dGhpcy5wcm9wcyx1PXRoaXMuX3Byb2Nlc3NDdXN0b21zKGwpO3JldHVybiB0ZShzLkNoaWxkcmVuLnRvQXJyYXkoW2EmJnMuY3JlYXRlRWxlbWVudCh5LHtrZXk6InZpZXctb25seS1iYWRnZSIscmVtb3ZlU2VwYXJhdG9yOiEwfSxzLmNyZWF0ZUVsZW1lbnQoUixudWxsKSksIWEmJmUuVW5kb1JlZG8mJnMuY3JlYXRlRWxlbWVudCh5LHtrZXk6InVuZG8tcmVkbyJ9LHMuY3JlYXRlRWxlbWVudChlLlVuZG9SZWRvLHtpZDpjP3ZvaWQgMDpILlVuZG9SZWRvfSkpLHMuY3JlYXRlRWxlbWVudCh5LHtyZW1vdmVTZXBhcmF0b3I6ITAsa2V5OiJnYXAtMSIsY2xhc3NOYW1lOmkoKShKLmZpbGwsYyYmSi5jb2xsYXBzZSl9KSwoZS5MYXlvdXR8fGUuU2F2ZUxvYWQpJiZzLmNyZWF0ZUVsZW1lbnQoeSx7a2V5OiJsYXlvdXQiLHJlbW92ZVNlcGFyYXRvcjohMH0sIWEmJmUuTGF5b3V0JiZzLmNyZWF0ZUVsZW1lbnQoZS5MYXlvdXQse2lkOmM/dm9pZCAwOkguTGF5b3V0c30pLGUuU2F2ZUxvYWQmJnMuY3JlYXRlRWxlbWVudChlLlNhdmVMb2FkLHtpZDpjP3ZvaWQgMDpILlNhdmVMb2FkLGNoYXJ0U2F2ZXI6bixpc1JlYWRPbmx5OmEsZGlzcGxheU1vZGU6cixpc0Zha2U6YyxzdGF0ZVN5bmNFbWl0dGVyOm99KSksZS5TYXZlTG9hZFJlZmVycmFsJiZzLmNyZWF0ZUVsZW1lbnQoeSx7a2V5OiJzYXZlLWxvYWQtcmVmZXJyYWwifSxzLmNyZWF0ZUVsZW1lbnQoZS5TYXZlTG9hZFJlZmVycmFsLHtpc1JlYWRPbmx5OmEsZGlzcGxheU1vZGU6cn0pKSx0LnNob3dMYXVuY2hJblBvcHVwQnV0dG9uJiZlLk9wZW5Qb3B1cCYmISgwLG0uaXNGZWF0dXJlc2V0RW5hYmxlZCkoImhpZGVfb3Blbl9wb3B1cF9idXR0b24iKSYmcy5jcmVhdGVFbGVtZW50KHkse2tleToicG9wdXAifSxzLmNyZWF0ZUVsZW1lbnQoZS5PcGVuUG9wdXAsbnVsbCkpLCFhJiYhWCYmKGUuUHJvcGVydGllc3x8ZS5GdWxsc2NyZWVufHxlLlNjcmVlbnNob3QpJiZzLmNyZWF0ZUVsZW1lbnQoeSx7a2V5OiJwcm9wZXJ0aWVzIn0sIWEmJmUuUXVpY2tTZWFyY2gmJnMuY3JlYXRlRWxlbWVudChlLlF1aWNrU2VhcmNoLHtpZDpjP3ZvaWQgMDpILlF1aWNrU2VhcmNoLGNsYXNzTmFtZTpKLmljb25CdXR0b259KSwhYSYmZS5Qcm9wZXJ0aWVzJiZzLmNyZWF0ZUVsZW1lbnQoZS5Qcm9wZXJ0aWVzLHtpZDpjP3ZvaWQgMDpILlByb3BlcnRpZXMsY2xhc3NOYW1lOkouaWNvbkJ1dHRvbn0pLHMuY3JlYXRlRWxlbWVudChzLkZyYWdtZW50LG51bGwsIWEmJmUuRnVsbHNjcmVlbiYmcy5jcmVhdGVFbGVtZW50KHkse2tleToiZnVsbHNjcmVlbiIsb25DbGljazp0aGlzLl90cmFja0Z1bGxzY3JlZW5CdXR0b25DbGljayxyZW1vdmVTZXBhcmF0b3I6ITB9LHMuY3JlYXRlRWxlbWVudChlLkZ1bGxzY3JlZW4se2lkOmM/dm9pZCAwOkguRnVsbHNjcmVlbixjbGlja0FyZWE6InRvcCB0b29sYmFyIn0pKSwhWCYmZS5TY3JlZW5zaG90JiZzLmNyZWF0ZUVsZW1lbnQoZS5TY3JlZW5zaG90LHtpZDpjP3ZvaWQgMDpILlNjcmVlbnNob3QsY2xhc3NOYW1lOkouaWNvbkJ1dHRvbn0pKSksWCYmIWEmJmUuRnVsbHNjcmVlbiYmcy5jcmVhdGVFbGVtZW50KHkse2tleToiZnVsbHNjcmVlbiIsb25DbGljazp0aGlzLl90cmFja0Z1bGxzY3JlZW5CdXR0b25DbGljayxyZW1vdmVTZXBhcmF0b3I6ITB9LHMuY3JlYXRlRWxlbWVudChlLkZ1bGxzY3JlZW4se2lkOmM/dm9pZCAwOkguRnVsbHNjcmVlbixjbGlja0FyZWE6InRvcCB0b29sYmFyIn0pKSxYJiZlLlNjcmVlbnNob3QmJnMuY3JlYXRlRWxlbWVudCh5LHtrZXk6InNjcmVlbnNob3QiLHJlbW92ZVNlcGFyYXRvcjohMH0scy5jcmVhdGVFbGVtZW50KGUuU2NyZWVuc2hvdCx7aWQ6Yz92b2lkIDA6SC5TY3JlZW5zaG90LGNsYXNzTmFtZTpKLmljb25CdXR0b259KSksWCYmZS5UZWxlZ3JhbVNoYXJlJiYoISgwLApVLmlzRmVhdHVyZUVuYWJsZWQpKCJ0ZWxlZ3JhbV9taW5pX2FwcF9kaXNhYmxlX3NoYXJlX2xhc3RfcHJpY2UiKXx8ISgwLFUuaXNGZWF0dXJlRW5hYmxlZCkoInRlbGVncmFtX21pbmlfYXBwX2Rpc2FibGVfc2hhcmVfc25hcHNob3QiKSkmJnMuY3JlYXRlRWxlbWVudCh5LHtrZXk6InRlbGVncmFtc2hhcmUiLHJlbW92ZVNlcGFyYXRvcjohMH0scy5jcmVhdGVFbGVtZW50KGUuVGVsZWdyYW1TaGFyZSx7aWQ6Yz92b2lkIDA6SC5UZWxlZ3JhbVNoYXJlLGNsYXNzTmFtZTpKLmljb25CdXR0b259KSksIWEmJiEoMCxLLmlzU3ltcGhvbnlFbWJlZCkoKSYmZS5UcmFkZSYmcy5jcmVhdGVFbGVtZW50KHkse2tleToidHJhZGUiLGNsYXNzTmFtZTpKLm1vYmlsZVRyYWRlLHJlbW92ZVNlcGFyYXRvcjohMH0scy5jcmVhdGVFbGVtZW50KGUuVHJhZGUse2lkOmM/dm9pZCAwOkguVHJhZGVNb2JpbGUsbW9iaWxlOiEwfSkpLCFhJiZlLlB1Ymxpc2gmJiEoMCxtLmlzRmVhdHVyZXNldEVuYWJsZWQpKCJoaWRlX3B1Ymxpc2hfYnV0dG9uIikmJnMuY3JlYXRlRWxlbWVudCh5LHtrZXk6InB1Ymxpc2giLGNsYXNzTmFtZTpKLm1vYmlsZVB1Ymxpc2gscmVtb3ZlU2VwYXJhdG9yOiEwfSxzLmNyZWF0ZUVsZW1lbnQoZS5QdWJsaXNoLHtpZDpjP3ZvaWQgMDpILlB1Ymxpc2hNb2JpbGV9KSksLi4udV0pKX1fcmVuZGVyRGlhbG9nVG9vbHMoKXtjb25zdHt0b29sczplfT10aGlzLmNvbnRleHQse2lzRmFrZTp0LGZlYXR1cmVzOnJ9PXRoaXMucHJvcHMse2FjdGl2ZURpYWxvZ1Rvb2xzQ29uZmlnOm59PXRoaXMuc3RhdGU7aWYoIW4pcmV0dXJuIG51bGw7Y29uc3QgYT10aGlzLl9wcm9jZXNzQ3VzdG9tcyhuLmN1c3RvbUVsZW1lbnRzLCEwKTtyZXR1cm4gcy5jcmVhdGVFbGVtZW50KHMuRnJhZ21lbnQsbnVsbCxzLmNyZWF0ZUVsZW1lbnQoUy5GcmFnbWVudE1hcCx7bWFwOnRoaXMuX2ZpeExhc3RHcm91cH0scy5DaGlsZHJlbi50b0FycmF5KFtlLlN5bWJvbFNlYXJjaCYmcy5jcmVhdGVFbGVtZW50KHkse2tleToic3ltYm9sIn0scy5jcmVhdGVFbGVtZW50KGUuU3ltYm9sU2VhcmNoLHtpc0Zha2U6dCxpZDp0P3ZvaWQgMDpILlN5bWJvbFNlYXJjaCxpc0FjdGlvbnNWaXNpYmxlOnIuYWxsb3dTeW1ib2xTZWFyY2hTcHJlYWR9KSksLi4uYV0pLHRlKHMuQ2hpbGRyZW4udG9BcnJheShbcy5jcmVhdGVFbGVtZW50KHkse3JlbW92ZVNlcGFyYXRvcjohMCxrZXk6ImdhcC0xIixjbGFzc05hbWU6aSgpKEouZmlsbCx0JiZKLmNvbGxhcHNlKX0pXSkpKSl9fXZhciBlZTtmdW5jdGlvbiB0ZShlKXtyZXR1cm5bZS5maW5kSW5kZXgoKGU9PnMuaXNWYWxpZEVsZW1lbnQoZSkmJiEhZS5rZXkmJi0xIT09ZS5rZXkudG9TdHJpbmcoKS5pbmRleE9mKCJ2aWV3LW9ubHktYmFkZ2UiKSkpXS5maWx0ZXIoKGU9PmU+PTApKS5mb3JFYWNoKCh0PT57ZT1zLkNoaWxkcmVuLm1hcChlLCgoZSxyKT0+e2lmKHMuaXNWYWxpZEVsZW1lbnQoZSkpe3N3aXRjaChbdC0xLHQsdCsxXS5pbmRleE9mKHIpKXtjYXNlIDA6Y29uc3QgdD17bm9SaWdodERlY29yYXRpb246ITB9O2U9cy5jbG9uZUVsZW1lbnQoZSx0KTticmVhaztjYXNlIDE6Y29uc3Qgcj17bm9MZWZ0RGVjb3JhdGlvbjohMCxub1JpZ2h0RGVjb3JhdGlvbjohMH07ZT1zLmNsb25lRWxlbWVudChlLHIpO2JyZWFrO2Nhc2UgMjpjb25zdCBuPXtub0xlZnREZWNvcmF0aW9uOiEwfTtlPXMuY2xvbmVFbGVtZW50KGUsbil9fXJldHVybiBlfSkpfSkpLGV9US5jb250ZXh0VHlwZT1aLGZ1bmN0aW9uKGUpe2VbZS5MZWZ0PTBdPSJMZWZ0IixlW2UuU2VsZj0xXT0iU2VsZiIsZVtlLlJpZ2h0PTJdPSJSaWdodCJ9KGVlfHwoZWU9e30pKTt2YXIgcmU9cig3MDIxNTMpLHNlPXIoNjMzMzE4KSxuZT1yKDQyNjA3NSksaWU9cigxNTI2OTkpLGFlPXIoOTMwNTY2KSxvZT1yKDM2NTIxNyksbGU9cigzNDQ1MzYpLGNlPXIoMjU0NjczKSx1ZT1yKDM3NTI2Mik7Y29uc3QgZGU9e1tjZS5SZXNvbHV0aW9uS2luZC5UaWNrc106ITEsW2NlLlJlc29sdXRpb25LaW5kLlNlY29uZHNdOiExLFtjZS5SZXNvbHV0aW9uS2luZC5NaW51dGVzXTohMSxbY2UuU3BlY2lhbFJlc29sdXRpb25LaW5kLkhvdXJzXTohMSxbY2UuUmVzb2x1dGlvbktpbmQuRGF5c106ITEsW2NlLlJlc29sdXRpb25LaW5kLlJhbmdlXTohMX07Y2xhc3MgaGUgZXh0ZW5kcyB1ZS5Db21tb25Kc29uU3RvcmVTZXJ2aWNle2NvbnN0cnVjdG9yKGUsdCxyPWRlKXtzdXBlcihlLHQsIklOVEVSVkFMU19NRU5VX1ZJRVdfU1RBVEVfQ0hBTkdFRCIsIkludGVydmFsV2lkZ2V0Lm1lbnUudmlld1N0YXRlIixyKX1pc0FsbG93ZWQoZSl7cmV0dXJuIE9iamVjdC5rZXlzKGRlKS5pbmNsdWRlcyhlKX19Y29uc3QgbWU9e2RlZmF1bHRzQ29sbGFwc2VkOiExfTtjbGFzcyB2ZSBleHRlbmRzIHVlLkNvbW1vbkpzb25TdG9yZVNlcnZpY2V7Y29uc3RydWN0b3IoZSx0LHI9bWUpe3N1cGVyKGUsdCwiVEVNUExBVEVTX01FTlVfVklFV19TVEFURV9DSEFOR0VEIiwiVGVtcGxhdGVzV2lkZ2V0Lm1lbnUudmlld1N0YXRlIixyKX19dmFyIHBlPXIoNDgwMDYxKTtjb25zdCBmZT17dG9vbHM6cC5hbnkuaXNSZXF1aXJlZCxpc0Z1bmRhbWVudGFsOnAuYW55LGNoYXJ0QXBpSW5zdGFuY2U6cC5hbnksYXZhaWxhYmxlVGltZUZyYW1lczpwLmFueSxjaGFydFdpZGdldENvbGxlY3Rpb246cC5hbnksd2luZG93TWVzc2FnZVNlcnZpY2U6cC5hbnksZmF2b3JpdGVDaGFydFN0eWxlc1NlcnZpY2U6cC5hbnksZmF2b3JpdGVJbnRlcnZhbHNTZXJ2aWNlOnAuYW55LGludGVydmFsU2VydmljZTpwLmFueSxyZWNlbnRTdHVkeVRlbXBsYXRlc1NlcnZpY2U6cC5hbnksc3R1ZHlUZW1wbGF0ZXM6cC5hbnksY2hhcnRDaGFuZ2VzV2F0Y2hlcjpwLmFueSxzYXZlQ2hhcnRTZXJ2aWNlOnAuYW55LHNoYXJpbmdDaGFydFNlcnZpY2U6cC5hbnksbG9hZENoYXJ0U2VydmljZTpwLmFueSxjaGFydFdpZGdldDpwLmFueSxmYXZvcml0ZVNjcmlwdHNNb2RlbDpwLmFueSxpbnRlcnZhbHNNZW51Vmlld1N0YXRlU2VydmljZTpwLmFueSx0ZW1wbGF0ZXNNZW51Vmlld1N0YXRlU2VydmljZTpwLmFueSwKb3Blbkdsb2JhbFNlYXJjaDpwLmFueSxzbmFwc2hvdFVybDpwLmFueSxnZXRUcmFkaW5nRmVhdHVyZUZsYWdzU2VydmljZTpwLmFueX07dmFyIFNlPXIoNDQzNTU3KSxiZT1yKDYzMzI5KTtjb25zdCBnZT1bXTtjbGFzcyBfZSBleHRlbmRzIHMuUHVyZUNvbXBvbmVudHtjb25zdHJ1Y3RvcihlKXtzdXBlcihlKSx0aGlzLl9zYXZlTG9hZFN5bmNFbWl0dGVyPW5ldyhvKCkpLHRoaXMuX2hhbmRsZUZ1bGxXaWR0aENoYW5nZT1lPT57dGhpcy5fZnVsbFdpZHRoPWUsdGhpcy5zZXRTdGF0ZSh7bWVhc3VyZVZhbGlkOiExfSl9LHRoaXMuX2hhbmRsZUZhdm9yaXRlc1dpZHRoQ2hhbmdlPWU9Pnt0aGlzLl9mYXZvcml0ZXNXaWR0aD1lLHRoaXMuc2V0U3RhdGUoe21lYXN1cmVWYWxpZDohMX0pfSx0aGlzLl9oYW5kbGVDb2xsYXBzZVdpZHRoQ2hhbmdlPWU9Pnt0aGlzLl9jb2xsYXBzZVdpZHRoPWUsdGhpcy5zZXRTdGF0ZSh7bWVhc3VyZVZhbGlkOiExfSl9LHRoaXMuX2hhbmRsZU1lYXN1cmU9ZT0+e3RoaXMuc2V0U3RhdGUoe2F2YWlsYWJsZVdpZHRoOmUsbWVhc3VyZVZhbGlkOiExfSl9O2NvbnN0e3Rvb2xzOnQsd2luZG93TWVzc2FnZVNlcnZpY2U6cixjaGFydFdpZGdldENvbGxlY3Rpb246cyxjaGFydEFwaUluc3RhbmNlOm4sYXZhaWxhYmxlVGltZUZyYW1lczppLGlzRnVuZGFtZW50YWw6YSxmYXZvcml0ZUludGVydmFsc1NlcnZpY2U6YyxmYXZvcml0ZUNoYXJ0U3R5bGVzU2VydmljZTp1LHJlY2VudFN0dWR5VGVtcGxhdGVzU2VydmljZTpoLHN0dWR5VGVtcGxhdGVzOnYsc2F2ZUNoYXJ0U2VydmljZTpwLHNoYXJpbmdDaGFydFNlcnZpY2U6Zixsb2FkQ2hhcnRTZXJ2aWNlOlMsc25hcHNob3RVcmw6YixvcGVuR2xvYmFsU2VhcmNoOmd9PWU7dGhpcy5fc2hvd1Njcm9sbGJhcldoZW49KDAsZC5lbnN1cmVEZWZpbmVkKShlLmFsbG93ZWRNb2Rlcykuc2xpY2UoLTEpLHRoaXMucmVzaXplckJyaWRnZT1lLnJlc2l6ZXJCcmlkZ2UsdGhpcy5fcGFuZWxXaWR0aENoYW5nZUhhbmRsZXJzPXtmdWxsOnRoaXMuX2hhbmRsZUZ1bGxXaWR0aENoYW5nZSxtZWRpdW06dGhpcy5faGFuZGxlRmF2b3JpdGVzV2lkdGhDaGFuZ2Usc21hbGw6dGhpcy5faGFuZGxlQ29sbGFwc2VXaWR0aENoYW5nZX07Y29uc3R7Y2hhcnRDaGFuZ2VzV2F0Y2hlcjpffT1lO3RoaXMuX2NoYXJ0Q2hhbmdlc1dhdGNoZXI9Xztjb25zdCB5PSgwLHBlLmdldERlZmF1bHRGYXZvcml0ZUNoYXJ0U3R5bGVzKSh0aGlzLnByb3BzLmRlZmF1bHRGYXZvcml0ZVN0eWxlcyk7dGhpcy5fZmF2b3JpdGVDaGFydFN0eWxlc1NlcnZpY2U9dXx8bmV3IHJlLkZhdm9yaXRlQ2hhcnRTdHlsZXNTZXJ2aWNlKGllLlRWWFdpbmRvd0V2ZW50cyxhZSx5KTtjb25zdCBFPSgwLHBlLmdldERlZmF1bHRGYXZvcml0ZVJlc29sdXRpb25zKSh0aGlzLnByb3BzLmRlZmF1bHRGYXZvcml0ZUludGVydmFscyk7dGhpcy5fZmF2b3JpdGVJbnRlcnZhbHNTZXJ2aWNlPWN8fG5ldyBzZS5GYXZvcml0ZUludGVydmFsc1NlcnZpY2UoaWUuVFZYV2luZG93RXZlbnRzLGFlLEUpLHRoaXMuX2ludGVydmFsc01lbnVWaWV3U3RhdGVTZXJ2aWNlPW5ldyBoZShpZS5UVlhXaW5kb3dFdmVudHMsYWUpLHRoaXMuX2ludGVydmFsU2VydmljZT1uZXcgbmUuSW50ZXJ2YWxzU2VydmljZShuLmRlZmF1bHRSZXNvbHV0aW9ucyksdGhpcy5fdGVtcGxhdGVzTWVudVZ1ZXdTdGF0ZVNlcnZpY2U9bmV3IHZlKGllLlRWWFdpbmRvd0V2ZW50cyxhZSksdGhpcy5fcmVnaXN0cnk9e3Rvb2xzOnQsaXNGdW5kYW1lbnRhbDphLGNoYXJ0V2lkZ2V0Q29sbGVjdGlvbjpzLHdpbmRvd01lc3NhZ2VTZXJ2aWNlOnIsY2hhcnRBcGlJbnN0YW5jZTpuLGF2YWlsYWJsZVRpbWVGcmFtZXM6aSxyZWNlbnRTdHVkeVRlbXBsYXRlc1NlcnZpY2U6aCxzdHVkeVRlbXBsYXRlczp2LHNhdmVDaGFydFNlcnZpY2U6cCxzaGFyaW5nQ2hhcnRTZXJ2aWNlOmYsbG9hZENoYXJ0U2VydmljZTpTLGludGVydmFsc01lbnVWaWV3U3RhdGVTZXJ2aWNlOnRoaXMuX2ludGVydmFsc01lbnVWaWV3U3RhdGVTZXJ2aWNlLGZhdm9yaXRlQ2hhcnRTdHlsZXNTZXJ2aWNlOnRoaXMuX2Zhdm9yaXRlQ2hhcnRTdHlsZXNTZXJ2aWNlLGZhdm9yaXRlSW50ZXJ2YWxzU2VydmljZTp0aGlzLl9mYXZvcml0ZUludGVydmFsc1NlcnZpY2UsaW50ZXJ2YWxTZXJ2aWNlOnRoaXMuX2ludGVydmFsU2VydmljZSxjaGFydENoYW5nZXNXYXRjaGVyOnRoaXMuX2NoYXJ0Q2hhbmdlc1dhdGNoZXIsY2hhcnRXaWRnZXQ6cy5hY3RpdmVDaGFydFdpZGdldC52YWx1ZSgpLGZhdm9yaXRlU2NyaXB0c01vZGVsOmxlLkZhdm9yaXRlU2NyaXB0c01vZGVsLmdldEluc3RhbmNlKCksdGVtcGxhdGVzTWVudVZpZXdTdGF0ZVNlcnZpY2U6dGhpcy5fdGVtcGxhdGVzTWVudVZ1ZXdTdGF0ZVNlcnZpY2Usc25hcHNob3RVcmw6YixvcGVuR2xvYmFsU2VhcmNoOmcsZ2V0VHJhZGluZ0ZlYXR1cmVGbGFnc1NlcnZpY2U6ZS5nZXRUcmFkaW5nRmVhdHVyZUZsYWdzU2VydmljZX0sdGhpcy5zdGF0ZT17aXNWaXNpYmxlOiEwLGF2YWlsYWJsZVdpZHRoOjAsZGlzcGxheU1vZGU6ImZ1bGwiLG1lYXN1cmVWYWxpZDohMSxsZWZ0Q3VzdG9tRWxlbWVudHM6W10scmlnaHRDdXN0b21FbGVtZW50czpbXX0sdGhpcy5fcmVhZE9ubHk9cy5yZWFkT25seSgpLHRoaXMuX2ZlYXR1cmVzPXthbGxvd0Zhdm9yaXRpbmc6KDAsbS5pc0ZlYXR1cmVzZXRFbmFibGVkKSgiaXRlbXNfZmF2b3JpdGluZyIpLHNob3dJZGVhc0J1dHRvbjpCb29sZWFuKHRoaXMucHJvcHMuaWRlYXMpLHNob3dMYXVuY2hJblBvcHVwQnV0dG9uOkJvb2xlYW4odGhpcy5wcm9wcy5wb3B1cEJ1dHRvbiksYWxsb3dTeW1ib2xTZWFyY2hTcHJlYWQ6KDAsbS5pc0ZlYXR1cmVzZXRFbmFibGVkKSgiaGVhZGVyX3N5bWJvbF9zZWFyY2giKSYmITAsYWxsb3dUb29sYmFySGlkaW5nOigwLG0uaXNGZWF0dXJlc2V0RW5hYmxlZCkoImNvbGxhcHNpYmxlX2hlYWRlciIpfSx0aGlzLl9zZXREaXNwbGF5TW9kZT0oMCxsLmRlZmF1bHQpKHRoaXMuX3NldERpc3BsYXlNb2RlLDEwMCksdGhpcy5fbmVnb3RpYXRlUmVzaXplcigpfQpjb21wb25lbnREaWRVcGRhdGUoZSx0KXtjb25zdHtpc1Zpc2libGU6cixtZWFzdXJlVmFsaWQ6c309dGhpcy5zdGF0ZTtyIT09dC5pc1Zpc2libGUmJih2LmVtaXQoInRvZ2dsZV9oZWFkZXIiLHIpLHRoaXMuX25lZ290aWF0ZVJlc2l6ZXIoKSksc3x8dGhpcy5fc2V0RGlzcGxheU1vZGUoKX1yZW5kZXIoKXtjb25zdHtyZXNpemVyQnJpZGdlOmUsYWxsb3dlZE1vZGVzOnQsLi4ucn09dGhpcy5wcm9wcyx7ZGlzcGxheU1vZGU6bixpc1Zpc2libGU6YSxsZWZ0Q3VzdG9tRWxlbWVudHM6byxyaWdodEN1c3RvbUVsZW1lbnRzOmx9PXRoaXMuc3RhdGUsYz17ZmVhdHVyZXM6dGhpcy5fZmVhdHVyZXMscmVhZE9ubHk6dGhpcy5fcmVhZE9ubHksaXNGYWtlOiExLHNhdmVMb2FkU3luY0VtaXR0ZXI6dGhpcy5fc2F2ZUxvYWRTeW5jRW1pdHRlcixsZWZ0Q3VzdG9tRWxlbWVudHM6byxyaWdodEN1c3RvbUVsZW1lbnRzOmwsLi4ucn0sdT17Li4uYyxpc0Zha2U6ITAsc2hvd1Njcm9sbGJhcldoZW46Z2V9LGg9KDAsZC5lbnN1cmVEZWZpbmVkKSh0KSxtPXRoaXMucHJvcHMudG9vbHMuUHVibGlzaEJ1dHRvbk1hbmFnZXJ8fHMuRnJhZ21lbnQ7cmV0dXJuIHMuY3JlYXRlRWxlbWVudChqLlJlZ2lzdHJ5UHJvdmlkZXIse3ZhbHVlOnRoaXMuX3JlZ2lzdHJ5LHZhbGlkYXRpb246ZmV9LHMuY3JlYXRlRWxlbWVudChtLG51bGwscy5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6aSgpKGJlLnRvb2xiYXIse1tiZS5pc0hpZGRlbl06IWF9KSxvbkNsaWNrOnRoaXMucHJvcHMub25DbGlja30scy5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6YmUub3ZlcmZsb3dXcmFwfSxoLm1hcCgoZT0+cy5jcmVhdGVFbGVtZW50KFEse2tleTplLGRpc3BsYXlNb2RlOmUsb25XaWR0aENoYW5nZTp0aGlzLl9wYW5lbFdpZHRoQ2hhbmdlSGFuZGxlcnNbZV0sLi4udX0pKSkscy5jcmVhdGVFbGVtZW50KFEse2tleToibGl2ZSIsc2hvd1Njcm9sbGJhcldoZW46dGhpcy5fc2hvd1Njcm9sbGJhcldoZW4sZGlzcGxheU1vZGU6bixvbkF2YWlsYWJsZVNwYWNlQ2hhbmdlOnRoaXMuX2hhbmRsZU1lYXN1cmUsLi4uY30pKSkpKX1hZGRCdXR0b24oZSx0KXtpZighdC51c2VUcmFkaW5nVmlld1N0eWxlKXJldHVybiB0aGlzLl9hZGRDdXN0b21IVE1MQnV0dG9uKGUsdC5hbGlnbik7dGhpcy5fYWRkQ3VzdG9tVHJhZGluZ1ZpZXdTdHlsZWRCdXR0b24oZSx0KX1yZW1vdmVCdXR0b24oZSl7Y29uc3R7bGVmdEN1c3RvbUVsZW1lbnRzOnQscmlnaHRDdXN0b21FbGVtZW50czpyfT10aGlzLnN0YXRlO2lmKCgwLGMuZGVmYXVsdCkoZSkpdGhpcy5fcmVtb3ZlQ3VzdG9tRWxlbWVudFRvU3RhdGUoZSk7ZWxzZXtjb25zdCBzPXQ9PiJlbGVtZW50ImluIHQucGFyYW1zJiZ0LnBhcmFtcy5lbGVtZW50PT09ZSxuPXQuZmluZChzKT8uaWQ/P3IuZmluZChzKT8uaWQ7dShuKXx8dGhpcy5fcmVtb3ZlQ3VzdG9tRWxlbWVudFRvU3RhdGUobil9fWFkZERyb3Bkb3duKGUsdCl7Y29uc3R7bGVmdEN1c3RvbUVsZW1lbnRzOnIscmlnaHRDdXN0b21FbGVtZW50czpzfT10aGlzLnN0YXRlLG49e3R5cGU6IkRyb3Bkb3duIixpZDplLHBhcmFtczp0fTsibGVmdCI9PT10LmFsaWduP3RoaXMuc2V0U3RhdGUoe2xlZnRDdXN0b21FbGVtZW50czpbLi4ucixuXX0pOnRoaXMuc2V0U3RhdGUoe3JpZ2h0Q3VzdG9tRWxlbWVudHM6Wy4uLnMsbl19KX11cGRhdGVEcm9wZG93bihlLHQpe2NvbnN0IHI9dD0+IkRyb3Bkb3duIj09PXQudHlwZSYmdC5pZD09PWUscz10aGlzLnN0YXRlLmxlZnRDdXN0b21FbGVtZW50cy5maW5kKHIpfHx0aGlzLnN0YXRlLnJpZ2h0Q3VzdG9tRWxlbWVudHMuZmluZChyKTt2b2lkIDAhPT1zJiYocy5wYXJhbXM9ey4uLnMucGFyYW1zLC4uLnR9LHRoaXMuc2V0U3RhdGUoe2xlZnRDdXN0b21FbGVtZW50czp0aGlzLnN0YXRlLmxlZnRDdXN0b21FbGVtZW50cy5zbGljZSgpLHJpZ2h0Q3VzdG9tRWxlbWVudHM6dGhpcy5zdGF0ZS5yaWdodEN1c3RvbUVsZW1lbnRzLnNsaWNlKCl9KSl9cmVtb3ZlRHJvcGRvd24oZSl7Y29uc3QgdD10PT4iRHJvcGRvd24iPT09dC50eXBlJiZ0LmlkIT09ZSxyPXRoaXMuc3RhdGUubGVmdEN1c3RvbUVsZW1lbnRzLmZpbHRlcih0KSxzPXRoaXMuc3RhdGUucmlnaHRDdXN0b21FbGVtZW50cy5maWx0ZXIodCk7dGhpcy5zZXRTdGF0ZSh7bGVmdEN1c3RvbUVsZW1lbnRzOnIscmlnaHRDdXN0b21FbGVtZW50czpzfSl9X25lZ290aWF0ZVJlc2l6ZXIoKXt0aGlzLnByb3BzLnJlc2l6ZXJCcmlkZ2UubmVnb3RpYXRlSGVpZ2h0KHRoaXMuc3RhdGUuaXNWaXNpYmxlP29lLkhFQURFUl9UT09MQkFSX0hFSUdIVF9FWFBBTkRFRDpvZS5IRUFERVJfVE9PTEJBUl9IRUlHSFRfQ09MTEFQU0VEKX1fc2V0RGlzcGxheU1vZGUoKXtjb25zdHthdmFpbGFibGVXaWR0aDplfT10aGlzLnN0YXRlLHthbGxvd2VkTW9kZXM6dH09dGhpcy5wcm9wcyxyPXtmdWxsOnRoaXMuX2Z1bGxXaWR0aCxtZWRpdW06dGhpcy5fZmF2b3JpdGVzV2lkdGgsc21hbGw6dGhpcy5fY29sbGFwc2VXaWR0aH0scz0oMCxkLmVuc3VyZURlZmluZWQpKHQpO2xldCBuPXMubWFwKChlPT5yW2VdKSkuZmluZEluZGV4KCh0PT5lPj10KSk7LTE9PT1uJiYobj1zLmxlbmd0aC0xKTtjb25zdCBpPXNbbl07dGhpcy5zZXRTdGF0ZSh7bWVhc3VyZVZhbGlkOiEwLGRpc3BsYXlNb2RlOml9KX1fYWRkQ3VzdG9tSFRNTEJ1dHRvbihlLHQ9ImxlZnQiKXtjb25zdCByPW5ldyBoLldhdGNoZWRWYWx1ZSgwKSxzPSgwLFNlLnBhcnNlSHRtbEVsZW1lbnQpKGA8ZGl2IGNsYXNzPSJhcHBseS1jb21tb24tdG9vbHRpcCAke2JlLmN1c3RvbUJ1dHRvbn0iPmApLG49e3R5cGU6IkJ1dHRvbiIsaWQ6ZSxwYXJhbXM6e2tleTpOdW1iZXIobmV3IERhdGUpLGVsZW1lbnQ6cyx3aWR0aDpyfX07cmV0dXJuIHRoaXMuX2FkZEN1c3RvbUVsZW1lbnRUb1N0YXRlKHQsbiksc31fYWRkQ3VzdG9tVHJhZGluZ1ZpZXdTdHlsZWRCdXR0b24oZSx0KXtjb25zdCByPXt0eXBlOiJUcmFkaW5nVmlld1N0eWxlZEJ1dHRvbiIsaWQ6ZSxwYXJhbXM6e2tleTpOdW1iZXIobmV3IERhdGUpLHRleHQ6dC50ZXh0LAp0aXRsZTp0LnRpdGxlLG9uQ2xpY2s6dC5vbkNsaWNrfX07dGhpcy5fYWRkQ3VzdG9tRWxlbWVudFRvU3RhdGUodC5hbGlnbixyKX1fYWRkQ3VzdG9tRWxlbWVudFRvU3RhdGUoZSx0KXtjb25zdHtsZWZ0Q3VzdG9tRWxlbWVudHM6cixyaWdodEN1c3RvbUVsZW1lbnRzOnN9PXRoaXMuc3RhdGU7ImxlZnQiPT09ZT90aGlzLnNldFN0YXRlKHtsZWZ0Q3VzdG9tRWxlbWVudHM6Wy4uLnIsdF19KTp0aGlzLnNldFN0YXRlKHtyaWdodEN1c3RvbUVsZW1lbnRzOlsuLi5zLHRdfSl9X3JlbW92ZUN1c3RvbUVsZW1lbnRUb1N0YXRlKGUpe3RoaXMuc2V0U3RhdGUoe2xlZnRDdXN0b21FbGVtZW50czp0aGlzLnN0YXRlLmxlZnRDdXN0b21FbGVtZW50cy5maWx0ZXIoKHQ9PnQuaWQhPT1lKSkscmlnaHRDdXN0b21FbGVtZW50czp0aGlzLnN0YXRlLnJpZ2h0Q3VzdG9tRWxlbWVudHMuZmlsdGVyKCh0PT50LmlkIT09ZSkpfSl9fV9lLmRlZmF1bHRQcm9wcz17YWxsb3dlZE1vZGVzOlsiZnVsbCIsIm1lZGl1bSJdfX0sNzAyMTUzKGUsdCxyKXsidXNlIHN0cmljdCI7ci5kKHQse0Zhdm9yaXRlQ2hhcnRTdHlsZXNTZXJ2aWNlOigpPT5ufSk7dmFyIHM9cigzNzUyNjIpO2NsYXNzIG4gZXh0ZW5kcyBzLkNvbW1vbkpzb25TdG9yZVNlcnZpY2V7Y29uc3RydWN0b3IoZSx0LHI9W10pe3N1cGVyKGUsdCwiRkFWT1JJVEVfQ0hBUlRfU1RZTEVTX0NIQU5HRUQiLCJTdHlsZVdpZGdldC5xdWlja3MiLHIpfX19LDMwNTA2MShlLHQscil7InVzZSBzdHJpY3QiO3IuZCh0LHtDdXN0b21JbnRlcnZhbHNTZXJ2aWNlOigpPT5oLGN1c3RvbUludGVydmFsc1NlcnZpY2VJbnN0YW5jZTooKT0+bX0pO3ZhciBzPXIoOTMwNTY2KSxuPXIoMTUyNjk5KSxpPXIoNzM2MDYzKSxhPXIoNjU1NTg0KSxvPXIoMzE4OTc0KSxsPXIoMzc1MjYyKSxjPXIoNDY1MTM3KSx1PXIoMTc2ODUxKTtjb25zdCBkPVsiMiIsIjEwIl07Y2xhc3MgaCBleHRlbmRzIGwuQWJzdHJhY3RKc29uU3RvcmVTZXJ2aWNle2NvbnN0cnVjdG9yKGUsdCxyPSgoMCxvLm9uV2lkZ2V0KSgpP1tdOmQpKXtzdXBlcihlLHQsIkNVU1RPTV9JTlRFUlZBTFNfQ0hBTkdFRCIsIkludGVydmFsV2lkZ2V0LmludGVydmFscyIscil9c2V0KGUsdCl7KDAsaS50cmFja0dvUHJvRmVhdHVyZSkoImN1c3RvbUludGVydmFscyIpO2NvbnN0IHI9KCk9PnsoMCxvLm9uV2lkZ2V0KSgpfHx0aGlzLl9qc29uS2V5VmFsdWVTdG9yZS5zZXRKU09OKCJJbnRlcnZhbFdpZGdldC5pbnRlcnZhbHNEZWZhdWx0czJhbmQxME1pbnV0ZXNNaWdyYXRpb24iLCEwKSxzdXBlci5zZXQoZSx0KX07ZS5sZW5ndGg8dGhpcy5nZXQoKS5sZW5ndGg/cigpOigwLGEucnVuT3JHb1BybykoKCgpPT5yKCkpLCJDVVNUT01fSU5URVJWQUxTIix7ZmVhdHVyZToiY3VzdG9tSW50ZXJ2YWxzIn0pfV9zZXJpYWxpemUoZSl7cmV0dXJuKDAsdS51bmlxKShlLm1hcChjLm5vcm1hbGl6ZUludGVydmFsU3RyaW5nKSl9X2Rlc2VyaWFsaXplKGUpe2NvbnN0IHQ9W107cmV0dXJuKDAsby5vbldpZGdldCkoKXx8dGhpcy5fanNvbktleVZhbHVlU3RvcmUuZ2V0SlNPTigiSW50ZXJ2YWxXaWRnZXQuaW50ZXJ2YWxzRGVmYXVsdHMyYW5kMTBNaW51dGVzTWlncmF0aW9uIiwhMSl8fHQucHVzaCguLi5kKSwoMCx1LnVuaXEpKFsuLi50LC4uLigwLGMuY29udmVydFJlc29sdXRpb25zRnJvbVNldHRpbmdzKShlKS5maWx0ZXIoYy5pc1Jlc29sdXRpb25NdWx0aXBsaWVyVmFsaWQpLm1hcChjLm5vcm1hbGl6ZUludGVydmFsU3RyaW5nKV0pfX1jb25zdCBtPW5ldyBoKG4uVFZYV2luZG93RXZlbnRzLHMpfSw2MzMzMTgoZSx0LHIpeyJ1c2Ugc3RyaWN0IjtyLmQodCx7RmF2b3JpdGVJbnRlcnZhbHNTZXJ2aWNlOigpPT5hfSk7dmFyIHM9cigzNzUyNjIpLG49cig0NjUxMzcpLGk9cigxNzY4NTEpO2NsYXNzIGEgZXh0ZW5kcyBzLkFic3RyYWN0SnNvblN0b3JlU2VydmljZXtjb25zdHJ1Y3RvcihlLHQscil7c3VwZXIoZSx0LCJGQVZPUklURV9JTlRFUlZBTFNfQ0hBTkdFRCIsIkludGVydmFsV2lkZ2V0LnF1aWNrcyIscil9X3NlcmlhbGl6ZShlKXtyZXR1cm4oMCxpLnVuaXEpKGUubWFwKG4ubm9ybWFsaXplSW50ZXJ2YWxTdHJpbmcpKX1fZGVzZXJpYWxpemUoZSl7cmV0dXJuKDAsaS51bmlxKSgoMCxuLmNvbnZlcnRSZXNvbHV0aW9uc0Zyb21TZXR0aW5ncykoZSkuZmlsdGVyKG4uaXNSZXNvbHV0aW9uTXVsdGlwbGllclZhbGlkKS5tYXAobi5ub3JtYWxpemVJbnRlcnZhbFN0cmluZykpfX19LDQyNjA3NShlLHQscil7InVzZSBzdHJpY3QiO3IuZCh0LHtJbnRlcnZhbHNTZXJ2aWNlOigpPT5sfSk7dmFyIHM9cigyMjUyOTgpLG49cig5NDgzODApLGk9cigzMDUwNjEpLGE9cig3MzE5MzkpLG89cig0NjUxMzcpO2NsYXNzIGx7Y29uc3RydWN0b3IoZSl7dGhpcy5fY3VzdG9tSW50ZXJ2YWxzU2VydmljZT1pLmN1c3RvbUludGVydmFsc1NlcnZpY2VJbnN0YW5jZSx0aGlzLl9zdXBwb3J0ZWRJbnRlcnZhbHNNYXlDaGFuZ2U9bmV3IG4uRGVsZWdhdGUsdGhpcy5fZmlyZVN1cHBvcnRlZEludGVydmFsc01heUNoYW5nZT0oKT0+e3RoaXMuX3N1cHBvcnRlZEludGVydmFsc01heUNoYW5nZS5maXJlKCl9LHRoaXMuX3Jlc29sdXRpb25HZXR0ZXI9KCk9PltdLHRoaXMuX3Jlc29sdXRpb25HZXR0ZXI9ZSxzLmxpbmtpbmcuc3VwcG9ydGVkUmVzb2x1dGlvbnMuc3Vic2NyaWJlKHRoaXMuX2ZpcmVTdXBwb3J0ZWRJbnRlcnZhbHNNYXlDaGFuZ2UpLHMubGlua2luZy5yYW5nZS5zdWJzY3JpYmUodGhpcy5fZmlyZVN1cHBvcnRlZEludGVydmFsc01heUNoYW5nZSkscy5saW5raW5nLnNlY29uZHMuc3Vic2NyaWJlKHRoaXMuX2ZpcmVTdXBwb3J0ZWRJbnRlcnZhbHNNYXlDaGFuZ2UpLHMubGlua2luZy50aWNrcy5zdWJzY3JpYmUodGhpcy5fZmlyZVN1cHBvcnRlZEludGVydmFsc01heUNoYW5nZSkscy5saW5raW5nLmludHJhZGF5LnN1YnNjcmliZSh0aGlzLl9maXJlU3VwcG9ydGVkSW50ZXJ2YWxzTWF5Q2hhbmdlKSxzLmxpbmtpbmcuZGF0YUZyZXF1ZW5jeVJlc29sdXRpb24uc3Vic2NyaWJlKHRoaXMuX2ZpcmVTdXBwb3J0ZWRJbnRlcnZhbHNNYXlDaGFuZ2UpfWRlc3Ryb3koKXsKcy5saW5raW5nLnN1cHBvcnRlZFJlc29sdXRpb25zLnVuc3Vic2NyaWJlKHRoaXMuX2ZpcmVTdXBwb3J0ZWRJbnRlcnZhbHNNYXlDaGFuZ2UpLHMubGlua2luZy5yYW5nZS51bnN1YnNjcmliZSh0aGlzLl9maXJlU3VwcG9ydGVkSW50ZXJ2YWxzTWF5Q2hhbmdlKSxzLmxpbmtpbmcuc2Vjb25kcy51bnN1YnNjcmliZSh0aGlzLl9maXJlU3VwcG9ydGVkSW50ZXJ2YWxzTWF5Q2hhbmdlKSxzLmxpbmtpbmcudGlja3MudW5zdWJzY3JpYmUodGhpcy5fZmlyZVN1cHBvcnRlZEludGVydmFsc01heUNoYW5nZSkscy5saW5raW5nLmludHJhZGF5LnVuc3Vic2NyaWJlKHRoaXMuX2ZpcmVTdXBwb3J0ZWRJbnRlcnZhbHNNYXlDaGFuZ2UpLHMubGlua2luZy5kYXRhRnJlcXVlbmN5UmVzb2x1dGlvbi51bnN1YnNjcmliZSh0aGlzLl9maXJlU3VwcG9ydGVkSW50ZXJ2YWxzTWF5Q2hhbmdlKX1nZXREZWZhdWx0SW50ZXJ2YWxzKCl7cmV0dXJuIHRoaXMuX3Jlc29sdXRpb25HZXR0ZXI/dGhpcy5fcmVzb2x1dGlvbkdldHRlcigpLm1hcChvLm5vcm1hbGl6ZUludGVydmFsU3RyaW5nKTpbXX1nZXRDdXN0b21JbnRlcnZhbHMoKXtyZXR1cm4gdGhpcy5fY3VzdG9tSW50ZXJ2YWxzU2VydmljZS5nZXQoKX1hZGQoZSx0LHIpe2lmKCF3aW5kb3cudXNlci5pc19wcm8mJnIpcmV0dXJuIHIoKSxudWxsO2lmKCF0aGlzLmlzVmFsaWRJbnRlcnZhbChlLHQpKXJldHVybiBudWxsO2NvbnN0IHM9KDAsby5ub3JtYWxpemVJbnRlcnZhbFN0cmluZykoYCR7ZX0ke3R9YCksbj10aGlzLmdldEN1c3RvbUludGVydmFscygpO3JldHVybiB0aGlzLl9pc0ludGVydmFsRGVmYXVsdChzKXx8bi5pbmNsdWRlcyhzKT9udWxsOih0aGlzLl9jdXN0b21JbnRlcnZhbHNTZXJ2aWNlLnNldCgoMCxvLnNvcnRSZXNvbHV0aW9ucykoWy4uLm4sc10pKSxzKX1yZW1vdmUoZSl7dGhpcy5fY3VzdG9tSW50ZXJ2YWxzU2VydmljZS5zZXQodGhpcy5nZXRDdXN0b21JbnRlcnZhbHMoKS5maWx0ZXIoKHQ9PnQhPT1lKSkpfWlzVmFsaWRJbnRlcnZhbChlLHQpe3JldHVybigwLG8uaXNSZXNvbHV0aW9uTXVsdGlwbGllclZhbGlkKShgJHtlfSR7dH1gKX1pc1N1cHBvcnRlZEludGVydmFsKGUpe3JldHVybigwLG8uaXNBdmFpbGFibGUpKGUpfXN1cHBvcnRlZEludGVydmFsc01heUNoYW5nZSgpe3JldHVybiB0aGlzLl9zdXBwb3J0ZWRJbnRlcnZhbHNNYXlDaGFuZ2V9Z2V0T25DaGFuZ2UoKXtyZXR1cm4gdGhpcy5fY3VzdG9tSW50ZXJ2YWxzU2VydmljZS5nZXRPbkNoYW5nZSgpfWdldFBvc3NpYmxlSW50ZXJ2YWxzKCl7cmV0dXJuIGEuSU5URVJWQUxTfWdldFJlc29sdXRpb25VdGlscygpe3JldHVybntnZXRNYXhSZXNvbHV0aW9uVmFsdWU6by5nZXRNYXhSZXNvbHV0aW9uVmFsdWUsZ2V0VHJhbnNsYXRlZFJlc29sdXRpb25Nb2RlbDpvLmdldFRyYW5zbGF0ZWRSZXNvbHV0aW9uTW9kZWwsbWVyZ2VSZXNvbHV0aW9uczpvLm1lcmdlUmVzb2x1dGlvbnMsc29ydFJlc29sdXRpb25zOm8uc29ydFJlc29sdXRpb25zfX1faXNJbnRlcnZhbERlZmF1bHQoZSl7cmV0dXJuIHRoaXMuZ2V0RGVmYXVsdEludGVydmFscygpLmluY2x1ZGVzKGUpfX19LDczMTkzOShlLHQscil7InVzZSBzdHJpY3QiO3IuZCh0LHtJTlRFUlZBTFM6KCk9Pml9KTt2YXIgcz1yKDE4NTI3MSksbj1yKDU2OTM5OCk7Y29uc3QgaT1be25hbWU6IiIsbGFiZWw6cy50KG51bGwse2NvbnRleHQ6ImludGVydmFsIn0scigzNDM3NTcpKX0se25hbWU6IkgiLGxhYmVsOnMudChudWxsLHtjb250ZXh0OiJpbnRlcnZhbCJ9LHIoODAwMDA5KSl9LHtuYW1lOiJEIixsYWJlbDpzLnQobnVsbCx7Y29udGV4dDoiaW50ZXJ2YWwifSxyKDMxNzI5KSl9LHtuYW1lOiJXIixsYWJlbDpzLnQobnVsbCx7Y29udGV4dDoiaW50ZXJ2YWwifSxyKDU0ODM3NCkpfSx7bmFtZToiTSIsbGFiZWw6cy50KG51bGwse2NvbnRleHQ6ImludGVydmFsIn0scig1NTQ2NTEpKX1dO2kucHVzaCh7bmFtZToiUiIsbGFiZWw6cy50KG51bGwse2NvbnRleHQ6ImludGVydmFsIn0scig5NzMzNDcpKX0pLCgwLG4uaXNGZWF0dXJlRW5hYmxlZCkoImN1c3RvbV90aWNrcyIpJiZpLnB1c2goe25hbWU6IlQiLGxhYmVsOnMudChudWxsLHtjb250ZXh0OiJpbnRlcnZhbCJ9LHIoMzY5MTI5KSl9KX0sNzAxMTU2KGUsdCxyKXsidXNlIHN0cmljdCI7ci5kKHQse2dldERpYWxvZ1Rvb2xzTWFuYWdlcjooKT0+b30pO3ZhciBzPXIoODM5NDI2KSxuPXIoOTMwMjMxKSxpPXIoMjMyMzY0KTtjbGFzcyBhe2NvbnN0cnVjdG9yKCl7dGhpcy5fYWN0aXZlRGlhbG9nVG9vbHM9bmV3IGkuV2F0Y2hlZFZhbHVlKG51bGwpfXJlZ2lzdGVyRGlhbG9nVG9vbHMoZSl7dGhpcy5fYWN0aXZlRGlhbG9nVG9vbHMuc2V0VmFsdWUoZSl9Y2xlYXJEaWFsb2dUb29scyhlKXtjb25zdCB0PXRoaXMuX2FjdGl2ZURpYWxvZ1Rvb2xzLnZhbHVlKCk7dCYmdC5kaWFsb2dJZD09PWUmJnRoaXMuX2FjdGl2ZURpYWxvZ1Rvb2xzLnNldFZhbHVlKG51bGwpfWdldEFjdGl2ZURpYWxvZ1Rvb2xzKCl7cmV0dXJuIHRoaXMuX2FjdGl2ZURpYWxvZ1Rvb2xzfWhhc0FjdGl2ZURpYWxvZ1Rvb2xzKCl7cmV0dXJuIG51bGwhPT10aGlzLl9hY3RpdmVEaWFsb2dUb29scy52YWx1ZSgpfX1jb25zdCBvPSgwLHMuZGVmYXVsdCkoKCgpPT4oMCxuLmlzRmVhdHVyZXNldEVuYWJsZWQpKCJ3aWRnZXQiKT9udWxsOm5ldyBhKSl9LDMyOTY2OChlLHQscil7InVzZSBzdHJpY3QiO3ZhciBzO2Z1bmN0aW9uIG4oZSl7ZS5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgicm92aW5nLXRhYmluZGV4Om1haW4tZWxlbWVudCIpKX1mdW5jdGlvbiBpKGUpe2UuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInJvdmluZy10YWJpbmRleDpzZWNvbmRhcnktZWxlbWVudCIpKX1yLmQodCx7YmVjb21lTWFpbkVsZW1lbnQ6KCk9Pm4sYmVjb21lU2Vjb25kYXJ5RWxlbWVudDooKT0+aX0pLGZ1bmN0aW9uKGUpe2UuTWFpbkVsZW1lbnQ9InJvdmluZy10YWJpbmRleDptYWluLWVsZW1lbnQiLGUuU2Vjb25kYXJ5RWxlbWVudD0icm92aW5nLXRhYmluZGV4OnNlY29uZGFyeS1lbGVtZW50In0oc3x8KHM9e30pKX0sCjk4MzYxNihlLHQscil7InVzZSBzdHJpY3QiO3IuZCh0LHttYXBLZXlDb2RlVG9EaXJlY3Rpb246KCk9PnUsbmF2aWdhdGlvbk9yZGVyQ29tcGFyYXRvcjooKT0+YSxxdWVyeUZvY3VzYWJsZUVsZW1lbnRzOigpPT5sLHF1ZXJ5VGFiYmFibGVFbGVtZW50czooKT0+byx1cGRhdGVUYWJJbmRleGVzOigpPT5jfSk7dmFyIHMsbj1yKDk2OTE2OCksaT1yKDY4MjM4MSk7ZnVuY3Rpb24gYShlLHQpe3JldHVybiBlPT09dD8wOmUuY29tcGFyZURvY3VtZW50UG9zaXRpb24odCkmTm9kZS5ET0NVTUVOVF9QT1NJVElPTl9GT0xMT1dJTkc/LTE6MX1mdW5jdGlvbiBvKGUpe3JldHVybiBBcnJheS5mcm9tKGUucXVlcnlTZWxlY3RvckFsbCgnYnV0dG9uOm5vdCg6ZGlzYWJsZWQpOm5vdChbYXJpYS1kaXNhYmxlZD0idHJ1ZSIgaV0pOm5vdChbdGFiaW5kZXg9Ii0xIl0pLCBbdGFiaW5kZXhdOm5vdChbZGlzYWJsZWRdKTpub3QoW2FyaWEtZGlzYWJsZWQ9InRydWUiIGldKTpub3QoW3RhYmluZGV4PSItMSJdKScpKS5maWx0ZXIoKDAsaS5jcmVhdGVTY29wZWRWaXNpYmxlRWxlbWVudEZpbHRlcikoZSkpfWZ1bmN0aW9uIGwoZSl7cmV0dXJuIEFycmF5LmZyb20oZS5xdWVyeVNlbGVjdG9yQWxsKCdidXR0b246bm90KDpkaXNhYmxlZCk6bm90KFthcmlhLWRpc2FibGVkPSJ0cnVlIiBpXSk6bm90KFthcmlhLWRpc2FibGVkPSIiXSksIFt0YWJpbmRleF06bm90KFtkaXNhYmxlZF0pOm5vdChbYXJpYS1kaXNhYmxlZD0idHJ1ZSIgaV0pOm5vdChbYXJpYS1kaXNhYmxlZD0iIl0pJykpLmZpbHRlcigoMCxpLmNyZWF0ZVNjb3BlZFZpc2libGVFbGVtZW50RmlsdGVyKShlKSl9ZnVuY3Rpb24gYygpe3dpbmRvdy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgia2V5Ym9hcmQtbmF2aWdhdGlvbi1hY3RpdmF0aW9uIix7YnViYmxlczohMH0pKX1mdW5jdGlvbiB1KGUpe2NvbnN0IHQ9KDAsbi5pc1J0bCkoKTtzd2l0Y2goZSl7Y2FzZSAzODpyZXR1cm4iYmxvY2tQcmV2IjtjYXNlIDQwOnJldHVybiJibG9ja05leHQiO2Nhc2UgMzc6cmV0dXJuIHQ/ImlubGluZU5leHQiOiJpbmxpbmVQcmV2IjtjYXNlIDM5OnJldHVybiB0PyJpbmxpbmVQcmV2IjoiaW5saW5lTmV4dCI7ZGVmYXVsdDpyZXR1cm4gbnVsbH19IWZ1bmN0aW9uKGUpe2UuQmxvY2tQcmV2PSJibG9ja1ByZXYiLGUuQmxvY2tOZXh0PSJibG9ja05leHQiLGUuSW5saW5lUHJldj0iaW5saW5lUHJldiIsZS5JbmxpbmVOZXh0PSJpbmxpbmVOZXh0In0oc3x8KHM9e30pKX0sNzMwMDA5KGUsdCxyKXsidXNlIHN0cmljdCI7ci5kKHQse1Rvb2xiYXI6KCk9PmR9KTt2YXIgcz1yKDc3OTQ3NCksbj1yKDEzODYzOCksaT1yKDgzMzkwMyksYT1yKDIzNTcyNCksbz1yKDk4MzYxNiksbD1yKDMyOTY2OCksYz1yKDc4Nzg5NSksdT1yKDQ1MDE0MCk7Y29uc3QgZD0oMCxzLmZvcndhcmRSZWYpKChmdW5jdGlvbihlLHQpe2NvbnN0e29uS2V5RG93bjpyLG9yaWVudGF0aW9uOmQsYmx1ck9uRXNjS2V5ZG93bjpoPSEwLGJsdXJPbkNsaWNrOm09ITAsLi4udn09ZSxwPSgwLGMudXNlRnVuY3Rpb25hbFJlZk9iamVjdCkodCk7cmV0dXJuKDAscy51c2VMYXlvdXRFZmZlY3QpKCgoKT0+e2NvbnN0IGU9KDAsbi5lbnN1cmVOb3ROdWxsKShwLmN1cnJlbnQpLHQ9KCk9Pntjb25zdCB0PSgwLG8ucXVlcnlUYWJiYWJsZUVsZW1lbnRzKShlKS5zb3J0KG8ubmF2aWdhdGlvbk9yZGVyQ29tcGFyYXRvcik7aWYoMD09PXQubGVuZ3RoKXtjb25zdFt0XT0oMCxvLnF1ZXJ5Rm9jdXNhYmxlRWxlbWVudHMpKGUpLnNvcnQoby5uYXZpZ2F0aW9uT3JkZXJDb21wYXJhdG9yKTtpZih2b2lkIDA9PT10KXJldHVybjsoMCxsLmJlY29tZU1haW5FbGVtZW50KSh0KX1pZih0Lmxlbmd0aD4xKXtjb25zdFssLi4uZV09dDtmb3IoY29uc3QgdCBvZiBlKSgwLGwuYmVjb21lU2Vjb25kYXJ5RWxlbWVudCkodCl9fTtyZXR1cm4gd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImtleWJvYXJkLW5hdmlnYXRpb24tYWN0aXZhdGlvbiIsdCksKCk9PndpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJrZXlib2FyZC1uYXZpZ2F0aW9uLWFjdGl2YXRpb24iLHQpfSksW10pLHMuY3JlYXRlRWxlbWVudCgiZGl2Iix7Li4udS5Nb3VzZUNsaWNrQXV0b0JsdXJIYW5kbGVyLmF0dHJpYnV0ZXMobSksLi4udixyb2xlOiJ0b29sYmFyIiwiYXJpYS1vcmllbnRhdGlvbiI6ZCxyZWY6cCxvbktleURvd246KDAsaS5jcmVhdGVTYWZlTXVsdGljYXN0RXZlbnRIYW5kbGVyKSgoZnVuY3Rpb24oZSl7aWYoZS5kZWZhdWx0UHJldmVudGVkKXJldHVybjtpZighKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCkpcmV0dXJuO2NvbnN0IHQ9KDAsYS5oYXNoRnJvbUV2ZW50KShlKTtpZihoJiYyNz09PXQpcmV0dXJuIGUucHJldmVudERlZmF1bHQoKSx2b2lkIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuYmx1cigpO2lmKCJ2ZXJ0aWNhbCIhPT1kJiYzNyE9PXQmJjM5IT09dClyZXR1cm47aWYoInZlcnRpY2FsIj09PWQmJjM4IT09dCYmNDAhPT10KXJldHVybjtjb25zdCByPWUuY3VycmVudFRhcmdldCxzPSgwLG8ucXVlcnlGb2N1c2FibGVFbGVtZW50cykocikuc29ydChvLm5hdmlnYXRpb25PcmRlckNvbXBhcmF0b3IpO2lmKDA9PT1zLmxlbmd0aClyZXR1cm47Y29uc3Qgbj1zLmluZGV4T2YoZG9jdW1lbnQuYWN0aXZlRWxlbWVudCk7aWYoLTE9PT1uKXJldHVybjtlLnByZXZlbnREZWZhdWx0KCk7Y29uc3QgaT0oKT0+e2NvbnN0IGU9KG4rcy5sZW5ndGgtMSklcy5sZW5ndGg7KDAsbC5iZWNvbWVTZWNvbmRhcnlFbGVtZW50KShzW25dKSwoMCxsLmJlY29tZU1haW5FbGVtZW50KShzW2VdKSxzW2VdLmZvY3VzKCl9LGM9KCk9Pntjb25zdCBlPShuK3MubGVuZ3RoKzEpJXMubGVuZ3RoOygwLGwuYmVjb21lU2Vjb25kYXJ5RWxlbWVudCkoc1tuXSksKDAsbC5iZWNvbWVNYWluRWxlbWVudCkoc1tlXSksc1tlXS5mb2N1cygpfTtzd2l0Y2goKDAsby5tYXBLZXlDb2RlVG9EaXJlY3Rpb24pKHQpKXtjYXNlImlubGluZVByZXYiOiJ2ZXJ0aWNhbCIhPT1kJiZpKCk7YnJlYWs7Y2FzZSJpbmxpbmVOZXh0IjoKInZlcnRpY2FsIiE9PWQmJmMoKTticmVhaztjYXNlImJsb2NrUHJldiI6InZlcnRpY2FsIj09PWQmJmkoKTticmVhaztjYXNlImJsb2NrTmV4dCI6InZlcnRpY2FsIj09PWQmJmMoKX19KSxyKSwiZGF0YS10b29sdGlwLXNob3ctb24tZm9jdXMiOiJ0cnVlIn0pfSkpfSw1Njk2NTIoZSx0LHIpeyJ1c2Ugc3RyaWN0IjtyLmQodCx7UmVnaXN0cnlQcm92aWRlcjooKT0+bCxyZWdpc3RyeUNvbnRleHRUeXBlOigpPT51LHVzZVJlZ2lzdHJ5OigpPT5jLHZhbGlkYXRlUmVnaXN0cnk6KCk9Pm99KTt2YXIgcz1yKDc3OTQ3NCksbj1yKDIyMTg5NiksaT1yLm4obik7Y29uc3QgYT1zLmNyZWF0ZUNvbnRleHQoe30pO2Z1bmN0aW9uIG8oZSx0KXtpKCkuY2hlY2tQcm9wVHlwZXModCxlLCJjb250ZXh0IiwiUmVnaXN0cnlDb250ZXh0Iil9ZnVuY3Rpb24gbChlKXtjb25zdHt2YWxpZGF0aW9uOnQsdmFsdWU6cn09ZTtyZXR1cm4gbyhyLHQpLHMuY3JlYXRlRWxlbWVudChhLlByb3ZpZGVyLHt2YWx1ZTpyfSxlLmNoaWxkcmVuKX1mdW5jdGlvbiBjKGUpe2NvbnN0IHQ9KDAscy51c2VDb250ZXh0KShhKTtyZXR1cm4gbyh0LGUpLHR9ZnVuY3Rpb24gdSgpe3JldHVybiBhfX0sNjE2MzExKGUsdCxyKXsidXNlIHN0cmljdCI7ci5kKHQse3VzZUlzb21vcnBoaWNMYXlvdXRFZmZlY3Q6KCk9Pm59KTt2YXIgcz1yKDc3OTQ3NCk7ZnVuY3Rpb24gbihlLHQpeygidW5kZWZpbmVkIj09dHlwZW9mIHdpbmRvdz9zLnVzZUVmZmVjdDpzLnVzZUxheW91dEVmZmVjdCkoZSx0KX19LDk5ODE1OChlLHQscil7InVzZSBzdHJpY3QiO3IuZCh0LHtGcmFnbWVudE1hcDooKT0+bn0pO3ZhciBzPXIoNzc5NDc0KTtmdW5jdGlvbiBuKGUpe2lmKGUubWFwKXtyZXR1cm4gcy5DaGlsZHJlbi50b0FycmF5KGUuY2hpbGRyZW4pLm1hcChlLm1hcCl9cmV0dXJuIGUuY2hpbGRyZW59fSw5OTQxNzgoZSx0LHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgcz1yKDk2NzEyMSk7ZnVuY3Rpb24gbigpe31mdW5jdGlvbiBpKCl7fWkucmVzZXRXYXJuaW5nQ2FjaGU9bixlLmV4cG9ydHM9ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKGUsdCxyLG4saSxhKXtpZihhIT09cyl7dmFyIG89bmV3IEVycm9yKCJDYWxsaW5nIFByb3BUeXBlcyB2YWxpZGF0b3JzIGRpcmVjdGx5IGlzIG5vdCBzdXBwb3J0ZWQgYnkgdGhlIGBwcm9wLXR5cGVzYCBwYWNrYWdlLiBVc2UgUHJvcFR5cGVzLmNoZWNrUHJvcFR5cGVzKCkgdG8gY2FsbCB0aGVtLiBSZWFkIG1vcmUgYXQgaHR0cDovL2ZiLm1lL3VzZS1jaGVjay1wcm9wLXR5cGVzIik7dGhyb3cgby5uYW1lPSJJbnZhcmlhbnQgVmlvbGF0aW9uIixvfX1mdW5jdGlvbiB0KCl7cmV0dXJuIGV9ZS5pc1JlcXVpcmVkPWU7dmFyIHI9e2FycmF5OmUsYm9vbDplLGZ1bmM6ZSxudW1iZXI6ZSxvYmplY3Q6ZSxzdHJpbmc6ZSxzeW1ib2w6ZSxhbnk6ZSxhcnJheU9mOnQsZWxlbWVudDplLGVsZW1lbnRUeXBlOmUsaW5zdGFuY2VPZjp0LG5vZGU6ZSxvYmplY3RPZjp0LG9uZU9mOnQsb25lT2ZUeXBlOnQsc2hhcGU6dCxleGFjdDp0LGNoZWNrUHJvcFR5cGVzOmkscmVzZXRXYXJuaW5nQ2FjaGU6bn07cmV0dXJuIHIuUHJvcFR5cGVzPXIscn19LDIyMTg5NihlLHQscil7ZS5leHBvcnRzPXIoOTk0MTc4KSgpfSw5NjcxMjEoZSl7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz0iU0VDUkVUX0RPX05PVF9QQVNTX1RISVNfT1JfWU9VX1dJTExfQkVfRklSRUQifSwxMjkzNjUoZSx0LHIpeyJ1c2Ugc3RyaWN0IjshZnVuY3Rpb24gZSgpe2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgX19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fJiYiZnVuY3Rpb24iPT10eXBlb2YgX19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fLmNoZWNrRENFKXRyeXtfX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18uY2hlY2tEQ0UoZSl9Y2F0Y2goZSl7Y29uc29sZS5lcnJvcihlKX19KCksZS5leHBvcnRzPXIoNTMyMzg3KX0sMTIyNzQ5KGUsdCl7InVzZSBzdHJpY3QiO3ZhciByPVN5bWJvbC5mb3IoInJlYWN0LmVsZW1lbnQiKSxzPVN5bWJvbC5mb3IoInJlYWN0LnBvcnRhbCIpLG49U3ltYm9sLmZvcigicmVhY3QuZnJhZ21lbnQiKSxpPVN5bWJvbC5mb3IoInJlYWN0LnN0cmljdF9tb2RlIiksYT1TeW1ib2wuZm9yKCJyZWFjdC5wcm9maWxlciIpLG89U3ltYm9sLmZvcigicmVhY3QucHJvdmlkZXIiKSxsPVN5bWJvbC5mb3IoInJlYWN0LmNvbnRleHQiKSxjPVN5bWJvbC5mb3IoInJlYWN0LmZvcndhcmRfcmVmIiksdT1TeW1ib2wuZm9yKCJyZWFjdC5zdXNwZW5zZSIpLGQ9U3ltYm9sLmZvcigicmVhY3QubWVtbyIpLGg9U3ltYm9sLmZvcigicmVhY3QubGF6eSIpLG09U3ltYm9sLml0ZXJhdG9yO3ZhciB2PXtpc01vdW50ZWQ6ZnVuY3Rpb24oKXtyZXR1cm4hMX0sZW5xdWV1ZUZvcmNlVXBkYXRlOmZ1bmN0aW9uKCl7fSxlbnF1ZXVlUmVwbGFjZVN0YXRlOmZ1bmN0aW9uKCl7fSxlbnF1ZXVlU2V0U3RhdGU6ZnVuY3Rpb24oKXt9fSxwPU9iamVjdC5hc3NpZ24sZj17fTtmdW5jdGlvbiBTKGUsdCxyKXt0aGlzLnByb3BzPWUsdGhpcy5jb250ZXh0PXQsdGhpcy5yZWZzPWYsdGhpcy51cGRhdGVyPXJ8fHZ9ZnVuY3Rpb24gYigpe31mdW5jdGlvbiBnKGUsdCxyKXt0aGlzLnByb3BzPWUsdGhpcy5jb250ZXh0PXQsdGhpcy5yZWZzPWYsdGhpcy51cGRhdGVyPXJ8fHZ9Uy5wcm90b3R5cGUuaXNSZWFjdENvbXBvbmVudD17fSxTLnByb3RvdHlwZS5zZXRTdGF0ZT1mdW5jdGlvbihlLHQpe2lmKCJvYmplY3QiIT10eXBlb2YgZSYmImZ1bmN0aW9uIiE9dHlwZW9mIGUmJm51bGwhPWUpdGhyb3cgRXJyb3IoInNldFN0YXRlKC4uLik6IHRha2VzIGFuIG9iamVjdCBvZiBzdGF0ZSB2YXJpYWJsZXMgdG8gdXBkYXRlIG9yIGEgZnVuY3Rpb24gd2hpY2ggcmV0dXJucyBhbiBvYmplY3Qgb2Ygc3RhdGUgdmFyaWFibGVzLiIpO3RoaXMudXBkYXRlci5lbnF1ZXVlU2V0U3RhdGUodGhpcyxlLHQsInNldFN0YXRlIil9LFMucHJvdG90eXBlLmZvcmNlVXBkYXRlPWZ1bmN0aW9uKGUpe3RoaXMudXBkYXRlci5lbnF1ZXVlRm9yY2VVcGRhdGUodGhpcyxlLCJmb3JjZVVwZGF0ZSIpfSwKYi5wcm90b3R5cGU9Uy5wcm90b3R5cGU7dmFyIF89Zy5wcm90b3R5cGU9bmV3IGI7Xy5jb25zdHJ1Y3Rvcj1nLHAoXyxTLnByb3RvdHlwZSksXy5pc1B1cmVSZWFjdENvbXBvbmVudD0hMDt2YXIgeT1BcnJheS5pc0FycmF5LEU9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSxDPXtjdXJyZW50Om51bGx9LFQ9e2tleTohMCxyZWY6ITAsX19zZWxmOiEwLF9fc291cmNlOiEwfTtmdW5jdGlvbiB3KGUsdCxzKXt2YXIgbixpPXt9LGE9bnVsbCxvPW51bGw7aWYobnVsbCE9dClmb3IobiBpbiB2b2lkIDAhPT10LnJlZiYmKG89dC5yZWYpLHZvaWQgMCE9PXQua2V5JiYoYT0iIit0LmtleSksdClFLmNhbGwodCxuKSYmIVQuaGFzT3duUHJvcGVydHkobikmJihpW25dPXRbbl0pO3ZhciBsPWFyZ3VtZW50cy5sZW5ndGgtMjtpZigxPT09bClpLmNoaWxkcmVuPXM7ZWxzZSBpZigxPGwpe2Zvcih2YXIgYz1BcnJheShsKSx1PTA7dTxsO3UrKyljW3VdPWFyZ3VtZW50c1t1KzJdO2kuY2hpbGRyZW49Y31pZihlJiZlLmRlZmF1bHRQcm9wcylmb3IobiBpbiBsPWUuZGVmYXVsdFByb3BzKXZvaWQgMD09PWlbbl0mJihpW25dPWxbbl0pO3JldHVybnskJHR5cGVvZjpyLHR5cGU6ZSxrZXk6YSxyZWY6byxwcm9wczppLF9vd25lcjpDLmN1cnJlbnR9fWZ1bmN0aW9uIEQoZSl7cmV0dXJuIm9iamVjdCI9PXR5cGVvZiBlJiZudWxsIT09ZSYmZS4kJHR5cGVvZj09PXJ9dmFyIE09L1wvKy9nO2Z1bmN0aW9uIFIoZSx0KXtyZXR1cm4ib2JqZWN0Ij09dHlwZW9mIGUmJm51bGwhPT1lJiZudWxsIT1lLmtleT9mdW5jdGlvbihlKXt2YXIgdD17Ij0iOiI9MCIsIjoiOiI9MiJ9O3JldHVybiIkIitlLnJlcGxhY2UoL1s9Ol0vZywoZnVuY3Rpb24oZSl7cmV0dXJuIHRbZV19KSl9KCIiK2Uua2V5KTp0LnRvU3RyaW5nKDM2KX1mdW5jdGlvbiBrKGUsdCxuLGksYSl7dmFyIG89dHlwZW9mIGU7InVuZGVmaW5lZCIhPT1vJiYiYm9vbGVhbiIhPT1vfHwoZT1udWxsKTt2YXIgbD0hMTtpZihudWxsPT09ZSlsPSEwO2Vsc2Ugc3dpdGNoKG8pe2Nhc2Uic3RyaW5nIjpjYXNlIm51bWJlciI6bD0hMDticmVhaztjYXNlIm9iamVjdCI6c3dpdGNoKGUuJCR0eXBlb2Ype2Nhc2UgcjpjYXNlIHM6bD0hMH19aWYobClyZXR1cm4gYT1hKGw9ZSksZT0iIj09PWk/Ii4iK1IobCwwKTppLHkoYSk/KG49IiIsbnVsbCE9ZSYmKG49ZS5yZXBsYWNlKE0sIiQmLyIpKyIvIiksayhhLHQsbiwiIiwoZnVuY3Rpb24oZSl7cmV0dXJuIGV9KSkpOm51bGwhPWEmJihEKGEpJiYoYT1mdW5jdGlvbihlLHQpe3JldHVybnskJHR5cGVvZjpyLHR5cGU6ZS50eXBlLGtleTp0LHJlZjplLnJlZixwcm9wczplLnByb3BzLF9vd25lcjplLl9vd25lcn19KGEsbisoIWEua2V5fHxsJiZsLmtleT09PWEua2V5PyIiOigiIithLmtleSkucmVwbGFjZShNLCIkJi8iKSsiLyIpK2UpKSx0LnB1c2goYSkpLDE7aWYobD0wLGk9IiI9PT1pPyIuIjppKyI6Iix5KGUpKWZvcih2YXIgYz0wO2M8ZS5sZW5ndGg7YysrKXt2YXIgdT1pK1Iobz1lW2NdLGMpO2wrPWsobyx0LG4sdSxhKX1lbHNlIGlmKHU9ZnVuY3Rpb24oZSl7cmV0dXJuIG51bGw9PT1lfHwib2JqZWN0IiE9dHlwZW9mIGU/bnVsbDoiZnVuY3Rpb24iPT10eXBlb2YoZT1tJiZlW21dfHxlWyJAQGl0ZXJhdG9yIl0pP2U6bnVsbH0oZSksImZ1bmN0aW9uIj09dHlwZW9mIHUpZm9yKGU9dS5jYWxsKGUpLGM9MDshKG89ZS5uZXh0KCkpLmRvbmU7KWwrPWsobz1vLnZhbHVlLHQsbix1PWkrUihvLGMrKyksYSk7ZWxzZSBpZigib2JqZWN0Ij09PW8pdGhyb3cgdD1TdHJpbmcoZSksRXJyb3IoIk9iamVjdHMgYXJlIG5vdCB2YWxpZCBhcyBhIFJlYWN0IGNoaWxkIChmb3VuZDogIisoIltvYmplY3QgT2JqZWN0XSI9PT10PyJvYmplY3Qgd2l0aCBrZXlzIHsiK09iamVjdC5rZXlzKGUpLmpvaW4oIiwgIikrIn0iOnQpKyIpLiBJZiB5b3UgbWVhbnQgdG8gcmVuZGVyIGEgY29sbGVjdGlvbiBvZiBjaGlsZHJlbiwgdXNlIGFuIGFycmF5IGluc3RlYWQuIik7cmV0dXJuIGx9ZnVuY3Rpb24gSShlLHQscil7aWYobnVsbD09ZSlyZXR1cm4gZTt2YXIgcz1bXSxuPTA7cmV0dXJuIGsoZSxzLCIiLCIiLChmdW5jdGlvbihlKXtyZXR1cm4gdC5jYWxsKHIsZSxuKyspfSkpLHN9ZnVuY3Rpb24gRihlKXtpZigtMT09PWUuX3N0YXR1cyl7dmFyIHQ9ZS5fcmVzdWx0Oyh0PXQoKSkudGhlbigoZnVuY3Rpb24odCl7MCE9PWUuX3N0YXR1cyYmLTEhPT1lLl9zdGF0dXN8fChlLl9zdGF0dXM9MSxlLl9yZXN1bHQ9dCl9KSwoZnVuY3Rpb24odCl7MCE9PWUuX3N0YXR1cyYmLTEhPT1lLl9zdGF0dXN8fChlLl9zdGF0dXM9MixlLl9yZXN1bHQ9dCl9KSksLTE9PT1lLl9zdGF0dXMmJihlLl9zdGF0dXM9MCxlLl9yZXN1bHQ9dCl9aWYoMT09PWUuX3N0YXR1cylyZXR1cm4gZS5fcmVzdWx0LmRlZmF1bHQ7dGhyb3cgZS5fcmVzdWx0fXZhciBPPXtjdXJyZW50Om51bGx9LEE9e3RyYW5zaXRpb246bnVsbH0sVj17UmVhY3RDdXJyZW50RGlzcGF0Y2hlcjpPLFJlYWN0Q3VycmVudEJhdGNoQ29uZmlnOkEsUmVhY3RDdXJyZW50T3duZXI6Q307dC5DaGlsZHJlbj17bWFwOkksZm9yRWFjaDpmdW5jdGlvbihlLHQscil7SShlLChmdW5jdGlvbigpe3QuYXBwbHkodGhpcyxhcmd1bWVudHMpfSkscil9LGNvdW50OmZ1bmN0aW9uKGUpe3ZhciB0PTA7cmV0dXJuIEkoZSwoZnVuY3Rpb24oKXt0Kyt9KSksdH0sdG9BcnJheTpmdW5jdGlvbihlKXtyZXR1cm4gSShlLChmdW5jdGlvbihlKXtyZXR1cm4gZX0pKXx8W119LG9ubHk6ZnVuY3Rpb24oZSl7aWYoIUQoZSkpdGhyb3cgRXJyb3IoIlJlYWN0LkNoaWxkcmVuLm9ubHkgZXhwZWN0ZWQgdG8gcmVjZWl2ZSBhIHNpbmdsZSBSZWFjdCBlbGVtZW50IGNoaWxkLiIpO3JldHVybiBlfX0sdC5Db21wb25lbnQ9Uyx0LkZyYWdtZW50PW4sdC5Qcm9maWxlcj1hLHQuUHVyZUNvbXBvbmVudD1nLHQuU3RyaWN0TW9kZT1pLHQuU3VzcGVuc2U9dSx0Ll9fU0VDUkVUX0lOVEVSTkFMU19ET19OT1RfVVNFX09SX1lPVV9XSUxMX0JFX0ZJUkVEPVYsdC5jbG9uZUVsZW1lbnQ9ZnVuY3Rpb24oZSx0LHMpewppZihudWxsPT1lKXRocm93IEVycm9yKCJSZWFjdC5jbG9uZUVsZW1lbnQoLi4uKTogVGhlIGFyZ3VtZW50IG11c3QgYmUgYSBSZWFjdCBlbGVtZW50LCBidXQgeW91IHBhc3NlZCAiK2UrIi4iKTt2YXIgbj1wKHt9LGUucHJvcHMpLGk9ZS5rZXksYT1lLnJlZixvPWUuX293bmVyO2lmKG51bGwhPXQpe2lmKHZvaWQgMCE9PXQucmVmJiYoYT10LnJlZixvPUMuY3VycmVudCksdm9pZCAwIT09dC5rZXkmJihpPSIiK3Qua2V5KSxlLnR5cGUmJmUudHlwZS5kZWZhdWx0UHJvcHMpdmFyIGw9ZS50eXBlLmRlZmF1bHRQcm9wcztmb3IoYyBpbiB0KUUuY2FsbCh0LGMpJiYhVC5oYXNPd25Qcm9wZXJ0eShjKSYmKG5bY109dm9pZCAwPT09dFtjXSYmdm9pZCAwIT09bD9sW2NdOnRbY10pfXZhciBjPWFyZ3VtZW50cy5sZW5ndGgtMjtpZigxPT09YyluLmNoaWxkcmVuPXM7ZWxzZSBpZigxPGMpe2w9QXJyYXkoYyk7Zm9yKHZhciB1PTA7dTxjO3UrKylsW3VdPWFyZ3VtZW50c1t1KzJdO24uY2hpbGRyZW49bH1yZXR1cm57JCR0eXBlb2Y6cix0eXBlOmUudHlwZSxrZXk6aSxyZWY6YSxwcm9wczpuLF9vd25lcjpvfX0sdC5jcmVhdGVDb250ZXh0PWZ1bmN0aW9uKGUpe3JldHVybihlPXskJHR5cGVvZjpsLF9jdXJyZW50VmFsdWU6ZSxfY3VycmVudFZhbHVlMjplLF90aHJlYWRDb3VudDowLFByb3ZpZGVyOm51bGwsQ29uc3VtZXI6bnVsbCxfZGVmYXVsdFZhbHVlOm51bGwsX2dsb2JhbE5hbWU6bnVsbH0pLlByb3ZpZGVyPXskJHR5cGVvZjpvLF9jb250ZXh0OmV9LGUuQ29uc3VtZXI9ZX0sdC5jcmVhdGVFbGVtZW50PXcsdC5jcmVhdGVGYWN0b3J5PWZ1bmN0aW9uKGUpe3ZhciB0PXcuYmluZChudWxsLGUpO3JldHVybiB0LnR5cGU9ZSx0fSx0LmNyZWF0ZVJlZj1mdW5jdGlvbigpe3JldHVybntjdXJyZW50Om51bGx9fSx0LmZvcndhcmRSZWY9ZnVuY3Rpb24oZSl7cmV0dXJueyQkdHlwZW9mOmMscmVuZGVyOmV9fSx0LmlzVmFsaWRFbGVtZW50PUQsdC5sYXp5PWZ1bmN0aW9uKGUpe3JldHVybnskJHR5cGVvZjpoLF9wYXlsb2FkOntfc3RhdHVzOi0xLF9yZXN1bHQ6ZX0sX2luaXQ6Rn19LHQubWVtbz1mdW5jdGlvbihlLHQpe3JldHVybnskJHR5cGVvZjpkLHR5cGU6ZSxjb21wYXJlOnZvaWQgMD09PXQ/bnVsbDp0fX0sdC5zdGFydFRyYW5zaXRpb249ZnVuY3Rpb24oZSl7dmFyIHQ9QS50cmFuc2l0aW9uO0EudHJhbnNpdGlvbj17fTt0cnl7ZSgpfWZpbmFsbHl7QS50cmFuc2l0aW9uPXR9fSx0LnVuc3RhYmxlX2FjdD1mdW5jdGlvbigpe3Rocm93IEVycm9yKCJhY3QoLi4uKSBpcyBub3Qgc3VwcG9ydGVkIGluIHByb2R1Y3Rpb24gYnVpbGRzIG9mIFJlYWN0LiIpfSx0LnVzZUNhbGxiYWNrPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIE8uY3VycmVudC51c2VDYWxsYmFjayhlLHQpfSx0LnVzZUNvbnRleHQ9ZnVuY3Rpb24oZSl7cmV0dXJuIE8uY3VycmVudC51c2VDb250ZXh0KGUpfSx0LnVzZURlYnVnVmFsdWU9ZnVuY3Rpb24oKXt9LHQudXNlRGVmZXJyZWRWYWx1ZT1mdW5jdGlvbihlKXtyZXR1cm4gTy5jdXJyZW50LnVzZURlZmVycmVkVmFsdWUoZSl9LHQudXNlRWZmZWN0PWZ1bmN0aW9uKGUsdCl7cmV0dXJuIE8uY3VycmVudC51c2VFZmZlY3QoZSx0KX0sdC51c2VJZD1mdW5jdGlvbigpe3JldHVybiBPLmN1cnJlbnQudXNlSWQoKX0sdC51c2VJbXBlcmF0aXZlSGFuZGxlPWZ1bmN0aW9uKGUsdCxyKXtyZXR1cm4gTy5jdXJyZW50LnVzZUltcGVyYXRpdmVIYW5kbGUoZSx0LHIpfSx0LnVzZUluc2VydGlvbkVmZmVjdD1mdW5jdGlvbihlLHQpe3JldHVybiBPLmN1cnJlbnQudXNlSW5zZXJ0aW9uRWZmZWN0KGUsdCl9LHQudXNlTGF5b3V0RWZmZWN0PWZ1bmN0aW9uKGUsdCl7cmV0dXJuIE8uY3VycmVudC51c2VMYXlvdXRFZmZlY3QoZSx0KX0sdC51c2VNZW1vPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIE8uY3VycmVudC51c2VNZW1vKGUsdCl9LHQudXNlUmVkdWNlcj1mdW5jdGlvbihlLHQscil7cmV0dXJuIE8uY3VycmVudC51c2VSZWR1Y2VyKGUsdCxyKX0sdC51c2VSZWY9ZnVuY3Rpb24oZSl7cmV0dXJuIE8uY3VycmVudC51c2VSZWYoZSl9LHQudXNlU3RhdGU9ZnVuY3Rpb24oZSl7cmV0dXJuIE8uY3VycmVudC51c2VTdGF0ZShlKX0sdC51c2VTeW5jRXh0ZXJuYWxTdG9yZT1mdW5jdGlvbihlLHQscil7cmV0dXJuIE8uY3VycmVudC51c2VTeW5jRXh0ZXJuYWxTdG9yZShlLHQscil9LHQudXNlVHJhbnNpdGlvbj1mdW5jdGlvbigpe3JldHVybiBPLmN1cnJlbnQudXNlVHJhbnNpdGlvbigpfSx0LnZlcnNpb249IjE4LjIuMCJ9LDc3OTQ3NChlLHQscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1yKDEyMjc0OSl9LDM3NTI2MihlLHQscil7InVzZSBzdHJpY3QiO3IuZCh0LHtBYnN0cmFjdEpzb25TdG9yZVNlcnZpY2U6KCk9PmksQ29tbW9uSnNvblN0b3JlU2VydmljZTooKT0+YX0pO3ZhciBzPXIoOTQ4MzgwKTtjb25zdCBuPVN5bWJvbCgiTk9fVkFMVUVfU0VOVElORUwiKTtjbGFzcyBpe2NvbnN0cnVjdG9yKGUsdCxyLG4saSl7dGhpcy5fb25DaGFuZ2U9bmV3IHMuRGVsZWdhdGUsdGhpcy5faGFuZGxlQ2hhbmdlPSgpPT57dGhpcy5fb25DaGFuZ2UuZmlyZSh0aGlzLmdldCgpKX0sdGhpcy5fY3Jvc3NUYWJFdmVudHM9ZSx0aGlzLl9qc29uS2V5VmFsdWVTdG9yZT10LHRoaXMuQ1JPU1NUQUJfRVZFTlRfTkFNRT1yLHRoaXMuSlNPTl9TVE9SRV9LRVk9bix0aGlzLmRlZmF1bHRTdG9yZVZhbHVlPXRoaXMuX3NlcmlhbGl6ZShpKSx0aGlzLl9zdWJzY3JpYmUoKX1nZXQoKXtjb25zdCBlPXRoaXMuX2pzb25LZXlWYWx1ZVN0b3JlLmdldEpTT04odGhpcy5KU09OX1NUT1JFX0tFWSx0aGlzLmRlZmF1bHRTdG9yZVZhbHVlKTtyZXR1cm4gdGhpcy5fZGVzZXJpYWxpemUoZSl9c2V0KGUsdCl7Y29uc3Qgcj10aGlzLl9zZXJpYWxpemUoZSk7dGhpcy5fanNvbktleVZhbHVlU3RvcmUuc2V0SlNPTih0aGlzLkpTT05fU1RPUkVfS0VZLHIsdCksdGhpcy5fY3Jvc3NUYWJFdmVudHMuZW1pdCh0aGlzLkNST1NTVEFCX0VWRU5UX05BTUUpLHRoaXMuX29uQ2hhbmdlLmZpcmUoZSl9aGFzVmFsdWUoKXsKcmV0dXJuIHRoaXMuX2pzb25LZXlWYWx1ZVN0b3JlLmdldEpTT04odGhpcy5KU09OX1NUT1JFX0tFWSxuKSE9PW59Z2V0T25DaGFuZ2UoKXtyZXR1cm4gdGhpcy5fb25DaGFuZ2V9ZGVzdHJveSgpe3RoaXMuX3Vuc3Vic2NyaWJlKCksdGhpcy5fb25DaGFuZ2UuZGVzdHJveSgpLGRlbGV0ZSB0aGlzLl9vbkNoYW5nZX1fc3Vic2NyaWJlKCl7dGhpcy5fY3Jvc3NUYWJFdmVudHMub24odGhpcy5DUk9TU1RBQl9FVkVOVF9OQU1FLHRoaXMuX2hhbmRsZUNoYW5nZSksdGhpcy5fanNvbktleVZhbHVlU3RvcmUub25TeW5jLnN1YnNjcmliZSh0aGlzLHRoaXMuX2hhbmRsZUNoYW5nZSl9X3Vuc3Vic2NyaWJlKCl7dGhpcy5fY3Jvc3NUYWJFdmVudHMub2ZmKHRoaXMuQ1JPU1NUQUJfRVZFTlRfTkFNRSx0aGlzLl9oYW5kbGVDaGFuZ2UpLHRoaXMuX2pzb25LZXlWYWx1ZVN0b3JlLm9uU3luYy51bnN1YnNjcmliZSh0aGlzLHRoaXMuX2hhbmRsZUNoYW5nZSl9fWNsYXNzIGEgZXh0ZW5kcyBpe19zZXJpYWxpemUoZSl7cmV0dXJuIGV9X2Rlc2VyaWFsaXplKGUpe3JldHVybiBlfX19LDQ4MDA2MShlLHQscil7InVzZSBzdHJpY3QiO3IuZCh0LHtmYXZvcml0ZUludGVydmFsc1NlcnZpY2U6KCk9Pm0sZ2V0RGVmYXVsdEZhdm9yaXRlQ2hhcnRTdHlsZXM6KCk9PmQsZ2V0RGVmYXVsdEZhdm9yaXRlUmVzb2x1dGlvbnM6KCk9Pmh9KTt2YXIgcz1yKDE1MjY5OSksbj1yKDkzMDU2NiksaT1yKDkzMDIzMSksYT1yKDQ2NTEzNyksbz1yKDYzMzMxOCksbD1yKDcwMjE1Myk7Y29uc3QgYz17QXJlYTozLCJITEMgYXJlYSI6MTYsQmFyczowLENhbmRsZXM6MSwiSGVpa2VuIEFzaGkiOjgsIkhvbGxvdyBDYW5kbGVzIjo5LExpbmU6MixSZW5rbzo0LEthZ2k6NSwiUG9pbnQgJiBmaWd1cmUiOjYsIkxpbmUgQnJlYWsiOjcsQmFzZWxpbmU6MTAsTGluZVdpdGhNYXJrZXJzOjE0LFN0ZXBsaW5lOjE1LENvbHVtbnM6MTMsIkhpZ2gtbG93IjoxMn0sdT1bIjEiLCIzMCIsIjYwIl07ZnVuY3Rpb24gZChlPVtdKXtsZXQgdD1lLm1hcCgoZT0+Y1tlXSkpfHxbMSw0LDUsNl07cmV0dXJuKDAsaS5pc0ZlYXR1cmVzZXRFbmFibGVkKSgid2lkZ2V0IikmJih0PVswLDEsM10pLHR9ZnVuY3Rpb24gaChlPVtdKXtyZXR1cm4oMCxhLm1lcmdlUmVzb2x1dGlvbnMpKGUsKDAsaS5pc0ZlYXR1cmVzZXRFbmFibGVkKSgic3Rhcl9zb21lX2ludGVydmFsc19ieV9kZWZhdWx0Iik/dTpbXSl9Y29uc3QgbT1uZXcgby5GYXZvcml0ZUludGVydmFsc1NlcnZpY2Uocy5UVlhXaW5kb3dFdmVudHMsbixoKCkpO25ldyBsLkZhdm9yaXRlQ2hhcnRTdHlsZXNTZXJ2aWNlKHMuVFZYV2luZG93RXZlbnRzLG4sZCgpKX0sMzQ0NTM2KGUsdCxyKXsidXNlIHN0cmljdCI7ci5yKHQpLHIuZCh0LHtGYXZvcml0ZVNjcmlwdHNNb2RlbDooKT0+ZH0pO3ZhciBzPXIoOTMwNTY2KSxuPXIoMTUyNjk5KSxpPXIoNjM0ODYpLGE9cig2MzI0NDQpCjtjb25zdCBvPUpTT04ucGFyc2UoJ3siQUNDREB0di1iYXNpY3N0dWRpZXMiOiJTVEQ7QWNjdW11bGF0aW9uX0Rpc3RyaWJ1dGlvbiIsInN0dWR5QURSQHR2LWJhc2ljc3R1ZGllcyI6IlNURDtBZHZhbmNlX0RlY2xpbmVfUmF0aW9fQmFycyIsIkFST09OQHR2LWJhc2ljc3R1ZGllcyI6IlNURDtBcm9vbiIsIkFUUkB0di1iYXNpY3N0dWRpZXMiOiJTVEQ7QXZlcmFnZV9UcnVlX1JhbmdlIiwiQXdlc29tZU9zY2lsbGF0b3JAdHYtYmFzaWNzdHVkaWVzIjoiU1REO0F3ZXNvbWVfT3NjaWxsYXRvciIsIkJCQHR2LWJhc2ljc3R1ZGllcyI6IlNURDtCb2xsaW5nZXJfQmFuZHMiLCJCb2xsaW5nZXJCYW5kc1JAdHYtYmFzaWNzdHVkaWVzIjoiU1REO0JvbGxpbmdlcl9CYW5kc19CIiwiQm9sbGluZ2VyQmFuZHNXaWR0aEB0di1iYXNpY3N0dWRpZXMiOiJTVEQ7Qm9sbGluZ2VyX0JhbmRzX1dpZHRoIiwiQ01GQHR2LWJhc2ljc3R1ZGllcyI6IlNURDtDaGFpa2luX01vbmV5X0Zsb3ciLCJDaGFpa2luT3NjaWxsYXRvckB0di1iYXNpY3N0dWRpZXMiOiJTVEQ7Q2hhaWtpbl9Pc2NpbGxhdG9yIiwiQ2hvcHBpbmVzc0luZGV4QHR2LWJhc2ljc3R1ZGllcyI6IlNURDtDaG9wcGluZXNzX0luZGV4IiwiRG91YmxlRU1BQHR2LWJhc2ljc3R1ZGllcyI6IlNURDtERU1BIiwiV2lsbGlhbVJAdHYtYmFzaWNzdHVkaWVzIjoiU1REO1dpbGxhbXNfUiIsIkNDSUB0di1iYXNpY3N0dWRpZXMiOiJTVEQ7Q0NJIiwiQ1JTSUB0di1iYXNpY3N0dWRpZXMiOiJTVEQ7Q29ubm9yc19SU0kiLCJEZXRyZW5kZWRQcmljZU9zY2lsbGF0b3JAdHYtYmFzaWNzdHVkaWVzIjoiU1REO0RQTyIsIkRNQHR2LWJhc2ljc3R1ZGllcyI6IlNURDtETUkiLCJET05DSEB0di1iYXNpY3N0dWRpZXMiOiJTVEQ7RG9uY2hpYW5fQ2hhbm5lbHMiLCJFYXNlT2ZNb3ZlbWVudEB0di1iYXNpY3N0dWRpZXMiOiJTVEQ7RU9NIiwiRUZJQHR2LWJhc2ljc3R1ZGllcyI6IlNURDtFRkkiLCJFTlZAdHYtYmFzaWNzdHVkaWVzIjoiU1REO0VOViIsIkZpc2hlclRyYW5zZm9ybUB0di1iYXNpY3N0dWRpZXMiOiJTVEQ7RmlzaGVyX1RyYW5zZm9ybSIsIkhWQHR2LWJhc2ljc3R1ZGllcyI6IlNURDtIaXN0b3JpY2FsX1ZvbGF0aWxpdHkiLCJLTFROUkB0di1iYXNpY3N0dWRpZXMiOiJTVEQ7S2VsdG5lcl9DaGFubmVscyIsIk1PTUB0di1iYXNpY3N0dWRpZXMiOiJTVEQ7TW9tZW50dW0iLCJNRkB0di1iYXNpY3N0dWRpZXMiOiJTVEQ7TW9uZXlfRmxvdyIsIlVsdGltYXRlT3NjQHR2LWJhc2ljc3R1ZGllcyI6IlNURDtVbHRpbWF0ZV9Pc2NpbGxhdG9yIiwiVHJpeEB0di1iYXNpY3N0dWRpZXMiOiJTVEQ7VFJJWCIsIlN0b2NoYXN0aWNAdHYtYmFzaWNzdHVkaWVzIjoiU1REO1N0b2NoYXN0aWMiLCJTdG9jaGFzdGljUlNJQHR2LWJhc2ljc3R1ZGllcyI6IlNURDtTdG9jaGFzdGljX1JTSSIsIlJTSUB0di1iYXNpY3N0dWRpZXMiOiJTVEQ7UlNJIiwiUk9DQHR2LWJhc2ljc3R1ZGllcyI6IlNURDtST0MiLCJQcmljZU9zY0B0di1iYXNpY3N0dWRpZXMiOiJTVEQ7UHJpY2VfT3NjaWxsYXRvciIsIk1BU2ltcGxlQHR2LWJhc2ljc3R1ZGllcyI6IlNURDtTTUEiLCJPQlZAdHYtYmFzaWNzdHVkaWVzIjoiU1REO09uX0JhbGFuY2VfVm9sdW1lIiwiUFNBUkB0di1iYXNpY3N0dWRpZXMiOiJTVEQ7UFNBUiIsIlZpZ29ySW5kZXhAdHYtYmFzaWNzdHVkaWVzIjoiU1REO1JlbGF0aXZlX1ZpZ29yX0luZGV4IiwiVm9sYXRpbGl0eUluZGV4QHR2LWJhc2ljc3R1ZGllcyI6IlNURDtSZWxhdGl2ZV9Wb2xhdGlsaXR5X0luZGV4IiwiU01JRXJnb2RpY0luZGljYXRvckB0di1iYXNpY3N0dWRpZXMiOiJTVEQ7U01JX0VyZ29kaWNfSW5kaWNhdG9yX09zY2lsbGF0b3IiLCJTTUlFcmdvZGljT3NjaWxsYXRvckB0di1iYXNpY3N0dWRpZXMiOiJTVEQ7U01JX0VyZ29kaWNfT3NjaWxsYXRvciIsIk1BQ0RAdHYtYmFzaWNzdHVkaWVzIjoiU1REO01BQ0QiLCJNQVdlaWdodGVkQHR2LWJhc2ljc3R1ZGllcyI6IlNURDtXTUEiLCJNQUV4cEB0di1iYXNpY3N0dWRpZXMiOiJTVEQ7RU1BIiwiaHVsbE1BQHR2LWJhc2ljc3R1ZGllcyI6IlNURDtIdWxsJTFNQSIsImNoYW5kZU1PQHR2LWJhc2ljc3R1ZGllcyI6IlNURDtDaGFuZGVfTW9tZW50dW1fT3NjaWxsYXRvciIsIlRyaXBsZUVNQUB0di1iYXNpY3N0dWRpZXMiOiJTVEQ7VEVNQSIsIk1BVm9sdW1lV2VpZ2h0ZWRAdHYtYmFzaWNzdHVkaWVzIjoiU1REO1ZXTUEiLCJXaWxsaWFtc0FsbGlnYXRvckB0di1iYXNpY3N0dWRpZXMiOiJTVEQ7V2lsbGlhbXNfQWxsaWdhdG9yIiwiV2lsbGlhbXNGcmFjdGFsQHR2LWJhc2ljc3R1ZGllcyI6IlNURDtXaGlsbGlhbXNfRnJhY3RhbHMifScpO3ZhciBsPXIoOTQ4MzgwKTtjb25zdCBjPW87bGV0IHU9bnVsbDtjbGFzcyBke2NvbnN0cnVjdG9yKGU9cyl7dGhpcy5fZmF2b3JpdGVzPVtdLHRoaXMuX2Zhdm9yaXRlc0NoYW5nZWQ9bmV3IGwuRGVsZWdhdGUsdGhpcy5fc2V0dGluZ3M9ZSxuLlRWWFdpbmRvd0V2ZW50cy5vbigiU3R1ZHlGYXZvcml0ZXNDaGFuZ2VkIiwoZT0+e2NvbnN0IHQ9SlNPTi5wYXJzZShlKTt0aGlzLl9sb2FkRnJvbVN0YXRlKHQuZmF2b3JpdGVzfHxbXSl9KSksdGhpcy5fc2V0dGluZ3Mub25TeW5jLnN1YnNjcmliZSh0aGlzLHRoaXMuX2xvYWRGYXZzKSx0aGlzLl9sb2FkRmF2cygpfWlzRmF2KGUpe2NvbnN0IHQ9dGhpcy5mYXZJZChlKTtyZXR1cm4tMSE9PXRoaXMuX2ZpbmRGYXZJbmRleCh0KX10b2dnbGVGYXZvcml0ZShlKXt0aGlzLmlzRmF2KGUpP3RoaXMucmVtb3ZlRmF2b3JpdGUoZSk6dGhpcy5hZGRGYXZvcml0ZShlKX1hZGRGYXZvcml0ZShlKXtjb25zdCB0PXRoaXMuZmF2SWQoZSk7dGhpcy5fZmF2b3JpdGVzLnB1c2gobSh0KSksdGhpcy5fZmF2b3JpdGVzQ2hhbmdlZC5maXJlKHQpLHRoaXMuX3NhdmVGYXZzKCl9cmVtb3ZlRmF2b3JpdGUoZSl7Y29uc3QgdD10aGlzLmZhdklkKGUpLHI9dGhpcy5fZmluZEZhdkluZGV4KHQpOy0xIT09ciYmKHRoaXMuX2Zhdm9yaXRlcy5zcGxpY2UociwxKSx0aGlzLl9mYXZvcml0ZXNDaGFuZ2VkLmZpcmUodCkpLHRoaXMuX3NhdmVGYXZzKCl9ZmF2SWQoZSl7CnJldHVybigwLGEuaXNQaW5lSWRTdHJpbmcpKGUpP2U6KDAsYS5leHRyYWN0UGluZUlkKShlKXx8KDAsaS5leHRyYWN0U3R1ZHlJZCkoZSl9ZmF2b3JpdGVzKCl7cmV0dXJuIHRoaXMuX2Zhdm9yaXRlc31mYXZvcml0ZVBpbmVJZHMoKXtyZXR1cm4gdGhpcy5fZmF2b3JpdGVzLmZpbHRlcigoZT0+InBpbmUiPT09ZS50eXBlKSkubWFwKChlPT5lLnBpbmVJZCkpfWZhdm9yaXRlc0NoYW5nZWQoKXtyZXR1cm4gdGhpcy5fZmF2b3JpdGVzQ2hhbmdlZH1zdGF0aWMgZ2V0SW5zdGFuY2UoKXtyZXR1cm4gbnVsbD09PXUmJih1PW5ldyBkKSx1fXN0YXRpYyBjcmVhdGUoZSl7cmV0dXJuIG5ldyBkKGUpfV9sb2FkRmF2cygpe2NvbnN0IGU9dGhpcy5fc2V0dGluZ3MuZ2V0SlNPTigic3R1ZHlNYXJrZXQuZmF2b3JpdGVzIixbXSk7dGhpcy5fbG9hZEZyb21TdGF0ZShlKX1fc2F2ZUZhdnMoKXtjb25zdCBlPXRoaXMuX3N0YXRlVG9TYXZlKCk7dGhpcy5fc2V0dGluZ3Muc2V0SlNPTigic3R1ZHlNYXJrZXQuZmF2b3JpdGVzIixlLHtmb3JjZUZsdXNoOiEwfSksbi5UVlhXaW5kb3dFdmVudHMuZW1pdCgiU3R1ZHlGYXZvcml0ZXNDaGFuZ2VkIixKU09OLnN0cmluZ2lmeSh7ZmF2b3JpdGVzOmV9KSl9X3N0YXRlVG9TYXZlKCl7cmV0dXJuIHRoaXMuX2Zhdm9yaXRlcy5tYXAoaCl9X2xvYWRGcm9tU3RhdGUoZSl7dGhpcy5fZmF2b3JpdGVzPWUubWFwKChlPT5tKGZ1bmN0aW9uKGUpe3JldHVybiBlIGluIGM/Y1tlXTplfShlKSkpKSx0aGlzLl9mYXZvcml0ZXNDaGFuZ2VkLmZpcmUoKX1fZmluZEZhdkluZGV4KGUpe3JldHVybiB0aGlzLl9mYXZvcml0ZXMuZmluZEluZGV4KCh0PT5lPT09aCh0KSkpfX1mdW5jdGlvbiBoKGUpe3JldHVybiJqYXZhIj09PWUudHlwZT9lLnN0dWR5SWQ6ZS5waW5lSWR9ZnVuY3Rpb24gbShlKXtyZXR1cm4oMCxhLmlzUGluZUlkU3RyaW5nKShlKT97dHlwZToicGluZSIscGluZUlkOmV9Ont0eXBlOiJqYXZhIixzdHVkeUlkOmV9fX0sMzkxODkwKGUpe2UuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMCAxMCIgd2lkdGg9IjIwIiBoZWlnaHQ9IjEwIj48cGF0aCBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIxLjUiIGQ9Ik0yIDFsOCA4IDgtOCIvPjwvc3ZnPid9LDMwMTYwNyhlKXtlLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iMjgiIGhlaWdodD0iMjgiPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNNC41NiAxNGExMC4wNSAxMC4wNSAwIDAwLjUyLjkxYy40MS42OSAxLjA0IDEuNiAxLjg1IDIuNUM4LjU4IDE5LjI1IDEwLjk1IDIxIDE0IDIxYzMuMDUgMCA1LjQyLTEuNzYgNy4wNy0zLjU4QTE3LjE4IDE3LjE4IDAgMDAyMy40NCAxNGE5LjQ3IDkuNDcgMCAwMC0uNTItLjkxYy0uNDEtLjY5LTEuMDQtMS42LTEuODUtMi41QzE5LjQyIDguNzUgMTcuMDUgNyAxNCA3Yy0zLjA1IDAtNS40MiAxLjc2LTcuMDcgMy41OEExNy4xOCAxNy4xOCAwIDAwNC41NiAxNHpNMjQgMTRsLjQ1LS4yMS0uMDEtLjAzYTcuMDMgNy4wMyAwIDAwLS4xNi0uMzJjLS4xMS0uMi0uMjgtLjUxLS41LS44Ny0uNDQtLjcyLTEuMS0xLjY5LTEuOTctMi42NUMyMC4wOCA3Ljk5IDE3LjQ1IDYgMTQgNmMtMy40NSAwLTYuMDggMi03LjggMy45MmExOC4xOCAxOC4xOCAwIDAwLTIuNjQgMy44NHYuMDJoLS4wMUw0IDE0bC0uNDUtLjIxLS4xLjIxLjEuMjFMNCAxNGwtLjQ1LjIxLjAxLjAzYTUuODUgNS44NSAwIDAwLjE2LjMyYy4xMS4yLjI4LjUxLjUuODcuNDQuNzIgMS4xIDEuNjkgMS45NyAyLjY1QzcuOTIgMjAuMDEgMTAuNTUgMjIgMTQgMjJjMy40NSAwIDYuMDgtMiA3LjgtMy45MmExOC4xOCAxOC4xOCAwIDAwMi42NC0zLjg0di0uMDJoLjAxTDI0IDE0em0wIDBsLjQ1LjIxLjEtLjIxLS4xLS4yMUwyNCAxNHptLTEwLTNhMyAzIDAgMTAwIDYgMyAzIDAgMDAwLTZ6bS00IDNhNCA0IDAgMTE4IDAgNCA0IDAgMDEtOCAweiIvPjwvc3ZnPid9fV0pOw=="}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/price-scale-mode-buttons-renderer.3f61661793789559b605.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.257Z","timestamp":1785148034257,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/price-scale-mode-buttons-renderer.3f61661793789559b605.js HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a5dbd31-2c46\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Mon, 20 Jul 2026 06:16:17 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/20/2026 11:21:48\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 194222bc690868ecc03eb51e9de23b22\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":11334,"size_decoded":5216,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (3072)","md5":"56b0517a2a0e43c0da91d29f067965d8","sha1":"cc29534e9373c38fabce93912d78c4f77387d041","sha256":"f05ba56fec95e4a8791aa9578861c23f07d46d60a98a78666a2670bfcdd0d2e5","sha512":"3eaec55d02c3544d9aa01a60122eac994af3c4f6ee9829185ce6c4ad79ee4a0e55932cbb67f11214a8e0021ca9cbfe4533a8e07a2af1fb1f2f7dd3b639f0966a","ssdeep":"192:/RR7jTjtKAbbSZcZ0hKoRAJ6LzcWagOzW0+CUc8BJ8Ij/cW20W90tcoMEd:n3Tjdb2hhfLMzP8z/bdzZ","tlshash":"f632c9ed70a1b0656aa328aa803f0406b2bd252d3c4e8874b695eddd35fc54c913bf6d","first_seen":"2026-07-20T16:56:18.262491Z","last_seen":"2026-07-27T12:48:39.852962Z","times_seen":90,"resource_available":true,"data":"KHNlbGYud2VicGFja0NodW5rdHJhZGluZ3ZpZXc9c2VsZi53ZWJwYWNrQ2h1bmt0cmFkaW5ndmlld3x8W10pLnB1c2goW1s2NDY0NCw3MTMwMCw3MTM3NV0sezkxNDQ4NyhlLHQpe3ZhciByOyFmdW5jdGlvbigpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj17fS5oYXNPd25Qcm9wZXJ0eTtmdW5jdGlvbiBvKCl7Zm9yKHZhciBlPVtdLHQ9MDt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgcj1hcmd1bWVudHNbdF07aWYocil7dmFyIHU9dHlwZW9mIHI7aWYoInN0cmluZyI9PT11fHwibnVtYmVyIj09PXUpZS5wdXNoKHIpO2Vsc2UgaWYoQXJyYXkuaXNBcnJheShyKSYmci5sZW5ndGgpe3ZhciBhPW8uYXBwbHkobnVsbCxyKTthJiZlLnB1c2goYSl9ZWxzZSBpZigib2JqZWN0Ij09PXUpZm9yKHZhciBpIGluIHIpbi5jYWxsKHIsaSkmJnJbaV0mJmUucHVzaChpKX19cmV0dXJuIGUuam9pbigiICIpfWUuZXhwb3J0cz8oby5kZWZhdWx0PW8sZS5leHBvcnRzPW8pOnZvaWQgMD09PShyPWZ1bmN0aW9uKCl7cmV0dXJuIG99LmFwcGx5KHQsW10pKXx8KGUuZXhwb3J0cz1yKX0oKX0sMzM0Njg1KGUpe2UuZXhwb3J0cz17cHJpY2VTY2FsZU1vZGVCdXR0b246InByaWNlU2NhbGVNb2RlQnV0dG9uLVFZTUg1cFRlIixwcmljZVNjYWxlTW9kZUJ1dHRvbl9hY3RpdmF0ZWQ6InByaWNlU2NhbGVNb2RlQnV0dG9uX2FjdGl2YXRlZC1RWU1INXBUZSJ9fSw5MDA1MzAoZSl7ZS5leHBvcnRzPXtwcmljZVNjYWxlTW9kZUJ1dHRvbnM6InByaWNlU2NhbGVNb2RlQnV0dG9ucy1hYUtYNksxYSIscHJpY2VTY2FsZU1vZGVCdXR0b25zX19idXR0b25XcmFwcGVyOiJwcmljZVNjYWxlTW9kZUJ1dHRvbnNfX2J1dHRvbldyYXBwZXItYWFLWDZLMWEiLHByaWNlU2NhbGVNb2RlQnV0dG9uc19fYnV0dG9uOiJwcmljZVNjYWxlTW9kZUJ1dHRvbnNfX2J1dHRvbi1hYUtYNksxYSJ9fSw4NjU1NjAoZSx0LHIpeyJ1c2Ugc3RyaWN0IjtyLmQodCx7VFZBcHBDb250ZXh0OigpPT5zLFRWQXBwQ29udGV4dFByb3ZpZGVyOigpPT5jfSk7dmFyIG49cig3Nzk0NzQpLG89cigxMTUyOTMpLHU9cig5OTk1MSksYT1yKDExNzMxMyk7Y29uc3QgaT17aU9zOiJvbGQiLGFuZHJvaWQ6Im5ldyIsb2xkOiJvbGQiLG5ldzoibmV3Iixhbnk6ImFueSJ9O2Z1bmN0aW9uIGMoZSl7Y29uc3RbdF09KDAsbi51c2VTdGF0ZSkoe2lzT25Nb2JpbGVBcHBQYWdlOmU9PigwLGEuaXNPbk1vYmlsZUFwcFBhZ2UpKGlbZV0pLGlzUnRsOigwLG8uaXNSdGwpKCksbG9jYWxlOndpbmRvdy5sb2NhbGUscmVuZGVyTW9kZTplLnJlbmRlck1vZGU/PyJsZWdhY3kifSk7cmV0dXJuIG4uY3JlYXRlRWxlbWVudCh1LkFwcENvbnRleHQuUHJvdmlkZXIse3ZhbHVlOnR9LGUuY2hpbGRyZW4pfWNvbnN0IHM9dS5BcHBDb250ZXh0fSw1NzEzMDAoZSx0LHIpeyJ1c2Ugc3RyaWN0IjtyLnIodCksci5kKHQse2NyZWF0ZVJlYWN0Um9vdDooKT0+aX0pO3ZhciBuPXIoNzc5NDc0KSxvPXIoMTI5MzY1KSx1PXIoMzM2MzM0KSxhPXIoODY1NTYwKTtmdW5jdGlvbiBpKGUsdCxyPSJsZWdhY3kiKXtjb25zdCBpPW4uY3JlYXRlRWxlbWVudChhLlRWQXBwQ29udGV4dFByb3ZpZGVyLHtyZW5kZXJNb2RlOnJ9LGUpO2lmKCJtb2Rlcm4iPT09cil7Y29uc3QgZT0oMCx1LmNyZWF0ZVJvb3QpKHQpO3JldHVybiBlLnJlbmRlcihpKSx7cmVuZGVyKHQpe2UucmVuZGVyKG4uY3JlYXRlRWxlbWVudChhLlRWQXBwQ29udGV4dFByb3ZpZGVyLHtyZW5kZXJNb2RlOnJ9LHQpKX0sdW5tb3VudCgpe2UudW5tb3VudCgpfX19cmV0dXJuIG8ucmVuZGVyKGksdCkse3JlbmRlcihlKXtvLnJlbmRlcihuLmNyZWF0ZUVsZW1lbnQoYS5UVkFwcENvbnRleHRQcm92aWRlcix7cmVuZGVyTW9kZTpyfSxlKSx0KX0sdW5tb3VudCgpe28udW5tb3VudENvbXBvbmVudEF0Tm9kZSh0KX19fX0sOTk5NTEoZSx0LHIpeyJ1c2Ugc3RyaWN0IjtyLmQodCx7QXBwQ29udGV4dDooKT0+bn0pO2NvbnN0IG49KDAscig3Nzk0NzQpLmNyZWF0ZUNvbnRleHQpKHtpc09uTW9iaWxlQXBwUGFnZTooKT0+ITEsaXNSdGw6ITEsbG9jYWxlOiJlbiIscmVuZGVyTW9kZToibGVnYWN5In0pfSwzMzYzMzQoZSx0LHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj1yKDEyOTM2NSk7dC5jcmVhdGVSb290PW4uY3JlYXRlUm9vdCxuLmh5ZHJhdGVSb290fSwxMjkzNjUoZSx0LHIpeyJ1c2Ugc3RyaWN0IjshZnVuY3Rpb24gZSgpe2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgX19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fJiYiZnVuY3Rpb24iPT10eXBlb2YgX19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fLmNoZWNrRENFKXRyeXtfX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18uY2hlY2tEQ0UoZSl9Y2F0Y2goZSl7Y29uc29sZS5lcnJvcihlKX19KCksZS5leHBvcnRzPXIoNTMyMzg3KX0sMTIyNzQ5KGUsdCl7InVzZSBzdHJpY3QiO3ZhciByPVN5bWJvbC5mb3IoInJlYWN0LmVsZW1lbnQiKSxuPVN5bWJvbC5mb3IoInJlYWN0LnBvcnRhbCIpLG89U3ltYm9sLmZvcigicmVhY3QuZnJhZ21lbnQiKSx1PVN5bWJvbC5mb3IoInJlYWN0LnN0cmljdF9tb2RlIiksYT1TeW1ib2wuZm9yKCJyZWFjdC5wcm9maWxlciIpLGk9U3ltYm9sLmZvcigicmVhY3QucHJvdmlkZXIiKSxjPVN5bWJvbC5mb3IoInJlYWN0LmNvbnRleHQiKSxzPVN5bWJvbC5mb3IoInJlYWN0LmZvcndhcmRfcmVmIiksbD1TeW1ib2wuZm9yKCJyZWFjdC5zdXNwZW5zZSIpLHA9U3ltYm9sLmZvcigicmVhY3QubWVtbyIpLGY9U3ltYm9sLmZvcigicmVhY3QubGF6eSIpLGQ9U3ltYm9sLml0ZXJhdG9yO3ZhciBfPXtpc01vdW50ZWQ6ZnVuY3Rpb24oKXtyZXR1cm4hMX0sZW5xdWV1ZUZvcmNlVXBkYXRlOmZ1bmN0aW9uKCl7fSxlbnF1ZXVlUmVwbGFjZVN0YXRlOmZ1bmN0aW9uKCl7fSxlbnF1ZXVlU2V0U3RhdGU6ZnVuY3Rpb24oKXt9fSx5PU9iamVjdC5hc3NpZ24saD17fTtmdW5jdGlvbiB2KGUsdCxyKXt0aGlzLnByb3BzPWUsdGhpcy5jb250ZXh0PXQsdGhpcy5yZWZzPWgsdGhpcy51cGRhdGVyPXJ8fF99ZnVuY3Rpb24gbSgpe31mdW5jdGlvbiBiKGUsdCxyKXt0aGlzLnByb3BzPWUsdGhpcy5jb250ZXh0PXQsCnRoaXMucmVmcz1oLHRoaXMudXBkYXRlcj1yfHxffXYucHJvdG90eXBlLmlzUmVhY3RDb21wb25lbnQ9e30sdi5wcm90b3R5cGUuc2V0U3RhdGU9ZnVuY3Rpb24oZSx0KXtpZigib2JqZWN0IiE9dHlwZW9mIGUmJiJmdW5jdGlvbiIhPXR5cGVvZiBlJiZudWxsIT1lKXRocm93IEVycm9yKCJzZXRTdGF0ZSguLi4pOiB0YWtlcyBhbiBvYmplY3Qgb2Ygc3RhdGUgdmFyaWFibGVzIHRvIHVwZGF0ZSBvciBhIGZ1bmN0aW9uIHdoaWNoIHJldHVybnMgYW4gb2JqZWN0IG9mIHN0YXRlIHZhcmlhYmxlcy4iKTt0aGlzLnVwZGF0ZXIuZW5xdWV1ZVNldFN0YXRlKHRoaXMsZSx0LCJzZXRTdGF0ZSIpfSx2LnByb3RvdHlwZS5mb3JjZVVwZGF0ZT1mdW5jdGlvbihlKXt0aGlzLnVwZGF0ZXIuZW5xdWV1ZUZvcmNlVXBkYXRlKHRoaXMsZSwiZm9yY2VVcGRhdGUiKX0sbS5wcm90b3R5cGU9di5wcm90b3R5cGU7dmFyIFM9Yi5wcm90b3R5cGU9bmV3IG07Uy5jb25zdHJ1Y3Rvcj1iLHkoUyx2LnByb3RvdHlwZSksUy5pc1B1cmVSZWFjdENvbXBvbmVudD0hMDt2YXIgTT1BcnJheS5pc0FycmF5LEU9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSxnPXtjdXJyZW50Om51bGx9LEM9e2tleTohMCxyZWY6ITAsX19zZWxmOiEwLF9fc291cmNlOiEwfTtmdW5jdGlvbiBSKGUsdCxuKXt2YXIgbyx1PXt9LGE9bnVsbCxpPW51bGw7aWYobnVsbCE9dClmb3IobyBpbiB2b2lkIDAhPT10LnJlZiYmKGk9dC5yZWYpLHZvaWQgMCE9PXQua2V5JiYoYT0iIit0LmtleSksdClFLmNhbGwodCxvKSYmIUMuaGFzT3duUHJvcGVydHkobykmJih1W29dPXRbb10pO3ZhciBjPWFyZ3VtZW50cy5sZW5ndGgtMjtpZigxPT09Yyl1LmNoaWxkcmVuPW47ZWxzZSBpZigxPGMpe2Zvcih2YXIgcz1BcnJheShjKSxsPTA7bDxjO2wrKylzW2xdPWFyZ3VtZW50c1tsKzJdO3UuY2hpbGRyZW49c31pZihlJiZlLmRlZmF1bHRQcm9wcylmb3IobyBpbiBjPWUuZGVmYXVsdFByb3BzKXZvaWQgMD09PXVbb10mJih1W29dPWNbb10pO3JldHVybnskJHR5cGVvZjpyLHR5cGU6ZSxrZXk6YSxyZWY6aSxwcm9wczp1LF9vd25lcjpnLmN1cnJlbnR9fWZ1bmN0aW9uIHcoZSl7cmV0dXJuIm9iamVjdCI9PXR5cGVvZiBlJiZudWxsIT09ZSYmZS4kJHR5cGVvZj09PXJ9dmFyIGs9L1wvKy9nO2Z1bmN0aW9uIE8oZSx0KXtyZXR1cm4ib2JqZWN0Ij09dHlwZW9mIGUmJm51bGwhPT1lJiZudWxsIT1lLmtleT9mdW5jdGlvbihlKXt2YXIgdD17Ij0iOiI9MCIsIjoiOiI9MiJ9O3JldHVybiIkIitlLnJlcGxhY2UoL1s9Ol0vZywoZnVuY3Rpb24oZSl7cmV0dXJuIHRbZV19KSl9KCIiK2Uua2V5KTp0LnRvU3RyaW5nKDM2KX1mdW5jdGlvbiB4KGUsdCxvLHUsYSl7dmFyIGk9dHlwZW9mIGU7InVuZGVmaW5lZCIhPT1pJiYiYm9vbGVhbiIhPT1pfHwoZT1udWxsKTt2YXIgYz0hMTtpZihudWxsPT09ZSljPSEwO2Vsc2Ugc3dpdGNoKGkpe2Nhc2Uic3RyaW5nIjpjYXNlIm51bWJlciI6Yz0hMDticmVhaztjYXNlIm9iamVjdCI6c3dpdGNoKGUuJCR0eXBlb2Ype2Nhc2UgcjpjYXNlIG46Yz0hMH19aWYoYylyZXR1cm4gYT1hKGM9ZSksZT0iIj09PXU/Ii4iK08oYywwKTp1LE0oYSk/KG89IiIsbnVsbCE9ZSYmKG89ZS5yZXBsYWNlKGssIiQmLyIpKyIvIikseChhLHQsbywiIiwoZnVuY3Rpb24oZSl7cmV0dXJuIGV9KSkpOm51bGwhPWEmJih3KGEpJiYoYT1mdW5jdGlvbihlLHQpe3JldHVybnskJHR5cGVvZjpyLHR5cGU6ZS50eXBlLGtleTp0LHJlZjplLnJlZixwcm9wczplLnByb3BzLF9vd25lcjplLl9vd25lcn19KGEsbysoIWEua2V5fHxjJiZjLmtleT09PWEua2V5PyIiOigiIithLmtleSkucmVwbGFjZShrLCIkJi8iKSsiLyIpK2UpKSx0LnB1c2goYSkpLDE7aWYoYz0wLHU9IiI9PT11PyIuIjp1KyI6IixNKGUpKWZvcih2YXIgcz0wO3M8ZS5sZW5ndGg7cysrKXt2YXIgbD11K08oaT1lW3NdLHMpO2MrPXgoaSx0LG8sbCxhKX1lbHNlIGlmKGw9ZnVuY3Rpb24oZSl7cmV0dXJuIG51bGw9PT1lfHwib2JqZWN0IiE9dHlwZW9mIGU/bnVsbDoiZnVuY3Rpb24iPT10eXBlb2YoZT1kJiZlW2RdfHxlWyJAQGl0ZXJhdG9yIl0pP2U6bnVsbH0oZSksImZ1bmN0aW9uIj09dHlwZW9mIGwpZm9yKGU9bC5jYWxsKGUpLHM9MDshKGk9ZS5uZXh0KCkpLmRvbmU7KWMrPXgoaT1pLnZhbHVlLHQsbyxsPXUrTyhpLHMrKyksYSk7ZWxzZSBpZigib2JqZWN0Ij09PWkpdGhyb3cgdD1TdHJpbmcoZSksRXJyb3IoIk9iamVjdHMgYXJlIG5vdCB2YWxpZCBhcyBhIFJlYWN0IGNoaWxkIChmb3VuZDogIisoIltvYmplY3QgT2JqZWN0XSI9PT10PyJvYmplY3Qgd2l0aCBrZXlzIHsiK09iamVjdC5rZXlzKGUpLmpvaW4oIiwgIikrIn0iOnQpKyIpLiBJZiB5b3UgbWVhbnQgdG8gcmVuZGVyIGEgY29sbGVjdGlvbiBvZiBjaGlsZHJlbiwgdXNlIGFuIGFycmF5IGluc3RlYWQuIik7cmV0dXJuIGN9ZnVuY3Rpb24gQShlLHQscil7aWYobnVsbD09ZSlyZXR1cm4gZTt2YXIgbj1bXSxvPTA7cmV0dXJuIHgoZSxuLCIiLCIiLChmdW5jdGlvbihlKXtyZXR1cm4gdC5jYWxsKHIsZSxvKyspfSkpLG59ZnVuY3Rpb24gUChlKXtpZigtMT09PWUuX3N0YXR1cyl7dmFyIHQ9ZS5fcmVzdWx0Oyh0PXQoKSkudGhlbigoZnVuY3Rpb24odCl7MCE9PWUuX3N0YXR1cyYmLTEhPT1lLl9zdGF0dXN8fChlLl9zdGF0dXM9MSxlLl9yZXN1bHQ9dCl9KSwoZnVuY3Rpb24odCl7MCE9PWUuX3N0YXR1cyYmLTEhPT1lLl9zdGF0dXN8fChlLl9zdGF0dXM9MixlLl9yZXN1bHQ9dCl9KSksLTE9PT1lLl9zdGF0dXMmJihlLl9zdGF0dXM9MCxlLl9yZXN1bHQ9dCl9aWYoMT09PWUuX3N0YXR1cylyZXR1cm4gZS5fcmVzdWx0LmRlZmF1bHQ7dGhyb3cgZS5fcmVzdWx0fXZhciBMPXtjdXJyZW50Om51bGx9LEI9e3RyYW5zaXRpb246bnVsbH0sJD17UmVhY3RDdXJyZW50RGlzcGF0Y2hlcjpMLFJlYWN0Q3VycmVudEJhdGNoQ29uZmlnOkIsUmVhY3RDdXJyZW50T3duZXI6Z307dC5DaGlsZHJlbj17bWFwOkEsZm9yRWFjaDpmdW5jdGlvbihlLHQscil7QShlLChmdW5jdGlvbigpe3QuYXBwbHkodGhpcyxhcmd1bWVudHMpfSkscil9LGNvdW50OmZ1bmN0aW9uKGUpewp2YXIgdD0wO3JldHVybiBBKGUsKGZ1bmN0aW9uKCl7dCsrfSkpLHR9LHRvQXJyYXk6ZnVuY3Rpb24oZSl7cmV0dXJuIEEoZSwoZnVuY3Rpb24oZSl7cmV0dXJuIGV9KSl8fFtdfSxvbmx5OmZ1bmN0aW9uKGUpe2lmKCF3KGUpKXRocm93IEVycm9yKCJSZWFjdC5DaGlsZHJlbi5vbmx5IGV4cGVjdGVkIHRvIHJlY2VpdmUgYSBzaW5nbGUgUmVhY3QgZWxlbWVudCBjaGlsZC4iKTtyZXR1cm4gZX19LHQuQ29tcG9uZW50PXYsdC5GcmFnbWVudD1vLHQuUHJvZmlsZXI9YSx0LlB1cmVDb21wb25lbnQ9Yix0LlN0cmljdE1vZGU9dSx0LlN1c3BlbnNlPWwsdC5fX1NFQ1JFVF9JTlRFUk5BTFNfRE9fTk9UX1VTRV9PUl9ZT1VfV0lMTF9CRV9GSVJFRD0kLHQuY2xvbmVFbGVtZW50PWZ1bmN0aW9uKGUsdCxuKXtpZihudWxsPT1lKXRocm93IEVycm9yKCJSZWFjdC5jbG9uZUVsZW1lbnQoLi4uKTogVGhlIGFyZ3VtZW50IG11c3QgYmUgYSBSZWFjdCBlbGVtZW50LCBidXQgeW91IHBhc3NlZCAiK2UrIi4iKTt2YXIgbz15KHt9LGUucHJvcHMpLHU9ZS5rZXksYT1lLnJlZixpPWUuX293bmVyO2lmKG51bGwhPXQpe2lmKHZvaWQgMCE9PXQucmVmJiYoYT10LnJlZixpPWcuY3VycmVudCksdm9pZCAwIT09dC5rZXkmJih1PSIiK3Qua2V5KSxlLnR5cGUmJmUudHlwZS5kZWZhdWx0UHJvcHMpdmFyIGM9ZS50eXBlLmRlZmF1bHRQcm9wcztmb3IocyBpbiB0KUUuY2FsbCh0LHMpJiYhQy5oYXNPd25Qcm9wZXJ0eShzKSYmKG9bc109dm9pZCAwPT09dFtzXSYmdm9pZCAwIT09Yz9jW3NdOnRbc10pfXZhciBzPWFyZ3VtZW50cy5sZW5ndGgtMjtpZigxPT09cylvLmNoaWxkcmVuPW47ZWxzZSBpZigxPHMpe2M9QXJyYXkocyk7Zm9yKHZhciBsPTA7bDxzO2wrKyljW2xdPWFyZ3VtZW50c1tsKzJdO28uY2hpbGRyZW49Y31yZXR1cm57JCR0eXBlb2Y6cix0eXBlOmUudHlwZSxrZXk6dSxyZWY6YSxwcm9wczpvLF9vd25lcjppfX0sdC5jcmVhdGVDb250ZXh0PWZ1bmN0aW9uKGUpe3JldHVybihlPXskJHR5cGVvZjpjLF9jdXJyZW50VmFsdWU6ZSxfY3VycmVudFZhbHVlMjplLF90aHJlYWRDb3VudDowLFByb3ZpZGVyOm51bGwsQ29uc3VtZXI6bnVsbCxfZGVmYXVsdFZhbHVlOm51bGwsX2dsb2JhbE5hbWU6bnVsbH0pLlByb3ZpZGVyPXskJHR5cGVvZjppLF9jb250ZXh0OmV9LGUuQ29uc3VtZXI9ZX0sdC5jcmVhdGVFbGVtZW50PVIsdC5jcmVhdGVGYWN0b3J5PWZ1bmN0aW9uKGUpe3ZhciB0PVIuYmluZChudWxsLGUpO3JldHVybiB0LnR5cGU9ZSx0fSx0LmNyZWF0ZVJlZj1mdW5jdGlvbigpe3JldHVybntjdXJyZW50Om51bGx9fSx0LmZvcndhcmRSZWY9ZnVuY3Rpb24oZSl7cmV0dXJueyQkdHlwZW9mOnMscmVuZGVyOmV9fSx0LmlzVmFsaWRFbGVtZW50PXcsdC5sYXp5PWZ1bmN0aW9uKGUpe3JldHVybnskJHR5cGVvZjpmLF9wYXlsb2FkOntfc3RhdHVzOi0xLF9yZXN1bHQ6ZX0sX2luaXQ6UH19LHQubWVtbz1mdW5jdGlvbihlLHQpe3JldHVybnskJHR5cGVvZjpwLHR5cGU6ZSxjb21wYXJlOnZvaWQgMD09PXQ/bnVsbDp0fX0sdC5zdGFydFRyYW5zaXRpb249ZnVuY3Rpb24oZSl7dmFyIHQ9Qi50cmFuc2l0aW9uO0IudHJhbnNpdGlvbj17fTt0cnl7ZSgpfWZpbmFsbHl7Qi50cmFuc2l0aW9uPXR9fSx0LnVuc3RhYmxlX2FjdD1mdW5jdGlvbigpe3Rocm93IEVycm9yKCJhY3QoLi4uKSBpcyBub3Qgc3VwcG9ydGVkIGluIHByb2R1Y3Rpb24gYnVpbGRzIG9mIFJlYWN0LiIpfSx0LnVzZUNhbGxiYWNrPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIEwuY3VycmVudC51c2VDYWxsYmFjayhlLHQpfSx0LnVzZUNvbnRleHQ9ZnVuY3Rpb24oZSl7cmV0dXJuIEwuY3VycmVudC51c2VDb250ZXh0KGUpfSx0LnVzZURlYnVnVmFsdWU9ZnVuY3Rpb24oKXt9LHQudXNlRGVmZXJyZWRWYWx1ZT1mdW5jdGlvbihlKXtyZXR1cm4gTC5jdXJyZW50LnVzZURlZmVycmVkVmFsdWUoZSl9LHQudXNlRWZmZWN0PWZ1bmN0aW9uKGUsdCl7cmV0dXJuIEwuY3VycmVudC51c2VFZmZlY3QoZSx0KX0sdC51c2VJZD1mdW5jdGlvbigpe3JldHVybiBMLmN1cnJlbnQudXNlSWQoKX0sdC51c2VJbXBlcmF0aXZlSGFuZGxlPWZ1bmN0aW9uKGUsdCxyKXtyZXR1cm4gTC5jdXJyZW50LnVzZUltcGVyYXRpdmVIYW5kbGUoZSx0LHIpfSx0LnVzZUluc2VydGlvbkVmZmVjdD1mdW5jdGlvbihlLHQpe3JldHVybiBMLmN1cnJlbnQudXNlSW5zZXJ0aW9uRWZmZWN0KGUsdCl9LHQudXNlTGF5b3V0RWZmZWN0PWZ1bmN0aW9uKGUsdCl7cmV0dXJuIEwuY3VycmVudC51c2VMYXlvdXRFZmZlY3QoZSx0KX0sdC51c2VNZW1vPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIEwuY3VycmVudC51c2VNZW1vKGUsdCl9LHQudXNlUmVkdWNlcj1mdW5jdGlvbihlLHQscil7cmV0dXJuIEwuY3VycmVudC51c2VSZWR1Y2VyKGUsdCxyKX0sdC51c2VSZWY9ZnVuY3Rpb24oZSl7cmV0dXJuIEwuY3VycmVudC51c2VSZWYoZSl9LHQudXNlU3RhdGU9ZnVuY3Rpb24oZSl7cmV0dXJuIEwuY3VycmVudC51c2VTdGF0ZShlKX0sdC51c2VTeW5jRXh0ZXJuYWxTdG9yZT1mdW5jdGlvbihlLHQscil7cmV0dXJuIEwuY3VycmVudC51c2VTeW5jRXh0ZXJuYWxTdG9yZShlLHQscil9LHQudXNlVHJhbnNpdGlvbj1mdW5jdGlvbigpe3JldHVybiBMLmN1cnJlbnQudXNlVHJhbnNpdGlvbigpfSx0LnZlcnNpb249IjE4LjIuMCJ9LDc3OTQ3NChlLHQscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1yKDEyMjc0OSl9LDkzMTg3MChlLHQscil7InVzZSBzdHJpY3QiO3IuZCh0LHtQcmljZVNjYWxlTW9kZUJ1dHRvbnNSZW5kZXJlcjooKT0+ZH0pO3ZhciBuPXIoNzc5NDc0KSxvPXIoMTM4NjM4KSx1PXIoMTg1MjcxKSxhPXIoMzE4OTc0KSxpPXIoNTcxMzAwKSxjPXIoOTE0NDg3KSxzPXIubihjKSxsPXIoMzM0Njg1KTtmdW5jdGlvbiBwKGUpe2NvbnN0e2FjdGl2YXRlZDp0LG9uQ2xpY2s6cixjb250ZW50Om8sdG9vbHRpcDp1LGFyaWFMYWJlbDphLGNsYXNzTmFtZTppfT1lO3JldHVybiBuLmNyZWF0ZUVsZW1lbnQoImJ1dHRvbiIsewpjbGFzc05hbWU6cygpKGwucHJpY2VTY2FsZU1vZGVCdXR0b24sdCYmbC5wcmljZVNjYWxlTW9kZUJ1dHRvbl9hY3RpdmF0ZWQsaSx1JiYiYXBwbHktY29tbW9uLXRvb2x0aXAiKSxvbkNsaWNrOnIsImRhdGEtdG9vbHRpcCI6dSwiYXJpYS1sYWJlbCI6YX0sbyl9dmFyIGY9cig5MDA1MzApO2NsYXNzIGR7Y29uc3RydWN0b3Ioe3NldE1vZGU6ZSxnZXRNb2RlOnQsY2xhc3NOYW1lOnI9IiJ9KXt0aGlzLl9yZWFjdFJvb3Q9bnVsbCx0aGlzLl9zZXRBdXRvTW9kZT0oKT0+KDAsby5lbnN1cmVOb3ROdWxsKSh0aGlzLl9zZXRNb2RlRnVuY3Rpb24pKCJhdXRvIiksdGhpcy5fc2V0TG9nYXJpdGhtTW9kZT0oKT0+KDAsby5lbnN1cmVOb3ROdWxsKSh0aGlzLl9zZXRNb2RlRnVuY3Rpb24pKCJsb2ciKSx0aGlzLl9zZXRNb2RlRnVuY3Rpb249ZSx0aGlzLl9nZXRNb2RlRnVuY3Rpb249dDtjb25zdCBuPXRoaXMuX3dyYXBwZXI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7bi5jbGFzc0xpc3QuYWRkKHIpLG4uYWRkRXZlbnRMaXN0ZW5lcigiZGJsY2xpY2siLHRoaXMuX3N0b3BQcm9wYWdhdGlvbix7Y2FwdHVyZTohMH0pLG4uYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hzdGFydCIsdGhpcy5fc3RvcFByb3BhZ2F0aW9uLHtjYXB0dXJlOiEwfSksdGhpcy5fcmVuZGVyKCl9ZGVzdHJveSgpe3RoaXMuX3JlYWN0Um9vdD8udW5tb3VudCgpLHRoaXMuX3dyYXBwZXIucmVtb3ZlRXZlbnRMaXN0ZW5lcigiZGJsY2xpY2siLHRoaXMuX3N0b3BQcm9wYWdhdGlvbiksdGhpcy5fd3JhcHBlci5yZW1vdmVFdmVudExpc3RlbmVyKCJ0b3VjaHN0YXJ0Iix0aGlzLl9zdG9wUHJvcGFnYXRpb24pLHRoaXMuX3dyYXBwZXIucmVtb3ZlKCksdGhpcy5fc2V0TW9kZUZ1bmN0aW9uPW51bGwsdGhpcy5fZ2V0TW9kZUZ1bmN0aW9uPW51bGx9ZWxlbWVudCgpe3JldHVybiB0aGlzLl93cmFwcGVyfXdpZHRoKCl7cmV0dXJuIDUyfXVwZGF0ZSgpe3RoaXMuX3JlbmRlcigpfV9yZW5kZXIoKXtjb25zdCBlPWEuQ2hlY2tNb2JpbGUuYW55KCkse2F1dG9TY2FsZTp0PSExLGxvZzpjPSExfT0oMCxvLmVuc3VyZU5vdE51bGwpKHRoaXMuX2dldE1vZGVGdW5jdGlvbikoKXx8e30scz1uLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpmLnByaWNlU2NhbGVNb2RlQnV0dG9uc30sbi5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6Zi5wcmljZVNjYWxlTW9kZUJ1dHRvbnNfX2J1dHRvbldyYXBwZXIsb25DbGljazplP3RoaXMuX3NldEF1dG9Nb2RlOnZvaWQgMCwiYXJpYS1sYWJlbCI6ZT91LnQobnVsbCx2b2lkIDAscigzNzI3MTkpKTp2b2lkIDB9LG4uY3JlYXRlRWxlbWVudChwLHthY3RpdmF0ZWQ6dCxjb250ZW50OnUudChudWxsLHtjb250ZXh0OidUaGUgZmlyc3QgbGV0dGVyIG9mIHRoZSAiYXV0byIgd29yZCd9LHIoNDk5MzkyKSksdG9vbHRpcDp1LnQobnVsbCx2b2lkIDAscig2MzM3NTIpKSxvbkNsaWNrOmU/dm9pZCAwOnRoaXMuX3NldEF1dG9Nb2RlLGFyaWFMYWJlbDplP3ZvaWQgMDp1LnQobnVsbCx2b2lkIDAscigzNzI3MTkpKSxjbGFzc05hbWU6Zi5wcmljZVNjYWxlTW9kZUJ1dHRvbnNfX2J1dHRvbn0pKSxuLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpmLnByaWNlU2NhbGVNb2RlQnV0dG9uc19fYnV0dG9uV3JhcHBlcixvbkNsaWNrOmU/dGhpcy5fc2V0TG9nYXJpdGhtTW9kZTp2b2lkIDAsImFyaWEtbGFiZWwiOmU/dS50KG51bGwsdm9pZCAwLHIoMjA2NDUxKSk6dm9pZCAwfSxuLmNyZWF0ZUVsZW1lbnQocCx7YWN0aXZhdGVkOmMsY29udGVudDp1LnQobnVsbCx7Y29udGV4dDonVGhlIGZpcnN0IGxldHRlciBvZiB0aGUgImxvZ2FyaXRobWljIiB3b3JkJ30scig0MjAxODYpKSx0b29sdGlwOnUudChudWxsLHZvaWQgMCxyKDUwMzU1OCkpLG9uQ2xpY2s6ZT92b2lkIDA6dGhpcy5fc2V0TG9nYXJpdGhtTW9kZSxhcmlhTGFiZWw6ZT92b2lkIDA6dS50KG51bGwsdm9pZCAwLHIoMjA2NDUxKSksY2xhc3NOYW1lOmYucHJpY2VTY2FsZU1vZGVCdXR0b25zX19idXR0b259KSkpO3RoaXMuX3JlYWN0Um9vdD90aGlzLl9yZWFjdFJvb3QucmVuZGVyKHMpOnRoaXMuX3JlYWN0Um9vdD0oMCxpLmNyZWF0ZVJlYWN0Um9vdCkocyx0aGlzLl93cmFwcGVyLCJtb2Rlcm4iKX1fc3RvcFByb3BhZ2F0aW9uKGUpe2Uuc3RvcFByb3BhZ2F0aW9uKCl9fX19XSk7"}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/39609.8ce0d793b2b60be7a4d5.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.350Z","timestamp":1785148034350,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/39609.8ce0d793b2b60be7a4d5.js HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a608293-3f84\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Wed, 22 Jul 2026 08:42:59 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/22/2026 11:01:21\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: e31e04fb239f447bf7ae2d4bcfbfe80e\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":16260,"size_decoded":6269,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (3070)","md5":"1af372c8d2679eb4b4723ab88e601eef","sha1":"bdd83e7842c5a9012e55084e71cd31fdcd5f72d6","sha256":"7cd30257c9448f2910216296d47b421cb724c4657dd6b6da06196e9b6323451c","sha512":"2cbc64c079104c42314e0475923e68a449456822936c0c290ef608f65e01b8e76a18727eadf52df0f2fc73b20c0b817c4287d1b42ac30ce2cf06eaf5cb25079d","ssdeep":"384:533u26UHCVnsa67bSIVIZjgeWDGu2JL2qlSUOTeEX:peEwnsa67uIVEjHWDGj2QSUAeG","tlshash":"c572c6a5b1a9203a11e78667d1791743f231694db003479cb17e3cee1eae8893369f7c","first_seen":"2026-07-22T17:32:48.037533Z","last_seen":"2026-07-27T12:47:44.714012Z","times_seen":62,"resource_available":true,"data":"KHNlbGYud2VicGFja0NodW5rdHJhZGluZ3ZpZXc9c2VsZi53ZWJwYWNrQ2h1bmt0cmFkaW5ndmlld3x8W10pLnB1c2goW1szOTYwOV0sezQ0ODQxMSh0KXt0LmV4cG9ydHM9e2RpYWxvZzoiZGlhbG9nLUdIVUg2XzFYIixyb3VuZGVkOiJyb3VuZGVkLUdIVUg2XzFYIixzaGFkb3dlZDoic2hhZG93ZWQtR0hVSDZfMVgiLGZ1bGxzY3JlZW46ImZ1bGxzY3JlZW4tR0hVSDZfMVgiLGRhcmtlcjoiZGFya2VyLUdIVUg2XzFYIixiYWNrZHJvcDoiYmFja2Ryb3AtR0hVSDZfMVgifX0sMTc1ODYzKHQpe3QuZXhwb3J0cz17InRhYmxldC1ub3JtYWwtYnJlYWtwb2ludCI6IihtYXgtd2lkdGg6IDc2OHB4KSIsInRvb2x0aXAtb2Zmc2V0IjoiMjBweCIsZGlhbG9nOiJkaWFsb2ctcXlDdzBQYU4iLGRyYWdnaW5nOiJkcmFnZ2luZy1xeUN3MFBhTiIsbW9iaWxlOiJtb2JpbGUtcXlDdzBQYU4iLGZ1bGxzY3JlZW46ImZ1bGxzY3JlZW4tcXlDdzBQYU4iLGRpYWxvZ0FuaW1hdGVkQXBwZWFyYW5jZToiZGlhbG9nQW5pbWF0ZWRBcHBlYXJhbmNlLXF5Q3cwUGFOIixkaWFsb2dBbmltYXRpb246ImRpYWxvZ0FuaW1hdGlvbi1xeUN3MFBhTiIsZGlhbG9nVG9vbHRpcDoiZGlhbG9nVG9vbHRpcC1xeUN3MFBhTiJ9fSw5MjM1MTModCl7dC5leHBvcnRzPXtjb250YWluZXI6ImNvbnRhaW5lci16TFZtNkI0dCIsY29udGVudDoiY29udGVudC16TFZtNkI0dCIsYXJyb3dIb2xkZXI6ImFycm93SG9sZGVyLXpMVm02QjR0IiwiYXJyb3dIb2xkZXItLWJlbG93IjoiYXJyb3dIb2xkZXItLWJlbG93LXpMVm02QjR0IiwiYXJyb3dIb2xkZXItLWFib3ZlIjoiYXJyb3dIb2xkZXItLWFib3ZlLXpMVm02QjR0IiwiYXJyb3dIb2xkZXItLWJlZm9yZSI6ImFycm93SG9sZGVyLS1iZWZvcmUtekxWbTZCNHQiLCJhcnJvd0hvbGRlci0tYWZ0ZXIiOiJhcnJvd0hvbGRlci0tYWZ0ZXItekxWbTZCNHQiLCJhcnJvd0hvbGRlci0tYWJvdmUtZml4IjoiYXJyb3dIb2xkZXItLWFib3ZlLWZpeC16TFZtNkI0dCIsImFycm93SG9sZGVyLS1iZWZvcmUtcnRsLWZpeCI6ImFycm93SG9sZGVyLS1iZWZvcmUtcnRsLWZpeC16TFZtNkI0dCIsImFycm93SG9sZGVyLS1hZnRlci1sdHItZml4IjoiYXJyb3dIb2xkZXItLWFmdGVyLWx0ci1maXgtekxWbTZCNHQiLGxhYmVsOiJsYWJlbC16TFZtNkI0dCIsY2xvc2VCdXR0b246ImNsb3NlQnV0dG9uLXpMVm02QjR0In19LDQ5MDg5Myh0LGUsaSl7InVzZSBzdHJpY3QiO2kuZChlLHtQb3B1cENvbnRleHQ6KCk9Pm99KTtjb25zdCBvPWkoNzc5NDc0KS5jcmVhdGVDb250ZXh0KG51bGwpfSw5OTEwNjYodCxlLGkpeyJ1c2Ugc3RyaWN0IjtpLmQoZSx7RGlhbG9nOigpPT5kfSk7dmFyIG89aSg3Nzk0NzQpLHM9aSg5MTQ0ODcpLG49aS5uKHMpLGE9aSg2MDc4MzIpLHI9aSg5MDM0MiksbD1pKDM0NTExNiksaD1pKDQ0ODQxMSksYz1pLm4oaCk7Y2xhc3MgZCBleHRlbmRzIG8uUHVyZUNvbXBvbmVudHtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5fbWFuYWdlcj1uZXcgci5PdmVybGFwTWFuYWdlcix0aGlzLl9oYW5kbGVTbG90PXQ9Pnt0aGlzLl9tYW5hZ2VyLnNldENvbnRhaW5lcih0KX19cmVuZGVyKCl7Y29uc3R7cm91bmRlZDp0PSEwLHNoYWRvd2VkOmU9ITAsZnVsbHNjcmVlbjppPSExLGRhcmtlcjpzPSExLGNsYXNzTmFtZTpyLGJhY2tkcm9wOmgsY29udGFpbmVyVGFiSW5kZXg6ZD0tMX09dGhpcy5wcm9wcyx1PW4oKShyLGMoKS5kaWFsb2csdCYmYygpLnJvdW5kZWQsZSYmYygpLnNoYWRvd2VkLGkmJmMoKS5mdWxsc2NyZWVuLHMmJmMoKS5kYXJrZXIpLHA9KDAsbC5maWx0ZXJEYXRhUHJvcHMpKHRoaXMucHJvcHMpLGc9dGhpcy5wcm9wcy5zdHlsZT97Li4udGhpcy5fY3JlYXRlU3R5bGVzKCksLi4udGhpcy5wcm9wcy5zdHlsZX06dGhpcy5fY3JlYXRlU3R5bGVzKCk7cmV0dXJuIG8uY3JlYXRlRWxlbWVudChvLkZyYWdtZW50LG51bGwsby5jcmVhdGVFbGVtZW50KGEuU2xvdENvbnRleHQuUHJvdmlkZXIse3ZhbHVlOnRoaXMuX21hbmFnZXJ9LGgmJm8uY3JlYXRlRWxlbWVudCgiZGl2Iix7b25DbGljazp0aGlzLnByb3BzLm9uQ2xpY2tCYWNrZHJvcCxjbGFzc05hbWU6YygpLmJhY2tkcm9wfSksby5jcmVhdGVFbGVtZW50KCJkaXYiLHsuLi5wLGNsYXNzTmFtZTp1LHN0eWxlOmcscmVmOnRoaXMucHJvcHMucmVmZXJlbmNlLG9uRm9jdXM6dGhpcy5wcm9wcy5vbkZvY3VzLG9uTW91c2VEb3duOnRoaXMucHJvcHMub25Nb3VzZURvd24sb25Nb3VzZVVwOnRoaXMucHJvcHMub25Nb3VzZVVwLG9uQ2xpY2s6dGhpcy5wcm9wcy5vbkNsaWNrLG9uS2V5RG93bjp0aGlzLnByb3BzLm9uS2V5RG93bix0YWJJbmRleDpkLCJhcmlhLWxhYmVsIjp0aGlzLnByb3BzLmNvbnRhaW5lckFyaWFMYWJlbH0sdGhpcy5wcm9wcy5jaGlsZHJlbikpLG8uY3JlYXRlRWxlbWVudChhLlNsb3Qse3JlZmVyZW5jZTp0aGlzLl9oYW5kbGVTbG90fSkpfV9jcmVhdGVTdHlsZXMoKXtjb25zdHtib3R0b206dCxsZWZ0OmUsd2lkdGg6aSxyaWdodDpvLHRvcDpzLHpJbmRleDpuLGhlaWdodDphfT10aGlzLnByb3BzO3JldHVybntib3R0b206dCxsZWZ0OmUscmlnaHQ6byx0b3A6cyx6SW5kZXg6bixtYXhXaWR0aDppLGhlaWdodDphfX19fSw5OTU2ODIodCxlLGkpeyJ1c2Ugc3RyaWN0IjtpLmQoZSx7RHJhZ0hhbmRsZXI6KCk9PnN9KTt2YXIgbz1pKDUzMTkyOCk7Y2xhc3Mgc3tjb25zdHJ1Y3Rvcih0LGUsaT17Ym91bmRCeVNjcmVlbjohMH0pe3RoaXMuX2RyYWc9bnVsbCx0aGlzLl9jYW5CZVRvdWNoQ2xpY2s9ITEsdGhpcy5fZnJhbWU9bnVsbCx0aGlzLl9vbk1vdXNlRHJhZ1N0YXJ0PXQ9PntpZigwIT09dC5idXR0b258fHRoaXMuX2lzVGFyZ2V0Tm9EcmFnZ2FibGUodCkpcmV0dXJuO3QucHJldmVudERlZmF1bHQoKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLHRoaXMuX29uTW91c2VEcmFnTW92ZSksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsdGhpcy5fb25Nb3VzZURyYWdFbmQpO2NvbnN0IGU9KDAsby5jbGFtcFBvc2l0aW9uKSgoMCxvLnBvc2l0aW9uRnJvbU1vdXNlRXZlbnQpKHQpKQo7dGhpcy5fZHJhZ1N0YXJ0KGUpfSx0aGlzLl9vblRvdWNoRHJhZ1N0YXJ0PXQ9PntpZih0aGlzLl9pc1RhcmdldE5vRHJhZ2dhYmxlKHQpKXJldHVybjt0aGlzLl9jYW5CZVRvdWNoQ2xpY2s9ITAsdC5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuX2hlYWRlci5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaG1vdmUiLHRoaXMuX29uVG91Y2hEcmFnTW92ZSx7cGFzc2l2ZTohMX0pO2NvbnN0IGU9KDAsby5jbGFtcFBvc2l0aW9uKSgoMCxvLnBvc2l0aW9uRnJvbVRvdWNoRXZlbnQpKHQpKTt0aGlzLl9kcmFnU3RhcnQoZSl9LHRoaXMuX29uTW91c2VEcmFnRW5kPXQ9Pnt0LnRhcmdldCBpbnN0YW5jZW9mIE5vZGUmJnRoaXMuX2hlYWRlci5jb250YWlucyh0LnRhcmdldCkmJnQucHJldmVudERlZmF1bHQoKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLHRoaXMuX29uTW91c2VEcmFnTW92ZSksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsdGhpcy5fb25Nb3VzZURyYWdFbmQpLHRoaXMuX29uRHJhZ1N0b3AoKX0sdGhpcy5fb25Ub3VjaERyYWdFbmQ9dD0+e3RoaXMuX2hlYWRlci5yZW1vdmVFdmVudExpc3RlbmVyKCJ0b3VjaG1vdmUiLHRoaXMuX29uVG91Y2hEcmFnTW92ZSksdGhpcy5fb25EcmFnU3RvcCgpLHRoaXMuX2NhbkJlVG91Y2hDbGljayYmKHRoaXMuX2NhbkJlVG91Y2hDbGljaz0hMSwoMCxvLnNpbXVsYXRlQ2xpY2spKHQudGFyZ2V0KSl9LHRoaXMuX29uTW91c2VEcmFnTW92ZT10PT57Y29uc3QgZT0oMCxvLmNsYW1wUG9zaXRpb24pKCgwLG8ucG9zaXRpb25Gcm9tTW91c2VFdmVudCkodCkpO3RoaXMuX2RyYWdNb3ZlKGUpfSx0aGlzLl9vblRvdWNoRHJhZ01vdmU9dD0+e3RoaXMuX2NhbkJlVG91Y2hDbGljaz0hMSx0LnByZXZlbnREZWZhdWx0KCk7Y29uc3QgZT0oMCxvLmNsYW1wUG9zaXRpb24pKCgwLG8ucG9zaXRpb25Gcm9tVG91Y2hFdmVudCkodCkpO3RoaXMuX2RyYWdNb3ZlKGUpfSx0aGlzLl9vbkRyYWdTdG9wPSgpPT57dGhpcy5fZHJhZz1udWxsLHRoaXMuX2hlYWRlci5jbGFzc0xpc3QucmVtb3ZlKCJkcmFnZ2luZyIpLHRoaXMuX29wdGlvbnMub25EcmFnRW5kJiZ0aGlzLl9vcHRpb25zLm9uRHJhZ0VuZCgpfSx0aGlzLl9kaWFsb2c9dCx0aGlzLl9oZWFkZXI9ZSx0aGlzLl9vcHRpb25zPWksdGhpcy5faGVhZGVyLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsdGhpcy5fb25Nb3VzZURyYWdTdGFydCksdGhpcy5faGVhZGVyLmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoc3RhcnQiLHRoaXMuX29uVG91Y2hEcmFnU3RhcnQpLHRoaXMuX2hlYWRlci5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaGVuZCIsdGhpcy5fb25Ub3VjaERyYWdFbmQpfWRlc3Ryb3koKXtudWxsIT09dGhpcy5fZnJhbWUmJmNhbmNlbEFuaW1hdGlvbkZyYW1lKHRoaXMuX2ZyYW1lKSx0aGlzLl9oZWFkZXIucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2Vkb3duIix0aGlzLl9vbk1vdXNlRHJhZ1N0YXJ0KSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZXVwIix0aGlzLl9vbk1vdXNlRHJhZ0VuZCksdGhpcy5faGVhZGVyLnJlbW92ZUV2ZW50TGlzdGVuZXIoInRvdWNoc3RhcnQiLHRoaXMuX29uVG91Y2hEcmFnU3RhcnQpLHRoaXMuX2hlYWRlci5yZW1vdmVFdmVudExpc3RlbmVyKCJ0b3VjaGVuZCIsdGhpcy5fb25Ub3VjaERyYWdFbmQpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlbGVhdmUiLHRoaXMuX29uTW91c2VEcmFnRW5kKX11cGRhdGVPcHRpb25zKHQpe3RoaXMuX29wdGlvbnM9dH1fZHJhZ1N0YXJ0KHQpe2NvbnN0IGU9dGhpcy5fZGlhbG9nLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3RoaXMuX2RyYWc9e3N0YXJ0WDp0Lngsc3RhcnRZOnQueSxmaW5pc2hYOnQueCxmaW5pc2hZOnQueSxkaWFsb2dYOmUubGVmdCxkaWFsb2dZOmUudG9wfTtjb25zdCBpPU1hdGgucm91bmQoZS5sZWZ0KSxvPU1hdGgucm91bmQoZS50b3ApO3RoaXMuX2RpYWxvZy5zdHlsZS50cmFuc2Zvcm09YHRyYW5zbGF0ZSgke2l9cHgsICR7b31weClgLHRoaXMuX2hlYWRlci5jbGFzc0xpc3QuYWRkKCJkcmFnZ2luZyIpLHRoaXMuX29wdGlvbnMub25EcmFnU3RhcnQmJnRoaXMuX29wdGlvbnMub25EcmFnU3RhcnQoKX1fZHJhZ01vdmUodCl7aWYodGhpcy5fZHJhZyl7aWYodGhpcy5fZHJhZy5maW5pc2hYPXQueCx0aGlzLl9kcmFnLmZpbmlzaFk9dC55LG51bGwhPT10aGlzLl9mcmFtZSlyZXR1cm47dGhpcy5fZnJhbWU9cmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgoKT0+e2lmKHRoaXMuX2RyYWcpe2NvbnN0IGU9dC54LXRoaXMuX2RyYWcuc3RhcnRYLGk9dC55LXRoaXMuX2RyYWcuc3RhcnRZO3RoaXMuX21vdmVEaWFsb2codGhpcy5fZHJhZy5kaWFsb2dYK2UsdGhpcy5fZHJhZy5kaWFsb2dZK2kpfXRoaXMuX2ZyYW1lPW51bGx9KSl9fV9tb3ZlRGlhbG9nKHQsZSl7Y29uc3QgaT10aGlzLl9kaWFsb2cuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkse2JvdW5kQnlTY3JlZW46c309dGhpcy5fb3B0aW9ucyxuPSgwLG8uY2xhbXBTZWdtZW50KSh0LGkud2lkdGgscz8wOi0xLzAscz93aW5kb3cuaW5uZXJXaWR0aDoxLzApLGE9KDAsby5jbGFtcFNlZ21lbnQpKGUsaS5oZWlnaHQscz8wOi0xLzAscz93aW5kb3cuaW5uZXJIZWlnaHQ6MS8wKTt0aGlzLl9kaWFsb2cuc3R5bGUudHJhbnNmb3JtPWB0cmFuc2xhdGUoJHtNYXRoLnJvdW5kKG4pfXB4LCAke01hdGgucm91bmQoYSl9cHgpYH1faXNUYXJnZXROb0RyYWdnYWJsZSh0KXtyZXR1cm4gdC50YXJnZXQgaW5zdGFuY2VvZiBFbGVtZW50JiZudWxsIT09dC50YXJnZXQuY2xvc2VzdCgiW2RhdGEtZGlzYWJsZS1kcmFnXSIpfX19LDU4NTgyMSh0LGUsaSl7InVzZSBzdHJpY3QiO2kuZChlLHtQb3B1cERpYWxvZzooKT0+Rn0pO3ZhciBvPWkoNzc5NDc0KSxzPWkoOTE0NDg3KSxuPWkubihzKSxhPWkoMTM4NjM4KSxyPWkoOTkxMDY2KSxsPWkoNzE4NTUzKSxoPWkoOTMwMjMxKSxjPWkoNjU5ODc4KSxkPWkoOTk1NjgyKSx1PWkoNTMxOTI4KTtjb25zdCBwPXt2ZXJ0aWNhbDowfTtjbGFzcyBne2NvbnN0cnVjdG9yKHQsZSl7CnRoaXMuX2ZyYW1lPW51bGwsdGhpcy5faXNGdWxsc2NyZWVuPSExLHRoaXMuX2hhbmRsZVJlc2l6ZT0oKT0+e251bGw9PT10aGlzLl9mcmFtZSYmKHRoaXMuX2ZyYW1lPXJlcXVlc3RBbmltYXRpb25GcmFtZSgoKCk9Pnt0aGlzLnJlY2FsY3VsYXRlQm91bmRzKCksdGhpcy5fZnJhbWU9bnVsbH0pKSl9LHRoaXMuX2RpYWxvZz10LHRoaXMuX2d1YXJkPWUuZ3VhcmR8fHAsdGhpcy5fY2FsY3VsYXRlRGlhbG9nUG9zaXRpb249ZS5jYWxjdWxhdGVEaWFsb2dQb3NpdGlvbix0aGlzLl9pbml0aWFsSGVpZ2h0PXQuc3R5bGUuaGVpZ2h0LHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJyZXNpemUiLHRoaXMuX2hhbmRsZVJlc2l6ZSl9dXBkYXRlT3B0aW9ucyh0KXt0aGlzLl9ndWFyZD10Lmd1YXJkfHxwLHRoaXMuX2NhbGN1bGF0ZURpYWxvZ1Bvc2l0aW9uPXQuY2FsY3VsYXRlRGlhbG9nUG9zaXRpb259c2V0RnVsbHNjcmVlbih0KXt0aGlzLl9pc0Z1bGxzY3JlZW4hPT10JiYodGhpcy5faXNGdWxsc2NyZWVuPXQsdGhpcy5yZWNhbGN1bGF0ZUJvdW5kcygpKX1jZW50ZXJBbmRGaXQoKXtjb25zdHt4OnQseTplfT10aGlzLmdldERpYWxvZ3NUb3BMZWZ0Q29vcmRpbmF0ZXMoKSxpPXRoaXMuX2NhbGNBdmFpbGFibGVIZWlnaHQoKSxvPXRoaXMuX2NhbGNEaWFsb2dIZWlnaHQoKTtpZihpPT09bylpZih0aGlzLl9jYWxjdWxhdGVEaWFsb2dQb3NpdGlvbil7Y29uc3R7bGVmdDp0LHRvcDplfT10aGlzLl9jYWxjdWxhdGVEaWFsb2dQb3NpdGlvbih0aGlzLl9kaWFsb2csZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LHRoaXMuX2d1YXJkKTt0aGlzLl9kaWFsb2cuc3R5bGUudHJhbnNmb3JtPWB0cmFuc2xhdGUoJHtNYXRoLnJvdW5kKHQpfXB4LCAke01hdGgucm91bmQoZSl9cHgpYH1lbHNlIHRoaXMuX2RpYWxvZy5zdHlsZS5oZWlnaHQ9bysicHgiO3RoaXMuX2RpYWxvZy5zdHlsZS50b3A9IjBweCIsdGhpcy5fZGlhbG9nLnN0eWxlLmxlZnQ9IjBweCIsdGhpcy5fZGlhbG9nLnN0eWxlLnRyYW5zZm9ybT1gdHJhbnNsYXRlKCR7dH1weCwgJHtlfXB4KWB9Z2V0RGlhbG9nc1RvcExlZnRDb29yZGluYXRlcygpe2NvbnN0e2NsaWVudFdpZHRoOnQsY2xpZW50SGVpZ2h0OmV9PXRoaXMuX2dldENsaWVudERpbWVuc2lvbnMoKSxpPXRoaXMuX2NhbGNEaWFsb2dIZWlnaHQoKSxvPXQvMi10aGlzLl9kaWFsb2cuY2xpZW50V2lkdGgvMixzPWUvMi1pLzIrdGhpcy5fZ2V0VG9wT2Zmc2V0KCk7cmV0dXJue3g6TWF0aC5yb3VuZChvKSx5Ok1hdGgucm91bmQocyl9fXJlY2FsY3VsYXRlQm91bmRzKCl7Y29uc3R7Y2xpZW50V2lkdGg6dCxjbGllbnRIZWlnaHQ6ZX09dGhpcy5fZ2V0Q2xpZW50RGltZW5zaW9ucygpLHt2ZXJ0aWNhbDppfT10aGlzLl9ndWFyZCxvPXRoaXMuX2NhbGN1bGF0ZURpYWxvZ1Bvc2l0aW9uPy4odGhpcy5fZGlhbG9nLHtjbGllbnRXaWR0aDp0LGNsaWVudEhlaWdodDplfSx7dmVydGljYWw6aX0pO2lmKHRoaXMuX2lzRnVsbHNjcmVlbil7aWYodGhpcy5fZGlhbG9nLnN0eWxlLnRvcD0iMHB4Iix0aGlzLl9kaWFsb2cuc3R5bGUubGVmdD0iMHB4Iix0aGlzLl9kaWFsb2cuc3R5bGUud2lkdGg9IjEwMCUiLHRoaXMuX2RpYWxvZy5zdHlsZS5oZWlnaHQ9IjEwMCUiLHRoaXMuX2RpYWxvZy5zdHlsZS50cmFuc2Zvcm09Im5vbmUiLG8pe2NvbnN0e2xlZnQ6dCx0b3A6ZSx3aWR0aDppLGhlaWdodDpzfT1vO3RoaXMuX2RpYWxvZy5zdHlsZS50cmFuc2Zvcm09YHRyYW5zbGF0ZSgke01hdGgucm91bmQodCl9cHgsICR7TWF0aC5yb3VuZChlKX1weClgLGkmJih0aGlzLl9kaWFsb2cuc3R5bGUud2lkdGg9YCR7aX1weGAsdGhpcy5fZGlhbG9nLnN0eWxlLm1pbldpZHRoPSJ1bnNldCIpLHMmJih0aGlzLl9kaWFsb2cuc3R5bGUuaGVpZ2h0PWAke3N9cHhgLHRoaXMuX2RpYWxvZy5zdHlsZS5taW5IZWlnaHQ9InVuc2V0Iil9fWVsc2UgaWYobyl7Y29uc3R7bGVmdDp0LHRvcDplfT1vO3RoaXMuX2RpYWxvZy5zdHlsZS50cmFuc2Zvcm09YHRyYW5zbGF0ZSgke01hdGgucm91bmQodCl9cHgsICR7TWF0aC5yb3VuZChlKX1weClgfWVsc2V7dGhpcy5fZGlhbG9nLnN0eWxlLndpZHRoPSIiLHRoaXMuX2RpYWxvZy5zdHlsZS5oZWlnaHQ9IiI7Y29uc3Qgbz10aGlzLl9kaWFsb2cuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkscz1lLTIqaSxuPSgwLHUuY2xhbXBTZWdtZW50KShvLmxlZnQsby53aWR0aCwwLHQpLGE9KDAsdS5jbGFtcFNlZ21lbnQpKG8udG9wLG8uaGVpZ2h0LGksZSk7dGhpcy5fZGlhbG9nLnN0eWxlLnRvcD0iMHB4Iix0aGlzLl9kaWFsb2cuc3R5bGUubGVmdD0iMHB4Iix0aGlzLl9kaWFsb2cuc3R5bGUudHJhbnNmb3JtPWB0cmFuc2xhdGUoJHtNYXRoLnJvdW5kKG4pfXB4LCAke01hdGgucm91bmQoYSl9cHgpYCx0aGlzLl9kaWFsb2cuc3R5bGUuaGVpZ2h0PXM8by5oZWlnaHQ/cysicHgiOnRoaXMuX2luaXRpYWxIZWlnaHR9fWRlc3Ryb3koKXt3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigicmVzaXplIix0aGlzLl9oYW5kbGVSZXNpemUpLG51bGwhPT10aGlzLl9mcmFtZSYmKGNhbmNlbEFuaW1hdGlvbkZyYW1lKHRoaXMuX2ZyYW1lKSx0aGlzLl9mcmFtZT1udWxsKX1fZ2V0Q2xpZW50RGltZW5zaW9ucygpe3JldHVybntjbGllbnRIZWlnaHQ6ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodCxjbGllbnRXaWR0aDpkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50V2lkdGh9fV9nZXRUb3BPZmZzZXQoKXtyZXR1cm4gMH1fY2FsY0RpYWxvZ0hlaWdodCgpe2NvbnN0IHQ9dGhpcy5fY2FsY0F2YWlsYWJsZUhlaWdodCgpO3JldHVybiB0PHRoaXMuX2RpYWxvZy5jbGllbnRIZWlnaHQ/dDp0aGlzLl9kaWFsb2cuY2xpZW50SGVpZ2h0fV9jYWxjQXZhaWxhYmxlSGVpZ2h0KCl7cmV0dXJuIHRoaXMuX2dldENsaWVudERpbWVuc2lvbnMoKS5jbGllbnRIZWlnaHQtMip0aGlzLl9ndWFyZC52ZXJ0aWNhbH19dmFyIF89aSg1ODU0OCksbT1pKDQ5MDg5MyksZj1pKDg3MjUxOCksdj1pKDMzMjY2MCksRD1pKDExNzMxMykseT1pKDMzNzM2Mik7dmFyIEU9aSg2OTIyNjYpLHg9aSgxNDc5MDEpLHc9aSgxNzU4NjMpCjtjb25zdCBiPXdbInRvb2x0aXAtb2Zmc2V0Il0sVD0oMCxoLmlzRmVhdHVyZXNldEVuYWJsZWQpKCJlbWJlZF9yZXNpemVyX292ZXJyaWRlcyIpP2NsYXNzIGV4dGVuZHMgZ3tjb25zdHJ1Y3Rvcih0LGUpe3N1cGVyKHQsZSksdGhpcy5fZW5hYmxlZD0oMCxoLmlzRmVhdHVyZXNldEVuYWJsZWQpKCJlbWJlZF9yZXNpemVyX292ZXJyaWRlcyIpfV9nZXRDbGllbnREaW1lbnNpb25zKCl7Y29uc3QgdD1zdXBlci5fZ2V0Q2xpZW50RGltZW5zaW9ucygpO2lmKHRoaXMuX2VuYWJsZWQpe2NvbnN0IGU9eS5FbWJlZFZpZXdwb3J0RGltZW5zaW9uc1Byb3ZpZGVyLmdldEluc3RhbmNlKCkuZGF0YSgpO2UmJih0LmNsaWVudEhlaWdodD1lLmhlaWdodCl9cmV0dXJuIHR9X2dldFRvcE9mZnNldCgpe2lmKHRoaXMuX2VuYWJsZWQpe2NvbnN0IHQ9eS5FbWJlZFZpZXdwb3J0RGltZW5zaW9uc1Byb3ZpZGVyLmdldEluc3RhbmNlKCkuZGF0YSgpO2lmKHQpcmV0dXJuIHQudG9wfXJldHVybiBzdXBlci5fZ2V0VG9wT2Zmc2V0KCl9fTpnO2NsYXNzIFMgZXh0ZW5kcyBvLlB1cmVDb21wb25lbnR7Y29uc3RydWN0b3IodCl7c3VwZXIodCksdGhpcy5fZGlhbG9nPW51bGwsdGhpcy5fY2xlYW5VcEZ1bmN0aW9ucz1bXSx0aGlzLl9wcmV2QWN0aXZlRWxlbWVudD1udWxsLHRoaXMuX2V2ZW50RGlzcGF0Y2hlcj1uZXcgdi5EaWFsb2dFdmVudERpc3BhdGNoZXIsdGhpcy5faGFuZGxlRGlhbG9nUmVmPXQ9Pntjb25zdHtyZWZlcmVuY2U6ZX09dGhpcy5wcm9wczt0aGlzLl9kaWFsb2c9dCwiZnVuY3Rpb24iPT10eXBlb2YgZT9lKHQpOm51bGwhPWUmJihlLmN1cnJlbnQ9dCl9LHRoaXMuX2hhbmRsZUZvY3VzPSgpPT57dGhpcy5fbW92ZVRvVG9wKCl9LHRoaXMuX2hhbmRsZU1vdXNlRG93bj10PT57dGhpcy5fbW92ZVRvVG9wKCl9LHRoaXMuX2hhbmRsZVRvdWNoU3RhcnQ9dD0+e3RoaXMuX21vdmVUb1RvcCgpfSx0aGlzLnN0YXRlPXtjYW5GaXRUb29sdGlwOiExfSx0aGlzLl9wcmV2QWN0aXZlRWxlbWVudD1kb2N1bWVudC5hY3RpdmVFbGVtZW50fXJlbmRlcigpe3JldHVybiBvLmNyZWF0ZUVsZW1lbnQobS5Qb3B1cENvbnRleHQuUHJvdmlkZXIse3ZhbHVlOnRoaXN9LG8uY3JlYXRlRWxlbWVudChsLk91dHNpZGVFdmVudCx7bW91c2VEb3duOiEwLHRvdWNoU3RhcnQ6ITAsaGFuZGxlcjp0aGlzLnByb3BzLm9uQ2xpY2tPdXRzaWRlfSwodD0+by5jcmVhdGVFbGVtZW50KCJkaXYiLHtyZWY6dCwiZGF0YS1vdXRzaWRlLWJvdW5kYXJ5LWZvciI6dGhpcy5wcm9wcy5uYW1lLG9uRm9jdXM6dGhpcy5faGFuZGxlRm9jdXMsb25Nb3VzZURvd246dGhpcy5faGFuZGxlTW91c2VEb3duLG9uVG91Y2hTdGFydDp0aGlzLl9oYW5kbGVUb3VjaFN0YXJ0LCJkYXRhLWRpYWxvZy1uYW1lIjp0aGlzLnByb3BzWyJkYXRhLWRpYWxvZy1uYW1lIl0sImRhdGEtdG9vbHRpcC1zaG93LW9uLWZvY3VzIjoidHJ1ZSIsImRhdGEtcWEtaWQiOigwLHguZGF0YVFhSWRzKSgidWktbGliLVBvcHVwRGlhbG9nIix0aGlzLnByb3BzLmRhdGFRYUlkKX0sby5jcmVhdGVFbGVtZW50KHIuRGlhbG9nLHtzdHlsZTp0aGlzLl9hcHBseUFuaW1hdGlvbkNTU1ZhcmlhYmxlcygpLC4uLnRoaXMucHJvcHMscmVmZXJlbmNlOnRoaXMuX2hhbmRsZURpYWxvZ1JlZixjbGFzc05hbWU6bigpKHcuZGlhbG9nLCgwLEQuaXNPbk1vYmlsZUFwcFBhZ2UpKCJhbnkiKSYmIXRoaXMucHJvcHMubm9Nb2JpbGVBcHBTaGFkb3dzJiZ3Lm1vYmlsZSx0aGlzLnByb3BzLmZ1bGxzY3JlZW4mJncuZnVsbHNjcmVlbix0aGlzLnByb3BzLmNsYXNzTmFtZSl9LHRoaXMucHJvcHMuZGlhbG9nVG9vbHRpcCYmdGhpcy5zdGF0ZS5jYW5GaXRUb29sdGlwJiZvLmNyZWF0ZUVsZW1lbnQoRS5Ub29sdGlwV2lkZ2V0LHtjbGFzc05hbWU6dy5kaWFsb2dUb29sdGlwfSx0aGlzLnByb3BzLmRpYWxvZ1Rvb2x0aXApLHRoaXMucHJvcHMuY2hpbGRyZW4pKSkpKX1jb21wb25lbnREaWRNb3VudCgpe2NvbnN0e2RyYWdnYWJsZTp0LGJvdW5kQnlTY3JlZW46ZSxvbkRyYWdTdGFydDppfT10aGlzLnByb3BzLG89KDAsYS5lbnN1cmVOb3ROdWxsKSh0aGlzLl9kaWFsb2cpO2lmKHRoaXMuX2V2ZW50RGlzcGF0Y2hlci5kaXNwYXRjaCgiZGlhbG9nLW9wZW4iKSx0KXtjb25zdCB0PW8ucXVlcnlTZWxlY3RvcigiW2RhdGEtZHJhZ2ctYXJlYV0iKTtpZih0JiZ0IGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpe2NvbnN0IHM9bmV3IGQuRHJhZ0hhbmRsZXIobyx0LHtib3VuZEJ5U2NyZWVuOkJvb2xlYW4oZSksb25EcmFnU3RhcnQ6aX0pO3RoaXMuX2NsZWFuVXBGdW5jdGlvbnMucHVzaCgoKCk9PnMuZGVzdHJveSgpKSksdGhpcy5fZHJhZz1zfX10aGlzLnByb3BzLmF1dG9mb2N1cyYmIW8uY29udGFpbnMoZG9jdW1lbnQuYWN0aXZlRWxlbWVudCkmJm8uZm9jdXMoKSwodGhpcy5faXNGdWxsU2NyZWVuKCl8fHRoaXMucHJvcHMuZml4ZWRCb2R5KSYmKDAsZi5zZXRGaXhlZEJvZHlTdGF0ZSkoITApO2NvbnN0e2d1YXJkOnMsY2FsY3VsYXRlRGlhbG9nUG9zaXRpb246bn09dGhpcy5wcm9wcztpZih0aGlzLnByb3BzLnJlc2l6ZUhhbmRsZXIpdGhpcy5fcmVzaXplPXRoaXMucHJvcHMucmVzaXplSGFuZGxlcjtlbHNle2NvbnN0IHQ9bmV3IFQobyx7Z3VhcmQ6cyxjYWxjdWxhdGVEaWFsb2dQb3NpdGlvbjpufSk7dGhpcy5fY2xlYW5VcEZ1bmN0aW9ucy5wdXNoKCgoKT0+dC5kZXN0cm95KCkpKSx0aGlzLl9yZXNpemU9dH1pZih0aGlzLl9pc0Z1bGxTY3JlZW4oKSYmdGhpcy5fZXZlbnREaXNwYXRjaGVyLmRpc3BhdGNoKCJkaWFsb2ctZnVsbHNjcmVlbi1vbiIpLHRoaXMucHJvcHMuaXNBbmltYXRpb25FbmFibGVkJiZ0aGlzLnByb3BzLmdyb3dQb2ludCYmdGhpcy5fYXBwbHlBcHBlYXJhbmNlQW5pbWF0aW9uKHRoaXMucHJvcHMuZ3Jvd1BvaW50KSx0aGlzLnByb3BzLmNlbnRlcmVkT25Nb3VudCYmdGhpcy5fcmVzaXplLmNlbnRlckFuZEZpdCgpLHRoaXMuX3Jlc2l6ZS5zZXRGdWxsc2NyZWVuKHRoaXMuX2lzRnVsbFNjcmVlbigpKSx0aGlzLnByb3BzLmRpYWxvZ1Rvb2x0aXAmJnRoaXMuX2hhbmRsZVRvb2x0aXBGaXQoKSwKdGhpcy5wcm9wcy5zaG91bGRGb3JjZUZvY3VzKXtpZih0aGlzLnByb3BzLm9uRm9yY2VGb2N1cylyZXR1cm4gdm9pZCB0aGlzLnByb3BzLm9uRm9yY2VGb2N1cyhvKTtvLmZvY3VzKCl9aWYoIW8uY29udGFpbnMoZG9jdW1lbnQuYWN0aXZlRWxlbWVudCkpe2NvbnN0IHQ9KDAsdS5maW5kRGVmYXVsdEZvY3VzYWJsZUVsZW1lbnQpKG8pO3QgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCYmdC5mb2N1cygpfX1jb21wb25lbnREaWRVcGRhdGUodCl7Y29uc3QgZT10LmZ1bGxzY3JlZW47aWYodGhpcy5fcmVzaXplKXtjb25zdHtndWFyZDp0LGNhbGN1bGF0ZURpYWxvZ1Bvc2l0aW9uOmV9PXRoaXMucHJvcHM7dGhpcy5fcmVzaXplLnVwZGF0ZU9wdGlvbnMoe2d1YXJkOnQsY2FsY3VsYXRlRGlhbG9nUG9zaXRpb246ZX0pLHRoaXMuX3Jlc2l6ZS5zZXRGdWxsc2NyZWVuKHRoaXMuX2lzRnVsbFNjcmVlbigpKX1pZih0aGlzLl9kcmFnJiZ0aGlzLl9kcmFnLnVwZGF0ZU9wdGlvbnMoe2JvdW5kQnlTY3JlZW46Qm9vbGVhbih0aGlzLnByb3BzLmJvdW5kQnlTY3JlZW4pLG9uRHJhZ1N0YXJ0OnRoaXMucHJvcHMub25EcmFnU3RhcnR9KSx0LmZ1bGxzY3JlZW4hPT10aGlzLnByb3BzLmZ1bGxzY3JlZW4pe2NvbnN0IHQ9dGhpcy5wcm9wcy5mdWxsc2NyZWVuO3QmJiFlP3RoaXMuX2V2ZW50RGlzcGF0Y2hlci5kaXNwYXRjaCgiZGlhbG9nLWZ1bGxzY3JlZW4tb24iKTohdCYmZSYmdGhpcy5fZXZlbnREaXNwYXRjaGVyLmRpc3BhdGNoKCJkaWFsb2ctZnVsbHNjcmVlbi1vZmYiKX19Y29tcG9uZW50V2lsbFVubW91bnQoKXtpZih0aGlzLnByb3BzLnNob3VsZFJldHVybkZvY3VzJiZ0aGlzLl9wcmV2QWN0aXZlRWxlbWVudCYmZG9jdW1lbnQuYm9keS5jb250YWlucyh0aGlzLl9wcmV2QWN0aXZlRWxlbWVudCkmJihudWxsPT09ZG9jdW1lbnQuYWN0aXZlRWxlbWVudHx8ZG9jdW1lbnQuYWN0aXZlRWxlbWVudD09PWRvY3VtZW50LmJvZHl8fHRoaXMuX2RpYWxvZz8uY29udGFpbnMoZG9jdW1lbnQuYWN0aXZlRWxlbWVudCkpKXRyeXtzZXRUaW1lb3V0KCgoKT0+e3RoaXMuX3ByZXZBY3RpdmVFbGVtZW50LmZvY3VzKHtwcmV2ZW50U2Nyb2xsOiEwfSl9KSl9Y2F0Y2h7fWZvcihjb25zdCB0IG9mIHRoaXMuX2NsZWFuVXBGdW5jdGlvbnMpdCgpOyh0aGlzLl9pc0Z1bGxTY3JlZW4oKXx8dGhpcy5wcm9wcy5maXhlZEJvZHkpJiYoMCxmLnNldEZpeGVkQm9keVN0YXRlKSghMSksdGhpcy5faXNGdWxsU2NyZWVuKCkmJnRoaXMuX2V2ZW50RGlzcGF0Y2hlci5kaXNwYXRjaCgiZGlhbG9nLWZ1bGxzY3JlZW4tb2ZmIiksdGhpcy5fZXZlbnREaXNwYXRjaGVyLmRpc3BhdGNoKCJkaWFsb2ctY2xvc2UiKX1mb2N1cygpe3RoaXMuX2RpYWxvZyYmdGhpcy5fZGlhbG9nLmZvY3VzKCl9Y2VudGVyQW5kRml0KCl7dGhpcy5fcmVzaXplJiZ0aGlzLl9yZXNpemUuY2VudGVyQW5kRml0KCl9cmVjYWxjdWxhdGVCb3VuZHMoKXt0aGlzLl9yZXNpemUmJnRoaXMuX3Jlc2l6ZS5yZWNhbGN1bGF0ZUJvdW5kcygpfV9tb3ZlVG9Ub3AoKXt0aGlzLnByb3BzLmlzWkluZGV4Rml4ZWR8fG51bGwhPT10aGlzLmNvbnRleHQmJnRoaXMuY29udGV4dC5tb3ZlVG9Ub3AoKX1fYXBwbHlBbmltYXRpb25DU1NWYXJpYWJsZXMoKXtyZXR1cm57Ii0tYW5pbWF0aW9uVHJhbnNsYXRlU3RhcnRYIjpudWxsLCItLWFuaW1hdGlvblRyYW5zbGF0ZVN0YXJ0WSI6bnVsbCwiLS1hbmltYXRpb25UcmFuc2xhdGVFbmRYIjpudWxsLCItLWFuaW1hdGlvblRyYW5zbGF0ZUVuZFkiOm51bGx9fV9hcHBseUFwcGVhcmFuY2VBbmltYXRpb24odCl7aWYodGhpcy5fcmVzaXplJiZ0aGlzLl9kaWFsb2cpe2NvbnN0e3g6ZSx5Oml9PXQse3g6byx5OnN9PXRoaXMuX3Jlc2l6ZS5nZXREaWFsb2dzVG9wTGVmdENvb3JkaW5hdGVzKCk7dGhpcy5fZGlhbG9nLnN0eWxlLnNldFByb3BlcnR5KCItLWFuaW1hdGlvblRyYW5zbGF0ZVN0YXJ0WCIsYCR7ZX1weGApLHRoaXMuX2RpYWxvZy5zdHlsZS5zZXRQcm9wZXJ0eSgiLS1hbmltYXRpb25UcmFuc2xhdGVTdGFydFkiLGAke2l9cHhgKSx0aGlzLl9kaWFsb2cuc3R5bGUuc2V0UHJvcGVydHkoIi0tYW5pbWF0aW9uVHJhbnNsYXRlRW5kWCIsYCR7b31weGApLHRoaXMuX2RpYWxvZy5zdHlsZS5zZXRQcm9wZXJ0eSgiLS1hbmltYXRpb25UcmFuc2xhdGVFbmRZIixgJHtzfXB4YCksdGhpcy5fZGlhbG9nLmNsYXNzTGlzdC5hZGQody5kaWFsb2dBbmltYXRlZEFwcGVhcmFuY2UpfX1faGFuZGxlVG9vbHRpcEZpdCgpe2lmKHRoaXMuX3Jlc2l6ZSl7Y29uc3QgdD10aGlzLl9yZXNpemUuZ2V0RGlhbG9nc1RvcExlZnRDb29yZGluYXRlcygpLnktcGFyc2VJbnQoYik+PTA7dGhpcy5zZXRTdGF0ZSh7Y2FuRml0VG9vbHRpcDp0fSl9fV9pc0Z1bGxTY3JlZW4oKXtyZXR1cm4gQm9vbGVhbih0aGlzLnByb3BzLmZ1bGxzY3JlZW4pfX1TLmNvbnRleHRUeXBlPV8uUG9ydGFsQ29udGV4dCxTLmRlZmF1bHRQcm9wcz17Ym91bmRCeVNjcmVlbjohMCxkcmFnZ2FibGU6ITAsY2VudGVyZWRPbk1vdW50OiEwLHNob3VsZFJldHVybkZvY3VzOiEwfTtjb25zdCBGPSgwLGMubWFrZU92ZXJsYXBhYmxlKShTLCEwKX0sNTMxOTI4KHQsZSxpKXsidXNlIHN0cmljdCI7aS5kKGUse2NsYW1wUG9zaXRpb246KCk9PnIsY2xhbXBTZWdtZW50OigpPT5hLGZpbmREZWZhdWx0Rm9jdXNhYmxlRWxlbWVudDooKT0+ZCxwb3NpdGlvbkZyb21Nb3VzZUV2ZW50OigpPT5oLHBvc2l0aW9uRnJvbVRvdWNoRXZlbnQ6KCk9PmMsc2ltdWxhdGVDbGljazooKT0+bH0pO3ZhciBvLHM9aSg2NDA3NDQpLG49aSg2ODIzODEpO2Z1bmN0aW9uIGEodCxlLGksbyl7cmV0dXJuIHQrZT5vJiYodD1vLWUpLHQ8aSYmKHQ9aSksdH1mdW5jdGlvbiByKHQpe3JldHVybnt4OigwLHMuY2xhbXApKHQueCwyMCxkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50V2lkdGgtMjApLHk6KDAscy5jbGFtcCkodC55LDIwLHdpbmRvdy5pbm5lckhlaWdodC0yMCl9fWZ1bmN0aW9uIGwodCl7aWYodCBpbnN0YW5jZW9mIFNWR0VsZW1lbnQpe2NvbnN0IGU9ZG9jdW1lbnQuY3JlYXRlRXZlbnQoIlNWR0V2ZW50cyIpCjtlLmluaXRFdmVudCgiY2xpY2siLCEwLCEwKSx0LmRpc3BhdGNoRXZlbnQoZSl9dCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50JiZ0LmNsaWNrKCl9ZnVuY3Rpb24gaCh0KXtyZXR1cm57eDp0LmNsaWVudFgseTp0LmNsaWVudFl9fWZ1bmN0aW9uIGModCl7cmV0dXJue3g6dC50b3VjaGVzWzBdLmNsaWVudFgseTp0LnRvdWNoZXNbMF0uY2xpZW50WX19ZnVuY3Rpb24gZCh0KXtjb25zdCBlPXQucXVlcnlTZWxlY3RvcigiW2F1dG9mb2N1c106bm90KFtkaXNhYmxlZF0pIik7aWYoZSlyZXR1cm4gZTtpZih0LnRhYkluZGV4Pj0wKXJldHVybiB0O2NvbnN0IGk9KDAsbi5nZXRBY3RpdmVFbGVtZW50U2VsZWN0b3JzKSgpLG89QXJyYXkuZnJvbSh0LnF1ZXJ5U2VsZWN0b3JBbGwoaSkpLmZpbHRlcigoMCxuLmNyZWF0ZVNjb3BlZFZpc2libGVFbGVtZW50RmlsdGVyKSh0KSk7bGV0IHM9TnVtYmVyLk5FR0FUSVZFX0lORklOSVRZLGE9bnVsbDtmb3IobGV0IHQ9MDt0PG8ubGVuZ3RoO3QrKyl7Y29uc3QgZT1vW3RdLGk9ZS5nZXRBdHRyaWJ1dGUoInRhYmluZGV4Iik7aWYobnVsbCE9PWkpe2NvbnN0IHQ9cGFyc2VJbnQoaSwxMCk7IWlzTmFOKHQpJiZ0PnMmJihzPXQsYT1lKX19cmV0dXJuIGF9IWZ1bmN0aW9uKHQpe3RbdC5Nb3VzZUd1YXJkWm9uZT0yMF09Ik1vdXNlR3VhcmRab25lIn0ob3x8KG89e30pKX0sODA2NjkzKHQpe3QuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxOCIgaGVpZ2h0PSIxOCI+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBkPSJNOS43MDcgOWw0LjY0Ny00LjY0Ni0uNzA3LS43MDhMOSA4LjI5MyA0LjM1NCAzLjY0NmwtLjcwOC43MDhMOC4yOTMgOWwtNC42NDcgNC42NDYuNzA4LjcwOEw5IDkuNzA3bDQuNjQ2IDQuNjQ3LjcwOC0uNzA3TDkuNzA3IDl6Ii8+PC9zdmc+J319XSk7"}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview.com/support/support-portal-problems/?language=en","fqdn":"www.tradingview.com","domain":"tradingview.com","tld":"com"},"ip":{"addr":"52.84.50.119","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"fetch","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.676Z","timestamp":1785148034676,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"tradingview.com","organization":""},"issuer":{"commonName":"Amazon RSA 2048 M04","organization":"Amazon"},"validity":{"start":"Fri, 12 Dec 2025 00:00:00 GMT","end":"Sun, 10 Jan 2027 23:59:59 GMT"},"fingerprint":{"sha1":"93:7A:32:54:9B:07:78:A4:C2:12:01:FE:F8:01:86:4E:F4:B0:E5:88","sha256":"DC:6B:BC:C2:10:66:1A:99:2E:BE:17:BD:A9:27:49:E3:D8:CA:EB:13:B6:95:9C:BF:68:76:22:17:62:D1:05:57"}}},"request":{"raw":"OPTIONS /support/support-portal-problems/?language=en HTTP/1.1\r\nHost: www.tradingview.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\nAccess-Control-Request-Method: GET\r\nAccess-Control-Request-Headers: x-language,x-requested-with\r\nReferer: https://s.tradingview.com/\r\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: empty\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-site\r\nPriority: u=4\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"OPTIONS"},"response":{"raw":"HTTP/3 200 \r\ncontent-type: application/json\r\ncontent-length: 13\r\nx-amz-cf-pop: OSL50-P3\r\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\nstrict-transport-security: max-age=63072000; includeSubDomains; preload\r\ncache-control: max-age=60\r\ncontent-security-policy: frame-ancestors 'none'; base-uri 'none'; default-src 'self' https: data: blob: wss: 'unsafe-inline'; script-src https://static.tradingview.com/static/ blob: https://*.ampproject.org/ https://*.paypal.com/ https://platform.twitter.com https://platform.x.com https://songbird.cardinalcommerce.com/edge/v1/ https://checkout.razorpay.com/ https://cdn.razorpay.com/static/cx/ https://*.checkout.com/ https://*.revolut.com/ https://*.cardinaltrusted.com https://pay.google.com/gp/p/js/ https://applepay.cdn-apple.com/jsapi/ https://tradingview-gateway.com/; object-src 'none'\r\ncross-origin-opener-policy: same-origin-allow-popups\r\nvary: Cookie\r\nreferrer-policy: origin-when-cross-origin, origin-when-cross-origin\r\nx-content-type-options: nosniff, nosniff\r\nserver: tv\r\naccess-control-allow-origin: https://s.tradingview.com\r\naccess-control-allow-headers: pragma,x-language,cache-control,x-requested-with\r\naccess-control-allow-credentials: true\r\naccess-control-max-age: 86400\r\naccess-control-allow-methods: GET, HEAD, POST, OPTIONS\r\ncross-origin-resource-policy: same-site\r\nx-cache: Miss from cloudfront\r\nalt-svc: h3=\":443\"; ma=86400\r\nvia: 1.1 efa1f20185894fba06fb038a3e989f24.cloudfront.net (CloudFront)\r\nx-amz-cf-id: InAX-2gjO81h6VdeBmbp9b1DuY2aAaHvaItT_iLcx7jMF_oC3g9b-Q==\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"PayPal","description":"PayPal is an online payments system that supports online money transfers and serves as an electronic alternative to traditional paper methods like checks and money orders.","website":"https://paypal.com","common_platform_enumeration":"cpe:2.3:a:paypal:paypal:*:*:*:*:*:*:*:*","icon":"PayPal.svg","categories":["Payment processors"]},{"name":"Amazon CloudFront","description":"Amazon CloudFront is a fast content delivery network (CDN) service that securely delivers data, videos, applications, and APIs to customers globally with low latency, high transfer speeds.","website":"https://aws.amazon.com/cloudfront/","common_platform_enumeration":"","icon":"Amazon Cloudfront.svg","categories":["CDN"]},{"name":"Amazon Web Services","description":"Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.","website":"https://aws.amazon.com/","common_platform_enumeration":"","icon":"Amazon Web Services.svg","categories":["PaaS"]},{"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":13,"size_decoded":1535,"mime_type":"application/json","magic":"JSON text data","md5":"01de957246f36d125db7f1635e51043e","sha1":"ab39026488aa0222d0fd98ade08979a1a17bdfae","sha256":"9bf40c18a4b22428c00ae5ddb17ff9e721207f22ebe705fd7dffdfd150749e3b","sha512":"72406f9bdf9896da1e3b58e79b74803c4b3a4226b1859cefcee322aa78d8617178a9e12333d72d43dd10207e3e79b9fc76ed07546ce955c0c8b392985d5540c5","ssdeep":"","tlshash":"d760000f003000000f0c0030f0000cc3000c0000033c30300c0c00c3030c0030ccf303","first_seen":"2023-05-02T20:38:18Z","last_seen":"2026-07-27T12:47:44.687175Z","times_seen":630,"resource_available":false,"data":"eyJpc3N1ZXMiOltdfQ=="}},"time_used":184,"timings":{"blocked":0,"dns":11,"connect":9,"send":0,"wait":164,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/13805.9a2029fb1a377f86c24d.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.853Z","timestamp":1785148034853,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/13805.9a2029fb1a377f86c24d.js HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a61b1a8-30fa\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Thu, 23 Jul 2026 06:16:08 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/23/2026 10:21:28\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: c019ed101303a71aadd3301759d67047\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":12538,"size_decoded":5687,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (3071)","md5":"f4ce2fead000bf1ab79fbfa4a78ec7ac","sha1":"2e20b8d515d61f7fbee20c750fec9ecb4bc73376","sha256":"30cb098cce0def8b770e0b3bbe93565e871484e779ef4319c188dc64142883c4","sha512":"59eb87c733dd0aa4fa3b496782a6212b34d38d6811c216b1b0814c10eb0446c9234779ff6a11dde557fb81c2d97c8a45ea93df0179066673dbbff4af1d714674","ssdeep":"384:IGOEKLPryUSTe/9KOzuMuHpftbeooEDOFFxiJijn2/yCQ8WsgSjMGi:IGO9zryUSTe/cOzuMapftbeooEDOFPic","tlshash":"de42bae970d1b0a1dba70869c47f400af33a3c51380e9550f266dcca79b516ed177e6e","first_seen":"2026-07-27T03:26:09.120534Z","last_seen":"2026-07-27T10:28:13.81306Z","times_seen":7,"resource_available":true,"data":"InVzZSBzdHJpY3QiOyhzZWxmLndlYnBhY2tDaHVua3RyYWRpbmd2aWV3PXNlbGYud2VicGFja0NodW5rdHJhZGluZ3ZpZXd8fFtdKS5wdXNoKFtbMTM4MDVdLHs0MTE2MDQoZSx0KXt2YXIgbixyPVN5bWJvbC5mb3IoInJlYWN0LmVsZW1lbnQiKSxvPVN5bWJvbC5mb3IoInJlYWN0LnBvcnRhbCIpLHU9U3ltYm9sLmZvcigicmVhY3QuZnJhZ21lbnQiKSxhPVN5bWJvbC5mb3IoInJlYWN0LnN0cmljdF9tb2RlIiksYz1TeW1ib2wuZm9yKCJyZWFjdC5wcm9maWxlciIpLHM9U3ltYm9sLmZvcigicmVhY3QucHJvdmlkZXIiKSxpPVN5bWJvbC5mb3IoInJlYWN0LmNvbnRleHQiKSxsPVN5bWJvbC5mb3IoInJlYWN0LnNlcnZlcl9jb250ZXh0IikscD1TeW1ib2wuZm9yKCJyZWFjdC5mb3J3YXJkX3JlZiIpLGY9U3ltYm9sLmZvcigicmVhY3Quc3VzcGVuc2UiKSxkPVN5bWJvbC5mb3IoInJlYWN0LnN1c3BlbnNlX2xpc3QiKSx5PVN5bWJvbC5mb3IoInJlYWN0Lm1lbW8iKSxTPVN5bWJvbC5mb3IoInJlYWN0LmxhenkiKSxtPVN5bWJvbC5mb3IoInJlYWN0Lm9mZnNjcmVlbiIpO2Z1bmN0aW9uIHYoZSl7aWYoIm9iamVjdCI9PXR5cGVvZiBlJiZudWxsIT09ZSl7dmFyIHQ9ZS4kJHR5cGVvZjtzd2l0Y2godCl7Y2FzZSByOnN3aXRjaChlPWUudHlwZSl7Y2FzZSB1OmNhc2UgYzpjYXNlIGE6Y2FzZSBmOmNhc2UgZDpyZXR1cm4gZTtkZWZhdWx0OnN3aXRjaChlPWUmJmUuJCR0eXBlb2Ype2Nhc2UgbDpjYXNlIGk6Y2FzZSBwOmNhc2UgUzpjYXNlIHk6Y2FzZSBzOnJldHVybiBlO2RlZmF1bHQ6cmV0dXJuIHR9fWNhc2UgbzpyZXR1cm4gdH19fW49U3ltYm9sLmZvcigicmVhY3QubW9kdWxlLnJlZmVyZW5jZSIpLHQuaXNDb250ZXh0Q29uc3VtZXI9ZnVuY3Rpb24oZSl7cmV0dXJuIHYoZSk9PT1pfX0sOTczMTc2KGUsdCxuKXtlLmV4cG9ydHM9big0MTE2MDQpfSw2MDE5NzAoZSx0LG4pe2Z1bmN0aW9uIHIoZSx0KXtyZXR1cm4obixyKT0+e3Rocm93IG5ldyBFcnJvcihgSW52YWxpZCB2YWx1ZSBvZiB0eXBlICR7dHlwZW9mIGV9IGZvciAke3R9IGFyZ3VtZW50IHdoZW4gY29ubmVjdGluZyBjb21wb25lbnQgJHtyLndyYXBwZWRDb21wb25lbnROYW1lfS5gKX19bi5kKHQse2NyZWF0ZUludmFsaWRBcmdGYWN0b3J5OigpPT5yfSl9LDk4NTk4KGUsdCxuKXtuLmQodCx7bWFwRGlzcGF0Y2hUb1Byb3BzRmFjdG9yeTooKT0+YX0pO3ZhciByPW4oMTczOTE0KSxvPW4oOTYxMDg4KSx1PW4oNjAxOTcwKTtmdW5jdGlvbiBhKGUpe3JldHVybiBlJiYib2JqZWN0Ij09dHlwZW9mIGU/KDAsby53cmFwTWFwVG9Qcm9wc0NvbnN0YW50KSgodD0+KDAsci5kZWZhdWx0KShlLHQpKSk6ZT8iZnVuY3Rpb24iPT10eXBlb2YgZT8oMCxvLndyYXBNYXBUb1Byb3BzRnVuYykoZSwibWFwRGlzcGF0Y2hUb1Byb3BzIik6KDAsdS5jcmVhdGVJbnZhbGlkQXJnRmFjdG9yeSkoZSwibWFwRGlzcGF0Y2hUb1Byb3BzIik6KDAsby53cmFwTWFwVG9Qcm9wc0NvbnN0YW50KSgoZT0+KHtkaXNwYXRjaDplfSkpKX19LDU0MzU1NShlLHQsbil7bi5kKHQse21hcFN0YXRlVG9Qcm9wc0ZhY3Rvcnk6KCk9PnV9KTt2YXIgcj1uKDk2MTA4OCksbz1uKDYwMTk3MCk7ZnVuY3Rpb24gdShlKXtyZXR1cm4gZT8iZnVuY3Rpb24iPT10eXBlb2YgZT8oMCxyLndyYXBNYXBUb1Byb3BzRnVuYykoZSwibWFwU3RhdGVUb1Byb3BzIik6KDAsby5jcmVhdGVJbnZhbGlkQXJnRmFjdG9yeSkoZSwibWFwU3RhdGVUb1Byb3BzIik6KDAsci53cmFwTWFwVG9Qcm9wc0NvbnN0YW50KSgoKCk9Pih7fSkpKX19LDgwNTg4NShlLHQsbil7bi5kKHQse21lcmdlUHJvcHNGYWN0b3J5OigpPT5hfSk7dmFyIHI9big2NDQzMjApLG89big2MDE5NzApO2Z1bmN0aW9uIHUoZSx0LG4pe3JldHVybigwLHIuZGVmYXVsdCkoe30sbixlLHQpfWZ1bmN0aW9uIGEoZSl7cmV0dXJuIGU/ImZ1bmN0aW9uIj09dHlwZW9mIGU/ZnVuY3Rpb24oZSl7cmV0dXJuIGZ1bmN0aW9uKHQse2Rpc3BsYXlOYW1lOm4sYXJlTWVyZ2VkUHJvcHNFcXVhbDpyfSl7bGV0IG8sdT0hMTtyZXR1cm4gZnVuY3Rpb24odCxuLGEpe2NvbnN0IGM9ZSh0LG4sYSk7cmV0dXJuIHU/cihjLG8pfHwobz1jKToodT0hMCxvPWMpLG99fX0oZSk6KDAsby5jcmVhdGVJbnZhbGlkQXJnRmFjdG9yeSkoZSwibWVyZ2VQcm9wcyIpOigpPT51fX0sNzA1NzUwKGUsdCxuKXtuLmQodCx7ZGVmYXVsdDooKT0+YX0pO3ZhciByPW4oNzg4OTE1KTtjb25zdCBvPVsiaW5pdE1hcFN0YXRlVG9Qcm9wcyIsImluaXRNYXBEaXNwYXRjaFRvUHJvcHMiLCJpbml0TWVyZ2VQcm9wcyJdO2Z1bmN0aW9uIHUoZSx0LG4scix7YXJlU3RhdGVzRXF1YWw6byxhcmVPd25Qcm9wc0VxdWFsOnUsYXJlU3RhdGVQcm9wc0VxdWFsOmF9KXtsZXQgYyxzLGksbCxwLGY9ITE7ZnVuY3Rpb24gZChmLGQpe2NvbnN0IHk9IXUoZCxzKSxTPSFvKGYsYyxkLHMpO3JldHVybiBjPWYscz1kLHkmJlM/KGk9ZShjLHMpLHQuZGVwZW5kc09uT3duUHJvcHMmJihsPXQocixzKSkscD1uKGksbCxzKSxwKTp5PyhlLmRlcGVuZHNPbk93blByb3BzJiYoaT1lKGMscykpLHQuZGVwZW5kc09uT3duUHJvcHMmJihsPXQocixzKSkscD1uKGksbCxzKSxwKTpTP2Z1bmN0aW9uKCl7Y29uc3QgdD1lKGMscykscj0hYSh0LGkpO3JldHVybiBpPXQsciYmKHA9bihpLGwscykpLHB9KCk6cH1yZXR1cm4gZnVuY3Rpb24obyx1KXtyZXR1cm4gZj9kKG8sdSk6KGM9byxzPXUsaT1lKGMscyksbD10KHIscykscD1uKGksbCxzKSxmPSEwLHApfX1mdW5jdGlvbiBhKGUsdCl7bGV0e2luaXRNYXBTdGF0ZVRvUHJvcHM6bixpbml0TWFwRGlzcGF0Y2hUb1Byb3BzOmEsaW5pdE1lcmdlUHJvcHM6Y309dCxzPSgwLHIuZGVmYXVsdCkodCxvKTtyZXR1cm4gdShuKGUscyksYShlLHMpLGMoZSxzKSxlLHMpfX0sOTYxMDg4KGUsdCxuKXtmdW5jdGlvbiByKGUpe3JldHVybiBmdW5jdGlvbih0KXtjb25zdCBuPWUodCk7ZnVuY3Rpb24gcigpe3JldHVybiBufXJldHVybiByLmRlcGVuZHNPbk93blByb3BzPSExLHJ9fWZ1bmN0aW9uIG8oZSl7CnJldHVybiBlLmRlcGVuZHNPbk93blByb3BzP0Jvb2xlYW4oZS5kZXBlbmRzT25Pd25Qcm9wcyk6MSE9PWUubGVuZ3RofWZ1bmN0aW9uIHUoZSx0KXtyZXR1cm4gZnVuY3Rpb24odCx7ZGlzcGxheU5hbWU6bn0pe2NvbnN0IHI9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gci5kZXBlbmRzT25Pd25Qcm9wcz9yLm1hcFRvUHJvcHMoZSx0KTpyLm1hcFRvUHJvcHMoZSx2b2lkIDApfTtyZXR1cm4gci5kZXBlbmRzT25Pd25Qcm9wcz0hMCxyLm1hcFRvUHJvcHM9ZnVuY3Rpb24odCxuKXtyLm1hcFRvUHJvcHM9ZSxyLmRlcGVuZHNPbk93blByb3BzPW8oZSk7bGV0IHU9cih0LG4pO3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiB1JiYoci5tYXBUb1Byb3BzPXUsci5kZXBlbmRzT25Pd25Qcm9wcz1vKHUpLHU9cih0LG4pKSx1fSxyfX1uLmQodCx7d3JhcE1hcFRvUHJvcHNDb25zdGFudDooKT0+cix3cmFwTWFwVG9Qcm9wc0Z1bmM6KCk9PnV9KX0sNzE4OTgzKGUsdCxuKXtuLnIodCksbi5kKHQse1Byb3ZpZGVyOigpPT5ELFJlYWN0UmVkdXhDb250ZXh0OigpPT5pLGJhdGNoOigpPT51LnVuc3RhYmxlX2JhdGNoZWRVcGRhdGVzLGNvbm5lY3Q6KCk9PmssY3JlYXRlRGlzcGF0Y2hIb29rOigpPT5CLGNyZWF0ZVNlbGVjdG9ySG9vazooKT0+eSxjcmVhdGVTdG9yZUhvb2s6KCk9PkEsc2hhbGxvd0VxdWFsOigpPT5ULmRlZmF1bHQsdXNlRGlzcGF0Y2g6KCk9PkksdXNlU2VsZWN0b3I6KCk9PlMsdXNlU3RvcmU6KCk9PiR9KTt2YXIgcj1uKDEzMTQ4OSksbz1uKDgxODAzMSksdT1uKDEyOTM2NSk7bGV0IGE9ZnVuY3Rpb24oZSl7ZSgpfTtjb25zdCBjPSgpPT5hO3ZhciBzPW4oNzc5NDc0KTtjb25zdCBpPSgwLHMuY3JlYXRlQ29udGV4dCkobnVsbCk7ZnVuY3Rpb24gbCgpe3JldHVybigwLHMudXNlQ29udGV4dCkoaSl9dmFyIHA9bigzNDQ0MDIpO2xldCBmPXAubm90SW5pdGlhbGl6ZWQ7Y29uc3QgZD0oZSx0KT0+ZT09PXQ7ZnVuY3Rpb24geShlPWkpe2NvbnN0IHQ9ZT09PWk/bDooKT0+KDAscy51c2VDb250ZXh0KShlKTtyZXR1cm4gZnVuY3Rpb24oZSxuPWQpe2NvbnN0e3N0b3JlOnIsc3Vic2NyaXB0aW9uOm8sZ2V0U2VydmVyU3RhdGU6dX09dCgpLGE9ZihvLmFkZE5lc3RlZFN1YixyLmdldFN0YXRlLHV8fHIuZ2V0U3RhdGUsZSxuKTtyZXR1cm4oMCxzLnVzZURlYnVnVmFsdWUpKGEpLGF9fWNvbnN0IFM9eSgpO3ZhciBtPW4oNjQ0MzIwKSx2PW4oNzg4OTE1KSxiPW4oNzMxMDM1KSxoPW4ubihiKSxnPW4oOTczMTc2KSx3PW4oNzA1NzUwKSxQPW4oOTg1OTgpLHg9big1NDM1NTUpLEU9big4MDU4ODUpO2NvbnN0IEM9e25vdGlmeSgpe30sZ2V0OigpPT5bXX07ZnVuY3Rpb24gTShlLHQpe2xldCBuLHI9QztmdW5jdGlvbiBvKCl7YS5vblN0YXRlQ2hhbmdlJiZhLm9uU3RhdGVDaGFuZ2UoKX1mdW5jdGlvbiB1KCl7bnx8KG49dD90LmFkZE5lc3RlZFN1YihvKTplLnN1YnNjcmliZShvKSxyPWZ1bmN0aW9uKCl7Y29uc3QgZT1jKCk7bGV0IHQ9bnVsbCxuPW51bGw7cmV0dXJue2NsZWFyKCl7dD1udWxsLG49bnVsbH0sbm90aWZ5KCl7ZSgoKCk9PntsZXQgZT10O2Zvcig7ZTspZS5jYWxsYmFjaygpLGU9ZS5uZXh0fSkpfSxnZXQoKXtsZXQgZT1bXSxuPXQ7Zm9yKDtuOyllLnB1c2gobiksbj1uLm5leHQ7cmV0dXJuIGV9LHN1YnNjcmliZShlKXtsZXQgcj0hMCxvPW49e2NhbGxiYWNrOmUsbmV4dDpudWxsLHByZXY6bn07cmV0dXJuIG8ucHJldj9vLnByZXYubmV4dD1vOnQ9byxmdW5jdGlvbigpe3ImJm51bGwhPT10JiYocj0hMSxvLm5leHQ/by5uZXh0LnByZXY9by5wcmV2Om49by5wcmV2LG8ucHJldj9vLnByZXYubmV4dD1vLm5leHQ6dD1vLm5leHQpfX19fSgpKX1jb25zdCBhPXthZGROZXN0ZWRTdWI6ZnVuY3Rpb24oZSl7cmV0dXJuIHUoKSxyLnN1YnNjcmliZShlKX0sbm90aWZ5TmVzdGVkU3ViczpmdW5jdGlvbigpe3Iubm90aWZ5KCl9LGhhbmRsZUNoYW5nZVdyYXBwZXI6byxpc1N1YnNjcmliZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gQm9vbGVhbihuKX0sdHJ5U3Vic2NyaWJlOnUsdHJ5VW5zdWJzY3JpYmU6ZnVuY3Rpb24oKXtuJiYobigpLG49dm9pZCAwLHIuY2xlYXIoKSxyPUMpfSxnZXRMaXN0ZW5lcnM6KCk9PnJ9O3JldHVybiBhfWNvbnN0IE89ISgidW5kZWZpbmVkIj09dHlwZW9mIHdpbmRvd3x8dm9pZCAwPT09d2luZG93LmRvY3VtZW50fHx2b2lkIDA9PT13aW5kb3cuZG9jdW1lbnQuY3JlYXRlRWxlbWVudCk/cy51c2VMYXlvdXRFZmZlY3Q6cy51c2VFZmZlY3Q7dmFyIFQ9big0MTkwMTQpO2NvbnN0IFI9WyJyZWFjdFJlZHV4Rm9yd2FyZGVkUmVmIl07bGV0IEY9cC5ub3RJbml0aWFsaXplZDtjb25zdCBOPVtudWxsLG51bGxdO2Z1bmN0aW9uIHEoZSx0LG4scixvLHUpe2UuY3VycmVudD1yLG4uY3VycmVudD0hMSxvLmN1cnJlbnQmJihvLmN1cnJlbnQ9bnVsbCx1KCkpfWZ1bmN0aW9uIGooZSx0KXtyZXR1cm4gZT09PXR9Y29uc3Qgaz1mdW5jdGlvbihlLHQsbix7cHVyZTpyLGFyZVN0YXRlc0VxdWFsOm89aixhcmVPd25Qcm9wc0VxdWFsOnU9VC5kZWZhdWx0LGFyZVN0YXRlUHJvcHNFcXVhbDphPVQuZGVmYXVsdCxhcmVNZXJnZWRQcm9wc0VxdWFsOmM9VC5kZWZhdWx0LGZvcndhcmRSZWY6bD0hMSxjb250ZXh0OnA9aX09e30pe2NvbnN0IGY9cCxkPSgwLHgubWFwU3RhdGVUb1Byb3BzRmFjdG9yeSkoZSkseT0oMCxQLm1hcERpc3BhdGNoVG9Qcm9wc0ZhY3RvcnkpKHQpLFM9KDAsRS5tZXJnZVByb3BzRmFjdG9yeSkobiksYj1Cb29sZWFuKGUpO3JldHVybiBlPT57Y29uc3QgdD1lLmRpc3BsYXlOYW1lfHxlLm5hbWV8fCJDb21wb25lbnQiLG49YENvbm5lY3QoJHt0fSlgLHI9e3Nob3VsZEhhbmRsZVN0YXRlQ2hhbmdlczpiLGRpc3BsYXlOYW1lOm4sd3JhcHBlZENvbXBvbmVudE5hbWU6dCxXcmFwcGVkQ29tcG9uZW50OmUsaW5pdE1hcFN0YXRlVG9Qcm9wczpkLGluaXRNYXBEaXNwYXRjaFRvUHJvcHM6eSxpbml0TWVyZ2VQcm9wczpTLGFyZVN0YXRlc0VxdWFsOm8sYXJlU3RhdGVQcm9wc0VxdWFsOmEsYXJlT3duUHJvcHNFcXVhbDp1LGFyZU1lcmdlZFByb3BzRXF1YWw6Y307ZnVuY3Rpb24gaSh0KXsKY29uc3RbbixvLHVdPSgwLHMudXNlTWVtbykoKCgpPT57Y29uc3R7cmVhY3RSZWR1eEZvcndhcmRlZFJlZjplfT10LG49KDAsdi5kZWZhdWx0KSh0LFIpO3JldHVyblt0LmNvbnRleHQsZSxuXX0pLFt0XSksYT0oMCxzLnVzZU1lbW8pKCgoKT0+biYmbi5Db25zdW1lciYmKDAsZy5pc0NvbnRleHRDb25zdW1lcikocy5jcmVhdGVFbGVtZW50KG4uQ29uc3VtZXIsbnVsbCkpP246ZiksW24sZl0pLGM9KDAscy51c2VDb250ZXh0KShhKSxpPUJvb2xlYW4odC5zdG9yZSkmJkJvb2xlYW4odC5zdG9yZS5nZXRTdGF0ZSkmJkJvb2xlYW4odC5zdG9yZS5kaXNwYXRjaCksbD1Cb29sZWFuKGMpJiZCb29sZWFuKGMuc3RvcmUpO2NvbnN0IHA9aT90LnN0b3JlOmMuc3RvcmUsZD1sP2MuZ2V0U2VydmVyU3RhdGU6cC5nZXRTdGF0ZSx5PSgwLHMudXNlTWVtbykoKCgpPT4oMCx3LmRlZmF1bHQpKHAuZGlzcGF0Y2gscikpLFtwXSksW1MsaF09KDAscy51c2VNZW1vKSgoKCk9PntpZighYilyZXR1cm4gTjtjb25zdCBlPU0ocCxpP3ZvaWQgMDpjLnN1YnNjcmlwdGlvbiksdD1lLm5vdGlmeU5lc3RlZFN1YnMuYmluZChlKTtyZXR1cm5bZSx0XX0pLFtwLGksY10pLFA9KDAscy51c2VNZW1vKSgoKCk9Pmk/YzooMCxtLmRlZmF1bHQpKHt9LGMse3N1YnNjcmlwdGlvbjpTfSkpLFtpLGMsU10pLHg9KDAscy51c2VSZWYpKCksRT0oMCxzLnVzZVJlZikodSksQz0oMCxzLnVzZVJlZikoKSxUPSgwLHMudXNlUmVmKSghMSksaj0oKDAscy51c2VSZWYpKCExKSwoMCxzLnVzZVJlZikoITEpKSxrPSgwLHMudXNlUmVmKSgpO08oKCgpPT4oai5jdXJyZW50PSEwLCgpPT57ai5jdXJyZW50PSExfSkpLFtdKTtjb25zdCBEPSgwLHMudXNlTWVtbykoKCgpPT4oKT0+Qy5jdXJyZW50JiZ1PT09RS5jdXJyZW50P0MuY3VycmVudDp5KHAuZ2V0U3RhdGUoKSx1KSksW3AsdV0pLEE9KDAscy51c2VNZW1vKSgoKCk9PmU9PlM/ZnVuY3Rpb24oZSx0LG4scixvLHUsYSxjLHMsaSxsKXtpZighZSlyZXR1cm4oKT0+e307bGV0IHA9ITEsZj1udWxsO2NvbnN0IGQ9KCk9PntpZihwfHwhYy5jdXJyZW50KXJldHVybjtjb25zdCBlPXQuZ2V0U3RhdGUoKTtsZXQgbixkO3RyeXtuPXIoZSxvLmN1cnJlbnQpfWNhdGNoKGUpe2Q9ZSxmPWV9ZHx8KGY9bnVsbCksbj09PXUuY3VycmVudD9hLmN1cnJlbnR8fGkoKToodS5jdXJyZW50PW4scy5jdXJyZW50PW4sYS5jdXJyZW50PSEwLGwoKSl9O3JldHVybiBuLm9uU3RhdGVDaGFuZ2U9ZCxuLnRyeVN1YnNjcmliZSgpLGQoKSwoKT0+e2lmKHA9ITAsbi50cnlVbnN1YnNjcmliZSgpLG4ub25TdGF0ZUNoYW5nZT1udWxsLGYpdGhyb3cgZn19KGIscCxTLHksRSx4LFQsaixDLGgsZSk6KCk9Pnt9KSxbU10pO3ZhciAkLEIsSTtsZXQgVTskPXEsQj1bRSx4LFQsdSxDLGhdLE8oKCgpPT4kKC4uLkIpKSxJKTt0cnl7VT1GKEEsRCxkPygpPT55KGQoKSx1KTpEKX1jYXRjaChlKXt0aHJvdyBrLmN1cnJlbnQmJihlLm1lc3NhZ2UrPWBcblRoZSBlcnJvciBtYXkgYmUgY29ycmVsYXRlZCB3aXRoIHRoaXMgcHJldmlvdXMgZXJyb3I6XG4ke2suY3VycmVudC5zdGFja31cblxuYCksZX1PKCgoKT0+e2suY3VycmVudD12b2lkIDAsQy5jdXJyZW50PXZvaWQgMCx4LmN1cnJlbnQ9VX0pKTtjb25zdCBWPSgwLHMudXNlTWVtbykoKCgpPT5zLmNyZWF0ZUVsZW1lbnQoZSwoMCxtLmRlZmF1bHQpKHt9LFUse3JlZjpvfSkpKSxbbyxlLFVdKTtyZXR1cm4oMCxzLnVzZU1lbW8pKCgoKT0+Yj9zLmNyZWF0ZUVsZW1lbnQoYS5Qcm92aWRlcix7dmFsdWU6UH0sVik6ViksW2EsVixQXSl9Y29uc3QgcD1zLm1lbW8oaSk7aWYocC5XcmFwcGVkQ29tcG9uZW50PWUscC5kaXNwbGF5TmFtZT1pLmRpc3BsYXlOYW1lPW4sbCl7Y29uc3QgdD1zLmZvcndhcmRSZWYoKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHMuY3JlYXRlRWxlbWVudChwLCgwLG0uZGVmYXVsdCkoe30sZSx7cmVhY3RSZWR1eEZvcndhcmRlZFJlZjp0fSkpfSkpO3JldHVybiB0LmRpc3BsYXlOYW1lPW4sdC5XcmFwcGVkQ29tcG9uZW50PWUsaCgpKHQsZSl9cmV0dXJuIGgoKShwLGUpfX07Y29uc3QgRD1mdW5jdGlvbih7c3RvcmU6ZSxjb250ZXh0OnQsY2hpbGRyZW46bixzZXJ2ZXJTdGF0ZTpyfSl7Y29uc3Qgbz0oMCxzLnVzZU1lbW8pKCgoKT0+e2NvbnN0IHQ9TShlKTtyZXR1cm57c3RvcmU6ZSxzdWJzY3JpcHRpb246dCxnZXRTZXJ2ZXJTdGF0ZTpyPygpPT5yOnZvaWQgMH19KSxbZSxyXSksdT0oMCxzLnVzZU1lbW8pKCgoKT0+ZS5nZXRTdGF0ZSgpKSxbZV0pO08oKCgpPT57Y29uc3R7c3Vic2NyaXB0aW9uOnR9PW87cmV0dXJuIHQub25TdGF0ZUNoYW5nZT10Lm5vdGlmeU5lc3RlZFN1YnMsdC50cnlTdWJzY3JpYmUoKSx1IT09ZS5nZXRTdGF0ZSgpJiZ0Lm5vdGlmeU5lc3RlZFN1YnMoKSwoKT0+e3QudHJ5VW5zdWJzY3JpYmUoKSx0Lm9uU3RhdGVDaGFuZ2U9dm9pZCAwfX0pLFtvLHVdKTtjb25zdCBhPXR8fGk7cmV0dXJuIHMuY3JlYXRlRWxlbWVudChhLlByb3ZpZGVyLHt2YWx1ZTpvfSxuKX07ZnVuY3Rpb24gQShlPWkpe2NvbnN0IHQ9ZT09PWk/bDooKT0+KDAscy51c2VDb250ZXh0KShlKTtyZXR1cm4gZnVuY3Rpb24oKXtjb25zdHtzdG9yZTplfT10KCk7cmV0dXJuIGV9fWNvbnN0ICQ9QSgpO2Z1bmN0aW9uIEIoZT1pKXtjb25zdCB0PWU9PT1pPyQ6QShlKTtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdCgpLmRpc3BhdGNofX1jb25zdCBJPUIoKTt2YXIgVSxWO1U9by51c2VTeW5jRXh0ZXJuYWxTdG9yZVdpdGhTZWxlY3RvcixmPVUsKGU9PntGPWV9KShyLnVzZVN5bmNFeHRlcm5hbFN0b3JlKSxWPXUudW5zdGFibGVfYmF0Y2hlZFVwZGF0ZXMsYT1WfSwxNzM5MTQoZSx0LG4pe2Z1bmN0aW9uIHIoZSx0KXtjb25zdCBuPXt9O2Zvcihjb25zdCByIGluIGUpe2NvbnN0IG89ZVtyXTsiZnVuY3Rpb24iPT10eXBlb2YgbyYmKG5bcl09KC4uLmUpPT50KG8oLi4uZSkpKX1yZXR1cm4gbn1uLmQodCx7ZGVmYXVsdDooKT0+cn0pfSw0MTkwMTQoZSx0LG4pe2Z1bmN0aW9uIHIoZSx0KXtyZXR1cm4gZT09PXQ/MCE9PWV8fDAhPT10fHwxL2U9PTEvdDplIT1lJiZ0IT10fWZ1bmN0aW9uIG8oZSx0KXsKaWYocihlLHQpKXJldHVybiEwO2lmKCJvYmplY3QiIT10eXBlb2YgZXx8bnVsbD09PWV8fCJvYmplY3QiIT10eXBlb2YgdHx8bnVsbD09PXQpcmV0dXJuITE7Y29uc3Qgbj1PYmplY3Qua2V5cyhlKSxvPU9iamVjdC5rZXlzKHQpO2lmKG4ubGVuZ3RoIT09by5sZW5ndGgpcmV0dXJuITE7Zm9yKGxldCBvPTA7bzxuLmxlbmd0aDtvKyspaWYoIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LG5bb10pfHwhcihlW25bb11dLHRbbltvXV0pKXJldHVybiExO3JldHVybiEwfW4uZCh0LHtkZWZhdWx0OigpPT5vfSl9LDM0NDQwMihlLHQsbil7bi5kKHQse25vdEluaXRpYWxpemVkOigpPT5yfSk7Y29uc3Qgcj0oKT0+e3Rocm93IG5ldyBFcnJvcigidVNFUyBub3QgaW5pdGlhbGl6ZWQhIil9fSwzNjQzNTAoZSx0LG4pe2Z1bmN0aW9uIHIoZSx0KXtyZXR1cm4gZT09PXR9bi5kKHQse2NyZWF0ZVNlbGVjdG9yOigpPT5vfSk7dmFyIG89ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PWFyZ3VtZW50cy5sZW5ndGgsbj1BcnJheSh0PjE/dC0xOjApLHI9MTtyPHQ7cisrKW5bci0xXT1hcmd1bWVudHNbcl07cmV0dXJuIGZ1bmN0aW9uKCl7Zm9yKHZhciB0PWFyZ3VtZW50cy5sZW5ndGgscj1BcnJheSh0KSxvPTA7bzx0O28rKylyW29dPWFyZ3VtZW50c1tvXTt2YXIgdT0wLGE9ci5wb3AoKSxjPWZ1bmN0aW9uKGUpe3ZhciB0PUFycmF5LmlzQXJyYXkoZVswXSk/ZVswXTplO2lmKCF0LmV2ZXJ5KChmdW5jdGlvbihlKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgZX0pKSl7dmFyIG49dC5tYXAoKGZ1bmN0aW9uKGUpe3JldHVybiB0eXBlb2YgZX0pKS5qb2luKCIsICIpO3Rocm93IG5ldyBFcnJvcigiU2VsZWN0b3IgY3JlYXRvcnMgZXhwZWN0IGFsbCBpbnB1dC1zZWxlY3RvcnMgdG8gYmUgZnVuY3Rpb25zLCBpbnN0ZWFkIHJlY2VpdmVkIHRoZSBmb2xsb3dpbmcgdHlwZXM6IFsiK24rIl0iKX1yZXR1cm4gdH0ocikscz1lLmFwcGx5KHZvaWQgMCxbZnVuY3Rpb24oKXtyZXR1cm4gdSsrLGEuYXBwbHkobnVsbCxhcmd1bWVudHMpfV0uY29uY2F0KG4pKSxpPWUoKGZ1bmN0aW9uKCl7Zm9yKHZhciBlPVtdLHQ9Yy5sZW5ndGgsbj0wO248dDtuKyspZS5wdXNoKGNbbl0uYXBwbHkobnVsbCxhcmd1bWVudHMpKTtyZXR1cm4gcy5hcHBseShudWxsLGUpfSkpO3JldHVybiBpLnJlc3VsdEZ1bmM9YSxpLmRlcGVuZGVuY2llcz1jLGkucmVjb21wdXRhdGlvbnM9ZnVuY3Rpb24oKXtyZXR1cm4gdX0saS5yZXNldFJlY29tcHV0YXRpb25zPWZ1bmN0aW9uKCl7cmV0dXJuIHU9MH0saX19KChmdW5jdGlvbihlKXt2YXIgdD1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06cixuPW51bGwsbz1udWxsO3JldHVybiBmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbihlLHQsbil7aWYobnVsbD09PXR8fG51bGw9PT1ufHx0Lmxlbmd0aCE9PW4ubGVuZ3RoKXJldHVybiExO2Zvcih2YXIgcj10Lmxlbmd0aCxvPTA7bzxyO28rKylpZighZSh0W29dLG5bb10pKXJldHVybiExO3JldHVybiEwfSh0LG4sYXJndW1lbnRzKXx8KG89ZS5hcHBseShudWxsLGFyZ3VtZW50cykpLG49YXJndW1lbnRzLG99fSkpfSw5NjA1NihlLHQsbil7dmFyIHI9big3Nzk0NzQpO3ZhciBvPSJmdW5jdGlvbiI9PXR5cGVvZiBPYmplY3QuaXM/T2JqZWN0LmlzOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIGU9PT10JiYoMCE9PWV8fDEvZT09MS90KXx8ZSE9ZSYmdCE9dH0sdT1yLnVzZVN0YXRlLGE9ci51c2VFZmZlY3QsYz1yLnVzZUxheW91dEVmZmVjdCxzPXIudXNlRGVidWdWYWx1ZTtmdW5jdGlvbiBpKGUpe3ZhciB0PWUuZ2V0U25hcHNob3Q7ZT1lLnZhbHVlO3RyeXt2YXIgbj10KCk7cmV0dXJuIW8oZSxuKX1jYXRjaChlKXtyZXR1cm4hMH19dmFyIGw9InVuZGVmaW5lZCI9PXR5cGVvZiB3aW5kb3d8fHZvaWQgMD09PXdpbmRvdy5kb2N1bWVudHx8dm9pZCAwPT09d2luZG93LmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQ/ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdCgpfTpmdW5jdGlvbihlLHQpe3ZhciBuPXQoKSxyPXUoe2luc3Q6e3ZhbHVlOm4sZ2V0U25hcHNob3Q6dH19KSxvPXJbMF0uaW5zdCxsPXJbMV07cmV0dXJuIGMoKGZ1bmN0aW9uKCl7by52YWx1ZT1uLG8uZ2V0U25hcHNob3Q9dCxpKG8pJiZsKHtpbnN0Om99KX0pLFtlLG4sdF0pLGEoKGZ1bmN0aW9uKCl7cmV0dXJuIGkobykmJmwoe2luc3Q6b30pLGUoKGZ1bmN0aW9uKCl7aShvKSYmbCh7aW5zdDpvfSl9KSl9KSxbZV0pLHMobiksbn07dC51c2VTeW5jRXh0ZXJuYWxTdG9yZT12b2lkIDAhPT1yLnVzZVN5bmNFeHRlcm5hbFN0b3JlP3IudXNlU3luY0V4dGVybmFsU3RvcmU6bH0sNDk1MTMxKGUsdCxuKXt2YXIgcj1uKDc3OTQ3NCksbz1uKDEzMTQ4OSk7dmFyIHU9ImZ1bmN0aW9uIj09dHlwZW9mIE9iamVjdC5pcz9PYmplY3QuaXM6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZT09PXQmJigwIT09ZXx8MS9lPT0xL3QpfHxlIT1lJiZ0IT10fSxhPW8udXNlU3luY0V4dGVybmFsU3RvcmUsYz1yLnVzZVJlZixzPXIudXNlRWZmZWN0LGk9ci51c2VNZW1vLGw9ci51c2VEZWJ1Z1ZhbHVlO3QudXNlU3luY0V4dGVybmFsU3RvcmVXaXRoU2VsZWN0b3I9ZnVuY3Rpb24oZSx0LG4scixvKXt2YXIgcD1jKG51bGwpO2lmKG51bGw9PT1wLmN1cnJlbnQpe3ZhciBmPXtoYXNWYWx1ZTohMSx2YWx1ZTpudWxsfTtwLmN1cnJlbnQ9Zn1lbHNlIGY9cC5jdXJyZW50O3A9aSgoZnVuY3Rpb24oKXtmdW5jdGlvbiBlKGUpe2lmKCFzKXtpZihzPSEwLGE9ZSxlPXIoZSksdm9pZCAwIT09byYmZi5oYXNWYWx1ZSl7dmFyIHQ9Zi52YWx1ZTtpZihvKHQsZSkpcmV0dXJuIGM9dH1yZXR1cm4gYz1lfWlmKHQ9Yyx1KGEsZSkpcmV0dXJuIHQ7dmFyIG49cihlKTtyZXR1cm4gdm9pZCAwIT09byYmbyh0LG4pP3Q6KGE9ZSxjPW4pfXZhciBhLGMscz0hMSxpPXZvaWQgMD09PW4/bnVsbDpuO3JldHVybltmdW5jdGlvbigpe3JldHVybiBlKHQoKSl9LG51bGw9PT1pP3ZvaWQgMDpmdW5jdGlvbigpe3JldHVybiBlKGkoKSl9XX0pLFt0LG4scixvXSk7dmFyIGQ9YShlLHBbMF0scFsxXSkKO3JldHVybiBzKChmdW5jdGlvbigpe2YuaGFzVmFsdWU9ITAsZi52YWx1ZT1kfSksW2RdKSxsKGQpLGR9fSwxMzE0ODkoZSx0LG4pe2UuZXhwb3J0cz1uKDk2MDU2KX0sODE4MDMxKGUsdCxuKXtlLmV4cG9ydHM9big0OTUxMzEpfSw4NTY3NzAoZSx0LG4pe24uZCh0LHtuYW5vaWQ6KCk9PnJ9KTtsZXQgcj0oZT0yMSk9PmNyeXB0by5nZXRSYW5kb21WYWx1ZXMobmV3IFVpbnQ4QXJyYXkoZSkpLnJlZHVjZSgoKGUsdCk9PmUrPSh0Jj02Myk8MzY/dC50b1N0cmluZygzNik6dDw2Mj8odC0yNikudG9TdHJpbmcoMzYpLnRvVXBwZXJDYXNlKCk6dD42Mj8iLSI6Il8iKSwiIil9fV0pOw=="}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"digital-assettrade.com/assets/global/js/firebase/firebase-8.3.2.js","fqdn":"digital-assettrade.com","domain":"digital-assettrade.com","tld":"com"},"ip":{"addr":"5.182.208.207","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://digital-assettrade.com/","date":"2026-07-27T10:27:12.044Z","timestamp":1785148032044,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"digital-assettrade.com","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Sat, 20 Jun 2026 16:59:16 GMT","end":"Fri, 18 Sep 2026 16:59:15 GMT"},"fingerprint":{"sha1":"01:E1:B4:F9:5D:C1:12:F0:96:4A:57:43:D3:BB:2D:2B:F2:BE:B0:FC","sha256":"A8:D5:A6:4E:32:4D:7C:DD:DA:A5:73:54:3A:4A:4B:A5:0E:50:6F:09:0E:F5:B9:74:AC:9A:03:38:4D:A3:42:85"}}},"request":{"raw":"GET /assets/global/js/firebase/firebase-8.3.2.js HTTP/1.1\r\nHost: digital-assettrade.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://digital-assettrade.com/\r\nCookie: XSRF-TOKEN=eyJpdiI6IlBJZ3lRZTB2d214bVhnZk5JbmtvaWc9PSIsInZhbHVlIjoiOWllUUw0S1NpMERaV0d2c2FYTDF0YndkRm5iSHg5RGJOMTVmNEltV2lONmQ5RlhjdjhvR0syQVZyZGdYanU1OEMwUkhQVVdndjRJelQzdWxmQldFejlZc2c4K1RKbktYZ2NySWpkQkdLTEV3czBrQyt5RE9TTHRSQk5BYkRvZEMiLCJtYWMiOiJkZDhhNjRlM2IzMGU1NTc4NDFkOGUyNGM0M2IyYTFkYjk3MDUxYTIwOGM5OTUwNDM2MmNhNjYzNjUwMTliN2EyIiwidGFnIjoiIn0%3D; digitalassettrade_session=eyJpdiI6InppdHd5OXFTcGhzM0xrUzhKN0NmQ2c9PSIsInZhbHVlIjoiNytzaTJ2ekZZSE9MTU9oYTdHZWwxeWl5YUl6ZDJSZ2UxSDhBZ0FCUmoxbFlrYU5kNXpTZnRqMTNTNERMaEpGM0srWk1KZ2YrcFNUalloQVkrTGEvSXBCVFU2blExUlgyTDFhckFkdlg0bHNjSVYrQWltRENjeDJ5QWNnQUk3RGciLCJtYWMiOiJhZDEzNWUwOGYyMzcwOGNkYjRlMGY4NmJhMDBlY2Y5OTdjYmUyMjRkNWY1N2NmODMwNWE1MDUxNjg1ZDMxOWE2IiwidGFnIjoiIn0%3D\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncontent-type: text/javascript\r\nlast-modified: Sat, 19 Apr 2025 09:13:56 GMT\r\naccept-ranges: bytes\r\ncontent-encoding: br\r\nvary: Accept-Encoding\r\ncontent-length: 238467\r\ndate: Mon, 27 Jul 2026 10:27:12 GMT\r\nserver: LiteSpeed\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"LiteSpeed","description":"LiteSpeed is a high-scalability web server.","website":"https://litespeedtech.com","common_platform_enumeration":"cpe:2.3:a:litespeedtech:litespeed_web_server:*:*:*:*:*:*:*:*","icon":"LiteSpeed.svg","categories":["Web servers"]}],"data":{"size":859901,"size_decoded":238706,"mime_type":"text/javascript","magic":"JavaScript source, Unicode text, UTF-8 text, with very long lines (65535), with no line terminators","md5":"3aeb031c1d596281cfb0bc798ad68c35","sha1":"f3cbd0c473069e581705448366b33fcf71e0fdb9","sha256":"c6129ac86f15d92723bbb81e97f5ab4bcfd97f0744ea5898d2402087520c532b","sha512":"5fcc9700c5c7842dcd0f7c18a1028d6a6bc00536d03ced45d83c4ad7ed7b8530ddde45ec402f4fcb79c8ca87c4541af9786fed00817fb5437e08a4c75e9817ce","ssdeep":"6144:K8YqbosMLHtk4OLs/8wWaoFwApF+GzJXZaGQqdxQUdcujbva18nsLDMX4teWXs4v:nYqbrKOQ/YRQp18nl4sSG+z","tlshash":"5305b5ccb692b062439360b5507f410bf33b685da40e40acf669e9d67cb954e923bf78","first_seen":"2023-07-24T14:01:25Z","last_seen":"2026-07-27T13:07:58.216906Z","times_seen":168,"resource_available":true,"data":"IWZ1bmN0aW9uKHQsZSl7Im9iamVjdCI9PXR5cGVvZiBleHBvcnRzJiYidW5kZWZpbmVkIiE9dHlwZW9mIG1vZHVsZT9tb2R1bGUuZXhwb3J0cz1lKCk6ImZ1bmN0aW9uIj09dHlwZW9mIGRlZmluZSYmZGVmaW5lLmFtZD9kZWZpbmUoZSk6KHQ9InVuZGVmaW5lZCIhPXR5cGVvZiBnbG9iYWxUaGlzP2dsb2JhbFRoaXM6dHx8c2VsZikuZmlyZWJhc2U9ZSgpfSh0aGlzLGZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiOyFmdW5jdGlvbih0KXt2YXIgZSxuLHMscixpLG8sYSx1LGMsaDtmdW5jdGlvbiBsKHQpe2lmKCJzdHJpbmciIT10eXBlb2YgdCYmKHQ9U3RyaW5nKHQpKSwvW15hLXowLTlcLSMkJSYnKisuXF5fYHx+XS9pLnRlc3QodCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBjaGFyYWN0ZXIgaW4gaGVhZGVyIGZpZWxkIG5hbWUiKTtyZXR1cm4gdC50b0xvd2VyQ2FzZSgpfWZ1bmN0aW9uIGYodCl7cmV0dXJuIHQ9InN0cmluZyIhPXR5cGVvZiB0P1N0cmluZyh0KTp0fWZ1bmN0aW9uIHAoZSl7dmFyIHQ9e25leHQ6ZnVuY3Rpb24oKXt2YXIgdD1lLnNoaWZ0KCk7cmV0dXJue2RvbmU6dm9pZCAwPT09dCx2YWx1ZTp0fX19O3JldHVybiBuJiYodFtTeW1ib2wuaXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHR9KSx0fWZ1bmN0aW9uIGQoZSl7dGhpcy5tYXA9e30sZSBpbnN0YW5jZW9mIGQ/ZS5mb3JFYWNoKGZ1bmN0aW9uKHQsZSl7dGhpcy5hcHBlbmQoZSx0KX0sdGhpcyk6QXJyYXkuaXNBcnJheShlKT9lLmZvckVhY2goZnVuY3Rpb24odCl7dGhpcy5hcHBlbmQodFswXSx0WzFdKX0sdGhpcyk6ZSYmT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoZSkuZm9yRWFjaChmdW5jdGlvbih0KXt0aGlzLmFwcGVuZCh0LGVbdF0pfSx0aGlzKX1mdW5jdGlvbiB2KHQpe2lmKHQuYm9keVVzZWQpcmV0dXJuIFByb21pc2UucmVqZWN0KG5ldyBUeXBlRXJyb3IoIkFscmVhZHkgcmVhZCIpKTt0LmJvZHlVc2VkPSEwfWZ1bmN0aW9uIGcobil7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHQsZSl7bi5vbmxvYWQ9ZnVuY3Rpb24oKXt0KG4ucmVzdWx0KX0sbi5vbmVycm9yPWZ1bmN0aW9uKCl7ZShuLmVycm9yKX19KX1mdW5jdGlvbiB5KHQpe3ZhciBlPW5ldyBGaWxlUmVhZGVyLG49ZyhlKTtyZXR1cm4gZS5yZWFkQXNBcnJheUJ1ZmZlcih0KSxufWZ1bmN0aW9uIG0odCl7aWYodC5zbGljZSlyZXR1cm4gdC5zbGljZSgwKTt2YXIgZT1uZXcgVWludDhBcnJheSh0LmJ5dGVMZW5ndGgpO3JldHVybiBlLnNldChuZXcgVWludDhBcnJheSh0KSksZS5idWZmZXJ9ZnVuY3Rpb24gYigpe3JldHVybiB0aGlzLmJvZHlVc2VkPSExLHRoaXMuX2luaXRCb2R5PWZ1bmN0aW9uKHQpe2lmKHRoaXMuX2JvZHlJbml0PXQpaWYoInN0cmluZyI9PXR5cGVvZiB0KXRoaXMuX2JvZHlUZXh0PXQ7ZWxzZSBpZihzJiZCbG9iLnByb3RvdHlwZS5pc1Byb3RvdHlwZU9mKHQpKXRoaXMuX2JvZHlCbG9iPXQ7ZWxzZSBpZihyJiZGb3JtRGF0YS5wcm90b3R5cGUuaXNQcm90b3R5cGVPZih0KSl0aGlzLl9ib2R5Rm9ybURhdGE9dDtlbHNlIGlmKGUmJlVSTFNlYXJjaFBhcmFtcy5wcm90b3R5cGUuaXNQcm90b3R5cGVPZih0KSl0aGlzLl9ib2R5VGV4dD10LnRvU3RyaW5nKCk7ZWxzZSBpZihpJiZzJiZhKHQpKXRoaXMuX2JvZHlBcnJheUJ1ZmZlcj1tKHQuYnVmZmVyKSx0aGlzLl9ib2R5SW5pdD1uZXcgQmxvYihbdGhpcy5fYm9keUFycmF5QnVmZmVyXSk7ZWxzZXtpZighaXx8IUFycmF5QnVmZmVyLnByb3RvdHlwZS5pc1Byb3RvdHlwZU9mKHQpJiYhdSh0KSl0aHJvdyBuZXcgRXJyb3IoInVuc3VwcG9ydGVkIEJvZHlJbml0IHR5cGUiKTt0aGlzLl9ib2R5QXJyYXlCdWZmZXI9bSh0KX1lbHNlIHRoaXMuX2JvZHlUZXh0PSIiO3RoaXMuaGVhZGVycy5nZXQoImNvbnRlbnQtdHlwZSIpfHwoInN0cmluZyI9PXR5cGVvZiB0P3RoaXMuaGVhZGVycy5zZXQoImNvbnRlbnQtdHlwZSIsInRleHQvcGxhaW47Y2hhcnNldD1VVEYtOCIpOnRoaXMuX2JvZHlCbG9iJiZ0aGlzLl9ib2R5QmxvYi50eXBlP3RoaXMuaGVhZGVycy5zZXQoImNvbnRlbnQtdHlwZSIsdGhpcy5fYm9keUJsb2IudHlwZSk6ZSYmVVJMU2VhcmNoUGFyYW1zLnByb3RvdHlwZS5pc1Byb3RvdHlwZU9mKHQpJiZ0aGlzLmhlYWRlcnMuc2V0KCJjb250ZW50LXR5cGUiLCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7Y2hhcnNldD1VVEYtOCIpKX0scyYmKHRoaXMuYmxvYj1mdW5jdGlvbigpe3ZhciB0PXYodGhpcyk7aWYodClyZXR1cm4gdDtpZih0aGlzLl9ib2R5QmxvYilyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHRoaXMuX2JvZHlCbG9iKTtpZih0aGlzLl9ib2R5QXJyYXlCdWZmZXIpcmV0dXJuIFByb21pc2UucmVzb2x2ZShuZXcgQmxvYihbdGhpcy5fYm9keUFycmF5QnVmZmVyXSkpO2lmKHRoaXMuX2JvZHlGb3JtRGF0YSl0aHJvdyBuZXcgRXJyb3IoImNvdWxkIG5vdCByZWFkIEZvcm1EYXRhIGJvZHkgYXMgYmxvYiIpO3JldHVybiBQcm9taXNlLnJlc29sdmUobmV3IEJsb2IoW3RoaXMuX2JvZHlUZXh0XSkpfSx0aGlzLmFycmF5QnVmZmVyPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2JvZHlBcnJheUJ1ZmZlcj92KHRoaXMpfHxQcm9taXNlLnJlc29sdmUodGhpcy5fYm9keUFycmF5QnVmZmVyKTp0aGlzLmJsb2IoKS50aGVuKHkpfSksdGhpcy50ZXh0PWZ1bmN0aW9uKCl7dmFyIHQsZSxuPXYodGhpcyk7aWYobilyZXR1cm4gbjtpZih0aGlzLl9ib2R5QmxvYilyZXR1cm4gdD10aGlzLl9ib2R5QmxvYixlPW5ldyBGaWxlUmVhZGVyLG49ZyhlKSxlLnJlYWRBc1RleHQodCksbjtpZih0aGlzLl9ib2R5QXJyYXlCdWZmZXIpcmV0dXJuIFByb21pc2UucmVzb2x2ZShmdW5jdGlvbih0KXtmb3IodmFyIGU9bmV3IFVpbnQ4QXJyYXkodCksbj1uZXcgQXJyYXkoZS5sZW5ndGgpLHI9MDtyPGUubGVuZ3RoO3IrKyluW3JdPVN0cmluZy5mcm9tQ2hhckNvZGUoZVtyXSk7cmV0dXJuIG4uam9pbigiIil9KHRoaXMuX2JvZHlBcnJheUJ1ZmZlcikpO2lmKHRoaXMuX2JvZHlGb3JtRGF0YSl0aHJvdyBuZXcgRXJyb3IoImNvdWxkIG5vdCByZWFkIEZvcm1EYXRhIGJvZHkgYXMgdGV4dCIpO3JldHVybiBQcm9taXNlLnJlc29sdmUodGhpcy5fYm9keVRleHQpfSxyJiYodGhpcy5mb3JtRGF0YT1mdW5jdGlvbigpe3JldHVybiB0aGlzLnRleHQoKS50aGVuKF8pfSksdGhpcy5qc29uPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudGV4dCgpLnRoZW4oSlNPTi5wYXJzZSl9LHRoaXN9ZnVuY3Rpb24gdyh0LGUpe3ZhciBuLHI9KGU9ZXx8e30pLmJvZHk7aWYodCBpbnN0YW5jZW9mIHcpe2lmKHQuYm9keVVzZWQpdGhyb3cgbmV3IFR5cGVFcnJvcigiQWxyZWFkeSByZWFkIik7dGhpcy51cmw9dC51cmwsdGhpcy5jcmVkZW50aWFscz10LmNyZWRlbnRpYWxzLGUuaGVhZGVyc3x8KHRoaXMuaGVhZGVycz1uZXcgZCh0LmhlYWRlcnMpKSx0aGlzLm1ldGhvZD10Lm1ldGhvZCx0aGlzLm1vZGU9dC5tb2RlLHJ8fG51bGw9PXQuX2JvZHlJbml0fHwocj10Ll9ib2R5SW5pdCx0LmJvZHlVc2VkPSEwKX1lbHNlIHRoaXMudXJsPVN0cmluZyh0KTtpZih0aGlzLmNyZWRlbnRpYWxzPWUuY3JlZGVudGlhbHN8fHRoaXMuY3JlZGVudGlhbHN8fCJvbWl0IiwhZS5oZWFkZXJzJiZ0aGlzLmhlYWRlcnN8fCh0aGlzLmhlYWRlcnM9bmV3IGQoZS5oZWFkZXJzKSksdGhpcy5tZXRob2Q9KG49ZS5tZXRob2R8fHRoaXMubWV0aG9kfHwiR0VUIix0PW4udG9VcHBlckNhc2UoKSwtMTxjLmluZGV4T2YodCk/dDpuKSx0aGlzLm1vZGU9ZS5tb2RlfHx0aGlzLm1vZGV8fG51bGwsdGhpcy5yZWZlcnJlcj1udWxsLCgiR0VUIj09PXRoaXMubWV0aG9kfHwiSEVBRCI9PT10aGlzLm1ldGhvZCkmJnIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQm9keSBub3QgYWxsb3dlZCBmb3IgR0VUIG9yIEhFQUQgcmVxdWVzdHMiKTt0aGlzLl9pbml0Qm9keShyKX1mdW5jdGlvbiBfKHQpe3ZhciBuPW5ldyBGb3JtRGF0YTtyZXR1cm4gdC50cmltKCkuc3BsaXQoIiYiKS5mb3JFYWNoKGZ1bmN0aW9uKHQpe3ZhciBlO3QmJih0PShlPXQuc3BsaXQoIj0iKSkuc2hpZnQoKS5yZXBsYWNlKC9cKy9nLCIgIiksZT1lLmpvaW4oIj0iKS5yZXBsYWNlKC9cKy9nLCIgIiksbi5hcHBlbmQoZGVjb2RlVVJJQ29tcG9uZW50KHQpLGRlY29kZVVSSUNvbXBvbmVudChlKSkpfSksbn1mdW5jdGlvbiBJKHQsZSl7ZT1lfHx7fSx0aGlzLnR5cGU9ImRlZmF1bHQiLHRoaXMuc3RhdHVzPXZvaWQgMD09PWUuc3RhdHVzPzIwMDplLnN0YXR1cyx0aGlzLm9rPTIwMDw9dGhpcy5zdGF0dXMmJnRoaXMuc3RhdHVzPDMwMCx0aGlzLnN0YXR1c1RleHQ9InN0YXR1c1RleHQiaW4gZT9lLnN0YXR1c1RleHQ6Ik9LIix0aGlzLmhlYWRlcnM9bmV3IGQoZS5oZWFkZXJzKSx0aGlzLnVybD1lLnVybHx8IiIsdGhpcy5faW5pdEJvZHkodCl9dC5mZXRjaHx8KGU9IlVSTFNlYXJjaFBhcmFtcyJpbiB0LG49IlN5bWJvbCJpbiB0JiYiaXRlcmF0b3IiaW4gU3ltYm9sLHM9IkZpbGVSZWFkZXIiaW4gdCYmIkJsb2IiaW4gdCYmZnVuY3Rpb24oKXt0cnl7cmV0dXJuIG5ldyBCbG9iLCEwfWNhdGNoKHQpe3JldHVybiExfX0oKSxyPSJGb3JtRGF0YSJpbiB0LChpPSJBcnJheUJ1ZmZlciJpbiB0KSYmKG89WyJbb2JqZWN0IEludDhBcnJheV0iLCJbb2JqZWN0IFVpbnQ4QXJyYXldIiwiW29iamVjdCBVaW50OENsYW1wZWRBcnJheV0iLCJbb2JqZWN0IEludDE2QXJyYXldIiwiW29iamVjdCBVaW50MTZBcnJheV0iLCJbb2JqZWN0IEludDMyQXJyYXldIiwiW29iamVjdCBVaW50MzJBcnJheV0iLCJbb2JqZWN0IEZsb2F0MzJBcnJheV0iLCJbb2JqZWN0IEZsb2F0NjRBcnJheV0iXSxhPWZ1bmN0aW9uKHQpe3JldHVybiB0JiZEYXRhVmlldy5wcm90b3R5cGUuaXNQcm90b3R5cGVPZih0KX0sdT1BcnJheUJ1ZmZlci5pc1ZpZXd8fGZ1bmN0aW9uKHQpe3JldHVybiB0JiYtMTxvLmluZGV4T2YoT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHQpKX0pLGQucHJvdG90eXBlLmFwcGVuZD1mdW5jdGlvbih0LGUpe3Q9bCh0KSxlPWYoZSk7dmFyIG49dGhpcy5tYXBbdF07dGhpcy5tYXBbdF09bj9uKyIsIitlOmV9LGQucHJvdG90eXBlLmRlbGV0ZT1mdW5jdGlvbih0KXtkZWxldGUgdGhpcy5tYXBbbCh0KV19LGQucHJvdG90eXBlLmdldD1mdW5jdGlvbih0KXtyZXR1cm4gdD1sKHQpLHRoaXMuaGFzKHQpP3RoaXMubWFwW3RdOm51bGx9LGQucHJvdG90eXBlLmhhcz1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5tYXAuaGFzT3duUHJvcGVydHkobCh0KSl9LGQucHJvdG90eXBlLnNldD1mdW5jdGlvbih0LGUpe3RoaXMubWFwW2wodCldPWYoZSl9LGQucHJvdG90eXBlLmZvckVhY2g9ZnVuY3Rpb24odCxlKXtmb3IodmFyIG4gaW4gdGhpcy5tYXApdGhpcy5tYXAuaGFzT3duUHJvcGVydHkobikmJnQuY2FsbChlLHRoaXMubWFwW25dLG4sdGhpcyl9LGQucHJvdG90eXBlLmtleXM9ZnVuY3Rpb24oKXt2YXIgbj1bXTtyZXR1cm4gdGhpcy5mb3JFYWNoKGZ1bmN0aW9uKHQsZSl7bi5wdXNoKGUpfSkscChuKX0sZC5wcm90b3R5cGUudmFsdWVzPWZ1bmN0aW9uKCl7dmFyIGU9W107cmV0dXJuIHRoaXMuZm9yRWFjaChmdW5jdGlvbih0KXtlLnB1c2godCl9KSxwKGUpfSxkLnByb3RvdHlwZS5lbnRyaWVzPWZ1bmN0aW9uKCl7dmFyIG49W107cmV0dXJuIHRoaXMuZm9yRWFjaChmdW5jdGlvbih0LGUpe24ucHVzaChbZSx0XSl9KSxwKG4pfSxuJiYoZC5wcm90b3R5cGVbU3ltYm9sLml0ZXJhdG9yXT1kLnByb3RvdHlwZS5lbnRyaWVzKSxjPVsiREVMRVRFIiwiR0VUIiwiSEVBRCIsIk9QVElPTlMiLCJQT1NUIiwiUFVUIl0sdy5wcm90b3R5cGUuY2xvbmU9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IHcodGhpcyx7Ym9keTp0aGlzLl9ib2R5SW5pdH0pfSxiLmNhbGwody5wcm90b3R5cGUpLGIuY2FsbChJLnByb3RvdHlwZSksSS5wcm90b3R5cGUuY2xvbmU9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IEkodGhpcy5fYm9keUluaXQse3N0YXR1czp0aGlzLnN0YXR1cyxzdGF0dXNUZXh0OnRoaXMuc3RhdHVzVGV4dCxoZWFkZXJzOm5ldyBkKHRoaXMuaGVhZGVycyksdXJsOnRoaXMudXJsfSl9LEkuZXJyb3I9ZnVuY3Rpb24oKXt2YXIgdD1uZXcgSShudWxsLHtzdGF0dXM6MCxzdGF0dXNUZXh0OiIifSk7cmV0dXJuIHQudHlwZT0iZXJyb3IiLHR9LGg9WzMwMSwzMDIsMzAzLDMwNywzMDhdLEkucmVkaXJlY3Q9ZnVuY3Rpb24odCxlKXtpZigtMT09PWguaW5kZXhPZihlKSl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiSW52YWxpZCBzdGF0dXMgY29kZSIpO3JldHVybiBuZXcgSShudWxsLHtzdGF0dXM6ZSxoZWFkZXJzOntsb2NhdGlvbjp0fX0pfSx0LkhlYWRlcnM9ZCx0LlJlcXVlc3Q9dyx0LlJlc3BvbnNlPUksdC5mZXRjaD1mdW5jdGlvbihuLG8pe3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihyLHQpe3ZhciBlPW5ldyB3KG4sbyksaT1uZXcgWE1MSHR0cFJlcXVlc3Q7aS5vbmxvYWQ9ZnVuY3Rpb24oKXt2YXIgbix0PXtzdGF0dXM6aS5zdGF0dXMsc3RhdHVzVGV4dDppLnN0YXR1c1RleHQsaGVhZGVyczooZT1pLmdldEFsbFJlc3BvbnNlSGVhZGVycygpfHwiIixuPW5ldyBkLGUucmVwbGFjZSgvXHI/XG5bXHQgXSsvZywiICIpLnNwbGl0KC9ccj9cbi8pLmZvckVhY2goZnVuY3Rpb24odCl7dmFyIGU9dC5zcGxpdCgiOiIpLHQ9ZS5zaGlmdCgpLnRyaW0oKTt0JiYoZT1lLmpvaW4oIjoiKS50cmltKCksbi5hcHBlbmQodCxlKSl9KSxuKX07dC51cmw9InJlc3BvbnNlVVJMImluIGk/aS5yZXNwb25zZVVSTDp0LmhlYWRlcnMuZ2V0KCJYLVJlcXVlc3QtVVJMIik7dmFyIGU9InJlc3BvbnNlImluIGk/aS5yZXNwb25zZTppLnJlc3BvbnNlVGV4dDtyKG5ldyBJKGUsdCkpfSxpLm9uZXJyb3I9ZnVuY3Rpb24oKXt0KG5ldyBUeXBlRXJyb3IoIk5ldHdvcmsgcmVxdWVzdCBmYWlsZWQiKSl9LGkub250aW1lb3V0PWZ1bmN0aW9uKCl7dChuZXcgVHlwZUVycm9yKCJOZXR3b3JrIHJlcXVlc3QgZmFpbGVkIikpfSxpLm9wZW4oZS5tZXRob2QsZS51cmwsITApLCJpbmNsdWRlIj09PWUuY3JlZGVudGlhbHM/aS53aXRoQ3JlZGVudGlhbHM9ITA6Im9taXQiPT09ZS5jcmVkZW50aWFscyYmKGkud2l0aENyZWRlbnRpYWxzPSExKSwicmVzcG9uc2VUeXBlImluIGkmJnMmJihpLnJlc3BvbnNlVHlwZT0iYmxvYiIpLGUuaGVhZGVycy5mb3JFYWNoKGZ1bmN0aW9uKHQsZSl7aS5zZXRSZXF1ZXN0SGVhZGVyKGUsdCl9KSxpLnNlbmQodm9pZCAwPT09ZS5fYm9keUluaXQ/bnVsbDplLl9ib2R5SW5pdCl9KX0sdC5mZXRjaC5wb2x5ZmlsbD0hMCl9KCJ1bmRlZmluZWQiIT10eXBlb2Ygc2VsZj9zZWxmOnZvaWQgMCk7dmFyIHQ9InVuZGVmaW5lZCIhPXR5cGVvZiBnbG9iYWxUaGlzP2dsb2JhbFRoaXM6InVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3c/d2luZG93OiJ1bmRlZmluZWQiIT10eXBlb2YgZ2xvYmFsP2dsb2JhbDoidW5kZWZpbmVkIiE9dHlwZW9mIHNlbGY/c2VsZjp7fTtmdW5jdGlvbiBlKHQpe3ZhciBlPXtleHBvcnRzOnt9fTtyZXR1cm4gdChlLGUuZXhwb3J0cyksZS5leHBvcnRzfWZ1bmN0aW9uIGcodCl7dHJ5e3JldHVybiEhdCgpfWNhdGNoKHQpe3JldHVybiEwfX1mdW5jdGlvbiB2KHQsZSl7cmV0dXJue2VudW1lcmFibGU6ISgxJnQpLGNvbmZpZ3VyYWJsZTohKDImdCksd3JpdGFibGU6ISg0JnQpLHZhbHVlOmV9fWZ1bmN0aW9uIHIodCl7cmV0dXJuIGQuY2FsbCh0KS5zbGljZSg4LC0xKX1mdW5jdGlvbiBzKHQpe2lmKG51bGw9PXQpdGhyb3cgVHlwZUVycm9yKCJDYW4ndCBjYWxsIG1ldGhvZCBvbiAiK3QpO3JldHVybiB0fWZ1bmN0aW9uIHUodCl7cmV0dXJuIF8ocyh0KSl9ZnVuY3Rpb24geSh0KXtyZXR1cm4ib2JqZWN0Ij09dHlwZW9mIHQ/bnVsbCE9PXQ6ImZ1bmN0aW9uIj09dHlwZW9mIHR9ZnVuY3Rpb24gaSh0LGUpe2lmKCF5KHQpKXJldHVybiB0O3ZhciBuLHI7aWYoZSYmImZ1bmN0aW9uIj09dHlwZW9mKG49dC50b1N0cmluZykmJiF5KHI9bi5jYWxsKHQpKSlyZXR1cm4gcjtpZigiZnVuY3Rpb24iPT10eXBlb2Yobj10LnZhbHVlT2YpJiYheShyPW4uY2FsbCh0KSkpcmV0dXJuIHI7aWYoIWUmJiJmdW5jdGlvbiI9PXR5cGVvZihuPXQudG9TdHJpbmcpJiYheShyPW4uY2FsbCh0KSkpcmV0dXJuIHI7dGhyb3cgVHlwZUVycm9yKCJDYW4ndCBjb252ZXJ0IG9iamVjdCB0byBwcmltaXRpdmUgdmFsdWUiKX1mdW5jdGlvbiBjKHQsZSl7cmV0dXJuIEkuY2FsbCh0LGUpfWZ1bmN0aW9uIG4odCl7cmV0dXJuIEU/VC5jcmVhdGVFbGVtZW50KHQpOnt9fWZ1bmN0aW9uIG0odCl7aWYoIXkodCkpdGhyb3cgVHlwZUVycm9yKFN0cmluZyh0KSsiIGlzIG5vdCBhbiBvYmplY3QiKTtyZXR1cm4gdH1mdW5jdGlvbiBoKGUsbil7dHJ5e1IoYixlLG4pfWNhdGNoKHQpe2JbZV09bn1yZXR1cm4gbn12YXIgbz1mdW5jdGlvbih0KXtyZXR1cm4gdCYmdC5NYXRoPT1NYXRoJiZ0fSxiPW8oIm9iamVjdCI9PXR5cGVvZiBnbG9iYWxUaGlzJiZnbG9iYWxUaGlzKXx8bygib2JqZWN0Ij09dHlwZW9mIHdpbmRvdyYmd2luZG93KXx8bygib2JqZWN0Ij09dHlwZW9mIHNlbGYmJnNlbGYpfHxvKCJvYmplY3QiPT10eXBlb2YgdCYmdCl8fGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KCl8fEZ1bmN0aW9uKCJyZXR1cm4gdGhpcyIpKCksZj0hZyhmdW5jdGlvbigpe3JldHVybiA3IT1PYmplY3QuZGVmaW5lUHJvcGVydHkoe30sMSx7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIDd9fSlbMV19KSxhPXt9LnByb3BlcnR5SXNFbnVtZXJhYmxlLGw9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcixwPXtmOmwmJiFhLmNhbGwoezE6Mn0sMSk/ZnVuY3Rpb24odCl7dD1sKHRoaXMsdCk7cmV0dXJuISF0JiZ0LmVudW1lcmFibGV9OmF9LGQ9e30udG9TdHJpbmcsdz0iIi5zcGxpdCxfPWcoZnVuY3Rpb24oKXtyZXR1cm4hT2JqZWN0KCJ6IikucHJvcGVydHlJc0VudW1lcmFibGUoMCl9KT9mdW5jdGlvbih0KXtyZXR1cm4iU3RyaW5nIj09cih0KT93LmNhbGwodCwiIik6T2JqZWN0KHQpfTpPYmplY3QsST17fS5oYXNPd25Qcm9wZXJ0eSxUPWIuZG9jdW1lbnQsRT15KFQpJiZ5KFQuY3JlYXRlRWxlbWVudCksUz0hZiYmIWcoZnVuY3Rpb24oKXtyZXR1cm4gNyE9T2JqZWN0LmRlZmluZVByb3BlcnR5KG4oImRpdiIpLCJhIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIDd9fSkuYX0pLEM9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcixOPXtmOmY/QzpmdW5jdGlvbih0LGUpe2lmKHQ9dSh0KSxlPWkoZSwhMCksUyl0cnl7cmV0dXJuIEModCxlKX1jYXRjaCh0KXt9aWYoYyh0LGUpKXJldHVybiB2KCFwLmYuY2FsbCh0LGUpLHRbZV0pfX0sQT1PYmplY3QuZGVmaW5lUHJvcGVydHksaz17ZjpmP0E6ZnVuY3Rpb24odCxlLG4pe2lmKG0odCksZT1pKGUsITApLG0obiksUyl0cnl7cmV0dXJuIEEodCxlLG4pfWNhdGNoKHQpe31pZigiZ2V0ImluIG58fCJzZXQiaW4gbil0aHJvdyBUeXBlRXJyb3IoIkFjY2Vzc29ycyBub3Qgc3VwcG9ydGVkIik7cmV0dXJuInZhbHVlImluIG4mJih0W2VdPW4udmFsdWUpLHR9fSxSPWY/ZnVuY3Rpb24odCxlLG4pe3JldHVybiBrLmYodCxlLHYoMSxuKSl9OmZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gdFtlXT1uLHR9LFA9Il9fY29yZS1qc19zaGFyZWRfXyIsTz1iW1BdfHxoKFAse30pLEQ9RnVuY3Rpb24udG9TdHJpbmc7ImZ1bmN0aW9uIiE9dHlwZW9mIE8uaW5zcGVjdFNvdXJjZSYmKE8uaW5zcGVjdFNvdXJjZT1mdW5jdGlvbih0KXtyZXR1cm4gRC5jYWxsKHQpfSk7ZnVuY3Rpb24geCh0KXtyZXR1cm4iU3ltYm9sKCIrU3RyaW5nKHZvaWQgMD09PXQ/IiI6dCkrIilfIisoKytRK1kpLnRvU3RyaW5nKDM2KX12YXIgTCxNLEYsVSxqLHEsVixCLEs9Ty5pbnNwZWN0U291cmNlLFc9Yi5XZWFrTWFwLEg9ImZ1bmN0aW9uIj09dHlwZW9mIFcmJi9uYXRpdmUgY29kZS8udGVzdChLKFcpKSxHPSExLHo9ZShmdW5jdGlvbih0KXsodC5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIE9bdF18fChPW3RdPXZvaWQgMCE9PWU/ZTp7fSl9KSgidmVyc2lvbnMiLFtdKS5wdXNoKHt2ZXJzaW9uOiIzLjguMSIsbW9kZToiZ2xvYmFsIixjb3B5cmlnaHQ6IsKpIDIwMjAgRGVuaXMgUHVzaGthcmV2ICh6bG9pcm9jay5ydSkifSl9KSxRPTAsWT1NYXRoLnJhbmRvbSgpLFg9eigia2V5cyIpLEo9ZnVuY3Rpb24odCl7cmV0dXJuIFhbdF18fChYW3RdPXgodCkpfSwkPXt9LFo9Yi5XZWFrTWFwO1Y9SD8oTD1PLnN0YXRlfHwoTy5zdGF0ZT1uZXcgWiksTT1MLmdldCxGPUwuaGFzLFU9TC5zZXQsaj1mdW5jdGlvbih0LGUpe3JldHVybiBlLmZhY2FkZT10LFUuY2FsbChMLHQsZSksZX0scT1mdW5jdGlvbih0KXtyZXR1cm4gTS5jYWxsKEwsdCl8fHt9fSxmdW5jdGlvbih0KXtyZXR1cm4gRi5jYWxsKEwsdCl9KTooQj1KKCJzdGF0ZSIpLCRbQl09ITAsaj1mdW5jdGlvbih0LGUpe3JldHVybiBlLmZhY2FkZT10LFIodCxCLGUpLGV9LHE9ZnVuY3Rpb24odCl7cmV0dXJuIGModCxCKT90W0JdOnt9fSxmdW5jdGlvbih0KXtyZXR1cm4gYyh0LEIpfSk7ZnVuY3Rpb24gdHQodCl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDp2b2lkIDB9ZnVuY3Rpb24gZXQodCxlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aDwyP3R0KHB0W3RdKXx8dHQoYlt0XSk6cHRbdF0mJnB0W3RdW2VdfHxiW3RdJiZiW3RdW2VdfWZ1bmN0aW9uIG50KHQpe3JldHVybiBpc05hTih0PSt0KT8wOigwPHQ/dnQ6ZHQpKHQpfWZ1bmN0aW9uIHJ0KHQpe3JldHVybiAwPHQ/Z3QobnQodCksOTAwNzE5OTI1NDc0MDk5MSk6MH1mdW5jdGlvbiBpdCh0LGUpe3ZhciBuLHI9dSh0KSxpPTAsbz1bXTtmb3IobiBpbiByKSFjKCQsbikmJmMocixuKSYmby5wdXNoKG4pO2Zvcig7ZS5sZW5ndGg+aTspYyhyLG49ZVtpKytdKSYmKH53dChvLG4pfHxvLnB1c2gobikpO3JldHVybiBvfWZ1bmN0aW9uIG90KHQsZSl7Zm9yKHZhciBuPVN0KGUpLHI9ay5mLGk9Ti5mLG89MDtvPG4ubGVuZ3RoO28rKyl7dmFyIHM9bltvXTtjKHQscyl8fHIodCxzLGkoZSxzKSl9fWZ1bmN0aW9uIHN0KHQsZSl7dmFyIG4scixpLG89dC50YXJnZXQscz10Lmdsb2JhbCxhPXQuc3RhdCx1PXM/YjphP2Jbb118fGgobyx7fSk6KGJbb118fHt9KS5wcm90b3R5cGU7aWYodSlmb3IobiBpbiBlKXtpZihyPWVbbl0saT10Lm5vVGFyZ2V0R2V0PyhpPU90KHUsbikpJiZpLnZhbHVlOnVbbl0sIVB0KHM/bjpvKyhhPyIuIjoiIyIpK24sdC5mb3JjZWQpJiZ2b2lkIDAhPT1pKXtpZih0eXBlb2Ygcj09dHlwZW9mIGkpY29udGludWU7b3QocixpKX0odC5zaGFtfHxpJiZpLnNoYW0pJiZSKHIsInNoYW0iLCEwKSxmdCh1LG4scix0KX19ZnVuY3Rpb24gYXQodCl7cmV0dXJuIE9iamVjdChzKHQpKX1mdW5jdGlvbiB1dCgpe31mdW5jdGlvbiBjdCh0KXtyZXR1cm4iPHNjcmlwdD4iK3QrIjwvIitWdCsiPiJ9dmFyIGh0LGx0PXtzZXQ6aixnZXQ6cSxoYXM6VixlbmZvcmNlOmZ1bmN0aW9uKHQpe3JldHVybiBWKHQpP3EodCk6aih0LHt9KX0sZ2V0dGVyRm9yOmZ1bmN0aW9uKG4pe3JldHVybiBmdW5jdGlvbih0KXt2YXIgZTtpZigheSh0KXx8KGU9cSh0KSkudHlwZSE9PW4pdGhyb3cgVHlwZUVycm9yKCJJbmNvbXBhdGlibGUgcmVjZWl2ZXIsICIrbisiIHJlcXVpcmVkIik7cmV0dXJuIGV9fX0sZnQ9ZShmdW5jdGlvbih0KXt2YXIgZT1sdC5nZXQsYT1sdC5lbmZvcmNlLHU9U3RyaW5nKFN0cmluZykuc3BsaXQoIlN0cmluZyIpOyh0LmV4cG9ydHM9ZnVuY3Rpb24odCxlLG4scil7dmFyIGk9ISFyJiYhIXIudW5zYWZlLG89ISFyJiYhIXIuZW51bWVyYWJsZSxzPSEhciYmISFyLm5vVGFyZ2V0R2V0OyJmdW5jdGlvbiI9PXR5cGVvZiBuJiYoInN0cmluZyIhPXR5cGVvZiBlfHxjKG4sIm5hbWUiKXx8UihuLCJuYW1lIixlKSwocj1hKG4pKS5zb3VyY2V8fChyLnNvdXJjZT11LmpvaW4oInN0cmluZyI9PXR5cGVvZiBlP2U6IiIpKSksdCE9PWI/KGk/IXMmJnRbZV0mJihvPSEwKTpkZWxldGUgdFtlXSxvP3RbZV09bjpSKHQsZSxuKSk6bz90W2VdPW46aChlLG4pfSkoRnVuY3Rpb24ucHJvdG90eXBlLCJ0b1N0cmluZyIsZnVuY3Rpb24oKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgdGhpcyYmZSh0aGlzKS5zb3VyY2V8fEsodGhpcyl9KX0pLHB0PWIsZHQ9TWF0aC5jZWlsLHZ0PU1hdGguZmxvb3IsZ3Q9TWF0aC5taW4seXQ9TWF0aC5tYXgsbXQ9TWF0aC5taW4sYnQ9ZnVuY3Rpb24oYSl7cmV0dXJuIGZ1bmN0aW9uKHQsZSxuKXt2YXIgcixpPXUodCksbz1ydChpLmxlbmd0aCkscz1mdW5jdGlvbih0LGUpe3Q9bnQodCk7cmV0dXJuIHQ8MD95dCh0K2UsMCk6bXQodCxlKX0obixvKTtpZihhJiZlIT1lKXtmb3IoO3M8bzspaWYoKHI9aVtzKytdKSE9cilyZXR1cm4hMH1lbHNlIGZvcig7czxvO3MrKylpZigoYXx8cyBpbiBpKSYmaVtzXT09PWUpcmV0dXJuIGF8fHN8fDA7cmV0dXJuIWEmJi0xfX0sd3Q9e2luY2x1ZGVzOmJ0KCEwKSxpbmRleE9mOmJ0KCExKX0uaW5kZXhPZixfdD1bImNvbnN0cnVjdG9yIiwiaGFzT3duUHJvcGVydHkiLCJpc1Byb3RvdHlwZU9mIiwicHJvcGVydHlJc0VudW1lcmFibGUiLCJ0b0xvY2FsZVN0cmluZyIsInRvU3RyaW5nIiwidmFsdWVPZiJdLEl0PV90LmNvbmNhdCgibGVuZ3RoIiwicHJvdG90eXBlIiksVHQ9e2Y6T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXN8fGZ1bmN0aW9uKHQpe3JldHVybiBpdCh0LEl0KX19LEV0PXtmOk9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHN9LFN0PWV0KCJSZWZsZWN0Iiwib3duS2V5cyIpfHxmdW5jdGlvbih0KXt2YXIgZT1UdC5mKG0odCkpLG49RXQuZjtyZXR1cm4gbj9lLmNvbmNhdChuKHQpKTplfSxDdD0vI3xcLnByb3RvdHlwZVwuLyxvPWZ1bmN0aW9uKHQsZSl7dD1BdFtOdCh0KV07cmV0dXJuIHQ9PVJ0fHx0IT1rdCYmKCJmdW5jdGlvbiI9PXR5cGVvZiBlP2coZSk6ISFlKX0sTnQ9by5ub3JtYWxpemU9ZnVuY3Rpb24odCl7cmV0dXJuIFN0cmluZyh0KS5yZXBsYWNlKEN0LCIuIikudG9Mb3dlckNhc2UoKX0sQXQ9by5kYXRhPXt9LGt0PW8uTkFUSVZFPSJOIixSdD1vLlBPTFlGSUxMPSJQIixQdD1vLE90PU4uZix0PSFnKGZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCgpe31yZXR1cm4gdC5wcm90b3R5cGUuY29uc3RydWN0b3I9bnVsbCxPYmplY3QuZ2V0UHJvdG90eXBlT2YobmV3IHQpIT09dC5wcm90b3R5cGV9KSxEdD1KKCJJRV9QUk9UTyIpLHh0PU9iamVjdC5wcm90b3R5cGUsTHQ9dD9PYmplY3QuZ2V0UHJvdG90eXBlT2Y6ZnVuY3Rpb24odCl7cmV0dXJuIHQ9YXQodCksYyh0LER0KT90W0R0XToiZnVuY3Rpb24iPT10eXBlb2YgdC5jb25zdHJ1Y3RvciYmdCBpbnN0YW5jZW9mIHQuY29uc3RydWN0b3I/dC5jb25zdHJ1Y3Rvci5wcm90b3R5cGU6dCBpbnN0YW5jZW9mIE9iamVjdD94dDpudWxsfSxNdD1PYmplY3Quc2V0UHJvdG90eXBlT2Z8fCgiX19wcm90b19fImlue30/ZnVuY3Rpb24oKXt2YXIgbixyPSExLHQ9e307dHJ5eyhuPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoT2JqZWN0LnByb3RvdHlwZSwiX19wcm90b19fIikuc2V0KS5jYWxsKHQsW10pLHI9dCBpbnN0YW5jZW9mIEFycmF5fWNhdGNoKHQpe31yZXR1cm4gZnVuY3Rpb24odCxlKXtyZXR1cm4gbSh0KSxmdW5jdGlvbih0KXtpZigheSh0KSYmbnVsbCE9PXQpdGhyb3cgVHlwZUVycm9yKCJDYW4ndCBzZXQgIitTdHJpbmcodCkrIiBhcyBhIHByb3RvdHlwZSIpfShlKSxyP24uY2FsbCh0LGUpOnQuX19wcm90b19fPWUsdH19KCk6dm9pZCAwKSxGdD1PYmplY3Qua2V5c3x8ZnVuY3Rpb24odCl7cmV0dXJuIGl0KHQsX3QpfSxVdD1mP09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzOmZ1bmN0aW9uKHQsZSl7bSh0KTtmb3IodmFyIG4scj1GdChlKSxpPXIubGVuZ3RoLG89MDtvPGk7KWsuZih0LG49cltvKytdLGVbbl0pO3JldHVybiB0fSxqdD1ldCgiZG9jdW1lbnQiLCJkb2N1bWVudEVsZW1lbnQiKSxxdD0icHJvdG90eXBlIixWdD0ic2NyaXB0IixCdD1KKCJJRV9QUk9UTyIpLEt0PWZ1bmN0aW9uKCl7dHJ5e2h0PWRvY3VtZW50LmRvbWFpbiYmbmV3IEFjdGl2ZVhPYmplY3QoImh0bWxmaWxlIil9Y2F0Y2godCl7fXZhciB0O0t0PWh0P2Z1bmN0aW9uKHQpe3Qud3JpdGUoY3QoIiIpKSx0LmNsb3NlKCk7dmFyIGU9dC5wYXJlbnRXaW5kb3cuT2JqZWN0O3JldHVybiB0PW51bGwsZX0oaHQpOigodD1uKCJpZnJhbWUiKSkuc3R5bGUuZGlzcGxheT0ibm9uZSIsanQuYXBwZW5kQ2hpbGQodCksdC5zcmM9U3RyaW5nKCJqYXZhc2NyaXB0OiIpLCh0PXQuY29udGVudFdpbmRvdy5kb2N1bWVudCkub3BlbigpLHQud3JpdGUoY3QoImRvY3VtZW50LkY9T2JqZWN0IikpLHQuY2xvc2UoKSx0LkYpO2Zvcih2YXIgZT1fdC5sZW5ndGg7ZS0tOylkZWxldGUgS3RbcXRdW190W2VdXTtyZXR1cm4gS3QoKX07JFtCdF09ITA7ZnVuY3Rpb24gV3QodCl7cmV0dXJuIGMoWHQsdCl8fChZdCYmYyhKdCx0KT9YdFt0XT1KdFt0XTpYdFt0XT0kdCgiU3ltYm9sLiIrdCkpLFh0W3RdfWZ1bmN0aW9uIEh0KHQpe3JldHVybiB2b2lkIDAhPT10JiYoWnQuQXJyYXk9PT10fHxlZVt0ZV09PT10KX1mdW5jdGlvbiBHdCh0KXtpZigiZnVuY3Rpb24iIT10eXBlb2YgdCl0aHJvdyBUeXBlRXJyb3IoU3RyaW5nKHQpKyIgaXMgbm90IGEgZnVuY3Rpb24iKTtyZXR1cm4gdH1mdW5jdGlvbiB6dChyLGksdCl7aWYoR3Qociksdm9pZCAwPT09aSlyZXR1cm4gcjtzd2l0Y2godCl7Y2FzZSAwOnJldHVybiBmdW5jdGlvbigpe3JldHVybiByLmNhbGwoaSl9O2Nhc2UgMTpyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIHIuY2FsbChpLHQpfTtjYXNlIDI6cmV0dXJuIGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHIuY2FsbChpLHQsZSl9O2Nhc2UgMzpyZXR1cm4gZnVuY3Rpb24odCxlLG4pe3JldHVybiByLmNhbGwoaSx0LGUsbil9fXJldHVybiBmdW5jdGlvbigpe3JldHVybiByLmFwcGx5KGksYXJndW1lbnRzKX19dmFyIFF0PU9iamVjdC5jcmVhdGV8fGZ1bmN0aW9uKHQsZSl7dmFyIG47cmV0dXJuIG51bGwhPT10Pyh1dFtxdF09bSh0KSxuPW5ldyB1dCx1dFtxdF09bnVsbCxuW0J0XT10KTpuPUt0KCksdm9pZCAwPT09ZT9uOlV0KG4sZSl9LFl0PSEhT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyYmIWcoZnVuY3Rpb24oKXtyZXR1cm4hU3RyaW5nKFN5bWJvbCgpKX0pLGE9WXQmJiFTeW1ib2wuc2hhbSYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3IsWHQ9eigid2tzIiksSnQ9Yi5TeW1ib2wsJHQ9YT9KdDpKdCYmSnQud2l0aG91dFNldHRlcnx8eCxadD17fSx0ZT1XdCgiaXRlcmF0b3IiKSxlZT1BcnJheS5wcm90b3R5cGUsUD17fTtQW1d0KCJ0b1N0cmluZ1RhZyIpXT0ieiI7ZnVuY3Rpb24gbmUodCl7aWYobnVsbCE9dClyZXR1cm4gdFtjZV18fHRbIkBAaXRlcmF0b3IiXXx8WnRbdWUodCldfWZ1bmN0aW9uIHJlKHQpe3ZhciBlPXQucmV0dXJuO3JldHVybiB2b2lkIDAhPT1lJiZtKGUuY2FsbCh0KSkudmFsdWV9ZnVuY3Rpb24gaWUodCxlKXt0aGlzLnN0b3BwZWQ9dCx0aGlzLnJlc3VsdD1lfWZ1bmN0aW9uIG9lKHQsZSxuKXtmdW5jdGlvbiByKHQpe3JldHVybiBvJiZyZShvKSxuZXcgaWUoITAsdCl9ZnVuY3Rpb24gaSh0KXtyZXR1cm4gZj8obSh0KSxkP3YodFswXSx0WzFdLHIpOnYodFswXSx0WzFdKSk6ZD92KHQscik6dih0KX12YXIgbyxzLGEsdSxjLGgsbD1uJiZuLnRoYXQsZj0hKCFufHwhbi5BU19FTlRSSUVTKSxwPSEoIW58fCFuLklTX0lURVJBVE9SKSxkPSEoIW58fCFuLklOVEVSUlVQVEVEKSx2PXp0KGUsbCwxK2YrZCk7aWYocClvPXQ7ZWxzZXtpZigiZnVuY3Rpb24iIT10eXBlb2YocD1uZSh0KSkpdGhyb3cgVHlwZUVycm9yKCJUYXJnZXQgaXMgbm90IGl0ZXJhYmxlIik7aWYoSHQocCkpe2ZvcihzPTAsYT1ydCh0Lmxlbmd0aCk7czxhO3MrKylpZigodT1pKHRbc10pKSYmdSBpbnN0YW5jZW9mIGllKXJldHVybiB1O3JldHVybiBuZXcgaWUoITEpfW89cC5jYWxsKHQpfWZvcihjPW8ubmV4dDshKGg9Yy5jYWxsKG8pKS5kb25lOyl7dHJ5e3U9aShoLnZhbHVlKX1jYXRjaCh0KXt0aHJvdyByZShvKSx0fWlmKCJvYmplY3QiPT10eXBlb2YgdSYmdSYmdSBpbnN0YW5jZW9mIGllKXJldHVybiB1fXJldHVybiBuZXcgaWUoITEpfXZhciBXPSJbb2JqZWN0IHpdIj09PVN0cmluZyhQKSxzZT1XdCgidG9TdHJpbmdUYWciKSxhZT0iQXJndW1lbnRzIj09cihmdW5jdGlvbigpe3JldHVybiBhcmd1bWVudHN9KCkpLHVlPVc/cjpmdW5jdGlvbih0KXt2YXIgZTtyZXR1cm4gdm9pZCAwPT09dD8iVW5kZWZpbmVkIjpudWxsPT09dD8iTnVsbCI6InN0cmluZyI9PXR5cGVvZih0PWZ1bmN0aW9uKHQsZSl7dHJ5e3JldHVybiB0W2VdfWNhdGNoKHQpe319KGU9T2JqZWN0KHQpLHNlKSk/dDphZT9yKGUpOiJPYmplY3QiPT0odD1yKGUpKSYmImZ1bmN0aW9uIj09dHlwZW9mIGUuY2FsbGVlPyJBcmd1bWVudHMiOnR9LGNlPVd0KCJpdGVyYXRvciIpLGhlPWZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcztpZighKG4gaW5zdGFuY2VvZiBoZSkpcmV0dXJuIG5ldyBoZSh0LGUpO010JiYobj1NdChuZXcgRXJyb3Iodm9pZCAwKSxMdChuKSkpLHZvaWQgMCE9PWUmJlIobiwibWVzc2FnZSIsU3RyaW5nKGUpKTtlPVtdO3JldHVybiBvZSh0LGUucHVzaCx7dGhhdDplfSksUihuLCJlcnJvcnMiLGUpLG59O2hlLnByb3RvdHlwZT1RdChFcnJvci5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnYoNSxoZSksbWVzc2FnZTp2KDUsIiIpLG5hbWU6dig1LCJBZ2dyZWdhdGVFcnJvciIpfSksc3Qoe2dsb2JhbDohMH0se0FnZ3JlZ2F0ZUVycm9yOmhlfSk7SD1XP3t9LnRvU3RyaW5nOmZ1bmN0aW9uKCl7cmV0dXJuIltvYmplY3QgIit1ZSh0aGlzKSsiXSJ9O1d8fGZ0KE9iamVjdC5wcm90b3R5cGUsInRvU3RyaW5nIixILHt1bnNhZmU6ITB9KTtmdW5jdGlvbiBsZSh0LGUsbil7Zm9yKHZhciByIGluIGUpZnQodCxyLGVbcl0sbik7cmV0dXJuIHR9ZnVuY3Rpb24gZmUodCxlLG4pe3QmJiFjKHQ9bj90OnQucHJvdG90eXBlLHllKSYmZ2UodCx5ZSx7Y29uZmlndXJhYmxlOiEwLHZhbHVlOmV9KX1mdW5jdGlvbiBwZSh0KXt2YXIgZT1ldCh0KSx0PWsuZjtmJiZlJiYhZVttZV0mJnQoZSxtZSx7Y29uZmlndXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzfX0pfWZ1bmN0aW9uIGRlKHQsZSxuKXtpZighKHQgaW5zdGFuY2VvZiBlKSl0aHJvdyBUeXBlRXJyb3IoIkluY29ycmVjdCAiKyhuP24rIiAiOiIiKSsiaW52b2NhdGlvbiIpO3JldHVybiB0fXZhciB2ZT1iLlByb21pc2UsZ2U9ay5mLHllPVd0KCJ0b1N0cmluZ1RhZyIpLG1lPVd0KCJzcGVjaWVzIiksYmU9V3QoIml0ZXJhdG9yIiksd2U9ITE7dHJ5e3ZhciBfZT0wLEllPXtuZXh0OmZ1bmN0aW9uKCl7cmV0dXJue2RvbmU6ISFfZSsrfX0scmV0dXJuOmZ1bmN0aW9uKCl7d2U9ITB9fTtJZVtiZV09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30sQXJyYXkuZnJvbShJZSxmdW5jdGlvbigpe3Rocm93IDJ9KX1jYXRjaChGcyl7fWZ1bmN0aW9uIFRlKHQsZSl7aWYoIWUmJiF3ZSlyZXR1cm4hMTt2YXIgbj0hMTt0cnl7dmFyIHI9e307cltiZV09ZnVuY3Rpb24oKXtyZXR1cm57bmV4dDpmdW5jdGlvbigpe3JldHVybntkb25lOm49ITB9fX19LHQocil9Y2F0Y2godCl7fXJldHVybiBufWZ1bmN0aW9uIEVlKHQsZSl7dmFyIG47cmV0dXJuIHZvaWQgMD09PSh0PW0odCkuY29uc3RydWN0b3IpfHxudWxsPT0obj1tKHQpW0FlXSk/ZTpHdChuKX1mdW5jdGlvbiBTZSh0KXt2YXIgZTt4ZS5oYXNPd25Qcm9wZXJ0eSh0KSYmKGU9eGVbdF0sZGVsZXRlIHhlW3RdLGUoKSl9ZnVuY3Rpb24gQ2UodCl7cmV0dXJuIGZ1bmN0aW9uKCl7U2UodCl9fXZhciBOZSxBZT1XdCgic3BlY2llcyIpLFo9ZXQoIm5hdmlnYXRvciIsInVzZXJBZ2VudCIpfHwiIixidD0vKGlwaG9uZXxpcG9kfGlwYWQpLiphcHBsZXdlYmtpdC9pLnRlc3QoWiksa2U9InByb2Nlc3MiPT1yKGIucHJvY2VzcyksUmU9Yi5sb2NhdGlvbixvPWIuc2V0SW1tZWRpYXRlLHQ9Yi5jbGVhckltbWVkaWF0ZSxQZT1iLnByb2Nlc3MsUD1iLk1lc3NhZ2VDaGFubmVsLE9lPWIuRGlzcGF0Y2gsRGU9MCx4ZT17fSxMZT0ib25yZWFkeXN0YXRlY2hhbmdlIixXPWZ1bmN0aW9uKHQpe1NlKHQuZGF0YSl9LEg9ZnVuY3Rpb24odCl7Yi5wb3N0TWVzc2FnZSh0KyIiLFJlLnByb3RvY29sKyIvLyIrUmUuaG9zdCl9O28mJnR8fChvPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1bXSxuPTE7bjxhcmd1bWVudHMubGVuZ3RoOyllLnB1c2goYXJndW1lbnRzW24rK10pO3JldHVybiB4ZVsrK0RlXT1mdW5jdGlvbigpeygiZnVuY3Rpb24iPT10eXBlb2YgdD90OkZ1bmN0aW9uKHQpKS5hcHBseSh2b2lkIDAsZSl9LE5lKERlKSxEZX0sdD1mdW5jdGlvbih0KXtkZWxldGUgeGVbdF19LGtlP05lPWZ1bmN0aW9uKHQpe1BlLm5leHRUaWNrKENlKHQpKX06T2UmJk9lLm5vdz9OZT1mdW5jdGlvbih0KXtPZS5ub3coQ2UodCkpfTpQJiYhYnQ/KFdlPShQPW5ldyBQKS5wb3J0MixQLnBvcnQxLm9ubWVzc2FnZT1XLE5lPXp0KFdlLnBvc3RNZXNzYWdlLFdlLDEpKTpiLmFkZEV2ZW50TGlzdGVuZXImJiJmdW5jdGlvbiI9PXR5cGVvZiBwb3N0TWVzc2FnZSYmIWIuaW1wb3J0U2NyaXB0cyYmUmUmJiJmaWxlOiIhPT1SZS5wcm90b2NvbCYmIWcoSCk/KE5lPUgsYi5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIixXLCExKSk6TmU9TGUgaW4gbigic2NyaXB0Iik/ZnVuY3Rpb24odCl7anQuYXBwZW5kQ2hpbGQobigic2NyaXB0IikpW0xlXT1mdW5jdGlvbigpe2p0LnJlbW92ZUNoaWxkKHRoaXMpLFNlKHQpfX06ZnVuY3Rpb24odCl7c2V0VGltZW91dChDZSh0KSwwKX0pO3ZhciBNZSxGZSxVZSxqZSxxZSxWZSxCZSxLZSxXZT17c2V0Om8sY2xlYXI6dH0sSD1OLmYsSGU9V2Uuc2V0LFc9Yi5NdXRhdGlvbk9ic2VydmVyfHxiLldlYktpdE11dGF0aW9uT2JzZXJ2ZXIsbz1iLmRvY3VtZW50LEdlPWIucHJvY2Vzcyx0PWIuUHJvbWlzZSxIPUgoYiwicXVldWVNaWNyb3Rhc2siKSxIPUgmJkgudmFsdWU7SHx8KE1lPWZ1bmN0aW9uKCl7dmFyIHQsZTtmb3Ioa2UmJih0PUdlLmRvbWFpbikmJnQuZXhpdCgpO0ZlOyl7ZT1GZS5mbixGZT1GZS5uZXh0O3RyeXtlKCl9Y2F0Y2godCl7dGhyb3cgRmU/amUoKTpVZT12b2lkIDAsdH19VWU9dm9pZCAwLHQmJnQuZW50ZXIoKX0samU9IWJ0JiYha2UmJlcmJm8/KHFlPSEwLFZlPW8uY3JlYXRlVGV4dE5vZGUoIiIpLG5ldyBXKE1lKS5vYnNlcnZlKFZlLHtjaGFyYWN0ZXJEYXRhOiEwfSksZnVuY3Rpb24oKXtWZS5kYXRhPXFlPSFxZX0pOnQmJnQucmVzb2x2ZT8oQmU9dC5yZXNvbHZlKHZvaWQgMCksS2U9QmUudGhlbixmdW5jdGlvbigpe0tlLmNhbGwoQmUsTWUpfSk6a2U/ZnVuY3Rpb24oKXtHZS5uZXh0VGljayhNZSl9OmZ1bmN0aW9uKCl7SGUuY2FsbChiLE1lKX0pO2Z1bmN0aW9uIHplKHQpe3ZhciBuLHI7dGhpcy5wcm9taXNlPW5ldyB0KGZ1bmN0aW9uKHQsZSl7aWYodm9pZCAwIT09bnx8dm9pZCAwIT09cil0aHJvdyBUeXBlRXJyb3IoIkJhZCBQcm9taXNlIGNvbnN0cnVjdG9yIik7bj10LHI9ZX0pLHRoaXMucmVzb2x2ZT1HdChuKSx0aGlzLnJlamVjdD1HdChyKX1mdW5jdGlvbiBRZSh0LGUpe3JldHVybiBtKHQpLHkoZSkmJmUuY29uc3RydWN0b3I9PT10P2U6KCgwLCh0PUplLmYodCkpLnJlc29sdmUpKGUpLHQucHJvbWlzZSl9ZnVuY3Rpb24gWWUodCl7dHJ5e3JldHVybntlcnJvcjohMSx2YWx1ZTp0KCl9fWNhdGNoKHQpe3JldHVybntlcnJvcjohMCx2YWx1ZTp0fX19dmFyIFhlPUh8fGZ1bmN0aW9uKHQpe3Q9e2ZuOnQsbmV4dDp2b2lkIDB9O1VlJiYoVWUubmV4dD10KSxGZXx8KEZlPXQsamUoKSksVWU9dH0sSmU9e2Y6ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyB6ZSh0KX19LEg9Yi5wcm9jZXNzLEg9SCYmSC52ZXJzaW9ucyxIPUgmJkgudjg7SD9Qbj0oU249SC5zcGxpdCgiLiIpKVswXStTblsxXTpaJiYoIShTbj1aLm1hdGNoKC9FZGdlXC8oXGQrKS8pKXx8NzQ8PVNuWzFdKSYmKFNuPVoubWF0Y2goL0Nocm9tZVwvKFxkKykvKSkmJihQbj1TblsxXSk7ZnVuY3Rpb24gJGUodCl7dmFyIGU7cmV0dXJuISgheSh0KXx8ImZ1bmN0aW9uIiE9dHlwZW9mKGU9dC50aGVuKSkmJmV9ZnVuY3Rpb24gWmUobCxmKXt2YXIgcDtsLm5vdGlmaWVkfHwobC5ub3RpZmllZD0hMCxwPWwucmVhY3Rpb25zLFhlKGZ1bmN0aW9uKCl7Zm9yKHZhciB0PWwudmFsdWUsZT0xPT1sLnN0YXRlLG49MDtwLmxlbmd0aD5uOyl7dmFyIHIsaSxvLHM9cFtuKytdLGE9ZT9zLm9rOnMuZmFpbCx1PXMucmVzb2x2ZSxjPXMucmVqZWN0LGg9cy5kb21haW47dHJ5e2E/KGV8fCgyPT09bC5yZWplY3Rpb24mJkFuKGwpLGwucmVqZWN0aW9uPTEpLCEwPT09YT9yPXQ6KGgmJmguZW50ZXIoKSxyPWEodCksaCYmKGguZXhpdCgpLG89ITApKSxyPT09cy5wcm9taXNlP2MoZ24oIlByb21pc2UtY2hhaW4gY3ljbGUiKSk6KGk9JGUocikpP2kuY2FsbChyLHUsYyk6dShyKSk6Yyh0KX1jYXRjaCh0KXtoJiYhbyYmaC5leGl0KCksYyh0KX19bC5yZWFjdGlvbnM9W10sbC5ub3RpZmllZD0hMSxmJiYhbC5yZWplY3Rpb24mJkNuKGwpfSkpfWZ1bmN0aW9uIHRuKHQsZSxuKXt2YXIgcixpO0luPygocj15bi5jcmVhdGVFdmVudCgiRXZlbnQiKSkucHJvbWlzZT1lLHIucmVhc29uPW4sci5pbml0RXZlbnQodCwhMSwhMCksYi5kaXNwYXRjaEV2ZW50KHIpKTpyPXtwcm9taXNlOmUscmVhc29uOm59LCFUbiYmKGk9Ylsib24iK3RdKT9pKHIpOnQ9PT1FbiYmZnVuY3Rpb24odCxlKXt2YXIgbj1iLmNvbnNvbGU7biYmbi5lcnJvciYmKDE9PT1hcmd1bWVudHMubGVuZ3RoP24uZXJyb3IodCk6bi5lcnJvcih0LGUpKX0oIlVuaGFuZGxlZCBwcm9taXNlIHJlamVjdGlvbiIsbil9ZnVuY3Rpb24gZW4oZSxuLHIpe3JldHVybiBmdW5jdGlvbih0KXtlKG4sdCxyKX19ZnVuY3Rpb24gbm4odCxlLG4pe3QuZG9uZXx8KHQuZG9uZT0hMCwodD1uP246dCkudmFsdWU9ZSx0LnN0YXRlPTIsWmUodCwhMCkpfXZhciBybixvbixzbixhbix1bj1QbiYmK1BuLGNuPVdlLnNldCxobj1XdCgic3BlY2llcyIpLGxuPSJQcm9taXNlIixmbj1sdC5nZXQscG49bHQuc2V0LGRuPWx0LmdldHRlckZvcihsbiksdm49dmUsZ249Yi5UeXBlRXJyb3IseW49Yi5kb2N1bWVudCxtbj1iLnByb2Nlc3MsYm49ZXQoImZldGNoIiksd249SmUuZixfbj13bixJbj0hISh5biYmeW4uY3JlYXRlRXZlbnQmJmIuZGlzcGF0Y2hFdmVudCksVG49ImZ1bmN0aW9uIj09dHlwZW9mIFByb21pc2VSZWplY3Rpb25FdmVudCxFbj0idW5oYW5kbGVkcmVqZWN0aW9uIixaPVB0KGxuLGZ1bmN0aW9uKCl7aWYoIShLKHZuKSE9PVN0cmluZyh2bikpKXtpZig2Nj09PXVuKXJldHVybiEwO2lmKCFrZSYmIVRuKXJldHVybiEwfWlmKDUxPD11biYmL25hdGl2ZSBjb2RlLy50ZXN0KHZuKSlyZXR1cm4hMTtmdW5jdGlvbiB0KHQpe3QoZnVuY3Rpb24oKXt9LGZ1bmN0aW9uKCl7fSl9dmFyIGU9dm4ucmVzb2x2ZSgxKTtyZXR1cm4oZS5jb25zdHJ1Y3Rvcj17fSlbaG5dPXQsIShlLnRoZW4oZnVuY3Rpb24oKXt9KWluc3RhbmNlb2YgdCl9KSxTbj1afHwhVGUoZnVuY3Rpb24odCl7dm4uYWxsKHQpLmNhdGNoKGZ1bmN0aW9uKCl7fSl9KSxDbj1mdW5jdGlvbihpKXtjbi5jYWxsKGIsZnVuY3Rpb24oKXt2YXIgdCxlPWkuZmFjYWRlLG49aS52YWx1ZSxyPU5uKGkpO2lmKHImJih0PVllKGZ1bmN0aW9uKCl7a2U/bW4uZW1pdCgidW5oYW5kbGVkUmVqZWN0aW9uIixuLGUpOnRuKEVuLGUsbil9KSxpLnJlamVjdGlvbj1rZXx8Tm4oaSk/MjoxLHQuZXJyb3IpKXRocm93IHQudmFsdWV9KX0sTm49ZnVuY3Rpb24odCl7cmV0dXJuIDEhPT10LnJlamVjdGlvbiYmIXQucGFyZW50fSxBbj1mdW5jdGlvbihlKXtjbi5jYWxsKGIsZnVuY3Rpb24oKXt2YXIgdD1lLmZhY2FkZTtrZT9tbi5lbWl0KCJyZWplY3Rpb25IYW5kbGVkIix0KTp0bigicmVqZWN0aW9uaGFuZGxlZCIsdCxlLnZhbHVlKX0pfSxrbj1mdW5jdGlvbihuLHQsZSl7aWYoIW4uZG9uZSl7bi5kb25lPSEwLGUmJihuPWUpO3RyeXtpZihuLmZhY2FkZT09PXQpdGhyb3cgZ24oIlByb21pc2UgY2FuJ3QgYmUgcmVzb2x2ZWQgaXRzZWxmIik7dmFyIHI9JGUodCk7cj9YZShmdW5jdGlvbigpe3ZhciBlPXtkb25lOiExfTt0cnl7ci5jYWxsKHQsZW4oa24sZSxuKSxlbihubixlLG4pKX1jYXRjaCh0KXtubihlLHQsbil9fSk6KG4udmFsdWU9dCxuLnN0YXRlPTEsWmUobiwhMSkpfWNhdGNoKHQpe25uKHtkb25lOiExfSx0LG4pfX19O1omJih2bj1mdW5jdGlvbih0KXtkZSh0aGlzLHZuLGxuKSxHdCh0KSxybi5jYWxsKHRoaXMpO3ZhciBlPWZuKHRoaXMpO3RyeXt0KGVuKGtuLGUpLGVuKG5uLGUpKX1jYXRjaCh0KXtubihlLHQpfX0sKHJuPWZ1bmN0aW9uKHQpe3BuKHRoaXMse3R5cGU6bG4sZG9uZTohMSxub3RpZmllZDohMSxwYXJlbnQ6ITEscmVhY3Rpb25zOltdLHJlamVjdGlvbjohMSxzdGF0ZTowLHZhbHVlOnZvaWQgMH0pfSkucHJvdG90eXBlPWxlKHZuLnByb3RvdHlwZSx7dGhlbjpmdW5jdGlvbih0LGUpe3ZhciBuPWRuKHRoaXMpLHI9d24oRWUodGhpcyx2bikpO3JldHVybiByLm9rPSJmdW5jdGlvbiIhPXR5cGVvZiB0fHx0LHIuZmFpbD0iZnVuY3Rpb24iPT10eXBlb2YgZSYmZSxyLmRvbWFpbj1rZT9tbi5kb21haW46dm9pZCAwLG4ucGFyZW50PSEwLG4ucmVhY3Rpb25zLnB1c2gociksMCE9bi5zdGF0ZSYmWmUobiwhMSksci5wcm9taXNlfSxjYXRjaDpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy50aGVuKHZvaWQgMCx0KX19KSxvbj1mdW5jdGlvbigpe3ZhciB0PW5ldyBybixlPWZuKHQpO3RoaXMucHJvbWlzZT10LHRoaXMucmVzb2x2ZT1lbihrbixlKSx0aGlzLnJlamVjdD1lbihubixlKX0sSmUuZj13bj1mdW5jdGlvbih0KXtyZXR1cm4gdD09PXZufHx0PT09c24/bmV3IG9uOl9uKHQpfSwiZnVuY3Rpb24iPT10eXBlb2YgdmUmJihhbj12ZS5wcm90b3R5cGUudGhlbixmdCh2ZS5wcm90b3R5cGUsInRoZW4iLGZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcztyZXR1cm4gbmV3IHZuKGZ1bmN0aW9uKHQsZSl7YW4uY2FsbChuLHQsZSl9KS50aGVuKHQsZSl9LHt1bnNhZmU6ITB9KSwiZnVuY3Rpb24iPT10eXBlb2YgYm4mJnN0KHtnbG9iYWw6ITAsZW51bWVyYWJsZTohMCxmb3JjZWQ6ITB9LHtmZXRjaDpmdW5jdGlvbih0KXtyZXR1cm4gUWUodm4sYm4uYXBwbHkoYixhcmd1bWVudHMpKX19KSkpLHN0KHtnbG9iYWw6ITAsd3JhcDohMCxmb3JjZWQ6Wn0se1Byb21pc2U6dm59KSxmZSh2bixsbiwhMSkscGUobG4pLHNuPWV0KGxuKSxzdCh7dGFyZ2V0OmxuLHN0YXQ6ITAsZm9yY2VkOlp9LHtyZWplY3Q6ZnVuY3Rpb24odCl7dmFyIGU9d24odGhpcyk7cmV0dXJuIGUucmVqZWN0LmNhbGwodm9pZCAwLHQpLGUucHJvbWlzZX19KSxzdCh7dGFyZ2V0OmxuLHN0YXQ6ITAsZm9yY2VkOlp9LHtyZXNvbHZlOmZ1bmN0aW9uKHQpe3JldHVybiBRZSh0aGlzLHQpfX0pLHN0KHt0YXJnZXQ6bG4sc3RhdDohMCxmb3JjZWQ6U259LHthbGw6ZnVuY3Rpb24odCl7dmFyIGE9dGhpcyxlPXduKGEpLHU9ZS5yZXNvbHZlLGM9ZS5yZWplY3Qsbj1ZZShmdW5jdGlvbigpe3ZhciByPUd0KGEucmVzb2x2ZSksaT1bXSxvPTAscz0xO29lKHQsZnVuY3Rpb24odCl7dmFyIGU9bysrLG49ITE7aS5wdXNoKHZvaWQgMCkscysrLHIuY2FsbChhLHQpLnRoZW4oZnVuY3Rpb24odCl7bnx8KG49ITAsaVtlXT10LC0tc3x8dShpKSl9LGMpfSksLS1zfHx1KGkpfSk7cmV0dXJuIG4uZXJyb3ImJmMobi52YWx1ZSksZS5wcm9taXNlfSxyYWNlOmZ1bmN0aW9uKHQpe3ZhciBuPXRoaXMscj13bihuKSxpPXIucmVqZWN0LGU9WWUoZnVuY3Rpb24oKXt2YXIgZT1HdChuLnJlc29sdmUpO29lKHQsZnVuY3Rpb24odCl7ZS5jYWxsKG4sdCkudGhlbihyLnJlc29sdmUsaSl9KX0pO3JldHVybiBlLmVycm9yJiZpKGUudmFsdWUpLHIucHJvbWlzZX19KSxzdCh7dGFyZ2V0OiJQcm9taXNlIixzdGF0OiEwfSx7YWxsU2V0dGxlZDpmdW5jdGlvbih0KXt2YXIgYT10aGlzLGU9SmUuZihhKSx1PWUucmVzb2x2ZSxuPWUucmVqZWN0LHI9WWUoZnVuY3Rpb24oKXt2YXIgcj1HdChhLnJlc29sdmUpLGk9W10sbz0wLHM9MTtvZSh0LGZ1bmN0aW9uKHQpe3ZhciBlPW8rKyxuPSExO2kucHVzaCh2b2lkIDApLHMrKyxyLmNhbGwoYSx0KS50aGVuKGZ1bmN0aW9uKHQpe258fChuPSEwLGlbZV09e3N0YXR1czoiZnVsZmlsbGVkIix2YWx1ZTp0fSwtLXN8fHUoaSkpfSxmdW5jdGlvbih0KXtufHwobj0hMCxpW2VdPXtzdGF0dXM6InJlamVjdGVkIixyZWFzb246dH0sLS1zfHx1KGkpKX0pfSksLS1zfHx1KGkpfSk7cmV0dXJuIHIuZXJyb3ImJm4oci52YWx1ZSksZS5wcm9taXNlfX0pO3ZhciBSbj0iTm8gb25lIHByb21pc2UgcmVzb2x2ZWQiO3N0KHt0YXJnZXQ6IlByb21pc2UiLHN0YXQ6ITB9LHthbnk6ZnVuY3Rpb24odCl7dmFyIHU9dGhpcyxlPUplLmYodSksYz1lLnJlc29sdmUsaD1lLnJlamVjdCxuPVllKGZ1bmN0aW9uKCl7dmFyIHI9R3QodS5yZXNvbHZlKSxpPVtdLG89MCxzPTEsYT0hMTtvZSh0LGZ1bmN0aW9uKHQpe3ZhciBlPW8rKyxuPSExO2kucHVzaCh2b2lkIDApLHMrKyxyLmNhbGwodSx0KS50aGVuKGZ1bmN0aW9uKHQpe258fGF8fChhPSEwLGModCkpfSxmdW5jdGlvbih0KXtufHxhfHwobj0hMCxpW2VdPXQsLS1zfHxoKG5ldyhldCgiQWdncmVnYXRlRXJyb3IiKSkoaSxSbikpKX0pfSksLS1zfHxoKG5ldyhldCgiQWdncmVnYXRlRXJyb3IiKSkoaSxSbikpfSk7cmV0dXJuIG4uZXJyb3ImJmgobi52YWx1ZSksZS5wcm9taXNlfX0pO3ZhciBQbj0hIXZlJiZnKGZ1bmN0aW9uKCl7dmUucHJvdG90eXBlLmZpbmFsbHkuY2FsbCh7dGhlbjpmdW5jdGlvbigpe319LGZ1bmN0aW9uKCl7fSl9KTtzdCh7dGFyZ2V0OiJQcm9taXNlIixwcm90bzohMCxyZWFsOiEwLGZvcmNlZDpQbn0se2ZpbmFsbHk6ZnVuY3Rpb24oZSl7dmFyIG49RWUodGhpcyxldCgiUHJvbWlzZSIpKSx0PSJmdW5jdGlvbiI9PXR5cGVvZiBlO3JldHVybiB0aGlzLnRoZW4odD9mdW5jdGlvbih0KXtyZXR1cm4gUWUobixlKCkpLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gdH0pfTplLHQ/ZnVuY3Rpb24odCl7cmV0dXJuIFFlKG4sZSgpKS50aGVuKGZ1bmN0aW9uKCl7dGhyb3cgdH0pfTplKX19KSwiZnVuY3Rpb24iIT10eXBlb2YgdmV8fHZlLnByb3RvdHlwZS5maW5hbGx5fHxmdCh2ZS5wcm90b3R5cGUsImZpbmFsbHkiLGV0KCJQcm9taXNlIikucHJvdG90eXBlLmZpbmFsbHkpO1dlPWZ1bmN0aW9uKG8pe3JldHVybiBmdW5jdGlvbih0LGUpe3ZhciBuLHI9U3RyaW5nKHModCkpLGk9bnQoZSksdD1yLmxlbmd0aDtyZXR1cm4gaTwwfHx0PD1pP28/IiI6dm9pZCAwOihlPXIuY2hhckNvZGVBdChpKSk8NTUyOTZ8fDU2MzE5PGV8fGkrMT09PXR8fChuPXIuY2hhckNvZGVBdChpKzEpKTw1NjMyMHx8NTczNDM8bj9vP3IuY2hhckF0KGkpOmU6bz9yLnNsaWNlKGksaSsyKTpuLTU2MzIwKyhlLTU1Mjk2PDwxMCkrNjU1MzZ9fSxaPXtjb2RlQXQ6V2UoITEpLGNoYXJBdDpXZSghMCl9LFNuPVd0KCJpdGVyYXRvciIpLFBuPSExO1tdLmtleXMmJigibmV4dCJpbihRbj1bXS5rZXlzKCkpPyhscj1MdChMdChRbikpKSE9PU9iamVjdC5wcm90b3R5cGUmJihkcj1scik6UG49ITApLGMoZHI9bnVsbD09ZHI/e306ZHIsU24pfHxSKGRyLFNuLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KTtmdW5jdGlvbiBPbigpe3JldHVybiB0aGlzfWZ1bmN0aW9uIERuKCl7cmV0dXJuIHRoaXN9ZnVuY3Rpb24geG4odCxlLG4scixpLG8scyl7ZnVuY3Rpb24gYSh0KXtpZih0PT09aSYmZClyZXR1cm4gZDtpZighRm4mJnQgaW4gZilyZXR1cm4gZlt0XTtzd2l0Y2godCl7Y2FzZSJrZXlzIjpjYXNlIGpuOmNhc2UgcW46cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBuKHRoaXMsdCl9fXJldHVybiBmdW5jdGlvbigpe3JldHVybiBuZXcgbih0aGlzKX19IWZ1bmN0aW9uKHQsZSxuKXtlKz0iIEl0ZXJhdG9yIjt0LnByb3RvdHlwZT1RdChMbix7bmV4dDp2KDEsbil9KSxmZSh0LGUsITEpLFp0W2VdPU9ufShuLGUscik7dmFyIHUsYyxoPWUrIiBJdGVyYXRvciIsbD0hMSxmPXQucHJvdG90eXBlLHA9ZltVbl18fGZbIkBAaXRlcmF0b3IiXXx8aSYmZltpXSxkPSFGbiYmcHx8YShpKTtpZigocj0iQXJyYXkiPT1lJiZmLmVudHJpZXN8fHApJiYodD1MdChyLmNhbGwobmV3IHQpKSxNbiE9PU9iamVjdC5wcm90b3R5cGUmJnQubmV4dCYmKEx0KHQpIT09TW4mJihNdD9NdCh0LE1uKToiZnVuY3Rpb24iIT10eXBlb2YgdFtVbl0mJlIodCxVbixEbikpLGZlKHQsaCwhMCkpKSxpPT1qbiYmcCYmcC5uYW1lIT09am4mJihsPSEwLGQ9ZnVuY3Rpb24oKXtyZXR1cm4gcC5jYWxsKHRoaXMpfSksZltVbl0hPT1kJiZSKGYsVW4sZCksWnRbZV09ZCxpKWlmKHU9e3ZhbHVlczphKGpuKSxrZXlzOm8/ZDphKCJrZXlzIiksZW50cmllczphKHFuKX0scylmb3IoYyBpbiB1KSFGbiYmIWwmJmMgaW4gZnx8ZnQoZixjLHVbY10pO2Vsc2Ugc3Qoe3RhcmdldDplLHByb3RvOiEwLGZvcmNlZDpGbnx8bH0sdSk7cmV0dXJuIHV9dmFyIFdlPXtJdGVyYXRvclByb3RvdHlwZTpkcixCVUdHWV9TQUZBUklfSVRFUkFUT1JTOlBufSxMbj1XZS5JdGVyYXRvclByb3RvdHlwZSxNbj1XZS5JdGVyYXRvclByb3RvdHlwZSxGbj1XZS5CVUdHWV9TQUZBUklfSVRFUkFUT1JTLFVuPVd0KCJpdGVyYXRvciIpLGpuPSJ2YWx1ZXMiLHFuPSJlbnRyaWVzIixWbj1aLmNoYXJBdCxCbj0iU3RyaW5nIEl0ZXJhdG9yIixLbj1sdC5zZXQsV249bHQuZ2V0dGVyRm9yKEJuKTt4bihTdHJpbmcsIlN0cmluZyIsZnVuY3Rpb24odCl7S24odGhpcyx7dHlwZTpCbixzdHJpbmc6U3RyaW5nKHQpLGluZGV4OjB9KX0sZnVuY3Rpb24oKXt2YXIgdD1Xbih0aGlzKSxlPXQuc3RyaW5nLG49dC5pbmRleDtyZXR1cm4gbj49ZS5sZW5ndGg/e3ZhbHVlOnZvaWQgMCxkb25lOiEwfToobj1WbihlLG4pLHQuaW5kZXgrPW4ubGVuZ3RoLHt2YWx1ZTpuLGRvbmU6ITF9KX0pO3ZhciBIbj17Q1NTUnVsZUxpc3Q6MCxDU1NTdHlsZURlY2xhcmF0aW9uOjAsQ1NTVmFsdWVMaXN0OjAsQ2xpZW50UmVjdExpc3Q6MCxET01SZWN0TGlzdDowLERPTVN0cmluZ0xpc3Q6MCxET01Ub2tlbkxpc3Q6MSxEYXRhVHJhbnNmZXJJdGVtTGlzdDowLEZpbGVMaXN0OjAsSFRNTEFsbENvbGxlY3Rpb246MCxIVE1MQ29sbGVjdGlvbjowLEhUTUxGb3JtRWxlbWVudDowLEhUTUxTZWxlY3RFbGVtZW50OjAsTWVkaWFMaXN0OjAsTWltZVR5cGVBcnJheTowLE5hbWVkTm9kZU1hcDowLE5vZGVMaXN0OjEsUGFpbnRSZXF1ZXN0TGlzdDowLFBsdWdpbjowLFBsdWdpbkFycmF5OjAsU1ZHTGVuZ3RoTGlzdDowLFNWR051bWJlckxpc3Q6MCxTVkdQYXRoU2VnTGlzdDowLFNWR1BvaW50TGlzdDowLFNWR1N0cmluZ0xpc3Q6MCxTVkdUcmFuc2Zvcm1MaXN0OjAsU291cmNlQnVmZmVyTGlzdDowLFN0eWxlU2hlZXRMaXN0OjAsVGV4dFRyYWNrQ3VlTGlzdDowLFRleHRUcmFja0xpc3Q6MCxUb3VjaExpc3Q6MH0sR249V3QoInVuc2NvcGFibGVzIiksem49QXJyYXkucHJvdG90eXBlO251bGw9PXpuW0duXSYmay5mKHpuLEduLHtjb25maWd1cmFibGU6ITAsdmFsdWU6UXQobnVsbCl9KTt2YXIgUW49ZnVuY3Rpb24odCl7em5bR25dW3RdPSEwfSxZbj0iQXJyYXkgSXRlcmF0b3IiLFhuPWx0LnNldCxKbj1sdC5nZXR0ZXJGb3IoWW4pLCRuPXhuKEFycmF5LCJBcnJheSIsZnVuY3Rpb24odCxlKXtYbih0aGlzLHt0eXBlOlluLHRhcmdldDp1KHQpLGluZGV4OjAsa2luZDplfSl9LGZ1bmN0aW9uKCl7dmFyIHQ9Sm4odGhpcyksZT10LnRhcmdldCxuPXQua2luZCxyPXQuaW5kZXgrKztyZXR1cm4hZXx8cj49ZS5sZW5ndGg/e3ZhbHVlOnQudGFyZ2V0PXZvaWQgMCxkb25lOiEwfToia2V5cyI9PW4/e3ZhbHVlOnIsZG9uZTohMX06InZhbHVlcyI9PW4/e3ZhbHVlOmVbcl0sZG9uZTohMX06e3ZhbHVlOltyLGVbcl1dLGRvbmU6ITF9fSwidmFsdWVzIik7WnQuQXJndW1lbnRzPVp0LkFycmF5LFFuKCJrZXlzIiksUW4oInZhbHVlcyIpLFFuKCJlbnRyaWVzIik7dmFyIFpuLHRyPVd0KCJpdGVyYXRvciIpLGVyPVd0KCJ0b1N0cmluZ1RhZyIpLG5yPSRuLnZhbHVlcztmb3IoWm4gaW4gSG4pe3ZhciBycj1iW1puXSxpcj1yciYmcnIucHJvdG90eXBlO2lmKGlyKXtpZihpclt0cl0hPT1ucil0cnl7Uihpcix0cixucil9Y2F0Y2goRnMpe2lyW3RyXT1ucn1pZihpcltlcl18fFIoaXIsZXIsWm4pLEhuW1puXSlmb3IodmFyIG9yIGluICRuKWlmKGlyW29yXSE9PSRuW29yXSl0cnl7Uihpcixvciwkbltvcl0pfWNhdGNoKEZzKXtpcltvcl09JG5bb3JdfX19cHQuUHJvbWlzZTtzdCh7dGFyZ2V0OiJQcm9taXNlIixzdGF0OiEwfSx7dHJ5OmZ1bmN0aW9uKHQpe3ZhciBlPUplLmYodGhpcyksdD1ZZSh0KTtyZXR1cm4odC5lcnJvcj9lLnJlamVjdDplLnJlc29sdmUpKHQudmFsdWUpLGUucHJvbWlzZX19KTtmdW5jdGlvbiBzcih0LGUpe3ZhciBuO3JldHVybiBuZXcodm9pZCAwPT09KG49dXIodCkmJigiZnVuY3Rpb24iPT10eXBlb2Yobj10LmNvbnN0cnVjdG9yKSYmKG49PT1BcnJheXx8dXIobi5wcm90b3R5cGUpKXx8eShuKSYmbnVsbD09PShuPW5bY3JdKSk/dm9pZCAwOm4pP0FycmF5Om4pKDA9PT1lPzA6ZSl9ZnVuY3Rpb24gYXIodCl7dGhyb3cgdH12YXIgdXI9QXJyYXkuaXNBcnJheXx8ZnVuY3Rpb24odCl7cmV0dXJuIkFycmF5Ij09cih0KX0sY3I9V3QoInNwZWNpZXMiKSxocj1bXS5wdXNoLGxyPWZ1bmN0aW9uKGYpe3ZhciBwPTE9PWYsZD0yPT1mLHY9Mz09ZixnPTQ9PWYseT02PT1mLG09Nz09ZixiPTU9PWZ8fHk7cmV0dXJuIGZ1bmN0aW9uKHQsZSxuLHIpe2Zvcih2YXIgaSxvLHM9YXQodCksYT1fKHMpLHU9enQoZSxuLDMpLGM9cnQoYS5sZW5ndGgpLGg9MCxyPXJ8fHNyLGw9cD9yKHQsYyk6ZHx8bT9yKHQsMCk6dm9pZCAwO2g8YztoKyspaWYoKGJ8fGggaW4gYSkmJihvPXUoaT1hW2hdLGgscyksZikpaWYocClsW2hdPW87ZWxzZSBpZihvKXN3aXRjaChmKXtjYXNlIDM6cmV0dXJuITA7Y2FzZSA1OnJldHVybiBpO2Nhc2UgNjpyZXR1cm4gaDtjYXNlIDI6aHIuY2FsbChsLGkpfWVsc2Ugc3dpdGNoKGYpe2Nhc2UgNDpyZXR1cm4hMTtjYXNlIDc6aHIuY2FsbChsLGkpfXJldHVybiB5Py0xOnZ8fGc/ZzpsfX0sU249e2ZvckVhY2g6bHIoMCksbWFwOmxyKDEpLGZpbHRlcjpscigyKSxzb21lOmxyKDMpLGV2ZXJ5OmxyKDQpLGZpbmQ6bHIoNSksZmluZEluZGV4OmxyKDYpLGZpbHRlck91dDpscig3KX0sZnI9T2JqZWN0LmRlZmluZVByb3BlcnR5LHByPXt9LGRyPWZ1bmN0aW9uKHQsZSl7aWYoYyhwcix0KSlyZXR1cm4gcHJbdF07dmFyIG49W11bdF0scj0hIWMoZT1lfHx7fSwiQUNDRVNTT1JTIikmJmUuQUNDRVNTT1JTLGk9YyhlLDApP2VbMF06YXIsbz1jKGUsMSk/ZVsxXTp2b2lkIDA7cmV0dXJuIHByW3RdPSEhbiYmIWcoZnVuY3Rpb24oKXtpZihyJiYhZilyZXR1cm4gMTt2YXIgdD17bGVuZ3RoOi0xfTtyP2ZyKHQsMSx7ZW51bWVyYWJsZTohMCxnZXQ6YXJ9KTp0WzFdPTEsbi5jYWxsKHQsaSxvKX0pfSx2cj1Tbi5maW5kLFBuPSJmaW5kIixncj0hMCxXZT1kcihQbik7UG4gaW5bXSYmQXJyYXkoMSlbUG5dKGZ1bmN0aW9uKCl7Z3I9ITF9KSxzdCh7dGFyZ2V0OiJBcnJheSIscHJvdG86ITAsZm9yY2VkOmdyfHwhV2V9LHtmaW5kOmZ1bmN0aW9uKHQpe3JldHVybiB2cih0aGlzLHQsMTxhcmd1bWVudHMubGVuZ3RoP2FyZ3VtZW50c1sxXTp2b2lkIDApfX0pLFFuKFBuKTt2YXIgeXI9RnVuY3Rpb24uY2FsbCxaPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4genQoeXIsYlt0XS5wcm90b3R5cGVbZV0sbil9LG1yPShaKCJBcnJheSIsImZpbmQiKSxTbi5maW5kSW5kZXgpLGxyPSJmaW5kSW5kZXgiLGJyPSEwLFdlPWRyKGxyKTtsciBpbltdJiZBcnJheSgxKVtscl0oZnVuY3Rpb24oKXticj0hMX0pLHN0KHt0YXJnZXQ6IkFycmF5Iixwcm90bzohMCxmb3JjZWQ6YnJ8fCFXZX0se2ZpbmRJbmRleDpmdW5jdGlvbih0KXtyZXR1cm4gbXIodGhpcyx0LDE8YXJndW1lbnRzLmxlbmd0aD9hcmd1bWVudHNbMV06dm9pZCAwKX19KSxRbihscik7ZnVuY3Rpb24gd3IodCxlLG4peyhlPWkoZSkpaW4gdD9rLmYodCxlLHYoMCxuKSk6dFtlXT1ufVooIkFycmF5IiwiZmluZEluZGV4Iik7UG49IVRlKGZ1bmN0aW9uKHQpe0FycmF5LmZyb20odCl9KTtzdCh7dGFyZ2V0OiJBcnJheSIsc3RhdDohMCxmb3JjZWQ6UG59LHtmcm9tOmZ1bmN0aW9uKHQpe3ZhciBlLG4scixpLG8scyxhPWF0KHQpLHU9ImZ1bmN0aW9uIj09dHlwZW9mIHRoaXM/dGhpczpBcnJheSxjPWFyZ3VtZW50cy5sZW5ndGgsaD0xPGM/YXJndW1lbnRzWzFdOnZvaWQgMCxsPXZvaWQgMCE9PWgsdD1uZShhKSxmPTA7aWYobCYmKGg9enQoaCwyPGM/YXJndW1lbnRzWzJdOnZvaWQgMCwyKSksbnVsbD09dHx8dT09QXJyYXkmJkh0KHQpKWZvcihuPW5ldyB1KGU9cnQoYS5sZW5ndGgpKTtmPGU7ZisrKXM9bD9oKGFbZl0sZik6YVtmXSx3cihuLGYscyk7ZWxzZSBmb3Iobz0oaT10LmNhbGwoYSkpLm5leHQsbj1uZXcgdTshKHI9by5jYWxsKGkpKS5kb25lO2YrKylzPWw/ZnVuY3Rpb24oZSx0LG4scil7dHJ5e3JldHVybiByP3QobShuKVswXSxuWzFdKTp0KG4pfWNhdGNoKHQpe3Rocm93IHJlKGUpLHR9fShpLGgsW3IudmFsdWUsZl0sITApOnIudmFsdWUsd3IobixmLHMpO3JldHVybiBuLmxlbmd0aD1mLG59fSk7cHQuQXJyYXkuZnJvbTt2YXIgX3IsSXIsVHI9U24uc29tZSxXZT0hIShJcj1bXVsic29tZSJdKSYmZyhmdW5jdGlvbigpe0lyLmNhbGwobnVsbCxfcnx8ZnVuY3Rpb24oKXt0aHJvdyAxfSwxKX0pLFFuPWRyKCJzb21lIik7c3Qoe3RhcmdldDoiQXJyYXkiLHByb3RvOiEwLGZvcmNlZDohV2V8fCFRbn0se3NvbWU6ZnVuY3Rpb24odCl7cmV0dXJuIFRyKHRoaXMsdCwxPGFyZ3VtZW50cy5sZW5ndGg/YXJndW1lbnRzWzFdOnZvaWQgMCl9fSk7WigiQXJyYXkiLCJzb21lIik7ZnVuY3Rpb24gRXIodCl7cmV0dXJuISF5KHQpJiYodD11ZSh0KSxjKE9yLHQpfHxjKERyLHQpKX12YXIgU3IsbHI9InVuZGVmaW5lZCIhPXR5cGVvZiBBcnJheUJ1ZmZlciYmInVuZGVmaW5lZCIhPXR5cGVvZiBEYXRhVmlldyxQbj1rLmYsQ3I9Yi5JbnQ4QXJyYXksTnI9Q3ImJkNyLnByb3RvdHlwZSxkcj1iLlVpbnQ4Q2xhbXBlZEFycmF5LFdlPWRyJiZkci5wcm90b3R5cGUsQXI9Q3ImJkx0KENyKSxrcj1OciYmTHQoTnIpLFFuPU9iamVjdC5wcm90b3R5cGUsZHI9KFFuLmlzUHJvdG90eXBlT2YsV3QoInRvU3RyaW5nVGFnIikpLFJyPXgoIlRZUEVEX0FSUkFZX1RBRyIpLFByPWxyJiYhIU10JiYiT3BlcmEiIT09dWUoYi5vcGVyYSksbHI9ITEsT3I9e0ludDhBcnJheToxLFVpbnQ4QXJyYXk6MSxVaW50OENsYW1wZWRBcnJheToxLEludDE2QXJyYXk6MixVaW50MTZBcnJheToyLEludDMyQXJyYXk6NCxVaW50MzJBcnJheTo0LEZsb2F0MzJBcnJheTo0LEZsb2F0NjRBcnJheTo4fSxEcj17QmlnSW50NjRBcnJheTo4LEJpZ1VpbnQ2NEFycmF5Ojh9O2ZvcihTciBpbiBPciliW1NyXXx8KFByPSExKTtpZigoIVByfHwiZnVuY3Rpb24iIT10eXBlb2YgQXJ8fEFyPT09RnVuY3Rpb24ucHJvdG90eXBlKSYmKEFyPWZ1bmN0aW9uKCl7dGhyb3cgVHlwZUVycm9yKCJJbmNvcnJlY3QgaW52b2NhdGlvbiIpfSxQcikpZm9yKFNyIGluIE9yKWJbU3JdJiZNdChiW1NyXSxBcik7aWYoKCFQcnx8IWtyfHxrcj09PVFuKSYmKGtyPUFyLnByb3RvdHlwZSxQcikpZm9yKFNyIGluIE9yKWJbU3JdJiZNdChiW1NyXS5wcm90b3R5cGUsa3IpO2lmKFByJiZMdChXZSkhPT1rciYmTXQoV2Usa3IpLGYmJiFjKGtyLGRyKSlmb3IoU3IgaW4gbHI9ITAsUG4oa3IsZHIse2dldDpmdW5jdGlvbigpe3JldHVybiB5KHRoaXMpP3RoaXNbUnJdOnZvaWQgMH19KSxPciliW1NyXSYmUihiW1NyXSxScixTcik7dmFyIFdlPWZ1bmN0aW9uKHQpe2lmKEVyKHQpKXJldHVybiB0O3Rocm93IFR5cGVFcnJvcigiVGFyZ2V0IGlzIG5vdCBhIHR5cGVkIGFycmF5Iil9LFBuPWZ1bmN0aW9uKHQsZSxuKXtpZihmKXtpZihuKWZvcih2YXIgciBpbiBPcil7cj1iW3JdO3ImJmMoci5wcm90b3R5cGUsdCkmJmRlbGV0ZSByLnByb3RvdHlwZVt0XX1rclt0XSYmIW58fGZ0KGtyLHQsIW4mJlByJiZOclt0XXx8ZSl9fSxkcj1XdCgiaXRlcmF0b3IiKSxscj1iLlVpbnQ4QXJyYXkseHI9JG4udmFsdWVzLExyPSRuLmtleXMsTXI9JG4uZW50cmllcyxGcj1XZSxXZT1QbixQbj1sciYmbHIucHJvdG90eXBlW2RyXSxscj0hIVBuJiYoInZhbHVlcyI9PVBuLm5hbWV8fG51bGw9PVBuLm5hbWUpLFBuPWZ1bmN0aW9uKCl7cmV0dXJuIHhyLmNhbGwoRnIodGhpcykpfTtXZSgiZW50cmllcyIsZnVuY3Rpb24oKXtyZXR1cm4gTXIuY2FsbChGcih0aGlzKSl9KSxXZSgia2V5cyIsZnVuY3Rpb24oKXtyZXR1cm4gTHIuY2FsbChGcih0aGlzKSl9KSxXZSgidmFsdWVzIixQbiwhbHIpLFdlKGRyLFBuLCFscik7dmFyIFVyPU9iamVjdC5hc3NpZ24sanI9T2JqZWN0LmRlZmluZVByb3BlcnR5LFBuPSFVcnx8ZyhmdW5jdGlvbigpe2lmKGYmJjEhPT1Vcih7YjoxfSxVcihqcih7fSwiYSIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7anIodGhpcywiYiIse3ZhbHVlOjMsZW51bWVyYWJsZTohMX0pfX0pLHtiOjJ9KSkuYilyZXR1cm4gMTt2YXIgdD17fSxlPXt9LG49U3ltYm9sKCkscj0iYWJjZGVmZ2hpamtsbW5vcHFyc3QiO3JldHVybiB0W25dPTcsci5zcGxpdCgiIikuZm9yRWFjaChmdW5jdGlvbih0KXtlW3RdPXR9KSw3IT1Vcih7fSx0KVtuXXx8RnQoVXIoe30sZSkpLmpvaW4oIiIpIT1yfSk/ZnVuY3Rpb24odCxlKXtmb3IodmFyIG49YXQodCkscj1hcmd1bWVudHMubGVuZ3RoLGk9MSxvPUV0LmYscz1wLmY7aTxyOylmb3IodmFyIGEsdT1fKGFyZ3VtZW50c1tpKytdKSxjPW8/RnQodSkuY29uY2F0KG8odSkpOkZ0KHUpLGg9Yy5sZW5ndGgsbD0wO2w8aDspYT1jW2wrK10sZiYmIXMuY2FsbCh1LGEpfHwoblthXT11W2FdKTtyZXR1cm4gbn06VXI7c3Qoe3RhcmdldDoiT2JqZWN0IixzdGF0OiEwLGZvcmNlZDpPYmplY3QuYXNzaWduIT09UG59LHthc3NpZ246UG59KTtwdC5PYmplY3QuYXNzaWduO3ZhciBxcj1wLmYsbHI9ZnVuY3Rpb24oYSl7cmV0dXJuIGZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxuPXUodCkscj1GdChuKSxpPXIubGVuZ3RoLG89MCxzPVtdO288aTspZT1yW28rK10sZiYmIXFyLmNhbGwobixlKXx8cy5wdXNoKGE/W2UsbltlXV06bltlXSk7cmV0dXJuIHN9fSxQbj17ZW50cmllczpscighMCksdmFsdWVzOmxyKCExKX0sVnI9UG4uZW50cmllcztzdCh7dGFyZ2V0OiJPYmplY3QiLHN0YXQ6ITB9LHtlbnRyaWVzOmZ1bmN0aW9uKHQpe3JldHVybiBWcih0KX19KTtwdC5PYmplY3QuZW50cmllczt2YXIgQnI9UG4udmFsdWVzO3N0KHt0YXJnZXQ6Ik9iamVjdCIsc3RhdDohMH0se3ZhbHVlczpmdW5jdGlvbih0KXtyZXR1cm4gQnIodCl9fSk7cHQuT2JqZWN0LnZhbHVlcztmdW5jdGlvbiBLcih0KXtpZih5KGU9dCkmJih2b2lkIDAhPT0obj1lW1dyXSk/ISFuOiJSZWdFeHAiPT1yKGUpKSl0aHJvdyBUeXBlRXJyb3IoIlRoZSBtZXRob2QgZG9lc24ndCBhY2NlcHQgcmVndWxhciBleHByZXNzaW9ucyIpO3ZhciBlLG47cmV0dXJuIHR9dmFyIFdyPVd0KCJtYXRjaCIpLEhyPVd0KCJtYXRjaCIpLGxyPWZ1bmN0aW9uKGUpe3ZhciBuPS8uLzt0cnl7Ii8uLyJbZV0obil9Y2F0Y2godCl7dHJ5e3JldHVybiBuW0hyXT0hMSwiLy4vIltlXShuKX1jYXRjaCh0KXt9fXJldHVybiExfTtzdCh7dGFyZ2V0OiJTdHJpbmciLHByb3RvOiEwLGZvcmNlZDohbHIoImluY2x1ZGVzIil9LHtpbmNsdWRlczpmdW5jdGlvbih0KXtyZXR1cm4hIX5TdHJpbmcocyh0aGlzKSkuaW5kZXhPZihLcih0KSwxPGFyZ3VtZW50cy5sZW5ndGg/YXJndW1lbnRzWzFdOnZvaWQgMCl9fSk7WigiU3RyaW5nIiwiaW5jbHVkZXMiKTt2YXIgR3IsUG49Ti5mLHpyPSIiLnN0YXJ0c1dpdGgsUXI9TWF0aC5taW4sbHI9bHIoInN0YXJ0c1dpdGgiKSxHcj0hKGxyfHwoIShHcj1QbihTdHJpbmcucHJvdG90eXBlLCJzdGFydHNXaXRoIikpfHxHci53cml0YWJsZSkpO3N0KHt0YXJnZXQ6IlN0cmluZyIscHJvdG86ITAsZm9yY2VkOiFHciYmIWxyfSx7c3RhcnRzV2l0aDpmdW5jdGlvbih0KXt2YXIgZT1TdHJpbmcocyh0aGlzKSk7S3IodCk7dmFyIG49cnQoUXIoMTxhcmd1bWVudHMubGVuZ3RoP2FyZ3VtZW50c1sxXTp2b2lkIDAsZS5sZW5ndGgpKSx0PVN0cmluZyh0KTtyZXR1cm4genI/enIuY2FsbChlLHQsbik6ZS5zbGljZShuLG4rdC5sZW5ndGgpPT09dH19KTtaKCJTdHJpbmciLCJzdGFydHNXaXRoIik7c3Qoe3RhcmdldDoiU3RyaW5nIixwcm90bzohMH0se3JlcGVhdDoiIi5yZXBlYXR8fGZ1bmN0aW9uKHQpe3ZhciBlPVN0cmluZyhzKHRoaXMpKSxuPSIiLHI9bnQodCk7aWYocjwwfHxyPT0xLzApdGhyb3cgUmFuZ2VFcnJvcigiV3JvbmcgbnVtYmVyIG9mIHJlcGV0aXRpb25zIik7Zm9yKDswPHI7KHI+Pj49MSkmJihlKz1lKSkxJnImJihuKz1lKTtyZXR1cm4gbn19KTtaKCJTdHJpbmciLCJyZXBlYXQiKTt2YXIgWXIsWHI9V3QoInNwZWNpZXMiKSxKcj1XdCgiaXNDb25jYXRTcHJlYWRhYmxlIiksJHI9OTAwNzE5OTI1NDc0MDk5MSxacj0iTWF4aW11bSBhbGxvd2VkIGluZGV4IGV4Y2VlZGVkIixscj01MTw9dW58fCFnKGZ1bmN0aW9uKCl7dmFyIHQ9W107cmV0dXJuIHRbSnJdPSExLHQuY29uY2F0KClbMF0hPT10fSksWj0oWXI9ImNvbmNhdCIsNTE8PXVufHwhZyhmdW5jdGlvbigpe3ZhciB0PVtdO3JldHVybih0LmNvbnN0cnVjdG9yPXt9KVtYcl09ZnVuY3Rpb24oKXtyZXR1cm57Zm9vOjF9fSwxIT09dFtZcl0oQm9vbGVhbikuZm9vfSkpO3N0KHt0YXJnZXQ6IkFycmF5Iixwcm90bzohMCxmb3JjZWQ6IWxyfHwhWn0se2NvbmNhdDpmdW5jdGlvbih0KXtmb3IodmFyIGUsbixyLGk9YXQodGhpcyksbz1zcihpLDApLHM9MCxhPS0xLHU9YXJndW1lbnRzLmxlbmd0aDthPHU7YSsrKWlmKGZ1bmN0aW9uKHQpe2lmKCF5KHQpKXJldHVybiExO3ZhciBlPXRbSnJdO3JldHVybiB2b2lkIDAhPT1lPyEhZTp1cih0KX0ocj0tMT09PWE/aTphcmd1bWVudHNbYV0pKXtpZihuPXJ0KHIubGVuZ3RoKSwkcjxzK24pdGhyb3cgVHlwZUVycm9yKFpyKTtmb3IoZT0wO2U8bjtlKysscysrKWUgaW4gciYmd3IobyxzLHJbZV0pfWVsc2V7aWYoJHI8PXMpdGhyb3cgVHlwZUVycm9yKFpyKTt3cihvLHMrKyxyKX1yZXR1cm4gby5sZW5ndGg9cyxvfX0pO2Z1bmN0aW9uIHRpKHQpe3ZhciBlPXB0LlN5bWJvbHx8KHB0LlN5bWJvbD17fSk7YyhlLHQpfHxhaShlLHQse3ZhbHVlOnNpLmYodCl9KX1mdW5jdGlvbiBlaSh0LGUpe3ZhciBuPV9pW3RdPVF0KHZpW2xpXSk7cmV0dXJuIGZpKG4se3R5cGU6aGksdGFnOnQsZGVzY3JpcHRpb246ZX0pLGZ8fChuLmRlc2NyaXB0aW9uPWUpLG59ZnVuY3Rpb24gbmkoZSx0KXttKGUpO3ZhciBuPXUodCksdD1GdChuKS5jb25jYXQoUmkobikpO3JldHVybiB1aSh0LGZ1bmN0aW9uKHQpe2YmJiFraS5jYWxsKG4sdCl8fEFpKGUsdCxuW3RdKX0pLGV9dmFyIHJpPVR0LmYsaWk9e30udG9TdHJpbmcsb2k9Im9iamVjdCI9PXR5cGVvZiB3aW5kb3cmJndpbmRvdyYmT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXM/T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMod2luZG93KTpbXSxaPXtmOmZ1bmN0aW9uKHQpe3JldHVybiBvaSYmIltvYmplY3QgV2luZG93XSI9PWlpLmNhbGwodCk/ZnVuY3Rpb24odCl7dHJ5e3JldHVybiByaSh0KX1jYXRjaCh0KXtyZXR1cm4gb2kuc2xpY2UoKX19KHQpOnJpKHUodCkpfX0sc2k9e2Y6V3R9LGFpPWsuZix1aT1Tbi5mb3JFYWNoLGNpPUooImhpZGRlbiIpLGhpPSJTeW1ib2wiLGxpPSJwcm90b3R5cGUiLFNuPVd0KCJ0b1ByaW1pdGl2ZSIpLGZpPWx0LnNldCxwaT1sdC5nZXR0ZXJGb3IoaGkpLGRpPU9iamVjdFtsaV0sdmk9Yi5TeW1ib2wsZ2k9ZXQoIkpTT04iLCJzdHJpbmdpZnkiKSx5aT1OLmYsbWk9ay5mLGJpPVouZix3aT1wLmYsX2k9eigic3ltYm9scyIpLElpPXooIm9wLXN5bWJvbHMiKSxUaT16KCJzdHJpbmctdG8tc3ltYm9sLXJlZ2lzdHJ5IiksRWk9eigic3ltYm9sLXRvLXN0cmluZy1yZWdpc3RyeSIpLEo9eigid2tzIiksej1iLlFPYmplY3QsU2k9IXp8fCF6W2xpXXx8IXpbbGldLmZpbmRDaGlsZCxDaT1mJiZnKGZ1bmN0aW9uKCl7cmV0dXJuIDchPVF0KG1pKHt9LCJhIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIG1pKHRoaXMsImEiLHt2YWx1ZTo3fSkuYX19KSkuYX0pP2Z1bmN0aW9uKHQsZSxuKXt2YXIgcj15aShkaSxlKTtyJiZkZWxldGUgZGlbZV0sbWkodCxlLG4pLHImJnQhPT1kaSYmbWkoZGksZSxyKX06bWksTmk9YT9mdW5jdGlvbih0KXtyZXR1cm4ic3ltYm9sIj09dHlwZW9mIHR9OmZ1bmN0aW9uKHQpe3JldHVybiBPYmplY3QodClpbnN0YW5jZW9mIHZpfSxBaT1mdW5jdGlvbih0LGUsbil7dD09PWRpJiZBaShJaSxlLG4pLG0odCk7ZT1pKGUsITApO3JldHVybiBtKG4pLGMoX2ksZSk/KG4uZW51bWVyYWJsZT8oYyh0LGNpKSYmdFtjaV1bZV0mJih0W2NpXVtlXT0hMSksbj1RdChuLHtlbnVtZXJhYmxlOnYoMCwhMSl9KSk6KGModCxjaSl8fG1pKHQsY2ksdigxLHt9KSksdFtjaV1bZV09ITApLENpKHQsZSxuKSk6bWkodCxlLG4pfSxraT1mdW5jdGlvbih0KXt2YXIgZT1pKHQsITApLHQ9d2kuY2FsbCh0aGlzLGUpO3JldHVybiEodGhpcz09PWRpJiZjKF9pLGUpJiYhYyhJaSxlKSkmJighKHR8fCFjKHRoaXMsZSl8fCFjKF9pLGUpfHxjKHRoaXMsY2kpJiZ0aGlzW2NpXVtlXSl8fHQpfSx6PWZ1bmN0aW9uKHQsZSl7dmFyIG49dSh0KSx0PWkoZSwhMCk7aWYobiE9PWRpfHwhYyhfaSx0KXx8YyhJaSx0KSl7ZT15aShuLHQpO3JldHVybiFlfHwhYyhfaSx0KXx8YyhuLGNpKSYmbltjaV1bdF18fChlLmVudW1lcmFibGU9ITApLGV9fSxhPWZ1bmN0aW9uKHQpe3ZhciB0PWJpKHUodCkpLGU9W107cmV0dXJuIHVpKHQsZnVuY3Rpb24odCl7YyhfaSx0KXx8YygkLHQpfHxlLnB1c2godCl9KSxlfSxSaT1mdW5jdGlvbih0KXt2YXIgZT10PT09ZGksdD1iaShlP0lpOnUodCkpLG49W107cmV0dXJuIHVpKHQsZnVuY3Rpb24odCl7IWMoX2ksdCl8fGUmJiFjKGRpLHQpfHxuLnB1c2goX2lbdF0pfSksbn07WXR8fChmdCgodmk9ZnVuY3Rpb24oKXtpZih0aGlzIGluc3RhbmNlb2YgdmkpdGhyb3cgVHlwZUVycm9yKCJTeW1ib2wgaXMgbm90IGEgY29uc3RydWN0b3IiKTt2YXIgdD1hcmd1bWVudHMubGVuZ3RoJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/U3RyaW5nKGFyZ3VtZW50c1swXSk6dm9pZCAwLGU9eCh0KSxuPWZ1bmN0aW9uKHQpe3RoaXM9PT1kaSYmbi5jYWxsKElpLHQpLGModGhpcyxjaSkmJmModGhpc1tjaV0sZSkmJih0aGlzW2NpXVtlXT0hMSksQ2kodGhpcyxlLHYoMSx0KSl9O3JldHVybiBmJiZTaSYmQ2koZGksZSx7Y29uZmlndXJhYmxlOiEwLHNldDpufSksZWkoZSx0KX0pW2xpXSwidG9TdHJpbmciLGZ1bmN0aW9uKCl7cmV0dXJuIHBpKHRoaXMpLnRhZ30pLGZ0KHZpLCJ3aXRob3V0U2V0dGVyIixmdW5jdGlvbih0KXtyZXR1cm4gZWkoeCh0KSx0KX0pLHAuZj1raSxrLmY9QWksTi5mPXosVHQuZj1aLmY9YSxFdC5mPVJpLHNpLmY9ZnVuY3Rpb24odCl7cmV0dXJuIGVpKFd0KHQpLHQpfSxmJiYobWkodmlbbGldLCJkZXNjcmlwdGlvbiIse2NvbmZpZ3VyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gcGkodGhpcykuZGVzY3JpcHRpb259fSksZnQoZGksInByb3BlcnR5SXNFbnVtZXJhYmxlIixraSx7dW5zYWZlOiEwfSkpKSxzdCh7Z2xvYmFsOiEwLHdyYXA6ITAsZm9yY2VkOiFZdCxzaGFtOiFZdH0se1N5bWJvbDp2aX0pLHVpKEZ0KEopLGZ1bmN0aW9uKHQpe3RpKHQpfSksc3Qoe3RhcmdldDpoaSxzdGF0OiEwLGZvcmNlZDohWXR9LHtmb3I6ZnVuY3Rpb24odCl7dmFyIGU9U3RyaW5nKHQpO2lmKGMoVGksZSkpcmV0dXJuIFRpW2VdO3Q9dmkoZSk7cmV0dXJuIFRpW2VdPXQsRWlbdF09ZSx0fSxrZXlGb3I6ZnVuY3Rpb24odCl7aWYoIU5pKHQpKXRocm93IFR5cGVFcnJvcih0KyIgaXMgbm90IGEgc3ltYm9sIik7aWYoYyhFaSx0KSlyZXR1cm4gRWlbdF19LHVzZVNldHRlcjpmdW5jdGlvbigpe1NpPSEwfSx1c2VTaW1wbGU6ZnVuY3Rpb24oKXtTaT0hMX19KSxzdCh7dGFyZ2V0OiJPYmplY3QiLHN0YXQ6ITAsZm9yY2VkOiFZdCxzaGFtOiFmfSx7Y3JlYXRlOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHZvaWQgMD09PWU/UXQodCk6bmkoUXQodCksZSl9LGRlZmluZVByb3BlcnR5OkFpLGRlZmluZVByb3BlcnRpZXM6bmksZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yOnp9KSxzdCh7dGFyZ2V0OiJPYmplY3QiLHN0YXQ6ITAsZm9yY2VkOiFZdH0se2dldE93blByb3BlcnR5TmFtZXM6YSxnZXRPd25Qcm9wZXJ0eVN5bWJvbHM6Uml9KSxzdCh7dGFyZ2V0OiJPYmplY3QiLHN0YXQ6ITAsZm9yY2VkOmcoZnVuY3Rpb24oKXtFdC5mKDEpfSl9LHtnZXRPd25Qcm9wZXJ0eVN5bWJvbHM6ZnVuY3Rpb24odCl7cmV0dXJuIEV0LmYoYXQodCkpfX0pLGdpJiYoS2k9IVl0fHxnKGZ1bmN0aW9uKCl7dmFyIHQ9dmkoKTtyZXR1cm4iW251bGxdIiE9Z2koW3RdKXx8Int9IiE9Z2koe2E6dH0pfHwie30iIT1naShPYmplY3QodCkpfSksc3Qoe3RhcmdldDoiSlNPTiIsc3RhdDohMCxmb3JjZWQ6S2l9LHtzdHJpbmdpZnk6ZnVuY3Rpb24odCxlLG4pe2Zvcih2YXIgcixpPVt0XSxvPTE7bzxhcmd1bWVudHMubGVuZ3RoOylpLnB1c2goYXJndW1lbnRzW28rK10pO2lmKCh5KHI9ZSl8fHZvaWQgMCE9PXQpJiYhTmkodCkpcmV0dXJuIHVyKGUpfHwoZT1mdW5jdGlvbih0LGUpe2lmKCJmdW5jdGlvbiI9PXR5cGVvZiByJiYoZT1yLmNhbGwodGhpcyx0LGUpKSwhTmkoZSkpcmV0dXJuIGV9KSxpWzFdPWUsZ2kuYXBwbHkobnVsbCxpKX19KSksdmlbbGldW1NuXXx8Uih2aVtsaV0sU24sdmlbbGldLnZhbHVlT2YpLGZlKHZpLGhpKSwkW2NpXT0hMCx0aSgiYXN5bmNJdGVyYXRvciIpO3ZhciBQaSxPaSxEaSx4aSxMaSx6PWsuZixNaT1iLlN5bWJvbDshZnx8ImZ1bmN0aW9uIiE9dHlwZW9mIE1pfHwiZGVzY3JpcHRpb24iaW4gTWkucHJvdG90eXBlJiZ2b2lkIDA9PT1NaSgpLmRlc2NyaXB0aW9ufHwoUGk9e30sb3QoT2k9ZnVuY3Rpb24oKXt2YXIgdD1hcmd1bWVudHMubGVuZ3RoPDF8fHZvaWQgMD09PWFyZ3VtZW50c1swXT92b2lkIDA6U3RyaW5nKGFyZ3VtZW50c1swXSksZT10aGlzIGluc3RhbmNlb2YgT2k/bmV3IE1pKHQpOnZvaWQgMD09PXQ/TWkoKTpNaSh0KTtyZXR1cm4iIj09PXQmJihQaVtlXT0hMCksZX0sTWkpLChHaT1PaS5wcm90b3R5cGU9TWkucHJvdG90eXBlKS5jb25zdHJ1Y3Rvcj1PaSxEaT1HaS50b1N0cmluZyx4aT0iU3ltYm9sKHRlc3QpIj09U3RyaW5nKE1pKCJ0ZXN0IikpLExpPS9eU3ltYm9sXCgoLiopXClbXildKyQvLHooR2ksImRlc2NyaXB0aW9uIix7Y29uZmlndXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3ZhciB0PXkodGhpcyk/dGhpcy52YWx1ZU9mKCk6dGhpcyxlPURpLmNhbGwodCk7aWYoYyhQaSx0KSlyZXR1cm4iIjtlPXhpP2Uuc2xpY2UoNywtMSk6ZS5yZXBsYWNlKExpLCIkMSIpO3JldHVybiIiPT09ZT92b2lkIDA6ZX19KSxzdCh7Z2xvYmFsOiEwLGZvcmNlZDohMH0se1N5bWJvbDpPaX0pKSx0aSgiaGFzSW5zdGFuY2UiKSx0aSgiaXNDb25jYXRTcHJlYWRhYmxlIiksdGkoIml0ZXJhdG9yIiksdGkoIm1hdGNoIiksdGkoIm1hdGNoQWxsIiksdGkoInJlcGxhY2UiKSx0aSgic2VhcmNoIiksdGkoInNwZWNpZXMiKSx0aSgic3BsaXQiKSx0aSgidG9QcmltaXRpdmUiKSx0aSgidG9TdHJpbmdUYWciKSx0aSgidW5zY29wYWJsZXMiKSxmZShiLkpTT04sIkpTT04iLCEwKSxmZShNYXRoLCJNYXRoIiwhMCksc3Qoe2dsb2JhbDohMH0se1JlZmxlY3Q6e319KSxmZShiLlJlZmxlY3QsIlJlZmxlY3QiLCEwKTtwdC5TeW1ib2w7dGkoImFzeW5jRGlzcG9zZSIpLHRpKCJkaXNwb3NlIiksdGkoIm9ic2VydmFibGUiKSx0aSgicGF0dGVybk1hdGNoIiksdGkoInJlcGxhY2VBbGwiKTtzaS5mKCJpdGVyYXRvciIpO3ZhciBGaT0hZyhmdW5jdGlvbigpe3JldHVybiBPYmplY3QuaXNFeHRlbnNpYmxlKE9iamVjdC5wcmV2ZW50RXh0ZW5zaW9ucyh7fSkpfSksVWk9ZShmdW5jdGlvbih0KXtmdW5jdGlvbiBuKHQpe2UodCxyLHt2YWx1ZTp7b2JqZWN0SUQ6Ik8iKyArK2ksd2Vha0RhdGE6e319fSl9dmFyIGU9ay5mLHI9eCgibWV0YSIpLGk9MCxvPU9iamVjdC5pc0V4dGVuc2libGV8fGZ1bmN0aW9uKCl7cmV0dXJuITB9LHM9dC5leHBvcnRzPXtSRVFVSVJFRDohMSxmYXN0S2V5OmZ1bmN0aW9uKHQsZSl7aWYoIXkodCkpcmV0dXJuInN5bWJvbCI9PXR5cGVvZiB0P3Q6KCJzdHJpbmciPT10eXBlb2YgdD8iUyI6IlAiKSt0O2lmKCFjKHQscikpe2lmKCFvKHQpKXJldHVybiJGIjtpZighZSlyZXR1cm4iRSI7bih0KX1yZXR1cm4gdFtyXS5vYmplY3RJRH0sZ2V0V2Vha0RhdGE6ZnVuY3Rpb24odCxlKXtpZighYyh0LHIpKXtpZighbyh0KSlyZXR1cm4hMDtpZighZSlyZXR1cm4hMTtuKHQpfXJldHVybiB0W3JdLndlYWtEYXRhfSxvbkZyZWV6ZTpmdW5jdGlvbih0KXtyZXR1cm4gRmkmJnMuUkVRVUlSRUQmJm8odCkmJiFjKHQscikmJm4odCksdH19OyRbcl09ITB9KSxhPWZ1bmN0aW9uKHMsdCxlKXtmdW5jdGlvbiBuKHQpe3ZhciBuPXBbdF07ZnQocCx0LCJhZGQiPT10P2Z1bmN0aW9uKHQpe3JldHVybiBuLmNhbGwodGhpcywwPT09dD8wOnQpLHRoaXN9OiJkZWxldGUiPT10P2Z1bmN0aW9uKHQpe3JldHVybiEoaCYmIXkodCkpJiZuLmNhbGwodGhpcywwPT09dD8wOnQpfToiZ2V0Ij09dD9mdW5jdGlvbih0KXtyZXR1cm4gaCYmIXkodCk/dm9pZCAwOm4uY2FsbCh0aGlzLDA9PT10PzA6dCl9OiJoYXMiPT10P2Z1bmN0aW9uKHQpe3JldHVybiEoaCYmIXkodCkpJiZuLmNhbGwodGhpcywwPT09dD8wOnQpfTpmdW5jdGlvbih0LGUpe3JldHVybiBuLmNhbGwodGhpcywwPT09dD8wOnQsZSksdGhpc30pfXZhciByLGksbyxhLHUsYz0tMSE9PXMuaW5kZXhPZigiTWFwIiksaD0tMSE9PXMuaW5kZXhPZigiV2VhayIpLGw9Yz8ic2V0IjoiYWRkIixmPWJbc10scD1mJiZmLnByb3RvdHlwZSxkPWYsdj17fTtyZXR1cm4gUHQocywiZnVuY3Rpb24iIT10eXBlb2YgZnx8IShofHxwLmZvckVhY2gmJiFnKGZ1bmN0aW9uKCl7KG5ldyBmKS5lbnRyaWVzKCkubmV4dCgpfSkpKT8oZD1lLmdldENvbnN0cnVjdG9yKHQscyxjLGwpLFVpLlJFUVVJUkVEPSEwKTpQdChzLCEwKSYmKGk9KHI9bmV3IGQpW2xdKGg/e306LTAsMSkhPXIsbz1nKGZ1bmN0aW9uKCl7ci5oYXMoMSl9KSxhPVRlKGZ1bmN0aW9uKHQpe25ldyBmKHQpfSksdT0haCYmZyhmdW5jdGlvbigpe2Zvcih2YXIgdD1uZXcgZixlPTU7ZS0tOyl0W2xdKGUsZSk7cmV0dXJuIXQuaGFzKC0wKX0pLGF8fCgoKGQ9dChmdW5jdGlvbih0LGUpe2RlKHQsZCxzKTt2YXIgbixyLGksbyxuPShuPW5ldyBmLHI9dCx0PWQsTXQmJiJmdW5jdGlvbiI9PXR5cGVvZihpPXIuY29uc3RydWN0b3IpJiZpIT09dCYmeShvPWkucHJvdG90eXBlKSYmbyE9PXQucHJvdG90eXBlJiZNdChuLG8pLG4pO3JldHVybiBudWxsIT1lJiZvZShlLG5bbF0se3RoYXQ6bixBU19FTlRSSUVTOmN9KSxufSkpLnByb3RvdHlwZT1wKS5jb25zdHJ1Y3Rvcj1kKSwob3x8dSkmJihuKCJkZWxldGUiKSxuKCJoYXMiKSxjJiZuKCJnZXQiKSksKHV8fGkpJiZuKGwpLGgmJnAuY2xlYXImJmRlbGV0ZSBwLmNsZWFyKSx2W3NdPWQsc3Qoe2dsb2JhbDohMCxmb3JjZWQ6ZCE9Zn0sdiksZmUoZCxzKSxofHxlLnNldFN0cm9uZyhkLHMsYyksZH0samk9ay5mLHFpPVVpLmZhc3RLZXksVmk9bHQuc2V0LEJpPWx0LmdldHRlckZvcixLaT17Z2V0Q29uc3RydWN0b3I6ZnVuY3Rpb24odCxuLHIsaSl7ZnVuY3Rpb24gbyh0LGUsbil7dmFyIHIsaT1hKHQpLG89dSh0LGUpO3JldHVybiBvP28udmFsdWU9bjooaS5sYXN0PW89e2luZGV4OnI9cWkoZSwhMCksa2V5OmUsdmFsdWU6bixwcmV2aW91czpuPWkubGFzdCxuZXh0OnZvaWQgMCxyZW1vdmVkOiExfSxpLmZpcnN0fHwoaS5maXJzdD1vKSxuJiYobi5uZXh0PW8pLGY/aS5zaXplKys6dC5zaXplKyssIkYiIT09ciYmKGkuaW5kZXhbcl09bykpLHR9dmFyIHM9dChmdW5jdGlvbih0LGUpe2RlKHQscyxuKSxWaSh0LHt0eXBlOm4saW5kZXg6UXQobnVsbCksZmlyc3Q6dm9pZCAwLGxhc3Q6dm9pZCAwLHNpemU6MH0pLGZ8fCh0LnNpemU9MCksbnVsbCE9ZSYmb2UoZSx0W2ldLHt0aGF0OnQsQVNfRU5UUklFUzpyfSl9KSxhPUJpKG4pLHU9ZnVuY3Rpb24odCxlKXt2YXIgbixyPWEodCksdD1xaShlKTtpZigiRiIhPT10KXJldHVybiByLmluZGV4W3RdO2ZvcihuPXIuZmlyc3Q7bjtuPW4ubmV4dClpZihuLmtleT09ZSlyZXR1cm4gbn07cmV0dXJuIGxlKHMucHJvdG90eXBlLHtjbGVhcjpmdW5jdGlvbigpe2Zvcih2YXIgdD1hKHRoaXMpLGU9dC5pbmRleCxuPXQuZmlyc3Q7bjspbi5yZW1vdmVkPSEwLG4ucHJldmlvdXMmJihuLnByZXZpb3VzPW4ucHJldmlvdXMubmV4dD12b2lkIDApLGRlbGV0ZSBlW24uaW5kZXhdLG49bi5uZXh0O3QuZmlyc3Q9dC5sYXN0PXZvaWQgMCxmP3Quc2l6ZT0wOnRoaXMuc2l6ZT0wfSxkZWxldGU6ZnVuY3Rpb24odCl7dmFyIGUsbj1hKHRoaXMpLHI9dSh0aGlzLHQpO3JldHVybiByJiYoZT1yLm5leHQsdD1yLnByZXZpb3VzLGRlbGV0ZSBuLmluZGV4W3IuaW5kZXhdLHIucmVtb3ZlZD0hMCx0JiYodC5uZXh0PWUpLGUmJihlLnByZXZpb3VzPXQpLG4uZmlyc3Q9PXImJihuLmZpcnN0PWUpLG4ubGFzdD09ciYmKG4ubGFzdD10KSxmP24uc2l6ZS0tOnRoaXMuc2l6ZS0tKSwhIXJ9LGZvckVhY2g6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLG49YSh0aGlzKSxyPXp0KHQsMTxhcmd1bWVudHMubGVuZ3RoP2FyZ3VtZW50c1sxXTp2b2lkIDAsMyk7ZT1lP2UubmV4dDpuLmZpcnN0Oylmb3IocihlLnZhbHVlLGUua2V5LHRoaXMpO2UmJmUucmVtb3ZlZDspZT1lLnByZXZpb3VzfSxoYXM6ZnVuY3Rpb24odCl7cmV0dXJuISF1KHRoaXMsdCl9fSksbGUocy5wcm90b3R5cGUscj97Z2V0OmZ1bmN0aW9uKHQpe3Q9dSh0aGlzLHQpO3JldHVybiB0JiZ0LnZhbHVlfSxzZXQ6ZnVuY3Rpb24odCxlKXtyZXR1cm4gbyh0aGlzLDA9PT10PzA6dCxlKX19OnthZGQ6ZnVuY3Rpb24odCl7cmV0dXJuIG8odGhpcyx0PTA9PT10PzA6dCx0KX19KSxmJiZqaShzLnByb3RvdHlwZSwic2l6ZSIse2dldDpmdW5jdGlvbigpe3JldHVybiBhKHRoaXMpLnNpemV9fSksc30sc2V0U3Ryb25nOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1lKyIgSXRlcmF0b3IiLGk9QmkoZSksbz1CaShyKTt4bih0LGUsZnVuY3Rpb24odCxlKXtWaSh0aGlzLHt0eXBlOnIsdGFyZ2V0OnQsc3RhdGU6aSh0KSxraW5kOmUsbGFzdDp2b2lkIDB9KX0sZnVuY3Rpb24oKXtmb3IodmFyIHQ9byh0aGlzKSxlPXQua2luZCxuPXQubGFzdDtuJiZuLnJlbW92ZWQ7KW49bi5wcmV2aW91cztyZXR1cm4gdC50YXJnZXQmJih0Lmxhc3Q9bj1uP24ubmV4dDp0LnN0YXRlLmZpcnN0KT8ia2V5cyI9PWU/e3ZhbHVlOm4ua2V5LGRvbmU6ITF9OiJ2YWx1ZXMiPT1lP3t2YWx1ZTpuLnZhbHVlLGRvbmU6ITF9Ont2YWx1ZTpbbi5rZXksbi52YWx1ZV0sZG9uZTohMX06e3ZhbHVlOnQudGFyZ2V0PXZvaWQgMCxkb25lOiEwfX0sbj8iZW50cmllcyI6InZhbHVlcyIsIW4sITApLHBlKGUpfX0sU249KGEoIk1hcCIsZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHQodGhpcyxhcmd1bWVudHMubGVuZ3RoP2FyZ3VtZW50c1swXTp2b2lkIDApfX0sS2kpLHB0Lk1hcCxmdW5jdGlvbih0KXt2YXIgZSxuLHIsaSxvPWFyZ3VtZW50cy5sZW5ndGgscz0xPG8/YXJndW1lbnRzWzFdOnZvaWQgMDtyZXR1cm4gR3QodGhpcyksKGU9dm9pZCAwIT09cykmJkd0KHMpLG51bGw9PXQ/bmV3IHRoaXM6KG49W10sZT8ocj0wLGk9enQocywyPG8/YXJndW1lbnRzWzJdOnZvaWQgMCwyKSxvZSh0LGZ1bmN0aW9uKHQpe24ucHVzaChpKHQscisrKSl9KSk6b2UodCxuLnB1c2gse3RoYXQ6bn0pLG5ldyB0aGlzKG4pKX0pO3N0KHt0YXJnZXQ6Ik1hcCIsc3RhdDohMH0se2Zyb206U259KTt6PWZ1bmN0aW9uKCl7Zm9yKHZhciB0PWFyZ3VtZW50cy5sZW5ndGgsZT1uZXcgQXJyYXkodCk7dC0tOyllW3RdPWFyZ3VtZW50c1t0XTtyZXR1cm4gbmV3IHRoaXMoZSl9O3N0KHt0YXJnZXQ6Ik1hcCIsc3RhdDohMH0se29mOnp9KTtmdW5jdGlvbiBXaSgpe2Zvcih2YXIgdCxlPW0odGhpcyksbj1HdChlLmRlbGV0ZSkscj0hMCxpPTAsbz1hcmd1bWVudHMubGVuZ3RoO2k8bztpKyspdD1uLmNhbGwoZSxhcmd1bWVudHNbaV0pLHI9ciYmdDtyZXR1cm4hIXJ9c3Qoe3RhcmdldDoiTWFwIixwcm90bzohMCxyZWFsOiEwLGZvcmNlZDpHfSx7ZGVsZXRlQWxsOmZ1bmN0aW9uKCl7cmV0dXJuIFdpLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KTtzdCh7dGFyZ2V0OiJNYXAiLHByb3RvOiEwLHJlYWw6ITAsZm9yY2VkOkd9LHtlbXBsYWNlOmZ1bmN0aW9uKHQsZSl7dmFyIG49bSh0aGlzKSxlPW4uaGFzKHQpJiYidXBkYXRlImluIGU/ZS51cGRhdGUobi5nZXQodCksdCxuKTplLmluc2VydCh0LG4pO3JldHVybiBuLnNldCh0LGUpLGV9fSk7ZnVuY3Rpb24gSGkodCl7cmV0dXJuIE1hcC5wcm90b3R5cGUuZW50cmllcy5jYWxsKHQpfXN0KHt0YXJnZXQ6Ik1hcCIscHJvdG86ITAscmVhbDohMCxmb3JjZWQ6R30se2V2ZXJ5OmZ1bmN0aW9uKHQpe3ZhciByPW0odGhpcyksZT1IaShyKSxpPXp0KHQsMTxhcmd1bWVudHMubGVuZ3RoP2FyZ3VtZW50c1sxXTp2b2lkIDAsMyk7cmV0dXJuIW9lKGUsZnVuY3Rpb24odCxlLG4pe2lmKCFpKGUsdCxyKSlyZXR1cm4gbigpfSx7QVNfRU5UUklFUzohMCxJU19JVEVSQVRPUjohMCxJTlRFUlJVUFRFRDohMH0pLnN0b3BwZWR9fSksc3Qoe3RhcmdldDoiTWFwIixwcm90bzohMCxyZWFsOiEwLGZvcmNlZDpHfSx7ZmlsdGVyOmZ1bmN0aW9uKHQpe3ZhciBuPW0odGhpcyksZT1IaShuKSxyPXp0KHQsMTxhcmd1bWVudHMubGVuZ3RoP2FyZ3VtZW50c1sxXTp2b2lkIDAsMyksaT1uZXcoRWUobixldCgiTWFwIikpKSxvPUd0KGkuc2V0KTtyZXR1cm4gb2UoZSxmdW5jdGlvbih0LGUpe3IoZSx0LG4pJiZvLmNhbGwoaSx0LGUpfSx7QVNfRU5UUklFUzohMCxJU19JVEVSQVRPUjohMH0pLGl9fSksc3Qoe3RhcmdldDoiTWFwIixwcm90bzohMCxyZWFsOiEwLGZvcmNlZDpHfSx7ZmluZDpmdW5jdGlvbih0KXt2YXIgcj1tKHRoaXMpLGU9SGkociksaT16dCh0LDE8YXJndW1lbnRzLmxlbmd0aD9hcmd1bWVudHNbMV06dm9pZCAwLDMpO3JldHVybiBvZShlLGZ1bmN0aW9uKHQsZSxuKXtpZihpKGUsdCxyKSlyZXR1cm4gbihlKX0se0FTX0VOVFJJRVM6ITAsSVNfSVRFUkFUT1I6ITAsSU5URVJSVVBURUQ6ITB9KS5yZXN1bHR9fSksc3Qoe3RhcmdldDoiTWFwIixwcm90bzohMCxyZWFsOiEwLGZvcmNlZDpHfSx7ZmluZEtleTpmdW5jdGlvbih0KXt2YXIgcj1tKHRoaXMpLGU9SGkociksaT16dCh0LDE8YXJndW1lbnRzLmxlbmd0aD9hcmd1bWVudHNbMV06dm9pZCAwLDMpO3JldHVybiBvZShlLGZ1bmN0aW9uKHQsZSxuKXtpZihpKGUsdCxyKSlyZXR1cm4gbih0KX0se0FTX0VOVFJJRVM6ITAsSVNfSVRFUkFUT1I6ITAsSU5URVJSVVBURUQ6ITB9KS5yZXN1bHR9fSksc3Qoe3RhcmdldDoiTWFwIixzdGF0OiEwfSx7Z3JvdXBCeTpmdW5jdGlvbih0LG4pe3ZhciByPW5ldyB0aGlzO0d0KG4pO3ZhciBpPUd0KHIuaGFzKSxvPUd0KHIuZ2V0KSxzPUd0KHIuc2V0KTtyZXR1cm4gb2UodCxmdW5jdGlvbih0KXt2YXIgZT1uKHQpO2kuY2FsbChyLGUpP28uY2FsbChyLGUpLnB1c2godCk6cy5jYWxsKHIsZSxbdF0pfSkscn19KTtzdCh7dGFyZ2V0OiJNYXAiLHByb3RvOiEwLHJlYWw6ITAsZm9yY2VkOkd9LHtpbmNsdWRlczpmdW5jdGlvbihpKXtyZXR1cm4gb2UoSGkobSh0aGlzKSksZnVuY3Rpb24odCxlLG4pe2lmKChyPWUpPT09KGU9aSl8fHIhPXImJmUhPWUpcmV0dXJuIG4oKTt2YXIgcn0se0FTX0VOVFJJRVM6ITAsSVNfSVRFUkFUT1I6ITAsSU5URVJSVVBURUQ6ITB9KS5zdG9wcGVkfX0pLHN0KHt0YXJnZXQ6Ik1hcCIsc3RhdDohMH0se2tleUJ5OmZ1bmN0aW9uKHQsZSl7dmFyIG49bmV3IHRoaXM7R3QoZSk7dmFyIHI9R3Qobi5zZXQpO3JldHVybiBvZSh0LGZ1bmN0aW9uKHQpe3IuY2FsbChuLGUodCksdCl9KSxufX0pLHN0KHt0YXJnZXQ6Ik1hcCIscHJvdG86ITAscmVhbDohMCxmb3JjZWQ6R30se2tleU9mOmZ1bmN0aW9uKHIpe3JldHVybiBvZShIaShtKHRoaXMpKSxmdW5jdGlvbih0LGUsbil7aWYoZT09PXIpcmV0dXJuIG4odCl9LHtBU19FTlRSSUVTOiEwLElTX0lURVJBVE9SOiEwLElOVEVSUlVQVEVEOiEwfSkucmVzdWx0fX0pLHN0KHt0YXJnZXQ6Ik1hcCIscHJvdG86ITAscmVhbDohMCxmb3JjZWQ6R30se21hcEtleXM6ZnVuY3Rpb24odCl7dmFyIG49bSh0aGlzKSxlPUhpKG4pLHI9enQodCwxPGFyZ3VtZW50cy5sZW5ndGg/YXJndW1lbnRzWzFdOnZvaWQgMCwzKSxpPW5ldyhFZShuLGV0KCJNYXAiKSkpLG89R3QoaS5zZXQpO3JldHVybiBvZShlLGZ1bmN0aW9uKHQsZSl7by5jYWxsKGkscihlLHQsbiksZSl9LHtBU19FTlRSSUVTOiEwLElTX0lURVJBVE9SOiEwfSksaX19KSxzdCh7dGFyZ2V0OiJNYXAiLHByb3RvOiEwLHJlYWw6ITAsZm9yY2VkOkd9LHttYXBWYWx1ZXM6ZnVuY3Rpb24odCl7dmFyIG49bSh0aGlzKSxlPUhpKG4pLHI9enQodCwxPGFyZ3VtZW50cy5sZW5ndGg/YXJndW1lbnRzWzFdOnZvaWQgMCwzKSxpPW5ldyhFZShuLGV0KCJNYXAiKSkpLG89R3QoaS5zZXQpO3JldHVybiBvZShlLGZ1bmN0aW9uKHQsZSl7by5jYWxsKGksdCxyKGUsdCxuKSl9LHtBU19FTlRSSUVTOiEwLElTX0lURVJBVE9SOiEwfSksaX19KSxzdCh7dGFyZ2V0OiJNYXAiLHByb3RvOiEwLHJlYWw6ITAsZm9yY2VkOkd9LHttZXJnZTpmdW5jdGlvbih0KXtmb3IodmFyIGU9bSh0aGlzKSxuPUd0KGUuc2V0KSxyPTA7cjxhcmd1bWVudHMubGVuZ3RoOylvZShhcmd1bWVudHNbcisrXSxuLHt0aGF0OmUsQVNfRU5UUklFUzohMH0pO3JldHVybiBlfX0pLHN0KHt0YXJnZXQ6Ik1hcCIscHJvdG86ITAscmVhbDohMCxmb3JjZWQ6R30se3JlZHVjZTpmdW5jdGlvbihuKXt2YXIgcj1tKHRoaXMpLHQ9SGkociksaT1hcmd1bWVudHMubGVuZ3RoPDIsbz1pP3ZvaWQgMDphcmd1bWVudHNbMV07aWYoR3Qobiksb2UodCxmdW5jdGlvbih0LGUpe289aT8oaT0hMSxlKTpuKG8sZSx0LHIpfSx7QVNfRU5UUklFUzohMCxJU19JVEVSQVRPUjohMH0pLGkpdGhyb3cgVHlwZUVycm9yKCJSZWR1Y2Ugb2YgZW1wdHkgbWFwIHdpdGggbm8gaW5pdGlhbCB2YWx1ZSIpO3JldHVybiBvfX0pLHN0KHt0YXJnZXQ6Ik1hcCIscHJvdG86ITAscmVhbDohMCxmb3JjZWQ6R30se3NvbWU6ZnVuY3Rpb24odCl7dmFyIHI9bSh0aGlzKSxlPUhpKHIpLGk9enQodCwxPGFyZ3VtZW50cy5sZW5ndGg/YXJndW1lbnRzWzFdOnZvaWQgMCwzKTtyZXR1cm4gb2UoZSxmdW5jdGlvbih0LGUsbil7aWYoaShlLHQscikpcmV0dXJuIG4oKX0se0FTX0VOVFJJRVM6ITAsSVNfSVRFUkFUT1I6ITAsSU5URVJSVVBURUQ6ITB9KS5zdG9wcGVkfX0pLHN0KHt0YXJnZXQ6Ik1hcCIscHJvdG86ITAscmVhbDohMCxmb3JjZWQ6R30se3VwZGF0ZTpmdW5jdGlvbih0LGUpe3ZhciBuPW0odGhpcykscj1hcmd1bWVudHMubGVuZ3RoO0d0KGUpO3ZhciBpPW4uaGFzKHQpO2lmKCFpJiZyPDMpdGhyb3cgVHlwZUVycm9yKCJVcGRhdGluZyBhYnNlbnQgdmFsdWUiKTtyPWk/bi5nZXQodCk6R3QoMjxyP2FyZ3VtZW50c1syXTp2b2lkIDApKHQsbik7cmV0dXJuIG4uc2V0KHQsZShyLHQsbikpLG59fSk7dmFyIEdpPWZ1bmN0aW9uKHQsZSl7dmFyIG4scj1tKHRoaXMpLGk9Mjxhcmd1bWVudHMubGVuZ3RoP2FyZ3VtZW50c1syXTp2b2lkIDA7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGUmJiJmdW5jdGlvbiIhPXR5cGVvZiBpKXRocm93IFR5cGVFcnJvcigiQXQgbGVhc3Qgb25lIGNhbGxiYWNrIHJlcXVpcmVkIik7cmV0dXJuIHIuaGFzKHQpPyhuPXIuZ2V0KHQpLCJmdW5jdGlvbiI9PXR5cGVvZiBlJiYobj1lKG4pLHIuc2V0KHQsbikpKToiZnVuY3Rpb24iPT10eXBlb2YgaSYmKG49aSgpLHIuc2V0KHQsbikpLG59O3N0KHt0YXJnZXQ6Ik1hcCIscHJvdG86ITAscmVhbDohMCxmb3JjZWQ6R30se3Vwc2VydDpHaX0pLHN0KHt0YXJnZXQ6Ik1hcCIscHJvdG86ITAscmVhbDohMCxmb3JjZWQ6R30se3VwZGF0ZU9ySW5zZXJ0OkdpfSk7YSgiU2V0IixmdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdCh0aGlzLGFyZ3VtZW50cy5sZW5ndGg/YXJndW1lbnRzWzBdOnZvaWQgMCl9fSxLaSkscHQuU2V0O3N0KHt0YXJnZXQ6IlNldCIsc3RhdDohMH0se2Zyb206U259KSxzdCh7dGFyZ2V0OiJTZXQiLHN0YXQ6ITB9LHtvZjp6fSk7c3Qoe3RhcmdldDoiU2V0Iixwcm90bzohMCxyZWFsOiEwLGZvcmNlZDpHfSx7YWRkQWxsOmZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uKCl7Zm9yKHZhciB0PW0odGhpcyksZT1HdCh0LmFkZCksbj0wLHI9YXJndW1lbnRzLmxlbmd0aDtuPHI7bisrKWUuY2FsbCh0LGFyZ3VtZW50c1tuXSk7cmV0dXJuIHR9LmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KSxzdCh7dGFyZ2V0OiJTZXQiLHByb3RvOiEwLHJlYWw6ITAsZm9yY2VkOkd9LHtkZWxldGVBbGw6ZnVuY3Rpb24oKXtyZXR1cm4gV2kuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0pO2Z1bmN0aW9uIHppKHQpe3JldHVybiBTZXQucHJvdG90eXBlLnZhbHVlcy5jYWxsKHQpfXN0KHt0YXJnZXQ6IlNldCIscHJvdG86ITAscmVhbDohMCxmb3JjZWQ6R30se2V2ZXJ5OmZ1bmN0aW9uKHQpe3ZhciBuPW0odGhpcyksZT16aShuKSxyPXp0KHQsMTxhcmd1bWVudHMubGVuZ3RoP2FyZ3VtZW50c1sxXTp2b2lkIDAsMyk7cmV0dXJuIW9lKGUsZnVuY3Rpb24odCxlKXtpZighcih0LHQsbikpcmV0dXJuIGUoKX0se0lTX0lURVJBVE9SOiEwLElOVEVSUlVQVEVEOiEwfSkuc3RvcHBlZH19KSxzdCh7dGFyZ2V0OiJTZXQiLHByb3RvOiEwLHJlYWw6ITAsZm9yY2VkOkd9LHtkaWZmZXJlbmNlOmZ1bmN0aW9uKHQpe3ZhciBlPW0odGhpcyksbj1uZXcoRWUoZSxldCgiU2V0IikpKShlKSxyPUd0KG4uZGVsZXRlKTtyZXR1cm4gb2UodCxmdW5jdGlvbih0KXtyLmNhbGwobix0KX0pLG59fSksc3Qoe3RhcmdldDoiU2V0Iixwcm90bzohMCxyZWFsOiEwLGZvcmNlZDpHfSx7ZmlsdGVyOmZ1bmN0aW9uKHQpe3ZhciBlPW0odGhpcyksbj16aShlKSxyPXp0KHQsMTxhcmd1bWVudHMubGVuZ3RoP2FyZ3VtZW50c1sxXTp2b2lkIDAsMyksaT1uZXcoRWUoZSxldCgiU2V0IikpKSxvPUd0KGkuYWRkKTtyZXR1cm4gb2UobixmdW5jdGlvbih0KXtyKHQsdCxlKSYmby5jYWxsKGksdCl9LHtJU19JVEVSQVRPUjohMH0pLGl9fSksc3Qoe3RhcmdldDoiU2V0Iixwcm90bzohMCxyZWFsOiEwLGZvcmNlZDpHfSx7ZmluZDpmdW5jdGlvbih0KXt2YXIgbj1tKHRoaXMpLGU9emkobikscj16dCh0LDE8YXJndW1lbnRzLmxlbmd0aD9hcmd1bWVudHNbMV06dm9pZCAwLDMpO3JldHVybiBvZShlLGZ1bmN0aW9uKHQsZSl7aWYocih0LHQsbikpcmV0dXJuIGUodCl9LHtJU19JVEVSQVRPUjohMCxJTlRFUlJVUFRFRDohMH0pLnJlc3VsdH19KSxzdCh7dGFyZ2V0OiJTZXQiLHByb3RvOiEwLHJlYWw6ITAsZm9yY2VkOkd9LHtpbnRlcnNlY3Rpb246ZnVuY3Rpb24odCl7dmFyIGU9bSh0aGlzKSxuPW5ldyhFZShlLGV0KCJTZXQiKSkpLHI9R3QoZS5oYXMpLGk9R3Qobi5hZGQpO3JldHVybiBvZSh0LGZ1bmN0aW9uKHQpe3IuY2FsbChlLHQpJiZpLmNhbGwobix0KX0pLG59fSksc3Qoe3RhcmdldDoiU2V0Iixwcm90bzohMCxyZWFsOiEwLGZvcmNlZDpHfSx7aXNEaXNqb2ludEZyb206ZnVuY3Rpb24odCl7dmFyIG49bSh0aGlzKSxyPUd0KG4uaGFzKTtyZXR1cm4hb2UodCxmdW5jdGlvbih0LGUpe2lmKCEwPT09ci5jYWxsKG4sdCkpcmV0dXJuIGUoKX0se0lOVEVSUlVQVEVEOiEwfSkuc3RvcHBlZH19KSxzdCh7dGFyZ2V0OiJTZXQiLHByb3RvOiEwLHJlYWw6ITAsZm9yY2VkOkd9LHtpc1N1YnNldE9mOmZ1bmN0aW9uKHQpe3ZhciBlPWZ1bmN0aW9uKHQpe3ZhciBlPW5lKHQpO2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBlKXRocm93IFR5cGVFcnJvcihTdHJpbmcodCkrIiBpcyBub3QgaXRlcmFibGUiKTtyZXR1cm4gbShlLmNhbGwodCkpfSh0aGlzKSxuPW0odCkscj1uLmhhcztyZXR1cm4iZnVuY3Rpb24iIT10eXBlb2YgciYmKG49bmV3KGV0KCJTZXQiKSkodCkscj1HdChuLmhhcykpLCFvZShlLGZ1bmN0aW9uKHQsZSl7aWYoITE9PT1yLmNhbGwobix0KSlyZXR1cm4gZSgpfSx7SVNfSVRFUkFUT1I6ITAsSU5URVJSVVBURUQ6ITB9KS5zdG9wcGVkfX0pLHN0KHt0YXJnZXQ6IlNldCIscHJvdG86ITAscmVhbDohMCxmb3JjZWQ6R30se2lzU3VwZXJzZXRPZjpmdW5jdGlvbih0KXt2YXIgbj1tKHRoaXMpLHI9R3Qobi5oYXMpO3JldHVybiFvZSh0LGZ1bmN0aW9uKHQsZSl7aWYoITE9PT1yLmNhbGwobix0KSlyZXR1cm4gZSgpfSx7SU5URVJSVVBURUQ6ITB9KS5zdG9wcGVkfX0pLHN0KHt0YXJnZXQ6IlNldCIscHJvdG86ITAscmVhbDohMCxmb3JjZWQ6R30se2pvaW46ZnVuY3Rpb24odCl7dmFyIGU9bSh0aGlzKSxuPXppKGUpLGU9dm9pZCAwPT09dD8iLCI6U3RyaW5nKHQpLHQ9W107cmV0dXJuIG9lKG4sdC5wdXNoLHt0aGF0OnQsSVNfSVRFUkFUT1I6ITB9KSx0LmpvaW4oZSl9fSksc3Qoe3RhcmdldDoiU2V0Iixwcm90bzohMCxyZWFsOiEwLGZvcmNlZDpHfSx7bWFwOmZ1bmN0aW9uKHQpe3ZhciBlPW0odGhpcyksbj16aShlKSxyPXp0KHQsMTxhcmd1bWVudHMubGVuZ3RoP2FyZ3VtZW50c1sxXTp2b2lkIDAsMyksaT1uZXcoRWUoZSxldCgiU2V0IikpKSxvPUd0KGkuYWRkKTtyZXR1cm4gb2UobixmdW5jdGlvbih0KXtvLmNhbGwoaSxyKHQsdCxlKSl9LHtJU19JVEVSQVRPUjohMH0pLGl9fSksc3Qoe3RhcmdldDoiU2V0Iixwcm90bzohMCxyZWFsOiEwLGZvcmNlZDpHfSx7cmVkdWNlOmZ1bmN0aW9uKGUpe3ZhciBuPW0odGhpcyksdD16aShuKSxyPWFyZ3VtZW50cy5sZW5ndGg8MixpPXI/dm9pZCAwOmFyZ3VtZW50c1sxXTtpZihHdChlKSxvZSh0LGZ1bmN0aW9uKHQpe2k9cj8ocj0hMSx0KTplKGksdCx0LG4pfSx7SVNfSVRFUkFUT1I6ITB9KSxyKXRocm93IFR5cGVFcnJvcigiUmVkdWNlIG9mIGVtcHR5IHNldCB3aXRoIG5vIGluaXRpYWwgdmFsdWUiKTtyZXR1cm4gaX19KSxzdCh7dGFyZ2V0OiJTZXQiLHByb3RvOiEwLHJlYWw6ITAsZm9yY2VkOkd9LHtzb21lOmZ1bmN0aW9uKHQpe3ZhciBuPW0odGhpcyksZT16aShuKSxyPXp0KHQsMTxhcmd1bWVudHMubGVuZ3RoP2FyZ3VtZW50c1sxXTp2b2lkIDAsMyk7cmV0dXJuIG9lKGUsZnVuY3Rpb24odCxlKXtpZihyKHQsdCxuKSlyZXR1cm4gZSgpfSx7SVNfSVRFUkFUT1I6ITAsSU5URVJSVVBURUQ6ITB9KS5zdG9wcGVkfX0pLHN0KHt0YXJnZXQ6IlNldCIscHJvdG86ITAscmVhbDohMCxmb3JjZWQ6R30se3N5bW1ldHJpY0RpZmZlcmVuY2U6ZnVuY3Rpb24odCl7dmFyIGU9bSh0aGlzKSxuPW5ldyhFZShlLGV0KCJTZXQiKSkpKGUpLHI9R3Qobi5kZWxldGUpLGk9R3Qobi5hZGQpO3JldHVybiBvZSh0LGZ1bmN0aW9uKHQpe3IuY2FsbChuLHQpfHxpLmNhbGwobix0KX0pLG59fSksc3Qoe3RhcmdldDoiU2V0Iixwcm90bzohMCxyZWFsOiEwLGZvcmNlZDpHfSx7dW5pb246ZnVuY3Rpb24odCl7dmFyIGU9bSh0aGlzKSxlPW5ldyhFZShlLGV0KCJTZXQiKSkpKGUpO3JldHVybiBvZSh0LEd0KGUuYWRkKSx7dGhhdDplfSksZX19KTt2YXIgUWk9TWF0aC5mbG9vcjtzdCh7dGFyZ2V0OiJOdW1iZXIiLHN0YXQ6ITB9LHtpc0ludGVnZXI6ZnVuY3Rpb24odCl7cmV0dXJuIXkodCkmJmlzRmluaXRlKHQpJiZRaSh0KT09PXR9fSk7cHQuTnVtYmVyLmlzSW50ZWdlcjtzdCh7dGFyZ2V0OiJOdW1iZXIiLHN0YXQ6ITB9LHtpc05hTjpmdW5jdGlvbih0KXtyZXR1cm4gdCE9dH19KTtwdC5OdW1iZXIuaXNOYU47dmFyIFlpPWZ1bmN0aW9uKHQsZSl7cmV0dXJuKFlpPU9iamVjdC5zZXRQcm90b3R5cGVPZnx8e19fcHJvdG9fXzpbXX1pbnN0YW5jZW9mIEFycmF5JiZmdW5jdGlvbih0LGUpe3QuX19wcm90b19fPWV9fHxmdW5jdGlvbih0LGUpe2Zvcih2YXIgbiBpbiBlKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLG4pJiYodFtuXT1lW25dKX0pKHQsZSl9O2Z1bmN0aW9uIFhpKHQsZSl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGUmJm51bGwhPT1lKXRocm93IG5ldyBUeXBlRXJyb3IoIkNsYXNzIGV4dGVuZHMgdmFsdWUgIitTdHJpbmcoZSkrIiBpcyBub3QgYSBjb25zdHJ1Y3RvciBvciBudWxsIik7ZnVuY3Rpb24gbigpe3RoaXMuY29uc3RydWN0b3I9dH1ZaSh0LGUpLHQucHJvdG90eXBlPW51bGw9PT1lP09iamVjdC5jcmVhdGUoZSk6KG4ucHJvdG90eXBlPWUucHJvdG90eXBlLG5ldyBuKX12YXIgSmk9ZnVuY3Rpb24oKXtyZXR1cm4oSmk9T2JqZWN0LmFzc2lnbnx8ZnVuY3Rpb24odCl7Zm9yKHZhciBlLG49MSxyPWFyZ3VtZW50cy5sZW5ndGg7bjxyO24rKylmb3IodmFyIGkgaW4gZT1hcmd1bWVudHNbbl0pT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUsaSkmJih0W2ldPWVbaV0pO3JldHVybiB0fSkuYXBwbHkodGhpcyxhcmd1bWVudHMpfTtmdW5jdGlvbiAkaSh0LHMsYSx1KXtyZXR1cm4gbmV3KGE9YXx8UHJvbWlzZSkoZnVuY3Rpb24obixlKXtmdW5jdGlvbiByKHQpe3RyeXtvKHUubmV4dCh0KSl9Y2F0Y2godCl7ZSh0KX19ZnVuY3Rpb24gaSh0KXt0cnl7byh1LnRocm93KHQpKX1jYXRjaCh0KXtlKHQpfX1mdW5jdGlvbiBvKHQpe3ZhciBlO3QuZG9uZT9uKHQudmFsdWUpOigoZT10LnZhbHVlKWluc3RhbmNlb2YgYT9lOm5ldyBhKGZ1bmN0aW9uKHQpe3QoZSl9KSkudGhlbihyLGkpfW8oKHU9dS5hcHBseSh0LHN8fFtdKSkubmV4dCgpKX0pfWZ1bmN0aW9uIFppKG4scil7dmFyIGksbyxzLGE9e2xhYmVsOjAsc2VudDpmdW5jdGlvbigpe2lmKDEmc1swXSl0aHJvdyBzWzFdO3JldHVybiBzWzFdfSx0cnlzOltdLG9wczpbXX0sdD17bmV4dDplKDApLHRocm93OmUoMSkscmV0dXJuOmUoMil9O3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJih0W1N5bWJvbC5pdGVyYXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pLHQ7ZnVuY3Rpb24gZShlKXtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKGUpe2lmKGkpdGhyb3cgbmV3IFR5cGVFcnJvcigiR2VuZXJhdG9yIGlzIGFscmVhZHkgZXhlY3V0aW5nLiIpO2Zvcig7YTspdHJ5e2lmKGk9MSxvJiYocz0yJmVbMF0/by5yZXR1cm46ZVswXT9vLnRocm93fHwoKHM9by5yZXR1cm4pJiZzLmNhbGwobyksMCk6by5uZXh0KSYmIShzPXMuY2FsbChvLGVbMV0pKS5kb25lKXJldHVybiBzO3N3aXRjaChvPTAsKGU9cz9bMiZlWzBdLHMudmFsdWVdOmUpWzBdKXtjYXNlIDA6Y2FzZSAxOnM9ZTticmVhaztjYXNlIDQ6cmV0dXJuIGEubGFiZWwrKyx7dmFsdWU6ZVsxXSxkb25lOiExfTtjYXNlIDU6YS5sYWJlbCsrLG89ZVsxXSxlPVswXTtjb250aW51ZTtjYXNlIDc6ZT1hLm9wcy5wb3AoKSxhLnRyeXMucG9wKCk7Y29udGludWU7ZGVmYXVsdDppZighKHM9MDwocz1hLnRyeXMpLmxlbmd0aCYmc1tzLmxlbmd0aC0xXSkmJig2PT09ZVswXXx8Mj09PWVbMF0pKXthPTA7Y29udGludWV9aWYoMz09PWVbMF0mJighc3x8ZVsxXT5zWzBdJiZlWzFdPHNbM10pKXthLmxhYmVsPWVbMV07YnJlYWt9aWYoNj09PWVbMF0mJmEubGFiZWw8c1sxXSl7YS5sYWJlbD1zWzFdLHM9ZTticmVha31pZihzJiZhLmxhYmVsPHNbMl0pe2EubGFiZWw9c1syXSxhLm9wcy5wdXNoKGUpO2JyZWFrfXNbMl0mJmEub3BzLnBvcCgpLGEudHJ5cy5wb3AoKTtjb250aW51ZX1lPXIuY2FsbChuLGEpfWNhdGNoKHQpe2U9WzYsdF0sbz0wfWZpbmFsbHl7aT1zPTB9aWYoNSZlWzBdKXRocm93IGVbMV07cmV0dXJue3ZhbHVlOmVbMF0/ZVsxXTp2b2lkIDAsZG9uZTohMH19KFtlLHRdKX19fWZ1bmN0aW9uIHRvKHQpe3ZhciBlPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJlN5bWJvbC5pdGVyYXRvcixuPWUmJnRbZV0scj0wO2lmKG4pcmV0dXJuIG4uY2FsbCh0KTtpZih0JiYibnVtYmVyIj09dHlwZW9mIHQubGVuZ3RoKXJldHVybntuZXh0OmZ1bmN0aW9uKCl7cmV0dXJue3ZhbHVlOih0PXQmJnI+PXQubGVuZ3RoP3ZvaWQgMDp0KSYmdFtyKytdLGRvbmU6IXR9fX07dGhyb3cgbmV3IFR5cGVFcnJvcihlPyJPYmplY3QgaXMgbm90IGl0ZXJhYmxlLiI6IlN5bWJvbC5pdGVyYXRvciBpcyBub3QgZGVmaW5lZC4iKX1mdW5jdGlvbiBlbyh0LGUpe3ZhciBuPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJnRbU3ltYm9sLml0ZXJhdG9yXTtpZighbilyZXR1cm4gdDt2YXIgcixpLG89bi5jYWxsKHQpLHM9W107dHJ5e2Zvcig7KHZvaWQgMD09PWV8fDA8ZS0tKSYmIShyPW8ubmV4dCgpKS5kb25lOylzLnB1c2goci52YWx1ZSl9Y2F0Y2godCl7aT17ZXJyb3I6dH19ZmluYWxseXt0cnl7ciYmIXIuZG9uZSYmKG49by5yZXR1cm4pJiZuLmNhbGwobyl9ZmluYWxseXtpZihpKXRocm93IGkuZXJyb3J9fXJldHVybiBzfWZ1bmN0aW9uIG5vKHQsZSl7Zm9yKHZhciBuPTAscj1lLmxlbmd0aCxpPXQubGVuZ3RoO248cjtuKyssaSsrKXRbaV09ZVtuXTtyZXR1cm4gdH1mdW5jdGlvbiBybyh0KXtmb3IodmFyIGU9W10sbj0wLHI9MDtyPHQubGVuZ3RoO3IrKyl7dmFyIGk9dC5jaGFyQ29kZUF0KHIpO2k8MTI4P2VbbisrXT1pOihpPDIwNDg/ZVtuKytdPWk+PjZ8MTkyOig1NTI5Nj09KDY0NTEyJmkpJiZyKzE8dC5sZW5ndGgmJjU2MzIwPT0oNjQ1MTImdC5jaGFyQ29kZUF0KHIrMSkpPyhpPTY1NTM2KygoMTAyMyZpKTw8MTApKygxMDIzJnQuY2hhckNvZGVBdCgrK3IpKSxlW24rK109aT4+MTh8MjQwLGVbbisrXT1pPj4xMiY2M3wxMjgpOmVbbisrXT1pPj4xMnwyMjQsZVtuKytdPWk+PjYmNjN8MTI4KSxlW24rK109NjMmaXwxMjgpfXJldHVybiBlfWZ1bmN0aW9uIGlvKHQpe3RyeXtyZXR1cm4gdW8uZGVjb2RlU3RyaW5nKHQsITApfWNhdGNoKHQpe2NvbnNvbGUuZXJyb3IoImJhc2U2NERlY29kZSBmYWlsZWQ6ICIsdCl9cmV0dXJuIG51bGx9dmFyIG9vPXtOT0RFX0NMSUVOVDohMSxOT0RFX0FETUlOOiExLFNES19WRVJTSU9OOiIke0pTQ09SRV9WRVJTSU9OfSJ9LHNvPWZ1bmN0aW9uKHQsZSl7aWYoIXQpdGhyb3cgYW8oZSl9LGFvPWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgRXJyb3IoIkZpcmViYXNlIERhdGFiYXNlICgiK29vLlNES19WRVJTSU9OKyIpIElOVEVSTkFMIEFTU0VSVCBGQUlMRUQ6ICIrdCl9LHVvPXtieXRlVG9DaGFyTWFwXzpudWxsLGNoYXJUb0J5dGVNYXBfOm51bGwsYnl0ZVRvQ2hhck1hcFdlYlNhZmVfOm51bGwsY2hhclRvQnl0ZU1hcFdlYlNhZmVfOm51bGwsRU5DT0RFRF9WQUxTX0JBU0U6IkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5IixnZXQgRU5DT0RFRF9WQUxTKCl7cmV0dXJuIHRoaXMuRU5DT0RFRF9WQUxTX0JBU0UrIisvPSJ9LGdldCBFTkNPREVEX1ZBTFNfV0VCU0FGRSgpe3JldHVybiB0aGlzLkVOQ09ERURfVkFMU19CQVNFKyItXy4ifSxIQVNfTkFUSVZFX1NVUFBPUlQ6ImZ1bmN0aW9uIj09dHlwZW9mIGF0b2IsZW5jb2RlQnl0ZUFycmF5OmZ1bmN0aW9uKHQsZSl7aWYoIUFycmF5LmlzQXJyYXkodCkpdGhyb3cgRXJyb3IoImVuY29kZUJ5dGVBcnJheSB0YWtlcyBhbiBhcnJheSBhcyBhIHBhcmFtZXRlciIpO3RoaXMuaW5pdF8oKTtmb3IodmFyIG49ZT90aGlzLmJ5dGVUb0NoYXJNYXBXZWJTYWZlXzp0aGlzLmJ5dGVUb0NoYXJNYXBfLHI9W10saT0wO2k8dC5sZW5ndGg7aSs9Myl7dmFyIG89dFtpXSxzPWkrMTx0Lmxlbmd0aCxhPXM/dFtpKzFdOjAsdT1pKzI8dC5sZW5ndGgsYz11P3RbaSsyXTowLGg9bz4+MixvPSgzJm8pPDw0fGE+PjQsYT0oMTUmYSk8PDJ8Yz4+NixjPTYzJmM7dXx8KGM9NjQsc3x8KGE9NjQpKSxyLnB1c2gobltoXSxuW29dLG5bYV0sbltjXSl9cmV0dXJuIHIuam9pbigiIil9LGVuY29kZVN0cmluZzpmdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLkhBU19OQVRJVkVfU1VQUE9SVCYmIWU/YnRvYSh0KTp0aGlzLmVuY29kZUJ5dGVBcnJheShybyh0KSxlKX0sZGVjb2RlU3RyaW5nOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMuSEFTX05BVElWRV9TVVBQT1JUJiYhZT9hdG9iKHQpOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1bXSxuPTAscj0wO248dC5sZW5ndGg7KXt2YXIgaSxvLHMsYT10W24rK107YTwxMjg/ZVtyKytdPVN0cmluZy5mcm9tQ2hhckNvZGUoYSk6MTkxPGEmJmE8MjI0PyhvPXRbbisrXSxlW3IrK109U3RyaW5nLmZyb21DaGFyQ29kZSgoMzEmYSk8PDZ8NjMmbykpOjIzOTxhJiZhPDM2NT8oaT0oKDcmYSk8PDE4fCg2MyYobz10W24rK10pKTw8MTJ8KDYzJihzPXRbbisrXSkpPDw2fDYzJnRbbisrXSktNjU1MzYsZVtyKytdPVN0cmluZy5mcm9tQ2hhckNvZGUoNTUyOTYrKGk+PjEwKSksZVtyKytdPVN0cmluZy5mcm9tQ2hhckNvZGUoNTYzMjArKDEwMjMmaSkpKToobz10W24rK10scz10W24rK10sZVtyKytdPVN0cmluZy5mcm9tQ2hhckNvZGUoKDE1JmEpPDwxMnwoNjMmbyk8PDZ8NjMmcykpfXJldHVybiBlLmpvaW4oIiIpfSh0aGlzLmRlY29kZVN0cmluZ1RvQnl0ZUFycmF5KHQsZSkpfSxkZWNvZGVTdHJpbmdUb0J5dGVBcnJheTpmdW5jdGlvbih0LGUpe3RoaXMuaW5pdF8oKTtmb3IodmFyIG49ZT90aGlzLmNoYXJUb0J5dGVNYXBXZWJTYWZlXzp0aGlzLmNoYXJUb0J5dGVNYXBfLHI9W10saT0wO2k8dC5sZW5ndGg7KXt2YXIgbz1uW3QuY2hhckF0KGkrKyldLHM9aTx0Lmxlbmd0aD9uW3QuY2hhckF0KGkpXTowLGE9KytpPHQubGVuZ3RoP25bdC5jaGFyQXQoaSldOjY0LHU9KytpPHQubGVuZ3RoP25bdC5jaGFyQXQoaSldOjY0O2lmKCsraSxudWxsPT1vfHxudWxsPT1zfHxudWxsPT1hfHxudWxsPT11KXRocm93IEVycm9yKCk7bz1vPDwyfHM+PjQ7ci5wdXNoKG8pLDY0IT09YSYmKHM9czw8NCYyNDB8YT4+MixyLnB1c2gocyksNjQhPT11JiYodT1hPDw2JjE5Mnx1LHIucHVzaCh1KSkpfXJldHVybiByfSxpbml0XzpmdW5jdGlvbigpe2lmKCF0aGlzLmJ5dGVUb0NoYXJNYXBfKXt0aGlzLmJ5dGVUb0NoYXJNYXBfPXt9LHRoaXMuY2hhclRvQnl0ZU1hcF89e30sdGhpcy5ieXRlVG9DaGFyTWFwV2ViU2FmZV89e30sdGhpcy5jaGFyVG9CeXRlTWFwV2ViU2FmZV89e307Zm9yKHZhciB0PTA7dDx0aGlzLkVOQ09ERURfVkFMUy5sZW5ndGg7dCsrKXRoaXMuYnl0ZVRvQ2hhck1hcF9bdF09dGhpcy5FTkNPREVEX1ZBTFMuY2hhckF0KHQpLHRoaXMuY2hhclRvQnl0ZU1hcF9bdGhpcy5ieXRlVG9DaGFyTWFwX1t0XV09dCx0aGlzLmJ5dGVUb0NoYXJNYXBXZWJTYWZlX1t0XT10aGlzLkVOQ09ERURfVkFMU19XRUJTQUZFLmNoYXJBdCh0KSwodGhpcy5jaGFyVG9CeXRlTWFwV2ViU2FmZV9bdGhpcy5ieXRlVG9DaGFyTWFwV2ViU2FmZV9bdF1dPXQpPj10aGlzLkVOQ09ERURfVkFMU19CQVNFLmxlbmd0aCYmKHRoaXMuY2hhclRvQnl0ZU1hcF9bdGhpcy5FTkNPREVEX1ZBTFNfV0VCU0FGRS5jaGFyQXQodCldPXQsdGhpcy5jaGFyVG9CeXRlTWFwV2ViU2FmZV9bdGhpcy5FTkNPREVEX1ZBTFMuY2hhckF0KHQpXT10KX19fTtmdW5jdGlvbiBjbyh0KXtyZXR1cm4gaG8odm9pZCAwLHQpfWZ1bmN0aW9uIGhvKHQsZSl7aWYoIShlIGluc3RhbmNlb2YgT2JqZWN0KSlyZXR1cm4gZTtzd2l0Y2goZS5jb25zdHJ1Y3Rvcil7Y2FzZSBEYXRlOnJldHVybiBuZXcgRGF0ZShlLmdldFRpbWUoKSk7Y2FzZSBPYmplY3Q6dm9pZCAwPT09dCYmKHQ9e30pO2JyZWFrO2Nhc2UgQXJyYXk6dD1bXTticmVhaztkZWZhdWx0OnJldHVybiBlfWZvcih2YXIgbiBpbiBlKWUuaGFzT3duUHJvcGVydHkobikmJiJfX3Byb3RvX18iIT09biYmKHRbbl09aG8odFtuXSxlW25dKSk7cmV0dXJuIHR9dmFyIGxvPShmby5wcm90b3R5cGUud3JhcENhbGxiYWNrPWZ1bmN0aW9uKG4pe3ZhciByPXRoaXM7cmV0dXJuIGZ1bmN0aW9uKHQsZSl7dD9yLnJlamVjdCh0KTpyLnJlc29sdmUoZSksImZ1bmN0aW9uIj09dHlwZW9mIG4mJihyLnByb21pc2UuY2F0Y2goZnVuY3Rpb24oKXt9KSwxPT09bi5sZW5ndGg/bih0KTpuKHQsZSkpfX0sZm8pO2Z1bmN0aW9uIGZvKCl7dmFyIG49dGhpczt0aGlzLnJlamVjdD1mdW5jdGlvbigpe30sdGhpcy5yZXNvbHZlPWZ1bmN0aW9uKCl7fSx0aGlzLnByb21pc2U9bmV3IFByb21pc2UoZnVuY3Rpb24odCxlKXtuLnJlc29sdmU9dCxuLnJlamVjdD1lfSl9ZnVuY3Rpb24gcG8oKXtyZXR1cm4idW5kZWZpbmVkIiE9dHlwZW9mIG5hdmlnYXRvciYmInN0cmluZyI9PXR5cGVvZiBuYXZpZ2F0b3IudXNlckFnZW50P25hdmlnYXRvci51c2VyQWdlbnQ6IiJ9ZnVuY3Rpb24gdm8oKXtyZXR1cm4idW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdyYmKHdpbmRvdy5jb3Jkb3ZhfHx3aW5kb3cucGhvbmVnYXB8fHdpbmRvdy5QaG9uZUdhcCkmJi9pb3N8aXBob25lfGlwb2R8aXBhZHxhbmRyb2lkfGJsYWNrYmVycnl8aWVtb2JpbGUvaS50ZXN0KHBvKCkpfWZ1bmN0aW9uIGdvKCl7dmFyIHQ9Im9iamVjdCI9PXR5cGVvZiBjaHJvbWU/Y2hyb21lLnJ1bnRpbWU6Im9iamVjdCI9PXR5cGVvZiBicm93c2VyP2Jyb3dzZXIucnVudGltZTp2b2lkIDA7cmV0dXJuIm9iamVjdCI9PXR5cGVvZiB0JiZ2b2lkIDAhPT10LmlkfWZ1bmN0aW9uIHlvKCl7cmV0dXJuIm9iamVjdCI9PXR5cGVvZiBuYXZpZ2F0b3ImJiJSZWFjdE5hdGl2ZSI9PT1uYXZpZ2F0b3IucHJvZHVjdH1mdW5jdGlvbiBtbygpe3JldHVybiEwPT09b28uTk9ERV9BRE1JTn1mdW5jdGlvbiBibygpe3JldHVybiJpbmRleGVkREIiaW4gc2VsZiYmbnVsbCE9aW5kZXhlZERCfWZ1bmN0aW9uIHdvKCl7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHQsZSl7dHJ5e3ZhciBuPSEwLHI9InZhbGlkYXRlLWJyb3dzZXItY29udGV4dC1mb3ItaW5kZXhlZGRiLWFuYWx5dGljcy1tb2R1bGUiLGk9d2luZG93LmluZGV4ZWREQi5vcGVuKHIpO2kub25zdWNjZXNzPWZ1bmN0aW9uKCl7aS5yZXN1bHQuY2xvc2UoKSxufHx3aW5kb3cuaW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKHIpLHQoITApfSxpLm9udXBncmFkZW5lZWRlZD1mdW5jdGlvbigpe249ITF9LGkub25lcnJvcj1mdW5jdGlvbigpe3ZhciB0O2UoKG51bGw9PT0odD1pLmVycm9yKXx8dm9pZCAwPT09dD92b2lkIDA6dC5tZXNzYWdlKXx8IiIpfX1jYXRjaCh0KXtlKHQpfX0pfWZ1bmN0aW9uIF9vKCl7cmV0dXJuISghbmF2aWdhdG9yfHwhbmF2aWdhdG9yLmNvb2tpZUVuYWJsZWQpfXZhciBJbyxUbz0iRmlyZWJhc2VFcnJvciIsRW89KFhpKFNvLElvPUVycm9yKSxTbyk7ZnVuY3Rpb24gU28odCxlLG4pe2U9SW8uY2FsbCh0aGlzLGUpfHx0aGlzO3JldHVybiBlLmNvZGU9dCxlLmN1c3RvbURhdGE9bixlLm5hbWU9VG8sT2JqZWN0LnNldFByb3RvdHlwZU9mKGUsU28ucHJvdG90eXBlKSxFcnJvci5jYXB0dXJlU3RhY2tUcmFjZSYmRXJyb3IuY2FwdHVyZVN0YWNrVHJhY2UoZSxDby5wcm90b3R5cGUuY3JlYXRlKSxlfXZhciBDbz0oTm8ucHJvdG90eXBlLmNyZWF0ZT1mdW5jdGlvbih0KXtmb3IodmFyIGU9W10sbj0xO248YXJndW1lbnRzLmxlbmd0aDtuKyspZVtuLTFdPWFyZ3VtZW50c1tuXTt2YXIgcixpPWVbMF18fHt9LG89dGhpcy5zZXJ2aWNlKyIvIit0LHQ9dGhpcy5lcnJvcnNbdF0sdD10PyhyPWksdC5yZXBsYWNlKEFvLGZ1bmN0aW9uKHQsZSl7dmFyIG49cltlXTtyZXR1cm4gbnVsbCE9bj9TdHJpbmcobik6IjwiK2UrIj8+In0pKToiRXJyb3IiLHQ9dGhpcy5zZXJ2aWNlTmFtZSsiOiAiK3QrIiAoIitvKyIpLiI7cmV0dXJuIG5ldyBFbyhvLHQsaSl9LE5vKTtmdW5jdGlvbiBObyh0LGUsbil7dGhpcy5zZXJ2aWNlPXQsdGhpcy5zZXJ2aWNlTmFtZT1lLHRoaXMuZXJyb3JzPW59dmFyIEFvPS9ce1wkKFtefV0rKX0vZztmdW5jdGlvbiBrbyh0KXtyZXR1cm4gSlNPTi5wYXJzZSh0KX1mdW5jdGlvbiBSbyh0KXtyZXR1cm4gSlNPTi5zdHJpbmdpZnkodCl9ZnVuY3Rpb24gUG8odCl7dmFyIGU9e30sbj17fSxyPXt9LGk9IiI7dHJ5e3ZhciBvPXQuc3BsaXQoIi4iKSxlPWtvKGlvKG9bMF0pfHwiIiksbj1rbyhpbyhvWzFdKXx8IiIpLGk9b1syXSxyPW4uZHx8e307ZGVsZXRlIG4uZH1jYXRjaCh0KXt9cmV0dXJue2hlYWRlcjplLGNsYWltczpuLGRhdGE6cixzaWduYXR1cmU6aX19ZnVuY3Rpb24gT28odCxlKXtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQsZSl9ZnVuY3Rpb24gRG8odCxlKXtpZihPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCxlKSlyZXR1cm4gdFtlXX1mdW5jdGlvbiB4byh0KXtmb3IodmFyIGUgaW4gdClpZihPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCxlKSlyZXR1cm4hMTtyZXR1cm4hMH1mdW5jdGlvbiBMbyh0LGUsbil7dmFyIHIsaT17fTtmb3IociBpbiB0KU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LHIpJiYoaVtyXT1lLmNhbGwobix0W3JdLHIsdCkpO3JldHVybiBpfWZ1bmN0aW9uIE1vKHQpe2Zvcih2YXIgbj1bXSxlPTAscj1PYmplY3QuZW50cmllcyh0KTtlPHIubGVuZ3RoO2UrKyl7dmFyIGk9cltlXTshZnVuY3Rpb24oZSx0KXtBcnJheS5pc0FycmF5KHQpP3QuZm9yRWFjaChmdW5jdGlvbih0KXtuLnB1c2goZW5jb2RlVVJJQ29tcG9uZW50KGUpKyI9IitlbmNvZGVVUklDb21wb25lbnQodCkpfSk6bi5wdXNoKGVuY29kZVVSSUNvbXBvbmVudChlKSsiPSIrZW5jb2RlVVJJQ29tcG9uZW50KHQpKX0oaVswXSxpWzFdKX1yZXR1cm4gbi5sZW5ndGg/IiYiK24uam9pbigiJiIpOiIifXZhciBGbz0oVW8ucHJvdG90eXBlLnJlc2V0PWZ1bmN0aW9uKCl7dGhpcy5jaGFpbl9bMF09MTczMjU4NDE5Myx0aGlzLmNoYWluX1sxXT00MDIzMjMzNDE3LHRoaXMuY2hhaW5fWzJdPTI1NjIzODMxMDIsdGhpcy5jaGFpbl9bM109MjcxNzMzODc4LHRoaXMuY2hhaW5fWzRdPTMyODUzNzc1MjAsdGhpcy5pbmJ1Zl89MCx0aGlzLnRvdGFsXz0wfSxVby5wcm90b3R5cGUuY29tcHJlc3NfPWZ1bmN0aW9uKHQsZSl7ZT1lfHwwO3ZhciBuPXRoaXMuV187aWYoInN0cmluZyI9PXR5cGVvZiB0KWZvcih2YXIgcj0wO3I8MTY7cisrKW5bcl09dC5jaGFyQ29kZUF0KGUpPDwyNHx0LmNoYXJDb2RlQXQoZSsxKTw8MTZ8dC5jaGFyQ29kZUF0KGUrMik8PDh8dC5jaGFyQ29kZUF0KGUrMyksZSs9NDtlbHNlIGZvcihyPTA7cjwxNjtyKyspbltyXT10W2VdPDwyNHx0W2UrMV08PDE2fHRbZSsyXTw8OHx0W2UrM10sZSs9NDtmb3Iocj0xNjtyPDgwO3IrKyl7dmFyIGk9bltyLTNdXm5bci04XV5uW3ItMTRdXm5bci0xNl07bltyXT00Mjk0OTY3Mjk1JihpPDwxfGk+Pj4zMSl9Zm9yKHZhciBvLHM9dGhpcy5jaGFpbl9bMF0sYT10aGlzLmNoYWluX1sxXSx1PXRoaXMuY2hhaW5fWzJdLGM9dGhpcy5jaGFpbl9bM10saD10aGlzLmNoYWluX1s0XSxyPTA7cjw4MDtyKyspdmFyIGw9cjw0MD9yPDIwPyhvPWNeYSYodV5jKSwxNTE4NTAwMjQ5KToobz1hXnVeYywxODU5Nzc1MzkzKTpyPDYwPyhvPWEmdXxjJihhfHUpLDI0MDA5NTk3MDgpOihvPWFedV5jLDMzOTU0Njk3ODIpLGk9KHM8PDV8cz4+PjI3KStvK2grbCtuW3JdJjQyOTQ5NjcyOTUsaD1jLGM9dSx1PTQyOTQ5NjcyOTUmKGE8PDMwfGE+Pj4yKSxhPXMscz1pO3RoaXMuY2hhaW5fWzBdPXRoaXMuY2hhaW5fWzBdK3MmNDI5NDk2NzI5NSx0aGlzLmNoYWluX1sxXT10aGlzLmNoYWluX1sxXSthJjQyOTQ5NjcyOTUsdGhpcy5jaGFpbl9bMl09dGhpcy5jaGFpbl9bMl0rdSY0Mjk0OTY3Mjk1LHRoaXMuY2hhaW5fWzNdPXRoaXMuY2hhaW5fWzNdK2MmNDI5NDk2NzI5NSx0aGlzLmNoYWluX1s0XT10aGlzLmNoYWluX1s0XStoJjQyOTQ5NjcyOTV9LFVvLnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24odCxlKXtpZihudWxsIT10KXtmb3IodmFyIG49KGU9dm9pZCAwPT09ZT90Lmxlbmd0aDplKS10aGlzLmJsb2NrU2l6ZSxyPTAsaT10aGlzLmJ1Zl8sbz10aGlzLmluYnVmXztyPGU7KXtpZigwPT09bylmb3IoO3I8PW47KXRoaXMuY29tcHJlc3NfKHQscikscis9dGhpcy5ibG9ja1NpemU7aWYoInN0cmluZyI9PXR5cGVvZiB0KXtmb3IoO3I8ZTspaWYoaVtvXT10LmNoYXJDb2RlQXQociksKytyLCsrbz09PXRoaXMuYmxvY2tTaXplKXt0aGlzLmNvbXByZXNzXyhpKSxvPTA7YnJlYWt9fWVsc2UgZm9yKDtyPGU7KWlmKGlbb109dFtyXSwrK3IsKytvPT09dGhpcy5ibG9ja1NpemUpe3RoaXMuY29tcHJlc3NfKGkpLG89MDticmVha319dGhpcy5pbmJ1Zl89byx0aGlzLnRvdGFsXys9ZX19LFVvLnByb3RvdHlwZS5kaWdlc3Q9ZnVuY3Rpb24oKXt2YXIgdD1bXSxlPTgqdGhpcy50b3RhbF87dGhpcy5pbmJ1Zl88NTY/dGhpcy51cGRhdGUodGhpcy5wYWRfLDU2LXRoaXMuaW5idWZfKTp0aGlzLnVwZGF0ZSh0aGlzLnBhZF8sdGhpcy5ibG9ja1NpemUtKHRoaXMuaW5idWZfLTU2KSk7Zm9yKHZhciBuPXRoaXMuYmxvY2tTaXplLTE7NTY8PW47bi0tKXRoaXMuYnVmX1tuXT0yNTUmZSxlLz0yNTY7dGhpcy5jb21wcmVzc18odGhpcy5idWZfKTtmb3IodmFyIHI9MCxuPTA7bjw1O24rKylmb3IodmFyIGk9MjQ7MDw9aTtpLT04KXRbcl09dGhpcy5jaGFpbl9bbl0+PmkmMjU1LCsrcjtyZXR1cm4gdH0sVW8pO2Z1bmN0aW9uIFVvKCl7dGhpcy5jaGFpbl89W10sdGhpcy5idWZfPVtdLHRoaXMuV189W10sdGhpcy5wYWRfPVtdLHRoaXMuaW5idWZfPTAsdGhpcy50b3RhbF89MCx0aGlzLmJsb2NrU2l6ZT02NCx0aGlzLnBhZF9bMF09MTI4O2Zvcih2YXIgdD0xO3Q8dGhpcy5ibG9ja1NpemU7Kyt0KXRoaXMucGFkX1t0XT0wO3RoaXMucmVzZXQoKX1mdW5jdGlvbiBqbyh0LGUpe2U9bmV3IHFvKHQsZSk7cmV0dXJuIGUuc3Vic2NyaWJlLmJpbmQoZSl9dmFyIHFvPShWby5wcm90b3R5cGUubmV4dD1mdW5jdGlvbihlKXt0aGlzLmZvckVhY2hPYnNlcnZlcihmdW5jdGlvbih0KXt0Lm5leHQoZSl9KX0sVm8ucHJvdG90eXBlLmVycm9yPWZ1bmN0aW9uKGUpe3RoaXMuZm9yRWFjaE9ic2VydmVyKGZ1bmN0aW9uKHQpe3QuZXJyb3IoZSl9KSx0aGlzLmNsb3NlKGUpfSxWby5wcm90b3R5cGUuY29tcGxldGU9ZnVuY3Rpb24oKXt0aGlzLmZvckVhY2hPYnNlcnZlcihmdW5jdGlvbih0KXt0LmNvbXBsZXRlKCl9KSx0aGlzLmNsb3NlKCl9LFZvLnByb3RvdHlwZS5zdWJzY3JpYmU9ZnVuY3Rpb24odCxlLG4pe3ZhciByLGk9dGhpcztpZih2b2lkIDA9PT10JiZ2b2lkIDA9PT1lJiZ2b2lkIDA9PT1uKXRocm93IG5ldyBFcnJvcigiTWlzc2luZyBPYnNlcnZlci4iKTt2b2lkIDA9PT0ocj1mdW5jdGlvbih0LGUpe2lmKCJvYmplY3QiIT10eXBlb2YgdHx8bnVsbD09PXQpcmV0dXJuITE7Zm9yKHZhciBuPTAscj1lO248ci5sZW5ndGg7bisrKXt2YXIgaT1yW25dO2lmKGkgaW4gdCYmImZ1bmN0aW9uIj09dHlwZW9mIHRbaV0pcmV0dXJuITB9cmV0dXJuITF9KHQsWyJuZXh0IiwiZXJyb3IiLCJjb21wbGV0ZSJdKT90OntuZXh0OnQsZXJyb3I6ZSxjb21wbGV0ZTpufSkubmV4dCYmKHIubmV4dD1Cbyksdm9pZCAwPT09ci5lcnJvciYmKHIuZXJyb3I9Qm8pLHZvaWQgMD09PXIuY29tcGxldGUmJihyLmNvbXBsZXRlPUJvKTtuPXRoaXMudW5zdWJzY3JpYmVPbmUuYmluZCh0aGlzLHRoaXMub2JzZXJ2ZXJzLmxlbmd0aCk7cmV0dXJuIHRoaXMuZmluYWxpemVkJiZ0aGlzLnRhc2sudGhlbihmdW5jdGlvbigpe3RyeXtpLmZpbmFsRXJyb3I/ci5lcnJvcihpLmZpbmFsRXJyb3IpOnIuY29tcGxldGUoKX1jYXRjaCh0KXt9fSksdGhpcy5vYnNlcnZlcnMucHVzaChyKSxufSxWby5wcm90b3R5cGUudW5zdWJzY3JpYmVPbmU9ZnVuY3Rpb24odCl7dm9pZCAwIT09dGhpcy5vYnNlcnZlcnMmJnZvaWQgMCE9PXRoaXMub2JzZXJ2ZXJzW3RdJiYoZGVsZXRlIHRoaXMub2JzZXJ2ZXJzW3RdLC0tdGhpcy5vYnNlcnZlckNvdW50LDA9PT10aGlzLm9ic2VydmVyQ291bnQmJnZvaWQgMCE9PXRoaXMub25Ob09ic2VydmVycyYmdGhpcy5vbk5vT2JzZXJ2ZXJzKHRoaXMpKX0sVm8ucHJvdG90eXBlLmZvckVhY2hPYnNlcnZlcj1mdW5jdGlvbih0KXtpZighdGhpcy5maW5hbGl6ZWQpZm9yKHZhciBlPTA7ZTx0aGlzLm9ic2VydmVycy5sZW5ndGg7ZSsrKXRoaXMuc2VuZE9uZShlLHQpfSxWby5wcm90b3R5cGUuc2VuZE9uZT1mdW5jdGlvbih0LGUpe3ZhciBuPXRoaXM7dGhpcy50YXNrLnRoZW4oZnVuY3Rpb24oKXtpZih2b2lkIDAhPT1uLm9ic2VydmVycyYmdm9pZCAwIT09bi5vYnNlcnZlcnNbdF0pdHJ5e2Uobi5vYnNlcnZlcnNbdF0pfWNhdGNoKHQpeyJ1bmRlZmluZWQiIT10eXBlb2YgY29uc29sZSYmY29uc29sZS5lcnJvciYmY29uc29sZS5lcnJvcih0KX19KX0sVm8ucHJvdG90eXBlLmNsb3NlPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7dGhpcy5maW5hbGl6ZWR8fCh0aGlzLmZpbmFsaXplZD0hMCx2b2lkIDAhPT10JiYodGhpcy5maW5hbEVycm9yPXQpLHRoaXMudGFzay50aGVuKGZ1bmN0aW9uKCl7ZS5vYnNlcnZlcnM9dm9pZCAwLGUub25Ob09ic2VydmVycz12b2lkIDB9KSl9LFZvKTtmdW5jdGlvbiBWbyh0LGUpe3ZhciBuPXRoaXM7dGhpcy5vYnNlcnZlcnM9W10sdGhpcy51bnN1YnNjcmliZXM9W10sdGhpcy5vYnNlcnZlckNvdW50PTAsdGhpcy50YXNrPVByb21pc2UucmVzb2x2ZSgpLHRoaXMuZmluYWxpemVkPSExLHRoaXMub25Ob09ic2VydmVycz1lLHRoaXMudGFzay50aGVuKGZ1bmN0aW9uKCl7dChuKX0pLmNhdGNoKGZ1bmN0aW9uKHQpe24uZXJyb3IodCl9KX1mdW5jdGlvbiBCbygpe31mdW5jdGlvbiBLbyh0LGUsbixyKXt2YXIgaTtpZihyPGU/aT0iYXQgbGVhc3QgIitlOm48ciYmKGk9MD09PW4/Im5vbmUiOiJubyBtb3JlIHRoYW4gIituKSxpKXRocm93IG5ldyBFcnJvcih0KyIgZmFpbGVkOiBXYXMgY2FsbGVkIHdpdGggIityKygxPT09cj8iIGFyZ3VtZW50LiI6IiBhcmd1bWVudHMuIikrIiBFeHBlY3RzICIraSsiLiIpfWZ1bmN0aW9uIFdvKHQsZSxuKXt2YXIgcj0iIjtzd2l0Y2goZSl7Y2FzZSAxOnI9bj8iZmlyc3QiOiJGaXJzdCI7YnJlYWs7Y2FzZSAyOnI9bj8ic2Vjb25kIjoiU2Vjb25kIjticmVhaztjYXNlIDM6cj1uPyJ0aGlyZCI6IlRoaXJkIjticmVhaztjYXNlIDQ6cj1uPyJmb3VydGgiOiJGb3VydGgiO2JyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJlcnJvclByZWZpeCBjYWxsZWQgd2l0aCBhcmd1bWVudE51bWJlciA+IDQuICBOZWVkIHRvIHVwZGF0ZSBpdD8iKX10Kz0iIGZhaWxlZDogIjtyZXR1cm4gdCs9cisiIGFyZ3VtZW50ICJ9ZnVuY3Rpb24gSG8odCxlLG4scil7aWYoKCFyfHxuKSYmImZ1bmN0aW9uIiE9dHlwZW9mIG4pdGhyb3cgbmV3IEVycm9yKFdvKHQsZSxyKSsibXVzdCBiZSBhIHZhbGlkIGZ1bmN0aW9uLiIpfWZ1bmN0aW9uIEdvKHQsZSxuLHIpe2lmKCghcnx8bikmJigib2JqZWN0IiE9dHlwZW9mIG58fG51bGw9PT1uKSl0aHJvdyBuZXcgRXJyb3IoV28odCxlLHIpKyJtdXN0IGJlIGEgdmFsaWQgY29udGV4dCBvYmplY3QuIil9ZnVuY3Rpb24gem8odCl7Zm9yKHZhciBlPTAsbj0wO248dC5sZW5ndGg7bisrKXt2YXIgcj10LmNoYXJDb2RlQXQobik7cjwxMjg/ZSsrOnI8MjA0OD9lKz0yOjU1Mjk2PD1yJiZyPD01NjMxOT8oZSs9NCxuKyspOmUrPTN9cmV0dXJuIGV9dmFyIFFvPTFlMyxZbz0yLFhvPTE0NGU1LEpvPS41O2Z1bmN0aW9uICRvKHQsZSxuKXt2b2lkIDA9PT1uJiYobj1Zbyk7bj0oZT12b2lkIDA9PT1lP1FvOmUpKk1hdGgucG93KG4sdCksdD1NYXRoLnJvdW5kKEpvKm4qKE1hdGgucmFuZG9tKCktLjUpKjIpO3JldHVybiBNYXRoLm1pbihYbyxuK3QpfWZ1bmN0aW9uIFpvKHQpe3JldHVybiB0JiZ0Ll9kZWxlZ2F0ZT90Ll9kZWxlZ2F0ZTp0fXZhciB0cz0oZXMucHJvdG90eXBlLnNldEluc3RhbnRpYXRpb25Nb2RlPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmluc3RhbnRpYXRpb25Nb2RlPXQsdGhpc30sZXMucHJvdG90eXBlLnNldE11bHRpcGxlSW5zdGFuY2VzPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLm11bHRpcGxlSW5zdGFuY2VzPXQsdGhpc30sZXMucHJvdG90eXBlLnNldFNlcnZpY2VQcm9wcz1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5zZXJ2aWNlUHJvcHM9dCx0aGlzfSxlcyk7ZnVuY3Rpb24gZXModCxlLG4pe3RoaXMubmFtZT10LHRoaXMuaW5zdGFuY2VGYWN0b3J5PWUsdGhpcy50eXBlPW4sdGhpcy5tdWx0aXBsZUluc3RhbmNlcz0hMSx0aGlzLnNlcnZpY2VQcm9wcz17fSx0aGlzLmluc3RhbnRpYXRpb25Nb2RlPSJMQVpZIn12YXIgbnM9IltERUZBVUxUXSIscnM9KGlzLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24odCl7dm9pZCAwPT09dCYmKHQ9bnMpO3ZhciBlPXRoaXMubm9ybWFsaXplSW5zdGFuY2VJZGVudGlmaWVyKHQpO2lmKCF0aGlzLmluc3RhbmNlc0RlZmVycmVkLmhhcyhlKSl7dmFyIG49bmV3IGxvO3RoaXMuaW5zdGFuY2VzRGVmZXJyZWQuc2V0KGUsbik7dHJ5e3ZhciByPXRoaXMuZ2V0T3JJbml0aWFsaXplU2VydmljZSh7aW5zdGFuY2VJZGVudGlmaWVyOmV9KTtyJiZuLnJlc29sdmUocil9Y2F0Y2godCl7fX1yZXR1cm4gdGhpcy5pbnN0YW5jZXNEZWZlcnJlZC5nZXQoZSkucHJvbWlzZX0saXMucHJvdG90eXBlLmdldEltbWVkaWF0ZT1mdW5jdGlvbih0KXt2YXIgZT1KaSh7aWRlbnRpZmllcjpucyxvcHRpb25hbDohMX0sdCksdD1lLmlkZW50aWZpZXIsbj1lLm9wdGlvbmFsLHI9dGhpcy5ub3JtYWxpemVJbnN0YW5jZUlkZW50aWZpZXIodCk7dHJ5e3ZhciBpPXRoaXMuZ2V0T3JJbml0aWFsaXplU2VydmljZSh7aW5zdGFuY2VJZGVudGlmaWVyOnJ9KTtpZihpKXJldHVybiBpO2lmKG4pcmV0dXJuIG51bGw7dGhyb3cgRXJyb3IoIlNlcnZpY2UgIit0aGlzLm5hbWUrIiBpcyBub3QgYXZhaWxhYmxlIil9Y2F0Y2godCl7aWYobilyZXR1cm4gbnVsbDt0aHJvdyB0fX0saXMucHJvdG90eXBlLmdldENvbXBvbmVudD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmNvbXBvbmVudH0saXMucHJvdG90eXBlLnNldENvbXBvbmVudD1mdW5jdGlvbih0KXt2YXIgZSxuO2lmKHQubmFtZSE9PXRoaXMubmFtZSl0aHJvdyBFcnJvcigiTWlzbWF0Y2hpbmcgQ29tcG9uZW50ICIrdC5uYW1lKyIgZm9yIFByb3ZpZGVyICIrdGhpcy5uYW1lKyIuIik7aWYodGhpcy5jb21wb25lbnQpdGhyb3cgRXJyb3IoIkNvbXBvbmVudCBmb3IgIit0aGlzLm5hbWUrIiBoYXMgYWxyZWFkeSBiZWVuIHByb3ZpZGVkIik7aWYoIkVBR0VSIj09PSh0aGlzLmNvbXBvbmVudD10KS5pbnN0YW50aWF0aW9uTW9kZSl0cnl7dGhpcy5nZXRPckluaXRpYWxpemVTZXJ2aWNlKHtpbnN0YW5jZUlkZW50aWZpZXI6bnN9KX1jYXRjaCh0KXt9dHJ5e2Zvcih2YXIgcj10byh0aGlzLmluc3RhbmNlc0RlZmVycmVkLmVudHJpZXMoKSksaT1yLm5leHQoKTshaS5kb25lO2k9ci5uZXh0KCkpe3ZhciBvPWVvKGkudmFsdWUsMikscz1vWzBdLGE9b1sxXSx1PXRoaXMubm9ybWFsaXplSW5zdGFuY2VJZGVudGlmaWVyKHMpO3RyeXt2YXIgYz10aGlzLmdldE9ySW5pdGlhbGl6ZVNlcnZpY2Uoe2luc3RhbmNlSWRlbnRpZmllcjp1fSk7YS5yZXNvbHZlKGMpfWNhdGNoKHQpe319fWNhdGNoKHQpe2U9e2Vycm9yOnR9fWZpbmFsbHl7dHJ5e2kmJiFpLmRvbmUmJihuPXIucmV0dXJuKSYmbi5jYWxsKHIpfWZpbmFsbHl7aWYoZSl0aHJvdyBlLmVycm9yfX19LGlzLnByb3RvdHlwZS5jbGVhckluc3RhbmNlPWZ1bmN0aW9uKHQpe3ZvaWQgMD09PXQmJih0PW5zKSx0aGlzLmluc3RhbmNlc0RlZmVycmVkLmRlbGV0ZSh0KSx0aGlzLmluc3RhbmNlcy5kZWxldGUodCl9LGlzLnByb3RvdHlwZS5kZWxldGU9ZnVuY3Rpb24oKXtyZXR1cm4gJGkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIGU7cmV0dXJuIFppKHRoaXMsZnVuY3Rpb24odCl7c3dpdGNoKHQubGFiZWwpe2Nhc2UgMDpyZXR1cm4gZT1BcnJheS5mcm9tKHRoaXMuaW5zdGFuY2VzLnZhbHVlcygpKSxbNCxQcm9taXNlLmFsbChubyhubyhbXSxlbyhlLmZpbHRlcihmdW5jdGlvbih0KXtyZXR1cm4iSU5URVJOQUwiaW4gdH0pLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gdC5JTlRFUk5BTC5kZWxldGUoKX0pKSksZW8oZS5maWx0ZXIoZnVuY3Rpb24odCl7cmV0dXJuIl9kZWxldGUiaW4gdH0pLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gdC5fZGVsZXRlKCl9KSkpKV07Y2FzZSAxOnJldHVybiB0LnNlbnQoKSxbMl19fSl9KX0saXMucHJvdG90eXBlLmlzQ29tcG9uZW50U2V0PWZ1bmN0aW9uKCl7cmV0dXJuIG51bGwhPXRoaXMuY29tcG9uZW50fSxpcy5wcm90b3R5cGUuaXNJbml0aWFsaXplZD1mdW5jdGlvbih0KXtyZXR1cm4gdm9pZCAwPT09dCYmKHQ9bnMpLHRoaXMuaW5zdGFuY2VzLmhhcyh0KX0saXMucHJvdG90eXBlLmluaXRpYWxpemU9ZnVuY3Rpb24odCl7dmFyIGU9KHQ9dm9pZCAwPT09dD97fTp0KS5pbnN0YW5jZUlkZW50aWZpZXIsZT12b2lkIDA9PT1lP25zOmUsdD10Lm9wdGlvbnMsdD12b2lkIDA9PT10P3t9OnQsZT10aGlzLm5vcm1hbGl6ZUluc3RhbmNlSWRlbnRpZmllcihlKTtpZih0aGlzLmlzSW5pdGlhbGl6ZWQoZSkpdGhyb3cgRXJyb3IodGhpcy5uYW1lKyIoIitlKyIpIGhhcyBhbHJlYWR5IGJlZW4gaW5pdGlhbGl6ZWQiKTtpZighdGhpcy5pc0NvbXBvbmVudFNldCgpKXRocm93IEVycm9yKCJDb21wb25lbnQgIit0aGlzLm5hbWUrIiBoYXMgbm90IGJlZW4gcmVnaXN0ZXJlZCB5ZXQiKTtyZXR1cm4gdGhpcy5nZXRPckluaXRpYWxpemVTZXJ2aWNlKHtpbnN0YW5jZUlkZW50aWZpZXI6ZSxvcHRpb25zOnR9KX0saXMucHJvdG90eXBlLmdldE9ySW5pdGlhbGl6ZVNlcnZpY2U9ZnVuY3Rpb24odCl7dmFyIGU9dC5pbnN0YW5jZUlkZW50aWZpZXIsbj10Lm9wdGlvbnMscj12b2lkIDA9PT1uP3t9Om4sdD10aGlzLmluc3RhbmNlcy5nZXQoZSk7cmV0dXJuIXQmJnRoaXMuY29tcG9uZW50JiYodD10aGlzLmNvbXBvbmVudC5pbnN0YW5jZUZhY3RvcnkodGhpcy5jb250YWluZXIse2luc3RhbmNlSWRlbnRpZmllcjoobj1lKT09PW5zP3ZvaWQgMDpuLG9wdGlvbnM6cn0pLHRoaXMuaW5zdGFuY2VzLnNldChlLHQpKSx0fHxudWxsfSxpcy5wcm90b3R5cGUubm9ybWFsaXplSW5zdGFuY2VJZGVudGlmaWVyPWZ1bmN0aW9uKHQpe3JldHVybiF0aGlzLmNvbXBvbmVudHx8dGhpcy5jb21wb25lbnQubXVsdGlwbGVJbnN0YW5jZXM/dDpuc30saXMpO2Z1bmN0aW9uIGlzKHQsZSl7dGhpcy5uYW1lPXQsdGhpcy5jb250YWluZXI9ZSx0aGlzLmNvbXBvbmVudD1udWxsLHRoaXMuaW5zdGFuY2VzPW5ldyBNYXAsdGhpcy5pbnN0YW5jZXNEZWZlcnJlZD1uZXcgTWFwfXZhciBvcz0oc3MucHJvdG90eXBlLmFkZENvbXBvbmVudD1mdW5jdGlvbih0KXt2YXIgZT10aGlzLmdldFByb3ZpZGVyKHQubmFtZSk7aWYoZS5pc0NvbXBvbmVudFNldCgpKXRocm93IG5ldyBFcnJvcigiQ29tcG9uZW50ICIrdC5uYW1lKyIgaGFzIGFscmVhZHkgYmVlbiByZWdpc3RlcmVkIHdpdGggIit0aGlzLm5hbWUpO2Uuc2V0Q29tcG9uZW50KHQpfSxzcy5wcm90b3R5cGUuYWRkT3JPdmVyd3JpdGVDb21wb25lbnQ9ZnVuY3Rpb24odCl7dGhpcy5nZXRQcm92aWRlcih0Lm5hbWUpLmlzQ29tcG9uZW50U2V0KCkmJnRoaXMucHJvdmlkZXJzLmRlbGV0ZSh0Lm5hbWUpLHRoaXMuYWRkQ29tcG9uZW50KHQpfSxzcy5wcm90b3R5cGUuZ2V0UHJvdmlkZXI9ZnVuY3Rpb24odCl7aWYodGhpcy5wcm92aWRlcnMuaGFzKHQpKXJldHVybiB0aGlzLnByb3ZpZGVycy5nZXQodCk7dmFyIGU9bmV3IHJzKHQsdGhpcyk7cmV0dXJuIHRoaXMucHJvdmlkZXJzLnNldCh0LGUpLGV9LHNzLnByb3RvdHlwZS5nZXRQcm92aWRlcnM9ZnVuY3Rpb24oKXtyZXR1cm4gQXJyYXkuZnJvbSh0aGlzLnByb3ZpZGVycy52YWx1ZXMoKSl9LHNzKTtmdW5jdGlvbiBzcyh0KXt0aGlzLm5hbWU9dCx0aGlzLnByb3ZpZGVycz1uZXcgTWFwfXZhciBhcyx1cz1bXTsoU249YXM9YXN8fHt9KVtTbi5ERUJVRz0wXT0iREVCVUciLFNuW1NuLlZFUkJPU0U9MV09IlZFUkJPU0UiLFNuW1NuLklORk89Ml09IklORk8iLFNuW1NuLldBUk49M109IldBUk4iLFNuW1NuLkVSUk9SPTRdPSJFUlJPUiIsU25bU24uU0lMRU5UPTVdPSJTSUxFTlQiO2Z1bmN0aW9uIGNzKHQsZSl7Zm9yKHZhciBuPVtdLHI9MjtyPGFyZ3VtZW50cy5sZW5ndGg7cisrKW5bci0yXT1hcmd1bWVudHNbcl07aWYoIShlPHQubG9nTGV2ZWwpKXt2YXIgaT0obmV3IERhdGUpLnRvSVNPU3RyaW5nKCksbz1mc1tlXTtpZighbyl0aHJvdyBuZXcgRXJyb3IoIkF0dGVtcHRlZCB0byBsb2cgYSBtZXNzYWdlIHdpdGggYW4gaW52YWxpZCBsb2dUeXBlICh2YWx1ZTogIitlKyIpIik7Y29uc29sZVtvXS5hcHBseShjb25zb2xlLG5vKFsiWyIraSsiXSAgIit0Lm5hbWUrIjoiXSxuKSl9fXZhciBocz17ZGVidWc6YXMuREVCVUcsdmVyYm9zZTphcy5WRVJCT1NFLGluZm86YXMuSU5GTyx3YXJuOmFzLldBUk4sZXJyb3I6YXMuRVJST1Isc2lsZW50OmFzLlNJTEVOVH0sbHM9YXMuSU5GTyxmcz0oKHo9e30pW2FzLkRFQlVHXT0ibG9nIix6W2FzLlZFUkJPU0VdPSJsb2ciLHpbYXMuSU5GT109ImluZm8iLHpbYXMuV0FSTl09Indhcm4iLHpbYXMuRVJST1JdPSJlcnJvciIseikscHM9KE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkcy5wcm90b3R5cGUsImxvZ0xldmVsIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2xvZ0xldmVsfSxzZXQ6ZnVuY3Rpb24odCl7aWYoISh0IGluIGFzKSl0aHJvdyBuZXcgVHlwZUVycm9yKCdJbnZhbGlkIHZhbHVlICInK3QrJyIgYXNzaWduZWQgdG8gYGxvZ0xldmVsYCcpO3RoaXMuX2xvZ0xldmVsPXR9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksZHMucHJvdG90eXBlLnNldExvZ0xldmVsPWZ1bmN0aW9uKHQpe3RoaXMuX2xvZ0xldmVsPSJzdHJpbmciPT10eXBlb2YgdD9oc1t0XTp0fSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZHMucHJvdG90eXBlLCJsb2dIYW5kbGVyIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2xvZ0hhbmRsZXJ9LHNldDpmdW5jdGlvbih0KXtpZigiZnVuY3Rpb24iIT10eXBlb2YgdCl0aHJvdyBuZXcgVHlwZUVycm9yKCJWYWx1ZSBhc3NpZ25lZCB0byBgbG9nSGFuZGxlcmAgbXVzdCBiZSBhIGZ1bmN0aW9uIik7dGhpcy5fbG9nSGFuZGxlcj10fSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkcy5wcm90b3R5cGUsInVzZXJMb2dIYW5kbGVyIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3VzZXJMb2dIYW5kbGVyfSxzZXQ6ZnVuY3Rpb24odCl7dGhpcy5fdXNlckxvZ0hhbmRsZXI9dH0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxkcy5wcm90b3R5cGUuZGVidWc9ZnVuY3Rpb24oKXtmb3IodmFyIHQ9W10sZT0wO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspdFtlXT1hcmd1bWVudHNbZV07dGhpcy5fdXNlckxvZ0hhbmRsZXImJnRoaXMuX3VzZXJMb2dIYW5kbGVyLmFwcGx5KHRoaXMsbm8oW3RoaXMsYXMuREVCVUddLHQpKSx0aGlzLl9sb2dIYW5kbGVyLmFwcGx5KHRoaXMsbm8oW3RoaXMsYXMuREVCVUddLHQpKX0sZHMucHJvdG90eXBlLmxvZz1mdW5jdGlvbigpe2Zvcih2YXIgdD1bXSxlPTA7ZTxhcmd1bWVudHMubGVuZ3RoO2UrKyl0W2VdPWFyZ3VtZW50c1tlXTt0aGlzLl91c2VyTG9nSGFuZGxlciYmdGhpcy5fdXNlckxvZ0hhbmRsZXIuYXBwbHkodGhpcyxubyhbdGhpcyxhcy5WRVJCT1NFXSx0KSksdGhpcy5fbG9nSGFuZGxlci5hcHBseSh0aGlzLG5vKFt0aGlzLGFzLlZFUkJPU0VdLHQpKX0sZHMucHJvdG90eXBlLmluZm89ZnVuY3Rpb24oKXtmb3IodmFyIHQ9W10sZT0wO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspdFtlXT1hcmd1bWVudHNbZV07dGhpcy5fdXNlckxvZ0hhbmRsZXImJnRoaXMuX3VzZXJMb2dIYW5kbGVyLmFwcGx5KHRoaXMsbm8oW3RoaXMsYXMuSU5GT10sdCkpLHRoaXMuX2xvZ0hhbmRsZXIuYXBwbHkodGhpcyxubyhbdGhpcyxhcy5JTkZPXSx0KSl9LGRzLnByb3RvdHlwZS53YXJuPWZ1bmN0aW9uKCl7Zm9yKHZhciB0PVtdLGU9MDtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXRbZV09YXJndW1lbnRzW2VdO3RoaXMuX3VzZXJMb2dIYW5kbGVyJiZ0aGlzLl91c2VyTG9nSGFuZGxlci5hcHBseSh0aGlzLG5vKFt0aGlzLGFzLldBUk5dLHQpKSx0aGlzLl9sb2dIYW5kbGVyLmFwcGx5KHRoaXMsbm8oW3RoaXMsYXMuV0FSTl0sdCkpfSxkcy5wcm90b3R5cGUuZXJyb3I9ZnVuY3Rpb24oKXtmb3IodmFyIHQ9W10sZT0wO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspdFtlXT1hcmd1bWVudHNbZV07dGhpcy5fdXNlckxvZ0hhbmRsZXImJnRoaXMuX3VzZXJMb2dIYW5kbGVyLmFwcGx5KHRoaXMsbm8oW3RoaXMsYXMuRVJST1JdLHQpKSx0aGlzLl9sb2dIYW5kbGVyLmFwcGx5KHRoaXMsbm8oW3RoaXMsYXMuRVJST1JdLHQpKX0sZHMpO2Z1bmN0aW9uIGRzKHQpe3RoaXMubmFtZT10LHRoaXMuX2xvZ0xldmVsPWxzLHRoaXMuX2xvZ0hhbmRsZXI9Y3MsdGhpcy5fdXNlckxvZ0hhbmRsZXI9bnVsbCx1cy5wdXNoKHRoaXMpfWZ1bmN0aW9uIHZzKGUpe3VzLmZvckVhY2goZnVuY3Rpb24odCl7dC5zZXRMb2dMZXZlbChlKX0pfWZ1bmN0aW9uIGdzKHMsZSl7Zm9yKHZhciB0PTAsbj11czt0PG4ubGVuZ3RoO3QrKykhZnVuY3Rpb24odCl7dmFyIG89bnVsbDtlJiZlLmxldmVsJiYobz1oc1tlLmxldmVsXSksdC51c2VyTG9nSGFuZGxlcj1udWxsPT09cz9udWxsOmZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuPVtdLHI9MjtyPGFyZ3VtZW50cy5sZW5ndGg7cisrKW5bci0yXT1hcmd1bWVudHNbcl07dmFyIGk9bi5tYXAoZnVuY3Rpb24odCl7aWYobnVsbD09dClyZXR1cm4gbnVsbDtpZigic3RyaW5nIj09dHlwZW9mIHQpcmV0dXJuIHQ7aWYoIm51bWJlciI9PXR5cGVvZiB0fHwiYm9vbGVhbiI9PXR5cGVvZiB0KXJldHVybiB0LnRvU3RyaW5nKCk7aWYodCBpbnN0YW5jZW9mIEVycm9yKXJldHVybiB0Lm1lc3NhZ2U7dHJ5e3JldHVybiBKU09OLnN0cmluZ2lmeSh0KX1jYXRjaCh0KXtyZXR1cm4gbnVsbH19KS5maWx0ZXIoZnVuY3Rpb24odCl7cmV0dXJuIHR9KS5qb2luKCIgIik7ZT49KG51bGwhPW8/bzp0LmxvZ0xldmVsKSYmcyh7bGV2ZWw6YXNbZV0udG9Mb3dlckNhc2UoKSxtZXNzYWdlOmksYXJnczpuLHR5cGU6dC5uYW1lfSl9fShuW3RdKX12YXIgU249KChHPXt9KVsibm8tYXBwIl09Ik5vIEZpcmViYXNlIEFwcCAneyRhcHBOYW1lfScgaGFzIGJlZW4gY3JlYXRlZCAtIGNhbGwgRmlyZWJhc2UgQXBwLmluaXRpYWxpemVBcHAoKSIsR1siYmFkLWFwcC1uYW1lIl09IklsbGVnYWwgQXBwIG5hbWU6ICd7JGFwcE5hbWV9IixHWyJkdXBsaWNhdGUtYXBwIl09IkZpcmViYXNlIEFwcCBuYW1lZCAneyRhcHBOYW1lfScgYWxyZWFkeSBleGlzdHMiLEdbImFwcC1kZWxldGVkIl09IkZpcmViYXNlIEFwcCBuYW1lZCAneyRhcHBOYW1lfScgYWxyZWFkeSBkZWxldGVkIixHWyJpbnZhbGlkLWFwcC1hcmd1bWVudCJdPSJmaXJlYmFzZS57JGFwcE5hbWV9KCkgdGFrZXMgZWl0aGVyIG5vIGFyZ3VtZW50IG9yIGEgRmlyZWJhc2UgQXBwIGluc3RhbmNlLiIsR1siaW52YWxpZC1sb2ctYXJndW1lbnQiXT0iRmlyc3QgYXJndW1lbnQgdG8gYG9uTG9nYCBtdXN0IGJlIG51bGwgb3IgYSBmdW5jdGlvbi4iLEcpLHlzPW5ldyBDbygiYXBwIiwiRmlyZWJhc2UiLFNuKSxtcz0iQGZpcmViYXNlL2FwcCIsYnM9IltERUZBVUxUXSIsd3M9KCh6PXt9KVttc109ImZpcmUtY29yZSIselsiQGZpcmViYXNlL2FuYWx5dGljcyJdPSJmaXJlLWFuYWx5dGljcyIselsiQGZpcmViYXNlL2F1dGgiXT0iZmlyZS1hdXRoIix6WyJAZmlyZWJhc2UvZGF0YWJhc2UiXT0iZmlyZS1ydGRiIix6WyJAZmlyZWJhc2UvZnVuY3Rpb25zIl09ImZpcmUtZm4iLHpbIkBmaXJlYmFzZS9pbnN0YWxsYXRpb25zIl09ImZpcmUtaWlkIix6WyJAZmlyZWJhc2UvbWVzc2FnaW5nIl09ImZpcmUtZmNtIix6WyJAZmlyZWJhc2UvcGVyZm9ybWFuY2UiXT0iZmlyZS1wZXJmIix6WyJAZmlyZWJhc2UvcmVtb3RlLWNvbmZpZyJdPSJmaXJlLXJjIix6WyJAZmlyZWJhc2Uvc3RvcmFnZSJdPSJmaXJlLWdjcyIselsiQGZpcmViYXNlL2ZpcmVzdG9yZSJdPSJmaXJlLWZzdCIselsiZmlyZS1qcyJdPSJmaXJlLWpzIix6WyJmaXJlYmFzZS13cmFwcGVyIl09ImZpcmUtanMtYWxsIix6KSxfcz1uZXcgcHMoIkBmaXJlYmFzZS9hcHAiKSxJcz0oT2JqZWN0LmRlZmluZVByb3BlcnR5KFRzLnByb3RvdHlwZSwiYXV0b21hdGljRGF0YUNvbGxlY3Rpb25FbmFibGVkIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2hlY2tEZXN0cm95ZWRfKCksdGhpcy5hdXRvbWF0aWNEYXRhQ29sbGVjdGlvbkVuYWJsZWRffSxzZXQ6ZnVuY3Rpb24odCl7dGhpcy5jaGVja0Rlc3Ryb3llZF8oKSx0aGlzLmF1dG9tYXRpY0RhdGFDb2xsZWN0aW9uRW5hYmxlZF89dH0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoVHMucHJvdG90eXBlLCJuYW1lIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2hlY2tEZXN0cm95ZWRfKCksdGhpcy5uYW1lX30sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoVHMucHJvdG90eXBlLCJvcHRpb25zIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2hlY2tEZXN0cm95ZWRfKCksdGhpcy5vcHRpb25zX30sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxUcy5wcm90b3R5cGUuZGVsZXRlPWZ1bmN0aW9uKCl7dmFyIGU9dGhpcztyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24odCl7ZS5jaGVja0Rlc3Ryb3llZF8oKSx0KCl9KS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIGUuZmlyZWJhc2VfLklOVEVSTkFMLnJlbW92ZUFwcChlLm5hbWVfKSxQcm9taXNlLmFsbChlLmNvbnRhaW5lci5nZXRQcm92aWRlcnMoKS5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIHQuZGVsZXRlKCl9KSl9KS50aGVuKGZ1bmN0aW9uKCl7ZS5pc0RlbGV0ZWRfPSEwfSl9LFRzLnByb3RvdHlwZS5fZ2V0U2VydmljZT1mdW5jdGlvbih0LGUpe3JldHVybiB2b2lkIDA9PT1lJiYoZT1icyksdGhpcy5jaGVja0Rlc3Ryb3llZF8oKSx0aGlzLmNvbnRhaW5lci5nZXRQcm92aWRlcih0KS5nZXRJbW1lZGlhdGUoe2lkZW50aWZpZXI6ZX0pfSxUcy5wcm90b3R5cGUuX3JlbW92ZVNlcnZpY2VJbnN0YW5jZT1mdW5jdGlvbih0LGUpe3ZvaWQgMD09PWUmJihlPWJzKSx0aGlzLmNvbnRhaW5lci5nZXRQcm92aWRlcih0KS5jbGVhckluc3RhbmNlKGUpfSxUcy5wcm90b3R5cGUuX2FkZENvbXBvbmVudD1mdW5jdGlvbihlKXt0cnl7dGhpcy5jb250YWluZXIuYWRkQ29tcG9uZW50KGUpfWNhdGNoKHQpe19zLmRlYnVnKCJDb21wb25lbnQgIitlLm5hbWUrIiBmYWlsZWQgdG8gcmVnaXN0ZXIgd2l0aCBGaXJlYmFzZUFwcCAiK3RoaXMubmFtZSx0KX19LFRzLnByb3RvdHlwZS5fYWRkT3JPdmVyd3JpdGVDb21wb25lbnQ9ZnVuY3Rpb24odCl7dGhpcy5jb250YWluZXIuYWRkT3JPdmVyd3JpdGVDb21wb25lbnQodCl9LFRzLnByb3RvdHlwZS50b0pTT049ZnVuY3Rpb24oKXtyZXR1cm57bmFtZTp0aGlzLm5hbWUsYXV0b21hdGljRGF0YUNvbGxlY3Rpb25FbmFibGVkOnRoaXMuYXV0b21hdGljRGF0YUNvbGxlY3Rpb25FbmFibGVkLG9wdGlvbnM6dGhpcy5vcHRpb25zfX0sVHMucHJvdG90eXBlLmNoZWNrRGVzdHJveWVkXz1mdW5jdGlvbigpe2lmKHRoaXMuaXNEZWxldGVkXyl0aHJvdyB5cy5jcmVhdGUoImFwcC1kZWxldGVkIix7YXBwTmFtZTp0aGlzLm5hbWVffSl9LFRzKTtmdW5jdGlvbiBUcyh0LGUsbil7dmFyIHI9dGhpczt0aGlzLmZpcmViYXNlXz1uLHRoaXMuaXNEZWxldGVkXz0hMSx0aGlzLm5hbWVfPWUubmFtZSx0aGlzLmF1dG9tYXRpY0RhdGFDb2xsZWN0aW9uRW5hYmxlZF89ZS5hdXRvbWF0aWNEYXRhQ29sbGVjdGlvbkVuYWJsZWR8fCExLHRoaXMub3B0aW9uc189Y28odCksdGhpcy5jb250YWluZXI9bmV3IG9zKGUubmFtZSksdGhpcy5fYWRkQ29tcG9uZW50KG5ldyB0cygiYXBwIixmdW5jdGlvbigpe3JldHVybiByfSwiUFVCTElDIikpLHRoaXMuZmlyZWJhc2VfLklOVEVSTkFMLmNvbXBvbmVudHMuZm9yRWFjaChmdW5jdGlvbih0KXtyZXR1cm4gci5fYWRkQ29tcG9uZW50KHQpfSl9SXMucHJvdG90eXBlLm5hbWUmJklzLnByb3RvdHlwZS5vcHRpb25zfHxJcy5wcm90b3R5cGUuZGVsZXRlfHxjb25zb2xlLmxvZygiZGMiKTt2YXIgRXM9IjguMy4yIjtmdW5jdGlvbiBTcyhzKXt2YXIgYT17fSx1PW5ldyBNYXAsYz17X19lc01vZHVsZTohMCxpbml0aWFsaXplQXBwOmZ1bmN0aW9uKHQsZSl7dm9pZCAwPT09ZSYmKGU9e30pOyJvYmplY3QiPT10eXBlb2YgZSYmbnVsbCE9PWV8fChlPXtuYW1lOmV9KTt2YXIgbj1lO3ZvaWQgMD09PW4ubmFtZSYmKG4ubmFtZT1icyk7ZT1uLm5hbWU7aWYoInN0cmluZyIhPXR5cGVvZiBlfHwhZSl0aHJvdyB5cy5jcmVhdGUoImJhZC1hcHAtbmFtZSIse2FwcE5hbWU6U3RyaW5nKGUpfSk7aWYoT28oYSxlKSl0aHJvdyB5cy5jcmVhdGUoImR1cGxpY2F0ZS1hcHAiLHthcHBOYW1lOmV9KTtuPW5ldyBzKHQsbixjKTtyZXR1cm4gYVtlXT1ufSxhcHA6aCxyZWdpc3RlclZlcnNpb246ZnVuY3Rpb24odCxlLG4pe3ZhciByPW51bGwhPT0oaT13c1t0XSkmJnZvaWQgMCE9PWk/aTp0O24mJihyKz0iLSIrbik7dmFyIGk9ci5tYXRjaCgvXHN8XC8vKSx0PWUubWF0Y2goL1xzfFwvLyk7aWYoaXx8dCl7bj1bJ1VuYWJsZSB0byByZWdpc3RlciBsaWJyYXJ5ICInK3IrJyIgd2l0aCB2ZXJzaW9uICInK2UrJyI6J107cmV0dXJuIGkmJm4ucHVzaCgnbGlicmFyeSBuYW1lICInK3IrJyIgY29udGFpbnMgaWxsZWdhbCBjaGFyYWN0ZXJzICh3aGl0ZXNwYWNlIG9yICIvIiknKSxpJiZ0JiZuLnB1c2goImFuZCIpLHQmJm4ucHVzaCgndmVyc2lvbiBuYW1lICInK2UrJyIgY29udGFpbnMgaWxsZWdhbCBjaGFyYWN0ZXJzICh3aGl0ZXNwYWNlIG9yICIvIiknKSx2b2lkIF9zLndhcm4obi5qb2luKCIgIikpfW8obmV3IHRzKHIrIi12ZXJzaW9uIixmdW5jdGlvbigpe3JldHVybntsaWJyYXJ5OnIsdmVyc2lvbjplfX0sIlZFUlNJT04iKSl9LHNldExvZ0xldmVsOnZzLG9uTG9nOmZ1bmN0aW9uKHQsZSl7aWYobnVsbCE9PXQmJiJmdW5jdGlvbiIhPXR5cGVvZiB0KXRocm93IHlzLmNyZWF0ZSgiaW52YWxpZC1sb2ctYXJndW1lbnQiKTtncyh0LGUpfSxhcHBzOm51bGwsU0RLX1ZFUlNJT046RXMsSU5URVJOQUw6e3JlZ2lzdGVyQ29tcG9uZW50Om8scmVtb3ZlQXBwOmZ1bmN0aW9uKHQpe2RlbGV0ZSBhW3RdfSxjb21wb25lbnRzOnUsdXNlQXNTZXJ2aWNlOmZ1bmN0aW9uKHQsZSl7aWYoInNlcnZlckF1dGgiPT09ZSlyZXR1cm4gbnVsbDtyZXR1cm4gZX19fTtmdW5jdGlvbiBoKHQpe2lmKCFPbyhhLHQ9dHx8YnMpKXRocm93IHlzLmNyZWF0ZSgibm8tYXBwIix7YXBwTmFtZTp0fSk7cmV0dXJuIGFbdF19ZnVuY3Rpb24gbyhuKXt2YXIgdCxyPW4ubmFtZTtpZih1LmhhcyhyKSlyZXR1cm4gX3MuZGVidWcoIlRoZXJlIHdlcmUgbXVsdGlwbGUgYXR0ZW1wdHMgdG8gcmVnaXN0ZXIgY29tcG9uZW50ICIrcisiLiIpLCJQVUJMSUMiPT09bi50eXBlP2Nbcl06bnVsbDt1LnNldChyLG4pLCJQVUJMSUMiPT09bi50eXBlJiYodD1mdW5jdGlvbih0KXtpZigiZnVuY3Rpb24iIT10eXBlb2YodD12b2lkIDA9PT10P2goKTp0KVtyXSl0aHJvdyB5cy5jcmVhdGUoImludmFsaWQtYXBwLWFyZ3VtZW50Iix7YXBwTmFtZTpyfSk7cmV0dXJuIHRbcl0oKX0sdm9pZCAwIT09bi5zZXJ2aWNlUHJvcHMmJmhvKHQsbi5zZXJ2aWNlUHJvcHMpLGNbcl09dCxzLnByb3RvdHlwZVtyXT1mdW5jdGlvbigpe2Zvcih2YXIgdD1bXSxlPTA7ZTxhcmd1bWVudHMubGVuZ3RoO2UrKyl0W2VdPWFyZ3VtZW50c1tlXTtyZXR1cm4gdGhpcy5fZ2V0U2VydmljZS5iaW5kKHRoaXMscikuYXBwbHkodGhpcyxuLm11bHRpcGxlSW5zdGFuY2VzP3Q6W10pfSk7Zm9yKHZhciBlPTAsaT1PYmplY3Qua2V5cyhhKTtlPGkubGVuZ3RoO2UrKyl7dmFyIG89aVtlXTthW29dLl9hZGRDb21wb25lbnQobil9cmV0dXJuIlBVQkxJQyI9PT1uLnR5cGU/Y1tyXTpudWxsfXJldHVybiBjLmRlZmF1bHQ9YyxPYmplY3QuZGVmaW5lUHJvcGVydHkoYywiYXBwcyIse2dldDpmdW5jdGlvbigpe3JldHVybiBPYmplY3Qua2V5cyhhKS5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIGFbdF19KX19KSxoLkFwcD1zLGN9dmFyIEc9ZnVuY3Rpb24gdCgpe3ZhciBlPVNzKElzKTtyZXR1cm4gZS5JTlRFUk5BTD1KaShKaSh7fSxlLklOVEVSTkFMKSx7Y3JlYXRlRmlyZWJhc2VOYW1lc3BhY2U6dCxleHRlbmROYW1lc3BhY2U6ZnVuY3Rpb24odCl7aG8oZSx0KX0sY3JlYXRlU3Vic2NyaWJlOmpvLEVycm9yRmFjdG9yeTpDbyxkZWVwRXh0ZW5kOmhvfSksZX0oKSxDcz0oTnMucHJvdG90eXBlLmdldFBsYXRmb3JtSW5mb1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmNvbnRhaW5lci5nZXRQcm92aWRlcnMoKS5tYXAoZnVuY3Rpb24odCl7aWYoZnVuY3Rpb24odCl7dD10LmdldENvbXBvbmVudCgpO3JldHVybiJWRVJTSU9OIj09PShudWxsPT10P3ZvaWQgMDp0LnR5cGUpfSh0KSl7dD10LmdldEltbWVkaWF0ZSgpO3JldHVybiB0LmxpYnJhcnkrIi8iK3QudmVyc2lvbn1yZXR1cm4gbnVsbH0pLmZpbHRlcihmdW5jdGlvbih0KXtyZXR1cm4gdH0pLmpvaW4oIiAiKX0sTnMpO2Z1bmN0aW9uIE5zKHQpe3RoaXMuY29udGFpbmVyPXR9Im9iamVjdCI9PXR5cGVvZiBzZWxmJiZzZWxmLnNlbGY9PT1zZWxmJiZ2b2lkIDAhPT1zZWxmLmZpcmViYXNlJiYoX3Mud2FybigiXG4gICAgV2FybmluZzogRmlyZWJhc2UgaXMgYWxyZWFkeSBkZWZpbmVkIGluIHRoZSBnbG9iYWwgc2NvcGUuIFBsZWFzZSBtYWtlIHN1cmVcbiAgICBGaXJlYmFzZSBsaWJyYXJ5IGlzIG9ubHkgbG9hZGVkIG9uY2UuXG4gICIpLChHYT1zZWxmLmZpcmViYXNlLlNES19WRVJTSU9OKSYmMDw9R2EuaW5kZXhPZigiTElURSIpJiZfcy53YXJuKCJcbiAgICBXYXJuaW5nOiBZb3UgYXJlIHRyeWluZyB0byBsb2FkIEZpcmViYXNlIHdoaWxlIHVzaW5nIEZpcmViYXNlIFBlcmZvcm1hbmNlIHN0YW5kYWxvbmUgc2NyaXB0LlxuICAgIFlvdSBzaG91bGQgbG9hZCBGaXJlYmFzZSBQZXJmb3JtYW5jZSB3aXRoIHRoaXMgaW5zdGFuY2Ugb2YgRmlyZWJhc2UgdG8gYXZvaWQgbG9hZGluZyBkdXBsaWNhdGUgY29kZS5cbiAgICAiKSk7dmFyIEFzPUcuaW5pdGlhbGl6ZUFwcDtHLmluaXRpYWxpemVBcHA9ZnVuY3Rpb24oKXtmb3IodmFyIHQ9W10sZT0wO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspdFtlXT1hcmd1bWVudHNbZV07cmV0dXJuIGZ1bmN0aW9uKCl7dHJ5e3JldHVybiJbb2JqZWN0IHByb2Nlc3NdIj09PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChnbG9iYWwucHJvY2Vzcyl9Y2F0Y2godCl7cmV0dXJufX0oKSYmX3Mud2FybignXG4gICAgICBXYXJuaW5nOiBUaGlzIGlzIGEgYnJvd3Nlci10YXJnZXRlZCBGaXJlYmFzZSBidW5kbGUgYnV0IGl0IGFwcGVhcnMgaXQgaXMgYmVpbmdcbiAgICAgIHJ1biBpbiBhIE5vZGUgZW52aXJvbm1lbnQuICBJZiBydW5uaW5nIGluIGEgTm9kZSBlbnZpcm9ubWVudCwgbWFrZSBzdXJlIHlvdVxuICAgICAgYXJlIHVzaW5nIHRoZSBidW5kbGUgc3BlY2lmaWVkIGJ5IHRoZSAibWFpbiIgZmllbGQgaW4gcGFja2FnZS5qc29uLlxuICAgICAgXG4gICAgICBJZiB5b3UgYXJlIHVzaW5nIFdlYnBhY2ssIHlvdSBjYW4gc3BlY2lmeSAibWFpbiIgYXMgdGhlIGZpcnN0IGl0ZW0gaW5cbiAgICAgICJyZXNvbHZlLm1haW5GaWVsZHMiOlxuICAgICAgaHR0cHM6Ly93ZWJwYWNrLmpzLm9yZy9jb25maWd1cmF0aW9uL3Jlc29sdmUvI3Jlc29sdmVtYWluZmllbGRzXG4gICAgICBcbiAgICAgIElmIHVzaW5nIFJvbGx1cCwgdXNlIHRoZSBAcm9sbHVwL3BsdWdpbi1ub2RlLXJlc29sdmUgcGx1Z2luIGFuZCBzcGVjaWZ5ICJtYWluIlxuICAgICAgYXMgdGhlIGZpcnN0IGl0ZW0gaW4gIm1haW5GaWVsZHMiLCBlLmcuIFtcJ21haW5cJywgXCdtb2R1bGVcJ10uXG4gICAgICBodHRwczovL2dpdGh1Yi5jb20vcm9sbHVwL0Byb2xsdXAvcGx1Z2luLW5vZGUtcmVzb2x2ZVxuICAgICAgJyksQXMuYXBwbHkodm9pZCAwLHQpfTt2YXIga3MsUnMsWGw9Rzsoa3M9WGwpLklOVEVSTkFMLnJlZ2lzdGVyQ29tcG9uZW50KG5ldyB0cygicGxhdGZvcm0tbG9nZ2VyIixmdW5jdGlvbih0KXtyZXR1cm4gbmV3IENzKHQpfSwiUFJJVkFURSIpKSxrcy5yZWdpc3RlclZlcnNpb24obXMsIjAuNi4xOCIsUnMpLGtzLnJlZ2lzdGVyVmVyc2lvbigiZmlyZS1qcyIsIiIpO1hsLnJlZ2lzdGVyVmVyc2lvbigiZmlyZWJhc2UiLCI4LjMuMiIsImFwcCIpOyFmdW5jdGlvbigpe3ZhciB0LG89ImZ1bmN0aW9uIj09dHlwZW9mIE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzP09iamVjdC5kZWZpbmVQcm9wZXJ0eTpmdW5jdGlvbih0LGUsbil7dCE9QXJyYXkucHJvdG90eXBlJiZ0IT1PYmplY3QucHJvdG90eXBlJiYodFtlXT1uLnZhbHVlKX07dmFyIHU9ZnVuY3Rpb24odCl7dD1bIm9iamVjdCI9PXR5cGVvZiB3aW5kb3cmJndpbmRvdywib2JqZWN0Ij09dHlwZW9mIHNlbGYmJnNlbGYsIm9iamVjdCI9PXR5cGVvZiBnbG9iYWwmJmdsb2JhbCx0XTtmb3IodmFyIGU9MDtlPHQubGVuZ3RoOysrZSl7dmFyIG49dFtlXTtpZihuJiZuLk1hdGg9PU1hdGgpcmV0dXJuIG59cmV0dXJuIGdsb2JhbFRoaXN9KHRoaXMpO2Z1bmN0aW9uIGModCl7dmFyIGUsbixyPSJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZTeW1ib2wuaXRlcmF0b3ImJnRbU3ltYm9sLml0ZXJhdG9yXTtyZXR1cm4gcj9yLmNhbGwodCk6e25leHQ6KGU9dCxuPTAsZnVuY3Rpb24oKXtyZXR1cm4gbjxlLmxlbmd0aD97ZG9uZTohMSx2YWx1ZTplW24rK119Ontkb25lOiEwfX0pfX0hZnVuY3Rpb24odCxlKXtpZihlKXt2YXIgbj11O3Q9dC5zcGxpdCgiLiIpO2Zvcih2YXIgcj0wO3I8dC5sZW5ndGgtMTtyKyspe3ZhciBpPXRbcl07aSBpbiBufHwobltpXT17fSksbj1uW2ldfShlPWUocj1uW3Q9dFt0Lmxlbmd0aC0xXV0pKSE9ciYmbnVsbCE9ZSYmbyhuLHQse2NvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTplfSl9fSgiUHJvbWlzZSIsZnVuY3Rpb24odCl7ZnVuY3Rpb24gcyh0KXt0aGlzLmI9MCx0aGlzLmM9dm9pZCAwLHRoaXMuYT1bXTt2YXIgZT10aGlzLmYoKTt0cnl7dChlLnJlc29sdmUsZS5yZWplY3QpfWNhdGNoKHQpe2UucmVqZWN0KHQpfX1mdW5jdGlvbiBlKCl7dGhpcy5hPW51bGx9ZnVuY3Rpb24gYShlKXtyZXR1cm4gZSBpbnN0YW5jZW9mIHM/ZTpuZXcgcyhmdW5jdGlvbih0KXt0KGUpfSl9aWYodClyZXR1cm4gdDtlLnByb3RvdHlwZS5iPWZ1bmN0aW9uKHQpe3ZhciBlO251bGw9PXRoaXMuYSYmKHRoaXMuYT1bXSwoZT10aGlzKS5jKGZ1bmN0aW9uKCl7ZS5nKCl9KSksdGhpcy5hLnB1c2godCl9O3ZhciBuPXUuc2V0VGltZW91dDtlLnByb3RvdHlwZS5jPWZ1bmN0aW9uKHQpe24odCwwKX0sZS5wcm90b3R5cGUuZz1mdW5jdGlvbigpe2Zvcig7dGhpcy5hJiZ0aGlzLmEubGVuZ3RoOyl7dmFyIHQ9dGhpcy5hO3RoaXMuYT1bXTtmb3IodmFyIGU9MDtlPHQubGVuZ3RoOysrZSl7dmFyIG49dFtlXTt0W2VdPW51bGw7dHJ5e24oKX1jYXRjaCh0KXt0aGlzLmYodCl9fX10aGlzLmE9bnVsbH0sZS5wcm90b3R5cGUuZj1mdW5jdGlvbih0KXt0aGlzLmMoZnVuY3Rpb24oKXt0aHJvdyB0fSl9LHMucHJvdG90eXBlLmY9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KGUpe3JldHVybiBmdW5jdGlvbih0KXtyfHwocj0hMCxlLmNhbGwobix0KSl9fXZhciBuPXRoaXMscj0hMTtyZXR1cm57cmVzb2x2ZTp0KHRoaXMubSkscmVqZWN0OnQodGhpcy5nKX19LHMucHJvdG90eXBlLm09ZnVuY3Rpb24odCl7aWYodD09PXRoaXMpdGhpcy5nKG5ldyBUeXBlRXJyb3IoIkEgUHJvbWlzZSBjYW5ub3QgcmVzb2x2ZSB0byBpdHNlbGYiKSk7ZWxzZSBpZih0IGluc3RhbmNlb2Ygcyl0aGlzLnModCk7ZWxzZXt0OnN3aXRjaCh0eXBlb2YgdCl7Y2FzZSJvYmplY3QiOnZhciBlPW51bGwhPXQ7YnJlYWsgdDtjYXNlImZ1bmN0aW9uIjplPSEwO2JyZWFrIHQ7ZGVmYXVsdDplPSExfWU/dGhpcy52KHQpOnRoaXMuaCh0KX19LHMucHJvdG90eXBlLnY9ZnVuY3Rpb24odCl7dmFyIGU9dm9pZCAwO3RyeXtlPXQudGhlbn1jYXRjaCh0KXtyZXR1cm4gdm9pZCB0aGlzLmcodCl9ImZ1bmN0aW9uIj09dHlwZW9mIGU/dGhpcy51KGUsdCk6dGhpcy5oKHQpfSxzLnByb3RvdHlwZS5nPWZ1bmN0aW9uKHQpe3RoaXMuaSgyLHQpfSxzLnByb3RvdHlwZS5oPWZ1bmN0aW9uKHQpe3RoaXMuaSgxLHQpfSxzLnByb3RvdHlwZS5pPWZ1bmN0aW9uKHQsZSl7aWYoMCE9dGhpcy5iKXRocm93IEVycm9yKCJDYW5ub3Qgc2V0dGxlKCIrdCsiLCAiK2UrIik6IFByb21pc2UgYWxyZWFkeSBzZXR0bGVkIGluIHN0YXRlIit0aGlzLmIpO3RoaXMuYj10LHRoaXMuYz1lLHRoaXMubCgpfSxzLnByb3RvdHlwZS5sPWZ1bmN0aW9uKCl7aWYobnVsbCE9dGhpcy5hKXtmb3IodmFyIHQ9MDt0PHRoaXMuYS5sZW5ndGg7Kyt0KWkuYih0aGlzLmFbdF0pO3RoaXMuYT1udWxsfX07dmFyIGk9bmV3IGU7cmV0dXJuIHMucHJvdG90eXBlLnM9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5mKCk7dC5RYShlLnJlc29sdmUsZS5yZWplY3QpfSxzLnByb3RvdHlwZS51PWZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcy5mKCk7dHJ5e3QuY2FsbChlLG4ucmVzb2x2ZSxuLnJlamVjdCl9Y2F0Y2godCl7bi5yZWplY3QodCl9fSxzLnByb3RvdHlwZS50aGVuPWZ1bmN0aW9uKHQsZSl7ZnVuY3Rpb24gbihlLHQpe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBlP2Z1bmN0aW9uKHQpe3RyeXtyKGUodCkpfWNhdGNoKHQpe2kodCl9fTp0fXZhciByLGksbz1uZXcgcyhmdW5jdGlvbih0LGUpe3I9dCxpPWV9KTtyZXR1cm4gdGhpcy5RYShuKHQsciksbihlLGkpKSxvfSxzLnByb3RvdHlwZS5jYXRjaD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy50aGVuKHZvaWQgMCx0KX0scy5wcm90b3R5cGUuUWE9ZnVuY3Rpb24odCxlKXtmdW5jdGlvbiBuKCl7c3dpdGNoKHIuYil7Y2FzZSAxOnQoci5jKTticmVhaztjYXNlIDI6ZShyLmMpO2JyZWFrO2RlZmF1bHQ6dGhyb3cgRXJyb3IoIlVuZXhwZWN0ZWQgc3RhdGU6ICIrci5iKX19dmFyIHI9dGhpcztudWxsPT10aGlzLmE/aS5iKG4pOnRoaXMuYS5wdXNoKG4pfSxzLnJlc29sdmU9YSxzLnJlamVjdD1mdW5jdGlvbihuKXtyZXR1cm4gbmV3IHMoZnVuY3Rpb24odCxlKXtlKG4pfSl9LHMucmFjZT1mdW5jdGlvbihpKXtyZXR1cm4gbmV3IHMoZnVuY3Rpb24odCxlKXtmb3IodmFyIG49YyhpKSxyPW4ubmV4dCgpOyFyLmRvbmU7cj1uLm5leHQoKSlhKHIudmFsdWUpLlFhKHQsZSl9KX0scy5hbGw9ZnVuY3Rpb24odCl7dmFyIGU9Yyh0KSxvPWUubmV4dCgpO3JldHVybiBvLmRvbmU/YShbXSk6bmV3IHMoZnVuY3Rpb24obix0KXtmb3IodmFyIHI9W10saT0wO3IucHVzaCh2b2lkIDApLGkrKyxhKG8udmFsdWUpLlFhKGZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbih0KXtyW2VdPXQsMD09LS1pJiZuKHIpfX0oci5sZW5ndGgtMSksdCksbz1lLm5leHQoKSwhby5kb25lOyk7fSl9LHN9KTt2YXIgaD1ofHx7fSxsPXRoaXN8fHNlbGYsZT0vXltcdysvXy1dK1s9XXswLDJ9JC8sYT1udWxsO2Z1bmN0aW9uIGYodCl7cmV0dXJuKHQ9dC5xdWVyeVNlbGVjdG9yJiZ0LnF1ZXJ5U2VsZWN0b3IoInNjcmlwdFtub25jZV0iKSkmJih0PXQubm9uY2V8fHQuZ2V0QXR0cmlidXRlKCJub25jZSIpKSYmZS50ZXN0KHQpP3Q6IiJ9ZnVuY3Rpb24gcygpe31mdW5jdGlvbiBwKHQpe3ZhciBlPXR5cGVvZiB0O3JldHVybiJvYmplY3QiIT1lP2U6dD9BcnJheS5pc0FycmF5KHQpPyJhcnJheSI6ZToibnVsbCJ9ZnVuY3Rpb24gZCh0KXt2YXIgZT1wKHQpO3JldHVybiJhcnJheSI9PWV8fCJvYmplY3QiPT1lJiYibnVtYmVyIj09dHlwZW9mIHQubGVuZ3RofWZ1bmN0aW9uIHYodCl7cmV0dXJuImZ1bmN0aW9uIj09cCh0KX1mdW5jdGlvbiBnKHQpe3ZhciBlPXR5cGVvZiB0O3JldHVybiJvYmplY3QiPT1lJiZudWxsIT10fHwiZnVuY3Rpb24iPT1lfXZhciBuPSJjbG9zdXJlX3VpZF8iKygxZTkqTWF0aC5yYW5kb20oKT4+PjApLHI9MDtmdW5jdGlvbiBpKHQsZSxuKXtyZXR1cm4gdC5jYWxsLmFwcGx5KHQuYmluZCxhcmd1bWVudHMpfWZ1bmN0aW9uIHkoZSxuLHQpe2lmKCFlKXRocm93IEVycm9yKCk7aWYoMjxhcmd1bWVudHMubGVuZ3RoKXt2YXIgcj1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsMik7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHQ9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzKTtyZXR1cm4gQXJyYXkucHJvdG90eXBlLnVuc2hpZnQuYXBwbHkodCxyKSxlLmFwcGx5KG4sdCl9fXJldHVybiBmdW5jdGlvbigpe3JldHVybiBlLmFwcGx5KG4sYXJndW1lbnRzKX19ZnVuY3Rpb24gbSh0LGUsbil7cmV0dXJuKG09RnVuY3Rpb24ucHJvdG90eXBlLmJpbmQmJi0xIT1GdW5jdGlvbi5wcm90b3R5cGUuYmluZC50b1N0cmluZygpLmluZGV4T2YoIm5hdGl2ZSBjb2RlIik/aTp5KS5hcHBseShudWxsLGFyZ3VtZW50cyl9ZnVuY3Rpb24gYihlKXt2YXIgbj1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsMSk7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHQ9bi5zbGljZSgpO3JldHVybiB0LnB1c2guYXBwbHkodCxhcmd1bWVudHMpLGUuYXBwbHkodGhpcyx0KX19ZnVuY3Rpb24gdyh0LGUpe2Z1bmN0aW9uIG4oKXt9bi5wcm90b3R5cGU9ZS5wcm90b3R5cGUsdC5hYj1lLnByb3RvdHlwZSx0LnByb3RvdHlwZT1uZXcgbix0LnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj10fWZ1bmN0aW9uIF8odCl7cmV0dXJuIHR9ZnVuY3Rpb24gSSh0LGUsbil7dGhpcy5jb2RlPVMrdCx0aGlzLm1lc3NhZ2U9ZXx8Q1t0XXx8IiIsdGhpcy5hPW58fG51bGx9ZnVuY3Rpb24gVCh0KXt2YXIgZT10JiZ0LmNvZGU7cmV0dXJuIGU/bmV3IEkoZS5zdWJzdHJpbmcoUy5sZW5ndGgpLHQubWVzc2FnZSx0LnNlcnZlclJlc3BvbnNlKTpudWxsfXcoSSxFcnJvciksSS5wcm90b3R5cGUudz1mdW5jdGlvbigpe3ZhciB0PXtjb2RlOnRoaXMuY29kZSxtZXNzYWdlOnRoaXMubWVzc2FnZX07cmV0dXJuIHRoaXMuYSYmKHQuc2VydmVyUmVzcG9uc2U9dGhpcy5hKSx0fSxJLnByb3RvdHlwZS50b0pTT049ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy53KCl9O3ZhciBFLFM9ImF1dGgvIixDPXsiYWRtaW4tcmVzdHJpY3RlZC1vcGVyYXRpb24iOiJUaGlzIG9wZXJhdGlvbiBpcyByZXN0cmljdGVkIHRvIGFkbWluaXN0cmF0b3JzIG9ubHkuIiwiYXJndW1lbnQtZXJyb3IiOiIiLCJhcHAtbm90LWF1dGhvcml6ZWQiOiJUaGlzIGFwcCwgaWRlbnRpZmllZCBieSB0aGUgZG9tYWluIHdoZXJlIGl0J3MgaG9zdGVkLCBpcyBub3QgYXV0aG9yaXplZCB0byB1c2UgRmlyZWJhc2UgQXV0aGVudGljYXRpb24gd2l0aCB0aGUgcHJvdmlkZWQgQVBJIGtleS4gUmV2aWV3IHlvdXIga2V5IGNvbmZpZ3VyYXRpb24gaW4gdGhlIEdvb2dsZSBBUEkgY29uc29sZS4iLCJhcHAtbm90LWluc3RhbGxlZCI6IlRoZSByZXF1ZXN0ZWQgbW9iaWxlIGFwcGxpY2F0aW9uIGNvcnJlc3BvbmRpbmcgdG8gdGhlIGlkZW50aWZpZXIgKEFuZHJvaWQgcGFja2FnZSBuYW1lIG9yIGlPUyBidW5kbGUgSUQpIHByb3ZpZGVkIGlzIG5vdCBpbnN0YWxsZWQgb24gdGhpcyBkZXZpY2UuIiwiY2FwdGNoYS1jaGVjay1mYWlsZWQiOiJUaGUgcmVDQVBUQ0hBIHJlc3BvbnNlIHRva2VuIHByb3ZpZGVkIGlzIGVpdGhlciBpbnZhbGlkLCBleHBpcmVkLCBhbHJlYWR5IHVzZWQgb3IgdGhlIGRvbWFpbiBhc3NvY2lhdGVkIHdpdGggaXQgZG9lcyBub3QgbWF0Y2ggdGhlIGxpc3Qgb2Ygd2hpdGVsaXN0ZWQgZG9tYWlucy4iLCJjb2RlLWV4cGlyZWQiOiJUaGUgU01TIGNvZGUgaGFzIGV4cGlyZWQuIFBsZWFzZSByZS1zZW5kIHRoZSB2ZXJpZmljYXRpb24gY29kZSB0byB0cnkgYWdhaW4uIiwiY29yZG92YS1ub3QtcmVhZHkiOiJDb3Jkb3ZhIGZyYW1ld29yayBpcyBub3QgcmVhZHkuIiwiY29ycy11bnN1cHBvcnRlZCI6IlRoaXMgYnJvd3NlciBpcyBub3Qgc3VwcG9ydGVkLiIsImNyZWRlbnRpYWwtYWxyZWFkeS1pbi11c2UiOiJUaGlzIGNyZWRlbnRpYWwgaXMgYWxyZWFkeSBhc3NvY2lhdGVkIHdpdGggYSBkaWZmZXJlbnQgdXNlciBhY2NvdW50LiIsImN1c3RvbS10b2tlbi1taXNtYXRjaCI6IlRoZSBjdXN0b20gdG9rZW4gY29ycmVzcG9uZHMgdG8gYSBkaWZmZXJlbnQgYXVkaWVuY2UuIiwicmVxdWlyZXMtcmVjZW50LWxvZ2luIjoiVGhpcyBvcGVyYXRpb24gaXMgc2Vuc2l0aXZlIGFuZCByZXF1aXJlcyByZWNlbnQgYXV0aGVudGljYXRpb24uIExvZyBpbiBhZ2FpbiBiZWZvcmUgcmV0cnlpbmcgdGhpcyByZXF1ZXN0LiIsImR5bmFtaWMtbGluay1ub3QtYWN0aXZhdGVkIjoiUGxlYXNlIGFjdGl2YXRlIER5bmFtaWMgTGlua3MgaW4gdGhlIEZpcmViYXNlIENvbnNvbGUgYW5kIGFncmVlIHRvIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucy4iLCJlbWFpbC1jaGFuZ2UtbmVlZHMtdmVyaWZpY2F0aW9uIjoiTXVsdGktZmFjdG9yIHVzZXJzIG11c3QgYWx3YXlzIGhhdmUgYSB2ZXJpZmllZCBlbWFpbC4iLCJlbWFpbC1hbHJlYWR5LWluLXVzZSI6IlRoZSBlbWFpbCBhZGRyZXNzIGlzIGFscmVhZHkgaW4gdXNlIGJ5IGFub3RoZXIgYWNjb3VudC4iLCJleHBpcmVkLWFjdGlvbi1jb2RlIjoiVGhlIGFjdGlvbiBjb2RlIGhhcyBleHBpcmVkLiAiLCJjYW5jZWxsZWQtcG9wdXAtcmVxdWVzdCI6IlRoaXMgb3BlcmF0aW9uIGhhcyBiZWVuIGNhbmNlbGxlZCBkdWUgdG8gYW5vdGhlciBjb25mbGljdGluZyBwb3B1cCBiZWluZyBvcGVuZWQuIiwiaW50ZXJuYWwtZXJyb3IiOiJBbiBpbnRlcm5hbCBlcnJvciBoYXMgb2NjdXJyZWQuIiwiaW52YWxpZC1hcHAtY3JlZGVudGlhbCI6IlRoZSBwaG9uZSB2ZXJpZmljYXRpb24gcmVxdWVzdCBjb250YWlucyBhbiBpbnZhbGlkIGFwcGxpY2F0aW9uIHZlcmlmaWVyLiBUaGUgcmVDQVBUQ0hBIHRva2VuIHJlc3BvbnNlIGlzIGVpdGhlciBpbnZhbGlkIG9yIGV4cGlyZWQuIiwiaW52YWxpZC1hcHAtaWQiOiJUaGUgbW9iaWxlIGFwcCBpZGVudGlmaWVyIGlzIG5vdCByZWdpc3RlZCBmb3IgdGhlIGN1cnJlbnQgcHJvamVjdC4iLCJpbnZhbGlkLXVzZXItdG9rZW4iOiJUaGlzIHVzZXIncyBjcmVkZW50aWFsIGlzbid0IHZhbGlkIGZvciB0aGlzIHByb2plY3QuIFRoaXMgY2FuIGhhcHBlbiBpZiB0aGUgdXNlcidzIHRva2VuIGhhcyBiZWVuIHRhbXBlcmVkIHdpdGgsIG9yIGlmIHRoZSB1c2VyIGlzbid0IGZvciB0aGUgcHJvamVjdCBhc3NvY2lhdGVkIHdpdGggdGhpcyBBUEkga2V5LiIsImludmFsaWQtYXV0aC1ldmVudCI6IkFuIGludGVybmFsIGVycm9yIGhhcyBvY2N1cnJlZC4iLCJpbnZhbGlkLXZlcmlmaWNhdGlvbi1jb2RlIjoiVGhlIFNNUyB2ZXJpZmljYXRpb24gY29kZSB1c2VkIHRvIGNyZWF0ZSB0aGUgcGhvbmUgYXV0aCBjcmVkZW50aWFsIGlzIGludmFsaWQuIFBsZWFzZSByZXNlbmQgdGhlIHZlcmlmaWNhdGlvbiBjb2RlIHNtcyBhbmQgYmUgc3VyZSB1c2UgdGhlIHZlcmlmaWNhdGlvbiBjb2RlIHByb3ZpZGVkIGJ5IHRoZSB1c2VyLiIsImludmFsaWQtY29udGludWUtdXJpIjoiVGhlIGNvbnRpbnVlIFVSTCBwcm92aWRlZCBpbiB0aGUgcmVxdWVzdCBpcyBpbnZhbGlkLiIsImludmFsaWQtY29yZG92YS1jb25maWd1cmF0aW9uIjoiVGhlIGZvbGxvd2luZyBDb3Jkb3ZhIHBsdWdpbnMgbXVzdCBiZSBpbnN0YWxsZWQgdG8gZW5hYmxlIE9BdXRoIHNpZ24taW46IGNvcmRvdmEtcGx1Z2luLWJ1aWxkaW5mbywgY29yZG92YS11bml2ZXJzYWwtbGlua3MtcGx1Z2luLCBjb3Jkb3ZhLXBsdWdpbi1icm93c2VydGFiLCBjb3Jkb3ZhLXBsdWdpbi1pbmFwcGJyb3dzZXIgYW5kIGNvcmRvdmEtcGx1Z2luLWN1c3RvbXVybHNjaGVtZS4iLCJpbnZhbGlkLWN1c3RvbS10b2tlbiI6IlRoZSBjdXN0b20gdG9rZW4gZm9ybWF0IGlzIGluY29ycmVjdC4gUGxlYXNlIGNoZWNrIHRoZSBkb2N1bWVudGF0aW9uLiIsImludmFsaWQtZHluYW1pYy1saW5rLWRvbWFpbiI6IlRoZSBwcm92aWRlZCBkeW5hbWljIGxpbmsgZG9tYWluIGlzIG5vdCBjb25maWd1cmVkIG9yIGF1dGhvcml6ZWQgZm9yIHRoZSBjdXJyZW50IHByb2plY3QuIiwiaW52YWxpZC1lbWFpbCI6IlRoZSBlbWFpbCBhZGRyZXNzIGlzIGJhZGx5IGZvcm1hdHRlZC4iLCJpbnZhbGlkLWFwaS1rZXkiOiJZb3VyIEFQSSBrZXkgaXMgaW52YWxpZCwgcGxlYXNlIGNoZWNrIHlvdSBoYXZlIGNvcGllZCBpdCBjb3JyZWN0bHkuIiwiaW52YWxpZC1jZXJ0LWhhc2giOiJUaGUgU0hBLTEgY2VydGlmaWNhdGUgaGFzaCBwcm92aWRlZCBpcyBpbnZhbGlkLiIsImludmFsaWQtY3JlZGVudGlhbCI6IlRoZSBzdXBwbGllZCBhdXRoIGNyZWRlbnRpYWwgaXMgbWFsZm9ybWVkIG9yIGhhcyBleHBpcmVkLiIsImludmFsaWQtbWVzc2FnZS1wYXlsb2FkIjoiVGhlIGVtYWlsIHRlbXBsYXRlIGNvcnJlc3BvbmRpbmcgdG8gdGhpcyBhY3Rpb24gY29udGFpbnMgaW52YWxpZCBjaGFyYWN0ZXJzIGluIGl0cyBtZXNzYWdlLiBQbGVhc2UgZml4IGJ5IGdvaW5nIHRvIHRoZSBBdXRoIGVtYWlsIHRlbXBsYXRlcyBzZWN0aW9uIGluIHRoZSBGaXJlYmFzZSBDb25zb2xlLiIsImludmFsaWQtbXVsdGktZmFjdG9yLXNlc3Npb24iOiJUaGUgcmVxdWVzdCBkb2VzIG5vdCBjb250YWluIGEgdmFsaWQgcHJvb2Ygb2YgZmlyc3QgZmFjdG9yIHN1Y2Nlc3NmdWwgc2lnbi1pbi4iLCJpbnZhbGlkLW9hdXRoLXByb3ZpZGVyIjoiRW1haWxBdXRoUHJvdmlkZXIgaXMgbm90IHN1cHBvcnRlZCBmb3IgdGhpcyBvcGVyYXRpb24uIFRoaXMgb3BlcmF0aW9uIG9ubHkgc3VwcG9ydHMgT0F1dGggcHJvdmlkZXJzLiIsImludmFsaWQtb2F1dGgtY2xpZW50LWlkIjoiVGhlIE9BdXRoIGNsaWVudCBJRCBwcm92aWRlZCBpcyBlaXRoZXIgaW52YWxpZCBvciBkb2VzIG5vdCBtYXRjaCB0aGUgc3BlY2lmaWVkIEFQSSBrZXkuIiwidW5hdXRob3JpemVkLWRvbWFpbiI6IlRoaXMgZG9tYWluIGlzIG5vdCBhdXRob3JpemVkIGZvciBPQXV0aCBvcGVyYXRpb25zIGZvciB5b3VyIEZpcmViYXNlIHByb2plY3QuIEVkaXQgdGhlIGxpc3Qgb2YgYXV0aG9yaXplZCBkb21haW5zIGZyb20gdGhlIEZpcmViYXNlIGNvbnNvbGUuIiwiaW52YWxpZC1hY3Rpb24tY29kZSI6IlRoZSBhY3Rpb24gY29kZSBpcyBpbnZhbGlkLiBUaGlzIGNhbiBoYXBwZW4gaWYgdGhlIGNvZGUgaXMgbWFsZm9ybWVkLCBleHBpcmVkLCBvciBoYXMgYWxyZWFkeSBiZWVuIHVzZWQuIiwid3JvbmctcGFzc3dvcmQiOiJUaGUgcGFzc3dvcmQgaXMgaW52YWxpZCBvciB0aGUgdXNlciBkb2VzIG5vdCBoYXZlIGEgcGFzc3dvcmQuIiwiaW52YWxpZC1wZXJzaXN0ZW5jZS10eXBlIjoiVGhlIHNwZWNpZmllZCBwZXJzaXN0ZW5jZSB0eXBlIGlzIGludmFsaWQuIEl0IGNhbiBvbmx5IGJlIGxvY2FsLCBzZXNzaW9uIG9yIG5vbmUuIiwiaW52YWxpZC1waG9uZS1udW1iZXIiOiJUaGUgZm9ybWF0IG9mIHRoZSBwaG9uZSBudW1iZXIgcHJvdmlkZWQgaXMgaW5jb3JyZWN0LiBQbGVhc2UgZW50ZXIgdGhlIHBob25lIG51bWJlciBpbiBhIGZvcm1hdCB0aGF0IGNhbiBiZSBwYXJzZWQgaW50byBFLjE2NCBmb3JtYXQuIEUuMTY0IHBob25lIG51bWJlcnMgYXJlIHdyaXR0ZW4gaW4gdGhlIGZvcm1hdCBbK11bY291bnRyeSBjb2RlXVtzdWJzY3JpYmVyIG51bWJlciBpbmNsdWRpbmcgYXJlYSBjb2RlXS4iLCJpbnZhbGlkLXByb3ZpZGVyLWlkIjoiVGhlIHNwZWNpZmllZCBwcm92aWRlciBJRCBpcyBpbnZhbGlkLiIsImludmFsaWQtcmVjaXBpZW50LWVtYWlsIjoiVGhlIGVtYWlsIGNvcnJlc3BvbmRpbmcgdG8gdGhpcyBhY3Rpb24gZmFpbGVkIHRvIHNlbmQgYXMgdGhlIHByb3ZpZGVkIHJlY2lwaWVudCBlbWFpbCBhZGRyZXNzIGlzIGludmFsaWQuIiwiaW52YWxpZC1zZW5kZXIiOiJUaGUgZW1haWwgdGVtcGxhdGUgY29ycmVzcG9uZGluZyB0byB0aGlzIGFjdGlvbiBjb250YWlucyBhbiBpbnZhbGlkIHNlbmRlciBlbWFpbCBvciBuYW1lLiBQbGVhc2UgZml4IGJ5IGdvaW5nIHRvIHRoZSBBdXRoIGVtYWlsIHRlbXBsYXRlcyBzZWN0aW9uIGluIHRoZSBGaXJlYmFzZSBDb25zb2xlLiIsImludmFsaWQtdmVyaWZpY2F0aW9uLWlkIjoiVGhlIHZlcmlmaWNhdGlvbiBJRCB1c2VkIHRvIGNyZWF0ZSB0aGUgcGhvbmUgYXV0aCBjcmVkZW50aWFsIGlzIGludmFsaWQuIiwiaW52YWxpZC10ZW5hbnQtaWQiOiJUaGUgQXV0aCBpbnN0YW5jZSdzIHRlbmFudCBJRCBpcyBpbnZhbGlkLiIsIm11bHRpLWZhY3Rvci1pbmZvLW5vdC1mb3VuZCI6IlRoZSB1c2VyIGRvZXMgbm90IGhhdmUgYSBzZWNvbmQgZmFjdG9yIG1hdGNoaW5nIHRoZSBpZGVudGlmaWVyIHByb3ZpZGVkLiIsIm11bHRpLWZhY3Rvci1hdXRoLXJlcXVpcmVkIjoiUHJvb2Ygb2Ygb3duZXJzaGlwIG9mIGEgc2Vjb25kIGZhY3RvciBpcyByZXF1aXJlZCB0byBjb21wbGV0ZSBzaWduLWluLiIsIm1pc3NpbmctYW5kcm9pZC1wa2ctbmFtZSI6IkFuIEFuZHJvaWQgUGFja2FnZSBOYW1lIG11c3QgYmUgcHJvdmlkZWQgaWYgdGhlIEFuZHJvaWQgQXBwIGlzIHJlcXVpcmVkIHRvIGJlIGluc3RhbGxlZC4iLCJhdXRoLWRvbWFpbi1jb25maWctcmVxdWlyZWQiOiJCZSBzdXJlIHRvIGluY2x1ZGUgYXV0aERvbWFpbiB3aGVuIGNhbGxpbmcgZmlyZWJhc2UuaW5pdGlhbGl6ZUFwcCgpLCBieSBmb2xsb3dpbmcgdGhlIGluc3RydWN0aW9ucyBpbiB0aGUgRmlyZWJhc2UgY29uc29sZS4iLCJtaXNzaW5nLWFwcC1jcmVkZW50aWFsIjoiVGhlIHBob25lIHZlcmlmaWNhdGlvbiByZXF1ZXN0IGlzIG1pc3NpbmcgYW4gYXBwbGljYXRpb24gdmVyaWZpZXIgYXNzZXJ0aW9uLiBBIHJlQ0FQVENIQSByZXNwb25zZSB0b2tlbiBuZWVkcyB0byBiZSBwcm92aWRlZC4iLCJtaXNzaW5nLXZlcmlmaWNhdGlvbi1jb2RlIjoiVGhlIHBob25lIGF1dGggY3JlZGVudGlhbCB3YXMgY3JlYXRlZCB3aXRoIGFuIGVtcHR5IFNNUyB2ZXJpZmljYXRpb24gY29kZS4iLCJtaXNzaW5nLWNvbnRpbnVlLXVyaSI6IkEgY29udGludWUgVVJMIG11c3QgYmUgcHJvdmlkZWQgaW4gdGhlIHJlcXVlc3QuIiwibWlzc2luZy1pZnJhbWUtc3RhcnQiOiJBbiBpbnRlcm5hbCBlcnJvciBoYXMgb2NjdXJyZWQuIiwibWlzc2luZy1pb3MtYnVuZGxlLWlkIjoiQW4gaU9TIEJ1bmRsZSBJRCBtdXN0IGJlIHByb3ZpZGVkIGlmIGFuIEFwcCBTdG9yZSBJRCBpcyBwcm92aWRlZC4iLCJtaXNzaW5nLW11bHRpLWZhY3Rvci1pbmZvIjoiTm8gc2Vjb25kIGZhY3RvciBpZGVudGlmaWVyIGlzIHByb3ZpZGVkLiIsIm1pc3NpbmctbXVsdGktZmFjdG9yLXNlc3Npb24iOiJUaGUgcmVxdWVzdCBpcyBtaXNzaW5nIHByb29mIG9mIGZpcnN0IGZhY3RvciBzdWNjZXNzZnVsIHNpZ24taW4uIiwibWlzc2luZy1vci1pbnZhbGlkLW5vbmNlIjoiVGhlIHJlcXVlc3QgZG9lcyBub3QgY29udGFpbiBhIHZhbGlkIG5vbmNlLiBUaGlzIGNhbiBvY2N1ciBpZiB0aGUgU0hBLTI1NiBoYXNoIG9mIHRoZSBwcm92aWRlZCByYXcgbm9uY2UgZG9lcyBub3QgbWF0Y2ggdGhlIGhhc2hlZCBub25jZSBpbiB0aGUgSUQgdG9rZW4gcGF5bG9hZC4iLCJtaXNzaW5nLXBob25lLW51bWJlciI6IlRvIHNlbmQgdmVyaWZpY2F0aW9uIGNvZGVzLCBwcm92aWRlIGEgcGhvbmUgbnVtYmVyIGZvciB0aGUgcmVjaXBpZW50LiIsIm1pc3NpbmctdmVyaWZpY2F0aW9uLWlkIjoiVGhlIHBob25lIGF1dGggY3JlZGVudGlhbCB3YXMgY3JlYXRlZCB3aXRoIGFuIGVtcHR5IHZlcmlmaWNhdGlvbiBJRC4iLCJhcHAtZGVsZXRlZCI6IlRoaXMgaW5zdGFuY2Ugb2YgRmlyZWJhc2VBcHAgaGFzIGJlZW4gZGVsZXRlZC4iLCJhY2NvdW50LWV4aXN0cy13aXRoLWRpZmZlcmVudC1jcmVkZW50aWFsIjoiQW4gYWNjb3VudCBhbHJlYWR5IGV4aXN0cyB3aXRoIHRoZSBzYW1lIGVtYWlsIGFkZHJlc3MgYnV0IGRpZmZlcmVudCBzaWduLWluIGNyZWRlbnRpYWxzLiBTaWduIGluIHVzaW5nIGEgcHJvdmlkZXIgYXNzb2NpYXRlZCB3aXRoIHRoaXMgZW1haWwgYWRkcmVzcy4iLCJuZXR3b3JrLXJlcXVlc3QtZmFpbGVkIjoiQSBuZXR3b3JrIGVycm9yIChzdWNoIGFzIHRpbWVvdXQsIGludGVycnVwdGVkIGNvbm5lY3Rpb24gb3IgdW5yZWFjaGFibGUgaG9zdCkgaGFzIG9jY3VycmVkLiIsIm5vLWF1dGgtZXZlbnQiOiJBbiBpbnRlcm5hbCBlcnJvciBoYXMgb2NjdXJyZWQuIiwibm8tc3VjaC1wcm92aWRlciI6IlVzZXIgd2FzIG5vdCBsaW5rZWQgdG8gYW4gYWNjb3VudCB3aXRoIHRoZSBnaXZlbiBwcm92aWRlci4iLCJudWxsLXVzZXIiOiJBIG51bGwgdXNlciBvYmplY3Qgd2FzIHByb3ZpZGVkIGFzIHRoZSBhcmd1bWVudCBmb3IgYW4gb3BlcmF0aW9uIHdoaWNoIHJlcXVpcmVzIGEgbm9uLW51bGwgdXNlciBvYmplY3QuIiwib3BlcmF0aW9uLW5vdC1hbGxvd2VkIjoiVGhlIGdpdmVuIHNpZ24taW4gcHJvdmlkZXIgaXMgZGlzYWJsZWQgZm9yIHRoaXMgRmlyZWJhc2UgcHJvamVjdC4gRW5hYmxlIGl0IGluIHRoZSBGaXJlYmFzZSBjb25zb2xlLCB1bmRlciB0aGUgc2lnbi1pbiBtZXRob2QgdGFiIG9mIHRoZSBBdXRoIHNlY3Rpb24uIiwib3BlcmF0aW9uLW5vdC1zdXBwb3J0ZWQtaW4tdGhpcy1lbnZpcm9ubWVudCI6J1RoaXMgb3BlcmF0aW9uIGlzIG5vdCBzdXBwb3J0ZWQgaW4gdGhlIGVudmlyb25tZW50IHRoaXMgYXBwbGljYXRpb24gaXMgcnVubmluZyBvbi4gImxvY2F0aW9uLnByb3RvY29sIiBtdXN0IGJlIGh0dHAsIGh0dHBzIG9yIGNocm9tZS1leHRlbnNpb24gYW5kIHdlYiBzdG9yYWdlIG11c3QgYmUgZW5hYmxlZC4nLCJwb3B1cC1ibG9ja2VkIjoiVW5hYmxlIHRvIGVzdGFibGlzaCBhIGNvbm5lY3Rpb24gd2l0aCB0aGUgcG9wdXAuIEl0IG1heSBoYXZlIGJlZW4gYmxvY2tlZCBieSB0aGUgYnJvd3Nlci4iLCJwb3B1cC1jbG9zZWQtYnktdXNlciI6IlRoZSBwb3B1cCBoYXMgYmVlbiBjbG9zZWQgYnkgdGhlIHVzZXIgYmVmb3JlIGZpbmFsaXppbmcgdGhlIG9wZXJhdGlvbi4iLCJwcm92aWRlci1hbHJlYWR5LWxpbmtlZCI6IlVzZXIgY2FuIG9ubHkgYmUgbGlua2VkIHRvIG9uZSBpZGVudGl0eSBmb3IgdGhlIGdpdmVuIHByb3ZpZGVyLiIsInF1b3RhLWV4Y2VlZGVkIjoiVGhlIHByb2plY3QncyBxdW90YSBmb3IgdGhpcyBvcGVyYXRpb24gaGFzIGJlZW4gZXhjZWVkZWQuIiwicmVkaXJlY3QtY2FuY2VsbGVkLWJ5LXVzZXIiOiJUaGUgcmVkaXJlY3Qgb3BlcmF0aW9uIGhhcyBiZWVuIGNhbmNlbGxlZCBieSB0aGUgdXNlciBiZWZvcmUgZmluYWxpemluZy4iLCJyZWRpcmVjdC1vcGVyYXRpb24tcGVuZGluZyI6IkEgcmVkaXJlY3Qgc2lnbi1pbiBvcGVyYXRpb24gaXMgYWxyZWFkeSBwZW5kaW5nLiIsInJlamVjdGVkLWNyZWRlbnRpYWwiOiJUaGUgcmVxdWVzdCBjb250YWlucyBtYWxmb3JtZWQgb3IgbWlzbWF0Y2hpbmcgY3JlZGVudGlhbHMuIiwic2Vjb25kLWZhY3Rvci1hbHJlYWR5LWluLXVzZSI6IlRoZSBzZWNvbmQgZmFjdG9yIGlzIGFscmVhZHkgZW5yb2xsZWQgb24gdGhpcyBhY2NvdW50LiIsIm1heGltdW0tc2Vjb25kLWZhY3Rvci1jb3VudC1leGNlZWRlZCI6IlRoZSBtYXhpbXVtIGFsbG93ZWQgbnVtYmVyIG9mIHNlY29uZCBmYWN0b3JzIG9uIGEgdXNlciBoYXMgYmVlbiBleGNlZWRlZC4iLCJ0ZW5hbnQtaWQtbWlzbWF0Y2giOiJUaGUgcHJvdmlkZWQgdGVuYW50IElEIGRvZXMgbm90IG1hdGNoIHRoZSBBdXRoIGluc3RhbmNlJ3MgdGVuYW50IElEIix0aW1lb3V0OiJUaGUgb3BlcmF0aW9uIGhhcyB0aW1lZCBvdXQuIiwidXNlci10b2tlbi1leHBpcmVkIjoiVGhlIHVzZXIncyBjcmVkZW50aWFsIGlzIG5vIGxvbmdlciB2YWxpZC4gVGhlIHVzZXIgbXVzdCBzaWduIGluIGFnYWluLiIsInRvby1tYW55LXJlcXVlc3RzIjoiV2UgaGF2ZSBibG9ja2VkIGFsbCByZXF1ZXN0cyBmcm9tIHRoaXMgZGV2aWNlIGR1ZSB0byB1bnVzdWFsIGFjdGl2aXR5LiBUcnkgYWdhaW4gbGF0ZXIuIiwidW5hdXRob3JpemVkLWNvbnRpbnVlLXVyaSI6IlRoZSBkb21haW4gb2YgdGhlIGNvbnRpbnVlIFVSTCBpcyBub3Qgd2hpdGVsaXN0ZWQuICBQbGVhc2Ugd2hpdGVsaXN0IHRoZSBkb21haW4gaW4gdGhlIEZpcmViYXNlIGNvbnNvbGUuIiwidW5zdXBwb3J0ZWQtZmlyc3QtZmFjdG9yIjoiRW5yb2xsaW5nIGEgc2Vjb25kIGZhY3RvciBvciBzaWduaW5nIGluIHdpdGggYSBtdWx0aS1mYWN0b3IgYWNjb3VudCByZXF1aXJlcyBzaWduLWluIHdpdGggYSBzdXBwb3J0ZWQgZmlyc3QgZmFjdG9yLiIsInVuc3VwcG9ydGVkLXBlcnNpc3RlbmNlLXR5cGUiOiJUaGUgY3VycmVudCBlbnZpcm9ubWVudCBkb2VzIG5vdCBzdXBwb3J0IHRoZSBzcGVjaWZpZWQgcGVyc2lzdGVuY2UgdHlwZS4iLCJ1bnN1cHBvcnRlZC10ZW5hbnQtb3BlcmF0aW9uIjoiVGhpcyBvcGVyYXRpb24gaXMgbm90IHN1cHBvcnRlZCBpbiBhIG11bHRpLXRlbmFudCBjb250ZXh0LiIsInVudmVyaWZpZWQtZW1haWwiOiJUaGUgb3BlcmF0aW9uIHJlcXVpcmVzIGEgdmVyaWZpZWQgZW1haWwuIiwidXNlci1jYW5jZWxsZWQiOiJUaGUgdXNlciBkaWQgbm90IGdyYW50IHlvdXIgYXBwbGljYXRpb24gdGhlIHBlcm1pc3Npb25zIGl0IHJlcXVlc3RlZC4iLCJ1c2VyLW5vdC1mb3VuZCI6IlRoZXJlIGlzIG5vIHVzZXIgcmVjb3JkIGNvcnJlc3BvbmRpbmcgdG8gdGhpcyBpZGVudGlmaWVyLiBUaGUgdXNlciBtYXkgaGF2ZSBiZWVuIGRlbGV0ZWQuIiwidXNlci1kaXNhYmxlZCI6IlRoZSB1c2VyIGFjY291bnQgaGFzIGJlZW4gZGlzYWJsZWQgYnkgYW4gYWRtaW5pc3RyYXRvci4iLCJ1c2VyLW1pc21hdGNoIjoiVGhlIHN1cHBsaWVkIGNyZWRlbnRpYWxzIGRvIG5vdCBjb3JyZXNwb25kIHRvIHRoZSBwcmV2aW91c2x5IHNpZ25lZCBpbiB1c2VyLiIsInVzZXItc2lnbmVkLW91dCI6IiIsIndlYWstcGFzc3dvcmQiOiJUaGUgcGFzc3dvcmQgbXVzdCBiZSA2IGNoYXJhY3RlcnMgbG9uZyBvciBtb3JlLiIsIndlYi1zdG9yYWdlLXVuc3VwcG9ydGVkIjoiVGhpcyBicm93c2VyIGlzIG5vdCBzdXBwb3J0ZWQgb3IgM3JkIHBhcnR5IGNvb2tpZXMgYW5kIGRhdGEgbWF5IGJlIGRpc2FibGVkLiJ9LE49e2xkOntUYToiaHR0cHM6Ly9zdGFnaW5nLWlkZW50aXR5dG9vbGtpdC5zYW5kYm94Lmdvb2dsZWFwaXMuY29tL2lkZW50aXR5dG9vbGtpdC92My9yZWx5aW5ncGFydHkvIixaYToiaHR0cHM6Ly9zdGFnaW5nLXNlY3VyZXRva2VuLnNhbmRib3guZ29vZ2xlYXBpcy5jb20vdjEvdG9rZW4iLFdhOiJodHRwczovL3N0YWdpbmctaWRlbnRpdHl0b29sa2l0LnNhbmRib3guZ29vZ2xlYXBpcy5jb20vdjIvIixpZDoiYiJ9LHNkOntUYToiaHR0cHM6Ly93d3cuZ29vZ2xlYXBpcy5jb20vaWRlbnRpdHl0b29sa2l0L3YzL3JlbHlpbmdwYXJ0eS8iLFphOiJodHRwczovL3NlY3VyZXRva2VuLmdvb2dsZWFwaXMuY29tL3YxL3Rva2VuIixXYToiaHR0cHM6Ly9pZGVudGl0eXRvb2xraXQuZ29vZ2xlYXBpcy5jb20vdjIvIixpZDoicCJ9LHVkOntUYToiaHR0cHM6Ly9zdGFnaW5nLXd3dy5zYW5kYm94Lmdvb2dsZWFwaXMuY29tL2lkZW50aXR5dG9vbGtpdC92My9yZWx5aW5ncGFydHkvIixaYToiaHR0cHM6Ly9zdGFnaW5nLXNlY3VyZXRva2VuLnNhbmRib3guZ29vZ2xlYXBpcy5jb20vdjEvdG9rZW4iLFdhOiJodHRwczovL3N0YWdpbmctaWRlbnRpdHl0b29sa2l0LnNhbmRib3guZ29vZ2xlYXBpcy5jb20vdjIvIixpZDoicyJ9LHZkOntUYToiaHR0cHM6Ly93d3ctZ29vZ2xlYXBpcy10ZXN0LnNhbmRib3guZ29vZ2xlLmNvbS9pZGVudGl0eXRvb2xraXQvdjMvcmVseWluZ3BhcnR5LyIsWmE6Imh0dHBzOi8vdGVzdC1zZWN1cmV0b2tlbi5zYW5kYm94Lmdvb2dsZWFwaXMuY29tL3YxL3Rva2VuIixXYToiaHR0cHM6Ly90ZXN0LWlkZW50aXR5dG9vbGtpdC5zYW5kYm94Lmdvb2dsZWFwaXMuY29tL3YyLyIsaWQ6InQifX07ZnVuY3Rpb24gQSh0KXtmb3IodmFyIGUgaW4gTilpZihOW2VdLmlkPT09dClyZXR1cm4gdD1OW2VdLHtmaXJlYmFzZUVuZHBvaW50OnQuVGEsc2VjdXJlVG9rZW5FbmRwb2ludDp0LlphLGlkZW50aXR5UGxhdGZvcm1FbmRwb2ludDp0LldhfTtyZXR1cm4gbnVsbH1mdW5jdGlvbiBrKHQpe2lmKHQpdHJ5e3JldHVybiB0LiRnb29nX1RoZW5hYmxlfWNhdGNoKHQpe3JldHVybn19ZnVuY3Rpb24gUih0KXt2YXIgZTtFcnJvci5jYXB0dXJlU3RhY2tUcmFjZT9FcnJvci5jYXB0dXJlU3RhY2tUcmFjZSh0aGlzLFIpOihlPUVycm9yKCkuc3RhY2spJiYodGhpcy5zdGFjaz1lKSx0JiYodGhpcy5tZXNzYWdlPVN0cmluZyh0KSl9ZnVuY3Rpb24gUCh0LGUpe2Zvcih2YXIgbj0iIixyPSh0PXQuc3BsaXQoIiVzIikpLmxlbmd0aC0xLGk9MDtpPHI7aSsrKW4rPXRbaV0rKGk8ZS5sZW5ndGg/ZVtpXToiJXMiKTtSLmNhbGwodGhpcyxuK3Rbcl0pfWZ1bmN0aW9uIE8odCl7dGhyb3cgbmV3IFAoIkZhaWx1cmUiKyh0PyI6ICIrdDoiIiksQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLDEpKX1mdW5jdGlvbiBEKHQsZSl7dGhpcy5jPXQsdGhpcy5mPWUsdGhpcy5iPTAsdGhpcy5hPW51bGx9ZnVuY3Rpb24geCh0LGUpe3QuZihlKSx0LmI8MTAwJiYodC5iKyssZS5uZXh0PXQuYSx0LmE9ZSl9ZnVuY3Rpb24gTCgpe3RoaXMuYj10aGlzLmE9bnVsbH1FPUEoIl9fRUlEX18iKT8iX19FSURfXyI6dm9pZCAwLHcoUixFcnJvciksUi5wcm90b3R5cGUubmFtZT0iQ3VzdG9tRXJyb3IiLHcoUCxSKSxQLnByb3RvdHlwZS5uYW1lPSJBc3NlcnRpb25FcnJvciIsRC5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKCl7dmFyIHQ7cmV0dXJuIDA8dGhpcy5iPyh0aGlzLmItLSx0PXRoaXMuYSx0aGlzLmE9dC5uZXh0LHQubmV4dD1udWxsKTp0PXRoaXMuYygpLHR9O3ZhciBNPW5ldyBEKGZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBGfSxmdW5jdGlvbih0KXt0LnJlc2V0KCl9KTtmdW5jdGlvbiBGKCl7dGhpcy5uZXh0PXRoaXMuYj10aGlzLmE9bnVsbH1MLnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24odCxlKXt2YXIgbj1NLmdldCgpO24uc2V0KHQsZSksdGhpcy5iP3RoaXMuYi5uZXh0PW46dGhpcy5hPW4sdGhpcy5iPW59LEYucHJvdG90eXBlLnNldD1mdW5jdGlvbih0LGUpe3RoaXMuYT10LHRoaXMuYj1lLHRoaXMubmV4dD1udWxsfSxGLnByb3RvdHlwZS5yZXNldD1mdW5jdGlvbigpe3RoaXMubmV4dD10aGlzLmI9dGhpcy5hPW51bGx9O3ZhciBVPUFycmF5LnByb3RvdHlwZS5pbmRleE9mP2Z1bmN0aW9uKHQsZSl7cmV0dXJuIEFycmF5LnByb3RvdHlwZS5pbmRleE9mLmNhbGwodCxlLHZvaWQgMCl9OmZ1bmN0aW9uKHQsZSl7aWYoInN0cmluZyI9PXR5cGVvZiB0KXJldHVybiJzdHJpbmciIT10eXBlb2YgZXx8MSE9ZS5sZW5ndGg/LTE6dC5pbmRleE9mKGUsMCk7Zm9yKHZhciBuPTA7bjx0Lmxlbmd0aDtuKyspaWYobiBpbiB0JiZ0W25dPT09ZSlyZXR1cm4gbjtyZXR1cm4tMX0saj1BcnJheS5wcm90b3R5cGUuZm9yRWFjaD9mdW5jdGlvbih0LGUsbil7QXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbCh0LGUsbil9OmZ1bmN0aW9uKHQsZSxuKXtmb3IodmFyIHI9dC5sZW5ndGgsaT0ic3RyaW5nIj09dHlwZW9mIHQ/dC5zcGxpdCgiIik6dCxvPTA7bzxyO28rKylvIGluIGkmJmUuY2FsbChuLGlbb10sbyx0KX07dmFyIHE9QXJyYXkucHJvdG90eXBlLmZpbHRlcj9mdW5jdGlvbih0LGUpe3JldHVybiBBcnJheS5wcm90b3R5cGUuZmlsdGVyLmNhbGwodCxlLHZvaWQgMCl9OmZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuLHI9dC5sZW5ndGgsaT1bXSxvPTAscz0ic3RyaW5nIj09dHlwZW9mIHQ/dC5zcGxpdCgiIik6dCxhPTA7YTxyO2ErKylhIGluIHMmJihuPXNbYV0sZS5jYWxsKHZvaWQgMCxuLGEsdCkmJihpW28rK109bikpO3JldHVybiBpfSxWPUFycmF5LnByb3RvdHlwZS5tYXA/ZnVuY3Rpb24odCxlKXtyZXR1cm4gQXJyYXkucHJvdG90eXBlLm1hcC5jYWxsKHQsZSx2b2lkIDApfTpmdW5jdGlvbih0LGUpe2Zvcih2YXIgbj10Lmxlbmd0aCxyPUFycmF5KG4pLGk9InN0cmluZyI9PXR5cGVvZiB0P3Quc3BsaXQoIiIpOnQsbz0wO288bjtvKyspbyBpbiBpJiYocltvXT1lLmNhbGwodm9pZCAwLGlbb10sbyx0KSk7cmV0dXJuIHJ9LEI9QXJyYXkucHJvdG90eXBlLnNvbWU/ZnVuY3Rpb24odCxlKXtyZXR1cm4gQXJyYXkucHJvdG90eXBlLnNvbWUuY2FsbCh0LGUsdm9pZCAwKX06ZnVuY3Rpb24odCxlKXtmb3IodmFyIG49dC5sZW5ndGgscj0ic3RyaW5nIj09dHlwZW9mIHQ/dC5zcGxpdCgiIik6dCxpPTA7aTxuO2krKylpZihpIGluIHImJmUuY2FsbCh2b2lkIDAscltpXSxpLHQpKXJldHVybiEwO3JldHVybiExfTtmdW5jdGlvbiBLKHQsZSl7cmV0dXJuIDA8PVUodCxlKX1mdW5jdGlvbiBXKHQsZSl7dmFyIG47cmV0dXJuKG49MDw9KGU9VSh0LGUpKSkmJkFycmF5LnByb3RvdHlwZS5zcGxpY2UuY2FsbCh0LGUsMSksbn1mdW5jdGlvbiBIKG4scil7IWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuPSJzdHJpbmciPT10eXBlb2YgdD90LnNwbGl0KCIiKTp0LHI9dC5sZW5ndGgtMTswPD1yOy0tcilyIGluIG4mJmUuY2FsbCh2b2lkIDAsbltyXSxyLHQpfShuLGZ1bmN0aW9uKHQsZSl7ci5jYWxsKHZvaWQgMCx0LGUsbikmJjE9PUFycmF5LnByb3RvdHlwZS5zcGxpY2UuY2FsbChuLGUsMSkubGVuZ3RoJiYwfSl9ZnVuY3Rpb24gRygpe3JldHVybiBBcnJheS5wcm90b3R5cGUuY29uY2F0LmFwcGx5KFtdLGFyZ3VtZW50cyl9ZnVuY3Rpb24geih0KXt2YXIgZT10Lmxlbmd0aDtpZigwPGUpe2Zvcih2YXIgbj1BcnJheShlKSxyPTA7cjxlO3IrKyluW3JdPXRbcl07cmV0dXJuIG59cmV0dXJuW119dmFyIFEsWT1TdHJpbmcucHJvdG90eXBlLnRyaW0/ZnVuY3Rpb24odCl7cmV0dXJuIHQudHJpbSgpfTpmdW5jdGlvbih0KXtyZXR1cm4vXltcc1x4YTBdKihbXHNcU10qPylbXHNceGEwXSokLy5leGVjKHQpWzFdfSxYPS8mL2csSj0vPC9nLCQ9Lz4vZyxaPS8iL2csdHQ9LycvZyxldD0vXHgwMC9nLG50PS9bXHgwMCY8PiInXS87ZnVuY3Rpb24gcnQodCxlKXtyZXR1cm4tMSE9dC5pbmRleE9mKGUpfWZ1bmN0aW9uIGl0KHQsZSl7cmV0dXJuIHQ8ZT8tMTplPHQ/MTowfXQ6e3ZhciBvdD1sLm5hdmlnYXRvcjtpZihvdCl7b3Q9b3QudXNlckFnZW50O2lmKG90KXtRPW90O2JyZWFrIHR9fVE9IiJ9ZnVuY3Rpb24gc3QodCl7cmV0dXJuIHJ0KFEsdCl9ZnVuY3Rpb24gYXQodCxlKXtmb3IodmFyIG4gaW4gdCllLmNhbGwodm9pZCAwLHRbbl0sbix0KX1mdW5jdGlvbiB1dCh0KXtmb3IodmFyIGUgaW4gdClyZXR1cm47cmV0dXJuIDF9ZnVuY3Rpb24gY3QodCl7dmFyIGUsbj17fTtmb3IoZSBpbiB0KW5bZV09dFtlXTtyZXR1cm4gbn12YXIgaHQ9ImNvbnN0cnVjdG9yIGhhc093blByb3BlcnR5IGlzUHJvdG90eXBlT2YgcHJvcGVydHlJc0VudW1lcmFibGUgdG9Mb2NhbGVTdHJpbmcgdG9TdHJpbmcgdmFsdWVPZiIuc3BsaXQoIiAiKTtmdW5jdGlvbiBsdCh0KXtmb3IodmFyIGUsbixyPTE7cjxhcmd1bWVudHMubGVuZ3RoO3IrKyl7Zm9yKGUgaW4gbj1hcmd1bWVudHNbcl0pdFtlXT1uW2VdO2Zvcih2YXIgaT0wO2k8aHQubGVuZ3RoO2krKyllPWh0W2ldLE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChuLGUpJiYodFtlXT1uW2VdKX19ZnVuY3Rpb24gZnQodCxlKXt0Ont0cnl7dmFyIG49dCYmdC5vd25lckRvY3VtZW50LG49biYmKG4uZGVmYXVsdFZpZXd8fG4ucGFyZW50V2luZG93KTtpZigobj1ufHxsKS5FbGVtZW50JiZuLkxvY2F0aW9uKXt2YXIgcj1uO2JyZWFrIHR9fWNhdGNoKHQpe31yPW51bGx9aWYociYmdm9pZCAwIT09cltlXSYmKCF0fHwhKHQgaW5zdGFuY2VvZiByW2VdKSYmKHQgaW5zdGFuY2VvZiByLkxvY2F0aW9ufHx0IGluc3RhbmNlb2Ygci5FbGVtZW50KSkpe2lmKGcodCkpdHJ5e3ZhciBpPXQuY29uc3RydWN0b3IuZGlzcGxheU5hbWV8fHQuY29uc3RydWN0b3IubmFtZXx8T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHQpfWNhdGNoKHQpe2k9IjxvYmplY3QgY291bGQgbm90IGJlIHN0cmluZ2lmaWVkPiJ9ZWxzZSBpPXZvaWQgMD09PXQ/InVuZGVmaW5lZCI6bnVsbD09PXQ/Im51bGwiOnR5cGVvZiB0O08oIkFyZ3VtZW50IGlzIG5vdCBhICVzIChvciBhIG5vbi1FbGVtZW50LCBub24tTG9jYXRpb24gbW9jayk7IGdvdDogJXMiLGUsaSl9fWZ1bmN0aW9uIHB0KHQsZSl7dGhpcy5hPXQ9PT15dCYmZXx8IiIsdGhpcy5iPWd0fWZ1bmN0aW9uIGR0KHQpe3JldHVybiB0IGluc3RhbmNlb2YgcHQmJnQuY29uc3RydWN0b3I9PT1wdCYmdC5iPT09Z3Q/dC5hOihPKCJleHBlY3RlZCBvYmplY3Qgb2YgdHlwZSBDb25zdCwgZ290ICciK3QrIiciKSwidHlwZV9lcnJvcjpDb25zdCIpfXB0LnByb3RvdHlwZS5zYT0hMCxwdC5wcm90b3R5cGUucmE9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5hfSxwdC5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4iQ29uc3R7Iit0aGlzLmErIn0ifTt2YXIgdnQsZ3Q9e30seXQ9e307ZnVuY3Rpb24gbXQoKXtpZih2b2lkIDA9PT12dCl7dmFyIHQ9bnVsbCxlPWwudHJ1c3RlZFR5cGVzO2lmKGUmJmUuY3JlYXRlUG9saWN5KXt0cnl7dD1lLmNyZWF0ZVBvbGljeSgiZ29vZyNodG1sIix7Y3JlYXRlSFRNTDpfLGNyZWF0ZVNjcmlwdDpfLGNyZWF0ZVNjcmlwdFVSTDpffSl9Y2F0Y2godCl7bC5jb25zb2xlJiZsLmNvbnNvbGUuZXJyb3IodC5tZXNzYWdlKX12dD10fWVsc2UgdnQ9dH1yZXR1cm4gdnR9ZnVuY3Rpb24gYnQodCxlKXt0aGlzLmE9ZT09PUV0P3Q6IiJ9ZnVuY3Rpb24gd3QodCl7cmV0dXJuIHQgaW5zdGFuY2VvZiBidCYmdC5jb25zdHJ1Y3Rvcj09PWJ0P3QuYTooTygiZXhwZWN0ZWQgb2JqZWN0IG9mIHR5cGUgVHJ1c3RlZFJlc291cmNlVXJsLCBnb3QgJyIrdCsiJyBvZiB0eXBlICIrcCh0KSksInR5cGVfZXJyb3I6VHJ1c3RlZFJlc291cmNlVXJsIil9ZnVuY3Rpb24gX3QodCxuKXt2YXIgZSxyPWR0KHQpO2lmKCFUdC50ZXN0KHIpKXRocm93IEVycm9yKCJJbnZhbGlkIFRydXN0ZWRSZXNvdXJjZVVybCBmb3JtYXQ6ICIrcik7cmV0dXJuIHQ9ci5yZXBsYWNlKEl0LGZ1bmN0aW9uKHQsZSl7aWYoIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChuLGUpKXRocm93IEVycm9yKCdGb3VuZCBtYXJrZXIsICInK2UrJyIsIGluIGZvcm1hdCBzdHJpbmcsICInK3IrJyIsIGJ1dCBubyB2YWxpZCBsYWJlbCBtYXBwaW5nIGZvdW5kIGluIGFyZ3M6ICcrSlNPTi5zdHJpbmdpZnkobikpO3JldHVybih0PW5bZV0paW5zdGFuY2VvZiBwdD9kdCh0KTplbmNvZGVVUklDb21wb25lbnQoU3RyaW5nKHQpKX0pLGU9dCx0PW10KCksbmV3IGJ0KGU9dD90LmNyZWF0ZVNjcmlwdFVSTChlKTplLEV0KX1idC5wcm90b3R5cGUuc2E9ITAsYnQucHJvdG90eXBlLnJhPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuYS50b1N0cmluZygpfSxidC5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4iVHJ1c3RlZFJlc291cmNlVXJseyIrdGhpcy5hKyJ9In07dmFyIEl0PS8leyhcdyspfS9nLFR0PS9eKChodHRwczopP1wvXC9bMC05YS16LjpbXF0tXStcL3xcL1teL1xcXXxbXjovXFwlXStcL3xbXjovXFwlXSpbPyNdfGFib3V0OmJsYW5rIykvaSxFdD17fTtmdW5jdGlvbiBTdCh0LGUpe3RoaXMuYT1lPT09T3Q/dDoiIn1mdW5jdGlvbiBDdCh0KXtyZXR1cm4gdCBpbnN0YW5jZW9mIFN0JiZ0LmNvbnN0cnVjdG9yPT09U3Q/dC5hOihPKCJleHBlY3RlZCBvYmplY3Qgb2YgdHlwZSBTYWZlVXJsLCBnb3QgJyIrdCsiJyBvZiB0eXBlICIrcCh0KSksInR5cGVfZXJyb3I6U2FmZVVybCIpfVN0LnByb3RvdHlwZS5zYT0hMCxTdC5wcm90b3R5cGUucmE9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5hLnRvU3RyaW5nKCl9LFN0LnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiJTYWZlVXJseyIrdGhpcy5hKyJ9In07dmFyIE50PS9eKD86YXVkaW9cLyg/OjNncHAyfDNncHB8YWFjfEwxNnxtaWRpfG1wM3xtcDR8bXBlZ3xvZ2F8b2dnfG9wdXN8eC1tNGF8eC1tYXRyb3NrYXx4LXdhdnx3YXZ8d2VibSl8Zm9udFwvXHcrfGltYWdlXC8oPzpibXB8Z2lmfGpwZWd8anBnfHBuZ3x0aWZmfHdlYnB8eC1pY29uKXx0ZXh0XC9jc3Z8dmlkZW9cLyg/Om1wZWd8bXA0fG9nZ3x3ZWJtfHF1aWNrdGltZXx4LW1hdHJvc2thKSkoPzo7XHcrPSg/Olx3K3wiW1x3Oyw9IF0rIikpKiQvaSxBdD0vXmRhdGE6KC4qKTtiYXNlNjQsW2EtejAtOStcL10rPSokL2ksa3Q9L14oPzooPzpodHRwcz98bWFpbHRvfGZ0cCk6fFteOi8/I10qKD86Wy8/I118JCkpL2k7ZnVuY3Rpb24gUnQodCl7cmV0dXJuIHQgaW5zdGFuY2VvZiBTdD90Oih0PSJvYmplY3QiPT10eXBlb2YgdCYmdC5zYT90LnJhKCk6U3RyaW5nKHQpLHQ9a3QudGVzdCh0KXx8KGU9KHQ9KHQ9U3RyaW5nKHQpKS5yZXBsYWNlKC8oJTBBfCUwRCkvZywiIikpLm1hdGNoKEF0KSkmJk50LnRlc3QoZVsxXSk/bmV3IFN0KHQsT3QpOm51bGwpO3ZhciBlfWZ1bmN0aW9uIFB0KHQpe3JldHVybiB0IGluc3RhbmNlb2YgU3Q/dDoodD0ib2JqZWN0Ij09dHlwZW9mIHQmJnQuc2E/dC5yYSgpOlN0cmluZyh0KSxuZXcgU3QodD0ha3QudGVzdCh0KT8iYWJvdXQ6aW52YWxpZCN6Q2xvc3VyZXoiOnQsT3QpKX12YXIgT3Q9e30sRHQ9bmV3IFN0KCJhYm91dDppbnZhbGlkI3pDbG9zdXJleiIsT3QpO2Z1bmN0aW9uIHh0KHQsZSxuKXt0aGlzLmE9bj09PUx0P3Q6IiJ9eHQucHJvdG90eXBlLnNhPSEwLHh0LnByb3RvdHlwZS5yYT1mdW5jdGlvbigpe3JldHVybiB0aGlzLmEudG9TdHJpbmcoKX0seHQucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIlNhZmVIdG1seyIrdGhpcy5hKyJ9In07dmFyIEx0PXt9O2Z1bmN0aW9uIE10KHQsZSxuLHIpe3JldHVybiB0PXQgaW5zdGFuY2VvZiBTdD90OlB0KHQpLGU9ZXx8bCxuPW4gaW5zdGFuY2VvZiBwdD9kdChuKTpufHwiIixlLm9wZW4oQ3QodCksbixyLHZvaWQgMCl9ZnVuY3Rpb24gRnQodCl7Zm9yKHZhciBlPXQuc3BsaXQoIiVzIiksbj0iIixyPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywxKTtyLmxlbmd0aCYmMTxlLmxlbmd0aDspbis9ZS5zaGlmdCgpK3Iuc2hpZnQoKTtyZXR1cm4gbitlLmpvaW4oIiVzIil9ZnVuY3Rpb24gVXQodCl7cmV0dXJuIG50LnRlc3QodCkmJigtMSE9KHQ9LTEhPSh0PS0xIT0odD0tMSE9KHQ9LTEhPSh0PS0xIT10LmluZGV4T2YoIiYiKT90LnJlcGxhY2UoWCwiJmFtcDsiKTp0KS5pbmRleE9mKCI8Iik/dC5yZXBsYWNlKEosIiZsdDsiKTp0KS5pbmRleE9mKCI+Iik/dC5yZXBsYWNlKCQsIiZndDsiKTp0KS5pbmRleE9mKCciJyk/dC5yZXBsYWNlKFosIiZxdW90OyIpOnQpLmluZGV4T2YoIiciKT90LnJlcGxhY2UodHQsIiYjMzk7Iik6dCkuaW5kZXhPZigiXDAiKSYmKHQ9dC5yZXBsYWNlKGV0LCImIzA7IikpKSx0fWZ1bmN0aW9uIGp0KHQpe3JldHVybiBqdFsiICJdKHQpLHR9anRbIiAiXT1zO3ZhciBxdCxWdD1zdCgiT3BlcmEiKSxCdD1zdCgiVHJpZGVudCIpfHxzdCgiTVNJRSIpLEt0PXN0KCJFZGdlIiksV3Q9S3R8fEJ0LEh0PXN0KCJHZWNrbyIpJiYhKHJ0KFEudG9Mb3dlckNhc2UoKSwid2Via2l0IikmJiFzdCgiRWRnZSIpKSYmIShzdCgiVHJpZGVudCIpfHxzdCgiTVNJRSIpKSYmIXN0KCJFZGdlIiksR3Q9cnQoUS50b0xvd2VyQ2FzZSgpLCJ3ZWJraXQiKSYmIXN0KCJFZGdlIik7ZnVuY3Rpb24genQoKXt2YXIgdD1sLmRvY3VtZW50O3JldHVybiB0P3QuZG9jdW1lbnRNb2RlOnZvaWQgMH10Ont2YXIgUXQ9IiIsWXQ9KFl0PVEsSHQ/L3J2OihbXlwpO10rKShcKXw7KS8uZXhlYyhZdCk6S3Q/L0VkZ2VcLyhbXGRcLl0rKS8uZXhlYyhZdCk6QnQ/L1xiKD86TVNJRXxydilbOiBdKFteXCk7XSspKFwpfDspLy5leGVjKFl0KTpHdD8vV2ViS2l0XC8oXFMrKS8uZXhlYyhZdCk6VnQ/Lyg/OlZlcnNpb24pWyBcL10/KFxTKykvLmV4ZWMoWXQpOnZvaWQgMCk7aWYoWXQmJihRdD1ZdD9ZdFsxXToiIiksQnQpe1l0PXp0KCk7aWYobnVsbCE9WXQmJll0PnBhcnNlRmxvYXQoUXQpKXtxdD1TdHJpbmcoWXQpO2JyZWFrIHR9fXF0PVF0fXZhciBYdD17fTtmdW5jdGlvbiBKdChhKXtyZXR1cm4gdD1hLGU9ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MCxlPVkoU3RyaW5nKHF0KSkuc3BsaXQoIi4iKSxuPVkoU3RyaW5nKGEpKS5zcGxpdCgiLiIpLHI9TWF0aC5tYXgoZS5sZW5ndGgsbi5sZW5ndGgpLGk9MDswPT10JiZpPHI7aSsrKWZvcih2YXIgbz1lW2ldfHwiIixzPW5baV18fCIiO289LyhcZCopKFxEKikoLiopLy5leGVjKG8pfHxbIiIsIiIsIiIsIiJdLHM9LyhcZCopKFxEKikoLiopLy5leGVjKHMpfHxbIiIsIiIsIiIsIiJdLCgwIT1vWzBdLmxlbmd0aHx8MCE9c1swXS5sZW5ndGgpJiYodD1pdCgwPT1vWzFdLmxlbmd0aD8wOnBhcnNlSW50KG9bMV0sMTApLDA9PXNbMV0ubGVuZ3RoPzA6cGFyc2VJbnQoc1sxXSwxMCkpfHxpdCgwPT1vWzJdLmxlbmd0aCwwPT1zWzJdLmxlbmd0aCl8fGl0KG9bMl0sc1syXSksbz1vWzNdLHM9c1szXSwwPT10KTspO3JldHVybiAwPD10fSxuPVh0LE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChuLHQpP25bdF06blt0XT1lKHQpO3ZhciB0LGUsbn12YXIgJHQ9bC5kb2N1bWVudCYmQnQmJih6dCgpfHxwYXJzZUludChxdCwxMCkpfHx2b2lkIDA7dHJ5e25ldyBzZWxmLk9mZnNjcmVlbkNhbnZhcygwLDApLmdldENvbnRleHQoIjJkIil9Y2F0Y2godCl7fXZhciBadD0hQnR8fDk8PU51bWJlcigkdCk7ZnVuY3Rpb24gdGUodCl7dmFyIGU9ZG9jdW1lbnQ7cmV0dXJuInN0cmluZyI9PXR5cGVvZiB0P2UuZ2V0RWxlbWVudEJ5SWQodCk6dH1mdW5jdGlvbiBlZShuLHQpe2F0KHQsZnVuY3Rpb24odCxlKXt0JiYib2JqZWN0Ij09dHlwZW9mIHQmJnQuc2EmJih0PXQucmEoKSksInN0eWxlIj09ZT9uLnN0eWxlLmNzc1RleHQ9dDoiY2xhc3MiPT1lP24uY2xhc3NOYW1lPXQ6ImZvciI9PWU/bi5odG1sRm9yPXQ6aWUuaGFzT3duUHJvcGVydHkoZSk/bi5zZXRBdHRyaWJ1dGUoaWVbZV0sdCk6MD09ZS5sYXN0SW5kZXhPZigiYXJpYS0iLDApfHwwPT1lLmxhc3RJbmRleE9mKCJkYXRhLSIsMCk/bi5zZXRBdHRyaWJ1dGUoZSx0KTpuW2VdPXR9KX12YXIgbmUscmUsaWU9e2NlbGxwYWRkaW5nOiJjZWxsUGFkZGluZyIsY2VsbHNwYWNpbmc6ImNlbGxTcGFjaW5nIixjb2xzcGFuOiJjb2xTcGFuIixmcmFtZWJvcmRlcjoiZnJhbWVCb3JkZXIiLGhlaWdodDoiaGVpZ2h0IixtYXhsZW5ndGg6Im1heExlbmd0aCIsbm9uY2U6Im5vbmNlIixyb2xlOiJyb2xlIixyb3dzcGFuOiJyb3dTcGFuIix0eXBlOiJ0eXBlIix1c2VtYXA6InVzZU1hcCIsdmFsaWduOiJ2QWxpZ24iLHdpZHRoOiJ3aWR0aCJ9O2Z1bmN0aW9uIG9lKCl7dmFyIHQsZT1hcmd1bWVudHMsbj1kb2N1bWVudCxyPVN0cmluZyhlWzBdKSxpPWVbMV07cmV0dXJuIVp0JiZpJiYoaS5uYW1lfHxpLnR5cGUpJiYocj1bIjwiLHJdLGkubmFtZSYmci5wdXNoKCcgbmFtZT0iJyxVdChpLm5hbWUpLCciJyksaS50eXBlJiYoci5wdXNoKCcgdHlwZT0iJyxVdChpLnR5cGUpLCciJyksbHQodD17fSxpKSxkZWxldGUgdC50eXBlLGk9dCksci5wdXNoKCI+Iikscj1yLmpvaW4oIiIpKSxyPXNlKG4sciksaSYmKCJzdHJpbmciPT10eXBlb2YgaT9yLmNsYXNzTmFtZT1pOkFycmF5LmlzQXJyYXkoaSk/ci5jbGFzc05hbWU9aS5qb2luKCIgIik6ZWUocixpKSksMjxlLmxlbmd0aCYmZnVuY3Rpb24oZSxuLHQpe2Z1bmN0aW9uIHIodCl7dCYmbi5hcHBlbmRDaGlsZCgic3RyaW5nIj09dHlwZW9mIHQ/ZS5jcmVhdGVUZXh0Tm9kZSh0KTp0KX1mb3IodmFyIGk9MjtpPHQubGVuZ3RoO2krKyl7dmFyIG89dFtpXTtpZighZChvKXx8ZyhvKSYmMDxvLm5vZGVUeXBlKXIobyk7ZWxzZXt0OntpZihvJiYibnVtYmVyIj09dHlwZW9mIG8ubGVuZ3RoKXtpZihnKG8pKXt2YXIgcz0iZnVuY3Rpb24iPT10eXBlb2Ygby5pdGVtfHwic3RyaW5nIj09dHlwZW9mIG8uaXRlbTticmVhayB0fWlmKHYobykpe3M9ImZ1bmN0aW9uIj09dHlwZW9mIG8uaXRlbTticmVhayB0fX1zPSExfWoocz96KG8pOm8scil9fX0obixyLGUpLHJ9ZnVuY3Rpb24gc2UodCxlKXtyZXR1cm4gZT1TdHJpbmcoZSksImFwcGxpY2F0aW9uL3hodG1sK3htbCI9PT10LmNvbnRlbnRUeXBlJiYoZT1lLnRvTG93ZXJDYXNlKCkpLHQuY3JlYXRlRWxlbWVudChlKX1mdW5jdGlvbiBhZSh0KXtsLnNldFRpbWVvdXQoZnVuY3Rpb24oKXt0aHJvdyB0fSwwKX1mdW5jdGlvbiB1ZSh0LGUpe3JlfHxmdW5jdGlvbigpe3t2YXIgdDtyZT1sLlByb21pc2UmJmwuUHJvbWlzZS5yZXNvbHZlPyh0PWwuUHJvbWlzZS5yZXNvbHZlKHZvaWQgMCksZnVuY3Rpb24oKXt0LnRoZW4obGUpfSk6ZnVuY3Rpb24oKXt2YXIgdD1sZTshdihsLnNldEltbWVkaWF0ZSl8fGwuV2luZG93JiZsLldpbmRvdy5wcm90b3R5cGUmJiFzdCgiRWRnZSIpJiZsLldpbmRvdy5wcm90b3R5cGUuc2V0SW1tZWRpYXRlPT1sLnNldEltbWVkaWF0ZT8obmU9bmV8fGZ1bmN0aW9uKCl7dmFyIHQ9bC5NZXNzYWdlQ2hhbm5lbDtpZih2b2lkIDA9PT0odD12b2lkIDA9PT10JiYidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdyYmd2luZG93LnBvc3RNZXNzYWdlJiZ3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lciYmIXN0KCJQcmVzdG8iKT9mdW5jdGlvbigpe3ZhciB0PXNlKGRvY3VtZW50LCJJRlJBTUUiKTt0LnN0eWxlLmRpc3BsYXk9Im5vbmUiLGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5hcHBlbmRDaGlsZCh0KTt2YXIgZT10LmNvbnRlbnRXaW5kb3c7KHQ9ZS5kb2N1bWVudCkub3BlbigpLHQuY2xvc2UoKTt2YXIgbj0iY2FsbEltbWVkaWF0ZSIrTWF0aC5yYW5kb20oKSxyPSJmaWxlOiI9PWUubG9jYXRpb24ucHJvdG9jb2w/IioiOmUubG9jYXRpb24ucHJvdG9jb2wrIi8vIitlLmxvY2F0aW9uLmhvc3Q7dD1tKGZ1bmN0aW9uKHQpeyIqIiE9ciYmdC5vcmlnaW4hPXJ8fHQuZGF0YSE9bnx8dGhpcy5wb3J0MS5vbm1lc3NhZ2UoKX0sdGhpcyksZS5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIix0LCExKSx0aGlzLnBvcnQxPXt9LHRoaXMucG9ydDI9e3Bvc3RNZXNzYWdlOmZ1bmN0aW9uKCl7ZS5wb3N0TWVzc2FnZShuLHIpfX19OnQpfHxzdCgiVHJpZGVudCIpfHxzdCgiTVNJRSIpKXJldHVybiBmdW5jdGlvbih0KXtsLnNldFRpbWVvdXQodCwwKX07dmFyIGU9bmV3IHQsbj17fSxyPW47cmV0dXJuIGUucG9ydDEub25tZXNzYWdlPWZ1bmN0aW9uKCl7dmFyIHQ7dm9pZCAwIT09bi5uZXh0JiYodD0obj1uLm5leHQpLkdiLG4uR2I9bnVsbCx0KCkpfSxmdW5jdGlvbih0KXtyLm5leHQ9e0diOnR9LHI9ci5uZXh0LGUucG9ydDIucG9zdE1lc3NhZ2UoMCl9fSgpKSh0KTpsLnNldEltbWVkaWF0ZSh0KX19fSgpLGNlfHwocmUoKSxjZT0hMCksaGUuYWRkKHQsZSl9dmFyIGNlPSExLGhlPW5ldyBMO2Z1bmN0aW9uIGxlKCl7Zm9yKHZhciB0LGUsbjtuPWU9dm9pZCAwLG49bnVsbCwoZT1oZSkuYSYmKG49ZS5hLGUuYT1lLmEubmV4dCxlLmF8fChlLmI9bnVsbCksbi5uZXh0PW51bGwpLHQ9bjspe3RyeXt0LmEuY2FsbCh0LmIpfWNhdGNoKHQpe2FlKHQpfXgoTSx0KX1jZT0hMX1mdW5jdGlvbiBmZSh0LGUpe2lmKHRoaXMuYT1wZSx0aGlzLmk9dm9pZCAwLHRoaXMuZj10aGlzLmI9dGhpcy5jPW51bGwsdGhpcy5nPXRoaXMuaD0hMSx0IT1zKXRyeXt2YXIgbj10aGlzO3QuY2FsbChlLGZ1bmN0aW9uKHQpe1NlKG4sZGUsdCl9LGZ1bmN0aW9uKHQpe2lmKCEodCBpbnN0YW5jZW9mIE9lKSl0cnl7aWYodCBpbnN0YW5jZW9mIEVycm9yKXRocm93IHQ7dGhyb3cgRXJyb3IoIlByb21pc2UgcmVqZWN0ZWQuIil9Y2F0Y2godCl7fVNlKG4sdmUsdCl9KX1jYXRjaCh0KXtTZSh0aGlzLHZlLHQpfX12YXIgcGU9MCxkZT0yLHZlPTM7ZnVuY3Rpb24gZ2UoKXt0aGlzLm5leHQ9dGhpcy5mPXRoaXMuYj10aGlzLmc9dGhpcy5hPW51bGwsdGhpcy5jPSExfWdlLnByb3RvdHlwZS5yZXNldD1mdW5jdGlvbigpe3RoaXMuZj10aGlzLmI9dGhpcy5nPXRoaXMuYT1udWxsLHRoaXMuYz0hMX07dmFyIHllPW5ldyBEKGZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBnZX0sZnVuY3Rpb24odCl7dC5yZXNldCgpfSk7ZnVuY3Rpb24gbWUodCxlLG4pe3ZhciByPXllLmdldCgpO3JldHVybiByLmc9dCxyLmI9ZSxyLmY9bixyfWZ1bmN0aW9uIGJlKHQpe2lmKHQgaW5zdGFuY2VvZiBmZSlyZXR1cm4gdDt2YXIgZT1uZXcgZmUocyk7cmV0dXJuIFNlKGUsZGUsdCksZX1mdW5jdGlvbiB3ZShuKXtyZXR1cm4gbmV3IGZlKGZ1bmN0aW9uKHQsZSl7ZShuKX0pfWZ1bmN0aW9uIF9lKHQsZSxuKXtDZSh0LGUsbixudWxsKXx8dWUoYihlLHQpKX1mdW5jdGlvbiBJZShuKXtyZXR1cm4gbmV3IGZlKGZ1bmN0aW9uKHIpe3ZhciBpPW4ubGVuZ3RoLG89W107aWYoaSlmb3IodmFyIHQ9ZnVuY3Rpb24odCxlLG4pe2ktLSxvW3RdPWU/e1BiOiEwLHZhbHVlOm59OntQYjohMSxyZWFzb246bn0sMD09aSYmcihvKX0sZT0wO2U8bi5sZW5ndGg7ZSsrKV9lKG5bZV0sYih0LGUsITApLGIodCxlLCExKSk7ZWxzZSByKG8pfSl9ZnVuY3Rpb24gVGUodCxlKXt0LmJ8fHQuYSE9ZGUmJnQuYSE9dmV8fE5lKHQpLHQuZj90LmYubmV4dD1lOnQuYj1lLHQuZj1lfWZ1bmN0aW9uIEVlKHQsaSxvLHMpe3ZhciBlPW1lKG51bGwsbnVsbCxudWxsKTtyZXR1cm4gZS5hPW5ldyBmZShmdW5jdGlvbihuLHIpe2UuZz1pP2Z1bmN0aW9uKHQpe3RyeXt2YXIgZT1pLmNhbGwocyx0KTtuKGUpfWNhdGNoKHQpe3IodCl9fTpuLGUuYj1vP2Z1bmN0aW9uKHQpe3RyeXt2YXIgZT1vLmNhbGwocyx0KTt2b2lkIDA9PT1lJiZ0IGluc3RhbmNlb2YgT2U/cih0KTpuKGUpfWNhdGNoKHQpe3IodCl9fTpyfSksVGUoZS5hLmM9dCxlKSxlLmF9ZnVuY3Rpb24gU2UodCxlLG4pe3ZhciByLGk7dC5hPT1wZSYmKHQ9PT1uJiYoZT12ZSxuPW5ldyBUeXBlRXJyb3IoIlByb21pc2UgY2Fubm90IHJlc29sdmUgdG8gaXRzZWxmIikpLHQuYT0xLENlKG4sdC4kYyx0LmFkLHQpfHwodC5pPW4sdC5hPWUsdC5jPW51bGwsTmUodCksZSE9dmV8fG4gaW5zdGFuY2VvZiBPZXx8KGk9biwocj10KS5nPSEwLHVlKGZ1bmN0aW9uKCl7ci5nJiZQZS5jYWxsKG51bGwsaSl9KSkpKX1mdW5jdGlvbiBDZSh0LGUsbixyKXtpZih0IGluc3RhbmNlb2YgZmUpcmV0dXJuIFRlKHQsbWUoZXx8cyxufHxudWxsLHIpKSwxO2lmKGsodCkpcmV0dXJuIHQudGhlbihlLG4sciksMTtpZihnKHQpKXRyeXt2YXIgaT10LnRoZW47aWYodihpKSlyZXR1cm4gZnVuY3Rpb24odCxlLG4scixpKXtmdW5jdGlvbiBvKHQpe3N8fChzPSEwLHIuY2FsbChpLHQpKX12YXIgcz0hMTt0cnl7ZS5jYWxsKHQsZnVuY3Rpb24odCl7c3x8KHM9ITAsbi5jYWxsKGksdCkpfSxvKX1jYXRjaCh0KXtvKHQpfX0odCxpLGUsbixyKSwxfWNhdGNoKHQpe3JldHVybiBuLmNhbGwocix0KSwxfX1mdW5jdGlvbiBOZSh0KXt0Lmh8fCh0Lmg9ITAsdWUodC5nYyx0KSl9ZnVuY3Rpb24gQWUodCl7dmFyIGU9bnVsbDtyZXR1cm4gdC5iJiYoZT10LmIsdC5iPWUubmV4dCxlLm5leHQ9bnVsbCksdC5ifHwodC5mPW51bGwpLGV9ZnVuY3Rpb24ga2UodCxlLG4scil7aWYobj09dmUmJmUuYiYmIWUuYylmb3IoO3QmJnQuZzt0PXQuYyl0Lmc9ITE7aWYoZS5hKWUuYS5jPW51bGwsUmUoZSxuLHIpO2Vsc2UgdHJ5e2UuYz9lLmcuY2FsbChlLmYpOlJlKGUsbixyKX1jYXRjaCh0KXtQZS5jYWxsKG51bGwsdCl9eCh5ZSxlKX1mdW5jdGlvbiBSZSh0LGUsbil7ZT09ZGU/dC5nLmNhbGwodC5mLG4pOnQuYiYmdC5iLmNhbGwodC5mLG4pfWZlLnByb3RvdHlwZS50aGVuPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gRWUodGhpcyx2KHQpP3Q6bnVsbCx2KGUpP2U6bnVsbCxuKX0sZmUucHJvdG90eXBlLiRnb29nX1RoZW5hYmxlPSEwLCh0PWZlLnByb3RvdHlwZSkub2E9ZnVuY3Rpb24odCxlKXtyZXR1cm4odD1tZSh0LHQsZSkpLmM9ITAsVGUodGhpcyx0KSx0aGlzfSx0Lm89ZnVuY3Rpb24odCxlKXtyZXR1cm4gRWUodGhpcyxudWxsLHQsZSl9LHQuY2FuY2VsPWZ1bmN0aW9uKHQpe3ZhciBlO3RoaXMuYT09cGUmJihlPW5ldyBPZSh0KSx1ZShmdW5jdGlvbigpeyFmdW5jdGlvbiB0KGUsbil7aWYoZS5hPT1wZSlpZihlLmMpe3ZhciByPWUuYztpZihyLmIpe2Zvcih2YXIgaT0wLG89bnVsbCxzPW51bGwsYT1yLmI7YSYmKGEuY3x8KGkrKywhKChvPWEuYT09ZT9hOm8pJiYxPGkpKSk7YT1hLm5leHQpb3x8KHM9YSk7byYmKHIuYT09cGUmJjE9PWk/dChyLG4pOihzPygoaT1zKS5uZXh0PT1yLmYmJihyLmY9aSksaS5uZXh0PWkubmV4dC5uZXh0KTpBZShyKSxrZShyLG8sdmUsbikpKX1lLmM9bnVsbH1lbHNlIFNlKGUsdmUsbil9KHRoaXMsZSl9LHRoaXMpKX0sdC4kYz1mdW5jdGlvbih0KXt0aGlzLmE9cGUsU2UodGhpcyxkZSx0KX0sdC5hZD1mdW5jdGlvbih0KXt0aGlzLmE9cGUsU2UodGhpcyx2ZSx0KX0sdC5nYz1mdW5jdGlvbigpe2Zvcih2YXIgdDt0PUFlKHRoaXMpOylrZSh0aGlzLHQsdGhpcy5hLHRoaXMuaSk7dGhpcy5oPSExfTt2YXIgUGU9YWU7ZnVuY3Rpb24gT2UodCl7Ui5jYWxsKHRoaXMsdCl9ZnVuY3Rpb24gRGUoKXt0aGlzLnhhPXRoaXMueGEsdGhpcy5wYT10aGlzLnBhfXcoT2UsUik7dmFyIHhlPTA7ZnVuY3Rpb24gTGUodCl7dC54YXx8KHQueGE9ITAsdC5EYSgpLDA9PXhlKXx8KHQ9dCxPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCxuKSYmdFtuXXx8KHRbbl09KytyKSl9RGUucHJvdG90eXBlLnhhPSEoT2UucHJvdG90eXBlLm5hbWU9ImNhbmNlbCIpLERlLnByb3RvdHlwZS5EYT1mdW5jdGlvbigpe2lmKHRoaXMucGEpZm9yKDt0aGlzLnBhLmxlbmd0aDspdGhpcy5wYS5zaGlmdCgpKCl9O3ZhciBNZT1PYmplY3QuZnJlZXplfHxmdW5jdGlvbih0KXtyZXR1cm4gdH0sRmU9IUJ0fHw5PD1OdW1iZXIoJHQpLFVlPUJ0JiYhSnQoIjkiKSxqZT1mdW5jdGlvbigpe2lmKCFsLmFkZEV2ZW50TGlzdGVuZXJ8fCFPYmplY3QuZGVmaW5lUHJvcGVydHkpcmV0dXJuITE7dmFyIHQ9ITEsZT1PYmplY3QuZGVmaW5lUHJvcGVydHkoe30sInBhc3NpdmUiLHtnZXQ6ZnVuY3Rpb24oKXt0PSEwfX0pO3RyeXtsLmFkZEV2ZW50TGlzdGVuZXIoInRlc3QiLHMsZSksbC5yZW1vdmVFdmVudExpc3RlbmVyKCJ0ZXN0IixzLGUpfWNhdGNoKHQpe31yZXR1cm4gdH0oKTtmdW5jdGlvbiBxZSh0LGUpe3RoaXMudHlwZT10LHRoaXMuYj10aGlzLnRhcmdldD1lLHRoaXMuZGVmYXVsdFByZXZlbnRlZD0hMX1mdW5jdGlvbiBWZSh0LGUpe2lmKHFlLmNhbGwodGhpcyx0P3QudHlwZToiIiksdGhpcy5yZWxhdGVkVGFyZ2V0PXRoaXMuYj10aGlzLnRhcmdldD1udWxsLHRoaXMuYnV0dG9uPXRoaXMuc2NyZWVuWT10aGlzLnNjcmVlblg9dGhpcy5jbGllbnRZPXRoaXMuY2xpZW50WD0wLHRoaXMua2V5PSIiLHRoaXMubWV0YUtleT10aGlzLnNoaWZ0S2V5PXRoaXMuYWx0S2V5PXRoaXMuY3RybEtleT0hMSx0aGlzLnBvaW50ZXJJZD0wLHRoaXMucG9pbnRlclR5cGU9IiIsdGhpcy5hPW51bGwsdCl7dmFyIG49dGhpcy50eXBlPXQudHlwZSxyPXQuY2hhbmdlZFRvdWNoZXMmJnQuY2hhbmdlZFRvdWNoZXMubGVuZ3RoP3QuY2hhbmdlZFRvdWNoZXNbMF06bnVsbDtpZih0aGlzLnRhcmdldD10LnRhcmdldHx8dC5zcmNFbGVtZW50LHRoaXMuYj1lLGU9dC5yZWxhdGVkVGFyZ2V0KXtpZihIdCl7dDp7dHJ5e2p0KGUubm9kZU5hbWUpO3ZhciBpPSEwO2JyZWFrIHR9Y2F0Y2godCl7fWk9ITF9aXx8KGU9bnVsbCl9fWVsc2UibW91c2VvdmVyIj09bj9lPXQuZnJvbUVsZW1lbnQ6Im1vdXNlb3V0Ij09biYmKGU9dC50b0VsZW1lbnQpO3RoaXMucmVsYXRlZFRhcmdldD1lLHI/KHRoaXMuY2xpZW50WD12b2lkIDAhPT1yLmNsaWVudFg/ci5jbGllbnRYOnIucGFnZVgsdGhpcy5jbGllbnRZPXZvaWQgMCE9PXIuY2xpZW50WT9yLmNsaWVudFk6ci5wYWdlWSx0aGlzLnNjcmVlblg9ci5zY3JlZW5YfHwwLHRoaXMuc2NyZWVuWT1yLnNjcmVlbll8fDApOih0aGlzLmNsaWVudFg9dm9pZCAwIT09dC5jbGllbnRYP3QuY2xpZW50WDp0LnBhZ2VYLHRoaXMuY2xpZW50WT12b2lkIDAhPT10LmNsaWVudFk/dC5jbGllbnRZOnQucGFnZVksdGhpcy5zY3JlZW5YPXQuc2NyZWVuWHx8MCx0aGlzLnNjcmVlblk9dC5zY3JlZW5ZfHwwKSx0aGlzLmJ1dHRvbj10LmJ1dHRvbix0aGlzLmtleT10LmtleXx8IiIsdGhpcy5jdHJsS2V5PXQuY3RybEtleSx0aGlzLmFsdEtleT10LmFsdEtleSx0aGlzLnNoaWZ0S2V5PXQuc2hpZnRLZXksdGhpcy5tZXRhS2V5PXQubWV0YUtleSx0aGlzLnBvaW50ZXJJZD10LnBvaW50ZXJJZHx8MCx0aGlzLnBvaW50ZXJUeXBlPSJzdHJpbmciPT10eXBlb2YgdC5wb2ludGVyVHlwZT90LnBvaW50ZXJUeXBlOkJlW3QucG9pbnRlclR5cGVdfHwiIiwodGhpcy5hPXQpLmRlZmF1bHRQcmV2ZW50ZWQmJnRoaXMucHJldmVudERlZmF1bHQoKX19cWUucHJvdG90eXBlLnByZXZlbnREZWZhdWx0PWZ1bmN0aW9uKCl7dGhpcy5kZWZhdWx0UHJldmVudGVkPSEwfSx3KFZlLHFlKTt2YXIgQmU9TWUoezI6InRvdWNoIiwzOiJwZW4iLDQ6Im1vdXNlIn0pO1ZlLnByb3RvdHlwZS5wcmV2ZW50RGVmYXVsdD1mdW5jdGlvbigpe1ZlLmFiLnByZXZlbnREZWZhdWx0LmNhbGwodGhpcyk7dmFyIHQ9dGhpcy5hO2lmKHQucHJldmVudERlZmF1bHQpdC5wcmV2ZW50RGVmYXVsdCgpO2Vsc2UgaWYodC5yZXR1cm5WYWx1ZT0hMSxVZSl0cnl7KHQuY3RybEtleXx8MTEyPD10LmtleUNvZGUmJnQua2V5Q29kZTw9MTIzKSYmKHQua2V5Q29kZT0tMSl9Y2F0Y2godCl7fX0sVmUucHJvdG90eXBlLmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5hfTt2YXIgS2U9ImNsb3N1cmVfbGlzdGVuYWJsZV8iKygxZTYqTWF0aC5yYW5kb20oKXwwKSxXZT0wO2Z1bmN0aW9uIEhlKHQsZSxuLHIsaSl7dGhpcy5saXN0ZW5lcj10LHRoaXMucHJveHk9bnVsbCx0aGlzLnNyYz1lLHRoaXMudHlwZT1uLHRoaXMuY2FwdHVyZT0hIXIsdGhpcy5WYT1pLHRoaXMua2V5PSsrV2UsdGhpcy52YT10aGlzLlBhPSExfWZ1bmN0aW9uIEdlKHQpe3QudmE9ITAsdC5saXN0ZW5lcj1udWxsLHQucHJveHk9bnVsbCx0LnNyYz1udWxsLHQuVmE9bnVsbH1mdW5jdGlvbiB6ZSh0KXt0aGlzLnNyYz10LHRoaXMuYT17fSx0aGlzLmI9MH1mdW5jdGlvbiBRZSh0LGUpe3ZhciBuPWUudHlwZTtuIGluIHQuYSYmVyh0LmFbbl0sZSkmJihHZShlKSwwPT10LmFbbl0ubGVuZ3RoJiYoZGVsZXRlIHQuYVtuXSx0LmItLSkpfWZ1bmN0aW9uIFllKHQsZSxuLHIpe2Zvcih2YXIgaT0wO2k8dC5sZW5ndGg7KytpKXt2YXIgbz10W2ldO2lmKCFvLnZhJiZvLmxpc3RlbmVyPT1lJiZvLmNhcHR1cmU9PSEhbiYmby5WYT09cilyZXR1cm4gaX1yZXR1cm4tMX16ZS5wcm90b3R5cGUuYWRkPWZ1bmN0aW9uKHQsZSxuLHIsaSl7dmFyIG89dC50b1N0cmluZygpOyh0PXRoaXMuYVtvXSl8fCh0PXRoaXMuYVtvXT1bXSx0aGlzLmIrKyk7dmFyIHM9WWUodCxlLHIsaSk7cmV0dXJuLTE8cz8oZT10W3NdLG58fChlLlBhPSExKSk6KChlPW5ldyBIZShlLHRoaXMuc3JjLG8sISFyLGkpKS5QYT1uLHQucHVzaChlKSksZX07dmFyIFhlPSJjbG9zdXJlX2xtXyIrKDFlNipNYXRoLnJhbmRvbSgpfDApLEplPXt9O2Z1bmN0aW9uICRlKHQsZSxuLHIsaSl7aWYociYmci5vbmNlKXRuKHQsZSxuLHIsaSk7ZWxzZSBpZihBcnJheS5pc0FycmF5KGUpKWZvcih2YXIgbz0wO288ZS5sZW5ndGg7bysrKSRlKHQsZVtvXSxuLHIsaSk7ZWxzZSBuPWhuKG4pLHQmJnRbS2VdP2ZuKHQsZSxuLGcocik/ISFyLmNhcHR1cmU6ISFyLGkpOlplKHQsZSxuLCExLHIsaSl9ZnVuY3Rpb24gWmUodCxlLG4scixpLG8pe2lmKCFlKXRocm93IEVycm9yKCJJbnZhbGlkIGV2ZW50IHR5cGUiKTt2YXIgcyxhLHU9ZyhpKT8hIWkuY2FwdHVyZTohIWksYz11bih0KTtpZihjfHwodFtYZV09Yz1uZXcgemUodCkpLCEobj1jLmFkZChlLG4scix1LG8pKS5wcm94eSlpZihzPWFuLHI9YT1GZT9mdW5jdGlvbih0KXtyZXR1cm4gcy5jYWxsKGEuc3JjLGEubGlzdGVuZXIsdCl9OmZ1bmN0aW9uKHQpe2lmKCEodD1zLmNhbGwoYS5zcmMsYS5saXN0ZW5lcix0KSkpcmV0dXJuIHR9LChuLnByb3h5PXIpLnNyYz10LHIubGlzdGVuZXI9bix0LmFkZEV2ZW50TGlzdGVuZXIpdm9pZCAwPT09KGk9IWplP3U6aSkmJihpPSExKSx0LmFkZEV2ZW50TGlzdGVuZXIoZS50b1N0cmluZygpLHIsaSk7ZWxzZSBpZih0LmF0dGFjaEV2ZW50KXQuYXR0YWNoRXZlbnQocm4oZS50b1N0cmluZygpKSxyKTtlbHNle2lmKCF0LmFkZExpc3RlbmVyfHwhdC5yZW1vdmVMaXN0ZW5lcil0aHJvdyBFcnJvcigiYWRkRXZlbnRMaXN0ZW5lciBhbmQgYXR0YWNoRXZlbnQgYXJlIHVuYXZhaWxhYmxlLiIpO3QuYWRkTGlzdGVuZXIocil9fWZ1bmN0aW9uIHRuKHQsZSxuLHIsaSl7aWYoQXJyYXkuaXNBcnJheShlKSlmb3IodmFyIG89MDtvPGUubGVuZ3RoO28rKyl0bih0LGVbb10sbixyLGkpO2Vsc2Ugbj1obihuKSx0JiZ0W0tlXT9wbih0LGUsbixnKHIpPyEhci5jYXB0dXJlOiEhcixpKTpaZSh0LGUsbiwhMCxyLGkpfWZ1bmN0aW9uIGVuKHQsZSxuLHIsaSl7aWYoQXJyYXkuaXNBcnJheShlKSlmb3IodmFyIG89MDtvPGUubGVuZ3RoO28rKyllbih0LGVbb10sbixyLGkpO2Vsc2Ugcj1nKHIpPyEhci5jYXB0dXJlOiEhcixuPWhuKG4pLHQmJnRbS2VdPyh0PXQudiwoZT1TdHJpbmcoZSkudG9TdHJpbmcoKSlpbiB0LmEmJigtMTwobj1ZZShvPXQuYVtlXSxuLHIsaSkpJiYoR2Uob1tuXSksQXJyYXkucHJvdG90eXBlLnNwbGljZS5jYWxsKG8sbiwxKSwwPT1vLmxlbmd0aCYmKGRlbGV0ZSB0LmFbZV0sdC5iLS0pKSkpOih0PXQmJnVuKHQpKSYmKGU9dC5hW2UudG9TdHJpbmcoKV0sKG49KHQ9LTEpPCh0PWU/WWUoZSxuLHIsaSk6dCk/ZVt0XTpudWxsKSYmbm4obikpfWZ1bmN0aW9uIG5uKHQpe3ZhciBlLG4scjsibnVtYmVyIiE9dHlwZW9mIHQmJnQmJiF0LnZhJiYoKGU9dC5zcmMpJiZlW0tlXT9RZShlLnYsdCk6KG49dC50eXBlLHI9dC5wcm94eSxlLnJlbW92ZUV2ZW50TGlzdGVuZXI/ZS5yZW1vdmVFdmVudExpc3RlbmVyKG4scix0LmNhcHR1cmUpOmUuZGV0YWNoRXZlbnQ/ZS5kZXRhY2hFdmVudChybihuKSxyKTplLmFkZExpc3RlbmVyJiZlLnJlbW92ZUxpc3RlbmVyJiZlLnJlbW92ZUxpc3RlbmVyKHIpLChuPXVuKGUpKT8oUWUobix0KSwwPT1uLmImJihuLnNyYz1udWxsLGVbWGVdPW51bGwpKTpHZSh0KSkpfWZ1bmN0aW9uIHJuKHQpe3JldHVybiB0IGluIEplP0plW3RdOkplW3RdPSJvbiIrdH1mdW5jdGlvbiBvbih0LGUsbixyKXt2YXIgaT0hMDtpZigodD11bih0KSkmJihlPXQuYVtlLnRvU3RyaW5nKCldKSlmb3IoZT1lLmNvbmNhdCgpLHQ9MDt0PGUubGVuZ3RoO3QrKyl7dmFyIG89ZVt0XTtvJiZvLmNhcHR1cmU9PW4mJiFvLnZhJiYobz1zbihvLHIpLGk9aSYmITEhPT1vKX1yZXR1cm4gaX1mdW5jdGlvbiBzbih0LGUpe3ZhciBuPXQubGlzdGVuZXIscj10LlZhfHx0LnNyYztyZXR1cm4gdC5QYSYmbm4odCksbi5jYWxsKHIsZSl9ZnVuY3Rpb24gYW4odCxlKXtpZih0LnZhKXJldHVybiEwO2lmKEZlKXJldHVybiBzbih0LG5ldyBWZShlLHRoaXMpKTtpZighZSl0OntlPVsid2luZG93IiwiZXZlbnQiXTtmb3IodmFyIG49bCxyPTA7cjxlLmxlbmd0aDtyKyspaWYobnVsbD09KG49bltlW3JdXSkpe2U9bnVsbDticmVhayB0fWU9bn1pZihlPW5ldyBWZShyPWUsdGhpcyksbj0hMCwhKHIua2V5Q29kZTwwfHxudWxsIT1yLnJldHVyblZhbHVlKSl7dDp7dmFyIGk9ITE7aWYoMD09ci5rZXlDb2RlKXRyeXtyLmtleUNvZGU9LTE7YnJlYWsgdH1jYXRjaCh0KXtpPSEwfSFpJiZudWxsIT1yLnJldHVyblZhbHVlfHwoci5yZXR1cm5WYWx1ZT0hMCl9Zm9yKHI9W10saT1lLmI7aTtpPWkucGFyZW50Tm9kZSlyLnB1c2goaSk7Zm9yKHQ9dC50eXBlLGk9ci5sZW5ndGgtMTswPD1pO2ktLSl7ZS5iPXJbaV07dmFyIG89b24ocltpXSx0LCEwLGUpLG49biYmb31mb3IoaT0wO2k8ci5sZW5ndGg7aSsrKWUuYj1yW2ldLG89b24ocltpXSx0LCExLGUpLG49biYmb31yZXR1cm4gbn1mdW5jdGlvbiB1bih0KXtyZXR1cm4odD10W1hlXSlpbnN0YW5jZW9mIHplP3Q6bnVsbH12YXIgY249Il9fY2xvc3VyZV9ldmVudHNfZm5fIisoMWU5Kk1hdGgucmFuZG9tKCk+Pj4wKTtmdW5jdGlvbiBobihlKXtyZXR1cm4gdihlKT9lOihlW2NuXXx8KGVbY25dPWZ1bmN0aW9uKHQpe3JldHVybiBlLmhhbmRsZUV2ZW50KHQpfSksZVtjbl0pfWZ1bmN0aW9uIGxuKCl7RGUuY2FsbCh0aGlzKSx0aGlzLnY9bmV3IHplKHRoaXMpLCh0aGlzLmFjPXRoaXMpLmdiPW51bGx9ZnVuY3Rpb24gZm4odCxlLG4scixpKXt0LnYuYWRkKFN0cmluZyhlKSxuLCExLHIsaSl9ZnVuY3Rpb24gcG4odCxlLG4scixpKXt0LnYuYWRkKFN0cmluZyhlKSxuLCEwLHIsaSl9ZnVuY3Rpb24gZG4odCxlLG4scil7aWYoIShlPXQudi5hW1N0cmluZyhlKV0pKXJldHVybiEwO2U9ZS5jb25jYXQoKTtmb3IodmFyIGk9ITAsbz0wO288ZS5sZW5ndGg7KytvKXt2YXIgcyxhLHU9ZVtvXTt1JiYhdS52YSYmdS5jYXB0dXJlPT1uJiYocz11Lmxpc3RlbmVyLGE9dS5WYXx8dS5zcmMsdS5QYSYmUWUodC52LHUpLGk9ITEhPT1zLmNhbGwoYSxyKSYmaSl9cmV0dXJuIGkmJiFyLmRlZmF1bHRQcmV2ZW50ZWR9ZnVuY3Rpb24gdm4odCxlLG4pe2lmKHYodCkpbiYmKHQ9bSh0LG4pKTtlbHNle2lmKCF0fHwiZnVuY3Rpb24iIT10eXBlb2YgdC5oYW5kbGVFdmVudCl0aHJvdyBFcnJvcigiSW52YWxpZCBsaXN0ZW5lciBhcmd1bWVudCIpO3Q9bSh0LmhhbmRsZUV2ZW50LHQpfXJldHVybiAyMTQ3NDgzNjQ3PE51bWJlcihlKT8tMTpsLnNldFRpbWVvdXQodCxlfHwwKX1mdW5jdGlvbiBnbihuKXt2YXIgcj1udWxsO3JldHVybiBuZXcgZmUoZnVuY3Rpb24odCxlKXstMT09KHI9dm4oZnVuY3Rpb24oKXt0KHZvaWQgMCl9LG4pKSYmZShFcnJvcigiRmFpbGVkIHRvIHNjaGVkdWxlIHRpbWVyLiIpKX0pLm8oZnVuY3Rpb24odCl7dGhyb3cgbC5jbGVhclRpbWVvdXQociksdH0pfWZ1bmN0aW9uIHluKHQpe2lmKHQuVyYmImZ1bmN0aW9uIj09dHlwZW9mIHQuVylyZXR1cm4gdC5XKCk7aWYoInN0cmluZyI9PXR5cGVvZiB0KXJldHVybiB0LnNwbGl0KCIiKTtpZihkKHQpKXtmb3IodmFyIGU9W10sbj10Lmxlbmd0aCxyPTA7cjxuO3IrKyllLnB1c2godFtyXSk7cmV0dXJuIGV9Zm9yKHIgaW4gZT1bXSxuPTAsdCllW24rK109dFtyXTtyZXR1cm4gZX1mdW5jdGlvbiBtbih0KXtpZih0LlkmJiJmdW5jdGlvbiI9PXR5cGVvZiB0LlkpcmV0dXJuIHQuWSgpO2lmKCF0Lld8fCJmdW5jdGlvbiIhPXR5cGVvZiB0Llcpe2lmKGQodCl8fCJzdHJpbmciPT10eXBlb2YgdCl7dmFyIGU9W107dD10Lmxlbmd0aDtmb3IodmFyIG49MDtuPHQ7bisrKWUucHVzaChuKTtyZXR1cm4gZX1mb3IodmFyIHIgaW4gZT1bXSxuPTAsdCllW24rK109cjtyZXR1cm4gZX19ZnVuY3Rpb24gYm4odCxlKXt0aGlzLmI9e30sdGhpcy5hPVtdLHRoaXMuYz0wO3ZhciBuPWFyZ3VtZW50cy5sZW5ndGg7aWYoMTxuKXtpZihuJTIpdGhyb3cgRXJyb3IoIlVuZXZlbiBudW1iZXIgb2YgYXJndW1lbnRzIik7Zm9yKHZhciByPTA7cjxuO3IrPTIpdGhpcy5zZXQoYXJndW1lbnRzW3JdLGFyZ3VtZW50c1tyKzFdKX1lbHNlIGlmKHQpaWYodCBpbnN0YW5jZW9mIGJuKWZvcihuPXQuWSgpLHI9MDtyPG4ubGVuZ3RoO3IrKyl0aGlzLnNldChuW3JdLHQuZ2V0KG5bcl0pKTtlbHNlIGZvcihyIGluIHQpdGhpcy5zZXQocix0W3JdKX1mdW5jdGlvbiB3bih0KXtpZih0LmMhPXQuYS5sZW5ndGgpe2Zvcih2YXIgZT0wLG49MDtlPHQuYS5sZW5ndGg7KXt2YXIgcj10LmFbZV07X24odC5iLHIpJiYodC5hW24rK109ciksZSsrfXQuYS5sZW5ndGg9bn1pZih0LmMhPXQuYS5sZW5ndGgpe2Zvcih2YXIgaT17fSxuPWU9MDtlPHQuYS5sZW5ndGg7KV9uKGkscj10LmFbZV0pfHwoaVt0LmFbbisrXT1yXT0xKSxlKys7dC5hLmxlbmd0aD1ufX1mdW5jdGlvbiBfbih0LGUpe3JldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCxlKX13KGxuLERlKSxsbi5wcm90b3R5cGVbS2VdPSEwLGxuLnByb3RvdHlwZS5hZGRFdmVudExpc3RlbmVyPWZ1bmN0aW9uKHQsZSxuLHIpeyRlKHRoaXMsdCxlLG4scil9LGxuLnByb3RvdHlwZS5yZW1vdmVFdmVudExpc3RlbmVyPWZ1bmN0aW9uKHQsZSxuLHIpe2VuKHRoaXMsdCxlLG4scil9LGxuLnByb3RvdHlwZS5kaXNwYXRjaEV2ZW50PWZ1bmN0aW9uKHQpe3ZhciBlO2lmKG49dGhpcy5nYilmb3IoZT1bXTtuO249bi5nYillLnB1c2gobik7dmFyIG49dGhpcy5hYyxyPXQudHlwZXx8dDtpZigic3RyaW5nIj09dHlwZW9mIHQ/dD1uZXcgcWUodCxuKTp0IGluc3RhbmNlb2YgcWU/dC50YXJnZXQ9dC50YXJnZXR8fG46KHM9dCxsdCh0PW5ldyBxZShyLG4pLHMpKSxzPSEwLGUpZm9yKHZhciBpPWUubGVuZ3RoLTE7MDw9aTtpLS0pdmFyIG89dC5iPWVbaV0scz1kbihvLHIsITAsdCkmJnM7aWYocz1kbihvPXQuYj1uLHIsITAsdCkmJnMscz1kbihvLHIsITEsdCkmJnMsZSlmb3IoaT0wO2k8ZS5sZW5ndGg7aSsrKXM9ZG4obz10LmI9ZVtpXSxyLCExLHQpJiZzO3JldHVybiBzfSxsbi5wcm90b3R5cGUuRGE9ZnVuY3Rpb24oKXtpZihsbi5hYi5EYS5jYWxsKHRoaXMpLHRoaXMudil7dmFyIHQsZT10aGlzLnY7Zm9yKHQgaW4gZS5hKXtmb3IodmFyIG49ZS5hW3RdLHI9MDtyPG4ubGVuZ3RoO3IrKylHZShuW3JdKTtkZWxldGUgZS5hW3RdLGUuYi0tfX10aGlzLmdiPW51bGx9LCh0PWJuLnByb3RvdHlwZSkuVz1mdW5jdGlvbigpe3duKHRoaXMpO2Zvcih2YXIgdD1bXSxlPTA7ZTx0aGlzLmEubGVuZ3RoO2UrKyl0LnB1c2godGhpcy5iW3RoaXMuYVtlXV0pO3JldHVybiB0fSx0Llk9ZnVuY3Rpb24oKXtyZXR1cm4gd24odGhpcyksdGhpcy5hLmNvbmNhdCgpfSx0LmNsZWFyPWZ1bmN0aW9uKCl7dGhpcy5iPXt9LHRoaXMuYz10aGlzLmEubGVuZ3RoPTB9LHQuZ2V0PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIF9uKHRoaXMuYix0KT90aGlzLmJbdF06ZX0sdC5zZXQ9ZnVuY3Rpb24odCxlKXtfbih0aGlzLmIsdCl8fCh0aGlzLmMrKyx0aGlzLmEucHVzaCh0KSksdGhpcy5iW3RdPWV9LHQuZm9yRWFjaD1mdW5jdGlvbih0LGUpe2Zvcih2YXIgbj10aGlzLlkoKSxyPTA7cjxuLmxlbmd0aDtyKyspe3ZhciBpPW5bcl0sbz10aGlzLmdldChpKTt0LmNhbGwoZSxvLGksdGhpcyl9fTt2YXIgSW49L14oPzooW146Lz8jLl0rKTopPyg/OlwvXC8oPzooW15cXC8/I10qKUApPyhbXlxcLz8jXSo/KSg/OjooWzAtOV0rKSk/KD89W1xcLz8jXXwkKSk/KFtePyNdKyk/KD86XD8oW14jXSopKT8oPzojKFtcc1xTXSopKT8kLztmdW5jdGlvbiBUbih0LGUpe3ZhciBuO3RoaXMuYT10aGlzLmw9dGhpcy5jPSIiLHRoaXMuZz1udWxsLHRoaXMuaD10aGlzLmY9IiIsdGhpcy5pPSExLHQgaW5zdGFuY2VvZiBUbj8odGhpcy5pPXZvaWQgMCE9PWU/ZTp0LmksRW4odGhpcyx0LmMpLHRoaXMubD10LmwsdGhpcy5hPXQuYSxTbih0aGlzLHQuZyksdGhpcy5mPXQuZixDbih0aGlzLEhuKHQuYikpLHRoaXMuaD10LmgpOnQmJihuPVN0cmluZyh0KS5tYXRjaChJbikpPyh0aGlzLmk9ISFlLEVuKHRoaXMsblsxXXx8IiIsITApLHRoaXMubD1QbihuWzJdfHwiIiksdGhpcy5hPVBuKG5bM118fCIiLCEwKSxTbih0aGlzLG5bNF0pLHRoaXMuZj1QbihuWzVdfHwiIiwhMCksQ24odGhpcyxuWzZdfHwiIiwhMCksdGhpcy5oPVBuKG5bN118fCIiKSk6KHRoaXMuaT0hIWUsdGhpcy5iPW5ldyBqbihudWxsLHRoaXMuaSkpfWZ1bmN0aW9uIEVuKHQsZSxuKXt0LmM9bj9QbihlLCEwKTplLHQuYyYmKHQuYz10LmMucmVwbGFjZSgvOiQvLCIiKSl9ZnVuY3Rpb24gU24odCxlKXtpZihlKXtpZihlPU51bWJlcihlKSxpc05hTihlKXx8ZTwwKXRocm93IEVycm9yKCJCYWQgcG9ydCBudW1iZXIgIitlKTt0Lmc9ZX1lbHNlIHQuZz1udWxsfWZ1bmN0aW9uIENuKHQsZSxuKXt2YXIgcixpO2UgaW5zdGFuY2VvZiBqbj8odC5iPWUscj10LmIsKGk9dC5pKSYmIXIuZiYmKHFuKHIpLHIuYz1udWxsLHIuYS5mb3JFYWNoKGZ1bmN0aW9uKHQsZSl7dmFyIG49ZS50b0xvd2VyQ2FzZSgpO2UhPW4mJihCbih0aGlzLGUpLFduKHRoaXMsbix0KSl9LHIpKSxyLmY9aSk6KG58fChlPU9uKGUsRm4pKSx0LmI9bmV3IGpuKGUsdC5pKSl9ZnVuY3Rpb24gTm4odCxlLG4pe3QuYi5zZXQoZSxuKX1mdW5jdGlvbiBBbih0LGUpe3JldHVybiB0LmIuZ2V0KGUpfWZ1bmN0aW9uIGtuKHQpe3JldHVybiB0IGluc3RhbmNlb2YgVG4/bmV3IFRuKHQpOm5ldyBUbih0LHZvaWQgMCl9ZnVuY3Rpb24gUm4odCxlLG4scil7dmFyIGk9bmV3IFRuKG51bGwsdm9pZCAwKTtyZXR1cm4gdCYmRW4oaSx0KSxlJiYoaS5hPWUpLG4mJlNuKGksbiksciYmKGkuZj1yKSxpfWZ1bmN0aW9uIFBuKHQsZSl7cmV0dXJuIHQ/ZT9kZWNvZGVVUkkodC5yZXBsYWNlKC8lMjUvZywiJTI1MjUiKSk6ZGVjb2RlVVJJQ29tcG9uZW50KHQpOiIifWZ1bmN0aW9uIE9uKHQsZSxuKXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIHQ/KHQ9ZW5jb2RlVVJJKHQpLnJlcGxhY2UoZSxEbiksdD1uP3QucmVwbGFjZSgvJTI1KFswLTlhLWZBLUZdezJ9KS9nLCIlJDEiKTp0KTpudWxsfWZ1bmN0aW9uIERuKHQpe3JldHVybiIlIisoKHQ9dC5jaGFyQ29kZUF0KDApKT4+NCYxNSkudG9TdHJpbmcoMTYpKygxNSZ0KS50b1N0cmluZygxNil9VG4ucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7dmFyIHQ9W10sZT10aGlzLmM7ZSYmdC5wdXNoKE9uKGUseG4sITApLCI6Iik7dmFyIG49dGhpcy5hO3JldHVybiFuJiYiZmlsZSIhPWV8fCh0LnB1c2goIi8vIiksKGU9dGhpcy5sKSYmdC5wdXNoKE9uKGUseG4sITApLCJAIiksdC5wdXNoKGVuY29kZVVSSUNvbXBvbmVudChTdHJpbmcobikpLnJlcGxhY2UoLyUyNShbMC05YS1mQS1GXXsyfSkvZywiJSQxIikpLG51bGwhPShuPXRoaXMuZykmJnQucHVzaCgiOiIsU3RyaW5nKG4pKSksKG49dGhpcy5mKSYmKHRoaXMuYSYmIi8iIT1uLmNoYXJBdCgwKSYmdC5wdXNoKCIvIiksdC5wdXNoKE9uKG4sIi8iPT1uLmNoYXJBdCgwKT9NbjpMbiwhMCkpKSwobj10aGlzLmIudG9TdHJpbmcoKSkmJnQucHVzaCgiPyIsbiksKG49dGhpcy5oKSYmdC5wdXNoKCIjIixPbihuLFVuKSksdC5qb2luKCIiKX0sVG4ucHJvdG90eXBlLnJlc29sdmU9ZnVuY3Rpb24odCl7dmFyIGU9bmV3IFRuKHRoaXMpLG49ISF0LmM7bj9FbihlLHQuYyk6bj0hIXQubCxuP2UubD10Lmw6bj0hIXQuYSxuP2UuYT10LmE6bj1udWxsIT10Lmc7dmFyIHI9dC5mO2lmKG4pU24oZSx0LmcpO2Vsc2UgaWYobj0hIXQuZilpZigiLyIhPXIuY2hhckF0KDApJiYodGhpcy5hJiYhdGhpcy5mP3I9Ii8iK3I6LTEhPShpPWUuZi5sYXN0SW5kZXhPZigiLyIpKSYmKHI9ZS5mLnN1YnN0cigwLGkrMSkrcikpLCIuLiI9PShpPXIpfHwiLiI9PWkpcj0iIjtlbHNlIGlmKHJ0KGksIi4vIil8fHJ0KGksIi8uIikpe2Zvcih2YXIgcj0wPT1pLmxhc3RJbmRleE9mKCIvIiwwKSxpPWkuc3BsaXQoIi8iKSxvPVtdLHM9MDtzPGkubGVuZ3RoOyl7dmFyIGE9aVtzKytdOyIuIj09YT9yJiZzPT1pLmxlbmd0aCYmby5wdXNoKCIiKToiLi4iPT1hPygoMTxvLmxlbmd0aHx8MT09by5sZW5ndGgmJiIiIT1vWzBdKSYmby5wb3AoKSxyJiZzPT1pLmxlbmd0aCYmby5wdXNoKCIiKSk6KG8ucHVzaChhKSxyPSEwKX1yPW8uam9pbigiLyIpfWVsc2Ugcj1pO3JldHVybiBuP2UuZj1yOm49IiIhPT10LmIudG9TdHJpbmcoKSxuP0NuKGUsSG4odC5iKSk6bj0hIXQuaCxuJiYoZS5oPXQuaCksZX07dmFyIHhuPS9bI1wvXD9AXS9nLExuPS9bI1w/Ol0vZyxNbj0vWyNcP10vZyxGbj0vWyNcP0BdL2csVW49LyMvZztmdW5jdGlvbiBqbih0LGUpe3RoaXMuYj10aGlzLmE9bnVsbCx0aGlzLmM9dHx8bnVsbCx0aGlzLmY9ISFlfWZ1bmN0aW9uIHFuKG4pe24uYXx8KG4uYT1uZXcgYm4sbi5iPTAsbi5jJiZmdW5jdGlvbih0LGUpe2lmKHQpe3Q9dC5zcGxpdCgiJiIpO2Zvcih2YXIgbj0wO248dC5sZW5ndGg7bisrKXt2YXIgcixpPXRbbl0uaW5kZXhPZigiPSIpLG89bnVsbDswPD1pPyhyPXRbbl0uc3Vic3RyaW5nKDAsaSksbz10W25dLnN1YnN0cmluZyhpKzEpKTpyPXRbbl0sZShyLG8/ZGVjb2RlVVJJQ29tcG9uZW50KG8ucmVwbGFjZSgvXCsvZywiICIpKToiIil9fX0obi5jLGZ1bmN0aW9uKHQsZSl7bi5hZGQoZGVjb2RlVVJJQ29tcG9uZW50KHQucmVwbGFjZSgvXCsvZywiICIpKSxlKX0pKX1mdW5jdGlvbiBWbih0KXt2YXIgZT1tbih0KTtpZih2b2lkIDA9PT1lKXRocm93IEVycm9yKCJLZXlzIGFyZSB1bmRlZmluZWQiKTt2YXIgbj1uZXcgam4obnVsbCx2b2lkIDApO3Q9eW4odCk7Zm9yKHZhciByPTA7cjxlLmxlbmd0aDtyKyspe3ZhciBpPWVbcl0sbz10W3JdO0FycmF5LmlzQXJyYXkobyk/V24obixpLG8pOm4uYWRkKGksbyl9cmV0dXJuIG59ZnVuY3Rpb24gQm4odCxlKXtxbih0KSxlPUduKHQsZSksX24odC5hLmIsZSkmJih0LmM9bnVsbCx0LmItPXQuYS5nZXQoZSkubGVuZ3RoLF9uKCh0PXQuYSkuYixlKSYmKGRlbGV0ZSB0LmJbZV0sdC5jLS0sdC5hLmxlbmd0aD4yKnQuYyYmd24odCkpKX1mdW5jdGlvbiBLbih0LGUpe3JldHVybiBxbih0KSxlPUduKHQsZSksX24odC5hLmIsZSl9ZnVuY3Rpb24gV24odCxlLG4pe0JuKHQsZSksMDxuLmxlbmd0aCYmKHQuYz1udWxsLHQuYS5zZXQoR24odCxlKSx6KG4pKSx0LmIrPW4ubGVuZ3RoKX1mdW5jdGlvbiBIbih0KXt2YXIgZT1uZXcgam47cmV0dXJuIGUuYz10LmMsdC5hJiYoZS5hPW5ldyBibih0LmEpLGUuYj10LmIpLGV9ZnVuY3Rpb24gR24odCxlKXtyZXR1cm4gZT1TdHJpbmcoZSksZT10LmY/ZS50b0xvd2VyQ2FzZSgpOmV9ZnVuY3Rpb24gem4odCl7dmFyIGU9W107cmV0dXJuIGZ1bmN0aW9uIHQoZSxuLHIpe2lmKG51bGw9PW4pci5wdXNoKCJudWxsIik7ZWxzZXtpZigib2JqZWN0Ij09dHlwZW9mIG4pe2lmKEFycmF5LmlzQXJyYXkobikpe3ZhciBpPW47bj1pLmxlbmd0aCxyLnB1c2goIlsiKTtmb3IodmFyIG89IiIscz0wO3M8bjtzKyspci5wdXNoKG8pLHQoZSxpW3NdLHIpLG89IiwiO3JldHVybiB2b2lkIHIucHVzaCgiXSIpfWlmKCEobiBpbnN0YW5jZW9mIFN0cmluZ3x8biBpbnN0YW5jZW9mIE51bWJlcnx8biBpbnN0YW5jZW9mIEJvb2xlYW4pKXtmb3IoaSBpbiByLnB1c2goInsiKSxvPSIiLG4pT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG4saSkmJihzPW5baV0sImZ1bmN0aW9uIiE9dHlwZW9mIHMmJihyLnB1c2gobyksSm4oaSxyKSxyLnB1c2goIjoiKSx0KGUscyxyKSxvPSIsIikpO3JldHVybiB2b2lkIHIucHVzaCgifSIpfW49bi52YWx1ZU9mKCl9c3dpdGNoKHR5cGVvZiBuKXtjYXNlInN0cmluZyI6Sm4obixyKTticmVhaztjYXNlIm51bWJlciI6ci5wdXNoKGlzRmluaXRlKG4pJiYhaXNOYU4obik/U3RyaW5nKG4pOiJudWxsIik7YnJlYWs7Y2FzZSJib29sZWFuIjpyLnB1c2goU3RyaW5nKG4pKTticmVhaztjYXNlImZ1bmN0aW9uIjpyLnB1c2goIm51bGwiKTticmVhaztkZWZhdWx0OnRocm93IEVycm9yKCJVbmtub3duIHR5cGU6ICIrdHlwZW9mIG4pfX19KG5ldyBRbix0LGUpLGUuam9pbigiIil9ZnVuY3Rpb24gUW4oKXt9KHQ9am4ucHJvdG90eXBlKS5hZGQ9ZnVuY3Rpb24odCxlKXtxbih0aGlzKSx0aGlzLmM9bnVsbCx0PUduKHRoaXMsdCk7dmFyIG49dGhpcy5hLmdldCh0KTtyZXR1cm4gbnx8dGhpcy5hLnNldCh0LG49W10pLG4ucHVzaChlKSx0aGlzLmIrPTEsdGhpc30sdC5jbGVhcj1mdW5jdGlvbigpe3RoaXMuYT10aGlzLmM9bnVsbCx0aGlzLmI9MH0sdC5mb3JFYWNoPWZ1bmN0aW9uKG4scil7cW4odGhpcyksdGhpcy5hLmZvckVhY2goZnVuY3Rpb24odCxlKXtqKHQsZnVuY3Rpb24odCl7bi5jYWxsKHIsdCxlLHRoaXMpfSx0aGlzKX0sdGhpcyl9LHQuWT1mdW5jdGlvbigpe3FuKHRoaXMpO2Zvcih2YXIgdD10aGlzLmEuVygpLGU9dGhpcy5hLlkoKSxuPVtdLHI9MDtyPGUubGVuZ3RoO3IrKylmb3IodmFyIGk9dFtyXSxvPTA7bzxpLmxlbmd0aDtvKyspbi5wdXNoKGVbcl0pO3JldHVybiBufSx0Llc9ZnVuY3Rpb24odCl7cW4odGhpcyk7dmFyIGU9W107aWYoInN0cmluZyI9PXR5cGVvZiB0KUtuKHRoaXMsdCkmJihlPUcoZSx0aGlzLmEuZ2V0KEduKHRoaXMsdCkpKSk7ZWxzZXt0PXRoaXMuYS5XKCk7Zm9yKHZhciBuPTA7bjx0Lmxlbmd0aDtuKyspZT1HKGUsdFtuXSl9cmV0dXJuIGV9LHQuc2V0PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHFuKHRoaXMpLHRoaXMuYz1udWxsLEtuKHRoaXMsdD1Hbih0aGlzLHQpKSYmKHRoaXMuYi09dGhpcy5hLmdldCh0KS5sZW5ndGgpLHRoaXMuYS5zZXQodCxbZV0pLHRoaXMuYis9MSx0aGlzfSx0LmdldD1mdW5jdGlvbih0LGUpe3JldHVybiB0JiYwPCh0PXRoaXMuVyh0KSkubGVuZ3RoP1N0cmluZyh0WzBdKTplfSx0LnRvU3RyaW5nPWZ1bmN0aW9uKCl7aWYodGhpcy5jKXJldHVybiB0aGlzLmM7aWYoIXRoaXMuYSlyZXR1cm4iIjtmb3IodmFyIHQ9W10sZT10aGlzLmEuWSgpLG49MDtuPGUubGVuZ3RoO24rKylmb3IodmFyIHI9ZVtuXSxpPWVuY29kZVVSSUNvbXBvbmVudChTdHJpbmcocikpLHI9dGhpcy5XKHIpLG89MDtvPHIubGVuZ3RoO28rKyl7dmFyIHM9aTsiIiE9PXJbb10mJihzKz0iPSIrZW5jb2RlVVJJQ29tcG9uZW50KFN0cmluZyhyW29dKSkpLHQucHVzaChzKX1yZXR1cm4gdGhpcy5jPXQuam9pbigiJiIpfTt2YXIgWW49eyciJzonXFwiJywiXFwiOiJcXFxcIiwiLyI6IlxcLyIsIlxiIjoiXFxiIiwiXGYiOiJcXGYiLCJcbiI6IlxcbiIsIlxyIjoiXFxyIiwiXHQiOiJcXHQiLCJcdiI6IlxcdTAwMGIifSxYbj0vXHVmZmZmLy50ZXN0KCLvv78iKT8vW1xcIlx4MDAtXHgxZlx4N2YtXHVmZmZmXS9nOi9bXFwiXHgwMC1ceDFmXHg3Zi1ceGZmXS9nO2Z1bmN0aW9uIEpuKHQsZSl7ZS5wdXNoKCciJyx0LnJlcGxhY2UoWG4sZnVuY3Rpb24odCl7dmFyIGU9WW5bdF07cmV0dXJuIGV8fChlPSJcXHUiKyg2NTUzNnx0LmNoYXJDb2RlQXQoMCkpLnRvU3RyaW5nKDE2KS5zdWJzdHIoMSksWW5bdF09ZSksZX0pLCciJyl9ZnVuY3Rpb24gJG4oKXt2YXIgdD15cigpO3JldHVybiBCdCYmJHQmJjExPT0kdHx8L0VkZ2VcL1xkKy8udGVzdCh0KX1mdW5jdGlvbiBabigpe3JldHVybiBsLndpbmRvdyYmbC53aW5kb3cubG9jYXRpb24uaHJlZnx8c2VsZiYmc2VsZi5sb2NhdGlvbiYmc2VsZi5sb2NhdGlvbi5ocmVmfHwiIn1mdW5jdGlvbiB0cih0LGUpe2U9ZXx8bC53aW5kb3c7dmFyIG49ImFib3V0OmJsYW5rIjt0JiYobj1DdChSdCh0KXx8RHQpKSxlLmxvY2F0aW9uLmhyZWY9bn1mdW5jdGlvbiBlcih0KXtyZXR1cm4hISgodD0odHx8eXIoKSkudG9Mb3dlckNhc2UoKSkubWF0Y2goL2FuZHJvaWQvKXx8dC5tYXRjaCgvd2Vib3MvKXx8dC5tYXRjaCgvaXBob25lfGlwYWR8aXBvZC8pfHx0Lm1hdGNoKC9ibGFja2JlcnJ5Lyl8fHQubWF0Y2goL3dpbmRvd3MgcGhvbmUvKXx8dC5tYXRjaCgvaWVtb2JpbGUvKSl9ZnVuY3Rpb24gbnIodCl7dD10fHxsLndpbmRvdzt0cnl7dC5jbG9zZSgpfWNhdGNoKHQpe319ZnVuY3Rpb24gcnIodCxlLG4pe3ZhciByPU1hdGguZmxvb3IoMWU5Kk1hdGgucmFuZG9tKCkpLnRvU3RyaW5nKCk7ZT1lfHw1MDAsbj1ufHw2MDA7dmFyIGk9KHdpbmRvdy5zY3JlZW4uYXZhaWxIZWlnaHQtbikvMixvPSh3aW5kb3cuc2NyZWVuLmF2YWlsV2lkdGgtZSkvMjtmb3IocyBpbiBlPXt3aWR0aDplLGhlaWdodDpuLHRvcDowPGk/aTowLGxlZnQ6MDxvP286MCxsb2NhdGlvbjohMCxyZXNpemFibGU6ITAsc3RhdHVzYmFyOiEwLHRvb2xiYXI6ITF9LG49eXIoKS50b0xvd2VyQ2FzZSgpLHImJihlLnRhcmdldD1yLHJ0KG4sImNyaW9zLyIpJiYoZS50YXJnZXQ9Il9ibGFuayIpKSxkcih5cigpKT09ZnImJih0PXR8fCJodHRwOi8vbG9jYWxob3N0IixlLnNjcm9sbGJhcnM9ITApLG49dHx8IiIsKHQ9ZSl8fCh0PXt9KSxyPXdpbmRvdyxlPW4gaW5zdGFuY2VvZiBTdD9uOlJ0KHZvaWQgMCE9PW4uaHJlZj9uLmhyZWY6U3RyaW5nKG4pKXx8RHQsbj10LnRhcmdldHx8bi50YXJnZXQsaT1bXSx0KXN3aXRjaChzKXtjYXNlIndpZHRoIjpjYXNlImhlaWdodCI6Y2FzZSJ0b3AiOmNhc2UibGVmdCI6aS5wdXNoKHMrIj0iK3Rbc10pO2JyZWFrO2Nhc2UidGFyZ2V0IjpjYXNlIm5vb3BlbmVyIjpjYXNlIm5vcmVmZXJyZXIiOmJyZWFrO2RlZmF1bHQ6aS5wdXNoKHMrIj0iKyh0W3NdPzE6MCkpfXZhciBzPWkuam9pbigiLCIpO2lmKChzdCgiaVBob25lIikmJiFzdCgiaVBvZCIpJiYhc3QoImlQYWQiKXx8c3QoImlQYWQiKXx8c3QoImlQb2QiKSkmJnIubmF2aWdhdG9yJiZyLm5hdmlnYXRvci5zdGFuZGFsb25lJiZuJiYiX3NlbGYiIT1uPyhmdChzPXNlKGRvY3VtZW50LCJBIiksIkhUTUxBbmNob3JFbGVtZW50IiksZT1lIGluc3RhbmNlb2YgU3Q/ZTpQdChlKSxzLmhyZWY9Q3QoZSkscy5zZXRBdHRyaWJ1dGUoInRhcmdldCIsbiksdC5ub3JlZmVycmVyJiZzLnNldEF0dHJpYnV0ZSgicmVsIiwibm9yZWZlcnJlciIpLCh0PWRvY3VtZW50LmNyZWF0ZUV2ZW50KCJNb3VzZUV2ZW50IikpLmluaXRNb3VzZUV2ZW50KCJjbGljayIsITAsITAsciwxKSxzLmRpc3BhdGNoRXZlbnQodCkscz17fSk6dC5ub3JlZmVycmVyPyhzPU10KCIiLHIsbixzKSx0PUN0KGUpLHMmJihXdCYmcnQodCwiOyIpJiYodD0iJyIrdC5yZXBsYWNlKC8nL2csIiUyNyIpKyInIikscy5vcGVuZXI9bnVsbCx0PSc8bWV0YSBuYW1lPSJyZWZlcnJlciIgY29udGVudD0ibm8tcmVmZXJyZXIiPjxtZXRhIGh0dHAtZXF1aXY9InJlZnJlc2giIGNvbnRlbnQ9IjA7IHVybD0nK1V0KHQpKyciPicsdD1uZXcgeHQodD0ocj1tdCgpKT9yLmNyZWF0ZUhUTUwodCk6dCwwLEx0KSxyPXMuZG9jdW1lbnQpJiYoci53cml0ZSgobz10KWluc3RhbmNlb2YgeHQmJm8uY29uc3RydWN0b3I9PT14dD9vLmE6KE8oImV4cGVjdGVkIG9iamVjdCBvZiB0eXBlIFNhZmVIdG1sLCBnb3QgJyIrbysiJyBvZiB0eXBlICIrcChvKSksInR5cGVfZXJyb3I6U2FmZUh0bWwiKSksci5jbG9zZSgpKSk6KHM9TXQoZSxyLG4scykpJiZ0Lm5vb3BlbmVyJiYocy5vcGVuZXI9bnVsbCkscyl0cnl7cy5mb2N1cygpfWNhdGNoKHQpe31yZXR1cm4gc312YXIgaXI9L15cZHsxLDN9XC5cZHsxLDN9XC5cZHsxLDN9XC5cZHsxLDN9JC8sb3I9L15bXkBdK0BbXkBdKyQvO2Z1bmN0aW9uIHNyKCl7dmFyIGU9bnVsbDtyZXR1cm4gbmV3IGZlKGZ1bmN0aW9uKHQpeyJjb21wbGV0ZSI9PWwuZG9jdW1lbnQucmVhZHlTdGF0ZT90KCk6KGU9ZnVuY3Rpb24oKXt0KCl9LHRuKHdpbmRvdywibG9hZCIsZSkpfSkubyhmdW5jdGlvbih0KXt0aHJvdyBlbih3aW5kb3csImxvYWQiLGUpLHR9KX1mdW5jdGlvbiBhcih0KXtyZXR1cm4gdD10fHx5cigpLCEoImZpbGU6IiE9PUlyKCkmJiJpb25pYzoiIT09SXIoKXx8IXQudG9Mb3dlckNhc2UoKS5tYXRjaCgvaXBob25lfGlwYWR8aXBvZHxhbmRyb2lkLykpfWZ1bmN0aW9uIHVyKCl7dmFyIHQ9bC53aW5kb3c7dHJ5e3JldHVybiB0JiZ0IT10LnRvcH1jYXRjaCh0KXtyZXR1cm59fWZ1bmN0aW9uIGNyKCl7cmV0dXJuIHZvaWQgMCE9PWwuV29ya2VyR2xvYmFsU2NvcGUmJiJmdW5jdGlvbiI9PXR5cGVvZiBsLmltcG9ydFNjcmlwdHN9ZnVuY3Rpb24gaHIoKXtyZXR1cm4gWGwuSU5URVJOQUwuaGFzT3duUHJvcGVydHkoInJlYWN0TmF0aXZlIik/IlJlYWN0TmF0aXZlIjpYbC5JTlRFUk5BTC5oYXNPd25Qcm9wZXJ0eSgibm9kZSIpPyJOb2RlIjpjcigpPyJXb3JrZXIiOiJCcm93c2VyIn1mdW5jdGlvbiBscigpe3ZhciB0PWhyKCk7cmV0dXJuIlJlYWN0TmF0aXZlIj09PXR8fCJOb2RlIj09PXR9dmFyIGZyPSJGaXJlZm94Iixwcj0iQ2hyb21lIjtmdW5jdGlvbiBkcih0KXt2YXIgZT10LnRvTG93ZXJDYXNlKCk7cmV0dXJuIHJ0KGUsIm9wZXJhLyIpfHxydChlLCJvcHIvIil8fHJ0KGUsIm9waW9zLyIpPyJPcGVyYSI6cnQoZSwiaWVtb2JpbGUiKT8iSUVNb2JpbGUiOnJ0KGUsIm1zaWUiKXx8cnQoZSwidHJpZGVudC8iKT8iSUUiOnJ0KGUsImVkZ2UvIik/IkVkZ2UiOnJ0KGUsImZpcmVmb3gvIik/ZnI6cnQoZSwic2lsay8iKT8iU2lsayI6cnQoZSwiYmxhY2tiZXJyeSIpPyJCbGFja2JlcnJ5IjpydChlLCJ3ZWJvcyIpPyJXZWJvcyI6IXJ0KGUsInNhZmFyaS8iKXx8cnQoZSwiY2hyb21lLyIpfHxydChlLCJjcmlvcy8iKXx8cnQoZSwiYW5kcm9pZCIpPyFydChlLCJjaHJvbWUvIikmJiFydChlLCJjcmlvcy8iKXx8cnQoZSwiZWRnZS8iKT9ydChlLCJhbmRyb2lkIik/IkFuZHJvaWQiOih0PXQubWF0Y2goLyhbYS16QS1aXGRcLl0rKVwvW2EtekEtWlxkXC5dKiQvKSkmJjI9PXQubGVuZ3RoP3RbMV06Ik90aGVyIjpwcjoiU2FmYXJpIn12YXIgdnI9e21kOiJGaXJlYmFzZUNvcmUtd2ViIixvZDoiRmlyZWJhc2VVSS13ZWIifTtmdW5jdGlvbiBncih0LGUpe2U9ZXx8W107dmFyIG4scj1bXSxpPXt9O2ZvcihuIGluIHZyKWlbdnJbbl1dPSEwO2ZvcihuPTA7bjxlLmxlbmd0aDtuKyspdm9pZCAwIT09aVtlW25dXSYmKGRlbGV0ZSBpW2Vbbl1dLHIucHVzaChlW25dKSk7cmV0dXJuIHIuc29ydCgpLChlPXIpLmxlbmd0aHx8KGU9WyJGaXJlYmFzZUNvcmUtd2ViIl0pLCJCcm93c2VyIj09PShyPWhyKCkpP3I9ZHIoaT15cigpKToiV29ya2VyIj09PXImJihyPWRyKGk9eXIoKSkrIi0iK3IpLHIrIi9Kc0NvcmUvIit0KyIvIitlLmpvaW4oIiwiKX1mdW5jdGlvbiB5cigpe3JldHVybiBsLm5hdmlnYXRvciYmbC5uYXZpZ2F0b3IudXNlckFnZW50fHwiIn1mdW5jdGlvbiBtcih0LGUpe3Q9dC5zcGxpdCgiLiIpLGU9ZXx8bDtmb3IodmFyIG49MDtuPHQubGVuZ3RoJiYib2JqZWN0Ij09dHlwZW9mIGUmJm51bGwhPWU7bisrKWU9ZVt0W25dXTtyZXR1cm4gZT1uIT10Lmxlbmd0aD92b2lkIDA6ZX1mdW5jdGlvbiBicigpe3RyeXt2YXIgdD1sLmxvY2FsU3RvcmFnZSxlPU5yKCk7aWYodClyZXR1cm4gdC5zZXRJdGVtKGUsIjEiKSx0LnJlbW92ZUl0ZW0oZSksISRuKCl8fCEhbC5pbmRleGVkREJ9Y2F0Y2godCl7cmV0dXJuIGNyKCkmJiEhbC5pbmRleGVkREJ9cmV0dXJuITF9ZnVuY3Rpb24gd3IoKXtyZXR1cm4oX3IoKXx8ImNocm9tZS1leHRlbnNpb246Ij09PUlyKCl8fGFyKCkpJiYhbHIoKSYmYnIoKSYmIWNyKCl9ZnVuY3Rpb24gX3IoKXtyZXR1cm4iaHR0cDoiPT09SXIoKXx8Imh0dHBzOiI9PT1JcigpfWZ1bmN0aW9uIElyKCl7cmV0dXJuIGwubG9jYXRpb24mJmwubG9jYXRpb24ucHJvdG9jb2x8fG51bGx9ZnVuY3Rpb24gVHIodCl7cmV0dXJuIWVyKHQ9dHx8eXIoKSkmJmRyKHQpIT1mcn1mdW5jdGlvbiBFcih0KXtyZXR1cm4gdm9pZCAwPT09dD9udWxsOnpuKHQpfWZ1bmN0aW9uIFNyKHQpe3ZhciBlLG49e307Zm9yKGUgaW4gdCl0Lmhhc093blByb3BlcnR5KGUpJiZudWxsIT09dFtlXSYmdm9pZCAwIT09dFtlXSYmKG5bZV09dFtlXSk7cmV0dXJuIG59ZnVuY3Rpb24gQ3IodCl7aWYobnVsbCE9PXQpcmV0dXJuIEpTT04ucGFyc2UodCl9ZnVuY3Rpb24gTnIodCl7cmV0dXJuIHR8fE1hdGguZmxvb3IoMWU5Kk1hdGgucmFuZG9tKCkpLnRvU3RyaW5nKCl9ZnVuY3Rpb24gQXIodCl7cmV0dXJuIlNhZmFyaSIhPWRyKHQ9dHx8eXIoKSkmJiF0LnRvTG93ZXJDYXNlKCkubWF0Y2goL2lwaG9uZXxpcGFkfGlwb2QvKX1mdW5jdGlvbiBrcigpe3ZhciB0PWwuX19fanNsO2lmKHQmJnQuSClmb3IodmFyIGUgaW4gdC5IKWlmKHQuSFtlXS5yPXQuSFtlXS5yfHxbXSx0LkhbZV0uTD10LkhbZV0uTHx8W10sdC5IW2VdLnI9dC5IW2VdLkwuY29uY2F0KCksdC5DUClmb3IodmFyIG49MDtuPHQuQ1AubGVuZ3RoO24rKyl0LkNQW25dPW51bGx9ZnVuY3Rpb24gUnIodCxlKXtpZihlPHQpdGhyb3cgRXJyb3IoIlNob3J0IGRlbGF5IHNob3VsZCBiZSBsZXNzIHRoYW4gbG9uZyBkZWxheSEiKTt0aGlzLmE9dCx0aGlzLmM9ZSx0PXlyKCksZT1ocigpLHRoaXMuYj1lcih0KXx8IlJlYWN0TmF0aXZlIj09PWV9ZnVuY3Rpb24gUHIoKXt2YXIgdD1sLmRvY3VtZW50O3JldHVybiF0fHx2b2lkIDA9PT10LnZpc2liaWxpdHlTdGF0ZXx8InZpc2libGUiPT10LnZpc2liaWxpdHlTdGF0ZX1mdW5jdGlvbiBPcigpe3ZhciBlPWwuZG9jdW1lbnQsbj1udWxsO3JldHVybiBQcigpfHwhZT9iZSgpOm5ldyBmZShmdW5jdGlvbih0KXtuPWZ1bmN0aW9uKCl7UHIoKSYmKGUucmVtb3ZlRXZlbnRMaXN0ZW5lcigidmlzaWJpbGl0eWNoYW5nZSIsbiwhMSksdCgpKX0sZS5hZGRFdmVudExpc3RlbmVyKCJ2aXNpYmlsaXR5Y2hhbmdlIixuLCExKX0pLm8oZnVuY3Rpb24odCl7dGhyb3cgZS5yZW1vdmVFdmVudExpc3RlbmVyKCJ2aXNpYmlsaXR5Y2hhbmdlIixuLCExKSx0fSl9ZnVuY3Rpb24gRHIodCl7dHJ5e3ZhciBlPW5ldyBEYXRlKHBhcnNlSW50KHQsMTApKTtpZighaXNOYU4oZS5nZXRUaW1lKCkpJiYhL1teMC05XS8udGVzdCh0KSlyZXR1cm4gZS50b1VUQ1N0cmluZygpfWNhdGNoKHQpe31yZXR1cm4gbnVsbH1mdW5jdGlvbiB4cigpe3JldHVybiBtcigiZmlyZWF1dGgub2F1dGhoZWxwZXIiLGwpfHxtcigiZmlyZWF1dGguaWZyYW1lIixsKX1Sci5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKCl7dmFyIHQ9bC5uYXZpZ2F0b3I7cmV0dXJuIXR8fCJib29sZWFuIiE9dHlwZW9mIHQub25MaW5lfHwhX3IoKSYmImNocm9tZS1leHRlbnNpb246IiE9PUlyKCkmJnZvaWQgMD09PXQuY29ubmVjdGlvbnx8dC5vbkxpbmU/dGhpcy5iP3RoaXMuYzp0aGlzLmE6TWF0aC5taW4oNWUzLHRoaXMuYSl9O3ZhciBMcixNcj17fTtmdW5jdGlvbiBGcih0KXtNclt0XXx8KE1yW3RdPSEwLCJ1bmRlZmluZWQiIT10eXBlb2YgY29uc29sZSYmImZ1bmN0aW9uIj09dHlwZW9mIGNvbnNvbGUud2FybiYmY29uc29sZS53YXJuKHQpKX10cnl7dmFyIFVyPXt9O09iamVjdC5kZWZpbmVQcm9wZXJ0eShVciwiYWJjZCIse2NvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiEwLHZhbHVlOjF9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoVXIsImFiY2QiLHtjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMCx2YWx1ZToyfSksTHI9Mj09VXIuYWJjZH1jYXRjaCh0KXtMcj0hMX1mdW5jdGlvbiBqcih0LGUsbil7THI/T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsZSx7Y29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITAsdmFsdWU6bn0pOnRbZV09bn1mdW5jdGlvbiBxcih0LGUpe2lmKGUpZm9yKHZhciBuIGluIGUpZS5oYXNPd25Qcm9wZXJ0eShuKSYmanIodCxuLGVbbl0pfWZ1bmN0aW9uIFZyKHQpe3ZhciBlPXt9O3JldHVybiBxcihlLHQpLGV9ZnVuY3Rpb24gQnIodCl7dmFyIGU9dDtpZigib2JqZWN0Ij09dHlwZW9mIHQmJm51bGwhPXQpZm9yKHZhciBuIGluIGU9Imxlbmd0aCJpbiB0P1tdOnt9LHQpanIoZSxuLEJyKHRbbl0pKTtyZXR1cm4gZX1mdW5jdGlvbiBLcih0KXt2YXIgZT10JiYodFtRcl0/InBob25lIjpudWxsKTtpZighKGUmJnQmJnRbenJdKSl0aHJvdyBuZXcgSSgiaW50ZXJuYWwtZXJyb3IiLCJJbnRlcm5hbCBhc3NlcnQ6IGludmFsaWQgTXVsdGlGYWN0b3JJbmZvIG9iamVjdCIpO2pyKHRoaXMsInVpZCIsdFt6cl0pLGpyKHRoaXMsImRpc3BsYXlOYW1lIix0W0hyXXx8bnVsbCk7dmFyIG49bnVsbDtqcih0aGlzLCJlbnJvbGxtZW50VGltZSIsbj10W0dyXT9uZXcgRGF0ZSh0W0dyXSkudG9VVENTdHJpbmcoKTpuKSxqcih0aGlzLCJmYWN0b3JJZCIsZSl9ZnVuY3Rpb24gV3IodCl7dHJ5e3ZhciBlPW5ldyBZcih0KX1jYXRjaCh0KXtlPW51bGx9cmV0dXJuIGV9S3IucHJvdG90eXBlLnc9ZnVuY3Rpb24oKXtyZXR1cm57dWlkOnRoaXMudWlkLGRpc3BsYXlOYW1lOnRoaXMuZGlzcGxheU5hbWUsZmFjdG9ySWQ6dGhpcy5mYWN0b3JJZCxlbnJvbGxtZW50VGltZTp0aGlzLmVucm9sbG1lbnRUaW1lfX07dmFyIEhyPSJkaXNwbGF5TmFtZSIsR3I9ImVucm9sbGVkQXQiLHpyPSJtZmFFbnJvbGxtZW50SWQiLFFyPSJwaG9uZUluZm8iO2Z1bmN0aW9uIFlyKHQpe0tyLmNhbGwodGhpcyx0KSxqcih0aGlzLCJwaG9uZU51bWJlciIsdFtRcl0pfWZ1bmN0aW9uIFhyKHQpe3ZhciBlPXt9LG49dFt0aV0scj10W25pXSxpPXRbcmldO2lmKHQ9V3IodFtlaV0pLCFpfHxpIT0kciYmaSE9WnImJiFufHxpPT1aciYmIXJ8fGk9PUpyJiYhdCl0aHJvdyBFcnJvcigiSW52YWxpZCBjaGVja0FjdGlvbkNvZGUgcmVzcG9uc2UhIik7aT09WnI/KGVbb2ldPW58fG51bGwsZVthaV09bnx8bnVsbCxlW2lpXT1yKTooZVtvaV09cnx8bnVsbCxlW2FpXT1yfHxudWxsLGVbaWldPW58fG51bGwpLGVbc2ldPXR8fG51bGwsanIodGhpcyxjaSxpKSxqcih0aGlzLHVpLEJyKGUpKX13KFlyLEtyKSxZci5wcm90b3R5cGUudz1mdW5jdGlvbigpe3ZhciB0PVlyLmFiLncuY2FsbCh0aGlzKTtyZXR1cm4gdC5waG9uZU51bWJlcj10aGlzLnBob25lTnVtYmVyLHR9O3ZhciBKcj0iUkVWRVJUX1NFQ09ORF9GQUNUT1JfQURESVRJT04iLCRyPSJFTUFJTF9TSUdOSU4iLFpyPSJWRVJJRllfQU5EX0NIQU5HRV9FTUFJTCIsdGk9ImVtYWlsIixlaT0ibWZhSW5mbyIsbmk9Im5ld0VtYWlsIixyaT0icmVxdWVzdFR5cGUiLGlpPSJlbWFpbCIsb2k9ImZyb21FbWFpbCIsc2k9Im11bHRpRmFjdG9ySW5mbyIsYWk9InByZXZpb3VzRW1haWwiLHVpPSJkYXRhIixjaT0ib3BlcmF0aW9uIjtmdW5jdGlvbiBoaSh0KXt2YXIgZT1Bbih0PWtuKHQpLGxpKXx8bnVsbCxuPUFuKHQsZmkpfHxudWxsLHI9KHI9QW4odCx2aSl8fG51bGwpJiZ5aVtyXXx8bnVsbDtpZighZXx8IW58fCFyKXRocm93IG5ldyBJKCJhcmd1bWVudC1lcnJvciIsbGkrIiwgIitmaSsiYW5kICIrdmkrIiBhcmUgcmVxdWlyZWQgaW4gYSB2YWxpZCBhY3Rpb24gY29kZSBVUkwuIik7cXIodGhpcyx7YXBpS2V5OmUsb3BlcmF0aW9uOnIsY29kZTpuLGNvbnRpbnVlVXJsOkFuKHQscGkpfHxudWxsLGxhbmd1YWdlQ29kZTpBbih0LGRpKXx8bnVsbCx0ZW5hbnRJZDpBbih0LGdpKXx8bnVsbH0pfXZhciBsaT0iYXBpS2V5IixmaT0ib29iQ29kZSIscGk9ImNvbnRpbnVlVXJsIixkaT0ibGFuZ3VhZ2VDb2RlIix2aT0ibW9kZSIsZ2k9InRlbmFudElkIix5aT17cmVjb3ZlckVtYWlsOiJSRUNPVkVSX0VNQUlMIixyZXNldFBhc3N3b3JkOiJQQVNTV09SRF9SRVNFVCIscmV2ZXJ0U2Vjb25kRmFjdG9yQWRkaXRpb246SnIsc2lnbkluOiRyLHZlcmlmeUFuZENoYW5nZUVtYWlsOlpyLHZlcmlmeUVtYWlsOiJWRVJJRllfRU1BSUwifTtmdW5jdGlvbiBtaSh0KXt0cnl7cmV0dXJuIG5ldyBoaSh0KX1jYXRjaCh0KXtyZXR1cm4gbnVsbH19ZnVuY3Rpb24gYmkodCl7aWYodm9pZCAwPT09KGU9dFtFaV0pKXRocm93IG5ldyBJKCJtaXNzaW5nLWNvbnRpbnVlLXVyaSIpO2lmKCJzdHJpbmciIT10eXBlb2YgZXx8InN0cmluZyI9PXR5cGVvZiBlJiYhZS5sZW5ndGgpdGhyb3cgbmV3IEkoImludmFsaWQtY29udGludWUtdXJpIik7aWYodGhpcy5oPWUsdGhpcy5iPXRoaXMuYT1udWxsLHRoaXMuZz0hMSwocj10W3dpXSkmJiJvYmplY3QiPT10eXBlb2Ygcil7dmFyIGU9cltOaV0sbj1yW1NpXSxyPXJbQ2ldO2lmKCJzdHJpbmciPT10eXBlb2YgZSYmZS5sZW5ndGgpe2lmKHRoaXMuYT1lLHZvaWQgMCE9PW4mJiJib29sZWFuIiE9dHlwZW9mIG4pdGhyb3cgbmV3IEkoImFyZ3VtZW50LWVycm9yIixTaSsiIHByb3BlcnR5IG11c3QgYmUgYSBib29sZWFuIHdoZW4gc3BlY2lmaWVkLiIpO2lmKHRoaXMuZz0hIW4sdm9pZCAwIT09ciYmKCJzdHJpbmciIT10eXBlb2Ygcnx8InN0cmluZyI9PXR5cGVvZiByJiYhci5sZW5ndGgpKXRocm93IG5ldyBJKCJhcmd1bWVudC1lcnJvciIsQ2krIiBwcm9wZXJ0eSBtdXN0IGJlIGEgbm9uIGVtcHR5IHN0cmluZyB3aGVuIHNwZWNpZmllZC4iKTt0aGlzLmI9cnx8bnVsbH1lbHNle2lmKHZvaWQgMCE9PWUpdGhyb3cgbmV3IEkoImFyZ3VtZW50LWVycm9yIixOaSsiIHByb3BlcnR5IG11c3QgYmUgYSBub24gZW1wdHkgc3RyaW5nIHdoZW4gc3BlY2lmaWVkLiIpO2lmKHZvaWQgMCE9PW58fHZvaWQgMCE9PXIpdGhyb3cgbmV3IEkoIm1pc3NpbmctYW5kcm9pZC1wa2ctbmFtZSIpfX1lbHNlIGlmKHZvaWQgMCE9PXIpdGhyb3cgbmV3IEkoImFyZ3VtZW50LWVycm9yIix3aSsiIHByb3BlcnR5IG11c3QgYmUgYSBub24gbnVsbCBvYmplY3Qgd2hlbiBzcGVjaWZpZWQuIik7aWYodGhpcy5mPW51bGwsKGU9dFtUaV0pJiYib2JqZWN0Ij09dHlwZW9mIGUpe2lmKCJzdHJpbmciPT10eXBlb2YoZT1lW0FpXSkmJmUubGVuZ3RoKXRoaXMuZj1lO2Vsc2UgaWYodm9pZCAwIT09ZSl0aHJvdyBuZXcgSSgiYXJndW1lbnQtZXJyb3IiLEFpKyIgcHJvcGVydHkgbXVzdCBiZSBhIG5vbiBlbXB0eSBzdHJpbmcgd2hlbiBzcGVjaWZpZWQuIil9ZWxzZSBpZih2b2lkIDAhPT1lKXRocm93IG5ldyBJKCJhcmd1bWVudC1lcnJvciIsVGkrIiBwcm9wZXJ0eSBtdXN0IGJlIGEgbm9uIG51bGwgb2JqZWN0IHdoZW4gc3BlY2lmaWVkLiIpO2lmKHZvaWQgMCE9PShlPXRbSWldKSYmImJvb2xlYW4iIT10eXBlb2YgZSl0aHJvdyBuZXcgSSgiYXJndW1lbnQtZXJyb3IiLElpKyIgcHJvcGVydHkgbXVzdCBiZSBhIGJvb2xlYW4gd2hlbiBzcGVjaWZpZWQuIik7aWYodGhpcy5jPSEhZSx2b2lkIDAhPT0odD10W19pXSkmJigic3RyaW5nIiE9dHlwZW9mIHR8fCJzdHJpbmciPT10eXBlb2YgdCYmIXQubGVuZ3RoKSl0aHJvdyBuZXcgSSgiYXJndW1lbnQtZXJyb3IiLF9pKyIgcHJvcGVydHkgbXVzdCBiZSBhIG5vbiBlbXB0eSBzdHJpbmcgd2hlbiBzcGVjaWZpZWQuIik7dGhpcy5pPXR8fG51bGx9dmFyIHdpPSJhbmRyb2lkIixfaT0iZHluYW1pY0xpbmtEb21haW4iLElpPSJoYW5kbGVDb2RlSW5BcHAiLFRpPSJpT1MiLEVpPSJ1cmwiLFNpPSJpbnN0YWxsQXBwIixDaT0ibWluaW11bVZlcnNpb24iLE5pPSJwYWNrYWdlTmFtZSIsQWk9ImJ1bmRsZUlkIjtmdW5jdGlvbiBraSh0KXt2YXIgZSxuPXt9O2ZvcihlIGluIG4uY29udGludWVVcmw9dC5oLG4uY2FuSGFuZGxlQ29kZUluQXBwPXQuYywobi5hbmRyb2lkUGFja2FnZU5hbWU9dC5hKSYmKG4uYW5kcm9pZE1pbmltdW1WZXJzaW9uPXQuYixuLmFuZHJvaWRJbnN0YWxsQXBwPXQuZyksbi5pT1NCdW5kbGVJZD10LmYsbi5keW5hbWljTGlua0RvbWFpbj10LmksbiludWxsPT09bltlXSYmZGVsZXRlIG5bZV07cmV0dXJuIG59dmFyIFJpPW51bGw7ZnVuY3Rpb24gUGkodCl7dmFyIGU9W107cmV0dXJuIGZ1bmN0aW9uKHIsdCl7ZnVuY3Rpb24gZSh0KXtmb3IoO2k8ci5sZW5ndGg7KXt2YXIgZT1yLmNoYXJBdChpKyspLG49UmlbZV07aWYobnVsbCE9bilyZXR1cm4gbjtpZighL15bXHNceGEwXSokLy50ZXN0KGUpKXRocm93IEVycm9yKCJVbmtub3duIGJhc2U2NCBlbmNvZGluZyBhdCBjaGFyOiAiK2UpfXJldHVybiB0fSFmdW5jdGlvbigpe2lmKCFSaSl7Umk9e307Zm9yKHZhciB0PSJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSIuc3BsaXQoIiIpLGU9WyIrLz0iLCIrLyIsIi1fPSIsIi1fLiIsIi1fIl0sbj0wO248NTtuKyspZm9yKHZhciByPXQuY29uY2F0KGVbbl0uc3BsaXQoIiIpKSxpPTA7aTxyLmxlbmd0aDtpKyspe3ZhciBvPXJbaV07dm9pZCAwPT09Umlbb10mJihSaVtvXT1pKX19fSgpO2Zvcih2YXIgaT0wOzspe3ZhciBuPWUoLTEpLG89ZSgwKSxzPWUoNjQpLGE9ZSg2NCk7aWYoNjQ9PT1hJiYtMT09PW4pYnJlYWs7dChuPDwyfG8+PjQpLDY0IT1zJiYodChvPDw0JjI0MHxzPj4yKSw2NCE9YSYmdChzPDw2JjE5MnxhKSl9fSh0LGZ1bmN0aW9uKHQpe2UucHVzaCh0KX0pLGV9ZnVuY3Rpb24gT2kodCl7dmFyIGU9eGkodCk7aWYoIShlJiZlLnN1YiYmZS5pc3MmJmUuYXVkJiZlLmV4cCkpdGhyb3cgRXJyb3IoIkludmFsaWQgSldUIik7dGhpcy5oPXQsdGhpcy5hPWUuZXhwLHRoaXMuaT1lLnN1Yix0PURhdGUubm93KCkvMWUzLHRoaXMuZz1lLmlhdHx8KHQ+dGhpcy5hP3RoaXMuYTp0KSx0aGlzLmI9ZS5wcm92aWRlcl9pZHx8ZS5maXJlYmFzZSYmZS5maXJlYmFzZS5zaWduX2luX3Byb3ZpZGVyfHxudWxsLHRoaXMuZj1lLmZpcmViYXNlJiZlLmZpcmViYXNlLnRlbmFudHx8bnVsbCx0aGlzLmM9ISFlLmlzX2Fub255bW91c3x8ImFub255bW91cyI9PXRoaXMuYn1mdW5jdGlvbiBEaSh0KXt0cnl7cmV0dXJuIG5ldyBPaSh0KX1jYXRjaCh0KXtyZXR1cm4gbnVsbH19ZnVuY3Rpb24geGkodCl7aWYoIXQpcmV0dXJuIG51bGw7aWYoMyE9KHQ9dC5zcGxpdCgiLiIpKS5sZW5ndGgpcmV0dXJuIG51bGw7Zm9yKHZhciBlPSg0LSh0PXRbMV0pLmxlbmd0aCU0KSU0LG49MDtuPGU7bisrKXQrPSIuIjt0cnl7dmFyIHI9UGkodCk7Zm9yKHQ9W10sbj1lPTA7ZTxyLmxlbmd0aDspe3ZhciBpLG8scyxhPXJbZSsrXTthPDEyOD90W24rK109U3RyaW5nLmZyb21DaGFyQ29kZShhKToxOTE8YSYmYTwyMjQ/KGk9cltlKytdLHRbbisrXT1TdHJpbmcuZnJvbUNoYXJDb2RlKCgzMSZhKTw8Nnw2MyZpKSk6MjM5PGEmJmE8MzY1PyhzPSgoNyZhKTw8MTh8KDYzJihpPXJbZSsrXSkpPDwxMnwoNjMmKG89cltlKytdKSk8PDZ8NjMmcltlKytdKS02NTUzNix0W24rK109U3RyaW5nLmZyb21DaGFyQ29kZSg1NTI5Nisocz4+MTApKSx0W24rK109U3RyaW5nLmZyb21DaGFyQ29kZSg1NjMyMCsoMTAyMyZzKSkpOihpPXJbZSsrXSxvPXJbZSsrXSx0W24rK109U3RyaW5nLmZyb21DaGFyQ29kZSgoMTUmYSk8PDEyfCg2MyZpKTw8Nnw2MyZvKSl9cmV0dXJuIEpTT04ucGFyc2UodC5qb2luKCIiKSl9Y2F0Y2godCl7fXJldHVybiBudWxsfU9pLnByb3RvdHlwZS5UPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZn0sT2kucHJvdG90eXBlLmw9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jfSxPaS5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5ofTt2YXIgTGk9Im9hdXRoX2NvbnN1bWVyX2tleSBvYXV0aF9ub25jZSBvYXV0aF9zaWduYXR1cmUgb2F1dGhfc2lnbmF0dXJlX21ldGhvZCBvYXV0aF90aW1lc3RhbXAgb2F1dGhfdG9rZW4gb2F1dGhfdmVyc2lvbiIuc3BsaXQoIiAiKSxNaT1bImNsaWVudF9pZCIsInJlc3BvbnNlX3R5cGUiLCJzY29wZSIsInJlZGlyZWN0X3VyaSIsInN0YXRlIl0sRmk9e25kOntKYToibG9jYWxlIix1YTo3MDAsdGE6NjAwLGZhOiJmYWNlYm9vay5jb20iLFhhOk1pfSxwZDp7SmE6bnVsbCx1YTo1MDAsdGE6NzUwLGZhOiJnaXRodWIuY29tIixYYTpNaX0scWQ6e0phOiJobCIsdWE6NTE1LHRhOjY4MCxmYToiZ29vZ2xlLmNvbSIsWGE6TWl9LHdkOntKYToibGFuZyIsdWE6NDg1LHRhOjcwNSxmYToidHdpdHRlci5jb20iLFhhOkxpfSxrZDp7SmE6ImxvY2FsZSIsdWE6NjQwLHRhOjYwMCxmYToiYXBwbGUuY29tIixYYTpbXX19O2Z1bmN0aW9uIFVpKHQpe2Zvcih2YXIgZSBpbiBGaSlpZihGaVtlXS5mYT09dClyZXR1cm4gRmlbZV07cmV0dXJuIG51bGx9ZnVuY3Rpb24gamkodCl7dmFyIGU9e307ZVsiZmFjZWJvb2suY29tIl09V2ksZVsiZ29vZ2xlLmNvbSJdPUdpLGVbImdpdGh1Yi5jb20iXT1IaSxlWyJ0d2l0dGVyLmNvbSJdPXppO3ZhciBuPXQmJnRbVmldO3RyeXtpZihuKXJldHVybiBuZXcoZVtuXXx8S2kpKHQpO2lmKHZvaWQgMCE9PXRbcWldKXJldHVybiBuZXcgQmkodCl9Y2F0Y2godCl7fXJldHVybiBudWxsfXZhciBxaT0iaWRUb2tlbiIsVmk9InByb3ZpZGVySWQiO2Z1bmN0aW9uIEJpKHQpe3ZhciBlLG49dFtWaV07aWYobnx8IXRbcWldfHwoZT1EaSh0W3FpXSkpJiZlLmImJihuPWUuYiksIW4pdGhyb3cgRXJyb3IoIkludmFsaWQgYWRkaXRpb25hbCB1c2VyIGluZm8hIik7ImFub255bW91cyIhPW4mJiJjdXN0b20iIT1ufHwobj1udWxsKSxlPSExLHZvaWQgMCE9PXQuaXNOZXdVc2VyP2U9ISF0LmlzTmV3VXNlcjoiaWRlbnRpdHl0b29sa2l0I1NpZ251cE5ld1VzZXJSZXNwb25zZSI9PT10LmtpbmQmJihlPSEwKSxqcih0aGlzLCJwcm92aWRlcklkIixuKSxqcih0aGlzLCJpc05ld1VzZXIiLGUpfWZ1bmN0aW9uIEtpKHQpe0JpLmNhbGwodGhpcyx0KSxqcih0aGlzLCJwcm9maWxlIixCcigodD1Dcih0LnJhd1VzZXJJbmZvfHwie30iKSl8fHt9KSl9ZnVuY3Rpb24gV2kodCl7aWYoS2kuY2FsbCh0aGlzLHQpLCJmYWNlYm9vay5jb20iIT10aGlzLnByb3ZpZGVySWQpdGhyb3cgRXJyb3IoIkludmFsaWQgcHJvdmlkZXIgSUQhIil9ZnVuY3Rpb24gSGkodCl7aWYoS2kuY2FsbCh0aGlzLHQpLCJnaXRodWIuY29tIiE9dGhpcy5wcm92aWRlcklkKXRocm93IEVycm9yKCJJbnZhbGlkIHByb3ZpZGVyIElEISIpO2pyKHRoaXMsInVzZXJuYW1lIix0aGlzLnByb2ZpbGUmJnRoaXMucHJvZmlsZS5sb2dpbnx8bnVsbCl9ZnVuY3Rpb24gR2kodCl7aWYoS2kuY2FsbCh0aGlzLHQpLCJnb29nbGUuY29tIiE9dGhpcy5wcm92aWRlcklkKXRocm93IEVycm9yKCJJbnZhbGlkIHByb3ZpZGVyIElEISIpfWZ1bmN0aW9uIHppKHQpe2lmKEtpLmNhbGwodGhpcyx0KSwidHdpdHRlci5jb20iIT10aGlzLnByb3ZpZGVySWQpdGhyb3cgRXJyb3IoIkludmFsaWQgcHJvdmlkZXIgSUQhIik7anIodGhpcywidXNlcm5hbWUiLHQuc2NyZWVuTmFtZXx8bnVsbCl9ZnVuY3Rpb24gUWkodCl7dmFyIGU9QW4ocj1rbih0KSwibGluayIpLG49QW4oa24oZSksImxpbmsiKSxyPUFuKHIsImRlZXBfbGlua19pZCIpO3JldHVybiBBbihrbihyKSwibGluayIpfHxyfHxufHxlfHx0fWZ1bmN0aW9uIFlpKHQsZSl7aWYoIXQmJiFlKXRocm93IG5ldyBJKCJpbnRlcm5hbC1lcnJvciIsIkludGVybmFsIGFzc2VydDogbm8gcmF3IHNlc3Npb24gc3RyaW5nIGF2YWlsYWJsZSIpO2lmKHQmJmUpdGhyb3cgbmV3IEkoImludGVybmFsLWVycm9yIiwiSW50ZXJuYWwgYXNzZXJ0OiB1bmFibGUgdG8gZGV0ZXJtaW5lIHRoZSBzZXNzaW9uIHR5cGUiKTt0aGlzLmE9dHx8bnVsbCx0aGlzLmI9ZXx8bnVsbCx0aGlzLnR5cGU9dGhpcy5hP1hpOkppfXcoS2ksQmkpLHcoV2ksS2kpLHcoSGksS2kpLHcoR2ksS2kpLHcoemksS2kpO3ZhciBYaT0iZW5yb2xsIixKaT0ic2lnbmluIjtmdW5jdGlvbiAkaSgpe31mdW5jdGlvbiBaaSh0LG4pe3JldHVybiB0LnRoZW4oZnVuY3Rpb24odCl7aWYodFtCc10pe3ZhciBlPURpKHRbQnNdKTtpZighZXx8biE9ZS5pKXRocm93IG5ldyBJKCJ1c2VyLW1pc21hdGNoIik7cmV0dXJuIHR9dGhyb3cgbmV3IEkoInVzZXItbWlzbWF0Y2giKX0pLm8oZnVuY3Rpb24odCl7dGhyb3cgdCYmdC5jb2RlJiZ0LmNvZGU9PVMrInVzZXItbm90LWZvdW5kIj9uZXcgSSgidXNlci1taXNtYXRjaCIpOnR9KX1mdW5jdGlvbiB0byh0LGUpe2lmKCFlKXRocm93IG5ldyBJKCJpbnRlcm5hbC1lcnJvciIsImZhaWxlZCB0byBjb25zdHJ1Y3QgYSBjcmVkZW50aWFsIik7dGhpcy5hPWUsanIodGhpcywicHJvdmlkZXJJZCIsdCksanIodGhpcywic2lnbkluTWV0aG9kIix0KX1mdW5jdGlvbiBlbyh0KXtyZXR1cm57cGVuZGluZ1Rva2VuOnQuYSxyZXF1ZXN0VXJpOiJodHRwOi8vbG9jYWxob3N0In19ZnVuY3Rpb24gbm8odCl7aWYodCYmdC5wcm92aWRlcklkJiZ0LnNpZ25Jbk1ldGhvZCYmMD09dC5wcm92aWRlcklkLmluZGV4T2YoInNhbWwuIikmJnQucGVuZGluZ1Rva2VuKXRyeXtyZXR1cm4gbmV3IHRvKHQucHJvdmlkZXJJZCx0LnBlbmRpbmdUb2tlbil9Y2F0Y2godCl7fXJldHVybiBudWxsfWZ1bmN0aW9uIHJvKHQsZSxuKXtpZih0aGlzLmE9bnVsbCxlLmlkVG9rZW58fGUuYWNjZXNzVG9rZW4pZS5pZFRva2VuJiZqcih0aGlzLCJpZFRva2VuIixlLmlkVG9rZW4pLGUuYWNjZXNzVG9rZW4mJmpyKHRoaXMsImFjY2Vzc1Rva2VuIixlLmFjY2Vzc1Rva2VuKSxlLm5vbmNlJiYhZS5wZW5kaW5nVG9rZW4mJmpyKHRoaXMsIm5vbmNlIixlLm5vbmNlKSxlLnBlbmRpbmdUb2tlbiYmKHRoaXMuYT1lLnBlbmRpbmdUb2tlbik7ZWxzZXtpZighZS5vYXV0aFRva2VufHwhZS5vYXV0aFRva2VuU2VjcmV0KXRocm93IG5ldyBJKCJpbnRlcm5hbC1lcnJvciIsImZhaWxlZCB0byBjb25zdHJ1Y3QgYSBjcmVkZW50aWFsIik7anIodGhpcywiYWNjZXNzVG9rZW4iLGUub2F1dGhUb2tlbiksanIodGhpcywic2VjcmV0IixlLm9hdXRoVG9rZW5TZWNyZXQpfWpyKHRoaXMsInByb3ZpZGVySWQiLHQpLGpyKHRoaXMsInNpZ25Jbk1ldGhvZCIsbil9ZnVuY3Rpb24gaW8odCl7dmFyIGU9e307cmV0dXJuIHQuaWRUb2tlbiYmKGUuaWRfdG9rZW49dC5pZFRva2VuKSx0LmFjY2Vzc1Rva2VuJiYoZS5hY2Nlc3NfdG9rZW49dC5hY2Nlc3NUb2tlbiksdC5zZWNyZXQmJihlLm9hdXRoX3Rva2VuX3NlY3JldD10LnNlY3JldCksZS5wcm92aWRlcklkPXQucHJvdmlkZXJJZCx0Lm5vbmNlJiYhdC5hJiYoZS5ub25jZT10Lm5vbmNlKSxlPXtwb3N0Qm9keTpWbihlKS50b1N0cmluZygpLHJlcXVlc3RVcmk6Imh0dHA6Ly9sb2NhbGhvc3QifSx0LmEmJihkZWxldGUgZS5wb3N0Qm9keSxlLnBlbmRpbmdUb2tlbj10LmEpLGV9ZnVuY3Rpb24gb28odCl7aWYodCYmdC5wcm92aWRlcklkJiZ0LnNpZ25Jbk1ldGhvZCl7dmFyIGU9e2lkVG9rZW46dC5vYXV0aElkVG9rZW4sYWNjZXNzVG9rZW46dC5vYXV0aFRva2VuU2VjcmV0P251bGw6dC5vYXV0aEFjY2Vzc1Rva2VuLG9hdXRoVG9rZW5TZWNyZXQ6dC5vYXV0aFRva2VuU2VjcmV0LG9hdXRoVG9rZW46dC5vYXV0aFRva2VuU2VjcmV0JiZ0Lm9hdXRoQWNjZXNzVG9rZW4sbm9uY2U6dC5ub25jZSxwZW5kaW5nVG9rZW46dC5wZW5kaW5nVG9rZW59O3RyeXtyZXR1cm4gbmV3IHJvKHQucHJvdmlkZXJJZCxlLHQuc2lnbkluTWV0aG9kKX1jYXRjaCh0KXt9fXJldHVybiBudWxsfWZ1bmN0aW9uIHNvKHQsZSl7dGhpcy5RYz1lfHxbXSxxcih0aGlzLHtwcm92aWRlcklkOnQsaXNPQXV0aFByb3ZpZGVyOiEwfSksdGhpcy5JYj17fSx0aGlzLnBiPShVaSh0KXx8e30pLkphfHxudWxsLHRoaXMub2I9bnVsbH1mdW5jdGlvbiBhbyh0KXtpZigic3RyaW5nIiE9dHlwZW9mIHR8fDAhPXQuaW5kZXhPZigic2FtbC4iKSl0aHJvdyBuZXcgSSgiYXJndW1lbnQtZXJyb3IiLCdTQU1MIHByb3ZpZGVyIElEcyBtdXN0IGJlIHByZWZpeGVkIHdpdGggInNhbWwuIicpO3NvLmNhbGwodGhpcyx0LFtdKX1mdW5jdGlvbiB1byh0KXtzby5jYWxsKHRoaXMsdCxNaSksdGhpcy5hPVtdfWZ1bmN0aW9uIGNvKCl7dW8uY2FsbCh0aGlzLCJmYWNlYm9vay5jb20iKX1mdW5jdGlvbiBobyh0KXtpZighdCl0aHJvdyBuZXcgSSgiYXJndW1lbnQtZXJyb3IiLCJjcmVkZW50aWFsIGZhaWxlZDogZXhwZWN0ZWQgMSBhcmd1bWVudCAodGhlIE9BdXRoIGFjY2VzcyB0b2tlbikuIik7dmFyIGU9dDtyZXR1cm4gZyh0KSYmKGU9dC5hY2Nlc3NUb2tlbiksKG5ldyBjbykuY3JlZGVudGlhbCh7YWNjZXNzVG9rZW46ZX0pfWZ1bmN0aW9uIGxvKCl7dW8uY2FsbCh0aGlzLCJnaXRodWIuY29tIil9ZnVuY3Rpb24gZm8odCl7aWYoIXQpdGhyb3cgbmV3IEkoImFyZ3VtZW50LWVycm9yIiwiY3JlZGVudGlhbCBmYWlsZWQ6IGV4cGVjdGVkIDEgYXJndW1lbnQgKHRoZSBPQXV0aCBhY2Nlc3MgdG9rZW4pLiIpO3ZhciBlPXQ7cmV0dXJuIGcodCkmJihlPXQuYWNjZXNzVG9rZW4pLChuZXcgbG8pLmNyZWRlbnRpYWwoe2FjY2Vzc1Rva2VuOmV9KX1mdW5jdGlvbiBwbygpe3VvLmNhbGwodGhpcywiZ29vZ2xlLmNvbSIpLHRoaXMuQ2EoInByb2ZpbGUiKX1mdW5jdGlvbiB2byh0LGUpe3ZhciBuPXQ7cmV0dXJuIGcodCkmJihuPXQuaWRUb2tlbixlPXQuYWNjZXNzVG9rZW4pLChuZXcgcG8pLmNyZWRlbnRpYWwoe2lkVG9rZW46bixhY2Nlc3NUb2tlbjplfSl9ZnVuY3Rpb24gZ28oKXtzby5jYWxsKHRoaXMsInR3aXR0ZXIuY29tIixMaSl9ZnVuY3Rpb24geW8odCxlKXt2YXIgbj10O2lmKCEobj0hZyhuKT97b2F1dGhUb2tlbjp0LG9hdXRoVG9rZW5TZWNyZXQ6ZX06bikub2F1dGhUb2tlbnx8IW4ub2F1dGhUb2tlblNlY3JldCl0aHJvdyBuZXcgSSgiYXJndW1lbnQtZXJyb3IiLCJjcmVkZW50aWFsIGZhaWxlZDogZXhwZWN0ZWQgMiBhcmd1bWVudHMgKHRoZSBPQXV0aCBhY2Nlc3MgdG9rZW4gYW5kIHNlY3JldCkuIik7cmV0dXJuIG5ldyBybygidHdpdHRlci5jb20iLG4sInR3aXR0ZXIuY29tIil9ZnVuY3Rpb24gbW8odCxlLG4pe3RoaXMuYT10LHRoaXMuZj1lLGpyKHRoaXMsInByb3ZpZGVySWQiLCJwYXNzd29yZCIpLGpyKHRoaXMsInNpZ25Jbk1ldGhvZCIsbj09PXdvLkVNQUlMX0xJTktfU0lHTl9JTl9NRVRIT0Q/d28uRU1BSUxfTElOS19TSUdOX0lOX01FVEhPRDp3by5FTUFJTF9QQVNTV09SRF9TSUdOX0lOX01FVEhPRCl9ZnVuY3Rpb24gYm8odCl7cmV0dXJuIHQmJnQuZW1haWwmJnQucGFzc3dvcmQ/bmV3IG1vKHQuZW1haWwsdC5wYXNzd29yZCx0LnNpZ25Jbk1ldGhvZCk6bnVsbH1mdW5jdGlvbiB3bygpe3FyKHRoaXMse3Byb3ZpZGVySWQ6InBhc3N3b3JkIixpc09BdXRoUHJvdmlkZXI6ITF9KX1mdW5jdGlvbiBfbyh0LGUpe2lmKCEoZT1JbyhlKSkpdGhyb3cgbmV3IEkoImFyZ3VtZW50LWVycm9yIiwiSW52YWxpZCBlbWFpbCBsaW5rISIpO3JldHVybiBuZXcgbW8odCxlLmNvZGUsd28uRU1BSUxfTElOS19TSUdOX0lOX01FVEhPRCl9ZnVuY3Rpb24gSW8odCl7cmV0dXJuKHQ9bWkodD1RaSh0KSkpJiZ0Lm9wZXJhdGlvbj09PSRyP3Q6bnVsbH1mdW5jdGlvbiBUbyh0KXtpZighKHQuZWImJnQuY2J8fHQuTGEmJnQuZWEpKXRocm93IG5ldyBJKCJpbnRlcm5hbC1lcnJvciIpO3RoaXMuYT10LGpyKHRoaXMsInByb3ZpZGVySWQiLCJwaG9uZSIpLHRoaXMuZmE9InBob25lIixqcih0aGlzLCJzaWduSW5NZXRob2QiLCJwaG9uZSIpfWZ1bmN0aW9uIEVvKGUpe2lmKGUmJiJwaG9uZSI9PT1lLnByb3ZpZGVySWQmJihlLnZlcmlmaWNhdGlvbklkJiZlLnZlcmlmaWNhdGlvbkNvZGV8fGUudGVtcG9yYXJ5UHJvb2YmJmUucGhvbmVOdW1iZXIpKXt2YXIgbj17fTtyZXR1cm4gaihbInZlcmlmaWNhdGlvbklkIiwidmVyaWZpY2F0aW9uQ29kZSIsInRlbXBvcmFyeVByb29mIiwicGhvbmVOdW1iZXIiXSxmdW5jdGlvbih0KXtlW3RdJiYoblt0XT1lW3RdKX0pLG5ldyBUbyhuKX1yZXR1cm4gbnVsbH1mdW5jdGlvbiBTbyh0KXtyZXR1cm4gdC5hLkxhJiZ0LmEuZWE/e3RlbXBvcmFyeVByb29mOnQuYS5MYSxwaG9uZU51bWJlcjp0LmEuZWF9OntzZXNzaW9uSW5mbzp0LmEuZWIsY29kZTp0LmEuY2J9fWZ1bmN0aW9uIENvKHQpe3RyeXt0aGlzLmE9dHx8WGwuYXV0aCgpfWNhdGNoKHQpe3Rocm93IG5ldyBJKCJhcmd1bWVudC1lcnJvciIsIkVpdGhlciBhbiBpbnN0YW5jZSBvZiBmaXJlYmFzZS5hdXRoLkF1dGggbXVzdCBiZSBwYXNzZWQgYXMgYW4gYXJndW1lbnQgdG8gdGhlIGZpcmViYXNlLmF1dGguUGhvbmVBdXRoUHJvdmlkZXIgY29uc3RydWN0b3IsIG9yIHRoZSBkZWZhdWx0IGZpcmViYXNlIEFwcCBpbnN0YW5jZSBtdXN0IGJlIGluaXRpYWxpemVkIHZpYSBmaXJlYmFzZS5pbml0aWFsaXplQXBwKCkuIil9cXIodGhpcyx7cHJvdmlkZXJJZDoicGhvbmUiLGlzT0F1dGhQcm92aWRlcjohMX0pfWZ1bmN0aW9uIE5vKHQsZSl7aWYoIXQpdGhyb3cgbmV3IEkoIm1pc3NpbmctdmVyaWZpY2F0aW9uLWlkIik7aWYoIWUpdGhyb3cgbmV3IEkoIm1pc3NpbmctdmVyaWZpY2F0aW9uLWNvZGUiKTtyZXR1cm4gbmV3IFRvKHtlYjp0LGNiOmV9KX1mdW5jdGlvbiBBbyh0KXtpZih0LnRlbXBvcmFyeVByb29mJiZ0LnBob25lTnVtYmVyKXJldHVybiBuZXcgVG8oe0xhOnQudGVtcG9yYXJ5UHJvb2YsZWE6dC5waG9uZU51bWJlcn0pO3ZhciBlPXQmJnQucHJvdmlkZXJJZDtpZighZXx8InBhc3N3b3JkIj09PWUpcmV0dXJuIG51bGw7dmFyIG49dCYmdC5vYXV0aEFjY2Vzc1Rva2VuLHI9dCYmdC5vYXV0aFRva2VuU2VjcmV0LGk9dCYmdC5ub25jZSxvPXQmJnQub2F1dGhJZFRva2VuLHM9dCYmdC5wZW5kaW5nVG9rZW47dHJ5e3N3aXRjaChlKXtjYXNlImdvb2dsZS5jb20iOnJldHVybiB2byhvLG4pO2Nhc2UiZmFjZWJvb2suY29tIjpyZXR1cm4gaG8obik7Y2FzZSJnaXRodWIuY29tIjpyZXR1cm4gZm8obik7Y2FzZSJ0d2l0dGVyLmNvbSI6cmV0dXJuIHlvKG4scik7ZGVmYXVsdDpyZXR1cm4gbnx8cnx8b3x8cz9zPzA9PWUuaW5kZXhPZigic2FtbC4iKT9uZXcgdG8oZSxzKTpuZXcgcm8oZSx7cGVuZGluZ1Rva2VuOnMsaWRUb2tlbjp0Lm9hdXRoSWRUb2tlbixhY2Nlc3NUb2tlbjp0Lm9hdXRoQWNjZXNzVG9rZW59LGUpOm5ldyB1byhlKS5jcmVkZW50aWFsKHtpZFRva2VuOm8sYWNjZXNzVG9rZW46bixyYXdOb25jZTppfSk6bnVsbH19Y2F0Y2godCl7cmV0dXJuIG51bGx9fWZ1bmN0aW9uIGtvKHQpe2lmKCF0LmlzT0F1dGhQcm92aWRlcil0aHJvdyBuZXcgSSgiaW52YWxpZC1vYXV0aC1wcm92aWRlciIpfWZ1bmN0aW9uIFJvKHQsZSxuLHIsaSxvLHMpe2lmKHRoaXMuYz10LHRoaXMuYj1lfHxudWxsLHRoaXMuZz1ufHxudWxsLHRoaXMuZj1yfHxudWxsLHRoaXMuaT1vfHxudWxsLHRoaXMuaD1zfHxudWxsLHRoaXMuYT1pfHxudWxsLCF0aGlzLmcmJiF0aGlzLmEpdGhyb3cgbmV3IEkoImludmFsaWQtYXV0aC1ldmVudCIpO2lmKHRoaXMuZyYmdGhpcy5hKXRocm93IG5ldyBJKCJpbnZhbGlkLWF1dGgtZXZlbnQiKTtpZih0aGlzLmcmJiF0aGlzLmYpdGhyb3cgbmV3IEkoImludmFsaWQtYXV0aC1ldmVudCIpfWZ1bmN0aW9uIFBvKHQpe3JldHVybih0PXR8fHt9KS50eXBlP25ldyBSbyh0LnR5cGUsdC5ldmVudElkLHQudXJsUmVzcG9uc2UsdC5zZXNzaW9uSWQsdC5lcnJvciYmVCh0LmVycm9yKSx0LnBvc3RCb2R5LHQudGVuYW50SWQpOm51bGx9ZnVuY3Rpb24gT28oKXt0aGlzLmI9bnVsbCx0aGlzLmE9W119WWkucHJvdG90eXBlLkhhPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuYT9iZSh0aGlzLmEpOmJlKHRoaXMuYil9LFlpLnByb3RvdHlwZS53PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudHlwZT09WGk/e211bHRpRmFjdG9yU2Vzc2lvbjp7aWRUb2tlbjp0aGlzLmF9fTp7bXVsdGlGYWN0b3JTZXNzaW9uOntwZW5kaW5nQ3JlZGVudGlhbDp0aGlzLmJ9fX0sJGkucHJvdG90eXBlLmthPWZ1bmN0aW9uKCl7fSwkaS5wcm90b3R5cGUuYj1mdW5jdGlvbigpe30sJGkucHJvdG90eXBlLmM9ZnVuY3Rpb24oKXt9LCRpLnByb3RvdHlwZS53PWZ1bmN0aW9uKCl7fSx0by5wcm90b3R5cGUua2E9ZnVuY3Rpb24odCl7cmV0dXJuIGhhKHQsZW8odGhpcykpfSx0by5wcm90b3R5cGUuYj1mdW5jdGlvbih0LGUpe3ZhciBuPWVvKHRoaXMpO3JldHVybiBuLmlkVG9rZW49ZSxsYSh0LG4pfSx0by5wcm90b3R5cGUuYz1mdW5jdGlvbih0LGUpe3JldHVybiBaaShmYSh0LGVvKHRoaXMpKSxlKX0sdG8ucHJvdG90eXBlLnc9ZnVuY3Rpb24oKXtyZXR1cm57cHJvdmlkZXJJZDp0aGlzLnByb3ZpZGVySWQsc2lnbkluTWV0aG9kOnRoaXMuc2lnbkluTWV0aG9kLHBlbmRpbmdUb2tlbjp0aGlzLmF9fSxyby5wcm90b3R5cGUua2E9ZnVuY3Rpb24odCl7cmV0dXJuIGhhKHQsaW8odGhpcykpfSxyby5wcm90b3R5cGUuYj1mdW5jdGlvbih0LGUpe3ZhciBuPWlvKHRoaXMpO3JldHVybiBuLmlkVG9rZW49ZSxsYSh0LG4pfSxyby5wcm90b3R5cGUuYz1mdW5jdGlvbih0LGUpe3JldHVybiBaaShmYSh0LGlvKHRoaXMpKSxlKX0scm8ucHJvdG90eXBlLnc9ZnVuY3Rpb24oKXt2YXIgdD17cHJvdmlkZXJJZDp0aGlzLnByb3ZpZGVySWQsc2lnbkluTWV0aG9kOnRoaXMuc2lnbkluTWV0aG9kfTtyZXR1cm4gdGhpcy5pZFRva2VuJiYodC5vYXV0aElkVG9rZW49dGhpcy5pZFRva2VuKSx0aGlzLmFjY2Vzc1Rva2VuJiYodC5vYXV0aEFjY2Vzc1Rva2VuPXRoaXMuYWNjZXNzVG9rZW4pLHRoaXMuc2VjcmV0JiYodC5vYXV0aFRva2VuU2VjcmV0PXRoaXMuc2VjcmV0KSx0aGlzLm5vbmNlJiYodC5ub25jZT10aGlzLm5vbmNlKSx0aGlzLmEmJih0LnBlbmRpbmdUb2tlbj10aGlzLmEpLHR9LHNvLnByb3RvdHlwZS5LYT1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5JYj1jdCh0KSx0aGlzfSx3KGFvLHNvKSx3KHVvLHNvKSx1by5wcm90b3R5cGUuQ2E9ZnVuY3Rpb24odCl7cmV0dXJuIEsodGhpcy5hLHQpfHx0aGlzLmEucHVzaCh0KSx0aGlzfSx1by5wcm90b3R5cGUuUWI9ZnVuY3Rpb24oKXtyZXR1cm4geih0aGlzLmEpfSx1by5wcm90b3R5cGUuY3JlZGVudGlhbD1mdW5jdGlvbih0LGUpe2U9Zyh0KT97aWRUb2tlbjp0LmlkVG9rZW58fG51bGwsYWNjZXNzVG9rZW46dC5hY2Nlc3NUb2tlbnx8bnVsbCxub25jZTp0LnJhd05vbmNlfHxudWxsfTp7aWRUb2tlbjp0fHxudWxsLGFjY2Vzc1Rva2VuOmV8fG51bGx9O2lmKCFlLmlkVG9rZW4mJiFlLmFjY2Vzc1Rva2VuKXRocm93IG5ldyBJKCJhcmd1bWVudC1lcnJvciIsImNyZWRlbnRpYWwgZmFpbGVkOiBtdXN0IHByb3ZpZGUgdGhlIElEIHRva2VuIGFuZC9vciB0aGUgYWNjZXNzIHRva2VuLiIpO3JldHVybiBuZXcgcm8odGhpcy5wcm92aWRlcklkLGUsdGhpcy5wcm92aWRlcklkKX0sdyhjbyx1byksanIoY28sIlBST1ZJREVSX0lEIiwiZmFjZWJvb2suY29tIiksanIoY28sIkZBQ0VCT09LX1NJR05fSU5fTUVUSE9EIiwiZmFjZWJvb2suY29tIiksdyhsbyx1byksanIobG8sIlBST1ZJREVSX0lEIiwiZ2l0aHViLmNvbSIpLGpyKGxvLCJHSVRIVUJfU0lHTl9JTl9NRVRIT0QiLCJnaXRodWIuY29tIiksdyhwbyx1byksanIocG8sIlBST1ZJREVSX0lEIiwiZ29vZ2xlLmNvbSIpLGpyKHBvLCJHT09HTEVfU0lHTl9JTl9NRVRIT0QiLCJnb29nbGUuY29tIiksdyhnbyxzbyksanIoZ28sIlBST1ZJREVSX0lEIiwidHdpdHRlci5jb20iKSxqcihnbywiVFdJVFRFUl9TSUdOX0lOX01FVEhPRCIsInR3aXR0ZXIuY29tIiksbW8ucHJvdG90eXBlLmthPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnNpZ25Jbk1ldGhvZD09d28uRU1BSUxfTElOS19TSUdOX0lOX01FVEhPRD96YSh0LHdhLHtlbWFpbDp0aGlzLmEsb29iQ29kZTp0aGlzLmZ9KTp6YSh0LEJhLHtlbWFpbDp0aGlzLmEscGFzc3dvcmQ6dGhpcy5mfSl9LG1vLnByb3RvdHlwZS5iPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMuc2lnbkluTWV0aG9kPT13by5FTUFJTF9MSU5LX1NJR05fSU5fTUVUSE9EP3phKHQsX2Ese2lkVG9rZW46ZSxlbWFpbDp0aGlzLmEsb29iQ29kZTp0aGlzLmZ9KTp6YSh0LHhhLHtpZFRva2VuOmUsZW1haWw6dGhpcy5hLHBhc3N3b3JkOnRoaXMuZn0pfSxtby5wcm90b3R5cGUuYz1mdW5jdGlvbih0LGUpe3JldHVybiBaaSh0aGlzLmthKHQpLGUpfSxtby5wcm90b3R5cGUudz1mdW5jdGlvbigpe3JldHVybntlbWFpbDp0aGlzLmEscGFzc3dvcmQ6dGhpcy5mLHNpZ25Jbk1ldGhvZDp0aGlzLnNpZ25Jbk1ldGhvZH19LHFyKHdvLHtQUk9WSURFUl9JRDoicGFzc3dvcmQifSkscXIod28se0VNQUlMX0xJTktfU0lHTl9JTl9NRVRIT0Q6ImVtYWlsTGluayJ9KSxxcih3byx7RU1BSUxfUEFTU1dPUkRfU0lHTl9JTl9NRVRIT0Q6InBhc3N3b3JkIn0pLFRvLnByb3RvdHlwZS5rYT1mdW5jdGlvbih0KXtyZXR1cm4gdC5mYihTbyh0aGlzKSl9LFRvLnByb3RvdHlwZS5iPWZ1bmN0aW9uKHQsZSl7dmFyIG49U28odGhpcyk7cmV0dXJuIG4uaWRUb2tlbj1lLHphKHQsV2Esbil9LFRvLnByb3RvdHlwZS5jPWZ1bmN0aW9uKHQsZSl7dmFyIG49U28odGhpcyk7cmV0dXJuIG4ub3BlcmF0aW9uPSJSRUFVVEgiLFppKHQ9emEodCxIYSxuKSxlKX0sVG8ucHJvdG90eXBlLnc9ZnVuY3Rpb24oKXt2YXIgdD17cHJvdmlkZXJJZDoicGhvbmUifTtyZXR1cm4gdGhpcy5hLmViJiYodC52ZXJpZmljYXRpb25JZD10aGlzLmEuZWIpLHRoaXMuYS5jYiYmKHQudmVyaWZpY2F0aW9uQ29kZT10aGlzLmEuY2IpLHRoaXMuYS5MYSYmKHQudGVtcG9yYXJ5UHJvb2Y9dGhpcy5hLkxhKSx0aGlzLmEuZWEmJih0LnBob25lTnVtYmVyPXRoaXMuYS5lYSksdH0sQ28ucHJvdG90eXBlLmZiPWZ1bmN0aW9uKHIsaSl7dmFyIG89dGhpcy5hLmE7cmV0dXJuIGJlKGkudmVyaWZ5KCkpLnRoZW4oZnVuY3Rpb24obil7aWYoInN0cmluZyIhPXR5cGVvZiBuKXRocm93IG5ldyBJKCJhcmd1bWVudC1lcnJvciIsIkFuIGltcGxlbWVudGF0aW9uIG9mIGZpcmViYXNlLmF1dGguQXBwbGljYXRpb25WZXJpZmllci5wcm90b3R5cGUudmVyaWZ5KCkgbXVzdCByZXR1cm4gYSBmaXJlYmFzZS5Qcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2l0aCBhIHN0cmluZy4iKTtpZigicmVjYXB0Y2hhIiE9PWkudHlwZSl0aHJvdyBuZXcgSSgiYXJndW1lbnQtZXJyb3IiLCdPbmx5IGZpcmViYXNlLmF1dGguQXBwbGljYXRpb25WZXJpZmllcnMgd2l0aCB0eXBlPSJyZWNhcHRjaGEiIGFyZSBjdXJyZW50bHkgc3VwcG9ydGVkLicpO3ZhciB0PWcocik/ci5zZXNzaW9uOm51bGwsZT1nKHIpP3IucGhvbmVOdW1iZXI6cix0PXQmJnQudHlwZT09WGk/dC5IYSgpLnRoZW4oZnVuY3Rpb24odCl7cmV0dXJuIHphKG8sTWEse2lkVG9rZW46dCxwaG9uZUVucm9sbG1lbnRJbmZvOntwaG9uZU51bWJlcjplLHJlY2FwdGNoYVRva2VuOm59fSkudGhlbihmdW5jdGlvbih0KXtyZXR1cm4gdC5waG9uZVNlc3Npb25JbmZvLnNlc3Npb25JbmZvfSl9KTp0JiZ0LnR5cGU9PUppP3QuSGEoKS50aGVuKGZ1bmN0aW9uKHQpe3JldHVybiBlPW8sdD17bWZhUGVuZGluZ0NyZWRlbnRpYWw6dCxtZmFFbnJvbGxtZW50SWQ6ci5tdWx0aUZhY3RvckhpbnQmJnIubXVsdGlGYWN0b3JIaW50LnVpZHx8ci5tdWx0aUZhY3RvclVpZCxwaG9uZVNpZ25JbkluZm86e3JlY2FwdGNoYVRva2VuOm59fSx6YShlLEZhLHQpLnRoZW4oZnVuY3Rpb24odCl7cmV0dXJuIHQucGhvbmVSZXNwb25zZUluZm8uc2Vzc2lvbkluZm99KTt2YXIgZX0pOnphKG8sT2Ese3Bob25lTnVtYmVyOmUscmVjYXB0Y2hhVG9rZW46bn0pO3JldHVybiB0LnRoZW4oZnVuY3Rpb24odCl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIGkucmVzZXQmJmkucmVzZXQoKSx0fSxmdW5jdGlvbih0KXt0aHJvdyJmdW5jdGlvbiI9PXR5cGVvZiBpLnJlc2V0JiZpLnJlc2V0KCksdH0pfSl9LHFyKENvLHtQUk9WSURFUl9JRDoicGhvbmUifSkscXIoQ28se1BIT05FX1NJR05fSU5fTUVUSE9EOiJwaG9uZSJ9KSxSby5wcm90b3R5cGUuZ2V0VWlkPWZ1bmN0aW9uKCl7dmFyIHQ9W107cmV0dXJuIHQucHVzaCh0aGlzLmMpLHRoaXMuYiYmdC5wdXNoKHRoaXMuYiksdGhpcy5mJiZ0LnB1c2godGhpcy5mKSx0aGlzLmgmJnQucHVzaCh0aGlzLmgpLHQuam9pbigiLSIpfSxSby5wcm90b3R5cGUuVD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmh9LFJvLnByb3RvdHlwZS53PWZ1bmN0aW9uKCl7cmV0dXJue3R5cGU6dGhpcy5jLGV2ZW50SWQ6dGhpcy5iLHVybFJlc3BvbnNlOnRoaXMuZyxzZXNzaW9uSWQ6dGhpcy5mLHBvc3RCb2R5OnRoaXMuaSx0ZW5hbnRJZDp0aGlzLmgsZXJyb3I6dGhpcy5hJiZ0aGlzLmEudygpfX07dmFyIERvLHhvPW51bGw7ZnVuY3Rpb24gTG8odCl7dmFyIGU9InVuYXV0aG9yaXplZC1kb21haW4iLG49dm9pZCAwLHI9a24odCk7dD1yLmEsImNocm9tZS1leHRlbnNpb24iPT0ocj1yLmMpP249RnQoIlRoaXMgY2hyb21lIGV4dGVuc2lvbiBJRCAoY2hyb21lLWV4dGVuc2lvbjovLyVzKSBpcyBub3QgYXV0aG9yaXplZCB0byBydW4gdGhpcyBvcGVyYXRpb24uIEFkZCBpdCB0byB0aGUgT0F1dGggcmVkaXJlY3QgZG9tYWlucyBsaXN0IGluIHRoZSBGaXJlYmFzZSBjb25zb2xlIC0+IEF1dGggc2VjdGlvbiAtPiBTaWduIGluIG1ldGhvZCB0YWIuIix0KToiaHR0cCI9PXJ8fCJodHRwcyI9PXI/bj1GdCgiVGhpcyBkb21haW4gKCVzKSBpcyBub3QgYXV0aG9yaXplZCB0byBydW4gdGhpcyBvcGVyYXRpb24uIEFkZCBpdCB0byB0aGUgT0F1dGggcmVkaXJlY3QgZG9tYWlucyBsaXN0IGluIHRoZSBGaXJlYmFzZSBjb25zb2xlIC0+IEF1dGggc2VjdGlvbiAtPiBTaWduIGluIG1ldGhvZCB0YWIuIix0KTplPSJvcGVyYXRpb24tbm90LXN1cHBvcnRlZC1pbi10aGlzLWVudmlyb25tZW50IixJLmNhbGwodGhpcyxlLG4pfWZ1bmN0aW9uIE1vKHQsZSxuKXtJLmNhbGwodGhpcyx0LG4pLCh0PWV8fHt9KS5KYiYmanIodGhpcywiZW1haWwiLHQuSmIpLHQuZWEmJmpyKHRoaXMsInBob25lTnVtYmVyIix0LmVhKSx0LmNyZWRlbnRpYWwmJmpyKHRoaXMsImNyZWRlbnRpYWwiLHQuY3JlZGVudGlhbCksdC5aYiYmanIodGhpcywidGVuYW50SWQiLHQuWmIpfWZ1bmN0aW9uIEZvKHQpe2lmKHQuY29kZSl7dmFyIGU9dC5jb2RlfHwiIjswPT1lLmluZGV4T2YoUykmJihlPWUuc3Vic3RyaW5nKFMubGVuZ3RoKSk7dmFyIG49e2NyZWRlbnRpYWw6QW8odCksWmI6dC50ZW5hbnRJZH07aWYodC5lbWFpbCluLkpiPXQuZW1haWw7ZWxzZSBpZih0LnBob25lTnVtYmVyKW4uZWE9dC5waG9uZU51bWJlcjtlbHNlIGlmKCFuLmNyZWRlbnRpYWwpcmV0dXJuIG5ldyBJKGUsdC5tZXNzYWdlfHx2b2lkIDApO3JldHVybiBuZXcgTW8oZSxuLHQubWVzc2FnZSl9cmV0dXJuIG51bGx9ZnVuY3Rpb24gVW8oKXt9ZnVuY3Rpb24gam8odCl7cmV0dXJuIHQuY3x8KHQuYz10LmIoKSl9ZnVuY3Rpb24gcW8oKXt9ZnVuY3Rpb24gVm8odCl7aWYodC5mfHwidW5kZWZpbmVkIiE9dHlwZW9mIFhNTEh0dHBSZXF1ZXN0fHwidW5kZWZpbmVkIj09dHlwZW9mIEFjdGl2ZVhPYmplY3QpcmV0dXJuIHQuZjtmb3IodmFyIGU9WyJNU1hNTDIuWE1MSFRUUC42LjAiLCJNU1hNTDIuWE1MSFRUUC4zLjAiLCJNU1hNTDIuWE1MSFRUUCIsIk1pY3Jvc29mdC5YTUxIVFRQIl0sbj0wO248ZS5sZW5ndGg7bisrKXt2YXIgcj1lW25dO3RyeXtyZXR1cm4gbmV3IEFjdGl2ZVhPYmplY3QociksdC5mPXJ9Y2F0Y2godCl7fX10aHJvdyBFcnJvcigiQ291bGQgbm90IGNyZWF0ZSBBY3RpdmVYT2JqZWN0LiBBY3RpdmVYIG1pZ2h0IGJlIGRpc2FibGVkLCBvciBNU1hNTCBtaWdodCBub3QgYmUgaW5zdGFsbGVkIil9ZnVuY3Rpb24gQm8oKXt9ZnVuY3Rpb24gS28oKXt0aGlzLmE9bmV3IFhEb21haW5SZXF1ZXN0LHRoaXMucmVhZHlTdGF0ZT0wLHRoaXMub25yZWFkeXN0YXRlY2hhbmdlPW51bGwsdGhpcy5yZXNwb25zZVR5cGU9dGhpcy5yZXNwb25zZVRleHQ9dGhpcy5yZXNwb25zZT0iIix0aGlzLnN0YXR1cz0tMSx0aGlzLnN0YXR1c1RleHQ9IiIsdGhpcy5hLm9ubG9hZD1tKHRoaXMucWMsdGhpcyksdGhpcy5hLm9uZXJyb3I9bSh0aGlzLlNiLHRoaXMpLHRoaXMuYS5vbnByb2dyZXNzPW0odGhpcy5yYyx0aGlzKSx0aGlzLmEub250aW1lb3V0PW0odGhpcy52Yyx0aGlzKX1mdW5jdGlvbiBXbyh0LGUpe3QucmVhZHlTdGF0ZT1lLHQub25yZWFkeXN0YXRlY2hhbmdlJiZ0Lm9ucmVhZHlzdGF0ZWNoYW5nZSgpfWZ1bmN0aW9uIEhvKHQsZSxuKXt0aGlzLnJlc2V0KHQsZSxuLHZvaWQgMCx2b2lkIDApfWZ1bmN0aW9uIEdvKHQpe3RoaXMuZj10LHRoaXMuYj10aGlzLmM9dGhpcy5hPW51bGx9ZnVuY3Rpb24gem8odCxlKXt0aGlzLm5hbWU9dCx0aGlzLnZhbHVlPWV9dyhMbyxJKSx3KE1vLEkpLE1vLnByb3RvdHlwZS53PWZ1bmN0aW9uKCl7dmFyIHQ9e2NvZGU6dGhpcy5jb2RlLG1lc3NhZ2U6dGhpcy5tZXNzYWdlfTt0aGlzLmVtYWlsJiYodC5lbWFpbD10aGlzLmVtYWlsKSx0aGlzLnBob25lTnVtYmVyJiYodC5waG9uZU51bWJlcj10aGlzLnBob25lTnVtYmVyKSx0aGlzLnRlbmFudElkJiYodC50ZW5hbnRJZD10aGlzLnRlbmFudElkKTt2YXIgZT10aGlzLmNyZWRlbnRpYWwmJnRoaXMuY3JlZGVudGlhbC53KCk7cmV0dXJuIGUmJmx0KHQsZSksdH0sTW8ucHJvdG90eXBlLnRvSlNPTj1mdW5jdGlvbigpe3JldHVybiB0aGlzLncoKX0sVW8ucHJvdG90eXBlLmM9bnVsbCx3KHFvLFVvKSxxby5wcm90b3R5cGUuYT1mdW5jdGlvbigpe3ZhciB0PVZvKHRoaXMpO3JldHVybiB0P25ldyBBY3RpdmVYT2JqZWN0KHQpOm5ldyBYTUxIdHRwUmVxdWVzdH0scW8ucHJvdG90eXBlLmI9ZnVuY3Rpb24oKXt2YXIgdD17fTtyZXR1cm4gVm8odGhpcykmJih0WzBdPSEwLHRbMV09ITApLHR9LERvPW5ldyBxbyx3KEJvLFVvKSxCby5wcm90b3R5cGUuYT1mdW5jdGlvbigpe3ZhciB0PW5ldyBYTUxIdHRwUmVxdWVzdDtpZigid2l0aENyZWRlbnRpYWxzImluIHQpcmV0dXJuIHQ7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBYRG9tYWluUmVxdWVzdClyZXR1cm4gbmV3IEtvO3Rocm93IEVycm9yKCJVbnN1cHBvcnRlZCBicm93c2VyIil9LEJvLnByb3RvdHlwZS5iPWZ1bmN0aW9uKCl7cmV0dXJue319LCh0PUtvLnByb3RvdHlwZSkub3Blbj1mdW5jdGlvbih0LGUsbil7aWYobnVsbCE9biYmIW4pdGhyb3cgRXJyb3IoIk9ubHkgYXN5bmMgcmVxdWVzdHMgYXJlIHN1cHBvcnRlZC4iKTt0aGlzLmEub3Blbih0LGUpfSx0LnNlbmQ9ZnVuY3Rpb24odCl7aWYodCl7aWYoInN0cmluZyIhPXR5cGVvZiB0KXRocm93IEVycm9yKCJPbmx5IHN0cmluZyBkYXRhIGlzIHN1cHBvcnRlZCIpO3RoaXMuYS5zZW5kKHQpfWVsc2UgdGhpcy5hLnNlbmQoKX0sdC5hYm9ydD1mdW5jdGlvbigpe3RoaXMuYS5hYm9ydCgpfSx0LnNldFJlcXVlc3RIZWFkZXI9ZnVuY3Rpb24oKXt9LHQuZ2V0UmVzcG9uc2VIZWFkZXI9ZnVuY3Rpb24odCl7cmV0dXJuImNvbnRlbnQtdHlwZSI9PXQudG9Mb3dlckNhc2UoKT90aGlzLmEuY29udGVudFR5cGU6IiJ9LHQucWM9ZnVuY3Rpb24oKXt0aGlzLnN0YXR1cz0yMDAsdGhpcy5yZXNwb25zZT10aGlzLnJlc3BvbnNlVGV4dD10aGlzLmEucmVzcG9uc2VUZXh0LFdvKHRoaXMsNCl9LHQuU2I9ZnVuY3Rpb24oKXt0aGlzLnN0YXR1cz01MDAsdGhpcy5yZXNwb25zZT10aGlzLnJlc3BvbnNlVGV4dD0iIixXbyh0aGlzLDQpfSx0LnZjPWZ1bmN0aW9uKCl7dGhpcy5TYigpfSx0LnJjPWZ1bmN0aW9uKCl7dGhpcy5zdGF0dXM9MjAwLFdvKHRoaXMsMSl9LHQuZ2V0QWxsUmVzcG9uc2VIZWFkZXJzPWZ1bmN0aW9uKCl7cmV0dXJuImNvbnRlbnQtdHlwZTogIit0aGlzLmEuY29udGVudFR5cGV9LEhvLnByb3RvdHlwZS5hPW51bGwsSG8ucHJvdG90eXBlLnJlc2V0PWZ1bmN0aW9uKHQsZSxuLHIsaSl7ZGVsZXRlIHRoaXMuYX0sem8ucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubmFtZX07dmFyIFFvPW5ldyB6bygiU0VWRVJFIiwxZTMpLFlvPW5ldyB6bygiV0FSTklORyIsOTAwKSxYbz1uZXcgem8oIkNPTkZJRyIsNzAwKSxKbz1uZXcgem8oIkZJTkUiLDUwMCk7R28ucHJvdG90eXBlLmxvZz1mdW5jdGlvbih0LGUsbil7aWYodC52YWx1ZT49ZnVuY3Rpb24gdChlKXtyZXR1cm4gZS5jfHwoZS5hP3QoZS5hKTooTygiUm9vdCBsb2dnZXIgaGFzIG5vIGxldmVsIHNldC4iKSxudWxsKSl9KHRoaXMpLnZhbHVlKWZvcih2KGUpJiYoZT1lKCkpLHQ9bmV3IEhvKHQsU3RyaW5nKGUpLHRoaXMuZiksbiYmKHQuYT1uKSxuPXRoaXM7bjspbj1uLmF9O3ZhciAkbyxabz17fSx0cz1udWxsO2Z1bmN0aW9uIGVzKHQpe3ZhciBlLG4scjtyZXR1cm4gdHN8fCh0cz1uZXcgR28oIiIpLChab1siIl09dHMpLmM9WG8pLChlPVpvW3RdKXx8KGU9bmV3IEdvKHQpLHI9dC5sYXN0SW5kZXhPZigiLiIpLG49dC5zdWJzdHIocisxKSwocj1lcyh0LnN1YnN0cigwLHIpKSkuYnx8KHIuYj17fSksKHIuYltuXT1lKS5hPXIsWm9bdF09ZSksZX1mdW5jdGlvbiBucyh0LGUpe3QmJnQubG9nKEpvLGUsdm9pZCAwKX1mdW5jdGlvbiBycyh0KXt0aGlzLmY9dH1mdW5jdGlvbiBpcyh0KXtsbi5jYWxsKHRoaXMpLHRoaXMudT10LHRoaXMuaD12b2lkIDAsdGhpcy5yZWFkeVN0YXRlPW9zLHRoaXMuc3RhdHVzPTAsdGhpcy5yZXNwb25zZVR5cGU9dGhpcy5yZXNwb25zZVRleHQ9dGhpcy5yZXNwb25zZT10aGlzLnN0YXR1c1RleHQ9IiIsdGhpcy5vbnJlYWR5c3RhdGVjaGFuZ2U9bnVsbCx0aGlzLmw9bmV3IEhlYWRlcnMsdGhpcy5iPW51bGwsdGhpcy5zPSJHRVQiLHRoaXMuZj0iIix0aGlzLmE9ITEsdGhpcy5pPWVzKCJnb29nLm5ldC5GZXRjaFhtbEh0dHAiKSx0aGlzLm09dGhpcy5jPXRoaXMuZz1udWxsfXcocnMsVW8pLHJzLnByb3RvdHlwZS5hPWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBpcyh0aGlzLmYpfSxycy5wcm90b3R5cGUuYj0oJG89e30sZnVuY3Rpb24oKXtyZXR1cm4gJG99KSx3KGlzLGxuKTt2YXIgb3M9MDtmdW5jdGlvbiBzcyh0KXt0LmMucmVhZCgpLnRoZW4odC5wYy5iaW5kKHQpKS5jYXRjaCh0LlVhLmJpbmQodCkpfWZ1bmN0aW9uIGFzKHQpe3QucmVhZHlTdGF0ZT00LHQuZz1udWxsLHQuYz1udWxsLHQubT1udWxsLHVzKHQpfWZ1bmN0aW9uIHVzKHQpe3Qub25yZWFkeXN0YXRlY2hhbmdlJiZ0Lm9ucmVhZHlzdGF0ZWNoYW5nZS5jYWxsKHQpfWZ1bmN0aW9uIGNzKHQpe2xuLmNhbGwodGhpcyksdGhpcy5oZWFkZXJzPW5ldyBibix0aGlzLkQ9dHx8bnVsbCx0aGlzLmM9ITEsdGhpcy5DPXRoaXMuYT1udWxsLHRoaXMuaD10aGlzLlI9dGhpcy5sPSIiLHRoaXMuZj10aGlzLk89dGhpcy5pPXRoaXMuSj0hMSx0aGlzLmc9MCx0aGlzLnM9bnVsbCx0aGlzLm09aHMsdGhpcy51PXRoaXMuUz0hMX0odD1pcy5wcm90b3R5cGUpLm9wZW49ZnVuY3Rpb24odCxlKXtpZih0aGlzLnJlYWR5U3RhdGUhPW9zKXRocm93IHRoaXMuYWJvcnQoKSxFcnJvcigiRXJyb3IgcmVvcGVuaW5nIGEgY29ubmVjdGlvbiIpO3RoaXMucz10LHRoaXMuZj1lLHRoaXMucmVhZHlTdGF0ZT0xLHVzKHRoaXMpfSx0LnNlbmQ9ZnVuY3Rpb24odCl7aWYoMSE9dGhpcy5yZWFkeVN0YXRlKXRocm93IHRoaXMuYWJvcnQoKSxFcnJvcigibmVlZCB0byBjYWxsIG9wZW4oKSBmaXJzdC4gIik7dGhpcy5hPSEwO3ZhciBlPXtoZWFkZXJzOnRoaXMubCxtZXRob2Q6dGhpcy5zLGNyZWRlbnRpYWxzOnRoaXMuaCxjYWNoZTp2b2lkIDB9O3QmJihlLmJvZHk9dCksdGhpcy51LmZldGNoKG5ldyBSZXF1ZXN0KHRoaXMuZixlKSkudGhlbih0aGlzLnVjLmJpbmQodGhpcyksdGhpcy5VYS5iaW5kKHRoaXMpKX0sdC5hYm9ydD1mdW5jdGlvbigpe3RoaXMucmVzcG9uc2U9dGhpcy5yZXNwb25zZVRleHQ9IiIsdGhpcy5sPW5ldyBIZWFkZXJzLHRoaXMuc3RhdHVzPTAsdGhpcy5jJiZ0aGlzLmMuY2FuY2VsKCJSZXF1ZXN0IHdhcyBhYm9ydGVkLiIpLDE8PXRoaXMucmVhZHlTdGF0ZSYmdGhpcy5hJiY0IT10aGlzLnJlYWR5U3RhdGUmJih0aGlzLmE9ITEsYXModGhpcykpLHRoaXMucmVhZHlTdGF0ZT1vc30sdC51Yz1mdW5jdGlvbih0KXt0aGlzLmEmJih0aGlzLmc9dCx0aGlzLmJ8fCh0aGlzLnN0YXR1cz10aGlzLmcuc3RhdHVzLHRoaXMuc3RhdHVzVGV4dD10aGlzLmcuc3RhdHVzVGV4dCx0aGlzLmI9dC5oZWFkZXJzLHRoaXMucmVhZHlTdGF0ZT0yLHVzKHRoaXMpKSx0aGlzLmEmJih0aGlzLnJlYWR5U3RhdGU9Myx1cyh0aGlzKSx0aGlzLmEmJigiYXJyYXlidWZmZXIiPT09dGhpcy5yZXNwb25zZVR5cGU/dC5hcnJheUJ1ZmZlcigpLnRoZW4odGhpcy5zYy5iaW5kKHRoaXMpLHRoaXMuVWEuYmluZCh0aGlzKSk6dm9pZCAwIT09bC5SZWFkYWJsZVN0cmVhbSYmImJvZHkiaW4gdD8odGhpcy5yZXNwb25zZT10aGlzLnJlc3BvbnNlVGV4dD0iIix0aGlzLmM9dC5ib2R5LmdldFJlYWRlcigpLHRoaXMubT1uZXcgVGV4dERlY29kZXIsc3ModGhpcykpOnQudGV4dCgpLnRoZW4odGhpcy50Yy5iaW5kKHRoaXMpLHRoaXMuVWEuYmluZCh0aGlzKSkpKSl9LHQucGM9ZnVuY3Rpb24odCl7dmFyIGU7dGhpcy5hJiYoKGU9dGhpcy5tLmRlY29kZSh0LnZhbHVlfHxuZXcgVWludDhBcnJheSgwKSx7c3RyZWFtOiF0LmRvbmV9KSkmJih0aGlzLnJlc3BvbnNlPXRoaXMucmVzcG9uc2VUZXh0Kz1lKSwodC5kb25lP2FzOnVzKSh0aGlzKSwzPT10aGlzLnJlYWR5U3RhdGUmJnNzKHRoaXMpKX0sdC50Yz1mdW5jdGlvbih0KXt0aGlzLmEmJih0aGlzLnJlc3BvbnNlPXRoaXMucmVzcG9uc2VUZXh0PXQsYXModGhpcykpfSx0LnNjPWZ1bmN0aW9uKHQpe3RoaXMuYSYmKHRoaXMucmVzcG9uc2U9dCxhcyh0aGlzKSl9LHQuVWE9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5pO2UmJmUubG9nKFlvLCJGYWlsZWQgdG8gZmV0Y2ggdXJsICIrdGhpcy5mLHQgaW5zdGFuY2VvZiBFcnJvcj90OkVycm9yKHQpKSx0aGlzLmEmJmFzKHRoaXMpfSx0LnNldFJlcXVlc3RIZWFkZXI9ZnVuY3Rpb24odCxlKXt0aGlzLmwuYXBwZW5kKHQsZSl9LHQuZ2V0UmVzcG9uc2VIZWFkZXI9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuYj90aGlzLmIuZ2V0KHQudG9Mb3dlckNhc2UoKSl8fCIiOigodD10aGlzLmkpJiZ0LmxvZyhZbywiQXR0ZW1wdGluZyB0byBnZXQgcmVzcG9uc2UgaGVhZGVyIGJ1dCBubyBoZWFkZXJzIGhhdmUgYmVlbiByZWNlaXZlZCBmb3IgdXJsOiAiK3RoaXMuZix2b2lkIDApLCIiKX0sdC5nZXRBbGxSZXNwb25zZUhlYWRlcnM9ZnVuY3Rpb24oKXtpZighdGhpcy5iKXt2YXIgdD10aGlzLmk7cmV0dXJuIHQmJnQubG9nKFlvLCJBdHRlbXB0aW5nIHRvIGdldCBhbGwgcmVzcG9uc2UgaGVhZGVycyBidXQgbm8gaGVhZGVycyBoYXZlIGJlZW4gcmVjZWl2ZWQgZm9yIHVybDogIit0aGlzLmYsdm9pZCAwKSwiIn1mb3IodmFyIHQ9W10sZT10aGlzLmIuZW50cmllcygpLG49ZS5uZXh0KCk7IW4uZG9uZTspbj1uLnZhbHVlLHQucHVzaChuWzBdKyI6ICIrblsxXSksbj1lLm5leHQoKTtyZXR1cm4gdC5qb2luKCJcclxuIil9LE9iamVjdC5kZWZpbmVQcm9wZXJ0eShpcy5wcm90b3R5cGUsIndpdGhDcmVkZW50aWFscyIse2dldDpmdW5jdGlvbigpe3JldHVybiJpbmNsdWRlIj09PXRoaXMuaH0sc2V0OmZ1bmN0aW9uKHQpe3RoaXMuaD10PyJpbmNsdWRlIjoic2FtZS1vcmlnaW4ifX0pLHcoY3MsbG4pO3ZhciBocz0iIjtjcy5wcm90b3R5cGUuYj1lcygiZ29vZy5uZXQuWGhySW8iKTt2YXIgbHM9L15odHRwcz8kL2ksZnM9WyJQT1NUIiwiUFVUIl07ZnVuY3Rpb24gcHMoZSx0LG4scixpKXtpZihlLmEpdGhyb3cgRXJyb3IoIltnb29nLm5ldC5YaHJJb10gT2JqZWN0IGlzIGFjdGl2ZSB3aXRoIGFub3RoZXIgcmVxdWVzdD0iK2UubCsiOyBuZXdVcmk9Iit0KTtuPW4/bi50b1VwcGVyQ2FzZSgpOiJHRVQiLGUubD10LGUuaD0iIixlLlI9bixlLko9ITEsZS5jPSEwLGUuYT0oZS5EfHxEbykuYSgpLGUuQz1lLkQ/am8oZS5EKTpqbyhEbyksZS5hLm9ucmVhZHlzdGF0ZWNoYW5nZT1tKGUuVmIsZSk7dHJ5e25zKGUuYixJcyhlLCJPcGVuaW5nIFhociIpKSxlLk89ITAsZS5hLm9wZW4obixTdHJpbmcodCksITApLGUuTz0hMX1jYXRjaCh0KXtyZXR1cm4gbnMoZS5iLElzKGUsIkVycm9yIG9wZW5pbmcgWGhyOiAiK3QubWVzc2FnZSkpLHZvaWQgdnMoZSx0KX10PXJ8fCIiO3ZhciBvLHM9bmV3IGJuKGUuaGVhZGVycyk7aSYmZnVuY3Rpb24odCxlKXtpZih0LmZvckVhY2gmJiJmdW5jdGlvbiI9PXR5cGVvZiB0LmZvckVhY2gpdC5mb3JFYWNoKGUsdm9pZCAwKTtlbHNlIGlmKGQodCl8fCJzdHJpbmciPT10eXBlb2YgdClqKHQsZSx2b2lkIDApO2Vsc2UgZm9yKHZhciBuPW1uKHQpLHI9eW4odCksaT1yLmxlbmd0aCxvPTA7bzxpO28rKyllLmNhbGwodm9pZCAwLHJbb10sbiYmbltvXSx0KX0oaSxmdW5jdGlvbih0LGUpe3Muc2V0KGUsdCl9KSxpPWZ1bmN0aW9uKHQpe3Q6e2Zvcih2YXIgZT1kcyxuPXQubGVuZ3RoLHI9InN0cmluZyI9PXR5cGVvZiB0P3Quc3BsaXQoIiIpOnQsaT0wO2k8bjtpKyspaWYoaSBpbiByJiZlLmNhbGwodm9pZCAwLHJbaV0saSx0KSl7ZT1pO2JyZWFrIHR9ZT0tMX1yZXR1cm4gZTwwP251bGw6InN0cmluZyI9PXR5cGVvZiB0P3QuY2hhckF0KGUpOnRbZV19KHMuWSgpKSxyPWwuRm9ybURhdGEmJnQgaW5zdGFuY2VvZiBsLkZvcm1EYXRhLCFLKGZzLG4pfHxpfHxyfHxzLnNldCgiQ29udGVudC1UeXBlIiwiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkO2NoYXJzZXQ9dXRmLTgiKSxzLmZvckVhY2goZnVuY3Rpb24odCxlKXt0aGlzLmEuc2V0UmVxdWVzdEhlYWRlcihlLHQpfSxlKSxlLm0mJihlLmEucmVzcG9uc2VUeXBlPWUubSksIndpdGhDcmVkZW50aWFscyJpbiBlLmEmJmUuYS53aXRoQ3JlZGVudGlhbHMhPT1lLlMmJihlLmEud2l0aENyZWRlbnRpYWxzPWUuUyk7dHJ5e2JzKGUpLDA8ZS5nJiYoZS51PShvPWUuYSxCdCYmSnQoOSkmJiJudW1iZXIiPT10eXBlb2Ygby50aW1lb3V0JiZ2b2lkIDAhPT1vLm9udGltZW91dCksbnMoZS5iLElzKGUsIldpbGwgYWJvcnQgYWZ0ZXIgIitlLmcrIm1zIGlmIGluY29tcGxldGUsIHhocjIgIitlLnUpKSxlLnU/KGUuYS50aW1lb3V0PWUuZyxlLmEub250aW1lb3V0PW0oZS5NYSxlKSk6ZS5zPXZuKGUuTWEsZS5nLGUpKSxucyhlLmIsSXMoZSwiU2VuZGluZyByZXF1ZXN0IikpLGUuaT0hMCxlLmEuc2VuZCh0KSxlLmk9ITF9Y2F0Y2godCl7bnMoZS5iLElzKGUsIlNlbmQgZXJyb3I6ICIrdC5tZXNzYWdlKSksdnMoZSx0KX19ZnVuY3Rpb24gZHModCl7cmV0dXJuImNvbnRlbnQtdHlwZSI9PXQudG9Mb3dlckNhc2UoKX1mdW5jdGlvbiB2cyh0LGUpe3QuYz0hMSx0LmEmJih0LmY9ITAsdC5hLmFib3J0KCksdC5mPSExKSx0Lmg9ZSxncyh0KSxtcyh0KX1mdW5jdGlvbiBncyh0KXt0Lkp8fCh0Lko9ITAsdC5kaXNwYXRjaEV2ZW50KCJjb21wbGV0ZSIpLHQuZGlzcGF0Y2hFdmVudCgiZXJyb3IiKSl9ZnVuY3Rpb24geXMoZSl7aWYoZS5jJiZ2b2lkIDAhPT1oKWlmKGUuQ1sxXSYmND09d3MoZSkmJjI9PV9zKGUpKW5zKGUuYixJcyhlLCJMb2NhbCByZXF1ZXN0IGVycm9yIGRldGVjdGVkIGFuZCBpZ25vcmVkIikpO2Vsc2UgaWYoZS5pJiY0PT13cyhlKSl2bihlLlZiLDAsZSk7ZWxzZSBpZihlLmRpc3BhdGNoRXZlbnQoInJlYWR5c3RhdGVjaGFuZ2UiKSw0PT13cyhlKSl7bnMoZS5iLElzKGUsIlJlcXVlc3QgY29tcGxldGUiKSksZS5jPSExO3RyeXt2YXIgdCxuLHIsaSxvPV9zKGUpO3Q6c3dpdGNoKG8pe2Nhc2UgMjAwOmNhc2UgMjAxOmNhc2UgMjAyOmNhc2UgMjA0OmNhc2UgMjA2OmNhc2UgMzA0OmNhc2UgMTIyMzp2YXIgcz0hMDticmVhayB0O2RlZmF1bHQ6cz0hMX1pZigodD1zKXx8KChuPTA9PT1vKSYmKCEoaT1TdHJpbmcoZS5sKS5tYXRjaChJbilbMV18fG51bGwpJiZsLnNlbGYmJmwuc2VsZi5sb2NhdGlvbiYmKGk9KHI9bC5zZWxmLmxvY2F0aW9uLnByb3RvY29sKS5zdWJzdHIoMCxyLmxlbmd0aC0xKSksbj0hbHMudGVzdChpP2kudG9Mb3dlckNhc2UoKToiIikpLHQ9biksdCllLmRpc3BhdGNoRXZlbnQoImNvbXBsZXRlIiksZS5kaXNwYXRjaEV2ZW50KCJzdWNjZXNzIik7ZWxzZXt0cnl7dmFyIGE9Mjx3cyhlKT9lLmEuc3RhdHVzVGV4dDoiIn1jYXRjaCh0KXtucyhlLmIsIkNhbiBub3QgZ2V0IHN0YXR1czogIit0Lm1lc3NhZ2UpLGE9IiJ9ZS5oPWErIiBbIitfcyhlKSsiXSIsZ3MoZSl9fWZpbmFsbHl7bXMoZSl9fX1mdW5jdGlvbiBtcyhlLHQpe2lmKGUuYSl7YnMoZSk7dmFyIG49ZS5hLHI9ZS5DWzBdP3M6bnVsbDtlLmE9bnVsbCxlLkM9bnVsbCx0fHxlLmRpc3BhdGNoRXZlbnQoInJlYWR5Iik7dHJ5e24ub25yZWFkeXN0YXRlY2hhbmdlPXJ9Y2F0Y2godCl7KGU9ZS5iKSYmZS5sb2coUW8sIlByb2JsZW0gZW5jb3VudGVyZWQgcmVzZXR0aW5nIG9ucmVhZHlzdGF0ZWNoYW5nZTogIit0Lm1lc3NhZ2Usdm9pZCAwKX19fWZ1bmN0aW9uIGJzKHQpe3QuYSYmdC51JiYodC5hLm9udGltZW91dD1udWxsKSx0LnMmJihsLmNsZWFyVGltZW91dCh0LnMpLHQucz1udWxsKX1mdW5jdGlvbiB3cyh0KXtyZXR1cm4gdC5hP3QuYS5yZWFkeVN0YXRlOjB9ZnVuY3Rpb24gX3ModCl7dHJ5e3JldHVybiAyPHdzKHQpP3QuYS5zdGF0dXM6LTF9Y2F0Y2godCl7cmV0dXJuLTF9fWZ1bmN0aW9uIElzKHQsZSl7cmV0dXJuIGUrIiBbIit0LlIrIiAiK3QubCsiICIrX3ModCkrIl0ifWZ1bmN0aW9uIFRzKHQpe3ZhciBlPXhzO3RoaXMuZz1bXSx0aGlzLnU9ZSx0aGlzLnM9dHx8bnVsbCx0aGlzLmY9dGhpcy5hPSExLHRoaXMuYz12b2lkIDAsdGhpcy52PXRoaXMuQz10aGlzLmk9ITEsdGhpcy5oPTAsdGhpcy5iPW51bGwsdGhpcy5sPTB9ZnVuY3Rpb24gRXModCxlLG4pe3QuYT0hMCx0LmM9bix0LmY9IWUsQXModCl9ZnVuY3Rpb24gU3ModCl7aWYodC5hKXtpZighdC52KXRocm93IG5ldyBrczt0LnY9ITF9fWZ1bmN0aW9uIENzKHQsZSxuLHIpe3QuZy5wdXNoKFtlLG4scl0pLHQuYSYmQXModCl9ZnVuY3Rpb24gTnModCl7cmV0dXJuIEIodC5nLGZ1bmN0aW9uKHQpe3JldHVybiB2KHRbMV0pfSl9ZnVuY3Rpb24gQXMoZSl7dmFyIG47ZS5oJiZlLmEmJk5zKGUpJiYocj1lLmgsKG49T3Nbcl0pJiYobC5jbGVhclRpbWVvdXQobi5hKSxkZWxldGUgT3Nbcl0pLGUuaD0wKSxlLmImJihlLmIubC0tLGRlbGV0ZSBlLmIpO2Zvcih2YXIgcj1lLmMsdD1uPSExO2UuZy5sZW5ndGgmJiFlLmk7KXt2YXIgaT0ocz1lLmcuc2hpZnQoKSlbMF0sbz1zWzFdLHM9c1syXTtpZihpPWUuZj9vOmkpdHJ5e3ZhciBhPWkuY2FsbChzfHxlLnMscik7dm9pZCAwIT09YSYmKGUuZj1lLmYmJihhPT1yfHxhIGluc3RhbmNlb2YgRXJyb3IpLGUuYz1yPWEpLChrKHIpfHwiZnVuY3Rpb24iPT10eXBlb2YgbC5Qcm9taXNlJiZyIGluc3RhbmNlb2YgbC5Qcm9taXNlKSYmKHQ9ITAsZS5pPSEwKX1jYXRjaCh0KXtyPXQsZS5mPSEwLE5zKGUpfHwobj0hMCl9fWUuYz1yLHQmJihhPW0oZS5tLGUsITApLHQ9bShlLm0sZSwhMSksciBpbnN0YW5jZW9mIFRzPyhDcyhyLGEsdCksci5DPSEwKTpyLnRoZW4oYSx0KSksbiYmKHI9bmV3IFBzKHIpLE9zW3IuYV09cixlLmg9ci5hKX1mdW5jdGlvbiBrcygpe1IuY2FsbCh0aGlzKX1mdW5jdGlvbiBScygpe1IuY2FsbCh0aGlzKX1mdW5jdGlvbiBQcyh0KXt0aGlzLmE9bC5zZXRUaW1lb3V0KG0odGhpcy5jLHRoaXMpLDApLHRoaXMuYj10fSh0PWNzLnByb3RvdHlwZSkuTWE9ZnVuY3Rpb24oKXt2b2lkIDAhPT1oJiZ0aGlzLmEmJih0aGlzLmg9IlRpbWVkIG91dCBhZnRlciAiK3RoaXMuZysibXMsIGFib3J0aW5nIixucyh0aGlzLmIsSXModGhpcyx0aGlzLmgpKSx0aGlzLmRpc3BhdGNoRXZlbnQoInRpbWVvdXQiKSx0aGlzLmFib3J0KDgpKX0sdC5hYm9ydD1mdW5jdGlvbigpe3RoaXMuYSYmdGhpcy5jJiYobnModGhpcy5iLElzKHRoaXMsIkFib3J0aW5nIikpLHRoaXMuYz0hMSx0aGlzLmY9ITAsdGhpcy5hLmFib3J0KCksdGhpcy5mPSExLHRoaXMuZGlzcGF0Y2hFdmVudCgiY29tcGxldGUiKSx0aGlzLmRpc3BhdGNoRXZlbnQoImFib3J0IiksbXModGhpcykpfSx0LkRhPWZ1bmN0aW9uKCl7dGhpcy5hJiYodGhpcy5jJiYodGhpcy5jPSExLHRoaXMuZj0hMCx0aGlzLmEuYWJvcnQoKSx0aGlzLmY9ITEpLG1zKHRoaXMsITApKSxjcy5hYi5EYS5jYWxsKHRoaXMpfSx0LlZiPWZ1bmN0aW9uKCl7dGhpcy54YXx8KHRoaXMuT3x8dGhpcy5pfHx0aGlzLmY/eXModGhpcyk6dGhpcy5KYygpKX0sdC5KYz1mdW5jdGlvbigpe3lzKHRoaXMpfSx0LmdldFJlc3BvbnNlPWZ1bmN0aW9uKCl7dHJ5e2lmKCF0aGlzLmEpcmV0dXJuIG51bGw7aWYoInJlc3BvbnNlImluIHRoaXMuYSlyZXR1cm4gdGhpcy5hLnJlc3BvbnNlO3N3aXRjaCh0aGlzLm0pe2Nhc2UgaHM6Y2FzZSJ0ZXh0IjpyZXR1cm4gdGhpcy5hLnJlc3BvbnNlVGV4dDtjYXNlImFycmF5YnVmZmVyIjppZigibW96UmVzcG9uc2VBcnJheUJ1ZmZlciJpbiB0aGlzLmEpcmV0dXJuIHRoaXMuYS5tb3pSZXNwb25zZUFycmF5QnVmZmVyfXZhciB0PXRoaXMuYjtyZXR1cm4gdCYmdC5sb2coUW8sIlJlc3BvbnNlIHR5cGUgIit0aGlzLm0rIiBpcyBub3Qgc3VwcG9ydGVkIG9uIHRoaXMgYnJvd3NlciIsdm9pZCAwKSxudWxsfWNhdGNoKHQpe3JldHVybiBucyh0aGlzLmIsIkNhbiBub3QgZ2V0IHJlc3BvbnNlOiAiK3QubWVzc2FnZSksbnVsbH19LFRzLnByb3RvdHlwZS5jYW5jZWw9ZnVuY3Rpb24odCl7dmFyIGU7dGhpcy5hP3RoaXMuYyBpbnN0YW5jZW9mIFRzJiZ0aGlzLmMuY2FuY2VsKCk6KHRoaXMuYiYmKGU9dGhpcy5iLGRlbGV0ZSB0aGlzLmIsdD9lLmNhbmNlbCh0KTooZS5sLS0sZS5sPD0wJiZlLmNhbmNlbCgpKSksdGhpcy51P3RoaXMudS5jYWxsKHRoaXMucyx0aGlzKTp0aGlzLnY9ITAsdGhpcy5hfHwodD1uZXcgUnMsU3ModGhpcyksRXModGhpcywhMSx0KSkpfSxUcy5wcm90b3R5cGUubT1mdW5jdGlvbih0LGUpe3RoaXMuaT0hMSxFcyh0aGlzLHQsZSl9LFRzLnByb3RvdHlwZS50aGVuPWZ1bmN0aW9uKHQsZSxuKXt2YXIgcixpLG89bmV3IGZlKGZ1bmN0aW9uKHQsZSl7cj10LGk9ZX0pO3JldHVybiBDcyh0aGlzLHIsZnVuY3Rpb24odCl7dCBpbnN0YW5jZW9mIFJzP28uY2FuY2VsKCk6aSh0KX0pLG8udGhlbih0LGUsbil9LFRzLnByb3RvdHlwZS4kZ29vZ19UaGVuYWJsZT0hMCx3KGtzLFIpLGtzLnByb3RvdHlwZS5tZXNzYWdlPSJEZWZlcnJlZCBoYXMgYWxyZWFkeSBmaXJlZCIsa3MucHJvdG90eXBlLm5hbWU9IkFscmVhZHlDYWxsZWRFcnJvciIsdyhScyxSKSxScy5wcm90b3R5cGUubWVzc2FnZT0iRGVmZXJyZWQgd2FzIGNhbmNlbGVkIixScy5wcm90b3R5cGUubmFtZT0iQ2FuY2VsZWRFcnJvciIsUHMucHJvdG90eXBlLmM9ZnVuY3Rpb24oKXt0aHJvdyBkZWxldGUgT3NbdGhpcy5hXSx0aGlzLmJ9O3ZhciBPcz17fTtmdW5jdGlvbiBEcyh0KXt2YXIgZT1kb2N1bWVudCxuPXd0KHQpLnRvU3RyaW5nKCkscj1zZShkb2N1bWVudCwiU0NSSVBUIiksaT17V2I6cixNYTp2b2lkIDB9LG89bmV3IFRzKGkpLHM9d2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24oKXtMcyhyLCEwKTt2YXIgdD1uZXcgVXMoRnMsIlRpbWVvdXQgcmVhY2hlZCBmb3IgbG9hZGluZyBzY3JpcHQgIituKTtTcyhvKSxFcyhvLCExLHQpfSw1ZTMpO3JldHVybiBpLk1hPXMsci5vbmxvYWQ9ci5vbnJlYWR5c3RhdGVjaGFuZ2U9ZnVuY3Rpb24oKXtyLnJlYWR5U3RhdGUmJiJsb2FkZWQiIT1yLnJlYWR5U3RhdGUmJiJjb21wbGV0ZSIhPXIucmVhZHlTdGF0ZXx8KExzKHIsITEscyksU3MobyksRXMobywhMCxudWxsKSl9LHIub25lcnJvcj1mdW5jdGlvbigpe0xzKHIsITAscyk7dmFyIHQ9bmV3IFVzKE1zLCJFcnJvciB3aGlsZSBsb2FkaW5nIHNjcmlwdCAiK24pO1NzKG8pLEVzKG8sITEsdCl9LGx0KGk9e30se3R5cGU6InRleHQvamF2YXNjcmlwdCIsY2hhcnNldDoiVVRGLTgifSksZWUocixpKSxpPXQsZnQodD1yLCJIVE1MU2NyaXB0RWxlbWVudCIpLHQuc3JjPXd0KGkpLChpPShpPXQub3duZXJEb2N1bWVudCYmdC5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3KSYmaSE9bD9mKGkuZG9jdW1lbnQpOmE9bnVsbD09PWE/ZihsLmRvY3VtZW50KTphKSYmdC5zZXRBdHRyaWJ1dGUoIm5vbmNlIixpKSwoKGU9KChpPWUpfHxkb2N1bWVudCkuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIkhFQUQiKSkmJjAhPWUubGVuZ3RoP2VbMF06aS5kb2N1bWVudEVsZW1lbnQpLmFwcGVuZENoaWxkKHIpLG99ZnVuY3Rpb24geHMoKXt2YXIgdDt0aGlzJiZ0aGlzLldiJiYoKHQ9dGhpcy5XYikmJiJTQ1JJUFQiPT10LnRhZ05hbWUmJkxzKHQsITAsdGhpcy5NYSkpfWZ1bmN0aW9uIExzKHQsZSxuKXtudWxsIT1uJiZsLmNsZWFyVGltZW91dChuKSx0Lm9ubG9hZD1zLHQub25lcnJvcj1zLHQub25yZWFkeXN0YXRlY2hhbmdlPXMsZSYmd2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24oKXt0JiZ0LnBhcmVudE5vZGUmJnQucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0KX0sMCl9dmFyIE1zPTAsRnM9MTtmdW5jdGlvbiBVcyh0LGUpe3ZhciBuPSJKc2xvYWRlciBlcnJvciAoY29kZSAjIit0KyIpIjtlJiYobis9IjogIitlKSxSLmNhbGwodGhpcyxuKSx0aGlzLmNvZGU9dH1mdW5jdGlvbiBqcyh0KXt0aGlzLmY9dH1mdW5jdGlvbiBxcyh0LGUsbil7aWYodGhpcy5jPXQsdD1lfHx7fSx0aGlzLmw9dC5zZWN1cmVUb2tlbkVuZHBvaW50fHwiaHR0cHM6Ly9zZWN1cmV0b2tlbi5nb29nbGVhcGlzLmNvbS92MS90b2tlbiIsdGhpcy5tPXQuc2VjdXJlVG9rZW5UaW1lb3V0fHxLcyx0aGlzLmc9Y3QodC5zZWN1cmVUb2tlbkhlYWRlcnN8fFdzKSx0aGlzLmg9dC5maXJlYmFzZUVuZHBvaW50fHwiaHR0cHM6Ly93d3cuZ29vZ2xlYXBpcy5jb20vaWRlbnRpdHl0b29sa2l0L3YzL3JlbHlpbmdwYXJ0eS8iLHRoaXMuaT10LmlkZW50aXR5UGxhdGZvcm1FbmRwb2ludHx8Imh0dHBzOi8vaWRlbnRpdHl0b29sa2l0Lmdvb2dsZWFwaXMuY29tL3YyLyIsdGhpcy52PXQuZmlyZWJhc2VUaW1lb3V0fHxIcyx0aGlzLmE9Y3QodC5maXJlYmFzZUhlYWRlcnN8fEdzKSxuJiYodGhpcy5hWyJYLUNsaWVudC1WZXJzaW9uIl09bix0aGlzLmdbIlgtQ2xpZW50LVZlcnNpb24iXT1uKSxuPSJOb2RlIj09aHIoKSwhKG49bC5YTUxIdHRwUmVxdWVzdHx8biYmWGwuSU5URVJOQUwubm9kZSYmWGwuSU5URVJOQUwubm9kZS5YTUxIdHRwUmVxdWVzdCkmJiFjcigpKXRocm93IG5ldyBJKCJpbnRlcm5hbC1lcnJvciIsIlRoZSBYTUxIdHRwUmVxdWVzdCBjb21wYXRpYmlsaXR5IGxpYnJhcnkgd2FzIG5vdCBmb3VuZC4iKTt0aGlzLmY9dm9pZCAwLGNyKCk/dGhpcy5mPW5ldyBycyhzZWxmKTpscigpP3RoaXMuZj1uZXcganMobik6dGhpcy5mPW5ldyBCbyx0aGlzLmI9bnVsbH13KFVzLFIpLHcoanMsVW8pLGpzLnByb3RvdHlwZS5hPWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyB0aGlzLmZ9LGpzLnByb3RvdHlwZS5iPWZ1bmN0aW9uKCl7cmV0dXJue319O3ZhciBWcyxCcz0iaWRUb2tlbiIsS3M9bmV3IFJyKDNlNCw2ZTQpLFdzPXsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIn0sSHM9bmV3IFJyKDNlNCw2ZTQpLEdzPXsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9O2Z1bmN0aW9uIHpzKHQsZSl7ZT90LmFbIlgtRmlyZWJhc2UtTG9jYWxlIl09ZTpkZWxldGUgdC5hWyJYLUZpcmViYXNlLUxvY2FsZSJdfWZ1bmN0aW9uIFFzKHQsZSl7ZSYmKHQubD1ZcygiaHR0cHM6Ly9zZWN1cmV0b2tlbi5nb29nbGVhcGlzLmNvbS92MS90b2tlbiIsZSksdC5oPVlzKCJodHRwczovL3d3dy5nb29nbGVhcGlzLmNvbS9pZGVudGl0eXRvb2xraXQvdjMvcmVseWluZ3BhcnR5LyIsZSksdC5pPVlzKCJodHRwczovL2lkZW50aXR5dG9vbGtpdC5nb29nbGVhcGlzLmNvbS92Mi8iLGUpKX1mdW5jdGlvbiBZcyh0LGUpe3JldHVybiB0PWtuKHQpLGU9a24oZS51cmwpLHQuZj10LmErdC5mLEVuKHQsZS5jKSx0LmE9ZS5hLFNuKHQsZS5nKSx0LnRvU3RyaW5nKCl9ZnVuY3Rpb24gWHModCxlKXtlPyh0LmFbIlgtQ2xpZW50LVZlcnNpb24iXT1lLHQuZ1siWC1DbGllbnQtVmVyc2lvbiJdPWUpOihkZWxldGUgdC5hWyJYLUNsaWVudC1WZXJzaW9uIl0sZGVsZXRlIHQuZ1siWC1DbGllbnQtVmVyc2lvbiJdKX1mdW5jdGlvbiBKcyh0LGUsbixyLGksbyxzKXt2YXIgYTsodD0oKGE9ZHIoYT15cigpKT09cHImJihhPWEubWF0Y2goL1xzQ2hyb21lXC8oXGQrKS9pKSkmJjI9PWEubGVuZ3RoP3BhcnNlSW50KGFbMV0sMTApOm51bGwpJiZhPDMwfHxCdCYmJHQmJiEoOTwkdCkpJiYhY3IoKT8oVnM9VnN8fG5ldyBmZShmdW5jdGlvbih0LGUpe3ZhciBuLHI7bj10LHI9ZSwoKHdpbmRvdy5nYXBpfHx7fSkuY2xpZW50fHx7fSkucmVxdWVzdD9uKCk6KGxbWnNdPWZ1bmN0aW9uKCl7KCh3aW5kb3cuZ2FwaXx8e30pLmNsaWVudHx8e30pLnJlcXVlc3Q/bigpOnIoRXJyb3IoIkNPUlNfVU5TVVBQT1JURUQiKSl9LGZ1bmN0aW9uKHQsZSl7Q3ModCxudWxsLGUsdm9pZCAwKX0oRHMoX3QoJHMse29ubG9hZDpac30pKSxmdW5jdGlvbigpe3IoRXJyb3IoIkNPUlNfVU5TVVBQT1JURUQiKSl9KSl9KSxtKHQucyx0KSk6bSh0LnUsdCkpKGUsbixyLGksbyxzKX1xcy5wcm90b3R5cGUuVD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmJ9LHFzLnByb3RvdHlwZS51PWZ1bmN0aW9uKHQsbixlLHIsaSxvKXtpZihjcigpJiYodm9pZCAwPT09bC5mZXRjaHx8dm9pZCAwPT09bC5IZWFkZXJzfHx2b2lkIDA9PT1sLlJlcXVlc3QpKXRocm93IG5ldyBJKCJvcGVyYXRpb24tbm90LXN1cHBvcnRlZC1pbi10aGlzLWVudmlyb25tZW50IiwiZmV0Y2gsIEhlYWRlcnMgYW5kIFJlcXVlc3QgbmF0aXZlIEFQSXMgb3IgZXF1aXZhbGVudCBQb2x5ZmlsbHMgbXVzdCBiZSBhdmFpbGFibGUgdG8gc3VwcG9ydCBIVFRQIHJlcXVlc3RzIGZyb20gYSBXb3JrZXIgZW52aXJvbm1lbnQuIik7dmFyIHMsYT1uZXcgY3ModGhpcy5mKTtvJiYoYS5nPU1hdGgubWF4KDAsbykscz1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7YS5kaXNwYXRjaEV2ZW50KCJ0aW1lb3V0Iil9LG8pKSxmbihhLCJjb21wbGV0ZSIsZnVuY3Rpb24oKXtzJiZjbGVhclRpbWVvdXQocyk7dmFyIGU9bnVsbDt0cnl7ZT1KU09OLnBhcnNlKGZ1bmN0aW9uKGUpe3RyeXtyZXR1cm4gZS5hP2UuYS5yZXNwb25zZVRleHQ6IiJ9Y2F0Y2godCl7cmV0dXJuIG5zKGUuYiwiQ2FuIG5vdCBnZXQgcmVzcG9uc2VUZXh0OiAiK3QubWVzc2FnZSksIiJ9fSh0aGlzKSl8fG51bGx9Y2F0Y2godCl7ZT1udWxsfW4mJm4oZSl9KSxwbihhLCJyZWFkeSIsZnVuY3Rpb24oKXtzJiZjbGVhclRpbWVvdXQocyksTGUodGhpcyl9KSxwbihhLCJ0aW1lb3V0IixmdW5jdGlvbigpe3MmJmNsZWFyVGltZW91dChzKSxMZSh0aGlzKSxuJiZuKG51bGwpfSkscHMoYSx0LGUscixpKX07dmFyICRzPW5ldyBwdCh5dCwiaHR0cHM6Ly9hcGlzLmdvb2dsZS5jb20vanMvY2xpZW50LmpzP29ubG9hZD0le29ubG9hZH0iKSxacz0iX19mY2IiK01hdGguZmxvb3IoMWU2Kk1hdGgucmFuZG9tKCkpLnRvU3RyaW5nKCk7ZnVuY3Rpb24gdGEodCxlLG4scixpLG8scyl7dmFyIGE9a24oZStuKTtObihhLCJrZXkiLHQuYykscyYmTm4oYSwiY2IiLERhdGUubm93KCkudG9TdHJpbmcoKSk7dmFyIHU9IkdFVCI9PXI7aWYodSlmb3IodmFyIGMgaW4gaSlpLmhhc093blByb3BlcnR5KGMpJiZObihhLGMsaVtjXSk7cmV0dXJuIG5ldyBmZShmdW5jdGlvbihlLG4pe0pzKHQsYS50b1N0cmluZygpLGZ1bmN0aW9uKHQpe3Q/dC5lcnJvcj9uKFlhKHQsb3x8e30pKTplKHQpOm4obmV3IEkoIm5ldHdvcmstcmVxdWVzdC1mYWlsZWQiKSl9LHIsdT92b2lkIDA6em4oU3IoaSkpLHQuYSx0LnYuZ2V0KCkpfSl9ZnVuY3Rpb24gZWEodCl7aWYoInN0cmluZyIhPXR5cGVvZih0PXQuZW1haWwpfHwhb3IudGVzdCh0KSl0aHJvdyBuZXcgSSgiaW52YWxpZC1lbWFpbCIpfWZ1bmN0aW9uIG5hKHQpeyJlbWFpbCJpbiB0JiZlYSh0KX1mdW5jdGlvbiByYSh0KXtpZighdFtCc10pe2lmKHQubWZhUGVuZGluZ0NyZWRlbnRpYWwpdGhyb3cgbmV3IEkoIm11bHRpLWZhY3Rvci1hdXRoLXJlcXVpcmVkIixudWxsLGN0KHQpKTt0aHJvdyBuZXcgSSgiaW50ZXJuYWwtZXJyb3IiKX19ZnVuY3Rpb24gaWEodCl7aWYodC5waG9uZU51bWJlcnx8dC50ZW1wb3JhcnlQcm9vZil7aWYoIXQucGhvbmVOdW1iZXJ8fCF0LnRlbXBvcmFyeVByb29mKXRocm93IG5ldyBJKCJpbnRlcm5hbC1lcnJvciIpfWVsc2V7aWYoIXQuc2Vzc2lvbkluZm8pdGhyb3cgbmV3IEkoIm1pc3NpbmctdmVyaWZpY2F0aW9uLWlkIik7aWYoIXQuY29kZSl0aHJvdyBuZXcgSSgibWlzc2luZy12ZXJpZmljYXRpb24tY29kZSIpfX1xcy5wcm90b3R5cGUucz1mdW5jdGlvbih0LG4scixpLG8pe3ZhciBzPXRoaXM7VnMudGhlbihmdW5jdGlvbigpe3dpbmRvdy5nYXBpLmNsaWVudC5zZXRBcGlLZXkocy5jKTt2YXIgZT13aW5kb3cuZ2FwaS5hdXRoLmdldFRva2VuKCk7d2luZG93LmdhcGkuYXV0aC5zZXRUb2tlbihudWxsKSx3aW5kb3cuZ2FwaS5jbGllbnQucmVxdWVzdCh7cGF0aDp0LG1ldGhvZDpyLGJvZHk6aSxoZWFkZXJzOm8sYXV0aFR5cGU6Im5vbmUiLGNhbGxiYWNrOmZ1bmN0aW9uKHQpe3dpbmRvdy5nYXBpLmF1dGguc2V0VG9rZW4oZSksbiYmbih0KX19KX0pLm8oZnVuY3Rpb24odCl7biYmbih7ZXJyb3I6e21lc3NhZ2U6dCYmdC5tZXNzYWdlfHwiQ09SU19VTlNVUFBPUlRFRCJ9fSl9KX0scXMucHJvdG90eXBlLnpiPWZ1bmN0aW9uKCl7cmV0dXJuIHphKHRoaXMsTGEse30pfSxxcy5wcm90b3R5cGUuQmI9ZnVuY3Rpb24odCxlKXtyZXR1cm4gemEodGhpcyxEYSx7aWRUb2tlbjp0LGVtYWlsOmV9KX0scXMucHJvdG90eXBlLkNiPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHphKHRoaXMseGEse2lkVG9rZW46dCxwYXNzd29yZDplfSl9O3ZhciBvYT17ZGlzcGxheU5hbWU6IkRJU1BMQVlfTkFNRSIscGhvdG9Vcmw6IlBIT1RPX1VSTCJ9O2Z1bmN0aW9uIHNhKHQpe2lmKCF0LnBob25lVmVyaWZpY2F0aW9uSW5mbyl0aHJvdyBuZXcgSSgiaW50ZXJuYWwtZXJyb3IiKTtpZighdC5waG9uZVZlcmlmaWNhdGlvbkluZm8uc2Vzc2lvbkluZm8pdGhyb3cgbmV3IEkoIm1pc3NpbmctdmVyaWZpY2F0aW9uLWlkIik7aWYoIXQucGhvbmVWZXJpZmljYXRpb25JbmZvLmNvZGUpdGhyb3cgbmV3IEkoIm1pc3NpbmctdmVyaWZpY2F0aW9uLWNvZGUiKX1mdW5jdGlvbiBhYSh0KXtpZighdC5yZXF1ZXN0VXJpfHwhdC5zZXNzaW9uSWQmJiF0LnBvc3RCb2R5JiYhdC5wZW5kaW5nVG9rZW4pdGhyb3cgbmV3IEkoImludGVybmFsLWVycm9yIil9ZnVuY3Rpb24gdWEodCxlKXtyZXR1cm4gZS5vYXV0aElkVG9rZW4mJmUucHJvdmlkZXJJZCYmMD09ZS5wcm92aWRlcklkLmluZGV4T2YoIm9pZGMuIikmJiFlLnBlbmRpbmdUb2tlbiYmKHQuc2Vzc2lvbklkP2Uubm9uY2U9dC5zZXNzaW9uSWQ6dC5wb3N0Qm9keSYmKEtuKHQ9bmV3IGpuKHQucG9zdEJvZHkpLCJub25jZSIpJiYoZS5ub25jZT10LmdldCgibm9uY2UiKSkpKSxlfWZ1bmN0aW9uIGNhKHQpe3ZhciBlPW51bGw7aWYodC5uZWVkQ29uZmlybWF0aW9uPyh0LmNvZGU9ImFjY291bnQtZXhpc3RzLXdpdGgtZGlmZmVyZW50LWNyZWRlbnRpYWwiLGU9Rm8odCkpOiJGRURFUkFURURfVVNFUl9JRF9BTFJFQURZX0xJTktFRCI9PXQuZXJyb3JNZXNzYWdlPyh0LmNvZGU9ImNyZWRlbnRpYWwtYWxyZWFkeS1pbi11c2UiLGU9Rm8odCkpOiJFTUFJTF9FWElTVFMiPT10LmVycm9yTWVzc2FnZT8odC5jb2RlPSJlbWFpbC1hbHJlYWR5LWluLXVzZSIsZT1Gbyh0KSk6dC5lcnJvck1lc3NhZ2UmJihlPVFhKHQuZXJyb3JNZXNzYWdlKSksZSl0aHJvdyBlO3JhKHQpfWZ1bmN0aW9uIGhhKHQsZSl7cmV0dXJuIGUucmV0dXJuSWRwQ3JlZGVudGlhbD0hMCx6YSh0LFVhLGUpfWZ1bmN0aW9uIGxhKHQsZSl7cmV0dXJuIGUucmV0dXJuSWRwQ3JlZGVudGlhbD0hMCx6YSh0LHFhLGUpfWZ1bmN0aW9uIGZhKHQsZSl7cmV0dXJuIGUucmV0dXJuSWRwQ3JlZGVudGlhbD0hMCxlLmF1dG9DcmVhdGU9ITEsemEodCxqYSxlKX1mdW5jdGlvbiBwYSh0KXtpZighdC5vb2JDb2RlKXRocm93IG5ldyBJKCJpbnZhbGlkLWFjdGlvbi1jb2RlIil9KHQ9cXMucHJvdG90eXBlKS5EYj1mdW5jdGlvbih0LHIpe3ZhciBpPXtpZFRva2VuOnR9LG89W107cmV0dXJuIGF0KG9hLGZ1bmN0aW9uKHQsZSl7dmFyIG49cltlXTtudWxsPT09bj9vLnB1c2godCk6ZSBpbiByJiYoaVtlXT1uKX0pLG8ubGVuZ3RoJiYoaS5kZWxldGVBdHRyaWJ1dGU9byksemEodGhpcyxEYSxpKX0sdC52Yj1mdW5jdGlvbih0LGUpe3JldHVybiBsdCh0PXtyZXF1ZXN0VHlwZToiUEFTU1dPUkRfUkVTRVQiLGVtYWlsOnR9LGUpLHphKHRoaXMsQWEsdCl9LHQud2I9ZnVuY3Rpb24odCxlKXtyZXR1cm4gbHQodD17cmVxdWVzdFR5cGU6IkVNQUlMX1NJR05JTiIsZW1haWw6dH0sZSksemEodGhpcyxTYSx0KX0sdC51Yj1mdW5jdGlvbih0LGUpe3JldHVybiBsdCh0PXtyZXF1ZXN0VHlwZToiVkVSSUZZX0VNQUlMIixpZFRva2VuOnR9LGUpLHphKHRoaXMsQ2EsdCl9LHQuRWI9ZnVuY3Rpb24odCxlLG4pe3JldHVybiBsdCh0PXtyZXF1ZXN0VHlwZToiVkVSSUZZX0FORF9DSEFOR0VfRU1BSUwiLGlkVG9rZW46dCxuZXdFbWFpbDplfSxuKSx6YSh0aGlzLE5hLHQpfSx0LmZiPWZ1bmN0aW9uKHQpe3JldHVybiB6YSh0aGlzLEthLHQpfSx0Lm5iPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHphKHRoaXMsUGEse29vYkNvZGU6dCxuZXdQYXNzd29yZDplfSl9LHQuUmE9ZnVuY3Rpb24odCl7cmV0dXJuIHphKHRoaXMsdmEse29vYkNvZGU6dH0pfSx0LmpiPWZ1bmN0aW9uKHQpe3JldHVybiB6YSh0aGlzLGRhLHtvb2JDb2RlOnR9KX07dmFyIGRhPXtlbmRwb2ludDoic2V0QWNjb3VudEluZm8iLEE6cGEsWjoiZW1haWwiLEI6ITB9LHZhPXtlbmRwb2ludDoicmVzZXRQYXNzd29yZCIsQTpwYSxHOmZ1bmN0aW9uKHQpe3ZhciBlPXQucmVxdWVzdFR5cGU7aWYoIWV8fCF0LmVtYWlsJiYiRU1BSUxfU0lHTklOIiE9ZSYmIlZFUklGWV9BTkRfQ0hBTkdFX0VNQUlMIiE9ZSl0aHJvdyBuZXcgSSgiaW50ZXJuYWwtZXJyb3IiKX0sQjohMH0sZ2E9e2VuZHBvaW50OiJzaWdudXBOZXdVc2VyIixBOmZ1bmN0aW9uKHQpe2lmKGVhKHQpLCF0LnBhc3N3b3JkKXRocm93IG5ldyBJKCJ3ZWFrLXBhc3N3b3JkIil9LEc6cmEsVjohMCxCOiEwfSx5YT17ZW5kcG9pbnQ6ImNyZWF0ZUF1dGhVcmkiLEI6ITB9LG1hPXtlbmRwb2ludDoiZGVsZXRlQWNjb3VudCIsTjpbImlkVG9rZW4iXX0sYmE9e2VuZHBvaW50OiJzZXRBY2NvdW50SW5mbyIsTjpbImlkVG9rZW4iLCJkZWxldGVQcm92aWRlciJdLEE6ZnVuY3Rpb24odCl7aWYoIUFycmF5LmlzQXJyYXkodC5kZWxldGVQcm92aWRlcikpdGhyb3cgbmV3IEkoImludGVybmFsLWVycm9yIil9fSx3YT17ZW5kcG9pbnQ6ImVtYWlsTGlua1NpZ25pbiIsTjpbImVtYWlsIiwib29iQ29kZSJdLEE6ZWEsRzpyYSxWOiEwLEI6ITB9LF9hPXtlbmRwb2ludDoiZW1haWxMaW5rU2lnbmluIixOOlsiaWRUb2tlbiIsImVtYWlsIiwib29iQ29kZSJdLEE6ZWEsRzpyYSxWOiEwfSxJYT17ZW5kcG9pbnQ6ImFjY291bnRzL21mYUVucm9sbG1lbnQ6ZmluYWxpemUiLE46WyJpZFRva2VuIiwicGhvbmVWZXJpZmljYXRpb25JbmZvIl0sQTpzYSxHOnJhLEI6ITAsTmE6ITB9LFRhPXtlbmRwb2ludDoiYWNjb3VudHMvbWZhU2lnbkluOmZpbmFsaXplIixOOlsibWZhUGVuZGluZ0NyZWRlbnRpYWwiLCJwaG9uZVZlcmlmaWNhdGlvbkluZm8iXSxBOnNhLEc6cmEsQjohMCxOYTohMH0sRWE9e2VuZHBvaW50OiJnZXRBY2NvdW50SW5mbyJ9LFNhPXtlbmRwb2ludDoiZ2V0T29iQ29uZmlybWF0aW9uQ29kZSIsTjpbInJlcXVlc3RUeXBlIl0sQTpmdW5jdGlvbih0KXtpZigiRU1BSUxfU0lHTklOIiE9dC5yZXF1ZXN0VHlwZSl0aHJvdyBuZXcgSSgiaW50ZXJuYWwtZXJyb3IiKTtlYSh0KX0sWjoiZW1haWwiLEI6ITB9LENhPXtlbmRwb2ludDoiZ2V0T29iQ29uZmlybWF0aW9uQ29kZSIsTjpbImlkVG9rZW4iLCJyZXF1ZXN0VHlwZSJdLEE6ZnVuY3Rpb24odCl7aWYoIlZFUklGWV9FTUFJTCIhPXQucmVxdWVzdFR5cGUpdGhyb3cgbmV3IEkoImludGVybmFsLWVycm9yIil9LFo6ImVtYWlsIixCOiEwfSxOYT17ZW5kcG9pbnQ6ImdldE9vYkNvbmZpcm1hdGlvbkNvZGUiLE46WyJpZFRva2VuIiwibmV3RW1haWwiLCJyZXF1ZXN0VHlwZSJdLEE6ZnVuY3Rpb24odCl7aWYoIlZFUklGWV9BTkRfQ0hBTkdFX0VNQUlMIiE9dC5yZXF1ZXN0VHlwZSl0aHJvdyBuZXcgSSgiaW50ZXJuYWwtZXJyb3IiKX0sWjoiZW1haWwiLEI6ITB9LEFhPXtlbmRwb2ludDoiZ2V0T29iQ29uZmlybWF0aW9uQ29kZSIsTjpbInJlcXVlc3RUeXBlIl0sQTpmdW5jdGlvbih0KXtpZigiUEFTU1dPUkRfUkVTRVQiIT10LnJlcXVlc3RUeXBlKXRocm93IG5ldyBJKCJpbnRlcm5hbC1lcnJvciIpO2VhKHQpfSxaOiJlbWFpbCIsQjohMH0sa2E9e2xiOiEwLGVuZHBvaW50OiJnZXRQcm9qZWN0Q29uZmlnIixVYjoiR0VUIn0sUmE9e2xiOiEwLGVuZHBvaW50OiJnZXRSZWNhcHRjaGFQYXJhbSIsVWI6IkdFVCIsRzpmdW5jdGlvbih0KXtpZighdC5yZWNhcHRjaGFTaXRlS2V5KXRocm93IG5ldyBJKCJpbnRlcm5hbC1lcnJvciIpfX0sUGE9e2VuZHBvaW50OiJyZXNldFBhc3N3b3JkIixBOnBhLFo6ImVtYWlsIixCOiEwfSxPYT17ZW5kcG9pbnQ6InNlbmRWZXJpZmljYXRpb25Db2RlIixOOlsicGhvbmVOdW1iZXIiLCJyZWNhcHRjaGFUb2tlbiJdLFo6InNlc3Npb25JbmZvIixCOiEwfSxEYT17ZW5kcG9pbnQ6InNldEFjY291bnRJbmZvIixOOlsiaWRUb2tlbiJdLEE6bmEsVjohMH0seGE9e2VuZHBvaW50OiJzZXRBY2NvdW50SW5mbyIsTjpbImlkVG9rZW4iXSxBOmZ1bmN0aW9uKHQpe2lmKG5hKHQpLCF0LnBhc3N3b3JkKXRocm93IG5ldyBJKCJ3ZWFrLXBhc3N3b3JkIil9LEc6cmEsVjohMH0sTGE9e2VuZHBvaW50OiJzaWdudXBOZXdVc2VyIixHOnJhLFY6ITAsQjohMH0sTWE9e2VuZHBvaW50OiJhY2NvdW50cy9tZmFFbnJvbGxtZW50OnN0YXJ0IixOOlsiaWRUb2tlbiIsInBob25lRW5yb2xsbWVudEluZm8iXSxBOmZ1bmN0aW9uKHQpe2lmKCF0LnBob25lRW5yb2xsbWVudEluZm8pdGhyb3cgbmV3IEkoImludGVybmFsLWVycm9yIik7aWYoIXQucGhvbmVFbnJvbGxtZW50SW5mby5waG9uZU51bWJlcil0aHJvdyBuZXcgSSgibWlzc2luZy1waG9uZS1udW1iZXIiKTtpZighdC5waG9uZUVucm9sbG1lbnRJbmZvLnJlY2FwdGNoYVRva2VuKXRocm93IG5ldyBJKCJtaXNzaW5nLWFwcC1jcmVkZW50aWFsIil9LEc6ZnVuY3Rpb24odCl7aWYoIXQucGhvbmVTZXNzaW9uSW5mb3x8IXQucGhvbmVTZXNzaW9uSW5mby5zZXNzaW9uSW5mbyl0aHJvdyBuZXcgSSgiaW50ZXJuYWwtZXJyb3IiKX0sQjohMCxOYTohMH0sRmE9e2VuZHBvaW50OiJhY2NvdW50cy9tZmFTaWduSW46c3RhcnQiLE46WyJtZmFQZW5kaW5nQ3JlZGVudGlhbCIsIm1mYUVucm9sbG1lbnRJZCIsInBob25lU2lnbkluSW5mbyJdLEE6ZnVuY3Rpb24odCl7aWYoIXQucGhvbmVTaWduSW5JbmZvfHwhdC5waG9uZVNpZ25JbkluZm8ucmVjYXB0Y2hhVG9rZW4pdGhyb3cgbmV3IEkoIm1pc3NpbmctYXBwLWNyZWRlbnRpYWwiKX0sRzpmdW5jdGlvbih0KXtpZighdC5waG9uZVJlc3BvbnNlSW5mb3x8IXQucGhvbmVSZXNwb25zZUluZm8uc2Vzc2lvbkluZm8pdGhyb3cgbmV3IEkoImludGVybmFsLWVycm9yIil9LEI6ITAsTmE6ITB9LFVhPXtlbmRwb2ludDoidmVyaWZ5QXNzZXJ0aW9uIixBOmFhLFlhOnVhLEc6Y2EsVjohMCxCOiEwfSxqYT17ZW5kcG9pbnQ6InZlcmlmeUFzc2VydGlvbiIsQTphYSxZYTp1YSxHOmZ1bmN0aW9uKHQpe2lmKHQuZXJyb3JNZXNzYWdlJiYiVVNFUl9OT1RfRk9VTkQiPT10LmVycm9yTWVzc2FnZSl0aHJvdyBuZXcgSSgidXNlci1ub3QtZm91bmQiKTtpZih0LmVycm9yTWVzc2FnZSl0aHJvdyBRYSh0LmVycm9yTWVzc2FnZSk7cmEodCl9LFY6ITAsQjohMH0scWE9e2VuZHBvaW50OiJ2ZXJpZnlBc3NlcnRpb24iLEE6ZnVuY3Rpb24odCl7aWYoYWEodCksIXQuaWRUb2tlbil0aHJvdyBuZXcgSSgiaW50ZXJuYWwtZXJyb3IiKX0sWWE6dWEsRzpjYSxWOiEwfSxWYT17ZW5kcG9pbnQ6InZlcmlmeUN1c3RvbVRva2VuIixBOmZ1bmN0aW9uKHQpe2lmKCF0LnRva2VuKXRocm93IG5ldyBJKCJpbnZhbGlkLWN1c3RvbS10b2tlbiIpfSxHOnJhLFY6ITAsQjohMH0sQmE9e2VuZHBvaW50OiJ2ZXJpZnlQYXNzd29yZCIsQTpmdW5jdGlvbih0KXtpZihlYSh0KSwhdC5wYXNzd29yZCl0aHJvdyBuZXcgSSgid3JvbmctcGFzc3dvcmQiKX0sRzpyYSxWOiEwLEI6ITB9LEthPXtlbmRwb2ludDoidmVyaWZ5UGhvbmVOdW1iZXIiLEE6aWEsRzpyYSxCOiEwfSxXYT17ZW5kcG9pbnQ6InZlcmlmeVBob25lTnVtYmVyIixBOmZ1bmN0aW9uKHQpe2lmKCF0LmlkVG9rZW4pdGhyb3cgbmV3IEkoImludGVybmFsLWVycm9yIik7aWEodCl9LEc6ZnVuY3Rpb24odCl7aWYodC50ZW1wb3JhcnlQcm9vZil0aHJvdyB0LmNvZGU9ImNyZWRlbnRpYWwtYWxyZWFkeS1pbi11c2UiLEZvKHQpO3JhKHQpfX0sSGE9e0hiOntVU0VSX05PVF9GT1VORDoidXNlci1ub3QtZm91bmQifSxlbmRwb2ludDoidmVyaWZ5UGhvbmVOdW1iZXIiLEE6aWEsRzpyYSxCOiEwfSxHYT17ZW5kcG9pbnQ6ImFjY291bnRzL21mYUVucm9sbG1lbnQ6d2l0aGRyYXciLE46WyJpZFRva2VuIiwibWZhRW5yb2xsbWVudElkIl0sRzpmdW5jdGlvbih0KXtpZighIXRbQnNdXiEhdC5yZWZyZXNoVG9rZW4pdGhyb3cgbmV3IEkoImludGVybmFsLWVycm9yIil9LEI6ITAsTmE6ITB9O2Z1bmN0aW9uIHphKHQsZSxuKXtpZighZnVuY3Rpb24odCxlKXtpZighZXx8IWUubGVuZ3RoKXJldHVybiAxO2lmKHQpe2Zvcih2YXIgbj0wO248ZS5sZW5ndGg7bisrKXt2YXIgcj10W2Vbbl1dO2lmKG51bGw9PXJ8fCIiPT09cilyZXR1cm59cmV0dXJuIDF9fShuLGUuTikpcmV0dXJuIHdlKG5ldyBJKCJpbnRlcm5hbC1lcnJvciIpKTt2YXIgcixpPSEhZS5OYSxvPWUuVWJ8fCJQT1NUIjtyZXR1cm4gYmUobikudGhlbihlLkEpLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gZS5WJiYobi5yZXR1cm5TZWN1cmVUb2tlbj0hMCksZS5CJiZ0LmImJnZvaWQgMD09PW4udGVuYW50SWQmJihuLnRlbmFudElkPXQuYiksdGEodCxpP3QuaTp0LmgsZS5lbmRwb2ludCxvLG4sZS5IYixlLmxifHwhMSl9KS50aGVuKGZ1bmN0aW9uKHQpe3JldHVybiByPXQsZS5ZYT9lLllhKG4scik6cn0pLnRoZW4oZS5HKS50aGVuKGZ1bmN0aW9uKCl7aWYoIWUuWilyZXR1cm4gcjtpZighKGUuWiBpbiByKSl0aHJvdyBuZXcgSSgiaW50ZXJuYWwtZXJyb3IiKTtyZXR1cm4gcltlLlpdfSl9ZnVuY3Rpb24gUWEodCl7cmV0dXJuIFlhKHtlcnJvcjp7ZXJyb3JzOlt7bWVzc2FnZTp0fV0sY29kZTo0MDAsbWVzc2FnZTp0fX0pfWZ1bmN0aW9uIFlhKHQsZSl7dmFyIG4scj0odC5lcnJvciYmdC5lcnJvci5lcnJvcnMmJnQuZXJyb3IuZXJyb3JzWzBdfHx7fSkucmVhc29ufHwiIixpPXtrZXlJbnZhbGlkOiJpbnZhbGlkLWFwaS1rZXkiLGlwUmVmZXJlckJsb2NrZWQ6ImFwcC1ub3QtYXV0aG9yaXplZCJ9O2lmKHI9aVtyXT9uZXcgSShpW3JdKTpudWxsKXJldHVybiByO2ZvcihuIGluIHI9dC5lcnJvciYmdC5lcnJvci5tZXNzYWdlfHwiIixsdChpPXtJTlZBTElEX0NVU1RPTV9UT0tFTjoiaW52YWxpZC1jdXN0b20tdG9rZW4iLENSRURFTlRJQUxfTUlTTUFUQ0g6ImN1c3RvbS10b2tlbi1taXNtYXRjaCIsTUlTU0lOR19DVVNUT01fVE9LRU46ImludGVybmFsLWVycm9yIixJTlZBTElEX0lERU5USUZJRVI6ImludmFsaWQtZW1haWwiLE1JU1NJTkdfQ09OVElOVUVfVVJJOiJpbnRlcm5hbC1lcnJvciIsSU5WQUxJRF9FTUFJTDoiaW52YWxpZC1lbWFpbCIsSU5WQUxJRF9QQVNTV09SRDoid3JvbmctcGFzc3dvcmQiLFVTRVJfRElTQUJMRUQ6InVzZXItZGlzYWJsZWQiLE1JU1NJTkdfUEFTU1dPUkQ6ImludGVybmFsLWVycm9yIixFTUFJTF9FWElTVFM6ImVtYWlsLWFscmVhZHktaW4tdXNlIixQQVNTV09SRF9MT0dJTl9ESVNBQkxFRDoib3BlcmF0aW9uLW5vdC1hbGxvd2VkIixJTlZBTElEX0lEUF9SRVNQT05TRToiaW52YWxpZC1jcmVkZW50aWFsIixJTlZBTElEX1BFTkRJTkdfVE9LRU46ImludmFsaWQtY3JlZGVudGlhbCIsRkVERVJBVEVEX1VTRVJfSURfQUxSRUFEWV9MSU5LRUQ6ImNyZWRlbnRpYWwtYWxyZWFkeS1pbi11c2UiLE1JU1NJTkdfT1JfSU5WQUxJRF9OT05DRToibWlzc2luZy1vci1pbnZhbGlkLW5vbmNlIixJTlZBTElEX01FU1NBR0VfUEFZTE9BRDoiaW52YWxpZC1tZXNzYWdlLXBheWxvYWQiLElOVkFMSURfUkVDSVBJRU5UX0VNQUlMOiJpbnZhbGlkLXJlY2lwaWVudC1lbWFpbCIsSU5WQUxJRF9TRU5ERVI6ImludmFsaWQtc2VuZGVyIixFTUFJTF9OT1RfRk9VTkQ6InVzZXItbm90LWZvdW5kIixSRVNFVF9QQVNTV09SRF9FWENFRURfTElNSVQ6InRvby1tYW55LXJlcXVlc3RzIixFWFBJUkVEX09PQl9DT0RFOiJleHBpcmVkLWFjdGlvbi1jb2RlIixJTlZBTElEX09PQl9DT0RFOiJpbnZhbGlkLWFjdGlvbi1jb2RlIixNSVNTSU5HX09PQl9DT0RFOiJpbnRlcm5hbC1lcnJvciIsSU5WQUxJRF9QUk9WSURFUl9JRDoiaW52YWxpZC1wcm92aWRlci1pZCIsQ1JFREVOVElBTF9UT09fT0xEX0xPR0lOX0FHQUlOOiJyZXF1aXJlcy1yZWNlbnQtbG9naW4iLElOVkFMSURfSURfVE9LRU46ImludmFsaWQtdXNlci10b2tlbiIsVE9LRU5fRVhQSVJFRDoidXNlci10b2tlbi1leHBpcmVkIixVU0VSX05PVF9GT1VORDoidXNlci10b2tlbi1leHBpcmVkIixDT1JTX1VOU1VQUE9SVEVEOiJjb3JzLXVuc3VwcG9ydGVkIixEWU5BTUlDX0xJTktfTk9UX0FDVElWQVRFRDoiZHluYW1pYy1saW5rLW5vdC1hY3RpdmF0ZWQiLElOVkFMSURfQVBQX0lEOiJpbnZhbGlkLWFwcC1pZCIsVE9PX01BTllfQVRURU1QVFNfVFJZX0xBVEVSOiJ0b28tbWFueS1yZXF1ZXN0cyIsV0VBS19QQVNTV09SRDoid2Vhay1wYXNzd29yZCIsT1BFUkFUSU9OX05PVF9BTExPV0VEOiJvcGVyYXRpb24tbm90LWFsbG93ZWQiLFVTRVJfQ0FOQ0VMTEVEOiJ1c2VyLWNhbmNlbGxlZCIsQ0FQVENIQV9DSEVDS19GQUlMRUQ6ImNhcHRjaGEtY2hlY2stZmFpbGVkIixJTlZBTElEX0FQUF9DUkVERU5USUFMOiJpbnZhbGlkLWFwcC1jcmVkZW50aWFsIixJTlZBTElEX0NPREU6ImludmFsaWQtdmVyaWZpY2F0aW9uLWNvZGUiLElOVkFMSURfUEhPTkVfTlVNQkVSOiJpbnZhbGlkLXBob25lLW51bWJlciIsSU5WQUxJRF9TRVNTSU9OX0lORk86ImludmFsaWQtdmVyaWZpY2F0aW9uLWlkIixJTlZBTElEX1RFTVBPUkFSWV9QUk9PRjoiaW52YWxpZC1jcmVkZW50aWFsIixNSVNTSU5HX0FQUF9DUkVERU5USUFMOiJtaXNzaW5nLWFwcC1jcmVkZW50aWFsIixNSVNTSU5HX0NPREU6Im1pc3NpbmctdmVyaWZpY2F0aW9uLWNvZGUiLE1JU1NJTkdfUEhPTkVfTlVNQkVSOiJtaXNzaW5nLXBob25lLW51bWJlciIsTUlTU0lOR19TRVNTSU9OX0lORk86Im1pc3NpbmctdmVyaWZpY2F0aW9uLWlkIixRVU9UQV9FWENFRURFRDoicXVvdGEtZXhjZWVkZWQiLFNFU1NJT05fRVhQSVJFRDoiY29kZS1leHBpcmVkIixSRUpFQ1RFRF9DUkVERU5USUFMOiJyZWplY3RlZC1jcmVkZW50aWFsIixJTlZBTElEX0NPTlRJTlVFX1VSSToiaW52YWxpZC1jb250aW51ZS11cmkiLE1JU1NJTkdfQU5EUk9JRF9QQUNLQUdFX05BTUU6Im1pc3NpbmctYW5kcm9pZC1wa2ctbmFtZSIsTUlTU0lOR19JT1NfQlVORExFX0lEOiJtaXNzaW5nLWlvcy1idW5kbGUtaWQiLFVOQVVUSE9SSVpFRF9ET01BSU46InVuYXV0aG9yaXplZC1jb250aW51ZS11cmkiLElOVkFMSURfRFlOQU1JQ19MSU5LX0RPTUFJTjoiaW52YWxpZC1keW5hbWljLWxpbmstZG9tYWluIixJTlZBTElEX09BVVRIX0NMSUVOVF9JRDoiaW52YWxpZC1vYXV0aC1jbGllbnQtaWQiLElOVkFMSURfQ0VSVF9IQVNIOiJpbnZhbGlkLWNlcnQtaGFzaCIsVU5TVVBQT1JURURfVEVOQU5UX09QRVJBVElPTjoidW5zdXBwb3J0ZWQtdGVuYW50LW9wZXJhdGlvbiIsSU5WQUxJRF9URU5BTlRfSUQ6ImludmFsaWQtdGVuYW50LWlkIixURU5BTlRfSURfTUlTTUFUQ0g6InRlbmFudC1pZC1taXNtYXRjaCIsQURNSU5fT05MWV9PUEVSQVRJT046ImFkbWluLXJlc3RyaWN0ZWQtb3BlcmF0aW9uIixJTlZBTElEX01GQV9QRU5ESU5HX0NSRURFTlRJQUw6ImludmFsaWQtbXVsdGktZmFjdG9yLXNlc3Npb24iLE1GQV9FTlJPTExNRU5UX05PVF9GT1VORDoibXVsdGktZmFjdG9yLWluZm8tbm90LWZvdW5kIixNSVNTSU5HX01GQV9QRU5ESU5HX0NSRURFTlRJQUw6Im1pc3NpbmctbXVsdGktZmFjdG9yLXNlc3Npb24iLE1JU1NJTkdfTUZBX0VOUk9MTE1FTlRfSUQ6Im1pc3NpbmctbXVsdGktZmFjdG9yLWluZm8iLEVNQUlMX0NIQU5HRV9ORUVEU19WRVJJRklDQVRJT046ImVtYWlsLWNoYW5nZS1uZWVkcy12ZXJpZmljYXRpb24iLFNFQ09ORF9GQUNUT1JfRVhJU1RTOiJzZWNvbmQtZmFjdG9yLWFscmVhZHktaW4tdXNlIixTRUNPTkRfRkFDVE9SX0xJTUlUX0VYQ0VFREVEOiJtYXhpbXVtLXNlY29uZC1mYWN0b3ItY291bnQtZXhjZWVkZWQiLFVOU1VQUE9SVEVEX0ZJUlNUX0ZBQ1RPUjoidW5zdXBwb3J0ZWQtZmlyc3QtZmFjdG9yIixVTlZFUklGSUVEX0VNQUlMOiJ1bnZlcmlmaWVkLWVtYWlsIn0sZXx8e30pLGU9KGU9ci5tYXRjaCgvXlteXHNdK1xzKjpccyooW1xzXFNdKikkLykpJiYxPGUubGVuZ3RoP2VbMV06dm9pZCAwLGkpaWYoMD09PXIuaW5kZXhPZihuKSlyZXR1cm4gbmV3IEkoaVtuXSxlKTtyZXR1cm4gbmV3IEkoImludGVybmFsLWVycm9yIixlPSFlJiZ0P0VyKHQpOmUpfWZ1bmN0aW9uIFhhKHQpe3ZhciBvO3RoaXMuYj10LHRoaXMuYT1udWxsLHRoaXMucmI9KG89dGhpcywodHU9dHV8fG5ldyBmZShmdW5jdGlvbih0LGUpe2Z1bmN0aW9uIG4oKXtrcigpLG1yKCJnYXBpLmxvYWQiKSgiZ2FwaS5pZnJhbWVzIix7Y2FsbGJhY2s6dCxvbnRpbWVvdXQ6ZnVuY3Rpb24oKXtrcigpLGUoRXJyb3IoIk5ldHdvcmsgRXJyb3IiKSl9LHRpbWVvdXQ6JGEuZ2V0KCl9KX12YXIgcjttcigiZ2FwaS5pZnJhbWVzLklmcmFtZSIpP3QoKTptcigiZ2FwaS5sb2FkIik/bigpOihyPSJfX2lmcmFtZWZjYiIrTWF0aC5mbG9vcigxZTYqTWF0aC5yYW5kb20oKSkudG9TdHJpbmcoKSxsW3JdPWZ1bmN0aW9uKCl7bXIoImdhcGkubG9hZCIpP24oKTplKEVycm9yKCJOZXR3b3JrIEVycm9yIikpfSxiZShEcyhyPV90KEphLHtvbmxvYWQ6cn0pKSkubyhmdW5jdGlvbigpe2UoRXJyb3IoIk5ldHdvcmsgRXJyb3IiKSl9KSl9KS5vKGZ1bmN0aW9uKHQpe3Rocm93IHR1PW51bGwsdH0pKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBmZShmdW5jdGlvbihyLGkpe21yKCJnYXBpLmlmcmFtZXMuZ2V0Q29udGV4dCIpKCkub3Blbih7d2hlcmU6ZG9jdW1lbnQuYm9keSx1cmw6by5iLG1lc3NhZ2VIYW5kbGVyc0ZpbHRlcjptcigiZ2FwaS5pZnJhbWVzLkNST1NTX09SSUdJTl9JRlJBTUVTX0ZJTFRFUiIpLGF0dHJpYnV0ZXM6e3N0eWxlOntwb3NpdGlvbjoiYWJzb2x1dGUiLHRvcDoiLTEwMHB4Iix3aWR0aDoiMXB4IixoZWlnaHQ6IjFweCJ9fSxkb250Y2xlYXI6ITB9LGZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXtjbGVhclRpbWVvdXQobikscigpfW8uYT10LG8uYS5yZXN0eWxlKHtzZXRIaWRlT25MZWF2ZTohMX0pO3ZhciBuPXNldFRpbWVvdXQoZnVuY3Rpb24oKXtpKEVycm9yKCJOZXR3b3JrIEVycm9yIikpfSxaYS5nZXQoKSk7dC5waW5nKGUpLnRoZW4oZSxmdW5jdGlvbigpe2koRXJyb3IoIk5ldHdvcmsgRXJyb3IiKSl9KX0pfSl9KSl9dmFyIEphPW5ldyBwdCh5dCwiaHR0cHM6Ly9hcGlzLmdvb2dsZS5jb20vanMvYXBpLmpzP29ubG9hZD0le29ubG9hZH0iKSwkYT1uZXcgUnIoM2U0LDZlNCksWmE9bmV3IFJyKDVlMywxNWUzKSx0dT1udWxsO2Z1bmN0aW9uIGV1KHQsZSxuLHIpe3RoaXMubD10LHRoaXMuaD1lLHRoaXMuaT1uLHRoaXMuZz1yLHRoaXMuZj1udWxsLHQ9dGhpcy5nP1JuKCh0PWtuKHRoaXMuZy51cmwpKS5jLHQuYSx0LmcsIi9lbXVsYXRvci9hdXRoL2lmcmFtZSIpOlJuKCJodHRwcyIsdGhpcy5sLG51bGwsIi9fXy9hdXRoL2lmcmFtZSIpLHRoaXMuYT10LE5uKHRoaXMuYSwiYXBpS2V5Iix0aGlzLmgpLE5uKHRoaXMuYSwiYXBwTmFtZSIsdGhpcy5pKSx0aGlzLmI9bnVsbCx0aGlzLmM9W119ZnVuY3Rpb24gbnUodCxlLG4scixpLG8pe3RoaXMudT10LHRoaXMucz1lLHRoaXMuYz1uLHRoaXMubT1yLHRoaXMudj1vLHRoaXMuaT10aGlzLmc9dGhpcy5sPW51bGwsdGhpcy5hPWksdGhpcy5oPXRoaXMuZj1udWxsfWZ1bmN0aW9uIHJ1KHQpe3RyeXtyZXR1cm4gWGwuYXBwKHQpLmF1dGgoKS5HYSgpfWNhdGNoKHQpe3JldHVybltdfX1mdW5jdGlvbiBpdSh0LGUsbixyLGksbyl7dGhpcy5zPXQsdGhpcy5nPWUsdGhpcy5iPW4sdGhpcy5mPW8sdGhpcy5jPXJ8fG51bGwsdGhpcy5pPWl8fG51bGwsdGhpcy5sPXRoaXMudT10aGlzLkM9bnVsbCx0aGlzLmg9W10sdGhpcy5tPXRoaXMuYT1udWxsfWZ1bmN0aW9uIG91KHQpe3ZhciBhPVpuKCk7cmV0dXJuIHphKHQsa2Ese30pLnRoZW4oZnVuY3Rpb24odCl7cmV0dXJuIHQuYXV0aG9yaXplZERvbWFpbnN8fFtdfSkudGhlbihmdW5jdGlvbih0KXt0Ontmb3IodmFyIGU9KG49a24oYSkpLmMsbj1uLmEscj0wO3I8dC5sZW5ndGg7cisrKXt2YXIgaT10W3JdLG89bixzPWU7aWYobz0wPT1pLmluZGV4T2YoImNocm9tZS1leHRlbnNpb246Ly8iKT9rbihpKS5hPT1vJiYiY2hyb21lLWV4dGVuc2lvbiI9PXM6KCJodHRwIj09c3x8Imh0dHBzIj09cykmJihpci50ZXN0KGkpP289PWk6KGk9aS5zcGxpdCgiLiIpLmpvaW4oIlxcLiIpLG5ldyBSZWdFeHAoIl4oLitcXC4iK2krInwiK2krIikkIiwiaSIpLnRlc3QobykpKSl7dD0hMDticmVhayB0fX10PSExfWlmKCF0KXRocm93IG5ldyBMbyhabigpKX0pfWZ1bmN0aW9uIHN1KGkpe3JldHVybiBpLm18fChpLm09c3IoKS50aGVuKGZ1bmN0aW9uKCl7dmFyIHQsZSxuLHI7aS51fHwodD1pLmMsZT1pLmksbj1ydShpLmIpLChyPW5ldyBldShpLnMsaS5nLGkuYixpLmYpKS5mPXQsci5iPWUsci5jPXoobnx8W10pLGkudT1yLnRvU3RyaW5nKCkpLGkudj1uZXcgWGEoaS51KSxmdW5jdGlvbihyKXtpZighci52KXRocm93IEVycm9yKCJJZmNIYW5kbGVyIG11c3QgYmUgaW5pdGlhbGl6ZWQhIik7IWZ1bmN0aW9uKHQsZSl7dC5yYi50aGVuKGZ1bmN0aW9uKCl7dC5hLnJlZ2lzdGVyKCJhdXRoRXZlbnQiLGUsbXIoImdhcGkuaWZyYW1lcy5DUk9TU19PUklHSU5fSUZSQU1FU19GSUxURVIiKSl9KX0oci52LGZ1bmN0aW9uKHQpe3ZhciBlPXt9O2lmKHQmJnQuYXV0aEV2ZW50KXt2YXIgbj0hMTtmb3IodD1Qbyh0LmF1dGhFdmVudCksZT0wO2U8ci5oLmxlbmd0aDtlKyspbj1yLmhbZV0odCl8fG47cmV0dXJuKGU9e30pLnN0YXR1cz1uPyJBQ0siOiJFUlJPUiIsYmUoZSl9cmV0dXJuIGUuc3RhdHVzPSJFUlJPUiIsYmUoZSl9KX0oaSl9KSxpLm0pfWZ1bmN0aW9uIGF1KHQpe3JldHVybiB0Lmx8fCh0LkM9dC5jP2dyKHQuYyxydSh0LmIpKTpudWxsLHQubD1uZXcgcXModC5nLEEodC5pKSx0LkMpLHQuZiYmUXModC5sLHQuZikpLHQubH1mdW5jdGlvbiB1dSh0LGUsbixyLGksbyxzLGEsdSxjLGgsbCl7cmV0dXJuKHQ9bmV3IG51KHQsZSxuLHIsaSxsKSkubD1vLHQuZz1zLHQuaT1hLHQuYj1jdCh1fHxudWxsKSx0LmY9Yyx0LnliKGgpLnRvU3RyaW5nKCl9ZnVuY3Rpb24gY3UodCl7aWYodGhpcy5hPXR8fFhsLklOVEVSTkFMLnJlYWN0TmF0aXZlJiZYbC5JTlRFUk5BTC5yZWFjdE5hdGl2ZS5Bc3luY1N0b3JhZ2UsIXRoaXMuYSl0aHJvdyBuZXcgSSgiaW50ZXJuYWwtZXJyb3IiLCJUaGUgUmVhY3QgTmF0aXZlIGNvbXBhdGliaWxpdHkgbGlicmFyeSB3YXMgbm90IGZvdW5kLiIpO3RoaXMudHlwZT0iYXN5bmNTdG9yYWdlIn1mdW5jdGlvbiBodSh0KXt0aGlzLmI9dCx0aGlzLmE9e30sdGhpcy5mPW0odGhpcy5jLHRoaXMpfWV1LnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmY/Tm4odGhpcy5hLCJ2Iix0aGlzLmYpOkJuKHRoaXMuYS5iLCJ2IiksdGhpcy5iP05uKHRoaXMuYSwiZWlkIix0aGlzLmIpOkJuKHRoaXMuYS5iLCJlaWQiKSx0aGlzLmMubGVuZ3RoP05uKHRoaXMuYSwiZnciLHRoaXMuYy5qb2luKCIsIikpOkJuKHRoaXMuYS5iLCJmdyIpLHRoaXMuYS50b1N0cmluZygpfSxudS5wcm90b3R5cGUueWI9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuaD10LHRoaXN9LG51LnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3ZhciB0O2lmKE5uKHQ9dGhpcy52P1JuKCh0PWtuKHRoaXMudi51cmwpKS5jLHQuYSx0LmcsIi9lbXVsYXRvci9hdXRoL2hhbmRsZXIiKTpSbigiaHR0cHMiLHRoaXMudSxudWxsLCIvX18vYXV0aC9oYW5kbGVyIiksImFwaUtleSIsdGhpcy5zKSxObih0LCJhcHBOYW1lIix0aGlzLmMpLE5uKHQsImF1dGhUeXBlIix0aGlzLm0pLHRoaXMuYS5pc09BdXRoUHJvdmlkZXIpe3ZhciBlPXRoaXMuYTt0cnl7dmFyIG49WGwuYXBwKHRoaXMuYykuYXV0aCgpLmxhKCl9Y2F0Y2godCl7bj1udWxsfWZvcihyIGluIGUub2I9bixObih0LCJwcm92aWRlcklkIix0aGlzLmEucHJvdmlkZXJJZCksZT1Tcigobj10aGlzLmEpLkliKSllW3JdPWVbcl0udG9TdHJpbmcoKTtmb3IodmFyIHI9bi5RYyxlPWN0KGUpLGk9MDtpPHIubGVuZ3RoO2krKyl7dmFyIG89cltpXTtvIGluIGUmJmRlbGV0ZSBlW29dfW4ucGImJm4ub2ImJiFlW24ucGJdJiYoZVtuLnBiXT1uLm9iKSx1dChlKXx8Tm4odCwiY3VzdG9tUGFyYW1ldGVycyIsRXIoZSkpfWlmKCJmdW5jdGlvbiI9PXR5cGVvZiB0aGlzLmEuUWImJigobj10aGlzLmEuUWIoKSkubGVuZ3RoJiZObih0LCJzY29wZXMiLG4uam9pbigiLCIpKSksdGhpcy5sP05uKHQsInJlZGlyZWN0VXJsIix0aGlzLmwpOkJuKHQuYiwicmVkaXJlY3RVcmwiKSx0aGlzLmc/Tm4odCwiZXZlbnRJZCIsdGhpcy5nKTpCbih0LmIsImV2ZW50SWQiKSx0aGlzLmk/Tm4odCwidiIsdGhpcy5pKTpCbih0LmIsInYiKSx0aGlzLmIpZm9yKHZhciBzIGluIHRoaXMuYil0aGlzLmIuaGFzT3duUHJvcGVydHkocykmJiFBbih0LHMpJiZObih0LHMsdGhpcy5iW3NdKTtyZXR1cm4gdGhpcy5oP05uKHQsInRpZCIsdGhpcy5oKTpCbih0LmIsInRpZCIpLHRoaXMuZj9Obih0LCJlaWQiLHRoaXMuZik6Qm4odC5iLCJlaWQiKSwocz1ydSh0aGlzLmMpKS5sZW5ndGgmJk5uKHQsImZ3IixzLmpvaW4oIiwiKSksdC50b1N0cmluZygpfSwodD1pdS5wcm90b3R5cGUpLk9iPWZ1bmN0aW9uKGUsbix0KXt2YXIgcj1uZXcgSSgicG9wdXAtY2xvc2VkLWJ5LXVzZXIiKSxpPW5ldyBJKCJ3ZWItc3RvcmFnZS11bnN1cHBvcnRlZCIpLG89dGhpcyxzPSExO3JldHVybiB0aGlzLm1hKCkudGhlbihmdW5jdGlvbigpe3ZhciB0LHI7cj17dHlwZToid2ViU3RvcmFnZVN1cHBvcnQifSxzdSh0PW8pLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gZT10LnYsbj1yLGUucmIudGhlbihmdW5jdGlvbigpe3JldHVybiBuZXcgZmUoZnVuY3Rpb24odCl7ZS5hLnNlbmQobi50eXBlLG4sdCxtcigiZ2FwaS5pZnJhbWVzLkNST1NTX09SSUdJTl9JRlJBTUVTX0ZJTFRFUiIpKX0pfSk7dmFyIGUsbn0pLnRoZW4oZnVuY3Rpb24odCl7aWYodCYmdC5sZW5ndGgmJnZvaWQgMCE9PXRbMF0ud2ViU3RvcmFnZVN1cHBvcnQpcmV0dXJuIHRbMF0ud2ViU3RvcmFnZVN1cHBvcnQ7dGhyb3cgRXJyb3IoKX0pLnRoZW4oZnVuY3Rpb24odCl7dHx8KGUmJm5yKGUpLG4oaSkscz0hMCl9KX0pLm8oZnVuY3Rpb24oKXt9KS50aGVuKGZ1bmN0aW9uKCl7aWYoIXMpcmV0dXJuIG49ZSxuZXcgZmUoZnVuY3Rpb24oZSl7cmV0dXJuIGZ1bmN0aW9uIHQoKXtnbigyZTMpLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gbiYmIW4uY2xvc2VkP3QoKTp2b2lkIGUoKX0pfSgpfSk7dmFyIG59KS50aGVuKGZ1bmN0aW9uKCl7aWYoIXMpcmV0dXJuIGduKHQpLnRoZW4oZnVuY3Rpb24oKXtuKHIpfSl9KX0sdC5YYj1mdW5jdGlvbigpe3ZhciB0PXlyKCk7cmV0dXJuIVRyKHQpJiYhQXIodCl9LHQuVGI9ZnVuY3Rpb24oKXtyZXR1cm4hMX0sdC5NYj1mdW5jdGlvbihlLHQsbixyLGksbyxzLGEpe2lmKCFlKXJldHVybiB3ZShuZXcgSSgicG9wdXAtYmxvY2tlZCIpKTtpZihzJiYhVHIoKSlyZXR1cm4gdGhpcy5tYSgpLm8oZnVuY3Rpb24odCl7bnIoZSksaSh0KX0pLHIoKSxiZSgpO3RoaXMuYXx8KHRoaXMuYT1vdShhdSh0aGlzKSkpO3ZhciB1PXRoaXM7cmV0dXJuIHRoaXMuYS50aGVuKGZ1bmN0aW9uKCl7dmFyIHQ9dS5tYSgpLm8oZnVuY3Rpb24odCl7dGhyb3cgbnIoZSksaSh0KSx0fSk7cmV0dXJuIHIoKSx0fSkudGhlbihmdW5jdGlvbigpe2tvKG4pLHN8fHRyKHV1KHUucyx1LmcsdS5iLHQsbixudWxsLG8sdS5jLHZvaWQgMCx1LmksYSx1LmYpLGUpfSkubyhmdW5jdGlvbih0KXt0aHJvdyJhdXRoL25ldHdvcmstcmVxdWVzdC1mYWlsZWQiPT10LmNvZGUmJih1LmE9bnVsbCksdH0pfSx0Lk5iPWZ1bmN0aW9uKHQsZSxuLHIpe3RoaXMuYXx8KHRoaXMuYT1vdShhdSh0aGlzKSkpO3ZhciBpPXRoaXM7cmV0dXJuIHRoaXMuYS50aGVuKGZ1bmN0aW9uKCl7a28oZSksdHIodXUoaS5zLGkuZyxpLmIsdCxlLFpuKCksbixpLmMsdm9pZCAwLGkuaSxyLGkuZikpfSkubyhmdW5jdGlvbih0KXt0aHJvdyJhdXRoL25ldHdvcmstcmVxdWVzdC1mYWlsZWQiPT10LmNvZGUmJihpLmE9bnVsbCksdH0pfSx0Lm1hPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztyZXR1cm4gc3UodGhpcykudGhlbihmdW5jdGlvbigpe3JldHVybiB0LnYucmJ9KS5vKGZ1bmN0aW9uKCl7dGhyb3cgdC5hPW51bGwsbmV3IEkoIm5ldHdvcmstcmVxdWVzdC1mYWlsZWQiKX0pfSx0LiRiPWZ1bmN0aW9uKCl7cmV0dXJuITB9LHQuRWE9ZnVuY3Rpb24odCl7dGhpcy5oLnB1c2godCl9LHQuU2E9ZnVuY3Rpb24oZSl7SCh0aGlzLmgsZnVuY3Rpb24odCl7cmV0dXJuIHQ9PWV9KX0sKHQ9Y3UucHJvdG90eXBlKS5nZXQ9ZnVuY3Rpb24odCl7cmV0dXJuIGJlKHRoaXMuYS5nZXRJdGVtKHQpKS50aGVuKGZ1bmN0aW9uKHQpe3JldHVybiB0JiZDcih0KX0pfSx0LnNldD1mdW5jdGlvbih0LGUpe3JldHVybiBiZSh0aGlzLmEuc2V0SXRlbSh0LEVyKGUpKSl9LHQuVT1mdW5jdGlvbih0KXtyZXR1cm4gYmUodGhpcy5hLnJlbW92ZUl0ZW0odCkpfSx0LmNhPWZ1bmN0aW9uKCl7fSx0LmlhPWZ1bmN0aW9uKCl7fTt2YXIgbHUsZnU9W107ZnVuY3Rpb24gcHUodCxlLG4pe3V0KHQuYSkmJnQuYi5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIix0LmYpLHZvaWQgMD09PXQuYVtlXSYmKHQuYVtlXT1bXSksdC5hW2VdLnB1c2gobil9ZnVuY3Rpb24gZHUodCl7dGhpcy5hPXR9ZnVuY3Rpb24gdnUodCl7dGhpcy5jPXQsdGhpcy5iPSExLHRoaXMuYT1bXX1mdW5jdGlvbiBndShyLHQsZSxuKXt2YXIgaSxvLHMsYSx1PWV8fHt9LGM9bnVsbDtpZihyLmIpcmV0dXJuIHdlKEVycm9yKCJjb25uZWN0aW9uX3VuYXZhaWxhYmxlIikpO3ZhciBoPW4/ODAwOjUwLGw9InVuZGVmaW5lZCIhPXR5cGVvZiBNZXNzYWdlQ2hhbm5lbD9uZXcgTWVzc2FnZUNoYW5uZWw6bnVsbDtyZXR1cm4gbmV3IGZlKGZ1bmN0aW9uKGUsbil7bD8oaT1NYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqTWF0aC5wb3coMTAsMjApKS50b1N0cmluZygpLGwucG9ydDEuc3RhcnQoKSxzPXNldFRpbWVvdXQoZnVuY3Rpb24oKXtuKEVycm9yKCJ1bnN1cHBvcnRlZF9ldmVudCIpKX0saCksYz17bWVzc2FnZUNoYW5uZWw6bCxvbk1lc3NhZ2U6bz1mdW5jdGlvbih0KXt0LmRhdGEuZXZlbnRJZD09PWkmJigiYWNrIj09PXQuZGF0YS5zdGF0dXM/KGNsZWFyVGltZW91dChzKSxhPXNldFRpbWVvdXQoZnVuY3Rpb24oKXtuKEVycm9yKCJ0aW1lb3V0IikpfSwzZTMpKToiZG9uZSI9PT10LmRhdGEuc3RhdHVzPyhjbGVhclRpbWVvdXQoYSksdm9pZCAwIT09dC5kYXRhLnJlc3BvbnNlP2UodC5kYXRhLnJlc3BvbnNlKTpuKEVycm9yKCJ1bmtub3duX2Vycm9yIikpKTooY2xlYXJUaW1lb3V0KHMpLGNsZWFyVGltZW91dChhKSxuKEVycm9yKCJpbnZhbGlkX3Jlc3BvbnNlIikpKSl9fSxyLmEucHVzaChjKSxsLnBvcnQxLmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLG8pLHIuYy5wb3N0TWVzc2FnZSh7ZXZlbnRUeXBlOnQsZXZlbnRJZDppLGRhdGE6dX0sW2wucG9ydDJdKSk6bihFcnJvcigiY29ubmVjdGlvbl91bmF2YWlsYWJsZSIpKX0pLnRoZW4oZnVuY3Rpb24odCl7cmV0dXJuIHl1KHIsYyksdH0pLm8oZnVuY3Rpb24odCl7dGhyb3cgeXUocixjKSx0fSl9ZnVuY3Rpb24geXUodCxlKXt2YXIgbixyO2UmJihuPWUubWVzc2FnZUNoYW5uZWwscj1lLm9uTWVzc2FnZSxuJiYobi5wb3J0MS5yZW1vdmVFdmVudExpc3RlbmVyKCJtZXNzYWdlIixyKSxuLnBvcnQxLmNsb3NlKCkpLEgodC5hLGZ1bmN0aW9uKHQpe3JldHVybiB0PT1lfSkpfWZ1bmN0aW9uIG11KCl7aWYoIUl1KCkpdGhyb3cgbmV3IEkoIndlYi1zdG9yYWdlLXVuc3VwcG9ydGVkIik7dGhpcy5jPXt9LHRoaXMuYT1bXSx0aGlzLmI9MCx0aGlzLm09bC5pbmRleGVkREIsdGhpcy50eXBlPSJpbmRleGVkREIiLHRoaXMuZz10aGlzLnY9dGhpcy5mPXRoaXMubD1udWxsLHRoaXMucz0hMSx0aGlzLmg9bnVsbDt2YXIgdCxlLG4scj10aGlzO2NyKCkmJnNlbGY/KHRoaXMudj0obj1jcigpP3NlbGY6bnVsbCxqKGZ1LGZ1bmN0aW9uKHQpe3QuYj09biYmKGU9dCl9KSxlfHwoZT1uZXcgaHUobiksZnUucHVzaChlKSksZSkscHUodGhpcy52LCJrZXlDaGFuZ2VkIixmdW5jdGlvbih0LG4pe3JldHVybiBOdShyKS50aGVuKGZ1bmN0aW9uKGUpe3JldHVybiAwPGUubGVuZ3RoJiZqKHIuYSxmdW5jdGlvbih0KXt0KGUpfSkse2tleVByb2Nlc3NlZDpLKGUsbi5rZXkpfX0pfSkscHUodGhpcy52LCJwaW5nIixmdW5jdGlvbigpe3JldHVybiBiZShbImtleUNoYW5nZWQiXSl9KSk6KCh0PWwubmF2aWdhdG9yKSYmdC5zZXJ2aWNlV29ya2VyP2JlKCkudGhlbihmdW5jdGlvbigpe3JldHVybiB0LnNlcnZpY2VXb3JrZXIucmVhZHl9KS50aGVuKGZ1bmN0aW9uKHQpe3JldHVybiB0LmFjdGl2ZXx8bnVsbH0pLm8oZnVuY3Rpb24oKXtyZXR1cm4gbnVsbH0pOmJlKG51bGwpKS50aGVuKGZ1bmN0aW9uKHQpeyhyLmg9dCkmJihyLmc9bmV3IHZ1KG5ldyBkdSh0KSksZ3Uoci5nLCJwaW5nIixudWxsLCEwKS50aGVuKGZ1bmN0aW9uKHQpe3RbMF0uZnVsZmlsbGVkJiZLKHRbMF0udmFsdWUsImtleUNoYW5nZWQiKSYmKHIucz0hMCl9KS5vKGZ1bmN0aW9uKCl7fSkpfSl9ZnVuY3Rpb24gYnUoaSl7cmV0dXJuIG5ldyBmZShmdW5jdGlvbihlLG4pe3ZhciB0PWkubS5vcGVuKCJmaXJlYmFzZUxvY2FsU3RvcmFnZURiIiwxKTt0Lm9uZXJyb3I9ZnVuY3Rpb24odCl7dHJ5e3QucHJldmVudERlZmF1bHQoKX1jYXRjaCh0KXt9bihFcnJvcih0LnRhcmdldC5lcnJvcikpfSx0Lm9udXBncmFkZW5lZWRlZD1mdW5jdGlvbih0KXt0PXQudGFyZ2V0LnJlc3VsdDt0cnl7dC5jcmVhdGVPYmplY3RTdG9yZSgiZmlyZWJhc2VMb2NhbFN0b3JhZ2UiLHtrZXlQYXRoOiJmYmFzZV9rZXkifSl9Y2F0Y2godCl7bih0KX19LHQub25zdWNjZXNzPWZ1bmN0aW9uKHQpe3ZhciByOyh0PXQudGFyZ2V0LnJlc3VsdCkub2JqZWN0U3RvcmVOYW1lcy5jb250YWlucygiZmlyZWJhc2VMb2NhbFN0b3JhZ2UiKT9lKHQpOihyPWksbmV3IGZlKGZ1bmN0aW9uKHQsZSl7dmFyIG49ci5tLmRlbGV0ZURhdGFiYXNlKCJmaXJlYmFzZUxvY2FsU3RvcmFnZURiIik7bi5vbnN1Y2Nlc3M9ZnVuY3Rpb24oKXt0KCl9LG4ub25lcnJvcj1mdW5jdGlvbih0KXtlKEVycm9yKHQudGFyZ2V0LmVycm9yKSl9fSkudGhlbihmdW5jdGlvbigpe3JldHVybiBidShpKX0pLnRoZW4oZnVuY3Rpb24odCl7ZSh0KX0pLm8oZnVuY3Rpb24odCl7bih0KX0pKX19KX1mdW5jdGlvbiB3dSh0KXtyZXR1cm4gdC5pfHwodC5pPWJ1KHQpKSx0Lml9ZnVuY3Rpb24gX3UoaSx0KXt2YXIgbz0wO3JldHVybiBuZXcgZmUoZnVuY3Rpb24gZShuLHIpe3d1KGkpLnRoZW4odCkudGhlbihuKS5vKGZ1bmN0aW9uKHQpe3JldHVybiAzPCsrbz92b2lkIHIodCk6d3UoaSkudGhlbihmdW5jdGlvbih0KXtyZXR1cm4gdC5jbG9zZSgpLGkuaT12b2lkIDAsZShuLHIpfSkubyhmdW5jdGlvbih0KXtyKHQpfSl9KX0pfWZ1bmN0aW9uIEl1KCl7dHJ5e3JldHVybiBsLmluZGV4ZWREQn1jYXRjaCh0KXtyZXR1cm59fWZ1bmN0aW9uIFR1KHQpe3JldHVybiB0Lm9iamVjdFN0b3JlKCJmaXJlYmFzZUxvY2FsU3RvcmFnZSIpfWZ1bmN0aW9uIEV1KHQsZSl7cmV0dXJuIHQudHJhbnNhY3Rpb24oWyJmaXJlYmFzZUxvY2FsU3RvcmFnZSJdLGU/InJlYWR3cml0ZSI6InJlYWRvbmx5Iil9ZnVuY3Rpb24gU3UodCl7cmV0dXJuIG5ldyBmZShmdW5jdGlvbihlLG4pe3Qub25zdWNjZXNzPWZ1bmN0aW9uKHQpe3QmJnQudGFyZ2V0P2UodC50YXJnZXQucmVzdWx0KTplKCl9LHQub25lcnJvcj1mdW5jdGlvbih0KXtuKHQudGFyZ2V0LmVycm9yKX19KX1mdW5jdGlvbiBDdSh0LGUpe3JldHVybiB0LmcmJnQuaCYmKChuPWwubmF2aWdhdG9yKSYmbi5zZXJ2aWNlV29ya2VyJiZuLnNlcnZpY2VXb3JrZXIuY29udHJvbGxlcnx8bnVsbCk9PT10Lmg/Z3UodC5nLCJrZXlDaGFuZ2VkIix7a2V5OmV9LHQucykudGhlbihmdW5jdGlvbigpe30pLm8oZnVuY3Rpb24oKXt9KTpiZSgpO3ZhciBufWZ1bmN0aW9uIE51KHIpe3JldHVybiB3dShyKS50aGVuKGZ1bmN0aW9uKHQpe3ZhciBpPVR1KEV1KHQsITEpKTtyZXR1cm4gaS5nZXRBbGw/U3UoaS5nZXRBbGwoKSk6bmV3IGZlKGZ1bmN0aW9uKGUsbil7dmFyIHI9W10sdD1pLm9wZW5DdXJzb3IoKTt0Lm9uc3VjY2Vzcz1mdW5jdGlvbih0KXsodD10LnRhcmdldC5yZXN1bHQpPyhyLnB1c2godC52YWx1ZSksdC5jb250aW51ZSgpKTplKHIpfSx0Lm9uZXJyb3I9ZnVuY3Rpb24odCl7bih0LnRhcmdldC5lcnJvcil9fSl9KS50aGVuKGZ1bmN0aW9uKHQpe3ZhciBlPXt9LG49W107aWYoMD09ci5iKXtmb3Iobj0wO248dC5sZW5ndGg7bisrKWVbdFtuXS5mYmFzZV9rZXldPXRbbl0udmFsdWU7bj1mdW5jdGlvbiB0KGUsbil7dmFyIHIsaT1bXTtmb3IociBpbiBlKXIgaW4gbiYmdHlwZW9mIGVbcl09PXR5cGVvZiBuW3JdPyJvYmplY3QiPT10eXBlb2YgZVtyXSYmbnVsbCE9ZVtyXSYmbnVsbCE9bltyXT8wPHQoZVtyXSxuW3JdKS5sZW5ndGgmJmkucHVzaChyKTplW3JdIT09bltyXSYmaS5wdXNoKHIpOmkucHVzaChyKTtmb3IociBpbiBuKXIgaW4gZXx8aS5wdXNoKHIpO3JldHVybiBpfShyLmMsZSksci5jPWV9cmV0dXJuIG59KX1mdW5jdGlvbiBBdSh0KXt0LmwmJnQubC5jYW5jZWwoIlNUT1BfRVZFTlQiKSx0LmYmJihjbGVhclRpbWVvdXQodC5mKSx0LmY9bnVsbCl9ZnVuY3Rpb24ga3UodCl7dmFyIHI9dGhpcyxpPW51bGw7dGhpcy5hPVtdLHRoaXMudHlwZT0iaW5kZXhlZERCIix0aGlzLmM9dCx0aGlzLmI9YmUoKS50aGVuKGZ1bmN0aW9uKCl7aWYoSXUoKSl7dmFyIGU9TnIoKSxuPSJfX3NhayIrZTtyZXR1cm4gbHU9bHV8fG5ldyBtdSwoaT1sdSkuc2V0KG4sZSkudGhlbihmdW5jdGlvbigpe3JldHVybiBpLmdldChuKX0pLnRoZW4oZnVuY3Rpb24odCl7aWYodCE9PWUpdGhyb3cgRXJyb3IoImluZGV4ZWREQiBub3Qgc3VwcG9ydGVkISIpO3JldHVybiBpLlUobil9KS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIGl9KS5vKGZ1bmN0aW9uKCl7cmV0dXJuIHIuY30pfXJldHVybiByLmN9KS50aGVuKGZ1bmN0aW9uKHQpe3JldHVybiByLnR5cGU9dC50eXBlLHQuY2EoZnVuY3Rpb24oZSl7aihyLmEsZnVuY3Rpb24odCl7dChlKX0pfSksdH0pfWZ1bmN0aW9uIFJ1KCl7dGhpcy5hPXt9LHRoaXMudHlwZT0iaW5NZW1vcnkifWZ1bmN0aW9uIFB1KCl7aWYoIWZ1bmN0aW9uKCl7dmFyIHQ9Ik5vZGUiPT1ocigpO2lmKCEodD1PdSgpfHx0JiZYbC5JTlRFUk5BTC5ub2RlJiZYbC5JTlRFUk5BTC5ub2RlLmxvY2FsU3RvcmFnZSkpcmV0dXJuITE7dHJ5e3JldHVybiB0LnNldEl0ZW0oIl9fc2FrIiwiMSIpLHQucmVtb3ZlSXRlbSgiX19zYWsiKSwhMH1jYXRjaCh0KXtyZXR1cm4hMX19KCkpe2lmKCJOb2RlIj09aHIoKSl0aHJvdyBuZXcgSSgiaW50ZXJuYWwtZXJyb3IiLCJUaGUgTG9jYWxTdG9yYWdlIGNvbXBhdGliaWxpdHkgbGlicmFyeSB3YXMgbm90IGZvdW5kLiIpO3Rocm93IG5ldyBJKCJ3ZWItc3RvcmFnZS11bnN1cHBvcnRlZCIpfXRoaXMuYT1PdSgpfHxYbC5JTlRFUk5BTC5ub2RlLmxvY2FsU3RvcmFnZSx0aGlzLnR5cGU9ImxvY2FsU3RvcmFnZSJ9ZnVuY3Rpb24gT3UoKXt0cnl7dmFyIHQ9bC5sb2NhbFN0b3JhZ2UsZT1OcigpO3JldHVybiB0JiYodC5zZXRJdGVtKGUsIjEiKSx0LnJlbW92ZUl0ZW0oZSkpLHR9Y2F0Y2godCl7cmV0dXJuIG51bGx9fWZ1bmN0aW9uIER1KCl7dGhpcy50eXBlPSJudWxsU3RvcmFnZSJ9ZnVuY3Rpb24geHUoKXtpZighZnVuY3Rpb24oKXt2YXIgdD0iTm9kZSI9PWhyKCk7aWYoISh0PUx1KCl8fHQmJlhsLklOVEVSTkFMLm5vZGUmJlhsLklOVEVSTkFMLm5vZGUuc2Vzc2lvblN0b3JhZ2UpKXJldHVybiExO3RyeXtyZXR1cm4gdC5zZXRJdGVtKCJfX3NhayIsIjEiKSx0LnJlbW92ZUl0ZW0oIl9fc2FrIiksITB9Y2F0Y2godCl7cmV0dXJuITF9fSgpKXtpZigiTm9kZSI9PWhyKCkpdGhyb3cgbmV3IEkoImludGVybmFsLWVycm9yIiwiVGhlIFNlc3Npb25TdG9yYWdlIGNvbXBhdGliaWxpdHkgbGlicmFyeSB3YXMgbm90IGZvdW5kLiIpO3Rocm93IG5ldyBJKCJ3ZWItc3RvcmFnZS11bnN1cHBvcnRlZCIpfXRoaXMuYT1MdSgpfHxYbC5JTlRFUk5BTC5ub2RlLnNlc3Npb25TdG9yYWdlLHRoaXMudHlwZT0ic2Vzc2lvblN0b3JhZ2UifWZ1bmN0aW9uIEx1KCl7dHJ5e3ZhciB0PWwuc2Vzc2lvblN0b3JhZ2UsZT1OcigpO3JldHVybiB0JiYodC5zZXRJdGVtKGUsIjEiKSx0LnJlbW92ZUl0ZW0oZSkpLHR9Y2F0Y2godCl7cmV0dXJuIG51bGx9fWZ1bmN0aW9uIE11KCl7dmFyIHQ9e307dC5Ccm93c2VyPWp1LHQuTm9kZT1xdSx0LlJlYWN0TmF0aXZlPVZ1LHQuV29ya2VyPUJ1LHRoaXMuYT10W2hyKCldfWh1LnByb3RvdHlwZS5jPWZ1bmN0aW9uKG4pe3ZhciBlLHI9bi5kYXRhLmV2ZW50VHlwZSxpPW4uZGF0YS5ldmVudElkLHQ9dGhpcy5hW3JdO3QmJjA8dC5sZW5ndGgmJihuLnBvcnRzWzBdLnBvc3RNZXNzYWdlKHtzdGF0dXM6ImFjayIsZXZlbnRJZDppLGV2ZW50VHlwZTpyLHJlc3BvbnNlOm51bGx9KSxlPVtdLGoodCxmdW5jdGlvbih0KXtlLnB1c2goYmUoKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIHQobi5vcmlnaW4sbi5kYXRhLmRhdGEpfSkpfSksSWUoZSkudGhlbihmdW5jdGlvbih0KXt2YXIgZT1bXTtqKHQsZnVuY3Rpb24odCl7ZS5wdXNoKHtmdWxmaWxsZWQ6dC5QYix2YWx1ZTp0LnZhbHVlLHJlYXNvbjp0LnJlYXNvbj90LnJlYXNvbi5tZXNzYWdlOnZvaWQgMH0pfSksaihlLGZ1bmN0aW9uKHQpe2Zvcih2YXIgZSBpbiB0KXZvaWQgMD09PXRbZV0mJmRlbGV0ZSB0W2VdfSksbi5wb3J0c1swXS5wb3N0TWVzc2FnZSh7c3RhdHVzOiJkb25lIixldmVudElkOmksZXZlbnRUeXBlOnIscmVzcG9uc2U6ZX0pfSkpfSxkdS5wcm90b3R5cGUucG9zdE1lc3NhZ2U9ZnVuY3Rpb24odCxlKXt0aGlzLmEucG9zdE1lc3NhZ2UodCxlKX0sdnUucHJvdG90eXBlLmNsb3NlPWZ1bmN0aW9uKCl7Zm9yKDswPHRoaXMuYS5sZW5ndGg7KXl1KHRoaXMsdGhpcy5hWzBdKTt0aGlzLmI9ITB9LCh0PW11LnByb3RvdHlwZSkuc2V0PWZ1bmN0aW9uKHIsaSl7dmFyIG89dGhpcyxzPSExO3JldHVybiBfdSh0aGlzLGZ1bmN0aW9uKHQpe3JldHVybiBTdSgodD1UdShFdSh0LCEwKSkpLmdldChyKSl9KS50aGVuKGZ1bmN0aW9uKG4pe3JldHVybiBfdShvLGZ1bmN0aW9uKHQpe2lmKHQ9VHUoRXUodCwhMCkpLG4pcmV0dXJuIG4udmFsdWU9aSxTdSh0LnB1dChuKSk7by5iKysscz0hMDt2YXIgZT17fTtyZXR1cm4gZS5mYmFzZV9rZXk9cixlLnZhbHVlPWksU3UodC5hZGQoZSkpfSl9KS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIG8uY1tyXT1pLEN1KG8scil9KS5vYShmdW5jdGlvbigpe3MmJm8uYi0tfSl9LHQuZ2V0PWZ1bmN0aW9uKGUpe3JldHVybiBfdSh0aGlzLGZ1bmN0aW9uKHQpe3JldHVybiBTdShUdShFdSh0LCExKSkuZ2V0KGUpKX0pLnRoZW4oZnVuY3Rpb24odCl7cmV0dXJuIHQmJnQudmFsdWV9KX0sdC5VPWZ1bmN0aW9uKGUpe3ZhciBuPXRoaXMscj0hMTtyZXR1cm4gX3UodGhpcyxmdW5jdGlvbih0KXtyZXR1cm4gcj0hMCxuLmIrKyxTdShUdShFdSh0LCEwKSkuZGVsZXRlKGUpKX0pLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gZGVsZXRlIG4uY1tlXSxDdShuLGUpfSkub2EoZnVuY3Rpb24oKXtyJiZuLmItLX0pfSx0LmNhPWZ1bmN0aW9uKHQpe3ZhciBuOzA9PXRoaXMuYS5sZW5ndGgmJihBdShuPXRoaXMpLGZ1bmN0aW9uIGUoKXtuLmY9c2V0VGltZW91dChmdW5jdGlvbigpe24ubD1OdShuKS50aGVuKGZ1bmN0aW9uKGUpezA8ZS5sZW5ndGgmJmoobi5hLGZ1bmN0aW9uKHQpe3QoZSl9KX0pLnRoZW4oZnVuY3Rpb24oKXtlKCl9KS5vKGZ1bmN0aW9uKHQpeyJTVE9QX0VWRU5UIiE9dC5tZXNzYWdlJiZlKCl9KX0sODAwKX0oKSksdGhpcy5hLnB1c2godCl9LHQuaWE9ZnVuY3Rpb24oZSl7SCh0aGlzLmEsZnVuY3Rpb24odCl7cmV0dXJuIHQ9PWV9KSwwPT10aGlzLmEubGVuZ3RoJiZBdSh0aGlzKX0sKHQ9a3UucHJvdG90eXBlKS5nZXQ9ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuYi50aGVuKGZ1bmN0aW9uKHQpe3JldHVybiB0LmdldChlKX0pfSx0LnNldD1mdW5jdGlvbihlLG4pe3JldHVybiB0aGlzLmIudGhlbihmdW5jdGlvbih0KXtyZXR1cm4gdC5zZXQoZSxuKX0pfSx0LlU9ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuYi50aGVuKGZ1bmN0aW9uKHQpe3JldHVybiB0LlUoZSl9KX0sdC5jYT1mdW5jdGlvbih0KXt0aGlzLmEucHVzaCh0KX0sdC5pYT1mdW5jdGlvbihlKXtIKHRoaXMuYSxmdW5jdGlvbih0KXtyZXR1cm4gdD09ZX0pfSwodD1SdS5wcm90b3R5cGUpLmdldD1mdW5jdGlvbih0KXtyZXR1cm4gYmUodGhpcy5hW3RdKX0sdC5zZXQ9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5hW3RdPWUsYmUoKX0sdC5VPWZ1bmN0aW9uKHQpe3JldHVybiBkZWxldGUgdGhpcy5hW3RdLGJlKCl9LHQuY2E9ZnVuY3Rpb24oKXt9LHQuaWE9ZnVuY3Rpb24oKXt9LCh0PVB1LnByb3RvdHlwZSkuZ2V0PWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7cmV0dXJuIGJlKCkudGhlbihmdW5jdGlvbigpe3JldHVybiBDcihlLmEuZ2V0SXRlbSh0KSl9KX0sdC5zZXQ9ZnVuY3Rpb24oZSxuKXt2YXIgcj10aGlzO3JldHVybiBiZSgpLnRoZW4oZnVuY3Rpb24oKXt2YXIgdD1FcihuKTtudWxsPT09dD9yLlUoZSk6ci5hLnNldEl0ZW0oZSx0KX0pfSx0LlU9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztyZXR1cm4gYmUoKS50aGVuKGZ1bmN0aW9uKCl7ZS5hLnJlbW92ZUl0ZW0odCl9KX0sdC5jYT1mdW5jdGlvbih0KXtsLndpbmRvdyYmJGUobC53aW5kb3csInN0b3JhZ2UiLHQpfSx0LmlhPWZ1bmN0aW9uKHQpe2wud2luZG93JiZlbihsLndpbmRvdywic3RvcmFnZSIsdCl9LCh0PUR1LnByb3RvdHlwZSkuZ2V0PWZ1bmN0aW9uKCl7cmV0dXJuIGJlKG51bGwpfSx0LnNldD1mdW5jdGlvbigpe3JldHVybiBiZSgpfSx0LlU9ZnVuY3Rpb24oKXtyZXR1cm4gYmUoKX0sdC5jYT1mdW5jdGlvbigpe30sdC5pYT1mdW5jdGlvbigpe30sKHQ9eHUucHJvdG90eXBlKS5nZXQ9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztyZXR1cm4gYmUoKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIENyKGUuYS5nZXRJdGVtKHQpKX0pfSx0LnNldD1mdW5jdGlvbihlLG4pe3ZhciByPXRoaXM7cmV0dXJuIGJlKCkudGhlbihmdW5jdGlvbigpe3ZhciB0PUVyKG4pO251bGw9PT10P3IuVShlKTpyLmEuc2V0SXRlbShlLHQpfSl9LHQuVT1mdW5jdGlvbih0KXt2YXIgZT10aGlzO3JldHVybiBiZSgpLnRoZW4oZnVuY3Rpb24oKXtlLmEucmVtb3ZlSXRlbSh0KX0pfSx0LmNhPWZ1bmN0aW9uKCl7fSx0LmlhPWZ1bmN0aW9uKCl7fTt2YXIgRnUsVXUsanU9e0Y6UHUsYmI6eHV9LHF1PXtGOlB1LGJiOnh1fSxWdT17RjpjdSxiYjpEdX0sQnU9e0Y6UHUsYmI6RHV9LEt1PXtyZDoibG9jYWwiLE5PTkU6Im5vbmUiLHRkOiJzZXNzaW9uIn07ZnVuY3Rpb24gV3UoKXt2YXIgdD0hKEFyKHlyKCkpfHwhdXIoKSksZT1UcigpLG49YnIoKTt0aGlzLm09dCx0aGlzLmg9ZSx0aGlzLmw9bix0aGlzLmE9e30sdD1GdT1GdXx8bmV3IE11O3RyeXt0aGlzLmc9ISRuKCkmJnhyKCl8fCFsLmluZGV4ZWREQj9uZXcgdC5hLkY6bmV3IGt1KG5ldyhjcigpP1J1OnQuYS5GKSl9Y2F0Y2godCl7dGhpcy5nPW5ldyBSdSx0aGlzLmg9ITB9dHJ5e3RoaXMuaT1uZXcgdC5hLmJifWNhdGNoKHQpe3RoaXMuaT1uZXcgUnV9dGhpcy52PW5ldyBSdSx0aGlzLmY9bSh0aGlzLlliLHRoaXMpLHRoaXMuYj17fX1mdW5jdGlvbiBIdSgpe3JldHVybiBVdT1VdXx8bmV3IFd1fWZ1bmN0aW9uIEd1KHQsZSl7c3dpdGNoKGUpe2Nhc2Uic2Vzc2lvbiI6cmV0dXJuIHQuaTtjYXNlIm5vbmUiOnJldHVybiB0LnY7ZGVmYXVsdDpyZXR1cm4gdC5nfX1mdW5jdGlvbiB6dSh0LGUpe3JldHVybiJmaXJlYmFzZToiK3QubmFtZSsoZT8iOiIrZToiIil9ZnVuY3Rpb24gUXUodCxlLG4pe3JldHVybiBuPXp1KGUsbiksImxvY2FsIj09ZS5GJiYodC5iW25dPW51bGwpLEd1KHQsZS5GKS5VKG4pfWZ1bmN0aW9uIFl1KHQpe3QuYyYmKGNsZWFySW50ZXJ2YWwodC5jKSx0LmM9bnVsbCl9ZnVuY3Rpb24gWHUodCl7dGhpcy5hPXQsdGhpcy5iPUh1KCl9KHQ9V3UucHJvdG90eXBlKS5nZXQ9ZnVuY3Rpb24odCxlKXtyZXR1cm4gR3UodGhpcyx0LkYpLmdldCh6dSh0LGUpKX0sdC5zZXQ9ZnVuY3Rpb24oZSx0LG4pe3ZhciByPXp1KGUsbiksaT10aGlzLG89R3UodGhpcyxlLkYpO3JldHVybiBvLnNldChyLHQpLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gby5nZXQocil9KS50aGVuKGZ1bmN0aW9uKHQpeyJsb2NhbCI9PWUuRiYmKGkuYltyXT10KX0pfSx0LmFkZExpc3RlbmVyPWZ1bmN0aW9uKHQsZSxuKXt2YXIgcjt0PXp1KHQsZSksdGhpcy5sJiYodGhpcy5iW3RdPWwubG9jYWxTdG9yYWdlLmdldEl0ZW0odCkpLHV0KHRoaXMuYSkmJihHdSh0aGlzLCJsb2NhbCIpLmNhKHRoaXMuZiksdGhpcy5ofHwoJG4oKXx8IXhyKCkpJiZsLmluZGV4ZWREQnx8IXRoaXMubHx8KFl1KHI9dGhpcyksci5jPXNldEludGVydmFsKGZ1bmN0aW9uKCl7Zm9yKHZhciB0IGluIHIuYSl7dmFyIGU9bC5sb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0KSxuPXIuYlt0XTtlIT1uJiYoci5iW3RdPWUsZT1uZXcgVmUoe3R5cGU6InN0b3JhZ2UiLGtleTp0LHRhcmdldDp3aW5kb3csb2xkVmFsdWU6bixuZXdWYWx1ZTplLGE6ITB9KSxyLlliKGUpKX19LDFlMykpKSx0aGlzLmFbdF18fCh0aGlzLmFbdF09W10pLHRoaXMuYVt0XS5wdXNoKG4pfSx0LnJlbW92ZUxpc3RlbmVyPWZ1bmN0aW9uKHQsZSxuKXt0PXp1KHQsZSksdGhpcy5hW3RdJiYoSCh0aGlzLmFbdF0sZnVuY3Rpb24odCl7cmV0dXJuIHQ9PW59KSwwPT10aGlzLmFbdF0ubGVuZ3RoJiZkZWxldGUgdGhpcy5hW3RdKSx1dCh0aGlzLmEpJiYoR3UodGhpcywibG9jYWwiKS5pYSh0aGlzLmYpLFl1KHRoaXMpKX0sdC5ZYj1mdW5jdGlvbih0KXtpZih0JiZ0Lmcpe3ZhciBlPXQuYS5rZXk7aWYobnVsbD09ZSlmb3IodmFyIG4gaW4gdGhpcy5hKXt2YXIgcj10aGlzLmJbbl07dm9pZCAwPT09ciYmKHI9bnVsbCk7dmFyIGk9bC5sb2NhbFN0b3JhZ2UuZ2V0SXRlbShuKTtpIT09ciYmKHRoaXMuYltuXT1pLHRoaXMubWIobikpfWVsc2UgaWYoMD09ZS5pbmRleE9mKCJmaXJlYmFzZToiKSYmdGhpcy5hW2VdKXtpZih2b2lkIDAhPT10LmEuYT9HdSh0aGlzLCJsb2NhbCIpLmlhKHRoaXMuZik6WXUodGhpcyksdGhpcy5tKWlmKG49bC5sb2NhbFN0b3JhZ2UuZ2V0SXRlbShlKSwocj10LmEubmV3VmFsdWUpIT09biludWxsIT09cj9sLmxvY2FsU3RvcmFnZS5zZXRJdGVtKGUscik6bC5sb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShlKTtlbHNlIGlmKHRoaXMuYltlXT09PXImJnZvaWQgMD09PXQuYS5hKXJldHVybjt2YXIgbz10aGlzLG49ZnVuY3Rpb24oKXt2b2lkIDA9PT10LmEuYSYmby5iW2VdPT09bC5sb2NhbFN0b3JhZ2UuZ2V0SXRlbShlKXx8KG8uYltlXT1sLmxvY2FsU3RvcmFnZS5nZXRJdGVtKGUpLG8ubWIoZSkpfTtCdCYmJHQmJjEwPT0kdCYmbC5sb2NhbFN0b3JhZ2UuZ2V0SXRlbShlKSE9PXQuYS5uZXdWYWx1ZSYmdC5hLm5ld1ZhbHVlIT09dC5hLm9sZFZhbHVlP3NldFRpbWVvdXQobiwxMCk6bigpfX1lbHNlIGoodCxtKHRoaXMubWIsdGhpcykpfSx0Lm1iPWZ1bmN0aW9uKHQpe3RoaXMuYVt0XSYmaih0aGlzLmFbdF0sZnVuY3Rpb24odCl7dCgpfSl9O3ZhciBKdSwkdT17bmFtZToiYXV0aEV2ZW50IixGOiJsb2NhbCJ9O2Z1bmN0aW9uIFp1KCl7dGhpcy5hPUh1KCl9ZnVuY3Rpb24gdGModCxlKXt0aGlzLmI9ZWMsdGhpcy5mPWwuVWludDhBcnJheT9uZXcgVWludDhBcnJheSh0aGlzLmIpOkFycmF5KHRoaXMuYiksdGhpcy5nPXRoaXMuYz0wLHRoaXMuYT1bXSx0aGlzLmk9dCx0aGlzLmg9ZSx0aGlzLmw9bC5JbnQzMkFycmF5P25ldyBJbnQzMkFycmF5KDY0KTpBcnJheSg2NCksdm9pZCAwPT09SnUmJihKdT1sLkludDMyQXJyYXk/bmV3IEludDMyQXJyYXkodWMpOnVjKSx0aGlzLnJlc2V0KCl9dyh0YyxmdW5jdGlvbigpe3RoaXMuYj0tMX0pO2Zvcih2YXIgZWM9NjQsbmM9ZWMtMSxyYz1bXSxpYz0wO2ljPG5jO2ljKyspcmNbaWNdPTA7dmFyIG9jPUcoMTI4LHJjKTtmdW5jdGlvbiBzYyh0KXtmb3IodmFyIGU9dC5mLG49dC5sLHI9MCxpPTA7aTxlLmxlbmd0aDspbltyKytdPWVbaV08PDI0fGVbaSsxXTw8MTZ8ZVtpKzJdPDw4fGVbaSszXSxpPTQqcjtmb3IoZT0xNjtlPDY0O2UrKyl7dmFyIGk9MHxuW2UtMTVdLHI9MHxuW2UtMl0sbz0oMHxuW2UtMTZdKSsoKGk+Pj43fGk8PDI1KV4oaT4+PjE4fGk8PDE0KV5pPj4+Myl8MCxzPSgwfG5bZS03XSkrKChyPj4+MTd8cjw8MTUpXihyPj4+MTl8cjw8MTMpXnI+Pj4xMCl8MDtuW2VdPW8rc3wwfXI9MHx0LmFbMF0saT0wfHQuYVsxXTt2YXIgYT0wfHQuYVsyXSx1PTB8dC5hWzNdLGM9MHx0LmFbNF0saD0wfHQuYVs1XSxsPTB8dC5hWzZdO2ZvcihvPTB8dC5hWzddLGU9MDtlPDY0O2UrKyl7dmFyIGY9KChyPj4+MnxyPDwzMCleKHI+Pj4xM3xyPDwxOSleKHI+Pj4yMnxyPDwxMCkpKyhyJmleciZhXmkmYSl8MDtzPShvPW8rKChjPj4+NnxjPDwyNileKGM+Pj4xMXxjPDwyMSleKGM+Pj4yNXxjPDw3KSl8MCkrKChzPShzPWMmaF5+YyZsKSsoMHxKdVtlXSl8MCkrKDB8bltlXSl8MCl8MCxvPWwsbD1oLGg9YyxjPXUrc3wwLHU9YSxhPWksaT1yLHI9cytmfDB9dC5hWzBdPXQuYVswXStyfDAsdC5hWzFdPXQuYVsxXStpfDAsdC5hWzJdPXQuYVsyXSthfDAsdC5hWzNdPXQuYVszXSt1fDAsdC5hWzRdPXQuYVs0XStjfDAsdC5hWzVdPXQuYVs1XStofDAsdC5hWzZdPXQuYVs2XStsfDAsdC5hWzddPXQuYVs3XStvfDB9ZnVuY3Rpb24gYWModCxlLG4pe3ZvaWQgMD09PW4mJihuPWUubGVuZ3RoKTt2YXIgcj0wLGk9dC5jO2lmKCJzdHJpbmciPT10eXBlb2YgZSlmb3IoO3I8bjspdC5mW2krK109ZS5jaGFyQ29kZUF0KHIrKyksaT09dC5iJiYoc2ModCksaT0wKTtlbHNle2lmKCFkKGUpKXRocm93IEVycm9yKCJtZXNzYWdlIG11c3QgYmUgc3RyaW5nIG9yIGFycmF5Iik7Zm9yKDtyPG47KXt2YXIgbz1lW3IrK107aWYoISgibnVtYmVyIj09dHlwZW9mIG8mJjA8PW8mJm88PTI1NSYmbz09KDB8bykpKXRocm93IEVycm9yKCJtZXNzYWdlIG11c3QgYmUgYSBieXRlIGFycmF5Iik7dC5mW2krK109byxpPT10LmImJihzYyh0KSxpPTApfX10LmM9aSx0LmcrPW59dGMucHJvdG90eXBlLnJlc2V0PWZ1bmN0aW9uKCl7dGhpcy5nPXRoaXMuYz0wLHRoaXMuYT1sLkludDMyQXJyYXk/bmV3IEludDMyQXJyYXkodGhpcy5oKTp6KHRoaXMuaCl9O3ZhciB1Yz1bMTExNjM1MjQwOCwxODk5NDQ3NDQxLDMwNDkzMjM0NzEsMzkyMTAwOTU3Myw5NjE5ODcxNjMsMTUwODk3MDk5MywyNDUzNjM1NzQ4LDI4NzA3NjMyMjEsMzYyNDM4MTA4MCwzMTA1OTg0MDEsNjA3MjI1Mjc4LDE0MjY4ODE5ODcsMTkyNTA3ODM4OCwyMTYyMDc4MjA2LDI2MTQ4ODgxMDMsMzI0ODIyMjU4MCwzODM1MzkwNDAxLDQwMjIyMjQ3NzQsMjY0MzQ3MDc4LDYwNDgwNzYyOCw3NzAyNTU5ODMsMTI0OTE1MDEyMiwxNTU1MDgxNjkyLDE5OTYwNjQ5ODYsMjU1NDIyMDg4MiwyODIxODM0MzQ5LDI5NTI5OTY4MDgsMzIxMDMxMzY3MSwzMzM2NTcxODkxLDM1ODQ1Mjg3MTEsMTEzOTI2OTkzLDMzODI0MTg5NSw2NjYzMDcyMDUsNzczNTI5OTEyLDEyOTQ3NTczNzIsMTM5NjE4MjI5MSwxNjk1MTgzNzAwLDE5ODY2NjEwNTEsMjE3NzAyNjM1MCwyNDU2OTU2MDM3LDI3MzA0ODU5MjEsMjgyMDMwMjQxMSwzMjU5NzMwODAwLDMzNDU3NjQ3NzEsMzUxNjA2NTgxNywzNjAwMzUyODA0LDQwOTQ1NzE5MDksMjc1NDIzMzQ0LDQzMDIyNzczNCw1MDY5NDg2MTYsNjU5MDYwNTU2LDg4Mzk5Nzg3Nyw5NTgxMzk1NzEsMTMyMjgyMjIxOCwxNTM3MDAyMDYzLDE3NDc4NzM3NzksMTk1NTU2MjIyMiwyMDI0MTA0ODE1LDIyMjc3MzA0NTIsMjM2MTg1MjQyNCwyNDI4NDM2NDc0LDI3NTY3MzQxODcsMzIwNDAzMTQ3OSwzMzI5MzI1Mjk4XTtmdW5jdGlvbiBjYygpe3RjLmNhbGwodGhpcyw4LGhjKX13KGNjLHRjKTt2YXIgaGM9WzE3NzkwMzM3MDMsMzE0NDEzNDI3NywxMDEzOTA0MjQyLDI3NzM0ODA3NjIsMTM1OTg5MzExOSwyNjAwODIyOTI0LDUyODczNDYzNSwxNTQxNDU5MjI1XTtmdW5jdGlvbiBsYyh0LGUsbixyLGksbyl7dGhpcy52PXQsdGhpcy5pPWUsdGhpcy5sPW4sdGhpcy5tPXJ8fG51bGwsdGhpcy51PWl8fG51bGwsdGhpcy5zPW8sdGhpcy5oPWUrIjoiK24sdGhpcy5DPW5ldyBadSx0aGlzLmc9bmV3IFh1KHRoaXMuaCksdGhpcy5mPW51bGwsdGhpcy5iPVtdLHRoaXMuYT10aGlzLmM9bnVsbH1mdW5jdGlvbiBmYyh0KXtyZXR1cm4gbmV3IEkoImludmFsaWQtY29yZG92YS1jb25maWd1cmF0aW9uIix0KX1mdW5jdGlvbiBwYyh0KXt2YXIgZT1uZXcgY2M7YWMoZSx0KSx0PVtdO3ZhciBuPTgqZS5nO2UuYzw1Nj9hYyhlLG9jLDU2LWUuYyk6YWMoZSxvYyxlLmItKGUuYy01NikpO2Zvcih2YXIgcj02Mzs1Njw9cjtyLS0pZS5mW3JdPTI1NSZuLG4vPTI1Njtmb3Ioc2MoZSkscj1uPTA7cjxlLmk7cisrKWZvcih2YXIgaT0yNDswPD1pO2ktPTgpdFtuKytdPWUuYVtyXT4+aSYyNTU7cmV0dXJuIFYodCxmdW5jdGlvbih0KXtyZXR1cm4gMTwodD10LnRvU3RyaW5nKDE2KSkubGVuZ3RoP3Q6IjAiK3R9KS5qb2luKCIiKX1mdW5jdGlvbiBkYyh0LGUpe2Zvcih2YXIgbj0wO248dC5iLmxlbmd0aDtuKyspdHJ5e3QuYltuXShlKX1jYXRjaCh0KXt9fWZ1bmN0aW9uIHZjKGEpe3JldHVybiBhLmZ8fChhLmY9YS5tYSgpLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gbmV3IGZlKGZ1bmN0aW9uKG4pe2Z1bmN0aW9uIGUocil7dD0hMCxzJiZzLmNhbmNlbCgpLGdjKGkpLnRoZW4oZnVuY3Rpb24odCl7dmFyIGUsbj1vO3QmJnImJnIudXJsJiYoZT1udWxsLG49KGU9LTEhPShuPVFpKHIudXJsKSkuaW5kZXhPZigiL19fL2F1dGgvY2FsbGJhY2siKT8oZT0ib2JqZWN0Ij09dHlwZW9mKGU9Q3IoQW4oZT1rbihuKSwiZmlyZWJhc2VFcnJvciIpfHxudWxsKSk/VChlKTpudWxsKT9uZXcgUm8odC5jLHQuYixudWxsLG51bGwsZSxudWxsLHQuVCgpKTpuZXcgUm8odC5jLHQuYixuLHQuZixudWxsLG51bGwsdC5UKCkpOmUpfHxvKSxkYyhpLG4pfSl9dmFyIGksbyx0LHMscjthLkVhKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4oZSksYS5TYSh0KSwhMX0pLGk9YSxvPW5ldyBSbygidW5rbm93biIsbnVsbCxudWxsLG51bGwsbmV3IEkoIm5vLWF1dGgtZXZlbnQiKSksdD0hMSxzPWduKDUwMCkudGhlbihmdW5jdGlvbigpe3JldHVybiBnYyhpKS50aGVuKGZ1bmN0aW9uKCl7dHx8ZGMoaSxvKX0pfSkscj1sLmhhbmRsZU9wZW5VUkwsbC5oYW5kbGVPcGVuVVJMPWZ1bmN0aW9uKHQpe2lmKDA9PXQudG9Mb3dlckNhc2UoKS5pbmRleE9mKG1yKCJCdWlsZEluZm8ucGFja2FnZU5hbWUiLGwpLnRvTG93ZXJDYXNlKCkrIjovLyIpJiZlKHt1cmw6dH0pLCJmdW5jdGlvbiI9PXR5cGVvZiByKXRyeXtyKHQpfWNhdGNoKHQpe2NvbnNvbGUuZXJyb3IodCl9fSx4bz14b3x8bmV3IE9vLGZ1bmN0aW9uKHQpe3ZhciBuPXhvO24uYS5wdXNoKHQpLG4uYnx8KG4uYj1mdW5jdGlvbih0KXtmb3IodmFyIGU9MDtlPG4uYS5sZW5ndGg7ZSsrKW4uYVtlXSh0KX0sImZ1bmN0aW9uIj09dHlwZW9mKHQ9bXIoInVuaXZlcnNhbExpbmtzLnN1YnNjcmliZSIsbCkpJiZ0KG51bGwsbi5iKSl9KGUpfSl9KSksYS5mfWZ1bmN0aW9uIGdjKGUpe3ZhciB0LG49bnVsbDtyZXR1cm4odD1lLmcpLmIuZ2V0KCR1LHQuYSkudGhlbihQbykudGhlbihmdW5jdGlvbih0KXtyZXR1cm4gbj10LFF1KCh0PWUuZykuYiwkdSx0LmEpfSkudGhlbihmdW5jdGlvbigpe3JldHVybiBufSl9ZnVuY3Rpb24geWModCl7dGhpcy5hPXQsdGhpcy5iPUh1KCl9KHQ9bGMucHJvdG90eXBlKS5tYT1mdW5jdGlvbigpe3JldHVybiB0aGlzLklhfHwodGhpcy5JYT0oYXIodm9pZCAwKT9zcigpLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gbmV3IGZlKGZ1bmN0aW9uKHQsZSl7dmFyIG49bC5kb2N1bWVudCxyPXNldFRpbWVvdXQoZnVuY3Rpb24oKXtlKEVycm9yKCJDb3Jkb3ZhIGZyYW1ld29yayBpcyBub3QgcmVhZHkuIikpfSwxZTMpO24uYWRkRXZlbnRMaXN0ZW5lcigiZGV2aWNlcmVhZHkiLGZ1bmN0aW9uKCl7Y2xlYXJUaW1lb3V0KHIpLHQoKX0sITEpfSl9KTp3ZShFcnJvcigiQ29yZG92YSBtdXN0IHJ1biBpbiBhbiBBbmRyb2lkIG9yIGlPUyBmaWxlIHNjaGVtZS4iKSkpLnRoZW4oZnVuY3Rpb24oKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgbXIoInVuaXZlcnNhbExpbmtzLnN1YnNjcmliZSIsbCkpdGhyb3cgZmMoImNvcmRvdmEtdW5pdmVyc2FsLWxpbmtzLXBsdWdpbi1maXggaXMgbm90IGluc3RhbGxlZCIpO2lmKHZvaWQgMD09PW1yKCJCdWlsZEluZm8ucGFja2FnZU5hbWUiLGwpKXRocm93IGZjKCJjb3Jkb3ZhLXBsdWdpbi1idWlsZGluZm8gaXMgbm90IGluc3RhbGxlZCIpO2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBtcigiY29yZG92YS5wbHVnaW5zLmJyb3dzZXJ0YWIub3BlblVybCIsbCkpdGhyb3cgZmMoImNvcmRvdmEtcGx1Z2luLWJyb3dzZXJ0YWIgaXMgbm90IGluc3RhbGxlZCIpO2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBtcigiY29yZG92YS5JbkFwcEJyb3dzZXIub3BlbiIsbCkpdGhyb3cgZmMoImNvcmRvdmEtcGx1Z2luLWluYXBwYnJvd3NlciBpcyBub3QgaW5zdGFsbGVkIil9LGZ1bmN0aW9uKCl7dGhyb3cgbmV3IEkoImNvcmRvdmEtbm90LXJlYWR5Iil9KSl9LHQuT2I9ZnVuY3Rpb24odCxlKXtyZXR1cm4gZShuZXcgSSgib3BlcmF0aW9uLW5vdC1zdXBwb3J0ZWQtaW4tdGhpcy1lbnZpcm9ubWVudCIpKSxiZSgpfSx0Lk1iPWZ1bmN0aW9uKCl7cmV0dXJuIHdlKG5ldyBJKCJvcGVyYXRpb24tbm90LXN1cHBvcnRlZC1pbi10aGlzLWVudmlyb25tZW50IikpfSx0LiRiPWZ1bmN0aW9uKCl7cmV0dXJuITF9LHQuWGI9ZnVuY3Rpb24oKXtyZXR1cm4hMH0sdC5UYj1mdW5jdGlvbigpe3JldHVybiEwfSx0Lk5iPWZ1bmN0aW9uKHQsZSxuLHIpe2lmKHRoaXMuYylyZXR1cm4gd2UobmV3IEkoInJlZGlyZWN0LW9wZXJhdGlvbi1wZW5kaW5nIikpO3ZhciBpPXRoaXMsbz1sLmRvY3VtZW50LHM9bnVsbCxhPW51bGwsdT1udWxsLGM9bnVsbDtyZXR1cm4gdGhpcy5jPWJlKCkudGhlbihmdW5jdGlvbigpe3JldHVybiBrbyhlKSx2YyhpKX0pLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24obix0LGUscixpKXt2YXIgbz1mdW5jdGlvbigpe2Zvcih2YXIgdD0yMCxlPVtdOzA8dDspZS5wdXNoKCIxMjM0NTY3ODkwYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWiIuY2hhckF0KE1hdGguZmxvb3IoNjIqTWF0aC5yYW5kb20oKSkpKSx0LS07cmV0dXJuIGUuam9pbigiIil9KCkscz1uZXcgUm8odCxyLG51bGwsbyxuZXcgSSgibm8tYXV0aC1ldmVudCIpLG51bGwsaSksYT1tcigiQnVpbGRJbmZvLnBhY2thZ2VOYW1lIixsKTtpZigic3RyaW5nIiE9dHlwZW9mIGEpdGhyb3cgbmV3IEkoImludmFsaWQtY29yZG92YS1jb25maWd1cmF0aW9uIik7dmFyIHU9bXIoIkJ1aWxkSW5mby5kaXNwbGF5TmFtZSIsbCksYz17fTtpZih5cigpLnRvTG93ZXJDYXNlKCkubWF0Y2goL2lwaG9uZXxpcGFkfGlwb2QvKSljLmliaT1hO2Vsc2V7aWYoIXlyKCkudG9Mb3dlckNhc2UoKS5tYXRjaCgvYW5kcm9pZC8pKXJldHVybiB3ZShuZXcgSSgib3BlcmF0aW9uLW5vdC1zdXBwb3J0ZWQtaW4tdGhpcy1lbnZpcm9ubWVudCIpKTtjLmFwbj1hfXUmJihjLmFwcERpc3BsYXlOYW1lPXUpLG89cGMobyksYy5zZXNzaW9uSWQ9bzt2YXIgaD11dShuLnYsbi5pLG4ubCx0LGUsbnVsbCxyLG4ubSxjLG4udSxpLG4ucyk7cmV0dXJuIG4ubWEoKS50aGVuKGZ1bmN0aW9uKCl7dmFyIHQ9bi5oO3JldHVybiBuLkMuYS5zZXQoJHUscy53KCksdCl9KS50aGVuKGZ1bmN0aW9uKCl7dmFyIHQ9bXIoImNvcmRvdmEucGx1Z2lucy5icm93c2VydGFiLmlzQXZhaWxhYmxlIixsKTtpZigiZnVuY3Rpb24iIT10eXBlb2YgdCl0aHJvdyBuZXcgSSgiaW52YWxpZC1jb3Jkb3ZhLWNvbmZpZ3VyYXRpb24iKTt2YXIgZT1udWxsO3QoZnVuY3Rpb24odCl7aWYodCl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mKGU9bXIoImNvcmRvdmEucGx1Z2lucy5icm93c2VydGFiLm9wZW5VcmwiLGwpKSl0aHJvdyBuZXcgSSgiaW52YWxpZC1jb3Jkb3ZhLWNvbmZpZ3VyYXRpb24iKTtlKGgpfWVsc2V7aWYoImZ1bmN0aW9uIiE9dHlwZW9mKGU9bXIoImNvcmRvdmEuSW5BcHBCcm93c2VyLm9wZW4iLGwpKSl0aHJvdyBuZXcgSSgiaW52YWxpZC1jb3Jkb3ZhLWNvbmZpZ3VyYXRpb24iKTt0PXlyKCksbi5hPWUoaCx0Lm1hdGNoKC8oaVBhZHxpUGhvbmV8aVBvZCkuKk9TIDdfXGQvaSl8fHQubWF0Y2goLyhpUGFkfGlQaG9uZXxpUG9kKS4qT1MgOF9cZC9pKT8iX2JsYW5rIjoiX3N5c3RlbSIsImxvY2F0aW9uPXllcyIpfX0pfSl9KGksdCxlLG4scil9KS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBmZShmdW5jdGlvbihlLHQpe2E9ZnVuY3Rpb24oKXt2YXIgdD1tcigiY29yZG92YS5wbHVnaW5zLmJyb3dzZXJ0YWIuY2xvc2UiLGwpO3JldHVybiBlKCksImZ1bmN0aW9uIj09dHlwZW9mIHQmJnQoKSxpLmEmJiJmdW5jdGlvbiI9PXR5cGVvZiBpLmEuY2xvc2UmJihpLmEuY2xvc2UoKSxpLmE9bnVsbCksITF9LGkuRWEoYSksdT1mdW5jdGlvbigpe3M9c3x8Z24oMmUzKS50aGVuKGZ1bmN0aW9uKCl7dChuZXcgSSgicmVkaXJlY3QtY2FuY2VsbGVkLWJ5LXVzZXIiKSl9KX0sYz1mdW5jdGlvbigpe1ByKCkmJnUoKX0sby5hZGRFdmVudExpc3RlbmVyKCJyZXN1bWUiLHUsITEpLHlyKCkudG9Mb3dlckNhc2UoKS5tYXRjaCgvYW5kcm9pZC8pfHxvLmFkZEV2ZW50TGlzdGVuZXIoInZpc2liaWxpdHljaGFuZ2UiLGMsITEpfSkubyhmdW5jdGlvbih0KXtyZXR1cm4gZ2MoaSkudGhlbihmdW5jdGlvbigpe3Rocm93IHR9KX0pfSkub2EoZnVuY3Rpb24oKXt1JiZvLnJlbW92ZUV2ZW50TGlzdGVuZXIoInJlc3VtZSIsdSwhMSksYyYmby5yZW1vdmVFdmVudExpc3RlbmVyKCJ2aXNpYmlsaXR5Y2hhbmdlIixjLCExKSxzJiZzLmNhbmNlbCgpLGEmJmkuU2EoYSksaS5jPW51bGx9KX0sdC5FYT1mdW5jdGlvbihlKXt0aGlzLmIucHVzaChlKSx2Yyh0aGlzKS5vKGZ1bmN0aW9uKHQpeyJhdXRoL2ludmFsaWQtY29yZG92YS1jb25maWd1cmF0aW9uIj09PXQuY29kZSYmKHQ9bmV3IFJvKCJ1bmtub3duIixudWxsLG51bGwsbnVsbCxuZXcgSSgibm8tYXV0aC1ldmVudCIpKSxlKHQpKX0pfSx0LlNhPWZ1bmN0aW9uKGUpe0godGhpcy5iLGZ1bmN0aW9uKHQpe3JldHVybiB0PT1lfSl9O3ZhciBtYz17bmFtZToicGVuZGluZ1JlZGlyZWN0IixGOiJzZXNzaW9uIn07ZnVuY3Rpb24gYmModCl7cmV0dXJuIFF1KHQuYixtYyx0LmEpfWZ1bmN0aW9uIHdjKHQsZSxuLHIpe3RoaXMuaT17fSx0aGlzLnU9MCx0aGlzLkQ9dCx0aGlzLnY9ZSx0aGlzLm09bix0aGlzLko9cix0aGlzLmg9W10sdGhpcy5mPSExLHRoaXMubD1tKHRoaXMucyx0aGlzKSx0aGlzLmI9bmV3IExjLHRoaXMuQz1uZXcgcWMsdGhpcy5nPW5ldyB5YyhEYyh0aGlzLnYsdGhpcy5tKSksdGhpcy5jPXt9LHRoaXMuYy51bmtub3duPXRoaXMuYix0aGlzLmMuc2lnbkluVmlhUmVkaXJlY3Q9dGhpcy5iLHRoaXMuYy5saW5rVmlhUmVkaXJlY3Q9dGhpcy5iLHRoaXMuYy5yZWF1dGhWaWFSZWRpcmVjdD10aGlzLmIsdGhpcy5jLnNpZ25JblZpYVBvcHVwPXRoaXMuQyx0aGlzLmMubGlua1ZpYVBvcHVwPXRoaXMuQyx0aGlzLmMucmVhdXRoVmlhUG9wdXA9dGhpcy5DLHRoaXMuYT1fYyh0aGlzLkQsdGhpcy52LHRoaXMubSxFLHRoaXMuSil9ZnVuY3Rpb24gX2ModCxlLG4scixpKXt2YXIgbz1YbC5TREtfVkVSU0lPTnx8bnVsbDtyZXR1cm4gbmV3KGFyKCk/bGM6aXUpKHQsZSxuLG8scixpKX1mdW5jdGlvbiBJYyhlKXtlLmZ8fChlLmY9ITAsZS5hLkVhKGUubCkpO3ZhciBuPWUuYTtyZXR1cm4gZS5hLm1hKCkubyhmdW5jdGlvbih0KXt0aHJvdyBlLmE9PW4mJmUucmVzZXQoKSx0fSl9ZnVuY3Rpb24gVGMobil7bi5hLlhiKCkmJkljKG4pLm8oZnVuY3Rpb24odCl7dmFyIGU9bmV3IFJvKCJ1bmtub3duIixudWxsLG51bGwsbnVsbCxuZXcgSSgib3BlcmF0aW9uLW5vdC1zdXBwb3J0ZWQtaW4tdGhpcy1lbnZpcm9ubWVudCIpKTtrYyh0KSYmbi5zKGUpfSksbi5hLlRiKCl8fE1jKG4uYil9ZnVuY3Rpb24gRWMobix0KXtLKG4uaCx0KXx8bi5oLnB1c2godCksbi5mfHwodD1uLmcpLmIuZ2V0KG1jLHQuYSkudGhlbihmdW5jdGlvbih0KXtyZXR1cm4icGVuZGluZyI9PXR9KS50aGVuKGZ1bmN0aW9uKHQpe3Q/YmMobi5nKS50aGVuKGZ1bmN0aW9uKCl7SWMobikubyhmdW5jdGlvbih0KXt2YXIgZT1uZXcgUm8oInVua25vd24iLG51bGwsbnVsbCxudWxsLG5ldyBJKCJvcGVyYXRpb24tbm90LXN1cHBvcnRlZC1pbi10aGlzLWVudmlyb25tZW50IikpO2tjKHQpJiZuLnMoZSl9KX0pOlRjKG4pfSkubyhmdW5jdGlvbigpe1RjKG4pfSl9ZnVuY3Rpb24gU2ModCxlKXtIKHQuaCxmdW5jdGlvbih0KXtyZXR1cm4gdD09ZX0pfXdjLnByb3RvdHlwZS5yZXNldD1mdW5jdGlvbigpe3RoaXMuZj0hMSx0aGlzLmEuU2EodGhpcy5sKSx0aGlzLmE9X2ModGhpcy5ELHRoaXMudix0aGlzLm0sbnVsbCx0aGlzLkopLHRoaXMuaT17fX0sd2MucHJvdG90eXBlLnM9ZnVuY3Rpb24odCl7aWYoIXQpdGhyb3cgbmV3IEkoImludmFsaWQtYXV0aC1ldmVudCIpO2lmKDZlNTw9RGF0ZS5ub3coKS10aGlzLnUmJih0aGlzLmk9e30sdGhpcy51PTApLHQmJnQuZ2V0VWlkKCkmJnRoaXMuaS5oYXNPd25Qcm9wZXJ0eSh0LmdldFVpZCgpKSlyZXR1cm4hMTtmb3IodmFyIGU9ITEsbj0wO248dGhpcy5oLmxlbmd0aDtuKyspe3ZhciByPXRoaXMuaFtuXTtpZihyLkZiKHQuYyx0LmIpKXsoZT10aGlzLmNbdC5jXSkmJihlLmgodCxyKSx0JiYodC5mfHx0LmIpJiYodGhpcy5pW3QuZ2V0VWlkKCldPSEwLHRoaXMudT1EYXRlLm5vdygpKSksZT0hMDticmVha319cmV0dXJuIE1jKHRoaXMuYiksZX07dmFyIENjPW5ldyBScigyZTMsMWU0KSxOYz1uZXcgUnIoM2U0LDZlNCk7ZnVuY3Rpb24gQWModCxlLG4scixpLG8scyl7cmV0dXJuIHQuYS5NYihlLG4scixmdW5jdGlvbigpe3QuZnx8KHQuZj0hMCx0LmEuRWEodC5sKSl9LGZ1bmN0aW9uKCl7dC5yZXNldCgpfSxpLG8scyl9ZnVuY3Rpb24ga2ModCl7cmV0dXJuISghdHx8ImF1dGgvY29yZG92YS1ub3QtcmVhZHkiIT10LmNvZGUpfWZ1bmN0aW9uIFJjKGUsdCxuLHIsaSl7dmFyIG8scztyZXR1cm4ocz1lLmcpLmIuc2V0KG1jLCJwZW5kaW5nIixzLmEpLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gZS5hLk5iKHQsbixyLGkpLm8oZnVuY3Rpb24odCl7aWYoa2ModCkpdGhyb3cgbmV3IEkoIm9wZXJhdGlvbi1ub3Qtc3VwcG9ydGVkLWluLXRoaXMtZW52aXJvbm1lbnQiKTtyZXR1cm4gbz10LGJjKGUuZykudGhlbihmdW5jdGlvbigpe3Rocm93IG99KX0pLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gZS5hLiRiKCk/bmV3IGZlKGZ1bmN0aW9uKCl7fSk6YmMoZS5nKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIGUucWEoKX0pLnRoZW4oZnVuY3Rpb24oKXt9KS5vKGZ1bmN0aW9uKCl7fSl9KX0pfWZ1bmN0aW9uIFBjKHQsZSxuLHIsaSl7cmV0dXJuIHQuYS5PYihyLGZ1bmN0aW9uKHQpe2UubmEobixudWxsLHQsaSl9LENjLmdldCgpKX13Yy5wcm90b3R5cGUucWE9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5iLnFhKCl9O3ZhciBPYz17fTtmdW5jdGlvbiBEYyh0LGUsbil7cmV0dXJuIHQ9dCsiOiIrZSx0PW4/dCsiOiIrbi51cmw6dH1mdW5jdGlvbiB4Yyh0LGUsbixyKXt2YXIgaT1EYyhlLG4scik7cmV0dXJuIE9jW2ldfHwoT2NbaV09bmV3IHdjKHQsZSxuLHIpKSxPY1tpXX1mdW5jdGlvbiBMYygpe3RoaXMuYj1udWxsLHRoaXMuZj1bXSx0aGlzLmM9W10sdGhpcy5hPW51bGwsdGhpcy5pPXRoaXMuZz0hMX1mdW5jdGlvbiBNYyh0KXt0Lmd8fCh0Lmc9ITAsamModCwhMSxudWxsLG51bGwpKX1mdW5jdGlvbiBGYyh0KXt0LmcmJiF0LmkmJmpjKHQsITEsbnVsbCxudWxsKX1mdW5jdGlvbiBVYyh0LGUpe2lmKHQuYj1mdW5jdGlvbigpe3JldHVybiBiZShlKX0sdC5mLmxlbmd0aClmb3IodmFyIG49MDtuPHQuZi5sZW5ndGg7bisrKXQuZltuXShlKX1mdW5jdGlvbiBqYyh0LGUsbixyKXtlP3I/ZnVuY3Rpb24odCxlKXtpZih0LmI9ZnVuY3Rpb24oKXtyZXR1cm4gd2UoZSl9LHQuYy5sZW5ndGgpZm9yKHZhciBuPTA7bjx0LmMubGVuZ3RoO24rKyl0LmNbbl0oZSl9KHQscik6VWModCxuKTpVYyh0LHt1c2VyOm51bGx9KSx0LmY9W10sdC5jPVtdfWZ1bmN0aW9uIHFjKCl7fWZ1bmN0aW9uIFZjKCl7dGhpcy5pYj0hMSxPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywiYXBwVmVyaWZpY2F0aW9uRGlzYWJsZWQiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pYn0sc2V0OmZ1bmN0aW9uKHQpe3RoaXMuaWI9dH0sZW51bWVyYWJsZTohMX0pfWZ1bmN0aW9uIEJjKHQsZSl7dGhpcy5hPWUsanIodGhpcywidmVyaWZpY2F0aW9uSWQiLHQpfWZ1bmN0aW9uIEtjKHQsZSxuLHIpe3JldHVybiBuZXcgQ28odCkuZmIoZSxuKS50aGVuKGZ1bmN0aW9uKHQpe3JldHVybiBuZXcgQmModCxyKX0pfWZ1bmN0aW9uIFdjKHQpe3ZhciBlPXhpKHQpO2lmKCEoZSYmZS5leHAmJmUuYXV0aF90aW1lJiZlLmlhdCkpdGhyb3cgbmV3IEkoImludGVybmFsLWVycm9yIiwiQW4gaW50ZXJuYWwgZXJyb3Igb2NjdXJyZWQuIFRoZSB0b2tlbiBvYnRhaW5lZCBieSBGaXJlYmFzZSBhcHBlYXJzIHRvIGJlIG1hbGZvcm1lZC4gUGxlYXNlIHJldHJ5IHRoZSBvcGVyYXRpb24uIik7cXIodGhpcyx7dG9rZW46dCxleHBpcmF0aW9uVGltZTpEcigxZTMqZS5leHApLGF1dGhUaW1lOkRyKDFlMyplLmF1dGhfdGltZSksaXNzdWVkQXRUaW1lOkRyKDFlMyplLmlhdCksc2lnbkluUHJvdmlkZXI6ZS5maXJlYmFzZSYmZS5maXJlYmFzZS5zaWduX2luX3Byb3ZpZGVyP2UuZmlyZWJhc2Uuc2lnbl9pbl9wcm92aWRlcjpudWxsLHNpZ25JblNlY29uZEZhY3RvcjplLmZpcmViYXNlJiZlLmZpcmViYXNlLnNpZ25faW5fc2Vjb25kX2ZhY3Rvcj9lLmZpcmViYXNlLnNpZ25faW5fc2Vjb25kX2ZhY3RvcjpudWxsLGNsYWltczplfSl9ZnVuY3Rpb24gSGModCxlLG4pe3ZhciByPWUmJmVbemNdO2lmKCFyKXRocm93IG5ldyBJKCJhcmd1bWVudC1lcnJvciIsIkludGVybmFsIGFzc2VydDogSW52YWxpZCBNdWx0aUZhY3RvclJlc29sdmVyIik7dGhpcy5hPXQsdGhpcy5mPWN0KGUpLHRoaXMuZz1uLHRoaXMuYz1uZXcgWWkobnVsbCxyKSx0aGlzLmI9W107dmFyIGk9dGhpcztqKGVbR2NdfHxbXSxmdW5jdGlvbih0KXsodD1Xcih0KSkmJmkuYi5wdXNoKHQpfSksanIodGhpcywiYXV0aCIsdGhpcy5hKSxqcih0aGlzLCJzZXNzaW9uIix0aGlzLmMpLGpyKHRoaXMsImhpbnRzIix0aGlzLmIpfUxjLnByb3RvdHlwZS5yZXNldD1mdW5jdGlvbigpe3RoaXMuYj1udWxsLHRoaXMuYSYmKHRoaXMuYS5jYW5jZWwoKSx0aGlzLmE9bnVsbCl9LExjLnByb3RvdHlwZS5oPWZ1bmN0aW9uKHQsZSl7dmFyIG4scixpLG87dD8odGhpcy5yZXNldCgpLHRoaXMuZz0hMCxuPXQuYyxyPXQuYixpPXQuYSYmImF1dGgvd2ViLXN0b3JhZ2UtdW5zdXBwb3J0ZWQiPT10LmEuY29kZSxvPXQuYSYmImF1dGgvb3BlcmF0aW9uLW5vdC1zdXBwb3J0ZWQtaW4tdGhpcy1lbnZpcm9ubWVudCI9PXQuYS5jb2RlLHRoaXMuaT0hKCFpJiYhbyksInVua25vd24iIT1ufHxpfHxvP3QuYT8oamModGhpcywhMCxudWxsLHQuYSksYmUoKSk6ZS5GYShuLHIpP2Z1bmN0aW9uKGUsdCxuKXtuPW4uRmEodC5jLHQuYik7dmFyIHI9dC5nLGk9dC5mLG89dC5pLHM9dC5UKCksYT0hIXQuYy5tYXRjaCgvUmVkaXJlY3QkLyk7bihyLGkscyxvKS50aGVuKGZ1bmN0aW9uKHQpe2pjKGUsYSx0LG51bGwpfSkubyhmdW5jdGlvbih0KXtqYyhlLGEsbnVsbCx0KX0pfSh0aGlzLHQsZSk6d2UobmV3IEkoImludmFsaWQtYXV0aC1ldmVudCIpKTooamModGhpcywhMSxudWxsLG51bGwpLGJlKCkpKTp3ZShuZXcgSSgiaW52YWxpZC1hdXRoLWV2ZW50IikpfSxMYy5wcm90b3R5cGUucWE9ZnVuY3Rpb24oKXt2YXIgaT10aGlzO3JldHVybiBuZXcgZmUoZnVuY3Rpb24odCxlKXt2YXIgbixyO2kuYj9pLmIoKS50aGVuKHQsZSk6KGkuZi5wdXNoKHQpLGkuYy5wdXNoKGUpLG49aSxyPW5ldyBJKCJ0aW1lb3V0Iiksbi5hJiZuLmEuY2FuY2VsKCksbi5hPWduKE5jLmdldCgpKS50aGVuKGZ1bmN0aW9uKCl7bi5ifHwobi5nPSEwLGpjKG4sITAsbnVsbCxyKSl9KSl9KX0scWMucHJvdG90eXBlLmg9ZnVuY3Rpb24odCxlKXt2YXIgbixyLGksbyxzO3Q/KG49dC5jLHI9dC5iLHQuYT8oZS5uYSh0LmMsbnVsbCx0LmEsdC5iKSxiZSgpKTplLkZhKG4scik/KGk9ZSxvPSh0PXQpLmIscz10LmMsaS5GYShzLG8pKHQuZyx0LmYsdC5UKCksdC5pKS50aGVuKGZ1bmN0aW9uKHQpe2kubmEocyx0LG51bGwsbyl9KS5vKGZ1bmN0aW9uKHQpe2kubmEocyxudWxsLHQsbyl9KSk6d2UobmV3IEkoImludmFsaWQtYXV0aC1ldmVudCIpKSk6d2UobmV3IEkoImludmFsaWQtYXV0aC1ldmVudCIpKX0sQmMucHJvdG90eXBlLmNvbmZpcm09ZnVuY3Rpb24odCl7cmV0dXJuIHQ9Tm8odGhpcy52ZXJpZmljYXRpb25JZCx0KSx0aGlzLmEodCl9O3ZhciBHYz0ibWZhSW5mbyIsemM9Im1mYVBlbmRpbmdDcmVkZW50aWFsIjtmdW5jdGlvbiBRYyh0LGUsbixyKXtJLmNhbGwodGhpcywibXVsdGktZmFjdG9yLWF1dGgtcmVxdWlyZWQiLHIsZSksdGhpcy5iPW5ldyBIYyh0LGUsbiksanIodGhpcywicmVzb2x2ZXIiLHRoaXMuYil9ZnVuY3Rpb24gWWModCxlLG4pe2lmKHQmJmcodC5zZXJ2ZXJSZXNwb25zZSkmJiJhdXRoL211bHRpLWZhY3Rvci1hdXRoLXJlcXVpcmVkIj09PXQuY29kZSl0cnl7cmV0dXJuIG5ldyBRYyhlLHQuc2VydmVyUmVzcG9uc2Usbix0Lm1lc3NhZ2UpfWNhdGNoKHQpe31yZXR1cm4gbnVsbH1mdW5jdGlvbiBYYygpe31mdW5jdGlvbiBKYyh0KXtqcih0aGlzLCJmYWN0b3JJZCIsdC5mYSksdGhpcy5hPXR9ZnVuY3Rpb24gJGModCl7aWYoSmMuY2FsbCh0aGlzLHQpLHRoaXMuYS5mYSE9Q28uUFJPVklERVJfSUQpdGhyb3cgbmV3IEkoImFyZ3VtZW50LWVycm9yIiwiZmlyZWJhc2UuYXV0aC5QaG9uZU11bHRpRmFjdG9yQXNzZXJ0aW9uIHJlcXVpcmVzIGEgdmFsaWQgZmlyZWJhc2UuYXV0aC5QaG9uZUF1dGhDcmVkZW50aWFsIil9ZnVuY3Rpb24gWmModCxlKXtmb3IodmFyIG4gaW4gcWUuY2FsbCh0aGlzLHQpLGUpdGhpc1tuXT1lW25dfWZ1bmN0aW9uIHRoKHQsZSl7dGhpcy5hPXQsdGhpcy5iPVtdLHRoaXMuYz1tKHRoaXMueWMsdGhpcyksJGUodGhpcy5hLCJ1c2VyUmVsb2FkZWQiLHRoaXMuYyk7dmFyIHI9W107ZSYmZS5tdWx0aUZhY3RvciYmZS5tdWx0aUZhY3Rvci5lbnJvbGxlZEZhY3RvcnMmJmooZS5tdWx0aUZhY3Rvci5lbnJvbGxlZEZhY3RvcnMsZnVuY3Rpb24odCl7dmFyIGU9bnVsbCxuPXt9O2lmKHQpe3QudWlkJiYoblt6cl09dC51aWQpLHQuZGlzcGxheU5hbWUmJihuW0hyXT10LmRpc3BsYXlOYW1lKSx0LmVucm9sbG1lbnRUaW1lJiYobltHcl09bmV3IERhdGUodC5lbnJvbGxtZW50VGltZSkudG9JU09TdHJpbmcoKSksdC5waG9uZU51bWJlciYmKG5bUXJdPXQucGhvbmVOdW1iZXIpO3RyeXtlPW5ldyBZcihuKX1jYXRjaCh0KXt9dD1lfWVsc2UgdD1udWxsO3QmJnIucHVzaCh0KX0pLGVoKHRoaXMscil9ZnVuY3Rpb24gZWgodCxlKXt0LmI9ZSxqcih0LCJlbnJvbGxlZEZhY3RvcnMiLGUpfWZ1bmN0aW9uIG5oKHQsZSxuKXtpZih0aGlzLmg9dCx0aGlzLmk9ZSx0aGlzLmc9bix0aGlzLmM9M2U0LHRoaXMuZj05NmU0LHRoaXMuYj1udWxsLHRoaXMuYT10aGlzLmMsdGhpcy5mPHRoaXMuYyl0aHJvdyBFcnJvcigiUHJvYWN0aXZlIHJlZnJlc2ggbG93ZXIgYm91bmQgZ3JlYXRlciB0aGFuIHVwcGVyIGJvdW5kISIpfWZ1bmN0aW9uIHJoKHQsZSl7cmV0dXJuIGU/KHQuYT10LmMsdC5nKCkpOihlPXQuYSx0LmEqPTIsdC5hPnQuZiYmKHQuYT10LmYpLGUpfWZ1bmN0aW9uIGloKHQpe3RoaXMuZj10LHRoaXMuYj10aGlzLmE9bnVsbCx0aGlzLmM9RGF0ZS5ub3coKX1mdW5jdGlvbiBvaCh0LGUpe3ZvaWQgMD09PWUmJihlPXQuYj8oZT10LmIpLmEtZS5nOjApLHQuYz1EYXRlLm5vdygpKzFlMyplfWZ1bmN0aW9uIHNoKHQsZSl7dC5iPURpKGVbQnNdfHwiIiksdC5hPWUucmVmcmVzaFRva2VuLG9oKHQsdm9pZCAwIT09KGU9ZS5leHBpcmVzSW4pP051bWJlcihlKTp2b2lkIDApfWZ1bmN0aW9uIGFoKGUsdCl7cmV0dXJuIHI9ZS5mLGk9dCxuZXcgZmUoZnVuY3Rpb24oZSxuKXsicmVmcmVzaF90b2tlbiI9PWkuZ3JhbnRfdHlwZSYmaS5yZWZyZXNoX3Rva2VufHwiYXV0aG9yaXphdGlvbl9jb2RlIj09aS5ncmFudF90eXBlJiZpLmNvZGU/SnMocixyLmwrIj9rZXk9IitlbmNvZGVVUklDb21wb25lbnQoci5jKSxmdW5jdGlvbih0KXt0P3QuZXJyb3I/bihZYSh0KSk6dC5hY2Nlc3NfdG9rZW4mJnQucmVmcmVzaF90b2tlbj9lKHQpOm4obmV3IEkoImludGVybmFsLWVycm9yIikpOm4obmV3IEkoIm5ldHdvcmstcmVxdWVzdC1mYWlsZWQiKSl9LCJQT1NUIixWbihpKS50b1N0cmluZygpLHIuZyxyLm0uZ2V0KCkpOm4obmV3IEkoImludGVybmFsLWVycm9yIikpfSkudGhlbihmdW5jdGlvbih0KXtyZXR1cm4gZS5iPURpKHQuYWNjZXNzX3Rva2VuKSxlLmE9dC5yZWZyZXNoX3Rva2VuLG9oKGUsdC5leHBpcmVzX2luKSx7YWNjZXNzVG9rZW46ZS5iLnRvU3RyaW5nKCkscmVmcmVzaFRva2VuOmUuYX19KS5vKGZ1bmN0aW9uKHQpe3Rocm93ImF1dGgvdXNlci10b2tlbi1leHBpcmVkIj09dC5jb2RlJiYoZS5hPW51bGwpLHR9KTt2YXIgcixpfWZ1bmN0aW9uIHVoKHQsZSl7dGhpcy5hPXR8fG51bGwsdGhpcy5iPWV8fG51bGwscXIodGhpcyx7bGFzdFNpZ25JblRpbWU6RHIoZXx8bnVsbCksY3JlYXRpb25UaW1lOkRyKHR8fG51bGwpfSl9ZnVuY3Rpb24gY2godCxlLG4scixpLG8pe3FyKHRoaXMse3VpZDp0LGRpc3BsYXlOYW1lOnJ8fG51bGwscGhvdG9VUkw6aXx8bnVsbCxlbWFpbDpufHxudWxsLHBob25lTnVtYmVyOm98fG51bGwscHJvdmlkZXJJZDplfSl9ZnVuY3Rpb24gaGgodCxlLG4pe3RoaXMuSj1bXSx0aGlzLmw9dC5hcGlLZXksdGhpcy5tPXQuYXBwTmFtZSx0aGlzLnM9dC5hdXRoRG9tYWlufHxudWxsO3ZhciByLGk9WGwuU0RLX1ZFUlNJT04/Z3IoWGwuU0RLX1ZFUlNJT04pOm51bGw7dGhpcy5hPW5ldyBxcyh0aGlzLmwsQShFKSxpKSx0LmVtdWxhdG9yQ29uZmlnJiZRcyh0aGlzLmEsdC5lbXVsYXRvckNvbmZpZyksdGhpcy5iPW5ldyBpaCh0aGlzLmEpLG1oKHRoaXMsZVtCc10pLHNoKHRoaXMuYixlKSxqcih0aGlzLCJyZWZyZXNoVG9rZW4iLHRoaXMuYi5hKSxfaCh0aGlzLG58fHt9KSxsbi5jYWxsKHRoaXMpLHRoaXMuUj0hMSx0aGlzLnMmJndyKCkmJih0aGlzLmk9eGModGhpcy5zLHRoaXMubCx0aGlzLm0pKSx0aGlzLlM9W10sdGhpcy5oPW51bGwsdGhpcy51PShyPXRoaXMsbmV3IG5oKGZ1bmN0aW9uKCl7cmV0dXJuIHIuSSghMCl9LGZ1bmN0aW9uKHQpe3JldHVybiEoIXR8fCJhdXRoL25ldHdvcmstcmVxdWVzdC1mYWlsZWQiIT10LmNvZGUpfSxmdW5jdGlvbigpe3ZhciB0PXIuYi5jLURhdGUubm93KCktM2U1O3JldHVybiAwPHQ/dDowfSkpLHRoaXMuYWE9bSh0aGlzLmhiLHRoaXMpO3ZhciBvPXRoaXM7dGhpcy55YT1udWxsLHRoaXMuT2E9ZnVuY3Rpb24odCl7by53YSh0LmgpfSx0aGlzLmphPW51bGwsdGhpcy5BYT1mdW5jdGlvbih0KXtRcyhvLmEsdC5jKX0sdGhpcy5YPW51bGwsdGhpcy4kPVtdLHRoaXMuQmE9ZnVuY3Rpb24odCl7cGgobyx0LmYpfSx0aGlzLmJhPW51bGwsdGhpcy5PPW5ldyB0aCh0aGlzLG4pLGpyKHRoaXMsIm11bHRpRmFjdG9yIix0aGlzLk8pfWZ1bmN0aW9uIGxoKHQsZSl7dC5qYSYmZW4odC5qYSwibGFuZ3VhZ2VDb2RlQ2hhbmdlZCIsdC5PYSksKHQuamE9ZSkmJiRlKGUsImxhbmd1YWdlQ29kZUNoYW5nZWQiLHQuT2EpfWZ1bmN0aW9uIGZoKHQsZSl7dC5YJiZlbih0LlgsImVtdWxhdG9yQ29uZmlnQ2hhbmdlZCIsdC5BYSksKHQuWD1lKSYmJGUoZSwiZW11bGF0b3JDb25maWdDaGFuZ2VkIix0LkFhKX1mdW5jdGlvbiBwaCh0LGUpe3QuJD1lLFhzKHQuYSxYbC5TREtfVkVSU0lPTj9ncihYbC5TREtfVkVSU0lPTix0LiQpOm51bGwpfWZ1bmN0aW9uIGRoKHQsZSl7dC5iYSYmZW4odC5iYSwiZnJhbWV3b3JrQ2hhbmdlZCIsdC5CYSksKHQuYmE9ZSkmJiRlKGUsImZyYW1ld29ya0NoYW5nZWQiLHQuQmEpfWZ1bmN0aW9uIHZoKGUpe3RyeXtyZXR1cm4gWGwuYXBwKGUubSkuYXV0aCgpfWNhdGNoKHQpe3Rocm93IG5ldyBJKCJpbnRlcm5hbC1lcnJvciIsIk5vIGZpcmViYXNlLmF1dGguQXV0aCBpbnN0YW5jZSBpcyBhdmFpbGFibGUgZm9yIHRoZSBGaXJlYmFzZSBBcHAgJyIrZS5tKyInISIpfX1mdW5jdGlvbiBnaCh0KXt0LkR8fHQudS5ifHwodC51LnN0YXJ0KCksZW4odCwidG9rZW5DaGFuZ2VkIix0LmFhKSwkZSh0LCJ0b2tlbkNoYW5nZWQiLHQuYWEpKX1mdW5jdGlvbiB5aCh0KXtlbih0LCJ0b2tlbkNoYW5nZWQiLHQuYWEpLHQudS5zdG9wKCl9ZnVuY3Rpb24gbWgodCxlKXt0LnphPWUsanIodCwiX2xhdCIsZSl9ZnVuY3Rpb24gYmgodCl7Zm9yKHZhciBlPVtdLG49MDtuPHQuUy5sZW5ndGg7bisrKWUucHVzaCh0LlNbbl0odCkpO3JldHVybiBJZShlKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIHR9KX1mdW5jdGlvbiB3aCh0KXt0LmkmJiF0LlImJih0LlI9ITAsRWModC5pLHQpKX1mdW5jdGlvbiBfaCh0LGUpe3FyKHQse3VpZDplLnVpZCxkaXNwbGF5TmFtZTplLmRpc3BsYXlOYW1lfHxudWxsLHBob3RvVVJMOmUucGhvdG9VUkx8fG51bGwsZW1haWw6ZS5lbWFpbHx8bnVsbCxlbWFpbFZlcmlmaWVkOmUuZW1haWxWZXJpZmllZHx8ITEscGhvbmVOdW1iZXI6ZS5waG9uZU51bWJlcnx8bnVsbCxpc0Fub255bW91czplLmlzQW5vbnltb3VzfHwhMSx0ZW5hbnRJZDplLnRlbmFudElkfHxudWxsLG1ldGFkYXRhOm5ldyB1aChlLmNyZWF0ZWRBdCxlLmxhc3RMb2dpbkF0KSxwcm92aWRlckRhdGE6W119KSx0LmEuYj10LnRlbmFudElkfWZ1bmN0aW9uIEloKCl7fWZ1bmN0aW9uIFRoKHQpe3JldHVybiBiZSgpLnRoZW4oZnVuY3Rpb24oKXtpZih0LkQpdGhyb3cgbmV3IEkoImFwcC1kZWxldGVkIil9KX1mdW5jdGlvbiBFaCh0KXtyZXR1cm4gVih0LnByb3ZpZGVyRGF0YSxmdW5jdGlvbih0KXtyZXR1cm4gdC5wcm92aWRlcklkfSl9ZnVuY3Rpb24gU2godCxlKXtlJiYoQ2godCxlLnByb3ZpZGVySWQpLHQucHJvdmlkZXJEYXRhLnB1c2goZSkpfWZ1bmN0aW9uIENoKHQsZSl7SCh0LnByb3ZpZGVyRGF0YSxmdW5jdGlvbih0KXtyZXR1cm4gdC5wcm92aWRlcklkPT1lfSl9ZnVuY3Rpb24gTmgodCxlLG4peygidWlkIiE9ZXx8bikmJnQuaGFzT3duUHJvcGVydHkoZSkmJmpyKHQsZSxuKX1mdW5jdGlvbiBBaChlLHQpe3ZhciBuLHI7ZSE9dCYmKHFyKGUse3VpZDp0LnVpZCxkaXNwbGF5TmFtZTp0LmRpc3BsYXlOYW1lLHBob3RvVVJMOnQucGhvdG9VUkwsZW1haWw6dC5lbWFpbCxlbWFpbFZlcmlmaWVkOnQuZW1haWxWZXJpZmllZCxwaG9uZU51bWJlcjp0LnBob25lTnVtYmVyLGlzQW5vbnltb3VzOnQuaXNBbm9ueW1vdXMsdGVuYW50SWQ6dC50ZW5hbnRJZCxwcm92aWRlckRhdGE6W119KSx0Lm1ldGFkYXRhP2pyKGUsIm1ldGFkYXRhIixuZXcgdWgoKHI9dC5tZXRhZGF0YSkuYSxyLmIpKTpqcihlLCJtZXRhZGF0YSIsbmV3IHVoKSxqKHQucHJvdmlkZXJEYXRhLGZ1bmN0aW9uKHQpe1NoKGUsdCl9KSxuPWUuYixyPXQuYixuLmI9ci5iLG4uYT1yLmEsbi5jPXIuYyxqcihlLCJyZWZyZXNoVG9rZW4iLGUuYi5hKSxlaChlLk8sdC5PLmIpKX1mdW5jdGlvbiBraChpKXtyZXR1cm4gaS5JKCkudGhlbihmdW5jdGlvbih0KXt2YXIgZSxuLHI9aS5pc0Fub255bW91cztyZXR1cm4gbj10LHphKChlPWkpLmEsRWEse2lkVG9rZW46bn0pLnRoZW4obShlLktjLGUpKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIHJ8fE5oKGksImlzQW5vbnltb3VzIiwhMSksdH0pfSl9ZnVuY3Rpb24gUmgodCxlKXtlW0JzXSYmdC56YSE9ZVtCc10mJihzaCh0LmIsZSksdC5kaXNwYXRjaEV2ZW50KG5ldyBaYygidG9rZW5DaGFuZ2VkIikpLG1oKHQsZVtCc10pLE5oKHQsInJlZnJlc2hUb2tlbiIsdC5iLmEpKX1mdW5jdGlvbiBQaCh0LGUpe3JldHVybiBraCh0KS50aGVuKGZ1bmN0aW9uKCl7aWYoSyhFaCh0KSxlKSlyZXR1cm4gYmgodCkudGhlbihmdW5jdGlvbigpe3Rocm93IG5ldyBJKCJwcm92aWRlci1hbHJlYWR5LWxpbmtlZCIpfSl9KX1mdW5jdGlvbiBPaCh0LGUsbil7cmV0dXJuIFZyKHt1c2VyOnQsY3JlZGVudGlhbDpBbyhlKSxhZGRpdGlvbmFsVXNlckluZm86ZT1qaShlKSxvcGVyYXRpb25UeXBlOm59KX1mdW5jdGlvbiBEaCh0LGUpe3JldHVybiBSaCh0LGUpLHQucmVsb2FkKCkudGhlbihmdW5jdGlvbigpe3JldHVybiB0fSl9ZnVuY3Rpb24geGgobixyLHQsZSxpKXtpZighd3IoKSlyZXR1cm4gd2UobmV3IEkoIm9wZXJhdGlvbi1ub3Qtc3VwcG9ydGVkLWluLXRoaXMtZW52aXJvbm1lbnQiKSk7aWYobi5oJiYhaSlyZXR1cm4gd2Uobi5oKTt2YXIgbz1VaSh0LnByb3ZpZGVySWQpLHM9TnIobi51aWQrIjo6OiIpLGE9bnVsbCx1PXJyKGE9KCFUcigpfHx1cigpKSYmbi5zJiZ0LmlzT0F1dGhQcm92aWRlcj91dShuLnMsbi5sLG4ubSxyLHQsbnVsbCxzLFhsLlNES19WRVJTSU9OfHxudWxsLG51bGwsbnVsbCxuLnRlbmFudElkKTphLG8mJm8udWEsbyYmby50YSk7cmV0dXJuIGU9ZSgpLnRoZW4oZnVuY3Rpb24oKXtpZihNaChuKSwhaSlyZXR1cm4gbi5JKCkudGhlbihmdW5jdGlvbigpe30pfSkudGhlbihmdW5jdGlvbigpe3JldHVybiBBYyhuLmksdSxyLHQscywhIWEsbi50ZW5hbnRJZCl9KS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBmZShmdW5jdGlvbih0LGUpe24ubmEocixudWxsLG5ldyBJKCJjYW5jZWxsZWQtcG9wdXAtcmVxdWVzdCIpLG4uZ3x8bnVsbCksbi5mPXQsbi5DPWUsbi5nPXMsbi5jPVBjKG4uaSxuLHIsdSxzKX0pfSkudGhlbihmdW5jdGlvbih0KXtyZXR1cm4gdSYmbnIodSksdD9Wcih0KTpudWxsfSkubyhmdW5jdGlvbih0KXt0aHJvdyB1JiZucih1KSx0fSksRmgobixlLGkpfWZ1bmN0aW9uIExoKGUsdCxuLHIsaSl7aWYoIXdyKCkpcmV0dXJuIHdlKG5ldyBJKCJvcGVyYXRpb24tbm90LXN1cHBvcnRlZC1pbi10aGlzLWVudmlyb25tZW50IikpO2lmKGUuaCYmIWkpcmV0dXJuIHdlKGUuaCk7dmFyIG89bnVsbCxzPU5yKGUudWlkKyI6OjoiKTtyZXR1cm4gcj1yKCkudGhlbihmdW5jdGlvbigpe2lmKE1oKGUpLCFpKXJldHVybiBlLkkoKS50aGVuKGZ1bmN0aW9uKCl7fSl9KS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIGUuZ2E9cyxiaChlKX0pLnRoZW4oZnVuY3Rpb24odCl7cmV0dXJuIHQ9ZS5oYT8odD1lLmhhKS5iLnNldChxaCxlLncoKSx0LmEpOnR9KS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIFJjKGUuaSx0LG4scyxlLnRlbmFudElkKX0pLm8oZnVuY3Rpb24odCl7aWYobz10LGUuaGEpcmV0dXJuIFZoKGUuaGEpO3Rocm93IG99KS50aGVuKGZ1bmN0aW9uKCl7aWYobyl0aHJvdyBvfSksRmgoZSxyLGkpfWZ1bmN0aW9uIE1oKHQpe2lmKCF0Lml8fCF0LlIpe2lmKHQuaSYmIXQuUil0aHJvdyBuZXcgSSgiaW50ZXJuYWwtZXJyb3IiKTt0aHJvdyBuZXcgSSgiYXV0aC1kb21haW4tY29uZmlnLXJlcXVpcmVkIil9fWZ1bmN0aW9uIEZoKG4sdCxlKXt2YXIgcixpPSh0PXQsZT1lLChyPW4pLmgmJiFlPyh0LmNhbmNlbCgpLHdlKHIuaCkpOnQubyhmdW5jdGlvbih0KXt0aHJvdyF0fHwiYXV0aC91c2VyLWRpc2FibGVkIiE9dC5jb2RlJiYiYXV0aC91c2VyLXRva2VuLWV4cGlyZWQiIT10LmNvZGV8fChyLmh8fHIuZGlzcGF0Y2hFdmVudChuZXcgWmMoInVzZXJJbnZhbGlkYXRlZCIpKSxyLmg9dCksdH0pKTtyZXR1cm4gbi5KLnB1c2goaSksaS5vYShmdW5jdGlvbigpe1cobi5KLGkpfSksaS5vKGZ1bmN0aW9uKHQpe3ZhciBlPW51bGw7dGhyb3coZT10JiYiYXV0aC9tdWx0aS1mYWN0b3ItYXV0aC1yZXF1aXJlZCI9PT10LmNvZGU/WWModC53KCksdmgobiksbShuLmpjLG4pKTplKXx8dH0pfWZ1bmN0aW9uIFVoKHQpe2lmKCF0LmFwaUtleSlyZXR1cm4gbnVsbDt2YXIgZT17YXBpS2V5OnQuYXBpS2V5LGF1dGhEb21haW46dC5hdXRoRG9tYWluLGFwcE5hbWU6dC5hcHBOYW1lLGVtdWxhdG9yQ29uZmlnOnQuZW11bGF0b3JDb25maWd9LG49e307aWYoIXQuc3RzVG9rZW5NYW5hZ2VyfHwhdC5zdHNUb2tlbk1hbmFnZXIuYWNjZXNzVG9rZW4pcmV0dXJuIG51bGw7bltCc109dC5zdHNUb2tlbk1hbmFnZXIuYWNjZXNzVG9rZW4sbi5yZWZyZXNoVG9rZW49dC5zdHNUb2tlbk1hbmFnZXIucmVmcmVzaFRva2VufHxudWxsO3ZhciByPXQuc3RzVG9rZW5NYW5hZ2VyLmV4cGlyYXRpb25UaW1lO3ImJihuLmV4cGlyZXNJbj0oci1EYXRlLm5vdygpKS8xZTMpO3ZhciBpPW5ldyBoaChlLG4sdCk7cmV0dXJuIHQucHJvdmlkZXJEYXRhJiZqKHQucHJvdmlkZXJEYXRhLGZ1bmN0aW9uKHQpe3QmJlNoKGksVnIodCkpfSksdC5yZWRpcmVjdEV2ZW50SWQmJihpLmdhPXQucmVkaXJlY3RFdmVudElkKSxpfWZ1bmN0aW9uIGpoKHQpe3RoaXMuYT10LHRoaXMuYj1IdSgpfUhjLnByb3RvdHlwZS5SYz1mdW5jdGlvbih0KXt2YXIgbj10aGlzO3JldHVybiB0LnNiKHRoaXMuYS5hLHRoaXMuYykudGhlbihmdW5jdGlvbih0KXt2YXIgZT1jdChuLmYpO3JldHVybiBkZWxldGUgZVtHY10sZGVsZXRlIGVbemNdLGx0KGUsdCksbi5nKGUpfSl9LHcoUWMsSSksWGMucHJvdG90eXBlLnNiPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gZS50eXBlPT1YaT8obz10aGlzLHM9dCxhPW4sZS5IYSgpLnRoZW4oZnVuY3Rpb24odCl7cmV0dXJuIHQ9e2lkVG9rZW46dH0sdm9pZCAwIT09YSYmKHQuZGlzcGxheU5hbWU9YSksbHQodCx7cGhvbmVWZXJpZmljYXRpb25JbmZvOlNvKG8uYSl9KSx6YShzLElhLHQpfSkpOihyPXRoaXMsaT10LGUuSGEoKS50aGVuKGZ1bmN0aW9uKHQpe3JldHVybiBsdCh0PXttZmFQZW5kaW5nQ3JlZGVudGlhbDp0fSx7cGhvbmVWZXJpZmljYXRpb25JbmZvOlNvKHIuYSl9KSx6YShpLFRhLHQpfSkpO3ZhciByLGksbyxzLGF9LHcoSmMsWGMpLHcoJGMsSmMpLHcoWmMscWUpLCh0PXRoLnByb3RvdHlwZSkueWM9ZnVuY3Rpb24odCl7dmFyIGU7ZWgodGhpcywodD10LmhkLGU9W10saih0Lm1mYUluZm98fFtdLGZ1bmN0aW9uKHQpeyh0PVdyKHQpKSYmZS5wdXNoKHQpfSksZSkpfSx0LlJiPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuYS5JKCkudGhlbihmdW5jdGlvbih0KXtyZXR1cm4gbmV3IFlpKHQsbnVsbCl9KX0sdC5mYz1mdW5jdGlvbihlLG4pe3ZhciByPXRoaXMsaT10aGlzLmEuYTtyZXR1cm4gdGhpcy5SYigpLnRoZW4oZnVuY3Rpb24odCl7cmV0dXJuIGUuc2IoaSx0LG4pfSkudGhlbihmdW5jdGlvbih0KXtyZXR1cm4gUmgoci5hLHQpLHIuYS5yZWxvYWQoKX0pfSx0LmJkPWZ1bmN0aW9uKHQpe3ZhciBuPXRoaXMscj0ic3RyaW5nIj09dHlwZW9mIHQ/dDp0LnVpZCxlPXRoaXMuYS5hO3JldHVybiB0aGlzLmEuSSgpLnRoZW4oZnVuY3Rpb24odCl7cmV0dXJuIHphKGUsR2Ese2lkVG9rZW46dCxtZmFFbnJvbGxtZW50SWQ6cn0pfSkudGhlbihmdW5jdGlvbih0KXt2YXIgZT1xKG4uYixmdW5jdGlvbih0KXtyZXR1cm4gdC51aWQhPXJ9KTtyZXR1cm4gZWgobixlKSxSaChuLmEsdCksbi5hLnJlbG9hZCgpLm8oZnVuY3Rpb24odCl7aWYoImF1dGgvdXNlci10b2tlbi1leHBpcmVkIiE9dC5jb2RlKXRocm93IHR9KX0pfSx0Lnc9ZnVuY3Rpb24oKXtyZXR1cm57bXVsdGlGYWN0b3I6e2Vucm9sbGVkRmFjdG9yczpWKHRoaXMuYixmdW5jdGlvbih0KXtyZXR1cm4gdC53KCl9KX19fSxuaC5wcm90b3R5cGUuc3RhcnQ9ZnVuY3Rpb24oKXt0aGlzLmE9dGhpcy5jLGZ1bmN0aW9uIGUobix0KXtuLnN0b3AoKTtuLmI9Z24ocmgobix0KSkudGhlbihPcikudGhlbihmdW5jdGlvbigpe3JldHVybiBuLmgoKX0pLnRoZW4oZnVuY3Rpb24oKXtlKG4sITApfSkubyhmdW5jdGlvbih0KXtuLmkodCkmJmUobiwhMSl9KX0odGhpcywhMCl9LG5oLnByb3RvdHlwZS5zdG9wPWZ1bmN0aW9uKCl7dGhpcy5iJiYodGhpcy5iLmNhbmNlbCgpLHRoaXMuYj1udWxsKX0saWgucHJvdG90eXBlLnc9ZnVuY3Rpb24oKXtyZXR1cm57YXBpS2V5OnRoaXMuZi5jLHJlZnJlc2hUb2tlbjp0aGlzLmEsYWNjZXNzVG9rZW46dGhpcy5iJiZ0aGlzLmIudG9TdHJpbmcoKSxleHBpcmF0aW9uVGltZTp0aGlzLmN9fSxpaC5wcm90b3R5cGUuZ2V0VG9rZW49ZnVuY3Rpb24odCl7cmV0dXJuIHQ9ISF0LHRoaXMuYiYmIXRoaXMuYT93ZShuZXcgSSgidXNlci10b2tlbi1leHBpcmVkIikpOnR8fCF0aGlzLmJ8fERhdGUubm93KCk+dGhpcy5jLTNlND90aGlzLmE/YWgodGhpcyx7Z3JhbnRfdHlwZToicmVmcmVzaF90b2tlbiIscmVmcmVzaF90b2tlbjp0aGlzLmF9KTpiZShudWxsKTpiZSh7YWNjZXNzVG9rZW46dGhpcy5iLnRvU3RyaW5nKCkscmVmcmVzaFRva2VuOnRoaXMuYX0pfSx1aC5wcm90b3R5cGUudz1mdW5jdGlvbigpe3JldHVybntsYXN0TG9naW5BdDp0aGlzLmIsY3JlYXRlZEF0OnRoaXMuYX19LHcoaGgsbG4pLGhoLnByb3RvdHlwZS53YT1mdW5jdGlvbih0KXt0aGlzLnlhPXQsenModGhpcy5hLHQpfSxoaC5wcm90b3R5cGUubGE9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy55YX0saGgucHJvdG90eXBlLkdhPWZ1bmN0aW9uKCl7cmV0dXJuIHoodGhpcy4kKX0saGgucHJvdG90eXBlLmhiPWZ1bmN0aW9uKCl7dGhpcy51LmImJih0aGlzLnUuc3RvcCgpLHRoaXMudS5zdGFydCgpKX0sanIoaGgucHJvdG90eXBlLCJwcm92aWRlcklkIiwiZmlyZWJhc2UiKSwodD1oaC5wcm90b3R5cGUpLnJlbG9hZD1mdW5jdGlvbigpe3ZhciB0PXRoaXM7cmV0dXJuIEZoKHRoaXMsVGgodGhpcykudGhlbihmdW5jdGlvbigpe3JldHVybiBraCh0KS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIGJoKHQpfSkudGhlbihJaCl9KSl9LHQub2M9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuSSh0KS50aGVuKGZ1bmN0aW9uKHQpe3JldHVybiBuZXcgV2ModCl9KX0sdC5JPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7cmV0dXJuIEZoKHRoaXMsVGgodGhpcykudGhlbihmdW5jdGlvbigpe3JldHVybiBlLmIuZ2V0VG9rZW4odCl9KS50aGVuKGZ1bmN0aW9uKHQpe2lmKCF0KXRocm93IG5ldyBJKCJpbnRlcm5hbC1lcnJvciIpO3JldHVybiB0LmFjY2Vzc1Rva2VuIT1lLnphJiYobWgoZSx0LmFjY2Vzc1Rva2VuKSxlLmRpc3BhdGNoRXZlbnQobmV3IFpjKCJ0b2tlbkNoYW5nZWQiKSkpLE5oKGUsInJlZnJlc2hUb2tlbiIsdC5yZWZyZXNoVG9rZW4pLHQuYWNjZXNzVG9rZW59KSl9LHQuS2M9ZnVuY3Rpb24odCl7aWYoISh0PXQudXNlcnMpfHwhdC5sZW5ndGgpdGhyb3cgbmV3IEkoImludGVybmFsLWVycm9yIik7X2godGhpcyx7dWlkOih0PXRbMF0pLmxvY2FsSWQsZGlzcGxheU5hbWU6dC5kaXNwbGF5TmFtZSxwaG90b1VSTDp0LnBob3RvVXJsLGVtYWlsOnQuZW1haWwsZW1haWxWZXJpZmllZDohIXQuZW1haWxWZXJpZmllZCxwaG9uZU51bWJlcjp0LnBob25lTnVtYmVyLGxhc3RMb2dpbkF0OnQubGFzdExvZ2luQXQsY3JlYXRlZEF0OnQuY3JlYXRlZEF0LHRlbmFudElkOnQudGVuYW50SWR9KTtmb3IodmFyIGUsbj0oZT0oZT10KS5wcm92aWRlclVzZXJJbmZvKSYmZS5sZW5ndGg/VihlLGZ1bmN0aW9uKHQpe3JldHVybiBuZXcgY2godC5yYXdJZCx0LnByb3ZpZGVySWQsdC5lbWFpbCx0LmRpc3BsYXlOYW1lLHQucGhvdG9VcmwsdC5waG9uZU51bWJlcil9KTpbXSxyPTA7cjxuLmxlbmd0aDtyKyspU2godGhpcyxuW3JdKTtOaCh0aGlzLCJpc0Fub255bW91cyIsISh0aGlzLmVtYWlsJiZ0LnBhc3N3b3JkSGFzaHx8dGhpcy5wcm92aWRlckRhdGEmJnRoaXMucHJvdmlkZXJEYXRhLmxlbmd0aCkpLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgWmMoInVzZXJSZWxvYWRlZCIse2hkOnR9KSl9LHQuTGM9ZnVuY3Rpb24odCl7cmV0dXJuIEZyKCJmaXJlYmFzZS5Vc2VyLnByb3RvdHlwZS5yZWF1dGhlbnRpY2F0ZUFuZFJldHJpZXZlRGF0YVdpdGhDcmVkZW50aWFsIGlzIGRlcHJlY2F0ZWQuIFBsZWFzZSB1c2UgZmlyZWJhc2UuVXNlci5wcm90b3R5cGUucmVhdXRoZW50aWNhdGVXaXRoQ3JlZGVudGlhbCBpbnN0ZWFkLiIpLHRoaXMudGIodCl9LHQudGI9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcyxuPW51bGw7cmV0dXJuIEZoKHRoaXMsdC5jKHRoaXMuYSx0aGlzLnVpZCkudGhlbihmdW5jdGlvbih0KXtyZXR1cm4gUmgoZSx0KSxuPU9oKGUsdCwicmVhdXRoZW50aWNhdGUiKSxlLmg9bnVsbCxlLnJlbG9hZCgpfSkudGhlbihmdW5jdGlvbigpe3JldHVybiBufSksITApfSx0LkNjPWZ1bmN0aW9uKHQpe3JldHVybiBGcigiZmlyZWJhc2UuVXNlci5wcm90b3R5cGUubGlua0FuZFJldHJpZXZlRGF0YVdpdGhDcmVkZW50aWFsIGlzIGRlcHJlY2F0ZWQuIFBsZWFzZSB1c2UgZmlyZWJhc2UuVXNlci5wcm90b3R5cGUubGlua1dpdGhDcmVkZW50aWFsIGluc3RlYWQuIiksdGhpcy5xYih0KX0sdC5xYj1mdW5jdGlvbihlKXt2YXIgbj10aGlzLHI9bnVsbDtyZXR1cm4gRmgodGhpcyxQaCh0aGlzLGUucHJvdmlkZXJJZCkudGhlbihmdW5jdGlvbigpe3JldHVybiBuLkkoKX0pLnRoZW4oZnVuY3Rpb24odCl7cmV0dXJuIGUuYihuLmEsdCl9KS50aGVuKGZ1bmN0aW9uKHQpe3JldHVybiByPU9oKG4sdCwibGluayIpLERoKG4sdCl9KS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIHJ9KSl9LHQuRGM9ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzO3JldHVybiBGaCh0aGlzLFBoKHRoaXMsInBob25lIikudGhlbihmdW5jdGlvbigpe3JldHVybiBLYyh2aChuKSx0LGUsbShuLnFiLG4pKX0pKX0sdC5NYz1mdW5jdGlvbih0LGUpe3ZhciBuPXRoaXM7cmV0dXJuIEZoKHRoaXMsYmUoKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIEtjKHZoKG4pLHQsZSxtKG4udGIsbikpfSksITApfSx0LkJiPWZ1bmN0aW9uKGUpe3ZhciBuPXRoaXM7cmV0dXJuIEZoKHRoaXMsdGhpcy5JKCkudGhlbihmdW5jdGlvbih0KXtyZXR1cm4gbi5hLkJiKHQsZSl9KS50aGVuKGZ1bmN0aW9uKHQpe3JldHVybiBSaChuLHQpLG4ucmVsb2FkKCl9KSl9LHQuZWQ9ZnVuY3Rpb24oZSl7dmFyIG49dGhpcztyZXR1cm4gRmgodGhpcyx0aGlzLkkoKS50aGVuKGZ1bmN0aW9uKHQpe3JldHVybiBlLmIobi5hLHQpfSkudGhlbihmdW5jdGlvbih0KXtyZXR1cm4gUmgobix0KSxuLnJlbG9hZCgpfSkpfSx0LkNiPWZ1bmN0aW9uKGUpe3ZhciBuPXRoaXM7cmV0dXJuIEZoKHRoaXMsdGhpcy5JKCkudGhlbihmdW5jdGlvbih0KXtyZXR1cm4gbi5hLkNiKHQsZSl9KS50aGVuKGZ1bmN0aW9uKHQpe3JldHVybiBSaChuLHQpLG4ucmVsb2FkKCl9KSl9LHQuRGI9ZnVuY3Rpb24oZSl7aWYodm9pZCAwPT09ZS5kaXNwbGF5TmFtZSYmdm9pZCAwPT09ZS5waG90b1VSTClyZXR1cm4gVGgodGhpcyk7dmFyIG49dGhpcztyZXR1cm4gRmgodGhpcyx0aGlzLkkoKS50aGVuKGZ1bmN0aW9uKHQpe3JldHVybiBuLmEuRGIodCx7ZGlzcGxheU5hbWU6ZS5kaXNwbGF5TmFtZSxwaG90b1VybDplLnBob3RvVVJMfSl9KS50aGVuKGZ1bmN0aW9uKHQpe3JldHVybiBSaChuLHQpLE5oKG4sImRpc3BsYXlOYW1lIix0LmRpc3BsYXlOYW1lfHxudWxsKSxOaChuLCJwaG90b1VSTCIsdC5waG90b1VybHx8bnVsbCksaihuLnByb3ZpZGVyRGF0YSxmdW5jdGlvbih0KXsicGFzc3dvcmQiPT09dC5wcm92aWRlcklkJiYoanIodCwiZGlzcGxheU5hbWUiLG4uZGlzcGxheU5hbWUpLGpyKHQsInBob3RvVVJMIixuLnBob3RvVVJMKSl9KSxiaChuKX0pLnRoZW4oSWgpKX0sdC5jZD1mdW5jdGlvbihlKXt2YXIgbj10aGlzO3JldHVybiBGaCh0aGlzLGtoKHRoaXMpLnRoZW4oZnVuY3Rpb24odCl7cmV0dXJuIEsoRWgobiksZSk/emEobi5hLGJhLHtpZFRva2VuOnQsZGVsZXRlUHJvdmlkZXI6W2VdfSkudGhlbihmdW5jdGlvbih0KXt2YXIgZT17fTtyZXR1cm4gaih0LnByb3ZpZGVyVXNlckluZm98fFtdLGZ1bmN0aW9uKHQpe2VbdC5wcm92aWRlcklkXT0hMH0pLGooRWgobiksZnVuY3Rpb24odCl7ZVt0XXx8Q2gobix0KX0pLGVbQ28uUFJPVklERVJfSURdfHxqcihuLCJwaG9uZU51bWJlciIsbnVsbCksYmgobil9KTpiaChuKS50aGVuKGZ1bmN0aW9uKCl7dGhyb3cgbmV3IEkoIm5vLXN1Y2gtcHJvdmlkZXIiKX0pfSkpfSx0LmRlbGV0ZT1mdW5jdGlvbigpe3ZhciBlPXRoaXM7cmV0dXJuIEZoKHRoaXMsdGhpcy5JKCkudGhlbihmdW5jdGlvbih0KXtyZXR1cm4gemEoZS5hLG1hLHtpZFRva2VuOnR9KX0pLnRoZW4oZnVuY3Rpb24oKXtlLmRpc3BhdGNoRXZlbnQobmV3IFpjKCJ1c2VyRGVsZXRlZCIpKX0pKS50aGVuKGZ1bmN0aW9uKCl7Zm9yKHZhciB0PTA7dDxlLkoubGVuZ3RoO3QrKyllLkpbdF0uY2FuY2VsKCJhcHAtZGVsZXRlZCIpO2xoKGUsbnVsbCksZmgoZSxudWxsKSxkaChlLG51bGwpLGUuSj1bXSxlLkQ9ITAseWgoZSksanIoZSwicmVmcmVzaFRva2VuIixudWxsKSxlLmkmJlNjKGUuaSxlKX0pfSx0LkZiPWZ1bmN0aW9uKHQsZSl7cmV0dXJuISEoImxpbmtWaWFQb3B1cCI9PXQmJih0aGlzLmd8fG51bGwpPT1lJiZ0aGlzLmZ8fCJyZWF1dGhWaWFQb3B1cCI9PXQmJih0aGlzLmd8fG51bGwpPT1lJiZ0aGlzLmZ8fCJsaW5rVmlhUmVkaXJlY3QiPT10JiYodGhpcy5nYXx8bnVsbCk9PWV8fCJyZWF1dGhWaWFSZWRpcmVjdCI9PXQmJih0aGlzLmdhfHxudWxsKT09ZSl9LHQubmE9ZnVuY3Rpb24odCxlLG4scil7ImxpbmtWaWFQb3B1cCIhPXQmJiJyZWF1dGhWaWFQb3B1cCIhPXR8fHIhPSh0aGlzLmd8fG51bGwpfHwobiYmdGhpcy5DP3RoaXMuQyhuKTplJiYhbiYmdGhpcy5mJiZ0aGlzLmYoZSksdGhpcy5jJiYodGhpcy5jLmNhbmNlbCgpLHRoaXMuYz1udWxsKSxkZWxldGUgdGhpcy5mLGRlbGV0ZSB0aGlzLkMpfSx0LkZhPWZ1bmN0aW9uKHQsZSl7cmV0dXJuImxpbmtWaWFQb3B1cCI9PXQmJmU9PSh0aGlzLmd8fG51bGwpP20odGhpcy5LYix0aGlzKToicmVhdXRoVmlhUG9wdXAiPT10JiZlPT0odGhpcy5nfHxudWxsKT9tKHRoaXMuTGIsdGhpcyk6ImxpbmtWaWFSZWRpcmVjdCI9PXQmJih0aGlzLmdhfHxudWxsKT09ZT9tKHRoaXMuS2IsdGhpcyk6InJlYXV0aFZpYVJlZGlyZWN0Ij09dCYmKHRoaXMuZ2F8fG51bGwpPT1lP20odGhpcy5MYix0aGlzKTpudWxsfSx0LkVjPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7cmV0dXJuIHhoKHRoaXMsImxpbmtWaWFQb3B1cCIsdCxmdW5jdGlvbigpe3JldHVybiBQaChlLHQucHJvdmlkZXJJZCkudGhlbihmdW5jdGlvbigpe3JldHVybiBiaChlKX0pfSwhMSl9LHQuTmM9ZnVuY3Rpb24odCl7cmV0dXJuIHhoKHRoaXMsInJlYXV0aFZpYVBvcHVwIix0LGZ1bmN0aW9uKCl7cmV0dXJuIGJlKCl9LCEwKX0sdC5GYz1mdW5jdGlvbih0KXt2YXIgZT10aGlzO3JldHVybiBMaCh0aGlzLCJsaW5rVmlhUmVkaXJlY3QiLHQsZnVuY3Rpb24oKXtyZXR1cm4gUGgoZSx0LnByb3ZpZGVySWQpfSwhMSl9LHQuT2M9ZnVuY3Rpb24odCl7cmV0dXJuIExoKHRoaXMsInJlYXV0aFZpYVJlZGlyZWN0Iix0LGZ1bmN0aW9uKCl7cmV0dXJuIGJlKCl9LCEwKX0sdC5LYj1mdW5jdGlvbihlLG4sdCxyKXt2YXIgaT10aGlzO3RoaXMuYyYmKHRoaXMuYy5jYW5jZWwoKSx0aGlzLmM9bnVsbCk7dmFyIG89bnVsbDtyZXR1cm4gdD10aGlzLkkoKS50aGVuKGZ1bmN0aW9uKHQpe3JldHVybiBsYShpLmEse3JlcXVlc3RVcmk6ZSxwb3N0Qm9keTpyLHNlc3Npb25JZDpuLGlkVG9rZW46dH0pfSkudGhlbihmdW5jdGlvbih0KXtyZXR1cm4gbz1PaChpLHQsImxpbmsiKSxEaChpLHQpfSkudGhlbihmdW5jdGlvbigpe3JldHVybiBvfSksRmgodGhpcyx0KX0sdC5MYj1mdW5jdGlvbih0LGUsbixyKXt2YXIgaT10aGlzO3RoaXMuYyYmKHRoaXMuYy5jYW5jZWwoKSx0aGlzLmM9bnVsbCk7dmFyIG89bnVsbDtyZXR1cm4gRmgodGhpcyxiZSgpLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gWmkoZmEoaS5hLHtyZXF1ZXN0VXJpOnQsc2Vzc2lvbklkOmUscG9zdEJvZHk6cix0ZW5hbnRJZDpufSksaS51aWQpfSkudGhlbihmdW5jdGlvbih0KXtyZXR1cm4gbz1PaChpLHQsInJlYXV0aGVudGljYXRlIiksUmgoaSx0KSxpLmg9bnVsbCxpLnJlbG9hZCgpfSkudGhlbihmdW5jdGlvbigpe3JldHVybiBvfSksITApfSx0LnViPWZ1bmN0aW9uKGUpe3ZhciBuPXRoaXMscj1udWxsO3JldHVybiBGaCh0aGlzLHRoaXMuSSgpLnRoZW4oZnVuY3Rpb24odCl7cmV0dXJuIHI9dCx2b2lkIDA9PT1lfHx1dChlKT97fTpraShuZXcgYmkoZSkpfSkudGhlbihmdW5jdGlvbih0KXtyZXR1cm4gbi5hLnViKHIsdCl9KS50aGVuKGZ1bmN0aW9uKHQpe2lmKG4uZW1haWwhPXQpcmV0dXJuIG4ucmVsb2FkKCl9KS50aGVuKGZ1bmN0aW9uKCl7fSkpfSx0LkViPWZ1bmN0aW9uKGUsbil7dmFyIHI9dGhpcyxpPW51bGw7cmV0dXJuIEZoKHRoaXMsdGhpcy5JKCkudGhlbihmdW5jdGlvbih0KXtyZXR1cm4gaT10LHZvaWQgMD09PW58fHV0KG4pP3t9OmtpKG5ldyBiaShuKSl9KS50aGVuKGZ1bmN0aW9uKHQpe3JldHVybiByLmEuRWIoaSxlLHQpfSkudGhlbihmdW5jdGlvbih0KXtpZihyLmVtYWlsIT10KXJldHVybiByLnJlbG9hZCgpfSkudGhlbihmdW5jdGlvbigpe30pKX0sdC5qYz1mdW5jdGlvbih0KXt2YXIgZT1udWxsLG49dGhpcztyZXR1cm4gRmgodGhpcyx0PVppKGJlKHQpLG4udWlkKS50aGVuKGZ1bmN0aW9uKHQpe3JldHVybiBlPU9oKG4sdCwicmVhdXRoZW50aWNhdGUiKSxSaChuLHQpLG4uaD1udWxsLG4ucmVsb2FkKCl9KS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIGV9KSwhMCl9LHQudG9KU09OPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudygpfSx0Lnc9ZnVuY3Rpb24oKXt2YXIgZT17dWlkOnRoaXMudWlkLGRpc3BsYXlOYW1lOnRoaXMuZGlzcGxheU5hbWUscGhvdG9VUkw6dGhpcy5waG90b1VSTCxlbWFpbDp0aGlzLmVtYWlsLGVtYWlsVmVyaWZpZWQ6dGhpcy5lbWFpbFZlcmlmaWVkLHBob25lTnVtYmVyOnRoaXMucGhvbmVOdW1iZXIsaXNBbm9ueW1vdXM6dGhpcy5pc0Fub255bW91cyx0ZW5hbnRJZDp0aGlzLnRlbmFudElkLHByb3ZpZGVyRGF0YTpbXSxhcGlLZXk6dGhpcy5sLGFwcE5hbWU6dGhpcy5tLGF1dGhEb21haW46dGhpcy5zLHN0c1Rva2VuTWFuYWdlcjp0aGlzLmIudygpLHJlZGlyZWN0RXZlbnRJZDp0aGlzLmdhfHxudWxsfTtyZXR1cm4gdGhpcy5tZXRhZGF0YSYmbHQoZSx0aGlzLm1ldGFkYXRhLncoKSksaih0aGlzLnByb3ZpZGVyRGF0YSxmdW5jdGlvbih0KXtlLnByb3ZpZGVyRGF0YS5wdXNoKGZ1bmN0aW9uKHQpe3ZhciBlLG49e307Zm9yKGUgaW4gdCl0Lmhhc093blByb3BlcnR5KGUpJiYobltlXT10W2VdKTtyZXR1cm4gbn0odCkpfSksbHQoZSx0aGlzLk8udygpKSxlfTt2YXIgcWg9e25hbWU6InJlZGlyZWN0VXNlciIsRjoic2Vzc2lvbiJ9O2Z1bmN0aW9uIFZoKHQpe3JldHVybiBRdSh0LmIscWgsdC5hKX1mdW5jdGlvbiBCaCh0KXt2YXIgZSxuLHIsaTt0aGlzLmE9dCx0aGlzLmI9SHUoKSx0aGlzLmM9bnVsbCx0aGlzLmY9KG49SGgoImxvY2FsIikscj1IaCgic2Vzc2lvbiIpLGk9SGgoIm5vbmUiKSxmdW5jdGlvbihuLHIsaSl7dmFyIG89enUocixpKSxzPUd1KG4sci5GKTtyZXR1cm4gbi5nZXQocixpKS50aGVuKGZ1bmN0aW9uKHQpe3ZhciBlPW51bGw7dHJ5e2U9Q3IobC5sb2NhbFN0b3JhZ2UuZ2V0SXRlbShvKSl9Y2F0Y2godCl7fWlmKGUmJiF0KXJldHVybiBsLmxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKG8pLG4uc2V0KHIsZSxpKTtlJiZ0JiYibG9jYWxTdG9yYWdlIiE9cy50eXBlJiZsLmxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKG8pfSl9KChlPXRoaXMpLmIsbixlLmEpLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gZS5iLmdldChyLGUuYSl9KS50aGVuKGZ1bmN0aW9uKHQpe3JldHVybiB0P3I6ZS5iLmdldChpLGUuYSkudGhlbihmdW5jdGlvbih0KXtyZXR1cm4gdD9pOmUuYi5nZXQobixlLmEpLnRoZW4oZnVuY3Rpb24odCl7cmV0dXJuIHQ/bjplLmIuZ2V0KFdoLGUuYSkudGhlbihmdW5jdGlvbih0KXtyZXR1cm4gdD9IaCh0KTpufSl9KX0pfSkudGhlbihmdW5jdGlvbih0KXtyZXR1cm4gZS5jPXQsS2goZSx0LkYpfSkubyhmdW5jdGlvbigpe2UuY3x8KGUuYz1uKX0pKSx0aGlzLmIuYWRkTGlzdGVuZXIoSGgoImxvY2FsIiksdGhpcy5hLG0odGhpcy5nLHRoaXMpKX1mdW5jdGlvbiBLaCh0LGUpe3ZhciBuLGEscj1bXTtmb3IobiBpbiBLdSlLdVtuXSE9PWUmJnIucHVzaChRdSh0LmIsSGgoS3Vbbl0pLHQuYSkpO3JldHVybiByLnB1c2goUXUodC5iLFdoLHQuYSkpLGE9cixuZXcgZmUoZnVuY3Rpb24obixlKXt2YXIgcj1hLmxlbmd0aCxpPVtdO2lmKHIpZm9yKHZhciB0PWZ1bmN0aW9uKHQsZSl7ci0tLGlbdF09ZSwwPT1yJiZuKGkpfSxvPWZ1bmN0aW9uKHQpe2UodCl9LHM9MDtzPGEubGVuZ3RoO3MrKylfZShhW3NdLGIodCxzKSxvKTtlbHNlIG4oaSl9KX1CaC5wcm90b3R5cGUuZz1mdW5jdGlvbigpe3ZhciBlPXRoaXMsbj1IaCgibG9jYWwiKTtZaCh0aGlzLGZ1bmN0aW9uKCl7cmV0dXJuIGJlKCkudGhlbihmdW5jdGlvbigpe3JldHVybiBlLmMmJiJsb2NhbCIhPWUuYy5GP2UuYi5nZXQobixlLmEpOm51bGx9KS50aGVuKGZ1bmN0aW9uKHQpe2lmKHQpcmV0dXJuIEtoKGUsImxvY2FsIikudGhlbihmdW5jdGlvbigpe2UuYz1ufSl9KX0pfTt2YXIgV2g9e25hbWU6InBlcnNpc3RlbmNlIixGOiJzZXNzaW9uIn07ZnVuY3Rpb24gSGgodCl7cmV0dXJue25hbWU6ImF1dGhVc2VyIixGOnR9fWZ1bmN0aW9uIEdoKHQsZSl7cmV0dXJuIFloKHQsZnVuY3Rpb24oKXtyZXR1cm4gdC5iLnNldCh0LmMsZS53KCksdC5hKX0pfWZ1bmN0aW9uIHpoKHQpe3JldHVybiBZaCh0LGZ1bmN0aW9uKCl7cmV0dXJuIFF1KHQuYix0LmMsdC5hKX0pfWZ1bmN0aW9uIFFoKHQsZSxuKXtyZXR1cm4gWWgodCxmdW5jdGlvbigpe3JldHVybiB0LmIuZ2V0KHQuYyx0LmEpLnRoZW4oZnVuY3Rpb24odCl7cmV0dXJuIHQmJmUmJih0LmF1dGhEb21haW49ZSksdCYmbiYmKHQuZW11bGF0b3JDb25maWc9biksVWgodHx8e30pfSl9KX1mdW5jdGlvbiBZaCh0LGUpe3JldHVybiB0LmY9dC5mLnRoZW4oZSxlKSx0LmZ9ZnVuY3Rpb24gWGgodCl7aWYodGhpcy5sPSExLGpyKHRoaXMsInNldHRpbmdzIixuZXcgVmMpLGpyKHRoaXMsImFwcCIsdCksIXRoaXMuYXBwLm9wdGlvbnN8fCF0aGlzLmFwcC5vcHRpb25zLmFwaUtleSl0aHJvdyBuZXcgSSgiaW52YWxpZC1hcGkta2V5Iik7dmFyIG4sZSxyLGksbyxzO3Q9WGwuU0RLX1ZFUlNJT04/Z3IoWGwuU0RLX1ZFUlNJT04pOm51bGwsdGhpcy5hPW5ldyBxcyh0aGlzLmFwcC5vcHRpb25zJiZ0aGlzLmFwcC5vcHRpb25zLmFwaUtleSxBKEUpLHQpLHRoaXMuUj1bXSx0aGlzLnM9W10sdGhpcy5PPVtdLHRoaXMuaGI9WGwuSU5URVJOQUwuY3JlYXRlU3Vic2NyaWJlKG0odGhpcy56Yyx0aGlzKSksdGhpcy5YPXZvaWQgMCx0aGlzLmJjPVhsLklOVEVSTkFMLmNyZWF0ZVN1YnNjcmliZShtKHRoaXMuQWMsdGhpcykpLHJsKHRoaXMsbnVsbCksdGhpcy5pPW5ldyBCaCh0aGlzLmFwcC5vcHRpb25zLmFwaUtleSsiOiIrdGhpcy5hcHAubmFtZSksdGhpcy5EPW5ldyBqaCh0aGlzLmFwcC5vcHRpb25zLmFwaUtleSsiOiIrdGhpcy5hcHAubmFtZSksdGhpcy4kPXVsKHRoaXMsKGU9KG49dGhpcykuYXBwLm9wdGlvbnMuYXV0aERvbWFpbix0PWZ1bmN0aW9uKGUpe3ZhciB0PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQuYi5nZXQocWgsdC5hKS50aGVuKGZ1bmN0aW9uKHQpe3JldHVybiB0JiZlJiYodC5hdXRoRG9tYWluPWUpLFVoKHR8fHt9KX0pfShlLkQsZS5hcHAub3B0aW9ucy5hdXRoRG9tYWluKS50aGVuKGZ1bmN0aW9uKHQpe3JldHVybihlLm09dCkmJih0LmhhPWUuRCksVmgoZS5EKX0pO3JldHVybiB1bChlLHQpfShuKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIFFoKG4uaSxlLG4uUCl9KS50aGVuKGZ1bmN0aW9uKGUpe3JldHVybiBlPyhlLmhhPW4uRCxuLm0mJihuLm0uZ2F8fG51bGwpPT0oZS5nYXx8bnVsbCk/ZTplLnJlbG9hZCgpLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gR2gobi5pLGUpLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gZX0pfSkubyhmdW5jdGlvbih0KXtyZXR1cm4iYXV0aC9uZXR3b3JrLXJlcXVlc3QtZmFpbGVkIj09dC5jb2RlP2U6emgobi5pKX0pKTpudWxsfSkudGhlbihmdW5jdGlvbih0KXtybChuLHR8fG51bGwpfSksdWwobix0KSkpLHRoaXMuaD11bCh0aGlzLChyPXRoaXMpLiQudGhlbihmdW5jdGlvbigpe3JldHVybiBlbChyKX0pLm8oZnVuY3Rpb24oKXt9KS50aGVuKGZ1bmN0aW9uKCl7aWYoIXIubClyZXR1cm4gci5qYSgpfSkubyhmdW5jdGlvbigpe30pLnRoZW4oZnVuY3Rpb24oKXt2YXIgdDtyLmx8fChyLmJhPSEwLCh0PXIuaSkuYi5hZGRMaXN0ZW5lcihIaCgibG9jYWwiKSx0LmEsci5qYSkpfSkpLHRoaXMuYmE9ITEsdGhpcy5qYT1tKHRoaXMuWmMsdGhpcyksdGhpcy5CYT1tKHRoaXMuZGEsdGhpcyksdGhpcy55YT1tKHRoaXMubWMsdGhpcyksdGhpcy56YT1tKHRoaXMud2MsdGhpcyksdGhpcy5BYT1tKHRoaXMueGMsdGhpcyksdGhpcy5iPW51bGwsbz0oaT10aGlzKS5hcHAub3B0aW9ucy5hdXRoRG9tYWluLHM9aS5hcHAub3B0aW9ucy5hcGlLZXksbyYmd3IoKSYmKGkuT2E9aS4kLnRoZW4oZnVuY3Rpb24oKXt2YXIgdDtpZighaS5sKXJldHVybiBpLmI9eGMobyxzLGkuYXBwLm5hbWUsaS5QKSxFYyhpLmIsaSksb2woaSkmJndoKG9sKGkpKSxpLm0mJih3aChpLm0pLCh0PWkubSkud2EoaS5sYSgpKSxsaCh0LGkpLHBoKHQ9aS5tLGkuSiksZGgodCxpKSxRcygodD1pLm0pLmEsaS5QKSxmaCh0LGkpLGkubT1udWxsKSxpLmJ9KSksdGhpcy5JTlRFUk5BTD17fSx0aGlzLklOVEVSTkFMLmRlbGV0ZT1tKHRoaXMuZGVsZXRlLHRoaXMpLHRoaXMuSU5URVJOQUwubG9nRnJhbWV3b3JrPW0odGhpcy5HYyx0aGlzKSx0aGlzLnU9MCxsbi5jYWxsKHRoaXMpLHQ9dGhpcyxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwibGMiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5sYSgpfSxzZXQ6ZnVuY3Rpb24odCl7dGhpcy53YSh0KX0sZW51bWVyYWJsZTohMX0pLHQuYWE9bnVsbCxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwidGkiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5UKCl9LHNldDpmdW5jdGlvbih0KXt0aGlzLnliKHQpfSxlbnVtZXJhYmxlOiExfSksdC5TPW51bGwsT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsImVtdWxhdG9yQ29uZmlnIix7Z2V0OmZ1bmN0aW9uKCl7dmFyIHQ7cmV0dXJuIHQ9dGhpcy5QP1ZyKHtwcm90b2NvbDoodD1rbih0aGlzLlAudXJsKSkuYyxob3N0OnQuYSxwb3J0OnQuZyxvcHRpb25zOlZyKHtkaXNhYmxlV2FybmluZ3M6dGhpcy5QLmVjfSl9KTpudWxsfSxlbnVtZXJhYmxlOiExfSksdGhpcy5KPVtdLHRoaXMuUD1udWxsfWZ1bmN0aW9uIEpoKHQpe3FlLmNhbGwodGhpcywibGFuZ3VhZ2VDb2RlQ2hhbmdlZCIpLHRoaXMuaD10fWZ1bmN0aW9uICRoKHQpe3FlLmNhbGwodGhpcywiZW11bGF0b3JDb25maWdDaGFuZ2VkIiksdGhpcy5jPXR9ZnVuY3Rpb24gWmgodCl7cWUuY2FsbCh0aGlzLCJmcmFtZXdvcmtDaGFuZ2VkIiksdGhpcy5mPXR9ZnVuY3Rpb24gdGwodCl7cmV0dXJuIHQuT2F8fHdlKG5ldyBJKCJhdXRoLWRvbWFpbi1jb25maWctcmVxdWlyZWQiKSl9ZnVuY3Rpb24gZWwodCl7aWYoIXdyKCkpcmV0dXJuIHdlKG5ldyBJKCJvcGVyYXRpb24tbm90LXN1cHBvcnRlZC1pbi10aGlzLWVudmlyb25tZW50IikpO3ZhciBlPXRsKHQpLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gdC5iLnFhKCl9KS50aGVuKGZ1bmN0aW9uKHQpe3JldHVybiB0P1ZyKHQpOm51bGx9KTtyZXR1cm4gdWwodCxlKX1mdW5jdGlvbiBubChvLHMpe3ZhciBhPXt9O3JldHVybiBhLmFwaUtleT1vLmFwcC5vcHRpb25zLmFwaUtleSxhLmF1dGhEb21haW49by5hcHAub3B0aW9ucy5hdXRoRG9tYWluLGEuYXBwTmFtZT1vLmFwcC5uYW1lLG8uUCYmKGEuZW11bGF0b3JDb25maWc9by5QKSxvLiQudGhlbihmdW5jdGlvbigpe3JldHVybiB0PWEsZT1zLG49by5ELHI9by5HYSgpLGk9bmV3IGhoKHQsZSksbiYmKGkuaGE9biksciYmcGgoaSxyKSxpLnJlbG9hZCgpLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gaX0pO3ZhciB0LGUsbixyLGl9KS50aGVuKGZ1bmN0aW9uKHQpe3JldHVybiBvbChvKSYmdC51aWQ9PW9sKG8pLnVpZD9BaChvbChvKSx0KToocmwobyx0KSx3aCh0KSksby5kYSh0KX0pLnRoZW4oZnVuY3Rpb24oKXthbChvKX0pfWZ1bmN0aW9uIHJsKHQsZSl7dmFyIG4scjtvbCh0KSYmKG49b2wodCkscj10LkJhLEgobi5TLGZ1bmN0aW9uKHQpe3JldHVybiB0PT1yfSksZW4ob2wodCksInRva2VuQ2hhbmdlZCIsdC55YSksZW4ob2wodCksInVzZXJEZWxldGVkIix0LnphKSxlbihvbCh0KSwidXNlckludmFsaWRhdGVkIix0LkFhKSx5aChvbCh0KSkpLGUmJihlLlMucHVzaCh0LkJhKSwkZShlLCJ0b2tlbkNoYW5nZWQiLHQueWEpLCRlKGUsInVzZXJEZWxldGVkIix0LnphKSwkZShlLCJ1c2VySW52YWxpZGF0ZWQiLHQuQWEpLDA8dC51JiZnaChlKSksanIodCwiY3VycmVudFVzZXIiLGUpLGUmJihlLndhKHQubGEoKSksbGgoZSx0KSxwaChlLHQuSiksZGgoZSx0KSxRcyhlLmEsdC5QKSxmaChlLHQpKX1mdW5jdGlvbiBpbChuLHQpe3ZhciBlPW51bGwscj1udWxsO3JldHVybiB1bChuLHQudGhlbihmdW5jdGlvbih0KXtyZXR1cm4gZT1Bbyh0KSxyPWppKHQpLG5sKG4sdCl9LGZ1bmN0aW9uKHQpe3ZhciBlPW51bGw7dGhyb3coZT10JiYiYXV0aC9tdWx0aS1mYWN0b3ItYXV0aC1yZXF1aXJlZCI9PT10LmNvZGU/WWModC53KCksbixtKG4ua2MsbikpOmUpfHx0fSkudGhlbihmdW5jdGlvbigpe3JldHVybiBWcih7dXNlcjpvbChuKSxjcmVkZW50aWFsOmUsYWRkaXRpb25hbFVzZXJJbmZvOnIsb3BlcmF0aW9uVHlwZToic2lnbkluIn0pfSkpfWZ1bmN0aW9uIG9sKHQpe3JldHVybiB0LmN1cnJlbnRVc2VyfWZ1bmN0aW9uIHNsKHQpe3JldHVybiBvbCh0KSYmb2wodCkuX2xhdHx8bnVsbH1mdW5jdGlvbiBhbCh0KXtpZih0LmJhKXtmb3IodmFyIGU9MDtlPHQucy5sZW5ndGg7ZSsrKXQuc1tlXSYmdC5zW2VdKHNsKHQpKTtpZih0LlghPT10LmdldFVpZCgpJiZ0Lk8ubGVuZ3RoKWZvcih0Llg9dC5nZXRVaWQoKSxlPTA7ZTx0Lk8ubGVuZ3RoO2UrKyl0Lk9bZV0mJnQuT1tlXShzbCh0KSl9fWZ1bmN0aW9uIHVsKHQsZSl7cmV0dXJuIHQuUi5wdXNoKGUpLGUub2EoZnVuY3Rpb24oKXtXKHQuUixlKX0pLGV9ZnVuY3Rpb24gY2woKXt9ZnVuY3Rpb24gaGwoKXt0aGlzLmE9e30sdGhpcy5iPTFlMTJ9QmgucHJvdG90eXBlLnhiPWZ1bmN0aW9uKGUpe3ZhciBuPW51bGwscj10aGlzO3JldHVybiBmdW5jdGlvbih0KXt2YXIgZT1uZXcgSSgiaW52YWxpZC1wZXJzaXN0ZW5jZS10eXBlIiksbj1uZXcgSSgidW5zdXBwb3J0ZWQtcGVyc2lzdGVuY2UtdHlwZSIpO3Q6e2ZvcihyIGluIEt1KWlmKEt1W3JdPT10KXt2YXIgcj0hMDticmVhayB0fXI9ITF9aWYoIXJ8fCJzdHJpbmciIT10eXBlb2YgdCl0aHJvdyBlO3N3aXRjaChocigpKXtjYXNlIlJlYWN0TmF0aXZlIjppZigic2Vzc2lvbiI9PT10KXRocm93IG47YnJlYWs7Y2FzZSJOb2RlIjppZigibm9uZSIhPT10KXRocm93IG47YnJlYWs7Y2FzZSJXb3JrZXIiOmlmKCJzZXNzaW9uIj09PXR8fCFJdSgpJiYibm9uZSIhPT10KXRocm93IG47YnJlYWs7ZGVmYXVsdDppZighYnIoKSYmIm5vbmUiIT09dCl0aHJvdyBufX0oZSksWWgodGhpcyxmdW5jdGlvbigpe3JldHVybiBlIT1yLmMuRj9yLmIuZ2V0KHIuYyxyLmEpLnRoZW4oZnVuY3Rpb24odCl7cmV0dXJuIG49dCxLaChyLGUpfSkudGhlbihmdW5jdGlvbigpe2lmKHIuYz1IaChlKSxuKXJldHVybiByLmIuc2V0KHIuYyxuLHIuYSl9KTpiZSgpfSl9LHcoWGgsbG4pLHcoSmgscWUpLHcoJGgscWUpLHcoWmgscWUpLCh0PVhoLnByb3RvdHlwZSkueGI9ZnVuY3Rpb24odCl7cmV0dXJuIHQ9dGhpcy5pLnhiKHQpLHVsKHRoaXMsdCl9LHQud2E9ZnVuY3Rpb24odCl7dGhpcy5hYT09PXR8fHRoaXMubHx8KHRoaXMuYWE9dCx6cyh0aGlzLmEsdGhpcy5hYSksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBKaCh0aGlzLmxhKCkpKSl9LHQubGE9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5hYX0sdC5mZD1mdW5jdGlvbigpe3ZhciB0PWwubmF2aWdhdG9yO3RoaXMud2EodCYmKHQubGFuZ3VhZ2VzJiZ0Lmxhbmd1YWdlc1swXXx8dC5sYW5ndWFnZXx8dC51c2VyTGFuZ3VhZ2UpfHxudWxsKX0sdC5nZD1mdW5jdGlvbih0LGUpe2lmKCF0aGlzLlApe2lmKCEvXmh0dHBzPzpcL1wvLy50ZXN0KHQpKXRocm93IG5ldyBJKCJhcmd1bWVudC1lcnJvciIsIkVtdWxhdG9yIFVSTCBtdXN0IHN0YXJ0IHdpdGggYSB2YWxpZCBzY2hlbWUgKGh0dHA6Ly8gb3IgaHR0cHM6Ly8pLiIpO2U9ISFlJiYhIWUuZGlzYWJsZVdhcm5pbmdzLG49ZSwidW5kZWZpbmVkIiE9dHlwZW9mIGNvbnNvbGUmJiJmdW5jdGlvbiI9PXR5cGVvZiBjb25zb2xlLmluZm8mJmNvbnNvbGUuaW5mbygiV0FSTklORzogWW91IGFyZSB1c2luZyB0aGUgQXV0aCBFbXVsYXRvciwgd2hpY2ggaXMgaW50ZW5kZWQgZm9yIGxvY2FsIHRlc3Rpbmcgb25seS4gIERvIG5vdCB1c2Ugd2l0aCBwcm9kdWN0aW9uIGNyZWRlbnRpYWxzLiIpLGwuZG9jdW1lbnQmJiFuJiZzcigpLnRoZW4oZnVuY3Rpb24oKXt2YXIgdD1sLmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3QuaW5uZXJUZXh0PSJSdW5uaW5nIGluIGVtdWxhdG9yIG1vZGUuIERvIG5vdCB1c2Ugd2l0aCBwcm9kdWN0aW9uIGNyZWRlbnRpYWxzLiIsdC5zdHlsZS5wb3NpdGlvbj0iZml4ZWQiLHQuc3R5bGUud2lkdGg9IjEwMCUiLHQuc3R5bGUuYmFja2dyb3VuZENvbG9yPSIjZmZmZmZmIix0LnN0eWxlLmJvcmRlcj0iLjFlbSBzb2xpZCAjMDAwMDAwIix0LnN0eWxlLmNvbG9yPSIjZmYwMDAwIix0LnN0eWxlLmJvdHRvbT0iMHB4Iix0LnN0eWxlLmxlZnQ9IjBweCIsdC5zdHlsZS5tYXJnaW49IjBweCIsdC5zdHlsZS56SW5kZXg9MWU0LHQuc3R5bGUudGV4dEFsaWduPSJjZW50ZXIiLHQuY2xhc3NMaXN0LmFkZCgiZmlyZWJhc2UtZW11bGF0b3Itd2FybmluZyIpLGwuZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh0KX0pLHRoaXMuUD17dXJsOnQsZWM6ZX0sdGhpcy5zZXR0aW5ncy5pYj0hMCxRcyh0aGlzLmEsdGhpcy5QKSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3ICRoKHRoaXMuUCkpfXZhciBufSx0LkdjPWZ1bmN0aW9uKHQpe3RoaXMuSi5wdXNoKHQpLFhzKHRoaXMuYSxYbC5TREtfVkVSU0lPTj9ncihYbC5TREtfVkVSU0lPTix0aGlzLkopOm51bGwpLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgWmgodGhpcy5KKSl9LHQuR2E9ZnVuY3Rpb24oKXtyZXR1cm4geih0aGlzLkopfSx0LnliPWZ1bmN0aW9uKHQpe3RoaXMuUz09PXR8fHRoaXMubHx8KHRoaXMuUz10LHRoaXMuYS5iPXRoaXMuUyl9LHQuVD1mdW5jdGlvbigpe3JldHVybiB0aGlzLlN9LHQudG9KU09OPWZ1bmN0aW9uKCl7cmV0dXJue2FwaUtleTp0aGlzLmFwcC5vcHRpb25zLmFwaUtleSxhdXRoRG9tYWluOnRoaXMuYXBwLm9wdGlvbnMuYXV0aERvbWFpbixhcHBOYW1lOnRoaXMuYXBwLm5hbWUsY3VycmVudFVzZXI6b2wodGhpcykmJm9sKHRoaXMpLncoKX19LHQuRmI9ZnVuY3Rpb24odCxlKXtzd2l0Y2godCl7Y2FzZSJ1bmtub3duIjpjYXNlInNpZ25JblZpYVJlZGlyZWN0IjpyZXR1cm4hMDtjYXNlInNpZ25JblZpYVBvcHVwIjpyZXR1cm4gdGhpcy5nPT1lJiYhIXRoaXMuZjtkZWZhdWx0OnJldHVybiExfX0sdC5uYT1mdW5jdGlvbih0LGUsbixyKXsic2lnbkluVmlhUG9wdXAiPT10JiZ0aGlzLmc9PXImJihuJiZ0aGlzLkM/dGhpcy5DKG4pOmUmJiFuJiZ0aGlzLmYmJnRoaXMuZihlKSx0aGlzLmMmJih0aGlzLmMuY2FuY2VsKCksdGhpcy5jPW51bGwpLGRlbGV0ZSB0aGlzLmYsZGVsZXRlIHRoaXMuQyl9LHQuRmE9ZnVuY3Rpb24odCxlKXtyZXR1cm4ic2lnbkluVmlhUmVkaXJlY3QiPT10fHwic2lnbkluVmlhUG9wdXAiPT10JiZ0aGlzLmc9PWUmJnRoaXMuZj9tKHRoaXMuaWMsdGhpcyk6bnVsbH0sdC5pYz1mdW5jdGlvbih0LGUsbixyKXt2YXIgaT10aGlzLG89e3JlcXVlc3RVcmk6dCxwb3N0Qm9keTpyLHNlc3Npb25JZDplLHRlbmFudElkOm59O3JldHVybiB0aGlzLmMmJih0aGlzLmMuY2FuY2VsKCksdGhpcy5jPW51bGwpLGkuJC50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIGlsKGksaGEoaS5hLG8pKX0pfSx0LlhjPWZ1bmN0aW9uKGUpe2lmKCF3cigpKXJldHVybiB3ZShuZXcgSSgib3BlcmF0aW9uLW5vdC1zdXBwb3J0ZWQtaW4tdGhpcy1lbnZpcm9ubWVudCIpKTt2YXIgbj10aGlzLHQ9VWkoZS5wcm92aWRlcklkKSxyPU5yKCksaT1udWxsLG89cnIoaT0oIVRyKCl8fHVyKCkpJiZ0aGlzLmFwcC5vcHRpb25zLmF1dGhEb21haW4mJmUuaXNPQXV0aFByb3ZpZGVyP3V1KHRoaXMuYXBwLm9wdGlvbnMuYXV0aERvbWFpbix0aGlzLmFwcC5vcHRpb25zLmFwaUtleSx0aGlzLmFwcC5uYW1lLCJzaWduSW5WaWFQb3B1cCIsZSxudWxsLHIsWGwuU0RLX1ZFUlNJT058fG51bGwsbnVsbCxudWxsLHRoaXMuVCgpLHRoaXMuUCk6aSx0JiZ0LnVhLHQmJnQudGEpO3JldHVybiB1bCh0aGlzLHQ9dGwodGhpcykudGhlbihmdW5jdGlvbih0KXtyZXR1cm4gQWModCxvLCJzaWduSW5WaWFQb3B1cCIsZSxyLCEhaSxuLlQoKSl9KS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBmZShmdW5jdGlvbih0LGUpe24ubmEoInNpZ25JblZpYVBvcHVwIixudWxsLG5ldyBJKCJjYW5jZWxsZWQtcG9wdXAtcmVxdWVzdCIpLG4uZyksbi5mPXQsbi5DPWUsbi5nPXIsbi5jPVBjKG4uYixuLCJzaWduSW5WaWFQb3B1cCIsbyxyKX0pfSkudGhlbihmdW5jdGlvbih0KXtyZXR1cm4gbyYmbnIobyksdD9Wcih0KTpudWxsfSkubyhmdW5jdGlvbih0KXt0aHJvdyBvJiZucihvKSx0fSkpfSx0LlljPWZ1bmN0aW9uKHQpe2lmKCF3cigpKXJldHVybiB3ZShuZXcgSSgib3BlcmF0aW9uLW5vdC1zdXBwb3J0ZWQtaW4tdGhpcy1lbnZpcm9ubWVudCIpKTt2YXIgZT10aGlzO3JldHVybiB1bCh0aGlzLHRsKHRoaXMpLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gWWgodD1lLmksZnVuY3Rpb24oKXtyZXR1cm4gdC5iLnNldChXaCx0LmMuRix0LmEpfSk7dmFyIHR9KS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIFJjKGUuYiwic2lnbkluVmlhUmVkaXJlY3QiLHQsdm9pZCAwLGUuVCgpKX0pKX0sdC5xYT1mdW5jdGlvbigpe3ZhciBlPXRoaXM7cmV0dXJuIGVsKHRoaXMpLnRoZW4oZnVuY3Rpb24odCl7cmV0dXJuIGUuYiYmRmMoZS5iLmIpLHR9KS5vKGZ1bmN0aW9uKHQpe3Rocm93IGUuYiYmRmMoZS5iLmIpLHR9KX0sdC5kZD1mdW5jdGlvbih0KXtpZighdClyZXR1cm4gd2UobmV3IEkoIm51bGwtdXNlciIpKTtpZih0aGlzLlMhPXQudGVuYW50SWQpcmV0dXJuIHdlKG5ldyBJKCJ0ZW5hbnQtaWQtbWlzbWF0Y2giKSk7dmFyIGU9dGhpcyxuPXt9O24uYXBpS2V5PXRoaXMuYXBwLm9wdGlvbnMuYXBpS2V5LG4uYXV0aERvbWFpbj10aGlzLmFwcC5vcHRpb25zLmF1dGhEb21haW4sbi5hcHBOYW1lPXRoaXMuYXBwLm5hbWU7dmFyIHIsaSxvLHMsYSx1PShyPXQsaT1uLG89ZS5ELHM9ZS5HYSgpLGE9ci5iLChuPXt9KVtCc109YS5iJiZhLmIudG9TdHJpbmcoKSxuLnJlZnJlc2hUb2tlbj1hLmEsaT1uZXcgaGgoaXx8e2FwaUtleTpyLmwsYXV0aERvbWFpbjpyLnMsYXBwTmFtZTpyLm19LG4pLG8mJihpLmhhPW8pLHMmJnBoKGkscyksQWgoaSxyKSxpKTtyZXR1cm4gdWwodGhpcyx0aGlzLmgudGhlbihmdW5jdGlvbigpe2lmKGUuYXBwLm9wdGlvbnMuYXBpS2V5IT10LmwpcmV0dXJuIHUucmVsb2FkKCl9KS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIG9sKGUpJiZ0LnVpZD09b2woZSkudWlkPyhBaChvbChlKSx0KSxlLmRhKHQpKToocmwoZSx1KSx3aCh1KSxlLmRhKHUpKX0pLnRoZW4oZnVuY3Rpb24oKXthbChlKX0pKX0sdC5BYj1mdW5jdGlvbigpe3ZhciB0PXRoaXMsZT10aGlzLmgudGhlbihmdW5jdGlvbigpe3JldHVybiB0LmImJkZjKHQuYi5iKSxvbCh0KT8ocmwodCxudWxsKSx6aCh0LmkpLnRoZW4oZnVuY3Rpb24oKXthbCh0KX0pKTpiZSgpfSk7cmV0dXJuIHVsKHRoaXMsZSl9LHQuWmM9ZnVuY3Rpb24oKXt2YXIgcj10aGlzO3JldHVybiBRaCh0aGlzLmksdGhpcy5hcHAub3B0aW9ucy5hdXRoRG9tYWluKS50aGVuKGZ1bmN0aW9uKHQpe2lmKCFyLmwpe3ZhciBlLG47aWYoKGU9b2wocikmJnQpJiYoZT1vbChyKS51aWQsbj10LnVpZCxlPW51bGwhPWUmJiIiIT09ZSYmbnVsbCE9biYmIiIhPT1uJiZlPT1uKSxlKXJldHVybiBBaChvbChyKSx0KSxvbChyKS5JKCk7KG9sKHIpfHx0KSYmKHJsKHIsdCksdCYmKHdoKHQpLHQuaGE9ci5EKSxyLmImJkVjKHIuYixyKSxhbChyKSl9fSl9LHQuZGE9ZnVuY3Rpb24odCl7cmV0dXJuIEdoKHRoaXMuaSx0KX0sdC5tYz1mdW5jdGlvbigpe2FsKHRoaXMpLHRoaXMuZGEob2wodGhpcykpfSx0LndjPWZ1bmN0aW9uKCl7dGhpcy5BYigpfSx0LnhjPWZ1bmN0aW9uKCl7dGhpcy5BYigpfSx0LmtjPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7cmV0dXJuIHRoaXMuaC50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIGlsKGUsYmUodCkpfSl9LHQuemM9ZnVuY3Rpb24odCl7dmFyIGU9dGhpczt0aGlzLmFkZEF1dGhUb2tlbkxpc3RlbmVyKGZ1bmN0aW9uKCl7dC5uZXh0KG9sKGUpKX0pfSx0LkFjPWZ1bmN0aW9uKHQpe3ZhciBlLG4scj10aGlzO249ZnVuY3Rpb24oKXt0Lm5leHQob2wocikpfSwoZT10aGlzKS5PLnB1c2gobiksdWwoZSxlLmgudGhlbihmdW5jdGlvbigpeyFlLmwmJksoZS5PLG4pJiZlLlghPT1lLmdldFVpZCgpJiYoZS5YPWUuZ2V0VWlkKCksbihzbChlKSkpfSkpfSx0LkljPWZ1bmN0aW9uKHQsZSxuKXt2YXIgcj10aGlzO3JldHVybiB0aGlzLmJhJiZQcm9taXNlLnJlc29sdmUoKS50aGVuKGZ1bmN0aW9uKCl7ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dChvbChyKSk6ImZ1bmN0aW9uIj09dHlwZW9mIHQubmV4dCYmdC5uZXh0KG9sKHIpKX0pLHRoaXMuaGIodCxlLG4pfSx0LkhjPWZ1bmN0aW9uKHQsZSxuKXt2YXIgcj10aGlzO3JldHVybiB0aGlzLmJhJiZQcm9taXNlLnJlc29sdmUoKS50aGVuKGZ1bmN0aW9uKCl7ci5YPXIuZ2V0VWlkKCksImZ1bmN0aW9uIj09dHlwZW9mIHQ/dChvbChyKSk6ImZ1bmN0aW9uIj09dHlwZW9mIHQubmV4dCYmdC5uZXh0KG9sKHIpKX0pLHRoaXMuYmModCxlLG4pfSx0Lm5jPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMsbj10aGlzLmgudGhlbihmdW5jdGlvbigpe3JldHVybiBvbChlKT9vbChlKS5JKHQpLnRoZW4oZnVuY3Rpb24odCl7cmV0dXJue2FjY2Vzc1Rva2VuOnR9fSk6bnVsbH0pO3JldHVybiB1bCh0aGlzLG4pfSx0LlRjPWZ1bmN0aW9uKHQpe3ZhciBuPXRoaXM7cmV0dXJuIHRoaXMuaC50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIGlsKG4semEobi5hLFZhLHt0b2tlbjp0fSkpfSkudGhlbihmdW5jdGlvbih0KXt2YXIgZT10LnVzZXI7cmV0dXJuIE5oKGUsImlzQW5vbnltb3VzIiwhMSksbi5kYShlKSx0fSl9LHQuVWM9ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzO3JldHVybiB0aGlzLmgudGhlbihmdW5jdGlvbigpe3JldHVybiBpbChuLHphKG4uYSxCYSx7ZW1haWw6dCxwYXNzd29yZDplfSkpfSl9LHQuZGM9ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzO3JldHVybiB0aGlzLmgudGhlbihmdW5jdGlvbigpe3JldHVybiBpbChuLHphKG4uYSxnYSx7ZW1haWw6dCxwYXNzd29yZDplfSkpfSl9LHQuJGE9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztyZXR1cm4gdGhpcy5oLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gaWwoZSx0LmthKGUuYSkpfSl9LHQuU2M9ZnVuY3Rpb24odCl7cmV0dXJuIEZyKCJmaXJlYmFzZS5hdXRoLkF1dGgucHJvdG90eXBlLnNpZ25JbkFuZFJldHJpZXZlRGF0YVdpdGhDcmVkZW50aWFsIGlzIGRlcHJlY2F0ZWQuIFBsZWFzZSB1c2UgZmlyZWJhc2UuYXV0aC5BdXRoLnByb3RvdHlwZS5zaWduSW5XaXRoQ3JlZGVudGlhbCBpbnN0ZWFkLiIpLHRoaXMuJGEodCl9LHQuemI9ZnVuY3Rpb24oKXt2YXIgbj10aGlzO3JldHVybiB0aGlzLmgudGhlbihmdW5jdGlvbigpe3ZhciB0PW9sKG4pO2lmKHQmJnQuaXNBbm9ueW1vdXMpe3ZhciBlPVZyKHtwcm92aWRlcklkOm51bGwsaXNOZXdVc2VyOiExfSk7cmV0dXJuIFZyKHt1c2VyOnQsY3JlZGVudGlhbDpudWxsLGFkZGl0aW9uYWxVc2VySW5mbzplLG9wZXJhdGlvblR5cGU6InNpZ25JbiJ9KX1yZXR1cm4gaWwobixuLmEuemIoKSkudGhlbihmdW5jdGlvbih0KXt2YXIgZT10LnVzZXI7cmV0dXJuIE5oKGUsImlzQW5vbnltb3VzIiwhMCksbi5kYShlKSx0fSl9KX0sdC5nZXRVaWQ9ZnVuY3Rpb24oKXtyZXR1cm4gb2wodGhpcykmJm9sKHRoaXMpLnVpZHx8bnVsbH0sdC5jYz1mdW5jdGlvbih0KXt0aGlzLmFkZEF1dGhUb2tlbkxpc3RlbmVyKHQpLHRoaXMudSsrLDA8dGhpcy51JiZvbCh0aGlzKSYmZ2gob2wodGhpcykpfSx0LlBjPWZ1bmN0aW9uKGUpe3ZhciBuPXRoaXM7aih0aGlzLnMsZnVuY3Rpb24odCl7dD09ZSYmbi51LS19KSx0aGlzLnU8MCYmKHRoaXMudT0wKSwwPT10aGlzLnUmJm9sKHRoaXMpJiZ5aChvbCh0aGlzKSksdGhpcy5yZW1vdmVBdXRoVG9rZW5MaXN0ZW5lcihlKX0sdC5hZGRBdXRoVG9rZW5MaXN0ZW5lcj1mdW5jdGlvbih0KXt2YXIgZT10aGlzO3RoaXMucy5wdXNoKHQpLHVsKHRoaXMsdGhpcy5oLnRoZW4oZnVuY3Rpb24oKXtlLmx8fEsoZS5zLHQpJiZ0KHNsKGUpKX0pKX0sdC5yZW1vdmVBdXRoVG9rZW5MaXN0ZW5lcj1mdW5jdGlvbihlKXtIKHRoaXMucyxmdW5jdGlvbih0KXtyZXR1cm4gdD09ZX0pfSx0LmRlbGV0ZT1mdW5jdGlvbigpe3RoaXMubD0hMDtmb3IodmFyIHQ9MDt0PHRoaXMuUi5sZW5ndGg7dCsrKXRoaXMuUlt0XS5jYW5jZWwoImFwcC1kZWxldGVkIik7cmV0dXJuIHRoaXMuUj1bXSx0aGlzLmkmJih0PXRoaXMuaSkuYi5yZW1vdmVMaXN0ZW5lcihIaCgibG9jYWwiKSx0LmEsdGhpcy5qYSksdGhpcy5iJiYoU2ModGhpcy5iLHRoaXMpLEZjKHRoaXMuYi5iKSksUHJvbWlzZS5yZXNvbHZlKCl9LHQuaGM9ZnVuY3Rpb24odCl7cmV0dXJuIHVsKHRoaXMsemEodGhpcy5hLHlhLHtpZGVudGlmaWVyOnQsY29udGludWVVcmk6X3IoKT9abigpOiJodHRwOi8vbG9jYWxob3N0In0pLnRoZW4oZnVuY3Rpb24odCl7cmV0dXJuIHQuc2lnbmluTWV0aG9kc3x8W119KSl9LHQuQmM9ZnVuY3Rpb24odCl7cmV0dXJuISFJbyh0KX0sdC53Yj1mdW5jdGlvbihlLG4pe3ZhciByPXRoaXM7cmV0dXJuIHVsKHRoaXMsYmUoKS50aGVuKGZ1bmN0aW9uKCl7dmFyIHQ9bmV3IGJpKG4pO2lmKCF0LmMpdGhyb3cgbmV3IEkoImFyZ3VtZW50LWVycm9yIixJaSsiIG11c3QgYmUgdHJ1ZSB3aGVuIHNlbmRpbmcgc2lnbiBpbiBsaW5rIHRvIGVtYWlsIik7cmV0dXJuIGtpKHQpfSkudGhlbihmdW5jdGlvbih0KXtyZXR1cm4gci5hLndiKGUsdCl9KS50aGVuKGZ1bmN0aW9uKCl7fSkpfSx0LmpkPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLlJhKHQpLnRoZW4oZnVuY3Rpb24odCl7cmV0dXJuIHQuZGF0YS5lbWFpbH0pfSx0Lm5iPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHVsKHRoaXMsdGhpcy5hLm5iKHQsZSkudGhlbihmdW5jdGlvbigpe30pKX0sdC5SYT1mdW5jdGlvbih0KXtyZXR1cm4gdWwodGhpcyx0aGlzLmEuUmEodCkudGhlbihmdW5jdGlvbih0KXtyZXR1cm4gbmV3IFhyKHQpfSkpfSx0LmpiPWZ1bmN0aW9uKHQpe3JldHVybiB1bCh0aGlzLHRoaXMuYS5qYih0KS50aGVuKGZ1bmN0aW9uKCl7fSkpfSx0LnZiPWZ1bmN0aW9uKGUsdCl7dmFyIG49dGhpcztyZXR1cm4gdWwodGhpcyxiZSgpLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gdm9pZCAwPT09dHx8dXQodCk/e306a2kobmV3IGJpKHQpKX0pLnRoZW4oZnVuY3Rpb24odCl7cmV0dXJuIG4uYS52YihlLHQpfSkudGhlbihmdW5jdGlvbigpe30pKX0sdC5XYz1mdW5jdGlvbih0LGUpe3JldHVybiB1bCh0aGlzLEtjKHRoaXMsdCxlLG0odGhpcy4kYSx0aGlzKSkpfSx0LlZjPWZ1bmN0aW9uKG4scil7dmFyIGk9dGhpcztyZXR1cm4gdWwodGhpcyxiZSgpLnRoZW4oZnVuY3Rpb24oKXt2YXIgdD1yfHxabigpLGU9X28obix0KTtpZighKHQ9SW8odCkpKXRocm93IG5ldyBJKCJhcmd1bWVudC1lcnJvciIsIkludmFsaWQgZW1haWwgbGluayEiKTtpZih0LnRlbmFudElkIT09aS5UKCkpdGhyb3cgbmV3IEkoInRlbmFudC1pZC1taXNtYXRjaCIpO3JldHVybiBpLiRhKGUpfSkpfSxjbC5wcm90b3R5cGUucmVuZGVyPWZ1bmN0aW9uKCl7fSxjbC5wcm90b3R5cGUucmVzZXQ9ZnVuY3Rpb24oKXt9LGNsLnByb3RvdHlwZS5nZXRSZXNwb25zZT1mdW5jdGlvbigpe30sY2wucHJvdG90eXBlLmV4ZWN1dGU9ZnVuY3Rpb24oKXt9O3ZhciBsbD1udWxsO2Z1bmN0aW9uIGZsKHQsZSl7cmV0dXJuKGU9cGwoZSkpJiZ0LmFbZV18fG51bGx9ZnVuY3Rpb24gcGwodCl7cmV0dXJuKHQ9dm9pZCAwPT09dD8xZTEyOnQpP3QudG9TdHJpbmcoKTpudWxsfWZ1bmN0aW9uIGRsKHQsZSl7dGhpcy5nPSExLHRoaXMuYz1lLHRoaXMuYT10aGlzLmI9bnVsbCx0aGlzLmg9ImludmlzaWJsZSIhPT10aGlzLmMuc2l6ZSx0aGlzLmY9dGUodCk7dmFyIG49dGhpczt0aGlzLmk9ZnVuY3Rpb24oKXtuLmV4ZWN1dGUoKX0sdGhpcy5oP3RoaXMuZXhlY3V0ZSgpOiRlKHRoaXMuZiwiY2xpY2siLHRoaXMuaSl9ZnVuY3Rpb24gdmwodCl7aWYodC5nKXRocm93IEVycm9yKCJyZUNBUFRDSEEgbW9jayB3YXMgYWxyZWFkeSBkZWxldGVkISIpfWZ1bmN0aW9uIGdsKCl7fWZ1bmN0aW9uIHlsKCl7fWhsLnByb3RvdHlwZS5yZW5kZXI9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5hW3RoaXMuYi50b1N0cmluZygpXT1uZXcgZGwodCxlKSx0aGlzLmIrK30saGwucHJvdG90eXBlLnJlc2V0PWZ1bmN0aW9uKHQpe3ZhciBlPWZsKHRoaXMsdCk7dD1wbCh0KSxlJiZ0JiYoZS5kZWxldGUoKSxkZWxldGUgdGhpcy5hW3RdKX0saGwucHJvdG90eXBlLmdldFJlc3BvbnNlPWZ1bmN0aW9uKHQpe3JldHVybih0PWZsKHRoaXMsdCkpP3QuZ2V0UmVzcG9uc2UoKTpudWxsfSxobC5wcm90b3R5cGUuZXhlY3V0ZT1mdW5jdGlvbih0KXsodD1mbCh0aGlzLHQpKSYmdC5leGVjdXRlKCl9LGRsLnByb3RvdHlwZS5nZXRSZXNwb25zZT1mdW5jdGlvbigpe3JldHVybiB2bCh0aGlzKSx0aGlzLmJ9LGRsLnByb3RvdHlwZS5leGVjdXRlPWZ1bmN0aW9uKCl7dmwodGhpcyk7dmFyIG49dGhpczt0aGlzLmF8fCh0aGlzLmE9c2V0VGltZW91dChmdW5jdGlvbigpe24uYj1mdW5jdGlvbigpe2Zvcih2YXIgdD01MCxlPVtdOzA8dDspZS5wdXNoKCIxMjM0NTY3ODkwYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWiIuY2hhckF0KE1hdGguZmxvb3IoNjIqTWF0aC5yYW5kb20oKSkpKSx0LS07cmV0dXJuIGUuam9pbigiIil9KCk7dmFyIHQ9bi5jLmNhbGxiYWNrLGU9bi5jWyJleHBpcmVkLWNhbGxiYWNrIl07aWYodCl0cnl7dChuLmIpfWNhdGNoKHQpe31uLmE9c2V0VGltZW91dChmdW5jdGlvbigpe2lmKG4uYT1udWxsLG4uYj1udWxsLGUpdHJ5e2UoKX1jYXRjaCh0KXt9bi5oJiZuLmV4ZWN1dGUoKX0sNmU0KX0sNTAwKSl9LGRsLnByb3RvdHlwZS5kZWxldGU9ZnVuY3Rpb24oKXt2bCh0aGlzKSx0aGlzLmc9ITAsY2xlYXJUaW1lb3V0KHRoaXMuYSksdGhpcy5hPW51bGwsZW4odGhpcy5mLCJjbGljayIsdGhpcy5pKX0sanIoZ2wsIkZBQ1RPUl9JRCIsInBob25lIikseWwucHJvdG90eXBlLmc9ZnVuY3Rpb24oKXtyZXR1cm4gYmUobGw9bGx8fG5ldyBobCl9LHlsLnByb3RvdHlwZS5jPWZ1bmN0aW9uKCl7fTt2YXIgbWw9bnVsbDtmdW5jdGlvbiBibCgpe3RoaXMuYj1sLmdyZWNhcHRjaGE/MS8wOjAsdGhpcy5mPW51bGwsdGhpcy5hPSJfX3JjYiIrTWF0aC5mbG9vcigxZTYqTWF0aC5yYW5kb20oKSkudG9TdHJpbmcoKX12YXIgd2w9bmV3IHB0KHl0LCJodHRwczovL3d3dy5nb29nbGUuY29tL3JlY2FwdGNoYS9hcGkuanM/b25sb2FkPSV7b25sb2FkfSZyZW5kZXI9ZXhwbGljaXQmaGw9JXtobH0iKSxfbD1uZXcgUnIoM2U0LDZlNCk7YmwucHJvdG90eXBlLmc9ZnVuY3Rpb24oaSl7dmFyIG89dGhpcztyZXR1cm4gbmV3IGZlKGZ1bmN0aW9uKHQsZSl7dmFyIHI9c2V0VGltZW91dChmdW5jdGlvbigpe2UobmV3IEkoIm5ldHdvcmstcmVxdWVzdC1mYWlsZWQiKSl9LF9sLmdldCgpKTshbC5ncmVjYXB0Y2hhfHxpIT09by5mJiYhby5iPyhsW28uYV09ZnVuY3Rpb24oKXt2YXIgbjtsLmdyZWNhcHRjaGE/KG8uZj1pLG49bC5ncmVjYXB0Y2hhLnJlbmRlcixsLmdyZWNhcHRjaGEucmVuZGVyPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQ9bih0LGUpLG8uYisrLHR9LGNsZWFyVGltZW91dChyKSx0KGwuZ3JlY2FwdGNoYSkpOihjbGVhclRpbWVvdXQociksZShuZXcgSSgiaW50ZXJuYWwtZXJyb3IiKSkpLGRlbGV0ZSBsW28uYV19LGJlKERzKF90KHdsLHtvbmxvYWQ6by5hLGhsOml8fCIifSkpKS5vKGZ1bmN0aW9uKCl7Y2xlYXJUaW1lb3V0KHIpLGUobmV3IEkoImludGVybmFsLWVycm9yIiwiVW5hYmxlIHRvIGxvYWQgZXh0ZXJuYWwgcmVDQVBUQ0hBIGRlcGVuZGVuY2llcyEiKSl9KSk6KGNsZWFyVGltZW91dChyKSx0KGwuZ3JlY2FwdGNoYSkpfSl9LGJsLnByb3RvdHlwZS5jPWZ1bmN0aW9uKCl7dGhpcy5iLS19O3ZhciBJbD1udWxsO2Z1bmN0aW9uIFRsKHQsZSxuLHIsaSxvLHMpe2lmKGpyKHRoaXMsInR5cGUiLCJyZWNhcHRjaGEiKSx0aGlzLmM9dGhpcy5mPW51bGwsdGhpcy5EPSExLHRoaXMudj1lLHRoaXMuZz1udWxsLHM9cz9tbD1tbHx8bmV3IHlsOklsPUlsfHxuZXcgYmwsdGhpcy5tPXMsdGhpcy5hPW58fHt0aGVtZToibGlnaHQiLHR5cGU6ImltYWdlIn0sdGhpcy5oPVtdLHRoaXMuYVtDbF0pdGhyb3cgbmV3IEkoImFyZ3VtZW50LWVycm9yIiwic2l0ZWtleSBzaG91bGQgbm90IGJlIHByb3ZpZGVkIGZvciByZUNBUFRDSEEgYXMgb25lIGlzIGF1dG9tYXRpY2FsbHkgcHJvdmlzaW9uZWQgZm9yIHRoZSBjdXJyZW50IHByb2plY3QuIik7aWYodGhpcy5pPSJpbnZpc2libGUiPT09dGhpcy5hW05sXSwhbC5kb2N1bWVudCl0aHJvdyBuZXcgSSgib3BlcmF0aW9uLW5vdC1zdXBwb3J0ZWQtaW4tdGhpcy1lbnZpcm9ubWVudCIsIlJlY2FwdGNoYVZlcmlmaWVyIGlzIG9ubHkgc3VwcG9ydGVkIGluIGEgYnJvd3NlciBIVFRQL0hUVFBTIGVudmlyb25tZW50IHdpdGggRE9NIHN1cHBvcnQuIik7aWYoIXRlKGUpfHwhdGhpcy5pJiZ0ZShlKS5oYXNDaGlsZE5vZGVzKCkpdGhyb3cgbmV3IEkoImFyZ3VtZW50LWVycm9yIiwicmVDQVBUQ0hBIGNvbnRhaW5lciBpcyBlaXRoZXIgbm90IGZvdW5kIG9yIGFscmVhZHkgY29udGFpbnMgaW5uZXIgZWxlbWVudHMhIik7dGhpcy5zPW5ldyBxcyh0LG98fG51bGwsaXx8bnVsbCksdGhpcy51PXJ8fGZ1bmN0aW9uKCl7cmV0dXJuIG51bGx9O3ZhciBhPXRoaXM7dGhpcy5sPVtdO3ZhciB1PXRoaXMuYVtFbF07dGhpcy5hW0VsXT1mdW5jdGlvbih0KXt2YXIgZTtBbChhLHQpLCJmdW5jdGlvbiI9PXR5cGVvZiB1P3UodCk6InN0cmluZyIhPXR5cGVvZiB1fHwiZnVuY3Rpb24iPT10eXBlb2YoZT1tcih1LGwpKSYmZSh0KX07dmFyIGM9dGhpcy5hW1NsXTt0aGlzLmFbU2xdPWZ1bmN0aW9uKCl7dmFyIHQ7QWwoYSxudWxsKSwiZnVuY3Rpb24iPT10eXBlb2YgYz9jKCk6InN0cmluZyIhPXR5cGVvZiBjfHwiZnVuY3Rpb24iPT10eXBlb2YodD1tcihjLGwpKSYmdCgpfX12YXIgRWw9ImNhbGxiYWNrIixTbD0iZXhwaXJlZC1jYWxsYmFjayIsQ2w9InNpdGVrZXkiLE5sPSJzaXplIjtmdW5jdGlvbiBBbCh0LGUpe2Zvcih2YXIgbj0wO248dC5sLmxlbmd0aDtuKyspdHJ5e3QubFtuXShlKX1jYXRjaCh0KXt9fWZ1bmN0aW9uIGtsKHQsZSl7cmV0dXJuIHQuaC5wdXNoKGUpLGUub2EoZnVuY3Rpb24oKXtXKHQuaCxlKX0pLGV9ZnVuY3Rpb24gUmwodCl7aWYodC5EKXRocm93IG5ldyBJKCJpbnRlcm5hbC1lcnJvciIsIlJlY2FwdGNoYVZlcmlmaWVyIGluc3RhbmNlIGhhcyBiZWVuIGRlc3Ryb3llZC4iKX1mdW5jdGlvbiBQbCh0LGUsbil7dmFyIHI9ITE7dHJ5e3RoaXMuYj1ufHxYbC5hcHAoKX1jYXRjaCh0KXt0aHJvdyBuZXcgSSgiYXJndW1lbnQtZXJyb3IiLCJObyBmaXJlYmFzZS5hcHAuQXBwIGluc3RhbmNlIGlzIGN1cnJlbnRseSBpbml0aWFsaXplZC4iKX1pZighdGhpcy5iLm9wdGlvbnN8fCF0aGlzLmIub3B0aW9ucy5hcGlLZXkpdGhyb3cgbmV3IEkoImludmFsaWQtYXBpLWtleSIpO249dGhpcy5iLm9wdGlvbnMuYXBpS2V5O3ZhciBpPXRoaXMsbz1udWxsO3RyeXtvPXRoaXMuYi5hdXRoKCkuR2EoKX1jYXRjaCh0KXt9dHJ5e3I9dGhpcy5iLmF1dGgoKS5zZXR0aW5ncy5hcHBWZXJpZmljYXRpb25EaXNhYmxlZEZvclRlc3Rpbmd9Y2F0Y2godCl7fW89WGwuU0RLX1ZFUlNJT04/Z3IoWGwuU0RLX1ZFUlNJT04sbyk6bnVsbCxUbC5jYWxsKHRoaXMsbix0LGUsZnVuY3Rpb24oKXt0cnl7dmFyIGU9aS5iLmF1dGgoKS5sYSgpfWNhdGNoKHQpe2U9bnVsbH1yZXR1cm4gZX0sbyxBKEUpLHIpfWZ1bmN0aW9uIE9sKHQsZSxuLHIpe3Q6e249QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwobik7Zm9yKHZhciBpPTAsbz0hMSxzPTA7czxlLmxlbmd0aDtzKyspaWYoZVtzXS5vcHRpb25hbClvPSEwO2Vsc2V7aWYobyl0aHJvdyBuZXcgSSgiaW50ZXJuYWwtZXJyb3IiLCJBcmd1bWVudCB2YWxpZGF0b3IgZW5jb3VudGVyZWQgYSByZXF1aXJlZCBhcmd1bWVudCBhZnRlciBhbiBvcHRpb25hbCBhcmd1bWVudC4iKTtpKyt9aWYobz1lLmxlbmd0aCxuLmxlbmd0aDxpfHxvPG4ubGVuZ3RoKXI9IkV4cGVjdGVkICIrKGk9PW8/MT09aT8iMSBhcmd1bWVudCI6aSsiIGFyZ3VtZW50cyI6aSsiLSIrbysiIGFyZ3VtZW50cyIpKyIgYnV0IGdvdCAiK24ubGVuZ3RoKyIuIjtlbHNle2ZvcihpPTA7aTxuLmxlbmd0aDtpKyspaWYobz1lW2ldLm9wdGlvbmFsJiZ2b2lkIDA9PT1uW2ldLCFlW2ldLk0obltpXSkmJiFvKXtpZihlPWVbaV0saTwwfHxpPj1EbC5sZW5ndGgpdGhyb3cgbmV3IEkoImludGVybmFsLWVycm9yIiwiQXJndW1lbnQgdmFsaWRhdG9yIHJlY2VpdmVkIGFuIHVuc3VwcG9ydGVkIG51bWJlciBvZiBhcmd1bWVudHMuIik7bj1EbFtpXSxyPShyPyIiOm4rIiBhcmd1bWVudCAiKSsoZS5uYW1lPyciJytlLm5hbWUrJyIgJzoiIikrIm11c3QgYmUgIitlLksrIi4iO2JyZWFrIHR9cj1udWxsfX1pZihyKXRocm93IG5ldyBJKCJhcmd1bWVudC1lcnJvciIsdCsiIGZhaWxlZDogIityKX0odD1UbC5wcm90b3R5cGUpLklhPWZ1bmN0aW9uKCl7dmFyIGU9dGhpcztyZXR1cm4gdGhpcy5mfHwodGhpcy5mPWtsKHRoaXMsYmUoKS50aGVuKGZ1bmN0aW9uKCl7aWYoX3IoKSYmIWNyKCkpcmV0dXJuIHNyKCk7dGhyb3cgbmV3IEkoIm9wZXJhdGlvbi1ub3Qtc3VwcG9ydGVkLWluLXRoaXMtZW52aXJvbm1lbnQiLCJSZWNhcHRjaGFWZXJpZmllciBpcyBvbmx5IHN1cHBvcnRlZCBpbiBhIGJyb3dzZXIgSFRUUC9IVFRQUyBlbnZpcm9ubWVudC4iKX0pLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gZS5tLmcoZS51KCkpfSkudGhlbihmdW5jdGlvbih0KXtyZXR1cm4gZS5nPXQsemEoZS5zLFJhLHt9KX0pLnRoZW4oZnVuY3Rpb24odCl7ZS5hW0NsXT10LnJlY2FwdGNoYVNpdGVLZXl9KS5vKGZ1bmN0aW9uKHQpe3Rocm93IGUuZj1udWxsLHR9KSkpfSx0LnJlbmRlcj1mdW5jdGlvbigpe1JsKHRoaXMpO3ZhciBuPXRoaXM7cmV0dXJuIGtsKHRoaXMsdGhpcy5JYSgpLnRoZW4oZnVuY3Rpb24oKXt2YXIgdCxlO3JldHVybiBudWxsPT09bi5jJiYoZT1uLnYsbi5pfHwodD10ZShlKSxlPW9lKCJESVYiKSx0LmFwcGVuZENoaWxkKGUpKSxuLmM9bi5nLnJlbmRlcihlLG4uYSkpLG4uY30pKX0sdC52ZXJpZnk9ZnVuY3Rpb24oKXtSbCh0aGlzKTt2YXIgaT10aGlzO3JldHVybiBrbCh0aGlzLHRoaXMucmVuZGVyKCkudGhlbihmdW5jdGlvbihlKXtyZXR1cm4gbmV3IGZlKGZ1bmN0aW9uKG4pe3ZhciByLHQ9aS5nLmdldFJlc3BvbnNlKGUpO3Q/bih0KToocj1mdW5jdGlvbih0KXt2YXIgZTt0JiYoZT1yLEgoaS5sLGZ1bmN0aW9uKHQpe3JldHVybiB0PT1lfSksbih0KSl9LGkubC5wdXNoKHIpLGkuaSYmaS5nLmV4ZWN1dGUoaS5jKSl9KX0pKX0sdC5yZXNldD1mdW5jdGlvbigpe1JsKHRoaXMpLG51bGwhPT10aGlzLmMmJnRoaXMuZy5yZXNldCh0aGlzLmMpfSx0LmNsZWFyPWZ1bmN0aW9uKCl7UmwodGhpcyksdGhpcy5EPSEwLHRoaXMubS5jKCk7Zm9yKHZhciB0LGU9MDtlPHRoaXMuaC5sZW5ndGg7ZSsrKXRoaXMuaFtlXS5jYW5jZWwoIlJlY2FwdGNoYVZlcmlmaWVyIGluc3RhbmNlIGhhcyBiZWVuIGRlc3Ryb3llZC4iKTtpZighdGhpcy5pKXtlPXRlKHRoaXMudik7Zm9yKDt0PWUuZmlyc3RDaGlsZDspZS5yZW1vdmVDaGlsZCh0KX19LHcoUGwsVGwpO3ZhciBEbD0iRmlyc3QgU2Vjb25kIFRoaXJkIEZvdXJ0aCBGaWZ0aCBTaXh0aCBTZXZlbnRoIEVpZ2h0aCBOaW50aCIuc3BsaXQoIiAiKTtmdW5jdGlvbiB4bCh0LGUpe3JldHVybntuYW1lOnR8fCIiLEs6ImEgdmFsaWQgc3RyaW5nIixvcHRpb25hbDohIWUsTTpmdW5jdGlvbih0KXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIHR9fX1mdW5jdGlvbiBMbCh0LGUpe3JldHVybntuYW1lOnR8fCIiLEs6ImEgYm9vbGVhbiIsb3B0aW9uYWw6ISFlLE06ZnVuY3Rpb24odCl7cmV0dXJuImJvb2xlYW4iPT10eXBlb2YgdH19fWZ1bmN0aW9uIE1sKHQsZSl7cmV0dXJue25hbWU6dHx8IiIsSzoiYSB2YWxpZCBvYmplY3QiLG9wdGlvbmFsOiEhZSxNOmd9fWZ1bmN0aW9uIEZsKHQsZSl7cmV0dXJue25hbWU6dHx8IiIsSzoiYSBmdW5jdGlvbiIsb3B0aW9uYWw6ISFlLE06ZnVuY3Rpb24odCl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIHR9fX1mdW5jdGlvbiBVbCh0LGUpe3JldHVybntuYW1lOnR8fCIiLEs6Im51bGwiLG9wdGlvbmFsOiEhZSxNOmZ1bmN0aW9uKHQpe3JldHVybiBudWxsPT09dH19fWZ1bmN0aW9uIGpsKG4pe3JldHVybntuYW1lOm4/bisiQ3JlZGVudGlhbCI6ImNyZWRlbnRpYWwiLEs6bj8iYSB2YWxpZCAiK24rIiBjcmVkZW50aWFsIjoiYSB2YWxpZCBjcmVkZW50aWFsIixvcHRpb25hbDohMSxNOmZ1bmN0aW9uKHQpe2lmKCF0KXJldHVybiExO3ZhciBlPSFufHx0LnByb3ZpZGVySWQ9PT1uO3JldHVybiEoIXQua2F8fCFlKX19fWZ1bmN0aW9uIHFsKCl7cmV0dXJue25hbWU6Im11bHRpRmFjdG9yQXNzZXJ0aW9uIixLOiJhIHZhbGlkIG11bHRpRmFjdG9yQXNzZXJ0aW9uIixvcHRpb25hbDohMSxNOmZ1bmN0aW9uKHQpe3JldHVybiEhdCYmISF0LnNifX19ZnVuY3Rpb24gVmwoKXtyZXR1cm57bmFtZToiYXV0aFByb3ZpZGVyIixLOiJhIHZhbGlkIEF1dGggcHJvdmlkZXIiLG9wdGlvbmFsOiExLE06ZnVuY3Rpb24odCl7cmV0dXJuISEodCYmdC5wcm92aWRlcklkJiZ0Lmhhc093blByb3BlcnR5JiZ0Lmhhc093blByb3BlcnR5KCJpc09BdXRoUHJvdmlkZXIiKSl9fX1mdW5jdGlvbiBCbCh0LGUpe3JldHVybiBnKHQpJiYic3RyaW5nIj09dHlwZW9mIHQudHlwZSYmdC50eXBlPT09ZSYmImZ1bmN0aW9uIj09dHlwZW9mIHQuSGF9ZnVuY3Rpb24gS2wodCl7cmV0dXJuIGcodCkmJiJzdHJpbmciPT10eXBlb2YgdC51aWR9ZnVuY3Rpb24gV2woKXtyZXR1cm57bmFtZToiYXBwbGljYXRpb25WZXJpZmllciIsSzoiYW4gaW1wbGVtZW50YXRpb24gb2YgZmlyZWJhc2UuYXV0aC5BcHBsaWNhdGlvblZlcmlmaWVyIixvcHRpb25hbDohMSxNOmZ1bmN0aW9uKHQpe3JldHVybiEoIXR8fCJzdHJpbmciIT10eXBlb2YgdC50eXBlfHwiZnVuY3Rpb24iIT10eXBlb2YgdC52ZXJpZnkpfX19ZnVuY3Rpb24gSGwoZSxuLHQscil7cmV0dXJue25hbWU6dHx8IiIsSzplLksrIiBvciAiK24uSyxvcHRpb25hbDohIXIsTTpmdW5jdGlvbih0KXtyZXR1cm4gZS5NKHQpfHxuLk0odCl9fX1mdW5jdGlvbiBHbCh0LGUpe2Zvcih2YXIgbiBpbiBlKXt2YXIgcj1lW25dLm5hbWU7dFtyXT1ZbChyLHRbbl0sZVtuXS5qKX19ZnVuY3Rpb24gemwodCxlKXtmb3IodmFyIG4gaW4gZSl7dmFyIHI9ZVtuXS5uYW1lO3IhPT1uJiZPYmplY3QuZGVmaW5lUHJvcGVydHkodCxyLHtnZXQ6YihmdW5jdGlvbih0KXtyZXR1cm4gdGhpc1t0XX0sbiksc2V0OmIoZnVuY3Rpb24odCxlLG4scil7T2wodCxbbl0sW3JdLCEwKSx0aGlzW2VdPXJ9LHIsbixlW25dLmtiKSxlbnVtZXJhYmxlOiEwfSl9fWZ1bmN0aW9uIFFsKHQsZSxuLHIpe3RbZV09WWwoZSxuLHIpfWZ1bmN0aW9uIFlsKHQsZSxuKXtmdW5jdGlvbiByKCl7dmFyIHQ9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzKTtyZXR1cm4gT2wobyxuLHQpLGUuYXBwbHkodGhpcyx0KX1pZighbilyZXR1cm4gZTt2YXIgaSxvPSh0PSh0PXQpLnNwbGl0KCIuIikpW3QubGVuZ3RoLTFdO2ZvcihpIGluIGUpcltpXT1lW2ldO2ZvcihpIGluIGUucHJvdG90eXBlKXIucHJvdG90eXBlW2ldPWUucHJvdG90eXBlW2ldO3JldHVybiByfUdsKFhoLnByb3RvdHlwZSx7amI6e25hbWU6ImFwcGx5QWN0aW9uQ29kZSIsajpbeGwoImNvZGUiKV19LFJhOntuYW1lOiJjaGVja0FjdGlvbkNvZGUiLGo6W3hsKCJjb2RlIildfSxuYjp7bmFtZToiY29uZmlybVBhc3N3b3JkUmVzZXQiLGo6W3hsKCJjb2RlIikseGwoIm5ld1Bhc3N3b3JkIildfSxkYzp7bmFtZToiY3JlYXRlVXNlcldpdGhFbWFpbEFuZFBhc3N3b3JkIixqOlt4bCgiZW1haWwiKSx4bCgicGFzc3dvcmQiKV19LGhjOntuYW1lOiJmZXRjaFNpZ25Jbk1ldGhvZHNGb3JFbWFpbCIsajpbeGwoImVtYWlsIildfSxxYTp7bmFtZToiZ2V0UmVkaXJlY3RSZXN1bHQiLGo6W119LEJjOntuYW1lOiJpc1NpZ25JbldpdGhFbWFpbExpbmsiLGo6W3hsKCJlbWFpbExpbmsiKV19LEhjOntuYW1lOiJvbkF1dGhTdGF0ZUNoYW5nZWQiLGo6W0hsKE1sKCksRmwoKSwibmV4dE9yT2JzZXJ2ZXIiKSxGbCgib3B0X2Vycm9yIiwhMCksRmwoIm9wdF9jb21wbGV0ZWQiLCEwKV19LEljOntuYW1lOiJvbklkVG9rZW5DaGFuZ2VkIixqOltIbChNbCgpLEZsKCksIm5leHRPck9ic2VydmVyIiksRmwoIm9wdF9lcnJvciIsITApLEZsKCJvcHRfY29tcGxldGVkIiwhMCldfSx2Yjp7bmFtZToic2VuZFBhc3N3b3JkUmVzZXRFbWFpbCIsajpbeGwoImVtYWlsIiksSGwoTWwoIm9wdF9hY3Rpb25Db2RlU2V0dGluZ3MiLCEwKSxVbChudWxsLCEwKSwib3B0X2FjdGlvbkNvZGVTZXR0aW5ncyIsITApXX0sd2I6e25hbWU6InNlbmRTaWduSW5MaW5rVG9FbWFpbCIsajpbeGwoImVtYWlsIiksTWwoImFjdGlvbkNvZGVTZXR0aW5ncyIpXX0seGI6e25hbWU6InNldFBlcnNpc3RlbmNlIixqOlt4bCgicGVyc2lzdGVuY2UiKV19LFNjOntuYW1lOiJzaWduSW5BbmRSZXRyaWV2ZURhdGFXaXRoQ3JlZGVudGlhbCIsajpbamwoKV19LHpiOntuYW1lOiJzaWduSW5Bbm9ueW1vdXNseSIsajpbXX0sJGE6e25hbWU6InNpZ25JbldpdGhDcmVkZW50aWFsIixqOltqbCgpXX0sVGM6e25hbWU6InNpZ25JbldpdGhDdXN0b21Ub2tlbiIsajpbeGwoInRva2VuIildfSxVYzp7bmFtZToic2lnbkluV2l0aEVtYWlsQW5kUGFzc3dvcmQiLGo6W3hsKCJlbWFpbCIpLHhsKCJwYXNzd29yZCIpXX0sVmM6e25hbWU6InNpZ25JbldpdGhFbWFpbExpbmsiLGo6W3hsKCJlbWFpbCIpLHhsKCJlbWFpbExpbmsiLCEwKV19LFdjOntuYW1lOiJzaWduSW5XaXRoUGhvbmVOdW1iZXIiLGo6W3hsKCJwaG9uZU51bWJlciIpLFdsKCldfSxYYzp7bmFtZToic2lnbkluV2l0aFBvcHVwIixqOltWbCgpXX0sWWM6e25hbWU6InNpZ25JbldpdGhSZWRpcmVjdCIsajpbVmwoKV19LGRkOntuYW1lOiJ1cGRhdGVDdXJyZW50VXNlciIsajpbSGwoe25hbWU6InVzZXIiLEs6ImFuIGluc3RhbmNlIG9mIEZpcmViYXNlIFVzZXIiLG9wdGlvbmFsOiExLE06ZnVuY3Rpb24odCl7cmV0dXJuISEodCYmdCBpbnN0YW5jZW9mIGhoKX19LFVsKCksInVzZXIiKV19LEFiOntuYW1lOiJzaWduT3V0IixqOltdfSx0b0pTT046e25hbWU6InRvSlNPTiIsajpbeGwobnVsbCwhMCldfSxmZDp7bmFtZToidXNlRGV2aWNlTGFuZ3VhZ2UiLGo6W119LGdkOntuYW1lOiJ1c2VFbXVsYXRvciIsajpbeGwoInVybCIpLE1sKCJvcHRpb25zIiwhMCldfSxqZDp7bmFtZToidmVyaWZ5UGFzc3dvcmRSZXNldENvZGUiLGo6W3hsKCJjb2RlIildfX0pLHpsKFhoLnByb3RvdHlwZSx7bGM6e25hbWU6Imxhbmd1YWdlQ29kZSIsa2I6SGwoeGwoKSxVbCgpLCJsYW5ndWFnZUNvZGUiKX0sdGk6e25hbWU6InRlbmFudElkIixrYjpIbCh4bCgpLFVsKCksInRlbmFudElkIil9fSksKFhoLlBlcnNpc3RlbmNlPUt1KS5MT0NBTD0ibG9jYWwiLFhoLlBlcnNpc3RlbmNlLlNFU1NJT049InNlc3Npb24iLFhoLlBlcnNpc3RlbmNlLk5PTkU9Im5vbmUiLEdsKGhoLnByb3RvdHlwZSx7ZGVsZXRlOntuYW1lOiJkZWxldGUiLGo6W119LG9jOntuYW1lOiJnZXRJZFRva2VuUmVzdWx0IixqOltMbCgib3B0X2ZvcmNlUmVmcmVzaCIsITApXX0sSTp7bmFtZToiZ2V0SWRUb2tlbiIsajpbTGwoIm9wdF9mb3JjZVJlZnJlc2giLCEwKV19LENjOntuYW1lOiJsaW5rQW5kUmV0cmlldmVEYXRhV2l0aENyZWRlbnRpYWwiLGo6W2psKCldfSxxYjp7bmFtZToibGlua1dpdGhDcmVkZW50aWFsIixqOltqbCgpXX0sRGM6e25hbWU6ImxpbmtXaXRoUGhvbmVOdW1iZXIiLGo6W3hsKCJwaG9uZU51bWJlciIpLFdsKCldfSxFYzp7bmFtZToibGlua1dpdGhQb3B1cCIsajpbVmwoKV19LEZjOntuYW1lOiJsaW5rV2l0aFJlZGlyZWN0IixqOltWbCgpXX0sTGM6e25hbWU6InJlYXV0aGVudGljYXRlQW5kUmV0cmlldmVEYXRhV2l0aENyZWRlbnRpYWwiLGo6W2psKCldfSx0Yjp7bmFtZToicmVhdXRoZW50aWNhdGVXaXRoQ3JlZGVudGlhbCIsajpbamwoKV19LE1jOntuYW1lOiJyZWF1dGhlbnRpY2F0ZVdpdGhQaG9uZU51bWJlciIsajpbeGwoInBob25lTnVtYmVyIiksV2woKV19LE5jOntuYW1lOiJyZWF1dGhlbnRpY2F0ZVdpdGhQb3B1cCIsajpbVmwoKV19LE9jOntuYW1lOiJyZWF1dGhlbnRpY2F0ZVdpdGhSZWRpcmVjdCIsajpbVmwoKV19LHJlbG9hZDp7bmFtZToicmVsb2FkIixqOltdfSx1Yjp7bmFtZToic2VuZEVtYWlsVmVyaWZpY2F0aW9uIixqOltIbChNbCgib3B0X2FjdGlvbkNvZGVTZXR0aW5ncyIsITApLFVsKG51bGwsITApLCJvcHRfYWN0aW9uQ29kZVNldHRpbmdzIiwhMCldfSx0b0pTT046e25hbWU6InRvSlNPTiIsajpbeGwobnVsbCwhMCldfSxjZDp7bmFtZToidW5saW5rIixqOlt4bCgicHJvdmlkZXIiKV19LEJiOntuYW1lOiJ1cGRhdGVFbWFpbCIsajpbeGwoImVtYWlsIildfSxDYjp7bmFtZToidXBkYXRlUGFzc3dvcmQiLGo6W3hsKCJwYXNzd29yZCIpXX0sZWQ6e25hbWU6InVwZGF0ZVBob25lTnVtYmVyIixqOltqbCgicGhvbmUiKV19LERiOntuYW1lOiJ1cGRhdGVQcm9maWxlIixqOltNbCgicHJvZmlsZSIpXX0sRWI6e25hbWU6InZlcmlmeUJlZm9yZVVwZGF0ZUVtYWlsIixqOlt4bCgiZW1haWwiKSxIbChNbCgib3B0X2FjdGlvbkNvZGVTZXR0aW5ncyIsITApLFVsKG51bGwsITApLCJvcHRfYWN0aW9uQ29kZVNldHRpbmdzIiwhMCldfX0pLEdsKGhsLnByb3RvdHlwZSx7ZXhlY3V0ZTp7bmFtZToiZXhlY3V0ZSJ9LHJlbmRlcjp7bmFtZToicmVuZGVyIn0scmVzZXQ6e25hbWU6InJlc2V0In0sZ2V0UmVzcG9uc2U6e25hbWU6ImdldFJlc3BvbnNlIn19KSxHbChjbC5wcm90b3R5cGUse2V4ZWN1dGU6e25hbWU6ImV4ZWN1dGUifSxyZW5kZXI6e25hbWU6InJlbmRlciJ9LHJlc2V0OntuYW1lOiJyZXNldCJ9LGdldFJlc3BvbnNlOntuYW1lOiJnZXRSZXNwb25zZSJ9fSksR2woZmUucHJvdG90eXBlLHtvYTp7bmFtZToiZmluYWxseSJ9LG86e25hbWU6ImNhdGNoIn0sdGhlbjp7bmFtZToidGhlbiJ9fSksemwoVmMucHJvdG90eXBlLHthcHBWZXJpZmljYXRpb25EaXNhYmxlZDp7bmFtZToiYXBwVmVyaWZpY2F0aW9uRGlzYWJsZWRGb3JUZXN0aW5nIixrYjpMbCgiYXBwVmVyaWZpY2F0aW9uRGlzYWJsZWRGb3JUZXN0aW5nIil9fSksR2woQmMucHJvdG90eXBlLHtjb25maXJtOntuYW1lOiJjb25maXJtIixqOlt4bCgidmVyaWZpY2F0aW9uQ29kZSIpXX19KSxRbCgkaSwiZnJvbUpTT04iLGZ1bmN0aW9uKHQpe3Q9InN0cmluZyI9PXR5cGVvZiB0P0pTT04ucGFyc2UodCk6dDtmb3IodmFyIGUsbj1bb28sYm8sRW8sbm9dLHI9MDtyPG4ubGVuZ3RoO3IrKylpZihlPW5bcl0odCkpcmV0dXJuIGU7cmV0dXJuIG51bGx9LFtIbCh4bCgpLE1sKCksImpzb24iKV0pLFFsKHdvLCJjcmVkZW50aWFsIixmdW5jdGlvbih0LGUpe3JldHVybiBuZXcgbW8odCxlKX0sW3hsKCJlbWFpbCIpLHhsKCJwYXNzd29yZCIpXSksR2wobW8ucHJvdG90eXBlLHt3OntuYW1lOiJ0b0pTT04iLGo6W3hsKG51bGwsITApXX19KSxHbChjby5wcm90b3R5cGUse0NhOntuYW1lOiJhZGRTY29wZSIsajpbeGwoInNjb3BlIildfSxLYTp7bmFtZToic2V0Q3VzdG9tUGFyYW1ldGVycyIsajpbTWwoImN1c3RvbU9BdXRoUGFyYW1ldGVycyIpXX19KSxRbChjbywiY3JlZGVudGlhbCIsaG8sW0hsKHhsKCksTWwoKSwidG9rZW4iKV0pLFFsKHdvLCJjcmVkZW50aWFsV2l0aExpbmsiLF9vLFt4bCgiZW1haWwiKSx4bCgiZW1haWxMaW5rIildKSxHbChsby5wcm90b3R5cGUse0NhOntuYW1lOiJhZGRTY29wZSIsajpbeGwoInNjb3BlIildfSxLYTp7bmFtZToic2V0Q3VzdG9tUGFyYW1ldGVycyIsajpbTWwoImN1c3RvbU9BdXRoUGFyYW1ldGVycyIpXX19KSxRbChsbywiY3JlZGVudGlhbCIsZm8sW0hsKHhsKCksTWwoKSwidG9rZW4iKV0pLEdsKHBvLnByb3RvdHlwZSx7Q2E6e25hbWU6ImFkZFNjb3BlIixqOlt4bCgic2NvcGUiKV19LEthOntuYW1lOiJzZXRDdXN0b21QYXJhbWV0ZXJzIixqOltNbCgiY3VzdG9tT0F1dGhQYXJhbWV0ZXJzIildfX0pLFFsKHBvLCJjcmVkZW50aWFsIix2byxbSGwoeGwoKSxIbChNbCgpLFVsKCkpLCJpZFRva2VuIiksSGwoeGwoKSxVbCgpLCJhY2Nlc3NUb2tlbiIsITApXSksR2woZ28ucHJvdG90eXBlLHtLYTp7bmFtZToic2V0Q3VzdG9tUGFyYW1ldGVycyIsajpbTWwoImN1c3RvbU9BdXRoUGFyYW1ldGVycyIpXX19KSxRbChnbywiY3JlZGVudGlhbCIseW8sW0hsKHhsKCksTWwoKSwidG9rZW4iKSx4bCgic2VjcmV0IiwhMCldKSxHbCh1by5wcm90b3R5cGUse0NhOntuYW1lOiJhZGRTY29wZSIsajpbeGwoInNjb3BlIildfSxjcmVkZW50aWFsOntuYW1lOiJjcmVkZW50aWFsIixqOltIbCh4bCgpLEhsKE1sKCksVWwoKSksIm9wdGlvbnNPcklkVG9rZW4iKSxIbCh4bCgpLFVsKCksImFjY2Vzc1Rva2VuIiwhMCldfSxLYTp7bmFtZToic2V0Q3VzdG9tUGFyYW1ldGVycyIsajpbTWwoImN1c3RvbU9BdXRoUGFyYW1ldGVycyIpXX19KSxHbChyby5wcm90b3R5cGUse3c6e25hbWU6InRvSlNPTiIsajpbeGwobnVsbCwhMCldfX0pLEdsKHRvLnByb3RvdHlwZSx7dzp7bmFtZToidG9KU09OIixqOlt4bChudWxsLCEwKV19fSksUWwoQ28sImNyZWRlbnRpYWwiLE5vLFt4bCgidmVyaWZpY2F0aW9uSWQiKSx4bCgidmVyaWZpY2F0aW9uQ29kZSIpXSksR2woQ28ucHJvdG90eXBlLHtmYjp7bmFtZToidmVyaWZ5UGhvbmVOdW1iZXIiLGo6W0hsKHhsKCkse25hbWU6InBob25lSW5mb09wdGlvbnMiLEs6InZhbGlkIHBob25lIGluZm8gb3B0aW9ucyIsb3B0aW9uYWw6ITEsTTpmdW5jdGlvbih0KXtyZXR1cm4hIXQmJih0LnNlc3Npb24mJnQucGhvbmVOdW1iZXI/QmwodC5zZXNzaW9uLFhpKSYmInN0cmluZyI9PXR5cGVvZiB0LnBob25lTnVtYmVyOnQuc2Vzc2lvbiYmdC5tdWx0aUZhY3RvckhpbnQ/QmwodC5zZXNzaW9uLEppKSYmS2wodC5tdWx0aUZhY3RvckhpbnQpOnQuc2Vzc2lvbiYmdC5tdWx0aUZhY3RvclVpZD9CbCh0LnNlc3Npb24sSmkpJiYic3RyaW5nIj09dHlwZW9mIHQubXVsdGlGYWN0b3JVaWQ6ISF0LnBob25lTnVtYmVyJiYic3RyaW5nIj09dHlwZW9mIHQucGhvbmVOdW1iZXIpfX0sInBob25lSW5mb09wdGlvbnMiKSxXbCgpXX19KSxHbChUby5wcm90b3R5cGUse3c6e25hbWU6InRvSlNPTiIsajpbeGwobnVsbCwhMCldfX0pLEdsKEkucHJvdG90eXBlLHt0b0pTT046e25hbWU6InRvSlNPTiIsajpbeGwobnVsbCwhMCldfX0pLEdsKE1vLnByb3RvdHlwZSx7dG9KU09OOntuYW1lOiJ0b0pTT04iLGo6W3hsKG51bGwsITApXX19KSxHbChMby5wcm90b3R5cGUse3RvSlNPTjp7bmFtZToidG9KU09OIixqOlt4bChudWxsLCEwKV19fSksR2woUWMucHJvdG90eXBlLHt0b0pTT046e25hbWU6InRvSlNPTiIsajpbeGwobnVsbCwhMCldfX0pLEdsKEhjLnByb3RvdHlwZSx7UmM6e25hbWU6InJlc29sdmVTaWduSW4iLGo6W3FsKCldfX0pLEdsKHRoLnByb3RvdHlwZSx7UmI6e25hbWU6ImdldFNlc3Npb24iLGo6W119LGZjOntuYW1lOiJlbnJvbGwiLGo6W3FsKCkseGwoImRpc3BsYXlOYW1lIiwhMCldfSxiZDp7bmFtZToidW5lbnJvbGwiLGo6W0hsKHtuYW1lOiJtdWx0aUZhY3RvckluZm8iLEs6ImEgdmFsaWQgbXVsdGlGYWN0b3JJbmZvIixvcHRpb25hbDohMSxNOktsfSx4bCgpLCJtdWx0aUZhY3RvckluZm9JZGVudGlmaWVyIildfX0pLEdsKFBsLnByb3RvdHlwZSx7Y2xlYXI6e25hbWU6ImNsZWFyIixqOltdfSxyZW5kZXI6e25hbWU6InJlbmRlciIsajpbXX0sdmVyaWZ5OntuYW1lOiJ2ZXJpZnkiLGo6W119fSksUWwoaGksInBhcnNlTGluayIsbWksW3hsKCJsaW5rIildKSxRbChnbCwiYXNzZXJ0aW9uIixmdW5jdGlvbih0KXtyZXR1cm4gbmV3ICRjKHQpfSxbamwoInBob25lIildKSxmdW5jdGlvbigpe2lmKHZvaWQgMD09PVhsfHwhWGwuSU5URVJOQUx8fCFYbC5JTlRFUk5BTC5yZWdpc3RlckNvbXBvbmVudCl0aHJvdyBFcnJvcigiQ2Fubm90IGZpbmQgdGhlIGZpcmViYXNlIG5hbWVzcGFjZTsgYmUgc3VyZSB0byBpbmNsdWRlIGZpcmViYXNlLWFwcC5qcyBiZWZvcmUgdGhpcyBsaWJyYXJ5LiIpO3ZhciB0PXtBY3Rpb25Db2RlSW5mbzp7T3BlcmF0aW9uOntFTUFJTF9TSUdOSU46JHIsUEFTU1dPUkRfUkVTRVQ6IlBBU1NXT1JEX1JFU0VUIixSRUNPVkVSX0VNQUlMOiJSRUNPVkVSX0VNQUlMIixSRVZFUlRfU0VDT05EX0ZBQ1RPUl9BRERJVElPTjpKcixWRVJJRllfQU5EX0NIQU5HRV9FTUFJTDpacixWRVJJRllfRU1BSUw6IlZFUklGWV9FTUFJTCJ9fSxBdXRoOlhoLEF1dGhDcmVkZW50aWFsOiRpLEVycm9yOkl9O1FsKHQsIkVtYWlsQXV0aFByb3ZpZGVyIix3byxbXSksUWwodCwiRmFjZWJvb2tBdXRoUHJvdmlkZXIiLGNvLFtdKSxRbCh0LCJHaXRodWJBdXRoUHJvdmlkZXIiLGxvLFtdKSxRbCh0LCJHb29nbGVBdXRoUHJvdmlkZXIiLHBvLFtdKSxRbCh0LCJUd2l0dGVyQXV0aFByb3ZpZGVyIixnbyxbXSksUWwodCwiT0F1dGhQcm92aWRlciIsdW8sW3hsKCJwcm92aWRlcklkIildKSxRbCh0LCJTQU1MQXV0aFByb3ZpZGVyIixhbyxbeGwoInByb3ZpZGVySWQiKV0pLFFsKHQsIlBob25lQXV0aFByb3ZpZGVyIixDbyxbe25hbWU6ImF1dGgiLEs6ImFuIGluc3RhbmNlIG9mIEZpcmViYXNlIEF1dGgiLG9wdGlvbmFsOiEwLE06ZnVuY3Rpb24odCl7cmV0dXJuISEodCYmdCBpbnN0YW5jZW9mIFhoKX19XSksUWwodCwiUmVjYXB0Y2hhVmVyaWZpZXIiLFBsLFtIbCh4bCgpLHtuYW1lOiIiLEs6ImFuIEhUTUwgZWxlbWVudCIsb3B0aW9uYWw6ITEsTTpmdW5jdGlvbih0KXtyZXR1cm4hISh0JiZ0IGluc3RhbmNlb2YgRWxlbWVudCl9fSwicmVjYXB0Y2hhQ29udGFpbmVyIiksTWwoInJlY2FwdGNoYVBhcmFtZXRlcnMiLCEwKSx7bmFtZToiYXBwIixLOiJhbiBpbnN0YW5jZSBvZiBGaXJlYmFzZSBBcHAiLG9wdGlvbmFsOiEwLE06ZnVuY3Rpb24odCl7cmV0dXJuISEodCYmdCBpbnN0YW5jZW9mIFhsLmFwcC5BcHApfX1dKSxRbCh0LCJBY3Rpb25Db2RlVVJMIixoaSxbXSksUWwodCwiUGhvbmVNdWx0aUZhY3RvckdlbmVyYXRvciIsZ2wsW10pLFhsLklOVEVSTkFMLnJlZ2lzdGVyQ29tcG9uZW50KHtuYW1lOiJhdXRoIixpbnN0YW5jZUZhY3Rvcnk6ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBYaCh0PXQuZ2V0UHJvdmlkZXIoImFwcCIpLmdldEltbWVkaWF0ZSgpKX0sbXVsdGlwbGVJbnN0YW5jZXM6ITEsc2VydmljZVByb3BzOnQsaW5zdGFudGlhdGlvbk1vZGU6IkxBWlkiLHR5cGU6IlBVQkxJQyJ9KSxYbC5JTlRFUk5BTC5yZWdpc3RlckNvbXBvbmVudCh7bmFtZToiYXV0aC1pbnRlcm5hbCIsaW5zdGFuY2VGYWN0b3J5OmZ1bmN0aW9uKHQpe3JldHVybntnZXRVaWQ6bSgodD10LmdldFByb3ZpZGVyKCJhdXRoIikuZ2V0SW1tZWRpYXRlKCkpLmdldFVpZCx0KSxnZXRUb2tlbjptKHQubmMsdCksYWRkQXV0aFRva2VuTGlzdGVuZXI6bSh0LmNjLHQpLHJlbW92ZUF1dGhUb2tlbkxpc3RlbmVyOm0odC5QYyx0KX19LG11bHRpcGxlSW5zdGFuY2VzOiExLGluc3RhbnRpYXRpb25Nb2RlOiJMQVpZIix0eXBlOiJQUklWQVRFIn0pLFhsLnJlZ2lzdGVyVmVyc2lvbigiQGZpcmViYXNlL2F1dGgiLCIwLjE2LjQiKSxYbC5JTlRFUk5BTC5leHRlbmROYW1lc3BhY2Uoe1VzZXI6aGh9KX0oKX0uYXBwbHkoInVuZGVmaW5lZCIhPXR5cGVvZiBnbG9iYWw/Z2xvYmFsOiJ1bmRlZmluZWQiIT10eXBlb2Ygc2VsZj9zZWxmOiJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93P3dpbmRvdzp7fSk7dmFyIFBzPShPcy5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKHQsZSl7bnVsbD09ZT90aGlzLmRvbVN0b3JhZ2VfLnJlbW92ZUl0ZW0odGhpcy5wcmVmaXhlZE5hbWVfKHQpKTp0aGlzLmRvbVN0b3JhZ2VfLnNldEl0ZW0odGhpcy5wcmVmaXhlZE5hbWVfKHQpLFJvKGUpKX0sT3MucHJvdG90eXBlLmdldD1mdW5jdGlvbih0KXt0PXRoaXMuZG9tU3RvcmFnZV8uZ2V0SXRlbSh0aGlzLnByZWZpeGVkTmFtZV8odCkpO3JldHVybiBudWxsPT10P251bGw6a28odCl9LE9zLnByb3RvdHlwZS5yZW1vdmU9ZnVuY3Rpb24odCl7dGhpcy5kb21TdG9yYWdlXy5yZW1vdmVJdGVtKHRoaXMucHJlZml4ZWROYW1lXyh0KSl9LE9zLnByb3RvdHlwZS5wcmVmaXhlZE5hbWVfPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnByZWZpeF8rdH0sT3MucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZG9tU3RvcmFnZV8udG9TdHJpbmcoKX0sT3MpO2Z1bmN0aW9uIE9zKHQpe3RoaXMuZG9tU3RvcmFnZV89dCx0aGlzLnByZWZpeF89ImZpcmViYXNlOiJ9dmFyIERzPSh4cy5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKHQsZSl7bnVsbD09ZT9kZWxldGUgdGhpcy5jYWNoZV9bdF06dGhpcy5jYWNoZV9bdF09ZX0seHMucHJvdG90eXBlLmdldD1mdW5jdGlvbih0KXtyZXR1cm4gT28odGhpcy5jYWNoZV8sdCk/dGhpcy5jYWNoZV9bdF06bnVsbH0seHMucHJvdG90eXBlLnJlbW92ZT1mdW5jdGlvbih0KXtkZWxldGUgdGhpcy5jYWNoZV9bdF19LHhzKTtmdW5jdGlvbiB4cygpe3RoaXMuY2FjaGVfPXt9LHRoaXMuaXNJbk1lbW9yeVN0b3JhZ2U9ITB9ZnVuY3Rpb24gTHModCl7dmFyIGU9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPVtdLG49MCxyPTA7cjx0Lmxlbmd0aDtyKyspe3ZhciBpLG89dC5jaGFyQ29kZUF0KHIpOzU1Mjk2PD1vJiZvPD01NjMxOSYmKGk9by01NTI5NixzbygrK3I8dC5sZW5ndGgsIlN1cnJvZ2F0ZSBwYWlyIG1pc3NpbmcgdHJhaWwgc3Vycm9nYXRlLiIpLG89NjU1MzYrKGk8PDEwKSsodC5jaGFyQ29kZUF0KHIpLTU2MzIwKSksbzwxMjg/ZVtuKytdPW86KG88MjA0OD9lW24rK109bz4+NnwxOTI6KG88NjU1MzY/ZVtuKytdPW8+PjEyfDIyNDooZVtuKytdPW8+PjE4fDI0MCxlW24rK109bz4+MTImNjN8MTI4KSxlW24rK109bz4+NiY2M3wxMjgpLGVbbisrXT02MyZvfDEyOCl9cmV0dXJuIGV9KHQpO3JldHVybih0PW5ldyBGbykudXBkYXRlKGUpLHQ9dC5kaWdlc3QoKSx1by5lbmNvZGVCeXRlQXJyYXkodCl9ZnVuY3Rpb24gTXModCxlKXtzbyghZXx8ITA9PT10fHwhMT09PXQsIkNhbid0IHR1cm4gb24gY3VzdG9tIGxvZ2dlcnMgcGVyc2lzdGVudGx5LiIpLCEwPT09dD8oSHMubG9nTGV2ZWw9YXMuVkVSQk9TRSxRcz1Icy5sb2cuYmluZChIcyksZSYmV3Muc2V0KCJsb2dnaW5nX2VuYWJsZWQiLCEwKSk6ImZ1bmN0aW9uIj09dHlwZW9mIHQ/UXM9dDooUXM9bnVsbCxXcy5yZW1vdmUoImxvZ2dpbmdfZW5hYmxlZCIpKX1mdW5jdGlvbiBGcygpe2Zvcih2YXIgdD1bXSxlPTA7ZTxhcmd1bWVudHMubGVuZ3RoO2UrKyl0W2VdPWFyZ3VtZW50c1tlXTt2YXIgbj0iRklSRUJBU0UgSU5URVJOQUwgRVJST1I6ICIrenMuYXBwbHkodm9pZCAwLG5vKFtdLGVvKHQpKSk7SHMuZXJyb3Iobil9ZnVuY3Rpb24gVXModCl7cmV0dXJuIm51bWJlciI9PXR5cGVvZiB0JiYodCE9dHx8dD09PU51bWJlci5QT1NJVElWRV9JTkZJTklUWXx8dD09PU51bWJlci5ORUdBVElWRV9JTkZJTklUWSl9ZnVuY3Rpb24ganModCxlKXtyZXR1cm4gdD09PWU/MDp0PGU/LTE6MX1mdW5jdGlvbiBxcyh0LGUpe2lmKGUmJnQgaW4gZSlyZXR1cm4gZVt0XTt0aHJvdyBuZXcgRXJyb3IoIk1pc3NpbmcgcmVxdWlyZWQga2V5ICgiK3QrIikgaW4gb2JqZWN0OiAiK1JvKGUpKX1mdW5jdGlvbiBWcyh0LGUpe3ZhciBuPXQubGVuZ3RoO2lmKG48PWUpcmV0dXJuW3RdO2Zvcih2YXIgcj1bXSxpPTA7aTxuO2krPWUpbjxpK2U/ci5wdXNoKHQuc3Vic3RyaW5nKGksbikpOnIucHVzaCh0LnN1YnN0cmluZyhpLGkrZSkpO3JldHVybiByfXZhciBCcyxTbj1mdW5jdGlvbih0KXt0cnl7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3cmJnZvaWQgMCE9PXdpbmRvd1t0XSl7dmFyIGU9d2luZG93W3RdO3JldHVybiBlLnNldEl0ZW0oImZpcmViYXNlOnNlbnRpbmVsIiwiY2FjaGUiKSxlLnJlbW92ZUl0ZW0oImZpcmViYXNlOnNlbnRpbmVsIiksbmV3IFBzKGUpfX1jYXRjaCh0KXt9cmV0dXJuIG5ldyBEc30sS3M9U24oImxvY2FsU3RvcmFnZSIpLFdzPVNuKCJzZXNzaW9uU3RvcmFnZSIpLEhzPW5ldyBwcygiQGZpcmViYXNlL2RhdGFiYXNlIiksR3M9KEJzPTEsZnVuY3Rpb24oKXtyZXR1cm4gQnMrK30pLHpzPWZ1bmN0aW9uKCl7Zm9yKHZhciB0PVtdLGU9MDtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXRbZV09YXJndW1lbnRzW2VdO2Zvcih2YXIgbj0iIixyPTA7cjx0Lmxlbmd0aDtyKyspe3ZhciBpPXRbcl07QXJyYXkuaXNBcnJheShpKXx8aSYmIm9iamVjdCI9PXR5cGVvZiBpJiYibnVtYmVyIj09dHlwZW9mIGkubGVuZ3RoP24rPXpzLmFwcGx5KG51bGwsaSk6bis9Im9iamVjdCI9PXR5cGVvZiBpP1JvKGkpOmksbis9IiAifXJldHVybiBufSxRcz1udWxsLFlzPSEwLFhzPWZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9W10sbj0wO248YXJndW1lbnRzLmxlbmd0aDtuKyspZVtuXT1hcmd1bWVudHNbbl07ITA9PT1ZcyYmKFlzPSExLG51bGw9PT1RcyYmITA9PT1Xcy5nZXQoImxvZ2dpbmdfZW5hYmxlZCIpJiZNcyghMCkpLFFzJiYodD16cy5hcHBseShudWxsLGUpLFFzKHQpKX0sSnM9ZnVuY3Rpb24obil7cmV0dXJuIGZ1bmN0aW9uKCl7Zm9yKHZhciB0PVtdLGU9MDtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXRbZV09YXJndW1lbnRzW2VdO1hzLmFwcGx5KHZvaWQgMCxubyhbbl0sZW8odCkpKX19LCRzPWZ1bmN0aW9uKCl7Zm9yKHZhciB0PVtdLGU9MDtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXRbZV09YXJndW1lbnRzW2VdO3ZhciBuPSJGSVJFQkFTRSBGQVRBTCBFUlJPUjogIit6cy5hcHBseSh2b2lkIDAsbm8oW10sZW8odCkpKTt0aHJvdyBIcy5lcnJvcihuKSxuZXcgRXJyb3Iobil9LFpzPWZ1bmN0aW9uKCl7Zm9yKHZhciB0PVtdLGU9MDtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXRbZV09YXJndW1lbnRzW2VdO3ZhciBuPSJGSVJFQkFTRSBXQVJOSU5HOiAiK3pzLmFwcGx5KHZvaWQgMCxubyhbXSxlbyh0KSkpO0hzLndhcm4obil9LHRhPSJbTUlOX05BTUVdIixlYT0iW01BWF9OQU1FXSIsbmE9ZnVuY3Rpb24odCxlKXtpZih0PT09ZSlyZXR1cm4gMDtpZih0PT09dGF8fGU9PT1lYSlyZXR1cm4tMTtpZihlPT09dGF8fHQ9PT1lYSlyZXR1cm4gMTt2YXIgbj1sYSh0KSxyPWxhKGUpO3JldHVybiBudWxsIT09bj9udWxsIT09cj9uLXI9PTA/dC5sZW5ndGgtZS5sZW5ndGg6bi1yOi0xOm51bGw9PT1yJiZ0PGU/LTE6MX0scmE9ZnVuY3Rpb24odCl7aWYoIm9iamVjdCIhPXR5cGVvZiB0fHxudWxsPT09dClyZXR1cm4gUm8odCk7dmFyIGUsbj1bXTtmb3IoZSBpbiB0KW4ucHVzaChlKTtuLnNvcnQoKTtmb3IodmFyIHI9InsiLGk9MDtpPG4ubGVuZ3RoO2krKykwIT09aSYmKHIrPSIsIikscis9Um8obltpXSkscis9IjoiLHIrPXJhKHRbbltpXV0pO3JldHVybiByKz0ifSJ9O2Z1bmN0aW9uIGlhKHQsZSl7Zm9yKHZhciBuIGluIHQpdC5oYXNPd25Qcm9wZXJ0eShuKSYmZShuLHRbbl0pfWZ1bmN0aW9uIG9hKHQpe3ZhciBlLG4scixpO3NvKCFVcyh0KSwiSW52YWxpZCBKU09OIG51bWJlciIpLDA9PT10P2U9MS90PT0tMS8ocj1uPTApPzE6MDooZT10PDAscj0odD1NYXRoLmFicyh0KSk+PU1hdGgucG93KDIsLTEwMjIpPyhuPShpPU1hdGgubWluKE1hdGguZmxvb3IoTWF0aC5sb2codCkvTWF0aC5MTjIpLDEwMjMpKSsxMDIzLE1hdGgucm91bmQodCpNYXRoLnBvdygyLDUyLWkpLU1hdGgucG93KDIsNTIpKSk6KG49MCxNYXRoLnJvdW5kKHQvTWF0aC5wb3coMiwtMTA3NCkpKSk7Zm9yKHZhciBvPVtdLHM9NTI7czstLXMpby5wdXNoKHIlMj8xOjApLHI9TWF0aC5mbG9vcihyLzIpO2ZvcihzPTExO3M7LS1zKW8ucHVzaChuJTI/MTowKSxuPU1hdGguZmxvb3Iobi8yKTtvLnB1c2goZT8xOjApLG8ucmV2ZXJzZSgpO3ZhciBhPW8uam9pbigiIiksdT0iIjtmb3Iocz0wO3M8NjQ7cys9OCl7dmFyIGM9cGFyc2VJbnQoYS5zdWJzdHIocyw4KSwyKS50b1N0cmluZygxNik7dSs9Yz0xPT09Yy5sZW5ndGg/IjAiK2M6Y31yZXR1cm4gdS50b0xvd2VyQ2FzZSgpfWZ1bmN0aW9uIHNhKHQsZSl7cmV0dXJuIm9iamVjdCI9PXR5cGVvZihlPXNldFRpbWVvdXQodCxlKSkmJmUudW5yZWYmJmUudW5yZWYoKSxlfXZhciBhYT1mdW5jdGlvbih0LGUpe3ZhciBuPSJVbmtub3duIEVycm9yIjsidG9vX2JpZyI9PT10P249IlRoZSBkYXRhIHJlcXVlc3RlZCBleGNlZWRzIHRoZSBtYXhpbXVtIHNpemUgdGhhdCBjYW4gYmUgYWNjZXNzZWQgd2l0aCBhIHNpbmdsZSByZXF1ZXN0LiI6InBlcm1pc3Npb25fZGVuaWVkIj09PXQ/bj0iQ2xpZW50IGRvZXNuJ3QgaGF2ZSBwZXJtaXNzaW9uIHRvIGFjY2VzcyB0aGUgZGVzaXJlZCBkYXRhLiI6InVuYXZhaWxhYmxlIj09PXQmJihuPSJUaGUgc2VydmljZSBpcyB1bmF2YWlsYWJsZSIpO249bmV3IEVycm9yKHQrIiBhdCAiK2UucGF0aC50b1N0cmluZygpKyI6ICIrbik7cmV0dXJuIG4uY29kZT10LnRvVXBwZXJDYXNlKCksbn0sdWE9bmV3IFJlZ0V4cCgiXi0/KDAqKVxcZHsxLDEwfSQiKSxjYT0tMjE0NzQ4MzY0OCxoYT0yMTQ3NDgzNjQ3LGxhPWZ1bmN0aW9uKHQpe2lmKHVhLnRlc3QodCkpe3Q9TnVtYmVyKHQpO2lmKGNhPD10JiZ0PD1oYSlyZXR1cm4gdH1yZXR1cm4gbnVsbH0sZmE9ZnVuY3Rpb24odCl7dHJ5e3QoKX1jYXRjaChlKXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dmFyIHQ9ZS5zdGFja3x8IiI7dGhyb3cgWnMoIkV4Y2VwdGlvbiB3YXMgdGhyb3duIGJ5IHVzZXIgY2FsbGJhY2suIix0KSxlfSxNYXRoLmZsb29yKDApKX19LHBhPShkYS5wcm90b3R5cGUuZ2V0VG9rZW49ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuYXV0aF8/dGhpcy5hdXRoXy5nZXRUb2tlbih0KS5jYXRjaChmdW5jdGlvbih0KXtyZXR1cm4gdCYmImF1dGgvdG9rZW4tbm90LWluaXRpYWxpemVkIj09PXQuY29kZT8oWHMoIkdvdCBhdXRoL3Rva2VuLW5vdC1pbml0aWFsaXplZCBlcnJvci4gIFRyZWF0aW5nIGFzIG51bGwgdG9rZW4uIiksbnVsbCk6UHJvbWlzZS5yZWplY3QodCl9KTpQcm9taXNlLnJlc29sdmUobnVsbCl9LGRhLnByb3RvdHlwZS5hZGRUb2tlbkNoYW5nZUxpc3RlbmVyPWZ1bmN0aW9uKGUpe3RoaXMuYXV0aF8/dGhpcy5hdXRoXy5hZGRBdXRoVG9rZW5MaXN0ZW5lcihlKTooc2V0VGltZW91dChmdW5jdGlvbigpe3JldHVybiBlKG51bGwpfSwwKSx0aGlzLmF1dGhQcm92aWRlcl8uZ2V0KCkudGhlbihmdW5jdGlvbih0KXtyZXR1cm4gdC5hZGRBdXRoVG9rZW5MaXN0ZW5lcihlKX0pKX0sZGEucHJvdG90eXBlLnJlbW92ZVRva2VuQ2hhbmdlTGlzdGVuZXI9ZnVuY3Rpb24oZSl7dGhpcy5hdXRoUHJvdmlkZXJfLmdldCgpLnRoZW4oZnVuY3Rpb24odCl7cmV0dXJuIHQucmVtb3ZlQXV0aFRva2VuTGlzdGVuZXIoZSl9KX0sZGEucHJvdG90eXBlLm5vdGlmeUZvckludmFsaWRUb2tlbj1mdW5jdGlvbigpe3ZhciB0PSdQcm92aWRlZCBhdXRoZW50aWNhdGlvbiBjcmVkZW50aWFscyBmb3IgdGhlIGFwcCBuYW1lZCAiJyt0aGlzLmFwcF8ubmFtZSsnIiBhcmUgaW52YWxpZC4gVGhpcyB1c3VhbGx5IGluZGljYXRlcyB5b3VyIGFwcCB3YXMgbm90IGluaXRpYWxpemVkIGNvcnJlY3RseS4gJzsiY3JlZGVudGlhbCJpbiB0aGlzLmFwcF8ub3B0aW9ucz90Kz0nTWFrZSBzdXJlIHRoZSAiY3JlZGVudGlhbCIgcHJvcGVydHkgcHJvdmlkZWQgdG8gaW5pdGlhbGl6ZUFwcCgpIGlzIGF1dGhvcml6ZWQgdG8gYWNjZXNzIHRoZSBzcGVjaWZpZWQgImRhdGFiYXNlVVJMIiBhbmQgaXMgZnJvbSB0aGUgY29ycmVjdCBwcm9qZWN0Lic6InNlcnZpY2VBY2NvdW50ImluIHRoaXMuYXBwXy5vcHRpb25zP3QrPSdNYWtlIHN1cmUgdGhlICJzZXJ2aWNlQWNjb3VudCIgcHJvcGVydHkgcHJvdmlkZWQgdG8gaW5pdGlhbGl6ZUFwcCgpIGlzIGF1dGhvcml6ZWQgdG8gYWNjZXNzIHRoZSBzcGVjaWZpZWQgImRhdGFiYXNlVVJMIiBhbmQgaXMgZnJvbSB0aGUgY29ycmVjdCBwcm9qZWN0Lic6dCs9J01ha2Ugc3VyZSB0aGUgImFwaUtleSIgYW5kICJkYXRhYmFzZVVSTCIgcHJvcGVydGllcyBwcm92aWRlZCB0byBpbml0aWFsaXplQXBwKCkgbWF0Y2ggdGhlIHZhbHVlcyBwcm92aWRlZCBmb3IgeW91ciBhcHAgYXQgaHR0cHM6Ly9jb25zb2xlLmZpcmViYXNlLmdvb2dsZS5jb20vLicsWnModCl9LGRhKTtmdW5jdGlvbiBkYSh0LGUpe3ZhciBuPXRoaXM7dGhpcy5hcHBfPXQsdGhpcy5hdXRoUHJvdmlkZXJfPWUsdGhpcy5hdXRoXz1udWxsLHRoaXMuYXV0aF89ZS5nZXRJbW1lZGlhdGUoe29wdGlvbmFsOiEwfSksdGhpcy5hdXRoX3x8ZS5nZXQoKS50aGVuKGZ1bmN0aW9uKHQpe3JldHVybiBuLmF1dGhfPXR9KX12YXIgdmE9KGdhLnByb3RvdHlwZS5nZXRUb2tlbj1mdW5jdGlvbih0KXtyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHthY2Nlc3NUb2tlbjpnYS5FTVVMQVRPUl9BVVRIX1RPS0VOfSl9LGdhLnByb3RvdHlwZS5hZGRUb2tlbkNoYW5nZUxpc3RlbmVyPWZ1bmN0aW9uKHQpe3QoZ2EuRU1VTEFUT1JfQVVUSF9UT0tFTil9LGdhLnByb3RvdHlwZS5yZW1vdmVUb2tlbkNoYW5nZUxpc3RlbmVyPWZ1bmN0aW9uKHQpe30sZ2EucHJvdG90eXBlLm5vdGlmeUZvckludmFsaWRUb2tlbj1mdW5jdGlvbigpe30sZ2EuRU1VTEFUT1JfQVVUSF9UT0tFTj0ib3duZXIiLGdhKTtmdW5jdGlvbiBnYSgpe312YXIgeWE9Lyhjb25zb2xlXC5maXJlYmFzZXxmaXJlYmFzZS1jb25zb2xlLVx3K1wuY29ycHxmaXJlYmFzZVwuY29ycClcLmdvb2dsZVwuY29tLyxtYT0id2Vic29ja2V0IixiYT0ibG9uZ19wb2xsaW5nIix3YT0oX2EucHJvdG90eXBlLmlzQ2FjaGVhYmxlSG9zdD1mdW5jdGlvbigpe3JldHVybiJzLSI9PT10aGlzLmludGVybmFsSG9zdC5zdWJzdHIoMCwyKX0sX2EucHJvdG90eXBlLmlzQ3VzdG9tSG9zdD1mdW5jdGlvbigpe3JldHVybiJmaXJlYmFzZWlvLmNvbSIhPT10aGlzLl9kb21haW4mJiJmaXJlYmFzZWlvLWRlbW8uY29tIiE9PXRoaXMuX2RvbWFpbn0sT2JqZWN0LmRlZmluZVByb3BlcnR5KF9hLnByb3RvdHlwZSwiaG9zdCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9ob3N0fSxzZXQ6ZnVuY3Rpb24odCl7dCE9PXRoaXMuaW50ZXJuYWxIb3N0JiYodGhpcy5pbnRlcm5hbEhvc3Q9dCx0aGlzLmlzQ2FjaGVhYmxlSG9zdCgpJiZLcy5zZXQoImhvc3Q6Iit0aGlzLl9ob3N0LHRoaXMuaW50ZXJuYWxIb3N0KSl9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksX2EucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy50b1VSTFN0cmluZygpO3JldHVybiB0aGlzLnBlcnNpc3RlbmNlS2V5JiYodCs9IjwiK3RoaXMucGVyc2lzdGVuY2VLZXkrIj4iKSx0fSxfYS5wcm90b3R5cGUudG9VUkxTdHJpbmc9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLnNlY3VyZT8iaHR0cHM6Ly8iOiJodHRwOi8vIixlPXRoaXMuaW5jbHVkZU5hbWVzcGFjZUluUXVlcnlQYXJhbXM/Ij9ucz0iK3RoaXMubmFtZXNwYWNlOiIiO3JldHVybiB0K3RoaXMuaG9zdCsiLyIrZX0sX2EpO2Z1bmN0aW9uIF9hKHQsZSxuLHIsaSxvLHMpe3ZvaWQgMD09PWkmJihpPSExKSx2b2lkIDA9PT1vJiYobz0iIiksdm9pZCAwPT09cyYmKHM9ITEpLHRoaXMuc2VjdXJlPWUsdGhpcy5uYW1lc3BhY2U9bix0aGlzLndlYlNvY2tldE9ubHk9cix0aGlzLm5vZGVBZG1pbj1pLHRoaXMucGVyc2lzdGVuY2VLZXk9byx0aGlzLmluY2x1ZGVOYW1lc3BhY2VJblF1ZXJ5UGFyYW1zPXMsdGhpcy5faG9zdD10LnRvTG93ZXJDYXNlKCksdGhpcy5fZG9tYWluPXRoaXMuX2hvc3Quc3Vic3RyKHRoaXMuX2hvc3QuaW5kZXhPZigiLiIpKzEpLHRoaXMuaW50ZXJuYWxIb3N0PUtzLmdldCgiaG9zdDoiK3QpfHx0aGlzLl9ob3N0fWZ1bmN0aW9uIElhKHQsZSxuKXt2YXIgcjtpZihzbygic3RyaW5nIj09dHlwZW9mIGUsInR5cGVvZiB0eXBlIG11c3QgPT0gc3RyaW5nIiksc28oIm9iamVjdCI9PXR5cGVvZiBuLCJ0eXBlb2YgcGFyYW1zIG11c3QgPT0gb2JqZWN0IiksZT09PW1hKXI9KHQuc2VjdXJlPyJ3c3M6Ly8iOiJ3czovLyIpK3QuaW50ZXJuYWxIb3N0KyIvLndzPyI7ZWxzZXtpZihlIT09YmEpdGhyb3cgbmV3IEVycm9yKCJVbmtub3duIGNvbm5lY3Rpb24gdHlwZTogIitlKTtyPSh0LnNlY3VyZT8iaHR0cHM6Ly8iOiJodHRwOi8vIikrdC5pbnRlcm5hbEhvc3QrIi8ubHA/In0oKGU9dCkuaG9zdCE9PWUuaW50ZXJuYWxIb3N0fHxlLmlzQ3VzdG9tSG9zdCgpfHxlLmluY2x1ZGVOYW1lc3BhY2VJblF1ZXJ5UGFyYW1zKSYmKG4ubnM9dC5uYW1lc3BhY2UpO3ZhciBpPVtdO3JldHVybiBpYShuLGZ1bmN0aW9uKHQsZSl7aS5wdXNoKHQrIj0iK2UpfSkscitpLmpvaW4oIiYiKX12YXIgVGE9KEVhLnByb3RvdHlwZS5pbmNyZW1lbnRDb3VudGVyPWZ1bmN0aW9uKHQsZSl7dm9pZCAwPT09ZSYmKGU9MSksT28odGhpcy5jb3VudGVyc18sdCl8fCh0aGlzLmNvdW50ZXJzX1t0XT0wKSx0aGlzLmNvdW50ZXJzX1t0XSs9ZX0sRWEucHJvdG90eXBlLmdldD1mdW5jdGlvbigpe3JldHVybiBjbyh0aGlzLmNvdW50ZXJzXyl9LEVhKTtmdW5jdGlvbiBFYSgpe3RoaXMuY291bnRlcnNfPXt9fXZhciBTYT17fSxDYT17fTtmdW5jdGlvbiBOYSh0KXt0PXQudG9TdHJpbmcoKTtyZXR1cm4gU2FbdF18fChTYVt0XT1uZXcgVGEpLFNhW3RdfXZhciBBYT0oa2EucHJvdG90eXBlLmNsb3NlQWZ0ZXI9ZnVuY3Rpb24odCxlKXt0aGlzLmNsb3NlQWZ0ZXJSZXNwb25zZT10LHRoaXMub25DbG9zZT1lLHRoaXMuY2xvc2VBZnRlclJlc3BvbnNlPHRoaXMuY3VycmVudFJlc3BvbnNlTnVtJiYodGhpcy5vbkNsb3NlKCksdGhpcy5vbkNsb3NlPW51bGwpfSxrYS5wcm90b3R5cGUuaGFuZGxlUmVzcG9uc2U9ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzO3RoaXMucGVuZGluZ1Jlc3BvbnNlc1t0XT1lO2Zvcih2YXIgcj10aGlzO3RoaXMucGVuZGluZ1Jlc3BvbnNlc1t0aGlzLmN1cnJlbnRSZXNwb25zZU51bV07KWlmKCJicmVhayI9PT1mdW5jdGlvbigpe3ZhciBlPXIucGVuZGluZ1Jlc3BvbnNlc1tyLmN1cnJlbnRSZXNwb25zZU51bV07ZGVsZXRlIHIucGVuZGluZ1Jlc3BvbnNlc1tyLmN1cnJlbnRSZXNwb25zZU51bV07Zm9yKHZhciB0PTA7dDxlLmxlbmd0aDsrK3QpIWZ1bmN0aW9uKHQpe2VbdF0mJmZhKGZ1bmN0aW9uKCl7bi5vbk1lc3NhZ2VfKGVbdF0pfSl9KHQpO2lmKHIuY3VycmVudFJlc3BvbnNlTnVtPT09ci5jbG9zZUFmdGVyUmVzcG9uc2UpcmV0dXJuIHIub25DbG9zZSYmKHIub25DbG9zZSgpLHIub25DbG9zZT1udWxsKSwiYnJlYWsiO3IuY3VycmVudFJlc3BvbnNlTnVtKyt9KCkpYnJlYWt9LGthKTtmdW5jdGlvbiBrYSh0KXt0aGlzLm9uTWVzc2FnZV89dCx0aGlzLnBlbmRpbmdSZXNwb25zZXM9W10sdGhpcy5jdXJyZW50UmVzcG9uc2VOdW09MCx0aGlzLmNsb3NlQWZ0ZXJSZXNwb25zZT0tMSx0aGlzLm9uQ2xvc2U9bnVsbH12YXIgUmE9InBMUENvbW1hbmQiLFBhPSJwUlRMUENCIixPYT0oRGEucHJvdG90eXBlLm9wZW49ZnVuY3Rpb24odCxlKXt2YXIgbixyLGkscz10aGlzO3RoaXMuY3VyU2VnbWVudE51bT0wLHRoaXMub25EaXNjb25uZWN0Xz1lLHRoaXMubXlQYWNrZXRPcmRlcmVyPW5ldyBBYSh0KSx0aGlzLmlzQ2xvc2VkXz0hMSx0aGlzLmNvbm5lY3RUaW1lb3V0VGltZXJfPXNldFRpbWVvdXQoZnVuY3Rpb24oKXtzLmxvZ18oIlRpbWVkIG91dCB0cnlpbmcgdG8gY29ubmVjdC4iKSxzLm9uQ2xvc2VkXygpLHMuY29ubmVjdFRpbWVvdXRUaW1lcl89bnVsbH0sTWF0aC5mbG9vcigzZTQpKSxuPWZ1bmN0aW9uKCl7dmFyIHQ7cy5pc0Nsb3NlZF98fChzLnNjcmlwdFRhZ0hvbGRlcj1uZXcgeGEoZnVuY3Rpb24oKXtmb3IodmFyIHQ9W10sZT0wO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspdFtlXT1hcmd1bWVudHNbZV07dmFyIG49ZW8odCw1KSxyPW5bMF0saT1uWzFdLG89blsyXTtuWzNdLG5bNF07aWYocy5pbmNyZW1lbnRJbmNvbWluZ0J5dGVzXyh0KSxzLnNjcmlwdFRhZ0hvbGRlcilpZihzLmNvbm5lY3RUaW1lb3V0VGltZXJfJiYoY2xlYXJUaW1lb3V0KHMuY29ubmVjdFRpbWVvdXRUaW1lcl8pLHMuY29ubmVjdFRpbWVvdXRUaW1lcl89bnVsbCkscy5ldmVyQ29ubmVjdGVkXz0hMCwic3RhcnQiPT09cilzLmlkPWkscy5wYXNzd29yZD1vO2Vsc2V7aWYoImNsb3NlIiE9PXIpdGhyb3cgbmV3IEVycm9yKCJVbnJlY29nbml6ZWQgY29tbWFuZCByZWNlaXZlZDogIityKTtpPyhzLnNjcmlwdFRhZ0hvbGRlci5zZW5kTmV3UG9sbHM9ITEscy5teVBhY2tldE9yZGVyZXIuY2xvc2VBZnRlcihpLGZ1bmN0aW9uKCl7cy5vbkNsb3NlZF8oKX0pKTpzLm9uQ2xvc2VkXygpfX0sZnVuY3Rpb24oKXtmb3IodmFyIHQ9W10sZT0wO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspdFtlXT1hcmd1bWVudHNbZV07dmFyIG49ZW8odCwyKSxyPW5bMF0sbj1uWzFdO3MuaW5jcmVtZW50SW5jb21pbmdCeXRlc18odCkscy5teVBhY2tldE9yZGVyZXIuaGFuZGxlUmVzcG9uc2UocixuKX0sZnVuY3Rpb24oKXtzLm9uQ2xvc2VkXygpfSxzLnVybEZuKSwodD17c3RhcnQ6InQifSkuc2VyPU1hdGguZmxvb3IoMWU4Kk1hdGgucmFuZG9tKCkpLHMuc2NyaXB0VGFnSG9sZGVyLnVuaXF1ZUNhbGxiYWNrSWRlbnRpZmllciYmKHQuY2I9cy5zY3JpcHRUYWdIb2xkZXIudW5pcXVlQ2FsbGJhY2tJZGVudGlmaWVyKSx0LnY9IjUiLHMudHJhbnNwb3J0U2Vzc2lvbklkJiYodC5zPXMudHJhbnNwb3J0U2Vzc2lvbklkKSxzLmxhc3RTZXNzaW9uSWQmJih0LmxzPXMubGFzdFNlc3Npb25JZCkscy5hcHBsaWNhdGlvbklkJiYodC5wPXMuYXBwbGljYXRpb25JZCksInVuZGVmaW5lZCIhPXR5cGVvZiBsb2NhdGlvbiYmbG9jYXRpb24uaG9zdG5hbWUmJnlhLnRlc3QobG9jYXRpb24uaG9zdG5hbWUpJiYodC5yPSJmIiksdD1zLnVybEZuKHQpLHMubG9nXygiQ29ubmVjdGluZyB2aWEgbG9uZy1wb2xsIHRvICIrdCkscy5zY3JpcHRUYWdIb2xkZXIuYWRkVGFnKHQsZnVuY3Rpb24oKXt9KSl9LCJjb21wbGV0ZSI9PT1kb2N1bWVudC5yZWFkeVN0YXRlP24oKToocj0hMSxpPWZ1bmN0aW9uKCl7ZG9jdW1lbnQuYm9keT9yfHwocj0hMCxuKCkpOnNldFRpbWVvdXQoaSxNYXRoLmZsb29yKDEwKSl9LGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXI/KGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIkRPTUNvbnRlbnRMb2FkZWQiLGksITEpLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJsb2FkIixpLCExKSk6ZG9jdW1lbnQuYXR0YWNoRXZlbnQmJihkb2N1bWVudC5hdHRhY2hFdmVudCgib25yZWFkeXN0YXRlY2hhbmdlIixmdW5jdGlvbigpeyJjb21wbGV0ZSI9PT1kb2N1bWVudC5yZWFkeVN0YXRlJiZpKCl9KSx3aW5kb3cuYXR0YWNoRXZlbnQoIm9ubG9hZCIsaSkpKX0sRGEucHJvdG90eXBlLnN0YXJ0PWZ1bmN0aW9uKCl7dGhpcy5zY3JpcHRUYWdIb2xkZXIuc3RhcnRMb25nUG9sbCh0aGlzLmlkLHRoaXMucGFzc3dvcmQpLHRoaXMuYWRkRGlzY29ubmVjdFBpbmdGcmFtZSh0aGlzLmlkLHRoaXMucGFzc3dvcmQpfSxEYS5mb3JjZUFsbG93PWZ1bmN0aW9uKCl7RGEuZm9yY2VBbGxvd189ITB9LERhLmZvcmNlRGlzYWxsb3c9ZnVuY3Rpb24oKXtEYS5mb3JjZURpc2FsbG93Xz0hMH0sRGEuaXNBdmFpbGFibGU9ZnVuY3Rpb24oKXtyZXR1cm4hIURhLmZvcmNlQWxsb3dffHwhKERhLmZvcmNlRGlzYWxsb3dffHwidW5kZWZpbmVkIj09dHlwZW9mIGRvY3VtZW50fHxudWxsPT1kb2N1bWVudC5jcmVhdGVFbGVtZW50fHwib2JqZWN0Ij09dHlwZW9mIHdpbmRvdyYmd2luZG93LmNocm9tZSYmd2luZG93LmNocm9tZS5leHRlbnNpb24mJiEvXmNocm9tZS8udGVzdCh3aW5kb3cubG9jYXRpb24uaHJlZil8fCJvYmplY3QiPT10eXBlb2YgV2luZG93cyYmIm9iamVjdCI9PXR5cGVvZiBXaW5kb3dzLlVJKX0sRGEucHJvdG90eXBlLm1hcmtDb25uZWN0aW9uSGVhbHRoeT1mdW5jdGlvbigpe30sRGEucHJvdG90eXBlLnNodXRkb3duXz1mdW5jdGlvbigpe3RoaXMuaXNDbG9zZWRfPSEwLHRoaXMuc2NyaXB0VGFnSG9sZGVyJiYodGhpcy5zY3JpcHRUYWdIb2xkZXIuY2xvc2UoKSx0aGlzLnNjcmlwdFRhZ0hvbGRlcj1udWxsKSx0aGlzLm15RGlzY29ubkZyYW1lJiYoZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZCh0aGlzLm15RGlzY29ubkZyYW1lKSx0aGlzLm15RGlzY29ubkZyYW1lPW51bGwpLHRoaXMuY29ubmVjdFRpbWVvdXRUaW1lcl8mJihjbGVhclRpbWVvdXQodGhpcy5jb25uZWN0VGltZW91dFRpbWVyXyksdGhpcy5jb25uZWN0VGltZW91dFRpbWVyXz1udWxsKX0sRGEucHJvdG90eXBlLm9uQ2xvc2VkXz1mdW5jdGlvbigpe3RoaXMuaXNDbG9zZWRffHwodGhpcy5sb2dfKCJMb25ncG9sbCBpcyBjbG9zaW5nIGl0c2VsZiIpLHRoaXMuc2h1dGRvd25fKCksdGhpcy5vbkRpc2Nvbm5lY3RfJiYodGhpcy5vbkRpc2Nvbm5lY3RfKHRoaXMuZXZlckNvbm5lY3RlZF8pLHRoaXMub25EaXNjb25uZWN0Xz1udWxsKSl9LERhLnByb3RvdHlwZS5jbG9zZT1mdW5jdGlvbigpe3RoaXMuaXNDbG9zZWRffHwodGhpcy5sb2dfKCJMb25ncG9sbCBpcyBiZWluZyBjbG9zZWQuIiksdGhpcy5zaHV0ZG93bl8oKSl9LERhLnByb3RvdHlwZS5zZW5kPWZ1bmN0aW9uKHQpe3Q9Um8odCk7dGhpcy5ieXRlc1NlbnQrPXQubGVuZ3RoLHRoaXMuc3RhdHNfLmluY3JlbWVudENvdW50ZXIoImJ5dGVzX3NlbnQiLHQubGVuZ3RoKTtmb3IodmFyIHQ9ZnVuY3Rpb24odCl7dD1ybyh0KTtyZXR1cm4gdW8uZW5jb2RlQnl0ZUFycmF5KHQsITApfSh0KSxlPVZzKHQsMTg0MCksbj0wO248ZS5sZW5ndGg7bisrKXRoaXMuc2NyaXB0VGFnSG9sZGVyLmVucXVldWVTZWdtZW50KHRoaXMuY3VyU2VnbWVudE51bSxlLmxlbmd0aCxlW25dKSx0aGlzLmN1clNlZ21lbnROdW0rK30sRGEucHJvdG90eXBlLmFkZERpc2Nvbm5lY3RQaW5nRnJhbWU9ZnVuY3Rpb24odCxlKXt0aGlzLm15RGlzY29ubkZyYW1lPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIpO3ZhciBuPXtkZnJhbWU6InQifTtuLmlkPXQsbi5wdz1lLHRoaXMubXlEaXNjb25uRnJhbWUuc3JjPXRoaXMudXJsRm4obiksdGhpcy5teURpc2Nvbm5GcmFtZS5zdHlsZS5kaXNwbGF5PSJub25lIixkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHRoaXMubXlEaXNjb25uRnJhbWUpfSxEYS5wcm90b3R5cGUuaW5jcmVtZW50SW5jb21pbmdCeXRlc189ZnVuY3Rpb24odCl7dD1Sbyh0KS5sZW5ndGg7dGhpcy5ieXRlc1JlY2VpdmVkKz10LHRoaXMuc3RhdHNfLmluY3JlbWVudENvdW50ZXIoImJ5dGVzX3JlY2VpdmVkIix0KX0sRGEpO2Z1bmN0aW9uIERhKHQsZSxuLHIsaSl7dGhpcy5jb25uSWQ9dCx0aGlzLnJlcG9JbmZvPWUsdGhpcy5hcHBsaWNhdGlvbklkPW4sdGhpcy50cmFuc3BvcnRTZXNzaW9uSWQ9cix0aGlzLmxhc3RTZXNzaW9uSWQ9aSx0aGlzLmJ5dGVzU2VudD0wLHRoaXMuYnl0ZXNSZWNlaXZlZD0wLHRoaXMuZXZlckNvbm5lY3RlZF89ITEsdGhpcy5sb2dfPUpzKHQpLHRoaXMuc3RhdHNfPU5hKGUpLHRoaXMudXJsRm49ZnVuY3Rpb24odCl7cmV0dXJuIElhKGUsYmEsdCl9fXZhciB4YT0oTGEuY3JlYXRlSUZyYW1lXz1mdW5jdGlvbigpe3ZhciBlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIpO2lmKGUuc3R5bGUuZGlzcGxheT0ibm9uZSIsIWRvY3VtZW50LmJvZHkpdGhyb3ciRG9jdW1lbnQgYm9keSBoYXMgbm90IGluaXRpYWxpemVkLiBXYWl0IHRvIGluaXRpYWxpemUgRmlyZWJhc2UgdW50aWwgYWZ0ZXIgdGhlIGRvY3VtZW50IGlzIHJlYWR5LiI7ZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlKTt0cnl7ZS5jb250ZW50V2luZG93LmRvY3VtZW50fHxYcygiTm8gSUUgZG9tYWluIHNldHRpbmcgcmVxdWlyZWQiKX1jYXRjaCh0KXt2YXIgbj1kb2N1bWVudC5kb21haW47ZS5zcmM9ImphdmFzY3JpcHQ6dm9pZCgoZnVuY3Rpb24oKXtkb2N1bWVudC5vcGVuKCk7ZG9jdW1lbnQuZG9tYWluPSciK24rIic7ZG9jdW1lbnQuY2xvc2UoKTt9KSgpKSJ9cmV0dXJuIGUuY29udGVudERvY3VtZW50P2UuZG9jPWUuY29udGVudERvY3VtZW50OmUuY29udGVudFdpbmRvdz9lLmRvYz1lLmNvbnRlbnRXaW5kb3cuZG9jdW1lbnQ6ZS5kb2N1bWVudCYmKGUuZG9jPWUuZG9jdW1lbnQpLGV9LExhLnByb3RvdHlwZS5jbG9zZT1mdW5jdGlvbigpe3ZhciB0PXRoaXM7dGhpcy5hbGl2ZT0hMSx0aGlzLm15SUZyYW1lJiYodGhpcy5teUlGcmFtZS5kb2MuYm9keS5pbm5lckhUTUw9IiIsc2V0VGltZW91dChmdW5jdGlvbigpe251bGwhPT10Lm15SUZyYW1lJiYoZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZCh0Lm15SUZyYW1lKSx0Lm15SUZyYW1lPW51bGwpfSxNYXRoLmZsb29yKDApKSk7dmFyIGU9dGhpcy5vbkRpc2Nvbm5lY3Q7ZSYmKHRoaXMub25EaXNjb25uZWN0PW51bGwsZSgpKX0sTGEucHJvdG90eXBlLnN0YXJ0TG9uZ1BvbGw9ZnVuY3Rpb24odCxlKXtmb3IodGhpcy5teUlEPXQsdGhpcy5teVBXPWUsdGhpcy5hbGl2ZT0hMDt0aGlzLm5ld1JlcXVlc3RfKCk7KTt9LExhLnByb3RvdHlwZS5uZXdSZXF1ZXN0Xz1mdW5jdGlvbigpe2lmKHRoaXMuYWxpdmUmJnRoaXMuc2VuZE5ld1BvbGxzJiZ0aGlzLm91dHN0YW5kaW5nUmVxdWVzdHMuc2l6ZTwoMDx0aGlzLnBlbmRpbmdTZWdzLmxlbmd0aD8yOjEpKXt0aGlzLmN1cnJlbnRTZXJpYWwrKzt2YXIgdD17fTt0LmlkPXRoaXMubXlJRCx0LnB3PXRoaXMubXlQVyx0LnNlcj10aGlzLmN1cnJlbnRTZXJpYWw7Zm9yKHZhciB0PXRoaXMudXJsRm4odCksZT0iIixuPTA7MDx0aGlzLnBlbmRpbmdTZWdzLmxlbmd0aDspe2lmKCEodGhpcy5wZW5kaW5nU2Vnc1swXS5kLmxlbmd0aCszMCtlLmxlbmd0aDw9MTg3MCkpYnJlYWs7dmFyIHI9dGhpcy5wZW5kaW5nU2Vncy5zaGlmdCgpLGU9ZSsiJnNlZyIrbisiPSIrci5zZWcrIiZ0cyIrbisiPSIrci50cysiJmQiK24rIj0iK3IuZDtuKyt9cmV0dXJuIHQrPWUsdGhpcy5hZGRMb25nUG9sbFRhZ18odCx0aGlzLmN1cnJlbnRTZXJpYWwpLCEwfXJldHVybiExfSxMYS5wcm90b3R5cGUuZW5xdWV1ZVNlZ21lbnQ9ZnVuY3Rpb24odCxlLG4pe3RoaXMucGVuZGluZ1NlZ3MucHVzaCh7c2VnOnQsdHM6ZSxkOm59KSx0aGlzLmFsaXZlJiZ0aGlzLm5ld1JlcXVlc3RfKCl9LExhLnByb3RvdHlwZS5hZGRMb25nUG9sbFRhZ189ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzO3RoaXMub3V0c3RhbmRpbmdSZXF1ZXN0cy5hZGQoZSk7ZnVuY3Rpb24gcigpe24ub3V0c3RhbmRpbmdSZXF1ZXN0cy5kZWxldGUoZSksbi5uZXdSZXF1ZXN0XygpfXZhciBpPXNldFRpbWVvdXQocixNYXRoLmZsb29yKDI1ZTMpKTt0aGlzLmFkZFRhZyh0LGZ1bmN0aW9uKCl7Y2xlYXJUaW1lb3V0KGkpLHIoKX0pfSxMYS5wcm90b3R5cGUuYWRkVGFnPWZ1bmN0aW9uKHQsbil7dmFyIHI9dGhpcztzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dHJ5e2lmKCFyLnNlbmROZXdQb2xscylyZXR1cm47dmFyIGU9ci5teUlGcmFtZS5kb2MuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7ZS50eXBlPSJ0ZXh0L2phdmFzY3JpcHQiLGUuYXN5bmM9ITAsZS5zcmM9dCxlLm9ubG9hZD1lLm9ucmVhZHlzdGF0ZWNoYW5nZT1mdW5jdGlvbigpe3ZhciB0PWUucmVhZHlTdGF0ZTt0JiYibG9hZGVkIiE9PXQmJiJjb21wbGV0ZSIhPT10fHwoZS5vbmxvYWQ9ZS5vbnJlYWR5c3RhdGVjaGFuZ2U9bnVsbCxlLnBhcmVudE5vZGUmJmUucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChlKSxuKCkpfSxlLm9uZXJyb3I9ZnVuY3Rpb24oKXtYcygiTG9uZy1wb2xsIHNjcmlwdCBmYWlsZWQgdG8gbG9hZDogIit0KSxyLnNlbmROZXdQb2xscz0hMSxyLmNsb3NlKCl9LHIubXlJRnJhbWUuZG9jLmJvZHkuYXBwZW5kQ2hpbGQoZSl9Y2F0Y2godCl7fX0sTWF0aC5mbG9vcigxKSl9LExhKTtmdW5jdGlvbiBMYSh0LGUsbixyKXt0aGlzLm9uRGlzY29ubmVjdD1uLHRoaXMudXJsRm49cix0aGlzLm91dHN0YW5kaW5nUmVxdWVzdHM9bmV3IFNldCx0aGlzLnBlbmRpbmdTZWdzPVtdLHRoaXMuY3VycmVudFNlcmlhbD1NYXRoLmZsb29yKDFlOCpNYXRoLnJhbmRvbSgpKSx0aGlzLnNlbmROZXdQb2xscz0hMCx0aGlzLnVuaXF1ZUNhbGxiYWNrSWRlbnRpZmllcj1HcygpLHdpbmRvd1tSYSt0aGlzLnVuaXF1ZUNhbGxiYWNrSWRlbnRpZmllcl09dCx3aW5kb3dbUGErdGhpcy51bmlxdWVDYWxsYmFja0lkZW50aWZpZXJdPWUsdGhpcy5teUlGcmFtZT1MYS5jcmVhdGVJRnJhbWVfKCk7dmFyIGU9IiIsaT0iPGh0bWw+PGJvZHk+IisoZT10aGlzLm15SUZyYW1lLnNyYyYmImphdmFzY3JpcHQ6Ij09PXRoaXMubXlJRnJhbWUuc3JjLnN1YnN0cigwLCJqYXZhc2NyaXB0OiIubGVuZ3RoKT8nPHNjcmlwdD5kb2N1bWVudC5kb21haW49IicrZG9jdW1lbnQuZG9tYWluKyciOzxcL3NjcmlwdD4nOmUpKyI8L2JvZHk+PC9odG1sPiI7dHJ5e3RoaXMubXlJRnJhbWUuZG9jLm9wZW4oKSx0aGlzLm15SUZyYW1lLmRvYy53cml0ZShpKSx0aGlzLm15SUZyYW1lLmRvYy5jbG9zZSgpfWNhdGNoKHQpe1hzKCJmcmFtZSB3cml0aW5nIGV4Y2VwdGlvbiIpLHQuc3RhY2smJlhzKHQuc3RhY2spLFhzKHQpfX12YXIgTWE9IiI7ZnVuY3Rpb24gRmEodCl7TWE9dH12YXIgVWE9bnVsbDsidW5kZWZpbmVkIiE9dHlwZW9mIE1veldlYlNvY2tldD9VYT1Nb3pXZWJTb2NrZXQ6InVuZGVmaW5lZCIhPXR5cGVvZiBXZWJTb2NrZXQmJihVYT1XZWJTb2NrZXQpO3ZhciBqYT0ocWEuY29ubmVjdGlvblVSTF89ZnVuY3Rpb24odCxlLG4pe3ZhciByPXt2OiI1In07cmV0dXJuInVuZGVmaW5lZCIhPXR5cGVvZiBsb2NhdGlvbiYmbG9jYXRpb24uaG9zdG5hbWUmJnlhLnRlc3QobG9jYXRpb24uaG9zdG5hbWUpJiYoci5yPSJmIiksZSYmKHIucz1lKSxuJiYoci5scz1uKSxJYSh0LG1hLHIpfSxxYS5wcm90b3R5cGUub3Blbj1mdW5jdGlvbihlLHQpe3ZhciBuLHI9dGhpczt0aGlzLm9uRGlzY29ubmVjdD10LHRoaXMub25NZXNzYWdlPWUsdGhpcy5sb2dfKCJXZWJzb2NrZXQgY29ubmVjdGluZyB0byAiK3RoaXMuY29ublVSTCksdGhpcy5ldmVyQ29ubmVjdGVkXz0hMSxLcy5zZXQoInByZXZpb3VzX3dlYnNvY2tldF9mYWlsdXJlIiwhMCk7dHJ5e21vKCl8fChuPXtoZWFkZXJzOnsiWC1GaXJlYmFzZS1HTVBJRCI6dGhpcy5hcHBsaWNhdGlvbklkfHwiIn19LHRoaXMubXlTb2NrPW5ldyBVYSh0aGlzLmNvbm5VUkwsW10sbikpfWNhdGNoKHQpe3RoaXMubG9nXygiRXJyb3IgaW5zdGFudGlhdGluZyBXZWJTb2NrZXQuIik7ZT10Lm1lc3NhZ2V8fHQuZGF0YTtyZXR1cm4gZSYmdGhpcy5sb2dfKGUpLHZvaWQgdGhpcy5vbkNsb3NlZF8oKX10aGlzLm15U29jay5vbm9wZW49ZnVuY3Rpb24oKXtyLmxvZ18oIldlYnNvY2tldCBjb25uZWN0ZWQuIiksci5ldmVyQ29ubmVjdGVkXz0hMH0sdGhpcy5teVNvY2sub25jbG9zZT1mdW5jdGlvbigpe3IubG9nXygiV2Vic29ja2V0IGNvbm5lY3Rpb24gd2FzIGRpc2Nvbm5lY3RlZC4iKSxyLm15U29jaz1udWxsLHIub25DbG9zZWRfKCl9LHRoaXMubXlTb2NrLm9ubWVzc2FnZT1mdW5jdGlvbih0KXtyLmhhbmRsZUluY29taW5nRnJhbWUodCl9LHRoaXMubXlTb2NrLm9uZXJyb3I9ZnVuY3Rpb24odCl7ci5sb2dfKCJXZWJTb2NrZXQgZXJyb3IuICBDbG9zaW5nIGNvbm5lY3Rpb24uIik7dD10Lm1lc3NhZ2V8fHQuZGF0YTt0JiZyLmxvZ18odCksci5vbkNsb3NlZF8oKX19LHFhLnByb3RvdHlwZS5zdGFydD1mdW5jdGlvbigpe30scWEuZm9yY2VEaXNhbGxvdz1mdW5jdGlvbigpe3FhLmZvcmNlRGlzYWxsb3dfPSEwfSxxYS5pc0F2YWlsYWJsZT1mdW5jdGlvbigpe3ZhciB0LGU9ITE7cmV0dXJuInVuZGVmaW5lZCIhPXR5cGVvZiBuYXZpZ2F0b3ImJm5hdmlnYXRvci51c2VyQWdlbnQmJigodD1uYXZpZ2F0b3IudXNlckFnZW50Lm1hdGNoKC9BbmRyb2lkIChbMC05XXswLH1cLlswLTldezAsfSkvKSkmJjE8dC5sZW5ndGgmJnBhcnNlRmxvYXQodFsxXSk8NC40JiYoZT0hMCkpLCFlJiZudWxsIT09VWEmJiFxYS5mb3JjZURpc2FsbG93X30scWEucHJldmlvdXNseUZhaWxlZD1mdW5jdGlvbigpe3JldHVybiBLcy5pc0luTWVtb3J5U3RvcmFnZXx8ITA9PT1Lcy5nZXQoInByZXZpb3VzX3dlYnNvY2tldF9mYWlsdXJlIil9LHFhLnByb3RvdHlwZS5tYXJrQ29ubmVjdGlvbkhlYWx0aHk9ZnVuY3Rpb24oKXtLcy5yZW1vdmUoInByZXZpb3VzX3dlYnNvY2tldF9mYWlsdXJlIil9LHFhLnByb3RvdHlwZS5hcHBlbmRGcmFtZV89ZnVuY3Rpb24odCl7dGhpcy5mcmFtZXMucHVzaCh0KSx0aGlzLmZyYW1lcy5sZW5ndGg9PT10aGlzLnRvdGFsRnJhbWVzJiYodD10aGlzLmZyYW1lcy5qb2luKCIiKSx0aGlzLmZyYW1lcz1udWxsLHQ9a28odCksdGhpcy5vbk1lc3NhZ2UodCkpfSxxYS5wcm90b3R5cGUuaGFuZGxlTmV3RnJhbWVDb3VudF89ZnVuY3Rpb24odCl7dGhpcy50b3RhbEZyYW1lcz10LHRoaXMuZnJhbWVzPVtdfSxxYS5wcm90b3R5cGUuZXh0cmFjdEZyYW1lQ291bnRfPWZ1bmN0aW9uKHQpe2lmKHNvKG51bGw9PT10aGlzLmZyYW1lcywiV2UgYWxyZWFkeSBoYXZlIGEgZnJhbWUgYnVmZmVyIiksdC5sZW5ndGg8PTYpe3ZhciBlPU51bWJlcih0KTtpZighaXNOYU4oZSkpcmV0dXJuIHRoaXMuaGFuZGxlTmV3RnJhbWVDb3VudF8oZSksbnVsbH1yZXR1cm4gdGhpcy5oYW5kbGVOZXdGcmFtZUNvdW50XygxKSx0fSxxYS5wcm90b3R5cGUuaGFuZGxlSW5jb21pbmdGcmFtZT1mdW5jdGlvbih0KXtudWxsIT09dGhpcy5teVNvY2smJih0PXQuZGF0YSx0aGlzLmJ5dGVzUmVjZWl2ZWQrPXQubGVuZ3RoLHRoaXMuc3RhdHNfLmluY3JlbWVudENvdW50ZXIoImJ5dGVzX3JlY2VpdmVkIix0Lmxlbmd0aCksdGhpcy5yZXNldEtlZXBBbGl2ZSgpLG51bGwhPT10aGlzLmZyYW1lcz90aGlzLmFwcGVuZEZyYW1lXyh0KTpudWxsIT09KHQ9dGhpcy5leHRyYWN0RnJhbWVDb3VudF8odCkpJiZ0aGlzLmFwcGVuZEZyYW1lXyh0KSl9LHFhLnByb3RvdHlwZS5zZW5kPWZ1bmN0aW9uKHQpe3RoaXMucmVzZXRLZWVwQWxpdmUoKTt0PVJvKHQpO3RoaXMuYnl0ZXNTZW50Kz10Lmxlbmd0aCx0aGlzLnN0YXRzXy5pbmNyZW1lbnRDb3VudGVyKCJieXRlc19zZW50Iix0Lmxlbmd0aCk7dmFyIGU9VnModCwxNjM4NCk7MTxlLmxlbmd0aCYmdGhpcy5zZW5kU3RyaW5nXyhTdHJpbmcoZS5sZW5ndGgpKTtmb3IodmFyIG49MDtuPGUubGVuZ3RoO24rKyl0aGlzLnNlbmRTdHJpbmdfKGVbbl0pfSxxYS5wcm90b3R5cGUuc2h1dGRvd25fPWZ1bmN0aW9uKCl7dGhpcy5pc0Nsb3NlZF89ITAsdGhpcy5rZWVwYWxpdmVUaW1lciYmKGNsZWFySW50ZXJ2YWwodGhpcy5rZWVwYWxpdmVUaW1lciksdGhpcy5rZWVwYWxpdmVUaW1lcj1udWxsKSx0aGlzLm15U29jayYmKHRoaXMubXlTb2NrLmNsb3NlKCksdGhpcy5teVNvY2s9bnVsbCl9LHFhLnByb3RvdHlwZS5vbkNsb3NlZF89ZnVuY3Rpb24oKXt0aGlzLmlzQ2xvc2VkX3x8KHRoaXMubG9nXygiV2ViU29ja2V0IGlzIGNsb3NpbmcgaXRzZWxmIiksdGhpcy5zaHV0ZG93bl8oKSx0aGlzLm9uRGlzY29ubmVjdCYmKHRoaXMub25EaXNjb25uZWN0KHRoaXMuZXZlckNvbm5lY3RlZF8pLHRoaXMub25EaXNjb25uZWN0PW51bGwpKX0scWEucHJvdG90eXBlLmNsb3NlPWZ1bmN0aW9uKCl7dGhpcy5pc0Nsb3NlZF98fCh0aGlzLmxvZ18oIldlYlNvY2tldCBpcyBiZWluZyBjbG9zZWQiKSx0aGlzLnNodXRkb3duXygpKX0scWEucHJvdG90eXBlLnJlc2V0S2VlcEFsaXZlPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztjbGVhckludGVydmFsKHRoaXMua2VlcGFsaXZlVGltZXIpLHRoaXMua2VlcGFsaXZlVGltZXI9c2V0SW50ZXJ2YWwoZnVuY3Rpb24oKXt0Lm15U29jayYmdC5zZW5kU3RyaW5nXygiMCIpLHQucmVzZXRLZWVwQWxpdmUoKX0sTWF0aC5mbG9vcig0NWUzKSl9LHFhLnByb3RvdHlwZS5zZW5kU3RyaW5nXz1mdW5jdGlvbih0KXt0cnl7dGhpcy5teVNvY2suc2VuZCh0KX1jYXRjaCh0KXt0aGlzLmxvZ18oIkV4Y2VwdGlvbiB0aHJvd24gZnJvbSBXZWJTb2NrZXQuc2VuZCgpOiIsdC5tZXNzYWdlfHx0LmRhdGEsIkNsb3NpbmcgY29ubmVjdGlvbi4iKSxzZXRUaW1lb3V0KHRoaXMub25DbG9zZWRfLmJpbmQodGhpcyksMCl9fSxxYS5yZXNwb25zZXNSZXF1aXJlZFRvQmVIZWFsdGh5PTIscWEuaGVhbHRoeVRpbWVvdXQ9M2U0LHFhKTtmdW5jdGlvbiBxYSh0LGUsbixyLGkpe3RoaXMuY29ubklkPXQsdGhpcy5hcHBsaWNhdGlvbklkPW4sdGhpcy5rZWVwYWxpdmVUaW1lcj1udWxsLHRoaXMuZnJhbWVzPW51bGwsdGhpcy50b3RhbEZyYW1lcz0wLHRoaXMuYnl0ZXNTZW50PTAsdGhpcy5ieXRlc1JlY2VpdmVkPTAsdGhpcy5sb2dfPUpzKHRoaXMuY29ubklkKSx0aGlzLnN0YXRzXz1OYShlKSx0aGlzLmNvbm5VUkw9cWEuY29ubmVjdGlvblVSTF8oZSxyLGkpLHRoaXMubm9kZUFkbWluPWUubm9kZUFkbWlufXZhciBWYT0oT2JqZWN0LmRlZmluZVByb3BlcnR5KEJhLCJBTExfVFJBTlNQT1JUUyIse2dldDpmdW5jdGlvbigpe3JldHVybltPYSxqYV19LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksQmEucHJvdG90eXBlLmluaXRUcmFuc3BvcnRzXz1mdW5jdGlvbih0KXt2YXIgZSxuLHI9amEmJmphLmlzQXZhaWxhYmxlKCksaT1yJiYhamEucHJldmlvdXNseUZhaWxlZCgpO2lmKHQud2ViU29ja2V0T25seSYmKHJ8fFpzKCJ3c3M6Ly8gVVJMIHVzZWQsIGJ1dCBicm93c2VyIGlzbid0IGtub3duIHRvIHN1cHBvcnQgd2Vic29ja2V0cy4gIFRyeWluZyBhbnl3YXkuIiksaT0hMCksaSl0aGlzLnRyYW5zcG9ydHNfPVtqYV07ZWxzZXt2YXIgbz10aGlzLnRyYW5zcG9ydHNfPVtdO3RyeXtmb3IodmFyIHM9dG8oQmEuQUxMX1RSQU5TUE9SVFMpLGE9cy5uZXh0KCk7IWEuZG9uZTthPXMubmV4dCgpKXt2YXIgdT1hLnZhbHVlO3UmJnUuaXNBdmFpbGFibGUoKSYmby5wdXNoKHUpfX1jYXRjaCh0KXtlPXtlcnJvcjp0fX1maW5hbGx5e3RyeXthJiYhYS5kb25lJiYobj1zLnJldHVybikmJm4uY2FsbChzKX1maW5hbGx5e2lmKGUpdGhyb3cgZS5lcnJvcn19fX0sQmEucHJvdG90eXBlLmluaXRpYWxUcmFuc3BvcnQ9ZnVuY3Rpb24oKXtpZigwPHRoaXMudHJhbnNwb3J0c18ubGVuZ3RoKXJldHVybiB0aGlzLnRyYW5zcG9ydHNfWzBdO3Rocm93IG5ldyBFcnJvcigiTm8gdHJhbnNwb3J0cyBhdmFpbGFibGUiKX0sQmEucHJvdG90eXBlLnVwZ3JhZGVUcmFuc3BvcnQ9ZnVuY3Rpb24oKXtyZXR1cm4gMTx0aGlzLnRyYW5zcG9ydHNfLmxlbmd0aD90aGlzLnRyYW5zcG9ydHNfWzFdOm51bGx9LEJhKTtmdW5jdGlvbiBCYSh0KXt0aGlzLmluaXRUcmFuc3BvcnRzXyh0KX12YXIgS2E9KFdhLnByb3RvdHlwZS5zdGFydF89ZnVuY3Rpb24oKXt2YXIgdD10aGlzLGU9dGhpcy50cmFuc3BvcnRNYW5hZ2VyXy5pbml0aWFsVHJhbnNwb3J0KCk7dGhpcy5jb25uXz1uZXcgZSh0aGlzLm5leHRUcmFuc3BvcnRJZF8oKSx0aGlzLnJlcG9JbmZvXyx0aGlzLmFwcGxpY2F0aW9uSWRfLHZvaWQgMCx0aGlzLmxhc3RTZXNzaW9uSWQpLHRoaXMucHJpbWFyeVJlc3BvbnNlc1JlcXVpcmVkXz1lLnJlc3BvbnNlc1JlcXVpcmVkVG9CZUhlYWx0aHl8fDA7dmFyIG49dGhpcy5jb25uUmVjZWl2ZXJfKHRoaXMuY29ubl8pLHI9dGhpcy5kaXNjb25uUmVjZWl2ZXJfKHRoaXMuY29ubl8pO3RoaXMudHhfPXRoaXMuY29ubl8sdGhpcy5yeF89dGhpcy5jb25uXyx0aGlzLnNlY29uZGFyeUNvbm5fPW51bGwsdGhpcy5pc0hlYWx0aHlfPSExLHNldFRpbWVvdXQoZnVuY3Rpb24oKXt0LmNvbm5fJiZ0LmNvbm5fLm9wZW4obixyKX0sTWF0aC5mbG9vcigwKSk7ZT1lLmhlYWx0aHlUaW1lb3V0fHwwOzA8ZSYmKHRoaXMuaGVhbHRoeVRpbWVvdXRfPXNhKGZ1bmN0aW9uKCl7dC5oZWFsdGh5VGltZW91dF89bnVsbCx0LmlzSGVhbHRoeV98fCh0LmNvbm5fJiYxMDI0MDA8dC5jb25uXy5ieXRlc1JlY2VpdmVkPyh0LmxvZ18oIkNvbm5lY3Rpb24gZXhjZWVkZWQgaGVhbHRoeSB0aW1lb3V0IGJ1dCBoYXMgcmVjZWl2ZWQgIit0LmNvbm5fLmJ5dGVzUmVjZWl2ZWQrIiBieXRlcy4gIE1hcmtpbmcgY29ubmVjdGlvbiBoZWFsdGh5LiIpLHQuaXNIZWFsdGh5Xz0hMCx0LmNvbm5fLm1hcmtDb25uZWN0aW9uSGVhbHRoeSgpKTp0LmNvbm5fJiYxMDI0MDx0LmNvbm5fLmJ5dGVzU2VudD90LmxvZ18oIkNvbm5lY3Rpb24gZXhjZWVkZWQgaGVhbHRoeSB0aW1lb3V0IGJ1dCBoYXMgc2VudCAiK3QuY29ubl8uYnl0ZXNTZW50KyIgYnl0ZXMuICBMZWF2aW5nIGNvbm5lY3Rpb24gYWxpdmUuIik6KHQubG9nXygiQ2xvc2luZyB1bmhlYWx0aHkgY29ubmVjdGlvbiBhZnRlciB0aW1lb3V0LiIpLHQuY2xvc2UoKSkpfSxNYXRoLmZsb29yKGUpKSl9LFdhLnByb3RvdHlwZS5uZXh0VHJhbnNwb3J0SWRfPWZ1bmN0aW9uKCl7cmV0dXJuImM6Iit0aGlzLmlkKyI6Iit0aGlzLmNvbm5lY3Rpb25Db3VudCsrfSxXYS5wcm90b3R5cGUuZGlzY29ublJlY2VpdmVyXz1mdW5jdGlvbihlKXt2YXIgbj10aGlzO3JldHVybiBmdW5jdGlvbih0KXtlPT09bi5jb25uXz9uLm9uQ29ubmVjdGlvbkxvc3RfKHQpOmU9PT1uLnNlY29uZGFyeUNvbm5fPyhuLmxvZ18oIlNlY29uZGFyeSBjb25uZWN0aW9uIGxvc3QuIiksbi5vblNlY29uZGFyeUNvbm5lY3Rpb25Mb3N0XygpKTpuLmxvZ18oImNsb3NpbmcgYW4gb2xkIGNvbm5lY3Rpb24iKX19LFdhLnByb3RvdHlwZS5jb25uUmVjZWl2ZXJfPWZ1bmN0aW9uKGUpe3ZhciBuPXRoaXM7cmV0dXJuIGZ1bmN0aW9uKHQpezIhPT1uLnN0YXRlXyYmKGU9PT1uLnJ4Xz9uLm9uUHJpbWFyeU1lc3NhZ2VSZWNlaXZlZF8odCk6ZT09PW4uc2Vjb25kYXJ5Q29ubl8/bi5vblNlY29uZGFyeU1lc3NhZ2VSZWNlaXZlZF8odCk6bi5sb2dfKCJtZXNzYWdlIG9uIG9sZCBjb25uZWN0aW9uIikpfX0sV2EucHJvdG90eXBlLnNlbmRSZXF1ZXN0PWZ1bmN0aW9uKHQpe3Q9e3Q6ImQiLGQ6dH07dGhpcy5zZW5kRGF0YV8odCl9LFdhLnByb3RvdHlwZS50cnlDbGVhbnVwQ29ubmVjdGlvbj1mdW5jdGlvbigpe3RoaXMudHhfPT09dGhpcy5zZWNvbmRhcnlDb25uXyYmdGhpcy5yeF89PT10aGlzLnNlY29uZGFyeUNvbm5fJiYodGhpcy5sb2dfKCJjbGVhbmluZyB1cCBhbmQgcHJvbW90aW5nIGEgY29ubmVjdGlvbjogIit0aGlzLnNlY29uZGFyeUNvbm5fLmNvbm5JZCksdGhpcy5jb25uXz10aGlzLnNlY29uZGFyeUNvbm5fLHRoaXMuc2Vjb25kYXJ5Q29ubl89bnVsbCl9LFdhLnByb3RvdHlwZS5vblNlY29uZGFyeUNvbnRyb2xfPWZ1bmN0aW9uKHQpeyJ0ImluIHQmJigiYSI9PT0odD10LnQpP3RoaXMudXBncmFkZUlmU2Vjb25kYXJ5SGVhbHRoeV8oKToiciI9PT10Pyh0aGlzLmxvZ18oIkdvdCBhIHJlc2V0IG9uIHNlY29uZGFyeSwgY2xvc2luZyBpdCIpLHRoaXMuc2Vjb25kYXJ5Q29ubl8uY2xvc2UoKSx0aGlzLnR4XyE9PXRoaXMuc2Vjb25kYXJ5Q29ubl8mJnRoaXMucnhfIT09dGhpcy5zZWNvbmRhcnlDb25uX3x8dGhpcy5jbG9zZSgpKToibyI9PT10JiYodGhpcy5sb2dfKCJnb3QgcG9uZyBvbiBzZWNvbmRhcnkuIiksdGhpcy5zZWNvbmRhcnlSZXNwb25zZXNSZXF1aXJlZF8tLSx0aGlzLnVwZ3JhZGVJZlNlY29uZGFyeUhlYWx0aHlfKCkpKX0sV2EucHJvdG90eXBlLm9uU2Vjb25kYXJ5TWVzc2FnZVJlY2VpdmVkXz1mdW5jdGlvbih0KXt2YXIgZT1xcygidCIsdCksdD1xcygiZCIsdCk7aWYoImMiPT09ZSl0aGlzLm9uU2Vjb25kYXJ5Q29udHJvbF8odCk7ZWxzZXtpZigiZCIhPT1lKXRocm93IG5ldyBFcnJvcigiVW5rbm93biBwcm90b2NvbCBsYXllcjogIitlKTt0aGlzLnBlbmRpbmdEYXRhTWVzc2FnZXMucHVzaCh0KX19LFdhLnByb3RvdHlwZS51cGdyYWRlSWZTZWNvbmRhcnlIZWFsdGh5Xz1mdW5jdGlvbigpe3RoaXMuc2Vjb25kYXJ5UmVzcG9uc2VzUmVxdWlyZWRfPD0wPyh0aGlzLmxvZ18oIlNlY29uZGFyeSBjb25uZWN0aW9uIGlzIGhlYWx0aHkuIiksdGhpcy5pc0hlYWx0aHlfPSEwLHRoaXMuc2Vjb25kYXJ5Q29ubl8ubWFya0Nvbm5lY3Rpb25IZWFsdGh5KCksdGhpcy5wcm9jZWVkV2l0aFVwZ3JhZGVfKCkpOih0aGlzLmxvZ18oInNlbmRpbmcgcGluZyBvbiBzZWNvbmRhcnkuIiksdGhpcy5zZWNvbmRhcnlDb25uXy5zZW5kKHt0OiJjIixkOnt0OiJwIixkOnt9fX0pKX0sV2EucHJvdG90eXBlLnByb2NlZWRXaXRoVXBncmFkZV89ZnVuY3Rpb24oKXt0aGlzLnNlY29uZGFyeUNvbm5fLnN0YXJ0KCksdGhpcy5sb2dfKCJzZW5kaW5nIGNsaWVudCBhY2sgb24gc2Vjb25kYXJ5IiksdGhpcy5zZWNvbmRhcnlDb25uXy5zZW5kKHt0OiJjIixkOnt0OiJhIixkOnt9fX0pLHRoaXMubG9nXygiRW5kaW5nIHRyYW5zbWlzc2lvbiBvbiBwcmltYXJ5IiksdGhpcy5jb25uXy5zZW5kKHt0OiJjIixkOnt0OiJuIixkOnt9fX0pLHRoaXMudHhfPXRoaXMuc2Vjb25kYXJ5Q29ubl8sdGhpcy50cnlDbGVhbnVwQ29ubmVjdGlvbigpfSxXYS5wcm90b3R5cGUub25QcmltYXJ5TWVzc2FnZVJlY2VpdmVkXz1mdW5jdGlvbih0KXt2YXIgZT1xcygidCIsdCksdD1xcygiZCIsdCk7ImMiPT09ZT90aGlzLm9uQ29udHJvbF8odCk6ImQiPT09ZSYmdGhpcy5vbkRhdGFNZXNzYWdlXyh0KX0sV2EucHJvdG90eXBlLm9uRGF0YU1lc3NhZ2VfPWZ1bmN0aW9uKHQpe3RoaXMub25QcmltYXJ5UmVzcG9uc2VfKCksdGhpcy5vbk1lc3NhZ2VfKHQpfSxXYS5wcm90b3R5cGUub25QcmltYXJ5UmVzcG9uc2VfPWZ1bmN0aW9uKCl7dGhpcy5pc0hlYWx0aHlffHwodGhpcy5wcmltYXJ5UmVzcG9uc2VzUmVxdWlyZWRfLS0sdGhpcy5wcmltYXJ5UmVzcG9uc2VzUmVxdWlyZWRfPD0wJiYodGhpcy5sb2dfKCJQcmltYXJ5IGNvbm5lY3Rpb24gaXMgaGVhbHRoeS4iKSx0aGlzLmlzSGVhbHRoeV89ITAsdGhpcy5jb25uXy5tYXJrQ29ubmVjdGlvbkhlYWx0aHkoKSkpfSxXYS5wcm90b3R5cGUub25Db250cm9sXz1mdW5jdGlvbih0KXt2YXIgZT1xcygidCIsdCk7aWYoImQiaW4gdCl7dD10LmQ7aWYoImgiPT09ZSl0aGlzLm9uSGFuZHNoYWtlXyh0KTtlbHNlIGlmKCJuIj09PWUpe3RoaXMubG9nXygicmVjdmQgZW5kIHRyYW5zbWlzc2lvbiBvbiBwcmltYXJ5IiksdGhpcy5yeF89dGhpcy5zZWNvbmRhcnlDb25uXztmb3IodmFyIG49MDtuPHRoaXMucGVuZGluZ0RhdGFNZXNzYWdlcy5sZW5ndGg7KytuKXRoaXMub25EYXRhTWVzc2FnZV8odGhpcy5wZW5kaW5nRGF0YU1lc3NhZ2VzW25dKTt0aGlzLnBlbmRpbmdEYXRhTWVzc2FnZXM9W10sdGhpcy50cnlDbGVhbnVwQ29ubmVjdGlvbigpfWVsc2UicyI9PT1lP3RoaXMub25Db25uZWN0aW9uU2h1dGRvd25fKHQpOiJyIj09PWU/dGhpcy5vblJlc2V0Xyh0KToiZSI9PT1lP0ZzKCJTZXJ2ZXIgRXJyb3I6ICIrdCk6Im8iPT09ZT8odGhpcy5sb2dfKCJnb3QgcG9uZyBvbiBwcmltYXJ5LiIpLHRoaXMub25QcmltYXJ5UmVzcG9uc2VfKCksdGhpcy5zZW5kUGluZ09uUHJpbWFyeUlmTmVjZXNzYXJ5XygpKTpGcygiVW5rbm93biBjb250cm9sIHBhY2tldCBjb21tYW5kOiAiK2UpfX0sV2EucHJvdG90eXBlLm9uSGFuZHNoYWtlXz1mdW5jdGlvbih0KXt2YXIgZT10LnRzLG49dC52LHI9dC5oO3RoaXMuc2Vzc2lvbklkPXQucyx0aGlzLnJlcG9JbmZvXy5ob3N0PXIsMD09PXRoaXMuc3RhdGVfJiYodGhpcy5jb25uXy5zdGFydCgpLHRoaXMub25Db25uZWN0aW9uRXN0YWJsaXNoZWRfKHRoaXMuY29ubl8sZSksIjUiIT09biYmWnMoIlByb3RvY29sIHZlcnNpb24gbWlzbWF0Y2ggZGV0ZWN0ZWQiKSx0aGlzLnRyeVN0YXJ0VXBncmFkZV8oKSl9LFdhLnByb3RvdHlwZS50cnlTdGFydFVwZ3JhZGVfPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy50cmFuc3BvcnRNYW5hZ2VyXy51cGdyYWRlVHJhbnNwb3J0KCk7dCYmdGhpcy5zdGFydFVwZ3JhZGVfKHQpfSxXYS5wcm90b3R5cGUuc3RhcnRVcGdyYWRlXz1mdW5jdGlvbih0KXt2YXIgZT10aGlzO3RoaXMuc2Vjb25kYXJ5Q29ubl89bmV3IHQodGhpcy5uZXh0VHJhbnNwb3J0SWRfKCksdGhpcy5yZXBvSW5mb18sdGhpcy5hcHBsaWNhdGlvbklkXyx0aGlzLnNlc3Npb25JZCksdGhpcy5zZWNvbmRhcnlSZXNwb25zZXNSZXF1aXJlZF89dC5yZXNwb25zZXNSZXF1aXJlZFRvQmVIZWFsdGh5fHwwO3ZhciBuPXRoaXMuY29ublJlY2VpdmVyXyh0aGlzLnNlY29uZGFyeUNvbm5fKSx0PXRoaXMuZGlzY29ublJlY2VpdmVyXyh0aGlzLnNlY29uZGFyeUNvbm5fKTt0aGlzLnNlY29uZGFyeUNvbm5fLm9wZW4obix0KSxzYShmdW5jdGlvbigpe2Uuc2Vjb25kYXJ5Q29ubl8mJihlLmxvZ18oIlRpbWVkIG91dCB0cnlpbmcgdG8gdXBncmFkZS4iKSxlLnNlY29uZGFyeUNvbm5fLmNsb3NlKCkpfSxNYXRoLmZsb29yKDZlNCkpfSxXYS5wcm90b3R5cGUub25SZXNldF89ZnVuY3Rpb24odCl7dGhpcy5sb2dfKCJSZXNldCBwYWNrZXQgcmVjZWl2ZWQuICBOZXcgaG9zdDogIit0KSx0aGlzLnJlcG9JbmZvXy5ob3N0PXQsMT09PXRoaXMuc3RhdGVfP3RoaXMuY2xvc2UoKToodGhpcy5jbG9zZUNvbm5lY3Rpb25zXygpLHRoaXMuc3RhcnRfKCkpfSxXYS5wcm90b3R5cGUub25Db25uZWN0aW9uRXN0YWJsaXNoZWRfPWZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpczt0aGlzLmxvZ18oIlJlYWx0aW1lIGNvbm5lY3Rpb24gZXN0YWJsaXNoZWQuIiksdGhpcy5jb25uXz10LHRoaXMuc3RhdGVfPTEsdGhpcy5vblJlYWR5XyYmKHRoaXMub25SZWFkeV8oZSx0aGlzLnNlc3Npb25JZCksdGhpcy5vblJlYWR5Xz1udWxsKSwwPT09dGhpcy5wcmltYXJ5UmVzcG9uc2VzUmVxdWlyZWRfPyh0aGlzLmxvZ18oIlByaW1hcnkgY29ubmVjdGlvbiBpcyBoZWFsdGh5LiIpLHRoaXMuaXNIZWFsdGh5Xz0hMCk6c2EoZnVuY3Rpb24oKXtuLnNlbmRQaW5nT25QcmltYXJ5SWZOZWNlc3NhcnlfKCl9LE1hdGguZmxvb3IoNWUzKSl9LFdhLnByb3RvdHlwZS5zZW5kUGluZ09uUHJpbWFyeUlmTmVjZXNzYXJ5Xz1mdW5jdGlvbigpe3RoaXMuaXNIZWFsdGh5X3x8MSE9PXRoaXMuc3RhdGVffHwodGhpcy5sb2dfKCJzZW5kaW5nIHBpbmcgb24gcHJpbWFyeS4iKSx0aGlzLnNlbmREYXRhXyh7dDoiYyIsZDp7dDoicCIsZDp7fX19KSl9LFdhLnByb3RvdHlwZS5vblNlY29uZGFyeUNvbm5lY3Rpb25Mb3N0Xz1mdW5jdGlvbigpe3ZhciB0PXRoaXMuc2Vjb25kYXJ5Q29ubl87dGhpcy5zZWNvbmRhcnlDb25uXz1udWxsLHRoaXMudHhfIT09dCYmdGhpcy5yeF8hPT10fHx0aGlzLmNsb3NlKCl9LFdhLnByb3RvdHlwZS5vbkNvbm5lY3Rpb25Mb3N0Xz1mdW5jdGlvbih0KXt0aGlzLmNvbm5fPW51bGwsdHx8MCE9PXRoaXMuc3RhdGVfPzE9PT10aGlzLnN0YXRlXyYmdGhpcy5sb2dfKCJSZWFsdGltZSBjb25uZWN0aW9uIGxvc3QuIik6KHRoaXMubG9nXygiUmVhbHRpbWUgY29ubmVjdGlvbiBmYWlsZWQuIiksdGhpcy5yZXBvSW5mb18uaXNDYWNoZWFibGVIb3N0KCkmJihLcy5yZW1vdmUoImhvc3Q6Iit0aGlzLnJlcG9JbmZvXy5ob3N0KSx0aGlzLnJlcG9JbmZvXy5pbnRlcm5hbEhvc3Q9dGhpcy5yZXBvSW5mb18uaG9zdCkpLHRoaXMuY2xvc2UoKX0sV2EucHJvdG90eXBlLm9uQ29ubmVjdGlvblNodXRkb3duXz1mdW5jdGlvbih0KXt0aGlzLmxvZ18oIkNvbm5lY3Rpb24gc2h1dGRvd24gY29tbWFuZCByZWNlaXZlZC4gU2h1dHRpbmcgZG93bi4uLiIpLHRoaXMub25LaWxsXyYmKHRoaXMub25LaWxsXyh0KSx0aGlzLm9uS2lsbF89bnVsbCksdGhpcy5vbkRpc2Nvbm5lY3RfPW51bGwsdGhpcy5jbG9zZSgpfSxXYS5wcm90b3R5cGUuc2VuZERhdGFfPWZ1bmN0aW9uKHQpe2lmKDEhPT10aGlzLnN0YXRlXyl0aHJvdyJDb25uZWN0aW9uIGlzIG5vdCBjb25uZWN0ZWQiO3RoaXMudHhfLnNlbmQodCl9LFdhLnByb3RvdHlwZS5jbG9zZT1mdW5jdGlvbigpezIhPT10aGlzLnN0YXRlXyYmKHRoaXMubG9nXygiQ2xvc2luZyByZWFsdGltZSBjb25uZWN0aW9uLiIpLHRoaXMuc3RhdGVfPTIsdGhpcy5jbG9zZUNvbm5lY3Rpb25zXygpLHRoaXMub25EaXNjb25uZWN0XyYmKHRoaXMub25EaXNjb25uZWN0XygpLHRoaXMub25EaXNjb25uZWN0Xz1udWxsKSl9LFdhLnByb3RvdHlwZS5jbG9zZUNvbm5lY3Rpb25zXz1mdW5jdGlvbigpe3RoaXMubG9nXygiU2h1dHRpbmcgZG93biBhbGwgY29ubmVjdGlvbnMiKSx0aGlzLmNvbm5fJiYodGhpcy5jb25uXy5jbG9zZSgpLHRoaXMuY29ubl89bnVsbCksdGhpcy5zZWNvbmRhcnlDb25uXyYmKHRoaXMuc2Vjb25kYXJ5Q29ubl8uY2xvc2UoKSx0aGlzLnNlY29uZGFyeUNvbm5fPW51bGwpLHRoaXMuaGVhbHRoeVRpbWVvdXRfJiYoY2xlYXJUaW1lb3V0KHRoaXMuaGVhbHRoeVRpbWVvdXRfKSx0aGlzLmhlYWx0aHlUaW1lb3V0Xz1udWxsKX0sV2EpO2Z1bmN0aW9uIFdhKHQsZSxuLHIsaSxvLHMsYSl7dGhpcy5pZD10LHRoaXMucmVwb0luZm9fPWUsdGhpcy5hcHBsaWNhdGlvbklkXz1uLHRoaXMub25NZXNzYWdlXz1yLHRoaXMub25SZWFkeV89aSx0aGlzLm9uRGlzY29ubmVjdF89byx0aGlzLm9uS2lsbF89cyx0aGlzLmxhc3RTZXNzaW9uSWQ9YSx0aGlzLmNvbm5lY3Rpb25Db3VudD0wLHRoaXMucGVuZGluZ0RhdGFNZXNzYWdlcz1bXSx0aGlzLnN0YXRlXz0wLHRoaXMubG9nXz1KcygiYzoiK3RoaXMuaWQrIjoiKSx0aGlzLnRyYW5zcG9ydE1hbmFnZXJfPW5ldyBWYShlKSx0aGlzLmxvZ18oIkNvbm5lY3Rpb24gY3JlYXRlZCIpLHRoaXMuc3RhcnRfKCl9SGEucHJvdG90eXBlLnB1dD1mdW5jdGlvbih0LGUsbixyKXt9LEhhLnByb3RvdHlwZS5tZXJnZT1mdW5jdGlvbih0LGUsbixyKXt9LEhhLnByb3RvdHlwZS5yZWZyZXNoQXV0aFRva2VuPWZ1bmN0aW9uKHQpe30sSGEucHJvdG90eXBlLm9uRGlzY29ubmVjdFB1dD1mdW5jdGlvbih0LGUsbil7fSxIYS5wcm90b3R5cGUub25EaXNjb25uZWN0TWVyZ2U9ZnVuY3Rpb24odCxlLG4pe30sSGEucHJvdG90eXBlLm9uRGlzY29ubmVjdENhbmNlbD1mdW5jdGlvbih0LGUpe30sSGEucHJvdG90eXBlLnJlcG9ydFN0YXRzPWZ1bmN0aW9uKHQpe30sej1IYTtmdW5jdGlvbiBIYSgpe312YXIgR2E9KHphLnByb3RvdHlwZS50cmlnZ2VyPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1bXSxuPTE7bjxhcmd1bWVudHMubGVuZ3RoO24rKyllW24tMV09YXJndW1lbnRzW25dO2lmKEFycmF5LmlzQXJyYXkodGhpcy5saXN0ZW5lcnNfW3RdKSlmb3IodmFyIHI9bm8oW10sZW8odGhpcy5saXN0ZW5lcnNfW3RdKSksaT0wO2k8ci5sZW5ndGg7aSsrKXJbaV0uY2FsbGJhY2suYXBwbHkocltpXS5jb250ZXh0LGUpfSx6YS5wcm90b3R5cGUub249ZnVuY3Rpb24odCxlLG4pe3RoaXMudmFsaWRhdGVFdmVudFR5cGVfKHQpLHRoaXMubGlzdGVuZXJzX1t0XT10aGlzLmxpc3RlbmVyc19bdF18fFtdLHRoaXMubGlzdGVuZXJzX1t0XS5wdXNoKHtjYWxsYmFjazplLGNvbnRleHQ6bn0pO3Q9dGhpcy5nZXRJbml0aWFsRXZlbnQodCk7dCYmZS5hcHBseShuLHQpfSx6YS5wcm90b3R5cGUub2ZmPWZ1bmN0aW9uKHQsZSxuKXt0aGlzLnZhbGlkYXRlRXZlbnRUeXBlXyh0KTtmb3IodmFyIHI9dGhpcy5saXN0ZW5lcnNfW3RdfHxbXSxpPTA7aTxyLmxlbmd0aDtpKyspaWYocltpXS5jYWxsYmFjaz09PWUmJighbnx8bj09PXJbaV0uY29udGV4dCkpcmV0dXJuIHZvaWQgci5zcGxpY2UoaSwxKX0semEucHJvdG90eXBlLnZhbGlkYXRlRXZlbnRUeXBlXz1mdW5jdGlvbihlKXtzbyh0aGlzLmFsbG93ZWRFdmVudHNfLmZpbmQoZnVuY3Rpb24odCl7cmV0dXJuIHQ9PT1lfSksIlVua25vd24gZXZlbnQ6ICIrZSl9LHphKTtmdW5jdGlvbiB6YSh0KXt0aGlzLmFsbG93ZWRFdmVudHNfPXQsdGhpcy5saXN0ZW5lcnNfPXt9LHNvKEFycmF5LmlzQXJyYXkodCkmJjA8dC5sZW5ndGgsIlJlcXVpcmVzIGEgbm9uLWVtcHR5IGFycmF5Iil9dmFyIFFhLFlhPShYaShYYSxRYT1HYSksWGEuZ2V0SW5zdGFuY2U9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IFhhfSxYYS5wcm90b3R5cGUuZ2V0SW5pdGlhbEV2ZW50PWZ1bmN0aW9uKHQpe3JldHVybiBzbygib25saW5lIj09PXQsIlVua25vd24gZXZlbnQgdHlwZTogIit0KSxbdGhpcy5vbmxpbmVfXX0sWGEucHJvdG90eXBlLmN1cnJlbnRseU9ubGluZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLm9ubGluZV99LFhhKTtmdW5jdGlvbiBYYSgpe3ZhciB0PVFhLmNhbGwodGhpcyxbIm9ubGluZSJdKXx8dGhpcztyZXR1cm4gdC5vbmxpbmVfPSEwLCJ1bmRlZmluZWQiPT10eXBlb2Ygd2luZG93fHx2b2lkIDA9PT13aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcnx8dm8oKXx8KHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJvbmxpbmUiLGZ1bmN0aW9uKCl7dC5vbmxpbmVffHwodC5vbmxpbmVfPSEwLHQudHJpZ2dlcigib25saW5lIiwhMCkpfSwhMSksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm9mZmxpbmUiLGZ1bmN0aW9uKCl7dC5vbmxpbmVfJiYodC5vbmxpbmVfPSExLHQudHJpZ2dlcigib25saW5lIiwhMSkpfSwhMSkpLHR9dmFyIEphPTMyLCRhPTc2OCxaYT0odHUucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7Zm9yKHZhciB0PSIiLGU9dGhpcy5waWVjZU51bV87ZTx0aGlzLnBpZWNlc18ubGVuZ3RoO2UrKykiIiE9PXRoaXMucGllY2VzX1tlXSYmKHQrPSIvIit0aGlzLnBpZWNlc19bZV0pO3JldHVybiB0fHwiLyJ9LHR1KTtmdW5jdGlvbiB0dSh0LGUpe2lmKHZvaWQgMD09PWUpe3RoaXMucGllY2VzXz10LnNwbGl0KCIvIik7Zm9yKHZhciBuPTAscj0wO3I8dGhpcy5waWVjZXNfLmxlbmd0aDtyKyspMDx0aGlzLnBpZWNlc19bcl0ubGVuZ3RoJiYodGhpcy5waWVjZXNfW25dPXRoaXMucGllY2VzX1tyXSxuKyspO3RoaXMucGllY2VzXy5sZW5ndGg9bix0aGlzLnBpZWNlTnVtXz0wfWVsc2UgdGhpcy5waWVjZXNfPXQsdGhpcy5waWVjZU51bV89ZX1mdW5jdGlvbiBldSgpe3JldHVybiBuZXcgWmEoIiIpfWZ1bmN0aW9uIG51KHQpe3JldHVybiB0LnBpZWNlTnVtXz49dC5waWVjZXNfLmxlbmd0aD9udWxsOnQucGllY2VzX1t0LnBpZWNlTnVtX119ZnVuY3Rpb24gcnUodCl7cmV0dXJuIHQucGllY2VzXy5sZW5ndGgtdC5waWVjZU51bV99ZnVuY3Rpb24gaXUodCl7dmFyIGU9dC5waWVjZU51bV87cmV0dXJuIGU8dC5waWVjZXNfLmxlbmd0aCYmZSsrLG5ldyBaYSh0LnBpZWNlc18sZSl9ZnVuY3Rpb24gb3UodCl7cmV0dXJuIHQucGllY2VOdW1fPHQucGllY2VzXy5sZW5ndGg/dC5waWVjZXNfW3QucGllY2VzXy5sZW5ndGgtMV06bnVsbH1mdW5jdGlvbiBzdSh0LGUpe3JldHVybiB2b2lkIDA9PT1lJiYoZT0wKSx0LnBpZWNlc18uc2xpY2UodC5waWVjZU51bV8rZSl9ZnVuY3Rpb24gYXUodCl7aWYodC5waWVjZU51bV8+PXQucGllY2VzXy5sZW5ndGgpcmV0dXJuIG51bGw7Zm9yKHZhciBlPVtdLG49dC5waWVjZU51bV87bjx0LnBpZWNlc18ubGVuZ3RoLTE7bisrKWUucHVzaCh0LnBpZWNlc19bbl0pO3JldHVybiBuZXcgWmEoZSwwKX1mdW5jdGlvbiB1dSh0LGUpe2Zvcih2YXIgbj1bXSxyPXQucGllY2VOdW1fO3I8dC5waWVjZXNfLmxlbmd0aDtyKyspbi5wdXNoKHQucGllY2VzX1tyXSk7aWYoZSBpbnN0YW5jZW9mIFphKWZvcihyPWUucGllY2VOdW1fO3I8ZS5waWVjZXNfLmxlbmd0aDtyKyspbi5wdXNoKGUucGllY2VzX1tyXSk7ZWxzZSBmb3IodmFyIGk9ZS5zcGxpdCgiLyIpLHI9MDtyPGkubGVuZ3RoO3IrKykwPGlbcl0ubGVuZ3RoJiZuLnB1c2goaVtyXSk7cmV0dXJuIG5ldyBaYShuLDApfWZ1bmN0aW9uIGN1KHQpe3JldHVybiB0LnBpZWNlTnVtXz49dC5waWVjZXNfLmxlbmd0aH1mdW5jdGlvbiBodSh0LGUpe3ZhciBuPW51KHQpLHI9bnUoZSk7aWYobnVsbD09PW4pcmV0dXJuIGU7aWYobj09PXIpcmV0dXJuIGh1KGl1KHQpLGl1KGUpKTt0aHJvdyBuZXcgRXJyb3IoIklOVEVSTkFMIEVSUk9SOiBpbm5lclBhdGggKCIrZSsiKSBpcyBub3Qgd2l0aGluIG91dGVyUGF0aCAoIit0KyIpIil9ZnVuY3Rpb24gbHUodCxlKXtmb3IodmFyIG49c3UodCwwKSxyPXN1KGUsMCksaT0wO2k8bi5sZW5ndGgmJmk8ci5sZW5ndGg7aSsrKXt2YXIgbz1uYShuW2ldLHJbaV0pO2lmKDAhPT1vKXJldHVybiBvfXJldHVybiBuLmxlbmd0aD09PXIubGVuZ3RoPzA6bi5sZW5ndGg8ci5sZW5ndGg/LTE6MX1mdW5jdGlvbiBmdSh0LGUpe2lmKHJ1KHQpIT09cnUoZSkpcmV0dXJuITE7Zm9yKHZhciBuPXQucGllY2VOdW1fLHI9ZS5waWVjZU51bV87bjw9dC5waWVjZXNfLmxlbmd0aDtuKysscisrKWlmKHQucGllY2VzX1tuXSE9PWUucGllY2VzX1tyXSlyZXR1cm4hMTtyZXR1cm4hMH1mdW5jdGlvbiBwdSh0LGUpe3ZhciBuPXQucGllY2VOdW1fLHI9ZS5waWVjZU51bV87aWYocnUodCk+cnUoZSkpcmV0dXJuITE7Zm9yKDtuPHQucGllY2VzXy5sZW5ndGg7KXtpZih0LnBpZWNlc19bbl0hPT1lLnBpZWNlc19bcl0pcmV0dXJuITE7KytuLCsrcn1yZXR1cm4hMH12YXIgZHU9ZnVuY3Rpb24odCxlKXt0aGlzLmVycm9yUHJlZml4Xz1lLHRoaXMucGFydHNfPXN1KHQsMCksdGhpcy5ieXRlTGVuZ3RoXz1NYXRoLm1heCgxLHRoaXMucGFydHNfLmxlbmd0aCk7Zm9yKHZhciBuPTA7bjx0aGlzLnBhcnRzXy5sZW5ndGg7bisrKXRoaXMuYnl0ZUxlbmd0aF8rPXpvKHRoaXMucGFydHNfW25dKTt2dSh0aGlzKX07ZnVuY3Rpb24gdnUodCl7aWYodC5ieXRlTGVuZ3RoXz4kYSl0aHJvdyBuZXcgRXJyb3IodC5lcnJvclByZWZpeF8rImhhcyBhIGtleSBwYXRoIGxvbmdlciB0aGFuICIrJGErIiBieXRlcyAoIit0LmJ5dGVMZW5ndGhfKyIpLiIpO2lmKHQucGFydHNfLmxlbmd0aD5KYSl0aHJvdyBuZXcgRXJyb3IodC5lcnJvclByZWZpeF8rInBhdGggc3BlY2lmaWVkIGV4Y2VlZHMgdGhlIG1heGltdW0gZGVwdGggdGhhdCBjYW4gYmUgd3JpdHRlbiAoIitKYSsiKSBvciBvYmplY3QgY29udGFpbnMgYSBjeWNsZSAiK2d1KHQpKX1mdW5jdGlvbiBndSh0KXtyZXR1cm4gMD09PXQucGFydHNfLmxlbmd0aD8iIjoiaW4gcHJvcGVydHkgJyIrdC5wYXJ0c18uam9pbigiLiIpKyInIn12YXIgeXUsbXU9KFhpKGJ1LHl1PUdhKSxidS5nZXRJbnN0YW5jZT1mdW5jdGlvbigpe3JldHVybiBuZXcgYnV9LGJ1LnByb3RvdHlwZS5nZXRJbml0aWFsRXZlbnQ9ZnVuY3Rpb24odCl7cmV0dXJuIHNvKCJ2aXNpYmxlIj09PXQsIlVua25vd24gZXZlbnQgdHlwZTogIit0KSxbdGhpcy52aXNpYmxlX119LGJ1KTtmdW5jdGlvbiBidSgpe3ZhciBlLHQsbj15dS5jYWxsKHRoaXMsWyJ2aXNpYmxlIl0pfHx0aGlzO3JldHVybiJ1bmRlZmluZWQiIT10eXBlb2YgZG9jdW1lbnQmJnZvaWQgMCE9PWRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXImJih2b2lkIDAhPT1kb2N1bWVudC5oaWRkZW4/KHQ9InZpc2liaWxpdHljaGFuZ2UiLGU9ImhpZGRlbiIpOnZvaWQgMCE9PWRvY3VtZW50Lm1vekhpZGRlbj8odD0ibW96dmlzaWJpbGl0eWNoYW5nZSIsZT0ibW96SGlkZGVuIik6dm9pZCAwIT09ZG9jdW1lbnQubXNIaWRkZW4/KHQ9Im1zdmlzaWJpbGl0eWNoYW5nZSIsZT0ibXNIaWRkZW4iKTp2b2lkIDAhPT1kb2N1bWVudC53ZWJraXRIaWRkZW4mJih0PSJ3ZWJraXR2aXNpYmlsaXR5Y2hhbmdlIixlPSJ3ZWJraXRIaWRkZW4iKSksbi52aXNpYmxlXz0hMCx0JiZkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKHQsZnVuY3Rpb24oKXt2YXIgdD0hZG9jdW1lbnRbZV07dCE9PW4udmlzaWJsZV8mJihuLnZpc2libGVfPXQsbi50cmlnZ2VyKCJ2aXNpYmxlIix0KSl9LCExKSxufXZhciB3dSxfdT0xZTMsSXU9M2U1LFR1PShYaShFdSx3dT16KSxFdS5wcm90b3R5cGUuc2VuZFJlcXVlc3Q9ZnVuY3Rpb24odCxlLG4pe3ZhciByPSsrdGhpcy5yZXF1ZXN0TnVtYmVyXyxlPXtyOnIsYTp0LGI6ZX07dGhpcy5sb2dfKFJvKGUpKSxzbyh0aGlzLmNvbm5lY3RlZF8sInNlbmRSZXF1ZXN0IGNhbGwgd2hlbiB3ZSdyZSBub3QgY29ubmVjdGVkIG5vdCBhbGxvd2VkLiIpLHRoaXMucmVhbHRpbWVfLnNlbmRSZXF1ZXN0KGUpLG4mJih0aGlzLnJlcXVlc3RDQkhhc2hfW3JdPW4pfSxFdS5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKHQpe3ZhciBuPXRoaXMscj1uZXcgbG8saT17cDp0LnBhdGgudG9TdHJpbmcoKSxxOnQucXVlcnlPYmplY3QoKX0sZT17YWN0aW9uOiJnIixyZXF1ZXN0Omksb25Db21wbGV0ZTpmdW5jdGlvbih0KXt2YXIgZT10LmQ7Im9rIj09PXQucz8obi5vbkRhdGFVcGRhdGVfKGkucCxlLCExLG51bGwpLHIucmVzb2x2ZShlKSk6ci5yZWplY3QoZSl9fTt0aGlzLm91dHN0YW5kaW5nR2V0c18ucHVzaChlKSx0aGlzLm91dHN0YW5kaW5nR2V0Q291bnRfKys7dmFyIG89dGhpcy5vdXRzdGFuZGluZ0dldHNfLmxlbmd0aC0xO3JldHVybiB0aGlzLmNvbm5lY3RlZF98fHNldFRpbWVvdXQoZnVuY3Rpb24oKXt2YXIgdD1uLm91dHN0YW5kaW5nR2V0c19bb107dm9pZCAwIT09dCYmZT09PXQmJihkZWxldGUgbi5vdXRzdGFuZGluZ0dldHNfW29dLG4ub3V0c3RhbmRpbmdHZXRDb3VudF8tLSwwPT09bi5vdXRzdGFuZGluZ0dldENvdW50XyYmKG4ub3V0c3RhbmRpbmdHZXRzXz1bXSksbi5sb2dfKCJnZXQgIitvKyIgdGltZWQgb3V0IG9uIGNvbm5lY3Rpb24iKSxyLnJlamVjdChuZXcgRXJyb3IoIkNsaWVudCBpcyBvZmZsaW5lLiIpKSl9LDNlMyksdGhpcy5jb25uZWN0ZWRfJiZ0aGlzLnNlbmRHZXRfKG8pLHIucHJvbWlzZX0sRXUucHJvdG90eXBlLmxpc3Rlbj1mdW5jdGlvbih0LGUsbixyKXt2YXIgaT10LnF1ZXJ5SWRlbnRpZmllcigpLG89dC5wYXRoLnRvU3RyaW5nKCk7dGhpcy5sb2dfKCJMaXN0ZW4gY2FsbGVkIGZvciAiK28rIiAiK2kpLHRoaXMubGlzdGVucy5oYXMobyl8fHRoaXMubGlzdGVucy5zZXQobyxuZXcgTWFwKSxzbyh0LmdldFF1ZXJ5UGFyYW1zKCkuaXNEZWZhdWx0KCl8fCF0LmdldFF1ZXJ5UGFyYW1zKCkubG9hZHNBbGxEYXRhKCksImxpc3RlbigpIGNhbGxlZCBmb3Igbm9uLWRlZmF1bHQgYnV0IGNvbXBsZXRlIHF1ZXJ5Iiksc28oIXRoaXMubGlzdGVucy5nZXQobykuaGFzKGkpLCJsaXN0ZW4oKSBjYWxsZWQgdHdpY2UgZm9yIHNhbWUgcGF0aC9xdWVyeUlkLiIpO249e29uQ29tcGxldGU6cixoYXNoRm46ZSxxdWVyeTp0LHRhZzpufTt0aGlzLmxpc3RlbnMuZ2V0KG8pLnNldChpLG4pLHRoaXMuY29ubmVjdGVkXyYmdGhpcy5zZW5kTGlzdGVuXyhuKX0sRXUucHJvdG90eXBlLnNlbmRHZXRfPWZ1bmN0aW9uKGUpe3ZhciBuPXRoaXMscj10aGlzLm91dHN0YW5kaW5nR2V0c19bZV07dGhpcy5zZW5kUmVxdWVzdCgiZyIsci5yZXF1ZXN0LGZ1bmN0aW9uKHQpe2RlbGV0ZSBuLm91dHN0YW5kaW5nR2V0c19bZV0sbi5vdXRzdGFuZGluZ0dldENvdW50Xy0tLDA9PT1uLm91dHN0YW5kaW5nR2V0Q291bnRfJiYobi5vdXRzdGFuZGluZ0dldHNfPVtdKSxyLm9uQ29tcGxldGUmJnIub25Db21wbGV0ZSh0KX0pfSxFdS5wcm90b3R5cGUuc2VuZExpc3Rlbl89ZnVuY3Rpb24ocil7dmFyIGk9dGhpcyxvPXIucXVlcnkscz1vLnBhdGgudG9TdHJpbmcoKSxhPW8ucXVlcnlJZGVudGlmaWVyKCk7dGhpcy5sb2dfKCJMaXN0ZW4gb24gIitzKyIgZm9yICIrYSk7dmFyIHQ9e3A6c307ci50YWcmJih0LnE9by5xdWVyeU9iamVjdCgpLHQudD1yLnRhZyksdC5oPXIuaGFzaEZuKCksdGhpcy5zZW5kUmVxdWVzdCgicSIsdCxmdW5jdGlvbih0KXt2YXIgZT10LmQsbj10LnM7RXUud2Fybk9uTGlzdGVuV2FybmluZ3NfKGUsbyksKGkubGlzdGVucy5nZXQocykmJmkubGlzdGVucy5nZXQocykuZ2V0KGEpKT09PXImJihpLmxvZ18oImxpc3RlbiByZXNwb25zZSIsdCksIm9rIiE9PW4mJmkucmVtb3ZlTGlzdGVuXyhzLGEpLHIub25Db21wbGV0ZSYmci5vbkNvbXBsZXRlKG4sZSkpfSl9LEV1Lndhcm5Pbkxpc3Rlbldhcm5pbmdzXz1mdW5jdGlvbih0LGUpe3QmJiJvYmplY3QiPT10eXBlb2YgdCYmT28odCwidyIpJiYodD1Ebyh0LCJ3IiksQXJyYXkuaXNBcnJheSh0KSYmfnQuaW5kZXhPZigibm9faW5kZXgiKSYmKHQ9JyIuaW5kZXhPbiI6ICInK2UuZ2V0UXVlcnlQYXJhbXMoKS5nZXRJbmRleCgpLnRvU3RyaW5nKCkrJyInLGU9ZS5wYXRoLnRvU3RyaW5nKCksWnMoIlVzaW5nIGFuIHVuc3BlY2lmaWVkIGluZGV4LiBZb3VyIGRhdGEgd2lsbCBiZSBkb3dubG9hZGVkIGFuZCBmaWx0ZXJlZCBvbiB0aGUgY2xpZW50LiBDb25zaWRlciBhZGRpbmcgIit0KyIgYXQgIitlKyIgdG8geW91ciBzZWN1cml0eSBydWxlcyBmb3IgYmV0dGVyIHBlcmZvcm1hbmNlLiIpKSl9LEV1LnByb3RvdHlwZS5yZWZyZXNoQXV0aFRva2VuPWZ1bmN0aW9uKHQpe3RoaXMuYXV0aFRva2VuXz10LHRoaXMubG9nXygiQXV0aCB0b2tlbiByZWZyZXNoZWQiKSx0aGlzLmF1dGhUb2tlbl8/dGhpcy50cnlBdXRoKCk6dGhpcy5jb25uZWN0ZWRfJiZ0aGlzLnNlbmRSZXF1ZXN0KCJ1bmF1dGgiLHt9LGZ1bmN0aW9uKCl7fSksdGhpcy5yZWR1Y2VSZWNvbm5lY3REZWxheUlmQWRtaW5DcmVkZW50aWFsXyh0KX0sRXUucHJvdG90eXBlLnJlZHVjZVJlY29ubmVjdERlbGF5SWZBZG1pbkNyZWRlbnRpYWxfPWZ1bmN0aW9uKHQpeyh0JiY0MD09PXQubGVuZ3RofHxmdW5jdGlvbih0KXt0PVBvKHQpLmNsYWltcztyZXR1cm4ib2JqZWN0Ij09dHlwZW9mIHQmJiEwPT09dC5hZG1pbn0odCkpJiYodGhpcy5sb2dfKCJBZG1pbiBhdXRoIGNyZWRlbnRpYWwgZGV0ZWN0ZWQuICBSZWR1Y2luZyBtYXggcmVjb25uZWN0IHRpbWUuIiksdGhpcy5tYXhSZWNvbm5lY3REZWxheV89M2U0KX0sRXUucHJvdG90eXBlLnRyeUF1dGg9ZnVuY3Rpb24oKXt2YXIgbix0LGUscj10aGlzO3RoaXMuY29ubmVjdGVkXyYmdGhpcy5hdXRoVG9rZW5fJiYodD1mdW5jdGlvbih0KXt0PVBvKHQpLmNsYWltcztyZXR1cm4hIXQmJiJvYmplY3QiPT10eXBlb2YgdCYmdC5oYXNPd25Qcm9wZXJ0eSgiaWF0Iil9KG49dGhpcy5hdXRoVG9rZW5fKT8iYXV0aCI6ImdhdXRoIixlPXtjcmVkOm59LG51bGw9PT10aGlzLmF1dGhPdmVycmlkZV8/ZS5ub2F1dGg9ITA6Im9iamVjdCI9PXR5cGVvZiB0aGlzLmF1dGhPdmVycmlkZV8mJihlLmF1dGh2YXI9dGhpcy5hdXRoT3ZlcnJpZGVfKSx0aGlzLnNlbmRSZXF1ZXN0KHQsZSxmdW5jdGlvbih0KXt2YXIgZT10LnMsdD10LmR8fCJlcnJvciI7ci5hdXRoVG9rZW5fPT09biYmKCJvayI9PT1lP3IuaW52YWxpZEF1dGhUb2tlbkNvdW50Xz0wOnIub25BdXRoUmV2b2tlZF8oZSx0KSl9KSl9LEV1LnByb3RvdHlwZS51bmxpc3Rlbj1mdW5jdGlvbih0LGUpe3ZhciBuPXQucGF0aC50b1N0cmluZygpLHI9dC5xdWVyeUlkZW50aWZpZXIoKTt0aGlzLmxvZ18oIlVubGlzdGVuIGNhbGxlZCBmb3IgIituKyIgIityKSxzbyh0LmdldFF1ZXJ5UGFyYW1zKCkuaXNEZWZhdWx0KCl8fCF0LmdldFF1ZXJ5UGFyYW1zKCkubG9hZHNBbGxEYXRhKCksInVubGlzdGVuKCkgY2FsbGVkIGZvciBub24tZGVmYXVsdCBidXQgY29tcGxldGUgcXVlcnkiKSx0aGlzLnJlbW92ZUxpc3Rlbl8obixyKSYmdGhpcy5jb25uZWN0ZWRfJiZ0aGlzLnNlbmRVbmxpc3Rlbl8obixyLHQucXVlcnlPYmplY3QoKSxlKX0sRXUucHJvdG90eXBlLnNlbmRVbmxpc3Rlbl89ZnVuY3Rpb24odCxlLG4scil7dGhpcy5sb2dfKCJVbmxpc3RlbiBvbiAiK3QrIiBmb3IgIitlKTt0PXtwOnR9O3ImJih0LnE9bix0LnQ9ciksdGhpcy5zZW5kUmVxdWVzdCgibiIsdCl9LEV1LnByb3RvdHlwZS5vbkRpc2Nvbm5lY3RQdXQ9ZnVuY3Rpb24odCxlLG4pe3RoaXMuY29ubmVjdGVkXz90aGlzLnNlbmRPbkRpc2Nvbm5lY3RfKCJvIix0LGUsbik6dGhpcy5vbkRpc2Nvbm5lY3RSZXF1ZXN0UXVldWVfLnB1c2goe3BhdGhTdHJpbmc6dCxhY3Rpb246Im8iLGRhdGE6ZSxvbkNvbXBsZXRlOm59KX0sRXUucHJvdG90eXBlLm9uRGlzY29ubmVjdE1lcmdlPWZ1bmN0aW9uKHQsZSxuKXt0aGlzLmNvbm5lY3RlZF8/dGhpcy5zZW5kT25EaXNjb25uZWN0Xygib20iLHQsZSxuKTp0aGlzLm9uRGlzY29ubmVjdFJlcXVlc3RRdWV1ZV8ucHVzaCh7cGF0aFN0cmluZzp0LGFjdGlvbjoib20iLGRhdGE6ZSxvbkNvbXBsZXRlOm59KX0sRXUucHJvdG90eXBlLm9uRGlzY29ubmVjdENhbmNlbD1mdW5jdGlvbih0LGUpe3RoaXMuY29ubmVjdGVkXz90aGlzLnNlbmRPbkRpc2Nvbm5lY3RfKCJvYyIsdCxudWxsLGUpOnRoaXMub25EaXNjb25uZWN0UmVxdWVzdFF1ZXVlXy5wdXNoKHtwYXRoU3RyaW5nOnQsYWN0aW9uOiJvYyIsZGF0YTpudWxsLG9uQ29tcGxldGU6ZX0pfSxFdS5wcm90b3R5cGUuc2VuZE9uRGlzY29ubmVjdF89ZnVuY3Rpb24odCxlLG4scil7bj17cDplLGQ6bn07dGhpcy5sb2dfKCJvbkRpc2Nvbm5lY3QgIit0LG4pLHRoaXMuc2VuZFJlcXVlc3QodCxuLGZ1bmN0aW9uKHQpe3ImJnNldFRpbWVvdXQoZnVuY3Rpb24oKXtyKHQucyx0LmQpfSxNYXRoLmZsb29yKDApKX0pfSxFdS5wcm90b3R5cGUucHV0PWZ1bmN0aW9uKHQsZSxuLHIpe3RoaXMucHV0SW50ZXJuYWwoInAiLHQsZSxuLHIpfSxFdS5wcm90b3R5cGUubWVyZ2U9ZnVuY3Rpb24odCxlLG4scil7dGhpcy5wdXRJbnRlcm5hbCgibSIsdCxlLG4scil9LEV1LnByb3RvdHlwZS5wdXRJbnRlcm5hbD1mdW5jdGlvbih0LGUsbixyLGkpe249e3A6ZSxkOm59O3ZvaWQgMCE9PWkmJihuLmg9aSksdGhpcy5vdXRzdGFuZGluZ1B1dHNfLnB1c2goe2FjdGlvbjp0LHJlcXVlc3Q6bixvbkNvbXBsZXRlOnJ9KSx0aGlzLm91dHN0YW5kaW5nUHV0Q291bnRfKys7cj10aGlzLm91dHN0YW5kaW5nUHV0c18ubGVuZ3RoLTE7dGhpcy5jb25uZWN0ZWRfP3RoaXMuc2VuZFB1dF8ocik6dGhpcy5sb2dfKCJCdWZmZXJpbmcgcHV0OiAiK2UpfSxFdS5wcm90b3R5cGUuc2VuZFB1dF89ZnVuY3Rpb24oZSl7dmFyIG49dGhpcyxyPXRoaXMub3V0c3RhbmRpbmdQdXRzX1tlXS5hY3Rpb24sdD10aGlzLm91dHN0YW5kaW5nUHV0c19bZV0ucmVxdWVzdCxpPXRoaXMub3V0c3RhbmRpbmdQdXRzX1tlXS5vbkNvbXBsZXRlO3RoaXMub3V0c3RhbmRpbmdQdXRzX1tlXS5xdWV1ZWQ9dGhpcy5jb25uZWN0ZWRfLHRoaXMuc2VuZFJlcXVlc3Qocix0LGZ1bmN0aW9uKHQpe24ubG9nXyhyKyIgcmVzcG9uc2UiLHQpLGRlbGV0ZSBuLm91dHN0YW5kaW5nUHV0c19bZV0sbi5vdXRzdGFuZGluZ1B1dENvdW50Xy0tLDA9PT1uLm91dHN0YW5kaW5nUHV0Q291bnRfJiYobi5vdXRzdGFuZGluZ1B1dHNfPVtdKSxpJiZpKHQucyx0LmQpfSl9LEV1LnByb3RvdHlwZS5yZXBvcnRTdGF0cz1mdW5jdGlvbih0KXt2YXIgZT10aGlzO3RoaXMuY29ubmVjdGVkXyYmKHQ9e2M6dH0sdGhpcy5sb2dfKCJyZXBvcnRTdGF0cyIsdCksdGhpcy5zZW5kUmVxdWVzdCgicyIsdCxmdW5jdGlvbih0KXsib2siIT09dC5zJiYodD10LmQsZS5sb2dfKCJyZXBvcnRTdGF0cyIsIkVycm9yIHNlbmRpbmcgc3RhdHM6ICIrdCkpfSkpfSxFdS5wcm90b3R5cGUub25EYXRhTWVzc2FnZV89ZnVuY3Rpb24odCl7aWYoInIiaW4gdCl7dGhpcy5sb2dfKCJmcm9tIHNlcnZlcjogIitSbyh0KSk7dmFyIGU9dC5yLG49dGhpcy5yZXF1ZXN0Q0JIYXNoX1tlXTtuJiYoZGVsZXRlIHRoaXMucmVxdWVzdENCSGFzaF9bZV0sbih0LmIpKX1lbHNle2lmKCJlcnJvciJpbiB0KXRocm93IkEgc2VydmVyLXNpZGUgZXJyb3IgaGFzIG9jY3VycmVkOiAiK3QuZXJyb3I7ImEiaW4gdCYmdGhpcy5vbkRhdGFQdXNoXyh0LmEsdC5iKX19LEV1LnByb3RvdHlwZS5vbkRhdGFQdXNoXz1mdW5jdGlvbih0LGUpe3RoaXMubG9nXygiaGFuZGxlU2VydmVyTWVzc2FnZSIsdCxlKSwiZCI9PT10P3RoaXMub25EYXRhVXBkYXRlXyhlLnAsZS5kLCExLGUudCk6Im0iPT09dD90aGlzLm9uRGF0YVVwZGF0ZV8oZS5wLGUuZCwhMCxlLnQpOiJjIj09PXQ/dGhpcy5vbkxpc3RlblJldm9rZWRfKGUucCxlLnEpOiJhYyI9PT10P3RoaXMub25BdXRoUmV2b2tlZF8oZS5zLGUuZCk6InNkIj09PXQ/dGhpcy5vblNlY3VyaXR5RGVidWdQYWNrZXRfKGUpOkZzKCJVbnJlY29nbml6ZWQgYWN0aW9uIHJlY2VpdmVkIGZyb20gc2VydmVyOiAiK1JvKHQpKyJcbkFyZSB5b3UgdXNpbmcgdGhlIGxhdGVzdCBjbGllbnQ/Iil9LEV1LnByb3RvdHlwZS5vblJlYWR5Xz1mdW5jdGlvbih0LGUpe3RoaXMubG9nXygiY29ubmVjdGlvbiByZWFkeSIpLHRoaXMuY29ubmVjdGVkXz0hMCx0aGlzLmxhc3RDb25uZWN0aW9uRXN0YWJsaXNoZWRUaW1lXz0obmV3IERhdGUpLmdldFRpbWUoKSx0aGlzLmhhbmRsZVRpbWVzdGFtcF8odCksdGhpcy5sYXN0U2Vzc2lvbklkPWUsdGhpcy5maXJzdENvbm5lY3Rpb25fJiZ0aGlzLnNlbmRDb25uZWN0U3RhdHNfKCksdGhpcy5yZXN0b3JlU3RhdGVfKCksdGhpcy5maXJzdENvbm5lY3Rpb25fPSExLHRoaXMub25Db25uZWN0U3RhdHVzXyghMCl9LEV1LnByb3RvdHlwZS5zY2hlZHVsZUNvbm5lY3RfPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7c28oIXRoaXMucmVhbHRpbWVfLCJTY2hlZHVsaW5nIGEgY29ubmVjdCB3aGVuIHdlJ3JlIGFscmVhZHkgY29ubmVjdGVkL2luZz8iKSx0aGlzLmVzdGFibGlzaENvbm5lY3Rpb25UaW1lcl8mJmNsZWFyVGltZW91dCh0aGlzLmVzdGFibGlzaENvbm5lY3Rpb25UaW1lcl8pLHRoaXMuZXN0YWJsaXNoQ29ubmVjdGlvblRpbWVyXz1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ZS5lc3RhYmxpc2hDb25uZWN0aW9uVGltZXJfPW51bGwsZS5lc3RhYmxpc2hDb25uZWN0aW9uXygpfSxNYXRoLmZsb29yKHQpKX0sRXUucHJvdG90eXBlLm9uVmlzaWJsZV89ZnVuY3Rpb24odCl7dCYmIXRoaXMudmlzaWJsZV8mJnRoaXMucmVjb25uZWN0RGVsYXlfPT09dGhpcy5tYXhSZWNvbm5lY3REZWxheV8mJih0aGlzLmxvZ18oIldpbmRvdyBiZWNhbWUgdmlzaWJsZS4gIFJlZHVjaW5nIGRlbGF5LiIpLHRoaXMucmVjb25uZWN0RGVsYXlfPV91LHRoaXMucmVhbHRpbWVffHx0aGlzLnNjaGVkdWxlQ29ubmVjdF8oMCkpLHRoaXMudmlzaWJsZV89dH0sRXUucHJvdG90eXBlLm9uT25saW5lXz1mdW5jdGlvbih0KXt0Pyh0aGlzLmxvZ18oIkJyb3dzZXIgd2VudCBvbmxpbmUuIiksdGhpcy5yZWNvbm5lY3REZWxheV89X3UsdGhpcy5yZWFsdGltZV98fHRoaXMuc2NoZWR1bGVDb25uZWN0XygwKSk6KHRoaXMubG9nXygiQnJvd3NlciB3ZW50IG9mZmxpbmUuICBLaWxsaW5nIGNvbm5lY3Rpb24uIiksdGhpcy5yZWFsdGltZV8mJnRoaXMucmVhbHRpbWVfLmNsb3NlKCkpfSxFdS5wcm90b3R5cGUub25SZWFsdGltZURpc2Nvbm5lY3RfPWZ1bmN0aW9uKCl7dmFyIHQ7dGhpcy5sb2dfKCJkYXRhIGNsaWVudCBkaXNjb25uZWN0ZWQiKSx0aGlzLmNvbm5lY3RlZF89ITEsdGhpcy5yZWFsdGltZV89bnVsbCx0aGlzLmNhbmNlbFNlbnRUcmFuc2FjdGlvbnNfKCksdGhpcy5yZXF1ZXN0Q0JIYXNoXz17fSx0aGlzLnNob3VsZFJlY29ubmVjdF8oKSYmKHRoaXMudmlzaWJsZV8/dGhpcy5sYXN0Q29ubmVjdGlvbkVzdGFibGlzaGVkVGltZV8mJigzZTQ8KG5ldyBEYXRlKS5nZXRUaW1lKCktdGhpcy5sYXN0Q29ubmVjdGlvbkVzdGFibGlzaGVkVGltZV8mJih0aGlzLnJlY29ubmVjdERlbGF5Xz1fdSksdGhpcy5sYXN0Q29ubmVjdGlvbkVzdGFibGlzaGVkVGltZV89bnVsbCk6KHRoaXMubG9nXygiV2luZG93IGlzbid0IHZpc2libGUuICBEZWxheWluZyByZWNvbm5lY3QuIiksdGhpcy5yZWNvbm5lY3REZWxheV89dGhpcy5tYXhSZWNvbm5lY3REZWxheV8sdGhpcy5sYXN0Q29ubmVjdGlvbkF0dGVtcHRUaW1lXz0obmV3IERhdGUpLmdldFRpbWUoKSksdD0obmV3IERhdGUpLmdldFRpbWUoKS10aGlzLmxhc3RDb25uZWN0aW9uQXR0ZW1wdFRpbWVfLHQ9TWF0aC5tYXgoMCx0aGlzLnJlY29ubmVjdERlbGF5Xy10KSx0PU1hdGgucmFuZG9tKCkqdCx0aGlzLmxvZ18oIlRyeWluZyB0byByZWNvbm5lY3QgaW4gIit0KyJtcyIpLHRoaXMuc2NoZWR1bGVDb25uZWN0Xyh0KSx0aGlzLnJlY29ubmVjdERlbGF5Xz1NYXRoLm1pbih0aGlzLm1heFJlY29ubmVjdERlbGF5XywxLjMqdGhpcy5yZWNvbm5lY3REZWxheV8pKSx0aGlzLm9uQ29ubmVjdFN0YXR1c18oITEpfSxFdS5wcm90b3R5cGUuZXN0YWJsaXNoQ29ubmVjdGlvbl89ZnVuY3Rpb24oKXt2YXIgZSxuLHIsaSxvLHMsYSx1LGMsdCxoPXRoaXM7dGhpcy5zaG91bGRSZWNvbm5lY3RfKCkmJih0aGlzLmxvZ18oIk1ha2luZyBhIGNvbm5lY3Rpb24gYXR0ZW1wdCIpLHRoaXMubGFzdENvbm5lY3Rpb25BdHRlbXB0VGltZV89KG5ldyBEYXRlKS5nZXRUaW1lKCksdGhpcy5sYXN0Q29ubmVjdGlvbkVzdGFibGlzaGVkVGltZV89bnVsbCxlPXRoaXMub25EYXRhTWVzc2FnZV8uYmluZCh0aGlzKSxuPXRoaXMub25SZWFkeV8uYmluZCh0aGlzKSxyPXRoaXMub25SZWFsdGltZURpc2Nvbm5lY3RfLmJpbmQodGhpcyksaT10aGlzLmlkKyI6IitFdS5uZXh0Q29ubmVjdGlvbklkXysrLHM9KG89dGhpcykubGFzdFNlc3Npb25JZCxhPSExLHU9bnVsbCxjPWZ1bmN0aW9uKCl7dT91LmNsb3NlKCk6KGE9ITAscigpKX0sdGhpcy5yZWFsdGltZV89e2Nsb3NlOmMsc2VuZFJlcXVlc3Q6ZnVuY3Rpb24odCl7c28odSwic2VuZFJlcXVlc3QgY2FsbCB3aGVuIHdlJ3JlIG5vdCBjb25uZWN0ZWQgbm90IGFsbG93ZWQuIiksdS5zZW5kUmVxdWVzdCh0KX19LHQ9dGhpcy5mb3JjZVRva2VuUmVmcmVzaF8sdGhpcy5mb3JjZVRva2VuUmVmcmVzaF89ITEsdGhpcy5hdXRoVG9rZW5Qcm92aWRlcl8uZ2V0VG9rZW4odCkudGhlbihmdW5jdGlvbih0KXthP1hzKCJnZXRUb2tlbigpIGNvbXBsZXRlZCBidXQgd2FzIGNhbmNlbGVkIik6KFhzKCJnZXRUb2tlbigpIGNvbXBsZXRlZC4gQ3JlYXRpbmcgY29ubmVjdGlvbi4iKSxvLmF1dGhUb2tlbl89dCYmdC5hY2Nlc3NUb2tlbix1PW5ldyBLYShpLG8ucmVwb0luZm9fLG8uYXBwbGljYXRpb25JZF8sZSxuLHIsZnVuY3Rpb24odCl7WnModCsiICgiK28ucmVwb0luZm9fLnRvU3RyaW5nKCkrIikiKSxvLmludGVycnVwdCgic2VydmVyX2tpbGwiKX0scykpfSkudGhlbihudWxsLGZ1bmN0aW9uKHQpe28ubG9nXygiRmFpbGVkIHRvIGdldCB0b2tlbjogIit0KSxhfHwoaC5yZXBvSW5mb18ubm9kZUFkbWluJiZacyh0KSxjKCkpfSkpfSxFdS5wcm90b3R5cGUuaW50ZXJydXB0PWZ1bmN0aW9uKHQpe1hzKCJJbnRlcnJ1cHRpbmcgY29ubmVjdGlvbiBmb3IgcmVhc29uOiAiK3QpLHRoaXMuaW50ZXJydXB0UmVhc29uc19bdF09ITAsdGhpcy5yZWFsdGltZV8/dGhpcy5yZWFsdGltZV8uY2xvc2UoKToodGhpcy5lc3RhYmxpc2hDb25uZWN0aW9uVGltZXJfJiYoY2xlYXJUaW1lb3V0KHRoaXMuZXN0YWJsaXNoQ29ubmVjdGlvblRpbWVyXyksdGhpcy5lc3RhYmxpc2hDb25uZWN0aW9uVGltZXJfPW51bGwpLHRoaXMuY29ubmVjdGVkXyYmdGhpcy5vblJlYWx0aW1lRGlzY29ubmVjdF8oKSl9LEV1LnByb3RvdHlwZS5yZXN1bWU9ZnVuY3Rpb24odCl7WHMoIlJlc3VtaW5nIGNvbm5lY3Rpb24gZm9yIHJlYXNvbjogIit0KSxkZWxldGUgdGhpcy5pbnRlcnJ1cHRSZWFzb25zX1t0XSx4byh0aGlzLmludGVycnVwdFJlYXNvbnNfKSYmKHRoaXMucmVjb25uZWN0RGVsYXlfPV91LHRoaXMucmVhbHRpbWVffHx0aGlzLnNjaGVkdWxlQ29ubmVjdF8oMCkpfSxFdS5wcm90b3R5cGUuaGFuZGxlVGltZXN0YW1wXz1mdW5jdGlvbih0KXt0LT0obmV3IERhdGUpLmdldFRpbWUoKTt0aGlzLm9uU2VydmVySW5mb1VwZGF0ZV8oe3NlcnZlclRpbWVPZmZzZXQ6dH0pfSxFdS5wcm90b3R5cGUuY2FuY2VsU2VudFRyYW5zYWN0aW9uc189ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMub3V0c3RhbmRpbmdQdXRzXy5sZW5ndGg7dCsrKXt2YXIgZT10aGlzLm91dHN0YW5kaW5nUHV0c19bdF07ZSYmImgiaW4gZS5yZXF1ZXN0JiZlLnF1ZXVlZCYmKGUub25Db21wbGV0ZSYmZS5vbkNvbXBsZXRlKCJkaXNjb25uZWN0IiksZGVsZXRlIHRoaXMub3V0c3RhbmRpbmdQdXRzX1t0XSx0aGlzLm91dHN0YW5kaW5nUHV0Q291bnRfLS0pfTA9PT10aGlzLm91dHN0YW5kaW5nUHV0Q291bnRfJiYodGhpcy5vdXRzdGFuZGluZ1B1dHNfPVtdKX0sRXUucHJvdG90eXBlLm9uTGlzdGVuUmV2b2tlZF89ZnVuY3Rpb24odCxlKXtlPWU/ZS5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIHJhKHQpfSkuam9pbigiJCIpOiJkZWZhdWx0IixlPXRoaXMucmVtb3ZlTGlzdGVuXyh0LGUpO2UmJmUub25Db21wbGV0ZSYmZS5vbkNvbXBsZXRlKCJwZXJtaXNzaW9uX2RlbmllZCIpfSxFdS5wcm90b3R5cGUucmVtb3ZlTGlzdGVuXz1mdW5jdGlvbih0LGUpe3ZhciBuLHI9bmV3IFphKHQpLnRvU3RyaW5nKCk7cmV0dXJuIHRoaXMubGlzdGVucy5oYXMocik/KG49KHQ9dGhpcy5saXN0ZW5zLmdldChyKSkuZ2V0KGUpLHQuZGVsZXRlKGUpLDA9PT10LnNpemUmJnRoaXMubGlzdGVucy5kZWxldGUocikpOm49dm9pZCAwLG59LEV1LnByb3RvdHlwZS5vbkF1dGhSZXZva2VkXz1mdW5jdGlvbih0LGUpe1hzKCJBdXRoIHRva2VuIHJldm9rZWQ6ICIrdCsiLyIrZSksdGhpcy5hdXRoVG9rZW5fPW51bGwsdGhpcy5mb3JjZVRva2VuUmVmcmVzaF89ITAsdGhpcy5yZWFsdGltZV8uY2xvc2UoKSwiaW52YWxpZF90b2tlbiIhPT10JiYicGVybWlzc2lvbl9kZW5pZWQiIT09dHx8KHRoaXMuaW52YWxpZEF1dGhUb2tlbkNvdW50XysrLDM8PXRoaXMuaW52YWxpZEF1dGhUb2tlbkNvdW50XyYmKHRoaXMucmVjb25uZWN0RGVsYXlfPTNlNCx0aGlzLmF1dGhUb2tlblByb3ZpZGVyXy5ub3RpZnlGb3JJbnZhbGlkVG9rZW4oKSkpfSxFdS5wcm90b3R5cGUub25TZWN1cml0eURlYnVnUGFja2V0Xz1mdW5jdGlvbih0KXt0aGlzLnNlY3VyaXR5RGVidWdDYWxsYmFja18/dGhpcy5zZWN1cml0eURlYnVnQ2FsbGJhY2tfKHQpOiJtc2ciaW4gdCYmY29uc29sZS5sb2coIkZJUkVCQVNFOiAiK3QubXNnLnJlcGxhY2UoIlxuIiwiXG5GSVJFQkFTRTogIikpfSxFdS5wcm90b3R5cGUucmVzdG9yZVN0YXRlXz1mdW5jdGlvbigpe3ZhciBlLHQsbixyO3RoaXMudHJ5QXV0aCgpO3RyeXtmb3IodmFyIGk9dG8odGhpcy5saXN0ZW5zLnZhbHVlcygpKSxvPWkubmV4dCgpOyFvLmRvbmU7bz1pLm5leHQoKSl7dmFyIHM9by52YWx1ZTt0cnl7Zm9yKHZhciBhPShuPXZvaWQgMCx0byhzLnZhbHVlcygpKSksdT1hLm5leHQoKTshdS5kb25lO3U9YS5uZXh0KCkpe3ZhciBjPXUudmFsdWU7dGhpcy5zZW5kTGlzdGVuXyhjKX19Y2F0Y2godCl7bj17ZXJyb3I6dH19ZmluYWxseXt0cnl7dSYmIXUuZG9uZSYmKHI9YS5yZXR1cm4pJiZyLmNhbGwoYSl9ZmluYWxseXtpZihuKXRocm93IG4uZXJyb3J9fX19Y2F0Y2godCl7ZT17ZXJyb3I6dH19ZmluYWxseXt0cnl7byYmIW8uZG9uZSYmKHQ9aS5yZXR1cm4pJiZ0LmNhbGwoaSl9ZmluYWxseXtpZihlKXRocm93IGUuZXJyb3J9fWZvcih2YXIgaD0wO2g8dGhpcy5vdXRzdGFuZGluZ1B1dHNfLmxlbmd0aDtoKyspdGhpcy5vdXRzdGFuZGluZ1B1dHNfW2hdJiZ0aGlzLnNlbmRQdXRfKGgpO2Zvcig7dGhpcy5vbkRpc2Nvbm5lY3RSZXF1ZXN0UXVldWVfLmxlbmd0aDspe3ZhciBsPXRoaXMub25EaXNjb25uZWN0UmVxdWVzdFF1ZXVlXy5zaGlmdCgpO3RoaXMuc2VuZE9uRGlzY29ubmVjdF8obC5hY3Rpb24sbC5wYXRoU3RyaW5nLGwuZGF0YSxsLm9uQ29tcGxldGUpfWZvcihoPTA7aDx0aGlzLm91dHN0YW5kaW5nR2V0c18ubGVuZ3RoO2grKyl0aGlzLm91dHN0YW5kaW5nR2V0c19baF0mJnRoaXMuc2VuZEdldF8oaCl9LEV1LnByb3RvdHlwZS5zZW5kQ29ubmVjdFN0YXRzXz1mdW5jdGlvbigpe3ZhciB0PXt9O3RbInNkay5qcy4iK01hLnJlcGxhY2UoL1wuL2csIi0iKV09MSx2bygpP3RbImZyYW1ld29yay5jb3Jkb3ZhIl09MTp5bygpJiYodFsiZnJhbWV3b3JrLnJlYWN0bmF0aXZlIl09MSksdGhpcy5yZXBvcnRTdGF0cyh0KX0sRXUucHJvdG90eXBlLnNob3VsZFJlY29ubmVjdF89ZnVuY3Rpb24oKXt2YXIgdD1ZYS5nZXRJbnN0YW5jZSgpLmN1cnJlbnRseU9ubGluZSgpO3JldHVybiB4byh0aGlzLmludGVycnVwdFJlYXNvbnNfKSYmdH0sRXUubmV4dFBlcnNpc3RlbnRDb25uZWN0aW9uSWRfPTAsRXUubmV4dENvbm5lY3Rpb25JZF89MCxFdSk7ZnVuY3Rpb24gRXUodCxlLG4scixpLG8scyl7dmFyIGE9d3UuY2FsbCh0aGlzKXx8dGhpcztpZihhLnJlcG9JbmZvXz10LGEuYXBwbGljYXRpb25JZF89ZSxhLm9uRGF0YVVwZGF0ZV89bixhLm9uQ29ubmVjdFN0YXR1c189cixhLm9uU2VydmVySW5mb1VwZGF0ZV89aSxhLmF1dGhUb2tlblByb3ZpZGVyXz1vLGEuYXV0aE92ZXJyaWRlXz1zLGEuaWQ9RXUubmV4dFBlcnNpc3RlbnRDb25uZWN0aW9uSWRfKyssYS5sb2dfPUpzKCJwOiIrYS5pZCsiOiIpLGEuaW50ZXJydXB0UmVhc29uc189e30sYS5saXN0ZW5zPW5ldyBNYXAsYS5vdXRzdGFuZGluZ1B1dHNfPVtdLGEub3V0c3RhbmRpbmdHZXRzXz1bXSxhLm91dHN0YW5kaW5nUHV0Q291bnRfPTAsYS5vdXRzdGFuZGluZ0dldENvdW50Xz0wLGEub25EaXNjb25uZWN0UmVxdWVzdFF1ZXVlXz1bXSxhLmNvbm5lY3RlZF89ITEsYS5yZWNvbm5lY3REZWxheV89X3UsYS5tYXhSZWNvbm5lY3REZWxheV89SXUsYS5zZWN1cml0eURlYnVnQ2FsbGJhY2tfPW51bGwsYS5sYXN0U2Vzc2lvbklkPW51bGwsYS5lc3RhYmxpc2hDb25uZWN0aW9uVGltZXJfPW51bGwsYS52aXNpYmxlXz0hMSxhLnJlcXVlc3RDQkhhc2hfPXt9LGEucmVxdWVzdE51bWJlcl89MCxhLnJlYWx0aW1lXz1udWxsLGEuYXV0aFRva2VuXz1udWxsLGEuZm9yY2VUb2tlblJlZnJlc2hfPSExLGEuaW52YWxpZEF1dGhUb2tlbkNvdW50Xz0wLGEuZmlyc3RDb25uZWN0aW9uXz0hMCxhLmxhc3RDb25uZWN0aW9uQXR0ZW1wdFRpbWVfPW51bGwsYS5sYXN0Q29ubmVjdGlvbkVzdGFibGlzaGVkVGltZV89bnVsbCxzJiYhbW8oKSl0aHJvdyBuZXcgRXJyb3IoIkF1dGggb3ZlcnJpZGUgc3BlY2lmaWVkIGluIG9wdGlvbnMsIGJ1dCBub3Qgc3VwcG9ydGVkIG9uIG5vbiBOb2RlLmpzIHBsYXRmb3JtcyIpO3JldHVybiBhLnNjaGVkdWxlQ29ubmVjdF8oMCksbXUuZ2V0SW5zdGFuY2UoKS5vbigidmlzaWJsZSIsYS5vblZpc2libGVfLGEpLC0xPT09dC5ob3N0LmluZGV4T2YoImZibG9jYWwiKSYmWWEuZ2V0SW5zdGFuY2UoKS5vbigib25saW5lIixhLm9uT25saW5lXyxhKSxhfXZhciBTdT0oQ3UuV3JhcD1mdW5jdGlvbih0LGUpe3JldHVybiBuZXcgQ3UodCxlKX0sQ3UpO2Z1bmN0aW9uIEN1KHQsZSl7dGhpcy5uYW1lPXQsdGhpcy5ub2RlPWV9dmFyIE51LEc9KEF1LnByb3RvdHlwZS5nZXRDb21wYXJlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY29tcGFyZS5iaW5kKHRoaXMpfSxBdS5wcm90b3R5cGUuaW5kZXhlZFZhbHVlQ2hhbmdlZD1mdW5jdGlvbih0LGUpe3Q9bmV3IFN1KHRhLHQpLGU9bmV3IFN1KHRhLGUpO3JldHVybiAwIT09dGhpcy5jb21wYXJlKHQsZSl9LEF1LnByb3RvdHlwZS5taW5Qb3N0PWZ1bmN0aW9uKCl7cmV0dXJuIFN1Lk1JTn0sQXUpO2Z1bmN0aW9uIEF1KCl7fXZhciBrdSxTbj0oWGkoUnUsa3U9RyksT2JqZWN0LmRlZmluZVByb3BlcnR5KFJ1LCJfX0VNUFRZX05PREUiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gTnV9LHNldDpmdW5jdGlvbih0KXtOdT10fSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLFJ1LnByb3RvdHlwZS5jb21wYXJlPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5hKHQubmFtZSxlLm5hbWUpfSxSdS5wcm90b3R5cGUuaXNEZWZpbmVkT249ZnVuY3Rpb24odCl7dGhyb3cgYW8oIktleUluZGV4LmlzRGVmaW5lZE9uIG5vdCBleHBlY3RlZCB0byBiZSBjYWxsZWQuIil9LFJ1LnByb3RvdHlwZS5pbmRleGVkVmFsdWVDaGFuZ2VkPWZ1bmN0aW9uKHQsZSl7cmV0dXJuITF9LFJ1LnByb3RvdHlwZS5taW5Qb3N0PWZ1bmN0aW9uKCl7cmV0dXJuIFN1Lk1JTn0sUnUucHJvdG90eXBlLm1heFBvc3Q9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IFN1KGVhLE51KX0sUnUucHJvdG90eXBlLm1ha2VQb3N0PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHNvKCJzdHJpbmciPT10eXBlb2YgdCwiS2V5SW5kZXggaW5kZXhWYWx1ZSBtdXN0IGFsd2F5cyBiZSBhIHN0cmluZy4iKSxuZXcgU3UodCxOdSl9LFJ1LnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiIua2V5In0sUnUpO2Z1bmN0aW9uIFJ1KCl7cmV0dXJuIG51bGwhPT1rdSYma3UuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzfXZhciBQdT1uZXcgU24sT3U9KER1LnByb3RvdHlwZS5nZXROZXh0PWZ1bmN0aW9uKCl7aWYoMD09PXRoaXMubm9kZVN0YWNrXy5sZW5ndGgpcmV0dXJuIG51bGw7dmFyIHQ9dGhpcy5ub2RlU3RhY2tfLnBvcCgpLGU9dGhpcy5yZXN1bHRHZW5lcmF0b3JfP3RoaXMucmVzdWx0R2VuZXJhdG9yXyh0LmtleSx0LnZhbHVlKTp7a2V5OnQua2V5LHZhbHVlOnQudmFsdWV9O2lmKHRoaXMuaXNSZXZlcnNlXylmb3IodD10LmxlZnQ7IXQuaXNFbXB0eSgpOyl0aGlzLm5vZGVTdGFja18ucHVzaCh0KSx0PXQucmlnaHQ7ZWxzZSBmb3IodD10LnJpZ2h0OyF0LmlzRW1wdHkoKTspdGhpcy5ub2RlU3RhY2tfLnB1c2godCksdD10LmxlZnQ7cmV0dXJuIGV9LER1LnByb3RvdHlwZS5oYXNOZXh0PWZ1bmN0aW9uKCl7cmV0dXJuIDA8dGhpcy5ub2RlU3RhY2tfLmxlbmd0aH0sRHUucHJvdG90eXBlLnBlZWs9ZnVuY3Rpb24oKXtpZigwPT09dGhpcy5ub2RlU3RhY2tfLmxlbmd0aClyZXR1cm4gbnVsbDt2YXIgdD10aGlzLm5vZGVTdGFja19bdGhpcy5ub2RlU3RhY2tfLmxlbmd0aC0xXTtyZXR1cm4gdGhpcy5yZXN1bHRHZW5lcmF0b3JfP3RoaXMucmVzdWx0R2VuZXJhdG9yXyh0LmtleSx0LnZhbHVlKTp7a2V5OnQua2V5LHZhbHVlOnQudmFsdWV9fSxEdSk7ZnVuY3Rpb24gRHUodCxlLG4scixpKXt2b2lkIDA9PT1pJiYoaT1udWxsKSx0aGlzLmlzUmV2ZXJzZV89cix0aGlzLnJlc3VsdEdlbmVyYXRvcl89aSx0aGlzLm5vZGVTdGFja189W107Zm9yKHZhciBvPTE7IXQuaXNFbXB0eSgpOylpZihvPWU/bih0LmtleSxlKToxLHImJihvKj0tMSksbzwwKXQ9dGhpcy5pc1JldmVyc2VfP3QubGVmdDp0LnJpZ2h0O2Vsc2V7aWYoMD09PW8pe3RoaXMubm9kZVN0YWNrXy5wdXNoKHQpO2JyZWFrfXRoaXMubm9kZVN0YWNrXy5wdXNoKHQpLHQ9dGhpcy5pc1JldmVyc2VfP3QucmlnaHQ6dC5sZWZ0fX12YXIgeHU9KEx1LnByb3RvdHlwZS5jb3B5PWZ1bmN0aW9uKHQsZSxuLHIsaSl7cmV0dXJuIG5ldyBMdShudWxsIT10P3Q6dGhpcy5rZXksbnVsbCE9ZT9lOnRoaXMudmFsdWUsbnVsbCE9bj9uOnRoaXMuY29sb3IsbnVsbCE9cj9yOnRoaXMubGVmdCxudWxsIT1pP2k6dGhpcy5yaWdodCl9LEx1LnByb3RvdHlwZS5jb3VudD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmxlZnQuY291bnQoKSsxK3RoaXMucmlnaHQuY291bnQoKX0sTHUucHJvdG90eXBlLmlzRW1wdHk9ZnVuY3Rpb24oKXtyZXR1cm4hMX0sTHUucHJvdG90eXBlLmlub3JkZXJUcmF2ZXJzYWw9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMubGVmdC5pbm9yZGVyVHJhdmVyc2FsKHQpfHwhIXQodGhpcy5rZXksdGhpcy52YWx1ZSl8fHRoaXMucmlnaHQuaW5vcmRlclRyYXZlcnNhbCh0KX0sTHUucHJvdG90eXBlLnJldmVyc2VUcmF2ZXJzYWw9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMucmlnaHQucmV2ZXJzZVRyYXZlcnNhbCh0KXx8dCh0aGlzLmtleSx0aGlzLnZhbHVlKXx8dGhpcy5sZWZ0LnJldmVyc2VUcmF2ZXJzYWwodCl9LEx1LnByb3RvdHlwZS5taW5fPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubGVmdC5pc0VtcHR5KCk/dGhpczp0aGlzLmxlZnQubWluXygpfSxMdS5wcm90b3R5cGUubWluS2V5PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubWluXygpLmtleX0sTHUucHJvdG90eXBlLm1heEtleT1mdW5jdGlvbigpe3JldHVybiB0aGlzLnJpZ2h0LmlzRW1wdHkoKT90aGlzLmtleTp0aGlzLnJpZ2h0Lm1heEtleSgpfSxMdS5wcm90b3R5cGUuaW5zZXJ0PWZ1bmN0aW9uKHQsZSxuKXt2YXIgcj10aGlzLGk9bih0LHIua2V5KTtyZXR1cm4ocj1pPDA/ci5jb3B5KG51bGwsbnVsbCxudWxsLHIubGVmdC5pbnNlcnQodCxlLG4pLG51bGwpOjA9PT1pP3IuY29weShudWxsLGUsbnVsbCxudWxsLG51bGwpOnIuY29weShudWxsLG51bGwsbnVsbCxudWxsLHIucmlnaHQuaW5zZXJ0KHQsZSxuKSkpLmZpeFVwXygpfSxMdS5wcm90b3R5cGUucmVtb3ZlTWluXz1mdW5jdGlvbigpe2lmKHRoaXMubGVmdC5pc0VtcHR5KCkpcmV0dXJuIFV1LkVNUFRZX05PREU7dmFyIHQ9dGhpcztyZXR1cm4odD0odD0hdC5sZWZ0LmlzUmVkXygpJiYhdC5sZWZ0LmxlZnQuaXNSZWRfKCk/dC5tb3ZlUmVkTGVmdF8oKTp0KS5jb3B5KG51bGwsbnVsbCxudWxsLHQubGVmdC5yZW1vdmVNaW5fKCksbnVsbCkpLmZpeFVwXygpfSxMdS5wcm90b3R5cGUucmVtb3ZlPWZ1bmN0aW9uKHQsZSl7dmFyIG4scj10aGlzO2lmKGUodCxyLmtleSk8MClyPShyPSEoci5sZWZ0LmlzRW1wdHkoKXx8ci5sZWZ0LmlzUmVkXygpfHxyLmxlZnQubGVmdC5pc1JlZF8oKSk/ci5tb3ZlUmVkTGVmdF8oKTpyKS5jb3B5KG51bGwsbnVsbCxudWxsLHIubGVmdC5yZW1vdmUodCxlKSxudWxsKTtlbHNle2lmKDA9PT1lKHQsKHI9ISgocj1yLmxlZnQuaXNSZWRfKCk/ci5yb3RhdGVSaWdodF8oKTpyKS5yaWdodC5pc0VtcHR5KCl8fHIucmlnaHQuaXNSZWRfKCl8fHIucmlnaHQubGVmdC5pc1JlZF8oKSk/ci5tb3ZlUmVkUmlnaHRfKCk6cikua2V5KSl7aWYoci5yaWdodC5pc0VtcHR5KCkpcmV0dXJuIFV1LkVNUFRZX05PREU7bj1yLnJpZ2h0Lm1pbl8oKSxyPXIuY29weShuLmtleSxuLnZhbHVlLG51bGwsbnVsbCxyLnJpZ2h0LnJlbW92ZU1pbl8oKSl9cj1yLmNvcHkobnVsbCxudWxsLG51bGwsbnVsbCxyLnJpZ2h0LnJlbW92ZSh0LGUpKX1yZXR1cm4gci5maXhVcF8oKX0sTHUucHJvdG90eXBlLmlzUmVkXz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmNvbG9yfSxMdS5wcm90b3R5cGUuZml4VXBfPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztyZXR1cm4gdD0odD0odD10LnJpZ2h0LmlzUmVkXygpJiYhdC5sZWZ0LmlzUmVkXygpP3Qucm90YXRlTGVmdF8oKTp0KS5sZWZ0LmlzUmVkXygpJiZ0LmxlZnQubGVmdC5pc1JlZF8oKT90LnJvdGF0ZVJpZ2h0XygpOnQpLmxlZnQuaXNSZWRfKCkmJnQucmlnaHQuaXNSZWRfKCk/dC5jb2xvckZsaXBfKCk6dH0sTHUucHJvdG90eXBlLm1vdmVSZWRMZWZ0Xz1mdW5jdGlvbigpe3ZhciB0PXRoaXMuY29sb3JGbGlwXygpO3JldHVybiB0PXQucmlnaHQubGVmdC5pc1JlZF8oKT8odD0odD10LmNvcHkobnVsbCxudWxsLG51bGwsbnVsbCx0LnJpZ2h0LnJvdGF0ZVJpZ2h0XygpKSkucm90YXRlTGVmdF8oKSkuY29sb3JGbGlwXygpOnR9LEx1LnByb3RvdHlwZS5tb3ZlUmVkUmlnaHRfPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5jb2xvckZsaXBfKCk7cmV0dXJuIHQ9dC5sZWZ0LmxlZnQuaXNSZWRfKCk/KHQ9dC5yb3RhdGVSaWdodF8oKSkuY29sb3JGbGlwXygpOnR9LEx1LnByb3RvdHlwZS5yb3RhdGVMZWZ0Xz1mdW5jdGlvbigpe3ZhciB0PXRoaXMuY29weShudWxsLG51bGwsTHUuUkVELG51bGwsdGhpcy5yaWdodC5sZWZ0KTtyZXR1cm4gdGhpcy5yaWdodC5jb3B5KG51bGwsbnVsbCx0aGlzLmNvbG9yLHQsbnVsbCl9LEx1LnByb3RvdHlwZS5yb3RhdGVSaWdodF89ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmNvcHkobnVsbCxudWxsLEx1LlJFRCx0aGlzLmxlZnQucmlnaHQsbnVsbCk7cmV0dXJuIHRoaXMubGVmdC5jb3B5KG51bGwsbnVsbCx0aGlzLmNvbG9yLG51bGwsdCl9LEx1LnByb3RvdHlwZS5jb2xvckZsaXBfPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5sZWZ0LmNvcHkobnVsbCxudWxsLCF0aGlzLmxlZnQuY29sb3IsbnVsbCxudWxsKSxlPXRoaXMucmlnaHQuY29weShudWxsLG51bGwsIXRoaXMucmlnaHQuY29sb3IsbnVsbCxudWxsKTtyZXR1cm4gdGhpcy5jb3B5KG51bGwsbnVsbCwhdGhpcy5jb2xvcix0LGUpfSxMdS5wcm90b3R5cGUuY2hlY2tNYXhEZXB0aF89ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmNoZWNrXygpO3JldHVybiBNYXRoLnBvdygyLHQpPD10aGlzLmNvdW50KCkrMX0sTHUucHJvdG90eXBlLmNoZWNrXz1mdW5jdGlvbigpe2lmKHRoaXMuaXNSZWRfKCkmJnRoaXMubGVmdC5pc1JlZF8oKSl0aHJvdyBuZXcgRXJyb3IoIlJlZCBub2RlIGhhcyByZWQgY2hpbGQoIit0aGlzLmtleSsiLCIrdGhpcy52YWx1ZSsiKSIpO2lmKHRoaXMucmlnaHQuaXNSZWRfKCkpdGhyb3cgbmV3IEVycm9yKCJSaWdodCBjaGlsZCBvZiAoIit0aGlzLmtleSsiLCIrdGhpcy52YWx1ZSsiKSBpcyByZWQiKTt2YXIgdD10aGlzLmxlZnQuY2hlY2tfKCk7aWYodCE9PXRoaXMucmlnaHQuY2hlY2tfKCkpdGhyb3cgbmV3IEVycm9yKCJCbGFjayBkZXB0aHMgZGlmZmVyIik7cmV0dXJuIHQrKHRoaXMuaXNSZWRfKCk/MDoxKX0sTHUuUkVEPSEwLEx1LkJMQUNLPSExLEx1KTtmdW5jdGlvbiBMdSh0LGUsbixyLGkpe3RoaXMua2V5PXQsdGhpcy52YWx1ZT1lLHRoaXMuY29sb3I9bnVsbCE9bj9uOkx1LlJFRCx0aGlzLmxlZnQ9bnVsbCE9cj9yOlV1LkVNUFRZX05PREUsdGhpcy5yaWdodD1udWxsIT1pP2k6VXUuRU1QVFlfTk9ERX1NdS5wcm90b3R5cGUuY29weT1mdW5jdGlvbih0LGUsbixyLGkpe3JldHVybiB0aGlzfSxNdS5wcm90b3R5cGUuaW5zZXJ0PWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gbmV3IHh1KHQsZSxudWxsKX0sTXUucHJvdG90eXBlLnJlbW92ZT1mdW5jdGlvbih0LGUpe3JldHVybiB0aGlzfSxNdS5wcm90b3R5cGUuY291bnQ9ZnVuY3Rpb24oKXtyZXR1cm4gMH0sTXUucHJvdG90eXBlLmlzRW1wdHk9ZnVuY3Rpb24oKXtyZXR1cm4hMH0sTXUucHJvdG90eXBlLmlub3JkZXJUcmF2ZXJzYWw9ZnVuY3Rpb24odCl7cmV0dXJuITF9LE11LnByb3RvdHlwZS5yZXZlcnNlVHJhdmVyc2FsPWZ1bmN0aW9uKHQpe3JldHVybiExfSxNdS5wcm90b3R5cGUubWluS2V5PWZ1bmN0aW9uKCl7cmV0dXJuIG51bGx9LE11LnByb3RvdHlwZS5tYXhLZXk9ZnVuY3Rpb24oKXtyZXR1cm4gbnVsbH0sTXUucHJvdG90eXBlLmNoZWNrXz1mdW5jdGlvbigpe3JldHVybiAwfSxNdS5wcm90b3R5cGUuaXNSZWRfPWZ1bmN0aW9uKCl7cmV0dXJuITF9LEdhPU11O2Z1bmN0aW9uIE11KCl7fXZhciBGdSxVdT0oanUucHJvdG90eXBlLmluc2VydD1mdW5jdGlvbih0LGUpe3JldHVybiBuZXcganUodGhpcy5jb21wYXJhdG9yXyx0aGlzLnJvb3RfLmluc2VydCh0LGUsdGhpcy5jb21wYXJhdG9yXykuY29weShudWxsLG51bGwseHUuQkxBQ0ssbnVsbCxudWxsKSl9LGp1LnByb3RvdHlwZS5yZW1vdmU9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBqdSh0aGlzLmNvbXBhcmF0b3JfLHRoaXMucm9vdF8ucmVtb3ZlKHQsdGhpcy5jb21wYXJhdG9yXykuY29weShudWxsLG51bGwseHUuQkxBQ0ssbnVsbCxudWxsKSl9LGp1LnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24odCl7Zm9yKHZhciBlLG49dGhpcy5yb290Xzshbi5pc0VtcHR5KCk7KXtpZigwPT09KGU9dGhpcy5jb21wYXJhdG9yXyh0LG4ua2V5KSkpcmV0dXJuIG4udmFsdWU7ZTwwP249bi5sZWZ0OjA8ZSYmKG49bi5yaWdodCl9cmV0dXJuIG51bGx9LGp1LnByb3RvdHlwZS5nZXRQcmVkZWNlc3NvcktleT1mdW5jdGlvbih0KXtmb3IodmFyIGUsbj10aGlzLnJvb3RfLHI9bnVsbDshbi5pc0VtcHR5KCk7KXtpZigwPT09KGU9dGhpcy5jb21wYXJhdG9yXyh0LG4ua2V5KSkpe2lmKG4ubGVmdC5pc0VtcHR5KCkpcmV0dXJuIHI/ci5rZXk6bnVsbDtmb3Iobj1uLmxlZnQ7IW4ucmlnaHQuaXNFbXB0eSgpOyluPW4ucmlnaHQ7cmV0dXJuIG4ua2V5fWU8MD9uPW4ubGVmdDowPGUmJihuPShyPW4pLnJpZ2h0KX10aHJvdyBuZXcgRXJyb3IoIkF0dGVtcHRlZCB0byBmaW5kIHByZWRlY2Vzc29yIGtleSBmb3IgYSBub25leGlzdGVudCBrZXkuICBXaGF0IGdpdmVzPyIpfSxqdS5wcm90b3R5cGUuaXNFbXB0eT1mdW5jdGlvbigpe3JldHVybiB0aGlzLnJvb3RfLmlzRW1wdHkoKX0sanUucHJvdG90eXBlLmNvdW50PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucm9vdF8uY291bnQoKX0sanUucHJvdG90eXBlLm1pbktleT1mdW5jdGlvbigpe3JldHVybiB0aGlzLnJvb3RfLm1pbktleSgpfSxqdS5wcm90b3R5cGUubWF4S2V5PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucm9vdF8ubWF4S2V5KCl9LGp1LnByb3RvdHlwZS5pbm9yZGVyVHJhdmVyc2FsPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnJvb3RfLmlub3JkZXJUcmF2ZXJzYWwodCl9LGp1LnByb3RvdHlwZS5yZXZlcnNlVHJhdmVyc2FsPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnJvb3RfLnJldmVyc2VUcmF2ZXJzYWwodCl9LGp1LnByb3RvdHlwZS5nZXRJdGVyYXRvcj1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IE91KHRoaXMucm9vdF8sbnVsbCx0aGlzLmNvbXBhcmF0b3JfLCExLHQpfSxqdS5wcm90b3R5cGUuZ2V0SXRlcmF0b3JGcm9tPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBPdSh0aGlzLnJvb3RfLHQsdGhpcy5jb21wYXJhdG9yXywhMSxlKX0sanUucHJvdG90eXBlLmdldFJldmVyc2VJdGVyYXRvckZyb209ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IE91KHRoaXMucm9vdF8sdCx0aGlzLmNvbXBhcmF0b3JfLCEwLGUpfSxqdS5wcm90b3R5cGUuZ2V0UmV2ZXJzZUl0ZXJhdG9yPWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgT3UodGhpcy5yb290XyxudWxsLHRoaXMuY29tcGFyYXRvcl8sITAsdCl9LGp1LkVNUFRZX05PREU9bmV3IEdhLGp1KTtmdW5jdGlvbiBqdSh0LGUpe3ZvaWQgMD09PWUmJihlPWp1LkVNUFRZX05PREUpLHRoaXMuY29tcGFyYXRvcl89dCx0aGlzLnJvb3RfPWV9ZnVuY3Rpb24gcXUodCxlKXtyZXR1cm4gbmEodC5uYW1lLGUubmFtZSl9ZnVuY3Rpb24gVnUodCxlKXtyZXR1cm4gbmEodCxlKX1mdW5jdGlvbiBCdSh0KXtyZXR1cm4ibnVtYmVyIj09dHlwZW9mIHQ/Im51bWJlcjoiK29hKHQpOiJzdHJpbmc6Iit0fXZhciBLdSxXdSxIdSxHdSx6dT1mdW5jdGlvbih0KXt2YXIgZTt0LmlzTGVhZk5vZGUoKT8oZT10LnZhbCgpLHNvKCJzdHJpbmciPT10eXBlb2YgZXx8Im51bWJlciI9PXR5cGVvZiBlfHwib2JqZWN0Ij09dHlwZW9mIGUmJk9vKGUsIi5zdiIpLCJQcmlvcml0eSBtdXN0IGJlIGEgc3RyaW5nIG9yIG51bWJlci4iKSk6c28odD09PUZ1fHx0LmlzRW1wdHkoKSwicHJpb3JpdHkgb2YgdW5leHBlY3RlZCB0eXBlLiIpLHNvKHQ9PT1GdXx8dC5nZXRQcmlvcml0eSgpLmlzRW1wdHkoKSwiUHJpb3JpdHkgbm9kZXMgY2FuJ3QgaGF2ZSBhIHByaW9yaXR5IG9mIHRoZWlyIG93bi4iKX0sUXU9KE9iamVjdC5kZWZpbmVQcm9wZXJ0eShZdSwiX19jaGlsZHJlbk5vZGVDb25zdHJ1Y3RvciIse2dldDpmdW5jdGlvbigpe3JldHVybiBLdX0sc2V0OmZ1bmN0aW9uKHQpe0t1PXR9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksWXUucHJvdG90eXBlLmlzTGVhZk5vZGU9ZnVuY3Rpb24oKXtyZXR1cm4hMH0sWXUucHJvdG90eXBlLmdldFByaW9yaXR5PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHJpb3JpdHlOb2RlX30sWXUucHJvdG90eXBlLnVwZGF0ZVByaW9yaXR5PWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgWXUodGhpcy52YWx1ZV8sdCl9LFl1LnByb3RvdHlwZS5nZXRJbW1lZGlhdGVDaGlsZD1mdW5jdGlvbih0KXtyZXR1cm4iLnByaW9yaXR5Ij09PXQ/dGhpcy5wcmlvcml0eU5vZGVfOll1Ll9fY2hpbGRyZW5Ob2RlQ29uc3RydWN0b3IuRU1QVFlfTk9ERX0sWXUucHJvdG90eXBlLmdldENoaWxkPWZ1bmN0aW9uKHQpe3JldHVybiBjdSh0KT90aGlzOiIucHJpb3JpdHkiPT09bnUodCk/dGhpcy5wcmlvcml0eU5vZGVfOll1Ll9fY2hpbGRyZW5Ob2RlQ29uc3RydWN0b3IuRU1QVFlfTk9ERX0sWXUucHJvdG90eXBlLmhhc0NoaWxkPWZ1bmN0aW9uKCl7cmV0dXJuITF9LFl1LnByb3RvdHlwZS5nZXRQcmVkZWNlc3NvckNoaWxkTmFtZT1mdW5jdGlvbih0LGUpe3JldHVybiBudWxsfSxZdS5wcm90b3R5cGUudXBkYXRlSW1tZWRpYXRlQ2hpbGQ9ZnVuY3Rpb24odCxlKXtyZXR1cm4iLnByaW9yaXR5Ij09PXQ/dGhpcy51cGRhdGVQcmlvcml0eShlKTplLmlzRW1wdHkoKSYmIi5wcmlvcml0eSIhPT10P3RoaXM6WXUuX19jaGlsZHJlbk5vZGVDb25zdHJ1Y3Rvci5FTVBUWV9OT0RFLnVwZGF0ZUltbWVkaWF0ZUNoaWxkKHQsZSkudXBkYXRlUHJpb3JpdHkodGhpcy5wcmlvcml0eU5vZGVfKX0sWXUucHJvdG90eXBlLnVwZGF0ZUNoaWxkPWZ1bmN0aW9uKHQsZSl7dmFyIG49bnUodCk7cmV0dXJuIG51bGw9PT1uP2U6ZS5pc0VtcHR5KCkmJiIucHJpb3JpdHkiIT09bj90aGlzOihzbygiLnByaW9yaXR5IiE9PW58fDE9PT1ydSh0KSwiLnByaW9yaXR5IG11c3QgYmUgdGhlIGxhc3QgdG9rZW4gaW4gYSBwYXRoIiksdGhpcy51cGRhdGVJbW1lZGlhdGVDaGlsZChuLFl1Ll9fY2hpbGRyZW5Ob2RlQ29uc3RydWN0b3IuRU1QVFlfTk9ERS51cGRhdGVDaGlsZChpdSh0KSxlKSkpfSxZdS5wcm90b3R5cGUuaXNFbXB0eT1mdW5jdGlvbigpe3JldHVybiExfSxZdS5wcm90b3R5cGUubnVtQ2hpbGRyZW49ZnVuY3Rpb24oKXtyZXR1cm4gMH0sWXUucHJvdG90eXBlLmZvckVhY2hDaGlsZD1mdW5jdGlvbih0LGUpe3JldHVybiExfSxZdS5wcm90b3R5cGUudmFsPWZ1bmN0aW9uKHQpe3JldHVybiB0JiYhdGhpcy5nZXRQcmlvcml0eSgpLmlzRW1wdHkoKT97Ii52YWx1ZSI6dGhpcy5nZXRWYWx1ZSgpLCIucHJpb3JpdHkiOnRoaXMuZ2V0UHJpb3JpdHkoKS52YWwoKX06dGhpcy5nZXRWYWx1ZSgpfSxZdS5wcm90b3R5cGUuaGFzaD1mdW5jdGlvbigpe3ZhciB0LGU7cmV0dXJuIG51bGw9PT10aGlzLmxhenlIYXNoXyYmKHQ9IiIsdGhpcy5wcmlvcml0eU5vZGVfLmlzRW1wdHkoKXx8KHQrPSJwcmlvcml0eToiK0J1KHRoaXMucHJpb3JpdHlOb2RlXy52YWwoKSkrIjoiKSx0Kz0oZT10eXBlb2YgdGhpcy52YWx1ZV8pKyI6Iix0Kz0ibnVtYmVyIj09ZT9vYSh0aGlzLnZhbHVlXyk6dGhpcy52YWx1ZV8sdGhpcy5sYXp5SGFzaF89THModCkpLHRoaXMubGF6eUhhc2hffSxZdS5wcm90b3R5cGUuZ2V0VmFsdWU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy52YWx1ZV99LFl1LnByb3RvdHlwZS5jb21wYXJlVG89ZnVuY3Rpb24odCl7cmV0dXJuIHQ9PT1ZdS5fX2NoaWxkcmVuTm9kZUNvbnN0cnVjdG9yLkVNUFRZX05PREU/MTp0IGluc3RhbmNlb2YgWXUuX19jaGlsZHJlbk5vZGVDb25zdHJ1Y3Rvcj8tMTooc28odC5pc0xlYWZOb2RlKCksIlVua25vd24gbm9kZSB0eXBlIiksdGhpcy5jb21wYXJlVG9MZWFmTm9kZV8odCkpfSxZdS5wcm90b3R5cGUuY29tcGFyZVRvTGVhZk5vZGVfPWZ1bmN0aW9uKHQpe3ZhciBlPXR5cGVvZiB0LnZhbHVlXyxuPXR5cGVvZiB0aGlzLnZhbHVlXyxyPVl1LlZBTFVFX1RZUEVfT1JERVIuaW5kZXhPZihlKSxpPVl1LlZBTFVFX1RZUEVfT1JERVIuaW5kZXhPZihuKTtyZXR1cm4gc28oMDw9ciwiVW5rbm93biBsZWFmIHR5cGU6ICIrZSksc28oMDw9aSwiVW5rbm93biBsZWFmIHR5cGU6ICIrbikscj09PWk/Im9iamVjdCI9PW4/MDp0aGlzLnZhbHVlXzx0LnZhbHVlXz8tMTp0aGlzLnZhbHVlXz09PXQudmFsdWVfPzA6MTppLXJ9LFl1LnByb3RvdHlwZS53aXRoSW5kZXg9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30sWXUucHJvdG90eXBlLmlzSW5kZXhlZD1mdW5jdGlvbigpe3JldHVybiEwfSxZdS5wcm90b3R5cGUuZXF1YWxzPWZ1bmN0aW9uKHQpe3JldHVybiB0PT09dGhpc3x8ISF0LmlzTGVhZk5vZGUoKSYmKHRoaXMudmFsdWVfPT09dC52YWx1ZV8mJnRoaXMucHJpb3JpdHlOb2RlXy5lcXVhbHModC5wcmlvcml0eU5vZGVfKSl9LFl1LlZBTFVFX1RZUEVfT1JERVI9WyJvYmplY3QiLCJib29sZWFuIiwibnVtYmVyIiwic3RyaW5nIl0sWXUpO2Z1bmN0aW9uIFl1KHQsZSl7dm9pZCAwPT09ZSYmKGU9WXUuX19jaGlsZHJlbk5vZGVDb25zdHJ1Y3Rvci5FTVBUWV9OT0RFKSx0aGlzLnZhbHVlXz10LHRoaXMucHJpb3JpdHlOb2RlXz1lLHRoaXMubGF6eUhhc2hfPW51bGwsc28odm9pZCAwIT09dGhpcy52YWx1ZV8mJm51bGwhPT10aGlzLnZhbHVlXywiTGVhZk5vZGUgc2hvdWxkbid0IGJlIGNyZWF0ZWQgd2l0aCBudWxsL3VuZGVmaW5lZCB2YWx1ZS4iKSx6dSh0aGlzLnByaW9yaXR5Tm9kZV8pfWZ1bmN0aW9uIFh1KCl7cmV0dXJuIG51bGwhPT1HdSYmR3UuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzfXZhciBKdT1uZXcoWGkoWHUsR3U9RyksWHUucHJvdG90eXBlLmNvbXBhcmU9ZnVuY3Rpb24odCxlKXt2YXIgbj10Lm5vZGUuZ2V0UHJpb3JpdHkoKSxyPWUubm9kZS5nZXRQcmlvcml0eSgpLHI9bi5jb21wYXJlVG8ocik7cmV0dXJuIDA9PT1yP25hKHQubmFtZSxlLm5hbWUpOnJ9LFh1LnByb3RvdHlwZS5pc0RlZmluZWRPbj1mdW5jdGlvbih0KXtyZXR1cm4hdC5nZXRQcmlvcml0eSgpLmlzRW1wdHkoKX0sWHUucHJvdG90eXBlLmluZGV4ZWRWYWx1ZUNoYW5nZWQ9ZnVuY3Rpb24odCxlKXtyZXR1cm4hdC5nZXRQcmlvcml0eSgpLmVxdWFscyhlLmdldFByaW9yaXR5KCkpfSxYdS5wcm90b3R5cGUubWluUG9zdD1mdW5jdGlvbigpe3JldHVybiBTdS5NSU59LFh1LnByb3RvdHlwZS5tYXhQb3N0PWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBTdShlYSxuZXcgUXUoIltQUklPUklUWS1QT1NUXSIsSHUpKX0sWHUucHJvdG90eXBlLm1ha2VQb3N0PWZ1bmN0aW9uKHQsZSl7dD1XdSh0KTtyZXR1cm4gbmV3IFN1KGUsbmV3IFF1KCJbUFJJT1JJVFktUE9TVF0iLHQpKX0sWHUucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIi5wcmlvcml0eSJ9LFh1KSwkdT1NYXRoLmxvZygyKSxadT0odGMucHJvdG90eXBlLm5leHRCaXRJc09uZT1mdW5jdGlvbigpe3ZhciB0PSEodGhpcy5iaXRzXyYxPDx0aGlzLmN1cnJlbnRfKTtyZXR1cm4gdGhpcy5jdXJyZW50Xy0tLHR9LHRjKTtmdW5jdGlvbiB0Yyh0KXt2YXIgZTt0aGlzLmNvdW50PShlPXQrMSxwYXJzZUludChNYXRoLmxvZyhlKS8kdSwxMCkpLHRoaXMuY3VycmVudF89dGhpcy5jb3VudC0xO3ZhciBuLHI9KG49dGhpcy5jb3VudCxwYXJzZUludChBcnJheShuKzEpLmpvaW4oIjEiKSwyKSk7dGhpcy5iaXRzXz10KzEmcn12YXIgZWMsbmMscmM9ZnVuY3Rpb24oYyx0LGgsZSl7Yy5zb3J0KHQpO3ZhciBsPWZ1bmN0aW9uKHQsZSl7dmFyIG49ZS10O2lmKDA9PW4pcmV0dXJuIG51bGw7aWYoMT09bilyZXR1cm4gcj1jW3RdLGk9aD9oKHIpOnIsbmV3IHh1KGksci5ub2RlLHh1LkJMQUNLLG51bGwsbnVsbCk7dmFyIG49cGFyc2VJbnQobi8yLDEwKSt0LHQ9bCh0LG4pLGU9bChuKzEsZSkscj1jW25dLGk9aD9oKHIpOnI7cmV0dXJuIG5ldyB4dShpLHIubm9kZSx4dS5CTEFDSyx0LGUpfSxuPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1udWxsLG49bnVsbCxpPWMubGVuZ3RoLHI9ZnVuY3Rpb24odCxlKXt2YXIgbj1pLXQscj1pO2ktPXQ7dD1sKDErbixyKSxyPWNbbl0sbj1oP2gocik6cjtvKG5ldyB4dShuLHIubm9kZSxlLG51bGwsdCkpfSxvPWZ1bmN0aW9uKHQpe2U9ZT9lLmxlZnQ9dDpuPXR9LHM9MDtzPHQuY291bnQ7KytzKXt2YXIgYT10Lm5leHRCaXRJc09uZSgpLHU9TWF0aC5wb3coMix0LmNvdW50LShzKzEpKTthP3IodSx4dS5CTEFDSyk6KHIodSx4dS5CTEFDSykscih1LHh1LlJFRCkpfXJldHVybiBufShuZXcgWnUoYy5sZW5ndGgpKTtyZXR1cm4gbmV3IFV1KGV8fHQsbil9LGljPXt9LG9jPShPYmplY3QuZGVmaW5lUHJvcGVydHkoc2MsIkRlZmF1bHQiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gc28oSnUsIkNoaWxkcmVuTm9kZS50cyBoYXMgbm90IGJlZW4gbG9hZGVkIiksZWM9ZWN8fG5ldyBzYyh7Ii5wcmlvcml0eSI6aWN9LHsiLnByaW9yaXR5IjpKdX0pfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLHNjLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24odCl7dmFyIGU9RG8odGhpcy5pbmRleGVzXyx0KTtpZighZSl0aHJvdyBuZXcgRXJyb3IoIk5vIGluZGV4IGRlZmluZWQgZm9yICIrdCk7cmV0dXJuIGUgaW5zdGFuY2VvZiBVdT9lOm51bGx9LHNjLnByb3RvdHlwZS5oYXNJbmRleD1mdW5jdGlvbih0KXtyZXR1cm4gT28odGhpcy5pbmRleFNldF8sdC50b1N0cmluZygpKX0sc2MucHJvdG90eXBlLmFkZEluZGV4PWZ1bmN0aW9uKHQsZSl7c28odCE9PVB1LCJLZXlJbmRleCBhbHdheXMgZXhpc3RzIGFuZCBpc24ndCBtZWFudCB0byBiZSBhZGRlZCB0byB0aGUgSW5kZXhNYXAuIik7Zm9yKHZhciBuPVtdLHI9ITEsaT1lLmdldEl0ZXJhdG9yKFN1LldyYXApLG89aS5nZXROZXh0KCk7bzspcj1yfHx0LmlzRGVmaW5lZE9uKG8ubm9kZSksbi5wdXNoKG8pLG89aS5nZXROZXh0KCk7dmFyIHM9cj9yYyhuLHQuZ2V0Q29tcGFyZSgpKTppYyxhPXQudG9TdHJpbmcoKSx1PUppKHt9LHRoaXMuaW5kZXhTZXRfKTt1W2FdPXQ7ZT1KaSh7fSx0aGlzLmluZGV4ZXNfKTtyZXR1cm4gZVthXT1zLG5ldyBzYyhlLHUpfSxzYy5wcm90b3R5cGUuYWRkVG9JbmRleGVzPWZ1bmN0aW9uKHMsYSl7dmFyIHU9dGhpcztyZXR1cm4gbmV3IHNjKExvKHRoaXMuaW5kZXhlc18sZnVuY3Rpb24odCxlKXt2YXIgbj1Ebyh1LmluZGV4U2V0XyxlKTtpZihzbyhuLCJNaXNzaW5nIGluZGV4IGltcGxlbWVudGF0aW9uIGZvciAiK2UpLHQ9PT1pYyl7aWYobi5pc0RlZmluZWRPbihzLm5vZGUpKXtmb3IodmFyIHI9W10saT1hLmdldEl0ZXJhdG9yKFN1LldyYXApLG89aS5nZXROZXh0KCk7bzspby5uYW1lIT09cy5uYW1lJiZyLnB1c2gobyksbz1pLmdldE5leHQoKTtyZXR1cm4gci5wdXNoKHMpLHJjKHIsbi5nZXRDb21wYXJlKCkpfXJldHVybiBpY31uPWEuZ2V0KHMubmFtZSk7cmV0dXJuKHQ9bj90LnJlbW92ZShuZXcgU3Uocy5uYW1lLG4pKTp0KS5pbnNlcnQocyxzLm5vZGUpfSksdGhpcy5pbmRleFNldF8pfSxzYy5wcm90b3R5cGUucmVtb3ZlRnJvbUluZGV4ZXM9ZnVuY3Rpb24obixyKXtyZXR1cm4gbmV3IHNjKExvKHRoaXMuaW5kZXhlc18sZnVuY3Rpb24odCl7aWYodD09PWljKXJldHVybiB0O3ZhciBlPXIuZ2V0KG4ubmFtZSk7cmV0dXJuIGU/dC5yZW1vdmUobmV3IFN1KG4ubmFtZSxlKSk6dH0pLHRoaXMuaW5kZXhTZXRfKX0sc2MpO2Z1bmN0aW9uIHNjKHQsZSl7dGhpcy5pbmRleGVzXz10LHRoaXMuaW5kZXhTZXRfPWV9dmFyIGFjLHVjPShPYmplY3QuZGVmaW5lUHJvcGVydHkoY2MsIkVNUFRZX05PREUiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gbmM9bmN8fG5ldyBjYyhuZXcgVXUoVnUpLG51bGwsb2MuRGVmYXVsdCl9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksY2MucHJvdG90eXBlLmlzTGVhZk5vZGU9ZnVuY3Rpb24oKXtyZXR1cm4hMX0sY2MucHJvdG90eXBlLmdldFByaW9yaXR5PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHJpb3JpdHlOb2RlX3x8bmN9LGNjLnByb3RvdHlwZS51cGRhdGVQcmlvcml0eT1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5jaGlsZHJlbl8uaXNFbXB0eSgpP3RoaXM6bmV3IGNjKHRoaXMuY2hpbGRyZW5fLHQsdGhpcy5pbmRleE1hcF8pfSxjYy5wcm90b3R5cGUuZ2V0SW1tZWRpYXRlQ2hpbGQ9ZnVuY3Rpb24odCl7aWYoIi5wcmlvcml0eSI9PT10KXJldHVybiB0aGlzLmdldFByaW9yaXR5KCk7dD10aGlzLmNoaWxkcmVuXy5nZXQodCk7cmV0dXJuIG51bGw9PT10P25jOnR9LGNjLnByb3RvdHlwZS5nZXRDaGlsZD1mdW5jdGlvbih0KXt2YXIgZT1udSh0KTtyZXR1cm4gbnVsbD09PWU/dGhpczp0aGlzLmdldEltbWVkaWF0ZUNoaWxkKGUpLmdldENoaWxkKGl1KHQpKX0sY2MucHJvdG90eXBlLmhhc0NoaWxkPWZ1bmN0aW9uKHQpe3JldHVybiBudWxsIT09dGhpcy5jaGlsZHJlbl8uZ2V0KHQpfSxjYy5wcm90b3R5cGUudXBkYXRlSW1tZWRpYXRlQ2hpbGQ9ZnVuY3Rpb24odCxlKXtpZihzbyhlLCJXZSBzaG91bGQgYWx3YXlzIGJlIHBhc3Npbmcgc25hcHNob3Qgbm9kZXMiKSwiLnByaW9yaXR5Ij09PXQpcmV0dXJuIHRoaXMudXBkYXRlUHJpb3JpdHkoZSk7dmFyIG49bmV3IFN1KHQsZSkscj12b2lkIDAsaT12b2lkIDAsaT1lLmlzRW1wdHkoKT8ocj10aGlzLmNoaWxkcmVuXy5yZW1vdmUodCksdGhpcy5pbmRleE1hcF8ucmVtb3ZlRnJvbUluZGV4ZXMobix0aGlzLmNoaWxkcmVuXykpOihyPXRoaXMuY2hpbGRyZW5fLmluc2VydCh0LGUpLHRoaXMuaW5kZXhNYXBfLmFkZFRvSW5kZXhlcyhuLHRoaXMuY2hpbGRyZW5fKSksbj1yLmlzRW1wdHkoKT9uYzp0aGlzLnByaW9yaXR5Tm9kZV87cmV0dXJuIG5ldyBjYyhyLG4saSl9LGNjLnByb3RvdHlwZS51cGRhdGVDaGlsZD1mdW5jdGlvbih0LGUpe3ZhciBuPW51KHQpO2lmKG51bGw9PT1uKXJldHVybiBlO3NvKCIucHJpb3JpdHkiIT09bnUodCl8fDE9PT1ydSh0KSwiLnByaW9yaXR5IG11c3QgYmUgdGhlIGxhc3QgdG9rZW4gaW4gYSBwYXRoIik7ZT10aGlzLmdldEltbWVkaWF0ZUNoaWxkKG4pLnVwZGF0ZUNoaWxkKGl1KHQpLGUpO3JldHVybiB0aGlzLnVwZGF0ZUltbWVkaWF0ZUNoaWxkKG4sZSl9LGNjLnByb3RvdHlwZS5pc0VtcHR5PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2hpbGRyZW5fLmlzRW1wdHkoKX0sY2MucHJvdG90eXBlLm51bUNoaWxkcmVuPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2hpbGRyZW5fLmNvdW50KCl9LGNjLnByb3RvdHlwZS52YWw9ZnVuY3Rpb24obil7aWYodGhpcy5pc0VtcHR5KCkpcmV0dXJuIG51bGw7dmFyIHI9e30saT0wLG89MCxzPSEwO2lmKHRoaXMuZm9yRWFjaENoaWxkKEp1LGZ1bmN0aW9uKHQsZSl7clt0XT1lLnZhbChuKSxpKysscyYmY2MuSU5URUdFUl9SRUdFWFBfLnRlc3QodCk/bz1NYXRoLm1heChvLE51bWJlcih0KSk6cz0hMX0pLCFuJiZzJiZvPDIqaSl7dmFyIHQsZT1bXTtmb3IodCBpbiByKWVbdF09clt0XTtyZXR1cm4gZX1yZXR1cm4gbiYmIXRoaXMuZ2V0UHJpb3JpdHkoKS5pc0VtcHR5KCkmJihyWyIucHJpb3JpdHkiXT10aGlzLmdldFByaW9yaXR5KCkudmFsKCkpLHJ9LGNjLnByb3RvdHlwZS5oYXNoPWZ1bmN0aW9uKCl7dmFyIG47cmV0dXJuIG51bGw9PT10aGlzLmxhenlIYXNoXyYmKG49IiIsdGhpcy5nZXRQcmlvcml0eSgpLmlzRW1wdHkoKXx8KG4rPSJwcmlvcml0eToiK0J1KHRoaXMuZ2V0UHJpb3JpdHkoKS52YWwoKSkrIjoiKSx0aGlzLmZvckVhY2hDaGlsZChKdSxmdW5jdGlvbih0LGUpe2U9ZS5oYXNoKCk7IiIhPT1lJiYobis9IjoiK3QrIjoiK2UpfSksdGhpcy5sYXp5SGFzaF89IiI9PT1uPyIiOkxzKG4pKSx0aGlzLmxhenlIYXNoX30sY2MucHJvdG90eXBlLmdldFByZWRlY2Vzc29yQ2hpbGROYW1lPWZ1bmN0aW9uKHQsZSxuKXtuPXRoaXMucmVzb2x2ZUluZGV4XyhuKTtpZihuKXtlPW4uZ2V0UHJlZGVjZXNzb3JLZXkobmV3IFN1KHQsZSkpO3JldHVybiBlP2UubmFtZTpudWxsfXJldHVybiB0aGlzLmNoaWxkcmVuXy5nZXRQcmVkZWNlc3NvcktleSh0KX0sY2MucHJvdG90eXBlLmdldEZpcnN0Q2hpbGROYW1lPWZ1bmN0aW9uKHQpe3Q9dGhpcy5yZXNvbHZlSW5kZXhfKHQpO2lmKHQpe3Q9dC5taW5LZXkoKTtyZXR1cm4gdCYmdC5uYW1lfXJldHVybiB0aGlzLmNoaWxkcmVuXy5taW5LZXkoKX0sY2MucHJvdG90eXBlLmdldEZpcnN0Q2hpbGQ9ZnVuY3Rpb24odCl7dD10aGlzLmdldEZpcnN0Q2hpbGROYW1lKHQpO3JldHVybiB0P25ldyBTdSh0LHRoaXMuY2hpbGRyZW5fLmdldCh0KSk6bnVsbH0sY2MucHJvdG90eXBlLmdldExhc3RDaGlsZE5hbWU9ZnVuY3Rpb24odCl7dD10aGlzLnJlc29sdmVJbmRleF8odCk7aWYodCl7dD10Lm1heEtleSgpO3JldHVybiB0JiZ0Lm5hbWV9cmV0dXJuIHRoaXMuY2hpbGRyZW5fLm1heEtleSgpfSxjYy5wcm90b3R5cGUuZ2V0TGFzdENoaWxkPWZ1bmN0aW9uKHQpe3Q9dGhpcy5nZXRMYXN0Q2hpbGROYW1lKHQpO3JldHVybiB0P25ldyBTdSh0LHRoaXMuY2hpbGRyZW5fLmdldCh0KSk6bnVsbH0sY2MucHJvdG90eXBlLmZvckVhY2hDaGlsZD1mdW5jdGlvbih0LGUpe3Q9dGhpcy5yZXNvbHZlSW5kZXhfKHQpO3JldHVybiB0P3QuaW5vcmRlclRyYXZlcnNhbChmdW5jdGlvbih0KXtyZXR1cm4gZSh0Lm5hbWUsdC5ub2RlKX0pOnRoaXMuY2hpbGRyZW5fLmlub3JkZXJUcmF2ZXJzYWwoZSl9LGNjLnByb3RvdHlwZS5nZXRJdGVyYXRvcj1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5nZXRJdGVyYXRvckZyb20odC5taW5Qb3N0KCksdCl9LGNjLnByb3RvdHlwZS5nZXRJdGVyYXRvckZyb209ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzLnJlc29sdmVJbmRleF8oZSk7aWYobilyZXR1cm4gbi5nZXRJdGVyYXRvckZyb20odCxmdW5jdGlvbih0KXtyZXR1cm4gdH0pO2Zvcih2YXIgcj10aGlzLmNoaWxkcmVuXy5nZXRJdGVyYXRvckZyb20odC5uYW1lLFN1LldyYXApLGk9ci5wZWVrKCk7bnVsbCE9aSYmZS5jb21wYXJlKGksdCk8MDspci5nZXROZXh0KCksaT1yLnBlZWsoKTtyZXR1cm4gcn0sY2MucHJvdG90eXBlLmdldFJldmVyc2VJdGVyYXRvcj1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5nZXRSZXZlcnNlSXRlcmF0b3JGcm9tKHQubWF4UG9zdCgpLHQpfSxjYy5wcm90b3R5cGUuZ2V0UmV2ZXJzZUl0ZXJhdG9yRnJvbT1mdW5jdGlvbih0LGUpe3ZhciBuPXRoaXMucmVzb2x2ZUluZGV4XyhlKTtpZihuKXJldHVybiBuLmdldFJldmVyc2VJdGVyYXRvckZyb20odCxmdW5jdGlvbih0KXtyZXR1cm4gdH0pO2Zvcih2YXIgcj10aGlzLmNoaWxkcmVuXy5nZXRSZXZlcnNlSXRlcmF0b3JGcm9tKHQubmFtZSxTdS5XcmFwKSxpPXIucGVlaygpO251bGwhPWkmJjA8ZS5jb21wYXJlKGksdCk7KXIuZ2V0TmV4dCgpLGk9ci5wZWVrKCk7cmV0dXJuIHJ9LGNjLnByb3RvdHlwZS5jb21wYXJlVG89ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuaXNFbXB0eSgpP3QuaXNFbXB0eSgpPzA6LTE6dC5pc0xlYWZOb2RlKCl8fHQuaXNFbXB0eSgpPzE6dD09PWxjPy0xOjB9LGNjLnByb3RvdHlwZS53aXRoSW5kZXg9ZnVuY3Rpb24odCl7aWYodD09PVB1fHx0aGlzLmluZGV4TWFwXy5oYXNJbmRleCh0KSlyZXR1cm4gdGhpczt0PXRoaXMuaW5kZXhNYXBfLmFkZEluZGV4KHQsdGhpcy5jaGlsZHJlbl8pO3JldHVybiBuZXcgY2ModGhpcy5jaGlsZHJlbl8sdGhpcy5wcmlvcml0eU5vZGVfLHQpfSxjYy5wcm90b3R5cGUuaXNJbmRleGVkPWZ1bmN0aW9uKHQpe3JldHVybiB0PT09UHV8fHRoaXMuaW5kZXhNYXBfLmhhc0luZGV4KHQpfSxjYy5wcm90b3R5cGUuZXF1YWxzPWZ1bmN0aW9uKHQpe2lmKHQ9PT10aGlzKXJldHVybiEwO2lmKHQuaXNMZWFmTm9kZSgpKXJldHVybiExO2lmKHRoaXMuZ2V0UHJpb3JpdHkoKS5lcXVhbHModC5nZXRQcmlvcml0eSgpKSl7aWYodGhpcy5jaGlsZHJlbl8uY291bnQoKSE9PXQuY2hpbGRyZW5fLmNvdW50KCkpcmV0dXJuITE7Zm9yKHZhciBlPXRoaXMuZ2V0SXRlcmF0b3IoSnUpLG49dC5nZXRJdGVyYXRvcihKdSkscj1lLmdldE5leHQoKSxpPW4uZ2V0TmV4dCgpO3ImJmk7KXtpZihyLm5hbWUhPT1pLm5hbWV8fCFyLm5vZGUuZXF1YWxzKGkubm9kZSkpcmV0dXJuITE7cj1lLmdldE5leHQoKSxpPW4uZ2V0TmV4dCgpfXJldHVybiBudWxsPT09ciYmbnVsbD09PWl9cmV0dXJuITF9LGNjLnByb3RvdHlwZS5yZXNvbHZlSW5kZXhfPWZ1bmN0aW9uKHQpe3JldHVybiB0PT09UHU/bnVsbDp0aGlzLmluZGV4TWFwXy5nZXQodC50b1N0cmluZygpKX0sY2MuSU5URUdFUl9SRUdFWFBfPS9eKDB8WzEtOV1cZCopJC8sY2MpO2Z1bmN0aW9uIGNjKHQsZSxuKXt0aGlzLmNoaWxkcmVuXz10LHRoaXMucHJpb3JpdHlOb2RlXz1lLHRoaXMuaW5kZXhNYXBfPW4sdGhpcy5sYXp5SGFzaF89bnVsbCx0aGlzLnByaW9yaXR5Tm9kZV8mJnp1KHRoaXMucHJpb3JpdHlOb2RlXyksdGhpcy5jaGlsZHJlbl8uaXNFbXB0eSgpJiZzbyghdGhpcy5wcmlvcml0eU5vZGVffHx0aGlzLnByaW9yaXR5Tm9kZV8uaXNFbXB0eSgpLCJBbiBlbXB0eSBub2RlIGNhbm5vdCBoYXZlIGEgcHJpb3JpdHkiKX1mdW5jdGlvbiBoYygpe3JldHVybiBhYy5jYWxsKHRoaXMsbmV3IFV1KFZ1KSx1Yy5FTVBUWV9OT0RFLG9jLkRlZmF1bHQpfHx0aGlzfXZhciBsYz1uZXcoWGkoaGMsYWM9dWMpLGhjLnByb3RvdHlwZS5jb21wYXJlVG89ZnVuY3Rpb24odCl7cmV0dXJuIHQ9PT10aGlzPzA6MX0saGMucHJvdG90eXBlLmVxdWFscz1mdW5jdGlvbih0KXtyZXR1cm4gdD09PXRoaXN9LGhjLnByb3RvdHlwZS5nZXRQcmlvcml0eT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSxoYy5wcm90b3R5cGUuZ2V0SW1tZWRpYXRlQ2hpbGQ9ZnVuY3Rpb24odCl7cmV0dXJuIHVjLkVNUFRZX05PREV9LGhjLnByb3RvdHlwZS5pc0VtcHR5PWZ1bmN0aW9uKCl7cmV0dXJuITF9LGhjKTtPYmplY3QuZGVmaW5lUHJvcGVydGllcyhTdSx7TUlOOnt2YWx1ZTpuZXcgU3UodGEsdWMuRU1QVFlfTk9ERSl9LE1BWDp7dmFsdWU6bmV3IFN1KGVhLGxjKX19KSxTbi5fX0VNUFRZX05PREU9dWMuRU1QVFlfTk9ERSxRdS5fX2NoaWxkcmVuTm9kZUNvbnN0cnVjdG9yPXVjLEZ1PWxjLEh1PWxjO3ZhciBmYz0hMDtmdW5jdGlvbiBwYyhuLHQpe2lmKHZvaWQgMD09PXQmJih0PW51bGwpLG51bGw9PT1uKXJldHVybiB1Yy5FTVBUWV9OT0RFO2lmKCJvYmplY3QiPT10eXBlb2YgbiYmIi5wcmlvcml0eSJpbiBuJiYodD1uWyIucHJpb3JpdHkiXSksc28obnVsbD09PXR8fCJzdHJpbmciPT10eXBlb2YgdHx8Im51bWJlciI9PXR5cGVvZiB0fHwib2JqZWN0Ij09dHlwZW9mIHQmJiIuc3YiaW4gdCwiSW52YWxpZCBwcmlvcml0eSB0eXBlIGZvdW5kOiAiK3R5cGVvZiB0KSwib2JqZWN0Ij09dHlwZW9mIG4mJiIudmFsdWUiaW4gbiYmbnVsbCE9PW5bIi52YWx1ZSJdJiYobj1uWyIudmFsdWUiXSksIm9iamVjdCIhPXR5cGVvZiBufHwiLnN2ImluIG4pcmV0dXJuIG5ldyBRdShuLHBjKHQpKTtpZihuIGluc3RhbmNlb2YgQXJyYXl8fCFmYyl7dmFyIHI9dWMuRU1QVFlfTk9ERTtyZXR1cm4gaWEobixmdW5jdGlvbih0LGUpe09vKG4sdCkmJiIuIiE9PXQuc3Vic3RyaW5nKDAsMSkmJighKGU9cGMoZSkpLmlzTGVhZk5vZGUoKSYmZS5pc0VtcHR5KCl8fChyPXIudXBkYXRlSW1tZWRpYXRlQ2hpbGQodCxlKSkpfSksci51cGRhdGVQcmlvcml0eShwYyh0KSl9dmFyIGk9W10sbz0hMTtpZihpYShuLGZ1bmN0aW9uKHQsZSl7Ii4iIT09dC5zdWJzdHJpbmcoMCwxKSYmKChlPXBjKGUpKS5pc0VtcHR5KCl8fChvPW98fCFlLmdldFByaW9yaXR5KCkuaXNFbXB0eSgpLGkucHVzaChuZXcgU3UodCxlKSkpKX0pLDA9PT1pLmxlbmd0aClyZXR1cm4gdWMuRU1QVFlfTk9ERTt2YXIgZT1yYyhpLHF1LGZ1bmN0aW9uKHQpe3JldHVybiB0Lm5hbWV9LFZ1KTtpZihvKXt2YXIgcz1yYyhpLEp1LmdldENvbXBhcmUoKSk7cmV0dXJuIG5ldyB1YyhlLHBjKHQpLG5ldyBvYyh7Ii5wcmlvcml0eSI6c30seyIucHJpb3JpdHkiOkp1fSkpfXJldHVybiBuZXcgdWMoZSxwYyh0KSxvYy5EZWZhdWx0KX1XdT1wYzt2YXIgZGMsdmMsZ2M9KFhpKHljLGRjPUcpLHljLnByb3RvdHlwZS5leHRyYWN0Q2hpbGQ9ZnVuY3Rpb24odCl7cmV0dXJuIHQuZ2V0Q2hpbGQodGhpcy5pbmRleFBhdGhfKX0seWMucHJvdG90eXBlLmlzRGVmaW5lZE9uPWZ1bmN0aW9uKHQpe3JldHVybiF0LmdldENoaWxkKHRoaXMuaW5kZXhQYXRoXykuaXNFbXB0eSgpfSx5Yy5wcm90b3R5cGUuY29tcGFyZT1mdW5jdGlvbih0LGUpe3ZhciBuPXRoaXMuZXh0cmFjdENoaWxkKHQubm9kZSkscj10aGlzLmV4dHJhY3RDaGlsZChlLm5vZGUpLHI9bi5jb21wYXJlVG8ocik7cmV0dXJuIDA9PT1yP25hKHQubmFtZSxlLm5hbWUpOnJ9LHljLnByb3RvdHlwZS5tYWtlUG9zdD1mdW5jdGlvbih0LGUpe3Q9cGModCksdD11Yy5FTVBUWV9OT0RFLnVwZGF0ZUNoaWxkKHRoaXMuaW5kZXhQYXRoXyx0KTtyZXR1cm4gbmV3IFN1KGUsdCl9LHljLnByb3RvdHlwZS5tYXhQb3N0PWZ1bmN0aW9uKCl7dmFyIHQ9dWMuRU1QVFlfTk9ERS51cGRhdGVDaGlsZCh0aGlzLmluZGV4UGF0aF8sbGMpO3JldHVybiBuZXcgU3UoZWEsdCl9LHljLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiBzdSh0aGlzLmluZGV4UGF0aF8sMCkuam9pbigiLyIpfSx5Yyk7ZnVuY3Rpb24geWModCl7dmFyIGU9ZGMuY2FsbCh0aGlzKXx8dGhpcztyZXR1cm4gZS5pbmRleFBhdGhfPXQsc28oIWN1KHQpJiYiLnByaW9yaXR5IiE9PW51KHQpLCJDYW4ndCBjcmVhdGUgUGF0aEluZGV4IHdpdGggZW1wdHkgcGF0aCBvciAucHJpb3JpdHkga2V5IiksZX1mdW5jdGlvbiBtYygpe3JldHVybiBudWxsIT09dmMmJnZjLmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpc31mdW5jdGlvbiBiYyh0KXtpZih0PT09IiIraGEpcmV0dXJuIi0iO3ZhciBlPWxhKHQpO2lmKG51bGwhPWUpcmV0dXJuIiIrKGUrMSk7Zm9yKHZhciBuPW5ldyBBcnJheSh0Lmxlbmd0aCkscj0wO3I8bi5sZW5ndGg7cisrKW5bcl09dC5jaGFyQXQocik7aWYobi5sZW5ndGg8Nzg2KXJldHVybiBuLnB1c2goIi0iKSxuLmpvaW4oIiIpO2Zvcih2YXIgaT1uLmxlbmd0aC0xOzA8PWkmJiJ6Ij09PW5baV07KWktLTtyZXR1cm4tMT09PWk/ZWE6KGU9bltpXSxlPUVjLmNoYXJBdChFYy5pbmRleE9mKGUpKzEpLG5baV09ZSxuLnNsaWNlKDAsaSsxKS5qb2luKCIiKSl9ZnVuY3Rpb24gd2ModCl7aWYodD09PSIiK2NhKXJldHVybiB0YTt2YXIgZT1sYSh0KTtpZihudWxsIT1lKXJldHVybiIiKyhlLTEpO2Zvcih2YXIgbj1uZXcgQXJyYXkodC5sZW5ndGgpLHI9MDtyPG4ubGVuZ3RoO3IrKyluW3JdPXQuY2hhckF0KHIpO3JldHVybiItIj09PW5bbi5sZW5ndGgtMV0/MT09PW4ubGVuZ3RoPyIiK2hhOihkZWxldGUgbltuLmxlbmd0aC0xXSxuLmpvaW4oIiIpKToobltuLmxlbmd0aC0xXT1FYy5jaGFyQXQoRWMuaW5kZXhPZihuW24ubGVuZ3RoLTFdKS0xKSxuLmpvaW4oIiIpKyJ6Ii5yZXBlYXQoNzg2LW4ubGVuZ3RoKSl9dmFyIF9jLEljLFRjPW5ldyhYaShtYyx2Yz1HKSxtYy5wcm90b3R5cGUuY29tcGFyZT1mdW5jdGlvbih0LGUpe3ZhciBuPXQubm9kZS5jb21wYXJlVG8oZS5ub2RlKTtyZXR1cm4gMD09PW4/bmEodC5uYW1lLGUubmFtZSk6bn0sbWMucHJvdG90eXBlLmlzRGVmaW5lZE9uPWZ1bmN0aW9uKHQpe3JldHVybiEwfSxtYy5wcm90b3R5cGUuaW5kZXhlZFZhbHVlQ2hhbmdlZD1mdW5jdGlvbih0LGUpe3JldHVybiF0LmVxdWFscyhlKX0sbWMucHJvdG90eXBlLm1pblBvc3Q9ZnVuY3Rpb24oKXtyZXR1cm4gU3UuTUlOfSxtYy5wcm90b3R5cGUubWF4UG9zdD1mdW5jdGlvbigpe3JldHVybiBTdS5NQVh9LG1jLnByb3RvdHlwZS5tYWtlUG9zdD1mdW5jdGlvbih0LGUpe3Q9cGModCk7cmV0dXJuIG5ldyBTdShlLHQpfSxtYy5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4iLnZhbHVlIn0sbWMpLEVjPSItMDEyMzQ1Njc4OUFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaX2FiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IixTYz0oX2M9MCxJYz1bXSxmdW5jdGlvbih0KXt2YXIgZT10PT09X2M7X2M9dDtmb3IodmFyIG49bmV3IEFycmF5KDgpLHI9NzswPD1yO3ItLSluW3JdPUVjLmNoYXJBdCh0JTY0KSx0PU1hdGguZmxvb3IodC82NCk7c28oMD09PXQsIkNhbm5vdCBwdXNoIGF0IHRpbWUgPT0gMCIpO3ZhciBpPW4uam9pbigiIik7aWYoZSl7Zm9yKHI9MTE7MDw9ciYmNjM9PT1JY1tyXTtyLS0pSWNbcl09MDtJY1tyXSsrfWVsc2UgZm9yKHI9MDtyPDEyO3IrKylJY1tyXT1NYXRoLmZsb29yKDY0Kk1hdGgucmFuZG9tKCkpO2ZvcihyPTA7cjwxMjtyKyspaSs9RWMuY2hhckF0KEljW3JdKTtyZXR1cm4gc28oMjA9PT1pLmxlbmd0aCwibmV4dFB1c2hJZDogTGVuZ3RoIHNob3VsZCBiZSAyMC4iKSxpfSk7ZnVuY3Rpb24gQ2ModCl7cmV0dXJue3R5cGU6InZhbHVlIixzbmFwc2hvdE5vZGU6dH19ZnVuY3Rpb24gTmModCxlKXtyZXR1cm57dHlwZToiY2hpbGRfYWRkZWQiLHNuYXBzaG90Tm9kZTplLGNoaWxkTmFtZTp0fX1mdW5jdGlvbiBBYyh0LGUpe3JldHVybnt0eXBlOiJjaGlsZF9yZW1vdmVkIixzbmFwc2hvdE5vZGU6ZSxjaGlsZE5hbWU6dH19ZnVuY3Rpb24ga2ModCxlLG4pe3JldHVybnt0eXBlOiJjaGlsZF9jaGFuZ2VkIixzbmFwc2hvdE5vZGU6ZSxjaGlsZE5hbWU6dCxvbGRTbmFwOm59fXZhciBSYz0oUGMucHJvdG90eXBlLnVwZGF0ZUNoaWxkPWZ1bmN0aW9uKHQsZSxuLHIsaSxvKXtzbyh0LmlzSW5kZXhlZCh0aGlzLmluZGV4XyksIkEgbm9kZSBtdXN0IGJlIGluZGV4ZWQgaWYgb25seSBhIGNoaWxkIGlzIHVwZGF0ZWQiKTt2YXIgcz10LmdldEltbWVkaWF0ZUNoaWxkKGUpO3JldHVybiBzLmdldENoaWxkKHIpLmVxdWFscyhuLmdldENoaWxkKHIpKSYmcy5pc0VtcHR5KCk9PT1uLmlzRW1wdHkoKT90OihudWxsIT1vJiYobi5pc0VtcHR5KCk/dC5oYXNDaGlsZChlKT9vLnRyYWNrQ2hpbGRDaGFuZ2UoQWMoZSxzKSk6c28odC5pc0xlYWZOb2RlKCksIkEgY2hpbGQgcmVtb3ZlIHdpdGhvdXQgYW4gb2xkIGNoaWxkIG9ubHkgbWFrZXMgc2Vuc2Ugb24gYSBsZWFmIG5vZGUiKTpzLmlzRW1wdHkoKT9vLnRyYWNrQ2hpbGRDaGFuZ2UoTmMoZSxuKSk6by50cmFja0NoaWxkQ2hhbmdlKGtjKGUsbixzKSkpLHQuaXNMZWFmTm9kZSgpJiZuLmlzRW1wdHkoKT90OnQudXBkYXRlSW1tZWRpYXRlQ2hpbGQoZSxuKS53aXRoSW5kZXgodGhpcy5pbmRleF8pKX0sUGMucHJvdG90eXBlLnVwZGF0ZUZ1bGxOb2RlPWZ1bmN0aW9uKHIsbixpKXtyZXR1cm4gbnVsbCE9aSYmKHIuaXNMZWFmTm9kZSgpfHxyLmZvckVhY2hDaGlsZChKdSxmdW5jdGlvbih0LGUpe24uaGFzQ2hpbGQodCl8fGkudHJhY2tDaGlsZENoYW5nZShBYyh0LGUpKX0pLG4uaXNMZWFmTm9kZSgpfHxuLmZvckVhY2hDaGlsZChKdSxmdW5jdGlvbih0LGUpe3ZhciBuO3IuaGFzQ2hpbGQodCk/KG49ci5nZXRJbW1lZGlhdGVDaGlsZCh0KSkuZXF1YWxzKGUpfHxpLnRyYWNrQ2hpbGRDaGFuZ2Uoa2ModCxlLG4pKTppLnRyYWNrQ2hpbGRDaGFuZ2UoTmModCxlKSl9KSksbi53aXRoSW5kZXgodGhpcy5pbmRleF8pfSxQYy5wcm90b3R5cGUudXBkYXRlUHJpb3JpdHk9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdC5pc0VtcHR5KCk/dWMuRU1QVFlfTk9ERTp0LnVwZGF0ZVByaW9yaXR5KGUpfSxQYy5wcm90b3R5cGUuZmlsdGVyc05vZGVzPWZ1bmN0aW9uKCl7cmV0dXJuITF9LFBjLnByb3RvdHlwZS5nZXRJbmRleGVkRmlsdGVyPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9LFBjLnByb3RvdHlwZS5nZXRJbmRleD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmluZGV4X30sUGMpO2Z1bmN0aW9uIFBjKHQpe3RoaXMuaW5kZXhfPXR9dmFyIE9jPShEYy5wcm90b3R5cGUuZ2V0U3RhcnRQb3N0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc3RhcnRQb3N0X30sRGMucHJvdG90eXBlLmdldEVuZFBvc3Q9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lbmRQb3N0X30sRGMucHJvdG90eXBlLm1hdGNoZXM9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuaW5kZXhfLmNvbXBhcmUodGhpcy5nZXRTdGFydFBvc3QoKSx0KTw9MCYmdGhpcy5pbmRleF8uY29tcGFyZSh0LHRoaXMuZ2V0RW5kUG9zdCgpKTw9MH0sRGMucHJvdG90eXBlLnVwZGF0ZUNoaWxkPWZ1bmN0aW9uKHQsZSxuLHIsaSxvKXtyZXR1cm4gdGhpcy5tYXRjaGVzKG5ldyBTdShlLG4pKXx8KG49dWMuRU1QVFlfTk9ERSksdGhpcy5pbmRleGVkRmlsdGVyXy51cGRhdGVDaGlsZCh0LGUsbixyLGksbyl9LERjLnByb3RvdHlwZS51cGRhdGVGdWxsTm9kZT1mdW5jdGlvbih0LGUsbil7ZS5pc0xlYWZOb2RlKCkmJihlPXVjLkVNUFRZX05PREUpO3ZhciByPShyPWUud2l0aEluZGV4KHRoaXMuaW5kZXhfKSkudXBkYXRlUHJpb3JpdHkodWMuRU1QVFlfTk9ERSksaT10aGlzO3JldHVybiBlLmZvckVhY2hDaGlsZChKdSxmdW5jdGlvbih0LGUpe2kubWF0Y2hlcyhuZXcgU3UodCxlKSl8fChyPXIudXBkYXRlSW1tZWRpYXRlQ2hpbGQodCx1Yy5FTVBUWV9OT0RFKSl9KSx0aGlzLmluZGV4ZWRGaWx0ZXJfLnVwZGF0ZUZ1bGxOb2RlKHQscixuKX0sRGMucHJvdG90eXBlLnVwZGF0ZVByaW9yaXR5PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHR9LERjLnByb3RvdHlwZS5maWx0ZXJzTm9kZXM9ZnVuY3Rpb24oKXtyZXR1cm4hMH0sRGMucHJvdG90eXBlLmdldEluZGV4ZWRGaWx0ZXI9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pbmRleGVkRmlsdGVyX30sRGMucHJvdG90eXBlLmdldEluZGV4PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaW5kZXhffSxEYy5nZXRTdGFydFBvc3RfPWZ1bmN0aW9uKHQpe2lmKHQuaGFzU3RhcnQoKSl7dmFyIGU9dC5nZXRJbmRleFN0YXJ0TmFtZSgpO3JldHVybiB0LmdldEluZGV4KCkubWFrZVBvc3QodC5nZXRJbmRleFN0YXJ0VmFsdWUoKSxlKX1yZXR1cm4gdC5nZXRJbmRleCgpLm1pblBvc3QoKX0sRGMuZ2V0RW5kUG9zdF89ZnVuY3Rpb24odCl7aWYodC5oYXNFbmQoKSl7dmFyIGU9dC5nZXRJbmRleEVuZE5hbWUoKTtyZXR1cm4gdC5nZXRJbmRleCgpLm1ha2VQb3N0KHQuZ2V0SW5kZXhFbmRWYWx1ZSgpLGUpfXJldHVybiB0LmdldEluZGV4KCkubWF4UG9zdCgpfSxEYyk7ZnVuY3Rpb24gRGModCl7dGhpcy5pbmRleGVkRmlsdGVyXz1uZXcgUmModC5nZXRJbmRleCgpKSx0aGlzLmluZGV4Xz10LmdldEluZGV4KCksdGhpcy5zdGFydFBvc3RfPURjLmdldFN0YXJ0UG9zdF8odCksdGhpcy5lbmRQb3N0Xz1EYy5nZXRFbmRQb3N0Xyh0KX12YXIgeGM9KExjLnByb3RvdHlwZS51cGRhdGVDaGlsZD1mdW5jdGlvbih0LGUsbixyLGksbyl7cmV0dXJuIHRoaXMucmFuZ2VkRmlsdGVyXy5tYXRjaGVzKG5ldyBTdShlLG4pKXx8KG49dWMuRU1QVFlfTk9ERSksdC5nZXRJbW1lZGlhdGVDaGlsZChlKS5lcXVhbHMobik/dDp0Lm51bUNoaWxkcmVuKCk8dGhpcy5saW1pdF8/dGhpcy5yYW5nZWRGaWx0ZXJfLmdldEluZGV4ZWRGaWx0ZXIoKS51cGRhdGVDaGlsZCh0LGUsbixyLGksbyk6dGhpcy5mdWxsTGltaXRVcGRhdGVDaGlsZF8odCxlLG4saSxvKX0sTGMucHJvdG90eXBlLnVwZGF0ZUZ1bGxOb2RlPWZ1bmN0aW9uKHQsZSxuKXtpZihlLmlzTGVhZk5vZGUoKXx8ZS5pc0VtcHR5KCkpcj11Yy5FTVBUWV9OT0RFLndpdGhJbmRleCh0aGlzLmluZGV4Xyk7ZWxzZSBpZigyKnRoaXMubGltaXRfPGUubnVtQ2hpbGRyZW4oKSYmZS5pc0luZGV4ZWQodGhpcy5pbmRleF8pKXt2YXIgcj11Yy5FTVBUWV9OT0RFLndpdGhJbmRleCh0aGlzLmluZGV4XyksaT12b2lkIDA7aT10aGlzLnJldmVyc2VfP2UuZ2V0UmV2ZXJzZUl0ZXJhdG9yRnJvbSh0aGlzLnJhbmdlZEZpbHRlcl8uZ2V0RW5kUG9zdCgpLHRoaXMuaW5kZXhfKTplLmdldEl0ZXJhdG9yRnJvbSh0aGlzLnJhbmdlZEZpbHRlcl8uZ2V0U3RhcnRQb3N0KCksdGhpcy5pbmRleF8pO2Zvcih2YXIgbz0wO2kuaGFzTmV4dCgpJiZvPHRoaXMubGltaXRfOyl7dmFyIHM9aS5nZXROZXh0KCk7aWYoISh0aGlzLnJldmVyc2VfP3RoaXMuaW5kZXhfLmNvbXBhcmUodGhpcy5yYW5nZWRGaWx0ZXJfLmdldFN0YXJ0UG9zdCgpLHMpPD0wOnRoaXMuaW5kZXhfLmNvbXBhcmUocyx0aGlzLnJhbmdlZEZpbHRlcl8uZ2V0RW5kUG9zdCgpKTw9MCkpYnJlYWs7cj1yLnVwZGF0ZUltbWVkaWF0ZUNoaWxkKHMubmFtZSxzLm5vZGUpLG8rK319ZWxzZXtyPShyPWUud2l0aEluZGV4KHRoaXMuaW5kZXhfKSkudXBkYXRlUHJpb3JpdHkodWMuRU1QVFlfTk9ERSk7dmFyIGEsdT12b2lkIDAsYz12b2lkIDAsaD12b2lkIDAsaT12b2lkIDA7aD10aGlzLnJldmVyc2VfPyhpPXIuZ2V0UmV2ZXJzZUl0ZXJhdG9yKHRoaXMuaW5kZXhfKSx1PXRoaXMucmFuZ2VkRmlsdGVyXy5nZXRFbmRQb3N0KCksYz10aGlzLnJhbmdlZEZpbHRlcl8uZ2V0U3RhcnRQb3N0KCksYT10aGlzLmluZGV4Xy5nZXRDb21wYXJlKCksZnVuY3Rpb24odCxlKXtyZXR1cm4gYShlLHQpfSk6KGk9ci5nZXRJdGVyYXRvcih0aGlzLmluZGV4XyksdT10aGlzLnJhbmdlZEZpbHRlcl8uZ2V0U3RhcnRQb3N0KCksYz10aGlzLnJhbmdlZEZpbHRlcl8uZ2V0RW5kUG9zdCgpLHRoaXMuaW5kZXhfLmdldENvbXBhcmUoKSk7Zm9yKHZhciBvPTAsbD0hMTtpLmhhc05leHQoKTspe3M9aS5nZXROZXh0KCk7KGw9IWwmJmgodSxzKTw9MD8hMDpsKSYmbzx0aGlzLmxpbWl0XyYmaChzLGMpPD0wP28rKzpyPXIudXBkYXRlSW1tZWRpYXRlQ2hpbGQocy5uYW1lLHVjLkVNUFRZX05PREUpfX1yZXR1cm4gdGhpcy5yYW5nZWRGaWx0ZXJfLmdldEluZGV4ZWRGaWx0ZXIoKS51cGRhdGVGdWxsTm9kZSh0LHIsbil9LExjLnByb3RvdHlwZS51cGRhdGVQcmlvcml0eT1mdW5jdGlvbih0LGUpe3JldHVybiB0fSxMYy5wcm90b3R5cGUuZmlsdGVyc05vZGVzPWZ1bmN0aW9uKCl7cmV0dXJuITB9LExjLnByb3RvdHlwZS5nZXRJbmRleGVkRmlsdGVyPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucmFuZ2VkRmlsdGVyXy5nZXRJbmRleGVkRmlsdGVyKCl9LExjLnByb3RvdHlwZS5nZXRJbmRleD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmluZGV4X30sTGMucHJvdG90eXBlLmZ1bGxMaW1pdFVwZGF0ZUNoaWxkXz1mdW5jdGlvbih0LGUsbixyLGkpe3ZhciBvLHM7cz10aGlzLnJldmVyc2VfPyhvPXRoaXMuaW5kZXhfLmdldENvbXBhcmUoKSxmdW5jdGlvbih0LGUpe3JldHVybiBvKGUsdCl9KTp0aGlzLmluZGV4Xy5nZXRDb21wYXJlKCk7dmFyIGE9dDtzbyhhLm51bUNoaWxkcmVuKCk9PT10aGlzLmxpbWl0XywiIik7dmFyIHU9bmV3IFN1KGUsbiksYz10aGlzLnJldmVyc2VfP2EuZ2V0Rmlyc3RDaGlsZCh0aGlzLmluZGV4Xyk6YS5nZXRMYXN0Q2hpbGQodGhpcy5pbmRleF8pLGg9dGhpcy5yYW5nZWRGaWx0ZXJfLm1hdGNoZXModSk7aWYoYS5oYXNDaGlsZChlKSl7Zm9yKHZhciBsPWEuZ2V0SW1tZWRpYXRlQ2hpbGQoZSksZj1yLmdldENoaWxkQWZ0ZXJDaGlsZCh0aGlzLmluZGV4XyxjLHRoaXMucmV2ZXJzZV8pO251bGwhPWYmJihmLm5hbWU9PT1lfHxhLmhhc0NoaWxkKGYubmFtZSkpOylmPXIuZ2V0Q2hpbGRBZnRlckNoaWxkKHRoaXMuaW5kZXhfLGYsdGhpcy5yZXZlcnNlXyk7dmFyIHA9bnVsbD09Zj8xOnMoZix1KTtpZihoJiYhbi5pc0VtcHR5KCkmJjA8PXApcmV0dXJuIG51bGwhPWkmJmkudHJhY2tDaGlsZENoYW5nZShrYyhlLG4sbCkpLGEudXBkYXRlSW1tZWRpYXRlQ2hpbGQoZSxuKTtudWxsIT1pJiZpLnRyYWNrQ2hpbGRDaGFuZ2UoQWMoZSxsKSk7bD1hLnVwZGF0ZUltbWVkaWF0ZUNoaWxkKGUsdWMuRU1QVFlfTk9ERSk7cmV0dXJuIG51bGwhPWYmJnRoaXMucmFuZ2VkRmlsdGVyXy5tYXRjaGVzKGYpPyhudWxsIT1pJiZpLnRyYWNrQ2hpbGRDaGFuZ2UoTmMoZi5uYW1lLGYubm9kZSkpLGwudXBkYXRlSW1tZWRpYXRlQ2hpbGQoZi5uYW1lLGYubm9kZSkpOmx9cmV0dXJuIW4uaXNFbXB0eSgpJiZoJiYwPD1zKGMsdSk/KG51bGwhPWkmJihpLnRyYWNrQ2hpbGRDaGFuZ2UoQWMoYy5uYW1lLGMubm9kZSkpLGkudHJhY2tDaGlsZENoYW5nZShOYyhlLG4pKSksYS51cGRhdGVJbW1lZGlhdGVDaGlsZChlLG4pLnVwZGF0ZUltbWVkaWF0ZUNoaWxkKGMubmFtZSx1Yy5FTVBUWV9OT0RFKSk6dH0sTGMpO2Z1bmN0aW9uIExjKHQpe3RoaXMucmFuZ2VkRmlsdGVyXz1uZXcgT2ModCksdGhpcy5pbmRleF89dC5nZXRJbmRleCgpLHRoaXMubGltaXRfPXQuZ2V0TGltaXQoKSx0aGlzLnJldmVyc2VfPSF0LmlzVmlld0Zyb21MZWZ0KCl9dmFyIE1jPShGYy5wcm90b3R5cGUuaGFzU3RhcnQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zdGFydFNldF99LEZjLnByb3RvdHlwZS5oYXNTdGFydEFmdGVyPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc3RhcnRBZnRlclNldF99LEZjLnByb3RvdHlwZS5oYXNFbmRCZWZvcmU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lbmRCZWZvcmVTZXRffSxGYy5wcm90b3R5cGUuaXNWaWV3RnJvbUxlZnQ9ZnVuY3Rpb24oKXtyZXR1cm4iIj09PXRoaXMudmlld0Zyb21fP3RoaXMuc3RhcnRTZXRfOiJsIj09PXRoaXMudmlld0Zyb21ffSxGYy5wcm90b3R5cGUuZ2V0SW5kZXhTdGFydFZhbHVlPWZ1bmN0aW9uKCl7cmV0dXJuIHNvKHRoaXMuc3RhcnRTZXRfLCJPbmx5IHZhbGlkIGlmIHN0YXJ0IGhhcyBiZWVuIHNldCIpLHRoaXMuaW5kZXhTdGFydFZhbHVlX30sRmMucHJvdG90eXBlLmdldEluZGV4U3RhcnROYW1lPWZ1bmN0aW9uKCl7cmV0dXJuIHNvKHRoaXMuc3RhcnRTZXRfLCJPbmx5IHZhbGlkIGlmIHN0YXJ0IGhhcyBiZWVuIHNldCIpLHRoaXMuc3RhcnROYW1lU2V0Xz90aGlzLmluZGV4U3RhcnROYW1lXzp0YX0sRmMucHJvdG90eXBlLmhhc0VuZD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmVuZFNldF99LEZjLnByb3RvdHlwZS5nZXRJbmRleEVuZFZhbHVlPWZ1bmN0aW9uKCl7cmV0dXJuIHNvKHRoaXMuZW5kU2V0XywiT25seSB2YWxpZCBpZiBlbmQgaGFzIGJlZW4gc2V0IiksdGhpcy5pbmRleEVuZFZhbHVlX30sRmMucHJvdG90eXBlLmdldEluZGV4RW5kTmFtZT1mdW5jdGlvbigpe3JldHVybiBzbyh0aGlzLmVuZFNldF8sIk9ubHkgdmFsaWQgaWYgZW5kIGhhcyBiZWVuIHNldCIpLHRoaXMuZW5kTmFtZVNldF8/dGhpcy5pbmRleEVuZE5hbWVfOmVhfSxGYy5wcm90b3R5cGUuaGFzTGltaXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5saW1pdFNldF99LEZjLnByb3RvdHlwZS5oYXNBbmNob3JlZExpbWl0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubGltaXRTZXRfJiYiIiE9PXRoaXMudmlld0Zyb21ffSxGYy5wcm90b3R5cGUuZ2V0TGltaXQ9ZnVuY3Rpb24oKXtyZXR1cm4gc28odGhpcy5saW1pdFNldF8sIk9ubHkgdmFsaWQgaWYgbGltaXQgaGFzIGJlZW4gc2V0IiksdGhpcy5saW1pdF99LEZjLnByb3RvdHlwZS5nZXRJbmRleD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmluZGV4X30sRmMucHJvdG90eXBlLmxvYWRzQWxsRGF0YT1mdW5jdGlvbigpe3JldHVybiEodGhpcy5zdGFydFNldF98fHRoaXMuZW5kU2V0X3x8dGhpcy5saW1pdFNldF8pfSxGYy5wcm90b3R5cGUuaXNEZWZhdWx0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubG9hZHNBbGxEYXRhKCkmJnRoaXMuaW5kZXhfPT09SnV9LEZjLnByb3RvdHlwZS5jb3B5PWZ1bmN0aW9uKCl7dmFyIHQ9bmV3IEZjO3JldHVybiB0LmxpbWl0U2V0Xz10aGlzLmxpbWl0U2V0Xyx0LmxpbWl0Xz10aGlzLmxpbWl0Xyx0LnN0YXJ0U2V0Xz10aGlzLnN0YXJ0U2V0Xyx0LmluZGV4U3RhcnRWYWx1ZV89dGhpcy5pbmRleFN0YXJ0VmFsdWVfLHQuc3RhcnROYW1lU2V0Xz10aGlzLnN0YXJ0TmFtZVNldF8sdC5pbmRleFN0YXJ0TmFtZV89dGhpcy5pbmRleFN0YXJ0TmFtZV8sdC5lbmRTZXRfPXRoaXMuZW5kU2V0Xyx0LmluZGV4RW5kVmFsdWVfPXRoaXMuaW5kZXhFbmRWYWx1ZV8sdC5lbmROYW1lU2V0Xz10aGlzLmVuZE5hbWVTZXRfLHQuaW5kZXhFbmROYW1lXz10aGlzLmluZGV4RW5kTmFtZV8sdC5pbmRleF89dGhpcy5pbmRleF8sdC52aWV3RnJvbV89dGhpcy52aWV3RnJvbV8sdH0sRmMpO2Z1bmN0aW9uIEZjKCl7dGhpcy5saW1pdFNldF89ITEsdGhpcy5zdGFydFNldF89ITEsdGhpcy5zdGFydE5hbWVTZXRfPSExLHRoaXMuc3RhcnRBZnRlclNldF89ITEsdGhpcy5lbmRTZXRfPSExLHRoaXMuZW5kTmFtZVNldF89ITEsdGhpcy5lbmRCZWZvcmVTZXRfPSExLHRoaXMubGltaXRfPTAsdGhpcy52aWV3RnJvbV89IiIsdGhpcy5pbmRleFN0YXJ0VmFsdWVfPW51bGwsdGhpcy5pbmRleFN0YXJ0TmFtZV89IiIsdGhpcy5pbmRleEVuZFZhbHVlXz1udWxsLHRoaXMuaW5kZXhFbmROYW1lXz0iIix0aGlzLmluZGV4Xz1KdX1mdW5jdGlvbiBVYyh0LGUsbil7dD10LmNvcHkoKTtyZXR1cm4gdC5zdGFydFNldF89ITAsdm9pZCAwPT09ZSYmKGU9bnVsbCksdC5pbmRleFN0YXJ0VmFsdWVfPWUsbnVsbCE9bj8odC5zdGFydE5hbWVTZXRfPSEwLHQuaW5kZXhTdGFydE5hbWVfPW4pOih0LnN0YXJ0TmFtZVNldF89ITEsdC5pbmRleFN0YXJ0TmFtZV89IiIpLHR9ZnVuY3Rpb24gamModCxlLG4pe3Q9dC5jb3B5KCk7cmV0dXJuIHQuZW5kU2V0Xz0hMCx2b2lkIDA9PT1lJiYoZT1udWxsKSx0LmluZGV4RW5kVmFsdWVfPWUsdm9pZCAwIT09bj8odC5lbmROYW1lU2V0Xz0hMCx0LmluZGV4RW5kTmFtZV89bik6KHQuZW5kTmFtZVNldF89ITEsdC5pbmRleEVuZE5hbWVfPSIiKSx0fWZ1bmN0aW9uIHFjKHQsZSl7dD10LmNvcHkoKTtyZXR1cm4gdC5pbmRleF89ZSx0fWZ1bmN0aW9uIFZjKHQpe3ZhciBlLG49e307cmV0dXJuIHQuaXNEZWZhdWx0KCl8fChlPXQuaW5kZXhfPT09SnU/IiRwcmlvcml0eSI6dC5pbmRleF89PT1UYz8iJHZhbHVlIjp0LmluZGV4Xz09PVB1PyIka2V5Ijooc28odC5pbmRleF8gaW5zdGFuY2VvZiBnYywiVW5yZWNvZ25pemVkIGluZGV4IHR5cGUhIiksdC5pbmRleF8udG9TdHJpbmcoKSksbi5vcmRlckJ5PVJvKGUpLHQuc3RhcnRTZXRfJiYobi5zdGFydEF0PVJvKHQuaW5kZXhTdGFydFZhbHVlXyksdC5zdGFydE5hbWVTZXRfJiYobi5zdGFydEF0Kz0iLCIrUm8odC5pbmRleFN0YXJ0TmFtZV8pKSksdC5lbmRTZXRfJiYobi5lbmRBdD1Sbyh0LmluZGV4RW5kVmFsdWVfKSx0LmVuZE5hbWVTZXRfJiYobi5lbmRBdCs9IiwiK1JvKHQuaW5kZXhFbmROYW1lXykpKSx0LmxpbWl0U2V0XyYmKHQuaXNWaWV3RnJvbUxlZnQoKT9uLmxpbWl0VG9GaXJzdD10LmxpbWl0XzpuLmxpbWl0VG9MYXN0PXQubGltaXRfKSksbn12YXIgQmMsS2M9KFhpKFdjLEJjPXopLFdjLnByb3RvdHlwZS5yZXBvcnRTdGF0cz1mdW5jdGlvbih0KXt0aHJvdyBuZXcgRXJyb3IoIk1ldGhvZCBub3QgaW1wbGVtZW50ZWQuIil9LFdjLmdldExpc3RlbklkXz1mdW5jdGlvbih0LGUpe3JldHVybiB2b2lkIDAhPT1lPyJ0YWckIitlOihzbyh0LmdldFF1ZXJ5UGFyYW1zKCkuaXNEZWZhdWx0KCksInNob3VsZCBoYXZlIGEgdGFnIGlmIGl0J3Mgbm90IGEgZGVmYXVsdCBxdWVyeS4iKSx0LnBhdGgudG9TdHJpbmcoKSl9LFdjLnByb3RvdHlwZS5saXN0ZW49ZnVuY3Rpb24odCxlLG4scil7dmFyIGk9dGhpcyxvPXQucGF0aC50b1N0cmluZygpO3RoaXMubG9nXygiTGlzdGVuIGNhbGxlZCBmb3IgIitvKyIgIit0LnF1ZXJ5SWRlbnRpZmllcigpKTt2YXIgcz1XYy5nZXRMaXN0ZW5JZF8odCxuKSxhPXt9O3RoaXMubGlzdGVuc19bc109YTt0PVZjKHQuZ2V0UXVlcnlQYXJhbXMoKSk7dGhpcy5yZXN0UmVxdWVzdF8obysiLmpzb24iLHQsZnVuY3Rpb24odCxlKXtudWxsPT09KHQ9NDA0PT09dD9lPW51bGw6dCkmJmkub25EYXRhVXBkYXRlXyhvLGUsITEsbiksRG8oaS5saXN0ZW5zXyxzKT09PWEmJnIodD80MDE9PT10PyJwZXJtaXNzaW9uX2RlbmllZCI6InJlc3RfZXJyb3I6Iit0OiJvayIsbnVsbCl9KX0sV2MucHJvdG90eXBlLnVubGlzdGVuPWZ1bmN0aW9uKHQsZSl7ZT1XYy5nZXRMaXN0ZW5JZF8odCxlKTtkZWxldGUgdGhpcy5saXN0ZW5zX1tlXX0sV2MucHJvdG90eXBlLmdldD1mdW5jdGlvbih0KXt2YXIgbj10aGlzLGU9VmModC5nZXRRdWVyeVBhcmFtcygpKSxyPXQucGF0aC50b1N0cmluZygpLGk9bmV3IGxvO3JldHVybiB0aGlzLnJlc3RSZXF1ZXN0XyhyKyIuanNvbiIsZSxmdW5jdGlvbih0LGUpe251bGw9PT0odD00MDQ9PT10P2U9bnVsbDp0KT8obi5vbkRhdGFVcGRhdGVfKHIsZSwhMSxudWxsKSxpLnJlc29sdmUoZSkpOmkucmVqZWN0KG5ldyBFcnJvcihlKSl9KSxpLnByb21pc2V9LFdjLnByb3RvdHlwZS5yZWZyZXNoQXV0aFRva2VuPWZ1bmN0aW9uKHQpe30sV2MucHJvdG90eXBlLnJlc3RSZXF1ZXN0Xz1mdW5jdGlvbihyLGksbyl7dmFyIHM9dGhpczsoaT12b2lkIDA9PT1pP3t9OmkpLmZvcm1hdD0iZXhwb3J0Iix0aGlzLmF1dGhUb2tlblByb3ZpZGVyXy5nZXRUb2tlbighMSkudGhlbihmdW5jdGlvbih0KXt0PXQmJnQuYWNjZXNzVG9rZW47dCYmKGkuYXV0aD10KTt2YXIgZT0ocy5yZXBvSW5mb18uc2VjdXJlPyJodHRwczovLyI6Imh0dHA6Ly8iKStzLnJlcG9JbmZvXy5ob3N0K3IrIj9ucz0iK3MucmVwb0luZm9fLm5hbWVzcGFjZStNbyhpKTtzLmxvZ18oIlNlbmRpbmcgUkVTVCByZXF1ZXN0IGZvciAiK2UpO3ZhciBuPW5ldyBYTUxIdHRwUmVxdWVzdDtuLm9ucmVhZHlzdGF0ZWNoYW5nZT1mdW5jdGlvbigpe2lmKG8mJjQ9PT1uLnJlYWR5U3RhdGUpe3MubG9nXygiUkVTVCBSZXNwb25zZSBmb3IgIitlKyIgcmVjZWl2ZWQuIHN0YXR1czoiLG4uc3RhdHVzLCJyZXNwb25zZToiLG4ucmVzcG9uc2VUZXh0KTt2YXIgdD1udWxsO2lmKDIwMDw9bi5zdGF0dXMmJm4uc3RhdHVzPDMwMCl7dHJ5e3Q9a28obi5yZXNwb25zZVRleHQpfWNhdGNoKHQpe1pzKCJGYWlsZWQgdG8gcGFyc2UgSlNPTiByZXNwb25zZSBmb3IgIitlKyI6ICIrbi5yZXNwb25zZVRleHQpfW8obnVsbCx0KX1lbHNlIDQwMSE9PW4uc3RhdHVzJiY0MDQhPT1uLnN0YXR1cyYmWnMoIkdvdCB1bnN1Y2Nlc3NmdWwgUkVTVCByZXNwb25zZSBmb3IgIitlKyIgU3RhdHVzOiAiK24uc3RhdHVzKSxvKG4uc3RhdHVzKTtvPW51bGx9fSxuLm9wZW4oIkdFVCIsZSwhMCksbi5zZW5kKCl9KX0sV2MpO2Z1bmN0aW9uIFdjKHQsZSxuKXt2YXIgcj1CYy5jYWxsKHRoaXMpfHx0aGlzO3JldHVybiByLnJlcG9JbmZvXz10LHIub25EYXRhVXBkYXRlXz1lLHIuYXV0aFRva2VuUHJvdmlkZXJfPW4sci5sb2dfPUpzKCJwOnJlc3Q6Iiksci5saXN0ZW5zXz17fSxyfXZhciBIYz0oR2MucHJvdG90eXBlLmdldE5vZGU9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMucm9vdE5vZGVfLmdldENoaWxkKHQpfSxHYy5wcm90b3R5cGUudXBkYXRlU25hcHNob3Q9ZnVuY3Rpb24odCxlKXt0aGlzLnJvb3ROb2RlXz10aGlzLnJvb3ROb2RlXy51cGRhdGVDaGlsZCh0LGUpfSxHYyk7ZnVuY3Rpb24gR2MoKXt0aGlzLnJvb3ROb2RlXz11Yy5FTVBUWV9OT0RFfWZ1bmN0aW9uIHpjKCl7cmV0dXJue3ZhbHVlOm51bGwsY2hpbGRyZW46bmV3IE1hcH19ZnVuY3Rpb24gUWModCxlLG4pe3ZhciByO2N1KGUpPyh0LnZhbHVlPW4sdC5jaGlsZHJlbi5jbGVhcigpKTpudWxsIT09dC52YWx1ZT90LnZhbHVlPXQudmFsdWUudXBkYXRlQ2hpbGQoZSxuKToocj1udShlKSx0LmNoaWxkcmVuLmhhcyhyKXx8dC5jaGlsZHJlbi5zZXQocix6YygpKSxRYyh0LmNoaWxkcmVuLmdldChyKSxlPWl1KGUpLG4pKX1mdW5jdGlvbiBZYyh0LG4scil7dmFyIGk7bnVsbCE9PXQudmFsdWU/cihuLHQudmFsdWUpOihpPWZ1bmN0aW9uKHQsZSl7WWMoZSxuZXcgWmEobi50b1N0cmluZygpKyIvIit0KSxyKX0sdC5jaGlsZHJlbi5mb3JFYWNoKGZ1bmN0aW9uKHQsZSl7aShlLHQpfSkpfXZhciBYYz0oSmMucHJvdG90eXBlLmdldD1mdW5jdGlvbigpe3ZhciB0PXRoaXMuY29sbGVjdGlvbl8uZ2V0KCksbj1KaSh7fSx0KTtyZXR1cm4gdGhpcy5sYXN0XyYmaWEodGhpcy5sYXN0XyxmdW5jdGlvbih0LGUpe25bdF09blt0XS1lfSksdGhpcy5sYXN0Xz10LG59LEpjKTtmdW5jdGlvbiBKYyh0KXt0aGlzLmNvbGxlY3Rpb25fPXQsdGhpcy5sYXN0Xz1udWxsfXZhciAkYyxaYz0odGgucHJvdG90eXBlLnJlcG9ydFN0YXRzXz1mdW5jdGlvbigpe3ZhciBuPXRoaXMsdD10aGlzLnN0YXRzTGlzdGVuZXJfLmdldCgpLHI9e30saT0hMTtpYSh0LGZ1bmN0aW9uKHQsZSl7MDxlJiZPbyhuLnN0YXRzVG9SZXBvcnRfLHQpJiYoclt0XT1lLGk9ITApfSksaSYmdGhpcy5zZXJ2ZXJfLnJlcG9ydFN0YXRzKHIpLHNhKHRoaXMucmVwb3J0U3RhdHNfLmJpbmQodGhpcyksTWF0aC5mbG9vcigyKk1hdGgucmFuZG9tKCkqM2U1KSl9LHRoKTtmdW5jdGlvbiB0aCh0LGUpe3RoaXMuc2VydmVyXz1lLHRoaXMuc3RhdHNUb1JlcG9ydF89e30sdGhpcy5zdGF0c0xpc3RlbmVyXz1uZXcgWGModCk7dD0xZTQrMmU0Kk1hdGgucmFuZG9tKCk7c2EodGhpcy5yZXBvcnRTdGF0c18uYmluZCh0aGlzKSxNYXRoLmZsb29yKHQpKX1mdW5jdGlvbiBlaCgpe3JldHVybntmcm9tVXNlcjohMCxmcm9tU2VydmVyOiExLHF1ZXJ5SWQ6bnVsbCx0YWdnZWQ6ITF9fWZ1bmN0aW9uIG5oKCl7cmV0dXJue2Zyb21Vc2VyOiExLGZyb21TZXJ2ZXI6ITAscXVlcnlJZDpudWxsLHRhZ2dlZDohMX19ZnVuY3Rpb24gcmgodCl7cmV0dXJue2Zyb21Vc2VyOiExLGZyb21TZXJ2ZXI6ITAscXVlcnlJZDp0LHRhZ2dlZDohMH19KEdhPSRjPSRjfHx7fSlbR2EuT1ZFUldSSVRFPTBdPSJPVkVSV1JJVEUiLEdhW0dhLk1FUkdFPTFdPSJNRVJHRSIsR2FbR2EuQUNLX1VTRVJfV1JJVEU9Ml09IkFDS19VU0VSX1dSSVRFIixHYVtHYS5MSVNURU5fQ09NUExFVEU9M109IkxJU1RFTl9DT01QTEVURSI7dmFyIGloPShvaC5wcm90b3R5cGUub3BlcmF0aW9uRm9yQ2hpbGQ9ZnVuY3Rpb24odCl7aWYoY3UodGhpcy5wYXRoKSl7aWYobnVsbCE9dGhpcy5hZmZlY3RlZFRyZWUudmFsdWUpcmV0dXJuIHNvKHRoaXMuYWZmZWN0ZWRUcmVlLmNoaWxkcmVuLmlzRW1wdHkoKSwiYWZmZWN0ZWRUcmVlIHNob3VsZCBub3QgaGF2ZSBvdmVybGFwcGluZyBhZmZlY3RlZCBwYXRocy4iKSx0aGlzO3ZhciBlPXRoaXMuYWZmZWN0ZWRUcmVlLnN1YnRyZWUobmV3IFphKHQpKTtyZXR1cm4gbmV3IG9oKGV1KCksZSx0aGlzLnJldmVydCl9cmV0dXJuIHNvKG51KHRoaXMucGF0aCk9PT10LCJvcGVyYXRpb25Gb3JDaGlsZCBjYWxsZWQgZm9yIHVucmVsYXRlZCBjaGlsZC4iKSxuZXcgb2goaXUodGhpcy5wYXRoKSx0aGlzLmFmZmVjdGVkVHJlZSx0aGlzLnJldmVydCl9LG9oKTtmdW5jdGlvbiBvaCh0LGUsbil7dGhpcy5wYXRoPXQsdGhpcy5hZmZlY3RlZFRyZWU9ZSx0aGlzLnJldmVydD1uLHRoaXMudHlwZT0kYy5BQ0tfVVNFUl9XUklURSx0aGlzLnNvdXJjZT1laCgpfXZhciBzaD0oYWgucHJvdG90eXBlLm9wZXJhdGlvbkZvckNoaWxkPWZ1bmN0aW9uKHQpe3JldHVybiBjdSh0aGlzLnBhdGgpP25ldyBhaCh0aGlzLnNvdXJjZSxldSgpKTpuZXcgYWgodGhpcy5zb3VyY2UsaXUodGhpcy5wYXRoKSl9LGFoKTtmdW5jdGlvbiBhaCh0LGUpe3RoaXMuc291cmNlPXQsdGhpcy5wYXRoPWUsdGhpcy50eXBlPSRjLkxJU1RFTl9DT01QTEVURX12YXIgdWg9KGNoLnByb3RvdHlwZS5vcGVyYXRpb25Gb3JDaGlsZD1mdW5jdGlvbih0KXtyZXR1cm4gY3UodGhpcy5wYXRoKT9uZXcgY2godGhpcy5zb3VyY2UsZXUoKSx0aGlzLnNuYXAuZ2V0SW1tZWRpYXRlQ2hpbGQodCkpOm5ldyBjaCh0aGlzLnNvdXJjZSxpdSh0aGlzLnBhdGgpLHRoaXMuc25hcCl9LGNoKTtmdW5jdGlvbiBjaCh0LGUsbil7dGhpcy5zb3VyY2U9dCx0aGlzLnBhdGg9ZSx0aGlzLnNuYXA9bix0aGlzLnR5cGU9JGMuT1ZFUldSSVRFfXZhciBoaD0obGgucHJvdG90eXBlLm9wZXJhdGlvbkZvckNoaWxkPWZ1bmN0aW9uKHQpe2lmKGN1KHRoaXMucGF0aCkpe3ZhciBlPXRoaXMuY2hpbGRyZW4uc3VidHJlZShuZXcgWmEodCkpO3JldHVybiBlLmlzRW1wdHkoKT9udWxsOmUudmFsdWU/bmV3IHVoKHRoaXMuc291cmNlLGV1KCksZS52YWx1ZSk6bmV3IGxoKHRoaXMuc291cmNlLGV1KCksZSl9cmV0dXJuIHNvKG51KHRoaXMucGF0aCk9PT10LCJDYW4ndCBnZXQgYSBtZXJnZSBmb3IgYSBjaGlsZCBub3Qgb24gdGhlIHBhdGggb2YgdGhlIG9wZXJhdGlvbiIpLG5ldyBsaCh0aGlzLnNvdXJjZSxpdSh0aGlzLnBhdGgpLHRoaXMuY2hpbGRyZW4pfSxsaC5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4iT3BlcmF0aW9uKCIrdGhpcy5wYXRoKyI6ICIrdGhpcy5zb3VyY2UudG9TdHJpbmcoKSsiIG1lcmdlOiAiK3RoaXMuY2hpbGRyZW4udG9TdHJpbmcoKSsiKSJ9LGxoKTtmdW5jdGlvbiBsaCh0LGUsbil7dGhpcy5zb3VyY2U9dCx0aGlzLnBhdGg9ZSx0aGlzLmNoaWxkcmVuPW4sdGhpcy50eXBlPSRjLk1FUkdFfXZhciBmaD0ocGgucHJvdG90eXBlLmlzRnVsbHlJbml0aWFsaXplZD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmZ1bGx5SW5pdGlhbGl6ZWRffSxwaC5wcm90b3R5cGUuaXNGaWx0ZXJlZD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmZpbHRlcmVkX30scGgucHJvdG90eXBlLmlzQ29tcGxldGVGb3JQYXRoPWZ1bmN0aW9uKHQpe2lmKGN1KHQpKXJldHVybiB0aGlzLmlzRnVsbHlJbml0aWFsaXplZCgpJiYhdGhpcy5maWx0ZXJlZF87dD1udSh0KTtyZXR1cm4gdGhpcy5pc0NvbXBsZXRlRm9yQ2hpbGQodCl9LHBoLnByb3RvdHlwZS5pc0NvbXBsZXRlRm9yQ2hpbGQ9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuaXNGdWxseUluaXRpYWxpemVkKCkmJiF0aGlzLmZpbHRlcmVkX3x8dGhpcy5ub2RlXy5oYXNDaGlsZCh0KX0scGgucHJvdG90eXBlLmdldE5vZGU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5ub2RlX30scGgpO2Z1bmN0aW9uIHBoKHQsZSxuKXt0aGlzLm5vZGVfPXQsdGhpcy5mdWxseUluaXRpYWxpemVkXz1lLHRoaXMuZmlsdGVyZWRfPW59dmFyIGRoLHZoPWZ1bmN0aW9uKHQpe3RoaXMucXVlcnlfPXQsdGhpcy5pbmRleF89dGhpcy5xdWVyeV8uZ2V0UXVlcnlQYXJhbXMoKS5nZXRJbmRleCgpfTtmdW5jdGlvbiBnaChuLHQsZSxyKXt2YXIgaT1bXSxvPVtdO3JldHVybiB0LmZvckVhY2goZnVuY3Rpb24odCl7dmFyIGU7ImNoaWxkX2NoYW5nZWQiPT09dC50eXBlJiZuLmluZGV4Xy5pbmRleGVkVmFsdWVDaGFuZ2VkKHQub2xkU25hcCx0LnNuYXBzaG90Tm9kZSkmJm8ucHVzaCgoZT10LmNoaWxkTmFtZSx7dHlwZToiY2hpbGRfbW92ZWQiLHNuYXBzaG90Tm9kZTp0LnNuYXBzaG90Tm9kZSxjaGlsZE5hbWU6ZX0pKX0pLHloKG4saSwiY2hpbGRfcmVtb3ZlZCIsdCxyLGUpLHloKG4saSwiY2hpbGRfYWRkZWQiLHQscixlKSx5aChuLGksImNoaWxkX21vdmVkIixvLHIsZSkseWgobixpLCJjaGlsZF9jaGFuZ2VkIix0LHIsZSkseWgobixpLCJ2YWx1ZSIsdCxyLGUpLGl9ZnVuY3Rpb24geWgobyxzLGUsdCxhLHUpe3Q9dC5maWx0ZXIoZnVuY3Rpb24odCl7cmV0dXJuIHQudHlwZT09PWV9KTt0LnNvcnQoZnVuY3Rpb24odCxlKXtyZXR1cm4gZnVuY3Rpb24odCxlLG4pe2lmKG51bGw9PWUuY2hpbGROYW1lfHxudWxsPT1uLmNoaWxkTmFtZSl0aHJvdyBhbygiU2hvdWxkIG9ubHkgY29tcGFyZSBjaGlsZF8gZXZlbnRzLiIpO2U9bmV3IFN1KGUuY2hpbGROYW1lLGUuc25hcHNob3ROb2RlKSxuPW5ldyBTdShuLmNoaWxkTmFtZSxuLnNuYXBzaG90Tm9kZSk7cmV0dXJuIHQuaW5kZXhfLmNvbXBhcmUoZSxuKX0obyx0LGUpfSksdC5mb3JFYWNoKGZ1bmN0aW9uKGUpe3ZhciB0LG4scixpPSh0PW8scj11LCJ2YWx1ZSI9PT0obj1lKS50eXBlfHwiY2hpbGRfcmVtb3ZlZCI9PT1uLnR5cGV8fChuLnByZXZOYW1lPXIuZ2V0UHJlZGVjZXNzb3JDaGlsZE5hbWUobi5jaGlsZE5hbWUsbi5zbmFwc2hvdE5vZGUsdC5pbmRleF8pKSxuKTthLmZvckVhY2goZnVuY3Rpb24odCl7dC5yZXNwb25kc1RvKGUudHlwZSkmJnMucHVzaCh0LmNyZWF0ZUV2ZW50KGksby5xdWVyeV8pKX0pfSl9ZnVuY3Rpb24gbWgodCxlKXtyZXR1cm57ZXZlbnRDYWNoZTp0LHNlcnZlckNhY2hlOmV9fWZ1bmN0aW9uIGJoKHQsZSxuLHIpe3JldHVybiBtaChuZXcgZmgoZSxuLHIpLHQuc2VydmVyQ2FjaGUpfWZ1bmN0aW9uIHdoKHQsZSxuLHIpe3JldHVybiBtaCh0LmV2ZW50Q2FjaGUsbmV3IGZoKGUsbixyKSl9ZnVuY3Rpb24gX2godCl7cmV0dXJuIHQuZXZlbnRDYWNoZS5pc0Z1bGx5SW5pdGlhbGl6ZWQoKT90LmV2ZW50Q2FjaGUuZ2V0Tm9kZSgpOm51bGx9ZnVuY3Rpb24gSWgodCl7cmV0dXJuIHQuc2VydmVyQ2FjaGUuaXNGdWxseUluaXRpYWxpemVkKCk/dC5zZXJ2ZXJDYWNoZS5nZXROb2RlKCk6bnVsbH12YXIgVGg9KEVoLmZyb21PYmplY3Q9ZnVuY3Rpb24odCl7dmFyIG49bmV3IEVoKG51bGwpO3JldHVybiBpYSh0LGZ1bmN0aW9uKHQsZSl7bj1uLnNldChuZXcgWmEodCksZSl9KSxufSxFaC5wcm90b3R5cGUuaXNFbXB0eT1mdW5jdGlvbigpe3JldHVybiBudWxsPT09dGhpcy52YWx1ZSYmdGhpcy5jaGlsZHJlbi5pc0VtcHR5KCl9LEVoLnByb3RvdHlwZS5maW5kUm9vdE1vc3RNYXRjaGluZ1BhdGhBbmRWYWx1ZT1mdW5jdGlvbih0LGUpe2lmKG51bGwhPXRoaXMudmFsdWUmJmUodGhpcy52YWx1ZSkpcmV0dXJue3BhdGg6ZXUoKSx2YWx1ZTp0aGlzLnZhbHVlfTtpZihjdSh0KSlyZXR1cm4gbnVsbDt2YXIgbj1udSh0KSxyPXRoaXMuY2hpbGRyZW4uZ2V0KG4pO2lmKG51bGw9PT1yKXJldHVybiBudWxsO2U9ci5maW5kUm9vdE1vc3RNYXRjaGluZ1BhdGhBbmRWYWx1ZShpdSh0KSxlKTtyZXR1cm4gbnVsbD09ZT9udWxsOntwYXRoOnV1KG5ldyBaYShuKSxlLnBhdGgpLHZhbHVlOmUudmFsdWV9fSxFaC5wcm90b3R5cGUuZmluZFJvb3RNb3N0VmFsdWVBbmRQYXRoPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmZpbmRSb290TW9zdE1hdGNoaW5nUGF0aEFuZFZhbHVlKHQsZnVuY3Rpb24oKXtyZXR1cm4hMH0pfSxFaC5wcm90b3R5cGUuc3VidHJlZT1mdW5jdGlvbih0KXtpZihjdSh0KSlyZXR1cm4gdGhpczt2YXIgZT1udSh0KSxlPXRoaXMuY2hpbGRyZW4uZ2V0KGUpO3JldHVybiBudWxsIT09ZT9lLnN1YnRyZWUoaXUodCkpOm5ldyBFaChudWxsKX0sRWgucHJvdG90eXBlLnNldD1mdW5jdGlvbih0LGUpe2lmKGN1KHQpKXJldHVybiBuZXcgRWgoZSx0aGlzLmNoaWxkcmVuKTt2YXIgbj1udSh0KSxlPSh0aGlzLmNoaWxkcmVuLmdldChuKXx8bmV3IEVoKG51bGwpKS5zZXQoaXUodCksZSksZT10aGlzLmNoaWxkcmVuLmluc2VydChuLGUpO3JldHVybiBuZXcgRWgodGhpcy52YWx1ZSxlKX0sRWgucHJvdG90eXBlLnJlbW92ZT1mdW5jdGlvbih0KXtpZihjdSh0KSlyZXR1cm4gdGhpcy5jaGlsZHJlbi5pc0VtcHR5KCk/bmV3IEVoKG51bGwpOm5ldyBFaChudWxsLHRoaXMuY2hpbGRyZW4pO3ZhciBlPW51KHQpLG49dGhpcy5jaGlsZHJlbi5nZXQoZSk7aWYobil7bj1uLnJlbW92ZShpdSh0KSksdD12b2lkIDAsdD1uLmlzRW1wdHkoKT90aGlzLmNoaWxkcmVuLnJlbW92ZShlKTp0aGlzLmNoaWxkcmVuLmluc2VydChlLG4pO3JldHVybiBudWxsPT09dGhpcy52YWx1ZSYmdC5pc0VtcHR5KCk/bmV3IEVoKG51bGwpOm5ldyBFaCh0aGlzLnZhbHVlLHQpfXJldHVybiB0aGlzfSxFaC5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKHQpe2lmKGN1KHQpKXJldHVybiB0aGlzLnZhbHVlO3ZhciBlPW51KHQpLGU9dGhpcy5jaGlsZHJlbi5nZXQoZSk7cmV0dXJuIGU/ZS5nZXQoaXUodCkpOm51bGx9LEVoLnByb3RvdHlwZS5zZXRUcmVlPWZ1bmN0aW9uKHQsZSl7aWYoY3UodCkpcmV0dXJuIGU7dmFyIG49bnUodCksdD0odGhpcy5jaGlsZHJlbi5nZXQobil8fG5ldyBFaChudWxsKSkuc2V0VHJlZShpdSh0KSxlKSxlPXZvaWQgMCxlPXQuaXNFbXB0eSgpP3RoaXMuY2hpbGRyZW4ucmVtb3ZlKG4pOnRoaXMuY2hpbGRyZW4uaW5zZXJ0KG4sdCk7cmV0dXJuIG5ldyBFaCh0aGlzLnZhbHVlLGUpfSxFaC5wcm90b3R5cGUuZm9sZD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5mb2xkXyhldSgpLHQpfSxFaC5wcm90b3R5cGUuZm9sZF89ZnVuY3Rpb24obixyKXt2YXIgaT17fTtyZXR1cm4gdGhpcy5jaGlsZHJlbi5pbm9yZGVyVHJhdmVyc2FsKGZ1bmN0aW9uKHQsZSl7aVt0XT1lLmZvbGRfKHV1KG4sdCkscil9KSxyKG4sdGhpcy52YWx1ZSxpKX0sRWgucHJvdG90eXBlLmZpbmRPblBhdGg9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5maW5kT25QYXRoXyh0LGV1KCksZSl9LEVoLnByb3RvdHlwZS5maW5kT25QYXRoXz1mdW5jdGlvbih0LGUsbil7dmFyIHI9ISF0aGlzLnZhbHVlJiZuKGUsdGhpcy52YWx1ZSk7aWYocilyZXR1cm4gcjtpZihjdSh0KSlyZXR1cm4gbnVsbDt2YXIgaT1udSh0KSxyPXRoaXMuY2hpbGRyZW4uZ2V0KGkpO3JldHVybiByP3IuZmluZE9uUGF0aF8oaXUodCksdXUoZSxpKSxuKTpudWxsfSxFaC5wcm90b3R5cGUuZm9yZWFjaE9uUGF0aD1mdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLmZvcmVhY2hPblBhdGhfKHQsZXUoKSxlKX0sRWgucHJvdG90eXBlLmZvcmVhY2hPblBhdGhfPWZ1bmN0aW9uKHQsZSxuKXtpZihjdSh0KSlyZXR1cm4gdGhpczt0aGlzLnZhbHVlJiZuKGUsdGhpcy52YWx1ZSk7dmFyIHI9bnUodCksaT10aGlzLmNoaWxkcmVuLmdldChyKTtyZXR1cm4gaT9pLmZvcmVhY2hPblBhdGhfKGl1KHQpLHV1KGUsciksbik6bmV3IEVoKG51bGwpfSxFaC5wcm90b3R5cGUuZm9yZWFjaD1mdW5jdGlvbih0KXt0aGlzLmZvcmVhY2hfKGV1KCksdCl9LEVoLnByb3RvdHlwZS5mb3JlYWNoXz1mdW5jdGlvbihuLHIpe3RoaXMuY2hpbGRyZW4uaW5vcmRlclRyYXZlcnNhbChmdW5jdGlvbih0LGUpe2UuZm9yZWFjaF8odXUobix0KSxyKX0pLHRoaXMudmFsdWUmJnIobix0aGlzLnZhbHVlKX0sRWgucHJvdG90eXBlLmZvcmVhY2hDaGlsZD1mdW5jdGlvbihuKXt0aGlzLmNoaWxkcmVuLmlub3JkZXJUcmF2ZXJzYWwoZnVuY3Rpb24odCxlKXtlLnZhbHVlJiZuKHQsZS52YWx1ZSl9KX0sRWgpO2Z1bmN0aW9uIEVoKHQsZSl7dm9pZCAwPT09ZSYmKGU9ZGg9ZGh8fG5ldyBVdShqcykpLHRoaXMudmFsdWU9dCx0aGlzLmNoaWxkcmVuPWV9dmFyIFNoPShDaC5lbXB0eT1mdW5jdGlvbigpe3JldHVybiBuZXcgQ2gobmV3IFRoKG51bGwpKX0sQ2gpO2Z1bmN0aW9uIENoKHQpe3RoaXMud3JpdGVUcmVlXz10fWZ1bmN0aW9uIE5oKHQsZSxuKXtpZihjdShlKSlyZXR1cm4gbmV3IFNoKG5ldyBUaChuKSk7dmFyIHI9dC53cml0ZVRyZWVfLmZpbmRSb290TW9zdFZhbHVlQW5kUGF0aChlKTtpZihudWxsIT1yKXt2YXIgaT1yLnBhdGgsbz1yLnZhbHVlLHI9aHUoaSxlKSxvPW8udXBkYXRlQ2hpbGQocixuKTtyZXR1cm4gbmV3IFNoKHQud3JpdGVUcmVlXy5zZXQoaSxvKSl9bj1uZXcgVGgobiksbj10LndyaXRlVHJlZV8uc2V0VHJlZShlLG4pO3JldHVybiBuZXcgU2gobil9ZnVuY3Rpb24gQWgodCxuLGUpe3ZhciByPXQ7cmV0dXJuIGlhKGUsZnVuY3Rpb24odCxlKXtyPU5oKHIsdXUobix0KSxlKX0pLHJ9ZnVuY3Rpb24ga2godCxlKXtpZihjdShlKSlyZXR1cm4gU2guZW1wdHkoKTtlPXQud3JpdGVUcmVlXy5zZXRUcmVlKGUsbmV3IFRoKG51bGwpKTtyZXR1cm4gbmV3IFNoKGUpfWZ1bmN0aW9uIFJoKHQsZSl7cmV0dXJuIG51bGwhPVBoKHQsZSl9ZnVuY3Rpb24gUGgodCxlKXt2YXIgbj10LndyaXRlVHJlZV8uZmluZFJvb3RNb3N0VmFsdWVBbmRQYXRoKGUpO3JldHVybiBudWxsIT1uP3Qud3JpdGVUcmVlXy5nZXQobi5wYXRoKS5nZXRDaGlsZChodShuLnBhdGgsZSkpOm51bGx9ZnVuY3Rpb24gT2godCl7dmFyIG49W10sZT10LndyaXRlVHJlZV8udmFsdWU7cmV0dXJuIG51bGwhPWU/ZS5pc0xlYWZOb2RlKCl8fGUuZm9yRWFjaENoaWxkKEp1LGZ1bmN0aW9uKHQsZSl7bi5wdXNoKG5ldyBTdSh0LGUpKX0pOnQud3JpdGVUcmVlXy5jaGlsZHJlbi5pbm9yZGVyVHJhdmVyc2FsKGZ1bmN0aW9uKHQsZSl7bnVsbCE9ZS52YWx1ZSYmbi5wdXNoKG5ldyBTdSh0LGUudmFsdWUpKX0pLG59ZnVuY3Rpb24gRGgodCxlKXtpZihjdShlKSlyZXR1cm4gdDt2YXIgbj1QaCh0LGUpO3JldHVybiBuZXcgU2gobnVsbCE9bj9uZXcgVGgobik6dC53cml0ZVRyZWVfLnN1YnRyZWUoZSkpfWZ1bmN0aW9uIHhoKHQpe3JldHVybiB0LndyaXRlVHJlZV8uaXNFbXB0eSgpfWZ1bmN0aW9uIExoKHQsZSl7cmV0dXJuIGZ1bmN0aW9uIG4ocix0LGkpe3tpZihudWxsIT10LnZhbHVlKXJldHVybiBpLnVwZGF0ZUNoaWxkKHIsdC52YWx1ZSk7dmFyIG89bnVsbDtyZXR1cm4gdC5jaGlsZHJlbi5pbm9yZGVyVHJhdmVyc2FsKGZ1bmN0aW9uKHQsZSl7Ii5wcmlvcml0eSI9PT10PyhzbyhudWxsIT09ZS52YWx1ZSwiUHJpb3JpdHkgd3JpdGVzIG11c3QgYWx3YXlzIGJlIGxlYWYgbm9kZXMiKSxvPWUudmFsdWUpOmk9bih1dShyLHQpLGUsaSl9KSxpPSFpLmdldENoaWxkKHIpLmlzRW1wdHkoKSYmbnVsbCE9PW8/aS51cGRhdGVDaGlsZCh1dShyLCIucHJpb3JpdHkiKSxvKTppfX0oZXUoKSx0LndyaXRlVHJlZV8sZSl9ZnVuY3Rpb24gTWgodCxlKXtyZXR1cm4gUWgoZSx0KX1mdW5jdGlvbiBGaChlLG4pe3ZhciB0PWUuYWxsV3JpdGVzLmZpbmRJbmRleChmdW5jdGlvbih0KXtyZXR1cm4gdC53cml0ZUlkPT09bn0pO3NvKDA8PXQsInJlbW92ZVdyaXRlIGNhbGxlZCB3aXRoIG5vbmV4aXN0ZW50IHdyaXRlSWQuIik7dmFyIHI9ZS5hbGxXcml0ZXNbdF07ZS5hbGxXcml0ZXMuc3BsaWNlKHQsMSk7Zm9yKHZhciBpLG89ci52aXNpYmxlLHM9ITEsYT1lLmFsbFdyaXRlcy5sZW5ndGgtMTtvJiYwPD1hOyl7dmFyIHU9ZS5hbGxXcml0ZXNbYV07dS52aXNpYmxlJiYodDw9YSYmZnVuY3Rpb24odCxlKXt7aWYodC5zbmFwKXJldHVybiBwdSh0LnBhdGgsZSk7Zm9yKHZhciBuIGluIHQuY2hpbGRyZW4paWYodC5jaGlsZHJlbi5oYXNPd25Qcm9wZXJ0eShuKSYmcHUodXUodC5wYXRoLG4pLGUpKXJldHVybiEwO3JldHVybiExfX0odSxyLnBhdGgpP289ITE6cHUoci5wYXRoLHUucGF0aCkmJihzPSEwKSksYS0tfXJldHVybiEhbyYmKHM/KChpPWUpLnZpc2libGVXcml0ZXM9amgoaS5hbGxXcml0ZXMsVWgsZXUoKSksMDxpLmFsbFdyaXRlcy5sZW5ndGg/aS5sYXN0V3JpdGVJZD1pLmFsbFdyaXRlc1tpLmFsbFdyaXRlcy5sZW5ndGgtMV0ud3JpdGVJZDppLmxhc3RXcml0ZUlkPS0xKTpyLnNuYXA/ZS52aXNpYmxlV3JpdGVzPWtoKGUudmlzaWJsZVdyaXRlcyxyLnBhdGgpOmlhKHIuY2hpbGRyZW4sZnVuY3Rpb24odCl7ZS52aXNpYmxlV3JpdGVzPWtoKGUudmlzaWJsZVdyaXRlcyx1dShyLnBhdGgsdCkpfSksITApfWZ1bmN0aW9uIFVoKHQpe3JldHVybiB0LnZpc2libGV9ZnVuY3Rpb24gamgodCxlLG4pe2Zvcih2YXIgcj1TaC5lbXB0eSgpLGk9MDtpPHQubGVuZ3RoOysraSl7dmFyIG89dFtpXTtpZihlKG8pKXt2YXIgcz1vLnBhdGgsYT12b2lkIDA7aWYoby5zbmFwKXB1KG4scyk/cj1OaChyLGE9aHUobixzKSxvLnNuYXApOnB1KHMsbikmJihhPWh1KHMsbikscj1OaChyLGV1KCksby5zbmFwLmdldENoaWxkKGEpKSk7ZWxzZXtpZighby5jaGlsZHJlbil0aHJvdyBhbygiV3JpdGVSZWNvcmQgc2hvdWxkIGhhdmUgLnNuYXAgb3IgLmNoaWxkcmVuIik7cHUobixzKT9yPUFoKHIsYT1odShuLHMpLG8uY2hpbGRyZW4pOnB1KHMsbikmJihjdShhPWh1KHMsbikpP3I9QWgocixldSgpLG8uY2hpbGRyZW4pOihvPURvKG8uY2hpbGRyZW4sbnUoYSkpKSYmKGE9by5nZXRDaGlsZChpdShhKSkscj1OaChyLGV1KCksYSkpKX19fXJldHVybiByfWZ1bmN0aW9uIHFoKHQsZSxuLHIsaSl7aWYocnx8aSl7dmFyIG89RGgodC52aXNpYmxlV3JpdGVzLGUpO2lmKCFpJiZ4aChvKSlyZXR1cm4gbjtpZihpfHxudWxsIT1ufHxSaChvLGV1KCkpKXJldHVybiBMaChqaCh0LmFsbFdyaXRlcyxmdW5jdGlvbih0KXtyZXR1cm4odC52aXNpYmxlfHxpKSYmKCFyfHwhfnIuaW5kZXhPZih0LndyaXRlSWQpKSYmKHB1KHQucGF0aCxlKXx8cHUoZSx0LnBhdGgpKX0sZSksbnx8dWMuRU1QVFlfTk9ERSk7cmV0dXJuIG51bGx9bz1QaCh0LnZpc2libGVXcml0ZXMsZSk7aWYobnVsbCE9bylyZXR1cm4gbzt0PURoKHQudmlzaWJsZVdyaXRlcyxlKTtyZXR1cm4geGgodCk/bjpudWxsIT1ufHxSaCh0LGV1KCkpP0xoKHQsbnx8dWMuRU1QVFlfTk9ERSk6bnVsbH1mdW5jdGlvbiBWaCh0LGUsbixyKXtyZXR1cm4gcWgodC53cml0ZVRyZWUsdC50cmVlUGF0aCxlLG4scil9ZnVuY3Rpb24gQmgodCxlKXtyZXR1cm4gZnVuY3Rpb24odCxlLG4pe3ZhciByPXVjLkVNUFRZX05PREUsaT1QaCh0LnZpc2libGVXcml0ZXMsZSk7aWYoaSlyZXR1cm4gaS5pc0xlYWZOb2RlKCl8fGkuZm9yRWFjaENoaWxkKEp1LGZ1bmN0aW9uKHQsZSl7cj1yLnVwZGF0ZUltbWVkaWF0ZUNoaWxkKHQsZSl9KSxyO2lmKG4pe3ZhciBvPURoKHQudmlzaWJsZVdyaXRlcyxlKTtyZXR1cm4gbi5mb3JFYWNoQ2hpbGQoSnUsZnVuY3Rpb24odCxlKXtlPUxoKERoKG8sbmV3IFphKHQpKSxlKTtyPXIudXBkYXRlSW1tZWRpYXRlQ2hpbGQodCxlKX0pLE9oKG8pLmZvckVhY2goZnVuY3Rpb24odCl7cj1yLnVwZGF0ZUltbWVkaWF0ZUNoaWxkKHQubmFtZSx0Lm5vZGUpfSkscn1yZXR1cm4gT2goRGgodC52aXNpYmxlV3JpdGVzLGUpKS5mb3JFYWNoKGZ1bmN0aW9uKHQpe3I9ci51cGRhdGVJbW1lZGlhdGVDaGlsZCh0Lm5hbWUsdC5ub2RlKX0pLHJ9KHQud3JpdGVUcmVlLHQudHJlZVBhdGgsZSl9ZnVuY3Rpb24gS2godCxlLG4scil7cmV0dXJuIGk9dC53cml0ZVRyZWUsdD10LnRyZWVQYXRoLGU9ZSxyPXIsc28obnx8ciwiRWl0aGVyIGV4aXN0aW5nRXZlbnRTbmFwIG9yIGV4aXN0aW5nU2VydmVyU25hcCBtdXN0IGV4aXN0IiksdD11dSh0LGUpLFJoKGkudmlzaWJsZVdyaXRlcyx0KT9udWxsOnhoKHQ9RGgoaS52aXNpYmxlV3JpdGVzLHQpKT9yLmdldENoaWxkKGUpOkxoKHQsci5nZXRDaGlsZChlKSk7dmFyIGl9ZnVuY3Rpb24gV2godCxlKXtyZXR1cm4gbj10LndyaXRlVHJlZSxlPXV1KHQudHJlZVBhdGgsZSksUGgobi52aXNpYmxlV3JpdGVzLGUpO3ZhciBufWZ1bmN0aW9uIEhoKHQsZSxuLHIsaSxvKXtyZXR1cm4gZnVuY3Rpb24odCxlLG4scixpLG8scyl7dmFyIGEsdD1EaCh0LnZpc2libGVXcml0ZXMsZSk7aWYobnVsbCE9KGU9UGgodCxldSgpKSkpYT1lO2Vsc2V7aWYobnVsbD09bilyZXR1cm5bXTthPUxoKHQsbil9aWYoKGE9YS53aXRoSW5kZXgocykpLmlzRW1wdHkoKXx8YS5pc0xlYWZOb2RlKCkpcmV0dXJuW107Zm9yKHZhciB1PVtdLGM9cy5nZXRDb21wYXJlKCksaD1vP2EuZ2V0UmV2ZXJzZUl0ZXJhdG9yRnJvbShyLHMpOmEuZ2V0SXRlcmF0b3JGcm9tKHIscyksbD1oLmdldE5leHQoKTtsJiZ1Lmxlbmd0aDxpOykwIT09YyhsLHIpJiZ1LnB1c2gobCksbD1oLmdldE5leHQoKTtyZXR1cm4gdX0odC53cml0ZVRyZWUsdC50cmVlUGF0aCxlLG4scixpLG8pfWZ1bmN0aW9uIEdoKHQsZSxuKXtyZXR1cm4gcj10LndyaXRlVHJlZSxpPXQudHJlZVBhdGgsdD1uLGU9dXUoaSxuPWUpLG51bGwhPShpPVBoKHIudmlzaWJsZVdyaXRlcyxlKSk/aTp0LmlzQ29tcGxldGVGb3JDaGlsZChuKT9MaChEaChyLnZpc2libGVXcml0ZXMsZSksdC5nZXROb2RlKCkuZ2V0SW1tZWRpYXRlQ2hpbGQobikpOm51bGw7dmFyIHIsaX1mdW5jdGlvbiB6aCh0LGUpe3JldHVybiBRaCh1dSh0LnRyZWVQYXRoLGUpLHQud3JpdGVUcmVlKX1mdW5jdGlvbiBRaCh0LGUpe3JldHVybnt0cmVlUGF0aDp0LHdyaXRlVHJlZTplfX12YXIgWWg9KFhoLnByb3RvdHlwZS50cmFja0NoaWxkQ2hhbmdlPWZ1bmN0aW9uKHQpe3ZhciBlPXQudHlwZSxuPXQuY2hpbGROYW1lO3NvKCJjaGlsZF9hZGRlZCI9PT1lfHwiY2hpbGRfY2hhbmdlZCI9PT1lfHwiY2hpbGRfcmVtb3ZlZCI9PT1lLCJPbmx5IGNoaWxkIGNoYW5nZXMgc3VwcG9ydGVkIGZvciB0cmFja2luZyIpLHNvKCIucHJpb3JpdHkiIT09biwiT25seSBub24tcHJpb3JpdHkgY2hpbGQgY2hhbmdlcyBjYW4gYmUgdHJhY2tlZC4iKTt2YXIgcj10aGlzLmNoYW5nZU1hcC5nZXQobik7aWYocil7dmFyIGk9ci50eXBlO2lmKCJjaGlsZF9hZGRlZCI9PT1lJiYiY2hpbGRfcmVtb3ZlZCI9PT1pKXRoaXMuY2hhbmdlTWFwLnNldChuLGtjKG4sdC5zbmFwc2hvdE5vZGUsci5zbmFwc2hvdE5vZGUpKTtlbHNlIGlmKCJjaGlsZF9yZW1vdmVkIj09PWUmJiJjaGlsZF9hZGRlZCI9PT1pKXRoaXMuY2hhbmdlTWFwLmRlbGV0ZShuKTtlbHNlIGlmKCJjaGlsZF9yZW1vdmVkIj09PWUmJiJjaGlsZF9jaGFuZ2VkIj09PWkpdGhpcy5jaGFuZ2VNYXAuc2V0KG4sQWMobixyLm9sZFNuYXApKTtlbHNlIGlmKCJjaGlsZF9jaGFuZ2VkIj09PWUmJiJjaGlsZF9hZGRlZCI9PT1pKXRoaXMuY2hhbmdlTWFwLnNldChuLE5jKG4sdC5zbmFwc2hvdE5vZGUpKTtlbHNle2lmKCJjaGlsZF9jaGFuZ2VkIiE9PWV8fCJjaGlsZF9jaGFuZ2VkIiE9PWkpdGhyb3cgYW8oIklsbGVnYWwgY29tYmluYXRpb24gb2YgY2hhbmdlczogIit0KyIgb2NjdXJyZWQgYWZ0ZXIgIityKTt0aGlzLmNoYW5nZU1hcC5zZXQobixrYyhuLHQuc25hcHNob3ROb2RlLHIub2xkU25hcCkpfX1lbHNlIHRoaXMuY2hhbmdlTWFwLnNldChuLHQpfSxYaC5wcm90b3R5cGUuZ2V0Q2hhbmdlcz1mdW5jdGlvbigpe3JldHVybiBBcnJheS5mcm9tKHRoaXMuY2hhbmdlTWFwLnZhbHVlcygpKX0sWGgpO2Z1bmN0aW9uIFhoKCl7dGhpcy5jaGFuZ2VNYXA9bmV3IE1hcH1mdW5jdGlvbiBKaCgpe312YXIgJGg9bmV3KEpoLnByb3RvdHlwZS5nZXRDb21wbGV0ZUNoaWxkPWZ1bmN0aW9uKHQpe3JldHVybiBudWxsfSxKaC5wcm90b3R5cGUuZ2V0Q2hpbGRBZnRlckNoaWxkPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gbnVsbH0sSmgpLFpoPSh0bC5wcm90b3R5cGUuZ2V0Q29tcGxldGVDaGlsZD1mdW5jdGlvbih0KXt2YXIgZT10aGlzLnZpZXdDYWNoZV8uZXZlbnRDYWNoZTtpZihlLmlzQ29tcGxldGVGb3JDaGlsZCh0KSlyZXR1cm4gZS5nZXROb2RlKCkuZ2V0SW1tZWRpYXRlQ2hpbGQodCk7ZT1udWxsIT10aGlzLm9wdENvbXBsZXRlU2VydmVyQ2FjaGVfP25ldyBmaCh0aGlzLm9wdENvbXBsZXRlU2VydmVyQ2FjaGVfLCEwLCExKTp0aGlzLnZpZXdDYWNoZV8uc2VydmVyQ2FjaGU7cmV0dXJuIEdoKHRoaXMud3JpdGVzXyx0LGUpfSx0bC5wcm90b3R5cGUuZ2V0Q2hpbGRBZnRlckNoaWxkPWZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1udWxsIT10aGlzLm9wdENvbXBsZXRlU2VydmVyQ2FjaGVfP3RoaXMub3B0Q29tcGxldGVTZXJ2ZXJDYWNoZV86SWgodGhpcy52aWV3Q2FjaGVfKSx0PUhoKHRoaXMud3JpdGVzXyxyLGUsMSxuLHQpO3JldHVybiAwPT09dC5sZW5ndGg/bnVsbDp0WzBdfSx0bCk7ZnVuY3Rpb24gdGwodCxlLG4pe3ZvaWQgMD09PW4mJihuPW51bGwpLHRoaXMud3JpdGVzXz10LHRoaXMudmlld0NhY2hlXz1lLHRoaXMub3B0Q29tcGxldGVTZXJ2ZXJDYWNoZV89bn1mdW5jdGlvbiBlbCh0LGUsbixyLGkpe3ZhciBvLHMsYSx1LGMsaCxsLGYscD1uZXcgWWg7aWYobi50eXBlPT09JGMuT1ZFUldSSVRFKXZhciBkPW4sdj1kLnNvdXJjZS5mcm9tVXNlcj9pbCh0LGUsZC5wYXRoLGQuc25hcCxyLGkscCk6KHNvKGQuc291cmNlLmZyb21TZXJ2ZXIsIlVua25vd24gc291cmNlLiIpLG89ZC5zb3VyY2UudGFnZ2VkfHxlLnNlcnZlckNhY2hlLmlzRmlsdGVyZWQoKSYmIWN1KGQucGF0aCkscmwodCxlLGQucGF0aCxkLnNuYXAscixpLG8scCkpO2Vsc2UgaWYobi50eXBlPT09JGMuTUVSR0Upe3ZhciBnPW47dj1nLnNvdXJjZS5mcm9tVXNlcj8ocz10LGE9ZSx1PWcucGF0aCxkPWcuY2hpbGRyZW4sYz1yLGg9aSxsPXAsZj1hLGQuZm9yZWFjaChmdW5jdGlvbih0LGUpe3Q9dXUodSx0KTtvbChhLG51KHQpKSYmKGY9aWwocyxmLHQsZSxjLGgsbCkpfSksZC5mb3JlYWNoKGZ1bmN0aW9uKHQsZSl7dD11dSh1LHQpO29sKGEsbnUodCkpfHwoZj1pbChzLGYsdCxlLGMsaCxsKSl9KSxmKTooc28oZy5zb3VyY2UuZnJvbVNlcnZlciwiVW5rbm93biBzb3VyY2UuIiksbz1nLnNvdXJjZS50YWdnZWR8fGUuc2VydmVyQ2FjaGUuaXNGaWx0ZXJlZCgpLGFsKHQsZSxnLnBhdGgsZy5jaGlsZHJlbixyLGksbyxwKSl9ZWxzZSBpZihuLnR5cGU9PT0kYy5BQ0tfVVNFUl9XUklURSl7dmFyIHk9bjt2PXkucmV2ZXJ0P2Z1bmN0aW9uKHQsZSxuLHIsaSxvKXt2YXIgczt7aWYobnVsbCE9V2gocixuKSlyZXR1cm4gZTt2YXIgYSx1LGM9bmV3IFpoKHIsZSxpKSxoPWUuZXZlbnRDYWNoZS5nZXROb2RlKCksaT12b2lkIDA7cmV0dXJuIGN1KG4pfHwiLnByaW9yaXR5Ij09PW51KG4pPyh1PXZvaWQgMCx1PWUuc2VydmVyQ2FjaGUuaXNGdWxseUluaXRpYWxpemVkKCk/VmgocixJaChlKSk6KGE9ZS5zZXJ2ZXJDYWNoZS5nZXROb2RlKCksc28oYSBpbnN0YW5jZW9mIHVjLCJzZXJ2ZXJDaGlsZHJlbiB3b3VsZCBiZSBjb21wbGV0ZSBpZiBsZWFmIG5vZGUiKSxCaChyLGEpKSxpPXQuZmlsdGVyLnVwZGF0ZUZ1bGxOb2RlKGgsdSxvKSk6KGE9bnUobiksbnVsbD09KHU9R2gocixhLGUuc2VydmVyQ2FjaGUpKSYmZS5zZXJ2ZXJDYWNoZS5pc0NvbXBsZXRlRm9yQ2hpbGQoYSkmJih1PWguZ2V0SW1tZWRpYXRlQ2hpbGQoYSkpLChpPW51bGwhPXU/dC5maWx0ZXIudXBkYXRlQ2hpbGQoaCxhLHUsaXUobiksYyxvKTplLmV2ZW50Q2FjaGUuZ2V0Tm9kZSgpLmhhc0NoaWxkKGEpP3QuZmlsdGVyLnVwZGF0ZUNoaWxkKGgsYSx1Yy5FTVBUWV9OT0RFLGl1KG4pLGMsbyk6aCkuaXNFbXB0eSgpJiZlLnNlcnZlckNhY2hlLmlzRnVsbHlJbml0aWFsaXplZCgpJiYocz1WaChyLEloKGUpKSkuaXNMZWFmTm9kZSgpJiYoaT10LmZpbHRlci51cGRhdGVGdWxsTm9kZShpLHMsbykpKSxzPWUuc2VydmVyQ2FjaGUuaXNGdWxseUluaXRpYWxpemVkKCl8fG51bGwhPVdoKHIsZXUoKSksYmgoZSxpLHMsdC5maWx0ZXIuZmlsdGVyc05vZGVzKCkpfX0odCxlLHkucGF0aCxyLGkscCk6ZnVuY3Rpb24odCxlLHIsbixpLG8scyl7aWYobnVsbCE9V2goaSxyKSlyZXR1cm4gZTt2YXIgYT1lLnNlcnZlckNhY2hlLmlzRmlsdGVyZWQoKSx1PWUuc2VydmVyQ2FjaGU7e2lmKG51bGwhPW4udmFsdWUpe2lmKGN1KHIpJiZ1LmlzRnVsbHlJbml0aWFsaXplZCgpfHx1LmlzQ29tcGxldGVGb3JQYXRoKHIpKXJldHVybiBybCh0LGUscix1LmdldE5vZGUoKS5nZXRDaGlsZChyKSxpLG8sYSxzKTtpZihjdShyKSl7dmFyIGM9bmV3IFRoKG51bGwpO3JldHVybiB1LmdldE5vZGUoKS5mb3JFYWNoQ2hpbGQoUHUsZnVuY3Rpb24odCxlKXtjPWMuc2V0KG5ldyBaYSh0KSxlKX0pLGFsKHQsZSxyLGMsaSxvLGEscyl9cmV0dXJuIGV9dmFyIGg9bmV3IFRoKG51bGwpO3JldHVybiBuLmZvcmVhY2goZnVuY3Rpb24odCxlKXt2YXIgbj11dShyLHQpO3UuaXNDb21wbGV0ZUZvclBhdGgobikmJihoPWguc2V0KHQsdS5nZXROb2RlKCkuZ2V0Q2hpbGQobikpKX0pLGFsKHQsZSxyLGgsaSxvLGEscyl9fSh0LGUseS5wYXRoLHkuYWZmZWN0ZWRUcmVlLHIsaSxwKX1lbHNle2lmKG4udHlwZSE9PSRjLkxJU1RFTl9DT01QTEVURSl0aHJvdyBhbygiVW5rbm93biBvcGVyYXRpb24gdHlwZTogIituLnR5cGUpO289dCx5PWUsaT1uLnBhdGgsdD1yLG49cCxyPXkuc2VydmVyQ2FjaGUscj13aCh5LHIuZ2V0Tm9kZSgpLHIuaXNGdWxseUluaXRpYWxpemVkKCl8fGN1KGkpLHIuaXNGaWx0ZXJlZCgpKSx2PW5sKG8scixpLHQsJGgsbil9cD1wLmdldENoYW5nZXMoKTtyZXR1cm4gZnVuY3Rpb24odCxlLG4pe3ZhciByPWUuZXZlbnRDYWNoZTt7dmFyIGksbztyLmlzRnVsbHlJbml0aWFsaXplZCgpJiYoaT1yLmdldE5vZGUoKS5pc0xlYWZOb2RlKCl8fHIuZ2V0Tm9kZSgpLmlzRW1wdHkoKSxvPV9oKHQpLCgwPG4ubGVuZ3RofHwhdC5ldmVudENhY2hlLmlzRnVsbHlJbml0aWFsaXplZCgpfHxpJiYhci5nZXROb2RlKCkuZXF1YWxzKG8pfHwhci5nZXROb2RlKCkuZ2V0UHJpb3JpdHkoKS5lcXVhbHMoby5nZXRQcmlvcml0eSgpKSkmJm4ucHVzaChDYyhfaChlKSkpKX19KGUsdixwKSx7dmlld0NhY2hlOnYsY2hhbmdlczpwfX1mdW5jdGlvbiBubCh0LGUsbixyLGksbyl7dmFyIHM9ZS5ldmVudENhY2hlO2lmKG51bGwhPVdoKHIsbikpcmV0dXJuIGU7dmFyIGEsdSxjLGgsbD12b2lkIDAsZj12b2lkIDA7cmV0dXJuIGw9Y3Uobik/KHNvKGUuc2VydmVyQ2FjaGUuaXNGdWxseUluaXRpYWxpemVkKCksIklmIGNoYW5nZSBwYXRoIGlzIGVtcHR5LCB3ZSBtdXN0IGhhdmUgY29tcGxldGUgc2VydmVyIGRhdGEiKSxlLnNlcnZlckNhY2hlLmlzRmlsdGVyZWQoKT8oYT1CaChyLChhPUloKGUpKWluc3RhbmNlb2YgdWM/YTp1Yy5FTVBUWV9OT0RFKSx0LmZpbHRlci51cGRhdGVGdWxsTm9kZShlLmV2ZW50Q2FjaGUuZ2V0Tm9kZSgpLGEsbykpOih1PVZoKHIsSWgoZSkpLHQuZmlsdGVyLnVwZGF0ZUZ1bGxOb2RlKGUuZXZlbnRDYWNoZS5nZXROb2RlKCksdSxvKSkpOiIucHJpb3JpdHkiPT09KHU9bnUobikpPyhzbygxPT09cnUobiksIkNhbid0IGhhdmUgYSBwcmlvcml0eSB3aXRoIGFkZGl0aW9uYWwgcGF0aCBjb21wb25lbnRzIiksbnVsbCE9KGg9S2gocixuLGM9cy5nZXROb2RlKCksZj1lLnNlcnZlckNhY2hlLmdldE5vZGUoKSkpP3QuZmlsdGVyLnVwZGF0ZVByaW9yaXR5KGMsaCk6cy5nZXROb2RlKCkpOihjPWl1KG4pLGg9dm9pZCAwLG51bGwhPShoPXMuaXNDb21wbGV0ZUZvckNoaWxkKHUpPyhmPWUuc2VydmVyQ2FjaGUuZ2V0Tm9kZSgpLG51bGwhPShmPUtoKHIsbixzLmdldE5vZGUoKSxmKSk/cy5nZXROb2RlKCkuZ2V0SW1tZWRpYXRlQ2hpbGQodSkudXBkYXRlQ2hpbGQoYyxmKTpzLmdldE5vZGUoKS5nZXRJbW1lZGlhdGVDaGlsZCh1KSk6R2gocix1LGUuc2VydmVyQ2FjaGUpKT90LmZpbHRlci51cGRhdGVDaGlsZChzLmdldE5vZGUoKSx1LGgsYyxpLG8pOnMuZ2V0Tm9kZSgpKSxiaChlLGwscy5pc0Z1bGx5SW5pdGlhbGl6ZWQoKXx8Y3UobiksdC5maWx0ZXIuZmlsdGVyc05vZGVzKCkpfWZ1bmN0aW9uIHJsKHQsZSxuLHIsaSxvLHMsYSl7dmFyIHU9ZS5zZXJ2ZXJDYWNoZSxjPXM/dC5maWx0ZXI6dC5maWx0ZXIuZ2V0SW5kZXhlZEZpbHRlcigpO2lmKGN1KG4pKWw9Yy51cGRhdGVGdWxsTm9kZSh1LmdldE5vZGUoKSxyLG51bGwpO2Vsc2UgaWYoYy5maWx0ZXJzTm9kZXMoKSYmIXUuaXNGaWx0ZXJlZCgpKXZhciBoPXUuZ2V0Tm9kZSgpLnVwZGF0ZUNoaWxkKG4sciksbD1jLnVwZGF0ZUZ1bGxOb2RlKHUuZ2V0Tm9kZSgpLGgsbnVsbCk7ZWxzZXtzPW51KG4pO2lmKCF1LmlzQ29tcGxldGVGb3JQYXRoKG4pJiYxPHJ1KG4pKXJldHVybiBlO2g9aXUobikscj11LmdldE5vZGUoKS5nZXRJbW1lZGlhdGVDaGlsZChzKS51cGRhdGVDaGlsZChoLHIpO2w9Ii5wcmlvcml0eSI9PT1zP2MudXBkYXRlUHJpb3JpdHkodS5nZXROb2RlKCkscik6Yy51cGRhdGVDaGlsZCh1LmdldE5vZGUoKSxzLHIsaCwkaCxudWxsKX1jPXdoKGUsbCx1LmlzRnVsbHlJbml0aWFsaXplZCgpfHxjdShuKSxjLmZpbHRlcnNOb2RlcygpKTtyZXR1cm4gbmwodCxjLG4saSxuZXcgWmgoaSxjLG8pLGEpfWZ1bmN0aW9uIGlsKHQsZSxuLHIsaSxvLHMpe3ZhciBhLHUsYz1lLmV2ZW50Q2FjaGUsaD1uZXcgWmgoaSxlLG8pO3JldHVybiBjdShuKT8odT10LmZpbHRlci51cGRhdGVGdWxsTm9kZShlLmV2ZW50Q2FjaGUuZ2V0Tm9kZSgpLHIscyksYmgoZSx1LCEwLHQuZmlsdGVyLmZpbHRlcnNOb2RlcygpKSk6Ii5wcmlvcml0eSI9PT0oYT1udShuKSk/KHU9dC5maWx0ZXIudXBkYXRlUHJpb3JpdHkoZS5ldmVudENhY2hlLmdldE5vZGUoKSxyKSxiaChlLHUsYy5pc0Z1bGx5SW5pdGlhbGl6ZWQoKSxjLmlzRmlsdGVyZWQoKSkpOihpPWl1KG4pLG89Yy5nZXROb2RlKCkuZ2V0SW1tZWRpYXRlQ2hpbGQoYSksdT12b2lkIDAsdT1jdShpKT9yOm51bGwhPShuPWguZ2V0Q29tcGxldGVDaGlsZChhKSk/Ii5wcmlvcml0eSI9PT1vdShpKSYmbi5nZXRDaGlsZChhdShpKSkuaXNFbXB0eSgpP246bi51cGRhdGVDaGlsZChpLHIpOnVjLkVNUFRZX05PREUsby5lcXVhbHModSk/ZTpiaChlLHQuZmlsdGVyLnVwZGF0ZUNoaWxkKGMuZ2V0Tm9kZSgpLGEsdSxpLGgscyksYy5pc0Z1bGx5SW5pdGlhbGl6ZWQoKSx0LmZpbHRlci5maWx0ZXJzTm9kZXMoKSkpfWZ1bmN0aW9uIG9sKHQsZSl7cmV0dXJuIHQuZXZlbnRDYWNoZS5pc0NvbXBsZXRlRm9yQ2hpbGQoZSl9ZnVuY3Rpb24gc2wodCxuLGUpe3JldHVybiBlLmZvcmVhY2goZnVuY3Rpb24odCxlKXtuPW4udXBkYXRlQ2hpbGQodCxlKX0pLG59ZnVuY3Rpb24gYWwocixpLHQsZSxvLHMsYSx1KXtpZihpLnNlcnZlckNhY2hlLmdldE5vZGUoKS5pc0VtcHR5KCkmJiFpLnNlcnZlckNhY2hlLmlzRnVsbHlJbml0aWFsaXplZCgpKXJldHVybiBpO3ZhciBjPWksZT1jdSh0KT9lOm5ldyBUaChudWxsKS5zZXRUcmVlKHQsZSksaD1pLnNlcnZlckNhY2hlLmdldE5vZGUoKTtyZXR1cm4gZS5jaGlsZHJlbi5pbm9yZGVyVHJhdmVyc2FsKGZ1bmN0aW9uKHQsZSl7aC5oYXNDaGlsZCh0KSYmKGU9c2woMCxpLnNlcnZlckNhY2hlLmdldE5vZGUoKS5nZXRJbW1lZGlhdGVDaGlsZCh0KSxlKSxjPXJsKHIsYyxuZXcgWmEodCksZSxvLHMsYSx1KSl9KSxlLmNoaWxkcmVuLmlub3JkZXJUcmF2ZXJzYWwoZnVuY3Rpb24odCxlKXt2YXIgbj0haS5zZXJ2ZXJDYWNoZS5pc0NvbXBsZXRlRm9yQ2hpbGQodCkmJnZvaWQgMD09PWUudmFsdWU7aC5oYXNDaGlsZCh0KXx8bnx8KGU9c2woMCxpLnNlcnZlckNhY2hlLmdldE5vZGUoKS5nZXRJbW1lZGlhdGVDaGlsZCh0KSxlKSxjPXJsKHIsYyxuZXcgWmEodCksZSxvLHMsYSx1KSl9KSxjfXZhciB1bCxjbD0oT2JqZWN0LmRlZmluZVByb3BlcnR5KGhsLnByb3RvdHlwZSwicXVlcnkiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5xdWVyeV99LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksaGwpO2Z1bmN0aW9uIGhsKHQsZSl7dGhpcy5xdWVyeV89dCx0aGlzLmV2ZW50UmVnaXN0cmF0aW9uc189W107dmFyIG49dGhpcy5xdWVyeV8uZ2V0UXVlcnlQYXJhbXMoKSxyPW5ldyBSYyhuLmdldEluZGV4KCkpLGk9KG89bikubG9hZHNBbGxEYXRhKCk/bmV3IFJjKG8uZ2V0SW5kZXgoKSk6bmV3KG8uaGFzTGltaXQoKT94YzpPYykobyk7dGhpcy5wcm9jZXNzb3JfPXtmaWx0ZXI6aX07dmFyIHQ9ZS5zZXJ2ZXJDYWNoZSxuPWUuZXZlbnRDYWNoZSxvPXIudXBkYXRlRnVsbE5vZGUodWMuRU1QVFlfTk9ERSx0LmdldE5vZGUoKSxudWxsKSxlPWkudXBkYXRlRnVsbE5vZGUodWMuRU1QVFlfTk9ERSxuLmdldE5vZGUoKSxudWxsKSxyPW5ldyBmaChvLHQuaXNGdWxseUluaXRpYWxpemVkKCksci5maWx0ZXJzTm9kZXMoKSksaT1uZXcgZmgoZSxuLmlzRnVsbHlJbml0aWFsaXplZCgpLGkuZmlsdGVyc05vZGVzKCkpO3RoaXMudmlld0NhY2hlXz1taChpLHIpLHRoaXMuZXZlbnRHZW5lcmF0b3JfPW5ldyB2aCh0aGlzLnF1ZXJ5Xyl9ZnVuY3Rpb24gbGwodCl7cmV0dXJuIDA9PT10LmV2ZW50UmVnaXN0cmF0aW9uc18ubGVuZ3RofWZ1bmN0aW9uIGZsKHQsZSxuKXt2YXIgcixpPVtdO2lmKG4mJihzbyhudWxsPT1lLCJBIGNhbmNlbCBzaG91bGQgY2FuY2VsIGFsbCBldmVudCByZWdpc3RyYXRpb25zLiIpLHI9dC5xdWVyeS5wYXRoLHQuZXZlbnRSZWdpc3RyYXRpb25zXy5mb3JFYWNoKGZ1bmN0aW9uKHQpe3Q9dC5jcmVhdGVDYW5jZWxFdmVudChuLHIpO3QmJmkucHVzaCh0KX0pKSxlKXtmb3IodmFyIG89W10scz0wO3M8dC5ldmVudFJlZ2lzdHJhdGlvbnNfLmxlbmd0aDsrK3Mpe3ZhciBhPXQuZXZlbnRSZWdpc3RyYXRpb25zX1tzXTtpZihhLm1hdGNoZXMoZSkpe2lmKGUuaGFzQW55Q2FsbGJhY2soKSl7bz1vLmNvbmNhdCh0LmV2ZW50UmVnaXN0cmF0aW9uc18uc2xpY2UocysxKSk7YnJlYWt9fWVsc2Ugby5wdXNoKGEpfXQuZXZlbnRSZWdpc3RyYXRpb25zXz1vfWVsc2UgdC5ldmVudFJlZ2lzdHJhdGlvbnNfPVtdO3JldHVybiBpfWZ1bmN0aW9uIHBsKHQsZSxuLHIpe2UudHlwZT09PSRjLk1FUkdFJiZudWxsIT09ZS5zb3VyY2UucXVlcnlJZCYmKHNvKEloKHQudmlld0NhY2hlXyksIldlIHNob3VsZCBhbHdheXMgaGF2ZSBhIGZ1bGwgY2FjaGUgYmVmb3JlIGhhbmRsaW5nIG1lcmdlcyIpLHNvKF9oKHQudmlld0NhY2hlXyksIk1pc3NpbmcgZXZlbnQgY2FjaGUsIGV2ZW4gdGhvdWdoIHdlIGhhdmUgYSBzZXJ2ZXIgY2FjaGUiKSk7dmFyIGk9dC52aWV3Q2FjaGVfLGU9ZWwodC5wcm9jZXNzb3JfLGksZSxuLHIpO3JldHVybiBuPXQucHJvY2Vzc29yXyxyPWUudmlld0NhY2hlLHNvKHIuZXZlbnRDYWNoZS5nZXROb2RlKCkuaXNJbmRleGVkKG4uZmlsdGVyLmdldEluZGV4KCkpLCJFdmVudCBzbmFwIG5vdCBpbmRleGVkIiksc28oci5zZXJ2ZXJDYWNoZS5nZXROb2RlKCkuaXNJbmRleGVkKG4uZmlsdGVyLmdldEluZGV4KCkpLCJTZXJ2ZXIgc25hcCBub3QgaW5kZXhlZCIpLHNvKGUudmlld0NhY2hlLnNlcnZlckNhY2hlLmlzRnVsbHlJbml0aWFsaXplZCgpfHwhaS5zZXJ2ZXJDYWNoZS5pc0Z1bGx5SW5pdGlhbGl6ZWQoKSwiT25jZSBhIHNlcnZlciBzbmFwIGlzIGNvbXBsZXRlLCBpdCBzaG91bGQgbmV2ZXIgZ28gYmFjayIpLHQudmlld0NhY2hlXz1lLnZpZXdDYWNoZSxkbCh0LGUuY2hhbmdlcyxlLnZpZXdDYWNoZS5ldmVudENhY2hlLmdldE5vZGUoKSxudWxsKX1mdW5jdGlvbiBkbCh0LGUsbixyKXtyPXI/W3JdOnQuZXZlbnRSZWdpc3RyYXRpb25zXztyZXR1cm4gZ2godC5ldmVudEdlbmVyYXRvcl8sZSxuLHIpfXZhciB2bD1mdW5jdGlvbigpe3RoaXMudmlld3M9bmV3IE1hcH07ZnVuY3Rpb24gZ2wodCxlLG4scil7dmFyIGksbyxzPWUuc291cmNlLnF1ZXJ5SWQ7aWYobnVsbCE9PXMpe3ZhciBhPXQudmlld3MuZ2V0KHMpO3JldHVybiBzbyhudWxsIT1hLCJTeW5jVHJlZSBnYXZlIHVzIGFuIG9wIGZvciBhbiBpbnZhbGlkIHF1ZXJ5LiIpLHBsKGEsZSxuLHIpfXZhciB1PVtdO3RyeXtmb3IodmFyIGM9dG8odC52aWV3cy52YWx1ZXMoKSksaD1jLm5leHQoKTshaC5kb25lO2g9Yy5uZXh0KCkpYT1oLnZhbHVlLHU9dS5jb25jYXQocGwoYSxlLG4scikpfWNhdGNoKHQpe2k9e2Vycm9yOnR9fWZpbmFsbHl7dHJ5e2gmJiFoLmRvbmUmJihvPWMucmV0dXJuKSYmby5jYWxsKGMpfWZpbmFsbHl7aWYoaSl0aHJvdyBpLmVycm9yfX1yZXR1cm4gdX1mdW5jdGlvbiB5bCh0LGUsbixyLGkpe3ZhciBvPWUucXVlcnlJZGVudGlmaWVyKCksdD10LnZpZXdzLmdldChvKTtpZih0KXJldHVybiB0O289VmgobixpP3I6bnVsbCksdD0hMSx0PSEhb3x8KG89ciBpbnN0YW5jZW9mIHVjP0JoKG4scik6dWMuRU1QVFlfTk9ERSwhMSksaT1taChuZXcgZmgobyx0LCExKSxuZXcgZmgocixpLCExKSk7cmV0dXJuIG5ldyBjbChlLGkpfWZ1bmN0aW9uIG1sKHQsZSxuLHIsaSxvKXt2YXIgcyxvPXlsKHQsZSxyLGksbyk7cmV0dXJuIHQudmlld3MuaGFzKGUucXVlcnlJZGVudGlmaWVyKCkpfHx0LnZpZXdzLnNldChlLnF1ZXJ5SWRlbnRpZmllcigpLG8pLGU9bixvLmV2ZW50UmVnaXN0cmF0aW9uc18ucHVzaChlKSxlPW4sbz0obj1vKS52aWV3Q2FjaGVfLmV2ZW50Q2FjaGUscz1bXSxvLmdldE5vZGUoKS5pc0xlYWZOb2RlKCl8fG8uZ2V0Tm9kZSgpLmZvckVhY2hDaGlsZChKdSxmdW5jdGlvbih0LGUpe3MucHVzaChOYyh0LGUpKX0pLG8uaXNGdWxseUluaXRpYWxpemVkKCkmJnMucHVzaChDYyhvLmdldE5vZGUoKSkpLGRsKG4scyxvLmdldE5vZGUoKSxlKX1mdW5jdGlvbiBibCh0LGUsbixyKXt2YXIgaSxvLHM9ZS5xdWVyeUlkZW50aWZpZXIoKSxhPVtdLHU9W10sYz1FbCh0KTtpZigiZGVmYXVsdCI9PT1zKXRyeXtmb3IodmFyIGg9dG8odC52aWV3cy5lbnRyaWVzKCkpLGw9aC5uZXh0KCk7IWwuZG9uZTtsPWgubmV4dCgpKXt2YXIgZj1lbyhsLnZhbHVlLDIpLHA9ZlswXSxkPWZbMV0sdT11LmNvbmNhdChmbChkLG4scikpO2xsKGQpJiYodC52aWV3cy5kZWxldGUocCksZC5xdWVyeS5nZXRRdWVyeVBhcmFtcygpLmxvYWRzQWxsRGF0YSgpfHxhLnB1c2goZC5xdWVyeSkpfX1jYXRjaCh0KXtpPXtlcnJvcjp0fX1maW5hbGx5e3RyeXtsJiYhbC5kb25lJiYobz1oLnJldHVybikmJm8uY2FsbChoKX1maW5hbGx5e2lmKGkpdGhyb3cgaS5lcnJvcn19ZWxzZShkPXQudmlld3MuZ2V0KHMpKSYmKHU9dS5jb25jYXQoZmwoZCxuLHIpKSxsbChkKSYmKHQudmlld3MuZGVsZXRlKHMpLGQucXVlcnkuZ2V0UXVlcnlQYXJhbXMoKS5sb2Fkc0FsbERhdGEoKXx8YS5wdXNoKGQucXVlcnkpKSk7cmV0dXJuIGMmJiFFbCh0KSYmYS5wdXNoKChzbyh1bCwiUmVmZXJlbmNlLnRzIGhhcyBub3QgYmVlbiBsb2FkZWQiKSxuZXcgdWwoZS5kYXRhYmFzZSxlLnBhdGgpKSkse3JlbW92ZWQ6YSxldmVudHM6dX19ZnVuY3Rpb24gd2wodCl7dmFyIGUsbixyPVtdO3RyeXtmb3IodmFyIGk9dG8odC52aWV3cy52YWx1ZXMoKSksbz1pLm5leHQoKTshby5kb25lO289aS5uZXh0KCkpe3ZhciBzPW8udmFsdWU7cy5xdWVyeS5nZXRRdWVyeVBhcmFtcygpLmxvYWRzQWxsRGF0YSgpfHxyLnB1c2gocyl9fWNhdGNoKHQpe2U9e2Vycm9yOnR9fWZpbmFsbHl7dHJ5e28mJiFvLmRvbmUmJihuPWkucmV0dXJuKSYmbi5jYWxsKGkpfWZpbmFsbHl7aWYoZSl0aHJvdyBlLmVycm9yfX1yZXR1cm4gcn1mdW5jdGlvbiBfbCh0LGUpe3ZhciBuLHIsaSxvLHM9bnVsbDt0cnl7Zm9yKHZhciBhPXRvKHQudmlld3MudmFsdWVzKCkpLHU9YS5uZXh0KCk7IXUuZG9uZTt1PWEubmV4dCgpKXZhciBjPXUudmFsdWUscz1zfHwoaT1lLG89dm9pZCAwLChvPUloKChjPWMpLnZpZXdDYWNoZV8pKSYmKGMucXVlcnkuZ2V0UXVlcnlQYXJhbXMoKS5sb2Fkc0FsbERhdGEoKXx8IWN1KGkpJiYhby5nZXRJbW1lZGlhdGVDaGlsZChudShpKSkuaXNFbXB0eSgpKT9vLmdldENoaWxkKGkpOm51bGwpfWNhdGNoKHQpe249e2Vycm9yOnR9fWZpbmFsbHl7dHJ5e3UmJiF1LmRvbmUmJihyPWEucmV0dXJuKSYmci5jYWxsKGEpfWZpbmFsbHl7aWYobil0aHJvdyBuLmVycm9yfX1yZXR1cm4gc31mdW5jdGlvbiBJbCh0LGUpe2lmKGUuZ2V0UXVlcnlQYXJhbXMoKS5sb2Fkc0FsbERhdGEoKSlyZXR1cm4gU2wodCk7ZT1lLnF1ZXJ5SWRlbnRpZmllcigpO3JldHVybiB0LnZpZXdzLmdldChlKX1mdW5jdGlvbiBUbCh0LGUpe3JldHVybiBudWxsIT1JbCh0LGUpfWZ1bmN0aW9uIEVsKHQpe3JldHVybiBudWxsIT1TbCh0KX1mdW5jdGlvbiBTbCh0KXt2YXIgZSxuO3RyeXtmb3IodmFyIHI9dG8odC52aWV3cy52YWx1ZXMoKSksaT1yLm5leHQoKTshaS5kb25lO2k9ci5uZXh0KCkpe3ZhciBvPWkudmFsdWU7aWYoby5xdWVyeS5nZXRRdWVyeVBhcmFtcygpLmxvYWRzQWxsRGF0YSgpKXJldHVybiBvfX1jYXRjaCh0KXtlPXtlcnJvcjp0fX1maW5hbGx5e3RyeXtpJiYhaS5kb25lJiYobj1yLnJldHVybikmJm4uY2FsbChyKX1maW5hbGx5e2lmKGUpdGhyb3cgZS5lcnJvcn19cmV0dXJuIG51bGx9dmFyIENsPTEsTmw9ZnVuY3Rpb24odCl7dGhpcy5saXN0ZW5Qcm92aWRlcl89dCx0aGlzLnN5bmNQb2ludFRyZWVfPW5ldyBUaChudWxsKSx0aGlzLnBlbmRpbmdXcml0ZVRyZWVfPXt2aXNpYmxlV3JpdGVzOlNoLmVtcHR5KCksYWxsV3JpdGVzOltdLGxhc3RXcml0ZUlkOi0xfSx0aGlzLnRhZ1RvUXVlcnlNYXA9bmV3IE1hcCx0aGlzLnF1ZXJ5VG9UYWdNYXA9bmV3IE1hcH07ZnVuY3Rpb24gQWwodCxlLG4scixpKXt2YXIgbyxzLGEsdTtyZXR1cm4gbz10LnBlbmRpbmdXcml0ZVRyZWVfLHM9ZSxhPW4sdT1pLHNvKChyPXIpPm8ubGFzdFdyaXRlSWQsIlN0YWNraW5nIGFuIG9sZGVyIHdyaXRlIG9uIHRvcCBvZiBuZXdlciBvbmVzIiksdm9pZCAwPT09dSYmKHU9ITApLG8uYWxsV3JpdGVzLnB1c2goe3BhdGg6cyxzbmFwOmEsd3JpdGVJZDpyLHZpc2libGU6dX0pLHUmJihvLnZpc2libGVXcml0ZXM9Tmgoby52aXNpYmxlV3JpdGVzLHMsYSkpLG8ubGFzdFdyaXRlSWQ9cixpP01sKHQsbmV3IHVoKGVoKCksZSxuKSk6W119ZnVuY3Rpb24ga2wodCxlLG4scil7dmFyIGksbyxzO2k9dC5wZW5kaW5nV3JpdGVUcmVlXyxvPWUscz1uLHNvKChyPXIpPmkubGFzdFdyaXRlSWQsIlN0YWNraW5nIGFuIG9sZGVyIG1lcmdlIG9uIHRvcCBvZiBuZXdlciBvbmVzIiksaS5hbGxXcml0ZXMucHVzaCh7cGF0aDpvLGNoaWxkcmVuOnMsd3JpdGVJZDpyLHZpc2libGU6ITB9KSxpLnZpc2libGVXcml0ZXM9QWgoaS52aXNpYmxlV3JpdGVzLG8scyksaS5sYXN0V3JpdGVJZD1yO249VGguZnJvbU9iamVjdChuKTtyZXR1cm4gTWwodCxuZXcgaGgoZWgoKSxlLG4pKX1mdW5jdGlvbiBSbCh0LGUsbil7dm9pZCAwPT09biYmKG49ITEpO3ZhciByPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuPTA7bjx0LmFsbFdyaXRlcy5sZW5ndGg7bisrKXt2YXIgcj10LmFsbFdyaXRlc1tuXTtpZihyLndyaXRlSWQ9PT1lKXJldHVybiByfXJldHVybiBudWxsfSh0LnBlbmRpbmdXcml0ZVRyZWVfLGUpO2lmKEZoKHQucGVuZGluZ1dyaXRlVHJlZV8sZSkpe3ZhciBpPW5ldyBUaChudWxsKTtyZXR1cm4gbnVsbCE9ci5zbmFwP2k9aS5zZXQoZXUoKSwhMCk6aWEoci5jaGlsZHJlbixmdW5jdGlvbih0KXtpPWkuc2V0KG5ldyBaYSh0KSwhMCl9KSxNbCh0LG5ldyBpaChyLnBhdGgsaSxuKSl9cmV0dXJuW119ZnVuY3Rpb24gUGwodCxlLG4pe3JldHVybiBNbCh0LG5ldyB1aChuaCgpLGUsbikpfWZ1bmN0aW9uIE9sKG4sdCxlLHIpe3ZhciBpPXQucGF0aCxvPW4uc3luY1BvaW50VHJlZV8uZ2V0KGkpLHM9W107aWYobyYmKCJkZWZhdWx0Ij09PXQucXVlcnlJZGVudGlmaWVyKCl8fFRsKG8sdCkpKXt2YXIgYT1ibChvLHQsZSxyKTswPT09by52aWV3cy5zaXplJiYobi5zeW5jUG9pbnRUcmVlXz1uLnN5bmNQb2ludFRyZWVfLnJlbW92ZShpKSk7ZT1hLnJlbW92ZWQscz1hLmV2ZW50cyxvPS0xIT09ZS5maW5kSW5kZXgoZnVuY3Rpb24odCl7cmV0dXJuIHQuZ2V0UXVlcnlQYXJhbXMoKS5sb2Fkc0FsbERhdGEoKX0pLGE9bi5zeW5jUG9pbnRUcmVlXy5maW5kT25QYXRoKGksZnVuY3Rpb24odCxlKXtyZXR1cm4gRWwoZSl9KTtpZihvJiYhYSl7aT1uLnN5bmNQb2ludFRyZWVfLnN1YnRyZWUoaSk7aWYoIWkuaXNFbXB0eSgpKWZvcih2YXIgdT1pLmZvbGQoZnVuY3Rpb24odCxlLG4pe2lmKGUmJkVsKGUpKXJldHVybltTbChlKV07dmFyIHI9W107cmV0dXJuIGUmJihyPXdsKGUpKSxpYShuLGZ1bmN0aW9uKHQsZSl7cj1yLmNvbmNhdChlKX0pLHJ9KSxjPTA7Yzx1Lmxlbmd0aDsrK2Mpe3ZhciBoPXVbY10sbD1oLnF1ZXJ5LGg9VWwobixoKTtuLmxpc3RlblByb3ZpZGVyXy5zdGFydExpc3RlbmluZyhXbChsKSxqbChuLGwpLGguaGFzaEZuLGgub25Db21wbGV0ZSl9fSFhJiYwPGUubGVuZ3RoJiYhciYmKG8/bi5saXN0ZW5Qcm92aWRlcl8uc3RvcExpc3RlbmluZyhXbCh0KSxudWxsKTplLmZvckVhY2goZnVuY3Rpb24odCl7dmFyIGU9bi5xdWVyeVRvVGFnTWFwLmdldChxbCh0KSk7bi5saXN0ZW5Qcm92aWRlcl8uc3RvcExpc3RlbmluZyhXbCh0KSxlKX0pKSxmdW5jdGlvbih0LGUpe2Zvcih2YXIgbj0wO248ZS5sZW5ndGg7KytuKXt2YXIgcixpPWVbbl07aS5nZXRRdWVyeVBhcmFtcygpLmxvYWRzQWxsRGF0YSgpfHwocj1xbChpKSxpPXQucXVlcnlUb1RhZ01hcC5nZXQociksdC5xdWVyeVRvVGFnTWFwLmRlbGV0ZShyKSx0LnRhZ1RvUXVlcnlNYXAuZGVsZXRlKGkpKX19KG4sZSl9cmV0dXJuIHN9ZnVuY3Rpb24gRGwodCxlLG4pe3ZhciByPWUucGF0aCxpPW51bGwsbz0hMTt0LnN5bmNQb2ludFRyZWVfLmZvcmVhY2hPblBhdGgocixmdW5jdGlvbih0LGUpe3Q9aHUodCxyKTtpPWl8fF9sKGUsdCksbz1vfHxFbChlKX0pO3ZhciBzPXQuc3luY1BvaW50VHJlZV8uZ2V0KHIpO3M/KG89b3x8RWwocyksaT1pfHxfbChzLGV1KCkpKToocz1uZXcgdmwsdC5zeW5jUG9pbnRUcmVlXz10LnN5bmNQb2ludFRyZWVfLnNldChyLHMpKSxudWxsIT1pP2g9ITA6KGg9ITEsaT11Yy5FTVBUWV9OT0RFLHQuc3luY1BvaW50VHJlZV8uc3VidHJlZShyKS5mb3JlYWNoQ2hpbGQoZnVuY3Rpb24odCxlKXtlPV9sKGUsZXUoKSk7ZSYmKGk9aS51cGRhdGVJbW1lZGlhdGVDaGlsZCh0LGUpKX0pKTt2YXIgYSx1LGM9VGwocyxlKTtjfHxlLmdldFF1ZXJ5UGFyYW1zKCkubG9hZHNBbGxEYXRhKCl8fChhPXFsKGUpLHNvKCF0LnF1ZXJ5VG9UYWdNYXAuaGFzKGEpLCJWaWV3IGRvZXMgbm90IGV4aXN0LCBidXQgd2UgaGF2ZSBhIHRhZyIpLHU9Q2wrKyx0LnF1ZXJ5VG9UYWdNYXAuc2V0KGEsdSksdC50YWdUb1F1ZXJ5TWFwLnNldCh1LGEpKTt2YXIgaD1tbChzLGUsbixNaCh0LnBlbmRpbmdXcml0ZVRyZWVfLHIpLGksaCk7cmV0dXJuIGN8fG98fChzPUlsKHMsZSksaD1oLmNvbmNhdChmdW5jdGlvbih0LGUsbil7dmFyIHI9ZS5wYXRoLGk9amwodCxlKSxuPVVsKHQsbiksbj10Lmxpc3RlblByb3ZpZGVyXy5zdGFydExpc3RlbmluZyhXbChlKSxpLG4uaGFzaEZuLG4ub25Db21wbGV0ZSkscj10LnN5bmNQb2ludFRyZWVfLnN1YnRyZWUocik7aWYoaSlzbyghRWwoci52YWx1ZSksIklmIHdlJ3JlIGFkZGluZyBhIHF1ZXJ5LCBpdCBzaG91bGRuJ3QgYmUgc2hhZG93ZWQiKTtlbHNlIGZvcih2YXIgbz1yLmZvbGQoZnVuY3Rpb24odCxlLG4pe2lmKCFjdSh0KSYmZSYmRWwoZSkpcmV0dXJuW1NsKGUpLnF1ZXJ5XTt2YXIgcj1bXTtyZXR1cm4gZSYmKHI9ci5jb25jYXQod2woZSkubWFwKGZ1bmN0aW9uKHQpe3JldHVybiB0LnF1ZXJ5fSkpKSxpYShuLGZ1bmN0aW9uKHQsZSl7cj1yLmNvbmNhdChlKX0pLHJ9KSxzPTA7czxvLmxlbmd0aDsrK3Mpe3ZhciBhPW9bc107dC5saXN0ZW5Qcm92aWRlcl8uc3RvcExpc3RlbmluZyhXbChhKSxqbCh0LGEpKX1yZXR1cm4gbn0odCxlLHMpKSksaH1mdW5jdGlvbiB4bCh0LG4sZSl7dmFyIHI9dC5wZW5kaW5nV3JpdGVUcmVlXyx0PXQuc3luY1BvaW50VHJlZV8uZmluZE9uUGF0aChuLGZ1bmN0aW9uKHQsZSl7dD1fbChlLGh1KHQsbikpO2lmKHQpcmV0dXJuIHR9KTtyZXR1cm4gcWgocixuLHQsZSwhMCl9ZnVuY3Rpb24gTGwodCxlKXt2YXIgbj1lLnBhdGgscj1udWxsO3Quc3luY1BvaW50VHJlZV8uZm9yZWFjaE9uUGF0aChuLGZ1bmN0aW9uKHQsZSl7dD1odSh0LG4pO3I9cnx8X2woZSx0KX0pO3ZhciBpPXQuc3luY1BvaW50VHJlZV8uZ2V0KG4pO2k/cj1yfHxfbChpLGV1KCkpOihpPW5ldyB2bCx0LnN5bmNQb2ludFRyZWVfPXQuc3luY1BvaW50VHJlZV8uc2V0KG4saSkpO3ZhciBvPW51bGwhPXIscz1vP25ldyBmaChyLCEwLCExKTpudWxsLG89eWwoaSxlLE1oKHQucGVuZGluZ1dyaXRlVHJlZV8sZS5wYXRoKSxvP3MuZ2V0Tm9kZSgpOnVjLkVNUFRZX05PREUsbyk7cmV0dXJuIF9oKG8udmlld0NhY2hlXyl9ZnVuY3Rpb24gTWwodCxlKXtyZXR1cm4gZnVuY3Rpb24gdChlLG4scixpKXt7aWYoY3UoZS5wYXRoKSlyZXR1cm4gRmwoZSxuLHIsaSk7dmFyIG89bi5nZXQoZXUoKSk7bnVsbD09ciYmbnVsbCE9byYmKHI9X2wobyxldSgpKSk7dmFyIHM9W10sYT1udShlLnBhdGgpLHU9ZS5vcGVyYXRpb25Gb3JDaGlsZChhKSxjPW4uY2hpbGRyZW4uZ2V0KGEpO3JldHVybiBjJiZ1JiYobj1yP3IuZ2V0SW1tZWRpYXRlQ2hpbGQoYSk6bnVsbCxhPXpoKGksYSkscz1zLmNvbmNhdCh0KHUsYyxuLGEpKSkscz1vP3MuY29uY2F0KGdsKG8sZSxpLHIpKTpzfX0oZSx0LnN5bmNQb2ludFRyZWVfLG51bGwsTWgodC5wZW5kaW5nV3JpdGVUcmVlXyxldSgpKSl9ZnVuY3Rpb24gRmwoaSx0LG8scyl7dmFyIGU9dC5nZXQoZXUoKSk7bnVsbD09byYmbnVsbCE9ZSYmKG89X2woZSxldSgpKSk7dmFyIGE9W107cmV0dXJuIHQuY2hpbGRyZW4uaW5vcmRlclRyYXZlcnNhbChmdW5jdGlvbih0LGUpe3ZhciBuPW8/by5nZXRJbW1lZGlhdGVDaGlsZCh0KTpudWxsLHI9emgocyx0KSx0PWkub3BlcmF0aW9uRm9yQ2hpbGQodCk7dCYmKGE9YS5jb25jYXQoRmwodCxlLG4scikpKX0pLGE9ZT9hLmNvbmNhdChnbChlLGkscyxvKSk6YX1mdW5jdGlvbiBVbChyLHQpe3ZhciBpPXQucXVlcnksbz1qbChyLGkpO3JldHVybntoYXNoRm46ZnVuY3Rpb24oKXtyZXR1cm4odC52aWV3Q2FjaGVfLnNlcnZlckNhY2hlLmdldE5vZGUoKXx8dWMuRU1QVFlfTk9ERSkuaGFzaCgpfSxvbkNvbXBsZXRlOmZ1bmN0aW9uKHQpe2lmKCJvayI9PT10KXJldHVybiBvP2Z1bmN0aW9uKHQsZSxuKXt2YXIgcj1WbCh0LG4pO2lmKHIpe249Qmwocikscj1uLnBhdGgsbj1uLnF1ZXJ5SWQsZT1odShyLGUpO3JldHVybiBLbCh0LHIsbmV3IHNoKHJoKG4pLGUpKX1yZXR1cm5bXX0ocixpLnBhdGgsbyk6KGU9cixuPWkucGF0aCxNbChlLG5ldyBzaChuaCgpLG4pKSk7dmFyIGUsbix0PWFhKHQsaSk7cmV0dXJuIE9sKHIsaSxudWxsLHQpfX19ZnVuY3Rpb24gamwodCxlKXtlPXFsKGUpO3JldHVybiB0LnF1ZXJ5VG9UYWdNYXAuZ2V0KGUpfWZ1bmN0aW9uIHFsKHQpe3JldHVybiB0LnBhdGgudG9TdHJpbmcoKSsiJCIrdC5xdWVyeUlkZW50aWZpZXIoKX1mdW5jdGlvbiBWbCh0LGUpe3JldHVybiB0LnRhZ1RvUXVlcnlNYXAuZ2V0KGUpfWZ1bmN0aW9uIEJsKHQpe3ZhciBlPXQuaW5kZXhPZigiJCIpO3JldHVybiBzbygtMSE9PWUmJmU8dC5sZW5ndGgtMSwiQmFkIHF1ZXJ5S2V5LiIpLHtxdWVyeUlkOnQuc3Vic3RyKGUrMSkscGF0aDpuZXcgWmEodC5zdWJzdHIoMCxlKSl9fWZ1bmN0aW9uIEtsKHQsZSxuKXt2YXIgcj10LnN5bmNQb2ludFRyZWVfLmdldChlKTtyZXR1cm4gc28ociwiTWlzc2luZyBzeW5jIHBvaW50IGZvciBxdWVyeSB0YWcgdGhhdCB3ZSdyZSB0cmFja2luZyIpLGdsKHIsbixNaCh0LnBlbmRpbmdXcml0ZVRyZWVfLGUpLG51bGwpfWZ1bmN0aW9uIFdsKHQpe3JldHVybiB0LmdldFF1ZXJ5UGFyYW1zKCkubG9hZHNBbGxEYXRhKCkmJiF0LmdldFF1ZXJ5UGFyYW1zKCkuaXNEZWZhdWx0KCk/dC5nZXRSZWYoKTp0fXZhciBIbD0oR2wucHJvdG90eXBlLmdldEltbWVkaWF0ZUNoaWxkPWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgR2wodGhpcy5ub2RlXy5nZXRJbW1lZGlhdGVDaGlsZCh0KSl9LEdsLnByb3RvdHlwZS5ub2RlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubm9kZV99LEdsKTtmdW5jdGlvbiBHbCh0KXt0aGlzLm5vZGVfPXR9dmFyIHpsPShRbC5wcm90b3R5cGUuZ2V0SW1tZWRpYXRlQ2hpbGQ9ZnVuY3Rpb24odCl7dD11dSh0aGlzLnBhdGhfLHQpO3JldHVybiBuZXcgUWwodGhpcy5zeW5jVHJlZV8sdCl9LFFsLnByb3RvdHlwZS5ub2RlPWZ1bmN0aW9uKCl7cmV0dXJuIHhsKHRoaXMuc3luY1RyZWVfLHRoaXMucGF0aF8pfSxRbCk7ZnVuY3Rpb24gUWwodCxlKXt0aGlzLnN5bmNUcmVlXz10LHRoaXMucGF0aF89ZX12YXIgWWw9ZnVuY3Rpb24odCl7cmV0dXJuKHQ9dHx8e30pLnRpbWVzdGFtcD10LnRpbWVzdGFtcHx8KG5ldyBEYXRlKS5nZXRUaW1lKCksdH0sSmw9ZnVuY3Rpb24odCxlLG4pe3JldHVybiB0JiYib2JqZWN0Ij09dHlwZW9mIHQ/KHNvKCIuc3YiaW4gdCwiVW5leHBlY3RlZCBsZWFmIG5vZGUgb3IgcHJpb3JpdHkgY29udGVudHMiKSwic3RyaW5nIj09dHlwZW9mIHRbIi5zdiJdPyRsKHRbIi5zdiJdLGUsbik6Im9iamVjdCI9PXR5cGVvZiB0WyIuc3YiXT9abCh0WyIuc3YiXSxlKTp2b2lkIHNvKCExLCJVbmV4cGVjdGVkIHNlcnZlciB2YWx1ZTogIitKU09OLnN0cmluZ2lmeSh0LG51bGwsMikpKTp0fSwkbD1mdW5jdGlvbih0LGUsbil7aWYoInRpbWVzdGFtcCI9PT10KXJldHVybiBuLnRpbWVzdGFtcDtzbyghMSwiVW5leHBlY3RlZCBzZXJ2ZXIgdmFsdWU6ICIrdCl9LFpsPWZ1bmN0aW9uKHQsZSxuKXt0Lmhhc093blByb3BlcnR5KCJpbmNyZW1lbnQiKXx8c28oITEsIlVuZXhwZWN0ZWQgc2VydmVyIHZhbHVlOiAiK0pTT04uc3RyaW5naWZ5KHQsbnVsbCwyKSk7dD10LmluY3JlbWVudDsibnVtYmVyIiE9dHlwZW9mIHQmJnNvKCExLCJVbmV4cGVjdGVkIGluY3JlbWVudCB2YWx1ZTogIit0KTtlPWUubm9kZSgpO2lmKHNvKG51bGwhPWUsIkV4cGVjdGVkIENoaWxkcmVuTm9kZS5FTVBUWV9OT0RFIGZvciBudWxscyIpLCFlLmlzTGVhZk5vZGUoKSlyZXR1cm4gdDtlPWUuZ2V0VmFsdWUoKTtyZXR1cm4ibnVtYmVyIiE9dHlwZW9mIGU/dDplK3R9LHRmPWZ1bmN0aW9uKHQsZSxuLHIpe3JldHVybiBuZihlLG5ldyB6bChuLHQpLHIpfSxlZj1mdW5jdGlvbih0LGUsbil7cmV0dXJuIG5mKHQsbmV3IEhsKGUpLG4pfTtmdW5jdGlvbiBuZih0LHIsaSl7dmFyIGU9dC5nZXRQcmlvcml0eSgpLnZhbCgpLG49SmwoZSxyLmdldEltbWVkaWF0ZUNoaWxkKCIucHJpb3JpdHkiKSxpKTtpZih0LmlzTGVhZk5vZGUoKSl7dmFyIG89dCxlPUpsKG8uZ2V0VmFsdWUoKSxyLGkpO3JldHVybiBlIT09by5nZXRWYWx1ZSgpfHxuIT09by5nZXRQcmlvcml0eSgpLnZhbCgpP25ldyBRdShlLHBjKG4pKTp0fXZhciB0PXQscz10O3JldHVybiBuIT09dC5nZXRQcmlvcml0eSgpLnZhbCgpJiYocz1zLnVwZGF0ZVByaW9yaXR5KG5ldyBRdShuKSkpLHQuZm9yRWFjaENoaWxkKEp1LGZ1bmN0aW9uKHQsZSl7dmFyIG49bmYoZSxyLmdldEltbWVkaWF0ZUNoaWxkKHQpLGkpO24hPT1lJiYocz1zLnVwZGF0ZUltbWVkaWF0ZUNoaWxkKHQsbikpfSksc312YXIgcmY9ZnVuY3Rpb24odCxlLG4pe3ZvaWQgMD09PXQmJih0PSIiKSx2b2lkIDA9PT1lJiYoZT1udWxsKSx2b2lkIDA9PT1uJiYobj17Y2hpbGRyZW46e30sY2hpbGRDb3VudDowfSksdGhpcy5uYW1lPXQsdGhpcy5wYXJlbnQ9ZSx0aGlzLm5vZGU9bn07ZnVuY3Rpb24gb2YodCxlKXtmb3IodmFyIG49ZSBpbnN0YW5jZW9mIFphP2U6bmV3IFphKGUpLHI9dCxpPW51KG4pO251bGwhPT1pOyl2YXIgbz1EbyhyLm5vZGUuY2hpbGRyZW4saSl8fHtjaGlsZHJlbjp7fSxjaGlsZENvdW50OjB9LHI9bmV3IHJmKGkscixvKSxpPW51KG49aXUobikpO3JldHVybiByfWZ1bmN0aW9uIHNmKHQpe3JldHVybiB0Lm5vZGUudmFsdWV9ZnVuY3Rpb24gYWYodCxlKXt0Lm5vZGUudmFsdWU9ZSxsZih0KX1mdW5jdGlvbiB1Zih0KXtyZXR1cm4gMDx0Lm5vZGUuY2hpbGRDb3VudH1mdW5jdGlvbiBjZihuLHIpe2lhKG4ubm9kZS5jaGlsZHJlbixmdW5jdGlvbih0LGUpe3IobmV3IHJmKHQsbixlKSl9KX1mdW5jdGlvbiBoZih0KXtyZXR1cm4gbmV3IFphKG51bGw9PT10LnBhcmVudD90Lm5hbWU6aGYodC5wYXJlbnQpKyIvIit0Lm5hbWUpfWZ1bmN0aW9uIGxmKHQpe3ZhciBlLG4scixpO251bGwhPT10LnBhcmVudCYmKGU9dC5wYXJlbnQsbj10Lm5hbWUsaT1mdW5jdGlvbih0KXtyZXR1cm4gdm9pZCAwPT09c2YodCkmJiF1Zih0KX0ocj10KSx0PU9vKGUubm9kZS5jaGlsZHJlbixuKSxpJiZ0PyhkZWxldGUgZS5ub2RlLmNoaWxkcmVuW25dLGUubm9kZS5jaGlsZENvdW50LS0sbGYoZSkpOml8fHR8fChlLm5vZGUuY2hpbGRyZW5bbl09ci5ub2RlLGUubm9kZS5jaGlsZENvdW50KyssbGYoZSkpKX1mdW5jdGlvbiBmZih0KXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIHQmJjAhPT10Lmxlbmd0aCYmIUlmLnRlc3QodCl9ZnVuY3Rpb24gcGYodCl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiB0JiYwIT09dC5sZW5ndGgmJiFUZi50ZXN0KHQpfWZ1bmN0aW9uIGRmKHQpe3JldHVybiBudWxsPT09dHx8InN0cmluZyI9PXR5cGVvZiB0fHwibnVtYmVyIj09dHlwZW9mIHQmJiFVcyh0KXx8dCYmIm9iamVjdCI9PXR5cGVvZiB0JiZPbyh0LCIuc3YiKX1mdW5jdGlvbiB2Zih0LGUsbixyLGkpe2kmJnZvaWQgMD09PW58fFNmKFdvKHQsZSxpKSxuLHIpfWZ1bmN0aW9uIGdmKHQsZSxuLHIsaSl7aWYoIWl8fHZvaWQgMCE9PW4pe3ZhciBvPVdvKHQsZSxpKTtpZighbnx8Im9iamVjdCIhPXR5cGVvZiBufHxBcnJheS5pc0FycmF5KG4pKXRocm93IG5ldyBFcnJvcihvKyIgbXVzdCBiZSBhbiBvYmplY3QgY29udGFpbmluZyB0aGUgY2hpbGRyZW4gdG8gcmVwbGFjZS4iKTt2YXIgcz1bXTtpYShuLGZ1bmN0aW9uKHQsZSl7dD1uZXcgWmEodCk7aWYoU2YobyxlLHV1KHIsdCkpLCIucHJpb3JpdHkiPT09b3UodCkmJiFkZihlKSl0aHJvdyBuZXcgRXJyb3IobysiY29udGFpbnMgYW4gaW52YWxpZCB2YWx1ZSBmb3IgJyIrdC50b1N0cmluZygpKyInLCB3aGljaCBtdXN0IGJlIGEgdmFsaWQgRmlyZWJhc2UgcHJpb3JpdHkgKGEgc3RyaW5nLCBmaW5pdGUgbnVtYmVyLCBzZXJ2ZXIgdmFsdWUsIG9yIG51bGwpLiIpO3MucHVzaCh0KX0pLGZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuPTA7bjxlLmxlbmd0aDtuKyspZm9yKHZhciByLGk9c3Uocj1lW25dKSxvPTA7bzxpLmxlbmd0aDtvKyspaWYoKCIucHJpb3JpdHkiIT09aVtvXXx8byE9PWkubGVuZ3RoLTEpJiYhZmYoaVtvXSkpdGhyb3cgbmV3IEVycm9yKHQrImNvbnRhaW5zIGFuIGludmFsaWQga2V5ICgiK2lbb10rIikgaW4gcGF0aCAiK3IudG9TdHJpbmcoKSsnLiBLZXlzIG11c3QgYmUgbm9uLWVtcHR5IHN0cmluZ3MgYW5kIGNhblwndCBjb250YWluICIuIiwgIiMiLCAiJCIsICIvIiwgIlsiLCBvciAiXSInKTtlLnNvcnQobHUpO3ZhciBzPW51bGw7Zm9yKG49MDtuPGUubGVuZ3RoO24rKyl7aWYocj1lW25dLG51bGwhPT1zJiZwdShzLHIpKXRocm93IG5ldyBFcnJvcih0KyJjb250YWlucyBhIHBhdGggIitzLnRvU3RyaW5nKCkrIiB0aGF0IGlzIGFuY2VzdG9yIG9mIGFub3RoZXIgcGF0aCAiK3IudG9TdHJpbmcoKSk7cz1yfX0obyxzKX19ZnVuY3Rpb24geWYodCxlLG4scil7aWYoIXJ8fHZvaWQgMCE9PW4pe2lmKFVzKG4pKXRocm93IG5ldyBFcnJvcihXbyh0LGUscikrImlzICIrbi50b1N0cmluZygpKyIsIGJ1dCBtdXN0IGJlIGEgdmFsaWQgRmlyZWJhc2UgcHJpb3JpdHkgKGEgc3RyaW5nLCBmaW5pdGUgbnVtYmVyLCBzZXJ2ZXIgdmFsdWUsIG9yIG51bGwpLiIpO2lmKCFkZihuKSl0aHJvdyBuZXcgRXJyb3IoV28odCxlLHIpKyJtdXN0IGJlIGEgdmFsaWQgRmlyZWJhc2UgcHJpb3JpdHkgKGEgc3RyaW5nLCBmaW5pdGUgbnVtYmVyLCBzZXJ2ZXIgdmFsdWUsIG9yIG51bGwpLiIpfX1mdW5jdGlvbiBtZih0LGUsbixyKXtpZighcnx8dm9pZCAwIT09bilzd2l0Y2gobil7Y2FzZSJ2YWx1ZSI6Y2FzZSJjaGlsZF9hZGRlZCI6Y2FzZSJjaGlsZF9yZW1vdmVkIjpjYXNlImNoaWxkX2NoYW5nZWQiOmNhc2UiY2hpbGRfbW92ZWQiOmJyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKFdvKHQsZSxyKSsnbXVzdCBiZSBhIHZhbGlkIGV2ZW50IHR5cGUgPSAidmFsdWUiLCAiY2hpbGRfYWRkZWQiLCAiY2hpbGRfcmVtb3ZlZCIsICJjaGlsZF9jaGFuZ2VkIiwgb3IgImNoaWxkX21vdmVkIi4nKX19ZnVuY3Rpb24gYmYodCxlLG4scil7aWYoIShyJiZ2b2lkIDA9PT1ufHxmZihuKSkpdGhyb3cgbmV3IEVycm9yKFdvKHQsZSxyKSsnd2FzIGFuIGludmFsaWQga2V5ID0gIicrbisnIi4gIEZpcmViYXNlIGtleXMgbXVzdCBiZSBub24tZW1wdHkgc3RyaW5ncyBhbmQgY2FuXCd0IGNvbnRhaW4gIi4iLCAiIyIsICIkIiwgIi8iLCAiWyIsIG9yICJdIikuJyl9ZnVuY3Rpb24gd2YodCxlLG4scil7aWYoIShyJiZ2b2lkIDA9PT1ufHxwZihuKSkpdGhyb3cgbmV3IEVycm9yKFdvKHQsZSxyKSsnd2FzIGFuIGludmFsaWQgcGF0aCA9ICInK24rJyIuIFBhdGhzIG11c3QgYmUgbm9uLWVtcHR5IHN0cmluZ3MgYW5kIGNhblwndCBjb250YWluICIuIiwgIiMiLCAiJCIsICJbIiwgb3IgIl0iJyl9ZnVuY3Rpb24gX2YodCxlKXtpZigiLmluZm8iPT09bnUoZSkpdGhyb3cgbmV3IEVycm9yKHQrIiBmYWlsZWQgPSBDYW4ndCBtb2RpZnkgZGF0YSB1bmRlciAvLmluZm8vIil9dmFyIElmPS9bXFtcXS4jJFwvXHUwMDAwLVx1MDAxRlx1MDA3Rl0vLFRmPS9bXFtcXS4jJFx1MDAwMC1cdTAwMUZcdTAwN0ZdLyxFZj0xMDQ4NTc2MCxTZj1mdW5jdGlvbihyLHQsZSl7dmFyIGk9ZSBpbnN0YW5jZW9mIFphP25ldyBkdShlLHIpOmU7aWYodm9pZCAwPT09dCl0aHJvdyBuZXcgRXJyb3IocisiY29udGFpbnMgdW5kZWZpbmVkICIrZ3UoaSkpO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiB0KXRocm93IG5ldyBFcnJvcihyKyJjb250YWlucyBhIGZ1bmN0aW9uICIrZ3UoaSkrIiB3aXRoIGNvbnRlbnRzID0gIit0LnRvU3RyaW5nKCkpO2lmKFVzKHQpKXRocm93IG5ldyBFcnJvcihyKyJjb250YWlucyAiK3QudG9TdHJpbmcoKSsiICIrZ3UoaSkpO2lmKCJzdHJpbmciPT10eXBlb2YgdCYmdC5sZW5ndGg+RWYvMyYmem8odCk+RWYpdGhyb3cgbmV3IEVycm9yKHIrImNvbnRhaW5zIGEgc3RyaW5nIGdyZWF0ZXIgdGhhbiAiK0VmKyIgdXRmOCBieXRlcyAiK2d1KGkpKyIgKCciK3Quc3Vic3RyaW5nKDAsNTApKyIuLi4nKSIpO2lmKHQmJiJvYmplY3QiPT10eXBlb2YgdCl7dmFyIG89ITEscz0hMTtpZihpYSh0LGZ1bmN0aW9uKHQsZSl7aWYoIi52YWx1ZSI9PT10KW89ITA7ZWxzZSBpZigiLnByaW9yaXR5IiE9PXQmJiIuc3YiIT09dCYmKHM9ITAsIWZmKHQpKSl0aHJvdyBuZXcgRXJyb3IocisiIGNvbnRhaW5zIGFuIGludmFsaWQga2V5ICgiK3QrIikgIitndShpKSsnLiAgS2V5cyBtdXN0IGJlIG5vbi1lbXB0eSBzdHJpbmdzIGFuZCBjYW5cJ3QgY29udGFpbiAiLiIsICIjIiwgIiQiLCAiLyIsICJbIiwgb3IgIl0iJyk7dmFyIG47bj10LDA8KHQ9aSkucGFydHNfLmxlbmd0aCYmKHQuYnl0ZUxlbmd0aF8rPTEpLHQucGFydHNfLnB1c2gobiksdC5ieXRlTGVuZ3RoXys9em8obiksdnUodCksU2YocixlLGkpLGU9KHQ9aSkucGFydHNfLnBvcCgpLHQuYnl0ZUxlbmd0aF8tPXpvKGUpLDA8dC5wYXJ0c18ubGVuZ3RoJiYtLXQuYnl0ZUxlbmd0aF99KSxvJiZzKXRocm93IG5ldyBFcnJvcihyKycgY29udGFpbnMgIi52YWx1ZSIgY2hpbGQgJytndShpKSsiIGluIGFkZGl0aW9uIHRvIGFjdHVhbCBjaGlsZHJlbi4iKX19LENmPWZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uLnBhdGgudG9TdHJpbmcoKTtpZigic3RyaW5nIiE9dHlwZW9mIG4ucmVwb0luZm8uaG9zdHx8MD09PW4ucmVwb0luZm8uaG9zdC5sZW5ndGh8fCFmZihuLnJlcG9JbmZvLm5hbWVzcGFjZSkmJiJsb2NhbGhvc3QiIT09bi5yZXBvSW5mby5ob3N0LnNwbGl0KCI6IilbMF18fDAhPT1yLmxlbmd0aCYmKHI9KHI9cikmJnIucmVwbGFjZSgvXlwvKlwuaW5mbyhcL3wkKS8sIi8iKSwhcGYocikpKXRocm93IG5ldyBFcnJvcihXbyh0LGUsITEpKydtdXN0IGJlIGEgdmFsaWQgZmlyZWJhc2UgVVJMIGFuZCB0aGUgcGF0aCBjYW5cJ3QgY29udGFpbiAiLiIsICIjIiwgIiQiLCAiWyIsIG9yICJdIi4nKX0sTmY9ZnVuY3Rpb24oKXt0aGlzLmV2ZW50TGlzdHNfPVtdLHRoaXMucmVjdXJzaW9uRGVwdGhfPTB9O2Z1bmN0aW9uIEFmKHQsZSl7Zm9yKHZhciBuPW51bGwscj0wO3I8ZS5sZW5ndGg7cisrKXt2YXIgaT1lW3JdLG89aS5nZXRQYXRoKCk7bnVsbD09PW58fGZ1KG8sbi5wYXRoKXx8KHQuZXZlbnRMaXN0c18ucHVzaChuKSxuPW51bGwpLChuPW51bGw9PT1uP3tldmVudHM6W10scGF0aDpvfTpuKS5ldmVudHMucHVzaChpKX1uJiZ0LmV2ZW50TGlzdHNfLnB1c2gobil9ZnVuY3Rpb24ga2YodCxlLG4pe0FmKHQsbiksUGYodCxmdW5jdGlvbih0KXtyZXR1cm4gZnUodCxlKX0pfWZ1bmN0aW9uIFJmKHQsZSxuKXtBZih0LG4pLFBmKHQsZnVuY3Rpb24odCl7cmV0dXJuIHB1KHQsZSl8fHB1KGUsdCl9KX1mdW5jdGlvbiBQZih0LGUpe3QucmVjdXJzaW9uRGVwdGhfKys7Zm9yKHZhciBuPSEwLHI9MDtyPHQuZXZlbnRMaXN0c18ubGVuZ3RoO3IrKyl7dmFyIGk9dC5ldmVudExpc3RzX1tyXTtpJiYoZShpLnBhdGgpPyhmdW5jdGlvbih0KXtmb3IodmFyIGU9MDtlPHQuZXZlbnRzLmxlbmd0aDtlKyspe3ZhciBuLHI9dC5ldmVudHNbZV07bnVsbCE9PXImJih0LmV2ZW50c1tlXT1udWxsLG49ci5nZXRFdmVudFJ1bm5lcigpLFFzJiZYcygiZXZlbnQ6ICIrci50b1N0cmluZygpKSxmYShuKSl9fSh0LmV2ZW50TGlzdHNfW3JdKSx0LmV2ZW50TGlzdHNfW3JdPW51bGwpOm49ITEpfW4mJih0LmV2ZW50TGlzdHNfPVtdKSx0LnJlY3Vyc2lvbkRlcHRoXy0tfXZhciBPZj0icmVwb19pbnRlcnJ1cHQiLERmPTI1LHhmPShMZi5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4odGhpcy5yZXBvSW5mb18uc2VjdXJlPyJodHRwczovLyI6Imh0dHA6Ly8iKSt0aGlzLnJlcG9JbmZvXy5ob3N0fSxMZik7ZnVuY3Rpb24gTGYodCxlLG4scil7dGhpcy5yZXBvSW5mb189dCx0aGlzLmZvcmNlUmVzdENsaWVudF89ZSx0aGlzLmFwcD1uLHRoaXMuYXV0aFRva2VuUHJvdmlkZXJfPXIsdGhpcy5kYXRhVXBkYXRlQ291bnQ9MCx0aGlzLnN0YXRzTGlzdGVuZXJfPW51bGwsdGhpcy5ldmVudFF1ZXVlXz1uZXcgTmYsdGhpcy5uZXh0V3JpdGVJZF89MSx0aGlzLmludGVyY2VwdFNlcnZlckRhdGFDYWxsYmFja189bnVsbCx0aGlzLm9uRGlzY29ubmVjdF89emMoKSx0aGlzLnRyYW5zYWN0aW9uUXVldWVUcmVlXz1uZXcgcmYsdGhpcy5wZXJzaXN0ZW50Q29ubmVjdGlvbl89bnVsbCx0aGlzLmtleT10aGlzLnJlcG9JbmZvXy50b1VSTFN0cmluZygpfWZ1bmN0aW9uIE1mKHMpe2lmKHMuc3RhdHNfPU5hKHMucmVwb0luZm9fKSxzLmZvcmNlUmVzdENsaWVudF98fDA8PSgib2JqZWN0Ij09dHlwZW9mIHdpbmRvdyYmd2luZG93Lm5hdmlnYXRvciYmd2luZG93Lm5hdmlnYXRvci51c2VyQWdlbnR8fCIiKS5zZWFyY2goL2dvb2dsZWJvdHxnb29nbGUgd2VibWFzdGVyIHRvb2xzfGJpbmdib3R8eWFob28hIHNsdXJwfGJhaWR1c3BpZGVyfHlhbmRleGJvdHxkdWNrZHVja2JvdC9pKSlzLnNlcnZlcl89bmV3IEtjKHMucmVwb0luZm9fLGZ1bmN0aW9uKHQsZSxuLHIpe2pmKHMsdCxlLG4scil9LHMuYXV0aFRva2VuUHJvdmlkZXJfKSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7cmV0dXJuIHFmKHMsITApfSwwKTtlbHNle3ZhciB0PXMuYXBwLm9wdGlvbnMuZGF0YWJhc2VBdXRoVmFyaWFibGVPdmVycmlkZTtpZihudWxsIT10KXtpZigib2JqZWN0IiE9dHlwZW9mIHQpdGhyb3cgbmV3IEVycm9yKCJPbmx5IG9iamVjdHMgYXJlIHN1cHBvcnRlZCBmb3Igb3B0aW9uIGRhdGFiYXNlQXV0aFZhcmlhYmxlT3ZlcnJpZGUiKTt0cnl7Um8odCl9Y2F0Y2godCl7dGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIGF1dGhPdmVycmlkZSBwcm92aWRlZDogIit0KX19cy5wZXJzaXN0ZW50Q29ubmVjdGlvbl89bmV3IFR1KHMucmVwb0luZm9fLHMuYXBwLm9wdGlvbnMuYXBwSWQsZnVuY3Rpb24odCxlLG4scil7amYocyx0LGUsbixyKX0sZnVuY3Rpb24odCl7cWYocyx0KX0sZnVuY3Rpb24odCl7dmFyIG47bj1zLGlhKHQsZnVuY3Rpb24odCxlKXtWZihuLHQsZSl9KX0scy5hdXRoVG9rZW5Qcm92aWRlcl8sdCkscy5zZXJ2ZXJfPXMucGVyc2lzdGVudENvbm5lY3Rpb25ffXZhciBlLG47cy5hdXRoVG9rZW5Qcm92aWRlcl8uYWRkVG9rZW5DaGFuZ2VMaXN0ZW5lcihmdW5jdGlvbih0KXtzLnNlcnZlcl8ucmVmcmVzaEF1dGhUb2tlbih0KX0pLHMuc3RhdHNSZXBvcnRlcl89KGU9cy5yZXBvSW5mb18sbj1mdW5jdGlvbigpe3JldHVybiBuZXcgWmMocy5zdGF0c18scy5zZXJ2ZXJfKX0sZT1lLnRvU3RyaW5nKCksQ2FbZV18fChDYVtlXT1uKCkpLENhW2VdKSxzLmluZm9EYXRhXz1uZXcgSGMscy5pbmZvU3luY1RyZWVfPW5ldyBObCh7c3RhcnRMaXN0ZW5pbmc6ZnVuY3Rpb24odCxlLG4scil7dmFyIGk9W10sbz1zLmluZm9EYXRhXy5nZXROb2RlKHQucGF0aCk7cmV0dXJuIG8uaXNFbXB0eSgpfHwoaT1QbChzLmluZm9TeW5jVHJlZV8sdC5wYXRoLG8pLHNldFRpbWVvdXQoZnVuY3Rpb24oKXtyKCJvayIpfSwwKSksaX0sc3RvcExpc3RlbmluZzpmdW5jdGlvbigpe319KSxWZihzLCJjb25uZWN0ZWQiLCExKSxzLnNlcnZlclN5bmNUcmVlXz1uZXcgTmwoe3N0YXJ0TGlzdGVuaW5nOmZ1bmN0aW9uKG4sdCxlLHIpe3JldHVybiBzLnNlcnZlcl8ubGlzdGVuKG4sZSx0LGZ1bmN0aW9uKHQsZSl7ZT1yKHQsZSk7UmYocy5ldmVudFF1ZXVlXyxuLnBhdGgsZSl9KSxbXX0sc3RvcExpc3RlbmluZzpmdW5jdGlvbih0LGUpe3Muc2VydmVyXy51bmxpc3Rlbih0LGUpfX0pfWZ1bmN0aW9uIEZmKHQpe3Q9dC5pbmZvRGF0YV8uZ2V0Tm9kZShuZXcgWmEoIi5pbmZvL3NlcnZlclRpbWVPZmZzZXQiKSkudmFsKCl8fDA7cmV0dXJuKG5ldyBEYXRlKS5nZXRUaW1lKCkrdH1mdW5jdGlvbiBVZih0KXtyZXR1cm4gWWwoe3RpbWVzdGFtcDpGZih0KX0pfWZ1bmN0aW9uIGpmKHQsZSxuLHIsaSl7dC5kYXRhVXBkYXRlQ291bnQrKzt2YXIgbz1uZXcgWmEoZSk7bj10LmludGVyY2VwdFNlcnZlckRhdGFDYWxsYmFja18/dC5pbnRlcmNlcHRTZXJ2ZXJEYXRhQ2FsbGJhY2tfKGUsbik6bjt2YXIgcyxhLHUsYz1bXSxoPW87MDwoYz1pP3I/KHM9TG8obixmdW5jdGlvbih0KXtyZXR1cm4gcGModCl9KSxmdW5jdGlvbih0LGUsbixyKXt2YXIgaT1WbCh0LHIpO2lmKGkpe3I9QmwoaSksaT1yLnBhdGgscj1yLnF1ZXJ5SWQsZT1odShpLGUpLG49VGguZnJvbU9iamVjdChuKTtyZXR1cm4gS2wodCxpLG5ldyBoaChyaChyKSxlLG4pKX1yZXR1cm5bXX0odC5zZXJ2ZXJTeW5jVHJlZV8sbyxzLGkpKTooZT1wYyhuKSxzPXQuc2VydmVyU3luY1RyZWVfLGE9byx1PWUsbnVsbD09KGk9VmwocyxlPWkpKT9bXTooZT1CbChpKSxpPWUucGF0aCxlPWUucXVlcnlJZCxhPWh1KGksYSksS2wocyxpLG5ldyB1aChyaChlKSxhLHUpKSkpOnI/KGE9TG8obixmdW5jdGlvbih0KXtyZXR1cm4gcGModCl9KSx1PXQuc2VydmVyU3luY1RyZWVfLHI9byxhPWEsYT1UaC5mcm9tT2JqZWN0KGEpLE1sKHUsbmV3IGhoKG5oKCkscixhKSkpOihuPXBjKG4pLFBsKHQuc2VydmVyU3luY1RyZWVfLG8sbikpKS5sZW5ndGgmJihoPSRmKHQsbykpLFJmKHQuZXZlbnRRdWV1ZV8saCxjKX1mdW5jdGlvbiBxZih0LGUpe1ZmKHQsImNvbm5lY3RlZCIsZSksITE9PT1lJiZmdW5jdGlvbihuKXtRZihuLCJvbkRpc2Nvbm5lY3RFdmVudHMiKTt2YXIgcj1VZihuKSxpPXpjKCk7WWMobi5vbkRpc2Nvbm5lY3RfLGV1KCksZnVuY3Rpb24odCxlKXtlPXRmKHQsZSxuLnNlcnZlclN5bmNUcmVlXyxyKTtRYyhpLHQsZSl9KTt2YXIgbz1bXTtZYyhpLGV1KCksZnVuY3Rpb24odCxlKXtvPW8uY29uY2F0KFBsKG4uc2VydmVyU3luY1RyZWVfLHQsZSkpO3Q9bnAobix0KTskZihuLHQpfSksbi5vbkRpc2Nvbm5lY3RfPXpjKCksUmYobi5ldmVudFF1ZXVlXyxldSgpLG8pfSh0KX1mdW5jdGlvbiBWZih0LGUsbil7ZT1uZXcgWmEoIi8uaW5mby8iK2UpLG49cGMobik7dC5pbmZvRGF0YV8udXBkYXRlU25hcHNob3QoZSxuKTtuPVBsKHQuaW5mb1N5bmNUcmVlXyxlLG4pO1JmKHQuZXZlbnRRdWV1ZV8sZSxuKX1mdW5jdGlvbiBCZih0KXtyZXR1cm4gdC5uZXh0V3JpdGVJZF8rK31mdW5jdGlvbiBLZihyLGksdCxlLG8pe1FmKHIsInNldCIse3BhdGg6aS50b1N0cmluZygpLHZhbHVlOnQscHJpb3JpdHk6ZX0pO3ZhciBuPVVmKHIpLHQ9cGModCxlKSxlPXhsKHIuc2VydmVyU3luY1RyZWVfLGkpLG49ZWYodCxlLG4pLHM9QmYociksbj1BbChyLnNlcnZlclN5bmNUcmVlXyxpLG4scywhMCk7QWYoci5ldmVudFF1ZXVlXyxuKSxyLnNlcnZlcl8ucHV0KGkudG9TdHJpbmcoKSx0LnZhbCghMCksZnVuY3Rpb24odCxlKXt2YXIgbj0ib2siPT09dDtufHxacygic2V0IGF0ICIraSsiIGZhaWxlZDogIit0KTtuPVJsKHIuc2VydmVyU3luY1RyZWVfLHMsIW4pO1JmKHIuZXZlbnRRdWV1ZV8saSxuKSxZZigwLG8sdCxlKX0pO3Q9bnAocixpKTskZihyLHQpLFJmKHIuZXZlbnRRdWV1ZV8sdCxbXSl9ZnVuY3Rpb24gV2YobixyLGkpe24uc2VydmVyXy5vbkRpc2Nvbm5lY3RDYW5jZWwoci50b1N0cmluZygpLGZ1bmN0aW9uKHQsZSl7Im9rIj09PXQmJiFmdW5jdGlvbiB0KG4sZSl7aWYoY3UoZSkpcmV0dXJuIG4udmFsdWU9bnVsbCxuLmNoaWxkcmVuLmNsZWFyKCksITA7aWYobnVsbCE9PW4udmFsdWUpe2lmKG4udmFsdWUuaXNMZWFmTm9kZSgpKXJldHVybiExO3ZhciByPW4udmFsdWU7cmV0dXJuIG4udmFsdWU9bnVsbCxyLmZvckVhY2hDaGlsZChKdSxmdW5jdGlvbih0LGUpe1FjKG4sbmV3IFphKHQpLGUpfSksdChuLGUpfWlmKDA8bi5jaGlsZHJlbi5zaXplKXJldHVybiByPW51KGUpLGU9aXUoZSksbi5jaGlsZHJlbi5oYXMocikmJnQobi5jaGlsZHJlbi5nZXQociksZSkmJm4uY2hpbGRyZW4uZGVsZXRlKHIpLDA9PT1uLmNoaWxkcmVuLnNpemU7cmV0dXJuITB9KG4ub25EaXNjb25uZWN0XyxyKSxZZigwLGksdCxlKX0pfWZ1bmN0aW9uIEhmKG4scix0LGkpe3ZhciBvPXBjKHQpO24uc2VydmVyXy5vbkRpc2Nvbm5lY3RQdXQoci50b1N0cmluZygpLG8udmFsKCEwKSxmdW5jdGlvbih0LGUpeyJvayI9PT10JiZRYyhuLm9uRGlzY29ubmVjdF8scixvKSxZZigwLGksdCxlKX0pfWZ1bmN0aW9uIEdmKHQsZSxuKXtuPSIuaW5mbyI9PT1udShlLnBhdGgpP0RsKHQuaW5mb1N5bmNUcmVlXyxlLG4pOkRsKHQuc2VydmVyU3luY1RyZWVfLGUsbik7a2YodC5ldmVudFF1ZXVlXyxlLnBhdGgsbil9ZnVuY3Rpb24gemYodCl7dC5wZXJzaXN0ZW50Q29ubmVjdGlvbl8mJnQucGVyc2lzdGVudENvbm5lY3Rpb25fLmludGVycnVwdChPZil9ZnVuY3Rpb24gUWYodCl7Zm9yKHZhciBlPVtdLG49MTtuPGFyZ3VtZW50cy5sZW5ndGg7bisrKWVbbi0xXT1hcmd1bWVudHNbbl07dmFyIHI9IiI7dC5wZXJzaXN0ZW50Q29ubmVjdGlvbl8mJihyPXQucGVyc2lzdGVudENvbm5lY3Rpb25fLmlkKyI6IiksWHMuYXBwbHkodm9pZCAwLG5vKFtyXSxlbyhlKSkpfWZ1bmN0aW9uIFlmKHQsbixyLGkpe24mJmZhKGZ1bmN0aW9uKCl7dmFyIHQsZTsib2siPT09cj9uKG51bGwpOihlPXQ9KHJ8fCJlcnJvciIpLnRvVXBwZXJDYXNlKCksaSYmKGUrPSI6ICIraSksKGU9bmV3IEVycm9yKGUpKS5jb2RlPXQsbihlKSl9KX1mdW5jdGlvbiBYZih0LGUsbil7cmV0dXJuIHhsKHQuc2VydmVyU3luY1RyZWVfLGUsbil8fHVjLkVNUFRZX05PREV9ZnVuY3Rpb24gSmYoZSx0KXt2YXIgbjsodD12b2lkIDA9PT10P2UudHJhbnNhY3Rpb25RdWV1ZVRyZWVfOnQpfHxlcChlLHQpLHNmKHQpPyhuPXRwKGUsdCksc28oMDxuLmxlbmd0aCwiU2VuZGluZyB6ZXJvIGxlbmd0aCB0cmFuc2FjdGlvbiBxdWV1ZSIpLG4uZXZlcnkoZnVuY3Rpb24odCl7cmV0dXJuIDA9PT10LnN0YXR1c30pJiZmdW5jdGlvbihpLG8scyl7Zm9yKHZhciB0PXMubWFwKGZ1bmN0aW9uKHQpe3JldHVybiB0LmN1cnJlbnRXcml0ZUlkfSksZT1YZihpLG8sdCksbj1lLHQ9ZS5oYXNoKCkscj0wO3I8cy5sZW5ndGg7cisrKXt2YXIgYT1zW3JdO3NvKDA9PT1hLnN0YXR1cywidHJ5VG9TZW5kVHJhbnNhY3Rpb25RdWV1ZV86IGl0ZW1zIGluIHF1ZXVlIHNob3VsZCBhbGwgYmUgcnVuLiIpLGEuc3RhdHVzPTEsYS5yZXRyeUNvdW50Kys7dmFyIHU9aHUobyxhLnBhdGgpO249bi51cGRhdGVDaGlsZCh1LGEuY3VycmVudE91dHB1dFNuYXBzaG90UmF3KX12YXIgZT1uLnZhbCghMCksYz1vO2kuc2VydmVyXy5wdXQoYy50b1N0cmluZygpLGUsZnVuY3Rpb24odCl7UWYoaSwidHJhbnNhY3Rpb24gcHV0IHJlc3BvbnNlIix7cGF0aDpjLnRvU3RyaW5nKCksc3RhdHVzOnR9KTt2YXIgZT1bXTtpZigib2siPT09dCl7Zm9yKHZhciBuPVtdLHI9MDtyPHMubGVuZ3RoO3IrKykhZnVuY3Rpb24odCl7c1t0XS5zdGF0dXM9MixlPWUuY29uY2F0KFJsKGkuc2VydmVyU3luY1RyZWVfLHNbdF0uY3VycmVudFdyaXRlSWQpKSxzW3RdLm9uQ29tcGxldGUmJm4ucHVzaChmdW5jdGlvbigpe3JldHVybiBzW3RdLm9uQ29tcGxldGUobnVsbCwhMCxzW3RdLmN1cnJlbnRPdXRwdXRTbmFwc2hvdFJlc29sdmVkKX0pLHNbdF0udW53YXRjaGVyKCl9KHIpO2VwKGksb2YoaS50cmFuc2FjdGlvblF1ZXVlVHJlZV8sbykpLEpmKGksaS50cmFuc2FjdGlvblF1ZXVlVHJlZV8pLFJmKGkuZXZlbnRRdWV1ZV8sbyxlKTtmb3Iocj0wO3I8bi5sZW5ndGg7cisrKWZhKG5bcl0pfWVsc2V7aWYoImRhdGFzdGFsZSI9PT10KWZvcihyPTA7cjxzLmxlbmd0aDtyKyspMz09PXNbcl0uc3RhdHVzP3Nbcl0uc3RhdHVzPTQ6c1tyXS5zdGF0dXM9MDtlbHNle1pzKCJ0cmFuc2FjdGlvbiBhdCAiK2MudG9TdHJpbmcoKSsiIGZhaWxlZDogIit0KTtmb3Iocj0wO3I8cy5sZW5ndGg7cisrKXNbcl0uc3RhdHVzPTQsc1tyXS5hYm9ydFJlYXNvbj10fSRmKGksbyl9fSx0KX0oZSxoZih0KSxuKSk6dWYodCkmJmNmKHQsZnVuY3Rpb24odCl7SmYoZSx0KX0pfWZ1bmN0aW9uICRmKHQsZSl7dmFyIG49WmYodCxlKSxlPWhmKG4pO3JldHVybiBmdW5jdGlvbih1LGMsaCl7aWYoMD09PWMubGVuZ3RoKXJldHVybjtmb3IodmFyIGw9W10sZj1bXSxwPWMuZmlsdGVyKGZ1bmN0aW9uKHQpe3JldHVybiAwPT09dC5zdGF0dXN9KS5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIHQuY3VycmVudFdyaXRlSWR9KSx0PTA7dDxjLmxlbmd0aDt0KyspIWZ1bmN0aW9uKHQpe3ZhciBlLG4scixpLG89Y1t0XSxzPWh1KGgsby5wYXRoKSxhPSExO3NvKG51bGwhPT1zLCJyZXJ1blRyYW5zYWN0aW9uc1VuZGVyTm9kZV86IHJlbGF0aXZlUGF0aCBzaG91bGQgbm90IGJlIG51bGwuIiksND09PW8uc3RhdHVzPyhhPSEwLGU9by5hYm9ydFJlYXNvbixmPWYuY29uY2F0KFJsKHUuc2VydmVyU3luY1RyZWVfLG8uY3VycmVudFdyaXRlSWQsITApKSk6MD09PW8uc3RhdHVzJiYoZj1vLnJldHJ5Q291bnQ+PURmPyhhPSEwLGU9Im1heHJldHJ5IixmLmNvbmNhdChSbCh1LnNlcnZlclN5bmNUcmVlXyxvLmN1cnJlbnRXcml0ZUlkLCEwKSkpOihuPVhmKHUsby5wYXRoLHApLG8uY3VycmVudElucHV0U25hcHNob3Q9bix2b2lkIDAhPT0oaT1jW3RdLnVwZGF0ZShuLnZhbCgpKSk/KFNmKCJ0cmFuc2FjdGlvbiBmYWlsZWQ6IERhdGEgcmV0dXJuZWQgIixpLG8ucGF0aCkscj1wYyhpKSwib2JqZWN0Ij09dHlwZW9mIGkmJm51bGwhPWkmJk9vKGksIi5wcmlvcml0eSIpfHwocj1yLnVwZGF0ZVByaW9yaXR5KG4uZ2V0UHJpb3JpdHkoKSkpLHM9by5jdXJyZW50V3JpdGVJZCxpPVVmKHUpLGk9ZWYocixuLGkpLG8uY3VycmVudE91dHB1dFNuYXBzaG90UmF3PXIsby5jdXJyZW50T3V0cHV0U25hcHNob3RSZXNvbHZlZD1pLG8uY3VycmVudFdyaXRlSWQ9QmYodSkscC5zcGxpY2UocC5pbmRleE9mKHMpLDEpLChmPWYuY29uY2F0KEFsKHUuc2VydmVyU3luY1RyZWVfLG8ucGF0aCxpLG8uY3VycmVudFdyaXRlSWQsby5hcHBseUxvY2FsbHkpKSkuY29uY2F0KFJsKHUuc2VydmVyU3luY1RyZWVfLHMsITApKSk6KGE9ITAsZT0ibm9kYXRhIixmLmNvbmNhdChSbCh1LnNlcnZlclN5bmNUcmVlXyxvLmN1cnJlbnRXcml0ZUlkLCEwKSkpKSksUmYodS5ldmVudFF1ZXVlXyxoLGYpLGY9W10sYSYmKGNbdF0uc3RhdHVzPTIsYT1jW3RdLnVud2F0Y2hlcixzZXRUaW1lb3V0KGEsTWF0aC5mbG9vcigwKSksY1t0XS5vbkNvbXBsZXRlJiYoIm5vZGF0YSI9PT1lP2wucHVzaChmdW5jdGlvbigpe3JldHVybiBjW3RdLm9uQ29tcGxldGUobnVsbCwhMSxjW3RdLmN1cnJlbnRJbnB1dFNuYXBzaG90KX0pOmwucHVzaChmdW5jdGlvbigpe3JldHVybiBjW3RdLm9uQ29tcGxldGUobmV3IEVycm9yKGUpLCExLG51bGwpfSkpKX0odCk7ZXAodSx1LnRyYW5zYWN0aW9uUXVldWVUcmVlXyk7Zm9yKHQ9MDt0PGwubGVuZ3RoO3QrKylmYShsW3RdKTtKZih1LHUudHJhbnNhY3Rpb25RdWV1ZVRyZWVfKX0odCx0cCh0LG4pLGUpLGV9ZnVuY3Rpb24gWmYodCxlKXtmb3IodmFyIG49dC50cmFuc2FjdGlvblF1ZXVlVHJlZV8scj1udShlKTtudWxsIT09ciYmdm9pZCAwPT09c2Yobik7KW49b2YobixyKSxyPW51KGU9aXUoZSkpO3JldHVybiBufWZ1bmN0aW9uIHRwKHQsZSl7dmFyIG49W107cmV0dXJuIGZ1bmN0aW9uIGUobix0LHIpe3ZhciBpPXNmKHQpO2lmKGkpZm9yKHZhciBvPTA7bzxpLmxlbmd0aDtvKyspci5wdXNoKGlbb10pO2NmKHQsZnVuY3Rpb24odCl7ZShuLHQscil9KX0odCxlLG4pLG4uc29ydChmdW5jdGlvbih0LGUpe3JldHVybiB0Lm9yZGVyLWUub3JkZXJ9KSxufWZ1bmN0aW9uIGVwKGUsdCl7dmFyIG49c2YodCk7aWYobil7Zm9yKHZhciByPTAsaT0wO2k8bi5sZW5ndGg7aSsrKTIhPT1uW2ldLnN0YXR1cyYmKG5bcl09bltpXSxyKyspO24ubGVuZ3RoPXIsYWYodCwwPG4ubGVuZ3RoP246dm9pZCAwKX1jZih0LGZ1bmN0aW9uKHQpe2VwKGUsdCl9KX1mdW5jdGlvbiBucChlLHQpe3ZhciBuPWhmKFpmKGUsdCkpLHQ9b2YoZS50cmFuc2FjdGlvblF1ZXVlVHJlZV8sdCk7cmV0dXJuIGZ1bmN0aW9uKHQsZSxuKXtmb3IodmFyIHI9bj90OnQucGFyZW50O251bGwhPT1yOyl7aWYoZShyKSlyZXR1cm47cj1yLnBhcmVudH19KHQsZnVuY3Rpb24odCl7cnAoZSx0KX0pLHJwKGUsdCksZnVuY3Rpb24gZSh0LG4scixpKXtyJiYhaSYmbih0KSxjZih0LGZ1bmN0aW9uKHQpe2UodCxuLCEwLGkpfSksciYmaSYmbih0KX0odCxmdW5jdGlvbih0KXtycChlLHQpfSksbn1mdW5jdGlvbiBycCh0LGUpe3ZhciBuPXNmKGUpO2lmKG4pe2Zvcih2YXIgcj1bXSxpPVtdLG89LTEscz0wO3M8bi5sZW5ndGg7cysrKTM9PT1uW3NdLnN0YXR1c3x8KDE9PT1uW3NdLnN0YXR1cz8oc28obz09PXMtMSwiQWxsIFNFTlQgaXRlbXMgc2hvdWxkIGJlIGF0IGJlZ2lubmluZyBvZiBxdWV1ZS4iKSxuW289c10uc3RhdHVzPTMsbltzXS5hYm9ydFJlYXNvbj0ic2V0Iik6KHNvKDA9PT1uW3NdLnN0YXR1cywiVW5leHBlY3RlZCB0cmFuc2FjdGlvbiBzdGF0dXMgaW4gYWJvcnQiKSxuW3NdLnVud2F0Y2hlcigpLGk9aS5jb25jYXQoUmwodC5zZXJ2ZXJTeW5jVHJlZV8sbltzXS5jdXJyZW50V3JpdGVJZCwhMCkpLG5bc10ub25Db21wbGV0ZSYmci5wdXNoKG5bc10ub25Db21wbGV0ZS5iaW5kKG51bGwsbmV3IEVycm9yKCJzZXQiKSwhMSxudWxsKSkpKTstMT09PW8/YWYoZSx2b2lkIDApOm4ubGVuZ3RoPW8rMSxSZih0LmV2ZW50UXVldWVfLGhmKGUpLGkpO2ZvcihzPTA7czxyLmxlbmd0aDtzKyspZmEocltzXSl9fXZhciBpcD1mdW5jdGlvbih0LGUpe3ZhciBuPW9wKHQpLHI9bi5uYW1lc3BhY2U7ImZpcmViYXNlLmNvbSI9PT1uLmRvbWFpbiYmJHMobi5ob3N0KyIgaXMgbm8gbG9uZ2VyIHN1cHBvcnRlZC4gUGxlYXNlIHVzZSA8WU9VUiBGSVJFQkFTRT4uZmlyZWJhc2Vpby5jb20gaW5zdGVhZCIpLHImJiJ1bmRlZmluZWQiIT09cnx8ImxvY2FsaG9zdCI9PT1uLmRvbWFpbnx8JHMoIkNhbm5vdCBwYXJzZSBGaXJlYmFzZSB1cmwuIFBsZWFzZSB1c2UgaHR0cHM6Ly88WU9VUiBGSVJFQkFTRT4uZmlyZWJhc2Vpby5jb20iKSxuLnNlY3VyZXx8InVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3cmJndpbmRvdy5sb2NhdGlvbiYmd2luZG93LmxvY2F0aW9uLnByb3RvY29sJiYtMSE9PXdpbmRvdy5sb2NhdGlvbi5wcm90b2NvbC5pbmRleE9mKCJodHRwczoiKSYmWnMoIkluc2VjdXJlIEZpcmViYXNlIGFjY2VzcyBmcm9tIGEgc2VjdXJlIHBhZ2UuIFBsZWFzZSB1c2UgaHR0cHMgaW4gY2FsbHMgdG8gbmV3IEZpcmViYXNlKCkuIik7dD0id3MiPT09bi5zY2hlbWV8fCJ3c3MiPT09bi5zY2hlbWU7cmV0dXJue3JlcG9JbmZvOm5ldyB3YShuLmhvc3Qsbi5zZWN1cmUscixlLHQsIiIsciE9PW4uc3ViZG9tYWluKSxwYXRoOm5ldyBaYShuLnBhdGhTdHJpbmcpfX0sb3A9ZnVuY3Rpb24odCl7dmFyIGUsbixyLGk9IiIsbz0iIixzPSIiLGE9IiIsdT0iIixjPSEwLGg9Imh0dHBzIixsPTQ0MztyZXR1cm4ic3RyaW5nIj09dHlwZW9mIHQmJigwPD0ocj10LmluZGV4T2YoIi8vIikpJiYoaD10LnN1YnN0cmluZygwLHItMSksdD10LnN1YnN0cmluZyhyKzIpKSwtMT09PShlPXQuaW5kZXhPZigiLyIpKSYmKGU9dC5sZW5ndGgpLC0xPT09KG49dC5pbmRleE9mKCI/IikpJiYobj10Lmxlbmd0aCksaT10LnN1YnN0cmluZygwLE1hdGgubWluKGUsbikpLGU8biYmKGE9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPSIiLG49dC5zcGxpdCgiLyIpLHI9MDtyPG4ubGVuZ3RoO3IrKylpZigwPG5bcl0ubGVuZ3RoKXt2YXIgaT1uW3JdO3RyeXtpPWRlY29kZVVSSUNvbXBvbmVudChpLnJlcGxhY2UoL1wrL2csIiAiKSl9Y2F0Y2godCl7fWUrPSIvIitpfXJldHVybiBlfSh0LnN1YnN0cmluZyhlLG4pKSksbj1mdW5jdGlvbih0KXt2YXIgZSxuLHI9e307Ij8iPT09dC5jaGFyQXQoMCkmJih0PXQuc3Vic3RyaW5nKDEpKTt0cnl7Zm9yKHZhciBpPXRvKHQuc3BsaXQoIiYiKSksbz1pLm5leHQoKTshby5kb25lO289aS5uZXh0KCkpe3ZhciBzLGE9by52YWx1ZTswIT09YS5sZW5ndGgmJigyPT09KHM9YS5zcGxpdCgiPSIpKS5sZW5ndGg/cltkZWNvZGVVUklDb21wb25lbnQoc1swXSldPWRlY29kZVVSSUNvbXBvbmVudChzWzFdKTpacygiSW52YWxpZCBxdWVyeSBzZWdtZW50ICciK2ErIicgaW4gcXVlcnkgJyIrdCsiJyIpKX19Y2F0Y2godCl7ZT17ZXJyb3I6dH19ZmluYWxseXt0cnl7byYmIW8uZG9uZSYmKG49aS5yZXR1cm4pJiZuLmNhbGwoaSl9ZmluYWxseXtpZihlKXRocm93IGUuZXJyb3J9fXJldHVybiByfSh0LnN1YnN0cmluZyhNYXRoLm1pbih0Lmxlbmd0aCxuKSkpLDA8PShyPWkuaW5kZXhPZigiOiIpKT8oYz0iaHR0cHMiPT09aHx8IndzcyI9PT1oLGw9cGFyc2VJbnQoaS5zdWJzdHJpbmcocisxKSwxMCkpOnI9aS5sZW5ndGgsImxvY2FsaG9zdCI9PT0ocj1pLnNsaWNlKDAscikpLnRvTG93ZXJDYXNlKCk/bz0ibG9jYWxob3N0IjpyLnNwbGl0KCIuIikubGVuZ3RoPD0yP289cjoocj1pLmluZGV4T2YoIi4iKSxzPWkuc3Vic3RyaW5nKDAscikudG9Mb3dlckNhc2UoKSxvPWkuc3Vic3RyaW5nKHIrMSksdT1zKSwibnMiaW4gbiYmKHU9bi5ucykpLHtob3N0OmkscG9ydDpsLGRvbWFpbjpvLHN1YmRvbWFpbjpzLHNlY3VyZTpjLHNjaGVtZTpoLHBhdGhTdHJpbmc6YSxuYW1lc3BhY2U6dX19LHNwPShhcC5wcm90b3R5cGUudmFsPWZ1bmN0aW9uKCl7cmV0dXJuIEtvKCJEYXRhU25hcHNob3QudmFsIiwwLDAsYXJndW1lbnRzLmxlbmd0aCksdGhpcy5ub2RlXy52YWwoKX0sYXAucHJvdG90eXBlLmV4cG9ydFZhbD1mdW5jdGlvbigpe3JldHVybiBLbygiRGF0YVNuYXBzaG90LmV4cG9ydFZhbCIsMCwwLGFyZ3VtZW50cy5sZW5ndGgpLHRoaXMubm9kZV8udmFsKCEwKX0sYXAucHJvdG90eXBlLnRvSlNPTj1mdW5jdGlvbigpe3JldHVybiBLbygiRGF0YVNuYXBzaG90LnRvSlNPTiIsMCwxLGFyZ3VtZW50cy5sZW5ndGgpLHRoaXMuZXhwb3J0VmFsKCl9LGFwLnByb3RvdHlwZS5leGlzdHM9ZnVuY3Rpb24oKXtyZXR1cm4gS28oIkRhdGFTbmFwc2hvdC5leGlzdHMiLDAsMCxhcmd1bWVudHMubGVuZ3RoKSwhdGhpcy5ub2RlXy5pc0VtcHR5KCl9LGFwLnByb3RvdHlwZS5jaGlsZD1mdW5jdGlvbih0KXtLbygiRGF0YVNuYXBzaG90LmNoaWxkIiwwLDEsYXJndW1lbnRzLmxlbmd0aCksdD1TdHJpbmcodCksd2YoIkRhdGFTbmFwc2hvdC5jaGlsZCIsMSx0LCExKTt2YXIgZT1uZXcgWmEodCksdD10aGlzLnJlZl8uY2hpbGQoZSk7cmV0dXJuIG5ldyBhcCh0aGlzLm5vZGVfLmdldENoaWxkKGUpLHQsSnUpfSxhcC5wcm90b3R5cGUuaGFzQ2hpbGQ9ZnVuY3Rpb24odCl7S28oIkRhdGFTbmFwc2hvdC5oYXNDaGlsZCIsMSwxLGFyZ3VtZW50cy5sZW5ndGgpLHdmKCJEYXRhU25hcHNob3QuaGFzQ2hpbGQiLDEsdCwhMSk7dD1uZXcgWmEodCk7cmV0dXJuIXRoaXMubm9kZV8uZ2V0Q2hpbGQodCkuaXNFbXB0eSgpfSxhcC5wcm90b3R5cGUuZ2V0UHJpb3JpdHk9ZnVuY3Rpb24oKXtyZXR1cm4gS28oIkRhdGFTbmFwc2hvdC5nZXRQcmlvcml0eSIsMCwwLGFyZ3VtZW50cy5sZW5ndGgpLHRoaXMubm9kZV8uZ2V0UHJpb3JpdHkoKS52YWwoKX0sYXAucHJvdG90eXBlLmZvckVhY2g9ZnVuY3Rpb24obil7dmFyIHI9dGhpcztyZXR1cm4gS28oIkRhdGFTbmFwc2hvdC5mb3JFYWNoIiwxLDEsYXJndW1lbnRzLmxlbmd0aCksSG8oIkRhdGFTbmFwc2hvdC5mb3JFYWNoIiwxLG4sITEpLCF0aGlzLm5vZGVfLmlzTGVhZk5vZGUoKSYmISF0aGlzLm5vZGVfLmZvckVhY2hDaGlsZCh0aGlzLmluZGV4XyxmdW5jdGlvbih0LGUpe3JldHVybiBuKG5ldyBhcChlLHIucmVmXy5jaGlsZCh0KSxKdSkpfSl9LGFwLnByb3RvdHlwZS5oYXNDaGlsZHJlbj1mdW5jdGlvbigpe3JldHVybiBLbygiRGF0YVNuYXBzaG90Lmhhc0NoaWxkcmVuIiwwLDAsYXJndW1lbnRzLmxlbmd0aCksIXRoaXMubm9kZV8uaXNMZWFmTm9kZSgpJiYhdGhpcy5ub2RlXy5pc0VtcHR5KCl9LE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhcC5wcm90b3R5cGUsImtleSIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJlZl8uZ2V0S2V5KCl9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksYXAucHJvdG90eXBlLm51bUNoaWxkcmVuPWZ1bmN0aW9uKCl7cmV0dXJuIEtvKCJEYXRhU25hcHNob3QubnVtQ2hpbGRyZW4iLDAsMCxhcmd1bWVudHMubGVuZ3RoKSx0aGlzLm5vZGVfLm51bUNoaWxkcmVuKCl9LGFwLnByb3RvdHlwZS5nZXRSZWY9ZnVuY3Rpb24oKXtyZXR1cm4gS28oIkRhdGFTbmFwc2hvdC5yZWYiLDAsMCxhcmd1bWVudHMubGVuZ3RoKSx0aGlzLnJlZl99LE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhcC5wcm90b3R5cGUsInJlZiIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmdldFJlZigpfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLGFwKTtmdW5jdGlvbiBhcCh0LGUsbil7dGhpcy5ub2RlXz10LHRoaXMucmVmXz1lLHRoaXMuaW5kZXhfPW59dmFyIHVwPShjcC5wcm90b3R5cGUuY2FuY2VsPWZ1bmN0aW9uKHQpe0tvKCJPbkRpc2Nvbm5lY3QuY2FuY2VsIiwwLDEsYXJndW1lbnRzLmxlbmd0aCksSG8oIk9uRGlzY29ubmVjdC5jYW5jZWwiLDEsdCwhMCk7dmFyIGU9bmV3IGxvO3JldHVybiBXZih0aGlzLnJlcG9fLHRoaXMucGF0aF8sZS53cmFwQ2FsbGJhY2sodCkpLGUucHJvbWlzZX0sY3AucHJvdG90eXBlLnJlbW92ZT1mdW5jdGlvbih0KXtLbygiT25EaXNjb25uZWN0LnJlbW92ZSIsMCwxLGFyZ3VtZW50cy5sZW5ndGgpLF9mKCJPbkRpc2Nvbm5lY3QucmVtb3ZlIix0aGlzLnBhdGhfKSxIbygiT25EaXNjb25uZWN0LnJlbW92ZSIsMSx0LCEwKTt2YXIgZT1uZXcgbG87cmV0dXJuIEhmKHRoaXMucmVwb18sdGhpcy5wYXRoXyxudWxsLGUud3JhcENhbGxiYWNrKHQpKSxlLnByb21pc2V9LGNwLnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24odCxlKXtLbygiT25EaXNjb25uZWN0LnNldCIsMSwyLGFyZ3VtZW50cy5sZW5ndGgpLF9mKCJPbkRpc2Nvbm5lY3Quc2V0Iix0aGlzLnBhdGhfKSx2ZigiT25EaXNjb25uZWN0LnNldCIsMSx0LHRoaXMucGF0aF8sITEpLEhvKCJPbkRpc2Nvbm5lY3Quc2V0IiwyLGUsITApO3ZhciBuPW5ldyBsbztyZXR1cm4gSGYodGhpcy5yZXBvXyx0aGlzLnBhdGhfLHQsbi53cmFwQ2FsbGJhY2soZSkpLG4ucHJvbWlzZX0sY3AucHJvdG90eXBlLnNldFdpdGhQcmlvcml0eT1mdW5jdGlvbih0LGUsbil7S28oIk9uRGlzY29ubmVjdC5zZXRXaXRoUHJpb3JpdHkiLDIsMyxhcmd1bWVudHMubGVuZ3RoKSxfZigiT25EaXNjb25uZWN0LnNldFdpdGhQcmlvcml0eSIsdGhpcy5wYXRoXyksdmYoIk9uRGlzY29ubmVjdC5zZXRXaXRoUHJpb3JpdHkiLDEsdCx0aGlzLnBhdGhfLCExKSx5ZigiT25EaXNjb25uZWN0LnNldFdpdGhQcmlvcml0eSIsMixlLCExKSxIbygiT25EaXNjb25uZWN0LnNldFdpdGhQcmlvcml0eSIsMyxuLCEwKTt2YXIgcixpLG8scyxhPW5ldyBsbztyZXR1cm4gcj10aGlzLnJlcG9fLGk9dGhpcy5wYXRoXyx0PXQsZT1lLG89YS53cmFwQ2FsbGJhY2sobikscz1wYyh0LGUpLHIuc2VydmVyXy5vbkRpc2Nvbm5lY3RQdXQoaS50b1N0cmluZygpLHMudmFsKCEwKSxmdW5jdGlvbih0LGUpeyJvayI9PT10JiZRYyhyLm9uRGlzY29ubmVjdF8saSxzKSxZZigwLG8sdCxlKX0pLGEucHJvbWlzZX0sY3AucHJvdG90eXBlLnVwZGF0ZT1mdW5jdGlvbih0LGUpe2lmKEtvKCJPbkRpc2Nvbm5lY3QudXBkYXRlIiwxLDIsYXJndW1lbnRzLmxlbmd0aCksX2YoIk9uRGlzY29ubmVjdC51cGRhdGUiLHRoaXMucGF0aF8pLEFycmF5LmlzQXJyYXkodCkpe2Zvcih2YXIgbj17fSxyPTA7cjx0Lmxlbmd0aDsrK3IpblsiIityXT10W3JdO3Q9bixacygiUGFzc2luZyBhbiBBcnJheSB0byBmaXJlYmFzZS5kYXRhYmFzZS5vbkRpc2Nvbm5lY3QoKS51cGRhdGUoKSBpcyBkZXByZWNhdGVkLiBVc2Ugc2V0KCkgaWYgeW91IHdhbnQgdG8gb3ZlcndyaXRlIHRoZSBleGlzdGluZyBkYXRhLCBvciBhbiBPYmplY3Qgd2l0aCBpbnRlZ2VyIGtleXMgaWYgeW91IHJlYWxseSBkbyB3YW50IHRvIG9ubHkgdXBkYXRlIHNvbWUgb2YgdGhlIGNoaWxkcmVuLiIpfWdmKCJPbkRpc2Nvbm5lY3QudXBkYXRlIiwxLHQsdGhpcy5wYXRoXywhMSksSG8oIk9uRGlzY29ubmVjdC51cGRhdGUiLDIsZSwhMCk7dmFyIGk9bmV3IGxvO3JldHVybiBmdW5jdGlvbihuLHIsaSxvKXtpZih4byhpKSlyZXR1cm4gWHMoIm9uRGlzY29ubmVjdCgpLnVwZGF0ZSgpIGNhbGxlZCB3aXRoIGVtcHR5IGRhdGEuICBEb24ndCBkbyBhbnl0aGluZy4iKSxZZigwLG8sIm9rIix2b2lkIDApO24uc2VydmVyXy5vbkRpc2Nvbm5lY3RNZXJnZShyLnRvU3RyaW5nKCksaSxmdW5jdGlvbih0LGUpeyJvayI9PT10JiZpYShpLGZ1bmN0aW9uKHQsZSl7ZT1wYyhlKTtRYyhuLm9uRGlzY29ubmVjdF8sdXUocix0KSxlKX0pLFlmKDAsbyx0LGUpfSl9KHRoaXMucmVwb18sdGhpcy5wYXRoXyx0LGkud3JhcENhbGxiYWNrKGUpKSxpLnByb21pc2V9LGNwKTtmdW5jdGlvbiBjcCh0LGUpe3RoaXMucmVwb189dCx0aGlzLnBhdGhfPWV9dmFyIGhwPShscC5wcm90b3R5cGUuZ2V0UGF0aD1mdW5jdGlvbigpe3ZhciB0PXRoaXMuc25hcHNob3QuZ2V0UmVmKCk7cmV0dXJuKCJ2YWx1ZSI9PT10aGlzLmV2ZW50VHlwZT90OnQuZ2V0UGFyZW50KCkpLnBhdGh9LGxwLnByb3RvdHlwZS5nZXRFdmVudFR5cGU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5ldmVudFR5cGV9LGxwLnByb3RvdHlwZS5nZXRFdmVudFJ1bm5lcj1mdW5jdGlvbigpe3JldHVybiB0aGlzLmV2ZW50UmVnaXN0cmF0aW9uLmdldEV2ZW50UnVubmVyKHRoaXMpfSxscC5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nZXRQYXRoKCkudG9TdHJpbmcoKSsiOiIrdGhpcy5ldmVudFR5cGUrIjoiK1JvKHRoaXMuc25hcHNob3QuZXhwb3J0VmFsKCkpfSxscCk7ZnVuY3Rpb24gbHAodCxlLG4scil7dGhpcy5ldmVudFR5cGU9dCx0aGlzLmV2ZW50UmVnaXN0cmF0aW9uPWUsdGhpcy5zbmFwc2hvdD1uLHRoaXMucHJldk5hbWU9cn12YXIgZnA9KHBwLnByb3RvdHlwZS5nZXRQYXRoPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucGF0aH0scHAucHJvdG90eXBlLmdldEV2ZW50VHlwZT1mdW5jdGlvbigpe3JldHVybiJjYW5jZWwifSxwcC5wcm90b3R5cGUuZ2V0RXZlbnRSdW5uZXI9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5ldmVudFJlZ2lzdHJhdGlvbi5nZXRFdmVudFJ1bm5lcih0aGlzKX0scHAucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucGF0aC50b1N0cmluZygpKyI6Y2FuY2VsIn0scHApO2Z1bmN0aW9uIHBwKHQsZSxuKXt0aGlzLmV2ZW50UmVnaXN0cmF0aW9uPXQsdGhpcy5lcnJvcj1lLHRoaXMucGF0aD1ufXZhciBkcD0odnAucHJvdG90eXBlLnJlc3BvbmRzVG89ZnVuY3Rpb24odCl7cmV0dXJuInZhbHVlIj09PXR9LHZwLnByb3RvdHlwZS5jcmVhdGVFdmVudD1mdW5jdGlvbih0LGUpe3ZhciBuPWUuZ2V0UXVlcnlQYXJhbXMoKS5nZXRJbmRleCgpO3JldHVybiBuZXcgaHAoInZhbHVlIix0aGlzLG5ldyBzcCh0LnNuYXBzaG90Tm9kZSxlLmdldFJlZigpLG4pKX0sdnAucHJvdG90eXBlLmdldEV2ZW50UnVubmVyPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuY29udGV4dF87aWYoImNhbmNlbCI9PT10LmdldEV2ZW50VHlwZSgpKXtzbyh0aGlzLmNhbmNlbENhbGxiYWNrXywiUmFpc2luZyBhIGNhbmNlbCBldmVudCBvbiBhIGxpc3RlbmVyIHdpdGggbm8gY2FuY2VsIGNhbGxiYWNrIik7dmFyIG49dGhpcy5jYW5jZWxDYWxsYmFja187cmV0dXJuIGZ1bmN0aW9uKCl7bi5jYWxsKGUsdC5lcnJvcil9fXZhciByPXRoaXMuY2FsbGJhY2tfO3JldHVybiBmdW5jdGlvbigpe3IuY2FsbChlLHQuc25hcHNob3QpfX0sdnAucHJvdG90eXBlLmNyZWF0ZUNhbmNlbEV2ZW50PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMuY2FuY2VsQ2FsbGJhY2tfP25ldyBmcCh0aGlzLHQsZSk6bnVsbH0sdnAucHJvdG90eXBlLm1hdGNoZXM9ZnVuY3Rpb24odCl7cmV0dXJuIHQgaW5zdGFuY2VvZiB2cCYmKCF0LmNhbGxiYWNrX3x8IXRoaXMuY2FsbGJhY2tffHx0LmNhbGxiYWNrXz09PXRoaXMuY2FsbGJhY2tfJiZ0LmNvbnRleHRfPT09dGhpcy5jb250ZXh0Xyl9LHZwLnByb3RvdHlwZS5oYXNBbnlDYWxsYmFjaz1mdW5jdGlvbigpe3JldHVybiBudWxsIT09dGhpcy5jYWxsYmFja199LHZwKTtmdW5jdGlvbiB2cCh0LGUsbil7dGhpcy5jYWxsYmFja189dCx0aGlzLmNhbmNlbENhbGxiYWNrXz1lLHRoaXMuY29udGV4dF89bn12YXIgZ3AseXA9KG1wLnByb3RvdHlwZS5yZXNwb25kc1RvPWZ1bmN0aW9uKHQpe3Q9ImNoaWxkcmVuX3JlbW92ZWQiPT09KHQ9ImNoaWxkcmVuX2FkZGVkIj09PXQ/ImNoaWxkX2FkZGVkIjp0KT8iY2hpbGRfcmVtb3ZlZCI6dDtyZXR1cm4gT28odGhpcy5jYWxsYmFja3NfLHQpfSxtcC5wcm90b3R5cGUuY3JlYXRlQ2FuY2VsRXZlbnQ9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5jYW5jZWxDYWxsYmFja18/bmV3IGZwKHRoaXMsdCxlKTpudWxsfSxtcC5wcm90b3R5cGUuY3JlYXRlRXZlbnQ9ZnVuY3Rpb24odCxlKXtzbyhudWxsIT10LmNoaWxkTmFtZSwiQ2hpbGQgZXZlbnRzIHNob3VsZCBoYXZlIGEgY2hpbGROYW1lLiIpO3ZhciBuPWUuZ2V0UmVmKCkuY2hpbGQodC5jaGlsZE5hbWUpLGU9ZS5nZXRRdWVyeVBhcmFtcygpLmdldEluZGV4KCk7cmV0dXJuIG5ldyBocCh0LnR5cGUsdGhpcyxuZXcgc3AodC5zbmFwc2hvdE5vZGUsbixlKSx0LnByZXZOYW1lKX0sbXAucHJvdG90eXBlLmdldEV2ZW50UnVubmVyPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuY29udGV4dF87aWYoImNhbmNlbCI9PT10LmdldEV2ZW50VHlwZSgpKXtzbyh0aGlzLmNhbmNlbENhbGxiYWNrXywiUmFpc2luZyBhIGNhbmNlbCBldmVudCBvbiBhIGxpc3RlbmVyIHdpdGggbm8gY2FuY2VsIGNhbGxiYWNrIik7dmFyIG49dGhpcy5jYW5jZWxDYWxsYmFja187cmV0dXJuIGZ1bmN0aW9uKCl7bi5jYWxsKGUsdC5lcnJvcil9fXZhciByPXRoaXMuY2FsbGJhY2tzX1t0LmV2ZW50VHlwZV07cmV0dXJuIGZ1bmN0aW9uKCl7ci5jYWxsKGUsdC5zbmFwc2hvdCx0LnByZXZOYW1lKX19LG1wLnByb3RvdHlwZS5tYXRjaGVzPWZ1bmN0aW9uKGUpe3ZhciBuPXRoaXM7aWYoZSBpbnN0YW5jZW9mIG1wKXtpZighdGhpcy5jYWxsYmFja3NffHwhZS5jYWxsYmFja3NfKXJldHVybiEwO2lmKHRoaXMuY29udGV4dF89PT1lLmNvbnRleHRfKXt2YXIgdD1PYmplY3Qua2V5cyhlLmNhbGxiYWNrc18pLHI9T2JqZWN0LmtleXModGhpcy5jYWxsYmFja3NfKSxpPXQubGVuZ3RoO2lmKGk9PT1yLmxlbmd0aCl7aWYoMSE9PWkpcmV0dXJuIHIuZXZlcnkoZnVuY3Rpb24odCl7cmV0dXJuIGUuY2FsbGJhY2tzX1t0XT09PW4uY2FsbGJhY2tzX1t0XX0pO3Q9dFswXSxyPXJbMF07cmV0dXJuIShyIT09dHx8ZS5jYWxsYmFja3NfW3RdJiZ0aGlzLmNhbGxiYWNrc19bcl0mJmUuY2FsbGJhY2tzX1t0XSE9PXRoaXMuY2FsbGJhY2tzX1tyXSl9fX1yZXR1cm4hMX0sbXAucHJvdG90eXBlLmhhc0FueUNhbGxiYWNrPWZ1bmN0aW9uKCl7cmV0dXJuIG51bGwhPT10aGlzLmNhbGxiYWNrc199LG1wKTtmdW5jdGlvbiBtcCh0LGUsbil7dGhpcy5jYWxsYmFja3NfPXQsdGhpcy5jYW5jZWxDYWxsYmFja189ZSx0aGlzLmNvbnRleHRfPW59dmFyIGJwPShPYmplY3QuZGVmaW5lUHJvcGVydHkod3AsIl9fcmVmZXJlbmNlQ29uc3RydWN0b3IiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gc28oZ3AsIlJlZmVyZW5jZS50cyBoYXMgbm90IGJlZW4gbG9hZGVkIiksZ3B9LHNldDpmdW5jdGlvbih0KXtncD10fSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLHdwLnZhbGlkYXRlUXVlcnlFbmRwb2ludHNfPWZ1bmN0aW9uKHQpe3ZhciBlPW51bGwsbj1udWxsO2lmKHQuaGFzU3RhcnQoKSYmKGU9dC5nZXRJbmRleFN0YXJ0VmFsdWUoKSksdC5oYXNFbmQoKSYmKG49dC5nZXRJbmRleEVuZFZhbHVlKCkpLHQuZ2V0SW5kZXgoKT09PVB1KXt2YXIgcj0iUXVlcnk6IFdoZW4gb3JkZXJpbmcgYnkga2V5LCB5b3UgbWF5IG9ubHkgcGFzcyBvbmUgYXJndW1lbnQgdG8gc3RhcnRBdCgpLCBlbmRBdCgpLCBvciBlcXVhbFRvKCkuIixpPSJRdWVyeTogV2hlbiBvcmRlcmluZyBieSBrZXksIHRoZSBhcmd1bWVudCBwYXNzZWQgdG8gc3RhcnRBdCgpLCBzdGFydEFmdGVyKCksIGVuZEF0KCksIGVuZEJlZm9yZSgpLCBvciBlcXVhbFRvKCkgbXVzdCBiZSBhIHN0cmluZy4iO2lmKHQuaGFzU3RhcnQoKSl7aWYodC5nZXRJbmRleFN0YXJ0TmFtZSgpIT09dGEpdGhyb3cgbmV3IEVycm9yKHIpO2lmKCJzdHJpbmciIT10eXBlb2YgZSl0aHJvdyBuZXcgRXJyb3IoaSl9aWYodC5oYXNFbmQoKSl7aWYodC5nZXRJbmRleEVuZE5hbWUoKSE9PWVhKXRocm93IG5ldyBFcnJvcihyKTtpZigic3RyaW5nIiE9dHlwZW9mIG4pdGhyb3cgbmV3IEVycm9yKGkpfX1lbHNlIGlmKHQuZ2V0SW5kZXgoKT09PUp1KXtpZihudWxsIT1lJiYhZGYoZSl8fG51bGwhPW4mJiFkZihuKSl0aHJvdyBuZXcgRXJyb3IoIlF1ZXJ5OiBXaGVuIG9yZGVyaW5nIGJ5IHByaW9yaXR5LCB0aGUgZmlyc3QgYXJndW1lbnQgcGFzc2VkIHRvIHN0YXJ0QXQoKSwgc3RhcnRBZnRlcigpIGVuZEF0KCksIGVuZEJlZm9yZSgpLCBvciBlcXVhbFRvKCkgbXVzdCBiZSBhIHZhbGlkIHByaW9yaXR5IHZhbHVlIChudWxsLCBhIG51bWJlciwgb3IgYSBzdHJpbmcpLiIpfWVsc2UgaWYoc28odC5nZXRJbmRleCgpaW5zdGFuY2VvZiBnY3x8dC5nZXRJbmRleCgpPT09VGMsInVua25vd24gaW5kZXggdHlwZS4iKSxudWxsIT1lJiYib2JqZWN0Ij09dHlwZW9mIGV8fG51bGwhPW4mJiJvYmplY3QiPT10eXBlb2Ygbil0aHJvdyBuZXcgRXJyb3IoIlF1ZXJ5OiBGaXJzdCBhcmd1bWVudCBwYXNzZWQgdG8gc3RhcnRBdCgpLCBzdGFydEFmdGVyKCksIGVuZEF0KCksIGVuZEJlZm9yZSgpLCBvciBlcXVhbFRvKCkgY2Fubm90IGJlIGFuIG9iamVjdC4iKX0sd3AudmFsaWRhdGVMaW1pdF89ZnVuY3Rpb24odCl7aWYodC5oYXNTdGFydCgpJiZ0Lmhhc0VuZCgpJiZ0Lmhhc0xpbWl0KCkmJiF0Lmhhc0FuY2hvcmVkTGltaXQoKSl0aHJvdyBuZXcgRXJyb3IoIlF1ZXJ5OiBDYW4ndCBjb21iaW5lIHN0YXJ0QXQoKSwgc3RhcnRBZnRlcigpLCBlbmRBdCgpLCBlbmRCZWZvcmUoKSwgYW5kIGxpbWl0KCkuIFVzZSBsaW1pdFRvRmlyc3QoKSBvciBsaW1pdFRvTGFzdCgpIGluc3RlYWQuIil9LHdwLnByb3RvdHlwZS52YWxpZGF0ZU5vUHJldmlvdXNPcmRlckJ5Q2FsbF89ZnVuY3Rpb24odCl7aWYoITA9PT10aGlzLm9yZGVyQnlDYWxsZWRfKXRocm93IG5ldyBFcnJvcih0KyI6IFlvdSBjYW4ndCBjb21iaW5lIG11bHRpcGxlIG9yZGVyQnkgY2FsbHMuIil9LHdwLnByb3RvdHlwZS5nZXRRdWVyeVBhcmFtcz1mdW5jdGlvbigpe3JldHVybiB0aGlzLnF1ZXJ5UGFyYW1zX30sd3AucHJvdG90eXBlLmdldFJlZj1mdW5jdGlvbigpe3JldHVybiBLbygiUXVlcnkucmVmIiwwLDAsYXJndW1lbnRzLmxlbmd0aCksbmV3IHdwLl9fcmVmZXJlbmNlQ29uc3RydWN0b3IodGhpcy5kYXRhYmFzZSx0aGlzLnBhdGgpfSx3cC5wcm90b3R5cGUub249ZnVuY3Rpb24odCxlLG4scil7S28oIlF1ZXJ5Lm9uIiwyLDQsYXJndW1lbnRzLmxlbmd0aCksbWYoIlF1ZXJ5Lm9uIiwxLHQsITEpLEhvKCJRdWVyeS5vbiIsMixlLCExKTtuPXdwLmdldENhbmNlbEFuZENvbnRleHRBcmdzXygiUXVlcnkub24iLG4scik7cmV0dXJuInZhbHVlIj09PXQ/dGhpcy5vblZhbHVlRXZlbnQoZSxuLmNhbmNlbCxuLmNvbnRleHQpOigocj17fSlbdF09ZSx0aGlzLm9uQ2hpbGRFdmVudChyLG4uY2FuY2VsLG4uY29udGV4dCkpLGV9LHdwLnByb3RvdHlwZS5vblZhbHVlRXZlbnQ9ZnVuY3Rpb24odCxlLG4pe249bmV3IGRwKHQsZXx8bnVsbCxufHxudWxsKTtHZih0aGlzLnJlcG8sdGhpcyxuKX0sd3AucHJvdG90eXBlLm9uQ2hpbGRFdmVudD1mdW5jdGlvbih0LGUsbil7bj1uZXcgeXAodCxlLG4pO0dmKHRoaXMucmVwbyx0aGlzLG4pfSx3cC5wcm90b3R5cGUub2ZmPWZ1bmN0aW9uKHQsZSxuKXtLbygiUXVlcnkub2ZmIiwwLDMsYXJndW1lbnRzLmxlbmd0aCksbWYoIlF1ZXJ5Lm9mZiIsMSx0LCEwKSxIbygiUXVlcnkub2ZmIiwyLGUsITApLEdvKCJRdWVyeS5vZmYiLDMsbiwhMCk7dmFyIHI9bnVsbCxpPW51bGw7InZhbHVlIj09PXQ/cj1uZXcgZHAoZXx8bnVsbCxudWxsLG58fG51bGwpOnQmJihlJiYoKGk9e30pW3RdPWUpLHI9bmV3IHlwKGksbnVsbCxufHxudWxsKSksaT10aGlzLnJlcG8sbj1yLG49Ii5pbmZvIj09PW51KChyPXRoaXMpLnBhdGgpP09sKGkuaW5mb1N5bmNUcmVlXyxyLG4pOk9sKGkuc2VydmVyU3luY1RyZWVfLHIsbiksa2YoaS5ldmVudFF1ZXVlXyxyLnBhdGgsbil9LHdwLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24oKXt2YXIgbixyLHQsZT10aGlzO3JldHVybiBuPXRoaXMucmVwbyxyPXRoaXMsKG51bGwhPSh0PUxsKG4uc2VydmVyU3luY1RyZWVfLHIpKT9Qcm9taXNlLnJlc29sdmUodCk6bi5zZXJ2ZXJfLmdldChyKS50aGVuKGZ1bmN0aW9uKHQpe3ZhciBlPXBjKHQpLHQ9UGwobi5zZXJ2ZXJTeW5jVHJlZV8sci5wYXRoLGUpO3JldHVybiBrZihuLmV2ZW50UXVldWVfLHIucGF0aCx0KSxQcm9taXNlLnJlc29sdmUoZSl9LGZ1bmN0aW9uKHQpe3JldHVybiBRZihuLCJnZXQgZm9yIHF1ZXJ5ICIrUm8ocikrIiBmYWlsZWQ6ICIrdCksUHJvbWlzZS5yZWplY3QobmV3IEVycm9yKHQpKX0pKS50aGVuKGZ1bmN0aW9uKHQpe3JldHVybiBuZXcgc3AodCxlLmdldFJlZigpLGUuZ2V0UXVlcnlQYXJhbXMoKS5nZXRJbmRleCgpKX0pfSx3cC5wcm90b3R5cGUub25jZT1mdW5jdGlvbihlLG4sdCxyKXt2YXIgaT10aGlzO0tvKCJRdWVyeS5vbmNlIiwxLDQsYXJndW1lbnRzLmxlbmd0aCksbWYoIlF1ZXJ5Lm9uY2UiLDEsZSwhMSksSG8oIlF1ZXJ5Lm9uY2UiLDIsbiwhMCk7dmFyIG89d3AuZ2V0Q2FuY2VsQW5kQ29udGV4dEFyZ3NfKCJRdWVyeS5vbmNlIix0LHIpLHM9ITAsYT1uZXcgbG87YS5wcm9taXNlLmNhdGNoKGZ1bmN0aW9uKCl7fSk7dmFyIHU9ZnVuY3Rpb24odCl7cyYmKHM9ITEsaS5vZmYoZSx1KSxuJiZuLmJpbmQoby5jb250ZXh0KSh0KSxhLnJlc29sdmUodCkpfTtyZXR1cm4gdGhpcy5vbihlLHUsZnVuY3Rpb24odCl7aS5vZmYoZSx1KSxvLmNhbmNlbCYmby5jYW5jZWwuYmluZChvLmNvbnRleHQpKHQpLGEucmVqZWN0KHQpfSksYS5wcm9taXNlfSx3cC5wcm90b3R5cGUubGltaXRUb0ZpcnN0PWZ1bmN0aW9uKHQpe2lmKEtvKCJRdWVyeS5saW1pdFRvRmlyc3QiLDEsMSxhcmd1bWVudHMubGVuZ3RoKSwibnVtYmVyIiE9dHlwZW9mIHR8fE1hdGguZmxvb3IodCkhPT10fHx0PD0wKXRocm93IG5ldyBFcnJvcigiUXVlcnkubGltaXRUb0ZpcnN0OiBGaXJzdCBhcmd1bWVudCBtdXN0IGJlIGEgcG9zaXRpdmUgaW50ZWdlci4iKTtpZih0aGlzLnF1ZXJ5UGFyYW1zXy5oYXNMaW1pdCgpKXRocm93IG5ldyBFcnJvcigiUXVlcnkubGltaXRUb0ZpcnN0OiBMaW1pdCB3YXMgYWxyZWFkeSBzZXQgKGJ5IGFub3RoZXIgY2FsbCB0byBsaW1pdCwgbGltaXRUb0ZpcnN0LCBvciBsaW1pdFRvTGFzdCkuIik7cmV0dXJuIG5ldyB3cCh0aGlzLmRhdGFiYXNlLHRoaXMucGF0aCwoZT10aGlzLnF1ZXJ5UGFyYW1zXyx0PXQsKGU9ZS5jb3B5KCkpLmxpbWl0U2V0Xz0hMCxlLmxpbWl0Xz10LGUudmlld0Zyb21fPSJsIixlKSx0aGlzLm9yZGVyQnlDYWxsZWRfKTt2YXIgZX0sd3AucHJvdG90eXBlLmxpbWl0VG9MYXN0PWZ1bmN0aW9uKHQpe2lmKEtvKCJRdWVyeS5saW1pdFRvTGFzdCIsMSwxLGFyZ3VtZW50cy5sZW5ndGgpLCJudW1iZXIiIT10eXBlb2YgdHx8TWF0aC5mbG9vcih0KSE9PXR8fHQ8PTApdGhyb3cgbmV3IEVycm9yKCJRdWVyeS5saW1pdFRvTGFzdDogRmlyc3QgYXJndW1lbnQgbXVzdCBiZSBhIHBvc2l0aXZlIGludGVnZXIuIik7aWYodGhpcy5xdWVyeVBhcmFtc18uaGFzTGltaXQoKSl0aHJvdyBuZXcgRXJyb3IoIlF1ZXJ5LmxpbWl0VG9MYXN0OiBMaW1pdCB3YXMgYWxyZWFkeSBzZXQgKGJ5IGFub3RoZXIgY2FsbCB0byBsaW1pdCwgbGltaXRUb0ZpcnN0LCBvciBsaW1pdFRvTGFzdCkuIik7cmV0dXJuIG5ldyB3cCh0aGlzLmRhdGFiYXNlLHRoaXMucGF0aCwoZT10aGlzLnF1ZXJ5UGFyYW1zXyx0PXQsKGU9ZS5jb3B5KCkpLmxpbWl0U2V0Xz0hMCxlLmxpbWl0Xz10LGUudmlld0Zyb21fPSJyIixlKSx0aGlzLm9yZGVyQnlDYWxsZWRfKTt2YXIgZX0sd3AucHJvdG90eXBlLm9yZGVyQnlDaGlsZD1mdW5jdGlvbih0KXtpZihLbygiUXVlcnkub3JkZXJCeUNoaWxkIiwxLDEsYXJndW1lbnRzLmxlbmd0aCksIiRrZXkiPT09dCl0aHJvdyBuZXcgRXJyb3IoJ1F1ZXJ5Lm9yZGVyQnlDaGlsZDogIiRrZXkiIGlzIGludmFsaWQuICBVc2UgUXVlcnkub3JkZXJCeUtleSgpIGluc3RlYWQuJyk7aWYoIiRwcmlvcml0eSI9PT10KXRocm93IG5ldyBFcnJvcignUXVlcnkub3JkZXJCeUNoaWxkOiAiJHByaW9yaXR5IiBpcyBpbnZhbGlkLiAgVXNlIFF1ZXJ5Lm9yZGVyQnlQcmlvcml0eSgpIGluc3RlYWQuJyk7aWYoIiR2YWx1ZSI9PT10KXRocm93IG5ldyBFcnJvcignUXVlcnkub3JkZXJCeUNoaWxkOiAiJHZhbHVlIiBpcyBpbnZhbGlkLiAgVXNlIFF1ZXJ5Lm9yZGVyQnlWYWx1ZSgpIGluc3RlYWQuJyk7d2YoIlF1ZXJ5Lm9yZGVyQnlDaGlsZCIsMSx0LCExKSx0aGlzLnZhbGlkYXRlTm9QcmV2aW91c09yZGVyQnlDYWxsXygiUXVlcnkub3JkZXJCeUNoaWxkIik7dD1uZXcgWmEodCk7aWYoY3UodCkpdGhyb3cgbmV3IEVycm9yKCJRdWVyeS5vcmRlckJ5Q2hpbGQ6IGNhbm5vdCBwYXNzIGluIGVtcHR5IHBhdGguICBVc2UgUXVlcnkub3JkZXJCeVZhbHVlKCkgaW5zdGVhZC4iKTt0PW5ldyBnYyh0KSx0PXFjKHRoaXMucXVlcnlQYXJhbXNfLHQpO3JldHVybiB3cC52YWxpZGF0ZVF1ZXJ5RW5kcG9pbnRzXyh0KSxuZXcgd3AodGhpcy5kYXRhYmFzZSx0aGlzLnBhdGgsdCwhMCl9LHdwLnByb3RvdHlwZS5vcmRlckJ5S2V5PWZ1bmN0aW9uKCl7S28oIlF1ZXJ5Lm9yZGVyQnlLZXkiLDAsMCxhcmd1bWVudHMubGVuZ3RoKSx0aGlzLnZhbGlkYXRlTm9QcmV2aW91c09yZGVyQnlDYWxsXygiUXVlcnkub3JkZXJCeUtleSIpO3ZhciB0PXFjKHRoaXMucXVlcnlQYXJhbXNfLFB1KTtyZXR1cm4gd3AudmFsaWRhdGVRdWVyeUVuZHBvaW50c18odCksbmV3IHdwKHRoaXMuZGF0YWJhc2UsdGhpcy5wYXRoLHQsITApfSx3cC5wcm90b3R5cGUub3JkZXJCeVByaW9yaXR5PWZ1bmN0aW9uKCl7S28oIlF1ZXJ5Lm9yZGVyQnlQcmlvcml0eSIsMCwwLGFyZ3VtZW50cy5sZW5ndGgpLHRoaXMudmFsaWRhdGVOb1ByZXZpb3VzT3JkZXJCeUNhbGxfKCJRdWVyeS5vcmRlckJ5UHJpb3JpdHkiKTt2YXIgdD1xYyh0aGlzLnF1ZXJ5UGFyYW1zXyxKdSk7cmV0dXJuIHdwLnZhbGlkYXRlUXVlcnlFbmRwb2ludHNfKHQpLG5ldyB3cCh0aGlzLmRhdGFiYXNlLHRoaXMucGF0aCx0LCEwKX0sd3AucHJvdG90eXBlLm9yZGVyQnlWYWx1ZT1mdW5jdGlvbigpe0tvKCJRdWVyeS5vcmRlckJ5VmFsdWUiLDAsMCxhcmd1bWVudHMubGVuZ3RoKSx0aGlzLnZhbGlkYXRlTm9QcmV2aW91c09yZGVyQnlDYWxsXygiUXVlcnkub3JkZXJCeVZhbHVlIik7dmFyIHQ9cWModGhpcy5xdWVyeVBhcmFtc18sVGMpO3JldHVybiB3cC52YWxpZGF0ZVF1ZXJ5RW5kcG9pbnRzXyh0KSxuZXcgd3AodGhpcy5kYXRhYmFzZSx0aGlzLnBhdGgsdCwhMCl9LHdwLnByb3RvdHlwZS5zdGFydEF0PWZ1bmN0aW9uKHQsZSl7dm9pZCAwPT09dCYmKHQ9bnVsbCksS28oIlF1ZXJ5LnN0YXJ0QXQiLDAsMixhcmd1bWVudHMubGVuZ3RoKSx2ZigiUXVlcnkuc3RhcnRBdCIsMSx0LHRoaXMucGF0aCwhMCksYmYoIlF1ZXJ5LnN0YXJ0QXQiLDIsZSwhMCk7dmFyIG49VWModGhpcy5xdWVyeVBhcmFtc18sdCxlKTtpZih3cC52YWxpZGF0ZUxpbWl0XyhuKSx3cC52YWxpZGF0ZVF1ZXJ5RW5kcG9pbnRzXyhuKSx0aGlzLnF1ZXJ5UGFyYW1zXy5oYXNTdGFydCgpKXRocm93IG5ldyBFcnJvcigiUXVlcnkuc3RhcnRBdDogU3RhcnRpbmcgcG9pbnQgd2FzIGFscmVhZHkgc2V0IChieSBhbm90aGVyIGNhbGwgdG8gc3RhcnRBdCBvciBlcXVhbFRvKS4iKTtyZXR1cm4gdm9pZCAwPT09dCYmKGU9dD1udWxsKSxuZXcgd3AodGhpcy5kYXRhYmFzZSx0aGlzLnBhdGgsbix0aGlzLm9yZGVyQnlDYWxsZWRfKX0sd3AucHJvdG90eXBlLnN0YXJ0QWZ0ZXI9ZnVuY3Rpb24odCxlKXt2b2lkIDA9PT10JiYodD1udWxsKSxLbygiUXVlcnkuc3RhcnRBZnRlciIsMCwyLGFyZ3VtZW50cy5sZW5ndGgpLHZmKCJRdWVyeS5zdGFydEFmdGVyIiwxLHQsdGhpcy5wYXRoLCExKSxiZigiUXVlcnkuc3RhcnRBZnRlciIsMixlLCEwKTt2YXIgbixlPShuPXRoaXMucXVlcnlQYXJhbXNfLHQ9dCxlPWUsKGU9bi5pbmRleF89PT1QdT9VYyhuLHQ9InN0cmluZyI9PXR5cGVvZiB0P2JjKHQpOnQsZSk6VWMobix0LG51bGw9PWU/ZWE6YmMoZSkpKS5zdGFydEFmdGVyU2V0Xz0hMCxlKTtpZih3cC52YWxpZGF0ZUxpbWl0XyhlKSx3cC52YWxpZGF0ZVF1ZXJ5RW5kcG9pbnRzXyhlKSx0aGlzLnF1ZXJ5UGFyYW1zXy5oYXNTdGFydCgpKXRocm93IG5ldyBFcnJvcigiUXVlcnkuc3RhcnRBZnRlcjogU3RhcnRpbmcgcG9pbnQgd2FzIGFscmVhZHkgc2V0IChieSBhbm90aGVyIGNhbGwgdG8gc3RhcnRBdCwgc3RhcnRBZnRlciBvciBlcXVhbFRvKS4iKTtyZXR1cm4gbmV3IHdwKHRoaXMuZGF0YWJhc2UsdGhpcy5wYXRoLGUsdGhpcy5vcmRlckJ5Q2FsbGVkXyl9LHdwLnByb3RvdHlwZS5lbmRBdD1mdW5jdGlvbih0LGUpe3ZvaWQgMD09PXQmJih0PW51bGwpLEtvKCJRdWVyeS5lbmRBdCIsMCwyLGFyZ3VtZW50cy5sZW5ndGgpLHZmKCJRdWVyeS5lbmRBdCIsMSx0LHRoaXMucGF0aCwhMCksYmYoIlF1ZXJ5LmVuZEF0IiwyLGUsITApO2U9amModGhpcy5xdWVyeVBhcmFtc18sdCxlKTtpZih3cC52YWxpZGF0ZUxpbWl0XyhlKSx3cC52YWxpZGF0ZVF1ZXJ5RW5kcG9pbnRzXyhlKSx0aGlzLnF1ZXJ5UGFyYW1zXy5oYXNFbmQoKSl0aHJvdyBuZXcgRXJyb3IoIlF1ZXJ5LmVuZEF0OiBFbmRpbmcgcG9pbnQgd2FzIGFscmVhZHkgc2V0IChieSBhbm90aGVyIGNhbGwgdG8gZW5kQXQsIGVuZEJlZm9yZSwgb3IgZXF1YWxUbykuIik7cmV0dXJuIG5ldyB3cCh0aGlzLmRhdGFiYXNlLHRoaXMucGF0aCxlLHRoaXMub3JkZXJCeUNhbGxlZF8pfSx3cC5wcm90b3R5cGUuZW5kQmVmb3JlPWZ1bmN0aW9uKHQsZSl7dm9pZCAwPT09dCYmKHQ9bnVsbCksS28oIlF1ZXJ5LmVuZEJlZm9yZSIsMCwyLGFyZ3VtZW50cy5sZW5ndGgpLHZmKCJRdWVyeS5lbmRCZWZvcmUiLDEsdCx0aGlzLnBhdGgsITEpLGJmKCJRdWVyeS5lbmRCZWZvcmUiLDIsZSwhMCk7dmFyIG4sZT0obj10aGlzLnF1ZXJ5UGFyYW1zXyx0PXQsZT1lLChlPW4uaW5kZXhfPT09UHU/amMobix0PSJzdHJpbmciPT10eXBlb2YgdD93Yyh0KTp0LGUpOmpjKG4sdCxudWxsPT1lP3RhOndjKGUpKSkuZW5kQmVmb3JlU2V0Xz0hMCxlKTtpZih3cC52YWxpZGF0ZUxpbWl0XyhlKSx3cC52YWxpZGF0ZVF1ZXJ5RW5kcG9pbnRzXyhlKSx0aGlzLnF1ZXJ5UGFyYW1zXy5oYXNFbmQoKSl0aHJvdyBuZXcgRXJyb3IoIlF1ZXJ5LmVuZEJlZm9yZTogRW5kaW5nIHBvaW50IHdhcyBhbHJlYWR5IHNldCAoYnkgYW5vdGhlciBjYWxsIHRvIGVuZEF0LCBlbmRCZWZvcmUsIG9yIGVxdWFsVG8pLiIpO3JldHVybiBuZXcgd3AodGhpcy5kYXRhYmFzZSx0aGlzLnBhdGgsZSx0aGlzLm9yZGVyQnlDYWxsZWRfKX0sd3AucHJvdG90eXBlLmVxdWFsVG89ZnVuY3Rpb24odCxlKXtpZihLbygiUXVlcnkuZXF1YWxUbyIsMSwyLGFyZ3VtZW50cy5sZW5ndGgpLHZmKCJRdWVyeS5lcXVhbFRvIiwxLHQsdGhpcy5wYXRoLCExKSxiZigiUXVlcnkuZXF1YWxUbyIsMixlLCEwKSx0aGlzLnF1ZXJ5UGFyYW1zXy5oYXNTdGFydCgpKXRocm93IG5ldyBFcnJvcigiUXVlcnkuZXF1YWxUbzogU3RhcnRpbmcgcG9pbnQgd2FzIGFscmVhZHkgc2V0IChieSBhbm90aGVyIGNhbGwgdG8gc3RhcnRBdC9zdGFydEFmdGVyIG9yIGVxdWFsVG8pLiIpO2lmKHRoaXMucXVlcnlQYXJhbXNfLmhhc0VuZCgpKXRocm93IG5ldyBFcnJvcigiUXVlcnkuZXF1YWxUbzogRW5kaW5nIHBvaW50IHdhcyBhbHJlYWR5IHNldCAoYnkgYW5vdGhlciBjYWxsIHRvIGVuZEF0L2VuZEJlZm9yZSBvciBlcXVhbFRvKS4iKTtyZXR1cm4gdGhpcy5zdGFydEF0KHQsZSkuZW5kQXQodCxlKX0sd3AucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIEtvKCJRdWVyeS50b1N0cmluZyIsMCwwLGFyZ3VtZW50cy5sZW5ndGgpLHRoaXMucmVwby50b1N0cmluZygpK2Z1bmN0aW9uKHQpe2Zvcih2YXIgZT0iIixuPXQucGllY2VOdW1fO248dC5waWVjZXNfLmxlbmd0aDtuKyspIiIhPT10LnBpZWNlc19bbl0mJihlKz0iLyIrZW5jb2RlVVJJQ29tcG9uZW50KFN0cmluZyh0LnBpZWNlc19bbl0pKSk7cmV0dXJuIGV8fCIvIn0odGhpcy5wYXRoKX0sd3AucHJvdG90eXBlLnRvSlNPTj1mdW5jdGlvbigpe3JldHVybiBLbygiUXVlcnkudG9KU09OIiwwLDEsYXJndW1lbnRzLmxlbmd0aCksdGhpcy50b1N0cmluZygpfSx3cC5wcm90b3R5cGUucXVlcnlPYmplY3Q9ZnVuY3Rpb24oKXtyZXR1cm4gdD10aGlzLnF1ZXJ5UGFyYW1zXyxuPXt9LHQuc3RhcnRTZXRfJiYobi5zcD10LmluZGV4U3RhcnRWYWx1ZV8sdC5zdGFydE5hbWVTZXRfJiYobi5zbj10LmluZGV4U3RhcnROYW1lXykpLHQuZW5kU2V0XyYmKG4uZXA9dC5pbmRleEVuZFZhbHVlXyx0LmVuZE5hbWVTZXRfJiYobi5lbj10LmluZGV4RW5kTmFtZV8pKSx0LmxpbWl0U2V0XyYmKG4ubD10LmxpbWl0XywiIj09PShlPXQudmlld0Zyb21fKSYmKGU9dC5pc1ZpZXdGcm9tTGVmdCgpPyJsIjoiciIpLG4udmY9ZSksdC5pbmRleF8hPT1KdSYmKG4uaT10LmluZGV4Xy50b1N0cmluZygpKSxuO3ZhciB0LGUsbn0sd3AucHJvdG90eXBlLnF1ZXJ5SWRlbnRpZmllcj1mdW5jdGlvbigpe3ZhciB0PXRoaXMucXVlcnlPYmplY3QoKSx0PXJhKHQpO3JldHVybiJ7fSI9PT10PyJkZWZhdWx0Ijp0fSx3cC5wcm90b3R5cGUuaXNFcXVhbD1mdW5jdGlvbih0KXtpZihLbygiUXVlcnkuaXNFcXVhbCIsMSwxLGFyZ3VtZW50cy5sZW5ndGgpLCEodCBpbnN0YW5jZW9mIHdwKSl0aHJvdyBuZXcgRXJyb3IoIlF1ZXJ5LmlzRXF1YWwgZmFpbGVkOiBGaXJzdCBhcmd1bWVudCBtdXN0IGJlIGFuIGluc3RhbmNlIG9mIGZpcmViYXNlLmRhdGFiYXNlLlF1ZXJ5LiIpO3ZhciBlPXRoaXMucmVwbz09PXQucmVwbyxuPWZ1KHRoaXMucGF0aCx0LnBhdGgpLHQ9dGhpcy5xdWVyeUlkZW50aWZpZXIoKT09PXQucXVlcnlJZGVudGlmaWVyKCk7cmV0dXJuIGUmJm4mJnR9LHdwLmdldENhbmNlbEFuZENvbnRleHRBcmdzXz1mdW5jdGlvbih0LGUsbil7dmFyIHI9e2NhbmNlbDpudWxsLGNvbnRleHQ6bnVsbH07aWYoZSYmbilyLmNhbmNlbD1lLEhvKHQsMyxyLmNhbmNlbCwhMCksci5jb250ZXh0PW4sR28odCw0LHIuY29udGV4dCwhMCk7ZWxzZSBpZihlKWlmKCJvYmplY3QiPT10eXBlb2YgZSYmbnVsbCE9PWUpci5jb250ZXh0PWU7ZWxzZXtpZigiZnVuY3Rpb24iIT10eXBlb2YgZSl0aHJvdyBuZXcgRXJyb3IoV28odCwzLCEwKSsiIG11c3QgZWl0aGVyIGJlIGEgY2FuY2VsIGNhbGxiYWNrIG9yIGEgY29udGV4dCBvYmplY3QuIik7ci5jYW5jZWw9ZX1yZXR1cm4gcn0sT2JqZWN0LmRlZmluZVByb3BlcnR5KHdwLnByb3RvdHlwZSwicmVmIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0UmVmKCl9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksd3ApO2Z1bmN0aW9uIHdwKHQsZSxuLHIpe3RoaXMuZGF0YWJhc2U9dCx0aGlzLnBhdGg9ZSx0aGlzLnF1ZXJ5UGFyYW1zXz1uLHRoaXMub3JkZXJCeUNhbGxlZF89cix0aGlzLnJlcG89dC5yZXBvX312YXIgX3A9KElwLnByb3RvdHlwZS50b0pTT049ZnVuY3Rpb24oKXtyZXR1cm4gS28oIlRyYW5zYWN0aW9uUmVzdWx0LnRvSlNPTiIsMCwxLGFyZ3VtZW50cy5sZW5ndGgpLHtjb21taXR0ZWQ6dGhpcy5jb21taXR0ZWQsc25hcHNob3Q6dGhpcy5zbmFwc2hvdC50b0pTT04oKX19LElwKTtmdW5jdGlvbiBJcCh0LGUpe3RoaXMuY29tbWl0dGVkPXQsdGhpcy5zbmFwc2hvdD1lfXZhciBUcCxFcCxTcD0oWGkoQ3AsVHA9YnApLENwLnByb3RvdHlwZS5nZXRLZXk9ZnVuY3Rpb24oKXtyZXR1cm4gS28oIlJlZmVyZW5jZS5rZXkiLDAsMCxhcmd1bWVudHMubGVuZ3RoKSxjdSh0aGlzLnBhdGgpP251bGw6b3UodGhpcy5wYXRoKX0sQ3AucHJvdG90eXBlLmNoaWxkPWZ1bmN0aW9uKHQpe3ZhciBlLG4scixpO3JldHVybiBLbygiUmVmZXJlbmNlLmNoaWxkIiwxLDEsYXJndW1lbnRzLmxlbmd0aCksIm51bWJlciI9PXR5cGVvZiB0P3Q9U3RyaW5nKHQpOnQgaW5zdGFuY2VvZiBaYXx8KG51bGw9PT1udSh0aGlzLnBhdGgpPyhlPSJSZWZlcmVuY2UuY2hpbGQiLGk9IShuPTEpLHI9KHI9dCkmJnIucmVwbGFjZSgvXlwvKlwuaW5mbyhcL3wkKS8sIi8iKSx3ZihlLG4scixpKSk6d2YoIlJlZmVyZW5jZS5jaGlsZCIsMSx0LCExKSksbmV3IENwKHRoaXMuZGF0YWJhc2UsdXUodGhpcy5wYXRoLHQpKX0sQ3AucHJvdG90eXBlLmdldFBhcmVudD1mdW5jdGlvbigpe0tvKCJSZWZlcmVuY2UucGFyZW50IiwwLDAsYXJndW1lbnRzLmxlbmd0aCk7dmFyIHQ9YXUodGhpcy5wYXRoKTtyZXR1cm4gbnVsbD09PXQ/bnVsbDpuZXcgQ3AodGhpcy5kYXRhYmFzZSx0KX0sQ3AucHJvdG90eXBlLmdldFJvb3Q9ZnVuY3Rpb24oKXtLbygiUmVmZXJlbmNlLnJvb3QiLDAsMCxhcmd1bWVudHMubGVuZ3RoKTtmb3IodmFyIHQ9dGhpcztudWxsIT09dC5nZXRQYXJlbnQoKTspdD10LmdldFBhcmVudCgpO3JldHVybiB0fSxDcC5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKHQsZSl7S28oIlJlZmVyZW5jZS5zZXQiLDEsMixhcmd1bWVudHMubGVuZ3RoKSxfZigiUmVmZXJlbmNlLnNldCIsdGhpcy5wYXRoKSx2ZigiUmVmZXJlbmNlLnNldCIsMSx0LHRoaXMucGF0aCwhMSksSG8oIlJlZmVyZW5jZS5zZXQiLDIsZSwhMCk7dmFyIG49bmV3IGxvO3JldHVybiBLZih0aGlzLnJlcG8sdGhpcy5wYXRoLHQsbnVsbCxuLndyYXBDYWxsYmFjayhlKSksbi5wcm9taXNlfSxDcC5wcm90b3R5cGUudXBkYXRlPWZ1bmN0aW9uKHQsZSl7aWYoS28oIlJlZmVyZW5jZS51cGRhdGUiLDEsMixhcmd1bWVudHMubGVuZ3RoKSxfZigiUmVmZXJlbmNlLnVwZGF0ZSIsdGhpcy5wYXRoKSxBcnJheS5pc0FycmF5KHQpKXtmb3IodmFyIG49e30scj0wO3I8dC5sZW5ndGg7KytyKW5bIiIrcl09dFtyXTt0PW4sWnMoIlBhc3NpbmcgYW4gQXJyYXkgdG8gRmlyZWJhc2UudXBkYXRlKCkgaXMgZGVwcmVjYXRlZC4gVXNlIHNldCgpIGlmIHlvdSB3YW50IHRvIG92ZXJ3cml0ZSB0aGUgZXhpc3RpbmcgZGF0YSwgb3IgYW4gT2JqZWN0IHdpdGggaW50ZWdlciBrZXlzIGlmIHlvdSByZWFsbHkgZG8gd2FudCB0byBvbmx5IHVwZGF0ZSBzb21lIG9mIHRoZSBjaGlsZHJlbi4iKX1nZigiUmVmZXJlbmNlLnVwZGF0ZSIsMSx0LHRoaXMucGF0aCwhMSksSG8oIlJlZmVyZW5jZS51cGRhdGUiLDIsZSwhMCk7dmFyIGk9bmV3IGxvO3JldHVybiBmdW5jdGlvbihpLG8sdCxzKXtRZihpLCJ1cGRhdGUiLHtwYXRoOm8udG9TdHJpbmcoKSx2YWx1ZTp0fSk7dmFyIGEsZSxuPSEwLHI9VWYoaSksdT17fTtpYSh0LGZ1bmN0aW9uKHQsZSl7bj0hMSx1W3RdPXRmKHV1KG8sdCkscGMoZSksaS5zZXJ2ZXJTeW5jVHJlZV8scil9KSxuPyhYcygidXBkYXRlKCkgY2FsbGVkIHdpdGggZW1wdHkgZGF0YS4gIERvbid0IGRvIGFueXRoaW5nLiIpLFlmKDAscywib2siLHZvaWQgMCkpOihhPUJmKGkpLGU9a2woaS5zZXJ2ZXJTeW5jVHJlZV8sbyx1LGEpLEFmKGkuZXZlbnRRdWV1ZV8sZSksaS5zZXJ2ZXJfLm1lcmdlKG8udG9TdHJpbmcoKSx0LGZ1bmN0aW9uKHQsZSl7dmFyIG49Im9rIj09PXQ7bnx8WnMoInVwZGF0ZSBhdCAiK28rIiBmYWlsZWQ6ICIrdCk7dmFyIHI9UmwoaS5zZXJ2ZXJTeW5jVHJlZV8sYSwhbiksbj0wPHIubGVuZ3RoPyRmKGksbyk6bztSZihpLmV2ZW50UXVldWVfLG4sciksWWYoMCxzLHQsZSl9KSxpYSh0LGZ1bmN0aW9uKHQpe3Q9bnAoaSx1dShvLHQpKTskZihpLHQpfSksUmYoaS5ldmVudFF1ZXVlXyxvLFtdKSl9KHRoaXMucmVwbyx0aGlzLnBhdGgsdCxpLndyYXBDYWxsYmFjayhlKSksaS5wcm9taXNlfSxDcC5wcm90b3R5cGUuc2V0V2l0aFByaW9yaXR5PWZ1bmN0aW9uKHQsZSxuKXtpZihLbygiUmVmZXJlbmNlLnNldFdpdGhQcmlvcml0eSIsMiwzLGFyZ3VtZW50cy5sZW5ndGgpLF9mKCJSZWZlcmVuY2Uuc2V0V2l0aFByaW9yaXR5Iix0aGlzLnBhdGgpLHZmKCJSZWZlcmVuY2Uuc2V0V2l0aFByaW9yaXR5IiwxLHQsdGhpcy5wYXRoLCExKSx5ZigiUmVmZXJlbmNlLnNldFdpdGhQcmlvcml0eSIsMixlLCExKSxIbygiUmVmZXJlbmNlLnNldFdpdGhQcmlvcml0eSIsMyxuLCEwKSwiLmxlbmd0aCI9PT10aGlzLmdldEtleSgpfHwiLmtleXMiPT09dGhpcy5nZXRLZXkoKSl0aHJvdyJSZWZlcmVuY2Uuc2V0V2l0aFByaW9yaXR5IGZhaWxlZDogIit0aGlzLmdldEtleSgpKyIgaXMgYSByZWFkLW9ubHkgb2JqZWN0LiI7dmFyIHI9bmV3IGxvO3JldHVybiBLZih0aGlzLnJlcG8sdGhpcy5wYXRoLHQsZSxyLndyYXBDYWxsYmFjayhuKSksci5wcm9taXNlfSxDcC5wcm90b3R5cGUucmVtb3ZlPWZ1bmN0aW9uKHQpe3JldHVybiBLbygiUmVmZXJlbmNlLnJlbW92ZSIsMCwxLGFyZ3VtZW50cy5sZW5ndGgpLF9mKCJSZWZlcmVuY2UucmVtb3ZlIix0aGlzLnBhdGgpLEhvKCJSZWZlcmVuY2UucmVtb3ZlIiwxLHQsITApLHRoaXMuc2V0KG51bGwsdCl9LENwLnByb3RvdHlwZS50cmFuc2FjdGlvbj1mdW5jdGlvbih0LHIsZSl7dmFyIGk9dGhpcztpZihLbygiUmVmZXJlbmNlLnRyYW5zYWN0aW9uIiwxLDMsYXJndW1lbnRzLmxlbmd0aCksX2YoIlJlZmVyZW5jZS50cmFuc2FjdGlvbiIsdGhpcy5wYXRoKSxIbygiUmVmZXJlbmNlLnRyYW5zYWN0aW9uIiwxLHQsITEpLEhvKCJSZWZlcmVuY2UudHJhbnNhY3Rpb24iLDIsciwhMCksZnVuY3Rpb24odCxlLG4scil7aWYoKCFyfHx2b2lkIDAhPT1uKSYmImJvb2xlYW4iIT10eXBlb2Ygbil0aHJvdyBuZXcgRXJyb3IoV28odCxlLHIpKyJtdXN0IGJlIGEgYm9vbGVhbi4iKX0oIlJlZmVyZW5jZS50cmFuc2FjdGlvbiIsMyxlLCEwKSwiLmxlbmd0aCI9PT10aGlzLmdldEtleSgpfHwiLmtleXMiPT09dGhpcy5nZXRLZXkoKSl0aHJvdyJSZWZlcmVuY2UudHJhbnNhY3Rpb24gZmFpbGVkOiAiK3RoaXMuZ2V0S2V5KCkrIiBpcyBhIHJlYWQtb25seSBvYmplY3QuIjt2b2lkIDA9PT1lJiYoZT0hMCk7dmFyIG89bmV3IGxvOyJmdW5jdGlvbiI9PXR5cGVvZiByJiZvLnByb21pc2UuY2F0Y2goZnVuY3Rpb24oKXt9KTtmdW5jdGlvbiBuKCl7fXZhciBzPW5ldyBDcCh0aGlzLmRhdGFiYXNlLHRoaXMucGF0aCk7cy5vbigidmFsdWUiLG4pO3JldHVybiBmdW5jdGlvbih0LGUsbixyLGksbyl7UWYodCwidHJhbnNhY3Rpb24gb24gIitlKTt2YXIgcz17cGF0aDplLHVwZGF0ZTpuLG9uQ29tcGxldGU6cixzdGF0dXM6bnVsbCxvcmRlcjpHcygpLGFwcGx5TG9jYWxseTpvLHJldHJ5Q291bnQ6MCx1bndhdGNoZXI6aSxhYm9ydFJlYXNvbjpudWxsLGN1cnJlbnRXcml0ZUlkOm51bGwsY3VycmVudElucHV0U25hcHNob3Q6bnVsbCxjdXJyZW50T3V0cHV0U25hcHNob3RSYXc6bnVsbCxjdXJyZW50T3V0cHV0U25hcHNob3RSZXNvbHZlZDpudWxsfSxuPVhmKHQsZSx2b2lkIDApO3MuY3VycmVudElucHV0U25hcHNob3Q9bix2b2lkIDA9PT0ocj1zLnVwZGF0ZShuLnZhbCgpKSk/KHMudW53YXRjaGVyKCkscy5jdXJyZW50T3V0cHV0U25hcHNob3RSYXc9bnVsbCxzLmN1cnJlbnRPdXRwdXRTbmFwc2hvdFJlc29sdmVkPW51bGwscy5vbkNvbXBsZXRlJiZzLm9uQ29tcGxldGUobnVsbCwhMSxzLmN1cnJlbnRJbnB1dFNuYXBzaG90KSk6KFNmKCJ0cmFuc2FjdGlvbiBmYWlsZWQ6IERhdGEgcmV0dXJuZWQgIixyLHMucGF0aCkscy5zdGF0dXM9MCwoaT1zZihvPW9mKHQudHJhbnNhY3Rpb25RdWV1ZVRyZWVfLGUpKXx8W10pLnB1c2gocyksYWYobyxpKSxvPXZvaWQgMCwib2JqZWN0Ij09dHlwZW9mIHImJm51bGwhPT1yJiZPbyhyLCIucHJpb3JpdHkiKT8obz1EbyhyLCIucHJpb3JpdHkiKSxzbyhkZihvKSwiSW52YWxpZCBwcmlvcml0eSByZXR1cm5lZCBieSB0cmFuc2FjdGlvbi4gUHJpb3JpdHkgbXVzdCBiZSBhIHZhbGlkIHN0cmluZywgZmluaXRlIG51bWJlciwgc2VydmVyIHZhbHVlLCBvciBudWxsLiIpKTpvPSh4bCh0LnNlcnZlclN5bmNUcmVlXyxlKXx8dWMuRU1QVFlfTk9ERSkuZ2V0UHJpb3JpdHkoKS52YWwoKSxpPVVmKHQpLG89cGMocixvKSxpPWVmKG8sbixpKSxzLmN1cnJlbnRPdXRwdXRTbmFwc2hvdFJhdz1vLHMuY3VycmVudE91dHB1dFNuYXBzaG90UmVzb2x2ZWQ9aSxzLmN1cnJlbnRXcml0ZUlkPUJmKHQpLHM9QWwodC5zZXJ2ZXJTeW5jVHJlZV8sZSxpLHMuY3VycmVudFdyaXRlSWQscy5hcHBseUxvY2FsbHkpLFJmKHQuZXZlbnRRdWV1ZV8sZSxzKSxKZih0LHQudHJhbnNhY3Rpb25RdWV1ZVRyZWVfKSl9KHRoaXMucmVwbyx0aGlzLnBhdGgsdCxmdW5jdGlvbih0LGUsbil7dD8oby5yZWplY3QodCksImZ1bmN0aW9uIj09dHlwZW9mIHImJnIodCxlLG51bGwpKToobj1uZXcgc3AobixuZXcgQ3AoaS5kYXRhYmFzZSxpLnBhdGgpLEp1KSxvLnJlc29sdmUobmV3IF9wKGUsbikpLCJmdW5jdGlvbiI9PXR5cGVvZiByJiZyKG51bGwsZSxuKSl9LGZ1bmN0aW9uKCl7cy5vZmYoInZhbHVlIixuKX0sZSksby5wcm9taXNlfSxDcC5wcm90b3R5cGUuc2V0UHJpb3JpdHk9ZnVuY3Rpb24odCxlKXtLbygiUmVmZXJlbmNlLnNldFByaW9yaXR5IiwxLDIsYXJndW1lbnRzLmxlbmd0aCksX2YoIlJlZmVyZW5jZS5zZXRQcmlvcml0eSIsdGhpcy5wYXRoKSx5ZigiUmVmZXJlbmNlLnNldFByaW9yaXR5IiwxLHQsITEpLEhvKCJSZWZlcmVuY2Uuc2V0UHJpb3JpdHkiLDIsZSwhMCk7dmFyIG49bmV3IGxvO3JldHVybiBLZih0aGlzLnJlcG8sdXUodGhpcy5wYXRoLCIucHJpb3JpdHkiKSx0LG51bGwsbi53cmFwQ2FsbGJhY2soZSkpLG4ucHJvbWlzZX0sQ3AucHJvdG90eXBlLnB1c2g9ZnVuY3Rpb24odCxlKXtLbygiUmVmZXJlbmNlLnB1c2giLDAsMixhcmd1bWVudHMubGVuZ3RoKSxfZigiUmVmZXJlbmNlLnB1c2giLHRoaXMucGF0aCksdmYoIlJlZmVyZW5jZS5wdXNoIiwxLHQsdGhpcy5wYXRoLCEwKSxIbygiUmVmZXJlbmNlLnB1c2giLDIsZSwhMCk7dmFyIG49RmYodGhpcy5yZXBvKSxyPVNjKG4pLG49dGhpcy5jaGlsZChyKSxpPXRoaXMuY2hpbGQociksdD1udWxsIT10P24uc2V0KHQsZSkudGhlbihmdW5jdGlvbigpe3JldHVybiBpfSk6UHJvbWlzZS5yZXNvbHZlKGkpO3JldHVybiBuLnRoZW49dC50aGVuLmJpbmQodCksbi5jYXRjaD10LnRoZW4uYmluZCh0LHZvaWQgMCksImZ1bmN0aW9uIj09dHlwZW9mIGUmJnQuY2F0Y2goZnVuY3Rpb24oKXt9KSxufSxDcC5wcm90b3R5cGUub25EaXNjb25uZWN0PWZ1bmN0aW9uKCl7cmV0dXJuIF9mKCJSZWZlcmVuY2Uub25EaXNjb25uZWN0Iix0aGlzLnBhdGgpLG5ldyB1cCh0aGlzLnJlcG8sdGhpcy5wYXRoKX0sT2JqZWN0LmRlZmluZVByb3BlcnR5KENwLnByb3RvdHlwZSwia2V5Iix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0S2V5KCl9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KENwLnByb3RvdHlwZSwicGFyZW50Iix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0UGFyZW50KCl9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KENwLnByb3RvdHlwZSwicm9vdCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmdldFJvb3QoKX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxDcCk7ZnVuY3Rpb24gQ3AodCxlKXtyZXR1cm4gVHAuY2FsbCh0aGlzLHQsZSxuZXcgTWMsITEpfHx0aGlzfWJwLl9fcmVmZXJlbmNlQ29uc3RydWN0b3I9U3AsRXA9U3Asc28oIXVsLCJfX3JlZmVyZW5jZUNvbnN0cnVjdG9yIGhhcyBhbHJlYWR5IGJlZW4gZGVmaW5lZCIpLHVsPUVwO3ZhciBOcD0iRklSRUJBU0VfREFUQUJBU0VfRU1VTEFUT1JfSE9TVCIsQXA9e30sa3A9ITE7ZnVuY3Rpb24gUnAodCxlLG4scil7dmFyIGk9bnx8dC5vcHRpb25zLmRhdGFiYXNlVVJMO3ZvaWQgMD09PWkmJih0Lm9wdGlvbnMucHJvamVjdElkfHwkcygiQ2FuJ3QgZGV0ZXJtaW5lIEZpcmViYXNlIERhdGFiYXNlIFVSTC4gQmUgc3VyZSB0byBpbmNsdWRlICBhIFByb2plY3QgSUQgd2hlbiBjYWxsaW5nIGZpcmViYXNlLmluaXRpYWxpemVBcHAoKS4iKSxYcygiVXNpbmcgZGVmYXVsdCBob3N0IGZvciBwcm9qZWN0ICIsdC5vcHRpb25zLnByb2plY3RJZCksaT10Lm9wdGlvbnMucHJvamVjdElkKyItZGVmYXVsdC1ydGRiLmZpcmViYXNlaW8uY29tIik7dmFyIG8scz1pcChpLHIpLGE9cy5yZXBvSW5mbyxuPXZvaWQgMDsobj0idW5kZWZpbmVkIiE9dHlwZW9mIHByb2Nlc3M/cHJvY2Vzcy5lbnZbTnBdOm4pPyhvPSEwLGk9Imh0dHA6Ly8iK24rIj9ucz0iK2EubmFtZXNwYWNlLGE9KHM9aXAoaSxyKSkucmVwb0luZm8pOm89IXMucmVwb0luZm8uc2VjdXJlO2U9ciYmbz9uZXcgdmE6bmV3IHBhKHQsZSk7Q2YoIkludmFsaWQgRmlyZWJhc2UgRGF0YWJhc2UgVVJMIiwxLHMpLGN1KHMucGF0aCl8fCRzKCJEYXRhYmFzZSBVUkwgbXVzdCBwb2ludCB0byB0aGUgcm9vdCBvZiBhIEZpcmViYXNlIERhdGFiYXNlIChub3QgaW5jbHVkaW5nIGEgY2hpbGQgcGF0aCkuIik7ZT1mdW5jdGlvbih0LGUsbil7dmFyIHI9RG8oQXAsZS5uYW1lKTtyfHwocj17fSxBcFtlLm5hbWVdPXIpO3ZhciBpPURvKHIsdC50b1VSTFN0cmluZygpKTtpJiYkcygiRGF0YWJhc2UgaW5pdGlhbGl6ZWQgbXVsdGlwbGUgdGltZXMuIFBsZWFzZSBtYWtlIHN1cmUgdGhlIGZvcm1hdCBvZiB0aGUgZGF0YWJhc2UgVVJMIG1hdGNoZXMgd2l0aCBlYWNoIGRhdGFiYXNlKCkgY2FsbC4iKTtyZXR1cm4gaT1uZXcgeGYodCxrcCxlLG4pLHJbdC50b1VSTFN0cmluZygpXT1pfShhLHQsZSk7cmV0dXJuIG5ldyBQcChlKX12YXIgUHA9KE9iamVjdC5kZWZpbmVQcm9wZXJ0eShPcC5wcm90b3R5cGUsInJlcG9fIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaW5zdGFuY2VTdGFydGVkX3x8KE1mKHRoaXMucmVwb0ludGVybmFsXyksdGhpcy5pbnN0YW5jZVN0YXJ0ZWRfPSEwKSx0aGlzLnJlcG9JbnRlcm5hbF99LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KE9wLnByb3RvdHlwZSwicm9vdF8iLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yb290SW50ZXJuYWxffHwodGhpcy5yb290SW50ZXJuYWxfPW5ldyBTcCh0aGlzLGV1KCkpKSx0aGlzLnJvb3RJbnRlcm5hbF99LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KE9wLnByb3RvdHlwZSwiYXBwIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucmVwb18uYXBwfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9wLnByb3RvdHlwZS51c2VFbXVsYXRvcj1mdW5jdGlvbih0LGUpe3ZhciBuO3RoaXMuY2hlY2tEZWxldGVkXygidXNlRW11bGF0b3IiKSx0aGlzLmluc3RhbmNlU3RhcnRlZF8/JHMoIkNhbm5vdCBjYWxsIHVzZUVtdWxhdG9yKCkgYWZ0ZXIgaW5zdGFuY2UgaGFzIGFscmVhZHkgYmVlbiBpbml0aWFsaXplZC4iKToobj10aGlzLnJlcG9JbnRlcm5hbF8sdD10LGU9ZSxuLnJlcG9JbmZvXz1uZXcgd2EodCsiOiIrZSwhMSxuLnJlcG9JbmZvXy5uYW1lc3BhY2Usbi5yZXBvSW5mb18ud2ViU29ja2V0T25seSxuLnJlcG9JbmZvXy5ub2RlQWRtaW4sbi5yZXBvSW5mb18ucGVyc2lzdGVuY2VLZXksbi5yZXBvSW5mb18uaW5jbHVkZU5hbWVzcGFjZUluUXVlcnlQYXJhbXMpLG4ucmVwb0luZm9fLm5vZGVBZG1pbiYmKG4uYXV0aFRva2VuUHJvdmlkZXJfPW5ldyB2YSkpfSxPcC5wcm90b3R5cGUucmVmPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmNoZWNrRGVsZXRlZF8oInJlZiIpLEtvKCJkYXRhYmFzZS5yZWYiLDAsMSxhcmd1bWVudHMubGVuZ3RoKSx0IGluc3RhbmNlb2YgU3A/dGhpcy5yZWZGcm9tVVJMKHQudG9TdHJpbmcoKSk6dm9pZCAwIT09dD90aGlzLnJvb3RfLmNoaWxkKHQpOnRoaXMucm9vdF99LE9wLnByb3RvdHlwZS5yZWZGcm9tVVJMPWZ1bmN0aW9uKHQpe3ZhciBlPSJkYXRhYmFzZS5yZWZGcm9tVVJMIjt0aGlzLmNoZWNrRGVsZXRlZF8oZSksS28oZSwxLDEsYXJndW1lbnRzLmxlbmd0aCk7dmFyIG49aXAodCx0aGlzLnJlcG9fLnJlcG9JbmZvXy5ub2RlQWRtaW4pO0NmKGUsMSxuKTt0PW4ucmVwb0luZm87cmV0dXJuIHRoaXMucmVwb18ucmVwb0luZm9fLmlzQ3VzdG9tSG9zdCgpfHx0Lmhvc3Q9PT10aGlzLnJlcG9fLnJlcG9JbmZvXy5ob3N0fHwkcyhlKyI6IEhvc3QgbmFtZSBkb2VzIG5vdCBtYXRjaCB0aGUgY3VycmVudCBkYXRhYmFzZTogKGZvdW5kICIrdC5ob3N0KyIgYnV0IGV4cGVjdGVkICIrdGhpcy5yZXBvXy5yZXBvSW5mb18uaG9zdCsiKSIpLHRoaXMucmVmKG4ucGF0aC50b1N0cmluZygpKX0sT3AucHJvdG90eXBlLmNoZWNrRGVsZXRlZF89ZnVuY3Rpb24odCl7bnVsbD09PXRoaXMucmVwb0ludGVybmFsXyYmJHMoIkNhbm5vdCBjYWxsICIrdCsiIG9uIGEgZGVsZXRlZCBkYXRhYmFzZS4iKX0sT3AucHJvdG90eXBlLmdvT2ZmbGluZT1mdW5jdGlvbigpe0tvKCJkYXRhYmFzZS5nb09mZmxpbmUiLDAsMCxhcmd1bWVudHMubGVuZ3RoKSx0aGlzLmNoZWNrRGVsZXRlZF8oImdvT2ZmbGluZSIpLHpmKHRoaXMucmVwb18pfSxPcC5wcm90b3R5cGUuZ29PbmxpbmU9ZnVuY3Rpb24oKXt2YXIgdDtLbygiZGF0YWJhc2UuZ29PbmxpbmUiLDAsMCxhcmd1bWVudHMubGVuZ3RoKSx0aGlzLmNoZWNrRGVsZXRlZF8oImdvT25saW5lIiksKHQ9dGhpcy5yZXBvXykucGVyc2lzdGVudENvbm5lY3Rpb25fJiZ0LnBlcnNpc3RlbnRDb25uZWN0aW9uXy5yZXN1bWUoT2YpfSxPcC5TZXJ2ZXJWYWx1ZT17VElNRVNUQU1QOnsiLnN2IjoidGltZXN0YW1wIn0saW5jcmVtZW50OmZ1bmN0aW9uKHQpe3JldHVybnsiLnN2Ijp7aW5jcmVtZW50OnR9fX19LE9wKTtmdW5jdGlvbiBPcCh0KXt2YXIgZT10aGlzO3RoaXMucmVwb0ludGVybmFsXz10LHRoaXMuaW5zdGFuY2VTdGFydGVkXz0hMSx0aGlzLklOVEVSTkFMPXtkZWxldGU6ZnVuY3Rpb24oKXtyZXR1cm4gJGkoZSx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7cmV0dXJuIFppKHRoaXMsZnVuY3Rpb24odCl7dmFyIGUsbjtyZXR1cm4gdGhpcy5jaGVja0RlbGV0ZWRfKCJkZWxldGUiKSxlPXRoaXMucmVwb18sKG49RG8oQXAsZS5hcHAubmFtZSkpJiZEbyhuLGUua2V5KT09PWV8fCRzKCJEYXRhYmFzZSAiK2UuYXBwLm5hbWUrIigiK2UucmVwb0luZm9fKyIpIGhhcyBhbHJlYWR5IGJlZW4gZGVsZXRlZC4iKSx6ZihlKSxkZWxldGUgbltlLmtleV0sdGhpcy5yZXBvSW50ZXJuYWxfPW51bGwsdGhpcy5yb290SW50ZXJuYWxfPW51bGwsWzJdfSl9KX19LHQgaW5zdGFuY2VvZiB4Znx8JHMoIkRvbid0IGNhbGwgbmV3IERhdGFiYXNlKCkgZGlyZWN0bHkgLSBwbGVhc2UgdXNlIGZpcmViYXNlLmRhdGFiYXNlKCkuIil9dmFyIERwPU9iamVjdC5mcmVlemUoe19fcHJvdG9fXzpudWxsLGZvcmNlTG9uZ1BvbGxpbmc6ZnVuY3Rpb24oKXtqYS5mb3JjZURpc2FsbG93KCksT2EuZm9yY2VBbGxvdygpfSxmb3JjZVdlYlNvY2tldHM6ZnVuY3Rpb24oKXtPYS5mb3JjZURpc2FsbG93KCl9LGlzV2ViU29ja2V0c0F2YWlsYWJsZTpmdW5jdGlvbigpe3JldHVybiBqYS5pc0F2YWlsYWJsZSgpfSxzZXRTZWN1cml0eURlYnVnQ2FsbGJhY2s6ZnVuY3Rpb24odCxlKXt0LnJlcG8ucGVyc2lzdGVudENvbm5lY3Rpb25fLnNlY3VyaXR5RGVidWdDYWxsYmFja189ZX0sc3RhdHM6ZnVuY3Rpb24odCxlKXt2YXIgaTt0PXQucmVwbyx2b2lkIDA9PT0oZT1lKSYmKGU9ITEpLCJ1bmRlZmluZWQiIT10eXBlb2YgY29uc29sZSYmKHQ9ZT8odC5zdGF0c0xpc3RlbmVyX3x8KHQuc3RhdHNMaXN0ZW5lcl89bmV3IFhjKHQuc3RhdHNfKSksdC5zdGF0c0xpc3RlbmVyXy5nZXQoKSk6dC5zdGF0c18uZ2V0KCksaT1PYmplY3Qua2V5cyh0KS5yZWR1Y2UoZnVuY3Rpb24odCxlKXtyZXR1cm4gTWF0aC5tYXgoZS5sZW5ndGgsdCl9LDApLGlhKHQsZnVuY3Rpb24odCxlKXtmb3IodmFyIG49dCxyPXQubGVuZ3RoO3I8aSsyO3IrKyluKz0iICI7Y29uc29sZS5sb2cobitlKX0pKX0sc3RhdHNJbmNyZW1lbnRDb3VudGVyOmZ1bmN0aW9uKHQsZSl7dD10LnJlcG8sZT1lLHQuc3RhdHNfLmluY3JlbWVudENvdW50ZXIoZSksdD10LnN0YXRzUmVwb3J0ZXJfLGU9ZSx0LnN0YXRzVG9SZXBvcnRfW2VdPSEwfSxkYXRhVXBkYXRlQ291bnQ6ZnVuY3Rpb24odCl7cmV0dXJuIHQucmVwby5kYXRhVXBkYXRlQ291bnR9LGludGVyY2VwdFNlcnZlckRhdGE6ZnVuY3Rpb24odCxlKXt0PXQucmVwbyxlPWUsdC5pbnRlcmNlcHRTZXJ2ZXJEYXRhQ2FsbGJhY2tfPWV9LGluaXRTdGFuZGFsb25lOmZ1bmN0aW9uKHQpe3ZhciBlPXQuYXBwLG49dC51cmwscj10LnZlcnNpb24saT10LmN1c3RvbUF1dGhJbXBsLG89dC5uYW1lc3BhY2UsdD12b2lkIDAhPT0odD10Lm5vZGVBZG1pbikmJnQ7cmV0dXJuIEZhKHIpLChyPW5ldyBycygiYXV0aC1pbnRlcm5hbCIsbmV3IG9zKCJkYXRhYmFzZS1zdGFuZGFsb25lIikpKS5zZXRDb21wb25lbnQobmV3IHRzKCJhdXRoLWludGVybmFsIixmdW5jdGlvbigpe3JldHVybiBpfSwiUFJJVkFURSIpKSx7aW5zdGFuY2U6UnAoZSxyLG4sdCksbmFtZXNwYWNlOm99fX0pLFNuPVR1O1R1LnByb3RvdHlwZS5zaW1wbGVMaXN0ZW49ZnVuY3Rpb24odCxlKXt0aGlzLnNlbmRSZXF1ZXN0KCJxIix7cDp0fSxlKX0sVHUucHJvdG90eXBlLmVjaG89ZnVuY3Rpb24odCxlKXt0aGlzLnNlbmRSZXF1ZXN0KCJlY2hvIix7ZDp0fSxlKX07dmFyIHhwLExwPU9iamVjdC5mcmVlemUoe19fcHJvdG9fXzpudWxsLERhdGFDb25uZWN0aW9uOlNuLFJlYWxUaW1lQ29ubmVjdGlvbjpLYSxoaWphY2tIYXNoOmZ1bmN0aW9uKGkpe3ZhciBvPVR1LnByb3RvdHlwZS5wdXQ7cmV0dXJuIFR1LnByb3RvdHlwZS5wdXQ9ZnVuY3Rpb24odCxlLG4scil7dm9pZCAwIT09ciYmKHI9aSgpKSxvLmNhbGwodGhpcyx0LGUsbixyKX0sZnVuY3Rpb24oKXtUdS5wcm90b3R5cGUucHV0PW99fSxDb25uZWN0aW9uVGFyZ2V0OndhLHF1ZXJ5SWRlbnRpZmllcjpmdW5jdGlvbih0KXtyZXR1cm4gdC5xdWVyeUlkZW50aWZpZXIoKX0sZm9yY2VSZXN0Q2xpZW50OmZ1bmN0aW9uKHQpe2twPXR9fSksTXA9UHAuU2VydmVyVmFsdWU7RmEoKHhwPVhsKS5TREtfVkVSU0lPTikseHAuSU5URVJOQUwucmVnaXN0ZXJDb21wb25lbnQobmV3IHRzKCJkYXRhYmFzZSIsZnVuY3Rpb24odCxlKXtlPWUuaW5zdGFuY2VJZGVudGlmaWVyO3JldHVybiBScCh0LmdldFByb3ZpZGVyKCJhcHAiKS5nZXRJbW1lZGlhdGUoKSx0LmdldFByb3ZpZGVyKCJhdXRoLWludGVybmFsIiksZSx2b2lkIDApfSwiUFVCTElDIikuc2V0U2VydmljZVByb3BzKHtSZWZlcmVuY2U6U3AsUXVlcnk6YnAsRGF0YWJhc2U6UHAsRGF0YVNuYXBzaG90OnNwLGVuYWJsZUxvZ2dpbmc6TXMsSU5URVJOQUw6RHAsU2VydmVyVmFsdWU6TXAsVEVTVF9BQ0NFU1M6THB9KS5zZXRNdWx0aXBsZUluc3RhbmNlcyghMCkpLHhwLnJlZ2lzdGVyVmVyc2lvbigiQGZpcmViYXNlL2RhdGFiYXNlIiwiMC45LjciKTt2YXIgRnA9ZnVuY3Rpb24odCxlKXtyZXR1cm4oRnA9T2JqZWN0LnNldFByb3RvdHlwZU9mfHx7X19wcm90b19fOltdfWluc3RhbmNlb2YgQXJyYXkmJmZ1bmN0aW9uKHQsZSl7dC5fX3Byb3RvX189ZX18fGZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuIGluIGUpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUsbikmJih0W25dPWVbbl0pfSkodCxlKX07ZnVuY3Rpb24gVXAodCl7dmFyIGU9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmU3ltYm9sLml0ZXJhdG9yLG49ZSYmdFtlXSxyPTA7aWYobilyZXR1cm4gbi5jYWxsKHQpO2lmKHQmJiJudW1iZXIiPT10eXBlb2YgdC5sZW5ndGgpcmV0dXJue25leHQ6ZnVuY3Rpb24oKXtyZXR1cm57dmFsdWU6KHQ9dCYmcj49dC5sZW5ndGg/dm9pZCAwOnQpJiZ0W3IrK10sZG9uZTohdH19fTt0aHJvdyBuZXcgVHlwZUVycm9yKGU/Ik9iamVjdCBpcyBub3QgaXRlcmFibGUuIjoiU3ltYm9sLml0ZXJhdG9yIGlzIG5vdCBkZWZpbmVkLiIpfXZhciBHPSJ1bmRlZmluZWQiIT10eXBlb2YgZ2xvYmFsVGhpcz9nbG9iYWxUaGlzOiJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93P3dpbmRvdzoidW5kZWZpbmVkIiE9dHlwZW9mIGdsb2JhbD9nbG9iYWw6InVuZGVmaW5lZCIhPXR5cGVvZiBzZWxmP3NlbGY6e30sanA9e30scXA9R3x8c2VsZjtmdW5jdGlvbiBWcCgpe31mdW5jdGlvbiBCcCh0KXt2YXIgZT10eXBlb2YgdDtyZXR1cm4iYXJyYXkiPT0oZT0ib2JqZWN0IiE9ZT9lOnQ/QXJyYXkuaXNBcnJheSh0KT8iYXJyYXkiOmU6Im51bGwiKXx8Im9iamVjdCI9PWUmJiJudW1iZXIiPT10eXBlb2YgdC5sZW5ndGh9ZnVuY3Rpb24gS3AodCl7dmFyIGU9dHlwZW9mIHQ7cmV0dXJuIm9iamVjdCI9PWUmJm51bGwhPXR8fCJmdW5jdGlvbiI9PWV9dmFyIFdwPSJjbG9zdXJlX3VpZF8iKygxZTkqTWF0aC5yYW5kb20oKT4+PjApLEhwPTA7ZnVuY3Rpb24gR3AodCxlLG4pe3JldHVybiB0LmNhbGwuYXBwbHkodC5iaW5kLGFyZ3VtZW50cyl9ZnVuY3Rpb24genAoZSxuLHQpe2lmKCFlKXRocm93IEVycm9yKCk7aWYoMjxhcmd1bWVudHMubGVuZ3RoKXt2YXIgcj1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsMik7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHQ9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzKTtyZXR1cm4gQXJyYXkucHJvdG90eXBlLnVuc2hpZnQuYXBwbHkodCxyKSxlLmFwcGx5KG4sdCl9fXJldHVybiBmdW5jdGlvbigpe3JldHVybiBlLmFwcGx5KG4sYXJndW1lbnRzKX19ZnVuY3Rpb24gUXAodCxlLG4pe3JldHVybihRcD1GdW5jdGlvbi5wcm90b3R5cGUuYmluZCYmLTEhPUZ1bmN0aW9uLnByb3RvdHlwZS5iaW5kLnRvU3RyaW5nKCkuaW5kZXhPZigibmF0aXZlIGNvZGUiKT9HcDp6cCkuYXBwbHkobnVsbCxhcmd1bWVudHMpfWZ1bmN0aW9uIFlwKGUpe3ZhciBuPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywxKTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgdD1uLnNsaWNlKCk7cmV0dXJuIHQucHVzaC5hcHBseSh0LGFyZ3VtZW50cyksZS5hcHBseSh0aGlzLHQpfX1mdW5jdGlvbiBYcCgpe3JldHVybiBEYXRlLm5vdygpfWZ1bmN0aW9uIEpwKHQsbyl7ZnVuY3Rpb24gZSgpe31lLnByb3RvdHlwZT1vLnByb3RvdHlwZSx0Llg9by5wcm90b3R5cGUsdC5wcm90b3R5cGU9bmV3IGUsKHQucHJvdG90eXBlLmNvbnN0cnVjdG9yPXQpLktiPWZ1bmN0aW9uKHQsZSxuKXtmb3IodmFyIHI9QXJyYXkoYXJndW1lbnRzLmxlbmd0aC0yKSxpPTI7aTxhcmd1bWVudHMubGVuZ3RoO2krKylyW2ktMl09YXJndW1lbnRzW2ldO3JldHVybiBvLnByb3RvdHlwZVtlXS5hcHBseSh0LHIpfX1mdW5jdGlvbiAkcCgpe3RoaXMuaj10aGlzLmosdGhpcy5pPXRoaXMuaX0kcC5wcm90b3R5cGUuaj0hMSwkcC5wcm90b3R5cGUuamE9ZnVuY3Rpb24oKXt2YXIgdDshdGhpcy5qJiYodGhpcy5qPSEwLHRoaXMuRygpLDApJiYodD10aGlzLE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LFdwKSYmdFtXcF18fCh0W1dwXT0rK0hwKSl9LCRwLnByb3RvdHlwZS5HPWZ1bmN0aW9uKCl7aWYodGhpcy5pKWZvcig7dGhpcy5pLmxlbmd0aDspdGhpcy5pLnNoaWZ0KCkoKX07dmFyIFpwPUFycmF5LnByb3RvdHlwZS5pbmRleE9mP2Z1bmN0aW9uKHQsZSl7cmV0dXJuIEFycmF5LnByb3RvdHlwZS5pbmRleE9mLmNhbGwodCxlLHZvaWQgMCl9OmZ1bmN0aW9uKHQsZSl7aWYoInN0cmluZyI9PXR5cGVvZiB0KXJldHVybiJzdHJpbmciIT10eXBlb2YgZXx8MSE9ZS5sZW5ndGg/LTE6dC5pbmRleE9mKGUsMCk7Zm9yKHZhciBuPTA7bjx0Lmxlbmd0aDtuKyspaWYobiBpbiB0JiZ0W25dPT09ZSlyZXR1cm4gbjtyZXR1cm4tMX0sdGQ9QXJyYXkucHJvdG90eXBlLmZvckVhY2g/ZnVuY3Rpb24odCxlLG4pe0FycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwodCxlLG4pfTpmdW5jdGlvbih0LGUsbil7Zm9yKHZhciByPXQubGVuZ3RoLGk9InN0cmluZyI9PXR5cGVvZiB0P3Quc3BsaXQoIiIpOnQsbz0wO288cjtvKyspbyBpbiBpJiZlLmNhbGwobixpW29dLG8sdCl9O2Z1bmN0aW9uIGVkKCl7cmV0dXJuIEFycmF5LnByb3RvdHlwZS5jb25jYXQuYXBwbHkoW10sYXJndW1lbnRzKX1mdW5jdGlvbiBuZCh0KXt2YXIgZT10Lmxlbmd0aDtpZigwPGUpe2Zvcih2YXIgbj1BcnJheShlKSxyPTA7cjxlO3IrKyluW3JdPXRbcl07cmV0dXJuIG59cmV0dXJuW119ZnVuY3Rpb24gcmQodCl7cmV0dXJuL15bXHNceGEwXSokLy50ZXN0KHQpfXZhciBpZCxvZD1TdHJpbmcucHJvdG90eXBlLnRyaW0/ZnVuY3Rpb24odCl7cmV0dXJuIHQudHJpbSgpfTpmdW5jdGlvbih0KXtyZXR1cm4vXltcc1x4YTBdKihbXHNcU10qPylbXHNceGEwXSokLy5leGVjKHQpWzFdfTtmdW5jdGlvbiBzZCh0LGUpe3JldHVybi0xIT10LmluZGV4T2YoZSl9ZnVuY3Rpb24gYWQodCxlKXtyZXR1cm4gdDxlPy0xOmU8dD8xOjB9dDp7dmFyIHVkPXFwLm5hdmlnYXRvcjtpZih1ZCl7dWQ9dWQudXNlckFnZW50O2lmKHVkKXtpZD11ZDticmVhayB0fX1pZD0iIn1mdW5jdGlvbiBjZCh0LGUsbil7Zm9yKHZhciByIGluIHQpZS5jYWxsKG4sdFtyXSxyLHQpfWZ1bmN0aW9uIGhkKHQpe3ZhciBlLG49e307Zm9yKGUgaW4gdCluW2VdPXRbZV07cmV0dXJuIG59dmFyIGxkPSJjb25zdHJ1Y3RvciBoYXNPd25Qcm9wZXJ0eSBpc1Byb3RvdHlwZU9mIHByb3BlcnR5SXNFbnVtZXJhYmxlIHRvTG9jYWxlU3RyaW5nIHRvU3RyaW5nIHZhbHVlT2YiLnNwbGl0KCIgIik7ZnVuY3Rpb24gZmQodCl7Zm9yKHZhciBlLG4scj0xO3I8YXJndW1lbnRzLmxlbmd0aDtyKyspe2ZvcihlIGluIG49YXJndW1lbnRzW3JdKXRbZV09bltlXTtmb3IodmFyIGk9MDtpPGxkLmxlbmd0aDtpKyspZT1sZFtpXSxPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobixlKSYmKHRbZV09bltlXSl9fWZ1bmN0aW9uIHBkKHQpe3JldHVybiBwZFsiICJdKHQpLHR9cGRbIiAiXT1WcDt2YXIgZGQsdmQ9c2QoaWQsIk9wZXJhIiksZ2Q9c2QoaWQsIlRyaWRlbnQiKXx8c2QoaWQsIk1TSUUiKSx5ZD1zZChpZCwiRWRnZSIpLG1kPXlkfHxnZCxiZD1zZChpZCwiR2Vja28iKSYmIShzZChpZC50b0xvd2VyQ2FzZSgpLCJ3ZWJraXQiKSYmIXNkKGlkLCJFZGdlIikpJiYhKHNkKGlkLCJUcmlkZW50Iil8fHNkKGlkLCJNU0lFIikpJiYhc2QoaWQsIkVkZ2UiKSx3ZD1zZChpZC50b0xvd2VyQ2FzZSgpLCJ3ZWJraXQiKSYmIXNkKGlkLCJFZGdlIik7ZnVuY3Rpb24gX2QoKXt2YXIgdD1xcC5kb2N1bWVudDtyZXR1cm4gdD90LmRvY3VtZW50TW9kZTp2b2lkIDB9dDp7dmFyIElkPSIiLFRkPShUZD1pZCxiZD8vcnY6KFteXCk7XSspKFwpfDspLy5leGVjKFRkKTp5ZD8vRWRnZVwvKFtcZFwuXSspLy5leGVjKFRkKTpnZD8vXGIoPzpNU0lFfHJ2KVs6IF0oW15cKTtdKykoXCl8OykvLmV4ZWMoVGQpOndkPy9XZWJLaXRcLyhcUyspLy5leGVjKFRkKTp2ZD8vKD86VmVyc2lvbilbIFwvXT8oXFMrKS8uZXhlYyhUZCk6dm9pZCAwKTtpZihUZCYmKElkPVRkP1RkWzFdOiIiKSxnZCl7VGQ9X2QoKTtpZihudWxsIT1UZCYmVGQ+cGFyc2VGbG9hdChJZCkpe2RkPVN0cmluZyhUZCk7YnJlYWsgdH19ZGQ9SWR9dmFyIEVkPXt9O2Z1bmN0aW9uIFNkKGEpe3JldHVybiB0PWEsZT1mdW5jdGlvbigpe2Zvcih2YXIgdD0wLGU9b2QoU3RyaW5nKGRkKSkuc3BsaXQoIi4iKSxuPW9kKFN0cmluZyhhKSkuc3BsaXQoIi4iKSxyPU1hdGgubWF4KGUubGVuZ3RoLG4ubGVuZ3RoKSxpPTA7MD09dCYmaTxyO2krKylmb3IodmFyIG89ZVtpXXx8IiIscz1uW2ldfHwiIjtvPS8oXGQqKShcRCopKC4qKS8uZXhlYyhvKXx8WyIiLCIiLCIiLCIiXSxzPS8oXGQqKShcRCopKC4qKS8uZXhlYyhzKXx8WyIiLCIiLCIiLCIiXSwoMCE9b1swXS5sZW5ndGh8fDAhPXNbMF0ubGVuZ3RoKSYmKHQ9YWQoMD09b1sxXS5sZW5ndGg/MDpwYXJzZUludChvWzFdLDEwKSwwPT1zWzFdLmxlbmd0aD8wOnBhcnNlSW50KHNbMV0sMTApKXx8YWQoMD09b1syXS5sZW5ndGgsMD09c1syXS5sZW5ndGgpfHxhZChvWzJdLHNbMl0pLG89b1szXSxzPXNbM10sMD09dCk7KTtyZXR1cm4gMDw9dH0sbj1FZCxPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobix0KT9uW3RdOm5bdF09ZSh0KTt2YXIgdCxlLG59dmFyIENkPXFwLmRvY3VtZW50JiZnZCYmKF9kKCl8fHBhcnNlSW50KGRkLDEwKSl8fHZvaWQgMCxOZD0hZ2R8fDk8PU51bWJlcihDZCksQWQ9Z2QmJiFTZCgiOSIpLGtkPWZ1bmN0aW9uKCl7aWYoIXFwLmFkZEV2ZW50TGlzdGVuZXJ8fCFPYmplY3QuZGVmaW5lUHJvcGVydHkpcmV0dXJuITE7dmFyIHQ9ITEsZT1PYmplY3QuZGVmaW5lUHJvcGVydHkoe30sInBhc3NpdmUiLHtnZXQ6ZnVuY3Rpb24oKXt0PSEwfX0pO3RyeXtxcC5hZGRFdmVudExpc3RlbmVyKCJ0ZXN0IixWcCxlKSxxcC5yZW1vdmVFdmVudExpc3RlbmVyKCJ0ZXN0IixWcCxlKX1jYXRjaCh0KXt9cmV0dXJuIHR9KCk7ZnVuY3Rpb24gUmQodCxlKXt0aGlzLnR5cGU9dCx0aGlzLmE9dGhpcy50YXJnZXQ9ZSx0aGlzLmRlZmF1bHRQcmV2ZW50ZWQ9ITF9ZnVuY3Rpb24gUGQodCxlKXtpZihSZC5jYWxsKHRoaXMsdD90LnR5cGU6IiIpLHRoaXMucmVsYXRlZFRhcmdldD10aGlzLmE9dGhpcy50YXJnZXQ9bnVsbCx0aGlzLmJ1dHRvbj10aGlzLnNjcmVlblk9dGhpcy5zY3JlZW5YPXRoaXMuY2xpZW50WT10aGlzLmNsaWVudFg9MCx0aGlzLmtleT0iIix0aGlzLm1ldGFLZXk9dGhpcy5zaGlmdEtleT10aGlzLmFsdEtleT10aGlzLmN0cmxLZXk9ITEsdGhpcy5wb2ludGVySWQ9MCx0aGlzLnBvaW50ZXJUeXBlPSIiLHRoaXMuYz1udWxsLHQpe3ZhciBuPXRoaXMudHlwZT10LnR5cGUscj10LmNoYW5nZWRUb3VjaGVzJiZ0LmNoYW5nZWRUb3VjaGVzLmxlbmd0aD90LmNoYW5nZWRUb3VjaGVzWzBdOm51bGw7aWYodGhpcy50YXJnZXQ9dC50YXJnZXR8fHQuc3JjRWxlbWVudCx0aGlzLmE9ZSxlPXQucmVsYXRlZFRhcmdldCl7aWYoYmQpe3Q6e3RyeXtwZChlLm5vZGVOYW1lKTt2YXIgaT0hMDticmVhayB0fWNhdGNoKHQpe31pPSExfWl8fChlPW51bGwpfX1lbHNlIm1vdXNlb3ZlciI9PW4/ZT10LmZyb21FbGVtZW50OiJtb3VzZW91dCI9PW4mJihlPXQudG9FbGVtZW50KTt0aGlzLnJlbGF0ZWRUYXJnZXQ9ZSxyPyh0aGlzLmNsaWVudFg9dm9pZCAwIT09ci5jbGllbnRYP3IuY2xpZW50WDpyLnBhZ2VYLHRoaXMuY2xpZW50WT12b2lkIDAhPT1yLmNsaWVudFk/ci5jbGllbnRZOnIucGFnZVksdGhpcy5zY3JlZW5YPXIuc2NyZWVuWHx8MCx0aGlzLnNjcmVlblk9ci5zY3JlZW5ZfHwwKToodGhpcy5jbGllbnRYPXZvaWQgMCE9PXQuY2xpZW50WD90LmNsaWVudFg6dC5wYWdlWCx0aGlzLmNsaWVudFk9dm9pZCAwIT09dC5jbGllbnRZP3QuY2xpZW50WTp0LnBhZ2VZLHRoaXMuc2NyZWVuWD10LnNjcmVlblh8fDAsdGhpcy5zY3JlZW5ZPXQuc2NyZWVuWXx8MCksdGhpcy5idXR0b249dC5idXR0b24sdGhpcy5rZXk9dC5rZXl8fCIiLHRoaXMuY3RybEtleT10LmN0cmxLZXksdGhpcy5hbHRLZXk9dC5hbHRLZXksdGhpcy5zaGlmdEtleT10LnNoaWZ0S2V5LHRoaXMubWV0YUtleT10Lm1ldGFLZXksdGhpcy5wb2ludGVySWQ9dC5wb2ludGVySWR8fDAsdGhpcy5wb2ludGVyVHlwZT0ic3RyaW5nIj09dHlwZW9mIHQucG9pbnRlclR5cGU/dC5wb2ludGVyVHlwZTpPZFt0LnBvaW50ZXJUeXBlXXx8IiIsKHRoaXMuYz10KS5kZWZhdWx0UHJldmVudGVkJiZ0aGlzLmIoKX19UmQucHJvdG90eXBlLmI9ZnVuY3Rpb24oKXt0aGlzLmRlZmF1bHRQcmV2ZW50ZWQ9ITB9LEpwKFBkLFJkKTt2YXIgT2Q9ezI6InRvdWNoIiwzOiJwZW4iLDQ6Im1vdXNlIn07UGQucHJvdG90eXBlLmI9ZnVuY3Rpb24oKXtQZC5YLmIuY2FsbCh0aGlzKTt2YXIgdD10aGlzLmM7aWYodC5wcmV2ZW50RGVmYXVsdCl0LnByZXZlbnREZWZhdWx0KCk7ZWxzZSBpZih0LnJldHVyblZhbHVlPSExLEFkKXRyeXsodC5jdHJsS2V5fHwxMTI8PXQua2V5Q29kZSYmdC5rZXlDb2RlPD0xMjMpJiYodC5rZXlDb2RlPS0xKX1jYXRjaCh0KXt9fTt2YXIgRGQ9ImNsb3N1cmVfbGlzdGVuYWJsZV8iKygxZTYqTWF0aC5yYW5kb20oKXwwKSx4ZD0wO2Z1bmN0aW9uIExkKHQsZSxuLHIsaSl7dGhpcy5saXN0ZW5lcj10LHRoaXMucHJveHk9bnVsbCx0aGlzLnNyYz1lLHRoaXMudHlwZT1uLHRoaXMuY2FwdHVyZT0hIXIsdGhpcy5jYT1pLHRoaXMua2V5PSsreGQsdGhpcy5ZPXRoaXMuWj0hMX1mdW5jdGlvbiBNZCh0KXt0Llk9ITAsdC5saXN0ZW5lcj1udWxsLHQucHJveHk9bnVsbCx0LnNyYz1udWxsLHQuY2E9bnVsbH1mdW5jdGlvbiBGZCh0KXt0aGlzLnNyYz10LHRoaXMuYT17fSx0aGlzLmI9MH1mdW5jdGlvbiBVZCh0LGUpe3ZhciBuLHIsaSxvPWUudHlwZTtvIGluIHQuYSYmKG49dC5hW29dLChpPTA8PShyPVpwKG4sZSkpKSYmQXJyYXkucHJvdG90eXBlLnNwbGljZS5jYWxsKG4sciwxKSxpJiYoTWQoZSksMD09dC5hW29dLmxlbmd0aCYmKGRlbGV0ZSB0LmFbb10sdC5iLS0pKSl9ZnVuY3Rpb24gamQodCxlLG4scil7Zm9yKHZhciBpPTA7aTx0Lmxlbmd0aDsrK2kpe3ZhciBvPXRbaV07aWYoIW8uWSYmby5saXN0ZW5lcj09ZSYmby5jYXB0dXJlPT0hIW4mJm8uY2E9PXIpcmV0dXJuIGl9cmV0dXJuLTF9RmQucHJvdG90eXBlLmFkZD1mdW5jdGlvbih0LGUsbixyLGkpe3ZhciBvPXQudG9TdHJpbmcoKTsodD10aGlzLmFbb10pfHwodD10aGlzLmFbb109W10sdGhpcy5iKyspO3ZhciBzPWpkKHQsZSxyLGkpO3JldHVybi0xPHM/KGU9dFtzXSxufHwoZS5aPSExKSk6KChlPW5ldyBMZChlLHRoaXMuc3JjLG8sISFyLGkpKS5aPW4sdC5wdXNoKGUpKSxlfTt2YXIgcWQ9ImNsb3N1cmVfbG1fIisoMWU2Kk1hdGgucmFuZG9tKCl8MCksVmQ9e307ZnVuY3Rpb24gQmQodCxlLG4scixpKXtpZihyJiZyLm9uY2UpcmV0dXJuIGZ1bmN0aW9uIHQoZSxuLHIsaSxvKXtpZihBcnJheS5pc0FycmF5KG4pKXtmb3IodmFyIHM9MDtzPG4ubGVuZ3RoO3MrKyl0KGUsbltzXSxyLGksbyk7cmV0dXJuIG51bGx9cj1YZChyKTtyZXR1cm4gZSYmZVtEZF0/ZS53YShuLHIsS3AoaSk/ISFpLmNhcHR1cmU6ISFpLG8pOktkKGUsbixyLCEwLGksbyl9KHQsZSxuLHIsaSk7aWYoQXJyYXkuaXNBcnJheShlKSl7Zm9yKHZhciBvPTA7bzxlLmxlbmd0aDtvKyspQmQodCxlW29dLG4scixpKTtyZXR1cm4gbnVsbH1yZXR1cm4gbj1YZChuKSx0JiZ0W0RkXT90LnZhKGUsbixLcChyKT8hIXIuY2FwdHVyZTohIXIsaSk6S2QodCxlLG4sITEscixpKX1mdW5jdGlvbiBLZCh0LGUsbixyLGksbyl7aWYoIWUpdGhyb3cgRXJyb3IoIkludmFsaWQgZXZlbnQgdHlwZSIpO3ZhciBzPUtwKGkpPyEhaS5jYXB0dXJlOiEhaTtpZihzJiYhTmQpcmV0dXJuIG51bGw7dmFyIGEsdSxjPVFkKHQpO2lmKGN8fCh0W3FkXT1jPW5ldyBGZCh0KSksKG49Yy5hZGQoZSxuLHIscyxvKSkucHJveHkpcmV0dXJuIG47aWYoYT16ZCxyPXU9TmQ/ZnVuY3Rpb24odCl7cmV0dXJuIGEuY2FsbCh1LnNyYyx1Lmxpc3RlbmVyLHQpfTpmdW5jdGlvbih0KXtpZighKHQ9YS5jYWxsKHUuc3JjLHUubGlzdGVuZXIsdCkpKXJldHVybiB0fSwobi5wcm94eT1yKS5zcmM9dCxyLmxpc3RlbmVyPW4sdC5hZGRFdmVudExpc3RlbmVyKXZvaWQgMD09PShpPSFrZD9zOmkpJiYoaT0hMSksdC5hZGRFdmVudExpc3RlbmVyKGUudG9TdHJpbmcoKSxyLGkpO2Vsc2UgaWYodC5hdHRhY2hFdmVudCl0LmF0dGFjaEV2ZW50KEhkKGUudG9TdHJpbmcoKSkscik7ZWxzZXtpZighdC5hZGRMaXN0ZW5lcnx8IXQucmVtb3ZlTGlzdGVuZXIpdGhyb3cgRXJyb3IoImFkZEV2ZW50TGlzdGVuZXIgYW5kIGF0dGFjaEV2ZW50IGFyZSB1bmF2YWlsYWJsZS4iKTt0LmFkZExpc3RlbmVyKHIpfXJldHVybiBufWZ1bmN0aW9uIFdkKHQpe3ZhciBlLG4scjsibnVtYmVyIiE9dHlwZW9mIHQmJnQmJiF0LlkmJigoZT10LnNyYykmJmVbRGRdP1VkKGUuYyx0KToobj10LnR5cGUscj10LnByb3h5LGUucmVtb3ZlRXZlbnRMaXN0ZW5lcj9lLnJlbW92ZUV2ZW50TGlzdGVuZXIobixyLHQuY2FwdHVyZSk6ZS5kZXRhY2hFdmVudD9lLmRldGFjaEV2ZW50KEhkKG4pLHIpOmUuYWRkTGlzdGVuZXImJmUucmVtb3ZlTGlzdGVuZXImJmUucmVtb3ZlTGlzdGVuZXIociksKG49UWQoZSkpPyhVZChuLHQpLDA9PW4uYiYmKG4uc3JjPW51bGwsZVtxZF09bnVsbCkpOk1kKHQpKSl9ZnVuY3Rpb24gSGQodCl7cmV0dXJuIHQgaW4gVmQ/VmRbdF06VmRbdF09Im9uIit0fWZ1bmN0aW9uIEdkKHQsZSl7dmFyIG49dC5saXN0ZW5lcixyPXQuY2F8fHQuc3JjO3JldHVybiB0LlomJldkKHQpLG4uY2FsbChyLGUpfWZ1bmN0aW9uIHpkKHQsZSl7aWYodC5ZKXJldHVybiEwO2lmKE5kKXJldHVybiBHZCh0LG5ldyBQZChlLHRoaXMpKTtpZighZSl0OntlPVsid2luZG93IiwiZXZlbnQiXTtmb3IodmFyIG49cXAscj0wO3I8ZS5sZW5ndGg7cisrKWlmKG51bGw9PShuPW5bZVtyXV0pKXtlPW51bGw7YnJlYWsgdH1lPW59cmV0dXJuIEdkKHQsZT1uZXcgUGQoZSx0aGlzKSl9ZnVuY3Rpb24gUWQodCl7cmV0dXJuKHQ9dFtxZF0paW5zdGFuY2VvZiBGZD90Om51bGx9dmFyIFlkPSJfX2Nsb3N1cmVfZXZlbnRzX2ZuXyIrKDFlOSpNYXRoLnJhbmRvbSgpPj4+MCk7ZnVuY3Rpb24gWGQoZSl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIGU/ZTooZVtZZF18fChlW1lkXT1mdW5jdGlvbih0KXtyZXR1cm4gZS5oYW5kbGVFdmVudCh0KX0pLGVbWWRdKX1mdW5jdGlvbiBKZCgpeyRwLmNhbGwodGhpcyksdGhpcy5jPW5ldyBGZCh0aGlzKSwodGhpcy5KPXRoaXMpLkM9bnVsbH1mdW5jdGlvbiAkZCh0LGUpe3ZhciBuLHI9dC5DO2lmKHIpZm9yKG49W107cjtyPXIuQyluLnB1c2gocik7aWYodD10Lkoscj1lLnR5cGV8fGUsInN0cmluZyI9PXR5cGVvZiBlP2U9bmV3IFJkKGUsdCk6ZSBpbnN0YW5jZW9mIFJkP2UudGFyZ2V0PWUudGFyZ2V0fHx0OihzPWUsZmQoZT1uZXcgUmQocix0KSxzKSkscz0hMCxuKWZvcih2YXIgaT1uLmxlbmd0aC0xOzA8PWk7aS0tKXZhciBvPWUuYT1uW2ldLHM9WmQobyxyLCEwLGUpJiZzO2lmKHM9WmQobz1lLmE9dCxyLCEwLGUpJiZzLHM9WmQobyxyLCExLGUpJiZzLG4pZm9yKGk9MDtpPG4ubGVuZ3RoO2krKylzPVpkKG89ZS5hPW5baV0sciwhMSxlKSYmc31mdW5jdGlvbiBaZCh0LGUsbixyKXtpZighKGU9dC5jLmFbU3RyaW5nKGUpXSkpcmV0dXJuITA7ZT1lLmNvbmNhdCgpO2Zvcih2YXIgaT0hMCxvPTA7bzxlLmxlbmd0aDsrK28pe3ZhciBzLGEsdT1lW29dO3UmJiF1LlkmJnUuY2FwdHVyZT09biYmKHM9dS5saXN0ZW5lcixhPXUuY2F8fHUuc3JjLHUuWiYmVWQodC5jLHUpLGk9ITEhPT1zLmNhbGwoYSxyKSYmaSl9cmV0dXJuIGkmJiFyLmRlZmF1bHRQcmV2ZW50ZWR9SnAoSmQsJHApLEpkLnByb3RvdHlwZVtEZF09ITAsKHo9SmQucHJvdG90eXBlKS5hZGRFdmVudExpc3RlbmVyPWZ1bmN0aW9uKHQsZSxuLHIpe0JkKHRoaXMsdCxlLG4scil9LHoucmVtb3ZlRXZlbnRMaXN0ZW5lcj1mdW5jdGlvbih0LGUsbixyKXshZnVuY3Rpb24gdChlLG4scixpLG8pe2lmKEFycmF5LmlzQXJyYXkobikpZm9yKHZhciBzPTA7czxuLmxlbmd0aDtzKyspdChlLG5bc10scixpLG8pO2Vsc2UgaT1LcChpKT8hIWkuY2FwdHVyZTohIWkscj1YZChyKSxlJiZlW0RkXT8oZT1lLmMsKG49U3RyaW5nKG4pLnRvU3RyaW5nKCkpaW4gZS5hJiYtMTwocj1qZChzPWUuYVtuXSxyLGksbykpJiYoTWQoc1tyXSksQXJyYXkucHJvdG90eXBlLnNwbGljZS5jYWxsKHMsciwxKSwwPT1zLmxlbmd0aCYmKGRlbGV0ZSBlLmFbbl0sZS5iLS0pKSk6KGU9ZSYmUWQoZSkpJiYobj1lLmFbbi50b1N0cmluZygpXSwocj0oZT0tMSk8KGU9bj9qZChuLHIsaSxvKTplKT9uW2VdOm51bGwpJiZXZChyKSl9KHRoaXMsdCxlLG4scil9LHouRz1mdW5jdGlvbigpe2lmKEpkLlguRy5jYWxsKHRoaXMpLHRoaXMuYyl7dmFyIHQsZT10aGlzLmM7Zm9yKHQgaW4gZS5hKXtmb3IodmFyIG49ZS5hW3RdLHI9MDtyPG4ubGVuZ3RoO3IrKylNZChuW3JdKTtkZWxldGUgZS5hW3RdLGUuYi0tfX10aGlzLkM9bnVsbH0sei52YT1mdW5jdGlvbih0LGUsbixyKXtyZXR1cm4gdGhpcy5jLmFkZChTdHJpbmcodCksZSwhMSxuLHIpfSx6LndhPWZ1bmN0aW9uKHQsZSxuLHIpe3JldHVybiB0aGlzLmMuYWRkKFN0cmluZyh0KSxlLCEwLG4scil9O3ZhciB0dj1xcC5KU09OLnN0cmluZ2lmeTtmdW5jdGlvbiBldigpe3RoaXMuYj10aGlzLmE9bnVsbH12YXIgbnYscnY9KGl2LnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24oKXt2YXIgdDtyZXR1cm4gMDx0aGlzLmI/KHRoaXMuYi0tLHQ9dGhpcy5hLHRoaXMuYT10Lm5leHQsdC5uZXh0PW51bGwpOnQ9dGhpcy5jKCksdH0sbmV3IGl2KGZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBvdn0sZnVuY3Rpb24odCl7dC5yZXNldCgpfSkpO2Z1bmN0aW9uIGl2KHQsZSl7dGhpcy5jPXQsdGhpcy5mPWUsdGhpcy5iPTAsdGhpcy5hPW51bGx9ZnVuY3Rpb24gb3YoKXt0aGlzLm5leHQ9dGhpcy5iPXRoaXMuYT1udWxsfWZ1bmN0aW9uIHN2KHQsZSl7dmFyIG47bnZ8fChuPXFwLlByb21pc2UucmVzb2x2ZSh2b2lkIDApLG52PWZ1bmN0aW9uKCl7bi50aGVuKGN2KX0pLGF2fHwobnYoKSxhdj0hMCksdXYuYWRkKHQsZSl9ZXYucHJvdG90eXBlLmFkZD1mdW5jdGlvbih0LGUpe3ZhciBuPXJ2LmdldCgpO24uc2V0KHQsZSksdGhpcy5iP3RoaXMuYi5uZXh0PW46dGhpcy5hPW4sdGhpcy5iPW59LG92LnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24odCxlKXt0aGlzLmE9dCx0aGlzLmI9ZSx0aGlzLm5leHQ9bnVsbH07dmFyIGF2PSEob3YucHJvdG90eXBlLnJlc2V0PWZ1bmN0aW9uKCl7dGhpcy5uZXh0PXRoaXMuYj10aGlzLmE9bnVsbH0pLHV2PW5ldyBldjtmdW5jdGlvbiBjdigpe2Zvcih2YXIgdCxlO249ZT12b2lkIDAsbj1udWxsLChlPXV2KS5hJiYobj1lLmEsZS5hPWUuYS5uZXh0LGUuYXx8KGUuYj1udWxsKSxuLm5leHQ9bnVsbCksdD1uOyl7dHJ5e3QuYS5jYWxsKHQuYil9Y2F0Y2godCl7IWZ1bmN0aW9uKHQpe3FwLnNldFRpbWVvdXQoZnVuY3Rpb24oKXt0aHJvdyB0fSwwKX0odCl9dmFyIG49cnY7bi5mKHQpLG4uYjwxMDAmJihuLmIrKyx0Lm5leHQ9bi5hLG4uYT10KX1hdj0hMX1mdW5jdGlvbiBodih0LGUpe0pkLmNhbGwodGhpcyksdGhpcy5iPXR8fDEsdGhpcy5hPWV8fHFwLHRoaXMuZj1RcCh0aGlzLlphLHRoaXMpLHRoaXMuZz1YcCgpfWZ1bmN0aW9uIGx2KHQpe3QuYWE9ITEsdC5NJiYodC5hLmNsZWFyVGltZW91dCh0Lk0pLHQuTT1udWxsKX1mdW5jdGlvbiBmdih0LGUsbil7aWYoImZ1bmN0aW9uIj09dHlwZW9mIHQpbiYmKHQ9UXAodCxuKSk7ZWxzZXtpZighdHx8ImZ1bmN0aW9uIiE9dHlwZW9mIHQuaGFuZGxlRXZlbnQpdGhyb3cgRXJyb3IoIkludmFsaWQgbGlzdGVuZXIgYXJndW1lbnQiKTt0PVFwKHQuaGFuZGxlRXZlbnQsdCl9cmV0dXJuIDIxNDc0ODM2NDc8TnVtYmVyKGUpPy0xOnFwLnNldFRpbWVvdXQodCxlfHwwKX1KcChodixKZCksKHo9aHYucHJvdG90eXBlKS5hYT0hMSx6Lk09bnVsbCx6LlphPWZ1bmN0aW9uKCl7dmFyIHQ7dGhpcy5hYSYmKDA8KHQ9WHAoKS10aGlzLmcpJiZ0PC44KnRoaXMuYj90aGlzLk09dGhpcy5hLnNldFRpbWVvdXQodGhpcy5mLHRoaXMuYi10KToodGhpcy5NJiYodGhpcy5hLmNsZWFyVGltZW91dCh0aGlzLk0pLHRoaXMuTT1udWxsKSwkZCh0aGlzLCJ0aWNrIiksdGhpcy5hYSYmKGx2KHRoaXMpLHRoaXMuc3RhcnQoKSkpKX0sei5zdGFydD1mdW5jdGlvbigpe3RoaXMuYWE9ITAsdGhpcy5NfHwodGhpcy5NPXRoaXMuYS5zZXRUaW1lb3V0KHRoaXMuZix0aGlzLmIpLHRoaXMuZz1YcCgpKX0sei5HPWZ1bmN0aW9uKCl7aHYuWC5HLmNhbGwodGhpcyksbHYodGhpcyksZGVsZXRlIHRoaXMuYX07dmFyIHB2LGR2LHZ2LGd2PShGcChkdj1tdix2dj1wdj0kcCksZHYucHJvdG90eXBlPW51bGw9PT12dj9PYmplY3QuY3JlYXRlKHZ2KTooeXYucHJvdG90eXBlPXZ2LnByb3RvdHlwZSxuZXcgeXYpLG12LnByb3RvdHlwZS5mPWZ1bmN0aW9uKHQpe3RoaXMuYj1hcmd1bWVudHMsdGhpcy5hP3RoaXMuYz0hMDpmdW5jdGlvbiB0KGUpe2UuYT1mdihmdW5jdGlvbigpe2UuYT1udWxsLGUuYyYmKGUuYz0hMSx0KGUpKX0sZS5oKTt2YXIgbj1lLmI7ZS5iPW51bGwsZS5nLmFwcGx5KG51bGwsbil9KHRoaXMpfSxtdi5wcm90b3R5cGUuRz1mdW5jdGlvbigpe3B2LnByb3RvdHlwZS5HLmNhbGwodGhpcyksdGhpcy5hJiYocXAuY2xlYXJUaW1lb3V0KHRoaXMuYSksdGhpcy5hPW51bGwsdGhpcy5jPSExLHRoaXMuYj1udWxsKX0sbXYpO2Z1bmN0aW9uIHl2KCl7dGhpcy5jb25zdHJ1Y3Rvcj1kdn1mdW5jdGlvbiBtdih0LGUpe3ZhciBuPXB2LmNhbGwodGhpcyl8fHRoaXM7cmV0dXJuIG4uZz10LG4uaD1lLG4uYj1udWxsLG4uYz0hMSxuLmE9bnVsbCxufWZ1bmN0aW9uIGJ2KHQpeyRwLmNhbGwodGhpcyksdGhpcy5iPXQsdGhpcy5hPXt9fUpwKGJ2LCRwKTt2YXIgd3Y9W107ZnVuY3Rpb24gX3YodCxlLG4scil7QXJyYXkuaXNBcnJheShuKXx8KG4mJih3dlswXT1uLnRvU3RyaW5nKCkpLG49d3YpO2Zvcih2YXIgaT0wO2k8bi5sZW5ndGg7aSsrKXt2YXIgbz1CZChlLG5baV0scnx8dC5oYW5kbGVFdmVudCwhMSx0LmJ8fHQpO2lmKCFvKWJyZWFrO3QuYVtvLmtleV09b319ZnVuY3Rpb24gSXYodCl7Y2QodC5hLGZ1bmN0aW9uKHQsZSl7dGhpcy5hLmhhc093blByb3BlcnR5KGUpJiZXZCh0KX0sdCksdC5hPXt9fWZ1bmN0aW9uIFR2KCl7dGhpcy5hPSEwfWZ1bmN0aW9uIEV2KHQsZSxuLHIpe3QuaW5mbyhmdW5jdGlvbigpe3JldHVybiJYTUxIVFRQIFRFWFQgKCIrZSsiKTogIitmdW5jdGlvbih0LGUpe2lmKCF0LmEpcmV0dXJuIGU7aWYoIWUpcmV0dXJuIG51bGw7dHJ5e3ZhciBuPUpTT04ucGFyc2UoZSk7aWYobilmb3IodD0wO3Q8bi5sZW5ndGg7dCsrKWlmKEFycmF5LmlzQXJyYXkoblt0XSkpe3ZhciByPW5bdF07aWYoIShyLmxlbmd0aDwyKSl7dmFyIGk9clsxXTtpZihBcnJheS5pc0FycmF5KGkpJiYhKGkubGVuZ3RoPDEpKXtyPWlbMF07aWYoIm5vb3AiIT1yJiYic3RvcCIhPXImJiJjbG9zZSIhPXIpZm9yKHZhciBvPTE7bzxpLmxlbmd0aDtvKyspaVtvXT0iIn19fXJldHVybiB0dihuKX1jYXRjaCh0KXtyZXR1cm4gZX19KHQsbikrKHI/IiAiK3I6IiIpfSl9YnYucHJvdG90eXBlLkc9ZnVuY3Rpb24oKXtidi5YLkcuY2FsbCh0aGlzKSxJdih0aGlzKX0sYnYucHJvdG90eXBlLmhhbmRsZUV2ZW50PWZ1bmN0aW9uKCl7dGhyb3cgRXJyb3IoIkV2ZW50SGFuZGxlci5oYW5kbGVFdmVudCBub3QgaW1wbGVtZW50ZWQiKX0sVHYucHJvdG90eXBlLmluZm89ZnVuY3Rpb24oKXt9O3ZhciBTdj17fSxDdj1udWxsO2Z1bmN0aW9uIE52KCl7cmV0dXJuIEN2PUN2fHxuZXcgSmR9ZnVuY3Rpb24gQXYodCl7UmQuY2FsbCh0aGlzLFN2LkZhLHQpfWZ1bmN0aW9uIGt2KHQpe3ZhciBlPU52KCk7JGQoZSxuZXcgQXYoZSkpfWZ1bmN0aW9uIFJ2KHQsZSl7UmQuY2FsbCh0aGlzLFN2LlNUQVRfRVZFTlQsdCksdGhpcy5zdGF0PWV9ZnVuY3Rpb24gUHYodCl7dmFyIGU9TnYoKTskZChlLG5ldyBSdihlLHQpKX1mdW5jdGlvbiBPdih0KXtSZC5jYWxsKHRoaXMsU3YuR2EsdCl9ZnVuY3Rpb24gRHYodCxlKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgdCl0aHJvdyBFcnJvcigiRm4gbXVzdCBub3QgYmUgbnVsbCBhbmQgbXVzdCBiZSBhIGZ1bmN0aW9uIik7cmV0dXJuIHFwLnNldFRpbWVvdXQoZnVuY3Rpb24oKXt0KCl9LGUpfVN2LkZhPSJzZXJ2ZXJyZWFjaGFiaWxpdHkiLEpwKEF2LFJkKSxTdi5TVEFUX0VWRU5UPSJzdGF0ZXZlbnQiLEpwKFJ2LFJkKSxTdi5HYT0idGltaW5nZXZlbnQiLEpwKE92LFJkKTtHYT17Tk9fRVJST1I6MCwkYToxLG5iOjIsbWI6MyxoYjo0LGxiOjUsb2I6NixEYTo3LFRJTUVPVVQ6OCxyYjo5fSxTbj17ZmI6ImNvbXBsZXRlIixCYjoic3VjY2VzcyIsRWE6ImVycm9yIixEYToiYWJvcnQiLHRiOiJyZWFkeSIsdWI6InJlYWR5c3RhdGVjaGFuZ2UiLFRJTUVPVVQ6InRpbWVvdXQiLHBiOiJpbmNyZW1lbnRhbGRhdGEiLHNiOiJwcm9ncmVzcyIsaWI6ImRvd25sb2FkcHJvZ3Jlc3MiLEpiOiJ1cGxvYWRwcm9ncmVzcyJ9O2Z1bmN0aW9uIHh2KCl7fWZ1bmN0aW9uIEx2KHQpe3ZhciBlO3JldHVybiBlPSEoZT10LmEpP3QuYT17fTplfWZ1bmN0aW9uIE12KCl7fXh2LnByb3RvdHlwZS5hPW51bGw7Rz17T1BFTjoiYSIsZWI6ImIiLEVhOiJjIixxYjoiZCJ9O2Z1bmN0aW9uIEZ2KCl7UmQuY2FsbCh0aGlzLCJkIil9ZnVuY3Rpb24gVXYoKXtSZC5jYWxsKHRoaXMsImMiKX1mdW5jdGlvbiBqdigpe31mdW5jdGlvbiBxdih0LGUsbixyKXt0aGlzLmc9dCx0aGlzLmM9ZSx0aGlzLmY9bix0aGlzLlM9cnx8MSx0aGlzLko9bmV3IGJ2KHRoaXMpLHRoaXMuUD1Cdix0PW1kPzEyNTp2b2lkIDAsdGhpcy5SPW5ldyBodih0KSx0aGlzLkI9bnVsbCx0aGlzLmI9ITEsdGhpcy5qPXRoaXMubD10aGlzLmk9dGhpcy5IPXRoaXMudT10aGlzLlQ9dGhpcy5vPW51bGwsdGhpcy5zPVtdLHRoaXMuYT1udWxsLHRoaXMuRD0wLHRoaXMuaD10aGlzLm09bnVsbCx0aGlzLk49LTEsdGhpcy5BPSExLHRoaXMuTz0wLHRoaXMuRj1udWxsLHRoaXMuVj10aGlzLkM9dGhpcy5VPXRoaXMuST0hMX1KcChGdixSZCksSnAoVXYsUmQpLEpwKGp2LHh2KTt2YXIgVnY9bmV3IGp2LEJ2PTQ1ZTMsS3Y9e30sV3Y9e307ZnVuY3Rpb24gSHYodCxlLG4pe3QuSD0xLHQuaT1mZyhzZyhlKSksdC5qPW4sdC5JPSEwLEd2KHQsbnVsbCl9ZnVuY3Rpb24gR3YodCxlKXt0LnU9WHAoKSxRdih0KSx0Lmw9c2codC5pKTt2YXIgcyxhLHUsYyxoLGwsbj10Lmwscj10LlM7QXJyYXkuaXNBcnJheShyKXx8KHI9W1N0cmluZyhyKV0pLFNnKG4uYiwidCIsciksdC5EPTAsdC5hPW15KHQuZyx0LmcuQz9lOm51bGwpLDA8dC5PJiYodC5GPW5ldyBndihRcCh0LkNhLHQsdC5hKSx0Lk8pKSxfdih0LkosdC5hLCJyZWFkeXN0YXRlY2hhbmdlIix0LlhhKSxlPXQuQj9oZCh0LkIpOnt9LHQuaj8odC5tfHwodC5tPSJQT1NUIiksZVsiQ29udGVudC1UeXBlIl09ImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIsdC5hLmJhKHQubCx0Lm0sdC5qLGUpKToodC5tPSJHRVQiLHQuYS5iYSh0LmwsdC5tLG51bGwsZSkpLGt2KDEpLHM9dC5jLGE9dC5tLHU9dC5sLGM9dC5mLGg9dC5TLGw9dC5qLHMuaW5mbyhmdW5jdGlvbigpe2lmKHMuYSlpZihsKWZvcih2YXIgdD0iIixlPWwuc3BsaXQoIiYiKSxuPTA7bjxlLmxlbmd0aDtuKyspe3ZhciByLGksbz1lW25dLnNwbGl0KCI9Iik7MTxvLmxlbmd0aCYmKHI9b1swXSxvPW9bMV0sdD0yPD0oaT1yLnNwbGl0KCJfIikpLmxlbmd0aCYmInR5cGUiPT1pWzFdP3QrKHIrIj0iKStvKyImIjp0KyhyKyI9cmVkYWN0ZWQmIikpfWVsc2UgdD1udWxsO2Vsc2UgdD1sO3JldHVybiJYTUxIVFRQIFJFUSAoIitjKyIpIFthdHRlbXB0ICIraCsiXTogIithKyJcbiIrdSsiXG4iK3R9KX1mdW5jdGlvbiB6dih0LGUsbil7Zm9yKHZhciByLGksbyxzPSEwOyF0LkEmJnQuRDxuLmxlbmd0aDspe3ZhciBhPShhPW4sbz1pPXZvaWQgMCxpPShyPXQpLkQsLTE9PShvPWEuaW5kZXhPZigiXG4iLGkpKT9XdjooaT1OdW1iZXIoYS5zdWJzdHJpbmcoaSxvKSksaXNOYU4oaSk/S3Y6KG8rPTEpK2k+YS5sZW5ndGg/V3Y6KGE9YS5zdWJzdHIobyxpKSxyLkQ9bytpLGEpKSk7aWYoYT09V3YpezQ9PWUmJih0Lmg9NCxQdigxNCkscz0hMSksRXYodC5jLHQuZixudWxsLCJbSW5jb21wbGV0ZSBSZXNwb25zZV0iKTticmVha31pZihhPT1Ldil7dC5oPTQsUHYoMTUpLEV2KHQuYyx0LmYsbiwiW0ludmFsaWQgQ2h1bmtdIikscz0hMTticmVha31Fdih0LmMsdC5mLGEsbnVsbCksWnYodCxhKX00PT1lJiYwPT1uLmxlbmd0aCYmKHQuaD0xLFB2KDE2KSxzPSExKSx0LmI9dC5iJiZzLHM/MDxuLmxlbmd0aCYmIXQuViYmKHQuVj0hMCwoZT10LmcpLmE9PXQmJmUuVSYmIWUuRiYmKGUuYy5pbmZvKCJHcmVhdCwgbm8gYnVmZmVyaW5nIHByb3h5IGRldGVjdGVkLiBCeXRlcyByZWNlaXZlZDogIituLmxlbmd0aCksaHkoZSksZS5GPSEwLFB2KDExKSkpOihFdih0LmMsdC5mLG4sIltJbnZhbGlkIENodW5rZWQgUmVzcG9uc2VdIiksJHYodCksSnYodCkpfWZ1bmN0aW9uIFF2KHQpe3QuVD1YcCgpK3QuUCxZdih0LHQuUCl9ZnVuY3Rpb24gWXYodCxlKXtpZihudWxsIT10Lm8pdGhyb3cgRXJyb3IoIldhdGNoRG9nIHRpbWVyIG5vdCBudWxsIik7dC5vPUR2KFFwKHQuVmEsdCksZSl9ZnVuY3Rpb24gWHYodCl7dC5vJiYocXAuY2xlYXJUaW1lb3V0KHQubyksdC5vPW51bGwpfWZ1bmN0aW9uIEp2KHQpezA9PXQuZy52fHx0LkF8fHB5KHQuZyx0KX1mdW5jdGlvbiAkdih0KXtYdih0KTt2YXIgZT10LkY7ZSYmImZ1bmN0aW9uIj09dHlwZW9mIGUuamEmJmUuamEoKSx0LkY9bnVsbCxsdih0LlIpLEl2KHQuSiksdC5hJiYoZT10LmEsdC5hPW51bGwsZS5hYm9ydCgpLGUuamEoKSl9ZnVuY3Rpb24gWnYodCxlKXt0cnl7dmFyIG4scixpLG8scyxhPXQuZztpZigwIT1hLnYmJihhLmE9PXR8fE9nKGEuYix0KSkpaWYoYS5JPXQuTiwhdC5DJiZPZyhhLmIsdCkmJjM9PWEudil7dHJ5e3ZhciB1PWEua2EuYS5wYXJzZShlKX1jYXRjaCh0KXt1PW51bGx9aWYoQXJyYXkuaXNBcnJheSh1KSYmMz09dS5sZW5ndGgpe3ZhciBjPXU7aWYoMD09Y1swXSl7dDppZighYS5qKXtpZihhLmEpe2lmKCEoYS5hLnUrM2UzPHQudSkpYnJlYWsgdDtmeShhKSxleShhKX1jeShhKSxQdigxOCl9fWVsc2UgYS5vYT1jWzFdLDA8YS5vYS1hLlAmJmNbMl08Mzc1MDAmJmEuSCYmMD09YS5vJiYhYS5tJiYoYS5tPUR2KFFwKGEuU2EsYSksNmUzKSk7aWYoUGcoYS5iKTw9MSYmYS5lYSl7dHJ5e2EuZWEoKX1jYXRjaCh0KXt9YS5lYT12b2lkIDB9fWVsc2UgdnkoYSwxMSl9ZWxzZSBpZighdC5DJiZhLmEhPXR8fGZ5KGEpLCFyZChlKSlmb3IoZT11PWEua2EuYS5wYXJzZShlKSx1PTA7dTxlLmxlbmd0aDt1KyspYz1lW3VdLGEuUD1jWzBdLGM9Y1sxXSwyPT1hLnY/ImMiPT1jWzBdPyhhLko9Y1sxXSxhLmdhPWNbMl0sbnVsbCE9KHI9Y1szXSkmJihhLmhhPXIsYS5jLmluZm8oIlZFUj0iK2EuaGEpKSxudWxsIT0obz1jWzRdKSYmKGEucGE9byxhLmMuaW5mbygiU1ZFUj0iK2EucGEpKSxudWxsIT0ocj1jWzVdKSYmIm51bWJlciI9PXR5cGVvZiByJiYwPHImJihuPTEuNSpyLGEuRD1uLGEuYy5pbmZvKCJiYWNrQ2hhbm5lbFJlcXVlc3RUaW1lb3V0TXNfPSIrbikpLG49YSwobz10LmEpJiYoIShyPW8uYT9vLmEuZ2V0UmVzcG9uc2VIZWFkZXIoIlgtQ2xpZW50LVdpcmUtUHJvdG9jb2wiKTpudWxsKXx8IShpPW4uYikuYSYmKHNkKHIsInNwZHkiKXx8c2QociwicXVpYyIpfHxzZChyLCJoMiIpKSYmKGkuZj1pLmcsaS5hPW5ldyBTZXQsaS5iJiYoRGcoaSxpLmIpLGkuYj1udWxsKSksIW4uQXx8KHM9by5hP28uYS5nZXRSZXNwb25zZUhlYWRlcigiWC1IVFRQLVNlc3Npb24tSWQiKTpudWxsKSYmKG4ubmE9cyxsZyhuLkIsbi5BLHMpKSksYS52PTMsYS5mJiZhLmYudGEoKSxhLlUmJihhLk49WHAoKS10LnUsYS5jLmluZm8oIkhhbmRzaGFrZSBSVFQ6ICIrYS5OKyJtcyIpKSxpPXQsKG49YSkubGE9eXkobixuLkM/bi5nYTpudWxsLG4uZmEpLGkuQz8oeGcobi5iLGkpLG89aSwocz1uLkQpJiZvLnNldFRpbWVvdXQocyksby5vJiYoWHYobyksUXYobykpLG4uYT1pKTp1eShuKSwwPGEuZy5sZW5ndGgmJml5KGEpKToic3RvcCIhPWNbMF0mJiJjbG9zZSIhPWNbMF18fHZ5KGEsNyk6Mz09YS52JiYoInN0b3AiPT1jWzBdfHwiY2xvc2UiPT1jWzBdPyJzdG9wIj09Y1swXT92eShhLDcpOnR5KGEpOiJub29wIiE9Y1swXSYmYS5mJiZhLmYuc2EoYyksYS5vPTApO2t2KDQpfWNhdGNoKHQpe319ZnVuY3Rpb24gdGcodCxlKXtpZih0LmZvckVhY2gmJiJmdW5jdGlvbiI9PXR5cGVvZiB0LmZvckVhY2gpdC5mb3JFYWNoKGUsdm9pZCAwKTtlbHNlIGlmKEJwKHQpfHwic3RyaW5nIj09dHlwZW9mIHQpdGQodCxlLHZvaWQgMCk7ZWxzZXtpZih0LkwmJiJmdW5jdGlvbiI9PXR5cGVvZiB0LkwpdmFyIG49dC5MKCk7ZWxzZSBpZih0LksmJiJmdW5jdGlvbiI9PXR5cGVvZiB0Lkspbj12b2lkIDA7ZWxzZSBpZihCcCh0KXx8InN0cmluZyI9PXR5cGVvZiB0KWZvcih2YXIgbj1bXSxyPXQubGVuZ3RoLGk9MDtpPHI7aSsrKW4ucHVzaChpKTtlbHNlIGZvcihpIGluIG49W10scj0wLHQpbltyKytdPWk7Zm9yKHZhciBpPShyPWZ1bmN0aW9uKHQpe2lmKHQuSyYmImZ1bmN0aW9uIj09dHlwZW9mIHQuSylyZXR1cm4gdC5LKCk7aWYoInN0cmluZyI9PXR5cGVvZiB0KXJldHVybiB0LnNwbGl0KCIiKTtpZihCcCh0KSl7Zm9yKHZhciBlPVtdLG49dC5sZW5ndGgscj0wO3I8bjtyKyspZS5wdXNoKHRbcl0pO3JldHVybiBlfWZvcihyIGluIGU9W10sbj0wLHQpZVtuKytdPXRbcl07cmV0dXJuIGV9KHQpKS5sZW5ndGgsbz0wO288aTtvKyspZS5jYWxsKHZvaWQgMCxyW29dLG4mJm5bb10sdCl9fWZ1bmN0aW9uIGVnKHQsZSl7dGhpcy5iPXt9LHRoaXMuYT1bXSx0aGlzLmM9MDt2YXIgbj1hcmd1bWVudHMubGVuZ3RoO2lmKDE8bil7aWYobiUyKXRocm93IEVycm9yKCJVbmV2ZW4gbnVtYmVyIG9mIGFyZ3VtZW50cyIpO2Zvcih2YXIgcj0wO3I8bjtyKz0yKXRoaXMuc2V0KGFyZ3VtZW50c1tyXSxhcmd1bWVudHNbcisxXSl9ZWxzZSBpZih0KWlmKHQgaW5zdGFuY2VvZiBlZylmb3Iobj10LkwoKSxyPTA7cjxuLmxlbmd0aDtyKyspdGhpcy5zZXQobltyXSx0LmdldChuW3JdKSk7ZWxzZSBmb3IociBpbiB0KXRoaXMuc2V0KHIsdFtyXSl9ZnVuY3Rpb24gbmcodCl7aWYodC5jIT10LmEubGVuZ3RoKXtmb3IodmFyIGU9MCxuPTA7ZTx0LmEubGVuZ3RoOyl7dmFyIHI9dC5hW2VdO3JnKHQuYixyKSYmKHQuYVtuKytdPXIpLGUrK310LmEubGVuZ3RoPW59aWYodC5jIT10LmEubGVuZ3RoKXtmb3IodmFyIGk9e30sbj1lPTA7ZTx0LmEubGVuZ3RoOylyZyhpLHI9dC5hW2VdKXx8KGlbdC5hW24rK109cl09MSksZSsrO3QuYS5sZW5ndGg9bn19ZnVuY3Rpb24gcmcodCxlKXtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQsZSl9KHo9cXYucHJvdG90eXBlKS5zZXRUaW1lb3V0PWZ1bmN0aW9uKHQpe3RoaXMuUD10fSx6LlhhPWZ1bmN0aW9uKHQpe3Q9dC50YXJnZXQ7dmFyIGU9dGhpcy5GO2UmJjM9PVhnKHQpP2UuZigpOnRoaXMuQ2EodCl9LHouQ2E9ZnVuY3Rpb24odCl7dHJ5e2lmKHQ9PXRoaXMuYSl0Ont2YXIgZT1YZyh0aGlzLmEpLG49dGhpcy5hLnVhKCkscj10aGlzLmEuVygpO2lmKCEoZTwzfHwzPT1lJiYhbWQmJiF0aGlzLmEuJCgpKSl7dGhpcy5BfHw0IT1lfHw3PT1ufHxrdig4PT1ufHxyPD0wPzM6MiksWHYodGhpcyk7dmFyIGk9dGhpcy5hLlcoKTt0aGlzLk49aTt2YXIgbz10aGlzLmEuJCgpO2lmKHRoaXMuYj0yMDA9PWkscj10aGlzLmMsdT10aGlzLm0sYz10aGlzLmwsaD10aGlzLmYsbD10aGlzLlMsZj1lLHA9aSxyLmluZm8oZnVuY3Rpb24oKXtyZXR1cm4iWE1MSFRUUCBSRVNQICgiK2grIikgWyBhdHRlbXB0ICIrbCsiXTogIit1KyJcbiIrYysiXG4iK2YrIiAiK3B9KSx0aGlzLmIpe2lmKHRoaXMuVSYmIXRoaXMuQyl7ZTp7aWYodGhpcy5hKXt2YXIgcz10aGlzLmE7aWYoKHM9cy5hP3MuYS5nZXRSZXNwb25zZUhlYWRlcigiWC1IVFRQLUluaXRpYWwtUmVzcG9uc2UiKTpudWxsKSYmIXJkKHMpKXt2YXIgYT1zO2JyZWFrIGV9fWE9bnVsbH1pZighYSl7dGhpcy5iPSExLHRoaXMuaD0zLFB2KDEyKSwkdih0aGlzKSxKdih0aGlzKTticmVhayB0fUV2KHRoaXMuYyx0aGlzLmYsYSwiSW5pdGlhbCBoYW5kc2hha2UgcmVzcG9uc2UgdmlhIFgtSFRUUC1Jbml0aWFsLVJlc3BvbnNlIiksdGhpcy5DPSEwLFp2KHRoaXMsYSl9dGhpcy5JPyh6dih0aGlzLGUsbyksbWQmJnRoaXMuYiYmMz09ZSYmKF92KHRoaXMuSix0aGlzLlIsInRpY2siLHRoaXMuV2EpLHRoaXMuUi5zdGFydCgpKSk6KEV2KHRoaXMuYyx0aGlzLmYsbyxudWxsKSxadih0aGlzLG8pKSw0PT1lJiYkdih0aGlzKSx0aGlzLmImJiF0aGlzLkEmJig0PT1lP3B5KHRoaXMuZyx0aGlzKToodGhpcy5iPSExLFF2KHRoaXMpKSl9ZWxzZSA0MDA9PWkmJjA8by5pbmRleE9mKCJVbmtub3duIFNJRCIpPyh0aGlzLmg9MyxQdigxMikpOih0aGlzLmg9MCxQdigxMykpLCR2KHRoaXMpLEp2KHRoaXMpfX19Y2F0Y2godCl7fXZhciB1LGMsaCxsLGYscH0sei5XYT1mdW5jdGlvbigpe3ZhciB0LGU7dGhpcy5hJiYodD1YZyh0aGlzLmEpLGU9dGhpcy5hLiQoKSx0aGlzLkQ8ZS5sZW5ndGgmJihYdih0aGlzKSx6dih0aGlzLHQsZSksdGhpcy5iJiY0IT10JiZRdih0aGlzKSkpfSx6LmNhbmNlbD1mdW5jdGlvbigpe3RoaXMuQT0hMCwkdih0aGlzKX0sei5WYT1mdW5jdGlvbigpe3RoaXMubz1udWxsO3ZhciB0LGUsbj1YcCgpOzA8PW4tdGhpcy5UPyh0PXRoaXMuYyxlPXRoaXMubCx0LmluZm8oZnVuY3Rpb24oKXtyZXR1cm4iVElNRU9VVDogIitlfSksMiE9dGhpcy5IJiYoa3YoMyksUHYoMTcpKSwkdih0aGlzKSx0aGlzLmg9MixKdih0aGlzKSk6WXYodGhpcyx0aGlzLlQtbil9LCh6PWVnLnByb3RvdHlwZSkuSz1mdW5jdGlvbigpe25nKHRoaXMpO2Zvcih2YXIgdD1bXSxlPTA7ZTx0aGlzLmEubGVuZ3RoO2UrKyl0LnB1c2godGhpcy5iW3RoaXMuYVtlXV0pO3JldHVybiB0fSx6Lkw9ZnVuY3Rpb24oKXtyZXR1cm4gbmcodGhpcyksdGhpcy5hLmNvbmNhdCgpfSx6LmdldD1mdW5jdGlvbih0LGUpe3JldHVybiByZyh0aGlzLmIsdCk/dGhpcy5iW3RdOmV9LHouc2V0PWZ1bmN0aW9uKHQsZSl7cmcodGhpcy5iLHQpfHwodGhpcy5jKyssdGhpcy5hLnB1c2godCkpLHRoaXMuYlt0XT1lfSx6LmZvckVhY2g9ZnVuY3Rpb24odCxlKXtmb3IodmFyIG49dGhpcy5MKCkscj0wO3I8bi5sZW5ndGg7cisrKXt2YXIgaT1uW3JdLG89dGhpcy5nZXQoaSk7dC5jYWxsKGUsbyxpLHRoaXMpfX07dmFyIGlnPS9eKD86KFteOi8/Iy5dKyk6KT8oPzpcL1wvKD86KFteXFwvPyNdKilAKT8oW15cXC8/I10qPykoPzo6KFswLTldKykpPyg/PVtcXC8/I118JCkpPyhbXj8jXSspPyg/Olw/KFteI10qKSk/KD86IyhbXHNcU10qKSk/JC87ZnVuY3Rpb24gb2codCxlKXt2YXIgbjt0aGlzLmM9dGhpcy5qPXRoaXMuZj0iIix0aGlzLmg9bnVsbCx0aGlzLmk9dGhpcy5nPSIiLHRoaXMuYT0hMSx0IGluc3RhbmNlb2Ygb2c/KHRoaXMuYT12b2lkIDAhPT1lP2U6dC5hLGFnKHRoaXMsdC5mKSx0aGlzLmo9dC5qLHVnKHRoaXMsdC5jKSxjZyh0aGlzLHQuaCksdGhpcy5nPXQuZyxlPXQuYiwobj1uZXcgX2cpLmM9ZS5jLGUuYSYmKG4uYT1uZXcgZWcoZS5hKSxuLmI9ZS5iKSxoZyh0aGlzLG4pLHRoaXMuaT10LmkpOnQmJihuPVN0cmluZyh0KS5tYXRjaChpZykpPyh0aGlzLmE9ISFlLGFnKHRoaXMsblsxXXx8IiIsITApLHRoaXMuaj1wZyhuWzJdfHwiIiksdWcodGhpcyxuWzNdfHwiIiwhMCksY2codGhpcyxuWzRdKSx0aGlzLmc9cGcobls1XXx8IiIsITApLGhnKHRoaXMsbls2XXx8IiIsITApLHRoaXMuaT1wZyhuWzddfHwiIikpOih0aGlzLmE9ISFlLHRoaXMuYj1uZXcgX2cobnVsbCx0aGlzLmEpKX1mdW5jdGlvbiBzZyh0KXtyZXR1cm4gbmV3IG9nKHQpfWZ1bmN0aW9uIGFnKHQsZSxuKXt0LmY9bj9wZyhlLCEwKTplLHQuZiYmKHQuZj10LmYucmVwbGFjZSgvOiQvLCIiKSl9ZnVuY3Rpb24gdWcodCxlLG4pe3QuYz1uP3BnKGUsITApOmV9ZnVuY3Rpb24gY2codCxlKXtpZihlKXtpZihlPU51bWJlcihlKSxpc05hTihlKXx8ZTwwKXRocm93IEVycm9yKCJCYWQgcG9ydCBudW1iZXIgIitlKTt0Lmg9ZX1lbHNlIHQuaD1udWxsfWZ1bmN0aW9uIGhnKHQsZSxuKXt2YXIgcixpO2UgaW5zdGFuY2VvZiBfZz8odC5iPWUscj10LmIsKGk9dC5hKSYmIXIuZiYmKElnKHIpLHIuYz1udWxsLHIuYS5mb3JFYWNoKGZ1bmN0aW9uKHQsZSl7dmFyIG49ZS50b0xvd2VyQ2FzZSgpO2UhPW4mJihUZyh0aGlzLGUpLFNnKHRoaXMsbix0KSl9LHIpKSxyLmY9aSk6KG58fChlPWRnKGUsYmcpKSx0LmI9bmV3IF9nKGUsdC5hKSl9ZnVuY3Rpb24gbGcodCxlLG4pe3QuYi5zZXQoZSxuKX1mdW5jdGlvbiBmZyh0KXtyZXR1cm4gbGcodCwiengiLE1hdGguZmxvb3IoMjE0NzQ4MzY0OCpNYXRoLnJhbmRvbSgpKS50b1N0cmluZygzNikrTWF0aC5hYnMoTWF0aC5mbG9vcigyMTQ3NDgzNjQ4Kk1hdGgucmFuZG9tKCkpXlhwKCkpLnRvU3RyaW5nKDM2KSksdH1mdW5jdGlvbiBwZyh0LGUpe3JldHVybiB0P2U/ZGVjb2RlVVJJKHQucmVwbGFjZSgvJTI1L2csIiUyNTI1IikpOmRlY29kZVVSSUNvbXBvbmVudCh0KToiIn1mdW5jdGlvbiBkZyh0LGUsbil7cmV0dXJuInN0cmluZyI9PXR5cGVvZiB0Pyh0PWVuY29kZVVSSSh0KS5yZXBsYWNlKGUsdmcpLHQ9bj90LnJlcGxhY2UoLyUyNShbMC05YS1mQS1GXXsyfSkvZywiJSQxIik6dCk6bnVsbH1mdW5jdGlvbiB2Zyh0KXtyZXR1cm4iJSIrKCh0PXQuY2hhckNvZGVBdCgwKSk+PjQmMTUpLnRvU3RyaW5nKDE2KSsoMTUmdCkudG9TdHJpbmcoMTYpfW9nLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3ZhciB0PVtdLGU9dGhpcy5mO2UmJnQucHVzaChkZyhlLGdnLCEwKSwiOiIpO3ZhciBuPXRoaXMuYztyZXR1cm4hbiYmImZpbGUiIT1lfHwodC5wdXNoKCIvLyIpLChlPXRoaXMuaikmJnQucHVzaChkZyhlLGdnLCEwKSwiQCIpLHQucHVzaChlbmNvZGVVUklDb21wb25lbnQoU3RyaW5nKG4pKS5yZXBsYWNlKC8lMjUoWzAtOWEtZkEtRl17Mn0pL2csIiUkMSIpKSxudWxsIT0obj10aGlzLmgpJiZ0LnB1c2goIjoiLFN0cmluZyhuKSkpLChuPXRoaXMuZykmJih0aGlzLmMmJiIvIiE9bi5jaGFyQXQoMCkmJnQucHVzaCgiLyIpLHQucHVzaChkZyhuLCIvIj09bi5jaGFyQXQoMCk/bWc6eWcsITApKSksKG49dGhpcy5iLnRvU3RyaW5nKCkpJiZ0LnB1c2goIj8iLG4pLChuPXRoaXMuaSkmJnQucHVzaCgiIyIsZGcobix3ZykpLHQuam9pbigiIil9O3ZhciBnZz0vWyNcL1w/QF0vZyx5Zz0vWyNcPzpdL2csbWc9L1sjXD9dL2csYmc9L1sjXD9AXS9nLHdnPS8jL2c7ZnVuY3Rpb24gX2codCxlKXt0aGlzLmI9dGhpcy5hPW51bGwsdGhpcy5jPXR8fG51bGwsdGhpcy5mPSEhZX1mdW5jdGlvbiBJZyhuKXtuLmF8fChuLmE9bmV3IGVnLG4uYj0wLG4uYyYmZnVuY3Rpb24odCxlKXtpZih0KXt0PXQuc3BsaXQoIiYiKTtmb3IodmFyIG49MDtuPHQubGVuZ3RoO24rKyl7dmFyIHIsaT10W25dLmluZGV4T2YoIj0iKSxvPW51bGw7MDw9aT8ocj10W25dLnN1YnN0cmluZygwLGkpLG89dFtuXS5zdWJzdHJpbmcoaSsxKSk6cj10W25dLGUocixvP2RlY29kZVVSSUNvbXBvbmVudChvLnJlcGxhY2UoL1wrL2csIiAiKSk6IiIpfX19KG4uYyxmdW5jdGlvbih0LGUpe24uYWRkKGRlY29kZVVSSUNvbXBvbmVudCh0LnJlcGxhY2UoL1wrL2csIiAiKSksZSl9KSl9ZnVuY3Rpb24gVGcodCxlKXtJZyh0KSxlPUNnKHQsZSkscmcodC5hLmIsZSkmJih0LmM9bnVsbCx0LmItPXQuYS5nZXQoZSkubGVuZ3RoLHJnKCh0PXQuYSkuYixlKSYmKGRlbGV0ZSB0LmJbZV0sdC5jLS0sdC5hLmxlbmd0aD4yKnQuYyYmbmcodCkpKX1mdW5jdGlvbiBFZyh0LGUpe3JldHVybiBJZyh0KSxlPUNnKHQsZSkscmcodC5hLmIsZSl9ZnVuY3Rpb24gU2codCxlLG4pe1RnKHQsZSksMDxuLmxlbmd0aCYmKHQuYz1udWxsLHQuYS5zZXQoQ2codCxlKSxuZChuKSksdC5iKz1uLmxlbmd0aCl9ZnVuY3Rpb24gQ2codCxlKXtyZXR1cm4gZT1TdHJpbmcoZSksZT10LmY/ZS50b0xvd2VyQ2FzZSgpOmV9KHo9X2cucHJvdG90eXBlKS5hZGQ9ZnVuY3Rpb24odCxlKXtJZyh0aGlzKSx0aGlzLmM9bnVsbCx0PUNnKHRoaXMsdCk7dmFyIG49dGhpcy5hLmdldCh0KTtyZXR1cm4gbnx8dGhpcy5hLnNldCh0LG49W10pLG4ucHVzaChlKSx0aGlzLmIrPTEsdGhpc30sei5mb3JFYWNoPWZ1bmN0aW9uKG4scil7SWcodGhpcyksdGhpcy5hLmZvckVhY2goZnVuY3Rpb24odCxlKXt0ZCh0LGZ1bmN0aW9uKHQpe24uY2FsbChyLHQsZSx0aGlzKX0sdGhpcyl9LHRoaXMpfSx6Lkw9ZnVuY3Rpb24oKXtJZyh0aGlzKTtmb3IodmFyIHQ9dGhpcy5hLksoKSxlPXRoaXMuYS5MKCksbj1bXSxyPTA7cjxlLmxlbmd0aDtyKyspZm9yKHZhciBpPXRbcl0sbz0wO288aS5sZW5ndGg7bysrKW4ucHVzaChlW3JdKTtyZXR1cm4gbn0sei5LPWZ1bmN0aW9uKHQpe0lnKHRoaXMpO3ZhciBlPVtdO2lmKCJzdHJpbmciPT10eXBlb2YgdClFZyh0aGlzLHQpJiYoZT1lZChlLHRoaXMuYS5nZXQoQ2codGhpcyx0KSkpKTtlbHNle3Q9dGhpcy5hLksoKTtmb3IodmFyIG49MDtuPHQubGVuZ3RoO24rKyllPWVkKGUsdFtuXSl9cmV0dXJuIGV9LHouc2V0PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIElnKHRoaXMpLHRoaXMuYz1udWxsLEVnKHRoaXMsdD1DZyh0aGlzLHQpKSYmKHRoaXMuYi09dGhpcy5hLmdldCh0KS5sZW5ndGgpLHRoaXMuYS5zZXQodCxbZV0pLHRoaXMuYis9MSx0aGlzfSx6LmdldD1mdW5jdGlvbih0LGUpe3JldHVybiB0JiYwPCh0PXRoaXMuSyh0KSkubGVuZ3RoP1N0cmluZyh0WzBdKTplfSx6LnRvU3RyaW5nPWZ1bmN0aW9uKCl7aWYodGhpcy5jKXJldHVybiB0aGlzLmM7aWYoIXRoaXMuYSlyZXR1cm4iIjtmb3IodmFyIHQ9W10sZT10aGlzLmEuTCgpLG49MDtuPGUubGVuZ3RoO24rKylmb3IodmFyIHI9ZVtuXSxpPWVuY29kZVVSSUNvbXBvbmVudChTdHJpbmcocikpLHI9dGhpcy5LKHIpLG89MDtvPHIubGVuZ3RoO28rKyl7dmFyIHM9aTsiIiE9PXJbb10mJihzKz0iPSIrZW5jb2RlVVJJQ29tcG9uZW50KFN0cmluZyhyW29dKSkpLHQucHVzaChzKX1yZXR1cm4gdGhpcy5jPXQuam9pbigiJiIpfTt2YXIgTmc9ZnVuY3Rpb24odCxlKXt0aGlzLmI9dCx0aGlzLmE9ZX07ZnVuY3Rpb24gQWcodCl7dGhpcy5nPXR8fGtnLHQ9cXAuUGVyZm9ybWFuY2VOYXZpZ2F0aW9uVGltaW5nPzA8KHQ9cXAucGVyZm9ybWFuY2UuZ2V0RW50cmllc0J5VHlwZSgibmF2aWdhdGlvbiIpKS5sZW5ndGgmJigiaHEiPT10WzBdLm5leHRIb3BQcm90b2NvbHx8ImgyIj09dFswXS5uZXh0SG9wUHJvdG9jb2wpOiEhKHFwLmlhJiZxcC5pYS55YSYmcXAuaWEueWEoKSYmcXAuaWEueWEoKS5MYiksdGhpcy5mPXQ/dGhpcy5nOjEsdGhpcy5hPW51bGwsMTx0aGlzLmYmJih0aGlzLmE9bmV3IFNldCksdGhpcy5iPW51bGwsdGhpcy5jPVtdfXZhciBrZz0xMDtmdW5jdGlvbiBSZyh0KXtyZXR1cm4gdC5ifHx0LmEmJnQuYS5zaXplPj10LmZ9ZnVuY3Rpb24gUGcodCl7cmV0dXJuIHQuYj8xOnQuYT90LmEuc2l6ZTowfWZ1bmN0aW9uIE9nKHQsZSl7cmV0dXJuIHQuYj90LmI9PWU6dC5hJiZ0LmEuaGFzKGUpfWZ1bmN0aW9uIERnKHQsZSl7dC5hP3QuYS5hZGQoZSk6dC5iPWV9ZnVuY3Rpb24geGcodCxlKXt0LmImJnQuYj09ZT90LmI9bnVsbDp0LmEmJnQuYS5oYXMoZSkmJnQuYS5kZWxldGUoZSl9ZnVuY3Rpb24gTGcodCl7dmFyIGUsbjtpZihudWxsIT10LmIpcmV0dXJuIHQuYy5jb25jYXQodC5iLnMpO2lmKG51bGw9PXQuYXx8MD09PXQuYS5zaXplKXJldHVybiBuZCh0LmMpO3ZhciByPXQuYzt0cnl7Zm9yKHZhciBpPVVwKHQuYS52YWx1ZXMoKSksbz1pLm5leHQoKTshby5kb25lO289aS5uZXh0KCkpdmFyIHM9by52YWx1ZSxyPXIuY29uY2F0KHMucyl9Y2F0Y2godCl7ZT17ZXJyb3I6dH19ZmluYWxseXt0cnl7byYmIW8uZG9uZSYmKG49aS5yZXR1cm4pJiZuLmNhbGwoaSl9ZmluYWxseXtpZihlKXRocm93IGUuZXJyb3J9fXJldHVybiByfWZ1bmN0aW9uIE1nKCl7fWZ1bmN0aW9uIEZnKCl7dGhpcy5hPW5ldyBNZ31mdW5jdGlvbiBVZyh0LGUsbixyLGkpe3RyeXtlLm9ubG9hZD1udWxsLGUub25lcnJvcj1udWxsLGUub25hYm9ydD1udWxsLGUub250aW1lb3V0PW51bGwsaShyKX1jYXRjaCh0KXt9fUFnLnByb3RvdHlwZS5jYW5jZWw9ZnVuY3Rpb24oKXt2YXIgZSx0O2lmKHRoaXMuYz1MZyh0aGlzKSx0aGlzLmIpdGhpcy5iLmNhbmNlbCgpLHRoaXMuYj1udWxsO2Vsc2UgaWYodGhpcy5hJiYwIT09dGhpcy5hLnNpemUpe3RyeXtmb3IodmFyIG49VXAodGhpcy5hLnZhbHVlcygpKSxyPW4ubmV4dCgpOyFyLmRvbmU7cj1uLm5leHQoKSlyLnZhbHVlLmNhbmNlbCgpfWNhdGNoKHQpe2U9e2Vycm9yOnR9fWZpbmFsbHl7dHJ5e3ImJiFyLmRvbmUmJih0PW4ucmV0dXJuKSYmdC5jYWxsKG4pfWZpbmFsbHl7aWYoZSl0aHJvdyBlLmVycm9yfX10aGlzLmEuY2xlYXIoKX19LE1nLnByb3RvdHlwZS5zdHJpbmdpZnk9ZnVuY3Rpb24odCl7cmV0dXJuIHFwLkpTT04uc3RyaW5naWZ5KHQsdm9pZCAwKX0sTWcucHJvdG90eXBlLnBhcnNlPWZ1bmN0aW9uKHQpe3JldHVybiBxcC5KU09OLnBhcnNlKHQsdm9pZCAwKX07dmFyIGpnPXFwLkpTT04ucGFyc2U7ZnVuY3Rpb24gcWcodCl7SmQuY2FsbCh0aGlzKSx0aGlzLmhlYWRlcnM9bmV3IGVnLHRoaXMuSD10fHxudWxsLHRoaXMuYj0hMSx0aGlzLnM9dGhpcy5hPW51bGwsdGhpcy5CPSIiLHRoaXMuaD0wLHRoaXMuZj0iIix0aGlzLmc9dGhpcy5BPXRoaXMubD10aGlzLnU9ITEsdGhpcy5vPTAsdGhpcy5tPW51bGwsdGhpcy5JPVZnLHRoaXMuRD10aGlzLkY9ITF9SnAocWcsSmQpO3ZhciBWZz0iIixCZz0vXmh0dHBzPyQvaSxLZz1bIlBPU1QiLCJQVVQiXTtmdW5jdGlvbiBXZyh0KXtyZXR1cm4iY29udGVudC10eXBlIj09dC50b0xvd2VyQ2FzZSgpfWZ1bmN0aW9uIEhnKHQsZSl7dC5iPSExLHQuYSYmKHQuZz0hMCx0LmEuYWJvcnQoKSx0Lmc9ITEpLHQuZj1lLHQuaD01LEdnKHQpLFFnKHQpfWZ1bmN0aW9uIEdnKHQpe3QudXx8KHQudT0hMCwkZCh0LCJjb21wbGV0ZSIpLCRkKHQsImVycm9yIikpfWZ1bmN0aW9uIHpnKHQpe2lmKHQuYiYmdm9pZCAwIT09anAmJighdC5zWzFdfHw0IT1YZyh0KXx8MiE9dC5XKCkpKWlmKHQubCYmND09WGcodCkpZnYodC56YSwwLHQpO2Vsc2UgaWYoJGQodCwicmVhZHlzdGF0ZWNoYW5nZSIpLDQ9PVhnKHQpKXt0LmI9ITE7dHJ5e3ZhciBlLG4scixpLG89dC5XKCk7dDpzd2l0Y2gobyl7Y2FzZSAyMDA6Y2FzZSAyMDE6Y2FzZSAyMDI6Y2FzZSAyMDQ6Y2FzZSAyMDY6Y2FzZSAzMDQ6Y2FzZSAxMjIzOnZhciBzPSEwO2JyZWFrIHQ7ZGVmYXVsdDpzPSExfShlPXMpfHwoKG49MD09PW8pJiYoIShpPVN0cmluZyh0LkIpLm1hdGNoKGlnKVsxXXx8bnVsbCkmJnFwLnNlbGYmJnFwLnNlbGYubG9jYXRpb24mJihpPShyPXFwLnNlbGYubG9jYXRpb24ucHJvdG9jb2wpLnN1YnN0cigwLHIubGVuZ3RoLTEpKSxuPSFCZy50ZXN0KGk/aS50b0xvd2VyQ2FzZSgpOiIiKSksZT1uKTtpZihlKSRkKHQsImNvbXBsZXRlIiksJGQodCwic3VjY2VzcyIpO2Vsc2V7dC5oPTY7dHJ5e3ZhciBhPTI8WGcodCk/dC5hLnN0YXR1c1RleHQ6IiJ9Y2F0Y2gobyl7YT0iIn10LmY9YSsiIFsiK3QuVygpKyJdIixHZyh0KX19ZmluYWxseXtRZyh0KX19fWZ1bmN0aW9uIFFnKHQsZSl7aWYodC5hKXtZZyh0KTt2YXIgbj10LmEscj10LnNbMF0/VnA6bnVsbDt0LmE9bnVsbCx0LnM9bnVsbCxlfHwkZCh0LCJyZWFkeSIpO3RyeXtuLm9ucmVhZHlzdGF0ZWNoYW5nZT1yfWNhdGNoKHQpe319fWZ1bmN0aW9uIFlnKHQpe3QuYSYmdC5EJiYodC5hLm9udGltZW91dD1udWxsKSx0Lm0mJihxcC5jbGVhclRpbWVvdXQodC5tKSx0Lm09bnVsbCl9ZnVuY3Rpb24gWGcodCl7cmV0dXJuIHQuYT90LmEucmVhZHlTdGF0ZTowfWZ1bmN0aW9uIEpnKHQsZSxuKXt0Ontmb3IociBpbiBuKXt2YXIgcj0hMTticmVhayB0fXI9ITB9dmFyIGk7cnx8KGk9IiIsY2QobixmdW5jdGlvbih0LGUpe2krPWUsaSs9IjoiLGkrPXQsaSs9IlxyXG4ifSksbj1pLCJzdHJpbmciPT10eXBlb2YgdD9udWxsIT1uJiZlbmNvZGVVUklDb21wb25lbnQoU3RyaW5nKG4pKTpsZyh0LGUsbikpfWZ1bmN0aW9uICRnKHQsZSxuKXtyZXR1cm4gbiYmbi5pbnRlcm5hbENoYW5uZWxQYXJhbXMmJm4uaW50ZXJuYWxDaGFubmVsUGFyYW1zW3RdfHxlfWZ1bmN0aW9uIFpnKHQpe3RoaXMucGE9MCx0aGlzLmc9W10sdGhpcy5jPW5ldyBUdix0aGlzLmdhPXRoaXMubGE9dGhpcy5CPXRoaXMuZmE9dGhpcy5hPXRoaXMubmE9dGhpcy5BPXRoaXMuVj10aGlzLmk9dGhpcy5PPXRoaXMubD1udWxsLHRoaXMuT2E9dGhpcy5SPTAsdGhpcy5MYT0kZygiZmFpbEZhc3QiLCExLHQpLHRoaXMuSD10aGlzLm09dGhpcy5qPXRoaXMuaD10aGlzLmY9bnVsbCx0aGlzLlM9ITAsdGhpcy5JPXRoaXMub2E9dGhpcy5QPS0xLHRoaXMuVD10aGlzLm89dGhpcy51PTAsdGhpcy5IYT0kZygiYmFzZVJldHJ5RGVsYXlNcyIsNWUzLHQpLHRoaXMuUmE9JGcoInJldHJ5RGVsYXlTZWVkTXMiLDFlNCx0KSx0aGlzLk1hPSRnKCJmb3J3YXJkQ2hhbm5lbE1heFJldHJpZXMiLDIsdCksdGhpcy5tYT0kZygiZm9yd2FyZENoYW5uZWxSZXF1ZXN0VGltZW91dE1zIiwyZTQsdCksdGhpcy5OYT10JiZ0Lmd8fHZvaWQgMCx0aGlzLkQ9dm9pZCAwLHRoaXMuQz10JiZ0LnN1cHBvcnRzQ3Jvc3NEb21haW5YaHJ8fCExLHRoaXMuSj0iIix0aGlzLmI9bmV3IEFnKHQmJnQuY29uY3VycmVudFJlcXVlc3RMaW1pdCksdGhpcy5rYT1uZXcgRmcsdGhpcy5kYT10JiZ0LmZhc3RIYW5kc2hha2V8fCExLHRoaXMuSWE9dCYmdC5ifHwhMSx0JiZ0LmYmJih0aGlzLmMuYT0hMSksdCYmdC5mb3JjZUxvbmdQb2xsaW5nJiYodGhpcy5TPSExKSx0aGlzLlU9IXRoaXMuZGEmJnRoaXMuUyYmdCYmdC5kZXRlY3RCdWZmZXJpbmdQcm94eXx8ITEsdGhpcy5lYT12b2lkIDAsdGhpcy5OPTAsdGhpcy5GPSExLHRoaXMucz1udWxsLCh0aGlzLkthPXQmJnQuY3x8ITEpJiZ0aGlzLmMuaW5mbygiT3B0LWluIHRvIGVuYWJsZSBDaHJvbWUgT3JpZ2luIFRyaWFscy4iKX1mdW5jdGlvbiB0eSh0KXt2YXIgZSxuO255KHQpLDM9PXQudiYmKGU9dC5SKyssbGcobj1zZyh0LkIpLCJTSUQiLHQuSiksbGcobiwiUklEIixlKSxsZyhuLCJUWVBFIiwidGVybWluYXRlIiksc3kodCxuKSwoZT1uZXcgcXYodCx0LmMsZSx2b2lkIDApKS5IPTIsZS5pPWZnKHNnKG4pKSxuPSExLCEobj1xcC5uYXZpZ2F0b3ImJnFwLm5hdmlnYXRvci5zZW5kQmVhY29uP3FwLm5hdmlnYXRvci5zZW5kQmVhY29uKGUuaS50b1N0cmluZygpLCIiKTpuKSYmcXAuSW1hZ2UmJigobmV3IEltYWdlKS5zcmM9ZS5pLG49ITApLG58fChlLmE9bXkoZS5nLG51bGwpLGUuYS5iYShlLmkpKSxlLnU9WHAoKSxRdihlKSksZ3kodCl9ZnVuY3Rpb24gZXkodCl7dC5hJiYoaHkodCksdC5hLmNhbmNlbCgpLHQuYT1udWxsKX1mdW5jdGlvbiBueSh0KXtleSh0KSx0LmomJihxcC5jbGVhclRpbWVvdXQodC5qKSx0Lmo9bnVsbCksZnkodCksdC5iLmNhbmNlbCgpLHQuaCYmKCJudW1iZXIiPT10eXBlb2YgdC5oJiZxcC5jbGVhclRpbWVvdXQodC5oKSx0Lmg9bnVsbCl9ZnVuY3Rpb24gcnkodCxlKXt0LmcucHVzaChuZXcgTmcodC5PYSsrLGUpKSwzPT10LnYmJml5KHQpfWZ1bmN0aW9uIGl5KHQpe1JnKHQuYil8fHQuaHx8KHQuaD0hMCxzdih0LkJhLHQpLHQudT0wKX1mdW5jdGlvbiBveSh0LGUpe3ZhciBuPWU/ZS5mOnQuUisrLHI9c2codC5CKTtsZyhyLCJTSUQiLHQuSiksbGcociwiUklEIixuKSxsZyhyLCJBSUQiLHQuUCksc3kodCxyKSx0LmkmJnQubCYmSmcocix0LmksdC5sKSxuPW5ldyBxdih0LHQuYyxuLHQudSsxKSxudWxsPT09dC5pJiYobi5CPXQubCksZSYmKHQuZz1lLnMuY29uY2F0KHQuZykpLGU9YXkodCxuLDFlMyksbi5zZXRUaW1lb3V0KE1hdGgucm91bmQoLjUqdC5tYSkrTWF0aC5yb3VuZCguNSp0Lm1hKk1hdGgucmFuZG9tKCkpKSxEZyh0LmIsbiksSHYobixyLGUpfWZ1bmN0aW9uIHN5KHQsbil7dC5mJiZ0Zyh7fSxmdW5jdGlvbih0LGUpe2xnKG4sZSx0KX0pfWZ1bmN0aW9uIGF5KHQsZSxuKXtuPU1hdGgubWluKHQuZy5sZW5ndGgsbik7dmFyIHI9dC5mP1FwKHQuZi5KYSx0LmYsdCk6bnVsbDt0OmZvcih2YXIgaT10Lmcsbz0tMTs7KXt2YXIgcz1bImNvdW50PSIrbl07LTE9PW8/MDxuPyhvPWlbMF0uYixzLnB1c2goIm9mcz0iK28pKTpvPTA6cy5wdXNoKCJvZnM9IitvKTtmb3IodmFyIGE9ITAsdT0wO3U8bjt1Kyspe3ZhciBjPWlbdV0uYixoPWlbdV0uYTtpZigoYy09byk8MClvPU1hdGgubWF4KDAsaVt1XS5iLTEwMCksYT0hMTtlbHNlIHRyeXshZnVuY3Rpb24odCxyLGUpe3ZhciBpPWV8fCIiO3RyeXt0Zyh0LGZ1bmN0aW9uKHQsZSl7dmFyIG49dDtLcCh0KSYmKG49dHYodCkpLHIucHVzaChpK2UrIj0iK2VuY29kZVVSSUNvbXBvbmVudChuKSl9KX1jYXRjaCh0KXt0aHJvdyByLnB1c2goaSsidHlwZT0iK2VuY29kZVVSSUNvbXBvbmVudCgiX2JhZG1hcCIpKSx0fX0oaCxzLCJyZXEiK2MrIl8iKX1jYXRjaCh0KXtyJiZyKGgpfX1pZihhKXtyPXMuam9pbigiJiIpO2JyZWFrIHR9fXJldHVybiB0PXQuZy5zcGxpY2UoMCxuKSxlLnM9dCxyfWZ1bmN0aW9uIHV5KHQpe3QuYXx8dC5qfHwodC5UPTEsc3YodC5BYSx0KSx0Lm89MCl9ZnVuY3Rpb24gY3kodCl7cmV0dXJuISh0LmF8fHQuanx8Mzw9dC5vKSYmKHQuVCsrLHQuaj1EdihRcCh0LkFhLHQpLGR5KHQsdC5vKSksdC5vKyssMSl9ZnVuY3Rpb24gaHkodCl7bnVsbCE9dC5zJiYocXAuY2xlYXJUaW1lb3V0KHQucyksdC5zPW51bGwpfWZ1bmN0aW9uIGx5KHQpe3QuYT1uZXcgcXYodCx0LmMsInJwYyIsdC5UKSxudWxsPT09dC5pJiYodC5hLkI9dC5sKSx0LmEuTz0wO3ZhciBlPXNnKHQubGEpO2xnKGUsIlJJRCIsInJwYyIpLGxnKGUsIlNJRCIsdC5KKSxsZyhlLCJDSSIsdC5IPyIwIjoiMSIpLGxnKGUsIkFJRCIsdC5QKSxzeSh0LGUpLGxnKGUsIlRZUEUiLCJ4bWxodHRwIiksdC5pJiZ0LmwmJkpnKGUsdC5pLHQubCksdC5EJiZ0LmEuc2V0VGltZW91dCh0LkQpO3ZhciBuPXQuYTt0PXQuZ2Esbi5IPTEsbi5pPWZnKHNnKGUpKSxuLmo9bnVsbCxuLkk9ITAsR3Yobix0KX1mdW5jdGlvbiBmeSh0KXtudWxsIT10Lm0mJihxcC5jbGVhclRpbWVvdXQodC5tKSx0Lm09bnVsbCl9ZnVuY3Rpb24gcHkodCxlKXt2YXIgbixyLGksbz1udWxsO2lmKHQuYT09ZSl7ZnkodCksaHkodCksdC5hPW51bGw7dmFyIHM9Mn1lbHNle2lmKCFPZyh0LmIsZSkpcmV0dXJuO289ZS5zLHhnKHQuYixlKSxzPTF9aWYodC5JPWUuTiwwIT10LnYpaWYoZS5iKTE9PXM/KG89ZS5qP2Uuai5sZW5ndGg6MCxlPVhwKCktZS51LG49dC51LCRkKHM9TnYoKSxuZXcgT3YocykpLGl5KHQpKTp1eSh0KTtlbHNlIGlmKDM9PShuPWUuaCl8fDA9PW4mJjA8dC5JfHwoMSE9c3x8KGk9ZSxQZygocj10KS5iKT49ci5iLmYtKHIuaD8xOjApfHwoci5oPyhyLmc9aS5zLmNvbmNhdChyLmcpLDApOjE9PXIudnx8Mj09ci52fHxyLnU+PShyLkxhPzA6ci5NYSl8fChyLmg9RHYoUXAoci5CYSxyLGkpLGR5KHIsci51KSksci51KyssMCkpKSkmJigyIT1zfHwhY3kodCkpKXN3aXRjaChvJiYwPG8ubGVuZ3RoJiYoZT10LmIsZS5jPWUuYy5jb25jYXQobykpLG4pe2Nhc2UgMTp2eSh0LDUpO2JyZWFrO2Nhc2UgNDp2eSh0LDEwKTticmVhaztjYXNlIDM6dnkodCw2KTticmVhaztkZWZhdWx0OnZ5KHQsMil9fWZ1bmN0aW9uIGR5KHQsZSl7dmFyIG49dC5IYStNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqdC5SYSk7cmV0dXJuIHQuZnx8KG4qPTIpLG4qZX1mdW5jdGlvbiB2eSh0LGUpe3ZhciBuLHIsaSxvO3QuYy5pbmZvKCJFcnJvciBjb2RlICIrZSksMj09ZT8ocj1udWxsLHQuZiYmKHI9bnVsbCksbz1RcCh0LllhLHQpLHJ8fChyPW5ldyBvZygiLy93d3cuZ29vZ2xlLmNvbS9pbWFnZXMvY2xlYXJkb3QuZ2lmIikscXAubG9jYXRpb24mJiJodHRwIj09cXAubG9jYXRpb24ucHJvdG9jb2x8fGFnKHIsImh0dHBzIiksZmcocikpLG49ci50b1N0cmluZygpLHI9byxvPW5ldyBUdixxcC5JbWFnZT8oKGk9bmV3IEltYWdlKS5vbmxvYWQ9WXAoVWcsbyxpLCJUZXN0TG9hZEltYWdlOiBsb2FkZWQiLCEwLHIpLGkub25lcnJvcj1ZcChVZyxvLGksIlRlc3RMb2FkSW1hZ2U6IGVycm9yIiwhMSxyKSxpLm9uYWJvcnQ9WXAoVWcsbyxpLCJUZXN0TG9hZEltYWdlOiBhYm9ydCIsITEsciksaS5vbnRpbWVvdXQ9WXAoVWcsbyxpLCJUZXN0TG9hZEltYWdlOiB0aW1lb3V0IiwhMSxyKSxxcC5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7aS5vbnRpbWVvdXQmJmkub250aW1lb3V0KCl9LDFlNCksaS5zcmM9bik6cighMSkpOlB2KDIpLHQudj0wLHQuZiYmdC5mLnJhKGUpLGd5KHQpLG55KHQpfWZ1bmN0aW9uIGd5KHQpe3Qudj0wLHQuST0tMSx0LmYmJigwPT1MZyh0LmIpLmxlbmd0aCYmMD09dC5nLmxlbmd0aHx8KHQuYi5jLmxlbmd0aD0wLG5kKHQuZyksdC5nLmxlbmd0aD0wKSx0LmYucWEoKSl9ZnVuY3Rpb24geXkodCxlLG4pe3ZhciByLGksbyxzLGEsdT0ocz1uKWluc3RhbmNlb2Ygb2c/c2cocyk6bmV3IG9nKHMsdm9pZCAwKTtyZXR1cm4iIiE9dS5jPyhlJiZ1Zyh1LGUrIi4iK3UuYyksY2codSx1LmgpKTooYT1xcC5sb2NhdGlvbixyPWEucHJvdG9jb2wsaT1lP2UrIi4iK2EuaG9zdG5hbWU6YS5ob3N0bmFtZSxvPSthLnBvcnQscz1uLGE9bmV3IG9nKG51bGwsdm9pZCAwKSxyJiZhZyhhLHIpLGkmJnVnKGEsaSksbyYmY2coYSxvKSxzJiYoYS5nPXMpLHU9YSksdC5WJiZjZCh0LlYsZnVuY3Rpb24odCxlKXtsZyh1LGUsdCl9KSxlPXQuQSxuPXQubmEsZSYmbiYmbGcodSxlLG4pLGxnKHUsIlZFUiIsdC5oYSksc3kodCx1KSx1fWZ1bmN0aW9uIG15KHQsZSl7aWYoZSYmIXQuQyl0aHJvdyBFcnJvcigiQ2FuJ3QgY3JlYXRlIHNlY29uZGFyeSBkb21haW4gY2FwYWJsZSBYaHJJbyBvYmplY3QuIik7cmV0dXJuKGU9bmV3IHFnKHQuTmEpKS5GPXQuQyxlfWZ1bmN0aW9uIGJ5KCl7fWZ1bmN0aW9uIHd5KCl7aWYoZ2QmJiEoMTA8PU51bWJlcihDZCkpKXRocm93IEVycm9yKCJFbnZpcm9ubWVudGFsIGVycm9yOiBubyBhdmFpbGFibGUgdHJhbnNwb3J0LiIpfWZ1bmN0aW9uIF95KHQsZSl7SmQuY2FsbCh0aGlzKSx0aGlzLmE9bmV3IFpnKGUpLHRoaXMubz10LHRoaXMuYj1lJiZlLm1lc3NhZ2VVcmxQYXJhbXN8fG51bGwsdD1lJiZlLm1lc3NhZ2VIZWFkZXJzfHxudWxsLGUmJmUuY2xpZW50UHJvdG9jb2xIZWFkZXJSZXF1aXJlZCYmKHQ/dFsiWC1DbGllbnQtUHJvdG9jb2wiXT0id2ViY2hhbm5lbCI6dD17IlgtQ2xpZW50LVByb3RvY29sIjoid2ViY2hhbm5lbCJ9KSx0aGlzLmEubD10LHQ9ZSYmZS5pbml0TWVzc2FnZUhlYWRlcnN8fG51bGwsZSYmZS5tZXNzYWdlQ29udGVudFR5cGUmJih0P3RbIlgtV2ViQ2hhbm5lbC1Db250ZW50LVR5cGUiXT1lLm1lc3NhZ2VDb250ZW50VHlwZTp0PXsiWC1XZWJDaGFubmVsLUNvbnRlbnQtVHlwZSI6ZS5tZXNzYWdlQ29udGVudFR5cGV9KSxlJiZlLmEmJih0P3RbIlgtV2ViQ2hhbm5lbC1DbGllbnQtUHJvZmlsZSJdPWUuYTp0PXsiWC1XZWJDaGFubmVsLUNsaWVudC1Qcm9maWxlIjplLmF9KSx0aGlzLmEuTz10LCh0PWUmJmUuaHR0cEhlYWRlcnNPdmVyd3JpdGVQYXJhbSkmJiFyZCh0KSYmKHRoaXMuYS5pPXQpLHRoaXMubT1lJiZlLnN1cHBvcnRzQ3Jvc3NEb21haW5YaHJ8fCExLHRoaXMubD1lJiZlLnNlbmRSYXdKc29ufHwhMSwoZT1lJiZlLmh0dHBTZXNzaW9uSWRQYXJhbSkmJiFyZChlKSYmKHRoaXMuYS5BPWUsbnVsbCE9PSh0PXRoaXMuYikmJmUgaW4gdCYmKGUgaW4odD10aGlzLmIpJiZkZWxldGUgdFtlXSkpLHRoaXMuZj1uZXcgRXkodGhpcyl9ZnVuY3Rpb24gSXkodCl7RnYuY2FsbCh0aGlzKTt2YXIgZT10Ll9fc21fXztpZihlKXt0Ontmb3IodmFyIG4gaW4gZSl7dD1uO2JyZWFrIHR9dD12b2lkIDB9KHRoaXMuYz10KT8odD10aGlzLmMsdGhpcy5kYXRhPW51bGwhPT1lJiZ0IGluIGU/ZVt0XTp2b2lkIDApOnRoaXMuZGF0YT1lfWVsc2UgdGhpcy5kYXRhPXR9ZnVuY3Rpb24gVHkoKXtVdi5jYWxsKHRoaXMpLHRoaXMuc3RhdHVzPTF9ZnVuY3Rpb24gRXkodCl7dGhpcy5hPXR9KHo9cWcucHJvdG90eXBlKS5iYT1mdW5jdGlvbih0LGUsbixyKXtpZih0aGlzLmEpdGhyb3cgRXJyb3IoIltnb29nLm5ldC5YaHJJb10gT2JqZWN0IGlzIGFjdGl2ZSB3aXRoIGFub3RoZXIgcmVxdWVzdD0iK3RoaXMuQisiOyBuZXdVcmk9Iit0KTtlPWU/ZS50b1VwcGVyQ2FzZSgpOiJHRVQiLHRoaXMuQj10LHRoaXMuZj0iIix0aGlzLmg9MCx0aGlzLnU9ITEsdGhpcy5iPSEwLHRoaXMuYT1uZXcgWE1MSHR0cFJlcXVlc3QsdGhpcy5zPXRoaXMuSD9Mdih0aGlzLkgpOkx2KFZ2KSx0aGlzLmEub25yZWFkeXN0YXRlY2hhbmdlPVFwKHRoaXMuemEsdGhpcyk7dHJ5e3RoaXMuQT0hMCx0aGlzLmEub3BlbihlLFN0cmluZyh0KSwhMCksdGhpcy5BPSExfWNhdGNoKHQpe3JldHVybiB2b2lkIEhnKHRoaXMsdCl9dD1ufHwiIjt2YXIgaSxvPW5ldyBlZyh0aGlzLmhlYWRlcnMpO3ImJnRnKHIsZnVuY3Rpb24odCxlKXtvLnNldChlLHQpfSkscj1mdW5jdGlvbih0KXt0Ontmb3IodmFyIGU9V2csbj10Lmxlbmd0aCxyPSJzdHJpbmciPT10eXBlb2YgdD90LnNwbGl0KCIiKTp0LGk9MDtpPG47aSsrKWlmKGkgaW4gciYmZS5jYWxsKHZvaWQgMCxyW2ldLGksdCkpe2U9aTticmVhayB0fWU9LTF9cmV0dXJuIGU8MD9udWxsOiJzdHJpbmciPT10eXBlb2YgdD90LmNoYXJBdChlKTp0W2VdfShvLkwoKSksbj1xcC5Gb3JtRGF0YSYmdCBpbnN0YW5jZW9mIHFwLkZvcm1EYXRhLDA8PVpwKEtnLGUpJiYhciYmIW4mJm8uc2V0KCJDb250ZW50LVR5cGUiLCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7Y2hhcnNldD11dGYtOCIpLG8uZm9yRWFjaChmdW5jdGlvbih0LGUpe3RoaXMuYS5zZXRSZXF1ZXN0SGVhZGVyKGUsdCl9LHRoaXMpLHRoaXMuSSYmKHRoaXMuYS5yZXNwb25zZVR5cGU9dGhpcy5JKSwid2l0aENyZWRlbnRpYWxzImluIHRoaXMuYSYmdGhpcy5hLndpdGhDcmVkZW50aWFscyE9PXRoaXMuRiYmKHRoaXMuYS53aXRoQ3JlZGVudGlhbHM9dGhpcy5GKTt0cnl7WWcodGhpcyksMDx0aGlzLm8mJigodGhpcy5EPShpPXRoaXMuYSxnZCYmU2QoOSkmJiJudW1iZXIiPT10eXBlb2YgaS50aW1lb3V0JiZ2b2lkIDAhPT1pLm9udGltZW91dCkpPyh0aGlzLmEudGltZW91dD10aGlzLm8sdGhpcy5hLm9udGltZW91dD1RcCh0aGlzLnhhLHRoaXMpKTp0aGlzLm09ZnYodGhpcy54YSx0aGlzLm8sdGhpcykpLHRoaXMubD0hMCx0aGlzLmEuc2VuZCh0KSx0aGlzLmw9ITF9Y2F0Y2godCl7SGcodGhpcyx0KX19LHoueGE9ZnVuY3Rpb24oKXt2b2lkIDAhPT1qcCYmdGhpcy5hJiYodGhpcy5mPSJUaW1lZCBvdXQgYWZ0ZXIgIit0aGlzLm8rIm1zLCBhYm9ydGluZyIsdGhpcy5oPTgsJGQodGhpcywidGltZW91dCIpLHRoaXMuYWJvcnQoOCkpfSx6LmFib3J0PWZ1bmN0aW9uKHQpe3RoaXMuYSYmdGhpcy5iJiYodGhpcy5iPSExLHRoaXMuZz0hMCx0aGlzLmEuYWJvcnQoKSx0aGlzLmc9ITEsdGhpcy5oPXR8fDcsJGQodGhpcywiY29tcGxldGUiKSwkZCh0aGlzLCJhYm9ydCIpLFFnKHRoaXMpKX0sei5HPWZ1bmN0aW9uKCl7dGhpcy5hJiYodGhpcy5iJiYodGhpcy5iPSExLHRoaXMuZz0hMCx0aGlzLmEuYWJvcnQoKSx0aGlzLmc9ITEpLFFnKHRoaXMsITApKSxxZy5YLkcuY2FsbCh0aGlzKX0sei56YT1mdW5jdGlvbigpe3RoaXMuanx8KHRoaXMuQXx8dGhpcy5sfHx0aGlzLmc/emcodGhpcyk6dGhpcy5VYSgpKX0sei5VYT1mdW5jdGlvbigpe3pnKHRoaXMpfSx6Llc9ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIDI8WGcodGhpcyk/dGhpcy5hLnN0YXR1czotMX1jYXRjaCh0KXtyZXR1cm4tMX19LHouJD1mdW5jdGlvbigpe3RyeXtyZXR1cm4gdGhpcy5hP3RoaXMuYS5yZXNwb25zZVRleHQ6IiJ9Y2F0Y2godCl7cmV0dXJuIiJ9fSx6LlBhPWZ1bmN0aW9uKHQpe2lmKHRoaXMuYSl7dmFyIGU9dGhpcy5hLnJlc3BvbnNlVGV4dDtyZXR1cm4gdCYmMD09ZS5pbmRleE9mKHQpJiYoZT1lLnN1YnN0cmluZyh0Lmxlbmd0aCkpLGpnKGUpfX0sei51YT1mdW5jdGlvbigpe3JldHVybiB0aGlzLmh9LHouUWE9ZnVuY3Rpb24oKXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIHRoaXMuZj90aGlzLmY6U3RyaW5nKHRoaXMuZil9LCh6PVpnLnByb3RvdHlwZSkuaGE9OCx6LnY9MSx6LkJhPWZ1bmN0aW9uKHQpe2lmKHRoaXMuaClpZih0aGlzLmg9bnVsbCwxPT10aGlzLnYpe2lmKCF0KXt0aGlzLlI9TWF0aC5mbG9vcigxZTUqTWF0aC5yYW5kb20oKSksdD10aGlzLlIrKzt2YXIgZSxuPW5ldyBxdih0aGlzLHRoaXMuYyx0LHZvaWQgMCkscj10aGlzLmw7aWYodGhpcy5PJiYocj9mZChyPWhkKHIpLHRoaXMuTyk6cj10aGlzLk8pLG51bGw9PT10aGlzLmkmJihuLkI9ciksdGhpcy5kYSl0Ontmb3IodmFyIGk9ZT0wO2k8dGhpcy5nLmxlbmd0aDtpKyspe3ZhciBvPXRoaXMuZ1tpXTtpZigiX19kYXRhX18iaW4gby5hJiYic3RyaW5nIj09dHlwZW9mKG89by5hLl9fZGF0YV9fKT9vPW8ubGVuZ3RoOm89dm9pZCAwLHZvaWQgMD09PW8pYnJlYWs7aWYoNDA5NjwoZSs9bykpe2U9aTticmVhayB0fWlmKDQwOTY9PT1lfHxpPT09dGhpcy5nLmxlbmd0aC0xKXtlPWkrMTticmVhayB0fX1lPTFlM31lbHNlIGU9MWUzO2U9YXkodGhpcyxuLGUpLGxnKGk9c2codGhpcy5CKSwiUklEIix0KSxsZyhpLCJDVkVSIiwyMiksdGhpcy5BJiZsZyhpLCJYLUhUVFAtU2Vzc2lvbi1JZCIsdGhpcy5BKSxzeSh0aGlzLGkpLHRoaXMuaSYmciYmSmcoaSx0aGlzLmksciksRGcodGhpcy5iLG4pLHRoaXMuSWEmJmxnKGksIlRZUEUiLCJpbml0IiksdGhpcy5kYT8obGcoaSwiJHJlcSIsZSksbGcoaSwiU0lEIiwibnVsbCIpLG4uVT0hMCxIdihuLGksbnVsbCkpOkh2KG4saSxlKSx0aGlzLnY9Mn19ZWxzZSAzPT10aGlzLnYmJih0P295KHRoaXMsdCk6MD09dGhpcy5nLmxlbmd0aHx8UmcodGhpcy5iKXx8b3kodGhpcykpfSx6LkFhPWZ1bmN0aW9uKCl7dmFyIHQ7dGhpcy5qPW51bGwsbHkodGhpcyksdGhpcy5VJiYhKHRoaXMuRnx8bnVsbD09dGhpcy5hfHx0aGlzLk48PTApJiYodD0yKnRoaXMuTix0aGlzLmMuaW5mbygiQlAgZGV0ZWN0aW9uIHRpbWVyIGVuYWJsZWQ6ICIrdCksdGhpcy5zPUR2KFFwKHRoaXMuVGEsdGhpcyksdCkpfSx6LlRhPWZ1bmN0aW9uKCl7dGhpcy5zJiYodGhpcy5zPW51bGwsdGhpcy5jLmluZm8oIkJQIGRldGVjdGlvbiB0aW1lb3V0IHJlYWNoZWQuIiksdGhpcy5jLmluZm8oIkJ1ZmZlcmluZyBwcm94eSBkZXRlY3RlZCBhbmQgc3dpdGNoIHRvIGxvbmctcG9sbGluZyEiKSx0aGlzLkg9ITEsdGhpcy5GPSEwLFB2KDEwKSxleSh0aGlzKSxseSh0aGlzKSl9LHouU2E9ZnVuY3Rpb24oKXtudWxsIT10aGlzLm0mJih0aGlzLm09bnVsbCxleSh0aGlzKSxjeSh0aGlzKSxQdigxOSkpfSx6LllhPWZ1bmN0aW9uKHQpe3Q/KHRoaXMuYy5pbmZvKCJTdWNjZXNzZnVsbHkgcGluZ2VkIGdvb2dsZS5jb20iKSxQdigyKSk6KHRoaXMuYy5pbmZvKCJGYWlsZWQgdG8gcGluZyBnb29nbGUuY29tIiksUHYoMSkpfSwoej1ieS5wcm90b3R5cGUpLnRhPWZ1bmN0aW9uKCl7fSx6LnNhPWZ1bmN0aW9uKCl7fSx6LnJhPWZ1bmN0aW9uKCl7fSx6LnFhPWZ1bmN0aW9uKCl7fSx6LkphPWZ1bmN0aW9uKCl7fSx3eS5wcm90b3R5cGUuYT1mdW5jdGlvbih0LGUpe3JldHVybiBuZXcgX3kodCxlKX0sSnAoX3ksSmQpLF95LnByb3RvdHlwZS5nPWZ1bmN0aW9uKCl7dGhpcy5hLmY9dGhpcy5mLHRoaXMubSYmKHRoaXMuYS5DPSEwKTt2YXIgdD10aGlzLmEsZT10aGlzLm8sbj10aGlzLmJ8fHZvaWQgMDtQdigwKSx0LmZhPWUsdC5WPW58fHt9LHQuSD10LlMsdC5CPXl5KHQsbnVsbCx0LmZhKSxpeSh0KX0sX3kucHJvdG90eXBlLmNsb3NlPWZ1bmN0aW9uKCl7dHkodGhpcy5hKX0sX3kucHJvdG90eXBlLmg9ZnVuY3Rpb24odCl7dmFyIGU7InN0cmluZyI9PXR5cGVvZiB0PygoZT17fSkuX19kYXRhX189dCxyeSh0aGlzLmEsZSkpOnRoaXMubD8oKGU9e30pLl9fZGF0YV9fPXR2KHQpLHJ5KHRoaXMuYSxlKSk6cnkodGhpcy5hLHQpfSxfeS5wcm90b3R5cGUuRz1mdW5jdGlvbigpe3RoaXMuYS5mPW51bGwsZGVsZXRlIHRoaXMuZix0eSh0aGlzLmEpLGRlbGV0ZSB0aGlzLmEsX3kuWC5HLmNhbGwodGhpcyl9LEpwKEl5LEZ2KSxKcChUeSxVdiksSnAoRXksYnkpLEV5LnByb3RvdHlwZS50YT1mdW5jdGlvbigpeyRkKHRoaXMuYSwiYSIpfSxFeS5wcm90b3R5cGUuc2E9ZnVuY3Rpb24odCl7JGQodGhpcy5hLG5ldyBJeSh0KSl9LEV5LnByb3RvdHlwZS5yYT1mdW5jdGlvbih0KXskZCh0aGlzLmEsbmV3IFR5KX0sRXkucHJvdG90eXBlLnFhPWZ1bmN0aW9uKCl7JGQodGhpcy5hLCJiIil9LHd5LnByb3RvdHlwZS5jcmVhdGVXZWJDaGFubmVsPXd5LnByb3RvdHlwZS5hLF95LnByb3RvdHlwZS5zZW5kPV95LnByb3RvdHlwZS5oLF95LnByb3RvdHlwZS5vcGVuPV95LnByb3RvdHlwZS5nLEdhLk5PX0VSUk9SPTAsR2EuVElNRU9VVD04LEdhLkhUVFBfRVJST1I9NixTbi5DT01QTEVURT0iY29tcGxldGUiLChNdi5FdmVudFR5cGU9RykuT1BFTj0iYSIsRy5DTE9TRT0iYiIsRy5FUlJPUj0iYyIsRy5NRVNTQUdFPSJkIixKZC5wcm90b3R5cGUubGlzdGVuPUpkLnByb3RvdHlwZS52YSxxZy5wcm90b3R5cGUubGlzdGVuT25jZT1xZy5wcm90b3R5cGUud2EscWcucHJvdG90eXBlLmdldExhc3RFcnJvcj1xZy5wcm90b3R5cGUuUWEscWcucHJvdG90eXBlLmdldExhc3RFcnJvckNvZGU9cWcucHJvdG90eXBlLnVhLHFnLnByb3RvdHlwZS5nZXRTdGF0dXM9cWcucHJvdG90eXBlLlcscWcucHJvdG90eXBlLmdldFJlc3BvbnNlSnNvbj1xZy5wcm90b3R5cGUuUGEscWcucHJvdG90eXBlLmdldFJlc3BvbnNlVGV4dD1xZy5wcm90b3R5cGUuJCxxZy5wcm90b3R5cGUuc2VuZD1xZy5wcm90b3R5cGUuYmE7dmFyIFN5PU52LEN5PUdhLE55PVNuLEF5PVN2LGt5PTEwLFJ5PTExLFB5PU12LE95PXFnLER5PSh4eS5wcm90b3R5cGUudD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5wcmV2aW91c1ZhbHVlPU1hdGgubWF4KHQsdGhpcy5wcmV2aW91c1ZhbHVlKSx0aGlzLnByZXZpb3VzVmFsdWV9LHh5LnByb3RvdHlwZS5uZXh0PWZ1bmN0aW9uKCl7dmFyIHQ9Kyt0aGlzLnByZXZpb3VzVmFsdWU7cmV0dXJuIHRoaXMuaSYmdGhpcy5pKHQpLHR9LHh5KTtmdW5jdGlvbiB4eSh0LGUpe3ZhciBuPXRoaXM7dGhpcy5wcmV2aW91c1ZhbHVlPXQsZSYmKGUuc2VxdWVuY2VOdW1iZXJIYW5kbGVyPWZ1bmN0aW9uKHQpe3JldHVybiBuLnQodCl9LHRoaXMuaT1mdW5jdGlvbih0KXtyZXR1cm4gZS53cml0ZVNlcXVlbmNlTnVtYmVyKHQpfSl9RHkubz0tMTt2YXIgTHksTXk9e09LOiJvayIsQ0FOQ0VMTEVEOiJjYW5jZWxsZWQiLFVOS05PV046InVua25vd24iLElOVkFMSURfQVJHVU1FTlQ6ImludmFsaWQtYXJndW1lbnQiLERFQURMSU5FX0VYQ0VFREVEOiJkZWFkbGluZS1leGNlZWRlZCIsTk9UX0ZPVU5EOiJub3QtZm91bmQiLEFMUkVBRFlfRVhJU1RTOiJhbHJlYWR5LWV4aXN0cyIsUEVSTUlTU0lPTl9ERU5JRUQ6InBlcm1pc3Npb24tZGVuaWVkIixVTkFVVEhFTlRJQ0FURUQ6InVuYXV0aGVudGljYXRlZCIsUkVTT1VSQ0VfRVhIQVVTVEVEOiJyZXNvdXJjZS1leGhhdXN0ZWQiLEZBSUxFRF9QUkVDT05ESVRJT046ImZhaWxlZC1wcmVjb25kaXRpb24iLEFCT1JURUQ6ImFib3J0ZWQiLE9VVF9PRl9SQU5HRToib3V0LW9mLXJhbmdlIixVTklNUExFTUVOVEVEOiJ1bmltcGxlbWVudGVkIixJTlRFUk5BTDoiaW50ZXJuYWwiLFVOQVZBSUxBQkxFOiJ1bmF2YWlsYWJsZSIsREFUQV9MT1NTOiJkYXRhLWxvc3MifSxGeT0oWGkoanksTHk9RXJyb3IpLGp5KSxVeT1uZXcgcHMoIkBmaXJlYmFzZS9maXJlc3RvcmUiKTtmdW5jdGlvbiBqeSh0LGUpe3ZhciBuPXRoaXM7cmV0dXJuKG49THkuY2FsbCh0aGlzLGUpfHx0aGlzKS5jb2RlPXQsbi5tZXNzYWdlPWUsbi5uYW1lPSJGaXJlYmFzZUVycm9yIixuLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIG4ubmFtZSsiOiBbY29kZT0iK24uY29kZSsiXTogIituLm1lc3NhZ2V9LG59ZnVuY3Rpb24gcXkoKXtyZXR1cm4gVXkubG9nTGV2ZWx9ZnVuY3Rpb24gVnkodCl7Zm9yKHZhciBlLG49W10scj0xO3I8YXJndW1lbnRzLmxlbmd0aDtyKyspbltyLTFdPWFyZ3VtZW50c1tyXTtVeS5sb2dMZXZlbDw9YXMuREVCVUcmJihlPW4ubWFwKFd5KSxVeS5kZWJ1Zy5hcHBseShVeSxubyhbIkZpcmVzdG9yZSAoOC4zLjIpOiAiK3RdLGUpKSl9ZnVuY3Rpb24gQnkodCl7Zm9yKHZhciBlLG49W10scj0xO3I8YXJndW1lbnRzLmxlbmd0aDtyKyspbltyLTFdPWFyZ3VtZW50c1tyXTtVeS5sb2dMZXZlbDw9YXMuRVJST1ImJihlPW4ubWFwKFd5KSxVeS5lcnJvci5hcHBseShVeSxubyhbIkZpcmVzdG9yZSAoOC4zLjIpOiAiK3RdLGUpKSl9ZnVuY3Rpb24gS3kodCl7Zm9yKHZhciBlLG49W10scj0xO3I8YXJndW1lbnRzLmxlbmd0aDtyKyspbltyLTFdPWFyZ3VtZW50c1tyXTtVeS5sb2dMZXZlbDw9YXMuV0FSTiYmKGU9bi5tYXAoV3kpLFV5Lndhcm4uYXBwbHkoVXksbm8oWyJGaXJlc3RvcmUgKDguMy4yKTogIit0XSxlKSkpfWZ1bmN0aW9uIFd5KGUpe2lmKCJzdHJpbmciPT10eXBlb2YgZSlyZXR1cm4gZTt0cnl7cmV0dXJuIEpTT04uc3RyaW5naWZ5KGUpfWNhdGNoKHQpe3JldHVybiBlfX1mdW5jdGlvbiBIeSh0KXt0PSJGSVJFU1RPUkUgKDguMy4yKSBJTlRFUk5BTCBBU1NFUlRJT04gRkFJTEVEOiAiKyh0PXZvaWQgMD09PXQ/IlVuZXhwZWN0ZWQgc3RhdGUiOnQpO3Rocm93IEJ5KHQpLG5ldyBFcnJvcih0KX1mdW5jdGlvbiBHeSh0KXt0fHxIeSgpfXZhciB6eT0oUXkudT1mdW5jdGlvbigpe2Zvcih2YXIgdD0iQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkiLGU9TWF0aC5mbG9vcigyNTYvdC5sZW5ndGgpKnQubGVuZ3RoLG49IiI7bi5sZW5ndGg8MjA7KWZvcih2YXIgcj1mdW5jdGlvbih0KXt2YXIgZT0idW5kZWZpbmVkIiE9dHlwZW9mIHNlbGYmJihzZWxmLmNyeXB0b3x8c2VsZi5tc0NyeXB0byksbj1uZXcgVWludDhBcnJheSh0KTtpZihlJiYiZnVuY3Rpb24iPT10eXBlb2YgZS5nZXRSYW5kb21WYWx1ZXMpZS5nZXRSYW5kb21WYWx1ZXMobik7ZWxzZSBmb3IodmFyIHI9MDtyPHQ7cisrKW5bcl09TWF0aC5mbG9vcigyNTYqTWF0aC5yYW5kb20oKSk7cmV0dXJuIG59KDQwKSxpPTA7aTxyLmxlbmd0aDsrK2kpbi5sZW5ndGg8MjAmJnJbaV08ZSYmKG4rPXQuY2hhckF0KHJbaV0ldC5sZW5ndGgpKTtyZXR1cm4gbn0sUXkpO2Z1bmN0aW9uIFF5KCl7fWZ1bmN0aW9uIFl5KHQsZSl7cmV0dXJuIHQ8ZT8tMTplPHQ/MTowfWZ1bmN0aW9uIFh5KHQsbixyKXtyZXR1cm4gdC5sZW5ndGg9PT1uLmxlbmd0aCYmdC5ldmVyeShmdW5jdGlvbih0LGUpe3JldHVybiByKHQsbltlXSl9KX1mdW5jdGlvbiBKeSh0KXtyZXR1cm4gdCsiXDAifXZhciAkeT0oZW0ubm93PWZ1bmN0aW9uKCl7cmV0dXJuIGVtLmZyb21NaWxsaXMoRGF0ZS5ub3coKSl9LGVtLmZyb21EYXRlPWZ1bmN0aW9uKHQpe3JldHVybiBlbS5mcm9tTWlsbGlzKHQuZ2V0VGltZSgpKX0sZW0uZnJvbU1pbGxpcz1mdW5jdGlvbih0KXt2YXIgZT1NYXRoLmZsb29yKHQvMWUzKTtyZXR1cm4gbmV3IGVtKGUsMWU2Kih0LTFlMyplKSl9LGVtLnByb3RvdHlwZS50b0RhdGU9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IERhdGUodGhpcy50b01pbGxpcygpKX0sZW0ucHJvdG90eXBlLnRvTWlsbGlzPWZ1bmN0aW9uKCl7cmV0dXJuIDFlMyp0aGlzLnNlY29uZHMrdGhpcy5uYW5vc2Vjb25kcy8xZTZ9LGVtLnByb3RvdHlwZS5fY29tcGFyZVRvPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnNlY29uZHM9PT10LnNlY29uZHM/WXkodGhpcy5uYW5vc2Vjb25kcyx0Lm5hbm9zZWNvbmRzKTpZeSh0aGlzLnNlY29uZHMsdC5zZWNvbmRzKX0sZW0ucHJvdG90eXBlLmlzRXF1YWw9ZnVuY3Rpb24odCl7cmV0dXJuIHQuc2Vjb25kcz09PXRoaXMuc2Vjb25kcyYmdC5uYW5vc2Vjb25kcz09PXRoaXMubmFub3NlY29uZHN9LGVtLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiJUaW1lc3RhbXAoc2Vjb25kcz0iK3RoaXMuc2Vjb25kcysiLCBuYW5vc2Vjb25kcz0iK3RoaXMubmFub3NlY29uZHMrIikifSxlbS5wcm90b3R5cGUudG9KU09OPWZ1bmN0aW9uKCl7cmV0dXJue3NlY29uZHM6dGhpcy5zZWNvbmRzLG5hbm9zZWNvbmRzOnRoaXMubmFub3NlY29uZHN9fSxlbS5wcm90b3R5cGUudmFsdWVPZj1mdW5jdGlvbigpe3ZhciB0PXRoaXMuc2Vjb25kcy0gLTYyMTM1NTk2ODAwO3JldHVybiBTdHJpbmcodCkucGFkU3RhcnQoMTIsIjAiKSsiLiIrU3RyaW5nKHRoaXMubmFub3NlY29uZHMpLnBhZFN0YXJ0KDksIjAiKX0sZW0pLFp5PSh0bS5mcm9tVGltZXN0YW1wPWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgdG0odCl9LHRtLm1pbj1mdW5jdGlvbigpe3JldHVybiBuZXcgdG0obmV3ICR5KDAsMCkpfSx0bS5wcm90b3R5cGUuY29tcGFyZVRvPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnRpbWVzdGFtcC5fY29tcGFyZVRvKHQudGltZXN0YW1wKX0sdG0ucHJvdG90eXBlLmlzRXF1YWw9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMudGltZXN0YW1wLmlzRXF1YWwodC50aW1lc3RhbXApfSx0bS5wcm90b3R5cGUudG9NaWNyb3NlY29uZHM9ZnVuY3Rpb24oKXtyZXR1cm4gMWU2KnRoaXMudGltZXN0YW1wLnNlY29uZHMrdGhpcy50aW1lc3RhbXAubmFub3NlY29uZHMvMWUzfSx0bS5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4iU25hcHNob3RWZXJzaW9uKCIrdGhpcy50aW1lc3RhbXAudG9TdHJpbmcoKSsiKSJ9LHRtLnByb3RvdHlwZS50b1RpbWVzdGFtcD1mdW5jdGlvbigpe3JldHVybiB0aGlzLnRpbWVzdGFtcH0sdG0pO2Z1bmN0aW9uIHRtKHQpe3RoaXMudGltZXN0YW1wPXR9ZnVuY3Rpb24gZW0odCxlKXtpZih0aGlzLnNlY29uZHM9dCwodGhpcy5uYW5vc2Vjb25kcz1lKTwwKXRocm93IG5ldyBGeShNeS5JTlZBTElEX0FSR1VNRU5ULCJUaW1lc3RhbXAgbmFub3NlY29uZHMgb3V0IG9mIHJhbmdlOiAiK2UpO2lmKDFlOTw9ZSl0aHJvdyBuZXcgRnkoTXkuSU5WQUxJRF9BUkdVTUVOVCwiVGltZXN0YW1wIG5hbm9zZWNvbmRzIG91dCBvZiByYW5nZTogIitlKTtpZih0PC02MjEzNTU5NjgwMCl0aHJvdyBuZXcgRnkoTXkuSU5WQUxJRF9BUkdVTUVOVCwiVGltZXN0YW1wIHNlY29uZHMgb3V0IG9mIHJhbmdlOiAiK3QpO2lmKDI1MzQwMjMwMDgwMDw9dCl0aHJvdyBuZXcgRnkoTXkuSU5WQUxJRF9BUkdVTUVOVCwiVGltZXN0YW1wIHNlY29uZHMgb3V0IG9mIHJhbmdlOiAiK3QpfWZ1bmN0aW9uIG5tKHQpe3ZhciBlLG49MDtmb3IoZSBpbiB0KU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LGUpJiZuKys7cmV0dXJuIG59ZnVuY3Rpb24gcm0odCxlKXtmb3IodmFyIG4gaW4gdClPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCxuKSYmZShuLHRbbl0pfWZ1bmN0aW9uIGltKHQpe2Zvcih2YXIgZSBpbiB0KWlmKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LGUpKXJldHVybiExO3JldHVybiEwfXZhciBvbSxzbSxHYT0oT2JqZWN0LmRlZmluZVByb3BlcnR5KGdtLnByb3RvdHlwZSwibGVuZ3RoIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubGVufSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLGdtLnByb3RvdHlwZS5pc0VxdWFsPWZ1bmN0aW9uKHQpe3JldHVybiAwPT09Z20uY29tcGFyYXRvcih0aGlzLHQpfSxnbS5wcm90b3R5cGUuY2hpbGQ9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5zZWdtZW50cy5zbGljZSh0aGlzLm9mZnNldCx0aGlzLmxpbWl0KCkpO3JldHVybiB0IGluc3RhbmNlb2YgZ20/dC5mb3JFYWNoKGZ1bmN0aW9uKHQpe2UucHVzaCh0KX0pOmUucHVzaCh0KSx0aGlzLmNvbnN0cnVjdChlKX0sZ20ucHJvdG90eXBlLmxpbWl0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMub2Zmc2V0K3RoaXMubGVuZ3RofSxnbS5wcm90b3R5cGUucG9wRmlyc3Q9ZnVuY3Rpb24odCl7cmV0dXJuIHQ9dm9pZCAwPT09dD8xOnQsdGhpcy5jb25zdHJ1Y3QodGhpcy5zZWdtZW50cyx0aGlzLm9mZnNldCt0LHRoaXMubGVuZ3RoLXQpfSxnbS5wcm90b3R5cGUucG9wTGFzdD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmNvbnN0cnVjdCh0aGlzLnNlZ21lbnRzLHRoaXMub2Zmc2V0LHRoaXMubGVuZ3RoLTEpfSxnbS5wcm90b3R5cGUuZmlyc3RTZWdtZW50PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc2VnbWVudHNbdGhpcy5vZmZzZXRdfSxnbS5wcm90b3R5cGUubGFzdFNlZ21lbnQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nZXQodGhpcy5sZW5ndGgtMSl9LGdtLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuc2VnbWVudHNbdGhpcy5vZmZzZXQrdF19LGdtLnByb3RvdHlwZS5pc0VtcHR5PWZ1bmN0aW9uKCl7cmV0dXJuIDA9PT10aGlzLmxlbmd0aH0sZ20ucHJvdG90eXBlLmlzUHJlZml4T2Y9ZnVuY3Rpb24odCl7aWYodC5sZW5ndGg8dGhpcy5sZW5ndGgpcmV0dXJuITE7Zm9yKHZhciBlPTA7ZTx0aGlzLmxlbmd0aDtlKyspaWYodGhpcy5nZXQoZSkhPT10LmdldChlKSlyZXR1cm4hMTtyZXR1cm4hMH0sZ20ucHJvdG90eXBlLmlzSW1tZWRpYXRlUGFyZW50T2Y9ZnVuY3Rpb24odCl7aWYodGhpcy5sZW5ndGgrMSE9PXQubGVuZ3RoKXJldHVybiExO2Zvcih2YXIgZT0wO2U8dGhpcy5sZW5ndGg7ZSsrKWlmKHRoaXMuZ2V0KGUpIT09dC5nZXQoZSkpcmV0dXJuITE7cmV0dXJuITB9LGdtLnByb3RvdHlwZS5mb3JFYWNoPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10aGlzLm9mZnNldCxuPXRoaXMubGltaXQoKTtlPG47ZSsrKXQodGhpcy5zZWdtZW50c1tlXSl9LGdtLnByb3RvdHlwZS50b0FycmF5PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc2VnbWVudHMuc2xpY2UodGhpcy5vZmZzZXQsdGhpcy5saW1pdCgpKX0sZ20uY29tcGFyYXRvcj1mdW5jdGlvbih0LGUpe2Zvcih2YXIgbj1NYXRoLm1pbih0Lmxlbmd0aCxlLmxlbmd0aCkscj0wO3I8bjtyKyspe3ZhciBpPXQuZ2V0KHIpLG89ZS5nZXQocik7aWYoaTxvKXJldHVybi0xO2lmKG88aSlyZXR1cm4gMX1yZXR1cm4gdC5sZW5ndGg8ZS5sZW5ndGg/LTE6dC5sZW5ndGg+ZS5sZW5ndGg/MTowfSxnbSksYW09KFhpKHZtLHNtPUdhKSx2bS5wcm90b3R5cGUuY29uc3RydWN0PWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gbmV3IHZtKHQsZSxuKX0sdm0ucHJvdG90eXBlLmNhbm9uaWNhbFN0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLnRvQXJyYXkoKS5qb2luKCIvIil9LHZtLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmNhbm9uaWNhbFN0cmluZygpfSx2bS5mcm9tU3RyaW5nPWZ1bmN0aW9uKCl7Zm9yKHZhciB0PVtdLGU9MDtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXRbZV09YXJndW1lbnRzW2VdO2Zvcih2YXIgbj1bXSxyPTAsaT10O3I8aS5sZW5ndGg7cisrKXt2YXIgbz1pW3JdO2lmKDA8PW8uaW5kZXhPZigiLy8iKSl0aHJvdyBuZXcgRnkoTXkuSU5WQUxJRF9BUkdVTUVOVCwiSW52YWxpZCBzZWdtZW50ICgiK28rIikuIFBhdGhzIG11c3Qgbm90IGNvbnRhaW4gLy8gaW4gdGhlbS4iKTtuLnB1c2guYXBwbHkobixvLnNwbGl0KCIvIikuZmlsdGVyKGZ1bmN0aW9uKHQpe3JldHVybiAwPHQubGVuZ3RofSkpfXJldHVybiBuZXcgdm0obil9LHZtLmVtcHR5UGF0aD1mdW5jdGlvbigpe3JldHVybiBuZXcgdm0oW10pfSx2bSksdW09L15bX2EtekEtWl1bX2EtekEtWjAtOV0qJC8sY209KFhpKGRtLG9tPUdhKSxkbS5wcm90b3R5cGUuY29uc3RydWN0PWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gbmV3IGRtKHQsZSxuKX0sZG0uaXNWYWxpZElkZW50aWZpZXI9ZnVuY3Rpb24odCl7cmV0dXJuIHVtLnRlc3QodCl9LGRtLnByb3RvdHlwZS5jYW5vbmljYWxTdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy50b0FycmF5KCkubWFwKGZ1bmN0aW9uKHQpe3JldHVybiB0PXQucmVwbGFjZSgvXFwvZywiXFxcXCIpLnJlcGxhY2UoL2AvZywiXFxgIiksdD0hZG0uaXNWYWxpZElkZW50aWZpZXIodCk/ImAiK3QrImAiOnR9KS5qb2luKCIuIil9LGRtLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmNhbm9uaWNhbFN0cmluZygpfSxkbS5wcm90b3R5cGUuaXNLZXlGaWVsZD1mdW5jdGlvbigpe3JldHVybiAxPT09dGhpcy5sZW5ndGgmJiJfX25hbWVfXyI9PT10aGlzLmdldCgwKX0sZG0ua2V5RmllbGQ9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IGRtKFsiX19uYW1lX18iXSl9LGRtLmZyb21TZXJ2ZXJGb3JtYXQ9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPVtdLG49IiIscj0wLGk9ZnVuY3Rpb24oKXtpZigwPT09bi5sZW5ndGgpdGhyb3cgbmV3IEZ5KE15LklOVkFMSURfQVJHVU1FTlQsIkludmFsaWQgZmllbGQgcGF0aCAoIit0KyIpLiBQYXRocyBtdXN0IG5vdCBiZSBlbXB0eSwgYmVnaW4gd2l0aCAnLicsIGVuZCB3aXRoICcuJywgb3IgY29udGFpbiAnLi4nIik7ZS5wdXNoKG4pLG49IiJ9LG89ITE7cjx0Lmxlbmd0aDspe3ZhciBzPXRbcl07aWYoIlxcIj09PXMpe2lmKHIrMT09PXQubGVuZ3RoKXRocm93IG5ldyBGeShNeS5JTlZBTElEX0FSR1VNRU5ULCJQYXRoIGhhcyB0cmFpbGluZyBlc2NhcGUgY2hhcmFjdGVyOiAiK3QpO3ZhciBhPXRbcisxXTtpZigiXFwiIT09YSYmIi4iIT09YSYmImAiIT09YSl0aHJvdyBuZXcgRnkoTXkuSU5WQUxJRF9BUkdVTUVOVCwiUGF0aCBoYXMgaW52YWxpZCBlc2NhcGUgc2VxdWVuY2U6ICIrdCk7bis9YSxyKz0yfWVsc2UiYCI9PT1zP289IW86Ii4iIT09c3x8bz9uKz1zOmkoKSxyKyt9aWYoaSgpLG8pdGhyb3cgbmV3IEZ5KE15LklOVkFMSURfQVJHVU1FTlQsIlVudGVybWluYXRlZCBgIGluIHBhdGg6ICIrdCk7cmV0dXJuIG5ldyBkbShlKX0sZG0uZW1wdHlQYXRoPWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBkbShbXSl9LGRtKSxobT0ocG0ucHJvdG90eXBlLmNvdmVycz1mdW5jdGlvbih0KXtmb3IodmFyIGU9MCxuPXRoaXMuZmllbGRzO2U8bi5sZW5ndGg7ZSsrKWlmKG5bZV0uaXNQcmVmaXhPZih0KSlyZXR1cm4hMDtyZXR1cm4hMX0scG0ucHJvdG90eXBlLmlzRXF1YWw9ZnVuY3Rpb24odCl7cmV0dXJuIFh5KHRoaXMuZmllbGRzLHQuZmllbGRzLGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQuaXNFcXVhbChlKX0pfSxwbSksbG09KGZtLmZyb21CYXNlNjRTdHJpbmc9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBmbShhdG9iKHQpKX0sZm0uZnJvbVVpbnQ4QXJyYXk9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBmbShmdW5jdGlvbih0KXtmb3IodmFyIGU9IiIsbj0wO248dC5sZW5ndGg7KytuKWUrPVN0cmluZy5mcm9tQ2hhckNvZGUodFtuXSk7cmV0dXJuIGV9KHQpKX0sZm0ucHJvdG90eXBlLnRvQmFzZTY0PWZ1bmN0aW9uKCl7cmV0dXJuIHQ9dGhpcy5iaW5hcnlTdHJpbmcsYnRvYSh0KTt2YXIgdH0sZm0ucHJvdG90eXBlLnRvVWludDhBcnJheT1mdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbih0KXtmb3IodmFyIGU9bmV3IFVpbnQ4QXJyYXkodC5sZW5ndGgpLG49MDtuPHQubGVuZ3RoO24rKyllW25dPXQuY2hhckNvZGVBdChuKTtyZXR1cm4gZX0odGhpcy5iaW5hcnlTdHJpbmcpfSxmbS5wcm90b3R5cGUuYXBwcm94aW1hdGVCeXRlU2l6ZT1mdW5jdGlvbigpe3JldHVybiAyKnRoaXMuYmluYXJ5U3RyaW5nLmxlbmd0aH0sZm0ucHJvdG90eXBlLmNvbXBhcmVUbz1mdW5jdGlvbih0KXtyZXR1cm4gWXkodGhpcy5iaW5hcnlTdHJpbmcsdC5iaW5hcnlTdHJpbmcpfSxmbS5wcm90b3R5cGUuaXNFcXVhbD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5iaW5hcnlTdHJpbmc9PT10LmJpbmFyeVN0cmluZ30sZm0pO2Z1bmN0aW9uIGZtKHQpe3RoaXMuYmluYXJ5U3RyaW5nPXR9ZnVuY3Rpb24gcG0odCl7KHRoaXMuZmllbGRzPXQpLnNvcnQoY20uY29tcGFyYXRvcil9ZnVuY3Rpb24gZG0oKXtyZXR1cm4gbnVsbCE9PW9tJiZvbS5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9ZnVuY3Rpb24gdm0oKXtyZXR1cm4gbnVsbCE9PXNtJiZzbS5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9ZnVuY3Rpb24gZ20odCxlLG4pe3ZvaWQgMD09PWU/ZT0wOmU+dC5sZW5ndGgmJkh5KCksdm9pZCAwPT09bj9uPXQubGVuZ3RoLWU6bj50Lmxlbmd0aC1lJiZIeSgpLHRoaXMuc2VnbWVudHM9dCx0aGlzLm9mZnNldD1lLHRoaXMubGVuPW59bG0uRU1QVFlfQllURV9TVFJJTkc9bmV3IGxtKCIiKTt2YXIgeW09bmV3IFJlZ0V4cCgvXlxkezR9LVxkXGQtXGRcZFRcZFxkOlxkXGQ6XGRcZCg/OlwuKFxkKykpP1okLyk7ZnVuY3Rpb24gbW0odCl7aWYoR3koISF0KSwic3RyaW5nIiE9dHlwZW9mIHQpcmV0dXJue3NlY29uZHM6Ym0odC5zZWNvbmRzKSxuYW5vczpibSh0Lm5hbm9zKX07dmFyIGU9MCxuPXltLmV4ZWModCk7R3koISFuKSxuWzFdJiYobj0oKG49blsxXSkrIjAwMDAwMDAwMCIpLnN1YnN0cigwLDkpLGU9TnVtYmVyKG4pKTt0PW5ldyBEYXRlKHQpO3JldHVybntzZWNvbmRzOk1hdGguZmxvb3IodC5nZXRUaW1lKCkvMWUzKSxuYW5vczplfX1mdW5jdGlvbiBibSh0KXtyZXR1cm4ibnVtYmVyIj09dHlwZW9mIHQ/dDoic3RyaW5nIj09dHlwZW9mIHQ/TnVtYmVyKHQpOjB9ZnVuY3Rpb24gd20odCl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiB0P2xtLmZyb21CYXNlNjRTdHJpbmcodCk6bG0uZnJvbVVpbnQ4QXJyYXkodCl9ZnVuY3Rpb24gX20odCl7cmV0dXJuInNlcnZlcl90aW1lc3RhbXAiPT09KG51bGw9PT0odD0oKG51bGw9PT0odD1udWxsPT10P3ZvaWQgMDp0Lm1hcFZhbHVlKXx8dm9pZCAwPT09dD92b2lkIDA6dC5maWVsZHMpfHx7fSkuX190eXBlX18pfHx2b2lkIDA9PT10P3ZvaWQgMDp0LnN0cmluZ1ZhbHVlKX1mdW5jdGlvbiBJbSh0KXt0PW1tKHQubWFwVmFsdWUuZmllbGRzLl9fbG9jYWxfd3JpdGVfdGltZV9fLnRpbWVzdGFtcFZhbHVlKTtyZXR1cm4gbmV3ICR5KHQuc2Vjb25kcyx0Lm5hbm9zKX1mdW5jdGlvbiBUbSh0KXtyZXR1cm4gbnVsbD09dH1mdW5jdGlvbiBFbSh0KXtyZXR1cm4gMD09PXQmJjEvdD09LTEvMH1mdW5jdGlvbiBTbSh0KXtyZXR1cm4ibnVtYmVyIj09dHlwZW9mIHQmJk51bWJlci5pc0ludGVnZXIodCkmJiFFbSh0KSYmdDw9TnVtYmVyLk1BWF9TQUZFX0lOVEVHRVImJnQ+PU51bWJlci5NSU5fU0FGRV9JTlRFR0VSfXZhciBDbT0oTm0uZnJvbVBhdGg9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBObShhbS5mcm9tU3RyaW5nKHQpKX0sTm0uZnJvbU5hbWU9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBObShhbS5mcm9tU3RyaW5nKHQpLnBvcEZpcnN0KDUpKX0sTm0ucHJvdG90eXBlLmhhc0NvbGxlY3Rpb25JZD1mdW5jdGlvbih0KXtyZXR1cm4gMjw9dGhpcy5wYXRoLmxlbmd0aCYmdGhpcy5wYXRoLmdldCh0aGlzLnBhdGgubGVuZ3RoLTIpPT09dH0sTm0ucHJvdG90eXBlLmlzRXF1YWw9ZnVuY3Rpb24odCl7cmV0dXJuIG51bGwhPT10JiYwPT09YW0uY29tcGFyYXRvcih0aGlzLnBhdGgsdC5wYXRoKX0sTm0ucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucGF0aC50b1N0cmluZygpfSxObS5jb21wYXJhdG9yPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGFtLmNvbXBhcmF0b3IodC5wYXRoLGUucGF0aCl9LE5tLmlzRG9jdW1lbnRLZXk9ZnVuY3Rpb24odCl7cmV0dXJuIHQubGVuZ3RoJTI9PTB9LE5tLmZyb21TZWdtZW50cz1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IE5tKG5ldyBhbSh0LnNsaWNlKCkpKX0sTm0pO2Z1bmN0aW9uIE5tKHQpe3RoaXMucGF0aD10fWZ1bmN0aW9uIEFtKHQpe3JldHVybiJudWxsVmFsdWUiaW4gdD8wOiJib29sZWFuVmFsdWUiaW4gdD8xOiJpbnRlZ2VyVmFsdWUiaW4gdHx8ImRvdWJsZVZhbHVlImluIHQ/MjoidGltZXN0YW1wVmFsdWUiaW4gdD8zOiJzdHJpbmdWYWx1ZSJpbiB0PzU6ImJ5dGVzVmFsdWUiaW4gdD82OiJyZWZlcmVuY2VWYWx1ZSJpbiB0Pzc6Imdlb1BvaW50VmFsdWUiaW4gdD84OiJhcnJheVZhbHVlImluIHQ/OToibWFwVmFsdWUiaW4gdD9fbSh0KT80OjEwOkh5KCl9ZnVuY3Rpb24ga20ocixpKXt2YXIgdCxlLG49QW0ocik7aWYobiE9PUFtKGkpKXJldHVybiExO3N3aXRjaChuKXtjYXNlIDA6cmV0dXJuITA7Y2FzZSAxOnJldHVybiByLmJvb2xlYW5WYWx1ZT09PWkuYm9vbGVhblZhbHVlO2Nhc2UgNDpyZXR1cm4gSW0ocikuaXNFcXVhbChJbShpKSk7Y2FzZSAzOnJldHVybiBmdW5jdGlvbih0KXtpZigic3RyaW5nIj09dHlwZW9mIHIudGltZXN0YW1wVmFsdWUmJiJzdHJpbmciPT10eXBlb2YgdC50aW1lc3RhbXBWYWx1ZSYmci50aW1lc3RhbXBWYWx1ZS5sZW5ndGg9PT10LnRpbWVzdGFtcFZhbHVlLmxlbmd0aClyZXR1cm4gci50aW1lc3RhbXBWYWx1ZT09PXQudGltZXN0YW1wVmFsdWU7dmFyIGU9bW0oci50aW1lc3RhbXBWYWx1ZSksdD1tbSh0LnRpbWVzdGFtcFZhbHVlKTtyZXR1cm4gZS5zZWNvbmRzPT09dC5zZWNvbmRzJiZlLm5hbm9zPT09dC5uYW5vc30oaSk7Y2FzZSA1OnJldHVybiByLnN0cmluZ1ZhbHVlPT09aS5zdHJpbmdWYWx1ZTtjYXNlIDY6cmV0dXJuIGU9aSx3bShyLmJ5dGVzVmFsdWUpLmlzRXF1YWwod20oZS5ieXRlc1ZhbHVlKSk7Y2FzZSA3OnJldHVybiByLnJlZmVyZW5jZVZhbHVlPT09aS5yZWZlcmVuY2VWYWx1ZTtjYXNlIDg6cmV0dXJuIHQ9aSxibSgoZT1yKS5nZW9Qb2ludFZhbHVlLmxhdGl0dWRlKT09PWJtKHQuZ2VvUG9pbnRWYWx1ZS5sYXRpdHVkZSkmJmJtKGUuZ2VvUG9pbnRWYWx1ZS5sb25naXR1ZGUpPT09Ym0odC5nZW9Qb2ludFZhbHVlLmxvbmdpdHVkZSk7Y2FzZSAyOnJldHVybiBmdW5jdGlvbih0LGUpe2lmKCJpbnRlZ2VyVmFsdWUiaW4gdCYmImludGVnZXJWYWx1ZSJpbiBlKXJldHVybiBibSh0LmludGVnZXJWYWx1ZSk9PT1ibShlLmludGVnZXJWYWx1ZSk7aWYoImRvdWJsZVZhbHVlImluIHQmJiJkb3VibGVWYWx1ZSJpbiBlKXt0PWJtKHQuZG91YmxlVmFsdWUpLGU9Ym0oZS5kb3VibGVWYWx1ZSk7cmV0dXJuIHQ9PT1lP0VtKHQpPT09RW0oZSk6aXNOYU4odCkmJmlzTmFOKGUpfXJldHVybiExfShyLGkpO2Nhc2UgOTpyZXR1cm4gWHkoci5hcnJheVZhbHVlLnZhbHVlc3x8W10saS5hcnJheVZhbHVlLnZhbHVlc3x8W10sa20pO2Nhc2UgMTA6cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHQsZT1yLm1hcFZhbHVlLmZpZWxkc3x8e30sbj1pLm1hcFZhbHVlLmZpZWxkc3x8e307aWYobm0oZSkhPT1ubShuKSlyZXR1cm4hMTtmb3IodCBpbiBlKWlmKGUuaGFzT3duUHJvcGVydHkodCkmJih2b2lkIDA9PT1uW3RdfHwha20oZVt0XSxuW3RdKSkpcmV0dXJuITE7cmV0dXJuITB9KCk7ZGVmYXVsdDpyZXR1cm4gSHkoKX19ZnVuY3Rpb24gUm0odCxlKXtyZXR1cm4gdm9pZCAwIT09KHQudmFsdWVzfHxbXSkuZmluZChmdW5jdGlvbih0KXtyZXR1cm4ga20odCxlKX0pfWZ1bmN0aW9uIFBtKHQsZSl7dmFyIG4scixpLG89QW0odCkscz1BbShlKTtpZihvIT09cylyZXR1cm4gWXkobyxzKTtzd2l0Y2gobyl7Y2FzZSAwOnJldHVybiAwO2Nhc2UgMTpyZXR1cm4gWXkodC5ib29sZWFuVmFsdWUsZS5ib29sZWFuVmFsdWUpO2Nhc2UgMjpyZXR1cm4gcj1lLGk9Ym0odC5pbnRlZ2VyVmFsdWV8fHQuZG91YmxlVmFsdWUpLHI9Ym0oci5pbnRlZ2VyVmFsdWV8fHIuZG91YmxlVmFsdWUpLGk8cj8tMTpyPGk/MTppPT09cj8wOmlzTmFOKGkpP2lzTmFOKHIpPzA6LTE6MTtjYXNlIDM6cmV0dXJuIE9tKHQudGltZXN0YW1wVmFsdWUsZS50aW1lc3RhbXBWYWx1ZSk7Y2FzZSA0OnJldHVybiBPbShJbSh0KSxJbShlKSk7Y2FzZSA1OnJldHVybiBZeSh0LnN0cmluZ1ZhbHVlLGUuc3RyaW5nVmFsdWUpO2Nhc2UgNjpyZXR1cm4gZnVuY3Rpb24odCxlKXt0PXdtKHQpLGU9d20oZSk7cmV0dXJuIHQuY29tcGFyZVRvKGUpfSh0LmJ5dGVzVmFsdWUsZS5ieXRlc1ZhbHVlKTtjYXNlIDc6cmV0dXJuIGZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuPXQuc3BsaXQoIi8iKSxyPWUuc3BsaXQoIi8iKSxpPTA7aTxuLmxlbmd0aCYmaTxyLmxlbmd0aDtpKyspe3ZhciBvPVl5KG5baV0scltpXSk7aWYoMCE9PW8pcmV0dXJuIG99cmV0dXJuIFl5KG4ubGVuZ3RoLHIubGVuZ3RoKX0odC5yZWZlcmVuY2VWYWx1ZSxlLnJlZmVyZW5jZVZhbHVlKTtjYXNlIDg6cmV0dXJuIG49dC5nZW9Qb2ludFZhbHVlLGk9ZS5nZW9Qb2ludFZhbHVlLDAhPT0ocj1ZeShibShuLmxhdGl0dWRlKSxibShpLmxhdGl0dWRlKSkpP3I6WXkoYm0obi5sb25naXR1ZGUpLGJtKGkubG9uZ2l0dWRlKSk7Y2FzZSA5OnJldHVybiBmdW5jdGlvbih0LGUpe2Zvcih2YXIgbj10LnZhbHVlc3x8W10scj1lLnZhbHVlc3x8W10saT0wO2k8bi5sZW5ndGgmJmk8ci5sZW5ndGg7KytpKXt2YXIgbz1QbShuW2ldLHJbaV0pO2lmKG8pcmV0dXJuIG99cmV0dXJuIFl5KG4ubGVuZ3RoLHIubGVuZ3RoKX0odC5hcnJheVZhbHVlLGUuYXJyYXlWYWx1ZSk7Y2FzZSAxMDpyZXR1cm4gZnVuY3Rpb24odCxlKXt2YXIgbj10LmZpZWxkc3x8e30scj1PYmplY3Qua2V5cyhuKSxpPWUuZmllbGRzfHx7fSxvPU9iamVjdC5rZXlzKGkpO3Iuc29ydCgpLG8uc29ydCgpO2Zvcih2YXIgcz0wO3M8ci5sZW5ndGgmJnM8by5sZW5ndGg7KytzKXt2YXIgYT1ZeShyW3NdLG9bc10pO2lmKDAhPT1hKXJldHVybiBhO2E9UG0obltyW3NdXSxpW29bc11dKTtpZigwIT09YSlyZXR1cm4gYX1yZXR1cm4gWXkoci5sZW5ndGgsby5sZW5ndGgpfSh0Lm1hcFZhbHVlLGUubWFwVmFsdWUpO2RlZmF1bHQ6dGhyb3cgSHkoKX19ZnVuY3Rpb24gT20odCxlKXtpZigic3RyaW5nIj09dHlwZW9mIHQmJiJzdHJpbmciPT10eXBlb2YgZSYmdC5sZW5ndGg9PT1lLmxlbmd0aClyZXR1cm4gWXkodCxlKTt2YXIgbj1tbSh0KSx0PW1tKGUpLGU9WXkobi5zZWNvbmRzLHQuc2Vjb25kcyk7cmV0dXJuIDAhPT1lP2U6WXkobi5uYW5vcyx0Lm5hbm9zKX1mdW5jdGlvbiBEbSh0KXtyZXR1cm4gZnVuY3Rpb24gcyh0KXtyZXR1cm4ibnVsbFZhbHVlImluIHQ/Im51bGwiOiJib29sZWFuVmFsdWUiaW4gdD8iIit0LmJvb2xlYW5WYWx1ZToiaW50ZWdlclZhbHVlImluIHQ/IiIrdC5pbnRlZ2VyVmFsdWU6ImRvdWJsZVZhbHVlImluIHQ/IiIrdC5kb3VibGVWYWx1ZToidGltZXN0YW1wVmFsdWUiaW4gdD9mdW5jdGlvbih0KXt2YXIgdD1tbSh0KTtyZXR1cm4idGltZSgiK3Quc2Vjb25kcysiLCIrdC5uYW5vcysiKSJ9KHQudGltZXN0YW1wVmFsdWUpOiJzdHJpbmdWYWx1ZSJpbiB0P3Quc3RyaW5nVmFsdWU6ImJ5dGVzVmFsdWUiaW4gdD93bSh0LmJ5dGVzVmFsdWUpLnRvQmFzZTY0KCk6InJlZmVyZW5jZVZhbHVlImluIHQ/KGU9dC5yZWZlcmVuY2VWYWx1ZSxDbS5mcm9tTmFtZShlKS50b1N0cmluZygpKToiZ2VvUG9pbnRWYWx1ZSJpbiB0PyJnZW8oIisoZT10Lmdlb1BvaW50VmFsdWUpLmxhdGl0dWRlKyIsIitlLmxvbmdpdHVkZSsiKSI6ImFycmF5VmFsdWUiaW4gdD9mdW5jdGlvbih0KXtmb3IodmFyIGU9IlsiLG49ITAscj0wLGk9dC52YWx1ZXN8fFtdO3I8aS5sZW5ndGg7cisrKW4/bj0hMTplKz0iLCIsZSs9cyhpW3JdKTtyZXR1cm4gZSsiXSJ9KHQuYXJyYXlWYWx1ZSk6Im1hcFZhbHVlImluIHQ/ZnVuY3Rpb24odCl7Zm9yKHZhciBlPSJ7IixuPSEwLHI9MCxpPU9iamVjdC5rZXlzKHQuZmllbGRzfHx7fSkuc29ydCgpO3I8aS5sZW5ndGg7cisrKXt2YXIgbz1pW3JdO24/bj0hMTplKz0iLCIsZSs9bysiOiIrcyh0LmZpZWxkc1tvXSl9cmV0dXJuIGUrIn0ifSh0Lm1hcFZhbHVlKTpIeSgpO3ZhciBlfSh0KX1mdW5jdGlvbiB4bSh0LGUpe3JldHVybntyZWZlcmVuY2VWYWx1ZToicHJvamVjdHMvIit0LnByb2plY3RJZCsiL2RhdGFiYXNlcy8iK3QuZGF0YWJhc2UrIi9kb2N1bWVudHMvIitlLnBhdGguY2Fub25pY2FsU3RyaW5nKCl9fWZ1bmN0aW9uIExtKHQpe3JldHVybiB0JiYiaW50ZWdlclZhbHVlImluIHR9ZnVuY3Rpb24gTW0odCl7cmV0dXJuISF0JiYiYXJyYXlWYWx1ZSJpbiB0fWZ1bmN0aW9uIEZtKHQpe3JldHVybiB0JiYibnVsbFZhbHVlImluIHR9ZnVuY3Rpb24gVW0odCl7cmV0dXJuIHQmJiJkb3VibGVWYWx1ZSJpbiB0JiZpc05hTihOdW1iZXIodC5kb3VibGVWYWx1ZSkpfWZ1bmN0aW9uIGptKHQpe3JldHVybiB0JiYibWFwVmFsdWUiaW4gdH12YXIgcW09KFZtLmVtcHR5PWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBWbSh7bWFwVmFsdWU6e319KX0sVm0ucHJvdG90eXBlLmZpZWxkPWZ1bmN0aW9uKHQpe3JldHVybiBWbS5leHRyYWN0TmVzdGVkVmFsdWUodGhpcy5idWlsZFByb3RvKCksdCl9LFZtLnByb3RvdHlwZS50b1Byb3RvPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZmllbGQoY20uZW1wdHlQYXRoKCkpfSxWbS5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKHQsZSl7dGhpcy5zZXRPdmVybGF5KHQsZSl9LFZtLnByb3RvdHlwZS5zZXRBbGw9ZnVuY3Rpb24odCl7dmFyIG49dGhpczt0LmZvckVhY2goZnVuY3Rpb24odCxlKXt0P24uc2V0KGUsdCk6bi5kZWxldGUoZSl9KX0sVm0ucHJvdG90eXBlLmRlbGV0ZT1mdW5jdGlvbih0KXt0aGlzLnNldE92ZXJsYXkodCxudWxsKX0sVm0ucHJvdG90eXBlLmlzRXF1YWw9ZnVuY3Rpb24odCl7cmV0dXJuIGttKHRoaXMuYnVpbGRQcm90bygpLHQuYnVpbGRQcm90bygpKX0sVm0ucHJvdG90eXBlLnNldE92ZXJsYXk9ZnVuY3Rpb24odCxlKXtmb3IodmFyIG49dGhpcy5vdmVybGF5TWFwLHI9MDtyPHQubGVuZ3RoLTE7KytyKXZhciBpPXQuZ2V0KHIpLG89bi5nZXQoaSksbj0obyBpbnN0YW5jZW9mIE1hcHx8KG89byYmMTA9PT1BbShvKT9uZXcgTWFwKE9iamVjdC5lbnRyaWVzKG8ubWFwVmFsdWUuZmllbGRzfHx7fSkpOm5ldyBNYXAsbi5zZXQoaSxvKSksbyk7bi5zZXQodC5sYXN0U2VnbWVudCgpLGUpfSxWbS5wcm90b3R5cGUuYXBwbHlPdmVybGF5PWZ1bmN0aW9uKHIsdCl7dmFyIGk9dGhpcyxvPSExLGU9Vm0uZXh0cmFjdE5lc3RlZFZhbHVlKHRoaXMucGFydGlhbFZhbHVlLHIpLHM9am0oZSk/T2JqZWN0LmFzc2lnbih7fSxlLm1hcFZhbHVlLmZpZWxkcyk6e307cmV0dXJuIHQuZm9yRWFjaChmdW5jdGlvbih0LGUpe3ZhciBuO3QgaW5zdGFuY2VvZiBNYXA/bnVsbCE9KG49aS5hcHBseU92ZXJsYXkoci5jaGlsZChlKSx0KSkmJihzW2VdPW4sbz0hMCk6bnVsbCE9PXQ/KHNbZV09dCxvPSEwKTpzLmhhc093blByb3BlcnR5KGUpJiYoZGVsZXRlIHNbZV0sbz0hMCl9KSxvP3ttYXBWYWx1ZTp7ZmllbGRzOnN9fTpudWxsfSxWbS5wcm90b3R5cGUuYnVpbGRQcm90bz1mdW5jdGlvbigpe3ZhciB0PXRoaXMuYXBwbHlPdmVybGF5KGNtLmVtcHR5UGF0aCgpLHRoaXMub3ZlcmxheU1hcCk7cmV0dXJuIG51bGwhPXQmJih0aGlzLnBhcnRpYWxWYWx1ZT10LHRoaXMub3ZlcmxheU1hcC5jbGVhcigpKSx0aGlzLnBhcnRpYWxWYWx1ZX0sVm0uZXh0cmFjdE5lc3RlZFZhbHVlPWZ1bmN0aW9uKHQsZSl7aWYoZS5pc0VtcHR5KCkpcmV0dXJuIHQ7Zm9yKHZhciBuPXQscj0wO3I8ZS5sZW5ndGgtMTsrK3Ipe2lmKCFuLm1hcFZhbHVlLmZpZWxkcylyZXR1cm4gbnVsbDtpZigham0obj1uLm1hcFZhbHVlLmZpZWxkc1tlLmdldChyKV0pKXJldHVybiBudWxsfXJldHVybihuPShuLm1hcFZhbHVlLmZpZWxkc3x8e30pW2UubGFzdFNlZ21lbnQoKV0pfHxudWxsfSxWbS5wcm90b3R5cGUuY2xvbmU9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IFZtKHRoaXMuYnVpbGRQcm90bygpKX0sVm0pO2Z1bmN0aW9uIFZtKHQpe3RoaXMub3ZlcmxheU1hcD1uZXcgTWFwLHRoaXMucGFydGlhbFZhbHVlPXR9dmFyIEJtPShXbS5uZXdJbnZhbGlkRG9jdW1lbnQ9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBXbSh0LDAsWnkubWluKCkscW0uZW1wdHkoKSwwKX0sV20ubmV3Rm91bmREb2N1bWVudD1mdW5jdGlvbih0LGUsbil7cmV0dXJuIG5ldyBXbSh0LDEsZSxuLDApfSxXbS5uZXdOb0RvY3VtZW50PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBXbSh0LDIsZSxxbS5lbXB0eSgpLDApfSxXbS5uZXdVbmtub3duRG9jdW1lbnQ9ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IFdtKHQsMyxlLHFtLmVtcHR5KCksMil9LFdtLnByb3RvdHlwZS5jb252ZXJ0VG9Gb3VuZERvY3VtZW50PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMudmVyc2lvbj10LHRoaXMuZG9jdW1lbnRUeXBlPTEsdGhpcy5kYXRhPWUsdGhpcy5kb2N1bWVudFN0YXRlPTAsdGhpc30sV20ucHJvdG90eXBlLmNvbnZlcnRUb05vRG9jdW1lbnQ9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMudmVyc2lvbj10LHRoaXMuZG9jdW1lbnRUeXBlPTIsdGhpcy5kYXRhPXFtLmVtcHR5KCksdGhpcy5kb2N1bWVudFN0YXRlPTAsdGhpc30sV20ucHJvdG90eXBlLmNvbnZlcnRUb1Vua25vd25Eb2N1bWVudD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52ZXJzaW9uPXQsdGhpcy5kb2N1bWVudFR5cGU9Myx0aGlzLmRhdGE9cW0uZW1wdHkoKSx0aGlzLmRvY3VtZW50U3RhdGU9Mix0aGlzfSxXbS5wcm90b3R5cGUuc2V0SGFzQ29tbWl0dGVkTXV0YXRpb25zPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZG9jdW1lbnRTdGF0ZT0yLHRoaXN9LFdtLnByb3RvdHlwZS5zZXRIYXNMb2NhbE11dGF0aW9ucz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmRvY3VtZW50U3RhdGU9MSx0aGlzfSxPYmplY3QuZGVmaW5lUHJvcGVydHkoV20ucHJvdG90eXBlLCJoYXNMb2NhbE11dGF0aW9ucyIse2dldDpmdW5jdGlvbigpe3JldHVybiAxPT09dGhpcy5kb2N1bWVudFN0YXRlfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShXbS5wcm90b3R5cGUsImhhc0NvbW1pdHRlZE11dGF0aW9ucyIse2dldDpmdW5jdGlvbigpe3JldHVybiAyPT09dGhpcy5kb2N1bWVudFN0YXRlfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShXbS5wcm90b3R5cGUsImhhc1BlbmRpbmdXcml0ZXMiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5oYXNMb2NhbE11dGF0aW9uc3x8dGhpcy5oYXNDb21taXR0ZWRNdXRhdGlvbnN9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksV20ucHJvdG90eXBlLmlzVmFsaWREb2N1bWVudD1mdW5jdGlvbigpe3JldHVybiAwIT09dGhpcy5kb2N1bWVudFR5cGV9LFdtLnByb3RvdHlwZS5pc0ZvdW5kRG9jdW1lbnQ9ZnVuY3Rpb24oKXtyZXR1cm4gMT09PXRoaXMuZG9jdW1lbnRUeXBlfSxXbS5wcm90b3R5cGUuaXNOb0RvY3VtZW50PWZ1bmN0aW9uKCl7cmV0dXJuIDI9PT10aGlzLmRvY3VtZW50VHlwZX0sV20ucHJvdG90eXBlLmlzVW5rbm93bkRvY3VtZW50PWZ1bmN0aW9uKCl7cmV0dXJuIDM9PT10aGlzLmRvY3VtZW50VHlwZX0sV20ucHJvdG90eXBlLmlzRXF1YWw9ZnVuY3Rpb24odCl7cmV0dXJuIHQgaW5zdGFuY2VvZiBXbSYmdGhpcy5rZXkuaXNFcXVhbCh0LmtleSkmJnRoaXMudmVyc2lvbi5pc0VxdWFsKHQudmVyc2lvbikmJnRoaXMuZG9jdW1lbnRUeXBlPT09dC5kb2N1bWVudFR5cGUmJnRoaXMuZG9jdW1lbnRTdGF0ZT09PXQuZG9jdW1lbnRTdGF0ZSYmdGhpcy5kYXRhLmlzRXF1YWwodC5kYXRhKX0sV20ucHJvdG90eXBlLmNsb25lPWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBXbSh0aGlzLmtleSx0aGlzLmRvY3VtZW50VHlwZSx0aGlzLnZlcnNpb24sdGhpcy5kYXRhLmNsb25lKCksdGhpcy5kb2N1bWVudFN0YXRlKX0sV20ucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIkRvY3VtZW50KCIrdGhpcy5rZXkrIiwgIit0aGlzLnZlcnNpb24rIiwgIitKU09OLnN0cmluZ2lmeSh0aGlzLmRhdGEudG9Qcm90bygpKSsiLCB7ZG9jdW1lbnRUeXBlOiAiK3RoaXMuZG9jdW1lbnRUeXBlKyJ9KSwge2RvY3VtZW50U3RhdGU6ICIrdGhpcy5kb2N1bWVudFN0YXRlKyJ9KSJ9LFdtKSxLbT1mdW5jdGlvbih0LGUsbixyLGksbyxzKXt2b2lkIDA9PT1lJiYoZT1udWxsKSx2b2lkIDA9PT1uJiYobj1bXSksdm9pZCAwPT09ciYmKHI9W10pLHZvaWQgMD09PWkmJihpPW51bGwpLHZvaWQgMD09PW8mJihvPW51bGwpLHZvaWQgMD09PXMmJihzPW51bGwpLHRoaXMucGF0aD10LHRoaXMuY29sbGVjdGlvbkdyb3VwPWUsdGhpcy5vcmRlckJ5PW4sdGhpcy5maWx0ZXJzPXIsdGhpcy5saW1pdD1pLHRoaXMuc3RhcnRBdD1vLHRoaXMuZW5kQXQ9cyx0aGlzLmg9bnVsbH07ZnVuY3Rpb24gV20odCxlLG4scixpKXt0aGlzLmtleT10LHRoaXMuZG9jdW1lbnRUeXBlPWUsdGhpcy52ZXJzaW9uPW4sdGhpcy5kYXRhPXIsdGhpcy5kb2N1bWVudFN0YXRlPWl9ZnVuY3Rpb24gSG0odCxlLG4scixpLG8scyl7cmV0dXJuIG5ldyBLbSh0LGU9dm9pZCAwPT09ZT9udWxsOmUsbj12b2lkIDA9PT1uP1tdOm4scj12b2lkIDA9PT1yP1tdOnIsaT12b2lkIDA9PT1pP251bGw6aSxvPXZvaWQgMD09PW8/bnVsbDpvLHM9dm9pZCAwPT09cz9udWxsOnMpfWZ1bmN0aW9uIEdtKHQpe3ZhciBlPXQ7cmV0dXJuIG51bGw9PT1lLmgmJih0PWUucGF0aC5jYW5vbmljYWxTdHJpbmcoKSxudWxsIT09ZS5jb2xsZWN0aW9uR3JvdXAmJih0Kz0ifGNnOiIrZS5jb2xsZWN0aW9uR3JvdXApLHQrPSJ8ZjoiLHQrPWUuZmlsdGVycy5tYXAoZnVuY3Rpb24odCl7cmV0dXJuKHQ9dCkuZmllbGQuY2Fub25pY2FsU3RyaW5nKCkrdC5vcC50b1N0cmluZygpK0RtKHQudmFsdWUpfSkuam9pbigiLCIpLHQrPSJ8b2I6Iix0Kz1lLm9yZGVyQnkubWFwKGZ1bmN0aW9uKHQpe3JldHVybih0PXQpLmZpZWxkLmNhbm9uaWNhbFN0cmluZygpK3QuZGlyfSkuam9pbigiLCIpLFRtKGUubGltaXQpfHwodCs9InxsOiIsdCs9ZS5saW1pdCksZS5zdGFydEF0JiYodCs9InxsYjoiLHQrPV9iKGUuc3RhcnRBdCkpLGUuZW5kQXQmJih0Kz0ifHViOiIsdCs9X2IoZS5lbmRBdCkpLGUuaD10KSxlLmh9ZnVuY3Rpb24gem0odCxlKXtpZih0LmxpbWl0IT09ZS5saW1pdClyZXR1cm4hMTtpZih0Lm9yZGVyQnkubGVuZ3RoIT09ZS5vcmRlckJ5Lmxlbmd0aClyZXR1cm4hMTtmb3IodmFyIG4scixpPTA7aTx0Lm9yZGVyQnkubGVuZ3RoO2krKylpZihuPXQub3JkZXJCeVtpXSxyPWUub3JkZXJCeVtpXSxuLmRpciE9PXIuZGlyfHwhbi5maWVsZC5pc0VxdWFsKHIuZmllbGQpKXJldHVybiExO2lmKHQuZmlsdGVycy5sZW5ndGghPT1lLmZpbHRlcnMubGVuZ3RoKXJldHVybiExO2Zvcih2YXIgbyxzLGE9MDthPHQuZmlsdGVycy5sZW5ndGg7YSsrKWlmKG89dC5maWx0ZXJzW2FdLHM9ZS5maWx0ZXJzW2FdLG8ub3AhPT1zLm9wfHwhby5maWVsZC5pc0VxdWFsKHMuZmllbGQpfHwha20oby52YWx1ZSxzLnZhbHVlKSlyZXR1cm4hMTtyZXR1cm4gdC5jb2xsZWN0aW9uR3JvdXA9PT1lLmNvbGxlY3Rpb25Hcm91cCYmISF0LnBhdGguaXNFcXVhbChlLnBhdGgpJiYhIUViKHQuc3RhcnRBdCxlLnN0YXJ0QXQpJiZFYih0LmVuZEF0LGUuZW5kQXQpfWZ1bmN0aW9uIFFtKHQpe3JldHVybiBDbS5pc0RvY3VtZW50S2V5KHQucGF0aCkmJm51bGw9PT10LmNvbGxlY3Rpb25Hcm91cCYmMD09PXQuZmlsdGVycy5sZW5ndGh9dmFyIFltLFhtPShYaShKbSxZbT1mdW5jdGlvbigpe30pLEptLmNyZWF0ZT1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHQuaXNLZXlGaWVsZCgpPyJpbiI9PT1lfHwibm90LWluIj09PWU/dGhpcy5sKHQsZSxuKTpuZXcgZWIodCxlLG4pOiJhcnJheS1jb250YWlucyI9PT1lP25ldyBmYih0LG4pOiJpbiI9PT1lP25ldyBwYih0LG4pOiJub3QtaW4iPT09ZT9uZXcgZGIodCxuKToiYXJyYXktY29udGFpbnMtYW55Ij09PWU/bmV3IHZiKHQsbik6bmV3IEptKHQsZSxuKX0sSm0ubD1mdW5jdGlvbih0LGUsbil7cmV0dXJuIG5ldygiaW4iPT09ZT9uYjpyYikodCxuKX0sSm0ucHJvdG90eXBlLm1hdGNoZXM9ZnVuY3Rpb24odCl7dD10LmRhdGEuZmllbGQodGhpcy5maWVsZCk7cmV0dXJuIiE9Ij09PXRoaXMub3A/bnVsbCE9PXQmJnRoaXMubShQbSh0LHRoaXMudmFsdWUpKTpudWxsIT09dCYmQW0odGhpcy52YWx1ZSk9PT1BbSh0KSYmdGhpcy5tKFBtKHQsdGhpcy52YWx1ZSkpfSxKbS5wcm90b3R5cGUubT1mdW5jdGlvbih0KXtzd2l0Y2godGhpcy5vcCl7Y2FzZSI8IjpyZXR1cm4gdDwwO2Nhc2UiPD0iOnJldHVybiB0PD0wO2Nhc2UiPT0iOnJldHVybiAwPT09dDtjYXNlIiE9IjpyZXR1cm4gMCE9PXQ7Y2FzZSI+IjpyZXR1cm4gMDx0O2Nhc2UiPj0iOnJldHVybiAwPD10O2RlZmF1bHQ6cmV0dXJuIEh5KCl9fSxKbS5wcm90b3R5cGUuZz1mdW5jdGlvbigpe3JldHVybiAwPD1bIjwiLCI8PSIsIj4iLCI+PSIsIiE9Iiwibm90LWluIl0uaW5kZXhPZih0aGlzLm9wKX0sSm0pO2Z1bmN0aW9uIEptKHQsZSxuKXt2YXIgcj10aGlzO3JldHVybihyPVltLmNhbGwodGhpcyl8fHRoaXMpLmZpZWxkPXQsci5vcD1lLHIudmFsdWU9bixyfXZhciAkbSxabSx0YixlYj0oWGkoc2IsdGI9WG0pLHNiLnByb3RvdHlwZS5tYXRjaGVzPWZ1bmN0aW9uKHQpe3Q9Q20uY29tcGFyYXRvcih0LmtleSx0aGlzLmtleSk7cmV0dXJuIHRoaXMubSh0KX0sc2IpLG5iPShYaShvYixabT1YbSksb2IucHJvdG90eXBlLm1hdGNoZXM9ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMua2V5cy5zb21lKGZ1bmN0aW9uKHQpe3JldHVybiB0LmlzRXF1YWwoZS5rZXkpfSl9LG9iKSxyYj0oWGkoaWIsJG09WG0pLGliLnByb3RvdHlwZS5tYXRjaGVzPWZ1bmN0aW9uKGUpe3JldHVybiF0aGlzLmtleXMuc29tZShmdW5jdGlvbih0KXtyZXR1cm4gdC5pc0VxdWFsKGUua2V5KX0pfSxpYik7ZnVuY3Rpb24gaWIodCxlKXt2YXIgbj10aGlzO3JldHVybihuPSRtLmNhbGwodGhpcyx0LCJub3QtaW4iLGUpfHx0aGlzKS5rZXlzPWFiKDAsZSksbn1mdW5jdGlvbiBvYih0LGUpe3ZhciBuPXRoaXM7cmV0dXJuKG49Wm0uY2FsbCh0aGlzLHQsImluIixlKXx8dGhpcykua2V5cz1hYigwLGUpLG59ZnVuY3Rpb24gc2IodCxlLG4pe3ZhciByPXRoaXM7cmV0dXJuKHI9dGIuY2FsbCh0aGlzLHQsZSxuKXx8dGhpcykua2V5PUNtLmZyb21OYW1lKG4ucmVmZXJlbmNlVmFsdWUpLHJ9ZnVuY3Rpb24gYWIodCxlKXtyZXR1cm4oKG51bGw9PT0oZT1lLmFycmF5VmFsdWUpfHx2b2lkIDA9PT1lP3ZvaWQgMDplLnZhbHVlcyl8fFtdKS5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIENtLmZyb21OYW1lKHQucmVmZXJlbmNlVmFsdWUpfSl9dmFyIHViLGNiLGhiLGxiLGZiPShYaSh3YixsYj1YbSksd2IucHJvdG90eXBlLm1hdGNoZXM9ZnVuY3Rpb24odCl7dD10LmRhdGEuZmllbGQodGhpcy5maWVsZCk7cmV0dXJuIE1tKHQpJiZSbSh0LmFycmF5VmFsdWUsdGhpcy52YWx1ZSl9LHdiKSxwYj0oWGkoYmIsaGI9WG0pLGJiLnByb3RvdHlwZS5tYXRjaGVzPWZ1bmN0aW9uKHQpe3Q9dC5kYXRhLmZpZWxkKHRoaXMuZmllbGQpO3JldHVybiBudWxsIT09dCYmUm0odGhpcy52YWx1ZS5hcnJheVZhbHVlLHQpfSxiYiksZGI9KFhpKG1iLGNiPVhtKSxtYi5wcm90b3R5cGUubWF0Y2hlcz1mdW5jdGlvbih0KXtpZihSbSh0aGlzLnZhbHVlLmFycmF5VmFsdWUse251bGxWYWx1ZToiTlVMTF9WQUxVRSJ9KSlyZXR1cm4hMTt0PXQuZGF0YS5maWVsZCh0aGlzLmZpZWxkKTtyZXR1cm4gbnVsbCE9PXQmJiFSbSh0aGlzLnZhbHVlLmFycmF5VmFsdWUsdCl9LG1iKSx2Yj0oWGkoeWIsdWI9WG0pLHliLnByb3RvdHlwZS5tYXRjaGVzPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMsdD10LmRhdGEuZmllbGQodGhpcy5maWVsZCk7cmV0dXJuISghTW0odCl8fCF0LmFycmF5VmFsdWUudmFsdWVzKSYmdC5hcnJheVZhbHVlLnZhbHVlcy5zb21lKGZ1bmN0aW9uKHQpe3JldHVybiBSbShlLnZhbHVlLmFycmF5VmFsdWUsdCl9KX0seWIpLGdiPWZ1bmN0aW9uKHQsZSl7dGhpcy5wb3NpdGlvbj10LHRoaXMuYmVmb3JlPWV9O2Z1bmN0aW9uIHliKHQsZSl7cmV0dXJuIHViLmNhbGwodGhpcyx0LCJhcnJheS1jb250YWlucy1hbnkiLGUpfHx0aGlzfWZ1bmN0aW9uIG1iKHQsZSl7cmV0dXJuIGNiLmNhbGwodGhpcyx0LCJub3QtaW4iLGUpfHx0aGlzfWZ1bmN0aW9uIGJiKHQsZSl7cmV0dXJuIGhiLmNhbGwodGhpcyx0LCJpbiIsZSl8fHRoaXN9ZnVuY3Rpb24gd2IodCxlKXtyZXR1cm4gbGIuY2FsbCh0aGlzLHQsImFycmF5LWNvbnRhaW5zIixlKXx8dGhpc31mdW5jdGlvbiBfYih0KXtyZXR1cm4odC5iZWZvcmU/ImIiOiJhIikrIjoiK3QucG9zaXRpb24ubWFwKERtKS5qb2luKCIsIil9dmFyIEliPWZ1bmN0aW9uKHQsZSl7dm9pZCAwPT09ZSYmKGU9ImFzYyIpLHRoaXMuZmllbGQ9dCx0aGlzLmRpcj1lfTtmdW5jdGlvbiBUYih0LGUsbil7Zm9yKHZhciByPTAsaT0wO2k8dC5wb3NpdGlvbi5sZW5ndGg7aSsrKXt2YXIgbz1lW2ldLHM9dC5wb3NpdGlvbltpXSxyPW8uZmllbGQuaXNLZXlGaWVsZCgpP0NtLmNvbXBhcmF0b3IoQ20uZnJvbU5hbWUocy5yZWZlcmVuY2VWYWx1ZSksbi5rZXkpOlBtKHMsbi5kYXRhLmZpZWxkKG8uZmllbGQpKTtpZigiZGVzYyI9PT1vLmRpciYmKHIqPS0xKSwwIT09cilicmVha31yZXR1cm4gdC5iZWZvcmU/cjw9MDpyPDB9ZnVuY3Rpb24gRWIodCxlKXtpZihudWxsPT09dClyZXR1cm4gbnVsbD09PWU7aWYobnVsbD09PWUpcmV0dXJuITE7aWYodC5iZWZvcmUhPT1lLmJlZm9yZXx8dC5wb3NpdGlvbi5sZW5ndGghPT1lLnBvc2l0aW9uLmxlbmd0aClyZXR1cm4hMTtmb3IodmFyIG49MDtuPHQucG9zaXRpb24ubGVuZ3RoO24rKylpZigha20odC5wb3NpdGlvbltuXSxlLnBvc2l0aW9uW25dKSlyZXR1cm4hMTtyZXR1cm4hMH12YXIgU2I9ZnVuY3Rpb24odCxlLG4scixpLG8scyxhKXt2b2lkIDA9PT1lJiYoZT1udWxsKSx2b2lkIDA9PT1uJiYobj1bXSksdm9pZCAwPT09ciYmKHI9W10pLHZvaWQgMD09PWkmJihpPW51bGwpLHZvaWQgMD09PW8mJihvPSJGIiksdm9pZCAwPT09cyYmKHM9bnVsbCksdm9pZCAwPT09YSYmKGE9bnVsbCksdGhpcy5wYXRoPXQsdGhpcy5jb2xsZWN0aW9uR3JvdXA9ZSx0aGlzLmV4cGxpY2l0T3JkZXJCeT1uLHRoaXMuZmlsdGVycz1yLHRoaXMubGltaXQ9aSx0aGlzLmxpbWl0VHlwZT1vLHRoaXMuc3RhcnRBdD1zLHRoaXMuZW5kQXQ9YSx0aGlzLnA9bnVsbCx0aGlzLlQ9bnVsbCx0aGlzLnN0YXJ0QXQsdGhpcy5lbmRBdH07ZnVuY3Rpb24gQ2IodCxlLG4scixpLG8scyxhKXtyZXR1cm4gbmV3IFNiKHQsZSxuLHIsaSxvLHMsYSl9ZnVuY3Rpb24gTmIodCl7cmV0dXJuIG5ldyBTYih0KX1mdW5jdGlvbiBBYih0KXtyZXR1cm4hVG0odC5saW1pdCkmJiJGIj09PXQubGltaXRUeXBlfWZ1bmN0aW9uIGtiKHQpe3JldHVybiFUbSh0LmxpbWl0KSYmIkwiPT09dC5saW1pdFR5cGV9ZnVuY3Rpb24gUmIodCl7cmV0dXJuIDA8dC5leHBsaWNpdE9yZGVyQnkubGVuZ3RoP3QuZXhwbGljaXRPcmRlckJ5WzBdLmZpZWxkOm51bGx9ZnVuY3Rpb24gUGIodCl7Zm9yKHZhciBlPTAsbj10LmZpbHRlcnM7ZTxuLmxlbmd0aDtlKyspe3ZhciByPW5bZV07aWYoci5nKCkpcmV0dXJuIHIuZmllbGR9cmV0dXJuIG51bGx9ZnVuY3Rpb24gT2IodCl7cmV0dXJuIG51bGwhPT10LmNvbGxlY3Rpb25Hcm91cH1mdW5jdGlvbiBEYih0KXt2YXIgZT10O2lmKG51bGw9PT1lLnApe2UucD1bXTt2YXIgbj1QYihlKSx0PVJiKGUpO2lmKG51bGwhPT1uJiZudWxsPT09dCluLmlzS2V5RmllbGQoKXx8ZS5wLnB1c2gobmV3IEliKG4pKSxlLnAucHVzaChuZXcgSWIoY20ua2V5RmllbGQoKSwiYXNjIikpO2Vsc2V7Zm9yKHZhciByPSExLGk9MCxvPWUuZXhwbGljaXRPcmRlckJ5O2k8by5sZW5ndGg7aSsrKXt2YXIgcz1vW2ldO2UucC5wdXNoKHMpLHMuZmllbGQuaXNLZXlGaWVsZCgpJiYocj0hMCl9cnx8KG49MDxlLmV4cGxpY2l0T3JkZXJCeS5sZW5ndGg/ZS5leHBsaWNpdE9yZGVyQnlbZS5leHBsaWNpdE9yZGVyQnkubGVuZ3RoLTFdLmRpcjoiYXNjIixlLnAucHVzaChuZXcgSWIoY20ua2V5RmllbGQoKSxuKSkpfX1yZXR1cm4gZS5wfWZ1bmN0aW9uIHhiKHQpe3ZhciBlPXQ7aWYoIWUuVClpZigiRiI9PT1lLmxpbWl0VHlwZSllLlQ9SG0oZS5wYXRoLGUuY29sbGVjdGlvbkdyb3VwLERiKGUpLGUuZmlsdGVycyxlLmxpbWl0LGUuc3RhcnRBdCxlLmVuZEF0KTtlbHNle2Zvcih2YXIgbj1bXSxyPTAsaT1EYihlKTtyPGkubGVuZ3RoO3IrKyl7dmFyIG89aVtyXSxzPSJkZXNjIj09PW8uZGlyPyJhc2MiOiJkZXNjIjtuLnB1c2gobmV3IEliKG8uZmllbGQscykpfXZhciBhPWUuZW5kQXQ/bmV3IGdiKGUuZW5kQXQucG9zaXRpb24sIWUuZW5kQXQuYmVmb3JlKTpudWxsLHQ9ZS5zdGFydEF0P25ldyBnYihlLnN0YXJ0QXQucG9zaXRpb24sIWUuc3RhcnRBdC5iZWZvcmUpOm51bGw7ZS5UPUhtKGUucGF0aCxlLmNvbGxlY3Rpb25Hcm91cCxuLGUuZmlsdGVycyxlLmxpbWl0LGEsdCl9cmV0dXJuIGUuVH1mdW5jdGlvbiBMYih0LGUsbil7cmV0dXJuIG5ldyBTYih0LnBhdGgsdC5jb2xsZWN0aW9uR3JvdXAsdC5leHBsaWNpdE9yZGVyQnkuc2xpY2UoKSx0LmZpbHRlcnMuc2xpY2UoKSxlLG4sdC5zdGFydEF0LHQuZW5kQXQpfWZ1bmN0aW9uIE1iKHQsZSl7cmV0dXJuIHptKHhiKHQpLHhiKGUpKSYmdC5saW1pdFR5cGU9PT1lLmxpbWl0VHlwZX1mdW5jdGlvbiBGYih0KXtyZXR1cm4gR20oeGIodCkpKyJ8bHQ6Iit0LmxpbWl0VHlwZX1mdW5jdGlvbiBVYih0KXtyZXR1cm4iUXVlcnkodGFyZ2V0PSIrKGU9eGIodCksbj1lLnBhdGguY2Fub25pY2FsU3RyaW5nKCksbnVsbCE9PWUuY29sbGVjdGlvbkdyb3VwJiYobis9IiBjb2xsZWN0aW9uR3JvdXA9IitlLmNvbGxlY3Rpb25Hcm91cCksMDxlLmZpbHRlcnMubGVuZ3RoJiYobis9IiwgZmlsdGVyczogWyIrZS5maWx0ZXJzLm1hcChmdW5jdGlvbih0KXtyZXR1cm4odD10KS5maWVsZC5jYW5vbmljYWxTdHJpbmcoKSsiICIrdC5vcCsiICIrRG0odC52YWx1ZSl9KS5qb2luKCIsICIpKyJdIiksVG0oZS5saW1pdCl8fChuKz0iLCBsaW1pdDogIitlLmxpbWl0KSwwPGUub3JkZXJCeS5sZW5ndGgmJihuKz0iLCBvcmRlckJ5OiBbIitlLm9yZGVyQnkubWFwKGZ1bmN0aW9uKHQpe3JldHVybih0PXQpLmZpZWxkLmNhbm9uaWNhbFN0cmluZygpKyIgKCIrdC5kaXIrIikifSkuam9pbigiLCAiKSsiXSIpLGUuc3RhcnRBdCYmKG4rPSIsIHN0YXJ0QXQ6ICIrX2IoZS5zdGFydEF0KSksZS5lbmRBdCYmKG4rPSIsIGVuZEF0OiAiK19iKGUuZW5kQXQpKSwiVGFyZ2V0KCIrbisiKSIpKyI7IGxpbWl0VHlwZT0iK3QubGltaXRUeXBlKyIpIjt2YXIgZSxufWZ1bmN0aW9uIGpiKGksdCl7cmV0dXJuIHQuaXNGb3VuZERvY3VtZW50KCkmJihlPWksbj10LmtleS5wYXRoLG51bGwhPT1lLmNvbGxlY3Rpb25Hcm91cD90LmtleS5oYXNDb2xsZWN0aW9uSWQoZS5jb2xsZWN0aW9uR3JvdXApJiZlLnBhdGguaXNQcmVmaXhPZihuKTpDbS5pc0RvY3VtZW50S2V5KGUucGF0aCk/ZS5wYXRoLmlzRXF1YWwobik6ZS5wYXRoLmlzSW1tZWRpYXRlUGFyZW50T2YobikpJiZmdW5jdGlvbih0KXtmb3IodmFyIGU9MCxuPWkuZXhwbGljaXRPcmRlckJ5O2U8bi5sZW5ndGg7ZSsrKXt2YXIgcj1uW2VdO2lmKCFyLmZpZWxkLmlzS2V5RmllbGQoKSYmbnVsbD09PXQuZGF0YS5maWVsZChyLmZpZWxkKSlyZXR1cm59cmV0dXJuIDF9KHQpJiZmdW5jdGlvbih0KXtmb3IodmFyIGU9MCxuPWkuZmlsdGVycztlPG4ubGVuZ3RoO2UrKylpZighbltlXS5tYXRjaGVzKHQpKXJldHVybjtyZXR1cm4gMX0odCkmJihuPXQsKCEodD1pKS5zdGFydEF0fHxUYih0LnN0YXJ0QXQsRGIodCksbikpJiYoIXQuZW5kQXR8fCFUYih0LmVuZEF0LERiKHQpLG4pKSk7dmFyIGUsbn1mdW5jdGlvbiBxYihhKXtyZXR1cm4gZnVuY3Rpb24odCxlKXtmb3IodmFyIG49ITEscj0wLGk9RGIoYSk7cjxpLmxlbmd0aDtyKyspe3ZhciBvPWlbcl0scz1mdW5jdGlvbih0LHIsZSl7dmFyIG49dC5maWVsZC5pc0tleUZpZWxkKCk/Q20uY29tcGFyYXRvcihyLmtleSxlLmtleSk6ZnVuY3Rpb24odCxlKXt2YXIgbj1yLmRhdGEuZmllbGQodCksdD1lLmRhdGEuZmllbGQodCk7cmV0dXJuIG51bGwhPT1uJiZudWxsIT09dD9QbShuLHQpOkh5KCl9KHQuZmllbGQsZSk7c3dpdGNoKHQuZGlyKXtjYXNlImFzYyI6cmV0dXJuIG47Y2FzZSJkZXNjIjpyZXR1cm4tMSpuO2RlZmF1bHQ6cmV0dXJuIEh5KCl9fShvLHQsZSk7aWYoMCE9PXMpcmV0dXJuIHM7bj1ufHxvLmZpZWxkLmlzS2V5RmllbGQoKX1yZXR1cm4gMH19ZnVuY3Rpb24gVmIodCxlKXtpZih0Lkkpe2lmKGlzTmFOKGUpKXJldHVybntkb3VibGVWYWx1ZToiTmFOIn07aWYoZT09PTEvMClyZXR1cm57ZG91YmxlVmFsdWU6IkluZmluaXR5In07aWYoZT09PS0xLzApcmV0dXJue2RvdWJsZVZhbHVlOiItSW5maW5pdHkifX1yZXR1cm57ZG91YmxlVmFsdWU6RW0oZSk/Ii0wIjplfX1mdW5jdGlvbiBCYih0KXtyZXR1cm57aW50ZWdlclZhbHVlOiIiK3R9fWZ1bmN0aW9uIEtiKHQsZSl7cmV0dXJuIFNtKGUpP0JiKGUpOlZiKHQsZSl9U249ZnVuY3Rpb24oKXt0aGlzLl89dm9pZCAwfTtmdW5jdGlvbiBXYih0LGUpe3JldHVybiB0IGluc3RhbmNlb2Ygcnc/TG0odD1lKXx8dCYmImRvdWJsZVZhbHVlImluIHQ/ZTp7aW50ZWdlclZhbHVlOjB9Om51bGx9dmFyIEhiLEdiLHpiPShYaShYYixHYj1TbiksWGIpLFFiPShYaShZYixIYj1TbiksWWIpO2Z1bmN0aW9uIFliKHQpe3ZhciBlPXRoaXM7cmV0dXJuKGU9SGIuY2FsbCh0aGlzKXx8dGhpcykuZWxlbWVudHM9dCxlfWZ1bmN0aW9uIFhiKCl7cmV0dXJuIG51bGwhPT1HYiYmR2IuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzfWZ1bmN0aW9uIEpiKHQsZSl7Zm9yKHZhciBuPXN3KGUpLHI9MCxpPXQuZWxlbWVudHM7cjxpLmxlbmd0aDtyKyspIWZ1bmN0aW9uKGUpe24uc29tZShmdW5jdGlvbih0KXtyZXR1cm4ga20odCxlKX0pfHxuLnB1c2goZSl9KGlbcl0pO3JldHVybnthcnJheVZhbHVlOnt2YWx1ZXM6bn19fXZhciAkYixaYj0oWGkodHcsJGI9U24pLHR3KTtmdW5jdGlvbiB0dyh0KXt2YXIgZT10aGlzO3JldHVybihlPSRiLmNhbGwodGhpcyl8fHRoaXMpLmVsZW1lbnRzPXQsZX1mdW5jdGlvbiBldyh0LGUpe2Zvcih2YXIgbj1zdyhlKSxyPTAsaT10LmVsZW1lbnRzO3I8aS5sZW5ndGg7cisrKSFmdW5jdGlvbihlKXtuPW4uZmlsdGVyKGZ1bmN0aW9uKHQpe3JldHVybiFrbSh0LGUpfSl9KGlbcl0pO3JldHVybnthcnJheVZhbHVlOnt2YWx1ZXM6bn19fXZhciBudyxydz0oWGkoaXcsbnc9U24pLGl3KTtmdW5jdGlvbiBpdyh0LGUpe3ZhciBuPXRoaXM7cmV0dXJuKG49bncuY2FsbCh0aGlzKXx8dGhpcykuUj10LG4uQT1lLG59ZnVuY3Rpb24gb3codCl7cmV0dXJuIGJtKHQuaW50ZWdlclZhbHVlfHx0LmRvdWJsZVZhbHVlKX1mdW5jdGlvbiBzdyh0KXtyZXR1cm4gTW0odCkmJnQuYXJyYXlWYWx1ZS52YWx1ZXM/dC5hcnJheVZhbHVlLnZhbHVlcy5zbGljZSgpOltdfWZ1bmN0aW9uIGF3KHQsZSl7dGhpcy52ZXJzaW9uPXQsdGhpcy50cmFuc2Zvcm1SZXN1bHRzPWV9dmFyIHV3PWZ1bmN0aW9uKHQsZSl7dGhpcy5maWVsZD10LHRoaXMudHJhbnNmb3JtPWV9LGN3PShody5ub25lPWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBod30saHcuZXhpc3RzPWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgaHcodm9pZCAwLHQpfSxody51cGRhdGVUaW1lPWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgaHcodCl9LE9iamVjdC5kZWZpbmVQcm9wZXJ0eShody5wcm90b3R5cGUsImlzTm9uZSIse2dldDpmdW5jdGlvbigpe3JldHVybiB2b2lkIDA9PT10aGlzLnVwZGF0ZVRpbWUmJnZvaWQgMD09PXRoaXMuZXhpc3RzfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLGh3LnByb3RvdHlwZS5pc0VxdWFsPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmV4aXN0cz09PXQuZXhpc3RzJiYodGhpcy51cGRhdGVUaW1lPyEhdC51cGRhdGVUaW1lJiZ0aGlzLnVwZGF0ZVRpbWUuaXNFcXVhbCh0LnVwZGF0ZVRpbWUpOiF0LnVwZGF0ZVRpbWUpfSxodyk7ZnVuY3Rpb24gaHcodCxlKXt0aGlzLnVwZGF0ZVRpbWU9dCx0aGlzLmV4aXN0cz1lfWZ1bmN0aW9uIGx3KHQsZSl7cmV0dXJuIHZvaWQgMCE9PXQudXBkYXRlVGltZT9lLmlzRm91bmREb2N1bWVudCgpJiZlLnZlcnNpb24uaXNFcXVhbCh0LnVwZGF0ZVRpbWUpOnZvaWQgMD09PXQuZXhpc3RzfHx0LmV4aXN0cz09PWUuaXNGb3VuZERvY3VtZW50KCl9R2E9ZnVuY3Rpb24oKXt9O2Z1bmN0aW9uIGZ3KHQsZSxuKXt2YXIgcixpLG8sczt0IGluc3RhbmNlb2YgeXc/KGk9ZSxvPW4sbHcoKHI9dCkucHJlY29uZGl0aW9uLGkpJiYocz1yLnZhbHVlLmNsb25lKCksbz1UdyhyLmZpZWxkVHJhbnNmb3JtcyxvLGkpLHMuc2V0QWxsKG8pLGkuY29udmVydFRvRm91bmREb2N1bWVudChkdyhpKSxzKS5zZXRIYXNMb2NhbE11dGF0aW9ucygpKSk6dCBpbnN0YW5jZW9mIG13PyhvPWUsaT1uLGx3KChzPXQpLnByZWNvbmRpdGlvbixvKSYmKG49VHcocy5maWVsZFRyYW5zZm9ybXMsaSxvKSwoaT1vLmRhdGEpLnNldEFsbChfdyhzKSksaS5zZXRBbGwobiksby5jb252ZXJ0VG9Gb3VuZERvY3VtZW50KGR3KG8pLGkpLnNldEhhc0xvY2FsTXV0YXRpb25zKCkpKTooZT1lLGx3KHQucHJlY29uZGl0aW9uLGUpJiZlLmNvbnZlcnRUb05vRG9jdW1lbnQoWnkubWluKCkpKX1mdW5jdGlvbiBwdyh0LGUpe3JldHVybiB0LnR5cGU9PT1lLnR5cGUmJiEhdC5rZXkuaXNFcXVhbChlLmtleSkmJiEhdC5wcmVjb25kaXRpb24uaXNFcXVhbChlLnByZWNvbmRpdGlvbikmJihuPXQuZmllbGRUcmFuc2Zvcm1zLHI9ZS5maWVsZFRyYW5zZm9ybXMsISEodm9pZCAwPT09biYmdm9pZCAwPT09cnx8biYmciYmWHkobixyLGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGU9ZSwodD10KS5maWVsZC5pc0VxdWFsKGUuZmllbGQpJiYodD10LnRyYW5zZm9ybSxlPWUudHJhbnNmb3JtLHQgaW5zdGFuY2VvZiBRYiYmZSBpbnN0YW5jZW9mIFFifHx0IGluc3RhbmNlb2YgWmImJmUgaW5zdGFuY2VvZiBaYj9YeSh0LmVsZW1lbnRzLGUuZWxlbWVudHMsa20pOnQgaW5zdGFuY2VvZiBydyYmZSBpbnN0YW5jZW9mIHJ3P2ttKHQuQSxlLkEpOnQgaW5zdGFuY2VvZiB6YiYmZSBpbnN0YW5jZW9mIHpiKX0pKSkmJigwPT09dC50eXBlP3QudmFsdWUuaXNFcXVhbChlLnZhbHVlKToxIT09dC50eXBlfHx0LmRhdGEuaXNFcXVhbChlLmRhdGEpJiZ0LmZpZWxkTWFzay5pc0VxdWFsKGUuZmllbGRNYXNrKSk7dmFyIG4scn1mdW5jdGlvbiBkdyh0KXtyZXR1cm4gdC5pc0ZvdW5kRG9jdW1lbnQoKT90LnZlcnNpb246WnkubWluKCl9dmFyIHZ3LGd3LHl3PShYaSh3dyxndz1HYSksd3cpLG13PShYaShidyx2dz1HYSksYncpO2Z1bmN0aW9uIGJ3KHQsZSxuLHIsaSl7dm9pZCAwPT09aSYmKGk9W10pO3ZhciBvPXRoaXM7cmV0dXJuKG89dncuY2FsbCh0aGlzKXx8dGhpcykua2V5PXQsby5kYXRhPWUsby5maWVsZE1hc2s9bixvLnByZWNvbmRpdGlvbj1yLG8uZmllbGRUcmFuc2Zvcm1zPWksby50eXBlPTEsb31mdW5jdGlvbiB3dyh0LGUsbixyKXt2b2lkIDA9PT1yJiYocj1bXSk7dmFyIGk9dGhpcztyZXR1cm4oaT1ndy5jYWxsKHRoaXMpfHx0aGlzKS5rZXk9dCxpLnZhbHVlPWUsaS5wcmVjb25kaXRpb249bixpLmZpZWxkVHJhbnNmb3Jtcz1yLGkudHlwZT0wLGl9ZnVuY3Rpb24gX3cobil7dmFyIHI9bmV3IE1hcDtyZXR1cm4gbi5maWVsZE1hc2suZmllbGRzLmZvckVhY2goZnVuY3Rpb24odCl7dmFyIGU7dC5pc0VtcHR5KCl8fChlPW4uZGF0YS5maWVsZCh0KSxyLnNldCh0LGUpKX0pLHJ9ZnVuY3Rpb24gSXcodCxlLG4pe3ZhciByPW5ldyBNYXA7R3kodC5sZW5ndGg9PT1uLmxlbmd0aCk7Zm9yKHZhciBpPTA7aTxuLmxlbmd0aDtpKyspe3ZhciBvPXRbaV0scz1vLnRyYW5zZm9ybSxhPWUuZGF0YS5maWVsZChvLmZpZWxkKTtyLnNldChvLmZpZWxkLChvPXMscz1hLGE9bltpXSxvIGluc3RhbmNlb2YgUWI/SmIobyxzKTpvIGluc3RhbmNlb2YgWmI/ZXcobyxzKTphKSl9cmV0dXJuIHJ9ZnVuY3Rpb24gVHcodCxlLG4pe2Zvcih2YXIgcixpPW5ldyBNYXAsbz0wLHM9dDtvPHMubGVuZ3RoO28rKyl7dmFyIGE9c1tvXSx1PWEudHJhbnNmb3JtLGM9bi5kYXRhLmZpZWxkKGEuZmllbGQpO2kuc2V0KGEuZmllbGQsKHI9YyxhPWUsYz12b2lkIDAsKHU9dSlpbnN0YW5jZW9mIHpiPyhjPXtmaWVsZHM6e19fdHlwZV9fOntzdHJpbmdWYWx1ZToic2VydmVyX3RpbWVzdGFtcCJ9LF9fbG9jYWxfd3JpdGVfdGltZV9fOnt0aW1lc3RhbXBWYWx1ZTp7c2Vjb25kczphLnNlY29uZHMsbmFub3M6YS5uYW5vc2Vjb25kc319fX0sciYmKGMuZmllbGRzLl9fcHJldmlvdXNfdmFsdWVfXz1yKSx7bWFwVmFsdWU6Y30pOnUgaW5zdGFuY2VvZiBRYj9KYih1LHIpOnUgaW5zdGFuY2VvZiBaYj9ldyh1LHIpOih1PVdiKGM9dSxyKSxyPW93KHUpK293KGMuQSksTG0odSkmJkxtKGMuQSk/QmIocik6VmIoYy5SLHIpKSkpfXJldHVybiBpfWZ1bmN0aW9uIEV3KHQpe3RoaXMuY291bnQ9dH12YXIgU3csQ3csTncsQXc9KFhpKFB3LE53PUdhKSxQdyksa3c9KFhpKFJ3LEN3PUdhKSxSdyk7ZnVuY3Rpb24gUncodCxlKXt2YXIgbj10aGlzO3JldHVybihuPUN3LmNhbGwodGhpcyl8fHRoaXMpLmtleT10LG4ucHJlY29uZGl0aW9uPWUsbi50eXBlPTMsbi5maWVsZFRyYW5zZm9ybXM9W10sbn1mdW5jdGlvbiBQdyh0LGUpe3ZhciBuPXRoaXM7cmV0dXJuKG49TncuY2FsbCh0aGlzKXx8dGhpcykua2V5PXQsbi5wcmVjb25kaXRpb249ZSxuLnR5cGU9MixuLmZpZWxkVHJhbnNmb3Jtcz1bXSxufWZ1bmN0aW9uIE93KHQpe3N3aXRjaCh0KXtjYXNlIE15Lk9LOnJldHVybiBIeSgpLDA7Y2FzZSBNeS5DQU5DRUxMRUQ6Y2FzZSBNeS5VTktOT1dOOmNhc2UgTXkuREVBRExJTkVfRVhDRUVERUQ6Y2FzZSBNeS5SRVNPVVJDRV9FWEhBVVNURUQ6Y2FzZSBNeS5JTlRFUk5BTDpjYXNlIE15LlVOQVZBSUxBQkxFOmNhc2UgTXkuVU5BVVRIRU5USUNBVEVEOnJldHVybjtjYXNlIE15LklOVkFMSURfQVJHVU1FTlQ6Y2FzZSBNeS5OT1RfRk9VTkQ6Y2FzZSBNeS5BTFJFQURZX0VYSVNUUzpjYXNlIE15LlBFUk1JU1NJT05fREVOSUVEOmNhc2UgTXkuRkFJTEVEX1BSRUNPTkRJVElPTjpjYXNlIE15LkFCT1JURUQ6Y2FzZSBNeS5PVVRfT0ZfUkFOR0U6Y2FzZSBNeS5VTklNUExFTUVOVEVEOmNhc2UgTXkuREFUQV9MT1NTOnJldHVybiAxO2RlZmF1bHQ6cmV0dXJuIEh5KCksMH19ZnVuY3Rpb24gRHcodCl7aWYodm9pZCAwPT09dClyZXR1cm4gQnkoIkdSUEMgZXJyb3IgaGFzIG5vIC5jb2RlIiksTXkuVU5LTk9XTjtzd2l0Y2godCl7Y2FzZSBTdy5PSzpyZXR1cm4gTXkuT0s7Y2FzZSBTdy5DQU5DRUxMRUQ6cmV0dXJuIE15LkNBTkNFTExFRDtjYXNlIFN3LlVOS05PV046cmV0dXJuIE15LlVOS05PV047Y2FzZSBTdy5ERUFETElORV9FWENFRURFRDpyZXR1cm4gTXkuREVBRExJTkVfRVhDRUVERUQ7Y2FzZSBTdy5SRVNPVVJDRV9FWEhBVVNURUQ6cmV0dXJuIE15LlJFU09VUkNFX0VYSEFVU1RFRDtjYXNlIFN3LklOVEVSTkFMOnJldHVybiBNeS5JTlRFUk5BTDtjYXNlIFN3LlVOQVZBSUxBQkxFOnJldHVybiBNeS5VTkFWQUlMQUJMRTtjYXNlIFN3LlVOQVVUSEVOVElDQVRFRDpyZXR1cm4gTXkuVU5BVVRIRU5USUNBVEVEO2Nhc2UgU3cuSU5WQUxJRF9BUkdVTUVOVDpyZXR1cm4gTXkuSU5WQUxJRF9BUkdVTUVOVDtjYXNlIFN3Lk5PVF9GT1VORDpyZXR1cm4gTXkuTk9UX0ZPVU5EO2Nhc2UgU3cuQUxSRUFEWV9FWElTVFM6cmV0dXJuIE15LkFMUkVBRFlfRVhJU1RTO2Nhc2UgU3cuUEVSTUlTU0lPTl9ERU5JRUQ6cmV0dXJuIE15LlBFUk1JU1NJT05fREVOSUVEO2Nhc2UgU3cuRkFJTEVEX1BSRUNPTkRJVElPTjpyZXR1cm4gTXkuRkFJTEVEX1BSRUNPTkRJVElPTjtjYXNlIFN3LkFCT1JURUQ6cmV0dXJuIE15LkFCT1JURUQ7Y2FzZSBTdy5PVVRfT0ZfUkFOR0U6cmV0dXJuIE15Lk9VVF9PRl9SQU5HRTtjYXNlIFN3LlVOSU1QTEVNRU5URUQ6cmV0dXJuIE15LlVOSU1QTEVNRU5URUQ7Y2FzZSBTdy5EQVRBX0xPU1M6cmV0dXJuIE15LkRBVEFfTE9TUztkZWZhdWx0OnJldHVybiBIeSgpfX0oU249U3c9U3d8fHt9KVtTbi5PSz0wXT0iT0siLFNuW1NuLkNBTkNFTExFRD0xXT0iQ0FOQ0VMTEVEIixTbltTbi5VTktOT1dOPTJdPSJVTktOT1dOIixTbltTbi5JTlZBTElEX0FSR1VNRU5UPTNdPSJJTlZBTElEX0FSR1VNRU5UIixTbltTbi5ERUFETElORV9FWENFRURFRD00XT0iREVBRExJTkVfRVhDRUVERUQiLFNuW1NuLk5PVF9GT1VORD01XT0iTk9UX0ZPVU5EIixTbltTbi5BTFJFQURZX0VYSVNUUz02XT0iQUxSRUFEWV9FWElTVFMiLFNuW1NuLlBFUk1JU1NJT05fREVOSUVEPTddPSJQRVJNSVNTSU9OX0RFTklFRCIsU25bU24uVU5BVVRIRU5USUNBVEVEPTE2XT0iVU5BVVRIRU5USUNBVEVEIixTbltTbi5SRVNPVVJDRV9FWEhBVVNURUQ9OF09IlJFU09VUkNFX0VYSEFVU1RFRCIsU25bU24uRkFJTEVEX1BSRUNPTkRJVElPTj05XT0iRkFJTEVEX1BSRUNPTkRJVElPTiIsU25bU24uQUJPUlRFRD0xMF09IkFCT1JURUQiLFNuW1NuLk9VVF9PRl9SQU5HRT0xMV09Ik9VVF9PRl9SQU5HRSIsU25bU24uVU5JTVBMRU1FTlRFRD0xMl09IlVOSU1QTEVNRU5URUQiLFNuW1NuLklOVEVSTkFMPTEzXT0iSU5URVJOQUwiLFNuW1NuLlVOQVZBSUxBQkxFPTE0XT0iVU5BVkFJTEFCTEUiLFNuW1NuLkRBVEFfTE9TUz0xNV09IkRBVEFfTE9TUyI7dmFyIHh3PShqdy5wcm90b3R5cGUuaW5zZXJ0PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBqdyh0aGlzLmNvbXBhcmF0b3IsdGhpcy5yb290Lmluc2VydCh0LGUsdGhpcy5jb21wYXJhdG9yKS5jb3B5KG51bGwsbnVsbCxNdy5CTEFDSyxudWxsLG51bGwpKX0sancucHJvdG90eXBlLnJlbW92ZT1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IGp3KHRoaXMuY29tcGFyYXRvcix0aGlzLnJvb3QucmVtb3ZlKHQsdGhpcy5jb21wYXJhdG9yKS5jb3B5KG51bGwsbnVsbCxNdy5CTEFDSyxudWxsLG51bGwpKX0sancucHJvdG90eXBlLmdldD1mdW5jdGlvbih0KXtmb3IodmFyIGU9dGhpcy5yb290OyFlLmlzRW1wdHkoKTspe3ZhciBuPXRoaXMuY29tcGFyYXRvcih0LGUua2V5KTtpZigwPT09bilyZXR1cm4gZS52YWx1ZTtuPDA/ZT1lLmxlZnQ6MDxuJiYoZT1lLnJpZ2h0KX1yZXR1cm4gbnVsbH0sancucHJvdG90eXBlLmluZGV4T2Y9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPTAsbj10aGlzLnJvb3Q7IW4uaXNFbXB0eSgpOyl7dmFyIHI9dGhpcy5jb21wYXJhdG9yKHQsbi5rZXkpO2lmKDA9PT1yKXJldHVybiBlK24ubGVmdC5zaXplO249cjwwP24ubGVmdDooZSs9bi5sZWZ0LnNpemUrMSxuLnJpZ2h0KX1yZXR1cm4tMX0sancucHJvdG90eXBlLmlzRW1wdHk9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yb290LmlzRW1wdHkoKX0sT2JqZWN0LmRlZmluZVByb3BlcnR5KGp3LnByb3RvdHlwZSwic2l6ZSIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJvb3Quc2l6ZX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxqdy5wcm90b3R5cGUubWluS2V5PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucm9vdC5taW5LZXkoKX0sancucHJvdG90eXBlLm1heEtleT1mdW5jdGlvbigpe3JldHVybiB0aGlzLnJvb3QubWF4S2V5KCl9LGp3LnByb3RvdHlwZS5pbm9yZGVyVHJhdmVyc2FsPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnJvb3QuaW5vcmRlclRyYXZlcnNhbCh0KX0sancucHJvdG90eXBlLmZvckVhY2g9ZnVuY3Rpb24obil7dGhpcy5pbm9yZGVyVHJhdmVyc2FsKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIG4odCxlKSwhMX0pfSxqdy5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXt2YXIgbj1bXTtyZXR1cm4gdGhpcy5pbm9yZGVyVHJhdmVyc2FsKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIG4ucHVzaCh0KyI6IitlKSwhMX0pLCJ7IituLmpvaW4oIiwgIikrIn0ifSxqdy5wcm90b3R5cGUucmV2ZXJzZVRyYXZlcnNhbD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5yb290LnJldmVyc2VUcmF2ZXJzYWwodCl9LGp3LnByb3RvdHlwZS5nZXRJdGVyYXRvcj1mdW5jdGlvbigpe3JldHVybiBuZXcgTHcodGhpcy5yb290LG51bGwsdGhpcy5jb21wYXJhdG9yLCExKX0sancucHJvdG90eXBlLmdldEl0ZXJhdG9yRnJvbT1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IEx3KHRoaXMucm9vdCx0LHRoaXMuY29tcGFyYXRvciwhMSl9LGp3LnByb3RvdHlwZS5nZXRSZXZlcnNlSXRlcmF0b3I9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IEx3KHRoaXMucm9vdCxudWxsLHRoaXMuY29tcGFyYXRvciwhMCl9LGp3LnByb3RvdHlwZS5nZXRSZXZlcnNlSXRlcmF0b3JGcm9tPWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgTHcodGhpcy5yb290LHQsdGhpcy5jb21wYXJhdG9yLCEwKX0sancpLEx3PShVdy5wcm90b3R5cGUuZ2V0TmV4dD1mdW5jdGlvbigpe3ZhciB0PXRoaXMubm9kZVN0YWNrLnBvcCgpLGU9e2tleTp0LmtleSx2YWx1ZTp0LnZhbHVlfTtpZih0aGlzLmlzUmV2ZXJzZSlmb3IodD10LmxlZnQ7IXQuaXNFbXB0eSgpOyl0aGlzLm5vZGVTdGFjay5wdXNoKHQpLHQ9dC5yaWdodDtlbHNlIGZvcih0PXQucmlnaHQ7IXQuaXNFbXB0eSgpOyl0aGlzLm5vZGVTdGFjay5wdXNoKHQpLHQ9dC5sZWZ0O3JldHVybiBlfSxVdy5wcm90b3R5cGUuaGFzTmV4dD1mdW5jdGlvbigpe3JldHVybiAwPHRoaXMubm9kZVN0YWNrLmxlbmd0aH0sVXcucHJvdG90eXBlLnBlZWs9ZnVuY3Rpb24oKXtpZigwPT09dGhpcy5ub2RlU3RhY2subGVuZ3RoKXJldHVybiBudWxsO3ZhciB0PXRoaXMubm9kZVN0YWNrW3RoaXMubm9kZVN0YWNrLmxlbmd0aC0xXTtyZXR1cm57a2V5OnQua2V5LHZhbHVlOnQudmFsdWV9fSxVdyksTXc9KEZ3LnByb3RvdHlwZS5jb3B5PWZ1bmN0aW9uKHQsZSxuLHIsaSl7cmV0dXJuIG5ldyBGdyhudWxsIT10P3Q6dGhpcy5rZXksbnVsbCE9ZT9lOnRoaXMudmFsdWUsbnVsbCE9bj9uOnRoaXMuY29sb3IsbnVsbCE9cj9yOnRoaXMubGVmdCxudWxsIT1pP2k6dGhpcy5yaWdodCl9LEZ3LnByb3RvdHlwZS5pc0VtcHR5PWZ1bmN0aW9uKCl7cmV0dXJuITF9LEZ3LnByb3RvdHlwZS5pbm9yZGVyVHJhdmVyc2FsPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmxlZnQuaW5vcmRlclRyYXZlcnNhbCh0KXx8dCh0aGlzLmtleSx0aGlzLnZhbHVlKXx8dGhpcy5yaWdodC5pbm9yZGVyVHJhdmVyc2FsKHQpfSxGdy5wcm90b3R5cGUucmV2ZXJzZVRyYXZlcnNhbD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5yaWdodC5yZXZlcnNlVHJhdmVyc2FsKHQpfHx0KHRoaXMua2V5LHRoaXMudmFsdWUpfHx0aGlzLmxlZnQucmV2ZXJzZVRyYXZlcnNhbCh0KX0sRncucHJvdG90eXBlLm1pbj1mdW5jdGlvbigpe3JldHVybiB0aGlzLmxlZnQuaXNFbXB0eSgpP3RoaXM6dGhpcy5sZWZ0Lm1pbigpfSxGdy5wcm90b3R5cGUubWluS2V5PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubWluKCkua2V5fSxGdy5wcm90b3R5cGUubWF4S2V5PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucmlnaHQuaXNFbXB0eSgpP3RoaXMua2V5OnRoaXMucmlnaHQubWF4S2V5KCl9LEZ3LnByb3RvdHlwZS5pbnNlcnQ9ZnVuY3Rpb24odCxlLG4pe3ZhciByPXRoaXMsaT1uKHQsci5rZXkpO3JldHVybihyPWk8MD9yLmNvcHkobnVsbCxudWxsLG51bGwsci5sZWZ0Lmluc2VydCh0LGUsbiksbnVsbCk6MD09PWk/ci5jb3B5KG51bGwsZSxudWxsLG51bGwsbnVsbCk6ci5jb3B5KG51bGwsbnVsbCxudWxsLG51bGwsci5yaWdodC5pbnNlcnQodCxlLG4pKSkuZml4VXAoKX0sRncucHJvdG90eXBlLnJlbW92ZU1pbj1mdW5jdGlvbigpe2lmKHRoaXMubGVmdC5pc0VtcHR5KCkpcmV0dXJuIEZ3LkVNUFRZO3ZhciB0PXRoaXM7cmV0dXJuKHQ9KHQ9IXQubGVmdC5pc1JlZCgpJiYhdC5sZWZ0LmxlZnQuaXNSZWQoKT90Lm1vdmVSZWRMZWZ0KCk6dCkuY29weShudWxsLG51bGwsbnVsbCx0LmxlZnQucmVtb3ZlTWluKCksbnVsbCkpLmZpeFVwKCl9LEZ3LnByb3RvdHlwZS5yZW1vdmU9ZnVuY3Rpb24odCxlKXt2YXIgbixyPXRoaXM7aWYoZSh0LHIua2V5KTwwKXI9KHI9IShyLmxlZnQuaXNFbXB0eSgpfHxyLmxlZnQuaXNSZWQoKXx8ci5sZWZ0LmxlZnQuaXNSZWQoKSk/ci5tb3ZlUmVkTGVmdCgpOnIpLmNvcHkobnVsbCxudWxsLG51bGwsci5sZWZ0LnJlbW92ZSh0LGUpLG51bGwpO2Vsc2V7aWYoMD09PWUodCwocj0hKChyPXIubGVmdC5pc1JlZCgpP3Iucm90YXRlUmlnaHQoKTpyKS5yaWdodC5pc0VtcHR5KCl8fHIucmlnaHQuaXNSZWQoKXx8ci5yaWdodC5sZWZ0LmlzUmVkKCkpP3IubW92ZVJlZFJpZ2h0KCk6cikua2V5KSl7aWYoci5yaWdodC5pc0VtcHR5KCkpcmV0dXJuIEZ3LkVNUFRZO249ci5yaWdodC5taW4oKSxyPXIuY29weShuLmtleSxuLnZhbHVlLG51bGwsbnVsbCxyLnJpZ2h0LnJlbW92ZU1pbigpKX1yPXIuY29weShudWxsLG51bGwsbnVsbCxudWxsLHIucmlnaHQucmVtb3ZlKHQsZSkpfXJldHVybiByLmZpeFVwKCl9LEZ3LnByb3RvdHlwZS5pc1JlZD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmNvbG9yfSxGdy5wcm90b3R5cGUuZml4VXA9ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3JldHVybiB0PSh0PSh0PXQucmlnaHQuaXNSZWQoKSYmIXQubGVmdC5pc1JlZCgpP3Qucm90YXRlTGVmdCgpOnQpLmxlZnQuaXNSZWQoKSYmdC5sZWZ0LmxlZnQuaXNSZWQoKT90LnJvdGF0ZVJpZ2h0KCk6dCkubGVmdC5pc1JlZCgpJiZ0LnJpZ2h0LmlzUmVkKCk/dC5jb2xvckZsaXAoKTp0fSxGdy5wcm90b3R5cGUubW92ZVJlZExlZnQ9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmNvbG9yRmxpcCgpO3JldHVybiB0PXQucmlnaHQubGVmdC5pc1JlZCgpPyh0PSh0PXQuY29weShudWxsLG51bGwsbnVsbCxudWxsLHQucmlnaHQucm90YXRlUmlnaHQoKSkpLnJvdGF0ZUxlZnQoKSkuY29sb3JGbGlwKCk6dH0sRncucHJvdG90eXBlLm1vdmVSZWRSaWdodD1mdW5jdGlvbigpe3ZhciB0PXRoaXMuY29sb3JGbGlwKCk7cmV0dXJuIHQ9dC5sZWZ0LmxlZnQuaXNSZWQoKT8odD10LnJvdGF0ZVJpZ2h0KCkpLmNvbG9yRmxpcCgpOnR9LEZ3LnByb3RvdHlwZS5yb3RhdGVMZWZ0PWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5jb3B5KG51bGwsbnVsbCxGdy5SRUQsbnVsbCx0aGlzLnJpZ2h0LmxlZnQpO3JldHVybiB0aGlzLnJpZ2h0LmNvcHkobnVsbCxudWxsLHRoaXMuY29sb3IsdCxudWxsKX0sRncucHJvdG90eXBlLnJvdGF0ZVJpZ2h0PWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5jb3B5KG51bGwsbnVsbCxGdy5SRUQsdGhpcy5sZWZ0LnJpZ2h0LG51bGwpO3JldHVybiB0aGlzLmxlZnQuY29weShudWxsLG51bGwsdGhpcy5jb2xvcixudWxsLHQpfSxGdy5wcm90b3R5cGUuY29sb3JGbGlwPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5sZWZ0LmNvcHkobnVsbCxudWxsLCF0aGlzLmxlZnQuY29sb3IsbnVsbCxudWxsKSxlPXRoaXMucmlnaHQuY29weShudWxsLG51bGwsIXRoaXMucmlnaHQuY29sb3IsbnVsbCxudWxsKTtyZXR1cm4gdGhpcy5jb3B5KG51bGwsbnVsbCwhdGhpcy5jb2xvcix0LGUpfSxGdy5wcm90b3R5cGUuY2hlY2tNYXhEZXB0aD1mdW5jdGlvbigpe3ZhciB0PXRoaXMuY2hlY2soKTtyZXR1cm4gTWF0aC5wb3coMix0KTw9dGhpcy5zaXplKzF9LEZ3LnByb3RvdHlwZS5jaGVjaz1mdW5jdGlvbigpe2lmKHRoaXMuaXNSZWQoKSYmdGhpcy5sZWZ0LmlzUmVkKCkpdGhyb3cgSHkoKTtpZih0aGlzLnJpZ2h0LmlzUmVkKCkpdGhyb3cgSHkoKTt2YXIgdD10aGlzLmxlZnQuY2hlY2soKTtpZih0IT09dGhpcy5yaWdodC5jaGVjaygpKXRocm93IEh5KCk7cmV0dXJuIHQrKHRoaXMuaXNSZWQoKT8wOjEpfSxGdyk7ZnVuY3Rpb24gRncodCxlLG4scixpKXt0aGlzLmtleT10LHRoaXMudmFsdWU9ZSx0aGlzLmNvbG9yPW51bGwhPW4/bjpGdy5SRUQsdGhpcy5sZWZ0PW51bGwhPXI/cjpGdy5FTVBUWSx0aGlzLnJpZ2h0PW51bGwhPWk/aTpGdy5FTVBUWSx0aGlzLnNpemU9dGhpcy5sZWZ0LnNpemUrMSt0aGlzLnJpZ2h0LnNpemV9ZnVuY3Rpb24gVXcodCxlLG4scil7dGhpcy5pc1JldmVyc2U9cix0aGlzLm5vZGVTdGFjaz1bXTtmb3IodmFyIGk9MTshdC5pc0VtcHR5KCk7KWlmKGk9ZT9uKHQua2V5LGUpOjEsciYmKGkqPS0xKSxpPDApdD10aGlzLmlzUmV2ZXJzZT90LmxlZnQ6dC5yaWdodDtlbHNle2lmKDA9PT1pKXt0aGlzLm5vZGVTdGFjay5wdXNoKHQpO2JyZWFrfXRoaXMubm9kZVN0YWNrLnB1c2godCksdD10aGlzLmlzUmV2ZXJzZT90LnJpZ2h0OnQubGVmdH19ZnVuY3Rpb24gancodCxlKXt0aGlzLmNvbXBhcmF0b3I9dCx0aGlzLnJvb3Q9ZXx8TXcuRU1QVFl9ZnVuY3Rpb24gcXcoKXt0aGlzLnNpemU9MH1Ndy5FTVBUWT1udWxsLE13LlJFRD0hMCxNdy5CTEFDSz0hMSxNdy5FTVBUWT0oT2JqZWN0LmRlZmluZVByb3BlcnR5KHF3LnByb3RvdHlwZSwia2V5Iix7Z2V0OmZ1bmN0aW9uKCl7dGhyb3cgSHkoKX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkocXcucHJvdG90eXBlLCJ2YWx1ZSIse2dldDpmdW5jdGlvbigpe3Rocm93IEh5KCl9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHF3LnByb3RvdHlwZSwiY29sb3IiLHtnZXQ6ZnVuY3Rpb24oKXt0aHJvdyBIeSgpfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShxdy5wcm90b3R5cGUsImxlZnQiLHtnZXQ6ZnVuY3Rpb24oKXt0aHJvdyBIeSgpfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShxdy5wcm90b3R5cGUsInJpZ2h0Iix7Z2V0OmZ1bmN0aW9uKCl7dGhyb3cgSHkoKX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxxdy5wcm90b3R5cGUuY29weT1mdW5jdGlvbih0LGUsbixyLGkpe3JldHVybiB0aGlzfSxxdy5wcm90b3R5cGUuaW5zZXJ0PWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gbmV3IE13KHQsZSl9LHF3LnByb3RvdHlwZS5yZW1vdmU9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpc30scXcucHJvdG90eXBlLmlzRW1wdHk9ZnVuY3Rpb24oKXtyZXR1cm4hMH0scXcucHJvdG90eXBlLmlub3JkZXJUcmF2ZXJzYWw9ZnVuY3Rpb24odCl7cmV0dXJuITF9LHF3LnByb3RvdHlwZS5yZXZlcnNlVHJhdmVyc2FsPWZ1bmN0aW9uKHQpe3JldHVybiExfSxxdy5wcm90b3R5cGUubWluS2V5PWZ1bmN0aW9uKCl7cmV0dXJuIG51bGx9LHF3LnByb3RvdHlwZS5tYXhLZXk9ZnVuY3Rpb24oKXtyZXR1cm4gbnVsbH0scXcucHJvdG90eXBlLmlzUmVkPWZ1bmN0aW9uKCl7cmV0dXJuITF9LHF3LnByb3RvdHlwZS5jaGVja01heERlcHRoPWZ1bmN0aW9uKCl7cmV0dXJuITB9LHF3LnByb3RvdHlwZS5jaGVjaz1mdW5jdGlvbigpe3JldHVybiAwfSxuZXcgcXcpO3ZhciBWdz0oSHcucHJvdG90eXBlLmhhcz1mdW5jdGlvbih0KXtyZXR1cm4gbnVsbCE9PXRoaXMuZGF0YS5nZXQodCl9LEh3LnByb3RvdHlwZS5maXJzdD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmRhdGEubWluS2V5KCl9LEh3LnByb3RvdHlwZS5sYXN0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZGF0YS5tYXhLZXkoKX0sT2JqZWN0LmRlZmluZVByb3BlcnR5KEh3LnByb3RvdHlwZSwic2l6ZSIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmRhdGEuc2l6ZX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxIdy5wcm90b3R5cGUuaW5kZXhPZj1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5kYXRhLmluZGV4T2YodCl9LEh3LnByb3RvdHlwZS5mb3JFYWNoPWZ1bmN0aW9uKG4pe3RoaXMuZGF0YS5pbm9yZGVyVHJhdmVyc2FsKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIG4odCksITF9KX0sSHcucHJvdG90eXBlLmZvckVhY2hJblJhbmdlPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuPXRoaXMuZGF0YS5nZXRJdGVyYXRvckZyb20odFswXSk7bi5oYXNOZXh0KCk7KXt2YXIgcj1uLmdldE5leHQoKTtpZigwPD10aGlzLmNvbXBhcmF0b3Ioci5rZXksdFsxXSkpcmV0dXJuO2Uoci5rZXkpfX0sSHcucHJvdG90eXBlLmZvckVhY2hXaGlsZT1mdW5jdGlvbih0LGUpe2Zvcih2YXIgbj12b2lkIDAhPT1lP3RoaXMuZGF0YS5nZXRJdGVyYXRvckZyb20oZSk6dGhpcy5kYXRhLmdldEl0ZXJhdG9yKCk7bi5oYXNOZXh0KCk7KWlmKCF0KG4uZ2V0TmV4dCgpLmtleSkpcmV0dXJufSxIdy5wcm90b3R5cGUuZmlyc3RBZnRlck9yRXF1YWw9ZnVuY3Rpb24odCl7dD10aGlzLmRhdGEuZ2V0SXRlcmF0b3JGcm9tKHQpO3JldHVybiB0Lmhhc05leHQoKT90LmdldE5leHQoKS5rZXk6bnVsbH0sSHcucHJvdG90eXBlLmdldEl0ZXJhdG9yPWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBCdyh0aGlzLmRhdGEuZ2V0SXRlcmF0b3IoKSl9LEh3LnByb3RvdHlwZS5nZXRJdGVyYXRvckZyb209ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBCdyh0aGlzLmRhdGEuZ2V0SXRlcmF0b3JGcm9tKHQpKX0sSHcucHJvdG90eXBlLmFkZD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5jb3B5KHRoaXMuZGF0YS5yZW1vdmUodCkuaW5zZXJ0KHQsITApKX0sSHcucHJvdG90eXBlLmRlbGV0ZT1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5oYXModCk/dGhpcy5jb3B5KHRoaXMuZGF0YS5yZW1vdmUodCkpOnRoaXN9LEh3LnByb3RvdHlwZS5pc0VtcHR5PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZGF0YS5pc0VtcHR5KCl9LEh3LnByb3RvdHlwZS51bmlvbldpdGg9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztyZXR1cm4gZS5zaXplPHQuc2l6ZSYmKGU9dCx0PXRoaXMpLHQuZm9yRWFjaChmdW5jdGlvbih0KXtlPWUuYWRkKHQpfSksZX0sSHcucHJvdG90eXBlLmlzRXF1YWw9ZnVuY3Rpb24odCl7aWYoISh0IGluc3RhbmNlb2YgSHcpKXJldHVybiExO2lmKHRoaXMuc2l6ZSE9PXQuc2l6ZSlyZXR1cm4hMTtmb3IodmFyIGU9dGhpcy5kYXRhLmdldEl0ZXJhdG9yKCksbj10LmRhdGEuZ2V0SXRlcmF0b3IoKTtlLmhhc05leHQoKTspe3ZhciByPWUuZ2V0TmV4dCgpLmtleSxpPW4uZ2V0TmV4dCgpLmtleTtpZigwIT09dGhpcy5jb21wYXJhdG9yKHIsaSkpcmV0dXJuITF9cmV0dXJuITB9LEh3LnByb3RvdHlwZS50b0FycmF5PWZ1bmN0aW9uKCl7dmFyIGU9W107cmV0dXJuIHRoaXMuZm9yRWFjaChmdW5jdGlvbih0KXtlLnB1c2godCl9KSxlfSxIdy5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXt2YXIgZT1bXTtyZXR1cm4gdGhpcy5mb3JFYWNoKGZ1bmN0aW9uKHQpe3JldHVybiBlLnB1c2godCl9KSwiU29ydGVkU2V0KCIrZS50b1N0cmluZygpKyIpIn0sSHcucHJvdG90eXBlLmNvcHk9ZnVuY3Rpb24odCl7dmFyIGU9bmV3IEh3KHRoaXMuY29tcGFyYXRvcik7cmV0dXJuIGUuZGF0YT10LGV9LEh3KSxCdz0oV3cucHJvdG90eXBlLmdldE5leHQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pdGVyLmdldE5leHQoKS5rZXl9LFd3LnByb3RvdHlwZS5oYXNOZXh0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXRlci5oYXNOZXh0KCl9LFd3KSxLdz1uZXcgeHcoQ20uY29tcGFyYXRvcik7ZnVuY3Rpb24gV3codCl7dGhpcy5pdGVyPXR9ZnVuY3Rpb24gSHcodCl7dGhpcy5jb21wYXJhdG9yPXQsdGhpcy5kYXRhPW5ldyB4dyh0aGlzLmNvbXBhcmF0b3IpfXZhciBHdz1uZXcgeHcoQ20uY29tcGFyYXRvcik7dmFyIHp3PW5ldyB4dyhDbS5jb21wYXJhdG9yKTt2YXIgUXc9bmV3IFZ3KENtLmNvbXBhcmF0b3IpO2Z1bmN0aW9uIFl3KCl7Zm9yKHZhciB0PVtdLGU9MDtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXRbZV09YXJndW1lbnRzW2VdO2Zvcih2YXIgbj1RdyxyPTAsaT10O3I8aS5sZW5ndGg7cisrKXZhciBvPWlbcl0sbj1uLmFkZChvKTtyZXR1cm4gbn12YXIgWHc9bmV3IFZ3KFl5KTt2YXIgSnc9KGFfLmNyZWF0ZVN5bnRoZXNpemVkUmVtb3RlRXZlbnRGb3JDdXJyZW50Q2hhbmdlPWZ1bmN0aW9uKHQsZSl7dmFyIG49bmV3IE1hcDtyZXR1cm4gbi5zZXQodCwkdy5jcmVhdGVTeW50aGVzaXplZFRhcmdldENoYW5nZUZvckN1cnJlbnRDaGFuZ2UodCxlKSksbmV3IGFfKFp5Lm1pbigpLG4sWHcsS3csWXcoKSl9LGFfKSwkdz0oc18uY3JlYXRlU3ludGhlc2l6ZWRUYXJnZXRDaGFuZ2VGb3JDdXJyZW50Q2hhbmdlPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBzXyhsbS5FTVBUWV9CWVRFX1NUUklORyxlLFl3KCksWXcoKSxZdygpKX0sc18pLFp3PWZ1bmN0aW9uKHQsZSxuLHIpe3RoaXMudj10LHRoaXMucmVtb3ZlZFRhcmdldElkcz1lLHRoaXMua2V5PW4sdGhpcy5QPXJ9LHRfPWZ1bmN0aW9uKHQsZSl7dGhpcy50YXJnZXRJZD10LHRoaXMuVj1lfSxlXz1mdW5jdGlvbih0LGUsbixyKXt2b2lkIDA9PT1uJiYobj1sbS5FTVBUWV9CWVRFX1NUUklORyksdm9pZCAwPT09ciYmKHI9bnVsbCksdGhpcy5zdGF0ZT10LHRoaXMudGFyZ2V0SWRzPWUsdGhpcy5yZXN1bWVUb2tlbj1uLHRoaXMuY2F1c2U9cn0sbl89KE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvXy5wcm90b3R5cGUsImN1cnJlbnQiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvXy5wcm90b3R5cGUsInJlc3VtZVRva2VuIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuQ30sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkob18ucHJvdG90eXBlLCJrIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIDAhPT10aGlzLlN9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KG9fLnByb3RvdHlwZSwiTyIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLkZ9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksb18ucHJvdG90eXBlLiQ9ZnVuY3Rpb24odCl7MDx0LmFwcHJveGltYXRlQnl0ZVNpemUoKSYmKHRoaXMuRj0hMCx0aGlzLkM9dCl9LG9fLnByb3RvdHlwZS5NPWZ1bmN0aW9uKCl7dmFyIG49WXcoKSxyPVl3KCksaT1ZdygpO3JldHVybiB0aGlzLkQuZm9yRWFjaChmdW5jdGlvbih0LGUpe3N3aXRjaChlKXtjYXNlIDA6bj1uLmFkZCh0KTticmVhaztjYXNlIDI6cj1yLmFkZCh0KTticmVhaztjYXNlIDE6aT1pLmFkZCh0KTticmVhaztkZWZhdWx0Okh5KCl9fSksbmV3ICR3KHRoaXMuQyx0aGlzLk4sbixyLGkpfSxvXy5wcm90b3R5cGUuTD1mdW5jdGlvbigpe3RoaXMuRj0hMSx0aGlzLkQ9Y18oKX0sb18ucHJvdG90eXBlLkI9ZnVuY3Rpb24odCxlKXt0aGlzLkY9ITAsdGhpcy5EPXRoaXMuRC5pbnNlcnQodCxlKX0sb18ucHJvdG90eXBlLnE9ZnVuY3Rpb24odCl7dGhpcy5GPSEwLHRoaXMuRD10aGlzLkQucmVtb3ZlKHQpfSxvXy5wcm90b3R5cGUuVT1mdW5jdGlvbigpe3RoaXMuUys9MX0sb18ucHJvdG90eXBlLks9ZnVuY3Rpb24oKXstLXRoaXMuU30sb18ucHJvdG90eXBlLmo9ZnVuY3Rpb24oKXt0aGlzLkY9ITAsdGhpcy5OPSEwfSxvXykscl89KGlfLnByb3RvdHlwZS5YPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0wLG49dC52O2U8bi5sZW5ndGg7ZSsrKXt2YXIgcj1uW2VdO3QuUCYmdC5QLmlzRm91bmREb2N1bWVudCgpP3RoaXMuWihyLHQuUCk6dGhpcy50dChyLHQua2V5LHQuUCl9Zm9yKHZhciBpPTAsbz10LnJlbW92ZWRUYXJnZXRJZHM7aTxvLmxlbmd0aDtpKyspcj1vW2ldLHRoaXMudHQocix0LmtleSx0LlApfSxpXy5wcm90b3R5cGUuZXQ9ZnVuY3Rpb24obil7dmFyIHI9dGhpczt0aGlzLmZvckVhY2hUYXJnZXQobixmdW5jdGlvbih0KXt2YXIgZT1yLm50KHQpO3N3aXRjaChuLnN0YXRlKXtjYXNlIDA6ci5zdCh0KSYmZS4kKG4ucmVzdW1lVG9rZW4pO2JyZWFrO2Nhc2UgMTplLksoKSxlLmt8fGUuTCgpLGUuJChuLnJlc3VtZVRva2VuKTticmVhaztjYXNlIDI6ZS5LKCksZS5rfHxyLnJlbW92ZVRhcmdldCh0KTticmVhaztjYXNlIDM6ci5zdCh0KSYmKGUuaigpLGUuJChuLnJlc3VtZVRva2VuKSk7YnJlYWs7Y2FzZSA0OnIuc3QodCkmJihyLml0KHQpLGUuJChuLnJlc3VtZVRva2VuKSk7YnJlYWs7ZGVmYXVsdDpIeSgpfX0pfSxpXy5wcm90b3R5cGUuZm9yRWFjaFRhcmdldD1mdW5jdGlvbih0LG4pe3ZhciByPXRoaXM7MDx0LnRhcmdldElkcy5sZW5ndGg/dC50YXJnZXRJZHMuZm9yRWFjaChuKTp0aGlzLkcuZm9yRWFjaChmdW5jdGlvbih0LGUpe3Iuc3QoZSkmJm4oZSl9KX0saV8ucHJvdG90eXBlLnJ0PWZ1bmN0aW9uKHQpe3ZhciBlPXQudGFyZ2V0SWQsbj10LlYuY291bnQsdD10aGlzLm90KGUpO3QmJihRbSh0PXQudGFyZ2V0KT8wPT09bj8odD1uZXcgQ20odC5wYXRoKSx0aGlzLnR0KGUsdCxCbS5uZXdOb0RvY3VtZW50KHQsWnkubWluKCkpKSk6R3koMT09PW4pOnRoaXMuY3QoZSkhPT1uJiYodGhpcy5pdChlKSx0aGlzLlk9dGhpcy5ZLmFkZChlKSkpfSxpXy5wcm90b3R5cGUudXQ9ZnVuY3Rpb24ocil7dmFyIGk9dGhpcyxvPW5ldyBNYXA7dGhpcy5HLmZvckVhY2goZnVuY3Rpb24odCxlKXt2YXIgbj1pLm90KGUpO24mJih0LmN1cnJlbnQmJlFtKG4udGFyZ2V0KSYmKG49bmV3IENtKG4udGFyZ2V0LnBhdGgpLG51bGwhPT1pLkguZ2V0KG4pfHxpLmF0KGUsbil8fGkudHQoZSxuLEJtLm5ld05vRG9jdW1lbnQobixyKSkpLHQuTyYmKG8uc2V0KGUsdC5NKCkpLHQuTCgpKSl9KTt2YXIgcz1ZdygpO3RoaXMuSi5mb3JFYWNoKGZ1bmN0aW9uKHQsZSl7dmFyIG49ITA7ZS5mb3JFYWNoV2hpbGUoZnVuY3Rpb24odCl7dD1pLm90KHQpO3JldHVybiF0fHwyPT09dC5wdXJwb3NlfHwobj0hMSl9KSxuJiYocz1zLmFkZCh0KSl9KTt2YXIgdD1uZXcgSncocixvLHRoaXMuWSx0aGlzLkgscyk7cmV0dXJuIHRoaXMuSD1Ldyx0aGlzLko9dV8oKSx0aGlzLlk9bmV3IFZ3KFl5KSx0fSxpXy5wcm90b3R5cGUuWj1mdW5jdGlvbih0LGUpe3ZhciBuO3RoaXMuc3QodCkmJihuPXRoaXMuYXQodCxlLmtleSk/MjowLHRoaXMubnQodCkuQihlLmtleSxuKSx0aGlzLkg9dGhpcy5ILmluc2VydChlLmtleSxlKSx0aGlzLko9dGhpcy5KLmluc2VydChlLmtleSx0aGlzLmh0KGUua2V5KS5hZGQodCkpKX0saV8ucHJvdG90eXBlLnR0PWZ1bmN0aW9uKHQsZSxuKXt2YXIgcjt0aGlzLnN0KHQpJiYocj10aGlzLm50KHQpLHRoaXMuYXQodCxlKT9yLkIoZSwxKTpyLnEoZSksdGhpcy5KPXRoaXMuSi5pbnNlcnQoZSx0aGlzLmh0KGUpLmRlbGV0ZSh0KSksbiYmKHRoaXMuSD10aGlzLkguaW5zZXJ0KGUsbikpKX0saV8ucHJvdG90eXBlLnJlbW92ZVRhcmdldD1mdW5jdGlvbih0KXt0aGlzLkcuZGVsZXRlKHQpfSxpXy5wcm90b3R5cGUuY3Q9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5udCh0KS5NKCk7cmV0dXJuIHRoaXMuVy5nZXRSZW1vdGVLZXlzRm9yVGFyZ2V0KHQpLnNpemUrZS5hZGRlZERvY3VtZW50cy5zaXplLWUucmVtb3ZlZERvY3VtZW50cy5zaXplfSxpXy5wcm90b3R5cGUuVT1mdW5jdGlvbih0KXt0aGlzLm50KHQpLlUoKX0saV8ucHJvdG90eXBlLm50PWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuRy5nZXQodCk7cmV0dXJuIGV8fChlPW5ldyBuXyx0aGlzLkcuc2V0KHQsZSkpLGV9LGlfLnByb3RvdHlwZS5odD1mdW5jdGlvbih0KXt2YXIgZT10aGlzLkouZ2V0KHQpO3JldHVybiBlfHwoZT1uZXcgVncoWXkpLHRoaXMuSj10aGlzLkouaW5zZXJ0KHQsZSkpLGV9LGlfLnByb3RvdHlwZS5zdD1mdW5jdGlvbih0KXt2YXIgZT1udWxsIT09dGhpcy5vdCh0KTtyZXR1cm4gZXx8VnkoIldhdGNoQ2hhbmdlQWdncmVnYXRvciIsIkRldGVjdGVkIGluYWN0aXZlIHRhcmdldCIsdCksZX0saV8ucHJvdG90eXBlLm90PWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuRy5nZXQodCk7cmV0dXJuIGUmJmUuaz9udWxsOnRoaXMuVy5sdCh0KX0saV8ucHJvdG90eXBlLml0PWZ1bmN0aW9uKGUpe3ZhciBuPXRoaXM7dGhpcy5HLnNldChlLG5ldyBuXyksdGhpcy5XLmdldFJlbW90ZUtleXNGb3JUYXJnZXQoZSkuZm9yRWFjaChmdW5jdGlvbih0KXtuLnR0KGUsdCxudWxsKX0pfSxpXy5wcm90b3R5cGUuYXQ9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5XLmdldFJlbW90ZUtleXNGb3JUYXJnZXQodCkuaGFzKGUpfSxpXyk7ZnVuY3Rpb24gaV8odCl7dGhpcy5XPXQsdGhpcy5HPW5ldyBNYXAsdGhpcy5IPUt3LHRoaXMuSj11XygpLHRoaXMuWT1uZXcgVncoWXkpfWZ1bmN0aW9uIG9fKCl7dGhpcy5TPTAsdGhpcy5EPWNfKCksdGhpcy5DPWxtLkVNUFRZX0JZVEVfU1RSSU5HLHRoaXMuTj0hMSx0aGlzLkY9ITB9ZnVuY3Rpb24gc18odCxlLG4scixpKXt0aGlzLnJlc3VtZVRva2VuPXQsdGhpcy5jdXJyZW50PWUsdGhpcy5hZGRlZERvY3VtZW50cz1uLHRoaXMubW9kaWZpZWREb2N1bWVudHM9cix0aGlzLnJlbW92ZWREb2N1bWVudHM9aX1mdW5jdGlvbiBhXyh0LGUsbixyLGkpe3RoaXMuc25hcHNob3RWZXJzaW9uPXQsdGhpcy50YXJnZXRDaGFuZ2VzPWUsdGhpcy50YXJnZXRNaXNtYXRjaGVzPW4sdGhpcy5kb2N1bWVudFVwZGF0ZXM9cix0aGlzLnJlc29sdmVkTGltYm9Eb2N1bWVudHM9aX1mdW5jdGlvbiB1Xygpe3JldHVybiBuZXcgeHcoQ20uY29tcGFyYXRvcil9ZnVuY3Rpb24gY18oKXtyZXR1cm4gbmV3IHh3KENtLmNvbXBhcmF0b3IpfXZhciBoXz17YXNjOiJBU0NFTkRJTkciLGRlc2M6IkRFU0NFTkRJTkcifSxsXz17IjwiOiJMRVNTX1RIQU4iLCI8PSI6IkxFU1NfVEhBTl9PUl9FUVVBTCIsIj4iOiJHUkVBVEVSX1RIQU4iLCI+PSI6IkdSRUFURVJfVEhBTl9PUl9FUVVBTCIsIj09IjoiRVFVQUwiLCIhPSI6Ik5PVF9FUVVBTCIsImFycmF5LWNvbnRhaW5zIjoiQVJSQVlfQ09OVEFJTlMiLGluOiJJTiIsIm5vdC1pbiI6Ik5PVF9JTiIsImFycmF5LWNvbnRhaW5zLWFueSI6IkFSUkFZX0NPTlRBSU5TX0FOWSJ9LGZfPWZ1bmN0aW9uKHQsZSl7dGhpcy5kYXRhYmFzZUlkPXQsdGhpcy5JPWV9O2Z1bmN0aW9uIHBfKHQsZSl7cmV0dXJuIHQuST9uZXcgRGF0ZSgxZTMqZS5zZWNvbmRzKS50b0lTT1N0cmluZygpLnJlcGxhY2UoL1wuXGQqLywiIikucmVwbGFjZSgiWiIsIiIpKyIuIisoIjAwMDAwMDAwMCIrZS5uYW5vc2Vjb25kcykuc2xpY2UoLTkpKyJaIjp7c2Vjb25kczoiIitlLnNlY29uZHMsbmFub3M6ZS5uYW5vc2Vjb25kc319ZnVuY3Rpb24gZF8odCxlKXtyZXR1cm4gdC5JP2UudG9CYXNlNjQoKTplLnRvVWludDhBcnJheSgpfWZ1bmN0aW9uIHZfKHQpe3JldHVybiBHeSghIXQpLFp5LmZyb21UaW1lc3RhbXAoKHQ9bW0odCksbmV3ICR5KHQuc2Vjb25kcyx0Lm5hbm9zKSkpfWZ1bmN0aW9uIGdfKHQsZSl7cmV0dXJuIG5ldyBhbShbInByb2plY3RzIix0LnByb2plY3RJZCwiZGF0YWJhc2VzIix0LmRhdGFiYXNlXSkuY2hpbGQoImRvY3VtZW50cyIpLmNoaWxkKGUpLmNhbm9uaWNhbFN0cmluZygpfWZ1bmN0aW9uIHlfKHQpe3Q9YW0uZnJvbVN0cmluZyh0KTtyZXR1cm4gR3koRl8odCkpLHR9ZnVuY3Rpb24gbV8odCxlKXtyZXR1cm4gZ18odC5kYXRhYmFzZUlkLGUucGF0aCl9ZnVuY3Rpb24gYl8odCxlKXtlPXlfKGUpO2lmKGUuZ2V0KDEpIT09dC5kYXRhYmFzZUlkLnByb2plY3RJZCl0aHJvdyBuZXcgRnkoTXkuSU5WQUxJRF9BUkdVTUVOVCwiVHJpZWQgdG8gZGVzZXJpYWxpemUga2V5IGZyb20gZGlmZmVyZW50IHByb2plY3Q6ICIrZS5nZXQoMSkrIiB2cyAiK3QuZGF0YWJhc2VJZC5wcm9qZWN0SWQpO2lmKGUuZ2V0KDMpIT09dC5kYXRhYmFzZUlkLmRhdGFiYXNlKXRocm93IG5ldyBGeShNeS5JTlZBTElEX0FSR1VNRU5ULCJUcmllZCB0byBkZXNlcmlhbGl6ZSBrZXkgZnJvbSBkaWZmZXJlbnQgZGF0YWJhc2U6ICIrZS5nZXQoMykrIiB2cyAiK3QuZGF0YWJhc2VJZC5kYXRhYmFzZSk7cmV0dXJuIG5ldyBDbShUXyhlKSl9ZnVuY3Rpb24gd18odCxlKXtyZXR1cm4gZ18odC5kYXRhYmFzZUlkLGUpfWZ1bmN0aW9uIF9fKHQpe3Q9eV8odCk7cmV0dXJuIDQ9PT10Lmxlbmd0aD9hbS5lbXB0eVBhdGgoKTpUXyh0KX1mdW5jdGlvbiBJXyh0KXtyZXR1cm4gbmV3IGFtKFsicHJvamVjdHMiLHQuZGF0YWJhc2VJZC5wcm9qZWN0SWQsImRhdGFiYXNlcyIsdC5kYXRhYmFzZUlkLmRhdGFiYXNlXSkuY2Fub25pY2FsU3RyaW5nKCl9ZnVuY3Rpb24gVF8odCl7cmV0dXJuIEd5KDQ8dC5sZW5ndGgmJiJkb2N1bWVudHMiPT09dC5nZXQoNCkpLHQucG9wRmlyc3QoNSl9ZnVuY3Rpb24gRV8odCxlLG4pe3JldHVybntuYW1lOm1fKHQsZSksZmllbGRzOm4udG9Qcm90bygpLm1hcFZhbHVlLmZpZWxkc319ZnVuY3Rpb24gU18odCxlLG4pe3ZhciByPWJfKHQsZS5uYW1lKSx0PXZfKGUudXBkYXRlVGltZSksZT1uZXcgcW0oe21hcFZhbHVlOntmaWVsZHM6ZS5maWVsZHN9fSksZT1CbS5uZXdGb3VuZERvY3VtZW50KHIsdCxlKTtyZXR1cm4gbiYmZS5zZXRIYXNDb21taXR0ZWRNdXRhdGlvbnMoKSxuP2Uuc2V0SGFzQ29tbWl0dGVkTXV0YXRpb25zKCk6ZX1mdW5jdGlvbiBDXyh0LGUpe3ZhciBuLHIsaTtpZihlIGluc3RhbmNlb2YgeXcpbj17dXBkYXRlOkVfKHQsZS5rZXksZS52YWx1ZSl9O2Vsc2UgaWYoZSBpbnN0YW5jZW9mIEF3KW49e2RlbGV0ZTptXyh0LGUua2V5KX07ZWxzZSBpZihlIGluc3RhbmNlb2YgbXcpbj17dXBkYXRlOkVfKHQsZS5rZXksZS5kYXRhKSx1cGRhdGVNYXNrOihpPWUuZmllbGRNYXNrLHI9W10saS5maWVsZHMuZm9yRWFjaChmdW5jdGlvbih0KXtyZXR1cm4gci5wdXNoKHQuY2Fub25pY2FsU3RyaW5nKCkpfSkse2ZpZWxkUGF0aHM6cn0pfTtlbHNle2lmKCEoZSBpbnN0YW5jZW9mIGt3KSlyZXR1cm4gSHkoKTtuPXt2ZXJpZnk6bV8odCxlLmtleSl9fXJldHVybiAwPGUuZmllbGRUcmFuc2Zvcm1zLmxlbmd0aCYmKG4udXBkYXRlVHJhbnNmb3Jtcz1lLmZpZWxkVHJhbnNmb3Jtcy5tYXAoZnVuY3Rpb24odCl7dmFyIGU9dC50cmFuc2Zvcm07aWYoZSBpbnN0YW5jZW9mIHpiKXJldHVybntmaWVsZFBhdGg6dC5maWVsZC5jYW5vbmljYWxTdHJpbmcoKSxzZXRUb1NlcnZlclZhbHVlOiJSRVFVRVNUX1RJTUUifTtpZihlIGluc3RhbmNlb2YgUWIpcmV0dXJue2ZpZWxkUGF0aDp0LmZpZWxkLmNhbm9uaWNhbFN0cmluZygpLGFwcGVuZE1pc3NpbmdFbGVtZW50czp7dmFsdWVzOmUuZWxlbWVudHN9fTtpZihlIGluc3RhbmNlb2YgWmIpcmV0dXJue2ZpZWxkUGF0aDp0LmZpZWxkLmNhbm9uaWNhbFN0cmluZygpLHJlbW92ZUFsbEZyb21BcnJheTp7dmFsdWVzOmUuZWxlbWVudHN9fTtpZihlIGluc3RhbmNlb2YgcncpcmV0dXJue2ZpZWxkUGF0aDp0LmZpZWxkLmNhbm9uaWNhbFN0cmluZygpLGluY3JlbWVudDplLkF9O3Rocm93IEh5KCl9KSksZS5wcmVjb25kaXRpb24uaXNOb25lfHwobi5jdXJyZW50RG9jdW1lbnQ9dm9pZCAwIT09KGk9ZS5wcmVjb25kaXRpb24pLnVwZGF0ZVRpbWU/e3VwZGF0ZVRpbWU6KGU9dCx0PWkudXBkYXRlVGltZSxwXyhlLHQudG9UaW1lc3RhbXAoKSkpfTp2b2lkIDAhPT1pLmV4aXN0cz97ZXhpc3RzOmkuZXhpc3RzfTpIeSgpKSxufWZ1bmN0aW9uIE5fKGUsdCl7dmFyIG49dC5jdXJyZW50RG9jdW1lbnQ/dm9pZCAwIT09KHM9dC5jdXJyZW50RG9jdW1lbnQpLnVwZGF0ZVRpbWU/Y3cudXBkYXRlVGltZSh2XyhzLnVwZGF0ZVRpbWUpKTp2b2lkIDAhPT1zLmV4aXN0cz9jdy5leGlzdHMocy5leGlzdHMpOmN3Lm5vbmUoKTpjdy5ub25lKCkscj10LnVwZGF0ZVRyYW5zZm9ybXM/dC51cGRhdGVUcmFuc2Zvcm1zLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24odCxlKXt2YXIgbixyPW51bGw7InNldFRvU2VydmVyVmFsdWUiaW4gZT8oR3koIlJFUVVFU1RfVElNRSI9PT1lLnNldFRvU2VydmVyVmFsdWUpLHI9bmV3IHpiKToiYXBwZW5kTWlzc2luZ0VsZW1lbnRzImluIGU/KG49ZS5hcHBlbmRNaXNzaW5nRWxlbWVudHMudmFsdWVzfHxbXSxyPW5ldyBRYihuKSk6InJlbW92ZUFsbEZyb21BcnJheSJpbiBlPyhuPWUucmVtb3ZlQWxsRnJvbUFycmF5LnZhbHVlc3x8W10scj1uZXcgWmIobikpOiJpbmNyZW1lbnQiaW4gZT9yPW5ldyBydyh0LGUuaW5jcmVtZW50KTpIeSgpO2U9Y20uZnJvbVNlcnZlckZvcm1hdChlLmZpZWxkUGF0aCk7cmV0dXJuIG5ldyB1dyhlLHIpfShlLHQpfSk6W107aWYodC51cGRhdGUpe3QudXBkYXRlLm5hbWU7dmFyIGk9Yl8oZSx0LnVwZGF0ZS5uYW1lKSxvPW5ldyBxbSh7bWFwVmFsdWU6e2ZpZWxkczp0LnVwZGF0ZS5maWVsZHN9fSk7aWYodC51cGRhdGVNYXNrKXt2YXIgcz0ocz10LnVwZGF0ZU1hc2suZmllbGRQYXRoc3x8W10sbmV3IGhtKHMubWFwKGZ1bmN0aW9uKHQpe3JldHVybiBjbS5mcm9tU2VydmVyRm9ybWF0KHQpfSkpKTtyZXR1cm4gbmV3IG13KGksbyxzLG4scil9cmV0dXJuIG5ldyB5dyhpLG8sbixyKX1pZih0LmRlbGV0ZSl7cj1iXyhlLHQuZGVsZXRlKTtyZXR1cm4gbmV3IEF3KHIsbil9aWYodC52ZXJpZnkpe3Q9Yl8oZSx0LnZlcmlmeSk7cmV0dXJuIG5ldyBrdyh0LG4pfXJldHVybiBIeSgpfWZ1bmN0aW9uIEFfKHQsZSl7cmV0dXJue2RvY3VtZW50czpbd18odCxlLnBhdGgpXX19ZnVuY3Rpb24ga18odCxlKXt2YXIgbj17c3RydWN0dXJlZFF1ZXJ5Ont9fSxyPWUucGF0aDtudWxsIT09ZS5jb2xsZWN0aW9uR3JvdXA/KG4ucGFyZW50PXdfKHQsciksbi5zdHJ1Y3R1cmVkUXVlcnkuZnJvbT1be2NvbGxlY3Rpb25JZDplLmNvbGxlY3Rpb25Hcm91cCxhbGxEZXNjZW5kYW50czohMH1dKToobi5wYXJlbnQ9d18odCxyLnBvcExhc3QoKSksbi5zdHJ1Y3R1cmVkUXVlcnkuZnJvbT1be2NvbGxlY3Rpb25JZDpyLmxhc3RTZWdtZW50KCl9XSk7cj1mdW5jdGlvbih0KXtpZigwIT09dC5sZW5ndGgpe3Q9dC5tYXAoZnVuY3Rpb24odCl7aWYoIj09Ij09PXQub3Ape2lmKFVtKHQudmFsdWUpKXJldHVybnt1bmFyeUZpbHRlcjp7ZmllbGQ6RF8odC5maWVsZCksb3A6IklTX05BTiJ9fTtpZihGbSh0LnZhbHVlKSlyZXR1cm57dW5hcnlGaWx0ZXI6e2ZpZWxkOkRfKHQuZmllbGQpLG9wOiJJU19OVUxMIn19fWVsc2UgaWYoIiE9Ij09PXQub3Ape2lmKFVtKHQudmFsdWUpKXJldHVybnt1bmFyeUZpbHRlcjp7ZmllbGQ6RF8odC5maWVsZCksb3A6IklTX05PVF9OQU4ifX07aWYoRm0odC52YWx1ZSkpcmV0dXJue3VuYXJ5RmlsdGVyOntmaWVsZDpEXyh0LmZpZWxkKSxvcDoiSVNfTk9UX05VTEwifX19cmV0dXJue2ZpZWxkRmlsdGVyOntmaWVsZDpEXyh0LmZpZWxkKSxvcDooZT10Lm9wLGxfW2VdKSx2YWx1ZTp0LnZhbHVlfX07dmFyIGV9KTtyZXR1cm4gMT09PXQubGVuZ3RoP3RbMF06e2NvbXBvc2l0ZUZpbHRlcjp7b3A6IkFORCIsZmlsdGVyczp0fX19fShlLmZpbHRlcnMpO3ImJihuLnN0cnVjdHVyZWRRdWVyeS53aGVyZT1yKTtyPWZ1bmN0aW9uKHQpe2lmKDAhPT10Lmxlbmd0aClyZXR1cm4gdC5tYXAoZnVuY3Rpb24odCl7cmV0dXJue2ZpZWxkOkRfKCh0PXQpLmZpZWxkKSxkaXJlY3Rpb246KHQ9dC5kaXIsaF9bdF0pfX0pfShlLm9yZGVyQnkpO3ImJihuLnN0cnVjdHVyZWRRdWVyeS5vcmRlckJ5PXIpO3I9ZS5saW1pdCxyPXQuSXx8VG0ocik/cjp7dmFsdWU6cn07cmV0dXJuIG51bGwhPT1yJiYobi5zdHJ1Y3R1cmVkUXVlcnkubGltaXQ9ciksZS5zdGFydEF0JiYobi5zdHJ1Y3R1cmVkUXVlcnkuc3RhcnRBdD1QXyhlLnN0YXJ0QXQpKSxlLmVuZEF0JiYobi5zdHJ1Y3R1cmVkUXVlcnkuZW5kQXQ9UF8oZS5lbmRBdCkpLG59ZnVuY3Rpb24gUl8odCl7dmFyIGU9X18odC5wYXJlbnQpLG49dC5zdHJ1Y3R1cmVkUXVlcnkscj1uLmZyb20/bi5mcm9tLmxlbmd0aDowLGk9bnVsbDswPHImJihHeSgxPT09ciksKGE9bi5mcm9tWzBdKS5hbGxEZXNjZW5kYW50cz9pPWEuY29sbGVjdGlvbklkOmU9ZS5jaGlsZChhLmNvbGxlY3Rpb25JZCkpO3ZhciBvPVtdO24ud2hlcmUmJihvPWZ1bmN0aW9uIGUodCl7cmV0dXJuIHQ/dm9pZCAwIT09dC51bmFyeUZpbHRlcj9bTV8odCldOnZvaWQgMCE9PXQuZmllbGRGaWx0ZXI/W0xfKHQpXTp2b2lkIDAhPT10LmNvbXBvc2l0ZUZpbHRlcj90LmNvbXBvc2l0ZUZpbHRlci5maWx0ZXJzLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gZSh0KX0pLnJlZHVjZShmdW5jdGlvbih0LGUpe3JldHVybiB0LmNvbmNhdChlKX0pOkh5KCk6W119KG4ud2hlcmUpKTt2YXIgcz1bXSx0PW51bGwscj1udWxsLGE9bnVsbDtyZXR1cm4gQ2IoZSxpLHM9bi5vcmRlckJ5P24ub3JkZXJCeS5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBJYih4XygoZT10KS5maWVsZCksZnVuY3Rpb24oKXtzd2l0Y2goZS5kaXJlY3Rpb24pe2Nhc2UiQVNDRU5ESU5HIjpyZXR1cm4iYXNjIjtjYXNlIkRFU0NFTkRJTkciOnJldHVybiJkZXNjIjtkZWZhdWx0OnJldHVybn19KCkpO3ZhciBlfSk6cyxvLHQ9bi5saW1pdD9UbShvPSJvYmplY3QiPT10eXBlb2Yobz1uLmxpbWl0KT9vLnZhbHVlOm8pP251bGw6bzp0LCJGIixyPW4uc3RhcnRBdD9PXyhuLnN0YXJ0QXQpOnIsYT1uLmVuZEF0P09fKG4uZW5kQXQpOmEpfWZ1bmN0aW9uIFBfKHQpe3JldHVybntiZWZvcmU6dC5iZWZvcmUsdmFsdWVzOnQucG9zaXRpb259fWZ1bmN0aW9uIE9fKHQpe3ZhciBlPSEhdC5iZWZvcmUsdD10LnZhbHVlc3x8W107cmV0dXJuIG5ldyBnYih0LGUpfWZ1bmN0aW9uIERfKHQpe3JldHVybntmaWVsZFBhdGg6dC5jYW5vbmljYWxTdHJpbmcoKX19ZnVuY3Rpb24geF8odCl7cmV0dXJuIGNtLmZyb21TZXJ2ZXJGb3JtYXQodC5maWVsZFBhdGgpfWZ1bmN0aW9uIExfKHQpe3JldHVybiBYbS5jcmVhdGUoeF8odC5maWVsZEZpbHRlci5maWVsZCksZnVuY3Rpb24oKXtzd2l0Y2godC5maWVsZEZpbHRlci5vcCl7Y2FzZSJFUVVBTCI6cmV0dXJuIj09IjtjYXNlIk5PVF9FUVVBTCI6cmV0dXJuIiE9IjtjYXNlIkdSRUFURVJfVEhBTiI6cmV0dXJuIj4iO2Nhc2UiR1JFQVRFUl9USEFOX09SX0VRVUFMIjpyZXR1cm4iPj0iO2Nhc2UiTEVTU19USEFOIjpyZXR1cm4iPCI7Y2FzZSJMRVNTX1RIQU5fT1JfRVFVQUwiOnJldHVybiI8PSI7Y2FzZSJBUlJBWV9DT05UQUlOUyI6cmV0dXJuImFycmF5LWNvbnRhaW5zIjtjYXNlIklOIjpyZXR1cm4iaW4iO2Nhc2UiTk9UX0lOIjpyZXR1cm4ibm90LWluIjtjYXNlIkFSUkFZX0NPTlRBSU5TX0FOWSI6cmV0dXJuImFycmF5LWNvbnRhaW5zLWFueSI7Y2FzZSJPUEVSQVRPUl9VTlNQRUNJRklFRCI6ZGVmYXVsdDpyZXR1cm4gSHkoKX19KCksdC5maWVsZEZpbHRlci52YWx1ZSl9ZnVuY3Rpb24gTV8odCl7c3dpdGNoKHQudW5hcnlGaWx0ZXIub3Ape2Nhc2UiSVNfTkFOIjp2YXIgZT14Xyh0LnVuYXJ5RmlsdGVyLmZpZWxkKTtyZXR1cm4gWG0uY3JlYXRlKGUsIj09Iix7ZG91YmxlVmFsdWU6TmFOfSk7Y2FzZSJJU19OVUxMIjplPXhfKHQudW5hcnlGaWx0ZXIuZmllbGQpO3JldHVybiBYbS5jcmVhdGUoZSwiPT0iLHtudWxsVmFsdWU6Ik5VTExfVkFMVUUifSk7Y2FzZSJJU19OT1RfTkFOIjp2YXIgbj14Xyh0LnVuYXJ5RmlsdGVyLmZpZWxkKTtyZXR1cm4gWG0uY3JlYXRlKG4sIiE9Iix7ZG91YmxlVmFsdWU6TmFOfSk7Y2FzZSJJU19OT1RfTlVMTCI6bj14Xyh0LnVuYXJ5RmlsdGVyLmZpZWxkKTtyZXR1cm4gWG0uY3JlYXRlKG4sIiE9Iix7bnVsbFZhbHVlOiJOVUxMX1ZBTFVFIn0pO2Nhc2UiT1BFUkFUT1JfVU5TUEVDSUZJRUQiOmRlZmF1bHQ6cmV0dXJuIEh5KCl9fWZ1bmN0aW9uIEZfKHQpe3JldHVybiA0PD10Lmxlbmd0aCYmInByb2plY3RzIj09PXQuZ2V0KDApJiYiZGF0YWJhc2VzIj09PXQuZ2V0KDIpfWZ1bmN0aW9uIFVfKHQpe2Zvcih2YXIgZT0iIixuPTA7bjx0Lmxlbmd0aDtuKyspMDxlLmxlbmd0aCYmKGU9al8oZSkpLGU9ZnVuY3Rpb24odCxlKXtmb3IodmFyIG49ZSxyPXQubGVuZ3RoLGk9MDtpPHI7aSsrKXt2YXIgbz10LmNoYXJBdChpKTtzd2l0Y2gobyl7Y2FzZSJcMCI6bis9IgEQIjticmVhaztjYXNlIgEiOm4rPSIBESI7YnJlYWs7ZGVmYXVsdDpuKz1vfX1yZXR1cm4gbn0odC5nZXQobiksZSk7cmV0dXJuIGpfKGUpfWZ1bmN0aW9uIGpfKHQpe3JldHVybiB0KyIBASJ9ZnVuY3Rpb24gcV8odCl7dmFyIGU9dC5sZW5ndGg7aWYoR3koMjw9ZSksMj09PWUpcmV0dXJuIEd5KCIBIj09PXQuY2hhckF0KDApJiYiASI9PT10LmNoYXJBdCgxKSksYW0uZW1wdHlQYXRoKCk7Zm9yKHZhciBuPWUtMixyPVtdLGk9IiIsbz0wO288ZTspe3ZhciBzPXQuaW5kZXhPZigiASIsbyk7c3dpdGNoKChzPDB8fG48cykmJkh5KCksdC5jaGFyQXQocysxKSl7Y2FzZSIBIjp2YXIgYT10LnN1YnN0cmluZyhvLHMpLHU9dm9pZCAwOzA9PT1pLmxlbmd0aD91PWE6KHU9aSs9YSxpPSIiKSxyLnB1c2godSk7YnJlYWs7Y2FzZSIQIjppKz10LnN1YnN0cmluZyhvLHMpLGkrPSJcMCI7YnJlYWs7Y2FzZSIRIjppKz10LnN1YnN0cmluZyhvLHMrMSk7YnJlYWs7ZGVmYXVsdDpIeSgpfW89cysyfXJldHVybiBuZXcgYW0ocil9ZnVuY3Rpb24gVl8odCxlLG4pe3RoaXMub3duZXJJZD10LHRoaXMuYWxsb3dUYWJTeW5jaHJvbml6YXRpb249ZSx0aGlzLmxlYXNlVGltZXN0YW1wTXM9bn12YXIgQl89ZnVuY3Rpb24odCxlKXt0aGlzLnNlY29uZHM9dCx0aGlzLm5hbm9zZWNvbmRzPWV9O1ZfLnN0b3JlPSJvd25lciIsVl8ua2V5PSJvd25lciI7ZnVuY3Rpb24gS18odCxlLG4pe3RoaXMudXNlcklkPXQsdGhpcy5sYXN0QWNrbm93bGVkZ2VkQmF0Y2hJZD1lLHRoaXMubGFzdFN0cmVhbVRva2VuPW59S18uc3RvcmU9Im11dGF0aW9uUXVldWVzIixLXy5rZXlQYXRoPSJ1c2VySWQiO2Z1bmN0aW9uIFdfKHQsZSxuLHIsaSl7dGhpcy51c2VySWQ9dCx0aGlzLmJhdGNoSWQ9ZSx0aGlzLmxvY2FsV3JpdGVUaW1lTXM9bix0aGlzLmJhc2VNdXRhdGlvbnM9cix0aGlzLm11dGF0aW9ucz1pfVdfLnN0b3JlPSJtdXRhdGlvbnMiLFdfLmtleVBhdGg9ImJhdGNoSWQiLFdfLnVzZXJNdXRhdGlvbnNJbmRleD0idXNlck11dGF0aW9uc0luZGV4IixXXy51c2VyTXV0YXRpb25zS2V5UGF0aD1bInVzZXJJZCIsImJhdGNoSWQiXTt2YXIgSF89KEdfLnByZWZpeEZvclVzZXI9ZnVuY3Rpb24odCl7cmV0dXJuW3RdfSxHXy5wcmVmaXhGb3JQYXRoPWZ1bmN0aW9uKHQsZSl7cmV0dXJuW3QsVV8oZSldfSxHXy5rZXk9ZnVuY3Rpb24odCxlLG4pe3JldHVyblt0LFVfKGUpLG5dfSxHXyk7ZnVuY3Rpb24gR18oKXt9SF8uc3RvcmU9ImRvY3VtZW50TXV0YXRpb25zIixIXy5QTEFDRUhPTERFUj1uZXcgSF87ZnVuY3Rpb24gel8odCxlKXt0aGlzLnBhdGg9dCx0aGlzLnJlYWRUaW1lPWV9ZnVuY3Rpb24gUV8odCxlKXt0aGlzLnBhdGg9dCx0aGlzLnZlcnNpb249ZX12YXIgWV89ZnVuY3Rpb24odCxlLG4scixpLG8pe3RoaXMudW5rbm93bkRvY3VtZW50PXQsdGhpcy5ub0RvY3VtZW50PWUsdGhpcy5kb2N1bWVudD1uLHRoaXMuaGFzQ29tbWl0dGVkTXV0YXRpb25zPXIsdGhpcy5yZWFkVGltZT1pLHRoaXMucGFyZW50UGF0aD1vfTtZXy5zdG9yZT0icmVtb3RlRG9jdW1lbnRzIixZXy5yZWFkVGltZUluZGV4PSJyZWFkVGltZUluZGV4IixZXy5yZWFkVGltZUluZGV4UGF0aD0icmVhZFRpbWUiLFlfLmNvbGxlY3Rpb25SZWFkVGltZUluZGV4PSJjb2xsZWN0aW9uUmVhZFRpbWVJbmRleCIsWV8uY29sbGVjdGlvblJlYWRUaW1lSW5kZXhQYXRoPVsicGFyZW50UGF0aCIsInJlYWRUaW1lIl07ZnVuY3Rpb24gWF8odCl7dGhpcy5ieXRlU2l6ZT10fVhfLnN0b3JlPSJyZW1vdGVEb2N1bWVudEdsb2JhbCIsWF8ua2V5PSJyZW1vdGVEb2N1bWVudEdsb2JhbEtleSI7ZnVuY3Rpb24gSl8odCxlLG4scixpLG8scyl7dGhpcy50YXJnZXRJZD10LHRoaXMuY2Fub25pY2FsSWQ9ZSx0aGlzLnJlYWRUaW1lPW4sdGhpcy5yZXN1bWVUb2tlbj1yLHRoaXMubGFzdExpc3RlblNlcXVlbmNlTnVtYmVyPWksdGhpcy5sYXN0TGltYm9GcmVlU25hcHNob3RWZXJzaW9uPW8sdGhpcy5xdWVyeT1zfUpfLnN0b3JlPSJ0YXJnZXRzIixKXy5rZXlQYXRoPSJ0YXJnZXRJZCIsSl8ucXVlcnlUYXJnZXRzSW5kZXhOYW1lPSJxdWVyeVRhcmdldHNJbmRleCIsSl8ucXVlcnlUYXJnZXRzS2V5UGF0aD1bImNhbm9uaWNhbElkIiwidGFyZ2V0SWQiXTt2YXIgJF89ZnVuY3Rpb24odCxlLG4pe3RoaXMudGFyZ2V0SWQ9dCx0aGlzLnBhdGg9ZSx0aGlzLnNlcXVlbmNlTnVtYmVyPW59OyRfLnN0b3JlPSJ0YXJnZXREb2N1bWVudHMiLCRfLmtleVBhdGg9WyJ0YXJnZXRJZCIsInBhdGgiXSwkXy5kb2N1bWVudFRhcmdldHNJbmRleD0iZG9jdW1lbnRUYXJnZXRzSW5kZXgiLCRfLmRvY3VtZW50VGFyZ2V0c0tleVBhdGg9WyJwYXRoIiwidGFyZ2V0SWQiXTtmdW5jdGlvbiBaXyh0LGUsbixyKXt0aGlzLmhpZ2hlc3RUYXJnZXRJZD10LHRoaXMuaGlnaGVzdExpc3RlblNlcXVlbmNlTnVtYmVyPWUsdGhpcy5sYXN0UmVtb3RlU25hcHNob3RWZXJzaW9uPW4sdGhpcy50YXJnZXRDb3VudD1yfVpfLmtleT0idGFyZ2V0R2xvYmFsS2V5IixaXy5zdG9yZT0idGFyZ2V0R2xvYmFsIjtmdW5jdGlvbiB0SSh0LGUpe3RoaXMuY29sbGVjdGlvbklkPXQsdGhpcy5wYXJlbnQ9ZX10SS5zdG9yZT0iY29sbGVjdGlvblBhcmVudHMiLHRJLmtleVBhdGg9WyJjb2xsZWN0aW9uSWQiLCJwYXJlbnQiXTtmdW5jdGlvbiBlSSh0LGUsbixyKXt0aGlzLmNsaWVudElkPXQsdGhpcy51cGRhdGVUaW1lTXM9ZSx0aGlzLm5ldHdvcmtFbmFibGVkPW4sdGhpcy5pbkZvcmVncm91bmQ9cn1lSS5zdG9yZT0iY2xpZW50TWV0YWRhdGEiLGVJLmtleVBhdGg9ImNsaWVudElkIjtmdW5jdGlvbiBuSSh0LGUsbil7dGhpcy5idW5kbGVJZD10LHRoaXMuY3JlYXRlVGltZT1lLHRoaXMudmVyc2lvbj1ufW5JLnN0b3JlPSJidW5kbGVzIixuSS5rZXlQYXRoPSJidW5kbGVJZCI7ZnVuY3Rpb24gckkodCxlLG4pe3RoaXMubmFtZT10LHRoaXMucmVhZFRpbWU9ZSx0aGlzLmJ1bmRsZWRRdWVyeT1ufXJJLnN0b3JlPSJuYW1lZFF1ZXJpZXMiLHJJLmtleVBhdGg9Im5hbWUiO3ZhciBpSSxvST1ubyhubyhbXSxubyhubyhbXSxubyhubyhbXSxubyhubyhbXSxbS18uc3RvcmUsV18uc3RvcmUsSF8uc3RvcmUsWV8uc3RvcmUsSl8uc3RvcmUsVl8uc3RvcmUsWl8uc3RvcmUsJF8uc3RvcmVdKSxbZUkuc3RvcmVdKSksW1hfLnN0b3JlXSkpLFt0SS5zdG9yZV0pKSxbbkkuc3RvcmUsckkuc3RvcmVdKSxzST0iVGhlIGN1cnJlbnQgdGFiIGlzIG5vdCBpbiB0aGUgcmVxdWlyZWQgc3RhdGUgdG8gcGVyZm9ybSB0aGlzIG9wZXJhdGlvbi4gSXQgbWlnaHQgYmUgbmVjZXNzYXJ5IHRvIHJlZnJlc2ggdGhlIGJyb3dzZXIgdGFiLiIsR2E9KG1JLnByb3RvdHlwZS5hZGRPbkNvbW1pdHRlZExpc3RlbmVyPWZ1bmN0aW9uKHQpe3RoaXMub25Db21taXR0ZWRMaXN0ZW5lcnMucHVzaCh0KX0sbUkucHJvdG90eXBlLnJhaXNlT25Db21taXR0ZWRFdmVudD1mdW5jdGlvbigpe3RoaXMub25Db21taXR0ZWRMaXN0ZW5lcnMuZm9yRWFjaChmdW5jdGlvbih0KXtyZXR1cm4gdCgpfSl9LG1JKSxhST1mdW5jdGlvbigpe3ZhciBuPXRoaXM7dGhpcy5wcm9taXNlPW5ldyBQcm9taXNlKGZ1bmN0aW9uKHQsZSl7bi5yZXNvbHZlPXQsbi5yZWplY3Q9ZX0pfSx1ST0oeUkucHJvdG90eXBlLmNhdGNoPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLm5leHQodm9pZCAwLHQpfSx5SS5wcm90b3R5cGUubmV4dD1mdW5jdGlvbihyLGkpe3ZhciBvPXRoaXM7cmV0dXJuIHRoaXMuY2FsbGJhY2tBdHRhY2hlZCYmSHkoKSx0aGlzLmNhbGxiYWNrQXR0YWNoZWQ9ITAsdGhpcy5pc0RvbmU/dGhpcy5lcnJvcj90aGlzLndyYXBGYWlsdXJlKGksdGhpcy5lcnJvcik6dGhpcy53cmFwU3VjY2VzcyhyLHRoaXMucmVzdWx0KTpuZXcgeUkoZnVuY3Rpb24oZSxuKXtvLm5leHRDYWxsYmFjaz1mdW5jdGlvbih0KXtvLndyYXBTdWNjZXNzKHIsdCkubmV4dChlLG4pfSxvLmNhdGNoQ2FsbGJhY2s9ZnVuY3Rpb24odCl7by53cmFwRmFpbHVyZShpLHQpLm5leHQoZSxuKX19KX0seUkucHJvdG90eXBlLnRvUHJvbWlzZT1mdW5jdGlvbigpe3ZhciBuPXRoaXM7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHQsZSl7bi5uZXh0KHQsZSl9KX0seUkucHJvdG90eXBlLndyYXBVc2VyRnVuY3Rpb249ZnVuY3Rpb24odCl7dHJ5e3ZhciBlPXQoKTtyZXR1cm4gZSBpbnN0YW5jZW9mIHlJP2U6eUkucmVzb2x2ZShlKX1jYXRjaCh0KXtyZXR1cm4geUkucmVqZWN0KHQpfX0seUkucHJvdG90eXBlLndyYXBTdWNjZXNzPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQ/dGhpcy53cmFwVXNlckZ1bmN0aW9uKGZ1bmN0aW9uKCl7cmV0dXJuIHQoZSl9KTp5SS5yZXNvbHZlKGUpfSx5SS5wcm90b3R5cGUud3JhcEZhaWx1cmU9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdD90aGlzLndyYXBVc2VyRnVuY3Rpb24oZnVuY3Rpb24oKXtyZXR1cm4gdChlKX0pOnlJLnJlamVjdChlKX0seUkucmVzb2x2ZT1mdW5jdGlvbihuKXtyZXR1cm4gbmV3IHlJKGZ1bmN0aW9uKHQsZSl7dChuKX0pfSx5SS5yZWplY3Q9ZnVuY3Rpb24obil7cmV0dXJuIG5ldyB5SShmdW5jdGlvbih0LGUpe2Uobil9KX0seUkud2FpdEZvcj1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IHlJKGZ1bmN0aW9uKGUsbil7dmFyIHI9MCxpPTAsbz0hMTt0LmZvckVhY2goZnVuY3Rpb24odCl7KytyLHQubmV4dChmdW5jdGlvbigpeysraSxvJiZpPT09ciYmZSgpfSxmdW5jdGlvbih0KXtyZXR1cm4gbih0KX0pfSksbz0hMCxpPT09ciYmZSgpfSl9LHlJLm9yPWZ1bmN0aW9uKHQpe2Zvcih2YXIgbj15SS5yZXNvbHZlKCExKSxlPTAscj10O2U8ci5sZW5ndGg7ZSsrKSFmdW5jdGlvbihlKXtuPW4ubmV4dChmdW5jdGlvbih0KXtyZXR1cm4gdD95SS5yZXNvbHZlKHQpOmUoKX0pfShyW2VdKTtyZXR1cm4gbn0seUkuZm9yRWFjaD1mdW5jdGlvbih0LG4pe3ZhciByPXRoaXMsaT1bXTtyZXR1cm4gdC5mb3JFYWNoKGZ1bmN0aW9uKHQsZSl7aS5wdXNoKG4uY2FsbChyLHQsZSkpfSksdGhpcy53YWl0Rm9yKGkpfSx5SSksY0k9KGdJLm9wZW49ZnVuY3Rpb24odCxlLG4scil7dHJ5e3JldHVybiBuZXcgZ0koZSx0LnRyYW5zYWN0aW9uKHIsbikpfWNhdGNoKHQpe3Rocm93IG5ldyBmSShlLHQpfX0sT2JqZWN0LmRlZmluZVByb3BlcnR5KGdJLnByb3RvdHlwZSwiZHQiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5mdC5wcm9taXNlfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLGdJLnByb3RvdHlwZS5hYm9ydD1mdW5jdGlvbih0KXt0JiZ0aGlzLmZ0LnJlamVjdCh0KSx0aGlzLmFib3J0ZWR8fChWeSgiU2ltcGxlRGIiLCJBYm9ydGluZyB0cmFuc2FjdGlvbjoiLHQ/dC5tZXNzYWdlOiJDbGllbnQtaW5pdGlhdGVkIGFib3J0IiksdGhpcy5hYm9ydGVkPSEwLHRoaXMudHJhbnNhY3Rpb24uYWJvcnQoKSl9LGdJLnByb3RvdHlwZS5zdG9yZT1mdW5jdGlvbih0KXt0PXRoaXMudHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUodCk7cmV0dXJuIG5ldyB3SSh0KX0sZ0kpLGhJPSh2SS5kZWxldGU9ZnVuY3Rpb24odCl7cmV0dXJuIFZ5KCJTaW1wbGVEYiIsIlJlbW92aW5nIGRhdGFiYXNlOiIsdCksSUkod2luZG93LmluZGV4ZWREQi5kZWxldGVEYXRhYmFzZSh0KSkudG9Qcm9taXNlKCl9LHZJLnl0PWZ1bmN0aW9uKCl7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBpbmRleGVkREIpcmV0dXJuITE7aWYodkkuZ3QoKSlyZXR1cm4hMDt2YXIgdD1wbygpLGU9dkkuX3QodCksbj0wPGUmJmU8MTAsZT12SS5FdCh0KSxlPTA8ZSYmZTw0LjU7cmV0dXJuISgwPHQuaW5kZXhPZigiTVNJRSAiKXx8MDx0LmluZGV4T2YoIlRyaWRlbnQvIil8fDA8dC5pbmRleE9mKCJFZGdlLyIpfHxufHxlKX0sdkkuZ3Q9ZnVuY3Rpb24oKXt2YXIgdDtyZXR1cm4idW5kZWZpbmVkIiE9dHlwZW9mIHByb2Nlc3MmJiJZRVMiPT09KG51bGw9PT0odD1wcm9jZXNzLmVudil8fHZvaWQgMD09PXQ/dm9pZCAwOnQuVHQpfSx2SS5JdD1mdW5jdGlvbih0LGUpe3JldHVybiB0LnN0b3JlKGUpfSx2SS5fdD1mdW5jdGlvbih0KXt0PXQubWF0Y2goL2koPzpwaG9uZXxwYWR8cG9kKSBvcyAoW1xkX10rKS9pKSx0PXQ/dFsxXS5zcGxpdCgiXyIpLnNsaWNlKDAsMikuam9pbigiLiIpOiItMSI7cmV0dXJuIE51bWJlcih0KX0sdkkuRXQ9ZnVuY3Rpb24odCl7dD10Lm1hdGNoKC9BbmRyb2lkIChbXGQuXSspL2kpLHQ9dD90WzFdLnNwbGl0KCIuIikuc2xpY2UoMCwyKS5qb2luKCIuIik6Ii0xIjtyZXR1cm4gTnVtYmVyKHQpfSx2SS5wcm90b3R5cGUuQXQ9ZnVuY3Rpb24obyl7cmV0dXJuICRpKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBlLGk9dGhpcztyZXR1cm4gWmkodGhpcyxmdW5jdGlvbih0KXtzd2l0Y2godC5sYWJlbCl7Y2FzZSAwOnJldHVybiB0aGlzLmRiP1szLDJdOihWeSgiU2ltcGxlRGIiLCJPcGVuaW5nIGRhdGFiYXNlOiIsdGhpcy5uYW1lKSxlPXRoaXMsWzQsbmV3IFByb21pc2UoZnVuY3Rpb24oZSxuKXt2YXIgcj1pbmRleGVkREIub3BlbihpLm5hbWUsaS52ZXJzaW9uKTtyLm9uc3VjY2Vzcz1mdW5jdGlvbih0KXt0PXQudGFyZ2V0LnJlc3VsdDtlKHQpfSxyLm9uYmxvY2tlZD1mdW5jdGlvbigpe24obmV3IGZJKG8sIkNhbm5vdCB1cGdyYWRlIEluZGV4ZWREQiBzY2hlbWEgd2hpbGUgYW5vdGhlciB0YWIgaXMgb3Blbi4gQ2xvc2UgYWxsIHRhYnMgdGhhdCBhY2Nlc3MgRmlyZXN0b3JlIGFuZCByZWxvYWQgdGhpcyBwYWdlIHRvIHByb2NlZWQuIikpfSxyLm9uZXJyb3I9ZnVuY3Rpb24odCl7dD10LnRhcmdldC5lcnJvcjsiVmVyc2lvbkVycm9yIj09PXQubmFtZT9uKG5ldyBGeShNeS5GQUlMRURfUFJFQ09ORElUSU9OLCJBIG5ld2VyIHZlcnNpb24gb2YgdGhlIEZpcmVzdG9yZSBTREsgd2FzIHByZXZpb3VzbHkgdXNlZCBhbmQgc28gdGhlIHBlcnNpc3RlZCBkYXRhIGlzIG5vdCBjb21wYXRpYmxlIHdpdGggdGhlIHZlcnNpb24gb2YgdGhlIFNESyB5b3UgYXJlIG5vdyB1c2luZy4gVGhlIFNESyB3aWxsIG9wZXJhdGUgd2l0aCBwZXJzaXN0ZW5jZSBkaXNhYmxlZC4gSWYgeW91IG5lZWQgcGVyc2lzdGVuY2UsIHBsZWFzZSByZS11cGdyYWRlIHRvIGEgbmV3ZXIgdmVyc2lvbiBvZiB0aGUgU0RLIG9yIGVsc2UgY2xlYXIgdGhlIHBlcnNpc3RlZCBJbmRleGVkREIgZGF0YSBmb3IgeW91ciBhcHAgdG8gc3RhcnQgZnJlc2guIikpOm4obmV3IGZJKG8sdCkpfSxyLm9udXBncmFkZW5lZWRlZD1mdW5jdGlvbih0KXtWeSgiU2ltcGxlRGIiLCdEYXRhYmFzZSAiJytpLm5hbWUrJyIgcmVxdWlyZXMgdXBncmFkZSBmcm9tIHZlcnNpb246Jyx0Lm9sZFZlcnNpb24pO3ZhciBlPXQudGFyZ2V0LnJlc3VsdDtpLnd0LlJ0KGUsci50cmFuc2FjdGlvbix0Lm9sZFZlcnNpb24saS52ZXJzaW9uKS5uZXh0KGZ1bmN0aW9uKCl7VnkoIlNpbXBsZURiIiwiRGF0YWJhc2UgdXBncmFkZSB0byB2ZXJzaW9uICIraS52ZXJzaW9uKyIgY29tcGxldGUiKX0pfX0pXSk7Y2FzZSAxOmUuZGI9dC5zZW50KCksdC5sYWJlbD0yO2Nhc2UgMjpyZXR1cm5bMiwodGhpcy5idCYmKHRoaXMuZGIub252ZXJzaW9uY2hhbmdlPWZ1bmN0aW9uKHQpe3JldHVybiBpLmJ0KHQpfSksdGhpcy5kYildfX0pfSl9LHZJLnByb3RvdHlwZS52dD1mdW5jdGlvbihlKXt0aGlzLmJ0PWUsdGhpcy5kYiYmKHRoaXMuZGIub252ZXJzaW9uY2hhbmdlPWZ1bmN0aW9uKHQpe3JldHVybiBlKHQpfSl9LHZJLnByb3RvdHlwZS5ydW5UcmFuc2FjdGlvbj1mdW5jdGlvbihhLG4sdSxjKXtyZXR1cm4gJGkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIGksbyxzLGU7cmV0dXJuIFppKHRoaXMsZnVuY3Rpb24odCl7c3dpdGNoKHQubGFiZWwpe2Nhc2UgMDppPSJyZWFkb25seSI9PT1uLG89MCxlPWZ1bmN0aW9uKCl7dmFyIGUsbixyO3JldHVybiBaaSh0aGlzLGZ1bmN0aW9uKHQpe3N3aXRjaCh0LmxhYmVsKXtjYXNlIDA6KytvLHQubGFiZWw9MTtjYXNlIDE6cmV0dXJuIHQudHJ5cy5wdXNoKFsxLDQsLDVdKSxbNCxzLkF0KGEpXTtjYXNlIDI6cmV0dXJuIHMuZGI9dC5zZW50KCksZT1jSS5vcGVuKHMuZGIsYSxpPyJyZWFkb25seSI6InJlYWR3cml0ZSIsdSksbj1jKGUpLmNhdGNoKGZ1bmN0aW9uKHQpe3JldHVybiBlLmFib3J0KHQpLHVJLnJlamVjdCh0KX0pLnRvUHJvbWlzZSgpLHI9e30sbi5jYXRjaChmdW5jdGlvbigpe30pLFs0LGUuZHRdO2Nhc2UgMzpyZXR1cm5bMiwoci52YWx1ZT0odC5zZW50KCksbikscildO2Nhc2UgNDpyZXR1cm4gbj10LnNlbnQoKSxyPSJGaXJlYmFzZUVycm9yIiE9PW4ubmFtZSYmbzwzLFZ5KCJTaW1wbGVEYiIsIlRyYW5zYWN0aW9uIGZhaWxlZCB3aXRoIGVycm9yOiIsbi5tZXNzYWdlLCJSZXRyeWluZzoiLHIpLHMuY2xvc2UoKSxyP1szLDVdOlsyLHt2YWx1ZTpQcm9taXNlLnJlamVjdChuKX1dO2Nhc2UgNTpyZXR1cm5bMl19fSl9LHM9dGhpcyx0LmxhYmVsPTE7Y2FzZSAxOnJldHVybls1LGUoKV07Y2FzZSAyOmlmKCJvYmplY3QiPT10eXBlb2YoZT10LnNlbnQoKSkpcmV0dXJuWzIsZS52YWx1ZV07dC5sYWJlbD0zO2Nhc2UgMzpyZXR1cm5bMywxXTtjYXNlIDQ6cmV0dXJuWzJdfX0pfSl9LHZJLnByb3RvdHlwZS5jbG9zZT1mdW5jdGlvbigpe3RoaXMuZGImJnRoaXMuZGIuY2xvc2UoKSx0aGlzLmRiPXZvaWQgMH0sdkkpLGxJPShPYmplY3QuZGVmaW5lUHJvcGVydHkoZEkucHJvdG90eXBlLCJpc0RvbmUiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5WdH0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZEkucHJvdG90eXBlLCJEdCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLlN0fSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkSS5wcm90b3R5cGUsImN1cnNvciIse3NldDpmdW5jdGlvbih0KXt0aGlzLlB0PXR9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksZEkucHJvdG90eXBlLmRvbmU9ZnVuY3Rpb24oKXt0aGlzLlZ0PSEwfSxkSS5wcm90b3R5cGUuQ3Q9ZnVuY3Rpb24odCl7dGhpcy5TdD10fSxkSS5wcm90b3R5cGUuZGVsZXRlPWZ1bmN0aW9uKCl7cmV0dXJuIElJKHRoaXMuUHQuZGVsZXRlKCkpfSxkSSksZkk9KFhpKHBJLGlJPUZ5KSxwSSk7ZnVuY3Rpb24gcEkodCxlKXt2YXIgbj10aGlzO3JldHVybihuPWlJLmNhbGwodGhpcyxNeS5VTkFWQUlMQUJMRSwiSW5kZXhlZERCIHRyYW5zYWN0aW9uICciK3QrIicgZmFpbGVkOiAiK2UpfHx0aGlzKS5uYW1lPSJJbmRleGVkRGJUcmFuc2FjdGlvbkVycm9yIixufWZ1bmN0aW9uIGRJKHQpe3RoaXMuUHQ9dCx0aGlzLlZ0PSExLHRoaXMuU3Q9bnVsbH1mdW5jdGlvbiB2SSh0LGUsbil7dGhpcy5uYW1lPXQsdGhpcy52ZXJzaW9uPWUsdGhpcy53dD1uLDEyLjI9PT12SS5fdChwbygpKSYmQnkoIkZpcmVzdG9yZSBwZXJzaXN0ZW5jZSBzdWZmZXJzIGZyb20gYSBidWcgaW4gaU9TIDEyLjIgU2FmYXJpIHRoYXQgbWF5IGNhdXNlIHlvdXIgYXBwIHRvIHN0b3Agd29ya2luZy4gU2VlIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcS81NjQ5NjI5Ni8xMTA5MTUgZm9yIGRldGFpbHMgYW5kIGEgcG90ZW50aWFsIHdvcmthcm91bmQuIil9ZnVuY3Rpb24gZ0koZSx0KXt2YXIgbj10aGlzO3RoaXMuYWN0aW9uPWUsdGhpcy50cmFuc2FjdGlvbj10LHRoaXMuYWJvcnRlZD0hMSx0aGlzLmZ0PW5ldyBhSSx0aGlzLnRyYW5zYWN0aW9uLm9uY29tcGxldGU9ZnVuY3Rpb24oKXtuLmZ0LnJlc29sdmUoKX0sdGhpcy50cmFuc2FjdGlvbi5vbmFib3J0PWZ1bmN0aW9uKCl7dC5lcnJvcj9uLmZ0LnJlamVjdChuZXcgZkkoZSx0LmVycm9yKSk6bi5mdC5yZXNvbHZlKCl9LHRoaXMudHJhbnNhY3Rpb24ub25lcnJvcj1mdW5jdGlvbih0KXt0PUVJKHQudGFyZ2V0LmVycm9yKTtuLmZ0LnJlamVjdChuZXcgZkkoZSx0KSl9fWZ1bmN0aW9uIHlJKHQpe3ZhciBlPXRoaXM7dGhpcy5uZXh0Q2FsbGJhY2s9bnVsbCx0aGlzLmNhdGNoQ2FsbGJhY2s9bnVsbCx0aGlzLnJlc3VsdD12b2lkIDAsdGhpcy5lcnJvcj12b2lkIDAsdGhpcy5pc0RvbmU9ITEsdGhpcy5jYWxsYmFja0F0dGFjaGVkPSExLHQoZnVuY3Rpb24odCl7ZS5pc0RvbmU9ITAsZS5yZXN1bHQ9dCxlLm5leHRDYWxsYmFjayYmZS5uZXh0Q2FsbGJhY2sodCl9LGZ1bmN0aW9uKHQpe2UuaXNEb25lPSEwLGUuZXJyb3I9dCxlLmNhdGNoQ2FsbGJhY2smJmUuY2F0Y2hDYWxsYmFjayh0KX0pfWZ1bmN0aW9uIG1JKCl7dGhpcy5vbkNvbW1pdHRlZExpc3RlbmVycz1bXX1mdW5jdGlvbiBiSSh0KXtyZXR1cm4iSW5kZXhlZERiVHJhbnNhY3Rpb25FcnJvciI9PT10Lm5hbWV9dmFyIHdJPShfSS5wcm90b3R5cGUucHV0PWZ1bmN0aW9uKHQsZSl7dD12b2lkIDAhPT1lPyhWeSgiU2ltcGxlRGIiLCJQVVQiLHRoaXMuc3RvcmUubmFtZSx0LGUpLHRoaXMuc3RvcmUucHV0KGUsdCkpOihWeSgiU2ltcGxlRGIiLCJQVVQiLHRoaXMuc3RvcmUubmFtZSwiPGF1dG8ta2V5PiIsdCksdGhpcy5zdG9yZS5wdXQodCkpO3JldHVybiBJSSh0KX0sX0kucHJvdG90eXBlLmFkZD1mdW5jdGlvbih0KXtyZXR1cm4gVnkoIlNpbXBsZURiIiwiQUREIix0aGlzLnN0b3JlLm5hbWUsdCx0KSxJSSh0aGlzLnN0b3JlLmFkZCh0KSl9LF9JLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24oZSl7dmFyIG49dGhpcztyZXR1cm4gSUkodGhpcy5zdG9yZS5nZXQoZSkpLm5leHQoZnVuY3Rpb24odCl7cmV0dXJuIHZvaWQgMD09PXQmJih0PW51bGwpLFZ5KCJTaW1wbGVEYiIsIkdFVCIsbi5zdG9yZS5uYW1lLGUsdCksdH0pfSxfSS5wcm90b3R5cGUuZGVsZXRlPWZ1bmN0aW9uKHQpe3JldHVybiBWeSgiU2ltcGxlRGIiLCJERUxFVEUiLHRoaXMuc3RvcmUubmFtZSx0KSxJSSh0aGlzLnN0b3JlLmRlbGV0ZSh0KSl9LF9JLnByb3RvdHlwZS5jb3VudD1mdW5jdGlvbigpe3JldHVybiBWeSgiU2ltcGxlRGIiLCJDT1VOVCIsdGhpcy5zdG9yZS5uYW1lKSxJSSh0aGlzLnN0b3JlLmNvdW50KCkpfSxfSS5wcm90b3R5cGUuTnQ9ZnVuY3Rpb24odCxlKXt2YXIgZT10aGlzLmN1cnNvcih0aGlzLm9wdGlvbnModCxlKSksbj1bXTtyZXR1cm4gdGhpcy54dChlLGZ1bmN0aW9uKHQsZSl7bi5wdXNoKGUpfSkubmV4dChmdW5jdGlvbigpe3JldHVybiBufSl9LF9JLnByb3RvdHlwZS5GdD1mdW5jdGlvbih0LGUpe1Z5KCJTaW1wbGVEYiIsIkRFTEVURSBBTEwiLHRoaXMuc3RvcmUubmFtZSk7ZT10aGlzLm9wdGlvbnModCxlKTtlLmt0PSExO2U9dGhpcy5jdXJzb3IoZSk7cmV0dXJuIHRoaXMueHQoZSxmdW5jdGlvbih0LGUsbil7cmV0dXJuIG4uZGVsZXRlKCl9KX0sX0kucHJvdG90eXBlLk90PWZ1bmN0aW9uKHQsZSl7ZT9uPXQ6KG49e30sZT10KTt2YXIgbj10aGlzLmN1cnNvcihuKTtyZXR1cm4gdGhpcy54dChuLGUpfSxfSS5wcm90b3R5cGUuJHQ9ZnVuY3Rpb24ocil7dmFyIHQ9dGhpcy5jdXJzb3Ioe30pO3JldHVybiBuZXcgdUkoZnVuY3Rpb24obixlKXt0Lm9uZXJyb3I9ZnVuY3Rpb24odCl7dD1FSSh0LnRhcmdldC5lcnJvcik7ZSh0KX0sdC5vbnN1Y2Nlc3M9ZnVuY3Rpb24odCl7dmFyIGU9dC50YXJnZXQucmVzdWx0O2U/cihlLnByaW1hcnlLZXksZS52YWx1ZSkubmV4dChmdW5jdGlvbih0KXt0P2UuY29udGludWUoKTpuKCl9KTpuKCl9fSl9LF9JLnByb3RvdHlwZS54dD1mdW5jdGlvbih0LGkpe3ZhciBvPVtdO3JldHVybiBuZXcgdUkoZnVuY3Rpb24ocixlKXt0Lm9uZXJyb3I9ZnVuY3Rpb24odCl7ZSh0LnRhcmdldC5lcnJvcil9LHQub25zdWNjZXNzPWZ1bmN0aW9uKHQpe3ZhciBlLG49dC50YXJnZXQucmVzdWx0O24/KGU9bmV3IGxJKG4pLCh0PWkobi5wcmltYXJ5S2V5LG4udmFsdWUsZSkpaW5zdGFuY2VvZiB1SSYmKHQ9dC5jYXRjaChmdW5jdGlvbih0KXtyZXR1cm4gZS5kb25lKCksdUkucmVqZWN0KHQpfSksby5wdXNoKHQpKSxlLmlzRG9uZT9yKCk6bnVsbD09PWUuRHQ/bi5jb250aW51ZSgpOm4uY29udGludWUoZS5EdCkpOnIoKX19KS5uZXh0KGZ1bmN0aW9uKCl7cmV0dXJuIHVJLndhaXRGb3Iobyl9KX0sX0kucHJvdG90eXBlLm9wdGlvbnM9ZnVuY3Rpb24odCxlKXt2YXIgbjtyZXR1cm4gdm9pZCAwIT09dCYmKCJzdHJpbmciPT10eXBlb2YgdD9uPXQ6ZT10KSx7aW5kZXg6bixyYW5nZTplfX0sX0kucHJvdG90eXBlLmN1cnNvcj1mdW5jdGlvbih0KXt2YXIgZT0ibmV4dCI7aWYodC5yZXZlcnNlJiYoZT0icHJldiIpLHQuaW5kZXgpe3ZhciBuPXRoaXMuc3RvcmUuaW5kZXgodC5pbmRleCk7cmV0dXJuIHQua3Q/bi5vcGVuS2V5Q3Vyc29yKHQucmFuZ2UsZSk6bi5vcGVuQ3Vyc29yKHQucmFuZ2UsZSl9cmV0dXJuIHRoaXMuc3RvcmUub3BlbkN1cnNvcih0LnJhbmdlLGUpfSxfSSk7ZnVuY3Rpb24gX0kodCl7dGhpcy5zdG9yZT10fWZ1bmN0aW9uIElJKHQpe3JldHVybiBuZXcgdUkoZnVuY3Rpb24oZSxuKXt0Lm9uc3VjY2Vzcz1mdW5jdGlvbih0KXt0PXQudGFyZ2V0LnJlc3VsdDtlKHQpfSx0Lm9uZXJyb3I9ZnVuY3Rpb24odCl7dD1FSSh0LnRhcmdldC5lcnJvcik7bih0KX19KX12YXIgVEk9ITE7ZnVuY3Rpb24gRUkodCl7dmFyIGU9aEkuX3QocG8oKSk7aWYoMTIuMjw9ZSYmZTwxMyl7ZT0iQW4gaW50ZXJuYWwgZXJyb3Igd2FzIGVuY291bnRlcmVkIGluIHRoZSBJbmRleGVkIERhdGFiYXNlIHNlcnZlciI7aWYoMDw9dC5tZXNzYWdlLmluZGV4T2YoZSkpe3ZhciBuPW5ldyBGeSgiaW50ZXJuYWwiLCJJT1NfSU5ERVhFRERCX0JVRzE6IEluZGV4ZWREYiBoYXMgdGhyb3duICciK2UrIicuIFRoaXMgaXMgbGlrZWx5IGR1ZSB0byBhbiB1bmF2b2lkYWJsZSBidWcgaW4gaU9TLiBTZWUgaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xLzU2NDk2Mjk2LzExMDkxNSBmb3IgZGV0YWlscyBhbmQgYSBwb3RlbnRpYWwgd29ya2Fyb3VuZC4iKTtyZXR1cm4gVEl8fChUST0hMCxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dGhyb3cgbn0sMCkpLG59fXJldHVybiB0fXZhciBTSSxDST0oWGkoTkksU0k9R2EpLE5JKTtmdW5jdGlvbiBOSSh0LGUpe3ZhciBuPXRoaXM7cmV0dXJuKG49U0kuY2FsbCh0aGlzKXx8dGhpcykuTXQ9dCxuLmN1cnJlbnRTZXF1ZW5jZU51bWJlcj1lLG59ZnVuY3Rpb24gQUkodCxlKXtyZXR1cm4gaEkuSXQodC5NdCxlKX12YXIga0k9KExJLnByb3RvdHlwZS5hcHBseVRvUmVtb3RlRG9jdW1lbnQ9ZnVuY3Rpb24odCxlKXtmb3IodmFyIG4scixpLG8scyxhLHU9ZS5tdXRhdGlvblJlc3VsdHMsYz0wO2M8dGhpcy5tdXRhdGlvbnMubGVuZ3RoO2MrKyl7dmFyIGg9dGhpcy5tdXRhdGlvbnNbY107aC5rZXkuaXNFcXVhbCh0LmtleSkmJihuPWgscj10LGk9dVtjXSxoPWE9cz1vPXZvaWQgMCxuIGluc3RhbmNlb2YgeXc/KHM9cixhPWksaD0obz1uKS52YWx1ZS5jbG9uZSgpLG89SXcoby5maWVsZFRyYW5zZm9ybXMscyxhLnRyYW5zZm9ybVJlc3VsdHMpLGguc2V0QWxsKG8pLHMuY29udmVydFRvRm91bmREb2N1bWVudChhLnZlcnNpb24saCkuc2V0SGFzQ29tbWl0dGVkTXV0YXRpb25zKCkpOm4gaW5zdGFuY2VvZiBtdz8obz1yLHM9aSxsdygoYT1uKS5wcmVjb25kaXRpb24sbyk/KGg9SXcoYS5maWVsZFRyYW5zZm9ybXMsbyxzLnRyYW5zZm9ybVJlc3VsdHMpLChuPW8uZGF0YSkuc2V0QWxsKF93KGEpKSxuLnNldEFsbChoKSxvLmNvbnZlcnRUb0ZvdW5kRG9jdW1lbnQocy52ZXJzaW9uLG4pLnNldEhhc0NvbW1pdHRlZE11dGF0aW9ucygpKTpvLmNvbnZlcnRUb1Vua25vd25Eb2N1bWVudChzLnZlcnNpb24pKTpyLmNvbnZlcnRUb05vRG9jdW1lbnQoaS52ZXJzaW9uKS5zZXRIYXNDb21taXR0ZWRNdXRhdGlvbnMoKSl9fSxMSS5wcm90b3R5cGUuYXBwbHlUb0xvY2FsVmlldz1mdW5jdGlvbih0KXtmb3IodmFyIGU9MCxuPXRoaXMuYmFzZU11dGF0aW9ucztlPG4ubGVuZ3RoO2UrKykocj1uW2VdKS5rZXkuaXNFcXVhbCh0LmtleSkmJmZ3KHIsdCx0aGlzLmxvY2FsV3JpdGVUaW1lKTtmb3IodmFyIHIsaT0wLG89dGhpcy5tdXRhdGlvbnM7aTxvLmxlbmd0aDtpKyspKHI9b1tpXSkua2V5LmlzRXF1YWwodC5rZXkpJiZmdyhyLHQsdGhpcy5sb2NhbFdyaXRlVGltZSl9LExJLnByb3RvdHlwZS5hcHBseVRvTG9jYWxEb2N1bWVudFNldD1mdW5jdGlvbihuKXt2YXIgcj10aGlzO3RoaXMubXV0YXRpb25zLmZvckVhY2goZnVuY3Rpb24odCl7dmFyIGU9bi5nZXQodC5rZXkpLHQ9ZTtyLmFwcGx5VG9Mb2NhbFZpZXcodCksZS5pc1ZhbGlkRG9jdW1lbnQoKXx8dC5jb252ZXJ0VG9Ob0RvY3VtZW50KFp5Lm1pbigpKX0pfSxMSS5wcm90b3R5cGUua2V5cz1mdW5jdGlvbigpe3JldHVybiB0aGlzLm11dGF0aW9ucy5yZWR1Y2UoZnVuY3Rpb24odCxlKXtyZXR1cm4gdC5hZGQoZS5rZXkpfSxZdygpKX0sTEkucHJvdG90eXBlLmlzRXF1YWw9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuYmF0Y2hJZD09PXQuYmF0Y2hJZCYmWHkodGhpcy5tdXRhdGlvbnMsdC5tdXRhdGlvbnMscHcpJiZYeSh0aGlzLmJhc2VNdXRhdGlvbnMsdC5iYXNlTXV0YXRpb25zLHB3KX0sTEkpLFJJPSh4SS5mcm9tPWZ1bmN0aW9uKHQsZSxuKXtHeSh0Lm11dGF0aW9ucy5sZW5ndGg9PT1uLmxlbmd0aCk7Zm9yKHZhciByPXp3LGk9dC5tdXRhdGlvbnMsbz0wO288aS5sZW5ndGg7bysrKXI9ci5pbnNlcnQoaVtvXS5rZXksbltvXS52ZXJzaW9uKTtyZXR1cm4gbmV3IHhJKHQsZSxuLHIpfSx4SSksUEk9KERJLnByb3RvdHlwZS53aXRoU2VxdWVuY2VOdW1iZXI9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBESSh0aGlzLnRhcmdldCx0aGlzLnRhcmdldElkLHRoaXMucHVycG9zZSx0LHRoaXMuc25hcHNob3RWZXJzaW9uLHRoaXMubGFzdExpbWJvRnJlZVNuYXBzaG90VmVyc2lvbix0aGlzLnJlc3VtZVRva2VuKX0sREkucHJvdG90eXBlLndpdGhSZXN1bWVUb2tlbj1mdW5jdGlvbih0LGUpe3JldHVybiBuZXcgREkodGhpcy50YXJnZXQsdGhpcy50YXJnZXRJZCx0aGlzLnB1cnBvc2UsdGhpcy5zZXF1ZW5jZU51bWJlcixlLHRoaXMubGFzdExpbWJvRnJlZVNuYXBzaG90VmVyc2lvbix0KX0sREkucHJvdG90eXBlLndpdGhMYXN0TGltYm9GcmVlU25hcHNob3RWZXJzaW9uPWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgREkodGhpcy50YXJnZXQsdGhpcy50YXJnZXRJZCx0aGlzLnB1cnBvc2UsdGhpcy5zZXF1ZW5jZU51bWJlcix0aGlzLnNuYXBzaG90VmVyc2lvbix0LHRoaXMucmVzdW1lVG9rZW4pfSxESSksT0k9ZnVuY3Rpb24odCl7dGhpcy5MdD10fTtmdW5jdGlvbiBESSh0LGUsbixyLGksbyxzKXt2b2lkIDA9PT1pJiYoaT1aeS5taW4oKSksdm9pZCAwPT09byYmKG89WnkubWluKCkpLHZvaWQgMD09PXMmJihzPWxtLkVNUFRZX0JZVEVfU1RSSU5HKSx0aGlzLnRhcmdldD10LHRoaXMudGFyZ2V0SWQ9ZSx0aGlzLnB1cnBvc2U9bix0aGlzLnNlcXVlbmNlTnVtYmVyPXIsdGhpcy5zbmFwc2hvdFZlcnNpb249aSx0aGlzLmxhc3RMaW1ib0ZyZWVTbmFwc2hvdFZlcnNpb249byx0aGlzLnJlc3VtZVRva2VuPXN9ZnVuY3Rpb24geEkodCxlLG4scil7dGhpcy5iYXRjaD10LHRoaXMuY29tbWl0VmVyc2lvbj1lLHRoaXMubXV0YXRpb25SZXN1bHRzPW4sdGhpcy5kb2NWZXJzaW9ucz1yfWZ1bmN0aW9uIExJKHQsZSxuLHIpe3RoaXMuYmF0Y2hJZD10LHRoaXMubG9jYWxXcml0ZVRpbWU9ZSx0aGlzLmJhc2VNdXRhdGlvbnM9bix0aGlzLm11dGF0aW9ucz1yfWZ1bmN0aW9uIE1JKHQsZSl7aWYoZS5kb2N1bWVudClyZXR1cm4gU18odC5MdCxlLmRvY3VtZW50LCEhZS5oYXNDb21taXR0ZWRNdXRhdGlvbnMpO2lmKGUubm9Eb2N1bWVudCl7dmFyIG49Q20uZnJvbVNlZ21lbnRzKGUubm9Eb2N1bWVudC5wYXRoKSxyPVZJKGUubm9Eb2N1bWVudC5yZWFkVGltZSksbj1CbS5uZXdOb0RvY3VtZW50KG4scik7cmV0dXJuIGUuaGFzQ29tbWl0dGVkTXV0YXRpb25zP24uc2V0SGFzQ29tbWl0dGVkTXV0YXRpb25zKCk6bn1pZihlLnVua25vd25Eb2N1bWVudCl7bj1DbS5mcm9tU2VnbWVudHMoZS51bmtub3duRG9jdW1lbnQucGF0aCkscj1WSShlLnVua25vd25Eb2N1bWVudC52ZXJzaW9uKTtyZXR1cm4gQm0ubmV3VW5rbm93bkRvY3VtZW50KG4scil9cmV0dXJuIEh5KCl9ZnVuY3Rpb24gRkkodCxlLG4pe3ZhciByPVVJKG4pLG49ZS5rZXkucGF0aC5wb3BMYXN0KCkudG9BcnJheSgpO2lmKGUuaXNGb3VuZERvY3VtZW50KCkpe3ZhciBpPXtuYW1lOm1fKG89dC5MdCwocz1lKS5rZXkpLGZpZWxkczpzLmRhdGEudG9Qcm90bygpLm1hcFZhbHVlLmZpZWxkcyx1cGRhdGVUaW1lOnBfKG8scy52ZXJzaW9uLnRvVGltZXN0YW1wKCkpfSxvPWUuaGFzQ29tbWl0dGVkTXV0YXRpb25zO3JldHVybiBuZXcgWV8obnVsbCxudWxsLGksbyxyLG4pfWlmKGUuaXNOb0RvY3VtZW50KCkpe3ZhciBzPWUua2V5LnBhdGgudG9BcnJheSgpLGk9cUkoZS52ZXJzaW9uKSxvPWUuaGFzQ29tbWl0dGVkTXV0YXRpb25zO3JldHVybiBuZXcgWV8obnVsbCxuZXcgel8ocyxpKSxudWxsLG8scixuKX1pZihlLmlzVW5rbm93bkRvY3VtZW50KCkpe289ZS5rZXkucGF0aC50b0FycmF5KCksZT1xSShlLnZlcnNpb24pO3JldHVybiBuZXcgWV8obmV3IFFfKG8sZSksbnVsbCxudWxsLCEwLHIsbil9cmV0dXJuIEh5KCl9ZnVuY3Rpb24gVUkodCl7dD10LnRvVGltZXN0YW1wKCk7cmV0dXJuW3Quc2Vjb25kcyx0Lm5hbm9zZWNvbmRzXX1mdW5jdGlvbiBqSSh0KXt0PW5ldyAkeSh0WzBdLHRbMV0pO3JldHVybiBaeS5mcm9tVGltZXN0YW1wKHQpfWZ1bmN0aW9uIHFJKHQpe3Q9dC50b1RpbWVzdGFtcCgpO3JldHVybiBuZXcgQl8odC5zZWNvbmRzLHQubmFub3NlY29uZHMpfWZ1bmN0aW9uIFZJKHQpe3Q9bmV3ICR5KHQuc2Vjb25kcyx0Lm5hbm9zZWNvbmRzKTtyZXR1cm4gWnkuZnJvbVRpbWVzdGFtcCh0KX1mdW5jdGlvbiBCSShlLHQpe2Zvcih2YXIgbj0odC5iYXNlTXV0YXRpb25zfHxbXSkubWFwKGZ1bmN0aW9uKHQpe3JldHVybiBOXyhlLkx0LHQpfSkscj0wO3I8dC5tdXRhdGlvbnMubGVuZ3RoLTE7KytyKXt2YXIgaSxvPXQubXV0YXRpb25zW3JdO3IrMTx0Lm11dGF0aW9ucy5sZW5ndGgmJnZvaWQgMCE9PXQubXV0YXRpb25zW3IrMV0udHJhbnNmb3JtJiYoaT10Lm11dGF0aW9uc1tyKzFdLG8udXBkYXRlVHJhbnNmb3Jtcz1pLnRyYW5zZm9ybS5maWVsZFRyYW5zZm9ybXMsdC5tdXRhdGlvbnMuc3BsaWNlKHIrMSwxKSwrK3IpfXZhciBzPXQubXV0YXRpb25zLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gTl8oZS5MdCx0KX0pLGE9JHkuZnJvbU1pbGxpcyh0LmxvY2FsV3JpdGVUaW1lTXMpO3JldHVybiBuZXcga0kodC5iYXRjaElkLGEsbixzKX1mdW5jdGlvbiBLSSh0KXt2YXIgZT1WSSh0LnJlYWRUaW1lKSxuPXZvaWQgMCE9PXQubGFzdExpbWJvRnJlZVNuYXBzaG90VmVyc2lvbj9WSSh0Lmxhc3RMaW1ib0ZyZWVTbmFwc2hvdFZlcnNpb24pOlp5Lm1pbigpLHI9dm9pZCAwIT09dC5xdWVyeS5kb2N1bWVudHM/KEd5KDE9PT0ocj10LnF1ZXJ5KS5kb2N1bWVudHMubGVuZ3RoKSx4YihOYihfXyhyLmRvY3VtZW50c1swXSkpKSk6eGIoUl8odC5xdWVyeSkpO3JldHVybiBuZXcgUEkocix0LnRhcmdldElkLDAsdC5sYXN0TGlzdGVuU2VxdWVuY2VOdW1iZXIsZSxuLGxtLmZyb21CYXNlNjRTdHJpbmcodC5yZXN1bWVUb2tlbikpfWZ1bmN0aW9uIFdJKHQsZSl7dmFyIG49cUkoZS5zbmFwc2hvdFZlcnNpb24pLHI9cUkoZS5sYXN0TGltYm9GcmVlU25hcHNob3RWZXJzaW9uKSxpPShRbShlLnRhcmdldCk/QV86a18pKHQuTHQsZS50YXJnZXQpLHQ9ZS5yZXN1bWVUb2tlbi50b0Jhc2U2NCgpO3JldHVybiBuZXcgSl8oZS50YXJnZXRJZCxHbShlLnRhcmdldCksbix0LGUuc2VxdWVuY2VOdW1iZXIscixpKX1mdW5jdGlvbiBISSh0KXt2YXIgZT1SXyh7cGFyZW50OnQucGFyZW50LHN0cnVjdHVyZWRRdWVyeTp0LnN0cnVjdHVyZWRRdWVyeX0pO3JldHVybiJMQVNUIj09PXQubGltaXRUeXBlP0xiKGUsZS5saW1pdCwiTCIpOmV9dmFyIEdJPSh6SS5wcm90b3R5cGUuZ2V0QnVuZGxlTWV0YWRhdGE9ZnVuY3Rpb24odCxlKXtyZXR1cm4gUUkodCkuZ2V0KGUpLm5leHQoZnVuY3Rpb24odCl7aWYodClyZXR1cm57aWQ6KHQ9dCkuYnVuZGxlSWQsY3JlYXRlVGltZTpWSSh0LmNyZWF0ZVRpbWUpLHZlcnNpb246dC52ZXJzaW9ufX0pfSx6SS5wcm90b3R5cGUuc2F2ZUJ1bmRsZU1ldGFkYXRhPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIFFJKHQpLnB1dCh7YnVuZGxlSWQ6KGU9ZSkuaWQsY3JlYXRlVGltZTpxSSh2XyhlLmNyZWF0ZVRpbWUpKSx2ZXJzaW9uOmUudmVyc2lvbn0pfSx6SS5wcm90b3R5cGUuZ2V0TmFtZWRRdWVyeT1mdW5jdGlvbih0LGUpe3JldHVybiBZSSh0KS5nZXQoZSkubmV4dChmdW5jdGlvbih0KXtpZih0KXJldHVybntuYW1lOih0PXQpLm5hbWUscXVlcnk6SEkodC5idW5kbGVkUXVlcnkpLHJlYWRUaW1lOlZJKHQucmVhZFRpbWUpfX0pfSx6SS5wcm90b3R5cGUuc2F2ZU5hbWVkUXVlcnk9ZnVuY3Rpb24odCxlKXtyZXR1cm4gWUkodCkucHV0KHtuYW1lOihlPWUpLm5hbWUscmVhZFRpbWU6cUkodl8oZS5yZWFkVGltZSkpLGJ1bmRsZWRRdWVyeTplLmJ1bmRsZWRRdWVyeX0pfSx6SSk7ZnVuY3Rpb24gekkoKXt9ZnVuY3Rpb24gUUkodCl7cmV0dXJuIEFJKHQsbkkuc3RvcmUpfWZ1bmN0aW9uIFlJKHQpe3JldHVybiBBSSh0LHJJLnN0b3JlKX12YXIgWEk9KGVULnByb3RvdHlwZS5hZGRUb0NvbGxlY3Rpb25QYXJlbnRJbmRleD1mdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLkJ0LmFkZChlKSx1SS5yZXNvbHZlKCl9LGVULnByb3RvdHlwZS5nZXRDb2xsZWN0aW9uUGFyZW50cz1mdW5jdGlvbih0LGUpe3JldHVybiB1SS5yZXNvbHZlKHRoaXMuQnQuZ2V0RW50cmllcyhlKSl9LGVUKSxKST0odFQucHJvdG90eXBlLmFkZD1mdW5jdGlvbih0KXt2YXIgZT10Lmxhc3RTZWdtZW50KCksbj10LnBvcExhc3QoKSxyPXRoaXMuaW5kZXhbZV18fG5ldyBWdyhhbS5jb21wYXJhdG9yKSx0PSFyLmhhcyhuKTtyZXR1cm4gdGhpcy5pbmRleFtlXT1yLmFkZChuKSx0fSx0VC5wcm90b3R5cGUuaGFzPWZ1bmN0aW9uKHQpe3ZhciBlPXQubGFzdFNlZ21lbnQoKSx0PXQucG9wTGFzdCgpLGU9dGhpcy5pbmRleFtlXTtyZXR1cm4gZSYmZS5oYXModCl9LHRULnByb3RvdHlwZS5nZXRFbnRyaWVzPWZ1bmN0aW9uKHQpe3JldHVybih0aGlzLmluZGV4W3RdfHxuZXcgVncoYW0uY29tcGFyYXRvcikpLnRvQXJyYXkoKX0sdFQpLCRJPShaSS5wcm90b3R5cGUuYWRkVG9Db2xsZWN0aW9uUGFyZW50SW5kZXg9ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzO2lmKHRoaXMucXQuaGFzKGUpKXJldHVybiB1SS5yZXNvbHZlKCk7dmFyIHI9ZS5sYXN0U2VnbWVudCgpLGk9ZS5wb3BMYXN0KCk7dC5hZGRPbkNvbW1pdHRlZExpc3RlbmVyKGZ1bmN0aW9uKCl7bi5xdC5hZGQoZSl9KTtpPXtjb2xsZWN0aW9uSWQ6cixwYXJlbnQ6VV8oaSl9O3JldHVybiBuVCh0KS5wdXQoaSl9LFpJLnByb3RvdHlwZS5nZXRDb2xsZWN0aW9uUGFyZW50cz1mdW5jdGlvbih0LGkpe3ZhciBvPVtdLGU9SURCS2V5UmFuZ2UuYm91bmQoW2ksIiJdLFtKeShpKSwiIl0sITEsITApO3JldHVybiBuVCh0KS5OdChlKS5uZXh0KGZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0wLG49dDtlPG4ubGVuZ3RoO2UrKyl7dmFyIHI9bltlXTtpZihyLmNvbGxlY3Rpb25JZCE9PWkpYnJlYWs7by5wdXNoKHFfKHIucGFyZW50KSl9cmV0dXJuIG99KX0sWkkpO2Z1bmN0aW9uIFpJKCl7dGhpcy5xdD1uZXcgSkl9ZnVuY3Rpb24gdFQoKXt0aGlzLmluZGV4PXt9fWZ1bmN0aW9uIGVUKCl7dGhpcy5CdD1uZXcgSkl9ZnVuY3Rpb24gblQodCl7cmV0dXJuIEFJKHQsdEkuc3RvcmUpfXZhciByVD17ZGlkUnVuOiExLHNlcXVlbmNlTnVtYmVyc0NvbGxlY3RlZDowLHRhcmdldHNSZW1vdmVkOjAsZG9jdW1lbnRzUmVtb3ZlZDowfSxpVD0ob1Qud2l0aENhY2hlU2l6ZT1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IG9UKHQsb1QuREVGQVVMVF9DT0xMRUNUSU9OX1BFUkNFTlRJTEUsb1QuREVGQVVMVF9NQVhfU0VRVUVOQ0VfTlVNQkVSU19UT19DT0xMRUNUKX0sb1QpO2Z1bmN0aW9uIG9UKHQsZSxuKXt0aGlzLmNhY2hlU2l6ZUNvbGxlY3Rpb25UaHJlc2hvbGQ9dCx0aGlzLnBlcmNlbnRpbGVUb0NvbGxlY3Q9ZSx0aGlzLm1heGltdW1TZXF1ZW5jZU51bWJlcnNUb0NvbGxlY3Q9bn1mdW5jdGlvbiBzVCh0LGUsbil7dmFyIHI9dC5zdG9yZShXXy5zdG9yZSksaT10LnN0b3JlKEhfLnN0b3JlKSxvPVtdLHQ9SURCS2V5UmFuZ2Uub25seShuLmJhdGNoSWQpLHM9MCx0PXIuT3Qoe3JhbmdlOnR9LGZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gcysrLG4uZGVsZXRlKCl9KTtvLnB1c2godC5uZXh0KGZ1bmN0aW9uKCl7R3koMT09PXMpfSkpO2Zvcih2YXIgYT1bXSx1PTAsYz1uLm11dGF0aW9uczt1PGMubGVuZ3RoO3UrKyl7dmFyIGg9Y1t1XSxsPUhfLmtleShlLGgua2V5LnBhdGgsbi5iYXRjaElkKTtvLnB1c2goaS5kZWxldGUobCkpLGEucHVzaChoLmtleSl9cmV0dXJuIHVJLndhaXRGb3IobykubmV4dChmdW5jdGlvbigpe3JldHVybiBhfSl9ZnVuY3Rpb24gYVQodCl7aWYoIXQpcmV0dXJuIDA7dmFyIGU7aWYodC5kb2N1bWVudCllPXQuZG9jdW1lbnQ7ZWxzZSBpZih0LnVua25vd25Eb2N1bWVudCllPXQudW5rbm93bkRvY3VtZW50O2Vsc2V7aWYoIXQubm9Eb2N1bWVudCl0aHJvdyBIeSgpO2U9dC5ub0RvY3VtZW50fXJldHVybiBKU09OLnN0cmluZ2lmeShlKS5sZW5ndGh9aVQuREVGQVVMVF9DT0xMRUNUSU9OX1BFUkNFTlRJTEU9MTAsaVQuREVGQVVMVF9NQVhfU0VRVUVOQ0VfTlVNQkVSU19UT19DT0xMRUNUPTFlMyxpVC5ERUZBVUxUPW5ldyBpVCg0MTk0MzA0MCxpVC5ERUZBVUxUX0NPTExFQ1RJT05fUEVSQ0VOVElMRSxpVC5ERUZBVUxUX01BWF9TRVFVRU5DRV9OVU1CRVJTX1RPX0NPTExFQ1QpLGlULkRJU0FCTEVEPW5ldyBpVCgtMSwwLDApO3ZhciB1VD0oY1QuS3Q9ZnVuY3Rpb24odCxlLG4scil7cmV0dXJuIEd5KCIiIT09dC51aWQpLG5ldyBjVCh0LmlzQXV0aGVudGljYXRlZCgpP3QudWlkOiIiLGUsbixyKX0sY1QucHJvdG90eXBlLmNoZWNrRW1wdHk9ZnVuY3Rpb24odCl7dmFyIHI9ITAsZT1JREJLZXlSYW5nZS5ib3VuZChbdGhpcy51c2VySWQsTnVtYmVyLk5FR0FUSVZFX0lORklOSVRZXSxbdGhpcy51c2VySWQsTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZXSk7cmV0dXJuIGxUKHQpLk90KHtpbmRleDpXXy51c2VyTXV0YXRpb25zSW5kZXgscmFuZ2U6ZX0sZnVuY3Rpb24odCxlLG4pe3I9ITEsbi5kb25lKCl9KS5uZXh0KGZ1bmN0aW9uKCl7cmV0dXJuIHJ9KX0sY1QucHJvdG90eXBlLmFkZE11dGF0aW9uQmF0Y2g9ZnVuY3Rpb24oZCx2LGcseSl7dmFyIG09dGhpcyxiPWZUKGQpLHc9bFQoZCk7cmV0dXJuIHcuYWRkKHt9KS5uZXh0KGZ1bmN0aW9uKHQpe0d5KCJudW1iZXIiPT10eXBlb2YgdCk7Zm9yKHZhciBlLG4scixpLG8scz1uZXcga0kodCx2LGcseSksYT0oZT1tLlIsbj1tLnVzZXJJZCxpPShyPXMpLmJhc2VNdXRhdGlvbnMubWFwKGZ1bmN0aW9uKHQpe3JldHVybiBDXyhlLkx0LHQpfSksbz1yLm11dGF0aW9ucy5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIENfKGUuTHQsdCl9KSxuZXcgV18obixyLmJhdGNoSWQsci5sb2NhbFdyaXRlVGltZS50b01pbGxpcygpLGksbykpLHU9W10sYz1uZXcgVncoZnVuY3Rpb24odCxlKXtyZXR1cm4gWXkodC5jYW5vbmljYWxTdHJpbmcoKSxlLmNhbm9uaWNhbFN0cmluZygpKX0pLGg9MCxsPXk7aDxsLmxlbmd0aDtoKyspe3ZhciBmPWxbaF0scD1IXy5rZXkobS51c2VySWQsZi5rZXkucGF0aCx0KSxjPWMuYWRkKGYua2V5LnBhdGgucG9wTGFzdCgpKTt1LnB1c2gody5wdXQoYSkpLHUucHVzaChiLnB1dChwLEhfLlBMQUNFSE9MREVSKSl9cmV0dXJuIGMuZm9yRWFjaChmdW5jdGlvbih0KXt1LnB1c2gobS5VdC5hZGRUb0NvbGxlY3Rpb25QYXJlbnRJbmRleChkLHQpKX0pLGQuYWRkT25Db21taXR0ZWRMaXN0ZW5lcihmdW5jdGlvbigpe20uUXRbdF09cy5rZXlzKCl9KSx1SS53YWl0Rm9yKHUpLm5leHQoZnVuY3Rpb24oKXtyZXR1cm4gc30pfSl9LGNULnByb3RvdHlwZS5sb29rdXBNdXRhdGlvbkJhdGNoPWZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcztyZXR1cm4gbFQodCkuZ2V0KGUpLm5leHQoZnVuY3Rpb24odCl7cmV0dXJuIHQ/KEd5KHQudXNlcklkPT09bi51c2VySWQpLEJJKG4uUix0KSk6bnVsbH0pfSxjVC5wcm90b3R5cGUuanQ9ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzO3JldHVybiB0aGlzLlF0W2VdP3VJLnJlc29sdmUodGhpcy5RdFtlXSk6dGhpcy5sb29rdXBNdXRhdGlvbkJhdGNoKHQsZSkubmV4dChmdW5jdGlvbih0KXtpZih0KXt0PXQua2V5cygpO3JldHVybiBuLlF0W2VdPXR9cmV0dXJuIG51bGx9KX0sY1QucHJvdG90eXBlLmdldE5leHRNdXRhdGlvbkJhdGNoQWZ0ZXJCYXRjaElkPWZ1bmN0aW9uKHQsZSl7dmFyIHI9dGhpcyxpPWUrMSxlPUlEQktleVJhbmdlLmxvd2VyQm91bmQoW3RoaXMudXNlcklkLGldKSxvPW51bGw7cmV0dXJuIGxUKHQpLk90KHtpbmRleDpXXy51c2VyTXV0YXRpb25zSW5kZXgscmFuZ2U6ZX0sZnVuY3Rpb24odCxlLG4pe2UudXNlcklkPT09ci51c2VySWQmJihHeShlLmJhdGNoSWQ+PWkpLG89Qkkoci5SLGUpKSxuLmRvbmUoKX0pLm5leHQoZnVuY3Rpb24oKXtyZXR1cm4gb30pfSxjVC5wcm90b3R5cGUuZ2V0SGlnaGVzdFVuYWNrbm93bGVkZ2VkQmF0Y2hJZD1mdW5jdGlvbih0KXt2YXIgZT1JREJLZXlSYW5nZS51cHBlckJvdW5kKFt0aGlzLnVzZXJJZCxOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFldKSxyPS0xO3JldHVybiBsVCh0KS5PdCh7aW5kZXg6V18udXNlck11dGF0aW9uc0luZGV4LHJhbmdlOmUscmV2ZXJzZTohMH0sZnVuY3Rpb24odCxlLG4pe3I9ZS5iYXRjaElkLG4uZG9uZSgpfSkubmV4dChmdW5jdGlvbigpe3JldHVybiByfSl9LGNULnByb3RvdHlwZS5nZXRBbGxNdXRhdGlvbkJhdGNoZXM9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcyxuPUlEQktleVJhbmdlLmJvdW5kKFt0aGlzLnVzZXJJZCwtMV0sW3RoaXMudXNlcklkLE51bWJlci5QT1NJVElWRV9JTkZJTklUWV0pO3JldHVybiBsVCh0KS5OdChXXy51c2VyTXV0YXRpb25zSW5kZXgsbikubmV4dChmdW5jdGlvbih0KXtyZXR1cm4gdC5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIEJJKGUuUix0KX0pfSl9LGNULnByb3RvdHlwZS5nZXRBbGxNdXRhdGlvbkJhdGNoZXNBZmZlY3RpbmdEb2N1bWVudEtleT1mdW5jdGlvbihvLHMpe3ZhciBhPXRoaXMsdD1IXy5wcmVmaXhGb3JQYXRoKHRoaXMudXNlcklkLHMucGF0aCksdD1JREJLZXlSYW5nZS5sb3dlckJvdW5kKHQpLHU9W107cmV0dXJuIGZUKG8pLk90KHtyYW5nZTp0fSxmdW5jdGlvbih0LGUsbil7dmFyIHI9dFswXSxpPXRbMV0sdD10WzJdLGk9cV8oaSk7aWYocj09PWEudXNlcklkJiZzLnBhdGguaXNFcXVhbChpKSlyZXR1cm4gbFQobykuZ2V0KHQpLm5leHQoZnVuY3Rpb24odCl7aWYoIXQpdGhyb3cgSHkoKTtHeSh0LnVzZXJJZD09PWEudXNlcklkKSx1LnB1c2goQkkoYS5SLHQpKX0pO24uZG9uZSgpfSkubmV4dChmdW5jdGlvbigpe3JldHVybiB1fSl9LGNULnByb3RvdHlwZS5nZXRBbGxNdXRhdGlvbkJhdGNoZXNBZmZlY3RpbmdEb2N1bWVudEtleXM9ZnVuY3Rpb24oZSx0KXt2YXIgcz10aGlzLGE9bmV3IFZ3KFl5KSxuPVtdO3JldHVybiB0LmZvckVhY2goZnVuY3Rpb24obyl7dmFyIHQ9SF8ucHJlZml4Rm9yUGF0aChzLnVzZXJJZCxvLnBhdGgpLHQ9SURCS2V5UmFuZ2UubG93ZXJCb3VuZCh0KSx0PWZUKGUpLk90KHtyYW5nZTp0fSxmdW5jdGlvbih0LGUsbil7dmFyIHI9dFswXSxpPXRbMV0sdD10WzJdLGk9cV8oaSk7cj09PXMudXNlcklkJiZvLnBhdGguaXNFcXVhbChpKT9hPWEuYWRkKHQpOm4uZG9uZSgpfSk7bi5wdXNoKHQpfSksdUkud2FpdEZvcihuKS5uZXh0KGZ1bmN0aW9uKCl7cmV0dXJuIHMuV3QoZSxhKX0pfSxjVC5wcm90b3R5cGUuZ2V0QWxsTXV0YXRpb25CYXRjaGVzQWZmZWN0aW5nUXVlcnk9ZnVuY3Rpb24odCxlKXt2YXIgbz10aGlzLHM9ZS5wYXRoLGE9cy5sZW5ndGgrMSxlPUhfLnByZWZpeEZvclBhdGgodGhpcy51c2VySWQscyksZT1JREJLZXlSYW5nZS5sb3dlckJvdW5kKGUpLHU9bmV3IFZ3KFl5KTtyZXR1cm4gZlQodCkuT3Qoe3JhbmdlOmV9LGZ1bmN0aW9uKHQsZSxuKXt2YXIgcj10WzBdLGk9dFsxXSx0PXRbMl0saT1xXyhpKTtyPT09by51c2VySWQmJnMuaXNQcmVmaXhPZihpKT9pLmxlbmd0aD09PWEmJih1PXUuYWRkKHQpKTpuLmRvbmUoKX0pLm5leHQoZnVuY3Rpb24oKXtyZXR1cm4gby5XdCh0LHUpfSl9LGNULnByb3RvdHlwZS5XdD1mdW5jdGlvbihlLHQpe3ZhciBuPXRoaXMscj1bXSxpPVtdO3JldHVybiB0LmZvckVhY2goZnVuY3Rpb24odCl7aS5wdXNoKGxUKGUpLmdldCh0KS5uZXh0KGZ1bmN0aW9uKHQpe2lmKG51bGw9PT10KXRocm93IEh5KCk7R3kodC51c2VySWQ9PT1uLnVzZXJJZCksci5wdXNoKEJJKG4uUix0KSl9KSl9KSx1SS53YWl0Rm9yKGkpLm5leHQoZnVuY3Rpb24oKXtyZXR1cm4gcn0pfSxjVC5wcm90b3R5cGUucmVtb3ZlTXV0YXRpb25CYXRjaD1mdW5jdGlvbihlLG4pe3ZhciByPXRoaXM7cmV0dXJuIHNUKGUuTXQsdGhpcy51c2VySWQsbikubmV4dChmdW5jdGlvbih0KXtyZXR1cm4gZS5hZGRPbkNvbW1pdHRlZExpc3RlbmVyKGZ1bmN0aW9uKCl7ci5HdChuLmJhdGNoSWQpfSksdUkuZm9yRWFjaCh0LGZ1bmN0aW9uKHQpe3JldHVybiByLnJlZmVyZW5jZURlbGVnYXRlLm1hcmtQb3RlbnRpYWxseU9ycGhhbmVkKGUsdCl9KX0pfSxjVC5wcm90b3R5cGUuR3Q9ZnVuY3Rpb24odCl7ZGVsZXRlIHRoaXMuUXRbdF19LGNULnByb3RvdHlwZS5wZXJmb3JtQ29uc2lzdGVuY3lDaGVjaz1mdW5jdGlvbihlKXt2YXIgaT10aGlzO3JldHVybiB0aGlzLmNoZWNrRW1wdHkoZSkubmV4dChmdW5jdGlvbih0KXtpZighdClyZXR1cm4gdUkucmVzb2x2ZSgpO3ZhciB0PUlEQktleVJhbmdlLmxvd2VyQm91bmQoSF8ucHJlZml4Rm9yVXNlcihpLnVzZXJJZCkpLHI9W107cmV0dXJuIGZUKGUpLk90KHtyYW5nZTp0fSxmdW5jdGlvbih0LGUsbil7dFswXT09PWkudXNlcklkPyh0PXFfKHRbMV0pLHIucHVzaCh0KSk6bi5kb25lKCl9KS5uZXh0KGZ1bmN0aW9uKCl7R3koMD09PXIubGVuZ3RoKX0pfSl9LGNULnByb3RvdHlwZS5jb250YWluc0tleT1mdW5jdGlvbih0LGUpe3JldHVybiBoVCh0LHRoaXMudXNlcklkLGUpfSxjVC5wcm90b3R5cGUuenQ9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztyZXR1cm4gcFQodCkuZ2V0KHRoaXMudXNlcklkKS5uZXh0KGZ1bmN0aW9uKHQpe3JldHVybiB0fHxuZXcgS18oZS51c2VySWQsLTEsIiIpfSl9LGNUKTtmdW5jdGlvbiBjVCh0LGUsbixyKXt0aGlzLnVzZXJJZD10LHRoaXMuUj1lLHRoaXMuVXQ9bix0aGlzLnJlZmVyZW5jZURlbGVnYXRlPXIsdGhpcy5RdD17fX1mdW5jdGlvbiBoVCh0LG8sZSl7dmFyIGU9SF8ucHJlZml4Rm9yUGF0aChvLGUucGF0aCkscz1lWzFdLGU9SURCS2V5UmFuZ2UubG93ZXJCb3VuZChlKSxhPSExO3JldHVybiBmVCh0KS5PdCh7cmFuZ2U6ZSxrdDohMH0sZnVuY3Rpb24odCxlLG4pe3ZhciByPXRbMF0saT10WzFdO3RbMl0scj09PW8mJmk9PT1zJiYoYT0hMCksbi5kb25lKCl9KS5uZXh0KGZ1bmN0aW9uKCl7cmV0dXJuIGF9KX1mdW5jdGlvbiBsVCh0KXtyZXR1cm4gQUkodCxXXy5zdG9yZSl9ZnVuY3Rpb24gZlQodCl7cmV0dXJuIEFJKHQsSF8uc3RvcmUpfWZ1bmN0aW9uIHBUKHQpe3JldHVybiBBSSh0LEtfLnN0b3JlKX12YXIgZFQ9KHlULnByb3RvdHlwZS5uZXh0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSHQrPTIsdGhpcy5IdH0seVQuSnQ9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IHlUKDApfSx5VC5ZdD1mdW5jdGlvbigpe3JldHVybiBuZXcgeVQoLTEpfSx5VCksdlQ9KGdULnByb3RvdHlwZS5hbGxvY2F0ZVRhcmdldElkPWZ1bmN0aW9uKG4pe3ZhciByPXRoaXM7cmV0dXJuIHRoaXMuWHQobikubmV4dChmdW5jdGlvbih0KXt2YXIgZT1uZXcgZFQodC5oaWdoZXN0VGFyZ2V0SWQpO3JldHVybiB0LmhpZ2hlc3RUYXJnZXRJZD1lLm5leHQoKSxyLlp0KG4sdCkubmV4dChmdW5jdGlvbigpe3JldHVybiB0LmhpZ2hlc3RUYXJnZXRJZH0pfSl9LGdULnByb3RvdHlwZS5nZXRMYXN0UmVtb3RlU25hcHNob3RWZXJzaW9uPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLlh0KHQpLm5leHQoZnVuY3Rpb24odCl7cmV0dXJuIFp5LmZyb21UaW1lc3RhbXAobmV3ICR5KHQubGFzdFJlbW90ZVNuYXBzaG90VmVyc2lvbi5zZWNvbmRzLHQubGFzdFJlbW90ZVNuYXBzaG90VmVyc2lvbi5uYW5vc2Vjb25kcykpfSl9LGdULnByb3RvdHlwZS5nZXRIaWdoZXN0U2VxdWVuY2VOdW1iZXI9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuWHQodCkubmV4dChmdW5jdGlvbih0KXtyZXR1cm4gdC5oaWdoZXN0TGlzdGVuU2VxdWVuY2VOdW1iZXJ9KX0sZ1QucHJvdG90eXBlLnNldFRhcmdldHNNZXRhZGF0YT1mdW5jdGlvbihlLG4scil7dmFyIGk9dGhpcztyZXR1cm4gdGhpcy5YdChlKS5uZXh0KGZ1bmN0aW9uKHQpe3JldHVybiB0LmhpZ2hlc3RMaXN0ZW5TZXF1ZW5jZU51bWJlcj1uLHImJih0Lmxhc3RSZW1vdGVTbmFwc2hvdFZlcnNpb249ci50b1RpbWVzdGFtcCgpKSxuPnQuaGlnaGVzdExpc3RlblNlcXVlbmNlTnVtYmVyJiYodC5oaWdoZXN0TGlzdGVuU2VxdWVuY2VOdW1iZXI9biksaS5adChlLHQpfSl9LGdULnByb3RvdHlwZS5hZGRUYXJnZXREYXRhPWZ1bmN0aW9uKGUsbil7dmFyIHI9dGhpcztyZXR1cm4gdGhpcy50ZShlLG4pLm5leHQoZnVuY3Rpb24oKXtyZXR1cm4gci5YdChlKS5uZXh0KGZ1bmN0aW9uKHQpe3JldHVybiB0LnRhcmdldENvdW50Kz0xLHIuZWUobix0KSxyLlp0KGUsdCl9KX0pfSxnVC5wcm90b3R5cGUudXBkYXRlVGFyZ2V0RGF0YT1mdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLnRlKHQsZSl9LGdULnByb3RvdHlwZS5yZW1vdmVUYXJnZXREYXRhPWZ1bmN0aW9uKGUsdCl7dmFyIG49dGhpcztyZXR1cm4gdGhpcy5yZW1vdmVNYXRjaGluZ0tleXNGb3JUYXJnZXRJZChlLHQudGFyZ2V0SWQpLm5leHQoZnVuY3Rpb24oKXtyZXR1cm4gbVQoZSkuZGVsZXRlKHQudGFyZ2V0SWQpfSkubmV4dChmdW5jdGlvbigpe3JldHVybiBuLlh0KGUpfSkubmV4dChmdW5jdGlvbih0KXtyZXR1cm4gR3koMDx0LnRhcmdldENvdW50KSwtLXQudGFyZ2V0Q291bnQsbi5adChlLHQpfSl9LGdULnByb3RvdHlwZS5yZW1vdmVUYXJnZXRzPWZ1bmN0aW9uKG4scixpKXt2YXIgbz10aGlzLHM9MCxhPVtdO3JldHVybiBtVChuKS5PdChmdW5jdGlvbih0LGUpe2U9S0koZSk7ZS5zZXF1ZW5jZU51bWJlcjw9ciYmbnVsbD09PWkuZ2V0KGUudGFyZ2V0SWQpJiYocysrLGEucHVzaChvLnJlbW92ZVRhcmdldERhdGEobixlKSkpfSkubmV4dChmdW5jdGlvbigpe3JldHVybiB1SS53YWl0Rm9yKGEpfSkubmV4dChmdW5jdGlvbigpe3JldHVybiBzfSl9LGdULnByb3RvdHlwZS5mb3JFYWNoVGFyZ2V0PWZ1bmN0aW9uKHQsbil7cmV0dXJuIG1UKHQpLk90KGZ1bmN0aW9uKHQsZSl7ZT1LSShlKTtuKGUpfSl9LGdULnByb3RvdHlwZS5YdD1mdW5jdGlvbih0KXtyZXR1cm4gYlQodCkuZ2V0KFpfLmtleSkubmV4dChmdW5jdGlvbih0KXtyZXR1cm4gR3kobnVsbCE9PXQpLHR9KX0sZ1QucHJvdG90eXBlLlp0PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGJUKHQpLnB1dChaXy5rZXksZSl9LGdULnByb3RvdHlwZS50ZT1mdW5jdGlvbih0LGUpe3JldHVybiBtVCh0KS5wdXQoV0kodGhpcy5SLGUpKX0sZ1QucHJvdG90eXBlLmVlPWZ1bmN0aW9uKHQsZSl7dmFyIG49ITE7cmV0dXJuIHQudGFyZ2V0SWQ+ZS5oaWdoZXN0VGFyZ2V0SWQmJihlLmhpZ2hlc3RUYXJnZXRJZD10LnRhcmdldElkLG49ITApLHQuc2VxdWVuY2VOdW1iZXI+ZS5oaWdoZXN0TGlzdGVuU2VxdWVuY2VOdW1iZXImJihlLmhpZ2hlc3RMaXN0ZW5TZXF1ZW5jZU51bWJlcj10LnNlcXVlbmNlTnVtYmVyLG49ITApLG59LGdULnByb3RvdHlwZS5nZXRUYXJnZXRDb3VudD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5YdCh0KS5uZXh0KGZ1bmN0aW9uKHQpe3JldHVybiB0LnRhcmdldENvdW50fSl9LGdULnByb3RvdHlwZS5nZXRUYXJnZXREYXRhPWZ1bmN0aW9uKHQscil7dmFyIGU9R20ociksZT1JREJLZXlSYW5nZS5ib3VuZChbZSxOdW1iZXIuTkVHQVRJVkVfSU5GSU5JVFldLFtlLE51bWJlci5QT1NJVElWRV9JTkZJTklUWV0pLGk9bnVsbDtyZXR1cm4gbVQodCkuT3Qoe3JhbmdlOmUsaW5kZXg6Sl8ucXVlcnlUYXJnZXRzSW5kZXhOYW1lfSxmdW5jdGlvbih0LGUsbil7ZT1LSShlKTt6bShyLGUudGFyZ2V0KSYmKGk9ZSxuLmRvbmUoKSl9KS5uZXh0KGZ1bmN0aW9uKCl7cmV0dXJuIGl9KX0sZ1QucHJvdG90eXBlLmFkZE1hdGNoaW5nS2V5cz1mdW5jdGlvbihuLHQscil7dmFyIGk9dGhpcyxvPVtdLHM9d1Qobik7cmV0dXJuIHQuZm9yRWFjaChmdW5jdGlvbih0KXt2YXIgZT1VXyh0LnBhdGgpO28ucHVzaChzLnB1dChuZXcgJF8ocixlKSkpLG8ucHVzaChpLnJlZmVyZW5jZURlbGVnYXRlLmFkZFJlZmVyZW5jZShuLHIsdCkpfSksdUkud2FpdEZvcihvKX0sZ1QucHJvdG90eXBlLnJlbW92ZU1hdGNoaW5nS2V5cz1mdW5jdGlvbihuLHQscil7dmFyIGk9dGhpcyxvPXdUKG4pO3JldHVybiB1SS5mb3JFYWNoKHQsZnVuY3Rpb24odCl7dmFyIGU9VV8odC5wYXRoKTtyZXR1cm4gdUkud2FpdEZvcihbby5kZWxldGUoW3IsZV0pLGkucmVmZXJlbmNlRGVsZWdhdGUucmVtb3ZlUmVmZXJlbmNlKG4scix0KV0pfSl9LGdULnByb3RvdHlwZS5yZW1vdmVNYXRjaGluZ0tleXNGb3JUYXJnZXRJZD1mdW5jdGlvbih0LGUpe3Q9d1QodCksZT1JREJLZXlSYW5nZS5ib3VuZChbZV0sW2UrMV0sITEsITApO3JldHVybiB0LmRlbGV0ZShlKX0sZ1QucHJvdG90eXBlLmdldE1hdGNoaW5nS2V5c0ZvclRhcmdldElkPWZ1bmN0aW9uKHQsZSl7dmFyIGU9SURCS2V5UmFuZ2UuYm91bmQoW2VdLFtlKzFdLCExLCEwKSx0PXdUKHQpLHI9WXcoKTtyZXR1cm4gdC5PdCh7cmFuZ2U6ZSxrdDohMH0sZnVuY3Rpb24odCxlLG4pe3Q9cV8odFsxXSksdD1uZXcgQ20odCk7cj1yLmFkZCh0KX0pLm5leHQoZnVuY3Rpb24oKXtyZXR1cm4gcn0pfSxnVC5wcm90b3R5cGUuY29udGFpbnNLZXk9ZnVuY3Rpb24odCxlKXt2YXIgZT1VXyhlLnBhdGgpLGU9SURCS2V5UmFuZ2UuYm91bmQoW2VdLFtKeShlKV0sITEsITApLGk9MDtyZXR1cm4gd1QodCkuT3Qoe2luZGV4OiRfLmRvY3VtZW50VGFyZ2V0c0luZGV4LGt0OiEwLHJhbmdlOmV9LGZ1bmN0aW9uKHQsZSxuKXt2YXIgcj10WzBdO3RbMV0sMCE9PXImJihpKyssbi5kb25lKCkpfSkubmV4dChmdW5jdGlvbigpe3JldHVybiAwPGl9KX0sZ1QucHJvdG90eXBlLmx0PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIG1UKHQpLmdldChlKS5uZXh0KGZ1bmN0aW9uKHQpe3JldHVybiB0P0tJKHQpOm51bGx9KX0sZ1QpO2Z1bmN0aW9uIGdUKHQsZSl7dGhpcy5yZWZlcmVuY2VEZWxlZ2F0ZT10LHRoaXMuUj1lfWZ1bmN0aW9uIHlUKHQpe3RoaXMuSHQ9dH1mdW5jdGlvbiBtVCh0KXtyZXR1cm4gQUkodCxKXy5zdG9yZSl9ZnVuY3Rpb24gYlQodCl7cmV0dXJuIEFJKHQsWl8uc3RvcmUpfWZ1bmN0aW9uIHdUKHQpe3JldHVybiBBSSh0LCRfLnN0b3JlKX1mdW5jdGlvbiBfVChlKXtyZXR1cm4gJGkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7cmV0dXJuIFppKHRoaXMsZnVuY3Rpb24odCl7aWYoZS5jb2RlIT09TXkuRkFJTEVEX1BSRUNPTkRJVElPTnx8ZS5tZXNzYWdlIT09c0kpdGhyb3cgZTtyZXR1cm4gVnkoIkxvY2FsU3RvcmUiLCJVbmV4cGVjdGVkbHkgbG9zdCBwcmltYXJ5IGxlYXNlIiksWzJdfSl9KX1mdW5jdGlvbiBJVCh0LGUpe3ZhciBuPXRbMF0scj10WzFdLHQ9ZVswXSxlPWVbMV0sdD1ZeShuLHQpO3JldHVybiAwPT09dD9ZeShyLGUpOnR9dmFyIFRUPShSVC5wcm90b3R5cGUuaWU9ZnVuY3Rpb24oKXtyZXR1cm4rK3RoaXMuc2V9LFJULnByb3RvdHlwZS5yZT1mdW5jdGlvbih0KXt2YXIgZT1bdCx0aGlzLmllKCldO3RoaXMuYnVmZmVyLnNpemU8dGhpcy5uZT90aGlzLmJ1ZmZlcj10aGlzLmJ1ZmZlci5hZGQoZSk6SVQoZSx0PXRoaXMuYnVmZmVyLmxhc3QoKSk8MCYmKHRoaXMuYnVmZmVyPXRoaXMuYnVmZmVyLmRlbGV0ZSh0KS5hZGQoZSkpfSxPYmplY3QuZGVmaW5lUHJvcGVydHkoUlQucHJvdG90eXBlLCJtYXhWYWx1ZSIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmJ1ZmZlci5sYXN0KClbMF19LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksUlQpLEVUPShrVC5wcm90b3R5cGUuc3RhcnQ9ZnVuY3Rpb24odCl7LTEhPT10aGlzLmdhcmJhZ2VDb2xsZWN0b3IucGFyYW1zLmNhY2hlU2l6ZUNvbGxlY3Rpb25UaHJlc2hvbGQmJnRoaXMudWUodCl9LGtULnByb3RvdHlwZS5zdG9wPWZ1bmN0aW9uKCl7dGhpcy5jZSYmKHRoaXMuY2UuY2FuY2VsKCksdGhpcy5jZT1udWxsKX0sT2JqZWN0LmRlZmluZVByb3BlcnR5KGtULnByb3RvdHlwZSwic3RhcnRlZCIse2dldDpmdW5jdGlvbigpe3JldHVybiBudWxsIT09dGhpcy5jZX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxrVC5wcm90b3R5cGUudWU9ZnVuY3Rpb24obil7dmFyIHQ9dGhpcyxlPXRoaXMub2U/M2U1OjZlNDtWeSgiTHJ1R2FyYmFnZUNvbGxlY3RvciIsIkdhcmJhZ2UgY29sbGVjdGlvbiBzY2hlZHVsZWQgaW4gIitlKyJtcyIpLHRoaXMuY2U9dGhpcy5hc3luY1F1ZXVlLmVucXVldWVBZnRlckRlbGF5KCJscnVfZ2FyYmFnZV9jb2xsZWN0aW9uIixlLGZ1bmN0aW9uKCl7cmV0dXJuICRpKHQsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBlO3JldHVybiBaaSh0aGlzLGZ1bmN0aW9uKHQpe3N3aXRjaCh0LmxhYmVsKXtjYXNlIDA6dGhpcy5jZT1udWxsLHRoaXMub2U9ITAsdC5sYWJlbD0xO2Nhc2UgMTpyZXR1cm4gdC50cnlzLnB1c2goWzEsMywsN10pLFs0LG4uY29sbGVjdEdhcmJhZ2UodGhpcy5nYXJiYWdlQ29sbGVjdG9yKV07Y2FzZSAyOnJldHVybiB0LnNlbnQoKSxbMyw3XTtjYXNlIDM6cmV0dXJuIGJJKGU9dC5zZW50KCkpPyhWeSgiTHJ1R2FyYmFnZUNvbGxlY3RvciIsIklnbm9yaW5nIEluZGV4ZWREQiBlcnJvciBkdXJpbmcgZ2FyYmFnZSBjb2xsZWN0aW9uOiAiLGUpLFszLDZdKTpbMyw0XTtjYXNlIDQ6cmV0dXJuWzQsX1QoZSldO2Nhc2UgNTp0LnNlbnQoKSx0LmxhYmVsPTY7Y2FzZSA2OnJldHVyblszLDddO2Nhc2UgNzpyZXR1cm5bNCx0aGlzLnVlKG4pXTtjYXNlIDg6cmV0dXJuIHQuc2VudCgpLFsyXX19KX0pfSl9LGtUKSxTVD0oQVQucHJvdG90eXBlLmNhbGN1bGF0ZVRhcmdldENvdW50PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMuYWUuaGUodCkubmV4dChmdW5jdGlvbih0KXtyZXR1cm4gTWF0aC5mbG9vcihlLzEwMCp0KX0pfSxBVC5wcm90b3R5cGUubnRoU2VxdWVuY2VOdW1iZXI9ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzO2lmKDA9PT1lKXJldHVybiB1SS5yZXNvbHZlKER5Lm8pO3ZhciByPW5ldyBUVChlKTtyZXR1cm4gdGhpcy5hZS5mb3JFYWNoVGFyZ2V0KHQsZnVuY3Rpb24odCl7cmV0dXJuIHIucmUodC5zZXF1ZW5jZU51bWJlcil9KS5uZXh0KGZ1bmN0aW9uKCl7cmV0dXJuIG4uYWUubGUodCxmdW5jdGlvbih0KXtyZXR1cm4gci5yZSh0KX0pfSkubmV4dChmdW5jdGlvbigpe3JldHVybiByLm1heFZhbHVlfSl9LEFULnByb3RvdHlwZS5yZW1vdmVUYXJnZXRzPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gdGhpcy5hZS5yZW1vdmVUYXJnZXRzKHQsZSxuKX0sQVQucHJvdG90eXBlLnJlbW92ZU9ycGhhbmVkRG9jdW1lbnRzPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMuYWUucmVtb3ZlT3JwaGFuZWREb2N1bWVudHModCxlKX0sQVQucHJvdG90eXBlLmNvbGxlY3Q9ZnVuY3Rpb24oZSxuKXt2YXIgcj10aGlzO3JldHVybi0xPT09dGhpcy5wYXJhbXMuY2FjaGVTaXplQ29sbGVjdGlvblRocmVzaG9sZD8oVnkoIkxydUdhcmJhZ2VDb2xsZWN0b3IiLCJHYXJiYWdlIGNvbGxlY3Rpb24gc2tpcHBlZDsgZGlzYWJsZWQiKSx1SS5yZXNvbHZlKHJUKSk6dGhpcy5nZXRDYWNoZVNpemUoZSkubmV4dChmdW5jdGlvbih0KXtyZXR1cm4gdDxyLnBhcmFtcy5jYWNoZVNpemVDb2xsZWN0aW9uVGhyZXNob2xkPyhWeSgiTHJ1R2FyYmFnZUNvbGxlY3RvciIsIkdhcmJhZ2UgY29sbGVjdGlvbiBza2lwcGVkOyBDYWNoZSBzaXplICIrdCsiIGlzIGxvd2VyIHRoYW4gdGhyZXNob2xkICIrci5wYXJhbXMuY2FjaGVTaXplQ29sbGVjdGlvblRocmVzaG9sZCksclQpOnIuZmUoZSxuKX0pfSxBVC5wcm90b3R5cGUuZ2V0Q2FjaGVTaXplPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmFlLmdldENhY2hlU2l6ZSh0KX0sQVQucHJvdG90eXBlLmZlPWZ1bmN0aW9uKGUsbil7dmFyIHIsaSxvLHMsYSx1LGMsaD10aGlzLGw9RGF0ZS5ub3coKTtyZXR1cm4gdGhpcy5jYWxjdWxhdGVUYXJnZXRDb3VudChlLHRoaXMucGFyYW1zLnBlcmNlbnRpbGVUb0NvbGxlY3QpLm5leHQoZnVuY3Rpb24odCl7cmV0dXJuIGk9dD5oLnBhcmFtcy5tYXhpbXVtU2VxdWVuY2VOdW1iZXJzVG9Db2xsZWN0PyhWeSgiTHJ1R2FyYmFnZUNvbGxlY3RvciIsIkNhcHBpbmcgc2VxdWVuY2UgbnVtYmVycyB0byBjb2xsZWN0IGRvd24gdG8gdGhlIG1heGltdW0gb2YgIitoLnBhcmFtcy5tYXhpbXVtU2VxdWVuY2VOdW1iZXJzVG9Db2xsZWN0KyIgZnJvbSAiK3QpLGgucGFyYW1zLm1heGltdW1TZXF1ZW5jZU51bWJlcnNUb0NvbGxlY3QpOnQscz1EYXRlLm5vdygpLGgubnRoU2VxdWVuY2VOdW1iZXIoZSxpKX0pLm5leHQoZnVuY3Rpb24odCl7cmV0dXJuIHI9dCxhPURhdGUubm93KCksaC5yZW1vdmVUYXJnZXRzKGUscixuKX0pLm5leHQoZnVuY3Rpb24odCl7cmV0dXJuIG89dCx1PURhdGUubm93KCksaC5yZW1vdmVPcnBoYW5lZERvY3VtZW50cyhlLHIpfSkubmV4dChmdW5jdGlvbih0KXtyZXR1cm4gYz1EYXRlLm5vdygpLHF5KCk8PWFzLkRFQlVHJiZWeSgiTHJ1R2FyYmFnZUNvbGxlY3RvciIsIkxSVSBHYXJiYWdlIENvbGxlY3Rpb25cblx0Q291bnRlZCB0YXJnZXRzIGluICIrKHMtbCkrIm1zXG5cdERldGVybWluZWQgbGVhc3QgcmVjZW50bHkgdXNlZCAiK2krIiBpbiAiKyhhLXMpKyJtc1xuXHRSZW1vdmVkICIrbysiIHRhcmdldHMgaW4gIisodS1hKSsibXNcblx0UmVtb3ZlZCAiK3QrIiBkb2N1bWVudHMgaW4gIisoYy11KSsibXNcblRvdGFsIER1cmF0aW9uOiAiKyhjLWwpKyJtcyIpLHVJLnJlc29sdmUoe2RpZFJ1bjohMCxzZXF1ZW5jZU51bWJlcnNDb2xsZWN0ZWQ6aSx0YXJnZXRzUmVtb3ZlZDpvLGRvY3VtZW50c1JlbW92ZWQ6dH0pfSl9LEFUKSxDVD0oTlQucHJvdG90eXBlLmhlPWZ1bmN0aW9uKHQpe3ZhciBuPXRoaXMuZGUodCk7cmV0dXJuIHRoaXMuZGIuZ2V0VGFyZ2V0Q2FjaGUoKS5nZXRUYXJnZXRDb3VudCh0KS5uZXh0KGZ1bmN0aW9uKGUpe3JldHVybiBuLm5leHQoZnVuY3Rpb24odCl7cmV0dXJuIGUrdH0pfSl9LE5ULnByb3RvdHlwZS5kZT1mdW5jdGlvbih0KXt2YXIgZT0wO3JldHVybiB0aGlzLmxlKHQsZnVuY3Rpb24odCl7ZSsrfSkubmV4dChmdW5jdGlvbigpe3JldHVybiBlfSl9LE5ULnByb3RvdHlwZS5mb3JFYWNoVGFyZ2V0PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMuZGIuZ2V0VGFyZ2V0Q2FjaGUoKS5mb3JFYWNoVGFyZ2V0KHQsZSl9LE5ULnByb3RvdHlwZS5sZT1mdW5jdGlvbih0LG4pe3JldHVybiB0aGlzLndlKHQsZnVuY3Rpb24odCxlKXtyZXR1cm4gbihlKX0pfSxOVC5wcm90b3R5cGUuYWRkUmVmZXJlbmNlPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gUFQodCxuKX0sTlQucHJvdG90eXBlLnJlbW92ZVJlZmVyZW5jZT1mdW5jdGlvbih0LGUsbil7cmV0dXJuIFBUKHQsbil9LE5ULnByb3RvdHlwZS5yZW1vdmVUYXJnZXRzPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gdGhpcy5kYi5nZXRUYXJnZXRDYWNoZSgpLnJlbW92ZVRhcmdldHModCxlLG4pfSxOVC5wcm90b3R5cGUubWFya1BvdGVudGlhbGx5T3JwaGFuZWQ9UFQsTlQucHJvdG90eXBlLl9lPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHI9ZSxpPSExLHBUKG49dCkuJHQoZnVuY3Rpb24odCl7cmV0dXJuIGhUKG4sdCxyKS5uZXh0KGZ1bmN0aW9uKHQpe3JldHVybiB0JiYoaT0hMCksdUkucmVzb2x2ZSghdCl9KX0pLm5leHQoZnVuY3Rpb24oKXtyZXR1cm4gaX0pO3ZhciBuLHIsaX0sTlQucHJvdG90eXBlLnJlbW92ZU9ycGhhbmVkRG9jdW1lbnRzPWZ1bmN0aW9uKG4scil7dmFyIGk9dGhpcyxvPXRoaXMuZGIuZ2V0UmVtb3RlRG9jdW1lbnRDYWNoZSgpLm5ld0NoYW5nZUJ1ZmZlcigpLHM9W10sYT0wO3JldHVybiB0aGlzLndlKG4sZnVuY3Rpb24oZSx0KXt0PD1yJiYodD1pLl9lKG4sZSkubmV4dChmdW5jdGlvbih0KXtpZighdClyZXR1cm4gYSsrLG8uZ2V0RW50cnkobixlKS5uZXh0KGZ1bmN0aW9uKCl7cmV0dXJuIG8ucmVtb3ZlRW50cnkoZSksd1QobikuZGVsZXRlKFswLFVfKGUucGF0aCldKX0pfSkscy5wdXNoKHQpKX0pLm5leHQoZnVuY3Rpb24oKXtyZXR1cm4gdUkud2FpdEZvcihzKX0pLm5leHQoZnVuY3Rpb24oKXtyZXR1cm4gby5hcHBseShuKX0pLm5leHQoZnVuY3Rpb24oKXtyZXR1cm4gYX0pfSxOVC5wcm90b3R5cGUucmVtb3ZlVGFyZ2V0PWZ1bmN0aW9uKHQsZSl7ZT1lLndpdGhTZXF1ZW5jZU51bWJlcih0LmN1cnJlbnRTZXF1ZW5jZU51bWJlcik7cmV0dXJuIHRoaXMuZGIuZ2V0VGFyZ2V0Q2FjaGUoKS51cGRhdGVUYXJnZXREYXRhKHQsZSl9LE5ULnByb3RvdHlwZS51cGRhdGVMaW1ib0RvY3VtZW50PVBULE5ULnByb3RvdHlwZS53ZT1mdW5jdGlvbih0LHIpe3ZhciBpLHQ9d1QodCksbz1EeS5vO3JldHVybiB0Lk90KHtpbmRleDokXy5kb2N1bWVudFRhcmdldHNJbmRleH0sZnVuY3Rpb24odCxlKXt2YXIgbj10WzBdLHQ9KHRbMV0sZS5wYXRoKSxlPWUuc2VxdWVuY2VOdW1iZXI7MD09PW4/KG8hPT1EeS5vJiZyKG5ldyBDbShxXyhpKSksbyksbz1lLGk9dCk6bz1EeS5vfSkubmV4dChmdW5jdGlvbigpe28hPT1EeS5vJiZyKG5ldyBDbShxXyhpKSksbyl9KX0sTlQucHJvdG90eXBlLmdldENhY2hlU2l6ZT1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5kYi5nZXRSZW1vdGVEb2N1bWVudENhY2hlKCkuZ2V0U2l6ZSh0KX0sTlQpO2Z1bmN0aW9uIE5UKHQsZSl7dGhpcy5kYj10LHRoaXMuZ2FyYmFnZUNvbGxlY3Rvcj1uZXcgU1QodGhpcyxlKX1mdW5jdGlvbiBBVCh0LGUpe3RoaXMuYWU9dCx0aGlzLnBhcmFtcz1lfWZ1bmN0aW9uIGtUKHQsZSl7dGhpcy5nYXJiYWdlQ29sbGVjdG9yPXQsdGhpcy5hc3luY1F1ZXVlPWUsdGhpcy5vZT0hMSx0aGlzLmNlPW51bGx9ZnVuY3Rpb24gUlQodCl7dGhpcy5uZT10LHRoaXMuYnVmZmVyPW5ldyBWdyhJVCksdGhpcy5zZT0wfWZ1bmN0aW9uIFBUKHQsZSl7cmV0dXJuIHdUKHQpLnB1dCgodD10LmN1cnJlbnRTZXF1ZW5jZU51bWJlcixuZXcgJF8oMCxVXyhlLnBhdGgpLHQpKSl9dmFyIE9ULERUPShqVC5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMubWFwS2V5Rm4odCksZT10aGlzLmlubmVyW2VdO2lmKHZvaWQgMCE9PWUpZm9yKHZhciBuPTAscj1lO248ci5sZW5ndGg7bisrKXt2YXIgaT1yW25dLG89aVswXSxpPWlbMV07aWYodGhpcy5lcXVhbHNGbihvLHQpKXJldHVybiBpfX0salQucHJvdG90eXBlLmhhcz1mdW5jdGlvbih0KXtyZXR1cm4gdm9pZCAwIT09dGhpcy5nZXQodCl9LGpULnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzLm1hcEtleUZuKHQpLHI9dGhpcy5pbm5lcltuXTtpZih2b2lkIDAhPT1yKXtmb3IodmFyIGk9MDtpPHIubGVuZ3RoO2krKylpZih0aGlzLmVxdWFsc0ZuKHJbaV1bMF0sdCkpcmV0dXJuIHZvaWQocltpXT1bdCxlXSk7ci5wdXNoKFt0LGVdKX1lbHNlIHRoaXMuaW5uZXJbbl09W1t0LGVdXX0salQucHJvdG90eXBlLmRlbGV0ZT1mdW5jdGlvbih0KXt2YXIgZT10aGlzLm1hcEtleUZuKHQpLG49dGhpcy5pbm5lcltlXTtpZih2b2lkIDA9PT1uKXJldHVybiExO2Zvcih2YXIgcj0wO3I8bi5sZW5ndGg7cisrKWlmKHRoaXMuZXF1YWxzRm4obltyXVswXSx0KSlyZXR1cm4gMT09PW4ubGVuZ3RoP2RlbGV0ZSB0aGlzLmlubmVyW2VdOm4uc3BsaWNlKHIsMSksITA7cmV0dXJuITF9LGpULnByb3RvdHlwZS5mb3JFYWNoPWZ1bmN0aW9uKHMpe3JtKHRoaXMuaW5uZXIsZnVuY3Rpb24odCxlKXtmb3IodmFyIG49MCxyPWU7bjxyLmxlbmd0aDtuKyspe3ZhciBpPXJbbl0sbz1pWzBdLGk9aVsxXTtzKG8saSl9fSl9LGpULnByb3RvdHlwZS5pc0VtcHR5PWZ1bmN0aW9uKCl7cmV0dXJuIGltKHRoaXMuaW5uZXIpfSxqVCksU249KFVULnByb3RvdHlwZS5nZXRSZWFkVGltZT1mdW5jdGlvbih0KXt0PXRoaXMuY2hhbmdlcy5nZXQodCk7cmV0dXJuIHQ/dC5yZWFkVGltZTpaeS5taW4oKX0sVVQucHJvdG90eXBlLmFkZEVudHJ5PWZ1bmN0aW9uKHQsZSl7dGhpcy5hc3NlcnROb3RBcHBsaWVkKCksdGhpcy5jaGFuZ2VzLnNldCh0LmtleSx7ZG9jdW1lbnQ6dCxyZWFkVGltZTplfSl9LFVULnByb3RvdHlwZS5yZW1vdmVFbnRyeT1mdW5jdGlvbih0LGUpe3ZvaWQgMD09PWUmJihlPW51bGwpLHRoaXMuYXNzZXJ0Tm90QXBwbGllZCgpLHRoaXMuY2hhbmdlcy5zZXQodCx7ZG9jdW1lbnQ6Qm0ubmV3SW52YWxpZERvY3VtZW50KHQpLHJlYWRUaW1lOmV9KX0sVVQucHJvdG90eXBlLmdldEVudHJ5PWZ1bmN0aW9uKHQsZSl7dGhpcy5hc3NlcnROb3RBcHBsaWVkKCk7dmFyIG49dGhpcy5jaGFuZ2VzLmdldChlKTtyZXR1cm4gdm9pZCAwIT09bj91SS5yZXNvbHZlKG4uZG9jdW1lbnQpOnRoaXMuZ2V0RnJvbUNhY2hlKHQsZSl9LFVULnByb3RvdHlwZS5nZXRFbnRyaWVzPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMuZ2V0QWxsRnJvbUNhY2hlKHQsZSl9LFVULnByb3RvdHlwZS5hcHBseT1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5hc3NlcnROb3RBcHBsaWVkKCksdGhpcy5jaGFuZ2VzQXBwbGllZD0hMCx0aGlzLmFwcGx5Q2hhbmdlcyh0KX0sVVQucHJvdG90eXBlLmFzc2VydE5vdEFwcGxpZWQ9ZnVuY3Rpb24oKXt9LFVUKSx4VD0oRlQucHJvdG90eXBlLmFkZEVudHJ5PWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gVlQodCkucHV0KEJUKGUpLG4pfSxGVC5wcm90b3R5cGUucmVtb3ZlRW50cnk9ZnVuY3Rpb24odCxlKXt0PVZUKHQpLGU9QlQoZSk7cmV0dXJuIHQuZGVsZXRlKGUpfSxGVC5wcm90b3R5cGUudXBkYXRlTWV0YWRhdGE9ZnVuY3Rpb24oZSxuKXt2YXIgcj10aGlzO3JldHVybiB0aGlzLmdldE1ldGFkYXRhKGUpLm5leHQoZnVuY3Rpb24odCl7cmV0dXJuIHQuYnl0ZVNpemUrPW4sci5tZShlLHQpfSl9LEZULnByb3RvdHlwZS5nZXRFbnRyeT1mdW5jdGlvbih0LGUpe3ZhciBuPXRoaXM7cmV0dXJuIFZUKHQpLmdldChCVChlKSkubmV4dChmdW5jdGlvbih0KXtyZXR1cm4gbi55ZShlLHQpfSl9LEZULnByb3RvdHlwZS5nZT1mdW5jdGlvbih0LGUpe3ZhciBuPXRoaXM7cmV0dXJuIFZUKHQpLmdldChCVChlKSkubmV4dChmdW5jdGlvbih0KXtyZXR1cm57ZG9jdW1lbnQ6bi55ZShlLHQpLHNpemU6YVQodCl9fSl9LEZULnByb3RvdHlwZS5nZXRFbnRyaWVzPWZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcyxyPUt3O3JldHVybiB0aGlzLnBlKHQsZSxmdW5jdGlvbih0LGUpe2U9bi55ZSh0LGUpO3I9ci5pbnNlcnQodCxlKX0pLm5leHQoZnVuY3Rpb24oKXtyZXR1cm4gcn0pfSxGVC5wcm90b3R5cGUuRWU9ZnVuY3Rpb24odCxlKXt2YXIgcj10aGlzLGk9S3csbz1uZXcgeHcoQ20uY29tcGFyYXRvcik7cmV0dXJuIHRoaXMucGUodCxlLGZ1bmN0aW9uKHQsZSl7dmFyIG49ci55ZSh0LGUpO2k9aS5pbnNlcnQodCxuKSxvPW8uaW5zZXJ0KHQsYVQoZSkpfSkubmV4dChmdW5jdGlvbigpe3JldHVybntkb2N1bWVudHM6aSxUZTpvfX0pfSxGVC5wcm90b3R5cGUucGU9ZnVuY3Rpb24odCxlLGkpe2lmKGUuaXNFbXB0eSgpKXJldHVybiB1SS5yZXNvbHZlKCk7dmFyIG49SURCS2V5UmFuZ2UuYm91bmQoZS5maXJzdCgpLnBhdGgudG9BcnJheSgpLGUubGFzdCgpLnBhdGgudG9BcnJheSgpKSxvPWUuZ2V0SXRlcmF0b3IoKSxzPW8uZ2V0TmV4dCgpO3JldHVybiBWVCh0KS5PdCh7cmFuZ2U6bn0sZnVuY3Rpb24odCxlLG4pe2Zvcih2YXIgcj1DbS5mcm9tU2VnbWVudHModCk7cyYmQ20uY29tcGFyYXRvcihzLHIpPDA7KWkocyxudWxsKSxzPW8uZ2V0TmV4dCgpO3MmJnMuaXNFcXVhbChyKSYmKGkocyxlKSxzPW8uaGFzTmV4dCgpP28uZ2V0TmV4dCgpOm51bGwpLHM/bi5DdChzLnBhdGgudG9BcnJheSgpKTpuLmRvbmUoKX0pLm5leHQoZnVuY3Rpb24oKXtmb3IoO3M7KWkocyxudWxsKSxzPW8uaGFzTmV4dCgpP28uZ2V0TmV4dCgpOm51bGx9KX0sRlQucHJvdG90eXBlLmdldERvY3VtZW50c01hdGNoaW5nUXVlcnk9ZnVuY3Rpb24odCxyLGUpe3ZhciBuLGk9dGhpcyxvPUt3LHM9ci5wYXRoLmxlbmd0aCsxLGE9e307cmV0dXJuIGUuaXNFcXVhbChaeS5taW4oKSk/KG49ci5wYXRoLnRvQXJyYXkoKSxhLnJhbmdlPUlEQktleVJhbmdlLmxvd2VyQm91bmQobikpOihuPXIucGF0aC50b0FycmF5KCksZT1VSShlKSxhLnJhbmdlPUlEQktleVJhbmdlLmxvd2VyQm91bmQoW24sZV0sITApLGEuaW5kZXg9WV8uY29sbGVjdGlvblJlYWRUaW1lSW5kZXgpLFZUKHQpLk90KGEsZnVuY3Rpb24odCxlLG4pe3QubGVuZ3RoPT09cyYmKGU9TUkoaS5SLGUpLHIucGF0aC5pc1ByZWZpeE9mKGUua2V5LnBhdGgpP2piKHIsZSkmJihvPW8uaW5zZXJ0KGUua2V5LGUpKTpuLmRvbmUoKSl9KS5uZXh0KGZ1bmN0aW9uKCl7cmV0dXJuIG99KX0sRlQucHJvdG90eXBlLm5ld0NoYW5nZUJ1ZmZlcj1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IExUKHRoaXMsISF0JiZ0LnRyYWNrUmVtb3ZhbHMpfSxGVC5wcm90b3R5cGUuZ2V0U2l6ZT1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5nZXRNZXRhZGF0YSh0KS5uZXh0KGZ1bmN0aW9uKHQpe3JldHVybiB0LmJ5dGVTaXplfSl9LEZULnByb3RvdHlwZS5nZXRNZXRhZGF0YT1mdW5jdGlvbih0KXtyZXR1cm4gcVQodCkuZ2V0KFhfLmtleSkubmV4dChmdW5jdGlvbih0KXtyZXR1cm4gR3koISF0KSx0fSl9LEZULnByb3RvdHlwZS5tZT1mdW5jdGlvbih0LGUpe3JldHVybiBxVCh0KS5wdXQoWF8ua2V5LGUpfSxGVC5wcm90b3R5cGUueWU9ZnVuY3Rpb24odCxlKXtpZihlKXtlPU1JKHRoaXMuUixlKTtpZighZS5pc05vRG9jdW1lbnQoKXx8IWUudmVyc2lvbi5pc0VxdWFsKFp5Lm1pbigpKSlyZXR1cm4gZX1yZXR1cm4gQm0ubmV3SW52YWxpZERvY3VtZW50KHQpfSxGVCksTFQ9KFhpKE1ULE9UPVNuKSxNVC5wcm90b3R5cGUuYXBwbHlDaGFuZ2VzPWZ1bmN0aW9uKGkpe3ZhciBvPXRoaXMscz1bXSxhPTAsdT1uZXcgVncoZnVuY3Rpb24odCxlKXtyZXR1cm4gWXkodC5jYW5vbmljYWxTdHJpbmcoKSxlLmNhbm9uaWNhbFN0cmluZygpKX0pO3JldHVybiB0aGlzLmNoYW5nZXMuZm9yRWFjaChmdW5jdGlvbih0LGUpe3ZhciBuLHI9by5BZS5nZXQodCk7ZS5kb2N1bWVudC5pc1ZhbGlkRG9jdW1lbnQoKT8obj1GSShvLkllLlIsZS5kb2N1bWVudCxvLmdldFJlYWRUaW1lKHQpKSx1PXUuYWRkKHQucGF0aC5wb3BMYXN0KCkpLGU9YVQobiksYSs9ZS1yLHMucHVzaChvLkllLmFkZEVudHJ5KGksdCxuKSkpOihhLT1yLG8udHJhY2tSZW1vdmFscz8ocj1GSShvLkllLlIsQm0ubmV3Tm9Eb2N1bWVudCh0LFp5Lm1pbigpKSxvLmdldFJlYWRUaW1lKHQpKSxzLnB1c2goby5JZS5hZGRFbnRyeShpLHQscikpKTpzLnB1c2goby5JZS5yZW1vdmVFbnRyeShpLHQpKSl9KSx1LmZvckVhY2goZnVuY3Rpb24odCl7cy5wdXNoKG8uSWUuVXQuYWRkVG9Db2xsZWN0aW9uUGFyZW50SW5kZXgoaSx0KSl9KSxzLnB1c2godGhpcy5JZS51cGRhdGVNZXRhZGF0YShpLGEpKSx1SS53YWl0Rm9yKHMpfSxNVC5wcm90b3R5cGUuZ2V0RnJvbUNhY2hlPWZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcztyZXR1cm4gdGhpcy5JZS5nZSh0LGUpLm5leHQoZnVuY3Rpb24odCl7cmV0dXJuIG4uQWUuc2V0KGUsdC5zaXplKSx0LmRvY3VtZW50fSl9LE1ULnByb3RvdHlwZS5nZXRBbGxGcm9tQ2FjaGU9ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzO3JldHVybiB0aGlzLkllLkVlKHQsZSkubmV4dChmdW5jdGlvbih0KXt2YXIgZT10LmRvY3VtZW50cztyZXR1cm4gdC5UZS5mb3JFYWNoKGZ1bmN0aW9uKHQsZSl7bi5BZS5zZXQodCxlKX0pLGV9KX0sTVQpO2Z1bmN0aW9uIE1UKHQsZSl7dmFyIG49dGhpcztyZXR1cm4obj1PVC5jYWxsKHRoaXMpfHx0aGlzKS5JZT10LG4udHJhY2tSZW1vdmFscz1lLG4uQWU9bmV3IERUKGZ1bmN0aW9uKHQpe3JldHVybiB0LnRvU3RyaW5nKCl9LGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQuaXNFcXVhbChlKX0pLG59ZnVuY3Rpb24gRlQodCxlKXt0aGlzLlI9dCx0aGlzLlV0PWV9ZnVuY3Rpb24gVVQoKXt0aGlzLmNoYW5nZXM9bmV3IERUKGZ1bmN0aW9uKHQpe3JldHVybiB0LnRvU3RyaW5nKCl9LGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQuaXNFcXVhbChlKX0pLHRoaXMuY2hhbmdlc0FwcGxpZWQ9ITF9ZnVuY3Rpb24galQodCxlKXt0aGlzLm1hcEtleUZuPXQsdGhpcy5lcXVhbHNGbj1lLHRoaXMuaW5uZXI9e319ZnVuY3Rpb24gcVQodCl7cmV0dXJuIEFJKHQsWF8uc3RvcmUpfWZ1bmN0aW9uIFZUKHQpe3JldHVybiBBSSh0LFlfLnN0b3JlKX1mdW5jdGlvbiBCVCh0KXtyZXR1cm4gdC5wYXRoLnRvQXJyYXkoKX12YXIgS1Q9KFdULnByb3RvdHlwZS5SdD1mdW5jdGlvbihlLG4sdCxyKXt2YXIgaT10aGlzO0d5KHQ8ciYmMDw9dCYmcjw9MTEpO3ZhciBvPW5ldyBjSSgiY3JlYXRlT3JVcGdyYWRlIixuKTt0PDEmJjE8PXImJihlLmNyZWF0ZU9iamVjdFN0b3JlKFZfLnN0b3JlKSwocz1lKS5jcmVhdGVPYmplY3RTdG9yZShLXy5zdG9yZSx7a2V5UGF0aDpLXy5rZXlQYXRofSkscy5jcmVhdGVPYmplY3RTdG9yZShXXy5zdG9yZSx7a2V5UGF0aDpXXy5rZXlQYXRoLGF1dG9JbmNyZW1lbnQ6ITB9KS5jcmVhdGVJbmRleChXXy51c2VyTXV0YXRpb25zSW5kZXgsV18udXNlck11dGF0aW9uc0tleVBhdGgse3VuaXF1ZTohMH0pLHMuY3JlYXRlT2JqZWN0U3RvcmUoSF8uc3RvcmUpLEhUKGUpLGUuY3JlYXRlT2JqZWN0U3RvcmUoWV8uc3RvcmUpKTt2YXIgcyxhPXVJLnJlc29sdmUoKTtyZXR1cm4gdDwzJiYzPD1yJiYoMCE9PXQmJigocz1lKS5kZWxldGVPYmplY3RTdG9yZSgkXy5zdG9yZSkscy5kZWxldGVPYmplY3RTdG9yZShKXy5zdG9yZSkscy5kZWxldGVPYmplY3RTdG9yZShaXy5zdG9yZSksSFQoZSkpLGE9YS5uZXh0KGZ1bmN0aW9uKCl7cmV0dXJuIHQ9by5zdG9yZShaXy5zdG9yZSksZT1uZXcgWl8oMCwwLFp5Lm1pbigpLnRvVGltZXN0YW1wKCksMCksdC5wdXQoWl8ua2V5LGUpO3ZhciB0LGV9KSksdDw0JiY0PD1yJiYoYT0oYT0wIT09dD9hLm5leHQoZnVuY3Rpb24oKXtyZXR1cm4gbj1lLChyPW8pLnN0b3JlKFdfLnN0b3JlKS5OdCgpLm5leHQoZnVuY3Rpb24odCl7bi5kZWxldGVPYmplY3RTdG9yZShXXy5zdG9yZSksbi5jcmVhdGVPYmplY3RTdG9yZShXXy5zdG9yZSx7a2V5UGF0aDpXXy5rZXlQYXRoLGF1dG9JbmNyZW1lbnQ6ITB9KS5jcmVhdGVJbmRleChXXy51c2VyTXV0YXRpb25zSW5kZXgsV18udXNlck11dGF0aW9uc0tleVBhdGgse3VuaXF1ZTohMH0pO3ZhciBlPXIuc3RvcmUoV18uc3RvcmUpLHQ9dC5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIGUucHV0KHQpfSk7cmV0dXJuIHVJLndhaXRGb3IodCl9KTt2YXIgbixyfSk6YSkubmV4dChmdW5jdGlvbigpe2UuY3JlYXRlT2JqZWN0U3RvcmUoZUkuc3RvcmUse2tleVBhdGg6ZUkua2V5UGF0aH0pfSkpLHQ8NSYmNTw9ciYmKGE9YS5uZXh0KGZ1bmN0aW9uKCl7cmV0dXJuIGkuUmUobyl9KSksdDw2JiY2PD1yJiYoYT1hLm5leHQoZnVuY3Rpb24oKXtyZXR1cm4gZS5jcmVhdGVPYmplY3RTdG9yZShYXy5zdG9yZSksaS5iZShvKX0pKSx0PDcmJjc8PXImJihhPWEubmV4dChmdW5jdGlvbigpe3JldHVybiBpLnZlKG8pfSkpLHQ8OCYmODw9ciYmKGE9YS5uZXh0KGZ1bmN0aW9uKCl7cmV0dXJuIGkuUGUoZSxvKX0pKSx0PDkmJjk8PXImJihhPWEubmV4dChmdW5jdGlvbigpe3ZhciB0Oyh0PWUpLm9iamVjdFN0b3JlTmFtZXMuY29udGFpbnMoInJlbW90ZURvY3VtZW50Q2hhbmdlcyIpJiZ0LmRlbGV0ZU9iamVjdFN0b3JlKCJyZW1vdGVEb2N1bWVudENoYW5nZXMiKSwodD1uLm9iamVjdFN0b3JlKFlfLnN0b3JlKSkuY3JlYXRlSW5kZXgoWV8ucmVhZFRpbWVJbmRleCxZXy5yZWFkVGltZUluZGV4UGF0aCx7dW5pcXVlOiExfSksdC5jcmVhdGVJbmRleChZXy5jb2xsZWN0aW9uUmVhZFRpbWVJbmRleCxZXy5jb2xsZWN0aW9uUmVhZFRpbWVJbmRleFBhdGgse3VuaXF1ZTohMX0pfSkpLHQ8MTAmJjEwPD1yJiYoYT1hLm5leHQoZnVuY3Rpb24oKXtyZXR1cm4gaS5WZShvKX0pKSxhPXQ8MTEmJjExPD1yP2EubmV4dChmdW5jdGlvbigpe2UuY3JlYXRlT2JqZWN0U3RvcmUobkkuc3RvcmUse2tleVBhdGg6bkkua2V5UGF0aH0pLGUuY3JlYXRlT2JqZWN0U3RvcmUockkuc3RvcmUse2tleVBhdGg6ckkua2V5UGF0aH0pfSk6YX0sV1QucHJvdG90eXBlLmJlPWZ1bmN0aW9uKGUpe3ZhciBuPTA7cmV0dXJuIGUuc3RvcmUoWV8uc3RvcmUpLk90KGZ1bmN0aW9uKHQsZSl7bis9YVQoZSl9KS5uZXh0KGZ1bmN0aW9uKCl7dmFyIHQ9bmV3IFhfKG4pO3JldHVybiBlLnN0b3JlKFhfLnN0b3JlKS5wdXQoWF8ua2V5LHQpfSl9LFdULnByb3RvdHlwZS5SZT1mdW5jdGlvbihuKXt2YXIgcj10aGlzLHQ9bi5zdG9yZShLXy5zdG9yZSksaT1uLnN0b3JlKFdfLnN0b3JlKTtyZXR1cm4gdC5OdCgpLm5leHQoZnVuY3Rpb24odCl7cmV0dXJuIHVJLmZvckVhY2godCxmdW5jdGlvbihlKXt2YXIgdD1JREJLZXlSYW5nZS5ib3VuZChbZS51c2VySWQsLTFdLFtlLnVzZXJJZCxlLmxhc3RBY2tub3dsZWRnZWRCYXRjaElkXSk7cmV0dXJuIGkuTnQoV18udXNlck11dGF0aW9uc0luZGV4LHQpLm5leHQoZnVuY3Rpb24odCl7cmV0dXJuIHVJLmZvckVhY2godCxmdW5jdGlvbih0KXtHeSh0LnVzZXJJZD09PWUudXNlcklkKTt0PUJJKHIuUix0KTtyZXR1cm4gc1QobixlLnVzZXJJZCx0KS5uZXh0KGZ1bmN0aW9uKCl7fSl9KX0pfSl9KX0sV1QucHJvdG90eXBlLnZlPWZ1bmN0aW9uKHQpe3ZhciBvPXQuc3RvcmUoJF8uc3RvcmUpLGU9dC5zdG9yZShZXy5zdG9yZSk7cmV0dXJuIHQuc3RvcmUoWl8uc3RvcmUpLmdldChaXy5rZXkpLm5leHQoZnVuY3Rpb24ocil7dmFyIGk9W107cmV0dXJuIGUuT3QoZnVuY3Rpb24odCxlKXt2YXIgbj1uZXcgYW0odCksdD1bMCxVXyhuKV07aS5wdXNoKG8uZ2V0KHQpLm5leHQoZnVuY3Rpb24odCl7cmV0dXJuIHQ/dUkucmVzb2x2ZSgpOm8ucHV0KG5ldyAkXygwLFVfKG4pLHIuaGlnaGVzdExpc3RlblNlcXVlbmNlTnVtYmVyKSl9KSl9KS5uZXh0KGZ1bmN0aW9uKCl7cmV0dXJuIHVJLndhaXRGb3IoaSl9KX0pfSxXVC5wcm90b3R5cGUuUGU9ZnVuY3Rpb24odCxlKXt0LmNyZWF0ZU9iamVjdFN0b3JlKHRJLnN0b3JlLHtrZXlQYXRoOnRJLmtleVBhdGh9KTtmdW5jdGlvbiByKHQpe2lmKGkuYWRkKHQpKXt2YXIgZT10Lmxhc3RTZWdtZW50KCksdD10LnBvcExhc3QoKTtyZXR1cm4gbi5wdXQoe2NvbGxlY3Rpb25JZDplLHBhcmVudDpVXyh0KX0pfX12YXIgbj1lLnN0b3JlKHRJLnN0b3JlKSxpPW5ldyBKSTtyZXR1cm4gZS5zdG9yZShZXy5zdG9yZSkuT3Qoe2t0OiEwfSxmdW5jdGlvbih0LGUpe3Q9bmV3IGFtKHQpO3JldHVybiByKHQucG9wTGFzdCgpKX0pLm5leHQoZnVuY3Rpb24oKXtyZXR1cm4gZS5zdG9yZShIXy5zdG9yZSkuT3Qoe2t0OiEwfSxmdW5jdGlvbih0LGUpe3RbMF07dmFyIG49dFsxXSxuPSh0WzJdLHFfKG4pKTtyZXR1cm4gcihuLnBvcExhc3QoKSl9KX0pfSxXVC5wcm90b3R5cGUuVmU9ZnVuY3Rpb24odCl7dmFyIG49dGhpcyxyPXQuc3RvcmUoSl8uc3RvcmUpO3JldHVybiByLk90KGZ1bmN0aW9uKHQsZSl7ZT1LSShlKSxlPVdJKG4uUixlKTtyZXR1cm4gci5wdXQoZSl9KX0sV1QpO2Z1bmN0aW9uIFdUKHQpe3RoaXMuUj10fWZ1bmN0aW9uIEhUKHQpe3QuY3JlYXRlT2JqZWN0U3RvcmUoJF8uc3RvcmUse2tleVBhdGg6JF8ua2V5UGF0aH0pLmNyZWF0ZUluZGV4KCRfLmRvY3VtZW50VGFyZ2V0c0luZGV4LCRfLmRvY3VtZW50VGFyZ2V0c0tleVBhdGgse3VuaXF1ZTohMH0pLHQuY3JlYXRlT2JqZWN0U3RvcmUoSl8uc3RvcmUse2tleVBhdGg6Sl8ua2V5UGF0aH0pLmNyZWF0ZUluZGV4KEpfLnF1ZXJ5VGFyZ2V0c0luZGV4TmFtZSxKXy5xdWVyeVRhcmdldHNLZXlQYXRoLHt1bmlxdWU6ITB9KSx0LmNyZWF0ZU9iamVjdFN0b3JlKFpfLnN0b3JlKX12YXIgR1Q9IkZhaWxlZCB0byBvYnRhaW4gZXhjbHVzaXZlIGFjY2VzcyB0byB0aGUgcGVyc2lzdGVuY2UgbGF5ZXIuIFRvIGFsbG93IHNoYXJlZCBhY2Nlc3MsIG11bHRpLXRhYiBzeW5jaHJvbml6YXRpb24gaGFzIHRvIGJlIGVuYWJsZWQgaW4gYWxsIHRhYnMuIElmIHlvdSBhcmUgdXNpbmcgYGV4cGVyaW1lbnRhbEZvcmNlT3duaW5nVGFiOnRydWVgLCBtYWtlIHN1cmUgdGhhdCBvbmx5IG9uZSB0YWIgaGFzIHBlcnNpc3RlbmNlIGVuYWJsZWQgYXQgYW55IGdpdmVuIHRpbWUuIix6VD0oUVQucHJvdG90eXBlLnN0YXJ0PWZ1bmN0aW9uKCl7dmFyIGU9dGhpcztyZXR1cm4gdGhpcy5qZSgpLnRoZW4oZnVuY3Rpb24oKXtpZighZS5pc1ByaW1hcnkmJiFlLmFsbG93VGFiU3luY2hyb25pemF0aW9uKXRocm93IG5ldyBGeShNeS5GQUlMRURfUFJFQ09ORElUSU9OLEdUKTtyZXR1cm4gZS5XZSgpLGUuR2UoKSxlLnplKCksZS5ydW5UcmFuc2FjdGlvbigiZ2V0SGlnaGVzdExpc3RlblNlcXVlbmNlTnVtYmVyIiwicmVhZG9ubHkiLGZ1bmN0aW9uKHQpe3JldHVybiBlLnFlLmdldEhpZ2hlc3RTZXF1ZW5jZU51bWJlcih0KX0pfSkudGhlbihmdW5jdGlvbih0KXtlLk5lPW5ldyBEeSh0LGUuRGUpfSkudGhlbihmdW5jdGlvbigpe2UueGU9ITB9KS5jYXRjaChmdW5jdGlvbih0KXtyZXR1cm4gZS5CZSYmZS5CZS5jbG9zZSgpLFByb21pc2UucmVqZWN0KHQpfSl9LFFULnByb3RvdHlwZS5IZT1mdW5jdGlvbihuKXt2YXIgdD10aGlzO3JldHVybiB0aGlzLk1lPWZ1bmN0aW9uKGUpe3JldHVybiAkaSh0LHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXtyZXR1cm4gWmkodGhpcyxmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5zdGFydGVkP1syLG4oZSldOlsyXX0pfSl9LG4odGhpcy5pc1ByaW1hcnkpfSxRVC5wcm90b3R5cGUuc2V0RGF0YWJhc2VEZWxldGVkTGlzdGVuZXI9ZnVuY3Rpb24obil7dmFyIHQ9dGhpczt0aGlzLkJlLnZ0KGZ1bmN0aW9uKGUpe3JldHVybiAkaSh0LHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXtyZXR1cm4gWmkodGhpcyxmdW5jdGlvbih0KXtzd2l0Y2godC5sYWJlbCl7Y2FzZSAwOnJldHVybiBudWxsPT09ZS5uZXdWZXJzaW9uP1s0LG4oKV06WzMsMl07Y2FzZSAxOnQuc2VudCgpLHQubGFiZWw9MjtjYXNlIDI6cmV0dXJuWzJdfX0pfSl9KX0sUVQucHJvdG90eXBlLnNldE5ldHdvcmtFbmFibGVkPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7dGhpcy5uZXR3b3JrRW5hYmxlZCE9PXQmJih0aGlzLm5ldHdvcmtFbmFibGVkPXQsdGhpcy5TZS5lbnF1ZXVlQW5kRm9yZ2V0KGZ1bmN0aW9uKCl7cmV0dXJuICRpKGUsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3JldHVybiBaaSh0aGlzLGZ1bmN0aW9uKHQpe3N3aXRjaCh0LmxhYmVsKXtjYXNlIDA6cmV0dXJuIHRoaXMuc3RhcnRlZD9bNCx0aGlzLmplKCldOlszLDJdO2Nhc2UgMTp0LnNlbnQoKSx0LmxhYmVsPTI7Y2FzZSAyOnJldHVyblsyXX19KX0pfSkpfSxRVC5wcm90b3R5cGUuamU9ZnVuY3Rpb24oKXt2YXIgbj10aGlzO3JldHVybiB0aGlzLnJ1blRyYW5zYWN0aW9uKCJ1cGRhdGVDbGllbnRNZXRhZGF0YUFuZFRyeUJlY29tZVByaW1hcnkiLCJyZWFkd3JpdGUiLGZ1bmN0aW9uKGUpe3JldHVybiBYVChlKS5wdXQobmV3IGVJKG4uY2xpZW50SWQsRGF0ZS5ub3coKSxuLm5ldHdvcmtFbmFibGVkLG4uaW5Gb3JlZ3JvdW5kKSkubmV4dChmdW5jdGlvbigpe2lmKG4uaXNQcmltYXJ5KXJldHVybiBuLkplKGUpLm5leHQoZnVuY3Rpb24odCl7dHx8KG4uaXNQcmltYXJ5PSExLG4uU2UuZW5xdWV1ZVJldHJ5YWJsZShmdW5jdGlvbigpe3JldHVybiBuLk1lKCExKX0pKX0pfSkubmV4dChmdW5jdGlvbigpe3JldHVybiBuLlllKGUpfSkubmV4dChmdW5jdGlvbih0KXtyZXR1cm4gbi5pc1ByaW1hcnkmJiF0P24uWGUoZSkubmV4dChmdW5jdGlvbigpe3JldHVybiExfSk6ISF0JiZuLlplKGUpLm5leHQoZnVuY3Rpb24oKXtyZXR1cm4hMH0pfSl9KS5jYXRjaChmdW5jdGlvbih0KXtpZihiSSh0KSlyZXR1cm4gVnkoIkluZGV4ZWREYlBlcnNpc3RlbmNlIiwiRmFpbGVkIHRvIGV4dGVuZCBvd25lciBsZWFzZTogIix0KSxuLmlzUHJpbWFyeTtpZighbi5hbGxvd1RhYlN5bmNocm9uaXphdGlvbil0aHJvdyB0O3JldHVybiBWeSgiSW5kZXhlZERiUGVyc2lzdGVuY2UiLCJSZWxlYXNpbmcgb3duZXIgbGVhc2UgYWZ0ZXIgZXJyb3IgZHVyaW5nIGxlYXNlIHJlZnJlc2giLHQpLCExfSkudGhlbihmdW5jdGlvbih0KXtuLmlzUHJpbWFyeSE9PXQmJm4uU2UuZW5xdWV1ZVJldHJ5YWJsZShmdW5jdGlvbigpe3JldHVybiBuLk1lKHQpfSksbi5pc1ByaW1hcnk9dH0pfSxRVC5wcm90b3R5cGUuSmU9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztyZXR1cm4gWVQodCkuZ2V0KFZfLmtleSkubmV4dChmdW5jdGlvbih0KXtyZXR1cm4gdUkucmVzb2x2ZShlLnRuKHQpKX0pfSxRVC5wcm90b3R5cGUuZW49ZnVuY3Rpb24odCl7cmV0dXJuIFhUKHQpLmRlbGV0ZSh0aGlzLmNsaWVudElkKX0sUVQucHJvdG90eXBlLm5uPWZ1bmN0aW9uKCl7cmV0dXJuICRpKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBlLG4scixpLG89dGhpcztyZXR1cm4gWmkodGhpcyxmdW5jdGlvbih0KXtzd2l0Y2godC5sYWJlbCl7Y2FzZSAwOnJldHVybiF0aGlzLmlzUHJpbWFyeXx8dGhpcy5zbih0aGlzLiRlLDE4ZTUpP1szLDJdOih0aGlzLiRlPURhdGUubm93KCksWzQsdGhpcy5ydW5UcmFuc2FjdGlvbigibWF5YmVHYXJiYWdlQ29sbGVjdE11bHRpQ2xpZW50U3RhdGUiLCJyZWFkd3JpdGUtcHJpbWFyeSIsZnVuY3Rpb24odCl7dmFyIHI9QUkodCxlSS5zdG9yZSk7cmV0dXJuIHIuTnQoKS5uZXh0KGZ1bmN0aW9uKHQpe3ZhciBlPW8ucm4odCwxOGU1KSxuPXQuZmlsdGVyKGZ1bmN0aW9uKHQpe3JldHVybi0xPT09ZS5pbmRleE9mKHQpfSk7cmV0dXJuIHVJLmZvckVhY2gobixmdW5jdGlvbih0KXtyZXR1cm4gci5kZWxldGUodC5jbGllbnRJZCl9KS5uZXh0KGZ1bmN0aW9uKCl7cmV0dXJuIG59KX0pfSkuY2F0Y2goZnVuY3Rpb24oKXtyZXR1cm5bXX0pXSk7Y2FzZSAxOmlmKGU9dC5zZW50KCksdGhpcy5LZSlmb3Iobj0wLHI9ZTtuPHIubGVuZ3RoO24rKylpPXJbbl0sdGhpcy5LZS5yZW1vdmVJdGVtKHRoaXMub24oaS5jbGllbnRJZCkpO3QubGFiZWw9MjtjYXNlIDI6cmV0dXJuWzJdfX0pfSl9LFFULnByb3RvdHlwZS56ZT1mdW5jdGlvbigpe3ZhciB0PXRoaXM7dGhpcy5PZT10aGlzLlNlLmVucXVldWVBZnRlckRlbGF5KCJjbGllbnRfbWV0YWRhdGFfcmVmcmVzaCIsNGUzLGZ1bmN0aW9uKCl7cmV0dXJuIHQuamUoKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIHQubm4oKX0pLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gdC56ZSgpfSl9KX0sUVQucHJvdG90eXBlLnRuPWZ1bmN0aW9uKHQpe3JldHVybiEhdCYmdC5vd25lcklkPT09dGhpcy5jbGllbnRJZH0sUVQucHJvdG90eXBlLlllPWZ1bmN0aW9uKGUpe3ZhciByPXRoaXM7cmV0dXJuIHRoaXMuQ2U/dUkucmVzb2x2ZSghMCk6WVQoZSkuZ2V0KFZfLmtleSkubmV4dChmdW5jdGlvbih0KXtpZihudWxsIT09dCYmci5zbih0LmxlYXNlVGltZXN0YW1wTXMsNWUzKSYmIXIuY24odC5vd25lcklkKSl7aWYoci50bih0KSYmci5uZXR3b3JrRW5hYmxlZClyZXR1cm4hMDtpZighci50bih0KSl7aWYoIXQuYWxsb3dUYWJTeW5jaHJvbml6YXRpb24pdGhyb3cgbmV3IEZ5KE15LkZBSUxFRF9QUkVDT05ESVRJT04sR1QpO3JldHVybiExfX1yZXR1cm4hKCFyLm5ldHdvcmtFbmFibGVkfHwhci5pbkZvcmVncm91bmQpfHxYVChlKS5OdCgpLm5leHQoZnVuY3Rpb24odCl7cmV0dXJuIHZvaWQgMD09PXIucm4odCw1ZTMpLmZpbmQoZnVuY3Rpb24odCl7aWYoci5jbGllbnRJZCE9PXQuY2xpZW50SWQpe3ZhciBlPSFyLm5ldHdvcmtFbmFibGVkJiZ0Lm5ldHdvcmtFbmFibGVkLG49IXIuaW5Gb3JlZ3JvdW5kJiZ0LmluRm9yZWdyb3VuZCx0PXIubmV0d29ya0VuYWJsZWQ9PT10Lm5ldHdvcmtFbmFibGVkO2lmKGV8fG4mJnQpcmV0dXJuITB9cmV0dXJuITF9KX0pfSkubmV4dChmdW5jdGlvbih0KXtyZXR1cm4gci5pc1ByaW1hcnkhPT10JiZWeSgiSW5kZXhlZERiUGVyc2lzdGVuY2UiLCJDbGllbnQgIisodD8iaXMiOiJpcyBub3QiKSsiIGVsaWdpYmxlIGZvciBhIHByaW1hcnkgbGVhc2UuIiksdH0pfSxRVC5wcm90b3R5cGUuc2h1dGRvd249ZnVuY3Rpb24oKXtyZXR1cm4gJGkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIG49dGhpcztyZXR1cm4gWmkodGhpcyxmdW5jdGlvbih0KXtzd2l0Y2godC5sYWJlbCl7Y2FzZSAwOnJldHVybiB0aGlzLnhlPSExLHRoaXMudW4oKSx0aGlzLk9lJiYodGhpcy5PZS5jYW5jZWwoKSx0aGlzLk9lPW51bGwpLHRoaXMuYW4oKSx0aGlzLmhuKCksWzQsdGhpcy5CZS5ydW5UcmFuc2FjdGlvbigic2h1dGRvd24iLCJyZWFkd3JpdGUiLFtWXy5zdG9yZSxlSS5zdG9yZV0sZnVuY3Rpb24odCl7dmFyIGU9bmV3IENJKHQsRHkubyk7cmV0dXJuIG4uWGUoZSkubmV4dChmdW5jdGlvbigpe3JldHVybiBuLmVuKGUpfSl9KV07Y2FzZSAxOnJldHVybiB0LnNlbnQoKSx0aGlzLkJlLmNsb3NlKCksdGhpcy5sbigpLFsyXX19KX0pfSxRVC5wcm90b3R5cGUucm49ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzO3JldHVybiB0LmZpbHRlcihmdW5jdGlvbih0KXtyZXR1cm4gbi5zbih0LnVwZGF0ZVRpbWVNcyxlKSYmIW4uY24odC5jbGllbnRJZCl9KX0sUVQucHJvdG90eXBlLmZuPWZ1bmN0aW9uKCl7dmFyIGU9dGhpcztyZXR1cm4gdGhpcy5ydW5UcmFuc2FjdGlvbigiZ2V0QWN0aXZlQ2xpZW50cyIsInJlYWRvbmx5IixmdW5jdGlvbih0KXtyZXR1cm4gWFQodCkuTnQoKS5uZXh0KGZ1bmN0aW9uKHQpe3JldHVybiBlLnJuKHQsMThlNSkubWFwKGZ1bmN0aW9uKHQpe3JldHVybiB0LmNsaWVudElkfSl9KX0pfSxPYmplY3QuZGVmaW5lUHJvcGVydHkoUVQucHJvdG90eXBlLCJzdGFydGVkIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMueGV9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksUVQucHJvdG90eXBlLmdldE11dGF0aW9uUXVldWU9ZnVuY3Rpb24odCl7cmV0dXJuIHVULkt0KHQsdGhpcy5SLHRoaXMuVXQsdGhpcy5yZWZlcmVuY2VEZWxlZ2F0ZSl9LFFULnByb3RvdHlwZS5nZXRUYXJnZXRDYWNoZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLnFlfSxRVC5wcm90b3R5cGUuZ2V0UmVtb3RlRG9jdW1lbnRDYWNoZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLlVlfSxRVC5wcm90b3R5cGUuZ2V0SW5kZXhNYW5hZ2VyPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuVXR9LFFULnByb3RvdHlwZS5nZXRCdW5kbGVDYWNoZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLlFlfSxRVC5wcm90b3R5cGUucnVuVHJhbnNhY3Rpb249ZnVuY3Rpb24oZSxuLHIpe3ZhciBpPXRoaXM7VnkoIkluZGV4ZWREYlBlcnNpc3RlbmNlIiwiU3RhcnRpbmcgdHJhbnNhY3Rpb246IixlKTt2YXIgbyx0PSJyZWFkb25seSI9PT1uPyJyZWFkb25seSI6InJlYWR3cml0ZSI7cmV0dXJuIHRoaXMuQmUucnVuVHJhbnNhY3Rpb24oZSx0LG9JLGZ1bmN0aW9uKHQpe3JldHVybiBvPW5ldyBDSSh0LGkuTmU/aS5OZS5uZXh0KCk6RHkubyksInJlYWR3cml0ZS1wcmltYXJ5Ij09PW4/aS5KZShvKS5uZXh0KGZ1bmN0aW9uKHQpe3JldHVybiEhdHx8aS5ZZShvKX0pLm5leHQoZnVuY3Rpb24odCl7aWYoIXQpdGhyb3cgQnkoIkZhaWxlZCB0byBvYnRhaW4gcHJpbWFyeSBsZWFzZSBmb3IgYWN0aW9uICciK2UrIicuIiksaS5pc1ByaW1hcnk9ITEsaS5TZS5lbnF1ZXVlUmV0cnlhYmxlKGZ1bmN0aW9uKCl7cmV0dXJuIGkuTWUoITEpfSksbmV3IEZ5KE15LkZBSUxFRF9QUkVDT05ESVRJT04sc0kpO3JldHVybiByKG8pfSkubmV4dChmdW5jdGlvbih0KXtyZXR1cm4gaS5aZShvKS5uZXh0KGZ1bmN0aW9uKCl7cmV0dXJuIHR9KX0pOmkuZG4obykubmV4dChmdW5jdGlvbigpe3JldHVybiByKG8pfSl9KS50aGVuKGZ1bmN0aW9uKHQpe3JldHVybiBvLnJhaXNlT25Db21taXR0ZWRFdmVudCgpLHR9KX0sUVQucHJvdG90eXBlLmRuPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7cmV0dXJuIFlUKHQpLmdldChWXy5rZXkpLm5leHQoZnVuY3Rpb24odCl7aWYobnVsbCE9PXQmJmUuc24odC5sZWFzZVRpbWVzdGFtcE1zLDVlMykmJiFlLmNuKHQub3duZXJJZCkmJiFlLnRuKHQpJiYhKGUuQ2V8fGUuYWxsb3dUYWJTeW5jaHJvbml6YXRpb24mJnQuYWxsb3dUYWJTeW5jaHJvbml6YXRpb24pKXRocm93IG5ldyBGeShNeS5GQUlMRURfUFJFQ09ORElUSU9OLEdUKX0pfSxRVC5wcm90b3R5cGUuWmU9ZnVuY3Rpb24odCl7dmFyIGU9bmV3IFZfKHRoaXMuY2xpZW50SWQsdGhpcy5hbGxvd1RhYlN5bmNocm9uaXphdGlvbixEYXRlLm5vdygpKTtyZXR1cm4gWVQodCkucHV0KFZfLmtleSxlKX0sUVQueXQ9ZnVuY3Rpb24oKXtyZXR1cm4gaEkueXQoKX0sUVQucHJvdG90eXBlLlhlPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMsbj1ZVCh0KTtyZXR1cm4gbi5nZXQoVl8ua2V5KS5uZXh0KGZ1bmN0aW9uKHQpe3JldHVybiBlLnRuKHQpPyhWeSgiSW5kZXhlZERiUGVyc2lzdGVuY2UiLCJSZWxlYXNpbmcgcHJpbWFyeSBsZWFzZS4iKSxuLmRlbGV0ZShWXy5rZXkpKTp1SS5yZXNvbHZlKCl9KX0sUVQucHJvdG90eXBlLnNuPWZ1bmN0aW9uKHQsZSl7dmFyIG49RGF0ZS5ub3coKTtyZXR1cm4hKHQ8bi1lfHxuPHQmJihCeSgiRGV0ZWN0ZWQgYW4gdXBkYXRlIHRpbWUgdGhhdCBpcyBpbiB0aGUgZnV0dXJlOiAiK3QrIiA+ICIrbiksMSkpfSxRVC5wcm90b3R5cGUuV2U9ZnVuY3Rpb24oKXt2YXIgdD10aGlzO251bGwhPT10aGlzLmRvY3VtZW50JiYiZnVuY3Rpb24iPT10eXBlb2YgdGhpcy5kb2N1bWVudC5hZGRFdmVudExpc3RlbmVyJiYodGhpcy5rZT1mdW5jdGlvbigpe3QuU2UuZW5xdWV1ZUFuZEZvcmdldChmdW5jdGlvbigpe3JldHVybiB0LmluRm9yZWdyb3VuZD0idmlzaWJsZSI9PT10LmRvY3VtZW50LnZpc2liaWxpdHlTdGF0ZSx0LmplKCl9KX0sdGhpcy5kb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJ2aXNpYmlsaXR5Y2hhbmdlIix0aGlzLmtlKSx0aGlzLmluRm9yZWdyb3VuZD0idmlzaWJsZSI9PT10aGlzLmRvY3VtZW50LnZpc2liaWxpdHlTdGF0ZSl9LFFULnByb3RvdHlwZS5hbj1mdW5jdGlvbigpe3RoaXMua2UmJih0aGlzLmRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInZpc2liaWxpdHljaGFuZ2UiLHRoaXMua2UpLHRoaXMua2U9bnVsbCl9LFFULnByb3RvdHlwZS5HZT1mdW5jdGlvbigpe3ZhciB0LGU9dGhpczsiZnVuY3Rpb24iPT10eXBlb2YobnVsbD09PSh0PXRoaXMud2luZG93KXx8dm9pZCAwPT09dD92b2lkIDA6dC5hZGRFdmVudExpc3RlbmVyKSYmKHRoaXMuRmU9ZnVuY3Rpb24oKXtlLnVuKCksZS5TZS5lbnF1ZXVlQW5kRm9yZ2V0KGZ1bmN0aW9uKCl7cmV0dXJuIGUuc2h1dGRvd24oKX0pfSx0aGlzLndpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJ1bmxvYWQiLHRoaXMuRmUpKX0sUVQucHJvdG90eXBlLmhuPWZ1bmN0aW9uKCl7dGhpcy5GZSYmKHRoaXMud2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoInVubG9hZCIsdGhpcy5GZSksdGhpcy5GZT1udWxsKX0sUVQucHJvdG90eXBlLmNuPWZ1bmN0aW9uKHQpe3RyeXt2YXIgZT1udWxsIT09KG51bGw9PT0oZT10aGlzLktlKXx8dm9pZCAwPT09ZT92b2lkIDA6ZS5nZXRJdGVtKHRoaXMub24odCkpKTtyZXR1cm4gVnkoIkluZGV4ZWREYlBlcnNpc3RlbmNlIiwiQ2xpZW50ICciK3QrIicgIisoZT8iaXMiOiJpcyBub3QiKSsiIHpvbWJpZWQgaW4gTG9jYWxTdG9yYWdlIiksZX1jYXRjaCh0KXtyZXR1cm4gQnkoIkluZGV4ZWREYlBlcnNpc3RlbmNlIiwiRmFpbGVkIHRvIGdldCB6b21iaWVkIGNsaWVudCBpZC4iLHQpLCExfX0sUVQucHJvdG90eXBlLnVuPWZ1bmN0aW9uKCl7aWYodGhpcy5LZSl0cnl7dGhpcy5LZS5zZXRJdGVtKHRoaXMub24odGhpcy5jbGllbnRJZCksU3RyaW5nKERhdGUubm93KCkpKX1jYXRjaCh0KXtCeSgiRmFpbGVkIHRvIHNldCB6b21iaWUgY2xpZW50IGlkLiIsdCl9fSxRVC5wcm90b3R5cGUubG49ZnVuY3Rpb24oKXtpZih0aGlzLktlKXRyeXt0aGlzLktlLnJlbW92ZUl0ZW0odGhpcy5vbih0aGlzLmNsaWVudElkKSl9Y2F0Y2godCl7fX0sUVQucHJvdG90eXBlLm9uPWZ1bmN0aW9uKHQpe3JldHVybiJmaXJlc3RvcmVfem9tYmllXyIrdGhpcy5wZXJzaXN0ZW5jZUtleSsiXyIrdH0sUVQpO2Z1bmN0aW9uIFFUKHQsZSxuLHIsaSxvLHMsYSx1LGMpe2lmKHRoaXMuYWxsb3dUYWJTeW5jaHJvbml6YXRpb249dCx0aGlzLnBlcnNpc3RlbmNlS2V5PWUsdGhpcy5jbGllbnRJZD1uLHRoaXMuU2U9aSx0aGlzLndpbmRvdz1vLHRoaXMuZG9jdW1lbnQ9cyx0aGlzLkRlPXUsdGhpcy5DZT1jLHRoaXMuTmU9bnVsbCx0aGlzLnhlPSExLHRoaXMuaXNQcmltYXJ5PSExLHRoaXMubmV0d29ya0VuYWJsZWQ9ITAsdGhpcy5GZT1udWxsLHRoaXMuaW5Gb3JlZ3JvdW5kPSExLHRoaXMua2U9bnVsbCx0aGlzLk9lPW51bGwsdGhpcy4kZT1OdW1iZXIuTkVHQVRJVkVfSU5GSU5JVFksdGhpcy5NZT1mdW5jdGlvbih0KXtyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCl9LCFRVC55dCgpKXRocm93IG5ldyBGeShNeS5VTklNUExFTUVOVEVELCJUaGlzIHBsYXRmb3JtIGlzIGVpdGhlciBtaXNzaW5nIEluZGV4ZWREQiBvciBpcyBrbm93biB0byBoYXZlIGFuIGluY29tcGxldGUgaW1wbGVtZW50YXRpb24uIE9mZmxpbmUgcGVyc2lzdGVuY2UgaGFzIGJlZW4gZGlzYWJsZWQuIik7dGhpcy5yZWZlcmVuY2VEZWxlZ2F0ZT1uZXcgQ1QodGhpcyxyKSx0aGlzLkxlPWUrIm1haW4iLHRoaXMuUj1uZXcgT0koYSksdGhpcy5CZT1uZXcgaEkodGhpcy5MZSwxMSxuZXcgS1QodGhpcy5SKSksdGhpcy5xZT1uZXcgdlQodGhpcy5yZWZlcmVuY2VEZWxlZ2F0ZSx0aGlzLlIpLHRoaXMuVXQ9bmV3ICRJLHRoaXMuVWU9KGU9dGhpcy5SLGE9dGhpcy5VdCxuZXcgeFQoZSxhKSksdGhpcy5RZT1uZXcgR0ksdGhpcy53aW5kb3cmJnRoaXMud2luZG93LmxvY2FsU3RvcmFnZT90aGlzLktlPXRoaXMud2luZG93LmxvY2FsU3RvcmFnZToodGhpcy5LZT1udWxsLCExPT09YyYmQnkoIkluZGV4ZWREYlBlcnNpc3RlbmNlIiwiTG9jYWxTdG9yYWdlIGlzIHVuYXZhaWxhYmxlLiBBcyBhIHJlc3VsdCwgcGVyc2lzdGVuY2UgbWF5IG5vdCB3b3JrIHJlbGlhYmx5LiBJbiBwYXJ0aWN1bGFyIGVuYWJsZVBlcnNpc3RlbmNlKCkgY291bGQgZmFpbCBpbW1lZGlhdGVseSBhZnRlciByZWZyZXNoaW5nIHRoZSBwYWdlLiIpKX1mdW5jdGlvbiBZVCh0KXtyZXR1cm4gQUkodCxWXy5zdG9yZSl9ZnVuY3Rpb24gWFQodCl7cmV0dXJuIEFJKHQsZUkuc3RvcmUpfWZ1bmN0aW9uIEpUKHQsZSl7dmFyIG49dC5wcm9qZWN0SWQ7cmV0dXJuIHQuaXNEZWZhdWx0RGF0YWJhc2V8fChuKz0iLiIrdC5kYXRhYmFzZSksImZpcmVzdG9yZS8iK2UrIi8iK24rIi8ifWZ1bmN0aW9uICRUKHQsZSl7dGhpcy5wcm9ncmVzcz10LHRoaXMud249ZX12YXIgWlQ9KHNFLnByb3RvdHlwZS5tbj1mdW5jdGlvbihlLG4pe3ZhciByPXRoaXM7cmV0dXJuIHRoaXMuX24uZ2V0QWxsTXV0YXRpb25CYXRjaGVzQWZmZWN0aW5nRG9jdW1lbnRLZXkoZSxuKS5uZXh0KGZ1bmN0aW9uKHQpe3JldHVybiByLnluKGUsbix0KX0pfSxzRS5wcm90b3R5cGUueW49ZnVuY3Rpb24odCxlLHIpe3JldHVybiB0aGlzLlVlLmdldEVudHJ5KHQsZSkubmV4dChmdW5jdGlvbih0KXtmb3IodmFyIGU9MCxuPXI7ZTxuLmxlbmd0aDtlKyspbltlXS5hcHBseVRvTG9jYWxWaWV3KHQpO3JldHVybiB0fSl9LHNFLnByb3RvdHlwZS5nbj1mdW5jdGlvbih0LGkpe3QuZm9yRWFjaChmdW5jdGlvbih0LGUpe2Zvcih2YXIgbj0wLHI9aTtuPHIubGVuZ3RoO24rKylyW25dLmFwcGx5VG9Mb2NhbFZpZXcoZSl9KX0sc0UucHJvdG90eXBlLnBuPWZ1bmN0aW9uKGUsdCl7dmFyIG49dGhpcztyZXR1cm4gdGhpcy5VZS5nZXRFbnRyaWVzKGUsdCkubmV4dChmdW5jdGlvbih0KXtyZXR1cm4gbi5FbihlLHQpLm5leHQoZnVuY3Rpb24oKXtyZXR1cm4gdH0pfSl9LHNFLnByb3RvdHlwZS5Fbj1mdW5jdGlvbih0LGUpe3ZhciBuPXRoaXM7cmV0dXJuIHRoaXMuX24uZ2V0QWxsTXV0YXRpb25CYXRjaGVzQWZmZWN0aW5nRG9jdW1lbnRLZXlzKHQsZSkubmV4dChmdW5jdGlvbih0KXtyZXR1cm4gbi5nbihlLHQpfSl9LHNFLnByb3RvdHlwZS5nZXREb2N1bWVudHNNYXRjaGluZ1F1ZXJ5PWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gcj1lLENtLmlzRG9jdW1lbnRLZXkoci5wYXRoKSYmbnVsbD09PXIuY29sbGVjdGlvbkdyb3VwJiYwPT09ci5maWx0ZXJzLmxlbmd0aD90aGlzLlRuKHQsZS5wYXRoKTpPYihlKT90aGlzLkluKHQsZSxuKTp0aGlzLkFuKHQsZSxuKTt2YXIgcn0sc0UucHJvdG90eXBlLlRuPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMubW4odCxuZXcgQ20oZSkpLm5leHQoZnVuY3Rpb24odCl7dmFyIGU9R3c7cmV0dXJuIGU9dC5pc0ZvdW5kRG9jdW1lbnQoKT9lLmluc2VydCh0LmtleSx0KTplfSl9LHNFLnByb3RvdHlwZS5Jbj1mdW5jdGlvbihuLHIsaSl7dmFyIG89dGhpcyxzPXIuY29sbGVjdGlvbkdyb3VwLGE9R3c7cmV0dXJuIHRoaXMuVXQuZ2V0Q29sbGVjdGlvblBhcmVudHMobixzKS5uZXh0KGZ1bmN0aW9uKHQpe3JldHVybiB1SS5mb3JFYWNoKHQsZnVuY3Rpb24odCl7dmFyIGUsZT0oZT1yLHQ9dC5jaGlsZChzKSxuZXcgU2IodCxudWxsLGUuZXhwbGljaXRPcmRlckJ5LnNsaWNlKCksZS5maWx0ZXJzLnNsaWNlKCksZS5saW1pdCxlLmxpbWl0VHlwZSxlLnN0YXJ0QXQsZS5lbmRBdCkpO3JldHVybiBvLkFuKG4sZSxpKS5uZXh0KGZ1bmN0aW9uKHQpe3QuZm9yRWFjaChmdW5jdGlvbih0LGUpe2E9YS5pbnNlcnQodCxlKX0pfSl9KS5uZXh0KGZ1bmN0aW9uKCl7cmV0dXJuIGF9KX0pfSxzRS5wcm90b3R5cGUuQW49ZnVuY3Rpb24oZSxuLHQpe3ZhciBjLGgscj10aGlzO3JldHVybiB0aGlzLlVlLmdldERvY3VtZW50c01hdGNoaW5nUXVlcnkoZSxuLHQpLm5leHQoZnVuY3Rpb24odCl7cmV0dXJuIGM9dCxyLl9uLmdldEFsbE11dGF0aW9uQmF0Y2hlc0FmZmVjdGluZ1F1ZXJ5KGUsbil9KS5uZXh0KGZ1bmN0aW9uKHQpe3JldHVybiBoPXQsci5SbihlLGgsYykubmV4dChmdW5jdGlvbih0KXtjPXQ7Zm9yKHZhciBlPTAsbj1oO2U8bi5sZW5ndGg7ZSsrKWZvcih2YXIgcj1uW2VdLGk9MCxvPXIubXV0YXRpb25zO2k8by5sZW5ndGg7aSsrKXt2YXIgcz1vW2ldLGE9cy5rZXksdT1jLmdldChhKTtudWxsPT11JiYodT1CbS5uZXdJbnZhbGlkRG9jdW1lbnQoYSksYz1jLmluc2VydChhLHUpKSxmdyhzLHUsci5sb2NhbFdyaXRlVGltZSksdS5pc0ZvdW5kRG9jdW1lbnQoKXx8KGM9Yy5yZW1vdmUoYSkpfX0pfSkubmV4dChmdW5jdGlvbigpe3JldHVybiBjLmZvckVhY2goZnVuY3Rpb24odCxlKXtqYihuLGUpfHwoYz1jLnJlbW92ZSh0KSl9KSxjfSl9LHNFLnByb3RvdHlwZS5Sbj1mdW5jdGlvbih0LGUsbil7Zm9yKHZhciByPVl3KCksaT0wLG89ZTtpPG8ubGVuZ3RoO2krKylmb3IodmFyIHM9MCxhPW9baV0ubXV0YXRpb25zO3M8YS5sZW5ndGg7cysrKXt2YXIgdT1hW3NdO3UgaW5zdGFuY2VvZiBtdyYmbnVsbD09PW4uZ2V0KHUua2V5KSYmKHI9ci5hZGQodS5rZXkpKX12YXIgYz1uO3JldHVybiB0aGlzLlVlLmdldEVudHJpZXModCxyKS5uZXh0KGZ1bmN0aW9uKHQpe3JldHVybiB0LmZvckVhY2goZnVuY3Rpb24odCxlKXtlLmlzRm91bmREb2N1bWVudCgpJiYoYz1jLmluc2VydCh0LGUpKX0pLGN9KX0sc0UpLHRFPShvRS5Qbj1mdW5jdGlvbih0LGUpe2Zvcih2YXIgbj1ZdygpLHI9WXcoKSxpPTAsbz1lLmRvY0NoYW5nZXM7aTxvLmxlbmd0aDtpKyspe3ZhciBzPW9baV07c3dpdGNoKHMudHlwZSl7Y2FzZSAwOm49bi5hZGQocy5kb2Mua2V5KTticmVhaztjYXNlIDE6cj1yLmFkZChzLmRvYy5rZXkpfX1yZXR1cm4gbmV3IG9FKHQsZS5mcm9tQ2FjaGUsbixyKX0sb0UpLGVFPShpRS5wcm90b3R5cGUuVm49ZnVuY3Rpb24odCl7dGhpcy5Tbj10fSxpRS5wcm90b3R5cGUuZ2V0RG9jdW1lbnRzTWF0Y2hpbmdRdWVyeT1mdW5jdGlvbihlLHIsaSxvKXt2YXIgcz10aGlzO3JldHVybiAwPT09ci5maWx0ZXJzLmxlbmd0aCYmbnVsbD09PXIubGltaXQmJm51bGw9PXIuc3RhcnRBdCYmbnVsbD09ci5lbmRBdCYmKDA9PT1yLmV4cGxpY2l0T3JkZXJCeS5sZW5ndGh8fDE9PT1yLmV4cGxpY2l0T3JkZXJCeS5sZW5ndGgmJnIuZXhwbGljaXRPcmRlckJ5WzBdLmZpZWxkLmlzS2V5RmllbGQoKSl8fGkuaXNFcXVhbChaeS5taW4oKSk/dGhpcy5EbihlLHIpOnRoaXMuU24ucG4oZSxvKS5uZXh0KGZ1bmN0aW9uKHQpe3ZhciBuPXMuQ24ocix0KTtyZXR1cm4oQWIocil8fGtiKHIpKSYmcy5ObihyLmxpbWl0VHlwZSxuLG8saSk/cy5EbihlLHIpOihxeSgpPD1hcy5ERUJVRyYmVnkoIlF1ZXJ5RW5naW5lIiwiUmUtdXNpbmcgcHJldmlvdXMgcmVzdWx0IGZyb20gJXMgdG8gZXhlY3V0ZSBxdWVyeTogJXMiLGkudG9TdHJpbmcoKSxVYihyKSkscy5Tbi5nZXREb2N1bWVudHNNYXRjaGluZ1F1ZXJ5KGUscixpKS5uZXh0KGZ1bmN0aW9uKGUpe3JldHVybiBuLmZvckVhY2goZnVuY3Rpb24odCl7ZT1lLmluc2VydCh0LmtleSx0KX0pLGV9KSl9KX0saUUucHJvdG90eXBlLkNuPWZ1bmN0aW9uKG4sdCl7dmFyIHI9bmV3IFZ3KHFiKG4pKTtyZXR1cm4gdC5mb3JFYWNoKGZ1bmN0aW9uKHQsZSl7amIobixlKSYmKHI9ci5hZGQoZSkpfSkscn0saUUucHJvdG90eXBlLk5uPWZ1bmN0aW9uKHQsZSxuLHIpe2lmKG4uc2l6ZSE9PWUuc2l6ZSlyZXR1cm4hMDtlPSJGIj09PXQ/ZS5sYXN0KCk6ZS5maXJzdCgpO3JldHVybiEhZSYmKGUuaGFzUGVuZGluZ1dyaXRlc3x8MDxlLnZlcnNpb24uY29tcGFyZVRvKHIpKX0saUUucHJvdG90eXBlLkRuPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHF5KCk8PWFzLkRFQlVHJiZWeSgiUXVlcnlFbmdpbmUiLCJVc2luZyBmdWxsIGNvbGxlY3Rpb24gc2NhbiB0byBleGVjdXRlIHF1ZXJ5OiIsVWIoZSkpLHRoaXMuU24uZ2V0RG9jdW1lbnRzTWF0Y2hpbmdRdWVyeSh0LGUsWnkubWluKCkpfSxpRSksbkU9KHJFLnByb3RvdHlwZS5jb2xsZWN0R2FyYmFnZT1mdW5jdGlvbihlKXt2YXIgbj10aGlzO3JldHVybiB0aGlzLnBlcnNpc3RlbmNlLnJ1blRyYW5zYWN0aW9uKCJDb2xsZWN0IGdhcmJhZ2UiLCJyZWFkd3JpdGUtcHJpbWFyeSIsZnVuY3Rpb24odCl7cmV0dXJuIGUuY29sbGVjdCh0LG4uRm4pfSl9LHJFKTtmdW5jdGlvbiByRSh0LGUsbixyKXt0aGlzLnBlcnNpc3RlbmNlPXQsdGhpcy54bj1lLHRoaXMuUj1yLHRoaXMuRm49bmV3IHh3KFl5KSx0aGlzLmtuPW5ldyBEVChHbSx6bSksdGhpcy5Pbj1aeS5taW4oKSx0aGlzLl9uPXQuZ2V0TXV0YXRpb25RdWV1ZShuKSx0aGlzLiRuPXQuZ2V0UmVtb3RlRG9jdW1lbnRDYWNoZSgpLHRoaXMucWU9dC5nZXRUYXJnZXRDYWNoZSgpLHRoaXMuTW49bmV3IFpUKHRoaXMuJG4sdGhpcy5fbix0aGlzLnBlcnNpc3RlbmNlLmdldEluZGV4TWFuYWdlcigpKSx0aGlzLlFlPXQuZ2V0QnVuZGxlQ2FjaGUoKSx0aGlzLnhuLlZuKHRoaXMuTW4pfWZ1bmN0aW9uIGlFKCl7fWZ1bmN0aW9uIG9FKHQsZSxuLHIpe3RoaXMudGFyZ2V0SWQ9dCx0aGlzLmZyb21DYWNoZT1lLHRoaXMuYm49bix0aGlzLnZuPXJ9ZnVuY3Rpb24gc0UodCxlLG4pe3RoaXMuVWU9dCx0aGlzLl9uPWUsdGhpcy5VdD1ufWZ1bmN0aW9uIGFFKHQsZSxuLHIpe3JldHVybiBuZXcgbkUodCxlLG4scil9ZnVuY3Rpb24gdUUoaSxvKXtyZXR1cm4gJGkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIGUsbixtLHI7cmV0dXJuIFppKHRoaXMsZnVuY3Rpb24odCl7c3dpdGNoKHQubGFiZWwpe2Nhc2UgMDpyZXR1cm4gbj0oZT1pKS5fbixtPWUuTW4sWzQsZS5wZXJzaXN0ZW5jZS5ydW5UcmFuc2FjdGlvbigiSGFuZGxlIHVzZXIgY2hhbmdlIiwicmVhZG9ubHkiLGZ1bmN0aW9uKGcpe3ZhciB5O3JldHVybiBlLl9uLmdldEFsbE11dGF0aW9uQmF0Y2hlcyhnKS5uZXh0KGZ1bmN0aW9uKHQpe3JldHVybiB5PXQsbj1lLnBlcnNpc3RlbmNlLmdldE11dGF0aW9uUXVldWUobyksbT1uZXcgWlQoZS4kbixuLGUucGVyc2lzdGVuY2UuZ2V0SW5kZXhNYW5hZ2VyKCkpLG4uZ2V0QWxsTXV0YXRpb25CYXRjaGVzKGcpfSkubmV4dChmdW5jdGlvbih0KXtmb3IodmFyIGU9W10sbj1bXSxyPVl3KCksaT0wLG89eTtpPG8ubGVuZ3RoO2krKyl7dmFyIHM9b1tpXTtlLnB1c2gocy5iYXRjaElkKTtmb3IodmFyIGE9MCx1PXMubXV0YXRpb25zO2E8dS5sZW5ndGg7YSsrKXZhciBjPXVbYV0scj1yLmFkZChjLmtleSl9Zm9yKHZhciBoPTAsbD10O2g8bC5sZW5ndGg7aCsrKXt2YXIgZj1sW2hdO24ucHVzaChmLmJhdGNoSWQpO2Zvcih2YXIgcD0wLGQ9Zi5tdXRhdGlvbnM7cDxkLmxlbmd0aDtwKyspe3ZhciB2PWRbcF07cj1yLmFkZCh2LmtleSl9fXJldHVybiBtLnBuKGcscikubmV4dChmdW5jdGlvbih0KXtyZXR1cm57TG46dCxyZW1vdmVkQmF0Y2hJZHM6ZSxhZGRlZEJhdGNoSWRzOm59fSl9KX0pXTtjYXNlIDE6cmV0dXJuIHI9dC5zZW50KCksWzIsKGUuX249bixlLk1uPW0sZS54bi5WbihlLk1uKSxyKV19fSl9KX1mdW5jdGlvbiBjRSh0LGgpe3ZhciBsPXQ7cmV0dXJuIGwucGVyc2lzdGVuY2UucnVuVHJhbnNhY3Rpb24oIkFja25vd2xlZGdlIGJhdGNoIiwicmVhZHdyaXRlLXByaW1hcnkiLGZ1bmN0aW9uKHQpe3ZhciBlLHIsaSxvLHMsbixhLHU9aC5iYXRjaC5rZXlzKCksYz1sLiRuLm5ld0NoYW5nZUJ1ZmZlcih7dHJhY2tSZW1vdmFsczohMH0pO3JldHVybiBlPWwscj10LG89YyxzPShpPWgpLmJhdGNoLG49cy5rZXlzKCksYT11SS5yZXNvbHZlKCksbi5mb3JFYWNoKGZ1bmN0aW9uKG4pe2E9YS5uZXh0KGZ1bmN0aW9uKCl7cmV0dXJuIG8uZ2V0RW50cnkocixuKX0pLm5leHQoZnVuY3Rpb24odCl7dmFyIGU9aS5kb2NWZXJzaW9ucy5nZXQobik7R3kobnVsbCE9PWUpLHQudmVyc2lvbi5jb21wYXJlVG8oZSk8MCYmKHMuYXBwbHlUb1JlbW90ZURvY3VtZW50KHQsaSksdC5pc1ZhbGlkRG9jdW1lbnQoKSYmby5hZGRFbnRyeSh0LGkuY29tbWl0VmVyc2lvbikpfSl9KSxhLm5leHQoZnVuY3Rpb24oKXtyZXR1cm4gZS5fbi5yZW1vdmVNdXRhdGlvbkJhdGNoKHIscyl9KS5uZXh0KGZ1bmN0aW9uKCl7cmV0dXJuIGMuYXBwbHkodCl9KS5uZXh0KGZ1bmN0aW9uKCl7cmV0dXJuIGwuX24ucGVyZm9ybUNvbnNpc3RlbmN5Q2hlY2sodCl9KS5uZXh0KGZ1bmN0aW9uKCl7cmV0dXJuIGwuTW4ucG4odCx1KX0pfSl9ZnVuY3Rpb24gaEUodCl7dmFyIGU9dDtyZXR1cm4gZS5wZXJzaXN0ZW5jZS5ydW5UcmFuc2FjdGlvbigiR2V0IGxhc3QgcmVtb3RlIHNuYXBzaG90IHZlcnNpb24iLCJyZWFkb25seSIsZnVuY3Rpb24odCl7cmV0dXJuIGUucWUuZ2V0TGFzdFJlbW90ZVNuYXBzaG90VmVyc2lvbih0KX0pfWZ1bmN0aW9uIGxFKHQscil7dmFyIHU9dCxjPXIuc25hcHNob3RWZXJzaW9uLGg9dS5GbjtyZXR1cm4gdS5wZXJzaXN0ZW5jZS5ydW5UcmFuc2FjdGlvbigiQXBwbHkgcmVtb3RlIGV2ZW50IiwicmVhZHdyaXRlLXByaW1hcnkiLGZ1bmN0aW9uKHMpe3ZhciB0PXUuJG4ubmV3Q2hhbmdlQnVmZmVyKHt0cmFja1JlbW92YWxzOiEwfSk7aD11LkZuO3ZhciBhPVtdO3IudGFyZ2V0Q2hhbmdlcy5mb3JFYWNoKGZ1bmN0aW9uKHQsZSl7dmFyIG4scixpLG89aC5nZXQoZSk7byYmKGEucHVzaCh1LnFlLnJlbW92ZU1hdGNoaW5nS2V5cyhzLHQucmVtb3ZlZERvY3VtZW50cyxlKS5uZXh0KGZ1bmN0aW9uKCl7cmV0dXJuIHUucWUuYWRkTWF0Y2hpbmdLZXlzKHMsdC5hZGRlZERvY3VtZW50cyxlKX0pKSwwPChpPXQucmVzdW1lVG9rZW4pLmFwcHJveGltYXRlQnl0ZVNpemUoKSYmKG49by53aXRoUmVzdW1lVG9rZW4oaSxjKS53aXRoU2VxdWVuY2VOdW1iZXIocy5jdXJyZW50U2VxdWVuY2VOdW1iZXIpLGg9aC5pbnNlcnQoZSxuKSxyPW8saT10LEd5KDA8KG89bikucmVzdW1lVG9rZW4uYXBwcm94aW1hdGVCeXRlU2l6ZSgpKSwoMD09PXIucmVzdW1lVG9rZW4uYXBwcm94aW1hdGVCeXRlU2l6ZSgpfHwzZTg8PW8uc25hcHNob3RWZXJzaW9uLnRvTWljcm9zZWNvbmRzKCktci5zbmFwc2hvdFZlcnNpb24udG9NaWNyb3NlY29uZHMoKXx8MDxpLmFkZGVkRG9jdW1lbnRzLnNpemUraS5tb2RpZmllZERvY3VtZW50cy5zaXplK2kucmVtb3ZlZERvY3VtZW50cy5zaXplKSYmYS5wdXNoKHUucWUudXBkYXRlVGFyZ2V0RGF0YShzLG4pKSkpfSk7dmFyIGUsbj1LdztyZXR1cm4gci5kb2N1bWVudFVwZGF0ZXMuZm9yRWFjaChmdW5jdGlvbih0LGUpe3IucmVzb2x2ZWRMaW1ib0RvY3VtZW50cy5oYXModCkmJmEucHVzaCh1LnBlcnNpc3RlbmNlLnJlZmVyZW5jZURlbGVnYXRlLnVwZGF0ZUxpbWJvRG9jdW1lbnQocyx0KSl9KSxhLnB1c2goZkUocyx0LHIuZG9jdW1lbnRVcGRhdGVzLGMsdm9pZCAwKS5uZXh0KGZ1bmN0aW9uKHQpe249dH0pKSxjLmlzRXF1YWwoWnkubWluKCkpfHwoZT11LnFlLmdldExhc3RSZW1vdGVTbmFwc2hvdFZlcnNpb24ocykubmV4dChmdW5jdGlvbih0KXtyZXR1cm4gdS5xZS5zZXRUYXJnZXRzTWV0YWRhdGEocyxzLmN1cnJlbnRTZXF1ZW5jZU51bWJlcixjKX0pLGEucHVzaChlKSksdUkud2FpdEZvcihhKS5uZXh0KGZ1bmN0aW9uKCl7cmV0dXJuIHQuYXBwbHkocyl9KS5uZXh0KGZ1bmN0aW9uKCl7cmV0dXJuIHUuTW4uRW4ocyxuKX0pLm5leHQoZnVuY3Rpb24oKXtyZXR1cm4gbn0pfSkudGhlbihmdW5jdGlvbih0KXtyZXR1cm4gdS5Gbj1oLHR9KX1mdW5jdGlvbiBmRSh0LHMsZSxhLHUpe3ZhciBuPVl3KCk7cmV0dXJuIGUuZm9yRWFjaChmdW5jdGlvbih0KXtyZXR1cm4gbj1uLmFkZCh0KX0pLHMuZ2V0RW50cmllcyh0LG4pLm5leHQoZnVuY3Rpb24oaSl7dmFyIG89S3c7cmV0dXJuIGUuZm9yRWFjaChmdW5jdGlvbih0LGUpe3ZhciBuPWkuZ2V0KHQpLHI9KG51bGw9PXU/dm9pZCAwOnUuZ2V0KHQpKXx8YTtlLmlzTm9Eb2N1bWVudCgpJiZlLnZlcnNpb24uaXNFcXVhbChaeS5taW4oKSk/KHMucmVtb3ZlRW50cnkodCxyKSxvPW8uaW5zZXJ0KHQsZSkpOiFuLmlzVmFsaWREb2N1bWVudCgpfHwwPGUudmVyc2lvbi5jb21wYXJlVG8obi52ZXJzaW9uKXx8MD09PWUudmVyc2lvbi5jb21wYXJlVG8obi52ZXJzaW9uKSYmbi5oYXNQZW5kaW5nV3JpdGVzPyhzLmFkZEVudHJ5KGUsciksbz1vLmluc2VydCh0LGUpKTpWeSgiTG9jYWxTdG9yZSIsIklnbm9yaW5nIG91dGRhdGVkIHdhdGNoIHVwZGF0ZSBmb3IgIix0LCIuIEN1cnJlbnQgdmVyc2lvbjoiLG4udmVyc2lvbiwiIFdhdGNoIHZlcnNpb246IixlLnZlcnNpb24pfSksb30pfWZ1bmN0aW9uIHBFKHQscil7dmFyIGk9dDtyZXR1cm4gaS5wZXJzaXN0ZW5jZS5ydW5UcmFuc2FjdGlvbigiQWxsb2NhdGUgdGFyZ2V0IiwicmVhZHdyaXRlIixmdW5jdGlvbihlKXt2YXIgbjtyZXR1cm4gaS5xZS5nZXRUYXJnZXREYXRhKGUscikubmV4dChmdW5jdGlvbih0KXtyZXR1cm4gdD8obj10LHVJLnJlc29sdmUobikpOmkucWUuYWxsb2NhdGVUYXJnZXRJZChlKS5uZXh0KGZ1bmN0aW9uKHQpe3JldHVybiBuPW5ldyBQSShyLHQsMCxlLmN1cnJlbnRTZXF1ZW5jZU51bWJlciksaS5xZS5hZGRUYXJnZXREYXRhKGUsbikubmV4dChmdW5jdGlvbigpe3JldHVybiBufSl9KX0pfSkudGhlbihmdW5jdGlvbih0KXt2YXIgZT1pLkZuLmdldCh0LnRhcmdldElkKTtyZXR1cm4obnVsbD09PWV8fDA8dC5zbmFwc2hvdFZlcnNpb24uY29tcGFyZVRvKGUuc25hcHNob3RWZXJzaW9uKSkmJihpLkZuPWkuRm4uaW5zZXJ0KHQudGFyZ2V0SWQsdCksaS5rbi5zZXQocix0LnRhcmdldElkKSksdH0pfWZ1bmN0aW9uIGRFKGksbyxzKXtyZXR1cm4gJGkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIGUsbixyO3JldHVybiBaaSh0aGlzLGZ1bmN0aW9uKHQpe3N3aXRjaCh0LmxhYmVsKXtjYXNlIDA6bj0oZT1pKS5Gbi5nZXQobykscj1zPyJyZWFkd3JpdGUiOiJyZWFkd3JpdGUtcHJpbWFyeSIsdC5sYWJlbD0xO2Nhc2UgMTpyZXR1cm4gdC50cnlzLnB1c2goWzEsNCwsNV0pLHM/WzMsM106WzQsZS5wZXJzaXN0ZW5jZS5ydW5UcmFuc2FjdGlvbigiUmVsZWFzZSB0YXJnZXQiLHIsZnVuY3Rpb24odCl7cmV0dXJuIGUucGVyc2lzdGVuY2UucmVmZXJlbmNlRGVsZWdhdGUucmVtb3ZlVGFyZ2V0KHQsbil9KV07Y2FzZSAyOnQuc2VudCgpLHQubGFiZWw9MztjYXNlIDM6cmV0dXJuWzMsNV07Y2FzZSA0OmlmKCFiSShyPXQuc2VudCgpKSl0aHJvdyByO3JldHVybiBWeSgiTG9jYWxTdG9yZSIsIkZhaWxlZCB0byB1cGRhdGUgc2VxdWVuY2UgbnVtYmVycyBmb3IgdGFyZ2V0ICIrbysiOiAiK3IpLFszLDVdO2Nhc2UgNTpyZXR1cm4gZS5Gbj1lLkZuLnJlbW92ZShvKSxlLmtuLmRlbGV0ZShuLnRhcmdldCksWzJdfX0pfSl9ZnVuY3Rpb24gdkUodCxvLHMpe3ZhciBhPXQsdT1aeS5taW4oKSxjPVl3KCk7cmV0dXJuIGEucGVyc2lzdGVuY2UucnVuVHJhbnNhY3Rpb24oIkV4ZWN1dGUgcXVlcnkiLCJyZWFkb25seSIsZnVuY3Rpb24oZSl7cmV0dXJuIHQ9YSxuPWUscj14YihvKSwodm9pZCAwIT09KHQ9KGk9dCkua24uZ2V0KHIpKT91SS5yZXNvbHZlKGkuRm4uZ2V0KHQpKTppLnFlLmdldFRhcmdldERhdGEobixyKSkubmV4dChmdW5jdGlvbih0KXtpZih0KXJldHVybiB1PXQubGFzdExpbWJvRnJlZVNuYXBzaG90VmVyc2lvbixhLnFlLmdldE1hdGNoaW5nS2V5c0ZvclRhcmdldElkKGUsdC50YXJnZXRJZCkubmV4dChmdW5jdGlvbih0KXtjPXR9KX0pLm5leHQoZnVuY3Rpb24oKXtyZXR1cm4gYS54bi5nZXREb2N1bWVudHNNYXRjaGluZ1F1ZXJ5KGUsbyxzP3U6WnkubWluKCkscz9jOll3KCkpfSkubmV4dChmdW5jdGlvbih0KXtyZXR1cm57ZG9jdW1lbnRzOnQsQm46Y319KTt2YXIgdCxuLHIsaX0pfWZ1bmN0aW9uIGdFKHQsZSl7dmFyIG49dCxyPW4ucWUsdD1uLkZuLmdldChlKTtyZXR1cm4gdD9Qcm9taXNlLnJlc29sdmUodC50YXJnZXQpOm4ucGVyc2lzdGVuY2UucnVuVHJhbnNhY3Rpb24oIkdldCB0YXJnZXQgZGF0YSIsInJlYWRvbmx5IixmdW5jdGlvbih0KXtyZXR1cm4gci5sdCh0LGUpLm5leHQoZnVuY3Rpb24odCl7cmV0dXJuIHQ/dC50YXJnZXQ6bnVsbH0pfSl9ZnVuY3Rpb24geUUodCl7dmFyIHM9dDtyZXR1cm4gcy5wZXJzaXN0ZW5jZS5ydW5UcmFuc2FjdGlvbigiR2V0IG5ldyBkb2N1bWVudCBjaGFuZ2VzIiwicmVhZG9ubHkiLGZ1bmN0aW9uKHQpe3JldHVybiBlPXMuJG4sbj10LHQ9cy5PbixyPWUsaT1LdyxvPVVJKHQpLHQ9VlQobiksbj1JREJLZXlSYW5nZS5sb3dlckJvdW5kKG8sITApLHQuT3Qoe2luZGV4OllfLnJlYWRUaW1lSW5kZXgscmFuZ2U6bn0sZnVuY3Rpb24odCxlKXt2YXIgbj1NSShyLlIsZSk7aT1pLmluc2VydChuLmtleSxuKSxvPWUucmVhZFRpbWV9KS5uZXh0KGZ1bmN0aW9uKCl7cmV0dXJue3duOmkscmVhZFRpbWU6akkobyl9fSk7dmFyIGUsbixyLGksb30pLnRoZW4oZnVuY3Rpb24odCl7dmFyIGU9dC53bix0PXQucmVhZFRpbWU7cmV0dXJuIHMuT249dCxlfSl9ZnVuY3Rpb24gbUUobil7cmV0dXJuICRpKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBlO3JldHVybiBaaSh0aGlzLGZ1bmN0aW9uKHQpe3JldHVyblsyLChlPW4pLnBlcnNpc3RlbmNlLnJ1blRyYW5zYWN0aW9uKCJTeW5jaHJvbml6ZSBsYXN0IGRvY3VtZW50IGNoYW5nZSByZWFkIHRpbWUiLCJyZWFkb25seSIsZnVuY3Rpb24odCl7cmV0dXJuIHQ9VlQodCkscj1aeS5taW4oKSx0Lk90KHtpbmRleDpZXy5yZWFkVGltZUluZGV4LHJldmVyc2U6ITB9LGZ1bmN0aW9uKHQsZSxuKXtlLnJlYWRUaW1lJiYocj1qSShlLnJlYWRUaW1lKSksbi5kb25lKCl9KS5uZXh0KGZ1bmN0aW9uKCl7cmV0dXJuIHJ9KTt2YXIgcn0pLnRoZW4oZnVuY3Rpb24odCl7ZS5Pbj10fSldfSl9KX12YXIgYkUsd0UsX0U9KEJFLnByb3RvdHlwZS5nZXRCdW5kbGVNZXRhZGF0YT1mdW5jdGlvbih0LGUpe3JldHVybiB1SS5yZXNvbHZlKHRoaXMuS24uZ2V0KGUpKX0sQkUucHJvdG90eXBlLnNhdmVCdW5kbGVNZXRhZGF0YT1mdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLktuLnNldChlLmlkLHtpZDplLmlkLHZlcnNpb246ZS52ZXJzaW9uLGNyZWF0ZVRpbWU6dl8oZS5jcmVhdGVUaW1lKX0pLHVJLnJlc29sdmUoKX0sQkUucHJvdG90eXBlLmdldE5hbWVkUXVlcnk9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdUkucmVzb2x2ZSh0aGlzLmpuLmdldChlKSl9LEJFLnByb3RvdHlwZS5zYXZlTmFtZWRRdWVyeT1mdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLmpuLnNldChlLm5hbWUse25hbWU6KGU9ZSkubmFtZSxxdWVyeTpISShlLmJ1bmRsZWRRdWVyeSkscmVhZFRpbWU6dl8oZS5yZWFkVGltZSl9KSx1SS5yZXNvbHZlKCl9LEJFKSxJRT0oVkUucHJvdG90eXBlLmlzRW1wdHk9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5Xbi5pc0VtcHR5KCl9LFZFLnByb3RvdHlwZS5hZGRSZWZlcmVuY2U9ZnVuY3Rpb24odCxlKXtlPW5ldyBURSh0LGUpO3RoaXMuV249dGhpcy5Xbi5hZGQoZSksdGhpcy56bj10aGlzLnpuLmFkZChlKX0sVkUucHJvdG90eXBlLkpuPWZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpczt0LmZvckVhY2goZnVuY3Rpb24odCl7cmV0dXJuIG4uYWRkUmVmZXJlbmNlKHQsZSl9KX0sVkUucHJvdG90eXBlLnJlbW92ZVJlZmVyZW5jZT1mdW5jdGlvbih0LGUpe3RoaXMuWW4obmV3IFRFKHQsZSkpfSxWRS5wcm90b3R5cGUuWG49ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzO3QuZm9yRWFjaChmdW5jdGlvbih0KXtyZXR1cm4gbi5yZW1vdmVSZWZlcmVuY2UodCxlKX0pfSxWRS5wcm90b3R5cGUuWm49ZnVuY3Rpb24odCl7dmFyIGU9dGhpcyxuPW5ldyBDbShuZXcgYW0oW10pKSxyPW5ldyBURShuLHQpLHQ9bmV3IFRFKG4sdCsxKSxpPVtdO3JldHVybiB0aGlzLnpuLmZvckVhY2hJblJhbmdlKFtyLHRdLGZ1bmN0aW9uKHQpe2UuWW4odCksaS5wdXNoKHQua2V5KX0pLGl9LFZFLnByb3RvdHlwZS50cz1mdW5jdGlvbigpe3ZhciBlPXRoaXM7dGhpcy5Xbi5mb3JFYWNoKGZ1bmN0aW9uKHQpe3JldHVybiBlLlluKHQpfSl9LFZFLnByb3RvdHlwZS5Zbj1mdW5jdGlvbih0KXt0aGlzLlduPXRoaXMuV24uZGVsZXRlKHQpLHRoaXMuem49dGhpcy56bi5kZWxldGUodCl9LFZFLnByb3RvdHlwZS5lcz1mdW5jdGlvbih0KXt2YXIgZT1uZXcgQ20obmV3IGFtKFtdKSksbj1uZXcgVEUoZSx0KSx0PW5ldyBURShlLHQrMSkscj1ZdygpO3JldHVybiB0aGlzLnpuLmZvckVhY2hJblJhbmdlKFtuLHRdLGZ1bmN0aW9uKHQpe3I9ci5hZGQodC5rZXkpfSkscn0sVkUucHJvdG90eXBlLmNvbnRhaW5zS2V5PWZ1bmN0aW9uKHQpe3ZhciBlPW5ldyBURSh0LDApLGU9dGhpcy5Xbi5maXJzdEFmdGVyT3JFcXVhbChlKTtyZXR1cm4gbnVsbCE9PWUmJnQuaXNFcXVhbChlLmtleSl9LFZFKSxURT0ocUUuR249ZnVuY3Rpb24odCxlKXtyZXR1cm4gQ20uY29tcGFyYXRvcih0LmtleSxlLmtleSl8fFl5KHQubnMsZS5ucyl9LHFFLkhuPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIFl5KHQubnMsZS5ucyl8fENtLmNvbXBhcmF0b3IodC5rZXksZS5rZXkpfSxxRSksRUU9KGpFLnByb3RvdHlwZS5jaGVja0VtcHR5PWZ1bmN0aW9uKHQpe3JldHVybiB1SS5yZXNvbHZlKDA9PT10aGlzLl9uLmxlbmd0aCl9LGpFLnByb3RvdHlwZS5hZGRNdXRhdGlvbkJhdGNoPWZ1bmN0aW9uKHQsZSxuLHIpe3ZhciBpPXRoaXMuc3M7dGhpcy5zcysrLDA8dGhpcy5fbi5sZW5ndGgmJnRoaXMuX25bdGhpcy5fbi5sZW5ndGgtMV07bj1uZXcga0koaSxlLG4scik7dGhpcy5fbi5wdXNoKG4pO2Zvcih2YXIgbz0wLHM9cjtvPHMubGVuZ3RoO28rKyl7dmFyIGE9c1tvXTt0aGlzLnJzPXRoaXMucnMuYWRkKG5ldyBURShhLmtleSxpKSksdGhpcy5VdC5hZGRUb0NvbGxlY3Rpb25QYXJlbnRJbmRleCh0LGEua2V5LnBhdGgucG9wTGFzdCgpKX1yZXR1cm4gdUkucmVzb2x2ZShuKX0sakUucHJvdG90eXBlLmxvb2t1cE11dGF0aW9uQmF0Y2g9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdUkucmVzb2x2ZSh0aGlzLm9zKGUpKX0sakUucHJvdG90eXBlLmdldE5leHRNdXRhdGlvbkJhdGNoQWZ0ZXJCYXRjaElkPWZ1bmN0aW9uKHQsZSl7ZSs9MSxlPXRoaXMuY3MoZSksZT1lPDA/MDplO3JldHVybiB1SS5yZXNvbHZlKHRoaXMuX24ubGVuZ3RoPmU/dGhpcy5fbltlXTpudWxsKX0sakUucHJvdG90eXBlLmdldEhpZ2hlc3RVbmFja25vd2xlZGdlZEJhdGNoSWQ9ZnVuY3Rpb24oKXtyZXR1cm4gdUkucmVzb2x2ZSgwPT09dGhpcy5fbi5sZW5ndGg/LTE6dGhpcy5zcy0xKX0sakUucHJvdG90eXBlLmdldEFsbE11dGF0aW9uQmF0Y2hlcz1mdW5jdGlvbih0KXtyZXR1cm4gdUkucmVzb2x2ZSh0aGlzLl9uLnNsaWNlKCkpfSxqRS5wcm90b3R5cGUuZ2V0QWxsTXV0YXRpb25CYXRjaGVzQWZmZWN0aW5nRG9jdW1lbnRLZXk9ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzLHI9bmV3IFRFKGUsMCksZT1uZXcgVEUoZSxOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFkpLGk9W107cmV0dXJuIHRoaXMucnMuZm9yRWFjaEluUmFuZ2UoW3IsZV0sZnVuY3Rpb24odCl7dD1uLm9zKHQubnMpO2kucHVzaCh0KX0pLHVJLnJlc29sdmUoaSl9LGpFLnByb3RvdHlwZS5nZXRBbGxNdXRhdGlvbkJhdGNoZXNBZmZlY3RpbmdEb2N1bWVudEtleXM9ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzLHI9bmV3IFZ3KFl5KTtyZXR1cm4gZS5mb3JFYWNoKGZ1bmN0aW9uKHQpe3ZhciBlPW5ldyBURSh0LDApLHQ9bmV3IFRFKHQsTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZKTtuLnJzLmZvckVhY2hJblJhbmdlKFtlLHRdLGZ1bmN0aW9uKHQpe3I9ci5hZGQodC5ucyl9KX0pLHVJLnJlc29sdmUodGhpcy51cyhyKSl9LGpFLnByb3RvdHlwZS5nZXRBbGxNdXRhdGlvbkJhdGNoZXNBZmZlY3RpbmdRdWVyeT1mdW5jdGlvbih0LGUpe3ZhciBuPWUucGF0aCxyPW4ubGVuZ3RoKzEsZT1uO0NtLmlzRG9jdW1lbnRLZXkoZSl8fChlPWUuY2hpbGQoIiIpKTt2YXIgZT1uZXcgVEUobmV3IENtKGUpLDApLGk9bmV3IFZ3KFl5KTtyZXR1cm4gdGhpcy5ycy5mb3JFYWNoV2hpbGUoZnVuY3Rpb24odCl7dmFyIGU9dC5rZXkucGF0aDtyZXR1cm4hIW4uaXNQcmVmaXhPZihlKSYmKGUubGVuZ3RoPT09ciYmKGk9aS5hZGQodC5ucykpLCEwKX0sZSksdUkucmVzb2x2ZSh0aGlzLnVzKGkpKX0sakUucHJvdG90eXBlLnVzPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMsbj1bXTtyZXR1cm4gdC5mb3JFYWNoKGZ1bmN0aW9uKHQpe3Q9ZS5vcyh0KTtudWxsIT09dCYmbi5wdXNoKHQpfSksbn0sakUucHJvdG90eXBlLnJlbW92ZU11dGF0aW9uQmF0Y2g9ZnVuY3Rpb24obixyKXt2YXIgaT10aGlzO0d5KDA9PT10aGlzLmhzKHIuYmF0Y2hJZCwicmVtb3ZlZCIpKSx0aGlzLl9uLnNoaWZ0KCk7dmFyIG89dGhpcy5ycztyZXR1cm4gdUkuZm9yRWFjaChyLm11dGF0aW9ucyxmdW5jdGlvbih0KXt2YXIgZT1uZXcgVEUodC5rZXksci5iYXRjaElkKTtyZXR1cm4gbz1vLmRlbGV0ZShlKSxpLnJlZmVyZW5jZURlbGVnYXRlLm1hcmtQb3RlbnRpYWxseU9ycGhhbmVkKG4sdC5rZXkpfSkubmV4dChmdW5jdGlvbigpe2kucnM9b30pfSxqRS5wcm90b3R5cGUuR3Q9ZnVuY3Rpb24odCl7fSxqRS5wcm90b3R5cGUuY29udGFpbnNLZXk9ZnVuY3Rpb24odCxlKXt2YXIgbj1uZXcgVEUoZSwwKSxuPXRoaXMucnMuZmlyc3RBZnRlck9yRXF1YWwobik7cmV0dXJuIHVJLnJlc29sdmUoZS5pc0VxdWFsKG4mJm4ua2V5KSl9LGpFLnByb3RvdHlwZS5wZXJmb3JtQ29uc2lzdGVuY3lDaGVjaz1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fbi5sZW5ndGgsdUkucmVzb2x2ZSgpfSxqRS5wcm90b3R5cGUuaHM9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5jcyh0KX0sakUucHJvdG90eXBlLmNzPWZ1bmN0aW9uKHQpe3JldHVybiAwPT09dGhpcy5fbi5sZW5ndGg/MDp0LXRoaXMuX25bMF0uYmF0Y2hJZH0sakUucHJvdG90eXBlLm9zPWZ1bmN0aW9uKHQpe3Q9dGhpcy5jcyh0KTtyZXR1cm4gdDwwfHx0Pj10aGlzLl9uLmxlbmd0aD9udWxsOnRoaXMuX25bdF19LGpFKSxTRT0oVUUucHJvdG90eXBlLmFkZEVudHJ5PWZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1lLmtleSxpPXRoaXMuZG9jcy5nZXQociksbz1pP2kuc2l6ZTowLGk9dGhpcy5scyhlKTtyZXR1cm4gdGhpcy5kb2NzPXRoaXMuZG9jcy5pbnNlcnQocix7ZG9jdW1lbnQ6ZS5jbG9uZSgpLHNpemU6aSxyZWFkVGltZTpufSksdGhpcy5zaXplKz1pLW8sdGhpcy5VdC5hZGRUb0NvbGxlY3Rpb25QYXJlbnRJbmRleCh0LHIucGF0aC5wb3BMYXN0KCkpfSxVRS5wcm90b3R5cGUucmVtb3ZlRW50cnk9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5kb2NzLmdldCh0KTtlJiYodGhpcy5kb2NzPXRoaXMuZG9jcy5yZW1vdmUodCksdGhpcy5zaXplLT1lLnNpemUpfSxVRS5wcm90b3R5cGUuZ2V0RW50cnk9ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzLmRvY3MuZ2V0KGUpO3JldHVybiB1SS5yZXNvbHZlKG4/bi5kb2N1bWVudC5jbG9uZSgpOkJtLm5ld0ludmFsaWREb2N1bWVudChlKSl9LFVFLnByb3RvdHlwZS5nZXRFbnRyaWVzPWZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcyxyPUt3O3JldHVybiBlLmZvckVhY2goZnVuY3Rpb24odCl7dmFyIGU9bi5kb2NzLmdldCh0KTtyPXIuaW5zZXJ0KHQsZT9lLmRvY3VtZW50LmNsb25lKCk6Qm0ubmV3SW52YWxpZERvY3VtZW50KHQpKX0pLHVJLnJlc29sdmUocil9LFVFLnByb3RvdHlwZS5nZXREb2N1bWVudHNNYXRjaGluZ1F1ZXJ5PWZ1bmN0aW9uKHQsZSxuKXtmb3IodmFyIHI9S3csaT1uZXcgQ20oZS5wYXRoLmNoaWxkKCIiKSksbz10aGlzLmRvY3MuZ2V0SXRlcmF0b3JGcm9tKGkpO28uaGFzTmV4dCgpOyl7dmFyIHM9by5nZXROZXh0KCksYT1zLmtleSx1PXMudmFsdWUscz11LmRvY3VtZW50LHU9dS5yZWFkVGltZTtpZighZS5wYXRoLmlzUHJlZml4T2YoYS5wYXRoKSlicmVhazt1LmNvbXBhcmVUbyhuKTw9MHx8amIoZSxzKSYmKHI9ci5pbnNlcnQocy5rZXkscy5jbG9uZSgpKSl9cmV0dXJuIHVJLnJlc29sdmUocil9LFVFLnByb3RvdHlwZS5mcz1mdW5jdGlvbih0LGUpe3JldHVybiB1SS5mb3JFYWNoKHRoaXMuZG9jcyxmdW5jdGlvbih0KXtyZXR1cm4gZSh0KX0pfSxVRS5wcm90b3R5cGUubmV3Q2hhbmdlQnVmZmVyPWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgQ0UodGhpcyl9LFVFLnByb3RvdHlwZS5nZXRTaXplPWZ1bmN0aW9uKHQpe3JldHVybiB1SS5yZXNvbHZlKHRoaXMuc2l6ZSl9LFVFKSxDRT0oWGkoRkUsd0U9U24pLEZFLnByb3RvdHlwZS5hcHBseUNoYW5nZXM9ZnVuY3Rpb24obil7dmFyIHI9dGhpcyxpPVtdO3JldHVybiB0aGlzLmNoYW5nZXMuZm9yRWFjaChmdW5jdGlvbih0LGUpe2UuZG9jdW1lbnQuaXNWYWxpZERvY3VtZW50KCk/aS5wdXNoKHIuSWUuYWRkRW50cnkobixlLmRvY3VtZW50LHIuZ2V0UmVhZFRpbWUodCkpKTpyLkllLnJlbW92ZUVudHJ5KHQpfSksdUkud2FpdEZvcihpKX0sRkUucHJvdG90eXBlLmdldEZyb21DYWNoZT1mdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLkllLmdldEVudHJ5KHQsZSl9LEZFLnByb3RvdHlwZS5nZXRBbGxGcm9tQ2FjaGU9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5JZS5nZXRFbnRyaWVzKHQsZSl9LEZFKSxORT0oTUUucHJvdG90eXBlLmZvckVhY2hUYXJnZXQ9ZnVuY3Rpb24odCxuKXtyZXR1cm4gdGhpcy5kcy5mb3JFYWNoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIG4oZSl9KSx1SS5yZXNvbHZlKCl9LE1FLnByb3RvdHlwZS5nZXRMYXN0UmVtb3RlU25hcHNob3RWZXJzaW9uPWZ1bmN0aW9uKHQpe3JldHVybiB1SS5yZXNvbHZlKHRoaXMubGFzdFJlbW90ZVNuYXBzaG90VmVyc2lvbil9LE1FLnByb3RvdHlwZS5nZXRIaWdoZXN0U2VxdWVuY2VOdW1iZXI9ZnVuY3Rpb24odCl7cmV0dXJuIHVJLnJlc29sdmUodGhpcy53cyl9LE1FLnByb3RvdHlwZS5hbGxvY2F0ZVRhcmdldElkPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmhpZ2hlc3RUYXJnZXRJZD10aGlzLnlzLm5leHQoKSx1SS5yZXNvbHZlKHRoaXMuaGlnaGVzdFRhcmdldElkKX0sTUUucHJvdG90eXBlLnNldFRhcmdldHNNZXRhZGF0YT1mdW5jdGlvbih0LGUsbil7cmV0dXJuIG4mJih0aGlzLmxhc3RSZW1vdGVTbmFwc2hvdFZlcnNpb249biksZT50aGlzLndzJiYodGhpcy53cz1lKSx1SS5yZXNvbHZlKCl9LE1FLnByb3RvdHlwZS50ZT1mdW5jdGlvbih0KXt0aGlzLmRzLnNldCh0LnRhcmdldCx0KTt2YXIgZT10LnRhcmdldElkO2U+dGhpcy5oaWdoZXN0VGFyZ2V0SWQmJih0aGlzLnlzPW5ldyBkVChlKSx0aGlzLmhpZ2hlc3RUYXJnZXRJZD1lKSx0LnNlcXVlbmNlTnVtYmVyPnRoaXMud3MmJih0aGlzLndzPXQuc2VxdWVuY2VOdW1iZXIpfSxNRS5wcm90b3R5cGUuYWRkVGFyZ2V0RGF0YT1mdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLnRlKGUpLHRoaXMudGFyZ2V0Q291bnQrPTEsdUkucmVzb2x2ZSgpfSxNRS5wcm90b3R5cGUudXBkYXRlVGFyZ2V0RGF0YT1mdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLnRlKGUpLHVJLnJlc29sdmUoKX0sTUUucHJvdG90eXBlLnJlbW92ZVRhcmdldERhdGE9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5kcy5kZWxldGUoZS50YXJnZXQpLHRoaXMuX3MuWm4oZS50YXJnZXRJZCksLS10aGlzLnRhcmdldENvdW50LHVJLnJlc29sdmUoKX0sTUUucHJvdG90eXBlLnJlbW92ZVRhcmdldHM9ZnVuY3Rpb24obixyLGkpe3ZhciBvPXRoaXMscz0wLGE9W107cmV0dXJuIHRoaXMuZHMuZm9yRWFjaChmdW5jdGlvbih0LGUpe2Uuc2VxdWVuY2VOdW1iZXI8PXImJm51bGw9PT1pLmdldChlLnRhcmdldElkKSYmKG8uZHMuZGVsZXRlKHQpLGEucHVzaChvLnJlbW92ZU1hdGNoaW5nS2V5c0ZvclRhcmdldElkKG4sZS50YXJnZXRJZCkpLHMrKyl9KSx1SS53YWl0Rm9yKGEpLm5leHQoZnVuY3Rpb24oKXtyZXR1cm4gc30pfSxNRS5wcm90b3R5cGUuZ2V0VGFyZ2V0Q291bnQ9ZnVuY3Rpb24odCl7cmV0dXJuIHVJLnJlc29sdmUodGhpcy50YXJnZXRDb3VudCl9LE1FLnByb3RvdHlwZS5nZXRUYXJnZXREYXRhPWZ1bmN0aW9uKHQsZSl7ZT10aGlzLmRzLmdldChlKXx8bnVsbDtyZXR1cm4gdUkucmVzb2x2ZShlKX0sTUUucHJvdG90eXBlLmFkZE1hdGNoaW5nS2V5cz1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHRoaXMuX3MuSm4oZSxuKSx1SS5yZXNvbHZlKCl9LE1FLnByb3RvdHlwZS5yZW1vdmVNYXRjaGluZ0tleXM9ZnVuY3Rpb24oZSx0LG4pe3RoaXMuX3MuWG4odCxuKTt2YXIgcj10aGlzLnBlcnNpc3RlbmNlLnJlZmVyZW5jZURlbGVnYXRlLGk9W107cmV0dXJuIHImJnQuZm9yRWFjaChmdW5jdGlvbih0KXtpLnB1c2goci5tYXJrUG90ZW50aWFsbHlPcnBoYW5lZChlLHQpKX0pLHVJLndhaXRGb3IoaSl9LE1FLnByb3RvdHlwZS5yZW1vdmVNYXRjaGluZ0tleXNGb3JUYXJnZXRJZD1mdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLl9zLlpuKGUpLHVJLnJlc29sdmUoKX0sTUUucHJvdG90eXBlLmdldE1hdGNoaW5nS2V5c0ZvclRhcmdldElkPWZ1bmN0aW9uKHQsZSl7ZT10aGlzLl9zLmVzKGUpO3JldHVybiB1SS5yZXNvbHZlKGUpfSxNRS5wcm90b3R5cGUuY29udGFpbnNLZXk9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdUkucmVzb2x2ZSh0aGlzLl9zLmNvbnRhaW5zS2V5KGUpKX0sTUUpLEFFPShMRS5wcm90b3R5cGUuc3RhcnQ9ZnVuY3Rpb24oKXtyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCl9LExFLnByb3RvdHlwZS5zaHV0ZG93bj1mdW5jdGlvbigpe3JldHVybiB0aGlzLnhlPSExLFByb21pc2UucmVzb2x2ZSgpfSxPYmplY3QuZGVmaW5lUHJvcGVydHkoTEUucHJvdG90eXBlLCJzdGFydGVkIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMueGV9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksTEUucHJvdG90eXBlLnNldERhdGFiYXNlRGVsZXRlZExpc3RlbmVyPWZ1bmN0aW9uKCl7fSxMRS5wcm90b3R5cGUuc2V0TmV0d29ya0VuYWJsZWQ9ZnVuY3Rpb24oKXt9LExFLnByb3RvdHlwZS5nZXRJbmRleE1hbmFnZXI9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5VdH0sTEUucHJvdG90eXBlLmdldE11dGF0aW9uUXVldWU9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5nc1t0LnRvS2V5KCldO3JldHVybiBlfHwoZT1uZXcgRUUodGhpcy5VdCx0aGlzLnJlZmVyZW5jZURlbGVnYXRlKSx0aGlzLmdzW3QudG9LZXkoKV09ZSksZX0sTEUucHJvdG90eXBlLmdldFRhcmdldENhY2hlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucWV9LExFLnByb3RvdHlwZS5nZXRSZW1vdGVEb2N1bWVudENhY2hlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuVWV9LExFLnByb3RvdHlwZS5nZXRCdW5kbGVDYWNoZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLlFlfSxMRS5wcm90b3R5cGUucnVuVHJhbnNhY3Rpb249ZnVuY3Rpb24odCxlLG4pe3ZhciByPXRoaXM7VnkoIk1lbW9yeVBlcnNpc3RlbmNlIiwiU3RhcnRpbmcgdHJhbnNhY3Rpb246Iix0KTt2YXIgaT1uZXcga0UodGhpcy5OZS5uZXh0KCkpO3JldHVybiB0aGlzLnJlZmVyZW5jZURlbGVnYXRlLkVzKCksbihpKS5uZXh0KGZ1bmN0aW9uKHQpe3JldHVybiByLnJlZmVyZW5jZURlbGVnYXRlLlRzKGkpLm5leHQoZnVuY3Rpb24oKXtyZXR1cm4gdH0pfSkudG9Qcm9taXNlKCkudGhlbihmdW5jdGlvbih0KXtyZXR1cm4gaS5yYWlzZU9uQ29tbWl0dGVkRXZlbnQoKSx0fSl9LExFLnByb3RvdHlwZS5Jcz1mdW5jdGlvbihlLG4pe3JldHVybiB1SS5vcihPYmplY3QudmFsdWVzKHRoaXMuZ3MpLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdC5jb250YWluc0tleShlLG4pfX0pKX0sTEUpLGtFPShYaSh4RSxiRT1HYSkseEUpLFJFPShERS5icz1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IERFKHQpfSxPYmplY3QuZGVmaW5lUHJvcGVydHkoREUucHJvdG90eXBlLCJ2cyIse2dldDpmdW5jdGlvbigpe2lmKHRoaXMuUnMpcmV0dXJuIHRoaXMuUnM7dGhyb3cgSHkoKX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxERS5wcm90b3R5cGUuYWRkUmVmZXJlbmNlPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gdGhpcy5Bcy5hZGRSZWZlcmVuY2UobixlKSx0aGlzLnZzLmRlbGV0ZShuLnRvU3RyaW5nKCkpLHVJLnJlc29sdmUoKX0sREUucHJvdG90eXBlLnJlbW92ZVJlZmVyZW5jZT1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHRoaXMuQXMucmVtb3ZlUmVmZXJlbmNlKG4sZSksdGhpcy52cy5hZGQobi50b1N0cmluZygpKSx1SS5yZXNvbHZlKCl9LERFLnByb3RvdHlwZS5tYXJrUG90ZW50aWFsbHlPcnBoYW5lZD1mdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLnZzLmFkZChlLnRvU3RyaW5nKCkpLHVJLnJlc29sdmUoKX0sREUucHJvdG90eXBlLnJlbW92ZVRhcmdldD1mdW5jdGlvbih0LGUpe3ZhciBuPXRoaXM7dGhpcy5Bcy5abihlLnRhcmdldElkKS5mb3JFYWNoKGZ1bmN0aW9uKHQpe3JldHVybiBuLnZzLmFkZCh0LnRvU3RyaW5nKCkpfSk7dmFyIHI9dGhpcy5wZXJzaXN0ZW5jZS5nZXRUYXJnZXRDYWNoZSgpO3JldHVybiByLmdldE1hdGNoaW5nS2V5c0ZvclRhcmdldElkKHQsZS50YXJnZXRJZCkubmV4dChmdW5jdGlvbih0KXt0LmZvckVhY2goZnVuY3Rpb24odCl7cmV0dXJuIG4udnMuYWRkKHQudG9TdHJpbmcoKSl9KX0pLm5leHQoZnVuY3Rpb24oKXtyZXR1cm4gci5yZW1vdmVUYXJnZXREYXRhKHQsZSl9KX0sREUucHJvdG90eXBlLkVzPWZ1bmN0aW9uKCl7dGhpcy5Scz1uZXcgU2V0fSxERS5wcm90b3R5cGUuVHM9ZnVuY3Rpb24obil7dmFyIHI9dGhpcyxpPXRoaXMucGVyc2lzdGVuY2UuZ2V0UmVtb3RlRG9jdW1lbnRDYWNoZSgpLm5ld0NoYW5nZUJ1ZmZlcigpO3JldHVybiB1SS5mb3JFYWNoKHRoaXMudnMsZnVuY3Rpb24odCl7dmFyIGU9Q20uZnJvbVBhdGgodCk7cmV0dXJuIHIuUHMobixlKS5uZXh0KGZ1bmN0aW9uKHQpe3R8fGkucmVtb3ZlRW50cnkoZSl9KX0pLm5leHQoZnVuY3Rpb24oKXtyZXR1cm4gci5Scz1udWxsLGkuYXBwbHkobil9KX0sREUucHJvdG90eXBlLnVwZGF0ZUxpbWJvRG9jdW1lbnQ9ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzO3JldHVybiB0aGlzLlBzKHQsZSkubmV4dChmdW5jdGlvbih0KXt0P24udnMuZGVsZXRlKGUudG9TdHJpbmcoKSk6bi52cy5hZGQoZS50b1N0cmluZygpKX0pfSxERS5wcm90b3R5cGUucHM9ZnVuY3Rpb24odCl7cmV0dXJuIDB9LERFLnByb3RvdHlwZS5Qcz1mdW5jdGlvbih0LGUpe3ZhciBuPXRoaXM7cmV0dXJuIHVJLm9yKFtmdW5jdGlvbigpe3JldHVybiB1SS5yZXNvbHZlKG4uQXMuY29udGFpbnNLZXkoZSkpfSxmdW5jdGlvbigpe3JldHVybiBuLnBlcnNpc3RlbmNlLmdldFRhcmdldENhY2hlKCkuY29udGFpbnNLZXkodCxlKX0sZnVuY3Rpb24oKXtyZXR1cm4gbi5wZXJzaXN0ZW5jZS5Jcyh0LGUpfV0pfSxERSksUEU9KE9FLnByb3RvdHlwZS5pc0F1dGhlbnRpY2F0ZWQ9ZnVuY3Rpb24oKXtyZXR1cm4gbnVsbCE9dGhpcy51aWR9LE9FLnByb3RvdHlwZS50b0tleT1mdW5jdGlvbigpe3JldHVybiB0aGlzLmlzQXV0aGVudGljYXRlZCgpPyJ1aWQ6Iit0aGlzLnVpZDoiYW5vbnltb3VzLXVzZXIifSxPRS5wcm90b3R5cGUuaXNFcXVhbD1mdW5jdGlvbih0KXtyZXR1cm4gdC51aWQ9PT10aGlzLnVpZH0sT0UpO2Z1bmN0aW9uIE9FKHQpe3RoaXMudWlkPXR9ZnVuY3Rpb24gREUodCl7dGhpcy5wZXJzaXN0ZW5jZT10LHRoaXMuQXM9bmV3IElFLHRoaXMuUnM9bnVsbH1mdW5jdGlvbiB4RSh0KXt2YXIgZT10aGlzO3JldHVybihlPWJFLmNhbGwodGhpcyl8fHRoaXMpLmN1cnJlbnRTZXF1ZW5jZU51bWJlcj10LGV9ZnVuY3Rpb24gTEUodCxlKXt2YXIgbj10aGlzO3RoaXMuZ3M9e30sdGhpcy5OZT1uZXcgRHkoMCksdGhpcy54ZT0hMSx0aGlzLnhlPSEwLHRoaXMucmVmZXJlbmNlRGVsZWdhdGU9dCh0aGlzKSx0aGlzLnFlPW5ldyBORSh0aGlzKSx0aGlzLlV0PW5ldyBYSSx0aGlzLlVlPSh0PXRoaXMuVXQsbmV3IFNFKHQsZnVuY3Rpb24odCl7cmV0dXJuIG4ucmVmZXJlbmNlRGVsZWdhdGUucHModCl9KSksdGhpcy5SPW5ldyBPSShlKSx0aGlzLlFlPW5ldyBfRSh0aGlzLlIpfWZ1bmN0aW9uIE1FKHQpe3RoaXMucGVyc2lzdGVuY2U9dCx0aGlzLmRzPW5ldyBEVChHbSx6bSksdGhpcy5sYXN0UmVtb3RlU25hcHNob3RWZXJzaW9uPVp5Lm1pbigpLHRoaXMuaGlnaGVzdFRhcmdldElkPTAsdGhpcy53cz0wLHRoaXMuX3M9bmV3IElFLHRoaXMudGFyZ2V0Q291bnQ9MCx0aGlzLnlzPWRULkp0KCl9ZnVuY3Rpb24gRkUodCl7dmFyIGU9dGhpcztyZXR1cm4oZT13RS5jYWxsKHRoaXMpfHx0aGlzKS5JZT10LGV9ZnVuY3Rpb24gVUUodCxlKXt0aGlzLlV0PXQsdGhpcy5scz1lLHRoaXMuZG9jcz1uZXcgeHcoQ20uY29tcGFyYXRvciksdGhpcy5zaXplPTB9ZnVuY3Rpb24gakUodCxlKXt0aGlzLlV0PXQsdGhpcy5yZWZlcmVuY2VEZWxlZ2F0ZT1lLHRoaXMuX249W10sdGhpcy5zcz0xLHRoaXMucnM9bmV3IFZ3KFRFLkduKX1mdW5jdGlvbiBxRSh0LGUpe3RoaXMua2V5PXQsdGhpcy5ucz1lfWZ1bmN0aW9uIFZFKCl7dGhpcy5Xbj1uZXcgVncoVEUuR24pLHRoaXMuem49bmV3IFZ3KFRFLkhuKX1mdW5jdGlvbiBCRSh0KXt0aGlzLlI9dCx0aGlzLktuPW5ldyBNYXAsdGhpcy5qbj1uZXcgTWFwfWZ1bmN0aW9uIEtFKHQsZSl7cmV0dXJuImZpcmVzdG9yZV9jbGllbnRzXyIrdCsiXyIrZX1mdW5jdGlvbiBXRSh0LGUsbil7bj0iZmlyZXN0b3JlX211dGF0aW9uc18iK3QrIl8iK247cmV0dXJuIGUuaXNBdXRoZW50aWNhdGVkKCkmJihuKz0iXyIrZS51aWQpLG59ZnVuY3Rpb24gSEUodCxlKXtyZXR1cm4iZmlyZXN0b3JlX3RhcmdldHNfIit0KyJfIitlfVBFLlVOQVVUSEVOVElDQVRFRD1uZXcgUEUobnVsbCksUEUuR09PR0xFX0NSRURFTlRJQUxTPW5ldyBQRSgiZ29vZ2xlLWNyZWRlbnRpYWxzLXVpZCIpLFBFLkZJUlNUX1BBUlRZPW5ldyBQRSgiZmlyc3QtcGFydHktdWlkIik7dmFyIEdFLHpFPShnUy5Wcz1mdW5jdGlvbih0LGUsbil7dmFyIHIsaT1KU09OLnBhcnNlKG4pLG89Im9iamVjdCI9PXR5cGVvZiBpJiYtMSE9PVsicGVuZGluZyIsImFja25vd2xlZGdlZCIsInJlamVjdGVkIl0uaW5kZXhPZihpLnN0YXRlKSYmKHZvaWQgMD09PWkuZXJyb3J8fCJvYmplY3QiPT10eXBlb2YgaS5lcnJvcik7cmV0dXJuIG8mJmkuZXJyb3ImJihvPSJzdHJpbmciPT10eXBlb2YgaS5lcnJvci5tZXNzYWdlJiYic3RyaW5nIj09dHlwZW9mIGkuZXJyb3IuY29kZSkmJihyPW5ldyBGeShpLmVycm9yLmNvZGUsaS5lcnJvci5tZXNzYWdlKSksbz9uZXcgZ1ModCxlLGkuc3RhdGUscik6KEJ5KCJTaGFyZWRDbGllbnRTdGF0ZSIsIkZhaWxlZCB0byBwYXJzZSBtdXRhdGlvbiBzdGF0ZSBmb3IgSUQgJyIrZSsiJzogIituKSxudWxsKX0sZ1MucHJvdG90eXBlLlNzPWZ1bmN0aW9uKCl7dmFyIHQ9e3N0YXRlOnRoaXMuc3RhdGUsdXBkYXRlVGltZU1zOkRhdGUubm93KCl9O3JldHVybiB0aGlzLmVycm9yJiYodC5lcnJvcj17Y29kZTp0aGlzLmVycm9yLmNvZGUsbWVzc2FnZTp0aGlzLmVycm9yLm1lc3NhZ2V9KSxKU09OLnN0cmluZ2lmeSh0KX0sZ1MpLFFFPSh2Uy5Wcz1mdW5jdGlvbih0LGUpe3ZhciBuLHI9SlNPTi5wYXJzZShlKSxpPSJvYmplY3QiPT10eXBlb2YgciYmLTEhPT1bIm5vdC1jdXJyZW50IiwiY3VycmVudCIsInJlamVjdGVkIl0uaW5kZXhPZihyLnN0YXRlKSYmKHZvaWQgMD09PXIuZXJyb3J8fCJvYmplY3QiPT10eXBlb2Ygci5lcnJvcik7cmV0dXJuIGkmJnIuZXJyb3ImJihpPSJzdHJpbmciPT10eXBlb2Ygci5lcnJvci5tZXNzYWdlJiYic3RyaW5nIj09dHlwZW9mIHIuZXJyb3IuY29kZSkmJihuPW5ldyBGeShyLmVycm9yLmNvZGUsci5lcnJvci5tZXNzYWdlKSksaT9uZXcgdlModCxyLnN0YXRlLG4pOihCeSgiU2hhcmVkQ2xpZW50U3RhdGUiLCJGYWlsZWQgdG8gcGFyc2UgdGFyZ2V0IHN0YXRlIGZvciBJRCAnIit0KyInOiAiK2UpLG51bGwpfSx2Uy5wcm90b3R5cGUuU3M9ZnVuY3Rpb24oKXt2YXIgdD17c3RhdGU6dGhpcy5zdGF0ZSx1cGRhdGVUaW1lTXM6RGF0ZS5ub3coKX07cmV0dXJuIHRoaXMuZXJyb3ImJih0LmVycm9yPXtjb2RlOnRoaXMuZXJyb3IuY29kZSxtZXNzYWdlOnRoaXMuZXJyb3IubWVzc2FnZX0pLEpTT04uc3RyaW5naWZ5KHQpfSx2UyksWUU9KGRTLlZzPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuPUpTT04ucGFyc2UoZSkscj0ib2JqZWN0Ij09dHlwZW9mIG4mJm4uYWN0aXZlVGFyZ2V0SWRzIGluc3RhbmNlb2YgQXJyYXksaT1YdyxvPTA7ciYmbzxuLmFjdGl2ZVRhcmdldElkcy5sZW5ndGg7KytvKXI9U20obi5hY3RpdmVUYXJnZXRJZHNbb10pLGk9aS5hZGQobi5hY3RpdmVUYXJnZXRJZHNbb10pO3JldHVybiByP25ldyBkUyh0LGkpOihCeSgiU2hhcmVkQ2xpZW50U3RhdGUiLCJGYWlsZWQgdG8gcGFyc2UgY2xpZW50IGRhdGEgZm9yIGluc3RhbmNlICciK3QrIic6ICIrZSksbnVsbCl9LGRTKSxYRT0ocFMuVnM9ZnVuY3Rpb24odCl7dmFyIGU9SlNPTi5wYXJzZSh0KTtyZXR1cm4ib2JqZWN0Ij09dHlwZW9mIGUmJi0xIT09WyJVbmtub3duIiwiT25saW5lIiwiT2ZmbGluZSJdLmluZGV4T2YoZS5vbmxpbmVTdGF0ZSkmJiJzdHJpbmciPT10eXBlb2YgZS5jbGllbnRJZD9uZXcgcFMoZS5jbGllbnRJZCxlLm9ubGluZVN0YXRlKTooQnkoIlNoYXJlZENsaWVudFN0YXRlIiwiRmFpbGVkIHRvIHBhcnNlIG9ubGluZSBzdGF0ZTogIit0KSxudWxsKX0scFMpLEpFPShmUy5wcm90b3R5cGUuRHM9ZnVuY3Rpb24odCl7dGhpcy5hY3RpdmVUYXJnZXRJZHM9dGhpcy5hY3RpdmVUYXJnZXRJZHMuYWRkKHQpfSxmUy5wcm90b3R5cGUuQ3M9ZnVuY3Rpb24odCl7dGhpcy5hY3RpdmVUYXJnZXRJZHM9dGhpcy5hY3RpdmVUYXJnZXRJZHMuZGVsZXRlKHQpfSxmUy5wcm90b3R5cGUuU3M9ZnVuY3Rpb24oKXt2YXIgdD17YWN0aXZlVGFyZ2V0SWRzOnRoaXMuYWN0aXZlVGFyZ2V0SWRzLnRvQXJyYXkoKSx1cGRhdGVUaW1lTXM6RGF0ZS5ub3coKX07cmV0dXJuIEpTT04uc3RyaW5naWZ5KHQpfSxmUyksJEU9KGxTLnl0PWZ1bmN0aW9uKHQpe3JldHVybiEoIXR8fCF0LmxvY2FsU3RvcmFnZSl9LGxTLnByb3RvdHlwZS5zdGFydD1mdW5jdGlvbigpe3JldHVybiAkaSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgZSxuLHIsaSxvLHMsYSx1LGMsaCxsPXRoaXM7cmV0dXJuIFppKHRoaXMsZnVuY3Rpb24odCl7c3dpdGNoKHQubGFiZWwpe2Nhc2UgMDpyZXR1cm5bNCx0aGlzLnN5bmNFbmdpbmUuZm4oKV07Y2FzZSAxOmZvcihzPXQuc2VudCgpLGU9MCxuPXM7ZTxuLmxlbmd0aDtlKyspKHI9bltlXSkhPT10aGlzLk5zJiYoaT10aGlzLmdldEl0ZW0oS0UodGhpcy5wZXJzaXN0ZW5jZUtleSxyKSkpJiYobz1ZRS5WcyhyLGkpKSYmKHRoaXMua3M9dGhpcy5rcy5pbnNlcnQoby5jbGllbnRJZCxvKSk7Zm9yKHRoaXMuS3MoKSwocz10aGlzLnN0b3JhZ2UuZ2V0SXRlbSh0aGlzLlVzKSkmJihhPXRoaXMuanMocykpJiZ0aGlzLldzKGEpLHU9MCxjPXRoaXMuT3M7dTxjLmxlbmd0aDt1KyspaD1jW3VdLHRoaXMuRnMoaCk7cmV0dXJuIHRoaXMuT3M9W10sdGhpcy53aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigidW5sb2FkIixmdW5jdGlvbigpe3JldHVybiBsLnNodXRkb3duKCl9KSx0aGlzLnN0YXJ0ZWQ9ITAsWzJdfX0pfSl9LGxTLnByb3RvdHlwZS53cml0ZVNlcXVlbmNlTnVtYmVyPWZ1bmN0aW9uKHQpe3RoaXMuc2V0SXRlbSh0aGlzLk1zLEpTT04uc3RyaW5naWZ5KHQpKX0sbFMucHJvdG90eXBlLmdldEFsbEFjdGl2ZVF1ZXJ5VGFyZ2V0cz1mdW5jdGlvbigpe3JldHVybiB0aGlzLkdzKHRoaXMua3MpfSxsUy5wcm90b3R5cGUuaXNBY3RpdmVRdWVyeVRhcmdldD1mdW5jdGlvbihuKXt2YXIgcj0hMTtyZXR1cm4gdGhpcy5rcy5mb3JFYWNoKGZ1bmN0aW9uKHQsZSl7ZS5hY3RpdmVUYXJnZXRJZHMuaGFzKG4pJiYocj0hMCl9KSxyfSxsUy5wcm90b3R5cGUuYWRkUGVuZGluZ011dGF0aW9uPWZ1bmN0aW9uKHQpe3RoaXMuenModCwicGVuZGluZyIpfSxsUy5wcm90b3R5cGUudXBkYXRlTXV0YXRpb25TdGF0ZT1mdW5jdGlvbih0LGUsbil7dGhpcy56cyh0LGUsbiksdGhpcy5Icyh0KX0sbFMucHJvdG90eXBlLmFkZExvY2FsUXVlcnlUYXJnZXQ9ZnVuY3Rpb24odCl7dmFyIGUsbj0ibm90LWN1cnJlbnQiO3JldHVybiB0aGlzLmlzQWN0aXZlUXVlcnlUYXJnZXQodCkmJighKGU9dGhpcy5zdG9yYWdlLmdldEl0ZW0oSEUodGhpcy5wZXJzaXN0ZW5jZUtleSx0KSkpfHwoZT1RRS5Wcyh0LGUpKSYmKG49ZS5zdGF0ZSkpLHRoaXMuSnMuRHModCksdGhpcy5LcygpLG59LGxTLnByb3RvdHlwZS5yZW1vdmVMb2NhbFF1ZXJ5VGFyZ2V0PWZ1bmN0aW9uKHQpe3RoaXMuSnMuQ3ModCksdGhpcy5LcygpfSxsUy5wcm90b3R5cGUuaXNMb2NhbFF1ZXJ5VGFyZ2V0PWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLkpzLmFjdGl2ZVRhcmdldElkcy5oYXModCl9LGxTLnByb3RvdHlwZS5jbGVhclF1ZXJ5U3RhdGU9ZnVuY3Rpb24odCl7dGhpcy5yZW1vdmVJdGVtKEhFKHRoaXMucGVyc2lzdGVuY2VLZXksdCkpfSxsUy5wcm90b3R5cGUudXBkYXRlUXVlcnlTdGF0ZT1mdW5jdGlvbih0LGUsbil7dGhpcy5Zcyh0LGUsbil9LGxTLnByb3RvdHlwZS5oYW5kbGVVc2VyQ2hhbmdlPWZ1bmN0aW9uKHQsZSxuKXt2YXIgcj10aGlzO2UuZm9yRWFjaChmdW5jdGlvbih0KXtyLkhzKHQpfSksdGhpcy5jdXJyZW50VXNlcj10LG4uZm9yRWFjaChmdW5jdGlvbih0KXtyLmFkZFBlbmRpbmdNdXRhdGlvbih0KX0pfSxsUy5wcm90b3R5cGUuc2V0T25saW5lU3RhdGU9ZnVuY3Rpb24odCl7dGhpcy5Ycyh0KX0sbFMucHJvdG90eXBlLm5vdGlmeUJ1bmRsZUxvYWRlZD1mdW5jdGlvbigpe3RoaXMuWnMoKX0sbFMucHJvdG90eXBlLnNodXRkb3duPWZ1bmN0aW9uKCl7dGhpcy5zdGFydGVkJiYodGhpcy53aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigic3RvcmFnZSIsdGhpcy54cyksdGhpcy5yZW1vdmVJdGVtKHRoaXMuJHMpLHRoaXMuc3RhcnRlZD0hMSl9LGxTLnByb3RvdHlwZS5nZXRJdGVtPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuc3RvcmFnZS5nZXRJdGVtKHQpO3JldHVybiBWeSgiU2hhcmVkQ2xpZW50U3RhdGUiLCJSRUFEIix0LGUpLGV9LGxTLnByb3RvdHlwZS5zZXRJdGVtPWZ1bmN0aW9uKHQsZSl7VnkoIlNoYXJlZENsaWVudFN0YXRlIiwiU0VUIix0LGUpLHRoaXMuc3RvcmFnZS5zZXRJdGVtKHQsZSl9LGxTLnByb3RvdHlwZS5yZW1vdmVJdGVtPWZ1bmN0aW9uKHQpe1Z5KCJTaGFyZWRDbGllbnRTdGF0ZSIsIlJFTU9WRSIsdCksdGhpcy5zdG9yYWdlLnJlbW92ZUl0ZW0odCl9LGxTLnByb3RvdHlwZS5Gcz1mdW5jdGlvbih0KXt2YXIgZT10aGlzLG89dDtvLnN0b3JhZ2VBcmVhPT09dGhpcy5zdG9yYWdlJiYoVnkoIlNoYXJlZENsaWVudFN0YXRlIiwiRVZFTlQiLG8ua2V5LG8ubmV3VmFsdWUpLG8ua2V5IT09dGhpcy4kcz90aGlzLlNlLmVucXVldWVSZXRyeWFibGUoZnVuY3Rpb24oKXtyZXR1cm4gJGkoZSx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIGUsbixyLGk7cmV0dXJuIFppKHRoaXMsZnVuY3Rpb24odCl7aWYodGhpcy5zdGFydGVkKXtpZihudWxsIT09by5rZXkpaWYodGhpcy5Mcy50ZXN0KG8ua2V5KSl7aWYobnVsbD09by5uZXdWYWx1ZSlyZXR1cm4gZT10aGlzLnRpKG8ua2V5KSxbMix0aGlzLmVpKGUsbnVsbCldO2lmKGU9dGhpcy5uaShvLmtleSxvLm5ld1ZhbHVlKSlyZXR1cm5bMix0aGlzLmVpKGUuY2xpZW50SWQsZSldfWVsc2UgaWYodGhpcy5Ccy50ZXN0KG8ua2V5KSl7aWYobnVsbCE9PW8ubmV3VmFsdWUmJihuPXRoaXMuc2koby5rZXksby5uZXdWYWx1ZSkpKXJldHVyblsyLHRoaXMuaWkobildfWVsc2UgaWYodGhpcy5xcy50ZXN0KG8ua2V5KSl7aWYobnVsbCE9PW8ubmV3VmFsdWUmJihyPXRoaXMucmkoby5rZXksby5uZXdWYWx1ZSkpKXJldHVyblsyLHRoaXMub2kocildfWVsc2UgaWYoby5rZXk9PT10aGlzLlVzKXtpZihudWxsIT09by5uZXdWYWx1ZSYmKGk9dGhpcy5qcyhvLm5ld1ZhbHVlKSkpcmV0dXJuWzIsdGhpcy5XcyhpKV19ZWxzZSBpZihvLmtleT09PXRoaXMuTXMpKGk9ZnVuY3Rpb24odCl7dmFyIGU9RHkubztpZihudWxsIT10KXRyeXt2YXIgbj1KU09OLnBhcnNlKHQpO0d5KCJudW1iZXIiPT10eXBlb2YgbiksZT1ufWNhdGNoKHQpe0J5KCJTaGFyZWRDbGllbnRTdGF0ZSIsIkZhaWxlZCB0byByZWFkIHNlcXVlbmNlIG51bWJlciBmcm9tIFdlYlN0b3JhZ2UiLHQpfXJldHVybiBlfShvLm5ld1ZhbHVlKSkhPT1EeS5vJiZ0aGlzLnNlcXVlbmNlTnVtYmVySGFuZGxlcihpKTtlbHNlIGlmKG8ua2V5PT09dGhpcy5RcylyZXR1cm5bMix0aGlzLnN5bmNFbmdpbmUuY2koKV19ZWxzZSB0aGlzLk9zLnB1c2gobyk7cmV0dXJuWzJdfSl9KX0pOkJ5KCJSZWNlaXZlZCBXZWJTdG9yYWdlIG5vdGlmaWNhdGlvbiBmb3IgbG9jYWwgY2hhbmdlLiBBbm90aGVyIGNsaWVudCBtaWdodCBoYXZlIGdhcmJhZ2UtY29sbGVjdGVkIG91ciBzdGF0ZSIpKX0sT2JqZWN0LmRlZmluZVByb3BlcnR5KGxTLnByb3RvdHlwZSwiSnMiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5rcy5nZXQodGhpcy5Ocyl9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksbFMucHJvdG90eXBlLktzPWZ1bmN0aW9uKCl7dGhpcy5zZXRJdGVtKHRoaXMuJHMsdGhpcy5Kcy5TcygpKX0sbFMucHJvdG90eXBlLnpzPWZ1bmN0aW9uKHQsZSxuKXtuPW5ldyB6RSh0aGlzLmN1cnJlbnRVc2VyLHQsZSxuKSx0PVdFKHRoaXMucGVyc2lzdGVuY2VLZXksdGhpcy5jdXJyZW50VXNlcix0KTt0aGlzLnNldEl0ZW0odCxuLlNzKCkpfSxsUy5wcm90b3R5cGUuSHM9ZnVuY3Rpb24odCl7dD1XRSh0aGlzLnBlcnNpc3RlbmNlS2V5LHRoaXMuY3VycmVudFVzZXIsdCk7dGhpcy5yZW1vdmVJdGVtKHQpfSxsUy5wcm90b3R5cGUuWHM9ZnVuY3Rpb24odCl7dD17Y2xpZW50SWQ6dGhpcy5OcyxvbmxpbmVTdGF0ZTp0fTt0aGlzLnN0b3JhZ2Uuc2V0SXRlbSh0aGlzLlVzLEpTT04uc3RyaW5naWZ5KHQpKX0sbFMucHJvdG90eXBlLllzPWZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1IRSh0aGlzLnBlcnNpc3RlbmNlS2V5LHQpLG49bmV3IFFFKHQsZSxuKTt0aGlzLnNldEl0ZW0ocixuLlNzKCkpfSxsUy5wcm90b3R5cGUuWnM9ZnVuY3Rpb24oKXt0aGlzLnNldEl0ZW0odGhpcy5RcywidmFsdWUtbm90LXVzZWQiKX0sbFMucHJvdG90eXBlLnRpPWZ1bmN0aW9uKHQpe3Q9dGhpcy5Mcy5leGVjKHQpO3JldHVybiB0P3RbMV06bnVsbH0sbFMucHJvdG90eXBlLm5pPWZ1bmN0aW9uKHQsZSl7dD10aGlzLnRpKHQpO3JldHVybiBZRS5Wcyh0LGUpfSxsUy5wcm90b3R5cGUuc2k9ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzLkJzLmV4ZWModCksdD1OdW1iZXIoblsxXSksbj12b2lkIDAhPT1uWzJdP25bMl06bnVsbDtyZXR1cm4gekUuVnMobmV3IFBFKG4pLHQsZSl9LGxTLnByb3RvdHlwZS5yaT1mdW5jdGlvbih0LGUpe3Q9dGhpcy5xcy5leGVjKHQpLHQ9TnVtYmVyKHRbMV0pO3JldHVybiBRRS5Wcyh0LGUpfSxsUy5wcm90b3R5cGUuanM9ZnVuY3Rpb24odCl7cmV0dXJuIFhFLlZzKHQpfSxsUy5wcm90b3R5cGUuaWk9ZnVuY3Rpb24oZSl7cmV0dXJuICRpKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3JldHVybiBaaSh0aGlzLGZ1bmN0aW9uKHQpe3JldHVybiBlLnVzZXIudWlkPT09dGhpcy5jdXJyZW50VXNlci51aWQ/WzIsdGhpcy5zeW5jRW5naW5lLnVpKGUuYmF0Y2hJZCxlLnN0YXRlLGUuZXJyb3IpXTooVnkoIlNoYXJlZENsaWVudFN0YXRlIiwiSWdub3JpbmcgbXV0YXRpb24gZm9yIG5vbi1hY3RpdmUgdXNlciAiK2UudXNlci51aWQpLFsyXSl9KX0pfSxsUy5wcm90b3R5cGUub2k9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuc3luY0VuZ2luZS5haSh0LnRhcmdldElkLHQuc3RhdGUsdC5lcnJvcil9LGxTLnByb3RvdHlwZS5laT1mdW5jdGlvbih0LGUpe3ZhciBuPXRoaXMscj1lP3RoaXMua3MuaW5zZXJ0KHQsZSk6dGhpcy5rcy5yZW1vdmUodCksaT10aGlzLkdzKHRoaXMua3MpLG89dGhpcy5HcyhyKSxzPVtdLGE9W107cmV0dXJuIG8uZm9yRWFjaChmdW5jdGlvbih0KXtpLmhhcyh0KXx8cy5wdXNoKHQpfSksaS5mb3JFYWNoKGZ1bmN0aW9uKHQpe28uaGFzKHQpfHxhLnB1c2godCl9KSx0aGlzLnN5bmNFbmdpbmUuaGkocyxhKS50aGVuKGZ1bmN0aW9uKCl7bi5rcz1yfSl9LGxTLnByb3RvdHlwZS5Xcz1mdW5jdGlvbih0KXt0aGlzLmtzLmdldCh0LmNsaWVudElkKSYmdGhpcy5vbmxpbmVTdGF0ZUhhbmRsZXIodC5vbmxpbmVTdGF0ZSl9LGxTLnByb3RvdHlwZS5Hcz1mdW5jdGlvbih0KXt2YXIgbj1YdztyZXR1cm4gdC5mb3JFYWNoKGZ1bmN0aW9uKHQsZSl7bj1uLnVuaW9uV2l0aChlLmFjdGl2ZVRhcmdldElkcyl9KSxufSxsUyksWkU9KGhTLnByb3RvdHlwZS5hZGRQZW5kaW5nTXV0YXRpb249ZnVuY3Rpb24odCl7fSxoUy5wcm90b3R5cGUudXBkYXRlTXV0YXRpb25TdGF0ZT1mdW5jdGlvbih0LGUsbil7fSxoUy5wcm90b3R5cGUuYWRkTG9jYWxRdWVyeVRhcmdldD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5saS5Ecyh0KSx0aGlzLmZpW3RdfHwibm90LWN1cnJlbnQifSxoUy5wcm90b3R5cGUudXBkYXRlUXVlcnlTdGF0ZT1mdW5jdGlvbih0LGUsbil7dGhpcy5maVt0XT1lfSxoUy5wcm90b3R5cGUucmVtb3ZlTG9jYWxRdWVyeVRhcmdldD1mdW5jdGlvbih0KXt0aGlzLmxpLkNzKHQpfSxoUy5wcm90b3R5cGUuaXNMb2NhbFF1ZXJ5VGFyZ2V0PWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmxpLmFjdGl2ZVRhcmdldElkcy5oYXModCl9LGhTLnByb3RvdHlwZS5jbGVhclF1ZXJ5U3RhdGU9ZnVuY3Rpb24odCl7ZGVsZXRlIHRoaXMuZmlbdF19LGhTLnByb3RvdHlwZS5nZXRBbGxBY3RpdmVRdWVyeVRhcmdldHM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5saS5hY3RpdmVUYXJnZXRJZHN9LGhTLnByb3RvdHlwZS5pc0FjdGl2ZVF1ZXJ5VGFyZ2V0PWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmxpLmFjdGl2ZVRhcmdldElkcy5oYXModCl9LGhTLnByb3RvdHlwZS5zdGFydD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmxpPW5ldyBKRSxQcm9taXNlLnJlc29sdmUoKX0saFMucHJvdG90eXBlLmhhbmRsZVVzZXJDaGFuZ2U9ZnVuY3Rpb24odCxlLG4pe30saFMucHJvdG90eXBlLnNldE9ubGluZVN0YXRlPWZ1bmN0aW9uKHQpe30saFMucHJvdG90eXBlLnNodXRkb3duPWZ1bmN0aW9uKCl7fSxoUy5wcm90b3R5cGUud3JpdGVTZXF1ZW5jZU51bWJlcj1mdW5jdGlvbih0KXt9LGhTLnByb3RvdHlwZS5ub3RpZnlCdW5kbGVMb2FkZWQ9ZnVuY3Rpb24oKXt9LGhTKSx0Uz0oY1MucHJvdG90eXBlLmRpPWZ1bmN0aW9uKHQpe30sY1MucHJvdG90eXBlLnNodXRkb3duPWZ1bmN0aW9uKCl7fSxjUyksZVM9KHVTLnByb3RvdHlwZS5kaT1mdW5jdGlvbih0KXt0aGlzLmdpLnB1c2godCl9LHVTLnByb3RvdHlwZS5zaHV0ZG93bj1mdW5jdGlvbigpe3dpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJvbmxpbmUiLHRoaXMud2kpLHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJvZmZsaW5lIix0aGlzLm1pKX0sdVMucHJvdG90eXBlLnBpPWZ1bmN0aW9uKCl7d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm9ubGluZSIsdGhpcy53aSksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm9mZmxpbmUiLHRoaXMubWkpfSx1Uy5wcm90b3R5cGUuX2k9ZnVuY3Rpb24oKXtWeSgiQ29ubmVjdGl2aXR5TW9uaXRvciIsIk5ldHdvcmsgY29ubmVjdGl2aXR5IGNoYW5nZWQ6IEFWQUlMQUJMRSIpO2Zvcih2YXIgdD0wLGU9dGhpcy5naTt0PGUubGVuZ3RoO3QrKykoMCxlW3RdKSgwKX0sdVMucHJvdG90eXBlLnlpPWZ1bmN0aW9uKCl7VnkoIkNvbm5lY3Rpdml0eU1vbml0b3IiLCJOZXR3b3JrIGNvbm5lY3Rpdml0eSBjaGFuZ2VkOiBVTkFWQUlMQUJMRSIpO2Zvcih2YXIgdD0wLGU9dGhpcy5naTt0PGUubGVuZ3RoO3QrKykoMCxlW3RdKSgxKX0sdVMueXQ9ZnVuY3Rpb24oKXtyZXR1cm4idW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdyYmdm9pZCAwIT09d2luZG93LmFkZEV2ZW50TGlzdGVuZXImJnZvaWQgMCE9PXdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyfSx1UyksblM9e0JhdGNoR2V0RG9jdW1lbnRzOiJiYXRjaEdldCIsQ29tbWl0OiJjb21taXQiLFJ1blF1ZXJ5OiJydW5RdWVyeSJ9LHJTPShhUy5wcm90b3R5cGUuSWk9ZnVuY3Rpb24odCl7dGhpcy5BaT10fSxhUy5wcm90b3R5cGUuUmk9ZnVuY3Rpb24odCl7dGhpcy5iaT10fSxhUy5wcm90b3R5cGUub25NZXNzYWdlPWZ1bmN0aW9uKHQpe3RoaXMudmk9dH0sYVMucHJvdG90eXBlLmNsb3NlPWZ1bmN0aW9uKCl7dGhpcy5UaSgpfSxhUy5wcm90b3R5cGUuc2VuZD1mdW5jdGlvbih0KXt0aGlzLkVpKHQpfSxhUy5wcm90b3R5cGUuUGk9ZnVuY3Rpb24oKXt0aGlzLkFpKCl9LGFTLnByb3RvdHlwZS5WaT1mdW5jdGlvbih0KXt0aGlzLmJpKHQpfSxhUy5wcm90b3R5cGUuU2k9ZnVuY3Rpb24odCl7dGhpcy52aSh0KX0sYVMpLGlTPShzUy5wcm90b3R5cGUuTmk9ZnVuY3Rpb24oZSx0LG4scil7dmFyIGk9dGhpcy54aShlLHQpO1Z5KCJSZXN0Q29ubmVjdGlvbiIsIlNlbmRpbmc6ICIsaSxuKTt0PXt9O3JldHVybiB0aGlzLkZpKHQsciksdGhpcy5raShlLGksdCxuKS50aGVuKGZ1bmN0aW9uKHQpe3JldHVybiBWeSgiUmVzdENvbm5lY3Rpb24iLCJSZWNlaXZlZDogIix0KSx0fSxmdW5jdGlvbih0KXt0aHJvdyBLeSgiUmVzdENvbm5lY3Rpb24iLGUrIiBmYWlsZWQgd2l0aCBlcnJvcjogIix0LCJ1cmw6ICIsaSwicmVxdWVzdDoiLG4pLHR9KX0sc1MucHJvdG90eXBlLk9pPWZ1bmN0aW9uKHQsZSxuLHIpe3JldHVybiB0aGlzLk5pKHQsZSxuLHIpfSxzUy5wcm90b3R5cGUuRmk9ZnVuY3Rpb24odCxlKXtpZih0WyJYLUdvb2ctQXBpLUNsaWVudCJdPSJnbC1qcy8gZmlyZS84LjMuMiIsdFsiWC1GaXJlYmFzZS1HTVBJRCJdPXRoaXMuZGF0YWJhc2VJbmZvLmFwcElkLHRbIkNvbnRlbnQtVHlwZSJdPSJ0ZXh0L3BsYWluIixlKWZvcih2YXIgbiBpbiBlLmF1dGhIZWFkZXJzKWUuYXV0aEhlYWRlcnMuaGFzT3duUHJvcGVydHkobikmJih0W25dPWUuYXV0aEhlYWRlcnNbbl0pfSxzUy5wcm90b3R5cGUueGk9ZnVuY3Rpb24odCxlKXt0PW5TW3RdO3JldHVybiB0aGlzLkRpKyIvdjEvIitlKyI6Iit0fSxYaShvUyxHRT1zUyksb1MucHJvdG90eXBlLmtpPWZ1bmN0aW9uKG8sZSxzLGEpe3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihuLHIpe3ZhciBpPW5ldyBPeTtpLmxpc3Rlbk9uY2UoTnkuQ09NUExFVEUsZnVuY3Rpb24oKXt0cnl7c3dpdGNoKGkuZ2V0TGFzdEVycm9yQ29kZSgpKXtjYXNlIEN5Lk5PX0VSUk9SOnZhciB0PWkuZ2V0UmVzcG9uc2VKc29uKCk7VnkoIkNvbm5lY3Rpb24iLCJYSFIgcmVjZWl2ZWQ6IixKU09OLnN0cmluZ2lmeSh0KSksbih0KTticmVhaztjYXNlIEN5LlRJTUVPVVQ6VnkoIkNvbm5lY3Rpb24iLCdSUEMgIicrbysnIiB0aW1lZCBvdXQnKSxyKG5ldyBGeShNeS5ERUFETElORV9FWENFRURFRCwiUmVxdWVzdCB0aW1lIG91dCIpKTticmVhaztjYXNlIEN5LkhUVFBfRVJST1I6dmFyIGU9aS5nZXRTdGF0dXMoKTtWeSgiQ29ubmVjdGlvbiIsJ1JQQyAiJytvKyciIGZhaWxlZCB3aXRoIHN0YXR1czonLGUsInJlc3BvbnNlIHRleHQ6IixpLmdldFJlc3BvbnNlVGV4dCgpKSwwPGU/KHQ9aS5nZXRSZXNwb25zZUpzb24oKS5lcnJvcikmJnQuc3RhdHVzJiZ0Lm1lc3NhZ2U/KGU9dC5zdGF0dXMudG9Mb3dlckNhc2UoKS5yZXBsYWNlKC9fL2csIi0iKSxlPTA8PU9iamVjdC52YWx1ZXMoTXkpLmluZGV4T2YoZSk/ZTpNeS5VTktOT1dOLHIobmV3IEZ5KGUsdC5tZXNzYWdlKSkpOnIobmV3IEZ5KE15LlVOS05PV04sIlNlcnZlciByZXNwb25kZWQgd2l0aCBzdGF0dXMgIitpLmdldFN0YXR1cygpKSk6cihuZXcgRnkoTXkuVU5BVkFJTEFCTEUsIkNvbm5lY3Rpb24gZmFpbGVkLiIpKTticmVhaztkZWZhdWx0Okh5KCl9fWZpbmFsbHl7VnkoIkNvbm5lY3Rpb24iLCdSUEMgIicrbysnIiBjb21wbGV0ZWQuJyl9fSk7dmFyIHQ9SlNPTi5zdHJpbmdpZnkoYSk7aS5zZW5kKGUsIlBPU1QiLHQscywxNSl9KX0sb1MucHJvdG90eXBlLiRpPWZ1bmN0aW9uKHQsZSl7dmFyIG49W3RoaXMuRGksIi8iLCJnb29nbGUuZmlyZXN0b3JlLnYxLkZpcmVzdG9yZSIsIi8iLHQsIi9jaGFubmVsIl0scj1uZXcgd3ksaT1TeSgpLHQ9e2h0dHBTZXNzaW9uSWRQYXJhbToiZ3Nlc3Npb25pZCIsaW5pdE1lc3NhZ2VIZWFkZXJzOnt9LG1lc3NhZ2VVcmxQYXJhbXM6e2RhdGFiYXNlOiJwcm9qZWN0cy8iK3RoaXMuZGF0YWJhc2VJZC5wcm9qZWN0SWQrIi9kYXRhYmFzZXMvIit0aGlzLmRhdGFiYXNlSWQuZGF0YWJhc2V9LHNlbmRSYXdKc29uOiEwLHN1cHBvcnRzQ3Jvc3NEb21haW5YaHI6ITAsaW50ZXJuYWxDaGFubmVsUGFyYW1zOntmb3J3YXJkQ2hhbm5lbFJlcXVlc3RUaW1lb3V0TXM6NmU1fSxmb3JjZUxvbmdQb2xsaW5nOnRoaXMuZm9yY2VMb25nUG9sbGluZyxkZXRlY3RCdWZmZXJpbmdQcm94eTp0aGlzLmF1dG9EZXRlY3RMb25nUG9sbGluZ307dGhpcy5GaSh0LmluaXRNZXNzYWdlSGVhZGVycyxlKSx2bygpfHx5bygpfHwwPD1wbygpLmluZGV4T2YoIkVsZWN0cm9uLyIpfHwoMDw9KGU9cG8oKSkuaW5kZXhPZigiTVNJRSAiKXx8MDw9ZS5pbmRleE9mKCJUcmlkZW50LyIpKXx8MDw9cG8oKS5pbmRleE9mKCJNU0FwcEhvc3QvIil8fGdvKCl8fCh0Lmh0dHBIZWFkZXJzT3ZlcndyaXRlUGFyYW09IiRodHRwSGVhZGVycyIpO249bi5qb2luKCIiKTtWeSgiQ29ubmVjdGlvbiIsIkNyZWF0aW5nIFdlYkNoYW5uZWw6ICIrbix0KTt2YXIgbz1yLmNyZWF0ZVdlYkNoYW5uZWwobix0KSxzPSExLGE9ITEsdT1uZXcgclMoe0VpOmZ1bmN0aW9uKHQpe2E/VnkoIkNvbm5lY3Rpb24iLCJOb3Qgc2VuZGluZyBiZWNhdXNlIFdlYkNoYW5uZWwgaXMgY2xvc2VkOiIsdCk6KHN8fChWeSgiQ29ubmVjdGlvbiIsIk9wZW5pbmcgV2ViQ2hhbm5lbCB0cmFuc3BvcnQuIiksby5vcGVuKCkscz0hMCksVnkoIkNvbm5lY3Rpb24iLCJXZWJDaGFubmVsIHNlbmRpbmc6Iix0KSxvLnNlbmQodCkpfSxUaTpmdW5jdGlvbigpe3JldHVybiBvLmNsb3NlKCl9fSksdD1mdW5jdGlvbih0LGUsbil7dC5saXN0ZW4oZSxmdW5jdGlvbih0KXt0cnl7bih0KX1jYXRjaCh0KXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dGhyb3cgdH0sMCl9fSl9O3JldHVybiB0KG8sUHkuRXZlbnRUeXBlLk9QRU4sZnVuY3Rpb24oKXthfHxWeSgiQ29ubmVjdGlvbiIsIldlYkNoYW5uZWwgdHJhbnNwb3J0IG9wZW5lZC4iKX0pLHQobyxQeS5FdmVudFR5cGUuQ0xPU0UsZnVuY3Rpb24oKXthfHwoYT0hMCxWeSgiQ29ubmVjdGlvbiIsIldlYkNoYW5uZWwgdHJhbnNwb3J0IGNsb3NlZCIpLHUuVmkoKSl9KSx0KG8sUHkuRXZlbnRUeXBlLkVSUk9SLGZ1bmN0aW9uKHQpe2F8fChhPSEwLEt5KCJDb25uZWN0aW9uIiwiV2ViQ2hhbm5lbCB0cmFuc3BvcnQgZXJyb3JlZDoiLHQpLHUuVmkobmV3IEZ5KE15LlVOQVZBSUxBQkxFLCJUaGUgb3BlcmF0aW9uIGNvdWxkIG5vdCBiZSBjb21wbGV0ZWQiKSkpfSksdChvLFB5LkV2ZW50VHlwZS5NRVNTQUdFLGZ1bmN0aW9uKHQpe3ZhciBlLG4scixpO2F8fChHeSghIShlPXQuZGF0YVswXSkpLChuPWUuZXJyb3J8fChudWxsPT09KGk9ZVswXSl8fHZvaWQgMD09PWk/dm9pZCAwOmkuZXJyb3IpKT8oVnkoIkNvbm5lY3Rpb24iLCJXZWJDaGFubmVsIHJlY2VpdmVkIGVycm9yOiIsbikscj1uLnN0YXR1cyx0PWZ1bmN0aW9uKCl7dmFyIHQ9U3dbcl07aWYodm9pZCAwIT09dClyZXR1cm4gRHcodCl9KCksaT1uLm1lc3NhZ2Usdm9pZCAwPT09dCYmKHQ9TXkuSU5URVJOQUwsaT0iVW5rbm93biBlcnJvciBzdGF0dXM6ICIrcisiIHdpdGggbWVzc2FnZSAiK24ubWVzc2FnZSksYT0hMCx1LlZpKG5ldyBGeSh0LGkpKSxvLmNsb3NlKCkpOihWeSgiQ29ubmVjdGlvbiIsIldlYkNoYW5uZWwgcmVjZWl2ZWQ6IixlKSx1LlNpKGUpKSl9KSx0KGksQXkuU1RBVF9FVkVOVCxmdW5jdGlvbih0KXt0LnN0YXQ9PT1reT9WeSgiQ29ubmVjdGlvbiIsIkRldGVjdGVkIGJ1ZmZlcmluZyBwcm94eSIpOnQuc3RhdD09PVJ5JiZWeSgiQ29ubmVjdGlvbiIsIkRldGVjdGVkIG5vIGJ1ZmZlcmluZyBwcm94eSIpfSksc2V0VGltZW91dChmdW5jdGlvbigpe3UuUGkoKX0sMCksdX0sb1MpO2Z1bmN0aW9uIG9TKHQpe3ZhciBlPXRoaXM7cmV0dXJuKGU9R0UuY2FsbCh0aGlzLHQpfHx0aGlzKS5mb3JjZUxvbmdQb2xsaW5nPXQuZm9yY2VMb25nUG9sbGluZyxlLmF1dG9EZXRlY3RMb25nUG9sbGluZz10LmF1dG9EZXRlY3RMb25nUG9sbGluZyxlfWZ1bmN0aW9uIHNTKHQpe3RoaXMuZGF0YWJhc2VJbmZvPXQsdGhpcy5kYXRhYmFzZUlkPXQuZGF0YWJhc2VJZDt2YXIgZT10LnNzbD8iaHR0cHMiOiJodHRwIjt0aGlzLkRpPWUrIjovLyIrdC5ob3N0LHRoaXMuQ2k9InByb2plY3RzLyIrdGhpcy5kYXRhYmFzZUlkLnByb2plY3RJZCsiL2RhdGFiYXNlcy8iK3RoaXMuZGF0YWJhc2VJZC5kYXRhYmFzZSsiL2RvY3VtZW50cyJ9ZnVuY3Rpb24gYVModCl7dGhpcy5FaT10LkVpLHRoaXMuVGk9dC5UaX1mdW5jdGlvbiB1Uygpe3ZhciB0PXRoaXM7dGhpcy53aT1mdW5jdGlvbigpe3JldHVybiB0Ll9pKCl9LHRoaXMubWk9ZnVuY3Rpb24oKXtyZXR1cm4gdC55aSgpfSx0aGlzLmdpPVtdLHRoaXMucGkoKX1mdW5jdGlvbiBjUygpe31mdW5jdGlvbiBoUygpe3RoaXMubGk9bmV3IEpFLHRoaXMuZmk9e30sdGhpcy5vbmxpbmVTdGF0ZUhhbmRsZXI9bnVsbCx0aGlzLnNlcXVlbmNlTnVtYmVySGFuZGxlcj1udWxsfWZ1bmN0aW9uIGxTKHQsZSxuLHIsaSl7dGhpcy53aW5kb3c9dCx0aGlzLlNlPWUsdGhpcy5wZXJzaXN0ZW5jZUtleT1uLHRoaXMuTnM9cix0aGlzLnN5bmNFbmdpbmU9bnVsbCx0aGlzLm9ubGluZVN0YXRlSGFuZGxlcj1udWxsLHRoaXMuc2VxdWVuY2VOdW1iZXJIYW5kbGVyPW51bGwsdGhpcy54cz10aGlzLkZzLmJpbmQodGhpcyksdGhpcy5rcz1uZXcgeHcoWXkpLHRoaXMuc3RhcnRlZD0hMSx0aGlzLk9zPVtdO249bi5yZXBsYWNlKC9bLiorP14ke30oKXxbXF1cXF0vZywiXFwkJiIpO3RoaXMuc3RvcmFnZT10aGlzLndpbmRvdy5sb2NhbFN0b3JhZ2UsdGhpcy5jdXJyZW50VXNlcj1pLHRoaXMuJHM9S0UodGhpcy5wZXJzaXN0ZW5jZUtleSx0aGlzLk5zKSx0aGlzLk1zPSJmaXJlc3RvcmVfc2VxdWVuY2VfbnVtYmVyXyIrdGhpcy5wZXJzaXN0ZW5jZUtleSx0aGlzLmtzPXRoaXMua3MuaW5zZXJ0KHRoaXMuTnMsbmV3IEpFKSx0aGlzLkxzPW5ldyBSZWdFeHAoIl5maXJlc3RvcmVfY2xpZW50c18iK24rIl8oW15fXSopJCIpLHRoaXMuQnM9bmV3IFJlZ0V4cCgiXmZpcmVzdG9yZV9tdXRhdGlvbnNfIituKyJfKFxcZCspKD86XyguKikpPyQiKSx0aGlzLnFzPW5ldyBSZWdFeHAoIl5maXJlc3RvcmVfdGFyZ2V0c18iK24rIl8oXFxkKykkIiksdGhpcy5Vcz0iZmlyZXN0b3JlX29ubGluZV9zdGF0ZV8iK3RoaXMucGVyc2lzdGVuY2VLZXksdGhpcy5Rcz0iZmlyZXN0b3JlX2J1bmRsZV9sb2FkZWRfIit0aGlzLnBlcnNpc3RlbmNlS2V5LHRoaXMud2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInN0b3JhZ2UiLHRoaXMueHMpfWZ1bmN0aW9uIGZTKCl7dGhpcy5hY3RpdmVUYXJnZXRJZHM9WHd9ZnVuY3Rpb24gcFModCxlKXt0aGlzLmNsaWVudElkPXQsdGhpcy5vbmxpbmVTdGF0ZT1lfWZ1bmN0aW9uIGRTKHQsZSl7dGhpcy5jbGllbnRJZD10LHRoaXMuYWN0aXZlVGFyZ2V0SWRzPWV9ZnVuY3Rpb24gdlModCxlLG4pe3RoaXMudGFyZ2V0SWQ9dCx0aGlzLnN0YXRlPWUsdGhpcy5lcnJvcj1ufWZ1bmN0aW9uIGdTKHQsZSxuLHIpe3RoaXMudXNlcj10LHRoaXMuYmF0Y2hJZD1lLHRoaXMuc3RhdGU9bix0aGlzLmVycm9yPXJ9ZnVuY3Rpb24geVMoKXtyZXR1cm4idW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdz93aW5kb3c6bnVsbH1mdW5jdGlvbiBtUygpe3JldHVybiJ1bmRlZmluZWQiIT10eXBlb2YgZG9jdW1lbnQ/ZG9jdW1lbnQ6bnVsbH1mdW5jdGlvbiBiUyh0KXtyZXR1cm4gbmV3IGZfKHQsITApfWZ1bmN0aW9uIHdTKHQsZSxuLHIsaSl7dmFyIG89dGhpczt0aGlzLmxvY2FsU3RvcmU9dCx0aGlzLmRhdGFzdG9yZT1lLHRoaXMuYXN5bmNRdWV1ZT1uLHRoaXMucmVtb3RlU3luY2VyPXt9LHRoaXMua3I9W10sdGhpcy5Pcj1uZXcgTWFwLHRoaXMuJHI9bmV3IFNldCx0aGlzLk1yPVtdLHRoaXMuTHI9aSx0aGlzLkxyLmRpKGZ1bmN0aW9uKHQpe24uZW5xdWV1ZUFuZEZvcmdldChmdW5jdGlvbigpe3JldHVybiAkaShvLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXtyZXR1cm4gWmkodGhpcyxmdW5jdGlvbih0KXtzd2l0Y2godC5sYWJlbCl7Y2FzZSAwOnJldHVybiBLUyh0aGlzKT8oVnkoIlJlbW90ZVN0b3JlIiwiUmVzdGFydGluZyBzdHJlYW1zIGZvciBuZXR3b3JrIHJlYWNoYWJpbGl0eSBjaGFuZ2UuIiksWzQsZnVuY3Rpb24obil7cmV0dXJuICRpKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBlO3JldHVybiBaaSh0aGlzLGZ1bmN0aW9uKHQpe3N3aXRjaCh0LmxhYmVsKXtjYXNlIDA6cmV0dXJuKGU9bikuJHIuYWRkKDQpLFs0LE1TKGUpXTtjYXNlIDE6cmV0dXJuIHQuc2VudCgpLGUuQnIuc2V0KCJVbmtub3duIiksZS4kci5kZWxldGUoNCksWzQsTFMoZSldO2Nhc2UgMjpyZXR1cm4gdC5zZW50KCksWzJdfX0pfSl9KHRoaXMpXSk6WzMsMl07Y2FzZSAxOnQuc2VudCgpLHQubGFiZWw9MjtjYXNlIDI6cmV0dXJuWzJdfX0pfSl9KX0pLHRoaXMuQnI9bmV3IEFTKG4scil9dmFyIF9TLElTLFRTLEVTPSh4Uy5wcm90b3R5cGUucmVzZXQ9ZnVuY3Rpb24oKXt0aGlzLnFpPTB9LHhTLnByb3RvdHlwZS5LaT1mdW5jdGlvbigpe3RoaXMucWk9dGhpcy5CaX0seFMucHJvdG90eXBlLmppPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7dGhpcy5jYW5jZWwoKTt2YXIgbj1NYXRoLmZsb29yKHRoaXMucWkrdGhpcy5XaSgpKSxyPU1hdGgubWF4KDAsRGF0ZS5ub3coKS10aGlzLlFpKSxpPU1hdGgubWF4KDAsbi1yKTswPGkmJlZ5KCJFeHBvbmVudGlhbEJhY2tvZmYiLCJCYWNraW5nIG9mZiBmb3IgIitpKyIgbXMgKGJhc2UgZGVsYXk6ICIrdGhpcy5xaSsiIG1zLCBkZWxheSB3aXRoIGppdHRlcjogIituKyIgbXMsIGxhc3QgYXR0ZW1wdDogIityKyIgbXMgYWdvKSIpLHRoaXMuVWk9dGhpcy5TZS5lbnF1ZXVlQWZ0ZXJEZWxheSh0aGlzLnRpbWVySWQsaSxmdW5jdGlvbigpe3JldHVybiBlLlFpPURhdGUubm93KCksdCgpfSksdGhpcy5xaSo9dGhpcy5MaSx0aGlzLnFpPHRoaXMuTWkmJih0aGlzLnFpPXRoaXMuTWkpLHRoaXMucWk+dGhpcy5CaSYmKHRoaXMucWk9dGhpcy5CaSl9LHhTLnByb3RvdHlwZS5HaT1mdW5jdGlvbigpe251bGwhPT10aGlzLlVpJiYodGhpcy5VaS5za2lwRGVsYXkoKSx0aGlzLlVpPW51bGwpfSx4Uy5wcm90b3R5cGUuY2FuY2VsPWZ1bmN0aW9uKCl7bnVsbCE9PXRoaXMuVWkmJih0aGlzLlVpLmNhbmNlbCgpLHRoaXMuVWk9bnVsbCl9LHhTLnByb3RvdHlwZS5XaT1mdW5jdGlvbigpe3JldHVybihNYXRoLnJhbmRvbSgpLS41KSp0aGlzLnFpfSx4UyksU249KERTLnByb3RvdHlwZS50cj1mdW5jdGlvbigpe3JldHVybiAxPT09dGhpcy5zdGF0ZXx8Mj09PXRoaXMuc3RhdGV8fDQ9PT10aGlzLnN0YXRlfSxEUy5wcm90b3R5cGUuZXI9ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRoaXMuc3RhdGV9LERTLnByb3RvdHlwZS5zdGFydD1mdW5jdGlvbigpezMhPT10aGlzLnN0YXRlP3RoaXMuYXV0aCgpOnRoaXMubnIoKX0sRFMucHJvdG90eXBlLnN0b3A9ZnVuY3Rpb24oKXtyZXR1cm4gJGkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7cmV0dXJuIFppKHRoaXMsZnVuY3Rpb24odCl7c3dpdGNoKHQubGFiZWwpe2Nhc2UgMDpyZXR1cm4gdGhpcy50cigpP1s0LHRoaXMuY2xvc2UoMCldOlszLDJdO2Nhc2UgMTp0LnNlbnQoKSx0LmxhYmVsPTI7Y2FzZSAyOnJldHVyblsyXX19KX0pfSxEUy5wcm90b3R5cGUuc3I9ZnVuY3Rpb24oKXt0aGlzLnN0YXRlPTAsdGhpcy5aaS5yZXNldCgpfSxEUy5wcm90b3R5cGUuaXI9ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3RoaXMuZXIoKSYmbnVsbD09PXRoaXMuWGkmJih0aGlzLlhpPXRoaXMuU2UuZW5xdWV1ZUFmdGVyRGVsYXkodGhpcy56aSw2ZTQsZnVuY3Rpb24oKXtyZXR1cm4gdC5ycigpfSkpfSxEUy5wcm90b3R5cGUuY3I9ZnVuY3Rpb24odCl7dGhpcy51cigpLHRoaXMuc3RyZWFtLnNlbmQodCl9LERTLnByb3RvdHlwZS5ycj1mdW5jdGlvbigpe3JldHVybiAkaSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXtyZXR1cm4gWmkodGhpcyxmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5lcigpP1syLHRoaXMuY2xvc2UoMCldOlsyXX0pfSl9LERTLnByb3RvdHlwZS51cj1mdW5jdGlvbigpe3RoaXMuWGkmJih0aGlzLlhpLmNhbmNlbCgpLHRoaXMuWGk9bnVsbCl9LERTLnByb3RvdHlwZS5jbG9zZT1mdW5jdGlvbihlLG4pe3JldHVybiAkaSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXtyZXR1cm4gWmkodGhpcyxmdW5jdGlvbih0KXtzd2l0Y2godC5sYWJlbCl7Y2FzZSAwOnJldHVybiB0aGlzLnVyKCksdGhpcy5aaS5jYW5jZWwoKSx0aGlzLllpKyssMyE9PWU/dGhpcy5aaS5yZXNldCgpOm4mJm4uY29kZT09PU15LlJFU09VUkNFX0VYSEFVU1RFRD8oQnkobi50b1N0cmluZygpKSxCeSgiVXNpbmcgbWF4aW11bSBiYWNrb2ZmIGRlbGF5IHRvIHByZXZlbnQgb3ZlcmxvYWRpbmcgdGhlIGJhY2tlbmQuIiksdGhpcy5aaS5LaSgpKTpuJiZuLmNvZGU9PT1NeS5VTkFVVEhFTlRJQ0FURUQmJnRoaXMuSmkuaW52YWxpZGF0ZVRva2VuKCksbnVsbCE9PXRoaXMuc3RyZWFtJiYodGhpcy5hcigpLHRoaXMuc3RyZWFtLmNsb3NlKCksdGhpcy5zdHJlYW09bnVsbCksdGhpcy5zdGF0ZT1lLFs0LHRoaXMubGlzdGVuZXIuUmkobildO2Nhc2UgMTpyZXR1cm4gdC5zZW50KCksWzJdfX0pfSl9LERTLnByb3RvdHlwZS5hcj1mdW5jdGlvbigpe30sRFMucHJvdG90eXBlLmF1dGg9ZnVuY3Rpb24oKXt2YXIgbj10aGlzO3RoaXMuc3RhdGU9MTt2YXIgdD10aGlzLmhyKHRoaXMuWWkpLGU9dGhpcy5ZaTt0aGlzLkppLmdldFRva2VuKCkudGhlbihmdW5jdGlvbih0KXtuLllpPT09ZSYmbi5scih0KX0sZnVuY3Rpb24oZSl7dChmdW5jdGlvbigpe3ZhciB0PW5ldyBGeShNeS5VTktOT1dOLCJGZXRjaGluZyBhdXRoIHRva2VuIGZhaWxlZDogIitlLm1lc3NhZ2UpO3JldHVybiBuLmRyKHQpfSl9KX0sRFMucHJvdG90eXBlLmxyPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMsbj10aGlzLmhyKHRoaXMuWWkpO3RoaXMuc3RyZWFtPXRoaXMud3IodCksdGhpcy5zdHJlYW0uSWkoZnVuY3Rpb24oKXtuKGZ1bmN0aW9uKCl7cmV0dXJuIGUuc3RhdGU9MixlLmxpc3RlbmVyLklpKCl9KX0pLHRoaXMuc3RyZWFtLlJpKGZ1bmN0aW9uKHQpe24oZnVuY3Rpb24oKXtyZXR1cm4gZS5kcih0KX0pfSksdGhpcy5zdHJlYW0ub25NZXNzYWdlKGZ1bmN0aW9uKHQpe24oZnVuY3Rpb24oKXtyZXR1cm4gZS5vbk1lc3NhZ2UodCl9KX0pfSxEUy5wcm90b3R5cGUubnI9ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3RoaXMuc3RhdGU9NCx0aGlzLlppLmppKGZ1bmN0aW9uKCl7cmV0dXJuICRpKHQsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3JldHVybiBaaSh0aGlzLGZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnN0YXRlPTAsdGhpcy5zdGFydCgpLFsyXX0pfSl9KX0sRFMucHJvdG90eXBlLmRyPWZ1bmN0aW9uKHQpe3JldHVybiBWeSgiUGVyc2lzdGVudFN0cmVhbSIsImNsb3NlIHdpdGggZXJyb3I6ICIrdCksdGhpcy5zdHJlYW09bnVsbCx0aGlzLmNsb3NlKDMsdCl9LERTLnByb3RvdHlwZS5ocj1mdW5jdGlvbihlKXt2YXIgbj10aGlzO3JldHVybiBmdW5jdGlvbih0KXtuLlNlLmVucXVldWVBbmRGb3JnZXQoZnVuY3Rpb24oKXtyZXR1cm4gbi5ZaT09PWU/dCgpOihWeSgiUGVyc2lzdGVudFN0cmVhbSIsInN0cmVhbSBjYWxsYmFjayBza2lwcGVkIGJ5IGdldENsb3NlR3VhcmRlZERpc3BhdGNoZXIuIiksUHJvbWlzZS5yZXNvbHZlKCkpfSl9fSxEUyksU1M9KFhpKE9TLFRTPVNuKSxPUy5wcm90b3R5cGUud3I9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuSGkuJGkoIkxpc3RlbiIsdCl9LE9TLnByb3RvdHlwZS5vbk1lc3NhZ2U9ZnVuY3Rpb24odCl7dGhpcy5aaS5yZXNldCgpO3ZhciBlPWZ1bmN0aW9uKHQsZSl7aWYoInRhcmdldENoYW5nZSJpbiBlKXtlLnRhcmdldENoYW5nZTt2YXIgbj0iTk9fQ0hBTkdFIj09PShvPWUudGFyZ2V0Q2hhbmdlLnRhcmdldENoYW5nZVR5cGV8fCJOT19DSEFOR0UiKT8wOiJBREQiPT09bz8xOiJSRU1PVkUiPT09bz8yOiJDVVJSRU5UIj09PW8/MzoiUkVTRVQiPT09bz80Okh5KCkscj1lLnRhcmdldENoYW5nZS50YXJnZXRJZHN8fFtdLGk9KHM9ZS50YXJnZXRDaGFuZ2UucmVzdW1lVG9rZW4sdC5JPyhHeSh2b2lkIDA9PT1zfHwic3RyaW5nIj09dHlwZW9mIHMpLGxtLmZyb21CYXNlNjRTdHJpbmcoc3x8IiIpKTooR3kodm9pZCAwPT09c3x8cyBpbnN0YW5jZW9mIFVpbnQ4QXJyYXkpLGxtLmZyb21VaW50OEFycmF5KHN8fG5ldyBVaW50OEFycmF5KSkpLG89KGE9ZS50YXJnZXRDaGFuZ2UuY2F1c2UpJiYodT12b2lkIDA9PT0oYz1hKS5jb2RlP015LlVOS05PV046RHcoYy5jb2RlKSxuZXcgRnkodSxjLm1lc3NhZ2V8fCIiKSkscz1uZXcgZV8obixyLGksb3x8bnVsbCl9ZWxzZSBpZigiZG9jdW1lbnRDaGFuZ2UiaW4gZSl7ZS5kb2N1bWVudENoYW5nZSwobj1lLmRvY3VtZW50Q2hhbmdlKS5kb2N1bWVudCxuLmRvY3VtZW50Lm5hbWUsbi5kb2N1bWVudC51cGRhdGVUaW1lO3ZhciByPWJfKHQsbi5kb2N1bWVudC5uYW1lKSxpPXZfKG4uZG9jdW1lbnQudXBkYXRlVGltZSksYT1uZXcgcW0oe21hcFZhbHVlOntmaWVsZHM6bi5kb2N1bWVudC5maWVsZHN9fSksdT0obz1CbS5uZXdGb3VuZERvY3VtZW50KHIsaSxhKSxuLnRhcmdldElkc3x8W10pLGM9bi5yZW1vdmVkVGFyZ2V0SWRzfHxbXTtzPW5ldyBadyh1LGMsby5rZXksbyl9ZWxzZSBpZigiZG9jdW1lbnREZWxldGUiaW4gZSllLmRvY3VtZW50RGVsZXRlLChuPWUuZG9jdW1lbnREZWxldGUpLmRvY3VtZW50LHI9Yl8odCxuLmRvY3VtZW50KSxpPW4ucmVhZFRpbWU/dl8obi5yZWFkVGltZSk6WnkubWluKCksYT1CbS5uZXdOb0RvY3VtZW50KHIsaSksbz1uLnJlbW92ZWRUYXJnZXRJZHN8fFtdLHM9bmV3IFp3KFtdLG8sYS5rZXksYSk7ZWxzZSBpZigiZG9jdW1lbnRSZW1vdmUiaW4gZSllLmRvY3VtZW50UmVtb3ZlLChuPWUuZG9jdW1lbnRSZW1vdmUpLmRvY3VtZW50LHI9Yl8odCxuLmRvY3VtZW50KSxpPW4ucmVtb3ZlZFRhcmdldElkc3x8W10scz1uZXcgWncoW10saSxyLG51bGwpO2Vsc2V7aWYoISgiZmlsdGVyImluIGUpKXJldHVybiBIeSgpO2UuZmlsdGVyO2U9ZS5maWx0ZXI7ZS50YXJnZXRJZCxuPWUuY291bnR8fDAscj1uZXcgRXcobiksaT1lLnRhcmdldElkLHM9bmV3IHRfKGkscil9cmV0dXJuIHN9KHRoaXMuUix0KSx0PWZ1bmN0aW9uKHQpe2lmKCEoInRhcmdldENoYW5nZSJpbiB0KSlyZXR1cm4gWnkubWluKCk7dD10LnRhcmdldENoYW5nZTtyZXR1cm4oIXQudGFyZ2V0SWRzfHwhdC50YXJnZXRJZHMubGVuZ3RoKSYmdC5yZWFkVGltZT92Xyh0LnJlYWRUaW1lKTpaeS5taW4oKX0odCk7cmV0dXJuIHRoaXMubGlzdGVuZXIuX3IoZSx0KX0sT1MucHJvdG90eXBlLm1yPWZ1bmN0aW9uKHQpe3ZhciBlLG4scixpPXt9O2kuZGF0YWJhc2U9SV8odGhpcy5SKSxpLmFkZFRhcmdldD0oZT10aGlzLlIsKHI9UW0ocj0obj10KS50YXJnZXQpP3tkb2N1bWVudHM6QV8oZSxyKX06e3F1ZXJ5OmtfKGUscil9KS50YXJnZXRJZD1uLnRhcmdldElkLDA8bi5yZXN1bWVUb2tlbi5hcHByb3hpbWF0ZUJ5dGVTaXplKCk/ci5yZXN1bWVUb2tlbj1kXyhlLG4ucmVzdW1lVG9rZW4pOjA8bi5zbmFwc2hvdFZlcnNpb24uY29tcGFyZVRvKFp5Lm1pbigpKSYmKHIucmVhZFRpbWU9cF8oZSxuLnNuYXBzaG90VmVyc2lvbi50b1RpbWVzdGFtcCgpKSkscik7dmFyIG8sdD0odGhpcy5SLG89dCxudWxsPT0odD1mdW5jdGlvbigpe3N3aXRjaChvLnB1cnBvc2Upe2Nhc2UgMDpyZXR1cm4gbnVsbDtjYXNlIDE6cmV0dXJuImV4aXN0ZW5jZS1maWx0ZXItbWlzbWF0Y2giO2Nhc2UgMjpyZXR1cm4ibGltYm8tZG9jdW1lbnQiO2RlZmF1bHQ6cmV0dXJuIEh5KCl9fSgpKT9udWxsOnsiZ29vZy1saXN0ZW4tdGFncyI6dH0pO3QmJihpLmxhYmVscz10KSx0aGlzLmNyKGkpfSxPUy5wcm90b3R5cGUueXI9ZnVuY3Rpb24odCl7dmFyIGU9e307ZS5kYXRhYmFzZT1JXyh0aGlzLlIpLGUucmVtb3ZlVGFyZ2V0PXQsdGhpcy5jcihlKX0sT1MpLENTPShYaShQUyxJUz1TbiksT2JqZWN0LmRlZmluZVByb3BlcnR5KFBTLnByb3RvdHlwZSwicHIiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5ncn0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxQUy5wcm90b3R5cGUuc3RhcnQ9ZnVuY3Rpb24oKXt0aGlzLmdyPSExLHRoaXMubGFzdFN0cmVhbVRva2VuPXZvaWQgMCxJUy5wcm90b3R5cGUuc3RhcnQuY2FsbCh0aGlzKX0sUFMucHJvdG90eXBlLmFyPWZ1bmN0aW9uKCl7dGhpcy5nciYmdGhpcy5FcihbXSl9LFBTLnByb3RvdHlwZS53cj1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5IaS4kaSgiV3JpdGUiLHQpfSxQUy5wcm90b3R5cGUub25NZXNzYWdlPWZ1bmN0aW9uKHQpe2lmKEd5KCEhdC5zdHJlYW1Ub2tlbiksdGhpcy5sYXN0U3RyZWFtVG9rZW49dC5zdHJlYW1Ub2tlbix0aGlzLmdyKXt0aGlzLlppLnJlc2V0KCk7dmFyIGU9KG49dC53cml0ZVJlc3VsdHMscj10LmNvbW1pdFRpbWUsbiYmMDxuLmxlbmd0aD8oR3kodm9pZCAwIT09ciksbi5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIG49ciwodD0oZT10KS51cGRhdGVUaW1lP3ZfKGUudXBkYXRlVGltZSk6dl8obikpLmlzRXF1YWwoWnkubWluKCkpJiYodD12XyhuKSksbmV3IGF3KHQsZS50cmFuc2Zvcm1SZXN1bHRzfHxbXSk7dmFyIGUsbn0pKTpbXSksbj12Xyh0LmNvbW1pdFRpbWUpO3JldHVybiB0aGlzLmxpc3RlbmVyLlRyKG4sZSl9dmFyIG4scjtyZXR1cm4gR3koIXQud3JpdGVSZXN1bHRzfHwwPT09dC53cml0ZVJlc3VsdHMubGVuZ3RoKSx0aGlzLmdyPSEwLHRoaXMubGlzdGVuZXIuSXIoKX0sUFMucHJvdG90eXBlLkFyPWZ1bmN0aW9uKCl7dmFyIHQ9e307dC5kYXRhYmFzZT1JXyh0aGlzLlIpLHRoaXMuY3IodCl9LFBTLnByb3RvdHlwZS5Fcj1mdW5jdGlvbih0KXt2YXIgZT10aGlzLHQ9e3N0cmVhbVRva2VuOnRoaXMubGFzdFN0cmVhbVRva2VuLHdyaXRlczp0Lm1hcChmdW5jdGlvbih0KXtyZXR1cm4gQ18oZS5SLHQpfSl9O3RoaXMuY3IodCl9LFBTKSxOUz0oWGkoUlMsX1M9ZnVuY3Rpb24oKXt9KSxSUy5wcm90b3R5cGUuYnI9ZnVuY3Rpb24oKXtpZih0aGlzLlJyKXRocm93IG5ldyBGeShNeS5GQUlMRURfUFJFQ09ORElUSU9OLCJUaGUgY2xpZW50IGhhcyBhbHJlYWR5IGJlZW4gdGVybWluYXRlZC4iKX0sUlMucHJvdG90eXBlLk5pPWZ1bmN0aW9uKGUsbixyKXt2YXIgaT10aGlzO3JldHVybiB0aGlzLmJyKCksdGhpcy5jcmVkZW50aWFscy5nZXRUb2tlbigpLnRoZW4oZnVuY3Rpb24odCl7cmV0dXJuIGkuSGkuTmkoZSxuLHIsdCl9KS5jYXRjaChmdW5jdGlvbih0KXt0aHJvdyB0LmNvZGU9PT1NeS5VTkFVVEhFTlRJQ0FURUQmJmkuY3JlZGVudGlhbHMuaW52YWxpZGF0ZVRva2VuKCksdH0pfSxSUy5wcm90b3R5cGUuT2k9ZnVuY3Rpb24oZSxuLHIpe3ZhciBpPXRoaXM7cmV0dXJuIHRoaXMuYnIoKSx0aGlzLmNyZWRlbnRpYWxzLmdldFRva2VuKCkudGhlbihmdW5jdGlvbih0KXtyZXR1cm4gaS5IaS5PaShlLG4scix0KX0pLmNhdGNoKGZ1bmN0aW9uKHQpe3Rocm93IHQuY29kZT09PU15LlVOQVVUSEVOVElDQVRFRCYmaS5jcmVkZW50aWFscy5pbnZhbGlkYXRlVG9rZW4oKSx0fSl9LFJTLnByb3RvdHlwZS50ZXJtaW5hdGU9ZnVuY3Rpb24oKXt0aGlzLlJyPSExfSxSUyksQVM9KGtTLnByb3RvdHlwZS5Tcj1mdW5jdGlvbigpe3ZhciB0PXRoaXM7MD09PXRoaXMudnImJih0aGlzLkRyKCJVbmtub3duIiksdGhpcy5Qcj10aGlzLmFzeW5jUXVldWUuZW5xdWV1ZUFmdGVyRGVsYXkoIm9ubGluZV9zdGF0ZV90aW1lb3V0IiwxZTQsZnVuY3Rpb24oKXtyZXR1cm4gdC5Qcj1udWxsLHQuQ3IoIkJhY2tlbmQgZGlkbid0IHJlc3BvbmQgd2l0aGluIDEwIHNlY29uZHMuIiksdC5EcigiT2ZmbGluZSIpLFByb21pc2UucmVzb2x2ZSgpfSkpfSxrUy5wcm90b3R5cGUuTnI9ZnVuY3Rpb24odCl7Ik9ubGluZSI9PT10aGlzLnN0YXRlP3RoaXMuRHIoIlVua25vd24iKToodGhpcy52cisrLDE8PXRoaXMudnImJih0aGlzLkZyKCksdGhpcy5DcigiQ29ubmVjdGlvbiBmYWlsZWQgMSB0aW1lcy4gTW9zdCByZWNlbnQgZXJyb3I6ICIrdC50b1N0cmluZygpKSx0aGlzLkRyKCJPZmZsaW5lIikpKX0sa1MucHJvdG90eXBlLnNldD1mdW5jdGlvbih0KXt0aGlzLkZyKCksdGhpcy52cj0wLCJPbmxpbmUiPT09dCYmKHRoaXMuVnI9ITEpLHRoaXMuRHIodCl9LGtTLnByb3RvdHlwZS5Ecj1mdW5jdGlvbih0KXt0IT09dGhpcy5zdGF0ZSYmKHRoaXMuc3RhdGU9dCx0aGlzLm9ubGluZVN0YXRlSGFuZGxlcih0KSl9LGtTLnByb3RvdHlwZS5Dcj1mdW5jdGlvbih0KXt0PSJDb3VsZCBub3QgcmVhY2ggQ2xvdWQgRmlyZXN0b3JlIGJhY2tlbmQuICIrdCsiXG5UaGlzIHR5cGljYWxseSBpbmRpY2F0ZXMgdGhhdCB5b3VyIGRldmljZSBkb2VzIG5vdCBoYXZlIGEgaGVhbHRoeSBJbnRlcm5ldCBjb25uZWN0aW9uIGF0IHRoZSBtb21lbnQuIFRoZSBjbGllbnQgd2lsbCBvcGVyYXRlIGluIG9mZmxpbmUgbW9kZSB1bnRpbCBpdCBpcyBhYmxlIHRvIHN1Y2Nlc3NmdWxseSBjb25uZWN0IHRvIHRoZSBiYWNrZW5kLiI7dGhpcy5Wcj8oQnkodCksdGhpcy5Wcj0hMSk6VnkoIk9ubGluZVN0YXRlVHJhY2tlciIsdCl9LGtTLnByb3RvdHlwZS5Gcj1mdW5jdGlvbigpe251bGwhPT10aGlzLlByJiYodGhpcy5Qci5jYW5jZWwoKSx0aGlzLlByPW51bGwpfSxrUyk7ZnVuY3Rpb24ga1ModCxlKXt0aGlzLmFzeW5jUXVldWU9dCx0aGlzLm9ubGluZVN0YXRlSGFuZGxlcj1lLHRoaXMuc3RhdGU9IlVua25vd24iLHRoaXMudnI9MCx0aGlzLlByPW51bGwsdGhpcy5Wcj0hMH1mdW5jdGlvbiBSUyh0LGUsbil7dmFyIHI9dGhpcztyZXR1cm4ocj1fUy5jYWxsKHRoaXMpfHx0aGlzKS5jcmVkZW50aWFscz10LHIuSGk9ZSxyLlI9bixyLlJyPSExLHJ9ZnVuY3Rpb24gUFModCxlLG4scixpKXt2YXIgbz10aGlzO3JldHVybihvPUlTLmNhbGwodGhpcyx0LCJ3cml0ZV9zdHJlYW1fY29ubmVjdGlvbl9iYWNrb2ZmIiwid3JpdGVfc3RyZWFtX2lkbGUiLGUsbixpKXx8dGhpcykuUj1yLG8uZ3I9ITEsb31mdW5jdGlvbiBPUyh0LGUsbixyLGkpe3ZhciBvPXRoaXM7cmV0dXJuKG89VFMuY2FsbCh0aGlzLHQsImxpc3Rlbl9zdHJlYW1fY29ubmVjdGlvbl9iYWNrb2ZmIiwibGlzdGVuX3N0cmVhbV9pZGxlIixlLG4saSl8fHRoaXMpLlI9cixvfWZ1bmN0aW9uIERTKHQsZSxuLHIsaSxvKXt0aGlzLlNlPXQsdGhpcy56aT1uLHRoaXMuSGk9cix0aGlzLkppPWksdGhpcy5saXN0ZW5lcj1vLHRoaXMuc3RhdGU9MCx0aGlzLllpPTAsdGhpcy5YaT1udWxsLHRoaXMuc3RyZWFtPW51bGwsdGhpcy5aaT1uZXcgRVModCxlKX1mdW5jdGlvbiB4Uyh0LGUsbixyLGkpe3ZvaWQgMD09PW4mJihuPTFlMyksdm9pZCAwPT09ciYmKHI9MS41KSx2b2lkIDA9PT1pJiYoaT02ZTQpLHRoaXMuU2U9dCx0aGlzLnRpbWVySWQ9ZSx0aGlzLk1pPW4sdGhpcy5MaT1yLHRoaXMuQmk9aSx0aGlzLnFpPTAsdGhpcy5VaT1udWxsLHRoaXMuUWk9RGF0ZS5ub3coKSx0aGlzLnJlc2V0KCl9ZnVuY3Rpb24gTFMocil7cmV0dXJuICRpKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBlLG47cmV0dXJuIFppKHRoaXMsZnVuY3Rpb24odCl7c3dpdGNoKHQubGFiZWwpe2Nhc2UgMDppZighS1MocikpcmV0dXJuWzMsNF07ZT0wLG49ci5Ncix0LmxhYmVsPTE7Y2FzZSAxOnJldHVybiBlPG4ubGVuZ3RoP1s0LCgwLG5bZV0pKCEwKV06WzMsNF07Y2FzZSAyOnQuc2VudCgpLHQubGFiZWw9MztjYXNlIDM6cmV0dXJuIGUrKyxbMywxXTtjYXNlIDQ6cmV0dXJuWzJdfX0pfSl9ZnVuY3Rpb24gTVMocil7cmV0dXJuICRpKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBlLG47cmV0dXJuIFppKHRoaXMsZnVuY3Rpb24odCl7c3dpdGNoKHQubGFiZWwpe2Nhc2UgMDplPTAsbj1yLk1yLHQubGFiZWw9MTtjYXNlIDE6cmV0dXJuIGU8bi5sZW5ndGg/WzQsKDAsbltlXSkoITEpXTpbMyw0XTtjYXNlIDI6dC5zZW50KCksdC5sYWJlbD0zO2Nhc2UgMzpyZXR1cm4gZSsrLFszLDFdO2Nhc2UgNDpyZXR1cm5bMl19fSl9KX1mdW5jdGlvbiBGUyh0LGUpe3QuT3IuaGFzKGUudGFyZ2V0SWQpfHwodC5Pci5zZXQoZS50YXJnZXRJZCxlKSxCUyh0KT9WUyh0KTokUyh0KS5lcigpJiZqUyh0LGUpKX1mdW5jdGlvbiBVUyh0LGUpe3ZhciBuPXQsdD0kUyhuKTtuLk9yLmRlbGV0ZShlKSx0LmVyKCkmJnFTKG4sZSksMD09PW4uT3Iuc2l6ZSYmKHQuZXIoKT90LmlyKCk6S1MobikmJm4uQnIuc2V0KCJVbmtub3duIikpfWZ1bmN0aW9uIGpTKHQsZSl7dC5xci5VKGUudGFyZ2V0SWQpLCRTKHQpLm1yKGUpfWZ1bmN0aW9uIHFTKHQsZSl7dC5xci5VKGUpLCRTKHQpLnlyKGUpfWZ1bmN0aW9uIFZTKGUpe2UucXI9bmV3IHJfKHtnZXRSZW1vdGVLZXlzRm9yVGFyZ2V0OmZ1bmN0aW9uKHQpe3JldHVybiBlLnJlbW90ZVN5bmNlci5nZXRSZW1vdGVLZXlzRm9yVGFyZ2V0KHQpfSxsdDpmdW5jdGlvbih0KXtyZXR1cm4gZS5Pci5nZXQodCl8fG51bGx9fSksJFMoZSkuc3RhcnQoKSxlLkJyLlNyKCl9ZnVuY3Rpb24gQlModCl7cmV0dXJuIEtTKHQpJiYhJFModCkudHIoKSYmMDx0Lk9yLnNpemV9ZnVuY3Rpb24gS1ModCl7cmV0dXJuIDA9PT10LiRyLnNpemV9ZnVuY3Rpb24gV1ModCl7dC5xcj12b2lkIDB9ZnVuY3Rpb24gSFMocyxhLHUpe3JldHVybiAkaSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgbixvO3JldHVybiBaaSh0aGlzLGZ1bmN0aW9uKHQpe3N3aXRjaCh0LmxhYmVsKXtjYXNlIDA6aWYocy5Cci5zZXQoIk9ubGluZSIpLCEoYSBpbnN0YW5jZW9mIGVfJiYyPT09YS5zdGF0ZSYmYS5jYXVzZSkpcmV0dXJuWzMsNl07dC5sYWJlbD0xO2Nhc2UgMTpyZXR1cm4gdC50cnlzLnB1c2goWzEsMywsNV0pLFs0LGZ1bmN0aW9uKG8scyl7cmV0dXJuICRpKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBlLG4scixpO3JldHVybiBaaSh0aGlzLGZ1bmN0aW9uKHQpe3N3aXRjaCh0LmxhYmVsKXtjYXNlIDA6ZT1zLmNhdXNlLG49MCxyPXMudGFyZ2V0SWRzLHQubGFiZWw9MTtjYXNlIDE6cmV0dXJuIG48ci5sZW5ndGg/KGk9cltuXSxvLk9yLmhhcyhpKT9bNCxvLnJlbW90ZVN5bmNlci5yZWplY3RMaXN0ZW4oaSxlKV06WzMsM10pOlszLDVdO2Nhc2UgMjp0LnNlbnQoKSxvLk9yLmRlbGV0ZShpKSxvLnFyLnJlbW92ZVRhcmdldChpKSx0LmxhYmVsPTM7Y2FzZSAzOnQubGFiZWw9NDtjYXNlIDQ6cmV0dXJuIG4rKyxbMywxXTtjYXNlIDU6cmV0dXJuWzJdfX0pfSl9KHMsYSldO2Nhc2UgMjpyZXR1cm4gdC5zZW50KCksWzMsNV07Y2FzZSAzOnJldHVybiBuPXQuc2VudCgpLFZ5KCJSZW1vdGVTdG9yZSIsIkZhaWxlZCB0byByZW1vdmUgdGFyZ2V0cyAlczogJXMgIixhLnRhcmdldElkcy5qb2luKCIsIiksbiksWzQsR1MocyxuKV07Y2FzZSA0OnJldHVybiB0LnNlbnQoKSxbMyw1XTtjYXNlIDU6cmV0dXJuWzMsMTNdO2Nhc2UgNjppZihhIGluc3RhbmNlb2YgWnc/cy5xci5YKGEpOmEgaW5zdGFuY2VvZiB0Xz9zLnFyLnJ0KGEpOnMucXIuZXQoYSksdS5pc0VxdWFsKFp5Lm1pbigpKSlyZXR1cm5bMywxM107dC5sYWJlbD03O2Nhc2UgNzpyZXR1cm4gdC50cnlzLnB1c2goWzcsMTEsLDEzXSksWzQsaEUocy5sb2NhbFN0b3JlKV07Y2FzZSA4OnJldHVybiBvPXQuc2VudCgpLDA8PXUuY29tcGFyZVRvKG8pP1s0LChpPXUsKGU9KHI9cykucXIudXQoaSkpLnRhcmdldENoYW5nZXMuZm9yRWFjaChmdW5jdGlvbih0LGUpe3ZhciBuOzA8dC5yZXN1bWVUb2tlbi5hcHByb3hpbWF0ZUJ5dGVTaXplKCkmJigobj1yLk9yLmdldChlKSkmJnIuT3Iuc2V0KGUsbi53aXRoUmVzdW1lVG9rZW4odC5yZXN1bWVUb2tlbixpKSkpfSksZS50YXJnZXRNaXNtYXRjaGVzLmZvckVhY2goZnVuY3Rpb24odCl7dmFyIGU9ci5Pci5nZXQodCk7ZSYmKHIuT3Iuc2V0KHQsZS53aXRoUmVzdW1lVG9rZW4obG0uRU1QVFlfQllURV9TVFJJTkcsZS5zbmFwc2hvdFZlcnNpb24pKSxxUyhyLHQpLGU9bmV3IFBJKGUudGFyZ2V0LHQsMSxlLnNlcXVlbmNlTnVtYmVyKSxqUyhyLGUpKX0pLHIucmVtb3RlU3luY2VyLmFwcGx5UmVtb3RlRXZlbnQoZSkpXTpbMywxMF07Y2FzZSA5OnQuc2VudCgpLHQubGFiZWw9MTA7Y2FzZSAxMDpyZXR1cm5bMywxM107Y2FzZSAxMTpyZXR1cm4gVnkoIlJlbW90ZVN0b3JlIiwiRmFpbGVkIHRvIHJhaXNlIHNuYXBzaG90OiIsbz10LnNlbnQoKSksWzQsR1MocyxvKV07Y2FzZSAxMjpyZXR1cm4gdC5zZW50KCksWzMsMTNdO2Nhc2UgMTM6cmV0dXJuWzJdfXZhciByLGksZX0pfSl9ZnVuY3Rpb24gR1MobixyLGkpe3JldHVybiAkaSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgZT10aGlzO3JldHVybiBaaSh0aGlzLGZ1bmN0aW9uKHQpe3N3aXRjaCh0LmxhYmVsKXtjYXNlIDA6aWYoIWJJKHIpKXRocm93IHI7cmV0dXJuIG4uJHIuYWRkKDEpLFs0LE1TKG4pXTtjYXNlIDE6cmV0dXJuIHQuc2VudCgpLG4uQnIuc2V0KCJPZmZsaW5lIiksaT1pfHxmdW5jdGlvbigpe3JldHVybiBoRShuLmxvY2FsU3RvcmUpfSxuLmFzeW5jUXVldWUuZW5xdWV1ZVJldHJ5YWJsZShmdW5jdGlvbigpe3JldHVybiAkaShlLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXtyZXR1cm4gWmkodGhpcyxmdW5jdGlvbih0KXtzd2l0Y2godC5sYWJlbCl7Y2FzZSAwOnJldHVybiBWeSgiUmVtb3RlU3RvcmUiLCJSZXRyeWluZyBJbmRleGVkREIgYWNjZXNzIiksWzQsaSgpXTtjYXNlIDE6cmV0dXJuIHQuc2VudCgpLG4uJHIuZGVsZXRlKDEpLFs0LExTKG4pXTtjYXNlIDI6cmV0dXJuIHQuc2VudCgpLFsyXX19KX0pfSksWzJdfX0pfSl9ZnVuY3Rpb24gelMoZSxuKXtyZXR1cm4gbigpLmNhdGNoKGZ1bmN0aW9uKHQpe3JldHVybiBHUyhlLHQsbil9KX1mdW5jdGlvbiBRUyh1KXtyZXR1cm4gJGkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIGksbyxzLGE7cmV0dXJuIFppKHRoaXMsZnVuY3Rpb24odCl7c3dpdGNoKHQubGFiZWwpe2Nhc2UgMDpvPVpTKGk9dSkscz0wPGkua3IubGVuZ3RoP2kua3JbaS5rci5sZW5ndGgtMV0uYmF0Y2hJZDotMSx0LmxhYmVsPTE7Y2FzZSAxOmlmKCEoS1MoaSkmJmkua3IubGVuZ3RoPDEwKSlyZXR1cm5bMyw3XTt0LmxhYmVsPTI7Y2FzZSAyOnJldHVybiB0LnRyeXMucHVzaChbMiw0LCw2XSksWzQsKGU9aS5sb2NhbFN0b3JlLG49cywocj1lKS5wZXJzaXN0ZW5jZS5ydW5UcmFuc2FjdGlvbigiR2V0IG5leHQgbXV0YXRpb24gYmF0Y2giLCJyZWFkb25seSIsZnVuY3Rpb24odCl7cmV0dXJuIHZvaWQgMD09PW4mJihuPS0xKSxyLl9uLmdldE5leHRNdXRhdGlvbkJhdGNoQWZ0ZXJCYXRjaElkKHQsbil9KSldO2Nhc2UgMzpyZXR1cm4gbnVsbD09PShhPXQuc2VudCgpKT8oMD09PWkua3IubGVuZ3RoJiZvLmlyKCksWzMsN10pOihzPWEuYmF0Y2hJZCxmdW5jdGlvbih0LGUpe3Qua3IucHVzaChlKTt0PVpTKHQpO3QuZXIoKSYmdC5wciYmdC5FcihlLm11dGF0aW9ucyl9KGksYSksWzMsNl0pO2Nhc2UgNDpyZXR1cm4gYT10LnNlbnQoKSxbNCxHUyhpLGEpXTtjYXNlIDU6cmV0dXJuIHQuc2VudCgpLFszLDZdO2Nhc2UgNjpyZXR1cm5bMywxXTtjYXNlIDc6cmV0dXJuIFlTKGkpJiZYUyhpKSxbMl19dmFyIGUsbixyfSl9KX1mdW5jdGlvbiBZUyh0KXtyZXR1cm4gS1ModCkmJiFaUyh0KS50cigpJiYwPHQua3IubGVuZ3RofWZ1bmN0aW9uIFhTKHQpe1pTKHQpLnN0YXJ0KCl9ZnVuY3Rpb24gSlMobixyKXtyZXR1cm4gJGkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIGU7cmV0dXJuIFppKHRoaXMsZnVuY3Rpb24odCl7c3dpdGNoKHQubGFiZWwpe2Nhc2UgMDpyZXR1cm4gZT1uLHI/KGUuJHIuZGVsZXRlKDIpLFs0LExTKGUpXSk6WzMsMl07Y2FzZSAxOnJldHVybiB0LnNlbnQoKSxbMyw1XTtjYXNlIDI6cmV0dXJuIHI/WzMsNF06KGUuJHIuYWRkKDIpLFs0LE1TKGUpXSk7Y2FzZSAzOnQuc2VudCgpLGUuQnIuc2V0KCJVbmtub3duIiksdC5sYWJlbD00O2Nhc2UgNDp0LmxhYmVsPTU7Y2FzZSA1OnJldHVyblsyXX19KX0pfWZ1bmN0aW9uICRTKG4pe3ZhciB0LGUscixpPXRoaXM7cmV0dXJuIG4uVXJ8fChuLlVyPSh0PW4uZGF0YXN0b3JlLGU9bi5hc3luY1F1ZXVlLHI9e0lpOmZ1bmN0aW9uKG4pe3JldHVybiAkaSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXtyZXR1cm4gWmkodGhpcyxmdW5jdGlvbih0KXtyZXR1cm4gbi5Pci5mb3JFYWNoKGZ1bmN0aW9uKHQsZSl7alMobix0KX0pLFsyXX0pfSl9LmJpbmQobnVsbCxuKSxSaTpmdW5jdGlvbihlLG4pe3JldHVybiAkaSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXtyZXR1cm4gWmkodGhpcyxmdW5jdGlvbih0KXtyZXR1cm4gV1MoZSksQlMoZSk/KGUuQnIuTnIobiksVlMoZSkpOmUuQnIuc2V0KCJVbmtub3duIiksWzJdfSl9KX0uYmluZChudWxsLG4pLF9yOkhTLmJpbmQobnVsbCxuKX0sdC5icigpLG5ldyBTUyhlLHQuSGksdC5jcmVkZW50aWFscyx0LlIscikpLG4uTXIucHVzaChmdW5jdGlvbihlKXtyZXR1cm4gJGkoaSx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7cmV0dXJuIFppKHRoaXMsZnVuY3Rpb24odCl7c3dpdGNoKHQubGFiZWwpe2Nhc2UgMDpyZXR1cm4gZT8obi5Vci5zcigpLEJTKG4pP1ZTKG4pOm4uQnIuc2V0KCJVbmtub3duIiksWzMsM10pOlszLDFdO2Nhc2UgMTpyZXR1cm5bNCxuLlVyLnN0b3AoKV07Y2FzZSAyOnQuc2VudCgpLFdTKG4pLHQubGFiZWw9MztjYXNlIDM6cmV0dXJuWzJdfX0pfSl9KSksbi5Vcn1mdW5jdGlvbiBaUyhuKXt2YXIgdCxlLHIsaT10aGlzO3JldHVybiBuLlFyfHwobi5Rcj0odD1uLmRhdGFzdG9yZSxlPW4uYXN5bmNRdWV1ZSxyPXtJaTpmdW5jdGlvbihlKXtyZXR1cm4gJGkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7cmV0dXJuIFppKHRoaXMsZnVuY3Rpb24odCl7cmV0dXJuIFpTKGUpLkFyKCksWzJdfSl9KX0uYmluZChudWxsLG4pLFJpOmZ1bmN0aW9uKGUsbil7cmV0dXJuICRpKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3JldHVybiBaaSh0aGlzLGZ1bmN0aW9uKHQpe3N3aXRjaCh0LmxhYmVsKXtjYXNlIDA6cmV0dXJuIG4mJlpTKGUpLnByP1s0LGZ1bmN0aW9uKHIsaSl7cmV0dXJuICRpKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBlLG47cmV0dXJuIFppKHRoaXMsZnVuY3Rpb24odCl7c3dpdGNoKHQubGFiZWwpe2Nhc2UgMDpyZXR1cm4gT3cobj1pLmNvZGUpJiZuIT09TXkuQUJPUlRFRD8oZT1yLmtyLnNoaWZ0KCksWlMocikuc3IoKSxbNCx6UyhyLGZ1bmN0aW9uKCl7cmV0dXJuIHIucmVtb3RlU3luY2VyLnJlamVjdEZhaWxlZFdyaXRlKGUuYmF0Y2hJZCxpKX0pXSk6WzMsM107Y2FzZSAxOnJldHVybiB0LnNlbnQoKSxbNCxRUyhyKV07Y2FzZSAyOnQuc2VudCgpLHQubGFiZWw9MztjYXNlIDM6cmV0dXJuWzJdfX0pfSl9KGUsbildOlszLDJdO2Nhc2UgMTp0LnNlbnQoKSx0LmxhYmVsPTI7Y2FzZSAyOnJldHVybiBZUyhlKSYmWFMoZSksWzJdfX0pfSl9LmJpbmQobnVsbCxuKSxJcjpmdW5jdGlvbihvKXtyZXR1cm4gJGkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIGUsbixyLGk7cmV0dXJuIFppKHRoaXMsZnVuY3Rpb24odCl7Zm9yKGU9WlMobyksbj0wLHI9by5rcjtuPHIubGVuZ3RoO24rKylpPXJbbl0sZS5FcihpLm11dGF0aW9ucyk7cmV0dXJuWzJdfSl9KX0uYmluZChudWxsLG4pLFRyOmZ1bmN0aW9uKHIsaSxvKXtyZXR1cm4gJGkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIGUsbjtyZXR1cm4gWmkodGhpcyxmdW5jdGlvbih0KXtzd2l0Y2godC5sYWJlbCl7Y2FzZSAwOnJldHVybiBlPXIua3Iuc2hpZnQoKSxuPVJJLmZyb20oZSxpLG8pLFs0LHpTKHIsZnVuY3Rpb24oKXtyZXR1cm4gci5yZW1vdGVTeW5jZXIuYXBwbHlTdWNjZXNzZnVsV3JpdGUobil9KV07Y2FzZSAxOnJldHVybiB0LnNlbnQoKSxbNCxRUyhyKV07Y2FzZSAyOnJldHVybiB0LnNlbnQoKSxbMl19fSl9KX0uYmluZChudWxsLG4pfSx0LmJyKCksbmV3IENTKGUsdC5IaSx0LmNyZWRlbnRpYWxzLHQuUixyKSksbi5Nci5wdXNoKGZ1bmN0aW9uKGUpe3JldHVybiAkaShpLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXtyZXR1cm4gWmkodGhpcyxmdW5jdGlvbih0KXtzd2l0Y2godC5sYWJlbCl7Y2FzZSAwOnJldHVybiBlPyhuLlFyLnNyKCksWzQsUVMobildKTpbMywyXTtjYXNlIDE6cmV0dXJuIHQuc2VudCgpLFszLDRdO2Nhc2UgMjpyZXR1cm5bNCxuLlFyLnN0b3AoKV07Y2FzZSAzOnQuc2VudCgpLDA8bi5rci5sZW5ndGgmJihWeSgiUmVtb3RlU3RvcmUiLCJTdG9wcGluZyB3cml0ZSBzdHJlYW0gd2l0aCAiK24ua3IubGVuZ3RoKyIgcGVuZGluZyB3cml0ZXMiKSxuLmtyPVtdKSx0LmxhYmVsPTQ7Y2FzZSA0OnJldHVyblsyXX19KX0pfSkpLG4uUXJ9dmFyIHRDPShlQy5jcmVhdGVBbmRTY2hlZHVsZT1mdW5jdGlvbih0LGUsbixyLGkpe2k9bmV3IGVDKHQsZSxEYXRlLm5vdygpK24scixpKTtyZXR1cm4gaS5zdGFydChuKSxpfSxlQy5wcm90b3R5cGUuc3RhcnQ9ZnVuY3Rpb24odCl7dmFyIGU9dGhpczt0aGlzLnRpbWVySGFuZGxlPXNldFRpbWVvdXQoZnVuY3Rpb24oKXtyZXR1cm4gZS5oYW5kbGVEZWxheUVsYXBzZWQoKX0sdCl9LGVDLnByb3RvdHlwZS5za2lwRGVsYXk9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5oYW5kbGVEZWxheUVsYXBzZWQoKX0sZUMucHJvdG90eXBlLmNhbmNlbD1mdW5jdGlvbih0KXtudWxsIT09dGhpcy50aW1lckhhbmRsZSYmKHRoaXMuY2xlYXJUaW1lb3V0KCksdGhpcy5kZWZlcnJlZC5yZWplY3QobmV3IEZ5KE15LkNBTkNFTExFRCwiT3BlcmF0aW9uIGNhbmNlbGxlZCIrKHQ/IjogIit0OiIiKSkpKX0sZUMucHJvdG90eXBlLmhhbmRsZURlbGF5RWxhcHNlZD1mdW5jdGlvbigpe3ZhciBlPXRoaXM7dGhpcy5hc3luY1F1ZXVlLmVucXVldWVBbmRGb3JnZXQoZnVuY3Rpb24oKXtyZXR1cm4gbnVsbCE9PWUudGltZXJIYW5kbGU/KGUuY2xlYXJUaW1lb3V0KCksZS5vcCgpLnRoZW4oZnVuY3Rpb24odCl7cmV0dXJuIGUuZGVmZXJyZWQucmVzb2x2ZSh0KX0pKTpQcm9taXNlLnJlc29sdmUoKX0pfSxlQy5wcm90b3R5cGUuY2xlYXJUaW1lb3V0PWZ1bmN0aW9uKCl7bnVsbCE9PXRoaXMudGltZXJIYW5kbGUmJih0aGlzLnJlbW92YWxDYWxsYmFjayh0aGlzKSxjbGVhclRpbWVvdXQodGhpcy50aW1lckhhbmRsZSksdGhpcy50aW1lckhhbmRsZT1udWxsKX0sZUMpO2Z1bmN0aW9uIGVDKHQsZSxuLHIsaSl7dGhpcy5hc3luY1F1ZXVlPXQsdGhpcy50aW1lcklkPWUsdGhpcy50YXJnZXRUaW1lTXM9bix0aGlzLm9wPXIsdGhpcy5yZW1vdmFsQ2FsbGJhY2s9aSx0aGlzLmRlZmVycmVkPW5ldyBhSSx0aGlzLnRoZW49dGhpcy5kZWZlcnJlZC5wcm9taXNlLnRoZW4uYmluZCh0aGlzLmRlZmVycmVkLnByb21pc2UpLHRoaXMuZGVmZXJyZWQucHJvbWlzZS5jYXRjaChmdW5jdGlvbih0KXt9KX1mdW5jdGlvbiBuQyh0LGUpe2lmKEJ5KCJBc3luY1F1ZXVlIixlKyI6ICIrdCksYkkodCkpcmV0dXJuIG5ldyBGeShNeS5VTkFWQUlMQUJMRSxlKyI6ICIrdCk7dGhyb3cgdH1mdW5jdGlvbiByQygpe3RoaXMucXVlcmllcz1uZXcgRFQoRmIsTWIpLHRoaXMub25saW5lU3RhdGU9IlVua25vd24iLHRoaXMuR3I9bmV3IFNldH12YXIgaUM9KGhDLmVtcHR5U2V0PWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgaEModC5jb21wYXJhdG9yKX0saEMucHJvdG90eXBlLmhhcz1mdW5jdGlvbih0KXtyZXR1cm4gbnVsbCE9dGhpcy5rZXllZE1hcC5nZXQodCl9LGhDLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMua2V5ZWRNYXAuZ2V0KHQpfSxoQy5wcm90b3R5cGUuZmlyc3Q9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zb3J0ZWRTZXQubWluS2V5KCl9LGhDLnByb3RvdHlwZS5sYXN0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc29ydGVkU2V0Lm1heEtleSgpfSxoQy5wcm90b3R5cGUuaXNFbXB0eT1mdW5jdGlvbigpe3JldHVybiB0aGlzLnNvcnRlZFNldC5pc0VtcHR5KCl9LGhDLnByb3RvdHlwZS5pbmRleE9mPWZ1bmN0aW9uKHQpe3Q9dGhpcy5rZXllZE1hcC5nZXQodCk7cmV0dXJuIHQ/dGhpcy5zb3J0ZWRTZXQuaW5kZXhPZih0KTotMX0sT2JqZWN0LmRlZmluZVByb3BlcnR5KGhDLnByb3RvdHlwZSwic2l6ZSIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnNvcnRlZFNldC5zaXplfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLGhDLnByb3RvdHlwZS5mb3JFYWNoPWZ1bmN0aW9uKG4pe3RoaXMuc29ydGVkU2V0Lmlub3JkZXJUcmF2ZXJzYWwoZnVuY3Rpb24odCxlKXtyZXR1cm4gbih0KSwhMX0pfSxoQy5wcm90b3R5cGUuYWRkPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuZGVsZXRlKHQua2V5KTtyZXR1cm4gZS5jb3B5KGUua2V5ZWRNYXAuaW5zZXJ0KHQua2V5LHQpLGUuc29ydGVkU2V0Lmluc2VydCh0LG51bGwpKX0saEMucHJvdG90eXBlLmRlbGV0ZT1mdW5jdGlvbih0KXt2YXIgZT10aGlzLmdldCh0KTtyZXR1cm4gZT90aGlzLmNvcHkodGhpcy5rZXllZE1hcC5yZW1vdmUodCksdGhpcy5zb3J0ZWRTZXQucmVtb3ZlKGUpKTp0aGlzfSxoQy5wcm90b3R5cGUuaXNFcXVhbD1mdW5jdGlvbih0KXtpZighKHQgaW5zdGFuY2VvZiBoQykpcmV0dXJuITE7aWYodGhpcy5zaXplIT09dC5zaXplKXJldHVybiExO2Zvcih2YXIgZT10aGlzLnNvcnRlZFNldC5nZXRJdGVyYXRvcigpLG49dC5zb3J0ZWRTZXQuZ2V0SXRlcmF0b3IoKTtlLmhhc05leHQoKTspe3ZhciByPWUuZ2V0TmV4dCgpLmtleSxpPW4uZ2V0TmV4dCgpLmtleTtpZighci5pc0VxdWFsKGkpKXJldHVybiExfXJldHVybiEwfSxoQy5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXt2YXIgZT1bXTtyZXR1cm4gdGhpcy5mb3JFYWNoKGZ1bmN0aW9uKHQpe2UucHVzaCh0LnRvU3RyaW5nKCkpfSksMD09PWUubGVuZ3RoPyJEb2N1bWVudFNldCAoKSI6IkRvY3VtZW50U2V0IChcbiAgIitlLmpvaW4oIiAgXG4iKSsiXG4pIn0saEMucHJvdG90eXBlLmNvcHk9ZnVuY3Rpb24odCxlKXt2YXIgbj1uZXcgaEM7cmV0dXJuIG4uY29tcGFyYXRvcj10aGlzLmNvbXBhcmF0b3Isbi5rZXllZE1hcD10LG4uc29ydGVkU2V0PWUsbn0saEMpLG9DPShjQy5wcm90b3R5cGUudHJhY2s9ZnVuY3Rpb24odCl7dmFyIGU9dC5kb2Mua2V5LG49dGhpcy5Lci5nZXQoZSk7IW58fDAhPT10LnR5cGUmJjM9PT1uLnR5cGU/dGhpcy5Lcj10aGlzLktyLmluc2VydChlLHQpOjM9PT10LnR5cGUmJjEhPT1uLnR5cGU/dGhpcy5Lcj10aGlzLktyLmluc2VydChlLHt0eXBlOm4udHlwZSxkb2M6dC5kb2N9KToyPT09dC50eXBlJiYyPT09bi50eXBlP3RoaXMuS3I9dGhpcy5Lci5pbnNlcnQoZSx7dHlwZToyLGRvYzp0LmRvY30pOjI9PT10LnR5cGUmJjA9PT1uLnR5cGU/dGhpcy5Lcj10aGlzLktyLmluc2VydChlLHt0eXBlOjAsZG9jOnQuZG9jfSk6MT09PXQudHlwZSYmMD09PW4udHlwZT90aGlzLktyPXRoaXMuS3IucmVtb3ZlKGUpOjE9PT10LnR5cGUmJjI9PT1uLnR5cGU/dGhpcy5Lcj10aGlzLktyLmluc2VydChlLHt0eXBlOjEsZG9jOm4uZG9jfSk6MD09PXQudHlwZSYmMT09PW4udHlwZT90aGlzLktyPXRoaXMuS3IuaW5zZXJ0KGUse3R5cGU6Mixkb2M6dC5kb2N9KTpIeSgpfSxjQy5wcm90b3R5cGUuanI9ZnVuY3Rpb24oKXt2YXIgbj1bXTtyZXR1cm4gdGhpcy5Lci5pbm9yZGVyVHJhdmVyc2FsKGZ1bmN0aW9uKHQsZSl7bi5wdXNoKGUpfSksbn0sY0MpLHNDPSh1Qy5mcm9tSW5pdGlhbERvY3VtZW50cz1mdW5jdGlvbih0LGUsbixyKXt2YXIgaT1bXTtyZXR1cm4gZS5mb3JFYWNoKGZ1bmN0aW9uKHQpe2kucHVzaCh7dHlwZTowLGRvYzp0fSl9KSxuZXcgdUModCxlLGlDLmVtcHR5U2V0KGUpLGksbixyLCEwLCExKX0sT2JqZWN0LmRlZmluZVByb3BlcnR5KHVDLnByb3RvdHlwZSwiaGFzUGVuZGluZ1dyaXRlcyIse2dldDpmdW5jdGlvbigpe3JldHVybiF0aGlzLm11dGF0ZWRLZXlzLmlzRW1wdHkoKX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSx1Qy5wcm90b3R5cGUuaXNFcXVhbD1mdW5jdGlvbih0KXtpZighKHRoaXMuZnJvbUNhY2hlPT09dC5mcm9tQ2FjaGUmJnRoaXMuc3luY1N0YXRlQ2hhbmdlZD09PXQuc3luY1N0YXRlQ2hhbmdlZCYmdGhpcy5tdXRhdGVkS2V5cy5pc0VxdWFsKHQubXV0YXRlZEtleXMpJiZNYih0aGlzLnF1ZXJ5LHQucXVlcnkpJiZ0aGlzLmRvY3MuaXNFcXVhbCh0LmRvY3MpJiZ0aGlzLm9sZERvY3MuaXNFcXVhbCh0Lm9sZERvY3MpKSlyZXR1cm4hMTt2YXIgZT10aGlzLmRvY0NoYW5nZXMsbj10LmRvY0NoYW5nZXM7aWYoZS5sZW5ndGghPT1uLmxlbmd0aClyZXR1cm4hMTtmb3IodmFyIHI9MDtyPGUubGVuZ3RoO3IrKylpZihlW3JdLnR5cGUhPT1uW3JdLnR5cGV8fCFlW3JdLmRvYy5pc0VxdWFsKG5bcl0uZG9jKSlyZXR1cm4hMTtyZXR1cm4hMH0sdUMpLGFDPWZ1bmN0aW9uKCl7dGhpcy5Xcj12b2lkIDAsdGhpcy5saXN0ZW5lcnM9W119O2Z1bmN0aW9uIHVDKHQsZSxuLHIsaSxvLHMsYSl7dGhpcy5xdWVyeT10LHRoaXMuZG9jcz1lLHRoaXMub2xkRG9jcz1uLHRoaXMuZG9jQ2hhbmdlcz1yLHRoaXMubXV0YXRlZEtleXM9aSx0aGlzLmZyb21DYWNoZT1vLHRoaXMuc3luY1N0YXRlQ2hhbmdlZD1zLHRoaXMuZXhjbHVkZXNNZXRhZGF0YUNoYW5nZXM9YX1mdW5jdGlvbiBjQygpe3RoaXMuS3I9bmV3IHh3KENtLmNvbXBhcmF0b3IpfWZ1bmN0aW9uIGhDKG4pe3RoaXMuY29tcGFyYXRvcj1uP2Z1bmN0aW9uKHQsZSl7cmV0dXJuIG4odCxlKXx8Q20uY29tcGFyYXRvcih0LmtleSxlLmtleSl9OmZ1bmN0aW9uKHQsZSl7cmV0dXJuIENtLmNvbXBhcmF0b3IodC5rZXksZS5rZXkpfSx0aGlzLmtleWVkTWFwPUd3LHRoaXMuc29ydGVkU2V0PW5ldyB4dyh0aGlzLmNvbXBhcmF0b3IpfWZ1bmN0aW9uIGxDKHMsYSl7cmV0dXJuICRpKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBlLG4scixpLG87cmV0dXJuIFppKHRoaXMsZnVuY3Rpb24odCl7c3dpdGNoKHQubGFiZWwpe2Nhc2UgMDppZihlPXMsbj1hLnF1ZXJ5LHI9ITEsKGk9ZS5xdWVyaWVzLmdldChuKSl8fChyPSEwLGk9bmV3IGFDKSwhcilyZXR1cm5bMyw0XTt0LmxhYmVsPTE7Y2FzZSAxOnJldHVybiB0LnRyeXMucHVzaChbMSwzLCw0XSksbz1pLFs0LGUub25MaXN0ZW4obildO2Nhc2UgMjpyZXR1cm4gby5Xcj10LnNlbnQoKSxbMyw0XTtjYXNlIDM6cmV0dXJuIG89dC5zZW50KCksbz1uQyhvLCJJbml0aWFsaXphdGlvbiBvZiBxdWVyeSAnIitVYihhLnF1ZXJ5KSsiJyBmYWlsZWQiKSxbMix2b2lkIGEub25FcnJvcihvKV07Y2FzZSA0OnJldHVybiBlLnF1ZXJpZXMuc2V0KG4saSksaS5saXN0ZW5lcnMucHVzaChhKSxhLnpyKGUub25saW5lU3RhdGUpLGkuV3ImJmEuSHIoaS5XcikmJnBDKGUpLFsyXX19KX0pfWZ1bmN0aW9uIGZDKHMsYSl7cmV0dXJuICRpKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBlLG4scixpLG87cmV0dXJuIFppKHRoaXMsZnVuY3Rpb24odCl7cmV0dXJuIGU9cyxuPWEucXVlcnkscj0hMSwoaT1lLnF1ZXJpZXMuZ2V0KG4pKSYmMDw9KG89aS5saXN0ZW5lcnMuaW5kZXhPZihhKSkmJihpLmxpc3RlbmVycy5zcGxpY2UobywxKSxyPTA9PT1pLmxpc3RlbmVycy5sZW5ndGgpLHI/WzIsKGUucXVlcmllcy5kZWxldGUobiksZS5vblVubGlzdGVuKG4pKV06WzJdfSl9KX1mdW5jdGlvbiBwQyh0KXt0LkdyLmZvckVhY2goZnVuY3Rpb24odCl7dC5uZXh0KCl9KX12YXIgZEM9KF9DLnByb3RvdHlwZS5Icj1mdW5jdGlvbih0KXtpZighdGhpcy5vcHRpb25zLmluY2x1ZGVNZXRhZGF0YUNoYW5nZXMpe2Zvcih2YXIgZT1bXSxuPTAscj10LmRvY0NoYW5nZXM7bjxyLmxlbmd0aDtuKyspe3ZhciBpPXJbbl07MyE9PWkudHlwZSYmZS5wdXNoKGkpfXQ9bmV3IHNDKHQucXVlcnksdC5kb2NzLHQub2xkRG9jcyxlLHQubXV0YXRlZEtleXMsdC5mcm9tQ2FjaGUsdC5zeW5jU3RhdGVDaGFuZ2VkLCEwKX12YXIgbz0hMTtyZXR1cm4gdGhpcy5Zcj90aGlzLlpyKHQpJiYodGhpcy5Kci5uZXh0KHQpLG89ITApOnRoaXMuZW8odCx0aGlzLm9ubGluZVN0YXRlKSYmKHRoaXMubm8odCksbz0hMCksdGhpcy5Ycj10LG99LF9DLnByb3RvdHlwZS5vbkVycm9yPWZ1bmN0aW9uKHQpe3RoaXMuSnIuZXJyb3IodCl9LF9DLnByb3RvdHlwZS56cj1mdW5jdGlvbih0KXt0aGlzLm9ubGluZVN0YXRlPXQ7dmFyIGU9ITE7cmV0dXJuIHRoaXMuWHImJiF0aGlzLllyJiZ0aGlzLmVvKHRoaXMuWHIsdCkmJih0aGlzLm5vKHRoaXMuWHIpLGU9ITApLGV9LF9DLnByb3RvdHlwZS5lbz1mdW5jdGlvbih0LGUpe2lmKCF0LmZyb21DYWNoZSlyZXR1cm4hMDt2YXIgbj0iT2ZmbGluZSIhPT1lO3JldHVybiEodGhpcy5vcHRpb25zLnNvJiZufHx0LmRvY3MuaXNFbXB0eSgpJiYiT2ZmbGluZSIhPT1lKX0sX0MucHJvdG90eXBlLlpyPWZ1bmN0aW9uKHQpe2lmKDA8dC5kb2NDaGFuZ2VzLmxlbmd0aClyZXR1cm4hMDt2YXIgZT10aGlzLlhyJiZ0aGlzLlhyLmhhc1BlbmRpbmdXcml0ZXMhPT10Lmhhc1BlbmRpbmdXcml0ZXM7cmV0dXJuISghdC5zeW5jU3RhdGVDaGFuZ2VkJiYhZSkmJiEwPT09dGhpcy5vcHRpb25zLmluY2x1ZGVNZXRhZGF0YUNoYW5nZXN9LF9DLnByb3RvdHlwZS5ubz1mdW5jdGlvbih0KXt0PXNDLmZyb21Jbml0aWFsRG9jdW1lbnRzKHQucXVlcnksdC5kb2NzLHQubXV0YXRlZEtleXMsdC5mcm9tQ2FjaGUpLHRoaXMuWXI9ITAsdGhpcy5Kci5uZXh0KHQpfSxfQyksdkM9KHdDLnByb3RvdHlwZS5pbz1mdW5jdGlvbigpe3JldHVybiJtZXRhZGF0YSJpbiB0aGlzLnBheWxvYWR9LHdDKSxnQz0oYkMucHJvdG90eXBlLnFuPWZ1bmN0aW9uKHQpe3JldHVybiBiXyh0aGlzLlIsdCl9LGJDLnByb3RvdHlwZS5Vbj1mdW5jdGlvbih0KXtyZXR1cm4gdC5tZXRhZGF0YS5leGlzdHM/U18odGhpcy5SLHQuZG9jdW1lbnQsITEpOkJtLm5ld05vRG9jdW1lbnQodGhpcy5xbih0Lm1ldGFkYXRhLm5hbWUpLHRoaXMuUW4odC5tZXRhZGF0YS5yZWFkVGltZSkpfSxiQy5wcm90b3R5cGUuUW49dl8sYkMpLHlDPShtQy5wcm90b3R5cGUub289ZnVuY3Rpb24odCl7dGhpcy5wcm9ncmVzcy5ieXRlc0xvYWRlZCs9dC5ieXRlTGVuZ3RoO3ZhciBlPXRoaXMucHJvZ3Jlc3MuZG9jdW1lbnRzTG9hZGVkO3JldHVybiB0LnBheWxvYWQubmFtZWRRdWVyeT90aGlzLnF1ZXJpZXMucHVzaCh0LnBheWxvYWQubmFtZWRRdWVyeSk6dC5wYXlsb2FkLmRvY3VtZW50TWV0YWRhdGE/KHRoaXMuZG9jdW1lbnRzLnB1c2goe21ldGFkYXRhOnQucGF5bG9hZC5kb2N1bWVudE1ldGFkYXRhfSksdC5wYXlsb2FkLmRvY3VtZW50TWV0YWRhdGEuZXhpc3RzfHwrK2UpOnQucGF5bG9hZC5kb2N1bWVudCYmKHRoaXMuZG9jdW1lbnRzW3RoaXMuZG9jdW1lbnRzLmxlbmd0aC0xXS5kb2N1bWVudD10LnBheWxvYWQuZG9jdW1lbnQsKytlKSxlIT09dGhpcy5wcm9ncmVzcy5kb2N1bWVudHNMb2FkZWQ/KHRoaXMucHJvZ3Jlc3MuZG9jdW1lbnRzTG9hZGVkPWUsT2JqZWN0LmFzc2lnbih7fSx0aGlzLnByb2dyZXNzKSk6bnVsbH0sbUMucHJvdG90eXBlLmNvPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1uZXcgTWFwLG49bmV3IGdDKHRoaXMuUikscj0wLGk9dDtyPGkubGVuZ3RoO3IrKyl7dmFyIG89aVtyXTtpZihvLm1ldGFkYXRhLnF1ZXJpZXMpZm9yKHZhciBzPW4ucW4oby5tZXRhZGF0YS5uYW1lKSxhPTAsdT1vLm1ldGFkYXRhLnF1ZXJpZXM7YTx1Lmxlbmd0aDthKyspe3ZhciBjPXVbYV0saD0oZS5nZXQoYyl8fFl3KCkpLmFkZChzKTtlLnNldChjLGgpfX1yZXR1cm4gZX0sbUMucHJvdG90eXBlLmNvbXBsZXRlPWZ1bmN0aW9uKCl7cmV0dXJuICRpKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBlLG4scixpO3JldHVybiBaaSh0aGlzLGZ1bmN0aW9uKHQpe3N3aXRjaCh0LmxhYmVsKXtjYXNlIDA6cmV0dXJuWzQsZnVuY3Rpb24obCxmLHAsZCl7cmV0dXJuICRpKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBuLHIsaSxvLGUscyxhLHUsYyxoO3JldHVybiBaaSh0aGlzLGZ1bmN0aW9uKHQpe3N3aXRjaCh0LmxhYmVsKXtjYXNlIDA6Zm9yKG49bCxyPVl3KCksaT1LdyxvPXp3LGU9MCxzPXA7ZTxzLmxlbmd0aDtlKyspYT1zW2VdLHU9Zi5xbihhLm1ldGFkYXRhLm5hbWUpLGEuZG9jdW1lbnQmJihyPXIuYWRkKHUpKSxpPWkuaW5zZXJ0KHUsZi5VbihhKSksbz1vLmluc2VydCh1LGYuUW4oYS5tZXRhZGF0YS5yZWFkVGltZSkpO3JldHVybiBjPW4uJG4ubmV3Q2hhbmdlQnVmZmVyKHt0cmFja1JlbW92YWxzOiEwfSksWzQscEUobix4YihOYihhbS5mcm9tU3RyaW5nKCJfX2J1bmRsZV9fL2RvY3MvIitkKSkpKV07Y2FzZSAxOnJldHVybiBoPXQuc2VudCgpLFsyLG4ucGVyc2lzdGVuY2UucnVuVHJhbnNhY3Rpb24oIkFwcGx5IGJ1bmRsZSBkb2N1bWVudHMiLCJyZWFkd3JpdGUiLGZ1bmN0aW9uKGUpe3JldHVybiBmRShlLGMsaSxaeS5taW4oKSxvKS5uZXh0KGZ1bmN0aW9uKHQpe3JldHVybiBjLmFwcGx5KGUpLHR9KS5uZXh0KGZ1bmN0aW9uKHQpe3JldHVybiBuLnFlLnJlbW92ZU1hdGNoaW5nS2V5c0ZvclRhcmdldElkKGUsaC50YXJnZXRJZCkubmV4dChmdW5jdGlvbigpe3JldHVybiBuLnFlLmFkZE1hdGNoaW5nS2V5cyhlLHIsaC50YXJnZXRJZCl9KS5uZXh0KGZ1bmN0aW9uKCl7cmV0dXJuIG4uTW4uRW4oZSx0KX0pLm5leHQoZnVuY3Rpb24oKXtyZXR1cm4gdH0pfSl9KV19fSl9KX0odGhpcy5sb2NhbFN0b3JlLG5ldyBnQyh0aGlzLlIpLHRoaXMuZG9jdW1lbnRzLHRoaXMucm8uaWQpXTtjYXNlIDE6ZT10LnNlbnQoKSxuPXRoaXMuY28odGhpcy5kb2N1bWVudHMpLHI9MCxpPXRoaXMucXVlcmllcyx0LmxhYmVsPTI7Y2FzZSAyOnJldHVybiByPGkubGVuZ3RoPyhpPWlbcl0sWzQsZnVuY3Rpb24oZSxpLG8pe3JldHVybiB2b2lkIDA9PT1vJiYobz1ZdygpKSwkaSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBaaSh0aGlzLGZ1bmN0aW9uKHQpe3N3aXRjaCh0LmxhYmVsKXtjYXNlIDA6cmV0dXJuWzQscEUoZSx4YihISShpLmJ1bmRsZWRRdWVyeSkpKV07Y2FzZSAxOnJldHVybiBuPXQuc2VudCgpLFsyLChyPWUpLnBlcnNpc3RlbmNlLnJ1blRyYW5zYWN0aW9uKCJTYXZlIG5hbWVkIHF1ZXJ5IiwicmVhZHdyaXRlIixmdW5jdGlvbih0KXt2YXIgZT12XyhpLnJlYWRUaW1lKTtpZigwPD1uLnNuYXBzaG90VmVyc2lvbi5jb21wYXJlVG8oZSkpcmV0dXJuIHIuUWUuc2F2ZU5hbWVkUXVlcnkodCxpKTtlPW4ud2l0aFJlc3VtZVRva2VuKGxtLkVNUFRZX0JZVEVfU1RSSU5HLGUpO3JldHVybiByLkZuPXIuRm4uaW5zZXJ0KGUudGFyZ2V0SWQsZSksci5xZS51cGRhdGVUYXJnZXREYXRhKHQsZSkubmV4dChmdW5jdGlvbigpe3JldHVybiByLnFlLnJlbW92ZU1hdGNoaW5nS2V5c0ZvclRhcmdldElkKHQsbi50YXJnZXRJZCl9KS5uZXh0KGZ1bmN0aW9uKCl7cmV0dXJuIHIucWUuYWRkTWF0Y2hpbmdLZXlzKHQsbyxuLnRhcmdldElkKX0pLm5leHQoZnVuY3Rpb24oKXtyZXR1cm4gci5RZS5zYXZlTmFtZWRRdWVyeSh0LGkpfSl9KV19fSl9KX0odGhpcy5sb2NhbFN0b3JlLGksbi5nZXQoaS5uYW1lKSldKTpbMyw1XTtjYXNlIDM6dC5zZW50KCksdC5sYWJlbD00O2Nhc2UgNDpyZXR1cm4gcisrLFszLDJdO2Nhc2UgNTpyZXR1cm5bMiwodGhpcy5wcm9ncmVzcy50YXNrU3RhdGU9IlN1Y2Nlc3MiLG5ldyAkVChPYmplY3QuYXNzaWduKHt9LHRoaXMucHJvZ3Jlc3MpLGUpKV19fSl9KX0sbUMpO2Z1bmN0aW9uIG1DKHQsZSxuKXt0aGlzLnJvPXQsdGhpcy5sb2NhbFN0b3JlPWUsdGhpcy5SPW4sdGhpcy5xdWVyaWVzPVtdLHRoaXMuZG9jdW1lbnRzPVtdLHRoaXMucHJvZ3Jlc3M9SUModCl9ZnVuY3Rpb24gYkModCl7dGhpcy5SPXR9ZnVuY3Rpb24gd0ModCxlKXt0aGlzLnBheWxvYWQ9dCx0aGlzLmJ5dGVMZW5ndGg9ZX1mdW5jdGlvbiBfQyh0LGUsbil7dGhpcy5xdWVyeT10LHRoaXMuSnI9ZSx0aGlzLllyPSExLHRoaXMuWHI9bnVsbCx0aGlzLm9ubGluZVN0YXRlPSJVbmtub3duIix0aGlzLm9wdGlvbnM9bnx8e319ZnVuY3Rpb24gSUModCl7cmV0dXJue3Rhc2tTdGF0ZToiUnVubmluZyIsZG9jdW1lbnRzTG9hZGVkOjAsYnl0ZXNMb2FkZWQ6MCx0b3RhbERvY3VtZW50czp0LnRvdGFsRG9jdW1lbnRzLHRvdGFsQnl0ZXM6dC50b3RhbEJ5dGVzfX12YXIgVEM9ZnVuY3Rpb24odCl7dGhpcy5rZXk9dH0sRUM9ZnVuY3Rpb24odCl7dGhpcy5rZXk9dH0sU0M9KE9iamVjdC5kZWZpbmVQcm9wZXJ0eShSQy5wcm90b3R5cGUsIndvIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudW99LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksUkMucHJvdG90eXBlLl9vPWZ1bmN0aW9uKHQsZSl7dmFyIHM9dGhpcyxhPWU/ZS5tbzpuZXcgb0MsdT0oZXx8dGhpcykuZm8sYz0oZXx8dGhpcykubXV0YXRlZEtleXMsaD11LGw9ITEsZj1BYih0aGlzLnF1ZXJ5KSYmdS5zaXplPT09dGhpcy5xdWVyeS5saW1pdD91Lmxhc3QoKTpudWxsLHA9a2IodGhpcy5xdWVyeSkmJnUuc2l6ZT09PXRoaXMucXVlcnkubGltaXQ/dS5maXJzdCgpOm51bGw7aWYodC5pbm9yZGVyVHJhdmVyc2FsKGZ1bmN0aW9uKHQsZSl7dmFyIG49dS5nZXQodCkscj1qYihzLnF1ZXJ5LGUpP2U6bnVsbCxpPSEhbiYmcy5tdXRhdGVkS2V5cy5oYXMobi5rZXkpLG89ISFyJiYoci5oYXNMb2NhbE11dGF0aW9uc3x8cy5tdXRhdGVkS2V5cy5oYXMoci5rZXkpJiZyLmhhc0NvbW1pdHRlZE11dGF0aW9ucyksZT0hMTtuJiZyP24uZGF0YS5pc0VxdWFsKHIuZGF0YSk/aSE9PW8mJihhLnRyYWNrKHt0eXBlOjMsZG9jOnJ9KSxlPSEwKTpzLnlvKG4scil8fChhLnRyYWNrKHt0eXBlOjIsZG9jOnJ9KSxlPSEwLChmJiYwPHMubG8ocixmKXx8cCYmcy5sbyhyLHApPDApJiYobD0hMCkpOiFuJiZyPyhhLnRyYWNrKHt0eXBlOjAsZG9jOnJ9KSxlPSEwKTpuJiYhciYmKGEudHJhY2soe3R5cGU6MSxkb2M6bn0pLGU9ITAsKGZ8fHApJiYobD0hMCkpLGUmJihjPXI/KGg9aC5hZGQociksbz9jLmFkZCh0KTpjLmRlbGV0ZSh0KSk6KGg9aC5kZWxldGUodCksYy5kZWxldGUodCkpKX0pLEFiKHRoaXMucXVlcnkpfHxrYih0aGlzLnF1ZXJ5KSlmb3IoO2guc2l6ZT50aGlzLnF1ZXJ5LmxpbWl0Oyl7dmFyIG49QWIodGhpcy5xdWVyeSk/aC5sYXN0KCk6aC5maXJzdCgpLGg9aC5kZWxldGUobi5rZXkpLGM9Yy5kZWxldGUobi5rZXkpO2EudHJhY2soe3R5cGU6MSxkb2M6bn0pfXJldHVybntmbzpoLG1vOmEsTm46bCxtdXRhdGVkS2V5czpjfX0sUkMucHJvdG90eXBlLnlvPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQuaGFzTG9jYWxNdXRhdGlvbnMmJmUuaGFzQ29tbWl0dGVkTXV0YXRpb25zJiYhZS5oYXNMb2NhbE11dGF0aW9uc30sUkMucHJvdG90eXBlLmFwcGx5Q2hhbmdlcz1mdW5jdGlvbih0LGUsbil7dmFyIG89dGhpcyxyPXRoaXMuZm87dGhpcy5mbz10LmZvLHRoaXMubXV0YXRlZEtleXM9dC5tdXRhdGVkS2V5czt2YXIgaT10Lm1vLmpyKCk7aS5zb3J0KGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHI9dC50eXBlLGk9ZS50eXBlLG4ociktbihpKXx8by5sbyh0LmRvYyxlLmRvYyk7ZnVuY3Rpb24gbih0KXtzd2l0Y2godCl7Y2FzZSAwOnJldHVybiAxO2Nhc2UgMjpjYXNlIDM6cmV0dXJuIDI7Y2FzZSAxOnJldHVybiAwO2RlZmF1bHQ6cmV0dXJuIEh5KCl9fXZhciByLGl9KSx0aGlzLnBvKG4pO3ZhciBzPWU/dGhpcy5FbygpOltdLG49MD09PXRoaXMuaG8uc2l6ZSYmdGhpcy5jdXJyZW50PzE6MCxlPW4hPT10aGlzLmFvO3JldHVybiB0aGlzLmFvPW4sMCE9PWkubGVuZ3RofHxlP3tzbmFwc2hvdDpuZXcgc0ModGhpcy5xdWVyeSx0LmZvLHIsaSx0Lm11dGF0ZWRLZXlzLDA9PW4sZSwhMSksVG86c306e1RvOnN9fSxSQy5wcm90b3R5cGUuenI9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuY3VycmVudCYmIk9mZmxpbmUiPT09dD8odGhpcy5jdXJyZW50PSExLHRoaXMuYXBwbHlDaGFuZ2VzKHtmbzp0aGlzLmZvLG1vOm5ldyBvQyxtdXRhdGVkS2V5czp0aGlzLm11dGF0ZWRLZXlzLE5uOiExfSwhMSkpOntUbzpbXX19LFJDLnByb3RvdHlwZS5Jbz1mdW5jdGlvbih0KXtyZXR1cm4hdGhpcy51by5oYXModCkmJiEhdGhpcy5mby5oYXModCkmJiF0aGlzLmZvLmdldCh0KS5oYXNMb2NhbE11dGF0aW9uc30sUkMucHJvdG90eXBlLnBvPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7dCYmKHQuYWRkZWREb2N1bWVudHMuZm9yRWFjaChmdW5jdGlvbih0KXtyZXR1cm4gZS51bz1lLnVvLmFkZCh0KX0pLHQubW9kaWZpZWREb2N1bWVudHMuZm9yRWFjaChmdW5jdGlvbih0KXt9KSx0LnJlbW92ZWREb2N1bWVudHMuZm9yRWFjaChmdW5jdGlvbih0KXtyZXR1cm4gZS51bz1lLnVvLmRlbGV0ZSh0KX0pLHRoaXMuY3VycmVudD10LmN1cnJlbnQpfSxSQy5wcm90b3R5cGUuRW89ZnVuY3Rpb24oKXt2YXIgZT10aGlzO2lmKCF0aGlzLmN1cnJlbnQpcmV0dXJuW107dmFyIG49dGhpcy5obzt0aGlzLmhvPVl3KCksdGhpcy5mby5mb3JFYWNoKGZ1bmN0aW9uKHQpe2UuSW8odC5rZXkpJiYoZS5obz1lLmhvLmFkZCh0LmtleSkpfSk7dmFyIHI9W107cmV0dXJuIG4uZm9yRWFjaChmdW5jdGlvbih0KXtlLmhvLmhhcyh0KXx8ci5wdXNoKG5ldyBFQyh0KSl9KSx0aGlzLmhvLmZvckVhY2goZnVuY3Rpb24odCl7bi5oYXModCl8fHIucHVzaChuZXcgVEModCkpfSkscn0sUkMucHJvdG90eXBlLkFvPWZ1bmN0aW9uKHQpe3RoaXMudW89dC5Cbix0aGlzLmhvPVl3KCk7dD10aGlzLl9vKHQuZG9jdW1lbnRzKTtyZXR1cm4gdGhpcy5hcHBseUNoYW5nZXModCwhMCl9LFJDLnByb3RvdHlwZS5Sbz1mdW5jdGlvbigpe3JldHVybiBzQy5mcm9tSW5pdGlhbERvY3VtZW50cyh0aGlzLnF1ZXJ5LHRoaXMuZm8sdGhpcy5tdXRhdGVkS2V5cywwPT09dGhpcy5hbyl9LFJDKSxDQz1mdW5jdGlvbih0LGUsbil7dGhpcy5xdWVyeT10LHRoaXMudGFyZ2V0SWQ9ZSx0aGlzLnZpZXc9bn0sTkM9ZnVuY3Rpb24odCl7dGhpcy5rZXk9dCx0aGlzLmJvPSExfSxBQz0oT2JqZWN0LmRlZmluZVByb3BlcnR5KGtDLnByb3RvdHlwZSwiaXNQcmltYXJ5Q2xpZW50Iix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuITA9PT10aGlzLk9vfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLGtDKTtmdW5jdGlvbiBrQyh0LGUsbixyLGksbyl7dGhpcy5sb2NhbFN0b3JlPXQsdGhpcy5yZW1vdGVTdG9yZT1lLHRoaXMuZXZlbnRNYW5hZ2VyPW4sdGhpcy5zaGFyZWRDbGllbnRTdGF0ZT1yLHRoaXMuY3VycmVudFVzZXI9aSx0aGlzLm1heENvbmN1cnJlbnRMaW1ib1Jlc29sdXRpb25zPW8sdGhpcy52bz17fSx0aGlzLlBvPW5ldyBEVChGYixNYiksdGhpcy5Wbz1uZXcgTWFwLHRoaXMuU289bmV3IFNldCx0aGlzLkRvPW5ldyB4dyhDbS5jb21wYXJhdG9yKSx0aGlzLkNvPW5ldyBNYXAsdGhpcy5Obz1uZXcgSUUsdGhpcy54bz17fSx0aGlzLkZvPW5ldyBNYXAsdGhpcy5rbz1kVC5ZdCgpLHRoaXMub25saW5lU3RhdGU9IlVua25vd24iLHRoaXMuT289dm9pZCAwfWZ1bmN0aW9uIFJDKHQsZSl7dGhpcy5xdWVyeT10LHRoaXMudW89ZSx0aGlzLmFvPW51bGwsdGhpcy5jdXJyZW50PSExLHRoaXMuaG89WXcoKSx0aGlzLm11dGF0ZWRLZXlzPVl3KCksdGhpcy5sbz1xYih0KSx0aGlzLmZvPW5ldyBpQyh0aGlzLmxvKX1mdW5jdGlvbiBQQyhpLG8scyxhKXtyZXR1cm4gJGkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIGUsbixyO3JldHVybiBaaSh0aGlzLGZ1bmN0aW9uKHQpe3N3aXRjaCh0LmxhYmVsKXtjYXNlIDA6cmV0dXJuIGkuJG89ZnVuY3Rpb24odCxlLG4pe3JldHVybiBmdW5jdGlvbihyLGksbyxzKXtyZXR1cm4gJGkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIGUsbjtyZXR1cm4gWmkodGhpcyxmdW5jdGlvbih0KXtzd2l0Y2godC5sYWJlbCl7Y2FzZSAwOnJldHVybihlPWkudmlldy5fbyhvKSkuTm4/WzQsdkUoci5sb2NhbFN0b3JlLGkucXVlcnksITEpLnRoZW4oZnVuY3Rpb24odCl7dD10LmRvY3VtZW50cztyZXR1cm4gaS52aWV3Ll9vKHQsZSl9KV06WzMsMl07Y2FzZSAxOmU9dC5zZW50KCksdC5sYWJlbD0yO2Nhc2UgMjpyZXR1cm4gbj1zJiZzLnRhcmdldENoYW5nZXMuZ2V0KGkudGFyZ2V0SWQpLG49aS52aWV3LmFwcGx5Q2hhbmdlcyhlLHIuaXNQcmltYXJ5Q2xpZW50LG4pLFsyLChWQyhyLGkudGFyZ2V0SWQsbi5Ubyksbi5zbmFwc2hvdCldfX0pfSl9KGksdCxlLG4pfSxbNCx2RShpLmxvY2FsU3RvcmUsbywhMCldO2Nhc2UgMTpyZXR1cm4gbj10LnNlbnQoKSxyPW5ldyBTQyhvLG4uQm4pLGU9ci5fbyhuLmRvY3VtZW50cyksbj0kdy5jcmVhdGVTeW50aGVzaXplZFRhcmdldENoYW5nZUZvckN1cnJlbnRDaGFuZ2UocyxhJiYiT2ZmbGluZSIhPT1pLm9ubGluZVN0YXRlKSxuPXIuYXBwbHlDaGFuZ2VzKGUsaS5pc1ByaW1hcnlDbGllbnQsbiksVkMoaSxzLG4uVG8pLHI9bmV3IENDKG8scyxyKSxbMiwoaS5Qby5zZXQobyxyKSxpLlZvLmhhcyhzKT9pLlZvLmdldChzKS5wdXNoKG8pOmkuVm8uc2V0KHMsW29dKSxuLnNuYXBzaG90KV19fSl9KX1mdW5jdGlvbiBPQyhmLHAsZCl7cmV0dXJuICRpKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBzLGw7cmV0dXJuIFppKHRoaXMsZnVuY3Rpb24odCl7c3dpdGNoKHQubGFiZWwpe2Nhc2UgMDpsPVhDKGYpLHQubGFiZWw9MTtjYXNlIDE6cmV0dXJuIHQudHJ5cy5wdXNoKFsxLDUsLDZdKSxbNCwoaT1sLmxvY2FsU3RvcmUsYT1wLGM9aSxoPSR5Lm5vdygpLG89YS5yZWR1Y2UoZnVuY3Rpb24odCxlKXtyZXR1cm4gdC5hZGQoZS5rZXkpfSxZdygpKSxjLnBlcnNpc3RlbmNlLnJ1blRyYW5zYWN0aW9uKCJMb2NhbGx5IHdyaXRlIG11dGF0aW9ucyIsInJlYWR3cml0ZSIsZnVuY3Rpb24ocyl7cmV0dXJuIGMuTW4ucG4ocyxvKS5uZXh0KGZ1bmN0aW9uKHQpe3U9dDtmb3IodmFyIGU9W10sbj0wLHI9YTtuPHIubGVuZ3RoO24rKyl7dmFyIGk9cltuXSxvPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuPW51bGwscj0wLGk9dC5maWVsZFRyYW5zZm9ybXM7cjxpLmxlbmd0aDtyKyspe3ZhciBvPWlbcl0scz1lLmRhdGEuZmllbGQoby5maWVsZCkscz1XYihvLnRyYW5zZm9ybSxzfHxudWxsKTtudWxsIT1zJiYobj1udWxsPT1uP3FtLmVtcHR5KCk6bikuc2V0KG8uZmllbGQscyl9cmV0dXJuIG58fG51bGx9KGksdS5nZXQoaS5rZXkpKTtudWxsIT1vJiZlLnB1c2gobmV3IG13KGkua2V5LG8sZnVuY3Rpb24gcyh0KXt2YXIgYT1bXTtyZXR1cm4gcm0odC5maWVsZHN8fHt9LGZ1bmN0aW9uKHQsZSl7dmFyIG49bmV3IGNtKFt0XSk7aWYoam0oZSkpaWYoMD09PShlPXMoZS5tYXBWYWx1ZSkuZmllbGRzKS5sZW5ndGgpYS5wdXNoKG4pO2Vsc2UgZm9yKHZhciByPTAsaT1lO3I8aS5sZW5ndGg7cisrKXt2YXIgbz1pW3JdO2EucHVzaChuLmNoaWxkKG8pKX1lbHNlIGEucHVzaChuKX0pLG5ldyBobShhKX0oby50b1Byb3RvKCkubWFwVmFsdWUpLGN3LmV4aXN0cyghMCkpKX1yZXR1cm4gYy5fbi5hZGRNdXRhdGlvbkJhdGNoKHMsaCxlLGEpfSl9KS50aGVuKGZ1bmN0aW9uKHQpe3JldHVybiB0LmFwcGx5VG9Mb2NhbERvY3VtZW50U2V0KHUpLHtiYXRjaElkOnQuYmF0Y2hJZCxjaGFuZ2VzOnV9fSkpXTtjYXNlIDI6cmV0dXJuIHM9dC5zZW50KCksbC5zaGFyZWRDbGllbnRTdGF0ZS5hZGRQZW5kaW5nTXV0YXRpb24ocy5iYXRjaElkKSxlPWwsbj1zLmJhdGNoSWQscj1kLGk9KGk9KGk9ZS54b1tlLmN1cnJlbnRVc2VyLnRvS2V5KCldKXx8bmV3IHh3KFl5KSkuaW5zZXJ0KG4sciksZS54b1tlLmN1cnJlbnRVc2VyLnRvS2V5KCldPWksWzQsS0MobCxzLmNoYW5nZXMpXTtjYXNlIDM6cmV0dXJuIHQuc2VudCgpLFs0LFFTKGwucmVtb3RlU3RvcmUpXTtjYXNlIDQ6cmV0dXJuIHQuc2VudCgpLFszLDZdO2Nhc2UgNTpyZXR1cm4gbD10LnNlbnQoKSxsPW5DKGwsIkZhaWxlZCB0byBwZXJzaXN0IHdyaXRlIiksZC5yZWplY3QobCksWzMsNl07Y2FzZSA2OnJldHVyblsyXX12YXIgZSxuLHIsaSxhLHUsYyxoLG99KX0pfWZ1bmN0aW9uIERDKHIsaSl7cmV0dXJuICRpKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBuLGU7cmV0dXJuIFppKHRoaXMsZnVuY3Rpb24odCl7c3dpdGNoKHQubGFiZWwpe2Nhc2UgMDpuPXIsdC5sYWJlbD0xO2Nhc2UgMTpyZXR1cm4gdC50cnlzLnB1c2goWzEsNCwsNl0pLFs0LGxFKG4ubG9jYWxTdG9yZSxpKV07Y2FzZSAyOnJldHVybiBlPXQuc2VudCgpLGkudGFyZ2V0Q2hhbmdlcy5mb3JFYWNoKGZ1bmN0aW9uKHQsZSl7ZT1uLkNvLmdldChlKTtlJiYoR3kodC5hZGRlZERvY3VtZW50cy5zaXplK3QubW9kaWZpZWREb2N1bWVudHMuc2l6ZSt0LnJlbW92ZWREb2N1bWVudHMuc2l6ZTw9MSksMDx0LmFkZGVkRG9jdW1lbnRzLnNpemU/ZS5ibz0hMDowPHQubW9kaWZpZWREb2N1bWVudHMuc2l6ZT9HeShlLmJvKTowPHQucmVtb3ZlZERvY3VtZW50cy5zaXplJiYoR3koZS5ibyksZS5ibz0hMSkpfSksWzQsS0MobixlLGkpXTtjYXNlIDM6cmV0dXJuIHQuc2VudCgpLFszLDZdO2Nhc2UgNDpyZXR1cm5bNCxfVCh0LnNlbnQoKSldO2Nhc2UgNTpyZXR1cm4gdC5zZW50KCksWzMsNl07Y2FzZSA2OnJldHVyblsyXX19KX0pfWZ1bmN0aW9uIHhDKHQsbixlKXt2YXIgcix0PXQ7KHQuaXNQcmltYXJ5Q2xpZW50JiYwPT09ZXx8IXQuaXNQcmltYXJ5Q2xpZW50JiYxPT09ZSkmJihyPVtdLHQuUG8uZm9yRWFjaChmdW5jdGlvbih0LGUpe2U9ZS52aWV3LnpyKG4pO2Uuc25hcHNob3QmJnIucHVzaChlLnNuYXBzaG90KX0pLGZ1bmN0aW9uKHQsaSl7dC5vbmxpbmVTdGF0ZT1pO3ZhciBvPSExO3QucXVlcmllcy5mb3JFYWNoKGZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuPTAscj1lLmxpc3RlbmVycztuPHIubGVuZ3RoO24rKylyW25dLnpyKGkpJiYobz0hMCl9KSxvJiZwQyh0KX0odC5ldmVudE1hbmFnZXIsbiksci5sZW5ndGgmJnQudm8uX3IociksdC5vbmxpbmVTdGF0ZT1uLHQuaXNQcmltYXJ5Q2xpZW50JiZ0LnNoYXJlZENsaWVudFN0YXRlLnNldE9ubGluZVN0YXRlKG4pKX1mdW5jdGlvbiBMQyhzLGEsdSl7cmV0dXJuICRpKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBuLG87cmV0dXJuIFppKHRoaXMsZnVuY3Rpb24odCl7c3dpdGNoKHQubGFiZWwpe2Nhc2UgMDpuPXMsdC5sYWJlbD0xO2Nhc2UgMTpyZXR1cm4gdC50cnlzLnB1c2goWzEsNCwsNl0pLFs0LChlPW4ubG9jYWxTdG9yZSxyPWEsKGk9ZSkucGVyc2lzdGVuY2UucnVuVHJhbnNhY3Rpb24oIlJlamVjdCBiYXRjaCIsInJlYWR3cml0ZS1wcmltYXJ5IixmdW5jdGlvbihlKXt2YXIgbjtyZXR1cm4gaS5fbi5sb29rdXBNdXRhdGlvbkJhdGNoKGUscikubmV4dChmdW5jdGlvbih0KXtyZXR1cm4gR3kobnVsbCE9PXQpLG49dC5rZXlzKCksaS5fbi5yZW1vdmVNdXRhdGlvbkJhdGNoKGUsdCl9KS5uZXh0KGZ1bmN0aW9uKCl7cmV0dXJuIGkuX24ucGVyZm9ybUNvbnNpc3RlbmN5Q2hlY2soZSl9KS5uZXh0KGZ1bmN0aW9uKCl7cmV0dXJuIGkuTW4ucG4oZSxuKX0pfSkpXTtjYXNlIDI6cmV0dXJuIG89dC5zZW50KCksVUMobixhLHUpLEZDKG4sYSksbi5zaGFyZWRDbGllbnRTdGF0ZS51cGRhdGVNdXRhdGlvblN0YXRlKGEsInJlamVjdGVkIix1KSxbNCxLQyhuLG8pXTtjYXNlIDM6cmV0dXJuIHQuc2VudCgpLFszLDZdO2Nhc2UgNDpyZXR1cm5bNCxfVCh0LnNlbnQoKSldO2Nhc2UgNTpyZXR1cm4gdC5zZW50KCksWzMsNl07Y2FzZSA2OnJldHVyblsyXX12YXIgZSxyLGl9KX0pfWZ1bmN0aW9uIE1DKG8scyl7cmV0dXJuICRpKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBuLHIsaTtyZXR1cm4gWmkodGhpcyxmdW5jdGlvbih0KXtzd2l0Y2godC5sYWJlbCl7Y2FzZSAwOktTKChuPW8pLnJlbW90ZVN0b3JlKXx8VnkoIlN5bmNFbmdpbmUiLCJUaGUgbmV0d29yayBpcyBkaXNhYmxlZC4gVGhlIHRhc2sgcmV0dXJuZWQgYnkgJ2F3YWl0UGVuZGluZ1dyaXRlcygpJyB3aWxsIG5vdCBjb21wbGV0ZSB1bnRpbCB0aGUgbmV0d29yayBpcyBlbmFibGVkLiIpLHQubGFiZWw9MTtjYXNlIDE6cmV0dXJuIHQudHJ5cy5wdXNoKFsxLDMsLDRdKSxbNCwoZT1uLmxvY2FsU3RvcmUpLnBlcnNpc3RlbmNlLnJ1blRyYW5zYWN0aW9uKCJHZXQgaGlnaGVzdCB1bmFja25vd2xlZGdlZCBiYXRjaCBpZCIsInJlYWRvbmx5IixmdW5jdGlvbih0KXtyZXR1cm4gZS5fbi5nZXRIaWdoZXN0VW5hY2tub3dsZWRnZWRCYXRjaElkKHQpfSldO2Nhc2UgMjpyZXR1cm4tMT09PShyPXQuc2VudCgpKT9bMix2b2lkIHMucmVzb2x2ZSgpXTooKGk9bi5Gby5nZXQocil8fFtdKS5wdXNoKHMpLG4uRm8uc2V0KHIsaSksWzMsNF0pO2Nhc2UgMzpyZXR1cm4gaT10LnNlbnQoKSxpPW5DKGksIkluaXRpYWxpemF0aW9uIG9mIHdhaXRGb3JQZW5kaW5nV3JpdGVzKCkgb3BlcmF0aW9uIGZhaWxlZCIpLHMucmVqZWN0KGkpLFszLDRdO2Nhc2UgNDpyZXR1cm5bMl19dmFyIGV9KX0pfWZ1bmN0aW9uIEZDKHQsZSl7KHQuRm8uZ2V0KGUpfHxbXSkuZm9yRWFjaChmdW5jdGlvbih0KXt0LnJlc29sdmUoKX0pLHQuRm8uZGVsZXRlKGUpfWZ1bmN0aW9uIFVDKHQsZSxuKXt2YXIgcj10LGk9ci54b1tyLmN1cnJlbnRVc2VyLnRvS2V5KCldO2kmJigodD1pLmdldChlKSkmJihuP3QucmVqZWN0KG4pOnQucmVzb2x2ZSgpLGk9aS5yZW1vdmUoZSkpLHIueG9bci5jdXJyZW50VXNlci50b0tleSgpXT1pKX1mdW5jdGlvbiBqQyhlLHQsbil7dm9pZCAwPT09biYmKG49bnVsbCksZS5zaGFyZWRDbGllbnRTdGF0ZS5yZW1vdmVMb2NhbFF1ZXJ5VGFyZ2V0KHQpO2Zvcih2YXIgcj0wLGk9ZS5Wby5nZXQodCk7cjxpLmxlbmd0aDtyKyspe3ZhciBvPWlbcl07ZS5Qby5kZWxldGUobyksbiYmZS52by5NbyhvLG4pfWUuVm8uZGVsZXRlKHQpLGUuaXNQcmltYXJ5Q2xpZW50JiZlLk5vLlpuKHQpLmZvckVhY2goZnVuY3Rpb24odCl7ZS5Oby5jb250YWluc0tleSh0KXx8cUMoZSx0KX0pfWZ1bmN0aW9uIHFDKHQsZSl7dC5Tby5kZWxldGUoZS5wYXRoLmNhbm9uaWNhbFN0cmluZygpKTt2YXIgbj10LkRvLmdldChlKTtudWxsIT09biYmKFVTKHQucmVtb3RlU3RvcmUsbiksdC5Ebz10LkRvLnJlbW92ZShlKSx0LkNvLmRlbGV0ZShuKSxCQyh0KSl9ZnVuY3Rpb24gVkModCxlLG4pe2Zvcih2YXIgcixpLG8scz0wLGE9bjtzPGEubGVuZ3RoO3MrKyl7dmFyIHU9YVtzXTt1IGluc3RhbmNlb2YgVEM/KHQuTm8uYWRkUmVmZXJlbmNlKHUua2V5LGUpLHI9dCxvPXZvaWQgMCxpPShvPShpPXUpLmtleSkucGF0aC5jYW5vbmljYWxTdHJpbmcoKSxyLkRvLmdldChvKXx8ci5Tby5oYXMoaSl8fChWeSgiU3luY0VuZ2luZSIsIk5ldyBkb2N1bWVudCBpbiBsaW1ibzogIitvKSxyLlNvLmFkZChpKSxCQyhyKSkpOnUgaW5zdGFuY2VvZiBFQz8oVnkoIlN5bmNFbmdpbmUiLCJEb2N1bWVudCBubyBsb25nZXIgaW4gbGltYm86ICIrdS5rZXkpLHQuTm8ucmVtb3ZlUmVmZXJlbmNlKHUua2V5LGUpLHQuTm8uY29udGFpbnNLZXkodS5rZXkpfHxxQyh0LHUua2V5KSk6SHkoKX19ZnVuY3Rpb24gQkModCl7Zm9yKDswPHQuU28uc2l6ZSYmdC5Eby5zaXplPHQubWF4Q29uY3VycmVudExpbWJvUmVzb2x1dGlvbnM7KXt2YXIgZT10LlNvLnZhbHVlcygpLm5leHQoKS52YWx1ZTt0LlNvLmRlbGV0ZShlKTt2YXIgbj1uZXcgQ20oYW0uZnJvbVN0cmluZyhlKSksZT10LmtvLm5leHQoKTt0LkNvLnNldChlLG5ldyBOQyhuKSksdC5Ebz10LkRvLmluc2VydChuLGUpLEZTKHQucmVtb3RlU3RvcmUsbmV3IFBJKHhiKE5iKG4ucGF0aCkpLGUsMixEeS5vKSl9fWZ1bmN0aW9uIEtDKGUscyxhKXtyZXR1cm4gJGkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIG4scixpLG87cmV0dXJuIFppKHRoaXMsZnVuY3Rpb24odCl7c3dpdGNoKHQubGFiZWwpe2Nhc2UgMDpyZXR1cm4gcj1bXSxpPVtdLG89W10sKG49ZSkuUG8uaXNFbXB0eSgpP1szLDNdOihuLlBvLmZvckVhY2goZnVuY3Rpb24odCxlKXtvLnB1c2gobi4kbyhlLHMsYSkudGhlbihmdW5jdGlvbih0KXt0JiYobi5pc1ByaW1hcnlDbGllbnQmJm4uc2hhcmVkQ2xpZW50U3RhdGUudXBkYXRlUXVlcnlTdGF0ZShlLnRhcmdldElkLHQuZnJvbUNhY2hlPyJub3QtY3VycmVudCI6ImN1cnJlbnQiKSxyLnB1c2godCksdD10RS5QbihlLnRhcmdldElkLHQpLGkucHVzaCh0KSl9KSl9KSxbNCxQcm9taXNlLmFsbChvKV0pO2Nhc2UgMTpyZXR1cm4gdC5zZW50KCksbi52by5fcihyKSxbNCxmdW5jdGlvbih1LGMpe3JldHVybiAkaSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgcixlLG4saSxvLHMsYTtyZXR1cm4gWmkodGhpcyxmdW5jdGlvbih0KXtzd2l0Y2godC5sYWJlbCl7Y2FzZSAwOnI9dSx0LmxhYmVsPTE7Y2FzZSAxOnJldHVybiB0LnRyeXMucHVzaChbMSwzLCw0XSksWzQsci5wZXJzaXN0ZW5jZS5ydW5UcmFuc2FjdGlvbigibm90aWZ5TG9jYWxWaWV3Q2hhbmdlcyIsInJlYWR3cml0ZSIsZnVuY3Rpb24obil7cmV0dXJuIHVJLmZvckVhY2goYyxmdW5jdGlvbihlKXtyZXR1cm4gdUkuZm9yRWFjaChlLmJuLGZ1bmN0aW9uKHQpe3JldHVybiByLnBlcnNpc3RlbmNlLnJlZmVyZW5jZURlbGVnYXRlLmFkZFJlZmVyZW5jZShuLGUudGFyZ2V0SWQsdCl9KS5uZXh0KGZ1bmN0aW9uKCl7cmV0dXJuIHVJLmZvckVhY2goZS52bixmdW5jdGlvbih0KXtyZXR1cm4gci5wZXJzaXN0ZW5jZS5yZWZlcmVuY2VEZWxlZ2F0ZS5yZW1vdmVSZWZlcmVuY2UobixlLnRhcmdldElkLHQpfSl9KX0pfSldO2Nhc2UgMjpyZXR1cm4gdC5zZW50KCksWzMsNF07Y2FzZSAzOmlmKCFiSShlPXQuc2VudCgpKSl0aHJvdyBlO3JldHVybiBWeSgiTG9jYWxTdG9yZSIsIkZhaWxlZCB0byB1cGRhdGUgc2VxdWVuY2UgbnVtYmVyczogIitlKSxbMyw0XTtjYXNlIDQ6Zm9yKG49MCxpPWM7bjxpLmxlbmd0aDtuKyspYT1pW25dLG89YS50YXJnZXRJZCxhLmZyb21DYWNoZXx8KHM9ci5Gbi5nZXQobyksYT1zLnNuYXBzaG90VmVyc2lvbixhPXMud2l0aExhc3RMaW1ib0ZyZWVTbmFwc2hvdFZlcnNpb24oYSksci5Gbj1yLkZuLmluc2VydChvLGEpKTtyZXR1cm5bMl19fSl9KX0obi5sb2NhbFN0b3JlLGkpXTtjYXNlIDI6dC5zZW50KCksdC5sYWJlbD0zO2Nhc2UgMzpyZXR1cm5bMl19fSl9KX1mdW5jdGlvbiBXQyhpLG8pe3JldHVybiAkaSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBaaSh0aGlzLGZ1bmN0aW9uKHQpe3N3aXRjaCh0LmxhYmVsKXtjYXNlIDA6cmV0dXJuKG49aSkuY3VycmVudFVzZXIuaXNFcXVhbChvKT9bMywzXTooVnkoIlN5bmNFbmdpbmUiLCJVc2VyIGNoYW5nZS4gTmV3IHVzZXI6IixvLnRvS2V5KCkpLFs0LHVFKG4ubG9jYWxTdG9yZSxvKV0pO2Nhc2UgMTpyZXR1cm4gcj10LnNlbnQoKSxuLmN1cnJlbnRVc2VyPW8sKGU9bikuRm8uZm9yRWFjaChmdW5jdGlvbih0KXt0LmZvckVhY2goZnVuY3Rpb24odCl7dC5yZWplY3QobmV3IEZ5KE15LkNBTkNFTExFRCwiJ3dhaXRGb3JQZW5kaW5nV3JpdGVzJyBwcm9taXNlIGlzIHJlamVjdGVkIGR1ZSB0byBhIHVzZXIgY2hhbmdlLiIpKX0pfSksZS5Gby5jbGVhcigpLG4uc2hhcmVkQ2xpZW50U3RhdGUuaGFuZGxlVXNlckNoYW5nZShvLHIucmVtb3ZlZEJhdGNoSWRzLHIuYWRkZWRCYXRjaElkcyksWzQsS0MobixyLkxuKV07Y2FzZSAyOnQuc2VudCgpLHQubGFiZWw9MztjYXNlIDM6cmV0dXJuWzJdfXZhciBlfSl9KX1mdW5jdGlvbiBIQyhhLHUsYyxoKXtyZXR1cm4gJGkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIG8scztyZXR1cm4gWmkodGhpcyxmdW5jdGlvbih0KXtzd2l0Y2godC5sYWJlbCl7Y2FzZSAwOnJldHVybls0LChlPShvPWEpLmxvY2FsU3RvcmUsbj11LGk9KHI9ZSkuX24sci5wZXJzaXN0ZW5jZS5ydW5UcmFuc2FjdGlvbigiTG9va3VwIG11dGF0aW9uIGRvY3VtZW50cyIsInJlYWRvbmx5IixmdW5jdGlvbihlKXtyZXR1cm4gaS5qdChlLG4pLm5leHQoZnVuY3Rpb24odCl7cmV0dXJuIHQ/ci5Nbi5wbihlLHQpOnVJLnJlc29sdmUobnVsbCl9KX0pKV07Y2FzZSAxOnJldHVybiBudWxsPT09KHM9dC5zZW50KCkpP1szLDZdOiJwZW5kaW5nIiE9PWM/WzMsM106WzQsUVMoby5yZW1vdGVTdG9yZSldO2Nhc2UgMjpyZXR1cm4gdC5zZW50KCksWzMsNF07Y2FzZSAzOiJhY2tub3dsZWRnZWQiPT09Y3x8InJlamVjdGVkIj09PWM/KFVDKG8sdSxofHxudWxsKSxGQyhvLHUpLG8ubG9jYWxTdG9yZS5fbi5HdCh1KSk6SHkoKSx0LmxhYmVsPTQ7Y2FzZSA0OnJldHVybls0LEtDKG8scyldO2Nhc2UgNTpyZXR1cm4gdC5zZW50KCksWzMsN107Y2FzZSA2OlZ5KCJTeW5jRW5naW5lIiwiQ2Fubm90IGFwcGx5IG11dGF0aW9uIGJhdGNoIHdpdGggaWQ6ICIrdSksdC5sYWJlbD03O2Nhc2UgNzpyZXR1cm5bMl19dmFyIGUsbixyLGl9KX0pfWZ1bmN0aW9uIEdDKGgsbCl7cmV0dXJuICRpKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciByLGUsaSxvLHMsYSx1LGM7cmV0dXJuIFppKHRoaXMsZnVuY3Rpb24odCl7c3dpdGNoKHQubGFiZWwpe2Nhc2UgMDpyZXR1cm4gWUMocj1oKSxYQyhyKSwhMCE9PWx8fCEwPT09ci5Pbz9bMywzXTooZT1yLnNoYXJlZENsaWVudFN0YXRlLmdldEFsbEFjdGl2ZVF1ZXJ5VGFyZ2V0cygpLFs0LHpDKHIsZS50b0FycmF5KCkpXSk7Y2FzZSAxOnJldHVybiBpPXQuc2VudCgpLHIuT289ITAsWzQsSlMoci5yZW1vdGVTdG9yZSwhMCldO2Nhc2UgMjpmb3IodC5zZW50KCksbz0wLHM9aTtvPHMubGVuZ3RoO28rKylhPXNbb10sRlMoci5yZW1vdGVTdG9yZSxhKTtyZXR1cm5bMyw3XTtjYXNlIDM6cmV0dXJuITEhPT1sfHwhMT09PXIuT28/WzMsN106KHU9W10sYz1Qcm9taXNlLnJlc29sdmUoKSxyLlZvLmZvckVhY2goZnVuY3Rpb24odCxlKXtyLnNoYXJlZENsaWVudFN0YXRlLmlzTG9jYWxRdWVyeVRhcmdldChlKT91LnB1c2goZSk6Yz1jLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gakMocixlKSxkRShyLmxvY2FsU3RvcmUsZSwhMCl9KSxVUyhyLnJlbW90ZVN0b3JlLGUpfSksWzQsY10pO2Nhc2UgNDpyZXR1cm4gdC5zZW50KCksWzQsekMocix1KV07Y2FzZSA1OnJldHVybiB0LnNlbnQoKSwobj1yKS5Dby5mb3JFYWNoKGZ1bmN0aW9uKHQsZSl7VVMobi5yZW1vdGVTdG9yZSxlKX0pLG4uTm8udHMoKSxuLkNvPW5ldyBNYXAsbi5Ebz1uZXcgeHcoQ20uY29tcGFyYXRvciksci5Pbz0hMSxbNCxKUyhyLnJlbW90ZVN0b3JlLCExKV07Y2FzZSA2OnQuc2VudCgpLHQubGFiZWw9NztjYXNlIDc6cmV0dXJuWzJdfXZhciBufSl9KX1mdW5jdGlvbiB6QyhwLGQpe3JldHVybiAkaSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgZSxuLHIsaSxvLHMsYSx1LGMsaCxsLGY7cmV0dXJuIFppKHRoaXMsZnVuY3Rpb24odCl7c3dpdGNoKHQubGFiZWwpe2Nhc2UgMDplPXAsbj1bXSxyPVtdLGk9MCxvPWQsdC5sYWJlbD0xO2Nhc2UgMTpyZXR1cm4gaTxvLmxlbmd0aD8ocz1vW2ldLGE9dm9pZCAwLCh1PWUuVm8uZ2V0KHMpKSYmMCE9PXUubGVuZ3RoP1s0LHBFKGUubG9jYWxTdG9yZSx4Yih1WzBdKSldOlszLDddKTpbMywxM107Y2FzZSAyOmE9dC5zZW50KCksYz0wLGg9dSx0LmxhYmVsPTM7Y2FzZSAzOnJldHVybiBjPGgubGVuZ3RoPyhsPWhbY10sbD1lLlBvLmdldChsKSxbNCxmdW5jdGlvbihyLGkpe3JldHVybiAkaSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgZSxuO3JldHVybiBaaSh0aGlzLGZ1bmN0aW9uKHQpe3N3aXRjaCh0LmxhYmVsKXtjYXNlIDA6cmV0dXJuWzQsdkUoKGU9cikubG9jYWxTdG9yZSxpLnF1ZXJ5LCEwKV07Y2FzZSAxOnJldHVybiBuPXQuc2VudCgpLG49aS52aWV3LkFvKG4pLFsyLChlLmlzUHJpbWFyeUNsaWVudCYmVkMoZSxpLnRhcmdldElkLG4uVG8pLG4pXX19KX0pfShlLGwpXSk6WzMsNl07Y2FzZSA0OihsPXQuc2VudCgpKS5zbmFwc2hvdCYmci5wdXNoKGwuc25hcHNob3QpLHQubGFiZWw9NTtjYXNlIDU6cmV0dXJuIGMrKyxbMywzXTtjYXNlIDY6cmV0dXJuWzMsMTFdO2Nhc2UgNzpyZXR1cm5bNCxnRShlLmxvY2FsU3RvcmUscyldO2Nhc2UgODpyZXR1cm4gZj10LnNlbnQoKSxbNCxwRShlLmxvY2FsU3RvcmUsZildO2Nhc2UgOTpyZXR1cm4gYT10LnNlbnQoKSxbNCxQQyhlLFFDKGYpLHMsITEpXTtjYXNlIDEwOnQuc2VudCgpLHQubGFiZWw9MTE7Y2FzZSAxMTpuLnB1c2goYSksdC5sYWJlbD0xMjtjYXNlIDEyOnJldHVybiBpKyssWzMsMV07Y2FzZSAxMzpyZXR1cm5bMiwoZS52by5fcihyKSxuKV19fSl9KX1mdW5jdGlvbiBRQyh0KXtyZXR1cm4gQ2IodC5wYXRoLHQuY29sbGVjdGlvbkdyb3VwLHQub3JkZXJCeSx0LmZpbHRlcnMsdC5saW1pdCwiRiIsdC5zdGFydEF0LHQuZW5kQXQpfWZ1bmN0aW9uIFlDKHQpe3JldHVybiB0LnJlbW90ZVN0b3JlLnJlbW90ZVN5bmNlci5hcHBseVJlbW90ZUV2ZW50PURDLmJpbmQobnVsbCx0KSx0LnJlbW90ZVN0b3JlLnJlbW90ZVN5bmNlci5nZXRSZW1vdGVLZXlzRm9yVGFyZ2V0PWZ1bmN0aW9uKHQsZSl7dmFyIG49dDtpZigodD1uLkNvLmdldChlKSkmJnQuYm8pcmV0dXJuIFl3KCkuYWRkKHQua2V5KTt2YXIgcj1ZdygpO2lmKCEoZT1uLlZvLmdldChlKSkpcmV0dXJuIHI7Zm9yKHZhciBpPTAsbz1lO2k8by5sZW5ndGg7aSsrKXZhciBzPW9baV0scz1uLlBvLmdldChzKSxyPXIudW5pb25XaXRoKHMudmlldy53byk7cmV0dXJuIHJ9LmJpbmQobnVsbCx0KSx0LnJlbW90ZVN0b3JlLnJlbW90ZVN5bmNlci5yZWplY3RMaXN0ZW49ZnVuY3Rpb24obyxzLGEpe3JldHVybiAkaSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgZSxuLHIsaTtyZXR1cm4gWmkodGhpcyxmdW5jdGlvbih0KXtzd2l0Y2godC5sYWJlbCl7Y2FzZSAwOnJldHVybihlPW8pLnNoYXJlZENsaWVudFN0YXRlLnVwZGF0ZVF1ZXJ5U3RhdGUocywicmVqZWN0ZWQiLGEpLGk9ZS5Dby5nZXQocyksKG49aSYmaS5rZXkpPyhyPShyPW5ldyB4dyhDbS5jb21wYXJhdG9yKSkuaW5zZXJ0KG4sQm0ubmV3Tm9Eb2N1bWVudChuLFp5Lm1pbigpKSksaT1ZdygpLmFkZChuKSxpPW5ldyBKdyhaeS5taW4oKSxuZXcgTWFwLG5ldyBWdyhZeSkscixpKSxbNCxEQyhlLGkpXSk6WzMsMl07Y2FzZSAxOnJldHVybiB0LnNlbnQoKSxlLkRvPWUuRG8ucmVtb3ZlKG4pLGUuQ28uZGVsZXRlKHMpLEJDKGUpLFszLDRdO2Nhc2UgMjpyZXR1cm5bNCxkRShlLmxvY2FsU3RvcmUscywhMSkudGhlbihmdW5jdGlvbigpe3JldHVybiBqQyhlLHMsYSl9KS5jYXRjaChfVCldO2Nhc2UgMzp0LnNlbnQoKSx0LmxhYmVsPTQ7Y2FzZSA0OnJldHVyblsyXX19KX0pfS5iaW5kKG51bGwsdCksdC52by5fcj1mdW5jdGlvbih0LGUpe2Zvcih2YXIgbj10LHI9ITEsaT0wLG89ZTtpPG8ubGVuZ3RoO2krKyl7dmFyIHM9b1tpXSxhPXMucXVlcnksYT1uLnF1ZXJpZXMuZ2V0KGEpO2lmKGEpe2Zvcih2YXIgdT0wLGM9YS5saXN0ZW5lcnM7dTxjLmxlbmd0aDt1KyspY1t1XS5IcihzKSYmKHI9ITApO2EuV3I9c319ciYmcEMobil9LmJpbmQobnVsbCx0LmV2ZW50TWFuYWdlciksdC52by5Nbz1mdW5jdGlvbih0LGUsbil7dmFyIHI9dDtpZih0PXIucXVlcmllcy5nZXQoZSkpZm9yKHZhciBpPTAsbz10Lmxpc3RlbmVycztpPG8ubGVuZ3RoO2krKylvW2ldLm9uRXJyb3Iobik7ci5xdWVyaWVzLmRlbGV0ZShlKX0uYmluZChudWxsLHQuZXZlbnRNYW5hZ2VyKSx0fWZ1bmN0aW9uIFhDKHQpe3JldHVybiB0LnJlbW90ZVN0b3JlLnJlbW90ZVN5bmNlci5hcHBseVN1Y2Nlc3NmdWxXcml0ZT1mdW5jdGlvbihpLG8pe3JldHVybiAkaSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgZSxuLHI7cmV0dXJuIFppKHRoaXMsZnVuY3Rpb24odCl7c3dpdGNoKHQubGFiZWwpe2Nhc2UgMDplPWksbj1vLmJhdGNoLmJhdGNoSWQsdC5sYWJlbD0xO2Nhc2UgMTpyZXR1cm4gdC50cnlzLnB1c2goWzEsNCwsNl0pLFs0LGNFKGUubG9jYWxTdG9yZSxvKV07Y2FzZSAyOnJldHVybiByPXQuc2VudCgpLFVDKGUsbixudWxsKSxGQyhlLG4pLGUuc2hhcmVkQ2xpZW50U3RhdGUudXBkYXRlTXV0YXRpb25TdGF0ZShuLCJhY2tub3dsZWRnZWQiKSxbNCxLQyhlLHIpXTtjYXNlIDM6cmV0dXJuIHQuc2VudCgpLFszLDZdO2Nhc2UgNDpyZXR1cm5bNCxfVCh0LnNlbnQoKSldO2Nhc2UgNTpyZXR1cm4gdC5zZW50KCksWzMsNl07Y2FzZSA2OnJldHVyblsyXX19KX0pfS5iaW5kKG51bGwsdCksdC5yZW1vdGVTdG9yZS5yZW1vdGVTeW5jZXIucmVqZWN0RmFpbGVkV3JpdGU9TEMuYmluZChudWxsLHQpLHR9ZnVuY3Rpb24gSkModCxlLG4pe3ZhciByPXQ7IWZ1bmN0aW9uKGYscCxkKXtyZXR1cm4gJGkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIGEsdSxjLGgsbDtyZXR1cm4gWmkodGhpcyxmdW5jdGlvbih0KXtzd2l0Y2godC5sYWJlbCl7Y2FzZSAwOnJldHVybiB0LnRyeXMucHVzaChbMCwxNCwsMTVdKSxbNCxwLmdldE1ldGFkYXRhKCldO2Nhc2UgMTpyZXR1cm4gYT10LnNlbnQoKSxbNCwocj1mLmxvY2FsU3RvcmUsbz1yLHM9dl8oKGk9YSkuY3JlYXRlVGltZSksby5wZXJzaXN0ZW5jZS5ydW5UcmFuc2FjdGlvbigiaGFzTmV3ZXJCdW5kbGUiLCJyZWFkb25seSIsZnVuY3Rpb24odCl7cmV0dXJuIG8uUWUuZ2V0QnVuZGxlTWV0YWRhdGEodCxpLmlkKX0pLnRoZW4oZnVuY3Rpb24odCl7cmV0dXJuISF0JiYwPD10LmNyZWF0ZVRpbWUuY29tcGFyZVRvKHMpfSkpXTtjYXNlIDI6cmV0dXJuIHQuc2VudCgpP1s0LHAuY2xvc2UoKV06WzMsNF07Y2FzZSAzOnJldHVyblsyLCh0LnNlbnQoKSx2b2lkIGQuX2NvbXBsZXRlV2l0aCh7dGFza1N0YXRlOiJTdWNjZXNzIixkb2N1bWVudHNMb2FkZWQ6YS50b3RhbERvY3VtZW50cyxieXRlc0xvYWRlZDphLnRvdGFsQnl0ZXMsdG90YWxEb2N1bWVudHM6YS50b3RhbERvY3VtZW50cyx0b3RhbEJ5dGVzOmEudG90YWxCeXRlc30pKV07Y2FzZSA0OnJldHVybiBkLl91cGRhdGVQcm9ncmVzcyhJQyhhKSksdT1uZXcgeUMoYSxmLmxvY2FsU3RvcmUscC5SKSxbNCxwLkxvKCldO2Nhc2UgNTpjPXQuc2VudCgpLHQubGFiZWw9NjtjYXNlIDY6cmV0dXJuIGM/WzQsdS5vbyhjKV06WzMsMTBdO2Nhc2UgNzpyZXR1cm4oaD10LnNlbnQoKSkmJmQuX3VwZGF0ZVByb2dyZXNzKGgpLFs0LHAuTG8oKV07Y2FzZSA4OmM9dC5zZW50KCksdC5sYWJlbD05O2Nhc2UgOTpyZXR1cm5bMyw2XTtjYXNlIDEwOnJldHVybls0LHUuY29tcGxldGUoKV07Y2FzZSAxMTpyZXR1cm4gbD10LnNlbnQoKSxbNCxLQyhmLGwud24sdm9pZCAwKV07Y2FzZSAxMjpyZXR1cm4gdC5zZW50KCksWzQsKHI9Zi5sb2NhbFN0b3JlLGU9YSwobj1yKS5wZXJzaXN0ZW5jZS5ydW5UcmFuc2FjdGlvbigiU2F2ZSBidW5kbGUiLCJyZWFkd3JpdGUiLGZ1bmN0aW9uKHQpe3JldHVybiBuLlFlLnNhdmVCdW5kbGVNZXRhZGF0YSh0LGUpfSkpXTtjYXNlIDEzOnJldHVybiB0LnNlbnQoKSxkLl9jb21wbGV0ZVdpdGgobC5wcm9ncmVzcyksWzMsMTVdO2Nhc2UgMTQ6cmV0dXJuIEt5KCJTeW5jRW5naW5lIiwiTG9hZGluZyBidW5kbGUgZmFpbGVkIHdpdGggIisobD10LnNlbnQoKSkpLGQuX2ZhaWxXaXRoKGwpLFszLDE1XTtjYXNlIDE1OnJldHVyblsyXX12YXIgZSxuLHIsaSxvLHN9KX0pfShyLGUsbikudGhlbihmdW5jdGlvbigpe3Iuc2hhcmVkQ2xpZW50U3RhdGUubm90aWZ5QnVuZGxlTG9hZGVkKCl9KX12YXIgJEMsWkMsdE49KGFOLnByb3RvdHlwZS5pbml0aWFsaXplPWZ1bmN0aW9uKGUpe3JldHVybiAkaSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXtyZXR1cm4gWmkodGhpcyxmdW5jdGlvbih0KXtzd2l0Y2godC5sYWJlbCl7Y2FzZSAwOnJldHVybiB0aGlzLlI9YlMoZS5kYXRhYmFzZUluZm8uZGF0YWJhc2VJZCksdGhpcy5zaGFyZWRDbGllbnRTdGF0ZT10aGlzLkJvKGUpLHRoaXMucGVyc2lzdGVuY2U9dGhpcy5xbyhlKSxbNCx0aGlzLnBlcnNpc3RlbmNlLnN0YXJ0KCldO2Nhc2UgMTpyZXR1cm4gdC5zZW50KCksdGhpcy5nY1NjaGVkdWxlcj10aGlzLlVvKGUpLHRoaXMubG9jYWxTdG9yZT10aGlzLlFvKGUpLFsyXX19KX0pfSxhTi5wcm90b3R5cGUuVW89ZnVuY3Rpb24odCl7cmV0dXJuIG51bGx9LGFOLnByb3RvdHlwZS5Rbz1mdW5jdGlvbih0KXtyZXR1cm4gYUUodGhpcy5wZXJzaXN0ZW5jZSxuZXcgZUUsdC5pbml0aWFsVXNlcix0aGlzLlIpfSxhTi5wcm90b3R5cGUucW89ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBBRShSRS5icyx0aGlzLlIpfSxhTi5wcm90b3R5cGUuQm89ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBaRX0sYU4ucHJvdG90eXBlLnRlcm1pbmF0ZT1mdW5jdGlvbigpe3JldHVybiAkaSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXtyZXR1cm4gWmkodGhpcyxmdW5jdGlvbih0KXtzd2l0Y2godC5sYWJlbCl7Y2FzZSAwOnJldHVybiB0aGlzLmdjU2NoZWR1bGVyJiZ0aGlzLmdjU2NoZWR1bGVyLnN0b3AoKSxbNCx0aGlzLnNoYXJlZENsaWVudFN0YXRlLnNodXRkb3duKCldO2Nhc2UgMTpyZXR1cm4gdC5zZW50KCksWzQsdGhpcy5wZXJzaXN0ZW5jZS5zaHV0ZG93bigpXTtjYXNlIDI6cmV0dXJuIHQuc2VudCgpLFsyXX19KX0pfSxhTiksZU49KFhpKHNOLFpDPXROKSxzTi5wcm90b3R5cGUuaW5pdGlhbGl6ZT1mdW5jdGlvbihlKXtyZXR1cm4gJGkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7cmV0dXJuIFppKHRoaXMsZnVuY3Rpb24odCl7c3dpdGNoKHQubGFiZWwpe2Nhc2UgMDpyZXR1cm5bNCxaQy5wcm90b3R5cGUuaW5pdGlhbGl6ZS5jYWxsKHRoaXMsZSldO2Nhc2UgMTpyZXR1cm4gdC5zZW50KCksWzQsbUUodGhpcy5sb2NhbFN0b3JlKV07Y2FzZSAyOnJldHVybiB0LnNlbnQoKSxbNCx0aGlzLktvLmluaXRpYWxpemUodGhpcyxlKV07Y2FzZSAzOnJldHVybiB0LnNlbnQoKSxbNCxYQyh0aGlzLktvLnN5bmNFbmdpbmUpXTtjYXNlIDQ6cmV0dXJuIHQuc2VudCgpLFs0LFFTKHRoaXMuS28ucmVtb3RlU3RvcmUpXTtjYXNlIDU6cmV0dXJuIHQuc2VudCgpLFsyXX19KX0pfSxzTi5wcm90b3R5cGUuUW89ZnVuY3Rpb24odCl7cmV0dXJuIGFFKHRoaXMucGVyc2lzdGVuY2UsbmV3IGVFLHQuaW5pdGlhbFVzZXIsdGhpcy5SKX0sc04ucHJvdG90eXBlLlVvPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMucGVyc2lzdGVuY2UucmVmZXJlbmNlRGVsZWdhdGUuZ2FyYmFnZUNvbGxlY3RvcjtyZXR1cm4gbmV3IEVUKGUsdC5hc3luY1F1ZXVlKX0sc04ucHJvdG90eXBlLnFvPWZ1bmN0aW9uKHQpe3ZhciBlPUpUKHQuZGF0YWJhc2VJbmZvLmRhdGFiYXNlSWQsdC5kYXRhYmFzZUluZm8ucGVyc2lzdGVuY2VLZXkpLG49dm9pZCAwIT09dGhpcy5jYWNoZVNpemVCeXRlcz9pVC53aXRoQ2FjaGVTaXplKHRoaXMuY2FjaGVTaXplQnl0ZXMpOmlULkRFRkFVTFQ7cmV0dXJuIG5ldyB6VCh0aGlzLnN5bmNocm9uaXplVGFicyxlLHQuY2xpZW50SWQsbix0LmFzeW5jUXVldWUseVMoKSxtUygpLHRoaXMuUix0aGlzLnNoYXJlZENsaWVudFN0YXRlLCEhdGhpcy5mb3JjZU93bmVyc2hpcCl9LHNOLnByb3RvdHlwZS5Cbz1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IFpFfSxzTiksbk49KFhpKG9OLCRDPWVOKSxvTi5wcm90b3R5cGUuaW5pdGlhbGl6ZT1mdW5jdGlvbihyKXtyZXR1cm4gJGkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIGUsbj10aGlzO3JldHVybiBaaSh0aGlzLGZ1bmN0aW9uKHQpe3N3aXRjaCh0LmxhYmVsKXtjYXNlIDA6cmV0dXJuWzQsJEMucHJvdG90eXBlLmluaXRpYWxpemUuY2FsbCh0aGlzLHIpXTtjYXNlIDE6cmV0dXJuIHQuc2VudCgpLGU9dGhpcy5Lby5zeW5jRW5naW5lLHRoaXMuc2hhcmVkQ2xpZW50U3RhdGUgaW5zdGFuY2VvZiAkRT8odGhpcy5zaGFyZWRDbGllbnRTdGF0ZS5zeW5jRW5naW5lPXt1aTpIQy5iaW5kKG51bGwsZSksYWk6ZnVuY3Rpb24oaSxvLHMsYSl7cmV0dXJuICRpKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBlLG4scjtyZXR1cm4gWmkodGhpcyxmdW5jdGlvbih0KXtzd2l0Y2godC5sYWJlbCl7Y2FzZSAwOnJldHVybihlPWkpLk9vPyhWeSgiU3luY0VuZ2luZSIsIklnbm9yaW5nIHVuZXhwZWN0ZWQgcXVlcnkgc3RhdGUgbm90aWZpY2F0aW9uLiIpLFszLDhdKTpbMywxXTtjYXNlIDE6aWYoIWUuVm8uaGFzKG8pKXJldHVyblszLDhdO3N3aXRjaChzKXtjYXNlImN1cnJlbnQiOmNhc2Uibm90LWN1cnJlbnQiOnJldHVyblszLDJdO2Nhc2UicmVqZWN0ZWQiOnJldHVyblszLDVdfXJldHVyblszLDddO2Nhc2UgMjpyZXR1cm5bNCx5RShlLmxvY2FsU3RvcmUpXTtjYXNlIDM6cmV0dXJuIG49dC5zZW50KCkscj1Kdy5jcmVhdGVTeW50aGVzaXplZFJlbW90ZUV2ZW50Rm9yQ3VycmVudENoYW5nZShvLCJjdXJyZW50Ij09PXMpLFs0LEtDKGUsbixyKV07Y2FzZSA0OnJldHVybiB0LnNlbnQoKSxbMyw4XTtjYXNlIDU6cmV0dXJuWzQsZEUoZS5sb2NhbFN0b3JlLG8sITApXTtjYXNlIDY6cmV0dXJuIHQuc2VudCgpLGpDKGUsbyxhKSxbMyw4XTtjYXNlIDc6SHkoKSx0LmxhYmVsPTg7Y2FzZSA4OnJldHVyblsyXX19KX0pfS5iaW5kKG51bGwsZSksaGk6ZnVuY3Rpb24oYyxoLGwpe3JldHVybiAkaSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgbixlLHIsaSxvLHMsYSx1O3JldHVybiBaaSh0aGlzLGZ1bmN0aW9uKHQpe3N3aXRjaCh0LmxhYmVsKXtjYXNlIDA6aWYoIShuPVlDKGMpKS5PbylyZXR1cm5bMywxMF07ZT0wLHI9aCx0LmxhYmVsPTE7Y2FzZSAxOnJldHVybiBlPHIubGVuZ3RoPyhyPXJbZV0sbi5Wby5oYXMocik/KFZ5KCJTeW5jRW5naW5lIiwiQWRkaW5nIGFuIGFscmVhZHkgYWN0aXZlIHRhcmdldCAiK3IpLFszLDVdKTpbNCxnRShuLmxvY2FsU3RvcmUscildKTpbMyw2XTtjYXNlIDI6cmV0dXJuIGk9dC5zZW50KCksWzQscEUobi5sb2NhbFN0b3JlLGkpXTtjYXNlIDM6cmV0dXJuIG89dC5zZW50KCksWzQsUEMobixRQyhpKSxvLnRhcmdldElkLCExKV07Y2FzZSA0OnQuc2VudCgpLEZTKG4ucmVtb3RlU3RvcmUsbyksdC5sYWJlbD01O2Nhc2UgNTpyZXR1cm4gZSsrLFszLDFdO2Nhc2UgNjpzPWZ1bmN0aW9uKGUpe3JldHVybiBaaSh0aGlzLGZ1bmN0aW9uKHQpe3N3aXRjaCh0LmxhYmVsKXtjYXNlIDA6cmV0dXJuIG4uVm8uaGFzKGUpP1s0LGRFKG4ubG9jYWxTdG9yZSxlLCExKS50aGVuKGZ1bmN0aW9uKCl7VVMobi5yZW1vdGVTdG9yZSxlKSxqQyhuLGUpfSkuY2F0Y2goX1QpXTpbMywyXTtjYXNlIDE6dC5zZW50KCksdC5sYWJlbD0yO2Nhc2UgMjpyZXR1cm5bMl19fSl9LGE9MCx1PWwsdC5sYWJlbD03O2Nhc2UgNzpyZXR1cm4gYTx1Lmxlbmd0aD8odT11W2FdLFs1LHModSldKTpbMywxMF07Y2FzZSA4OnQuc2VudCgpLHQubGFiZWw9OTtjYXNlIDk6cmV0dXJuIGErKyxbMyw3XTtjYXNlIDEwOnJldHVyblsyXX19KX0pfS5iaW5kKG51bGwsZSksZm46ZnVuY3Rpb24odCl7cmV0dXJuIHQubG9jYWxTdG9yZS5wZXJzaXN0ZW5jZS5mbigpfS5iaW5kKG51bGwsZSksY2k6ZnVuY3Rpb24obil7cmV0dXJuICRpKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBlO3JldHVybiBaaSh0aGlzLGZ1bmN0aW9uKHQpe3JldHVyblsyLHlFKChlPW4pLmxvY2FsU3RvcmUpLnRoZW4oZnVuY3Rpb24odCl7cmV0dXJuIEtDKGUsdCl9KV19KX0pfS5iaW5kKG51bGwsZSl9LFs0LHRoaXMuc2hhcmVkQ2xpZW50U3RhdGUuc3RhcnQoKV0pOlszLDNdO2Nhc2UgMjp0LnNlbnQoKSx0LmxhYmVsPTM7Y2FzZSAzOnJldHVybls0LHRoaXMucGVyc2lzdGVuY2UuSGUoZnVuY3Rpb24oZSl7cmV0dXJuICRpKG4sdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3JldHVybiBaaSh0aGlzLGZ1bmN0aW9uKHQpe3N3aXRjaCh0LmxhYmVsKXtjYXNlIDA6cmV0dXJuWzQsR0ModGhpcy5Lby5zeW5jRW5naW5lLGUpXTtjYXNlIDE6cmV0dXJuIHQuc2VudCgpLHRoaXMuZ2NTY2hlZHVsZXImJihlJiYhdGhpcy5nY1NjaGVkdWxlci5zdGFydGVkP3RoaXMuZ2NTY2hlZHVsZXIuc3RhcnQodGhpcy5sb2NhbFN0b3JlKTplfHx0aGlzLmdjU2NoZWR1bGVyLnN0b3AoKSksWzJdfX0pfSl9KV07Y2FzZSA0OnJldHVybiB0LnNlbnQoKSxbMl19fSl9KX0sb04ucHJvdG90eXBlLkJvPWZ1bmN0aW9uKHQpe3ZhciBlPXlTKCk7aWYoISRFLnl0KGUpKXRocm93IG5ldyBGeShNeS5VTklNUExFTUVOVEVELCJJbmRleGVkREIgcGVyc2lzdGVuY2UgaXMgb25seSBhdmFpbGFibGUgb24gcGxhdGZvcm1zIHRoYXQgc3VwcG9ydCBMb2NhbFN0b3JhZ2UuIik7dmFyIG49SlQodC5kYXRhYmFzZUluZm8uZGF0YWJhc2VJZCx0LmRhdGFiYXNlSW5mby5wZXJzaXN0ZW5jZUtleSk7cmV0dXJuIG5ldyAkRShlLHQuYXN5bmNRdWV1ZSxuLHQuY2xpZW50SWQsdC5pbml0aWFsVXNlcil9LG9OKSxyTj0oaU4ucHJvdG90eXBlLmluaXRpYWxpemU9ZnVuY3Rpb24obixyKXtyZXR1cm4gJGkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIGU9dGhpcztyZXR1cm4gWmkodGhpcyxmdW5jdGlvbih0KXtzd2l0Y2godC5sYWJlbCl7Y2FzZSAwOnJldHVybiB0aGlzLmxvY2FsU3RvcmU/WzMsMl06KHRoaXMubG9jYWxTdG9yZT1uLmxvY2FsU3RvcmUsdGhpcy5zaGFyZWRDbGllbnRTdGF0ZT1uLnNoYXJlZENsaWVudFN0YXRlLHRoaXMuZGF0YXN0b3JlPXRoaXMuY3JlYXRlRGF0YXN0b3JlKHIpLHRoaXMucmVtb3RlU3RvcmU9dGhpcy5jcmVhdGVSZW1vdGVTdG9yZShyKSx0aGlzLmV2ZW50TWFuYWdlcj10aGlzLmNyZWF0ZUV2ZW50TWFuYWdlcihyKSx0aGlzLnN5bmNFbmdpbmU9dGhpcy5jcmVhdGVTeW5jRW5naW5lKHIsIW4uc3luY2hyb25pemVUYWJzKSx0aGlzLnNoYXJlZENsaWVudFN0YXRlLm9ubGluZVN0YXRlSGFuZGxlcj1mdW5jdGlvbih0KXtyZXR1cm4geEMoZS5zeW5jRW5naW5lLHQsMSl9LHRoaXMucmVtb3RlU3RvcmUucmVtb3RlU3luY2VyLmhhbmRsZUNyZWRlbnRpYWxDaGFuZ2U9V0MuYmluZChudWxsLHRoaXMuc3luY0VuZ2luZSksWzQsSlModGhpcy5yZW1vdGVTdG9yZSx0aGlzLnN5bmNFbmdpbmUuaXNQcmltYXJ5Q2xpZW50KV0pO2Nhc2UgMTp0LnNlbnQoKSx0LmxhYmVsPTI7Y2FzZSAyOnJldHVyblsyXX19KX0pfSxpTi5wcm90b3R5cGUuY3JlYXRlRXZlbnRNYW5hZ2VyPWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgckN9LGlOLnByb3RvdHlwZS5jcmVhdGVEYXRhc3RvcmU9ZnVuY3Rpb24odCl7dmFyIGU9YlModC5kYXRhYmFzZUluZm8uZGF0YWJhc2VJZCksbj0obj10LmRhdGFiYXNlSW5mbyxuZXcgaVMobikpO3JldHVybiB0PXQuY3JlZGVudGlhbHMsbmV3IE5TKHQsbixlKX0saU4ucHJvdG90eXBlLmNyZWF0ZVJlbW90ZVN0b3JlPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMsbj10aGlzLmxvY2FsU3RvcmUscj10aGlzLmRhdGFzdG9yZSxpPXQuYXN5bmNRdWV1ZSxvPWZ1bmN0aW9uKHQpe3JldHVybiB4QyhlLnN5bmNFbmdpbmUsdCwwKX0sdD1uZXcoZVMueXQoKT9lUzp0Uyk7cmV0dXJuIG5ldyB3UyhuLHIsaSxvLHQpfSxpTi5wcm90b3R5cGUuY3JlYXRlU3luY0VuZ2luZT1mdW5jdGlvbih0LGUpe3JldHVybiBmdW5jdGlvbih0LGUsbixyLGksbyxzKXtvPW5ldyBBQyh0LGUsbixyLGksbyk7cmV0dXJuIHMmJihvLk9vPSEwKSxvfSh0aGlzLmxvY2FsU3RvcmUsdGhpcy5yZW1vdGVTdG9yZSx0aGlzLmV2ZW50TWFuYWdlcix0aGlzLnNoYXJlZENsaWVudFN0YXRlLHQuaW5pdGlhbFVzZXIsdC5tYXhDb25jdXJyZW50TGltYm9SZXNvbHV0aW9ucyxlKX0saU4ucHJvdG90eXBlLnRlcm1pbmF0ZT1mdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbihuKXtyZXR1cm4gJGkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIGU7cmV0dXJuIFppKHRoaXMsZnVuY3Rpb24odCl7c3dpdGNoKHQubGFiZWwpe2Nhc2UgMDpyZXR1cm4gZT1uLFZ5KCJSZW1vdGVTdG9yZSIsIlJlbW90ZVN0b3JlIHNodXR0aW5nIGRvd24uIiksZS4kci5hZGQoNSksWzQsTVMoZSldO2Nhc2UgMTpyZXR1cm4gdC5zZW50KCksZS5Mci5zaHV0ZG93bigpLGUuQnIuc2V0KCJVbmtub3duIiksWzJdfX0pfSl9KHRoaXMucmVtb3RlU3RvcmUpfSxpTik7ZnVuY3Rpb24gaU4oKXt9ZnVuY3Rpb24gb04odCxlKXt2YXIgbj10aGlzO3JldHVybihuPSRDLmNhbGwodGhpcyx0LGUsITEpfHx0aGlzKS5Lbz10LG4uY2FjaGVTaXplQnl0ZXM9ZSxuLnN5bmNocm9uaXplVGFicz0hMCxufWZ1bmN0aW9uIHNOKHQsZSxuKXt2YXIgcj10aGlzO3JldHVybihyPVpDLmNhbGwodGhpcyl8fHRoaXMpLktvPXQsci5jYWNoZVNpemVCeXRlcz1lLHIuZm9yY2VPd25lcnNoaXA9bixyLnN5bmNocm9uaXplVGFicz0hMSxyfWZ1bmN0aW9uIGFOKCl7dGhpcy5zeW5jaHJvbml6ZVRhYnM9ITF9ZnVuY3Rpb24gdU4obixyKXt2b2lkIDA9PT1yJiYocj0xMDI0MCk7dmFyIGk9MDtyZXR1cm57cmVhZDpmdW5jdGlvbigpe3JldHVybiAkaSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgZTtyZXR1cm4gWmkodGhpcyxmdW5jdGlvbih0KXtyZXR1cm4gaTxuLmJ5dGVMZW5ndGg/KGU9e3ZhbHVlOm4uc2xpY2UoaSxpK3IpLGRvbmU6ITF9LFsyLChpKz1yLGUpXSk6WzIse2RvbmU6ITB9XX0pfSl9LGNhbmNlbDpmdW5jdGlvbigpe3JldHVybiAkaSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXtyZXR1cm4gWmkodGhpcyxmdW5jdGlvbih0KXtyZXR1cm5bMl19KX0pfSxyZWxlYXNlTG9jazpmdW5jdGlvbigpe30sY2xvc2VkOlByb21pc2UucmVqZWN0KCJ1bmltcGxlbWVudGVkIil9fXZhciBjTj0obU4ucHJvdG90eXBlLm5leHQ9ZnVuY3Rpb24odCl7dGhpcy5vYnNlcnZlci5uZXh0JiZ0aGlzLmpvKHRoaXMub2JzZXJ2ZXIubmV4dCx0KX0sbU4ucHJvdG90eXBlLmVycm9yPWZ1bmN0aW9uKHQpe3RoaXMub2JzZXJ2ZXIuZXJyb3I/dGhpcy5qbyh0aGlzLm9ic2VydmVyLmVycm9yLHQpOmNvbnNvbGUuZXJyb3IoIlVuY2F1Z2h0IEVycm9yIGluIHNuYXBzaG90IGxpc3RlbmVyOiIsdCl9LG1OLnByb3RvdHlwZS5Xbz1mdW5jdGlvbigpe3RoaXMubXV0ZWQ9ITB9LG1OLnByb3RvdHlwZS5qbz1mdW5jdGlvbih0LGUpe3ZhciBuPXRoaXM7dGhpcy5tdXRlZHx8c2V0VGltZW91dChmdW5jdGlvbigpe24ubXV0ZWR8fHQoZSl9LDApfSxtTiksaE49KHlOLnByb3RvdHlwZS5jbG9zZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLkdvLmNhbmNlbCgpfSx5Ti5wcm90b3R5cGUuZ2V0TWV0YWRhdGE9ZnVuY3Rpb24oKXtyZXR1cm4gJGkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7cmV0dXJuIFppKHRoaXMsZnVuY3Rpb24odCl7cmV0dXJuWzIsdGhpcy5tZXRhZGF0YS5wcm9taXNlXX0pfSl9LHlOLnByb3RvdHlwZS5Mbz1mdW5jdGlvbigpe3JldHVybiAkaSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXtyZXR1cm4gWmkodGhpcyxmdW5jdGlvbih0KXtzd2l0Y2godC5sYWJlbCl7Y2FzZSAwOnJldHVybls0LHRoaXMuZ2V0TWV0YWRhdGEoKV07Y2FzZSAxOnJldHVyblsyLCh0LnNlbnQoKSx0aGlzLkhvKCkpXX19KX0pfSx5Ti5wcm90b3R5cGUuSG89ZnVuY3Rpb24oKXtyZXR1cm4gJGkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIGUsbixyO3JldHVybiBaaSh0aGlzLGZ1bmN0aW9uKHQpe3N3aXRjaCh0LmxhYmVsKXtjYXNlIDA6cmV0dXJuWzQsdGhpcy5KbygpXTtjYXNlIDE6cmV0dXJuIG51bGw9PT0oZT10LnNlbnQoKSk/WzIsbnVsbF06KHI9dGhpcy56by5kZWNvZGUoZSksbj1OdW1iZXIociksaXNOYU4obikmJnRoaXMuWW8oImxlbmd0aCBzdHJpbmcgKCIrcisiKSBpcyBub3QgdmFsaWQgbnVtYmVyIiksWzQsdGhpcy5YbyhuKV0pO2Nhc2UgMjpyZXR1cm4gcj10LnNlbnQoKSxbMixuZXcgdkMoSlNPTi5wYXJzZShyKSxlLmxlbmd0aCtuKV19fSl9KX0seU4ucHJvdG90eXBlLlpvPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuYnVmZmVyLmZpbmRJbmRleChmdW5jdGlvbih0KXtyZXR1cm4gdD09PSJ7Ii5jaGFyQ29kZUF0KDApfSl9LHlOLnByb3RvdHlwZS5Kbz1mdW5jdGlvbigpe3JldHVybiAkaSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgZSxuO3JldHVybiBaaSh0aGlzLGZ1bmN0aW9uKHQpe3N3aXRjaCh0LmxhYmVsKXtjYXNlIDA6cmV0dXJuIHRoaXMuWm8oKTwwP1s0LHRoaXMudGMoKV06WzMsM107Y2FzZSAxOmlmKHQuc2VudCgpKXJldHVyblszLDNdO3QubGFiZWw9MjtjYXNlIDI6cmV0dXJuWzMsMF07Y2FzZSAzOnJldHVybiAwPT09dGhpcy5idWZmZXIubGVuZ3RoP1syLG51bGxdOigoZT10aGlzLlpvKCkpPDAmJnRoaXMuWW8oIlJlYWNoZWQgdGhlIGVuZCBvZiBidW5kbGUgd2hlbiBhIGxlbmd0aCBzdHJpbmcgaXMgZXhwZWN0ZWQuIiksbj10aGlzLmJ1ZmZlci5zbGljZSgwLGUpLFsyLCh0aGlzLmJ1ZmZlcj10aGlzLmJ1ZmZlci5zbGljZShlKSxuKV0pfX0pfSl9LHlOLnByb3RvdHlwZS5Ybz1mdW5jdGlvbihuKXtyZXR1cm4gJGkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIGU7cmV0dXJuIFppKHRoaXMsZnVuY3Rpb24odCl7c3dpdGNoKHQubGFiZWwpe2Nhc2UgMDpyZXR1cm4gdGhpcy5idWZmZXIubGVuZ3RoPG4/WzQsdGhpcy50YygpXTpbMywzXTtjYXNlIDE6dC5zZW50KCkmJnRoaXMuWW8oIlJlYWNoZWQgdGhlIGVuZCBvZiBidW5kbGUgd2hlbiBtb3JlIGlzIGV4cGVjdGVkLiIpLHQubGFiZWw9MjtjYXNlIDI6cmV0dXJuWzMsMF07Y2FzZSAzOnJldHVybiBlPXRoaXMuem8uZGVjb2RlKHRoaXMuYnVmZmVyLnNsaWNlKDAsbikpLFsyLCh0aGlzLmJ1ZmZlcj10aGlzLmJ1ZmZlci5zbGljZShuKSxlKV19fSl9KX0seU4ucHJvdG90eXBlLllvPWZ1bmN0aW9uKHQpe3Rocm93IHRoaXMuR28uY2FuY2VsKCksbmV3IEVycm9yKCJJbnZhbGlkIGJ1bmRsZSBmb3JtYXQ6ICIrdCl9LHlOLnByb3RvdHlwZS50Yz1mdW5jdGlvbigpe3JldHVybiAkaSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgZSxuO3JldHVybiBaaSh0aGlzLGZ1bmN0aW9uKHQpe3N3aXRjaCh0LmxhYmVsKXtjYXNlIDA6cmV0dXJuWzQsdGhpcy5Hby5yZWFkKCldO2Nhc2UgMTpyZXR1cm4oZT10LnNlbnQoKSkuZG9uZXx8KChuPW5ldyBVaW50OEFycmF5KHRoaXMuYnVmZmVyLmxlbmd0aCtlLnZhbHVlLmxlbmd0aCkpLnNldCh0aGlzLmJ1ZmZlciksbi5zZXQoZS52YWx1ZSx0aGlzLmJ1ZmZlci5sZW5ndGgpLHRoaXMuYnVmZmVyPW4pLFsyLGUuZG9uZV19fSl9KX0seU4pLGxOPShnTi5wcm90b3R5cGUubG9va3VwPWZ1bmN0aW9uKHIpe3JldHVybiAkaSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgZSxuPXRoaXM7cmV0dXJuIFppKHRoaXMsZnVuY3Rpb24odCl7c3dpdGNoKHQubGFiZWwpe2Nhc2UgMDppZih0aGlzLmVuc3VyZUNvbW1pdE5vdENhbGxlZCgpLDA8dGhpcy5tdXRhdGlvbnMubGVuZ3RoKXRocm93IG5ldyBGeShNeS5JTlZBTElEX0FSR1VNRU5ULCJGaXJlc3RvcmUgdHJhbnNhY3Rpb25zIHJlcXVpcmUgYWxsIHJlYWRzIHRvIGJlIGV4ZWN1dGVkIGJlZm9yZSBhbGwgd3JpdGVzLiIpO3JldHVybls0LGZ1bmN0aW9uKHMsYSl7cmV0dXJuICRpKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBuLGUscixpLG87cmV0dXJuIFppKHRoaXMsZnVuY3Rpb24odCl7c3dpdGNoKHQubGFiZWwpe2Nhc2UgMDpyZXR1cm4gZT1JXygobj1zKS5SKSsiL2RvY3VtZW50cyIscj17ZG9jdW1lbnRzOmEubWFwKGZ1bmN0aW9uKHQpe3JldHVybiBtXyhuLlIsdCl9KX0sWzQsbi5PaSgiQmF0Y2hHZXREb2N1bWVudHMiLGUscildO2Nhc2UgMTpyZXR1cm4gcj10LnNlbnQoKSxpPW5ldyBNYXAsci5mb3JFYWNoKGZ1bmN0aW9uKHQpe3ZhciBlLHQ9KGU9bi5SLCJmb3VuZCJpbih0PXQpP2Z1bmN0aW9uKHQsZSl7R3koISFlLmZvdW5kKSxlLmZvdW5kLm5hbWUsZS5mb3VuZC51cGRhdGVUaW1lO3ZhciBuPWJfKHQsZS5mb3VuZC5uYW1lKSx0PXZfKGUuZm91bmQudXBkYXRlVGltZSksZT1uZXcgcW0oe21hcFZhbHVlOntmaWVsZHM6ZS5mb3VuZC5maWVsZHN9fSk7cmV0dXJuIEJtLm5ld0ZvdW5kRG9jdW1lbnQobix0LGUpfShlLHQpOiJtaXNzaW5nImluIHQ/ZnVuY3Rpb24odCxlKXtHeSghIWUubWlzc2luZyksR3koISFlLnJlYWRUaW1lKTt0PWJfKHQsZS5taXNzaW5nKSxlPXZfKGUucmVhZFRpbWUpO3JldHVybiBCbS5uZXdOb0RvY3VtZW50KHQsZSl9KGUsdCk6SHkoKSk7aS5zZXQodC5rZXkudG9TdHJpbmcoKSx0KX0pLG89W10sWzIsKGEuZm9yRWFjaChmdW5jdGlvbih0KXt0PWkuZ2V0KHQudG9TdHJpbmcoKSk7R3koISF0KSxvLnB1c2godCl9KSxvKV19fSl9KX0odGhpcy5kYXRhc3RvcmUscildO2Nhc2UgMTpyZXR1cm5bMiwoKGU9dC5zZW50KCkpLmZvckVhY2goZnVuY3Rpb24odCl7cmV0dXJuIG4ucmVjb3JkVmVyc2lvbih0KX0pLGUpXX19KX0pfSxnTi5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKHQsZSl7dGhpcy53cml0ZShlLnRvTXV0YXRpb24odCx0aGlzLnByZWNvbmRpdGlvbih0KSkpLHRoaXMud3JpdHRlbkRvY3MuYWRkKHQudG9TdHJpbmcoKSl9LGdOLnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24odCxlKXt0cnl7dGhpcy53cml0ZShlLnRvTXV0YXRpb24odCx0aGlzLnByZWNvbmRpdGlvbkZvclVwZGF0ZSh0KSkpfWNhdGNoKHQpe3RoaXMubGFzdFdyaXRlRXJyb3I9dH10aGlzLndyaXR0ZW5Eb2NzLmFkZCh0LnRvU3RyaW5nKCkpfSxnTi5wcm90b3R5cGUuZGVsZXRlPWZ1bmN0aW9uKHQpe3RoaXMud3JpdGUobmV3IEF3KHQsdGhpcy5wcmVjb25kaXRpb24odCkpKSx0aGlzLndyaXR0ZW5Eb2NzLmFkZCh0LnRvU3RyaW5nKCkpfSxnTi5wcm90b3R5cGUuY29tbWl0PWZ1bmN0aW9uKCl7cmV0dXJuICRpKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBlLG49dGhpcztyZXR1cm4gWmkodGhpcyxmdW5jdGlvbih0KXtzd2l0Y2godC5sYWJlbCl7Y2FzZSAwOmlmKHRoaXMuZW5zdXJlQ29tbWl0Tm90Q2FsbGVkKCksdGhpcy5sYXN0V3JpdGVFcnJvcil0aHJvdyB0aGlzLmxhc3RXcml0ZUVycm9yO3JldHVybiBlPXRoaXMucmVhZFZlcnNpb25zLHRoaXMubXV0YXRpb25zLmZvckVhY2goZnVuY3Rpb24odCl7ZS5kZWxldGUodC5rZXkudG9TdHJpbmcoKSl9KSxlLmZvckVhY2goZnVuY3Rpb24odCxlKXtlPUNtLmZyb21QYXRoKGUpO24ubXV0YXRpb25zLnB1c2gobmV3IGt3KGUsbi5wcmVjb25kaXRpb24oZSkpKX0pLFs0LGZ1bmN0aW9uKGksbyl7cmV0dXJuICRpKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBlLG4scjtyZXR1cm4gWmkodGhpcyxmdW5jdGlvbih0KXtzd2l0Y2godC5sYWJlbCl7Y2FzZSAwOnJldHVybiBuPUlfKChlPWkpLlIpKyIvZG9jdW1lbnRzIixyPXt3cml0ZXM6by5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIENfKGUuUix0KX0pfSxbNCxlLk5pKCJDb21taXQiLG4scildO2Nhc2UgMTpyZXR1cm4gdC5zZW50KCksWzJdfX0pfSl9KHRoaXMuZGF0YXN0b3JlLHRoaXMubXV0YXRpb25zKV07Y2FzZSAxOnJldHVybiB0LnNlbnQoKSx0aGlzLmNvbW1pdHRlZD0hMCxbMl19fSl9KX0sZ04ucHJvdG90eXBlLnJlY29yZFZlcnNpb249ZnVuY3Rpb24odCl7dmFyIGU7aWYodC5pc0ZvdW5kRG9jdW1lbnQoKSllPXQudmVyc2lvbjtlbHNle2lmKCF0LmlzTm9Eb2N1bWVudCgpKXRocm93IEh5KCk7ZT1aeS5taW4oKX12YXIgbj10aGlzLnJlYWRWZXJzaW9ucy5nZXQodC5rZXkudG9TdHJpbmcoKSk7aWYobil7aWYoIWUuaXNFcXVhbChuKSl0aHJvdyBuZXcgRnkoTXkuQUJPUlRFRCwiRG9jdW1lbnQgdmVyc2lvbiBjaGFuZ2VkIGJldHdlZW4gdHdvIHJlYWRzLiIpfWVsc2UgdGhpcy5yZWFkVmVyc2lvbnMuc2V0KHQua2V5LnRvU3RyaW5nKCksZSl9LGdOLnByb3RvdHlwZS5wcmVjb25kaXRpb249ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5yZWFkVmVyc2lvbnMuZ2V0KHQudG9TdHJpbmcoKSk7cmV0dXJuIXRoaXMud3JpdHRlbkRvY3MuaGFzKHQudG9TdHJpbmcoKSkmJmU/Y3cudXBkYXRlVGltZShlKTpjdy5ub25lKCl9LGdOLnByb3RvdHlwZS5wcmVjb25kaXRpb25Gb3JVcGRhdGU9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5yZWFkVmVyc2lvbnMuZ2V0KHQudG9TdHJpbmcoKSk7aWYodGhpcy53cml0dGVuRG9jcy5oYXModC50b1N0cmluZygpKXx8IWUpcmV0dXJuIGN3LmV4aXN0cyghMCk7aWYoZS5pc0VxdWFsKFp5Lm1pbigpKSl0aHJvdyBuZXcgRnkoTXkuSU5WQUxJRF9BUkdVTUVOVCwiQ2FuJ3QgdXBkYXRlIGEgZG9jdW1lbnQgdGhhdCBkb2Vzbid0IGV4aXN0LiIpO3JldHVybiBjdy51cGRhdGVUaW1lKGUpfSxnTi5wcm90b3R5cGUud3JpdGU9ZnVuY3Rpb24odCl7dGhpcy5lbnN1cmVDb21taXROb3RDYWxsZWQoKSx0aGlzLm11dGF0aW9ucy5wdXNoKHQpfSxnTi5wcm90b3R5cGUuZW5zdXJlQ29tbWl0Tm90Q2FsbGVkPWZ1bmN0aW9uKCl7fSxnTiksZk49KHZOLnByb3RvdHlwZS5ydW49ZnVuY3Rpb24oKXt0aGlzLm5jKCl9LHZOLnByb3RvdHlwZS5uYz1mdW5jdGlvbigpe3ZhciB0PXRoaXM7dGhpcy5aaS5qaShmdW5jdGlvbigpe3JldHVybiAkaSh0LHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgZSxuLHI9dGhpcztyZXR1cm4gWmkodGhpcyxmdW5jdGlvbih0KXtyZXR1cm4gZT1uZXcgbE4odGhpcy5kYXRhc3RvcmUpLChuPXRoaXMuc2MoZSkpJiZuLnRoZW4oZnVuY3Rpb24odCl7ci5hc3luY1F1ZXVlLmVucXVldWVBbmRGb3JnZXQoZnVuY3Rpb24oKXtyZXR1cm4gZS5jb21taXQoKS50aGVuKGZ1bmN0aW9uKCl7ci5kZWZlcnJlZC5yZXNvbHZlKHQpfSkuY2F0Y2goZnVuY3Rpb24odCl7ci5pYyh0KX0pfSl9KS5jYXRjaChmdW5jdGlvbih0KXtyLmljKHQpfSksWzJdfSl9KX0pfSx2Ti5wcm90b3R5cGUuc2M9ZnVuY3Rpb24odCl7dHJ5e3ZhciBlPXRoaXMudXBkYXRlRnVuY3Rpb24odCk7cmV0dXJuIVRtKGUpJiZlLmNhdGNoJiZlLnRoZW4/ZToodGhpcy5kZWZlcnJlZC5yZWplY3QoRXJyb3IoIlRyYW5zYWN0aW9uIGNhbGxiYWNrIG11c3QgcmV0dXJuIGEgUHJvbWlzZSIpKSxudWxsKX1jYXRjaCh0KXtyZXR1cm4gdGhpcy5kZWZlcnJlZC5yZWplY3QodCksbnVsbH19LHZOLnByb3RvdHlwZS5pYz1mdW5jdGlvbih0KXt2YXIgZT10aGlzOzA8dGhpcy5lYyYmdGhpcy5yYyh0KT8oLS10aGlzLmVjLHRoaXMuYXN5bmNRdWV1ZS5lbnF1ZXVlQW5kRm9yZ2V0KGZ1bmN0aW9uKCl7cmV0dXJuIGUubmMoKSxQcm9taXNlLnJlc29sdmUoKX0pKTp0aGlzLmRlZmVycmVkLnJlamVjdCh0KX0sdk4ucHJvdG90eXBlLnJjPWZ1bmN0aW9uKHQpe2lmKCJGaXJlYmFzZUVycm9yIiE9PXQubmFtZSlyZXR1cm4hMTt0PXQuY29kZTtyZXR1cm4iYWJvcnRlZCI9PT10fHwiZmFpbGVkLXByZWNvbmRpdGlvbiI9PT10fHwhT3codCl9LHZOKSxwTj0oZE4ucHJvdG90eXBlLmdldENvbmZpZ3VyYXRpb249ZnVuY3Rpb24oKXtyZXR1cm4gJGkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7cmV0dXJuIFppKHRoaXMsZnVuY3Rpb24odCl7c3dpdGNoKHQubGFiZWwpe2Nhc2UgMDpyZXR1cm5bNCx0aGlzLnJlY2VpdmVkSW5pdGlhbFVzZXIucHJvbWlzZV07Y2FzZSAxOnJldHVyblsyLCh0LnNlbnQoKSx7YXN5bmNRdWV1ZTp0aGlzLmFzeW5jUXVldWUsZGF0YWJhc2VJbmZvOnRoaXMuZGF0YWJhc2VJbmZvLGNsaWVudElkOnRoaXMuY2xpZW50SWQsY3JlZGVudGlhbHM6dGhpcy5jcmVkZW50aWFscyxpbml0aWFsVXNlcjp0aGlzLnVzZXIsbWF4Q29uY3VycmVudExpbWJvUmVzb2x1dGlvbnM6MTAwfSldfX0pfSl9LGROLnByb3RvdHlwZS5zZXRDcmVkZW50aWFsQ2hhbmdlTGlzdGVuZXI9ZnVuY3Rpb24odCl7dmFyIGU9dGhpczt0aGlzLmNyZWRlbnRpYWxMaXN0ZW5lcj10LHRoaXMucmVjZWl2ZWRJbml0aWFsVXNlci5wcm9taXNlLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gZS5jcmVkZW50aWFsTGlzdGVuZXIoZS51c2VyKX0pfSxkTi5wcm90b3R5cGUudmVyaWZ5Tm90VGVybWluYXRlZD1mdW5jdGlvbigpe2lmKHRoaXMuYXN5bmNRdWV1ZS5pc1NodXR0aW5nRG93bil0aHJvdyBuZXcgRnkoTXkuRkFJTEVEX1BSRUNPTkRJVElPTiwiVGhlIGNsaWVudCBoYXMgYWxyZWFkeSBiZWVuIHRlcm1pbmF0ZWQuIil9LGROLnByb3RvdHlwZS50ZXJtaW5hdGU9ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3RoaXMuYXN5bmNRdWV1ZS5lbnRlclJlc3RyaWN0ZWRNb2RlKCk7dmFyIG49bmV3IGFJO3JldHVybiB0aGlzLmFzeW5jUXVldWUuZW5xdWV1ZUFuZEZvcmdldEV2ZW5XaGlsZVJlc3RyaWN0ZWQoZnVuY3Rpb24oKXtyZXR1cm4gJGkodCx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIGU7cmV0dXJuIFppKHRoaXMsZnVuY3Rpb24odCl7c3dpdGNoKHQubGFiZWwpe2Nhc2UgMDpyZXR1cm4gdC50cnlzLnB1c2goWzAsNSwsNl0pLHRoaXMub25saW5lQ29tcG9uZW50cz9bNCx0aGlzLm9ubGluZUNvbXBvbmVudHMudGVybWluYXRlKCldOlszLDJdO2Nhc2UgMTp0LnNlbnQoKSx0LmxhYmVsPTI7Y2FzZSAyOnJldHVybiB0aGlzLm9mZmxpbmVDb21wb25lbnRzP1s0LHRoaXMub2ZmbGluZUNvbXBvbmVudHMudGVybWluYXRlKCldOlszLDRdO2Nhc2UgMzp0LnNlbnQoKSx0LmxhYmVsPTQ7Y2FzZSA0OnJldHVybiB0aGlzLmNyZWRlbnRpYWxzLnJlbW92ZUNoYW5nZUxpc3RlbmVyKCksbi5yZXNvbHZlKCksWzMsNl07Y2FzZSA1OnJldHVybiBlPXQuc2VudCgpLGU9bkMoZSwiRmFpbGVkIHRvIHNodXRkb3duIHBlcnNpc3RlbmNlIiksbi5yZWplY3QoZSksWzMsNl07Y2FzZSA2OnJldHVyblsyXX19KX0pfSksbi5wcm9taXNlfSxkTik7ZnVuY3Rpb24gZE4odCxlLG4pe3ZhciByPXRoaXM7dGhpcy5jcmVkZW50aWFscz10LHRoaXMuYXN5bmNRdWV1ZT1lLHRoaXMuZGF0YWJhc2VJbmZvPW4sdGhpcy51c2VyPVBFLlVOQVVUSEVOVElDQVRFRCx0aGlzLmNsaWVudElkPXp5LnUoKSx0aGlzLmNyZWRlbnRpYWxMaXN0ZW5lcj1mdW5jdGlvbigpe30sdGhpcy5yZWNlaXZlZEluaXRpYWxVc2VyPW5ldyBhSSx0aGlzLmNyZWRlbnRpYWxzLnNldENoYW5nZUxpc3RlbmVyKGZ1bmN0aW9uKHQpe1Z5KCJGaXJlc3RvcmVDbGllbnQiLCJSZWNlaXZlZCB1c2VyPSIsdC51aWQpLHIudXNlcj10LHIuY3JlZGVudGlhbExpc3RlbmVyKHQpLHIucmVjZWl2ZWRJbml0aWFsVXNlci5yZXNvbHZlKCl9KX1mdW5jdGlvbiB2Tih0LGUsbixyKXt0aGlzLmFzeW5jUXVldWU9dCx0aGlzLmRhdGFzdG9yZT1lLHRoaXMudXBkYXRlRnVuY3Rpb249bix0aGlzLmRlZmVycmVkPXIsdGhpcy5lYz01LHRoaXMuWmk9bmV3IEVTKHRoaXMuYXN5bmNRdWV1ZSwidHJhbnNhY3Rpb25fcmV0cnkiKX1mdW5jdGlvbiBnTih0KXt0aGlzLmRhdGFzdG9yZT10LHRoaXMucmVhZFZlcnNpb25zPW5ldyBNYXAsdGhpcy5tdXRhdGlvbnM9W10sdGhpcy5jb21taXR0ZWQ9ITEsdGhpcy5sYXN0V3JpdGVFcnJvcj1udWxsLHRoaXMud3JpdHRlbkRvY3M9bmV3IFNldH1mdW5jdGlvbiB5Tih0LGUpe3ZhciBuPXRoaXM7dGhpcy5Hbz10LHRoaXMuUj1lLHRoaXMubWV0YWRhdGE9bmV3IGFJLHRoaXMuYnVmZmVyPW5ldyBVaW50OEFycmF5LHRoaXMuem89bmV3IFRleHREZWNvZGVyKCJ1dGYtOCIpLHRoaXMuSG8oKS50aGVuKGZ1bmN0aW9uKHQpe3QmJnQuaW8oKT9uLm1ldGFkYXRhLnJlc29sdmUodC5wYXlsb2FkLm1ldGFkYXRhKTpuLm1ldGFkYXRhLnJlamVjdChuZXcgRXJyb3IoIlRoZSBmaXJzdCBlbGVtZW50IG9mIHRoZSBidW5kbGUgaXMgbm90IGEgbWV0YWRhdGEsIGl0IGlzXG4gICAgICAgICAgICAgIitKU09OLnN0cmluZ2lmeShudWxsPT10P3ZvaWQgMDp0LnBheWxvYWQpKSl9LGZ1bmN0aW9uKHQpe3JldHVybiBuLm1ldGFkYXRhLnJlamVjdCh0KX0pfWZ1bmN0aW9uIG1OKHQpe3RoaXMub2JzZXJ2ZXI9dCx0aGlzLm11dGVkPSExfWZ1bmN0aW9uIGJOKGksbyl7cmV0dXJuICRpKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBlLG4scj10aGlzO3JldHVybiBaaSh0aGlzLGZ1bmN0aW9uKHQpe3N3aXRjaCh0LmxhYmVsKXtjYXNlIDA6cmV0dXJuIGkuYXN5bmNRdWV1ZS52ZXJpZnlPcGVyYXRpb25JblByb2dyZXNzKCksVnkoIkZpcmVzdG9yZUNsaWVudCIsIkluaXRpYWxpemluZyBPZmZsaW5lQ29tcG9uZW50UHJvdmlkZXIiKSxbNCxpLmdldENvbmZpZ3VyYXRpb24oKV07Y2FzZSAxOnJldHVybiBlPXQuc2VudCgpLFs0LG8uaW5pdGlhbGl6ZShlKV07Y2FzZSAyOnJldHVybiB0LnNlbnQoKSxuPWUuaW5pdGlhbFVzZXIsaS5zZXRDcmVkZW50aWFsQ2hhbmdlTGlzdGVuZXIoZnVuY3Rpb24oZSl7bi5pc0VxdWFsKGUpfHwobj1lLGkuYXN5bmNRdWV1ZS5lbnF1ZXVlUmV0cnlhYmxlKGZ1bmN0aW9uKCl7cmV0dXJuICRpKHIsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3JldHVybiBaaSh0aGlzLGZ1bmN0aW9uKHQpe3N3aXRjaCh0LmxhYmVsKXtjYXNlIDA6cmV0dXJuWzQsdUUoby5sb2NhbFN0b3JlLGUpXTtjYXNlIDE6cmV0dXJuIHQuc2VudCgpLFsyXX19KX0pfSkpfSksby5wZXJzaXN0ZW5jZS5zZXREYXRhYmFzZURlbGV0ZWRMaXN0ZW5lcihmdW5jdGlvbigpe3JldHVybiBpLnRlcm1pbmF0ZSgpfSksaS5vZmZsaW5lQ29tcG9uZW50cz1vLFsyXX19KX0pfWZ1bmN0aW9uIHdOKHIsaSl7cmV0dXJuICRpKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBlLG47cmV0dXJuIFppKHRoaXMsZnVuY3Rpb24odCl7c3dpdGNoKHQubGFiZWwpe2Nhc2UgMDpyZXR1cm4gci5hc3luY1F1ZXVlLnZlcmlmeU9wZXJhdGlvbkluUHJvZ3Jlc3MoKSxbNCxfTihyKV07Y2FzZSAxOnJldHVybiBlPXQuc2VudCgpLFZ5KCJGaXJlc3RvcmVDbGllbnQiLCJJbml0aWFsaXppbmcgT25saW5lQ29tcG9uZW50UHJvdmlkZXIiKSxbNCxyLmdldENvbmZpZ3VyYXRpb24oKV07Y2FzZSAyOnJldHVybiBuPXQuc2VudCgpLFs0LGkuaW5pdGlhbGl6ZShlLG4pXTtjYXNlIDM6cmV0dXJuIHQuc2VudCgpLHIuc2V0Q3JlZGVudGlhbENoYW5nZUxpc3RlbmVyKGZ1bmN0aW9uKHQpe3JldHVybiByLmFzeW5jUXVldWUuZW5xdWV1ZVJldHJ5YWJsZShmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbihyLGkpe3JldHVybiAkaSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgZSxuO3JldHVybiBaaSh0aGlzLGZ1bmN0aW9uKHQpe3N3aXRjaCh0LmxhYmVsKXtjYXNlIDA6cmV0dXJuKGU9cikuYXN5bmNRdWV1ZS52ZXJpZnlPcGVyYXRpb25JblByb2dyZXNzKCksVnkoIlJlbW90ZVN0b3JlIiwiUmVtb3RlU3RvcmUgcmVjZWl2ZWQgbmV3IGNyZWRlbnRpYWxzIiksbj1LUyhlKSxlLiRyLmFkZCgzKSxbNCxNUyhlKV07Y2FzZSAxOnJldHVybiB0LnNlbnQoKSxuJiZlLkJyLnNldCgiVW5rbm93biIpLFs0LGUucmVtb3RlU3luY2VyLmhhbmRsZUNyZWRlbnRpYWxDaGFuZ2UoaSldO2Nhc2UgMjpyZXR1cm4gdC5zZW50KCksZS4kci5kZWxldGUoMyksWzQsTFMoZSldO2Nhc2UgMzpyZXR1cm4gdC5zZW50KCksWzJdfX0pfSl9KGkucmVtb3RlU3RvcmUsdCl9KX0pLHIub25saW5lQ29tcG9uZW50cz1pLFsyXX19KX0pfWZ1bmN0aW9uIF9OKGUpe3JldHVybiAkaSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXtyZXR1cm4gWmkodGhpcyxmdW5jdGlvbih0KXtzd2l0Y2godC5sYWJlbCl7Y2FzZSAwOnJldHVybiBlLm9mZmxpbmVDb21wb25lbnRzP1szLDJdOihWeSgiRmlyZXN0b3JlQ2xpZW50IiwiVXNpbmcgZGVmYXVsdCBPZmZsaW5lQ29tcG9uZW50UHJvdmlkZXIiKSxbNCxiTihlLG5ldyB0TildKTtjYXNlIDE6dC5zZW50KCksdC5sYWJlbD0yO2Nhc2UgMjpyZXR1cm5bMixlLm9mZmxpbmVDb21wb25lbnRzXX19KX0pfWZ1bmN0aW9uIElOKGUpe3JldHVybiAkaSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXtyZXR1cm4gWmkodGhpcyxmdW5jdGlvbih0KXtzd2l0Y2godC5sYWJlbCl7Y2FzZSAwOnJldHVybiBlLm9ubGluZUNvbXBvbmVudHM/WzMsMl06KFZ5KCJGaXJlc3RvcmVDbGllbnQiLCJVc2luZyBkZWZhdWx0IE9ubGluZUNvbXBvbmVudFByb3ZpZGVyIiksWzQsd04oZSxuZXcgck4pXSk7Y2FzZSAxOnQuc2VudCgpLHQubGFiZWw9MjtjYXNlIDI6cmV0dXJuWzIsZS5vbmxpbmVDb21wb25lbnRzXX19KX0pfWZ1bmN0aW9uIFROKHQpe3JldHVybiBfTih0KS50aGVuKGZ1bmN0aW9uKHQpe3JldHVybiB0LnBlcnNpc3RlbmNlfSl9ZnVuY3Rpb24gRU4odCl7cmV0dXJuIF9OKHQpLnRoZW4oZnVuY3Rpb24odCl7cmV0dXJuIHQubG9jYWxTdG9yZX0pfWZ1bmN0aW9uIFNOKHQpe3JldHVybiBJTih0KS50aGVuKGZ1bmN0aW9uKHQpe3JldHVybiB0LnJlbW90ZVN0b3JlfSl9ZnVuY3Rpb24gQ04odCl7cmV0dXJuIElOKHQpLnRoZW4oZnVuY3Rpb24odCl7cmV0dXJuIHQuc3luY0VuZ2luZX0pfWZ1bmN0aW9uIE5OKHIpe3JldHVybiAkaSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgZSxuO3JldHVybiBaaSh0aGlzLGZ1bmN0aW9uKHQpe3N3aXRjaCh0LmxhYmVsKXtjYXNlIDA6cmV0dXJuWzQsSU4ocildO2Nhc2UgMTpyZXR1cm4gZT10LnNlbnQoKSxbMiwoKG49ZS5ldmVudE1hbmFnZXIpLm9uTGlzdGVuPWZ1bmN0aW9uKHMsYSl7cmV0dXJuICRpKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBlLG4scixpLG87cmV0dXJuIFppKHRoaXMsZnVuY3Rpb24odCl7c3dpdGNoKHQubGFiZWwpe2Nhc2UgMDpyZXR1cm4gZT1ZQyhzKSwobz1lLlBvLmdldChhKSk/KG49by50YXJnZXRJZCxlLnNoYXJlZENsaWVudFN0YXRlLmFkZExvY2FsUXVlcnlUYXJnZXQobikscj1vLnZpZXcuUm8oKSxbMyw0XSk6WzMsMV07Y2FzZSAxOnJldHVybls0LHBFKGUubG9jYWxTdG9yZSx4YihhKSldO2Nhc2UgMjpyZXR1cm4gaT10LnNlbnQoKSxvPWUuc2hhcmVkQ2xpZW50U3RhdGUuYWRkTG9jYWxRdWVyeVRhcmdldChpLnRhcmdldElkKSxuPWkudGFyZ2V0SWQsWzQsUEMoZSxhLG4sImN1cnJlbnQiPT09byldO2Nhc2UgMzpyPXQuc2VudCgpLGUuaXNQcmltYXJ5Q2xpZW50JiZGUyhlLnJlbW90ZVN0b3JlLGkpLHQubGFiZWw9NDtjYXNlIDQ6cmV0dXJuWzIscl19fSl9KX0uYmluZChudWxsLGUuc3luY0VuZ2luZSksbi5vblVubGlzdGVuPWZ1bmN0aW9uKGksbyl7cmV0dXJuICRpKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBlLG4scjtyZXR1cm4gWmkodGhpcyxmdW5jdGlvbih0KXtzd2l0Y2godC5sYWJlbCl7Y2FzZSAwOnJldHVybiBuPShlPWkpLlBvLmdldChvKSwxPChyPWUuVm8uZ2V0KG4udGFyZ2V0SWQpKS5sZW5ndGg/WzIsKGUuVm8uc2V0KG4udGFyZ2V0SWQsci5maWx0ZXIoZnVuY3Rpb24odCl7cmV0dXJuIU1iKHQsbyl9KSksdm9pZCBlLlBvLmRlbGV0ZShvKSldOmUuaXNQcmltYXJ5Q2xpZW50PyhlLnNoYXJlZENsaWVudFN0YXRlLnJlbW92ZUxvY2FsUXVlcnlUYXJnZXQobi50YXJnZXRJZCksZS5zaGFyZWRDbGllbnRTdGF0ZS5pc0FjdGl2ZVF1ZXJ5VGFyZ2V0KG4udGFyZ2V0SWQpP1szLDJdOls0LGRFKGUubG9jYWxTdG9yZSxuLnRhcmdldElkLCExKS50aGVuKGZ1bmN0aW9uKCl7ZS5zaGFyZWRDbGllbnRTdGF0ZS5jbGVhclF1ZXJ5U3RhdGUobi50YXJnZXRJZCksVVMoZS5yZW1vdGVTdG9yZSxuLnRhcmdldElkKSxqQyhlLG4udGFyZ2V0SWQpfSkuY2F0Y2goX1QpXSk6WzMsM107Y2FzZSAxOnQuc2VudCgpLHQubGFiZWw9MjtjYXNlIDI6cmV0dXJuWzMsNV07Y2FzZSAzOnJldHVybiBqQyhlLG4udGFyZ2V0SWQpLFs0LGRFKGUubG9jYWxTdG9yZSxuLnRhcmdldElkLCEwKV07Y2FzZSA0OnQuc2VudCgpLHQubGFiZWw9NTtjYXNlIDU6cmV0dXJuWzJdfX0pfSl9LmJpbmQobnVsbCxlLnN5bmNFbmdpbmUpLG4pXX19KX0pfWZ1bmN0aW9uIEFOKG4scixpKXt2YXIgdD10aGlzO3ZvaWQgMD09PWkmJihpPXt9KTt2YXIgbz1uZXcgYUk7cmV0dXJuIG4uYXN5bmNRdWV1ZS5lbnF1ZXVlQW5kRm9yZ2V0KGZ1bmN0aW9uKCl7cmV0dXJuICRpKHQsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBlO3JldHVybiBaaSh0aGlzLGZ1bmN0aW9uKHQpe3N3aXRjaCh0LmxhYmVsKXtjYXNlIDA6cmV0dXJuIGU9ZnVuY3Rpb24obixyLGksbyxzKXt2YXIgdD1uZXcgY04oe25leHQ6ZnVuY3Rpb24odCl7ci5lbnF1ZXVlQW5kRm9yZ2V0KGZ1bmN0aW9uKCl7cmV0dXJuIGZDKG4sYSl9KTt2YXIgZT10LmRvY3MuaGFzKGkpOyFlJiZ0LmZyb21DYWNoZT9zLnJlamVjdChuZXcgRnkoTXkuVU5BVkFJTEFCTEUsIkZhaWxlZCB0byBnZXQgZG9jdW1lbnQgYmVjYXVzZSB0aGUgY2xpZW50IGlzIG9mZmxpbmUuIikpOmUmJnQuZnJvbUNhY2hlJiZvJiYic2VydmVyIj09PW8uc291cmNlP3MucmVqZWN0KG5ldyBGeShNeS5VTkFWQUlMQUJMRSwnRmFpbGVkIHRvIGdldCBkb2N1bWVudCBmcm9tIHNlcnZlci4gKEhvd2V2ZXIsIHRoaXMgZG9jdW1lbnQgZG9lcyBleGlzdCBpbiB0aGUgbG9jYWwgY2FjaGUuIFJ1biBhZ2FpbiB3aXRob3V0IHNldHRpbmcgc291cmNlIHRvICJzZXJ2ZXIiIHRvIHJldHJpZXZlIHRoZSBjYWNoZWQgZG9jdW1lbnQuKScpKTpzLnJlc29sdmUodCl9LGVycm9yOmZ1bmN0aW9uKHQpe3JldHVybiBzLnJlamVjdCh0KX19KSxhPW5ldyBkQyhOYihpLnBhdGgpLHQse2luY2x1ZGVNZXRhZGF0YUNoYW5nZXM6ITAsc286ITB9KTtyZXR1cm4gbEMobixhKX0sWzQsTk4obildO2Nhc2UgMTpyZXR1cm5bMixlLmFwcGx5KHZvaWQgMCxbdC5zZW50KCksbi5hc3luY1F1ZXVlLHIsaSxvXSldfX0pfSl9KSxvLnByb21pc2V9ZnVuY3Rpb24ga04obixyLGkpe3ZhciB0PXRoaXM7dm9pZCAwPT09aSYmKGk9e30pO3ZhciBvPW5ldyBhSTtyZXR1cm4gbi5hc3luY1F1ZXVlLmVucXVldWVBbmRGb3JnZXQoZnVuY3Rpb24oKXtyZXR1cm4gJGkodCx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIGU7cmV0dXJuIFppKHRoaXMsZnVuY3Rpb24odCl7c3dpdGNoKHQubGFiZWwpe2Nhc2UgMDpyZXR1cm4gZT1mdW5jdGlvbihlLG4sdCxyLGkpe3ZhciBvPW5ldyBjTih7bmV4dDpmdW5jdGlvbih0KXtuLmVucXVldWVBbmRGb3JnZXQoZnVuY3Rpb24oKXtyZXR1cm4gZkMoZSxzKX0pLHQuZnJvbUNhY2hlJiYic2VydmVyIj09PXIuc291cmNlP2kucmVqZWN0KG5ldyBGeShNeS5VTkFWQUlMQUJMRSwnRmFpbGVkIHRvIGdldCBkb2N1bWVudHMgZnJvbSBzZXJ2ZXIuIChIb3dldmVyLCB0aGVzZSBkb2N1bWVudHMgbWF5IGV4aXN0IGluIHRoZSBsb2NhbCBjYWNoZS4gUnVuIGFnYWluIHdpdGhvdXQgc2V0dGluZyBzb3VyY2UgdG8gInNlcnZlciIgdG8gcmV0cmlldmUgdGhlIGNhY2hlZCBkb2N1bWVudHMuKScpKTppLnJlc29sdmUodCl9LGVycm9yOmZ1bmN0aW9uKHQpe3JldHVybiBpLnJlamVjdCh0KX19KSxzPW5ldyBkQyh0LG8se2luY2x1ZGVNZXRhZGF0YUNoYW5nZXM6ITAsc286ITB9KTtyZXR1cm4gbEMoZSxzKX0sWzQsTk4obildO2Nhc2UgMTpyZXR1cm5bMixlLmFwcGx5KHZvaWQgMCxbdC5zZW50KCksbi5hc3luY1F1ZXVlLHIsaSxvXSldfX0pfSl9KSxvLnByb21pc2V9ZnVuY3Rpb24gUk4odCxlKXt0aGlzLnVzZXI9ZSx0aGlzLnR5cGU9Ik9BdXRoIix0aGlzLmF1dGhIZWFkZXJzPXt9LHRoaXMuYXV0aEhlYWRlcnMuQXV0aG9yaXphdGlvbj0iQmVhcmVyICIrdH12YXIgUE49ZnVuY3Rpb24odCxlLG4scixpLG8scyl7dGhpcy5kYXRhYmFzZUlkPXQsdGhpcy5hcHBJZD1lLHRoaXMucGVyc2lzdGVuY2VLZXk9bix0aGlzLmhvc3Q9cix0aGlzLnNzbD1pLHRoaXMuZm9yY2VMb25nUG9sbGluZz1vLHRoaXMuYXV0b0RldGVjdExvbmdQb2xsaW5nPXN9LE9OPShPYmplY3QuZGVmaW5lUHJvcGVydHkoQk4ucHJvdG90eXBlLCJpc0RlZmF1bHREYXRhYmFzZSIse2dldDpmdW5jdGlvbigpe3JldHVybiIoZGVmYXVsdCkiPT09dGhpcy5kYXRhYmFzZX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxCTi5wcm90b3R5cGUuaXNFcXVhbD1mdW5jdGlvbih0KXtyZXR1cm4gdCBpbnN0YW5jZW9mIEJOJiZ0LnByb2plY3RJZD09PXRoaXMucHJvamVjdElkJiZ0LmRhdGFiYXNlPT09dGhpcy5kYXRhYmFzZX0sQk4pLEROPW5ldyBNYXAseE49KFZOLnByb3RvdHlwZS5nZXRUb2tlbj1mdW5jdGlvbigpe3JldHVybiBQcm9taXNlLnJlc29sdmUobnVsbCl9LFZOLnByb3RvdHlwZS5pbnZhbGlkYXRlVG9rZW49ZnVuY3Rpb24oKXt9LFZOLnByb3RvdHlwZS5zZXRDaGFuZ2VMaXN0ZW5lcj1mdW5jdGlvbih0KXsodGhpcy5jaGFuZ2VMaXN0ZW5lcj10KShQRS5VTkFVVEhFTlRJQ0FURUQpfSxWTi5wcm90b3R5cGUucmVtb3ZlQ2hhbmdlTGlzdGVuZXI9ZnVuY3Rpb24oKXt0aGlzLmNoYW5nZUxpc3RlbmVyPW51bGx9LFZOKSxMTj0ocU4ucHJvdG90eXBlLmdldFRva2VuPWZ1bmN0aW9uKCl7dmFyIGU9dGhpcyxuPXRoaXMuY2MsdD10aGlzLmZvcmNlUmVmcmVzaDtyZXR1cm4gdGhpcy5mb3JjZVJlZnJlc2g9ITEsdGhpcy5hdXRoP3RoaXMuYXV0aC5nZXRUb2tlbih0KS50aGVuKGZ1bmN0aW9uKHQpe3JldHVybiBlLmNjIT09bj8oVnkoIkZpcmViYXNlQ3JlZGVudGlhbHNQcm92aWRlciIsImdldFRva2VuIGFib3J0ZWQgZHVlIHRvIHRva2VuIGNoYW5nZS4iKSxlLmdldFRva2VuKCkpOnQ/KEd5KCJzdHJpbmciPT10eXBlb2YgdC5hY2Nlc3NUb2tlbiksbmV3IFJOKHQuYWNjZXNzVG9rZW4sZS5jdXJyZW50VXNlcikpOm51bGx9KTpQcm9taXNlLnJlc29sdmUobnVsbCl9LHFOLnByb3RvdHlwZS5pbnZhbGlkYXRlVG9rZW49ZnVuY3Rpb24oKXt0aGlzLmZvcmNlUmVmcmVzaD0hMH0scU4ucHJvdG90eXBlLnNldENoYW5nZUxpc3RlbmVyPWZ1bmN0aW9uKHQpe3RoaXMuY2hhbmdlTGlzdGVuZXI9dCx0aGlzLnJlY2VpdmVkSW5pdGlhbFVzZXImJnQodGhpcy5jdXJyZW50VXNlcil9LHFOLnByb3RvdHlwZS5yZW1vdmVDaGFuZ2VMaXN0ZW5lcj1mdW5jdGlvbigpe3RoaXMuYXV0aCYmdGhpcy5hdXRoLnJlbW92ZUF1dGhUb2tlbkxpc3RlbmVyKHRoaXMub2MpLHRoaXMub2M9bnVsbCx0aGlzLmNoYW5nZUxpc3RlbmVyPW51bGx9LHFOLnByb3RvdHlwZS51Yz1mdW5jdGlvbigpe3ZhciB0PXRoaXMuYXV0aCYmdGhpcy5hdXRoLmdldFVpZCgpO3JldHVybiBHeShudWxsPT09dHx8InN0cmluZyI9PXR5cGVvZiB0KSxuZXcgUEUodCl9LHFOKSxNTj0oT2JqZWN0LmRlZmluZVByb3BlcnR5KGpOLnByb3RvdHlwZSwiYXV0aEhlYWRlcnMiLHtnZXQ6ZnVuY3Rpb24oKXt2YXIgdD17IlgtR29vZy1BdXRoVXNlciI6dGhpcy5oY30sZT10aGlzLmFjLmF1dGguZ2V0QXV0aEhlYWRlclZhbHVlRm9yRmlyc3RQYXJ0eShbXSk7cmV0dXJuIGUmJih0LkF1dGhvcml6YXRpb249ZSksdH0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxqTiksRk49KFVOLnByb3RvdHlwZS5nZXRUb2tlbj1mdW5jdGlvbigpe3JldHVybiBQcm9taXNlLnJlc29sdmUobmV3IE1OKHRoaXMuYWMsdGhpcy5oYykpfSxVTi5wcm90b3R5cGUuc2V0Q2hhbmdlTGlzdGVuZXI9ZnVuY3Rpb24odCl7dChQRS5GSVJTVF9QQVJUWSl9LFVOLnByb3RvdHlwZS5yZW1vdmVDaGFuZ2VMaXN0ZW5lcj1mdW5jdGlvbigpe30sVU4ucHJvdG90eXBlLmludmFsaWRhdGVUb2tlbj1mdW5jdGlvbigpe30sVU4pO2Z1bmN0aW9uIFVOKHQsZSl7dGhpcy5hYz10LHRoaXMuaGM9ZX1mdW5jdGlvbiBqTih0LGUpe3RoaXMuYWM9dCx0aGlzLmhjPWUsdGhpcy50eXBlPSJGaXJzdFBhcnR5Iix0aGlzLnVzZXI9UEUuRklSU1RfUEFSVFl9ZnVuY3Rpb24gcU4odCl7dmFyIGU9dGhpczt0aGlzLm9jPW51bGwsdGhpcy5jdXJyZW50VXNlcj1QRS5VTkFVVEhFTlRJQ0FURUQsdGhpcy5yZWNlaXZlZEluaXRpYWxVc2VyPSExLHRoaXMuY2M9MCx0aGlzLmNoYW5nZUxpc3RlbmVyPW51bGwsdGhpcy5mb3JjZVJlZnJlc2g9ITEsdGhpcy5vYz1mdW5jdGlvbigpe2UuY2MrKyxlLmN1cnJlbnRVc2VyPWUudWMoKSxlLnJlY2VpdmVkSW5pdGlhbFVzZXI9ITAsZS5jaGFuZ2VMaXN0ZW5lciYmZS5jaGFuZ2VMaXN0ZW5lcihlLmN1cnJlbnRVc2VyKX0sdGhpcy5jYz0wLHRoaXMuYXV0aD10LmdldEltbWVkaWF0ZSh7b3B0aW9uYWw6ITB9KSx0aGlzLmF1dGg/dGhpcy5hdXRoLmFkZEF1dGhUb2tlbkxpc3RlbmVyKHRoaXMub2MpOih0aGlzLm9jKG51bGwpLHQuZ2V0KCkudGhlbihmdW5jdGlvbih0KXtlLmF1dGg9dCxlLm9jJiZlLmF1dGguYWRkQXV0aFRva2VuTGlzdGVuZXIoZS5vYyl9LGZ1bmN0aW9uKCl7fSkpfWZ1bmN0aW9uIFZOKCl7dGhpcy5jaGFuZ2VMaXN0ZW5lcj1udWxsfWZ1bmN0aW9uIEJOKHQsZSl7dGhpcy5wcm9qZWN0SWQ9dCx0aGlzLmRhdGFiYXNlPWV8fCIoZGVmYXVsdCkifWZ1bmN0aW9uIEtOKHQsZSxuKXtpZighbil0aHJvdyBuZXcgRnkoTXkuSU5WQUxJRF9BUkdVTUVOVCwiRnVuY3Rpb24gIit0KyIoKSBjYW5ub3QgYmUgY2FsbGVkIHdpdGggYW4gZW1wdHkgIitlKyIuIil9ZnVuY3Rpb24gV04odCxlKXtpZih2b2lkIDA9PT1lKXJldHVybnttZXJnZTohMX07aWYodm9pZCAwIT09ZS5tZXJnZUZpZWxkcyYmdm9pZCAwIT09ZS5tZXJnZSl0aHJvdyBuZXcgRnkoTXkuSU5WQUxJRF9BUkdVTUVOVCwiSW52YWxpZCBvcHRpb25zIHBhc3NlZCB0byBmdW5jdGlvbiAiK3QrJygpOiBZb3UgY2Fubm90IHNwZWNpZnkgYm90aCAibWVyZ2UiIGFuZCAibWVyZ2VGaWVsZHMiLicpO3JldHVybiBlfWZ1bmN0aW9uIEhOKHQsZSxuLHIpe2lmKCEwPT09ZSYmITA9PT1yKXRocm93IG5ldyBGeShNeS5JTlZBTElEX0FSR1VNRU5ULHQrIiBhbmQgIituKyIgY2Fubm90IGJlIHVzZWQgdG9nZXRoZXIuIil9ZnVuY3Rpb24gR04odCl7aWYoIUNtLmlzRG9jdW1lbnRLZXkodCkpdGhyb3cgbmV3IEZ5KE15LklOVkFMSURfQVJHVU1FTlQsIkludmFsaWQgZG9jdW1lbnQgcmVmZXJlbmNlLiBEb2N1bWVudCByZWZlcmVuY2VzIG11c3QgaGF2ZSBhbiBldmVuIG51bWJlciBvZiBzZWdtZW50cywgYnV0ICIrdCsiIGhhcyAiK3QubGVuZ3RoKyIuIil9ZnVuY3Rpb24gek4odCl7aWYoQ20uaXNEb2N1bWVudEtleSh0KSl0aHJvdyBuZXcgRnkoTXkuSU5WQUxJRF9BUkdVTUVOVCwiSW52YWxpZCBjb2xsZWN0aW9uIHJlZmVyZW5jZS4gQ29sbGVjdGlvbiByZWZlcmVuY2VzIG11c3QgaGF2ZSBhbiBvZGQgbnVtYmVyIG9mIHNlZ21lbnRzLCBidXQgIit0KyIgaGFzICIrdC5sZW5ndGgrIi4iKX1mdW5jdGlvbiBRTihlKXtpZih2b2lkIDA9PT1lKXJldHVybiJ1bmRlZmluZWQiO2lmKG51bGw9PT1lKXJldHVybiJudWxsIjtpZigic3RyaW5nIj09dHlwZW9mIGUpcmV0dXJuIDIwPGUubGVuZ3RoJiYoZT1lLnN1YnN0cmluZygwLDIwKSsiLi4uIiksSlNPTi5zdHJpbmdpZnkoZSk7aWYoIm51bWJlciI9PXR5cGVvZiBlfHwiYm9vbGVhbiI9PXR5cGVvZiBlKXJldHVybiIiK2U7aWYoIm9iamVjdCIhPXR5cGVvZiBlKXJldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBlPyJhIGZ1bmN0aW9uIjpIeSgpO2lmKGUgaW5zdGFuY2VvZiBBcnJheSlyZXR1cm4iYW4gYXJyYXkiO3ZhciB0PWZ1bmN0aW9uKCl7aWYoZS5jb25zdHJ1Y3Rvcil7dmFyIHQ9L2Z1bmN0aW9uXHMrKFteXHMoXSspXHMqXCgvLmV4ZWMoZS5jb25zdHJ1Y3Rvci50b1N0cmluZygpKTtpZih0JiYxPHQubGVuZ3RoKXJldHVybiB0WzFdfXJldHVybiBudWxsfSgpO3JldHVybiB0PyJhIGN1c3RvbSAiK3QrIiBvYmplY3QiOiJhbiBvYmplY3QifWZ1bmN0aW9uIFlOKHQsZSl7aWYoKHQ9Il9kZWxlZ2F0ZSJpbiB0P3QuX2RlbGVnYXRlOnQpaW5zdGFuY2VvZiBlKXJldHVybiB0O2lmKGUubmFtZT09PXQuY29uc3RydWN0b3IubmFtZSl0aHJvdyBuZXcgRnkoTXkuSU5WQUxJRF9BUkdVTUVOVCwiVHlwZSBkb2VzIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgaW5zdGFuY2UuIERpZCB5b3UgcGFzcyBhIHJlZmVyZW5jZSBmcm9tIGEgZGlmZmVyZW50IEZpcmVzdG9yZSBTREs/Iik7dD1RTih0KTt0aHJvdyBuZXcgRnkoTXkuSU5WQUxJRF9BUkdVTUVOVCwiRXhwZWN0ZWQgdHlwZSAnIitlLm5hbWUrIicsIGJ1dCBpdCB3YXM6ICIrdCl9ZnVuY3Rpb24gWE4odCxlKXtpZihlPD0wKXRocm93IG5ldyBGeShNeS5JTlZBTElEX0FSR1VNRU5ULCJGdW5jdGlvbiAiK3QrIigpIHJlcXVpcmVzIGEgcG9zaXRpdmUgbnVtYmVyLCBidXQgaXQgd2FzOiAiK2UrIi4iKX12YXIgSk4sJE49KGFBLnByb3RvdHlwZS5pc0VxdWFsPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmhvc3Q9PT10Lmhvc3QmJnRoaXMuc3NsPT09dC5zc2wmJnRoaXMuY3JlZGVudGlhbHM9PT10LmNyZWRlbnRpYWxzJiZ0aGlzLmNhY2hlU2l6ZUJ5dGVzPT09dC5jYWNoZVNpemVCeXRlcyYmdGhpcy5leHBlcmltZW50YWxGb3JjZUxvbmdQb2xsaW5nPT09dC5leHBlcmltZW50YWxGb3JjZUxvbmdQb2xsaW5nJiZ0aGlzLmV4cGVyaW1lbnRhbEF1dG9EZXRlY3RMb25nUG9sbGluZz09PXQuZXhwZXJpbWVudGFsQXV0b0RldGVjdExvbmdQb2xsaW5nJiZ0aGlzLmlnbm9yZVVuZGVmaW5lZFByb3BlcnRpZXM9PT10Lmlnbm9yZVVuZGVmaW5lZFByb3BlcnRpZXN9LGFBKSxaTj0oT2JqZWN0LmRlZmluZVByb3BlcnR5KHNBLnByb3RvdHlwZSwiYXBwIix7Z2V0OmZ1bmN0aW9uKCl7aWYoIXRoaXMuX2FwcCl0aHJvdyBuZXcgRnkoTXkuRkFJTEVEX1BSRUNPTkRJVElPTiwiRmlyZXN0b3JlIHdhcyBub3QgaW5pdGlhbGl6ZWQgdXNpbmcgdGhlIEZpcmViYXNlIFNESy4gJ2FwcCcgaXMgbm90IGF2YWlsYWJsZSIpO3JldHVybiB0aGlzLl9hcHB9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHNBLnByb3RvdHlwZSwiX2luaXRpYWxpemVkIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3NldHRpbmdzRnJvemVufSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShzQS5wcm90b3R5cGUsIl90ZXJtaW5hdGVkIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHZvaWQgMCE9PXRoaXMuX3Rlcm1pbmF0ZVRhc2t9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksc0EucHJvdG90eXBlLl9zZXRTZXR0aW5ncz1mdW5jdGlvbih0KXtpZih0aGlzLl9zZXR0aW5nc0Zyb3plbil0aHJvdyBuZXcgRnkoTXkuRkFJTEVEX1BSRUNPTkRJVElPTiwiRmlyZXN0b3JlIGhhcyBhbHJlYWR5IGJlZW4gc3RhcnRlZCBhbmQgaXRzIHNldHRpbmdzIGNhbiBubyBsb25nZXIgYmUgY2hhbmdlZC4gWW91IGNhbiBvbmx5IG1vZGlmeSBzZXR0aW5ncyBiZWZvcmUgY2FsbGluZyBhbnkgb3RoZXIgbWV0aG9kcyBvbiBhIEZpcmVzdG9yZSBvYmplY3QuIik7dGhpcy5fc2V0dGluZ3M9bmV3ICROKHQpLHZvaWQgMCE9PXQuY3JlZGVudGlhbHMmJih0aGlzLl9jcmVkZW50aWFscz1mdW5jdGlvbih0KXtpZighdClyZXR1cm4gbmV3IHhOO3N3aXRjaCh0LnR5cGUpe2Nhc2UiZ2FwaSI6dmFyIGU9dC5jbGllbnQ7cmV0dXJuIEd5KCEoIm9iamVjdCIhPXR5cGVvZiBlfHxudWxsPT09ZXx8IWUuYXV0aHx8IWUuYXV0aC5nZXRBdXRoSGVhZGVyVmFsdWVGb3JGaXJzdFBhcnR5KSksbmV3IEZOKGUsdC5zZXNzaW9uSW5kZXh8fCIwIik7Y2FzZSJwcm92aWRlciI6cmV0dXJuIHQuY2xpZW50O2RlZmF1bHQ6dGhyb3cgbmV3IEZ5KE15LklOVkFMSURfQVJHVU1FTlQsIm1ha2VDcmVkZW50aWFsc1Byb3ZpZGVyIGZhaWxlZCBkdWUgdG8gaW52YWxpZCBjcmVkZW50aWFsIHR5cGUiKX19KHQuY3JlZGVudGlhbHMpKX0sc0EucHJvdG90eXBlLl9nZXRTZXR0aW5ncz1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9zZXR0aW5nc30sc0EucHJvdG90eXBlLl9mcmVlemVTZXR0aW5ncz1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9zZXR0aW5nc0Zyb3plbj0hMCx0aGlzLl9zZXR0aW5nc30sc0EucHJvdG90eXBlLl9kZWxldGU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fdGVybWluYXRlVGFza3x8KHRoaXMuX3Rlcm1pbmF0ZVRhc2s9dGhpcy5fdGVybWluYXRlKCkpLHRoaXMuX3Rlcm1pbmF0ZVRhc2t9LHNBLnByb3RvdHlwZS50b0pTT049ZnVuY3Rpb24oKXtyZXR1cm57YXBwOnRoaXMuX2FwcCxkYXRhYmFzZUlkOnRoaXMuX2RhdGFiYXNlSWQsc2V0dGluZ3M6dGhpcy5fc2V0dGluZ3N9fSxzQS5wcm90b3R5cGUuX3Rlcm1pbmF0ZT1mdW5jdGlvbigpe3JldHVybih0PUROLmdldCh0aGlzKSkmJihWeSgiQ29tcG9uZW50UHJvdmlkZXIiLCJSZW1vdmluZyBEYXRhc3RvcmUiKSxETi5kZWxldGUodGhpcyksdC50ZXJtaW5hdGUoKSksUHJvbWlzZS5yZXNvbHZlKCk7dmFyIHR9LHNBKSx0QT0oT2JqZWN0LmRlZmluZVByb3BlcnR5KG9BLnByb3RvdHlwZSwiX3BhdGgiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fa2V5LnBhdGh9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KG9BLnByb3RvdHlwZSwiaWQiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fa2V5LnBhdGgubGFzdFNlZ21lbnQoKX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkob0EucHJvdG90eXBlLCJwYXRoIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2tleS5wYXRoLmNhbm9uaWNhbFN0cmluZygpfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvQS5wcm90b3R5cGUsInBhcmVudCIse2dldDpmdW5jdGlvbigpe3JldHVybiBuZXcgbkEodGhpcy5maXJlc3RvcmUsdGhpcy5fY29udmVydGVyLHRoaXMuX2tleS5wYXRoLnBvcExhc3QoKSl9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksb0EucHJvdG90eXBlLndpdGhDb252ZXJ0ZXI9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBvQSh0aGlzLmZpcmVzdG9yZSx0LHRoaXMuX2tleSl9LG9BKSxlQT0oaUEucHJvdG90eXBlLndpdGhDb252ZXJ0ZXI9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBpQSh0aGlzLmZpcmVzdG9yZSx0LHRoaXMuX3F1ZXJ5KX0saUEpLG5BPShYaShyQSxKTj1lQSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHJBLnByb3RvdHlwZSwiaWQiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fcXVlcnkucGF0aC5sYXN0U2VnbWVudCgpfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyQS5wcm90b3R5cGUsInBhdGgiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fcXVlcnkucGF0aC5jYW5vbmljYWxTdHJpbmcoKX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkockEucHJvdG90eXBlLCJwYXJlbnQiLHtnZXQ6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl9wYXRoLnBvcExhc3QoKTtyZXR1cm4gdC5pc0VtcHR5KCk/bnVsbDpuZXcgdEEodGhpcy5maXJlc3RvcmUsbnVsbCxuZXcgQ20odCkpfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLHJBLnByb3RvdHlwZS53aXRoQ29udmVydGVyPWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgckEodGhpcy5maXJlc3RvcmUsdCx0aGlzLl9wYXRoKX0sckEpO2Z1bmN0aW9uIHJBKHQsZSxuKXt2YXIgcj10aGlzO3JldHVybihyPUpOLmNhbGwodGhpcyx0LGUsTmIobikpfHx0aGlzKS5maXJlc3RvcmU9dCxyLl9wYXRoPW4sci50eXBlPSJjb2xsZWN0aW9uIixyfWZ1bmN0aW9uIGlBKHQsZSxuKXt0aGlzLl9jb252ZXJ0ZXI9ZSx0aGlzLl9xdWVyeT1uLHRoaXMudHlwZT0icXVlcnkiLHRoaXMuZmlyZXN0b3JlPXR9ZnVuY3Rpb24gb0EodCxlLG4pe3RoaXMuX2NvbnZlcnRlcj1lLHRoaXMuX2tleT1uLHRoaXMudHlwZT0iZG9jdW1lbnQiLHRoaXMuZmlyZXN0b3JlPXR9ZnVuY3Rpb24gc0EodCxlKXt0aGlzLl9wZXJzaXN0ZW5jZUtleT0iKGxpdGUpIix0aGlzLl9zZXR0aW5ncz1uZXcgJE4oe30pLHRoaXMuX3NldHRpbmdzRnJvemVuPSExLHQgaW5zdGFuY2VvZiBPTj8odGhpcy5fZGF0YWJhc2VJZD10LHRoaXMuX2NyZWRlbnRpYWxzPW5ldyB4Tik6KHRoaXMuX2FwcD10LHRoaXMuX2RhdGFiYXNlSWQ9ZnVuY3Rpb24odCl7aWYoIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuYXBwbHkodC5vcHRpb25zLFsicHJvamVjdElkIl0pKXRocm93IG5ldyBGeShNeS5JTlZBTElEX0FSR1VNRU5ULCcicHJvamVjdElkIiBub3QgcHJvdmlkZWQgaW4gZmlyZWJhc2UuaW5pdGlhbGl6ZUFwcC4nKTtyZXR1cm4gbmV3IE9OKHQub3B0aW9ucy5wcm9qZWN0SWQpfSh0KSx0aGlzLl9jcmVkZW50aWFscz1uZXcgTE4oZSkpfWZ1bmN0aW9uIGFBKHQpe3ZhciBlO2lmKHZvaWQgMD09PXQuaG9zdCl7aWYodm9pZCAwIT09dC5zc2wpdGhyb3cgbmV3IEZ5KE15LklOVkFMSURfQVJHVU1FTlQsIkNhbid0IHByb3ZpZGUgc3NsIG9wdGlvbiBpZiBob3N0IG9wdGlvbiBpcyBub3Qgc2V0Iik7dGhpcy5ob3N0PSJmaXJlc3RvcmUuZ29vZ2xlYXBpcy5jb20iLHRoaXMuc3NsPSEwfWVsc2UgdGhpcy5ob3N0PXQuaG9zdCx0aGlzLnNzbD1udWxsPT09KGU9dC5zc2wpfHx2b2lkIDA9PT1lfHxlO2lmKHRoaXMuY3JlZGVudGlhbHM9dC5jcmVkZW50aWFscyx0aGlzLmlnbm9yZVVuZGVmaW5lZFByb3BlcnRpZXM9ISF0Lmlnbm9yZVVuZGVmaW5lZFByb3BlcnRpZXMsdm9pZCAwPT09dC5jYWNoZVNpemVCeXRlcyl0aGlzLmNhY2hlU2l6ZUJ5dGVzPTQxOTQzMDQwO2Vsc2V7aWYoLTEhPT10LmNhY2hlU2l6ZUJ5dGVzJiZ0LmNhY2hlU2l6ZUJ5dGVzPDEwNDg1NzYpdGhyb3cgbmV3IEZ5KE15LklOVkFMSURfQVJHVU1FTlQsImNhY2hlU2l6ZUJ5dGVzIG11c3QgYmUgYXQgbGVhc3QgMTA0ODU3NiIpO3RoaXMuY2FjaGVTaXplQnl0ZXM9dC5jYWNoZVNpemVCeXRlc310aGlzLmV4cGVyaW1lbnRhbEZvcmNlTG9uZ1BvbGxpbmc9ISF0LmV4cGVyaW1lbnRhbEZvcmNlTG9uZ1BvbGxpbmcsdGhpcy5leHBlcmltZW50YWxBdXRvRGV0ZWN0TG9uZ1BvbGxpbmc9ISF0LmV4cGVyaW1lbnRhbEF1dG9EZXRlY3RMb25nUG9sbGluZyxITigiZXhwZXJpbWVudGFsRm9yY2VMb25nUG9sbGluZyIsdC5leHBlcmltZW50YWxGb3JjZUxvbmdQb2xsaW5nLCJleHBlcmltZW50YWxBdXRvRGV0ZWN0TG9uZ1BvbGxpbmciLHQuZXhwZXJpbWVudGFsQXV0b0RldGVjdExvbmdQb2xsaW5nKX1mdW5jdGlvbiB1QSh0LGUpe2Zvcih2YXIgbixyPVtdLGk9MjtpPGFyZ3VtZW50cy5sZW5ndGg7aSsrKXJbaS0yXT1hcmd1bWVudHNbaV07aWYodD1abyh0KSxLTigiY29sbGVjdGlvbiIsInBhdGgiLGUpLHQgaW5zdGFuY2VvZiBaTilyZXR1cm4gek4obj1hbS5mcm9tU3RyaW5nLmFwcGx5KGFtLG5vKFtlXSxyKSkpLG5ldyBuQSh0LG51bGwsbik7aWYoISh0IGluc3RhbmNlb2YgdEF8fHQgaW5zdGFuY2VvZiBuQSkpdGhyb3cgbmV3IEZ5KE15LklOVkFMSURfQVJHVU1FTlQsIkV4cGVjdGVkIGZpcnN0IGFyZ3VtZW50IHRvIGNvbGxlY3Rpb24oKSB0byBiZSBhIENvbGxlY3Rpb25SZWZlcmVuY2UsIGEgRG9jdW1lbnRSZWZlcmVuY2Ugb3IgRmlyZWJhc2VGaXJlc3RvcmUiKTtyZXR1cm4gek4obj1hbS5mcm9tU3RyaW5nLmFwcGx5KGFtLG5vKFt0LnBhdGhdLHIpKS5jaGlsZChhbS5mcm9tU3RyaW5nKGUpKSksbmV3IG5BKHQuZmlyZXN0b3JlLG51bGwsbil9ZnVuY3Rpb24gY0EodCxlKXtmb3IodmFyIG4scj1bXSxpPTI7aTxhcmd1bWVudHMubGVuZ3RoO2krKylyW2ktMl09YXJndW1lbnRzW2ldO2lmKHQ9Wm8odCksS04oImRvYyIsInBhdGgiLGU9MT09PWFyZ3VtZW50cy5sZW5ndGg/enkudSgpOmUpLHQgaW5zdGFuY2VvZiBaTilyZXR1cm4gR04obj1hbS5mcm9tU3RyaW5nLmFwcGx5KGFtLG5vKFtlXSxyKSkpLG5ldyB0QSh0LG51bGwsbmV3IENtKG4pKTtpZighKHQgaW5zdGFuY2VvZiB0QXx8dCBpbnN0YW5jZW9mIG5BKSl0aHJvdyBuZXcgRnkoTXkuSU5WQUxJRF9BUkdVTUVOVCwiRXhwZWN0ZWQgZmlyc3QgYXJndW1lbnQgdG8gY29sbGVjdGlvbigpIHRvIGJlIGEgQ29sbGVjdGlvblJlZmVyZW5jZSwgYSBEb2N1bWVudFJlZmVyZW5jZSBvciBGaXJlYmFzZUZpcmVzdG9yZSIpO3JldHVybiBHTihuPXQuX3BhdGguY2hpbGQoYW0uZnJvbVN0cmluZy5hcHBseShhbSxubyhbZV0scikpKSksbmV3IHRBKHQuZmlyZXN0b3JlLHQgaW5zdGFuY2VvZiBuQT90Ll9jb252ZXJ0ZXI6bnVsbCxuZXcgQ20obikpfWZ1bmN0aW9uIGhBKHQsZSl7cmV0dXJuIHQ9Wm8odCksZT1abyhlKSwodCBpbnN0YW5jZW9mIHRBfHx0IGluc3RhbmNlb2YgbkEpJiYoZSBpbnN0YW5jZW9mIHRBfHxlIGluc3RhbmNlb2YgbkEpJiZ0LmZpcmVzdG9yZT09PWUuZmlyZXN0b3JlJiZ0LnBhdGg9PT1lLnBhdGgmJnQuX2NvbnZlcnRlcj09PWUuX2NvbnZlcnRlcn1mdW5jdGlvbiBsQSh0LGUpe3JldHVybiB0PVpvKHQpLGU9Wm8oZSksdCBpbnN0YW5jZW9mIGVBJiZlIGluc3RhbmNlb2YgZUEmJnQuZmlyZXN0b3JlPT09ZS5maXJlc3RvcmUmJk1iKHQuX3F1ZXJ5LGUuX3F1ZXJ5KSYmdC5fY29udmVydGVyPT09ZS5fY29udmVydGVyfXZhciBmQT0oT2JqZWN0LmRlZmluZVByb3BlcnR5KHBBLnByb3RvdHlwZSwiaXNTaHV0dGluZ0Rvd24iLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5kY30sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxwQS5wcm90b3R5cGUuZW5xdWV1ZUFuZEZvcmdldD1mdW5jdGlvbih0KXt0aGlzLmVucXVldWUodCl9LHBBLnByb3RvdHlwZS5lbnF1ZXVlQW5kRm9yZ2V0RXZlbldoaWxlUmVzdHJpY3RlZD1mdW5jdGlvbih0KXt0aGlzLkVjKCksdGhpcy5UYyh0KX0scEEucHJvdG90eXBlLmVudGVyUmVzdHJpY3RlZE1vZGU9ZnVuY3Rpb24oKXt2YXIgdDt0aGlzLmRjfHwodGhpcy5kYz0hMCwodD1tUygpKSYmImZ1bmN0aW9uIj09dHlwZW9mIHQucmVtb3ZlRXZlbnRMaXN0ZW5lciYmdC5yZW1vdmVFdmVudExpc3RlbmVyKCJ2aXNpYmlsaXR5Y2hhbmdlIix0aGlzLmdjKSl9LHBBLnByb3RvdHlwZS5lbnF1ZXVlPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLkVjKCksdGhpcy5kYz9uZXcgUHJvbWlzZShmdW5jdGlvbih0KXt9KTp0aGlzLlRjKHQpfSxwQS5wcm90b3R5cGUuZW5xdWV1ZVJldHJ5YWJsZT1mdW5jdGlvbih0KXt2YXIgZT10aGlzO3RoaXMuZW5xdWV1ZUFuZEZvcmdldChmdW5jdGlvbigpe3JldHVybiBlLmZjLnB1c2godCksZS5JYygpfSl9LHBBLnByb3RvdHlwZS5JYz1mdW5jdGlvbigpe3JldHVybiAkaSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgZSxuPXRoaXM7cmV0dXJuIFppKHRoaXMsZnVuY3Rpb24odCl7c3dpdGNoKHQubGFiZWwpe2Nhc2UgMDppZigwPT09dGhpcy5mYy5sZW5ndGgpcmV0dXJuWzMsNV07dC5sYWJlbD0xO2Nhc2UgMTpyZXR1cm4gdC50cnlzLnB1c2goWzEsMywsNF0pLFs0LHRoaXMuZmNbMF0oKV07Y2FzZSAyOnJldHVybiB0LnNlbnQoKSx0aGlzLmZjLnNoaWZ0KCksdGhpcy5aaS5yZXNldCgpLFszLDRdO2Nhc2UgMzppZighYkkoZT10LnNlbnQoKSkpdGhyb3cgZTtyZXR1cm4gVnkoIkFzeW5jUXVldWUiLCJPcGVyYXRpb24gZmFpbGVkIHdpdGggcmV0cnlhYmxlIGVycm9yOiAiK2UpLFszLDRdO2Nhc2UgNDowPHRoaXMuZmMubGVuZ3RoJiZ0aGlzLlppLmppKGZ1bmN0aW9uKCl7cmV0dXJuIG4uSWMoKX0pLHQubGFiZWw9NTtjYXNlIDU6cmV0dXJuWzJdfX0pfSl9LHBBLnByb3RvdHlwZS5UYz1mdW5jdGlvbih0KXt2YXIgcj10aGlzLGU9dGhpcy5sYy50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIHIubWM9ITAsdCgpLmNhdGNoKGZ1bmN0aW9uKHQpe3Rocm93IHIuX2M9dCxyLm1jPSExLEJ5KCJJTlRFUk5BTCBVTkhBTkRMRUQgRVJST1I6ICIsKG49KGU9dCkubWVzc2FnZXx8IiIsbj1lLnN0YWNrP2Uuc3RhY2suaW5jbHVkZXMoZS5tZXNzYWdlKT9lLnN0YWNrOmUubWVzc2FnZSsiXG4iK2Uuc3RhY2s6bikpLHQ7dmFyIGUsbn0pLnRoZW4oZnVuY3Rpb24odCl7cmV0dXJuIHIubWM9ITEsdH0pfSk7cmV0dXJuIHRoaXMubGM9ZX0scEEucHJvdG90eXBlLmVucXVldWVBZnRlckRlbGF5PWZ1bmN0aW9uKHQsZSxuKXt2YXIgcj10aGlzO3RoaXMuRWMoKSwtMTx0aGlzLnljLmluZGV4T2YodCkmJihlPTApO249dEMuY3JlYXRlQW5kU2NoZWR1bGUodGhpcyx0LGUsbixmdW5jdGlvbih0KXtyZXR1cm4gci5BYyh0KX0pO3JldHVybiB0aGlzLndjLnB1c2gobiksbn0scEEucHJvdG90eXBlLkVjPWZ1bmN0aW9uKCl7dGhpcy5fYyYmSHkoKX0scEEucHJvdG90eXBlLnZlcmlmeU9wZXJhdGlvbkluUHJvZ3Jlc3M9ZnVuY3Rpb24oKXt9LHBBLnByb3RvdHlwZS5SYz1mdW5jdGlvbigpe3JldHVybiAkaSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgZTtyZXR1cm4gWmkodGhpcyxmdW5jdGlvbih0KXtzd2l0Y2godC5sYWJlbCl7Y2FzZSAwOnJldHVybls0LGU9dGhpcy5sY107Y2FzZSAxOnQuc2VudCgpLHQubGFiZWw9MjtjYXNlIDI6aWYoZSE9PXRoaXMubGMpcmV0dXJuWzMsMF07dC5sYWJlbD0zO2Nhc2UgMzpyZXR1cm5bMl19fSl9KX0scEEucHJvdG90eXBlLmJjPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0wLG49dGhpcy53YztlPG4ubGVuZ3RoO2UrKylpZihuW2VdLnRpbWVySWQ9PT10KXJldHVybiEwO3JldHVybiExfSxwQS5wcm90b3R5cGUudmM9ZnVuY3Rpb24ocil7dmFyIGk9dGhpcztyZXR1cm4gdGhpcy5SYygpLnRoZW4oZnVuY3Rpb24oKXtpLndjLnNvcnQoZnVuY3Rpb24odCxlKXtyZXR1cm4gdC50YXJnZXRUaW1lTXMtZS50YXJnZXRUaW1lTXN9KTtmb3IodmFyIHQ9MCxlPWkud2M7dDxlLmxlbmd0aDt0Kyspe3ZhciBuPWVbdF07aWYobi5za2lwRGVsYXkoKSwiYWxsIiE9PXImJm4udGltZXJJZD09PXIpYnJlYWt9cmV0dXJuIGkuUmMoKX0pfSxwQS5wcm90b3R5cGUuUGM9ZnVuY3Rpb24odCl7dGhpcy55Yy5wdXNoKHQpfSxwQS5wcm90b3R5cGUuQWM9ZnVuY3Rpb24odCl7dD10aGlzLndjLmluZGV4T2YodCk7dGhpcy53Yy5zcGxpY2UodCwxKX0scEEpO2Z1bmN0aW9uIHBBKCl7dmFyIGU9dGhpczt0aGlzLmxjPVByb21pc2UucmVzb2x2ZSgpLHRoaXMuZmM9W10sdGhpcy5kYz0hMSx0aGlzLndjPVtdLHRoaXMuX2M9bnVsbCx0aGlzLm1jPSExLHRoaXMueWM9W10sdGhpcy5aaT1uZXcgRVModGhpcywiYXN5bmNfcXVldWVfcmV0cnkiKSx0aGlzLmdjPWZ1bmN0aW9uKCl7dmFyIHQ9bVMoKTt0JiZWeSgiQXN5bmNRdWV1ZSIsIlZpc2liaWxpdHkgc3RhdGUgY2hhbmdlZCB0byAiK3QudmlzaWJpbGl0eVN0YXRlKSxlLlppLkdpKCl9O3ZhciB0PW1TKCk7dCYmImZ1bmN0aW9uIj09dHlwZW9mIHQuYWRkRXZlbnRMaXN0ZW5lciYmdC5hZGRFdmVudExpc3RlbmVyKCJ2aXNpYmlsaXR5Y2hhbmdlIix0aGlzLmdjKX1mdW5jdGlvbiBkQShpKXtyZXR1cm4gZnVuY3Rpb24oKXtpZigib2JqZWN0Ij09dHlwZW9mIGkmJm51bGwhPT1pKWZvcih2YXIgdD1pLGU9MCxuPVsibmV4dCIsImVycm9yIiwiY29tcGxldGUiXTtlPG4ubGVuZ3RoO2UrKyl7dmFyIHI9bltlXTtpZihyIGluIHQmJiJmdW5jdGlvbiI9PXR5cGVvZiB0W3JdKXJldHVybiAxfX0oKX12YXIgdkEsZ0E9KGJBLnByb3RvdHlwZS5vblByb2dyZXNzPWZ1bmN0aW9uKHQsZSxuKXt0aGlzLl9wcm9ncmVzc09ic2VydmVyPXtuZXh0OnQsZXJyb3I6ZSxjb21wbGV0ZTpufX0sYkEucHJvdG90eXBlLmNhdGNoPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl90YXNrQ29tcGxldGlvblJlc29sdmVyLnByb21pc2UuY2F0Y2godCl9LGJBLnByb3RvdHlwZS50aGVuPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMuX3Rhc2tDb21wbGV0aW9uUmVzb2x2ZXIucHJvbWlzZS50aGVuKHQsZSl9LGJBLnByb3RvdHlwZS5fY29tcGxldGVXaXRoPWZ1bmN0aW9uKHQpe3RoaXMuX3VwZGF0ZVByb2dyZXNzKHQpLHRoaXMuX3Byb2dyZXNzT2JzZXJ2ZXIuY29tcGxldGUmJnRoaXMuX3Byb2dyZXNzT2JzZXJ2ZXIuY29tcGxldGUoKSx0aGlzLl90YXNrQ29tcGxldGlvblJlc29sdmVyLnJlc29sdmUodCl9LGJBLnByb3RvdHlwZS5fZmFpbFdpdGg9ZnVuY3Rpb24odCl7dGhpcy5fbGFzdFByb2dyZXNzLnRhc2tTdGF0ZT0iRXJyb3IiLHRoaXMuX3Byb2dyZXNzT2JzZXJ2ZXIubmV4dCYmdGhpcy5fcHJvZ3Jlc3NPYnNlcnZlci5uZXh0KHRoaXMuX2xhc3RQcm9ncmVzcyksdGhpcy5fcHJvZ3Jlc3NPYnNlcnZlci5lcnJvciYmdGhpcy5fcHJvZ3Jlc3NPYnNlcnZlci5lcnJvcih0KSx0aGlzLl90YXNrQ29tcGxldGlvblJlc29sdmVyLnJlamVjdCh0KX0sYkEucHJvdG90eXBlLl91cGRhdGVQcm9ncmVzcz1mdW5jdGlvbih0KXt0aGlzLl9sYXN0UHJvZ3Jlc3M9dCx0aGlzLl9wcm9ncmVzc09ic2VydmVyLm5leHQmJnRoaXMuX3Byb2dyZXNzT2JzZXJ2ZXIubmV4dCh0KX0sYkEpLHlBPShYaShtQSx2QT1aTiksbUEucHJvdG90eXBlLl90ZXJtaW5hdGU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fZmlyZXN0b3JlQ2xpZW50fHxfQSh0aGlzKSx0aGlzLl9maXJlc3RvcmVDbGllbnQudGVybWluYXRlKCl9LG1BKTtmdW5jdGlvbiBtQSh0LGUpe3ZhciBuPXRoaXM7cmV0dXJuKG49dkEuY2FsbCh0aGlzLHQsZSl8fHRoaXMpLl9xdWV1ZT1uZXcgZkEsbi5fcGVyc2lzdGVuY2VLZXk9Im5hbWUiaW4gdD90Lm5hbWU6IltERUZBVUxUXSIsbn1mdW5jdGlvbiBiQSgpe3RoaXMuX3Byb2dyZXNzT2JzZXJ2ZXI9e30sdGhpcy5fdGFza0NvbXBsZXRpb25SZXNvbHZlcj1uZXcgYUksdGhpcy5fbGFzdFByb2dyZXNzPXt0YXNrU3RhdGU6IlJ1bm5pbmciLHRvdGFsQnl0ZXM6MCx0b3RhbERvY3VtZW50czowLGJ5dGVzTG9hZGVkOjAsZG9jdW1lbnRzTG9hZGVkOjB9fWZ1bmN0aW9uIHdBKHQpe3JldHVybiB0Ll9maXJlc3RvcmVDbGllbnR8fF9BKHQpLHQuX2ZpcmVzdG9yZUNsaWVudC52ZXJpZnlOb3RUZXJtaW5hdGVkKCksdC5fZmlyZXN0b3JlQ2xpZW50fWZ1bmN0aW9uIF9BKHQpe3ZhciBlLG4scixpPXQuX2ZyZWV6ZVNldHRpbmdzKCksaT0oZT10Ll9kYXRhYmFzZUlkLG49KG51bGw9PT0ocj10Ll9hcHApfHx2b2lkIDA9PT1yP3ZvaWQgMDpyLm9wdGlvbnMuYXBwSWQpfHwiIixyPXQuX3BlcnNpc3RlbmNlS2V5LG5ldyBQTihlLG4scixpLmhvc3QsaS5zc2wsaS5leHBlcmltZW50YWxGb3JjZUxvbmdQb2xsaW5nLGkuZXhwZXJpbWVudGFsQXV0b0RldGVjdExvbmdQb2xsaW5nKSk7dC5fZmlyZXN0b3JlQ2xpZW50PW5ldyBwTih0Ll9jcmVkZW50aWFscyx0Ll9xdWV1ZSxpKX1mdW5jdGlvbiBJQShyLGksbyl7dmFyIHQ9dGhpcyxzPW5ldyBhSTtyZXR1cm4gci5hc3luY1F1ZXVlLmVucXVldWUoZnVuY3Rpb24oKXtyZXR1cm4gJGkodCx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIG47cmV0dXJuIFppKHRoaXMsZnVuY3Rpb24odCl7c3dpdGNoKHQubGFiZWwpe2Nhc2UgMDpyZXR1cm4gdC50cnlzLnB1c2goWzAsMywsNF0pLFs0LGJOKHIsbyldO2Nhc2UgMTpyZXR1cm4gdC5zZW50KCksWzQsd04ocixpKV07Y2FzZSAyOnJldHVybiB0LnNlbnQoKSxzLnJlc29sdmUoKSxbMyw0XTtjYXNlIDM6aWYoISgiRmlyZWJhc2VFcnJvciI9PT0oZT1uPXQuc2VudCgpKS5uYW1lP2UuY29kZT09PU15LkZBSUxFRF9QUkVDT05ESVRJT058fGUuY29kZT09PU15LlVOSU1QTEVNRU5URUQ6ISgidW5kZWZpbmVkIiE9dHlwZW9mIERPTUV4Y2VwdGlvbiYmZSBpbnN0YW5jZW9mIERPTUV4Y2VwdGlvbil8fDIyPT09ZS5jb2RlfHwyMD09PWUuY29kZXx8MTE9PT1lLmNvZGUpKXRocm93IG47cmV0dXJuIGNvbnNvbGUud2FybigiRXJyb3IgZW5hYmxpbmcgb2ZmbGluZSBwZXJzaXN0ZW5jZS4gRmFsbGluZyBiYWNrIHRvIHBlcnNpc3RlbmNlIGRpc2FibGVkOiAiK24pLHMucmVqZWN0KG4pLFszLDRdO2Nhc2UgNDpyZXR1cm5bMl19dmFyIGV9KX0pfSkudGhlbihmdW5jdGlvbigpe3JldHVybiBzLnByb21pc2V9KX1mdW5jdGlvbiBUQSh0KXtpZih0Ll9pbml0aWFsaXplZHx8dC5fdGVybWluYXRlZCl0aHJvdyBuZXcgRnkoTXkuRkFJTEVEX1BSRUNPTkRJVElPTiwiRmlyZXN0b3JlIGhhcyBhbHJlYWR5IGJlZW4gc3RhcnRlZCBhbmQgcGVyc2lzdGVuY2UgY2FuIG5vIGxvbmdlciBiZSBlbmFibGVkLiBZb3UgY2FuIG9ubHkgZW5hYmxlIHBlcnNpc3RlbmNlIGJlZm9yZSBjYWxsaW5nIGFueSBvdGhlciBtZXRob2RzIG9uIGEgRmlyZXN0b3JlIG9iamVjdC4iKX12YXIgRUE9KExBLnByb3RvdHlwZS5pc0VxdWFsPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9pbnRlcm5hbFBhdGguaXNFcXVhbCh0Ll9pbnRlcm5hbFBhdGgpfSxMQSksU0E9KHhBLmZyb21CYXNlNjRTdHJpbmc9ZnVuY3Rpb24odCl7dHJ5e3JldHVybiBuZXcgeEEobG0uZnJvbUJhc2U2NFN0cmluZyh0KSl9Y2F0Y2godCl7dGhyb3cgbmV3IEZ5KE15LklOVkFMSURfQVJHVU1FTlQsIkZhaWxlZCB0byBjb25zdHJ1Y3QgZGF0YSBmcm9tIEJhc2U2NCBzdHJpbmc6ICIrdCl9fSx4QS5mcm9tVWludDhBcnJheT1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IHhBKGxtLmZyb21VaW50OEFycmF5KHQpKX0seEEucHJvdG90eXBlLnRvQmFzZTY0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2J5dGVTdHJpbmcudG9CYXNlNjQoKX0seEEucHJvdG90eXBlLnRvVWludDhBcnJheT1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9ieXRlU3RyaW5nLnRvVWludDhBcnJheSgpfSx4QS5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4iQnl0ZXMoYmFzZTY0OiAiK3RoaXMudG9CYXNlNjQoKSsiKSJ9LHhBLnByb3RvdHlwZS5pc0VxdWFsPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9ieXRlU3RyaW5nLmlzRXF1YWwodC5fYnl0ZVN0cmluZyl9LHhBKSxDQT1mdW5jdGlvbih0KXt0aGlzLl9tZXRob2ROYW1lPXR9LE5BPShPYmplY3QuZGVmaW5lUHJvcGVydHkoREEucHJvdG90eXBlLCJsYXRpdHVkZSIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9sYXR9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KERBLnByb3RvdHlwZSwibG9uZ2l0dWRlIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2xvbmd9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksREEucHJvdG90eXBlLmlzRXF1YWw9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX2xhdD09PXQuX2xhdCYmdGhpcy5fbG9uZz09PXQuX2xvbmd9LERBLnByb3RvdHlwZS50b0pTT049ZnVuY3Rpb24oKXtyZXR1cm57bGF0aXR1ZGU6dGhpcy5fbGF0LGxvbmdpdHVkZTp0aGlzLl9sb25nfX0sREEucHJvdG90eXBlLl9jb21wYXJlVG89ZnVuY3Rpb24odCl7cmV0dXJuIFl5KHRoaXMuX2xhdCx0Ll9sYXQpfHxZeSh0aGlzLl9sb25nLHQuX2xvbmcpfSxEQSksQUE9L15fXy4qX18kLyxrQT0oT0EucHJvdG90eXBlLnRvTXV0YXRpb249ZnVuY3Rpb24odCxlKXtyZXR1cm4gbnVsbCE9PXRoaXMuZmllbGRNYXNrP25ldyBtdyh0LHRoaXMuZGF0YSx0aGlzLmZpZWxkTWFzayxlLHRoaXMuZmllbGRUcmFuc2Zvcm1zKTpuZXcgeXcodCx0aGlzLmRhdGEsZSx0aGlzLmZpZWxkVHJhbnNmb3Jtcyl9LE9BKSxSQT0oUEEucHJvdG90eXBlLnRvTXV0YXRpb249ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IG13KHQsdGhpcy5kYXRhLHRoaXMuZmllbGRNYXNrLGUsdGhpcy5maWVsZFRyYW5zZm9ybXMpfSxQQSk7ZnVuY3Rpb24gUEEodCxlLG4pe3RoaXMuZGF0YT10LHRoaXMuZmllbGRNYXNrPWUsdGhpcy5maWVsZFRyYW5zZm9ybXM9bn1mdW5jdGlvbiBPQSh0LGUsbil7dGhpcy5kYXRhPXQsdGhpcy5maWVsZE1hc2s9ZSx0aGlzLmZpZWxkVHJhbnNmb3Jtcz1ufWZ1bmN0aW9uIERBKHQsZSl7aWYoIWlzRmluaXRlKHQpfHx0PC05MHx8OTA8dCl0aHJvdyBuZXcgRnkoTXkuSU5WQUxJRF9BUkdVTUVOVCwiTGF0aXR1ZGUgbXVzdCBiZSBhIG51bWJlciBiZXR3ZWVuIC05MCBhbmQgOTAsIGJ1dCB3YXM6ICIrdCk7aWYoIWlzRmluaXRlKGUpfHxlPC0xODB8fDE4MDxlKXRocm93IG5ldyBGeShNeS5JTlZBTElEX0FSR1VNRU5ULCJMb25naXR1ZGUgbXVzdCBiZSBhIG51bWJlciBiZXR3ZWVuIC0xODAgYW5kIDE4MCwgYnV0IHdhczogIitlKTt0aGlzLl9sYXQ9dCx0aGlzLl9sb25nPWV9ZnVuY3Rpb24geEEodCl7dGhpcy5fYnl0ZVN0cmluZz10fWZ1bmN0aW9uIExBKCl7Zm9yKHZhciB0PVtdLGU9MDtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXRbZV09YXJndW1lbnRzW2VdO2Zvcih2YXIgbj0wO248dC5sZW5ndGg7KytuKWlmKDA9PT10W25dLmxlbmd0aCl0aHJvdyBuZXcgRnkoTXkuSU5WQUxJRF9BUkdVTUVOVCwiSW52YWxpZCBmaWVsZCBuYW1lIGF0IGFyZ3VtZW50ICQoaSArIDEpLiBGaWVsZCBuYW1lcyBtdXN0IG5vdCBiZSBlbXB0eS4iKTt0aGlzLl9pbnRlcm5hbFBhdGg9bmV3IGNtKHQpfWZ1bmN0aW9uIE1BKHQpe3N3aXRjaCh0KXtjYXNlIDA6Y2FzZSAyOmNhc2UgMTpyZXR1cm4gMTtjYXNlIDM6Y2FzZSA0OnJldHVybjtkZWZhdWx0OnRocm93IEh5KCl9fXZhciBGQT0oT2JqZWN0LmRlZmluZVByb3BlcnR5KHFBLnByb3RvdHlwZSwicGF0aCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnNldHRpbmdzLnBhdGh9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHFBLnByb3RvdHlwZSwiU2MiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zZXR0aW5ncy5TY30sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxxQS5wcm90b3R5cGUuRGM9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBxQShPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdGhpcy5zZXR0aW5ncyksdCksdGhpcy5kYXRhYmFzZUlkLHRoaXMuUix0aGlzLmlnbm9yZVVuZGVmaW5lZFByb3BlcnRpZXMsdGhpcy5maWVsZFRyYW5zZm9ybXMsdGhpcy5maWVsZE1hc2spfSxxQS5wcm90b3R5cGUuQ2M9ZnVuY3Rpb24odCl7dmFyIGU9bnVsbD09PShlPXRoaXMucGF0aCl8fHZvaWQgMD09PWU/dm9pZCAwOmUuY2hpbGQodCksZT10aGlzLkRjKHtwYXRoOmUsTmM6ITF9KTtyZXR1cm4gZS54Yyh0KSxlfSxxQS5wcm90b3R5cGUuRmM9ZnVuY3Rpb24odCl7dmFyIGUsdD1udWxsPT09KGU9dGhpcy5wYXRoKXx8dm9pZCAwPT09ZT92b2lkIDA6ZS5jaGlsZCh0KSx0PXRoaXMuRGMoe3BhdGg6dCxOYzohMX0pO3JldHVybiB0LlZjKCksdH0scUEucHJvdG90eXBlLmtjPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLkRjKHtwYXRoOnZvaWQgMCxOYzohMH0pfSxxQS5wcm90b3R5cGUuT2M9ZnVuY3Rpb24odCl7cmV0dXJuIHZrKHQsdGhpcy5zZXR0aW5ncy5tZXRob2ROYW1lLHRoaXMuc2V0dGluZ3MuJGN8fCExLHRoaXMucGF0aCx0aGlzLnNldHRpbmdzLk1jKX0scUEucHJvdG90eXBlLmNvbnRhaW5zPWZ1bmN0aW9uKGUpe3JldHVybiB2b2lkIDAhPT10aGlzLmZpZWxkTWFzay5maW5kKGZ1bmN0aW9uKHQpe3JldHVybiBlLmlzUHJlZml4T2YodCl9KXx8dm9pZCAwIT09dGhpcy5maWVsZFRyYW5zZm9ybXMuZmluZChmdW5jdGlvbih0KXtyZXR1cm4gZS5pc1ByZWZpeE9mKHQuZmllbGQpfSl9LHFBLnByb3RvdHlwZS5WYz1mdW5jdGlvbigpe2lmKHRoaXMucGF0aClmb3IodmFyIHQ9MDt0PHRoaXMucGF0aC5sZW5ndGg7dCsrKXRoaXMueGModGhpcy5wYXRoLmdldCh0KSl9LHFBLnByb3RvdHlwZS54Yz1mdW5jdGlvbih0KXtpZigwPT09dC5sZW5ndGgpdGhyb3cgdGhpcy5PYygiRG9jdW1lbnQgZmllbGRzIG11c3Qgbm90IGJlIGVtcHR5Iik7aWYoTUEodGhpcy5TYykmJkFBLnRlc3QodCkpdGhyb3cgdGhpcy5PYygnRG9jdW1lbnQgZmllbGRzIGNhbm5vdCBiZWdpbiBhbmQgZW5kIHdpdGggIl9fIicpfSxxQSksVUE9KGpBLnByb3RvdHlwZS5MYz1mdW5jdGlvbih0LGUsbixyKXtyZXR1cm4gdm9pZCAwPT09ciYmKHI9ITEpLG5ldyBGQSh7U2M6dCxtZXRob2ROYW1lOmUsTWM6bixwYXRoOmNtLmVtcHR5UGF0aCgpLE5jOiExLCRjOnJ9LHRoaXMuZGF0YWJhc2VJZCx0aGlzLlIsdGhpcy5pZ25vcmVVbmRlZmluZWRQcm9wZXJ0aWVzKX0sakEpO2Z1bmN0aW9uIGpBKHQsZSxuKXt0aGlzLmRhdGFiYXNlSWQ9dCx0aGlzLmlnbm9yZVVuZGVmaW5lZFByb3BlcnRpZXM9ZSx0aGlzLlI9bnx8YlModCl9ZnVuY3Rpb24gcUEodCxlLG4scixpLG8pe3RoaXMuc2V0dGluZ3M9dCx0aGlzLmRhdGFiYXNlSWQ9ZSx0aGlzLlI9bix0aGlzLmlnbm9yZVVuZGVmaW5lZFByb3BlcnRpZXM9cix2b2lkIDA9PT1pJiZ0aGlzLlZjKCksdGhpcy5maWVsZFRyYW5zZm9ybXM9aXx8W10sdGhpcy5maWVsZE1hc2s9b3x8W119ZnVuY3Rpb24gVkEodCl7dmFyIGU9dC5fZnJlZXplU2V0dGluZ3MoKSxuPWJTKHQuX2RhdGFiYXNlSWQpO3JldHVybiBuZXcgVUEodC5fZGF0YWJhc2VJZCwhIWUuaWdub3JlVW5kZWZpbmVkUHJvcGVydGllcyxuKX1mdW5jdGlvbiBCQSh0LGUsbixyLGksbyl7dm9pZCAwPT09byYmKG89e30pO3ZhciBzPXQuTGMoby5tZXJnZXx8by5tZXJnZUZpZWxkcz8yOjAsZSxuLGkpO2xrKCJEYXRhIG11c3QgYmUgYW4gb2JqZWN0LCBidXQgaXQgd2FzOiIscyxyKTt2YXIgYSx1LHI9Y2socixzKTtpZihvLm1lcmdlKWE9bmV3IGhtKHMuZmllbGRNYXNrKSx1PXMuZmllbGRUcmFuc2Zvcm1zO2Vsc2UgaWYoby5tZXJnZUZpZWxkcyl7Zm9yKHZhciBjPVtdLGg9MCxsPW8ubWVyZ2VGaWVsZHM7aDxsLmxlbmd0aDtoKyspe3ZhciBmPWZrKGUsbFtoXSxuKTtpZighcy5jb250YWlucyhmKSl0aHJvdyBuZXcgRnkoTXkuSU5WQUxJRF9BUkdVTUVOVCwiRmllbGQgJyIrZisiJyBpcyBzcGVjaWZpZWQgaW4geW91ciBmaWVsZCBtYXNrIGJ1dCBtaXNzaW5nIGZyb20geW91ciBpbnB1dCBkYXRhLiIpO2drKGMsZil8fGMucHVzaChmKX1hPW5ldyBobShjKSx1PXMuZmllbGRUcmFuc2Zvcm1zLmZpbHRlcihmdW5jdGlvbih0KXtyZXR1cm4gYS5jb3ZlcnModC5maWVsZCl9KX1lbHNlIGE9bnVsbCx1PXMuZmllbGRUcmFuc2Zvcm1zO3JldHVybiBuZXcga0EobmV3IHFtKHIpLGEsdSl9dmFyIEtBLFdBPShYaShIQSxLQT1DQSksSEEucHJvdG90eXBlLl90b0ZpZWxkVHJhbnNmb3JtPWZ1bmN0aW9uKHQpe2lmKDIhPT10LlNjKXRocm93IDE9PT10LlNjP3QuT2ModGhpcy5fbWV0aG9kTmFtZSsiKCkgY2FuIG9ubHkgYXBwZWFyIGF0IHRoZSB0b3AgbGV2ZWwgb2YgeW91ciB1cGRhdGUgZGF0YSIpOnQuT2ModGhpcy5fbWV0aG9kTmFtZSsiKCkgY2Fubm90IGJlIHVzZWQgd2l0aCBzZXQoKSB1bmxlc3MgeW91IHBhc3Mge21lcmdlOnRydWV9Iik7cmV0dXJuIHQuZmllbGRNYXNrLnB1c2godC5wYXRoKSxudWxsfSxIQS5wcm90b3R5cGUuaXNFcXVhbD1mdW5jdGlvbih0KXtyZXR1cm4gdCBpbnN0YW5jZW9mIEhBfSxIQSk7ZnVuY3Rpb24gSEEoKXtyZXR1cm4gbnVsbCE9PUtBJiZLQS5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9ZnVuY3Rpb24gR0EodCxlLG4pe3JldHVybiBuZXcgRkEoe1NjOjMsTWM6ZS5zZXR0aW5ncy5NYyxtZXRob2ROYW1lOnQuX21ldGhvZE5hbWUsTmM6bn0sZS5kYXRhYmFzZUlkLGUuUixlLmlnbm9yZVVuZGVmaW5lZFByb3BlcnRpZXMpfXZhciB6QSxRQSxZQSxYQSxKQT0oWGkoaWssWEE9Q0EpLGlrLnByb3RvdHlwZS5fdG9GaWVsZFRyYW5zZm9ybT1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IHV3KHQucGF0aCxuZXcgemIpfSxpay5wcm90b3R5cGUuaXNFcXVhbD1mdW5jdGlvbih0KXtyZXR1cm4gdCBpbnN0YW5jZW9mIGlrfSxpayksJEE9KFhpKHJrLFlBPUNBKSxyay5wcm90b3R5cGUuX3RvRmllbGRUcmFuc2Zvcm09ZnVuY3Rpb24odCl7dmFyIGU9R0EodGhpcyx0LCEwKSxuPXRoaXMuQmMubWFwKGZ1bmN0aW9uKHQpe3JldHVybiB1ayh0LGUpfSksbj1uZXcgUWIobik7cmV0dXJuIG5ldyB1dyh0LnBhdGgsbil9LHJrLnByb3RvdHlwZS5pc0VxdWFsPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzPT09dH0scmspLFpBPShYaShuayxRQT1DQSksbmsucHJvdG90eXBlLl90b0ZpZWxkVHJhbnNmb3JtPWZ1bmN0aW9uKHQpe3ZhciBlPUdBKHRoaXMsdCwhMCksbj10aGlzLkJjLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gdWsodCxlKX0pLG49bmV3IFpiKG4pO3JldHVybiBuZXcgdXcodC5wYXRoLG4pfSxuay5wcm90b3R5cGUuaXNFcXVhbD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcz09PXR9LG5rKSx0az0oWGkoZWssekE9Q0EpLGVrLnByb3RvdHlwZS5fdG9GaWVsZFRyYW5zZm9ybT1mdW5jdGlvbih0KXt2YXIgZT1uZXcgcncodC5SLEtiKHQuUix0aGlzLnFjKSk7cmV0dXJuIG5ldyB1dyh0LnBhdGgsZSl9LGVrLnByb3RvdHlwZS5pc0VxdWFsPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzPT09dH0sZWspO2Z1bmN0aW9uIGVrKHQsZSl7dmFyIG49dGhpcztyZXR1cm4obj16QS5jYWxsKHRoaXMsdCl8fHRoaXMpLnFjPWUsbn1mdW5jdGlvbiBuayh0LGUpe3ZhciBuPXRoaXM7cmV0dXJuKG49UUEuY2FsbCh0aGlzLHQpfHx0aGlzKS5CYz1lLG59ZnVuY3Rpb24gcmsodCxlKXt2YXIgbj10aGlzO3JldHVybihuPVlBLmNhbGwodGhpcyx0KXx8dGhpcykuQmM9ZSxufWZ1bmN0aW9uIGlrKCl7cmV0dXJuIG51bGwhPT1YQSYmWEEuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzfWZ1bmN0aW9uIG9rKHQscixpLGUpe3ZhciBvPXQuTGMoMSxyLGkpO2xrKCJEYXRhIG11c3QgYmUgYW4gb2JqZWN0LCBidXQgaXQgd2FzOiIsbyxlKTt2YXIgcz1bXSxhPXFtLmVtcHR5KCk7cm0oZSxmdW5jdGlvbih0LGUpe3ZhciBuPWRrKHIsdCxpKTtlPVpvKGUpO3Q9by5GYyhuKTtlIGluc3RhbmNlb2YgV0E/cy5wdXNoKG4pOm51bGwhPSh0PXVrKGUsdCkpJiYocy5wdXNoKG4pLGEuc2V0KG4sdCkpfSk7ZT1uZXcgaG0ocyk7cmV0dXJuIG5ldyBSQShhLGUsby5maWVsZFRyYW5zZm9ybXMpfWZ1bmN0aW9uIHNrKHQsZSxuLHIsaSxvKXt2YXIgcz10LkxjKDEsZSxuKSxhPVtmayhlLHIsbildLHU9W2ldO2lmKG8ubGVuZ3RoJTIhPTApdGhyb3cgbmV3IEZ5KE15LklOVkFMSURfQVJHVU1FTlQsIkZ1bmN0aW9uICIrZSsiKCkgbmVlZHMgdG8gYmUgY2FsbGVkIHdpdGggYW4gZXZlbiBudW1iZXIgb2YgYXJndW1lbnRzIHRoYXQgYWx0ZXJuYXRlIGJldHdlZW4gZmllbGQgbmFtZXMgYW5kIHZhbHVlcy4iKTtmb3IodmFyIGM9MDtjPG8ubGVuZ3RoO2MrPTIpYS5wdXNoKGZrKGUsb1tjXSkpLHUucHVzaChvW2MrMV0pO2Zvcih2YXIgaCxsLGYscD1bXSxkPXFtLmVtcHR5KCksdj1hLmxlbmd0aC0xOzA8PXY7LS12KWdrKHAsYVt2XSl8fChoPWFbdl0sbD1abyhsPXVbdl0pLGY9cy5GYyhoKSxsIGluc3RhbmNlb2YgV0E/cC5wdXNoKGgpOm51bGwhPShmPXVrKGwsZikpJiYocC5wdXNoKGgpLGQuc2V0KGgsZikpKTtpPW5ldyBobShwKTtyZXR1cm4gbmV3IFJBKGQsaSxzLmZpZWxkVHJhbnNmb3Jtcyl9ZnVuY3Rpb24gYWsodCxlLG4scil7cmV0dXJuIHZvaWQgMD09PXImJihyPSExKSx1ayhuLHQuTGMocj80OjMsZSkpfWZ1bmN0aW9uIHVrKHMsdCl7aWYoaGsocz1abyhzKSkpcmV0dXJuIGxrKCJVbnN1cHBvcnRlZCBmaWVsZCB2YWx1ZToiLHQscyksY2socyx0KTtpZihzIGluc3RhbmNlb2YgQ0EpcmV0dXJuIGZ1bmN0aW9uKHQsZSl7aWYoIU1BKGUuU2MpKXRocm93IGUuT2ModC5fbWV0aG9kTmFtZSsiKCkgY2FuIG9ubHkgYmUgdXNlZCB3aXRoIHVwZGF0ZSgpIGFuZCBzZXQoKSIpO2lmKCFlLnBhdGgpdGhyb3cgZS5PYyh0Ll9tZXRob2ROYW1lKyIoKSBpcyBub3QgY3VycmVudGx5IHN1cHBvcnRlZCBpbnNpZGUgYXJyYXlzIik7dD10Ll90b0ZpZWxkVHJhbnNmb3JtKGUpO3QmJmUuZmllbGRUcmFuc2Zvcm1zLnB1c2godCl9KHMsdCksbnVsbDtpZih2b2lkIDA9PT1zJiZ0Lmlnbm9yZVVuZGVmaW5lZFByb3BlcnRpZXMpcmV0dXJuIG51bGw7aWYodC5wYXRoJiZ0LmZpZWxkTWFzay5wdXNoKHQucGF0aCkscyBpbnN0YW5jZW9mIEFycmF5KXtpZih0LnNldHRpbmdzLk5jJiY0IT09dC5TYyl0aHJvdyB0Lk9jKCJOZXN0ZWQgYXJyYXlzIGFyZSBub3Qgc3VwcG9ydGVkIik7cmV0dXJuIGZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1bXSxuPTAscj0wLGk9cztyPGkubGVuZ3RoO3IrKyl7dmFyIG89dWsoaVtyXSx0LmtjKG4pKTtudWxsPT1vJiYobz17bnVsbFZhbHVlOiJOVUxMX1ZBTFVFIn0pLGUucHVzaChvKSxuKyt9cmV0dXJue2FycmF5VmFsdWU6e3ZhbHVlczplfX19KHQpfXJldHVybiBmdW5jdGlvbih0LGUpe2lmKG51bGw9PT0odD1abyh0KSkpcmV0dXJue251bGxWYWx1ZToiTlVMTF9WQUxVRSJ9O2lmKCJudW1iZXIiPT10eXBlb2YgdClyZXR1cm4gS2IoZS5SLHQpO2lmKCJib29sZWFuIj09dHlwZW9mIHQpcmV0dXJue2Jvb2xlYW5WYWx1ZTp0fTtpZigic3RyaW5nIj09dHlwZW9mIHQpcmV0dXJue3N0cmluZ1ZhbHVlOnR9O2lmKHQgaW5zdGFuY2VvZiBEYXRlKXt2YXIgbj0keS5mcm9tRGF0ZSh0KTtyZXR1cm57dGltZXN0YW1wVmFsdWU6cF8oZS5SLG4pfX1pZih0IGluc3RhbmNlb2YgJHkpcmV0dXJuIG49bmV3ICR5KHQuc2Vjb25kcywxZTMqTWF0aC5mbG9vcih0Lm5hbm9zZWNvbmRzLzFlMykpLHt0aW1lc3RhbXBWYWx1ZTpwXyhlLlIsbil9O2lmKHQgaW5zdGFuY2VvZiBOQSlyZXR1cm57Z2VvUG9pbnRWYWx1ZTp7bGF0aXR1ZGU6dC5sYXRpdHVkZSxsb25naXR1ZGU6dC5sb25naXR1ZGV9fTtpZih0IGluc3RhbmNlb2YgU0EpcmV0dXJue2J5dGVzVmFsdWU6ZF8oZS5SLHQuX2J5dGVTdHJpbmcpfTtpZih0IGluc3RhbmNlb2YgdEEpe3ZhciBuPWUuZGF0YWJhc2VJZCxyPXQuZmlyZXN0b3JlLl9kYXRhYmFzZUlkO2lmKCFyLmlzRXF1YWwobikpdGhyb3cgZS5PYygiRG9jdW1lbnQgcmVmZXJlbmNlIGlzIGZvciBkYXRhYmFzZSAiK3IucHJvamVjdElkKyIvIityLmRhdGFiYXNlKyIgYnV0IHNob3VsZCBiZSBmb3IgZGF0YWJhc2UgIituLnByb2plY3RJZCsiLyIrbi5kYXRhYmFzZSk7cmV0dXJue3JlZmVyZW5jZVZhbHVlOmdfKHQuZmlyZXN0b3JlLl9kYXRhYmFzZUlkfHxlLmRhdGFiYXNlSWQsdC5fa2V5LnBhdGgpfX10aHJvdyBlLk9jKCJVbnN1cHBvcnRlZCBmaWVsZCB2YWx1ZTogIitRTih0KSl9KHMsdCl9ZnVuY3Rpb24gY2sodCxuKXt2YXIgcj17fTtyZXR1cm4gaW0odCk/bi5wYXRoJiYwPG4ucGF0aC5sZW5ndGgmJm4uZmllbGRNYXNrLnB1c2gobi5wYXRoKTpybSh0LGZ1bmN0aW9uKHQsZSl7ZT11ayhlLG4uQ2ModCkpO251bGwhPWUmJihyW3RdPWUpfSkse21hcFZhbHVlOntmaWVsZHM6cn19fWZ1bmN0aW9uIGhrKHQpe3JldHVybiEoIm9iamVjdCIhPXR5cGVvZiB0fHxudWxsPT09dHx8dCBpbnN0YW5jZW9mIEFycmF5fHx0IGluc3RhbmNlb2YgRGF0ZXx8dCBpbnN0YW5jZW9mICR5fHx0IGluc3RhbmNlb2YgTkF8fHQgaW5zdGFuY2VvZiBTQXx8dCBpbnN0YW5jZW9mIHRBfHx0IGluc3RhbmNlb2YgQ0EpfWZ1bmN0aW9uIGxrKHQsZSxuKXtpZighaGsobil8fCgib2JqZWN0IiE9dHlwZW9mKHI9bil8fG51bGw9PT1yfHxPYmplY3QuZ2V0UHJvdG90eXBlT2YocikhPT1PYmplY3QucHJvdG90eXBlJiZudWxsIT09T2JqZWN0LmdldFByb3RvdHlwZU9mKHIpKSl7bj1RTihuKTt0aHJvdyJhbiBvYmplY3QiPT09bj9lLk9jKHQrIiBhIGN1c3RvbSBvYmplY3QiKTplLk9jKHQrIiAiK24pfXZhciByfWZ1bmN0aW9uIGZrKHQsZSxuKXtpZigoZT1abyhlKSlpbnN0YW5jZW9mIEVBKXJldHVybiBlLl9pbnRlcm5hbFBhdGg7aWYoInN0cmluZyI9PXR5cGVvZiBlKXJldHVybiBkayh0LGUpO3Rocm93IHZrKCJGaWVsZCBwYXRoIGFyZ3VtZW50cyBtdXN0IGJlIG9mIHR5cGUgc3RyaW5nIG9yIEZpZWxkUGF0aC4iLHQsITEsdm9pZCAwLG4pfXZhciBwaz1uZXcgUmVnRXhwKCJbflxcKi9cXFtcXF1dIik7ZnVuY3Rpb24gZGsoZSxuLHIpe2lmKDA8PW4uc2VhcmNoKHBrKSl0aHJvdyB2aygiSW52YWxpZCBmaWVsZCBwYXRoICgiK24rIikuIFBhdGhzIG11c3Qgbm90IGNvbnRhaW4gJ34nLCAnKicsICcvJywgJ1snLCBvciAnXSciLGUsITEsdm9pZCAwLHIpO3RyeXtyZXR1cm4obmV3KEVBLmJpbmQuYXBwbHkoRUEsbm8oW3ZvaWQgMF0sbi5zcGxpdCgiLiIpKSkpKS5faW50ZXJuYWxQYXRofWNhdGNoKHQpe3Rocm93IHZrKCJJbnZhbGlkIGZpZWxkIHBhdGggKCIrbisiKS4gUGF0aHMgbXVzdCBub3QgYmUgZW1wdHksIGJlZ2luIHdpdGggJy4nLCBlbmQgd2l0aCAnLicsIG9yIGNvbnRhaW4gJy4uJyIsZSwhMSx2b2lkIDAscil9fWZ1bmN0aW9uIHZrKHQsZSxuLHIsaSl7dmFyIG89ciYmIXIuaXNFbXB0eSgpLHM9dm9pZCAwIT09aSxlPSJGdW5jdGlvbiAiK2UrIigpIGNhbGxlZCB3aXRoIGludmFsaWQgZGF0YSI7biYmKGUrPSIgKHZpYSBgdG9GaXJlc3RvcmUoKWApIik7bj0iIjtyZXR1cm4ob3x8cykmJihuKz0iIChmb3VuZCIsbyYmKG4rPSIgaW4gZmllbGQgIityKSxzJiYobis9IiBpbiBkb2N1bWVudCAiK2kpLG4rPSIpIiksbmV3IEZ5KE15LklOVkFMSURfQVJHVU1FTlQsKGUrPSIuICIpK3Qrbil9ZnVuY3Rpb24gZ2sodCxlKXtyZXR1cm4gdC5zb21lKGZ1bmN0aW9uKHQpe3JldHVybiB0LmlzRXF1YWwoZSl9KX12YXIgeWssbWs9KE9iamVjdC5kZWZpbmVQcm9wZXJ0eShfay5wcm90b3R5cGUsImlkIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2tleS5wYXRoLmxhc3RTZWdtZW50KCl9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KF9rLnByb3RvdHlwZSwicmVmIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIG5ldyB0QSh0aGlzLl9maXJlc3RvcmUsdGhpcy5fY29udmVydGVyLHRoaXMuX2tleSl9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksX2sucHJvdG90eXBlLmV4aXN0cz1mdW5jdGlvbigpe3JldHVybiBudWxsIT09dGhpcy5fZG9jdW1lbnR9LF9rLnByb3RvdHlwZS5kYXRhPWZ1bmN0aW9uKCl7aWYodGhpcy5fZG9jdW1lbnQpe2lmKHRoaXMuX2NvbnZlcnRlcil7dmFyIHQ9bmV3IGJrKHRoaXMuX2ZpcmVzdG9yZSx0aGlzLl91c2VyRGF0YVdyaXRlcix0aGlzLl9rZXksdGhpcy5fZG9jdW1lbnQsbnVsbCk7cmV0dXJuIHRoaXMuX2NvbnZlcnRlci5mcm9tRmlyZXN0b3JlKHQpfXJldHVybiB0aGlzLl91c2VyRGF0YVdyaXRlci5jb252ZXJ0VmFsdWUodGhpcy5fZG9jdW1lbnQuZGF0YS50b1Byb3RvKCkpfX0sX2sucHJvdG90eXBlLmdldD1mdW5jdGlvbih0KXtpZih0aGlzLl9kb2N1bWVudCl7dD10aGlzLl9kb2N1bWVudC5kYXRhLmZpZWxkKElrKCJEb2N1bWVudFNuYXBzaG90LmdldCIsdCkpO2lmKG51bGwhPT10KXJldHVybiB0aGlzLl91c2VyRGF0YVdyaXRlci5jb252ZXJ0VmFsdWUodCl9fSxfayksYms9KFhpKHdrLHlrPW1rKSx3ay5wcm90b3R5cGUuZGF0YT1mdW5jdGlvbigpe3JldHVybiB5ay5wcm90b3R5cGUuZGF0YS5jYWxsKHRoaXMpfSx3ayk7ZnVuY3Rpb24gd2soKXtyZXR1cm4gbnVsbCE9PXlrJiZ5ay5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9ZnVuY3Rpb24gX2sodCxlLG4scixpKXt0aGlzLl9maXJlc3RvcmU9dCx0aGlzLl91c2VyRGF0YVdyaXRlcj1lLHRoaXMuX2tleT1uLHRoaXMuX2RvY3VtZW50PXIsdGhpcy5fY29udmVydGVyPWl9ZnVuY3Rpb24gSWsodCxlKXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIGU/ZGsodCxlKTooZSBpbnN0YW5jZW9mIEVBP2U6ZS5fZGVsZWdhdGUpLl9pbnRlcm5hbFBhdGh9dmFyIFRrLEVrLFNrPShPay5wcm90b3R5cGUuaXNFcXVhbD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5oYXNQZW5kaW5nV3JpdGVzPT09dC5oYXNQZW5kaW5nV3JpdGVzJiZ0aGlzLmZyb21DYWNoZT09PXQuZnJvbUNhY2hlfSxPayksQ2s9KFhpKFBrLEVrPW1rKSxQay5wcm90b3R5cGUuZXhpc3RzPWZ1bmN0aW9uKCl7cmV0dXJuIEVrLnByb3RvdHlwZS5leGlzdHMuY2FsbCh0aGlzKX0sUGsucHJvdG90eXBlLmRhdGE9ZnVuY3Rpb24odCl7aWYodm9pZCAwPT09dCYmKHQ9e30pLHRoaXMuX2RvY3VtZW50KXtpZih0aGlzLl9jb252ZXJ0ZXIpe3ZhciBlPW5ldyBOayh0aGlzLl9maXJlc3RvcmUsdGhpcy5fdXNlckRhdGFXcml0ZXIsdGhpcy5fa2V5LHRoaXMuX2RvY3VtZW50LHRoaXMubWV0YWRhdGEsbnVsbCk7cmV0dXJuIHRoaXMuX2NvbnZlcnRlci5mcm9tRmlyZXN0b3JlKGUsdCl9cmV0dXJuIHRoaXMuX3VzZXJEYXRhV3JpdGVyLmNvbnZlcnRWYWx1ZSh0aGlzLl9kb2N1bWVudC5kYXRhLnRvUHJvdG8oKSx0LnNlcnZlclRpbWVzdGFtcHMpfX0sUGsucHJvdG90eXBlLmdldD1mdW5jdGlvbih0LGUpe2lmKHZvaWQgMD09PWUmJihlPXt9KSx0aGlzLl9kb2N1bWVudCl7dD10aGlzLl9kb2N1bWVudC5kYXRhLmZpZWxkKElrKCJEb2N1bWVudFNuYXBzaG90LmdldCIsdCkpO2lmKG51bGwhPT10KXJldHVybiB0aGlzLl91c2VyRGF0YVdyaXRlci5jb252ZXJ0VmFsdWUodCxlLnNlcnZlclRpbWVzdGFtcHMpfX0sUGspLE5rPShYaShSayxUaz1DayksUmsucHJvdG90eXBlLmRhdGE9ZnVuY3Rpb24odCl7cmV0dXJuIHZvaWQgMD09PXQmJih0PXt9KSxUay5wcm90b3R5cGUuZGF0YS5jYWxsKHRoaXMsdCl9LFJrKSxBaz0oT2JqZWN0LmRlZmluZVByb3BlcnR5KGtrLnByb3RvdHlwZSwiZG9jcyIse2dldDpmdW5jdGlvbigpe3ZhciBlPVtdO3JldHVybiB0aGlzLmZvckVhY2goZnVuY3Rpb24odCl7cmV0dXJuIGUucHVzaCh0KX0pLGV9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGtrLnByb3RvdHlwZSwic2l6ZSIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9zbmFwc2hvdC5kb2NzLnNpemV9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGtrLnByb3RvdHlwZSwiZW1wdHkiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gMD09PXRoaXMuc2l6ZX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxray5wcm90b3R5cGUuZm9yRWFjaD1mdW5jdGlvbihlLG4pe3ZhciByPXRoaXM7dGhpcy5fc25hcHNob3QuZG9jcy5mb3JFYWNoKGZ1bmN0aW9uKHQpe2UuY2FsbChuLG5ldyBOayhyLl9maXJlc3RvcmUsci5fdXNlckRhdGFXcml0ZXIsdC5rZXksdCxuZXcgU2soci5fc25hcHNob3QubXV0YXRlZEtleXMuaGFzKHQua2V5KSxyLl9zbmFwc2hvdC5mcm9tQ2FjaGUpLHIucXVlcnkuX2NvbnZlcnRlcikpfSl9LGtrLnByb3RvdHlwZS5kb2NDaGFuZ2VzPWZ1bmN0aW9uKHQpe3Q9ISEodD12b2lkIDA9PT10P3t9OnQpLmluY2x1ZGVNZXRhZGF0YUNoYW5nZXM7aWYodCYmdGhpcy5fc25hcHNob3QuZXhjbHVkZXNNZXRhZGF0YUNoYW5nZXMpdGhyb3cgbmV3IEZ5KE15LklOVkFMSURfQVJHVU1FTlQsIlRvIGluY2x1ZGUgbWV0YWRhdGEgY2hhbmdlcyB3aXRoIHlvdXIgZG9jdW1lbnQgY2hhbmdlcywgeW91IG11c3QgYWxzbyBwYXNzIHsgaW5jbHVkZU1ldGFkYXRhQ2hhbmdlczp0cnVlIH0gdG8gb25TbmFwc2hvdCgpLiIpO3JldHVybiB0aGlzLl9jYWNoZWRDaGFuZ2VzJiZ0aGlzLl9jYWNoZWRDaGFuZ2VzSW5jbHVkZU1ldGFkYXRhQ2hhbmdlcz09PXR8fCh0aGlzLl9jYWNoZWRDaGFuZ2VzPWZ1bmN0aW9uKGksZSl7aWYoaS5fc25hcHNob3Qub2xkRG9jcy5pc0VtcHR5KCkpe3ZhciBuPTA7cmV0dXJuIGkuX3NuYXBzaG90LmRvY0NoYW5nZXMubWFwKGZ1bmN0aW9uKHQpe3ZhciBlPW5ldyBOayhpLl9maXJlc3RvcmUsaS5fdXNlckRhdGFXcml0ZXIsdC5kb2Mua2V5LHQuZG9jLG5ldyBTayhpLl9zbmFwc2hvdC5tdXRhdGVkS2V5cy5oYXModC5kb2Mua2V5KSxpLl9zbmFwc2hvdC5mcm9tQ2FjaGUpLGkucXVlcnkuX2NvbnZlcnRlcik7cmV0dXJuIHQuZG9jLHt0eXBlOiJhZGRlZCIsZG9jOmUsb2xkSW5kZXg6LTEsbmV3SW5kZXg6bisrfX0pfXZhciBvPWkuX3NuYXBzaG90Lm9sZERvY3M7cmV0dXJuIGkuX3NuYXBzaG90LmRvY0NoYW5nZXMuZmlsdGVyKGZ1bmN0aW9uKHQpe3JldHVybiBlfHwzIT09dC50eXBlfSkubWFwKGZ1bmN0aW9uKHQpe3ZhciBlPW5ldyBOayhpLl9maXJlc3RvcmUsaS5fdXNlckRhdGFXcml0ZXIsdC5kb2Mua2V5LHQuZG9jLG5ldyBTayhpLl9zbmFwc2hvdC5tdXRhdGVkS2V5cy5oYXModC5kb2Mua2V5KSxpLl9zbmFwc2hvdC5mcm9tQ2FjaGUpLGkucXVlcnkuX2NvbnZlcnRlciksbj0tMSxyPS0xO3JldHVybiAwIT09dC50eXBlJiYobj1vLmluZGV4T2YodC5kb2Mua2V5KSxvPW8uZGVsZXRlKHQuZG9jLmtleSkpLDEhPT10LnR5cGUmJihyPShvPW8uYWRkKHQuZG9jKSkuaW5kZXhPZih0LmRvYy5rZXkpKSx7dHlwZTpmdW5jdGlvbih0KXtzd2l0Y2godCl7Y2FzZSAwOnJldHVybiJhZGRlZCI7Y2FzZSAyOmNhc2UgMzpyZXR1cm4ibW9kaWZpZWQiO2Nhc2UgMTpyZXR1cm4icmVtb3ZlZCI7ZGVmYXVsdDpyZXR1cm4gSHkoKX19KHQudHlwZSksZG9jOmUsb2xkSW5kZXg6bixuZXdJbmRleDpyfX0pfSh0aGlzLHQpLHRoaXMuX2NhY2hlZENoYW5nZXNJbmNsdWRlTWV0YWRhdGFDaGFuZ2VzPXQpLHRoaXMuX2NhY2hlZENoYW5nZXN9LGtrKTtmdW5jdGlvbiBrayh0LGUsbixyKXt0aGlzLl9maXJlc3RvcmU9dCx0aGlzLl91c2VyRGF0YVdyaXRlcj1lLHRoaXMuX3NuYXBzaG90PXIsdGhpcy5tZXRhZGF0YT1uZXcgU2soci5oYXNQZW5kaW5nV3JpdGVzLHIuZnJvbUNhY2hlKSx0aGlzLnF1ZXJ5PW59ZnVuY3Rpb24gUmsoKXtyZXR1cm4gbnVsbCE9PVRrJiZUay5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9ZnVuY3Rpb24gUGsodCxlLG4scixpLG8pe3ZhciBzPXRoaXM7cmV0dXJuKHM9RWsuY2FsbCh0aGlzLHQsZSxuLHIsbyl8fHRoaXMpLl9maXJlc3RvcmU9dCxzLl9maXJlc3RvcmVJbXBsPXQscy5tZXRhZGF0YT1pLHN9ZnVuY3Rpb24gT2sodCxlKXt0aGlzLmhhc1BlbmRpbmdXcml0ZXM9dCx0aGlzLmZyb21DYWNoZT1lfWZ1bmN0aW9uIERrKHQsZSl7cmV0dXJuIHQgaW5zdGFuY2VvZiBDayYmZSBpbnN0YW5jZW9mIENrP3QuX2ZpcmVzdG9yZT09PWUuX2ZpcmVzdG9yZSYmdC5fa2V5LmlzRXF1YWwoZS5fa2V5KSYmKG51bGw9PT10Ll9kb2N1bWVudD9udWxsPT09ZS5fZG9jdW1lbnQ6dC5fZG9jdW1lbnQuaXNFcXVhbChlLl9kb2N1bWVudCkpJiZ0Ll9jb252ZXJ0ZXI9PT1lLl9jb252ZXJ0ZXI6dCBpbnN0YW5jZW9mIEFrJiZlIGluc3RhbmNlb2YgQWsmJnQuX2ZpcmVzdG9yZT09PWUuX2ZpcmVzdG9yZSYmbEEodC5xdWVyeSxlLnF1ZXJ5KSYmdC5tZXRhZGF0YS5pc0VxdWFsKGUubWV0YWRhdGEpJiZ0Ll9zbmFwc2hvdC5pc0VxdWFsKGUuX3NuYXBzaG90KX1mdW5jdGlvbiB4ayh0KXtpZihrYih0KSYmMD09PXQuZXhwbGljaXRPcmRlckJ5Lmxlbmd0aCl0aHJvdyBuZXcgRnkoTXkuVU5JTVBMRU1FTlRFRCwibGltaXRUb0xhc3QoKSBxdWVyaWVzIHJlcXVpcmUgc3BlY2lmeWluZyBhdCBsZWFzdCBvbmUgb3JkZXJCeSgpIGNsYXVzZSIpfUdhPWZ1bmN0aW9uKCl7fTtmdW5jdGlvbiBMayh0KXtmb3IodmFyIGU9W10sbj0xO248YXJndW1lbnRzLmxlbmd0aDtuKyspZVtuLTFdPWFyZ3VtZW50c1tuXTtmb3IodmFyIHI9MCxpPWU7cjxpLmxlbmd0aDtyKyspdD1pW3JdLl9hcHBseSh0KTtyZXR1cm4gdH12YXIgTWssRmssVWssamsscWssVms9KFhpKFhrLHFrPUdhKSxYay5wcm90b3R5cGUuX2FwcGx5PWZ1bmN0aW9uKHQpe3ZhciBlPVZBKHQuZmlyZXN0b3JlKSxlPWZ1bmN0aW9uKHQsZSxuLHIsaSxvKXtpZihyLmlzS2V5RmllbGQoKSl7aWYoImFycmF5LWNvbnRhaW5zIj09PWl8fCJhcnJheS1jb250YWlucy1hbnkiPT09aSl0aHJvdyBuZXcgRnkoTXkuSU5WQUxJRF9BUkdVTUVOVCwiSW52YWxpZCBRdWVyeS4gWW91IGNhbid0IHBlcmZvcm0gJyIraSsiJyBxdWVyaWVzIG9uIEZpZWxkUGF0aC5kb2N1bWVudElkKCkuIik7aWYoImluIj09PWl8fCJub3QtaW4iPT09aSl7WmsobyxpKTtmb3IodmFyIHM9W10sYT0wLHU9bzthPHUubGVuZ3RoO2ErKyl7dmFyIGM9dVthXTtzLnB1c2goJGsobix0LGMpKX1oPXthcnJheVZhbHVlOnt2YWx1ZXM6c319fWVsc2UgaD0kayhuLHQsbyl9ZWxzZSJpbiIhPT1pJiYibm90LWluIiE9PWkmJiJhcnJheS1jb250YWlucy1hbnkiIT09aXx8WmsobyxpKSxoPWFrKGUsIndoZXJlIixvLCJpbiI9PT1pfHwibm90LWluIj09PWkpO3ZhciBoPVhtLmNyZWF0ZShyLGksaCk7cmV0dXJuIGZ1bmN0aW9uKHQsZSl7aWYoZS5nKCkpe3ZhciBuPVBiKHQpO2lmKG51bGwhPT1uJiYhbi5pc0VxdWFsKGUuZmllbGQpKXRocm93IG5ldyBGeShNeS5JTlZBTElEX0FSR1VNRU5ULCJJbnZhbGlkIHF1ZXJ5LiBBbGwgd2hlcmUgZmlsdGVycyB3aXRoIGFuIGluZXF1YWxpdHkgKDwsIDw9LCAhPSwgbm90LWluLCA+LCBvciA+PSkgbXVzdCBiZSBvbiB0aGUgc2FtZSBmaWVsZC4gQnV0IHlvdSBoYXZlIGluZXF1YWxpdHkgZmlsdGVycyBvbiAnIituLnRvU3RyaW5nKCkrIicgYW5kICciK2UuZmllbGQudG9TdHJpbmcoKSsiJyIpO249UmIodCk7bnVsbCE9PW4mJnRSKDAsZS5maWVsZCxuKX10PWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuPTAscj10LmZpbHRlcnM7bjxyLmxlbmd0aDtuKyspe3ZhciBpPXJbbl07aWYoMDw9ZS5pbmRleE9mKGkub3ApKXJldHVybiBpLm9wfXJldHVybiBudWxsfSh0LGZ1bmN0aW9uKCl7c3dpdGNoKGUub3Ape2Nhc2UiIT0iOnJldHVyblsiIT0iLCJub3QtaW4iXTtjYXNlImFycmF5LWNvbnRhaW5zIjpyZXR1cm5bImFycmF5LWNvbnRhaW5zIiwiYXJyYXktY29udGFpbnMtYW55Iiwibm90LWluIl07Y2FzZSJpbiI6cmV0dXJuWyJhcnJheS1jb250YWlucy1hbnkiLCJpbiIsIm5vdC1pbiJdO2Nhc2UiYXJyYXktY29udGFpbnMtYW55IjpyZXR1cm5bImFycmF5LWNvbnRhaW5zIiwiYXJyYXktY29udGFpbnMtYW55IiwiaW4iLCJub3QtaW4iXTtjYXNlIm5vdC1pbiI6cmV0dXJuWyJhcnJheS1jb250YWlucyIsImFycmF5LWNvbnRhaW5zLWFueSIsImluIiwibm90LWluIiwiIT0iXTtkZWZhdWx0OnJldHVybltdfX0oKSk7aWYobnVsbCE9PXQpdGhyb3cgdD09PWUub3A/bmV3IEZ5KE15LklOVkFMSURfQVJHVU1FTlQsIkludmFsaWQgcXVlcnkuIFlvdSBjYW5ub3QgdXNlIG1vcmUgdGhhbiBvbmUgJyIrZS5vcC50b1N0cmluZygpKyInIGZpbHRlci4iKTpuZXcgRnkoTXkuSU5WQUxJRF9BUkdVTUVOVCwiSW52YWxpZCBxdWVyeS4gWW91IGNhbm5vdCB1c2UgJyIrZS5vcC50b1N0cmluZygpKyInIGZpbHRlcnMgd2l0aCAnIit0LnRvU3RyaW5nKCkrIicgZmlsdGVycy4iKX0odCxoKSxofSh0Ll9xdWVyeSxlLHQuZmlyZXN0b3JlLl9kYXRhYmFzZUlkLHRoaXMuVWMsdGhpcy5RYyx0aGlzLktjKTtyZXR1cm4gbmV3IGVBKHQuZmlyZXN0b3JlLHQuX2NvbnZlcnRlciwodD10Ll9xdWVyeSxlPXQuZmlsdGVycy5jb25jYXQoW2VdKSxuZXcgU2IodC5wYXRoLHQuY29sbGVjdGlvbkdyb3VwLHQuZXhwbGljaXRPcmRlckJ5LnNsaWNlKCksZSx0LmxpbWl0LHQubGltaXRUeXBlLHQuc3RhcnRBdCx0LmVuZEF0KSkpfSxYayksQms9KFhpKFlrLGprPUdhKSxZay5wcm90b3R5cGUuX2FwcGx5PWZ1bmN0aW9uKHQpe3ZhciBlPWZ1bmN0aW9uKHQsZSxuKXtpZihudWxsIT09dC5zdGFydEF0KXRocm93IG5ldyBGeShNeS5JTlZBTElEX0FSR1VNRU5ULCJJbnZhbGlkIHF1ZXJ5LiBZb3UgbXVzdCBub3QgY2FsbCBzdGFydEF0KCkgb3Igc3RhcnRBZnRlcigpIGJlZm9yZSBjYWxsaW5nIG9yZGVyQnkoKS4iKTtpZihudWxsIT09dC5lbmRBdCl0aHJvdyBuZXcgRnkoTXkuSU5WQUxJRF9BUkdVTUVOVCwiSW52YWxpZCBxdWVyeS4gWW91IG11c3Qgbm90IGNhbGwgZW5kQXQoKSBvciBlbmRCZWZvcmUoKSBiZWZvcmUgY2FsbGluZyBvcmRlckJ5KCkuIik7dmFyIHI9bmV3IEliKGUsbik7cmV0dXJuIGU9cixudWxsIT09UmIobj10KXx8bnVsbCE9PSh0PVBiKG4pKSYmdFIoMCx0LGUuZmllbGQpLHJ9KHQuX3F1ZXJ5LHRoaXMuVWMsdGhpcy5qYyk7cmV0dXJuIG5ldyBlQSh0LmZpcmVzdG9yZSx0Ll9jb252ZXJ0ZXIsKHQ9dC5fcXVlcnksZT10LmV4cGxpY2l0T3JkZXJCeS5jb25jYXQoW2VdKSxuZXcgU2IodC5wYXRoLHQuY29sbGVjdGlvbkdyb3VwLGUsdC5maWx0ZXJzLnNsaWNlKCksdC5saW1pdCx0LmxpbWl0VHlwZSx0LnN0YXJ0QXQsdC5lbmRBdCkpKX0sWWspLEtrPShYaShRayxVaz1HYSksUWsucHJvdG90eXBlLl9hcHBseT1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IGVBKHQuZmlyZXN0b3JlLHQuX2NvbnZlcnRlcixMYih0Ll9xdWVyeSx0aGlzLldjLHRoaXMuR2MpKX0sUWspLFdrPShYaSh6ayxGaz1HYSksemsucHJvdG90eXBlLl9hcHBseT1mdW5jdGlvbih0KXt2YXIgZT1Kayh0LHRoaXMudHlwZSx0aGlzLnpjLHRoaXMuSGMpO3JldHVybiBuZXcgZUEodC5maXJlc3RvcmUsdC5fY29udmVydGVyLCh0PXQuX3F1ZXJ5LGU9ZSxuZXcgU2IodC5wYXRoLHQuY29sbGVjdGlvbkdyb3VwLHQuZXhwbGljaXRPcmRlckJ5LnNsaWNlKCksdC5maWx0ZXJzLnNsaWNlKCksdC5saW1pdCx0LmxpbWl0VHlwZSxlLHQuZW5kQXQpKSl9LHprKSxIaz0oWGkoR2ssTWs9R2EpLEdrLnByb3RvdHlwZS5fYXBwbHk9ZnVuY3Rpb24odCl7dmFyIGU9SmsodCx0aGlzLnR5cGUsdGhpcy56Yyx0aGlzLkhjKTtyZXR1cm4gbmV3IGVBKHQuZmlyZXN0b3JlLHQuX2NvbnZlcnRlciwodD10Ll9xdWVyeSxlPWUsbmV3IFNiKHQucGF0aCx0LmNvbGxlY3Rpb25Hcm91cCx0LmV4cGxpY2l0T3JkZXJCeS5zbGljZSgpLHQuZmlsdGVycy5zbGljZSgpLHQubGltaXQsdC5saW1pdFR5cGUsdC5zdGFydEF0LGUpKSl9LEdrKTtmdW5jdGlvbiBHayh0LGUsbil7dmFyIHI9dGhpcztyZXR1cm4ocj1Nay5jYWxsKHRoaXMpfHx0aGlzKS50eXBlPXQsci56Yz1lLHIuSGM9bixyfWZ1bmN0aW9uIHprKHQsZSxuKXt2YXIgcj10aGlzO3JldHVybihyPUZrLmNhbGwodGhpcyl8fHRoaXMpLnR5cGU9dCxyLnpjPWUsci5IYz1uLHJ9ZnVuY3Rpb24gUWsodCxlLG4pe3ZhciByPXRoaXM7cmV0dXJuKHI9VWsuY2FsbCh0aGlzKXx8dGhpcykudHlwZT10LHIuV2M9ZSxyLkdjPW4scn1mdW5jdGlvbiBZayh0LGUpe3ZhciBuPXRoaXM7cmV0dXJuKG49amsuY2FsbCh0aGlzKXx8dGhpcykuVWM9dCxuLmpjPWUsbi50eXBlPSJvcmRlckJ5IixufWZ1bmN0aW9uIFhrKHQsZSxuKXt2YXIgcj10aGlzO3JldHVybihyPXFrLmNhbGwodGhpcyl8fHRoaXMpLlVjPXQsci5RYz1lLHIuS2M9bixyLnR5cGU9IndoZXJlIixyfWZ1bmN0aW9uIEprKHQsYyxlLG4pe2lmKGVbMF09Wm8oZVswXSksZVswXWluc3RhbmNlb2YgbWspcmV0dXJuIGZ1bmN0aW9uKHQsZSxuLHIpe2lmKCFuKXRocm93IG5ldyBGeShNeS5OT1RfRk9VTkQsIkNhbid0IHVzZSBhIERvY3VtZW50U25hcHNob3QgdGhhdCBkb2Vzbid0IGV4aXN0IGZvciAiK2MrIigpLiIpO2Zvcih2YXIgaT1bXSxvPTAscz1EYih0KTtvPHMubGVuZ3RoO28rKyl7dmFyIGE9c1tvXTtpZihhLmZpZWxkLmlzS2V5RmllbGQoKSlpLnB1c2goeG0oZSxuLmtleSkpO2Vsc2V7dmFyIHU9bi5kYXRhLmZpZWxkKGEuZmllbGQpO2lmKF9tKHUpKXRocm93IG5ldyBGeShNeS5JTlZBTElEX0FSR1VNRU5ULCdJbnZhbGlkIHF1ZXJ5LiBZb3UgYXJlIHRyeWluZyB0byBzdGFydCBvciBlbmQgYSBxdWVyeSB1c2luZyBhIGRvY3VtZW50IGZvciB3aGljaCB0aGUgZmllbGQgIicrYS5maWVsZCsnIiBpcyBhbiB1bmNvbW1pdHRlZCBzZXJ2ZXIgdGltZXN0YW1wLiAoU2luY2UgdGhlIHZhbHVlIG9mIHRoaXMgZmllbGQgaXMgdW5rbm93biwgeW91IGNhbm5vdCBzdGFydC9lbmQgYSBxdWVyeSB3aXRoIGl0LiknKTtpZihudWxsPT09dSl7YT1hLmZpZWxkLmNhbm9uaWNhbFN0cmluZygpO3Rocm93IG5ldyBGeShNeS5JTlZBTElEX0FSR1VNRU5ULCJJbnZhbGlkIHF1ZXJ5LiBZb3UgYXJlIHRyeWluZyB0byBzdGFydCBvciBlbmQgYSBxdWVyeSB1c2luZyBhIGRvY3VtZW50IGZvciB3aGljaCB0aGUgZmllbGQgJyIrYSsiJyAodXNlZCBhcyB0aGUgb3JkZXJCeSkgZG9lcyBub3QgZXhpc3QuIil9aS5wdXNoKHUpfX1yZXR1cm4gbmV3IGdiKGkscil9KHQuX3F1ZXJ5LHQuZmlyZXN0b3JlLl9kYXRhYmFzZUlkLGVbMF0uX2RvY3VtZW50LG4pO3ZhciByPVZBKHQuZmlyZXN0b3JlKTtyZXR1cm4gZnVuY3Rpb24odCxlLG4scixpLG8pe3ZhciBzPXQuZXhwbGljaXRPcmRlckJ5O2lmKGkubGVuZ3RoPnMubGVuZ3RoKXRocm93IG5ldyBGeShNeS5JTlZBTElEX0FSR1VNRU5ULCJUb28gbWFueSBhcmd1bWVudHMgcHJvdmlkZWQgdG8gIityKyIoKS4gVGhlIG51bWJlciBvZiBhcmd1bWVudHMgbXVzdCBiZSBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gdGhlIG51bWJlciBvZiBvcmRlckJ5KCkgY2xhdXNlcyIpO2Zvcih2YXIgYT1bXSx1PTA7dTxpLmxlbmd0aDt1Kyspe3ZhciBjPWlbdV07aWYoc1t1XS5maWVsZC5pc0tleUZpZWxkKCkpe2lmKCJzdHJpbmciIT10eXBlb2YgYyl0aHJvdyBuZXcgRnkoTXkuSU5WQUxJRF9BUkdVTUVOVCwiSW52YWxpZCBxdWVyeS4gRXhwZWN0ZWQgYSBzdHJpbmcgZm9yIGRvY3VtZW50IElEIGluICIrcisiKCksIGJ1dCBnb3QgYSAiK3R5cGVvZiBjKTtpZighT2IodCkmJi0xIT09Yy5pbmRleE9mKCIvIikpdGhyb3cgbmV3IEZ5KE15LklOVkFMSURfQVJHVU1FTlQsIkludmFsaWQgcXVlcnkuIFdoZW4gcXVlcnlpbmcgYSBjb2xsZWN0aW9uIGFuZCBvcmRlcmluZyBieSBGaWVsZFBhdGguZG9jdW1lbnRJZCgpLCB0aGUgdmFsdWUgcGFzc2VkIHRvICIrcisiKCkgbXVzdCBiZSBhIHBsYWluIGRvY3VtZW50IElELCBidXQgJyIrYysiJyBjb250YWlucyBhIHNsYXNoLiIpO3ZhciBoPXQucGF0aC5jaGlsZChhbS5mcm9tU3RyaW5nKGMpKTtpZighQ20uaXNEb2N1bWVudEtleShoKSl0aHJvdyBuZXcgRnkoTXkuSU5WQUxJRF9BUkdVTUVOVCwiSW52YWxpZCBxdWVyeS4gV2hlbiBxdWVyeWluZyBhIGNvbGxlY3Rpb24gZ3JvdXAgYW5kIG9yZGVyaW5nIGJ5IEZpZWxkUGF0aC5kb2N1bWVudElkKCksIHRoZSB2YWx1ZSBwYXNzZWQgdG8gIityKyIoKSBtdXN0IHJlc3VsdCBpbiBhIHZhbGlkIGRvY3VtZW50IHBhdGgsIGJ1dCAnIitoKyInIGlzIG5vdCBiZWNhdXNlIGl0IGNvbnRhaW5zIGFuIG9kZCBudW1iZXIgb2Ygc2VnbWVudHMuIik7aD1uZXcgQ20oaCk7YS5wdXNoKHhtKGUsaCkpfWVsc2V7Yz1hayhuLHIsYyk7YS5wdXNoKGMpfX1yZXR1cm4gbmV3IGdiKGEsbyl9KHQuX3F1ZXJ5LHQuZmlyZXN0b3JlLl9kYXRhYmFzZUlkLHIsYyxlLG4pfWZ1bmN0aW9uICRrKHQsZSxuKXtpZigic3RyaW5nIj09dHlwZW9mKG49Wm8obikpKXtpZigiIj09PW4pdGhyb3cgbmV3IEZ5KE15LklOVkFMSURfQVJHVU1FTlQsIkludmFsaWQgcXVlcnkuIFdoZW4gcXVlcnlpbmcgd2l0aCBGaWVsZFBhdGguZG9jdW1lbnRJZCgpLCB5b3UgbXVzdCBwcm92aWRlIGEgdmFsaWQgZG9jdW1lbnQgSUQsIGJ1dCBpdCB3YXMgYW4gZW1wdHkgc3RyaW5nLiIpO2lmKCFPYihlKSYmLTEhPT1uLmluZGV4T2YoIi8iKSl0aHJvdyBuZXcgRnkoTXkuSU5WQUxJRF9BUkdVTUVOVCwiSW52YWxpZCBxdWVyeS4gV2hlbiBxdWVyeWluZyBhIGNvbGxlY3Rpb24gYnkgRmllbGRQYXRoLmRvY3VtZW50SWQoKSwgeW91IG11c3QgcHJvdmlkZSBhIHBsYWluIGRvY3VtZW50IElELCBidXQgJyIrbisiJyBjb250YWlucyBhICcvJyBjaGFyYWN0ZXIuIik7ZT1lLnBhdGguY2hpbGQoYW0uZnJvbVN0cmluZyhuKSk7aWYoIUNtLmlzRG9jdW1lbnRLZXkoZSkpdGhyb3cgbmV3IEZ5KE15LklOVkFMSURfQVJHVU1FTlQsIkludmFsaWQgcXVlcnkuIFdoZW4gcXVlcnlpbmcgYSBjb2xsZWN0aW9uIGdyb3VwIGJ5IEZpZWxkUGF0aC5kb2N1bWVudElkKCksIHRoZSB2YWx1ZSBwcm92aWRlZCBtdXN0IHJlc3VsdCBpbiBhIHZhbGlkIGRvY3VtZW50IHBhdGgsIGJ1dCAnIitlKyInIGlzIG5vdCBiZWNhdXNlIGl0IGhhcyBhbiBvZGQgbnVtYmVyIG9mIHNlZ21lbnRzICgiK2UubGVuZ3RoKyIpLiIpO3JldHVybiB4bSh0LG5ldyBDbShlKSl9aWYobiBpbnN0YW5jZW9mIHRBKXJldHVybiB4bSh0LG4uX2tleSk7dGhyb3cgbmV3IEZ5KE15LklOVkFMSURfQVJHVU1FTlQsIkludmFsaWQgcXVlcnkuIFdoZW4gcXVlcnlpbmcgd2l0aCBGaWVsZFBhdGguZG9jdW1lbnRJZCgpLCB5b3UgbXVzdCBwcm92aWRlIGEgdmFsaWQgc3RyaW5nIG9yIGEgRG9jdW1lbnRSZWZlcmVuY2UsIGJ1dCBpdCB3YXM6ICIrUU4obikrIi4iKX1mdW5jdGlvbiBaayh0LGUpe2lmKCFBcnJheS5pc0FycmF5KHQpfHwwPT09dC5sZW5ndGgpdGhyb3cgbmV3IEZ5KE15LklOVkFMSURfQVJHVU1FTlQsIkludmFsaWQgUXVlcnkuIEEgbm9uLWVtcHR5IGFycmF5IGlzIHJlcXVpcmVkIGZvciAnIitlLnRvU3RyaW5nKCkrIicgZmlsdGVycy4iKTtpZigxMDx0Lmxlbmd0aCl0aHJvdyBuZXcgRnkoTXkuSU5WQUxJRF9BUkdVTUVOVCwiSW52YWxpZCBRdWVyeS4gJyIrZS50b1N0cmluZygpKyInIGZpbHRlcnMgc3VwcG9ydCBhIG1heGltdW0gb2YgMTAgZWxlbWVudHMgaW4gdGhlIHZhbHVlIGFycmF5LiIpfWZ1bmN0aW9uIHRSKHQsZSxuKXtpZighbi5pc0VxdWFsKGUpKXRocm93IG5ldyBGeShNeS5JTlZBTElEX0FSR1VNRU5ULCJJbnZhbGlkIHF1ZXJ5LiBZb3UgaGF2ZSBhIHdoZXJlIGZpbHRlciB3aXRoIGFuIGluZXF1YWxpdHkgKDwsIDw9LCAhPSwgbm90LWluLCA+LCBvciA+PSkgb24gZmllbGQgJyIrZS50b1N0cmluZygpKyInIGFuZCBzbyB5b3UgbXVzdCBhbHNvIHVzZSAnIitlLnRvU3RyaW5nKCkrIicgYXMgeW91ciBmaXJzdCBhcmd1bWVudCB0byBvcmRlckJ5KCksIGJ1dCB5b3VyIGZpcnN0IG9yZGVyQnkoKSBpcyBvbiBmaWVsZCAnIituLnRvU3RyaW5nKCkrIicgaW5zdGVhZC4iKX1lUi5wcm90b3R5cGUuY29udmVydFZhbHVlPWZ1bmN0aW9uKHQsZSl7c3dpdGNoKHZvaWQgMD09PWUmJihlPSJub25lIiksQW0odCkpe2Nhc2UgMDpyZXR1cm4gbnVsbDtjYXNlIDE6cmV0dXJuIHQuYm9vbGVhblZhbHVlO2Nhc2UgMjpyZXR1cm4gYm0odC5pbnRlZ2VyVmFsdWV8fHQuZG91YmxlVmFsdWUpO2Nhc2UgMzpyZXR1cm4gdGhpcy5jb252ZXJ0VGltZXN0YW1wKHQudGltZXN0YW1wVmFsdWUpO2Nhc2UgNDpyZXR1cm4gdGhpcy5jb252ZXJ0U2VydmVyVGltZXN0YW1wKHQsZSk7Y2FzZSA1OnJldHVybiB0LnN0cmluZ1ZhbHVlO2Nhc2UgNjpyZXR1cm4gdGhpcy5jb252ZXJ0Qnl0ZXMod20odC5ieXRlc1ZhbHVlKSk7Y2FzZSA3OnJldHVybiB0aGlzLmNvbnZlcnRSZWZlcmVuY2UodC5yZWZlcmVuY2VWYWx1ZSk7Y2FzZSA4OnJldHVybiB0aGlzLmNvbnZlcnRHZW9Qb2ludCh0Lmdlb1BvaW50VmFsdWUpO2Nhc2UgOTpyZXR1cm4gdGhpcy5jb252ZXJ0QXJyYXkodC5hcnJheVZhbHVlLGUpO2Nhc2UgMTA6cmV0dXJuIHRoaXMuY29udmVydE9iamVjdCh0Lm1hcFZhbHVlLGUpO2RlZmF1bHQ6dGhyb3cgSHkoKX19LGVSLnByb3RvdHlwZS5jb252ZXJ0T2JqZWN0PWZ1bmN0aW9uKHQsbil7dmFyIHI9dGhpcyxpPXt9O3JldHVybiBybSh0LmZpZWxkc3x8e30sZnVuY3Rpb24odCxlKXtpW3RdPXIuY29udmVydFZhbHVlKGUsbil9KSxpfSxlUi5wcm90b3R5cGUuY29udmVydEdlb1BvaW50PWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgTkEoYm0odC5sYXRpdHVkZSksYm0odC5sb25naXR1ZGUpKX0sZVIucHJvdG90eXBlLmNvbnZlcnRBcnJheT1mdW5jdGlvbih0LGUpe3ZhciBuPXRoaXM7cmV0dXJuKHQudmFsdWVzfHxbXSkubWFwKGZ1bmN0aW9uKHQpe3JldHVybiBuLmNvbnZlcnRWYWx1ZSh0LGUpfSl9LGVSLnByb3RvdHlwZS5jb252ZXJ0U2VydmVyVGltZXN0YW1wPWZ1bmN0aW9uKHQsZSl7c3dpdGNoKGUpe2Nhc2UicHJldmlvdXMiOnZhciBuPWZ1bmN0aW9uIHQoZSl7ZT1lLm1hcFZhbHVlLmZpZWxkcy5fX3ByZXZpb3VzX3ZhbHVlX187cmV0dXJuIF9tKGUpP3QoZSk6ZX0odCk7cmV0dXJuIG51bGw9PW4/bnVsbDp0aGlzLmNvbnZlcnRWYWx1ZShuLGUpO2Nhc2UiZXN0aW1hdGUiOnJldHVybiB0aGlzLmNvbnZlcnRUaW1lc3RhbXAoSW0odCkpO2RlZmF1bHQ6cmV0dXJuIG51bGx9fSxlUi5wcm90b3R5cGUuY29udmVydFRpbWVzdGFtcD1mdW5jdGlvbih0KXt0PW1tKHQpO3JldHVybiBuZXcgJHkodC5zZWNvbmRzLHQubmFub3MpfSxlUi5wcm90b3R5cGUuY29udmVydERvY3VtZW50S2V5PWZ1bmN0aW9uKHQsZSl7dmFyIG49YW0uZnJvbVN0cmluZyh0KTtHeShGXyhuKSk7dD1uZXcgT04obi5nZXQoMSksbi5nZXQoMykpLG49bmV3IENtKG4ucG9wRmlyc3QoNSkpO3JldHVybiB0LmlzRXF1YWwoZSl8fEJ5KCJEb2N1bWVudCAiK24rIiBjb250YWlucyBhIGRvY3VtZW50IHJlZmVyZW5jZSB3aXRoaW4gYSBkaWZmZXJlbnQgZGF0YWJhc2UgKCIrdC5wcm9qZWN0SWQrIi8iK3QuZGF0YWJhc2UrIikgd2hpY2ggaXMgbm90IHN1cHBvcnRlZC4gSXQgd2lsbCBiZSB0cmVhdGVkIGFzIGEgcmVmZXJlbmNlIGluIHRoZSBjdXJyZW50IGRhdGFiYXNlICgiK2UucHJvamVjdElkKyIvIitlLmRhdGFiYXNlKyIpIGluc3RlYWQuIiksbn0sU249ZVI7ZnVuY3Rpb24gZVIoKXt9ZnVuY3Rpb24gblIodCxlLG4pe3JldHVybiB0P24mJihuLm1lcmdlfHxuLm1lcmdlRmllbGRzKT90LnRvRmlyZXN0b3JlKGUsbik6dC50b0ZpcmVzdG9yZShlKTplfXZhciByUixpUj0oWGkoYVIsclI9U24pLGFSLnByb3RvdHlwZS5jb252ZXJ0Qnl0ZXM9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBTQSh0KX0sYVIucHJvdG90eXBlLmNvbnZlcnRSZWZlcmVuY2U9ZnVuY3Rpb24odCl7dD10aGlzLmNvbnZlcnREb2N1bWVudEtleSh0LHRoaXMuZmlyZXN0b3JlLl9kYXRhYmFzZUlkKTtyZXR1cm4gbmV3IHRBKHRoaXMuZmlyZXN0b3JlLG51bGwsdCl9LGFSKSxvUj0oc1IucHJvdG90eXBlLnNldD1mdW5jdGlvbih0LGUsbil7dGhpcy5fdmVyaWZ5Tm90Q29tbWl0dGVkKCk7dD11Uih0LHRoaXMuX2ZpcmVzdG9yZSksZT1uUih0Ll9jb252ZXJ0ZXIsZSxuKSxuPUJBKHRoaXMuX2RhdGFSZWFkZXIsIldyaXRlQmF0Y2guc2V0Iix0Ll9rZXksZSxudWxsIT09dC5fY29udmVydGVyLG4pO3JldHVybiB0aGlzLl9tdXRhdGlvbnMucHVzaChuLnRvTXV0YXRpb24odC5fa2V5LGN3Lm5vbmUoKSkpLHRoaXN9LHNSLnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24odCxlLG4pe2Zvcih2YXIgcj1bXSxpPTM7aTxhcmd1bWVudHMubGVuZ3RoO2krKylyW2ktM109YXJndW1lbnRzW2ldO3RoaXMuX3ZlcmlmeU5vdENvbW1pdHRlZCgpO3Q9dVIodCx0aGlzLl9maXJlc3RvcmUpLGU9InN0cmluZyI9PXR5cGVvZihlPVpvKGUpKXx8ZSBpbnN0YW5jZW9mIEVBP3NrKHRoaXMuX2RhdGFSZWFkZXIsIldyaXRlQmF0Y2gudXBkYXRlIix0Ll9rZXksZSxuLHIpOm9rKHRoaXMuX2RhdGFSZWFkZXIsIldyaXRlQmF0Y2gudXBkYXRlIix0Ll9rZXksZSk7cmV0dXJuIHRoaXMuX211dGF0aW9ucy5wdXNoKGUudG9NdXRhdGlvbih0Ll9rZXksY3cuZXhpc3RzKCEwKSkpLHRoaXN9LHNSLnByb3RvdHlwZS5kZWxldGU9ZnVuY3Rpb24odCl7dGhpcy5fdmVyaWZ5Tm90Q29tbWl0dGVkKCk7dD11Uih0LHRoaXMuX2ZpcmVzdG9yZSk7cmV0dXJuIHRoaXMuX211dGF0aW9ucz10aGlzLl9tdXRhdGlvbnMuY29uY2F0KG5ldyBBdyh0Ll9rZXksY3cubm9uZSgpKSksdGhpc30sc1IucHJvdG90eXBlLmNvbW1pdD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl92ZXJpZnlOb3RDb21taXR0ZWQoKSx0aGlzLl9jb21taXR0ZWQ9ITAsMDx0aGlzLl9tdXRhdGlvbnMubGVuZ3RoP3RoaXMuX2NvbW1pdEhhbmRsZXIodGhpcy5fbXV0YXRpb25zKTpQcm9taXNlLnJlc29sdmUoKX0sc1IucHJvdG90eXBlLl92ZXJpZnlOb3RDb21taXR0ZWQ9ZnVuY3Rpb24oKXtpZih0aGlzLl9jb21taXR0ZWQpdGhyb3cgbmV3IEZ5KE15LkZBSUxFRF9QUkVDT05ESVRJT04sIkEgd3JpdGUgYmF0Y2ggY2FuIG5vIGxvbmdlciBiZSB1c2VkIGFmdGVyIGNvbW1pdCgpIGhhcyBiZWVuIGNhbGxlZC4iKX0sc1IpO2Z1bmN0aW9uIHNSKHQsZSl7dGhpcy5fZmlyZXN0b3JlPXQsdGhpcy5fY29tbWl0SGFuZGxlcj1lLHRoaXMuX211dGF0aW9ucz1bXSx0aGlzLl9jb21taXR0ZWQ9ITEsdGhpcy5fZGF0YVJlYWRlcj1WQSh0KX1mdW5jdGlvbiBhUih0KXt2YXIgZT10aGlzO3JldHVybihlPXJSLmNhbGwodGhpcyl8fHRoaXMpLmZpcmVzdG9yZT10LGV9ZnVuY3Rpb24gdVIodCxlKXtpZigodD1abyh0KSkuZmlyZXN0b3JlIT09ZSl0aHJvdyBuZXcgRnkoTXkuSU5WQUxJRF9BUkdVTUVOVCwiUHJvdmlkZWQgZG9jdW1lbnQgcmVmZXJlbmNlIGlzIGZyb20gYSBkaWZmZXJlbnQgRmlyZXN0b3JlIGluc3RhbmNlLiIpO3JldHVybiB0fXZhciBjUixoUj0oWGkobFIsY1I9U24pLGxSLnByb3RvdHlwZS5jb252ZXJ0Qnl0ZXM9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBTQSh0KX0sbFIucHJvdG90eXBlLmNvbnZlcnRSZWZlcmVuY2U9ZnVuY3Rpb24odCl7dD10aGlzLmNvbnZlcnREb2N1bWVudEtleSh0LHRoaXMuZmlyZXN0b3JlLl9kYXRhYmFzZUlkKTtyZXR1cm4gbmV3IHRBKHRoaXMuZmlyZXN0b3JlLG51bGwsdCl9LGxSKTtmdW5jdGlvbiBsUih0KXt2YXIgZT10aGlzO3JldHVybihlPWNSLmNhbGwodGhpcyl8fHRoaXMpLmZpcmVzdG9yZT10LGV9ZnVuY3Rpb24gZlIodCxlLG4pe2Zvcih2YXIgcj1bXSxpPTM7aTxhcmd1bWVudHMubGVuZ3RoO2krKylyW2ktM109YXJndW1lbnRzW2ldO3Q9WU4odCx0QSk7dmFyIG89WU4odC5maXJlc3RvcmUseUEpLHM9VkEobyk7cmV0dXJuIGRSKG8sWygic3RyaW5nIj09dHlwZW9mKGU9Wm8oZSkpfHxlIGluc3RhbmNlb2YgRUE/c2socywidXBkYXRlRG9jIix0Ll9rZXksZSxuLHIpOm9rKHMsInVwZGF0ZURvYyIsdC5fa2V5LGUpKS50b011dGF0aW9uKHQuX2tleSxjdy5leGlzdHMoITApKV0pfWZ1bmN0aW9uIHBSKGUpe2Zvcih2YXIgbj1bXSx0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyluW3QtMV09YXJndW1lbnRzW3RdO2U9Wm8oZSk7dmFyIHI9e2luY2x1ZGVNZXRhZGF0YUNoYW5nZXM6ITF9LGk9MDsib2JqZWN0IiE9dHlwZW9mIG5baV18fGRBKG5baV0pfHwocj1uW2ldLGkrKyk7dmFyIG8scyxhLHUsYyxoLGw9e2luY2x1ZGVNZXRhZGF0YUNoYW5nZXM6ci5pbmNsdWRlTWV0YWRhdGFDaGFuZ2VzfTtyZXR1cm4gZEEobltpXSkmJihvPW5baV0sbltpXT1udWxsPT09KHI9by5uZXh0KXx8dm9pZCAwPT09cj92b2lkIDA6ci5iaW5kKG8pLG5baSsxXT1udWxsPT09KHI9by5lcnJvcil8fHZvaWQgMD09PXI/dm9pZCAwOnIuYmluZChvKSxuW2krMl09bnVsbD09PShyPW8uY29tcGxldGUpfHx2b2lkIDA9PT1yP3ZvaWQgMDpyLmJpbmQobykpLGUgaW5zdGFuY2VvZiB0QT8oYT1ZTihlLmZpcmVzdG9yZSx5QSksdT1OYihlLl9rZXkucGF0aCksaD17bmV4dDpmdW5jdGlvbih0KXtuW2ldJiZuW2ldKHZSKGEsZSx0KSl9LGVycm9yOm5baSsxXSxjb21wbGV0ZTpuW2krMl19KToocz1ZTihlLGVBKSxhPVlOKHMuZmlyZXN0b3JlLHlBKSx1PXMuX3F1ZXJ5LGM9bmV3IGhSKGEpLGg9e25leHQ6ZnVuY3Rpb24odCl7bltpXSYmbltpXShuZXcgQWsoYSxjLHMsdCkpfSxlcnJvcjpuW2krMV0sY29tcGxldGU6bltpKzJdfSx4ayhlLl9xdWVyeSkpLGZ1bmN0aW9uKG4sdCxlKXt2YXIgcj10aGlzLGk9bmV3IGNOKGgpLG89bmV3IGRDKHQsaSxlKTtyZXR1cm4gbi5hc3luY1F1ZXVlLmVucXVldWVBbmRGb3JnZXQoZnVuY3Rpb24oKXtyZXR1cm4gJGkocix2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIGU7cmV0dXJuIFppKHRoaXMsZnVuY3Rpb24odCl7c3dpdGNoKHQubGFiZWwpe2Nhc2UgMDpyZXR1cm4gZT1sQyxbNCxOTihuKV07Y2FzZSAxOnJldHVyblsyLGUuYXBwbHkodm9pZCAwLFt0LnNlbnQoKSxvXSldfX0pfSl9KSxmdW5jdGlvbigpe2kuV28oKSxuLmFzeW5jUXVldWUuZW5xdWV1ZUFuZEZvcmdldChmdW5jdGlvbigpe3JldHVybiAkaShyLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgZTtyZXR1cm4gWmkodGhpcyxmdW5jdGlvbih0KXtzd2l0Y2godC5sYWJlbCl7Y2FzZSAwOnJldHVybiBlPWZDLFs0LE5OKG4pXTtjYXNlIDE6cmV0dXJuWzIsZS5hcHBseSh2b2lkIDAsW3Quc2VudCgpLG9dKV19fSl9KX0pfX0od0EoYSksdSxsKX1mdW5jdGlvbiBkUih0LGUpe3JldHVybiBmdW5jdGlvbihuLHIpe3ZhciB0PXRoaXMsaT1uZXcgYUk7cmV0dXJuIG4uYXN5bmNRdWV1ZS5lbnF1ZXVlQW5kRm9yZ2V0KGZ1bmN0aW9uKCl7cmV0dXJuICRpKHQsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBlO3JldHVybiBaaSh0aGlzLGZ1bmN0aW9uKHQpe3N3aXRjaCh0LmxhYmVsKXtjYXNlIDA6cmV0dXJuIGU9T0MsWzQsQ04obildO2Nhc2UgMTpyZXR1cm5bMixlLmFwcGx5KHZvaWQgMCxbdC5zZW50KCkscixpXSldfX0pfSl9KSxpLnByb21pc2V9KHdBKHQpLGUpfWZ1bmN0aW9uIHZSKHQsZSxuKXt2YXIgcj1uLmRvY3MuZ2V0KGUuX2tleSksaT1uZXcgaFIodCk7cmV0dXJuIG5ldyBDayh0LGksZS5fa2V5LHIsbmV3IFNrKG4uaGFzUGVuZGluZ1dyaXRlcyxuLmZyb21DYWNoZSksZS5fY29udmVydGVyKX12YXIgZ1IseVI9KGJSLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcyxuPXVSKHQsdGhpcy5fZmlyZXN0b3JlKSxyPW5ldyBpUih0aGlzLl9maXJlc3RvcmUpO3JldHVybiB0aGlzLl90cmFuc2FjdGlvbi5sb29rdXAoW24uX2tleV0pLnRoZW4oZnVuY3Rpb24odCl7aWYoIXR8fDEhPT10Lmxlbmd0aClyZXR1cm4gSHkoKTt0PXRbMF07aWYodC5pc0ZvdW5kRG9jdW1lbnQoKSlyZXR1cm4gbmV3IG1rKGUuX2ZpcmVzdG9yZSxyLHQua2V5LHQsbi5fY29udmVydGVyKTtpZih0LmlzTm9Eb2N1bWVudCgpKXJldHVybiBuZXcgbWsoZS5fZmlyZXN0b3JlLHIsbi5fa2V5LG51bGwsbi5fY29udmVydGVyKTt0aHJvdyBIeSgpfSl9LGJSLnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24odCxlLG4pe3Q9dVIodCx0aGlzLl9maXJlc3RvcmUpLGU9blIodC5fY29udmVydGVyLGUsbiksbj1CQSh0aGlzLl9kYXRhUmVhZGVyLCJUcmFuc2FjdGlvbi5zZXQiLHQuX2tleSxlLG51bGwhPT10Ll9jb252ZXJ0ZXIsbik7cmV0dXJuIHRoaXMuX3RyYW5zYWN0aW9uLnNldCh0Ll9rZXksbiksdGhpc30sYlIucHJvdG90eXBlLnVwZGF0ZT1mdW5jdGlvbih0LGUsbil7Zm9yKHZhciByPVtdLGk9MztpPGFyZ3VtZW50cy5sZW5ndGg7aSsrKXJbaS0zXT1hcmd1bWVudHNbaV07dD11Uih0LHRoaXMuX2ZpcmVzdG9yZSksZT0ic3RyaW5nIj09dHlwZW9mKGU9Wm8oZSkpfHxlIGluc3RhbmNlb2YgRUE/c2sodGhpcy5fZGF0YVJlYWRlciwiVHJhbnNhY3Rpb24udXBkYXRlIix0Ll9rZXksZSxuLHIpOm9rKHRoaXMuX2RhdGFSZWFkZXIsIlRyYW5zYWN0aW9uLnVwZGF0ZSIsdC5fa2V5LGUpO3JldHVybiB0aGlzLl90cmFuc2FjdGlvbi51cGRhdGUodC5fa2V5LGUpLHRoaXN9LGJSLnByb3RvdHlwZS5kZWxldGU9ZnVuY3Rpb24odCl7dD11Uih0LHRoaXMuX2ZpcmVzdG9yZSk7cmV0dXJuIHRoaXMuX3RyYW5zYWN0aW9uLmRlbGV0ZSh0Ll9rZXkpLHRoaXN9LFhpKG1SLGdSPWJSKSxtUi5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMsbj11Uih0LHRoaXMuX2ZpcmVzdG9yZSkscj1uZXcgaFIodGhpcy5fZmlyZXN0b3JlKTtyZXR1cm4gZ1IucHJvdG90eXBlLmdldC5jYWxsKHRoaXMsdCkudGhlbihmdW5jdGlvbih0KXtyZXR1cm4gbmV3IENrKGUuX2ZpcmVzdG9yZSxyLG4uX2tleSx0Ll9kb2N1bWVudCxuZXcgU2soITEsITEpLG4uX2NvbnZlcnRlcil9KX0sbVIpO2Z1bmN0aW9uIG1SKHQsZSl7dmFyIG49dGhpcztyZXR1cm4obj1nUi5jYWxsKHRoaXMsdCxlKXx8dGhpcykuX2ZpcmVzdG9yZT10LG59ZnVuY3Rpb24gYlIodCxlKXt0aGlzLl9maXJlc3RvcmU9dCx0aGlzLl90cmFuc2FjdGlvbj1lLHRoaXMuX2RhdGFSZWFkZXI9VkEodCl9ZnVuY3Rpb24gd1IoKXtpZigidW5kZWZpbmVkIj09dHlwZW9mIFVpbnQ4QXJyYXkpdGhyb3cgbmV3IEZ5KE15LlVOSU1QTEVNRU5URUQsIlVpbnQ4QXJyYXlzIGFyZSBub3QgYXZhaWxhYmxlIGluIHRoaXMgZW52aXJvbm1lbnQuIil9ZnVuY3Rpb24gX1IoKXtpZigidW5kZWZpbmVkIj09dHlwZW9mIGF0b2IpdGhyb3cgbmV3IEZ5KE15LlVOSU1QTEVNRU5URUQsIkJsb2JzIGFyZSB1bmF2YWlsYWJsZSBpbiBGaXJlc3RvcmUgaW4gdGhpcyBlbnZpcm9ubWVudC4iKX12YXIgSVIsVFI9KFJSLmZyb21CYXNlNjRTdHJpbmc9ZnVuY3Rpb24odCl7cmV0dXJuIF9SKCksbmV3IFJSKFNBLmZyb21CYXNlNjRTdHJpbmcodCkpfSxSUi5mcm9tVWludDhBcnJheT1mdW5jdGlvbih0KXtyZXR1cm4gd1IoKSxuZXcgUlIoU0EuZnJvbVVpbnQ4QXJyYXkodCkpfSxSUi5wcm90b3R5cGUudG9CYXNlNjQ9ZnVuY3Rpb24oKXtyZXR1cm4gX1IoKSx0aGlzLl9kZWxlZ2F0ZS50b0Jhc2U2NCgpfSxSUi5wcm90b3R5cGUudG9VaW50OEFycmF5PWZ1bmN0aW9uKCl7cmV0dXJuIHdSKCksdGhpcy5fZGVsZWdhdGUudG9VaW50OEFycmF5KCl9LFJSLnByb3RvdHlwZS5pc0VxdWFsPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9kZWxlZ2F0ZS5pc0VxdWFsKHQuX2RlbGVnYXRlKX0sUlIucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIkJsb2IoYmFzZTY0OiAiK3RoaXMudG9CYXNlNjQoKSsiKSJ9LFJSKSxFUj0oa1IucHJvdG90eXBlLmVuYWJsZUluZGV4ZWREYlBlcnNpc3RlbmNlPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGZ1bmN0aW9uKHQsZSl7VEEodD1ZTih0LHlBKSk7dmFyIG49d0EodCkscj10Ll9mcmVlemVTZXR0aW5ncygpLHQ9bmV3IHJOO3JldHVybiBJQShuLHQsbmV3IGVOKHQsci5jYWNoZVNpemVCeXRlcyxudWxsPT1lP3ZvaWQgMDplLmZvcmNlT3duZXJzaGlwKSl9KHQuX2RlbGVnYXRlLHtmb3JjZU93bmVyc2hpcDplfSl9LGtSLnByb3RvdHlwZS5lbmFibGVNdWx0aVRhYkluZGV4ZWREYlBlcnNpc3RlbmNlPWZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbih0KXtUQSh0PVlOKHQseUEpKTt2YXIgZT13QSh0KSxuPXQuX2ZyZWV6ZVNldHRpbmdzKCksdD1uZXcgck47cmV0dXJuIElBKGUsdCxuZXcgbk4odCxuLmNhY2hlU2l6ZUJ5dGVzKSl9KHQuX2RlbGVnYXRlKX0sa1IucHJvdG90eXBlLmNsZWFySW5kZXhlZERiUGVyc2lzdGVuY2U9ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKG4pe3ZhciB0PXRoaXM7aWYobi5faW5pdGlhbGl6ZWQmJiFuLl90ZXJtaW5hdGVkKXRocm93IG5ldyBGeShNeS5GQUlMRURfUFJFQ09ORElUSU9OLCJQZXJzaXN0ZW5jZSBjYW4gb25seSBiZSBjbGVhcmVkIGJlZm9yZSBhIEZpcmVzdG9yZSBpbnN0YW5jZSBpcyBpbml0aWFsaXplZCBvciBhZnRlciBpdCBpcyB0ZXJtaW5hdGVkLiIpO3ZhciByPW5ldyBhSTtyZXR1cm4gbi5fcXVldWUuZW5xdWV1ZUFuZEZvcmdldEV2ZW5XaGlsZVJlc3RyaWN0ZWQoZnVuY3Rpb24oKXtyZXR1cm4gJGkodCx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIGU7cmV0dXJuIFppKHRoaXMsZnVuY3Rpb24odCl7c3dpdGNoKHQubGFiZWwpe2Nhc2UgMDpyZXR1cm4gdC50cnlzLnB1c2goWzAsMiwsM10pLFs0LGZ1bmN0aW9uKG4pe3JldHVybiAkaSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgZTtyZXR1cm4gWmkodGhpcyxmdW5jdGlvbih0KXtzd2l0Y2godC5sYWJlbCl7Y2FzZSAwOnJldHVybiBoSS55dCgpPyhlPW4rIm1haW4iLFs0LGhJLmRlbGV0ZShlKV0pOlsyLFByb21pc2UucmVzb2x2ZSgpXTtjYXNlIDE6cmV0dXJuIHQuc2VudCgpLFsyXX19KX0pfShKVChuLl9kYXRhYmFzZUlkLG4uX3BlcnNpc3RlbmNlS2V5KSldO2Nhc2UgMTpyZXR1cm4gdC5zZW50KCksci5yZXNvbHZlKCksWzMsM107Y2FzZSAyOnJldHVybiBlPXQuc2VudCgpLHIucmVqZWN0KGUpLFszLDNdO2Nhc2UgMzpyZXR1cm5bMl19fSl9KX0pLHIucHJvbWlzZX0odC5fZGVsZWdhdGUpfSxrUiksU1I9KE9iamVjdC5kZWZpbmVQcm9wZXJ0eShBUi5wcm90b3R5cGUsIl9kYXRhYmFzZUlkIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2RlbGVnYXRlLl9kYXRhYmFzZUlkfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLEFSLnByb3RvdHlwZS5zZXR0aW5ncz1mdW5jdGlvbih0KXt0Lm1lcmdlJiZkZWxldGUodD1PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdGhpcy5fZGVsZWdhdGUuX2dldFNldHRpbmdzKCkpLHQpKS5tZXJnZSx0aGlzLl9kZWxlZ2F0ZS5fc2V0U2V0dGluZ3ModCl9LEFSLnByb3RvdHlwZS51c2VFbXVsYXRvcj1mdW5jdGlvbih0LGUpe3ZhciBuLHI7bj10aGlzLl9kZWxlZ2F0ZSxyPXQsdD1lLCJmaXJlc3RvcmUuZ29vZ2xlYXBpcy5jb20iIT09KGU9KG49WU4obixaTikpLl9nZXRTZXR0aW5ncygpKS5ob3N0JiZlLmhvc3QhPT1yJiZLeSgiSG9zdCBoYXMgYmVlbiBzZXQgaW4gYm90aCBzZXR0aW5ncygpIGFuZCB1c2VFbXVsYXRvcigpLCBlbXVsYXRvciBob3N0IHdpbGwgYmUgdXNlZCIpLG4uX3NldFNldHRpbmdzKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxlKSx7aG9zdDpyKyI6Iit0LHNzbDohMX0pKX0sQVIucHJvdG90eXBlLmVuYWJsZU5ldHdvcms9ZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24oaSl7dmFyIHQ9dGhpcztyZXR1cm4gaS5hc3luY1F1ZXVlLmVucXVldWUoZnVuY3Rpb24oKXtyZXR1cm4gJGkodCx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIG4scjtyZXR1cm4gWmkodGhpcyxmdW5jdGlvbih0KXtzd2l0Y2godC5sYWJlbCl7Y2FzZSAwOnJldHVybls0LFROKGkpXTtjYXNlIDE6cmV0dXJuIG49dC5zZW50KCksWzQsU04oaSldO2Nhc2UgMjpyZXR1cm4gcj10LnNlbnQoKSxbMiwobi5zZXROZXR3b3JrRW5hYmxlZCghMCksKGU9cikuJHIuZGVsZXRlKDApLExTKGUpKV19dmFyIGV9KX0pfSl9KHdBKFlOKHRoaXMuX2RlbGVnYXRlLHlBKSkpfSxBUi5wcm90b3R5cGUuZGlzYWJsZU5ldHdvcms9ZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24ocil7dmFyIHQ9dGhpcztyZXR1cm4gci5hc3luY1F1ZXVlLmVucXVldWUoZnVuY3Rpb24oKXtyZXR1cm4gJGkodCx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIGUsbjtyZXR1cm4gWmkodGhpcyxmdW5jdGlvbih0KXtzd2l0Y2godC5sYWJlbCl7Y2FzZSAwOnJldHVybls0LFROKHIpXTtjYXNlIDE6cmV0dXJuIGU9dC5zZW50KCksWzQsU04ocildO2Nhc2UgMjpyZXR1cm4gbj10LnNlbnQoKSxbMiwoZS5zZXROZXR3b3JrRW5hYmxlZCghMSksZnVuY3Rpb24obil7cmV0dXJuICRpKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBlO3JldHVybiBaaSh0aGlzLGZ1bmN0aW9uKHQpe3N3aXRjaCh0LmxhYmVsKXtjYXNlIDA6cmV0dXJuKGU9bikuJHIuYWRkKDApLFs0LE1TKGUpXTtjYXNlIDE6cmV0dXJuIHQuc2VudCgpLGUuQnIuc2V0KCJPZmZsaW5lIiksWzJdfX0pfSl9KG4pKV19fSl9KX0pfSh3QShZTih0aGlzLl9kZWxlZ2F0ZSx5QSkpKX0sQVIucHJvdG90eXBlLmVuYWJsZVBlcnNpc3RlbmNlPWZ1bmN0aW9uKHQpe3ZhciBlPSExLG49ITE7cmV0dXJuIHQmJkhOKCJzeW5jaHJvbml6ZVRhYnMiLGU9ISF0LnN5bmNocm9uaXplVGFicywiZXhwZXJpbWVudGFsRm9yY2VPd25pbmdUYWIiLG49ISF0LmV4cGVyaW1lbnRhbEZvcmNlT3duaW5nVGFiKSxlP3RoaXMuSmMuZW5hYmxlTXVsdGlUYWJJbmRleGVkRGJQZXJzaXN0ZW5jZSh0aGlzKTp0aGlzLkpjLmVuYWJsZUluZGV4ZWREYlBlcnNpc3RlbmNlKHRoaXMsbil9LEFSLnByb3RvdHlwZS5jbGVhclBlcnNpc3RlbmNlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSmMuY2xlYXJJbmRleGVkRGJQZXJzaXN0ZW5jZSh0aGlzKX0sQVIucHJvdG90eXBlLnRlcm1pbmF0ZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLlljJiYodGhpcy5ZYy5fcmVtb3ZlU2VydmljZUluc3RhbmNlKCJmaXJlc3RvcmUiKSx0aGlzLlljLl9yZW1vdmVTZXJ2aWNlSW5zdGFuY2UoImZpcmVzdG9yZS1leHAiKSksdGhpcy5fZGVsZWdhdGUuX2RlbGV0ZSgpfSxBUi5wcm90b3R5cGUud2FpdEZvclBlbmRpbmdXcml0ZXM9ZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24obil7dmFyIHQ9dGhpcyxyPW5ldyBhSTtyZXR1cm4gbi5hc3luY1F1ZXVlLmVucXVldWVBbmRGb3JnZXQoZnVuY3Rpb24oKXtyZXR1cm4gJGkodCx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIGU7cmV0dXJuIFppKHRoaXMsZnVuY3Rpb24odCl7c3dpdGNoKHQubGFiZWwpe2Nhc2UgMDpyZXR1cm4gZT1NQyxbNCxDTihuKV07Y2FzZSAxOnJldHVyblsyLGUuYXBwbHkodm9pZCAwLFt0LnNlbnQoKSxyXSldfX0pfSl9KSxyLnByb21pc2V9KHdBKFlOKHRoaXMuX2RlbGVnYXRlLHlBKSkpfSxBUi5wcm90b3R5cGUub25TbmFwc2hvdHNJblN5bmM9ZnVuY3Rpb24odCl7cmV0dXJuIGU9dGhpcy5fZGVsZWdhdGUsdD10LGZ1bmN0aW9uKG4sdCl7dmFyIGU9dGhpcyxyPW5ldyBjTih0KTtyZXR1cm4gbi5hc3luY1F1ZXVlLmVucXVldWVBbmRGb3JnZXQoZnVuY3Rpb24oKXtyZXR1cm4gJGkoZSx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIGU7cmV0dXJuIFppKHRoaXMsZnVuY3Rpb24odCl7c3dpdGNoKHQubGFiZWwpe2Nhc2UgMDpyZXR1cm4gZT1mdW5jdGlvbih0LGUpe3QuR3IuYWRkKGUpLGUubmV4dCgpfSxbNCxOTihuKV07Y2FzZSAxOnJldHVyblsyLGUuYXBwbHkodm9pZCAwLFt0LnNlbnQoKSxyXSldfX0pfSl9KSxmdW5jdGlvbigpe3IuV28oKSxuLmFzeW5jUXVldWUuZW5xdWV1ZUFuZEZvcmdldChmdW5jdGlvbigpe3JldHVybiAkaShlLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgZTtyZXR1cm4gWmkodGhpcyxmdW5jdGlvbih0KXtzd2l0Y2godC5sYWJlbCl7Y2FzZSAwOnJldHVybiBlPWZ1bmN0aW9uKHQsZSl7dC5Hci5kZWxldGUoZSl9LFs0LE5OKG4pXTtjYXNlIDE6cmV0dXJuWzIsZS5hcHBseSh2b2lkIDAsW3Quc2VudCgpLHJdKV19fSl9KX0pfX0od0EoWU4oZSx5QSkpLGRBKHQpP3Q6e25leHQ6dH0pO3ZhciBlfSxPYmplY3QuZGVmaW5lUHJvcGVydHkoQVIucHJvdG90eXBlLCJhcHAiLHtnZXQ6ZnVuY3Rpb24oKXtpZighdGhpcy5ZYyl0aHJvdyBuZXcgRnkoTXkuRkFJTEVEX1BSRUNPTkRJVElPTiwiRmlyZXN0b3JlIHdhcyBub3QgaW5pdGlhbGl6ZWQgdXNpbmcgdGhlIEZpcmViYXNlIFNESy4gJ2FwcCcgaXMgbm90IGF2YWlsYWJsZSIpO3JldHVybiB0aGlzLlljfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLEFSLnByb3RvdHlwZS5jb2xsZWN0aW9uPWZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gbmV3IFlSKHRoaXMsdUEodGhpcy5fZGVsZWdhdGUsdCkpfWNhdGNoKHQpe3Rocm93IGpSKHQsImNvbGxlY3Rpb24oKSIsIkZpcmVzdG9yZS5jb2xsZWN0aW9uKCkiKX19LEFSLnByb3RvdHlwZS5kb2M9ZnVuY3Rpb24odCl7dHJ5e3JldHVybiBuZXcgRlIodGhpcyxjQSh0aGlzLl9kZWxlZ2F0ZSx0KSl9Y2F0Y2godCl7dGhyb3cgalIodCwiZG9jKCkiLCJGaXJlc3RvcmUuZG9jKCkiKX19LEFSLnByb3RvdHlwZS5jb2xsZWN0aW9uR3JvdXA9ZnVuY3Rpb24odCl7dHJ5e3JldHVybiBuZXcgR1IodGhpcyxmdW5jdGlvbih0LGUpe2lmKHQ9WU4odCxaTiksS04oImNvbGxlY3Rpb25Hcm91cCIsImNvbGxlY3Rpb24gaWQiLGUpLDA8PWUuaW5kZXhPZigiLyIpKXRocm93IG5ldyBGeShNeS5JTlZBTElEX0FSR1VNRU5ULCJJbnZhbGlkIGNvbGxlY3Rpb24gSUQgJyIrZSsiJyBwYXNzZWQgdG8gZnVuY3Rpb24gY29sbGVjdGlvbkdyb3VwKCkuIENvbGxlY3Rpb24gSURzIG11c3Qgbm90IGNvbnRhaW4gJy8nLiIpO3JldHVybiBuZXcgZUEodCxudWxsLChlPWUsbmV3IFNiKGFtLmVtcHR5UGF0aCgpLGUpKSl9KHRoaXMuX2RlbGVnYXRlLHQpKX1jYXRjaCh0KXt0aHJvdyBqUih0LCJjb2xsZWN0aW9uR3JvdXAoKSIsIkZpcmVzdG9yZS5jb2xsZWN0aW9uR3JvdXAoKSIpfX0sQVIucHJvdG90eXBlLnJ1blRyYW5zYWN0aW9uPWZ1bmN0aW9uKGUpe3ZhciBuLHI9dGhpcztyZXR1cm4gZnVuY3Rpb24obixyKXt2YXIgdD10aGlzLGk9bmV3IGFJO3JldHVybiBuLmFzeW5jUXVldWUuZW5xdWV1ZUFuZEZvcmdldChmdW5jdGlvbigpe3JldHVybiAkaSh0LHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgZTtyZXR1cm4gWmkodGhpcyxmdW5jdGlvbih0KXtzd2l0Y2godC5sYWJlbCl7Y2FzZSAwOnJldHVybls0LElOKG4pLnRoZW4oZnVuY3Rpb24odCl7cmV0dXJuIHQuZGF0YXN0b3JlfSldO2Nhc2UgMTpyZXR1cm4gZT10LnNlbnQoKSxuZXcgZk4obi5hc3luY1F1ZXVlLGUscixpKS5ydW4oKSxbMl19fSl9KX0pLGkucHJvbWlzZX0od0Eobj10aGlzLl9kZWxlZ2F0ZSksZnVuY3Rpb24odCl7cmV0dXJuIHQ9bmV3IHlSKG4sdCksZShuZXcgUFIocix0KSl9KX0sQVIucHJvdG90eXBlLmJhdGNoPWZ1bmN0aW9uKCl7dmFyIGU9dGhpcztyZXR1cm4gd0EodGhpcy5fZGVsZWdhdGUpLG5ldyBPUihuZXcgb1IodGhpcy5fZGVsZWdhdGUsZnVuY3Rpb24odCl7cmV0dXJuIGRSKGUuX2RlbGVnYXRlLHQpfSkpfSxBUi5wcm90b3R5cGUubG9hZEJ1bmRsZT1mdW5jdGlvbih0KXt0aHJvdyBuZXcgRnkoTXkuRkFJTEVEX1BSRUNPTkRJVElPTiwnImxvYWRCdW5kbGUoKSIgZG9lcyBub3QgZXhpc3QsIGhhdmUgeW91IGltcG9ydGVkICJmaXJlYmFzZS9maXJlc3RvcmUvYnVuZGxlIj8nKX0sQVIucHJvdG90eXBlLm5hbWVkUXVlcnk9ZnVuY3Rpb24odCl7dGhyb3cgbmV3IEZ5KE15LkZBSUxFRF9QUkVDT05ESVRJT04sJyJuYW1lZFF1ZXJ5KCkiIGRvZXMgbm90IGV4aXN0LCBoYXZlIHlvdSBpbXBvcnRlZCAiZmlyZWJhc2UvZmlyZXN0b3JlL2J1bmRsZSI/Jyl9LEFSKSxDUj0oWGkoTlIsSVI9U24pLE5SLnByb3RvdHlwZS5jb252ZXJ0Qnl0ZXM9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBUUihuZXcgU0EodCkpfSxOUi5wcm90b3R5cGUuY29udmVydFJlZmVyZW5jZT1mdW5jdGlvbih0KXt0PXRoaXMuY29udmVydERvY3VtZW50S2V5KHQsdGhpcy5maXJlc3RvcmUuX2RhdGFiYXNlSWQpO3JldHVybiBGUi5YYyh0LHRoaXMuZmlyZXN0b3JlLG51bGwpfSxOUik7ZnVuY3Rpb24gTlIodCl7dmFyIGU9dGhpcztyZXR1cm4oZT1JUi5jYWxsKHRoaXMpfHx0aGlzKS5maXJlc3RvcmU9dCxlfWZ1bmN0aW9uIEFSKHQsZSxuKXt2YXIgcj10aGlzO3RoaXMuX2RlbGVnYXRlPWUsdGhpcy5KYz1uLHRoaXMuSU5URVJOQUw9e2RlbGV0ZTpmdW5jdGlvbigpe3JldHVybiByLnRlcm1pbmF0ZSgpfX0sdCBpbnN0YW5jZW9mIE9OfHwodGhpcy5ZYz10KX1mdW5jdGlvbiBrUigpe31mdW5jdGlvbiBSUih0KXt0aGlzLl9kZWxlZ2F0ZT10fXZhciBQUj0oTVIucHJvdG90eXBlLmdldD1mdW5jdGlvbih0KXt2YXIgZT10aGlzLG49blAodCk7cmV0dXJuIHRoaXMuX2RlbGVnYXRlLmdldChuKS50aGVuKGZ1bmN0aW9uKHQpe3JldHVybiBuZXcgV1IoZS5fZmlyZXN0b3JlLG5ldyBDayhlLl9maXJlc3RvcmUuX2RlbGVnYXRlLGUuX3VzZXJEYXRhV3JpdGVyLHQuX2tleSx0Ll9kb2N1bWVudCx0Lm1ldGFkYXRhLG4uX2NvbnZlcnRlcikpfSl9LE1SLnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24odCxlLG4pe3Q9blAodCk7cmV0dXJuIG4/KFdOKCJUcmFuc2FjdGlvbi5zZXQiLG4pLHRoaXMuX2RlbGVnYXRlLnNldCh0LGUsbikpOnRoaXMuX2RlbGVnYXRlLnNldCh0LGUpLHRoaXN9LE1SLnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24odCxlLG4pe2Zvcih2YXIgcj1bXSxpPTM7aTxhcmd1bWVudHMubGVuZ3RoO2krKylyW2ktM109YXJndW1lbnRzW2ldO3ZhciBvPW5QKHQpO3JldHVybiAyPT09YXJndW1lbnRzLmxlbmd0aD90aGlzLl9kZWxlZ2F0ZS51cGRhdGUobyxlKToodD10aGlzLl9kZWxlZ2F0ZSkudXBkYXRlLmFwcGx5KHQsbm8oW28sZSxuXSxyKSksdGhpc30sTVIucHJvdG90eXBlLmRlbGV0ZT1mdW5jdGlvbih0KXt0PW5QKHQpO3JldHVybiB0aGlzLl9kZWxlZ2F0ZS5kZWxldGUodCksdGhpc30sTVIpLE9SPShMUi5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKHQsZSxuKXt0PW5QKHQpO3JldHVybiBuPyhXTigiV3JpdGVCYXRjaC5zZXQiLG4pLHRoaXMuX2RlbGVnYXRlLnNldCh0LGUsbikpOnRoaXMuX2RlbGVnYXRlLnNldCh0LGUpLHRoaXN9LExSLnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24odCxlLG4pe2Zvcih2YXIgcj1bXSxpPTM7aTxhcmd1bWVudHMubGVuZ3RoO2krKylyW2ktM109YXJndW1lbnRzW2ldO3ZhciBvPW5QKHQpO3JldHVybiAyPT09YXJndW1lbnRzLmxlbmd0aD90aGlzLl9kZWxlZ2F0ZS51cGRhdGUobyxlKToodD10aGlzLl9kZWxlZ2F0ZSkudXBkYXRlLmFwcGx5KHQsbm8oW28sZSxuXSxyKSksdGhpc30sTFIucHJvdG90eXBlLmRlbGV0ZT1mdW5jdGlvbih0KXt0PW5QKHQpO3JldHVybiB0aGlzLl9kZWxlZ2F0ZS5kZWxldGUodCksdGhpc30sTFIucHJvdG90eXBlLmNvbW1pdD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9kZWxlZ2F0ZS5jb21taXQoKX0sTFIpLERSPSh4Ui5wcm90b3R5cGUuZnJvbUZpcmVzdG9yZT1mdW5jdGlvbih0LGUpe3Q9bmV3IE5rKHRoaXMuX2ZpcmVzdG9yZS5fZGVsZWdhdGUsdGhpcy5fdXNlckRhdGFXcml0ZXIsdC5fa2V5LHQuX2RvY3VtZW50LHQubWV0YWRhdGEsbnVsbCk7cmV0dXJuIHRoaXMuX2RlbGVnYXRlLmZyb21GaXJlc3RvcmUobmV3IEhSKHRoaXMuX2ZpcmVzdG9yZSx0KSxudWxsIT1lP2U6e30pfSx4Ui5wcm90b3R5cGUudG9GaXJlc3RvcmU9ZnVuY3Rpb24odCxlKXtyZXR1cm4gZT90aGlzLl9kZWxlZ2F0ZS50b0ZpcmVzdG9yZSh0LGUpOnRoaXMuX2RlbGVnYXRlLnRvRmlyZXN0b3JlKHQpfSx4Ui5aYz1mdW5jdGlvbih0LGUpe3ZhciBuPXhSLnR1LHI9bi5nZXQodCk7cnx8KHI9bmV3IFdlYWtNYXAsbi5zZXQodCxyKSk7bj1yLmdldChlKTtyZXR1cm4gbnx8KG49bmV3IHhSKHQsbmV3IENSKHQpLGUpLHIuc2V0KGUsbikpLG59LHhSKTtmdW5jdGlvbiB4Uih0LGUsbil7dGhpcy5fZmlyZXN0b3JlPXQsdGhpcy5fdXNlckRhdGFXcml0ZXI9ZSx0aGlzLl9kZWxlZ2F0ZT1ufWZ1bmN0aW9uIExSKHQpe3RoaXMuX2RlbGVnYXRlPXR9ZnVuY3Rpb24gTVIodCxlKXt0aGlzLl9maXJlc3RvcmU9dCx0aGlzLl9kZWxlZ2F0ZT1lLHRoaXMuX3VzZXJEYXRhV3JpdGVyPW5ldyBDUih0KX1EUi50dT1uZXcgV2Vha01hcDt2YXIgRlI9KFVSLmV1PWZ1bmN0aW9uKHQsZSxuKXtpZih0Lmxlbmd0aCUyIT0wKXRocm93IG5ldyBGeShNeS5JTlZBTElEX0FSR1VNRU5ULCJJbnZhbGlkIGRvY3VtZW50IHJlZmVyZW5jZS4gRG9jdW1lbnQgcmVmZXJlbmNlcyBtdXN0IGhhdmUgYW4gZXZlbiBudW1iZXIgb2Ygc2VnbWVudHMsIGJ1dCAiK3QuY2Fub25pY2FsU3RyaW5nKCkrIiBoYXMgIit0Lmxlbmd0aCk7cmV0dXJuIG5ldyBVUihlLG5ldyB0QShlLl9kZWxlZ2F0ZSxuLG5ldyBDbSh0KSkpfSxVUi5YYz1mdW5jdGlvbih0LGUsbil7cmV0dXJuIG5ldyBVUihlLG5ldyB0QShlLl9kZWxlZ2F0ZSxuLHQpKX0sT2JqZWN0LmRlZmluZVByb3BlcnR5KFVSLnByb3RvdHlwZSwiaWQiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fZGVsZWdhdGUuaWR9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KFVSLnByb3RvdHlwZSwicGFyZW50Iix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBZUih0aGlzLmZpcmVzdG9yZSx0aGlzLl9kZWxlZ2F0ZS5wYXJlbnQpfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShVUi5wcm90b3R5cGUsInBhdGgiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fZGVsZWdhdGUucGF0aH0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxVUi5wcm90b3R5cGUuY29sbGVjdGlvbj1mdW5jdGlvbih0KXt0cnl7cmV0dXJuIG5ldyBZUih0aGlzLmZpcmVzdG9yZSx1QSh0aGlzLl9kZWxlZ2F0ZSx0KSl9Y2F0Y2godCl7dGhyb3cgalIodCwiY29sbGVjdGlvbigpIiwiRG9jdW1lbnRSZWZlcmVuY2UuY29sbGVjdGlvbigpIil9fSxVUi5wcm90b3R5cGUuaXNFcXVhbD1mdW5jdGlvbih0KXtyZXR1cm4odD1abyh0KSlpbnN0YW5jZW9mIHRBJiZoQSh0aGlzLl9kZWxlZ2F0ZSx0KX0sVVIucHJvdG90eXBlLnNldD1mdW5jdGlvbih0LGUpe2U9V04oIkRvY3VtZW50UmVmZXJlbmNlLnNldCIsZSk7dHJ5e3JldHVybiBmdW5jdGlvbih0LGUsbil7dD1ZTih0LHRBKTt2YXIgcj1ZTih0LmZpcmVzdG9yZSx5QSksZT1uUih0Ll9jb252ZXJ0ZXIsZSxuKTtyZXR1cm4gZFIocixbQkEoVkEociksInNldERvYyIsdC5fa2V5LGUsbnVsbCE9PXQuX2NvbnZlcnRlcixuKS50b011dGF0aW9uKHQuX2tleSxjdy5ub25lKCkpXSl9KHRoaXMuX2RlbGVnYXRlLHQsZSl9Y2F0Y2godCl7dGhyb3cgalIodCwic2V0RG9jKCkiLCJEb2N1bWVudFJlZmVyZW5jZS5zZXQoKSIpfX0sVVIucHJvdG90eXBlLnVwZGF0ZT1mdW5jdGlvbih0LGUpe2Zvcih2YXIgbj1bXSxyPTI7cjxhcmd1bWVudHMubGVuZ3RoO3IrKyluW3ItMl09YXJndW1lbnRzW3JdO3RyeXtyZXR1cm4gMT09PWFyZ3VtZW50cy5sZW5ndGg/ZlIodGhpcy5fZGVsZWdhdGUsdCk6ZlIuYXBwbHkodm9pZCAwLG5vKFt0aGlzLl9kZWxlZ2F0ZSx0LGVdLG4pKX1jYXRjaCh0KXt0aHJvdyBqUih0LCJ1cGRhdGVEb2MoKSIsIkRvY3VtZW50UmVmZXJlbmNlLnVwZGF0ZSgpIil9fSxVUi5wcm90b3R5cGUuZGVsZXRlPWZ1bmN0aW9uKCl7cmV0dXJuIGRSKFlOKCh0PXRoaXMuX2RlbGVnYXRlKS5maXJlc3RvcmUseUEpLFtuZXcgQXcodC5fa2V5LGN3Lm5vbmUoKSldKTt2YXIgdH0sVVIucHJvdG90eXBlLm9uU25hcHNob3Q9ZnVuY3Rpb24oKXtmb3IodmFyIGU9dGhpcyx0PVtdLG49MDtuPGFyZ3VtZW50cy5sZW5ndGg7bisrKXRbbl09YXJndW1lbnRzW25dO3ZhciByPXFSKHQpLGk9VlIodCxmdW5jdGlvbih0KXtyZXR1cm4gbmV3IFdSKGUuZmlyZXN0b3JlLG5ldyBDayhlLmZpcmVzdG9yZS5fZGVsZWdhdGUsZS5fdXNlckRhdGFXcml0ZXIsdC5fa2V5LHQuX2RvY3VtZW50LHQubWV0YWRhdGEsZS5fZGVsZWdhdGUuX2NvbnZlcnRlcikpfSk7cmV0dXJuIHBSKHRoaXMuX2RlbGVnYXRlLHIsaSl9LFVSLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztyZXR1cm4oImNhY2hlIj09PShudWxsPT10P3ZvaWQgMDp0LnNvdXJjZSk/ZnVuY3Rpb24oZSl7ZT1ZTihlLHRBKTt2YXIgbj1ZTihlLmZpcmVzdG9yZSx5QSksdD13QShuKSxyPW5ldyBoUihuKTtyZXR1cm4gZnVuY3Rpb24obixyKXt2YXIgdD10aGlzLGk9bmV3IGFJO3JldHVybiBuLmFzeW5jUXVldWUuZW5xdWV1ZUFuZEZvcmdldChmdW5jdGlvbigpe3JldHVybiAkaSh0LHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgZTtyZXR1cm4gWmkodGhpcyxmdW5jdGlvbih0KXtzd2l0Y2godC5sYWJlbCl7Y2FzZSAwOnJldHVybiBlPWZ1bmN0aW9uKG8scyxhKXtyZXR1cm4gJGkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIHIsaTtyZXR1cm4gWmkodGhpcyxmdW5jdGlvbih0KXtzd2l0Y2godC5sYWJlbCl7Y2FzZSAwOnJldHVybiB0LnRyeXMucHVzaChbMCwyLCwzXSksWzQsKGU9cywobj1vKS5wZXJzaXN0ZW5jZS5ydW5UcmFuc2FjdGlvbigicmVhZCBkb2N1bWVudCIsInJlYWRvbmx5IixmdW5jdGlvbih0KXtyZXR1cm4gbi5Nbi5tbih0LGUpfSkpXTtjYXNlIDE6cmV0dXJuKGk9dC5zZW50KCkpLmlzRm91bmREb2N1bWVudCgpP2EucmVzb2x2ZShpKTppLmlzTm9Eb2N1bWVudCgpP2EucmVzb2x2ZShudWxsKTphLnJlamVjdChuZXcgRnkoTXkuVU5BVkFJTEFCTEUsIkZhaWxlZCB0byBnZXQgZG9jdW1lbnQgZnJvbSBjYWNoZS4gKEhvd2V2ZXIsIHRoaXMgZG9jdW1lbnQgbWF5IGV4aXN0IG9uIHRoZSBzZXJ2ZXIuIFJ1biBhZ2FpbiB3aXRob3V0IHNldHRpbmcgJ3NvdXJjZScgaW4gdGhlIEdldE9wdGlvbnMgdG8gYXR0ZW1wdCB0byByZXRyaWV2ZSB0aGUgZG9jdW1lbnQgZnJvbSB0aGUgc2VydmVyLikiKSksWzMsM107Y2FzZSAyOnJldHVybiByPXQuc2VudCgpLGk9bkMociwiRmFpbGVkIHRvIGdldCBkb2N1bWVudCAnIitzKyIgZnJvbSBjYWNoZSIpLGEucmVqZWN0KGkpLFszLDNdO2Nhc2UgMzpyZXR1cm5bMl19dmFyIGUsbn0pfSl9LFs0LEVOKG4pXTtjYXNlIDE6cmV0dXJuWzIsZS5hcHBseSh2b2lkIDAsW3Quc2VudCgpLHIsaV0pXX19KX0pfSksaS5wcm9taXNlfSh0LGUuX2tleSkudGhlbihmdW5jdGlvbih0KXtyZXR1cm4gbmV3IENrKG4scixlLl9rZXksdCxuZXcgU2sobnVsbCE9PXQmJnQuaGFzTG9jYWxNdXRhdGlvbnMsITApLGUuX2NvbnZlcnRlcil9KX06InNlcnZlciI9PT0obnVsbD09dD92b2lkIDA6dC5zb3VyY2UpP2Z1bmN0aW9uKGUpe2U9WU4oZSx0QSk7dmFyIG49WU4oZS5maXJlc3RvcmUseUEpO3JldHVybiBBTih3QShuKSxlLl9rZXkse3NvdXJjZToic2VydmVyIn0pLnRoZW4oZnVuY3Rpb24odCl7cmV0dXJuIHZSKG4sZSx0KX0pfTpmdW5jdGlvbihlKXtlPVlOKGUsdEEpO3ZhciBuPVlOKGUuZmlyZXN0b3JlLHlBKTtyZXR1cm4gQU4od0EobiksZS5fa2V5KS50aGVuKGZ1bmN0aW9uKHQpe3JldHVybiB2UihuLGUsdCl9KX0pKHRoaXMuX2RlbGVnYXRlKS50aGVuKGZ1bmN0aW9uKHQpe3JldHVybiBuZXcgV1IoZS5maXJlc3RvcmUsbmV3IENrKGUuZmlyZXN0b3JlLl9kZWxlZ2F0ZSxlLl91c2VyRGF0YVdyaXRlcix0Ll9rZXksdC5fZG9jdW1lbnQsdC5tZXRhZGF0YSxlLl9kZWxlZ2F0ZS5fY29udmVydGVyKSl9KX0sVVIucHJvdG90eXBlLndpdGhDb252ZXJ0ZXI9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBVUih0aGlzLmZpcmVzdG9yZSx0P3RoaXMuX2RlbGVnYXRlLndpdGhDb252ZXJ0ZXIoRFIuWmModGhpcy5maXJlc3RvcmUsdCkpOnRoaXMuX2RlbGVnYXRlLndpdGhDb252ZXJ0ZXIobnVsbCkpfSxVUik7ZnVuY3Rpb24gVVIodCxlKXt0aGlzLmZpcmVzdG9yZT10LHRoaXMuX2RlbGVnYXRlPWUsdGhpcy5fdXNlckRhdGFXcml0ZXI9bmV3IENSKHQpfWZ1bmN0aW9uIGpSKHQsZSxuKXtyZXR1cm4gdC5tZXNzYWdlPXQubWVzc2FnZS5yZXBsYWNlKGUsbiksdH1mdW5jdGlvbiBxUih0KXtmb3IodmFyIGU9MCxuPXQ7ZTxuLmxlbmd0aDtlKyspe3ZhciByPW5bZV07aWYoIm9iamVjdCI9PXR5cGVvZiByJiYhZEEocikpcmV0dXJuIHJ9cmV0dXJue319ZnVuY3Rpb24gVlIodCxlKXt2YXIgbjtyZXR1cm57bmV4dDpmdW5jdGlvbih0KXtuLm5leHQmJm4ubmV4dChlKHQpKX0sZXJyb3I6bnVsbD09PSh0PShuPWRBKHRbMF0pP3RbMF06ZEEodFsxXSk/dFsxXToiZnVuY3Rpb24iPT10eXBlb2YgdFswXT97bmV4dDp0WzBdLGVycm9yOnRbMV0sY29tcGxldGU6dFsyXX06e25leHQ6dFsxXSxlcnJvcjp0WzJdLGNvbXBsZXRlOnRbM119KS5lcnJvcil8fHZvaWQgMD09PXQ/dm9pZCAwOnQuYmluZChuKSxjb21wbGV0ZTpudWxsPT09KHQ9bi5jb21wbGV0ZSl8fHZvaWQgMD09PXQ/dm9pZCAwOnQuYmluZChuKX19dmFyIEJSLEtSLFdSPShPYmplY3QuZGVmaW5lUHJvcGVydHkoZVAucHJvdG90eXBlLCJyZWYiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IEZSKHRoaXMuX2ZpcmVzdG9yZSx0aGlzLl9kZWxlZ2F0ZS5yZWYpfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlUC5wcm90b3R5cGUsImlkIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2RlbGVnYXRlLmlkfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlUC5wcm90b3R5cGUsIm1ldGFkYXRhIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2RlbGVnYXRlLm1ldGFkYXRhfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlUC5wcm90b3R5cGUsImV4aXN0cyIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9kZWxlZ2F0ZS5leGlzdHMoKX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxlUC5wcm90b3R5cGUuZGF0YT1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fZGVsZWdhdGUuZGF0YSh0KX0sZVAucHJvdG90eXBlLmdldD1mdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLl9kZWxlZ2F0ZS5nZXQodCxlKX0sZVAucHJvdG90eXBlLmlzRXF1YWw9ZnVuY3Rpb24odCl7cmV0dXJuIERrKHRoaXMuX2RlbGVnYXRlLHQuX2RlbGVnYXRlKX0sZVApLEhSPShYaSh0UCxLUj1XUiksdFAucHJvdG90eXBlLmRhdGE9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX2RlbGVnYXRlLmRhdGEodCl9LHRQKSxHUj0oWlIucHJvdG90eXBlLndoZXJlPWZ1bmN0aW9uKHQsZSxuKXt0cnl7cmV0dXJuIG5ldyBaUih0aGlzLmZpcmVzdG9yZSxMayh0aGlzLl9kZWxlZ2F0ZSwocj1uLGk9ZSxvPUlrKCJ3aGVyZSIsdCksbmV3IFZrKG8saSxyKSkpKX1jYXRjaCh0KXt0aHJvdyBqUih0LC8ob3JkZXJCeXx3aGVyZSlcKFwpLywiUXVlcnkuJDEoKSIpfXZhciByLGksb30sWlIucHJvdG90eXBlLm9yZGVyQnk9ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIG5ldyBaUih0aGlzLmZpcmVzdG9yZSxMayh0aGlzLl9kZWxlZ2F0ZSwobj12b2lkIDA9PT1lPyJhc2MiOmUscj1Jaygib3JkZXJCeSIsdCksbmV3IEJrKHIsbikpKSl9Y2F0Y2godCl7dGhyb3cgalIodCwvKG9yZGVyQnl8d2hlcmUpXChcKS8sIlF1ZXJ5LiQxKCkiKX12YXIgbixyfSxaUi5wcm90b3R5cGUubGltaXQ9ZnVuY3Rpb24odCl7dHJ5e3JldHVybiBuZXcgWlIodGhpcy5maXJlc3RvcmUsTGsodGhpcy5fZGVsZWdhdGUsKFhOKCJsaW1pdCIsZT10KSxuZXcgS2soImxpbWl0IixlLCJGIikpKSl9Y2F0Y2godCl7dGhyb3cgalIodCwibGltaXQoKSIsIlF1ZXJ5LmxpbWl0KCkiKX12YXIgZX0sWlIucHJvdG90eXBlLmxpbWl0VG9MYXN0PWZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gbmV3IFpSKHRoaXMuZmlyZXN0b3JlLExrKHRoaXMuX2RlbGVnYXRlLChYTigibGltaXRUb0xhc3QiLGU9dCksbmV3IEtrKCJsaW1pdFRvTGFzdCIsZSwiTCIpKSkpfWNhdGNoKHQpe3Rocm93IGpSKHQsImxpbWl0VG9MYXN0KCkiLCJRdWVyeS5saW1pdFRvTGFzdCgpIil9dmFyIGV9LFpSLnByb3RvdHlwZS5zdGFydEF0PWZ1bmN0aW9uKCl7Zm9yKHZhciB0PVtdLGU9MDtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXRbZV09YXJndW1lbnRzW2VdO3RyeXtyZXR1cm4gbmV3IFpSKHRoaXMuZmlyZXN0b3JlLExrKHRoaXMuX2RlbGVnYXRlLGZ1bmN0aW9uKCl7Zm9yKHZhciB0PVtdLGU9MDtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXRbZV09YXJndW1lbnRzW2VdO3JldHVybiBuZXcgV2soInN0YXJ0QXQiLHQsITApfS5hcHBseSh2b2lkIDAsdCkpKX1jYXRjaCh0KXt0aHJvdyBqUih0LCJzdGFydEF0KCkiLCJRdWVyeS5zdGFydEF0KCkiKX19LFpSLnByb3RvdHlwZS5zdGFydEFmdGVyPWZ1bmN0aW9uKCl7Zm9yKHZhciB0PVtdLGU9MDtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXRbZV09YXJndW1lbnRzW2VdO3RyeXtyZXR1cm4gbmV3IFpSKHRoaXMuZmlyZXN0b3JlLExrKHRoaXMuX2RlbGVnYXRlLGZ1bmN0aW9uKCl7Zm9yKHZhciB0PVtdLGU9MDtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXRbZV09YXJndW1lbnRzW2VdO3JldHVybiBuZXcgV2soInN0YXJ0QWZ0ZXIiLHQsITEpfS5hcHBseSh2b2lkIDAsdCkpKX1jYXRjaCh0KXt0aHJvdyBqUih0LCJzdGFydEFmdGVyKCkiLCJRdWVyeS5zdGFydEFmdGVyKCkiKX19LFpSLnByb3RvdHlwZS5lbmRCZWZvcmU9ZnVuY3Rpb24oKXtmb3IodmFyIHQ9W10sZT0wO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspdFtlXT1hcmd1bWVudHNbZV07dHJ5e3JldHVybiBuZXcgWlIodGhpcy5maXJlc3RvcmUsTGsodGhpcy5fZGVsZWdhdGUsZnVuY3Rpb24oKXtmb3IodmFyIHQ9W10sZT0wO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspdFtlXT1hcmd1bWVudHNbZV07cmV0dXJuIG5ldyBIaygiZW5kQmVmb3JlIix0LCEwKX0uYXBwbHkodm9pZCAwLHQpKSl9Y2F0Y2godCl7dGhyb3cgalIodCwiZW5kQmVmb3JlKCkiLCJRdWVyeS5lbmRCZWZvcmUoKSIpfX0sWlIucHJvdG90eXBlLmVuZEF0PWZ1bmN0aW9uKCl7Zm9yKHZhciB0PVtdLGU9MDtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXRbZV09YXJndW1lbnRzW2VdO3RyeXtyZXR1cm4gbmV3IFpSKHRoaXMuZmlyZXN0b3JlLExrKHRoaXMuX2RlbGVnYXRlLGZ1bmN0aW9uKCl7Zm9yKHZhciB0PVtdLGU9MDtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXRbZV09YXJndW1lbnRzW2VdO3JldHVybiBuZXcgSGsoImVuZEF0Iix0LCExKX0uYXBwbHkodm9pZCAwLHQpKSl9Y2F0Y2godCl7dGhyb3cgalIodCwiZW5kQXQoKSIsIlF1ZXJ5LmVuZEF0KCkiKX19LFpSLnByb3RvdHlwZS5pc0VxdWFsPWZ1bmN0aW9uKHQpe3JldHVybiBsQSh0aGlzLl9kZWxlZ2F0ZSx0Ll9kZWxlZ2F0ZSl9LFpSLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztyZXR1cm4oImNhY2hlIj09PShudWxsPT10P3ZvaWQgMDp0LnNvdXJjZSk/ZnVuY3Rpb24oZSl7ZT1ZTihlLGVBKTt2YXIgbj1ZTihlLmZpcmVzdG9yZSx5QSksdD13QShuKSxyPW5ldyBoUihuKTtyZXR1cm4gZnVuY3Rpb24obixyKXt2YXIgdD10aGlzLGk9bmV3IGFJO3JldHVybiBuLmFzeW5jUXVldWUuZW5xdWV1ZUFuZEZvcmdldChmdW5jdGlvbigpe3JldHVybiAkaSh0LHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgZTtyZXR1cm4gWmkodGhpcyxmdW5jdGlvbih0KXtzd2l0Y2godC5sYWJlbCl7Y2FzZSAwOnJldHVybiBlPWZ1bmN0aW9uKGksbyxzKXtyZXR1cm4gJGkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIGUsbixyO3JldHVybiBaaSh0aGlzLGZ1bmN0aW9uKHQpe3N3aXRjaCh0LmxhYmVsKXtjYXNlIDA6cmV0dXJuIHQudHJ5cy5wdXNoKFswLDIsLDNdKSxbNCx2RShpLG8sITApXTtjYXNlIDE6cmV0dXJuIHI9dC5zZW50KCksZT1uZXcgU0MobyxyLkJuKSxuPWUuX28oci5kb2N1bWVudHMpLG49ZS5hcHBseUNoYW5nZXMobiwhMSkscy5yZXNvbHZlKG4uc25hcHNob3QpLFszLDNdO2Nhc2UgMjpyZXR1cm4gbj10LnNlbnQoKSxyPW5DKG4sIkZhaWxlZCB0byBleGVjdXRlIHF1ZXJ5ICciK28rIiBhZ2FpbnN0IGNhY2hlIikscy5yZWplY3QociksWzMsM107Y2FzZSAzOnJldHVyblsyXX19KX0pfSxbNCxFTihuKV07Y2FzZSAxOnJldHVyblsyLGUuYXBwbHkodm9pZCAwLFt0LnNlbnQoKSxyLGldKV19fSl9KX0pLGkucHJvbWlzZX0odCxlLl9xdWVyeSkudGhlbihmdW5jdGlvbih0KXtyZXR1cm4gbmV3IEFrKG4scixlLHQpfSl9OiJzZXJ2ZXIiPT09KG51bGw9PXQ/dm9pZCAwOnQuc291cmNlKT9mdW5jdGlvbihlKXtlPVlOKGUsZUEpO3ZhciBuPVlOKGUuZmlyZXN0b3JlLHlBKSx0PXdBKG4pLHI9bmV3IGhSKG4pO3JldHVybiBrTih0LGUuX3F1ZXJ5LHtzb3VyY2U6InNlcnZlciJ9KS50aGVuKGZ1bmN0aW9uKHQpe3JldHVybiBuZXcgQWsobixyLGUsdCl9KX06ZnVuY3Rpb24oZSl7ZT1ZTihlLGVBKTt2YXIgbj1ZTihlLmZpcmVzdG9yZSx5QSksdD13QShuKSxyPW5ldyBoUihuKTtyZXR1cm4geGsoZS5fcXVlcnkpLGtOKHQsZS5fcXVlcnkpLnRoZW4oZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBBayhuLHIsZSx0KX0pfSkodGhpcy5fZGVsZWdhdGUpLnRoZW4oZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBRUihlLmZpcmVzdG9yZSxuZXcgQWsoZS5maXJlc3RvcmUuX2RlbGVnYXRlLGUuX3VzZXJEYXRhV3JpdGVyLGUuX2RlbGVnYXRlLHQuX3NuYXBzaG90KSl9KX0sWlIucHJvdG90eXBlLm9uU25hcHNob3Q9ZnVuY3Rpb24oKXtmb3IodmFyIGU9dGhpcyx0PVtdLG49MDtuPGFyZ3VtZW50cy5sZW5ndGg7bisrKXRbbl09YXJndW1lbnRzW25dO3ZhciByPXFSKHQpLGk9VlIodCxmdW5jdGlvbih0KXtyZXR1cm4gbmV3IFFSKGUuZmlyZXN0b3JlLG5ldyBBayhlLmZpcmVzdG9yZS5fZGVsZWdhdGUsZS5fdXNlckRhdGFXcml0ZXIsZS5fZGVsZWdhdGUsdC5fc25hcHNob3QpKX0pO3JldHVybiBwUih0aGlzLl9kZWxlZ2F0ZSxyLGkpfSxaUi5wcm90b3R5cGUud2l0aENvbnZlcnRlcj1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IFpSKHRoaXMuZmlyZXN0b3JlLHQ/dGhpcy5fZGVsZWdhdGUud2l0aENvbnZlcnRlcihEUi5aYyh0aGlzLmZpcmVzdG9yZSx0KSk6dGhpcy5fZGVsZWdhdGUud2l0aENvbnZlcnRlcihudWxsKSl9LFpSKSx6Uj0oT2JqZWN0LmRlZmluZVByb3BlcnR5KCRSLnByb3RvdHlwZSwidHlwZSIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9kZWxlZ2F0ZS50eXBlfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSgkUi5wcm90b3R5cGUsImRvYyIse2dldDpmdW5jdGlvbigpe3JldHVybiBuZXcgSFIodGhpcy5fZmlyZXN0b3JlLHRoaXMuX2RlbGVnYXRlLmRvYyl9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KCRSLnByb3RvdHlwZSwib2xkSW5kZXgiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fZGVsZWdhdGUub2xkSW5kZXh9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KCRSLnByb3RvdHlwZSwibmV3SW5kZXgiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fZGVsZWdhdGUubmV3SW5kZXh9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksJFIpLFFSPShPYmplY3QuZGVmaW5lUHJvcGVydHkoSlIucHJvdG90eXBlLCJxdWVyeSIse2dldDpmdW5jdGlvbigpe3JldHVybiBuZXcgR1IodGhpcy5fZmlyZXN0b3JlLHRoaXMuX2RlbGVnYXRlLnF1ZXJ5KX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoSlIucHJvdG90eXBlLCJtZXRhZGF0YSIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9kZWxlZ2F0ZS5tZXRhZGF0YX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoSlIucHJvdG90eXBlLCJzaXplIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2RlbGVnYXRlLnNpemV9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KEpSLnByb3RvdHlwZSwiZW1wdHkiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fZGVsZWdhdGUuZW1wdHl9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KEpSLnByb3RvdHlwZSwiZG9jcyIse2dldDpmdW5jdGlvbigpe3ZhciBlPXRoaXM7cmV0dXJuIHRoaXMuX2RlbGVnYXRlLmRvY3MubWFwKGZ1bmN0aW9uKHQpe3JldHVybiBuZXcgSFIoZS5fZmlyZXN0b3JlLHQpfSl9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksSlIucHJvdG90eXBlLmRvY0NoYW5nZXM9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztyZXR1cm4gdGhpcy5fZGVsZWdhdGUuZG9jQ2hhbmdlcyh0KS5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIG5ldyB6UihlLl9maXJlc3RvcmUsdCl9KX0sSlIucHJvdG90eXBlLmZvckVhY2g9ZnVuY3Rpb24oZSxuKXt2YXIgcj10aGlzO3RoaXMuX2RlbGVnYXRlLmZvckVhY2goZnVuY3Rpb24odCl7ZS5jYWxsKG4sbmV3IEhSKHIuX2ZpcmVzdG9yZSx0KSl9KX0sSlIucHJvdG90eXBlLmlzRXF1YWw9ZnVuY3Rpb24odCl7cmV0dXJuIERrKHRoaXMuX2RlbGVnYXRlLHQuX2RlbGVnYXRlKX0sSlIpLFlSPShYaShYUixCUj1HUiksT2JqZWN0LmRlZmluZVByb3BlcnR5KFhSLnByb3RvdHlwZSwiaWQiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fZGVsZWdhdGUuaWR9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KFhSLnByb3RvdHlwZSwicGF0aCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9kZWxlZ2F0ZS5wYXRofSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShYUi5wcm90b3R5cGUsInBhcmVudCIse2dldDpmdW5jdGlvbigpe3ZhciB0PXRoaXMuX2RlbGVnYXRlLnBhcmVudDtyZXR1cm4gdD9uZXcgRlIodGhpcy5maXJlc3RvcmUsdCk6bnVsbH0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxYUi5wcm90b3R5cGUuZG9jPWZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gbmV3IEZSKHRoaXMuZmlyZXN0b3JlLHZvaWQgMD09PXQ/Y0EodGhpcy5fZGVsZWdhdGUpOmNBKHRoaXMuX2RlbGVnYXRlLHQpKX1jYXRjaCh0KXt0aHJvdyBqUih0LCJkb2MoKSIsIkNvbGxlY3Rpb25SZWZlcmVuY2UuZG9jKCkiKX19LFhSLnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24odCl7dmFyIGUsbixyLGk9dGhpcztyZXR1cm4gZT10aGlzLl9kZWxlZ2F0ZSxuPXQsdD1ZTihlLmZpcmVzdG9yZSx5QSkscj1jQShlKSxuPW5SKGUuX2NvbnZlcnRlcixuKSxkUih0LFtCQShWQShlLmZpcmVzdG9yZSksImFkZERvYyIsci5fa2V5LG4sbnVsbCE9PWUuX2NvbnZlcnRlcix7fSkudG9NdXRhdGlvbihyLl9rZXksY3cuZXhpc3RzKCExKSldKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIHJ9KS50aGVuKGZ1bmN0aW9uKHQpe3JldHVybiBuZXcgRlIoaS5maXJlc3RvcmUsdCl9KX0sWFIucHJvdG90eXBlLmlzRXF1YWw9ZnVuY3Rpb24odCl7cmV0dXJuIGhBKHRoaXMuX2RlbGVnYXRlLHQuX2RlbGVnYXRlKX0sWFIucHJvdG90eXBlLndpdGhDb252ZXJ0ZXI9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBYUih0aGlzLmZpcmVzdG9yZSx0P3RoaXMuX2RlbGVnYXRlLndpdGhDb252ZXJ0ZXIoRFIuWmModGhpcy5maXJlc3RvcmUsdCkpOnRoaXMuX2RlbGVnYXRlLndpdGhDb252ZXJ0ZXIobnVsbCkpfSxYUik7ZnVuY3Rpb24gWFIodCxlKXt2YXIgbj10aGlzO3JldHVybihuPUJSLmNhbGwodGhpcyx0LGUpfHx0aGlzKS5maXJlc3RvcmU9dCxuLl9kZWxlZ2F0ZT1lLG59ZnVuY3Rpb24gSlIodCxlKXt0aGlzLl9maXJlc3RvcmU9dCx0aGlzLl9kZWxlZ2F0ZT1lfWZ1bmN0aW9uICRSKHQsZSl7dGhpcy5fZmlyZXN0b3JlPXQsdGhpcy5fZGVsZWdhdGU9ZX1mdW5jdGlvbiBaUih0LGUpe3RoaXMuZmlyZXN0b3JlPXQsdGhpcy5fZGVsZWdhdGU9ZSx0aGlzLl91c2VyRGF0YVdyaXRlcj1uZXcgQ1IodCl9ZnVuY3Rpb24gdFAoKXtyZXR1cm4gbnVsbCE9PUtSJiZLUi5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9ZnVuY3Rpb24gZVAodCxlKXt0aGlzLl9maXJlc3RvcmU9dCx0aGlzLl9kZWxlZ2F0ZT1lfWZ1bmN0aW9uIG5QKHQpe3JldHVybiBZTih0LHRBKX1pUC5kb2N1bWVudElkPWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBpUChjbS5rZXlGaWVsZCgpLmNhbm9uaWNhbFN0cmluZygpKX0saVAucHJvdG90eXBlLmlzRXF1YWw9ZnVuY3Rpb24odCl7cmV0dXJuKHQ9Wm8odCkpaW5zdGFuY2VvZiBFQSYmdGhpcy5fZGVsZWdhdGUuX2ludGVybmFsUGF0aC5pc0VxdWFsKHQuX2ludGVybmFsUGF0aCl9LEdhPWlQLHJQLnNlcnZlclRpbWVzdGFtcD1mdW5jdGlvbigpe3ZhciB0PW5ldyBKQSgic2VydmVyVGltZXN0YW1wIik7cmV0dXJuIHQuX21ldGhvZE5hbWU9IkZpZWxkVmFsdWUuc2VydmVyVGltZXN0YW1wIixuZXcgclAodCl9LHJQLmRlbGV0ZT1mdW5jdGlvbigpe3ZhciB0PW5ldyBXQSgiZGVsZXRlRmllbGQiKTtyZXR1cm4gdC5fbWV0aG9kTmFtZT0iRmllbGRWYWx1ZS5kZWxldGUiLG5ldyByUCh0KX0sclAuYXJyYXlVbmlvbj1mdW5jdGlvbigpe2Zvcih2YXIgdD1bXSxlPTA7ZTxhcmd1bWVudHMubGVuZ3RoO2UrKyl0W2VdPWFyZ3VtZW50c1tlXTt2YXIgbj1mdW5jdGlvbigpe2Zvcih2YXIgdD1bXSxlPTA7ZTxhcmd1bWVudHMubGVuZ3RoO2UrKyl0W2VdPWFyZ3VtZW50c1tlXTtyZXR1cm4gbmV3ICRBKCJhcnJheVVuaW9uIix0KX0uYXBwbHkodm9pZCAwLHQpO3JldHVybiBuLl9tZXRob2ROYW1lPSJGaWVsZFZhbHVlLmFycmF5VW5pb24iLG5ldyByUChuKX0sclAuYXJyYXlSZW1vdmU9ZnVuY3Rpb24oKXtmb3IodmFyIHQ9W10sZT0wO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspdFtlXT1hcmd1bWVudHNbZV07dmFyIG49ZnVuY3Rpb24oKXtmb3IodmFyIHQ9W10sZT0wO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspdFtlXT1hcmd1bWVudHNbZV07cmV0dXJuIG5ldyBaQSgiYXJyYXlSZW1vdmUiLHQpfS5hcHBseSh2b2lkIDAsdCk7cmV0dXJuIG4uX21ldGhvZE5hbWU9IkZpZWxkVmFsdWUuYXJyYXlSZW1vdmUiLG5ldyByUChuKX0sclAuaW5jcmVtZW50PWZ1bmN0aW9uKHQpe3Q9bmV3IHRrKCJpbmNyZW1lbnQiLHQpO3JldHVybiB0Ll9tZXRob2ROYW1lPSJGaWVsZFZhbHVlLmluY3JlbWVudCIsbmV3IHJQKHQpfSxyUC5wcm90b3R5cGUuaXNFcXVhbD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fZGVsZWdhdGUuaXNFcXVhbCh0Ll9kZWxlZ2F0ZSl9LFNuPXJQO2Z1bmN0aW9uIHJQKHQpe3RoaXMuX2RlbGVnYXRlPXR9ZnVuY3Rpb24gaVAoKXtmb3IodmFyIHQ9W10sZT0wO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspdFtlXT1hcmd1bWVudHNbZV07dGhpcy5fZGVsZWdhdGU9bmV3KEVBLmJpbmQuYXBwbHkoRUEsbm8oW3ZvaWQgMF0sdCkpKX1mdW5jdGlvbiBvUCh0KXtyZXR1cm4gZT10aGlzLl9kZWxlZ2F0ZSxzPXQsbj13QShlPVlOKGUseUEpKSx0PW5ldyBnQSxmdW5jdGlvbihuLHQscil7dmFyIGUsaT10aGlzLG89KGU9cyx0PWJTKHQpLGU9ZnVuY3Rpb24odCl7aWYodCBpbnN0YW5jZW9mIFVpbnQ4QXJyYXkpcmV0dXJuIHVOKHQsdm9pZCAwKTtpZih0IGluc3RhbmNlb2YgQXJyYXlCdWZmZXIpcmV0dXJuIHVOKG5ldyBVaW50OEFycmF5KHQpLHZvaWQgMCk7aWYodCBpbnN0YW5jZW9mIFJlYWRhYmxlU3RyZWFtKXJldHVybiB0LmdldFJlYWRlcigpO3Rocm93IG5ldyBFcnJvcigiU291cmNlIG9mIGB0b0J5dGVTdHJlYW1SZWFkZXJgIGhhcyB0byBiZSBhIEFycmF5QnVmZmVyIG9yIFJlYWRhYmxlU3RyZWFtIil9KCJzdHJpbmciPT10eXBlb2YgZT8obmV3IFRleHRFbmNvZGVyKS5lbmNvZGUoZSk6ZSksbmV3IGhOKGUsdCkpO24uYXN5bmNRdWV1ZS5lbnF1ZXVlQW5kRm9yZ2V0KGZ1bmN0aW9uKCl7cmV0dXJuICRpKGksdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBlO3JldHVybiBaaSh0aGlzLGZ1bmN0aW9uKHQpe3N3aXRjaCh0LmxhYmVsKXtjYXNlIDA6cmV0dXJuIGU9SkMsWzQsQ04obildO2Nhc2UgMTpyZXR1cm4gZS5hcHBseSh2b2lkIDAsW3Quc2VudCgpLG8scl0pLFsyXX19KX0pfSl9KG4sZS5fZGF0YWJhc2VJZCx0KSx0O3ZhciBlLHMsbn1mdW5jdGlvbiBzUCh0KXt2YXIgZT10aGlzLG49dGhpcy5fZGVsZWdhdGUsdD10O3JldHVybiBmdW5jdGlvbihuLHIpe3ZhciB0PXRoaXM7cmV0dXJuIG4uYXN5bmNRdWV1ZS5lbnF1ZXVlKGZ1bmN0aW9uKCl7cmV0dXJuICRpKHQsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBlO3JldHVybiBaaSh0aGlzLGZ1bmN0aW9uKHQpe3N3aXRjaCh0LmxhYmVsKXtjYXNlIDA6cmV0dXJuIGU9ZnVuY3Rpb24odCxlKXt2YXIgbj10O3JldHVybiBuLnBlcnNpc3RlbmNlLnJ1blRyYW5zYWN0aW9uKCJHZXQgbmFtZWQgcXVlcnkiLCJyZWFkb25seSIsZnVuY3Rpb24odCl7cmV0dXJuIG4uUWUuZ2V0TmFtZWRRdWVyeSh0LGUpfSl9LFs0LEVOKG4pXTtjYXNlIDE6cmV0dXJuWzIsZS5hcHBseSh2b2lkIDAsW3Quc2VudCgpLHJdKV19fSl9KX0pfSh3QShuPVlOKG4seUEpKSx0KS50aGVuKGZ1bmN0aW9uKHQpe3JldHVybiB0P25ldyBlQShuLG51bGwsdC5xdWVyeSk6bnVsbH0pLnRoZW4oZnVuY3Rpb24odCl7cmV0dXJuIHQ/bmV3IEdSKGUsdCk6bnVsbH0pfXZhciBhUCx1UCxjUD17RmlyZXN0b3JlOlNSLEdlb1BvaW50Ok5BLFRpbWVzdGFtcDokeSxCbG9iOlRSLFRyYW5zYWN0aW9uOlBSLFdyaXRlQmF0Y2g6T1IsRG9jdW1lbnRSZWZlcmVuY2U6RlIsRG9jdW1lbnRTbmFwc2hvdDpXUixRdWVyeTpHUixRdWVyeURvY3VtZW50U25hcHNob3Q6SFIsUXVlcnlTbmFwc2hvdDpRUixDb2xsZWN0aW9uUmVmZXJlbmNlOllSLEZpZWxkUGF0aDpHYSxGaWVsZFZhbHVlOlNuLHNldExvZ0xldmVsOmZ1bmN0aW9uKHQpe1V5LnNldExvZ0xldmVsKHQpfSxDQUNIRV9TSVpFX1VOTElNSVRFRDotMX07KGFQPVhsKS5JTlRFUk5BTC5yZWdpc3RlckNvbXBvbmVudChuZXcgdHMoImZpcmVzdG9yZSIsZnVuY3Rpb24odCl7dmFyIGU9dC5nZXRQcm92aWRlcigiYXBwIikuZ2V0SW1tZWRpYXRlKCk7cmV0dXJuIGU9ZSx0PXQuZ2V0UHJvdmlkZXIoImF1dGgtaW50ZXJuYWwiKSxuZXcgU1IoZSxuZXcgeUEoZSx0KSxuZXcgRVIpfSwiUFVCTElDIikuc2V0U2VydmljZVByb3BzKE9iamVjdC5hc3NpZ24oe30sY1ApKSksYVAucmVnaXN0ZXJWZXJzaW9uKCJAZmlyZWJhc2UvZmlyZXN0b3JlIiwiMi4yLjIiKSwodVA9U1IpLnByb3RvdHlwZS5sb2FkQnVuZGxlPW9QLHVQLnByb3RvdHlwZS5uYW1lZFF1ZXJ5PXNQO3ZhciBoUCxsUD17T0s6Im9rIixDQU5DRUxMRUQ6ImNhbmNlbGxlZCIsVU5LTk9XTjoidW5rbm93biIsSU5WQUxJRF9BUkdVTUVOVDoiaW52YWxpZC1hcmd1bWVudCIsREVBRExJTkVfRVhDRUVERUQ6ImRlYWRsaW5lLWV4Y2VlZGVkIixOT1RfRk9VTkQ6Im5vdC1mb3VuZCIsQUxSRUFEWV9FWElTVFM6ImFscmVhZHktZXhpc3RzIixQRVJNSVNTSU9OX0RFTklFRDoicGVybWlzc2lvbi1kZW5pZWQiLFVOQVVUSEVOVElDQVRFRDoidW5hdXRoZW50aWNhdGVkIixSRVNPVVJDRV9FWEhBVVNURUQ6InJlc291cmNlLWV4aGF1c3RlZCIsRkFJTEVEX1BSRUNPTkRJVElPTjoiZmFpbGVkLXByZWNvbmRpdGlvbiIsQUJPUlRFRDoiYWJvcnRlZCIsT1VUX09GX1JBTkdFOiJvdXQtb2YtcmFuZ2UiLFVOSU1QTEVNRU5URUQ6InVuaW1wbGVtZW50ZWQiLElOVEVSTkFMOiJpbnRlcm5hbCIsVU5BVkFJTEFCTEU6InVuYXZhaWxhYmxlIixEQVRBX0xPU1M6ImRhdGEtbG9zcyJ9LGZQPShYaShwUCxoUD1FcnJvcikscFApO2Z1bmN0aW9uIHBQKHQsZSxuKXtlPWhQLmNhbGwodGhpcyxlKXx8dGhpcztyZXR1cm4gT2JqZWN0LnNldFByb3RvdHlwZU9mKGUscFAucHJvdG90eXBlKSxlLmNvZGU9dCxlLmRldGFpbHM9bixlfWZ1bmN0aW9uIGRQKHQsZSxuKXt2YXIgcj1mdW5jdGlvbih0KXtpZigyMDA8PXQmJnQ8MzAwKXJldHVybiJvayI7c3dpdGNoKHQpe2Nhc2UgMDpyZXR1cm4iaW50ZXJuYWwiO2Nhc2UgNDAwOnJldHVybiJpbnZhbGlkLWFyZ3VtZW50IjtjYXNlIDQwMTpyZXR1cm4idW5hdXRoZW50aWNhdGVkIjtjYXNlIDQwMzpyZXR1cm4icGVybWlzc2lvbi1kZW5pZWQiO2Nhc2UgNDA0OnJldHVybiJub3QtZm91bmQiO2Nhc2UgNDA5OnJldHVybiJhYm9ydGVkIjtjYXNlIDQyOTpyZXR1cm4icmVzb3VyY2UtZXhoYXVzdGVkIjtjYXNlIDQ5OTpyZXR1cm4iY2FuY2VsbGVkIjtjYXNlIDUwMDpyZXR1cm4iaW50ZXJuYWwiO2Nhc2UgNTAxOnJldHVybiJ1bmltcGxlbWVudGVkIjtjYXNlIDUwMzpyZXR1cm4idW5hdmFpbGFibGUiO2Nhc2UgNTA0OnJldHVybiJkZWFkbGluZS1leGNlZWRlZCJ9cmV0dXJuInVua25vd24ifSh0KSxpPXIsbz12b2lkIDA7dHJ5e3ZhciBzPWUmJmUuZXJyb3I7aWYocyl7dmFyIGE9cy5zdGF0dXM7aWYoInN0cmluZyI9PXR5cGVvZiBhKXtpZighbFBbYV0pcmV0dXJuIG5ldyBmUCgiaW50ZXJuYWwiLCJpbnRlcm5hbCIpO3I9bFBbYV0saT1hfWE9cy5tZXNzYWdlOyJzdHJpbmciPT10eXBlb2YgYSYmKGk9YSksdm9pZCAwIT09KG89cy5kZXRhaWxzKSYmKG89bi5kZWNvZGUobykpfX1jYXRjaCh0KXt9cmV0dXJuIm9rIj09PXI/bnVsbDpuZXcgZlAocixpLG8pfXZhciB2UD0oZ1AucHJvdG90eXBlLmdldEF1dGhUb2tlbj1mdW5jdGlvbigpe3JldHVybiAkaSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgZTtyZXR1cm4gWmkodGhpcyxmdW5jdGlvbih0KXtzd2l0Y2godC5sYWJlbCl7Y2FzZSAwOmlmKCF0aGlzLmF1dGgpcmV0dXJuWzIsdm9pZCAwXTt0LmxhYmVsPTE7Y2FzZSAxOnJldHVybiB0LnRyeXMucHVzaChbMSwzLCw0XSksWzQsdGhpcy5hdXRoLmdldFRva2VuKCldO2Nhc2UgMjpyZXR1cm4oZT10LnNlbnQoKSk/WzIsZS5hY2Nlc3NUb2tlbl06WzIsdm9pZCAwXTtjYXNlIDM6cmV0dXJuIHQuc2VudCgpLFsyLHZvaWQgMF07Y2FzZSA0OnJldHVyblsyXX19KX0pfSxnUC5wcm90b3R5cGUuZ2V0SW5zdGFuY2VJZFRva2VuPWZ1bmN0aW9uKCl7cmV0dXJuICRpKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3JldHVybiBaaSh0aGlzLGZ1bmN0aW9uKHQpe2lmKCEodGhpcy5tZXNzYWdpbmcmJiJOb3RpZmljYXRpb24iaW4gc2VsZiYmImdyYW50ZWQiPT09Tm90aWZpY2F0aW9uLnBlcm1pc3Npb24pKXJldHVyblsyLHZvaWQgMF07dHJ5e3JldHVyblsyLHRoaXMubWVzc2FnaW5nLmdldFRva2VuKCldfWNhdGNoKHQpe3JldHVyblsyLHZvaWQgMF19cmV0dXJuWzJdfSl9KX0sZ1AucHJvdG90eXBlLmdldENvbnRleHQ9ZnVuY3Rpb24oKXtyZXR1cm4gJGkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIGUsbjtyZXR1cm4gWmkodGhpcyxmdW5jdGlvbih0KXtzd2l0Y2godC5sYWJlbCl7Y2FzZSAwOnJldHVybls0LHRoaXMuZ2V0QXV0aFRva2VuKCldO2Nhc2UgMTpyZXR1cm4gZT10LnNlbnQoKSxbNCx0aGlzLmdldEluc3RhbmNlSWRUb2tlbigpXTtjYXNlIDI6cmV0dXJuIG49dC5zZW50KCksWzIse2F1dGhUb2tlbjplLGluc3RhbmNlSWRUb2tlbjpufV19fSl9KX0sZ1ApO2Z1bmN0aW9uIGdQKHQsZSl7dmFyIG49dGhpczt0aGlzLmF1dGg9bnVsbCx0aGlzLm1lc3NhZ2luZz1udWxsLHRoaXMuYXV0aD10LmdldEltbWVkaWF0ZSh7b3B0aW9uYWw6ITB9KSx0aGlzLm1lc3NhZ2luZz1lLmdldEltbWVkaWF0ZSh7b3B0aW9uYWw6ITB9KSx0aGlzLmF1dGh8fHQuZ2V0KCkudGhlbihmdW5jdGlvbih0KXtyZXR1cm4gbi5hdXRoPXR9LGZ1bmN0aW9uKCl7fSksdGhpcy5tZXNzYWdpbmd8fGUuZ2V0KCkudGhlbihmdW5jdGlvbih0KXtyZXR1cm4gbi5tZXNzYWdpbmc9dH0sZnVuY3Rpb24oKXt9KX1mdW5jdGlvbiB5UCh0LGUpe3ZhciBuLHI9e307Zm9yKG4gaW4gdCl0Lmhhc093blByb3BlcnR5KG4pJiYocltuXT1lKHRbbl0pKTtyZXR1cm4gcn12YXIgbVA9KGJQLnByb3RvdHlwZS5lbmNvZGU9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztpZihudWxsPT10KXJldHVybiBudWxsO2lmKCJudW1iZXIiPT10eXBlb2YodD10IGluc3RhbmNlb2YgTnVtYmVyP3QudmFsdWVPZigpOnQpJiZpc0Zpbml0ZSh0KSlyZXR1cm4gdDtpZighMD09PXR8fCExPT09dClyZXR1cm4gdDtpZigiW29iamVjdCBTdHJpbmddIj09PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0KSlyZXR1cm4gdDtpZihBcnJheS5pc0FycmF5KHQpKXJldHVybiB0Lm1hcChmdW5jdGlvbih0KXtyZXR1cm4gZS5lbmNvZGUodCl9KTtpZigiZnVuY3Rpb24iPT10eXBlb2YgdHx8Im9iamVjdCI9PXR5cGVvZiB0KXJldHVybiB5UCh0LGZ1bmN0aW9uKHQpe3JldHVybiBlLmVuY29kZSh0KX0pO3Rocm93IG5ldyBFcnJvcigiRGF0YSBjYW5ub3QgYmUgZW5jb2RlZCBpbiBKU09OOiAiK3QpfSxiUC5wcm90b3R5cGUuZGVjb2RlPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7aWYobnVsbD09dClyZXR1cm4gdDtpZih0WyJAdHlwZSJdKXN3aXRjaCh0WyJAdHlwZSJdKXtjYXNlInR5cGUuZ29vZ2xlYXBpcy5jb20vZ29vZ2xlLnByb3RvYnVmLkludDY0VmFsdWUiOmNhc2UidHlwZS5nb29nbGVhcGlzLmNvbS9nb29nbGUucHJvdG9idWYuVUludDY0VmFsdWUiOnZhciBuPU51bWJlcih0LnZhbHVlKTtpZihpc05hTihuKSl0aHJvdyBuZXcgRXJyb3IoIkRhdGEgY2Fubm90IGJlIGRlY29kZWQgZnJvbSBKU09OOiAiK3QpO3JldHVybiBuO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJEYXRhIGNhbm5vdCBiZSBkZWNvZGVkIGZyb20gSlNPTjogIit0KX1yZXR1cm4gQXJyYXkuaXNBcnJheSh0KT90Lm1hcChmdW5jdGlvbih0KXtyZXR1cm4gZS5kZWNvZGUodCl9KToiZnVuY3Rpb24iPT10eXBlb2YgdHx8Im9iamVjdCI9PXR5cGVvZiB0P3lQKHQsZnVuY3Rpb24odCl7cmV0dXJuIGUuZGVjb2RlKHQpfSk6dH0sYlApO2Z1bmN0aW9uIGJQKCl7fXZhciB3UD0oT2JqZWN0LmRlZmluZVByb3BlcnR5KF9QLnByb3RvdHlwZSwiYXBwIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuYXBwX30sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxfUC5wcm90b3R5cGUuX3VybD1mdW5jdGlvbih0KXt2YXIgZT10aGlzLmFwcF8ub3B0aW9ucy5wcm9qZWN0SWQ7cmV0dXJuIG51bGw9PT10aGlzLmVtdWxhdG9yT3JpZ2luP251bGwhPT10aGlzLmN1c3RvbURvbWFpbj90aGlzLmN1c3RvbURvbWFpbisiLyIrdDoiaHR0cHM6Ly8iK3RoaXMucmVnaW9uKyItIitlKyIuY2xvdWRmdW5jdGlvbnMubmV0LyIrdDp0aGlzLmVtdWxhdG9yT3JpZ2luKyIvIitlKyIvIit0aGlzLnJlZ2lvbisiLyIrdH0sX1AucHJvdG90eXBlLnVzZUVtdWxhdG9yPWZ1bmN0aW9uKHQsZSl7dGhpcy5lbXVsYXRvck9yaWdpbj0iaHR0cDovLyIrdCsiOiIrZX0sX1AucHJvdG90eXBlLnVzZUZ1bmN0aW9uc0VtdWxhdG9yPWZ1bmN0aW9uKHQpe3RoaXMuZW11bGF0b3JPcmlnaW49dH0sX1AucHJvdG90eXBlLmh0dHBzQ2FsbGFibGU9ZnVuY3Rpb24oZSxuKXt2YXIgcj10aGlzO3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gci5jYWxsKGUsdCxufHx7fSl9fSxfUC5wcm90b3R5cGUucG9zdEpTT049ZnVuY3Rpb24ocixpLG8pe3JldHVybiAkaSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgZSxuO3JldHVybiBaaSh0aGlzLGZ1bmN0aW9uKHQpe3N3aXRjaCh0LmxhYmVsKXtjYXNlIDA6b1siQ29udGVudC1UeXBlIl09ImFwcGxpY2F0aW9uL2pzb24iLHQubGFiZWw9MTtjYXNlIDE6cmV0dXJuIHQudHJ5cy5wdXNoKFsxLDMsLDRdKSxbNCx0aGlzLmZldGNoSW1wbChyLHttZXRob2Q6IlBPU1QiLGJvZHk6SlNPTi5zdHJpbmdpZnkoaSksaGVhZGVyczpvfSldO2Nhc2UgMjpyZXR1cm4gZT10LnNlbnQoKSxbMyw0XTtjYXNlIDM6cmV0dXJuIHQuc2VudCgpLFsyLHtzdGF0dXM6MCxqc29uOm51bGx9XTtjYXNlIDQ6bj1udWxsLHQubGFiZWw9NTtjYXNlIDU6cmV0dXJuIHQudHJ5cy5wdXNoKFs1LDcsLDhdKSxbNCxlLmpzb24oKV07Y2FzZSA2OnJldHVybiBuPXQuc2VudCgpLFszLDhdO2Nhc2UgNzpyZXR1cm4gdC5zZW50KCksWzMsOF07Y2FzZSA4OnJldHVyblsyLHtzdGF0dXM6ZS5zdGF0dXMsanNvbjpufV19fSl9KX0sX1AucHJvdG90eXBlLmNhbGw9ZnVuY3Rpb24oYyxoLGwpe3JldHVybiAkaSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgaSxvLHMsYSx1O3JldHVybiBaaSh0aGlzLGZ1bmN0aW9uKHQpe3N3aXRjaCh0LmxhYmVsKXtjYXNlIDA6cmV0dXJuIGk9dGhpcy5fdXJsKGMpLGg9dGhpcy5zZXJpYWxpemVyLmVuY29kZShoKSxvPXtkYXRhOmh9LHM9e30sWzQsdGhpcy5jb250ZXh0UHJvdmlkZXIuZ2V0Q29udGV4dCgpXTtjYXNlIDE6cmV0dXJuKGE9dC5zZW50KCkpLmF1dGhUb2tlbiYmKHMuQXV0aG9yaXphdGlvbj0iQmVhcmVyICIrYS5hdXRoVG9rZW4pLGEuaW5zdGFuY2VJZFRva2VuJiYoc1siRmlyZWJhc2UtSW5zdGFuY2UtSUQtVG9rZW4iXT1hLmluc3RhbmNlSWRUb2tlbiksdT1sLnRpbWVvdXR8fDdlNCxuPXUsZT1uZXcgUHJvbWlzZShmdW5jdGlvbih0LGUpe3I9c2V0VGltZW91dChmdW5jdGlvbigpe2UobmV3IGZQKCJkZWFkbGluZS1leGNlZWRlZCIsImRlYWRsaW5lLWV4Y2VlZGVkIikpfSxuKX0pLHU9KGE9e3RpbWVyOnIscHJvbWlzZTplfSkudGltZXIsYT1hLnByb21pc2UsWzQsUHJvbWlzZS5yYWNlKFtJUCh1LHRoaXMucG9zdEpTT04oaSxvLHMpKSxhLElQKHUsdGhpcy5jYW5jZWxBbGxSZXF1ZXN0cyldKV07Y2FzZSAyOmlmKCEoYT10LnNlbnQoKSkpdGhyb3cgbmV3IGZQKCJjYW5jZWxsZWQiLCJGaXJlYmFzZSBGdW5jdGlvbnMgaW5zdGFuY2Ugd2FzIGRlbGV0ZWQuIik7aWYodT1kUChhLnN0YXR1cyxhLmpzb24sdGhpcy5zZXJpYWxpemVyKSl0aHJvdyB1O2lmKCFhLmpzb24pdGhyb3cgbmV3IGZQKCJpbnRlcm5hbCIsIlJlc3BvbnNlIGlzIG5vdCB2YWxpZCBKU09OIG9iamVjdC4iKTtpZih2b2lkIDA9PT0odT12b2lkIDA9PT0odT1hLmpzb24uZGF0YSk/YS5qc29uLnJlc3VsdDp1KSl0aHJvdyBuZXcgZlAoImludGVybmFsIiwiUmVzcG9uc2UgaXMgbWlzc2luZyBkYXRhIGZpZWxkLiIpO3JldHVyblsyLHtkYXRhOnRoaXMuc2VyaWFsaXplci5kZWNvZGUodSl9XX12YXIgbixyLGV9KX0pfSxfUCk7ZnVuY3Rpb24gX1AodCxlLG4scixpKXt2YXIgbz10aGlzO3ZvaWQgMD09PXImJihyPSJ1cy1jZW50cmFsMSIpLHRoaXMuYXBwXz10LHRoaXMuZmV0Y2hJbXBsPWksdGhpcy5zZXJpYWxpemVyPW5ldyBtUCx0aGlzLmVtdWxhdG9yT3JpZ2luPW51bGwsdGhpcy5JTlRFUk5BTD17ZGVsZXRlOmZ1bmN0aW9uKCl7cmV0dXJuIFByb21pc2UucmVzb2x2ZShvLmRlbGV0ZVNlcnZpY2UoKSl9fSx0aGlzLmNvbnRleHRQcm92aWRlcj1uZXcgdlAoZSxuKSx0aGlzLmNhbmNlbEFsbFJlcXVlc3RzPW5ldyBQcm9taXNlKGZ1bmN0aW9uKHQpe28uZGVsZXRlU2VydmljZT1mdW5jdGlvbigpe3JldHVybiB0KCl9fSk7dHJ5e3ZhciBzPW5ldyBVUkwocik7dGhpcy5jdXN0b21Eb21haW49cy5vcmlnaW4sdGhpcy5yZWdpb249InVzLWNlbnRyYWwxIn1jYXRjaCh0KXt0aGlzLmN1c3RvbURvbWFpbj1udWxsLHRoaXMucmVnaW9uPXJ9fWZ1bmN0aW9uIElQKG4scil7cmV0dXJuICRpKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBlO3JldHVybiBaaSh0aGlzLGZ1bmN0aW9uKHQpe3N3aXRjaCh0LmxhYmVsKXtjYXNlIDA6cmV0dXJuWzQscl07Y2FzZSAxOnJldHVybiBlPXQuc2VudCgpLGNsZWFyVGltZW91dChuKSxbMixlXX19KX0pfXZhciBUUCxFUCxTUDtmdW5jdGlvbiBDUChuKXtyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24odCxlKXtuLm9uc3VjY2Vzcz1mdW5jdGlvbigpe3Qobi5yZXN1bHQpfSxuLm9uZXJyb3I9ZnVuY3Rpb24oKXtlKG4uZXJyb3IpfX0pfWZ1bmN0aW9uIE5QKG4scixpKXt2YXIgbyx0PW5ldyBQcm9taXNlKGZ1bmN0aW9uKHQsZSl7Q1Aobz1uW3JdLmFwcGx5KG4saSkpLnRoZW4odCxlKX0pO3JldHVybiB0LnJlcXVlc3Q9byx0fWZ1bmN0aW9uIEFQKHQsbixlKXtlLmZvckVhY2goZnVuY3Rpb24oZSl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQucHJvdG90eXBlLGUse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzW25dW2VdfSxzZXQ6ZnVuY3Rpb24odCl7dGhpc1tuXVtlXT10fX0pfSl9ZnVuY3Rpb24ga1AoZSxuLHIsdCl7dC5mb3JFYWNoKGZ1bmN0aW9uKHQpe3QgaW4gci5wcm90b3R5cGUmJihlLnByb3RvdHlwZVt0XT1mdW5jdGlvbigpe3JldHVybiBOUCh0aGlzW25dLHQsYXJndW1lbnRzKX0pfSl9ZnVuY3Rpb24gUlAoZSxuLHIsdCl7dC5mb3JFYWNoKGZ1bmN0aW9uKHQpe3QgaW4gci5wcm90b3R5cGUmJihlLnByb3RvdHlwZVt0XT1mdW5jdGlvbigpe3JldHVybiB0aGlzW25dW3RdLmFwcGx5KHRoaXNbbl0sYXJndW1lbnRzKX0pfSl9ZnVuY3Rpb24gUFAodCxyLGUsbil7bi5mb3JFYWNoKGZ1bmN0aW9uKG4pe24gaW4gZS5wcm90b3R5cGUmJih0LnByb3RvdHlwZVtuXT1mdW5jdGlvbigpe3JldHVybiB0PXRoaXNbcl0sKGU9TlAodCxuLGFyZ3VtZW50cykpLnRoZW4oZnVuY3Rpb24odCl7aWYodClyZXR1cm4gbmV3IERQKHQsZS5yZXF1ZXN0KX0pO3ZhciB0LGV9KX0pfWZ1bmN0aW9uIE9QKHQpe3RoaXMuX2luZGV4PXR9ZnVuY3Rpb24gRFAodCxlKXt0aGlzLl9jdXJzb3I9dCx0aGlzLl9yZXF1ZXN0PWV9ZnVuY3Rpb24geFAodCl7dGhpcy5fc3RvcmU9dH1mdW5jdGlvbiBMUChuKXt0aGlzLl90eD1uLHRoaXMuY29tcGxldGU9bmV3IFByb21pc2UoZnVuY3Rpb24odCxlKXtuLm9uY29tcGxldGU9ZnVuY3Rpb24oKXt0KCl9LG4ub25lcnJvcj1mdW5jdGlvbigpe2Uobi5lcnJvcil9LG4ub25hYm9ydD1mdW5jdGlvbigpe2Uobi5lcnJvcil9fSl9ZnVuY3Rpb24gTVAodCxlLG4pe3RoaXMuX2RiPXQsdGhpcy5vbGRWZXJzaW9uPWUsdGhpcy50cmFuc2FjdGlvbj1uZXcgTFAobil9ZnVuY3Rpb24gRlAodCl7dGhpcy5fZGI9dH1mdW5jdGlvbiBVUCh0LGUsbil7dmFyIGU9TlAoaW5kZXhlZERCLCJvcGVuIixbdCxlXSkscj1lLnJlcXVlc3Q7cmV0dXJuIHImJihyLm9udXBncmFkZW5lZWRlZD1mdW5jdGlvbih0KXtuJiZuKG5ldyBNUChyLnJlc3VsdCx0Lm9sZFZlcnNpb24sci50cmFuc2FjdGlvbikpfSksZS50aGVuKGZ1bmN0aW9uKHQpe3JldHVybiBuZXcgRlAodCl9KX1mdW5jdGlvbiBqUCh0KXtyZXR1cm4gTlAoaW5kZXhlZERCLCJkZWxldGVEYXRhYmFzZSIsW3RdKX1UUD1YbCxFUD1mZXRjaC5iaW5kKHNlbGYpLFNQPXtGdW5jdGlvbnM6d1B9LFRQLklOVEVSTkFMLnJlZ2lzdGVyQ29tcG9uZW50KG5ldyB0cygiZnVuY3Rpb25zIixmdW5jdGlvbih0LGUpe3ZhciBuPWUuaW5zdGFuY2VJZGVudGlmaWVyLHI9dC5nZXRQcm92aWRlcigiYXBwIikuZ2V0SW1tZWRpYXRlKCksZT10LmdldFByb3ZpZGVyKCJhdXRoLWludGVybmFsIiksdD10LmdldFByb3ZpZGVyKCJtZXNzYWdpbmciKTtyZXR1cm4gbmV3IHdQKHIsZSx0LG4sRVApfSwiUFVCTElDIikuc2V0U2VydmljZVByb3BzKFNQKS5zZXRNdWx0aXBsZUluc3RhbmNlcyghMCkpLFhsLnJlZ2lzdGVyVmVyc2lvbigiQGZpcmViYXNlL2Z1bmN0aW9ucyIsIjAuNi41IiksQVAoT1AsIl9pbmRleCIsWyJuYW1lIiwia2V5UGF0aCIsIm11bHRpRW50cnkiLCJ1bmlxdWUiXSksa1AoT1AsIl9pbmRleCIsSURCSW5kZXgsWyJnZXQiLCJnZXRLZXkiLCJnZXRBbGwiLCJnZXRBbGxLZXlzIiwiY291bnQiXSksUFAoT1AsIl9pbmRleCIsSURCSW5kZXgsWyJvcGVuQ3Vyc29yIiwib3BlbktleUN1cnNvciJdKSxBUChEUCwiX2N1cnNvciIsWyJkaXJlY3Rpb24iLCJrZXkiLCJwcmltYXJ5S2V5IiwidmFsdWUiXSksa1AoRFAsIl9jdXJzb3IiLElEQkN1cnNvcixbInVwZGF0ZSIsImRlbGV0ZSJdKSxbImFkdmFuY2UiLCJjb250aW51ZSIsImNvbnRpbnVlUHJpbWFyeUtleSJdLmZvckVhY2goZnVuY3Rpb24obil7biBpbiBJREJDdXJzb3IucHJvdG90eXBlJiYoRFAucHJvdG90eXBlW25dPWZ1bmN0aW9uKCl7dmFyIGU9dGhpcyx0PWFyZ3VtZW50cztyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCkudGhlbihmdW5jdGlvbigpe3JldHVybiBlLl9jdXJzb3Jbbl0uYXBwbHkoZS5fY3Vyc29yLHQpLENQKGUuX3JlcXVlc3QpLnRoZW4oZnVuY3Rpb24odCl7aWYodClyZXR1cm4gbmV3IERQKHQsZS5fcmVxdWVzdCl9KX0pfSl9KSx4UC5wcm90b3R5cGUuY3JlYXRlSW5kZXg9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IE9QKHRoaXMuX3N0b3JlLmNyZWF0ZUluZGV4LmFwcGx5KHRoaXMuX3N0b3JlLGFyZ3VtZW50cykpfSx4UC5wcm90b3R5cGUuaW5kZXg9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IE9QKHRoaXMuX3N0b3JlLmluZGV4LmFwcGx5KHRoaXMuX3N0b3JlLGFyZ3VtZW50cykpfSxBUCh4UCwiX3N0b3JlIixbIm5hbWUiLCJrZXlQYXRoIiwiaW5kZXhOYW1lcyIsImF1dG9JbmNyZW1lbnQiXSksa1AoeFAsIl9zdG9yZSIsSURCT2JqZWN0U3RvcmUsWyJwdXQiLCJhZGQiLCJkZWxldGUiLCJjbGVhciIsImdldCIsImdldEFsbCIsImdldEtleSIsImdldEFsbEtleXMiLCJjb3VudCJdKSxQUCh4UCwiX3N0b3JlIixJREJPYmplY3RTdG9yZSxbIm9wZW5DdXJzb3IiLCJvcGVuS2V5Q3Vyc29yIl0pLFJQKHhQLCJfc3RvcmUiLElEQk9iamVjdFN0b3JlLFsiZGVsZXRlSW5kZXgiXSksTFAucHJvdG90eXBlLm9iamVjdFN0b3JlPWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyB4UCh0aGlzLl90eC5vYmplY3RTdG9yZS5hcHBseSh0aGlzLl90eCxhcmd1bWVudHMpKX0sQVAoTFAsIl90eCIsWyJvYmplY3RTdG9yZU5hbWVzIiwibW9kZSJdKSxSUChMUCwiX3R4IixJREJUcmFuc2FjdGlvbixbImFib3J0Il0pLE1QLnByb3RvdHlwZS5jcmVhdGVPYmplY3RTdG9yZT1mdW5jdGlvbigpe3JldHVybiBuZXcgeFAodGhpcy5fZGIuY3JlYXRlT2JqZWN0U3RvcmUuYXBwbHkodGhpcy5fZGIsYXJndW1lbnRzKSl9LEFQKE1QLCJfZGIiLFsibmFtZSIsInZlcnNpb24iLCJvYmplY3RTdG9yZU5hbWVzIl0pLFJQKE1QLCJfZGIiLElEQkRhdGFiYXNlLFsiZGVsZXRlT2JqZWN0U3RvcmUiLCJjbG9zZSJdKSxGUC5wcm90b3R5cGUudHJhbnNhY3Rpb249ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IExQKHRoaXMuX2RiLnRyYW5zYWN0aW9uLmFwcGx5KHRoaXMuX2RiLGFyZ3VtZW50cykpfSxBUChGUCwiX2RiIixbIm5hbWUiLCJ2ZXJzaW9uIiwib2JqZWN0U3RvcmVOYW1lcyJdKSxSUChGUCwiX2RiIixJREJEYXRhYmFzZSxbImNsb3NlIl0pLFsib3BlbkN1cnNvciIsIm9wZW5LZXlDdXJzb3IiXS5mb3JFYWNoKGZ1bmN0aW9uKGkpe1t4UCxPUF0uZm9yRWFjaChmdW5jdGlvbih0KXtpIGluIHQucHJvdG90eXBlJiYodC5wcm90b3R5cGVbaS5yZXBsYWNlKCJvcGVuIiwiaXRlcmF0ZSIpXT1mdW5jdGlvbigpe3ZhciB0PShuPWFyZ3VtZW50cyxBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChuKSksZT10W3QubGVuZ3RoLTFdLG49dGhpcy5fc3RvcmV8fHRoaXMuX2luZGV4LHI9bltpXS5hcHBseShuLHQuc2xpY2UoMCwtMSkpO3Iub25zdWNjZXNzPWZ1bmN0aW9uKCl7ZShyLnJlc3VsdCl9fSl9KX0pLFtPUCx4UF0uZm9yRWFjaChmdW5jdGlvbih0KXt0LnByb3RvdHlwZS5nZXRBbGx8fCh0LnByb3RvdHlwZS5nZXRBbGw9ZnVuY3Rpb24odCxuKXt2YXIgcj10aGlzLGk9W107cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKGUpe3IuaXRlcmF0ZUN1cnNvcih0LGZ1bmN0aW9uKHQpe3Q/KGkucHVzaCh0LnZhbHVlKSx2b2lkIDA9PT1ufHxpLmxlbmd0aCE9bj90LmNvbnRpbnVlKCk6ZShpKSk6ZShpKX0pfSl9KX0pO3ZhciBxUD0xZTQsVlA9Inc6MC40LjIzIixCUD0iRklTX3YyIixLUD0iaHR0cHM6Ly9maXJlYmFzZWluc3RhbGxhdGlvbnMuZ29vZ2xlYXBpcy5jb20vdjEiLFdQPTM2ZTUsU249KChHYT17fSlbIm1pc3NpbmctYXBwLWNvbmZpZy12YWx1ZXMiXT0nTWlzc2luZyBBcHAgY29uZmlndXJhdGlvbiB2YWx1ZTogInskdmFsdWVOYW1lfSInLEdhWyJub3QtcmVnaXN0ZXJlZCJdPSJGaXJlYmFzZSBJbnN0YWxsYXRpb24gaXMgbm90IHJlZ2lzdGVyZWQuIixHYVsiaW5zdGFsbGF0aW9uLW5vdC1mb3VuZCJdPSJGaXJlYmFzZSBJbnN0YWxsYXRpb24gbm90IGZvdW5kLiIsR2FbInJlcXVlc3QtZmFpbGVkIl09J3skcmVxdWVzdE5hbWV9IHJlcXVlc3QgZmFpbGVkIHdpdGggZXJyb3IgInskc2VydmVyQ29kZX0geyRzZXJ2ZXJTdGF0dXN9OiB7JHNlcnZlck1lc3NhZ2V9IicsR2FbImFwcC1vZmZsaW5lIl09IkNvdWxkIG5vdCBwcm9jZXNzIHJlcXVlc3QuIEFwcGxpY2F0aW9uIG9mZmxpbmUuIixHYVsiZGVsZXRlLXBlbmRpbmctcmVnaXN0cmF0aW9uIl09IkNhbid0IGRlbGV0ZSBpbnN0YWxsYXRpb24gd2hpbGUgdGhlcmUgaXMgYSBwZW5kaW5nIHJlZ2lzdHJhdGlvbiByZXF1ZXN0LiIsR2EpLEhQPW5ldyBDbygiaW5zdGFsbGF0aW9ucyIsIkluc3RhbGxhdGlvbnMiLFNuKTtmdW5jdGlvbiBHUCh0KXtyZXR1cm4gdCBpbnN0YW5jZW9mIEVvJiZ0LmNvZGUuaW5jbHVkZXMoInJlcXVlc3QtZmFpbGVkIil9ZnVuY3Rpb24gelAodCl7dD10LnByb2plY3RJZDtyZXR1cm4gS1ArIi9wcm9qZWN0cy8iK3QrIi9pbnN0YWxsYXRpb25zIn1mdW5jdGlvbiBRUCh0KXtyZXR1cm57dG9rZW46dC50b2tlbixyZXF1ZXN0U3RhdHVzOjIsZXhwaXJlc0luOih0PXQuZXhwaXJlc0luLE51bWJlcih0LnJlcGxhY2UoInMiLCIwMDAiKSkpLGNyZWF0aW9uVGltZTpEYXRlLm5vdygpfX1mdW5jdGlvbiBZUChuLHIpe3JldHVybiAkaSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgZTtyZXR1cm4gWmkodGhpcyxmdW5jdGlvbih0KXtzd2l0Y2godC5sYWJlbCl7Y2FzZSAwOnJldHVybls0LHIuanNvbigpXTtjYXNlIDE6cmV0dXJuIGU9dC5zZW50KCksZT1lLmVycm9yLFsyLEhQLmNyZWF0ZSgicmVxdWVzdC1mYWlsZWQiLHtyZXF1ZXN0TmFtZTpuLHNlcnZlckNvZGU6ZS5jb2RlLHNlcnZlck1lc3NhZ2U6ZS5tZXNzYWdlLHNlcnZlclN0YXR1czplLnN0YXR1c30pXX19KX0pfWZ1bmN0aW9uIFhQKHQpe3Q9dC5hcGlLZXk7cmV0dXJuIG5ldyBIZWFkZXJzKHsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiIsQWNjZXB0OiJhcHBsaWNhdGlvbi9qc29uIiwieC1nb29nLWFwaS1rZXkiOnR9KX1mdW5jdGlvbiBKUCh0LGUpe2U9ZS5yZWZyZXNoVG9rZW4sdD1YUCh0KTtyZXR1cm4gdC5hcHBlbmQoIkF1dGhvcml6YXRpb24iLEJQKyIgIitlKSx0fWZ1bmN0aW9uICRQKG4pe3JldHVybiAkaSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgZTtyZXR1cm4gWmkodGhpcyxmdW5jdGlvbih0KXtzd2l0Y2godC5sYWJlbCl7Y2FzZSAwOnJldHVybls0LG4oKV07Y2FzZSAxOnJldHVybiA1MDA8PShlPXQuc2VudCgpKS5zdGF0dXMmJmUuc3RhdHVzPDYwMD9bMixuKCldOlsyLGVdfX0pfSl9ZnVuY3Rpb24gWlAoZSl7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHQpe3NldFRpbWVvdXQodCxlKX0pfXZhciB0Tz0vXltjZGVmXVtcdy1dezIxfSQvLGVPPSIiO2Z1bmN0aW9uIG5PKCl7dHJ5e3ZhciB0PW5ldyBVaW50OEFycmF5KDE3KTsoc2VsZi5jcnlwdG98fHNlbGYubXNDcnlwdG8pLmdldFJhbmRvbVZhbHVlcyh0KSx0WzBdPTExMit0WzBdJTE2O3Q9ZnVuY3Rpb24odCl7cmV0dXJuIGJ0b2EoU3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShTdHJpbmcsbm8oW10sZW8odCkpKSkucmVwbGFjZSgvXCsvZywiLSIpLnJlcGxhY2UoL1wvL2csIl8iKX0odCkuc3Vic3RyKDAsMjIpO3JldHVybiB0Ty50ZXN0KHQpP3Q6ZU99Y2F0Y2godCl7cmV0dXJuIGVPfX1mdW5jdGlvbiByTyh0KXtyZXR1cm4gdC5hcHBOYW1lKyIhIit0LmFwcElkfXZhciBpTz1uZXcgTWFwO2Z1bmN0aW9uIG9PKHQsZSl7dD1yTyh0KTtzTyh0LGUpLGZ1bmN0aW9uKHQsZSl7dmFyIG49dU8oKTtuJiZuLnBvc3RNZXNzYWdlKHtrZXk6dCxmaWQ6ZX0pO2NPKCl9KHQsZSl9ZnVuY3Rpb24gc08odCxlKXt2YXIgbixyLGk9aU8uZ2V0KHQpO2lmKGkpdHJ5e2Zvcih2YXIgbz10byhpKSxzPW8ubmV4dCgpOyFzLmRvbmU7cz1vLm5leHQoKSkoMCxzLnZhbHVlKShlKX1jYXRjaCh0KXtuPXtlcnJvcjp0fX1maW5hbGx5e3RyeXtzJiYhcy5kb25lJiYocj1vLnJldHVybikmJnIuY2FsbChvKX1maW5hbGx5e2lmKG4pdGhyb3cgbi5lcnJvcn19fXZhciBhTz1udWxsO2Z1bmN0aW9uIHVPKCl7cmV0dXJuIWFPJiYiQnJvYWRjYXN0Q2hhbm5lbCJpbiBzZWxmJiYoKGFPPW5ldyBCcm9hZGNhc3RDaGFubmVsKCJbRmlyZWJhc2VdIEZJRCBDaGFuZ2UiKSkub25tZXNzYWdlPWZ1bmN0aW9uKHQpe3NPKHQuZGF0YS5rZXksdC5kYXRhLmZpZCl9KSxhT31mdW5jdGlvbiBjTygpezA9PT1pTy5zaXplJiZhTyYmKGFPLmNsb3NlKCksYU89bnVsbCl9dmFyIGhPLGxPPSJmaXJlYmFzZS1pbnN0YWxsYXRpb25zLWRhdGFiYXNlIixmTz0xLHBPPSJmaXJlYmFzZS1pbnN0YWxsYXRpb25zLXN0b3JlIixkTz1udWxsO2Z1bmN0aW9uIHZPKCl7cmV0dXJuIGRPPWRPfHxVUChsTyxmTyxmdW5jdGlvbih0KXswPT09dC5vbGRWZXJzaW9uJiZ0LmNyZWF0ZU9iamVjdFN0b3JlKHBPKX0pfWZ1bmN0aW9uIGdPKG8scyl7cmV0dXJuICRpKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBlLG4scixpO3JldHVybiBaaSh0aGlzLGZ1bmN0aW9uKHQpe3N3aXRjaCh0LmxhYmVsKXtjYXNlIDA6cmV0dXJuIGU9ck8obyksWzQsdk8oKV07Y2FzZSAxOnJldHVybiByPXQuc2VudCgpLG49ci50cmFuc2FjdGlvbihwTywicmVhZHdyaXRlIiksWzQsKHI9bi5vYmplY3RTdG9yZShwTykpLmdldChlKV07Y2FzZSAyOnJldHVybiBpPXQuc2VudCgpLFs0LHIucHV0KHMsZSldO2Nhc2UgMzpyZXR1cm4gdC5zZW50KCksWzQsbi5jb21wbGV0ZV07Y2FzZSA0OnJldHVybiB0LnNlbnQoKSxpJiZpLmZpZD09PXMuZmlkfHxvTyhvLHMuZmlkKSxbMixzXX19KX0pfWZ1bmN0aW9uIHlPKHIpe3JldHVybiAkaSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgZSxuO3JldHVybiBaaSh0aGlzLGZ1bmN0aW9uKHQpe3N3aXRjaCh0LmxhYmVsKXtjYXNlIDA6cmV0dXJuIGU9ck8ociksWzQsdk8oKV07Y2FzZSAxOnJldHVybiBuPXQuc2VudCgpLFs0LChuPW4udHJhbnNhY3Rpb24ocE8sInJlYWR3cml0ZSIpKS5vYmplY3RTdG9yZShwTykuZGVsZXRlKGUpXTtjYXNlIDI6cmV0dXJuIHQuc2VudCgpLFs0LG4uY29tcGxldGVdO2Nhc2UgMzpyZXR1cm4gdC5zZW50KCksWzJdfX0pfSl9ZnVuY3Rpb24gbU8ocyxhKXtyZXR1cm4gJGkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIGUsbixyLGksbztyZXR1cm4gWmkodGhpcyxmdW5jdGlvbih0KXtzd2l0Y2godC5sYWJlbCl7Y2FzZSAwOnJldHVybiBlPXJPKHMpLFs0LHZPKCldO2Nhc2UgMTpyZXR1cm4gcj10LnNlbnQoKSxuPXIudHJhbnNhY3Rpb24ocE8sInJlYWR3cml0ZSIpLFs0LChyPW4ub2JqZWN0U3RvcmUocE8pKS5nZXQoZSldO2Nhc2UgMjpyZXR1cm4gaT10LnNlbnQoKSx2b2lkIDAhPT0obz1hKGkpKT9bMyw0XTpbNCxyLmRlbGV0ZShlKV07Y2FzZSAzOnJldHVybiB0LnNlbnQoKSxbMyw2XTtjYXNlIDQ6cmV0dXJuWzQsci5wdXQobyxlKV07Y2FzZSA1OnQuc2VudCgpLHQubGFiZWw9NjtjYXNlIDY6cmV0dXJuWzQsbi5jb21wbGV0ZV07Y2FzZSA3OnJldHVybiB0LnNlbnQoKSwhb3x8aSYmaS5maWQ9PT1vLmZpZHx8b08ocyxvLmZpZCksWzIsb119fSl9KX1mdW5jdGlvbiBiTyhpKXtyZXR1cm4gJGkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIGUsbixyO3JldHVybiBaaSh0aGlzLGZ1bmN0aW9uKHQpe3N3aXRjaCh0LmxhYmVsKXtjYXNlIDA6cmV0dXJuWzQsbU8oaSxmdW5jdGlvbih0KXt0PV9PKHR8fHtmaWQ6bk8oKSxyZWdpc3RyYXRpb25TdGF0dXM6MH0pLHQ9ZnVuY3Rpb24odCxlKXt7aWYoMCE9PWUucmVnaXN0cmF0aW9uU3RhdHVzKXJldHVybiAxPT09ZS5yZWdpc3RyYXRpb25TdGF0dXM/e2luc3RhbGxhdGlvbkVudHJ5OmUscmVnaXN0cmF0aW9uUHJvbWlzZTpmdW5jdGlvbihpKXtyZXR1cm4gJGkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIGUsbixyO3JldHVybiBaaSh0aGlzLGZ1bmN0aW9uKHQpe3N3aXRjaCh0LmxhYmVsKXtjYXNlIDA6cmV0dXJuWzQsd08oaSldO2Nhc2UgMTplPXQuc2VudCgpLHQubGFiZWw9MjtjYXNlIDI6cmV0dXJuIDEhPT1lLnJlZ2lzdHJhdGlvblN0YXR1cz9bMyw1XTpbNCxaUCgxMDApXTtjYXNlIDM6cmV0dXJuIHQuc2VudCgpLFs0LHdPKGkpXTtjYXNlIDQ6cmV0dXJuIGU9dC5zZW50KCksWzMsMl07Y2FzZSA1OnJldHVybiAwIT09ZS5yZWdpc3RyYXRpb25TdGF0dXM/WzMsN106WzQsYk8oaSldO2Nhc2UgNjpyZXR1cm4gcj10LnNlbnQoKSxuPXIuaW5zdGFsbGF0aW9uRW50cnksKHI9ci5yZWdpc3RyYXRpb25Qcm9taXNlKT9bMixyXTpbMixuXTtjYXNlIDc6cmV0dXJuWzIsZV19fSl9KX0odCl9OntpbnN0YWxsYXRpb25FbnRyeTplfTtpZighbmF2aWdhdG9yLm9uTGluZSl7dmFyIG49UHJvbWlzZS5yZWplY3QoSFAuY3JlYXRlKCJhcHAtb2ZmbGluZSIpKTtyZXR1cm57aW5zdGFsbGF0aW9uRW50cnk6ZSxyZWdpc3RyYXRpb25Qcm9taXNlOm59fWU9e2ZpZDplLmZpZCxyZWdpc3RyYXRpb25TdGF0dXM6MSxyZWdpc3RyYXRpb25UaW1lOkRhdGUubm93KCl9LHQ9ZnVuY3Rpb24ocixpKXtyZXR1cm4gJGkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIGUsbjtyZXR1cm4gWmkodGhpcyxmdW5jdGlvbih0KXtzd2l0Y2godC5sYWJlbCl7Y2FzZSAwOnJldHVybiB0LnRyeXMucHVzaChbMCwyLCw3XSksWzQsZnVuY3Rpb24ocyx0KXt2YXIgYT10LmZpZDtyZXR1cm4gJGkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIGUsbixyLGksbztyZXR1cm4gWmkodGhpcyxmdW5jdGlvbih0KXtzd2l0Y2godC5sYWJlbCl7Y2FzZSAwOnJldHVybiBlPXpQKHMpLG49WFAocyksbz17ZmlkOmEsYXV0aFZlcnNpb246QlAsYXBwSWQ6cy5hcHBJZCxzZGtWZXJzaW9uOlZQfSxyPXttZXRob2Q6IlBPU1QiLGhlYWRlcnM6bixib2R5OkpTT04uc3RyaW5naWZ5KG8pfSxbNCwkUChmdW5jdGlvbigpe3JldHVybiBmZXRjaChlLHIpfSldO2Nhc2UgMTpyZXR1cm4oaT10LnNlbnQoKSkub2s/WzQsaS5qc29uKCldOlszLDNdO2Nhc2UgMjpyZXR1cm4gbz10LnNlbnQoKSxbMix7ZmlkOm8uZmlkfHxhLHJlZ2lzdHJhdGlvblN0YXR1czoyLHJlZnJlc2hUb2tlbjpvLnJlZnJlc2hUb2tlbixhdXRoVG9rZW46UVAoby5hdXRoVG9rZW4pfV07Y2FzZSAzOnJldHVybls0LFlQKCJDcmVhdGUgSW5zdGFsbGF0aW9uIixpKV07Y2FzZSA0OnRocm93IHQuc2VudCgpfX0pfSl9KHIsaSldO2Nhc2UgMTpyZXR1cm4gZT10LnNlbnQoKSxbMixnTyhyLGUpXTtjYXNlIDI6cmV0dXJuIEdQKG49dC5zZW50KCkpJiY0MDk9PT1uLmN1c3RvbURhdGEuc2VydmVyQ29kZT9bNCx5TyhyKV06WzMsNF07Y2FzZSAzOnJldHVybiB0LnNlbnQoKSxbMyw2XTtjYXNlIDQ6cmV0dXJuWzQsZ08ocix7ZmlkOmkuZmlkLHJlZ2lzdHJhdGlvblN0YXR1czowfSldO2Nhc2UgNTp0LnNlbnQoKSx0LmxhYmVsPTY7Y2FzZSA2OnRocm93IG47Y2FzZSA3OnJldHVyblsyXX19KX0pfSh0LGUpO3JldHVybntpbnN0YWxsYXRpb25FbnRyeTplLHJlZ2lzdHJhdGlvblByb21pc2U6dH19fShpLHQpO3JldHVybiBlPXQucmVnaXN0cmF0aW9uUHJvbWlzZSx0Lmluc3RhbGxhdGlvbkVudHJ5fSldO2Nhc2UgMTpyZXR1cm4obj10LnNlbnQoKSkuZmlkIT09ZU8/WzMsM106KHI9e30sWzQsZV0pO2Nhc2UgMjpyZXR1cm5bMiwoci5pbnN0YWxsYXRpb25FbnRyeT10LnNlbnQoKSxyKV07Y2FzZSAzOnJldHVyblsyLHtpbnN0YWxsYXRpb25FbnRyeTpuLHJlZ2lzdHJhdGlvblByb21pc2U6ZX1dfX0pfSl9ZnVuY3Rpb24gd08odCl7cmV0dXJuIG1PKHQsZnVuY3Rpb24odCl7aWYoIXQpdGhyb3cgSFAuY3JlYXRlKCJpbnN0YWxsYXRpb24tbm90LWZvdW5kIik7cmV0dXJuIF9PKHQpfSl9ZnVuY3Rpb24gX08odCl7cmV0dXJuIDE9PT0oZT10KS5yZWdpc3RyYXRpb25TdGF0dXMmJmUucmVnaXN0cmF0aW9uVGltZStxUDxEYXRlLm5vdygpP3tmaWQ6dC5maWQscmVnaXN0cmF0aW9uU3RhdHVzOjB9OnQ7dmFyIGV9ZnVuY3Rpb24gSU8odCxzKXt2YXIgYT10LmFwcENvbmZpZyx1PXQucGxhdGZvcm1Mb2dnZXJQcm92aWRlcjtyZXR1cm4gJGkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIGUsbixyLGksbztyZXR1cm4gWmkodGhpcyxmdW5jdGlvbih0KXtzd2l0Y2godC5sYWJlbCl7Y2FzZSAwOnJldHVybiBlPWZ1bmN0aW9uKHQsZSl7ZT1lLmZpZDtyZXR1cm4gelAodCkrIi8iK2UrIi9hdXRoVG9rZW5zOmdlbmVyYXRlIn0oYSxzKSxuPUpQKGEscyksKG89dS5nZXRJbW1lZGlhdGUoe29wdGlvbmFsOiEwfSkpJiZuLmFwcGVuZCgieC1maXJlYmFzZS1jbGllbnQiLG8uZ2V0UGxhdGZvcm1JbmZvU3RyaW5nKCkpLG89e2luc3RhbGxhdGlvbjp7c2RrVmVyc2lvbjpWUH19LHI9e21ldGhvZDoiUE9TVCIsaGVhZGVyczpuLGJvZHk6SlNPTi5zdHJpbmdpZnkobyl9LFs0LCRQKGZ1bmN0aW9uKCl7cmV0dXJuIGZldGNoKGUscil9KV07Y2FzZSAxOnJldHVybihpPXQuc2VudCgpKS5vaz9bNCxpLmpzb24oKV06WzMsM107Y2FzZSAyOnJldHVybiBvPXQuc2VudCgpLFsyLFFQKG8pXTtjYXNlIDM6cmV0dXJuWzQsWVAoIkdlbmVyYXRlIEF1dGggVG9rZW4iLGkpXTtjYXNlIDQ6dGhyb3cgdC5zZW50KCl9fSl9KX1mdW5jdGlvbiBUTyhpLG8pe3JldHVybiB2b2lkIDA9PT1vJiYobz0hMSksJGkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIHIsZSxuO3JldHVybiBaaSh0aGlzLGZ1bmN0aW9uKHQpe3N3aXRjaCh0LmxhYmVsKXtjYXNlIDA6cmV0dXJuWzQsbU8oaS5hcHBDb25maWcsZnVuY3Rpb24odCl7aWYoIVNPKHQpKXRocm93IEhQLmNyZWF0ZSgibm90LXJlZ2lzdGVyZWQiKTt2YXIgZSxuPXQuYXV0aFRva2VuO2lmKG98fDIhPT0oZT1uKS5yZXF1ZXN0U3RhdHVzfHxmdW5jdGlvbih0KXt2YXIgZT1EYXRlLm5vdygpO3JldHVybiBlPHQuY3JlYXRpb25UaW1lfHx0LmNyZWF0aW9uVGltZSt0LmV4cGlyZXNJbjxlK1dQfShlKSl7aWYoMT09PW4ucmVxdWVzdFN0YXR1cylyZXR1cm4gcj1mdW5jdGlvbihuLHIpe3JldHVybiAkaSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgZTtyZXR1cm4gWmkodGhpcyxmdW5jdGlvbih0KXtzd2l0Y2godC5sYWJlbCl7Y2FzZSAwOnJldHVybls0LEVPKG4uYXBwQ29uZmlnKV07Y2FzZSAxOmU9dC5zZW50KCksdC5sYWJlbD0yO2Nhc2UgMjpyZXR1cm4gMSE9PWUuYXV0aFRva2VuLnJlcXVlc3RTdGF0dXM/WzMsNV06WzQsWlAoMTAwKV07Y2FzZSAzOnJldHVybiB0LnNlbnQoKSxbNCxFTyhuLmFwcENvbmZpZyldO2Nhc2UgNDpyZXR1cm4gZT10LnNlbnQoKSxbMywyXTtjYXNlIDU6cmV0dXJuIDA9PT0oZT1lLmF1dGhUb2tlbikucmVxdWVzdFN0YXR1cz9bMixUTyhuLHIpXTpbMixlXX19KX0pfShpLG8pLHQ7aWYoIW5hdmlnYXRvci5vbkxpbmUpdGhyb3cgSFAuY3JlYXRlKCJhcHAtb2ZmbGluZSIpO249KGU9dCxuPXtyZXF1ZXN0U3RhdHVzOjEscmVxdWVzdFRpbWU6RGF0ZS5ub3coKX0sSmkoSmkoe30sZSkse2F1dGhUb2tlbjpufSkpO3JldHVybiByPWZ1bmN0aW9uKGksbyl7cmV0dXJuICRpKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBlLG4scjtyZXR1cm4gWmkodGhpcyxmdW5jdGlvbih0KXtzd2l0Y2godC5sYWJlbCl7Y2FzZSAwOnJldHVybiB0LnRyeXMucHVzaChbMCwzLCw4XSksWzQsSU8oaSxvKV07Y2FzZSAxOnJldHVybiBlPXQuc2VudCgpLHI9SmkoSmkoe30sbykse2F1dGhUb2tlbjplfSksWzQsZ08oaS5hcHBDb25maWcscildO2Nhc2UgMjpyZXR1cm4gdC5zZW50KCksWzIsZV07Y2FzZSAzOnJldHVybiFHUChuPXQuc2VudCgpKXx8NDAxIT09bi5jdXN0b21EYXRhLnNlcnZlckNvZGUmJjQwNCE9PW4uY3VzdG9tRGF0YS5zZXJ2ZXJDb2RlP1szLDVdOls0LHlPKGkuYXBwQ29uZmlnKV07Y2FzZSA0OnJldHVybiB0LnNlbnQoKSxbMyw3XTtjYXNlIDU6cmV0dXJuIHI9SmkoSmkoe30sbykse2F1dGhUb2tlbjp7cmVxdWVzdFN0YXR1czowfX0pLFs0LGdPKGkuYXBwQ29uZmlnLHIpXTtjYXNlIDY6dC5zZW50KCksdC5sYWJlbD03O2Nhc2UgNzp0aHJvdyBuO2Nhc2UgODpyZXR1cm5bMl19fSl9KX0oaSxuKSxufXJldHVybiB0fSldO2Nhc2UgMTpyZXR1cm4gZT10LnNlbnQoKSxyP1s0LHJdOlszLDNdO2Nhc2UgMjpyZXR1cm4gbj10LnNlbnQoKSxbMyw0XTtjYXNlIDM6bj1lLmF1dGhUb2tlbix0LmxhYmVsPTQ7Y2FzZSA0OnJldHVyblsyLG5dfX0pfSl9ZnVuY3Rpb24gRU8odCl7cmV0dXJuIG1PKHQsZnVuY3Rpb24odCl7aWYoIVNPKHQpKXRocm93IEhQLmNyZWF0ZSgibm90LXJlZ2lzdGVyZWQiKTt2YXIgZT10LmF1dGhUb2tlbjtyZXR1cm4gMT09PShlPWUpLnJlcXVlc3RTdGF0dXMmJmUucmVxdWVzdFRpbWUrcVA8RGF0ZS5ub3coKT9KaShKaSh7fSx0KSx7YXV0aFRva2VuOntyZXF1ZXN0U3RhdHVzOjB9fSk6dH0pfWZ1bmN0aW9uIFNPKHQpe3JldHVybiB2b2lkIDAhPT10JiYyPT09dC5yZWdpc3RyYXRpb25TdGF0dXN9ZnVuY3Rpb24gQ08oZSxuKXtyZXR1cm4gdm9pZCAwPT09biYmKG49ITEpLCRpKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3JldHVybiBaaSh0aGlzLGZ1bmN0aW9uKHQpe3N3aXRjaCh0LmxhYmVsKXtjYXNlIDA6cmV0dXJuWzQsZnVuY3Rpb24obil7cmV0dXJuICRpKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBlO3JldHVybiBaaSh0aGlzLGZ1bmN0aW9uKHQpe3N3aXRjaCh0LmxhYmVsKXtjYXNlIDA6cmV0dXJuWzQsYk8obildO2Nhc2UgMTpyZXR1cm4oZT10LnNlbnQoKS5yZWdpc3RyYXRpb25Qcm9taXNlKT9bNCxlXTpbMywzXTtjYXNlIDI6dC5zZW50KCksdC5sYWJlbD0zO2Nhc2UgMzpyZXR1cm5bMl19fSl9KX0oZS5hcHBDb25maWcpXTtjYXNlIDE6cmV0dXJuIHQuc2VudCgpLFs0LFRPKGUsbildO2Nhc2UgMjpyZXR1cm5bMix0LnNlbnQoKS50b2tlbl19fSl9KX1mdW5jdGlvbiBOTyhpLG8pe3JldHVybiAkaSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgZSxuLHI7cmV0dXJuIFppKHRoaXMsZnVuY3Rpb24odCl7c3dpdGNoKHQubGFiZWwpe2Nhc2UgMDpyZXR1cm4gZT1mdW5jdGlvbih0LGUpe2U9ZS5maWQ7cmV0dXJuIHpQKHQpKyIvIitlfShpLG8pLHI9SlAoaSxvKSxuPXttZXRob2Q6IkRFTEVURSIsaGVhZGVyczpyfSxbNCwkUChmdW5jdGlvbigpe3JldHVybiBmZXRjaChlLG4pfSldO2Nhc2UgMTpyZXR1cm4ocj10LnNlbnQoKSkub2s/WzMsM106WzQsWVAoIkRlbGV0ZSBJbnN0YWxsYXRpb24iLHIpXTtjYXNlIDI6dGhyb3cgdC5zZW50KCk7Y2FzZSAzOnJldHVyblsyXX19KX0pfWZ1bmN0aW9uIEFPKHQscil7dmFyIGk9dC5hcHBDb25maWc7cmV0dXJuIGZ1bmN0aW9uKHQsZSl7dU8oKTt2YXIgbj1yTyh0KTsodD1pTy5nZXQobikpfHwodD1uZXcgU2V0LGlPLnNldChuLHQpKSx0LmFkZChlKX0oaSxyKSxmdW5jdGlvbigpe3ZhciB0LGUsbjtlPXIsbj1yTyh0PWkpLCh0PWlPLmdldChuKSkmJih0LmRlbGV0ZShlKSwwPT09dC5zaXplJiZpTy5kZWxldGUobiksY08oKSl9fWZ1bmN0aW9uIGtPKHQpe3JldHVybiBIUC5jcmVhdGUoIm1pc3NpbmctYXBwLWNvbmZpZy12YWx1ZXMiLHt2YWx1ZU5hbWU6dH0pfShoTz1YbCkuSU5URVJOQUwucmVnaXN0ZXJDb21wb25lbnQobmV3IHRzKCJpbnN0YWxsYXRpb25zIixmdW5jdGlvbih0KXt2YXIgZT10LmdldFByb3ZpZGVyKCJhcHAiKS5nZXRJbW1lZGlhdGUoKSxuPXthcHBDb25maWc6ZnVuY3Rpb24odCl7dmFyIGUsbjtpZighdHx8IXQub3B0aW9ucyl0aHJvdyBrTygiQXBwIENvbmZpZ3VyYXRpb24iKTtpZighdC5uYW1lKXRocm93IGtPKCJBcHAgTmFtZSIpO3RyeXtmb3IodmFyIHI9dG8oWyJwcm9qZWN0SWQiLCJhcGlLZXkiLCJhcHBJZCJdKSxpPXIubmV4dCgpOyFpLmRvbmU7aT1yLm5leHQoKSl7dmFyIG89aS52YWx1ZTtpZighdC5vcHRpb25zW29dKXRocm93IGtPKG8pfX1jYXRjaCh0KXtlPXtlcnJvcjp0fX1maW5hbGx5e3RyeXtpJiYhaS5kb25lJiYobj1yLnJldHVybikmJm4uY2FsbChyKX1maW5hbGx5e2lmKGUpdGhyb3cgZS5lcnJvcn19cmV0dXJue2FwcE5hbWU6dC5uYW1lLHByb2plY3RJZDp0Lm9wdGlvbnMucHJvamVjdElkLGFwaUtleTp0Lm9wdGlvbnMuYXBpS2V5LGFwcElkOnQub3B0aW9ucy5hcHBJZH19KGUpLHBsYXRmb3JtTG9nZ2VyUHJvdmlkZXI6dC5nZXRQcm92aWRlcigicGxhdGZvcm0tbG9nZ2VyIil9O3JldHVybnthcHA6ZSxnZXRJZDpmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbihyKXtyZXR1cm4gJGkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIGUsbjtyZXR1cm4gWmkodGhpcyxmdW5jdGlvbih0KXtzd2l0Y2godC5sYWJlbCl7Y2FzZSAwOnJldHVybls0LGJPKHIuYXBwQ29uZmlnKV07Y2FzZSAxOnJldHVybiBlPXQuc2VudCgpLG49ZS5pbnN0YWxsYXRpb25FbnRyeSwoZS5yZWdpc3RyYXRpb25Qcm9taXNlfHxUTyhyKSkuY2F0Y2goY29uc29sZS5lcnJvciksWzIsbi5maWRdfX0pfSl9KG4pfSxnZXRUb2tlbjpmdW5jdGlvbih0KXtyZXR1cm4gQ08obix0KX0sZGVsZXRlOmZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uKHIpe3JldHVybiAkaSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgZSxuO3JldHVybiBaaSh0aGlzLGZ1bmN0aW9uKHQpe3N3aXRjaCh0LmxhYmVsKXtjYXNlIDA6cmV0dXJuWzQsbU8oZT1yLmFwcENvbmZpZyxmdW5jdGlvbih0KXtpZighdHx8MCE9PXQucmVnaXN0cmF0aW9uU3RhdHVzKXJldHVybiB0fSldO2Nhc2UgMTppZighKG49dC5zZW50KCkpKXJldHVyblszLDZdO2lmKDEhPT1uLnJlZ2lzdHJhdGlvblN0YXR1cylyZXR1cm5bMywyXTt0aHJvdyBIUC5jcmVhdGUoImRlbGV0ZS1wZW5kaW5nLXJlZ2lzdHJhdGlvbiIpO2Nhc2UgMjppZigyIT09bi5yZWdpc3RyYXRpb25TdGF0dXMpcmV0dXJuWzMsNl07aWYobmF2aWdhdG9yLm9uTGluZSlyZXR1cm5bMywzXTt0aHJvdyBIUC5jcmVhdGUoImFwcC1vZmZsaW5lIik7Y2FzZSAzOnJldHVybls0LE5PKGUsbildO2Nhc2UgNDpyZXR1cm4gdC5zZW50KCksWzQseU8oZSldO2Nhc2UgNTp0LnNlbnQoKSx0LmxhYmVsPTY7Y2FzZSA2OnJldHVyblsyXX19KX0pfShuKX0sb25JZENoYW5nZTpmdW5jdGlvbih0KXtyZXR1cm4gQU8obix0KX19fSwiUFVCTElDIikpLGhPLnJlZ2lzdGVyVmVyc2lvbigiQGZpcmViYXNlL2luc3RhbGxhdGlvbnMiLCIwLjQuMjMiKTt2YXIgUk8sU249KChHYT17fSlbIm1pc3NpbmctYXBwLWNvbmZpZy12YWx1ZXMiXT0nTWlzc2luZyBBcHAgY29uZmlndXJhdGlvbiB2YWx1ZTogInskdmFsdWVOYW1lfSInLEdhWyJvbmx5LWF2YWlsYWJsZS1pbi13aW5kb3ciXT0iVGhpcyBtZXRob2QgaXMgYXZhaWxhYmxlIGluIGEgV2luZG93IGNvbnRleHQuIixHYVsib25seS1hdmFpbGFibGUtaW4tc3ciXT0iVGhpcyBtZXRob2QgaXMgYXZhaWxhYmxlIGluIGEgc2VydmljZSB3b3JrZXIgY29udGV4dC4iLEdhWyJwZXJtaXNzaW9uLWRlZmF1bHQiXT0iVGhlIG5vdGlmaWNhdGlvbiBwZXJtaXNzaW9uIHdhcyBub3QgZ3JhbnRlZCBhbmQgZGlzbWlzc2VkIGluc3RlYWQuIixHYVsicGVybWlzc2lvbi1ibG9ja2VkIl09IlRoZSBub3RpZmljYXRpb24gcGVybWlzc2lvbiB3YXMgbm90IGdyYW50ZWQgYW5kIGJsb2NrZWQgaW5zdGVhZC4iLEdhWyJ1bnN1cHBvcnRlZC1icm93c2VyIl09IlRoaXMgYnJvd3NlciBkb2Vzbid0IHN1cHBvcnQgdGhlIEFQSSdzIHJlcXVpcmVkIHRvIHVzZSB0aGUgZmlyZWJhc2UgU0RLLiIsR2FbImZhaWxlZC1zZXJ2aWNlLXdvcmtlci1yZWdpc3RyYXRpb24iXT0iV2UgYXJlIHVuYWJsZSB0byByZWdpc3RlciB0aGUgZGVmYXVsdCBzZXJ2aWNlIHdvcmtlci4geyRicm93c2VyRXJyb3JNZXNzYWdlfSIsR2FbInRva2VuLXN1YnNjcmliZS1mYWlsZWQiXT0iQSBwcm9ibGVtIG9jY3VycmVkIHdoaWxlIHN1YnNjcmliaW5nIHRoZSB1c2VyIHRvIEZDTTogeyRlcnJvckluZm99IixHYVsidG9rZW4tc3Vic2NyaWJlLW5vLXRva2VuIl09IkZDTSByZXR1cm5lZCBubyB0b2tlbiB3aGVuIHN1YnNjcmliaW5nIHRoZSB1c2VyIHRvIHB1c2guIixHYVsidG9rZW4tdW5zdWJzY3JpYmUtZmFpbGVkIl09IkEgcHJvYmxlbSBvY2N1cnJlZCB3aGlsZSB1bnN1YnNjcmliaW5nIHRoZSB1c2VyIGZyb20gRkNNOiB7JGVycm9ySW5mb30iLEdhWyJ0b2tlbi11cGRhdGUtZmFpbGVkIl09IkEgcHJvYmxlbSBvY2N1cnJlZCB3aGlsZSB1cGRhdGluZyB0aGUgdXNlciBmcm9tIEZDTTogeyRlcnJvckluZm99IixHYVsidG9rZW4tdXBkYXRlLW5vLXRva2VuIl09IkZDTSByZXR1cm5lZCBubyB0b2tlbiB3aGVuIHVwZGF0aW5nIHRoZSB1c2VyIHRvIHB1c2guIixHYVsidXNlLXN3LWFmdGVyLWdldC10b2tlbiJdPSJUaGUgdXNlU2VydmljZVdvcmtlcigpIG1ldGhvZCBtYXkgb25seSBiZSBjYWxsZWQgb25jZSBhbmQgbXVzdCBiZSBjYWxsZWQgYmVmb3JlIGNhbGxpbmcgZ2V0VG9rZW4oKSB0byBlbnN1cmUgeW91ciBzZXJ2aWNlIHdvcmtlciBpcyB1c2VkLiIsR2FbImludmFsaWQtc3ctcmVnaXN0cmF0aW9uIl09IlRoZSBpbnB1dCB0byB1c2VTZXJ2aWNlV29ya2VyKCkgbXVzdCBiZSBhIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24uIixHYVsiaW52YWxpZC1iZy1oYW5kbGVyIl09IlRoZSBpbnB1dCB0byBzZXRCYWNrZ3JvdW5kTWVzc2FnZUhhbmRsZXIoKSBtdXN0IGJlIGEgZnVuY3Rpb24uIixHYVsiaW52YWxpZC12YXBpZC1rZXkiXT0iVGhlIHB1YmxpYyBWQVBJRCBrZXkgbXVzdCBiZSBhIHN0cmluZy4iLEdhWyJ1c2UtdmFwaWQta2V5LWFmdGVyLWdldC10b2tlbiJdPSJUaGUgdXNlUHVibGljVmFwaWRLZXkoKSBtZXRob2QgbWF5IG9ubHkgYmUgY2FsbGVkIG9uY2UgYW5kIG11c3QgYmUgY2FsbGVkIGJlZm9yZSBjYWxsaW5nIGdldFRva2VuKCkgdG8gZW5zdXJlIHlvdXIgVkFQSUQga2V5IGlzIHVzZWQuIixHYSksUE89bmV3IENvKCJtZXNzYWdpbmciLCJNZXNzYWdpbmciLFNuKSxPTz0iQkRPVTk5LWg2N0hjQTZKZUZYSGJTTk11N2UyeU5OdTNSem9NajhUTTRXODhqSVRmcTdabVB2SU0xSXYtNF9sMkx4UWNZd2hxYnkyeEdwV3d6amZBbkc0IixETz0iaHR0cHM6Ly9mY21yZWdpc3RyYXRpb25zLmdvb2dsZWFwaXMuY29tL3YxIix4Tz0iRkNNX01TRyIsTE89Imdvb2dsZS5jLmEuY19pZCI7ZnVuY3Rpb24gTU8odCl7dD1uZXcgVWludDhBcnJheSh0KTtyZXR1cm4gYnRvYShTdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KFN0cmluZyxubyhbXSxlbyh0KSkpKS5yZXBsYWNlKC89L2csIiIpLnJlcGxhY2UoL1wrL2csIi0iKS5yZXBsYWNlKC9cLy9nLCJfIil9KEdhPVJPPVJPfHx7fSkuUFVTSF9SRUNFSVZFRD0icHVzaC1yZWNlaXZlZCIsR2EuTk9USUZJQ0FUSU9OX0NMSUNLRUQ9Im5vdGlmaWNhdGlvbi1jbGlja2VkIjt2YXIgRk89ImZjbV90b2tlbl9kZXRhaWxzX2RiIixVTz01LGpPPSJmY21fdG9rZW5fb2JqZWN0X1N0b3JlIjtmdW5jdGlvbiBxTyhzKXtyZXR1cm4gJGkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIGUsbyxuPXRoaXM7cmV0dXJuIFppKHRoaXMsZnVuY3Rpb24odCl7c3dpdGNoKHQubGFiZWwpe2Nhc2UgMDpyZXR1cm4iZGF0YWJhc2VzImluIGluZGV4ZWREQj9bNCxpbmRleGVkREIuZGF0YWJhc2VzKCldOlszLDJdO2Nhc2UgMTppZihlPXQuc2VudCgpLCFlLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gdC5uYW1lfSkuaW5jbHVkZXMoRk8pKXJldHVyblsyLG51bGxdO3QubGFiZWw9MjtjYXNlIDI6cmV0dXJuIG89bnVsbCxbNCxVUChGTyxVTyxmdW5jdGlvbihpKXtyZXR1cm4gJGkobix2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIGUsbixyO3JldHVybiBaaSh0aGlzLGZ1bmN0aW9uKHQpe3N3aXRjaCh0LmxhYmVsKXtjYXNlIDA6cmV0dXJuIGkub2xkVmVyc2lvbjwyP1syXTppLm9iamVjdFN0b3JlTmFtZXMuY29udGFpbnMoak8pP1s0LChyPWkudHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUoak8pKS5pbmRleCgiZmNtU2VuZGVySWQiKS5nZXQocyldOlsyXTtjYXNlIDE6cmV0dXJuIGU9dC5zZW50KCksWzQsci5jbGVhcigpXTtjYXNlIDI6aWYodC5zZW50KCksIWUpcmV0dXJuWzJdO2lmKDI9PT1pLm9sZFZlcnNpb24pe2lmKCEobj1lKS5hdXRofHwhbi5wMjU2ZGh8fCFuLmVuZHBvaW50KXJldHVyblsyXTtvPXt0b2tlbjpuLmZjbVRva2VuLGNyZWF0ZVRpbWU6bnVsbCE9PShyPW4uY3JlYXRlVGltZSkmJnZvaWQgMCE9PXI/cjpEYXRlLm5vdygpLHN1YnNjcmlwdGlvbk9wdGlvbnM6e2F1dGg6bi5hdXRoLHAyNTZkaDpuLnAyNTZkaCxlbmRwb2ludDpuLmVuZHBvaW50LHN3U2NvcGU6bi5zd1Njb3BlLHZhcGlkS2V5OiJzdHJpbmciPT10eXBlb2Ygbi52YXBpZEtleT9uLnZhcGlkS2V5Ok1PKG4udmFwaWRLZXkpfX19ZWxzZSgzPT09aS5vbGRWZXJzaW9ufHw0PT09aS5vbGRWZXJzaW9uKSYmKG89e3Rva2VuOihuPWUpLmZjbVRva2VuLGNyZWF0ZVRpbWU6bi5jcmVhdGVUaW1lLHN1YnNjcmlwdGlvbk9wdGlvbnM6e2F1dGg6TU8obi5hdXRoKSxwMjU2ZGg6TU8obi5wMjU2ZGgpLGVuZHBvaW50Om4uZW5kcG9pbnQsc3dTY29wZTpuLnN3U2NvcGUsdmFwaWRLZXk6TU8obi52YXBpZEtleSl9fSk7cmV0dXJuWzJdfX0pfSl9KV07Y2FzZSAzOnJldHVybiB0LnNlbnQoKS5jbG9zZSgpLFs0LGpQKEZPKV07Y2FzZSA0OnJldHVybiB0LnNlbnQoKSxbNCxqUCgiZmNtX3ZhcGlkX2RldGFpbHNfZGIiKV07Y2FzZSA1OnJldHVybiB0LnNlbnQoKSxbNCxqUCgidW5kZWZpbmVkIildO2Nhc2UgNjpyZXR1cm4gdC5zZW50KCksWzIsZnVuY3Rpb24odCl7aWYoIXR8fCF0LnN1YnNjcmlwdGlvbk9wdGlvbnMpcmV0dXJuITE7dmFyIGU9dC5zdWJzY3JpcHRpb25PcHRpb25zO3JldHVybiJudW1iZXIiPT10eXBlb2YgdC5jcmVhdGVUaW1lJiYwPHQuY3JlYXRlVGltZSYmInN0cmluZyI9PXR5cGVvZiB0LnRva2VuJiYwPHQudG9rZW4ubGVuZ3RoJiYic3RyaW5nIj09dHlwZW9mIGUuYXV0aCYmMDxlLmF1dGgubGVuZ3RoJiYic3RyaW5nIj09dHlwZW9mIGUucDI1NmRoJiYwPGUucDI1NmRoLmxlbmd0aCYmInN0cmluZyI9PXR5cGVvZiBlLmVuZHBvaW50JiYwPGUuZW5kcG9pbnQubGVuZ3RoJiYic3RyaW5nIj09dHlwZW9mIGUuc3dTY29wZSYmMDxlLnN3U2NvcGUubGVuZ3RoJiYic3RyaW5nIj09dHlwZW9mIGUudmFwaWRLZXkmJjA8ZS52YXBpZEtleS5sZW5ndGh9KG8pP286bnVsbF19fSl9KX12YXIgVk89ImZpcmViYXNlLW1lc3NhZ2luZy1kYXRhYmFzZSIsQk89MSxLTz0iZmlyZWJhc2UtbWVzc2FnaW5nLXN0b3JlIixXTz1udWxsO2Z1bmN0aW9uIEhPKCl7cmV0dXJuIFdPPVdPfHxVUChWTyxCTyxmdW5jdGlvbih0KXswPT09dC5vbGRWZXJzaW9uJiZ0LmNyZWF0ZU9iamVjdFN0b3JlKEtPKX0pfWZ1bmN0aW9uIEdPKHIpe3JldHVybiAkaSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgZSxuO3JldHVybiBaaSh0aGlzLGZ1bmN0aW9uKHQpe3N3aXRjaCh0LmxhYmVsKXtjYXNlIDA6cmV0dXJuIGU9UU8ociksWzQsSE8oKV07Y2FzZSAxOnJldHVybls0LHQuc2VudCgpLnRyYW5zYWN0aW9uKEtPKS5vYmplY3RTdG9yZShLTykuZ2V0KGUpXTtjYXNlIDI6cmV0dXJuKGU9dC5zZW50KCkpP1syLGVdOlszLDNdO2Nhc2UgMzpyZXR1cm5bNCxxTyhyLmFwcENvbmZpZy5zZW5kZXJJZCldO2Nhc2UgNDpyZXR1cm4obj10LnNlbnQoKSk/WzQsek8ocixuKV06WzMsNl07Y2FzZSA1OnJldHVybiB0LnNlbnQoKSxbMixuXTtjYXNlIDY6cmV0dXJuWzJdfX0pfSl9ZnVuY3Rpb24gek8ocixpKXtyZXR1cm4gJGkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIGUsbjtyZXR1cm4gWmkodGhpcyxmdW5jdGlvbih0KXtzd2l0Y2godC5sYWJlbCl7Y2FzZSAwOnJldHVybiBlPVFPKHIpLFs0LEhPKCldO2Nhc2UgMTpyZXR1cm4gbj10LnNlbnQoKSxbNCwobj1uLnRyYW5zYWN0aW9uKEtPLCJyZWFkd3JpdGUiKSkub2JqZWN0U3RvcmUoS08pLnB1dChpLGUpXTtjYXNlIDI6cmV0dXJuIHQuc2VudCgpLFs0LG4uY29tcGxldGVdO2Nhc2UgMzpyZXR1cm4gdC5zZW50KCksWzIsaV19fSl9KX1mdW5jdGlvbiBRTyh0KXtyZXR1cm4gdC5hcHBDb25maWcuYXBwSWR9ZnVuY3Rpb24gWU8ocixpKXtyZXR1cm4gJGkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIGUsbjtyZXR1cm4gWmkodGhpcyxmdW5jdGlvbih0KXtzd2l0Y2godC5sYWJlbCl7Y2FzZSAwOnJldHVybls0LEpPKHIpXTtjYXNlIDE6ZT10LnNlbnQoKSxlPXttZXRob2Q6IkRFTEVURSIsaGVhZGVyczplfSx0LmxhYmVsPTI7Y2FzZSAyOnJldHVybiB0LnRyeXMucHVzaChbMiw1LCw2XSksWzQsZmV0Y2goWE8oci5hcHBDb25maWcpKyIvIitpLGUpXTtjYXNlIDM6cmV0dXJuWzQsdC5zZW50KCkuanNvbigpXTtjYXNlIDQ6aWYoKGU9dC5zZW50KCkpLmVycm9yKXRocm93IG49ZS5lcnJvci5tZXNzYWdlLFBPLmNyZWF0ZSgidG9rZW4tdW5zdWJzY3JpYmUtZmFpbGVkIix7ZXJyb3JJbmZvOm59KTtyZXR1cm5bMyw2XTtjYXNlIDU6dGhyb3cgbj10LnNlbnQoKSxQTy5jcmVhdGUoInRva2VuLXVuc3Vic2NyaWJlLWZhaWxlZCIse2Vycm9ySW5mbzpufSk7Y2FzZSA2OnJldHVyblsyXX19KX0pfWZ1bmN0aW9uIFhPKHQpe3Q9dC5wcm9qZWN0SWQ7cmV0dXJuIERPKyIvcHJvamVjdHMvIit0KyIvcmVnaXN0cmF0aW9ucyJ9ZnVuY3Rpb24gSk8odCl7dmFyIG49dC5hcHBDb25maWcscj10Lmluc3RhbGxhdGlvbnM7cmV0dXJuICRpKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBlO3JldHVybiBaaSh0aGlzLGZ1bmN0aW9uKHQpe3N3aXRjaCh0LmxhYmVsKXtjYXNlIDA6cmV0dXJuWzQsci5nZXRUb2tlbigpXTtjYXNlIDE6cmV0dXJuIGU9dC5zZW50KCksWzIsbmV3IEhlYWRlcnMoeyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIixBY2NlcHQ6ImFwcGxpY2F0aW9uL2pzb24iLCJ4LWdvb2ctYXBpLWtleSI6bi5hcGlLZXksIngtZ29vZy1maXJlYmFzZS1pbnN0YWxsYXRpb25zLWF1dGgiOiJGSVMgIitlfSldfX0pfSl9ZnVuY3Rpb24gJE8odCl7dmFyIGU9dC5wMjU2ZGgsbj10LmF1dGgscj10LmVuZHBvaW50LHQ9dC52YXBpZEtleSxlPXt3ZWI6e2VuZHBvaW50OnIsYXV0aDpuLHAyNTZkaDplfX07cmV0dXJuIHQhPT1PTyYmKGUud2ViLmFwcGxpY2F0aW9uUHViS2V5PXQpLGV9ZnVuY3Rpb24gWk8oYyxoLGwpe3JldHVybiAkaSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgcyxhLHU7cmV0dXJuIFppKHRoaXMsZnVuY3Rpb24odCl7c3dpdGNoKHQubGFiZWwpe2Nhc2UgMDppZigiZ3JhbnRlZCIhPT1Ob3RpZmljYXRpb24ucGVybWlzc2lvbil0aHJvdyBQTy5jcmVhdGUoInBlcm1pc3Npb24tYmxvY2tlZCIpO3JldHVybls0LGZ1bmN0aW9uKG4scil7cmV0dXJuICRpKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBlO3JldHVybiBaaSh0aGlzLGZ1bmN0aW9uKHQpe3N3aXRjaCh0LmxhYmVsKXtjYXNlIDA6cmV0dXJuWzQsbi5wdXNoTWFuYWdlci5nZXRTdWJzY3JpcHRpb24oKV07Y2FzZSAxOnJldHVybihlPXQuc2VudCgpKT9bMixlXTpbMixuLnB1c2hNYW5hZ2VyLnN1YnNjcmliZSh7dXNlclZpc2libGVPbmx5OiEwLGFwcGxpY2F0aW9uU2VydmVyS2V5OmZ1bmN0aW9uKHQpe2Zvcih2YXIgdD0odCsiPSIucmVwZWF0KCg0LXQubGVuZ3RoJTQpJTQpKS5yZXBsYWNlKC9cLS9nLCIrIikucmVwbGFjZSgvXy9nLCIvIiksZT1hdG9iKHQpLG49bmV3IFVpbnQ4QXJyYXkoZS5sZW5ndGgpLHI9MDtyPGUubGVuZ3RoOysrciluW3JdPWUuY2hhckNvZGVBdChyKTtyZXR1cm4gbn0ocil9KV19fSl9KX0oaCxsKV07Y2FzZSAxOnJldHVybiB1PXQuc2VudCgpLFs0LEdPKGMpXTtjYXNlIDI6cmV0dXJuIHM9dC5zZW50KCksYT17dmFwaWRLZXk6bCxzd1Njb3BlOmguc2NvcGUsZW5kcG9pbnQ6dS5lbmRwb2ludCxhdXRoOk1PKHUuZ2V0S2V5KCJhdXRoIikpLHAyNTZkaDpNTyh1LmdldEtleSgicDI1NmRoIikpfSxzP1szLDNdOlsyLGVEKGMsYSldO2Nhc2UgMzppZihlPXMuc3Vic2NyaXB0aW9uT3B0aW9ucyxyPShuPWEpLnZhcGlkS2V5PT09ZS52YXBpZEtleSxpPW4uZW5kcG9pbnQ9PT1lLmVuZHBvaW50LG89bi5hdXRoPT09ZS5hdXRoLGU9bi5wMjU2ZGg9PT1lLnAyNTZkaCxyJiZpJiZvJiZlKXJldHVyblszLDhdO3QubGFiZWw9NDtjYXNlIDQ6cmV0dXJuIHQudHJ5cy5wdXNoKFs0LDYsLDddKSxbNCxZTyhjLHMudG9rZW4pXTtjYXNlIDU6cmV0dXJuIHQuc2VudCgpLFszLDddO2Nhc2UgNjpyZXR1cm4gdT10LnNlbnQoKSxjb25zb2xlLndhcm4odSksWzMsN107Y2FzZSA3OnJldHVyblsyLGVEKGMsYSldO2Nhc2UgODpyZXR1cm4gRGF0ZS5ub3coKT49cy5jcmVhdGVUaW1lKzYwNDhlNT9bMixmdW5jdGlvbihpLG8scyl7cmV0dXJuICRpKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBlLG4scjtyZXR1cm4gWmkodGhpcyxmdW5jdGlvbih0KXtzd2l0Y2godC5sYWJlbCl7Y2FzZSAwOnJldHVybiB0LnRyeXMucHVzaChbMCwzLCw1XSksWzQsZnVuY3Rpb24obyxzKXtyZXR1cm4gJGkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIGUsbixyLGk7cmV0dXJuIFppKHRoaXMsZnVuY3Rpb24odCl7c3dpdGNoKHQubGFiZWwpe2Nhc2UgMDpyZXR1cm5bNCxKTyhvKV07Y2FzZSAxOmU9dC5zZW50KCksbj0kTyhzLnN1YnNjcmlwdGlvbk9wdGlvbnMpLG49e21ldGhvZDoiUEFUQ0giLGhlYWRlcnM6ZSxib2R5OkpTT04uc3RyaW5naWZ5KG4pfSx0LmxhYmVsPTI7Y2FzZSAyOnJldHVybiB0LnRyeXMucHVzaChbMiw1LCw2XSksWzQsZmV0Y2goWE8oby5hcHBDb25maWcpKyIvIitzLnRva2VuLG4pXTtjYXNlIDM6cmV0dXJuWzQsdC5zZW50KCkuanNvbigpXTtjYXNlIDQ6cmV0dXJuIHI9dC5zZW50KCksWzMsNl07Y2FzZSA1OnRocm93IGk9dC5zZW50KCksUE8uY3JlYXRlKCJ0b2tlbi11cGRhdGUtZmFpbGVkIix7ZXJyb3JJbmZvOml9KTtjYXNlIDY6aWYoci5lcnJvcil0aHJvdyBpPXIuZXJyb3IubWVzc2FnZSxQTy5jcmVhdGUoInRva2VuLXVwZGF0ZS1mYWlsZWQiLHtlcnJvckluZm86aX0pO2lmKCFyLnRva2VuKXRocm93IFBPLmNyZWF0ZSgidG9rZW4tdXBkYXRlLW5vLXRva2VuIik7cmV0dXJuWzIsci50b2tlbl19fSl9KX0obyxpKV07Y2FzZSAxOnJldHVybiBlPXQuc2VudCgpLG49SmkoSmkoe30saSkse3Rva2VuOmUsY3JlYXRlVGltZTpEYXRlLm5vdygpfSksWzQsek8obyxuKV07Y2FzZSAyOnJldHVybiB0LnNlbnQoKSxbMixlXTtjYXNlIDM6cmV0dXJuIHI9dC5zZW50KCksWzQsdEQobyxzKV07Y2FzZSA0OnRocm93IHQuc2VudCgpLHI7Y2FzZSA1OnJldHVyblsyXX19KX0pfSh7dG9rZW46cy50b2tlbixjcmVhdGVUaW1lOkRhdGUubm93KCksc3Vic2NyaXB0aW9uT3B0aW9uczphfSxjLGgpXTpbMixzLnRva2VuXTtjYXNlIDk6cmV0dXJuWzJdfXZhciBlLG4scixpLG99KX0pfWZ1bmN0aW9uIHREKG4scil7cmV0dXJuICRpKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBlO3JldHVybiBaaSh0aGlzLGZ1bmN0aW9uKHQpe3N3aXRjaCh0LmxhYmVsKXtjYXNlIDA6cmV0dXJuWzQsR08obildO2Nhc2UgMTpyZXR1cm4oZT10LnNlbnQoKSk/WzQsWU8obixlLnRva2VuKV06WzMsNF07Y2FzZSAyOnJldHVybiB0LnNlbnQoKSxbNCxmdW5jdGlvbihyKXtyZXR1cm4gJGkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIGUsbjtyZXR1cm4gWmkodGhpcyxmdW5jdGlvbih0KXtzd2l0Y2godC5sYWJlbCl7Y2FzZSAwOnJldHVybiBlPVFPKHIpLFs0LEhPKCldO2Nhc2UgMTpyZXR1cm4gbj10LnNlbnQoKSxbNCwobj1uLnRyYW5zYWN0aW9uKEtPLCJyZWFkd3JpdGUiKSkub2JqZWN0U3RvcmUoS08pLmRlbGV0ZShlKV07Y2FzZSAyOnJldHVybiB0LnNlbnQoKSxbNCxuLmNvbXBsZXRlXTtjYXNlIDM6cmV0dXJuIHQuc2VudCgpLFsyXX19KX0pfShuKV07Y2FzZSAzOnQuc2VudCgpLHQubGFiZWw9NDtjYXNlIDQ6cmV0dXJuWzQsci5wdXNoTWFuYWdlci5nZXRTdWJzY3JpcHRpb24oKV07Y2FzZSA1OnJldHVybihlPXQuc2VudCgpKT9bMixlLnVuc3Vic2NyaWJlKCldOlsyLCEwXX19KX0pfWZ1bmN0aW9uIGVEKG4scil7cmV0dXJuICRpKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBlO3JldHVybiBaaSh0aGlzLGZ1bmN0aW9uKHQpe3N3aXRjaCh0LmxhYmVsKXtjYXNlIDA6cmV0dXJuWzQsZnVuY3Rpb24obyxzKXtyZXR1cm4gJGkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIGUsbixyLGk7cmV0dXJuIFppKHRoaXMsZnVuY3Rpb24odCl7c3dpdGNoKHQubGFiZWwpe2Nhc2UgMDpyZXR1cm5bNCxKTyhvKV07Y2FzZSAxOmU9dC5zZW50KCksbj0kTyhzKSxuPXttZXRob2Q6IlBPU1QiLGhlYWRlcnM6ZSxib2R5OkpTT04uc3RyaW5naWZ5KG4pfSx0LmxhYmVsPTI7Y2FzZSAyOnJldHVybiB0LnRyeXMucHVzaChbMiw1LCw2XSksWzQsZmV0Y2goWE8oby5hcHBDb25maWcpLG4pXTtjYXNlIDM6cmV0dXJuWzQsdC5zZW50KCkuanNvbigpXTtjYXNlIDQ6cmV0dXJuIHI9dC5zZW50KCksWzMsNl07Y2FzZSA1OnRocm93IGk9dC5zZW50KCksUE8uY3JlYXRlKCJ0b2tlbi1zdWJzY3JpYmUtZmFpbGVkIix7ZXJyb3JJbmZvOml9KTtjYXNlIDY6aWYoci5lcnJvcil0aHJvdyBpPXIuZXJyb3IubWVzc2FnZSxQTy5jcmVhdGUoInRva2VuLXN1YnNjcmliZS1mYWlsZWQiLHtlcnJvckluZm86aX0pO2lmKCFyLnRva2VuKXRocm93IFBPLmNyZWF0ZSgidG9rZW4tc3Vic2NyaWJlLW5vLXRva2VuIik7cmV0dXJuWzIsci50b2tlbl19fSl9KX0obixyKV07Y2FzZSAxOnJldHVybiBlPXQuc2VudCgpLGU9e3Rva2VuOmUsY3JlYXRlVGltZTpEYXRlLm5vdygpLHN1YnNjcmlwdGlvbk9wdGlvbnM6cn0sWzQsek8obixlKV07Y2FzZSAyOnJldHVybiB0LnNlbnQoKSxbMixlLnRva2VuXX19KX0pfWZ1bmN0aW9uIG5EKHQpe3ZhciBlPXtmcm9tOnQuZnJvbSxjb2xsYXBzZUtleTp0LmNvbGxhcHNlX2tleX07cmV0dXJuIGZ1bmN0aW9uKHQsZSl7aWYoIWUubm90aWZpY2F0aW9uKXJldHVybjt0Lm5vdGlmaWNhdGlvbj17fTt2YXIgbj1lLm5vdGlmaWNhdGlvbi50aXRsZTtuJiYodC5ub3RpZmljYXRpb24udGl0bGU9bik7bj1lLm5vdGlmaWNhdGlvbi5ib2R5O24mJih0Lm5vdGlmaWNhdGlvbi5ib2R5PW4pO2U9ZS5ub3RpZmljYXRpb24uaW1hZ2U7ZSYmKHQubm90aWZpY2F0aW9uLmltYWdlPWUpfShlLHQpLGZ1bmN0aW9uKHQsZSl7aWYoIWUuZGF0YSlyZXR1cm47dC5kYXRhPWUuZGF0YX0oZSx0KSxmdW5jdGlvbih0LGUpe2lmKCFlLmZjbU9wdGlvbnMpcmV0dXJuO3QuZmNtT3B0aW9ucz17fTt2YXIgbj1lLmZjbU9wdGlvbnMubGluaztuJiYodC5mY21PcHRpb25zLmxpbms9bik7ZT1lLmZjbU9wdGlvbnMuYW5hbHl0aWNzX2xhYmVsO2UmJih0LmZjbU9wdGlvbnMuYW5hbHl0aWNzTGFiZWw9ZSl9KGUsdCksZX1mdW5jdGlvbiByRCh0KXtyZXR1cm4ib2JqZWN0Ij09dHlwZW9mIHQmJnQmJkxPIGluIHR9ZnVuY3Rpb24gaUQoZSl7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHQpe3NldFRpbWVvdXQodCxlKX0pfXZhciBvRD0oT2JqZWN0LmRlZmluZVByb3BlcnR5KHNELnByb3RvdHlwZSwiYXBwIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZmlyZWJhc2VEZXBlbmRlbmNpZXMuYXBwfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLHNELnByb3RvdHlwZS5zZXRCYWNrZ3JvdW5kTWVzc2FnZUhhbmRsZXI9ZnVuY3Rpb24odCl7aWYodGhpcy5pc09uQmFja2dyb3VuZE1lc3NhZ2VVc2VkPSExLCF0fHwiZnVuY3Rpb24iIT10eXBlb2YgdCl0aHJvdyBQTy5jcmVhdGUoImludmFsaWQtYmctaGFuZGxlciIpO3RoaXMuYmdNZXNzYWdlSGFuZGxlcj10fSxzRC5wcm90b3R5cGUub25CYWNrZ3JvdW5kTWVzc2FnZT1mdW5jdGlvbih0KXt2YXIgZT10aGlzO3JldHVybiB0aGlzLmlzT25CYWNrZ3JvdW5kTWVzc2FnZVVzZWQ9ITAsdGhpcy5iZ01lc3NhZ2VIYW5kbGVyPXQsZnVuY3Rpb24oKXtlLmJnTWVzc2FnZUhhbmRsZXI9bnVsbH19LHNELnByb3RvdHlwZS5nZXRUb2tlbj1mdW5jdGlvbigpe3ZhciBuO3JldHVybiAkaSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgZTtyZXR1cm4gWmkodGhpcyxmdW5jdGlvbih0KXtzd2l0Y2godC5sYWJlbCl7Y2FzZSAwOnJldHVybiB0aGlzLnZhcGlkS2V5P1szLDJdOls0LEdPKHRoaXMuZmlyZWJhc2VEZXBlbmRlbmNpZXMpXTtjYXNlIDE6ZT10LnNlbnQoKSx0aGlzLnZhcGlkS2V5PW51bGwhPT0obj1udWxsPT09KG49bnVsbD09ZT92b2lkIDA6ZS5zdWJzY3JpcHRpb25PcHRpb25zKXx8dm9pZCAwPT09bj92b2lkIDA6bi52YXBpZEtleSkmJnZvaWQgMCE9PW4/bjpPTyx0LmxhYmVsPTI7Y2FzZSAyOnJldHVyblsyLFpPKHRoaXMuZmlyZWJhc2VEZXBlbmRlbmNpZXMsc2VsZi5yZWdpc3RyYXRpb24sdGhpcy52YXBpZEtleSldfX0pfSl9LHNELnByb3RvdHlwZS5kZWxldGVUb2tlbj1mdW5jdGlvbigpe3JldHVybiB0RCh0aGlzLmZpcmViYXNlRGVwZW5kZW5jaWVzLHNlbGYucmVnaXN0cmF0aW9uKX0sc0QucHJvdG90eXBlLnJlcXVlc3RQZXJtaXNzaW9uPWZ1bmN0aW9uKCl7dGhyb3cgUE8uY3JlYXRlKCJvbmx5LWF2YWlsYWJsZS1pbi13aW5kb3ciKX0sc0QucHJvdG90eXBlLnVzZVB1YmxpY1ZhcGlkS2V5PWZ1bmN0aW9uKHQpe2lmKG51bGwhPT10aGlzLnZhcGlkS2V5KXRocm93IFBPLmNyZWF0ZSgidXNlLXZhcGlkLWtleS1hZnRlci1nZXQtdG9rZW4iKTtpZigic3RyaW5nIiE9dHlwZW9mIHR8fDA9PT10Lmxlbmd0aCl0aHJvdyBQTy5jcmVhdGUoImludmFsaWQtdmFwaWQta2V5Iik7dGhpcy52YXBpZEtleT10fSxzRC5wcm90b3R5cGUudXNlU2VydmljZVdvcmtlcj1mdW5jdGlvbigpe3Rocm93IFBPLmNyZWF0ZSgib25seS1hdmFpbGFibGUtaW4td2luZG93Iil9LHNELnByb3RvdHlwZS5vbk1lc3NhZ2U9ZnVuY3Rpb24oKXt0aHJvdyBQTy5jcmVhdGUoIm9ubHktYXZhaWxhYmxlLWluLXdpbmRvdyIpfSxzRC5wcm90b3R5cGUub25Ub2tlblJlZnJlc2g9ZnVuY3Rpb24oKXt0aHJvdyBQTy5jcmVhdGUoIm9ubHktYXZhaWxhYmxlLWluLXdpbmRvdyIpfSxzRC5wcm90b3R5cGUub25QdXNoPWZ1bmN0aW9uKGEpe3JldHVybiAkaSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgaSxvLHM7cmV0dXJuIFppKHRoaXMsZnVuY3Rpb24odCl7c3dpdGNoKHQubGFiZWwpe2Nhc2UgMDpyZXR1cm4ocz1mdW5jdGlvbih0KXt2YXIgZT10LmRhdGE7aWYoIWUpcmV0dXJuIG51bGw7dHJ5e3JldHVybiBlLmpzb24oKX1jYXRjaCh0KXtyZXR1cm4gbnVsbH19KGEpKT9bNCxhRCgpXTooY29uc29sZS5kZWJ1ZygiRmlyZWJhc2VNZXNzYWdpbmc6IGZhaWxlZCB0byBnZXQgcGFyc2VkIE1lc3NhZ2VQYXlsb2FkIGZyb20gdGhlIFB1c2hFdmVudC4gU2tpcCBoYW5kbGluZyB0aGUgcHVzaC4iKSxbMl0pO2Nhc2UgMTpyZXR1cm4oaT10LnNlbnQoKSxpLnNvbWUoZnVuY3Rpb24odCl7cmV0dXJuInZpc2libGUiPT09dC52aXNpYmlsaXR5U3RhdGUmJiF0LnVybC5zdGFydHNXaXRoKCJjaHJvbWUtZXh0ZW5zaW9uOi8vIil9KSk/WzIsZnVuY3Rpb24odCxlKXt2YXIgbixyO2UuaXNGaXJlYmFzZU1lc3NhZ2luZz0hMCxlLm1lc3NhZ2VUeXBlPVJPLlBVU0hfUkVDRUlWRUQ7dHJ5e2Zvcih2YXIgaT10byh0KSxvPWkubmV4dCgpOyFvLmRvbmU7bz1pLm5leHQoKSlvLnZhbHVlLnBvc3RNZXNzYWdlKGUpfWNhdGNoKHQpe249e2Vycm9yOnR9fWZpbmFsbHl7dHJ5e28mJiFvLmRvbmUmJihyPWkucmV0dXJuKSYmci5jYWxsKGkpfWZpbmFsbHl7aWYobil0aHJvdyBuLmVycm9yfX19KGkscyldOihvPSExLHMubm90aWZpY2F0aW9uP1s0LGZ1bmN0aW9uKHQpe3ZhciBlPXQuYWN0aW9ucyxuPU5vdGlmaWNhdGlvbi5tYXhBY3Rpb25zO2UmJm4mJmUubGVuZ3RoPm4mJmNvbnNvbGUud2FybigiVGhpcyBicm93c2VyIG9ubHkgc3VwcG9ydHMgIituKyIgYWN0aW9ucy4gVGhlIHJlbWFpbmluZyBhY3Rpb25zIHdpbGwgbm90IGJlIGRpc3BsYXllZC4iKTtyZXR1cm4gc2VsZi5yZWdpc3RyYXRpb24uc2hvd05vdGlmaWNhdGlvbihudWxsIT09KG49dC50aXRsZSkmJnZvaWQgMCE9PW4/bjoiIix0KX0oKChyPUppKHt9LChlPXMpLm5vdGlmaWNhdGlvbikpLmRhdGE9KChuPXt9KVt4T109ZSxuKSxyKSldOlszLDNdKTtjYXNlIDI6dC5zZW50KCksbz0hMCx0LmxhYmVsPTM7Y2FzZSAzOnJldHVybiEwPT09byYmITE9PT10aGlzLmlzT25CYWNrZ3JvdW5kTWVzc2FnZVVzZWQ/WzJdOih0aGlzLmJnTWVzc2FnZUhhbmRsZXImJihzPW5EKHMpLCJmdW5jdGlvbiI9PXR5cGVvZiB0aGlzLmJnTWVzc2FnZUhhbmRsZXI/dGhpcy5iZ01lc3NhZ2VIYW5kbGVyKHMpOnRoaXMuYmdNZXNzYWdlSGFuZGxlci5uZXh0KHMpKSxbNCxpRCgxZTMpXSk7Y2FzZSA0OnJldHVybiB0LnNlbnQoKSxbMl19dmFyIGUsbixyfSl9KX0sc0QucHJvdG90eXBlLm9uU3ViQ2hhbmdlPWZ1bmN0aW9uKG4pe3ZhciByO3JldHVybiAkaSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgZTtyZXR1cm4gWmkodGhpcyxmdW5jdGlvbih0KXtzd2l0Y2godC5sYWJlbCl7Y2FzZSAwOnJldHVybiBuLm5ld1N1YnNjcmlwdGlvbj9bMywyXTpbNCx0RCh0aGlzLmZpcmViYXNlRGVwZW5kZW5jaWVzLHNlbGYucmVnaXN0cmF0aW9uKV07Y2FzZSAxOnJldHVybiB0LnNlbnQoKSxbMl07Y2FzZSAyOnJldHVybls0LEdPKHRoaXMuZmlyZWJhc2VEZXBlbmRlbmNpZXMpXTtjYXNlIDM6cmV0dXJuIGU9dC5zZW50KCksWzQsdEQodGhpcy5maXJlYmFzZURlcGVuZGVuY2llcyxzZWxmLnJlZ2lzdHJhdGlvbildO2Nhc2UgNDpyZXR1cm4gdC5zZW50KCksWzQsWk8odGhpcy5maXJlYmFzZURlcGVuZGVuY2llcyxzZWxmLnJlZ2lzdHJhdGlvbixudWxsIT09KHI9bnVsbD09PShyPW51bGw9PWU/dm9pZCAwOmUuc3Vic2NyaXB0aW9uT3B0aW9ucyl8fHZvaWQgMD09PXI/dm9pZCAwOnIudmFwaWRLZXkpJiZ2b2lkIDAhPT1yP3I6T08pXTtjYXNlIDU6cmV0dXJuIHQuc2VudCgpLFsyXX19KX0pfSxzRC5wcm90b3R5cGUub25Ob3RpZmljYXRpb25DbGljaz1mdW5jdGlvbihzKXt2YXIgYTtyZXR1cm4gJGkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIGUsbixyLGksbztyZXR1cm4gWmkodGhpcyxmdW5jdGlvbih0KXtzd2l0Y2godC5sYWJlbCl7Y2FzZSAwOnJldHVybihlPW51bGw9PT0oYT1udWxsPT09KGE9cy5ub3RpZmljYXRpb24pfHx2b2lkIDA9PT1hP3ZvaWQgMDphLmRhdGEpfHx2b2lkIDA9PT1hP3ZvaWQgMDphW3hPXSk/cy5hY3Rpb24/WzJdOihzLnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpLHMubm90aWZpY2F0aW9uLmNsb3NlKCksKG49ZnVuY3Rpb24odCl7dmFyIGUsbj1udWxsIT09KGU9bnVsbD09PShlPXQuZmNtT3B0aW9ucyl8fHZvaWQgMD09PWU/dm9pZCAwOmUubGluaykmJnZvaWQgMCE9PWU/ZTpudWxsPT09KG49dC5ub3RpZmljYXRpb24pfHx2b2lkIDA9PT1uP3ZvaWQgMDpuLmNsaWNrX2FjdGlvbjtpZihuKXJldHVybiBuO3JldHVybiByRCh0LmRhdGEpP3NlbGYubG9jYXRpb24ub3JpZ2luOm51bGx9KGUpKT8ocj1uZXcgVVJMKG4sc2VsZi5sb2NhdGlvbi5ocmVmKSxpPW5ldyBVUkwoc2VsZi5sb2NhdGlvbi5vcmlnaW4pLHIuaG9zdCE9PWkuaG9zdD9bMl06WzQsZnVuY3Rpb24odSl7cmV0dXJuICRpKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBlLG4scixpLG8scyxhO3JldHVybiBaaSh0aGlzLGZ1bmN0aW9uKHQpe3N3aXRjaCh0LmxhYmVsKXtjYXNlIDA6cmV0dXJuWzQsYUQoKV07Y2FzZSAxOmU9dC5zZW50KCk7dHJ5e2ZvcihuPXRvKGUpLHI9bi5uZXh0KCk7IXIuZG9uZTtyPW4ubmV4dCgpKWlmKGk9ci52YWx1ZSxvPW5ldyBVUkwoaS51cmwsc2VsZi5sb2NhdGlvbi5ocmVmKSx1Lmhvc3Q9PT1vLmhvc3QpcmV0dXJuWzIsaV19Y2F0Y2godCl7cz17ZXJyb3I6dH19ZmluYWxseXt0cnl7ciYmIXIuZG9uZSYmKGE9bi5yZXR1cm4pJiZhLmNhbGwobil9ZmluYWxseXtpZihzKXRocm93IHMuZXJyb3J9fXJldHVyblsyLG51bGxdfX0pfSl9KHIpXSk6WzJdKTpbMl07Y2FzZSAxOnJldHVybihvPXQuc2VudCgpKT9bMyw0XTpbNCxzZWxmLmNsaWVudHMub3BlbldpbmRvdyhuKV07Y2FzZSAyOnJldHVybiBvPXQuc2VudCgpLFs0LGlEKDNlMyldO2Nhc2UgMzpyZXR1cm4gdC5zZW50KCksWzMsNl07Y2FzZSA0OnJldHVybls0LG8uZm9jdXMoKV07Y2FzZSA1Om89dC5zZW50KCksdC5sYWJlbD02O2Nhc2UgNjpyZXR1cm4gbz8oZS5tZXNzYWdlVHlwZT1STy5OT1RJRklDQVRJT05fQ0xJQ0tFRCxlLmlzRmlyZWJhc2VNZXNzYWdpbmc9ITAsWzIsby5wb3N0TWVzc2FnZShlKV0pOlsyXX19KX0pfSxzRCk7ZnVuY3Rpb24gc0QodCl7dmFyIGU9dGhpczt0aGlzLmZpcmViYXNlRGVwZW5kZW5jaWVzPXQsdGhpcy5pc09uQmFja2dyb3VuZE1lc3NhZ2VVc2VkPW51bGwsdGhpcy52YXBpZEtleT1udWxsLHRoaXMuYmdNZXNzYWdlSGFuZGxlcj1udWxsLHNlbGYuYWRkRXZlbnRMaXN0ZW5lcigicHVzaCIsZnVuY3Rpb24odCl7dC53YWl0VW50aWwoZS5vblB1c2godCkpfSksc2VsZi5hZGRFdmVudExpc3RlbmVyKCJwdXNoc3Vic2NyaXB0aW9uY2hhbmdlIixmdW5jdGlvbih0KXt0LndhaXRVbnRpbChlLm9uU3ViQ2hhbmdlKHQpKX0pLHNlbGYuYWRkRXZlbnRMaXN0ZW5lcigibm90aWZpY2F0aW9uY2xpY2siLGZ1bmN0aW9uKHQpe3Qud2FpdFVudGlsKGUub25Ob3RpZmljYXRpb25DbGljayh0KSl9KX1mdW5jdGlvbiBhRCgpe3JldHVybiBzZWxmLmNsaWVudHMubWF0Y2hBbGwoe3R5cGU6IndpbmRvdyIsaW5jbHVkZVVuY29udHJvbGxlZDohMH0pfXZhciB1RD0oT2JqZWN0LmRlZmluZVByb3BlcnR5KGNELnByb3RvdHlwZSwiYXBwIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZmlyZWJhc2VEZXBlbmRlbmNpZXMuYXBwfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLGNELnByb3RvdHlwZS5tZXNzYWdlRXZlbnRMaXN0ZW5lcj1mdW5jdGlvbihpKXtyZXR1cm4gJGkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIG4scjtyZXR1cm4gWmkodGhpcyxmdW5jdGlvbih0KXtzd2l0Y2godC5sYWJlbCl7Y2FzZSAwOnJldHVybihuPWkuZGF0YSkuaXNGaXJlYmFzZU1lc3NhZ2luZz8odGhpcy5vbk1lc3NhZ2VDYWxsYmFjayYmbi5tZXNzYWdlVHlwZT09PVJPLlBVU0hfUkVDRUlWRUQmJigiZnVuY3Rpb24iPT10eXBlb2YgdGhpcy5vbk1lc3NhZ2VDYWxsYmFjaz90aGlzLm9uTWVzc2FnZUNhbGxiYWNrKChkZWxldGUoZT1PYmplY3QuYXNzaWduKHt9LG4pKS5tZXNzYWdlVHlwZSxkZWxldGUgZS5pc0ZpcmViYXNlTWVzc2FnaW5nLGUpKTp0aGlzLm9uTWVzc2FnZUNhbGxiYWNrLm5leHQoT2JqZWN0LmFzc2lnbih7fSxuKSkpLHJEKHI9bi5kYXRhKSYmIjEiPT09clsiZ29vZ2xlLmMuYS5lIl0/WzQsdGhpcy5sb2dFdmVudChuLm1lc3NhZ2VUeXBlLHIpXTpbMywyXSk6WzJdO2Nhc2UgMTp0LnNlbnQoKSx0LmxhYmVsPTI7Y2FzZSAyOnJldHVyblsyXX12YXIgZX0pfSl9LGNELnByb3RvdHlwZS5nZXRWYXBpZEtleT1mdW5jdGlvbigpe3JldHVybiB0aGlzLnZhcGlkS2V5fSxjRC5wcm90b3R5cGUuZ2V0U3dSZWc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zd1JlZ2lzdHJhdGlvbn0sY0QucHJvdG90eXBlLmdldFRva2VuPWZ1bmN0aW9uKGUpe3JldHVybiAkaSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXtyZXR1cm4gWmkodGhpcyxmdW5jdGlvbih0KXtzd2l0Y2godC5sYWJlbCl7Y2FzZSAwOnJldHVybiJkZWZhdWx0IiE9PU5vdGlmaWNhdGlvbi5wZXJtaXNzaW9uP1szLDJdOls0LE5vdGlmaWNhdGlvbi5yZXF1ZXN0UGVybWlzc2lvbigpXTtjYXNlIDE6dC5zZW50KCksdC5sYWJlbD0yO2Nhc2UgMjppZigiZ3JhbnRlZCIhPT1Ob3RpZmljYXRpb24ucGVybWlzc2lvbil0aHJvdyBQTy5jcmVhdGUoInBlcm1pc3Npb24tYmxvY2tlZCIpO3JldHVybls0LHRoaXMudXBkYXRlVmFwaWRLZXkobnVsbD09ZT92b2lkIDA6ZS52YXBpZEtleSldO2Nhc2UgMzpyZXR1cm4gdC5zZW50KCksWzQsdGhpcy51cGRhdGVTd1JlZyhudWxsPT1lP3ZvaWQgMDplLnNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24pXTtjYXNlIDQ6cmV0dXJuIHQuc2VudCgpLFsyLFpPKHRoaXMuZmlyZWJhc2VEZXBlbmRlbmNpZXMsdGhpcy5zd1JlZ2lzdHJhdGlvbix0aGlzLnZhcGlkS2V5KV19fSl9KX0sY0QucHJvdG90eXBlLnVwZGF0ZVZhcGlkS2V5PWZ1bmN0aW9uKGUpe3JldHVybiAkaSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXtyZXR1cm4gWmkodGhpcyxmdW5jdGlvbih0KXtyZXR1cm4gZT90aGlzLnZhcGlkS2V5PWU6dGhpcy52YXBpZEtleXx8KHRoaXMudmFwaWRLZXk9T08pLFsyXX0pfSl9LGNELnByb3RvdHlwZS51cGRhdGVTd1JlZz1mdW5jdGlvbihlKXtyZXR1cm4gJGkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7cmV0dXJuIFppKHRoaXMsZnVuY3Rpb24odCl7c3dpdGNoKHQubGFiZWwpe2Nhc2UgMDpyZXR1cm4gZXx8dGhpcy5zd1JlZ2lzdHJhdGlvbj9bMywyXTpbNCx0aGlzLnJlZ2lzdGVyRGVmYXVsdFN3KCldO2Nhc2UgMTp0LnNlbnQoKSx0LmxhYmVsPTI7Y2FzZSAyOmlmKCFlJiZ0aGlzLnN3UmVnaXN0cmF0aW9uKXJldHVyblsyXTtpZighKGUgaW5zdGFuY2VvZiBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uKSl0aHJvdyBQTy5jcmVhdGUoImludmFsaWQtc3ctcmVnaXN0cmF0aW9uIik7cmV0dXJuIHRoaXMuc3dSZWdpc3RyYXRpb249ZSxbMl19fSl9KX0sY0QucHJvdG90eXBlLnJlZ2lzdGVyRGVmYXVsdFN3PWZ1bmN0aW9uKCl7cmV0dXJuICRpKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBlO3JldHVybiBaaSh0aGlzLGZ1bmN0aW9uKHQpe3N3aXRjaCh0LmxhYmVsKXtjYXNlIDA6cmV0dXJuIHQudHJ5cy5wdXNoKFswLDIsLDNdKSxlPXRoaXMsWzQsbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIucmVnaXN0ZXIoIi9maXJlYmFzZS1tZXNzYWdpbmctc3cuanMiLHtzY29wZToiL2ZpcmViYXNlLWNsb3VkLW1lc3NhZ2luZy1wdXNoLXNjb3BlIn0pXTtjYXNlIDE6cmV0dXJuIGUuc3dSZWdpc3RyYXRpb249dC5zZW50KCksdGhpcy5zd1JlZ2lzdHJhdGlvbi51cGRhdGUoKS5jYXRjaChmdW5jdGlvbigpe30pLFszLDNdO2Nhc2UgMjp0aHJvdyBlPXQuc2VudCgpLFBPLmNyZWF0ZSgiZmFpbGVkLXNlcnZpY2Utd29ya2VyLXJlZ2lzdHJhdGlvbiIse2Jyb3dzZXJFcnJvck1lc3NhZ2U6ZS5tZXNzYWdlfSk7Y2FzZSAzOnJldHVyblsyXX19KX0pfSxjRC5wcm90b3R5cGUuZGVsZXRlVG9rZW49ZnVuY3Rpb24oKXtyZXR1cm4gJGkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7cmV0dXJuIFppKHRoaXMsZnVuY3Rpb24odCl7c3dpdGNoKHQubGFiZWwpe2Nhc2UgMDpyZXR1cm4gdGhpcy5zd1JlZ2lzdHJhdGlvbj9bMywyXTpbNCx0aGlzLnJlZ2lzdGVyRGVmYXVsdFN3KCldO2Nhc2UgMTp0LnNlbnQoKSx0LmxhYmVsPTI7Y2FzZSAyOnJldHVyblsyLHREKHRoaXMuZmlyZWJhc2VEZXBlbmRlbmNpZXMsdGhpcy5zd1JlZ2lzdHJhdGlvbildfX0pfSl9LGNELnByb3RvdHlwZS5yZXF1ZXN0UGVybWlzc2lvbj1mdW5jdGlvbigpe3JldHVybiAkaSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgZTtyZXR1cm4gWmkodGhpcyxmdW5jdGlvbih0KXtzd2l0Y2godC5sYWJlbCl7Y2FzZSAwOnJldHVybiJncmFudGVkIj09PU5vdGlmaWNhdGlvbi5wZXJtaXNzaW9uP1syXTpbNCxOb3RpZmljYXRpb24ucmVxdWVzdFBlcm1pc3Npb24oKV07Y2FzZSAxOmlmKCJncmFudGVkIj09PShlPXQuc2VudCgpKSlyZXR1cm5bMl07dGhyb3ciZGVuaWVkIj09PWU/UE8uY3JlYXRlKCJwZXJtaXNzaW9uLWJsb2NrZWQiKTpQTy5jcmVhdGUoInBlcm1pc3Npb24tZGVmYXVsdCIpfX0pfSl9LGNELnByb3RvdHlwZS51c2VQdWJsaWNWYXBpZEtleT1mdW5jdGlvbih0KXtpZihudWxsIT09dGhpcy52YXBpZEtleSl0aHJvdyBQTy5jcmVhdGUoInVzZS12YXBpZC1rZXktYWZ0ZXItZ2V0LXRva2VuIik7aWYoInN0cmluZyIhPXR5cGVvZiB0fHwwPT09dC5sZW5ndGgpdGhyb3cgUE8uY3JlYXRlKCJpbnZhbGlkLXZhcGlkLWtleSIpO3RoaXMudmFwaWRLZXk9dH0sY0QucHJvdG90eXBlLnVzZVNlcnZpY2VXb3JrZXI9ZnVuY3Rpb24odCl7aWYoISh0IGluc3RhbmNlb2YgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbikpdGhyb3cgUE8uY3JlYXRlKCJpbnZhbGlkLXN3LXJlZ2lzdHJhdGlvbiIpO2lmKHRoaXMuc3dSZWdpc3RyYXRpb24pdGhyb3cgUE8uY3JlYXRlKCJ1c2Utc3ctYWZ0ZXItZ2V0LXRva2VuIik7dGhpcy5zd1JlZ2lzdHJhdGlvbj10fSxjRC5wcm90b3R5cGUub25NZXNzYWdlPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7cmV0dXJuIHRoaXMub25NZXNzYWdlQ2FsbGJhY2s9dCxmdW5jdGlvbigpe2Uub25NZXNzYWdlQ2FsbGJhY2s9bnVsbH19LGNELnByb3RvdHlwZS5zZXRCYWNrZ3JvdW5kTWVzc2FnZUhhbmRsZXI9ZnVuY3Rpb24oKXt0aHJvdyBQTy5jcmVhdGUoIm9ubHktYXZhaWxhYmxlLWluLXN3Iil9LGNELnByb3RvdHlwZS5vbkJhY2tncm91bmRNZXNzYWdlPWZ1bmN0aW9uKCl7dGhyb3cgUE8uY3JlYXRlKCJvbmx5LWF2YWlsYWJsZS1pbi1zdyIpfSxjRC5wcm90b3R5cGUub25Ub2tlblJlZnJlc2g9ZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24oKXt9fSxjRC5wcm90b3R5cGUubG9nRXZlbnQ9ZnVuY3Rpb24obixyKXtyZXR1cm4gJGkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIGU7cmV0dXJuIFppKHRoaXMsZnVuY3Rpb24odCl7c3dpdGNoKHQubGFiZWwpe2Nhc2UgMDpyZXR1cm4gZT1mdW5jdGlvbih0KXtzd2l0Y2godCl7Y2FzZSBSTy5OT1RJRklDQVRJT05fQ0xJQ0tFRDpyZXR1cm4ibm90aWZpY2F0aW9uX29wZW4iO2Nhc2UgUk8uUFVTSF9SRUNFSVZFRDpyZXR1cm4ibm90aWZpY2F0aW9uX2ZvcmVncm91bmQiO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yfX0obiksWzQsdGhpcy5maXJlYmFzZURlcGVuZGVuY2llcy5hbmFseXRpY3NQcm92aWRlci5nZXQoKV07Y2FzZSAxOnJldHVybiB0LnNlbnQoKS5sb2dFdmVudChlLHttZXNzYWdlX2lkOnJbTE9dLG1lc3NhZ2VfbmFtZTpyWyJnb29nbGUuYy5hLmNfbCJdLG1lc3NhZ2VfdGltZTpyWyJnb29nbGUuYy5hLnRzIl0sbWVzc2FnZV9kZXZpY2VfdGltZTpNYXRoLmZsb29yKERhdGUubm93KCkvMWUzKX0pLFsyXX19KX0pfSxjRCk7ZnVuY3Rpb24gY0QodCl7dmFyIGU9dGhpczt0aGlzLmZpcmViYXNlRGVwZW5kZW5jaWVzPXQsdGhpcy52YXBpZEtleT1udWxsLHRoaXMub25NZXNzYWdlQ2FsbGJhY2s9bnVsbCxuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIixmdW5jdGlvbih0KXtyZXR1cm4gZS5tZXNzYWdlRXZlbnRMaXN0ZW5lcih0KX0pfWZ1bmN0aW9uIGhEKHQpe3JldHVybiBQTy5jcmVhdGUoIm1pc3NpbmctYXBwLWNvbmZpZy12YWx1ZXMiLHt2YWx1ZU5hbWU6dH0pfVNuPXtpc1N1cHBvcnRlZDpsRH07ZnVuY3Rpb24gbEQoKXtyZXR1cm4gc2VsZiYmIlNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSJpbiBzZWxmPyJpbmRleGVkREIiaW4gc2VsZiYmbnVsbCE9PWluZGV4ZWREQiYmIlB1c2hNYW5hZ2VyImluIHNlbGYmJiJOb3RpZmljYXRpb24iaW4gc2VsZiYmU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbi5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkoInNob3dOb3RpZmljYXRpb24iKSYmUHVzaFN1YnNjcmlwdGlvbi5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkoImdldEtleSIpOiJpbmRleGVkREIiaW4gd2luZG93JiZudWxsIT09aW5kZXhlZERCJiZuYXZpZ2F0b3IuY29va2llRW5hYmxlZCYmInNlcnZpY2VXb3JrZXIiaW4gbmF2aWdhdG9yJiYiUHVzaE1hbmFnZXIiaW4gd2luZG93JiYiTm90aWZpY2F0aW9uImluIHdpbmRvdyYmImZldGNoImluIHdpbmRvdyYmU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbi5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkoInNob3dOb3RpZmljYXRpb24iKSYmUHVzaFN1YnNjcmlwdGlvbi5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkoImdldEtleSIpfVhsLklOVEVSTkFMLnJlZ2lzdGVyQ29tcG9uZW50KG5ldyB0cygibWVzc2FnaW5nIixmdW5jdGlvbih0KXt2YXIgZT10LmdldFByb3ZpZGVyKCJhcHAiKS5nZXRJbW1lZGlhdGUoKSx0PXthcHA6ZSxhcHBDb25maWc6ZnVuY3Rpb24odCl7dmFyIGUsbjtpZighdHx8IXQub3B0aW9ucyl0aHJvdyBoRCgiQXBwIENvbmZpZ3VyYXRpb24gT2JqZWN0Iik7aWYoIXQubmFtZSl0aHJvdyBoRCgiQXBwIE5hbWUiKTt2YXIgcj10Lm9wdGlvbnM7dHJ5e2Zvcih2YXIgaT10byhbInByb2plY3RJZCIsImFwaUtleSIsImFwcElkIiwibWVzc2FnaW5nU2VuZGVySWQiXSksbz1pLm5leHQoKTshby5kb25lO289aS5uZXh0KCkpe3ZhciBzPW8udmFsdWU7aWYoIXJbc10pdGhyb3cgaEQocyl9fWNhdGNoKHQpe2U9e2Vycm9yOnR9fWZpbmFsbHl7dHJ5e28mJiFvLmRvbmUmJihuPWkucmV0dXJuKSYmbi5jYWxsKGkpfWZpbmFsbHl7aWYoZSl0aHJvdyBlLmVycm9yfX1yZXR1cm57YXBwTmFtZTp0Lm5hbWUscHJvamVjdElkOnIucHJvamVjdElkLGFwaUtleTpyLmFwaUtleSxhcHBJZDpyLmFwcElkLHNlbmRlcklkOnIubWVzc2FnaW5nU2VuZGVySWR9fShlKSxpbnN0YWxsYXRpb25zOnQuZ2V0UHJvdmlkZXIoImluc3RhbGxhdGlvbnMiKS5nZXRJbW1lZGlhdGUoKSxhbmFseXRpY3NQcm92aWRlcjp0LmdldFByb3ZpZGVyKCJhbmFseXRpY3MtaW50ZXJuYWwiKX07aWYoIWxEKCkpdGhyb3cgUE8uY3JlYXRlKCJ1bnN1cHBvcnRlZC1icm93c2VyIik7cmV0dXJuIG5ldyhzZWxmJiYiU2VydmljZVdvcmtlckdsb2JhbFNjb3BlImluIHNlbGY/b0Q6dUQpKHQpfSwiUFVCTElDIikuc2V0U2VydmljZVByb3BzKFNuKSk7dmFyIGZELHBEPSJmaXJlYmFzZXN0b3JhZ2UuZ29vZ2xlYXBpcy5jb20iLGREPSJzdG9yYWdlQnVja2V0Iix2RD0oWGkoZ0QsZkQ9RW8pLGdELnByb3RvdHlwZS5fY29kZUVxdWFscz1mdW5jdGlvbih0KXtyZXR1cm4geUQodCk9PT10aGlzLmNvZGV9LE9iamVjdC5kZWZpbmVQcm9wZXJ0eShnRC5wcm90b3R5cGUsIm1lc3NhZ2UiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jdXN0b21EYXRhLnNlcnZlclJlc3BvbnNlP3RoaXMubWVzc2FnZSsiXG4iK3RoaXMuY3VzdG9tRGF0YS5zZXJ2ZXJSZXNwb25zZTp0aGlzLm1lc3NhZ2V9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGdELnByb3RvdHlwZSwic2VydmVyUmVzcG9uc2UiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jdXN0b21EYXRhLnNlcnZlclJlc3BvbnNlfSxzZXQ6ZnVuY3Rpb24odCl7dGhpcy5jdXN0b21EYXRhLnNlcnZlclJlc3BvbnNlPXR9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksZ0QpO2Z1bmN0aW9uIGdEKHQsZSl7dD1mRC5jYWxsKHRoaXMseUQodCksIkZpcmViYXNlIFN0b3JhZ2U6ICIrZSsiICgiK3lEKHQpKyIpIil8fHRoaXM7cmV0dXJuIHQuY3VzdG9tRGF0YT17c2VydmVyUmVzcG9uc2U6bnVsbH0sT2JqZWN0LnNldFByb3RvdHlwZU9mKHQsZ0QucHJvdG90eXBlKSx0fWZ1bmN0aW9uIHlEKHQpe3JldHVybiJzdG9yYWdlLyIrdH1mdW5jdGlvbiBtRCgpe3JldHVybiBuZXcgdkQoInVua25vd24iLCJBbiB1bmtub3duIGVycm9yIG9jY3VycmVkLCBwbGVhc2UgY2hlY2sgdGhlIGVycm9yIHBheWxvYWQgZm9yIHNlcnZlciByZXNwb25zZS4iKX1mdW5jdGlvbiBiRCgpe3JldHVybiBuZXcgdkQoImNhbmNlbGVkIiwiVXNlciBjYW5jZWxlZCB0aGUgdXBsb2FkL2Rvd25sb2FkLiIpfWZ1bmN0aW9uIHdEKCl7cmV0dXJuIG5ldyB2RCgiY2Fubm90LXNsaWNlLWJsb2IiLCJDYW5ub3Qgc2xpY2UgYmxvYiBmb3IgdXBsb2FkLiBQbGVhc2UgcmV0cnkgdGhlIHVwbG9hZC4iKX1mdW5jdGlvbiBfRCh0KXtyZXR1cm4gbmV3IHZEKCJpbnZhbGlkLWFyZ3VtZW50Iix0KX1mdW5jdGlvbiBJRCgpe3JldHVybiBuZXcgdkQoImFwcC1kZWxldGVkIiwiVGhlIEZpcmViYXNlIGFwcCB3YXMgZGVsZXRlZC4iKX1mdW5jdGlvbiBURCh0KXtyZXR1cm4gbmV3IHZEKCJpbnZhbGlkLXJvb3Qtb3BlcmF0aW9uIiwiVGhlIG9wZXJhdGlvbiAnIit0KyInIGNhbm5vdCBiZSBwZXJmb3JtZWQgb24gYSByb290IHJlZmVyZW5jZSwgY3JlYXRlIGEgbm9uLXJvb3QgcmVmZXJlbmNlIHVzaW5nIGNoaWxkLCBzdWNoIGFzIC5jaGlsZCgnZmlsZS5wbmcnKS4iKX1mdW5jdGlvbiBFRCh0LGUpe3JldHVybiBuZXcgdkQoImludmFsaWQtZm9ybWF0IiwiU3RyaW5nIGRvZXMgbm90IG1hdGNoIGZvcm1hdCAnIit0KyInOiAiK2UpfWZ1bmN0aW9uIFNEKHQpe3Rocm93IG5ldyB2RCgiaW50ZXJuYWwtZXJyb3IiLCJJbnRlcm5hbCBlcnJvcjogIit0KX12YXIgQ0Q9e1JBVzoicmF3IixCQVNFNjQ6ImJhc2U2NCIsQkFTRTY0VVJMOiJiYXNlNjR1cmwiLERBVEFfVVJMOiJkYXRhX3VybCJ9LE5EPWZ1bmN0aW9uKHQsZSl7dGhpcy5kYXRhPXQsdGhpcy5jb250ZW50VHlwZT1lfHxudWxsfTtmdW5jdGlvbiBBRCh0LGUpe3N3aXRjaCh0KXtjYXNlIENELlJBVzpyZXR1cm4gbmV3IE5EKGtEKGUpKTtjYXNlIENELkJBU0U2NDpjYXNlIENELkJBU0U2NFVSTDpyZXR1cm4gbmV3IE5EKFJEKHQsZSkpO2Nhc2UgQ0QuREFUQV9VUkw6cmV0dXJuIG5ldyBORChmdW5jdGlvbih0KXt0PW5ldyBQRCh0KTtyZXR1cm4gdC5iYXNlNjQ/UkQoQ0QuQkFTRTY0LHQucmVzdCk6ZnVuY3Rpb24odCl7dmFyIGU7dHJ5e2U9ZGVjb2RlVVJJQ29tcG9uZW50KHQpfWNhdGNoKHQpe3Rocm93IEVEKENELkRBVEFfVVJMLCJNYWxmb3JtZWQgZGF0YSBVUkwuIil9cmV0dXJuIGtEKGUpfSh0LnJlc3QpfShlKSxuZXcgUEQoZSkuY29udGVudFR5cGUpfXRocm93IG1EKCl9ZnVuY3Rpb24ga0QodCl7Zm9yKHZhciBlPVtdLG49MDtuPHQubGVuZ3RoO24rKyl7dmFyIHI9dC5jaGFyQ29kZUF0KG4pO3I8PTEyNz9lLnB1c2gocik6cjw9MjA0Nz9lLnB1c2goMTkyfHI+PjYsMTI4fDYzJnIpOjU1Mjk2PT0oNjQ1MTImcik/bjx0Lmxlbmd0aC0xJiY1NjMyMD09KDY0NTEyJnQuY2hhckNvZGVBdChuKzEpKT8ocj02NTUzNnwoMTAyMyZyKTw8MTB8MTAyMyZ0LmNoYXJDb2RlQXQoKytuKSxlLnB1c2goMjQwfHI+PjE4LDEyOHxyPj4xMiY2MywxMjh8cj4+NiY2MywxMjh8NjMmcikpOmUucHVzaCgyMzksMTkxLDE4OSk6NTYzMjA9PSg2NDUxMiZyKT9lLnB1c2goMjM5LDE5MSwxODkpOmUucHVzaCgyMjR8cj4+MTIsMTI4fHI+PjYmNjMsMTI4fDYzJnIpfXJldHVybiBuZXcgVWludDhBcnJheShlKX1mdW5jdGlvbiBSRChlLHQpe3N3aXRjaChlKXtjYXNlIENELkJBU0U2NDp2YXIgbj0tMSE9PXQuaW5kZXhPZigiLSIpLHI9LTEhPT10LmluZGV4T2YoIl8iKTtpZihufHxyKXRocm93IEVEKGUsIkludmFsaWQgY2hhcmFjdGVyICciKyhuPyItIjoiXyIpKyInIGZvdW5kOiBpcyBpdCBiYXNlNjR1cmwgZW5jb2RlZD8iKTticmVhaztjYXNlIENELkJBU0U2NFVSTDpyPS0xIT09dC5pbmRleE9mKCIrIiksbj0tMSE9PXQuaW5kZXhPZigiLyIpO2lmKHJ8fG4pdGhyb3cgRUQoZSwiSW52YWxpZCBjaGFyYWN0ZXIgJyIrKHI/IisiOiIvIikrIicgZm91bmQ6IGlzIGl0IGJhc2U2NCBlbmNvZGVkPyIpO3Q9dC5yZXBsYWNlKC8tL2csIisiKS5yZXBsYWNlKC9fL2csIi8iKX12YXIgaTt0cnl7aT1hdG9iKHQpfWNhdGNoKHQpe3Rocm93IEVEKGUsIkludmFsaWQgY2hhcmFjdGVyIGZvdW5kIil9Zm9yKHZhciBvPW5ldyBVaW50OEFycmF5KGkubGVuZ3RoKSxzPTA7czxpLmxlbmd0aDtzKyspb1tzXT1pLmNoYXJDb2RlQXQocyk7cmV0dXJuIG99dmFyIFBEPWZ1bmN0aW9uKHQpe3ZhciBlO2lmKHRoaXMuYmFzZTY0PSExLCh0aGlzLmNvbnRlbnRUeXBlPW51bGwpPT09KGU9dC5tYXRjaCgvXmRhdGE6KFteLF0rKT8sLykpKXRocm93IEVEKENELkRBVEFfVVJMLCJNdXN0IGJlIGZvcm1hdHRlZCAnZGF0YTpbPG1lZGlhdHlwZT5dWztiYXNlNjRdLDxkYXRhPiIpO3ZhciBuLHI9ZVsxXXx8bnVsbDtudWxsIT1yJiYodGhpcy5iYXNlNjQ9KG49IjtiYXNlNjQiLChlPXIpLmxlbmd0aD49bi5sZW5ndGgmJmUuc3Vic3RyaW5nKGUubGVuZ3RoLW4ubGVuZ3RoKT09PW4pLHRoaXMuY29udGVudFR5cGU9dGhpcy5iYXNlNjQ/ci5zdWJzdHJpbmcoMCxyLmxlbmd0aC0iO2Jhc2U2NCIubGVuZ3RoKTpyKSx0aGlzLnJlc3Q9dC5zdWJzdHJpbmcodC5pbmRleE9mKCIsIikrMSl9O3ZhciBPRCxERD17U1RBVEVfQ0hBTkdFRDoic3RhdGVfY2hhbmdlZCJ9LHhEPXtSVU5OSU5HOiJydW5uaW5nIixQQVVTRUQ6InBhdXNlZCIsU1VDQ0VTUzoic3VjY2VzcyIsQ0FOQ0VMRUQ6ImNhbmNlbGVkIixFUlJPUjoiZXJyb3IifTtmdW5jdGlvbiBMRCh0KXtzd2l0Y2godCl7Y2FzZSJydW5uaW5nIjpjYXNlInBhdXNpbmciOmNhc2UiY2FuY2VsaW5nIjpyZXR1cm4geEQuUlVOTklORztjYXNlInBhdXNlZCI6cmV0dXJuIHhELlBBVVNFRDtjYXNlInN1Y2Nlc3MiOnJldHVybiB4RC5TVUNDRVNTO2Nhc2UiY2FuY2VsZWQiOnJldHVybiB4RC5DQU5DRUxFRDtjYXNlImVycm9yIjpkZWZhdWx0OnJldHVybiB4RC5FUlJPUn19KEdhPU9EPU9EfHx7fSlbR2EuTk9fRVJST1I9MF09Ik5PX0VSUk9SIixHYVtHYS5ORVRXT1JLX0VSUk9SPTFdPSJORVRXT1JLX0VSUk9SIixHYVtHYS5BQk9SVD0yXT0iQUJPUlQiO3ZhciBNRD0oRkQucHJvdG90eXBlLnNlbmQ9ZnVuY3Rpb24odCxlLG4scil7aWYodGhpcy5zZW50Xyl0aHJvdyBTRCgiY2Fubm90IC5zZW5kKCkgbW9yZSB0aGFuIG9uY2UiKTtpZih0aGlzLnNlbnRfPSEwLHRoaXMueGhyXy5vcGVuKGUsdCwhMCksdm9pZCAwIT09cilmb3IodmFyIGkgaW4gcilyLmhhc093blByb3BlcnR5KGkpJiZ0aGlzLnhocl8uc2V0UmVxdWVzdEhlYWRlcihpLHJbaV0udG9TdHJpbmcoKSk7cmV0dXJuIHZvaWQgMCE9PW4/dGhpcy54aHJfLnNlbmQobik6dGhpcy54aHJfLnNlbmQoKSx0aGlzLnNlbmRQcm9taXNlX30sRkQucHJvdG90eXBlLmdldEVycm9yQ29kZT1mdW5jdGlvbigpe2lmKCF0aGlzLnNlbnRfKXRocm93IFNEKCJjYW5ub3QgLmdldEVycm9yQ29kZSgpIGJlZm9yZSBzZW5kaW5nIik7cmV0dXJuIHRoaXMuZXJyb3JDb2RlX30sRkQucHJvdG90eXBlLmdldFN0YXR1cz1mdW5jdGlvbigpe2lmKCF0aGlzLnNlbnRfKXRocm93IFNEKCJjYW5ub3QgLmdldFN0YXR1cygpIGJlZm9yZSBzZW5kaW5nIik7dHJ5e3JldHVybiB0aGlzLnhocl8uc3RhdHVzfWNhdGNoKHQpe3JldHVybi0xfX0sRkQucHJvdG90eXBlLmdldFJlc3BvbnNlVGV4dD1mdW5jdGlvbigpe2lmKCF0aGlzLnNlbnRfKXRocm93IFNEKCJjYW5ub3QgLmdldFJlc3BvbnNlVGV4dCgpIGJlZm9yZSBzZW5kaW5nIik7cmV0dXJuIHRoaXMueGhyXy5yZXNwb25zZVRleHR9LEZELnByb3RvdHlwZS5hYm9ydD1mdW5jdGlvbigpe3RoaXMueGhyXy5hYm9ydCgpfSxGRC5wcm90b3R5cGUuZ2V0UmVzcG9uc2VIZWFkZXI9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMueGhyXy5nZXRSZXNwb25zZUhlYWRlcih0KX0sRkQucHJvdG90eXBlLmFkZFVwbG9hZFByb2dyZXNzTGlzdGVuZXI9ZnVuY3Rpb24odCl7bnVsbCE9dGhpcy54aHJfLnVwbG9hZCYmdGhpcy54aHJfLnVwbG9hZC5hZGRFdmVudExpc3RlbmVyKCJwcm9ncmVzcyIsdCl9LEZELnByb3RvdHlwZS5yZW1vdmVVcGxvYWRQcm9ncmVzc0xpc3RlbmVyPWZ1bmN0aW9uKHQpe251bGwhPXRoaXMueGhyXy51cGxvYWQmJnRoaXMueGhyXy51cGxvYWQucmVtb3ZlRXZlbnRMaXN0ZW5lcigicHJvZ3Jlc3MiLHQpfSxGRCk7ZnVuY3Rpb24gRkQoKXt2YXIgZT10aGlzO3RoaXMuc2VudF89ITEsdGhpcy54aHJfPW5ldyBYTUxIdHRwUmVxdWVzdCx0aGlzLmVycm9yQ29kZV89T0QuTk9fRVJST1IsdGhpcy5zZW5kUHJvbWlzZV89bmV3IFByb21pc2UoZnVuY3Rpb24odCl7ZS54aHJfLmFkZEV2ZW50TGlzdGVuZXIoImFib3J0IixmdW5jdGlvbigpe2UuZXJyb3JDb2RlXz1PRC5BQk9SVCx0KGUpfSksZS54aHJfLmFkZEV2ZW50TGlzdGVuZXIoImVycm9yIixmdW5jdGlvbigpe2UuZXJyb3JDb2RlXz1PRC5ORVRXT1JLX0VSUk9SLHQoZSl9KSxlLnhocl8uYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsZnVuY3Rpb24oKXt0KGUpfSl9KX12YXIgVUQ9KGpELnByb3RvdHlwZS5jcmVhdGVYaHJJbz1mdW5jdGlvbigpe3JldHVybiBuZXcgTUR9LGpEKTtmdW5jdGlvbiBqRCgpe312YXIgcUQ9KE9iamVjdC5kZWZpbmVQcm9wZXJ0eShWRC5wcm90b3R5cGUsInBhdGgiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wYXRoX30sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoVkQucHJvdG90eXBlLCJpc1Jvb3QiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gMD09PXRoaXMucGF0aC5sZW5ndGh9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksVkQucHJvdG90eXBlLmZ1bGxTZXJ2ZXJVcmw9ZnVuY3Rpb24oKXt2YXIgdD1lbmNvZGVVUklDb21wb25lbnQ7cmV0dXJuIi9iLyIrdCh0aGlzLmJ1Y2tldCkrIi9vLyIrdCh0aGlzLnBhdGgpfSxWRC5wcm90b3R5cGUuYnVja2V0T25seVNlcnZlclVybD1mdW5jdGlvbigpe3JldHVybiIvYi8iK2VuY29kZVVSSUNvbXBvbmVudCh0aGlzLmJ1Y2tldCkrIi9vIn0sVkQubWFrZUZyb21CdWNrZXRTcGVjPWZ1bmN0aW9uKGUpe3ZhciB0O3RyeXt0PVZELm1ha2VGcm9tVXJsKGUpfWNhdGNoKHQpe3JldHVybiBuZXcgVkQoZSwiIil9aWYoIiI9PT10LnBhdGgpcmV0dXJuIHQ7dGhyb3cgbmV3IHZEKCJpbnZhbGlkLWRlZmF1bHQtYnVja2V0IiwiSW52YWxpZCBkZWZhdWx0IGJ1Y2tldCAnIitlKyInLiIpfSxWRC5tYWtlRnJvbVVybD1mdW5jdGlvbih0KXt2YXIgZT1udWxsLG49IihbQS1aYS16MC05LlxcLV9dKykiO3ZhciByPW5ldyBSZWdFeHAoIl5nczovLyIrbisiKC8oLiopKT8kIiwiaSIpO2Z1bmN0aW9uIGkodCl7dC5wYXRoXz1kZWNvZGVVUklDb21wb25lbnQodC5wYXRoKX1mb3IodmFyIG89cEQucmVwbGFjZSgvWy5dL2csIlxcLiIpLHM9W3tyZWdleDpyLGluZGljZXM6e2J1Y2tldDoxLHBhdGg6M30scG9zdE1vZGlmeTpmdW5jdGlvbih0KXsiLyI9PT10LnBhdGguY2hhckF0KHQucGF0aC5sZW5ndGgtMSkmJih0LnBhdGhfPXQucGF0aF8uc2xpY2UoMCwtMSkpfX0se3JlZ2V4Om5ldyBSZWdFeHAoIl5odHRwcz86Ly8iK28rIi92W0EtWmEtejAtOV9dKy9iLyIrbisiL28oLyhbXj8jXSopLiopPyQiLCJpIiksaW5kaWNlczp7YnVja2V0OjEscGF0aDozfSxwb3N0TW9kaWZ5Oml9LHtyZWdleDpuZXcgUmVnRXhwKCJeaHR0cHM/Oi8vKD86c3RvcmFnZS5nb29nbGVhcGlzLmNvbXxzdG9yYWdlLmNsb3VkLmdvb2dsZS5jb20pLyIrbisiLyhbXj8jXSopIiwiaSIpLGluZGljZXM6e2J1Y2tldDoxLHBhdGg6Mn0scG9zdE1vZGlmeTppfV0sYT0wO2E8cy5sZW5ndGg7YSsrKXt2YXIgdT1zW2FdLGM9dS5yZWdleC5leGVjKHQpO2lmKGMpe2U9bmV3IFZEKGNbdS5pbmRpY2VzLmJ1Y2tldF0sY1t1LmluZGljZXMucGF0aF18fCIiKTt1LnBvc3RNb2RpZnkoZSk7YnJlYWt9fWlmKG51bGw9PWUpdGhyb3cgbmV3IHZEKCJpbnZhbGlkLXVybCIsIkludmFsaWQgVVJMICciK3QrIicuIik7cmV0dXJuIGV9LFZEKTtmdW5jdGlvbiBWRCh0LGUpe3RoaXMuYnVja2V0PXQsdGhpcy5wYXRoXz1lfXZhciBCRD0oS0QucHJvdG90eXBlLmdldFByb21pc2U9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wcm9taXNlX30sS0QucHJvdG90eXBlLmNhbmNlbD1mdW5jdGlvbih0KXt9LEtEKTtmdW5jdGlvbiBLRCh0KXt0aGlzLnByb21pc2VfPVByb21pc2UucmVqZWN0KHQpfWZ1bmN0aW9uIFdEKHQpe3JldHVybiJzdHJpbmciPT10eXBlb2YgdHx8dCBpbnN0YW5jZW9mIFN0cmluZ31mdW5jdGlvbiBIRCh0KXtyZXR1cm4gR0QoKSYmdCBpbnN0YW5jZW9mIEJsb2J9ZnVuY3Rpb24gR0QoKXtyZXR1cm4idW5kZWZpbmVkIiE9dHlwZW9mIEJsb2J9ZnVuY3Rpb24gekQodCxlLG4scil7aWYocjxlKXRocm93IF9EKCJJbnZhbGlkIHZhbHVlIGZvciAnIit0KyInLiBFeHBlY3RlZCAiK2UrIiBvciBncmVhdGVyLiIpO2lmKG48cil0aHJvdyBfRCgiSW52YWxpZCB2YWx1ZSBmb3IgJyIrdCsiJy4gRXhwZWN0ZWQgIituKyIgb3IgbGVzcy4iKX1mdW5jdGlvbiBRRCh0KXtyZXR1cm4iaHR0cHM6Ly8iK3BEKyIvdjAiK3R9ZnVuY3Rpb24gWUQodCl7dmFyIGUsbj1lbmNvZGVVUklDb21wb25lbnQscj0iPyI7Zm9yKGUgaW4gdCl0Lmhhc093blByb3BlcnR5KGUpJiYocj1yKyhuKGUpKyI9IituKHRbZV0pKSsiJiIpO3JldHVybiByPXIuc2xpY2UoMCwtMSl9dmFyIFhEPShKRC5wcm90b3R5cGUuc3RhcnRfPWZ1bmN0aW9uKCl7dmFyIGUsbix0LHIsaSxvLHMsYSx1LGM9dGhpcztmdW5jdGlvbiBoKHQsZSl7dmFyIG4scj1jLnJlc29sdmVfLGk9Yy5yZWplY3RfLG89ZS54aHI7aWYoZS53YXNTdWNjZXNzQ29kZSl0cnl7dmFyIHM9Yy5jYWxsYmFja18obyxvLmdldFJlc3BvbnNlVGV4dCgpKTt2b2lkIDAhPT1zP3Iocyk6cigpfWNhdGNoKHQpe2kodCl9ZWxzZSBudWxsIT09bz8oKG49bUQoKSkuc2VydmVyUmVzcG9uc2U9by5nZXRSZXNwb25zZVRleHQoKSxjLmVycm9yQ2FsbGJhY2tfP2koYy5lcnJvckNhbGxiYWNrXyhvLG4pKTppKG4pKTplLmNhbmNlbGVkP2kobj0oYy5hcHBEZWxldGVfP0lEOmJEKSgpKTppKG49bmV3IHZEKCJyZXRyeS1saW1pdC1leGNlZWRlZCIsIk1heCByZXRyeSB0aW1lIGZvciBvcGVyYXRpb24gZXhjZWVkZWQsIHBsZWFzZSB0cnkgYWdhaW4uIikpfWZ1bmN0aW9uIGwoKXtyZXR1cm4gMj09PXN9ZnVuY3Rpb24gZigpe2Zvcih2YXIgdD1bXSxlPTA7ZTxhcmd1bWVudHMubGVuZ3RoO2UrKyl0W2VdPWFyZ3VtZW50c1tlXTthfHwoYT0hMCxuLmFwcGx5KG51bGwsdCkpfWZ1bmN0aW9uIHAodCl7aT1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7aT1udWxsLGUoZCxsKCkpfSx0KX1mdW5jdGlvbiBkKHQpe2Zvcih2YXIgZT1bXSxuPTE7bjxhcmd1bWVudHMubGVuZ3RoO24rKyllW24tMV09YXJndW1lbnRzW25dO2F8fCh0fHxsKCl8fG8/Zi5jYWxsLmFwcGx5KGYsbm8oW251bGwsdF0sZSkpOihyPDY0JiYocio9MikscCgxPT09cz8ocz0yLDApOjFlMyoocitNYXRoLnJhbmRvbSgpKSkpKX1mdW5jdGlvbiB2KHQpe3V8fCh1PSEwLGF8fChudWxsIT09aT8odHx8KHM9MiksY2xlYXJUaW1lb3V0KGkpLHAoMCkpOnR8fChzPTEpKSl9dGhpcy5jYW5jZWxlZF8/aCgwLG5ldyAkRCghMSxudWxsLCEwKSk6dGhpcy5iYWNrb2ZmSWRfPShlPWZ1bmN0aW9uKHIsdCl7ZnVuY3Rpb24gaSh0KXt2YXIgZT10LmxvYWRlZCx0PXQubGVuZ3RoQ29tcHV0YWJsZT90LnRvdGFsOi0xO251bGwhPT1jLnByb2dyZXNzQ2FsbGJhY2tfJiZjLnByb2dyZXNzQ2FsbGJhY2tfKGUsdCl9dD9yKCExLG5ldyAkRCghMSxudWxsLCEwKSk6KHQ9Yy5wb29sXy5jcmVhdGVYaHJJbygpLGMucGVuZGluZ1hocl89dCxudWxsIT09Yy5wcm9ncmVzc0NhbGxiYWNrXyYmdC5hZGRVcGxvYWRQcm9ncmVzc0xpc3RlbmVyKGkpLHQuc2VuZChjLnVybF8sYy5tZXRob2RfLGMuYm9keV8sYy5oZWFkZXJzXykudGhlbihmdW5jdGlvbih0KXtudWxsIT09Yy5wcm9ncmVzc0NhbGxiYWNrXyYmdC5yZW1vdmVVcGxvYWRQcm9ncmVzc0xpc3RlbmVyKGkpLGMucGVuZGluZ1hocl89bnVsbDt2YXIgZT10LmdldEVycm9yQ29kZSgpPT09T0QuTk9fRVJST1Isbj10LmdldFN0YXR1cygpO2UmJiFjLmlzUmV0cnlTdGF0dXNDb2RlXyhuKT8obj0tMSE9PWMuc3VjY2Vzc0NvZGVzXy5pbmRleE9mKG4pLHIoITAsbmV3ICREKG4sdCkpKToodD10LmdldEVycm9yQ29kZSgpPT09T0QuQUJPUlQscighMSxuZXcgJEQoITEsbnVsbCx0KSkpfSkpfSxuPWgsdD10aGlzLnRpbWVvdXRfLGk9bnVsbCx1PWE9bz0hKHI9MSkscChzPTApLHNldFRpbWVvdXQoZnVuY3Rpb24oKXtvPSEwLHYoITApfSx0KSx2KX0sSkQucHJvdG90eXBlLmdldFByb21pc2U9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wcm9taXNlX30sSkQucHJvdG90eXBlLmNhbmNlbD1mdW5jdGlvbih0KXt0aGlzLmNhbmNlbGVkXz0hMCx0aGlzLmFwcERlbGV0ZV89dHx8ITEsbnVsbCE9PXRoaXMuYmFja29mZklkXyYmKDAsdGhpcy5iYWNrb2ZmSWRfKSghMSksbnVsbCE9PXRoaXMucGVuZGluZ1hocl8mJnRoaXMucGVuZGluZ1hocl8uYWJvcnQoKX0sSkQucHJvdG90eXBlLmlzUmV0cnlTdGF0dXNDb2RlXz1mdW5jdGlvbih0KXt2YXIgZT01MDA8PXQmJnQ8NjAwLG49LTEhPT1bNDA4LDQyOV0uaW5kZXhPZih0KSx0PS0xIT09dGhpcy5hZGRpdGlvbmFsUmV0cnlDb2Rlc18uaW5kZXhPZih0KTtyZXR1cm4gZXx8bnx8dH0sSkQpO2Z1bmN0aW9uIEpEKHQsZSxuLHIsaSxvLHMsYSx1LGMsaCl7dmFyIGw9dGhpczt0aGlzLnBlbmRpbmdYaHJfPW51bGwsdGhpcy5iYWNrb2ZmSWRfPW51bGwsdGhpcy5jYW5jZWxlZF89ITEsdGhpcy5hcHBEZWxldGVfPSExLHRoaXMudXJsXz10LHRoaXMubWV0aG9kXz1lLHRoaXMuaGVhZGVyc189bix0aGlzLmJvZHlfPXIsdGhpcy5zdWNjZXNzQ29kZXNfPWkuc2xpY2UoKSx0aGlzLmFkZGl0aW9uYWxSZXRyeUNvZGVzXz1vLnNsaWNlKCksdGhpcy5jYWxsYmFja189cyx0aGlzLmVycm9yQ2FsbGJhY2tfPWEsdGhpcy5wcm9ncmVzc0NhbGxiYWNrXz1jLHRoaXMudGltZW91dF89dSx0aGlzLnBvb2xfPWgsdGhpcy5wcm9taXNlXz1uZXcgUHJvbWlzZShmdW5jdGlvbih0LGUpe2wucmVzb2x2ZV89dCxsLnJlamVjdF89ZSxsLnN0YXJ0XygpfSl9dmFyICREPWZ1bmN0aW9uKHQsZSxuKXt0aGlzLndhc1N1Y2Nlc3NDb2RlPXQsdGhpcy54aHI9ZSx0aGlzLmNhbmNlbGVkPSEhbn07ZnVuY3Rpb24gWkQoKXtmb3IodmFyIHQ9W10sZT0wO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspdFtlXT1hcmd1bWVudHNbZV07dmFyIG49InVuZGVmaW5lZCIhPXR5cGVvZiBCbG9iQnVpbGRlcj9CbG9iQnVpbGRlcjoidW5kZWZpbmVkIiE9dHlwZW9mIFdlYktpdEJsb2JCdWlsZGVyP1dlYktpdEJsb2JCdWlsZGVyOnZvaWQgMDtpZih2b2lkIDAhPT1uKXtmb3IodmFyIHI9bmV3IG4saT0wO2k8dC5sZW5ndGg7aSsrKXIuYXBwZW5kKHRbaV0pO3JldHVybiByLmdldEJsb2IoKX1pZihHRCgpKXJldHVybiBuZXcgQmxvYih0KTt0aHJvdyBuZXcgdkQoInVuc3VwcG9ydGVkLWVudmlyb25tZW50IiwiVGhpcyBicm93c2VyIGRvZXNuJ3Qgc2VlbSB0byBzdXBwb3J0IGNyZWF0aW5nIEJsb2JzIil9dmFyIHR4PShleC5wcm90b3R5cGUuc2l6ZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLnNpemVffSxleC5wcm90b3R5cGUudHlwZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLnR5cGVffSxleC5wcm90b3R5cGUuc2xpY2U9ZnVuY3Rpb24odCxlKXtpZihIRCh0aGlzLmRhdGFfKSl7dmFyIG49dGhpcy5kYXRhXyxyPShpPXQscj1lLChuPW4pLndlYmtpdFNsaWNlP24ud2Via2l0U2xpY2UoaSxyKTpuLm1velNsaWNlP24ubW96U2xpY2UoaSxyKTpuLnNsaWNlP24uc2xpY2UoaSxyKTpudWxsKTtyZXR1cm4gbnVsbD09PXI/bnVsbDpuZXcgZXgocil9dmFyIGkscjtyZXR1cm4gbmV3IGV4KG5ldyBVaW50OEFycmF5KHRoaXMuZGF0YV8uYnVmZmVyLHQsZS10KSwhMCl9LGV4LmdldEJsb2I9ZnVuY3Rpb24oKXtmb3IodmFyIHQ9W10sZT0wO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspdFtlXT1hcmd1bWVudHNbZV07aWYoR0QoKSl7dmFyIG49dC5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIHQgaW5zdGFuY2VvZiBleD90LmRhdGFfOnR9KTtyZXR1cm4gbmV3IGV4KFpELmFwcGx5KG51bGwsbikpfXZhciBuPXQubWFwKGZ1bmN0aW9uKHQpe3JldHVybiBXRCh0KT9BRChDRC5SQVcsdCkuZGF0YTp0LmRhdGFffSkscj0wO24uZm9yRWFjaChmdW5jdGlvbih0KXtyKz10LmJ5dGVMZW5ndGh9KTt2YXIgaT1uZXcgVWludDhBcnJheShyKSxvPTA7cmV0dXJuIG4uZm9yRWFjaChmdW5jdGlvbih0KXtmb3IodmFyIGU9MDtlPHQubGVuZ3RoO2UrKylpW28rK109dFtlXX0pLG5ldyBleChpLCEwKX0sZXgucHJvdG90eXBlLnVwbG9hZERhdGE9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5kYXRhX30sZXgpO2Z1bmN0aW9uIGV4KHQsZSl7dmFyIG49MCxyPSIiO0hEKHQpPyhuPSh0aGlzLmRhdGFfPXQpLnNpemUscj10LnR5cGUpOnQgaW5zdGFuY2VvZiBBcnJheUJ1ZmZlcj8oZT90aGlzLmRhdGFfPW5ldyBVaW50OEFycmF5KHQpOih0aGlzLmRhdGFfPW5ldyBVaW50OEFycmF5KHQuYnl0ZUxlbmd0aCksdGhpcy5kYXRhXy5zZXQobmV3IFVpbnQ4QXJyYXkodCkpKSxuPXRoaXMuZGF0YV8ubGVuZ3RoKTp0IGluc3RhbmNlb2YgVWludDhBcnJheSYmKGU/dGhpcy5kYXRhXz10Oih0aGlzLmRhdGFfPW5ldyBVaW50OEFycmF5KHQubGVuZ3RoKSx0aGlzLmRhdGFfLnNldCh0KSksbj10Lmxlbmd0aCksdGhpcy5zaXplXz1uLHRoaXMudHlwZV89cn1mdW5jdGlvbiBueCh0KXt2YXIgZSxuO3RyeXtlPUpTT04ucGFyc2UodCl9Y2F0Y2godCl7cmV0dXJuIG51bGx9cmV0dXJuIm9iamVjdCIhPXR5cGVvZihuPWUpfHxBcnJheS5pc0FycmF5KG4pP251bGw6ZX1mdW5jdGlvbiByeCh0KXt2YXIgZT10Lmxhc3RJbmRleE9mKCIvIix0Lmxlbmd0aC0yKTtyZXR1cm4tMT09PWU/dDp0LnNsaWNlKGUrMSl9ZnVuY3Rpb24gaXgodCxlKXtyZXR1cm4gZX12YXIgb3g9ZnVuY3Rpb24odCxlLG4scil7dGhpcy5zZXJ2ZXI9dCx0aGlzLmxvY2FsPWV8fHQsdGhpcy53cml0YWJsZT0hIW4sdGhpcy54Zm9ybT1yfHxpeH0sc3g9bnVsbDtmdW5jdGlvbiBheCgpe2lmKHN4KXJldHVybiBzeDt2YXIgdD1bXTt0LnB1c2gobmV3IG94KCJidWNrZXQiKSksdC5wdXNoKG5ldyBveCgiZ2VuZXJhdGlvbiIpKSx0LnB1c2gobmV3IG94KCJtZXRhZ2VuZXJhdGlvbiIpKSx0LnB1c2gobmV3IG94KCJuYW1lIiwiZnVsbFBhdGgiLCEwKSk7dmFyIGU9bmV3IG94KCJuYW1lIik7ZS54Zm9ybT1mdW5jdGlvbih0LGUpe3JldHVybiFXRChlPWUpfHxlLmxlbmd0aDwyP2U6cngoZSl9LHQucHVzaChlKTtlPW5ldyBveCgic2l6ZSIpO3JldHVybiBlLnhmb3JtPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHZvaWQgMCE9PWU/TnVtYmVyKGUpOmV9LHQucHVzaChlKSx0LnB1c2gobmV3IG94KCJ0aW1lQ3JlYXRlZCIpKSx0LnB1c2gobmV3IG94KCJ1cGRhdGVkIikpLHQucHVzaChuZXcgb3goIm1kNUhhc2giLG51bGwsITApKSx0LnB1c2gobmV3IG94KCJjYWNoZUNvbnRyb2wiLG51bGwsITApKSx0LnB1c2gobmV3IG94KCJjb250ZW50RGlzcG9zaXRpb24iLG51bGwsITApKSx0LnB1c2gobmV3IG94KCJjb250ZW50RW5jb2RpbmciLG51bGwsITApKSx0LnB1c2gobmV3IG94KCJjb250ZW50TGFuZ3VhZ2UiLG51bGwsITApKSx0LnB1c2gobmV3IG94KCJjb250ZW50VHlwZSIsbnVsbCwhMCkpLHQucHVzaChuZXcgb3goIm1ldGFkYXRhIiwiY3VzdG9tTWV0YWRhdGEiLCEwKSksc3g9dH1mdW5jdGlvbiB1eChuLHIpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShuLCJyZWYiLHtnZXQ6ZnVuY3Rpb24oKXt2YXIgdD1uLmJ1Y2tldCxlPW4uZnVsbFBhdGgsZT1uZXcgcUQodCxlKTtyZXR1cm4gci5fbWFrZVN0b3JhZ2VSZWZlcmVuY2UoZSl9fSl9ZnVuY3Rpb24gY3godCxlLG4pe2U9bngoZSk7aWYobnVsbD09PWUpcmV0dXJuIG51bGw7cmV0dXJuIGZ1bmN0aW9uKHQsZSxuKXtmb3IodmFyIHI9e3R5cGU6ImZpbGUifSxpPW4ubGVuZ3RoLG89MDtvPGk7bysrKXt2YXIgcz1uW29dO3Jbcy5sb2NhbF09cy54Zm9ybShyLGVbcy5zZXJ2ZXJdKX1yZXR1cm4gdXgocix0KSxyfSh0LGUsbil9ZnVuY3Rpb24gaHgodCxlKXtmb3IodmFyIG49e30scj1lLmxlbmd0aCxpPTA7aTxyO2krKyl7dmFyIG89ZVtpXTtvLndyaXRhYmxlJiYobltvLnNlcnZlcl09dFtvLmxvY2FsXSl9cmV0dXJuIEpTT04uc3RyaW5naWZ5KG4pfXZhciBseD0icHJlZml4ZXMiLGZ4PSJpdGVtcyI7ZnVuY3Rpb24gcHgodCxlLG4pe249bngobik7aWYobnVsbD09PW4pcmV0dXJuIG51bGw7cmV0dXJuIGZ1bmN0aW9uKHQsZSxuKXt2YXIgcj17cHJlZml4ZXM6W10saXRlbXM6W10sbmV4dFBhZ2VUb2tlbjpuLm5leHRQYWdlVG9rZW59O2lmKG5bbHhdKWZvcih2YXIgaT0wLG89bltseF07aTxvLmxlbmd0aDtpKyspe3ZhciBzPW9baV0ucmVwbGFjZSgvXC8kLywiIiksYT10Ll9tYWtlU3RvcmFnZVJlZmVyZW5jZShuZXcgcUQoZSxzKSk7ci5wcmVmaXhlcy5wdXNoKGEpfWlmKG5bZnhdKWZvcih2YXIgdT0wLGM9bltmeF07dTxjLmxlbmd0aDt1Kyspe3ZhciBoPWNbdV0sYT10Ll9tYWtlU3RvcmFnZVJlZmVyZW5jZShuZXcgcUQoZSxoLm5hbWUpKTtyLml0ZW1zLnB1c2goYSl9cmV0dXJuIHJ9KHQsZSxuKX12YXIgZHg9ZnVuY3Rpb24odCxlLG4scil7dGhpcy51cmw9dCx0aGlzLm1ldGhvZD1lLHRoaXMuaGFuZGxlcj1uLHRoaXMudGltZW91dD1yLHRoaXMudXJsUGFyYW1zPXt9LHRoaXMuaGVhZGVycz17fSx0aGlzLmJvZHk9bnVsbCx0aGlzLmVycm9ySGFuZGxlcj1udWxsLHRoaXMucHJvZ3Jlc3NDYWxsYmFjaz1udWxsLHRoaXMuc3VjY2Vzc0NvZGVzPVsyMDBdLHRoaXMuYWRkaXRpb25hbFJldHJ5Q29kZXM9W119O2Z1bmN0aW9uIHZ4KHQpe2lmKCF0KXRocm93IG1EKCl9ZnVuY3Rpb24gZ3gobixyKXtyZXR1cm4gZnVuY3Rpb24odCxlKXtyZXR1cm4gdngobnVsbCE9PShlPWN4KG4sZSxyKSkpLGV9fWZ1bmN0aW9uIHl4KG4scil7cmV0dXJuIGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHZ4KG51bGwhPT0oZT1weChuLHIsZSkpKSxlfX1mdW5jdGlvbiBteChyLGkpe3JldHVybiBmdW5jdGlvbih0LGUpe3ZhciBuPWN4KHIsZSxpKTtyZXR1cm4gdngobnVsbCE9PW4pLGZ1bmN0aW9uKHIsdCl7aWYobnVsbD09PSh0PW54KHQpKSlyZXR1cm4gbnVsbDtpZighV0QodC5kb3dubG9hZFRva2VucykpcmV0dXJuIG51bGw7aWYoMD09PSh0PXQuZG93bmxvYWRUb2tlbnMpLmxlbmd0aClyZXR1cm4gbnVsbDt2YXIgaT1lbmNvZGVVUklDb21wb25lbnQ7cmV0dXJuIHQuc3BsaXQoIiwiKS5tYXAoZnVuY3Rpb24odCl7dmFyIGU9ci5idWNrZXQsbj1yLmZ1bGxQYXRoO3JldHVybiBRRCgiL2IvIitpKGUpKyIvby8iK2kobikpK1lEKHthbHQ6Im1lZGlhIix0b2tlbjp0fSl9KVswXX0obixlKX19ZnVuY3Rpb24gYngoaSl7cmV0dXJuIGZ1bmN0aW9uKHQsZSl7dmFyIG4scj00MDE9PT10LmdldFN0YXR1cygpP25ldyB2RCgidW5hdXRoZW50aWNhdGVkIiwiVXNlciBpcyBub3QgYXV0aGVudGljYXRlZCwgcGxlYXNlIGF1dGhlbnRpY2F0ZSB1c2luZyBGaXJlYmFzZSBBdXRoZW50aWNhdGlvbiBhbmQgdHJ5IGFnYWluLiIpOjQwMj09PXQuZ2V0U3RhdHVzKCk/KG49aS5idWNrZXQsbmV3IHZEKCJxdW90YS1leGNlZWRlZCIsIlF1b3RhIGZvciBidWNrZXQgJyIrbisiJyBleGNlZWRlZCwgcGxlYXNlIHZpZXcgcXVvdGEgb24gaHR0cHM6Ly9maXJlYmFzZS5nb29nbGUuY29tL3ByaWNpbmcvLiIpKTo0MDM9PT10LmdldFN0YXR1cygpPyhyPWkucGF0aCxuZXcgdkQoInVuYXV0aG9yaXplZCIsIlVzZXIgZG9lcyBub3QgaGF2ZSBwZXJtaXNzaW9uIHRvIGFjY2VzcyAnIityKyInLiIpKTplO3JldHVybiByLnNlcnZlclJlc3BvbnNlPWUuc2VydmVyUmVzcG9uc2Uscn19ZnVuY3Rpb24gd3gocil7dmFyIGk9Yngocik7cmV0dXJuIGZ1bmN0aW9uKHQsZSl7dmFyIG49aSh0LGUpO3JldHVybiA0MDQ9PT10LmdldFN0YXR1cygpJiYodD1yLnBhdGgsbj1uZXcgdkQoIm9iamVjdC1ub3QtZm91bmQiLCJPYmplY3QgJyIrdCsiJyBkb2VzIG5vdCBleGlzdC4iKSksbi5zZXJ2ZXJSZXNwb25zZT1lLnNlcnZlclJlc3BvbnNlLG59fWZ1bmN0aW9uIF94KHQsZSxuKXt2YXIgcj1RRChlLmZ1bGxTZXJ2ZXJVcmwoKSksaT10Lm1heE9wZXJhdGlvblJldHJ5VGltZSxpPW5ldyBkeChyLCJHRVQiLGd4KHQsbiksaSk7cmV0dXJuIGkuZXJyb3JIYW5kbGVyPXd4KGUpLGl9ZnVuY3Rpb24gSXgodCxlLG4pe249T2JqZWN0LmFzc2lnbih7fSxuKTtyZXR1cm4gbi5mdWxsUGF0aD10LnBhdGgsbi5zaXplPWUuc2l6ZSgpLG4uY29udGVudFR5cGV8fChuLmNvbnRlbnRUeXBlPSh0PWUsKGU9bnVsbCkmJmUuY29udGVudFR5cGV8fHQmJnQudHlwZSgpfHwiYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtIikpLG59ZnVuY3Rpb24gVHgodCxlLG4scixpKXt2YXIgbz1lLmJ1Y2tldE9ubHlTZXJ2ZXJVcmwoKSxzPXsiWC1Hb29nLVVwbG9hZC1Qcm90b2NvbCI6Im11bHRpcGFydCJ9O3ZhciBhPWZ1bmN0aW9uKCl7Zm9yKHZhciB0PSIiLGU9MDtlPDI7ZSsrKXQrPU1hdGgucmFuZG9tKCkudG9TdHJpbmcoKS5zbGljZSgyKTtyZXR1cm4gdH0oKTtzWyJDb250ZW50LVR5cGUiXT0ibXVsdGlwYXJ0L3JlbGF0ZWQ7IGJvdW5kYXJ5PSIrYTt2YXIgdT1JeChlLHIsaSksaT0iLS0iK2ErIlxyXG5Db250ZW50LVR5cGU6IGFwcGxpY2F0aW9uL2pzb247IGNoYXJzZXQ9dXRmLThcclxuXHJcbiIraHgodSxuKSsiXHJcbi0tIithKyJcclxuQ29udGVudC1UeXBlOiAiK3UuY29udGVudFR5cGUrIlxyXG5cclxuIixhPSJcclxuLS0iK2ErIi0tIixyPXR4LmdldEJsb2IoaSxyLGEpO2lmKG51bGw9PT1yKXRocm93IHdEKCk7YT17bmFtZTp1LmZ1bGxQYXRofSx1PVFEKG8pLG89dC5tYXhVcGxvYWRSZXRyeVRpbWUsbz1uZXcgZHgodSwiUE9TVCIsZ3godCxuKSxvKTtyZXR1cm4gby51cmxQYXJhbXM9YSxvLmhlYWRlcnM9cyxvLmJvZHk9ci51cGxvYWREYXRhKCksby5lcnJvckhhbmRsZXI9YngoZSksb312YXIgRXg9ZnVuY3Rpb24odCxlLG4scil7dGhpcy5jdXJyZW50PXQsdGhpcy50b3RhbD1lLHRoaXMuZmluYWxpemVkPSEhbix0aGlzLm1ldGFkYXRhPXJ8fG51bGx9O2Z1bmN0aW9uIFN4KHQsZSl7dmFyIG49bnVsbDt0cnl7bj10LmdldFJlc3BvbnNlSGVhZGVyKCJYLUdvb2ctVXBsb2FkLVN0YXR1cyIpfWNhdGNoKHQpe3Z4KCExKX1yZXR1cm4gdngoISFuJiYtMSE9PShlfHxbImFjdGl2ZSJdKS5pbmRleE9mKG4pKSxufWZ1bmN0aW9uIEN4KHQsZSxuLHIsaSl7dmFyIG89ZS5idWNrZXRPbmx5U2VydmVyVXJsKCkscz1JeChlLHIsaSksaT17bmFtZTpzLmZ1bGxQYXRofSxvPVFEKG8pLHI9eyJYLUdvb2ctVXBsb2FkLVByb3RvY29sIjoicmVzdW1hYmxlIiwiWC1Hb29nLVVwbG9hZC1Db21tYW5kIjoic3RhcnQiLCJYLUdvb2ctVXBsb2FkLUhlYWRlci1Db250ZW50LUxlbmd0aCI6ci5zaXplKCksIlgtR29vZy1VcGxvYWQtSGVhZGVyLUNvbnRlbnQtVHlwZSI6cy5jb250ZW50VHlwZSwiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbjsgY2hhcnNldD11dGYtOCJ9LG49aHgocyxuKSx0PXQubWF4VXBsb2FkUmV0cnlUaW1lO3Q9bmV3IGR4KG8sIlBPU1QiLGZ1bmN0aW9uKHQpe3ZhciBlO1N4KHQpO3RyeXtlPXQuZ2V0UmVzcG9uc2VIZWFkZXIoIlgtR29vZy1VcGxvYWQtVVJMIil9Y2F0Y2godCl7dngoITEpfXJldHVybiB2eChXRChlKSksZX0sdCk7cmV0dXJuIHQudXJsUGFyYW1zPWksdC5oZWFkZXJzPXIsdC5ib2R5PW4sdC5lcnJvckhhbmRsZXI9YngoZSksdH1mdW5jdGlvbiBOeCh0LGUsbixpKXt0PXQubWF4VXBsb2FkUmV0cnlUaW1lLHQ9bmV3IGR4KG4sIlBPU1QiLGZ1bmN0aW9uKHQpe3ZhciBlPVN4KHQsWyJhY3RpdmUiLCJmaW5hbCJdKSxuPW51bGw7dHJ5e249dC5nZXRSZXNwb25zZUhlYWRlcigiWC1Hb29nLVVwbG9hZC1TaXplLVJlY2VpdmVkIil9Y2F0Y2godCl7dngoITEpfW58fHZ4KCExKTt2YXIgcj1OdW1iZXIobik7cmV0dXJuIHZ4KCFpc05hTihyKSksbmV3IEV4KHIsaS5zaXplKCksImZpbmFsIj09PWUpfSx0KTtyZXR1cm4gdC5oZWFkZXJzPXsiWC1Hb29nLVVwbG9hZC1Db21tYW5kIjoicXVlcnkifSx0LmVycm9ySGFuZGxlcj1ieChlKSx0fWZ1bmN0aW9uIEF4KHQsbyxlLHMsbixhLHIsaSl7dmFyIHU9bmV3IEV4KDAsMCk7aWYocj8odS5jdXJyZW50PXIuY3VycmVudCx1LnRvdGFsPXIudG90YWwpOih1LmN1cnJlbnQ9MCx1LnRvdGFsPXMuc2l6ZSgpKSxzLnNpemUoKSE9PXUudG90YWwpdGhyb3cgbmV3IHZEKCJzZXJ2ZXItZmlsZS13cm9uZy1zaXplIiwiU2VydmVyIHJlY29yZGVkIGluY29ycmVjdCB1cGxvYWQgZmlsZSBzaXplLCBwbGVhc2UgcmV0cnkgdGhlIHVwbG9hZC4iKTt2YXIgYz11LnRvdGFsLXUuY3VycmVudCxoPWM7MDxuJiYoaD1NYXRoLm1pbihoLG4pKTtyPXUuY3VycmVudCxuPXIraCxjPXsiWC1Hb29nLVVwbG9hZC1Db21tYW5kIjpoPT09Yz8idXBsb2FkLCBmaW5hbGl6ZSI6InVwbG9hZCIsIlgtR29vZy1VcGxvYWQtT2Zmc2V0Ijp1LmN1cnJlbnR9LHI9cy5zbGljZShyLG4pO2lmKG51bGw9PT1yKXRocm93IHdEKCk7bj1vLm1heFVwbG9hZFJldHJ5VGltZSxuPW5ldyBkeChlLCJQT1NUIixmdW5jdGlvbih0LGUpe3ZhciBuPVN4KHQsWyJhY3RpdmUiLCJmaW5hbCJdKSxyPXUuY3VycmVudCtoLGk9cy5zaXplKCksZT0iZmluYWwiPT09bj9neChvLGEpKHQsZSk6bnVsbDtyZXR1cm4gbmV3IEV4KHIsaSwiZmluYWwiPT09bixlKX0sbik7cmV0dXJuIG4uaGVhZGVycz1jLG4uYm9keT1yLnVwbG9hZERhdGEoKSxuLnByb2dyZXNzQ2FsbGJhY2s9aXx8bnVsbCxuLmVycm9ySGFuZGxlcj1ieCh0KSxufXZhciBreD1mdW5jdGlvbih0LGUsbil7ImZ1bmN0aW9uIj09dHlwZW9mIHR8fG51bGwhPWV8fG51bGwhPW4/KHRoaXMubmV4dD10LHRoaXMuZXJyb3I9ZSx0aGlzLmNvbXBsZXRlPW4pOih0PXQsdGhpcy5uZXh0PXQubmV4dCx0aGlzLmVycm9yPXQuZXJyb3IsdGhpcy5jb21wbGV0ZT10LmNvbXBsZXRlKX07ZnVuY3Rpb24gUngobil7cmV0dXJuIGZ1bmN0aW9uKCl7Zm9yKHZhciB0PVtdLGU9MDtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXRbZV09YXJndW1lbnRzW2VdO1Byb21pc2UucmVzb2x2ZSgpLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gbi5hcHBseSh2b2lkIDAsdCl9KX19dmFyIFB4PShPeC5wcm90b3R5cGUuX21ha2VQcm9ncmVzc0NhbGxiYWNrPWZ1bmN0aW9uKCl7dmFyIGU9dGhpcyxuPXRoaXMuX3RyYW5zZmVycmVkO3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gZS5fdXBkYXRlUHJvZ3Jlc3Mobit0KX19LE94LnByb3RvdHlwZS5fc2hvdWxkRG9SZXN1bWFibGU9ZnVuY3Rpb24odCl7cmV0dXJuIDI2MjE0NDx0LnNpemUoKX0sT3gucHJvdG90eXBlLl9zdGFydD1mdW5jdGlvbigpeyJydW5uaW5nIj09PXRoaXMuX3N0YXRlJiZ2b2lkIDA9PT10aGlzLl9yZXF1ZXN0JiYodGhpcy5fcmVzdW1hYmxlP3ZvaWQgMD09PXRoaXMuX3VwbG9hZFVybD90aGlzLl9jcmVhdGVSZXN1bWFibGUoKTp0aGlzLl9uZWVkVG9GZXRjaFN0YXR1cz90aGlzLl9mZXRjaFN0YXR1cygpOnRoaXMuX25lZWRUb0ZldGNoTWV0YWRhdGE/dGhpcy5fZmV0Y2hNZXRhZGF0YSgpOnRoaXMuX2NvbnRpbnVlVXBsb2FkKCk6dGhpcy5fb25lU2hvdFVwbG9hZCgpKX0sT3gucHJvdG90eXBlLl9yZXNvbHZlVG9rZW49ZnVuY3Rpb24oZSl7dmFyIG49dGhpczt0aGlzLl9yZWYuc3RvcmFnZS5fZ2V0QXV0aFRva2VuKCkudGhlbihmdW5jdGlvbih0KXtzd2l0Y2gobi5fc3RhdGUpe2Nhc2UicnVubmluZyI6ZSh0KTticmVhaztjYXNlImNhbmNlbGluZyI6bi5fdHJhbnNpdGlvbigiY2FuY2VsZWQiKTticmVhaztjYXNlInBhdXNpbmciOm4uX3RyYW5zaXRpb24oInBhdXNlZCIpfX0pfSxPeC5wcm90b3R5cGUuX2NyZWF0ZVJlc3VtYWJsZT1mdW5jdGlvbigpe3ZhciBuPXRoaXM7dGhpcy5fcmVzb2x2ZVRva2VuKGZ1bmN0aW9uKHQpe3ZhciBlPUN4KG4uX3JlZi5zdG9yYWdlLG4uX3JlZi5fbG9jYXRpb24sbi5fbWFwcGluZ3Msbi5fYmxvYixuLl9tZXRhZGF0YSksdD1uLl9yZWYuc3RvcmFnZS5fbWFrZVJlcXVlc3QoZSx0KTsobi5fcmVxdWVzdD10KS5nZXRQcm9taXNlKCkudGhlbihmdW5jdGlvbih0KXtuLl9yZXF1ZXN0PXZvaWQgMCxuLl91cGxvYWRVcmw9dCxuLl9uZWVkVG9GZXRjaFN0YXR1cz0hMSxuLmNvbXBsZXRlVHJhbnNpdGlvbnNfKCl9LG4uX2Vycm9ySGFuZGxlcil9KX0sT3gucHJvdG90eXBlLl9mZXRjaFN0YXR1cz1mdW5jdGlvbigpe3ZhciBuPXRoaXMscj10aGlzLl91cGxvYWRVcmw7dGhpcy5fcmVzb2x2ZVRva2VuKGZ1bmN0aW9uKHQpe3ZhciBlPU54KG4uX3JlZi5zdG9yYWdlLG4uX3JlZi5fbG9jYXRpb24scixuLl9ibG9iKSx0PW4uX3JlZi5zdG9yYWdlLl9tYWtlUmVxdWVzdChlLHQpOyhuLl9yZXF1ZXN0PXQpLmdldFByb21pc2UoKS50aGVuKGZ1bmN0aW9uKHQpe24uX3JlcXVlc3Q9dm9pZCAwLG4uX3VwZGF0ZVByb2dyZXNzKHQuY3VycmVudCksbi5fbmVlZFRvRmV0Y2hTdGF0dXM9ITEsdC5maW5hbGl6ZWQmJihuLl9uZWVkVG9GZXRjaE1ldGFkYXRhPSEwKSxuLmNvbXBsZXRlVHJhbnNpdGlvbnNfKCl9LG4uX2Vycm9ySGFuZGxlcil9KX0sT3gucHJvdG90eXBlLl9jb250aW51ZVVwbG9hZD1mdW5jdGlvbigpe3ZhciBuPXRoaXMscj0yNjIxNDQqdGhpcy5fY2h1bmtNdWx0aXBsaWVyLGk9bmV3IEV4KHRoaXMuX3RyYW5zZmVycmVkLHRoaXMuX2Jsb2Iuc2l6ZSgpKSxvPXRoaXMuX3VwbG9hZFVybDt0aGlzLl9yZXNvbHZlVG9rZW4oZnVuY3Rpb24odCl7dmFyIGU7dHJ5e2U9QXgobi5fcmVmLl9sb2NhdGlvbixuLl9yZWYuc3RvcmFnZSxvLG4uX2Jsb2IscixuLl9tYXBwaW5ncyxpLG4uX21ha2VQcm9ncmVzc0NhbGxiYWNrKCkpfWNhdGNoKHQpe3JldHVybiBuLl9lcnJvcj10LHZvaWQgbi5fdHJhbnNpdGlvbigiZXJyb3IiKX10PW4uX3JlZi5zdG9yYWdlLl9tYWtlUmVxdWVzdChlLHQpOyhuLl9yZXF1ZXN0PXQpLmdldFByb21pc2UoKS50aGVuKGZ1bmN0aW9uKHQpe24uX2luY3JlYXNlTXVsdGlwbGllcigpLG4uX3JlcXVlc3Q9dm9pZCAwLG4uX3VwZGF0ZVByb2dyZXNzKHQuY3VycmVudCksdC5maW5hbGl6ZWQ/KG4uX21ldGFkYXRhPXQubWV0YWRhdGEsbi5fdHJhbnNpdGlvbigic3VjY2VzcyIpKTpuLmNvbXBsZXRlVHJhbnNpdGlvbnNfKCl9LG4uX2Vycm9ySGFuZGxlcil9KX0sT3gucHJvdG90eXBlLl9pbmNyZWFzZU11bHRpcGxpZXI9ZnVuY3Rpb24oKXsyNjIxNDQqdGhpcy5fY2h1bmtNdWx0aXBsaWVyPDMzNTU0NDMyJiYodGhpcy5fY2h1bmtNdWx0aXBsaWVyKj0yKX0sT3gucHJvdG90eXBlLl9mZXRjaE1ldGFkYXRhPWZ1bmN0aW9uKCl7dmFyIG49dGhpczt0aGlzLl9yZXNvbHZlVG9rZW4oZnVuY3Rpb24odCl7dmFyIGU9X3gobi5fcmVmLnN0b3JhZ2Usbi5fcmVmLl9sb2NhdGlvbixuLl9tYXBwaW5ncyksdD1uLl9yZWYuc3RvcmFnZS5fbWFrZVJlcXVlc3QoZSx0KTsobi5fcmVxdWVzdD10KS5nZXRQcm9taXNlKCkudGhlbihmdW5jdGlvbih0KXtuLl9yZXF1ZXN0PXZvaWQgMCxuLl9tZXRhZGF0YT10LG4uX3RyYW5zaXRpb24oInN1Y2Nlc3MiKX0sbi5fbWV0YWRhdGFFcnJvckhhbmRsZXIpfSl9LE94LnByb3RvdHlwZS5fb25lU2hvdFVwbG9hZD1mdW5jdGlvbigpe3ZhciBuPXRoaXM7dGhpcy5fcmVzb2x2ZVRva2VuKGZ1bmN0aW9uKHQpe3ZhciBlPVR4KG4uX3JlZi5zdG9yYWdlLG4uX3JlZi5fbG9jYXRpb24sbi5fbWFwcGluZ3Msbi5fYmxvYixuLl9tZXRhZGF0YSksdD1uLl9yZWYuc3RvcmFnZS5fbWFrZVJlcXVlc3QoZSx0KTsobi5fcmVxdWVzdD10KS5nZXRQcm9taXNlKCkudGhlbihmdW5jdGlvbih0KXtuLl9yZXF1ZXN0PXZvaWQgMCxuLl9tZXRhZGF0YT10LG4uX3VwZGF0ZVByb2dyZXNzKG4uX2Jsb2Iuc2l6ZSgpKSxuLl90cmFuc2l0aW9uKCJzdWNjZXNzIil9LG4uX2Vycm9ySGFuZGxlcil9KX0sT3gucHJvdG90eXBlLl91cGRhdGVQcm9ncmVzcz1mdW5jdGlvbih0KXt2YXIgZT10aGlzLl90cmFuc2ZlcnJlZDt0aGlzLl90cmFuc2ZlcnJlZD10LHRoaXMuX3RyYW5zZmVycmVkIT09ZSYmdGhpcy5fbm90aWZ5T2JzZXJ2ZXJzKCl9LE94LnByb3RvdHlwZS5fdHJhbnNpdGlvbj1mdW5jdGlvbih0KXtpZih0aGlzLl9zdGF0ZSE9PXQpc3dpdGNoKHQpe2Nhc2UiY2FuY2VsaW5nIjpjYXNlInBhdXNpbmciOnRoaXMuX3N0YXRlPXQsdm9pZCAwIT09dGhpcy5fcmVxdWVzdCYmdGhpcy5fcmVxdWVzdC5jYW5jZWwoKTticmVhaztjYXNlInJ1bm5pbmciOnZhciBlPSJwYXVzZWQiPT09dGhpcy5fc3RhdGU7dGhpcy5fc3RhdGU9dCxlJiYodGhpcy5fbm90aWZ5T2JzZXJ2ZXJzKCksdGhpcy5fc3RhcnQoKSk7YnJlYWs7Y2FzZSJwYXVzZWQiOnRoaXMuX3N0YXRlPXQsdGhpcy5fbm90aWZ5T2JzZXJ2ZXJzKCk7YnJlYWs7Y2FzZSJjYW5jZWxlZCI6dGhpcy5fZXJyb3I9YkQoKSx0aGlzLl9zdGF0ZT10LHRoaXMuX25vdGlmeU9ic2VydmVycygpO2JyZWFrO2Nhc2UiZXJyb3IiOmNhc2Uic3VjY2VzcyI6dGhpcy5fc3RhdGU9dCx0aGlzLl9ub3RpZnlPYnNlcnZlcnMoKX19LE94LnByb3RvdHlwZS5jb21wbGV0ZVRyYW5zaXRpb25zXz1mdW5jdGlvbigpe3N3aXRjaCh0aGlzLl9zdGF0ZSl7Y2FzZSJwYXVzaW5nIjp0aGlzLl90cmFuc2l0aW9uKCJwYXVzZWQiKTticmVhaztjYXNlImNhbmNlbGluZyI6dGhpcy5fdHJhbnNpdGlvbigiY2FuY2VsZWQiKTticmVhaztjYXNlInJ1bm5pbmciOnRoaXMuX3N0YXJ0KCl9fSxPYmplY3QuZGVmaW5lUHJvcGVydHkoT3gucHJvdG90eXBlLCJzbmFwc2hvdCIse2dldDpmdW5jdGlvbigpe3ZhciB0PUxEKHRoaXMuX3N0YXRlKTtyZXR1cm57Ynl0ZXNUcmFuc2ZlcnJlZDp0aGlzLl90cmFuc2ZlcnJlZCx0b3RhbEJ5dGVzOnRoaXMuX2Jsb2Iuc2l6ZSgpLHN0YXRlOnQsbWV0YWRhdGE6dGhpcy5fbWV0YWRhdGEsdGFzazp0aGlzLHJlZjp0aGlzLl9yZWZ9fSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE94LnByb3RvdHlwZS5vbj1mdW5jdGlvbih0LGUsbixyKXt2YXIgaT10aGlzLG89bmV3IGt4KGUsbixyKTtyZXR1cm4gdGhpcy5fYWRkT2JzZXJ2ZXIobyksZnVuY3Rpb24oKXtpLl9yZW1vdmVPYnNlcnZlcihvKX19LE94LnByb3RvdHlwZS50aGVuPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMuX3Byb21pc2UudGhlbih0LGUpfSxPeC5wcm90b3R5cGUuY2F0Y2g9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMudGhlbihudWxsLHQpfSxPeC5wcm90b3R5cGUuX2FkZE9ic2VydmVyPWZ1bmN0aW9uKHQpe3RoaXMuX29ic2VydmVycy5wdXNoKHQpLHRoaXMuX25vdGlmeU9ic2VydmVyKHQpfSxPeC5wcm90b3R5cGUuX3JlbW92ZU9ic2VydmVyPWZ1bmN0aW9uKHQpe3Q9dGhpcy5fb2JzZXJ2ZXJzLmluZGV4T2YodCk7LTEhPT10JiZ0aGlzLl9vYnNlcnZlcnMuc3BsaWNlKHQsMSl9LE94LnByb3RvdHlwZS5fbm90aWZ5T2JzZXJ2ZXJzPWZ1bmN0aW9uKCl7dmFyIGU9dGhpczt0aGlzLl9maW5pc2hQcm9taXNlKCksdGhpcy5fb2JzZXJ2ZXJzLnNsaWNlKCkuZm9yRWFjaChmdW5jdGlvbih0KXtlLl9ub3RpZnlPYnNlcnZlcih0KX0pfSxPeC5wcm90b3R5cGUuX2ZpbmlzaFByb21pc2U9ZnVuY3Rpb24oKXtpZih2b2lkIDAhPT10aGlzLl9yZXNvbHZlKXt2YXIgdD0hMDtzd2l0Y2goTEQodGhpcy5fc3RhdGUpKXtjYXNlIHhELlNVQ0NFU1M6UngodGhpcy5fcmVzb2x2ZS5iaW5kKG51bGwsdGhpcy5zbmFwc2hvdCkpKCk7YnJlYWs7Y2FzZSB4RC5DQU5DRUxFRDpjYXNlIHhELkVSUk9SOlJ4KHRoaXMuX3JlamVjdC5iaW5kKG51bGwsdGhpcy5fZXJyb3IpKSgpO2JyZWFrO2RlZmF1bHQ6dD0hMX10JiYodGhpcy5fcmVzb2x2ZT12b2lkIDAsdGhpcy5fcmVqZWN0PXZvaWQgMCl9fSxPeC5wcm90b3R5cGUuX25vdGlmeU9ic2VydmVyPWZ1bmN0aW9uKHQpe3N3aXRjaChMRCh0aGlzLl9zdGF0ZSkpe2Nhc2UgeEQuUlVOTklORzpjYXNlIHhELlBBVVNFRDp0Lm5leHQmJlJ4KHQubmV4dC5iaW5kKHQsdGhpcy5zbmFwc2hvdCkpKCk7YnJlYWs7Y2FzZSB4RC5TVUNDRVNTOnQuY29tcGxldGUmJlJ4KHQuY29tcGxldGUuYmluZCh0KSkoKTticmVhaztjYXNlIHhELkNBTkNFTEVEOmNhc2UgeEQuRVJST1I6dC5lcnJvciYmUngodC5lcnJvci5iaW5kKHQsdGhpcy5fZXJyb3IpKSgpO2JyZWFrO2RlZmF1bHQ6dC5lcnJvciYmUngodC5lcnJvci5iaW5kKHQsdGhpcy5fZXJyb3IpKSgpfX0sT3gucHJvdG90eXBlLnJlc3VtZT1mdW5jdGlvbigpe3ZhciB0PSJwYXVzZWQiPT09dGhpcy5fc3RhdGV8fCJwYXVzaW5nIj09PXRoaXMuX3N0YXRlO3JldHVybiB0JiZ0aGlzLl90cmFuc2l0aW9uKCJydW5uaW5nIiksdH0sT3gucHJvdG90eXBlLnBhdXNlPWZ1bmN0aW9uKCl7dmFyIHQ9InJ1bm5pbmciPT09dGhpcy5fc3RhdGU7cmV0dXJuIHQmJnRoaXMuX3RyYW5zaXRpb24oInBhdXNpbmciKSx0fSxPeC5wcm90b3R5cGUuY2FuY2VsPWZ1bmN0aW9uKCl7dmFyIHQ9InJ1bm5pbmciPT09dGhpcy5fc3RhdGV8fCJwYXVzaW5nIj09PXRoaXMuX3N0YXRlO3JldHVybiB0JiZ0aGlzLl90cmFuc2l0aW9uKCJjYW5jZWxpbmciKSx0fSxPeCk7ZnVuY3Rpb24gT3godCxlLG4pe3ZhciByPXRoaXM7dm9pZCAwPT09biYmKG49bnVsbCksdGhpcy5fdHJhbnNmZXJyZWQ9MCx0aGlzLl9uZWVkVG9GZXRjaFN0YXR1cz0hMSx0aGlzLl9uZWVkVG9GZXRjaE1ldGFkYXRhPSExLHRoaXMuX29ic2VydmVycz1bXSx0aGlzLl9lcnJvcj12b2lkIDAsdGhpcy5fdXBsb2FkVXJsPXZvaWQgMCx0aGlzLl9yZXF1ZXN0PXZvaWQgMCx0aGlzLl9jaHVua011bHRpcGxpZXI9MSx0aGlzLl9yZXNvbHZlPXZvaWQgMCx0aGlzLl9yZWplY3Q9dm9pZCAwLHRoaXMuX3JlZj10LHRoaXMuX2Jsb2I9ZSx0aGlzLl9tZXRhZGF0YT1uLHRoaXMuX21hcHBpbmdzPWF4KCksdGhpcy5fcmVzdW1hYmxlPXRoaXMuX3Nob3VsZERvUmVzdW1hYmxlKHRoaXMuX2Jsb2IpLHRoaXMuX3N0YXRlPSJydW5uaW5nIix0aGlzLl9lcnJvckhhbmRsZXI9ZnVuY3Rpb24odCl7ci5fcmVxdWVzdD12b2lkIDAsci5fY2h1bmtNdWx0aXBsaWVyPTEsdC5fY29kZUVxdWFscygiY2FuY2VsZWQiKT8oci5fbmVlZFRvRmV0Y2hTdGF0dXM9ITAsci5jb21wbGV0ZVRyYW5zaXRpb25zXygpKTooci5fZXJyb3I9dCxyLl90cmFuc2l0aW9uKCJlcnJvciIpKX0sdGhpcy5fbWV0YWRhdGFFcnJvckhhbmRsZXI9ZnVuY3Rpb24odCl7ci5fcmVxdWVzdD12b2lkIDAsdC5fY29kZUVxdWFscygiY2FuY2VsZWQiKT9yLmNvbXBsZXRlVHJhbnNpdGlvbnNfKCk6KHIuX2Vycm9yPXQsci5fdHJhbnNpdGlvbigiZXJyb3IiKSl9LHRoaXMuX3Byb21pc2U9bmV3IFByb21pc2UoZnVuY3Rpb24odCxlKXtyLl9yZXNvbHZlPXQsci5fcmVqZWN0PWUsci5fc3RhcnQoKX0pLHRoaXMuX3Byb21pc2UudGhlbihudWxsLGZ1bmN0aW9uKCl7fSl9dmFyIER4PSh4eC5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4iZ3M6Ly8iK3RoaXMuX2xvY2F0aW9uLmJ1Y2tldCsiLyIrdGhpcy5fbG9jYXRpb24ucGF0aH0seHgucHJvdG90eXBlLl9uZXdSZWY9ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IHh4KHQsZSl9LE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh4eC5wcm90b3R5cGUsInJvb3QiLHtnZXQ6ZnVuY3Rpb24oKXt2YXIgdD1uZXcgcUQodGhpcy5fbG9jYXRpb24uYnVja2V0LCIiKTtyZXR1cm4gdGhpcy5fbmV3UmVmKHRoaXMuX3NlcnZpY2UsdCl9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHh4LnByb3RvdHlwZSwiYnVja2V0Iix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2xvY2F0aW9uLmJ1Y2tldH0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoeHgucHJvdG90eXBlLCJmdWxsUGF0aCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9sb2NhdGlvbi5wYXRofSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh4eC5wcm90b3R5cGUsIm5hbWUiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gcngodGhpcy5fbG9jYXRpb24ucGF0aCl9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHh4LnByb3RvdHlwZSwic3RvcmFnZSIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9zZXJ2aWNlfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh4eC5wcm90b3R5cGUsInBhcmVudCIse2dldDpmdW5jdGlvbigpe3ZhciB0PWZ1bmN0aW9uKHQpe2lmKDA9PT10Lmxlbmd0aClyZXR1cm4gbnVsbDt2YXIgZT10Lmxhc3RJbmRleE9mKCIvIik7cmV0dXJuLTE9PT1lPyIiOnQuc2xpY2UoMCxlKX0odGhpcy5fbG9jYXRpb24ucGF0aCk7aWYobnVsbD09PXQpcmV0dXJuIG51bGw7dD1uZXcgcUQodGhpcy5fbG9jYXRpb24uYnVja2V0LHQpO3JldHVybiBuZXcgeHgodGhpcy5fc2VydmljZSx0KX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSx4eC5wcm90b3R5cGUuX3Rocm93SWZSb290PWZ1bmN0aW9uKHQpe2lmKCIiPT09dGhpcy5fbG9jYXRpb24ucGF0aCl0aHJvdyBURCh0KX0seHgpO2Z1bmN0aW9uIHh4KHQsZSl7dGhpcy5fc2VydmljZT10LHRoaXMuX2xvY2F0aW9uPWUgaW5zdGFuY2VvZiBxRD9lOnFELm1ha2VGcm9tVXJsKGUpfWZ1bmN0aW9uIEx4KHQpe3ZhciBlPXtwcmVmaXhlczpbXSxpdGVtczpbXX07cmV0dXJuIGZ1bmN0aW9uIHIoaSxvLHMpe3JldHVybiAkaSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgZSxuO3JldHVybiBaaSh0aGlzLGZ1bmN0aW9uKHQpe3N3aXRjaCh0LmxhYmVsKXtjYXNlIDA6cmV0dXJuWzQsTXgoaSx7cGFnZVRva2VuOnN9KV07Y2FzZSAxOnJldHVybiBlPXQuc2VudCgpLChuPW8ucHJlZml4ZXMpLnB1c2guYXBwbHkobixlLnByZWZpeGVzKSwobj1vLml0ZW1zKS5wdXNoLmFwcGx5KG4sZS5pdGVtcyksbnVsbD09ZS5uZXh0UGFnZVRva2VuP1szLDNdOls0LHIoaSxvLGUubmV4dFBhZ2VUb2tlbildO2Nhc2UgMjp0LnNlbnQoKSx0LmxhYmVsPTM7Y2FzZSAzOnJldHVyblsyXX19KX0pfSh0LGUpLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gZX0pfWZ1bmN0aW9uIE14KGMsaCl7cmV0dXJuICRpKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBhLHU7cmV0dXJuIFppKHRoaXMsZnVuY3Rpb24odCl7c3dpdGNoKHQubGFiZWwpe2Nhc2UgMDpyZXR1cm4gbnVsbCE9aCYmIm51bWJlciI9PXR5cGVvZiBoLm1heFJlc3VsdHMmJnpEKCJvcHRpb25zLm1heFJlc3VsdHMiLDEsMWUzLGgubWF4UmVzdWx0cyksWzQsYy5zdG9yYWdlLl9nZXRBdXRoVG9rZW4oKV07Y2FzZSAxOnJldHVybiBhPXQuc2VudCgpLHU9aHx8e30sZT1jLnN0b3JhZ2Usbj1jLl9sb2NhdGlvbixyPSIvIixpPXUucGFnZVRva2VuLG89dS5tYXhSZXN1bHRzLHM9e30sbi5pc1Jvb3Q/cy5wcmVmaXg9IiI6cy5wcmVmaXg9bi5wYXRoKyIvIixyJiYwPHIubGVuZ3RoJiYocy5kZWxpbWl0ZXI9ciksaSYmKHMucGFnZVRva2VuPWkpLG8mJihzLm1heFJlc3VsdHM9byksaT1RRChuLmJ1Y2tldE9ubHlTZXJ2ZXJVcmwoKSksbz1lLm1heE9wZXJhdGlvblJldHJ5VGltZSwobz1uZXcgZHgoaSwiR0VUIix5eChlLG4uYnVja2V0KSxvKSkudXJsUGFyYW1zPXMsby5lcnJvckhhbmRsZXI9YngobiksWzIsYy5zdG9yYWdlLl9tYWtlUmVxdWVzdChvLGEpLmdldFByb21pc2UoKV19dmFyIGUsbixyLGksbyxzfSl9KX1mdW5jdGlvbiBGeCh1LGMpe3JldHVybiAkaSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgYTtyZXR1cm4gWmkodGhpcyxmdW5jdGlvbih0KXtzd2l0Y2godC5sYWJlbCl7Y2FzZSAwOnJldHVybiB1Ll90aHJvd0lmUm9vdCgidXBkYXRlTWV0YWRhdGEiKSxbNCx1LnN0b3JhZ2UuX2dldEF1dGhUb2tlbigpXTtjYXNlIDE6cmV0dXJuIGE9dC5zZW50KCksZT11LnN0b3JhZ2Usbj11Ll9sb2NhdGlvbixyPWMsaT1heCgpLG89UUQobi5mdWxsU2VydmVyVXJsKCkpLHM9aHgocixpKSxyPWUubWF4T3BlcmF0aW9uUmV0cnlUaW1lLChyPW5ldyBkeChvLCJQQVRDSCIsZ3goZSxpKSxyKSkuaGVhZGVycz17IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb247IGNoYXJzZXQ9dXRmLTgifSxyLmJvZHk9cyxyLmVycm9ySGFuZGxlcj13eChuKSxbMix1LnN0b3JhZ2UuX21ha2VSZXF1ZXN0KHIsYSkuZ2V0UHJvbWlzZSgpXX12YXIgZSxuLHIsaSxvLHN9KX0pfWZ1bmN0aW9uIFV4KGEpe3JldHVybiAkaSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgcztyZXR1cm4gWmkodGhpcyxmdW5jdGlvbih0KXtzd2l0Y2godC5sYWJlbCl7Y2FzZSAwOnJldHVybiBhLl90aHJvd0lmUm9vdCgiZ2V0RG93bmxvYWRVUkwiKSxbNCxhLnN0b3JhZ2UuX2dldEF1dGhUb2tlbigpXTtjYXNlIDE6cmV0dXJuIHM9dC5zZW50KCksZT1hLnN0b3JhZ2Usbj1hLl9sb2NhdGlvbixyPWF4KCksaT1RRChuLmZ1bGxTZXJ2ZXJVcmwoKSksbz1lLm1heE9wZXJhdGlvblJldHJ5VGltZSwobz1uZXcgZHgoaSwiR0VUIixteChlLHIpLG8pKS5lcnJvckhhbmRsZXI9d3gobiksWzIsYS5zdG9yYWdlLl9tYWtlUmVxdWVzdChvLHMpLmdldFByb21pc2UoKS50aGVuKGZ1bmN0aW9uKHQpe2lmKG51bGw9PT10KXRocm93IG5ldyB2RCgibm8tZG93bmxvYWQtdXJsIiwiVGhlIGdpdmVuIGZpbGUgZG9lcyBub3QgaGF2ZSBhbnkgZG93bmxvYWQgVVJMcy4iKTtyZXR1cm4gdH0pXX12YXIgZSxuLHIsaSxvfSl9KX1mdW5jdGlvbiBqeChvKXtyZXR1cm4gJGkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIGk7cmV0dXJuIFppKHRoaXMsZnVuY3Rpb24odCl7c3dpdGNoKHQubGFiZWwpe2Nhc2UgMDpyZXR1cm4gby5fdGhyb3dJZlJvb3QoImRlbGV0ZU9iamVjdCIpLFs0LG8uc3RvcmFnZS5fZ2V0QXV0aFRva2VuKCldO2Nhc2UgMTpyZXR1cm4gaT10LnNlbnQoKSxlPW8uc3RvcmFnZSxuPW8uX2xvY2F0aW9uLHI9UUQobi5mdWxsU2VydmVyVXJsKCkpLGU9ZS5tYXhPcGVyYXRpb25SZXRyeVRpbWUsKGU9bmV3IGR4KHIsIkRFTEVURSIsZnVuY3Rpb24odCxlKXt9LGUpKS5zdWNjZXNzQ29kZXM9WzIwMCwyMDRdLGUuZXJyb3JIYW5kbGVyPXd4KG4pLFsyLG8uc3RvcmFnZS5fbWFrZVJlcXVlc3QoZSxpKS5nZXRQcm9taXNlKCldfXZhciBlLG4scn0pfSl9ZnVuY3Rpb24gcXgodCxlKXt2YXIgbixlPShuPXQuX2xvY2F0aW9uLnBhdGgsZT0oZT1lKS5zcGxpdCgiLyIpLmZpbHRlcihmdW5jdGlvbih0KXtyZXR1cm4gMDx0Lmxlbmd0aH0pLmpvaW4oIi8iKSwwPT09bi5sZW5ndGg/ZTpuKyIvIitlKSxlPW5ldyBxRCh0Ll9sb2NhdGlvbi5idWNrZXQsZSk7cmV0dXJuIG5ldyBEeCh0LnN0b3JhZ2UsZSl9ZnVuY3Rpb24gVngodCl7cmV0dXJuL15bQS1aYS16XSs6XC9cLy8udGVzdCh0KX1mdW5jdGlvbiBCeCh0LGUpe2lmKHQgaW5zdGFuY2VvZiBXeCl7dmFyIG49dDtpZihudWxsPT1uLl9idWNrZXQpdGhyb3cgbmV3IHZEKCJuby1kZWZhdWx0LWJ1Y2tldCIsIk5vIGRlZmF1bHQgYnVja2V0IGZvdW5kLiBEaWQgeW91IHNldCB0aGUgJyIrZEQrIicgcHJvcGVydHkgd2hlbiBpbml0aWFsaXppbmcgdGhlIGFwcD8iKTtuPW5ldyBEeChuLG4uX2J1Y2tldCk7cmV0dXJuIG51bGwhPWU/QngobixlKTpufWlmKHZvaWQgMD09PWUpcmV0dXJuIHQ7aWYoZS5pbmNsdWRlcygiLi4iKSl0aHJvdyBfRCgnYHBhdGhgIHBhcmFtIGNhbm5vdCBjb250YWluICIuLiInKTtyZXR1cm4gcXgodCxlKX1mdW5jdGlvbiBLeCh0LGUpe2lmKGUmJlZ4KGUpKXtpZih0IGluc3RhbmNlb2YgV3gpcmV0dXJuIG5ldyBEeCh0LGUpO3Rocm93IF9EKCJUbyB1c2UgcmVmKHNlcnZpY2UsIHVybCksIHRoZSBmaXJzdCBhcmd1bWVudCBtdXN0IGJlIGEgU3RvcmFnZSBpbnN0YW5jZS4iKX1yZXR1cm4gQngodCxlKX12YXIgV3g9KE9iamVjdC5kZWZpbmVQcm9wZXJ0eShIeC5wcm90b3R5cGUsIm1heFVwbG9hZFJldHJ5VGltZSIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9tYXhVcGxvYWRSZXRyeVRpbWV9LHNldDpmdW5jdGlvbih0KXt6RCgidGltZSIsMCxOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFksdCksdGhpcy5fbWF4VXBsb2FkUmV0cnlUaW1lPXR9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KEh4LnByb3RvdHlwZSwibWF4T3BlcmF0aW9uUmV0cnlUaW1lIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX21heE9wZXJhdGlvblJldHJ5VGltZX0sc2V0OmZ1bmN0aW9uKHQpe3pEKCJ0aW1lIiwwLE51bWJlci5QT1NJVElWRV9JTkZJTklUWSx0KSx0aGlzLl9tYXhPcGVyYXRpb25SZXRyeVRpbWU9dH0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxIeC5wcm90b3R5cGUuX2dldEF1dGhUb2tlbj1mdW5jdGlvbigpe3JldHVybiAkaSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgZTtyZXR1cm4gWmkodGhpcyxmdW5jdGlvbih0KXtzd2l0Y2godC5sYWJlbCl7Y2FzZSAwOnJldHVybihlPXRoaXMuX2F1dGhQcm92aWRlci5nZXRJbW1lZGlhdGUoe29wdGlvbmFsOiEwfSkpP1s0LGUuZ2V0VG9rZW4oKV06WzMsMl07Y2FzZSAxOmlmKG51bGwhPT0oZT10LnNlbnQoKSkpcmV0dXJuWzIsZS5hY2Nlc3NUb2tlbl07dC5sYWJlbD0yO2Nhc2UgMjpyZXR1cm5bMixudWxsXX19KX0pfSxIeC5wcm90b3R5cGUuX2RlbGV0ZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9kZWxldGVkPSEwLHRoaXMuX3JlcXVlc3RzLmZvckVhY2goZnVuY3Rpb24odCl7cmV0dXJuIHQuY2FuY2VsKCl9KSx0aGlzLl9yZXF1ZXN0cy5jbGVhcigpLFByb21pc2UucmVzb2x2ZSgpfSxIeC5wcm90b3R5cGUuX21ha2VTdG9yYWdlUmVmZXJlbmNlPWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgRHgodGhpcyx0KX0sSHgucHJvdG90eXBlLl9tYWtlUmVxdWVzdD1mdW5jdGlvbih0LGUpe3ZhciBuPXRoaXM7aWYodGhpcy5fZGVsZXRlZClyZXR1cm4gbmV3IEJEKElEKCkpO3ZhciByLGksbyxzLGEsdSxjPShyPXQsaT10aGlzLl9hcHBJZCxvPWUscz10aGlzLl9wb29sLGE9dGhpcy5fZmlyZWJhc2VWZXJzaW9uLHU9WUQoci51cmxQYXJhbXMpLHQ9ci51cmwrdSxlPU9iamVjdC5hc3NpZ24oe30sci5oZWFkZXJzKSx1PWUsKGk9aSkmJih1WyJYLUZpcmViYXNlLUdNUElEIl09aSksaT1lLG51bGwhPT0obz1vKSYmMDxvLmxlbmd0aCYmKGkuQXV0aG9yaXphdGlvbj0iRmlyZWJhc2UgIitvKSxhPWEsZVsiWC1GaXJlYmFzZS1TdG9yYWdlLVZlcnNpb24iXT0id2VianMvIisobnVsbCE9YT9hOiJBcHBNYW5hZ2VyIiksbmV3IFhEKHQsci5tZXRob2QsZSxyLmJvZHksci5zdWNjZXNzQ29kZXMsci5hZGRpdGlvbmFsUmV0cnlDb2RlcyxyLmhhbmRsZXIsci5lcnJvckhhbmRsZXIsci50aW1lb3V0LHIucHJvZ3Jlc3NDYWxsYmFjayxzKSk7cmV0dXJuIHRoaXMuX3JlcXVlc3RzLmFkZChjKSxjLmdldFByb21pc2UoKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIG4uX3JlcXVlc3RzLmRlbGV0ZShjKX0sZnVuY3Rpb24oKXtyZXR1cm4gbi5fcmVxdWVzdHMuZGVsZXRlKGMpfSksY30sSHgpO2Z1bmN0aW9uIEh4KHQsZSxuLHIsaSl7dGhpcy5hcHA9dCx0aGlzLl9hdXRoUHJvdmlkZXI9ZSx0aGlzLl9wb29sPW4sdGhpcy5fdXJsPXIsdGhpcy5fZmlyZWJhc2VWZXJzaW9uPWksdGhpcy5fYnVja2V0PW51bGwsdGhpcy5fYXBwSWQ9bnVsbCx0aGlzLl9kZWxldGVkPSExLHRoaXMuX21heE9wZXJhdGlvblJldHJ5VGltZT0xMmU0LHRoaXMuX21heFVwbG9hZFJldHJ5VGltZT02ZTUsdGhpcy5fcmVxdWVzdHM9bmV3IFNldCx0aGlzLl9idWNrZXQ9bnVsbCE9cj9xRC5tYWtlRnJvbUJ1Y2tldFNwZWMocik6bnVsbD09KHI9bnVsbD09KHI9dGhpcy5hcHAub3B0aW9ucyk/dm9pZCAwOnJbZERdKT9udWxsOnFELm1ha2VGcm9tQnVja2V0U3BlYyhyKX1mdW5jdGlvbiBHeCh0LGUsbil7cmV0dXJuIGU9ZSxuPW4sKHQ9dCkuX3Rocm93SWZSb290KCJ1cGxvYWRCeXRlc1Jlc3VtYWJsZSIpLG5ldyBQeCh0LG5ldyB0eChlKSxuKX1mdW5jdGlvbiB6eCh0KXtyZXR1cm4gZnVuY3Rpb24ocil7cmV0dXJuICRpKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBlLG47cmV0dXJuIFppKHRoaXMsZnVuY3Rpb24odCl7c3dpdGNoKHQubGFiZWwpe2Nhc2UgMDpyZXR1cm4gci5fdGhyb3dJZlJvb3QoImdldE1ldGFkYXRhIiksWzQsci5zdG9yYWdlLl9nZXRBdXRoVG9rZW4oKV07Y2FzZSAxOnJldHVybiBlPXQuc2VudCgpLG49X3goci5zdG9yYWdlLHIuX2xvY2F0aW9uLGF4KCkpLFsyLHIuc3RvcmFnZS5fbWFrZVJlcXVlc3QobixlKS5nZXRQcm9taXNlKCldfX0pfSl9KHQpfWZ1bmN0aW9uIFF4KHQsZSl7cmV0dXJuIEt4KHQsZSl9dmFyIFl4PShPYmplY3QuZGVmaW5lUHJvcGVydHkoWHgucHJvdG90eXBlLCJieXRlc1RyYW5zZmVycmVkIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2RlbGVnYXRlLmJ5dGVzVHJhbnNmZXJyZWR9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KFh4LnByb3RvdHlwZSwibWV0YWRhdGEiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fZGVsZWdhdGUubWV0YWRhdGF9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KFh4LnByb3RvdHlwZSwic3RhdGUiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fZGVsZWdhdGUuc3RhdGV9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KFh4LnByb3RvdHlwZSwidG90YWxCeXRlcyIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9kZWxlZ2F0ZS50b3RhbEJ5dGVzfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLFh4KTtmdW5jdGlvbiBYeCh0LGUsbil7dGhpcy5fZGVsZWdhdGU9dCx0aGlzLnRhc2s9ZSx0aGlzLnJlZj1ufXZhciBKeD0oT2JqZWN0LmRlZmluZVByb3BlcnR5KCR4LnByb3RvdHlwZSwic25hcHNob3QiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IFl4KHRoaXMuX2RlbGVnYXRlLnNuYXBzaG90LHRoaXMsdGhpcy5fcmVmKX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSwkeC5wcm90b3R5cGUudGhlbj1mdW5jdGlvbihlLHQpe3ZhciBuPXRoaXM7cmV0dXJuIHRoaXMuX2RlbGVnYXRlLnRoZW4oZnVuY3Rpb24odCl7aWYoZSlyZXR1cm4gZShuZXcgWXgodCxuLG4uX3JlZikpfSx0KX0sJHgucHJvdG90eXBlLm9uPWZ1bmN0aW9uKHQsZSxuLHIpe3ZhciBpPXRoaXMsbz12b2lkIDA7cmV0dXJuIGUmJihvPSJmdW5jdGlvbiI9PXR5cGVvZiBlP2Z1bmN0aW9uKHQpe3JldHVybiBlKG5ldyBZeCh0LGksaS5fcmVmKSl9OntuZXh0OmUubmV4dD9mdW5jdGlvbih0KXtyZXR1cm4gZS5uZXh0KG5ldyBZeCh0LGksaS5fcmVmKSl9OnZvaWQgMCxjb21wbGV0ZTplLmNvbXBsZXRlfHx2b2lkIDAsZXJyb3I6ZS5lcnJvcnx8dm9pZCAwfSksdGhpcy5fZGVsZWdhdGUub24odCxvLG58fHZvaWQgMCxyfHx2b2lkIDApfSwkeCk7ZnVuY3Rpb24gJHgodCxlKXt0aGlzLl9kZWxlZ2F0ZT10LHRoaXMuX3JlZj1lLHRoaXMuY2FuY2VsPXRoaXMuX2RlbGVnYXRlLmNhbmNlbC5iaW5kKHRoaXMuX2RlbGVnYXRlKSx0aGlzLmNhdGNoPXRoaXMuX2RlbGVnYXRlLmNhdGNoLmJpbmQodGhpcy5fZGVsZWdhdGUpLHRoaXMucGF1c2U9dGhpcy5fZGVsZWdhdGUucGF1c2UuYmluZCh0aGlzLl9kZWxlZ2F0ZSksdGhpcy5yZXN1bWU9dGhpcy5fZGVsZWdhdGUucmVzdW1lLmJpbmQodGhpcy5fZGVsZWdhdGUpfXZhciBaeD0oT2JqZWN0LmRlZmluZVByb3BlcnR5KHRMLnByb3RvdHlwZSwicHJlZml4ZXMiLHtnZXQ6ZnVuY3Rpb24oKXt2YXIgZT10aGlzO3JldHVybiB0aGlzLl9kZWxlZ2F0ZS5wcmVmaXhlcy5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBlTCh0LGUuX3NlcnZpY2UpfSl9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHRMLnByb3RvdHlwZSwiaXRlbXMiLHtnZXQ6ZnVuY3Rpb24oKXt2YXIgZT10aGlzO3JldHVybiB0aGlzLl9kZWxlZ2F0ZS5pdGVtcy5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBlTCh0LGUuX3NlcnZpY2UpfSl9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHRMLnByb3RvdHlwZSwibmV4dFBhZ2VUb2tlbiIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9kZWxlZ2F0ZS5uZXh0UGFnZVRva2VufHxudWxsfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLHRMKTtmdW5jdGlvbiB0TCh0LGUpe3RoaXMuX2RlbGVnYXRlPXQsdGhpcy5fc2VydmljZT1lfXZhciBlTD0oT2JqZWN0LmRlZmluZVByb3BlcnR5KG5MLnByb3RvdHlwZSwibmFtZSIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9kZWxlZ2F0ZS5uYW1lfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuTC5wcm90b3R5cGUsImJ1Y2tldCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9kZWxlZ2F0ZS5idWNrZXR9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KG5MLnByb3RvdHlwZSwiZnVsbFBhdGgiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fZGVsZWdhdGUuZnVsbFBhdGh9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksbkwucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2RlbGVnYXRlLnRvU3RyaW5nKCl9LG5MLnByb3RvdHlwZS5jaGlsZD1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IG5MKHF4KHRoaXMuX2RlbGVnYXRlLHQpLHRoaXMuc3RvcmFnZSl9LE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuTC5wcm90b3R5cGUsInJvb3QiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IG5MKHRoaXMuX2RlbGVnYXRlLnJvb3QsdGhpcy5zdG9yYWdlKX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkobkwucHJvdG90eXBlLCJwYXJlbnQiLHtnZXQ6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl9kZWxlZ2F0ZS5wYXJlbnQ7cmV0dXJuIG51bGw9PXQ/bnVsbDpuZXcgbkwodCx0aGlzLnN0b3JhZ2UpfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLG5MLnByb3RvdHlwZS5wdXQ9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5fdGhyb3dJZlJvb3QoInB1dCIpLG5ldyBKeChHeCh0aGlzLl9kZWxlZ2F0ZSx0LGUpLHRoaXMpfSxuTC5wcm90b3R5cGUucHV0U3RyaW5nPWZ1bmN0aW9uKHQsZSxuKXt2b2lkIDA9PT1lJiYoZT1DRC5SQVcpLHRoaXMuX3Rocm93SWZSb290KCJwdXRTdHJpbmciKTt0PUFEKGUsdCksbj1KaSh7fSxuKTtyZXR1cm4gbnVsbD09bi5jb250ZW50VHlwZSYmbnVsbCE9dC5jb250ZW50VHlwZSYmKG4uY29udGVudFR5cGU9dC5jb250ZW50VHlwZSksbmV3IEp4KG5ldyBQeCh0aGlzLl9kZWxlZ2F0ZSxuZXcgdHgodC5kYXRhLCEwKSxuKSx0aGlzKX0sbkwucHJvdG90eXBlLmxpc3RBbGw9ZnVuY3Rpb24oKXt2YXIgZT10aGlzO3JldHVybiBMeCh0aGlzLl9kZWxlZ2F0ZSkudGhlbihmdW5jdGlvbih0KXtyZXR1cm4gbmV3IFp4KHQsZS5zdG9yYWdlKX0pfSxuTC5wcm90b3R5cGUubGlzdD1mdW5jdGlvbih0KXt2YXIgZT10aGlzO3JldHVybiBNeCh0aGlzLl9kZWxlZ2F0ZSx0fHx2b2lkIDApLnRoZW4oZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBaeCh0LGUuc3RvcmFnZSl9KX0sbkwucHJvdG90eXBlLmdldE1ldGFkYXRhPWZ1bmN0aW9uKCl7cmV0dXJuIHp4KHRoaXMuX2RlbGVnYXRlKX0sbkwucHJvdG90eXBlLnVwZGF0ZU1ldGFkYXRhPWZ1bmN0aW9uKHQpe3JldHVybiBGeCh0aGlzLl9kZWxlZ2F0ZSx0KX0sbkwucHJvdG90eXBlLmdldERvd25sb2FkVVJMPWZ1bmN0aW9uKCl7cmV0dXJuIFV4KHRoaXMuX2RlbGVnYXRlKX0sbkwucHJvdG90eXBlLmRlbGV0ZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLl90aHJvd0lmUm9vdCgiZGVsZXRlIiksangodGhpcy5fZGVsZWdhdGUpfSxuTC5wcm90b3R5cGUuX3Rocm93SWZSb290PWZ1bmN0aW9uKHQpe2lmKCIiPT09dGhpcy5fZGVsZWdhdGUuX2xvY2F0aW9uLnBhdGgpdGhyb3cgVEQodCl9LG5MKTtmdW5jdGlvbiBuTCh0LGUpe3RoaXMuX2RlbGVnYXRlPXQsdGhpcy5zdG9yYWdlPWV9dmFyIHJMPShPYmplY3QuZGVmaW5lUHJvcGVydHkoaUwucHJvdG90eXBlLCJtYXhPcGVyYXRpb25SZXRyeVRpbWUiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fZGVsZWdhdGUubWF4T3BlcmF0aW9uUmV0cnlUaW1lfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShpTC5wcm90b3R5cGUsIm1heFVwbG9hZFJldHJ5VGltZSIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9kZWxlZ2F0ZS5tYXhVcGxvYWRSZXRyeVRpbWV9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksaUwucHJvdG90eXBlLnJlZj1mdW5jdGlvbih0KXtpZihWeCh0KSl0aHJvdyBfRCgicmVmKCkgZXhwZWN0ZWQgYSBjaGlsZCBwYXRoIGJ1dCBnb3QgYSBVUkwsIHVzZSByZWZGcm9tVVJMIGluc3RlYWQuIik7cmV0dXJuIG5ldyBlTChReCh0aGlzLl9kZWxlZ2F0ZSx0KSx0aGlzKX0saUwucHJvdG90eXBlLnJlZkZyb21VUkw9ZnVuY3Rpb24odCl7aWYoIVZ4KHQpKXRocm93IF9EKCJyZWZGcm9tVVJMKCkgZXhwZWN0ZWQgYSBmdWxsIFVSTCBidXQgZ290IGEgY2hpbGQgcGF0aCwgdXNlIHJlZigpIGluc3RlYWQuIik7dHJ5e3FELm1ha2VGcm9tVXJsKHQpfWNhdGNoKHQpe3Rocm93IF9EKCJyZWZGcm9tVXJsKCkgZXhwZWN0ZWQgYSB2YWxpZCBmdWxsIFVSTCBidXQgZ290IGFuIGludmFsaWQgb25lLiIpfXJldHVybiBuZXcgZUwoUXgodGhpcy5fZGVsZWdhdGUsdCksdGhpcyl9LGlMLnByb3RvdHlwZS5zZXRNYXhVcGxvYWRSZXRyeVRpbWU9ZnVuY3Rpb24odCl7dGhpcy5fZGVsZWdhdGUubWF4VXBsb2FkUmV0cnlUaW1lPXR9LGlMLnByb3RvdHlwZS5zZXRNYXhPcGVyYXRpb25SZXRyeVRpbWU9ZnVuY3Rpb24odCl7dGhpcy5fZGVsZWdhdGUubWF4T3BlcmF0aW9uUmV0cnlUaW1lPXR9LGlMKTtmdW5jdGlvbiBpTCh0LGUpe3ZhciBuPXRoaXM7dGhpcy5hcHA9dCx0aGlzLl9kZWxlZ2F0ZT1lLHRoaXMuSU5URVJOQUw9e2RlbGV0ZTpmdW5jdGlvbigpe3JldHVybiBuLl9kZWxlZ2F0ZS5fZGVsZXRlKCl9fX12YXIgb0wsc0w7ZnVuY3Rpb24gYUwodCxlKXt2YXIgbj1lLmluc3RhbmNlSWRlbnRpZmllcixlPXQuZ2V0UHJvdmlkZXIoImFwcCIpLmdldEltbWVkaWF0ZSgpLHQ9dC5nZXRQcm92aWRlcigiYXV0aC1pbnRlcm5hbCIpO3JldHVybiBuZXcgckwoZSxuZXcgV3goZSx0LG5ldyBVRCxuLFhsLlNES19WRVJTSU9OKSl9c0w9e1Rhc2tTdGF0ZTp4RCxUYXNrRXZlbnQ6REQsU3RyaW5nRm9ybWF0OkNELFN0b3JhZ2U6V3gsUmVmZXJlbmNlOmVMfSwob0w9WGwpLklOVEVSTkFMLnJlZ2lzdGVyQ29tcG9uZW50KG5ldyB0cygic3RvcmFnZSIsYUwsIlBVQkxJQyIpLnNldFNlcnZpY2VQcm9wcyhzTCkuc2V0TXVsdGlwbGVJbnN0YW5jZXMoITApKSxvTC5yZWdpc3RlclZlcnNpb24oIkBmaXJlYmFzZS9zdG9yYWdlIiwiMC40LjYiKTt2YXIgdUwsY0wsaEw9IjAuNC45IixsTD0iRkItUEVSRi1UUkFDRS1NRUFTVVJFIixmTD0iQGZpcmViYXNlL3BlcmZvcm1hbmNlL2NvbmZpZyIscEw9IkBmaXJlYmFzZS9wZXJmb3JtYW5jZS9jb25maWdleHBpcmUiLFNuPSJQZXJmb3JtYW5jZSIsR2E9KChHYT17fSlbInRyYWNlIHN0YXJ0ZWQiXT0iVHJhY2UgeyR0cmFjZU5hbWV9IHdhcyBzdGFydGVkIGJlZm9yZS4iLEdhWyJ0cmFjZSBzdG9wcGVkIl09IlRyYWNlIHskdHJhY2VOYW1lfSBpcyBub3QgcnVubmluZy4iLEdhWyJub25wb3NpdGl2ZSB0cmFjZSBzdGFydFRpbWUiXT0iVHJhY2UgeyR0cmFjZU5hbWV9IHN0YXJ0VGltZSBzaG91bGQgYmUgcG9zaXRpdmUuIixHYVsibm9ucG9zaXRpdmUgdHJhY2UgZHVyYXRpb24iXT0iVHJhY2UgeyR0cmFjZU5hbWV9IGR1cmF0aW9uIHNob3VsZCBiZSBwb3NpdGl2ZS4iLEdhWyJubyB3aW5kb3ciXT0iV2luZG93IGlzIG5vdCBhdmFpbGFibGUuIixHYVsibm8gYXBwIGlkIl09IkFwcCBpZCBpcyBub3QgYXZhaWxhYmxlLiIsR2FbIm5vIHByb2plY3QgaWQiXT0iUHJvamVjdCBpZCBpcyBub3QgYXZhaWxhYmxlLiIsR2FbIm5vIGFwaSBrZXkiXT0iQXBpIGtleSBpcyBub3QgYXZhaWxhYmxlLiIsR2FbImludmFsaWQgY2MgbG9nIl09IkF0dGVtcHRlZCB0byBxdWV1ZSBpbnZhbGlkIGNjIGV2ZW50IixHYVsiRkIgbm90IGRlZmF1bHQiXT0iUGVyZm9ybWFuY2UgY2FuIG9ubHkgc3RhcnQgd2hlbiBGaXJlYmFzZSBhcHAgaW5zdGFuY2UgaXMgdGhlIGRlZmF1bHQgb25lLiIsR2FbIlJDIHJlc3BvbnNlIG5vdCBvayJdPSJSQyByZXNwb25zZSBpcyBub3Qgb2siLEdhWyJpbnZhbGlkIGF0dHJpYnV0ZSBuYW1lIl09IkF0dHJpYnV0ZSBuYW1lIHskYXR0cmlidXRlTmFtZX0gaXMgaW52YWxpZC4iLEdhWyJpbnZhbGlkIGF0dHJpYnV0ZSB2YWx1ZSJdPSJBdHRyaWJ1dGUgdmFsdWUgeyRhdHRyaWJ1dGVWYWx1ZX0gaXMgaW52YWxpZC4iLEdhWyJpbnZhbGlkIGN1c3RvbSBtZXRyaWMgbmFtZSJdPSJDdXN0b20gbWV0cmljIG5hbWUgeyRjdXN0b21NZXRyaWNOYW1lfSBpcyBpbnZhbGlkIixHYVsiaW52YWxpZCBTdHJpbmcgbWVyZ2VyIGlucHV0Il09IklucHV0IGZvciBTdHJpbmcgbWVyZ2VyIGlzIGludmFsaWQsIGNvbnRhY3Qgc3VwcG9ydCB0ZWFtIHRvIHJlc29sdmUuIixHYSksZEw9bmV3IENvKCJwZXJmb3JtYW5jZSIsU24sR2EpLHZMPW5ldyBwcyhTbik7dkwubG9nTGV2ZWw9YXMuSU5GTzt2YXIgZ0wseUw9KG1MLnByb3RvdHlwZS5nZXRVcmw9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy53aW5kb3dMb2NhdGlvbi5ocmVmLnNwbGl0KCI/IilbMF19LG1MLnByb3RvdHlwZS5tYXJrPWZ1bmN0aW9uKHQpe3RoaXMucGVyZm9ybWFuY2UmJnRoaXMucGVyZm9ybWFuY2UubWFyayYmdGhpcy5wZXJmb3JtYW5jZS5tYXJrKHQpfSxtTC5wcm90b3R5cGUubWVhc3VyZT1mdW5jdGlvbih0LGUsbil7dGhpcy5wZXJmb3JtYW5jZSYmdGhpcy5wZXJmb3JtYW5jZS5tZWFzdXJlJiZ0aGlzLnBlcmZvcm1hbmNlLm1lYXN1cmUodCxlLG4pfSxtTC5wcm90b3R5cGUuZ2V0RW50cmllc0J5VHlwZT1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5wZXJmb3JtYW5jZSYmdGhpcy5wZXJmb3JtYW5jZS5nZXRFbnRyaWVzQnlUeXBlP3RoaXMucGVyZm9ybWFuY2UuZ2V0RW50cmllc0J5VHlwZSh0KTpbXX0sbUwucHJvdG90eXBlLmdldEVudHJpZXNCeU5hbWU9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMucGVyZm9ybWFuY2UmJnRoaXMucGVyZm9ybWFuY2UuZ2V0RW50cmllc0J5TmFtZT90aGlzLnBlcmZvcm1hbmNlLmdldEVudHJpZXNCeU5hbWUodCk6W119LG1MLnByb3RvdHlwZS5nZXRUaW1lT3JpZ2luPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucGVyZm9ybWFuY2UmJih0aGlzLnBlcmZvcm1hbmNlLnRpbWVPcmlnaW58fHRoaXMucGVyZm9ybWFuY2UudGltaW5nLm5hdmlnYXRpb25TdGFydCl9LG1MLnByb3RvdHlwZS5yZXF1aXJlZEFwaXNBdmFpbGFibGU9ZnVuY3Rpb24oKXtyZXR1cm4gZmV0Y2gmJlByb21pc2UmJnRoaXMubmF2aWdhdG9yJiZ0aGlzLm5hdmlnYXRvci5jb29raWVFbmFibGVkPyEhYm8oKXx8KHZMLmluZm8oIkluZGV4ZWREQiBpcyBub3Qgc3VwcG9ydGVkIGJ5IGN1cnJlbnQgYnJvd3N3ZXIiKSwhMSk6KHZMLmluZm8oIkZpcmViYXNlIFBlcmZvcm1hbmNlIGNhbm5vdCBzdGFydCBpZiBicm93c2VyIGRvZXMgbm90IHN1cHBvcnQgZmV0Y2ggYW5kIFByb21pc2Ugb3IgY29va2llIGlzIGRpc2FibGVkLiIpLCExKX0sbUwucHJvdG90eXBlLnNldHVwT2JzZXJ2ZXI9ZnVuY3Rpb24odCxpKXt0aGlzLlBlcmZvcm1hbmNlT2JzZXJ2ZXImJm5ldyB0aGlzLlBlcmZvcm1hbmNlT2JzZXJ2ZXIoZnVuY3Rpb24odCl7Zm9yKHZhciBlPTAsbj10LmdldEVudHJpZXMoKTtlPG4ubGVuZ3RoO2UrKyl7dmFyIHI9bltlXTtpKHIpfX0pLm9ic2VydmUoe2VudHJ5VHlwZXM6W3RdfSl9LG1MLmdldEluc3RhbmNlPWZ1bmN0aW9uKCl7cmV0dXJuIHVMPXZvaWQgMD09PXVMP25ldyBtTChjTCk6dUx9LG1MKTtmdW5jdGlvbiBtTCh0KXtpZighKHRoaXMud2luZG93PXQpKXRocm93IGRMLmNyZWF0ZSgibm8gd2luZG93Iik7dGhpcy5wZXJmb3JtYW5jZT10LnBlcmZvcm1hbmNlLHRoaXMuUGVyZm9ybWFuY2VPYnNlcnZlcj10LlBlcmZvcm1hbmNlT2JzZXJ2ZXIsdGhpcy53aW5kb3dMb2NhdGlvbj10LmxvY2F0aW9uLHRoaXMubmF2aWdhdG9yPXQubmF2aWdhdG9yLHRoaXMuZG9jdW1lbnQ9dC5kb2N1bWVudCx0aGlzLm5hdmlnYXRvciYmdGhpcy5uYXZpZ2F0b3IuY29va2llRW5hYmxlZCYmKHRoaXMubG9jYWxTdG9yYWdlPXQubG9jYWxTdG9yYWdlKSx0LnBlcmZNZXRyaWNzJiZ0LnBlcmZNZXRyaWNzLm9uRmlyc3RJbnB1dERlbGF5JiYodGhpcy5vbkZpcnN0SW5wdXREZWxheT10LnBlcmZNZXRyaWNzLm9uRmlyc3RJbnB1dERlbGF5KX1mdW5jdGlvbiBiTCh0LGUpe3ZhciBuPXQubGVuZ3RoLWUubGVuZ3RoO2lmKG48MHx8MTxuKXRocm93IGRMLmNyZWF0ZSgiaW52YWxpZCBTdHJpbmcgbWVyZ2VyIGlucHV0Iik7Zm9yKHZhciByPVtdLGk9MDtpPHQubGVuZ3RoO2krKylyLnB1c2godC5jaGFyQXQoaSkpLGUubGVuZ3RoPmkmJnIucHVzaChlLmNoYXJBdChpKSk7cmV0dXJuIHIuam9pbigiIil9dmFyIHdMLF9MLElMPShUTC5wcm90b3R5cGUuZ2V0QXBwSWQ9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmZpcmViYXNlQXBwSW5zdGFuY2UmJnRoaXMuZmlyZWJhc2VBcHBJbnN0YW5jZS5vcHRpb25zJiZ0aGlzLmZpcmViYXNlQXBwSW5zdGFuY2Uub3B0aW9ucy5hcHBJZDtpZighdCl0aHJvdyBkTC5jcmVhdGUoIm5vIGFwcCBpZCIpO3JldHVybiB0fSxUTC5wcm90b3R5cGUuZ2V0UHJvamVjdElkPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5maXJlYmFzZUFwcEluc3RhbmNlJiZ0aGlzLmZpcmViYXNlQXBwSW5zdGFuY2Uub3B0aW9ucyYmdGhpcy5maXJlYmFzZUFwcEluc3RhbmNlLm9wdGlvbnMucHJvamVjdElkO2lmKCF0KXRocm93IGRMLmNyZWF0ZSgibm8gcHJvamVjdCBpZCIpO3JldHVybiB0fSxUTC5wcm90b3R5cGUuZ2V0QXBpS2V5PWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5maXJlYmFzZUFwcEluc3RhbmNlJiZ0aGlzLmZpcmViYXNlQXBwSW5zdGFuY2Uub3B0aW9ucyYmdGhpcy5maXJlYmFzZUFwcEluc3RhbmNlLm9wdGlvbnMuYXBpS2V5O2lmKCF0KXRocm93IGRMLmNyZWF0ZSgibm8gYXBpIGtleSIpO3JldHVybiB0fSxUTC5wcm90b3R5cGUuZ2V0RmxUcmFuc3BvcnRGdWxsVXJsPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZmxUcmFuc3BvcnRFbmRwb2ludFVybC5jb25jYXQoIj9rZXk9Iix0aGlzLnRyYW5zcG9ydEtleSl9LFRMLmdldEluc3RhbmNlPWZ1bmN0aW9uKCl7cmV0dXJuIGdMPXZvaWQgMD09PWdMP25ldyBUTDpnTH0sVEwpO2Z1bmN0aW9uIFRMKCl7dGhpcy5pbnN0cnVtZW50YXRpb25FbmFibGVkPSEwLHRoaXMuZGF0YUNvbGxlY3Rpb25FbmFibGVkPSEwLHRoaXMubG9nZ2luZ0VuYWJsZWQ9ITEsdGhpcy50cmFjZXNTYW1wbGluZ1JhdGU9MSx0aGlzLm5ldHdvcmtSZXF1ZXN0c1NhbXBsaW5nUmF0ZT0xLHRoaXMubG9nRW5kUG9pbnRVcmw9Imh0dHBzOi8vZmlyZWJhc2Vsb2dnaW5nLmdvb2dsZWFwaXMuY29tL3YwY2MvbG9nP2Zvcm1hdD1qc29uX3Byb3RvIix0aGlzLmZsVHJhbnNwb3J0RW5kcG9pbnRVcmw9YkwoImh0cy9mcmJzbGdpZ3Aub2dlcHNjbXYvaWVvL2VheWxnIiwidHA6L2llYWVvZ24tYWdvbGFpLm8vMWZybGdsZ2MvbyIpLHRoaXMudHJhbnNwb3J0S2V5PWJMKCJBelNDOHI2UmVpR3FGTXlmdmdvdyIsIklheXgwdS1YVDN2a3NWTS1wSVYiKSx0aGlzLmxvZ1NvdXJjZT00NjIsdGhpcy5sb2dUcmFjZUFmdGVyU2FtcGxpbmc9ITEsdGhpcy5sb2dOZXR3b3JrQWZ0ZXJTYW1wbGluZz0hMSx0aGlzLmNvbmZpZ1RpbWVUb0xpdmU9MTJ9KFNuPV9MPV9MfHx7fSlbU24uVU5LTk9XTj0wXT0iVU5LTk9XTiIsU25bU24uVklTSUJMRT0xXT0iVklTSUJMRSIsU25bU24uSElEREVOPTJdPSJISURERU4iO3ZhciBFTD1bImZpcmViYXNlXyIsImdvb2dsZV8iLCJnYV8iXSxTTD1uZXcgUmVnRXhwKCJeW2EtekEtWl1cXHcqJCIpO2Z1bmN0aW9uIENMKCl7c3dpdGNoKHlMLmdldEluc3RhbmNlKCkuZG9jdW1lbnQudmlzaWJpbGl0eVN0YXRlKXtjYXNlInZpc2libGUiOnJldHVybiBfTC5WSVNJQkxFO2Nhc2UiaGlkZGVuIjpyZXR1cm4gX0wuSElEREVOO2RlZmF1bHQ6cmV0dXJuIF9MLlVOS05PV059fXZhciBOTD0iMC4wLjEiLEFMPXtsb2dnaW5nRW5hYmxlZDohMH0sa0w9IkZJUkVCQVNFX0lOU1RBTExBVElPTlNfQVVUSCI7ZnVuY3Rpb24gUkwodCl7dmFyIG4sZT1mdW5jdGlvbigpe3ZhciB0PXlMLmdldEluc3RhbmNlKCkubG9jYWxTdG9yYWdlO2lmKCF0KXJldHVybjt2YXIgZT10LmdldEl0ZW0ocEwpO2lmKCFlfHwhZnVuY3Rpb24odCl7cmV0dXJuIE51bWJlcih0KT5EYXRlLm5vdygpfShlKSlyZXR1cm47dmFyIG49dC5nZXRJdGVtKGZMKTtpZighbilyZXR1cm47dHJ5e3JldHVybiBKU09OLnBhcnNlKG4pfWNhdGNoKHQpe3JldHVybn19KCk7cmV0dXJuIGU/KE9MKGUpLFByb21pc2UucmVzb2x2ZSgpKToobj10LGZ1bmN0aW9uKCl7dmFyIHQ9SUwuZ2V0SW5zdGFuY2UoKS5pbnN0YWxsYXRpb25zU2VydmljZS5nZXRUb2tlbigpO3JldHVybiB0LnRoZW4oZnVuY3Rpb24odCl7fSksdH0oKS50aGVuKGZ1bmN0aW9uKHQpe3ZhciBlPSJodHRwczovL2ZpcmViYXNlcmVtb3RlY29uZmlnLmdvb2dsZWFwaXMuY29tL3YxL3Byb2plY3RzLyIrSUwuZ2V0SW5zdGFuY2UoKS5nZXRQcm9qZWN0SWQoKSsiL25hbWVzcGFjZXMvZmlyZXBlcmY6ZmV0Y2g/a2V5PSIrSUwuZ2V0SW5zdGFuY2UoKS5nZXRBcGlLZXkoKSx0PW5ldyBSZXF1ZXN0KGUse21ldGhvZDoiUE9TVCIsaGVhZGVyczp7QXV0aG9yaXphdGlvbjprTCsiICIrdH0sYm9keTpKU09OLnN0cmluZ2lmeSh7YXBwX2luc3RhbmNlX2lkOm4sYXBwX2luc3RhbmNlX2lkX3Rva2VuOnQsYXBwX2lkOklMLmdldEluc3RhbmNlKCkuZ2V0QXBwSWQoKSxhcHBfdmVyc2lvbjpoTCxzZGtfdmVyc2lvbjpOTH0pfSk7cmV0dXJuIGZldGNoKHQpLnRoZW4oZnVuY3Rpb24odCl7aWYodC5vaylyZXR1cm4gdC5qc29uKCk7dGhyb3cgZEwuY3JlYXRlKCJSQyByZXNwb25zZSBub3Qgb2siKX0pfSkuY2F0Y2goZnVuY3Rpb24oKXt2TC5pbmZvKFBMKX0pLnRoZW4oT0wpLnRoZW4oZnVuY3Rpb24odCl7dmFyIGU9eUwuZ2V0SW5zdGFuY2UoKS5sb2NhbFN0b3JhZ2U7aWYoIXR8fCFlKXJldHVybjtlLnNldEl0ZW0oZkwsSlNPTi5zdHJpbmdpZnkodCkpLGUuc2V0SXRlbShwTCxTdHJpbmcoRGF0ZS5ub3coKSs2MCpJTC5nZXRJbnN0YW5jZSgpLmNvbmZpZ1RpbWVUb0xpdmUqNjAqMWUzKSl9LGZ1bmN0aW9uKCl7fSkpfXZhciBQTD0iQ291bGQgbm90IGZldGNoIGNvbmZpZywgd2lsbCB1c2UgZGVmYXVsdCBjb25maWdzIjtmdW5jdGlvbiBPTCh0KXtpZighdClyZXR1cm4gdDt2YXIgZT1JTC5nZXRJbnN0YW5jZSgpLG49dC5lbnRyaWVzfHx7fTtyZXR1cm4gZS5sb2dnaW5nRW5hYmxlZD12b2lkIDAhPT1uLmZwcl9lbmFibGVkPyJ0cnVlIj09PVN0cmluZyhuLmZwcl9lbmFibGVkKTpBTC5sb2dnaW5nRW5hYmxlZCxuLmZwcl9sb2dfc291cmNlJiYoZS5sb2dTb3VyY2U9TnVtYmVyKG4uZnByX2xvZ19zb3VyY2UpKSxuLmZwcl9sb2dfZW5kcG9pbnRfdXJsJiYoZS5sb2dFbmRQb2ludFVybD1uLmZwcl9sb2dfZW5kcG9pbnRfdXJsKSxuLmZwcl9sb2dfdHJhbnNwb3J0X2tleSYmKGUudHJhbnNwb3J0S2V5PW4uZnByX2xvZ190cmFuc3BvcnRfa2V5KSx2b2lkIDAhPT1uLmZwcl92Y19uZXR3b3JrX3JlcXVlc3Rfc2FtcGxpbmdfcmF0ZSYmKGUubmV0d29ya1JlcXVlc3RzU2FtcGxpbmdSYXRlPU51bWJlcihuLmZwcl92Y19uZXR3b3JrX3JlcXVlc3Rfc2FtcGxpbmdfcmF0ZSkpLHZvaWQgMCE9PW4uZnByX3ZjX3RyYWNlX3NhbXBsaW5nX3JhdGUmJihlLnRyYWNlc1NhbXBsaW5nUmF0ZT1OdW1iZXIobi5mcHJfdmNfdHJhY2Vfc2FtcGxpbmdfcmF0ZSkpLGUubG9nVHJhY2VBZnRlclNhbXBsaW5nPURMKGUudHJhY2VzU2FtcGxpbmdSYXRlKSxlLmxvZ05ldHdvcmtBZnRlclNhbXBsaW5nPURMKGUubmV0d29ya1JlcXVlc3RzU2FtcGxpbmdSYXRlKSx0fWZ1bmN0aW9uIERMKHQpe3JldHVybiBNYXRoLnJhbmRvbSgpPD10fXZhciB4TCxMTD0xO2Z1bmN0aW9uIE1MKCl7cmV0dXJuIExMPTIseEw9eEx8fGZ1bmN0aW9uKCl7dmFyIG49eUwuZ2V0SW5zdGFuY2UoKS5kb2N1bWVudDtyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24odCl7dmFyIGU7biYmImNvbXBsZXRlIiE9PW4ucmVhZHlTdGF0ZT8oZT1mdW5jdGlvbigpeyJjb21wbGV0ZSI9PT1uLnJlYWR5U3RhdGUmJihuLnJlbW92ZUV2ZW50TGlzdGVuZXIoInJlYWR5c3RhdGVjaGFuZ2UiLGUpLHQoKSl9LG4uYWRkRXZlbnRMaXN0ZW5lcigicmVhZHlzdGF0ZWNoYW5nZSIsZSkpOnQoKX0pfSgpLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4odD1JTC5nZXRJbnN0YW5jZSgpLmluc3RhbGxhdGlvbnNTZXJ2aWNlLmdldElkKCkpLnRoZW4oZnVuY3Rpb24odCl7d0w9dH0pLHQ7dmFyIHR9KS50aGVuKFJMKS50aGVuKEZMLEZMKX1mdW5jdGlvbiBGTCgpe0xMPTN9dmFyIFVMLGpMPTFlNCxxTD01NTAwLFZMPTMsQkw9MWUzLEtMPVZMLFdMPVtdLEhMPSExO2Z1bmN0aW9uIEdMKHQpe3NldFRpbWVvdXQoZnVuY3Rpb24oKXt2YXIgdCxlO2lmKDAhPT1LTClyZXR1cm4gV0wubGVuZ3RoPyh0PVdMLnNwbGljZSgwLEJMKSxlPXQubWFwKGZ1bmN0aW9uKHQpe3JldHVybntzb3VyY2VfZXh0ZW5zaW9uX2pzb25fcHJvdG8zOnQubWVzc2FnZSxldmVudF90aW1lX21zOlN0cmluZyh0LmV2ZW50VGltZSl9fSksdm9pZCBmdW5jdGlvbih0LHIpe3JldHVybiBmdW5jdGlvbih0KXt2YXIgZT1JTC5nZXRJbnN0YW5jZSgpLmdldEZsVHJhbnNwb3J0RnVsbFVybCgpO3JldHVybiBmZXRjaChlLHttZXRob2Q6IlBPU1QiLGJvZHk6SlNPTi5zdHJpbmdpZnkodCl9KX0odCkudGhlbihmdW5jdGlvbih0KXtyZXR1cm4gdC5va3x8dkwuaW5mbygiQ2FsbCB0byBGaXJlYmFzZSBiYWNrZW5kIGZhaWxlZC4iKSx0Lmpzb24oKX0pLnRoZW4oZnVuY3Rpb24odCl7dmFyIGU9TnVtYmVyKHQubmV4dFJlcXVlc3RXYWl0TWlsbGlzKSxuPWpMO2lzTmFOKGUpfHwobj1NYXRoLm1heChlLG4pKTt0PXQubG9nUmVzcG9uc2VEZXRhaWxzO0FycmF5LmlzQXJyYXkodCkmJjA8dC5sZW5ndGgmJiJSRVRSWV9SRVFVRVNUX0xBVEVSIj09PXRbMF0ucmVzcG9uc2VBY3Rpb24mJihXTD1ubyhubyhbXSxyKSxXTCksdkwuaW5mbygiUmV0cnkgdHJhbnNwb3J0IHJlcXVlc3QgbGF0ZXIuIikpLEtMPVZMLEdMKG4pfSl9KHtyZXF1ZXN0X3RpbWVfbXM6U3RyaW5nKERhdGUubm93KCkpLGNsaWVudF9pbmZvOntjbGllbnRfdHlwZToxLGpzX2NsaWVudF9pbmZvOnt9fSxsb2dfc291cmNlOklMLmdldEluc3RhbmNlKCkubG9nU291cmNlLGxvZ19ldmVudDplfSx0KS5jYXRjaChmdW5jdGlvbigpe1dMPW5vKG5vKFtdLHQpLFdMKSxLTC0tLHZMLmluZm8oIlRyaWVzIGxlZnQ6ICIrS0wrIi4iKSxHTChqTCl9KSk6R0woakwpfSx0KX1mdW5jdGlvbiB6TChuKXtyZXR1cm4gZnVuY3Rpb24oKXtmb3IodmFyIHQ9W10sZT0wO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspdFtlXT1hcmd1bWVudHNbZV07IWZ1bmN0aW9uKHQpe2lmKCF0LmV2ZW50VGltZXx8IXQubWVzc2FnZSl0aHJvdyBkTC5jcmVhdGUoImludmFsaWQgY2MgbG9nIik7V0w9bm8obm8oW10sV0wpLFt0XSl9KHttZXNzYWdlOm4uYXBwbHkodm9pZCAwLHQpLGV2ZW50VGltZTpEYXRlLm5vdygpfSl9fWZ1bmN0aW9uIFFMKHQsZSl7KFVMPVVMfHx6TChKTCkpKHQsZSl9ZnVuY3Rpb24gWUwodCl7dmFyIGU9SUwuZ2V0SW5zdGFuY2UoKTshZS5pbnN0cnVtZW50YXRpb25FbmFibGVkJiZ0LmlzQXV0b3x8KGUuZGF0YUNvbGxlY3Rpb25FbmFibGVkfHx0LmlzQXV0bykmJnlMLmdldEluc3RhbmNlKCkucmVxdWlyZWRBcGlzQXZhaWxhYmxlKCkmJih0LmlzQXV0byYmQ0woKSE9PV9MLlZJU0lCTEV8fCgzPT09TEw/WEwodCk6TUwoKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIFhMKHQpfSxmdW5jdGlvbigpe3JldHVybiBYTCh0KX0pKSl9ZnVuY3Rpb24gWEwodCl7dmFyIGU7IXdMfHwoZT1JTC5nZXRJbnN0YW5jZSgpKS5sb2dnaW5nRW5hYmxlZCYmZS5sb2dUcmFjZUFmdGVyU2FtcGxpbmcmJnNldFRpbWVvdXQoZnVuY3Rpb24oKXtyZXR1cm4gUUwodCwxKX0sMCl9ZnVuY3Rpb24gSkwodCxlKXtyZXR1cm4oMD09PWU/ZnVuY3Rpb24odCl7dD17dXJsOnQudXJsLGh0dHBfbWV0aG9kOnQuaHR0cE1ldGhvZHx8MCxodHRwX3Jlc3BvbnNlX2NvZGU6MjAwLHJlc3BvbnNlX3BheWxvYWRfYnl0ZXM6dC5yZXNwb25zZVBheWxvYWRCeXRlcyxjbGllbnRfc3RhcnRfdGltZV91czp0LnN0YXJ0VGltZVVzLHRpbWVfdG9fcmVzcG9uc2VfaW5pdGlhdGVkX3VzOnQudGltZVRvUmVzcG9uc2VJbml0aWF0ZWRVcyx0aW1lX3RvX3Jlc3BvbnNlX2NvbXBsZXRlZF91czp0LnRpbWVUb1Jlc3BvbnNlQ29tcGxldGVkVXN9LHQ9e2FwcGxpY2F0aW9uX2luZm86JEwoKSxuZXR3b3JrX3JlcXVlc3RfbWV0cmljOnR9O3JldHVybiBKU09OLnN0cmluZ2lmeSh0KX06ZnVuY3Rpb24odCl7dmFyIGU9e25hbWU6dC5uYW1lLGlzX2F1dG86dC5pc0F1dG8sY2xpZW50X3N0YXJ0X3RpbWVfdXM6dC5zdGFydFRpbWVVcyxkdXJhdGlvbl91czp0LmR1cmF0aW9uVXN9OzAhPT1PYmplY3Qua2V5cyh0LmNvdW50ZXJzKS5sZW5ndGgmJihlLmNvdW50ZXJzPXQuY291bnRlcnMpO3Q9dC5nZXRBdHRyaWJ1dGVzKCk7MCE9PU9iamVjdC5rZXlzKHQpLmxlbmd0aCYmKGUuY3VzdG9tX2F0dHJpYnV0ZXM9dCk7ZT17YXBwbGljYXRpb25faW5mbzokTCgpLHRyYWNlX21ldHJpYzplfTtyZXR1cm4gSlNPTi5zdHJpbmdpZnkoZSl9KSh0KX1mdW5jdGlvbiAkTCgpe3JldHVybntnb29nbGVfYXBwX2lkOklMLmdldEluc3RhbmNlKCkuZ2V0QXBwSWQoKSxhcHBfaW5zdGFuY2VfaWQ6d0wsd2ViX2FwcF9pbmZvOntzZGtfdmVyc2lvbjpoTCxwYWdlX3VybDp5TC5nZXRJbnN0YW5jZSgpLmdldFVybCgpLHNlcnZpY2Vfd29ya2VyX3N0YXR1czoic2VydmljZVdvcmtlciJpbih0PXlMLmdldEluc3RhbmNlKCkubmF2aWdhdG9yKT90LnNlcnZpY2VXb3JrZXIuY29udHJvbGxlcj8yOjM6MSx2aXNpYmlsaXR5X3N0YXRlOkNMKCksZWZmZWN0aXZlX2Nvbm5lY3Rpb25fdHlwZTpmdW5jdGlvbigpe3ZhciB0PXlMLmdldEluc3RhbmNlKCkubmF2aWdhdG9yLmNvbm5lY3Rpb247c3dpdGNoKHQmJnQuZWZmZWN0aXZlVHlwZSl7Y2FzZSJzbG93LTJnIjpyZXR1cm4gMTtjYXNlIjJnIjpyZXR1cm4gMjtjYXNlIjNnIjpyZXR1cm4gMztjYXNlIjRnIjpyZXR1cm4gNDtkZWZhdWx0OnJldHVybiAwfX0oKX0sYXBwbGljYXRpb25fcHJvY2Vzc19zdGF0ZTowfTt2YXIgdH12YXIgWkw9WyJfZnAiLCJfZmNwIiwiX2ZpZCJdO3ZhciB0TT0oZU0ucHJvdG90eXBlLnN0YXJ0PWZ1bmN0aW9uKCl7aWYoMSE9PXRoaXMuc3RhdGUpdGhyb3cgZEwuY3JlYXRlKCJ0cmFjZSBzdGFydGVkIix7dHJhY2VOYW1lOnRoaXMubmFtZX0pO3RoaXMuYXBpLm1hcmsodGhpcy50cmFjZVN0YXJ0TWFyayksdGhpcy5zdGF0ZT0yfSxlTS5wcm90b3R5cGUuc3RvcD1mdW5jdGlvbigpe2lmKDIhPT10aGlzLnN0YXRlKXRocm93IGRMLmNyZWF0ZSgidHJhY2Ugc3RvcHBlZCIse3RyYWNlTmFtZTp0aGlzLm5hbWV9KTt0aGlzLnN0YXRlPTMsdGhpcy5hcGkubWFyayh0aGlzLnRyYWNlU3RvcE1hcmspLHRoaXMuYXBpLm1lYXN1cmUodGhpcy50cmFjZU1lYXN1cmUsdGhpcy50cmFjZVN0YXJ0TWFyayx0aGlzLnRyYWNlU3RvcE1hcmspLHRoaXMuY2FsY3VsYXRlVHJhY2VNZXRyaWNzKCksWUwodGhpcyl9LGVNLnByb3RvdHlwZS5yZWNvcmQ9ZnVuY3Rpb24odCxlLG4pe2lmKHQ8PTApdGhyb3cgZEwuY3JlYXRlKCJub25wb3NpdGl2ZSB0cmFjZSBzdGFydFRpbWUiLHt0cmFjZU5hbWU6dGhpcy5uYW1lfSk7aWYoZTw9MCl0aHJvdyBkTC5jcmVhdGUoIm5vbnBvc2l0aXZlIHRyYWNlIGR1cmF0aW9uIix7dHJhY2VOYW1lOnRoaXMubmFtZX0pO2lmKHRoaXMuZHVyYXRpb25Vcz1NYXRoLmZsb29yKDFlMyplKSx0aGlzLnN0YXJ0VGltZVVzPU1hdGguZmxvb3IoMWUzKnQpLG4mJm4uYXR0cmlidXRlcyYmKHRoaXMuY3VzdG9tQXR0cmlidXRlcz1KaSh7fSxuLmF0dHJpYnV0ZXMpKSxuJiZuLm1ldHJpY3MpZm9yKHZhciByPTAsaT1PYmplY3Qua2V5cyhuLm1ldHJpY3MpO3I8aS5sZW5ndGg7cisrKXt2YXIgbz1pW3JdO2lzTmFOKE51bWJlcihuLm1ldHJpY3Nbb10pKXx8KHRoaXMuY291bnRlcnNbb109TnVtYmVyKE1hdGguZmxvb3Iobi5tZXRyaWNzW29dKSkpfVlMKHRoaXMpfSxlTS5wcm90b3R5cGUuaW5jcmVtZW50TWV0cmljPWZ1bmN0aW9uKHQsZSl7dm9pZCAwPT09ZSYmKGU9MSksdm9pZCAwPT09dGhpcy5jb3VudGVyc1t0XT90aGlzLnB1dE1ldHJpYyh0LGUpOnRoaXMucHV0TWV0cmljKHQsdGhpcy5jb3VudGVyc1t0XStlKX0sZU0ucHJvdG90eXBlLnB1dE1ldHJpYz1mdW5jdGlvbih0LGUpe2lmKG49dCxyPXRoaXMubmFtZSwwPT09bi5sZW5ndGh8fDEwMDxuLmxlbmd0aHx8IShyJiZyLnN0YXJ0c1dpdGgoIl93dF8iKSYmLTE8WkwuaW5kZXhPZihuKSkmJm4uc3RhcnRzV2l0aCgiXyIpKXRocm93IGRMLmNyZWF0ZSgiaW52YWxpZCBjdXN0b20gbWV0cmljIG5hbWUiLHtjdXN0b21NZXRyaWNOYW1lOnR9KTt2YXIgbixyO3RoaXMuY291bnRlcnNbdF09KHQ9ZSwoZT1NYXRoLmZsb29yKHQpKTx0JiZ2TC5pbmZvKCJNZXRyaWMgdmFsdWUgc2hvdWxkIGJlIGFuIEludGVnZXIsIHNldHRpbmcgdGhlIHZhbHVlIGFzIDogIitlKyIuIiksZSl9LGVNLnByb3RvdHlwZS5nZXRNZXRyaWM9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuY291bnRlcnNbdF18fDB9LGVNLnByb3RvdHlwZS5wdXRBdHRyaWJ1dGU9ZnVuY3Rpb24odCxlKXt2YXIgbixyLGk9ISgwPT09KG49dCkubGVuZ3RofHw0MDxuLmxlbmd0aCkmJighRUwuc29tZShmdW5jdGlvbih0KXtyZXR1cm4gbi5zdGFydHNXaXRoKHQpfSkmJiEhbi5tYXRjaChTTCkpLHI9MCE9PShyPWUpLmxlbmd0aCYmci5sZW5ndGg8PTEwMDtpZihpJiZyKXRoaXMuY3VzdG9tQXR0cmlidXRlc1t0XT1lO2Vsc2V7aWYoIWkpdGhyb3cgZEwuY3JlYXRlKCJpbnZhbGlkIGF0dHJpYnV0ZSBuYW1lIix7YXR0cmlidXRlTmFtZTp0fSk7aWYoIXIpdGhyb3cgZEwuY3JlYXRlKCJpbnZhbGlkIGF0dHJpYnV0ZSB2YWx1ZSIse2F0dHJpYnV0ZVZhbHVlOmV9KX19LGVNLnByb3RvdHlwZS5nZXRBdHRyaWJ1dGU9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuY3VzdG9tQXR0cmlidXRlc1t0XX0sZU0ucHJvdG90eXBlLnJlbW92ZUF0dHJpYnV0ZT1mdW5jdGlvbih0KXt2b2lkIDAhPT10aGlzLmN1c3RvbUF0dHJpYnV0ZXNbdF0mJmRlbGV0ZSB0aGlzLmN1c3RvbUF0dHJpYnV0ZXNbdF19LGVNLnByb3RvdHlwZS5nZXRBdHRyaWJ1dGVzPWZ1bmN0aW9uKCl7cmV0dXJuIEppKHt9LHRoaXMuY3VzdG9tQXR0cmlidXRlcyl9LGVNLnByb3RvdHlwZS5zZXRTdGFydFRpbWU9ZnVuY3Rpb24odCl7dGhpcy5zdGFydFRpbWVVcz10fSxlTS5wcm90b3R5cGUuc2V0RHVyYXRpb249ZnVuY3Rpb24odCl7dGhpcy5kdXJhdGlvblVzPXR9LGVNLnByb3RvdHlwZS5jYWxjdWxhdGVUcmFjZU1ldHJpY3M9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmFwaS5nZXRFbnRyaWVzQnlOYW1lKHRoaXMudHJhY2VNZWFzdXJlKSx0PXQmJnRbMF07dCYmKHRoaXMuZHVyYXRpb25Vcz1NYXRoLmZsb29yKDFlMyp0LmR1cmF0aW9uKSx0aGlzLnN0YXJ0VGltZVVzPU1hdGguZmxvb3IoMWUzKih0LnN0YXJ0VGltZSt0aGlzLmFwaS5nZXRUaW1lT3JpZ2luKCkpKSl9LGVNLmNyZWF0ZU9vYlRyYWNlPWZ1bmN0aW9uKHQsZSxuKXt2YXIgcixpPXlMLmdldEluc3RhbmNlKCkuZ2V0VXJsKCk7aSYmKHI9bmV3IGVNKCJfd3RfIitpLCEwKSxpPU1hdGguZmxvb3IoMWUzKnlMLmdldEluc3RhbmNlKCkuZ2V0VGltZU9yaWdpbigpKSxyLnNldFN0YXJ0VGltZShpKSx0JiZ0WzBdJiYoci5zZXREdXJhdGlvbihNYXRoLmZsb29yKDFlMyp0WzBdLmR1cmF0aW9uKSksci5wdXRNZXRyaWMoImRvbUludGVyYWN0aXZlIixNYXRoLmZsb29yKDFlMyp0WzBdLmRvbUludGVyYWN0aXZlKSksci5wdXRNZXRyaWMoImRvbUNvbnRlbnRMb2FkZWRFdmVudEVuZCIsTWF0aC5mbG9vcigxZTMqdFswXS5kb21Db250ZW50TG9hZGVkRXZlbnRFbmQpKSxyLnB1dE1ldHJpYygibG9hZEV2ZW50RW5kIixNYXRoLmZsb29yKDFlMyp0WzBdLmxvYWRFdmVudEVuZCkpKSxlJiYoKHQ9ZS5maW5kKGZ1bmN0aW9uKHQpe3JldHVybiJmaXJzdC1wYWludCI9PT10Lm5hbWV9KSkmJnQuc3RhcnRUaW1lJiZyLnB1dE1ldHJpYygiX2ZwIixNYXRoLmZsb29yKDFlMyp0LnN0YXJ0VGltZSkpLChlPWUuZmluZChmdW5jdGlvbih0KXtyZXR1cm4iZmlyc3QtY29udGVudGZ1bC1wYWludCI9PT10Lm5hbWV9KSkmJmUuc3RhcnRUaW1lJiZyLnB1dE1ldHJpYygiX2ZjcCIsTWF0aC5mbG9vcigxZTMqZS5zdGFydFRpbWUpKSxuJiZyLnB1dE1ldHJpYygiX2ZpZCIsTWF0aC5mbG9vcigxZTMqbikpKSxZTChyKSl9LGVNLmNyZWF0ZVVzZXJUaW1pbmdUcmFjZT1mdW5jdGlvbih0KXtZTChuZXcgZU0odCwhMSx0KSl9LGVNKTtmdW5jdGlvbiBlTSh0LGUsbil7dm9pZCAwPT09ZSYmKGU9ITEpLHRoaXMubmFtZT10LHRoaXMuaXNBdXRvPWUsdGhpcy5zdGF0ZT0xLHRoaXMuY3VzdG9tQXR0cmlidXRlcz17fSx0aGlzLmNvdW50ZXJzPXt9LHRoaXMuYXBpPXlMLmdldEluc3RhbmNlKCksdGhpcy5yYW5kb21JZD1NYXRoLmZsb29yKDFlNipNYXRoLnJhbmRvbSgpKSx0aGlzLmlzQXV0b3x8KHRoaXMudHJhY2VTdGFydE1hcms9IkZCLVBFUkYtVFJBQ0UtU1RBUlQtIit0aGlzLnJhbmRvbUlkKyItIit0aGlzLm5hbWUsdGhpcy50cmFjZVN0b3BNYXJrPSJGQi1QRVJGLVRSQUNFLVNUT1AtIit0aGlzLnJhbmRvbUlkKyItIit0aGlzLm5hbWUsdGhpcy50cmFjZU1lYXN1cmU9bnx8bEwrIi0iK3RoaXMucmFuZG9tSWQrIi0iK3RoaXMubmFtZSxuJiZ0aGlzLmNhbGN1bGF0ZVRyYWNlTWV0cmljcygpKX1mdW5jdGlvbiBuTSh0KXt2YXIgZSxuLHIsaT10O2kmJnZvaWQgMCE9PWkucmVzcG9uc2VTdGFydCYmKG49eUwuZ2V0SW5zdGFuY2UoKS5nZXRUaW1lT3JpZ2luKCkscj1NYXRoLmZsb29yKDFlMyooaS5zdGFydFRpbWUrbikpLHQ9aS5yZXNwb25zZVN0YXJ0P01hdGguZmxvb3IoMWUzKihpLnJlc3BvbnNlU3RhcnQtaS5zdGFydFRpbWUpKTp2b2lkIDAsbj1NYXRoLmZsb29yKDFlMyooaS5yZXNwb25zZUVuZC1pLnN0YXJ0VGltZSkpLGk9e3VybDppLm5hbWUmJmkubmFtZS5zcGxpdCgiPyIpWzBdLHJlc3BvbnNlUGF5bG9hZEJ5dGVzOmkudHJhbnNmZXJTaXplLHN0YXJ0VGltZVVzOnIsdGltZVRvUmVzcG9uc2VJbml0aWF0ZWRVczp0LHRpbWVUb1Jlc3BvbnNlQ29tcGxldGVkVXM6bn0sZT1pLChyPUlMLmdldEluc3RhbmNlKCkpLmluc3RydW1lbnRhdGlvbkVuYWJsZWQmJih0PWUudXJsLG49ci5sb2dFbmRQb2ludFVybC5zcGxpdCgiPyIpWzBdLGk9ci5mbFRyYW5zcG9ydEVuZHBvaW50VXJsLnNwbGl0KCI/IilbMF0sdCE9PW4mJnQhPT1pJiZyLmxvZ2dpbmdFbmFibGVkJiZyLmxvZ05ldHdvcmtBZnRlclNhbXBsaW5nJiZzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7cmV0dXJuIFFMKGUsMCl9LDApKSl9dmFyIHJNPTVlMztmdW5jdGlvbiBpTSgpe3dMJiYoc2V0VGltZW91dChmdW5jdGlvbigpe3ZhciB0PXlMLmdldEluc3RhbmNlKCksZT10LmdldEVudHJpZXNCeVR5cGUoIm5hdmlnYXRpb24iKSxuPXQuZ2V0RW50cmllc0J5VHlwZSgicGFpbnQiKTt7dmFyIHI7dC5vbkZpcnN0SW5wdXREZWxheT8ocj1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dE0uY3JlYXRlT29iVHJhY2UoZSxuKSxyPXZvaWQgMH0sck0pLHQub25GaXJzdElucHV0RGVsYXkoZnVuY3Rpb24odCl7ciYmKGNsZWFyVGltZW91dChyKSx0TS5jcmVhdGVPb2JUcmFjZShlLG4sdCkpfSkpOnRNLmNyZWF0ZU9vYlRyYWNlKGUsbil9fSwwKSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Zm9yKHZhciB0PXlMLmdldEluc3RhbmNlKCksZT10LmdldEVudHJpZXNCeVR5cGUoInJlc291cmNlIiksbj0wLHI9ZTtuPHIubGVuZ3RoO24rKyluTShyW25dKTt0LnNldHVwT2JzZXJ2ZXIoInJlc291cmNlIixuTSl9LDApLHNldFRpbWVvdXQoZnVuY3Rpb24oKXtmb3IodmFyIHQ9eUwuZ2V0SW5zdGFuY2UoKSxlPXQuZ2V0RW50cmllc0J5VHlwZSgibWVhc3VyZSIpLG49MCxyPWU7bjxyLmxlbmd0aDtuKyspb00ocltuXSk7dC5zZXR1cE9ic2VydmVyKCJtZWFzdXJlIixvTSl9LDApKX1mdW5jdGlvbiBvTSh0KXt0PXQubmFtZTt0LnN1YnN0cmluZygwLGxMLmxlbmd0aCkhPT1sTCYmdE0uY3JlYXRlVXNlclRpbWluZ1RyYWNlKHQpfXZhciBzTT0oYU0ucHJvdG90eXBlLnRyYWNlPWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgdE0odCl9LE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhTS5wcm90b3R5cGUsImluc3RydW1lbnRhdGlvbkVuYWJsZWQiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gSUwuZ2V0SW5zdGFuY2UoKS5pbnN0cnVtZW50YXRpb25FbmFibGVkfSxzZXQ6ZnVuY3Rpb24odCl7SUwuZ2V0SW5zdGFuY2UoKS5pbnN0cnVtZW50YXRpb25FbmFibGVkPXR9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGFNLnByb3RvdHlwZSwiZGF0YUNvbGxlY3Rpb25FbmFibGVkIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIElMLmdldEluc3RhbmNlKCkuZGF0YUNvbGxlY3Rpb25FbmFibGVkfSxzZXQ6ZnVuY3Rpb24odCl7SUwuZ2V0SW5zdGFuY2UoKS5kYXRhQ29sbGVjdGlvbkVuYWJsZWQ9dH0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxhTSk7ZnVuY3Rpb24gYU0odCl7dGhpcy5hcHA9dCx5TC5nZXRJbnN0YW5jZSgpLnJlcXVpcmVkQXBpc0F2YWlsYWJsZSgpJiZ3bygpLnRoZW4oZnVuY3Rpb24odCl7dCYmKEhMfHwoR0wocUwpLEhMPSEwKSxNTCgpLnRoZW4oaU0saU0pKX0pLmNhdGNoKGZ1bmN0aW9uKHQpe3ZMLmluZm8oIkVudmlyb25tZW50IGRvZXNuJ3Qgc3VwcG9ydCBJbmRleGVkREI6ICIrdCl9KX12YXIgdU07ZnVuY3Rpb24gY00odCxlKXtpZigiW0RFRkFVTFRdIiE9PXQubmFtZSl0aHJvdyBkTC5jcmVhdGUoIkZCIG5vdCBkZWZhdWx0Iik7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiB3aW5kb3cpdGhyb3cgZEwuY3JlYXRlKCJubyB3aW5kb3ciKTtyZXR1cm4gY0w9d2luZG93LElMLmdldEluc3RhbmNlKCkuZmlyZWJhc2VBcHBJbnN0YW5jZT10LElMLmdldEluc3RhbmNlKCkuaW5zdGFsbGF0aW9uc1NlcnZpY2U9ZSxuZXcgc00odCl9KHVNPVhsKS5JTlRFUk5BTC5yZWdpc3RlckNvbXBvbmVudChuZXcgdHMoInBlcmZvcm1hbmNlIixmdW5jdGlvbih0KXt2YXIgZT10LmdldFByb3ZpZGVyKCJhcHAiKS5nZXRJbW1lZGlhdGUoKSx0PXQuZ2V0UHJvdmlkZXIoImluc3RhbGxhdGlvbnMiKS5nZXRJbW1lZGlhdGUoKTtyZXR1cm4gY00oZSx0KX0sIlBVQkxJQyIpKSx1TS5yZWdpc3RlclZlcnNpb24oIkBmaXJlYmFzZS9wZXJmb3JtYW5jZSIsIjAuNC45Iik7dmFyIGhNLGxNLGZNPSJmaXJlYmFzZV9pZCIscE09Im9yaWdpbiIsZE09NmU0LHZNPSJodHRwczovL2ZpcmViYXNlLmdvb2dsZWFwaXMuY29tL3YxYWxwaGEvcHJvamVjdHMvLS9hcHBzL3thcHAtaWR9L3dlYkNvbmZpZyIsZ009Imh0dHBzOi8vd3d3Lmdvb2dsZXRhZ21hbmFnZXIuY29tL2d0YWcvanMiOyhTbj1oTT1oTXx8e30pLkVWRU5UPSJldmVudCIsU24uU0VUPSJzZXQiLFNuLkNPTkZJRz0iY29uZmlnIiwoU249bE09bE18fHt9KS5BRERfU0hJUFBJTkdfSU5GTz0iYWRkX3NoaXBwaW5nX2luZm8iLFNuLkFERF9QQVlNRU5UX0lORk89ImFkZF9wYXltZW50X2luZm8iLFNuLkFERF9UT19DQVJUPSJhZGRfdG9fY2FydCIsU24uQUREX1RPX1dJU0hMSVNUPSJhZGRfdG9fd2lzaGxpc3QiLFNuLkJFR0lOX0NIRUNLT1VUPSJiZWdpbl9jaGVja291dCIsU24uQ0hFQ0tPVVRfUFJPR1JFU1M9ImNoZWNrb3V0X3Byb2dyZXNzIixTbi5FWENFUFRJT049ImV4Y2VwdGlvbiIsU24uR0VORVJBVEVfTEVBRD0iZ2VuZXJhdGVfbGVhZCIsU24uTE9HSU49ImxvZ2luIixTbi5QQUdFX1ZJRVc9InBhZ2VfdmlldyIsU24uUFVSQ0hBU0U9InB1cmNoYXNlIixTbi5SRUZVTkQ9InJlZnVuZCIsU24uUkVNT1ZFX0ZST01fQ0FSVD0icmVtb3ZlX2Zyb21fY2FydCIsU24uU0NSRUVOX1ZJRVc9InNjcmVlbl92aWV3IixTbi5TRUFSQ0g9InNlYXJjaCIsU24uU0VMRUNUX0NPTlRFTlQ9InNlbGVjdF9jb250ZW50IixTbi5TRUxFQ1RfSVRFTT0ic2VsZWN0X2l0ZW0iLFNuLlNFTEVDVF9QUk9NT1RJT049InNlbGVjdF9wcm9tb3Rpb24iLFNuLlNFVF9DSEVDS09VVF9PUFRJT049InNldF9jaGVja291dF9vcHRpb24iLFNuLlNIQVJFPSJzaGFyZSIsU24uU0lHTl9VUD0ic2lnbl91cCIsU24uVElNSU5HX0NPTVBMRVRFPSJ0aW1pbmdfY29tcGxldGUiLFNuLlZJRVdfQ0FSVD0idmlld19jYXJ0IixTbi5WSUVXX0lURU09InZpZXdfaXRlbSIsU24uVklFV19JVEVNX0xJU1Q9InZpZXdfaXRlbV9saXN0IixTbi5WSUVXX1BST01PVElPTj0idmlld19wcm9tb3Rpb24iLFNuLlZJRVdfU0VBUkNIX1JFU1VMVFM9InZpZXdfc2VhcmNoX3Jlc3VsdHMiO3ZhciB5TT1uZXcgcHMoIkBmaXJlYmFzZS9hbmFseXRpY3MiKTtmdW5jdGlvbiBtTShvLHMsYSx1KXtyZXR1cm4gZnVuY3Rpb24obixyLGkpe3JldHVybiAkaSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgZTtyZXR1cm4gWmkodGhpcyxmdW5jdGlvbih0KXtzd2l0Y2godC5sYWJlbCl7Y2FzZSAwOnJldHVybiB0LnRyeXMucHVzaChbMCw2LCw3XSksbiE9PWhNLkVWRU5UP1szLDJdOls0LGZ1bmN0aW9uKHUsYyxoLGwsZil7cmV0dXJuICRpKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBuLHIsZSxpLG8scyxhO3JldHVybiBaaSh0aGlzLGZ1bmN0aW9uKHQpe3N3aXRjaCh0LmxhYmVsKXtjYXNlIDA6cmV0dXJuKHQudHJ5cy5wdXNoKFswLDQsLDVdKSxuPVtdLGYmJmYuc2VuZF90byk/KGE9Zi5zZW5kX3RvLEFycmF5LmlzQXJyYXkoYSl8fChhPVthXSksWzQsUHJvbWlzZS5hbGwoaCldKTpbMywyXTtjYXNlIDE6Zm9yKHI9dC5zZW50KCksZT1mdW5jdGlvbihlKXt2YXIgdD1yLmZpbmQoZnVuY3Rpb24odCl7cmV0dXJuIHQubWVhc3VyZW1lbnRJZD09PWV9KSx0PXQmJmNbdC5hcHBJZF07aWYoIXQpcmV0dXJuIG49W10sImJyZWFrIjtuLnB1c2godCl9LGk9MCxvPWE7aTxvLmxlbmd0aCYmKHM9b1tpXSwiYnJlYWsiIT09ZShzKSk7aSsrKTt0LmxhYmVsPTI7Y2FzZSAyOnJldHVybiAwPT09bi5sZW5ndGgmJihuPU9iamVjdC52YWx1ZXMoYykpLFs0LFByb21pc2UuYWxsKG4pXTtjYXNlIDM6cmV0dXJuIHQuc2VudCgpLHUoaE0uRVZFTlQsbCxmfHx7fSksWzMsNV07Y2FzZSA0OnJldHVybiBhPXQuc2VudCgpLHlNLmVycm9yKGEpLFszLDVdO2Nhc2UgNTpyZXR1cm5bMl19fSl9KX0obyxzLGEscixpKV07Y2FzZSAxOnJldHVybiB0LnNlbnQoKSxbMyw1XTtjYXNlIDI6cmV0dXJuIG4hPT1oTS5DT05GSUc/WzMsNF06WzQsZnVuY3Rpb24ocixpLG8scyxhLHUpe3JldHVybiAkaSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgZSxuO3JldHVybiBaaSh0aGlzLGZ1bmN0aW9uKHQpe3N3aXRjaCh0LmxhYmVsKXtjYXNlIDA6ZT1zW2FdLHQubGFiZWw9MTtjYXNlIDE6cmV0dXJuIHQudHJ5cy5wdXNoKFsxLDcsLDhdKSxlP1s0LGlbZV1dOlszLDNdO2Nhc2UgMjpyZXR1cm4gdC5zZW50KCksWzMsNl07Y2FzZSAzOnJldHVybls0LFByb21pc2UuYWxsKG8pXTtjYXNlIDQ6cmV0dXJuIG49dC5zZW50KCksKG49bi5maW5kKGZ1bmN0aW9uKHQpe3JldHVybiB0Lm1lYXN1cmVtZW50SWQ9PT1hfSkpP1s0LGlbbi5hcHBJZF1dOlszLDZdO2Nhc2UgNTp0LnNlbnQoKSx0LmxhYmVsPTY7Y2FzZSA2OnJldHVyblszLDhdO2Nhc2UgNzpyZXR1cm4gbj10LnNlbnQoKSx5TS5lcnJvcihuKSxbMyw4XTtjYXNlIDg6cmV0dXJuIHIoaE0uQ09ORklHLGEsdSksWzJdfX0pfSl9KG8scyxhLHUscixpKV07Y2FzZSAzOnJldHVybiB0LnNlbnQoKSxbMyw1XTtjYXNlIDQ6byhoTS5TRVQsciksdC5sYWJlbD01O2Nhc2UgNTpyZXR1cm5bMyw3XTtjYXNlIDY6cmV0dXJuIGU9dC5zZW50KCkseU0uZXJyb3IoZSksWzMsN107Y2FzZSA3OnJldHVyblsyXX19KX0pfX12YXIgU249KChTbj17fSlbImFscmVhZHktZXhpc3RzIl09IkEgRmlyZWJhc2UgQW5hbHl0aWNzIGluc3RhbmNlIHdpdGggdGhlIGFwcElkIHskaWR9ICBhbHJlYWR5IGV4aXN0cy4gT25seSBvbmUgRmlyZWJhc2UgQW5hbHl0aWNzIGluc3RhbmNlIGNhbiBiZSBjcmVhdGVkIGZvciBlYWNoIGFwcElkLiIsU25bImFscmVhZHktaW5pdGlhbGl6ZWQiXT0iRmlyZWJhc2UgQW5hbHl0aWNzIGhhcyBhbHJlYWR5IGJlZW4gaW5pdGlhbGl6ZWQuc2V0dGluZ3MoKSBtdXN0IGJlIGNhbGxlZCBiZWZvcmUgaW5pdGlhbGl6aW5nIGFueSBBbmFseXRpY3MgaW5zdGFuY2VvciBpdCB3aWxsIGhhdmUgbm8gZWZmZWN0LiIsU25bImludGVyb3AtY29tcG9uZW50LXJlZy1mYWlsZWQiXT0iRmlyZWJhc2UgQW5hbHl0aWNzIEludGVyb3AgQ29tcG9uZW50IGZhaWxlZCB0byBpbnN0YW50aWF0ZTogeyRyZWFzb259IixTblsiaW52YWxpZC1hbmFseXRpY3MtY29udGV4dCJdPSJGaXJlYmFzZSBBbmFseXRpY3MgaXMgbm90IHN1cHBvcnRlZCBpbiB0aGlzIGVudmlyb25tZW50LiBXcmFwIGluaXRpYWxpemF0aW9uIG9mIGFuYWx5dGljcyBpbiBhbmFseXRpY3MuaXNTdXBwb3J0ZWQoKSB0byBwcmV2ZW50IGluaXRpYWxpemF0aW9uIGluIHVuc3VwcG9ydGVkIGVudmlyb25tZW50cy4gRGV0YWlsczogeyRlcnJvckluZm99IixTblsiaW5kZXhlZGRiLXVuYXZhaWxhYmxlIl09IkluZGV4ZWREQiB1bmF2YWlsYWJsZSBvciByZXN0cmljdGVkIGluIHRoaXMgZW52aXJvbm1lbnQuIFdyYXAgaW5pdGlhbGl6YXRpb24gb2YgYW5hbHl0aWNzIGluIGFuYWx5dGljcy5pc1N1cHBvcnRlZCgpIHRvIHByZXZlbnQgaW5pdGlhbGl6YXRpb24gaW4gdW5zdXBwb3J0ZWQgZW52aXJvbm1lbnRzLiBEZXRhaWxzOiB7JGVycm9ySW5mb30iLFNuWyJmZXRjaC10aHJvdHRsZSJdPSJUaGUgY29uZmlnIGZldGNoIHJlcXVlc3QgdGltZWQgb3V0IHdoaWxlIGluIGFuIGV4cG9uZW50aWFsIGJhY2tvZmYgc3RhdGUuIFVuaXggdGltZXN0YW1wIGluIG1pbGxpc2Vjb25kcyB3aGVuIGZldGNoIHJlcXVlc3QgdGhyb3R0bGluZyBlbmRzOiB7JHRocm90dGxlRW5kVGltZU1pbGxpc30uIixTblsiY29uZmlnLWZldGNoLWZhaWxlZCJdPSJEeW5hbWljIGNvbmZpZyBmZXRjaCBmYWlsZWQ6IFt7JGh0dHBTdGF0dXN9XSB7JHJlc3BvbnNlTWVzc2FnZX0iLFNuWyJuby1hcGkta2V5Il09J1RoZSAiYXBpS2V5IiBmaWVsZCBpcyBlbXB0eSBpbiB0aGUgbG9jYWwgRmlyZWJhc2UgY29uZmlnLiBGaXJlYmFzZSBBbmFseXRpY3MgcmVxdWlyZXMgdGhpcyBmaWVsZCB0b2NvbnRhaW4gYSB2YWxpZCBBUEkga2V5LicsU25bIm5vLWFwcC1pZCJdPSdUaGUgImFwcElkIiBmaWVsZCBpcyBlbXB0eSBpbiB0aGUgbG9jYWwgRmlyZWJhc2UgY29uZmlnLiBGaXJlYmFzZSBBbmFseXRpY3MgcmVxdWlyZXMgdGhpcyBmaWVsZCB0b2NvbnRhaW4gYSB2YWxpZCBhcHAgSUQuJyxTbiksYk09bmV3IENvKCJhbmFseXRpY3MiLCJBbmFseXRpY3MiLFNuKSx3TT0zMDtmdW5jdGlvbiBfTSh0LGUpe3ZvaWQgMD09PXQmJih0PXt9KSx2b2lkIDA9PT1lJiYoZT0xZTMpLHRoaXMudGhyb3R0bGVNZXRhZGF0YT10LHRoaXMuaW50ZXJ2YWxNaWxsaXM9ZX12YXIgSU09bmV3KF9NLnByb3RvdHlwZS5nZXRUaHJvdHRsZU1ldGFkYXRhPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnRocm90dGxlTWV0YWRhdGFbdF19LF9NLnByb3RvdHlwZS5zZXRUaHJvdHRsZU1ldGFkYXRhPWZ1bmN0aW9uKHQsZSl7dGhpcy50aHJvdHRsZU1ldGFkYXRhW3RdPWV9LF9NLnByb3RvdHlwZS5kZWxldGVUaHJvdHRsZU1ldGFkYXRhPWZ1bmN0aW9uKHQpe2RlbGV0ZSB0aGlzLnRocm90dGxlTWV0YWRhdGFbdF19LF9NKTtmdW5jdGlvbiBUTShvKXt2YXIgcztyZXR1cm4gJGkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIGUsbixyLGk7cmV0dXJuIFppKHRoaXMsZnVuY3Rpb24odCl7c3dpdGNoKHQubGFiZWwpe2Nhc2UgMDpyZXR1cm4gZT1vLmFwcElkLGk9by5hcGlLZXksaT17bWV0aG9kOiJHRVQiLGhlYWRlcnM6bmV3IEhlYWRlcnMoe0FjY2VwdDoiYXBwbGljYXRpb24vanNvbiIsIngtZ29vZy1hcGkta2V5IjppfSl9LGU9dk0ucmVwbGFjZSgie2FwcC1pZH0iLGUpLFs0LGZldGNoKGUsaSldO2Nhc2UgMTppZigyMDA9PT0obj10LnNlbnQoKSkuc3RhdHVzfHwzMDQ9PT1uLnN0YXR1cylyZXR1cm5bMyw2XTtyPSIiLHQubGFiZWw9MjtjYXNlIDI6cmV0dXJuIHQudHJ5cy5wdXNoKFsyLDQsLDVdKSxbNCxuLmpzb24oKV07Y2FzZSAzOnJldHVybiBpPXQuc2VudCgpLG51bGwhPT0ocz1pLmVycm9yKSYmdm9pZCAwIT09cyYmcy5tZXNzYWdlJiYocj1pLmVycm9yLm1lc3NhZ2UpLFszLDVdO2Nhc2UgNDpyZXR1cm4gdC5zZW50KCksWzMsNV07Y2FzZSA1OnRocm93IGJNLmNyZWF0ZSgiY29uZmlnLWZldGNoLWZhaWxlZCIse2h0dHBTdGF0dXM6bi5zdGF0dXMscmVzcG9uc2VNZXNzYWdlOnJ9KTtjYXNlIDY6cmV0dXJuWzIsbi5qc29uKCldfX0pfSl9ZnVuY3Rpb24gRU0oYSx1LGMpe3JldHVybiB2b2lkIDA9PT11JiYodT1JTSksJGkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIGUsbixyLGksbyxzPXRoaXM7cmV0dXJuIFppKHRoaXMsZnVuY3Rpb24odCl7aWYoaT1hLm9wdGlvbnMsZT1pLmFwcElkLG49aS5hcGlLZXkscj1pLm1lYXN1cmVtZW50SWQsIWUpdGhyb3cgYk0uY3JlYXRlKCJuby1hcHAtaWQiKTtpZihuKXJldHVybiBpPXUuZ2V0VGhyb3R0bGVNZXRhZGF0YShlKXx8e2JhY2tvZmZDb3VudDowLHRocm90dGxlRW5kVGltZU1pbGxpczpEYXRlLm5vdygpfSxvPW5ldyBOTSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7cmV0dXJuICRpKHMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3JldHVybiBaaSh0aGlzLGZ1bmN0aW9uKHQpe3JldHVybiBvLmFib3J0KCksWzJdfSl9KX0sdm9pZCAwIT09Yz9jOmRNKSxbMixmdW5jdGlvbiBzKGEsdCx1LGMpe3ZhciBoPXQudGhyb3R0bGVFbmRUaW1lTWlsbGlzLGw9dC5iYWNrb2ZmQ291bnQ7dm9pZCAwPT09YyYmKGM9SU0pO3JldHVybiAkaSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgZSxuLHIsaSxvO3JldHVybiBaaSh0aGlzLGZ1bmN0aW9uKHQpe3N3aXRjaCh0LmxhYmVsKXtjYXNlIDA6ZT1hLmFwcElkLG49YS5tZWFzdXJlbWVudElkLHQubGFiZWw9MTtjYXNlIDE6cmV0dXJuIHQudHJ5cy5wdXNoKFsxLDMsLDRdKSxbNCxTTSh1LGgpXTtjYXNlIDI6cmV0dXJuIHQuc2VudCgpLFszLDRdO2Nhc2UgMzppZihpPXQuc2VudCgpLG4pcmV0dXJuIHlNLndhcm4oIlRpbWVkIG91dCBmZXRjaGluZyB0aGlzIEZpcmViYXNlIGFwcCdzIG1lYXN1cmVtZW50IElEIGZyb20gdGhlIHNlcnZlci4gRmFsbGluZyBiYWNrIHRvIHRoZSBtZWFzdXJlbWVudCBJRCAiK24rJyBwcm92aWRlZCBpbiB0aGUgIm1lYXN1cmVtZW50SWQiIGZpZWxkIGluIHRoZSBsb2NhbCBGaXJlYmFzZSBjb25maWcuIFsnK2kubWVzc2FnZSsiXSIpLFsyLHthcHBJZDplLG1lYXN1cmVtZW50SWQ6bn1dO3Rocm93IGk7Y2FzZSA0OnJldHVybiB0LnRyeXMucHVzaChbNCw2LCw3XSksWzQsVE0oYSldO2Nhc2UgNTpyZXR1cm4gbz10LnNlbnQoKSxjLmRlbGV0ZVRocm90dGxlTWV0YWRhdGEoZSksWzIsb107Y2FzZSA2OmlmKENNKHI9dC5zZW50KCkpKXJldHVybiBpPTUwMz09PU51bWJlcihyLmN1c3RvbURhdGEuaHR0cFN0YXR1cyk/JG8obCxjLmludGVydmFsTWlsbGlzLHdNKTokbyhsLGMuaW50ZXJ2YWxNaWxsaXMpLG89e3Rocm90dGxlRW5kVGltZU1pbGxpczpEYXRlLm5vdygpK2ksYmFja29mZkNvdW50OmwrMX0sYy5zZXRUaHJvdHRsZU1ldGFkYXRhKGUsbykseU0uZGVidWcoIkNhbGxpbmcgYXR0ZW1wdEZldGNoIGFnYWluIGluICIraSsiIG1pbGxpcyIpLFsyLHMoYSxvLHUsYyldO2lmKGMuZGVsZXRlVGhyb3R0bGVNZXRhZGF0YShlKSxuKXJldHVybiB5TS53YXJuKCJGYWlsZWQgdG8gZmV0Y2ggdGhpcyBGaXJlYmFzZSBhcHAncyBtZWFzdXJlbWVudCBJRCBmcm9tIHRoZSBzZXJ2ZXIuIEZhbGxpbmcgYmFjayB0byB0aGUgbWVhc3VyZW1lbnQgSUQgIituKycgcHJvdmlkZWQgaW4gdGhlICJtZWFzdXJlbWVudElkIiBmaWVsZCBpbiB0aGUgbG9jYWwgRmlyZWJhc2UgY29uZmlnLiBbJytyLm1lc3NhZ2UrIl0iKSxbMix7YXBwSWQ6ZSxtZWFzdXJlbWVudElkOm59XTt0aHJvdyByO2Nhc2UgNzpyZXR1cm5bMl19fSl9KX0oe2FwcElkOmUsYXBpS2V5Om4sbWVhc3VyZW1lbnRJZDpyfSxpLG8sdSldO2lmKHIpcmV0dXJuWzIse21lYXN1cmVtZW50SWQ6cixhcHBJZDplfV07dGhyb3cgYk0uY3JlYXRlKCJuby1hcGkta2V5Iil9KX0pfWZ1bmN0aW9uIFNNKGksbyl7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHQsZSl7dmFyIG49TWF0aC5tYXgoby1EYXRlLm5vdygpLDApLHI9c2V0VGltZW91dCh0LG4pO2kuYWRkRXZlbnRMaXN0ZW5lcihmdW5jdGlvbigpe2NsZWFyVGltZW91dChyKSxlKGJNLmNyZWF0ZSgiZmV0Y2gtdGhyb3R0bGUiLHt0aHJvdHRsZUVuZFRpbWVNaWxsaXM6b30pKX0pfSl9ZnVuY3Rpb24gQ00odCl7aWYodCBpbnN0YW5jZW9mIEVvJiZ0LmN1c3RvbURhdGEpe3Q9TnVtYmVyKHQuY3VzdG9tRGF0YS5odHRwU3RhdHVzKTtyZXR1cm4gNDI5PT09dHx8NTAwPT09dHx8NTAzPT09dHx8NTA0PT09dH19dmFyIE5NPShBTS5wcm90b3R5cGUuYWRkRXZlbnRMaXN0ZW5lcj1mdW5jdGlvbih0KXt0aGlzLmxpc3RlbmVycy5wdXNoKHQpfSxBTS5wcm90b3R5cGUuYWJvcnQ9ZnVuY3Rpb24oKXt0aGlzLmxpc3RlbmVycy5mb3JFYWNoKGZ1bmN0aW9uKHQpe3JldHVybiB0KCl9KX0sQU0pO2Z1bmN0aW9uIEFNKCl7dGhpcy5saXN0ZW5lcnM9W119ZnVuY3Rpb24ga00oYSx1LGMsaCxsLGYpe3JldHVybiAkaSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgaSxvLHM7cmV0dXJuIFppKHRoaXMsZnVuY3Rpb24odCl7c3dpdGNoKHQubGFiZWwpe2Nhc2UgMDpyZXR1cm4oaT1FTShhKSkudGhlbihmdW5jdGlvbih0KXtjW3QubWVhc3VyZW1lbnRJZF09dC5hcHBJZCxhLm9wdGlvbnMubWVhc3VyZW1lbnRJZCYmdC5tZWFzdXJlbWVudElkIT09YS5vcHRpb25zLm1lYXN1cmVtZW50SWQmJnlNLndhcm4oIlRoZSBtZWFzdXJlbWVudCBJRCBpbiB0aGUgbG9jYWwgRmlyZWJhc2UgY29uZmlnICgiK2Eub3B0aW9ucy5tZWFzdXJlbWVudElkKyIpIGRvZXMgbm90IG1hdGNoIHRoZSBtZWFzdXJlbWVudCBJRCBmZXRjaGVkIGZyb20gdGhlIHNlcnZlciAoIit0Lm1lYXN1cmVtZW50SWQrIikuIFRvIGVuc3VyZSBhbmFseXRpY3MgZXZlbnRzIGFyZSBhbHdheXMgc2VudCB0byB0aGUgY29ycmVjdCBBbmFseXRpY3MgcHJvcGVydHksIHVwZGF0ZSB0aGUgbWVhc3VyZW1lbnQgSUQgZmllbGQgaW4gdGhlIGxvY2FsIGNvbmZpZyBvciByZW1vdmUgaXQgZnJvbSB0aGUgbG9jYWwgY29uZmlnLiIpfSkuY2F0Y2goZnVuY3Rpb24odCl7cmV0dXJuIHlNLmVycm9yKHQpfSksdS5wdXNoKGkpLG89ZnVuY3Rpb24oKXtyZXR1cm4gJGkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIGU7cmV0dXJuIFppKHRoaXMsZnVuY3Rpb24odCl7c3dpdGNoKHQubGFiZWwpe2Nhc2UgMDpyZXR1cm4gYm8oKT9bMywxXTooeU0ud2FybihiTS5jcmVhdGUoImluZGV4ZWRkYi11bmF2YWlsYWJsZSIse2Vycm9ySW5mbzoiSW5kZXhlZERCIGlzIG5vdCBhdmFpbGFibGUgaW4gdGhpcyBlbnZpcm9ubWVudC4ifSkubWVzc2FnZSksWzIsITFdKTtjYXNlIDE6cmV0dXJuIHQudHJ5cy5wdXNoKFsxLDMsLDRdKSxbNCx3bygpXTtjYXNlIDI6cmV0dXJuIHQuc2VudCgpLFszLDRdO2Nhc2UgMzpyZXR1cm4gZT10LnNlbnQoKSx5TS53YXJuKGJNLmNyZWF0ZSgiaW5kZXhlZGRiLXVuYXZhaWxhYmxlIix7ZXJyb3JJbmZvOmV9KS5tZXNzYWdlKSxbMiwhMV07Y2FzZSA0OnJldHVyblsyLCEwXX19KX0pfSgpLnRoZW4oZnVuY3Rpb24odCl7aWYodClyZXR1cm4gaC5nZXRJZCgpfSksWzQsUHJvbWlzZS5hbGwoW2ksb10pXTtjYXNlIDE6cmV0dXJuIHM9dC5zZW50KCksaT1zWzBdLG89c1sxXSxmdW5jdGlvbigpe2Zvcih2YXIgdD13aW5kb3cuZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInNjcmlwdCIpLGU9MCxuPU9iamVjdC52YWx1ZXModCk7ZTxuLmxlbmd0aDtlKyspe3ZhciByPW5bZV07aWYoci5zcmMmJnIuc3JjLmluY2x1ZGVzKGdNKSlyZXR1cm4gcn19KCl8fChlPWYsbj1pLm1lYXN1cmVtZW50SWQsKHI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0IikpLnNyYz1nTSsiP2w9IitlKyImaWQ9IituLHIuYXN5bmM9ITAsZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChyKSksbCgianMiLG5ldyBEYXRlKSwocz17fSlbcE1dPSJmaXJlYmFzZSIscy51cGRhdGU9ITAscz1zLG51bGwhPW8mJihzW2ZNXT1vKSxsKGhNLkNPTkZJRyxpLm1lYXN1cmVtZW50SWQscyksWzIsaS5tZWFzdXJlbWVudElkXX12YXIgZSxuLHJ9KX0pfXZhciBSTSxQTSxPTT17fSxETT1bXSx4TT17fSxMTT0iZGF0YUxheWVyIixNTT0iZ3RhZyIsRk09ITE7ZnVuY3Rpb24gVU0odCl7aWYoRk0pdGhyb3cgYk0uY3JlYXRlKCJhbHJlYWR5LWluaXRpYWxpemVkIik7dC5kYXRhTGF5ZXJOYW1lJiYoTE09dC5kYXRhTGF5ZXJOYW1lKSx0Lmd0YWdOYW1lJiYoTU09dC5ndGFnTmFtZSl9ZnVuY3Rpb24gak0odCxlKXtpPVtdLGdvKCkmJmkucHVzaCgiVGhpcyBpcyBhIGJyb3dzZXIgZXh0ZW5zaW9uIGVudmlyb25tZW50LiIpLF9vKCl8fGkucHVzaCgiQ29va2llcyBhcmUgbm90IGF2YWlsYWJsZS4iKSwwPGkubGVuZ3RoJiYoaT1pLm1hcChmdW5jdGlvbih0LGUpe3JldHVybiIoIisoZSsxKSsiKSAiK3R9KS5qb2luKCIgIiksaT1iTS5jcmVhdGUoImludmFsaWQtYW5hbHl0aWNzLWNvbnRleHQiLHtlcnJvckluZm86aX0pLHlNLndhcm4oaS5tZXNzYWdlKSk7dmFyIG4scixpLG8scyxhLHU9dC5vcHRpb25zLmFwcElkO2lmKCF1KXRocm93IGJNLmNyZWF0ZSgibm8tYXBwLWlkIik7aWYoIXQub3B0aW9ucy5hcGlLZXkpe2lmKCF0Lm9wdGlvbnMubWVhc3VyZW1lbnRJZCl0aHJvdyBiTS5jcmVhdGUoIm5vLWFwaS1rZXkiKTt5TS53YXJuKCdUaGUgImFwaUtleSIgZmllbGQgaXMgZW1wdHkgaW4gdGhlIGxvY2FsIEZpcmViYXNlIGNvbmZpZy4gVGhpcyBpcyBuZWVkZWQgdG8gZmV0Y2ggdGhlIGxhdGVzdCBtZWFzdXJlbWVudCBJRCBmb3IgdGhpcyBGaXJlYmFzZSBhcHAuIEZhbGxpbmcgYmFjayB0byB0aGUgbWVhc3VyZW1lbnQgSUQgJyt0Lm9wdGlvbnMubWVhc3VyZW1lbnRJZCsnIHByb3ZpZGVkIGluIHRoZSAibWVhc3VyZW1lbnRJZCIgZmllbGQgaW4gdGhlIGxvY2FsIEZpcmViYXNlIGNvbmZpZy4nKX1pZihudWxsIT1PTVt1XSl0aHJvdyBiTS5jcmVhdGUoImFscmVhZHktZXhpc3RzIix7aWQ6dX0pO3JldHVybiBGTXx8KHM9TE0sYT1bXSxBcnJheS5pc0FycmF5KHdpbmRvd1tzXSk/YT13aW5kb3dbc106d2luZG93W3NdPWEsbj1PTSxyPURNLGk9eE0sbz1MTSxzPU1NLGE9ZnVuY3Rpb24oKXtmb3IodmFyIHQ9W10sZT0wO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspdFtlXT1hcmd1bWVudHNbZV07d2luZG93W29dLnB1c2goYXJndW1lbnRzKX0sd2luZG93W3NdJiYiZnVuY3Rpb24iPT10eXBlb2Ygd2luZG93W3NdJiYoYT13aW5kb3dbc10pLHdpbmRvd1tzXT1tTShhLG4scixpKSxzPXtndGFnQ29yZTphLHdyYXBwZWRHdGFnOndpbmRvd1tzXX0sUE09cy53cmFwcGVkR3RhZyxSTT1zLmd0YWdDb3JlLEZNPSEwKSxPTVt1XT1rTSh0LERNLHhNLGUsUk0sTE0pLHthcHA6dCxsb2dFdmVudDpmdW5jdGlvbih0LGUsbil7IWZ1bmN0aW9uKG4scixpLG8scyl7cmV0dXJuICRpKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBlO3JldHVybiBaaSh0aGlzLGZ1bmN0aW9uKHQpe3N3aXRjaCh0LmxhYmVsKXtjYXNlIDA6cmV0dXJuIHMmJnMuZ2xvYmFsPyhuKGhNLkVWRU5ULGksbyksWzJdKTpbMywxXTtjYXNlIDE6cmV0dXJuWzQscl07Y2FzZSAyOmU9dC5zZW50KCksZT1KaShKaSh7fSxvKSx7c2VuZF90bzplfSksbihoTS5FVkVOVCxpLGUpLHQubGFiZWw9MztjYXNlIDM6cmV0dXJuWzJdfX0pfSl9KFBNLE9NW3VdLHQsZSxuKS5jYXRjaChmdW5jdGlvbih0KXtyZXR1cm4geU0uZXJyb3IodCl9KX0sc2V0Q3VycmVudFNjcmVlbjpmdW5jdGlvbih0LGUpeyFmdW5jdGlvbihuLHIsaSxvKXtyZXR1cm4gJGkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIGU7cmV0dXJuIFppKHRoaXMsZnVuY3Rpb24odCl7c3dpdGNoKHQubGFiZWwpe2Nhc2UgMDpyZXR1cm4gbyYmby5nbG9iYWw/KG4oaE0uU0VULHtzY3JlZW5fbmFtZTppfSksWzIsUHJvbWlzZS5yZXNvbHZlKCldKTpbMywxXTtjYXNlIDE6cmV0dXJuWzQscl07Y2FzZSAyOmU9dC5zZW50KCksbihoTS5DT05GSUcsZSx7dXBkYXRlOiEwLHNjcmVlbl9uYW1lOml9KSx0LmxhYmVsPTM7Y2FzZSAzOnJldHVyblsyXX19KX0pfShQTSxPTVt1XSx0LGUpLmNhdGNoKGZ1bmN0aW9uKHQpe3JldHVybiB5TS5lcnJvcih0KX0pfSxzZXRVc2VySWQ6ZnVuY3Rpb24odCxlKXshZnVuY3Rpb24obixyLGksbyl7cmV0dXJuICRpKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBlO3JldHVybiBaaSh0aGlzLGZ1bmN0aW9uKHQpe3N3aXRjaCh0LmxhYmVsKXtjYXNlIDA6cmV0dXJuIG8mJm8uZ2xvYmFsPyhuKGhNLlNFVCx7dXNlcl9pZDppfSksWzIsUHJvbWlzZS5yZXNvbHZlKCldKTpbMywxXTtjYXNlIDE6cmV0dXJuWzQscl07Y2FzZSAyOmU9dC5zZW50KCksbihoTS5DT05GSUcsZSx7dXBkYXRlOiEwLHVzZXJfaWQ6aX0pLHQubGFiZWw9MztjYXNlIDM6cmV0dXJuWzJdfX0pfSl9KFBNLE9NW3VdLHQsZSkuY2F0Y2goZnVuY3Rpb24odCl7cmV0dXJuIHlNLmVycm9yKHQpfSl9LHNldFVzZXJQcm9wZXJ0aWVzOmZ1bmN0aW9uKHQsZSl7IWZ1bmN0aW9uKHMsYSx1LGMpe3JldHVybiAkaSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgZSxuLHIsaSxvO3JldHVybiBaaSh0aGlzLGZ1bmN0aW9uKHQpe3N3aXRjaCh0LmxhYmVsKXtjYXNlIDA6aWYoIWN8fCFjLmdsb2JhbClyZXR1cm5bMywxXTtmb3IoZT17fSxuPTAscj1PYmplY3Qua2V5cyh1KTtuPHIubGVuZ3RoO24rKylpPXJbbl0sZVsidXNlcl9wcm9wZXJ0aWVzLiIraV09dVtpXTtyZXR1cm4gcyhoTS5TRVQsZSksWzIsUHJvbWlzZS5yZXNvbHZlKCldO2Nhc2UgMTpyZXR1cm5bNCxhXTtjYXNlIDI6bz10LnNlbnQoKSxzKGhNLkNPTkZJRyxvLHt1cGRhdGU6ITAsdXNlcl9wcm9wZXJ0aWVzOnV9KSx0LmxhYmVsPTM7Y2FzZSAzOnJldHVyblsyXX19KX0pfShQTSxPTVt1XSx0LGUpLmNhdGNoKGZ1bmN0aW9uKHQpe3JldHVybiB5TS5lcnJvcih0KX0pfSxzZXRBbmFseXRpY3NDb2xsZWN0aW9uRW5hYmxlZDpmdW5jdGlvbih0KXshZnVuY3Rpb24obixyKXtyZXR1cm4gJGkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIGU7cmV0dXJuIFppKHRoaXMsZnVuY3Rpb24odCl7c3dpdGNoKHQubGFiZWwpe2Nhc2UgMDpyZXR1cm5bNCxuXTtjYXNlIDE6cmV0dXJuIGU9dC5zZW50KCksd2luZG93WyJnYS1kaXNhYmxlLSIrZV09IXIsWzJdfX0pfSl9KE9NW3VdLHQpLmNhdGNoKGZ1bmN0aW9uKHQpe3JldHVybiB5TS5lcnJvcih0KX0pfSxJTlRFUk5BTDp7ZGVsZXRlOmZ1bmN0aW9uKCl7cmV0dXJuIGRlbGV0ZSBPTVt1XSxQcm9taXNlLnJlc29sdmUoKX19fX12YXIgcU0sVk09ImFuYWx5dGljcyI7ZnVuY3Rpb24gQk0oKXtyZXR1cm4gJGkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7cmV0dXJuIFppKHRoaXMsZnVuY3Rpb24odCl7c3dpdGNoKHQubGFiZWwpe2Nhc2UgMDppZihnbygpKXJldHVyblsyLCExXTtpZighX28oKSlyZXR1cm5bMiwhMV07aWYoIWJvKCkpcmV0dXJuWzIsITFdO3QubGFiZWw9MTtjYXNlIDE6cmV0dXJuIHQudHJ5cy5wdXNoKFsxLDMsLDRdKSxbNCx3bygpXTtjYXNlIDI6cmV0dXJuWzIsdC5zZW50KCldO2Nhc2UgMzpyZXR1cm4gdC5zZW50KCksWzIsITFdO2Nhc2UgNDpyZXR1cm5bMl19fSl9KX0ocU09WGwpLklOVEVSTkFMLnJlZ2lzdGVyQ29tcG9uZW50KG5ldyB0cyhWTSxmdW5jdGlvbih0KXtyZXR1cm4gak0odC5nZXRQcm92aWRlcigiYXBwIikuZ2V0SW1tZWRpYXRlKCksdC5nZXRQcm92aWRlcigiaW5zdGFsbGF0aW9ucyIpLmdldEltbWVkaWF0ZSgpKX0sIlBVQkxJQyIpLnNldFNlcnZpY2VQcm9wcyh7c2V0dGluZ3M6VU0sRXZlbnROYW1lOmxNLGlzU3VwcG9ydGVkOkJNfSkpLHFNLklOVEVSTkFMLnJlZ2lzdGVyQ29tcG9uZW50KG5ldyB0cygiYW5hbHl0aWNzLWludGVybmFsIixmdW5jdGlvbih0KXt0cnl7cmV0dXJue2xvZ0V2ZW50OnQuZ2V0UHJvdmlkZXIoVk0pLmdldEltbWVkaWF0ZSgpLmxvZ0V2ZW50fX1jYXRjaCh0KXt0aHJvdyBiTS5jcmVhdGUoImludGVyb3AtY29tcG9uZW50LXJlZy1mYWlsZWQiLHtyZWFzb246dH0pfX0sIlBSSVZBVEUiKSkscU0ucmVnaXN0ZXJWZXJzaW9uKCJAZmlyZWJhc2UvYW5hbHl0aWNzIiwiMC42LjciKTt2YXIgS009KFdNLnByb3RvdHlwZS5pc0NhY2hlZERhdGFGcmVzaD1mdW5jdGlvbih0LGUpe2lmKCFlKXJldHVybiB0aGlzLmxvZ2dlci5kZWJ1ZygiQ29uZmlnIGZldGNoIGNhY2hlIGNoZWNrLiBDYWNoZSB1bnBvcHVsYXRlZC4iKSwhMTt2YXIgbj1EYXRlLm5vdygpLWUsZT1uPD10O3JldHVybiB0aGlzLmxvZ2dlci5kZWJ1ZygiQ29uZmlnIGZldGNoIGNhY2hlIGNoZWNrLiBDYWNoZSBhZ2UgbWlsbGlzOiAiK24rIi4gQ2FjaGUgbWF4IGFnZSBtaWxsaXMgKG1pbmltdW1GZXRjaEludGVydmFsTWlsbGlzIHNldHRpbmcpOiAiK3QrIi4gSXMgY2FjaGUgaGl0OiAiK2UrIi4iKSxlfSxXTS5wcm90b3R5cGUuZmV0Y2g9ZnVuY3Rpb24oaSl7cmV0dXJuICRpKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBlLG4scjtyZXR1cm4gWmkodGhpcyxmdW5jdGlvbih0KXtzd2l0Y2godC5sYWJlbCl7Y2FzZSAwOnJldHVybls0LFByb21pc2UuYWxsKFt0aGlzLnN0b3JhZ2UuZ2V0TGFzdFN1Y2Nlc3NmdWxGZXRjaFRpbWVzdGFtcE1pbGxpcygpLHRoaXMuc3RvcmFnZS5nZXRMYXN0U3VjY2Vzc2Z1bEZldGNoUmVzcG9uc2UoKV0pXTtjYXNlIDE6cmV0dXJuKHI9dC5zZW50KCksZT1yWzBdLChyPXJbMV0pJiZ0aGlzLmlzQ2FjaGVkRGF0YUZyZXNoKGkuY2FjaGVNYXhBZ2VNaWxsaXMsZSkpP1syLHJdOihpLmVUYWc9ciYmci5lVGFnLFs0LHRoaXMuY2xpZW50LmZldGNoKGkpXSk7Y2FzZSAyOnJldHVybiBuPXQuc2VudCgpLHI9W3RoaXMuc3RvcmFnZUNhY2hlLnNldExhc3RTdWNjZXNzZnVsRmV0Y2hUaW1lc3RhbXBNaWxsaXMoRGF0ZS5ub3coKSldLDIwMD09PW4uc3RhdHVzJiZyLnB1c2godGhpcy5zdG9yYWdlLnNldExhc3RTdWNjZXNzZnVsRmV0Y2hSZXNwb25zZShuKSksWzQsUHJvbWlzZS5hbGwocildO2Nhc2UgMzpyZXR1cm4gdC5zZW50KCksWzIsbl19fSl9KX0sV00pO2Z1bmN0aW9uIFdNKHQsZSxuLHIpe3RoaXMuY2xpZW50PXQsdGhpcy5zdG9yYWdlPWUsdGhpcy5zdG9yYWdlQ2FjaGU9bix0aGlzLmxvZ2dlcj1yfXZhciBTbj0oKFNuPXt9KVsicmVnaXN0cmF0aW9uLXdpbmRvdyJdPSJVbmRlZmluZWQgd2luZG93IG9iamVjdC4gVGhpcyBTREsgb25seSBzdXBwb3J0cyB1c2FnZSBpbiBhIGJyb3dzZXIgZW52aXJvbm1lbnQuIixTblsicmVnaXN0cmF0aW9uLXByb2plY3QtaWQiXT0iVW5kZWZpbmVkIHByb2plY3QgaWRlbnRpZmllci4gQ2hlY2sgRmlyZWJhc2UgYXBwIGluaXRpYWxpemF0aW9uLiIsU25bInJlZ2lzdHJhdGlvbi1hcGkta2V5Il09IlVuZGVmaW5lZCBBUEkga2V5LiBDaGVjayBGaXJlYmFzZSBhcHAgaW5pdGlhbGl6YXRpb24uIixTblsicmVnaXN0cmF0aW9uLWFwcC1pZCJdPSJVbmRlZmluZWQgYXBwIGlkZW50aWZpZXIuIENoZWNrIEZpcmViYXNlIGFwcCBpbml0aWFsaXphdGlvbi4iLFNuWyJzdG9yYWdlLW9wZW4iXT0iRXJyb3IgdGhyb3duIHdoZW4gb3BlbmluZyBzdG9yYWdlLiBPcmlnaW5hbCBlcnJvcjogeyRvcmlnaW5hbEVycm9yTWVzc2FnZX0uIixTblsic3RvcmFnZS1nZXQiXT0iRXJyb3IgdGhyb3duIHdoZW4gcmVhZGluZyBmcm9tIHN0b3JhZ2UuIE9yaWdpbmFsIGVycm9yOiB7JG9yaWdpbmFsRXJyb3JNZXNzYWdlfS4iLFNuWyJzdG9yYWdlLXNldCJdPSJFcnJvciB0aHJvd24gd2hlbiB3cml0aW5nIHRvIHN0b3JhZ2UuIE9yaWdpbmFsIGVycm9yOiB7JG9yaWdpbmFsRXJyb3JNZXNzYWdlfS4iLFNuWyJzdG9yYWdlLWRlbGV0ZSJdPSJFcnJvciB0aHJvd24gd2hlbiBkZWxldGluZyBmcm9tIHN0b3JhZ2UuIE9yaWdpbmFsIGVycm9yOiB7JG9yaWdpbmFsRXJyb3JNZXNzYWdlfS4iLFNuWyJmZXRjaC1jbGllbnQtbmV0d29yayJdPSJGZXRjaCBjbGllbnQgZmFpbGVkIHRvIGNvbm5lY3QgdG8gYSBuZXR3b3JrLiBDaGVjayBJbnRlcm5ldCBjb25uZWN0aW9uLiBPcmlnaW5hbCBlcnJvcjogeyRvcmlnaW5hbEVycm9yTWVzc2FnZX0uIixTblsiZmV0Y2gtdGltZW91dCJdPSdUaGUgY29uZmlnIGZldGNoIHJlcXVlc3QgdGltZWQgb3V0LiAgQ29uZmlndXJlIHRpbWVvdXQgdXNpbmcgImZldGNoVGltZW91dE1pbGxpcyIgU0RLIHNldHRpbmcuJyxTblsiZmV0Y2gtdGhyb3R0bGUiXT0nVGhlIGNvbmZpZyBmZXRjaCByZXF1ZXN0IHRpbWVkIG91dCB3aGlsZSBpbiBhbiBleHBvbmVudGlhbCBiYWNrb2ZmIHN0YXRlLiBDb25maWd1cmUgdGltZW91dCB1c2luZyAiZmV0Y2hUaW1lb3V0TWlsbGlzIiBTREsgc2V0dGluZy4gVW5peCB0aW1lc3RhbXAgaW4gbWlsbGlzZWNvbmRzIHdoZW4gZmV0Y2ggcmVxdWVzdCB0aHJvdHRsaW5nIGVuZHM6IHskdGhyb3R0bGVFbmRUaW1lTWlsbGlzfS4nLFNuWyJmZXRjaC1jbGllbnQtcGFyc2UiXT0iRmV0Y2ggY2xpZW50IGNvdWxkIG5vdCBwYXJzZSByZXNwb25zZS4gT3JpZ2luYWwgZXJyb3I6IHskb3JpZ2luYWxFcnJvck1lc3NhZ2V9LiIsU25bImZldGNoLXN0YXR1cyJdPSJGZXRjaCBzZXJ2ZXIgcmV0dXJuZWQgYW4gSFRUUCBlcnJvciBzdGF0dXMuIEhUVFAgc3RhdHVzOiB7JGh0dHBTdGF0dXN9LiIsU24pLEhNPW5ldyBDbygicmVtb3RlY29uZmlnIiwiUmVtb3RlIENvbmZpZyIsU24pO3ZhciBHTT0oek0ucHJvdG90eXBlLmZldGNoPWZ1bmN0aW9uKGYpe3JldHVybiAkaSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgbixyLGksbyxzLGEsdSxjLGgsbDtyZXR1cm4gWmkodGhpcyxmdW5jdGlvbih0KXtzd2l0Y2godC5sYWJlbCl7Y2FzZSAwOnJldHVybls0LFByb21pc2UuYWxsKFt0aGlzLmZpcmViYXNlSW5zdGFsbGF0aW9ucy5nZXRJZCgpLHRoaXMuZmlyZWJhc2VJbnN0YWxsYXRpb25zLmdldFRva2VuKCldKV07Y2FzZSAxOm89dC5zZW50KCksbj1vWzBdLGk9b1sxXSxyPXdpbmRvdy5GSVJFQkFTRV9SRU1PVEVfQ09ORklHX1VSTF9CQVNFfHwiaHR0cHM6Ly9maXJlYmFzZXJlbW90ZWNvbmZpZy5nb29nbGVhcGlzLmNvbSIsbz1yKyIvdjEvcHJvamVjdHMvIit0aGlzLnByb2plY3RJZCsiL25hbWVzcGFjZXMvIit0aGlzLm5hbWVzcGFjZSsiOmZldGNoP2tleT0iK3RoaXMuYXBpS2V5LHI9eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIiwiQ29udGVudC1FbmNvZGluZyI6Imd6aXAiLCJJZi1Ob25lLU1hdGNoIjpmLmVUYWd8fCIqIn0saT17c2RrX3ZlcnNpb246dGhpcy5zZGtWZXJzaW9uLGFwcF9pbnN0YW5jZV9pZDpuLGFwcF9pbnN0YW5jZV9pZF90b2tlbjppLGFwcF9pZDp0aGlzLmFwcElkLGxhbmd1YWdlX2NvZGU6KGU9dm9pZCAwPT09ZT9uYXZpZ2F0b3I6ZSkubGFuZ3VhZ2VzJiZlLmxhbmd1YWdlc1swXXx8ZS5sYW5ndWFnZX0saT17bWV0aG9kOiJQT1NUIixoZWFkZXJzOnIsYm9keTpKU09OLnN0cmluZ2lmeShpKX0sbz1mZXRjaChvLGkpLGk9bmV3IFByb21pc2UoZnVuY3Rpb24odCxlKXtmLnNpZ25hbC5hZGRFdmVudExpc3RlbmVyKGZ1bmN0aW9uKCl7dmFyIHQ9bmV3IEVycm9yKCJUaGUgb3BlcmF0aW9uIHdhcyBhYm9ydGVkLiIpO3QubmFtZT0iQWJvcnRFcnJvciIsZSh0KX0pfSksdC5sYWJlbD0yO2Nhc2UgMjpyZXR1cm4gdC50cnlzLnB1c2goWzIsNSwsNl0pLFs0LFByb21pc2UucmFjZShbbyxpXSldO2Nhc2UgMzpyZXR1cm4gdC5zZW50KCksWzQsb107Y2FzZSA0OnJldHVybiBsPXQuc2VudCgpLFszLDZdO2Nhc2UgNTp0aHJvdyBpPXQuc2VudCgpLG89ImZldGNoLWNsaWVudC1uZXR3b3JrIiwiQWJvcnRFcnJvciI9PT1pLm5hbWUmJihvPSJmZXRjaC10aW1lb3V0IiksSE0uY3JlYXRlKG8se29yaWdpbmFsRXJyb3JNZXNzYWdlOmkubWVzc2FnZX0pO2Nhc2UgNjppZihzPWwuc3RhdHVzLGE9bC5oZWFkZXJzLmdldCgiRVRhZyIpfHx2b2lkIDAsMjAwIT09bC5zdGF0dXMpcmV0dXJuWzMsMTFdO2g9dm9pZCAwLHQubGFiZWw9NztjYXNlIDc6cmV0dXJuIHQudHJ5cy5wdXNoKFs3LDksLDEwXSksWzQsbC5qc29uKCldO2Nhc2UgODpyZXR1cm4gaD10LnNlbnQoKSxbMywxMF07Y2FzZSA5OnRocm93IGw9dC5zZW50KCksSE0uY3JlYXRlKCJmZXRjaC1jbGllbnQtcGFyc2UiLHtvcmlnaW5hbEVycm9yTWVzc2FnZTpsLm1lc3NhZ2V9KTtjYXNlIDEwOnU9aC5lbnRyaWVzLGM9aC5zdGF0ZSx0LmxhYmVsPTExO2Nhc2UgMTE6aWYoIklOU1RBTkNFX1NUQVRFX1VOU1BFQ0lGSUVEIj09PWM/cz01MDA6Ik5PX0NIQU5HRSI9PT1jP3M9MzA0OiJOT19URU1QTEFURSIhPT1jJiYiRU1QVFlfQ09ORklHIiE9PWN8fCh1PXt9KSwzMDQhPT1zJiYyMDAhPT1zKXRocm93IEhNLmNyZWF0ZSgiZmV0Y2gtc3RhdHVzIix7aHR0cFN0YXR1czpzfSk7cmV0dXJuWzIse3N0YXR1czpzLGVUYWc6YSxjb25maWc6dX1dfXZhciBlfSl9KX0sek0pO2Z1bmN0aW9uIHpNKHQsZSxuLHIsaSxvKXt0aGlzLmZpcmViYXNlSW5zdGFsbGF0aW9ucz10LHRoaXMuc2RrVmVyc2lvbj1lLHRoaXMubmFtZXNwYWNlPW4sdGhpcy5wcm9qZWN0SWQ9cix0aGlzLmFwaUtleT1pLHRoaXMuYXBwSWQ9b312YXIgUU09KFlNLnByb3RvdHlwZS5hZGRFdmVudExpc3RlbmVyPWZ1bmN0aW9uKHQpe3RoaXMubGlzdGVuZXJzLnB1c2godCl9LFlNLnByb3RvdHlwZS5hYm9ydD1mdW5jdGlvbigpe3RoaXMubGlzdGVuZXJzLmZvckVhY2goZnVuY3Rpb24odCl7cmV0dXJuIHQoKX0pfSxZTSk7ZnVuY3Rpb24gWU0oKXt0aGlzLmxpc3RlbmVycz1bXX12YXIgWE09WyIxIiwidHJ1ZSIsInQiLCJ5ZXMiLCJ5Iiwib24iXSxKTT0oJE0ucHJvdG90eXBlLmFzU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3ZhbHVlfSwkTS5wcm90b3R5cGUuYXNCb29sZWFuPWZ1bmN0aW9uKCl7cmV0dXJuInN0YXRpYyIhPT10aGlzLl9zb3VyY2UmJjA8PVhNLmluZGV4T2YodGhpcy5fdmFsdWUudG9Mb3dlckNhc2UoKSl9LCRNLnByb3RvdHlwZS5hc051bWJlcj1mdW5jdGlvbigpe2lmKCJzdGF0aWMiPT09dGhpcy5fc291cmNlKXJldHVybiAwO3ZhciB0PU51bWJlcih0aGlzLl92YWx1ZSk7cmV0dXJuIHQ9aXNOYU4odCk/MDp0fSwkTS5wcm90b3R5cGUuZ2V0U291cmNlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3NvdXJjZX0sJE0pO2Z1bmN0aW9uICRNKHQsZSl7dm9pZCAwPT09ZSYmKGU9IiIpLHRoaXMuX3NvdXJjZT10LHRoaXMuX3ZhbHVlPWV9dmFyIFpNPSh0Ri5wcm90b3R5cGUuc2V0TG9nTGV2ZWw9ZnVuY3Rpb24odCl7c3dpdGNoKHQpe2Nhc2UiZGVidWciOnRoaXMuX2xvZ2dlci5sb2dMZXZlbD1hcy5ERUJVRzticmVhaztjYXNlInNpbGVudCI6dGhpcy5fbG9nZ2VyLmxvZ0xldmVsPWFzLlNJTEVOVDticmVhaztkZWZhdWx0OnRoaXMuX2xvZ2dlci5sb2dMZXZlbD1hcy5FUlJPUn19LE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0Ri5wcm90b3R5cGUsImZldGNoVGltZU1pbGxpcyIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9zdG9yYWdlQ2FjaGUuZ2V0TGFzdFN1Y2Nlc3NmdWxGZXRjaFRpbWVzdGFtcE1pbGxpcygpfHwtMX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodEYucHJvdG90eXBlLCJsYXN0RmV0Y2hTdGF0dXMiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fc3RvcmFnZUNhY2hlLmdldExhc3RGZXRjaFN0YXR1cygpfHwibm8tZmV0Y2gteWV0In0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSx0Ri5wcm90b3R5cGUuYWN0aXZhdGU9ZnVuY3Rpb24oKXtyZXR1cm4gJGkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIGUsbjtyZXR1cm4gWmkodGhpcyxmdW5jdGlvbih0KXtzd2l0Y2godC5sYWJlbCl7Y2FzZSAwOnJldHVybls0LFByb21pc2UuYWxsKFt0aGlzLl9zdG9yYWdlLmdldExhc3RTdWNjZXNzZnVsRmV0Y2hSZXNwb25zZSgpLHRoaXMuX3N0b3JhZ2UuZ2V0QWN0aXZlQ29uZmlnRXRhZygpXSldO2Nhc2UgMTpyZXR1cm4gbj10LnNlbnQoKSxlPW5bMF0sbj1uWzFdLGUmJmUuY29uZmlnJiZlLmVUYWcmJmUuZVRhZyE9PW4/WzQsUHJvbWlzZS5hbGwoW3RoaXMuX3N0b3JhZ2VDYWNoZS5zZXRBY3RpdmVDb25maWcoZS5jb25maWcpLHRoaXMuX3N0b3JhZ2Uuc2V0QWN0aXZlQ29uZmlnRXRhZyhlLmVUYWcpXSldOlsyLCExXTtjYXNlIDI6cmV0dXJuIHQuc2VudCgpLFsyLCEwXX19KX0pfSx0Ri5wcm90b3R5cGUuZW5zdXJlSW5pdGlhbGl6ZWQ9ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3JldHVybiB0aGlzLl9pbml0aWFsaXplUHJvbWlzZXx8KHRoaXMuX2luaXRpYWxpemVQcm9taXNlPXRoaXMuX3N0b3JhZ2VDYWNoZS5sb2FkRnJvbVN0b3JhZ2UoKS50aGVuKGZ1bmN0aW9uKCl7dC5faXNJbml0aWFsaXphdGlvbkNvbXBsZXRlPSEwfSkpLHRoaXMuX2luaXRpYWxpemVQcm9taXNlfSx0Ri5wcm90b3R5cGUuZmV0Y2g9ZnVuY3Rpb24oKXtyZXR1cm4gJGkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIHIsaSxvLHM9dGhpcztyZXR1cm4gWmkodGhpcyxmdW5jdGlvbih0KXtzd2l0Y2godC5sYWJlbCl7Y2FzZSAwOnI9bmV3IFFNLHNldFRpbWVvdXQoZnVuY3Rpb24oKXtyZXR1cm4gJGkocyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7cmV0dXJuIFppKHRoaXMsZnVuY3Rpb24odCl7cmV0dXJuIHIuYWJvcnQoKSxbMl19KX0pfSx0aGlzLnNldHRpbmdzLmZldGNoVGltZW91dE1pbGxpcyksdC5sYWJlbD0xO2Nhc2UgMTpyZXR1cm4gdC50cnlzLnB1c2goWzEsNCwsNl0pLFs0LHRoaXMuX2NsaWVudC5mZXRjaCh7Y2FjaGVNYXhBZ2VNaWxsaXM6dGhpcy5zZXR0aW5ncy5taW5pbXVtRmV0Y2hJbnRlcnZhbE1pbGxpcyxzaWduYWw6cn0pXTtjYXNlIDI6cmV0dXJuIHQuc2VudCgpLFs0LHRoaXMuX3N0b3JhZ2VDYWNoZS5zZXRMYXN0RmV0Y2hTdGF0dXMoInN1Y2Nlc3MiKV07Y2FzZSAzOnJldHVybiB0LnNlbnQoKSxbMyw2XTtjYXNlIDQ6cmV0dXJuIGk9dC5zZW50KCksbj0iZmV0Y2gtdGhyb3R0bGUiLG89KGU9aSlpbnN0YW5jZW9mIEVvJiYtMSE9PWUuY29kZS5pbmRleE9mKG4pPyJ0aHJvdHRsZSI6ImZhaWx1cmUiLFs0LHRoaXMuX3N0b3JhZ2VDYWNoZS5zZXRMYXN0RmV0Y2hTdGF0dXMobyldO2Nhc2UgNTp0aHJvdyB0LnNlbnQoKSxpO2Nhc2UgNjpyZXR1cm5bMl19dmFyIGUsbn0pfSl9LHRGLnByb3RvdHlwZS5mZXRjaEFuZEFjdGl2YXRlPWZ1bmN0aW9uKCl7cmV0dXJuICRpKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3JldHVybiBaaSh0aGlzLGZ1bmN0aW9uKHQpe3N3aXRjaCh0LmxhYmVsKXtjYXNlIDA6cmV0dXJuWzQsdGhpcy5mZXRjaCgpXTtjYXNlIDE6cmV0dXJuIHQuc2VudCgpLFsyLHRoaXMuYWN0aXZhdGUoKV19fSl9KX0sdEYucHJvdG90eXBlLmdldEFsbD1mdW5jdGlvbigpe3ZhciBuPXRoaXM7cmV0dXJuIGZ1bmN0aW9uKHQsZSl7dm9pZCAwPT09dCYmKHQ9e30pO3ZvaWQgMD09PWUmJihlPXt9KTtyZXR1cm4gT2JqZWN0LmtleXMoSmkoSmkoe30sdCksZSkpfSh0aGlzLl9zdG9yYWdlQ2FjaGUuZ2V0QWN0aXZlQ29uZmlnKCksdGhpcy5kZWZhdWx0Q29uZmlnKS5yZWR1Y2UoZnVuY3Rpb24odCxlKXtyZXR1cm4gdFtlXT1uLmdldFZhbHVlKGUpLHR9LHt9KX0sdEYucHJvdG90eXBlLmdldEJvb2xlYW49ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuZ2V0VmFsdWUodCkuYXNCb29sZWFuKCl9LHRGLnByb3RvdHlwZS5nZXROdW1iZXI9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuZ2V0VmFsdWUodCkuYXNOdW1iZXIoKX0sdEYucHJvdG90eXBlLmdldFN0cmluZz1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5nZXRWYWx1ZSh0KS5hc1N0cmluZygpfSx0Ri5wcm90b3R5cGUuZ2V0VmFsdWU9ZnVuY3Rpb24odCl7dGhpcy5faXNJbml0aWFsaXphdGlvbkNvbXBsZXRlfHx0aGlzLl9sb2dnZXIuZGVidWcoJ0EgdmFsdWUgd2FzIHJlcXVlc3RlZCBmb3Iga2V5ICInK3QrJyIgYmVmb3JlIFNESyBpbml0aWFsaXphdGlvbiBjb21wbGV0ZWQuIEF3YWl0IG9uIGVuc3VyZUluaXRpYWxpemVkIGlmIHRoZSBpbnRlbnQgd2FzIHRvIGdldCBhIHByZXZpb3VzbHkgYWN0aXZhdGVkIHZhbHVlLicpO3ZhciBlPXRoaXMuX3N0b3JhZ2VDYWNoZS5nZXRBY3RpdmVDb25maWcoKTtyZXR1cm4gZSYmdm9pZCAwIT09ZVt0XT9uZXcgSk0oInJlbW90ZSIsZVt0XSk6dGhpcy5kZWZhdWx0Q29uZmlnJiZ2b2lkIDAhPT10aGlzLmRlZmF1bHRDb25maWdbdF0/bmV3IEpNKCJkZWZhdWx0IixTdHJpbmcodGhpcy5kZWZhdWx0Q29uZmlnW3RdKSk6KHRoaXMuX2xvZ2dlci5kZWJ1ZygnUmV0dXJuaW5nIHN0YXRpYyB2YWx1ZSBmb3Iga2V5ICInK3QrJyIuIERlZmluZSBhIGRlZmF1bHQgb3IgcmVtb3RlIHZhbHVlIGlmIHRoaXMgaXMgdW5pbnRlbnRpb25hbC4nKSxuZXcgSk0oInN0YXRpYyIpKX0sdEYpO2Z1bmN0aW9uIHRGKHQsZSxuLHIsaSl7dGhpcy5hcHA9dCx0aGlzLl9jbGllbnQ9ZSx0aGlzLl9zdG9yYWdlQ2FjaGU9bix0aGlzLl9zdG9yYWdlPXIsdGhpcy5fbG9nZ2VyPWksdGhpcy5faXNJbml0aWFsaXphdGlvbkNvbXBsZXRlPSExLHRoaXMuc2V0dGluZ3M9e2ZldGNoVGltZW91dE1pbGxpczo2ZTQsbWluaW11bUZldGNoSW50ZXJ2YWxNaWxsaXM6NDMyZTV9LHRoaXMuZGVmYXVsdENvbmZpZz17fX1mdW5jdGlvbiBlRih0LGUpe3Q9dC50YXJnZXQuZXJyb3J8fHZvaWQgMDtyZXR1cm4gSE0uY3JlYXRlKGUse29yaWdpbmFsRXJyb3JNZXNzYWdlOnQmJnQubWVzc2FnZX0pfXZhciBuRj0iYXBwX25hbWVzcGFjZV9zdG9yZSIsckY9ImZpcmViYXNlX3JlbW90ZV9jb25maWciLGlGPTE7dmFyIG9GPShzRi5wcm90b3R5cGUuZ2V0TGFzdEZldGNoU3RhdHVzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0KCJsYXN0X2ZldGNoX3N0YXR1cyIpfSxzRi5wcm90b3R5cGUuc2V0TGFzdEZldGNoU3RhdHVzPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnNldCgibGFzdF9mZXRjaF9zdGF0dXMiLHQpfSxzRi5wcm90b3R5cGUuZ2V0TGFzdFN1Y2Nlc3NmdWxGZXRjaFRpbWVzdGFtcE1pbGxpcz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmdldCgibGFzdF9zdWNjZXNzZnVsX2ZldGNoX3RpbWVzdGFtcF9taWxsaXMiKX0sc0YucHJvdG90eXBlLnNldExhc3RTdWNjZXNzZnVsRmV0Y2hUaW1lc3RhbXBNaWxsaXM9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuc2V0KCJsYXN0X3N1Y2Nlc3NmdWxfZmV0Y2hfdGltZXN0YW1wX21pbGxpcyIsdCl9LHNGLnByb3RvdHlwZS5nZXRMYXN0U3VjY2Vzc2Z1bEZldGNoUmVzcG9uc2U9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nZXQoImxhc3Rfc3VjY2Vzc2Z1bF9mZXRjaF9yZXNwb25zZSIpfSxzRi5wcm90b3R5cGUuc2V0TGFzdFN1Y2Nlc3NmdWxGZXRjaFJlc3BvbnNlPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnNldCgibGFzdF9zdWNjZXNzZnVsX2ZldGNoX3Jlc3BvbnNlIix0KX0sc0YucHJvdG90eXBlLmdldEFjdGl2ZUNvbmZpZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmdldCgiYWN0aXZlX2NvbmZpZyIpfSxzRi5wcm90b3R5cGUuc2V0QWN0aXZlQ29uZmlnPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnNldCgiYWN0aXZlX2NvbmZpZyIsdCl9LHNGLnByb3RvdHlwZS5nZXRBY3RpdmVDb25maWdFdGFnPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0KCJhY3RpdmVfY29uZmlnX2V0YWciKX0sc0YucHJvdG90eXBlLnNldEFjdGl2ZUNvbmZpZ0V0YWc9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuc2V0KCJhY3RpdmVfY29uZmlnX2V0YWciLHQpfSxzRi5wcm90b3R5cGUuZ2V0VGhyb3R0bGVNZXRhZGF0YT1mdW5jdGlvbigpe3JldHVybiB0aGlzLmdldCgidGhyb3R0bGVfbWV0YWRhdGEiKX0sc0YucHJvdG90eXBlLnNldFRocm90dGxlTWV0YWRhdGE9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuc2V0KCJ0aHJvdHRsZV9tZXRhZGF0YSIsdCl9LHNGLnByb3RvdHlwZS5kZWxldGVUaHJvdHRsZU1ldGFkYXRhPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZGVsZXRlKCJ0aHJvdHRsZV9tZXRhZGF0YSIpfSxzRi5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKGEpe3JldHVybiAkaSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgbyxzPXRoaXM7cmV0dXJuIFppKHRoaXMsZnVuY3Rpb24odCl7c3dpdGNoKHQubGFiZWwpe2Nhc2UgMDpyZXR1cm5bNCx0aGlzLm9wZW5EYlByb21pc2VdO2Nhc2UgMTpyZXR1cm4gbz10LnNlbnQoKSxbMixuZXcgUHJvbWlzZShmdW5jdGlvbihlLG4pe3ZhciB0PW8udHJhbnNhY3Rpb24oW25GXSwicmVhZG9ubHkiKS5vYmplY3RTdG9yZShuRikscj1zLmNyZWF0ZUNvbXBvc2l0ZUtleShhKTt0cnl7dmFyIGk9dC5nZXQocik7aS5vbmVycm9yPWZ1bmN0aW9uKHQpe24oZUYodCwic3RvcmFnZS1nZXQiKSl9LGkub25zdWNjZXNzPWZ1bmN0aW9uKHQpe3Q9dC50YXJnZXQucmVzdWx0O2UodD90LnZhbHVlOnZvaWQgMCl9fWNhdGNoKHQpe24oSE0uY3JlYXRlKCJzdG9yYWdlLWdldCIse29yaWdpbmFsRXJyb3JNZXNzYWdlOnQmJnQubWVzc2FnZX0pKX19KV19fSl9KX0sc0YucHJvdG90eXBlLnNldD1mdW5jdGlvbihhLHUpe3JldHVybiAkaSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgbyxzPXRoaXM7cmV0dXJuIFppKHRoaXMsZnVuY3Rpb24odCl7c3dpdGNoKHQubGFiZWwpe2Nhc2UgMDpyZXR1cm5bNCx0aGlzLm9wZW5EYlByb21pc2VdO2Nhc2UgMTpyZXR1cm4gbz10LnNlbnQoKSxbMixuZXcgUHJvbWlzZShmdW5jdGlvbih0LGUpe3ZhciBuPW8udHJhbnNhY3Rpb24oW25GXSwicmVhZHdyaXRlIikub2JqZWN0U3RvcmUobkYpLHI9cy5jcmVhdGVDb21wb3NpdGVLZXkoYSk7dHJ5e3ZhciBpPW4ucHV0KHtjb21wb3NpdGVLZXk6cix2YWx1ZTp1fSk7aS5vbmVycm9yPWZ1bmN0aW9uKHQpe2UoZUYodCwic3RvcmFnZS1zZXQiKSl9LGkub25zdWNjZXNzPWZ1bmN0aW9uKCl7dCgpfX1jYXRjaCh0KXtlKEhNLmNyZWF0ZSgic3RvcmFnZS1zZXQiLHtvcmlnaW5hbEVycm9yTWVzc2FnZTp0JiZ0Lm1lc3NhZ2V9KSl9fSldfX0pfSl9LHNGLnByb3RvdHlwZS5kZWxldGU9ZnVuY3Rpb24oYSl7cmV0dXJuICRpKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBvLHM9dGhpcztyZXR1cm4gWmkodGhpcyxmdW5jdGlvbih0KXtzd2l0Y2godC5sYWJlbCl7Y2FzZSAwOnJldHVybls0LHRoaXMub3BlbkRiUHJvbWlzZV07Y2FzZSAxOnJldHVybiBvPXQuc2VudCgpLFsyLG5ldyBQcm9taXNlKGZ1bmN0aW9uKHQsZSl7dmFyIG49by50cmFuc2FjdGlvbihbbkZdLCJyZWFkd3JpdGUiKS5vYmplY3RTdG9yZShuRikscj1zLmNyZWF0ZUNvbXBvc2l0ZUtleShhKTt0cnl7dmFyIGk9bi5kZWxldGUocik7aS5vbmVycm9yPWZ1bmN0aW9uKHQpe2UoZUYodCwic3RvcmFnZS1kZWxldGUiKSl9LGkub25zdWNjZXNzPWZ1bmN0aW9uKCl7dCgpfX1jYXRjaCh0KXtlKEhNLmNyZWF0ZSgic3RvcmFnZS1kZWxldGUiLHtvcmlnaW5hbEVycm9yTWVzc2FnZTp0JiZ0Lm1lc3NhZ2V9KSl9fSldfX0pfSl9LHNGLnByb3RvdHlwZS5jcmVhdGVDb21wb3NpdGVLZXk9ZnVuY3Rpb24odCl7cmV0dXJuW3RoaXMuYXBwSWQsdGhpcy5hcHBOYW1lLHRoaXMubmFtZXNwYWNlLHRdLmpvaW4oKX0sc0YpO2Z1bmN0aW9uIHNGKHQsZSxuLHIpe3ZvaWQgMD09PXImJihyPW5ldyBQcm9taXNlKGZ1bmN0aW9uKGUsbil7dmFyIHQ9aW5kZXhlZERCLm9wZW4ockYsaUYpO3Qub25lcnJvcj1mdW5jdGlvbih0KXtuKGVGKHQsInN0b3JhZ2Utb3BlbiIpKX0sdC5vbnN1Y2Nlc3M9ZnVuY3Rpb24odCl7ZSh0LnRhcmdldC5yZXN1bHQpfSx0Lm9udXBncmFkZW5lZWRlZD1mdW5jdGlvbih0KXt2YXIgZT10LnRhcmdldC5yZXN1bHQ7MD09PXQub2xkVmVyc2lvbiYmZS5jcmVhdGVPYmplY3RTdG9yZShuRix7a2V5UGF0aDoiY29tcG9zaXRlS2V5In0pfX0pKSx0aGlzLmFwcElkPXQsdGhpcy5hcHBOYW1lPWUsdGhpcy5uYW1lc3BhY2U9bix0aGlzLm9wZW5EYlByb21pc2U9cn12YXIgYUY9KHVGLnByb3RvdHlwZS5nZXRMYXN0RmV0Y2hTdGF0dXM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5sYXN0RmV0Y2hTdGF0dXN9LHVGLnByb3RvdHlwZS5nZXRMYXN0U3VjY2Vzc2Z1bEZldGNoVGltZXN0YW1wTWlsbGlzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubGFzdFN1Y2Nlc3NmdWxGZXRjaFRpbWVzdGFtcE1pbGxpc30sdUYucHJvdG90eXBlLmdldEFjdGl2ZUNvbmZpZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmFjdGl2ZUNvbmZpZ30sdUYucHJvdG90eXBlLmxvYWRGcm9tU3RvcmFnZT1mdW5jdGlvbigpe3JldHVybiAkaSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgZSxuLHI7cmV0dXJuIFppKHRoaXMsZnVuY3Rpb24odCl7c3dpdGNoKHQubGFiZWwpe2Nhc2UgMDpyZXR1cm4gZT10aGlzLnN0b3JhZ2UuZ2V0TGFzdEZldGNoU3RhdHVzKCksbj10aGlzLnN0b3JhZ2UuZ2V0TGFzdFN1Y2Nlc3NmdWxGZXRjaFRpbWVzdGFtcE1pbGxpcygpLHI9dGhpcy5zdG9yYWdlLmdldEFjdGl2ZUNvbmZpZygpLFs0LGVdO2Nhc2UgMTpyZXR1cm4oZT10LnNlbnQoKSkmJih0aGlzLmxhc3RGZXRjaFN0YXR1cz1lKSxbNCxuXTtjYXNlIDI6cmV0dXJuKG49dC5zZW50KCkpJiYodGhpcy5sYXN0U3VjY2Vzc2Z1bEZldGNoVGltZXN0YW1wTWlsbGlzPW4pLFs0LHJdO2Nhc2UgMzpyZXR1cm4ocj10LnNlbnQoKSkmJih0aGlzLmFjdGl2ZUNvbmZpZz1yKSxbMl19fSl9KX0sdUYucHJvdG90eXBlLnNldExhc3RGZXRjaFN0YXR1cz1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5sYXN0RmV0Y2hTdGF0dXM9dCx0aGlzLnN0b3JhZ2Uuc2V0TGFzdEZldGNoU3RhdHVzKHQpfSx1Ri5wcm90b3R5cGUuc2V0TGFzdFN1Y2Nlc3NmdWxGZXRjaFRpbWVzdGFtcE1pbGxpcz1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5sYXN0U3VjY2Vzc2Z1bEZldGNoVGltZXN0YW1wTWlsbGlzPXQsdGhpcy5zdG9yYWdlLnNldExhc3RTdWNjZXNzZnVsRmV0Y2hUaW1lc3RhbXBNaWxsaXModCl9LHVGLnByb3RvdHlwZS5zZXRBY3RpdmVDb25maWc9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuYWN0aXZlQ29uZmlnPXQsdGhpcy5zdG9yYWdlLnNldEFjdGl2ZUNvbmZpZyh0KX0sdUYpO2Z1bmN0aW9uIHVGKHQpe3RoaXMuc3RvcmFnZT10fXZhciBjRj0oaEYucHJvdG90eXBlLmZldGNoPWZ1bmN0aW9uKG4pe3JldHVybiAkaSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgZTtyZXR1cm4gWmkodGhpcyxmdW5jdGlvbih0KXtzd2l0Y2godC5sYWJlbCl7Y2FzZSAwOnJldHVybls0LHRoaXMuc3RvcmFnZS5nZXRUaHJvdHRsZU1ldGFkYXRhKCldO2Nhc2UgMTpyZXR1cm4gZT10LnNlbnQoKXx8e2JhY2tvZmZDb3VudDowLHRocm90dGxlRW5kVGltZU1pbGxpczpEYXRlLm5vdygpfSxbMix0aGlzLmF0dGVtcHRGZXRjaChuLGUpXX19KX0pfSxoRi5wcm90b3R5cGUuYXR0ZW1wdEZldGNoPWZ1bmN0aW9uKHIsdCl7dmFyIHM9dC50aHJvdHRsZUVuZFRpbWVNaWxsaXMsYT10LmJhY2tvZmZDb3VudDtyZXR1cm4gJGkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIGUsbjtyZXR1cm4gWmkodGhpcyxmdW5jdGlvbih0KXtzd2l0Y2godC5sYWJlbCl7Y2FzZSAwOnJldHVybls0LChpPXIuc2lnbmFsLG89cyxuZXcgUHJvbWlzZShmdW5jdGlvbih0LGUpe3ZhciBuPU1hdGgubWF4KG8tRGF0ZS5ub3coKSwwKSxyPXNldFRpbWVvdXQodCxuKTtpLmFkZEV2ZW50TGlzdGVuZXIoZnVuY3Rpb24oKXtjbGVhclRpbWVvdXQociksZShITS5jcmVhdGUoImZldGNoLXRocm90dGxlIix7dGhyb3R0bGVFbmRUaW1lTWlsbGlzOm99KSl9KX0pKV07Y2FzZSAxOnQuc2VudCgpLHQubGFiZWw9MjtjYXNlIDI6cmV0dXJuIHQudHJ5cy5wdXNoKFsyLDUsLDddKSxbNCx0aGlzLmNsaWVudC5mZXRjaChyKV07Y2FzZSAzOnJldHVybiBlPXQuc2VudCgpLFs0LHRoaXMuc3RvcmFnZS5kZWxldGVUaHJvdHRsZU1ldGFkYXRhKCldO2Nhc2UgNDpyZXR1cm4gdC5zZW50KCksWzIsZV07Y2FzZSA1OmlmKCFmdW5jdGlvbih0KXtpZih0IGluc3RhbmNlb2YgRW8mJnQuY3VzdG9tRGF0YSl7dD1OdW1iZXIodC5jdXN0b21EYXRhLmh0dHBTdGF0dXMpO3JldHVybiA0Mjk9PT10fHw1MDA9PT10fHw1MDM9PT10fHw1MDQ9PT10fX0obj10LnNlbnQoKSkpdGhyb3cgbjtyZXR1cm4gbj17dGhyb3R0bGVFbmRUaW1lTWlsbGlzOkRhdGUubm93KCkrJG8oYSksYmFja29mZkNvdW50OmErMX0sWzQsdGhpcy5zdG9yYWdlLnNldFRocm90dGxlTWV0YWRhdGEobildO2Nhc2UgNjpyZXR1cm4gdC5zZW50KCksWzIsdGhpcy5hdHRlbXB0RmV0Y2gocixuKV07Y2FzZSA3OnJldHVyblsyXX12YXIgaSxvfSl9KX0saEYpO2Z1bmN0aW9uIGhGKHQsZSl7dGhpcy5jbGllbnQ9dCx0aGlzLnN0b3JhZ2U9ZX12YXIgbEYsZkY9IkBmaXJlYmFzZS9yZW1vdGUtY29uZmlnIjtyZXR1cm4obEY9WGwpLklOVEVSTkFMLnJlZ2lzdGVyQ29tcG9uZW50KG5ldyB0cygicmVtb3RlQ29uZmlnIixmdW5jdGlvbih0LGUpe3ZhciBuPWUuaW5zdGFuY2VJZGVudGlmaWVyLHI9dC5nZXRQcm92aWRlcigiYXBwIikuZ2V0SW1tZWRpYXRlKCksaT10LmdldFByb3ZpZGVyKCJpbnN0YWxsYXRpb25zIikuZ2V0SW1tZWRpYXRlKCk7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiB3aW5kb3cpdGhyb3cgSE0uY3JlYXRlKCJyZWdpc3RyYXRpb24td2luZG93Iik7dmFyIG89ci5vcHRpb25zLHM9by5wcm9qZWN0SWQsYT1vLmFwaUtleSx1PW8uYXBwSWQ7aWYoIXMpdGhyb3cgSE0uY3JlYXRlKCJyZWdpc3RyYXRpb24tcHJvamVjdC1pZCIpO2lmKCFhKXRocm93IEhNLmNyZWF0ZSgicmVnaXN0cmF0aW9uLWFwaS1rZXkiKTtpZighdSl0aHJvdyBITS5jcmVhdGUoInJlZ2lzdHJhdGlvbi1hcHAtaWQiKTtuPW58fCJmaXJlYmFzZSI7ZT1uZXcgb0YodSxyLm5hbWUsbiksdD1uZXcgYUYoZSksbz1uZXcgcHMoZkYpO28ubG9nTGV2ZWw9YXMuRVJST1I7dT1uZXcgR00oaSxsRi5TREtfVkVSU0lPTixuLHMsYSx1KSx1PW5ldyBjRih1LGUpLHU9bmV3IEtNKHUsZSx0LG8pLG89bmV3IFpNKHIsdSx0LGUsbyk7cmV0dXJuIG8uZW5zdXJlSW5pdGlhbGl6ZWQoKSxvfSwiUFVCTElDIikuc2V0TXVsdGlwbGVJbnN0YW5jZXMoITApKSxsRi5yZWdpc3RlclZlcnNpb24oZkYsIjAuMS4zNCIpLGNvbnNvbGUud2FybigiXG5JdCBsb29rcyBsaWtlIHlvdSdyZSB1c2luZyB0aGUgZGV2ZWxvcG1lbnQgYnVpbGQgb2YgdGhlIEZpcmViYXNlIEpTIFNESy5cbldoZW4gZGVwbG95aW5nIEZpcmViYXNlIGFwcHMgdG8gcHJvZHVjdGlvbiwgaXQgaXMgYWR2aXNhYmxlIHRvIG9ubHkgaW1wb3J0XG50aGUgaW5kaXZpZHVhbCBTREsgY29tcG9uZW50cyB5b3UgaW50ZW5kIHRvIHVzZS5cblxuRm9yIHRoZSBDRE4gYnVpbGRzLCB0aGVzZSBhcmUgYXZhaWxhYmxlIGluIHRoZSBmb2xsb3dpbmcgbWFubmVyXG4ocmVwbGFjZSA8UEFDS0FHRT4gd2l0aCB0aGUgbmFtZSBvZiBhIGNvbXBvbmVudCAtIGkuZS4gYXV0aCwgZGF0YWJhc2UsIGV0Yyk6XG5cbmh0dHBzOi8vd3d3LmdzdGF0aWMuY29tL2ZpcmViYXNlanMvNS4wLjAvZmlyZWJhc2UtPFBBQ0tBR0U+LmpzXG4iKSxYbC5yZWdpc3RlclZlcnNpb24oImZpcmViYXNlIiwiOC4zLjIiLCJjZG4iKSxYbH0pOw0KLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZmlyZWJhc2UuanMubWFwDQo="}},"time_used":105,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":39,"receive":66,"ssl":0},"alerts":{"ids":null,"analyzer":[{"sensor_name":"dns4eu","sensor_type":"DNS","title":"DNS4EU","description":"DNS4EU","scan_date":"2026-07-27","alert":"Sinkholed","trigger":"digital-assettrade.com","verdict":"malicious","severity":"medium","comment":"","link":"https://www.joindns4.eu/","meta":null}],"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/29536.736f471a8d64a8122fd8.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:13.890Z","timestamp":1785148033890,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/29536.736f471a8d64a8122fd8.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:13 GMT\r\ncontent-type: text/css; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a58ab11-ebc\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Thu, 16 Jul 2026 09:57:37 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/16/2026 11:03:21\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 8fb6f43c699ec6a00f5cfc044d17cdb4\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":3772,"size_decoded":1613,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with very long lines (3772), with no line terminators","md5":"0f29bcabe069a47a657f4666aef1835a","sha1":"6d7a898f70cbc2cd3e7245948215a87083dc7757","sha256":"13835bb4936e82708b3d51759c4f0817b38329ae23fbd4159dd42c41d72bd08c","sha512":"844358cef628a8e87ce959d524734c056fccd6a453f67541790666eb6d7c715b9eeaaddb5ed93e3923992e68bf8320f159e9869a9a38a76b85e3677d846bcd35","ssdeep":"","tlshash":"6171ddc5f150fab1fb23119c63ac6079ba80ad78ed5376c7b976d81508d5bb2122372c","first_seen":"2026-07-16T13:40:49.880227Z","last_seen":"2026-07-27T12:57:37.133179Z","times_seen":196,"resource_available":false,"data":"LmRlZmF1bHQtR1pMeWtOUVB7LS11aS1saWItaWNvbi1xaS1kZWZhdWx0LWNvbG9yOnZhcigtLWNvbG9yLWNvbnRlbnQtcHJpbWFyeS1uZXV0cmFsLWxpZ2h0KTstLXVpLWxpYi1pY29uLXFpLWRlZmF1bHQtY29sb3ItaG92ZXI6dmFyKC0tY29sb3ItY29udGVudC1wcmltYXJ5LW5ldXRyYWwpOy0tdWktbGliLWljb24tcWktZGVmYXVsdC1jb2xvci1hY3RpdmU6dmFyKC0tY29sb3ItY29udGVudC1wcmltYXJ5LW5ldXRyYWwtc2VtaS1ib2xkKX0uZGFuZ2VyLUdaTHlrTlFQey0tdWktbGliLWljb24tcWktZGVmYXVsdC1jb2xvcjp2YXIoLS1jb2xvci1jb250ZW50LXByaW1hcnktZGFuZ2VyKTstLXVpLWxpYi1pY29uLXFpLWRlZmF1bHQtY29sb3ItaG92ZXI6dmFyKC0tY29sb3ItY29udGVudC1wcmltYXJ5LWRhbmdlci1zZW1pLWJvbGQpOy0tdWktbGliLWljb24tcWktZGVmYXVsdC1jb2xvci1hY3RpdmU6dmFyKC0tY29sb3ItY29udGVudC1wcmltYXJ5LWRhbmdlci1ib2xkKX0ud2FybmluZy1HWkx5a05RUHstLXVpLWxpYi1pY29uLXFpLWRlZmF1bHQtY29sb3I6dmFyKC0tY29sb3ItY29udGVudC1wcmltYXJ5LXdhcm5pbmcpOy0tdWktbGliLWljb24tcWktZGVmYXVsdC1jb2xvci1ob3Zlcjp2YXIoLS1jb2xvci1jb250ZW50LXByaW1hcnktd2FybmluZy1zZW1pLWJvbGQpOy0tdWktbGliLWljb24tcWktZGVmYXVsdC1jb2xvci1hY3RpdmU6dmFyKC0tY29sb3ItY29udGVudC1wcmltYXJ5LXdhcm5pbmctYm9sZCl9LnN1Y2Nlc3MtR1pMeWtOUVB7LS11aS1saWItaWNvbi1xaS1kZWZhdWx0LWNvbG9yOnZhcigtLWNvbG9yLWNvbnRlbnQtcHJpbWFyeS1zdWNjZXNzKTstLXVpLWxpYi1pY29uLXFpLWRlZmF1bHQtY29sb3ItaG92ZXI6dmFyKC0tY29sb3ItY29udGVudC1wcmltYXJ5LXN1Y2Nlc3Mtc2VtaS1ib2xkKTstLXVpLWxpYi1pY29uLXFpLWRlZmF1bHQtY29sb3ItYWN0aXZlOnZhcigtLWNvbG9yLWNvbnRlbnQtcHJpbWFyeS1zdWNjZXNzLWJvbGQpfS5uZXV0cmFsLUdaTHlrTlFQey0tdWktbGliLWljb24tcWktZGVmYXVsdC1jb2xvcjp2YXIoLS1jb2xvci1jb250ZW50LXNlY29uZGFyeS1uZXV0cmFsKTstLXVpLWxpYi1pY29uLXFpLWRlZmF1bHQtY29sb3ItaG92ZXI6dmFyKC0tY29sb3ItY29udGVudC1zZWNvbmRhcnktbmV1dHJhbC1tZWRpdW0pOy0tdWktbGliLWljb24tcWktZGVmYXVsdC1jb2xvci1hY3RpdmU6dmFyKC0tY29sb3ItY29udGVudC1zZWNvbmRhcnktbmV1dHJhbC1zZW1pLWJvbGQpfS5uZXV0cmFsLWxpZ2h0LUdaTHlrTlFQey0tdWktbGliLWljb24tcWktZGVmYXVsdC1jb2xvcjp2YXIoLS1jb2xvci1jb250ZW50LXByaW1hcnktbmV1dHJhbC1leHRyYS1saWdodCk7LS11aS1saWItaWNvbi1xaS1kZWZhdWx0LWNvbG9yLWhvdmVyOnZhcigtLWNvbG9yLWNvbnRlbnQtcHJpbWFyeS1uZXV0cmFsKTstLXVpLWxpYi1pY29uLXFpLWRlZmF1bHQtY29sb3ItYWN0aXZlOnZhcigtLWNvbG9yLWNvbnRlbnQtcHJpbWFyeS1uZXV0cmFsLXNlbWktYm9sZCl9LnNtYWxsLUdaTHlrTlFQey0tdWktbGliLXByaXZhdGUtaWNvblF1ZXN0aW9uSW5mb3JtYXRpb24tc2l6ZTozfS5tZWRpdW0tR1pMeWtOUVB7LS11aS1saWItcHJpdmF0ZS1pY29uUXVlc3Rpb25JbmZvcm1hdGlvbi1zaXplOjR9LmxhcmdlLUdaTHlrTlFQey0tdWktbGliLXByaXZhdGUtaWNvblF1ZXN0aW9uSW5mb3JtYXRpb24tc2l6ZTo1fS5pY29uV3JhcHBlci1HWkx5a05RUHstLXVpLWxpYi1zaXplLWRlZjp2YXIoLS11aS1saWItaW4taWNvblF1ZXN0aW9uSW5mb3JtYXRpb24tc2l6ZSx2YXIoLS11aS1saWItcHJpdmF0ZS1pY29uUXVlc3Rpb25JbmZvcm1hdGlvbi1zaXplLDMpKTstLXVpLWxpYi1zaXplLWRlZi1zbWFsbDpjYWxjKG1heCgwLCAxIC0gKHZhcigtLXVpLWxpYi1zaXplLWRlZikgLSAzKSAqICh2YXIoLS11aS1saWItc2l6ZS1kZWYpIC0gMykpKTstLXVpLWxpYi1zaXplLWRlZi1tZWRpdW06Y2FsYyhtYXgoMCwgMSAtICh2YXIoLS11aS1saWItc2l6ZS1kZWYpIC0gNCkgKiAodmFyKC0tdWktbGliLXNpemUtZGVmKSAtIDQpKSk7LS11aS1saWItc2l6ZS1kZWYtbGFyZ2U6Y2FsYyhtYXgoMCwgMSAtICh2YXIoLS11aS1saWItc2l6ZS1kZWYpIC0gNSkgKiAodmFyKC0tdWktbGliLXNpemUtZGVmKSAtIDUpKSk7YmFja2dyb3VuZDojMDAwMDtib3JkZXI6MDtib3gtc2hhZG93Om5vbmU7Y29sb3I6dmFyKC0tdWktbGliLWljb24tcWktY29sb3IsdmFyKC0tdWktbGliLWljb24tcWktZGVmYXVsdC1jb2xvcikpO2Rpc3BsYXk6aW5saW5lLWJsb2NrO3BhZGRpbmc6MDt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7LS11aS1saWItaWNvbi1xdWVzdGlvbi1pbmZvcm1hdGlvbi1zaXplOmNhbGModmFyKC0tdWktbGliLXNpemUtZGVmLXNtYWxsKSoxOHB4ICsgdmFyKC0tdWktbGliLXNpemUtZGVmLW1lZGl1bSkqMjhweCArIHZhcigtLXVpLWxpYi1zaXplLWRlZi1sYXJnZSkqNDRweCk7aGVpZ2h0OnZhcigtLXVpLWxpYi1pY29uLXF1ZXN0aW9uLWluZm9ybWF0aW9uLXNpemUpO2xpbmUtaGVpZ2h0OnZhcigtLXVpLWxpYi1pY29uLXF1ZXN0aW9uLWluZm9ybWF0aW9uLXNpemUpO21pbi13aWR0aDp2YXIoLS11aS1saWItaWNvbi1xdWVzdGlvbi1pbmZvcm1hdGlvbi1zaXplKTtvdXRsaW5lOm5vbmU7b3ZlcmZsb3c6dmlzaWJsZTtwb3NpdGlvbjpyZWxhdGl2ZTt3aWR0aDp2YXIoLS11aS1saWItaWNvbi1xdWVzdGlvbi1pbmZvcm1hdGlvbi1zaXplKX0uaWNvbldyYXBwZXItR1pMeWtOUVA6Zm9jdXN7b3V0bGluZTpub25lfS5pY29uV3JhcHBlci1HWkx5a05RUDpmb2N1cy12aXNpYmxle291dGxpbmU6bm9uZX0uaWNvbldyYXBwZXItR1pMeWtOUVA6YWZ0ZXJ7Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci13aWR0aDoycHg7Ym94LXNpemluZzpib3JkZXItYm94O2NvbnRlbnQ6IiI7ZGlzcGxheTpub25lO2hlaWdodDpjYWxjKDEwMCUgKyA4cHgpO2luc2V0LWlubGluZS1zdGFydDotNHB4O3BvaW50ZXItZXZlbnRzOm5vbmU7cG9zaXRpb246YWJzb2x1dGU7dG9wOi00cHg7d2lkdGg6Y2FsYygxMDAlICsgOHB4KTt6LWluZGV4OjF9Lmljb25XcmFwcGVyLUdaTHlrTlFQOmZvY3VzOmFmdGVye2Rpc3BsYXk6YmxvY2t9Lmljb25XcmFwcGVyLUdaTHlrTlFQOmZvY3VzLXZpc2libGU6YWZ0ZXJ7ZGlzcGxheTpibG9ja30uaWNvbldyYXBwZXItR1pMeWtOUVA6Zm9jdXM6bm90KDpmb2N1cy12aXNpYmxlKTphZnRlcntkaXNwbGF5Om5vbmV9Lmljb25XcmFwcGVyLUdaTHlrTlFQOmFmdGVye2JvcmRlci1jb2xvcjp2YXIoLS1jb2xvci1mb2N1cy1vdXRsaW5lLWNvbG9yLWJsdWUpO2JvcmRlci1yYWRpdXM6Y2FsYyg1MCUgKyA0cHgpfS5pY29uV3JhcHBlci1HWkx5a05RUDp2aXNpdGVke2NvbG9yOnZhcigtLXVpLWxpYi1pY29uLXFpLWNvbG9yLHZhcigtLXVpLWxpYi1pY29uLXFpLWRlZmF1bHQtY29sb3IpKX1AbWVkaWEgKGFueS1ob3Zlcjpob3Zlcil7Lmljb25XcmFwcGVyLUdaTHlrTlFQOmhvdmVye2NvbG9yOnZhcigtLXVpLWxpYi1pY29uLXFpLWNvbG9yLWhvdmVyLHZhcigtLXVpLWxpYi1pY29uLXFpLWRlZmF1bHQtY29sb3ItaG92ZXIpKX19Lmljb25XcmFwcGVyLUdaTHlrTlFQOmFjdGl2ZXtjb2xvcjp2YXIoLS11aS1saWItaWNvbi1xaS1jb2xvci1hY3RpdmUsdmFyKC0tdWktbGliLWljb24tcWktZGVmYXVsdC1jb2xvci1hY3RpdmUpKX0uaWNvbi1HWkx5a05RUHtwb2ludGVyLWV2ZW50czpub25lfS5pY29uLUdaTHlrTlFQIHN2Z3toZWlnaHQ6MTAwJTt3aWR0aDoxMDAlfQ=="}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/21581.2d545ded5bf80054013f.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.775Z","timestamp":1785148034775,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/21581.2d545ded5bf80054013f.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\ncontent-type: text/css; charset=utf-8\r\ncontent-length: 36\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\netag: \"69f98b71-24\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Tue, 05 May 2026 06:17:21 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.51\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 05/05/2026 10:18:38\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 3d6069420b3c8477caccd8338ccb7cc7\r\ncdn-cache: HIT\r\naccept-ranges: bytes\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":36,"size_decoded":820,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with no line terminators","md5":"d4d291866ca84a01c99f34102b34439e","sha1":"2a2b4bba3b2241ebea6744f62e919062488bbf75","sha256":"3da7ff3e704dac00527ff53c6a70facb72b2775ff7a16e82349638c089ec2833","sha512":"5a9281d7efa8095c9a77d28d0fa16217906258bca22faf0527bf00a2920f6e994fa4d408e0963a83ba4cc98f4390fff13d26067da6ce530bfff8d683d1ac5c77","ssdeep":"","tlshash":"ef800008f82a28bb0f30c20c0802b080a808f2ac8ca303cc2080a8023088cb28223b0a","first_seen":"2023-05-18T21:44:29Z","last_seen":"2026-07-27T10:28:13.872416Z","times_seen":46,"resource_available":false,"data":"Lm5vV3JhcC1DcDkwcFJxcXt3aGl0ZS1zcGFjZTpub3dyYXB9"}},"time_used":3,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":3,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/2511.fdcebf22153266954ced.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.834Z","timestamp":1785148034834,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/2511.fdcebf22153266954ced.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\ncontent-type: text/css; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding, Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\netag: W/\"6a06d56b-e3c\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Fri, 15 May 2026 08:12:27 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.53\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 05/15/2026 10:19:07\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: f404ecb36a91924b677aad14b5fea0ec\r\ncdn-cache: HIT\r\ncontent-encoding: br\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":3644,"size_decoded":2058,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with very long lines (3644), with no line terminators","md5":"b36f1c6dc4809321674899d7db63efbc","sha1":"e7698bfae9d27bd311afc23d57fa299f1626c7b8","sha256":"59029b82a34456bace7f12db1a763f095ecf3b09460af8db4958f8576677cada","sha512":"792c0499a2f3abc83c25e62afb0120edc82d3a7d8db37fffee2020c0823e709cf93e86955237bdc62f5401846da1ae490f12ff7d631f954251fcd3d080102b06","ssdeep":"","tlshash":"0a711045f241a634fe238e7a2b45f2282210e836d443eefbef93966840c72f72655708","first_seen":"2026-06-04T22:48:06.092202Z","last_seen":"2026-07-27T10:28:13.967422Z","times_seen":15,"resource_available":false,"data":"W2RhdGEtdGhlbWU9bGlnaHRdey0tXzAtaGwweDp2YXIoLS1jb2xvci1jb2xkLWdyYXktOTAwKX1bZGF0YS10aGVtZT1kYXJrXXstLV8wLWhsMHg6dmFyKC0tY29sb3ItY29sZC1ncmF5LTIwMCl9LmNvbnRhaW5lci1oU3FCWDZpYntjb2xvcjp2YXIoLS1fMC1obDB4KTtkaXNwbGF5OmJsb2NrO2ZvbnQtc2l6ZToxM3B4O2ZvbnQtd2VpZ2h0OjYwMDtsaW5lLWhlaWdodDoxN3B4O21hcmdpbi1ib3R0b206OHB4fVtkYXRhLXRoZW1lPWxpZ2h0XXstLV8wLWoycGk6dmFyKC0tY29sb3ItY29sZC1ncmF5LTkwMCk7LS1fMS1qMnBpOnZhcigtLWNvbG9yLXJpcGUtcmVkLTQwMCk7LS1fMi1qMnBpOnZhcigtLWNvbG9yLXR2LWJsdWUtNTAwKX1bZGF0YS10aGVtZT1kYXJrXXstLV8wLWoycGk6dmFyKC0tY29sb3ItY29sZC1ncmF5LTIwMCk7LS1fMS1qMnBpOnZhcigtLWNvbG9yLXJpcGUtcmVkLTQwMCk7LS1fMi1qMnBpOnZhcigtLWNvbG9yLXR2LWJsdWUtNTAwKX0ud3JhcC1OWU41U1NHaHthbGlnbi1pdGVtczpjZW50ZXI7ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVufS5jb250YWluZXItTllONVNTR2h7YWxpZ24taXRlbXM6Y2VudGVyO2NvbG9yOnZhcigtLWNvbG9yLXRleHQtcHJpbWFyeSk7ZGlzcGxheTpmbGV4O2ZsZXgtd3JhcDp3cmFwO3Bvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOjEwMCV9LnRpdGxlLU5ZTjVTU0doe2NvbG9yOnZhcigtLWNvbG9yLXRleHQtcHJpbWFyeSk7bWFyZ2luLWlubGluZS1lbmQ6OHB4fUBtZWRpYSAoYW55LWhvdmVyOmhvdmVyKXsudGl0bGUtTllONVNTR2gubGluay1OWU41U1NHaDpob3Zlcntjb2xvcjp2YXIoLS1fMi1qMnBpKTtjdXJzb3I6cG9pbnRlcn19LnRpdGxlLU5ZTjVTU0doLndpdGhTb2x1dGlvbi1OWU41U1NHaHttYXJnaW4taW5saW5lLWVuZDo0cHh9LnVwY29taW5nRWFybmluZ3MtTllONVNTR2h7Y29sb3I6dmFyKC0tY29sb3ItZGVmYXVsdC1ncmF5KTtkaXNwbGF5OmZsZXg7Zm9udC1zaXplOjEzcHg7Zm9udC13ZWlnaHQ6NDAwO21hcmdpbi1pbmxpbmUtZW5kOmF1dG99LmRheXNDb3VudGVyLU5ZTjVTU0doe21hcmdpbi1pbmxpbmUtZW5kOmF1dG99LmFsaWduUmlnaHQtTllONVNTR2h7bWFyZ2luLWlubGluZS1lbmQ6MDttYXJnaW4taW5saW5lLXN0YXJ0OmF1dG99LnVwY29taW5nRGF0ZS1OWU41U1NHaHtjb2xvcjp2YXIoLS1fMC1qMnBpKTttYXJnaW4taW5saW5lLXN0YXJ0OjRweH0udXBjb21pbmdEYXRlVG9kYXktTllONVNTR2h7Y29sb3I6dmFyKC0tXzEtajJwaSk7dGV4dC10cmFuc2Zvcm06bG93ZXJjYXNlfS50YWJzLU5ZTjVTU0doe2FsaWduLXNlbGY6ZmxleC1zdGFydDt3aGl0ZS1zcGFjZTpub3dyYXB9Lmljb24tTllONVNTR2h7ZGlzcGxheTppbmxpbmUtZmxleDt2ZXJ0aWNhbC1hbGlnbjp0ZXh0LWJvdHRvbX0uc29sdXRpb24tTllONVNTR2h7YWxpZ24tc2VsZjpjZW50ZXI7bWFyZ2luLWlubGluZS1lbmQ6OHB4fS5kYXlzQ291bnRlci1OWU41U1NHaHtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWNvbG9yLWJvcmRlci1wcmltYXJ5LW5ldXRyYWwtc2VtaS1ib2xkKTtib3gtc2l6aW5nOmJvcmRlci1ib3g7ZGlzcGxheTppbmxpbmUtZmxleDtpbnNldC1pbmxpbmUtZW5kOjA7anVzdGlmeS1jb250ZW50OmNlbnRlcjttaW4td2lkdGg6MjhweDtwb3NpdGlvbjphYnNvbHV0ZTstLXVpLWxpYi1iYWRnZS1wYWRkaW5nLXJpZ2h0OjRweDstLXVpLWxpYi1iYWRnZS1wYWRkaW5nLWxlZnQ6NHB4Oy0tdWktbGliLWJhZGdlLWNvbG9yLWNvbnRlbnQ6dmFyKC0tY29sb3ItY29udGFpbmVyLWZpbGwtc2Vjb25kYXJ5LW5ldXRyYWwtc2VtaS1ib2xkKTstLXVpLWxpYi1iYWRnZS1iYWNrZ3JvdW5kOiMwMDAwfS5kYXlzQ291bnRlci1OWU41U1NHaC5kYXlzQ291bnRlclNvb24tTllONVNTR2h7LS11aS1saWItYmFkZ2UtY29sb3ItY29udGVudDp2YXIoLS1jb2xvci1jb250YWluZXItZmlsbC1wcmltYXJ5LWRhbmdlcik7Ym9yZGVyLWNvbG9yOnZhcigtLWNvbG9yLWJvcmRlci1wcmltYXJ5LWRhbmdlcil9LmVzdGltYXRlLV9sWHdrVnhPe291dGxpbmU6MS41cHggdmFyKC0tY29sb3ItY29udGVudC10ZXh0LXNvY2lhbC1zZWNvbmRhcnkpIHNvbGlkO291dGxpbmUtb2Zmc2V0Oi0xLjVweH0uaXRlbS1EVm5zM1NaZnthbGlnbi1pdGVtczpiYXNlbGluZTtjb2xvcjp2YXIoLS1jb2xvci1jb250ZW50LXRleHQtc29jaWFsLXByaW1hcnkpO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpyb3c7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47cGFkZGluZzozcHggMH0udGl0bGUtRFZuczNTWmZ7ZGlzcGxheTpmbGV4O2ZvbnQtZmVhdHVyZS1zZXR0aW5nczoidG51bSIgb24sImxudW0iIG9uO2ZvbnQtc3R5bGU6bm9ybWFsOy0tdWktbGliLXR5cG9ncmFwaHktZm9udC1zaXplOjEzcHg7Zm9udC1zaXplOnZhcigtLXVpLWxpYi10eXBvZ3JhcGh5LWZvbnQtc2l6ZSk7Zm9udC13ZWlnaHQ6NDAwfS5kYXRhLURWbnMzU1pmLC50aXRsZS1EVm5zM1NaZntmb250LWZhbWlseTotYXBwbGUtc3lzdGVtLEJsaW5rTWFjU3lzdGVtRm9udCxUcmVidWNoZXQgTVMsUm9ib3RvLFVidW50dSxzYW5zLXNlcmlmOy0tdWktbGliLXR5cG9ncmFwaHktbGluZS1oZWlnaHQ6MThweDtsaW5lLWhlaWdodDp2YXIoLS11aS1saWItdHlwb2dyYXBoeS1saW5lLWhlaWdodCl9LmRhdGEtRFZuczNTWmZ7Zm9udC1mZWF0dXJlLXNldHRpbmdzOiJ0bnVtIiBvbiwibG51bSIgb247LS11aS1saWItdHlwb2dyYXBoeS1mb250LXNpemU6MTNweDthbGlnbi1zZWxmOmJhc2VsaW5lO2ZvbnQtc2l6ZTp2YXIoLS11aS1saWItdHlwb2dyYXBoeS1mb250LXNpemUpO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtd2VpZ2h0OjYwMH0uc3dhdGNoLURWbnMzU1pme21hcmdpbi1ibG9jazo1cHggMDttYXJnaW4taW5saW5lOjAgOHB4fS50ZXh0LVhncjRLak5he2ZvbnQtZmFtaWx5Oi1hcHBsZS1zeXN0ZW0sQmxpbmtNYWNTeXN0ZW1Gb250LFRyZWJ1Y2hldCBNUyxSb2JvdG8sVWJ1bnR1LHNhbnMtc2VyaWY7Zm9udC1mZWF0dXJlLXNldHRpbmdzOiJ0bnVtIiBvbiwibG51bSIgb247Zm9udC1zdHlsZTpub3JtYWw7LS11aS1saWItdHlwb2dyYXBoeS1mb250LXNpemU6MTRweDtmb250LXNpemU6dmFyKC0tdWktbGliLXR5cG9ncmFwaHktZm9udC1zaXplKTtmb250LXdlaWdodDo0MDA7LS11aS1saWItdHlwb2dyYXBoeS1saW5lLWhlaWdodDoxOHB4O2xpbmUtaGVpZ2h0OnZhcigtLXVpLWxpYi10eXBvZ3JhcGh5LWxpbmUtaGVpZ2h0KX0ucGllVGl0bGUtcno3NkxlSm17Zm9udC1zaXplOjE2cHg7bGluZS1oZWlnaHQ6MjRweH0uY2hhcnRXcmFwLXJ6NzZMZUpte2hlaWdodDoxMjBweDt3aWR0aDoxMjBweH0uY2hhcnRDb250YWluZXItcno3NkxlSm17YWxpZ24taXRlbXM6Y2VudGVyO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW59LmNvbnRhaW5lci1ubE41T0RlWHtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2p1c3RpZnktY29udGVudDpjZW50ZXJ9Lm5leHREYXRlLW5sTjVPRGVYe3doaXRlLXNwYWNlOm5vd3JhcH0ucmVsZWFzZVRvZGF5LW5sTjVPRGVYe3RleHQtdHJhbnNmb3JtOmxvd2VyY2FzZX0uc3RhdHNWYWx1ZS1ubE41T0RlWHttYXJnaW4taW5saW5lLXN0YXJ0OjRweH0="}},"time_used":3,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":3,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/35964.674ba7d263ba904a72fe.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:13.807Z","timestamp":1785148033807,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/35964.674ba7d263ba904a72fe.js HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:13 GMT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a608293-2aa1\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Wed, 22 Jul 2026 08:42:59 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/22/2026 11:01:54\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 4b3119bcca52f9da54098449064a2204\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":10913,"size_decoded":4752,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (3067)","md5":"1cfd30bb59f5d160aa58b0be41283ac1","sha1":"b94b3e1e784fd7bcd065da451b004964dfeb2491","sha256":"1284d9b4da104dbe61c8a92893637a46422b5e5260db64d790cccd623141498f","sha512":"9a3d3c37d120acb9760ed8e95106365aaf7a0a7ec50806f472536a523a6cbd869422e3133918092b0798d4fddfcd08b25a6564bf3794b61b542c07bc1f537d60","ssdeep":"192:PQyzfAdjCtF8IDtU7tkxG2TUtilPL1nUGCARx6e8umwGkZrMq/662pv2eh:IyzfAJCtF8ID2exjJLV/J89kZrMcmpRh","tlshash":"1d32f761317144a296fb91b9d127470ba33722ae38078aad705c6cec80cd7e67179bf8","first_seen":"2026-07-23T05:21:04.169717Z","last_seen":"2026-07-27T11:47:31.130589Z","times_seen":72,"resource_available":true,"data":"KHNlbGYud2VicGFja0NodW5rdHJhZGluZ3ZpZXc9c2VsZi53ZWJwYWNrQ2h1bmt0cmFkaW5ndmlld3x8W10pLnB1c2goW1szNTk2NCw2MzU5NV0sezk1ODYzOShlKXtlLmV4cG9ydHM9e21lbnVXcmFwOiJtZW51V3JhcC1sQkl4SXd0eiIsaXNNZWFzdXJpbmc6ImlzTWVhc3VyaW5nLWxCSXhJd3R6IixzY3JvbGxXcmFwOiJzY3JvbGxXcmFwLWxCSXhJd3R6Iixtb21lbnR1bUJhc2VkOiJtb21lbnR1bUJhc2VkLWxCSXhJd3R6IixtZW51Qm94OiJtZW51Qm94LWxCSXhJd3R6Iixpc0hpZGRlbjoiaXNIaWRkZW4tbEJJeEl3dHoifX0sNjgxMjI0KGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse01lbnVDb250ZXh0OigpPT5vfSk7Y29uc3Qgbz1uKDc3OTQ3NCkuY3JlYXRlQ29udGV4dChudWxsKX0sMTQ1MTUwKGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse0RFRkFVTFRfTUVOVV9USEVNRTooKT0+XyxNZW51OigpPT5nfSk7dmFyIG89big3Nzk0NzQpLHM9big5MTQ0ODcpLGk9bi5uKHMpLHI9bigxMzg2MzgpLGw9big2MDc4MzIpLGE9big5MDM0MiksdT1uKDg5MTIwOSksYz1uKDY0MDc0NCksZD1uKDUxODc1KSxoPW4oNzI3MDkpLHA9bigyNzYwMTkpLG09big2ODEyMjQpLGY9big5NTg2MzkpO2NvbnN0IF89Zjt2YXIgdjshZnVuY3Rpb24oZSl7ZVtlLkluZGVudEZyb21XaW5kb3c9MF09IkluZGVudEZyb21XaW5kb3cifSh2fHwodj17fSkpO2NsYXNzIGcgZXh0ZW5kcyBvLlB1cmVDb21wb25lbnR7Y29uc3RydWN0b3IoZSl7c3VwZXIoZSksdGhpcy5fY29udGFpbmVyUmVmPW51bGwsdGhpcy5fc2Nyb2xsV3JhcFJlZj1udWxsLHRoaXMuX3JhZj1udWxsLHRoaXMuX3Njcm9sbFJhZj1udWxsLHRoaXMuX3Njcm9sbFRpbWVvdXQ9dm9pZCAwLHRoaXMuX21hbmFnZXI9bmV3IGEuT3ZlcmxhcE1hbmFnZXIsdGhpcy5faG90a2V5cz1udWxsLHRoaXMuX3Njcm9sbD0wLHRoaXMuX2hhbmRsZUNvbnRhaW5lclJlZj1lPT57dGhpcy5fY29udGFpbmVyUmVmPWUsdGhpcy5wcm9wcy5yZWZlcmVuY2UmJigiZnVuY3Rpb24iPT10eXBlb2YgdGhpcy5wcm9wcy5yZWZlcmVuY2UmJnRoaXMucHJvcHMucmVmZXJlbmNlKGUpLCJvYmplY3QiPT10eXBlb2YgdGhpcy5wcm9wcy5yZWZlcmVuY2UmJih0aGlzLnByb3BzLnJlZmVyZW5jZS5jdXJyZW50PWUpKX0sdGhpcy5faGFuZGxlU2Nyb2xsV3JhcFJlZj1lPT57dGhpcy5fc2Nyb2xsV3JhcFJlZj1lLCJmdW5jdGlvbiI9PXR5cGVvZiB0aGlzLnByb3BzLnNjcm9sbFdyYXBSZWZlcmVuY2UmJnRoaXMucHJvcHMuc2Nyb2xsV3JhcFJlZmVyZW5jZShlKSwib2JqZWN0Ij09dHlwZW9mIHRoaXMucHJvcHMuc2Nyb2xsV3JhcFJlZmVyZW5jZSYmKHRoaXMucHJvcHMuc2Nyb2xsV3JhcFJlZmVyZW5jZS5jdXJyZW50PWUpfSx0aGlzLl9oYW5kbGVDdXN0b21SZW1lYXN1cmVEZWxlZ2F0ZT0oKT0+e3RoaXMuX3Jlc2l6ZUZvcmNlZCgpLHRoaXMuX2hhbmRsZU1lYXN1cmUoKX0sdGhpcy5faGFuZGxlTWVhc3VyZT0oe2NhbGxiYWNrOmUsZm9yY2VSZWNhbGNQb3NpdGlvbjp0fT17fSk9PntpZih0aGlzLnN0YXRlLmlzTWVhc3VyZVZhbGlkJiYhdClyZXR1cm47Y29uc3R7cG9zaXRpb246bn09dGhpcy5wcm9wcyxvPSgwLHIuZW5zdXJlTm90TnVsbCkodGhpcy5fY29udGFpbmVyUmVmKTtsZXQgcz1vLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO2NvbnN0IGk9ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodCxsPWRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aCxhPXRoaXMucHJvcHMuY2xvc2VPblNjcm9sbE91dHNpZGVPZmZzZXQ/PzA7bGV0IHU9aS0wLWE7Y29uc3QgZD1zLmhlaWdodD51O2lmKGQpeygwLHIuZW5zdXJlTm90TnVsbCkodGhpcy5fc2Nyb2xsV3JhcFJlZikuc3R5bGUub3ZlcmZsb3dZPSJzY3JvbGwiLHM9by5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKX1jb25zdHt3aWR0aDpoLGhlaWdodDpwfT1zLG09ImZ1bmN0aW9uIj09dHlwZW9mIG4/bih7Y29udGVudFdpZHRoOmgsY29udGVudEhlaWdodDpwLGF2YWlsYWJsZVdpZHRoOmwsYXZhaWxhYmxlSGVpZ2h0Oml9KTpuLGY9bT8uaW5kZW50RnJvbVdpbmRvdz8ubGVmdD8/MCxfPWwtKG0ub3ZlcnJpZGVXaWR0aD8/aCktKG0/LmluZGVudEZyb21XaW5kb3c/LnJpZ2h0Pz8wKSx2PSgwLGMuY2xhbXApKG0ueCxmLE1hdGgubWF4KGYsXykpLGc9KG0/LmluZGVudEZyb21XaW5kb3c/LnRvcD8/MCkrYSxDPWktKG0ub3ZlcnJpZGVIZWlnaHQ/P3ApLShtPy5pbmRlbnRGcm9tV2luZG93Py5ib3R0b20/PzApO2xldCBiPSgwLGMuY2xhbXApKG0ueSxnLE1hdGgubWF4KGcsQykpO2lmKG0uZm9yYmlkQ29ycmVjdFlDb29yZCYmYjxtLnkmJih1LT1tLnktYixiPW0ueSksdCYmdm9pZCAwIT09dGhpcy5wcm9wcy5jbG9zZU9uU2Nyb2xsT3V0c2lkZU9mZnNldCYmbS55PD10aGlzLnByb3BzLmNsb3NlT25TY3JvbGxPdXRzaWRlT2Zmc2V0KXJldHVybiB2b2lkIHRoaXMuX2hhbmRsZUdsb2JhbENsb3NlKCEwKTtjb25zdCB4PW0ub3ZlcnJpZGVIZWlnaHQ/PyhkP3U6dm9pZCAwKTt0aGlzLnNldFN0YXRlKHthcHBlYXJpbmdNZW51SGVpZ2h0OnQ/dGhpcy5zdGF0ZS5hcHBlYXJpbmdNZW51SGVpZ2h0OngsYXBwZWFyaW5nTWVudVdpZHRoOnQ/dGhpcy5zdGF0ZS5hcHBlYXJpbmdNZW51V2lkdGg6bS5vdmVycmlkZVdpZHRoLGFwcGVhcmluZ1Bvc2l0aW9uOnt4OnYseTpifSxpc01lYXN1cmVWYWxpZDohMH0sKCgpPT57dGhpcy5wcm9wcy5kb05vdFJlc3RvcmVQb3NpdGlvbnx8dGhpcy5fcmVzdG9yZVNjcm9sbFBvc2l0aW9uKCksZSYmZSgpfSkpfSx0aGlzLl9yZXN0b3JlU2Nyb2xsUG9zaXRpb249KCk9Pntjb25zdCBlPSgwLHIuZW5zdXJlTm90TnVsbCkodGhpcy5fc2Nyb2xsV3JhcFJlZik7ZS5zY3JvbGxUb3A9dGhpcy5fc2Nyb2xsO2NvbnN0IHQ9ZG9jdW1lbnQuYWN0aXZlRWxlbWVudCxuPSgwLHIuZW5zdXJlTm90TnVsbCkodGhpcy5fY29udGFpbmVyUmVmKTtpZih0IGluc3RhbmNlb2YgSFRNTEVsZW1lbnQmJm4uY29udGFpbnModCkmJiF0aGlzLl9pc0VsZW1lbnRGdWxseVZpc2libGUodCxlKSl0cnl7CnQuc2Nyb2xsSW50b1ZpZXcoKX1jYXRjaChlKXt9fSx0aGlzLl9pc0VsZW1lbnRGdWxseVZpc2libGU9KGUsdCk9Pntjb25zdCBuPWUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksbz10LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3JldHVybiBuLnRvcD49by50b3AmJm4uYm90dG9tPD1vLmJvdHRvbX0sdGhpcy5fcmVzaXplRm9yY2VkPSgpPT57dGhpcy5zZXRTdGF0ZSh7YXBwZWFyaW5nTWVudUhlaWdodDp2b2lkIDAsYXBwZWFyaW5nTWVudVdpZHRoOnZvaWQgMCxhcHBlYXJpbmdQb3NpdGlvbjp2b2lkIDAsaXNNZWFzdXJlVmFsaWQ6dm9pZCAwfSl9LHRoaXMuX3Jlc2l6ZT0oKT0+e251bGw9PT10aGlzLl9yYWYmJih0aGlzLl9yYWY9cmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgoKT0+e3RoaXMuc2V0U3RhdGUoe2FwcGVhcmluZ01lbnVIZWlnaHQ6dm9pZCAwLGFwcGVhcmluZ01lbnVXaWR0aDp2b2lkIDAsYXBwZWFyaW5nUG9zaXRpb246dm9pZCAwLGlzTWVhc3VyZVZhbGlkOnZvaWQgMH0pLHRoaXMuX3JhZj1udWxsfSkpKX0sdGhpcy5faGFuZGxlR2xvYmFsQ2xvc2U9ZT0+e3RoaXMucHJvcHMub25DbG9zZShlKX0sdGhpcy5faGFuZGxlU2xvdD1lPT57dGhpcy5fbWFuYWdlci5zZXRDb250YWluZXIoZSl9LHRoaXMuX2hhbmRsZVNjcm9sbD0oKT0+e3RoaXMuX3Njcm9sbD0oMCxyLmVuc3VyZU5vdE51bGwpKHRoaXMuX3Njcm9sbFdyYXBSZWYpLnNjcm9sbFRvcH0sdGhpcy5faGFuZGxlU2Nyb2xsT3V0c2lkZUVuZD0oKT0+e2NsZWFyVGltZW91dCh0aGlzLl9zY3JvbGxUaW1lb3V0KSx0aGlzLl9zY3JvbGxUaW1lb3V0PXNldFRpbWVvdXQoKCgpPT57dGhpcy5faGFuZGxlTWVhc3VyZSh7Zm9yY2VSZWNhbGNQb3NpdGlvbjohMH0pfSksODApfSx0aGlzLl9oYW5kbGVTY3JvbGxPdXRzaWRlPWU9PntlLnRhcmdldCE9PXRoaXMuX3Njcm9sbFdyYXBSZWYmJih0aGlzLl9oYW5kbGVTY3JvbGxPdXRzaWRlRW5kKCksbnVsbD09PXRoaXMuX3Njcm9sbFJhZiYmKHRoaXMuX3Njcm9sbFJhZj1yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCgpPT57dGhpcy5faGFuZGxlTWVhc3VyZSh7Zm9yY2VSZWNhbGNQb3NpdGlvbjohMH0pLHRoaXMuX3Njcm9sbFJhZj1udWxsfSkpKSl9LHRoaXMuc3RhdGU9e319Y29tcG9uZW50RGlkTW91bnQoKXt0aGlzLl9oYW5kbGVNZWFzdXJlKHtjYWxsYmFjazp0aGlzLnByb3BzLm9uT3Blbn0pO2NvbnN0e2N1c3RvbUNsb3NlRGVsZWdhdGU6ZT1wLmdsb2JhbENsb3NlRGVsZWdhdGUsY3VzdG9tUmVtZWFzdXJlRGVsZWdhdGU6dH09dGhpcy5wcm9wcztlLnN1YnNjcmliZSh0aGlzLHRoaXMuX2hhbmRsZUdsb2JhbENsb3NlKSx0Py5zdWJzY3JpYmUobnVsbCx0aGlzLl9oYW5kbGVDdXN0b21SZW1lYXN1cmVEZWxlZ2F0ZSksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsdGhpcy5fcmVzaXplKTtjb25zdCBuPW51bGwhPT10aGlzLmNvbnRleHQ7dGhpcy5faG90a2V5c3x8bnx8KHRoaXMuX2hvdGtleXM9aC5jcmVhdGVHcm91cCh7ZGVzYzoiUG9wdXAgbWVudSJ9KSx0aGlzLl9ob3RrZXlzLmFkZCh7ZGVzYzoiQ2xvc2UiLGhvdGtleToyNyxoYW5kbGVyOigpPT57dGhpcy5wcm9wcy5vbktleWJvYXJkQ2xvc2UmJnRoaXMucHJvcHMub25LZXlib2FyZENsb3NlKCksdGhpcy5faGFuZGxlR2xvYmFsQ2xvc2UoKX19KSksdGhpcy5wcm9wcy5yZXBvc2l0aW9uT25TY3JvbGwmJndpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJzY3JvbGwiLHRoaXMuX2hhbmRsZVNjcm9sbE91dHNpZGUse2NhcHR1cmU6ITB9KX1jb21wb25lbnREaWRVcGRhdGUoKXt0aGlzLl9oYW5kbGVNZWFzdXJlKCl9Y29tcG9uZW50V2lsbFVubW91bnQoKXtjb25zdHtjdXN0b21DbG9zZURlbGVnYXRlOmU9cC5nbG9iYWxDbG9zZURlbGVnYXRlLGN1c3RvbVJlbWVhc3VyZURlbGVnYXRlOnR9PXRoaXMucHJvcHM7ZS51bnN1YnNjcmliZSh0aGlzLHRoaXMuX2hhbmRsZUdsb2JhbENsb3NlKSx0Py51bnN1YnNjcmliZShudWxsLHRoaXMuX2hhbmRsZUN1c3RvbVJlbWVhc3VyZURlbGVnYXRlKSx3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigicmVzaXplIix0aGlzLl9yZXNpemUpLHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJzY3JvbGwiLHRoaXMuX2hhbmRsZVNjcm9sbE91dHNpZGUse2NhcHR1cmU6ITB9KSx0aGlzLl9ob3RrZXlzJiYodGhpcy5faG90a2V5cy5kZXN0cm95KCksdGhpcy5faG90a2V5cz1udWxsKSxudWxsIT09dGhpcy5fcmFmJiYoY2FuY2VsQW5pbWF0aW9uRnJhbWUodGhpcy5fcmFmKSx0aGlzLl9yYWY9bnVsbCksbnVsbCE9PXRoaXMuX3Njcm9sbFJhZiYmKGNhbmNlbEFuaW1hdGlvbkZyYW1lKHRoaXMuX3Njcm9sbFJhZiksdGhpcy5fc2Nyb2xsUmFmPW51bGwpLHRoaXMuX3Njcm9sbFRpbWVvdXQmJmNsZWFyVGltZW91dCh0aGlzLl9zY3JvbGxUaW1lb3V0KX1yZW5kZXIoKXtjb25zdHtpZDplLHJvbGU6dCwiYXJpYS1sYWJlbCI6biwiYXJpYS1sYWJlbGxlZGJ5IjpzLCJhcmlhLWFjdGl2ZWRlc2NlbmRhbnQiOnIsImFyaWEtaGlkZGVuIjphLCJhcmlhLWRlc2NyaWJlZGJ5IjpjLCJhcmlhLWludmFsaWQiOmgsY2hpbGRyZW46cCxtaW5XaWR0aDpfLHRoZW1lOnY9ZixjbGFzc05hbWU6ZyxtYXhIZWlnaHQ6Yixvbk1vdXNlT3Zlcjp4LG9uTW91c2VPdXQ6TSxvbktleURvd246dyxvbkZvY3VzOkUsb25CbHVyOlJ9PXRoaXMucHJvcHMse2FwcGVhcmluZ01lbnVIZWlnaHQ6UyxhcHBlYXJpbmdNZW51V2lkdGg6VyxhcHBlYXJpbmdQb3NpdGlvbjp5LGlzTWVhc3VyZVZhbGlkOk99PXRoaXMuc3RhdGUsRD17Ii0tdWkta2l0LW1lbnUtbWF4LXdpZHRoIjpgJHt5JiZ5Lnh9cHhgLG1heFdpZHRoOiJjYWxjKDEwMHZ3IC0gdmFyKC0tdWkta2l0LW1lbnUtbWF4LXdpZHRoKSAtIDZweCkifTtyZXR1cm4gby5jcmVhdGVFbGVtZW50KG0uTWVudUNvbnRleHQuUHJvdmlkZXIse3ZhbHVlOnRoaXN9LG8uY3JlYXRlRWxlbWVudCh1LlN1Ym1lbnVIYW5kbGVyLG51bGwsby5jcmVhdGVFbGVtZW50KGwuU2xvdENvbnRleHQuUHJvdmlkZXIse3ZhbHVlOnRoaXMuX21hbmFnZXJ9LG8uY3JlYXRlRWxlbWVudCgiZGl2Iix7aWQ6ZSwKcm9sZTp0LCJhcmlhLWxhYmVsIjpuLCJhcmlhLWxhYmVsbGVkYnkiOnMsImFyaWEtYWN0aXZlZGVzY2VuZGFudCI6ciwiYXJpYS1oaWRkZW4iOmEsImFyaWEtZGVzY3JpYmVkYnkiOmMsImFyaWEtaW52YWxpZCI6aCxjbGFzc05hbWU6aSgpKGcsdi5tZW51V3JhcCwhTyYmdi5pc01lYXN1cmluZyksc3R5bGU6e2hlaWdodDpTLGxlZnQ6eSYmeS54LG1pbldpZHRoOl8scG9zaXRpb246ImZpeGVkIix0b3A6eSYmeS55LHdpZHRoOlcsLi4udGhpcy5wcm9wcy5saW1pdE1heFdpZHRoJiZEfSwiZGF0YS1uYW1lIjp0aGlzLnByb3BzWyJkYXRhLW5hbWUiXSwiZGF0YS1xYS1pZCI6dGhpcy5wcm9wcy5kYXRhUWFJZCwiZGF0YS10b29sdGlwLXNob3ctb24tZm9jdXMiOnRoaXMucHJvcHNbImRhdGEtdG9vbHRpcC1zaG93LW9uLWZvY3VzIl0scmVmOnRoaXMuX2hhbmRsZUNvbnRhaW5lclJlZixvblNjcm9sbENhcHR1cmU6dGhpcy5wcm9wcy5vblNjcm9sbCxvbkNvbnRleHRNZW51OmQucHJldmVudERlZmF1bHRGb3JDb250ZXh0TWVudSx0YWJJbmRleDp0aGlzLnByb3BzLnRhYkluZGV4LG9uTW91c2VPdmVyOngsb25Nb3VzZU91dDpNLG9uS2V5RG93bjp3LG9uRm9jdXM6RSxvbkJsdXI6Un0sby5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6aSgpKHYuc2Nyb2xsV3JhcCwhdGhpcy5wcm9wcy5ub01vbWVudHVtQmFzZWRTY3JvbGwmJnYubW9tZW50dW1CYXNlZCksc3R5bGU6e292ZXJmbG93WTp2b2lkIDAhPT1TPyJzY3JvbGwiOiJhdXRvIixtYXhIZWlnaHQ6Yn0sb25TY3JvbGxDYXB0dXJlOnRoaXMuX2hhbmRsZVNjcm9sbCxyZWY6dGhpcy5faGFuZGxlU2Nyb2xsV3JhcFJlZn0sby5jcmVhdGVFbGVtZW50KEMse2NsYXNzTmFtZTp2Lm1lbnVCb3h9LHApKSkpLG8uY3JlYXRlRWxlbWVudChsLlNsb3Qse3JlZmVyZW5jZTp0aGlzLl9oYW5kbGVTbG90fSkpKX11cGRhdGUoZSl7ZT90aGlzLl9yZXNpemVGb3JjZWQoKTp0aGlzLl9yZXNpemUoKX1mb2N1cyhlKXt0aGlzLl9jb250YWluZXJSZWY/LmZvY3VzKGUpfWJsdXIoKXt0aGlzLl9jb250YWluZXJSZWY/LmJsdXIoKX19ZnVuY3Rpb24gQyhlKXtjb25zdCB0PSgwLHIuZW5zdXJlTm90TnVsbCkoKDAsby51c2VDb250ZXh0KSh1LlN1Ym1lbnVDb250ZXh0KSksbj1vLnVzZVJlZihudWxsKTtyZXR1cm4gby5jcmVhdGVFbGVtZW50KCJkaXYiLHtyZWY6bixjbGFzc05hbWU6ZS5jbGFzc05hbWUsb25Nb3VzZU92ZXI6ZnVuY3Rpb24oZSl7aWYoIShudWxsIT09dC5jdXJyZW50JiZlLnRhcmdldCBpbnN0YW5jZW9mIE5vZGUmJihvPWUudGFyZ2V0LG4uY3VycmVudD8uY29udGFpbnMobykpKSlyZXR1cm47dmFyIG87dC5pc1N1Ym1lbnVOb2RlKGUudGFyZ2V0KXx8dC5zZXRDdXJyZW50KG51bGwpfSwiZGF0YS1xYS1pZCI6Im1lbnUtaW5uZXIifSxlLmNoaWxkcmVuKX1nLmNvbnRleHRUeXBlPXUuU3VibWVudUNvbnRleHR9LDYzMjk5MihlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtDbG9zZURlbGVnYXRlQ29udGV4dDooKT0+aX0pO3ZhciBvPW4oNzc5NDc0KSxzPW4oMjc2MDE5KTtjb25zdCBpPW8uY3JlYXRlQ29udGV4dChzLmdsb2JhbENsb3NlRGVsZWdhdGUpfSw4MzU5NjQoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7UG9wdXBNZW51OigpPT5ofSk7dmFyIG89big3Nzk0NzQpLHM9bigxMjkzNjUpLGk9big5MjgxMzIpLHI9big1ODU0OCksbD1uKDIzNjc2NSksYT1uKDIyNzk0OSksdT1uKDE0NTE1MCksYz1uKDYzMjk5MiksZD1uKDMwMTkzNyk7ZnVuY3Rpb24gaChlKXtjb25zdHtjb250cm9sbGVyOnQsY2hpbGRyZW46bixpc09wZW5lZDpoLGNsb3NlT25DbGlja091dHNpZGU6cD0hMCxkb05vdENsb3NlT246bSxvbkNsaWNrT3V0c2lkZTpmLG9uQ2xvc2U6XyxvbktleWJvYXJkQ2xvc2U6dixkYXRhUWFJZDpnPSJwb3B1cC1tZW51LWNvbnRhaW5lciIsY2xvc2VPblNjcm9sbE91dHNpZGVPZmZzZXQ6QywuLi5ifT1lLHg9KDAsby51c2VDb250ZXh0KShjLkNsb3NlRGVsZWdhdGVDb250ZXh0KSxNPW8udXNlQ29udGV4dChhLk1lbnVXaWR0aENvbnRleHQpLHc9KDAsby51c2VDb250ZXh0KShkLlJlbWVhc3VyZURlbGVnYXRlQ29udGV4dCksRT0oMCxsLnVzZU91dHNpZGVFdmVudCkoe2hhbmRsZXI6ZnVuY3Rpb24oZSl7ZiYmZihlKTtpZighcClyZXR1cm47Y29uc3QgdD0oMCxpLmRlZmF1bHQpKG0pP20oKTpudWxsPT1tP1tdOlttXTtpZih0Lmxlbmd0aD4wJiZlLnRhcmdldCBpbnN0YW5jZW9mIE5vZGUpZm9yKGNvbnN0IG4gb2YgdCl7Y29uc3QgdD1zLmZpbmRET01Ob2RlKG4pO2lmKHQgaW5zdGFuY2VvZiBOb2RlJiZ0LmNvbnRhaW5zKGUudGFyZ2V0KSlyZXR1cm59XygpfSxtb3VzZURvd246ITAsdG91Y2hTdGFydDohMH0pO3JldHVybiBoP28uY3JlYXRlRWxlbWVudChyLlBvcnRhbCx7dG9wOiIwIixsZWZ0OiIwIixyaWdodDoiMCIsYm90dG9tOiIwIixwb2ludGVyRXZlbnRzOiJub25lIn0sby5jcmVhdGVFbGVtZW50KCJzcGFuIix7cmVmOkUsc3R5bGU6e3BvaW50ZXJFdmVudHM6ImF1dG8ifX0sby5jcmVhdGVFbGVtZW50KHUuTWVudSx7Li4uYixvbkNsb3NlOl8sb25LZXlib2FyZENsb3NlOnYsb25TY3JvbGw6ZnVuY3Rpb24odCl7Y29uc3R7b25TY3JvbGw6bn09ZTtuJiZuKHQpfSxjdXN0b21DbG9zZURlbGVnYXRlOngsY3VzdG9tUmVtZWFzdXJlRGVsZWdhdGU6dyxyZWY6dCxkYXRhUWFJZDpnLGxpbWl0TWF4V2lkdGg6TS5zZXRNZW51TWF4V2lkdGgsImRhdGEtdG9vbHRpcC1zaG93LW9uLWZvY3VzIjoidHJ1ZSIsY2xvc2VPblNjcm9sbE91dHNpZGVPZmZzZXQ6Q30sbikpKTpudWxsfX0sMzAxOTM3KGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse1JlbWVhc3VyZURlbGVnYXRlQ29udGV4dDooKT0+b30pO2NvbnN0IG89big3Nzk0NzQpLmNyZWF0ZUNvbnRleHQodm9pZCAwKX0sOTAwODQxKGUsdCxuKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbyhlLHQsbixvLHMpe2Z1bmN0aW9uIGkocyl7aWYoZT5zLnRpbWVTdGFtcClyZXR1cm47Y29uc3QgaT1zLnRhcmdldAo7dm9pZCAwIT09biYmbnVsbCE9PXQmJm51bGwhPT1pJiZpLm93bmVyRG9jdW1lbnQ9PT1vJiYodC5jb250YWlucyhpKXx8bihzKSl9cmV0dXJuIHMuY2xpY2smJm8uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGksITEpLHMubW91c2VEb3duJiZvLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsaSwhMSkscy50b3VjaEVuZCYmby5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaGVuZCIsaSwhMSkscy50b3VjaFN0YXJ0JiZvLmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoc3RhcnQiLGksITEpLCgpPT57by5yZW1vdmVFdmVudExpc3RlbmVyKCJjbGljayIsaSwhMSksby5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZWRvd24iLGksITEpLG8ucmVtb3ZlRXZlbnRMaXN0ZW5lcigidG91Y2hlbmQiLGksITEpLG8ucmVtb3ZlRXZlbnRMaXN0ZW5lcigidG91Y2hzdGFydCIsaSwhMSl9fW4uZCh0LHthZGRPdXRzaWRlRXZlbnRMaXN0ZW5lcjooKT0+b30pfSwyMzY3NjUoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7dXNlT3V0c2lkZUV2ZW50OigpPT5yfSk7dmFyIG89big3Nzk0NzQpLHM9big2MTYzMTEpLGk9big5MDA4NDEpO2Z1bmN0aW9uIHIoZSl7Y29uc3R7Y2xpY2s6dCxtb3VzZURvd246bix0b3VjaEVuZDpyLHRvdWNoU3RhcnQ6bCxoYW5kbGVyOmEscmVmZXJlbmNlOnV9PWUsYz0oMCxvLnVzZVJlZikobnVsbCksZD0oMCxvLnVzZVJlZikoInVuZGVmaW5lZCI9PXR5cGVvZiB3aW5kb3c/MDpuZXcgd2luZG93LkN1c3RvbUV2ZW50KCJ0aW1lc3RhbXAiKS50aW1lU3RhbXApO3JldHVybigwLHMudXNlSXNvbW9ycGhpY0xheW91dEVmZmVjdCkoKCgpPT57Y29uc3QgZT17Y2xpY2s6dCxtb3VzZURvd246bix0b3VjaEVuZDpyLHRvdWNoU3RhcnQ6bH0sbz11P3UuY3VycmVudDpjLmN1cnJlbnQ7cmV0dXJuKDAsaS5hZGRPdXRzaWRlRXZlbnRMaXN0ZW5lcikoZC5jdXJyZW50LG8sYSxkb2N1bWVudCxlKX0pLFt0LG4scixsLGFdKSx1fHxjfX0sMjI3OTQ5KGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse01lbnVXaWR0aENvbnRleHQ6KCk9Pm99KTtjb25zdCBvPW4oNzc5NDc0KS5jcmVhdGVDb250ZXh0KHtzZXRNZW51TWF4V2lkdGg6ITF9KX0sODkxMjA5KGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse1N1Ym1lbnVDb250ZXh0OigpPT5zLFN1Ym1lbnVIYW5kbGVyOigpPT5pfSk7dmFyIG89big3Nzk0NzQpO2NvbnN0IHM9by5jcmVhdGVDb250ZXh0KG51bGwpO2Z1bmN0aW9uIGkoZSl7Y29uc3RbdCxuXT0oMCxvLnVzZVN0YXRlKShudWxsKSxpPSgwLG8udXNlUmVmKShudWxsKSxyPSgwLG8udXNlUmVmKShuZXcgTWFwKTtyZXR1cm4oMCxvLnVzZUVmZmVjdCkoKCgpPT4oKT0+e251bGwhPT1pLmN1cnJlbnQmJmNsZWFyVGltZW91dChpLmN1cnJlbnQpfSksW10pLG8uY3JlYXRlRWxlbWVudChzLlByb3ZpZGVyLHt2YWx1ZTp7Y3VycmVudDp0LHNldEN1cnJlbnQ6ZnVuY3Rpb24oZSl7bnVsbCE9PWkuY3VycmVudCYmKGNsZWFyVGltZW91dChpLmN1cnJlbnQpLGkuY3VycmVudD1udWxsKTtudWxsPT09dD9uKGUpOmkuY3VycmVudD1zZXRUaW1lb3V0KCgoKT0+e2kuY3VycmVudD1udWxsLG4oZSl9KSwxMDApfSxyZWdpc3RlclN1Ym1lbnU6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gci5jdXJyZW50LnNldChlLHQpLCgpPT57ci5jdXJyZW50LmRlbGV0ZShlKX19LGlzU3VibWVudU5vZGU6ZnVuY3Rpb24oZSl7cmV0dXJuIEFycmF5LmZyb20oci5jdXJyZW50LnZhbHVlcygpKS5zb21lKCh0PT50KGUpKSl9fX0sZS5jaGlsZHJlbil9fX1dKTs="}},"time_used":4,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":4,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/15634.9ff500f40c3ec2496a9d.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:13.967Z","timestamp":1785148033967,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/15634.9ff500f40c3ec2496a9d.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:13 GMT\r\ncontent-type: text/css; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a608300-7a6\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Wed, 22 Jul 2026 08:44:48 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/22/2026 11:01:21\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 8b3dbd120d7c0ec460083dd150f0c0ee\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":1958,"size_decoded":1433,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with very long lines (1958), with no line terminators","md5":"1fe59f1cabe116d4c360e360391910cf","sha1":"6005a9d280a7661b640624f5309d0059e00f57a4","sha256":"4cac2a96f86db5b5ea7cc505de00925b8dff9a9b88157d33fa0832d728ab2d06","sha512":"4ce34a33edf60063dc9b5a69446b4f0f5b1870f1fa2980b7306e02ea292d73a9f2773611581f28e96d6bbf7d8c35367b6e71c21cc38b5073b921728dc3ced4b9","ssdeep":"","tlshash":"ef41545553f6b277e6b3453c6eaeb6944fb4403fab31168cb990e13847ef5500344d40","first_seen":"2026-07-22T16:00:00.46556Z","last_seen":"2026-07-27T12:53:42.485418Z","times_seen":349,"resource_available":false,"data":"W2RhdGEtdGhlbWU9bGlnaHRdey0tXzAtdzFiMzp2YXIoLS1jb2xvci1taW50eS1ncmVlbi1hNjAwKTstLV8xLXcxYjM6dmFyKC0tY29sb3ItbWludHktZ3JlZW4tMzAwKX1bZGF0YS10aGVtZT1kYXJrXXstLV8wLXcxYjM6dmFyKC0tY29sb3ItbWludHktZ3JlZW4tNjAwKTstLV8xLXcxYjM6dmFyKC0tY29sb3ItbWludHktZ3JlZW4tNzAwKX0uc3dpdGNoZXItbDNEdEtMc0x7ZGlzcGxheTppbmxpbmUtYmxvY2s7ZmxleDowIDAgYXV0bztwb3NpdGlvbjpyZWxhdGl2ZTt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7ei1pbmRleDowOy13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjp0cmFuc3BhcmVudH0uaW5wdXQtbDNEdEtMc0x7Y3Vyc29yOmRlZmF1bHQ7aGVpZ2h0OjEwMCU7aW5zZXQtaW5saW5lLXN0YXJ0OjA7b3BhY2l0eTowO3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO3dpZHRoOjEwMCU7ei1pbmRleDoxfS5pbnB1dC1sM0R0S0xzTDpjaGVja2VkLC5pbnB1dC1sM0R0S0xzTDpkaXNhYmxlZCwuaW5wdXQtbDNEdEtMc0w6Zm9jdXN7Ym9yZGVyOjA7b3V0bGluZTowfS5pbnB1dC1sM0R0S0xzTDpmb2N1cysudGh1bWJXcmFwcGVyLWwzRHRLTHNMOmFmdGVye2Rpc3BsYXk6YmxvY2t9LmlucHV0LWwzRHRLTHNMOmZvY3VzLXZpc2libGUrLnRodW1iV3JhcHBlci1sM0R0S0xzTDphZnRlcntkaXNwbGF5OmJsb2NrfS5pbnB1dC1sM0R0S0xzTDpmb2N1czpub3QoOmZvY3VzLXZpc2libGUpKy50aHVtYldyYXBwZXItbDNEdEtMc0w6YWZ0ZXJ7ZGlzcGxheTpub25lfS50aHVtYldyYXBwZXItbDNEdEtMc0x7ZGlzcGxheTpibG9jaztoZWlnaHQ6Zml0LWNvbnRlbnQ7b3V0bGluZTpub25lO292ZXJmbG93OnZpc2libGU7cG9zaXRpb246cmVsYXRpdmU7d2lkdGg6Zml0LWNvbnRlbnR9LnRodW1iV3JhcHBlci1sM0R0S0xzTDpmb2N1c3tvdXRsaW5lOm5vbmV9LnRodW1iV3JhcHBlci1sM0R0S0xzTDpmb2N1cy12aXNpYmxle291dGxpbmU6bm9uZX0udGh1bWJXcmFwcGVyLWwzRHRLTHNMOmFmdGVye2JvcmRlci1jb2xvcjp2YXIoLS1jb2xvci1mb2N1cy1vdXRsaW5lLWNvbG9yLWJsdWUpO2JvcmRlci1yYWRpdXM6MjRweDtib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLXdpZHRoOjJweDtib3gtc2l6aW5nOmJvcmRlci1ib3g7Y29udGVudDoiIjtkaXNwbGF5Om5vbmU7aGVpZ2h0OmNhbGMoMTAwJSArIDhweCk7aW5zZXQtaW5saW5lLXN0YXJ0Oi00cHg7cG9pbnRlci1ldmVudHM6bm9uZTtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6LTRweDt3aWR0aDpjYWxjKDEwMCUgKyA4cHgpO3otaW5kZXg6MX1AbWVkaWEgKGFueS1ob3Zlcjpob3Zlcil7LmlucHV0LWwzRHRLTHNMOm5vdCguZGlzYWJsZWQtbDNEdEtMc0wpOmhvdmVyKy50aHVtYldyYXBwZXItbDNEdEtMc0x7LS11aS1saWItc3dpdGNoVmlldy1jb2xvcjp2YXIoLS1jb2xvci1jb250YWluZXItZmlsbC10ZXJ0aWFyeS1uZXV0cmFsKX19LmlucHV0LWwzRHRLTHNMOm5vdCguZGlzYWJsZWQtbDNEdEtMc0wpOmFjdGl2ZSsudGh1bWJXcmFwcGVyLWwzRHRLTHNMey0tdWktbGliLXN3aXRjaFZpZXctY29sb3I6dmFyKC0tY29sb3ItY29udGFpbmVyLWZpbGwtc2Vjb25kYXJ5LW5ldXRyYWwtbm9ybWFsKX1AbWVkaWEgKGFueS1ob3Zlcjpob3Zlcil7LmlucHV0LWwzRHRLTHNMOm5vdCguZGlzYWJsZWQtbDNEdEtMc0wpLmNoZWNrZWQtbDNEdEtMc0w6aG92ZXIrLnRodW1iV3JhcHBlci1sM0R0S0xzTHstLXVpLWxpYi1zd2l0Y2hWaWV3LWNvbG9yOnZhcigtLWNvbG9yLWNvbnRhaW5lci1maWxsLXByaW1hcnktbmV1dHJhbC1ib2xkKX19LmlucHV0LWwzRHRLTHNMOm5vdCguZGlzYWJsZWQtbDNEdEtMc0wpLmNoZWNrZWQtbDNEdEtMc0w6YWN0aXZlKy50aHVtYldyYXBwZXItbDNEdEtMc0x7LS11aS1saWItc3dpdGNoVmlldy1jb2xvcjp2YXIoLS1jb2xvci1jb250YWluZXItZmlsbC1wcmltYXJ5LW5ldXRyYWwtbWVkaXVtKX0="}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/81107.1bba59e2089e58347859.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.064Z","timestamp":1785148034064,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/81107.1bba59e2089e58347859.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\ncontent-type: text/css; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding, Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\netag: W/\"6a168c40-1a6\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Wed, 27 May 2026 06:16:32 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.53\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 05/27/2026 10:28:25\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 121d2caf4bea911720c6566fd1725977\r\ncdn-cache: HIT\r\ncontent-encoding: br\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":422,"size_decoded":1071,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with very long lines (422), with no line terminators","md5":"bbedb6cfb6fdedcd16b81f2902fc0dd3","sha1":"a08e4fbb5cf25c5f36e5205c1daaef7e8932a13a","sha256":"a66450b6e17ba000dfee8e666e946eafb12a80bdece569b3d84ee53deeb26719","sha512":"ddd2ce1956348275866bef49d9e080afd694d048db9dee2058a369a7b03877c8fbbbcca91d67e5c712789bff19c9bae30838e8fe3b0cedf48ec09bf240623705","ssdeep":"","tlshash":"60e055a3f418822e3a12ad3b1390474fa069f8476803b658ea85b51800c36e328b1708","first_seen":"2026-05-29T10:56:22.456907Z","last_seen":"2026-07-27T12:48:39.804439Z","times_seen":316,"resource_available":false,"data":"W2RhdGEtdGhlbWU9bGlnaHRdey0tXzAtdm1jVjp2YXIoLS1jb2xvci1jb2xkLWdyYXktNTApfVtkYXRhLXRoZW1lPWRhcmtdey0tXzAtdm1jVjp2YXIoLS1jb2xvci1jb2xkLWdyYXktODAwKX0uZm9vdGVyLVlCSk16QV9se2FsaWduLWl0ZW1zOmNlbnRlcjtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLV8wLXZtY1YpO2JvcmRlci1yYWRpdXM6MCAwIDZweCA2cHg7Ym94LXNpemluZzpib3JkZXItYm94O2NvbG9yOnZhcigtLWNvbG9yLWRlZmF1bHQtZ3JheSk7Y3Vyc29yOmRlZmF1bHQ7ZGlzcGxheTpmbGV4O2ZsZXg6MCAwIGF1dG87Zm9udC1zaXplOjEzcHg7anVzdGlmeS1jb250ZW50OmNlbnRlcjtsaW5lLWhlaWdodDoxN3B4O21heC1oZWlnaHQ6NjVweDttaW4taGVpZ2h0OjQwcHg7cGFkZGluZzo5cHggMjBweDt0ZXh0LWFsaWduOmNlbnRlcn0="}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/en.22510.c6272459a17c5398fd7b.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.251Z","timestamp":1785148034251,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/en.22510.c6272459a17c5398fd7b.js HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding, Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\netag: W/\"69f98b72-dd\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Tue, 05 May 2026 06:17:22 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.51\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 05/05/2026 10:16:50\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: c005af3a6cfe0f83635b9d7e51c34d54\r\ncdn-cache: HIT\r\ncontent-encoding: br\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":221,"size_decoded":957,"mime_type":"application/javascript; charset=utf-8","magic":"ASCII text, with no line terminators","md5":"6c6c88b45a73669efaf42c1d23109bd6","sha1":"436efe5bac23cb6e61761f6ca2f625eb2bd05c43","sha256":"24f8d2b3db85b1adf9680eac2aecc1bdae2d614e4af27d8f1c977a97af861c18","sha512":"a1cae379741ea70a2f6d31f79de4a9ac3b5ef084207b06a5a6238b4dc5c8a38fe401c62c5b95f25478d60ed7a24806226720d381990de06e495774959d3cbe35","ssdeep":"","tlshash":"d0d01223f025e8e57a7a895473509ef07cb4a58411f2d4d373b48b18611692415b4e7c","first_seen":"2026-05-05T12:17:23.617466Z","last_seen":"2026-07-27T12:48:39.842696Z","times_seen":382,"resource_available":true,"data":"KHNlbGYud2VicGFja0NodW5rdHJhZGluZ3ZpZXc9c2VsZi53ZWJwYWNrQ2h1bmt0cmFkaW5ndmlld3x8W10pLnB1c2goW1syMjUxMF0sezQ5OTM5MihlKXtlLmV4cG9ydHM9WyJBIl19LDQyMDE4NihlKXtlLmV4cG9ydHM9WyJMIl19LDM3MjcxOShlKXtlLmV4cG9ydHM9WyJUb2dnbGUgYXV0byBzY2FsZSJdfSwyMDY0NTEoZSl7ZS5leHBvcnRzPVsiVG9nZ2xlIGxvZyBzY2FsZSJdfX1dKTs="}},"time_used":6,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":6,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/en.93745.9d991167ef6d8926b91e.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.759Z","timestamp":1785148034759,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/en.93745.9d991167ef6d8926b91e.js HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a632877-1284d\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Fri, 24 Jul 2026 08:55:19 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/24/2026 10:32:20\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 48bf5b5f2f4ed601bf2632f6f1981bb7\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":75853,"size_decoded":23680,"mime_type":"application/javascript; charset=utf-8","magic":"Unicode text, UTF-8 text, with very long lines (3072)","md5":"f1164acc9ed3899b8a4b1b577159b845","sha1":"4416e95077f563513facd8fa077e899e4f64e967","sha256":"67497756ffed52d3898e5c0efdaa047e1c34d6f0b235cc75bfc80022f567ae79","sha512":"cd5003d618b14d0db3acedbb7496bd8dcd3bf8ce9247c82c81c1f1302a38127ce2a1ae47025e12bd964f79147103e17b70d58f9231df18ecc69983d77ad5cc66","ssdeep":"1536:zf0MegJKpRpa/wQiVxO8iDjMJJ2X4ARN8uVXpzxGH5u5i+QLRjHcjd4w3Gc34W:z8MejpRpqwQiVxO3DjMJJ2X4ARN8uVXp","tlshash":"67733e23d100c0f69f72cb127b8aecc5b9f0b54101f1e4c6b7a99f2ac567d6925386b9","first_seen":"2026-07-27T03:26:08.677252Z","last_seen":"2026-07-27T10:28:13.912407Z","times_seen":7,"resource_available":true,"data":"KHNlbGYud2VicGFja0NodW5rdHJhZGluZ3ZpZXc9c2VsZi53ZWJwYWNrQ2h1bmt0cmFkaW5ndmlld3x8W10pLnB1c2goW1s0OTUwMSw1MjMyNCw3ODAzNCw5Mzc0NSw5NDk0N10sezk5NDAxNihlKXtlLmV4cG9ydHM9WyJDb21tdW5pdHkgcG9zdHMgZm9yIHtzeW1ib2x9Il19LDUxMDgxMChlKXtlLmV4cG9ydHM9WyJVbmxvY2sgZnVsbCBkYXRhIl19LDEwODc4MyhlKXtlLmV4cG9ydHM9WyJZaWVsZCB0byBtYXR1cml0eSJdfSw4Mjk0MTAoZSl7ZS5leHBvcnRzPVsiQW5udWFsIl19LDQyMDMzNChlKXtlLmV4cG9ydHM9WyJEYWlseSJdfSw0MzA5MChlKXtlLmV4cG9ydHM9WyJPbiBhcGVyaW9kaWMgc2NoZWR1bGUiXX0sMTgwODY3KGUpe2UuZXhwb3J0cz1bIk9uIGVmZmVjdGl2ZSBQTVQgZGF0ZSJdfSwzODg4MjEoZSl7ZS5leHBvcnRzPVsiTW9udGhseSJdfSw4MDk5NDYoZSl7ZS5leHBvcnRzPVsiU2VtaS1hbm51YWwiXX0sNzExMTU2KGUpe2UuZXhwb3J0cz1bIlBheXMgYXQgbWF0dXJpdHkiXX0sMzU3NDM1KGUpe2UuZXhwb3J0cz1bIlF1YXJ0ZXJseSJdfSw3ODMyMzIoZSl7ZS5leHBvcnRzPVsiV2Vla2x5Il19LDg1ODU2MShlKXtlLmV4cG9ydHM9WyJGaXhlZCJdfSw0MDkzMDEoZSl7ZS5leHBvcnRzPVsiVmFyaWFibGUiXX0sMzQ4OTQwKGUpe2UuZXhwb3J0cz1bIlplcm8iXX0sMTc3OTc2KGUpe2UuZXhwb3J0cz1bIkN1cnJlbmN5OiB7Y3VycmVuY3l9Il19LDExNTI2MChlKXtlLmV4cG9ydHM9WyJNYWpvciJdfSw5ODU4NjYoZSl7ZS5leHBvcnRzPVsiTWlub3IiXX0sOTg2NTA0KGUpe2UuZXhwb3J0cz1bIkFVTSJdfSw1NTE2NzAoZSl7ZS5leHBvcnRzPVsiRGV2ZWxvcGluZyJdfSw0MTcyMTQoZSl7ZS5leHBvcnRzPVsiRXZvbHZpbmciXX0sMTA5OTA0KGUpe2UuZXhwb3J0cz1bIk5lZ2F0aXZlIl19LDU2MzA0NihlKXtlLmV4cG9ydHM9WyJTdGFibGUiXX0sMTAyMjU2KGUpe2UuZXhwb3J0cz1bIlBvc2l0aXZlIl19LDUxODMyMyhlKXtlLmV4cG9ydHM9WyJJc3N1ZSByYXRpbmciXX0sNzE4NzIyKGUpe2UuZXhwb3J0cz1bIk5vbmUiXX0sMjY5NDk5KGUpe2UuZXhwb3J0cz1bIlBlcnBldHVhbCJdfSw0NTc4NyhlKXtlLmV4cG9ydHM9WyJQcml2YXRlIl19LDk2Mjg5MyhlKXtlLmV4cG9ydHM9WyJQdWJsaWMiXX0sNTg1MzI1KGUpe2UuZXhwb3J0cz1bIlJlZ3VsYXIiXX0sODcyNjI5KGUpe2UuZXhwb3J0cz1bIkdhbW1hIl19LDY1NzUzMyhlKXtlLmV4cG9ydHM9WyJEZWx0YSJdfSw3OTk0NTkoZSl7ZS5leHBvcnRzPVsiUmhvIl19LDk3Mjc2NihlKXtlLmV4cG9ydHM9WyJUaGV0YSJdfSwxMDQ1OChlKXtlLmV4cG9ydHM9WyJWZWdhIl19LDExNjg3MihlKXtlLmV4cG9ydHM9WyJCcm93c2UgY29tbXVuaXR5IHBvc3RzIl19LDk2OTExMyhlKXtlLmV4cG9ydHM9WyJNb3JlIGluZm8iXX0sMzM3ODYoZSl7ZS5leHBvcnRzPVsiRXhjbHVzaXZlIl19LDU0MzE3NihlKXtlLmV4cG9ydHM9WyJGbGFzaCJdfSw0MTI2OTEoZSl7ZS5leHBvcnRzPVsiS2V5IGZhY3RzIl19LDU4NzE3MihlKXtlLmV4cG9ydHM9WyJLZWVwIHJlYWRpbmciXX0sNjQwMTIzKGUpe2UuZXhwb3J0cz1bIkltcG9ydGFudCJdfSw1MTQxNTAoZSl7ZS5leHBvcnRzPVsiTW9yZSBldmVudHMiXX0sMzAyMDI3KGUpe2UuZXhwb3J0cz1bIk5ld3MiXX0sMjY3MDI3KGUpe2UuZXhwb3J0cz1bIlNpZ24gaW4gdG8gcmVhZCBleGNsdXNpdmUgbmV3cyJdfSwyOTEyODAoZSl7ZS5leHBvcnRzPVsiQWRkIG5vdGUiXX0sODE2NjA0KGUpe2UuZXhwb3J0cz1bIkVtcHR5IG5vdGUiXX0sNDQ5MDQwKGUpe2UuZXhwb3J0cz1bIk9wZW4gbm90ZXMiXX0sNzIxNDEoZSl7ZS5leHBvcnRzPVsiTm90ZXMiXX0sODQ4NDA2KGUpe2UuZXhwb3J0cz1bIkFib3V0Il19LDEyNTQwNChlKXtlLmV4cG9ydHM9WyJFcXVpdHkiXX0sMTgyODUzKGUpe2UuZXhwb3J0cz1bIlRoZW1lIl19LDUyNzEoZSl7ZS5leHBvcnRzPVsiRVRGcyBmb3Ige3N5bWJvbH0iXX0sNzczOTc3KGUpe2UuZXhwb3J0cz1bIkRpdmlkZW5kcyJdfSwzNjk1MzUoZSl7ZS5leHBvcnRzPVsiRWFybmluZ3MiXX0sNDE2MzM2KGUpe2UuZXhwb3J0cz1bIk92ZXJ2aWV3Il19LDYzNzU2NShlKXtlLmV4cG9ydHM9WyJTZWdtZW50cyJdfSw5OTg4OTIoZSl7ZS5leHBvcnRzPVsiU3RhdGVtZW50cyJdfSwzMTY5ODMoZSl7ZS5leHBvcnRzPVsiU3RhdGlzdGljcyJdfSw0OTc1OTgoZSl7ZS5leHBvcnRzPVsiRmluYW5jaW5nIl19LDQ0NzExOChlKXtlLmV4cG9ydHM9WyJJbnZlc3RpbmciXX0sNTQ1Mjg2KGUpe2UuZXhwb3J0cz1bIk9wZXJhdGluZyJdfSw0NzE2MjUoZSl7ZS5leHBvcnRzPVsiTmV0IG1hcmdpbiJdfSw1NjMwNTUoZSl7ZS5leHBvcnRzPVsiTmV0IGluY29tZSJdfSwyMzA2MDgoZSl7ZS5leHBvcnRzPVsiTmV0IHJldmVudWUiXX0sODE3MjYoZSl7ZS5leHBvcnRzPVsiUmV2ZW51ZSJdfSw5Mzk5ODUoZSl7ZS5leHBvcnRzPVsiVG90YWwgYXNzZXRzIl19LDYxNTM4NChlKXtlLmV4cG9ydHM9WyJUb3RhbCBsaWFiaWxpdGllcyJdfSwxNzIwMTMoZSl7ZS5leHBvcnRzPVsiTmV4dCJdfSwxNTI1MzQoZSl7ZS5leHBvcnRzPVsiUmV0dXJucyJdfSwyMTc3ODgoZSl7ZS5leHBvcnRzPVsiTiJdfSw0MTM1MzcoZSl7ZS5leHBvcnRzPVsiQiJdfSw5OTE2OTcoZSl7ZS5leHBvcnRzPVsiUyJdfSw5MDc5NChlKXtlLmV4cG9ydHM9WyJNb250aCJdfSwxOTE3ODIoZSl7ZS5leHBvcnRzPVsiRnVuZGluZyByYXRlIl19LDc2NjY4MyhlKXtlLmV4cG9ydHM9WyJPcGVuIGludGVyZXN0Il19LDc1NDA5MyhlKXtlLmV4cG9ydHM9WyJMaXF1aWRhdGlvbnMgMjRoIl19LDYxOTg0NChlKXtlLmV4cG9ydHM9WyJBbm5vdW5jZW1lbnQgZGF0ZSJdfSw5MzU0NzMoZSl7ZS5leHBvcnRzPVsiRGVhbCBhbW91bnQiXX0sMTgxNzg4KGUpe2UuZXhwb3J0cz1bIklQTyBkZXRhaWxzIl19LDEzMDQyOChlKXtlLmV4cG9ydHM9WyJPZmZlciBkYXRlIl19LDE5NTE1NShlKXtlLmV4cG9ydHM9WyJPZmZlciBwcmljZSJdfSwyMzMwNTgoZSl7ZS5leHBvcnRzPVsiU2hhcmVzIG9mZmVyZWQiXX0sMjA1NzI1KGUpewplLmV4cG9ydHM9WyJQcmljZSByYW5nZSJdfSw5OTc0NzEoZSl7ZS5leHBvcnRzPVsiUHJpY2luZyBtb2RlbCJdfSw5MjM0MTcoZSl7ZS5leHBvcnRzPVsiVGhlb3IgcHJpY2UiXX0sMTAxNDM1KGUpe2UuZXhwb3J0cz1bIk5ld3MgZm9yIHtzeW1ib2x9Il19LDU2NTk2MihlKXtlLmV4cG9ydHM9WyJCdXkiXX0sNDU5NDYzKGUpe2UuZXhwb3J0cz1bIk5ldXRyYWwiXX0sMjU3NjQzKGUpe2UuZXhwb3J0cz1bIlNlbGwiXX0sNDg5ODY5KGUpe2UuZXhwb3J0cz1bIlN0cm9uZyBCdXkiXX0sNjkxNTQzKGUpe2UuZXhwb3J0cz1bIlN0cm9uZyBTZWxsIl19LDc0MDQ4MyhlKXtlLmV4cG9ydHM9WyJTdHJvbmcgYnV5Il19LDY2MzAzNyhlKXtlLmV4cG9ydHM9WyJTdHJvbmcgc2VsbCJdfSw3MTE5NzIoZSl7ZS5leHBvcnRzPVsiTGF0ZXN0IGVhcm5pbmdzIHJlcG9ydCJdfSwyNDg3ODUoZSl7ZS5leHBvcnRzPVsiQnVsbCBCZWFyIFBvd2VyIl19LDQ3NzQ3NShlKXtlLmV4cG9ydHM9WyJUZWNobmljYWxzIl19LDEyNzY3MihlKXtlLmV4cG9ydHM9WyJDRkkgY29kZSJdfSwyODcwMzgoZSl7ZS5leHBvcnRzPVsiUmlnaHQiXX0sNjg1NTc1KGUpe2UuZXhwb3J0cz1bIlByb2ZpbGUgZm9yIHtzeW1ib2x9Il19LDk5NjIwNChlKXtlLmV4cG9ydHM9WyJGcm9tIHtkYXRlfSJdfSw1NDQ5ODAoZSl7ZS5leHBvcnRzPVsiT3V0bG9vayJdfSw1MDI2OTIoZSl7ZS5leHBvcnRzPVsiJXMgYWdvIl19LDQ5MDc0MChlKXtlLmV4cG9ydHM9WyJJbiAlcyJdfSw4MTgwMDIoZSl7ZS5leHBvcnRzPVsiMSB5ZWFyIHByaWNlIHRhcmdldCJdfSwzNzU4NjcoZSl7ZS5leHBvcnRzPVsiNTJ3ayBSYW5nZSJdfSw2MDk5MTkoZSl7ZS5leHBvcnRzPVsiQ1VTSVAiXX0sNTk3NDk4KGUpe2UuZXhwb3J0cz1bIkNvdHRvbiJdfSwyMjU3MDYoZSl7ZS5leHBvcnRzPVsiQ291cG9uIl19LDYwNjQ3OChlKXtlLmV4cG9ydHM9WyJDb3Vwb24gZnJlcXVlbmN5Il19LDgyNTE3OChlKXtlLmV4cG9ydHM9WyJDb3VyaWVyIFNlcnZpY2VzIl19LDY4Mzc0MChlKXtlLmV4cG9ydHM9WyJDb2FsIl19LDMxMDQoZSl7ZS5leHBvcnRzPVsiQ29hbCBNaW5pbmcgU3VwcG9ydCJdfSw4MzU4OTQoZSl7ZS5leHBvcnRzPVsiQ29hbCBXaG9sZXNhbGUiXX0sMzUxMTM4KGUpe2UuZXhwb3J0cz1bIkNvY29hIl19LDMyNTczMihlKXtlLmV4cG9ydHM9WyJDb2NvcyAoS2VlbGluZykgSXNsYW5kcyJdfSw3NTQ4NzUoZSl7ZS5leHBvcnRzPVsiQ29mZmVlIl19LDMyNzA4NChlKXtlLmV4cG9ydHM9WyJDb2ZmZWUgJiBUZWEiXX0sMzU1MDIoZSl7ZS5leHBvcnRzPVsiQ29mZmVlLCBUZWEgJiBDb2NvYSBGYXJtaW5nIl19LDYyMzgwOShlKXtlLmV4cG9ydHM9WyJDb2tlIENvYWwgTWluaW5nIl19LDQ5MjY3OShlKXtlLmV4cG9ydHM9WyJDb2xvcmluZyBBZ2VudCJdfSw3MTg2NzMoZSl7ZS5leHBvcnRzPVsiQ29sbGVjdGl2ZSBJbnZlc3RtZW50IEZ1bmQgT3BlcmF0b3JzIl19LDQ4NDEzNihlKXtlLmV4cG9ydHM9WyJDb21vcm9zIl19LDYxNzQyNyhlKXtlLmV4cG9ydHM9WyJDb21tb2RpdHkgQ2hhbm5lbCBJbmRleCAoMjApIl19LDE1MjkxMyhlKXtlLmV4cG9ydHM9WyJDb21tb2RpdHkgQ2hlbWljYWxzIl19LDE1ODA4NShlKXtlLmV4cG9ydHM9WyJDb21tb2RpdHkgQ2hlbWljYWxzIFdob2xlc2FsZSJdfSwyMzQxMTQoZSl7ZS5leHBvcnRzPVsiQ29tbW9kaXRpZXMiXX0sNDE1NjkoZSl7ZS5leHBvcnRzPVsiQ29tbWVyY2lhbCBBaXJjcmFmdCBNYW51ZmFjdHVyaW5nIl19LDM2NzU4MyhlKXtlLmV4cG9ydHM9WyJDb21tZXJjaWFsIEJhbmtzIl19LDg4OTIzOChlKXtlLmV4cG9ydHM9WyJDb21tZXJjaWFsIEJ1aWxkaW5ncyJdfSw4MDI1MTkoZSl7ZS5leHBvcnRzPVsiQ29tbWVyY2lhbCBEb2N1bWVudCBNYW5hZ2VtZW50Il19LDY5MjUxNihlKXtlLmV4cG9ydHM9WyJDb21tZXJjaWFsIEVxdWlwbWVudCBSZW50YWwiXX0sNTc5ODM1KGUpe2UuZXhwb3J0cz1bIkNvbW1lcmNpYWwgRmlzaGluZyJdfSw1MzUwNyhlKXtlLmV4cG9ydHM9WyJDb21tZXJjaWFsIEZvb2QgU2VydmljZXMiXX0sNjQ5NTEwKGUpe2UuZXhwb3J0cz1bIkNvbW1lcmNpYWwgTGVhc2luZyJdfSw0NTg5NzkoZSl7ZS5leHBvcnRzPVsiQ29tbWVyY2lhbCBMb2FucyJdfSw1MjUxNjMoZSl7ZS5leHBvcnRzPVsiQ29tbWVyY2lhbCBOdXJzZXJpZXMiXX0sOTU3OTM1KGUpe2UuZXhwb3J0cz1bIkNvbW1lcmNpYWwgUHJpbnRpbmcvRm9ybXMiXX0sNzY2NDAyKGUpe2UuZXhwb3J0cz1bIkNvbW1lcmNpYWwgUHJpbnRpbmcgU2VydmljZXMiXX0sNTQ3MjMyKGUpe2UuZXhwb3J0cz1bIkNvbW1lcmNpYWwgUkVJVHMiXX0sNDM3NzAxKGUpe2UuZXhwb3J0cz1bIkNvbW1lcmNpYWwgU2VydmljZXMiXX0sNTA1MjA5KGUpe2UuZXhwb3J0cz1bIkNvbW11dGVyIEZlcnJ5Il19LDM1NjY2MShlKXtlLmV4cG9ydHM9WyJDb21tdXRpbmcgU2VydmljZXMiXX0sNjg3NTIoZSl7ZS5leHBvcnRzPVsiQ29tbXVuaWNhdGlvbiAmIFNhdGVsbGl0ZSBFcXVpcG1lbnQiXX0sMjM0NjkyKGUpe2UuZXhwb3J0cz1bIkNvbW11bmljYXRpb24gc2VydmljZXMiXX0sODU4MTgoZSl7ZS5leHBvcnRzPVsiQ29tbXVuaWNhdGlvbnMiXX0sODg1Njg4KGUpe2UuZXhwb3J0cz1bIkNvbW11bmljYXRpb25zICYgTmV0d29ya2luZyJdfSwyOTczMjIoZSl7ZS5leHBvcnRzPVsiQ29tbXVuaXR5Il19LDUwMTY4MShlKXtlLmV4cG9ydHM9WyJDb21wb3NpdGUgU3ltYm9scyJdfSwyMjUwMjgoZSl7ZS5leHBvcnRzPVsiQ29tcHV0ZXIgJiBFbGVjdHJvbmljcyBSZXRhaWxlcnMiXX0sNjE3MjYzKGUpe2UuZXhwb3J0cz1bIkNvbXB1dGVyIENvbW11bmljYXRpb25zIl19LDY2NTQyMihlKXtlLmV4cG9ydHM9WyJDb21wdXRlciBIYXJkd2FyZSJdfSw0MTI2NjUoZSl7ZS5leHBvcnRzPVsiQ29tcHV0ZXIgSGFyZHdhcmUgJiBTb2Z0d2FyZSBSZXRhaWxlcnMiXX0sMjgyMjE3KGUpe2UuZXhwb3J0cz1bIkNvbXB1dGVyIEhhcmR3YXJlIENvbXBvbmVudCBBc3NlbWJseSJdfSwzOTQ5NChlKXtlLmV4cG9ydHM9WyJDb21wdXRlciBQZXJpcGhlcmFscyJdfSw3MjU4MzAoZSl7CmUuZXhwb3J0cz1bIkNvbXB1dGVyIFByb2Nlc3NpbmcgSGFyZHdhcmUiXX0sNTcwNzQoZSl7ZS5leHBvcnRzPVsiQ29tcHV0ZXIgUHJvZ3JhbW1pbmciXX0sODk2NDUoZSl7ZS5leHBvcnRzPVsiQ29tcHV0ZXIgVHJhaW5pbmciXX0sOTY0ODU4KGUpe2UuZXhwb3J0cz1bIkNvbmdvIl19LDI3MTU1OChlKXtlLmV4cG9ydHM9WyJDb25nbyAodGhlIERlbW9jcmF0aWMgUmVwdWJsaWMgb2YgdGhlKSJdfSw3MjEzMzMoZSl7ZS5leHBvcnRzPVsiQ29uZ2xvbWVyYXRlcyJdfSwxMzA4MzMoZSl7ZS5leHBvcnRzPVsiQ29uZmVyZW5jaW5nIFRvb2xzICYgU3lzdGVtcyJdfSw4MzU5NDcoZSl7ZS5leHBvcnRzPVsiQ29uc3RydWN0aW9uICYgRW5naW5lZXJpbmciXX0sNjYyODE0KGUpe2UuZXhwb3J0cz1bIkNvbnN0cnVjdGlvbiBNYWNoaW5lcnkiXX0sMTc4NTk0KGUpe2UuZXhwb3J0cz1bIkNvbnN0cnVjdGlvbiBNYXRlcmlhbCBQcm9jZXNzaW5nIl19LDk5NjcoZSl7ZS5leHBvcnRzPVsiQ29uc3RydWN0aW9uIE1hdGVyaWFsIFdob2xlc2FsZSJdfSw1MDE0ODIoZSl7ZS5leHBvcnRzPVsiQ29uc3RydWN0aW9uIE1hdGVyaWFscyJdfSwyNzc0NTQoZSl7ZS5leHBvcnRzPVsiQ29uc3RydWN0aW9uIFN1cHBsaWVzIl19LDgyNDI3MyhlKXtlLmV4cG9ydHM9WyJDb25zdHJ1Y3Rpb24gU3VwcGxpZXMgJiBGaXh0dXJlcyJdfSwxMjY4MzkoZSl7ZS5leHBvcnRzPVsiQ29uc3RydWN0aW9uIFN1cHBsaWVzICYgRml4dHVyZXMgV2hvbGVzYWxlIl19LDM5NzkwOChlKXtlLmV4cG9ydHM9WyJDb25zdW1lciBDcmVkaXQgQ2FyZHMgU2VydmljZXMiXX0sOTU5MjUyKGUpe2UuZXhwb3J0cz1bIkNvbnN1bWVyIEN5Y2xpY2FsIl19LDU0NTM5NShlKXtlLmV4cG9ydHM9WyJDb25zdW1lciBDeWNsaWNhbHMiXX0sNzkwNzE2KGUpe2UuZXhwb3J0cz1bIkNvbnN1bWVyIEdvb2RzIFJlbnRhbCJdfSw3MzE5ODMoZSl7ZS5leHBvcnRzPVsiQ29uc3VtZXIgRG9jdW1lbnQgTWFuYWdlbWVudCJdfSw3NTQ4NDMoZSl7ZS5leHBvcnRzPVsiQ29uc3VtZXIgRHVyYWJsZXMiXX0sNTU1MDg4KGUpe2UuZXhwb3J0cz1bIkNvbnN1bWVyIEVsZWN0cm9uaWNzIFJldGFpbGVycyJdfSwyMjg0KGUpe2UuZXhwb3J0cz1bIkNvbnN1bWVyIEVsZWN0cm9uaWNzL0FwcGxpYW5jZXMiXX0sOTI0MzkzKGUpe2UuZXhwb3J0cz1bIkNvbnN1bWVyIEVsZWN0cm9uaWMgV2hvbGVzYWxlIl19LDM5NDY2NihlKXtlLmV4cG9ydHM9WyJDb25zdW1lciBMZWFzaW5nIl19LDMxOTM5MyhlKXtlLmV4cG9ydHM9WyJDb25zdW1lciBMZW5kaW5nIl19LDgzMTg4MihlKXtlLmV4cG9ydHM9WyJDb25zdW1lciBOb24tQ3ljbGljYWxzIl19LDU1NjQ3NShlKXtlLmV4cG9ydHM9WyJDb25zdW1lciBOb24tRHVyYWJsZXMiXX0sMTUyODA4KGUpe2UuZXhwb3J0cz1bIkNvbnN1bWVyIFNlcnZpY2VzIl19LDg0NzM5OChlKXtlLmV4cG9ydHM9WyJDb25zdW1lciBTdW5kcmllcyJdfSwxNjkyOTEoZSl7ZS5leHBvcnRzPVsiQ29uc3VtZXIgUHVibGlzaGluZyJdfSwzMjI1MjkoZSl7ZS5leHBvcnRzPVsiQ29uc3VtZXIgUmVwYWlyIFNlcnZpY2VzIl19LDk5NDkwKGUpe2UuZXhwb3J0cz1bIkNvbnN1bWVyIGRpc2NyZXRpb25hcnkiXX0sNDgyODA0KGUpe2UuZXhwb3J0cz1bIkNvbnN1bWVyIHN0YXBsZXMiXX0sMjY0OShlKXtlLmV4cG9ydHM9WyJDb25zdW1lci9Ob24tQ3ljbGljYWwiXX0sMzY5NDM2KGUpe2UuZXhwb3J0cz1bIkNvbnRhaW5lciAmIFBhY2thZ2luZyBNYXRlcmlhbCBXaG9sZXNhbGUiXX0sNDg1MzQ5KGUpe2UuZXhwb3J0cz1bIkNvbnRhaW5lcnMvUGFja2FnaW5nIl19LDY5NzkzNChlKXtlLmV4cG9ydHM9WyJDb250ZW50ICYgU2l0ZSBNYW5hZ2VtZW50IFNlcnZpY2VzIl19LDM5ODkzNyhlKXtlLmV4cG9ydHM9WyJDb250cmFjdCJdfSwyOTY1MjUoZSl7ZS5leHBvcnRzPVsiQ29udHJhY3QgRHJpbGxpbmciXX0sNDMyNTcyKGUpe2UuZXhwb3J0cz1bIkNvbnRyYWN0IGhpZ2hsaWdodHMiXX0sNzk5MTgyKGUpe2UuZXhwb3J0cz1bIkNvbnRyYWN0IHNpemUiXX0sOTg0NjMxKGUpe2UuZXhwb3J0cz1bIkNvbnZlcnNpb24gb3B0aW9uIl19LDI2MTk2KGUpe2UuZXhwb3J0cz1bIkNvbnZlcnRpYmxlIl19LDcyMzI4MihlKXtlLmV4cG9ydHM9WyJDb29raWUsIENyYWNrZXIgJiBQYXN0YSBNYW51ZmFjdHVyaW5nIl19LDcwODg1OShlKXtlLmV4cG9ydHM9WyJDb29rIElzbGFuZHMiXX0sMTQ3MjY5KGUpe2UuZXhwb3J0cz1bIkNvcHBlciJdfSwyMjI3NTkoZSl7ZS5leHBvcnRzPVsiQ29wcGVyIE9yZSAgTWluaW5nIl19LDcxMzk0MChlKXtlLmV4cG9ydHM9WyJDb3B5IHt0aXRsZX0iXX0sNjU5NDc0KGUpe2UuZXhwb3J0cz1bIkNvcHkgY29udHJhY3QiXX0sMzk0OTg4KGUpe2UuZXhwb3J0cz1bIkNvcHkgcGFpciBhZGRyZXNzIl19LDIyNDQwNihlKXtlLmV4cG9ydHM9WyJDb3B5cmlnaHQgTWFuYWdlbWVudCJdfSwyODEwNzkoZSl7ZS5leHBvcnRzPVsiQ29ybiJdfSw1MDAzOShlKXtlLmV4cG9ydHM9WyJDb3Jwb3JhdGUiXX0sMjcyMjM5KGUpe2UuZXhwb3J0cz1bIkNvcnBvcmF0ZSBBY2NvdW50aW5nIFNlcnZpY2VzIl19LDM1MDc0MyhlKXtlLmV4cG9ydHM9WyJDb3Jwb3JhdGUgRmluYW5jaWFsIFNlcnZpY2VzIl19LDc0Mzc3OChlKXtlLmV4cG9ydHM9WyJDb3NtZXRpY3MgJiBQZXJmdW1lcyJdfSwyNjg4NDQoZSl7ZS5leHBvcnRzPVsiQ29zdGEgUmljYSJdfSw5MTU3MDUoZSl7ZS5leHBvcnRzPVsiQ2F0YWxvZy9TcGVjaWFsdHkgRGlzdHJpYnV0aW9uIl19LDY0MTAyNihlKXtlLmV4cG9ydHM9WyJDYXltYW4gSXNsYW5kcyJdfSw5MTI4MjYoZSl7ZS5leHBvcnRzPVsiQ2FibGUgU2VydmljZSBQcm92aWRlcnMiXX0sMzEyODg3KGUpe2UuZXhwb3J0cz1bIkNhYmxlL1NhdGVsbGl0ZSBUViJdfSw2MDEwOTcoZSl7ZS5leHBvcnRzPVsiQ2FibyBWZXJkZSJdfSwzMjk4MzAoZSl7ZS5leHBvcnRzPVsiQ2FmZXMiXX0sOTY0ODM0KGUpe2UuZXhwb3J0cz1bIkNhbGwgQ2VudGVyIFNlcnZpY2VzIl19LDU3MjAzOShlKXtlLmV4cG9ydHM9WyJDYWxsYWJsZSJdfSw4MzYzNihlKXsKZS5leHBvcnRzPVsiQ2FsbGFibGUgYW5kIHB1dGFibGUiXX0sNTU1NDg5KGUpe2UuZXhwb3J0cz1bIkNhbWJvZGlhIl19LDk3NzAyOChlKXtlLmV4cG9ydHM9WyJDYW1lcm9vbiJdfSwxMzY1MzcoZSl7ZS5leHBvcnRzPVsiQ2FuYWRpYW4gZG9sbGFyIl19LDk4NjU4OShlKXtlLmV4cG9ydHM9WyJDYXBpdGFsIEdvb2RzIl19LDI3NTEyMShlKXtlLmV4cG9ydHM9WyJDYXJib24gQ2FwdHVyZSAmIFN0b3JhZ2UiXX0sMjI3MjA4KGUpe2UuZXhwb3J0cz1bIkNhcmJvbiBjcmVkaXRzIl19LDMzMDU3MyhlKXtlLmV4cG9ydHM9WyJDYXJib25hdGVkIFNvZnQgRHJpbmtzIl19LDM5MTc2KGUpe2UuZXhwb3J0cz1bIkNhcnBldHMgJiBDdXJ0YWlucyJdfSw5NTQ4MzAoZSl7ZS5leHBvcnRzPVsiQ2FzaCJdfSwzMzQ0NihlKXtlLmV4cG9ydHM9WyJDYXNoIGZsb3ciXX0sNjA2MjA3KGUpe2UuZXhwb3J0cz1bIkNhc2lub3MiXX0sODU3MzQ1KGUpe2UuZXhwb3J0cz1bIkNhc2lub3MvR2FtaW5nIl19LDY1ODI1NihlKXtlLmV4cG9ydHM9WyJDYXNpbm9zICYgR2FtaW5nIl19LDkxMDQ2OChlKXtlLmV4cG9ydHM9WyJDYXN1YWx0eSBJbnN1cmFuY2UiXX0sMTQzNTE4KGUpe2UuZXhwb3J0cz1bIkNlbGx1bGFyIEZpYmVyIl19LDkwODQ1NihlKXtlLmV4cG9ydHM9WyJDZW1lbnQgJiBDb25jcmV0ZSBNYW51ZmFjdHVyaW5nIl19LDc3NDc4KGUpe2UuZXhwb3J0cz1bIkNlbnRyYWwgQWZyaWNhbiBSZXB1YmxpYyJdfSw0ODM1NShlKXtlLmV4cG9ydHM9WyJDaGFkIl19LDU5NTQ0MShlKXtlLmV4cG9ydHM9WyJDaGFydGVyICYgUHJpdmF0ZSBBaXIgU2VydmljZXMiXX0sODE4NDk2KGUpe2UuZXhwb3J0cz1bIkNoYXJ0ZXIgQnVzIFNlcnZpY2VzIl19LDI0MDE5MShlKXtlLmV4cG9ydHM9WyJDaGVtaWNhbHM6IEFncmljdWx0dXJhbCJdfSwyMzM3MihlKXtlLmV4cG9ydHM9WyJDaGVtaWNhbHM6IE1ham9yIERpdmVyc2lmaWVkIl19LDk2MzA1NShlKXtlLmV4cG9ydHM9WyJDaGVtaWNhbHM6IFNwZWNpYWx0eSJdfSw0NDE1MjYoZSl7ZS5leHBvcnRzPVsiQ2hpbGQgQ2FyZSAmIEZhbWlseSBTZXJ2aWNlcyJdfSw3Mzg0MzIoZSl7ZS5leHBvcnRzPVsiQ2hpbGRyZW4gJiBJbmZhbnRzIENsb3RoaW5nIl19LDc4Njg1OChlKXtlLmV4cG9ydHM9WyJDaGlsZHJlbiAmIEluZmFudHMgQ2xvdGhpbmcgUmV0YWlsZXJzIl19LDE0ODkwOShlKXtlLmV4cG9ydHM9WyJDaG9jb2xhdGUgJiBDb25mZWN0aW9uZXJ5Il19LDk1NjQ2NChlKXtlLmV4cG9ydHM9WyJDaHJpc3RtYXMgSXNsYW5kIl19LDU3NDg5NShlKXtlLmV4cG9ydHM9WyJDaXZpbCBFbmdpbmVlcnMgJiBBcmNoaXRlY3RzIl19LDI0MzY4NyhlKXtlLmV4cG9ydHM9WyJDaWdhcnMgJiBDaWdhcmV0dGUgTWFudWZhY3R1cmluZyJdfSwyNzA0NjgoZSl7ZS5leHBvcnRzPVsiQ2lyY3VsYXRpbmcgc3VwcGx5Il19LDk1OTA3MihlKXtlLmV4cG9ydHM9WyJDbGFzc2lmaWNhdGlvbiJdfSwxNjUxOTgoZSl7ZS5leHBvcnRzPVsiQ2xlYW5pbmcgU2VydmljZXMiXX0sMjA0NDM3KGUpe2UuZXhwb3J0cz1bIkNsZWFyaW5nLCBTZXR0bGVtZW50ICYgQ3VzdG9kaWFsIFNlcnZpY2UiXX0sMzQ5NTAxKGUpe2UuZXhwb3J0cz1bIkNsaWNrIGhlcmUgdG8gbGVhcm4gbW9yZSJdfSw2ODk4NChlKXtlLmV4cG9ydHM9WyJDbG9zZWQgRW5kIEZ1bmRzIl19LDY5NzUzNChlKXtlLmV4cG9ydHM9WyJDbG91ZCBDb21wdXRpbmcgU2VydmljZXMiXX0sNjc2Mzg0KGUpe2UuZXhwb3J0cz1bIkNydWRlIG9pbCJdfSwzNTk1MzAoZSl7ZS5leHBvcnRzPVsiQ3J1aXNlIExpbmVzIl19LDg4MjQxMShlKXtlLmV4cG9ydHM9WyJDcnlwdG8iXX0sNTA5OTgyKGUpe2UuZXhwb3J0cz1bIkNyYWZ0ICYgTWljcm8gQnJld2VycyJdfSw0NzQ3MjgoZSl7ZS5leHBvcnRzPVsiQ3JlZGl0IFVuaW9ucyJdfSwxNTQzNTAoZSl7ZS5leHBvcnRzPVsiQ3JlZGl0IGRlZmF1bHQgc3dhcHMiXX0sOTY1ODgzKGUpe2UuZXhwb3J0cz1bIkN1dGxlcnkgJiBGbGF0d2FyZSJdfSw3NjkxNDAoZSl7ZS5leHBvcnRzPVsiQ3ViYSJdfSw1ODk0MTcoZSl7ZS5leHBvcnRzPVsiQ3VyYWNhbyJdfSw5NDUxNzEoZSl7ZS5leHBvcnRzPVsiQ3VyYcOnYW8iXX0sNjE3MjgoZSl7ZS5leHBvcnRzPVsiQ3VycmVuY3kiXX0sNjc4MTY4KGUpe2UuZXhwb3J0cz1bIkN1cnJlbnQiXX0sODM3NTM5KGUpe2UuZXhwb3J0cz1bIkN1cnJlbnQgUCZMIl19LDI2MTk5MChlKXtlLmV4cG9ydHM9WyJDemVjaGlhIl19LDQ5ODc2MihlKXtlLmV4cG9ydHM9WyJDw7R0ZSBkJ0l2b2lyZSJdfSw0MzYyNShlKXtlLmV4cG9ydHM9WyJBVE0gSVYgdGVybSBzdHJ1Y3R1cmUiXX0sNDE5NTMoZSl7ZS5leHBvcnRzPVsiQW11c2VtZW50IFBhcmtzIGFuZCBab29zIl19LDc4MTA4OChlKXtlLmV4cG9ydHM9WyJBbWJ1bGFuY2UgJiBFbWVyZ2VuY3kgU2VydmljZXMiXX0sOTg5MDM2KGUpe2UuZXhwb3J0cz1bIkFtZXJpY2FuIl19LDEwNDU1MyhlKXtlLmV4cG9ydHM9WyJBbWVyaWNhbiBTYW1vYSJdfSw5OTE0NjQoZSl7ZS5leHBvcnRzPVsiQW1lcmljYXMiXX0sMjk3NTcwKGUpe2UuZXhwb3J0cz1bIkFudGFyY3RpY2EiXX0sNzQ1ODkoZSl7ZS5leHBvcnRzPVsiQW50aWd1YSBhbmQgQmFyYnVkYSJdfSwzODAzNTAoZSl7ZS5leHBvcnRzPVsiQW50aXF1ZSBEZWFsZXJzIl19LDg4MDE5OShlKXtlLmV4cG9ydHM9WyJBbmFseXN0IHJhdGluZyJdfSw5NjUyMTMoZSl7ZS5leHBvcnRzPVsiQW5kb3JyYSJdfSw3NzcyMChlKXtlLmV4cG9ydHM9WyJBbmdvbGEiXX0sODU0OTAyKGUpe2UuZXhwb3J0cz1bIkFuZ3VpbGxhIl19LDQ3MzgzNChlKXtlLmV4cG9ydHM9WyJBbmltYWwgQnJlZWRpbmciXX0sNjYwNjg0KGUpe2UuZXhwb3J0cz1bIkFuaW1hbCBGZWVkIl19LDU0Mzg2NihlKXtlLmV4cG9ydHM9WyJBbmltYWwgU2xhdWdodGVyaW5nICYgUHJvY2Vzc2luZyJdfSw3MzI4MTMoZSl7ZS5leHBvcnRzPVsiQW5udWFsIl19LDg3MTI4MyhlKXtlLmV4cG9ydHM9WyJBY3Rpdml0eSAxIGhvdXIiXX0sMzkyMDc1KGUpe2UuZXhwb3J0cz1bIkFjdGl2aXR5IDEyIGhvdXJzIl19LDcyNTc3NShlKXsKZS5leHBvcnRzPVsiQWN0aXZpdHkgMTUgbWludXRlcyJdfSwxNTA0NzMoZSl7ZS5leHBvcnRzPVsiQWN0aXZpdHkgMjQgaG91cnMiXX0sNzUxODMyKGUpe2UuZXhwb3J0cz1bIkFjdGl2aXR5IDQgaG91cnMiXX0sMTM2OTA5KGUpe2UuZXhwb3J0cz1bIkFjdHVhbCJdfSwzMzAwNDEoZSl7ZS5leHBvcnRzPVsiQWNjZXNzIHRoZSBtb3N0IGltcG9ydGFudCBkYXRhIGZvciBib25kcyBpbmNsdWRpbmcgY291cG9uIHJhdGVzLCBpc3N1ZSByYXRpbmdzLCByZWRlbXB0aW9uIGRhdGEgYW5kIG1vcmUuIl19LDIzOTAyNyhlKXtlLmV4cG9ydHM9WyJBY2Nlc3NvcmllcyJdfSw2MDMyOTIoZSl7ZS5leHBvcnRzPVsiQWNjb3VudGluZyAmIFRheCBQcmVwYXJhdGlvbiJdfSwxODcwNzUoZSl7ZS5leHBvcnRzPVsiQWR1bHQgRW50ZXJ0YWlubWVudCBQcm9kdWN0aW9uICYgQnJvYWRjYXN0aW5nIl19LDI5MDc4NChlKXtlLmV4cG9ydHM9WyJBZHVsdCBQcm9kdWN0cyBSZXRhaWxlcnMiXX0sNzA5OTMoZSl7ZS5leHBvcnRzPVsiQWR2YW5jZWQgRWxlY3Ryb25pYyBFcXVpcG1lbnQiXX0sNjI5NjQwKGUpe2UuZXhwb3J0cz1bIkFkdmFuY2VkIE1lZGljYWwgRXF1aXBtZW50ICYgVGVjaG5vbG9neSJdfSwyOTQwMzMoZSl7ZS5leHBvcnRzPVsiQWR2YW5jZWQgTWVkaWNhbCBFcXVpcG1lbnQgV2hvbGVzYWxlIl19LDU4MDM0MChlKXtlLmV4cG9ydHM9WyJBZHZhbmNlZCBQb2x5bWVyIl19LDM3NTg3NihlKXtlLmV4cG9ydHM9WyJBZHZlbnR1cmUgU3BvcnRzIEZhY2lsaXRpZXMgJiBTa2kgUmVzb3J0cyJdfSwyNjgzNjkoZSl7ZS5leHBvcnRzPVsiQWR2ZXJ0aXNpbmcgJiBNYXJrZXRpbmciXX0sMTI2ODY5KGUpe2UuZXhwb3J0cz1bIkFkdmVydGlzaW5nIEFnZW5jeSJdfSwyODU2NzcoZSl7ZS5leHBvcnRzPVsiQWR2ZXJ0aXNpbmcvTWFya2V0aW5nIFNlcnZpY2VzIl19LDkxODMxMChlKXtlLmV4cG9ydHM9WyJBZGhlc2l2ZSJdfSwxMzA5NjkoZSl7ZS5leHBvcnRzPVsiQWVyb3NwYWNlICYgRGVmZW5zZSJdfSw3MDU5ODIoZSl7ZS5leHBvcnRzPVsiQWZ0ZXIgbWFya2V0IGNsb3NlIl19LDk5MzEwMShlKXtlLmV4cG9ydHM9WyJBZmdoYW5pc3RhbiJdfSw2NTAzNDQoZSl7ZS5leHBvcnRzPVsiQWZyaWNhIl19LDI1MDcyMShlKXtlLmV4cG9ydHM9WyJBZ2VuY3kiXX0sNDgyMTAxKGUpe2UuZXhwb3J0cz1bIkFncmljdWx0dXJhbCBNYWNoaW5lcnkiXX0sNjg1MTUwKGUpe2UuZXhwb3J0cz1bIkFncmljdWx0dXJhbCBCaW90ZWNobm9sb2d5Il19LDM5MTY3MihlKXtlLmV4cG9ydHM9WyJBZ3JpY3VsdHVyYWwgQ2hlbWljYWxzIl19LDM2Mjg3OChlKXtlLmV4cG9ydHM9WyJBZ3JpY3VsdHVyYWwgQ2hlbWljYWxzIFdob2xlc2FsZSJdfSw2MDI2ODAoZSl7ZS5leHBvcnRzPVsiQWdyaWN1bHR1cmFsIENvbW1vZGl0aWVzL01pbGxpbmciXX0sODg3MzkyKGUpe2UuZXhwb3J0cz1bIkFncmljdWx0dXJlIFN1cHBvcnQgU2VydmljZXMiXX0sMjA4OTY0KGUpe2UuZXhwb3J0cz1bIkFpciAmIEdhcyBDb21wcmVzc29ycyJdfSw3MDQ4NDYoZSl7ZS5leHBvcnRzPVsiQWlyIEZyZWlnaHQiXX0sODA3MDQyKGUpe2UuZXhwb3J0cz1bIkFpciBGcmVpZ2h0ICYgQ291cmllciBTZXJ2aWNlcyJdfSw5NjQ4MTAoZSl7ZS5leHBvcnRzPVsiQWlyIEZyZWlnaHQgJiBMb2dpc3RpY3MiXX0sNzkwNDkzKGUpe2UuZXhwb3J0cz1bIkFpciBGcmVpZ2h0L0NvdXJpZXJzIl19LDU2ODMzNihlKXtlLmV4cG9ydHM9WyJBaXIgRnJlaWdodC9EZWxpdmVyeSBTZXJ2aWNlcyJdfSw2NDgwOTEoZSl7ZS5leHBvcnRzPVsiQWlyY3JhZnQgRXF1aXBtZW50IFdob2xlc2FsZSJdfSw3MDIxNzEoZSl7ZS5leHBvcnRzPVsiQWlyY3JhZnQgUGFydHMgTWFudWZhY3R1cmluZyJdfSw2MDgyNzYoZSl7ZS5leHBvcnRzPVsiQWlybGluZSBDYXRlcmluZyBTZXJ2aWNlcyJdfSwzNTA0MDMoZSl7ZS5leHBvcnRzPVsiQWlybGluZXMiXX0sNzg2NDcwKGUpe2UuZXhwb3J0cz1bIkFpcnBvcnQgT3BlcmF0b3JzIl19LDMwMjMwMyhlKXtlLmV4cG9ydHM9WyJBaXJwb3J0IFNlcnZpY2VzIl19LDcxNDUwMChlKXtlLmV4cG9ydHM9WyJBbHRlcm5hdGl2ZSBNZWRpY2luZSJdfSwyMTAwODEoZSl7ZS5leHBvcnRzPVsiQWx0ZXJuYXRpdmUgTWVkaWNpbmUgRmFjaWxpdGllcyJdfSwxOTU3NDUoZSl7ZS5leHBvcnRzPVsiQWx0ZXJuYXRpdmUgUG93ZXIgR2VuZXJhdGlvbiJdfSw0MTIxODgoZSl7ZS5leHBvcnRzPVsiQWx0ZXJuYXRpdmVzIl19LDkzMDM5MyhlKXtlLmV4cG9ydHM9WyJBbHVtaW5pdW0iXX0sNjY3OTkzKGUpe2UuZXhwb3J0cz1bIkFsdW1pbnVtIl19LDIwNzc3MShlKXtlLmV4cG9ydHM9WyJBbHVtaW51bSBSb2xsaW5nIl19LDI4MDAyNShlKXtlLmV4cG9ydHM9WyJBbGJhbmlhIl19LDI5NjE4MShlKXtlLmV4cG9ydHM9WyJBbGdlcmlhIl19LDk2MjAxNihlKXtlLmV4cG9ydHM9WyJBbGwgT3RoZXIgRm9vZCBNYW51ZmFjdHVyaW5nIl19LDUyNjczNChlKXtlLmV4cG9ydHM9WyJBcHBhcmVsL0Zvb3R3ZWFyIl19LDkwMjk4NChlKXtlLmV4cG9ydHM9WyJBcHBhcmVsL0Zvb3R3ZWFyIFJldGFpbCJdfSwyNDE3ODcoZSl7ZS5leHBvcnRzPVsiQXBwYXJlbCAmIEFjY2Vzc29yaWVzIl19LDM5NTcyNShlKXtlLmV4cG9ydHM9WyJBcHBhcmVsICYgQWNjZXNzb3JpZXMgUmV0YWlsZXJzIl19LDkyODA5KGUpe2UuZXhwb3J0cz1bIkFwcGFyZWwgV2hvbGVzYWxlIl19LDMwMjQ0NyhlKXtlLmV4cG9ydHM9WyJBcHBsaWFuY2UgJiBIb3VzZXdhcmUgV2hvbGVzYWxlIl19LDExODQwKGUpe2UuZXhwb3J0cz1bIkFwcGxpYW5jZXMsIFRvb2xzICYgSG91c2V3YXJlcyJdfSw4NDIxNTQoZSl7ZS5leHBvcnRzPVsiQXBwbGljYXRpb24gU29mdHdhcmUiXX0sNTgxMjYwKGUpe2UuZXhwb3J0cz1bIkFxdWFjdWx0dXJlIl19LDExNDc1NihlKXtlLmV4cG9ydHM9WyJBcnViYSJdfSw3Nzk5NTIoZSl7ZS5leHBvcnRzPVsiQXJtZW5pYSJdfSw4ODY0NjUoZSl7ZS5leHBvcnRzPVsiQXJtcyAmIEFtbXVuaXRpb25zIE1hbnVmYWN0dXJpbmciXX0sMjY5MjIxKGUpe2UuZXhwb3J0cz1bIkFzIG9mIHtkYXRlfSJdfSw2ODkxODIoZSl7CmUuZXhwb3J0cz1bIkFzaWEiXX0sMjA2MzYwKGUpe2UuZXhwb3J0cz1bIkFzc2V0IENsYXNzIl19LDYwNzU0OShlKXtlLmV4cG9ydHM9WyJBc3NldCBhbGxvY2F0aW9uIl19LDQ2NTIyMihlKXtlLmV4cG9ydHM9WyJBdXRvbWF0aWMgVmVuZGluZyBNYWNoaW5lcyJdfSwyOTg2NjIoZSl7ZS5leHBvcnRzPVsiQXV0b21vYmlsZXMgJiBNdWx0aSBVdGlsaXR5IFZlaGljbGVzIl19LDM2OTY0NihlKXtlLmV4cG9ydHM9WyJBdXRvbW90aXZlIEFjY2Vzc29yaWVzIl19LDU0MzE1NyhlKXtlLmV4cG9ydHM9WyJBdXRvbW90aXZlIEFmdGVybWFya2V0Il19LDE3NTc0NChlKXtlLmV4cG9ydHM9WyJBdXRvbW90aXZlIEJhdHRlcmllcyJdfSwzODU1OTEoZSl7ZS5leHBvcnRzPVsiQXV0b21vdGl2ZSBCb2R5IFBhcnRzIl19LDk1NzA4OShlKXtlLmV4cG9ydHM9WyJBdXRvbW90aXZlIFBhcnRzICYgQWNjZXNzb3JpZXMgUmV0YWlsZXJzIl19LDE1NzI1NChlKXtlLmV4cG9ydHM9WyJBdXRvbW90aXZlIFN5c3RlbXMiXX0sMTI1NjYyKGUpe2UuZXhwb3J0cz1bIkF1dG8gJiBUcnVjayBNYW51ZmFjdHVyZXJzIl19LDg3NTU3OShlKXtlLmV4cG9ydHM9WyJBdXRvICYgVHJ1Y2sgUGFydHMgV2hvbGVzYWxlIl19LDg3ODcyMyhlKXtlLmV4cG9ydHM9WyJBdXRvICYgVHJ1Y2sgV2hvbGVzYWxlIl19LDk1ODIzNShlKXtlLmV4cG9ydHM9WyJBdXRvIENsZWFuaW5nIFByb2R1Y3RzIl19LDM3MDEyKGUpe2UuZXhwb3J0cz1bIkF1dG8gUGFydHM6IE9FTSJdfSw5OTY5NzIoZSl7ZS5leHBvcnRzPVsiQXV0byBWZWhpY2xlcywgUGFydHMgJiBTZXJ2aWNlIFJldGFpbGVycyJdfSw2NjE5ODMoZSl7ZS5leHBvcnRzPVsiQXV0bywgVHJ1Y2sgJiBNb3RvcmN5Y2xlIFBhcnRzIl19LDgwNTcwOChlKXtlLmV4cG9ydHM9WyJBdXN0cmFsaWFuIGRvbGxhciJdfSw1NzgxOTgoZSl7ZS5leHBvcnRzPVsiQXZlcmFnZSBEaXJlY3Rpb25hbCBJbmRleCAoMTQpIl19LDMyMDk5OShlKXtlLmV4cG9ydHM9WyJBdmVyYWdlIFZvbHVtZSAoMzBEKSJdfSwzNDQ1NTIoZSl7ZS5leHBvcnRzPVsiQXdlc29tZSBPc2NpbGxhdG9yIl19LDQ2ODE3KGUpe2UuZXhwb3J0cz1bIkF6ZXJiYWlqYW4iXX0sNDI1Mzc4KGUpe2UuZXhwb3J0cz1bIkJvdHN3YW5hIl19LDE5NjcwMChlKXtlLmV4cG9ydHM9WyJCb3R0bGVkIFdhdGVyICYgSWNlIl19LDczMDc2MyhlKXtlLmV4cG9ydHM9WyJCb3V2ZXQgSXNsYW5kIl19LDkzMTMwNChlKXtlLmV4cG9ydHM9WyJCb2xpdmlhIl19LDU1NzIzNShlKXtlLmV4cG9ydHM9WyJCb25haXJlLCBTaW50IEV1c3RhdGl1cyBhbmQgU2FiYSJdfSw5MDkwNTQoZSl7ZS5leHBvcnRzPVsiQm9uZCJdfSw4OTM1NzYoZSl7ZS5leHBvcnRzPVsiQm9uZHMgZm9yIHtzeW1ib2x9Il19LDYzNjk5NChlKXtlLmV4cG9ydHM9WyJCb25kcywgQ2FzaCAmIE90aGVyIl19LDk3NjM0NihlKXtlLmV4cG9ydHM9WyJCb29rICYgTWFnYXppbmUgUmV0YWlsZXJzIl19LDQ0NjI0NyhlKXtlLmV4cG9ydHM9WyJCb29rIFByaW50aW5nIFNlcnZpY2VzIl19LDc1MDE4MihlKXtlLmV4cG9ydHM9WyJCb29rIFB1Ymxpc2hpbmciXX0sOTcwNjkxKGUpe2UuZXhwb3J0cz1bIkJvc25pYSBhbmQgSGVyemVnb3ZpbmEiXX0sNTM1OTA4KGUpe2UuZXhwb3J0cz1bIkJhdGhyb29tIEZpeHR1cmVzIl19LDY4ODU1MihlKXtlLmV4cG9ydHM9WyJCYXR0ZXJpZXMgJiBVbmludGVycnVwdGlibGUgUG93ZXIgc3VwcGxpZXMiXX0sNDk4Mjg4KGUpe2UuZXhwb3J0cz1bIkJhdXhpdGUgTWluaW5nIl19LDUwODU0OShlKXtlLmV4cG9ydHM9WyJCYWJ5IEZvb2QiXX0sMzM1MjU5KGUpe2UuZXhwb3J0cz1bIkJhaGFtYXMiXX0sODY2MzMoZSl7ZS5leHBvcnRzPVsiQmFsYW5jZSBzaGVldCJdfSw2ODg5NjkoZSl7ZS5leHBvcnRzPVsiQmFsbCAmIFJvbGxlciBCZWFyaW5ncyJdfSw0OTc4MzcoZSl7ZS5leHBvcnRzPVsiQmFua3MiXX0sODI0NTk1KGUpe2UuZXhwb3J0cz1bIkJhbnF1ZXQgSGFsbHMgJiBDYXRlcmluZyJdfSw4MjkzODcoZSl7ZS5leHBvcnRzPVsiQmFyYmFkb3MiXX0sMTAzNzkxKGUpe2UuZXhwb3J0cz1bIkJhc2ljIEVQUyAoVFRNKSJdfSw0MDExNjgoZSl7ZS5leHBvcnRzPVsiQmFzaWMgTWF0ZXJpYWxzIl19LDYxMzAxMyhlKXtlLmV4cG9ydHM9WyJCZXRhICgxWSkiXX0sNzkyODY2KGUpe2UuZXhwb3J0cz1bIkJldmVyYWdlcyAoUHJvZHVjdGlvbi9EaXN0cmlidXRpb24pIl19LDY1NzQ3MShlKXtlLmV4cG9ydHM9WyJCZXZlcmFnZXM6IEFsY29ob2xpYyJdfSw4OTM4ODUoZSl7ZS5leHBvcnRzPVsiQmV2ZXJhZ2VzOiBOb24tQWxjb2hvbGljIl19LDkwNDQ2MihlKXtlLmV4cG9ydHM9WyJCZWFyZXIiXX0sMjMwNDUwKGUpe2UuZXhwb3J0cz1bIkJlYXJlciBkZXBvc2l0b3J5IHJlY2VpcHQiXX0sNTc4OTc5KGUpe2UuZXhwb3J0cz1bIkJlYXJlci9SZWdpc3RlcmVkIl19LDI3MzE0MihlKXtlLmV4cG9ydHM9WyJCZWF1dHkgU3VwcGx5IFNob3AiXX0sNTAxMTYoZSl7ZS5leHBvcnRzPVsiQmVlZiAmIFZlYWwgRmFybWluZyJdfSw5NDk2MzYoZSl7ZS5leHBvcnRzPVsiQmVlciwgV2luZSAmIExpcXVvciBTdG9yZXMiXX0sNjYzODY2KGUpe2UuZXhwb3J0cz1bIkJlZm9yZSBtYXJrZXQgb3BlbiJdfSw1MjM1NTIoZSl7ZS5leHBvcnRzPVsiQmVsYXJ1cyJdfSw3ODc3MDEoZSl7ZS5leHBvcnRzPVsiQmVsaXplIl19LDU4ODg0OChlKXtlLmV4cG9ydHM9WyJCZW5pbiJdfSwzMTQ3MzcoZSl7ZS5leHBvcnRzPVsiQmVybXVkYSJdfSwyODQ0NDIoZSl7ZS5leHBvcnRzPVsiQmh1dGFuIl19LDg5NDczOChlKXtlLmV4cG9ydHM9WyJCaWN5Y2xlIE1hbnVmYWN0dXJpbmciXX0sNTMyMzE2KGUpe2UuZXhwb3J0cz1bIkJpbyBNZWRpY2FsIERldmljZXMiXX0sNjM1MTU3KGUpe2UuZXhwb3J0cz1bIkJpbyBEaWFnbm9zdGljcyAmIFRlc3RpbmciXX0sNjQ4MjQ5KGUpe2UuZXhwb3J0cz1bIkJpbyBUaGVyYXBldXRpYyBEcnVncyJdfSw3OTYyNihlKXtlLmV4cG9ydHM9WyJCaW9kaWVzZWwiXX0sNTU3MjM5KGUpe2UuZXhwb3J0cz1bIkJpb21hc3MgJiBCaW9nYXMgRnVlbHMiXX0sNjM3NDA5KGUpewplLmV4cG9ydHM9WyJCaW9tZXRyaWMgUHJvZHVjdHMiXX0sMzQ1NzUzKGUpe2UuZXhwb3J0cz1bIkJpb3BoYXJtYWNldXRpY2FscyJdfSwxNzk0MTMoZSl7ZS5leHBvcnRzPVsiQmlvdGVjaG5vbG9neSJdfSw4OTIxNDMoZSl7ZS5leHBvcnRzPVsiQmlvdGVjaG5vbG9neSAmIE1lZGljYWwgUmVzZWFyY2giXX0sOTA0NzU3KGUpe2UuZXhwb3J0cz1bIkJpcnRoIENvbnRyb2wgUHJvZHVjdHMiXX0sMzkxOTA2KGUpe2UuZXhwb3J0cz1bIkJydW5laSJdfSw4MjEzOTkoZSl7ZS5leHBvcnRzPVsiQnJhbmRpbmcgJiBOYW1pbmciXX0sNzg5MTgwKGUpe2UuZXhwb3J0cz1bIkJyZWFkICYgQmFrZXJ5IFByb2R1Y3QgTWFudWZhY3R1cmluZyJdfSwyNDMwNDIoZSl7ZS5leHBvcnRzPVsiQnJlYWtmYXN0IENlcmVhbCBNYW51ZmFjdHVyaW5nIl19LDQ4MDQxMyhlKXtlLmV4cG9ydHM9WyJCcmV3ZXJzIl19LDc0NDI0NihlKXtlLmV4cG9ydHM9WyJCcml0aXNoIEluZGlhbiBPY2VhbiBUZXJyaXRvcnkiXX0sNjUzMzQwKGUpe2UuZXhwb3J0cz1bIkJyaXRpc2ggVmlyZ2luIElzbGFuZHMiXX0sMzA3MzI3KGUpe2UuZXhwb3J0cz1bIkJyb2FkIGNyZWRpdCJdfSw3NTcxMDEoZSl7ZS5leHBvcnRzPVsiQnJvYWQgbWFya2V0Il19LDgxNTM0NChlKXtlLmV4cG9ydHM9WyJCcm9hZCBtYXJrZXQgZXggYWdyaWN1bHR1cmUiXX0sODE4NjE2KGUpe2UuZXhwb3J0cz1bIkJyb2FkY2FzdGluZyJdfSw5NTE5NjMoZSl7ZS5leHBvcnRzPVsiQnJvYWRjYXN0aW5nIEVxdWlwbWVudCJdfSw2Mjg0ODEoZSl7ZS5leHBvcnRzPVsiQnJva2VyYWdlIFNlcnZpY2VzIl19LDY1NTA3NyhlKXtlLmV4cG9ydHM9WyJCcm9vbXMsIEJydXNoZXMgJiBEdXN0cGFucyJdfSwyNzQ3NDkoZSl7ZS5leHBvcnRzPVsiQnV5ZXJzIl19LDE5ODIwNShlKXtlLmV4cG9ydHM9WyJCdXlzIl19LDE2Njk1NihlKXtlLmV4cG9ydHM9WyJCdXlzIHZvbHVtZSJdfSw5ODIyNDgoZSl7ZS5leHBvcnRzPVsiQnVpbGQgeW91ciBvd24gc3RyYXRlZ3kiXX0sMTYxNzE3KGUpe2UuZXhwb3J0cz1bIkJ1aWxkZXIgTWVyY2hhbnRzIl19LDM4NjcxOShlKXtlLmV4cG9ydHM9WyJCdWlsZGluZyBDb250cmFjdG9ycyJdfSwyNTcyMzQoZSl7ZS5leHBvcnRzPVsiQnVpbGRpbmcgUHJvZHVjdHMiXX0sMTk4Mjk3KGUpe2UuZXhwb3J0cz1bIkJ1cmtpbmEgRmFzbyJdfSw3NTgyMihlKXtlLmV4cG9ydHM9WyJCdXJ1bmRpIl19LDM3MjY0NyhlKXtlLmV4cG9ydHM9WyJCdXNpbmVzcyBTZXJ2aWNlcyJdfSw5NzM1KGUpe2UuZXhwb3J0cz1bIkJ1c2luZXNzIFN1cHBvcnQgU2VydmljZXMiXX0sODcwMjk5KGUpe2UuZXhwb3J0cz1bIkJ1c2luZXNzIFN1cHBvcnQgU3VwcGxpZXMiXX0sNTU1ODcxKGUpe2UuZXhwb3J0cz1bIkdvIGRlZXBlciB3aXRoIGJvbmQgZGF0YSJdfSw3ODMzMTgoZSl7ZS5leHBvcnRzPVsiR292ZXJubWVudCJdfSw1NjUyOTQoZSl7ZS5leHBvcnRzPVsiR29sZCJdfSw2ODM1KGUpe2UuZXhwb3J0cz1bIkdvbGQgTWluaW5nIl19LDY5ODMyNShlKXtlLmV4cG9ydHM9WyJHb2xmIENvdXJzZXMiXX0sMzY3NjkwKGUpe2UuZXhwb3J0cz1bIkdhYm9uIl19LDcwODc4NShlKXtlLmV4cG9ydHM9WyJHYW1iaWEiXX0sMjIwMTU2KGUpe2UuZXhwb3J0cz1bIkdhbWJsaW5nICYgR2FtaW5nIE1hY2hpbmUgTWFudWZhY3R1cmVycyJdfSw1ODQ4NDEoZSl7ZS5leHBvcnRzPVsiR2FtZXMsIFRveXMgJiBDaGlsZHJlbiBWZWhpY2xlcyJdfSw0ODU5MzUoZSl7ZS5leHBvcnRzPVsiR2FtaW5nIE1hY2hpbmUgT3BlcmF0b3JzIl19LDIzNzk5NihlKXtlLmV4cG9ydHM9WyJHYXMgRGlzdHJpYnV0b3JzIl19LDUyNTExMShlKXtlLmV4cG9ydHM9WyJHYXMgRHJpbGxpbmcgLSBPbnNob3JlIl19LDY0MDI5KGUpe2UuZXhwb3J0cz1bIkdhcyBvaWwiXX0sMTg2MDExKGUpe2UuZXhwb3J0cz1bIkdhc29saW5lIl19LDY2NzMxNihlKXtlLmV4cG9ydHM9WyJHYXNvbGluZSBzdGF0aW9ucyJdfSw4NTUxNzcoZSl7ZS5leHBvcnRzPVsiR2VuZXJhbCBFZHVjYXRpb24gU2VydmljZXMiXX0sMjQxOTk1KGUpe2UuZXhwb3J0cz1bIkdlbmVyYWwgR292ZXJubWVudCJdfSwzNDYxNDYoZSl7ZS5leHBvcnRzPVsiR2VuZXJpYyBQaGFybWFjZXV0aWNhbHMiXX0sODI0MTIzKGUpe2UuZXhwb3J0cz1bIkdlb3BoeXNpY2FsIFN1cnZleWluZyAmIE1hcHBpbmcgU2VydmljZXMiXX0sNzk1OTUxKGUpe2UuZXhwb3J0cz1bIkdlb3JnaWEiXX0sNDk4Njc5KGUpe2UuZXhwb3J0cz1bIkdoYW5hIl19LDc3MTAxNyhlKXtlLmV4cG9ydHM9WyJHaWJyYWx0YXIiXX0sMTUzMjQxKGUpe2UuZXhwb3J0cz1bIkdpZnQsIE5vdmVsdHkgJiBTb3V2ZW5pciBTdG9yZXMiXX0sMjM2MjIxKGUpe2UuZXhwb3J0cz1bIkdsYXNzIENvbnRhaW5lcnMgJiBQYWNrYWdpbmciXX0sNjA5NDYxKGUpe2UuZXhwb3J0cz1bIkdsYXNzZXMsIFNwZWN0YWNsZXMgJiBDb250YWN0IGxlbnNlcyJdfSwzNDUwOChlKXtlLmV4cG9ydHM9WyJHbG9iYWwiXX0sMzI1ODU1KGUpe2UuZXhwb3J0cz1bIkdsb2JhbCBtYWNybyJdfSw3NTAyNzcoZSl7ZS5leHBvcnRzPVsiR3JhaW4gKENyb3ApIFByb2R1Y3Rpb24iXX0sMjk2MTM1KGUpe2UuZXhwb3J0cz1bIkdyYWlucyJdfSwzMTgzOTkoZSl7ZS5leHBvcnRzPVsiR3JlZW5sYW5kIl19LDc5MzI4OShlKXtlLmV4cG9ydHM9WyJHcmVlY2UiXX0sOTMyMDg2KGUpe2UuZXhwb3J0cz1bIkdyZW5hZGEiXX0sMzI5MjkxKGUpe2UuZXhwb3J0cz1bIkdyb3VuZCBGcmVpZ2h0ICYgTG9naXN0aWNzIl19LDI0MjExNihlKXtlLmV4cG9ydHM9WyJHdXlhbmEiXX0sMTY0ODc3KGUpe2UuZXhwb3J0cz1bIkd1YWRlbG91cGUiXX0sNTQ0MzI1KGUpe2UuZXhwb3J0cz1bIkd1YW0iXX0sODc3NDg3KGUpe2UuZXhwb3J0cz1bIkd1YXRlbWFsYSJdfSw0MDg5MTYoZSl7ZS5leHBvcnRzPVsiR3Vlcm5zZXkiXX0sNTg0MzMoZSl7ZS5leHBvcnRzPVsiR3VpZGVkIFRvdXIgT3BlcmF0b3JzIl19LDQzNjQ1NShlKXtlLmV4cG9ydHM9WyJHdWluZWEiXX0sMzA4MjI5KGUpe2UuZXhwb3J0cz1bIkd1aW5lYS1CaXNzYXUiXX0sNzE3NzgxKGUpewplLmV4cG9ydHM9WyJHeW1zLCBGaXRuZXNzIGFuZCBTcGEgQ2VudGVycyJdfSw4MzI1NjIoZSl7ZS5leHBvcnRzPVsiRG9jdG9yJ3MgT2ZmaWNlIl19LDc1MTI4MyhlKXtlLmV4cG9ydHM9WyJEb2N1bWVudHMgZm9yIHtzeW1ib2x9Il19LDUyNDU3KGUpe2UuZXhwb3J0cz1bIkRvbGxzICYgU3R1ZmZlZCBUb3lzIl19LDE5NDMyNihlKXtlLmV4cG9ydHM9WyJEb21pbmljYSJdfSw4MTg2MDQoZSl7ZS5leHBvcnRzPVsiRG9taW5pY2FuIFJlcHVibGljIl19LDE4MjE0MyhlKXtlLmV4cG9ydHM9WyJEb29ycyAmIFdpbmRvdyBGcmFtZXMiXX0sODg0NzgwKGUpe2UuZXhwb3J0cz1bIkRhdGEgUHJvY2Vzc2luZyBTZXJ2aWNlcyJdfSw2MDY1MDQoZSl7ZS5leHBvcnRzPVsiRGF5J3MgUmFuZ2UiXX0sNzg5MDE1KGUpe2UuZXhwb3J0cz1bIkRhaXJ5IFByb2R1Y3RzIl19LDgyNDQwMyhlKXtlLmV4cG9ydHM9WyJEZWVwIFNlYSBGcmVpZ2h0Il19LDQzNjk3MChlKXtlLmV4cG9ydHM9WyJEZXBhcnRtZW50L1NwZWNpYWx0eSBSZXRhaWwgU3RvcmVzIl19LDQxNTEwNShlKXtlLmV4cG9ydHM9WyJEZXBhcnRtZW50IFN0b3JlcyJdfSw3MDIyMDYoZSl7ZS5leHBvcnRzPVsiRGVzaWduIFNlcnZpY2VzIl19LDg4MjkxOShlKXtlLmV4cG9ydHM9WyJEaXZlcnNpZmllZCBDaGVtaWNhbHMiXX0sNjY5MTg1KGUpe2UuZXhwb3J0cz1bIkRpdmVyc2lmaWVkIEludmVzdG1lbnQgU2VydmljZXMiXX0sMzYwMDYoZSl7ZS5leHBvcnRzPVsiRGl2ZXJzaWZpZWQgUkVJVHMiXX0sOTAzNzMxKGUpe2UuZXhwb3J0cz1bIkRpdmVyc2lmaWVkIFRyYWRpbmcgJiBEaXN0cmlidXRpbmciXX0sNTQwMTI1KGUpe2UuZXhwb3J0cz1bIkRpdmlkZW5kIHlpZWxkIChpbmRpY2F0ZWQpIl19LDExNTU3NChlKXtlLmV4cG9ydHM9WyJEaXZpZGVuZCB5aWVsZCBUVE0iXX0sNjU5MjY3KGUpe2UuZXhwb3J0cz1bIkRpdmlkZW5kcyJdfSw1Nzg1NzEoZSl7ZS5leHBvcnRzPVsiRGlhZ25vc3RpYyAmIFRlc3RpbmcgU3Vic3RhbmNlcyJdfSwxODgxMjEoZSl7ZS5leHBvcnRzPVsiRGlhZ25vc3RpYyAmIFRlc3RpbmcgU3Vic3RhbmNlcyBNYW51ZmFjdHVyZXJzIl19LDk1MjA4OShlKXtlLmV4cG9ydHM9WyJEaWFtb25kIE1pbmluZyJdfSwxMzczNzcoZSl7ZS5leHBvcnRzPVsiRGlnaXRhbCBNZWRpYSBBZ2VuY2llcyJdfSw0MzY0ODAoZSl7ZS5leHBvcnRzPVsiRGlnaXRhbCBQdWJsaXNoaW5nIl19LDI1MTQ5NihlKXtlLmV4cG9ydHM9WyJEaXJlY3QgTWFya2V0aW5nIl19LDg2NTAzMShlKXtlLmV4cG9ydHM9WyJEaXJlY3RvcnkgUHVibGlzaGluZyJdfSw1MTgxMTcoZSl7ZS5leHBvcnRzPVsiRGlzY291bnQgU3RvcmVzIl19LDYzNzE4NChlKXtlLmV4cG9ydHM9WyJEaXNjb3VudCBTdG9yZXMgd2l0aCBncm9jZXJpZXMiXX0sNzk1MTI0KGUpe2UuZXhwb3J0cz1bIkRpc2NvdW50IFN0b3JlcyB3aXRob3V0IGdyb2NlcmllcyJdfSwyOTU5MzAoZSl7ZS5leHBvcnRzPVsiRGlzY291bnQvUHJlbWl1bSB0byBOQVYiXX0sMjk5ODI0KGUpe2UuZXhwb3J0cz1bIkRpc3BsYXkgU2NyZWVucyJdfSwxMzAyMChlKXtlLmV4cG9ydHM9WyJEaXN0aWxsZXJpZXMiXX0sNTU4MDk1KGUpe2UuZXhwb3J0cz1bIkRpc3RpbGxlcnMgJiBXaW5lcmllcyJdfSwxNzEzNDIoZSl7ZS5leHBvcnRzPVsiRGlzdHJpYnV0aW9uIFNlcnZpY2VzIl19LDUwNzc5OChlKXtlLmV4cG9ydHM9WyJEamlib3V0aSJdfSw4OTY3NzIoZSl7ZS5leHBvcnRzPVsiRHJ1Z3N0b3JlIENoYWlucyJdfSw1NjEwNjAoZSl7ZS5leHBvcnRzPVsiRHJ1ZyBEZWxpdmVyeSBTeXN0ZW1zIl19LDU1OTIwNihlKXtlLmV4cG9ydHM9WyJEcnVnIFJldGFpbGVycyJdfSwxOTA5NTQoZSl7ZS5leHBvcnRzPVsiRHVyYXRpb24gdHlwZSJdfSw0NzAxMDUoZSl7ZS5leHBvcnRzPVsiRS1jb21tZXJjZSAmIEF1Y3Rpb24gU2VydmljZXMiXX0sNjY4ODEwKGUpe2UuZXhwb3J0cz1bIkVtcGxveWVlcyAoRlkpIl19LDQ4NTc5MChlKXtlLmV4cG9ydHM9WyJFbXBsb3ltZW50IFNlcnZpY2VzIl19LDQ1ODAxMShlKXtlLmV4cG9ydHM9WyJFbnRlcnRhaW5tZW50IFByb2R1Y3Rpb24iXX0sMjE4NzY3KGUpe2UuZXhwb3J0cz1bIkVudGVydGFpbm1lbnQgUHJvZHVjdGlvbiBFcXVpcG1lbnQgJiBTZXJ2aWNlcyJdfSw2NzQ0ODEoZSl7ZS5leHBvcnRzPVsiRW50ZXJwcmlzZSBTb2Z0d2FyZSJdfSwyMDUyMDkoZSl7ZS5leHBvcnRzPVsiRW52aXJvbm1lbnRhbCBCaW90ZWNobm9sb2d5Il19LDU4MDY3MihlKXtlLmV4cG9ydHM9WyJFbnZpcm9ubWVudGFsIENvbnN1bHRhbmN5IFNlcnZpY2VzIl19LDMwNzAxNyhlKXtlLmV4cG9ydHM9WyJFbnZpcm9ubWVudGFsIFNlcnZpY2VzIl19LDY5MDA5MChlKXtlLmV4cG9ydHM9WyJFbnZpcm9ubWVudGFsIFNlcnZpY2VzICYgRXF1aXBtZW50Il19LDgyNTU0MihlKXtlLmV4cG9ydHM9WyJFbmVyZ3kiXX0sNTYwMzg5KGUpe2UuZXhwb3J0cz1bIkVuZXJneSBNaW5lcmFscyJdfSwzNjc3NjAoZSl7ZS5leHBvcnRzPVsiRW5lcmd5IERyaW5rcyJdfSwzOTI1MjUoZSl7ZS5leHBvcnRzPVsiRW5lcmd5LCBFbGVjdHJpY2l0eSJdfSwyOTczMDQoZSl7ZS5leHBvcnRzPVsiRW5naW5lICYgUG93ZXJ0cmFpbiBTeXN0ZW1zIl19LDIyMzI2MihlKXtlLmV4cG9ydHM9WyJFbmdpbmVlcmluZyAmIENvbnN0cnVjdGlvbiJdfSw0NjM0MDUoZSl7ZS5leHBvcnRzPVsiRWFybmluZ3MiXX0sNjMzNDU1KGUpe2UuZXhwb3J0cz1bIkVhcm5pbmdzIHJldGFpbmVkIl19LDI5MTE3NihlKXtlLmV4cG9ydHM9WyJFYXJuaW5nIHJlcG9ydCBsaXZlIl19LDQxMzM5NyhlKXtlLmV4cG9ydHM9WyJFY3VhZG9yIl19LDE3NjM3OChlKXtlLmV4cG9ydHM9WyJFY29ub215Il19LDc1ODQxOChlKXtlLmV4cG9ydHM9WyJFY29ub215IGluZGljYXRvciBpbmZvIl19LDI1MzUzKGUpe2UuZXhwb3J0cz1bIkVjb25vbXkgaW5kaWNhdG9ycyJdfSwyNDMwODIoZSl7ZS5leHBvcnRzPVsiRWR1Y2F0aW9uICYgVHJhaW5pbmcgSW5mb3JtYXRpb24gUHJvdmlkZXJzIl19LDE0NDI2MChlKXtlLmV4cG9ydHM9WyJFZHVjYXRpb25hbCBTZXJ2aWNlcyJdfSwKODgwODcyKGUpe2UuZXhwb3J0cz1bIkVsIFNhbHZhZG9yIl19LDI3NDc4MihlKXtlLmV4cG9ydHM9WyJFbGVjdHJpYyBDb25zdHJ1Y3Rpb24iXX0sNzg3MTcwKGUpe2UuZXhwb3J0cz1bIkVsZWN0cmljIEVxdWlwbWVudCBXaG9sZXNhbGUiXX0sODExODcwKGUpe2UuZXhwb3J0cz1bIkVsZWN0cmljIFV0aWxpdGllcyJdfSwzNDY3MTEoZSl7ZS5leHBvcnRzPVsiRWxlY3RyaWMgVXRpbGl0aWVzOiBDZW50cmFsIl19LDk5OTAxNChlKXtlLmV4cG9ydHM9WyJFbGVjdHJpY2FsIChBbHRlcm5hdGl2ZSkgVmVoaWNsZXMiXX0sNDYxMjI3KGUpe2UuZXhwb3J0cz1bIkVsZWN0cmljYWwgQ29tcG9uZW50cyAmIEVxdWlwbWVudCJdfSw0MTY1MzcoZSl7ZS5leHBvcnRzPVsiRWxlY3RyaWNhbCBNZWFzdXJpbmcgJiBUZXN0aW5nIEluc3RydW1lbnRzIl19LDYxNDQ0MChlKXtlLmV4cG9ydHM9WyJFbGVjdHJpY2FsIFByb2R1Y3RzIl19LDMyMTQ2NShlKXtlLmV4cG9ydHM9WyJFbGVjdHJvbiBUdWJlcyAmIEluc3VsYXRvcnMiXX0sMTAyMjQ3KGUpe2UuZXhwb3J0cz1bIkVsZWN0cm9uaWNzIERpc3RyaWJ1dG9ycyJdfSw5NzcwMDkoZSl7ZS5leHBvcnRzPVsiRWxlY3Ryb25pY3MvQXBwbGlhbmNlIFN0b3JlcyJdfSwyNjAwMzcoZSl7ZS5leHBvcnRzPVsiRWxlY3Ryb25pY3MvQXBwbGlhbmNlcyJdfSwzNjg1NjAoZSl7ZS5leHBvcnRzPVsiRWxlY3Ryb25pYyBDb21wb25lbnQiXX0sNDQ5NDE5KGUpe2UuZXhwb3J0cz1bIkVsZWN0cm9uaWMgQ29tcG9uZW50cyJdfSwxNTQwNDcoZSl7ZS5leHBvcnRzPVsiRWxlY3Ryb25pYyBFcXVpcG1lbnQgJiBQYXJ0cyJdfSwzOTYzMTYoZSl7ZS5leHBvcnRzPVsiRWxlY3Ryb25pYyBFcXVpcG1lbnQvSW5zdHJ1bWVudHMiXX0sNzczMTQ0KGUpe2UuZXhwb3J0cz1bIkVsZWN0cm9uaWMgRXF1aXBtZW50cyAmIFBhcnRzIl19LDg5NDczNyhlKXtlLmV4cG9ydHM9WyJFbGVjdHJvbmljIFByb2R1Y3Rpb24gRXF1aXBtZW50Il19LDY1NDMyKGUpe2UuZXhwb3J0cz1bIkVsZWN0cm9uaWMgUmVwYWlyIFNlcnZpY2VzIl19LDc1OTYxNShlKXtlLmV4cG9ydHM9WyJFbGVjdHJvbmljIFRlY2hub2xvZ3kiXX0sOTIyNDU5KGUpe2UuZXhwb3J0cz1bIkVsZXZhdG9yICYgQ29udmV5aW5nIEVxdWlwbWVudCJdfSw4NzM0MDMoZSl7ZS5leHBvcnRzPVsiRXBveHkiXX0sNzQ2NTI0KGUpe2UuZXhwb3J0cz1bIkVxdWF0b3JpYWwgR3VpbmVhIl19LDI0MTc3NihlKXtlLmV4cG9ydHM9WyJFcXVpdHkiXX0sNzMwODczKGUpe2UuZXhwb3J0cz1bIkVyaXRyZWEiXX0sNzY0ODYyKGUpe2UuZXhwb3J0cz1bIkVzdGltYXRlIl19LDg5ODMwMyhlKXtlLmV4cG9ydHM9WyJFc3dhdGluaSJdfSw0NTA2MjMoZSl7ZS5leHBvcnRzPVsiRXRoYW5vbCBGdWVscyJdfSwzMzE5MShlKXtlLmV4cG9ydHM9WyJFdGhpb3BpYSJdfSw5NTIzNjcoZSl7ZS5leHBvcnRzPVsiRXVyb3BlIl19LDExNzYzNyhlKXtlLmV4cG9ydHM9WyJFdXJvcGVhbiJdfSw1MzUxNDYoZSl7ZS5leHBvcnRzPVsiRXVyb3BlYW4gVW5pb24iXX0sNTQ5ODAyKGUpe2UuZXhwb3J0cz1bIkV4dGVuZGVkIG1hcmtldCJdfSwxMTQ1NTIoZSl7ZS5leHBvcnRzPVsiRXh0ZW5kaWJsZSJdfSw1NDg3NTMoZSl7ZS5leHBvcnRzPVsiRXhjaGFuZ2UgVHJhZGVkIEZ1bmQiXX0sMjIyNTMyKGUpe2UuZXhwb3J0cz1bIkV4Y2hhbmdlIFRyYWRlZCBGdW5kcyJdfSw2MTQ5MzQoZSl7ZS5leHBvcnRzPVsiRXhjaGFuZ2VhYmxlIl19LDkwOTMyNihlKXtlLmV4cG9ydHM9WyJFeGNsdXNpdmUiXX0sMjk5MzE2KGUpe2UuZXhwb3J0cz1bIkV4ZWN1dGl2ZSBTZWFyY2ggU2VydmljZXMiXX0sOTE5MTc3KGUpe2UuZXhwb3J0cz1bIkV4aGliaXRpb24gJiBDb25mZXJlbmNlIFNlcnZpY2VzIl19LDU4MDgzMihlKXtlLmV4cG9ydHM9WyJFeG90aWMiXX0sMTExMDAyKGUpe2UuZXhwb3J0cz1bIkV4cGVuc2UgcmF0aW8iXX0sNjUwMzUyKGUpe2UuZXhwb3J0cz1bIkV4cGVjdGVkIFAmTCBvbiBleHBpcnkiXX0sNjQyNTA0KGUpe2UuZXhwb3J0cz1bIkV4cGlyYXRpb24gUCZMIl19LDM1NzM3MShlKXtlLmV4cG9ydHM9WyJFeHBpcmF0aW9uIGRhdGUiXX0sNjM0NTA2KGUpe2UuZXhwb3J0cz1bIkV4cG9uZW50aWFsIE1vdmluZyBBdmVyYWdlICh7bnVtYmVyfSkiXX0sNzUzNTk4KGUpe2UuZXhwb3J0cz1bIkV4cG9zdXJlIHR5cGUiXX0sOTIwMzI5KGUpe2UuZXhwb3J0cz1bIkV4cGxvcmVycyJdfSwzOTEyNTEoZSl7ZS5leHBvcnRzPVsiRXhwbG9zaXZlcyJdfSw4ODE5MDgoZSl7ZS5leHBvcnRzPVsiRklHSSJdfSw2NDc4NjQoZSl7ZS5leHBvcnRzPVsiRm9jdXMiXX0sNjMyODQ3KGUpe2UuZXhwb3J0cz1bIkZvb2QgRGlzdHJpYnV0b3JzIl19LDQwMzk0MyhlKXtlLmV4cG9ydHM9WyJGb29kIEluZ3JlZGllbnRzIl19LDUxNDM4NyhlKXtlLmV4cG9ydHM9WyJGb29kIE1hcmtldHMiXX0sMTQ2MDQzKGUpe2UuZXhwb3J0cz1bIkZvb2QgUHJvY2Vzc2luZyJdfSwyMzE0MzQoZSl7ZS5leHBvcnRzPVsiRm9vZCBSZXRhaWwiXX0sODYzNjYxKGUpe2UuZXhwb3J0cz1bIkZvb2QgUmV0YWlsICYgRGlzdHJpYnV0aW9uIl19LDk3NjgyMihlKXtlLmV4cG9ydHM9WyJGb29kIFdob2xlc2FsZSJdfSwyNTc3MDkoZSl7ZS5leHBvcnRzPVsiRm9vZDogTWFqb3IgRGl2ZXJzaWZpZWQiXX0sNDI0Njg1KGUpe2UuZXhwb3J0cz1bIkZvb2Q6IE1lYXQvRmlzaC9EYWlyeSJdfSw5MzE4ODMoZSl7ZS5leHBvcnRzPVsiRm9vZDogU3BlY2lhbHR5L0NhbmR5Il19LDY5ODA1NyhlKXtlLmV4cG9ydHM9WyJGb290d2VhciJdfSw5MTUwMzcoZSl7ZS5leHBvcnRzPVsiRm9vdHdlYXIgUmV0YWlsZXJzIl19LDk3MzI5NShlKXtlLmV4cG9ydHM9WyJGb290d2VhciBXaG9sZXNhbGUiXX0sMjY3NTk0KGUpe2UuZXhwb3J0cz1bIkZvcmVjYXN0Il19LDQ1MDE2NihlKXtlLmV4cG9ydHM9WyJGb3JlY2FzdCBmb3Ige3N5bWJvbH0iXX0sODA4MDA4KGUpe2UuZXhwb3J0cz1bIkZvcmVzdCAmIFdvb2QgUHJvZHVjdHMiXX0sNDY0MjM5KGUpe2UuZXhwb3J0cz1bIkZvcmVzdCBOdXJzZXJpZXMgJiBHYXRoZXJpbmcgb2YgRm9yZXN0IFByb2R1Y3RzIl0KfSwzNDQ2NTMoZSl7ZS5leHBvcnRzPVsiRm9yZXN0IFByb2R1Y3RzIl19LDgzMTg3NShlKXtlLmV4cG9ydHM9WyJGb3Jlc3QgU3VwcG9ydCAmIFNlcnZpY2VzIl19LDI1NTA5MyhlKXtlLmV4cG9ydHM9WyJGb3JleCJdfSw2OTQ1NjAoZSl7ZS5leHBvcnRzPVsiRm9yZXgge3NlY3Rvcn06IHtjb3VudHJ5fSJdfSwyNDUwMDcoZSl7ZS5leHBvcnRzPVsiRm9yd2FyZCBjdXJ2ZSJdfSwyNDk4MihlKXtlLmV4cG9ydHM9WyJGb3NzaWwgRnVlbCBFbGVjdHJpYyBVdGlsaXRpZXMiXX0sMTkzNzExKGUpe2UuZXhwb3J0cz1bIkZvc3NpbCBGdWVsIElQUHMiXX0sNTgwNjU4KGUpe2UuZXhwb3J0cz1bIkZhYnJpYyBEeWVpbmcgJiBGaW5pc2hpbmciXX0sODkzODgxKGUpe2UuZXhwb3J0cz1bIkZhY2UgdmFsdWUiXX0sNzUyNDMwKGUpe2UuZXhwb3J0cz1bIkZhY3RvcmluZyJdfSw5OTM0NzUoZSl7ZS5leHBvcnRzPVsiRmFsa2xhbmQgSXNsYW5kcyJdfSw2MDc3MjMoZSl7ZS5leHBvcnRzPVsiRmFsa2xhbmQgSXNsYW5kcyAoTWFsdmluYXMpIl19LDQ1MjQ4NyhlKXtlLmV4cG9ydHM9WyJGYXJvZSBJc2xhbmRzIl19LDc0NTUxNihlKXtlLmV4cG9ydHM9WyJGYXNoaW9uIEV5ZXdlYXIiXX0sNjM2MDY0KGUpe2UuZXhwb3J0cz1bIkZlcnRpbGl6ZXIiXX0sNDgyOTI1KGUpe2UuZXhwb3J0cz1bIkZpeGVkIGluY29tZSJdfSwyMTQ4NShlKXtlLmV4cG9ydHM9WyJGaWJlciBPcHRpYyBDYWJsZSBNYW51ZmFjdHVyaW5nIl19LDE1MjQwOShlKXtlLmV4cG9ydHM9WyJGaWppIl19LDQ2MjE5MyhlKXtlLmV4cG9ydHM9WyJGaW5hbmNlIl19LDk5MjI5NihlKXtlLmV4cG9ydHM9WyJGaW5hbmNlL1JlbnRhbC9MZWFzaW5nIl19LDY2NTkwNShlKXtlLmV4cG9ydHM9WyJGaW5hbmNlOiBDb25zdW1lciBTZXJ2aWNlcyJdfSwxMjg0NzkoZSl7ZS5leHBvcnRzPVsiRmluYW5jaWFsIl19LDkyMDY0MihlKXtlLmV4cG9ydHM9WyJGaW5hbmNpYWwgJiBDb21tb2RpdHkgTWFya2V0IE9wZXJhdG9ycyJdfSw1MDAyNDcoZSl7ZS5leHBvcnRzPVsiRmluYW5jaWFsIENvbmdsb21lcmF0ZXMiXX0sNjE0NDMzKGUpe2UuZXhwb3J0cz1bIkZpbmFuY2lhbCBJbmZvcm1hdGlvbiBQcm92aWRlcnMiXX0sOTM3MjY0KGUpe2UuZXhwb3J0cz1bIkZpbmFuY2lhbCBQdWJsaXNoaW5nL1NlcnZpY2VzIl19LDQ0MzQ5NihlKXtlLmV4cG9ydHM9WyJGaW5hbmNpYWwgVGVjaG5vbG9neSAmIEluZnJhc3RydWN0dXJlIl19LDM2OTMyNShlKXtlLmV4cG9ydHM9WyJGaW5hbmNpYWxzIl19LDMwMTY5NShlKXtlLmV4cG9ydHM9WyJGaXNoaW5nICYgRmFybWluZyJdfSwyMTYxODkoZSl7ZS5leHBvcnRzPVsiRmlzaGluZyAmIEZhcm1pbmcgV2hvbGVzYWxlIl19LDQ3NTIyNShlKXtlLmV4cG9ydHM9WyJGbHVpZCBQb3dlciBDeWxpbmRlciAmIEFjdHVhdG9ycyJdfSw0NzU4MTIoZSl7ZS5leHBvcnRzPVsiRmxhc2giXX0sNDg1NDI5KGUpe2UuZXhwb3J0cz1bIkZsb29yIENvdmVyaW5nIFJldGFpbGVycyJdfSw4MTg2MjgoZSl7ZS5leHBvcnRzPVsiRmxvb3JpbmcgJiBJbnRlcmlvciBUaWxlIE1hbnVmYWN0dXJlcnMiXX0sMzg5NDg3KGUpe2UuZXhwb3J0cz1bIkZsb3Jpc3RzIl19LDM5ODIzNyhlKXtlLmV4cG9ydHM9WyJGbG91ciBNaWxsaW5nIl19LDkxNjYyKGUpe2UuZXhwb3J0cz1bIkZydWl0ICYgVmVnZXRhYmxlIFByb2Nlc3NpbmciXX0sNzc0MjE2KGUpe2UuZXhwb3J0cz1bIkZydWl0IERyaW5rcyJdfSw5NjkyMzcoZSl7ZS5leHBvcnRzPVsiRnJlaWdodCBMb2dpc3RpY3MiXX0sMzQyNzA2KGUpe2UuZXhwb3J0cz1bIkZyZWlnaHQgVHJ1Y2tpbmciXX0sOTc2MDc5KGUpe2UuZXhwb3J0cz1bIkZyZW5jaCBHdWlhbmEiXX0sODYzODI1KGUpe2UuZXhwb3J0cz1bIkZyZW5jaCBQb2x5bmVzaWEiXX0sMzI4NjA3KGUpe2UuZXhwb3J0cz1bIkZyZW5jaCBTb3V0aGVybiBUZXJyaXRvcmllcyJdfSw2NzgyMTYoZSl7ZS5leHBvcnRzPVsiRnJvbnQgbW9udGgiXX0sNzgyOTY0KGUpe2UuZXhwb3J0cz1bIkZyb3plbiBGb29kIE1hbnVmYWN0dXJpbmciXX0sOTQzOTAzKGUpe2UuZXhwb3J0cz1bIkZ1dHVyZXMiXX0sMTAxMzgzKGUpe2UuZXhwb3J0cz1bIkZ1bGx5IGRpbHV0ZWQgdmFsdWF0aW9uIl19LDU3MzE3OChlKXtlLmV4cG9ydHM9WyJGdWxseSBkaWx1dGVkIG1hcmtldCBjYXAiXX0sODgzMTQyKGUpe2UuZXhwb3J0cz1bIkZ1bmRhbWVudGFsIl19LDg4MTkxOShlKXtlLmV4cG9ydHM9WyJGdW5lcmFsIFNlcnZpY2VzIl19LDI2NjY3MShlKXtlLmV4cG9ydHM9WyJGdXJuaXR1cmUiXX0sODM4NShlKXtlLmV4cG9ydHM9WyJGdXJuaXR1cmUgUmV0YWlsZXJzIl19LDU4MTY3OShlKXtlLmV4cG9ydHM9WyJLbml0d2VhciJdfSw2NzY4NihlKXtlLmV4cG9ydHM9WyJLb3Nvdm8iXX0sMjc3NTYwKGUpe2UuZXhwb3J0cz1bIkthemFraHN0YW4iXX0sODI3MTUoZSl7ZS5leHBvcnRzPVsiS2V5IHN0YXRzIl19LDcyODYxMyhlKXtlLmV4cG9ydHM9WyJLZXkgdGVybXMiXX0sNDU3MjQyKGUpe2UuZXhwb3J0cz1bIktpdGNoZW4gQXBwbGlhbmNlcyJdfSw0MjI2MTkoZSl7ZS5leHBvcnRzPVsiS2l0Y2hlbiBDYWJpbmV0cyJdfSw0NDYyOTMoZSl7ZS5leHBvcnRzPVsiS2lyaWJhdGkiXX0sNDU4NjYwKGUpe2UuZXhwb3J0cz1bIkt5cmd5enN0YW4iXX0sODgzNjIwKGUpe2UuZXhwb3J0cz1bIkhvdGVscyAmIE1vdGVscyJdfSwxNjQyNzcoZSl7ZS5leHBvcnRzPVsiSG90ZWxzL1Jlc29ydHMvQ3J1aXNlIGxpbmVzIl19LDM5OTc5MShlKXtlLmV4cG9ydHM9WyJIb3RlbHMsIE1vdGVscyAmIENydWlzZSBMaW5lcyJdfSw3MTg2MDcoZSl7ZS5leHBvcnRzPVsiSG91c2Vob2xkIEFwcGxpYW5jZXMiXX0sMjc1NDk4KGUpe2UuZXhwb3J0cz1bIkhvdXNlaG9sZCBFbGVjdHJvbmljcyJdfSw2OTkyODkoZSl7ZS5leHBvcnRzPVsiSG91c2Vob2xkIFByb2R1Y3RzIl19LDI5MzcwNyhlKXtlLmV4cG9ydHM9WyJIb3VzZWhvbGQvUGVyc29uYWwgQ2FyZSJdfSw3MzA0OTYoZSl7ZS5leHBvcnRzPVsiSG9sZGluZyBDb21wYW5pZXMiXX0sMTI3NDkoZSl7ZS5leHBvcnRzPVsiSG9seSBTZWUiXX0sNjc0MTA1KGUpewplLmV4cG9ydHM9WyJIb21lIEF1ZGlvIl19LDI2NTQyKGUpe2UuZXhwb3J0cz1bIkhvbWUgRGVjb3IgUmV0YWlsZXJzIl19LDc5Nzg2KGUpe2UuZXhwb3J0cz1bIkhvbWUgRnVybmlzaGluZ3MiXX0sMjkxMjAzKGUpe2UuZXhwb3J0cz1bIkhvbWUgRnVybmlzaGluZ3MgUmV0YWlsZXJzIl19LDQ2MTQ1MihlKXtlLmV4cG9ydHM9WyJIb21lIEZ1cm5pc2hpbmdzIFdob2xlc2FsZSJdfSwyOTY3ODEoZSl7ZS5leHBvcnRzPVsiSG9tZSBIZWFsdGhjYXJlIFNlcnZpY2VzIl19LDExNjI4NyhlKXtlLmV4cG9ydHM9WyJIb21lIEltcHJvdmVtZW50IENoYWlucyJdfSw2NjExNDcoZSl7ZS5leHBvcnRzPVsiSG9tZSBJbXByb3ZlbWVudCBQcm9kdWN0cyAmIFNlcnZpY2VzIFJldGFpbGVycyJdfSwyOTE4NjgoZSl7ZS5leHBvcnRzPVsiSG9tZSBwYWdlIl19LDg1MjcyNChlKXtlLmV4cG9ydHM9WyJIb21lYnVpbGRpbmciXX0sMjAyODE2KGUpe2UuZXhwb3J0cz1bIkhvbmR1cmFzIl19LDU0NTkyNShlKXtlLmV4cG9ydHM9WyJIb3JzZSAmIERvZyBSYWNlIFRyYWNrcyJdfSwxMjQ0MDIoZSl7ZS5leHBvcnRzPVsiSG9zaWVyeSAmIFNvY2siXX0sMzgwOTQ0KGUpe2UuZXhwb3J0cz1bIkhvc3BpdGFsL051cnNpbmcgTWFuYWdlbWVudCJdfSw1NDkxMzcoZSl7ZS5leHBvcnRzPVsiSG9zcGl0YWxpdHkgUkVJVHMiXX0sNzcyNTQ4KGUpe2UuZXhwb3J0cz1bIkhvc3BpdGFscywgQ2xpbmljcyAmIFByaW1hcnkgQ2FyZSBTZXJ2aWNlcyJdfSwxMzY5NDYoZSl7ZS5leHBvcnRzPVsiSGFpciBBY2Nlc3NvcmllcyJdfSw4OTQ3MDkoZSl7ZS5leHBvcnRzPVsiSGFpdGkiXX0sODI4NjQxKGUpe2UuZXhwb3J0cz1bIkhhbGFsIEFuaW1hbCBTbGF1Z2h0ZXJpbmcgJiBQcm9jZXNzaW5nIl19LDQ2NjQ3OShlKXtlLmV4cG9ydHM9WyJIYW5kYmFncyAmIEx1Z2dhZ2UiXX0sMTQ0MDEoZSl7ZS5leHBvcnRzPVsiSGFuZGJhZ3MgJiBMdWdnYWdlIFJldGFpbGVycyJdfSwxMDA5NTYoZSl7ZS5leHBvcnRzPVsiSGVhbHRoIEZvb2QgU3RvcmVzIl19LDM1MDA5MChlKXtlLmV4cG9ydHM9WyJIZWFsdGggSW5zdXJhbmNlIl19LDYyMDYwMShlKXtlLmV4cG9ydHM9WyJIZWFsdGggU2VydmljZXMiXX0sNDE4NDU3KGUpe2UuZXhwb3J0cz1bIkhlYWx0aCBUZWNobm9sb2d5Il19LDg4MzA2OShlKXtlLmV4cG9ydHM9WyJIZWFsdGggY2FyZSJdfSw4MDY4NjcoZSl7ZS5leHBvcnRzPVsiSGVhbHRoY2FyZSJdfSw2OTMxODUoZSl7ZS5leHBvcnRzPVsiSGVhbHRoY2FyZSBGYWNpbGl0aWVzICYgU2VydmljZXMiXX0sMTY4NzI4KGUpe2UuZXhwb3J0cz1bIkhlYWx0aGNhcmUgUkVJVHMiXX0sMjM2MTIzKGUpe2UuZXhwb3J0cz1bIkhlYXJkIElzbGFuZCBhbmQgTWNEb25hbGQgSXNsYW5kcyJdfSw1NjUyODMoZSl7ZS5leHBvcnRzPVsiSGVhdGluZyBvaWwiXX0sNTM5OTIyKGUpe2UuZXhwb3J0cz1bIkhlYXRpbmcsIFZlbnRpbGF0aW9uICYgQWlyIENvbmRpdGlvbmluZyBTeXN0ZW1zIl19LDI2Mjk4MyhlKXtlLmV4cG9ydHM9WyJIZWF2eSBCdXNlcyAmIENvYWNoZXMiXX0sNDU4MTI3KGUpe2UuZXhwb3J0cz1bIkhlYXZ5IEVsZWN0cmljYWwgRXF1aXBtZW50Il19LDI1MDUyKGUpe2UuZXhwb3J0cz1bIkhlYXZ5IE1vdG9ycyAmIEdlbmVyYXRvcnMiXX0sMzgxNjA0KGUpe2UuZXhwb3J0cz1bIkhlYXZ5IE1hY2hpbmVyeSAmIFZlaGljbGVzIl19LDUxODA0NChlKXtlLmV4cG9ydHM9WyJIZWF2eSBNYWNoaW5lcnkgJiBWZWhpY2xlcyBXaG9sZXNhbGUiXX0sOTk4MDY3KGUpe2UuZXhwb3J0cz1bIkhlYXZ5IFRydWNrcyJdfSw4OTgzMzYoZSl7ZS5leHBvcnRzPVsiSGVkZ2UgRnVuZHMiXX0sMjA1NDUyKGUpe2UuZXhwb3J0cz1bIkhpZ2ggeWllbGQiXX0sODIwNTA3KGUpe2UuZXhwb3J0cz1bIkhpZ2ggZGl2aWRlbmQgeWllbGQiXX0sODY5NzMyKGUpe2UuZXhwb3J0cz1bIkhpZ2hlc3QiXX0sNDU1NDg1KGUpe2UuZXhwb3J0cz1bIkhpZ2hlc3QgWVRNIGJvbmRzIl19LDQ3Mzc2MihlKXtlLmV4cG9ydHM9WyJIaWdod2F5ICYgQnJpZGdlIENvbnN0cnVjdGlvbiJdfSw3NzI4ODYoZSl7ZS5leHBvcnRzPVsiSGlnaHdheSBPcGVyYXRvcnMiXX0sNTEzNzc2KGUpe2UuZXhwb3J0cz1bIkhpZ2h3YXlzICYgUmFpbCBUcmFja3MiXX0sNzYwNzE5KGUpe2UuZXhwb3J0cz1bIkh1bGwgTW92aW5nIEF2ZXJhZ2UgKDkpIl19LDU5NTk5NihlKXtlLmV4cG9ydHM9WyJIdW1hbiBSZXNvdXJjZXMgQ29uc3VsdGluZyBTZXJ2aWNlcyJdfSwzNDcyNDkoZSl7ZS5leHBvcnRzPVsiSHlkcm9nZW4gRnVlbCJdfSw4ODc4MzcoZSl7ZS5leHBvcnRzPVsiSHlkcm9wb3dlciBFcXVpcG1lbnQiXX0sMjY3OTE3KGUpe2UuZXhwb3J0cz1bIklTSU4iXX0sNTc0NTQzKGUpe2UuZXhwb3J0cz1bIklUIFNlcnZpY2VzICYgQ29uc3VsdGluZyJdfSw4ODg3MTkoZSl7ZS5leHBvcnRzPVsiSW1wb3J0YW50Il19LDE5NzI4NyhlKXtlLmV4cG9ydHM9WyJJbXBsaWVkIHZvbGF0aWxpdHkiXX0sNzE1MTA3KGUpe2UuZXhwb3J0cz1bIkludGVncmF0ZWQgIE1pbmluZyJdfSw4ODZlMyhlKXtlLmV4cG9ydHM9WyJJbnRlZ3JhdGVkIENpcmN1aXRzIl19LDQxNDg3MyhlKXtlLmV4cG9ydHM9WyJJbnRlZ3JhdGVkIExvZ2lzdGljcyBPcGVyYXRvcnMiXX0sMjYyMDQ1KGUpe2UuZXhwb3J0cz1bIkludGVncmF0ZWQgT2lsIl19LDk5OTEzMShlKXtlLmV4cG9ydHM9WyJJbnRlZ3JhdGVkIE9pbCAmIEdhcyJdfSw3NDU1OTAoZSl7ZS5leHBvcnRzPVsiSW50ZWdyYXRlZCBUZWxlY29tbXVuaWNhdGlvbnMgU2VydmljZXMiXX0sNTk4MDgzKGUpe2UuZXhwb3J0cz1bIkludGVyLWRlYWxlciBCcm9rZXIiXX0sMjY3NzIyKGUpe2UuZXhwb3J0cz1bIkludGVyaW9yIERlc2lnbiBTZXJ2aWNlcyJdfSwyNDI1NjgoZSl7ZS5leHBvcnRzPVsiSW50ZXJuYWwgc2VydmVyIGVycm9yIl19LDgyNzQ1NihlKXtlLmV4cG9ydHM9WyJJbnRlcm5hdGlvbmFsIFRyYWRlIEZpbmFuY2luZyJdfSw4MjA0NjQoZSl7ZS5leHBvcnRzPVsiSW50ZXJuZXQgJiBNYWlsIE9yZGVyIERlcGFydG1lbnQgU3RvcmVzIl19LDc3MTI5MihlKXsKZS5leHBvcnRzPVsiSW50ZXJuZXQgJiBNYWlsIE9yZGVyIERpc2NvdW50IFN0b3JlcyJdfSwzMDY4KGUpe2UuZXhwb3J0cz1bIkludGVybmV0IEdhbWluZyJdfSw0NjM1MjMoZSl7ZS5leHBvcnRzPVsiSW50ZXJuZXQgU29mdHdhcmUvU2VydmljZXMiXX0sNzk3OTk3KGUpe2UuZXhwb3J0cz1bIkludGVybmV0IFNlY3VyaXR5ICYgVHJhbnNhY3Rpb25zIFNlcnZpY2VzIl19LDkwNTU5MyhlKXtlLmV4cG9ydHM9WyJJbnRlcm5ldCBTZXJ2aWNlIFByb3ZpZGVycyJdfSw2NzQ3MjkoZSl7ZS5leHBvcnRzPVsiSW50ZXJuZXQgU2VydmljZXMiXX0sMjc1MDEyKGUpe2UuZXhwb3J0cz1bIkludGVybmV0IFJldGFpbCJdfSw3MzI3NzYoZSl7ZS5leHBvcnRzPVsiSW52YWxpZCBzeW1ib2wiXX0sOTg2OTE0KGUpe2UuZXhwb3J0cz1bIkludmVzdG1lbnQgQmFua2Vycy9Ccm9rZXJzL1NlcnZpY2UiXX0sNDc1MTc0KGUpe2UuZXhwb3J0cz1bIkludmVzdG1lbnQgQmFua2luZyJdfSw5MTI2NTgoZSl7ZS5leHBvcnRzPVsiSW52ZXN0bWVudCBCYW5raW5nICYgQnJva2VyYWdlIFNlcnZpY2VzIl19LDk3MzcyNChlKXtlLmV4cG9ydHM9WyJJbnZlc3RtZW50IEJhbmtzL0Jyb2tlcnMiXX0sNDA5MjcyKGUpe2UuZXhwb3J0cz1bIkludmVzdG1lbnQgTWFuYWdlbWVudCJdfSw1OTE5NjIoZSl7ZS5leHBvcnRzPVsiSW52ZXN0bWVudCBNYW5hZ2VtZW50ICYgRnVuZCBPcGVyYXRvcnMiXX0sMzc5MDY1KGUpe2UuZXhwb3J0cz1bIkludmVzdG1lbnQgTWFuYWdlcnMiXX0sNzU2MTM2KGUpe2UuZXhwb3J0cz1bIkludmVzdG1lbnQgU3VwcG9ydCBUb29scyJdfSw3ODQzMzIoZSl7ZS5leHBvcnRzPVsiSW52ZXN0bWVudCBUcnVzdHMiXX0sMjk1OTcyKGUpe2UuZXhwb3J0cz1bIkludmVzdG1lbnQgVHJ1c3RzL011dHVhbCBGdW5kcyJdfSwyNjMyNDUoZSl7ZS5leHBvcnRzPVsiSW52ZXN0bWVudCBncmFkZSJdfSw4MDYwODYoZSl7ZS5leHBvcnRzPVsiSW5jZXB0aW9uIGRhdGUiXX0sNTgzODI2KGUpe2UuZXhwb3J0cz1bIkluY29tZSBzdGF0ZW1lbnQiXX0sMTcyMjk1KGUpe2UuZXhwb3J0cz1bIkluZGVwZW5kZW50IFBvd2VyIFByb2R1Y2VycyJdfSwxMjI5MDAoZSl7ZS5leHBvcnRzPVsiSW5kZXgiXX0sMjg4NDcxKGUpe2UuZXhwb3J0cz1bIkluZGV4IHRyYWNrZWQiXX0sNTA3MzA4KGUpe2UuZXhwb3J0cz1bIkluZGlhbiBydXBlZSJdfSwxOTU4NzgoZSl7ZS5leHBvcnRzPVsiSW5kdXN0cmlhbCAgUmVhbCBFc3RhdGUgRGV2ZWxvcG1lbnQiXX0sNjUwMTAzKGUpe2UuZXhwb3J0cz1bIkluZHVzdHJpYWwgQmlvdGVjaG5vbG9neSBDaGVtaWNhbHMiXX0sOTQ4MzEwKGUpe2UuZXhwb3J0cz1bIkluZHVzdHJpYWwgQ29uZ2xvbWVyYXRlcyJdfSw4MTc5NTEoZSl7ZS5leHBvcnRzPVsiSW5kdXN0cmlhbCBDbG90aGluZyAmIFVuaWZvcm1zIl19LDY2MjY2OChlKXtlLmV4cG9ydHM9WyJJbmR1c3RyaWFsIEVsZWN0cmljYWwgU3dpdGNoZ2VhciJdfSwyMjY2NzAoZSl7ZS5leHBvcnRzPVsiSW5kdXN0cmlhbCBHYXMiXX0sNDk0NTg4KGUpe2UuZXhwb3J0cz1bIkluZHVzdHJpYWwgTWFjaGluZXJ5Il19LDY1NzM3MShlKXtlLmV4cG9ydHM9WyJJbmR1c3RyaWFsIE1hY2hpbmVyeSAmIEVxdWlwbWVudCJdfSw3NjY3NzcoZSl7ZS5leHBvcnRzPVsiSW5kdXN0cmlhbCBNYWNoaW5lcnkgJiBFcXVpcG1lbnQgV2hvbGVzYWxlIl19LDI3NjI0NyhlKXtlLmV4cG9ydHM9WyJJbmR1c3RyaWFsIE1vdWxkcyJdfSw2NDE2OShlKXtlLmV4cG9ydHM9WyJJbmR1c3RyaWFsIFBhcnRzICYgQ29tcG9uZW50cyJdfSw1MTcyNjQoZSl7ZS5leHBvcnRzPVsiSW5kdXN0cmlhbCBQbGFudCJdfSwzMjIwODIoZSl7ZS5leHBvcnRzPVsiSW5kdXN0cmlhbCBQcm9jZXNzIEZ1cm5hY2UgJiBPdmVucyJdfSwxMDgzNjEoZSl7ZS5leHBvcnRzPVsiSW5kdXN0cmlhbCBSRUlUcyJdfSw3MzU3MjMoZSl7ZS5leHBvcnRzPVsiSW5kdXN0cmlhbCBSdWJiZXIgUHJvZHVjdHMiXX0sOTk5NTYwKGUpe2UuZXhwb3J0cz1bIkluZHVzdHJpYWwgU2VydmljZXMiXX0sMjE0Mzk2KGUpe2UuZXhwb3J0cz1bIkluZHVzdHJpYWwgU3BlY2lhbHRpZXMiXX0sMjQ5MjQ5KGUpe2UuZXhwb3J0cz1bIkluZHVzdHJpYWwgVmFsdmUgTWFudWZhY3R1cmluZyJdfSw5Nzg1NzIoZSl7ZS5leHBvcnRzPVsiSW5kdXN0cmlhbHMiXX0sODc3NjEoZSl7ZS5leHBvcnRzPVsiSW5kdXN0cnkiXX0sODk5MDgwKGUpe2UuZXhwb3J0cz1bIkluZm9ybWF0aW9uIFRlY2hub2xvZ3kgU2VydmljZXMiXX0sMzMyMTU2KGUpe2UuZXhwb3J0cz1bIkluZm9ybWF0aW9uIHRlY2hub2xvZ3kiXX0sNDIwODQoZSl7ZS5leHBvcnRzPVsiSW5sYW5kIFdhdGVyIEZyZWlnaHQiXX0sNDAzNDc0KGUpe2UuZXhwb3J0cz1bIklucHV0IERldmljZXMiXX0sNDY3NTUyKGUpe2UuZXhwb3J0cz1bIkluc3VyYW5jZSAtIEF1dG9tb2JpbGUiXX0sODcxMTU2KGUpe2UuZXhwb3J0cz1bIkluc3VyYW5jZSBCcm9rZXJzIl19LDY2NDY3MChlKXtlLmV4cG9ydHM9WyJJbnN1cmFuY2UgQnJva2Vycy9TZXJ2aWNlcyJdfSw0OTA3MjgoZSl7ZS5leHBvcnRzPVsiSWNoaW1va3UgQmFzZSBMaW5lICg5LCAyNiwgNTIsIDI2KSJdfSwzNzE3NDYoZSl7ZS5leHBvcnRzPVsiSXJhcSJdfSw3MDk3OTQoZSl7ZS5leHBvcnRzPVsiSXJvbiBPcmUgTWluaW5nIl19LDI2MzQyMShlKXtlLmV4cG9ydHM9WyJJcm9uLCBTdGVlbCBNaWxscyAmIEZvdW5kcmllcyJdfSwyMDc4MjUoZSl7ZS5leHBvcnRzPVsiSXNsZSBvZiBNYW4iXX0sMjg2NDYyKGUpe2UuZXhwb3J0cz1bIklzc3VlIGFsbG9jYXRpb24iXX0sODYwNjc1KGUpe2UuZXhwb3J0cz1bIklzc3VlIGRhdGUiXX0sOTkzNzQwKGUpe2UuZXhwb3J0cz1bIklzc3VlciJdfSwxMjQ2MjMoZSl7ZS5leHBvcnRzPVsiSXNzdWVyL0JyYW5kIl19LDU4MzAwOShlKXtlLmV4cG9ydHM9WyJKb3JkYW4iXX0sMTYzNShlKXtlLmV4cG9ydHM9WyJKYW1haWNhIl19LDE2NTI1OShlKXtlLmV4cG9ydHM9WyJKYXBhbmVzZSB5ZW4iXX0sNjYwMjk0KGUpe2UuZXhwb3J0cz1bIkpld2VscnkiXX0sNDU0OTgzKGUpewplLmV4cG9ydHM9WyJKZXdlbHJ5ICYgV2F0Y2ggUmV0YWlsZXJzIl19LDE2MTg0MChlKXtlLmV4cG9ydHM9WyJKZWFucyJdfSwxMTg1OTgoZSl7ZS5leHBvcnRzPVsiSmVyc2V5Il19LDY2OTY5MShlKXtlLmV4cG9ydHM9WyJKdXZlbmlsZSBGdXJuaXR1cmUiXX0sMjg1MjkzKGUpe2UuZXhwb3J0cz1bIk9tYW4iXX0sMjQwMjIoZSl7ZS5leHBvcnRzPVsiT25saW5lIEpvYiBwb3J0YWxzIl19LDI0NDc0NihlKXtlLmV4cG9ydHM9WyJPYnNlcnZhdGlvbiBwZXJpb2QiXX0sMTMwNzkyKGUpe2UuZXhwb3J0cz1bIk9jZWFuaWEiXX0sMTI4NzQoZSl7ZS5leHBvcnRzPVsiT2ZmaWNlIEVxdWlwbWVudCJdfSw4NDkxMTgoZSl7ZS5leHBvcnRzPVsiT2ZmaWNlIEVxdWlwbWVudC9TdXBwbGllcyJdfSw0MjQ4NjEoZSl7ZS5leHBvcnRzPVsiT2ZmaWNlIEVxdWlwbWVudCAmIFN1cHBsaWVzIFJlbnRhbCJdfSwxMzc1MjUoZSl7ZS5leHBvcnRzPVsiT2ZmaWNlIEVxdWlwbWVudCBXaG9sZXNhbGUiXX0sNzk3NzQ4KGUpe2UuZXhwb3J0cz1bIk9mZmljZSBGdXJuaXR1cmUiXX0sOTI3NzEyKGUpe2UuZXhwb3J0cz1bIk9mZmljZSBSRUlUcyJdfSw0MzM5MTEoZSl7ZS5leHBvcnRzPVsiT2ZmaWNlIFJlYWwgRXN0YXRlIERldmVsb3BtZW50Il19LDcwNjM0OShlKXtlLmV4cG9ydHM9WyJPZmZpY2UgUmVhbCBFc3RhdGUgU2VydmljZXMiXX0sODU2MzIoZSl7ZS5leHBvcnRzPVsiT2ZmaWNlIFN1cHBsaWVzIl19LDk0MDExNShlKXtlLmV4cG9ydHM9WyJPZmZpY2UgU3VwcGxpZXMgJiBTdGF0aW9uZXJ5IFN0b3JlcyJdfSwzNzk1MDcoZSl7ZS5leHBvcnRzPVsiT2ZmaWNlIFN1cHBsaWVzIFdob2xlc2FsZSJdfSwyOTAzNzAoZSl7ZS5leHBvcnRzPVsiT2ZmaWNlIFRlY2hub2xvZ3kgRXF1aXBtZW50Il19LDY0NzQzOShlKXtlLmV4cG9ydHM9WyJPaWwgJiBHYXMgRHJpbGxpbmciXX0sMTk0NDUwKGUpe2UuZXhwb3J0cz1bIk9pbCAmIEdhcyBFeHBsb3JhdGlvbiBhbmQgUHJvZHVjdGlvbiJdfSwyODM4ODUoZSl7ZS5leHBvcnRzPVsiT2lsICYgR2FzIFBpcGVsaW5lcyJdfSwzOTE3KGUpe2UuZXhwb3J0cz1bIk9pbCAmIEdhcyBQcm9kdWN0aW9uIl19LDUwMzMxNyhlKXtlLmV4cG9ydHM9WyJPaWwgJiBHYXMgUmVmaW5pbmcgYW5kIE1hcmtldGluZyJdfSw5MjI0OTMoZSl7ZS5leHBvcnRzPVsiT2lsICYgR2FzIFN0b3JhZ2UiXX0sODk2ODE5KGUpe2UuZXhwb3J0cz1bIk9pbCAmIEdhcyBUcmFuc3BvcnRhdGlvbiBTZXJ2aWNlcyJdfSwyOTgwNTAoZSl7ZS5leHBvcnRzPVsiT2lsIERyaWxsaW5nIC0gT25zaG9yZSJdfSwxNzk0OTcoZSl7ZS5leHBvcnRzPVsiT2lsIERyaWxsaW5nIC0gT2Zmc2hvcmUiXX0sODU3OTE4KGUpe2UuZXhwb3J0cz1bIk9pbCBFeHBsb3JhdGlvbiAmIFByb2R1Y3Rpb24gLSBPZmZzaG9yZSJdfSw3MzcyMzAoZSl7ZS5leHBvcnRzPVsiT2lsIEV4cGxvcmF0aW9uICYgUHJvZHVjdGlvbiAtIE9uc2hvcmUiXX0sMTI4ODc5KGUpe2UuZXhwb3J0cz1bIk9pbCBQaXBlbGluZSJdfSw3OTIwMzIoZSl7ZS5leHBvcnRzPVsiT2lsIFJlZmluaW5nL01hcmtldGluZyJdfSw2NjkxNTYoZSl7ZS5leHBvcnRzPVsiT2lsIFJlbGF0ZWQgLSBTdXJ2ZXlpbmcgJiBNYXBwaW5nIFNlcnZpY2VzIl19LDU2MTYxNShlKXtlLmV4cG9ydHM9WyJPaWwgUmVsYXRlZCBFcXVpcG1lbnQiXX0sNTczMTY3KGUpe2UuZXhwb3J0cz1bIk9pbCBSZWxhdGVkIFNlcnZpY2VzIl19LDIyMDUzKGUpe2UuZXhwb3J0cz1bIk9pbCBSZWxhdGVkIFNlcnZpY2VzIGFuZCBFcXVpcG1lbnQiXX0sODg1NTQ2KGUpe2UuZXhwb3J0cz1bIk9pbGZpZWxkIFNlcnZpY2VzL0VxdWlwbWVudCJdfSw5NDkzMzUoZSl7ZS5leHBvcnRzPVsiT3B0aW9uIHN0eWxlIl19LDQxMjc3NihlKXtlLmV4cG9ydHM9WyJPcHRpb25zIGZvciB7c3ltYm9sfSJdfSw3Njg0MDEoZSl7ZS5leHBvcnRzPVsiT3B0aWNhbCBHb29kcyBTdG9yZXMiXX0sMTgzOTA2KGUpe2UuZXhwb3J0cz1bIk9wZW4gaW50ZXJlc3QiXX0sODEzMjE4KGUpe2UuZXhwb3J0cz1bIk9yZ2FuaWMgJiBFY29sb2dpY2FsbHkgUHJvZHVjZWQgRmFicmljIl19LDMwMTczMShlKXtlLmV4cG9ydHM9WyJPcmdhbmljIEZlcnRpbGl6ZXIiXX0sNTQwNDQwKGUpe2UuZXhwb3J0cz1bIk9zY2lsbGF0b3JzIFJhdGluZyJdfSw0NjM4MChlKXtlLmV4cG9ydHM9WyJPdGhlciBDb25zdW1lciBTZXJ2aWNlcyJdfSw5MDc3NTAoZSl7ZS5leHBvcnRzPVsiT3RoZXIgQ29uc3VtZXIgU3BlY2lhbHRpZXMiXX0sMTA1ODcxKGUpe2UuZXhwb3J0cz1bIk90aGVyIE1ldGFscy9NaW5lcmFscyJdfSwzNjY3ODkoZSl7ZS5leHBvcnRzPVsiT3RoZXIgU3BlY2lhbHR5IFJldGFpbGVycyJdfSw1MTE1ODYoZSl7ZS5leHBvcnRzPVsiT3RoZXIgVHJhbnNwb3J0YXRpb24iXX0sNDMwNzk4KGUpe2UuZXhwb3J0cz1bIk91dGRvb3IgQWR2ZXJ0aXNpbmciXX0sMjc3OTQyKGUpe2UuZXhwb3J0cz1bIk91dHNvdXJjaW5nICYgU3RhZmZpbmcgU2VydmljZXMiXX0sNDY5NDc3KGUpe2UuZXhwb3J0cz1bIk91dHN0YW5kaW5nIGFtb3VudCJdfSw3Njk3NzAoZSl7ZS5leHBvcnRzPVsiT3duZXJzaGlwIGZvcm0iXX0sODYzOTE2KGUpe2UuZXhwb3J0cz1bIkxORyBUcmFuc3BvcnRhdGlvbiAmIFN0b3JhZ2UiXX0sNDI0NjE5KGUpe2UuZXhwb3J0cz1bIkxvdCBzaXplIl19LDczODQwNyhlKXtlLmV4cG9ydHM9WyJMb3R0ZXJ5IE9wZXJhdG9ycyJdfSwxMzExOTQoZSl7ZS5leHBvcnRzPVsiTG93ZXN0Il19LDQ0MzQzKGUpe2UuZXhwb3J0cz1bIkxvY2FsIEFnZW5jaWVzIl19LDI5OTE3NShlKXtlLmV4cG9ydHM9WyJMb2NvbW90aXZlIEVuZ2luZXMgJiBSb2xsaW5nIFN0b2NrIl19LDk4MDI0NihlKXtlLmV4cG9ydHM9WyJMb2dnaW5nICYgU2F3bWlsbHMiXX0sNTIyODk2KGUpe2UuZXhwb3J0cz1bIkxvbmctdGVybSJdfSw0NDk3MyhlKXtlLmV4cG9ydHM9WyJMb25nL3Nob3J0Il19LDY3MTc0NyhlKXtlLmV4cG9ydHM9WyJMb25nIEFVRCwgc2hvcnQgRVVSIl19LDM3MjY1MChlKXtlLmV4cG9ydHM9WyJMb25nIEFVRCwgc2hvcnQgR0JQIl19LDk0Mzk5MyhlKXsKZS5leHBvcnRzPVsiTG9uZyBBVUQsIHNob3J0IFVTRCJdfSwxMjA5NyhlKXtlLmV4cG9ydHM9WyJMb25nIEJSTCwgc2hvcnQgVVNEIl19LDU3MTczMChlKXtlLmV4cG9ydHM9WyJMb25nIEJpbmFuY2UsIHNob3J0IFVTRCJdfSwzMDk1MShlKXtlLmV4cG9ydHM9WyJMb25nIEJpdGNvaW4sIHNob3J0IENBRCJdfSwxMjA0NDkoZSl7ZS5leHBvcnRzPVsiTG9uZyBCaXRjb2luLCBzaG9ydCBDSEYiXX0sMjkwMjYzKGUpe2UuZXhwb3J0cz1bIkxvbmcgQml0Y29pbiwgc2hvcnQgRVVSIl19LDkzNzkxMChlKXtlLmV4cG9ydHM9WyJMb25nIEJpdGNvaW4sIHNob3J0IFNFSyJdfSwxNzk2ODYoZSl7ZS5leHBvcnRzPVsiTG9uZyBCaXRjb2luLCBzaG9ydCBVU0QiXX0sOTUwNzc5KGUpe2UuZXhwb3J0cz1bIkxvbmcgQ0FELCBzaG9ydCBCaXRjb2luIl19LDY2OTIyMChlKXtlLmV4cG9ydHM9WyJMb25nIENBRCwgc2hvcnQgRVVSIl19LDU3MDQyNShlKXtlLmV4cG9ydHM9WyJMb25nIENBRCwgc2hvcnQgR0JQIl19LDUyODI1OChlKXtlLmV4cG9ydHM9WyJMb25nIENBRCwgc2hvcnQgVVNEIl19LDgyMTU3MChlKXtlLmV4cG9ydHM9WyJMb25nIENIRiwgc2hvcnQgRVVSIl19LDgzMjgwNyhlKXtlLmV4cG9ydHM9WyJMb25nIENIRiwgc2hvcnQgR0JQIl19LDk4NTUxMihlKXtlLmV4cG9ydHM9WyJMb25nIENIRiwgc2hvcnQgVVNEIl19LDcwNzg2NihlKXtlLmV4cG9ydHM9WyJMb25nIENOWSwgc2hvcnQgVVNEIl19LDk0NzAwNChlKXtlLmV4cG9ydHM9WyJMb25nIENhcmRhbm8sIHNob3J0IFVTRCJdfSw0NjIyMShlKXtlLmV4cG9ydHM9WyJMb25nIEVVUiwgc2hvcnQgTk9LIl19LDgyOTcwNShlKXtlLmV4cG9ydHM9WyJMb25nIEVVUiwgc2hvcnQgTlpEIl19LDkxMjM2MyhlKXtlLmV4cG9ydHM9WyJMb25nIEVVUiwgc2hvcnQgQVVEIl19LDY3MDIzOShlKXtlLmV4cG9ydHM9WyJMb25nIEVVUiwgc2hvcnQgQ0FEIl19LDE5NTA3MChlKXtlLmV4cG9ydHM9WyJMb25nIEVVUiwgc2hvcnQgQ0hGIl19LDg4MTcxMihlKXtlLmV4cG9ydHM9WyJMb25nIEVVUiwgc2hvcnQgRzEwIGJhc2tldCJdfSwyNjI3NTgoZSl7ZS5leHBvcnRzPVsiTG9uZyBFVVIsIHNob3J0IEdCUCJdfSwxNTA4MTMoZSl7ZS5leHBvcnRzPVsiTG9uZyBFVVIsIHNob3J0IEpQWSJdfSwxMTE3ODUoZSl7ZS5leHBvcnRzPVsiTG9uZyBFVVIsIHNob3J0IFNFSyJdfSw3NzU4MjkoZSl7ZS5leHBvcnRzPVsiTG9uZyBFVVIsIHNob3J0IFVTRCJdfSwyMzYzMihlKXtlLmV4cG9ydHM9WyJMb25nIEV0aGVyLCBzaG9ydCBDQUQiXX0sNTI4OTI1KGUpe2UuZXhwb3J0cz1bIkxvbmcgRXRoZXIsIHNob3J0IFNFSyJdfSw0Mjc2MDMoZSl7ZS5leHBvcnRzPVsiTG9uZyBFdGhlciwgc2hvcnQgVVNEIl19LDYzMDM0NihlKXtlLmV4cG9ydHM9WyJMb25nIEcxMCBiYXNrZXQsIHNob3J0IEVVUiJdfSw1NzY5MzcoZSl7ZS5leHBvcnRzPVsiTG9uZyBHMTAgYmFza2V0LCBzaG9ydCBHQlAiXX0sNTY3NzUoZSl7ZS5leHBvcnRzPVsiTG9uZyBHMTAgYmFza2V0LCBzaG9ydCBVU0QiXX0sNjk1MjQoZSl7ZS5leHBvcnRzPVsiTG9uZyBHQlAsIHNob3J0IE5PSyJdfSw4MTExNTYoZSl7ZS5leHBvcnRzPVsiTG9uZyBHQlAsIHNob3J0IE5aRCJdfSw3OTQzNTgoZSl7ZS5leHBvcnRzPVsiTG9uZyBHQlAsIHNob3J0IEFVRCJdfSwyMDYyNjYoZSl7ZS5leHBvcnRzPVsiTG9uZyBHQlAsIHNob3J0IENBRCJdfSw0MzA0OTkoZSl7ZS5leHBvcnRzPVsiTG9uZyBHQlAsIHNob3J0IENIRiJdfSw4ODAwMDEoZSl7ZS5leHBvcnRzPVsiTG9uZyBHQlAsIHNob3J0IEVVUiJdfSw0Njg4NyhlKXtlLmV4cG9ydHM9WyJMb25nIEdCUCwgc2hvcnQgRzEwIGJhc2tldCJdfSw2MjAwMzIoZSl7ZS5leHBvcnRzPVsiTG9uZyBHQlAsIHNob3J0IEpQWSJdfSw1ODE2OTYoZSl7ZS5leHBvcnRzPVsiTG9uZyBHQlAsIHNob3J0IFNFSyJdfSw0MTIyMzkoZSl7ZS5leHBvcnRzPVsiTG9uZyBHQlAsIHNob3J0IFVTRCJdfSw4MTU0MihlKXtlLmV4cG9ydHM9WyJMb25nIElOUiwgc2hvcnQgVVNEIl19LDg5OTU1OChlKXtlLmV4cG9ydHM9WyJMb25nIEpQWSwgc2hvcnQgRVVSIl19LDEzMjc3NihlKXtlLmV4cG9ydHM9WyJMb25nIEpQWSwgc2hvcnQgR0JQIl19LDgxOTI2MChlKXtlLmV4cG9ydHM9WyJMb25nIEpQWSwgc2hvcnQgVVNEIl19LDUwNTMwMyhlKXtlLmV4cG9ydHM9WyJMb25nIE5PSywgc2hvcnQgRVVSIl19LDUzMDg3OChlKXtlLmV4cG9ydHM9WyJMb25nIE5PSywgc2hvcnQgR0JQIl19LDU1NDk4OShlKXtlLmV4cG9ydHM9WyJMb25nIE5PSywgc2hvcnQgVVNEIl19LDY5OTkwMyhlKXtlLmV4cG9ydHM9WyJMb25nIE5aRCwgc2hvcnQgRVVSIl19LDc2Nzk0MihlKXtlLmV4cG9ydHM9WyJMb25nIE5aRCwgc2hvcnQgR0JQIl19LDEwNDUwMShlKXtlLmV4cG9ydHM9WyJMb25nIE5aRCwgc2hvcnQgVVNEIl19LDU5MDQ3OChlKXtlLmV4cG9ydHM9WyJMb25nIFBvbGthZG90LCBzaG9ydCBVU0QiXX0sOTEyNzcyKGUpe2UuZXhwb3J0cz1bIkxvbmcgUmlwcGxlLCBzaG9ydCBVU0QiXX0sMjEzMjgyKGUpe2UuZXhwb3J0cz1bIkxvbmcgU0dELCBzaG9ydCBVU0QiXX0sMzQxNTM1KGUpe2UuZXhwb3J0cz1bIkxvbmcgU0VLLCBzaG9ydCBFVVIiXX0sNDYyNDM4KGUpe2UuZXhwb3J0cz1bIkxvbmcgU0VLLCBzaG9ydCBHQlAiXX0sODUyMzA5KGUpe2UuZXhwb3J0cz1bIkxvbmcgU0VLLCBzaG9ydCBVU0QiXX0sMzcyNjY0KGUpe2UuZXhwb3J0cz1bIkxvbmcgU29sYW5hLCBzaG9ydCBVU0QiXX0sMTc1MDEzKGUpe2UuZXhwb3J0cz1bIkxvbmcgU3RlbGxhciwgc2hvcnQgVVNEIl19LDEwOTIyMyhlKXtlLmV4cG9ydHM9WyJMb25nIFRlem9zLCBzaG9ydCBVU0QiXX0sODUwNzU0KGUpe2UuZXhwb3J0cz1bIkxvbmcgVVNELCBzaG9ydCBOT0siXX0sNzQ4MjM4KGUpe2UuZXhwb3J0cz1bIkxvbmcgVVNELCBzaG9ydCBOWkQiXX0sNzQxNjgwKGUpe2UuZXhwb3J0cz1bIkxvbmcgVVNELCBzaG9ydCBBVUQiXX0sNzUwMDM4KGUpe2UuZXhwb3J0cz1bIkxvbmcgVVNELCBzaG9ydCBCaXRjb2luIl19LDIxMjU0MChlKXsKZS5leHBvcnRzPVsiTG9uZyBVU0QsIHNob3J0IENBRCJdfSwxNTkxNzMoZSl7ZS5leHBvcnRzPVsiTG9uZyBVU0QsIHNob3J0IENIRiJdfSw3OTc2NjYoZSl7ZS5leHBvcnRzPVsiTG9uZyBVU0QsIHNob3J0IENOWSJdfSwzMzc4OTkoZSl7ZS5leHBvcnRzPVsiTG9uZyBVU0QsIHNob3J0IEVVUiJdfSwyNTAwOShlKXtlLmV4cG9ydHM9WyJMb25nIFVTRCwgc2hvcnQgRzEwIGJhc2tldCJdfSw0OTQ1OChlKXtlLmV4cG9ydHM9WyJMb25nIFVTRCwgc2hvcnQgR0JQIl19LDY5MzkyKGUpe2UuZXhwb3J0cz1bIkxvbmcgVVNELCBzaG9ydCBJTlIiXX0sODk3MDI2KGUpe2UuZXhwb3J0cz1bIkxvbmcgVVNELCBzaG9ydCBKUFkiXX0sNTk3ODY1KGUpe2UuZXhwb3J0cz1bIkxvbmcgVVNELCBzaG9ydCBLUlciXX0sNTMxNjkwKGUpe2UuZXhwb3J0cz1bIkxvbmcgVVNELCBzaG9ydCBTRUsiXX0sMjI1MDE3KGUpe2UuZXhwb3J0cz1bIkxvbmcgVVNELCBzaG9ydCBUUlkiXX0sMTEyNzY3KGUpe2UuZXhwb3J0cz1bIkxvbmcgVVNELCBzaG9ydCBjb21tb2RpdHkgbmF0aW9ucyJdfSw4NzkxMTIoZSl7ZS5leHBvcnRzPVsiTG9uZyBVU0QsIHNob3J0IGdsb2JhbCBiYXNrZXQiXX0sMjE5Mjg0KGUpe2UuZXhwb3J0cz1bIkxvbmcgY29tbW9kaXR5IG5hdGlvbnMsIHNob3J0IFVTRCJdfSwzNDYxMjgoZSl7ZS5leHBvcnRzPVsiTG9uZyBjcnlwdG9jdXJyZW5jeSBiYXNrZXQsIHNob3J0IENBRCJdfSw2NjE0MDkoZSl7ZS5leHBvcnRzPVsiTG9uZyBjcnlwdG9jdXJyZW5jeSBiYXNrZXQsIHNob3J0IENIRiJdfSw4NDk0MShlKXtlLmV4cG9ydHM9WyJMb25nIGNyeXB0b2N1cnJlbmN5IGJhc2tldCwgc2hvcnQgVVNEIl19LDMzNTcyNyhlKXtlLmV4cG9ydHM9WyJMb25nIGVtZXJnaW5nIG1hcmtldHMgYmFza2V0LCBzaG9ydCBVU0QiXX0sMzc5MDUwKGUpe2UuZXhwb3J0cz1bIkxvbmcgZ2xvYmFsIGJhc2tldCwgc2hvcnQgQ0FEIl19LDgxMzE1NShlKXtlLmV4cG9ydHM9WyJMb25nIGdsb2JhbCBiYXNrZXQsIHNob3J0IFVTRCJdfSw3MTk1MzYoZSl7ZS5leHBvcnRzPVsiTGF0aW4gQW1lcmljYSJdfSw0NzE5ODEoZSl7ZS5leHBvcnRzPVsiTGF1bmRyeSBTdXBwbGllcyJdfSw0NTY1MzcoZSl7ZS5leHBvcnRzPVsiTGFuZCBEaXZpc2lvbiAmIFN1YmRpdmlzaW9uIl19LDU5MTE4MChlKXtlLmV4cG9ydHM9WyJMYW9zIl19LDU1MjI3MyhlKXtlLmV4cG9ydHM9WyJMYXB0b3AgJiBEZXNrdG9wIENvbXB1dGVycyJdfSwxODg2OShlKXtlLmV4cG9ydHM9WyJMYXJnZSBjYXAiXX0sNjA5NjY2KGUpe2UuZXhwb3J0cz1bIkxhc2VyIEVxdWlwbWVudCJdfSwzODkxOTMoZSl7ZS5leHBvcnRzPVsiTGFzdCB1cGRhdGUgYXQge2RhdGV9Il19LDEyMTk1MyhlKXtlLmV4cG9ydHM9WyJMYXN0IGV4LWRpdmlkZW5kIGRhdGUiXX0sOTY5NzMoZSl7ZS5leHBvcnRzPVsiTGFzdCBwYXltZW50Il19LDU2NDA4OShlKXtlLmV4cG9ydHM9WyJMYXN0IHBheW1lbnQgZGF0ZSJdfSw4MDc3OTgoZSl7ZS5leHBvcnRzPVsiTGFzdCByZWxlYXNlIl19LDY1NDI2MyhlKXtlLmV4cG9ydHM9WyJMZWFkIl19LDQ1ODg4OChlKXtlLmV4cG9ydHM9WyJMZWFkIE9yZSBNaW5pbmciXX0sNDY0MzA0KGUpe2UuZXhwb3J0cz1bIkxlYW4gaG9ncyJdfSw5MDgwNDMoZSl7ZS5leHBvcnRzPVsiTGVhdGhlciBHb29kcyJdfSw5NDU2MTMoZSl7ZS5leHBvcnRzPVsiTGViYW5vbiJdfSw4NjYxNzYoZSl7ZS5leHBvcnRzPVsiTGVnYWwgU2VydmljZXMiXX0sNzUyMjYoZSl7ZS5leHBvcnRzPVsiTGVpc3VyZSAmIFJlY3JlYXRpb24iXX0sNjE0MzMwKGUpe2UuZXhwb3J0cz1bIkxlaXN1cmUgUHJvZHVjdHMgV2hvbGVzYWxlIl19LDY1MzM5NShlKXtlLmV4cG9ydHM9WyJMZXNvdGhvIl19LDI2NzgyMihlKXtlLmV4cG9ydHM9WyJMaXZlIGNhdHRsZSJdfSwxMTc0OTIoZSl7ZS5leHBvcnRzPVsiTGl2ZXN0b2NrIl19LDUyMTU1MyhlKXtlLmV4cG9ydHM9WyJMaWFiaWxpdGllcyB0byBhc3NldHMiXX0sNjYyMShlKXtlLmV4cG9ydHM9WyJMaWJlcmlhIl19LDU1NTM1MihlKXtlLmV4cG9ydHM9WyJMaWJ5YSJdfSwzODY2NjcoZSl7ZS5leHBvcnRzPVsiTGllY2h0ZW5zdGVpbiJdfSw2NDMzNjUoZSl7ZS5leHBvcnRzPVsiTGlmZS9IZWFsdGggSW5zdXJhbmNlIl19LDQ4NzY2MChlKXtlLmV4cG9ydHM9WyJMaWZlICYgSGVhbHRoIEluc3VyYW5jZSJdfSw0OTMyNjgoZSl7ZS5leHBvcnRzPVsiTGlmZSAmIEhlYWx0aCBSZWluc3VyYW5jZSJdfSw5OTQxOTIoZSl7ZS5leHBvcnRzPVsiTGlmZSBJbnN1cmFuY2UiXX0sNzI4NjQ5KGUpe2UuZXhwb3J0cz1bIkxpZ2h0IFRydWNrcyJdfSwxOTE2MzAoZSl7ZS5leHBvcnRzPVsiTGlnaHRpbmcgRXF1aXBtZW50Il19LDQ3OTA5MShlKXtlLmV4cG9ydHM9WyJMaWdodGluZyBGaXh0dXJlcyJdfSw2ODQ5MDEoZSl7ZS5leHBvcnRzPVsiTGluZ2VyaWUiXX0sNDQ3MTUwKGUpe2UuZXhwb3J0cz1bIkxpbmsgY29waWVkIHRvIGNsaXBib2FyZCJdfSw2ODY2NzQoZSl7ZS5leHBvcnRzPVsiTGlxdWlkaXR5Il19LDY3NTEwKGUpe2UuZXhwb3J0cz1bIkx1eHVyeSBBY2Nlc3NvcmllcyJdfSw0MDkzNTcoZSl7ZS5leHBvcnRzPVsiTHV4dXJ5IENhciBEZWFsZXJzIl19LDI0NzU2MChlKXtlLmV4cG9ydHM9WyJNQUNEIExldmVsICgxMiwgMjYpIl19LDMyMDA1OChlKXtlLmV4cG9ydHM9WyJNb3RvciBWZWhpY2xlcyJdfSw0ODAwNDUoZSl7ZS5leHBvcnRzPVsiTW90b3JjeWNsZSBEZWFsZXJzIl19LDkyMjYyKGUpe2UuZXhwb3J0cz1bIk1vdG9yY3ljbGUgUGFydHMgJiBBY2Nlc3NvcmllcyJdfSw1NDI2OChlKXtlLmV4cG9ydHM9WyJNb3RvcmN5Y2xlcyAmIFNjb290ZXJzIl19LDIwMDQ1MihlKXtlLmV4cG9ydHM9WyJNb3ZpbmcgQXZlcmFnZXMgUmF0aW5nIl19LDU4NTg0NShlKXtlLmV4cG9ydHM9WyJNb3ZpZSBUaGVhdGVycyAmIE1vdmllIFByb2R1Y3RzIl19LDE5MjkzMShlKXtlLmV4cG9ydHM9WyJNb3ZpZSwgVFYgUHJvZHVjdGlvbiAmIERpc3RyaWJ1dGlvbiJdfSwzNzAxMChlKXtlLmV4cG9ydHM9WyJNb3ZpZXMvRW50ZXJ0YWlubWVudCJdfSwxMDAwMjYoZSl7CmUuZXhwb3J0cz1bIk1vemFtYmlxdWUiXX0sNjgyNTU3KGUpe2UuZXhwb3J0cz1bIk1vYmlsZSBBcHBsaWNhdGlvbiBTb2Z0d2FyZSJdfSw2MjU0NTMoZSl7ZS5leHBvcnRzPVsiTW9iaWxlIFBob25lIFJldGFpbGVycyJdfSw3NTAwMzMoZSl7ZS5leHBvcnRzPVsiTW9iaWxlIFN5c3RlbSBTb2Z0d2FyZSJdfSwzMjEzMzYoZSl7ZS5leHBvcnRzPVsiTW9sZG92YSJdfSw1MzE1MDIoZSl7ZS5leHBvcnRzPVsiTW9tZW50dW0gKDEwKSJdfSwyMDg5MDQoZSl7ZS5leHBvcnRzPVsiTW9uYWNvIl19LDkxMzcwOShlKXtlLmV4cG9ydHM9WyJNb25nb2xpYSJdfSw3MzkzNjUoZSl7ZS5leHBvcnRzPVsiTW9udGVuZWdybyJdfSwzMzMyNjIoZSl7ZS5leHBvcnRzPVsiTW9udHNlcnJhdCJdfSwzOTQ5NDcoZSl7ZS5leHBvcnRzPVsiTW9yZSJdfSw3ODg1MjgoZSl7ZS5leHBvcnRzPVsiTW9yZSB0ZWNobmljYWxzIl19LDg5NzQ1NShlKXtlLmV4cG9ydHM9WyJNb3JlIGFib3V0IGJvbmQiXX0sNjU3MTYwKGUpe2UuZXhwb3J0cz1bIk1vcmUgYWJvdXQgZnVuZCJdfSw2ODI4NTIoZSl7ZS5leHBvcnRzPVsiTW9yZSBib25kcyJdfSw1MjkxMDIoZSl7ZS5leHBvcnRzPVsiTW9yZSBmaW5hbmNpYWxzIl19LDU5MDE0OChlKXtlLmV4cG9ydHM9WyJNb3JlIGluZm8iXX0sNTQ5NTA0KGUpe2UuZXhwb3J0cz1bIk1vcmUgb24gb3B0aW9ucyJdfSw4NTA5MzgoZSl7ZS5leHBvcnRzPVsiTW9yZSBzZWFzb25hbHMiXX0sNDk4MTU0KGUpe2UuZXhwb3J0cz1bIk1vcnRnYWdlIFJFSVRzIl19LDUyNjU5MChlKXtlLmV4cG9ydHM9WyJNYXRlcmlhbHMiXX0sMjAzMTEyKGUpe2UuZXhwb3J0cz1bIk1hdHVyaXR5IGRhdGUiXX0sMzUyNzY4KGUpe2UuZXhwb3J0cz1bIk1hdHVyaXR5IHR5cGUiXX0sNjY3OTk2KGUpe2UuZXhwb3J0cz1bIk1hdXJpdGFuaWEiXX0sMTUwMDU0KGUpe2UuZXhwb3J0cz1bIk1hdXJpdGl1cyJdfSw0ODMxNDkoZSl7ZS5leHBvcnRzPVsiTWF5b3R0ZSJdfSwzMDcwNjIoZSl7ZS5leHBvcnRzPVsiTWFjYW8iXX0sNTMyMjY5KGUpe2UuZXhwb3J0cz1bIk1hY2F1LCBDaGluYSJdfSw0NTkxMDgoZSl7ZS5leHBvcnRzPVsiTWFjZWRvbmlhIl19LDc0NTAwMyhlKXtlLmV4cG9ydHM9WyJNYWNoaW5lIFRvb2xzIl19LDY2MDE4OChlKXtlLmV4cG9ydHM9WyJNYWRhZ2FzY2FyIl19LDEyNzYzMyhlKXtlLmV4cG9ydHM9WyJNYWdhemluZSBQdWJsaXNoaW5nIl19LDk4MDc4NihlKXtlLmV4cG9ydHM9WyJNYWludGVuYW5jZSAmIFJlcGFpciBTZXJ2aWNlcyJdfSw0NDc3NTMoZSl7ZS5leHBvcnRzPVsiTWFqb3IiXX0sMTQzNzc0KGUpe2UuZXhwb3J0cz1bIk1ham9yIEJhbmtzIl19LDkxNzU3OChlKXtlLmV4cG9ydHM9WyJNYWpvciBQaGFybWFjZXV0aWNhbHMiXX0sMjczMTAzKGUpe2UuZXhwb3J0cz1bIk1ham9yIFRlbGVjb21tdW5pY2F0aW9ucyJdfSwyNDU5NDgoZSl7ZS5leHBvcnRzPVsiTWFsYXdpIl19LDMzMTYxNShlKXtlLmV4cG9ydHM9WyJNYWxkaXZlcyJdfSw1OTk2NjMoZSl7ZS5leHBvcnRzPVsiTWFsZm9ybWVkIHJlcXVlc3QiXX0sNjIzNDY1KGUpe2UuZXhwb3J0cz1bIk1hbGkiXX0sODQyMzEyKGUpe2UuZXhwb3J0cz1bIk1hbHQgcHJvZHVjZXJzIl19LDgxMTQ4MyhlKXtlLmV4cG9ydHM9WyJNYW5hZ2VkIEhlYWx0aCBDYXJlIl19LDUyOTM0NyhlKXtlLmV4cG9ydHM9WyJNYW5hZ2VkIEhlYWx0aCBjYXJlIl19LDEyMjEwMihlKXtlLmV4cG9ydHM9WyJNYW5hZ2VtZW50IENvbnN1bHRpbmcgU2VydmljZXMiXX0sODQxNzYxKGUpe2UuZXhwb3J0cz1bIk1hcmtldCBSZXNlYXJjaCJdfSw1MDVlMyhlKXtlLmV4cG9ydHM9WyJNYXJrZXQgY2FwaXRhbGl6YXRpb24iXX0sODk3MzkzKGUpe2UuZXhwb3J0cz1bIk1hcmtldGluZyBDb25zdWx0aW5nIFNlcnZpY2VzIl19LDIzNzE1MihlKXtlLmV4cG9ydHM9WyJNYXJpbmFzIl19LDIzNTk5NChlKXtlLmV4cG9ydHM9WyJNYXJpbmUgQ2FyZ28gSGFuZGxpbmcgU2VydmljZXMiXX0sNjkwMzg4KGUpe2UuZXhwb3J0cz1bIk1hcmluZSBGcmVpZ2h0ICYgTG9naXN0aWNzIl19LDc2NDA5OShlKXtlLmV4cG9ydHM9WyJNYXJpbmUgTG9naXN0aWNzIl19LDY5NDg0OShlKXtlLmV4cG9ydHM9WyJNYXJpbmUgUGFzc2VuZ2VyIFRyYW5zcG9ydGF0aW9uIl19LDUxMTQ1MihlKXtlLmV4cG9ydHM9WyJNYXJpbmUgUG9ydCBTZXJ2aWNlcyJdfSw4MDc1NjEoZSl7ZS5leHBvcnRzPVsiTWFyaW5lIFNoaXBwaW5nIl19LDQ3Nzg0MyhlKXtlLmV4cG9ydHM9WyJNYXJzaGFsbCBJc2xhbmRzIl19LDEzNTE1MihlKXtlLmV4cG9ydHM9WyJNYXJ0aW5pcXVlIl19LDEwOTM3MihlKXtlLmV4cG9ydHM9WyJNZXRhbCBDb250YWluZXJzICYgUGFja2FnaW5nIl19LDUzNjc5NShlKXtlLmV4cG9ydHM9WyJNZXRhbCBGYWJyaWNhdGlvbiJdfSw1NTk3NjAoZSl7ZS5leHBvcnRzPVsiTWV0YWwgTWVyY2hhbnQgV2hvbGVzYWxlcnMiXX0sMjI5NTQwKGUpe2UuZXhwb3J0cz1bIk1ldGFsIFNlcnZpY2UgQ2VudGVycyJdfSw5NjI0MjcoZSl7ZS5leHBvcnRzPVsiTWV0YWxsaWMgUm9sbGluZyAmIERyYXdpbmcgUHJvZHVjdHMiXX0sMjUyMjAzKGUpe2UuZXhwb3J0cz1bIk1lZGlhIENvbmdsb21lcmF0ZXMiXX0sMjY2MDIwKGUpe2UuZXhwb3J0cz1bIk1lZGlhIEJ1eWluZyBBZ2VuY3kiXX0sNTk5MTUwKGUpe2UuZXhwb3J0cz1bIk1lZGljYWwvTnVyc2luZyBTZXJ2aWNlcyJdfSw0MzI2NjIoZSl7ZS5leHBvcnRzPVsiTWVkaWNhbCAmIERpYWdub3N0aWMgTGFib3JhdG9yaWVzIl19LDg3MDU1OShlKXtlLmV4cG9ydHM9WyJNZWRpY2FsIERldmljZXMgJiBJbXBsYW50cyJdfSw2NTk5NzEoZSl7ZS5leHBvcnRzPVsiTWVkaWNhbCBEaWFnbm9zdGljICYgVGVzdGluZyBFcXVpcG1lbnQiXX0sNTA3ODUoZSl7ZS5leHBvcnRzPVsiTWVkaWNhbCBEaXN0cmlidXRvcnMiXX0sNzkyMjAwKGUpe2UuZXhwb3J0cz1bIk1lZGljYWwgRXF1aXBtZW50Il19LDUzMjg1NyhlKXtlLmV4cG9ydHM9WyJNZWRpY2FsIEVxdWlwbWVudCBXaG9sZXNhbGUiXX0sNzIyNTU2KGUpewplLmV4cG9ydHM9WyJNZWRpY2FsIEVxdWlwbWVudCwgU3VwcGxpZXMgJiBEaXN0cmlidXRpb24iXX0sNzcxNDU3KGUpe2UuZXhwb3J0cz1bIk1lZGljYWwgSW1hZ2luZyBTeXN0ZW1zIl19LDQ2Njc0OChlKXtlLmV4cG9ydHM9WyJNZWRpY2FsIE1vbml0b3JpbmcgU3lzdGVtcyJdfSw3Nzc3OChlKXtlLmV4cG9ydHM9WyJNZWRpY2FsIFByb3N0aGV0aWNzIl19LDQzMzI2NChlKXtlLmV4cG9ydHM9WyJNZWRpY2FsIFNvZnR3YXJlICYgVGVjaG5vbG9neSBTZXJ2aWNlcyJdfSwzNzYzMTYoZSl7ZS5leHBvcnRzPVsiTWVkaWNhbCBTcGVjaWFsdGllcyJdfSwyNjA0MzIoZSl7ZS5leHBvcnRzPVsiTWVkaWNhbCBTdXBwbGllcyJdfSw0MDQwNjAoZSl7ZS5leHBvcnRzPVsiTWVkaXVtLXRlcm0iXX0sNjAzODMoZSl7ZS5leHBvcnRzPVsiTWVtb3J5IENoaXBzIChSQU0pIl19LDc5NjEwKGUpe2UuZXhwb3J0cz1bIk1lbidzIENsb3RoaW5nIl19LDk5NjY0OShlKXtlLmV4cG9ydHM9WyJNZW4ncyBBcHBhcmVsIFJldGFpbGVycyJdfSw3OTYwODIoZSl7ZS5leHBvcnRzPVsiTWVuJ3MgRm9vdHdlYXIiXX0sNzA2NjYoZSl7ZS5leHBvcnRzPVsiTWVyY2hhbnQgQmFua3MiXX0sNjQxNDQzKGUpe2UuZXhwb3J0cz1bIk1pY3JvIGNhcCJdfSw2MDYyNjYoZSl7ZS5leHBvcnRzPVsiTWljcm9maW5hbmNpbmciXX0sMjkxMDk4KGUpe2UuZXhwb3J0cz1bIk1pY3JvbmVzaWEgKEZlZGVyYXRlZCBTdGF0ZXMgb2YpIl19LDMwNjcyNyhlKXtlLmV4cG9ydHM9WyJNaWQgY2FwIl19LDY4NTc1MShlKXtlLmV4cG9ydHM9WyJNaWRkbGUgRWFzdCJdfSw0NzYxMjAoZSl7ZS5leHBvcnRzPVsiTWluaW11bSBkZW5vbWluYXRpb24iXX0sODM4MzMwKGUpe2UuZXhwb3J0cz1bIk1pbmluZyBNYWNoaW5lcnkgJiBFcXVpcG1lbnQgTWFudWZhY3R1cmluZyJdfSw0MDQ4NTYoZSl7ZS5leHBvcnRzPVsiTWluaW5nIFN1cHBvcnQgQWN0aXZpdGllcyJdfSw4MTY4NDUoZSl7ZS5leHBvcnRzPVsiTWluaW5nIFN1cHBvcnQgU2VydmljZXMgJiBFcXVpcG1lbnQiXX0sMjA2OTgzKGUpe2UuZXhwb3J0cz1bIk1pbm9yIl19LDE1NzAyMyhlKXtlLmV4cG9ydHM9WyJNaXNjZWxsYW5lb3VzIl19LDEzMjk4NChlKXtlLmV4cG9ydHM9WyJNaXNjZWxsYW5lb3VzIENvbW1lcmNpYWwgU2VydmljZXMiXX0sOTQ3NzE0KGUpe2UuZXhwb3J0cz1bIk1pc2NlbGxhbmVvdXMgTWFudWZhY3R1cmluZyJdfSwxMDAwMyhlKXtlLmV4cG9ydHM9WyJNdXR1YWwgRnVuZHMiXX0sOTQwOTg2KGUpe2UuZXhwb3J0cz1bIk11dHVhbCBmdW5kIl19LDkxMzU2MShlKXtlLmV4cG9ydHM9WyJNdWx0aS1MaW5lIEluc3VyYW5jZSJdfSw5NjIzMTAoZSl7ZS5leHBvcnRzPVsiTXVsdGktc3RyYXRlZ3kiXX0sNjc2NTE4KGUpe2UuZXhwb3J0cz1bIk11bHRpbGluZSBJbnN1cmFuY2UgJiBCcm9rZXJzIl19LDE3MzA3MyhlKXtlLmV4cG9ydHM9WyJNdWx0aWxpbmUgVXRpbGl0aWVzIl19LDk1MDkxNShlKXtlLmV4cG9ydHM9WyJNdW5pY2lwYWwiXX0sNDQ3NjUxKGUpe2UuZXhwb3J0cz1bIk11bmljaXBhbGl0eSJdfSwyNDQ1NDUoZSl7ZS5leHBvcnRzPVsiTXVzZXVtcyAmIEhpc3RvcmljIFBsYWNlcyJdfSw2MjczNDAoZSl7ZS5leHBvcnRzPVsiTXVzaWMsIE11c2ljIFZpZGVvIFByb2R1Y3Rpb24gJiBEaXN0cmlidXRpb24iXX0sOTA4NzY5KGUpe2UuZXhwb3J0cz1bIk11c2ljYWwgSW5zdHJ1bWVudCBSZXRhaWxlcnMiXX0sNzE2NjY5KGUpe2UuZXhwb3J0cz1bIk11c2ljYWwgSW5zdHJ1bWVudHMiXX0sMjM5NDMoZSl7ZS5leHBvcnRzPVsiTXlhbm1hciJdfSwzNDUwNDQoZSl7ZS5leHBvcnRzPVsiTm8gbWFya2V0IGRhdGEiXX0sMjYxMDUyKGUpe2UuZXhwb3J0cz1bIk5vIHRyYWRlcyJdfSw5ODc3MTUoZSl7ZS5leHBvcnRzPVsiTm9uLUFsY29ob2xpYyBCZXZlcmFnZXMiXX0sNTkyNTM4KGUpe2UuZXhwb3J0cz1bIk5vbi1FbmVyZ3kgTWluZXJhbHMiXX0sNTQyMjM1KGUpe2UuZXhwb3J0cz1bIk5vbi1QYXBlciBDb250YWluZXJzICYgUGFja2FnaW5nIl19LDE1OTc1OShlKXtlLmV4cG9ydHM9WyJOb24tY2FsbGFibGUgYW5kIG5vbi1wdXRhYmxlIl19LDg0NTI5MihlKXtlLmV4cG9ydHM9WyJOb24tY29udmVydGlibGUiXX0sOTg5OTQwKGUpe2UuZXhwb3J0cz1bIk5vbi1mZXJyb3VzIE1ldGFsIE1pbmluZyJdfSw4MTk1NjYoZSl7ZS5leHBvcnRzPVsiTm9uLWZlcnJvdXMgTWV0YWwgUHJvY2Vzc2luZyJdfSw1Mjc0NjkoZSl7ZS5leHBvcnRzPVsiTm9uLXNpbmthYmxlIl19LDY4OTcxNihlKXtlLmV4cG9ydHM9WyJOb3J0aCBBbWVyaWNhIl19LDcyOTc4MihlKXtlLmV4cG9ydHM9WyJOb3J0aCBNYWNlZG9uaWEiXX0sNjEyNTU3KGUpe2UuZXhwb3J0cz1bIk5vcnRoZXJuIE1hcmlhbmEgSXNsYW5kcyJdfSw5NTY0NjIoZSl7ZS5leHBvcnRzPVsiTmF0aW9uYWwgQWdlbmN5Il19LDIzMTMzNChlKXtlLmV4cG9ydHM9WyJOYXRpb25hbCBBZ2VuY2llcyJdfSwyMjgyMTEoZSl7ZS5leHBvcnRzPVsiTmF0dXJhbCBGYWJyaWNzIl19LDEwNTUzMihlKXtlLmV4cG9ydHM9WyJOYXR1cmFsIEdhcyBEaXN0cmlidXRpb24iXX0sNjUzMDMwKGUpe2UuZXhwb3J0cz1bIk5hdHVyYWwgR2FzIEV4cGxvcmF0aW9uICYgUHJvZHVjdGlvbiAtIE9uc2hvcmUiXX0sMjM3MzQ5KGUpe2UuZXhwb3J0cz1bIk5hdHVyYWwgR2FzIEV4cGxvcmF0aW9uICYgUHJvZHVjdGlvbiAtIE9mZnNob3JlIl19LDEyNDk5OChlKXtlLmV4cG9ydHM9WyJOYXR1cmFsIEdhcyBQaXBlbGluZSJdfSwyNTg3ODUoZSl7ZS5leHBvcnRzPVsiTmF0dXJhbCBHYXMgVXRpbGl0aWVzIl19LDY0NDIzMShlKXtlLmV4cG9ydHM9WyJOYXR1cmFsIGdhcyJdfSw0NzM0MzcoZSl7ZS5leHBvcnRzPVsiTmF1cnUiXX0sNTcwNjE4KGUpe2UuZXhwb3J0cz1bIk5hbWliaWEiXX0sOTYxOTMoZSl7ZS5leHBvcnRzPVsiTmV0IHN0cmF0ZWd5Il19LDM2MzA4MyhlKXtlLmV4cG9ydHM9WyJOZXR3b3JrIEVxdWlwbWVudCJdfSwyNDk1ODgoZSl7ZS5leHBvcnRzPVsiTmV3IENhbGVkb25pYSJdfSwyMjk1NTYoZSl7ZS5leHBvcnRzPVsiTmV3IENhciBEZWFsZXJzIl19LAoxMjY0MjUoZSl7ZS5leHBvcnRzPVsiTmV3IFVudGl0bGVkIE5vdGUiXX0sNjU4OTU3KGUpe2UuZXhwb3J0cz1bIk5ldyBnbG9iYWwgbm90ZSJdfSwyMjEzNzEoZSl7ZS5leHBvcnRzPVsiTmV3c3BhcGVyICYgTWFnYXppbmUgUHJpbnRpbmcgU2VydmljZXMiXX0sMTg2NyhlKXtlLmV4cG9ydHM9WyJOZXdzcGFwZXIgUHVibGlzaGluZyJdfSw4MTk0NzMoZSl7ZS5leHBvcnRzPVsiTmV3c3ByaW50IE1pbGxzIl19LDM1MjI4NShlKXtlLmV4cG9ydHM9WyJOZXdzIEFnZW5jaWVzIl19LDY3Njk2NShlKXtlLmV4cG9ydHM9WyJOZXh0IGVhcm5pbmdzIHJlcG9ydCJdfSw4MTg4OTMoZSl7ZS5leHBvcnRzPVsiTmV4dCBleC1kaXZpZGVuZCBkYXRlIl19LDg0MDg0OShlKXtlLmV4cG9ydHM9WyJOZXh0IHBheW1lbnQiXX0sNzUwMDUzKGUpe2UuZXhwb3J0cz1bIk5leHQgcGF5bWVudCBkYXRlIl19LDQ2ODMwNihlKXtlLmV4cG9ydHM9WyJOZXh0IHJlbGVhc2UiXX0sMTAyODMzKGUpe2UuZXhwb3J0cz1bIk5lZ2F0aXZlIl19LDQ3MTI4OChlKXtlLmV4cG9ydHM9WyJOZXBhbCJdfSw5MDc0NzAoZSl7ZS5leHBvcnRzPVsiTml1ZSJdfSw2MjM0NDAoZSl7ZS5leHBvcnRzPVsiTmljYXJhZ3VhIl19LDExMTI2MihlKXtlLmV4cG9ydHM9WyJOaWNrZWwiXX0sNjA2ODU0KGUpe2UuZXhwb3J0cz1bIk5pY2tlbCBPcmUgTWluaW5nIl19LDU5MjE4OShlKXtlLmV4cG9ydHM9WyJOaWdlciJdfSw0NDI0MTMoZSl7ZS5leHBvcnRzPVsiTnVjbGVhciBJUFBzIl19LDY0NDg1NihlKXtlLmV4cG9ydHM9WyJOdWNsZWFyIFV0aWxpdGllcyJdfSw3MDY2NzEoZSl7ZS5leHBvcnRzPVsiTnVyc2VyeSAmIEdhcmRlbiBDZW50ZXJzIl19LDc5NTAyMShlKXtlLmV4cG9ydHM9WyJTSU5UIE1BQVJURU4gKERVVENIIFBBUlQpIl19LDMwNDc0NChlKXtlLmV4cG9ydHM9WyJTbWFsbCBjYXAiXX0sNTczMzExKGUpe2UuZXhwb3J0cz1bIlNtYXJ0IEdyaWQgJiBFbGVjdHJpY2FsIFRyYW5zbWlzc2lvbiJdfSwxODQyNzAoZSl7ZS5leHBvcnRzPVsiU21hcnQgR3JpZCAmIFBvd2VyIERpc3RyaWJ1dGlvbiBDb25zdHJ1Y3Rpb24iXX0sOTA4NDUoZSl7ZS5leHBvcnRzPVsiU25hY2sgRm9vZCAmIE5vbi1jaG9jb2xhdGUgQ29uZmVjdGlvbmFyeSJdfSw0NDc4NTQoZSl7ZS5leHBvcnRzPVsiU291dGggR2VvcmdpYSBhbmQgdGhlIFNvdXRoIFNhbmR3aWNoIElzbGFuZHMiXX0sNDU3MTg2KGUpe2UuZXhwb3J0cz1bIlNvdXRoIFN1ZGFuIl19LDc4MTkzMihlKXtlLmV4cG9ydHM9WyJTb3ZlcmVpZ24iXX0sMjk4NDMyKGUpe2UuZXhwb3J0cz1bIlNveWJlYW4gb2lsIl19LDI1MjY0NyhlKXtlLmV4cG9ydHM9WyJTb3liZWFucyJdfSw4MTgyMjIoZSl7ZS5leHBvcnRzPVsiU29jaWFsIE1lZGlhICYgTmV0d29ya2luZyJdfSw4MjQ1NzgoZSl7ZS5leHBvcnRzPVsiU29mdCBGdXJuaXNoaW5nIFJldGFpbGVycyJdfSwyMzc1MjMoZSl7ZS5leHBvcnRzPVsiU29mdHMiXX0sNTk3MTAzKGUpe2UuZXhwb3J0cz1bIlNvZnR3YXJlIl19LDE4MTc4KGUpe2UuZXhwb3J0cz1bIlNvbG9tb24gSXNsYW5kcyJdfSw2MDA1NyhlKXtlLmV4cG9ydHM9WyJTb21hbGlhIl19LDczNDA3NChlKXtlLmV4cG9ydHM9WyJTYXRlbGxpdGUgIFN5c3RlbXMgJiBBY2Nlc3NvcmllcyJdfSw4NTkxMTYoZSl7ZS5leHBvcnRzPVsiU2F0ZWxsaXRlIFNlcnZpY2UgT3BlcmF0b3JzIl19LDMzNDUwNyhlKXtlLmV4cG9ydHM9WyJTYXZpbmdzIEJhbmtzIl19LDIyNzg2MShlKXtlLmV4cG9ydHM9WyJTYWlsaW5nIFlhY2h0cyAmIE1vdG9yYm9hdHMiXX0sMTk5NDgzKGUpe2UuZXhwb3J0cz1bIlNhaW50IEJhcnRow6lsZW15Il19LDU3Njk3NShlKXtlLmV4cG9ydHM9WyJTYWludCBLaXR0cyBhbmQgTmV2aXMiXX0sOTU1ODM1KGUpe2UuZXhwb3J0cz1bIlNhaW50IEhlbGVuYSwgQXNjZW5zaW9uIGFuZCBUcmlzdGFuIGRhIEN1bmhhIl19LDI1ODMxMShlKXtlLmV4cG9ydHM9WyJTYWludCBMdWNpYSJdfSw0MjUwNjQoZSl7ZS5leHBvcnRzPVsiU2FpbnQgTWFydGluIChGcmVuY2ggcGFydCkiXX0sNzk3MDM1KGUpe2UuZXhwb3J0cz1bIlNhaW50IFBpZXJyZSBhbmQgTWlxdWVsb24iXX0sNjIyNjEzKGUpe2UuZXhwb3J0cz1bIlNhaW50IFZpbmNlbnQgYW5kIHRoZSBHcmVuYWRpbmVzIl19LDIxOTcxNyhlKXtlLmV4cG9ydHM9WyJTYWxlcyBQcm9tb3Rpb25zICYgRXZlbnRzIE1hbmFnZW1lbnQiXX0sNTk4OTYzKGUpe2UuZXhwb3J0cz1bIlNhbW9hIl19LDk5OTc2MihlKXtlLmV4cG9ydHM9WyJTYW4gTWFyaW5vIl19LDYyNzM1NShlKXtlLmV4cG9ydHM9WyJTYW5pdGFyeSBQcm9kdWN0cyJdfSwyNzkzODIoZSl7ZS5leHBvcnRzPVsiU2FvIFRvbWUgYW5kIFByaW5jaXBlIl19LDE5ODYyOChlKXtlLmV4cG9ydHM9WyJTY2llbnRpZmljICYgUHJlY2lzaW9uIEVxdWlwbWVudCJdfSw3NjY3MDQoZSl7ZS5leHBvcnRzPVsiU2NpZW50aWZpYyAmIFN1cGVyIENvbXB1dGVycyJdfSw2NzYxMDEoZSl7ZS5leHBvcnRzPVsiU2V0dGxlbWVudCBkYXkiXX0sOTA0MTM5KGUpe2UuZXhwb3J0cz1bIlNld2FnZSBUcmVhdG1lbnQgRmFjaWxpdGllcyJdfSw0MjA4MjEoZSl7ZS5leHBvcnRzPVsiU2V5Y2hlbGxlcyJdfSw0MDQ0MTIoZSl7ZS5leHBvcnRzPVsiU2VhLUJvcm5lIFRhbmtlcnMiXX0sMjMyNjY5KGUpe2UuZXhwb3J0cz1bIlNlYWZvb2QgUHJvZHVjdCBQcmVwYXJhdGlvbiAmIFBhY2thZ2luZyJdfSwxNTIzNzcoZSl7ZS5leHBvcnRzPVsiU2Vhc29uYWxzIl19LDY4NTk2MyhlKXtlLmV4cG9ydHM9WyJTZWFzb25hbHMgZm9yIHtzeW1ib2x9Il19LDg5MjE2MihlKXtlLmV4cG9ydHM9WyJTZWFyY2ggRW5naW5lcyJdfSw5Nzg3MzgoZSl7ZS5leHBvcnRzPVsiU2Vjb25kYXJ5IFNtZWx0aW5nICYgQWxsb3lpbmcgb2YgQWx1bWludW0iXX0sMjc4NzI5KGUpe2UuZXhwb3J0cz1bIlNlY3RvciJdfSw3ODYwMTUoZSl7ZS5leHBvcnRzPVsiU2VjdXJpdGllcyAmIENvbW1vZGl0eSBFeGNoYW5nZXMiXX0sOTQ5MjY1KGUpe2UuZXhwb3J0cz1bIlNlY3VyaXR5ICYgU3VydmVpbGxhbmNlIl19LDEyNzI1MihlKXsKZS5leHBvcnRzPVsiU2VjdXJpdHkgU2VydmljZXMiXX0sMjA5ODYzKGUpe2UuZXhwb3J0cz1bIlNlZSBmb3JlY2FzdCJdfSwxOTIyNihlKXtlLmV4cG9ydHM9WyJTZWxmLVN0b3JhZ2UgUkVJVHMiXX0sNjgzNzQ5KGUpe2UuZXhwb3J0cz1bIlNlbGxlcnMiXX0sODg5NzMyKGUpe2UuZXhwb3J0cz1bIlNlbGxzIl19LDE4MTkwMihlKXtlLmV4cG9ydHM9WyJTZWxscyB2b2x1bWUiXX0sNzczNTUyKGUpe2UuZXhwb3J0cz1bIlNlbWlhbm51YWwiXX0sMzkyMzgxKGUpe2UuZXhwb3J0cz1bIlNlbWljb25kdWN0b3IgRXF1aXBtZW50ICYgVGVzdGluZyJdfSwxODMyMDkoZSl7ZS5leHBvcnRzPVsiU2VtaWNvbmR1Y3RvciBFcXVpcG1lbnQgV2hvbGVzYWxlcnMiXX0sNTQ5NDU5KGUpe2UuZXhwb3J0cz1bIlNlbWljb25kdWN0b3IgTWFjaGluZXJ5IE1hbnVmYWN0dXJpbmciXX0sMzE2ODQ1KGUpe2UuZXhwb3J0cz1bIlNlbWljb25kdWN0b3IgVGVzdGluZyBFcXVpcG1lbnQgJiBTZXJ2aWNlIl19LDk1MTM0NihlKXtlLmV4cG9ydHM9WyJTZW1pY29uZHVjdG9yIFdob2xlc2FsZSJdfSw4NTUyODIoZSl7ZS5leHBvcnRzPVsiU2VtaWNvbmR1Y3RvcnMiXX0sNzcwNzc1KGUpe2UuZXhwb3J0cz1bIlNlbWlwcmVjaW91cyBHZW0gU3RvbmVzIl19LDIyNDI4OShlKXtlLmV4cG9ydHM9WyJTZW5lZ2FsIl19LDI4NjM4NShlKXtlLmV4cG9ydHM9WyJTZXJ2ZXIgJiBEYXRhYmFzZSBTb2Z0d2FyZSJdfSwxNTUwOTYoZSl7ZS5leHBvcnRzPVsiU2VydmVycyAmIFN5c3RlbXMiXX0sMTM4Mjg0KGUpe2UuZXhwb3J0cz1bIlNlcnZpY2UgdW5hdmFpbGFibGUiXX0sNTM3MDU5KGUpe2UuZXhwb3J0cz1bIlNlcnZpY2VzIl19LDY1NDQwOChlKXtlLmV4cG9ydHM9WyJTZXJ2aWNlcyB0byB0aGUgSGVhbHRoIEluZHVzdHJ5Il19LDk4MTY0MyhlKXtlLmV4cG9ydHM9WyJTaGFyZXMgZmxvYXQiXX0sNDE4NjgoZSl7ZS5leHBvcnRzPVsiU2hlbGwgQ29tcGFuaWVzIl19LDUxMTgzNihlKXtlLmV4cG9ydHM9WyJTaGlwIFBhcnQgTWFudWZhY3R1cmVyIl19LDg5NDg5MShlKXtlLmV4cG9ydHM9WyJTaGlwIFJlcGFpcmluZyAmIE1haW50YW5hbmNlIl19LDM5OTgzMShlKXtlLmV4cG9ydHM9WyJTaGlwYnVpbGRpbmciXX0sNjIzMTI1KGUpe2UuZXhwb3J0cz1bIlNob3J0LXRlcm0iXX0sOTY5NDU2KGUpe2UuZXhwb3J0cz1bIlNob3cgZGVmaW5pdGlvbiJdfSwxNjQ5OTIoZSl7ZS5leHBvcnRzPVsiU2llcnJhIExlb25lIl19LDgwNTE0MyhlKXtlLmV4cG9ydHM9WyJTaWduIHVwIHRvIHJlYWQgdGhpcyBuZXdzIl19LDMyNTA3NyhlKXtlLmV4cG9ydHM9WyJTaWducyAmIEFkdmVydGlzaW5nIFNwZWNpYWx0eSBQcm9kdWNlcnMiXX0sMTAzODUzKGUpe2UuZXhwb3J0cz1bIlNpbHZlciJdfSwyNTYxMDMoZSl7ZS5leHBvcnRzPVsiU2lsdmVyIE1pbmluZyJdfSw0ODY1NzIoZSl7ZS5leHBvcnRzPVsiU2ltcGxlIE1vdmluZyBBdmVyYWdlICh7bnVtYmVyfSkiXX0sODk3MjY5KGUpe2UuZXhwb3J0cz1bIlNpbmdsZSBjb3VudHJ5Il19LDEwMDA5OShlKXtlLmV4cG9ydHM9WyJTaW5rYWJsZSJdfSwxMjk1OTgoZSl7ZS5leHBvcnRzPVsiU2lua2luZyBmdW5kIl19LDczNjQwKGUpe2UuZXhwb3J0cz1bIlNpbnQgTWFhcnRlbiAoRHV0Y2ggcGFydCkiXX0sMzU5NzYxKGUpe2UuZXhwb3J0cz1bIlNwYWNlY3JhZnQgTWFudWZhY3R1cmluZyJdfSw4MjY1NzAoZSl7ZS5leHBvcnRzPVsiU3BlY2lhbCBGb29kcyAmIFdlbGJlaW5nIFByb2R1Y3RzIl19LDcwOTYxMChlKXtlLmV4cG9ydHM9WyJTcGVjaWFsIEZvb2RzICYgV2VsbGJlaW5nIFByb2R1Y3RzIl19LDIxNzYyOShlKXtlLmV4cG9ydHM9WyJTcGVjaWFsaXplZCBBdmlhdGlvbiBTZXJ2aWNlcyJdfSw2NzgxMjYoZSl7ZS5leHBvcnRzPVsiU3BlY2lhbGl6ZWQgUHJpbnRpbmcgU2VydmljZXMiXX0sNzI0NTExKGUpe2UuZXhwb3J0cz1bIlNwZWNpYWxpemVkIFJFSVRzIl19LDQzNjU0OShlKXtlLmV4cG9ydHM9WyJTcGVjaWFsdHkgJiBBZHZhbmNlZCBQaGFybWFjZXV0aWNhbHMiXX0sODE4NzA4KGUpe2UuZXhwb3J0cz1bIlNwZWNpYWx0eSBNaW5pbmcgJiBNZXRhbHMiXX0sMzA1NTQ2KGUpe2UuZXhwb3J0cz1bIlNwZWNpYWx0eSBNaW5pbmcgJiBNZXRhbHMgV2hvbGVzYWxlIl19LDM5MDk2NChlKXtlLmV4cG9ydHM9WyJTcGVjaWFsdHkgQ2hlbWljYWxzIl19LDY3MTc4NihlKXtlLmV4cG9ydHM9WyJTcGVjaWFsdHkgQ2hlbWljYWxzIFdob2xlc2FsZSJdfSwyMTEyODcoZSl7ZS5leHBvcnRzPVsiU3BlY2lhbHR5IEluc3VyYW5jZSJdfSw1NTU5NzkoZSl7ZS5leHBvcnRzPVsiU3BlY2lhbHR5IEluc3VyZXJzIl19LDM1NTI4MShlKXtlLmV4cG9ydHM9WyJTcGVjaWFsdHkgU3RvcmVzIl19LDM0NTY1MyhlKXtlLmV4cG9ydHM9WyJTcGVjaWFsdHkgVGVsZWNvbW11bmljYXRpb25zIl19LDk4NTg5OShlKXtlLmV4cG9ydHM9WyJTcG9ydGluZyAmIE91dGRvb3IgR29vZHMiXX0sNTQ0NDk0KGUpe2UuZXhwb3J0cz1bIlNwb3J0aW5nIEdvb2RzIFN0b3JlcyJdfSwyMTM5ODcoZSl7ZS5leHBvcnRzPVsiU3BvcnRzICYgT3V0ZG9vciBGb290d2VhciJdfSwzNzIxNzMoZSl7ZS5leHBvcnRzPVsiU3BvcnRzICYgT3V0ZG9vcnMgUmV0YWlsZXJzIl19LDY0NjE0NChlKXtlLmV4cG9ydHM9WyJTcG9ydHN3ZWFyICYgT3V0ZG9vcnMgQ2xvdGhpbmciXX0sMjgzNDE2KGUpe2UuZXhwb3J0cz1bIlNwb3QiXX0sODUwOTIoZSl7ZS5leHBvcnRzPVsiU3ByZWFkcyJdfSwyOTE0NTYoZSl7ZS5leHBvcnRzPVsiU3RhcmNoLCBWZWdldGFibGUgRmF0ICYgT2lsIE1hbnVmYWN0dXJpbmciXX0sNTY4MTMwKGUpe2UuZXhwb3J0cz1bIlN0YXJ0IGEgZnJlZSB0cmlhbCB0byByZWFkIHRoaXMgbmV3cyJdfSwxNDIxODgoZSl7ZS5leHBvcnRzPVsiU3RhdGUgQWdlbmN5Il19LDc1MTA3NChlKXtlLmV4cG9ydHM9WyJTdGF0aW9uYXJ5IEZ1ZWwgQ2VsbHMiXX0sNDk4NjM4KGUpe2UuZXhwb3J0cz1bIlN0ZWFtICYgQWlyLUNvbmRpdGlvbmluZyBTdXBwbHkiXX0sNTcyNzUzKGUpe2UuZXhwb3J0cz1bIlN0ZWVsIl19LDIyMDcyNShlKXsKZS5leHBvcnRzPVsiU3RvY2hhc3RpYyAlSyAoMTQsIDMsIDMpIl19LDU4NTY4OShlKXtlLmV4cG9ydHM9WyJTdG9jaGFzdGljIFJTSSBGYXN0ICgzLCAzLCAxNCwgMTQpIl19LDIwMjc3MShlKXtlLmV4cG9ydHM9WyJTdG9jayBicmVha2Rvd24gYnkgcmVnaW9uIl19LDUyMjAxNChlKXtlLmV4cG9ydHM9WyJTdG9ja3MiXX0sNzQ2MzMwKGUpe2UuZXhwb3J0cz1bIlN0b3JhZ2UgRGV2aWNlcyJdfSw2MjExNzgoZSl7ZS5leHBvcnRzPVsiU3RyaWtlIl19LDI1NTYyMihlKXtlLmV4cG9ydHM9WyJTdHJ1Y3R1cmVkIl19LDY2NTk0KGUpe2UuZXhwb3J0cz1bIlN1YnNjcmlwdGlvbiBkZXRhaWxzIGFyZSBubyBsb25nZXIgdmFsaWQiXX0sNTI4MTcxKGUpe2UuZXhwb3J0cz1bIlN1YnNjcmlwdGlvbiBoYXMgYmVlbiBtb2RpZmllZCBieSBicm9rZXIgcHJvbW90aW9uIl19LDk3NDQwNChlKXtlLmV4cG9ydHM9WyJTdWRhbiJdfSw1MDI1MjMoZSl7ZS5leHBvcnRzPVsiU3VnYXIiXX0sODI2MTA3KGUpe2UuZXhwb3J0cz1bIlN1Z2FyICYgQXJ0aWZpY2lhbCBTd2VldGVuZXJzIl19LDMzNjk4OChlKXtlLmV4cG9ydHM9WyJTdWdhcmNhbmUgRmFybWluZyJdfSw3ODAyMihlKXtlLmV4cG9ydHM9WyJTdXBlcm1hcmtldHMgJiBDb252ZW5pZW5jZSBTdG9yZXMiXX0sNzc0Mzg2KGUpe2UuZXhwb3J0cz1bIlN1cHJhbmF0aW9uYWwiXX0sODE4ODM3KGUpe2UuZXhwb3J0cz1bIlN1cmluYW1lIl19LDI2OTk1NShlKXtlLmV4cG9ydHM9WyJTdXJwcmlzZSJdfSw5NzM5MTUoZSl7ZS5leHBvcnRzPVsiU3ZhbGJhcmQgYW5kIEphbiBNYXllbiJdfSw0MTc3NzMoZSl7ZS5leHBvcnRzPVsiU3dhcCJdfSw3OTYzMDcoZSl7ZS5leHBvcnRzPVsiU3dpdGNoZ2VhciJdfSw0NTU1NTAoZSl7ZS5leHBvcnRzPVsiU3ludGhldGljIEZhYnJpY3MiXX0sMjc0NDg1KGUpe2UuZXhwb3J0cz1bIlN5cmlhIl19LDU3MTcyNyhlKXtlLmV4cG9ydHM9WyJTeXN0ZW0gU29mdHdhcmUiXX0sNjM1NDE1KGUpe2UuZXhwb3J0cz1bIlBvdWx0cnkgRmFybWluZyJdfSw4MDkyKGUpe2UuZXhwb3J0cz1bIlBvaW50IG9mIFNhbGUgU3lzdGVtcyJdfSw5NDMyODIoZSl7ZS5leHBvcnRzPVsiUG9pbnQgdmFsdWUiXX0sMjk1MTYwKGUpe2UuZXhwb3J0cz1bIlBvcnQgT3BlcmF0b3JzIl19LDc1NzA2MChlKXtlLmV4cG9ydHM9WyJQb3J0IFdhcmVob3VzaW5nIFNlcnZpY2VzIl19LDI3NzQ0MyhlKXtlLmV4cG9ydHM9WyJQb3J0YWJsZSBNb3RvcnMgJiBHZW5lcmF0b3JzIl19LDI2MjI0MyhlKXtlLmV4cG9ydHM9WyJQb3J0YWJsZSBTYXRlbGxpdGUgTmF2aWdhdGlvbiJdfSw3MDQwMTMoZSl7ZS5leHBvcnRzPVsiUG9zaXRpdmUiXX0sNzQyNTE1KGUpe2UuZXhwb3J0cz1bIlBheW91dCByYXRpbyAoVFRNKSJdfSw3OTEyNzEoZSl7ZS5leHBvcnRzPVsiUGFja2FnZWQgU29mdHdhcmUiXX0sOTkwNTc1KGUpe2UuZXhwb3J0cz1bIlBhY2lmaWMiXX0sNDQ1ODA0KGUpe2UuZXhwb3J0cz1bIlBhaWQgYW1vdW50Il19LDE2MzgxNyhlKXtlLmV4cG9ydHM9WyJQYWludCAmIENvYXRpbmciXX0sODQ2MDU3KGUpe2UuZXhwb3J0cz1bIlBhaXIgYWRkcmVzcyJdfSwyMTU5MjMoZSl7ZS5leHBvcnRzPVsiUGFpciBjcmVhdGVkIl19LDc5ODQ3NihlKXtlLmV4cG9ydHM9WyJQYWxhdSJdfSw2OTgwODMoZSl7ZS5leHBvcnRzPVsiUGFsZXN0aW5lLCBTdGF0ZSBvZiJdfSw0NTk5ODEoZSl7ZS5leHBvcnRzPVsiUGFsbGFkaXVtIl19LDEwMDcyOShlKXtlLmV4cG9ydHM9WyJQYW5hbWEiXX0sMzg5MjM1KGUpe2UuZXhwb3J0cz1bIlBhcGVyIE1pbGxzICYgUHJvZHVjdHMiXX0sODAzNDQ2KGUpe2UuZXhwb3J0cz1bIlBhcGVyIFBhY2thZ2luZyJdfSwzMjY0NzcoZSl7ZS5leHBvcnRzPVsiUGFwZXIgUGFja2FnaW5nIFdob2xlc2FsZSJdfSw1OTI4NChlKXtlLmV4cG9ydHM9WyJQYXBlciBQcm9kdWN0IFdob2xlc2FsZSJdfSw5NDk5NjAoZSl7ZS5leHBvcnRzPVsiUGFwZXIgUHJvZHVjdHMiXX0sNzI1Njk3KGUpe2UuZXhwb3J0cz1bIlBhcHVhIE5ldyBHdWluZWEiXX0sNDIwMTM1KGUpe2UuZXhwb3J0cz1bIlBhcmFndWF5Il19LDIxODM1NyhlKXtlLmV4cG9ydHM9WyJQYXJraW5nIExvdCBPcGVyYXRvcnMiXX0sODg0MzM4KGUpe2UuZXhwb3J0cz1bIlBhc3NlbmdlciBDYXIgcmVudGFsIl19LDYwNzQyNyhlKXtlLmV4cG9ydHM9WyJQYXNzZW5nZXIgVHJhbnNwb3J0YXRpb24sIEdyb3VuZCAmIFNlYSJdfSwxNDIwMTMoZSl7ZS5leHBvcnRzPVsiUGV0ICYgUGV0IFN1cHBsaWVzIFJldGFpbGVycyJdfSw1NTkwMzEoZSl7ZS5leHBvcnRzPVsiUGV0IEZvb2QgTWFudWZhY3R1cmluZyJdfSwzODgzODcoZSl7ZS5leHBvcnRzPVsiUGV0cm9sZXVtIl19LDY3MTkyMShlKXtlLmV4cG9ydHM9WyJQZXRyb2xldW0gUHJvZHVjdCBXaG9sZXNhbGUiXX0sMjg2Nzg3KGUpe2UuZXhwb3J0cz1bIlBldHJvbGV1bSBSZWZpbmluZyJdfSw4ODg1NjgoZSl7ZS5leHBvcnRzPVsiUGVuc2lvbiBGdW5kcyJdfSwxMTEzNDEoZSl7ZS5leHBvcnRzPVsiUGVyZm9ybWFuY2UiXX0sMTU2ODc0KGUpe2UuZXhwb3J0cz1bIlBlcmlvZCBFbmRpbmciXX0sMTg3MzUyKGUpe2UuZXhwb3J0cz1bIlBlcnNvbmFsICYgQ2FyIExvYW5zIl19LDk1OTMzOChlKXtlLmV4cG9ydHM9WyJQZXJzb25hbCBDYXJlIFNlcnZpY2VzIl19LDMwNTYwNChlKXtlLmV4cG9ydHM9WyJQZXJzb25hbCBMZWdhbCBTZXJ2aWNlcyJdfSw5NTYwNjAoZSl7ZS5leHBvcnRzPVsiUGVyc29uYWwgTXVzaWMgUGxheWVycyJdfSw2NzIzOTkoZSl7ZS5leHBvcnRzPVsiUGVyc29uYWwgU2VydmljZXMiXX0sNjUyNjczKGUpe2UuZXhwb3J0cz1bIlBlcnNvbmFsIFByb2R1Y3RzIl19LDkyNzI2KGUpe2UuZXhwb3J0cz1bIlBlcnNvbm5lbCBTZXJ2aWNlcyJdfSw1NTY4NzYoZSl7ZS5leHBvcnRzPVsiUGVycGV0dWFsIl19LDI3NjkwMChlKXtlLmV4cG9ydHM9WyJQZXN0IENvbnRyb2wgU2VydmljZXMiXX0sNTg3NjAyKGUpe2UuZXhwb3J0cz1bIlBlc3RpY2lkZSJdfSw2OTk3MjMoZSl7ZS5leHBvcnRzPVsiUGhhcm1hY2V1dGljYWxzIl19LDM2MTg0OShlKXsKZS5leHBvcnRzPVsiUGhhcm1hY2V1dGljYWxzOiBHZW5lcmljIl19LDE4MjY0MyhlKXtlLmV4cG9ydHM9WyJQaGFybWFjZXV0aWNhbHM6IE1ham9yIl19LDc0NTE4MChlKXtlLmV4cG9ydHM9WyJQaGFybWFjZXV0aWNhbHM6IE90aGVyIl19LDEzMzMzMihlKXtlLmV4cG9ydHM9WyJQaG9uZXMgJiBIYW5kaGVsZCBEZXZpY2VzIl19LDUyMzc2NChlKXtlLmV4cG9ydHM9WyJQaG9uZXMgJiBTbWFydCBQaG9uZXMiXX0sMTQ1NzYyKGUpe2UuZXhwb3J0cz1bIlBob3Rvdm9sdGFpYyBTb2xhciBTeXN0ZW1zICYgRXF1aXBtZW50Il19LDgzMDc5NyhlKXtlLmV4cG9ydHM9WyJQaG90b2dyYXBoaWMgRXF1aXBtZW50Il19LDM4NDM4MihlKXtlLmV4cG9ydHM9WyJQaXRjYWlybiJdfSw4NzQ0NjkoZSl7ZS5leHBvcnRzPVsiUGl2b3QgQ2FtYXJpbGxhIFAiXX0sOTM5ODg3KGUpe2UuZXhwb3J0cz1bIlBpdm90IENhbWFyaWxsYSBSMSJdfSw3NTQ5NChlKXtlLmV4cG9ydHM9WyJQaXZvdCBDYW1hcmlsbGEgUjIiXX0sMTQ2NDkzKGUpe2UuZXhwb3J0cz1bIlBpdm90IENhbWFyaWxsYSBSMyJdfSw3MzYzNzEoZSl7ZS5leHBvcnRzPVsiUGl2b3QgQ2FtYXJpbGxhIFMxIl19LDc1NTc4NihlKXtlLmV4cG9ydHM9WyJQaXZvdCBDYW1hcmlsbGEgUzIiXX0sOTQyOTc3KGUpe2UuZXhwb3J0cz1bIlBpdm90IENhbWFyaWxsYSBTMyJdfSw1NjU1MjYoZSl7ZS5leHBvcnRzPVsiUGl2b3QgQ2xhc3NpYyBQIl19LDYyMjgzNChlKXtlLmV4cG9ydHM9WyJQaXZvdCBDbGFzc2ljIFIxIl19LDUxNzMwMChlKXtlLmV4cG9ydHM9WyJQaXZvdCBDbGFzc2ljIFIyIl19LDc3MTU2KGUpe2UuZXhwb3J0cz1bIlBpdm90IENsYXNzaWMgUjMiXX0sNDk1MzE3KGUpe2UuZXhwb3J0cz1bIlBpdm90IENsYXNzaWMgUzEiXX0sNTE5MDI3KGUpe2UuZXhwb3J0cz1bIlBpdm90IENsYXNzaWMgUzIiXX0sMTMwNDY3KGUpe2UuZXhwb3J0cz1bIlBpdm90IENsYXNzaWMgUzMiXX0sNDkxNTQwKGUpe2UuZXhwb3J0cz1bIlBpdm90IERNIFAiXX0sOTQxMjI0KGUpe2UuZXhwb3J0cz1bIlBpdm90IERNIFIxIl19LDg4MTcyMChlKXtlLmV4cG9ydHM9WyJQaXZvdCBETSBTMSJdfSw4ODU2MzQoZSl7ZS5leHBvcnRzPVsiUGl2b3QgRmlib25hY2NpIFAiXX0sMzc0NDA2KGUpe2UuZXhwb3J0cz1bIlBpdm90IEZpYm9uYWNjaSBSMSJdfSwxODcyMTUoZSl7ZS5leHBvcnRzPVsiUGl2b3QgRmlib25hY2NpIFIyIl19LDU4MTAxMihlKXtlLmV4cG9ydHM9WyJQaXZvdCBGaWJvbmFjY2kgUjMiXX0sMzg5Nzc4KGUpe2UuZXhwb3J0cz1bIlBpdm90IEZpYm9uYWNjaSBTMSJdfSwyMDI1ODcoZSl7ZS5leHBvcnRzPVsiUGl2b3QgRmlib25hY2NpIFMyIl19LDcxMjU3NihlKXtlLmV4cG9ydHM9WyJQaXZvdCBGaWJvbmFjY2kgUzMiXX0sMTU5MDkyKGUpe2UuZXhwb3J0cz1bIlBpdm90IFdvb2RpZSBQIl19LDI2ODcxNihlKXtlLmV4cG9ydHM9WyJQaXZvdCBXb29kaWUgUjEiXX0sODE1MjUoZSl7ZS5leHBvcnRzPVsiUGl2b3QgV29vZGllIFIyIl19LDg5NDMzNChlKXtlLmV4cG9ydHM9WyJQaXZvdCBXb29kaWUgUjMiXX0sMTI1NTUyKGUpe2UuZXhwb3J0cz1bIlBpdm90IFdvb2RpZSBTMSJdfSw5MzgzNjEoZSl7ZS5leHBvcnRzPVsiUGl2b3QgV29vZGllIFMyIl19LDMxOTEwNihlKXtlLmV4cG9ydHM9WyJQaXZvdCBXb29kaWUgUzMiXX0sMzg2NTYoZSl7ZS5leHBvcnRzPVsiUGx1bWJpbmcgRml4dHVyZXMgJiBGaXR0aW5ncyJdfSw0ODI1ODcoZSl7ZS5leHBvcnRzPVsiUGxhY2VtZW50IHR5cGUiXX0sOTA1OTM0KGUpe2UuZXhwb3J0cz1bIlBsYXN0aWNzIl19LDY4OTM5MyhlKXtlLmV4cG9ydHM9WyJQbGFzdGljIENvbnRhaW5lciAmIFBhY2thZ2luZyJdfSw1NDMzNDgoZSl7ZS5leHBvcnRzPVsiUGxhdGludW0iXX0sOTM2MjYwKGUpe2UuZXhwb3J0cz1bIlBsYXRpbnVtIE1pbmluZyJdfSw3NDAwMyhlKXtlLmV4cG9ydHM9WyJQbGF5cyAmIENvbmNlcnQgUHJvZHVjdGlvbiJdfSwyNzQzOChlKXtlLmV4cG9ydHM9WyJQbGVhc2UgcmVsb2FkIHRoZSBwYWdlIHRvIGNvbnRpbnVlLiJdfSw4NjQyMTIoZSl7ZS5leHBvcnRzPVsiUHJlY2lvdXMgTWV0YWxzIl19LDE3NjA4OShlKXtlLmV4cG9ydHM9WyJQcmVjaW91cyBNZXRhbHMgJiBNaW5lcmFscyJdfSw4NzEwODgoZSl7ZS5leHBvcnRzPVsiUHJlZmFicmljYXRlZCBIb21lcyJdfSw4MzQ5MChlKXtlLmV4cG9ydHM9WyJQcmljZSJdfSwzNTE3ODcoZSl7ZS5leHBvcnRzPVsiUHJpY2UgdG8gZWFybmluZ3MgUmF0aW8gKFRUTSkiXX0sMjU1MzcoZSl7ZS5leHBvcnRzPVsiUHJpbWFyeSBBbHVtaW51bSBQcm9kdWN0aW9uIl19LDI0Mzc1NihlKXtlLmV4cG9ydHM9WyJQcml2YXRlIEJhbmtzIl19LDk3OTUzMihlKXtlLmV4cG9ydHM9WyJQcml2YXRlIEVxdWl0eSJdfSw1NDgzNihlKXtlLmV4cG9ydHM9WyJQcm9jZXNzb3JzIl19LDgyMDY5OChlKXtlLmV4cG9ydHM9WyJQcm9jZXNzIEluZHVzdHJpZXMiXX0sNDUxNDE4KGUpe2UuZXhwb3J0cz1bIlByb2JhYmlsaXR5Il19LDUzNDM5KGUpe2UuZXhwb3J0cz1bIlByb2dyYW1taW5nIFNvZnR3YXJlICYgVGVzdGluZyBUb29scyJdfSw1Mjc2NDAoZSl7ZS5leHBvcnRzPVsiUHJvZHVjZXIgTWFudWZhY3R1cmluZyJdfSw1NTMzMzAoZSl7ZS5leHBvcnRzPVsiUHJvZmVzc2lvbmFsIEluZm9ybWF0aW9uIFNlcnZpY2VzIl19LDEwNDAxNChlKXtlLmV4cG9ydHM9WyJQcm9mZXNzaW9uYWwgU3BvcnRzIFZlbnVlcyJdfSw1Mjc0NDEoZSl7ZS5leHBvcnRzPVsiUHJvZmlsZSJdfSw3MzYwNjYoZSl7ZS5leHBvcnRzPVsiUHJvcGVydHkgJiBDYXN1YWx0eSBJbnN1cmFuY2UiXX0sODk2MjMwKGUpe2UuZXhwb3J0cz1bIlByb3BlcnR5ICYgQ2FzdWFsdHkgUmVpbnN1cmFuY2UiXX0sMzY0ODc3KGUpe2UuZXhwb3J0cz1bIlByb3BlcnR5IEluc3VyYW5jZSJdfSwzNTE2MTQoZSl7ZS5leHBvcnRzPVsiUHJvcGVydHktQ2FzdWFsdHkgSW5zdXJlcnMiXX0sNjk2NDc3KGUpe2UuZXhwb3J0cz1bIlByb3BlcnR5L0Nhc3VhbHR5IEluc3VyYW5jZSJdfSw3NjY5MihlKXtlLmV4cG9ydHM9WyJQcm92aW5jZS9TdGF0ZSJdfSwKNzIzMDc0KGUpe2UuZXhwb3J0cz1bIlB1dGFibGUiXX0sNTY4MzAoZSl7ZS5leHBvcnRzPVsiUHVibGljIFJlbGF0aW9ucyJdfSwxODIwOTcoZSl7ZS5leHBvcnRzPVsiUHVibGljIFNwb3J0IEZhY2lsaXRpZXMiXX0sMzEzMDU2KGUpe2UuZXhwb3J0cz1bIlB1Ymxpc2hpbmc6IEJvb2tzL01hZ2F6aW5lcyJdfSw3MDA0NDIoZSl7ZS5leHBvcnRzPVsiUHVibGlzaGluZzogTmV3c3BhcGVycyJdfSw5MzM0NjEoZSl7ZS5leHBvcnRzPVsiUHVicywgQmFycyAmIE5pZ2h0IENsdWJzIl19LDg0MzMyNyhlKXtlLmV4cG9ydHM9WyJQdWVydG8gUmljbyJdfSwzNjczNjEoZSl7ZS5leHBvcnRzPVsiUHVscCAmIFBhcGVyIl19LDM1Mjg1NihlKXtlLmV4cG9ydHM9WyJQdWxwIE1pbGxzIl19LDMyMTE3KGUpe2UuZXhwb3J0cz1bIlB1bXAgJiBQdW1waW5nIEVxdWlwbWVudCJdfSw4NDAzODYoZSl7ZS5leHBvcnRzPVsiUHVyaWZpY2F0aW9uICYgVHJlYXRtZW50IEVxdWlwbWVudCJdfSw1NDY3MTIoZSl7ZS5leHBvcnRzPVsiUXVhcnRlcmx5Il19LDk0NzI5OShlKXtlLmV4cG9ydHM9WyJRdWljayBTZXJ2aWNlIFJlc3RhdXJhbnRzIl19LDk2NzAyMyhlKXtlLmV4cG9ydHM9WyJSRklEIFN5c3RlbXMiXX0sODkxMzk5KGUpe2UuZXhwb3J0cz1bIlJvY2sgTWluaW5nIl19LDI5MjEzNShlKXtlLmV4cG9ydHM9WyJSb29maW5nIFN1cHBsaWVzIl19LDIyNzc1NChlKXtlLmV4cG9ydHM9WyJSYXRpbmcgQWdlbmNpZXMiXX0sMTE5ODkyKGUpe2UuZXhwb3J0cz1bIlJhZGlvIEJyb2FkY2FzdGluZyJdfSw2MDA1NzYoZSl7ZS5leHBvcnRzPVsiUmFpbCBTZXJ2aWNlcyJdfSw3NjcxNDcoZSl7ZS5leHBvcnRzPVsiUmFpbHJvYWRzIl19LDY2NjU0NyhlKXtlLmV4cG9ydHM9WyJSYWlsd2F5IENvbnN0cnVjdGlvbiJdfSwzMTk3MTMoZSl7ZS5leHBvcnRzPVsiUmFpbHdheSBGcmVpZ2h0IE9wZXJhdG9ycyJdfSw5MTg0KGUpe2UuZXhwb3J0cz1bIlJhcmUgRWFydGggTWluZXJhbHMiXX0sOTYxMjA1KGUpe2UuZXhwb3J0cz1bIlJldGFpbCAtIERlcGFydG1lbnQgU3RvcmVzIl19LDY1OTc2MShlKXtlLmV4cG9ydHM9WyJSZXRhaWwgLSBEcnVncyB3aXRoIEdyb2NlcnkiXX0sNjA5NzI4KGUpe2UuZXhwb3J0cz1bIlJldGFpbCAtIERydWdzIHdpdGhvdXQgR3JvY2VyeSJdfSw0MTI2MjAoZSl7ZS5leHBvcnRzPVsiUmV0YWlsICBSZWFsIEVzdGF0ZSBEZXZlbG9wbWVudCJdfSw3OTI5MjYoZSl7ZS5leHBvcnRzPVsiUmV0YWlsICYgTW9ydGdhZ2UgQmFua3MiXX0sMTAxMTQwKGUpe2UuZXhwb3J0cz1bIlJldGFpbCBSRUlUcyJdfSw3MDk2MjUoZSl7ZS5leHBvcnRzPVsiUmV0YWlsIFJlYWwgRXN0YXRlIFNlcnZpY2VzIl19LDU5MDA2NihlKXtlLmV4cG9ydHM9WyJSZXRhaWwgVHJhZGUiXX0sOTE4ODkoZSl7ZS5leHBvcnRzPVsiUmV0aXJlbWVudCBIb21lIEJ1aWxkZXJzIl19LDU2ODA5MShlKXtlLmV4cG9ydHM9WyJSZXZlbnVlIl19LDYxMzk1MShlKXtlLmV4cG9ydHM9WyJSZWFkeS1NYWRlIE1lYWxzIl19LDQ0MTA0NShlKXtlLmV4cG9ydHM9WyJSZWFsIEVzdGF0ZSBEZXZlbG9wbWVudCJdfSw3MTIwMDQoZSl7ZS5leHBvcnRzPVsiUmVhbCBFc3RhdGUgRGV2ZWxvcG1lbnQgJiBPcGVyYXRpb25zIl19LDE0MjA4NihlKXtlLmV4cG9ydHM9WyJSZWFsIEVzdGF0ZSBJbnZlc3RtZW50IFRydXN0cyJdfSwzNzYzNjUoZSl7ZS5leHBvcnRzPVsiUmVhbCBFc3RhdGUgU2VydmljZXMiXX0sNzI0NTQoZSl7ZS5leHBvcnRzPVsiUmVhbCBlc3RhdGUiXX0sMTA1NzEoZSl7ZS5leHBvcnRzPVsiUmVjcmVhdGlvbmFsIFByb2R1Y3RzIl19LDMwOTY3KGUpe2UuZXhwb3J0cz1bIlJlZGVtcHRpb24iXX0sNjQ4NzUwKGUpe2UuZXhwb3J0cz1bIlJlZGVtcHRpb24gdHlwZSJdfSw3NjYxNjUoZSl7ZS5leHBvcnRzPVsiUmVnaW9uYWwgQWlybGluZXMiXX0sMzU4NjIzKGUpe2UuZXhwb3J0cz1bIlJlZ2lvbmFsIEJhbmtzIl19LDQ1MDM2NShlKXtlLmV4cG9ydHM9WyJSZWdpc3RlcmVkIl19LDE4MjY0NyhlKXtlLmV4cG9ydHM9WyJSZWdpc3RlcmVkIGRlcG9zaXRvcnkgcmVjZWlwdCJdfSw3MzQ0NzcoZSl7ZS5leHBvcnRzPVsiUmVpbnN1cmFuY2UiXX0sODEzNDMyKGUpe2UuZXhwb3J0cz1bIlJlbGF0aXZlIFN0cmVuZ3RoIEluZGV4ICgxNCkiXX0sNTc4OTMwKGUpe2UuZXhwb3J0cz1bIlJlbmV3YWJsZSBFbmVyZ3kgRXF1aXBtZW50ICYgU2VydmljZXMiXX0sOTE5NjM5KGUpe2UuZXhwb3J0cz1bIlJlbmV3YWJsZSBFbmVyZ3kgU2VydmljZXMiXX0sMzk0MTc0KGUpe2UuZXhwb3J0cz1bIlJlbmV3YWJsZSBGdWVscyJdfSw5ODQ5OTMoZSl7ZS5leHBvcnRzPVsiUmVuZXdhYmxlIElQUHMiXX0sMTgwMDkwKGUpe2UuZXhwb3J0cz1bIlJlbmV3YWJsZSBVdGlsaXRpZXMiXX0sMjA2MTQ0KGUpe2UuZXhwb3J0cz1bIlJlc2lkZW50aWFsICBSZWFsIEVzdGF0ZSBEZXZlbG9wbWVudCJdfSwxMjIxODkoZSl7ZS5leHBvcnRzPVsiUmVzaWRlbnRpYWwgJiBMb25nIFRlcm0gQ2FyZSJdfSwxMDkwMDcoZSl7ZS5leHBvcnRzPVsiUmVzaWRlbnRpYWwgQXJjaGl0ZWN0dXJhbCAmIEludGVyaW9yIERlc2lnbiBTZXJ2aWNlcyJdfSw1Nzg4MTIoZSl7ZS5leHBvcnRzPVsiUmVzaWRlbnRpYWwgQnVpbGRlcnMgLSBNdWx0aWZhbWlseSBIb21lcyJdfSwxODI3OTcoZSl7ZS5leHBvcnRzPVsiUmVzaWRlbnRpYWwgQnVpbGRlcnMgLSBTaW5nbGUgSG9tZXMiXX0sMjIwMjY0KGUpe2UuZXhwb3J0cz1bIlJlc2lkZW50aWFsIFJFSVRzIl19LDE0NTI4MShlKXtlLmV4cG9ydHM9WyJSZXNpZGVudGlhbCBSZWFsIEVzdGF0ZSBTZXJ2aWNlcyJdfSw4NDMxODEoZSl7ZS5leHBvcnRzPVsiUmVzb3J0IE9wZXJhdG9ycyJdfSwzMjM4ODkoZSl7ZS5leHBvcnRzPVsiUmVzdGF1cmFudHMiXX0sMzE1MjEzKGUpe2UuZXhwb3J0cz1bIlJlc3RhdXJhbnRzICYgQmFycyJdfSw1MzQ1NTQoZSl7ZS5leHBvcnRzPVsiUmhvZGl1bSJdfSw0NjE5NzIoZSl7ZS5leHBvcnRzPVsiUnViYmVyIFBsYW50YXRpb24iXX0sOTM0ODgzKGUpe2UuZXhwb3J0cz1bIlJ1c3NpYSJdfSw3NTgyOTcoZSl7CmUuZXhwb3J0cz1bIlJ3YW5kYSJdfSw4NzI2ODAoZSl7ZS5leHBvcnRzPVsiUsOpdW5pb24iXX0sNTQxNDA1KGUpe2UuZXhwb3J0cz1bIldvbWVuJ3MgQXBwYXJlbCBSZXRhaWxlcnMiXX0sNTAzNzEzKGUpe2UuZXhwb3J0cz1bIldvbWVuJ3MgQ2xvdGhpbmciXX0sNDM0MDc3KGUpe2UuZXhwb3J0cz1bIldvbWVuJ3MgRm9vdHdlYXIiXX0sNTI0NTM5KGUpe2UuZXhwb3J0cz1bIldvb2QgQ29udGFpbmVyICYgUGFja2FnaW5nIl19LDEwMzY0MChlKXtlLmV4cG9ydHM9WyJXb29kIFByb2R1Y3QgV2hvbGVzYWxlIl19LDcwNjA2NShlKXtlLmV4cG9ydHM9WyJXb29kIFByb2R1Y3RzIl19LDYzMTA1MihlKXtlLmV4cG9ydHM9WyJXYXRjaGVzIl19LDg2MTY1NShlKXtlLmV4cG9ydHM9WyJXYXRlciAmIFNld2FnZSBDb25zdHJ1Y3Rpb24iXX0sNDM1OTgwKGUpe2UuZXhwb3J0cz1bIldhdGVyIFN1cHBseSAmIElycmlnYXRpb24gU3lzdGVtcyJdfSwzNjk5NDQoZSl7ZS5leHBvcnRzPVsiV2F0ZXIgVXRpbGl0aWVzIl19LDQwNTc3OShlKXtlLmV4cG9ydHM9WyJXYXZlIFBvd2VyIEVuZXJneSBFcXVpcG1lbnQiXX0sNTkwNTA1KGUpe2UuZXhwb3J0cz1bIldhbGxpcyBhbmQgRnV0dW5hIl19LDU1NDE3MyhlKXtlLmV4cG9ydHM9WyJXYWxscGFwZXIiXX0sOTA2Mzc5KGUpe2UuZXhwb3J0cz1bIldhcmVob3VzaW5nIl19LDQ5MzMzMyhlKXtlLmV4cG9ydHM9WyJXYXN0ZSBNYW5hZ2VtZW50LCBEaXNwb3NhbCAmIFJlY3ljbGluZyBTZXJ2aWNlcyJdfSwxMjEzMDEoZSl7ZS5leHBvcnRzPVsiV2FzdGUgdG8gRW5lcmd5IFN5c3RlbXMgJiBFcXVpcG1lbnQiXX0sNzk1NzcoZSl7ZS5leHBvcnRzPVsiV2VhbHRoIE1hbmFnZW1lbnQiXX0sMzg3OTc4KGUpe2UuZXhwb3J0cz1bIldlYnNpdGUiXX0sOTE0ODE2KGUpe2UuZXhwb3J0cz1bIldlbGRpbmcgJiBTb2xkZXJpbmcgRXF1aXBtZW50Il19LDg4MTI3NyhlKXtlLmV4cG9ydHM9WyJXZXN0ZXJuIFNhaGFyYSJdfSw1OTE2MzUoZSl7ZS5leHBvcnRzPVsiV2hlYXQiXX0sODkzNjk2KGUpe2UuZXhwb3J0cz1bIldoaXRlcGFwZXIiXX0sNjA5NDU1KGUpe2UuZXhwb3J0cz1bIldob2xlc2FsZSBEaXN0cmlidXRvcnMiXX0sNjI4OTUoZSl7ZS5leHBvcnRzPVsiV2ktRmkgJiBXaS1NYXggUHJvdmlkZXJzIl19LDI2MDkxMChlKXtlLmV4cG9ydHM9WyJXaWxsaWFtcyBQZXJjZW50IFJhbmdlICgxNCkiXX0sMTk5Nzg4KGUpe2UuZXhwb3J0cz1bIldpbmQgU3lzdGVtcyAmIEVxdWlwbWVudCJdfSw2MTM2NzUoZSl7ZS5leHBvcnRzPVsiV2luZXJpZXMiXX0sMjQ3MTY1KGUpe2UuZXhwb3J0cz1bIldpcmVkIFRlbGVjb21tdW5pY2F0aW9ucyBDYXJyaWVycyJdfSwxNzgzMDUoZSl7ZS5leHBvcnRzPVsiV2lyZWxlc3MgVGVsZWNvbSJdfSw4NTMxNjQoZSl7ZS5leHBvcnRzPVsiV2lyZWxlc3MgVGVsZWNvbW11bmljYXRpb25zIl19LDEyNTc0MyhlKXtlLmV4cG9ydHM9WyJXaXJlbGVzcyBUZWxlY29tbXVuaWNhdGlvbnMgU2VydmljZXMiXX0sODAwODQ1KGUpe2UuZXhwb3J0cz1bIldpcmVzICYgQ2FibGVzIl19LDg0NzE0MShlKXtlLmV4cG9ydHM9WyJUVE0iXX0sMjM3NzQ4KGUpe2UuZXhwb3J0cz1bIlRWICYgVmlkZW8iXX0sMTMwMDM3KGUpe2UuZXhwb3J0cz1bIlRvdGFsIGhvbGRpbmdzIl19LDMzNTE0OChlKXtlLmV4cG9ydHM9WyJUb3RhbCBtYXJrZXQiXX0sMTUyODMzKGUpe2UuZXhwb3J0cz1bIlRveXMgJiBHYW1lcyBSZXRhaWxlcnMiXX0sMzU3ODA0KGUpe2UuZXhwb3J0cz1bIlRveXMgJiBKdXZlbmlsZSBQcm9kdWN0cyJdfSw2MjIzMjcoZSl7ZS5leHBvcnRzPVsiVG95cyAmIEp1dmVuaWxlIFByb2R1Y3RzIFdob2xlc2FsZSJdfSw0NzI5NzEoZSl7ZS5leHBvcnRzPVsiVG9iYWNjbyJdfSw2MTQ0NTAoZSl7ZS5leHBvcnRzPVsiVG9kYXkiXX0sODMyNDQ4KGUpe2UuZXhwb3J0cz1bIlRvZ28iXX0sOTQwNDgzKGUpe2UuZXhwb3J0cz1bIlRvbW9ycm93Il19LDI1MDU1NShlKXtlLmV4cG9ydHM9WyJUb25nYSJdfSw2NDcwODMoZSl7ZS5leHBvcnRzPVsiVG9vbHMgJiBIYXJkd2FyZSJdfSwxMTgwOTIoZSl7ZS5leHBvcnRzPVsiVG9vbHMgJiBIb3VzZXdhcmVzIl19LDE4OTQ4KGUpe2UuZXhwb3J0cz1bIlRheGkgJiBMaW1vdXNpbmUiXX0sNjk5MTIyKGUpe2UuZXhwb3J0cz1bIlRhYmxldCAmIE5ldGJvb2sgQ29tcHV0ZXJzIl19LDk2ODQ1OChlKXtlLmV4cG9ydHM9WyJUYWppa2lzdGFuIl19LDU5NzM0OChlKXtlLmV4cG9ydHM9WyJUYW5uaW5nICYgU29mdGVuaW5nIGFnZW50cyJdfSw0OTgxODMoZSl7ZS5leHBvcnRzPVsiVGFuemFuaWEiXX0sMzk1MzQ2KGUpe2UuZXhwb3J0cz1bIlRhcmdldCBvdXRjb21lIl19LDQ0OTMyOShlKXtlLmV4cG9ydHM9WyJUYXJnZXQgZGF0ZSJdfSw1MjIzMzQoZSl7ZS5leHBvcnRzPVsiVGFyZ2V0IHJpc2siXX0sNDc5MzQyKGUpe2UuZXhwb3J0cz1bIlRleHQgY29waWVkIHRvIGNsaXBib2FyZCJdfSw4NTE5OTMoZSl7ZS5leHBvcnRzPVsiVGV4dGlsZXMiXX0sMjIzNjQ0KGUpe2UuZXhwb3J0cz1bIlRleHRpbGVzICYgTGVhdGhlciBHb29kcyJdfSw4MjA2NDcoZSl7ZS5leHBvcnRzPVsiVGV4dGlsZXMgJiBMZWF0aGVyIEdvb2RzIFdob2xlc2FsZSJdfSw1Njk1OTUoZSl7ZS5leHBvcnRzPVsiVGVjaG5pY2FsIFJhdGluZyJdfSwyNzEwNzkoZSl7ZS5leHBvcnRzPVsiVGVjaG5vbG9neSJdfSw3NjA1MTMoZSl7ZS5leHBvcnRzPVsiVGVjaG5vbG9neSBDb25zdWx0aW5nICYgT3V0c291cmNpbmcgU2VydmljZXMiXX0sNjQwOTUzKGUpe2UuZXhwb3J0cz1bIlRlY2hub2xvZ3kgU2VydmljZXMiXX0sMjU1ODIwKGUpe2UuZXhwb3J0cz1bIlRlbGVtZWRpY2luZSBTZXJ2aWNlcyJdfSw5MTYxODUoZSl7ZS5leHBvcnRzPVsiVGVsZWNvbW11bmljYXRpb24gQ29uc3RydWN0aW9uIl19LDE4NTE2NChlKXtlLmV4cG9ydHM9WyJUZWxlY29tbXVuaWNhdGlvbnMgTmV0d29yayBJbmZyYXN0cnVjdHVyZSJdfSwzODk2ODkoZSl7ZS5leHBvcnRzPVsiVGVsZWNvbW11bmljYXRpb25zIEVxdWlwbWVudCJdfSw1NzMyNjcoZSl7CmUuZXhwb3J0cz1bIlRlbGVjb21tdW5pY2F0aW9ucyBSZXNlbGxlcnMiXX0sODUyNTg1KGUpe2UuZXhwb3J0cz1bIlRlbGVjb21tdW5pY2F0aW9ucyBTZXJ2aWNlcyJdfSw4Mjc5ODAoZSl7ZS5leHBvcnRzPVsiVGVsZXZpc2lvbiBCcm9hZGNhc3RpbmciXX0sNDUwNjYzKGUpe2UuZXhwb3J0cz1bIlRlcm0gdG8gbWF0dXJpdHkiXX0sMjIxMzU1KGUpe2UuZXhwb3J0cz1bIlRlc3RpbmcgJiBNZWFzdXJpbmcgRXF1aXBtZW50Il19LDkyMTc4NihlKXtlLmV4cG9ydHM9WyJUZXN0aW5nIExhYm9yYXRvcmllcyJdfSw0OTI1NzcoZSl7ZS5leHBvcnRzPVsiVGVzdGluZyBTZXJ2aWNlcyJdfSw0MTU0MShlKXtlLmV4cG9ydHM9WyJUaGVhdHJlcyAmIFBlcmZvcm1pbmcgQXJ0cyJdfSwzNTg0MjEoZSl7ZS5leHBvcnRzPVsiVGhlcm1hbCBTb2xhciBTeXN0ZW1zICYgRXF1aXBtZW50Il19LDU4MTUxKGUpe2UuZXhwb3J0cz1bIlRpbGUgJiBQYXZpbmcgTWF0ZXJpYWwgTWFudWZhY3R1cmluZyJdfSw3NzU3NTUoZSl7ZS5leHBvcnRzPVsiVGltYmVyIFJFSVRzIl19LDMyMDcoZSl7ZS5leHBvcnRzPVsiVGltYmVyIFRyYWN0IE9wZXJhdGlvbnMiXX0sNzk2NjUxKGUpe2UuZXhwb3J0cz1bIlRpbWUgdG8gZXhwaXJhdGlvbiJdfSw4MzYwNjAoZSl7ZS5leHBvcnRzPVsiVGltZSB0byBtYXR1cml0eSJdfSw4MDMwNTEoZSl7ZS5leHBvcnRzPVsiVGltb3ItTGVzdGUiXX0sMTk2NTY5KGUpe2UuZXhwb3J0cz1bIlRpbiJdfSw5NjAwNTMoZSl7ZS5leHBvcnRzPVsiVGlyZSAmIFR1YmUgTWFudWZhY3R1cmVycyJdfSwxMzUwMzMoZSl7ZS5leHBvcnRzPVsiVGlyZSBEZWFsZXJzIl19LDUyNjAwMShlKXtlLmV4cG9ydHM9WyJUaXJlIFJldHJlYWRpbmciXX0sMjQyNzc1KGUpe2UuZXhwb3J0cz1bIlRpcmVzICYgUnViYmVyIFByb2R1Y3RzIl19LDE2MjEzMyhlKXtlLmV4cG9ydHM9WyJUaXJlcyAmIFJ1YmJlciBQcm9kdWN0cyBXaG9sZXNhbGUiXX0sNzIxMjI1KGUpe2UuZXhwb3J0cz1bIlRydWNraW5nIl19LDQyMTY0NyhlKXtlLmV4cG9ydHM9WyJUcnVja3MvQ29uc3RydWN0aW9uL0Zhcm0gTWFjaGluZXJ5Il19LDMzODg2NShlKXtlLmV4cG9ydHM9WyJUcmFkZSAmIEJ1c2luZXNzIFB1Ymxpc2hpbmciXX0sNjI4NDA5KGUpe2UuZXhwb3J0cz1bIlRyYWRlcnMiXX0sMTcwNjE0KGUpe2UuZXhwb3J0cz1bIlRyYWRpbmcgdm9sdW1lIDI0aCJdfSw1NDk3MDUoZSl7ZS5leHBvcnRzPVsiVHJhZGluZyBhY3Rpdml0eSJdfSw4MTg2MChlKXtlLmV4cG9ydHM9WyJUcmFuc2FjdGlvbiAmIFBheW1lbnQgU2VydmljZXMiXX0sNjgzOTQ4KGUpe2UuZXhwb3J0cz1bIlRyYW5zYWN0aW9ucyJdfSw1MzMyNjkoZSl7ZS5leHBvcnRzPVsiVHJhbnNsYXRpb24gJiBJbnRlcnByZXRhdGlvbiBTZXJ2aWNlcyJdfSw3NjgzOTAoZSl7ZS5leHBvcnRzPVsiVHJhbnNwb3J0YXRpb24iXX0sNTMzNTkxKGUpe2UuZXhwb3J0cz1bIlRyYXZlbCBBZ2VudHMiXX0sMzE0ODcoZSl7ZS5leHBvcnRzPVsiVHJpbmlkYWQgYW5kIFRvYmFnbyJdfSw0MzAxMzQoZSl7ZS5leHBvcnRzPVsiVHV2YWx1Il19LDY4NzcyNShlKXtlLmV4cG9ydHM9WyJUdXJiaW5lIE1hbnVmYWN0dXJpbmciXX0sNzM1NjgzKGUpe2UuZXhwb3J0cz1bIlR1cmttZW5pc3RhbiJdfSw5NzA2MjQoZSl7ZS5leHBvcnRzPVsiVHVya3MgYW5kIENhaWNvcyBJc2xhbmRzIl19LDQzMTM3NyhlKXtlLmV4cG9ydHM9WyJVLlMuIFZpcmdpbiBJc2xhbmRzIl19LDEzMjYyOChlKXtlLmV4cG9ydHM9WyJVLlMuIGRvbGxhciJdfSwxMzc4ODgoZSl7ZS5leHBvcnRzPVsiVW5jb252ZW50aW9uYWwgT2lsICYgR2FzIERyaWxsaW5nIl19LDY2MTk3NihlKXtlLmV4cG9ydHM9WyJVbmNvbnZlbnRpb25hbCBPaWwgJiBHYXMgUHJvZHVjdGlvbiJdfSw5MzM5MjcoZSl7ZS5leHBvcnRzPVsiVW5kZXJseWluZyJdfSw2MDI2OTcoZSl7ZS5leHBvcnRzPVsiVW5kZXJseWluZyBwcmljZSJdfSw5Njc5NDEoZSl7ZS5leHBvcnRzPVsiVW5pdGVkIFN0YXRlcyJdfSw3MzY3OTkoZSl7ZS5leHBvcnRzPVsiVW5pdGVkIFN0YXRlcyBNaW5vciBPdXRseWluZyBJc2xhbmRzIl19LDc0NTIwOShlKXtlLmV4cG9ydHM9WyJVbmtub3duIG9wdGlvbiBzZXJpZXMiXX0sOTA0NTAyKGUpe2UuZXhwb3J0cz1bIlVua25vd24gc3ltYm9sIl19LDU4ODY5MyhlKXtlLmV4cG9ydHM9WyJVZ2FuZGEiXX0sMzE3NDc1KGUpe2UuZXhwb3J0cz1bIlVrcmFpbmUiXX0sOTk5OTYxKGUpe2UuZXhwb3J0cz1bIlVsdGltYXRlIE9zY2lsbGF0b3IgKDcsIDE0LCAyOCkiXX0sODcxNzYxKGUpe2UuZXhwb3J0cz1bIlVwZ3JhZGUgeW91ciBwbGFuIHRvIHJlYWQgdGhpcyBuZXdzIl19LDkyODU1MyhlKXtlLmV4cG9ydHM9WyJVcnVndWF5Il19LDMyMzEzMihlKXtlLmV4cG9ydHM9WyJVcmFuaXVtIl19LDEwNzQwNShlKXtlLmV4cG9ydHM9WyJVcmFuaXVtIE1pbmluZyJdfSw0ODcwMDYoZSl7ZS5leHBvcnRzPVsiVXNlZCBDYXIgRGVhbGVycyJdfSw1OTI2MjcoZSl7ZS5leHBvcnRzPVsiVXNlZCBNZXJjaGFuZGlzZSBTdG9yZXMiXX0sODkxMTM2KGUpe2UuZXhwb3J0cz1bIlV0aWxpdGllcyJdfSw3ODM5NzAoZSl7ZS5leHBvcnRzPVsiVXpiZWtpc3RhbiJdfSwzNzI1MjMoZSl7ZS5leHBvcnRzPVsiVk9JUCBFcXVpcG1lbnQgJiBTeXN0ZW1zIl19LDI5ODExMyhlKXtlLmV4cG9ydHM9WyJWT0lQIFNlcnZpY2VzIl19LDMzODM5MihlKXtlLmV4cG9ydHM9WyJWb2xhdGlsaXR5Il19LDI0NzA2MihlKXtlLmV4cG9ydHM9WyJWb2x1bWUiXX0sMzI3NTI2KGUpe2UuZXhwb3J0cz1bIlZvbHVtZSAvIE1hcmtldCBDYXAiXX0sNTQzMzkxKGUpe2UuZXhwb3J0cz1bIlZvbHVtZSBXZWlnaHRlZCBNb3ZpbmcgQXZlcmFnZSAoMjApIl19LDQxNjI1NyhlKXtlLmV4cG9ydHM9WyJWYW51YXR1Il19LDEyNjc0KGUpe2UuZXhwb3J0cz1bIlZldGVyaW5hcnkgRHJ1Z3MiXX0sNjE5NDkwKGUpe2UuZXhwb3J0cz1bIlZldGVyaW5hcnkgTWVkaWNhbCBFcXVpcG1lbnQgJiBTdXBwbGllcyJdfSw3OTEzODQoZSl7ZS5leHBvcnRzPVsiVmV0ZXJpbmFyeSBTZXJ2aWNlcyJdfSw2MTA2ODAoZSl7CmUuZXhwb3J0cz1bIlZlZ2V0YWJsZSwgRnJ1aXQgJiBOdXQgRmFybWluZyJdfSwyNDk2ODUoZSl7ZS5leHBvcnRzPVsiVmVuZGluZyBNYWNoaW5lIFByb3ZpZGVycyJdfSwzODY1ODYoZSl7ZS5leHBvcnRzPVsiVmVudHVyZSBDYXBpdGFsIl19LDQyMzIwNihlKXtlLmV4cG9ydHM9WyJWaXJnaW4gSXNsYW5kcyAoQnJpdGlzaCkiXX0sMzAxMjI5KGUpe2UuZXhwb3J0cz1bIlZpcmdpbiBJc2xhbmRzIChVLlMuKSJdfSw1NTQyMjcoZSl7ZS5leHBvcnRzPVsiWW91IHdlcmUgaW5hY3RpdmUgZm9yIGEgbG9uZyBwZXJpb2Qgb2YgdGltZS4gUGxlYXNlIHJlZnJlc2ggdGhlIHBhZ2UgdG8gc2VlIHlvdXIgc3Vic2NyaXB0aW9uIHN0YXR1cy4iXX0sMjEwNShlKXtlLmV4cG9ydHM9WyJZb3UndmUgY2hhbmdlZCB5b3VyIHN1YnNjcmlwdGlvbi4gUGxlYXNlIHJlbG9hZCB0aGUgY2hhcnQgdG8gZmlyZSB1cCB0aGUgbmV3IGNoYW5nZXMuIl19LDEyMTQ5OChlKXtlLmV4cG9ydHM9WyJZb3VyIGluZm8gaGFzIG5vdyBiZWVuIHVwZGF0ZWQiXX0sMzA5NTIzKGUpe2UuZXhwb3J0cz1bIllhcm4gR29vZHMiXX0sNDA5Mzg0KGUpe2UuZXhwb3J0cz1bIlllbWVuIl19LDk2NTU3MyhlKXtlLmV4cG9ydHM9WyJZZXN0ZXJkYXkiXX0sNjU1MDM1KGUpe2UuZXhwb3J0cz1bIllpZWxkIl19LDczNzk1NyhlKXtlLmV4cG9ydHM9WyJZaWVsZCBjdXJ2ZSJdfSw4NjczOTMoZSl7ZS5leHBvcnRzPVsiWmFtYmlhIl19LDk1OTE1NShlKXtlLmV4cG9ydHM9WyJaaW1iYWJ3ZSJdfSw2MjU5MDAoZSl7ZS5leHBvcnRzPVsiWmluYyJdfSw5NTAyMDcoZSl7ZS5leHBvcnRzPVsiWmluYyBPcmUgTWluaW5nIl19LDc2MjkyMihlKXtlLmV4cG9ydHM9WyJjb21tb2RpdHkiXX0sMjA4MDE3KGUpe2UuZXhwb3J0cz1bImNmZCJdfSw5OTEwNTkoZSl7ZS5leHBvcnRzPVsiY3J5cHRvIl19LDk3NDI2NChlKXtlLmV4cG9ydHM9WyJkciJdfSw5OTY4ODIoZSl7ZS5leHBvcnRzPVsiZWNvbm9teSJdfSw4NzM1OTcoZSl7ZS5leHBvcnRzPVsiZm9yZXgiXX0sODA2NzI3KGUpe2UuZXhwb3J0cz1bImZ1dHVyZXMiXX0sNjU4OTI2KGUpe2UuZXhwb3J0cz1bImluZGV4Il19LDE1MTYxKGUpe2UuZXhwb3J0cz1bImluZGljZXMiXX0sMzY0NjI1KGUpe2UuZXhwb3J0cz1bInN0b2NrIl19LDY4NDk5MShlKXtlLmV4cG9ydHM9WyJ7bnVtYmVyfSB0byBuZXh0IGVhcm5pbmdzIHJlcG9ydCJdfSwzNTA5NzIoZSl7ZS5leHBvcnRzPVsie3N5bWJvbH0gaGFzIG5ldmVyIHBhaWQgZGl2aWRlbmRzIGFuZCBoYXMgbm8gY3VycmVudCBwbGFucyB0byBkbyBzby4iXX0sNTU2NjQ5KGUpe2UuZXhwb3J0cz1bInt0aXRsZX0gZm9yIHtzeW1ib2x9Il19LDY0NjY5MShlKXtlLmV4cG9ydHM9WyJ7dmFsdWV9IG9uIHtkYXRlfSJdfSw5MDY1NTQoZSl7ZS5leHBvcnRzPVsiw4VsYW5kIElzbGFuZHMiXX0sNTUwMjYoZSl7ZS5leHBvcnRzPVsiJWQgZGF5IiwiJWQgZGF5cyJdfSwxMzExOTIoZSl7ZS5leHBvcnRzPVsiJWQgaG91ciIsIiVkIGhvdXJzIl19LDQ3OTEyMShlKXtlLmV4cG9ydHM9WyIlZCBtb250aCIsIiVkIG1vbnRocyJdfSw2NTY0MzQoZSl7ZS5leHBvcnRzPVsiJWQgbWludXRlIiwiJWQgbWludXRlcyJdfSw3ODkyMTIoZSl7ZS5leHBvcnRzPVsiJWQgeWVhciIsIiVkIHllYXJzIl19LDk1MDkyNyhlKXtlLmV4cG9ydHM9WyJFdmVyeSB7Y291bnR9IHllYXIiLCJFdmVyeSB7Y291bnR9IHllYXJzIl19LDYwMjY5MihlKXtlLmV4cG9ydHM9WyJFdmVyeSB7Y291bnR9IGRheSIsIkV2ZXJ5IHtjb3VudH0gZGF5cyJdfSwxODg5NjMoZSl7ZS5leHBvcnRzPVsiRXZlcnkge2NvdW50fSBtb250aCIsIkV2ZXJ5IHtjb3VudH0gbW9udGhzIl19LDU1NTA3OShlKXtlLmV4cG9ydHM9WyJWb2xhdGlsaXR5IGN1cnZlICh7ZGF5c1VudGlsRXhwaXJhdGlvbn0gZGF5KSIsIlZvbGF0aWxpdHkgY3VydmUgKHtkYXlzVW50aWxFeHBpcmF0aW9ufSBkYXlzKSJdfSwyNDUyNjIoZSl7ZS5leHBvcnRzPVsie251bWJlcn0gZGF5Iiwie251bWJlcn0gZGF5cyJdfSw3MjA4OTMoZSl7ZS5leHBvcnRzPVsie251bWJlcn0gbW9udGgiLCJ7bnVtYmVyfSBtb250aHMiXX0sODMwODc0KGUpe2UuZXhwb3J0cz1bIntudW1iZXJ9IHllYXIiLCJ7bnVtYmVyfSB5ZWFycyJdfSw2MjQ5MDkoZSl7ZS5leHBvcnRzPVsie2Jyb2tlckxhYmVsfSBoYXMgdXBncmFkZWQgeW91ciBzdWJzY3JpcHRpb24gdG8ge3BsYW5OYW1lfSBmb3Ige2RheXNMZWZ0fSBkYXkuIFBsZWFzZSByZWxvYWQgdGhlIGNoYXJ0IHRvIGZpcmUgdXAgdGhlIG5ldyBjaGFuZ2VzLiIsInticm9rZXJMYWJlbH0gaGFzIHVwZ3JhZGVkIHlvdXIgc3Vic2NyaXB0aW9uIHRvIHtwbGFuTmFtZX0gZm9yIHtkYXlzTGVmdH0gZGF5cy4gUGxlYXNlIHJlbG9hZCB0aGUgY2hhcnQgdG8gZmlyZSB1cCB0aGUgbmV3IGNoYW5nZXMuIl19fV0pOw=="}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"scanner.tradingview.com/symbol?symbol=CRYPTO%3ABTCUSD\u0026fields=funding_rate%2Copen_interest%2Cliquidations_volume_24h\u0026no_404=true\u0026label-product=right-details","fqdn":"scanner.tradingview.com","domain":"tradingview.com","tld":"com"},"ip":{"addr":"143.204.238.100","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"fetch","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:15.308Z","timestamp":1785148035308,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.tradingview.com","organization":""},"issuer":{"commonName":"Amazon RSA 2048 M04","organization":"Amazon"},"validity":{"start":"Thu, 09 Oct 2025 00:00:00 GMT","end":"Fri, 06 Nov 2026 23:59:59 GMT"},"fingerprint":{"sha1":"02:47:4D:AC:A6:12:65:AD:C2:19:CD:7E:61:B8:BF:E1:D8:36:CF:00","sha256":"12:7C:86:50:31:B1:3E:03:76:8B:F1:84:D4:AD:BC:95:0E:C1:60:40:F5:CE:75:F0:11:AF:91:BC:55:C1:D7:36"}}},"request":{"raw":"GET /symbol?symbol=CRYPTO%3ABTCUSD\u0026fields=funding_rate%2Copen_interest%2Cliquidations_volume_24h\u0026no_404=true\u0026label-product=right-details HTTP/1.1\r\nHost: scanner.tradingview.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: application/json\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nReferer: https://s.tradingview.com/\r\nOrigin: https://s.tradingview.com\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: empty\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-site\r\nPriority: u=4\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\ncontent-type: application/json\r\ndate: Mon, 27 Jul 2026 10:27:15 GMT\r\ncontent-encoding: gzip\r\nx-cache-level: hit1\r\nserver: tv\r\nvia: 92.223.68.149:443, 1.1 b4cf31e054e1e158a1bbb0df99815e30.cloudfront.net (CloudFront)\r\nstrict-transport-security: max-age=63072000; includeSubDomains; preload\r\naccess-control-allow-origin: https://s.tradingview.com\r\naccess-control-allow-headers: Referer\r\naccess-control-allow-methods: GET\r\naccess-control-allow-credentials: true\r\naccess-control-max-age: 86400\r\nvary: Origin\r\nx-cache: Miss from cloudfront\r\nx-amz-cf-pop: ARN53-P4\r\nx-amz-cf-id: I8QykgFC8Ad-yYKvvhQnZVmxeDjoOd2MTqiFHRNSekUkH3xbUU2eeg==\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Amazon CloudFront","description":"Amazon CloudFront is a fast content delivery network (CDN) service that securely delivers data, videos, applications, and APIs to customers globally with low latency, high transfer speeds.","website":"https://aws.amazon.com/cloudfront/","common_platform_enumeration":"","icon":"Amazon Cloudfront.svg","categories":["CDN"]},{"name":"Amazon Web Services","description":"Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.","website":"https://aws.amazon.com/","common_platform_enumeration":"","icon":"Amazon Web Services.svg","categories":["PaaS"]},{"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":115,"size_decoded":785,"mime_type":"application/json","magic":"JSON text data","md5":"1632e9fc37f99ddac7756142e9ece6fd","sha1":"87269eb877d01a1656e11a811ead64e32b905d31","sha256":"8d882005f36f3beb93d059a07e6e87774a1f7fc9141d1024df3a68375f724d0c","sha512":"8750939306c07978a6e8c9a8a2f9144c40bd29d6fe6f59525751b751a33b42188d4deb22beb85be1f7bb171edc8a12e6cde0bf51e3c1d325dd4ca1375d68c3d8","ssdeep":"","tlshash":"1ab024d0505105c5fdc05df374dc070c0005c044d5050cc7c3fd45710c400501105d40","first_seen":"2026-07-27T10:28:06.09332Z","last_seen":"2026-07-27T10:28:06.09332Z","times_seen":1,"resource_available":false,"data":"eyJmdW5kaW5nX3JhdGUiOjAuMDA4MDU1NzMwNjM2MTUwNzM5LCJsaXF1aWRhdGlvbnNfdm9sdW1lXzI0aCI6MzM2NjgwODEuMzU4OTU3OTksIm9wZW5faW50ZXJlc3QiOjIyMjc1NDAwNzMxLjM3OTA3fQ=="}},"time_used":144,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":144,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/embed_advanced_chart.6d07e4fd8e3f2785cf25.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:13.084Z","timestamp":1785148033084,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/embed_advanced_chart.6d07e4fd8e3f2785cf25.js HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:13 GMT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a632877-4b09f\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Fri, 24 Jul 2026 08:55:19 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/24/2026 10:31:23\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 81bbb7c1e20a950aa3e17f03a7571532\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":307359,"size_decoded":95622,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, Unicode text, UTF-8 text, with very long lines (3070)","md5":"ff08c213214941a305e07e2e0aecf577","sha1":"cdefa4d26a111dfe184184912992dfdcfb77f002","sha256":"484233793afe63cd2f9df537c6819b1489f21625d4d0ee9ed41ad56b71117b59","sha512":"c787b5e2bdf2f3a3eb2d122f888029d3317c0a1366c56e6cd295c5e8cbb2a4ca7cb624ef86de5ce26f6f5ca73b2ec98c925506b5e39cd6c8e42424ca470e7ab1","ssdeep":"6144:eetdrmSRezirtVcbkZ0PVvoxvNvyc4441G8/BSGTees55hok0Otik21pcV:eetdrts+0PNofvB41G8/BSGieKhCOtiQ","tlshash":"68645d91b2957ca663e740e6947a0103a72918c67802536cf7bc8dce270dd8d7276fbe","first_seen":"2026-07-24T11:36:47.992194Z","last_seen":"2026-07-27T12:53:06.176632Z","times_seen":188,"resource_available":true,"data":"KHNlbGYud2VicGFja0NodW5rdHJhZGluZ3ZpZXc9c2VsZi53ZWJwYWNrQ2h1bmt0cmFkaW5ndmlld3x8W10pLnB1c2goW1sxMjk2NSw3NzAzOCw4MDkzOSw4NTQzNF0sezY2ODI5NihlKXtlLmV4cG9ydHM9e319LDg2MDU0OChlKXtlLmV4cG9ydHM9eyJjc3MtdmFsdWUtc21hbGwtc2l6ZSI6IjE4cHgiLCJjc3MtdmFsdWUtbWVkaXVtLXNpemUiOiIyMnB4IiwiY3NzLXZhbHVlLWxhcmdlLXNpemUiOiIyOHB4IiwiY3NzLXZhbHVlLWJvcmRlci1yYWRpdXMtc21hbGwtc2l6ZSI6IjlweCIsImNzcy12YWx1ZS1ib3JkZXItcmFkaXVzLW1lZGl1bS1zaXplIjoiMTFweCIsImNzcy12YWx1ZS1ib3JkZXItcmFkaXVzLWxhcmdlLXNpemUiOiI4cHgiLHN0YXR1c2VzV3JhcDoic3RhdHVzZXNXcmFwLVVSSWpFQjk4IixzbWFsbDoic21hbGwtVVJJakVCOTgiLG1lZGl1bToibWVkaXVtLVVSSWpFQjk4IixsYXJnZToibGFyZ2UtVVJJakVCOTgiLGJsaW5raW5nOiJibGlua2luZy1VUklqRUI5OCIsc3RhdHVzSXRlbToic3RhdHVzSXRlbS1VUklqRUI5OCIsImJsaW5raW5nLWFuaW1hdGlvbiI6ImJsaW5raW5nLWFuaW1hdGlvbi1VUklqRUI5OCIsbWFya2V0U3RhdHVzT3BlbjoibWFya2V0U3RhdHVzT3Blbi1VUklqRUI5OCIsbWFya2V0U3RhdHVzQ2xvc2U6Im1hcmtldFN0YXR1c0Nsb3NlLVVSSWpFQjk4IixtYXJrZXRTdGF0dXNQcmU6Im1hcmtldFN0YXR1c1ByZS1VUklqRUI5OCIsbWFya2V0U3RhdHVzUG9zdDoibWFya2V0U3RhdHVzUG9zdC1VUklqRUI5OCIsbWFya2V0U3RhdHVzT3Zlcm5pZ2h0OiJtYXJrZXRTdGF0dXNPdmVybmlnaHQtVVJJakVCOTgiLG1hcmtldFN0YXR1c0hvbGlkYXk6Im1hcmtldFN0YXR1c0hvbGlkYXktVVJJakVCOTgiLG1hcmtldFN0YXR1c0RlbGlzdGVkOiJtYXJrZXRTdGF0dXNEZWxpc3RlZC1VUklqRUI5OCIsbWFya2V0U3RhdHVzRXhwaXJlZDoibWFya2V0U3RhdHVzRXhwaXJlZC1VUklqRUI5OCIsbWFya2V0U3RhdHVzQ3VzdG9tOiJtYXJrZXRTdGF0dXNDdXN0b20tVVJJakVCOTgiLGludmFsaWRTeW1ib2w6ImludmFsaWRTeW1ib2wtVVJJakVCOTgiLGFjdGl2ZVN0cmF0ZWd5OiJhY3RpdmVTdHJhdGVneS1VUklqRUI5OCIsYWxlcnQ6ImFsZXJ0LVVSSWpFQjk4IixhbGVydEl0ZW1zQ29udGFpbmVyOiJhbGVydEl0ZW1zQ29udGFpbmVyLVVSSWpFQjk4IixhbGVydEl0ZW06ImFsZXJ0SXRlbS1VUklqRUI5OCIscmVwbGF5TW9kZUF1dG9QbGF5OiJyZXBsYXlNb2RlQXV0b1BsYXktVVJJakVCOTgiLHJlcGxheU1vZGVQYXVzZToicmVwbGF5TW9kZVBhdXNlLVVSSWpFQjk4IixyZXBsYXlNb2RlUG9pbnRTZWxlY3Q6InJlcGxheU1vZGVQb2ludFNlbGVjdC1VUklqRUI5OCIsImJsaW5raW5nLWFuaW1hdGlvbi1jdXN0b20iOiJibGlua2luZy1hbmltYXRpb24tY3VzdG9tLVVSSWpFQjk4Iixub3RBY2N1cmF0ZToibm90QWNjdXJhdGUtVVJJakVCOTgiLG9wZW5lZEluUGluZUVkaXRvcjoib3BlbmVkSW5QaW5lRWRpdG9yLVVSSWpFQjk4IixvcGVuZWRJbkRldGFjaGVkUGluZUVkaXRvcjoib3BlbmVkSW5EZXRhY2hlZFBpbmVFZGl0b3ItVVJJakVCOTgiLGRlbGF5OiJkZWxheS1VUklqRUI5OCIsZW9kOiJlb2QtVVJJakVCOTgiLGRhdGFQcm9ibGVtSGlnaDoiZGF0YVByb2JsZW1IaWdoLVVSSWpFQjk4IixkYXRhUHJvYmxlbUxvdzoiZGF0YVByb2JsZW1Mb3ctVVJJakVCOTgiLGhhc0Vycm9yOiJoYXNFcnJvci1VUklqRUI5OCIsdXBkYXRlQXZhaWxhYmxlOiJ1cGRhdGVBdmFpbGFibGUtVVJJakVCOTgifX0sMTE0MDY4KGUpe2UuZXhwb3J0cz17ImNvbW1vbi10b29sdGlwIjoiY29tbW9uLXRvb2x0aXAtRUpCRDk2elgiLCJjb21tb24tdG9vbHRpcC0taGlkZGVuIjoiY29tbW9uLXRvb2x0aXAtLWhpZGRlbi1FSkJEOTZ6WCIsImNvbW1vbi10b29sdGlwLS1ob3Jpem9udGFsIjoiY29tbW9uLXRvb2x0aXAtLWhvcml6b250YWwtRUpCRDk2elgiLCJjb21tb24tdG9vbHRpcC0tZmFydGhlciI6ImNvbW1vbi10b29sdGlwLS1mYXJ0aGVyLUVKQkQ5NnpYIiwiY29tbW9uLXRvb2x0aXAtLXZlcnRpY2FsIjoiY29tbW9uLXRvb2x0aXAtLXZlcnRpY2FsLUVKQkQ5NnpYIiwiY29tbW9uLXRvb2x0aXAtZmFydGhlciI6ImNvbW1vbi10b29sdGlwLWZhcnRoZXItRUpCRDk2elgiLCJjb21tb24tdG9vbHRpcC0tZGlyZWN0aW9uX25vcm1hbCI6ImNvbW1vbi10b29sdGlwLS1kaXJlY3Rpb25fbm9ybWFsLUVKQkQ5NnpYIiwiY29tbW9uLXRvb2x0aXBfX2JvZHkiOiJjb21tb24tdG9vbHRpcF9fYm9keS1FSkJEOTZ6WCIsImNvbW1vbi10b29sdGlwX19idXR0b24tY29udGFpbmVyIjoiY29tbW9uLXRvb2x0aXBfX2J1dHRvbi1jb250YWluZXItRUpCRDk2elgiLCJjb21tb24tdG9vbHRpcF9fYm9keS0tbm8tYnV0dG9ucyI6ImNvbW1vbi10b29sdGlwX19ib2R5LS1uby1idXR0b25zLUVKQkQ5NnpYIiwiY29tbW9uLXRvb2x0aXBfX2J1dHRvbiI6ImNvbW1vbi10b29sdGlwX19idXR0b24tRUpCRDk2elgiLCJjb21tb24tdG9vbHRpcC0tZGlyZWN0aW9uX3JldmVyc2VkIjoiY29tbW9uLXRvb2x0aXAtLWRpcmVjdGlvbl9yZXZlcnNlZC1FSkJEOTZ6WCIsImNvbW1vbi10b29sdGlwX19lYXItaG9sZGVyIjoiY29tbW9uLXRvb2x0aXBfX2Vhci1ob2xkZXItRUpCRDk2elgiLCJjb21tb24tdG9vbHRpcF9fZWFyLWhvbGRlci0tYmVsb3ciOiJjb21tb24tdG9vbHRpcF9fZWFyLWhvbGRlci0tYmVsb3ctRUpCRDk2elgiLCJjb21tb24tdG9vbHRpcF9fZWFyLWhvbGRlci0tYWJvdmUiOiJjb21tb24tdG9vbHRpcF9fZWFyLWhvbGRlci0tYWJvdmUtRUpCRDk2elgiLCJjb21tb24tdG9vbHRpcF9fZWFyLWhvbGRlci0tYmVmb3JlIjoiY29tbW9uLXRvb2x0aXBfX2Vhci1ob2xkZXItLWJlZm9yZS1FSkJEOTZ6WCIsImNvbW1vbi10b29sdGlwX19lYXItaG9sZGVyLS1hZnRlciI6ImNvbW1vbi10b29sdGlwX19lYXItaG9sZGVyLS1hZnRlci1FSkJEOTZ6WCIsImNvbW1vbi10b29sdGlwX19ib2R5LS13aXRoLWhvdGtleSI6ImNvbW1vbi10b29sdGlwX19ib2R5LS13aXRoLWhvdGtleS1FSkJEOTZ6WCIsCiJjb21tb24tdG9vbHRpcF9fYm9keS0td2lkdGhfd2lkZSI6ImNvbW1vbi10b29sdGlwX19ib2R5LS13aWR0aF93aWRlLUVKQkQ5NnpYIiwiY29tbW9uLXRvb2x0aXBfX2JvZHktLXdpZHRoX25hcnJvdyI6ImNvbW1vbi10b29sdGlwX19ib2R5LS13aWR0aF9uYXJyb3ctRUpCRDk2elgiLCJjb21tb24tdG9vbHRpcF9fYm9keS0tbm8tcGFkZGluZyI6ImNvbW1vbi10b29sdGlwX19ib2R5LS1uby1wYWRkaW5nLUVKQkQ5NnpYIiwiY29tbW9uLXRvb2x0aXBfX2hvdGtleS1ibG9jayI6ImNvbW1vbi10b29sdGlwX19ob3RrZXktYmxvY2stRUpCRDk2elgiLCJjb21tb24tdG9vbHRpcF9faG90a2V5LWJsb2NrLS1kaXZpZGVyIjoiY29tbW9uLXRvb2x0aXBfX2hvdGtleS1ibG9jay0tZGl2aWRlci1FSkJEOTZ6WCIsImNvbW1vbi10b29sdGlwX19ob3RrZXktdGV4dCI6ImNvbW1vbi10b29sdGlwX19ob3RrZXktdGV4dC1FSkJEOTZ6WCIsImNvbW1vbi10b29sdGlwX19ob3RrZXktYnV0dG9uIjoiY29tbW9uLXRvb2x0aXBfX2hvdGtleS1idXR0b24tRUpCRDk2elgiLCJjb21tb24tdG9vbHRpcF9fcGx1cy1zaWduIjoiY29tbW9uLXRvb2x0aXBfX3BsdXMtc2lnbi1FSkJEOTZ6WCJ9fSwxMjQzMjcoZSl7ZS5leHBvcnRzPXt9fSwzMjA0MDMoZSx0KXsidXNlIHN0cmljdCI7dmFyIHMsaT0hKCJ1bmRlZmluZWQiPT10eXBlb2Ygd2luZG93fHwhd2luZG93LmRvY3VtZW50fHwhd2luZG93LmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQpO2Z1bmN0aW9uIG4oKXtpZihzKXJldHVybiBzO2lmKCFpfHwhd2luZG93LmRvY3VtZW50LmJvZHkpcmV0dXJuImluZGV0ZXJtaW5hdGUiO3ZhciBlPXdpbmRvdy5kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtyZXR1cm4gZS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiQUJDRCIpKSxlLmRpcj0icnRsIixlLnN0eWxlLmZvbnRTaXplPSIxNHB4IixlLnN0eWxlLndpZHRoPSI0cHgiLGUuc3R5bGUuaGVpZ2h0PSIxcHgiLGUuc3R5bGUucG9zaXRpb249ImFic29sdXRlIixlLnN0eWxlLnRvcD0iLTEwMDBweCIsZS5zdHlsZS5vdmVyZmxvdz0ic2Nyb2xsIixkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGUpLHM9InJldmVyc2UiLGUuc2Nyb2xsTGVmdD4wP3M9ImRlZmF1bHQiOihlLnNjcm9sbExlZnQ9MSwwPT09ZS5zY3JvbGxMZWZ0JiYocz0ibmVnYXRpdmUiKSksZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChlKSxzfXQuZGV0ZWN0U2Nyb2xsVHlwZT1uLHQuZ2V0Tm9ybWFsaXplZFNjcm9sbExlZnQ9ZnVuY3Rpb24oZSx0KXt2YXIgcz1lLnNjcm9sbExlZnQ7aWYoInJ0bCIhPT10KXJldHVybiBzO3ZhciBpPW4oKTtpZigiaW5kZXRlcm1pbmF0ZSI9PT1pKXJldHVybiBOdW1iZXIuTmFOO3N3aXRjaChpKXtjYXNlIm5lZ2F0aXZlIjpyZXR1cm4gZS5zY3JvbGxXaWR0aC1lLmNsaWVudFdpZHRoK3M7Y2FzZSJyZXZlcnNlIjpyZXR1cm4gZS5zY3JvbGxXaWR0aC1lLmNsaWVudFdpZHRoLXN9cmV0dXJuIHN9fSw0NDM3NzYoZSx0LHMpeyJ1c2Ugc3RyaWN0IjtzKDEyNDMyNykscyg5MjY0MTUpLHMoMjc3MDI5KSxzKDIyMjk4NikscygzMTQxMzMpO3ZhciBpPXMoMzE4OTc0KSxuPShzKDQyOTY2KSxzKDgyOTE4MCkscyg3MjI1NzEpLHMoMjg0NDg0KSxzKDU2OTgxOSkscyg1NjkzOTgpLHMoOTMyMzY1KSxzKDg0Mjk4Mykscyg5MzA1NjYpKSxyPShzKDIzMzM5OSkscygxMzg2MzgpKSxvPXMoOTMwMjMxKTsoMCxvLmlzRmVhdHVyZXNldEVuYWJsZWQpKCJ1c2VfbG9jYWxzdG9yYWdlX2Zvcl9zZXR0aW5ncyIpJiZuLnN5bmModm9pZCAwKTt2YXIgYT1zKDc5NDgxMiksbD1zKDc4MzI1NCksdT1zKDk4ODc3NiksYz1zKDI4NjQxMyksZD1zKDk1MTQ2OSksaD1zKDY4Mjc3OSkscD1zKDIyNTI5OCksbT1zKDM0NDEwMyksXz1zLm4obSksZz1zKDkwNjU5MykseT1zLm4oZyksZj1zKDE1OTUxMyksdj1zKDEyODk5OCksYj1zKDI1NDY3MyksUz1zKDQ2NTEzNyk7ZnVuY3Rpb24gdygpe3JldHVybiBQcm9taXNlLmFsbChbcy5lKDk4MTExKSxzLmUoMjA1OTApLHMuZSg5MzA2NildKS50aGVuKHMuYmluZChzLDM4MTg1MCkpfXZhciBQPXMoMjMyMzY0KTtjbGFzcyBUe2NvbnN0cnVjdG9yKCl7dGhpcy5fdmlzaWJpbGl0eT1uZXcgUC5XYXRjaGVkVmFsdWUoITEpLHRoaXMuX2lzRmlyc3RTaG93PSEwLHRoaXMuX2RpYWxvZ1Byb21pc2U9bnVsbCx0aGlzLl9kaWFsb2c9bnVsbH12aXNpYmxlKCl7cmV0dXJuIHRoaXMuX3Zpc2liaWxpdHkucmVhZG9ubHkoKX1zaG93KGUsdCxzKXt0aGlzLl9pc0ZpcnN0U2hvdyYmKHRoaXMuX2lzRmlyc3RTaG93PSExLHRoaXMuX29uRmlyc3RTaG93KCkpO2NvbnN0IGk9QXJyYXkuaXNBcnJheShlKT9lOltdLG49QXJyYXkuaXNBcnJheShlKT92b2lkIDA6ZTtudWxsPT09dGhpcy5fZGlhbG9nJiZ0aGlzLl9yZXF1ZXN0RGlhbG9nKGksdCxzLG4pLHRoaXMuX2RpYWxvZz8ub3BlbihpLHZvaWQgMCx0LHMsbil9aGlkZSgpe3RoaXMuX2RpYWxvZz8uaGlkZSgpfWdldERpYWxvZygpe3JldHVybiB0aGlzLl9kaWFsb2d9cmVzZXRBbGxQYWdlcygpe3RoaXMuX2RpYWxvZz8ucmVzZXRBbGxTdHVkaWVzKCl9X29uRmlyc3RTaG93KCl7fV9vbkRpYWxvZ0hpZGRlbigpe31fcmVxdWVzdERpYWxvZyhlLHQscyxpKXtyZXR1cm4gbnVsbD09PXRoaXMuX2RpYWxvZ1Byb21pc2UmJih0aGlzLl9kaWFsb2dQcm9taXNlPXRoaXMuX2NyZWF0ZURpYWxvZygpLnRoZW4oKG49Pnt0aGlzLl9kaWFsb2c9bix0aGlzLl9kaWFsb2cudmlzaWJsZSgpLnN1YnNjcmliZSgoZT0+e3RoaXMuX3Zpc2liaWxpdHkuc2V0VmFsdWUoZSksZXx8dGhpcy5fb25EaWFsb2dIaWRkZW4oKX0pKSx0aGlzLl9kaWFsb2cub3BlbihlLHZvaWQgMCx0LHMsaSl9KSkpLHRoaXMuX2RpYWxvZ1Byb21pc2V9fWNsYXNzIEMgZXh0ZW5kcyBUe2NvbnN0cnVjdG9yKGUsdCl7c3VwZXIoKSx0aGlzLl9pbnNlcnRTdHVkeVNlcnZpY2U9ZSx0aGlzLl9vcHRpb25zPXR9YXN5bmMgX2NyZWF0ZURpYWxvZygpewpyZXR1cm4gbmV3KChhd2FpdCBQcm9taXNlLmFsbChbcy5lKDU5ODI5KSxzLmUoODQzMDYpLHMuZSgyOTI5Nikscy5lKDUyMzk2KSxzLmUoNjAwNjIpLHMuZSgyMDM1NCkscy5lKDEzNDkyKSxzLmUoMzc3NDYpLHMuZSg5NDk0OCkscy5lKDUxODQpLHMuZSg4MzQ4OCkscy5lKDcyNjY2KSxzLmUoMTAzODUpLHMuZSg1MjA2NSkscy5lKDY2MDUpLHMuZSgzMjE3Nikscy5lKDcxNDgyKSxzLmUoODg2NDEpLHMuZSg3MDY1Nikscy5lKDM5MTYpLHMuZSg2ODk2NCkscy5lKDQyNzIxKSxzLmUoMTc3NTEpLHMuZSgyOTMxNSkscy5lKDE0NjU3KSxzLmUoNTExODQpLHMuZSgzMjM4Nykscy5lKDM5NjA5KSxzLmUoMTY5NDkpXSkudGhlbihzLmJpbmQocyw4ODUyMTgpKSkuU3R1ZHlUZWNobmljYWxzU2VhcmNoRGlhbG9nKSh0aGlzLl9pbnNlcnRTdHVkeVNlcnZpY2UsdGhpcy5fb3B0aW9ucyl9fXZhciBFPXMoNjAxODQxKSxJPXMoNjc4Mjg1KSxMPXMoMzY4MTEwKSxNPXMoNDczMzE4KSxEPXMoODY3ODMxKTthc3luYyBmdW5jdGlvbiB4KGUsdCxzLGkpe2NvbnN0IG49ZS5tb2RlbCgpLm1vZGVsKCkuaW5zZXJ0U3R1ZHlTdHViKHQscyxpKTtyZXR1cm4gbi5zZXRTdGF0dXMoe3R5cGU6RC5TdHVkeVN0YXR1c1R5cGUuTG9hZGluZyxzdGFydFRpbWU6RGF0ZS5ub3coKX0pLG59Y2xhc3MgUntjb25zdHJ1Y3RvcihlKXt0aGlzLl9jaGFydFdpZGdldENvbGxlY3Rpb249ZX1hc3luYyBpbnNlcnRTdHVkeShlKXtjb25zdCB0PXRoaXMuX2NoYXJ0V2lkZ2V0Q29sbGVjdGlvbi5hY3RpdmVDaGFydFdpZGdldC52YWx1ZSgpO2lmKCF0KXJldHVybiBudWxsO2NvbnN0e2Rlc2NyaXB0b3I6cyxpbnNlcnRpb25JbmZvOmkscGFyZW50SWRzOm49W10sc3ltYm9sOnIsb25JbnNlcnRTdGFydDpvfT1lLGE9aS5zdHViVGl0bGU/PyIiLGw9YXdhaXQoMCxNLndhaXRGb3JNb2RlbCkodCk7aWYoaS5pc0Z1bmRhbWVudGFsKXtjb25zdCBlPXZvaWQgMCE9PXI/ZnVuY3Rpb24oZSl7cmV0dXJuKHQscyxpKT0+e2NvbnN0IG49e30scj1pLnN5bWJvbElucHV0SWQoKTtyZXR1cm4gciYmKG5bcl09ZSkse2lucHV0czpuLHBhcmVudFNvdXJjZXM6W119fX0ocik6dm9pZCAwLG49YXdhaXQgeCh0LGEsITEscyksbD1hd2FpdCB0LnJlcGxhY2VTdHViQnlTdHVkeShuLHMsW10saSxlLG8pO3JldHVybiBsPy5tZXRhSW5mbygpPz9udWxsfWNvbnN0IHU9bi5tYXAoKGU9PmwuZ2V0U3R1ZHlCeUlkKGUpKSkuZmlsdGVyKEUubm90TnVsbCk7aWYodm9pZCAwIT09aS5pc092ZXJsYXkmJiJwaW5lIj09PXMudHlwZSl7Y29uc3QgZT1hd2FpdCB4KHQsYSxpLmlzT3ZlcmxheSxzKSxuPWF3YWl0IHQucmVwbGFjZVN0dWJCeVN0dWR5KGUscyx1LGksdm9pZCAwLG8pO3JldHVybiBuPy5tZXRhSW5mbygpPz9udWxsfWlmKCJqYXZhIj09PXMudHlwZSl7Y29uc3QgZT0oMCxMLnRyeUZpbmRTdHVkeUxpbmVUb29sTmFtZUJ5U3R1ZHlJZCkocy5zdHVkeUlkKTtpZihudWxsIT09ZSlyZXR1cm4gYXdhaXQoMCxMLmluaXRMaW5lVG9vbCkoZSksSS50b29sLnNldFZhbHVlKGUpLG51bGx9Y29uc3QgYz1hd2FpdCB0Lmluc2VydFN0dWR5KHMsdSxpLHZvaWQgMCxvKTtyZXR1cm4gYz8ubWV0YUluZm8oKT8/bnVsbH1nZXRTdHVkeU9uU3R1ZHlDb3VudGVyKCl7cmV0dXJuIHRoaXMuX2NoYXJ0V2lkZ2V0Q29sbGVjdGlvbi5hY3RpdmVDaGFyV2lkZ2V0TW9kZWwoKS52YWx1ZSgpPy5tb2RlbCgpLmNoYXJ0QXBpKCkuZ2V0Q2hpbGRTdHVkeUNvdW50ZXIoKT8/MH1nZXRGdW5kYW1lbnRhbFN0dWRpZXNDb3VudGVyKCl7cmV0dXJuIHRoaXMuX2NoYXJ0V2lkZ2V0Q29sbGVjdGlvbi5hY3RpdmVDaGFyV2lkZ2V0TW9kZWwoKS52YWx1ZSgpPy5tb2RlbCgpLmNoYXJ0QXBpKCkuZ2V0RnVuZGFtZW50YWxDb3VudGVyKCk/PzB9Z2V0U3R1ZGllc0NvdW50ZXIoKXtyZXR1cm4gdGhpcy5fY2hhcnRXaWRnZXRDb2xsZWN0aW9uLmFjdGl2ZUNoYXJXaWRnZXRNb2RlbCgpLnZhbHVlKCk/Lm1vZGVsKCkuY2hhcnRBcGkoKS5nZXRTdHVkeUNvdW50ZXIoKT8/MH19dmFyIGs9cyg3NTk5NzApLFY9cyg2NjUxODcpLEE9cygyMDA2NjYpLEY9cyg3Mzg0NTgpLEI9cygzMDg4MTApLE89cygxOTYwNDkpLE49cyg4MDI1ODYpO2NvbnN0IFc9ezg6W0IudGltZUZyYW1lcy55dGQsQi50aW1lRnJhbWVzWyIxMm0iXSxCLnRpbWVGcmFtZXNbIjYwbSJdLEIudGltZUZyYW1lcy5hbGxdLDM6W0IudGltZUZyYW1lc1siMWQiXSxCLnRpbWVGcmFtZXNbIjVkIl0sQi50aW1lRnJhbWVzWyIxbSJdLEIudGltZUZyYW1lc1siM20iXSxCLnRpbWVGcmFtZXNbIjZtIl0sQi50aW1lRnJhbWVzLnl0ZCxCLnRpbWVGcmFtZXNbIjEybSJdLEIudGltZUZyYW1lc1siNjBtIl0sQi50aW1lRnJhbWVzLmFsbF19LFU9bmV3IE1hcChbWyIxRCIsKDAsTi5nZXRGcm9tRm9yRGF5KSgxKV0sWyI1RCIsKDAsTi5nZXRGcm9tRm9yRGF5KSg1KV0sWyI3RCIsKDAsTi5nZXRGcm9tRm9yRGF5KSg3KV0sWyIxTSIsKDAsTi5nZXRGcm9tRm9yTW9udGhzQWdvKSgxKV0sWyIzTSIsKDAsTi5nZXRGcm9tRm9yTW9udGhzQWdvKSgzKV0sWyI2TSIsKDAsTi5nZXRGcm9tRm9yTW9udGhzQWdvKSg2KV0sWyIxMk0iLCgwLE4uZ2V0RnJvbUZvclllYXJzQWdvKSgxKV0sWyIyNE0iLCgwLE4uZ2V0RnJvbUZvclllYXJzQWdvKSgyKV0sWyIzNk0iLCgwLE4uZ2V0RnJvbUZvclllYXJzQWdvKSgzKV0sWyI2ME0iLCgwLE4uZ2V0RnJvbUZvclllYXJzQWdvKSg1KV0sWyJZVEQiLCgwLE4uZ2V0U3RhcnRPZlRoZVllYXIpKCldLFsiTEFTVFNFU1NJT04iLCgwLE4uZ2V0RnJvbUZvckRheSkoMSldLFsiQUxMIiwtMS8wXV0pO2Z1bmN0aW9uIHooZSx0LHM9LTEvMCl7bGV0IGk7bnVsbCE9PWU/aT0oV1szXXx8W10pLmZpbHRlcigodD0+bnVsbD09PSgwLE8uZ2V0UmVzb2x1dGlvblVuc3VwcG9ydGVkUmVhc29uKShlLHQudGFyZ2V0UmVzb2x1dGlvbikpKTooOT09PXQmJih0PTMpLDY9PT10JiYodD04KSxpPVdbdF18fFtdKTtjb25zdCBuPVtdO2ZvcihsZXQgZT0wO2U8aS5sZW5ndGg7ZSsrKXtjb25zdCB0PWlbZV07aWYobi5wdXNoKHQpLCgwLApyLmVuc3VyZURlZmluZWQpKFUuZ2V0KHQudmFsdWUudmFsdWUpKTxzKWJyZWFrfXJldHVybiBuLmxlbmd0aCYmIkFMTCIhPT1uW24ubGVuZ3RoLTFdLnZhbHVlLnZhbHVlJiYobltuLmxlbmd0aC0xXT17Li4ubltuLmxlbmd0aC0xXSx0ZXh0OkIudGltZUZyYW1lcy5hbGwudGV4dCx2YWx1ZTp7Li4ubltuLmxlbmd0aC0xXS52YWx1ZSx2YWx1ZTpCLnRpbWVGcmFtZXMuYWxsLnZhbHVlLnZhbHVlfX0pLG59ZnVuY3Rpb24gSChlLHQscyl7Y29uc3QgaT17bmFtZTplLGZyYW1lRWxlbWVudElkOnQsZGF0YTpzfTt3aW5kb3cucGFyZW50LnBvc3RNZXNzYWdlKGksIioiKX1mdW5jdGlvbiBqKGUsdCl7ZnVuY3Rpb24gcyhzKXtzLmRhdGEmJnMuZGF0YS5uYW1lJiZzLmRhdGEubmFtZT09PWUmJnQocy5kYXRhLmRhdGEpfXJldHVybiB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIscywhMSksKCk9Pnt3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIscywhMSl9fXZhciAkLHE7ZnVuY3Rpb24gSyhlKXtyZXR1cm4ic2Vla2luZ2FscGhhIj09PWV8fCJzbWFydGxhYi1jdXN0b20iPT09ZT9Qcm9taXNlLmFsbChbcy5lKDk0MjQ0KSxzLmUoODQzMDYpLHMuZSg0NjkwNykscy5lKDgxMDcyKSxzLmUoOTQ5NDgpLHMuZSgyMzYyNCkscy5lKDM2MjIyKSxzLmUoMjk1MzYpLHMuZSg5NDIzMikscy5lKDUxODQpLHMuZSg1NjI1Mikscy5lKDY3Nzk5KSxzLmUoMTE0NjEpLHMuZSg5NjU4Nykscy5lKDg2NDIzKSxzLmUoMzc1MTMpLHMuZSg0MDgzNSkscy5lKDE3MDg3KSxzLmUoOTM0MjEpLHMuZSg3ODY1Mikscy5lKDcxNDE0KSxzLmUoNTI2ODApLHMuZSgzNTc5NCkscy5lKDg5MjA0KSxzLmUoODk1NTgpLHMuZSgxMDM2Nikscy5lKDY5ODYxKSxzLmUoMjAyKSxzLmUoNzI1MTIpLHMuZSg1NTAxMSkscy5lKDE1NjM0KSxzLmUoNzA2NTYpLHMuZSg3MTkwMSkscy5lKDgxMjQ3KSxzLmUoOTA5NjApLHMuZSgyMzY2OSkscy5lKDgxMTA3KSxzLmUoNDIzMDEpLHMuZSg2NzkyNSkscy5lKDMyODU3KSxzLmUoMzUzNDIpLHMuZSgyMzI1NCkscy5lKDQyMDMzKSxzLmUoODY5OTcpLHMuZSg5ODUwOSkscy5lKDI3NjY1KSxzLmUoMzI0MjcpLHMuZSg2NzY4NSkscy5lKDQ2NzU2KSxzLmUoMzIzODcpLHMuZSgyMzc0Mykscy5lKDk5MzA5KSxzLmUoNjk2OTcpLHMuZSg1MzI5Nykscy5lKDM4MDg2KSxzLmUoMjYxMTgpLHMuZSg1ODA4KSxzLmUoMzQxNyldKS50aGVuKHMuYmluZChzLDM0MTcpKToiY21lIj09PWU/UHJvbWlzZS5hbGwoW3MuZSgxMjA4MCkscy5lKDg0MzA2KSxzLmUoNDY5MDcpLHMuZSg4MTA3Mikscy5lKDk0OTQ4KSxzLmUoMjM2MjQpLHMuZSgzNjIyMikscy5lKDI5NTM2KSxzLmUoOTQyMzIpLHMuZSg1MTg0KSxzLmUoNTYyNTIpLHMuZSg2Nzc5OSkscy5lKDExNDYxKSxzLmUoOTY1ODcpLHMuZSg4NjQyMykscy5lKDM3NTEzKSxzLmUoNDA4MzUpLHMuZSgxNzA4Nykscy5lKDkzNDIxKSxzLmUoNzg2NTIpLHMuZSg3MTQxNCkscy5lKDUyNjgwKSxzLmUoMzU3OTQpLHMuZSg4OTIwNCkscy5lKDg5NTU4KSxzLmUoMTAzNjYpLHMuZSg2OTg2MSkscy5lKDIwMikscy5lKDcyNTEyKSxzLmUoNTUwMTEpLHMuZSgxNTYzNCkscy5lKDcwNjU2KSxzLmUoNzE5MDEpLHMuZSg4MTI0Nykscy5lKDkwOTYwKSxzLmUoMjM2NjkpLHMuZSg4MTEwNykscy5lKDQyMzAxKSxzLmUoNjc5MjUpLHMuZSgzMjg1Nykscy5lKDM1MzQyKSxzLmUoMjMyNTQpLHMuZSg0MjAzMykscy5lKDg2OTk3KSxzLmUoOTg1MDkpLHMuZSgyNzY2NSkscy5lKDMyNDI3KSxzLmUoMzIzODcpLHMuZSgyMzc0Mykscy5lKDk5MzA5KSxzLmUoNjk2OTcpLHMuZSg1MzI5Nykscy5lKDM4MDg2KSxzLmUoMjYxMTgpLHMuZSg1ODA4KSxzLmUoNTAwNzcpXSkudGhlbihzLmJpbmQocywxNTAwNzcpKTpQcm9taXNlLmFsbChbcy5lKDk5MTI0KSxzLmUoODQzMDYpLHMuZSg0NjkwNykscy5lKDgxMDcyKSxzLmUoOTQ5NDgpLHMuZSgyMzYyNCkscy5lKDM2MjIyKSxzLmUoMjk1MzYpLHMuZSg5NDIzMikscy5lKDUxODQpLHMuZSg1NjI1Mikscy5lKDY3Nzk5KSxzLmUoMTE0NjEpLHMuZSg5NjU4Nykscy5lKDg2NDIzKSxzLmUoMzc1MTMpLHMuZSg0MDgzNSkscy5lKDE3MDg3KSxzLmUoOTM0MjEpLHMuZSg3ODY1Mikscy5lKDcxNDE0KSxzLmUoNTI2ODApLHMuZSgzNTc5NCkscy5lKDg5MjA0KSxzLmUoODk1NTgpLHMuZSgxMDM2Nikscy5lKDY5ODYxKSxzLmUoMjAyKSxzLmUoNzI1MTIpLHMuZSg1NTAxMSkscy5lKDE1NjM0KSxzLmUoNzA2NTYpLHMuZSg3MTkwMSkscy5lKDgxMjQ3KSxzLmUoOTA5NjApLHMuZSgyMzY2OSkscy5lKDgxMTA3KSxzLmUoNDIzMDEpLHMuZSg2NzkyNSkscy5lKDMyODU3KSxzLmUoMzUzNDIpLHMuZSgyMzI1NCkscy5lKDQyMDMzKSxzLmUoODY5OTcpLHMuZSg5ODUwOSkscy5lKDI3NjY1KSxzLmUoMzI0MjcpLHMuZSg2NzY4NSkscy5lKDMyMzg3KSxzLmUoMjM3NDMpLHMuZSg5OTMwOSkscy5lKDY5Njk3KSxzLmUoNTMyOTcpLHMuZSgzODA4Nikscy5lKDI2MTE4KSxzLmUoNTgwOCkscy5lKDM5MTY2KV0pLnRoZW4ocy5iaW5kKHMsOTM5MTY2KSl9IWZ1bmN0aW9uKGUpe2xldCB0OyFmdW5jdGlvbihlKXtlLlNldFN5bWJvbD0ic2V0LXN5bWJvbCIsZS5TZXRJbnRlcnZhbD0ic2V0LWludGVydmFsIn0odD1lLk5hbWVzfHwoZS5OYW1lcz17fSkpfSgkfHwoJD17fSkpLGZ1bmN0aW9uKGUpe2xldCB0OyFmdW5jdGlvbihlKXtlLlN5bWJvbENsaWNrPSJ0di13aWRnZXQtc3ltYm9sLWNsaWNrIixlLldpZGdldExvYWQ9InR2LXdpZGdldC1sb2FkIixlLldpZGdldFJlYWR5PSJ0di13aWRnZXQtcmVhZHkiLGUuUmVzaXplSWZyYW1lPSJ0di13aWRnZXQtcmVzaXplLWlmcmFtZSIsZS5Ob0RhdGE9InR2LXdpZGdldC1uby1kYXRhIn0odD1lLk5hbWVzfHwoZS5OYW1lcz17fSkpfShxfHwocT17fSkpO3ZhciBZPXMoMTg1MjcxKSxHPXMoODYwNDQyKSxKPXMoMjM1NzI0KQo7Y29uc3QgWD1bIkxpbmVUb29sVHJlbmRMaW5lIiwiTGluZVRvb2xSYXkiLCJMaW5lVG9vbEluZm9MaW5lIiwiTGluZVRvb2xFeHRlbmRlZCIsIkxpbmVUb29sUmVncmVzc2lvblRyZW5kIiwiTGluZVRvb2xSb3RhdGVkUmVjdGFuZ2xlIiwiTGluZVRvb2xQYXJhbGxlbENoYW5uZWwiLCJMaW5lVG9vbEZsYXRCb3R0b20iLCJMaW5lVG9vbERpc2pvaW50QW5nbGUiLCJMaW5lVG9vbFBpdGNoZm9yayIsIkxpbmVUb29sU2NoaWZmUGl0Y2hmb3JrIiwiTGluZVRvb2xTY2hpZmZQaXRjaGZvcmsyIiwiTGluZVRvb2xJbnNpZGVQaXRjaGZvcmsiLCJMaW5lVG9vbFZlcnRMaW5lIiwiTGluZVRvb2xDcm9zc0xpbmUiLCJMaW5lVG9vbEhvcnpMaW5lIiwiTGluZVRvb2xIb3J6UmF5IiwiTGluZVRvb2xUcmVuZEFuZ2xlIl07ZnVuY3Rpb24gUShlLHQ9ITEsYT0hMSl7aWYoISgwLG8uaXNGZWF0dXJlc2V0RW5hYmxlZCkoInBvcHVwX2hpbnRzIikpcmV0dXJuKCk9Pnt9O2NvbnN0IGw9ZS5nZXRDb250YWluZXIoKTtsZXQgdT1udWxsLGM9bnVsbCxkPW51bGw7cmV0dXJuIEkudG9vbC5zdWJzY3JpYmUoaCksSS5jcmVhdGVkTGluZVRvb2wuc3Vic2NyaWJlKG51bGwscCksSS5maW5pc2hlZExpbmVUb29sLnN1YnNjcmliZShudWxsLG0pLGUubGF5b3V0U2l6ZXNDaGFuZ2VkKCkuc3Vic2NyaWJlKF8pLHR8fGkuQ2hlY2tNb2JpbGUuYW55KCl8fCF5KCJoaW50LnN0YXJ0Rm9jdXNlZFpvb20iKXx8KGQ9ZnVuY3Rpb24oZSx0KXtsZXQgcz0hMTtjb25zdCBpPW49PntuPyhzJiZ0KG4pLGUub25ab29tKCkudW5zdWJzY3JpYmUobnVsbCxpKSk6c3x8KHQobikscz0hMCl9O3JldHVybiBlLm9uWm9vbSgpLnN1YnNjcmliZShudWxsLGkpLCgpPT5lLm9uWm9vbSgpLnVuc3Vic2NyaWJlKG51bGwsaSl9KGUsKGZ1bmN0aW9uKGUpe2lmKCF5KCJoaW50LnN0YXJ0Rm9jdXNlZFpvb20iKSlyZXR1cm47aWYoZSljJiYoZD1udWxsLGYoImhpbnQuc3RhcnRGb2N1c2VkWm9vbSIpKTtlbHNle2coWS50KG51bGwsdm9pZCAwLHMoNDc1Mjk5KSkuZm9ybWF0KHtrZXk6KDAsSi5odW1hblJlYWRhYmxlTW9kaWZpZXJzKShKLk1vZGlmaWVycy5Nb2QsITEpfSksImhpbnQuc3RhcnRGb2N1c2VkWm9vbSIpfX0pKSksKCk9PntJLnRvb2wudW5zdWJzY3JpYmUoaCksSS5jcmVhdGVkTGluZVRvb2wudW5zdWJzY3JpYmUobnVsbCxwKSxJLmZpbmlzaGVkTGluZVRvb2wudW5zdWJzY3JpYmUobnVsbCxtKSxlLmxheW91dFNpemVzQ2hhbmdlZCgpLnVuc3Vic2NyaWJlKF8pLGQ/LigpfTtmdW5jdGlvbiBoKCl7Y29uc3QgdD1JLnRvb2wudmFsdWUoKSxuPWkuQ2hlY2tNb2JpbGUuYW55KCk7aWYodT8uaGlkZSgpLCFuJiYoMCxJLnRvb2xJc0RlbW9uc3RyYXRpb24pKHQpJiZ5KCJoaW50LmRlbW9uc3RyYXRpb25DdXJzb3JTZWxlY3RlZCIpKXtyZXR1cm4gdm9pZCBnKFkudChudWxsLHZvaWQgMCxzKDU4MjMwMykpLmZvcm1hdCh7a2V5OigwLEouaHVtYW5SZWFkYWJsZU1vZGlmaWVycykoSi5Nb2RpZmllcnMuQWx0LCExKX0pLCJoaW50LmRlbW9uc3RyYXRpb25DdXJzb3JTZWxlY3RlZCIpfWlmKGEmJm4mJihyPXQsWC5pbmNsdWRlcyhyKSkpcmV0dXJuIHZvaWQgYXN5bmMgZnVuY3Rpb24odCl7e2NvbnN0IGk9KCk9PigwLEkucmVzZXRUb0N1cnNvcikoITApO2lmKHUpdS5zaG93KHQsaSk7ZWxzZXtjb25zdCBuPWF3YWl0IFByb21pc2UuYWxsKFtzLmUoMjcxNzQpLHMuZSg1MTg0KSxzLmUoNTE4Nikscy5lKDMyMzg3KSxzLmUoMjE3NjYpXSkudGhlbihzLmJpbmQocywzNTIzNzYpKTt1PW5ldyBuLkRyYXdpbmdIaW50c1JlbmRlcmVyKGUpLHQ9PT1JLnRvb2wudmFsdWUoKSYmdS5zaG93KHQsaSl9fX0odCk7dmFyIHI7aWYoIkxpbmVUb29sVGV4dEFic29sdXRlIj09PXQmJnkoImhpbnQuYW5jaG9yZWRUZXh0V2lsbEJlUmVtb3ZlZCIpKXJldHVybiB2b2lkIGcoWS50KG51bGwsdm9pZCAwLHMoOTQ0NzA4KSksImhpbnQuYW5jaG9yZWRUZXh0V2lsbEJlUmVtb3ZlZCIpO2lmKCF5KCJoaW50LnRvdWNoUGFpbnRpbmciKSlyZXR1cm47Y29uc3Qgbz0oMCxHLmlzTGluZVRvb2xEcmF3V2l0aG91dFBvaW50cykodCk7ISgwLEcuaXNTdHVkeUxpbmVUb29sTmFtZSkodCl8fCJMaW5lVG9vbFJlZ3Jlc3Npb25UcmVuZCI9PT10fHxvfHxuPygwLEcuaXNMaW5lVG9vbE5hbWUpKHQpJiYhKDAsRy5pc0xpbmVEcmF3bldpdGhQcmVzc2VkQnV0dG9uKSh0KSYmIW8mJm4/ZyhZLnQobnVsbCx2b2lkIDAscyg3MzA5MzUpKSwiaGludC50b3VjaFBhaW50aW5nIik6YyYmYy5oaWRlKCk6ZyhZLnQobnVsbCx2b2lkIDAscygxNjE1MjgpKSwiaGludC50b3VjaFBhaW50aW5nIil9ZnVuY3Rpb24gcCgpe2NvbnN0IGU9SS50b29sLnZhbHVlKCk7IkxpbmVUb29sUGF0aCI9PT1lJiZ5KCJoaW50LmZpbmlzaEJ1aWxkUGF0aEJ5RGJsQ2xpY2siKT9nKFkudChudWxsLHZvaWQgMCxzKDY0MTE2MSkpLCJoaW50LmZpbmlzaEJ1aWxkUGF0aEJ5RGJsQ2xpY2siKToiTGluZVRvb2xQb2x5bGluZSI9PT1lJiZ5KCJoaW50LmZpbmlzaEJ1aWxkUG9seWxpbmVCeURibENsaWNrIikmJmcoWS50KG51bGwsdm9pZCAwLHMoNTgwOTg1KSksImhpbnQuZmluaXNoQnVpbGRQb2x5bGluZUJ5RGJsQ2xpY2siKX1mdW5jdGlvbiBtKCl7aWYoYyl7Y29uc3QgZT1JLnRvb2wudmFsdWUoKTsiTGluZVRvb2xQYXRoIj09PWU/ZigiaGludC5maW5pc2hCdWlsZFBhdGhCeURibENsaWNrIik6IkxpbmVUb29sUG9seWxpbmUiPT09ZSYmZigiaGludC5maW5pc2hCdWlsZFBvbHlsaW5lQnlEYmxDbGljayIpfX1mdW5jdGlvbiBfKCl7aWYoIXkoImhpbnQuc3RhcnRSZXNpemluZ0NoYXJ0SW5MYXlvdXQiKSlyZXR1cm47ZyhpLkNoZWNrTW9iaWxlLmFueSgpP1kudChudWxsLHZvaWQgMCxzKDEzNzE0OSkpOlkudChudWxsLHZvaWQgMCxzKDI5NjQ3MSkpLCJoaW50LnN0YXJ0UmVzaXppbmdDaGFydEluTGF5b3V0Iil9ZnVuY3Rpb24gZyhlLHQpe2lmKGMpYy5zaG93KGUsZi5iaW5kKG51bGwsdCkpO2Vsc2V7Y29uc3QgaT1JLnRvb2wudmFsdWUoKQo7UHJvbWlzZS5hbGwoW3MuZSgxMzQ5Mikscy5lKDQxODExKSxzLmUoMzIzODcpLHMuZSg3NzU4OCldKS50aGVuKHMuYmluZChzLDEyNDAxNikpLnRoZW4oKHM9PntjPW5ldyBzLkNoYXJ0RXZlbnRIaW50UmVuZGVyZXIobCksaT09PUkudG9vbC52YWx1ZSgpJiZjLnNob3coZSxmLmJpbmQobnVsbCx0KSl9KSl9fWZ1bmN0aW9uIHkoZSl7cmV0dXJuIUJvb2xlYW4obi5nZXRCb29sKGUpKX1mdW5jdGlvbiBmKGUpe24uc2V0VmFsdWUoZSwhMCx7Zm9yY2VGbHVzaDohMH0pLCgwLHIuZW5zdXJlTm90TnVsbCkoYykuZGVzdHJveSgpLG51bGwhPT1kJiZkKCksYz1udWxsfX12YXIgWj1zKDE3OTc3MSk7ZnVuY3Rpb24gZWUoZSx0KXtjb25zdCBpPVkudChudWxsLHZvaWQgMCxzKDIyMjkpKS5mb3JtYXQoe2Vtb2ppOiLwn5GNIn0pLG49WS50KG51bGwsdm9pZCAwLHMoMzg4NzcwKSkuZm9ybWF0KHtlbW9qaToi8J+RjSJ9KSxvPVkudChudWxsLHZvaWQgMCxzKDgzNDgyMikpLmZvcm1hdCh7ZW1vamk6IvCfkY0ifSk7Wi5vbigib25TZXJ2ZXJTY3JlZW5zaG90Q29waWVkVG9DbGlwYm9hcmQiLCgoKT0+dShpKSksbnVsbCksWi5vbigib25DbGllbnRTY3JlZW5zaG90Q29waWVkVG9DbGlwYm9hcmQiLCgoKT0+dShuKSksbnVsbCksWi5vbigib25TZXJ2ZXJTY3JlZW5zaG90RW1iZWRDb2RlQ29waWVkVG9DbGlwYm9hcmQiLCgoKT0+dShvKSksbnVsbCk7bGV0IGE9bnVsbDtjb25zdCBsPWUuZ2V0Q29udGFpbmVyKCk7ZnVuY3Rpb24gdShlKXthP2Euc2hvdyhlKTpQcm9taXNlLmFsbChbcy5lKDI5Mjk2KSxzLmUoNjAwNjIpLHMuZSg5NDA1NCkscy5lKDI0NjAzKSxzLmUoMzIzODcpLHMuZSg0MzE4MCldKS50aGVuKHMuYmluZChzLDQwMTY3MSkpLnRoZW4oKHM9PnthfHwoYT1uZXcgcy5DaGFydFNjcmVlbnNob3RIaW50UmVuZGVyZXIoKDAsci5lbnN1cmVOb3ROdWxsKShsKSx7Ym90dG9tUGFkZGluZzp0LnNlcmllc0NvbnRyb2xCYXJFbmFibGVkfSksYS5zaG93KGUpKX0pKX19dmFyIHRlPXMoNzA1MDEyKSxzZT1zKDUwODc0Nyk7Y2xhc3MgaWV7Y29uc3RydWN0b3IoZT1bXSl7dGhpcy5fbGlzdD17aWQ6IkRFRkFVTFRfU0lOR0xFX1dBVENITElTVCIsdHlwZToiY3VzdG9tIixuYW1lOmwudChudWxsLHZvaWQgMCxzKDM5Nzc4OCkpLGRlc2NyaXB0aW9uOm51bGwsc3ltYm9sczpbLi4uZV0sc2hhcmVkOiExLHBlcnNpc3RlZFN0YXRlOm51bGx9fWdldEN1c3RvbVdhdGNoTGlzdHMoKXtyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKFt0aGlzLl9saXN0XSl9Z2V0U3ltYm9scyhlKXtyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHRoaXMuX2xpc3Quc3ltYm9scyl9Y3JlYXRlV2F0Y2hMaXN0KGUpe3Rocm93IG5ldyBFcnJvcigibm90IGltcGxlbWVudGVkIil9cHV0V2F0Y2hMaXN0KGUpe3Rocm93IG5ldyBFcnJvcigibm90IGltcGxlbWVudGVkIil9cmVtb3ZlV2F0Y2hMaXN0KGUpe3Rocm93IG5ldyBFcnJvcigibm90IGltcGxlbWVudGVkIil9cmVuYW1lV2F0Y2hMaXN0KGUsdCl7cmV0dXJuIFByb21pc2UucmVzb2x2ZShudWxsKX1yZXBsYWNlU3ltYm9scyhlLHQpe3JldHVybiB0aGlzLl9saXN0LnN5bWJvbHM9Wy4uLnRdLFByb21pc2UucmVzb2x2ZSh0aGlzLl9saXN0LnN5bWJvbHMpfWFkZFN5bWJvbHMoZSx0KXtyZXR1cm4gdGhpcy5fbGlzdC5zeW1ib2xzLnB1c2goLi4udCksUHJvbWlzZS5yZXNvbHZlKHRoaXMuX2xpc3Quc3ltYm9scyl9cmVtb3ZlU3ltYm9scyhlLHQpe3JldHVybiB0aGlzLl9saXN0LnN5bWJvbHM9dGhpcy5fbGlzdC5zeW1ib2xzLmZpbHRlcigoZT0+IXQuaW5jbHVkZXMoZSkpKSxQcm9taXNlLnJlc29sdmUodGhpcy5fbGlzdC5zeW1ib2xzKX1zZXRBY3RpdmUoZSl7cmV0dXJuIFByb21pc2UucmVzb2x2ZSh0aGlzLl9saXN0KX1nZXRBY3RpdmUoKXtyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHRoaXMuX2xpc3QpfWNoYW5nZURlc2NyaXB0aW9uKGUsdCl7dGhyb3cgbmV3IEVycm9yKCJub3QgaW1wbGVtZW50ZWQiKX1nZXRDdXN0b21XYXRjaGxpc3QoZSl7dGhyb3cgbmV3IEVycm9yKCJub3QgaW1wbGVtZW50ZWQiKX1yZW5hbWVTZXBhcmF0b3IoZSx0LHMpe3JldHVybiBQcm9taXNlLnJlc29sdmUobnVsbCl9fXZhciBuZT1zKDE1MDE1MCkscmU9cyg5NDgzODApO2NvbnN0IG9lPW5ldyByZS5EZWxlZ2F0ZSxhZT1uZXcgcmUuRGVsZWdhdGUsbGU9bmV3IHJlLkRlbGVnYXRlLHVlPW5ldyByZS5EZWxlZ2F0ZSxjZT1uZXcgcmUuRGVsZWdhdGU7dmFyIGRlPXMoNTgwNTI2KSxoZT1zKDYyMTIwKTtjbGFzcyBwZXtjb25zdHJ1Y3RvcihlPVtdLHQ9bil7aWYodGhpcy5fbGlzdHM9e30sdGhpcy5fYWN0aXZlTGlzdFNldHRpbmdzS2V5PSJ3aWRnZXRiYXIud2lkZ2V0LndhdGNobGlzdCIsKDAsby5pc0ZlYXR1cmVzZXRFbmFibGVkKSgidHJhZGluZ190ZXJtaW5hbCIpJiYodGhpcy5fYWN0aXZlTGlzdFNldHRpbmdzS2V5Kz0idGVybWluYWwiKSx0aGlzLl9zZXR0aW5ncz10LHRoaXMuX3NldHRpbmdzLm9uU3luYy5zdWJzY3JpYmUodGhpcyx0aGlzLl91cGRhdGVMaXN0cyksdGhpcy5fdXBkYXRlTGlzdHMoKSwwPT09T2JqZWN0LmtleXModGhpcy5fbGlzdHMpLmxlbmd0aCl7Y29uc3QgdD10aGlzLl9jcmVhdGVMaXN0KHt0aXRsZTp0aGlzLl9waWNrVGl0bGUoKSxzeW1ib2xzOlsuLi5lXX0sITApO3RoaXMuc2V0QWN0aXZlKHtpZDp0LmlkLHR5cGU6ImN1c3RvbSJ9KX19ZGVzdHJveSgpe3RoaXMuX3NldHRpbmdzLm9uU3luYy51bnN1YnNjcmliZUFsbCh0aGlzKX1nZXRDdXN0b21XYXRjaExpc3RzKCl7dGhpcy5fdXBkYXRlTGlzdHMoKTtjb25zdCBlPVtdO3JldHVybiBPYmplY3Qua2V5cyh0aGlzLl9saXN0cykuZm9yRWFjaCgodD0+e2NvbnN0IHM9dGhpcy5fZ2V0TGlzdCh0KTtzJiZlLnB1c2godGhpcy5fdG9TeW1ib2xMaXN0KHMpKX0pKSxQcm9taXNlLnJlc29sdmUoZSl9Y3JlYXRlV2F0Y2hMaXN0KGUpe2NvbnN0IHQ9ISgwLG8uaXNGZWF0dXJlc2V0RW5hYmxlZCkoIndhdGNobGlzdF9jcm9zc190YWJfc3luYyIpLHM9dGhpcy5fY3JlYXRlTGlzdCh7aWQ6ZS5pZCx0aXRsZTplLm5hbWV8fHRoaXMuX3BpY2tUaXRsZSgpLApzeW1ib2xzOmUuc3ltYm9sc3x8W119LHQpO3JldHVybiBsZS5maXJlKHMuaWQsWy4uLnMuc3ltYm9sc10pLFByb21pc2UucmVzb2x2ZSh0aGlzLl90b1N5bWJvbExpc3QocykpfXB1dFdhdGNoTGlzdChlKXt0aGlzLl91cGRhdGVMaXN0cygpO2NvbnN0IHQ9dGhpcy5fZ2V0TGlzdChlLmlkKSxzPXQ/LnRpdGxlLGk9ZS5uYW1lLG49e2lkOmUuaWQsc3ltYm9sczooMCxkZS5yZW1vdGVTeW1ib2xzRm9ybUxvY2FsU3RhdGUpKGUuaWQsZS5zeW1ib2xzKSx0aXRsZTplLm5hbWV9O3JldHVybiB0aGlzLnNhdmVMaXN0KG4pLHZvaWQgMCE9PXMmJnMhPT1pJiZjZS5maXJlKGUuaWQscyxpKSxudWxsIT09dD9vZS5maXJlKGUuaWQpOmxlLmZpcmUoZS5pZCxlLnN5bWJvbHMpLFByb21pc2UucmVzb2x2ZSh0aGlzLl90b1N5bWJvbExpc3QobikpfXJlbW92ZVdhdGNoTGlzdChlKXtjb25zdHtpZDp0fT1lO3JldHVybiB0aGlzLl9zZXR0aW5ncy5yZW1vdmUoYHNhdmVkd2F0Y2guJHt0fWAse2ZvcmNlRmx1c2g6ITB9KSxkZWxldGUgdGhpcy5fbGlzdHNbdF0sdWUuZmlyZSh0KSxQcm9taXNlLnJlc29sdmUoKX1yZW5hbWVXYXRjaExpc3QoZSx0KXt0aGlzLl91cGRhdGVMaXN0cygpO2NvbnN0e25hbWU6c309ZTtlLm5hbWU9dDtjb25zdCBpPXRoaXMuX2dldExpc3QoZS5pZCk7cmV0dXJuIHRoaXMuc2F2ZUxpc3Qoe2lkOmUuaWQsc3ltYm9sczppP2kuc3ltYm9sczplLnN5bWJvbHMsdGl0bGU6dH0pLGNlLmZpcmUoZS5pZCxzLHQpLFByb21pc2UucmVzb2x2ZShudWxsKX1yZXBsYWNlU3ltYm9scyhlLHQpe2NvbnN0IHM9dGhpcy5fZ2V0TGlzdChlLmlkKTtyZXR1cm4gbnVsbD09PXN8fChzLnN5bWJvbHM9KDAsZGUucmVtb3RlU3ltYm9sc0Zvcm1Mb2NhbFN0YXRlKShlLmlkLHQpLGhlLnBlbmRpbmdPcGVuU2VwYXJhdG9ycy5kZWxldGUoZS5pZCksdGhpcy5zYXZlTGlzdChzKSxvZS5maXJlKGUuaWQpKSxQcm9taXNlLnJlc29sdmUobnVsbCl9YWRkU3ltYm9scyhlLHQpe2lmKGhlLnBlbmRpbmdPcGVuU2VwYXJhdG9ycy5oYXMoZS5pZCkpe2NvbnN0IHQ9KDAsZGUuZ2V0TG9jYWxMaXN0U3ltYm9scykoZS5pZCk7cmV0dXJuIHRoaXMucmVwbGFjZVN5bWJvbHMoZSx0KS50aGVuKCgoKT0+Wy4uLnRdKSl9Y29uc3Qgcz10aGlzLl9nZXRMaXN0KGUuaWQpO3JldHVybiBudWxsPT09cz9Qcm9taXNlLnJlc29sdmUoW10pOihzLnN5bWJvbHMucHVzaCguLi50KSx0aGlzLnNhdmVMaXN0KHMpLG9lLmZpcmUoZS5pZCksUHJvbWlzZS5yZXNvbHZlKFsuLi5zLnN5bWJvbHNdKSl9cmVtb3ZlU3ltYm9scyhlLHQpe2lmKGhlLnBlbmRpbmdPcGVuU2VwYXJhdG9ycy5oYXMoZS5pZCkpe2NvbnN0IHQ9KDAsZGUuZ2V0TG9jYWxMaXN0U3ltYm9scykoZS5pZCk7cmV0dXJuIHRoaXMucmVwbGFjZVN5bWJvbHMoZSx0KS50aGVuKCgoKT0+Wy4uLnRdKSl9Y29uc3Qgcz10aGlzLl9nZXRMaXN0KGUuaWQpO2lmKG51bGw9PT1zKXJldHVybiBQcm9taXNlLnJlc29sdmUoW10pO2NvbnN0IGk9bmV3IFNldCh0KTtyZXR1cm4gcy5zeW1ib2xzPXMuc3ltYm9scy5maWx0ZXIoKGU9PiFpLmhhcyhlKSYmIWkuaGFzKCgwLGRlLnNlcGFyYXRvclJlbW90ZVJlcHJlc2VudGF0aW9uKShlLCExKSkpKSx0aGlzLnNhdmVMaXN0KHMpLG9lLmZpcmUoZS5pZCksUHJvbWlzZS5yZXNvbHZlKFsuLi5zLnN5bWJvbHNdKX1zZXRBY3RpdmUoZSl7cmV0dXJuIHRoaXMuX3NldHRpbmdzLnNldFZhbHVlKHRoaXMuX2FjdGl2ZUxpc3RTZXR0aW5nc0tleSxlLmlkKSxhZS5maXJlKCksUHJvbWlzZS5yZXNvbHZlKG51bGwpfWdldEFjdGl2ZSgpe2NvbnN0IGU9dGhpcy5fZ2V0QWN0aXZlKCk7cmV0dXJuIFByb21pc2UucmVzb2x2ZSh0aGlzLl90b1N5bWJvbExpc3QoZSkpfWNoYW5nZURlc2NyaXB0aW9uKGUsdCl7dGhyb3cgbmV3IEVycm9yKCJub3QgaW1wbGVtZW50ZWQiKX1yZW5hbWVTZXBhcmF0b3IoZSx0LHMpe3RoaXMuX3VwZGF0ZUxpc3RzKCk7Y29uc3QgaT10aGlzLl9nZXRMaXN0KGUpO2lmKG51bGw9PT1pKXJldHVybiBQcm9taXNlLnJlc29sdmUobnVsbCk7Y29uc3R7b2xkU2VwYXJhdG9yOm4sbmV3U2VwYXJhdG9yOnJ9PSgwLGRlLnJlbW90ZVJlbmFtZVNlcGFyYXRvcnMpKGUsdCxzKSxvPWkuc3ltYm9scy5pbmRleE9mKG4pO3JldHVybi0xPT09b3x8KGkuc3ltYm9sc1tvXT1yLHRoaXMuc2F2ZUxpc3QoaSksb2UuZmlyZShlKSksUHJvbWlzZS5yZXNvbHZlKG51bGwpfXNhdmVMaXN0KGUsdD0hMSl7Y29uc3Qgcz17c3ltYm9sczplLnN5bWJvbHMsdGl0bGU6U3RyaW5nKGUudGl0bGUpfTt0aGlzLl9zZXR0aW5ncy5zZXRKU09OKGBzYXZlZHdhdGNoLiR7ZS5pZH1gLHMse2ZvcmNlRmx1c2g6ITAsc2tpcENyb3NzV2luZG93RXZlbnQ6dH0pLHRoaXMuX2xpc3RzW2UuaWRdPXN9Z2V0Q3VzdG9tV2F0Y2hsaXN0KGUpe3Rocm93IG5ldyBFcnJvcigibm90IGltcGxlbWVudGVkIil9X2NyZWF0ZUxpc3QoZSx0PSExKXtjb25zdCBzPXtpZDplLmlkPz8oMCxuZS5yYW5kb21IYXNoKSgpLHN5bWJvbHM6ZS5zeW1ib2xzLHRpdGxlOmUudGl0bGV9O3JldHVybiB0aGlzLnNhdmVMaXN0KHMsdCksc31fZ2V0TGlzdChlKXtpZih0aGlzLl91cGRhdGVMaXN0cygpLHRoaXMuX2xpc3RzLmhhc093blByb3BlcnR5KGUpKXtjb25zdCB0PXRoaXMuX2xpc3RzW2VdO3JldHVybntpZDplLHN5bWJvbHM6dC5zeW1ib2xzLnNsaWNlKCksdGl0bGU6dC50aXRsZX19cmV0dXJuIG51bGx9X3RvU3ltYm9sTGlzdChlKXtjb25zdHtzeW1ib2xzOnQsY29sbGFwc2VkU2VwYXJhdG9yczpzfT0oMCxkZS5sb2NhbENvbGxhcHNlU3RhdGVGcm9tUmVtb3RlU3ltYm9scykoZS5zeW1ib2xzKTtyZXR1cm57dHlwZToiY3VzdG9tIixpZDplLmlkLG5hbWU6ZS50aXRsZSxkZXNjcmlwdGlvbjpudWxsLHN5bWJvbHM6dCxzaGFyZWQ6ITEsY29sbGFwc2VkU2VwYXJhdG9yczpzLHBlcnNpc3RlZFN0YXRlOm51bGx9fV91cGRhdGVMaXN0cygpe3RoaXMuX2xpc3RzPXt9O3RoaXMuX3NldHRpbmdzLmtleXMoKS5mb3JFYWNoKChlPT57Y29uc3QgdD0vXnNhdmVkd2F0Y2hcLiguKikkLy5leGVjKGUpO2lmKCF0KXJldHVybgo7Y29uc3Qgcz10WzFdLGk9dGhpcy5fc2V0dGluZ3MuZ2V0SlNPTihlLG51bGwpO2kmJihpLnN5bWJvbHN8fChpLnN5bWJvbHM9W10pLHRoaXMuX2xpc3RzW3NdPWkpfSkpfV9nZXRBY3RpdmUoKXtjb25zdCBlPXRoaXMuX3NldHRpbmdzLmdldFZhbHVlKHRoaXMuX2FjdGl2ZUxpc3RTZXR0aW5nc0tleSksW3Qsc109T2JqZWN0LmVudHJpZXModGhpcy5fbGlzdHMpWzBdLGk9e2lkOnQsLi4uc307cmV0dXJuIHZvaWQgMCE9PWUmJnRoaXMuX2dldExpc3QoZSl8fGl9X3BpY2tUaXRsZSgpe3RoaXMuX3VwZGF0ZUxpc3RzKCk7Y29uc3QgZT1PYmplY3Qua2V5cyh0aGlzLl9saXN0cykubWFwKChlPT50aGlzLl9saXN0c1tlXS50aXRsZSkpO2ZvcihsZXQgdD0xOzt0Kyspe2NvbnN0IGk9bC50KG51bGwsdm9pZCAwLHMoMzk3Nzg4KSkrKHQ+MT9gICgke3R9KWA6IiIpO2lmKC0xPT09ZS5pbmRleE9mKGkpKXJldHVybiBpfX19dmFyIG1lPXMoOTU4NTAwKTtjbGFzcyBfZXtjb25zdHJ1Y3RvcihlKXt0aGlzLl9kb2N1bWVudD1lLHRoaXMuaXNGdWxsc2NyZWVuPW5ldyBQLldhdGNoZWRWYWx1ZTtjb25zdCB0PSgpPT57Y29uc3QgZT1bImZ1bGxzY3JlZW5FbGVtZW50Iiwid2Via2l0RnVsbHNjcmVlbkVsZW1lbnQiLCJtb3pGdWxsc2NyZWVuRWxlbWVudCIsIm1vekZ1bGxTY3JlZW5FbGVtZW50IiwibXNGdWxsc2NyZWVuRWxlbWVudCJdO2ZvcihsZXQgdD0wO3Q8ZS5sZW5ndGg7dCsrKXtjb25zdCBzPWVbdF07aWYocyBpbiB0aGlzLl9kb2N1bWVudCl7dGhpcy5pc0Z1bGxzY3JlZW4uc2V0VmFsdWUoISF0aGlzLl9kb2N1bWVudFtzXSk7YnJlYWt9fX07dCgpO2Zvcihjb25zdCBzIG9mWyJmdWxsc2NyZWVuY2hhbmdlIiwid2Via2l0ZnVsbHNjcmVlbmNoYW5nZSIsIm1vemZ1bGxzY3JlZW5jaGFuZ2UiLCJNU0Z1bGxzY3JlZW5DaGFuZ2UiXSllLmFkZEV2ZW50TGlzdGVuZXIocyx0LCExKX1lbnRlcigpe2NvbnN0IGU9dGhpcy5fZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50O2Zvcihjb25zdCB0IG9mWyJyZXF1ZXN0RnVsbHNjcmVlbiIsIm1velJlcXVlc3RGdWxsU2NyZWVuIiwid2Via2l0UmVxdWVzdEZ1bGxzY3JlZW4iLCJtc1JlcXVlc3RGdWxsc2NyZWVuIl0paWYoImZ1bmN0aW9uIj09dHlwZW9mIGVbdF0pe2VbdF0oKTticmVha310aGlzLmlzRnVsbHNjcmVlbi5zZXRWYWx1ZSghMCl9ZXhpdCgpe2NvbnN0IGU9dGhpcy5fZG9jdW1lbnQ7Zm9yKGNvbnN0IHQgb2ZbImV4aXRGdWxsc2NyZWVuIiwibW96Q2FuY2VsRnVsbFNjcmVlbiIsIm1vekV4aXRGdWxsc2NyZWVuIiwid2Via2l0RXhpdEZ1bGxzY3JlZW4iLCJtc0V4aXRGdWxsc2NyZWVuIl0paWYoImZ1bmN0aW9uIj09dHlwZW9mIGVbdF0pe2VbdF0oKTticmVha310aGlzLmlzRnVsbHNjcmVlbi5zZXRWYWx1ZSghMSl9fWNsYXNzIGdle2NvbnN0cnVjdG9yKGUpe3RoaXMuaXNGdWxsc2NyZWVuPW5ldyBQLldhdGNoZWRWYWx1ZSx0aGlzLl9oYW5kbGVFeGl0PWU9PnsyNyE9PSgwLEouaGFzaEZyb21FdmVudCkoZSl8fGUuZGVmYXVsdFByZXZlbnRlZHx8KGUucHJldmVudERlZmF1bHQoKSx0aGlzLmV4aXQoKSl9LHRoaXMuX2VsZW1lbnQ9ZX1lbnRlcigpe3RoaXMuaXNGdWxsc2NyZWVuLnNldFZhbHVlKCEwKSxaLmVtaXQoIm9uSW50ZXJuYWxGdWxsc2NyZWVuU2hvdyIpLHRoaXMuX2VsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsdGhpcy5faGFuZGxlRXhpdCl9ZXhpdCgpe3RoaXMuaXNGdWxsc2NyZWVuLnNldFZhbHVlKCExKSxaLmVtaXQoIm9uSW50ZXJuYWxGdWxsc2NyZWVuSGlkZSIpLHRoaXMuX2VsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsdGhpcy5faGFuZGxlRXhpdCl9fXZhciB5ZSxmZT1zKDMxNzQ2MiksdmU9cygxMTczMTMpOyFmdW5jdGlvbihlKXtlLlF1aXJrcz0icXVpcmtzIixlLlZpc3VhbD0idmlzdWFsIn0oeWV8fCh5ZT17fSkpO2Z1bmN0aW9uIGJlKGUsdCl7bGV0IHM9MDtmb3IoY29uc3R7bWluOmksbWF4Om59b2YgdCl7aWYoZTxpfHxuPGkpY29udGludWU7Y29uc3QgdD1NYXRoLm1pbihlLG4pO2lmKHM9TWF0aC5tYXgocyx0KSxlPT09cylicmVha31yZXR1cm4gc31mdW5jdGlvbiBTZShlKXtjb25zdCB0PVtdO2lmKHZvaWQgMD09PWUpcmV0dXJuW107QXJyYXkuaXNBcnJheShlKXx8KGU9W2VdKTtmb3IoY29uc3QgcyBvZiBlKXtsZXQgZSxpO2lzRmluaXRlKHMpP2U9aT1OdW1iZXIocyk6KGU9K3MubWluLGk9K3MubWF4KSwoZTwwfHxpc05hTihlKSkmJihlPTApLGlzTmFOKGkpJiYoaT0xLzApLGU8PWkmJmk+MCYmdC5wdXNoKHttaW46ZSxtYXg6aX0pfXJldHVybiB0LnNvcnQoKChlLHQpPT5lLm1pbi10Lm1pbnx8ZS5tYXgtdC5tYXgpKSx0fWZ1bmN0aW9uIHdlKGUsdCl7aWYoZS5sZW5ndGghPT10Lmxlbmd0aClyZXR1cm4hMTtmb3IobGV0IHM9ZS5sZW5ndGg7cy0tOyl7aWYoZVtzXS5taW4hPT10W3NdLm1pbilyZXR1cm4hMTtpZihlW3NdLm1heCE9PXRbc10ubWF4KXJldHVybiExfXJldHVybiEwfXZhciBQZT1zKDY1NzI0NSk7Y29uc3QgVGU9KDAsby5pc0ZlYXR1cmVzZXRFbmFibGVkKSgibm9fbWluX2NoYXJ0X3dpZHRoIik7dmFyIENlOyFmdW5jdGlvbihlKXtlW2UuTWluQ2hhcnRIZWlnaHQ9MzAwXT0iTWluQ2hhcnRIZWlnaHQiLGVbZS5NaW5DaGFydFdpZHRoPTMwMF09Ik1pbkNoYXJ0V2lkdGgiLGVbZS5EZWZhdWx0T2Zmc2V0PTRdPSJEZWZhdWx0T2Zmc2V0IixlW2UuVGhpbk9mZnNldD0xXT0iVGhpbk9mZnNldCIsZVtlLlRvcFRvb2xiYXJNYXJnaW49MF09IlRvcFRvb2xiYXJNYXJnaW4ifShDZXx8KENlPXt9KSk7Y29uc3QgRWU9KDAsby5pc0ZlYXR1cmVzZXRFbmFibGVkKSgiYnlwYXNzX2NoYXJ0X2hlaWdodF9jaGVjayIpO2Z1bmN0aW9uIEllKGUpe2NvbnN0IHQ9KDAsby5pc0ZlYXR1cmVzZXRFbmFibGVkKSgic2lkZV90b29sYmFyX2luX2Z1bGxzY3JlZW5fbW9kZSIpLHM9KDAsby5pc0ZlYXR1cmVzZXRFbmFibGVkKSgiaGVhZGVyX2luX2Z1bGxzY3JlZW5fbW9kZSIpO3JldHVybiJjZW50ZXIiPT09ZXx8ImxlZnQiPT09ZSYmdHx8InRvcCI9PT1lJiZzfHwiYW5hbHlzaXMiPT09ZX0KY29uc3QgTGU9Wy4uLnoobnVsbCwzKV07TGUuc3BsaWNlKDcsMCxCLnRpbWVGcmFtZXNbIjI0bSJdKTt2YXIgTWU9cyg2MzI0NDQpLERlPXMoMjI3ODI1KSx4ZT1zKDYzOTExMyk7Y29uc3QgUmU9e3doaXRlbGFiZWw6ITAscGVybWlzc2lvbk92ZXJyaWRlczohMCxsaW5rQ2FwdHVyaW5nQWxsb3dlZDohMCxzeW1ib2xfc2VhcmNoX2RlZmF1bHRfZXhjaGFuZ2U6ITAsc3ltYm9sX3NlYXJjaF9hbGxvd2VkX2V4Y2hhbmdlczohMH07dmFyIGtlPXMoNDMzNzM1KSxWZT1zKDQwMDE4MSk7dmFyIEFlPXMoODkwODM1KSxGZT1zKDk1MjkwMCksQmU9cyg3ODQ1MTMpO2NsYXNzIE9le2NvbnN0cnVjdG9yKGUsdCl7dGhpcy5fdmlld3M9bmV3IE1hcCx0aGlzLl92aWV3UmVxdWVzdElkPW51bGwsdGhpcy5fZ2V0Q29udGV4dD1lLHRoaXMuX29uVmlld0NoYW5nZWQ9dH1oYXNWaWV3KGUpe3JldHVybiB0aGlzLl92aWV3cy5oYXMoZSl9cmVnaXN0ZXJWaWV3KGUsdCl7dGhpcy5fdmlld3Muc2V0KGUsdCl9c2hvd1ZpZXcoZSx0KXtpZihudWxsPT09ZSlyZXR1cm4gdm9pZCB0aGlzLl9vblZpZXdDaGFuZ2VkKG51bGwpOygwLHIuYXNzZXJ0KSh0aGlzLmhhc1ZpZXcoZSksYEFuYWx5c2lzIHZpZXcgd2l0aCBhIG5hbWUgIiR7ZX0iIGlzIG5vdCByZWdpc3RlcmVkIWApO2NvbnN0IHM9dGhpcy5fdmlld1JlcXVlc3RJZD0oMCxuZS5yYW5kb21IYXNoKSgpOygwLHIuZW5zdXJlKSh0aGlzLl92aWV3cy5nZXQoZSkpKHQpLnRoZW4oKHQ9PntpZih0aGlzLl92aWV3UmVxdWVzdElkIT09cylyZXR1cm47Y29uc3QgaT10aGlzLl9nZXRDb250ZXh0KGUpO3Quc2V0Q29udGV4dChpKSx0aGlzLl9vblZpZXdDaGFuZ2VkKGUpLHQuc2V0Q2xvc2VBY3Rpb24oKCgpPT57dGhpcy5fb25WaWV3Q2hhbmdlZChudWxsKX0pKSx0LnNob3coKX0pKX19dmFyIE5lPXMoMjk2MjYyKTtjbGFzcyBXZSBleHRlbmRzIE5lLkRpYWxvZ1JlbmRlcmVye2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLl9kaWFsb2c9bnVsbCx0aGlzLl9yZXF1ZXN0SWQ9bnVsbCx0aGlzLl9zdWJzY3JpYmU9ZT0+e3RoaXMuX3NldFZpc2liaWxpdHkoZSl9fWFzeW5jIHNob3coZSl7Y29uc3QgdD10aGlzLl9yZXF1ZXN0SWQ9KDAsbmUucmFuZG9tSGFzaCkoKSxzPWF3YWl0IHRoaXMucHJlcGFyZShlKTt0PT09dGhpcy5fcmVxdWVzdElkJiZzLnNob3coKX1oaWRlKCl7dGhpcy5fZGlhbG9nPy5oaWRlKCl9cHJlcGFyZShlKXtyZXR1cm4gdGhpcy5fbG9hZChlKX1hc3luYyBfbG9hZChlKXtjb25zdCB0PWF3YWl0IHRoaXMuX3JlbmRlcmVyKCk7cmV0dXJuIHRoaXMuX2RpYWxvZz8uaGlkZSgpLHRoaXMuX2RpYWxvZz8udmlzaWJsZSgpLnVuc3Vic2NyaWJlKHRoaXMuX3N1YnNjcmliZSksdGhpcy5fZGlhbG9nPW5ldyB0KGUpLHRoaXMuX2RpYWxvZy52aXNpYmxlKCkuc3Vic2NyaWJlKHRoaXMuX3N1YnNjcmliZSksdGhpcy5fZGlhbG9nfX1sZXQgVWU7Y2xhc3MgemUgZXh0ZW5kcyBXZXtzdGF0aWMgZ2V0SW5zdGFuY2UoKXtyZXR1cm4gVWU/Pz1uZXcgemUsVWV9YXN5bmMgX3JlbmRlcmVyKCl7Y29uc3R7Q2hhcnRUYWJsZVZpZXdEaWFsb2dSZW5kZXJlcjplfT1hd2FpdCBQcm9taXNlLmFsbChbcy5lKDIwMzM3KSxzLmUoMjkyOTYpLHMuZSg2MDA2Mikscy5lKDQ2OTA3KSxzLmUoMjAzNTQpLHMuZSgxMjM4NSkscy5lKDk0OTQ4KSxzLmUoMzYyMjIpLHMuZSgyOTUzNikscy5lKDMyODE2KSxzLmUoNTE4NCkscy5lKDU2MjUyKSxzLmUoMTE0NjEpLHMuZSgyNDU4MSkscy5lKDk2NTg3KSxzLmUoMjc1MTcpLHMuZSg5ODA4NCkscy5lKDcwODE1KSxzLmUoNTAyMjEpLHMuZSgzMzUxNSkscy5lKDE0NjI1KSxzLmUoOTM0MTYpLHMuZSg2NTcpLHMuZSg2MDcwKSxzLmUoNzY2NSkscy5lKDUyOTIwKSxzLmUoNjI2MDApLHMuZSg3NTIxNykscy5lKDk4Njk2KSxzLmUoNzQ2MzYpLHMuZSg3MTk5MSkscy5lKDQ5OTk3KSxzLmUoMzIzODcpLHMuZSgyMzc0Mykscy5lKDY2MjM1KSxzLmUoMzY5MzgpLHMuZSg2NzkzMCkscy5lKDQ2NjUwKV0pLnRoZW4ocy5iaW5kKHMsNDA2MTgzKSk7cmV0dXJuIGV9fXZhciBIZT1zKDMwODM4OCksamU9cyg3MzEwOTEpLCRlPXMoMzUzODEpO2xldCBxZSxLZSxZZSxHZSxKZSxYZSxRZTtjbGFzcyBaZSBleHRlbmRzIFdle2FzeW5jIHByZXBhcmUoZSl7Y29uc3QgdD1lPy5zeW1ib2w/ZS5zeW1ib2w6cC5saW5raW5nLnByb1N5bWJvbC52YWx1ZSgpO2lmKGU/LnNuYXBzaG90KXtjb25zdHtzbmFwc2hvdDpzfT1lO3JldHVybiBzdXBlci5wcmVwYXJlKHsuLi5lLHN5bWJvbDp0LC4uLnMsZXhjaGFuZ2U6cy5saXN0ZWRfZXhjaGFuZ2V9KX17Y29uc3QgaT1hc3luYygpPT57Y29uc3R7c25hcHNob3RlcjplfT1hd2FpdCBzLmUoNzExODUpLnRoZW4ocy5iaW5kKHMsMzIwNTUpKTtyZXR1cm4gZSgpLmdldFNuYXBzaG90KHQsbmV3IFNldCgkZS5URUNITklDQUxTX1FTX0ZJRUxEUykpfSxbLG5dPWF3YWl0IFByb21pc2UuYWxsKFt0aGlzLl9yZW5kZXJlcigpLGkoKV0pO3JldHVybiJlcnJvciI9PT1uLnN0YXR1cz9zdXBlci5wcmVwYXJlKHsuLi5lLHN5bWJvbDp0fSk6c3VwZXIucHJlcGFyZSh7Li4uZSxzeW1ib2w6dCwuLi5uLnZhbHVlcyxleGNoYW5nZTpuLnZhbHVlcy5saXN0ZWRfZXhjaGFuZ2V9KX19YXN5bmMgY2FuQmVTaG93bihlKXtjb25zdCB0PWV8fHAubGlua2luZy5wcm9TeW1ib2wudmFsdWUoKTtpZighdClyZXR1cm4hMTtjb25zdCBpPW5ldyBTZXQoWy4uLiRlLlRFQ0hOSUNBTFNfUVNfRklFTERTLCJkZXNjcmlwdGlvbiJdKSxuPWF3YWl0KGFzeW5jKCk9Pntjb25zdHtzbmFwc2hvdGVyOmV9PWF3YWl0IHMuZSg3NDM0MSkudGhlbihzLmJpbmQocywzMjA1NSkpO3JldHVybiBlKCkuZ2V0U25hcHNob3QodCxpKX0pKCk7aWYoImVycm9yIj09PW4uc3RhdHVzKXJldHVybiExO2NvbnN0e3ZhbHVlczp7dHlwZTpyLGxpc3RlZF9leGNoYW5nZTpvLGRlc2NyaXB0aW9uOmF9fT1uO2lmKCFqZS5TWU1CT0xfVFlQRV9CTEFDS19MSVNULmhhcyhyKSl0cnl7Y29uc3QgZT1hd2FpdCgwLApIZS5nZXRTeW1ib2xEYXRhKShudWxsLHQsWyJSZWNvbW1lbmQuQWxsIl0pO3JldHVybiBCb29sZWFuKGUmJjAhPT1PYmplY3Qua2V5cyhlKS5sZW5ndGgmJmEmJm8mJnIpfWNhdGNoKGUpe3JldHVybiExfXJldHVybiExfXN0YXRpYyBnZXRJbnN0YW5jZSgpe3JldHVybiBxZXx8KHFlPW5ldyBaZSkscWV9YXN5bmMgX3JlbmRlcmVyKCl7Y29uc3R7VGVjaG5pY2Fsc0RpYWxvZ1JlbmRlcmVyOmV9PWF3YWl0IFByb21pc2UuYWxsKFtzLmUoNDAxNTcpLHMuZSg4NDMwNikscy5lKDI5Mjk2KSxzLmUoNjAwNjIpLHMuZSg0NjkwNykscy5lKDEyMzg1KSxzLmUoODEwNzIpLHMuZSgyMzYyNCkscy5lKDI5NTM2KSxzLmUoMzI4MTYpLHMuZSgyNzUxNykscy5lKDk1MDQpLHMuZSg5ODA4NCkscy5lKDQ3NjMyKSxzLmUoNTAyMjEpLHMuZSgzMzUxNSkscy5lKDE0NjI1KSxzLmUoNjU3KSxzLmUoOTE4NTUpLHMuZSg2MDcwKSxzLmUoNTgwNTEpLHMuZSgzNzc2Nykscy5lKDI2MTAwKSxzLmUoOWUzKSxzLmUoMzY5ODYpLHMuZSgyNzA4NSkscy5lKDg2MDg3KSxzLmUoMzIzODcpLHMuZSg0MjI4OCkscy5lKDY2MjM1KSxzLmUoNzQ5NjIpXSkudGhlbihzLmJpbmQocywxOTUwNTApKTtyZXR1cm4gZX19Y2xhc3MgZXQgZXh0ZW5kcyBXZXtzdGF0aWMgZ2V0SW5zdGFuY2UoKXtyZXR1cm4gS2V8fChLZT1uZXcgZXQpLEtlfWFzeW5jIF9yZW5kZXJlcigpe2NvbnN0e0ZpbmFuY2lhbHNEaWFsb2dSZW5kZXJlcjplfT1hd2FpdCBQcm9taXNlLmFsbChbcy5lKDU0ODYpLHMuZSg4NDMwNikscy5lKDI5Mjk2KSxzLmUoNTIzOTYpLHMuZSg2MDA2Mikscy5lKDQ2OTA3KSxzLmUoMjAzNTQpLHMuZSgxMzQ5Mikscy5lKDM3NzQ2KSxzLmUoMTIzODUpLHMuZSg4MTA3Mikscy5lKDIzNjI0KSxzLmUoMzYyMjIpLHMuZSgyOTUzNikscy5lKDk0MjMyKSxzLmUoMzI4MTYpLHMuZSg1MTg0KSxzLmUoNTYyNTIpLHMuZSg4MzQ4OCkscy5lKDE5NTk1KSxzLmUoMTk3ODcpLHMuZSg2Nzc5OSkscy5lKDExNDYxKSxzLmUoOTY1ODcpLHMuZSgxMTIxOCkscy5lKDI3NTE3KSxzLmUoMzc1MTMpLHMuZSg4NTc5KSxzLmUoOTUwNCkscy5lKDcyNjY2KSxzLmUoOTgwODQpLHMuZSg0OTU4OCkscy5lKDEwMzg1KSxzLmUoNTIwNjUpLHMuZSg0NzYzMikscy5lKDY2MDUpLHMuZSg1MDIyMSkscy5lKDMzNTE1KSxzLmUoMTQ2MjUpLHMuZSg3MTQxNCkscy5lKDY1Nykscy5lKDU3MzAwKSxzLmUoOTE4NTUpLHMuZSgzMjE3Nikscy5lKDQzNjQ0KSxzLmUoNjA3MCkscy5lKDk3NDQpLHMuZSg1ODA1MSkscy5lKDE5NTEzKSxzLmUoODg2NDEpLHMuZSg0MDg2Nykscy5lKDUwODAwKSxzLmUoNzY2NSkscy5lKDI3MzM3KSxzLmUoMzAzNzMpLHMuZSgyMTU4MSkscy5lKDIwMjcxKSxzLmUoMTg0NDIpLHMuZSg0NzA5Mikscy5lKDc2MzI5KSxzLmUoMzkxNikscy5lKDY4OTY0KSxzLmUoMjEyNDUpLHMuZSg1Njg5KSxzLmUoMjU1NjIpLHMuZSgyOTM0OCkscy5lKDg4Mzg1KSxzLmUoMTc4NjUpLHMuZSgyODkzNikscy5lKDE4Njc0KSxzLmUoMTI1MjcpLHMuZSgyNTExKSxzLmUoODA3NjEpLHMuZSgxNTM4Mykscy5lKDQwOTAyKSxzLmUoMTI0MTIpLHMuZSgzMjM4Nykscy5lKDQ0NzgwKSxzLmUoMjM3NDMpLHMuZSg0MjI4OCkscy5lKDY2MjM1KSxzLmUoNzc1NzgpLHMuZSg4MzkzNSkscy5lKDM5NjA2KSxzLmUoMjg4NjQpLHMuZSgzNzI1OSkscy5lKDE5MjYxKSxzLmUoMjU0ODIpLHMuZSg3NjI3NCldKS50aGVuKHMuYmluZChzLDI4ODUyMikpO3JldHVybiBlfX1jbGFzcyB0dCBleHRlbmRzIFdle3N0YXRpYyBnZXRJbnN0YW5jZSgpe3JldHVybiBZZXx8KFllPW5ldyB0dCksWWV9YXN5bmMgX3JlbmRlcmVyKCl7Y29uc3R7U2Vhc29uYWxzRGlhbG9nUmVuZGVyZXI6ZX09YXdhaXQgUHJvbWlzZS5hbGwoW3MuZSg2MTk1MCkscy5lKDI5Mjk2KSxzLmUoNjAwNjIpLHMuZSg0NjkwNykscy5lKDIwMzU0KSxzLmUoMTIzODUpLHMuZSg5NDk0OCkscy5lKDM2MjIyKSxzLmUoMjk1MzYpLHMuZSgzMjgxNikscy5lKDU2MjUyKSxzLmUoODM0ODgpLHMuZSg2Nzc5OSkscy5lKDExNDYxKSxzLmUoOTY1ODcpLHMuZSgxMTIxOCkscy5lKDI3NTE3KSxzLmUoODY0MjMpLHMuZSgzNzUxMykscy5lKDQwODM1KSxzLmUoOTgwODQpLHMuZSg5MzQyMSkscy5lKDc4NjUyKSxzLmUoNDk1ODgpLHMuZSg1MDIyMSkscy5lKDMzNTE1KSxzLmUoMTQ2MjUpLHMuZSg2NTcpLHMuZSgzNTc5NCkscy5lKDQzNjQ0KSxzLmUoNjA3MCkscy5lKDk3NjYwKSxzLmUoMjE1ODEpLHMuZSgxODQ0Mikscy5lKDU2MDMpLHMuZSgxNDY0MCkscy5lKDYxNDEzKSxzLmUoMTYzOTkpLHMuZSg0NTI0Mikscy5lKDU5ODMwKSxzLmUoODQyMjQpLHMuZSg0MzkxOSkscy5lKDMyMzg3KSxzLmUoNzgzMTIpLHMuZSg0NDc4MCkscy5lKDIzNzQzKSxzLmUoNjYyMzUpLHMuZSg4MzE1NCkscy5lKDcwOTU3KSxzLmUoMzg0NDkpXSkudGhlbihzLmJpbmQocyw5NDc3OTMpKTtyZXR1cm4gZX19Y2xhc3Mgc3QgZXh0ZW5kcyBXZXtzdGF0aWMgZ2V0SW5zdGFuY2UoKXtyZXR1cm4gR2V8fChHZT1uZXcgc3QpLEdlfWFzeW5jIF9yZW5kZXJlcigpewpjb25zdHtBbmFseXNpc0RpYWxvZ1JlbmRlcmVyOmV9PWF3YWl0IFByb21pc2UuYWxsKFtzLmUoMTQ5MjYpLHMuZSg4NDMwNikscy5lKDI5Mjk2KSxzLmUoNjAwNjIpLHMuZSg0NjkwNykscy5lKDIwMzU0KSxzLmUoMTIzODUpLHMuZSg4MTA3Mikscy5lKDIzNjI0KSxzLmUoMzYyMjIpLHMuZSgyOTUzNikscy5lKDMyODE2KSxzLmUoNTE4NCkscy5lKDU2MjUyKSxzLmUoODM0ODgpLHMuZSgxOTU5NSkscy5lKDE5Nzg3KSxzLmUoNjc3OTkpLHMuZSgxMTQ2MSkscy5lKDk2NTg3KSxzLmUoMTEyMTgpLHMuZSgyNzUxNykscy5lKDM3NTEzKSxzLmUoODU3OSkscy5lKDk1MDQpLHMuZSg5ODA4NCkscy5lKDQ5NTg4KSxzLmUoNDc2MzIpLHMuZSg1MDIyMSkscy5lKDMzNTE1KSxzLmUoMTQ2MjUpLHMuZSg3MTQxNCkscy5lKDY1Nykscy5lKDMyNzQ4KSxzLmUoOTE4NTUpLHMuZSgzMjE3Nikscy5lKDQzNjQ0KSxzLmUoNjA3MCkscy5lKDk3NDQpLHMuZSg1ODA1MSkscy5lKDE5NTEzKSxzLmUoMzAzNzMpLHMuZSgyMTU4MSkscy5lKDIwMjcxKSxzLmUoNDcwOTIpLHMuZSg1NjAzKSxzLmUoNzYzMjkpLHMuZSgzOTE2KSxzLmUoMjEyNDUpLHMuZSgyNTU2Mikscy5lKDgwNzgyKSxzLmUoNTcyNTQpLHMuZSgxNjM5OSkscy5lKDI5MzQ4KSxzLmUoNzM4Nykscy5lKDg4Mzg1KSxzLmUoMTc4NjUpLHMuZSg0NzAyMSkscy5lKDYzMDMzKSxzLmUoMTg2NzQpLHMuZSgxMjUyNykscy5lKDYzNzIzKSxzLmUoMTQ2OTcpLHMuZSg1MDc0Mykscy5lKDcwMjU1KSxzLmUoODE4MTgpLHMuZSg0MDkwMikscy5lKDc4MTgyKSxzLmUoMzIzODcpLHMuZSg3ODMxMikscy5lKDQ0NzgwKSxzLmUoMjM3NDMpLHMuZSg0MjI4OCkscy5lKDY2MjM1KSxzLmUoNzc1NzgpLHMuZSg4MzE1NCkscy5lKDgzOTM1KSxzLmUoMzk2MDYpLHMuZSgzNzEwNikscy5lKDI4ODY0KSxzLmUoMTkyNjEpLHMuZSg3Njc1NSkscy5lKDk5OTM2KSxzLmUoMTUxNjApXSkudGhlbihzLmJpbmQocyw5MTE3MykpO3JldHVybiBlfX1jbGFzcyBpdCBleHRlbmRzIFdle2FzeW5jIGNhbkJlU2hvd24oZSl7Y29uc3QgdD1lfHxwLmxpbmtpbmcucHJvU3ltYm9sLnZhbHVlKCksaT1uZXcgU2V0KFsicmVjb21tZW5kYXRpb25fbWFyayIsInByb19uYW1lIl0pLG49YXdhaXQoYXN5bmMoKT0+e2NvbnN0e3NuYXBzaG90ZXI6ZX09YXdhaXQgcy5lKDY1NjQ2KS50aGVuKHMuYmluZChzLDgwNDI4OCkpO3JldHVybiBlKCkuZ2V0U25hcHNob3QodCxpKX0pKCk7cmV0dXJuISgiZXJyb3IiPT09bi5zdGF0dXN8fCFuLnZhbHVlcy5yZWNvbW1lbmRhdGlvbl9tYXJrKX1zdGF0aWMgZ2V0SW5zdGFuY2UoKXtyZXR1cm4gSmV8fChKZT1uZXcgaXQpLEplfWFzeW5jIF9yZW5kZXJlcigpe2NvbnN0e0ZvcmVjYXN0RGlhbG9nUmVuZGVyZXI6ZX09YXdhaXQgUHJvbWlzZS5hbGwoW3MuZSg5ODM4Mykscy5lKDg0MzA2KSxzLmUoMjkyOTYpLHMuZSg2MDA2Mikscy5lKDQ2OTA3KSxzLmUoMTIzODUpLHMuZSg4MTA3Mikscy5lKDIzNjI0KSxzLmUoMzYyMjIpLHMuZSgyOTUzNikscy5lKDMyODE2KSxzLmUoNTE4NCkscy5lKDgzNDg4KSxzLmUoMTk1OTUpLHMuZSgxOTc4Nykscy5lKDExMjE4KSxzLmUoMjc1MTcpLHMuZSg4NTc5KSxzLmUoOTUwNCkscy5lKDk4MDg0KSxzLmUoNDk1ODgpLHMuZSg0NzYzMikscy5lKDUwMjIxKSxzLmUoMzM1MTUpLHMuZSg0MzMyNSkscy5lKDE0NjI1KSxzLmUoNzE0MTQpLHMuZSg2NTcpLHMuZSgzMjE3Nikscy5lKDYwNzApLHMuZSg5NzQ0KSxzLmUoMzc3NjcpLHMuZSgxOTUxMykscy5lKDMwMzczKSxzLmUoMTg0NDIpLHMuZSg0NzA5Mikscy5lKDM5MTYpLHMuZSgyMTI0NSkscy5lKDI1NTYyKSxzLmUoMjYxMDApLHMuZSg5ZTMpLHMuZSgxNzg2NSkscy5lKDE4Njc0KSxzLmUoNzM5NjApLHMuZSg4MDc2MSkscy5lKDg3NzIxKSxzLmUoMzIzODcpLHMuZSg0NDc4MCkscy5lKDQyMjg4KSxzLmUoNjYyMzUpLHMuZSg3NzU3OCkscy5lKDgzOTM1KSxzLmUoMzk2MDYpLHMuZSgyODg2NCkscy5lKDI1NDgyKSxzLmUoNzQ1MjMpXSkudGhlbihzLmJpbmQocyw3NTMxMjgpKTtyZXR1cm4gZX19Y2xhc3MgbnQgZXh0ZW5kcyBXZXtzdGF0aWMgZ2V0SW5zdGFuY2UoKXtyZXR1cm4gWGV8fChYZT1uZXcgbnQpLFhlfWFzeW5jIF9yZW5kZXJlcigpe2NvbnN0e0Rlcml2YXRpdmVzRGlhbG9nUmVuZGVyZXI6ZX09YXdhaXQgUHJvbWlzZS5hbGwoW3MuZSgzMzE3Nikscy5lKDI5Mjk2KSxzLmUoNjAwNjIpLHMuZSg0NjkwNykscy5lKDEyMzg1KSxzLmUoOTQ5NDgpLHMuZSgzNjIyMikscy5lKDI5NTM2KSxzLmUoMzI4MTYpLHMuZSg1NjI1Mikscy5lKDgzNDg4KSxzLmUoMjQ1ODEpLHMuZSgxMTIxOCkscy5lKDI3NTE3KSxzLmUoOTgwODQpLHMuZSg0OTU4OCkscy5lKDUwMjIxKSxzLmUoMzM1MTUpLHMuZSgxNDYyNSkscy5lKDY1Nykscy5lKDMyNzQ4KSxzLmUoMTY3Nikscy5lKDQzNjQ0KSxzLmUoNjA3MCkscy5lKDMwMzczKSxzLmUoMjE1ODEpLHMuZSg1NjAzKSxzLmUoMjEyNDUpLHMuZSg1Njg5KSxzLmUoODA3ODIpLHMuZSg1NzI1NCkscy5lKDczODcpLHMuZSgxMjUyNykscy5lKDUwNzQzKSxzLmUoOTYzNTIpLHMuZSgxNTM4Mykscy5lKDU4MDQzKSxzLmUoMzIzODcpLHMuZSg3ODMxMikscy5lKDY2MjM1KSxzLmUoODMxNTQpLHMuZSg3Njc1NSkscy5lKDk0ODIyKV0pLnRoZW4ocy5iaW5kKHMsNzE4NzY0KSk7cmV0dXJuIGV9fWNsYXNzIHJ0IGV4dGVuZHMgV2V7c3RhdGljIGdldEluc3RhbmNlKCl7cmV0dXJuIFFlfHwoUWU9bmV3IHJ0KSxRZX1hc3luYyBfcmVuZGVyZXIoKXsKY29uc3R7T3B0aW9uc0RpYWxvZ1JlbmRlcmVyOmV9PWF3YWl0IFByb21pc2UuYWxsKFtzLmUoMTQ1KSxzLmUoODQzMDYpLHMuZSgyOTI5Nikscy5lKDYwMDYyKSxzLmUoNDY5MDcpLHMuZSgyMDM1NCkscy5lKDEyMzg1KSxzLmUoODEwNzIpLHMuZSg5NDk0OCkscy5lKDIzNjI0KSxzLmUoMzYyMjIpLHMuZSgyOTUzNikscy5lKDMyODE2KSxzLmUoNTE4NCkscy5lKDgzNDg4KSxzLmUoMTk1OTUpLHMuZSgxOTc4Nykscy5lKDY3Nzk5KSxzLmUoMTE0NjEpLHMuZSgyNDU4MSkscy5lKDk2NTg3KSxzLmUoMTEyMTgpLHMuZSgyNzUxNykscy5lKDg2NDIzKSxzLmUoMzc1MTMpLHMuZSg4NTc5KSxzLmUoOTUwNCkscy5lKDQwODM1KSxzLmUoOTgwODQpLHMuZSg5MzQyMSkscy5lKDc4NjUyKSxzLmUoNDk1ODgpLHMuZSg0NzYzMikscy5lKDc0MzgxKSxzLmUoNTAyMjEpLHMuZSgzMzUxNSkscy5lKDQzMzI1KSxzLmUoMTQ2MjUpLHMuZSgxNTUyNikscy5lKDY1Nykscy5lKDU3MzAwKSxzLmUoMTY3Nikscy5lKDkxODU1KSxzLmUoNjA3MCkscy5lKDk3NDQpLHMuZSg1ODA1MSkscy5lKDgzMDQxKSxzLmUoNTE2ODIpLHMuZSgyMDIpLHMuZSg5NzY2MCkscy5lKDMzMTIwKSxzLmUoMzk3ODYpLHMuZSg1NTMzNikscy5lKDYwODIpLHMuZSgxODQ0Mikscy5lKDQ3MDkyKSxzLmUoMjc3MzYpLHMuZSg5MDMzMCkscy5lKDI1Njk4KSxzLmUoMjMzMSkscy5lKDY4NTc5KSxzLmUoNDc1NTEpLHMuZSg0NzU3OSkscy5lKDg3NjczKSxzLmUoMjAwODUpLHMuZSg0NzQ1Nykscy5lKDMyMzg3KSxzLmUoNzgzMTIpLHMuZSg0NDc4MCkscy5lKDIzNzQzKSxzLmUoNDIyODgpLHMuZSg2NjIzNSkscy5lKDcyMTEpLHMuZSg1NzA5Mykscy5lKDY3ODUzKSxzLmUoNDg2NTIpLHMuZSgyODQ0Mikscy5lKDM0OTU0KV0pLnRoZW4ocy5iaW5kKHMsNTI4NTY2KSk7cmV0dXJuIGV9fXZhciBvdD1zKDgzOTQyNik7Y2xhc3MgYXQgZXh0ZW5kcyBXZXtwcmVwYXJlKGUpe2NvbnN0IHQ9ZT8uc3ltYm9sP2Uuc3ltYm9sOnAubGlua2luZy5wcm9TeW1ib2wudmFsdWUoKTtyZXR1cm4gc3VwZXIucHJlcGFyZSh7Li4uZSxzeW1ib2w6dH0pfWFzeW5jIF9yZW5kZXJlcigpe2NvbnN0e0Vjb25vbXlJbmRpY2F0b3JEaWFsb2dSZW5kZXJlcjplfT1hd2FpdCBQcm9taXNlLmFsbChbcy5lKDEyNjYzKSxzLmUoMjkyOTYpLHMuZSg2MDA2Mikscy5lKDQ2OTA3KSxzLmUoMjAzNTQpLHMuZSgxMjM4NSkscy5lKDk0OTQ4KSxzLmUoMzYyMjIpLHMuZSgyOTUzNikscy5lKDk0MjMyKSxzLmUoMzI4MTYpLHMuZSg1NjI1Mikscy5lKDgzNDg4KSxzLmUoNjc3OTkpLHMuZSgxMTQ2MSkscy5lKDI0NTgxKSxzLmUoOTY1ODcpLHMuZSgyNzUxNykscy5lKDM3NTEzKSxzLmUoOTgwODQpLHMuZSg0OTU4OCkscy5lKDcwODE1KSxzLmUoNTAyMjEpLHMuZSgzMzUxNSkscy5lKDE0NjI1KSxzLmUoMTU1MjYpLHMuZSg5MzQxNikscy5lKDY1Nykscy5lKDUyNjgwKSxzLmUoNjA3MCkscy5lKDk0MDU0KSxzLmUoMzk3ODYpLHMuZSg1NTMzNikscy5lKDE4NDQyKSxzLmUoMTQ2NDApLHMuZSg4MDc4Mikscy5lKDY5ODA5KSxzLmUoNDUyNDIpLHMuZSg4MTgxOCkscy5lKDk2MzUyKSxzLmUoMjU4OTUpLHMuZSg4NDIyNCkscy5lKDI0NjAzKSxzLmUoMjc2OTYpLHMuZSgzMjM4Nykscy5lKDc4MzEyKSxzLmUoNDQ3ODApLHMuZSgyMzc0Mykscy5lKDY2MjM1KSxzLmUoNzIxMSkscy5lKDcwOTU3KSxzLmUoMTAzMjIpLHMuZSgxMTMwNCldKS50aGVuKHMuYmluZChzLDM0NTY4MCkpO3JldHVybiBlfX1jb25zdCBsdD0oMCxvdC5kZWZhdWx0KSgoKCk9Pm5ldyBhdCkpO2NsYXNzIHV0IGV4dGVuZHMgV2V7YXN5bmMgX3JlbmRlcmVyKCl7Y29uc3R7U3RvY2tCb25kc0RpYWxvZ1JlbmRlcmVyOmV9PWF3YWl0IFByb21pc2UuYWxsKFtzLmUoMTE1MjYpLHMuZSg0MjUzNSkscy5lKDg0MzA2KSxzLmUoMjkyOTYpLHMuZSg1MjM5Nikscy5lKDYwMDYyKSxzLmUoNDY5MDcpLHMuZSgyMDM1NCkscy5lKDEzNDkyKSxzLmUoMzc3NDYpLHMuZSgxMjM4NSkscy5lKDgxMDcyKSxzLmUoOTQ5NDgpLHMuZSgyMzYyNCkscy5lKDM2MjIyKSxzLmUoMjk1MzYpLHMuZSg5NDIzMikscy5lKDMyODE2KSxzLmUoNTYyNTIpLHMuZSg4MzQ4OCkscy5lKDE5NTk1KSxzLmUoMTk3ODcpLHMuZSgxMTIxOCkscy5lKDI3NTE3KSxzLmUoODU3OSkscy5lKDk1MDQpLHMuZSgxNzA4Nykscy5lKDcyNjY2KSxzLmUoOTgwODQpLHMuZSg0OTU4OCkscy5lKDQ3NjMyKSxzLmUoNTAyMjEpLHMuZSgzMzUxNSkscy5lKDE0NjI1KSxzLmUoNjU3KSxzLmUoNTI2ODApLHMuZSg5MTg1NSkscy5lKDEyMDUxKSxzLmUoMzIxNzYpLHMuZSg0MzY0NCkscy5lKDYwNzApLHMuZSg1ODA1MSkscy5lKDcxNDgyKSxzLmUoNTIwOTUpLHMuZSg0NDAzMSkscy5lKDIxNTgxKSxzLmUoODkwNDQpLHMuZSg0Mzc5Mikscy5lKDc4NDA0KSxzLmUoNTYwMykscy5lKDYxNDEzKSxzLmUoNTcyNTQpLHMuZSgxNjM5OSkscy5lKDMwNzg5KSxzLmUoNzExOTApLHMuZSgzMjM4Nykscy5lKDMwNjk5KSxzLmUoNDIyODgpLHMuZSg2NjIzNSkscy5lKDE0ODg5KSxzLmUoNDIyMTIpLHMuZSg2ODcyNSkscy5lKDgwMjA3KSxzLmUoODMxNTQpLHMuZSg2MTQ5NSkscy5lKDE5Nzc2KSxzLmUoNjQ4OSldKS50aGVuKHMuYmluZChzLDc2MDgzOSkpO3JldHVybiBlfX1jb25zdCBjdD0oMCxvdC5kZWZhdWx0KSgoKCk9Pm5ldyB1dCkpO2NsYXNzIGR0IGV4dGVuZHMgV2V7YXN5bmMgX3JlbmRlcmVyKCl7CmNvbnN0e0RvY3VtZW50c0RpYWxvZ1JlbmRlcmVyOmV9PWF3YWl0IFByb21pc2UuYWxsKFtzLmUoNjk4MTIpLHMuZSg4NDMwNikscy5lKDI5Mjk2KSxzLmUoNjAwNjIpLHMuZSg0NjkwNykscy5lKDIwMzU0KSxzLmUoMTIzODUpLHMuZSg4MTA3Mikscy5lKDk0OTQ4KSxzLmUoMjM2MjQpLHMuZSgzNjIyMikscy5lKDI5NTM2KSxzLmUoMzI4MTYpLHMuZSg1MTg0KSxzLmUoODM0ODgpLHMuZSg2Nzc5OSkscy5lKDExNDYxKSxzLmUoMjQ1ODEpLHMuZSg5NjU4Nykscy5lKDI3NTE3KSxzLmUoODY0MjMpLHMuZSgzNzUxMykscy5lKDk1MDQpLHMuZSg0MDgzNSkscy5lKDk4MDg0KSxzLmUoOTM0MjEpLHMuZSg3ODY1Mikscy5lKDQ5NTg4KSxzLmUoNDc2MzIpLHMuZSg1MDIyMSkscy5lKDMzNTE1KSxzLmUoMTQ2MjUpLHMuZSgxNTUyNikscy5lKDcxNDE0KSxzLmUoNjU3KSxzLmUoNTI2ODApLHMuZSgzNTc5NCkscy5lKDE2NzYpLHMuZSg2MDcwKSxzLmUoOTc0NCkscy5lKDgzMDQxKSxzLmUoMTk1MTMpLHMuZSg3MTUyOCkscy5lKDU1MzM2KSxzLmUoOTIzOTMpLHMuZSgyNjU5Mikscy5lKDYzMTAwKSxzLmUoMzIzODcpLHMuZSgyMzc0Mykscy5lKDQyMjg4KSxzLmUoNjYyMzUpLHMuZSg3NzU3OCkscy5lKDg5NDYpLHMuZSg1ODQxOCldKS50aGVuKHMuYmluZChzLDUyNjY4MikpO3JldHVybiBlfX1jb25zdCBodD0oMCxvdC5kZWZhdWx0KSgoKCk9Pm5ldyBkdCkpO2NsYXNzIHB0IGV4dGVuZHMgV2V7YXN5bmMgX3JlbmRlcmVyKCl7Y29uc3R7TmV3c0RpYWxvZ1JlbmRlcmVyOmV9PWF3YWl0IFByb21pc2UuYWxsKFtzLmUoNDY4MzEpLHMuZSg4NDMwNikscy5lKDI5Mjk2KSxzLmUoNjAwNjIpLHMuZSg0NjkwNykscy5lKDIwMzU0KSxzLmUoMTIzODUpLHMuZSg4MTA3Mikscy5lKDk0OTQ4KSxzLmUoMjM2MjQpLHMuZSgzMjgxNikscy5lKDUxODQpLHMuZSgyNzUxNykscy5lKDk1MDQpLHMuZSg3MjY2Nikscy5lKDQ3NjMyKSxzLmUoNTAyMjEpLHMuZSgzMzUxNSkscy5lKDE0NjI1KSxzLmUoNjU3KSxzLmUoMzI3NDgpLHMuZSg5MTg1NSkscy5lKDQzNjQ0KSxzLmUoNjA3MCkscy5lKDk3NDQpLHMuZSg1ODA1MSkscy5lKDQ1MzY4KSxzLmUoMjAyNzEpLHMuZSg1MTg4MCkscy5lKDE4NDcyKSxzLmUoMjU4MDkpLHMuZSgxNzY5Mykscy5lKDgyMjcxKSxzLmUoMjI0NjQpLHMuZSg3NjY2NCkscy5lKDQ5MjkpLHMuZSg3MTM1MCkscy5lKDMyMzg3KSxzLmUoNDIyODgpLHMuZSg2NjIzNSkscy5lKDk3NjQ3KSxzLmUoMjE0MjYpLHMuZSgxNTM5NCkscy5lKDQ3NTc3KV0pLnRoZW4ocy5iaW5kKHMsOTgyNDc0KSk7cmV0dXJuIGV9fWNvbnN0IG10PSgwLG90LmRlZmF1bHQpKCgoKT0+bmV3IHB0KSk7Y2xhc3MgX3QgZXh0ZW5kcyBXZXthc3luYyBfcmVuZGVyZXIoKXtjb25zdHtFdGZzRGlhbG9nUmVuZGVyZXI6ZX09YXdhaXQgUHJvbWlzZS5hbGwoW3MuZSgxMTUyNikscy5lKDIxMDgwKSxzLmUoODQzMDYpLHMuZSgyOTI5Nikscy5lKDUyMzk2KSxzLmUoNjAwNjIpLHMuZSg0NjkwNykscy5lKDIwMzU0KSxzLmUoMTM0OTIpLHMuZSgzNzc0Nikscy5lKDEyMzg1KSxzLmUoODEwNzIpLHMuZSg5NDk0OCkscy5lKDIzNjI0KSxzLmUoMzYyMjIpLHMuZSgyOTUzNikscy5lKDk0MjMyKSxzLmUoMzI4MTYpLHMuZSg1NjI1Mikscy5lKDgzNDg4KSxzLmUoMTk1OTUpLHMuZSgxOTc4Nykscy5lKDExMjE4KSxzLmUoMjc1MTcpLHMuZSg4NTc5KSxzLmUoOTUwNCkscy5lKDE3MDg3KSxzLmUoNzI2NjYpLHMuZSg5ODA4NCkscy5lKDQ5NTg4KSxzLmUoNDc2MzIpLHMuZSg1MDIyMSkscy5lKDMzNTE1KSxzLmUoMTQ2MjUpLHMuZSg2NTcpLHMuZSg1MjY4MCkscy5lKDkxODU1KSxzLmUoMTIwNTEpLHMuZSgzMjE3Nikscy5lKDQzNjQ0KSxzLmUoNjA3MCkscy5lKDU4MDUxKSxzLmUoNzE0ODIpLHMuZSg1MjA5NSkscy5lKDQ0MDMxKSxzLmUoMjE1ODEpLHMuZSg4OTA0NCkscy5lKDQzNzkyKSxzLmUoNzg0MDQpLHMuZSg1NjAzKSxzLmUoNjE0MTMpLHMuZSg1NzI1NCkscy5lKDE2Mzk5KSxzLmUoMzA3ODkpLHMuZSg3MDI4MCkscy5lKDMyMzg3KSxzLmUoMzA2OTkpLHMuZSg0MjI4OCkscy5lKDY2MjM1KSxzLmUoMTQ4ODkpLHMuZSg0MjIxMikscy5lKDY4NzI1KSxzLmUoODAyMDcpLHMuZSg4MzE1NCkscy5lKDYxNDk1KSxzLmUoMTk3NzYpLHMuZSg4MjA4KV0pLnRoZW4ocy5iaW5kKHMsNjY4NDgwKSk7cmV0dXJuIGV9fWNvbnN0IGd0PSgwLG90LmRlZmF1bHQpKCgoKT0+bmV3IF90KSk7Y2xhc3MgeXQgZXh0ZW5kcyBXZXthc3luYyBfcmVuZGVyZXIoKXtjb25zdHtGb3J3YXJkQ3VydmVEaWFsb2dSZW5kZXJlcjplfT1hd2FpdCBQcm9taXNlLmFsbChbcy5lKDE0OTkxKSxzLmUoMjkyOTYpLHMuZSg2MDA2Mikscy5lKDQ2OTA3KSxzLmUoMjAzNTQpLHMuZSgxMjM4NSkscy5lKDk0OTQ4KSxzLmUoMjk1MzYpLHMuZSgzMjgxNikscy5lKDU2MjUyKSxzLmUoMTEyMTgpLHMuZSgyNzUxNykscy5lKDk4MDg0KSxzLmUoNTAyMjEpLHMuZSgzMzUxNSkscy5lKDE0NjI1KSxzLmUoNjU3KSxzLmUoNDM2NDQpLHMuZSg2MDcwKSxzLmUoMzAzNzMpLHMuZSgyMTU4MSkscy5lKDU2MDMpLHMuZSg1Njg5KSxzLmUoNjE0MTMpLHMuZSg5OTk0NCkscy5lKDUzMjI4KSxzLmUoMzIzODcpLHMuZSg2NjIzNSkscy5lKDgzMTU0KSxzLmUoODUxMDgpLHMuZSg2ODUxOSldKS50aGVuKHMuYmluZChzLDgzMjM0NSkpO3JldHVybiBlfX1jb25zdCBmdD0oMCxvdC5kZWZhdWx0KSgoKCk9Pm5ldyB5dCkpO2xldCB2dDtjbGFzcyBidCBleHRlbmRzIFdle3N0YXRpYyBnZXRJbnN0YW5jZSgpe3JldHVybiB2dHx8KHZ0PW5ldyBidCksdnR9YXN5bmMgX3JlbmRlcmVyKCl7CmNvbnN0e0JvbmRZaWVsZEN1cnZlRGlhbG9nUmVuZGVyZXI6ZX09YXdhaXQgUHJvbWlzZS5hbGwoW3MuZSg1NDkwNCkscy5lKDI5Mjk2KSxzLmUoNjAwNjIpLHMuZSg0NjkwNykscy5lKDIwMzU0KSxzLmUoMTIzODUpLHMuZSg5NDk0OCkscy5lKDI5NTM2KSxzLmUoMzI4MTYpLHMuZSg1NjI1Mikscy5lKDExMjE4KSxzLmUoMjc1MTcpLHMuZSg5ODA4NCkscy5lKDUwMjIxKSxzLmUoMzM1MTUpLHMuZSgxNDYyNSkscy5lKDY1Nykscy5lKDQzNjQ0KSxzLmUoNjA3MCkscy5lKDMwMzczKSxzLmUoMjE1ODEpLHMuZSg1NjAzKSxzLmUoNTY4OSkscy5lKDYxNDEzKSxzLmUoOTk5NDQpLHMuZSg2OTE4NSkscy5lKDMyMzg3KSxzLmUoNjYyMzUpLHMuZSg4MzE1NCkscy5lKDg1MTA4KSxzLmUoMzcyMTMpXSkudGhlbihzLmJpbmQocyw0OTU3MTYpKTtyZXR1cm4gZX19Y2xhc3MgU3QgZXh0ZW5kcyBXZXthc3luYyBfcmVuZGVyZXIoKXtjb25zdHtDb250cmFjdHNEaWFsb2dSZW5kZXJlcjplfT1hd2FpdCBQcm9taXNlLmFsbChbcy5lKDExNTI2KSxzLmUoMzkzNykscy5lKDg0MzA2KSxzLmUoMjkyOTYpLHMuZSg1MjM5Nikscy5lKDYwMDYyKSxzLmUoNDY5MDcpLHMuZSgyMDM1NCkscy5lKDEzNDkyKSxzLmUoMzc3NDYpLHMuZSgxMjM4NSkscy5lKDgxMDcyKSxzLmUoOTQ5NDgpLHMuZSgyMzYyNCkscy5lKDM2MjIyKSxzLmUoMjk1MzYpLHMuZSg5NDIzMikscy5lKDMyODE2KSxzLmUoNTYyNTIpLHMuZSg4MzQ4OCkscy5lKDE5NTk1KSxzLmUoMTk3ODcpLHMuZSgxMTIxOCkscy5lKDI3NTE3KSxzLmUoODU3OSkscy5lKDk1MDQpLHMuZSgxNzA4Nykscy5lKDcyNjY2KSxzLmUoOTgwODQpLHMuZSg0OTU4OCkscy5lKDQ3NjMyKSxzLmUoNTAyMjEpLHMuZSgzMzUxNSkscy5lKDE0NjI1KSxzLmUoNjU3KSxzLmUoNTI2ODApLHMuZSg5MTg1NSkscy5lKDEyMDUxKSxzLmUoMzIxNzYpLHMuZSg0MzY0NCkscy5lKDYwNzApLHMuZSg1ODA1MSkscy5lKDcxNDgyKSxzLmUoNTIwOTUpLHMuZSg0NDAzMSkscy5lKDIxNTgxKSxzLmUoODkwNDQpLHMuZSg0Mzc5Mikscy5lKDc4NDA0KSxzLmUoNTYwMykscy5lKDYxNDEzKSxzLmUoNTcyNTQpLHMuZSgxNjM5OSkscy5lKDMwNzg5KSxzLmUoODc0OTgpLHMuZSgzMjM4Nykscy5lKDMwNjk5KSxzLmUoNDIyODgpLHMuZSg2NjIzNSkscy5lKDE0ODg5KSxzLmUoNDIyMTIpLHMuZSg2ODcyNSkscy5lKDgwMjA3KSxzLmUoODMxNTQpLHMuZSg2MTQ5NSkscy5lKDE5Nzc2KSxzLmUoMzQ1NTUpXSkudGhlbihzLmJpbmQocyw3MDYwNTMpKTtyZXR1cm4gZX19Y29uc3Qgd3Q9KDAsb3QuZGVmYXVsdCkoKCgpPT5uZXcgU3QpKTtjbGFzcyBQdCBleHRlbmRzIFdle2FzeW5jIF9yZW5kZXJlcigpe2NvbnN0e0NvbW11bml0eURpYWxvZ1JlbmRlcmVyOmV9PWF3YWl0IFByb21pc2UuYWxsKFtzLmUoMzcwOTEpLHMuZSg4NDMwNikscy5lKDI5Mjk2KSxzLmUoNjAwNjIpLHMuZSg0NjkwNykscy5lKDIwMzU0KSxzLmUoMTIzODUpLHMuZSg4MTA3Mikscy5lKDk0OTQ4KSxzLmUoMjM2MjQpLHMuZSgzNjIyMikscy5lKDI5NTM2KSxzLmUoOTQyMzIpLHMuZSgzMjgxNikscy5lKDUxODQpLHMuZSg4MzQ4OCkscy5lKDE5NTk1KSxzLmUoNjc3OTkpLHMuZSgxMTQ2MSkscy5lKDI0NTgxKSxzLmUoOTY1ODcpLHMuZSgxMTIxOCkscy5lKDI3NTE3KSxzLmUoODY0MjMpLHMuZSgzNzUxMykscy5lKDk1MDQpLHMuZSg0MDgzNSkscy5lKDk4MDg0KSxzLmUoOTM0MjEpLHMuZSg3ODY1Mikscy5lKDQ5NTg4KSxzLmUoNDc2MzIpLHMuZSg3NDM4MSkscy5lKDUwMjIxKSxzLmUoMzM1MTUpLHMuZSgxNDYyNSkscy5lKDE1NTI2KSxzLmUoNzE0MTQpLHMuZSg2NTcpLHMuZSg1NzMwMCkscy5lKDUyNjgwKSxzLmUoMzU3OTQpLHMuZSgzMjc0OCkscy5lKDE2NzYpLHMuZSg2MDcwKSxzLmUoOTc0NCkscy5lKDgzMDQxKSxzLmUoNzE0ODIpLHMuZSgzNzc2Nykscy5lKDE5NTEzKSxzLmUoOTc2NjApLHMuZSg3MTUyOCkscy5lKDk0MDU0KSxzLmUoNDUzNjgpLHMuZSg0NDc3KSxzLmUoNTUzMzYpLHMuZSg3NjY1KSxzLmUoOTIzOTMpLHMuZSgxODQ0Mikscy5lKDkxNjc4KSxzLmUoNjk3NDcpLHMuZSgzODg2OCkscy5lKDE2NDIxKSxzLmUoMTQ2NDApLHMuZSg0MDQyKSxzLmUoMjIxNDQpLHMuZSg4MzUyOSkscy5lKDU5ODMwKSxzLmUoNTk0MzcpLHMuZSg3MDc1Nikscy5lKDc0NTYpLHMuZSg2Mjg5Mikscy5lKDI2NTkyKSxzLmUoNzQyMzMpLHMuZSg3MTk5MSkscy5lKDEyNjY2KSxzLmUoNjg2ODYpLHMuZSgzMjM4Nykscy5lKDgxODY4KSxzLmUoNDMyMykscy5lKDIzNzQzKSxzLmUoNDIyODgpLHMuZSg2NjIzNSkscy5lKDc3NTc4KSxzLmUoODk0Nikscy5lKDMwNDIxKSxzLmUoMjk4NDQpLHMuZSg5NjA3OCkscy5lKDk0MDg1KV0pLnRoZW4ocy5iaW5kKHMsNDU0OTM2KSk7cmV0dXJuIGV9fWNvbnN0IFR0PSgwLG90LmRlZmF1bHQpKCgoKT0+bmV3IFB0KSk7dmFyIEN0PXMoODczNzk0KSxFdD1zKDQzMzUzNCk7cyg2NjgyOTYpO2NvbnN0IEl0PXdpbmRvdy5pbml0RGF0YSxMdD13aW5kb3cuaW5pdERhdGEud2lkZ2V0RGVmYXVsdHMsTXQ9ZnVuY3Rpb24oZSx0PVtdLHMpe3JldHVybiBmdW5jdGlvbihlLHQscyxpPVtdLG4pe2NvbnN0IHI9cy5zbGljZSgxKSxvPWRlY29kZVVSSUNvbXBvbmVudChyKTtsZXQgYT17fTt0cnl7IiIhPT1vJiYoYT1KU09OLnBhcnNlKG8pLHZvaWQgMCE9PW4mJm4oZSxhKSxPYmplY3Qua2V5cyhhKS5mb3JFYWNoKChlPT57KFJlW2VdfHxpLmluY2x1ZGVzKGUpKSYmZGVsZXRlIGFbZV19KSkpfWNhdGNoKGUpe2E9e30sY29uc29sZS53YXJuKCJIYXNoIHBhcmFtcyBwYXJzaW5nIGVycm9yISBIYXNoIHBhcmFtcyBpZ25vcmVkLiIpfWNvbnN0IGw9dC5zbGljZSgxKSx1PXQuaW5jbHVkZXMoIiUiKT9kZWNvZGVVUklDb21wb25lbnQobCk6dCxjPW5ldyBVUkxTZWFyY2hQYXJhbXModSk7bGV0IGQ9e307dHJ5e2MuZm9yRWFjaCgoKGUsdCk9PntpLmluY2x1ZGVzKHQpfHwoZFt0XT1lKX0pKSx2b2lkIDAhPT1uJiZuKGUsZCl9Y2F0Y2goZSl7ZD17fSwKY29uc29sZS53YXJuKCJTZWFyY2ggcXVlcnkgcGFyYW1zIHBhcnNpbmcgZXJyb3IhIFNlYXJjaCBxdWVyeSBwYXJhbXMgaWdub3JlZC4iKX1yZXR1cm4gT2JqZWN0LmFzc2lnbih7fSxlLGEsZCl9KGUsbG9jYXRpb24uc2VhcmNoLGxvY2F0aW9uLmhhc2gsdCxzKX0oTHQpO3RyeXshYXN5bmMgZnVuY3Rpb24oZSl7TWF0aC5yYW5kb20oKT4uMDA1fHwoYXdhaXQoMCxWZS5nZXRUcmFja2VyKSgpKT8udHJhY2tTZWxmRGVzYygiaWdsdTpjb20udHJhZGluZ3ZpZXcvd2lkZ2V0X2xvYWRfbWV0YV9pbmZvL2pzb25zY2hlbWEvMS0wLTAiLGUpfSh7d2lkZ2V0X2lkOiJhZHZhbmNlZC1jaGFydCIsc3ltYm9sczpKU09OLnN0cmluZ2lmeShbTXQuc3ltYm9sXSksY3VzdG9tZXI6TXQuY3VzdG9tZXJ9KX1jYXRjaHt9Y29uc3QgRHQ9dm9pZCAwIT09TXQuZXh0ZW5kZWRfaG91cnM/YXMoTXQuZXh0ZW5kZWRfaG91cnMpPyJleHRlbmRlZCI6InJlZ3VsYXIiOnZvaWQgMCE9PUx0LmRlZl9leHRlbmRlZF9ob3Vycz9hcyhMdC5kZWZfZXh0ZW5kZWRfaG91cnMpPyJleHRlbmRlZCI6InJlZ3VsYXIiOkx0LmRlZl9zZXNzaW9uX2lkO2NvbnN0IHh0PUx0LmN1c3RvbWVyLFJ0PUx0LmN1c3RvbWVyUmVhZGFibGVOYW1lLGt0PU10LnJhbmdlfHxMdC5kZWZfcmFuZ2UsVnQ9YXMoTXQud2l0aGRhdGVyYW5nZXM/P0x0LmRlZl93aXRoZGF0ZXJhbmdlcyksQXQ9YXMoTXQuc2F2ZV9pbWFnZT8/SXQuZGVmX3NhdmVfaW1hZ2UsITApO2xldCBGdDsodm9pZCAwPT09TXQuYWxsb3dfc3ltYm9sX2NoYW5nZT9hcyhMdC5kZWZfaGlkZV9zeW1ib2xfZWRpdCk6IWFzKE10LmFsbG93X3N5bWJvbF9jaGFuZ2UpKSYmKCgwLG8uc2V0RW5hYmxlZCkoImhlYWRlcl9zeW1ib2xfc2VhcmNoIiwhMSksKDAsby5zZXRFbmFibGVkKSgiZGlzYWJsZV9sZWdlbmRfaW5wbGFjZV9zeW1ib2xfY2hhbmdlIiwhMCksKDAsby5zZXRFbmFibGVkKSgic3ltYm9sX3NlYXJjaF9ob3Rfa2V5IiwhMSkpLCgwLG8uc2V0RW5hYmxlZCkoImhlYWRlcl9zY3JlZW5zaG90IixCb29sZWFuKEF0KSksImJvdmVzcGEiPT09eHQmJigoMCxvLmRpc2FibGUpKCJoZWFkZXJfc2V0dGluZ3MiKSxGdD1be3N5bWJvbDoiSUJPViIsdGl0bGU6IkJvdmVzcGEgSW5kZXgifSx7c3ltYm9sOiJJQlhYIix0aXRsZToiQnJhemlsIDEwMCBJbmRleCJ9LHtzeW1ib2w6IklCWEwiLHRpdGxlOiJCcmF6aWwgNTAgSW5kZXgifSx7c3ltYm9sOiJJQlJBIix0aXRsZToiQnJhemlsIEJyb2FkLUJhc2VkIEluZGV4In0se3N5bWJvbDoiSUdDWCIsdGl0bGU6IlNwZWNpYWwgQ29ycG9yYXRlIEdvdmVybmFuY2UgU3RvY2sgSW5kZXgifSx7c3ltYm9sOiJJVEFHIix0aXRsZToiU3BlY2lhbCBUYWctQWxvbmcgU3RvY2sgSW5kZXgifSx7c3ltYm9sOiJJR05NIix0aXRsZToiTm92byBNZXJjYWRvIENvcnBvcmF0ZSBHb3Zlcm5hbmNlIEVxdWl0eSBJbmRleCJ9XSksd2luZG93LnBybz1uZXcgYy5Qcm8od2luZG93LnNob3BDb25mKTtsZXQgQnQ9TXQuc3ltYm9sfHxMdC5kZWZfc3ltYm9sfHwoMCxoLmdldERlZmF1bHRTeW1ib2wpKCk7ImNtZSI9PT1NdC5zeW1ib2xvZ3kmJihCdD0oZT0+e2NvbnN0IHQ9bmV3KF8oKS5TeW1ib2xUb2tlbikoZSk7aWYoIXQucm9vdCgpKXJldHVybiBlO2NvbnN0IHM9ZC5DTUVUb1RWU3ltYm9sb2d5QWRhcHRlci5jb252ZXJ0U3ltYm9sRGF0YVRvVFYodC5yb290KCksdC5leGNoYW5nZSgpLE10LnZlbnVlPz8iIik7cmV0dXJuIm9rIiE9PXMuc3RhdHVzP2U6KHMuZGF0YS5zeW1ib2wmJnQucm9vdChzLmRhdGEuc3ltYm9sKSxzLmRhdGEuZXhjaGFuZ2UmJnQuZXhjaGFuZ2Uocy5kYXRhLmV4Y2hhbmdlKSx0LnRvU3RyaW5nKCkpfSkoQnQpKTtjb25zdCBPdD15KCkocGFyZW50KSxOdD1bXTtsZXQgV3QsVXQ9W107aWYoTXQud2F0Y2hsaXN0JiYoVXQ9KEFycmF5LmlzQXJyYXkoTXQud2F0Y2hsaXN0KT9NdC53YXRjaGxpc3Q6TXQud2F0Y2hsaXN0LnNwbGl0KC9ceDFmLykpLm1hcCgoZT0+ZS50cmltKCkpKS5maWx0ZXIoQm9vbGVhbikpLFV0Lmxlbmd0aHx8TXQuZWRpdGFibGV3YXRjaGxpc3Qpe2NvbnN0IGU9e3R5cGU6IndhdGNobGlzdCIscHJvcGVydGllczp7bGlzdDpVdH19O2UucmVhZG9ubHk9IU10LmVkaXRhYmxld2F0Y2hsaXN0LE10LmVkaXRhYmxld2F0Y2hsaXN0PyhlLmRhdGE9e2hpZGVUaXRsZUJ1dHRvbjohMH0sZS5zZXR0aW5nc0tleT0ib253aWRnZXQud2F0Y2hsaXN0IixlLnVuQXV0aEVkaXRhYmxlPSEwLGZ1bmN0aW9uKGUpe2NvbnN0IHQ9bmV3IHBlKGUpOygwLHRlLnJlZ2lzdGVyU2VydmljZSkoc2UuU1lNQk9MX0xJU1RfUkVQT1NJVE9SWV9CQUNLRU5EX1NFUlZJQ0UsdCl9KFV0KSk6ZnVuY3Rpb24oZSl7Y29uc3QgdD1uZXcgaWUoZSk7KDAsdGUucmVnaXN0ZXJTZXJ2aWNlKShzZS5TWU1CT0xfTElTVF9SRVBPU0lUT1JZX0JBQ0tFTkRfU0VSVklDRSx0KX0oVXQpLE50LnB1c2goZSl9YXMoTXQuZGV0YWlscykmJk50LnB1c2goe3R5cGU6ImRldGFpbCJ9KSx2b2lkIDAhPT1NdC53aWRnZXRiYXJfd2lkdGgmJihXdD0rTXQud2lkZ2V0YmFyX3dpZHRoKSwoIVd0fHwhaXNGaW5pdGUoV3QpfHxXdDwyMDApJiYoV3Q9MjAwKTtjb25zdCB6dD1OdC5sZW5ndGg/W3tuYW1lOiJiYXNlIix0aXRsZTpsLnQobnVsbCx2b2lkIDAscyg3MTYwNjYpKSxpY29uOkN0LHdpZGdldHM6TnQubWFwKChlPT5lKSl9XTpbXTtNdC5ob3RsaXN0JiZ6dC5wdXNoKHtuYW1lOiJob3RsaXN0Iix0aXRsZTpsLnQobnVsbCx2b2lkIDAscyg4MjEyNDgpKSxpY29uOkV0LHdpZGdldHM6W3t0eXBlOiJob3RsaXN0Iixwcm9wZXJ0aWVzOntleGNoYW5nZUJ5TG9jYWxlOntkZWZhdWx0OndpbmRvdy5DT1VOVFJZX0NPREVfVE9fREVGQVVMVF9FWENIQU5HRS5lbn0sZ3JvdXBCeUxvY2FsZTp7ZGVmYXVsdDoidm9sdW1lX2dhaW5lcnMifX19LHt0eXBlOiJob3RsaXN0Iixwcm9wZXJ0aWVzOntleGNoYW5nZUJ5TG9jYWxlOntkZWZhdWx0OndpbmRvdy5DT1VOVFJZX0NPREVfVE9fREVGQVVMVF9FWENIQU5HRS5lbn0sZ3JvdXBCeUxvY2FsZTp7ZGVmYXVsdDoicGVyY2VudF9jaGFuZ2VfZ2FpbmVycyJ9fX0sewp0eXBlOiJob3RsaXN0Iixwcm9wZXJ0aWVzOntleGNoYW5nZUJ5TG9jYWxlOntkZWZhdWx0OndpbmRvdy5DT1VOVFJZX0NPREVfVE9fREVGQVVMVF9FWENIQU5HRS5lbn0sZ3JvdXBCeUxvY2FsZTp7ZGVmYXVsdDoicGVyY2VudF9jaGFuZ2VfbG9vc2VycyJ9fX1dfSk7Y29uc3QgSHQ9bmV3IGNsYXNze2NvbnN0cnVjdG9yKGUsdCl7dGhpcy5fdXBkYXRlRG9jdW1lbnRIZWlnaHQ9ZT0+eyJ2aXN1YWwiPT09dGhpcy5fdmlld3BvcnRUeXBlJiZ0aGlzLl93aW5kb3cuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCJoZWlnaHQiLGAke2V9cHhgLCJpbXBvcnRhbnQiKX0sdGhpcy5fd2luZG93PWUsdGhpcy5fZnVsbHNjcmVlbkFwaT10P25ldyBnZShlLmRvY3VtZW50LmJvZHkpOm5ldyBfZShlLmRvY3VtZW50KSx0aGlzLl92aWV3cG9ydFR5cGU9aS5DaGVja01vYmlsZS5pT1MoKSYmISgwLHZlLmlzT25Nb2JpbGVBcHBQYWdlKSgiYW55IikmJnRoaXMuX3dpbmRvdy52aXN1YWxWaWV3cG9ydD8idmlzdWFsIjoicXVpcmtzIiwidmlzdWFsIj09PXRoaXMuX3ZpZXdwb3J0VHlwZT90aGlzLl92aWV3cG9ydD0oMCxyLmVuc3VyZSkodGhpcy5fd2luZG93LnZpc3VhbFZpZXdwb3J0KTp0aGlzLl92aWV3cG9ydD10aGlzLl93aW5kb3c7Y29uc3Qgcz10aGlzLl9sYXlvdXRTaXplU2Vuc29yPXRoaXMuX3dpbmRvdy5kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtzLmlkPSJsYXlvdXQtc2l6ZS1zZW5zb3IiLHMuc3R5bGUucG9zaXRpb249ImZpeGVkIixzLnN0eWxlLnRvcD0iMCIscy5zdHlsZS5sZWZ0PSIwIixzLnN0eWxlLnJpZ2h0PSIwIixzLnN0eWxlLmJvdHRvbT0iMCIscy5zdHlsZS5wb2ludGVyRXZlbnRzPSJub25lIixzLnN0eWxlLnZpc2liaWxpdHk9ImhpZGRlbiIsdGhpcy5faW5pdEZ1bGxzY3JlZW4oKX1hbGxvY2F0ZSgpe3RoaXMuZnJlZSgpO2NvbnN0IGU9dGhpcy5fd2luZG93LmRvY3VtZW50LHQ9ZS5jcmVhdGVFbGVtZW50KCJkaXYiKTt0LmNsYXNzTGlzdC5hZGQoImpzLXJvb3RyZXNpemVyX19jb250ZW50cyIpLHQuc3R5bGUucG9zaXRpb249InJlbGF0aXZlIix0LnN0eWxlLndpZHRoPSIxMDAlIix0LnN0eWxlLmhlaWdodD0iMTAwJSIsZS5ib2R5Lmluc2VydEFkamFjZW50RWxlbWVudCgiYWZ0ZXJiZWdpbiIsdCksZS5ib2R5Lmluc2VydEFkamFjZW50RWxlbWVudCgiYWZ0ZXJiZWdpbiIsdGhpcy5fbGF5b3V0U2l6ZVNlbnNvciksdGhpcy5fdmlzaWJpbGl0eUFwaT1uZXcgZmUuVmlzaWJpbGl0eUFwaSh0aGlzLl93aW5kb3cuZG9jdW1lbnQpO2NvbnN0IHM9e2FsaXZlOm5ldyBQLldhdGNoZWRWYWx1ZSghMCksZnVsbHNjcmVlbmFibGU6bmV3IFAuV2F0Y2hlZFZhbHVlKCEwKSxjb250YWluZXI6bmV3IFAuV2F0Y2hlZFZhbHVlKHQpLHdpZHRoOm5ldyBQLldhdGNoZWRWYWx1ZSxoZWlnaHQ6bmV3IFAuV2F0Y2hlZFZhbHVlLGF2YWlsV2lkdGg6bmV3IFAuV2F0Y2hlZFZhbHVlLGF2YWlsSGVpZ2h0Om5ldyBQLldhdGNoZWRWYWx1ZSx2aXNpYmxlOnRoaXMuX3Zpc2liaWxpdHlBcGkuaXNWaXNpYmxlLGZ1bGxzY3JlZW46dGhpcy5fZnVsbHNjcmVlbkFwaS5pc0Z1bGxzY3JlZW4scmVtb3ZlOigpPT57cy5hbGl2ZS5zZXRWYWx1ZSghMSl9LGF0dGFjaDooKT0+e3MuYWxpdmUuc2V0VmFsdWUoITEpLHRoaXMuX3dpbmRvdy5jbG9zZSgpfSxyZXF1ZXN0RnVsbHNjcmVlbjooKT0+e3RoaXMuX3JlcXVlc3RGdWxsc2NyZWVuKCl9LGV4aXRGdWxsc2NyZWVuOigpPT57dGhpcy5fZXhpdEZ1bGxzY3JlZW4oKX19O3JldHVybiBzLmFsaXZlLnN1YnNjcmliZSgoZT0+e2V8fHMhPT10aGlzLl9hcmVhfHx0aGlzLmZyZWUoKX0pKSx0aGlzLl9hcmVhPXMsdGhpcy5fcmVzaXplSGFuZGxlcj0oKT0+e2NvbnN0IGU9dGhpcy5fd2lkdGgocyl8fDgwMCx0PXRoaXMuX2hlaWdodChzKXx8NjAwO3MuYXZhaWxIZWlnaHQuc2V0VmFsdWUodCkscy5hdmFpbFdpZHRoLnNldFZhbHVlKGUpLHMuaGVpZ2h0LnNldFZhbHVlKHQpLHMud2lkdGguc2V0VmFsdWUoZSl9LHRoaXMuX2FyZWEuaGVpZ2h0LnN1YnNjcmliZSh0aGlzLl91cGRhdGVEb2N1bWVudEhlaWdodCx7Y2FsbFdpdGhMYXN0OiEwfSksdGhpcy5fcmVzaXplSGFuZGxlcigpLHRoaXMuX3ZpZXdwb3J0LmFkZEV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsdGhpcy5fcmVzaXplSGFuZGxlciksbmV3IG1lLlJlc2l6ZXJEZXRhY2hlclN0YXRlKHMpLmJyaWRnZSgpfWZyZWUoKXtpZih0aGlzLl9yZXNpemVIYW5kbGVyJiYodGhpcy5fdmlld3BvcnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigicmVzaXplIix0aGlzLl9yZXNpemVIYW5kbGVyKSx0aGlzLl9yZXNpemVIYW5kbGVyPXZvaWQgMCksdGhpcy5fdmlzaWJpbGl0eUFwaSYmKHRoaXMuX3Zpc2liaWxpdHlBcGkuZGVzdHJveSgpLHRoaXMuX3Zpc2liaWxpdHlBcGk9dm9pZCAwKSx0aGlzLl9hcmVhKXtjb25zdCBlPXRoaXMuX2FyZWE7dGhpcy5fYXJlYT12b2lkIDAsZS5oZWlnaHQudW5zdWJzY3JpYmUodGhpcy5fdXBkYXRlRG9jdW1lbnRIZWlnaHQpLGUuYWxpdmUuc2V0VmFsdWUoITEpO2NvbnN0IHQ9ZS5jb250YWluZXIudmFsdWUoKSxzPXQ/LnBhcmVudEVsZW1lbnQ7cyYmKHMucmVtb3ZlQ2hpbGQodCkscy5yZW1vdmVDaGlsZCh0aGlzLl9sYXlvdXRTaXplU2Vuc29yKSl9fV9oZWlnaHQoZSl7aWYoInZpc3VhbCI9PT10aGlzLl92aWV3cG9ydFR5cGUpcmV0dXJuIHRoaXMuX2xheW91dFNpemVTZW5zb3IuY2xpZW50SGVpZ2h0O3JldHVybiBlLmNvbnRhaW5lci52YWx1ZSgpLmNsaWVudEhlaWdodH1fd2lkdGgoZSl7cmV0dXJuIGUuY29udGFpbmVyLnZhbHVlKCkuY2xpZW50V2lkdGh9X3JlcXVlc3RGdWxsc2NyZWVuKCl7dGhpcy5fZnVsbHNjcmVlbkFwaS5lbnRlcigpfV9leGl0RnVsbHNjcmVlbigpe3RoaXMuX2Z1bGxzY3JlZW5BcGkuZXhpdCgpfV9pbml0RnVsbHNjcmVlbigpe3RoaXMuX2Z1bGxzY3JlZW5BcGkuaXNGdWxsc2NyZWVuLnN1YnNjcmliZSgoZT0+e3RoaXMuX3Jlc2l6ZUhhbmRsZXImJnRoaXMuX3Jlc2l6ZUhhbmRsZXIoKX0pKX19KHdpbmRvdyksanQ9bmV3IGNsYXNzewpjb25zdHJ1Y3RvcihlKXt0aGlzLl9wcm9jZXNzVmlzaWJpbGl0eT1lPT57Y29uc3QgdD1lLmNvbnRhaW5lci52YWx1ZSgpO3JldHVybiB0aGlzLmFmZmVjdHNMYXlvdXQoZS5uYW1lKT8odCYmdC5jbGFzc0xpc3QudG9nZ2xlKCJqcy1oaWRkZW4iLCExKSwhMCk6KHQmJnQuY2xhc3NMaXN0LnRvZ2dsZSgianMtaGlkZGVuIiwhMCksITEpfSx0aGlzLl9zZXRXaWR0aD0oZSx0LHMpPT57bGV0IGk9czt0aGlzLl9mdWxsc2NyZWVuQXJlYSE9PWUubmFtZSYmKGUuYXZhaWxXaWR0aC5zZXRWYWx1ZShzKSxlLmNhbk5lZ290aWF0ZS53aWR0aCYmKGk9YmUocyxlLm5lZ290aWF0aW9ucy53aWR0aCkpKSx0fHwoaT0wKTtjb25zdCBuPWUuY29udGFpbmVyLnZhbHVlKCk7cmV0dXJuIG4mJnQmJihuLnN0eWxlLndpZHRoPWkrInB4IiksZS53aWR0aC5zZXRWYWx1ZShpKSxpfSx0aGlzLl9zZXRIZWlnaHQ9KGUsdCxzKT0+e2xldCBpPXM7dGhpcy5fZnVsbHNjcmVlbkFyZWEhPT1lLm5hbWUmJihlLmF2YWlsSGVpZ2h0LnNldFZhbHVlKHMpLGUuY2FuTmVnb3RpYXRlLmhlaWdodCYmKGk9YmUocyxlLm5lZ290aWF0aW9ucy5oZWlnaHQpKSksdHx8KGk9MCk7Y29uc3Qgbj1lLmNvbnRhaW5lci52YWx1ZSgpO3JldHVybiBuJiZ0JiYobi5zdHlsZS5oZWlnaHQ9aSsicHgiKSxlLmhlaWdodC5zZXRWYWx1ZShpKSxpfTtjb25zdCB0PWUuY29udGFpbmVyLnZhbHVlKCk7aWYoIXQpdGhyb3cgbmV3IEVycm9yKCJicmlkZ2UuY29udGFpbmVyLnZhbHVlKCkgbXVzdCBiZSBhbiBlbGVtZW50Iik7dGhpcy5fY29udGFpbmVyPXQsdGhpcy5fYXZhaWxhYmxlQXJlYXM9WyJsZWZ0IiwidHJhZGluZ3BhbmVsIiwicmlnaHQiLCJ0b3AiLCJib3R0b20iLCJjZW50ZXIiLCJ0b3BsZWZ0IiwiZXh0cmF0b3AiLCJhbmFseXNpcyJdLHRoaXMuX2FyZWFzPXt9LHRoaXMuX2JyaWRnZT1lLHRoaXMuX3dpZHRoPWUud2lkdGgsdGhpcy5faGVpZ2h0PWUuaGVpZ2h0LHRoaXMuX3dpZHRoLnN1YnNjcmliZSgoKCk9PnRoaXMucmVjYWxjdWxhdGUoKSkpLHRoaXMuX2hlaWdodC5zdWJzY3JpYmUoKCgpPT50aGlzLnJlY2FsY3VsYXRlKCkpKSx0aGlzLl9icmlkZ2UudmlzaWJsZS5zdWJzY3JpYmUoKCgpPT50aGlzLl91cGRhdGVWaXNpYmlsaXR5KCkpKSx0aGlzLl9icmlkZ2UuZnVsbHNjcmVlbi5zdWJzY3JpYmUoKCgpPT50aGlzLl9vblBhcmVudEZ1bGxzY3JlZW5DaGFuZ2UoKSkpLHRoaXMucmVjYWxjdWxhdGUoKX1hbGxvY2F0ZShlKXtjb25zdCB0PWUmJmUuYXJlYU5hbWU7aWYoLTE9PT10aGlzLl9hdmFpbGFibGVBcmVhcy5pbmRleE9mKHQpKXRocm93IG5ldyBFcnJvcigidW5rbm93biBvcHRpb25zLmFyZWFOYW1lIik7dGhpcy5mcmVlKHQpO2NvbnN0IHM9dGhpcy5fY3JlYXRlRE9NKHQpLGk9e25hbWU6dCxjYW5OZWdvdGlhdGU6e3dpZHRoOiJsZWZ0Ij09PXR8fCJyaWdodCI9PT10fHwidHJhZGluZ3BhbmVsIj09PXR8fCJ0b3BsZWZ0Ij09PXQsaGVpZ2h0OiJ0b3AiPT09dHx8ImJvdHRvbSI9PT10fHwidG9wbGVmdCI9PT10fHwiZXh0cmF0b3AiPT09dH0sbmVnb3RpYXRpb25zOnt3aWR0aDpbXSxoZWlnaHQ6W119LHJlbW92ZTooKT0+e2Zvcihjb25zdCBlIGluIHRoaXMuX2FyZWFzKXRoaXMuX2FyZWFzW2VdPT09aSYmdGhpcy5mcmVlKGUpfSxuZWdvdGlhdGVXaWR0aDplPT57aWYoIWkuY2FuTmVnb3RpYXRlLndpZHRoKXJldHVybjtjb25zdCB0PVNlKGUpO3dlKGkubmVnb3RpYXRpb25zLndpZHRoLHQpfHwoaS5uZWdvdGlhdGlvbnMud2lkdGg9dCx0aGlzLnJlY2FsY3VsYXRlKCkpfSxuZWdvdGlhdGVIZWlnaHQ6ZT0+e2lmKCFpLmNhbk5lZ290aWF0ZS5oZWlnaHQpcmV0dXJuO2NvbnN0IHQ9U2UoZSk7d2UoaS5uZWdvdGlhdGlvbnMuaGVpZ2h0LHQpfHwoaS5uZWdvdGlhdGlvbnMuaGVpZ2h0PXQsdGhpcy5yZWNhbGN1bGF0ZSgpKX0scmVxdWVzdEZ1bGxzY3JlZW46KCk9Pnt0aGlzLl9mdWxsc2NyZWVuQXJlYXx8KCJyaWdodCIhPT10JiYiY2VudGVyIiE9PXR8fCh0aGlzLl9mdWxsc2NyZWVuQXJlYT10KSwiY2VudGVyIj09PXQmJnRoaXMuX2JyaWRnZS5yZXF1ZXN0RnVsbHNjcmVlbigpLHRoaXMuX3VwZGF0ZUZ1bGxzY3JlZW4oKSl9LGV4aXRGdWxsc2NyZWVuOigpPT57dD09PXRoaXMuX2Z1bGxzY3JlZW5BcmVhJiYodGhpcy5fZnVsbHNjcmVlbkFyZWE9dm9pZCAwLCJjZW50ZXIiPT09dCYmdGhpcy5fYnJpZGdlLmV4aXRGdWxsc2NyZWVuKCksdGhpcy5fdXBkYXRlRnVsbHNjcmVlbigpKX0sd2lkdGg6bmV3IFAuV2F0Y2hlZFZhbHVlLGhlaWdodDpuZXcgUC5XYXRjaGVkVmFsdWUsYXZhaWxXaWR0aDpuZXcgUC5XYXRjaGVkVmFsdWUsYXZhaWxIZWlnaHQ6bmV3IFAuV2F0Y2hlZFZhbHVlLGFsaXZlOm5ldyBQLldhdGNoZWRWYWx1ZSghMCksY29udGFpbmVyOm5ldyBQLldhdGNoZWRWYWx1ZShzKSx2aXNpYmxlOm5ldyBQLldhdGNoZWRWYWx1ZSghMCksZnVsbHNjcmVlbjpuZXcgUC5XYXRjaGVkVmFsdWUoITEpLGZ1bGxzY3JlZW5hYmxlOm5ldyBQLldhdGNoZWRWYWx1ZSgicmlnaHQiPT09dHx8ImNlbnRlciI9PT10KSxyZFN0YXRlOm5ldyBtZS5SZXNpemVyRGV0YWNoZXJTdGF0ZX07cmV0dXJuIGkucmRTdGF0ZS5wdXNoT3duZXIoaSksdGhpcy5fYXJlYXNbdF09aSxpLnJkU3RhdGUub3duZXIuc3Vic2NyaWJlKChlPT57Y29uc3Qgcz1pLmNvbnRhaW5lci52YWx1ZSgpO2lmKGUhPT1pKXMmJihzLmlubmVySFRNTD0iIixzLnBhcmVudEVsZW1lbnQmJnMucGFyZW50RWxlbWVudC5yZW1vdmVDaGlsZChzKSk7ZWxzZXtsZXQgZT1udWxsO2ZvcihsZXQgcz10aGlzLl9hdmFpbGFibGVBcmVhcy5pbmRleE9mKHQpO3MtLTspe2NvbnN0IHQ9dGhpcy5fYXZhaWxhYmxlQXJlYXNbc107aWYodGhpcy5hZmZlY3RzTGF5b3V0KHQpKXtlPXRoaXMuX2FyZWFzW3RdLmNvbnRhaW5lci52YWx1ZSgpO2JyZWFrfX1zJiYoZSYmcy5wYXJlbnRFbGVtZW50P3MuaW5zZXJ0QWRqYWNlbnRFbGVtZW50KCJhZnRlcmVuZCIsZSk6dGhpcy5fY29udGFpbmVyLmFwcGVuZENoaWxkKHMpKX10aGlzLnJlY2FsY3VsYXRlKCl9KSx7Y2FsbFdpdGhMYXN0OiEwfSksCmkucmRTdGF0ZS5icmlkZ2UoKX1mcmVlKGUpe2NvbnN0IHQ9dGhpcy5fYXJlYXNbZV07aWYoIXQpcmV0dXJuO3RoaXMuX2FyZWFzW2VdPXZvaWQgMDtjb25zdCBzPXQuY29udGFpbmVyLnZhbHVlKCk7cyYmcy5wYXJlbnRFbGVtZW50JiZzLnBhcmVudEVsZW1lbnQucmVtb3ZlQ2hpbGQocyksdC5hbGl2ZS5zZXRWYWx1ZSghMSl9cmVjYWxjdWxhdGUoKXtjb25zdCBlPXt9O3RoaXMuX3JlY2FsY1NpbmdsZVJ1blRva2VuPWU7Y29uc3QgdD10aGlzLl9hcmVhcy50b3BsZWZ0LHM9dGhpcy5fYXJlYXMubGVmdCxpPXRoaXMuX2FyZWFzLnRyYWRpbmdwYW5lbCxuPXRoaXMuX2FyZWFzLnJpZ2h0LHI9dGhpcy5fYXJlYXMudG9wLG89dGhpcy5fYXJlYXMuYm90dG9tLGE9dGhpcy5fYXJlYXMuY2VudGVyLGw9dGhpcy5fYXJlYXMuZXh0cmF0b3AsdT10aGlzLl9hcmVhcy5hbmFseXNpcyxjPXRoaXMuX3dpZHRoLnZhbHVlKCksZD10aGlzLl9oZWlnaHQudmFsdWUoKTtsZXQgaD0wLHA9MCxtPTAsXz0wLGc9MCx5PTAsZj0wLHY9MDtpZihlPT09dGhpcy5fcmVjYWxjU2luZ2xlUnVuVG9rZW4mJmwpe2NvbnN0IGU9dGhpcy5fcHJvY2Vzc1Zpc2liaWxpdHkobCk7dj10aGlzLl9zZXRIZWlnaHQobCxlLGQpLHRoaXMuX3NldFdpZHRoKGwsZSxjKX1pZihlPT09dGhpcy5fcmVjYWxjU2luZ2xlUnVuVG9rZW4mJnQpe2NvbnN0IGU9dGhpcy5fcHJvY2Vzc1Zpc2liaWxpdHkodCk7Zj10aGlzLl9zZXRIZWlnaHQodCxlLGQpLHk9dGhpcy5fc2V0V2lkdGgodCxlLGMpO2NvbnN0IHM9dC5jb250YWluZXIudmFsdWUoKTtlJiZzJiYocy5zdHlsZS50b3A9disicHgiKX1sZXQgYj0wO2lmKGU9PT10aGlzLl9yZWNhbGNTaW5nbGVSdW5Ub2tlbiYmcil7Y29uc3QgZT10aGlzLl9wcm9jZXNzVmlzaWJpbGl0eShyKSx0PXIuY29udGFpbmVyLnZhbHVlKCk7ZSYmdCYmKHQuc3R5bGUubGVmdD15KyJweCIsdC5zdHlsZS50b3A9disicHgiKTtjb25zdCBzPWMteTt0aGlzLl9zZXRXaWR0aChyLGUscyksaD10aGlzLl9zZXRIZWlnaHQocixlLGQpLGgmJihiPTEpfWlmKGU9PT10aGlzLl9yZWNhbGNTaW5nbGVSdW5Ub2tlbiYmcyl7Y29uc3QgZT10aGlzLl9wcm9jZXNzVmlzaWJpbGl0eShzKSx0PU1hdGgubWF4KGYsaCk7bT10aGlzLl9zZXRXaWR0aChzLGUsYyksbSYmKG0rPTQpLG0mJjE9PT1iJiYoYj00KTtjb25zdCBpPXMuY29udGFpbmVyLnZhbHVlKCk7ZSYmaSYmKGkuc3R5bGUudG9wPXQrditiKyJweCIpLHRoaXMuX3NldEhlaWdodChzLGUsZC10LXYtYil9aWYoZT09PXRoaXMuX3JlY2FsY1NpbmdsZVJ1blRva2VuJiZpKXtjb25zdCBlPXRoaXMuX3Byb2Nlc3NWaXNpYmlsaXR5KGkpO2xldCB0PWMtbTtUZXx8KHQtPTMwMCksZz10aGlzLl9zZXRXaWR0aChpLGUsdCksZyYmMT09PWImJihiPTQpLHRoaXMuX3NldEhlaWdodChpLGUsZC12LWgtYil9aWYoZT09PXRoaXMuX3JlY2FsY1NpbmdsZVJ1blRva2VuJiZuKXtjb25zdCBlPXRoaXMuX3Byb2Nlc3NWaXNpYmlsaXR5KG4pO2xldCB0PWMtbS1nO1RlfHwodC09MzAwKSxfPXRoaXMuX3NldFdpZHRoKG4sZSx0KSxfJiYxPT09YiYmKGI9NCksdGhpcy5fc2V0SGVpZ2h0KG4sZSxkLXYtaC1iKTtjb25zdCBzPW4uY29udGFpbmVyLnZhbHVlKCk7ZSYmcyYmKHMuc3R5bGUudG9wPWgrditiKyJweCIpfWNvbnN0IFM9ZytfLHc9Uz80OjA7bGV0IFA9MCxUPWMtbS1nLV8tdztjb25zdCBDPUJvb2xlYW4oZ3x8IVMpO2lmKCFfJiZnJiYoVCs9NCksZT09PXRoaXMuX3JlY2FsY1NpbmdsZVJ1blRva2VuJiZvKXtjb25zdCBlPXRoaXMuX3Byb2Nlc3NWaXNpYmlsaXR5KG8pLHQ9by5jb250YWluZXIudmFsdWUoKTtlJiZ0JiYodC5zdHlsZS5sZWZ0PW0rInB4Iix0LmNsYXNzTGlzdC50b2dnbGUoIm5vLWJvcmRlci10b3AtbGVmdC1yYWRpdXMiLCFtKSx0LmNsYXNzTGlzdC50b2dnbGUoIm5vLWJvcmRlci10b3AtcmlnaHQtcmFkaXVzIixDKSksdGhpcy5fc2V0V2lkdGgobyxlLFQpO2NvbnN0IHM9ZC12O1A9TWF0aC5taW4oMzAwLHMtMCk7Y29uc3QgaT10aGlzLl9zZXRIZWlnaHQobyxlLHMtMCk7cD0wPT09aT8wOmkrNH1jb25zdCBFPUJvb2xlYW4oaCYmKG18fFMpKTtpZih0aGlzLl9jb250YWluZXIuY2xhc3NMaXN0LnRvZ2dsZSgibGF5b3V0LXdpdGgtYm9yZGVyLXJhZGl1cyIsRSksUGUuc2V0TmV3QmxhY2tDb2xvciYmdGhpcy5fY29udGFpbmVyLmNsYXNzTGlzdC50b2dnbGUoImJsYWNrLWJvcmRlci1iaWdnZXItcmFkaXVzIiwhMCksZT09PXRoaXMuX3JlY2FsY1NpbmdsZVJ1blRva2VuJiZhKXtjb25zdCBlPXRoaXMuX3Byb2Nlc3NWaXNpYmlsaXR5KGEpLHQ9YS5jb250YWluZXIudmFsdWUoKTtlJiZ0JiYodC5zdHlsZS5sZWZ0PW0rInB4Iix0LnN0eWxlLnRvcD1oK3YrYisicHgiLHQuY2xhc3NMaXN0LnRvZ2dsZSgibm8tYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1cyIsIXB8fCFtKSx0LmNsYXNzTGlzdC50b2dnbGUoIm5vLWJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzIixDfHwhcCksdC5jbGFzc0xpc3QudG9nZ2xlKCJuby1ib3JkZXItdG9wLWxlZnQtcmFkaXVzIixCb29sZWFuKCFtJiZTKSksdC5jbGFzc0xpc3QudG9nZ2xlKCJuby1ib3JkZXItdG9wLXJpZ2h0LXJhZGl1cyIsQykpLHRoaXMuX3NldFdpZHRoKGEsZSxUKTtjb25zdCBzPWQtaC1wLXYtYjt0aGlzLl9zZXRIZWlnaHQoYSxlLE1hdGgubWF4KHMsUCkpfWlmKGU9PT10aGlzLl9yZWNhbGNTaW5nbGVSdW5Ub2tlbiYmdSl7Y29uc3QgZT10aGlzLl9wcm9jZXNzVmlzaWJpbGl0eSh1KSx0PXUuY29udGFpbmVyLnZhbHVlKCk7ZSYmdCYmKHQuc3R5bGUubGVmdD0iMHB4Iix0LnN0eWxlLnRvcD1oK3YrYisicHgiLHQuY2xhc3NMaXN0LnRvZ2dsZSgibm8tYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1cyIsITApLHQuY2xhc3NMaXN0LnRvZ2dsZSgibm8tYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXMiLEN8fCFwKSx0LmNsYXNzTGlzdC50b2dnbGUoIm5vLWJvcmRlci10b3AtbGVmdC1yYWRpdXMiLCEwKSx0LmNsYXNzTGlzdC50b2dnbGUoIm5vLWJvcmRlci10b3AtcmlnaHQtcmFkaXVzIixDKSk7Y29uc3Qgcz1jLV8tdwo7dGhpcy5fc2V0V2lkdGgodSxlLHMpO2NvbnN0IGk9ZC1oLXYtYjt0aGlzLl9zZXRIZWlnaHQodSxlLGkpfWlmKGU9PT10aGlzLl9yZWNhbGNTaW5nbGVSdW5Ub2tlbiYmaSYmdGhpcy5hZmZlY3RzTGF5b3V0KCJ0cmFkaW5ncGFuZWwiKSl7Y29uc3QgZT1pLmNvbnRhaW5lci52YWx1ZSgpO2UmJihlLnN0eWxlLnJpZ2h0PWcmJl8/YCR7Xys0fXB4YDpgJHtffXB4YCxlLnN0eWxlLnRvcD12K2grYisicHgiLGUuc3R5bGUuYm9yZGVyVG9wUmlnaHRSYWRpdXM9RSYmXz8iNHB4IjoiMHB4Iil9ZT09PXRoaXMuX3JlY2FsY1NpbmdsZVJ1blRva2VuJiZ0aGlzLl91cGRhdGVWaXNpYmlsaXR5KCl9YWZmZWN0c0xheW91dChlKXtjb25zdCB0PXRoaXMuX2FyZWFzW2VdO2lmKCF0KXJldHVybiExO2lmKHQucmRTdGF0ZS5vd25lci52YWx1ZSgpIT09dClyZXR1cm4hMTtpZih0aGlzLl9mdWxsc2NyZWVuQXJlYSYmdGhpcy5fZnVsbHNjcmVlbkFyZWEhPT1lKXJldHVybiBJZShlKTtpZih0aGlzLl93aWR0aC52YWx1ZSgpPD01Njd8fHRoaXMuX2hlaWdodC52YWx1ZSgpPD00NDUmJiFFZSl7aWYoIVsiY2VudGVyIiwidG9wIiwibGVmdCIsInRvcGxlZnQiLCJleHRyYXRvcCIsImFuYWx5c2lzIl0uaW5jbHVkZXMoZSkpcmV0dXJuITF9cmV0dXJuITB9X3VwZGF0ZVZpc2liaWxpdHkoKXtjb25zdCBlPXRoaXMuX2JyaWRnZS52aXNpYmxlLnZhbHVlKCk7Zm9yKGxldCB0PTA7dDx0aGlzLl9hdmFpbGFibGVBcmVhcy5sZW5ndGg7dCsrKXtjb25zdCBzPXRoaXMuX2F2YWlsYWJsZUFyZWFzW3RdLGk9dGhpcy5fYXJlYXNbc107aSYmKGUmJnRoaXMuYWZmZWN0c0xheW91dChzKT9pLnZpc2libGUuc2V0VmFsdWUoITApOmkudmlzaWJsZS5zZXRWYWx1ZSghMSkpfX1fb25QYXJlbnRGdWxsc2NyZWVuQ2hhbmdlKCl7dGhpcy5fYnJpZGdlLmZ1bGxzY3JlZW4udmFsdWUoKXx8KHRoaXMuX2Z1bGxzY3JlZW5BcmVhPXZvaWQgMCx0aGlzLl91cGRhdGVGdWxsc2NyZWVuKCkpfV91cGRhdGVGdWxsc2NyZWVuKCl7Y29uc3QgZT12b2lkIDAhPT10aGlzLl9mdWxsc2NyZWVuQXJlYTtmb3IobGV0IHQ9MDt0PHRoaXMuX2F2YWlsYWJsZUFyZWFzLmxlbmd0aDt0Kyspe2NvbnN0IHM9dGhpcy5fYXZhaWxhYmxlQXJlYXNbdF0saT10aGlzLl9hcmVhc1tzXTtpZighaSljb250aW51ZTtpZihzPT09dGhpcy5fZnVsbHNjcmVlbkFyZWEpe2kuZnVsbHNjcmVlbi5zZXRWYWx1ZSghMCk7Y29udGludWV9aS5mdWxsc2NyZWVuLnNldFZhbHVlKCExKTtjb25zdCBuPWkuY29udGFpbmVyLnZhbHVlKCk7biYmbi5jbGFzc0xpc3QudG9nZ2xlKCJqcy1oaWRkZW4iLGUmJiFJZShzKSl9dGhpcy5fdXBkYXRlVmlzaWJpbGl0eSgpLHRoaXMucmVjYWxjdWxhdGUoKX1fY3JlYXRlRE9NKGUpe2NvbnN0IHQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7cmV0dXJuIHQuY2xhc3NMaXN0LmFkZCgibGF5b3V0X19hcmVhLS0iK2UpLHQuc3R5bGUucG9zaXRpb249ImFic29sdXRlIiwidHJhZGluZ3BhbmVsIj09PWUmJih0LnN0eWxlLmJvcmRlclRvcFJpZ2h0UmFkaXVzPSI0cHgiKSwiYm90dG9tIj09PWU/dC5zdHlsZS5ib3R0b209IjAiOnQuc3R5bGUudG9wPSIwIiwicmlnaHQiPT09ZXx8InRyYWRpbmdwYW5lbCI9PT1lP3Quc3R5bGUucmlnaHQ9IjAiOnQuc3R5bGUubGVmdD0iMCIsdH19KEh0LmFsbG9jYXRlKCkpLCR0PWFzKE10LmhpZGVfdG9wX3Rvb2xiYXIpP251bGw6anQuYWxsb2NhdGUoe2FyZWFOYW1lOiJ0b3AifSkscXQ9dm9pZCAwPT09TXQuaGlkZV9zaWRlX3Rvb2xiYXJ8fCtNdC5oaWRlX3NpZGVfdG9vbGJhcj9udWxsOmp0LmFsbG9jYXRlKHthcmVhTmFtZToibGVmdCJ9KSxLdD1qdC5hbGxvY2F0ZSh7YXJlYU5hbWU6ImNlbnRlciJ9KSxZdD16dC5sZW5ndGg/anQuYWxsb2NhdGUoe2FyZWFOYW1lOiJyaWdodCJ9KTpudWxsLEd0PW5ldyBjbGFzc3tjb25zdHJ1Y3RvcihlKXt0aGlzLl9hbmFseXNpc1BhbmVsVmlzaWJpbGl0eT1uZXcgUC5XYXRjaGVkVmFsdWUoITEpLHRoaXMuX2FuYWx5c2lzVmlld1NldD1uZXcgT2UoKGU9Pih7bGF5b3V0OnRoaXMscm9vdDp0aGlzLl9hbmFseXNpc0FyZWEuY29udGFpbmVyLnZhbHVlKCksaGVhZGVyOiJ3b3Jrc3BhY2UifSkpLChlPT5CZS5hY3R1YWxDb250ZW50LnNldFZhbHVlKGUpKSksdGhpcy5fY2hhcnRSZXNpemVyPWUsdGhpcy5fYW5hbHlzaXNBcmVhPXRoaXMuX2NoYXJ0UmVzaXplci5hbGxvY2F0ZSh7YXJlYU5hbWU6ImFuYWx5c2lzIn0pLHRoaXMuX2NhblNob3dGbG9hdGluZ1Rvb2xiYXJzPSgwLEZlLmNvbWJpbmUpKChlPT5udWxsPT09ZSksQmUuYWN0dWFsQ29udGVudC53ZWFrUmVmZXJlbmNlKCkpLHRoaXMuX2FuYWx5c2lzUGFuZWxWaXNpYmlsaXR5LnN1YnNjcmliZSgoZT0+e3RoaXMuX2FuYWx5c2lzQXJlYS5jb250YWluZXIudmFsdWUoKS5zdHlsZS5kaXNwbGF5PWU/ImdyaWQiOiJub25lIn0pLHtjYWxsV2l0aExhc3Q6ITB9KSxCZS5hY3R1YWxDb250ZW50LnN1YnNjcmliZSgoZT0+e3RoaXMuX2FuYWx5c2lzUGFuZWxWaXNpYmlsaXR5LnNldFZhbHVlKG51bGwhPT1lKX0pLHtjYWxsV2l0aExhc3Q6ITB9KX1hbmFseXNpc1BhbmVsVmlzaWJsZSgpe3JldHVybiB0aGlzLl9hbmFseXNpc1BhbmVsVmlzaWJpbGl0eX1jYW5TaG93RmxvYXRpbmdUb29sYmFycygpe3JldHVybiB0aGlzLl9jYW5TaG93RmxvYXRpbmdUb29sYmFyc31yZWdpc3RlckFuYWx5c2lzVmlldyhlLHQpe3RoaXMuX2FuYWx5c2lzVmlld1NldC5yZWdpc3RlclZpZXcoZSx0KX1oYXNBbmFseXNpc1ZpZXcoZSl7cmV0dXJuIHRoaXMuX2FuYWx5c2lzVmlld1NldC5oYXNWaWV3KGUpfXNob3dBbmFseXNpc1ZpZXcoZSx0KXt0aGlzLl9hbmFseXNpc1ZpZXdTZXQuc2hvd1ZpZXcoZSx0KX19KGp0KTtpZihmdW5jdGlvbihlKXsoZnVuY3Rpb24oZSl7ZS5yZWdpc3RlckFuYWx5c2lzVmlldygiZmluYW5jaWFscyIsKGFzeW5jIGU9PmV0LmdldEluc3RhbmNlKCkucHJlcGFyZShlKSkpLGUucmVnaXN0ZXJBbmFseXNpc1ZpZXcoInRlY2huaWNhbHMiLChhc3luYyBlPT5aZS5nZXRJbnN0YW5jZSgpLnByZXBhcmUoZSkpKSwKZS5yZWdpc3RlckFuYWx5c2lzVmlldygic2Vhc29uYWxzIiwoYXN5bmMgZT0+dHQuZ2V0SW5zdGFuY2UoKS5wcmVwYXJlKGUpKSksZS5yZWdpc3RlckFuYWx5c2lzVmlldygiYW5hbHlzaXMiLChhc3luYyBlPT5zdC5nZXRJbnN0YW5jZSgpLnByZXBhcmUoZSkpKSxlLnJlZ2lzdGVyQW5hbHlzaXNWaWV3KCJmb3JlY2FzdCIsKGFzeW5jIGU9Pml0LmdldEluc3RhbmNlKCkucHJlcGFyZShlKSkpLGUucmVnaXN0ZXJBbmFseXNpc1ZpZXcoIm9wdGlvbnMiLChhc3luYyBlPT5ydC5nZXRJbnN0YW5jZSgpLnByZXBhcmUoZSkpKSxlLnJlZ2lzdGVyQW5hbHlzaXNWaWV3KCJlY29ub215LWluZGljYXRvcnMiLChhc3luYyBlPT5sdCgpLnByZXBhcmUoZSkpKSxlLnJlZ2lzdGVyQW5hbHlzaXNWaWV3KCJib25kcyIsKGFzeW5jIGU9PmN0KCkucHJlcGFyZShlKSkpLGUucmVnaXN0ZXJBbmFseXNpc1ZpZXcoImRvY3VtZW50cyIsKGFzeW5jIGU9Pmh0KCkucHJlcGFyZShlKSkpLGUucmVnaXN0ZXJBbmFseXNpc1ZpZXcoIm5ld3MiLChhc3luYyBlPT5tdCgpLnByZXBhcmUoZSkpKSxlLnJlZ2lzdGVyQW5hbHlzaXNWaWV3KCJldGZzIiwoYXN5bmMgZT0+Z3QoKS5wcmVwYXJlKGUpKSksZS5yZWdpc3RlckFuYWx5c2lzVmlldygiZm9yd2FyZC1jdXJ2ZSIsKGFzeW5jIGU9PmZ0KCkucHJlcGFyZShlKSkpLGUucmVnaXN0ZXJBbmFseXNpc1ZpZXcoInlpZWxkLWN1cnZlIiwoYXN5bmMgZT0+YnQuZ2V0SW5zdGFuY2UoKS5wcmVwYXJlKGUpKSksZS5yZWdpc3RlckFuYWx5c2lzVmlldygiY29udHJhY3RzIiwoYXN5bmMgZT0+d3QoKS5wcmVwYXJlKGUpKSksZS5yZWdpc3RlckFuYWx5c2lzVmlldygiY29tbXVuaXR5IiwoYXN5bmMgZT0+VHQoKS5wcmVwYXJlKGUpKSksZS5yZWdpc3RlckFuYWx5c2lzVmlldygiZGVyaXZhdGl2ZXMiLChhc3luYyBlPT5udC5nZXRJbnN0YW5jZSgpLnByZXBhcmUoZSkpKX0pKGUpLGUucmVnaXN0ZXJBbmFseXNpc1ZpZXcoImNoYXJ0LXRhYmxlLXZpZXciLChhc3luYyBlPT56ZS5nZXRJbnN0YW5jZSgpLnByZXBhcmUoZSkpKX0oR3QpLEFlLmN1cnJlbnRMYXlvdXQuc2V0VmFsdWUoR3QpLCgwLHhlLnNldFN1cHBvcnRQb3J0YWxQcm9ibGVtc0hvc3QpKE10LnN1cHBvcnRfaG9zdD8/IiIpLGt0KXtjb25zdCBlPShKdD1rdCxMZS5maW5kKChlPT5lLnZhbHVlLnZhbHVlPT09SnQpKSk7ZSYmKE10LnJhbmdlPWt0LE10LmludGVydmFsPWUudGFyZ2V0UmVzb2x1dGlvbil9dmFyIEp0O2xldCBYdCxRdDtYdD12b2lkIDA9PT1NdC5pbnRlcnZhbD92b2lkIDA9PT1NdC5zdHlsZT9MdC5kZWZfaW50ZXJ2YWw/PyIxIjooMCxTLmdldERlZmF1bHRSZXNvbHV0aW9uKSgoMCx2LmlzUmFuZ2VTdHlsZSkocGFyc2VJbnQoTXQuc3R5bGUpKSk6TXQuaW50ZXJ2YWwsUXQ9dm9pZCAwPT09TXQuc3R5bGU/dm9pZCAwPT09TXQuaW50ZXJ2YWw/THQuZGVmX3N0eWxlPz8xOigwLHYuZ2V0RGVmYXVsdFN0eWxlKShiLkludGVydmFsLmlzUmFuZ2UoTXQuaW50ZXJ2YWwpKTpwYXJzZUludChNdC5zdHlsZSk7Y29uc3QgWnQ9d2luZG93LmNoYXJ0V2lkZ2V0Q29sbGVjdGlvbj1uZXcgdS5DaGFydFdpZGdldENvbGxlY3Rpb24oe3Jlc2l6ZXJCcmlkZ2U6S3QscGFkZGluZzo1LGVkZ2U6TnVtYmVyKE10LnBhZGRpbmcpfHwwLHB1Ymxpc2hlZENoYXJ0c0VuYWJsZWQ6ITEsc2F2ZUNoYXJ0RW5hYmxlZDohMSxleHRlcm5hbFNlcnZpY2VzOnt0cmFkaW5nOnt0cmFkZWRDb250ZXh0TGlua2luZzpuZXcgUC5XYXRjaGVkVmFsdWUobnVsbCksdHJhZGluZ1ByZWZlcmVuY2VzU2VydmljZTpuZXcgUC5XYXRjaGVkVmFsdWUobnVsbCksdHJhZGluZ0ZlYXR1cmVGbGFnc1NlcnZpY2U6bmV3IFAuV2F0Y2hlZFZhbHVlKG51bGwpLHNlbGxCdXlCdXR0b25zVmlzaWJpbGl0eVNlcnZpY2U6bmV3IFAuV2F0Y2hlZFZhbHVlKG51bGwpLHRyYWRpbmdCcm9rZXJTZXJ2aWNlOm5ldyBQLldhdGNoZWRWYWx1ZShudWxsKSx0cmFkaW5nQ2hhcnRDb250ZXh0TWVudVNlcnZpY2U6bmV3IFAuV2F0Y2hlZFZhbHVlKG51bGwpLHRyYWRpbmdQbGFjZU9yZGVyU2VydmljZTpuZXcgUC5XYXRjaGVkVmFsdWUobnVsbCl9fSx3aWRnZXRPcHRpb25zOntvbldpZGdldDohMCx1c2VVc2VyQ2hhcnRQcmVmZXJlbmNlczohYXMoTXQuZG9Ob3RTdG9yZVNldHRpbmdzLCExKSxhZGRUb1dhdGNobGlzdEVuYWJsZWQ6ITEscHJvcGVydHlQYWdlc0VuYWJsZWQ6ITEsY2hhcnRFdmVudHNFbmFibGVkOiExLG5ld3NOb3RpZmljYXRpb25zRW5hYmxlZDohMSxlc2RFbmFibGVkOigwLG8uaXNGZWF0dXJlc2V0RW5hYmxlZCkoImVzZG9ud2lkZ2V0Iiksc291cmNlU3RhdHVzZXNXaWRnZXQ6e2Vycm9yU29sdXRpb246ITF9LG1hcmtldFN0YXR1c1dpZGdldEVuYWJsZWQ6ITAsY2hhcnRXYXJuaW5nV2lkZ2V0OntzdWJzY3JpcHRpb25GdWxsSW5mbzohMX0sd2lkZ2V0Q3VzdG9tZXI6eHQsY3VzdG9tZXJSZWFkYWJsZU5hbWU6UnQsaGlkZUlkZWFzOiEwLGNvbnRyb2xCYXJFbmFibGVkOiEwLGFkZFZvbHVtZTohYXMoTXQuaGlkZV92b2x1bWUpLG11dGVTZXNzaW9uRXJyb3JzOiEoMCxvLmlzRmVhdHVyZXNldEVuYWJsZWQpKCJyZWZlcnJhbF9wcm9ncmFtX2Zvcl93aWRnZXRfb3duZXJzIiksZGVmU3ltYm9sOkJ0LGRlZkludGVydmFsOlh0LGRlZlN0eWxlOlF0LGRlZlNlc3Npb25JZDpEdCx0aW1lem9uZTpNdC50aW1lem9uZXx8THQuZGVmX3RpbWV6b25lLGRlZlRpbWVmcmFtZTprdCxpc0RyYXdpbmdUb29sYmFyVmlzaWJsZTprLmlzRHJhd2luZ1Rvb2xiYXJWaXNpYmxlLHdhdGVybWFya0VuYWJsZWQ6ITAscGFuZUNvbnRleHRNZW51RW5hYmxlZDohMSxjb21wYXJlU3ltYm9sczpGdCx0aW1lU2NhbGVXaWRnZXQ6e2NvbnRleHRNZW51RW5hYmxlZDohMSx0aW1lem9uZU1lbnVFbmFibGVkOiExfSx0aW1lU2NhbGU6e3ByZXNlcnZlQmFyU3BhY2luZzohMCxsb2NrVmlzaWJsZVRpbWVSYW5nZU9uUmVzaXplOiExfSxsZWdlbmRXaWRnZXRFbmFibGVkOiFhcyhNdC5oaWRlX2xlZ2VuZCksbGVnZW5kV2lkZ2V0Ontjb250ZXh0TWVudTp7c2V0dGluZ3M6ITEsZnVuZGFtZW50YWxzOiExLApzaG93T3Blbk1hcmtldFN0YXR1czohMH19LGdvVG9EYXRlRW5hYmxlZDohMSxoYW5kbGVTY3JvbGw6e3ZlcnRUb3VjaERyYWc6YXMoTXQudmVydHRvdWNoZHJhZyksaG9yelRvdWNoRHJhZzphcyhNdC5ob3J6dG91Y2hkcmFnLCEwKX0saGFuZGxlU2NhbGU6e21vdXNlV2hlZWw6ImludmVzdG9wZWRpYSIhPT14dCYmImV1cmV4IiE9PXh0fSxjdXJyZW5jeUNvbnZlcnNpb25FbmFibGVkOiEwLHVuaXRDb252ZXJzaW9uRW5hYmxlZDohMH0sc2VyaWVzQ29udHJvbEJhckVuYWJsZWQ6ISFWdCxzZXJpZXNDb250cm9sQmFyOnt0aW1lRnJhbWVzV2lkZ2V0RW5hYmxlZDohMCx0aW1lRnJhbWVzV2lkZ2V0Ontnb1RvRGF0ZUVuYWJsZWQ6ITEsYXZhaWxhYmxlVGltZUZyYW1lczp6fSx0aW1lV2lkZ2V0RW5hYmxlZDohMCx0aW1lV2lkZ2V0Ont0aW1lem9uZU1lbnVFbmFibGVkOiExfSxhZGp1c3RGb3JEaXZpZGVuZHNCdXR0b25FbmFibGVkOiEwLHNlc3Npb25JZEJ1dHRvbkVuYWJsZWQ6Qm9vbGVhbihEdCksYmFja0FkanVzdG1lbnRCdXR0b25FbmFibGVkOiExLHNldHRsZW1lbnRBc0Nsb3NlQnV0dG9uRW5hYmxlZDohMSxwZXJjZW50YWdlU2NhbGVCdXR0b25FbmFibGVkOiExLGxvZ1NjYWxlQnV0dG9uRW5hYmxlZDohMSxhdXRvU2NhbGVCdXR0b25FbmFibGVkOiExLGxheW91dEZ1bGxzY3JlZW5CdXR0b25FbmFibGVkOiEwLG1vYmlsZUNoYW5nZUxheW91dEVuYWJsZWQ6ITF9LG1vYmlsZUZvcmNlQ2hhcnRNYXhpbWl6ZUVuYWJsZWQ6ITF9KTtsZXQgZXM9ITE7WnQub25BYm91dFRvQmVEZXN0cm95ZWQuc3Vic2NyaWJlKG51bGwsKCgpPT57ZXM9ITB9KSwhMCksTXQuc3R1ZGllc19vdmVycmlkZXMmJlp0LmFwcGx5U3R1ZGllc092ZXJyaWRlcyhKU09OLnBhcnNlKE10LnN0dWRpZXNfb3ZlcnJpZGVzKSksUHJvbWlzZS5hbGwoW3MuZSg4OTYxOCkscy5lKDgwNjM5KSxzLmUoNDk4ODMpXSkudGhlbihzLmJpbmQocyw5MDg0NTQpKS50aGVuKChlPT57ZS5hZGRCcmFuZGluZ1NvdXJjZShadCl9KSk7Y29uc3QgdHM9WnQuYWN0aXZlQ2hhcnRXaWRnZXQudmFsdWUoKTtpZih3aW5kb3cuY2hhcnRXaWRnZXQ9dHMsIVp0LnJlYWRPbmx5KCkpe2NvbnN0IGU9bmV3IFIoWnQpO3dpbmRvdy5zdHVkeU1hcmtldD1uZXcgQyhlLHtvbldpZGdldDohMH0pfWxldCBzcztpZihwLmxpbmtpbmcuYmluZFRvQ2hhcnRXaWRnZXRDb2xsZWN0aW9uKFp0KSxIKHEuTmFtZXMuV2lkZ2V0TG9hZCxNdC5mcmFtZUVsZW1lbnRJZHx8bnVsbCx2b2lkIDApLE10LnRoZW1lKXtjb25zdCBlPU10LnRoZW1lLnRvTG93ZXJDYXNlKCk7aWYoVi50aGVtZXNbZV0peygwLEEuc2V0VGhlbWUpKGUpO2NvbnN0IHQ9Vi5nZXRTdGRUaGVtZShlKTt0JiZ0LmNvbnRlbnQmJihzcz10LmNvbnRlbnQsTXQuc3R5bGUmJihzcy5tYWluU291cmNlUHJvcGVydGllcy5zdHlsZT1wYXJzZUludChNdC5zdHlsZSkpLCgwLGEuYXBwbHlEZWZhdWx0c092ZXJyaWRlcykoc3Mse21haW5TZXJpZXNQcm9wZXJ0aWVzOiJtYWluU291cmNlUHJvcGVydGllcyJ9LCEwKSl9fWxldCBpcz0hMSxucz0hMTtmdW5jdGlvbiBycyhlKXtyZXR1cm4oMCxNZS5pc1BpbmVJZFN0cmluZykoZSk/e3R5cGU6InBpbmUiLHBpbmVJZDplfTp7dHlwZToiamF2YSIsc3R1ZHlJZDplfX1mdW5jdGlvbiBvcygpe2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5sb2FkaW5nLWluZGljYXRvciIpLmZvckVhY2goKGU9PntlIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQmJihlLnN0eWxlLmRpc3BsYXk9Im5vbmUiKX0pKX1mdW5jdGlvbiBhcyhlLHQ9ITEpe3JldHVybiExPT09ZXx8ITA9PT1lP2U6IjEiPT09ZXx8MT09PWV8fCJ0cnVlIj09PWV8fCIwIiE9PWUmJjAhPT1lJiYiZmFsc2UiIT09ZSYmdH10cy53aXRoTW9kZWwobnVsbCwoZnVuY3Rpb24oKXtjb25zdCBlPXRzLm1vZGVsKCkubWFpblNlcmllcygpO3RzLmFwcGx5T3ZlcnJpZGVzKHsibWFpblNlcmllc1Byb3BlcnRpZXMuc2hvd0NvdW50ZG93biI6ITF9KSxzcyYmdHMubW9kZWwoKS5tb2RlbCgpLnJlc3RvcmVUaGVtZShzcywhMSksTXQuYmFja2dyb3VuZENvbG9yJiZ0cy5hcHBseU92ZXJyaWRlcyh7InBhbmVQcm9wZXJ0aWVzLmJhY2tncm91bmQiOk10LmJhY2tncm91bmRDb2xvciwicGFuZVByb3BlcnRpZXMuYmFja2dyb3VuZFR5cGUiOkRlLkNvbG9yVHlwZS5Tb2xpZH0pLE10LmdyaWRDb2xvciYmdHMuYXBwbHlPdmVycmlkZXMoeyJwYW5lUHJvcGVydGllcy52ZXJ0R3JpZFByb3BlcnRpZXMuY29sb3IiOk10LmdyaWRDb2xvciwicGFuZVByb3BlcnRpZXMuaG9yekdyaWRQcm9wZXJ0aWVzLmNvbG9yIjpNdC5ncmlkQ29sb3J9KSxhc3luYyBmdW5jdGlvbihlKXtpZighZSlyZXR1cm47dHJ5e2NvbnN0IHQ9InN0cmluZyI9PXR5cGVvZiBlP0pTT04ucGFyc2UoZGVjb2RlVVJJQ29tcG9uZW50KGUpKTplO2lmKCFBcnJheS5pc0FycmF5KHQpfHwwPT09dC5sZW5ndGgpcmV0dXJuO2NvbnN0IHM9dHMubW9kZWwoKS5tb2RlbCgpLm1haW5TZXJpZXMoKTtmb3IobGV0IGU9MDtlPHQubGVuZ3RoO2UrKyl7Y29uc3QgaT10W2VdO2lmKGkuc3ltYm9sJiZpLnBvc2l0aW9uJiZrZS5Db21wYXJlT3B0aW9uW2kucG9zaXRpb25dKXN3aXRjaChpLnBvc2l0aW9uKXtjYXNlIlNhbWVTY2FsZSI6dHMuYWRkQ29tcGFyZUFzT3ZlcmxheShpLnN5bWJvbCwhMSxzLmlzWWllbGQoKSk7YnJlYWs7Y2FzZSJOZXdQcmljZVNjYWxlIjp0cy5hZGRPdmVybGF5U3R1ZHkoaS5zeW1ib2wsITApO2JyZWFrO2Nhc2UiTmV3UGFuZSI6dHMuYWRkT3ZlcmxheVN0dWR5KGkuc3ltYm9sLCExKX19fWNhdGNoKGUpe3JldHVybn19KE10LmNvbXBhcmVTeW1ib2xzKSxlLmRhdGFFdmVudHMoKS5zeW1ib2xSZXNvbHZlZCgpLnN1YnNjcmliZShlLCgoKT0+eyFmdW5jdGlvbihlLHQpe2lmKCF0KXJldHVybjtjb25zdCBzPWUubW9kZWwoKS5tb2RlbCgpLGk9eHQ/MjA6NTt0cnl7Y29uc3QgZT1KU09OLnBhcnNlKCJzdHJpbmciPT10eXBlb2YgdD90OkpTT04uc3RyaW5naWZ5KHQpKTtlLnNsaWNlKDAsaSkuZm9yRWFjaCgoZT0+e2NvbnN0IHQ9cy5jcmVhdGVTdHVkeUluc2VydGVyKHJzKGUuaWQpKQo7dC5zZXRGb3JjZU92ZXJsYXkoZS5vdmVybGF5KSx0Lmluc2VydCgoKCk9PlByb21pc2UucmVzb2x2ZSh7aW5wdXRzOmUuaW5wdXRzLHBhcmVudFNvdXJjZXM6W119KSkpfSkpfWNhdGNoKGUpeygoQXJyYXkuaXNBcnJheSh0KT90OnQuc3BsaXQoL1x4MWYvKSl8fFtdKS5zbGljZSgwLGkpLmZvckVhY2goKGU9PntzLmNyZWF0ZVN0dWR5SW5zZXJ0ZXIocnMoZSkpLmluc2VydCgpfSkpfX0od2luZG93LmNoYXJ0V2lkZ2V0LE10LnN0dWRpZXMpfSksITApLGUuZGF0YUV2ZW50cygpLmNvbXBsZXRlZCgpLnN1YnNjcmliZSh0aGlzLCgoKT0+e3NzJiZvcygpLFEmJiFpcyYmKFEoWnQsITApLGlzPSEwKSxlZSYmIW5zJiYoZWUoWnQse3Nlcmllc0NvbnRyb2xCYXJFbmFibGVkOiEhVnR9KSxucz0hMCl9KSksZS5kYXRhRXZlbnRzKCkuc3ltYm9sRXJyb3IoKS5zdWJzY3JpYmUobnVsbCwoKCk9PntIKHEuTmFtZXMuTm9EYXRhLE10LmZyYW1lRWxlbWVudElkfHxudWxsLHZvaWQgMCl9KSl9KSkscXQmJihhc3luYygpPT57CmNvbnN0W2UsdCx7RHJhd2luZ1Rvb2xiYXI6aX0se0xpbmVUb29sUHJvcGVydGllc1dpZGdldDpufV09YXdhaXQgUHJvbWlzZS5hbGwoW1Byb21pc2UuYWxsKFtzLmUoNTQ4NTIpLHMuZSg4NDMwNikscy5lKDQ2OTA3KSxzLmUoMjAzNTQpLHMuZSgxMzQ5Mikscy5lKDEyMzg1KSxzLmUoODEwNzIpLHMuZSg5NDk0OCkscy5lKDIzNjI0KSxzLmUoMjk1MzYpLHMuZSg5NDIzMikscy5lKDUxODQpLHMuZSg2Nzc5OSkscy5lKDI0NTgxKSxzLmUoODY0MjMpLHMuZSg0MDgzNSkscy5lKDE3MDg3KSxzLmUoNzg2NTIpLHMuZSg3MDgxNSkscy5lKDcxNDE0KSxzLmUoNTI2ODApLHMuZSgzNTc5NCkscy5lKDg5MjA0KSxzLmUoODk1NTgpLHMuZSgxMDM2Nikscy5lKDY5ODYxKSxzLmUoMjAyKSxzLmUoNzI1MTIpLHMuZSg1NTAxMSkscy5lKDE1NjM0KSxzLmUoNzUzMDQpLHMuZSg1MjA5NSkscy5lKDcwNjU2KSxzLmUoNDQwMzEpLHMuZSg3MTkwMSkscy5lKDQwOTE0KSxzLmUoODEyNDcpLHMuZSgyMzY2OSkscy5lKDM4NDc5KSxzLmUoMjA1NjQpLHMuZSg2NzkyNSkscy5lKDM1MzQyKSxzLmUoMjMyNTQpLHMuZSg2NjQ3KSxzLmUoODY5OTcpLHMuZSg3OTI3KSxzLmUoNzk3OTEpLHMuZSgzNTA3Mykscy5lKDUwMzE2KSxzLmUoMzUzOTkpLHMuZSgzMjM4Nykscy5lKDgwOTE1KSxzLmUoMTg1MTIpLHMuZSgzNTM5MCkscy5lKDM4MDg2KSxzLmUoNzYwMzMpLHMuZSgyNjExOCkscy5lKDIwMzMxKSxzLmUoNDI5MzQpXSkudGhlbihzLnQuYmluZChzLDc3OTQ3NCwxOSkpLFByb21pc2UuYWxsKFtzLmUoNTQ4NTIpLHMuZSg4NDMwNikscy5lKDQ2OTA3KSxzLmUoMjAzNTQpLHMuZSgxMzQ5Mikscy5lKDEyMzg1KSxzLmUoODEwNzIpLHMuZSg5NDk0OCkscy5lKDIzNjI0KSxzLmUoMjk1MzYpLHMuZSg5NDIzMikscy5lKDUxODQpLHMuZSg2Nzc5OSkscy5lKDI0NTgxKSxzLmUoODY0MjMpLHMuZSg0MDgzNSkscy5lKDE3MDg3KSxzLmUoNzg2NTIpLHMuZSg3MDgxNSkscy5lKDcxNDE0KSxzLmUoNTI2ODApLHMuZSgzNTc5NCkscy5lKDg5MjA0KSxzLmUoODk1NTgpLHMuZSgxMDM2Nikscy5lKDY5ODYxKSxzLmUoMjAyKSxzLmUoNzI1MTIpLHMuZSg1NTAxMSkscy5lKDE1NjM0KSxzLmUoNzUzMDQpLHMuZSg1MjA5NSkscy5lKDcwNjU2KSxzLmUoNDQwMzEpLHMuZSg3MTkwMSkscy5lKDQwOTE0KSxzLmUoODEyNDcpLHMuZSgyMzY2OSkscy5lKDM4NDc5KSxzLmUoMjA1NjQpLHMuZSg2NzkyNSkscy5lKDM1MzQyKSxzLmUoMjMyNTQpLHMuZSg2NjQ3KSxzLmUoODY5OTcpLHMuZSg3OTI3KSxzLmUoNzk3OTEpLHMuZSgzNTA3Mykscy5lKDUwMzE2KSxzLmUoMzUzOTkpLHMuZSgzMjM4Nykscy5lKDgwOTE1KSxzLmUoMTg1MTIpLHMuZSgzNTM5MCkscy5lKDM4MDg2KSxzLmUoNzYwMzMpLHMuZSgyNjExOCkscy5lKDIwMzMxKSxzLmUoNDI5MzQpXSkudGhlbihzLnQuYmluZChzLDEyOTM2NSwxOSkpLFByb21pc2UuYWxsKFtzLmUoNTQ4NTIpLHMuZSg4NDMwNikscy5lKDQ2OTA3KSxzLmUoMjAzNTQpLHMuZSgxMzQ5Mikscy5lKDEyMzg1KSxzLmUoODEwNzIpLHMuZSg5NDk0OCkscy5lKDIzNjI0KSxzLmUoMjk1MzYpLHMuZSg5NDIzMikscy5lKDUxODQpLHMuZSg2Nzc5OSkscy5lKDI0NTgxKSxzLmUoODY0MjMpLHMuZSg0MDgzNSkscy5lKDE3MDg3KSxzLmUoNzg2NTIpLHMuZSg3MDgxNSkscy5lKDcxNDE0KSxzLmUoNTI2ODApLHMuZSgzNTc5NCkscy5lKDg5MjA0KSxzLmUoODk1NTgpLHMuZSgxMDM2Nikscy5lKDY5ODYxKSxzLmUoMjAyKSxzLmUoNzI1MTIpLHMuZSg1NTAxMSkscy5lKDE1NjM0KSxzLmUoNzUzMDQpLHMuZSg1MjA5NSkscy5lKDcwNjU2KSxzLmUoNDQwMzEpLHMuZSg3MTkwMSkscy5lKDQwOTE0KSxzLmUoODEyNDcpLHMuZSgyMzY2OSkscy5lKDM4NDc5KSxzLmUoMjA1NjQpLHMuZSg2NzkyNSkscy5lKDM1MzQyKSxzLmUoMjMyNTQpLHMuZSg2NjQ3KSxzLmUoODY5OTcpLHMuZSg3OTI3KSxzLmUoNzk3OTEpLHMuZSgzNTA3Mykscy5lKDUwMzE2KSxzLmUoMzUzOTkpLHMuZSgzMjM4Nykscy5lKDgwOTE1KSxzLmUoMTg1MTIpLHMuZSgzNTM5MCkscy5lKDM4MDg2KSxzLmUoNzYwMzMpLHMuZSgyNjExOCkscy5lKDIwMzMxKSxzLmUoNDI5MzQpXSkudGhlbihzLmJpbmQocyw1OTM5MjcpKSxQcm9taXNlLmFsbChbcy5lKDU0ODUyKSxzLmUoODQzMDYpLHMuZSg0NjkwNykscy5lKDIwMzU0KSxzLmUoMTM0OTIpLHMuZSgxMjM4NSkscy5lKDgxMDcyKSxzLmUoOTQ5NDgpLHMuZSgyMzYyNCkscy5lKDI5NTM2KSxzLmUoOTQyMzIpLHMuZSg1MTg0KSxzLmUoNjc3OTkpLHMuZSgyNDU4MSkscy5lKDg2NDIzKSxzLmUoNDA4MzUpLHMuZSgxNzA4Nykscy5lKDc4NjUyKSxzLmUoNzA4MTUpLHMuZSg3MTQxNCkscy5lKDUyNjgwKSxzLmUoMzU3OTQpLHMuZSg4OTIwNCkscy5lKDg5NTU4KSxzLmUoMTAzNjYpLHMuZSg2OTg2MSkscy5lKDIwMikscy5lKDcyNTEyKSxzLmUoNTUwMTEpLHMuZSgxNTYzNCkscy5lKDc1MzA0KSxzLmUoNTIwOTUpLHMuZSg3MDY1Nikscy5lKDQ0MDMxKSxzLmUoNzE5MDEpLHMuZSg0MDkxNCkscy5lKDgxMjQ3KSxzLmUoMjM2NjkpLHMuZSgzODQ3OSkscy5lKDIwNTY0KSxzLmUoNjc5MjUpLHMuZSgzNTM0Mikscy5lKDIzMjU0KSxzLmUoNjY0Nykscy5lKDg2OTk3KSxzLmUoNzkyNykscy5lKDc5NzkxKSxzLmUoMzUwNzMpLHMuZSg1MDMxNikscy5lKDM1Mzk5KSxzLmUoMzIzODcpLHMuZSg4MDkxNSkscy5lKDE4NTEyKSxzLmUoMzUzOTApLHMuZSgzODA4Nikscy5lKDc2MDMzKSxzLmUoMjYxMTgpLHMuZSgyMDMzMSkscy5lKDQyOTM0KV0pLnRoZW4ocy5iaW5kKHMsMjQ3MjEyKSldKTtlc3x8KHQucmVuZGVyKGUuY3JlYXRlRWxlbWVudChpLHtjaGFydFdpZGdldENvbGxlY3Rpb246WnQscmVzaXplckJyaWRnZTpxdCxzY3JlZW5zaG90QnV0dG9uOiJjbWUiPT09eHR9KSxxdC5jb250YWluZXIudmFsdWUoKSksd2luZG93LmxpbmVUb29sUHJvcGVydGllc1Rvb2xiYXI9bmV3IG4oWnQpKX0pKCksJHQmJihhc3luYygpPT57CmNvbnN0W2UsdCxpLHtIZWFkZXJUb29sYmFyOm59XT1hd2FpdCBQcm9taXNlLmFsbChbSyh4dCksUHJvbWlzZS5hbGwoW3MuZSgxNjE5Mykscy5lKDUwMzE2KSxzLmUoODM2NzUpLHMuZSgzMjM4Nykscy5lKDQzOTI2KV0pLnRoZW4ocy50LmJpbmQocyw3Nzk0NzQsMTkpKSxQcm9taXNlLmFsbChbcy5lKDE2MTkzKSxzLmUoNTAzMTYpLHMuZSg4MzY3NSkscy5lKDMyMzg3KSxzLmUoNDM5MjYpXSkudGhlbihzLnQuYmluZChzLDEyOTM2NSwxOSkpLFByb21pc2UuYWxsKFtzLmUoMTYxOTMpLHMuZSg1MDMxNikscy5lKDgzNjc1KSxzLmUoMzIzODcpLHMuZSg0MzkyNildKS50aGVuKHMuYmluZChzLDUyMzgwMSkpXSkscj1hd2FpdCBlLmdldFRvb2xTZXQoKSxvPUYubW9iaWxldG91Y2g/WyJmdWxsIl06dm9pZCAwO2kucmVuZGVyKHQuY3JlYXRlRWxlbWVudChuLHt0b29sczpyLGNoYXJ0QXBpSW5zdGFuY2U6d2luZG93LkNoYXJ0QXBpSW5zdGFuY2UsYXZhaWxhYmxlVGltZUZyYW1lczp6LGNoYXJ0V2lkZ2V0Q29sbGVjdGlvbjpadCxpZGVhczohMSxyZXNpemVyQnJpZGdlOiR0LHBvcHVwQnV0dG9uOmFzKE10LnNob3dfcG9wdXBfYnV0dG9uKSxzdHVkeU1hcmtldDp3aW5kb3cuc3R1ZHlNYXJrZXQsd2luZG93TWVzc2FnZVNlcnZpY2U6T3QsaXNGdW5kYW1lbnRhbDohMSxhbGxvd2VkTW9kZXM6b30pLCR0LmNvbnRhaW5lci52YWx1ZSgpKX0pKCksWXQmJihhc3luYygpPT57Y29uc3Rbe1dpZGdldEJhcjplfSx7Y29uZmlndXJhdGlvbjp0fV09YXdhaXQgUHJvbWlzZS5hbGwoW1Byb21pc2UuYWxsKFtzLmUoOTU1NSkscy5lKDI5Mjk2KSxzLmUoNjAwNjIpLHMuZSg5NTA0KSxzLmUoNTUwMTEpLHMuZSg3NTMwNCkscy5lKDc5NzkxKSxzLmUoODU1MTEpLHMuZSgzMjM4Nykscy5lKDMwNjk5KSxzLmUoODE3NTApLHMuZSg1NjM4MildKS50aGVuKHMuYmluZChzLDUyMDYyMSkpLFByb21pc2UuYWxsKFtzLmUoOTU1NSkscy5lKDI5Mjk2KSxzLmUoNjAwNjIpLHMuZSg5NTA0KSxzLmUoNTUwMTEpLHMuZSg3NTMwNCkscy5lKDc5NzkxKSxzLmUoODU1MTEpLHMuZSgzMjM4Nykscy5lKDMwNjk5KSxzLmUoODE3NTApLHMuZSg1NjM4MildKS50aGVuKHMuYmluZChzLDM2OTI3MSkpXSk7enQuZm9yRWFjaCgoZT0+e2Uud2lkZ2V0cz1lLndpZGdldHM/LmZpbHRlcigoZT0+ISh2b2lkIDAhPT1lLmlzRW5hYmxlZCYmIWUuaXNFbmFibGVkKSkpfSkpO3dpbmRvdy53aWRnZXRiYXI9bmV3IGUoe3Jlc2l6ZXJCcmlkZ2U6WXQsYWZmZWN0c0xheW91dDooKT0+anQuYWZmZWN0c0xheW91dCgicmlnaHQiKSxyZWFkb25seTohMCxzdGF0ZTp7d2lkdGg6V3QscGFnZXM6enR9LHNob3dDbG9zZUJ1dHRvbjohMCxjb25maWd1cmF0aW9uOigpPT50KHtjaGFydEFwaUluc3RhbmNlOndpbmRvdy5DaGFydEFwaUluc3RhbmNlfSksbW9kZWxzOigpPT5bXX0pfSkoKSx0cy5vbkRpc2Nvbm5lY3RlZCgpLnN1YnNjcmliZShudWxsLChlPT57dmFyIHQ7b3MoKSxlJiYodD0oKT0+e3dpbmRvdy5DaGFydEFwaUluc3RhbmNlLmRpc2Nvbm5lY3QoKSxzZXRUaW1lb3V0KCgoKT0+e3dpbmRvdy5DaGFydEFwaUluc3RhbmNlLmNvbm5lY3QoKSx0cy5yZWNvbm5lY3QoKX0pLDUwMCl9LHcoKS50aGVuKChlPT5lLnNob3dDcml0aWNhbEVycm9yTWVzc2FnZSh0KSkpKX0pKSx0cy5vblJlY29ubmVjdEJhaWxvdXQoKS5zdWJzY3JpYmUobnVsbCwoKCk9Pnt2YXIgZTtlPSgpPT57c2V0VGltZW91dCgoKCk9Pnt3aW5kb3cuQ2hhcnRBcGlJbnN0YW5jZS5jb25uZWN0KCl9KSwwKX0sdygpLnRoZW4oKHQ9PnQuc2hvd0Rpc2Nvbm5lY3RlZE1lc3NhZ2UoZSkpKX0pKSxkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIudHYtY29udGVudCIpLmZvckVhY2goKGU9PntlLmFkZEV2ZW50TGlzdGVuZXIoImNvbnRleHRtZW51IiwoZT0+e2UudGFyZ2V0IGluc3RhbmNlb2YgRWxlbWVudCYmZS50YXJnZXQubWF0Y2hlcygiaW5wdXQsIHRleHRhcmVhIil8fGUucHJldmVudERlZmF1bHQoKX0pKX0pKSxNdC53aG90cmFkZXMmJigwLG8uc2V0RW5hYmxlZCkoIndob3RyYWRlc19hdXRoX29ubHkiLCEwKSxkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIubG9hZGluZy1pbmRpY2F0b3IiKS5mb3JFYWNoKChlPT57ZS5yZW1vdmUoKX0pKSwoKCk9PntsZXQgZTtjb25zdCB0PXQ9Pnt2b2lkIDAhPT1lJiYoMCxmLmdldFF1b3RlU2Vzc2lvbkluc3RhbmNlKSgic2ltcGxlIikudW5zdWJzY3JpYmUoIndpZGdldFF1b3RlTGlzdGVuZXIiLGUpLGU9dCwoMCxmLmdldFF1b3RlU2Vzc2lvbkluc3RhbmNlKSgic2ltcGxlIikuc3Vic2NyaWJlKCJ3aWRnZXRRdW90ZUxpc3RlbmVyIix0LChlPT57Y29uc3QgdD1lLnZhbHVlcyxzPVsiY2hhbmdlIiwiY2hhbmdlX3BlcmNlbnQiLCJsYXN0X3ByaWNlIiwib3JpZ2luYWxfbmFtZSIsInNob3J0X25hbWUiLCJleGNoYW5nZSIsImRlc2NyaXB0aW9uIiwidm9sdW1lIl0saT17fTtmb3IobGV0IGU9MDtlPHMubGVuZ3RoO2UrKyl7Y29uc3Qgbj1zW2VdO2lmKCF0Lmhhc093blByb3BlcnR5KG4pKXJldHVybjtpW25dPXRbbl19aS52b2x1bWU9MWUxMDA9PT10LnZvbHVtZT92b2lkIDA6dC52b2x1bWUsT3QucG9zdChwYXJlbnQsInF1b3RlVXBkYXRlIixpKX0pKX07dHMud2l0aE1vZGVsKG51bGwsKCgpPT57Y29uc3QgZT10cy5tb2RlbCgpLm1haW5TZXJpZXMoKTtlLnByb3BlcnRpZXMoKS5jaGlsZHMoKS5zeW1ib2wuc3Vic2NyaWJlKGUsKGU9Pnt0KGUudmFsdWUoKSksInRlbGVncmFtIj09PXh0JiZPdC5wb3N0KHBhcmVudCwic3ltYm9sQ2hhbmdlZCIsZS52YWx1ZSgpKX0pKX0pKSxPdC5vbigicXVvdGVTdWJzY3JpYmUiLCgoKT0+e2NvbnN0IGU9dHMubW9kZWwoKS5tYWluU2VyaWVzKCkucHJvcGVydGllcygpLmNoaWxkcygpLnN5bWJvbC52YWx1ZSgpO3QoZSl9KSksT3Qub24oImltYWdlQ2FudmFzIiwoKGUsdCk9PntadC5jbGllbnRTbmFwc2hvdCgpLnRoZW4oKGU9Pnt0cnl7dCh7ZGF0YVVybDplLnRvRGF0YVVSTCgiaW1hZ2UvcG5nIiksd2lkdGg6ZS53aWR0aCxoZWlnaHQ6ZS5oZWlnaHR9KX1jYXRjaHt0KCl9fSkpLmNhdGNoKCgoKT0+e3QoKX0pKX0pKSwKT3Qub24oInN5bWJvbEluZm8iLCgoZSx0KT0+e2NvbnN0IHM9KDAsci5lbnN1cmVOb3ROdWxsKSh0cy5tb2RlbCgpLm1haW5TZXJpZXMoKS5zeW1ib2xJbmZvKCkpLGk9dHMubW9kZWwoKS5tYWluU2VyaWVzKCkucHJvcGVydGllcygpLmNoaWxkcygpLmludGVydmFsLnZhbHVlKCk7dCh7bmFtZTpzLm5hbWUsZXhjaGFuZ2U6cy5leGNoYW5nZSxkZXNjcmlwdGlvbjpzLmRlc2NyaXB0aW9uLHR5cGU6cy50eXBlLGludGVydmFsOml9KX0pKSxPdC5vbigid2lkZ2V0UmVhZHkiLCgoZSx0KT0+e3RzLndpdGhNb2RlbChudWxsLCgoKT0+e2xldCBlO3RzLm1vZGVsKCkubWFpblNlcmllcygpLnN5bWJvbEluZm8oKT90KCk6KGU9KCk9Pnt0KCksdHMubW9kZWwoKS5tYWluU2VyaWVzKCkuZGF0YUV2ZW50cygpLnN5bWJvbFJlc29sdmVkKCkudW5zdWJzY3JpYmUobnVsbCxlKX0sdHMubW9kZWwoKS5tYWluU2VyaWVzKCkuZGF0YUV2ZW50cygpLnN5bWJvbFJlc29sdmVkKCkuc3Vic2NyaWJlKG51bGwsZSkpfSkpfSkpLGooJC5OYW1lcy5TZXRTeW1ib2wsKGU9PntlJiZlLnN5bWJvbCYmWnQuc2V0U3ltYm9sKGUuc3ltYm9sKX0pKSxqKCQuTmFtZXMuU2V0SW50ZXJ2YWwsKGU9PntlJiZlLmludGVydmFsJiZadC5zZXRSZXNvbHV0aW9uKGUuaW50ZXJ2YWwpfSkpfSkoKSx3aW5kb3cuYXBwbHlTdHVkaWVzT3ZlcnJpZGVzPWU9PntlJiZ3aW5kb3cuY2hhcnRXaWRnZXRDb2xsZWN0aW9uLmFwcGx5U3R1ZGllc092ZXJyaWRlcyhlKX19LDkzMDIzMShlLHQscyl7InVzZSBzdHJpY3QiO3MuZCh0LHtkaXNhYmxlOigpPT51LGlzRmVhdHVyZXNldEVuYWJsZWQ6KCk9PmEsc2V0RW5hYmxlZDooKT0+bH0pO3ZhciBpPXMoNjM1MTgpO2NvbnN0IG49bmV3IE1hcCxyPW5ldyBNYXAsbz1uZXcgU2V0O2Z1bmN0aW9uIGEoZSl7Y29uc3QgdD1uLmdldChlKTtpZih2b2lkIDAhPT10KXJldHVybiB0O2NvbnN0IHM9ci5nZXQoZSk7cmV0dXJuISFzJiZzLnNvbWUoYSl9ZnVuY3Rpb24gbChlLHQpe24uc2V0KFN0cmluZyhlKSxCb29sZWFuKHQpKX1mdW5jdGlvbiB1KGUpe2woZSwhMSl9IWZ1bmN0aW9uKCl7Zm9yKGNvbnN0W2UsdF1vZiBPYmplY3QuZW50cmllcyhpKSlpZihvLmFkZChlKSwic3Vic2V0cyJpbiB0KWZvcihjb25zdCBzIG9mIHQuc3Vic2V0cyl7by5hZGQocyk7bGV0IHQ9ci5nZXQocyk7dm9pZCAwPT09dCYmKHQ9W10sci5zZXQocyx0KSksdC5wdXNoKGUpfX0oKSwib2JqZWN0Ij09dHlwZW9mIF9faW5pdGlhbERpc2FibGVkRmVhdHVyZXNldHMmJkFycmF5LmlzQXJyYXkoX19pbml0aWFsRGlzYWJsZWRGZWF0dXJlc2V0cykmJl9faW5pdGlhbERpc2FibGVkRmVhdHVyZXNldHMuZm9yRWFjaCh1KSwib2JqZWN0Ij09dHlwZW9mIF9faW5pdGlhbEVuYWJsZWRGZWF0dXJlc2V0cyYmQXJyYXkuaXNBcnJheShfX2luaXRpYWxFbmFibGVkRmVhdHVyZXNldHMpJiZfX2luaXRpYWxFbmFibGVkRmVhdHVyZXNldHMuZm9yRWFjaCgoZnVuY3Rpb24oZSl7bChlLCEwKX0pKX0sNzkyNjEyKGUsdCxzKXsidXNlIHN0cmljdCI7cy5kKHQse2dldEZyZXNoSW5pdERhdGE6KCk9PnUsZ2V0SW5pdERhdGE6KCk9PmwsdXBkYXRlSW5pdERhdGE6KCk9PmF9KTt2YXIgaT1zKDEzODYzOCk7Y29uc3Qgbj0oMCxzKDIyMTA2MSkuZ2V0TG9nZ2VyKSgiQ29tbW9uLkluaXREYXRhIikscj13aW5kb3cuaW5pdERhdGF8fHt9O2Z1bmN0aW9uIG8oKXshZnVuY3Rpb24oKXtjb25zdCBlPXdpbmRvdztlLmluaXREYXRhJiZlLmluaXREYXRhIT09ciYmKE9iamVjdC5hc3NpZ24ocixlLmluaXREYXRhKSxlLmluaXREYXRhPXIpfSgpO2NvbnN0IGU9ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnc2NyaXB0W3R5cGU9ImFwcGxpY2F0aW9uL3Bycy5pbml0LWRhdGEranNvbiJdJyk7Zm9yKGxldCB0PTA7dDxlLmxlbmd0aDt0Kyspe2NvbnN0IHM9ZVt0XTt0cnl7Y29uc3QgZT1KU09OLnBhcnNlKCgwLGkuZW5zdXJlTm90TnVsbCkocy50ZXh0Q29udGVudCkpO09iamVjdC5hc3NpZ24ocixlKX1jYXRjaChlKXtuLmxvZ1dhcm4oYEZhaWxlZCB0byBwYXJzZSBpbml0RGF0YSBlbGVtZW50LiAke2V9YCl9ZmluYWxseXsoMCxpLmVuc3VyZU5vdE51bGwpKHMucGFyZW50Tm9kZSkucmVtb3ZlQ2hpbGQocyl9fWNvbnN0IHQ9ci5jb250ZW50O3QmJnIuc3R1ZHlfbWV0YV9pbmZvX21hcCYmKHQuc3R1ZHlNZXRhSW5mb01hcD17Li4udC5zdHVkeU1ldGFJbmZvTWFwLC4uLnIuc3R1ZHlfbWV0YV9pbmZvX21hcH0pfWZ1bmN0aW9uIGEoKXtvKCl9ZnVuY3Rpb24gbCgpe3JldHVybiByfWZ1bmN0aW9uIHUoKXtyZXR1cm4gbygpLHJ9fSwyNjk1MzEoZSx0LHMpeyJ1c2Ugc3RyaWN0IjtzLmQodCx7Q2hhbm5lbE11bHRpcGxleGVyOigpPT5pfSk7Y2xhc3MgaXtjb25zdHJ1Y3Rvcigpe3RoaXMuX2hhbmRsZXJzPXt9LHRoaXMuX3NwZWNpYWxIYW5kbGVycz17fX1vbihlLHQpe2NvbnN0IHM9dGhpcy5faXNTcGVjaWFsQ2hhbm5lbChlKT90aGlzLl9zcGVjaWFsSGFuZGxlcnM6dGhpcy5faGFuZGxlcnM7c1tlXXx8KHNbZV09W10pLHNbZV0ucHVzaCh0KX1vZmYoZSx0KXtjb25zdCBzPXRoaXMuX2lzU3BlY2lhbENoYW5uZWwoZSk/dGhpcy5fc3BlY2lhbEhhbmRsZXJzOnRoaXMuX2hhbmRsZXJzO2lmKCEoZSBpbiBzKSlyZXR1cm47aWYodm9pZCAwPT09dClyZXR1cm4gdm9pZCBkZWxldGUgc1tlXTtjb25zdCBpPXNbZV0uaW5kZXhPZih0KTtpPj0wJiZzW2VdLnNwbGljZShpLDEpfWVtaXQoZSx0LHMsaSl7dGhpcy5faGFuZGxlcnNbc10mJnRoaXMuX2hhbmRsZXJzW3NdLmZvckVhY2goKG49PntuKGUsdCxzLGkpfSkpO2Zvcihjb25zdCBuIG9mIE9iamVjdC5rZXlzKHRoaXMuX3NwZWNpYWxIYW5kbGVycykpe2NvbnN0IHI9Il4iK24ucmVwbGFjZSgvXCovZywiLio/IikrIiQiO25ldyBSZWdFeHAocikudGVzdChzKSYmdGhpcy5fc3BlY2lhbEhhbmRsZXJzW25dLmZvckVhY2goKG49PntuKGUsdCxzLGkpfSkpfX1faXNTcGVjaWFsQ2hhbm5lbChlKXtyZXR1cm4vXCovLnRlc3QoZSl9fX0sNjE1NzY5KGUsdCxzKXsidXNlIHN0cmljdCI7cy5kKHQse011bHRpcGxleGVyU3RhdGU6KCk9Pmx9KQo7dmFyIGk9cyg5NDgzODApLG49cygxNTAxNTApLHI9cyg3Njg3NjApLG89cygxNTI2OTkpLGE9cyg4NDg4NTUpO2NsYXNzIGx7Y29uc3RydWN0b3IoKXt0aGlzLl9pZD0oMCxuLmd1aWQpKCksdGhpcy5fc3RhdGU9e1t0aGlzLl9pZF06e319LHRoaXMuX3hFdmVudFByZWZpeD0ibXVsdGlwbGV4ZXItc3RhdGUtIix0aGlzLl94RXZlbnRDcmVhdGVUYWI9dGhpcy5feEV2ZW50UHJlZml4KyJjcmVhdGUtbmV3LXRhYiIsdGhpcy5feEV2ZW50U2hhcmVTdGF0ZT10aGlzLl94RXZlbnRQcmVmaXgrInNoYXJlLXN0YXRlIix0aGlzLl9sb2NrTmFtZT0idGFiX2Rlc3RydWN0aW9uIix0aGlzLl9zdGF0ZUNoYW5nZURlbGVnYXRlPW5ldyBpLkRlbGVnYXRlLHRoaXMuX2NyZWF0ZWRMb2Nrcz17fSx0aGlzLl9sb2NrRW5hYmxlZD0oMCxhLndlYkxvY2tFbmFibGVkKSgpLHRoaXMuX2xvY2tQcm9taXNlPSgwLHIuY3JlYXRlRGVmZXJyZWRQcm9taXNlKSgpLHRoaXMuX2xvY2tDcmVhdGVkPSgwLHIuY3JlYXRlRGVmZXJyZWRQcm9taXNlKSgpLHRoaXMuX29uVGFiQ3JlYXRlQ2I9bnVsbCx0aGlzLl9vblRhYkNyZWF0ZT1lPT57dGhpcy5fb25UYWJDcmVhdGVDYiYmdGhpcy5fb25UYWJDcmVhdGVDYigpO2NvbnN0IHQ9SlNPTi5wYXJzZShlKTt0aGlzLl9zdGF0ZVt0XT17fSx0aGlzLl9zaGFyZVN0YXRlKCksdGhpcy5fcmVxdWVzdFRhYlJlbW92ZUxvY2sodCl9LHRoaXMuX3NoYXJlU3RhdGU9YXN5bmMoKT0+e2F3YWl0IHRoaXMuX2xvY2tDcmVhdGVkLnByb21pc2U7Y29uc3QgZT1KU09OLnN0cmluZ2lmeShbdGhpcy5faWQsdGhpcy5fc3RhdGVbdGhpcy5faWRdXSk7by5UVlhXaW5kb3dFdmVudHMuZW1pdCh0aGlzLl94RXZlbnRTaGFyZVN0YXRlLGUpfSx0aGlzLl9yZXF1ZXN0VGFiUmVtb3ZlTG9jaz1lPT57IXRoaXMuX2NyZWF0ZWRMb2Nrc1tlXSYmdGhpcy5fbG9ja0VuYWJsZWQmJih0aGlzLl9jcmVhdGVkTG9ja3NbZV09MSxuYXZpZ2F0b3IubG9ja3MucmVxdWVzdChgJHt0aGlzLl9sb2NrTmFtZX1fJHtlfWAsKGFzeW5jKCk9Pntjb25zdCB0PXRoaXMuX3N0YXRlW2VdfHx7fTt0aGlzLl9jb21wYXJlVGFiU3RhdGUoZSx7fSx0LCJhZGQiKSx0aGlzLl9jb21wYXJlVGFiU3RhdGUoZSx0LHt9LCJyZW1vdmUiKSxkZWxldGUgdGhpcy5fc3RhdGVbZV0sZGVsZXRlIHRoaXMuX2NyZWF0ZWRMb2Nrc1tlXX0pKSl9LHRoaXMuX29uU2hhcmVTdGF0ZUZyb21PdGhlcj1lPT57Y29uc3RbdCxzXT1KU09OLnBhcnNlKGUpLGk9dGhpcy5fc3RhdGVbdF18fHt9O3RoaXMuX2NvbXBhcmVUYWJTdGF0ZSh0LHMsaSwiYWRkIiksdGhpcy5fY29tcGFyZVRhYlN0YXRlKHQsaSxzLCJyZW1vdmUiKSx0aGlzLl9zdGF0ZVt0XT1zLHRoaXMuX3JlcXVlc3RUYWJSZW1vdmVMb2NrKHQpfSx0aGlzLl9yZW1vdmVDaGFubmVsPShlLHQpPT57ZGVsZXRlIHRoaXMuX3N0YXRlW3RoaXMuX2lkXVtlXVt0XSx0aGlzLl9pc0xpc3RlbkJ5QW5vdGhlclRhYihlLHQpfHx0aGlzLl9zdGF0ZUNoYW5nZURlbGVnYXRlLmZpcmUoInJlbW92ZSIsZSx0KTswPT09T2JqZWN0LmtleXModGhpcy5fc3RhdGVbdGhpcy5faWRdW2VdKS5sZW5ndGgmJmRlbGV0ZSB0aGlzLl9zdGF0ZVt0aGlzLl9pZF1bZV19LG8uVFZYV2luZG93RXZlbnRzLm9uKHRoaXMuX3hFdmVudENyZWF0ZVRhYix0aGlzLl9vblRhYkNyZWF0ZSksby5UVlhXaW5kb3dFdmVudHMub24odGhpcy5feEV2ZW50U2hhcmVTdGF0ZSx0aGlzLl9vblNoYXJlU3RhdGVGcm9tT3RoZXIpLHRoaXMuX2xvY2tFbmFibGVkP25hdmlnYXRvci5sb2Nrcy5yZXF1ZXN0KGAke3RoaXMuX2xvY2tOYW1lfV8ke3RoaXMuX2lkfWAsKGFzeW5jKCk9PihvLlRWWFdpbmRvd0V2ZW50cy5lbWl0KHRoaXMuX3hFdmVudENyZWF0ZVRhYixKU09OLnN0cmluZ2lmeSh0aGlzLl9pZCkpLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJiZWZvcmV1bmxvYWQiLCgoKT0+dGhpcy5fbG9ja1Byb21pc2UucmVzb2x2ZSgpKSksdGhpcy5fbG9ja0NyZWF0ZWQucmVzb2x2ZSgpLHRoaXMuX2xvY2tQcm9taXNlLnByb21pc2UpKSk6dGhpcy5fbG9ja0NyZWF0ZWQucmVzb2x2ZSgpfWFkZENoYW5uZWwoZSx0KXt0aGlzLl9pc05vdEVtcHR5KGUsdCk/dGhpcy5fc3RhdGVbdGhpcy5faWRdW2VdW3RdKys6KHRoaXMuX3N0YXRlW3RoaXMuX2lkXVtlXXx8KHRoaXMuX3N0YXRlW3RoaXMuX2lkXVtlXT17fSksdGhpcy5fc3RhdGVbdGhpcy5faWRdW2VdW3RdPTEpLHRoaXMuX2lzTGlzdGVuQnlBbm90aGVyVGFiKGUsdCl8fHRoaXMuX3N0YXRlQ2hhbmdlRGVsZWdhdGUuZmlyZSgiYWRkIixlLHQpLHRoaXMuX3NoYXJlU3RhdGUoKX1yZW1vdmVDaGFubmVsKGUsdCl7dGhpcy5faXNFeGlzdChlLHQpJiYodGhpcy5fc3RhdGVbdGhpcy5faWRdW2VdW3RdLS0sdGhpcy5faXNOb3RFbXB0eShlLHQpfHx0aGlzLl9yZW1vdmVDaGFubmVsKGUsdCksdGhpcy5fc2hhcmVTdGF0ZSgpKX1jb2xsZWN0UHVzaFN0cmVhbUNoYW5uZWxzKGUpe2NvbnN0IHQ9bmV3IFNldDtyZXR1cm4gT2JqZWN0LmtleXModGhpcy5fc3RhdGUpLmZvckVhY2goKHM9Pntjb25zdCBpPXRoaXMuX3N0YXRlW3NdW2VdO3RoaXMuX3N0YXRlW3NdW2VdJiZPYmplY3Qua2V5cyhpKS5mb3JFYWNoKChlPT50LmFkZChlKSkpfSkpLEFycmF5LmZyb20odCl9b25TdGF0ZUNoYW5nZShlKXt0aGlzLl9zdGF0ZUNoYW5nZURlbGVnYXRlLnN1YnNjcmliZShudWxsLGUpfW9mZlN0YXRlQ2hhbmdlKGUpe3RoaXMuX3N0YXRlQ2hhbmdlRGVsZWdhdGUudW5zdWJzY3JpYmUobnVsbCxlKX1vblRhYkNyZWF0ZShlKXt0aGlzLl9vblRhYkNyZWF0ZUNiPWV9X2lzRXhpc3QoZSx0LHM9dGhpcy5faWQpe3JldHVybiB2b2lkIDAhPT10aGlzLl9zdGF0ZVtzXSYmdm9pZCAwIT09dGhpcy5fc3RhdGVbc11bZV0mJnZvaWQgMCE9PXRoaXMuX3N0YXRlW3NdW2VdW3RdfV9pc05vdEVtcHR5KGUsdCxzPXRoaXMuX2lkKXtyZXR1cm4gdGhpcy5faXNFeGlzdChlLHQscykmJnRoaXMuX3N0YXRlW3NdW2VdW3RdPjB9X2NvbXBhcmVUYWJTdGF0ZShlLHQscyxpKXtPYmplY3Qua2V5cyh0KS5mb3JFYWNoKChuPT57Ck9iamVjdC5rZXlzKHRbbl0pLmZvckVhY2goKHQ9Pnt0aGlzLl9pc0xpc3RlbkJ5QW5vdGhlclRhYihuLHQsZSl8fHNbbl0mJnNbbl1bdF18fHRoaXMuX3N0YXRlQ2hhbmdlRGVsZWdhdGUuZmlyZShpLG4sdCl9KSl9KSl9X2lzTGlzdGVuQnlBbm90aGVyVGFiKGUsdCxzPXRoaXMuX2lkKXtyZXR1cm4gT2JqZWN0LmtleXModGhpcy5fc3RhdGUpLnNvbWUoKGk9PmkhPT1zJiZ0aGlzLl9pc05vdEVtcHR5KGUsdCxpKSkpfX19LDIyNDQwMChlLHQscyl7InVzZSBzdHJpY3QiO3MuZCh0LHtQdXNoU3RyZWFtOigpPT5fLFRyYW5zcG9ydFR5cGU6KCk9Pm0sbG9nZ2VyU3Vic3lzdGVtSWQ6KCk9Pmh9KTt2YXIgaT1zKDEzODYzOCksbj1zKDIyMTA2MSkscj1zKDgwOTk5Myksbz1zKDYzMjY4NiksYT1zKDI5NTYyNik7Y29uc3QgbD0oMCxuLmdldExvZ2dlcikoIlBlcnNpc3RlbnRXZWJzb2NrZXRUcmFuc3BvcnQiKTtjbGFzcyB1IGV4dGVuZHMgYS5QZXJzaXN0ZW50VHJhbnNwb3J0e2NvbnN0cnVjdG9yKGUsdCl7c3VwZXIoZSxsLHQpfXNlbmRNZXNzYWdlKGUpe3RoaXMuX2Nvbm5lY3Rpb25TdGF0dXMudmFsdWUoKT09PW8uQ29ubmVjdGlvblN0YXR1cy5PcGVuP3RoaXMuX3NvY2tldD90aGlzLl9zb2NrZXQuc2VuZChlKTpsLmxvZ0Vycm9yKCJTb21ldGhpbmcgd2VudCB3cm9uZyAtIGNvZGUgMHgzIik6bC5sb2dXYXJuKCJBdHRlbXB0IHRvIHNlbmQgbWVzc2FnZSBidXQgY29ubmVjdGlvbiBpcyBub3Qgb3BlbmVkIil9X2NyZWF0ZU5hdGl2ZVRyYW5zcG9ydChlKXtjb25zdCB0PW5ldyBXZWJTb2NrZXQoZSx0aGlzLl9jb25uZWN0aW9uT3B0aW9ucz8ucHJvdG9jb2xzKTtyZXR1cm4gdC5iaW5hcnlUeXBlPSJhcnJheWJ1ZmZlciIsdC5hZGRFdmVudExpc3RlbmVyKCJlcnJvciIsdGhpcy5fc29ja2V0RXJyb3JIYW5kbGVyKSx0LmFkZEV2ZW50TGlzdGVuZXIoImNsb3NlIix0aGlzLl9zb2NrZXRDbG9zZUhhbmRsZXIpLHQuYWRkRXZlbnRMaXN0ZW5lcigib3BlbiIsdGhpcy5fc29ja2V0T3BlbkhhbmRsZXIpLHQuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsdGhpcy5fc29ja2V0TWVzc2FnZUhhbmRsZXIpLHR9X2Rpc2Nvbm5lY3RUcmFuc3BvcnQoKXtpZihudWxsPT09dGhpcy5fc29ja2V0KXJldHVybjt0aGlzLl9zb2NrZXQucmVtb3ZlRXZlbnRMaXN0ZW5lcigiZXJyb3IiLHRoaXMuX3NvY2tldEVycm9ySGFuZGxlciksdGhpcy5fc29ja2V0LnJlbW92ZUV2ZW50TGlzdGVuZXIoImNsb3NlIix0aGlzLl9zb2NrZXRDbG9zZUhhbmRsZXIpLHRoaXMuX3NvY2tldC5yZW1vdmVFdmVudExpc3RlbmVyKCJvcGVuIix0aGlzLl9zb2NrZXRPcGVuSGFuZGxlciksdGhpcy5fc29ja2V0LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLHRoaXMuX3NvY2tldE1lc3NhZ2VIYW5kbGVyKSx0aGlzLl9yZW1vdmVPbk9mZmxpbmVMaXN0ZW5lcigpO2NvbnN0IGU9dGhpcy5fc29ja2V0O3RoaXMuX3NvY2tldD1udWxsLHRoaXMuX2Nvbm5lY3Rpb25TdGF0dXMuc2V0VmFsdWUoby5Db25uZWN0aW9uU3RhdHVzLkNsb3NlZCksZS5yZWFkeVN0YXRlIT09V2ViU29ja2V0LkNMT1NFRCYmZS5jbG9zZSgpfX12YXIgYz1zKDE1Njg1MCk7Y2xhc3MgZHtjb25zdHJ1Y3RvcihlKXt0aGlzLl9xdWV1ZT1bXSx0aGlzLl9pc1dvcmtpbmc9ITEsdGhpcy5fb25SZXNvbHZlPSgpPT57dGhpcy5fcXVldWUubGVuZ3RoPjAmJnRoaXMuX2NyZWF0ZVByb21pc2UodGhpcy5fcXVldWVbMF0pfSx0aGlzLl9sb2dnZXI9ZX1lbnF1ZXVlKGUpe3RoaXMuX2xvZ2dlci5sb2dOb3JtYWwoYEFkZGluZyBjaGFubmVsIGluIHN0YWNrLiBRdWV1ZSBzaXplOiAke3RoaXMuX3F1ZXVlLmxlbmd0aH1gKSx0aGlzLl9pc1dvcmtpbmd8fHRoaXMuX2NyZWF0ZVByb21pc2UoZSksdGhpcy5fcXVldWUucHVzaChlKX1fY3JlYXRlUHJvbWlzZShlKXt0aGlzLl9pc1dvcmtpbmc9ITAsdGhpcy5fd3JhcChlKS50aGVuKHRoaXMuX29uUmVzb2x2ZSl9X3dyYXAoZSl7cmV0dXJuIG5ldyBQcm9taXNlKCh0PT57ZSgpLmNhdGNoKChlPT50aGlzLl9sb2dnZXIubG9nTm9ybWFsKGBFcnJvciB3aGVuIHRyeWluZyBoYW5kbGluZyBjaGFubmVsOiAke2UubWVzc2FnZX1gKSkpLmZpbmFsbHkoKCgpPT57dGhpcy5faXNXb3JraW5nPSExLHRoaXMuX3F1ZXVlLnNoaWZ0KCksdCgpfSkpfSkpfX1jb25zdCBoPSJQdXNoU3RyZWFtIixwPSgwLG4uZ2V0TG9nZ2VyKShoKTt2YXIgbTshZnVuY3Rpb24oZSl7ZVtlLkV2ZW50U291cmNlPTBdPSJFdmVudFNvdXJjZSIsZVtlLldlYlNvY2tldD0xXT0iV2ViU29ja2V0In0obXx8KG09e30pKTtjbGFzcyBfe2NvbnN0cnVjdG9yKGUsdCl7dGhpcy5fY2hhbm5lbHM9W10sdGhpcy5fcXVldWU9bmV3IGQocCksdGhpcy5fdHJhbnNwb3J0PXQudHJhbnNwb3J0VHlwZT09PW0uRXZlbnRTb3VyY2U/bmV3IHIuUGVyc2lzdGVudEV2ZW50U291cmNlVHJhbnNwb3J0KHRoaXMuX29uUHVzaFN0cmVhbU1lc3NhZ2UuYmluZCh0aGlzKSk6bmV3IHUodGhpcy5fb25QdXNoU3RyZWFtTWVzc2FnZS5iaW5kKHRoaXMpLHRoaXMuX29uUHVzaFN0cmVhbUNsb3NlLmJpbmQodGhpcykpLHRoaXMuX3NldHRpbmdzPXQsdGhpcy5fbWVzc2FnZUhhbmRsZXI9ZX1hZGRDaGFubmVsKGUpe3RoaXMuX3F1ZXVlLmVucXVldWUoKCgpPT50aGlzLl9hZGRDaGFubmVsKGUpKSl9cmVtb3ZlQ2hhbm5lbChlKXt0aGlzLl9xdWV1ZS5lbnF1ZXVlKCgoKT0+dGhpcy5fcmVtb3ZlQ2hhbm5lbChlKSkpfWdldENoYW5uZWxzKCl7cmV0dXJuIHRoaXMuX2NoYW5uZWxzfWhhc0NoYW5uZWwoZSl7cmV0dXJuLTEhPT10aGlzLl9jaGFubmVscy5pbmRleE9mKGUpfWNvbm5lY3Rpb25TdGF0dXMoKXtyZXR1cm4gdGhpcy5fdHJhbnNwb3J0LmNvbm5lY3Rpb25TdGF0dXMoKX1yZWNvbm5lY3RFdmVudCgpe3JldHVybiB0aGlzLl90cmFuc3BvcnQuc3VjY2Vzc1JlY29ubmVjdFJlYWNoZWRFdmVudCgpfWNvbm5lY3QoKXsoMCxpLmFzc2VydCkoMCE9PXRoaXMuX2NoYW5uZWxzLmxlbmd0aCwiVGhlcmUgaXMgbm8gY2hhbm5lbHMiKSx0aGlzLl90cmFuc3BvcnQuY29ubmVjdCgpfWRpc2Nvbm5lY3QoKXsKdGhpcy5fdHJhbnNwb3J0LmRpc2Nvbm5lY3QoKX1nZXRMb2dzKGUpe3JldHVybigwLG4uZ2V0UmF3TG9nSGlzdG9yeSkoZSxoKX1hc3luYyBfYWRkQ2hhbm5lbChlKXsoMCxpLmFzc2VydCkoIXRoaXMuaGFzQ2hhbm5lbChlKSxgQ2hhbm5lbCB3aXRoIG5hbWUgJHtlfSBoYXMgYWxyZWFkeSBiZWVuIHN1YnNjcmliZWRgKSxwLmxvZ05vcm1hbChgQWRkaW5nIGNoYW5uZWwgJHtlfWApLHRoaXMuX2NoYW5uZWxzLnB1c2goZSk7Y29uc3R7bWF4U2l6ZTp0fT10aGlzLl9zZXR0aW5ncztyZXR1cm4gdm9pZCAwIT09dCYmdGhpcy5fY2hhbm5lbHMubGVuZ3RoPnQmJih0aGlzLl9jaGFubmVscz10aGlzLl9jaGFubmVscy5zbGljZSh0aGlzLl9jaGFubmVscy5sZW5ndGgtdCkpLHRoaXMuX3RyYW5zcG9ydC5zZXRVcmwodGhpcy5fZ2VuZXJhdGVVcmwoKSl9YXN5bmMgX3JlbW92ZUNoYW5uZWwoZSl7Y29uc3QgdD10aGlzLl9jaGFubmVscy5pbmRleE9mKGUpO3JldHVybigwLGkuYXNzZXJ0KSgtMSE9PXQsYFRoZXJlIGlzIG5vIGNoYW5uZWwgd2l0aCBuYW1lICR7ZX1gKSxwLmxvZ05vcm1hbChgUmVtb3ZpbmcgY2hhbm5lbCAke2V9YCksdGhpcy5fY2hhbm5lbHMuc3BsaWNlKHQsMSksdGhpcy5fdHJhbnNwb3J0LnNldFVybCh0aGlzLl9nZW5lcmF0ZVVybCgpKX1fb25QdXNoU3RyZWFtTWVzc2FnZShlKXtpZigic3RyaW5nIiE9dHlwZW9mIGUpdGhyb3cgbmV3IEVycm9yKCJXcm9uZyBtZXNzYWdlIHR5cGUsIGV4cGVjdGVkIHN0cmluZyIpO2NvbnN0IHQ9SlNPTi5wYXJzZShlKTt0aGlzLl9zZXR0aW5ncy50ZWxlbWV0cnlFbmFibGVkKCkmJnRoaXMuX2hhbmRsZUJhc2ljVGVsZW1ldHJ5KHQpO2NvbnN0IHM9dC5pZCxpPXQuY2hhbm5lbDstMj09PXM/cC5sb2dXYXJuKCJSZWNlaXZlZCB1bmV4cGVjdGVkIG1lc3NhZ2U6IGFib3V0IHJlbW92ZWQgdGhlIGNoYW5uZWwiKTpzPjAmJihwLmxvZ0RlYnVnKGBSZWNlaXZlZCBtZXNzYWdlOiBpZD0iJHtzfSIgY2hhbm5lbD0iJHtpfSJgKSx0aGlzLl9tZXNzYWdlSGFuZGxlcih0LnRleHQscyxpKSl9X2hhbmRsZUJhc2ljVGVsZW1ldHJ5KGUpe3RyeXtjb25zdCB0PSJ0cmFkaW5nIixzPWUudGV4dC5jb250ZW50Ll90cyxpPWUudGV4dC5jb250ZW50Ll9ydHMsbj1EYXRlLm5vdygpO2lmKHMpe2NvbnN0IGU9bi1zO2U+MCYmZTwzNmU1JiYoYy50ZWxlbWV0cnkuc2VuZFJlcG9ydCh0LCJzZXJ2aWNlMmNsaWVudF90aW1lIix7dmFsdWU6ZX0pLGkmJmMudGVsZW1ldHJ5LnNlbmRSZXBvcnQodCwibmdpbngyY2xpZW50X3RpbWUiLHt2YWx1ZTpuLWl9KSl9fWNhdGNoKGUpe319X29uUHVzaFN0cmVhbUNsb3NlKGUpezEwMDU9PT1lLmNvZGUmJmMudGVsZW1ldHJ5LnNlbmRDaGFydFJlcG9ydCgid2Vic29ja2V0X2NvZGVfMTAwNSIpfV9nZW5lcmF0ZVVybCgpe2NvbnN0IGU9dGhpcy5fY2hhbm5lbHMuam9pbigiLyIpO3JldHVybiBwLmxvZ05vcm1hbChgR2VuZXJhdGUgcHVzaHN0cmVhbSB1cmwgLSAke2V9YCksYCR7dGhpcy5fc2V0dGluZ3MudXJsfS8ke3RoaXMuX3NldHRpbmdzLnVybFBhdGh9LyR7ZX1gfX19LDg0ODg1NShlLHQscyl7InVzZSBzdHJpY3QiO3MuZCh0LHt3ZWJMb2NrRW5hYmxlZDooKT0+bn0pO3ZhciBpPXMoNzM4NDU4KTtmdW5jdGlvbiBuKCl7cmV0dXJuIWkuaXNJT1MmJiFpLmlzSVBhZCYmdm9pZCAwIT09bmF2aWdhdG9yLmxvY2tzfX0sOTMwNTY2KGUsdCxzKXsidXNlIHN0cmljdCI7cy5yKHQpLHMuZCh0LHtkZWZhdWx0OigpPT5KLGdldEJvb2w6KCk9PlYsZ2V0RmxvYXQ6KCk9PkEsZ2V0SW50OigpPT5GLGdldEpTT046KCk9PlIsZ2V0VmFsdWU6KCk9Pngsa2V5czooKT0+TixrZXlzTWFzazooKT0+Vyxsb2FkZWQ6KCk9PkssbG9hZGVkTW9kZWw6KCk9Plksb25TeW5jOigpPT5qLHJlbW92ZTooKT0+ayxzZXRKU09OOigpPT5PLHNldFNldHRpbmdzQWRhcHRlcjooKT0+cSxzZXRWYWx1ZTooKT0+QixzeW5jOigpPT4kfSk7dmFyIGk9cyg5NDgzODApLG49cygyMjEwNjEpLHI9cyg1NDA1NzgpLG89cyg5MzAyMzEpLGE9cyg1NjkzOTgpLGw9cyg5MDk3OTgpLHU9cygzNzcyMjYpLGM9cygzODQwMTcpLGQ9cygxNTI2OTkpLGg9cyg5MzIzNjUpO3dpbmRvdy5UcmFkaW5nVmlldz13aW5kb3cuVHJhZGluZ1ZpZXd8fHt9O2NvbnN0IHA9WyJzLnRyYWRpbmd2aWV3LmNvbSIsImJldGFjZG4udHJhZGluZ3ZpZXcuY29tIl0sbT0oKDAsby5pc0ZlYXR1cmVzZXRFbmFibGVkKSgidXNlX2xvY2Fsc3RvcmFnZV9mb3Jfc2V0dGluZ3MiKSwibG9jYWwiPT09d2luZG93LmVudmlyb25tZW50PzVlMzoxMmU0KSxfPSgwLHUub25XaWRnZXQpKCk/InRyYWRpbmd2aWV3LXdpZGdldCI6InRyYWRpbmd2aWV3IixnPV8rIi4iO2xldCB5LGYsdixiPSExLFM9bnVsbCx3PXt9LFA9W107Y29uc3QgVD1bL153aWRnZXRiYXJcLndpZGdldFwud2F0Y2hsaXN0LisvLC8uK3F1aWNrcyQvLC9ed2lkZ2V0YmFyXC5sYXlvdXQtc2V0dGluZ3MkLywvXkNoYXJ0U2lkZVRvb2xiYXJXaWRnZXRcLnZpc2libGUkLywvXm9ud2lkZ2V0XC53YXRjaGxpc3QkLywvXmNoYXJ0XC5mYXZvcml0ZURyYXdpbmdzJC8sL15jaGFydFwuZmF2b3JpdGVEcmF3aW5nc1Bvc2l0aW9uJC8sL15jaGFydFwuZmF2b3JpdGVMaWJyYXJ5SW5kaWNhdG9ycyQvLC9ebG9hZENoYXJ0RGlhbG9nLmZhdm9yaXRlcyQvLC9eQ2hhcnRGYXZvcml0ZURyYXdpbmdUb29sYmFyV2lkZ2V0XC52aXNpYmxlLywvXnRyYWRpbmdcLmNoYXJ0XC5wcm90ZXJ0eSQvLC9edHJhZGluZ19mbG9hdGluZ190b29sYmFyXC5wb3NpdGlvbiQvLC9edHJhZGluZ1wub3JkZXJXaWRnZXRNb2RlXC4vLC9ec3ltYm9sV2F0ZXJtYXJrJC8sL15waW5lcmVmZXJlbmNlXC5zaXplJC8sL15waW5lcmVmZXJlbmNlXC5wb3NpdGlvbiQvLC9eaGludFwuKy8sL15DaGFydERyYXdpbmdUb29sYmFyV2lkZ2V0XC52aXNpYmxlL107Y29uc3QgQz0oKT0+IShTfHx3aW5kb3cuaXNfYXV0aGVudGljYXRlZCksRT1lPT5nK2UsST0oMCxuLmdldExvZ2dlcikoIkxpYi5UVlNldHRpbmdzIiksTD1lPT57aWYoYnx8dilyZXR1cm47aWYoKDAsCmEuaXNGZWF0dXJlRW5hYmxlZCkoImRpc2FibGVfc2F2ZV9zZXR0aW5ncyIpKXJldHVybiB2b2lkIEk/LmxvZ1dhcm4oIlNldHRpbmdzIGZsYXNoaW5nIGhhcyBiZWVuIHNraXBwZWQgYmVjYXVzZSBvZiBkaXNhYmxlX3NhdmVfc2V0dGluZ3MgZmVhdHVyZXRvZ2dsZSIpO2lmKCgwLG8uaXNGZWF0dXJlc2V0RW5hYmxlZCkoIndpZGdldCIpKXJldHVybjtpZihDKCkpcmV0dXJuO2lmKDA9PT1QLmxlbmd0aClyZXR1cm47Y29uc3QgdD1QO1A9W107Y29uc3Qgcz17fTtmb3IobGV0IGU9dC5sZW5ndGg7ZS0tOyl7Y29uc3QgaT10W2VdO3NbaV09d1tpXT8/bnVsbH1jb25zdCBpPW5ldyBGb3JtRGF0YTtpLmFwcGVuZCgiZGVsdGEiLEpTT04uc3RyaW5naWZ5KHMpKSxlJiZuYXZpZ2F0b3Iuc2VuZEJlYWNvbj9uYXZpZ2F0b3Iuc2VuZEJlYWNvbigiL3NhdmVzZXR0aW5ncy8iLGkpOigwLGMuZmV0Y2gpKCIvc2F2ZXNldHRpbmdzLyIse21ldGhvZDoiUE9TVCIsY3JlZGVudGlhbHM6ImluY2x1ZGUiLGJvZHk6aX0pLnRoZW4oKHM9PntpZihzLm9rfHwoUD1QLmNvbmNhdCh0KSksWzQyOSw1MDNdLmluY2x1ZGVzKHMuc3RhdHVzKSl7Y29uc3QgdD0xZTMqKyhzLmhlYWRlcnMuZ2V0KCJyZXRyeS1hZnRlciIpfHwwKXx8M2U1O3Y9c2V0VGltZW91dCgoKCk9Pnt2PXZvaWQgMCxMKGUpfSksdCl9fSkpLmNhdGNoKCgoKT0+e1A9UC5jb25jYXQodCl9KSl9LE09KCk9Pnt5PXZvaWQgMCxQLmxlbmd0aCYmTCgpfSxEPShlLHQ9e30pPT57aWYoUyludWxsPT13W2VdP1MucmVtb3ZlVmFsdWUoZSk6Uy5zZXRWYWx1ZShlLHdbZV0pO2Vsc2UgaWYoQygpKXRyeXtudWxsPT13W2VdP2guVFZMb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShFKGUpKTpoLlRWTG9jYWxTdG9yYWdlLnNldEl0ZW0oRShlKSx3W2VdKX1jYXRjaChlKXt9ZWxzZSBQLnB1c2goZSkseXx8KHk9c2V0VGltZW91dChNLG0pKTt0LnNraXBDcm9zc1dpbmRvd0V2ZW50fHxkLlRWWFdpbmRvd0V2ZW50cy5lbWl0KCJzZXR0aW5ncyIsSlNPTi5zdHJpbmdpZnkoe2tleTplLHZhbHVlOndbZV19KSl9O2Z1bmN0aW9uIHgoZSx0KXtjb25zdCBzPXdbZV07cmV0dXJuIHM/P3R9ZnVuY3Rpb24gUihlLHQpe2NvbnN0IHM9eChlKTtpZihudWxsPT1zKXJldHVybiB0O3RyeXtyZXR1cm4gSlNPTi5wYXJzZShzKX1jYXRjaChzKXtyZXR1cm4gayhlKSx0fX1mdW5jdGlvbiBrKGUsdD17fSl7cmV0dXJuIG51bGwhPXdbZV0mJihkZWxldGUgd1tlXSxEKGUpKSx0LmZvcmNlRmx1c2gmJkwoKSxHfWZ1bmN0aW9uIFYoZSx0KXtjb25zdCBzPXgoZSk7cmV0dXJuIG51bGw9PXM/dDohKCFzfHwiZmFsc2UiPT09c3x8MD09K3MpfWZ1bmN0aW9uIEEoZSx0KXtjb25zdCBzPXgoZSk7aWYobnVsbD09cylyZXR1cm4gdDtjb25zdCBpPXBhcnNlRmxvYXQocyk7aWYoIWlzRmluaXRlKGkpKXRocm93IG5ldyBUeXBlRXJyb3IoJyInK3MrJyIgaXMgbm90IGZsb2F0IChrZXk6ICInK2UrJyIpJyk7cmV0dXJuIGl9ZnVuY3Rpb24gRihlLHQpe2NvbnN0IHM9eChlKTtpZihudWxsPT1zKXJldHVybiB0O2NvbnN0IGk9cGFyc2VJbnQocywxMCk7aWYoIWlzRmluaXRlKGkpKXRocm93IG5ldyBUeXBlRXJyb3IoJyInK3MrJyIgaXMgbm90IGludCAoa2V5OiAiJytlKyciKScpO3JldHVybiBpfWZ1bmN0aW9uIEIoZSx0LHM9e30pe2NvbnN0IGk9IiIrdDtyZXR1cm4gd1tlXSE9PWkmJih3W2VdPWksRChlLHMpKSxzLmZvcmNlRmx1c2gmJiFmJiYoZj1zZXRUaW1lb3V0KCgoKT0+e2Y9dm9pZCAwLEwoKX0pLDEwKSksR31mdW5jdGlvbiBPKGUsdCxzKXtyZXR1cm4gQihlLEpTT04uc3RyaW5naWZ5KHQpLHMpLEd9ZnVuY3Rpb24gTigpe3JldHVybiBPYmplY3Qua2V5cyh3KX1mdW5jdGlvbiBXKGUpe2NvbnN0IHQ9TigpLHM9W10saT1uZXcgUmVnRXhwKCJeIisoMCxyLnJlZ0V4cEVzY2FwZSkoZSkucmVwbGFjZSgvXFxcKlxcXCovZ2ksIi4rIikucmVwbGFjZSgvXFxcKi9naSwiW14uXSsiKSsiJCIsImdpIik7Zm9yKGxldCBlPXQubGVuZ3RoLTE7ZT49MDtlLS0paS50ZXN0KHRbZV0pJiZzLnB1c2godFtlXSksaS5sYXN0SW5kZXg9MDtyZXR1cm4gc31kLlRWWFdpbmRvd0V2ZW50cy5vbigic2V0dGluZ3MiLChlPT57Y29uc3QgdD1KU09OLnBhcnNlKGUpO251bGw9PXQudmFsdWU/ZGVsZXRlIHdbdC5rZXldOndbdC5rZXldPXQudmFsdWV9KSk7Y29uc3QgVT1lPT57Zm9yKGxldCB0PTA7dDxULmxlbmd0aDsrK3QpaWYoVFt0XS5leGVjKGUpKXJldHVybiEwO3JldHVybiExfSx6PWU9PmUuc3Vic3RyaW5nKDAsZy5sZW5ndGgpPT09ZyxIPWU9Pnt3PXt9O2NvbnN0IHQ9MD09PU9iamVjdC5rZXlzKGUpLmxlbmd0aDt0fHwoZT0+e09iamVjdC5rZXlzKGUpLmZvckVhY2goKHQ9Pnt3W3RdPWVbdF0rIiJ9KSl9KShlKSwoZT0+e2ZvcihsZXQgdD1oLlRWTG9jYWxTdG9yYWdlLmxlbmd0aDt0LS07KXtjb25zdCBzPWguVFZMb2NhbFN0b3JhZ2Uua2V5KHQpO3MmJnoocykmJihlJiZCKHMuc3Vic3RyaW5nKGcubGVuZ3RoKSxoLlRWTG9jYWxTdG9yYWdlLmdldEl0ZW0ocykpLGguVFZMb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShzKSl9fSkodCl9LGo9bmV3IGkuRGVsZWdhdGU7ZnVuY3Rpb24gJChlKXtudWxsIT09ZT8oUz9IKFMuaW5pdGlhbFNldHRpbmdzfHx7fSk6QygpPygoKCk9PntpZighKDAsdS5vbldpZGdldCkoKXx8IXAuaW5jbHVkZXMod2luZG93LmxvY2F0aW9uLmhvc3QpKXJldHVybjtjb25zdCBlPSJ0cmFkaW5ndmlldy4iO2ZvcihsZXQgdD1oLlRWTG9jYWxTdG9yYWdlLmxlbmd0aDt0LS07KXtjb25zdCBzPWguVFZMb2NhbFN0b3JhZ2Uua2V5KHQpO2lmKDA9PT1zLmluZGV4T2YoZSkpe2NvbnN0IHQ9cy5yZXBsYWNlKGUsXysiLiIpO2guVFZMb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0LGguVFZMb2NhbFN0b3JhZ2UuZ2V0SXRlbShzKSksaC5UVkxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKHMpfX19KSgpLCgoKT0+e3c9e307Y29uc3QgZT0hKDAsby5pc0ZlYXR1cmVzZXRFbmFibGVkKSgic2F2ZV9jaGFydF9wcm9wZXJ0aWVzX3RvX2xvY2FsX3N0b3JhZ2UiKTtmb3IobGV0IHQ9aC5UVkxvY2FsU3RvcmFnZS5sZW5ndGg7dC0tOyl7CmNvbnN0IHM9aC5UVkxvY2FsU3RvcmFnZS5rZXkodCk7aWYoIXN8fCF6KHMpKWNvbnRpbnVlO2NvbnN0IGk9cy5zdWJzdHJpbmcoZy5sZW5ndGgpO2UmJiFVKGkpfHwod1tpXT1oLlRWTG9jYWxTdG9yYWdlLmdldEl0ZW0ocykpfX0pKCkpOkgoZXx8e30pLGouZmlyZSgpKTpiPSEwfWZ1bmN0aW9uIHEoZSl7Uz1lfWNvbnN0IEs9ITEsWT0hMSxHPXtsb2FkZWQ6Syxsb2FkZWRNb2RlbDpZLGdldFZhbHVlOngsZ2V0SlNPTjpSLGdldEJvb2w6VixnZXRGbG9hdDpBLGdldEludDpGLHNldFZhbHVlOkIsc2V0SlNPTjpPLHJlbW92ZTprLGtleXM6TixrZXlzTWFzazpXLHN5bmM6JCxvblN5bmM6aixzZXRTZXR0aW5nc0FkYXB0ZXI6cX0sSj1HO3dpbmRvdy5UVlNldHRpbmdzPUcsZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigidmlzaWJpbGl0eWNoYW5nZSIsKCgpPT57ImhpZGRlbiIhPT1kb2N1bWVudC52aXNpYmlsaXR5U3RhdGUmJiEwIT09ZG9jdW1lbnQuaGlkZGVufHxMKCl9KSksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInBhZ2VoaWRlIiwoKCk9PntMKCEwKX0pKSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigiYmVmb3JldW5sb2FkIiwoKCk9PntMKCEwKX0pKSxsLmZsdXNoRGVsZWdhdGUuc3Vic2NyaWJlKG51bGwsKCgpPT57TCgpfSkpLHNldFRpbWVvdXQoKGFzeW5jKCk9Pntjb25zdHtjbGVhck9sZFNldHRpbmdzOmV9PWF3YWl0IHMuZSgzNTk4MCkudGhlbihzLmJpbmQocyw3NTQxODUpKTtlKCl9KSwzZTQpfSw3MDA4MDkoZSx0LHMpeyJ1c2Ugc3RyaWN0IjtzLmQodCx7REVDRU1CRVI6KCk9PlMsRklSU1RfREFZX09GX1dFRUs6KCk9PnAsRlJJREFZOigpPT5kLEpBTlVBUlk6KCk9Pl8sSlVMWTooKT0+ZixMQVNUX0RBWV9PRl9XRUVLOigpPT5tLE1BUkNIOigpPT5nLE1BWTooKT0+eSxNT05EQVk6KCk9PmEsTk9WRU1CRVI6KCk9PmIsU0FUVVJEQVk6KCk9PmgsU0VQVEVNQkVSOigpPT52LFNVTkRBWTooKT0+byxUSFVSU0RBWTooKT0+YyxUVUVTREFZOigpPT5sLFdFRE5FU0RBWTooKT0+dSxhZGRfZGF0ZTooKT0+QSxhZGRfbWludXRlczooKT0+RixjYWxfdG9fdXRjOigpPT5HLGNsb25lOigpPT5PLGRheXNfcGVyX3llYXI6KCk9PlcsZ2V0X2NhbDooKT0+cSxnZXRfY2FsX2Zyb21fdW5peF90aW1lc3RhbXBfbXM6KCk9PkssZ2V0X2NhbF91dGM6KCk9PlksZ2V0X2RheV9vZl9tb250aDooKT0+TSxnZXRfZGF5X29mX3dlZWs6KCk9PkQsZ2V0X2RheV9vZl95ZWFyOigpPT54LGdldF9kYXlzX2luX21vbnRoOigpPT5OLGdldF9ob3VyczooKT0+SSxnZXRfbWludXRlczooKT0+TCxnZXRfbWludXRlc19mcm9tX21pZG5pZ2h0OigpPT5SLGdldF9taW51dGVzX3dpdGhfaG91cnM6KCk9PmssZ2V0X21vbnRoOigpPT5FLGdldF90aW1lem9uZTooKT0+SixnZXRfeWVhcjooKT0+Qyxpc19sZWFwX3llYXI6KCk9PlUsbWlsbGlzZWNvbmRzUGVyRGF5OigpPT5ULG1pbnV0ZXNQZXJEYXk6KCk9PncsbWludXRlc1BlcldlZWs6KCk9PlAsc2V0X2htczooKT0+VixzZXRfc2Vjb25kczooKT0+Qix0aW1lX3NlY29uZHM6KCk9PnosdGltZV9zZWNvbmRzX2RpZmY6KCk9PkgsdXRjX3RvX2NhbDooKT0+aix1dGNfdG9fY2FsX3RzOigpPT4kfSk7dmFyIGk9cyg3MTIxODEpO2NvbnN0IG49ezA6MCwxOjMxLDI6NTksMzo5MCw0OjEyMCw1OjE1MSw2OjE4MSw3OjIxMiw4OjI0Myw5OjI3MywxMDozMDQsMTE6MzM0fTtjbGFzcyBye2NvbnN0cnVjdG9yKGUpe3RoaXMuX2ludmFsaWQ9ITEsdGhpcy5fbmFtZT1lO2xldCB0PWkudHpEYXRhPy5bZV0/P251bGw7IXQmJlgmJih0PVguaW5zdGFuY2UoKS5nZXRUaW1lem9uZURhdGEoZSkpLHR8fCh0PXt0aW1lOltdLG9mZnNldDpbXX0sdGhpcy5faW52YWxpZD0hMCksdC50aW1lLmxlbmd0aCE9PXQub2Zmc2V0Lmxlbmd0aCYmKHQ9e3RpbWU6W10sb2Zmc2V0OltdfSx0aGlzLl9pbnZhbGlkPSEwKTtjb25zdCBzPXQ7aWYoIXMudGltZV91dGMpe2NvbnN0IGU9dC50aW1lLGk9dC5vZmZzZXQsbj1lLmxlbmd0aCxyPW5ldyBBcnJheShuKTtmb3IobGV0IHQ9MDt0PG47dCsrKWVbdF0qPTFlMyxpW3RdKj0xZTMsclt0XT1lW3RdLWlbdF07cy50aW1lX3V0Yz1yfXRoaXMudHo9c31vZmZzZXRfdXRjKGUpe3JldHVybiByLm9mZnNldCh0aGlzLnR6LnRpbWVfdXRjLHRoaXMudHoub2Zmc2V0LGUpfW9mZnNldF9sb2MoZSl7cmV0dXJuIHIub2Zmc2V0KHRoaXMudHoudGltZSx0aGlzLnR6Lm9mZnNldCxlKX1uYW1lKCl7cmV0dXJuIHRoaXMuX25hbWV9aXNfdmFsaWQoKXtyZXR1cm4hdGhpcy5faW52YWxpZH1jb3JyZWN0aW9uX2xvYyhlKXtjb25zdCB0PXRoaXMudHoudGltZSxzPXRoaXMudHoub2Zmc2V0LGk9USh0LGUpO2lmKGk8MSlyZXR1cm4gMDtjb25zdCBuPXNbaV0tc1tpLTFdO2lmKG4+MCl7aWYoZS10W2ktMV08PW4pcmV0dXJuIG59cmV0dXJuIDB9c3RhdGljIG9mZnNldChlLHQscyl7Y29uc3QgaT1RKGUscyk7cmV0dXJuLTE9PT1pPzA6dFtpXX19Y29uc3Qgbz0xLGE9MixsPTMsdT00LGM9NSxkPTYsaD03LHA9byxtPWgsXz0wLGc9Mix5PTQsZj02LHY9OCxiPTEwLFM9MTEsdz0xNDQwLFA9MTAwODAsVD04NjRlNTtmdW5jdGlvbiBDKGUpe3JldHVybiBlLmdldFVUQ0Z1bGxZZWFyKCl9ZnVuY3Rpb24gRShlKXtyZXR1cm4gZS5nZXRVVENNb250aCgpfWZ1bmN0aW9uIEkoZSl7cmV0dXJuIGUuZ2V0VVRDSG91cnMoKX1mdW5jdGlvbiBMKGUpe3JldHVybiBlLmdldFVUQ01pbnV0ZXMoKX1mdW5jdGlvbiBNKGUpe3JldHVybiBlLmdldFVUQ0RhdGUoKX1mdW5jdGlvbiBEKGUpe3JldHVybiBlLmdldFVUQ0RheSgpKzF9ZnVuY3Rpb24geChlKXtjb25zdCB0PWUuZ2V0VVRDTW9udGgoKTtsZXQgcz1uW3RdO3JldHVybiB0Pl8rMSYmVShlLmdldFVUQ0Z1bGxZZWFyKCkpJiYocys9MSkscytlLmdldFVUQ0RhdGUoKX1mdW5jdGlvbiBSKGUpe3JldHVybiA2MCpJKGUpK0woZSl9ZnVuY3Rpb24gayhlKXtyZXR1cm4gUihlKX1mdW5jdGlvbiBWKGUsdCxzLGksbixyKXtlLnNldFVUQ0hvdXJzKHQpLGUuc2V0VVRDTWludXRlcyhzKSxlLnNldFVUQ1NlY29uZHMoaSksZS5zZXRVVENNaWxsaXNlY29uZHMobiksCnZvaWQgMCE9PXImJmZ1bmN0aW9uKGUsdCl7Y29uc3Qgcz1lLmdldFRpbWUoKSxpPXQuY29ycmVjdGlvbl9sb2Mocyk7ZS5zZXRUaW1lKHMraSl9KGUscil9ZnVuY3Rpb24gQShlLHQpe2Uuc2V0VGltZShlLmdldFRpbWUoKSt0KlQpfWZ1bmN0aW9uIEYoZSx0KXtlLnNldFRpbWUoZS5nZXRUaW1lKCkrNjAqdCoxZTMpfWZ1bmN0aW9uIEIoZSx0KXtjb25zdCBzPTg2NDAwLGk9dCVzPDA/LTE6MCxuPU1hdGgudHJ1bmModC9zKStpLHI9dC1uKnMsbz1NYXRoLnRydW5jKHIvMzYwMCksYT1NYXRoLnRydW5jKHIlMzYwMC82MCk7VihlLG8sYSxyLTM2MDAqby02MCphLDApLEEoZSxuKX1mdW5jdGlvbiBPKGUpe3JldHVybiBuZXcgRGF0ZShlLmdldFRpbWUoKSl9ZnVuY3Rpb24gTihlLHQpe2xldCBzO3N3aXRjaChlKXtjYXNlIDA6Y2FzZSAyOmNhc2UgNDpjYXNlIDY6Y2FzZSA3OmNhc2UgOTpjYXNlIDExOnM9MzE7YnJlYWs7Y2FzZSAxOnM9MjgsVSh0KSYmcysrO2JyZWFrO2RlZmF1bHQ6cz0zMH1yZXR1cm4gc31mdW5jdGlvbiBXKGUpe3JldHVybiBVKGUpPzM2NjozNjV9ZnVuY3Rpb24gVShlKXtyZXR1cm4gZSU0PT0wJiYoZSUxMDAhPTB8fGUlNDAwPT0wKX1mdW5jdGlvbiB6KGUpe3JldHVybiAxZTMqZX1mdW5jdGlvbiBIKGUsdCl7cmV0dXJuIGVlKGUpLWVlKHQpfWZ1bmN0aW9uIGooZSx0KXtyZXR1cm4gbmV3IERhdGUoJChlLHQpKX1mdW5jdGlvbiAkKGUsdCl7cmV0dXJuIHQrZS5vZmZzZXRfdXRjKHQpfWZ1bmN0aW9uIHEoZSx0LHMsaSxuLHIsbyl7Y29uc3QgYT1uZXcgRGF0ZShEYXRlLlVUQyh0LHMsaSxufHwwLHJ8fDAsb3x8MCkpLGw9ZS5vZmZzZXRfdXRjKCthKTtyZXR1cm4gbmV3IERhdGUoYS52YWx1ZU9mKCktbCl9ZnVuY3Rpb24gSyhlLHQpe3JldHVybiBuZXcgRGF0ZSh0K2Uub2Zmc2V0X3V0Yyh0KSl9ZnVuY3Rpb24gWShlLHQscyxpPTAsbj0wLHI9MCl7cmV0dXJuIG5ldyBEYXRlKERhdGUuVVRDKGUsdCxzLGksbixyKSl9ZnVuY3Rpb24gRyhlLHQscyl7bGV0IGk9dC5nZXRUaW1lKCk7cyYmKGkrPWUuY29ycmVjdGlvbl9sb2MoaSkpO3JldHVybiBpLWUub2Zmc2V0X2xvYyhpKX1mdW5jdGlvbiBKKGUpe3JldHVybiBuZXcgcihlKX1sZXQgWDtmdW5jdGlvbiBRKGUsdCl7Y29uc3Qgcz1lLmxlbmd0aDtpZigwPT09cylyZXR1cm4tMTtpZihpc05hTih0KSl0aHJvdyBFcnJvcigiS2V5IGlzIE5hTiIpO2xldCBpPTAsbj1zLTEscj1aKChpK24pLzIpO2Zvcig7Oyl7aWYoZVtyXT50KXtpZihuPXItMSxuPGkpcmV0dXJuIHJ9ZWxzZSBpZihpPXIrMSxuPGkpcmV0dXJuIHI8cy0xP3IrMTotMTtyPVooKGkrbikvMil9fWZ1bmN0aW9uIFooZSl7cmV0dXJuIE1hdGgudHJ1bmMoZSl9ZnVuY3Rpb24gZWUoZSl7cmV0dXJuIGU8MD9aKGUvMWUzKS0oZSUxZTMhPTA/MTowKTpaKGUvMWUzKX19LDc3OTM4OShlLHQscyl7InVzZSBzdHJpY3QiO3MuZCh0LHtBY3Rpb25Hcm91cDooKT0+bn0pO3ZhciBpPXMoOTkyODAzKTtjbGFzcyBue2NvbnN0cnVjdG9yKGUsdCl7dGhpcy5fYWN0aW9ucz1uZXcgTWFwLHRoaXMuX21hbmFnZXI9ZSx0aGlzLm9yZGVyPXQ/Lm9yZGVyPz8wLHRoaXMubW9kYWw9ISghdHx8IXQubW9kYWwpLHQmJih0aGlzLmRlc2M9dC5kZXNjKSx0JiZ0LmlzRGlzYWJsZWQ/ImZ1bmN0aW9uIj09dHlwZW9mIHQuaXNEaXNhYmxlZD90aGlzLmlzRGlzYWJsZWQ9dC5pc0Rpc2FibGVkOnRoaXMuaXNEaXNhYmxlZD0oKT0+ITA6dGhpcy5pc0Rpc2FibGVkPSgpPT4hMSx0aGlzLl9tYW5hZ2VyLnJlZ2lzdGVyR3JvdXAodGhpcyl9YWRkKGUpe2xldCB0PXRoaXMuX2FjdGlvbnMuZ2V0KGUuaG90a2V5KTt0fHwodD1bXSx0aGlzLl9hY3Rpb25zLnNldChlLmhvdGtleSx0KSk7Y29uc3Qgcz1uZXcgaS5BY3Rpb24odGhpcyxlKTtyZXR1cm4gdC5wdXNoKHMpLHN9cmVtb3ZlKGUpe2NvbnN0IHQ9dGhpcy5fYWN0aW9ucy5nZXQoZS5ob3RrZXkpO2lmKCF0KXJldHVybjtjb25zdCBzPXQuZmluZEluZGV4KCh0PT50PT09ZSkpO3M+PTAmJigxPT09dC5sZW5ndGg/dGhpcy5fYWN0aW9ucy5kZWxldGUoZS5ob3RrZXkpOnQuc3BsaWNlKHMsMSkpfWhhbmRsZUhvdGtleShlLHQpe2NvbnN0IHM9dGhpcy5fYWN0aW9ucy5nZXQoZSk7aWYoIXMpcmV0dXJuITE7Zm9yKGNvbnN0IGkgb2YgcylpZigoIWkuZWxlbWVudHx8dC50YXJnZXQmJmkuZWxlbWVudC5jb250YWlucyh0LnRhcmdldCkpJiYhaS5pc0Rpc2FibGVkKHQpKXJldHVybiB0LnJlcGVhdCYmIWkuaXNSZXBlYXRBY2NlcHRlZHx8KGkuaGFuZGxlcih0KSx0aGlzLl9jYWxsTWF0Y2hlZEhvdGtleUhhbmRsZXIoZSkpLHQucHJldmVudERlZmF1bHQoKSwhMDtyZXR1cm4hMX1wcm9tb3RlKCl7dGhpcy5fbWFuYWdlci5wcm9tb3RlR3JvdXAodGhpcyl9ZGVzdHJveSgpe2Zvcihjb25zdFssZV1vZiB0aGlzLl9hY3Rpb25zKWZvcihjb25zdCB0IG9mIGUpdC5kZXN0cm95KCk7dGhpcy5fYWN0aW9ucy5jbGVhcigpLHRoaXMuX21hbmFnZXIudW5yZWdpc3Rlckdyb3VwKHRoaXMpfXN0YXRpYyBzZXRNYXRjaGVkSG90a2V5SGFuZGxlcihlKXtuLl9tYXRjaGVkSG90a2V5SGFuZGxlcj1lfV9jYWxsTWF0Y2hlZEhvdGtleUhhbmRsZXIoZSl7bi5fbWF0Y2hlZEhvdGtleUhhbmRsZXImJm4uX21hdGNoZWRIb3RrZXlIYW5kbGVyKGUpfX19LDI5MTM0MShlLHQscyl7InVzZSBzdHJpY3QiO3MuZCh0LHtBY3Rpb25NYW5hZ2VyOigpPT5sfSk7dmFyIGk9cygyMzIzNjQpLG49cygyMzU3MjQpLHI9cyg3MjEzNjkpLG89cyg2OTYyMDgpO2NsYXNzIGEgZXh0ZW5kcyBpLldhdGNoZWRWYWx1ZXtzZXRWYWx1ZShlLHQpe2NvbnN0IHM9dGhpcy52YWx1ZSgpOyh0fHx2b2lkIDA9PT1zfHxzLmNvZGUhPT1lLmNvZGV8fHMubW9kaWZpZXJzIT09ZS5tb2RpZmllcnMpJiZzdXBlci5zZXRWYWx1ZShlKX19Y2xhc3MgbHtjb25zdHJ1Y3Rvcigpe3RoaXMuX2dyb3Vwcz1bXSx0aGlzLl9wcmVzc2VkS2V5cz1uZXcgaS5XYXRjaGVkVmFsdWUoMCksdGhpcy5fa2V5Ym9hcmRQcmVzc2VkS2V5c1N0YXRlPW5ldyBhKG5ldyBvLktleWJvYXJkUHJlc3NlZEtleXNTdGF0ZSgwKSksCnRoaXMuX2tleURvd25MaXN0ZW5lcj1lPT57aWYoZS5kZWZhdWx0UHJldmVudGVkKXJldHVybjtjb25zdCB0PSgwLG4uaGFzaEZyb21FdmVudCkoZSk7aWYodGhpcy5fcHJlc3NlZEtleXMuc2V0VmFsdWUodCksdGhpcy5fa2V5Ym9hcmRQcmVzc2VkS2V5c1N0YXRlLnNldFZhbHVlKG5ldyBvLktleWJvYXJkUHJlc3NlZEtleXNTdGF0ZSgoMCxuLm1vZGlmaWVyc0Zyb21FdmVudCkoZSksZS5jb2RlKSksISgwLHIuaXNOYXRpdmVVSUludGVyYWN0aW9uKSh0LGUudGFyZ2V0KSlmb3IobGV0IHM9dGhpcy5fZ3JvdXBzLmxlbmd0aDtzLS0gPjA7KXtjb25zdCBpPXRoaXMuX2dyb3Vwc1tzXTtpZighaS5pc0Rpc2FibGVkKCkpe2lmKGkuaGFuZGxlSG90a2V5KHQsZSkpcmV0dXJuO2lmKGkubW9kYWwpcmV0dXJufX19LHRoaXMuX2tleVVwTGlzdGVuZXI9ZT0+e2NvbnN0IHQ9KDAsbi5oYXNoRnJvbUV2ZW50KShlKTt0aGlzLl9wcmVzc2VkS2V5cy5zZXRWYWx1ZSh0KSx0aGlzLl9rZXlib2FyZFByZXNzZWRLZXlzU3RhdGUuc2V0VmFsdWUobmV3IG8uS2V5Ym9hcmRQcmVzc2VkS2V5c1N0YXRlKCgwLG4ubW9kaWZpZXJzRnJvbUV2ZW50KShlKSwiIikpfSx0aGlzLl9ibHVyRXZlbnQ9KCk9Pnt0aGlzLl9wcmVzc2VkS2V5cy5zZXRWYWx1ZSgwKSx0aGlzLl9rZXlib2FyZFByZXNzZWRLZXlzU3RhdGUuc2V0VmFsdWUobmV3IG8uS2V5Ym9hcmRQcmVzc2VkS2V5c1N0YXRlKDAsIiIpKX0sdGhpcy5fbW91c2VFdmVudD1lPT57Y29uc3QgdD0oMCxuLm1vZGlmaWVyc0Zyb21FdmVudCkoZSkscz0yNTUmKHRoaXMuX3ByZXNzZWRLZXlzLnZhbHVlKCk/PzApO3RoaXMuX3ByZXNzZWRLZXlzLnNldFZhbHVlKHR8cyl9fWxpc3RlbihlKXtlLmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLHRoaXMuX2tleURvd25MaXN0ZW5lciksZS5hZGRFdmVudExpc3RlbmVyKCJrZXl1cCIsdGhpcy5fa2V5VXBMaXN0ZW5lciksZS5hZGRFdmVudExpc3RlbmVyKCJibHVyIix0aGlzLl9ibHVyRXZlbnQpLGUuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIix0aGlzLl9tb3VzZUV2ZW50KX11bmxpc3RlbihlKXtlLnJlbW92ZUV2ZW50TGlzdGVuZXIoImtleWRvd24iLHRoaXMuX2tleURvd25MaXN0ZW5lciksZS5yZW1vdmVFdmVudExpc3RlbmVyKCJrZXl1cCIsdGhpcy5fa2V5VXBMaXN0ZW5lciksZS5yZW1vdmVFdmVudExpc3RlbmVyKCJibHVyIix0aGlzLl9ibHVyRXZlbnQpLGUucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIix0aGlzLl9tb3VzZUV2ZW50KX1yZWdpc3Rlckdyb3VwKGUpe3RoaXMuX2dyb3Vwcy5wdXNoKGUpLHRoaXMuc29ydEdyb3VwcygpfXVucmVnaXN0ZXJHcm91cChlKXtmb3IobGV0IHQ9dGhpcy5fZ3JvdXBzLmxlbmd0aDt0LS07KXRoaXMuX2dyb3Vwc1t0XT09PWUmJnRoaXMuX2dyb3Vwcy5zcGxpY2UodCwxKX1wcm9tb3RlR3JvdXAoZSl7Y29uc3QgdD10aGlzLl9nZXRNb2RhbE9yZGVyRXBvY2goKSxzPXUoZSx0KTtsZXQgaT10aGlzLl9ncm91cHMuZmluZEluZGV4KChlPT51KGUsdCk9PT1zKSksbj0wO2Zvcig7aTx0aGlzLl9ncm91cHMubGVuZ3RoJiZ1KHRoaXMuX2dyb3Vwc1tpXSx0KT09PXM7KXtjb25zdCByPXRoaXMuX2dyb3Vwc1tpXTtyPT09ZT9uPTE6dShyLHQpPT09cyYmKHRoaXMuX2dyb3Vwc1tpLW5dPXIpLGkrK310aGlzLl9ncm91cHNbaS1uXT1lfXByZXNzZWRLZXlzKCl7cmV0dXJuIHRoaXMuX3ByZXNzZWRLZXlzLnJlYWRvbmx5KCl9a2V5Ym9hcmRQcmVzc2VkS2V5c1N0YXRlKCl7cmV0dXJuIHRoaXMuX2tleWJvYXJkUHJlc3NlZEtleXNTdGF0ZS5yZWFkb25seSgpfXNvcnRHcm91cHMoKXtjb25zdCBlPXRoaXMuX2dldE1vZGFsT3JkZXJFcG9jaCgpO3RoaXMuX2dyb3Vwcy5zb3J0KCgodCxzKT0+dShzLGUpLXUodCxlKSkpfV9nZXRNaW5PcmRlcigpe3JldHVybiB0aGlzLl9ncm91cHMucmVkdWNlKCgoZSx0KT0+TWF0aC5taW4oZSx0Lm9yZGVyKSksMCl9X2dldE1vZGFsT3JkZXJFcG9jaCgpe3JldHVybi0yKihNYXRoLmFicyh0aGlzLl9nZXRNaW5PcmRlcigpKS0xKX19ZnVuY3Rpb24gdShlLHQpe3JldHVybiBlLm9yZGVyKyhlLm1vZGFsP3Q6MCl9fSw5OTI4MDMoZSx0LHMpeyJ1c2Ugc3RyaWN0IjtzLmQodCx7QWN0aW9uOigpPT5pfSk7Y2xhc3MgaXtjb25zdHJ1Y3RvcihlLHQpe3RoaXMuX2dyb3VwPWU7Y29uc3R7aG90a2V5OnMsaGFuZGxlcjppLGRlc2M6bixpc0Rpc2FibGVkOnIsZWxlbWVudDpvPW51bGwsaXNSZXBlYXRBY2NlcHRlZDphPSExfT10O3RoaXMuaG90a2V5PXMsdGhpcy5oYW5kbGVyPWksdGhpcy5kZXNjPW4sdGhpcy5lbGVtZW50PW8sdGhpcy5pc1JlcGVhdEFjY2VwdGVkPWEsdGhpcy5pc0Rpc2FibGVkPXI/ImZ1bmN0aW9uIj09dHlwZW9mIHI/cjooKT0+ITA6KCk9PiExfWRlc3Ryb3koKXt0aGlzLl9ncm91cCYmKHRoaXMuX2dyb3VwLnJlbW92ZSh0aGlzKSx0aGlzLl9ncm91cD1udWxsKX19fSw2OTYyMDgoZSx0LHMpeyJ1c2Ugc3RyaWN0IjtzLmQodCx7S2V5Ym9hcmRQcmVzc2VkS2V5c1N0YXRlOigpPT5ufSk7dmFyIGk9cygyMzU3MjQpO2NsYXNzIG57Y29uc3RydWN0b3IoZSx0KXt0aGlzLm1vZGlmaWVycz1lLHRoaXMuY29kZT10fWFsdE9yT3B0aW9uQ29kZSgpe3JldHVybiJBbHRMZWZ0Ij09PXRoaXMuY29kZXx8IkFsdFJpZ2h0Ij09PXRoaXMuY29kZX1jb250cm9sT3JNZXRhQ29kZSgpe3JldHVybiBpLmlzTWFjS2V5Ym9hcmQ/Ik1ldGFMZWZ0Ij09PXRoaXMuY29kZXx8Ik1ldGFSaWdodCI9PT10aGlzLmNvZGV8fCJPU0xlZnQiPT09dGhpcy5jb2RlfHwiT1NSaWdodCI9PT10aGlzLmNvZGU6IkNvbnRyb2xMZWZ0Ij09PXRoaXMuY29kZXx8IkNvbnRyb2xSaWdodCI9PT10aGlzLmNvZGV9fX0sNjY1MTQ1KGUsdCxzKXsidXNlIHN0cmljdCI7dmFyIGk7cy5kKHQse01lZGl1bVRpbWVGcmFtZU9wdGlvbnNNb2RlOigpPT5pfSksZnVuY3Rpb24oZSl7ZVtlLlVzZUxhc3RTZXNzaW9uPTBdPSJVc2VMYXN0U2Vzc2lvbiIsZVtlLlVzZTFEPTFdPSJVc2UxRCIsZVtlLlVzZUxhc3RTZXNzaW9uQW5kMUQ9Ml09IlVzZUxhc3RTZXNzaW9uQW5kMUQifShpfHwoaT17fSkpfSwKODAyNTg2KGUsdCxzKXsidXNlIHN0cmljdCI7cy5kKHQse2dldERheVJlc29sdXRpb25UaW1lRnJhbWVPcHRpb25zOigpPT5jLGdldEZyb21Gb3JEYXk6KCk9PmEsZ2V0RnJvbUZvck1vbnRoc0FnbzooKT0+cixnZXRGcm9tRm9yWWVhcnNBZ286KCk9Pm8sZ2V0TWVkaXVtVGltZUZyYW1lT3B0aW9uczooKT0+ZCxnZXRNaW5pVGltZUZyYW1lT3B0aW9uczooKT0+dSxnZXRTdGFydE9mVGhlWWVhcjooKT0+bH0pO3ZhciBpPXMoNjY1MTQ1KSxuPXMoNjkzNTAwKTtmdW5jdGlvbiByKGUpe2NvbnN0IHQ9bmV3IERhdGU7cmV0dXJuIHQuc2V0TW9udGgodC5nZXRNb250aCgpLWUpLE1hdGgudHJ1bmModC52YWx1ZU9mKCkvMWUzKX1mdW5jdGlvbiBvKGUpe2NvbnN0IHQ9bmV3IERhdGU7cmV0dXJuIHQuc2V0RnVsbFllYXIodC5nZXRGdWxsWWVhcigpLWUpLE1hdGgudHJ1bmModC52YWx1ZU9mKCkvMWUzKX1mdW5jdGlvbiBhKGUpe2NvbnN0IHQ9bmV3IERhdGU7cmV0dXJuIHQuc2V0RGF0ZSh0LmdldERhdGUoKS1lKSxNYXRoLnRydW5jKHQudmFsdWVPZigpLzFlMyl9ZnVuY3Rpb24gbCgpe3JldHVybiBNYXRoLnRydW5jKG5ldyBEYXRlKChuZXcgRGF0ZSkuZ2V0RnVsbFllYXIoKSwwLDEpLnZhbHVlT2YoKS8xZTMpfWZ1bmN0aW9uIHUoZSl7Y29uc3QgdD0oMCxuLmdldFRpbWVGcmFtZXMpKCk7cmV0dXJuW3suLi50W2U/Imxhc3RzZXNzaW9uIjoiMWQiXX0sey4uLnRbIjFtIl0sdGFyZ2V0UmVzb2x1dGlvbjoiMUQiLGZyb206cigxKX0sey4uLnRbIjNtIl0sdGFyZ2V0UmVzb2x1dGlvbjoiMUQiLGZyb206cigzKX0sey4uLnRbIjEybSJdLGZyb206bygxKX0sey4uLnRbIjYwbSJdLHRhcmdldFJlc29sdXRpb246IjFNIixmcm9tOm8oNSl9LHsuLi50LmFsbH1dfWZ1bmN0aW9uIGMoZSl7Y29uc3QgdD0oMCxuLmdldFRpbWVGcmFtZXMpKCk7cmV0dXJuW3suLi50W2U/Imxhc3RzZXNzaW9uIjoiMWQiXX0sey4uLnRbIjFtIl0sdGFyZ2V0UmVzb2x1dGlvbjoiMUQiLGZyb206cigxKX0sey4uLnRbIjNtIl0sdGFyZ2V0UmVzb2x1dGlvbjoiMUQiLGZyb206cigzKX0sey4uLnRbIjZtIl0sdGFyZ2V0UmVzb2x1dGlvbjoiMUQiLGZyb206cig2KX0sey4uLnQueXRkLHRhcmdldFJlc29sdXRpb246IjFEIixmcm9tOnIoNil9LHsuLi50WyIxMm0iXSxmcm9tOm8oMSl9XX1mdW5jdGlvbiBkKGUpe2NvbnN0IHQ9KDAsbi5nZXRUaW1lRnJhbWVzKSgpLHM9W107cmV0dXJuIGUhPT1pLk1lZGl1bVRpbWVGcmFtZU9wdGlvbnNNb2RlLlVzZTFEJiZzLnB1c2goey4uLnQubGFzdHNlc3Npb259KSxlIT09aS5NZWRpdW1UaW1lRnJhbWVPcHRpb25zTW9kZS5Vc2VMYXN0U2Vzc2lvbiYmcy5wdXNoKHsuLi50WyIxZCJdfSksWy4uLnMsey4uLnRbIjFtIl0sdGFyZ2V0UmVzb2x1dGlvbjoiNjAiLGZyb206cigxKX0sey4uLnRbIjNtIl0sdGFyZ2V0UmVzb2x1dGlvbjoiMTIwIixmcm9tOnIoMyl9LHsuLi50WyIxMm0iXSxmcm9tOm8oMSl9LHsuLi50WyI2MG0iXSx0YXJnZXRSZXNvbHV0aW9uOiIxVyIsZnJvbTpvKDUpfSx7Li4udC5hbGx9XX19LDY5MzUwMChlLHQscyl7InVzZSBzdHJpY3QiO3MuZCh0LHtnZXRUaW1lRnJhbWVzOigpPT5yfSk7dmFyIGk9cyg3ODMyNTQpLG49cygyMTU3MzApO2Z1bmN0aW9uIHIoZSl7cmV0dXJueyIxZCI6e3RleHQ6aS50KG51bGwsdm9pZCAwLHMoOTM4MTAwKSksdmFsdWU6e3ZhbHVlOiIxRCIsdHlwZToicGVyaW9kLWJhY2sifSx0YXJnZXRSZXNvbHV0aW9uOmU/LlsiMUQiXT8/KDAsbi5zdHJpbmdBc1Jlc29sdXRpb24pKCIxIiksZGVzY3JpcHRpb246KDAsbi5kYXlzU3RyaW5nTGl0ZXJhbCkoMSl9LCI1ZCI6e3RleHQ6aS50KG51bGwsdm9pZCAwLHMoODI4NTUpKSx2YWx1ZTp7dmFsdWU6IjVEIix0eXBlOiJwZXJpb2QtYmFjayJ9LHRhcmdldFJlc29sdXRpb246ZT8uWyI1RCJdPz8oMCxuLnN0cmluZ0FzUmVzb2x1dGlvbikoIjUiKSxkZXNjcmlwdGlvbjooMCxuLmRheXNTdHJpbmdMaXRlcmFsKSg1KX0sIjF3Ijp7dGV4dDppLnQobnVsbCx2b2lkIDAscyg0OTIxMzUpKSx2YWx1ZTp7dmFsdWU6IjdEIix0eXBlOiJwZXJpb2QtYmFjayJ9LHRhcmdldFJlc29sdXRpb246ZT8uWyI1VyJdPz8oMCxuLnN0cmluZ0FzUmVzb2x1dGlvbikoIjE1IiksZGVzY3JpcHRpb246KDAsbi53ZWVrc1N0cmluZ0xpdGVyYWwpKDEpfSwiMW0iOnt0ZXh0OmkudChudWxsLHZvaWQgMCxzKDgzMjczMykpLHZhbHVlOnt2YWx1ZToiMU0iLHR5cGU6InBlcmlvZC1iYWNrIn0sdGFyZ2V0UmVzb2x1dGlvbjplPy5bIjFNIl0/PygwLG4uc3RyaW5nQXNSZXNvbHV0aW9uKSgiMzAiKSxkZXNjcmlwdGlvbjooMCxuLm1vbnRoc1N0cmluZ0xpdGVyYWwpKDEpfSwiM20iOnt0ZXh0OmkudChudWxsLHZvaWQgMCxzKDgxOTA3OCkpLHZhbHVlOnt2YWx1ZToiM00iLHR5cGU6InBlcmlvZC1iYWNrIn0sdGFyZ2V0UmVzb2x1dGlvbjplPy5bIjNNIl0/PygwLG4uc3RyaW5nQXNSZXNvbHV0aW9uKSgiNjAiKSxkZXNjcmlwdGlvbjooMCxuLm1vbnRoc1N0cmluZ0xpdGVyYWwpKDMpfSwiNm0iOnt0ZXh0OmkudChudWxsLHZvaWQgMCxzKDY4MDc2KSksdmFsdWU6e3ZhbHVlOiI2TSIsdHlwZToicGVyaW9kLWJhY2sifSx0YXJnZXRSZXNvbHV0aW9uOmU/LlsiNk0iXT8/KDAsbi5zdHJpbmdBc1Jlc29sdXRpb24pKCIxMjAiKSxkZXNjcmlwdGlvbjooMCxuLm1vbnRoc1N0cmluZ0xpdGVyYWwpKDYpfSwiMTJtIjp7dGV4dDppLnQobnVsbCx2b2lkIDAscyg3NzAzMDMpKSx2YWx1ZTp7dmFsdWU6IjEyTSIsdHlwZToicGVyaW9kLWJhY2sifSx0YXJnZXRSZXNvbHV0aW9uOmU/LlsiMTJNIl0/PygwLG4uc3RyaW5nQXNSZXNvbHV0aW9uKSgiMUQiKSxkZXNjcmlwdGlvbjooMCxuLnllYXJzU3RyaW5nTGl0ZXJhbCkoMSl9LCIyNG0iOnt0ZXh0OmkudChudWxsLHZvaWQgMCxzKDkzNDc3NykpLHZhbHVlOnt2YWx1ZToiMjRNIix0eXBlOiJwZXJpb2QtYmFjayJ9LHRhcmdldFJlc29sdXRpb246ZT8uWyIyNE0iXT8/KDAsbi5zdHJpbmdBc1Jlc29sdXRpb24pKCIxVyIpLGRlc2NyaXB0aW9uOigwLG4ueWVhcnNTdHJpbmdMaXRlcmFsKSgyKX0sIjM2bSI6ewp0ZXh0OmkudChudWxsLHZvaWQgMCxzKDI3MjA5OCkpLHZhbHVlOnt2YWx1ZToiMzZNIix0eXBlOiJwZXJpb2QtYmFjayJ9LHRhcmdldFJlc29sdXRpb246ZT8uWyIzNk0iXT8/KDAsbi5zdHJpbmdBc1Jlc29sdXRpb24pKCIxVyIpLGRlc2NyaXB0aW9uOigwLG4ueWVhcnNTdHJpbmdMaXRlcmFsKSgzKX0sIjYwbSI6e3RleHQ6aS50KG51bGwsdm9pZCAwLHMoNDQ2NTYwKSksdmFsdWU6e3ZhbHVlOiI2ME0iLHR5cGU6InBlcmlvZC1iYWNrIn0sdGFyZ2V0UmVzb2x1dGlvbjplPy5bIjYwTSJdPz8oMCxuLnN0cmluZ0FzUmVzb2x1dGlvbikoIjFXIiksZGVzY3JpcHRpb246KDAsbi55ZWFyc1N0cmluZ0xpdGVyYWwpKDUpfSwiMTIwbSI6e3RleHQ6aS50KG51bGwsdm9pZCAwLHMoOTk1MDY2KSksdmFsdWU6e3ZhbHVlOiIxMjBNIix0eXBlOiJwZXJpb2QtYmFjayJ9LHRhcmdldFJlc29sdXRpb246ZT8uWyIxMjBNIl0/PygwLG4uc3RyaW5nQXNSZXNvbHV0aW9uKSgiMU0iKSxkZXNjcmlwdGlvbjooMCxuLnllYXJzU3RyaW5nTGl0ZXJhbCkoMTApfSx5dGQ6e3RleHQ6aS50KG51bGwsdm9pZCAwLHMoNDIyMzY5KSksdmFsdWU6e3ZhbHVlOiJZVEQiLHR5cGU6InBlcmlvZC1iYWNrIn0sdGFyZ2V0UmVzb2x1dGlvbjplPy5ZVEQ/PygwLG4uc3RyaW5nQXNSZXNvbHV0aW9uKSgiMUQiKSxkZXNjcmlwdGlvbjppLnQobnVsbCx2b2lkIDAscyg0ODU0MjApKX0sYWxsOnt0ZXh0OmkudChudWxsLHZvaWQgMCxzKDIzMzY5MCkpLHZhbHVlOnt2YWx1ZToiQUxMIix0eXBlOiJwZXJpb2QtYmFjayJ9LHRhcmdldFJlc29sdXRpb246ZT8uQUxMPz8oMCxuLnN0cmluZ0FzUmVzb2x1dGlvbikoIjFNIil9LGxhc3RzZXNzaW9uOnt0ZXh0OmkudChudWxsLHZvaWQgMCxzKDkzODEwMCkpLHZhbHVlOnt2YWx1ZToiTEFTVFNFU1NJT04iLHR5cGU6InBlcmlvZC1iYWNrIn0sdGFyZ2V0UmVzb2x1dGlvbjplPy5MQVNUU0VTU0lPTj8/KDAsbi5zdHJpbmdBc1Jlc29sdXRpb24pKCIxIiksZGVzY3JpcHRpb246KDAsbi5kYXlzU3RyaW5nTGl0ZXJhbCkoMSl9fX19LDIxNTczMChlLHQscyl7InVzZSBzdHJpY3QiO3MuZCh0LHtkYXlzU3RyaW5nTGl0ZXJhbDooKT0+byxob3Vyc1N0cmluZ0xpdGVyYWw6KCk9PnIsbWludXRlc1N0cmluZ0xpdGVyYWw6KCk9Pm4sbW9udGhzU3RyaW5nTGl0ZXJhbDooKT0+bCxzdHJpbmdBc1Jlc29sdXRpb246KCk9PmMsd2Vla3NTdHJpbmdMaXRlcmFsOigpPT5hLHllYXJzU3RyaW5nTGl0ZXJhbDooKT0+dX0pO3ZhciBpPXMoNzgzMjU0KTtjb25zdCBuPWU9PmkudChudWxsLHtwbHVyYWw6IntzdHJ9IG1pbnV0ZXMiLGNvdW50OmUscmVwbGFjZTp7c3RyOmAke2V9YH19LHMoNDM5MCkpLHI9ZT0+aS50KG51bGwse3BsdXJhbDoie3N0cn0gaG91cnMiLGNvdW50OmUscmVwbGFjZTp7c3RyOmAke2V9YH19LHMoMjEwNTc0KSksbz1lPT5pLnQobnVsbCx7cGx1cmFsOiJ7c3RyfSBkYXlzIixjb3VudDplLHJlcGxhY2U6e3N0cjpgJHtlfWB9fSxzKDEwMzAzMCkpLGE9ZT0+aS50KG51bGwse3BsdXJhbDoie3N0cn0gd2Vla3MiLGNvdW50OmUscmVwbGFjZTp7c3RyOmAke2V9YH19LHMoNjQ0NjI1KSksbD1lPT5pLnQobnVsbCx7cGx1cmFsOiJ7c3RyfSBtb250aHMiLGNvdW50OmUscmVwbGFjZTp7c3RyOmAke2V9YH19LHMoNjk0NjE3KSksdT1lPT5pLnQobnVsbCx7cGx1cmFsOiJ7c3RyfSB5ZWFycyIsY291bnQ6ZSxyZXBsYWNlOntzdHI6YCR7ZX1gfX0scygyMTY0MDIpKSxjPWU9PmV9LDMwODgxMChlLHQscyl7InVzZSBzdHJpY3QiO3MuZCh0LHt0aW1lRnJhbWVzOigpPT5pfSk7Y29uc3QgaT0oMCxzKDY5MzUwMCkuZ2V0VGltZUZyYW1lcykoKX0sODQ0MzAxKGUsdCxzKXsidXNlIHN0cmljdCI7cy5kKHQse2Zvcm1hdFN5bWJvbEFuZFJlc29sdXRpb246KCk9PmkuZm9ybWF0U3ltYm9sQW5kUmVzb2x1dGlvbixmb3JtYXRTeW1ib2xTdHJpbmc6KCk9PmkuZm9ybWF0U3ltYm9sU3RyaW5nLGZvcm1hdFdhdGNobGlzdFRpdGxlOigpPT5uLmZvcm1hdFdhdGNobGlzdFRpdGxlfSk7cygxNjI1OCk7dmFyIGk9cygyNjExNTQpLG49cyg0ODUxNzkpfSw5NjI3MzcoZSx0LHMpeyJ1c2Ugc3RyaWN0IjtzLmQodCx7Zm9ybWF0U3R1ZHlFcnJvcjooKT0+cix0cmllc1RyYW5zbGF0ZUVycm9yOigpPT5ufSk7dmFyIGk9cygxODUyNzEpO2Z1bmN0aW9uIG4oZSl7cmV0dXJuIGEuZ2V0KGUpfHxlfWZ1bmN0aW9uIHIoZSl7cmV0dXJuIGUuZm9ybWF0KHtib2xkSGlnaGxpZ2h0U3RhcnQ6IjxiPiIsYm9sZEhpZ2hsaWdodEVuZDoiPC9iPiJ9KX0KY29uc3Qgbz1bWyJZb3UgY2Fubm90IHNlZSB0aGlzIHBpdm90IHRpbWVmcmFtZSBvbiB0aGlzIHJlc29sdXRpb24iLGkudChudWxsLHZvaWQgMCxzKDI5OTE4OCkpXSxbIlRoZSBkYXRhIHZlbmRvciBkb2Vzbid0IHByb3ZpZGUgdm9sdW1lIGRhdGEgZm9yIHRoaXMgc3ltYm9sLiIsaS50KG51bGwsdm9pZCAwLHMoODIzMTY2KSldLFsnSGlzdG9ncmFtIGlzIHRvbyBsYXJnZSwgcGxlYXNlIGluY3JlYXNlICJSb3cgU2l6ZSIgaW5wdXQuJyxpLnQobnVsbCx2b2lkIDAscyg2NjA2MDkpKV0sWyJIaXN0b2dyYW0gaXMgdG9vIGxhcmdlLCBwbGVhc2UgcmVkdWNlICdSb3cgU2l6ZScgaW5wdXQuIixpLnQobnVsbCx2b2lkIDAscygzMzMwOSkpXSxbJ0hpc3RvZ3JhbSBpcyB0b28gbGFyZ2UsIHBsZWFzZSBpbmNyZWFzZSAiVGlja3MgUGVyIFJvdyIgaW5wdXQuJyxpLnQobnVsbCx2b2lkIDAscyg0NjkyMCkpXSxbIlRoaXMgc2NyaXB0IGlzIGludml0ZS1vbmx5LiBUbyByZXF1ZXN0IGFjY2VzcywgcGxlYXNlIGNvbnRhY3QgaXRzIGF1dGhvci4iLGkudChudWxsLHZvaWQgMCxzKDQ4NzY5NSkpXSxbIlZvbHVtZSBQcm9maWxlIGluZGljYXRvciBhdmFpbGFibGUgb25seSBvbiBvdXIgdXBncmFkZWQgcGxhbnMuIixpLnQobnVsbCx2b2lkIDAscygzMzI1ODcpKV0sWyJWT0xVTUVfQklTVF9NSVhFRCIsaS50KG51bGwsdm9pZCAwLHMoNDk3NjQyKSldLFsiUnVudGltZSBlcnJvciIsaS50KG51bGwsdm9pZCAwLHMoNzMwNjM4KSldLFsiQWNjZXNzIGVycm9yIixpLnQobnVsbCx2b2lkIDAscyg1NDIyKSldLFsiVXNlci1kZWZpbmVkIGVycm9yIixpLnQobnVsbCx2b2lkIDAscyg0MjA0NDkpKV0sWyJDb21waWxhdGlvbiBlcnJvciIsaS50KG51bGwsdm9pZCAwLHMoNjk3ODgxKSldLFsiTWV0cmljIGVycm9yIixpLnQobnVsbCx2b2lkIDAscyg3ODkyOTEpKV0sWyJVcGdyYWRlIHRvIHVubG9jayBmb3JlY2FzdCBtZXRyaWNzIixpLnQobnVsbCx2b2lkIDAscyg5MjM5MTIpKV0sWyJHZXQgYWNjZXNzIHRvIGZvcmVjYXN0IG1ldHJpY3Mgd2l0aCBhbiB1cGdyYWRlZCBwbGFuLiIsaS50KG51bGwsdm9pZCAwLHMoMTc3ODU0KSldLFsiVGhlcmUncyBubyBkYXRhIGZvciB5b3VyIHNlbGVjdGVkIHBlcmlvZCBhbmQgY2hhcnQgdGltZWZyYW1lLiIsaS50KG51bGwsdm9pZCAwLHMoNzEyMTg2KSldLFsiVGhlIHJlcXVlc3QgdG9vayB0b28gbG9uZyB0byBwcm9jZXNzLiBFbnN1cmUgeW91IGhhdmUgYSBzdGFibGUgaW50ZXJuZXQgY29ubmVjdGlvbi4gSWYgdGhlIGlzc3VlIHBlcnNpc3RzLCB0cnkgZGVjcmVhc2luZyB0aGUgbGVuZ3RoIG9mIHRoZSByZXF1ZXN0ZWQgdGltZSBpbnRlcnZhbC4iLGkudChudWxsLHZvaWQgMCxzKDE4MjAyMCkpXSxbIlVuZXhwZWN0ZWQgZXJyb3IgaW4gRGVlcCBCYWNrdGVzdGluZyBtb2RlLiBDb250YWN0IHN1cHBvcnQgZm9yIG1vcmUgaW5mb3JtYXRpb24uIixpLnQobnVsbCx2b2lkIDAscyg5MzI4KSldLFsiY2hlY2sgc3R1ZHkgdW5leHBlY3RlZCBlcnJvciIsaS50KG51bGwsdm9pZCAwLHMoNDAwMzIwKSldLFsiVG8gY2FsY3VsYXRlIHRoZSBWV0FQIGluZGljYXRvciwgbW9yZSBkYXRhIGlzIG5lZWRlZC4gWm9vbSBvdXQgb3Igc2Nyb2xsIGxlZnQgdG8gbG9hZCBtb3JlIGhpc3RvcmljYWwgZGF0YS4iLGkudChudWxsLHZvaWQgMCxzKDc1MzAyNCkpXSxbIlZXQVAgaXMgd2FpdGluZyBmb3IgbW9yZSBkYXRhIixpLnQobnVsbCx2b2lkIDAscygzNjQ3MzYpKV0sWyJUaGUgYmFyIG1hZ25pZmllciBpcyBvbmx5IGF2YWlsYWJsZSB0byB0aGUgUHJlbWl1bSBwbGFuIG9yIGhpZ2hlci4iLGkudChudWxsLHZvaWQgMCxzKDI4MDYyKSldLFsiU3RyYXRlZ3kgY2FsY3VsYXRpb24gb24gZWFjaCBoaXN0b3JpY2FsIHRpY2sgaXMgYXZhaWxhYmxlIHRvIFByZW1pdW0gYW5kIFVsdGltYXRlIHBsYW5zIG9ubHkuIFVwZ3JhZGUgeW91ciBwbGFuIHRvIGFjY2VzcyB0aGlzIGZlYXR1cmUuIixpLnQobnVsbCx2b2lkIDAscygxMjMyMTkpKV1dLGE9bmV3IE1hcChvKX0sMjQ2ODkoZSx0LHMpeyJ1c2Ugc3RyaWN0Ijthc3luYyBmdW5jdGlvbiBpKCl7cmV0dXJuIFByb21pc2UuYWxsKFtzLmUoMjc4MjApLHMuZSg4NDMwNikscy5lKDI5Mjk2KSxzLmUoNTIzOTYpLHMuZSg2MDA2Mikscy5lKDEzNDkyKSxzLmUoMzc3NDYpLHMuZSg0MDQyKSxzLmUoMjU1NTQpLHMuZSg5OTQ0OCkscy5lKDMyMzg3KSxzLmUoMzk2MDkpLHMuZSg5MTA3KV0pLnRoZW4ocy5iaW5kKHMsNTg3MzU0KSl9cy5kKHQse2ltcG9ydFBvcHVwUmVuZGVyOigpPT5pfSl9LDE0NzgwNShlLHQscyl7InVzZSBzdHJpY3QiO3MuZCh0LHtjbG9zZUN1cnJlbnRQdWJsaWNhdGlvblZpZXdQb3B1cDooKT0+YSxnZXRQdWJsaWNhdGlvblR5cGU6KCk9Pm4uZ2V0UHVibGljYXRpb25UeXBlLG9wZW5QdWJsaWNhdGlvblZpZXdQb3B1cDooKT0+dSxwcmVsb2FkUHVibGljYXRpb25WaWV3UG9wdXA6KCk9Pmx9KTt2YXIgaT1zKDI0Njg5KSxuPXMoNjg2NTEzKTtsZXQgcj0hMTthc3luYyBmdW5jdGlvbiBvKCl7cmV0dXJuIHI9ITAsUHJvbWlzZS5hbGwoW3MuZSgzNDI4NCkscy5lKDEyMzg1KSxzLmUoMzMxMCkscy5lKDMzNjcpLHMuZSg2NjQ3MildKS50aGVuKHMuYmluZChzLDQzNTM4MCkpfWFzeW5jIGZ1bmN0aW9uIGEoKXtpZighcilyZXR1cm47Y29uc3QgZT1hd2FpdCBvKCk7YXdhaXQgZS5jbG9zZUN1cnJlbnRQdWJsaWNhdGlvblZpZXdQb3B1cCgpfWFzeW5jIGZ1bmN0aW9uIGwoZSl7bygpLCgwLGkuaW1wb3J0UG9wdXBSZW5kZXIpKCksKDAsbi5pbXBvcnRFbnRyeUNvbXBvbmVudCkoZSl9YXN5bmMgZnVuY3Rpb24gdShlKXtyZXR1cm4oYXdhaXQgbygpKS5vcGVuUHVibGljYXRpb25WaWV3UG9wdXAoZSl9fSwyMTYxMShlLHQscyl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGkoZSl7aWYobnVsbCE9ZSYmImJvb2xlYW4iIT10eXBlb2YgZSYmIWlzTmFOKE51bWJlcihlKSkpcmV0dXJuIE51bWJlcihlKX1mdW5jdGlvbiBuKGUpe2lmKG51bGwhPWUmJiJudW1iZXIiIT10eXBlb2YgZSYmImJvb2xlYW4iIT10eXBlb2YgZSlyZXR1cm4gU3RyaW5nKGUpfXMuZCh0LHsKdG9OdW1iZXJPclVuZGVmaW5lZDooKT0+aSx0b1N0cmluZ09yVW5kZWZpbmVkOigpPT5ufSl9LDMyNjA0OChlLHQscyl7InVzZSBzdHJpY3QiO3MuZCh0LHtCYWRSZXF1ZXN0RXJyb3JSZXNwb25zZTooKT0+bn0pO3ZhciBpPXMoMTMzODc0KTtjbGFzcyBuIGV4dGVuZHMgaS5FcnJvclJlc3BvbnNle2NvbnN0cnVjdG9yKGUpe3N1cGVyKGUpLHRoaXMubmFtZT0iQmFkUmVxdWVzdEVycm9yIixlLmVycm9yP3RoaXMubWVzc2FnZT1lLmVycm9yOnRoaXMubWVzc2FnZT0idW5rbm93biBlcnJvciJ9fX0sMTMzODc0KGUsdCxzKXsidXNlIHN0cmljdCI7cy5kKHQse0Vycm9yUmVzcG9uc2U6KCk9Pml9KTtjbGFzcyBpe2NvbnN0cnVjdG9yKGUpe3RoaXMuX3N0YXR1cz1lLnN0YXR1cyx0aGlzLl9zdGF0dXNUZXh0PWUuc3RhdHVzVGV4dHx8IiJ9Z2V0SW5mbygpe3JldHVybntuYW1lOnRoaXMubmFtZSxzdGF0dXM6dGhpcy5fc3RhdHVzLHN0YXR1c1RleHQ6dGhpcy5fc3RhdHVzVGV4dCxtZXNzYWdlOnRoaXMubWVzc2FnZX19fX0sMzA4Mzg4KGUsdCxzKXsidXNlIHN0cmljdCI7cy5kKHQse2dldFN5bWJvbERhdGE6KCk9Pmx9KTt2YXIgaT1zKDM4NDAxNyksbj1zKDIxNjA3OSkscj1zKDMyNjA0OCksbz1zKDE1ODc2MyksYT1zKDc3MDgyNSk7ZnVuY3Rpb24gbChlLHQscyxsLHU9ITAsYz0hMSl7Y29uc3QgZD1zLmpvaW4oIiwiKSxoPSgwLG4uZ2V0U3ltYm9sRGF0YVVybCkodCxkLGwsdSxjKSxwPXtzaWduYWw6ZSxtZXRob2Q6IkdFVCIsY3JlZGVudGlhbHM6ImluY2x1ZGUiLGhlYWRlcnM6e0FjY2VwdDoiYXBwbGljYXRpb24vanNvbiJ9fTtyZXR1cm4oMCxpLmZldGNoKShoLHAse2xvZ09uRXJyb3JTdGF0dXM6ITF9KS50aGVuKChlPT57aWYoNDAwPT09ZS5zdGF0dXMpe2NvbnN0e3N0YXR1czp0LHN0YXR1c1RleHQ6c309ZTtyZXR1cm4gZS5qc29uKCkudGhlbigoZT0+e2NvbnN0IGk9ZS5lcnJtc2c7dGhyb3cgbmV3IHIuQmFkUmVxdWVzdEVycm9yUmVzcG9uc2Uoe3N0YXR1czp0LHN0YXR1c1RleHQ6cyxlcnJvcjppfSl9KSl9aWYoNDA0PT09ZS5zdGF0dXMpe2NvbnN0e3N0YXR1czp0LHN0YXR1c1RleHQ6c309ZTtyZXR1cm4gZS5qc29uKCkudGhlbigoaT0+e2lmKCJzeW1ib2xfbm90X2V4aXN0cyI9PT1pLmNvZGUpe2NvbnN0IGU9aS5lcnJtc2c7dGhyb3cgbmV3IGEuU3ltYm9sRG9lc05vdEV4aXN0RXJyb3JSZXNwb25zZSh7c3RhdHVzOnQsc3RhdHVzVGV4dDpzLGVycm9yOmV9KX10aHJvdyBuZXcgby5IdHRwRXJyb3JSZXNwb25zZShlKX0pKX1pZihlLm9rKXJldHVybiBlLmpzb24oKS50aGVuKChlPT5lKSk7dGhyb3cgbmV3IG8uSHR0cEVycm9yUmVzcG9uc2UoZSl9KSl9fSwxNTg3NjMoZSx0LHMpeyJ1c2Ugc3RyaWN0IjtzLmQodCx7SHR0cEVycm9yUmVzcG9uc2U6KCk9Pm59KTt2YXIgaT1zKDEzMzg3NCk7Y2xhc3MgbiBleHRlbmRzIGkuRXJyb3JSZXNwb25zZXtjb25zdHJ1Y3RvcihlKXtzdXBlcihlKSx0aGlzLm5hbWU9Ikh0dHBFcnJvclJlc3BvbnNlIix0aGlzLl9zdGF0dXM+PTIwMCYmdGhpcy5fc3RhdHVzPDMwMD90aGlzLm1lc3NhZ2U9YEh0dHAgZmFpbHVyZSBkdXJpbmcgcGFyc2luZyBmb3IgJHtlLnVybHx8Iih1bmtub3duIHVybCkifWA6dGhpcy5tZXNzYWdlPWBIdHRwIGZhaWx1cmUgcmVzcG9uc2UgZm9yICR7ZS51cmx8fCIodW5rbm93biB1cmwpIn06ICR7ZS5zdGF0dXN9ICR7ZS5zdGF0dXNUZXh0fWB9fX0sNzcwODI1KGUsdCxzKXsidXNlIHN0cmljdCI7cy5kKHQse1N5bWJvbERvZXNOb3RFeGlzdEVycm9yUmVzcG9uc2U6KCk9Pm59KTt2YXIgaT1zKDEzMzg3NCk7Y2xhc3MgbiBleHRlbmRzIGkuRXJyb3JSZXNwb25zZXtjb25zdHJ1Y3RvcihlKXtzdXBlcihlKSx0aGlzLm5hbWU9IlN5bWJvbERvZXNOb3RFeGlzdEVycm9yIix0aGlzLm1lc3NhZ2U9ZS5lcnJvcnx8InN5bWJvbCBkb2VzIG5vdCBleGlzdCJ9fX0sMjE2MDc5KGUsdCxzKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gaSgpe3JldHVybiB3aW5kb3cuU0NSRUVORVJfSE9TVHx8Imh0dHBzOi8vc2Nhbm5lci50cmFkaW5ndmlldy5jb20ifWZ1bmN0aW9uIG4oZSx0KXtjb25zdCBzPWkoKTtyZXR1cm4gdD9gJHtzfS8ke3R9L2A6MT09PWUubGVuZ3RoP2Ake3N9LyR7ZVswXX0vYDpgJHtzfS9nbG9iYWwvYH1mdW5jdGlvbiByKGUsdCxzLG4scil7Y29uc3Qgbz1pKCksYT17c3ltYm9sOmUsZmllbGRzOnR9O24mJihhLm5vXzQwND0idHJ1ZSIpLHImJihhLnByaWNlX2NvbnZlcnNpb249ImRpc2FibGVkIikscyYmKGFbImxhYmVsLXByb2R1Y3QiXT1zKTtjb25zdCBsPW5ldyBVUkwoYCR7b30vc3ltYm9sYCk7cmV0dXJuIE9iamVjdC5rZXlzKGEpLmZvckVhY2goKGU9PntsLnNlYXJjaFBhcmFtcy5hcHBlbmQoZSxhW2VdKX0pKSxsLnRvU3RyaW5nKCl9ZnVuY3Rpb24gbyhlLHQpe3JldHVybmAke2koKX0vZW51bT9pZD0ke2V9Jmxhbmc9JHt0fHx3aW5kb3cubGFuZ3VhZ2V8fCJlbiJ9YH1mdW5jdGlvbiBhKGUsdCl7cmV0dXJuYCR7aSgpfS9lbnVtL29yZGVyZWQ/aWQ9JHtlfSZsYW5nPSR7dHx8d2luZG93Lmxhbmd1YWdlfHwiZW4ifWB9cy5kKHQse2dldEJhY2tlbmRVcmw6KCk9Pm4sZ2V0RW51bU9yZGVyZWRSZWdpc3RyeVVybDooKT0+YSxnZXRFbnVtUmVnaXN0cnlVcmw6KCk9Pm8sZ2V0U3ltYm9sRGF0YVVybDooKT0+cn0pfSw2NDEwMzUoZSx0LHMpeyJ1c2Ugc3RyaWN0IjtzLnIodCkscy5kKHQse2NyZWF0ZU5vdGljZURpYWxvZzooKT0+bixzaG93Tm90aWNlRGlhbG9nOigpPT5yfSk7dmFyIGk9cygxODUyNzEpO2FzeW5jIGZ1bmN0aW9uIG4oZSl7cmV0dXJuKGF3YWl0IFByb21pc2UuYWxsKFtzLmUoODcyMzgpLHMuZSg1NDY4MSkscy5lKDMxODM3KSxzLmUoMjA5NzEpLHMuZSg0OTUxOCkscy5lKDc1MzA0KSxzLmUoMzgwMDIpLHMuZSg3MDM2NCkscy5lKDg5MTk1KSxzLmUoNzUwNCkscy5lKDQ2NjAwKSxzLmUoMTA3MDQpXSkudGhlbihzLmJpbmQocywyMzU3MikpKS5jcmVhdGVEaWFsb2coe3dpZHRoOjQwMCxkZXN0cm95T25DbG9zZTohMCx0aXRsZTppLnQobnVsbCx2b2lkIDAscyg1NjE2MDApKSwKY29udGVudDppLnQobnVsbCx2b2lkIDAscyg3MjM2MykpLGNvbnRlbnRXcmFwVGVtcGxhdGU6JzxkaXYgY2xhc3M9InR2LWRpYWxvZ19fc2VjdGlvbiB0di1kaWFsb2dfX3NlY3Rpb24tLW5vLWJvcmRlciI+PGRpdiBjbGFzcz0idHYtdGV4dCI+PHA+PC9wPjwvZGl2PjwvZGl2PicsYWN0aW9uc1dyYXBUZW1wbGF0ZTonPGRpdiBjbGFzcz0idHYtZGlhbG9nX19zZWN0aW9uIHR2LWRpYWxvZ19fc2VjdGlvbi0tYWN0aW9ucyB0di1kaWFsb2dfX3NlY3Rpb24tLW5vLWJvcmRlciI+JyxhY3Rpb25zOlt7bmFtZToib2siLHR5cGU6InByaW1hcnkiLHRleHQ6aS50KG51bGwsdm9pZCAwLHMoMjA4MDc4KSksbWV0aG9kOiJjbG9zZSIsa2V5OlsxMywzMl19XSwuLi5lfSl9ZnVuY3Rpb24gcihlKXtuKGUpLnRoZW4oKGU9PmUub3BlbigpKSl9fSw1MDg3NDcoZSx0LHMpeyJ1c2Ugc3RyaWN0IjtzLmQodCx7U1lNQk9MX0xJU1RfUkVQT1NJVE9SWV9CQUNLRU5EX1NFUlZJQ0U6KCk9Pml9KTtjb25zdCBpPSgwLHMoNDczMDY4KS5jcmVhdGVTZXJ2aWNlRGVzY3JpcHRvcikoIlN5bWJvbExpc3RSZXBvc2l0b3J5QmFja2VuZCIpfSw1ODA1MjYoZSx0LHMpeyJ1c2Ugc3RyaWN0IjtzLmQodCx7Z2V0TG9jYWxMaXN0U3ltYm9sczooKT0+aCxsb2NhbENvbGxhcHNlU3RhdGVGcm9tUmVtb3RlU3ltYm9sczooKT0+bCxyZW1vdGVSZW5hbWVTZXBhcmF0b3JzOigpPT5jLHJlbW90ZVN5bWJvbHNGb3JtTG9jYWxTdGF0ZTooKT0+dSxzZXBhcmF0b3JSZW1vdGVSZXByZXNlbnRhdGlvbjooKT0+ZH0pO3ZhciBpPXMoMTM4NjM4KSxuPXMoOTAxMDIyKSxyPXMoNzA1MDEyKSxvPXMoOTIyMjQ4KTtjb25zdCBhPW5ldyBSZWdFeHAoYF4ke24uU0VQQVJBVE9SX1BSRUZJWH0o4oGkKT8oLispJGApO2Z1bmN0aW9uIGwoZSl7Y29uc3QgdD1bXSxzPVtdO3JldHVybiBlLmZvckVhY2goKGU9Pntjb25zdFssaSxyXT1lLm1hdGNoKGEpfHxbXTtpZihyKXtjb25zdCBlPWAke24uU0VQQVJBVE9SX1BSRUZJWH0ke3J9YDtpJiZzLnB1c2goZSksdC5wdXNoKGUpfWVsc2UgdC5wdXNoKGUpfSkpLHtzeW1ib2xzOnQsY29sbGFwc2VkU2VwYXJhdG9yczpzfX1mdW5jdGlvbiB1KGUsdCl7Y29uc3Qgcz1tKGUpO3JldHVybiB0Lm1hcCgoZT0+cz8uaGFzT3duUHJvcGVydHkoZSk/ZChlLHNbZV0pOmUpKX1mdW5jdGlvbiBjKGUsdCxzKXtjb25zdCBpPW0oZSk7aWYoaT8uaGFzT3duUHJvcGVydHkocykpe2NvbnN0IGU9aVtzXTtyZXR1cm57b2xkU2VwYXJhdG9yOmQodCxlKSxuZXdTZXBhcmF0b3I6ZChzLGUpfX1yZXR1cm57b2xkU2VwYXJhdG9yOnQsbmV3U2VwYXJhdG9yOnN9fWZ1bmN0aW9uIGQoZSx0KXtjb25zdCBzPWUucmVwbGFjZShuLlNFUEFSQVRPUl9QUkVGSVgsIiIpLnJlcGxhY2UoIuKBpCIsIiIpO3JldHVybmAke24uU0VQQVJBVE9SX1BSRUZJWH0ke3Q/IuKBpCI6IiJ9JHtzfWB9ZnVuY3Rpb24gaChlKXtjb25zdCB0PXAoKTtyZXR1cm4oMCxpLmVuc3VyZURlZmluZWQpKHQubWFya2VkTGlzdHM/Lmxpc3RzLmJ5Q29sb3JbZV0/LnN5bWJvbHN8fHQuY3VzdG9tTGlzdHMubGlzdHMuYnlJZFtlXT8uc3ltYm9scyl9ZnVuY3Rpb24gcCgpe3JldHVybigwLHIuc2VydmljZSkoby5TWU1CT0xfTElTVF9TRVJWSUNFKS5zdG9yZS5nZXRTdGF0ZSgpfWZ1bmN0aW9uIG0oZSl7cmV0dXJuIHAoKS5jb2xsYXBzZWRTZXBhcmF0b3JzW2VdfX0sNjIxMjAoZSx0LHMpeyJ1c2Ugc3RyaWN0IjtzLmQodCx7cGVuZGluZ09wZW5TZXBhcmF0b3JzOigpPT5pfSk7Y29uc3QgaT1uZXcgU2V0fSw0MzM3MzUoZSx0LHMpeyJ1c2Ugc3RyaWN0Ijt2YXIgaSxuLHI7cy5kKHQse0NvbXBhcmVPcHRpb246KCk9Pml9KSxmdW5jdGlvbihlKXtlW2UuU2FtZVBjdFNjYWxlPTBdPSJTYW1lUGN0U2NhbGUiLGVbZS5OZXdQcmljZVNjYWxlPTFdPSJOZXdQcmljZVNjYWxlIixlW2UuTmV3UGFuZT0yXT0iTmV3UGFuZSIsZVtlLlNhbWVTY2FsZT0zXT0iU2FtZVNjYWxlIn0oaXx8KGk9e30pKSxmdW5jdGlvbihlKXtlLlN5bWJvbFNlYXJjaD0ic3ltYm9sU2VhcmNoIixlLldhdGNobGlzdD0id2F0Y2hsaXN0IixlLkV4Y2hhbmdlPSJleGNoYW5nZSIsZS5Db21wYXJlPSJjb21wYXJlIixlLk9wdGlvbnM9Im9wdGlvbnMifShufHwobj17fSkpLGZ1bmN0aW9uKGUpe2UuRml4ZWQ9ImZpeGVkIixlLkF1dG89ImF1dG8ifShyfHwocj17fSkpfSwzNTM4MShlLHQscyl7InVzZSBzdHJpY3QiO3ZhciBpO3MuZCh0LHtURUNITklDQUxTX1FTX0ZJRUxEUzooKT0+bixURUNITklDQUxTX1NDUkVFTkVSX0NPTFVNTlM6KCk9PnUscmVxdWlyZWRNQUNvbHVtbnM6KCk9PmEscmVxdWlyZWRPc2NDb2x1bW5zOigpPT5vLHJlcXVpcmVkUGl2b3RzQ29sdW1uczooKT0+bCxyZXF1aXJlZFJlY29tbWVuZENvbHVtbnM6KCk9PnJ9KSxmdW5jdGlvbihlKXtlLlR5cGU9InR5cGUiLGUuTGlzdGVkRXhjaGFuZ2U9Imxpc3RlZF9leGNoYW5nZSIsZS5QcmljZXNjYWxlPSJwcmljZXNjYWxlIixlLlR5cGVzcGVjcz0idHlwZXNwZWNzIixlLlByb05hbWU9InByb19uYW1lIixlLlNob3J0TmFtZT0ic2hvcnRfbmFtZSJ9KGl8fChpPXt9KSkKO2NvbnN0IG49WyJ0eXBlIiwibGlzdGVkX2V4Y2hhbmdlIiwicHJpY2VzY2FsZSIsInR5cGVzcGVjcyIsInByb19uYW1lIiwic2hvcnRfbmFtZSJdLHI9WyJSZWNvbW1lbmQuT3RoZXIiLCJSZWNvbW1lbmQuQWxsIiwiUmVjb21tZW5kLk1BIl0sbz1bIlJTSSIsIlN0b2NoLksiLCJDQ0kyMCIsIkFEWCIsIkFPIiwiTW9tIiwiTUFDRC5tYWNkIiwiU3RvY2guUlNJLksiLCJXLlIiLCJCQlBvd2VyIiwiVU8iXSxhPVsiRU1BMTAiLCJTTUExMCIsIkVNQTIwIiwiU01BMjAiLCJFTUEzMCIsIlNNQTMwIiwiRU1BNTAiLCJTTUE1MCIsIkVNQTEwMCIsIlNNQTEwMCIsIkVNQTIwMCIsIlNNQTIwMCIsIkljaGltb2t1LkJMaW5lIiwiVldNQSIsIkh1bGxNQTkiXSxsPVsiUGl2b3QuTS5DbGFzc2ljLlIzIiwiUGl2b3QuTS5DbGFzc2ljLlIyIiwiUGl2b3QuTS5DbGFzc2ljLlIxIiwiUGl2b3QuTS5DbGFzc2ljLk1pZGRsZSIsIlBpdm90Lk0uQ2xhc3NpYy5TMSIsIlBpdm90Lk0uQ2xhc3NpYy5TMiIsIlBpdm90Lk0uQ2xhc3NpYy5TMyIsIlBpdm90Lk0uRmlib25hY2NpLlIzIiwiUGl2b3QuTS5GaWJvbmFjY2kuUjIiLCJQaXZvdC5NLkZpYm9uYWNjaS5SMSIsIlBpdm90Lk0uRmlib25hY2NpLk1pZGRsZSIsIlBpdm90Lk0uRmlib25hY2NpLlMxIiwiUGl2b3QuTS5GaWJvbmFjY2kuUzIiLCJQaXZvdC5NLkZpYm9uYWNjaS5TMyIsIlBpdm90Lk0uQ2FtYXJpbGxhLlIzIiwiUGl2b3QuTS5DYW1hcmlsbGEuUjIiLCJQaXZvdC5NLkNhbWFyaWxsYS5SMSIsIlBpdm90Lk0uQ2FtYXJpbGxhLk1pZGRsZSIsIlBpdm90Lk0uQ2FtYXJpbGxhLlMxIiwiUGl2b3QuTS5DYW1hcmlsbGEuUzIiLCJQaXZvdC5NLkNhbWFyaWxsYS5TMyIsIlBpdm90Lk0uV29vZGllLlIzIiwiUGl2b3QuTS5Xb29kaWUuUjIiLCJQaXZvdC5NLldvb2RpZS5SMSIsIlBpdm90Lk0uV29vZGllLk1pZGRsZSIsIlBpdm90Lk0uV29vZGllLlMxIiwiUGl2b3QuTS5Xb29kaWUuUzIiLCJQaXZvdC5NLldvb2RpZS5TMyIsIlBpdm90Lk0uRGVtYXJrLlIxIiwiUGl2b3QuTS5EZW1hcmsuTWlkZGxlIiwiUGl2b3QuTS5EZW1hcmsuUzEiXSx1PVsuLi5yLC4uLm8sLi4uYSwuLi5sXX0sNzU5OTcwKGUsdCxzKXsidXNlIHN0cmljdCI7cy5kKHQse2lzRHJhd2luZ1Rvb2xiYXJWaXNpYmxlOigpPT5sfSk7dmFyIGk9cyg5MzA1NjYpLG49cyg5MzAyMzEpLHI9cygyMzIzNjQpO2NvbnN0IG89ISgwLG4uaXNGZWF0dXJlc2V0RW5hYmxlZCkoImhpZGVfbGVmdF90b29sYmFyX2J5X2RlZmF1bHQiKSxhPWkuZ2V0Qm9vbCgiQ2hhcnREcmF3aW5nVG9vbGJhcldpZGdldC52aXNpYmxlIixvKSxsPW5ldyByLldhdGNoZWRWYWx1ZShhKX0sODkwODM1KGUsdCxzKXsidXNlIHN0cmljdCI7cy5kKHQse2N1cnJlbnRMYXlvdXQ6KCk9Pml9KTtjb25zdCBpPW5ldyhzKDIzMjM2NCkuV2F0Y2hlZFZhbHVlKShudWxsKX0sMTk4OTAxKGUsdCxzKXsidXNlIHN0cmljdCI7cy5kKHQse2NhbGN1bGF0ZU1pbk1heDooKT0+Qyxjb2xsZWN0QWxsUGF0aHM6KCk9Pk0sY29tcGFyZVR3b0NvbGxlY3Rpb25zQnlJZHM6KCk9PmIsZmluZEZpcnN0OigpPT5mLGluZGV4T2Y6KCk9PnYsaW50ZXJzZWN0OigpPT5fLGpvaW46KCk9PmcsbG93ZXJib3VuZDooKT0+bCxsb3dlcmJvdW5kRXh0OigpPT5hLG1hcEVudHJpZXNHZW5lcmF0b3I6KCk9PncsbWluTWF4OigpPT5ULG1vdmVBZnRlcjooKT0+cCxtb3ZlQmVmb3JlOigpPT5tLG1vdmVUb0hlYWQ6KCk9PmgsbmVzdGVkTWFwR2VuZXJhdG9yOigpPT5QLHJlbW92ZUVtcHR5T2JqZWN0c0Zyb21SZWNvcmRJbnBsYWNlOigpPT5JLHJlbW92ZUl0ZW1Gcm9tQXJyYXk6KCk9PnkscmV2ZXJ0UmVjb3JkOigpPT5ELHN1YnRyYWN0OigpPT5kLHN1bTooKT0+Uyx1cHBlcmJvdW5kOigpPT5jfSk7dmFyIGk9cygxNDQ1NTUpLG49cyg4ODAxMTUpLHI9cygxMzg2MzgpO2Z1bmN0aW9uIG8oZSx0KXtyZXR1cm4gZTx0fWZ1bmN0aW9uIGEoZSx0LHMsaSxuKXtsZXQgcj1uLWk7Zm9yKDswPHI7KXtjb25zdCBuPXI+PjEsbz1pK247cyhlKG8pLHQpPyhpPW8rMSxyLT1uKzEpOnI9bn1yZXR1cm4gaX1mdW5jdGlvbiBsKGUsdCxzLGk9MCxuPWUubGVuZ3RoKXtyZXR1cm4gYSgodD0+ZVt0XSksdCxzLGksbil9ZnVuY3Rpb24gdShlLHQscz0wLGk9ZS5sZW5ndGgpe3JldHVybiBsKGUsdCxvLHMsaSl9ZnVuY3Rpb24gYyhlLHQscyxpPTAsbj1lLmxlbmd0aCl7bGV0IHI9bi1pO2Zvcig7MDxyOyl7Y29uc3Qgbj1yPj4xLG89aStuO3ModCxlW29dKT9yPW46KGk9bysxLHItPW4rMSl9cmV0dXJuIGl9ZnVuY3Rpb24gZChlLHQpe3JldHVybiBlLmZpbHRlcigoZT0+IXQuaW5jbHVkZXMoZSkpKX1mdW5jdGlvbiBoKGUsdCl7Y29uc3Qgcz1lLmluZGV4T2YodCk7cmV0dXJuIHM8MD9lLnNsaWNlKCk6W3RdLmNvbmNhdChlLnNsaWNlKDAscykpLmNvbmNhdChlLnNsaWNlKHMrMSkpfWZ1bmN0aW9uIHAoZSx0LHMpe2NvbnN0IGk9bmV3IFNldCh0KSxuPVtdLHI9W10sbz1bXTtyZXR1cm4gZS5mb3JFYWNoKCgoZSx0KT0+e2kuaGFzKGUpP3IucHVzaChlKToobi5wdXNoKGUpLG8ucHVzaCh0KSl9KSkscz1zPGUubGVuZ3RoLTE/dShvLHMrMSk6bi5sZW5ndGgsbi5zcGxpY2UocywwLC4uLnIpLHtuZXdJdGVtczpuLG1vdmVkSXRlbXNTdGFydEluZGV4OnN9fWZ1bmN0aW9uIG0oZSx0LHMpe2NvbnN0IGk9bmV3IFNldCh0KSxuPVtdLHI9W10sbz1bXTtyZXR1cm4gZS5mb3JFYWNoKCgoZSx0KT0+e2kuaGFzKGUpP3IucHVzaChlKToobi5wdXNoKGUpLG8ucHVzaCh0KSl9KSkscz1zPD1lLmxlbmd0aC0xP3UobyxzKTpuLmxlbmd0aCxuLnNwbGljZShzLDAsLi4ucikse25ld0l0ZW1zOm4sbW92ZWRJdGVtc1N0YXJ0SW5kZXg6c319ZnVuY3Rpb24gXyhlLHQpe2NvbnN0IHM9bmV3IFNldDtyZXR1cm4gZS5mb3JFYWNoKChlPT57dC5oYXMoZSkmJnMuYWRkKGUpfSkpLHN9ZnVuY3Rpb24gZyhlLHQpe2NvbnN0IHM9bmV3IFNldChlKTtyZXR1cm4gdC5mb3JFYWNoKChlPT5zLmFkZChlKSkpLHN9ZnVuY3Rpb24geShlLHQpe2NvbnN0IHM9ZS5pbmRleE9mKHQpOygwLApyLmFzc2VydCkoLTEhPT1zLCJJdGVtIGlzIG5vdCBmb3VuZCIpLGUuc3BsaWNlKHMsMSl9ZnVuY3Rpb24gZihlLHQpe2Zvcihjb25zdCBzIG9mIGUpaWYodChzKSlyZXR1cm4gcztyZXR1cm4gbnVsbH1mdW5jdGlvbiB2KGUsdCl7Zm9yKGxldCBzPTA7czxlLmxlbmd0aDtzKyspaWYodChlW3NdKSlyZXR1cm4gcztyZXR1cm4tMX1mdW5jdGlvbiBiKGUsdCl7aWYoZS5sZW5ndGghPT10Lmxlbmd0aClyZXR1cm4hMTtmb3IobGV0IHM9MDtzPGUubGVuZ3RoOysrcylpZihlW3NdLmlkKCkhPT10W3NdLmlkKCkpcmV0dXJuITE7cmV0dXJuITB9ZnVuY3Rpb24gUyhlKXtyZXR1cm4gZS5yZWR1Y2UoKChlLHQpPT5lK3QpLDApfWZ1bmN0aW9uKncoZSl7Zm9yKGNvbnN0W3Qsc11vZiBlKXlpZWxkW3Qsc119ZnVuY3Rpb24qUChlLHQpe2Zvcihjb25zdFtzLGldb2YgZSlpZih2b2lkIDA9PT10KWZvcihjb25zdFssZV1vZiBpKXlpZWxkW3MsZV07ZWxzZXtjb25zdCBlPWkuZ2V0KHQpO3ZvaWQgMCE9PWUmJih5aWVsZFtzLGVdKX19ZnVuY3Rpb24gVChlKXtyZXR1cm5bTWF0aC5taW4oLi4uZSksTWF0aC5tYXgoLi4uZSldfWZ1bmN0aW9uIEMoZSx0KXtyZXR1cm4gVChlLm1hcCh0KSl9ZnVuY3Rpb24gRShlKXtmb3IobGV0IHQ9ZS5sZW5ndGgtMTt0Pj0wO3QtLSlBcnJheS5pc0FycmF5KGVbdF0pPyhFKGVbdF0pLCgwLGkuZGVmYXVsdCkoZVt0XSkmJmUuc3BsaWNlKHQsMSkpOigwLG4uZGVmYXVsdCkoZVt0XSkmJihJKGVbdF0pLCgwLGkuZGVmYXVsdCkoZVt0XSkmJmUuc3BsaWNlKHQsMSkpfWZ1bmN0aW9uIEkoZSl7Y29uc3QgdD1PYmplY3Qua2V5cyhlKTtmb3IoY29uc3QgcyBvZiB0KUFycmF5LmlzQXJyYXkoZVtzXSk/KEUoZVtzXSksKDAsaS5kZWZhdWx0KShlW3NdKSYmZGVsZXRlIGVbc10pOigwLG4uZGVmYXVsdCkoZVtzXSkmJihJKGVbc10pLCgwLGkuZGVmYXVsdCkoZVtzXSkmJmRlbGV0ZSBlW3NdKTtyZXR1cm4gZX1mdW5jdGlvbiBMKGUsdCxzKXtjb25zdCBpPU9iamVjdC5rZXlzKGUpO2Zvcihjb25zdCByIG9mIGkpe2NvbnN0IGk9dD9gJHt0fS4ke3J9YDpyOygwLG4uZGVmYXVsdCkoZVtyXSk/TChlW3JdLGkscyk6cy5wdXNoKGkpfX1mdW5jdGlvbiBNKGUpe2NvbnN0IHQ9W107cmV0dXJuIEwoZSwiIix0KSx0fWZ1bmN0aW9uIEQoZSl7cmV0dXJuIE9iamVjdC5lbnRyaWVzKGUpLnJlZHVjZSgoKGUsW3Qsc10pPT4oZVtzXT10LGUpKSx7fSl9fSw4MTUzNTQoZSx0LHMpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBpKGUpe2xldCB0PWU7Y29uc3Qgcz0oKT0+e3dpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJvbmxpbmUiLHMpLHQmJnQoKX07cmV0dXJuIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJvbmxpbmUiLHMpLCgpPT57dD1udWxsfX1zLmQodCx7Y2FsbFdoZW5PbmxpbmU6KCk9Pml9KX0sMTE1MjkzKGUsdCxzKXsidXNlIHN0cmljdCI7cy5kKHQse2RldGVjdEF1dG9EaXJlY3Rpb246KCk9PncsZm9yY2VMVFJTdHI6KCk9PnAsZm9yY2VMVFJTdHJTc3I6KCk9Pm0sZm9yY2VSVExNYXJrc1N0cjooKT0+ZCxmb3JjZVJUTFN0cjooKT0+ZyxnZXRMVFJTY3JvbGxMZWZ0OigpPT55LGdldExUUlNjcm9sbExlZnRPZmZzZXQ6KCk9PmYsaXNSdGw6KCk9Pm8sc2V0RG9jdW1lbnREaXJHZXR0ZXI6KCk9PnIsc3RhcnRXaXRoTFRSOigpPT5oLHN0cmlwTFRSTWFya3M6KCk9PmMsc3RyaXBMVFJTdHJTc3I6KCk9Pl99KTt2YXIgaT1zKDMyMDQwMyk7bGV0IG49KCk9Pm51bGw7ZnVuY3Rpb24gcihlKXtuPWV9Y29uc3Qgbz0oKT0+InJ0bCI9PT1mdW5jdGlvbigpe2NvbnN0IGU9bigpO2lmKG51bGw9PT1lKXRocm93IG5ldyBFcnJvcigiRG9jdW1lbnQgZGlyZWN0aW9uIGdldHRlciBpcyBub3Qgc2V0LCBjYWxsIHNldERvY3VtZW50RGlyR2V0dGVyIHRvIHNldCBpdCIpO3JldHVybiBlfSgpLGE9IuKAqiIsbD0i4oCsIix1PW5ldyBSZWdFeHAoIuKAjnzigI984oCqfOKAq3zigKwiLCJnIik7ZnVuY3Rpb24gYyhlKXtyZXR1cm4iIiE9PWUmJm8oKSYmbnVsbCE9ZT9lLnJlcGxhY2UodSwiIik6ZX1mdW5jdGlvbiBkKGUpe3JldHVybiIiIT09ZSYmbygpJiZudWxsIT1lPyLigI8iK2UrIuKAjiI6ZX1mdW5jdGlvbiBoKGUpe3JldHVybiIiIT09ZSYmbygpJiZudWxsIT1lPyLigI4iK2U6ZX1mdW5jdGlvbiBwKGUpe3JldHVybiIiIT09ZSYmbygpJiZudWxsIT1lP2ErZStsOmV9ZnVuY3Rpb24gbShlKXtyZXR1cm4gYStlK2x9ZnVuY3Rpb24gXyhlKXtyZXR1cm4gZS5zdGFydHNXaXRoKGEpJiZlLmVuZHNXaXRoKGwpP2Uuc2xpY2UoMSwtMSk6ZX1mdW5jdGlvbiBnKGUpe3JldHVybiIiIT09ZSYmbygpJiZudWxsIT1lPyLigKsiK2UrbDplfWZ1bmN0aW9uIHkoZSl7cmV0dXJuKDAsaS5nZXROb3JtYWxpemVkU2Nyb2xsTGVmdCkoZSwicnRsIil9ZnVuY3Rpb24gZihlLHQpe2NvbnN0IHM9KDAsaS5kZXRlY3RTY3JvbGxUeXBlKSgpO2lmKCJpbmRldGVybWluYXRlIj09PXMpcmV0dXJuIDA7c3dpdGNoKHMpe2Nhc2UibmVnYXRpdmUiOnQ9ZS5jbGllbnRXaWR0aC1lLnNjcm9sbFdpZHRoK3Q7YnJlYWs7Y2FzZSJyZXZlcnNlIjp0PWUuc2Nyb2xsV2lkdGgtZS5jbGllbnRXaWR0aC10fXJldHVybiB0fXZhciB2OyFmdW5jdGlvbihlKXtlLkxUUj0ibHRyIixlLlJUTD0icnRsIixlLlVOS05PV049IiJ9KHZ8fCh2PXt9KSk7Y29uc3QgYj0vW15cdTAwMDAtXHUwMDQwXHUwMDVCLVx1MDA2MFx1MDA3Qi1cdTAwQkZcdTAwRDdcdTAwRjdcdTAyQjktXHUwMkZGXHUyMDAwLVx1MjAwRVx1MjAxMC1cdTIwMjlcdTIwMkNcdTIwMkYtXHUyQkZGXS8sUz0vW1x1MDU5MC1cdTA3RkZcdTIwMEZcdTIwMkJcdTIwMkVcdUZCMUQtXHVGREZEXHVGRTcwLVx1RkVGQ10vO2Z1bmN0aW9uIHcoZSl7Y29uc3QgdD1iLmV4ZWMoZSk7cmV0dXJuIHQ/Uy50ZXN0KHRbMF0pPyJydGwiOiJsdHIiOiIifX0sNzA1MDEyKGUsdCxzKXsidXNlIHN0cmljdCI7cy5kKHQse2hhc1NlcnZpY2U6KCk9PnUscmVnaXN0ZXJTZXJ2aWNlOigpPT5hLHNlcnZpY2U6KCk9PmMsdW5yZWdpc3RlclNlcnZpY2U6KCk9Pmwsd2FpdFNlcnZpY2VSZWdpc3RlcmVkOigpPT5kfSk7dmFyIGk9cyg3Njg3NjApLG49cygyMzIzNjQpCjtjb25zdCByPXt9LG89bmV3IE1hcDtmdW5jdGlvbiBhKGUsdCl7aWYodShlKSl0aHJvdyBuZXcgRXJyb3IoIlNlcnZpY2UgYWxyZWFkeSByZWdpc3RlcmVkIik7aChlKS5zZXRWYWx1ZSh0KTtjb25zdCBzPW8uZ2V0KGUpO3ZvaWQgMCE9PXMmJihvLmRlbGV0ZShlKSxzLnJlc29sdmUodCkpfWZ1bmN0aW9uIGwoZSl7aWYoIXUoZSkpdGhyb3cgbmV3IEVycm9yKCJTZXJ2aWNlIG5vdCBmb3VuZCIpO2goZSkuc2V0VmFsdWUobnVsbCl9ZnVuY3Rpb24gdShlKXtyZXR1cm4gbnVsbCE9PWgoZSkudmFsdWUoKX1mdW5jdGlvbiBjKGUpe2NvbnN0IHQ9aChlKS52YWx1ZSgpO2lmKG51bGw9PT10KXRocm93IG5ldyBFcnJvcigiU2VydmljZUxvY2F0b3I6IFNlcnZpY2UgIitlKyIgbm90IGZvdW5kIik7cmV0dXJuIHR9ZnVuY3Rpb24gZChlKXtpZih1KGUpKXJldHVybiBQcm9taXNlLnJlc29sdmUoYyhlKSk7bGV0IHQ9by5nZXQoZSk7cmV0dXJuIHZvaWQgMD09PXQmJih0PSgwLGkuY3JlYXRlRGVmZXJyZWRQcm9taXNlKSgpLG8uc2V0KGUsdCkpLHQucHJvbWlzZX1mdW5jdGlvbiBoKGUpe2xldCB0PXJbZV07cmV0dXJuIHR8fCh0PW5ldyBuLldhdGNoZWRWYWx1ZShudWxsKSxyW2VdPXQpLHR9fSw0OTExNjUoZSx0LHMpeyJ1c2Ugc3RyaWN0IjtzLmQodCx7YXZhaWxhYmxlRGF0ZUZvcm1hdHM6KCk9PmIsZGF0ZUZvcm1hdEZ1bmN0aW9uczooKT0+ZixkZWZhdWx0RGF0ZUZvcm1hdDooKT0+dyxnZXREYXRlRm9ybWF0V2l0aFdlZWtkYXk6KCk9PnYseXl5eTooKT0+eX0pO3ZhciBpPXMoNzgzMjU0KSxuPXMoODIyNDMxKSxyPXMoODU2MzI0KTtjb25zdCBvPXsxOigpPT5pLnQobnVsbCx2b2lkIDAscyg2NTczNzQpKSwyOigpPT5pLnQobnVsbCx2b2lkIDAscyg2MTczNDEpKSwzOigpPT5pLnQobnVsbCx2b2lkIDAscygxMDMzMDUpKSw0OigpPT5pLnQobnVsbCx2b2lkIDAscyg1MjY3ODUpKSw1OigpPT5pLnQobnVsbCx7Y29udGV4dDoic2hvcnQifSxzKDczNDc1MCkpLDY6KCk9PmkudChudWxsLHZvaWQgMCxzKDg3NzQ1KSksNzooKT0+aS50KG51bGwsdm9pZCAwLHMoMTgzOTU5KSksODooKT0+aS50KG51bGwsdm9pZCAwLHMoOTM3NjIpKSw5OigpPT5pLnQobnVsbCx2b2lkIDAscygxNzg0NjkpKSwxMDooKT0+aS50KG51bGwsdm9pZCAwLHMoNzI4MzM3KSksMTE6KCk9PmkudChudWxsLHZvaWQgMCxzKDY0NjU0NSkpLDEyOigpPT5pLnQobnVsbCx2b2lkIDAscyg3NjkwMzYpKX0sYT17MTooKT0+aS50KG51bGwsdm9pZCAwLHMoODk3NjcpKSwyOigpPT5pLnQobnVsbCx2b2lkIDAscyg5NDg5MjMpKSwzOigpPT5pLnQobnVsbCx2b2lkIDAscygzNjc5MzUpKSw0OigpPT5pLnQobnVsbCx2b2lkIDAscygxNzU1MDcpKX0sbD0oZSx0KT0+KHQ/ZS5nZXRNb250aCgpOmUuZ2V0VVRDTW9udGgoKSkrMSx1PShlLHQpPT50P2UuZ2V0RGF0ZSgpOmUuZ2V0VVRDRGF0ZSgpLGM9KGUsdCk9PnQ/ZS5nZXRGdWxsWWVhcigpOmUuZ2V0VVRDRnVsbFllYXIoKSxkPShlLHQpPT5lLnRvTG9jYWxlRGF0ZVN0cmluZygoMCxyLmdldExhbmd1YWdlKSgpPygwLHIubWFwTGFuZ3VhZ2VDb2RlKSgoMCxyLmdldExhbmd1YWdlKSgpKTp2b2lkIDAse3dlZWtkYXk6InNob3J0Iix0aW1lWm9uZToibG9jYWwiPT09dD92b2lkIDA6dH0pLGg9KGUsdCk9PmFbKChlLHQpPT5NYXRoLmZsb29yKChsKGUsdCktMSkvMykrMSkoZSx0KV0oKSxwPShlLHQpPT4oMCxuLm51bWJlclRvU3RyaW5nV2l0aExlYWRpbmdaZXJvKSh1KGUsdCksMiksbT0oZSx0KT0+b1tsKGUsdCldKCksXz0oZSx0KT0+KDAsbi5udW1iZXJUb1N0cmluZ1dpdGhMZWFkaW5nWmVybykobChlLHQpLDIpLGc9KGUsdCk9PigwLG4ubnVtYmVyVG9TdHJpbmdXaXRoTGVhZGluZ1plcm8pKGMoZSx0KSUxMDAsMikseT0oZSx0KT0+KDAsbi5udW1iZXJUb1N0cmluZ1dpdGhMZWFkaW5nWmVybykoYyhlLHQpLDQpLGY9eyJxcSAneXkiOihlLHQpPT5gJHtoKGUsdCl9ICcke2coZSx0KX1gLCJxcSB5eXl5IjooZSx0KT0+YCR7aChlLHQpfSAke3koZSx0KX1gLCJkZCBNTU0gJ3l5IjooZSx0KT0+YCR7cChlLHQpfSAke20oZSx0KX0gJyR7ZyhlLHQpfWAsIk1NTSAneXkiOihlLHQpPT5gJHttKGUsdCl9ICcke2coZSx0KX1gLCJNTU0gZGQsIHl5eXkiOihlLHQpPT5gJHttKGUsdCl9ICR7cChlLHQpfSwgJHt5KGUsdCl9YCwiTU1NIGQsIHl5eXkiOihlLHQpPT5gJHttKGUsdCl9ICR7KChlLHQpPT4oMCxuLm51bWJlclRvU3RyaW5nV2l0aExlYWRpbmdaZXJvKSh1KGUsdCksMCkpKGUsdCl9LCAke3koZSx0KX1gLCJNTU0geXl5eSI6KGUsdCk9PmAke20oZSx0KX0gJHt5KGUsdCl9YCwiTU1NIGRkIjooZSx0KT0+YCR7bShlLHQpfSAke3AoZSx0KX1gLCJkZCBNTU0iOihlLHQpPT5gJHtwKGUsdCl9ICR7bShlLHQpfWAsInl5eXktTU0tZGQiOihlLHQpPT5gJHt5KGUsdCl9LSR7XyhlLHQpfS0ke3AoZSx0KX1gLCJ5eS1NTS1kZCI6KGUsdCk9PmAke2coZSx0KX0tJHtfKGUsdCl9LSR7cChlLHQpfWAsInl5L01NL2RkIjooZSx0KT0+YCR7ZyhlLHQpfS8ke18oZSx0KX0vJHtwKGUsdCl9YCwieXl5eS9NTS9kZCI6KGUsdCk9PmAke3koZSx0KX0vJHtfKGUsdCl9LyR7cChlLHQpfWAsImRkLU1NLXl5eXkiOihlLHQpPT5gJHtwKGUsdCl9LSR7XyhlLHQpfS0ke3koZSx0KX1gLCJkZC1NTS15eSI6KGUsdCk9PmAke3AoZSx0KX0tJHtfKGUsdCl9LSR7ZyhlLHQpfWAsImRkL01NL3l5IjooZSx0KT0+YCR7cChlLHQpfS8ke18oZSx0KX0vJHtnKGUsdCl9YCwiZGQvTU0veXl5eSI6KGUsdCk9PmAke3AoZSx0KX0vJHtfKGUsdCl9LyR7eShlLHQpfWAsIk1NL2RkL3l5IjooZSx0KT0+YCR7XyhlLHQpfS8ke3AoZSx0KX0vJHtnKGUsdCl9YCwiTU0vZGQveXl5eSI6KGUsdCk9PmAke18oZSx0KX0vJHtwKGUsdCl9LyR7eShlLHQpfWB9O2Z1bmN0aW9uIHYoZSx0KXtyZXR1cm4iamEiPT09KDAsci5nZXRMYW5ndWFnZSkoKT8ocyxpKT0+YCR7ZltlXShzLGkpfSAoJHtkKHMsdCl9KWA6KHMsaSk9PmAke2Qocyx0KX0gJHtmW2VdKHMsaSl9YH0KY29uc3QgYj1PYmplY3Qua2V5cyhmKSxTPVsiamEiLCJrbyIsInpoIiwiemhfVFciXSx3PSgpPT5TLmluY2x1ZGVzKCgwLHIuZ2V0TGFuZ3VhZ2UpKCkpPyJ5eXl5LU1NLWRkIjoiZGQgTU1NICd5eSJ9LDYzMjY4NihlLHQscyl7InVzZSBzdHJpY3QiO3ZhciBpO3MuZCh0LHtDb25uZWN0aW9uU3RhdHVzOigpPT5pfSksZnVuY3Rpb24oZSl7ZVtlLkNsb3NlZD0wXT0iQ2xvc2VkIixlW2UuQ29ubmVjdGluZz0xXT0iQ29ubmVjdGluZyIsZVtlLk9wZW49Ml09Ik9wZW4ifShpfHwoaT17fSkpfSw4MDk5OTMoZSx0LHMpeyJ1c2Ugc3RyaWN0IjtzLmQodCx7UGVyc2lzdGVudEV2ZW50U291cmNlVHJhbnNwb3J0OigpPT5hfSk7dmFyIGk9cygyMjEwNjEpLG49cyg2MzI2ODYpLHI9cygyOTU2MjYpO2NvbnN0IG89KDAsaS5nZXRMb2dnZXIpKCJQZXJzaXN0ZW50V2Vic29ja2V0VHJhbnNwb3J0Iik7Y2xhc3MgYSBleHRlbmRzIHIuUGVyc2lzdGVudFRyYW5zcG9ydHtjb25zdHJ1Y3RvcihlKXtzdXBlcihlLG8pLHRoaXMuX3NwZWNpYWxpemVkRXJyb3JIYW5kbGVyQm91bmQ9dGhpcy5fc3BlY2lhbGl6ZWRFcnJvckhhbmRsZXIuYmluZCh0aGlzKX1fY3JlYXRlTmF0aXZlVHJhbnNwb3J0KGUpe2NvbnN0IHQ9bmV3IEV2ZW50U291cmNlKGUse3dpdGhDcmVkZW50aWFsczohMH0pO3JldHVybiB0LmFkZEV2ZW50TGlzdGVuZXIoImVycm9yIix0aGlzLl9zcGVjaWFsaXplZEVycm9ySGFuZGxlckJvdW5kKSx0LmFkZEV2ZW50TGlzdGVuZXIoIm9wZW4iLHRoaXMuX3NvY2tldE9wZW5IYW5kbGVyKSx0LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLHRoaXMuX3NvY2tldE1lc3NhZ2VIYW5kbGVyKSx0fV9kaXNjb25uZWN0VHJhbnNwb3J0KCl7aWYobnVsbD09PXRoaXMuX3NvY2tldClyZXR1cm47dGhpcy5fc29ja2V0LnJlbW92ZUV2ZW50TGlzdGVuZXIoImVycm9yIix0aGlzLl9zcGVjaWFsaXplZEVycm9ySGFuZGxlckJvdW5kKSx0aGlzLl9zb2NrZXQucmVtb3ZlRXZlbnRMaXN0ZW5lcigib3BlbiIsdGhpcy5fc29ja2V0T3BlbkhhbmRsZXIpLHRoaXMuX3NvY2tldC5yZW1vdmVFdmVudExpc3RlbmVyKCJtZXNzYWdlIix0aGlzLl9zb2NrZXRNZXNzYWdlSGFuZGxlciksdGhpcy5fcmVtb3ZlT25PZmZsaW5lTGlzdGVuZXIoKTtjb25zdCBlPXRoaXMuX3NvY2tldDt0aGlzLl9zb2NrZXQ9bnVsbCx0aGlzLl9jb25uZWN0aW9uU3RhdHVzLnNldFZhbHVlKG4uQ29ubmVjdGlvblN0YXR1cy5DbG9zZWQpLGUucmVhZHlTdGF0ZSE9PVdlYlNvY2tldC5DTE9TRUQmJmUuY2xvc2UoKX1fc3BlY2lhbGl6ZWRFcnJvckhhbmRsZXIoZSl7ZS5ldmVudFBoYXNlPT09RXZlbnRTb3VyY2UuQ0xPU0VEP3RoaXMuX3NvY2tldENsb3NlSGFuZGxlcihlKTp0aGlzLl9zb2NrZXRFcnJvckhhbmRsZXIoKX19fSwyOTU2MjYoZSx0LHMpeyJ1c2Ugc3RyaWN0IjtzLmQodCx7UGVyc2lzdGVudFRyYW5zcG9ydDooKT0+dX0pO3ZhciBpLG49cyg4MTUzNTQpLHI9cygyMzIzNjQpLG89cyg5NDgzODApLGE9cygyMTQ5ODcpLGw9cyg2MzI2ODYpOyFmdW5jdGlvbihlKXtlW2UuTm9ybWFsPTMwMF09Ik5vcm1hbCIsZVtlLlRvb01hbnlSZWNvbm5lY3RzPTVlM109IlRvb01hbnlSZWNvbm5lY3RzIn0oaXx8KGk9e30pKTtjbGFzcyB1e2NvbnN0cnVjdG9yKGUsdCxzKXt0aGlzLl91cmw9IiIsdGhpcy5fc29ja2V0PW51bGwsdGhpcy5fcmVjb25uZWN0Q291bnQ9MCx0aGlzLl9vbmxpbmVDYW5jZWxsYXRpb25Ub2tlbj1udWxsLHRoaXMuX2Nvbm5lY3Rpb25TdGF0dXM9bmV3IHIuV2F0Y2hlZFZhbHVlKGwuQ29ubmVjdGlvblN0YXR1cy5DbG9zZWQpLHRoaXMuX3NvY2tldENsb3NlSGFuZGxlcj10aGlzLl9vbkNsb3NlQ2FsbGJhY2suYmluZCh0aGlzKSx0aGlzLl9zb2NrZXRFcnJvckhhbmRsZXI9dGhpcy5fb25FcnJvckNhbGxiYWNrLmJpbmQodGhpcyksdGhpcy5fc29ja2V0T3BlbkhhbmRsZXI9dGhpcy5fb25PcGVuQ2FsbGJhY2suYmluZCh0aGlzKSx0aGlzLl9zb2NrZXRNZXNzYWdlSGFuZGxlcj10aGlzLl9vbk1lc3NhZ2VDYWxsYmFjay5iaW5kKHRoaXMpLHRoaXMuX21heFJlY29ubmVjdFJlYWNoZWRFdmVudERlbGVnYXRlPW5ldyBvLkRlbGVnYXRlLHRoaXMuX3N1Y2Nlc3NSZWNvbm5lY3RSZWFjaGVkRXZlbnREZWxlZ2F0ZT1uZXcgby5EZWxlZ2F0ZSx0aGlzLl9zaG91bGRSZWNvbm5lY3Q9ITAsdGhpcy5fbWF4UmVjb25uZWN0Q291bnQ9bnVsbCx0aGlzLl9yZWNvbm5lY3RUaW1lb3V0SWQ9MCx0aGlzLl9jb25uZWN0QWJvcnRDb250cm9sbGVyPW51bGwsdGhpcy5fdHJ5UmVjb25uZWN0PSgpPT57aWYodGhpcy5fZGlzY29ubmVjdCgpLHRoaXMuX3Nob3VsZFJlY29ubmVjdCl7Y29uc3QgZT10aGlzLl9nZXRSZWNvbm5lY3RUaW1lb3V0KCk7dGhpcy5fbG9nZ2VyLmxvZ05vcm1hbChgU2xlZXBpbmcgc29tZSB0aW1lIGJlZm9yZSByZWNvbm5lY3QgJHtlfW1zYCksdGhpcy5fcmVjb25uZWN0VGltZW91dElkPXNldFRpbWVvdXQodGhpcy5fdHJ5UmVjb25uZWN0SW1wbC5iaW5kKHRoaXMpLGUpfWVsc2UgdGhpcy5fbG9nZ2VyLmxvZ05vcm1hbCgiU2tpcCByZWNvbm5lY3RpbmcgYmVjYXVzZSBvZiBzaG91bGRSZWNvbm5lY3Qgc3RhdGUiKX0sdGhpcy5fb25PZmZsaW5lSGFuZGxlcj0oKT0+e3RoaXMuX3JlbW92ZU9uT2ZmbGluZUxpc3RlbmVyKCksdGhpcy5fbG9nZ2VyLmxvZ0luZm8oIk5ldHdvcmsgc3RhdHVzIGNoYW5nZWQgdG8gb2ZmbGluZSAtIHRyeWluZyB0byByZWNvbm5lY3QiKSx0aGlzLl90cnlSZWNvbm5lY3QoKX0sdGhpcy5fbG9nZ2VyPXQsdGhpcy5fbWVzc2FnZUhhbmRsZXI9ZSx0aGlzLl9jbG9zZUhhbmRsZXI9cyx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigidW5sb2FkIiwoKCk9Pnt0LmxvZ05vcm1hbCgiVW5sb2FkIGV2ZW50IGNvbWVzIC0gZGlzY29ubmVjdGluZyB3aXRob3V0IHJlY29ubmVjdCBhZnRlciB0aGF0Li4uIiksdGhpcy5fc2hvdWxkUmVjb25uZWN0PSExLHRoaXMuX2Rpc2Nvbm5lY3QoKX0pLCExKX1zZXRVcmwoZSx0KXtpZih0aGlzLl91cmw9PT1lKXJldHVybiBQcm9taXNlLnJlc29sdmUoKQo7Y29uc3Qgcz10aGlzLl9jb25uZWN0aW9uU3RhdHVzLnZhbHVlKCkhPT1sLkNvbm5lY3Rpb25TdGF0dXMuQ2xvc2VkO3JldHVybiBzJiZ0aGlzLl9kaXNjb25uZWN0KCksdGhpcy5fdXJsPWUsdGhpcy5fY29ubmVjdGlvbk9wdGlvbnM9dCxzP3RoaXMuY29ubmVjdCgpOlByb21pc2UucmVzb2x2ZSgpfXVybCgpe3JldHVybiB0aGlzLl91cmx9Y29ubmVjdCgpe3JldHVybiB0aGlzLl9jb25uZWN0SW1wbCgpfXNldE1heFJlY29ubmVjdENvdW50KGUpe3RoaXMuX21heFJlY29ubmVjdENvdW50PWV9Y29ubmVjdGlvblN0YXR1cygpe3JldHVybiB0aGlzLl9jb25uZWN0aW9uU3RhdHVzLnJlYWRvbmx5KCl9ZGlzY29ubmVjdCgpe3RoaXMuX3Nob3VsZFJlY29ubmVjdD0hMSx0aGlzLl9kaXNjb25uZWN0KCl9bWF4UmVjb25uZWN0UmVhY2hlZEV2ZW50KCl7cmV0dXJuIHRoaXMuX21heFJlY29ubmVjdFJlYWNoZWRFdmVudERlbGVnYXRlfXN1Y2Nlc3NSZWNvbm5lY3RSZWFjaGVkRXZlbnQoKXtyZXR1cm4gdGhpcy5fc3VjY2Vzc1JlY29ubmVjdFJlYWNoZWRFdmVudERlbGVnYXRlfWFzeW5jIF9wcmVwYXJlUGFyYW1zRm9yQ29ubmVjdGlvbihlKXt9X2Rpc2Nvbm5lY3QoKXt0aGlzLl9jb25uZWN0QWJvcnRDb250cm9sbGVyPy5hYm9ydCgpLHRoaXMuX2Nvbm5lY3RBYm9ydENvbnRyb2xsZXI9bnVsbCxjbGVhclRpbWVvdXQodGhpcy5fcmVjb25uZWN0VGltZW91dElkKSx0aGlzLl9yZWNvbm5lY3RUaW1lb3V0SWQ9MCx0aGlzLl9jb25uZWN0aW9uU3RhdHVzLnZhbHVlKCkhPT1sLkNvbm5lY3Rpb25TdGF0dXMuQ2xvc2VkP3RoaXMuX3NvY2tldD8odGhpcy5fbG9nZ2VyLmxvZ05vcm1hbChgQ2xvc2luZyBjb25uZWN0aW9uIHRvOiAke3RoaXMuX3NvY2tldC51cmx9LCBjdXJyZW50U3RhdHVzOiAke2wuQ29ubmVjdGlvblN0YXR1c1t0aGlzLl9jb25uZWN0aW9uU3RhdHVzLnZhbHVlKCldfWApLHRoaXMuX2Rpc2Nvbm5lY3RUcmFuc3BvcnQoKSk6dGhpcy5fbG9nZ2VyLmxvZ05vcm1hbCgiRGlzY29ubmVjdGluZyB3aXRob3V0IHNvY2tldCAtIHByb2JhYmx5IHdpdGhpbiBwcmVwYXJpbmcsIGl0IHNob3VsZCBiZSBhbHJlYWR5IHNjaGVkdWxlZCBmb3IgYWJvcnRpbmciKTp0aGlzLl9sb2dnZXIubG9nTm9ybWFsKCJBdHRlbXB0IHRvIGNsb3NlIGNvbm5lY3Rpb24gYnV0IGl0IGlzIGNsb3NlZCBhbHJlYWR5Iil9X29uRXJyb3JDYWxsYmFjaygpe3RoaXMuX2xvZ2dlci5sb2dJbmZvKCJDb25uZWN0aW9uIGlzIGNsb3NlZCBieSBlcnJvciIpLHRoaXMuX3RyeVJlY29ubmVjdCgpfV9vbkNsb3NlQ2FsbGJhY2soZSl7dGhpcy5fbG9nZ2VyLmxvZ0luZm8oYENvbm5lY3Rpb24gaXMgY2xvc2VkIC0gY29kZT0ke2UuY29kZX0gbXNnPSR7ZS5yZWFzb259YCksdGhpcy5fY2xvc2VIYW5kbGVyPy4oZSksdGhpcy5fdHJ5UmVjb25uZWN0KCl9X3RyeVJlY29ubmVjdEltcGwoKXtyZXR1cm4gbnVsbCE9PXRoaXMuX21heFJlY29ubmVjdENvdW50JiZ0aGlzLl9yZWNvbm5lY3RDb3VudD09PXRoaXMuX21heFJlY29ubmVjdENvdW50Pyh0aGlzLl9sb2dnZXIubG9nV2FybigiTWF4aW11bSBhdHRlbXB0cyB0byByZWNvbm5lY3QgdG8gd2Vic29ja2V0IHJlYWNoZWQiKSx2b2lkIHRoaXMuX21heFJlY29ubmVjdFJlYWNoZWRFdmVudERlbGVnYXRlLmZpcmUoKSk6KHRoaXMuX3JlY29ubmVjdENvdW50Kz0xLHRoaXMuX2xvZ2dlci5sb2dJbmZvKGBSZWNvbm5lY3RpbmcgY291bnQ6ICR7dGhpcy5fcmVjb25uZWN0Q291bnR9YCksbmF2aWdhdG9yLm9uTGluZT8odGhpcy5fbG9nZ2VyLmxvZ0luZm8oIk5ldHdvcmsgc3RhdHVzOiBvbmxpbmUgLSB0cnlpbmcgdG8gY29ubmVjdCIpLHZvaWQgdGhpcy5jb25uZWN0KCkpOih0aGlzLl9sb2dnZXIubG9nSW5mbygiTmV0d29yayBzdGF0dXM6IG9mZmxpbmUgLSB3YWl0IHVudGlsIG9ubGluZSIpLHZvaWQodGhpcy5fb25saW5lQ2FuY2VsbGF0aW9uVG9rZW49KDAsbi5jYWxsV2hlbk9ubGluZSkoKCgpPT57dGhpcy5fbG9nZ2VyLmxvZ0luZm8oIk5ldHdvcmsgc3RhdHVzIGNoYW5nZWQgdG8gb25saW5lIC0gdHJ5aW5nIHRvIGNvbm5lY3QiKSx0aGlzLmNvbm5lY3QoKX0pKSkpKX1fb25PcGVuQ2FsbGJhY2soKXt0aGlzLl9sb2dnZXIubG9nTm9ybWFsKCJDb25uZWN0aW9uIG9wZW5lZCIpLHRoaXMuX3JlY29ubmVjdENvdW50PjAmJnRoaXMuX3N1Y2Nlc3NSZWNvbm5lY3RSZWFjaGVkRXZlbnREZWxlZ2F0ZS5maXJlKCksdGhpcy5fcmVjb25uZWN0Q291bnQ9MCx0aGlzLl9jb25uZWN0aW9uU3RhdHVzLnNldFZhbHVlKGwuQ29ubmVjdGlvblN0YXR1cy5PcGVuKX1fb25NZXNzYWdlQ2FsbGJhY2soZSl7dGhpcy5fbWVzc2FnZUhhbmRsZXIoZS5kYXRhKX1fZ2V0UmVjb25uZWN0VGltZW91dCgpe3JldHVybiB0aGlzLl9yZWNvbm5lY3RDb3VudDw1PzMwMDo1ZTN9X3NldE9uT2ZmbGluZUxpc3RlbmVyKCl7d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm9mZmxpbmUiLHRoaXMuX29uT2ZmbGluZUhhbmRsZXIpfV9yZW1vdmVPbk9mZmxpbmVMaXN0ZW5lcigpe3dpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJvZmZsaW5lIix0aGlzLl9vbk9mZmxpbmVIYW5kbGVyKX1hc3luYyBfY29ubmVjdEltcGwoKXtpZih0aGlzLl9jb25uZWN0aW9uU3RhdHVzLnZhbHVlKCkhPT1sLkNvbm5lY3Rpb25TdGF0dXMuQ2xvc2VkKXJldHVybiB2b2lkIHRoaXMuX2xvZ2dlci5sb2dOb3JtYWwoIkF0dGVtcHQgdG8gb3BlbiBjb25uZWN0aW9uIGJ1dCBpdCBpcyBub3QgY2xvc2VkIik7dGhpcy5fc29ja2V0JiYodGhpcy5fbG9nZ2VyLmxvZ0Vycm9yKCJTb21ldGhpbmcgd2VudCB3cm9uZyAtIGNvZGUgMHgyIiksdGhpcy5kaXNjb25uZWN0KCkpLHRoaXMuX29ubGluZUNhbmNlbGxhdGlvblRva2VuJiYodGhpcy5fb25saW5lQ2FuY2VsbGF0aW9uVG9rZW4oKSx0aGlzLl9vbmxpbmVDYW5jZWxsYXRpb25Ub2tlbj1udWxsKSx0aGlzLl9sb2dnZXIubG9nTm9ybWFsKGBDb25uZWN0aW5nIHRvICR7dGhpcy5fdXJsfWApLHRoaXMuX3Nob3VsZFJlY29ubmVjdD0hMCx0aGlzLl9jb25uZWN0QWJvcnRDb250cm9sbGVyPW5ldyBBYm9ydENvbnRyb2xsZXIKO2NvbnN0IGU9dGhpcy5fY29ubmVjdEFib3J0Q29udHJvbGxlci5zaWduYWw7dHJ5e2lmKHRoaXMuX2Nvbm5lY3Rpb25TdGF0dXMuc2V0VmFsdWUobC5Db25uZWN0aW9uU3RhdHVzLkNvbm5lY3RpbmcpLGF3YWl0IHRoaXMuX3ByZXBhcmVQYXJhbXNGb3JDb25uZWN0aW9uKGUpLGUuYWJvcnRlZCl0aHJvdygwLGEuY3JlYXRlQWJvcnRFcnJvcikoKTt0aGlzLl9zb2NrZXQ9dGhpcy5fY3JlYXRlTmF0aXZlVHJhbnNwb3J0KHRoaXMuX3VybCksdGhpcy5fc2V0T25PZmZsaW5lTGlzdGVuZXIoKX1jYXRjaChlKXt0aGlzLl9jb25uZWN0aW9uU3RhdHVzLnNldFZhbHVlKGwuQ29ubmVjdGlvblN0YXR1cy5DbG9zZWQpLCgwLGEuc2tpcEFib3J0RXJyb3IpKGUpfWZpbmFsbHl7dGhpcy5fY29ubmVjdEFib3J0Q29udHJvbGxlcj1udWxsfX19fSw5MDEwMjIoZSx0LHMpeyJ1c2Ugc3RyaWN0IjtzLmQodCx7U0VQQVJBVE9SX1BSRUZJWDooKT0+aSxpc1NlcGFyYXRvckl0ZW06KCk9Pm59KTtjb25zdCBpPSIjIyMiO2Z1bmN0aW9uIG4oZSl7cmV0dXJuIGUuc3RhcnRzV2l0aChpKX19LDY0MTU5MyhlLHQscyl7InVzZSBzdHJpY3QiO3MuZCh0LHtjYXBpdGFsaXplRmlyc3RMZXR0ZXJJbldvcmQ6KCk9Pm0sZGVjb2RlSFRNTEVudGl0aWVzOigpPT51LGVuY29kZUhUTUxFbnRpdGllczooKT0+YyxnZXRGaXJzdFNlZ21lbnRPckNvZGVQb2ludFN0cmluZzooKT0+XyxodG1sRXNjYXBlOigpPT5kLHJlbW92ZVNwYWNlczooKT0+cCxyZW1vdmVUYWdzOigpPT5ofSk7Y29uc3QgaT0vWzwiJyY+XS9nLG49ZT0+YCYjJHtlLmNoYXJDb2RlQXQoMCl9O2Ascj17IiZsdDsiOiI8IiwiJmd0OyI6Ij4iLCImcXVvdDsiOiciJywiJmFwb3M7IjoiJyIsIiZhbXA7IjoiJiIsIiYjNjA7IjoiPCIsIiYjNjI7IjoiPiIsIiYjMzQ7IjonIicsIiYjMzk7IjoiJyIsIiYjMDM5OyI6IiciLCImIzM4OyI6IiYifSxvPU9iamVjdC5hc3NpZ24oe30sLi4uT2JqZWN0LmVudHJpZXMocikubWFwKCgoW2UsdF0pPT4oe1t0XTplfSkpKSksYT1uZXcgUmVnRXhwKE9iamVjdC5rZXlzKHIpLmpvaW4oInwiKSwiZyIpLGw9bmV3IFJlZ0V4cChPYmplY3Qua2V5cyhvKS5qb2luKCJ8IiksImciKTtmdW5jdGlvbiB1KGUpe3JldHVybiBlLnJlcGxhY2UoYSwoZT0+cltlXXx8ZSkpfWZ1bmN0aW9uIGMoZSl7cmV0dXJuIGUucmVwbGFjZShsLChlPT5vW2VdfHxlKSl9ZnVuY3Rpb24gZChlKXtyZXR1cm4gZS5yZXBsYWNlKGksbil9ZnVuY3Rpb24gaChlPSIiKXtyZXR1cm4gZS5yZXBsYWNlKC8oPChbXj5dKyk+KS9naSwiIil9ZnVuY3Rpb24gcChlPSIiKXtyZXR1cm4gZS5yZXBsYWNlKC9ccysvZywiIil9ZnVuY3Rpb24gbShlPSIiKXtyZXR1cm4gZS5yZXBsYWNlKC9cYlx3L2csKGU9PmUudG9VcHBlckNhc2UoKSkpfWZ1bmN0aW9uIF8oZSl7Y29uc3QgdD1JbnRsLlNlZ21lbnRlcjtpZih0KXtjb25zdCBzPW5ldyB0KHZvaWQgMCx7Z3JhbnVsYXJpdHk6ImdyYXBoZW1lIn0pLFt7c2VnbWVudDppfT17c2VnbWVudDpudWxsfV09cy5zZWdtZW50KGUpO3JldHVybiBpPy50b1VwcGVyQ2FzZSgpPz9udWxsfXtjb25zdCB0PWUuY29kZVBvaW50QXQoMCk7cmV0dXJuIHQ/U3RyaW5nLmZyb21Db2RlUG9pbnQodCkudG9VcHBlckNhc2UoKTpudWxsfX19LDExMTk1MyhlLHQscyl7InVzZSBzdHJpY3QiO3MuZCh0LHtERUZBVUxUX0FESlVTVE1FTlQ6KCk9PnIsREVGQVVMVF9TRVNTSU9OOigpPT5uLERFRkFVTFRfU0VUVExFTUVOVF9BU19DTE9TRTooKT0+byxjb21wYXJlU3ltYm9sczooKT0+YixkZWNvZGVFeHRlbmRlZFN5bWJvbDooKT0+ZyxlbmNvZGVFeHRlbmRlZFN5bWJvbDooKT0+YSxlbmNvZGVFeHRlbmRlZFN5bWJvbFN0cnVjdHVyYWw6KCk9PnAsZXh0cmFjdEV4dGVuZGVkU3ltYm9sOigpPT5mLGdldEV4dGVuZGVkU3ltYm9sOigpPT5fLGlzRW5jb2RlZEV4dGVuZGVkU3ltYm9sOigpPT5tLGlzUmVwbGF5U3ltYm9sOigpPT5oLGlzU3R1ZHlTeW1ib2w6KCk9PmMscmVwbGFjZUV4dGVuZGVkU3ltYm9sOigpPT5TLHN5bWJvbFdpdGhvdXRQcmVmaXg6KCk9PncsdW53cmFwU2ltcGxlU3ltYm9sOigpPT55fSk7dmFyIGk9cyg2MDE4NDEpO2NvbnN0IG49InJlZ3VsYXIiLHI9InNwbGl0cyIsbz0hMDtmdW5jdGlvbiBhKGUpe3JldHVybiI9IitKU09OLnN0cmluZ2lmeShsKGUpKX1mdW5jdGlvbiBsKGUpe3JldHVybiBPYmplY3Qua2V5cyhlKS5zb3J0KCkucmVkdWNlKCgodCxzKT0+KCJbb2JqZWN0IE9iamVjdF0iPT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGVbc10pP3Rbc109bChlW3NdKTp0W3NdPWVbc10sdCkpLHt9KX1mdW5jdGlvbiB1KGUpe3JldHVybigwLGkuaXNTdHJpbmcpKGUpfWZ1bmN0aW9uIGMoZSl7cmV0dXJuIXUoZSkmJiJpbnB1dHMiaW4gZX1mdW5jdGlvbiBkKGUpe3JldHVybiF1KGUpJiYicmVwbGF5ImluIGV9ZnVuY3Rpb24gaChlKXtyZXR1cm4gZChlKXx8ZnVuY3Rpb24oZSl7cmV0dXJuIXUoZSkmJmQoZS5zeW1ib2wpfShlKX1mdW5jdGlvbiBwKGUpe3JldHVybiBjKGUpfHxoKGUpfHxlLnNlc3Npb258fGUuYWRqdXN0bWVudHx8ZVsiY3VycmVuY3ktaWQiXXx8ZVsidW5pdC1pZCJdfHxlLm1ldHJpYz9hKGUpOmUuc3ltYm9sfWZ1bmN0aW9uIG0oZSl7cmV0dXJuIj0iPT09ZVswXX1mdW5jdGlvbiBfKGUpe3JldHVybiB1KGUpP2coZSk6ZX1mdW5jdGlvbiBnKGUpe2lmKCFtKGUpKXJldHVybntzeW1ib2w6ZX07dHJ5e3JldHVybiBKU09OLnBhcnNlKGUuc2xpY2UoMSkpfWNhdGNoKHQpe3JldHVybntzeW1ib2w6ZX19fWZ1bmN0aW9uIHkoZSl7cmV0dXJuIHUoZSk/ZTp5KGUuc3ltYm9sKX1mdW5jdGlvbiBmKGUpe2lmKHUoZSkpcmV0dXJue3N5bWJvbDplfTtsZXQgdD1lO2Zvcig7IXUodC5zeW1ib2wpOyl0PXQuc3ltYm9sO3JldHVybiB0fWNvbnN0IHY9WyJzeW1ib2wiLCJzZXNzaW9uIiwidW5pdC1pZCIsImN1cnJlbmN5LWlkIiwibWV0cmljIiwiYWRqdXN0bWVudCIsImJhY2thZGp1c3RtZW50Iiwic2V0dGxlbWVudC1hcy1jbG9zZSJdO2Z1bmN0aW9uIGIoZSx0KXtyZXR1cm4gdi5ldmVyeSgocz0+ZVtzXT09PXRbc10pKX0KZnVuY3Rpb24gUyhlLHQpe2xldCBzPWU7Zm9yKDshdShzLnN5bWJvbCk7KXM9cy5zeW1ib2w7cy5zeW1ib2w9dH1mdW5jdGlvbiB3KGUpe3JldHVybiBlLnNwbGl0KCI6Iikuc2xpY2UoLTEpLnBvcCgpPz9lfX0sMzY3OTQ2KGUsdCxzKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gaShlKXtpZih2b2lkIDA9PT1lKXJldHVybiBudWxsO2NvbnN0IHQ9ZS5tYXRjaCgvKGRlbGF5ZWRfc3RyZWFtaW5nKV8oXGQrKS8pO3JldHVybiBudWxsPT09dD9udWxsOnttb2RlOnRbMV0saW50ZXJ2YWw6cGFyc2VJbnQodFsyXSl9fWZ1bmN0aW9uIG4oZSl7Y29uc3QgdD1pKGUudXBkYXRlX21vZGUpO3JldHVybiBudWxsPT09dHx8KGUudXBkYXRlX21vZGU9dC5tb2RlLGUudXBkYXRlX21vZGVfc2Vjb25kcz10LmludGVydmFsKSxlfXMuZCh0LHtub3JtYWxpemVVcGRhdGVNb2RlOigpPT5uLHBhcnNlVXBkYXRlTW9kZTooKT0+aX0pfSwzNTYzODAoZSx0LHMpeyJ1c2Ugc3RyaWN0IjtzLmQodCx7Z2V0VG9vbHRpcERhdGE6KCk9Pm4sc2V0VG9vbHRpcERhdGE6KCk9PnJ9KTtjb25zdCBpPW5ldyBXZWFrTWFwO2Z1bmN0aW9uIG4oZSx0KXtjb25zdCBzPWkuZ2V0KGUpO3JldHVybiBzIGluc3RhbmNlb2YgRnVuY3Rpb24/cyh0KTpzJiZzW3RdfWZ1bmN0aW9uIHIoZSx0LHMpe2lmKHMgaW5zdGFuY2VvZiBGdW5jdGlvbilyZXR1cm4gdm9pZCBpLnNldChlLHMpO2NvbnN0IG49aS5nZXQoZSkscj12b2lkIDA9PT1ufHxuIGluc3RhbmNlb2YgRnVuY3Rpb24/e306bjtyW3RdPXMsaS5zZXQoZSxyKX19LDQ5MDM3OChlLHQscyl7InVzZSBzdHJpY3QiO3MuZCh0LHtnZXREYXRhRnJvbVRhcmdldDooKT0+XyxnZXRUb29sdGlwOigpPT5nLGhpZGVUb29sdGlwOigpPT52LHNldFN0eWxlOigpPT55LHNob3dUb29sdGlwOigpPT5mLHVwZGF0ZVRvb2x0aXBUZXh0RnJvbVRhcmdldDooKT0+bX0pO3ZhciBpLG49cygxMzg2MzgpLHI9cyg0NDM1NTcpLG89cyg5NjkxNjgpLGE9KHMoODI5MTgwKSxzKDUxODc1KSksbD1zKDY0MDc0NCksdT1zKDMxODk3NCksYz1zKDY4NjY1MCksZD1zKDM1NjM4MCksaD1zKDM0NTE1MSkscD1zKDExNDA2OCk7ZnVuY3Rpb24gbShlKXtjb25zdCB0PWUuaGFzQXR0cmlidXRlKCJkYXRhLXRvb2x0aXAiKT9lLmdldEF0dHJpYnV0ZSgiZGF0YS10b29sdGlwIik6ZS5nZXRBdHRyaWJ1dGUoInRpdGxlIik7cmV0dXJuIHQmJigoMCxkLnNldFRvb2x0aXBEYXRhKShlLCJ0ZXh0Iix0KSxlLnJlbW92ZUF0dHJpYnV0ZSgidGl0bGUiKSksKDAsZC5nZXRUb29sdGlwRGF0YSkoZSwidGV4dCIpfHwiIn1mdW5jdGlvbiBfKGUpe2NvbnN0IHQ9bShlKSxzPWUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksaT17aDpzLmhlaWdodCx3OnMud2lkdGgseDpzLmxlZnQseTpzLnRvcH0sbj1lLmdldEF0dHJpYnV0ZSgiZGF0YS1jb2xvci10aGVtZSIpfHwiIixyPWUuY2xhc3NMaXN0LmNvbnRhaW5zKCJjb21tb24tdG9vbHRpcC1odG1sIiksbz1wYXJzZUludChlLmdldEF0dHJpYnV0ZSgiZGF0YS10b29sdGlwLWRlbGF5Iil8fCIiKSxhPXBhcnNlSW50KGUuZ2V0QXR0cmlidXRlKCJkYXRhLXRvb2x0aXAtZGVib3VuY2UiKXx8IiIpO2xldCBsPXt0eXBlOiJub25lIn07cmV0dXJuIHQmJihsPXt0eXBlOnI/Imh0bWwiOiJ0ZXh0IixkYXRhOnR9KSx7YWJvdmU6ZS5jbGFzc0xpc3QuY29udGFpbnMoImNvbW1vbi10b29sdGlwLWFib3ZlIiksYmVsb3c6ZS5jbGFzc0xpc3QuY29udGFpbnMoImNvbW1vbi10b29sdGlwLWJlbG93Iiksb3RsOmUuY2xhc3NMaXN0LmNvbnRhaW5zKCJjb21tb24tdG9vbHRpcC1vdGwiKSxvdHI6ZS5jbGFzc0xpc3QuY29udGFpbnMoImNvbW1vbi10b29sdGlwLW90ciIpLHZlcnRpY2FsOmUuY2xhc3NMaXN0LmNvbnRhaW5zKCJjb21tb24tdG9vbHRpcC12ZXJ0aWNhbCIpLGhvdGtleTplLmdldEF0dHJpYnV0ZSgiZGF0YS10b29sdGlwLWhvdGtleSIpLG5hcnJvdzplLmNsYXNzTGlzdC5jb250YWlucygiY29tbW9uLXRvb2x0aXAtbmFycm93Iiksd2lkZTplLmNsYXNzTGlzdC5jb250YWlucygiY29tbW9uLXRvb2x0aXAtd2lkZSIpLGNvbG9yVGhlbWU6bix0b29sdGlwRGVsYXk6byx0b29sdGlwRGVib3VuY2U6YSxyZWN0OmksY29udGVudDpsLHRhcmdldDplfX1mdW5jdGlvbiBnKGUpe2NvbnN0IHQ9KDAsbi5lbnN1cmVOb3ROdWxsKShUKS5jbG9uZU5vZGUoITApLHM9SSh0KSx7Y29udGVudDppfT1lO3N3aXRjaChpLnR5cGUpe2Nhc2UiZWxlbWVudCI6cy5pbm5lckhUTUw9IiIscy5hcHBlbmRDaGlsZChpLmRhdGEpO2JyZWFrO2Nhc2UiaHRtbCI6cy5pbm5lckhUTUw9aS5kYXRhO2JyZWFrO2Nhc2UidGV4dCI6aWYoZS5ob3RrZXkpe2NvbnN0IGU9KDAsbi5lbnN1cmVOb3ROdWxsKShFKS5jbG9uZU5vZGUoITApO2UuaW5uZXJUZXh0PWkuZGF0YSxzLmFwcGVuZENoaWxkKGUpfWVsc2Ugcy5pbm5lclRleHQ9aS5kYXRhfWlmKGUuaG90a2V5KXtjb25zdCB0PSJub25lIiE9PWkudHlwZSxyPSgwLG4uZW5zdXJlTm90TnVsbCkoQykuY2xvbmVOb2RlKCEwKSxvPSgwLGguaG90S2V5RGVzZXJpYWxpemUpKGUuaG90a2V5KSxhPW8ua2V5cy5tYXAoKGU9PmA8c3BhbiBjbGFzcz0iJHtwWyJjb21tb24tdG9vbHRpcF9faG90a2V5LWJ1dHRvbiJdfSI+JHtlfTwvc3Bhbj5gKSk7ci5pbm5lckhUTUw9ZnVuY3Rpb24oZSx0KXtjb25zdCBzPS97XGR9fHtob3RrZXlfXGR9L2dpO3JldHVybiBlLnJlcGxhY2UocywoZT0+e2NvbnN0IHM9TnVtYmVyKGUubWF0Y2goL1xkLykpO3JldHVybiB0W3NdfSkpfShvLnRleHQsYSkucmVwbGFjZSgvXHNcK1xzL2csYDxzcGFuIGNsYXNzPSIke3BbImNvbW1vbi10b29sdGlwX19wbHVzLXNpZ24iXX0iPis8L3NwYW4+YCkscy5jbGFzc0xpc3QuYWRkKHBbImNvbW1vbi10b29sdGlwX19ib2R5LS13aXRoLWhvdGtleSJdKSx0JiZyLmNsYXNzTGlzdC5hZGQocFsiY29tbW9uLXRvb2x0aXBfX2hvdGtleS1ibG9jay0tZGl2aWRlciJdKSxzLmFwcGVuZENoaWxkKHIpfXJldHVybiB0LmFkZEV2ZW50TGlzdGVuZXIoImNvbnRleHRtZW51IixhLnByZXZlbnREZWZhdWx0KSx0fWZ1bmN0aW9uIHkoZSx0KXsKY29uc3Qgcz10LnJlY3Q7aWYoIXMpcmV0dXJuOygwLGMuc2V0VG9vbHRpcENvbG9yVGhlbWUpKGUsdC5jb2xvclRoZW1lfHwiZGVmYXVsdCIpO2NvbnN0IGk9SShlKSxuPWUucXVlcnlTZWxlY3RvcihgLiR7cFsiY29tbW9uLXRvb2x0aXBfX2J1dHRvbi1jb250YWluZXIiXX1gKTt0LmFkZENsYXNzJiZlLmNsYXNzTGlzdC5hZGQodC5hZGRDbGFzcyksdC5hZGRCb2R5Q2xhc3MmJmkuY2xhc3NMaXN0LmFkZCh0LmFkZEJvZHlDbGFzcyksaS5jbGFzc0xpc3QudG9nZ2xlKHBbImNvbW1vbi10b29sdGlwX19ib2R5LS13aWR0aF93aWRlIl0sQm9vbGVhbih0LndpZGUpKSxpLmNsYXNzTGlzdC50b2dnbGUocFsiY29tbW9uLXRvb2x0aXBfX2JvZHktLW5vLXBhZGRpbmciXSxCb29sZWFuKHQubm9QYWRkaW5nKSksaS5jbGFzc0xpc3QudG9nZ2xlKHBbImNvbW1vbi10b29sdGlwX19ib2R5LS13aWR0aF9uYXJyb3ciXSxCb29sZWFuKHQubmFycm93KSksaS5jbGFzc0xpc3QudG9nZ2xlKHBbImNvbW1vbi10b29sdGlwX19ib2R5LS1uby1idXR0b25zIl0sITApLGkuc3R5bGUubGVmdD1iKDApLGkuc3R5bGUud2lkdGg9YihpLmNsaWVudFdpZHRoKyhCb29sZWFuKHQubm9QYWRkaW5nKT8wOjIpKTtjb25zdCByPWRvY3VtZW50LmJvZHkuY2xpZW50V2lkdGgsYT11LkNoZWNrTW9iaWxlLmlPUygpfHx1LkNoZWNrTW9iaWxlLkFuZHJvaWQoKXx8KDAsdS5zdXBwb3J0VG91Y2gpKCkmJigwLHUuaXNNYWMpKCk/d2luZG93LmlubmVySGVpZ2h0OmRvY3VtZW50LmJvZHkuY2xpZW50SGVpZ2h0LGQ9dC52ZXJ0aWNhbCxoPXQuZXh0ZW5kTWFyZ2lufHxkJiZzLnc8MjB8fCFkJiZzLmg8MjA7ZS5jbGFzc0xpc3QudG9nZ2xlKHBbImNvbW1vbi10b29sdGlwLS1mYXJ0aGVyIl0saCksZS5jbGFzc0xpc3QudG9nZ2xlKHBbImNvbW1vbi10b29sdGlwLS12ZXJ0aWNhbCJdLGQpLGUuY2xhc3NMaXN0LnRvZ2dsZShwWyJjb21tb24tdG9vbHRpcC0taG9yaXpvbnRhbCJdLCFkKTtjb25zdCBtPWZ1bmN0aW9uKGUpe3JldHVybiBlLnF1ZXJ5U2VsZWN0b3IoYC4ke3BbImNvbW1vbi10b29sdGlwX19lYXItaG9sZGVyIl19YCl9KGUpLF89ZS5vZmZzZXRIZWlnaHQ7aWYoZCl7Y29uc3QgdT0xMCxjPWEtMTAsZD0xMixoPXUrZCxnPWMtZCx5PSgwLGwuY2xhbXApKHMueStzLmgvMixoLGcpLV8vMixmPXkrXztlLnN0eWxlLmxlZnQ9YihzLngrcy53KSxlLnN0eWxlLnRvcD1iKHkpLHk8dT9pLnN0eWxlLnRvcD1uLnN0eWxlLnRvcD1iKHUteSk6Zj5jJiYoaS5zdHlsZS50b3A9bi5zdHlsZS50b3A9YihjLWYpKTtjb25zdHtyaWdodDp2fT0oZS5xdWVyeVNlbGVjdG9yKCI6bGFzdC1jaGlsZCIpfHxpKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxTPXYrMTA+cjtlLmNsYXNzTGlzdC50b2dnbGUocFsiY29tbW9uLXRvb2x0aXAtLWRpcmVjdGlvbl9yZXZlcnNlZCJdLFMpLGUuY2xhc3NMaXN0LnRvZ2dsZShwWyJjb21tb24tdG9vbHRpcC0tZGlyZWN0aW9uX25vcm1hbCJdLCFTKTtsZXQgdz1TPyJhZnRlciI6ImJlZm9yZSI7KDAsby5pc1J0bCkoKT8odz10Lm90cj8iYWZ0ZXIiOncsdz10Lm90bD8iYmVmb3JlIjp3KToodz10Lm90cj8iYmVmb3JlIjp3LHc9dC5vdGw/ImFmdGVyIjp3KSxtLmNsYXNzTGlzdC50b2dnbGUocFsiY29tbW9uLXRvb2x0aXBfX2Vhci1ob2xkZXItLWJlZm9yZSJdLCJiZWZvcmUiPT09dyksbS5jbGFzc0xpc3QudG9nZ2xlKHBbImNvbW1vbi10b29sdGlwX19lYXItaG9sZGVyLS1hZnRlciJdLCJhZnRlciI9PT13KSwiYWZ0ZXIiPT09dyYmKGUuc3R5bGUubGVmdD0iYXV0byIsZS5zdHlsZS5yaWdodD1iKHItcy54KSl9ZWxzZXtjb25zdCBvPXMueC0oaS5vZmZzZXRXaWR0aC1zLncpLzIsbD1yLWUub2Zmc2V0V2lkdGgtMjA8PTA/KHItZS5vZmZzZXRXaWR0aCkvMjoxMCx1PXItbC1lLm9mZnNldFdpZHRoLGM9TWF0aC5tYXgobCxNYXRoLm1pbihvLHUpKTtlLnN0eWxlLmxlZnQ9YihjKTtjb25zdCBkPXU8bztlLmNsYXNzTGlzdC50b2dnbGUocFsiY29tbW9uLXRvb2x0aXAtLWRpcmVjdGlvbl9yZXZlcnNlZCJdLGQpLGUuY2xhc3NMaXN0LnRvZ2dsZShwWyJjb21tb24tdG9vbHRpcC0tZGlyZWN0aW9uX25vcm1hbCJdLCFkKTtjb25zdCBoPWZ1bmN0aW9uKGUsdCxzLGkpe2lmKGUuYWJvdmUpcmV0dXJuIEwodCxpKT8iYWJvdmUiOiJiZWxvdyI7aWYoZS5iZWxvdylyZXR1cm4gZnVuY3Rpb24oZSx0LHMpe3JldHVybiBzLnkrcy5oK3QrMTA8ZX0odCxzLGkpPyJiZWxvdyI6ImFib3ZlIjtyZXR1cm4gTChzLGkpPyJhYm92ZSI6ImJlbG93In0odCxhLF8scyk7ImFib3ZlIj09PWg/ZS5zdHlsZS5ib3R0b209YihhLXMueSk6ZS5zdHlsZS50b3A9YihzLnkrcy5oKSxtLmNsYXNzTGlzdC5hZGQoImFib3ZlIj09PWg/cFsiY29tbW9uLXRvb2x0aXBfX2Vhci1ob2xkZXItLWFib3ZlIl06cFsiY29tbW9uLXRvb2x0aXBfX2Vhci1ob2xkZXItLWJlbG93Il0pO2NvbnN0e2xlZnQ6Z309aS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtsZXQgeT1NYXRoLnRydW5jKHMueCtzLncvMi0oZytpLmNsaWVudFdpZHRoLzIpKTtlLnN0eWxlLmxlZnQ9YihjK3kpLGUuc3R5bGUud2lkdGg9YihpLmNsaWVudFdpZHRoK24uY2xpZW50V2lkdGgpLHk9ZD9NYXRoLm1heCgwLHkpOk1hdGgubWluKDAseSksbi5zdHlsZS5sZWZ0PWIoLXkpLGkuc3R5bGUubGVmdD1iKC15KX19ZnVuY3Rpb24gZihlKXtlLmNsYXNzTGlzdC50b2dnbGUocFsiY29tbW9uLXRvb2x0aXAtLWhpZGRlbiJdLCExKX1mdW5jdGlvbiB2KGUpe2UuY2xhc3NMaXN0LnRvZ2dsZShwWyJjb21tb24tdG9vbHRpcC0taGlkZGVuIl0sITApfWZ1bmN0aW9uIGIoZSl7cmV0dXJuYCR7TWF0aC5mbG9vcihlKX1weGB9IWZ1bmN0aW9uKGUpe2VbZS5WaWV3cG9ydFBhZGRpbmc9MTBdPSJWaWV3cG9ydFBhZGRpbmcifShpfHwoaT17fSkpCjtjb25zdCBTPWBcblx0PGRpdiBpZD0iY29tbW9uLXRvb2x0aXAtd3JhcHBlciIgY2xhc3M9IiR7cFsiY29tbW9uLXRvb2x0aXAiXX0iPlxuXHRcdDxkaXYgY2xhc3M9IiR7cFsiY29tbW9uLXRvb2x0aXBfX2Vhci1ob2xkZXIiXX0iID5cblx0XHRcdDxkaXYgY2xhc3M9IiR7cFsiY29tbW9uLXRvb2x0aXBfX2JvZHkiXX0ganMtdG9vbHRpcC1ib2R5Ij48L2Rpdj5cblx0XHQ8L2Rpdj5cblx0XHQ8ZGl2IGNsYXNzPSIke3BbImNvbW1vbi10b29sdGlwX19idXR0b24tY29udGFpbmVyIl19Ij48L2Rpdj5cblx0PC9kaXY+XG5gLHc9YFxuXHQ8ZGl2IGNsYXNzPSIke3BbImNvbW1vbi10b29sdGlwX19ob3RrZXktYmxvY2siXX0iPjwvZGl2PlxuYCxQPWBcblx0PGRpdiBjbGFzcz0iJHtwWyJjb21tb24tdG9vbHRpcF9faG90a2V5LXRleHQiXX0iPjwvZGl2PlxuYCxUPSgwLHIucGFyc2VIdG1sRWxlbWVudCkoUyksQz0oMCxyLnBhcnNlSHRtbEVsZW1lbnQpKHcpLEU9KDAsci5wYXJzZUh0bWxFbGVtZW50KShQKTtmdW5jdGlvbiBJKGUpe3JldHVybiBlLnF1ZXJ5U2VsZWN0b3IoYC4ke3BbImNvbW1vbi10b29sdGlwX19ib2R5Il19YCl9ZnVuY3Rpb24gTChlLHQpe3JldHVybiAxMCtlPHQueX19LDE2Nzg5NihlLHQscyl7InVzZSBzdHJpY3QiO3MuZCh0LHtlbXB0eTooKT0+byxzZXRUb29sdGlwOigpPT5hfSk7Y29uc3QgaT0idG9vbHRpcC1yb290LWVsZW1lbnQiO2xldCBuO2Z1bmN0aW9uIHIoKXtjb25zdCBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGkpO2U/bj1lOihuPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLG4uaWQ9aSxkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKG4pKX1mdW5jdGlvbiBvKCl7biYmKG4uaW5uZXJIVE1MPSIiKX1mdW5jdGlvbiBhKGUpe28oKSxufHxyKCksbi5hcHBlbmRDaGlsZChlKX0iaW50ZXJhY3RpdmUiPT09ZG9jdW1lbnQucmVhZHlTdGF0ZT9yKCk6ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiRE9NQ29udGVudExvYWRlZCIscil9LDY1ODk5NShlLHQscyl7InVzZSBzdHJpY3QiO3MuZCh0LHtjbGVhclNjaGVkdWxlOigpPT5vLHNjaGVkdWxlSGlkZTooKT0+bCxzY2hlZHVsZVJlbW92ZTooKT0+YSxzY2hlZHVsZVJlbmRlcjooKT0+dX0pO2xldCBpPTAsbj0wLHI9MDtmdW5jdGlvbiBvKCl7Y2xlYXJUaW1lb3V0KGkpLGNsZWFyVGltZW91dChuKSxjbGVhclRpbWVvdXQocil9ZnVuY3Rpb24gYShlLHQpe3I9c2V0VGltZW91dChlLHQpfWZ1bmN0aW9uIGwoZSx0KXtuPXNldFRpbWVvdXQoZSx0KX1mdW5jdGlvbiB1KGUsdCl7aT1zZXRUaW1lb3V0KGUsdCl9fSw2ODY2NTAoZSx0LHMpeyJ1c2Ugc3RyaWN0IjtzLmQodCx7c2V0VG9vbHRpcENvbG9yVGhlbWU6KCk9PnJ9KTtjb25zdCBpPXtkZWZhdWx0OiIiLHdoaXRlOiJ0aGVtZS13aGl0ZSIsY2hhcnQ6InRoZW1lLWNoYXJ0IixuZXdzOiJ0aGVtZS1uZXdzIiwicm91bmQtc2hhZG93IjoidGhlbWUtcm91bmQtc2hhZG93In0sbj1PYmplY3Qua2V5cyhpKTtmdW5jdGlvbiByKGUsdCl7Y29uc3Qgcz1uLmluY2x1ZGVzKHQpP2lbdF06IiI7ZS5jbGFzc0xpc3QucmVtb3ZlKC4uLm4ubWFwKChlPT5pW2VdKSkuZmlsdGVyKChlPT4hIWUpKSkscyYmIWUuY2xhc3NMaXN0LmNvbnRhaW5zKHMpJiZlLmNsYXNzTGlzdC5hZGQocyl9fSw3MzEwOTEoZSx0LHMpeyJ1c2Ugc3RyaWN0IjtzLmQodCx7U1lNQk9MX1RZUEVfQkxBQ0tfTElTVDooKT0+aX0pO2NvbnN0IGk9bmV3IFNldChbInNwcmVhZCIsImVjb25vbWljIl0pfSw0NzkzNChlLHQscyl7InVzZSBzdHJpY3QiO3MuZCh0LHtjYW5VcGdyYWRlUGxhbjooKT0+aCxlbmFibGVkOigpPT51LGdldENvbmZpZzooKT0+ZCxnZXRQcm9kdWN0RmVhdHVyZXNDb25maWc6KCk9PmMsZ2V0UHJvZHVjdElkOigpPT5sfSk7dmFyIGk9cygxMzg2MzgpLG49cyg1MDI1ODcpLHI9cygxMjc3MTEpLG89cygzMTg5NzQpLGE9cygyMTIyMjkpO2Z1bmN0aW9uIGwoZSl7bGV0IHQ9d2luZG93LnVzZXI7InVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3cmJndpbmRvdy51c2VyJiYodD13aW5kb3cudXNlciksZSYmKHQ9ZSk7bGV0IHM9dD8ucHJvX3BsYW58fCJmcmVlIjtyZXR1cm4iZnJlZSIhPT1zJiYhKDAsYS5pc1RyaWFsUHJvZHVjdCkocyl8fChzPSgwLGEuZ2V0UHJvZHVjdEZvclRyaWFsKShzKSksc31mdW5jdGlvbiB1KGUsdCxzKXtsZXQgaT13aW5kb3cudXNlcjtzJiYoaT1zKTtjb25zdCBuPWQoZSx0LGkpO2lmKCFuKXJldHVybiExO2lmKG4uZGlzYWJsZV9vbl90cmlhbCYmKCFpfHxpLmlzX3RyaWFsKSlyZXR1cm4hMTtjb25zdCByPW4uZGlzYWJsZV9vbl9saXRlX3BsYW47aWYociYmaS5pc19saXRlX3BsYW4pe2lmKCJhbGwiPT09cilyZXR1cm4hMTtpZigiZXhjbHVkZV9tb2JpbGUiPT09ciYmIW8uQ2hlY2tNb2JpbGUuYW55KCkpcmV0dXJuITF9cmV0dXJuITB9ZnVuY3Rpb24gYyhlKXtjb25zdCB0PW5bZV07cmV0dXJuIHQ/dC5leHRlbmRzP09iamVjdC5hc3NpZ24oe30sYyh0LmV4dGVuZHMpLHQpOnQ6bnVsbH1mdW5jdGlvbiBkKGUsdCxzKXtsZXQgaT1jKHR8fChsKHMpPz8iIikpO2lmKCFpKXJldHVybiBudWxsO2NvbnN0IG49d2luZG93LlRyYWRpbmdWaWV3Py53aWRnZXRDdXN0b21lcjtyZXR1cm4gbiYmcltuXSYmKGk9T2JqZWN0LmFzc2lnbih7fSxpLHJbbl0pKSxpJiZpW2VdfHxudWxsfWZ1bmN0aW9uIGgoKXtjb25zdCBlPWQoIkJBQ0tFTkRfQ09OTkVDVElPTlMiKT8ubGltaXQ/PzAsdD0oMCxpLmVuc3VyZURlZmluZWQpKHdpbmRvdy5wcm8pLHM9dC5nZXRQcm9kdWN0c0J5VHlwZSh0LlBST0RVQ1RfVFlQRVMucHJvX3BsYW4pO2Zvcihjb25zdCB0IG9mIHMpaWYoKGQoIkJBQ0tFTkRfQ09OTkVDVElPTlMiLCgwLGkuZW5zdXJlRGVmaW5lZCkodC5pZCkpPy5saW1pdD8/MCk+ZSlyZXR1cm4hMDtyZXR1cm4hMX19LDYzMTYzNChlLHQscyl7InVzZSBzdHJpY3QiO3MuZCh0LHtnZXRGcmVzaEluaXREYXRhOigpPT5vLGdldEluaXREYXRhOigpPT5yLHVwZGF0ZUluaXREYXRhOigpPT5ufSk7dmFyIGk9cyg3OTI2MTIpO2Z1bmN0aW9uIG4oKXsoMCxpLnVwZGF0ZUluaXREYXRhKSgpfQpmdW5jdGlvbiByKCl7cmV0dXJuKDAsaS5nZXRJbml0RGF0YSkoKX1mdW5jdGlvbiBvKCl7cmV0dXJuKDAsaS5nZXRGcmVzaEluaXREYXRhKSgpfX0sNjMyNDQ0KGUsdCxzKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gaShlKXtyZXR1cm4gZT09PW4oZSl9ZnVuY3Rpb24gbihlKXtjb25zdCB0PWUuaW5kZXhPZigiJCIpLHM9ZS5pbmRleE9mKCJAIik7cmV0dXJuIHQ8MCYmcz49MD9udWxsOmUuc3Vic3RyaW5nKE1hdGgubWF4KHQrMSwwKSxzPj0wP3M6ZS5sZW5ndGgpfWZ1bmN0aW9uIHIoZSl7cmV0dXJuIGUuc3RhcnRzV2l0aCgiUFVCOyIpfWZ1bmN0aW9uIG8oZSl7cmV0dXJuIGUuc3RhcnRzV2l0aCgiVVNFUjsiKX1mdW5jdGlvbiBhKGUpe3JldHVybiBlLnN0YXJ0c1dpdGgoIlNURDsiKX1mdW5jdGlvbiBsKGUpe3JldHVybiBlLmluY2x1ZGVzKCJDYW5kbGVzdGljayUxUGF0dGVybiUxIil9ZnVuY3Rpb24gdShlKXtyZXR1cm4gZS5zdGFydHNXaXRoKCJFREdSXyIpfXMuZCh0LHtleHRyYWN0UGluZUlkOigpPT5uLGlzQ2FuZGxlU3RpY2tJZDooKT0+bCxpc0N1c3RvbVBpbmVJZDooKT0+byxpc0VkZ3JQaW5lSWQ6KCk9PnUsaXNQaW5lSWRTdHJpbmc6KCk9PmksaXNQdWJsaXNoZWRQaW5lSWQ6KCk9PnIsaXNTdGFuZGFyZFBpbmVJZDooKT0+YX0pfSw5MzE1OTIoZSx0LHMpeyJ1c2Ugc3RyaWN0IjtzLmQodCx7UGluZUtpbmQ6KCk9Pm4uUGluZUtpbmQsU2V2ZXJpdHk6KCk9PmkuU2V2ZXJpdHksaXNTY3JpcHRMaWJyYXJ5OigpPT5vLGlzU2NyaXB0U3RyYXRlZ3k6KCk9PnJ9KTt2YXIgaT1zKDYxMjMxKSxuPXMoMTY0MTU2KTtmdW5jdGlvbiByKGUpe3JldHVybiBlLmtpbmQ9PT1uLlBpbmVLaW5kLlN0cmF0ZWd5fWZ1bmN0aW9uIG8oZSl7cmV0dXJuIGUua2luZD09PW4uUGluZUtpbmQuTGlicmFyeX19LDM2ODMxMihlLHQscyl7InVzZSBzdHJpY3QiO3MuZCh0LHtQaW5lS2luZDooKT0+ZC5QaW5lS2luZCxjb252ZXJ0U2NyaXB0OigpPT52LGRlbGV0ZVBpbmU6KCk9PkQsZ2V0TGFzdFZlcnNpb246KCk9PmssZ2V0UGluZUZhY2FkZVVybDooKT0+by5nZXRQaW5lRmFjYWRlVXJsLGdldFBpbmVTb3VyY2VDb2RlOigpPT5JLGdldFZlcnNpb25zOigpPT5SLGlzQXV0aFRvR2V0UGluZVNvdXJjZUNvZGU6KCk9PkUsaXNBdXRoVG9Xcml0ZVBpbmVTY3JpcHQ6KCk9PkMsaXNTY3JpcHRMaWJyYXJ5OigpPT5kLmlzU2NyaXB0TGlicmFyeSxpc1NjcmlwdFN0cmF0ZWd5OigpPT5kLmlzU2NyaXB0U3RyYXRlZ3kscGFyc2VTY3JpcHRUaXRsZUFzeW5jOigpPT5ULHJlbmFtZVBpbmU6KCk9PngscmVuYW1lVmVyc2lvbjooKT0+VixyZXF1ZXN0QnVpbHRpblNjcmlwdHM6KCk9Pk0scmVxdWVzdFVzZXJTY3JpcHRzOigpPT5MLHNhdmVOZXc6KCk9Pncsc2F2ZU5ld0RyYWZ0OigpPT5TLHNhdmVOZXh0OigpPT5QLHNhdmVOZXh0RHJhZnQ6KCk9PmIsdHJhbnNsYXRlU2NyaXB0QXN5bmM6KCk9PmYsdHJhbnNsYXRlU2NyaXB0QXN5bmMyOigpPT55fSk7dmFyIGk9cygyMjEwNjEpLG49cygzODY5MzEpLHI9cyg0MDY4OTIpLG89cygzNzEwNyksYT1zKDYzMjQ0NCksbD1zKDU3Nzk5NiksdT1zKDY3MTAxOSksYz1zKDY5NzcwNSksZD1zKDkzMTU5Mik7cyg1NjM2MjQpO2NvbnN0IGg9KDAsaS5nZXRMb2dnZXIpKCJDaGFydC5TdHVkeS5WZXJzaW9uaW5nIikscD1uZXcgci5SZXF1ZXN0Q2FjaGUsbT1uZXcgci5SZXF1ZXN0Q2FjaGUsXz1uZXcgci5TaW5nbGVSZXF1ZXN0Q2FjaGU7KDAsby5hcHBseUdsb2JhbFNjcmlwdExpc3RlbmVycykocCxtLF8pO2NvbnN0IGc9e307ZnVuY3Rpb24geShlLHQpe2NvbnN0IHM9YCR7ZX0tJHt0fWA7bGV0IGk9Z1tzXTtyZXR1cm4gaXx8KGk9YXN5bmMgZnVuY3Rpb24oZSx0KXsoMCxuLnRyYWNrRXZlbnQpKCJQaW5lIiwiU2NyaXB0TGliLnRyYW5zbGF0ZVNjcmlwdCIpO3RyeXtjb25zdCBzPWF3YWl0KDAsdS5waW5lRmFjYWRlRmV0Y2gpKHt1cmxQYXRoOmB0cmFuc2xhdGUvJHtlfS8ke3R9YH0pLGk9KDAsby5oYW5kbGVUcmFuc2xhdGVSZXN1bHQpKHMpOygwLGMubG9nUGluZU1ldGFJbmZvSXNzdWVzKSgiUGluZS50cmFuc2xhdGVTY3JpcHRBc3luYzIiLGkubWV0YUluZm8pO3JldHVybit0PDAmJihwLmRlbGV0ZShlKSxtLmRlbGV0ZShlKSxfLmNsZWFyKCksKDAsby5vbkxlZ2FjeVNjcmlwdFByb2NlZWQpKGkubWV0YUluZm8pKSxpfWNhdGNoKGUpe3Rocm93IGV9fShlLHQpLmNhdGNoKChlPT57dGhyb3cgZGVsZXRlIGdbc10sZX0pKSxnW3NdPWkpLGl9YXN5bmMgZnVuY3Rpb24gZihlLHQscz17fSxpPSExKXtyZXR1cm4oMCxuLnRyYWNrRXZlbnQpKCJQaW5lIiwiU2NyaXB0TGliLnRyYW5zbGF0ZVNjcmlwdCIpLCgwLHUucGluZUZhY2FkZUZldGNoKSh7bWV0aG9kOiJQT1NUIix1cmxQYXRoOmB0cmFuc2xhdGVfc291cmNlLyR7dH1gLHVybFBhcmFtczp7aXNfcGluZV9leDppfSxkYXRhOntzb3VyY2U6ZSxpbnB1dHM6SlNPTi5zdHJpbmdpZnkocyl9fSkudGhlbigoZT0+e2NvbnN0IHQ9KDAsby5oYW5kbGVUcmFuc2xhdGVSZXN1bHQpKGUpO3JldHVybigwLGMubG9nUGluZU1ldGFJbmZvSXNzdWVzKSgiUGluZS50cmFuc2xhdGVTY3JpcHRBc3luYyIsdC5tZXRhSW5mbyksdH0pKX1mdW5jdGlvbiB2KGUsdCl7cmV0dXJuKDAsdS5waW5lRmFjYWRlRmV0Y2gpKHttZXRob2Q6IlBPU1QiLHVybFBhdGg6ImNvbnZlcnQiLGRhdGE6e3NvdXJjZTplLHZlcnNpb25fdG86U3RyaW5nKHQpfX0pLnRoZW4oKGU9PntpZihlLnJlYXNvbjI/LmVycm9ycz8ubGVuZ3RoKXRocm93IGUucmVhc29uMjtpZihlLnJlYXNvbil0aHJvdyBlLnJlYXNvbjtyZXR1cm4oMCxvLmhhbmRsZVJlc3VsdCkoZSl9KSl9ZnVuY3Rpb24gYihlLHQscyxpPSExKXtpZigoMCxuLnRyYWNrRXZlbnQpKCJQaW5lIiwiU2NyaXB0TGliLnNhdmVOZXh0RHJhZnQiKSwhdClyZXR1cm4gUHJvbWlzZS5yZWplY3QobC5FTVBUWV9TT1VSQ0VfQ09ERSk7KDAsby5vbk1vZGlmeVNjcmlwdEFjdGl2ZUNoYW5nZWQpKGUscywhMCk7Y29uc3Qgcj0oMCx1LnBpbmVGYWNhZGVGZXRjaCkoe21ldGhvZDoiUE9TVCIsdXJsUGF0aDpgc2F2ZS9uZXh0X2RyYWZ0LyR7ZX1gLAp1cmxQYXJhbXM6e2FsbG93X2NyZWF0ZV9uZXc6aX0sZGF0YTp7c291cmNlOnR9fSkudGhlbigoZT0+e2NvbnN0IHQ9KDAsby5oYW5kbGVTYXZlUmVzdWx0KShlKTtyZXR1cm4oMCxjLmxvZ1BpbmVNZXRhSW5mb0lzc3VlcykoIlBpbmUuc2F2ZU5leHREcmFmdCIsdC5tZXRhSW5mbyksdH0pKTtyZXR1cm4gci5maW5hbGx5KCgoKT0+KDAsby5vbk1vZGlmeVNjcmlwdEFjdGl2ZUNoYW5nZWQpKGUscywhMSkpKSxyfWZ1bmN0aW9uIFMoZSl7cmV0dXJuKDAsbi50cmFja0V2ZW50KSgiUGluZSIsIlNjcmlwdExpYi5zYXZlTmV3RHJhZnQiKSxlPygwLHUucGluZUZhY2FkZUZldGNoKSh7bWV0aG9kOiJQT1NUIix1cmxQYXRoOiJzYXZlL25ld19kcmFmdCIsdXJsUGFyYW1zOnthbGxvd191c2VfZXhpc3RpbmdfZHJhZnQ6ITB9LGRhdGE6e3NvdXJjZTplfX0pLnRoZW4oKGU9Pntjb25zdCB0PSgwLG8uaGFuZGxlU2F2ZVJlc3VsdCkoZSk7cmV0dXJuKDAsYy5sb2dQaW5lTWV0YUluZm9Jc3N1ZXMpKCJQaW5lLnNhdmVOZXdEcmFmdCIsdC5tZXRhSW5mbyksdH0pKTpQcm9taXNlLnJlamVjdChsLkVNUFRZX1NPVVJDRV9DT0RFKX1mdW5jdGlvbiB3KHtzY3JpcHRTb3VyY2U6ZSxzY3JpcHROYW1lOnQsYWxsb3dPdmVyd3JpdGU6cyxjdXJyZW50VmVyc2lvbjppfSl7aWYoKDAsbi50cmFja0V2ZW50KSgiUGluZSIsIlNjcmlwdExpYi5zYXZlTmV3IiksIWUpcmV0dXJuIFByb21pc2UucmVqZWN0KGwuRU1QVFlfU09VUkNFX0NPREUpO2NvbnN0IHI9e25hbWU6dH07cmV0dXJuIHMmJihyLmFsbG93X292ZXJ3cml0ZT0hMCksKDAsdS5waW5lRmFjYWRlRmV0Y2gpKHttZXRob2Q6IlBPU1QiLHVybFBhdGg6InNhdmUvbmV3Iix1cmxQYXJhbXM6cixkYXRhOntzb3VyY2U6ZX19KS50aGVuKChlPT57Xy5jbGVhcigpO2NvbnN0IHQ9KDAsby5oYW5kbGVTYXZlUmVzdWx0KShlKTtyZXR1cm4oMCxjLmxvZ1BpbmVNZXRhSW5mb0lzc3VlcykoIlBpbmUuc2F2ZU5ldyIsdC5tZXRhSW5mbyksKDAsby5vbk1vZGlmeVNjcmlwdCkodC5tZXRhSW5mbyxpLCF0LnN1Y2Nlc3MsdC5jb21waWxlRXJyb3JzLmVycm9ycyksdH0pKX1mdW5jdGlvbiBQKHtzY3JpcHRJZFBhcnQ6ZSxzY3JpcHRTb3VyY2U6dCxjdXJyU2NyaXB0VmVyc2lvbjpzLGlzTGVnYWN5U2NyaXB0Omksc2NyaXB0TmFtZTpyfSl7aWYoKDAsbi50cmFja0V2ZW50KSgiUGluZSIsIlNjcmlwdExpYi5zYXZlTmV4dCIpLCF0KXJldHVybiBQcm9taXNlLnJlamVjdChsLkVNUFRZX1NPVVJDRV9DT0RFKTtjb25zdCBhPXthbGxvd19jcmVhdGVfbmV3Oml9LGQ9e3NvdXJjZTp0fTtyZXR1cm4gdm9pZCAwIT09ciYmKGEubmFtZT1yKSwoMCxvLm9uTW9kaWZ5U2NyaXB0QWN0aXZlQ2hhbmdlZCkoZSxzLCEwKSwoMCx1LnBpbmVGYWNhZGVGZXRjaCkoe21ldGhvZDoiUE9TVCIsdXJsUGF0aDpgc2F2ZS9uZXh0LyR7ZX1gLHVybFBhcmFtczphLGRhdGE6ZH0pLnRoZW4oKGU9PntfLmNsZWFyKCk7Y29uc3QgdD0oMCxvLmhhbmRsZVNhdmVSZXN1bHQpKGUpO3JldHVybigwLGMubG9nUGluZU1ldGFJbmZvSXNzdWVzKSgiUGluZS5zYXZlTmV4dCIsdC5tZXRhSW5mbyksKDAsby5vbk1vZGlmeVNjcmlwdCkodC5tZXRhSW5mbyxzLCF0LnN1Y2Nlc3MsdC5jb21waWxlRXJyb3JzLmVycm9ycyksdH0pKS5maW5hbGx5KCgoKT0+KDAsby5vbk1vZGlmeVNjcmlwdEFjdGl2ZUNoYW5nZWQpKGUscywhMSkpKX1mdW5jdGlvbiBUKGUpe3JldHVybigwLG4udHJhY2tFdmVudCkoIlBpbmUiLCJTY3JpcHRMaWIucGFyc2VTY3JpcHRUaXRsZSIpLGU/KDAsdS5waW5lRmFjYWRlRmV0Y2gpKHttZXRob2Q6IlBPU1QiLHVybFBhdGg6InBhcnNlX3RpdGxlIixkYXRhOntzb3VyY2U6ZX19KS50aGVuKChlPT4oMCxvLmhhbmRsZVJlc3VsdCkoZSkpKTpQcm9taXNlLnJlamVjdChsLkVNUFRZX1NPVVJDRV9DT0RFKX1mdW5jdGlvbiBDKGUpe2lmKCgwLGEuaXNDdXN0b21QaW5lSWQpKGUpKXJldHVybiBQcm9taXNlLnJlc29sdmUoITApO2NvbnN0IHQ9bS5nZXQoZSk7aWYodClyZXR1cm4gdDsoMCxuLnRyYWNrRXZlbnQpKCJQaW5lIiwiU2NyaXB0TGliLmlzQXV0aFRvV3JpdGVQaW5lU2NyaXB0Iik7Y29uc3Qgcz0oMCx1LnBpbmVGYWNhZGVGZXRjaCkoe3VybFBhdGg6YGlzX2F1dGhfdG9fd3JpdGUvJHtlfWB9KTtyZXR1cm4gbS5zZXQoZSxzKSxzfWZ1bmN0aW9uIEUoZSx0KXtjb25zdCBzPXAuZ2V0KGUpO2lmKHMpcmV0dXJuIHM7KDAsbi50cmFja0V2ZW50KSgiUGluZSIsIlNjcmlwdExpYi5pc0F1dGhUb0dldFBpbmVTb3VyY2VDb2RlIik7Y29uc3QgaT0oMCx1LnBpbmVGYWNhZGVGZXRjaCkoe3VybFBhdGg6YGlzX2F1dGhfdG9fZ2V0LyR7ZX0vJHt0fWB9KTtyZXR1cm4gcC5zZXQoZSxpKSxpfWZ1bmN0aW9uIEkoZSx0LHMpe3JldHVybigwLG4udHJhY2tFdmVudCkoIlBpbmUiLCJTY3JpcHRMaWIuZ2V0UGluZVNvdXJjZUNvZGUiKSwoMCx1LnBpbmVGYWNhZGVGZXRjaCkoe3VybFBhdGg6YGdldC8ke2V9LyR7dH1gLHVybFBhcmFtczp7bm9fNHh4OnN9fSl9ZnVuY3Rpb24gTCgpe2lmKCgwLG4udHJhY2tFdmVudCkoIlBpbmUiLCJTY3JpcHRMaWIucmVxdWVzdFVzZXJTY3JpcHRzIiksIXdpbmRvdy5pc19hdXRoZW50aWNhdGVkKXJldHVybiBQcm9taXNlLnJlc29sdmUoW10pO2NvbnN0IGU9Xy5nZXQoKTtpZihlKXJldHVybiBlO2NvbnN0IHQ9KDAsdS5waW5lRmFjYWRlRmV0Y2gpKHt1cmxQYXRoOiJsaXN0Iix1cmxQYXJhbXM6e2ZpbHRlcjoic2F2ZWQifX0pO3JldHVybiBfLnJlc2V0KHQpLHR9YXN5bmMgZnVuY3Rpb24gTSgpeygwLG4udHJhY2tFdmVudCkoIlBpbmUiLCJTY3JpcHRMaWIucmVxdWVzdEJ1aWx0aW5TY3JpcHRzIik7dHJ5e2gubG9nTm9ybWFsKCJSZXF1ZXN0IGJ1aWx0LWluIHNjcmlwdHMiKTtjb25zdCBlPWF3YWl0KDAsdS5waW5lRmFjYWRlRmV0Y2gpKHt1cmxQYXRoOiJsaXN0Iix1cmxQYXJhbXM6e2ZpbHRlcjoic3RhbmRhcmQifX0pO3JldHVybiBoLmxvZ05vcm1hbCgiUmVxdWVzdCBidWlsdC1pbiBzY3JpcHRzIGZpbmlzaGVkIiksZX1jYXRjaChlKXsKdGhyb3cgaC5sb2dXYXJuKCJSZXF1ZXN0IGJ1aWx0LWluIHNjcmlwdHMgZmluaXNoZWQgd2l0aCBmYWlsIiksZX19ZnVuY3Rpb24gRChlKXtyZXR1cm4oMCxuLnRyYWNrRXZlbnQpKCJQaW5lIiwiU2NyaXB0TGliLmRlbGV0ZVBpbmUiKSwoMCx1LnBpbmVGYWNhZGVGZXRjaCkoe21ldGhvZDoiUE9TVCIsdXJsUGF0aDpgZGVsZXRlLyR7ZX1gfSkudGhlbigodD0+KHAuZGVsZXRlKGUpLG0uZGVsZXRlKGUpLF8uY2xlYXIoKSwoMCxvLm9uRGVsZXRlU2NyaXB0KShlKSx0KSkpfWZ1bmN0aW9uIHgoZSx0LHM9ITEpe3JldHVybigwLG4udHJhY2tFdmVudCkoIlBpbmUiLCJTY3JpcHRMaWIucmVuYW1lUGluZSIpLCgwLHUucGluZUZhY2FkZUZldGNoKSh7bWV0aG9kOiJQT1NUIix1cmxQYXRoOmByZW5hbWUvJHt0fWAsdXJsUGFyYW1zOntuYW1lOmUsZm9yY2U6c319KS50aGVuKChzPT4oXy5jbGVhcigpLCgwLG8ub25SZW5hbWVTY3JpcHQpKHQsZSkscykpKX1hc3luYyBmdW5jdGlvbiBSKGUsdCl7KDAsbi50cmFja0V2ZW50KSgiUGluZSIsIlNjcmlwdExpYi5nZXRWZXJzaW9ucyIpO3RyeXtoLmxvZ05vcm1hbCgiUmVxdWVzdCBzY3JpcHQgdmVyc2lvbnMiKTtyZXR1cm4gYXdhaXQoMCx1LnBpbmVGYWNhZGVGZXRjaCkoe21ldGhvZDoiR0VUIix1cmxQYXRoOmB2ZXJzaW9ucy8ke2V9YCx1cmxQYXJhbXM6e2xpbWl0OnQ/U3RyaW5nKHQpOnZvaWQgMH19KX1jYXRjaChlKXtyZXR1cm4gaC5sb2dXYXJuKCJSZXF1ZXN0IHNjcmlwdCB2ZXJzaW9ucyBmaW5pc2hlZCB3aXRoIGZhaWwiKSxbXX19YXN5bmMgZnVuY3Rpb24gayhlKXsoMCxuLnRyYWNrRXZlbnQpKCJQaW5lIiwiU2NyaXB0TGliLmdldExhc3RWZXJzaW9ucyIpO3RyeXtoLmxvZ05vcm1hbCgiUmVxdWVzdCB0aGUgbGFzdCBzY3JpcHQgdmVyc2lvbnMiKTtyZXR1cm4oYXdhaXQoMCx1LnBpbmVGYWNhZGVGZXRjaCkoe21ldGhvZDoiR0VUIix1cmxQYXRoOmB2ZXJzaW9ucy8ke2V9L2xhc3RgfSkpWzBdPz9udWxsfWNhdGNoKGUpe3JldHVybiBoLmxvZ1dhcm4oIlJlcXVlc3Qgc2NyaXB0IHZlcnNpb25zIGZpbmlzaGVkIHdpdGggZmFpbCIpLG51bGx9fWFzeW5jIGZ1bmN0aW9uIFYoZSx0LHMpe3RyeXtoLmxvZ05vcm1hbChgUmVuYW1lIHNjcmlwdCB2ZXJzaW9uICR7dH1gKTtyZXR1cm4gYXdhaXQoMCx1LnBpbmVGYWNhZGVGZXRjaCkoe21ldGhvZDoiUFVUIix1cmxQYXRoOmBuYW1lLyR7ZX0vJHt0fWAsdXJsUGFyYW1zOntuYW1lOnM/PyIifX0pfWNhdGNoKGUpe3JldHVybiBoLmxvZ1dhcm4oIlJlbmFtZSBzY3JpcHQgdmVyc2lvbiBmaW5pc2hlZCB3aXRoIGZhaWwiKSxudWxsfX19LDkwNjU5MyhlLHQscyl7InVzZSBzdHJpY3QiO2NvbnN0e2lzRmVhdHVyZXNldEVuYWJsZWQ6aX09cyg5MzAyMzEpO3dpbmRvdy5UcmFkaW5nVmlldz13aW5kb3cuVHJhZGluZ1ZpZXd8fHt9O3ZhciBuLHIsbyxhLGwsdSxjLGQ9KHI9T2JqZWN0LmNyZWF0ZShudWxsKSxvPU9iamVjdC5jcmVhdGUobnVsbCksYT1PYmplY3QuY3JlYXRlKG51bGwpLGw9MCx1PTAsYz0iVHJhZGluZ1ZpZXciLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyJiZ3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsKGZ1bmN0aW9uKGUpe3ZhciB0O3RyeXt0PUpTT04ucGFyc2UoZS5kYXRhKSxpKCJjaGFydGluZ19saWJyYXJ5X2RlYnVnX21vZGUiKSYmY29uc29sZS5sb2coYCR7KG5ldyBEYXRlKS50b0lTT1N0cmluZygpfSBQb3N0TWVzc2FnZTogaW5jb21pbmcgbWVzc2FnZTogYCtKU09OLnN0cmluZ2lmeSh0KSl9Y2F0Y2goZSl7cmV0dXJufWlmKHQmJnQucHJvdmlkZXImJnQucHJvdmlkZXI9PT1jKWlmKCJnZXQiPT09dC50eXBlKXtpZighb1t0Lm5hbWVdKXJldHVybjtvW3QubmFtZV0uZm9yRWFjaCgoZnVuY3Rpb24oZSl7ImZ1bmN0aW9uIj09dHlwZW9mIGUmJmUuY2FsbCh0LHQuZGF0YSwoZnVuY3Rpb24oZSl7dmFyIHM9e2lkOnQuaWQsdHlwZToib24iLG5hbWU6dC5uYW1lLGNsaWVudF9pZDp0LmNsaWVudF9pZCxkYXRhOmUscHJvdmlkZXI6Y307bi5wb3N0TWVzc2FnZShKU09OLnN0cmluZ2lmeShzKSwiKiIpfSkpfSkpfWVsc2UgaWYoIm9uIj09PXQudHlwZSlyW3QuY2xpZW50X2lkXSYmclt0LmNsaWVudF9pZF1bdC5pZF0mJihyW3QuY2xpZW50X2lkXVt0LmlkXS5jYWxsKHQsdC5kYXRhKSxkZWxldGUgclt0LmNsaWVudF9pZF1bdC5pZF0pO2Vsc2UgaWYoInBvc3QiPT09dC50eXBlKXtpZighb1t0Lm5hbWVdKXJldHVybjtvW3QubmFtZV0uZm9yRWFjaCgoZnVuY3Rpb24oZSl7ImZ1bmN0aW9uIj09dHlwZW9mIGUmJmUuY2FsbCh0LHQuZGF0YSwoZnVuY3Rpb24oKXt9KSl9KSl9fSkpLGZ1bmN0aW9uKGUsdCl7clt0XT1PYmplY3QuY3JlYXRlKG51bGwpLGFbdF09ZSxuPWU7dmFyIHM9IiI7cmV0dXJue29uOmZ1bmN0aW9uKGUsdCxzKXtvW2VdJiZzfHwob1tlXT1bXSksb1tlXS5wdXNoKHQpfSxnZXQ6ZnVuY3Rpb24oZSxzLGkpe3ZhciBuPXtpZDpsKyssdHlwZToiZ2V0IixuYW1lOmUsY2xpZW50X2lkOnQsZGF0YTpzLHByb3ZpZGVyOmN9O3JbdF1bbi5pZF09aSxhW3RdLnBvc3RNZXNzYWdlKEpTT04uc3RyaW5naWZ5KG4pLCIqIil9LHBvc3Q6ZnVuY3Rpb24oZSx0LGkpe3ZhciBuPXtpZDp1KyssdHlwZToicG9zdCIsbmFtZTp0LGNsaWVudF9pZDpzLGRhdGE6aSxwcm92aWRlcjpjfTtlJiYiZnVuY3Rpb24iPT10eXBlb2YgZS5wb3N0TWVzc2FnZSYmZS5wb3N0TWVzc2FnZShKU09OLnN0cmluZ2lmeShuKSwiKiIpfSxzZXRDbGllbnRJZDpmdW5jdGlvbihlKXtzPWV9fX0pO2UuZXhwb3J0cz1kfSw0MDAxODEoZSx0LHMpeyJ1c2Ugc3RyaWN0Ijthc3luYyBmdW5jdGlvbiBpKCl7Y29uc3R7Z2V0VHJhY2tlckluc3RhbmNlOmV9PWF3YWl0IFByb21pc2UuYWxsKFtzLmUoNzA2NDQpLHMuZSg5NTIwNyldKS50aGVuKHMuYmluZChzLDQ3NzE1MCkpO3JldHVybiBlKCl9cy5kKHQse2dldFRyYWNrZXI6KCk9Pml9KX0sMTU2ODI5KGUsdCxzKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gaShlKXtyZXR1cm4gdm9pZCAwIT09ZSYmZS5pbmNsdWRlcygiY3J5cHRvIil9ZnVuY3Rpb24gbihlLHQpewpyZXR1cm4ic3RvY2siPT09ZSYmdC5pbmNsdWRlcygicmlnaHQiKXx8InJpZ2h0Ij09PWV9ZnVuY3Rpb24gcihlLHQpe3JldHVybiBvKGUsdCl8fCJzdG9jayI9PT1lJiZ0LmluY2x1ZGVzKCJmdW5kIikmJnQuaW5jbHVkZXMoImV0ZiIpfHwic3RydWN0dXJlZCI9PT1lJiZ0LmluY2x1ZGVzKCJldG4iKX1mdW5jdGlvbiBvKGUsdCl7cmV0dXJuIGZ1bmN0aW9uKGUsdCl7cmV0dXJuImZ1bmQiPT09ZSYmdC5pbmNsdWRlcygibXV0dWFsIil9KGUsdCl8fCJmdW5kIj09PWUmJnQuaW5jbHVkZXMoImV0ZiIpfWZ1bmN0aW9uIGEoZSl7cmV0dXJuImJvbmQiPT09ZX1mdW5jdGlvbiBsKGUsdCl7cmV0dXJuImJvbmQiPT09ZSYmdC5pbmNsdWRlcygiY29ycG9yYXRlIil9ZnVuY3Rpb24gdShlKXtyZXR1cm4iZWNvbm9taWMiPT09ZX1mdW5jdGlvbiBjKGUpe3JldHVybiJvcHRpb24iPT09ZX1mdW5jdGlvbiBkKGUpe3JldHVybiJkZXgiPT09ZT8uY2VudHJhbGl6YXRpb259ZnVuY3Rpb24gaChlKXtyZXR1cm4ic3ByZWFkIj09PWV9ZnVuY3Rpb24gcChlKXtyZXR1cm4iZnV0dXJlcyI9PT1lfWZ1bmN0aW9uIG0oZSl7cmV0dXJuImZvcmV4Ij09PWV9ZnVuY3Rpb24gXyhlLHQscyl7cmV0dXJuIGkodCkmJiJzcG90Ij09PWUmJiJVU0QiPT09c31mdW5jdGlvbiBnKGUsdCl7cmV0dXJuInNwb3QiPT09ZSYmdC5pbmNsdWRlcygiY3J5cHRvYXNzZXQiKX1mdW5jdGlvbiB5KGUsdCl7cmV0dXJuIEJvb2xlYW4oImJvbmQiPT09ZSYmdC5pbmNsdWRlcygiZ292ZXJubWVudCIpJiZ0LmluY2x1ZGVzKCJiZW5jaG1hcmsiKSl9ZnVuY3Rpb24gZihlLHQpe3JldHVybiBCb29sZWFuKCJib25kIj09PWUmJnQuaW5jbHVkZXMoImdvdmVybm1lbnQiKSYmIXQuaW5jbHVkZXMoImJlbmNobWFyayIpKX1mdW5jdGlvbiB2KGUpe3JldHVybiBCb29sZWFuKGUudHlwZXNwZWNzPy5pbmNsdWRlcygieWllbGQiKSl9ZnVuY3Rpb24gYihlLHQpe3JldHVybiJzdG9jayI9PT1lJiZ0LmluY2x1ZGVzKCJjb21tb24iKXx8InN0b2NrIj09PWUmJnQuaW5jbHVkZXMoInByZWZlcnJlZCIpfHwic3RvY2siPT09ZSYmdC5pbmNsdWRlcygiZm9yd2FyZCIpfHwic3RvY2siPT09ZSYmdC5pbmNsdWRlcygiYm9udXMiKXx8InN0b2NrIj09PWUmJnQuaW5jbHVkZXMoImNmZCIpfHwiZnVuZCI9PT1lJiZ0LmluY2x1ZGVzKCJ1bml0Iil8fCJmdW5kIj09PWUmJnQuaW5jbHVkZXMoInRydXN0Iil8fCJmdW5kIj09PWUmJnQuaW5jbHVkZXMoInJlaXQiKXx8ImZ1bmQiPT09ZSYmdC5pbmNsdWRlcygiZXRuIil8fCJmdW5kIj09PWUmJnQuaW5jbHVkZXMoImNsb3NlZGVuZCIpfHwiYm9uZCI9PT1lJiZ0LmluY2x1ZGVzKCJjb252ZXJ0aWJsZSIpfHwiZHIiPT09ZXx8IndhcnJhbnQiPT09ZXx8InN0cnVjdHVyZWQiPT09ZSYmIXQuaW5jbHVkZXMoImV0biIpfWZ1bmN0aW9uIFMoZSl7cmV0dXJuIGU/LmluY2x1ZGVzKCJkaXNjb250aW51ZWQiKT8/ITF9ZnVuY3Rpb24gdyhlLHQ9W10pe3JldHVybiBiKGUsdCkmJnQuaW5jbHVkZXMoInByZS1pcG8iKX1zLmQodCx7aGFzQ3J5cHRvVHlwZXNwZWM6KCk9PmksaXNCb25kOigpPT5hLGlzQ29ycG9yYXRlQm9uZDooKT0+bCxpc0NyeXB0b1Nwb3RVc2Q6KCk9Pl8saXNDcnlwdG9hc3NldFNwb3Q6KCk9PmcsaXNEZXg6KCk9PmQsaXNFY29ub21pY1N5bWJvbDooKT0+dSxpc0V0ZjooKT0+cixpc0ZvcmV4U3ltYm9sOigpPT5tLGlzRnVuZEV0ZjooKT0+byxpc0Z1dHVyZXM6KCk9PnAsaXNHb3Zlcm5tZW50QmVuY2htYXJrQm9uZDooKT0+eSxpc0dvdmVybm1lbnRPbmx5Qm9uZDooKT0+Zixpc09wdGlvbjooKT0+Yyxpc1ByZUlwbzooKT0+dyxpc1JpZ2h0OigpPT5uLGlzU3ByZWFkOigpPT5oLGlzU3RvY2tzU3ltYm9sOigpPT5iLGlzU3ltYm9sRGVsaXN0ZWQ6KCk9PlMsaXNZaWVsZDooKT0+dn0pfSw3Mjg1NChlLHQscyl7InVzZSBzdHJpY3QiO3MuZCh0LHtkYXJrVGhlbWU6KCk9PnUsZ2V0U3RkQ2hhcnRUaGVtZTooKT0+ZCxnZXRTdGRUaGVtZU5hbWVzOigpPT5jLGxpZ2h0VGhlbWU6KCk9PmwsdHJhbnNsYXRlVGhlbWVOYW1lOigpPT5ofSk7dmFyIGk9cygxODUyNzEpLG49cyg2MDE4NDEpLHI9cyg3MTY3NjgpLG89cyg5ODQ0MjYpLGE9cyg4MTA0MSk7bGV0IGw9KDAsbi5jbG9uZSkoci5saWdodCksdT0oMCxuLmNsb25lKShvLmRhcmspO2Z1bmN0aW9uIGMoKXtyZXR1cm5bYS5TdGRUaGVtZS5MaWdodCxhLlN0ZFRoZW1lLkRhcmtdfWZ1bmN0aW9uIGQoZSl7cmV0dXJuKDAsbi5jbG9uZSkoZT09PWEuU3RkVGhlbWUuTGlnaHQ/bDplPT09YS5TdGRUaGVtZS5EYXJrP3U6dm9pZCAwKX1mdW5jdGlvbiBoKGUpe3JldHVybntbYS5TdGRUaGVtZS5MaWdodF06aS50KG51bGwse2NvbnRleHQ6ImNvbG9yVGhlbWVOYW1lIn0scygyNDcxNjcpKSxbYS5TdGRUaGVtZS5EYXJrXTppLnQobnVsbCx7Y29udGV4dDoiY29sb3JUaGVtZU5hbWUifSxzKDk0NTM2MikpfVtlXXx8ZX19LDc4NDUxMyhlLHQscyl7InVzZSBzdHJpY3QiO3MuZCh0LHthY3R1YWxDb250ZW50OigpPT5yfSk7dmFyIGksbj1zKDIzMjM2NCk7IWZ1bmN0aW9uKGUpe2UuRmluYW5jaWFscz0iZmluYW5jaWFscyIsZS5Eb2N1bWVudHM9ImRvY3VtZW50cyIsZS5OZXdzPSJuZXdzIixlLklkZWFzPSJpZGVhcyIsZS5TZWFzb25hbHM9InNlYXNvbmFscyIsZS5BbmFseXNpcz0iYW5hbHlzaXMiLGUuVGVjaG5pY2Fscz0idGVjaG5pY2FscyIsZS5Gb3JlY2FzdD0iZm9yZWNhc3QiLGUuRm9yd2FyZEN1cnZlPSJmb3J3YXJkLWN1cnZlIixlLkNvbnRyYWN0cz0iY29udHJhY3RzIixlLllpZWxkQ3VydmU9InlpZWxkLWN1cnZlIixlLkVjb25vbXlJbmRpY2F0b3JzPSJlY29ub215LWluZGljYXRvcnMiLGUuT3B0aW9ucz0ib3B0aW9ucyIsZS5Cb25kcz0iYm9uZHMiLGUuRXRmcz0iZXRmcyIsZS5DaGFydFRhYmxlVmlldz0iY2hhcnQtdGFibGUtdmlldyIsZS5Db21tdW5pdHk9ImNvbW11bml0eSIsZS5EZXJpdmF0aXZlcz0iZGVyaXZhdGl2ZXMifShpfHwoaT17fSkpO2NvbnN0IHI9bmV3IG4uV2F0Y2hlZFZhbHVlKG51bGwpfSw3NDQ1MzQoZSx0LHMpeyJ1c2Ugc3RyaWN0IjtzLmQodCx7CmdldEhpZGVPcHRpb25zOigpPT5kLGdldFNhdmVkSGlkZU1vZGU6KCk9Pm0sdG9nZ2xlSGlkZU1vZGU6KCk9PnAsdG9nZ2xlSGlkZU9wdGlvbnM6KCk9Pmh9KTt2YXIgaT1zKDEzODYzOCksbj1zKDQxMTQwNykscj1zKDE4NTI3MSksbz1zKDkzMDU2NiksYT1zKDY3ODI4NSksbD1zKDg0NDM0NCk7bGV0IHU9bnVsbDtmdW5jdGlvbiBjKGUsdCl7bGV0IHM9ITE7cmV0dXJuKCk9PntpZihzKXJldHVybjtzPSEwO2NvbnN0IG49bSgpLHI9ZnVuY3Rpb24oZSl7aWYoImFsbCI9PT1lKXJldHVybiBfKCk7Y29uc3QgdD0oMCxpLmVuc3VyZURlZmluZWQpKGQoKS5nZXQoZSkpLHM9KDAsaS5lbnN1cmVEZWZpbmVkKSh0LmdldEJveGVkVmFsdWUpKCkudmFsdWUoKTtyZXR1cm4gdC5pbnZlcnRlZD8hczpzfShlKTtpZigiYWxsIj09PW58fG49PT1lKXtpZigiYWxsIj09PW4pZm9yKGNvbnN0IGUgb2YoMCxpLmVuc3VyZU5vdE51bGwpKHUpLnZhbHVlcygpKWUhPT10JiZlLmdldEJveGVkVmFsdWUmJmUuZ2V0Qm94ZWRWYWx1ZSgpLnNldFZhbHVlKGUuaW52ZXJ0ZWQ/IXI6cik7bC5oaWRlU3RhdGVDaGFuZ2UuZmlyZSh7aGlkZU1vZGU6bixpc0FjdGl2ZTpyfSl9cz0hMX19ZnVuY3Rpb24gZCgpe2lmKG51bGwhPT11KXJldHVybiB1O2NvbnN0IGU9e2xhYmVsOnIudChudWxsLHZvaWQgMCxzKDE1NzIxMCkpLGRhdGFOYW1lOiJoaWRlLWRyYXdpbmctdG9vbHMiLHRvb2x0aXA6e2FjdGl2ZTpyLnQobnVsbCx2b2lkIDAscyg2NDkzNzMpKSxpbmFjdGl2ZTpyLnQobnVsbCx2b2lkIDAscyg4MDk5MzkpKX0sZ2V0Qm94ZWRWYWx1ZTooKT0+KDAsYS5oaWRlQWxsRHJhd2luZ3MpKCksdHJhY2tMYWJlbDoiaGlkZSBkcmF3aW5ncyJ9LHQ9e2xhYmVsOnIudChudWxsLHZvaWQgMCxzKDgwNzg4MCkpLGRhdGFOYW1lOiJoaWRlLWluZGljYXRvcnMiLHRvb2x0aXA6e2FjdGl2ZTpyLnQobnVsbCx2b2lkIDAscygyMDYzNzkpKSxpbmFjdGl2ZTpyLnQobnVsbCx2b2lkIDAscyg1MzkzNDkpKX0sZ2V0Qm94ZWRWYWx1ZTooKT0+KDAsYS5oaWRlQWxsSW5kaWNhdG9ycykoKSx0cmFja0xhYmVsOiJoaWRlIGluZGljYXRvcnMifTt1PW5ldyBNYXAoW1siZHJhd2luZ3MiLGVdLFsiaW5kaWNhdG9ycyIsdF1dKSwoMCxhLmhpZGVBbGxEcmF3aW5ncykoKS5zdWJzY3JpYmUobnVsbCxjKCJkcmF3aW5ncyIsZSkpLCgwLGEuaGlkZUFsbEluZGljYXRvcnMpKCkuc3Vic2NyaWJlKG51bGwsYygiaW5kaWNhdG9ycyIsdCkpO2NvbnN0IGk9KDAsbi50cmFkaW5nU2VydmljZSkoKTtpZihpKXtjb25zdCBlPXtsYWJlbDpyLnQobnVsbCx2b2lkIDAscyg3NjI5ODgpKSxkYXRhTmFtZToiaGlkZS1wb3NpdGlvbnMtYW5kLW9yZGVycyIsdG9vbHRpcDp7YWN0aXZlOnIudChudWxsLHZvaWQgMCxzKDc3NjA2MykpLGluYWN0aXZlOnIudChudWxsLHZvaWQgMCxzKDg0NjQxMykpfSxnZXRCb3hlZFZhbHVlOigpPT5pLnNob3dUcmFkZWRTb3VyY2VzLGludmVydGVkOiEwLHRyYWNrTGFiZWw6ImhpZGUgcG9zaXRpb25zIn07dS5zZXQoInBvc2l0aW9ucyIsZSksaS5zaG93VHJhZGVkU291cmNlcy5zdWJzY3JpYmUoYygicG9zaXRpb25zIixlKSl9Y29uc3Qgbz17bGFiZWw6ci50KG51bGwsdm9pZCAwLHMoODI0OTkzKSksZGF0YU5hbWU6ImhpZGUtYWxsIix0b29sdGlwOnthY3RpdmU6aT9yLnQobnVsbCx2b2lkIDAscyg0MjA2MjQpKTpyLnQobnVsbCx2b2lkIDAscyg4MTg3NjMpKSxpbmFjdGl2ZTppP3IudChudWxsLHZvaWQgMCxzKDg2NjMzMCkpOnIudChudWxsLHZvaWQgMCxzKDgwMDM0OSkpfSx0cmFja0xhYmVsOiJoaWRlIGFsbCJ9O3JldHVybiB1LnNldCgiYWxsIixvKSx1fWZ1bmN0aW9uIGgoZSl7ZygoKHQscyxpKT0+e2NvbnN0IG49aS5nZXRCb3hlZFZhbHVlPy4oKTtuJiZuLnNldFZhbHVlKGkuaW52ZXJ0ZWQ/IWU6ZSl9KSl9ZnVuY3Rpb24gcChlKXtlP28uc2V0VmFsdWUoIkNoYXJ0VG9vbHNIaWRlTW9kZSIsZSk6ZT1tKCk7Y29uc3QgdD1fKCk7bGV0IHM9IXQ7cmV0dXJuImFsbCI9PT1lPyhnKCgoZSx0LGkpPT57ZS5zZXRWYWx1ZShpLmludmVydGVkPyFzOnMpfSkpLGwuaGlkZVN0YXRlQ2hhbmdlLmZpcmUoe2hpZGVNb2RlOmUsaXNBY3RpdmU6c30pLHMpOihnKCgoaSxuLHIpPT57Y29uc3Qgbz1yLmludmVydGVkO2lmKG49PT1lKXtjb25zdCBlPXQ/IW86IWkudmFsdWUoKTtpLnNldFZhbHVlKGUpLHM9bz8hZTplfWVsc2UgaS5zZXRWYWx1ZShCb29sZWFuKG8pKX0pKSxsLmhpZGVTdGF0ZUNoYW5nZS5maXJlKHtoaWRlTW9kZTplLGlzQWN0aXZlOnN9KSxzKX1mdW5jdGlvbiBtKCl7Y29uc3QgZT1vLmdldFZhbHVlKCJDaGFydFRvb2xzSGlkZU1vZGUiLCJkcmF3aW5ncyIpO3JldHVybiBkKCkuaGFzKGUpP2U6ImRyYXdpbmdzIn1mdW5jdGlvbiBfKCl7bGV0IGU9ITA7cmV0dXJuIGcoKCh0LHMsaSk9Pntjb25zdCBuPXQudmFsdWUoKTtlPWUmJihpLmludmVydGVkPyFuOm4pfSkpLGV9ZnVuY3Rpb24gZyhlKXtkKCkuZm9yRWFjaCgoKHQscyk9Pntjb25zdCBpPXQuZ2V0Qm94ZWRWYWx1ZT8uKCk7aSYmZShpLHMsdCl9KSl9fSw4OTkyMzUoZSx0LHMpeyJ1c2Ugc3RyaWN0IjtzLmQodCx7Z2V0Q2hhcnRUaW1lem9uZU9mZnNldE1zOigpPT5yLGdldENoYXJ0VGltZXpvbmVPZmZzZXRTZWM6KCk9Pm8sZ2V0VGltZXpvbmVOYW1lOigpPT5ufSk7dmFyIGk9cyg3MDA4MDkpO2Z1bmN0aW9uIG4oZSl7Y29uc3QgdD1lLm1vZGVsKCkudGltZXpvbmUoKTtpZigiZXhjaGFuZ2UiIT09dClyZXR1cm4gdDtjb25zdCBzPWUubW9kZWwoKS5tYWluU2VyaWVzKCkuc3ltYm9sSW5mbygpO3JldHVybiBzPy50aW1lem9uZX1mdW5jdGlvbiByKGUsdCl7aWYodm9pZCAwPT09dClyZXR1cm4gMDtyZXR1cm4oMCxpLmdldF90aW1lem9uZSkodCkub2Zmc2V0X3V0YyhlKX1mdW5jdGlvbiBvKGUsdCl7cmV0dXJuIHIoMWUzKmUsdCkvMWUzfX0sMTUzNTgyKGUsdCxzKXsidXNlIHN0cmljdCI7cy5kKHQse2NhblNob3dOZXdTeW1ib2xTZWFyY2g6KCk9PmwsZ2V0Q3VycmVudExvY2FsZUluZm9Db3VudHJ5OigpPT51LGlzTW9iaWxlOigpPT5vLGlzUGxhdGZvcm1Nb2JpbGU6KCk9PmF9KQo7dmFyIGk9cygxMTczMTMpLG49cyg5MzAyMzEpLHI9cygzMTg5NzQpO2Z1bmN0aW9uIG8oKXtjb25zdCBlPXdpbmRvdy5tYXRjaE1lZGlhKCIobWluLXdpZHRoOiA2MDJweCkgYW5kIChtaW4taGVpZ2h0OiA0NDVweCkiKS5tYXRjaGVzO3JldHVybiByLkNoZWNrTW9iaWxlLmFueSgpJiYhZX1mdW5jdGlvbiBhKCl7cmV0dXJuISgwLGkuaXNPbk1vYmlsZUFwcFBhZ2UpKCJhbnkiKSYmbygpfWZ1bmN0aW9uIGwoKXtyZXR1cm4hKDAsbi5pc0ZlYXR1cmVzZXRFbmFibGVkKSgid2lkZ2V0IikmJiEoMCxpLmlzT25Nb2JpbGVBcHBQYWdlKSgiYW55Iil9ZnVuY3Rpb24gdSgpe3JldHVybiB3aW5kb3cuaW5pdERhdGE/LmN1cnJlbnRMb2NhbGVJbmZvPy5mbGFnLnRvVXBwZXJDYXNlKCl9fSw0MDA0MChlLHQscyl7InVzZSBzdHJpY3QiO3MuZCh0LHtnZXRDaGFydFdpZGdldEFwaVRpbWVDb252ZXJ0ZXI6KCk9Pmx9KTt2YXIgaT1zKDEzODYzOCksbj1zKDkzMDIzMSkscj1zKDcwNjg4NCk7Y29uc3Qgbz0oMCxuLmlzRmVhdHVyZXNldEVuYWJsZWQpKCJlbmRfb2ZfcGVyaW9kX3RpbWVzY2FsZV9tYXJrcyIpLGE9KDAsbi5pc0ZlYXR1cmVzZXRFbmFibGVkKSgic2Vjb25kYXJ5X3Nlcmllc19leHRlbmRfdGltZV9zY2FsZSIpO2Z1bmN0aW9uIGwoZSx0LHMpe3JldHVybiBuZXcgYyhmdW5jdGlvbihlLHQpe2NvbnN0IHM9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZSt0LnNlc3Npb24rdC50aW1lem9uZSsodC5jb3JyZWN0aW9uc3x8IiIpKyh0LnNlc3Npb25faG9saWRheXN8fCIiKX0oZSx0KTtsZXQgaT11LmdldChzKTt2b2lkIDA9PT1pJiYoaT0oMCxyLmNyZWF0ZUR3bUFsaWduZXIpKGUsdCksdS5zZXQocyxpKSk7cmV0dXJuIGl9KGUsdCkscyl9Y29uc3QgdT1uZXcgTWFwO2NsYXNzIGN7Y29uc3RydWN0b3IoZSx0KXt0aGlzLl9kd21BbGlnbmVyPWUsdGhpcy5fY2hhcnRNb2RlbD10fWNvbnZlcnRQdWJsaWNUaW1lVG9JbnRlcm5hbFRpbWUoZSl7cmV0dXJuIG51bGwhPT10aGlzLl9kd21BbGlnbmVyP3RoaXMuX2R3bUFsaWduZXIudGltZVRvU2Vzc2lvblN0YXJ0KDFlMyplKS8xZTM6ZX1jb252ZXJ0SW50ZXJuYWxUaW1lVG9QdWJsaWNUaW1lKGUpe3JldHVybiBudWxsIT09dGhpcy5fZHdtQWxpZ25lcj90aGlzLl9kd21BbGlnbmVyLnRpbWVUb0V4Y2hhbmdlVHJhZGluZ0RheSgxZTMqZSkvMWUzOmV9Y29udmVydFRpbWVQb2ludEluZGV4VG9QdWJsaWNUaW1lKGUpe2NvbnN0IHQ9dGhpcy5fY2hhcnRNb2RlbC50aW1lU2NhbGUoKTtpZih0LmlzRW1wdHkoKSlyZXR1cm4gbnVsbDtsZXQgcz1vP2Z1bmN0aW9uKGUsdCl7Y29uc3Qgcz1lLmluZGV4VG9Vc2VyVGltZSh0KTtpZihudWxsPT09cylyZXR1cm4gbnVsbDtyZXR1cm4gcy5nZXRUaW1lKCkvMWUzfSh0LGUpOnRoaXMuY29udmVydFRpbWVQb2ludEluZGV4VG9JbnRlcm5hbFRpbWUoZSk7aWYobnVsbCE9PXMpe2NvbnN0IHQ9dGhpcy5fY2hhcnRNb2RlbC5tYWluU2VyaWVzKCkuYmFycygpLGk9dC5jb250YWlucyhlKSxuPXQuZmlyc3RJbmRleCgpLHI9dC5sYXN0SW5kZXgoKTshaSYmKG51bGwhPT1uJiZudWxsIT09ciYmbjw9ZSYmZTw9cikmJmF8fChzPXRoaXMuY29udmVydEludGVybmFsVGltZVRvUHVibGljVGltZShzKSl9cmV0dXJuIHN9Y29udmVydFRpbWVQb2ludEluZGV4VG9JbnRlcm5hbFRpbWUoZSl7Y29uc3QgdD10aGlzLl9jaGFydE1vZGVsLnRpbWVTY2FsZSgpO2lmKHQuaXNFbXB0eSgpKXJldHVybiBudWxsO2NvbnN0IHM9dC5wb2ludHMoKSx7Zmlyc3RJbmRleDpuLGxhc3RJbmRleDpyfT0oMCxpLmVuc3VyZU5vdE51bGwpKHMucmFuZ2UoKS52YWx1ZSgpKTtsZXQgbz1udWxsO2lmKG48PWUmJmU8PXIpbz1zLnZhbHVlQXQoZSk7ZWxzZSBpZihlPnIpe2NvbnN0IHM9dGhpcy5fY2hhcnRNb2RlbC5tYWluU2VyaWVzKCkuc3luY01vZGVsKCk7aWYobnVsbCE9PXMpe2NvbnN0IG49KDAsaS5lbnN1cmVOb3ROdWxsKSh0LmluZGV4VG9UaW1lUG9pbnQocikpO289cy5wcm9qZWN0VGltZShuLGUtcil9fXJldHVybiBudWxsIT09byYmTnVtYmVyLmlzRmluaXRlKG8pP286bnVsbH19fSw0NzMzMTgoZSx0LHMpeyJ1c2Ugc3RyaWN0IjtzLmQodCx7d2FpdEZvck1vZGVsOigpPT5pfSk7Y29uc3QgaT1lPT5uZXcgUHJvbWlzZSgodD0+e2Uud2l0aE1vZGVsKG51bGwsKCgpPT57dChlLm1vZGVsKCkubW9kZWwoKSl9KSl9KSl9LDI3NzI1NyhlLHQscyl7InVzZSBzdHJpY3QiO3ZhciBpO3MuZCh0LHtNb3VzZUV2ZW50SGFuZGxlckRlbGF5OigpPT5pfSksZnVuY3Rpb24oZSl7ZVtlLlJlc2V0Q2xpY2s9NTAwXT0iUmVzZXRDbGljayIsZVtlLkxvbmdUYXA9MzMzXT0iTG9uZ1RhcCIsZVtlLlByZXZlbnRGaXJlc1RvdWNoRXZlbnRzPTUwMF09IlByZXZlbnRGaXJlc1RvdWNoRXZlbnRzIn0oaXx8KGk9e30pKX0sNjYzNChlLHQscyl7InVzZSBzdHJpY3QiO3Mucih0KSxzLmQodCx7TW91c2VFdmVudEhhbmRsZXI6KCk9PmYsTW91c2VFdmVudEhhbmRsZXJEZWxheTooKT0+aS5Nb3VzZUV2ZW50SGFuZGxlckRlbGF5LGRlZmF1bHRQcmV2ZW50ZWRIYW5kbGVyOigpPT5nLGdldENsaWNrUG9zaXRpb246KCk9Pm0saWdub3JlQ2xpY2tPclRhcE9uRGJsQ2xpY2tPckRibFRhcEhhbmRsZXJzOigpPT55LGlzVG91Y2hNb3VzZUV2ZW50OigpPT5ffSk7dmFyIGk9cygyNzcyNTcpLG49cyg4Mzk0MjYpLHI9cygxMzg2MzgpLG89cyg2MDE4NDEpLGE9cygzMTg5NzQpLGw9cyg1ODI0NzYpLHU9cyg2NzAyMTQpO2xldCBjPTI7Y29uc3QgZD1hLmlzU2FmYXJpPyJjbGljayI6ImF1eGNsaWNrIjt2YXIgaDshZnVuY3Rpb24oZSl7ZVtlLkNhbmNlbENsaWNrTWFuaGF0dGFuRGlzdGFuY2U9NV09IkNhbmNlbENsaWNrTWFuaGF0dGFuRGlzdGFuY2UiLGVbZS5DYW5jZWxUYXBNYW5oYXR0YW5EaXN0YW5jZT01XT0iQ2FuY2VsVGFwTWFuaGF0dGFuRGlzdGFuY2UiLGVbZS5Eb3VibGVDbGlja01hbmhhdHRhbkRpc3RhbmNlPTVdPSJEb3VibGVDbGlja01hbmhhdHRhbkRpc3RhbmNlIixlW2UuRG91YmxlVGFwTWFuaGF0dGFuRGlzdGFuY2U9MzBdPSJEb3VibGVUYXBNYW5oYXR0YW5EaXN0YW5jZSIKfShofHwoaD17fSkpO2NvbnN0IHA9e3RyZWF0VmVydFRvdWNoRHJhZ0FzUGFnZVNjcm9sbDohMSx0cmVhdEhvcnpUb3VjaERyYWdBc1BhZ2VTY3JvbGw6ITEsaWdub3JlQ2xpY2tBbmRUYXBPbkRibENsaWNrT3JEYmxUYXA6ITF9O2Z1bmN0aW9uIG0oZSl7aWYoXyhlKSlyZXR1cm57eDplLmNsaWVudFgseTplLmNsaWVudFl9O2lmKCJ0b3VjaGVzImluKHQ9ZSkmJnZvaWQgMCE9PXQudG91Y2hlcyl7aWYoMT09PWUudG91Y2hlcy5sZW5ndGgpe2NvbnN0IHQ9KDAsci5lbnN1cmVOb3ROdWxsKShlLnRhcmdldCkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkscz1lLnRvdWNoZXNbMF07cmV0dXJue3g6cy5jbGllbnRYLXQubGVmdCx5OnMuY2xpZW50WS10LnRvcH19cmV0dXJuIG51bGx9dmFyIHQ7cmV0dXJue3g6ZS5vZmZzZXRYLHk6ZS5vZmZzZXRZfX1mdW5jdGlvbiBfKGUpe3JldHVybiJpc1RvdWNoImluIGUmJiJzdHlsdXMiaW4gZX1mdW5jdGlvbiBnKGUpe3JldHVybiB0PT57dC5wcmV2ZW50RGVmYXVsdCgpLGUodCl9fWZ1bmN0aW9uIHkoZSx0KXtsZXQgcz0hMTtyZXR1cm57Y2xpY2tPclRhcDooLi4uaSk9Pnt0Py4oKT9lLmNsaWNrT3JUYXAoLi4uaSk6KHM9ITEsc2V0VGltZW91dCgoKCk9PiFzJiZlLmNsaWNrT3JUYXAoLi4uaSkpLDUwMSkpfSxkb3VibGVDbGlja09yRG91YmxlVGFwOiguLi50KT0+e3M9ITAsZS5kb3VibGVDbGlja09yRG91YmxlVGFwPy4oLi4udCl9fX1jbGFzcyBme2NvbnN0cnVjdG9yKGUsdCxzKXtpZih0aGlzLl9jbGlja0NvdW50PTAsdGhpcy5fY2xpY2tUaW1lb3V0SWQ9bnVsbCx0aGlzLl9jbGlja1Bvc2l0aW9uPXt4Ok51bWJlci5ORUdBVElWRV9JTkZJTklUWSx5Ok51bWJlci5QT1NJVElWRV9JTkZJTklUWX0sdGhpcy5fdGFwQ291bnQ9MCx0aGlzLl90YXBUaW1lb3V0SWQ9bnVsbCx0aGlzLl90YXBQb3NpdGlvbj17eDpOdW1iZXIuTkVHQVRJVkVfSU5GSU5JVFkseTpOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFl9LHRoaXMuX2xvbmdUYXBUaW1lb3V0SWQ9bnVsbCx0aGlzLl9sb25nVGFwQWN0aXZlPSExLHRoaXMuX21vdXNlTW92ZVN0YXJ0UG9zaXRpb249bnVsbCx0aGlzLl90b3VjaE1vdmVTdGFydFBvc2l0aW9uPW51bGwsdGhpcy5fdG91Y2hNb3ZlRXhjZWVkZWRNYW5oYXR0YW5EaXN0YW5jZT0hMSx0aGlzLl9jYW5jZWxDbGljaz0hMSx0aGlzLl9jYW5jZWxUYXA9ITEsdGhpcy5fdW5zdWJzY3JpYmVPdXRzaWRlTW91c2VFdmVudHM9bnVsbCx0aGlzLl91bnN1YnNjcmliZU91dHNpZGVUb3VjaEV2ZW50cz1udWxsLHRoaXMuX3Vuc3Vic2NyaWJlTW9iaWxlU2FmYXJpRXZlbnRzPW51bGwsdGhpcy5fdW5zdWJzY3JpYmVNb3VzZW1vdmU9bnVsbCx0aGlzLl91bnN1YnNjcmliZVJvb3RNb3VzZUV2ZW50cz1udWxsLHRoaXMuX3Vuc3Vic2NyaWJlUm9vdFRvdWNoRXZlbnRzPW51bGwsdGhpcy5fdW5zdWJzY3JpYmVQaW5jaEV2ZW50cz1udWxsLHRoaXMuX3Vuc3Vic2NyaWJlVGFyZ2V0RWxlbWVudEV2ZW50cz1udWxsLHRoaXMuX3BpbmNoSW5mbz1udWxsLHRoaXMuX3BpbmNoUHJldmVudGVkPSExLHRoaXMuX3ByZXZlbnRUb3VjaERyYWdQcm9jZXNzPSExLHRoaXMuX21vdXNlUHJlc3NlZD0hMSx0aGlzLl9sYXN0VG91Y2hFdmVudFRpbWVTdGFtcD0wLHRoaXMuX2FjdGl2ZVRvdWNoSWQ9bnVsbCx0aGlzLl9hY2NlcHRNb3VzZUxlYXZlPSFhLkNoZWNrTW9iaWxlLmlPUygpLHRoaXMuX29uRmlyZWZveE91dHNpZGVNb3VzZVVwPWU9Pnt0aGlzLl9tb3VzZVVwSGFuZGxlcihlKX0sdGhpcy5fb25Nb2JpbGVTYWZhcmlEb3VibGVDbGljaz1lPT57aWYodGhpcy5fZmlyZXNUb3VjaEV2ZW50cyhlKSl7Y29uc3QgdD10aGlzLl9tYWtlQ29tcGF0RXZlbnQoZSk7aWYoKyt0aGlzLl90YXBDb3VudCx0aGlzLl90YXBUaW1lb3V0SWQmJnRoaXMuX3RhcENvdW50PjEpe2NvbnN0e21hbmhhdHRhbkRpc3RhbmNlOnN9PXRoaXMuX3RvdWNoTW91c2VNb3ZlV2l0aERvd25JbmZvKGIoZSksdGhpcy5fdGFwUG9zaXRpb24pO3M8MzAmJiF0aGlzLl9jYW5jZWxUYXAmJnRoaXMuX3Byb2Nlc3NUb3VjaEV2ZW50KHQsdGhpcy5faGFuZGxlcnMuZG91YmxlVGFwRXZlbnQpLHRoaXMuX3Jlc2V0VGFwVGltZW91dCgpfX1lbHNle2NvbnN0IHQ9dGhpcy5fbWFrZUNvbXBhdEV2ZW50KGUpO2lmKCsrdGhpcy5fY2xpY2tDb3VudCx0aGlzLl9jbGlja1RpbWVvdXRJZCYmdGhpcy5fY2xpY2tDb3VudD4xKXtjb25zdHttYW5oYXR0YW5EaXN0YW5jZTpzfT10aGlzLl90b3VjaE1vdXNlTW92ZVdpdGhEb3duSW5mbyhiKGUpLHRoaXMuX2NsaWNrUG9zaXRpb24pO3M8NSYmIXRoaXMuX2NhbmNlbENsaWNrJiZ0aGlzLl9wcm9jZXNzTW91c2VFdmVudCh0LHRoaXMuX2hhbmRsZXJzLm1vdXNlRG91YmxlQ2xpY2tFdmVudCksdGhpcy5fcmVzZXRDbGlja1RpbWVvdXQoKX19fSx0aGlzLl90YXJnZXQ9ZSx0aGlzLl9vcHRpb25zPSgwLG8ubWVyZ2UpKCgwLG8uY2xvbmUpKHApLHN8fHt9KSx0aGlzLl9vcHRpb25zLmlnbm9yZUNsaWNrQW5kVGFwT25EYmxDbGlja09yRGJsVGFwKXtpZih0Lm1vdXNlQ2xpY2tFdmVudCYmdC5tb3VzZURvdWJsZUNsaWNrRXZlbnQpe2NvbnN0IGU9eSh7Y2xpY2tPclRhcDp0Lm1vdXNlQ2xpY2tFdmVudC5iaW5kKHQpLGRvdWJsZUNsaWNrT3JEb3VibGVUYXA6dC5tb3VzZURvdWJsZUNsaWNrRXZlbnQuYmluZCh0KX0pO3QubW91c2VDbGlja0V2ZW50PWUuY2xpY2tPclRhcCx0Lm1vdXNlRG91YmxlQ2xpY2tFdmVudD1lLmRvdWJsZUNsaWNrT3JEb3VibGVUYXB9aWYodC50YXBFdmVudCYmdC5kb3VibGVUYXBFdmVudCl7Y29uc3QgZT15KHtjbGlja09yVGFwOnQudGFwRXZlbnQuYmluZCh0KSxkb3VibGVDbGlja09yRG91YmxlVGFwOnQuZG91YmxlVGFwRXZlbnQuYmluZCh0KX0pO3QudGFwRXZlbnQ9ZS5jbGlja09yVGFwLHQuZG91YmxlVGFwRXZlbnQ9ZS5kb3VibGVDbGlja09yRG91YmxlVGFwfX10aGlzLl9oYW5kbGVycz10LHRoaXMuX2luaXQoKX1kZXN0cm95KCl7bnVsbCE9PXRoaXMuX3Vuc3Vic2NyaWJlT3V0c2lkZU1vdXNlRXZlbnRzJiYodGhpcy5fdW5zdWJzY3JpYmVPdXRzaWRlTW91c2VFdmVudHMoKSwKdGhpcy5fdW5zdWJzY3JpYmVPdXRzaWRlTW91c2VFdmVudHM9bnVsbCksbnVsbCE9PXRoaXMuX3Vuc3Vic2NyaWJlT3V0c2lkZVRvdWNoRXZlbnRzJiYodGhpcy5fdW5zdWJzY3JpYmVPdXRzaWRlVG91Y2hFdmVudHMoKSx0aGlzLl91bnN1YnNjcmliZU91dHNpZGVUb3VjaEV2ZW50cz1udWxsKSxudWxsIT09dGhpcy5fdW5zdWJzY3JpYmVNb3VzZW1vdmUmJih0aGlzLl91bnN1YnNjcmliZU1vdXNlbW92ZSgpLHRoaXMuX3Vuc3Vic2NyaWJlTW91c2Vtb3ZlPW51bGwpLG51bGwhPT10aGlzLl91bnN1YnNjcmliZVJvb3RNb3VzZUV2ZW50cyYmKHRoaXMuX3Vuc3Vic2NyaWJlUm9vdE1vdXNlRXZlbnRzKCksdGhpcy5fdW5zdWJzY3JpYmVSb290TW91c2VFdmVudHM9bnVsbCksbnVsbCE9PXRoaXMuX3Vuc3Vic2NyaWJlUm9vdFRvdWNoRXZlbnRzJiYodGhpcy5fdW5zdWJzY3JpYmVSb290VG91Y2hFdmVudHMoKSx0aGlzLl91bnN1YnNjcmliZVJvb3RUb3VjaEV2ZW50cz1udWxsKSxudWxsIT09dGhpcy5fdW5zdWJzY3JpYmVNb2JpbGVTYWZhcmlFdmVudHMmJih0aGlzLl91bnN1YnNjcmliZU1vYmlsZVNhZmFyaUV2ZW50cygpLHRoaXMuX3Vuc3Vic2NyaWJlTW9iaWxlU2FmYXJpRXZlbnRzPW51bGwpLG51bGwhPT10aGlzLl91bnN1YnNjcmliZVBpbmNoRXZlbnRzJiYodGhpcy5fdW5zdWJzY3JpYmVQaW5jaEV2ZW50cygpLHRoaXMuX3Vuc3Vic2NyaWJlUGluY2hFdmVudHM9bnVsbCksbnVsbCE9PXRoaXMuX3Vuc3Vic2NyaWJlVGFyZ2V0RWxlbWVudEV2ZW50cyYmKHRoaXMuX3Vuc3Vic2NyaWJlVGFyZ2V0RWxlbWVudEV2ZW50cygpLHRoaXMuX3Vuc3Vic2NyaWJlVGFyZ2V0RWxlbWVudEV2ZW50cz1udWxsKSx0aGlzLl9jbGVhckxvbmdUYXBUaW1lb3V0KCksdGhpcy5fcmVzZXRDbGlja1RpbWVvdXQoKX1fbW91c2VFbnRlckhhbmRsZXIoZSl7dGhpcy5fdW5zdWJzY3JpYmVNb3VzZW1vdmUmJnRoaXMuX3Vuc3Vic2NyaWJlTW91c2Vtb3ZlKCk7Y29uc3QgdD10aGlzLl9tb3VzZU1vdmVIYW5kbGVyLmJpbmQodGhpcyk7aWYodGhpcy5fdW5zdWJzY3JpYmVNb3VzZW1vdmU9KCk9Pnt0aGlzLl90YXJnZXQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIix0KX0sdGhpcy5fdGFyZ2V0LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIsdCksdGhpcy5fZmlyZXNUb3VjaEV2ZW50cyhlKSlyZXR1cm47Y29uc3Qgcz10aGlzLl9tYWtlQ29tcGF0RXZlbnQoZSk7dGhpcy5fcHJvY2Vzc01vdXNlRXZlbnQocyx0aGlzLl9oYW5kbGVycy5tb3VzZUVudGVyRXZlbnQpLHRoaXMuX2FjY2VwdE1vdXNlTGVhdmU9ITB9X3Jlc2V0Q2xpY2tUaW1lb3V0KCl7bnVsbCE9PXRoaXMuX2NsaWNrVGltZW91dElkJiZjbGVhclRpbWVvdXQodGhpcy5fY2xpY2tUaW1lb3V0SWQpLHRoaXMuX2NsaWNrQ291bnQ9MCx0aGlzLl9jbGlja1RpbWVvdXRJZD1udWxsLHRoaXMuX2NsaWNrUG9zaXRpb249e3g6TnVtYmVyLk5FR0FUSVZFX0lORklOSVRZLHk6TnVtYmVyLlBPU0lUSVZFX0lORklOSVRZfX1fcmVzZXRUYXBUaW1lb3V0KCl7bnVsbCE9PXRoaXMuX3RhcFRpbWVvdXRJZCYmY2xlYXJUaW1lb3V0KHRoaXMuX3RhcFRpbWVvdXRJZCksdGhpcy5fdGFwQ291bnQ9MCx0aGlzLl90YXBUaW1lb3V0SWQ9bnVsbCx0aGlzLl90YXBQb3NpdGlvbj17eDpOdW1iZXIuTkVHQVRJVkVfSU5GSU5JVFkseTpOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFl9fV9tb3VzZU1vdmVIYW5kbGVyKGUpe2lmKHRoaXMuX21vdXNlUHJlc3NlZHx8bnVsbCE9PXRoaXMuX3RvdWNoTW92ZVN0YXJ0UG9zaXRpb24pcmV0dXJuO2lmKHRoaXMuX2ZpcmVzVG91Y2hFdmVudHMoZSkpcmV0dXJuO2NvbnN0IHQ9dGhpcy5fbWFrZUNvbXBhdEV2ZW50KGUpO3RoaXMuX3Byb2Nlc3NNb3VzZUV2ZW50KHQsdGhpcy5faGFuZGxlcnMubW91c2VNb3ZlRXZlbnQpLHRoaXMuX2FjY2VwdE1vdXNlTGVhdmU9ITB9X3RvdWNoTW92ZUhhbmRsZXIoZSl7Y29uc3QgdD1QKGUuY2hhbmdlZFRvdWNoZXMsKDAsci5lbnN1cmVOb3ROdWxsKSh0aGlzLl9hY3RpdmVUb3VjaElkKSk7aWYobnVsbD09PXQpcmV0dXJuO2lmKHRoaXMuX2xhc3RUb3VjaEV2ZW50VGltZVN0YW1wPXcoZSksbnVsbCE9PXRoaXMuX3BpbmNoSW5mbylyZXR1cm47aWYodGhpcy5fcHJldmVudFRvdWNoRHJhZ1Byb2Nlc3MpcmV0dXJuO3RoaXMuX3BpbmNoUHJldmVudGVkPSEwO2NvbnN0IHM9dGhpcy5fdG91Y2hNb3VzZU1vdmVXaXRoRG93bkluZm8oYih0KSwoMCxyLmVuc3VyZU5vdE51bGwpKHRoaXMuX3RvdWNoTW92ZVN0YXJ0UG9zaXRpb24pKSx7eE9mZnNldDppLHlPZmZzZXQ6bixtYW5oYXR0YW5EaXN0YW5jZTpvfT1zO2lmKHRoaXMuX3RvdWNoTW92ZUV4Y2VlZGVkTWFuaGF0dGFuRGlzdGFuY2V8fCEobzw1KSl7aWYoIXRoaXMuX3RvdWNoTW92ZUV4Y2VlZGVkTWFuaGF0dGFuRGlzdGFuY2Upe2NvbnN0IGU9LjUqaSx0PXRoaXMuX29wdGlvbnMuc2hvdWxkQWxsb3dUb3VjaERyYWc/LigpPz8hMSxzPW4+PWUmJighdGhpcy5fb3B0aW9ucy50cmVhdFZlcnRUb3VjaERyYWdBc1BhZ2VTY3JvbGx8fHQpLHI9ZT5uJiYoIXRoaXMuX29wdGlvbnMudHJlYXRIb3J6VG91Y2hEcmFnQXNQYWdlU2Nyb2xsfHx0KTtzfHxyfHwodGhpcy5fcHJldmVudFRvdWNoRHJhZ1Byb2Nlc3M9ITApLHRoaXMuX3RvdWNoTW92ZUV4Y2VlZGVkTWFuaGF0dGFuRGlzdGFuY2U9ITAsdGhpcy5fY2FuY2VsVGFwPSEwLHRoaXMuX2NsZWFyTG9uZ1RhcFRpbWVvdXQoKSx0aGlzLl9yZXNldFRhcFRpbWVvdXQoKX1pZighdGhpcy5fcHJldmVudFRvdWNoRHJhZ1Byb2Nlc3Mpe2NvbnN0IHM9dGhpcy5fbWFrZUNvbXBhdEV2ZW50KGUsdCk7dGhpcy5fcHJvY2Vzc1RvdWNoRXZlbnQocyx0aGlzLl9oYW5kbGVycy50b3VjaE1vdmVFdmVudCksKDAsbC5wcmV2ZW50RGVmYXVsdCkoZSl9fX1fbW91c2VNb3ZlV2l0aERvd25IYW5kbGVyKGUpe2lmKDAhPT1lLmJ1dHRvbilyZXR1cm47Y29uc3QgdD10aGlzLl90b3VjaE1vdXNlTW92ZVdpdGhEb3duSW5mbyhiKGUpLCgwLApyLmVuc3VyZU5vdE51bGwpKHRoaXMuX21vdXNlTW92ZVN0YXJ0UG9zaXRpb24pKSx7bWFuaGF0dGFuRGlzdGFuY2U6c309dDtpZihzPj01JiYodGhpcy5fY2FuY2VsQ2xpY2s9ITAsdGhpcy5fcmVzZXRDbGlja1RpbWVvdXQoKSksdGhpcy5fY2FuY2VsQ2xpY2spe2NvbnN0IHQ9dGhpcy5fbWFrZUNvbXBhdEV2ZW50KGUpO3RoaXMuX3Byb2Nlc3NNb3VzZUV2ZW50KHQsdGhpcy5faGFuZGxlcnMucHJlc3NlZE1vdXNlTW92ZUV2ZW50KX19X3RvdWNoTW91c2VNb3ZlV2l0aERvd25JbmZvKGUsdCl7Y29uc3Qgcz1NYXRoLmFicyh0LngtZS54KSxpPU1hdGguYWJzKHQueS1lLnkpO3JldHVybnt4T2Zmc2V0OnMseU9mZnNldDppLG1hbmhhdHRhbkRpc3RhbmNlOnMraX19X3RvdWNoRW5kSGFuZGxlcihlKXtsZXQgdD1QKGUuY2hhbmdlZFRvdWNoZXMsKDAsci5lbnN1cmVOb3ROdWxsKSh0aGlzLl9hY3RpdmVUb3VjaElkKSk7aWYobnVsbD09PXQmJjA9PT1lLnRvdWNoZXMubGVuZ3RoJiYodD1lLmNoYW5nZWRUb3VjaGVzWzBdKSxudWxsPT09dClyZXR1cm47dGhpcy5fYWN0aXZlVG91Y2hJZD1udWxsLHRoaXMuX2xhc3RUb3VjaEV2ZW50VGltZVN0YW1wPXcoZSksdGhpcy5fY2xlYXJMb25nVGFwVGltZW91dCgpLHRoaXMuX3RvdWNoTW92ZVN0YXJ0UG9zaXRpb249bnVsbCx0aGlzLl91bnN1YnNjcmliZVJvb3RUb3VjaEV2ZW50cyYmKHRoaXMuX3Vuc3Vic2NyaWJlUm9vdFRvdWNoRXZlbnRzKCksdGhpcy5fdW5zdWJzY3JpYmVSb290VG91Y2hFdmVudHM9bnVsbCk7Y29uc3Qgcz10aGlzLl9tYWtlQ29tcGF0RXZlbnQoZSx0KTtpZih0aGlzLl9wcm9jZXNzVG91Y2hFdmVudChzLHRoaXMuX2hhbmRsZXJzLnRvdWNoRW5kRXZlbnQpLCsrdGhpcy5fdGFwQ291bnQsdGhpcy5fdGFwVGltZW91dElkJiZ0aGlzLl90YXBDb3VudD4xKXtjb25zdHttYW5oYXR0YW5EaXN0YW5jZTplfT10aGlzLl90b3VjaE1vdXNlTW92ZVdpdGhEb3duSW5mbyhiKHQpLHRoaXMuX3RhcFBvc2l0aW9uKTtlPDMwJiYhdGhpcy5fY2FuY2VsVGFwJiZ0aGlzLl9wcm9jZXNzVG91Y2hFdmVudChzLHRoaXMuX2hhbmRsZXJzLmRvdWJsZVRhcEV2ZW50KSx0aGlzLl9yZXNldFRhcFRpbWVvdXQoKX1lbHNlIHRoaXMuX2NhbmNlbFRhcHx8KHRoaXMuX3Byb2Nlc3NUb3VjaEV2ZW50KHMsdGhpcy5faGFuZGxlcnMudGFwRXZlbnQpLHRoaXMuX2hhbmRsZXJzLnRhcEV2ZW50JiYoMCxsLnByZXZlbnREZWZhdWx0KShlKSk7MD09PXRoaXMuX3RhcENvdW50JiYoMCxsLnByZXZlbnREZWZhdWx0KShlKSwwPT09ZS50b3VjaGVzLmxlbmd0aCYmdGhpcy5fbG9uZ1RhcEFjdGl2ZSYmKHRoaXMuX2xvbmdUYXBBY3RpdmU9ITEsKDAsbC5wcmV2ZW50RGVmYXVsdCkoZSkpfV90b3VjaENhbmNlbEhhbmRsZXIoZSl7dGhpcy5fdG91Y2hFbmRIYW5kbGVyKGUpfV9tb3VzZVVwSGFuZGxlcihlKXtpZigwIT09ZS5idXR0b24pcmV0dXJuO2NvbnN0IHQ9dGhpcy5fbWFrZUNvbXBhdEV2ZW50KGUpO2lmKHRoaXMuX21vdXNlTW92ZVN0YXJ0UG9zaXRpb249bnVsbCx0aGlzLl9tb3VzZVByZXNzZWQ9ITEsdGhpcy5fdW5zdWJzY3JpYmVSb290TW91c2VFdmVudHMmJih0aGlzLl91bnN1YnNjcmliZVJvb3RNb3VzZUV2ZW50cygpLHRoaXMuX3Vuc3Vic2NyaWJlUm9vdE1vdXNlRXZlbnRzPW51bGwpLGEuaXNGRil7dGhpcy5fdGFyZ2V0Lm93bmVyRG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlbGVhdmUiLHRoaXMuX29uRmlyZWZveE91dHNpZGVNb3VzZVVwKX1pZighdGhpcy5fZmlyZXNUb3VjaEV2ZW50cyhlKSlpZih0aGlzLl9wcm9jZXNzTW91c2VFdmVudCh0LHRoaXMuX2hhbmRsZXJzLm1vdXNlVXBFdmVudCksKyt0aGlzLl9jbGlja0NvdW50LHRoaXMuX2NsaWNrVGltZW91dElkJiZ0aGlzLl9jbGlja0NvdW50PjEpe2NvbnN0e21hbmhhdHRhbkRpc3RhbmNlOnN9PXRoaXMuX3RvdWNoTW91c2VNb3ZlV2l0aERvd25JbmZvKGIoZSksdGhpcy5fY2xpY2tQb3NpdGlvbik7czw1JiYhdGhpcy5fY2FuY2VsQ2xpY2smJnRoaXMuX3Byb2Nlc3NNb3VzZUV2ZW50KHQsdGhpcy5faGFuZGxlcnMubW91c2VEb3VibGVDbGlja0V2ZW50KSx0aGlzLl9yZXNldENsaWNrVGltZW91dCgpfWVsc2UgdGhpcy5fY2FuY2VsQ2xpY2t8fHRoaXMuX3Byb2Nlc3NNb3VzZUV2ZW50KHQsdGhpcy5faGFuZGxlcnMubW91c2VDbGlja0V2ZW50KX1fY2xlYXJMb25nVGFwVGltZW91dCgpe251bGwhPT10aGlzLl9sb25nVGFwVGltZW91dElkJiYoY2xlYXJUaW1lb3V0KHRoaXMuX2xvbmdUYXBUaW1lb3V0SWQpLHRoaXMuX2xvbmdUYXBUaW1lb3V0SWQ9bnVsbCl9X3RvdWNoU3RhcnRIYW5kbGVyKGUpe2lmKG51bGwhPT10aGlzLl9hY3RpdmVUb3VjaElkKXJldHVybiB0aGlzLl9jbGVhckxvbmdUYXBUaW1lb3V0KCksdm9pZCB0aGlzLl9yZXNldFRhcFRpbWVvdXQoKTtjb25zdCB0PWUuY2hhbmdlZFRvdWNoZXNbMF07dGhpcy5fYWN0aXZlVG91Y2hJZD10LmlkZW50aWZpZXIsdGhpcy5fbGFzdFRvdWNoRXZlbnRUaW1lU3RhbXA9dyhlKTtjb25zdCBzPXRoaXMuX3RhcmdldC5vd25lckRvY3VtZW50LmRvY3VtZW50RWxlbWVudDt0aGlzLl9jYW5jZWxUYXA9ITEsdGhpcy5fdG91Y2hNb3ZlRXhjZWVkZWRNYW5oYXR0YW5EaXN0YW5jZT0hMSx0aGlzLl9wcmV2ZW50VG91Y2hEcmFnUHJvY2Vzcz0hMSx0aGlzLl90b3VjaE1vdmVTdGFydFBvc2l0aW9uPWIodCksdGhpcy5fdW5zdWJzY3JpYmVSb290VG91Y2hFdmVudHMmJih0aGlzLl91bnN1YnNjcmliZVJvb3RUb3VjaEV2ZW50cygpLHRoaXMuX3Vuc3Vic2NyaWJlUm9vdFRvdWNoRXZlbnRzPW51bGwpO3tjb25zdCB0PXRoaXMuX3RvdWNoTW92ZUhhbmRsZXIuYmluZCh0aGlzKSxpPXRoaXMuX3RvdWNoRW5kSGFuZGxlci5iaW5kKHRoaXMpO3RoaXMuX3Vuc3Vic2NyaWJlUm9vdFRvdWNoRXZlbnRzPSgpPT57cy5yZW1vdmVFdmVudExpc3RlbmVyKCJ0b3VjaG1vdmUiLHQpLHMucmVtb3ZlRXZlbnRMaXN0ZW5lcigidG91Y2hlbmQiLGkpfSxzLmFkZEV2ZW50TGlzdGVuZXIoInRvdWNobW92ZSIsdCx7cGFzc2l2ZTohMX0pLApzLmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoZW5kIixpLHtwYXNzaXZlOiExfSksdGhpcy5fY2xlYXJMb25nVGFwVGltZW91dCgpLHRoaXMuX2xvbmdUYXBUaW1lb3V0SWQ9c2V0VGltZW91dCh0aGlzLl9sb25nVGFwSGFuZGxlci5iaW5kKHRoaXMsZSksMzMzKX1jb25zdCBpPXRoaXMuX21ha2VDb21wYXRFdmVudChlLHQpO3RoaXMuX3Byb2Nlc3NUb3VjaEV2ZW50KGksdGhpcy5faGFuZGxlcnMudG91Y2hTdGFydEV2ZW50KSx0aGlzLl90YXBUaW1lb3V0SWR8fCh0aGlzLl90YXBDb3VudD0wLHRoaXMuX3RhcFRpbWVvdXRJZD1zZXRUaW1lb3V0KHRoaXMuX3Jlc2V0VGFwVGltZW91dC5iaW5kKHRoaXMpLDUwMCksdGhpcy5fdGFwUG9zaXRpb249Yih0KSl9X3doZWVsQ2xpY2tIYW5kbGVyKGUpe2lmKDEhPT1lLmJ1dHRvbilyZXR1cm47aWYodGhpcy5fZmlyZXNUb3VjaEV2ZW50cyhlKSlyZXR1cm47Y29uc3QgdD10aGlzLl9tYWtlQ29tcGF0RXZlbnQoZSk7dGhpcy5fcHJvY2Vzc01vdXNlRXZlbnQodCx0aGlzLl9oYW5kbGVycy53aGVlbENsaWNrRXZlbnQpfV9tb3VzZURvd25IYW5kbGVyKGUpe2lmKDAhPT1lLmJ1dHRvbilyZXR1cm47Y29uc3QgdD10aGlzLl90YXJnZXQub3duZXJEb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7YS5pc0ZGJiZ0LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlbGVhdmUiLHRoaXMuX29uRmlyZWZveE91dHNpZGVNb3VzZVVwKSx0aGlzLl9jYW5jZWxDbGljaz0hMSx0aGlzLl9tb3VzZU1vdmVTdGFydFBvc2l0aW9uPWIoZSksdGhpcy5fdW5zdWJzY3JpYmVSb290TW91c2VFdmVudHMmJih0aGlzLl91bnN1YnNjcmliZVJvb3RNb3VzZUV2ZW50cygpLHRoaXMuX3Vuc3Vic2NyaWJlUm9vdE1vdXNlRXZlbnRzPW51bGwpO3tjb25zdCBlPXRoaXMuX21vdXNlTW92ZVdpdGhEb3duSGFuZGxlci5iaW5kKHRoaXMpLHM9dGhpcy5fbW91c2VVcEhhbmRsZXIuYmluZCh0aGlzKTt0aGlzLl91bnN1YnNjcmliZVJvb3RNb3VzZUV2ZW50cz0oKT0+e3QucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIixlKSx0LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLHMpfSx0LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIsZSksdC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZXVwIixzKX1pZih0aGlzLl9tb3VzZVByZXNzZWQ9ITAsdGhpcy5fZmlyZXNUb3VjaEV2ZW50cyhlKSlyZXR1cm47Y29uc3Qgcz10aGlzLl9tYWtlQ29tcGF0RXZlbnQoZSk7dGhpcy5fcHJvY2Vzc01vdXNlRXZlbnQocyx0aGlzLl9oYW5kbGVycy5tb3VzZURvd25FdmVudCksdGhpcy5fY2xpY2tUaW1lb3V0SWR8fCh0aGlzLl9jbGlja0NvdW50PTAsdGhpcy5fY2xpY2tUaW1lb3V0SWQ9c2V0VGltZW91dCh0aGlzLl9yZXNldENsaWNrVGltZW91dC5iaW5kKHRoaXMpLDUwMCksdGhpcy5fY2xpY2tQb3NpdGlvbj1iKGUpKX1faW5pdCgpe2NvbnN0IGU9dGhpcy5fbW91c2VFbnRlckhhbmRsZXIuYmluZCh0aGlzKTt0aGlzLl90YXJnZXQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2VlbnRlciIsZSk7Y29uc3QgdD10aGlzLl90b3VjaENhbmNlbEhhbmRsZXIuYmluZCh0aGlzKTt0aGlzLl90YXJnZXQuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hjYW5jZWwiLHQpO3tjb25zdCBlPXRoaXMuX3RhcmdldC5vd25lckRvY3VtZW50LHQ9ZT0+IWUudGFyZ2V0fHwhdGhpcy5fdGFyZ2V0LmNvbnRhaW5zKGUudGFyZ2V0KSxzPWU9PntpZighdChlKSlyZXR1cm47Y29uc3Qgcz1lLmNoYW5nZWRUb3VjaGVzWzBdO3RoaXMuX2xhc3RUb3VjaEV2ZW50VGltZVN0YW1wPXcoZSksdGhpcy5fcHJvY2Vzc1RvdWNoRXZlbnQodGhpcy5fbWFrZUNvbXBhdEV2ZW50KGUscyksdGhpcy5faGFuZGxlcnMudG91Y2hTdGFydE91dHNpZGVFdmVudCl9LGk9ZT0+e3QoZSkmJiF0aGlzLl9maXJlc1RvdWNoRXZlbnRzKGUpJiZ0aGlzLl9wcm9jZXNzTW91c2VFdmVudCh0aGlzLl9tYWtlQ29tcGF0RXZlbnQoZSksdGhpcy5faGFuZGxlcnMubW91c2VEb3duT3V0c2lkZUV2ZW50KX07dGhpcy5fdW5zdWJzY3JpYmVPdXRzaWRlVG91Y2hFdmVudHM9KCk9PntlLnJlbW92ZUV2ZW50TGlzdGVuZXIoInRvdWNoc3RhcnQiLHMpfSx0aGlzLl91bnN1YnNjcmliZU91dHNpZGVNb3VzZUV2ZW50cz0oKT0+e2UucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2Vkb3duIixpKX0sZS5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWRvd24iLGkpLGUuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hzdGFydCIscyx7cGFzc2l2ZTohMH0pfWEuQ2hlY2tNb2JpbGUuaU9TKCkmJih0aGlzLl91bnN1YnNjcmliZU1vYmlsZVNhZmFyaUV2ZW50cz0oKT0+e3RoaXMuX3RhcmdldC5yZW1vdmVFdmVudExpc3RlbmVyKCJkYmxjbGljayIsdGhpcy5fb25Nb2JpbGVTYWZhcmlEb3VibGVDbGljayl9LHRoaXMuX3RhcmdldC5hZGRFdmVudExpc3RlbmVyKCJkYmxjbGljayIsdGhpcy5fb25Nb2JpbGVTYWZhcmlEb3VibGVDbGljaykpO2NvbnN0IHM9dGhpcy5fbW91c2VMZWF2ZUhhbmRsZXIuYmluZCh0aGlzKTt0aGlzLl90YXJnZXQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2VsZWF2ZSIscyk7Y29uc3QgaT10aGlzLl9jb250ZXh0TWVudUhhbmRsZXIuYmluZCh0aGlzKTt0aGlzLl90YXJnZXQuYWRkRXZlbnRMaXN0ZW5lcigiY29udGV4dG1lbnUiLGkpO2NvbnN0IG49dGhpcy5fdG91Y2hTdGFydEhhbmRsZXIuYmluZCh0aGlzKTtsZXQgcjt0aGlzLl90YXJnZXQuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hzdGFydCIsbix7cGFzc2l2ZTohMH0pLGEuaXNDaHJvbWUmJihyPWU9PntpZigxPT09ZS5idXR0b24pcmV0dXJuIGUucHJldmVudERlZmF1bHQoKSwhMX0sdGhpcy5fdGFyZ2V0LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIscikpO2NvbnN0IG89dGhpcy5fbW91c2VEb3duSGFuZGxlci5iaW5kKHRoaXMpO3RoaXMuX3RhcmdldC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWRvd24iLG8pO2NvbnN0IGw9dGhpcy5fd2hlZWxDbGlja0hhbmRsZXIuYmluZCh0aGlzKTt0aGlzLl90YXJnZXQuYWRkRXZlbnRMaXN0ZW5lcihkLGwpO2NvbnN0IHU9KCk9Pnt9Cjt0aGlzLl90YXJnZXQuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2htb3ZlIix1LHtwYXNzaXZlOiExfSksdGhpcy5fdW5zdWJzY3JpYmVUYXJnZXRFbGVtZW50RXZlbnRzPSgpPT57dGhpcy5fdGFyZ2V0LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlbGVhdmUiLHMpLHRoaXMuX3RhcmdldC5yZW1vdmVFdmVudExpc3RlbmVyKCJjb250ZXh0bWVudSIsaSksdGhpcy5fdGFyZ2V0LnJlbW92ZUV2ZW50TGlzdGVuZXIoInRvdWNoc3RhcnQiLG4pLHImJnRoaXMuX3RhcmdldC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZWRvd24iLHIpLHRoaXMuX3RhcmdldC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZWRvd24iLG8pLHRoaXMuX3RhcmdldC5yZW1vdmVFdmVudExpc3RlbmVyKGQsbCksdGhpcy5fdGFyZ2V0LnJlbW92ZUV2ZW50TGlzdGVuZXIoInRvdWNobW92ZSIsdSl9LHRoaXMuX2luaXRQaW5jaCgpfV9pbml0UGluY2goKXtpZih2b2lkIDA9PT10aGlzLl9oYW5kbGVycy5waW5jaFN0YXJ0RXZlbnQmJnZvaWQgMD09PXRoaXMuX2hhbmRsZXJzLnBpbmNoRXZlbnQmJnZvaWQgMD09PXRoaXMuX2hhbmRsZXJzLnBpbmNoRW5kRXZlbnQpcmV0dXJuO2NvbnN0IGU9ZT0+dGhpcy5fY2hlY2tQaW5jaFN0YXRlKGUudG91Y2hlcyk7dGhpcy5fdGFyZ2V0LmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoc3RhcnQiLGUse3Bhc3NpdmU6ITB9KTtjb25zdCB0PWU9PntpZihudWxsPT09dGhpcy5fcGluY2hJbmZvKXJldHVybjtjb25zdCB0PVAoZS50b3VjaGVzLCgwLHIuZW5zdXJlTm90TnVsbCkodGhpcy5fYWN0aXZlVG91Y2hJZCkpLHM9UChlLnRvdWNoZXMsdGhpcy5fcGluY2hJbmZvLnNlY29uZFRvdWNoSWQpO2lmKHQmJnMmJnZvaWQgMCE9PXRoaXMuX2hhbmRsZXJzLnBpbmNoRXZlbnQpe2NvbnN0e3N0YXJ0UGluY2hEaXN0YW5jZTppLHN0YXJ0UGluY2hNaWRkbGVQb2ludDpufT10aGlzLl9waW5jaEluZm8scj1TKHQscykvaSxvPXYodGhpcy5fdGFyZ2V0KTt0aGlzLl9oYW5kbGVycy5waW5jaEV2ZW50KG4se3g6dC5jbGllbnRYLW8ubGVmdCx5OnQuY2xpZW50WS1vLnRvcH0se3g6cy5jbGllbnRYLW8ubGVmdCx5OnMuY2xpZW50WS1vLnRvcH0sciksKDAsbC5wcmV2ZW50RGVmYXVsdCkoZSl9fTt0aGlzLl90YXJnZXQuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2htb3ZlIix0LHtwYXNzaXZlOiExfSk7Y29uc3Qgcz1lPT50aGlzLl9jaGVja1BpbmNoU3RhdGUoZS50b3VjaGVzKTt0aGlzLl90YXJnZXQuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hlbmQiLHMpLHRoaXMuX3Vuc3Vic2NyaWJlUGluY2hFdmVudHM9KCk9Pnt0aGlzLl90YXJnZXQucmVtb3ZlRXZlbnRMaXN0ZW5lcigidG91Y2hzdGFydCIsZSksdGhpcy5fdGFyZ2V0LnJlbW92ZUV2ZW50TGlzdGVuZXIoInRvdWNobW92ZSIsdCksdGhpcy5fdGFyZ2V0LmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoZW5kIixzKX19X2NoZWNrUGluY2hTdGF0ZShlKXsxPT09ZS5sZW5ndGgmJih0aGlzLl9waW5jaFByZXZlbnRlZD0hMSksMiE9PWUubGVuZ3RofHx0aGlzLl9waW5jaFByZXZlbnRlZHx8dGhpcy5fbG9uZ1RhcEFjdGl2ZT90aGlzLl9zdG9wUGluY2goKTp0aGlzLl9zdGFydFBpbmNoKGUpfV9zdGFydFBpbmNoKGUpe2lmKHZvaWQgMCE9PXRoaXMuX2hhbmRsZXJzLnBpbmNoU3RhcnRFdmVudCYmbnVsbD09PXRoaXMuX3BpbmNoSW5mbyl7Y29uc3QgdD12KHRoaXMuX3RhcmdldCk7bGV0IHMsaTtlWzBdLmlkZW50aWZpZXI9PT10aGlzLl9hY3RpdmVUb3VjaElkPyhzPWVbMF0saT1lWzFdKToocz1lWzFdLGk9ZVswXSk7Y29uc3Qgbj17eDpzLmNsaWVudFgtdC5sZWZ0LHk6cy5jbGllbnRZLXQudG9wfSxyPXt4OmkuY2xpZW50WC10LmxlZnQseTppLmNsaWVudFktdC50b3B9LG89e3g6KG4ueCtyLngpLzIseToobi55K3IueSkvMn07dGhpcy5faGFuZGxlcnMucGluY2hTdGFydEV2ZW50KG8sbixyLHtib3RoUG9pbnRzT25UYXJnZXRFbGVtZW50OnRoaXMuX3RhcmdldC5jb250YWlucyhpLnRhcmdldCl9KSYmKHRoaXMuX3BpbmNoSW5mbz17c3RhcnRQaW5jaERpc3RhbmNlOlMocyxpKSxzdGFydFBpbmNoTWlkZGxlUG9pbnQ6byxzZWNvbmRUb3VjaElkOmkuaWRlbnRpZmllcn0pfXRoaXMuX2NsZWFyTG9uZ1RhcFRpbWVvdXQoKX1fc3RvcFBpbmNoKCl7bnVsbCE9PXRoaXMuX3BpbmNoSW5mbyYmKHRoaXMuX3BpbmNoSW5mbz1udWxsLHRoaXMuX2hhbmRsZXJzLnBpbmNoRW5kRXZlbnQ/LigpKX1fbW91c2VMZWF2ZUhhbmRsZXIoZSl7aWYodGhpcy5fdW5zdWJzY3JpYmVNb3VzZW1vdmUmJnRoaXMuX3Vuc3Vic2NyaWJlTW91c2Vtb3ZlKCksdGhpcy5fZmlyZXNUb3VjaEV2ZW50cyhlKSlyZXR1cm47aWYoIXRoaXMuX2FjY2VwdE1vdXNlTGVhdmUpcmV0dXJuO2NvbnN0IHQ9dGhpcy5fbWFrZUNvbXBhdEV2ZW50KGUpO3RoaXMuX3Byb2Nlc3NNb3VzZUV2ZW50KHQsdGhpcy5faGFuZGxlcnMubW91c2VMZWF2ZUV2ZW50KSx0aGlzLl9hY2NlcHRNb3VzZUxlYXZlPSFhLkNoZWNrTW9iaWxlLmlPUygpfV9sb25nVGFwSGFuZGxlcihlKXtjb25zdCB0PVAoZS50b3VjaGVzLCgwLHIuZW5zdXJlTm90TnVsbCkodGhpcy5fYWN0aXZlVG91Y2hJZCkpO2lmKG51bGw9PT10KXJldHVybjtjb25zdCBzPXRoaXMuX21ha2VDb21wYXRFdmVudChlLHQpO3RoaXMuX3Byb2Nlc3NUb3VjaEV2ZW50KHMsdGhpcy5faGFuZGxlcnMubG9uZ1RhcEV2ZW50KSx0aGlzLl9wcm9jZXNzVG91Y2hFdmVudChzLHRoaXMuX2hhbmRsZXJzLnRvdWNoQ29udGV4dE1lbnVFdmVudCksdGhpcy5fY2FuY2VsVGFwPSEwLHRoaXMuX2xvbmdUYXBBY3RpdmU9ITB9X2NvbnRleHRNZW51SGFuZGxlcihlKXtpZigoMCxsLnByZXZlbnREZWZhdWx0KShlKSxudWxsIT09dGhpcy5fdG91Y2hNb3ZlU3RhcnRQb3NpdGlvbilyZXR1cm47aWYodGhpcy5fZmlyZXNUb3VjaEV2ZW50cyhlKSlyZXR1cm47Y29uc3QgdD10aGlzLl9tYWtlQ29tcGF0RXZlbnQoZSk7dGhpcy5fcHJvY2Vzc01vdXNlRXZlbnQodCx0aGlzLl9oYW5kbGVycy5jb250ZXh0TWVudUV2ZW50KSx0aGlzLl9jYW5jZWxDbGljaz0hMH1fZmlyZXNUb3VjaEV2ZW50cyhlKXsKcmV0dXJuIGUuc291cmNlQ2FwYWJpbGl0aWVzJiZ2b2lkIDAhPT1lLnNvdXJjZUNhcGFiaWxpdGllcy5maXJlc1RvdWNoRXZlbnRzP2Uuc291cmNlQ2FwYWJpbGl0aWVzLmZpcmVzVG91Y2hFdmVudHM6dyhlKTx0aGlzLl9sYXN0VG91Y2hFdmVudFRpbWVTdGFtcCs1MDB9X3Byb2Nlc3NUb3VjaEV2ZW50KGUsdCl7KDAsdS5zZXRMYXN0TW91c2VPclRvdWNoRXZlbnRJbmZvKShlKSx0JiZ0LmNhbGwodGhpcy5faGFuZGxlcnMsZSl9X3Byb2Nlc3NNb3VzZUV2ZW50KGUsdCl7d2luZG93LlRWRCYmKCJtb3VzZWVudGVyIj09PWUuc3JjVHlwZXx8Im1vdXNlbW92ZSI9PT1lLnNyY1R5cGUpJiZjPjA/Yy0tOigibW91c2VsZWF2ZSIhPT1lLnNyY1R5cGUmJigwLHUuc2V0TGFzdE1vdXNlT3JUb3VjaEV2ZW50SW5mbykoZSksdCYmdC5jYWxsKHRoaXMuX2hhbmRsZXJzLGUpKX1fbWFrZUNvbXBhdEV2ZW50KGUsdCl7Y29uc3Qgcz10fHxlLGk9dD92b2lkIDA6ZS5idXR0b25zLHI9KDAsbi5kZWZhdWx0KSgoKCk9PnRoaXMuX3RhcmdldC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKXx8e2xlZnQ6MCx0b3A6MH0pKTtyZXR1cm57Y2xpZW50WDpzLmNsaWVudFgsY2xpZW50WTpzLmNsaWVudFkscGFnZVg6cy5wYWdlWCxwYWdlWTpzLnBhZ2VZLHNjcmVlblg6cy5zY3JlZW5YLHNjcmVlblk6cy5zY3JlZW5ZLGdldCBsb2NhbFgoKXtyZXR1cm4gcy5jbGllbnRYLXIoKS5sZWZ0fSxnZXQgbG9jYWxZKCl7cmV0dXJuIHMuY2xpZW50WS1yKCkudG9wfSxjdHJsS2V5OmUuY3RybEtleSxhbHRLZXk6ZS5hbHRLZXksc2hpZnRLZXk6ZS5zaGlmdEtleSxtZXRhS2V5OmUubWV0YUtleSxidXR0b25zOmksaXNUb3VjaDohZS50eXBlLnN0YXJ0c1dpdGgoIm1vdXNlIikmJiJjb250ZXh0bWVudSIhPT1lLnR5cGUmJiJjbGljayIhPT1lLnR5cGUsc3R5bHVzOiJzdHlsdXMiPT09dD8udG91Y2hUeXBlLHNyY1R5cGU6ZS50eXBlLHRhcmdldDpzLnRhcmdldCx2aWV3OmUudmlldyxwcmV2ZW50RGVmYXVsdDooKT0+eyJ0b3VjaHN0YXJ0IiE9PWUudHlwZSYmKDAsbC5wcmV2ZW50RGVmYXVsdCkoZSl9fX19ZnVuY3Rpb24gdihlKXtyZXR1cm4gZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKXx8e2xlZnQ6MCx0b3A6MH19ZnVuY3Rpb24gYihlKXtyZXR1cm57eDplLnBhZ2VYLHk6ZS5wYWdlWX19ZnVuY3Rpb24gUyhlLHQpe2NvbnN0IHM9ZS5jbGllbnRYLXQuY2xpZW50WCxpPWUuY2xpZW50WS10LmNsaWVudFk7cmV0dXJuIE1hdGguc3FydChzKnMraSppKX1mdW5jdGlvbiB3KGUpe3JldHVybiBlLnRpbWVTdGFtcHx8cGVyZm9ybWFuY2Uubm93KCl9ZnVuY3Rpb24gUChlLHQpe2ZvcihsZXQgcz0wO3M8ZS5sZW5ndGg7KytzKWlmKGVbc10uaWRlbnRpZmllcj09PXQpcmV0dXJuIGVbc107cmV0dXJuIG51bGx9fSw3NDU5OTAoZSx0LHMpeyJ1c2Ugc3RyaWN0IjtzLnIodCkscy5kKHQse2FkZFN5bWJvbERpYWxvZ0hhc09wZW5lZEtleTooKT0+byxzaG93QWRkU3ltYm9sRGlhbG9nOigpPT5hfSk7dmFyIGk9cyg2MjE5MjYpLG49cyg4MjQ0NzgpLHI9cygxNzk3NzEpO2NvbnN0IG89ImFkZFN5bWJvbERpYWxvZ0hhc09wZW5lZEtleSI7ZnVuY3Rpb24gYShlKXsoMCxpLnJ1bk9yU2lnbmluV2l0aEZlYXR1cmUpKCgoKT0+eygwLG4uc2hvd1dhdGNoTGlzdHNEaWFsb2cpKHthZGRTeW1ib2xzOmUsb25PcGVuOmx9KX0pLHtmZWF0dXJlOiJ3YXRjaExpc3QiLHNvdXJjZToiYWRkIHN5bWJvbCB0byB3YXRjaGxpc3QifSl9ZnVuY3Rpb24gbCgpe3IuZW1pdChvKX19LDcwNjg4NChlLHQscyl7InVzZSBzdHJpY3QiO3MuZCh0LHtjcmVhdGVEd21BbGlnbmVyOigpPT5kLGNyZWF0ZVRpbWVUb0JhclRpbWVBbGlnbmVyOigpPT5ofSk7dmFyIGk9cyg3MDA4MDkpLG49cygyNTQ2NzMpLHI9cyg2NDI3MTkpLG89cyg3NzE3OTUpO2NvbnN0IGE9bmV3IHIuU2Vzc2lvbkluZm8oIkV0Yy9VVEMiLCIwMDAwLTAwMDA6MTIzNDU2NyIpO3ZhciBsPXMoOTMwMjMxKTtmdW5jdGlvbiB1KCl7cmV0dXJuISgwLGwuaXNGZWF0dXJlc2V0RW5hYmxlZCkoImRpc2FibGVfcmVzb2x1dGlvbl9yZWJ1aWxkIil9Y29uc3QgYz1uZXcgTWFwO2Z1bmN0aW9uIGQoZSx0KXtjb25zdCBzPXUoKSxsPWAke3N9fCR7ZX18JHt0LnRpbWV6b25lfXwke3Quc2Vzc2lvbn18JHt0LnNlc3Npb25faG9saWRheXM/PyIifXwke3QuY29ycmVjdGlvbnM/PyIifWA7bGV0IGQ9Yy5nZXQobCk7cmV0dXJuIHZvaWQgMD09PWQmJihkPWZ1bmN0aW9uKGUsdCxzKXtpZighZXx8IW4uSW50ZXJ2YWwuaXNEV00odCkpcmV0dXJuIG51bGw7Y29uc3QgbD1uZXcgci5TZXNzaW9uSW5mbyhzLnRpbWV6b25lLHMuc2Vzc2lvbixzLnNlc3Npb25faG9saWRheXMscy5jb3JyZWN0aW9ucyksdT0oMCxvLm5ld0JhckJ1aWxkZXIpKHQsbCxhKTtyZXR1cm57dGltZVRvU2Vzc2lvblN0YXJ0OmU9PnUudHJhZGluZ0RheVRvU2Vzc2lvblN0YXJ0KGUpLHRpbWVUb0V4Y2hhbmdlVHJhZGluZ0RheTplPT57Y29uc3QgdD0oMCxpLnV0Y190b19jYWwpKGwudGltZXpvbmUsZSkscz1sLnNwZWMuY29ycmVjdFRyYWRpbmdEYXkodCk7cmV0dXJuKDAsaS5zZXRfaG1zKShzLDAsMCwwLDAsKDAsaS5nZXRfdGltZXpvbmUpKCJFdGMvVVRDIikpLHMuZ2V0VGltZSgpfX19KHMsZSx0KSxjLnNldChsLGQpKSxkfWZ1bmN0aW9uIGgoZSx0KXtyZXR1cm4gZnVuY3Rpb24oZSx0LHMpe2lmKCFlKXJldHVybiBlPT5lO2NvbnN0IGk9bmV3IHIuU2Vzc2lvbkluZm8ocy50aW1lem9uZSxzLnNlc3Npb24scy5zZXNzaW9uX2hvbGlkYXlzLHMuY29ycmVjdGlvbnMpLG49KDAsby5uZXdCYXJCdWlsZGVyKSh0LGksaSwhMSk7cmV0dXJuIGU9Pm4uYWxpZ25UaW1lSWZQb3NzaWJsZShlKX0odSgpLGUsdCl9fSw5NzQ2NjMoZSx0LHMpeyJ1c2Ugc3RyaWN0IjtzLmQodCx7RGVmYXVsdFByb3BlcnR5OigpPT5OLGFsbG93U2F2aW5nRGVmYXVsdHM6KCk9Pk0sY2xlYW5VcFN0YXRlS2V5czooKT0+RSxjcmVhdGVEZWZhdWx0c1N0YXRlOigpPT5JLGV4dHJhY3RBbGxQcm9wZXJ0aWVzS2V5czooKT0+RCxleHRyYWN0U3RhdGU6KCk9PlIsZXh0cmFjdFRoZW1lZENvbG9yczooKT0+a30pCjt2YXIgaT1zKDIwMzY4MSksbj1zKDc0MDE2Mikscj1zKDkxNzM3MSksbz1zKDU1NDcxOCksYT1zKDEwNTk3MCksbD1zKDg2NDAzNiksdT1zKDE2NzUwMiksYz1zKDE0NDU1NSksZD1zKDg4MDExNSksaD1zKDMwNDIyMSkscD1zKDEzODYzOCksbT1zKDEzNDY3KSxfPXMoMjIxMDYxKSxnPXMoNDI1NjU5KSx5PXMoODEwNDEpLGY9cygyMDA2NjYpLHY9cyg0NTM5NjgpLGI9cyg5NDgzODApLFM9cyg5MjUyODIpLHc9cygxMDk0MjkpLFA9KHMoNzk0ODEyKSxzKDc2ODI5MikpO2NvbnN0IFQ9KDAsXy5nZXRMb2dnZXIpKCJUaGVtZWREZWZhdWx0cyIpO2Z1bmN0aW9uIEMoZSl7cmV0dXJuIGUudmFsdWUoKT09PXkuU3RkVGhlbWUuRGFyaz95LlN0ZFRoZW1lLkRhcms6eS5TdGRUaGVtZS5MaWdodH1mdW5jdGlvbiBFKGUsdCxzKXtmb3IoY29uc3QgaSBvZiB0KWlmKCgwLHIuZGVmYXVsdCkoZSxpKSxzKXtjb25zdCB0PWkuc3BsaXQoIi4iKTtmb3IodC5wb3AoKTt0Lmxlbmd0aDspe2NvbnN0IHM9KDAsby5kZWZhdWx0KShlLHQpO2lmKCEoMCxkLmRlZmF1bHQpKHMpfHwwIT09T2JqZWN0LmtleXMocykubGVuZ3RoKWJyZWFrOygwLHIuZGVmYXVsdCkoZSx0KSx0LnBvcCgpfX19ZnVuY3Rpb24gSShlLHQscyl7dC5zdGFydHNXaXRoKCJzdHVkeV8iKSYmVC5sb2dFcnJvcigiY3JlYXRlRGVmYXVsdHNTdGF0ZTogc2hvdWxkIG5vdCBjYWxsIHRoaXMgZm9yIHN0dWRpZXMiKTtjb25zdCByPXt9LG89KDAsaS5kZWZhdWx0KSgoZT93LmRlZmF1bHRzOncuZmFjdG9yeURlZmF1bHRzKSh0KSk7cmV0dXJuIEUobyxzKSwoMCxuLmRlZmF1bHQpKHIsbykscn1sZXQgTD0hMTtmdW5jdGlvbiBNKGUpe0w9ZX1mdW5jdGlvbiBEKGUsdCl7Y29uc3Qgcz1PYmplY3Qua2V5cyhlKSxpPVtdO3JldHVybiBzLmZvckVhY2goKHM9Pntjb25zdCBuPWVbc107aWYoKDAsZC5kZWZhdWx0KShuKSl7RChuKS5mb3JFYWNoKChlPT5pLnB1c2goYCR7c30uJHtlfWApKSl9ZWxzZSB0Py5oYXMocyl8fGkucHVzaChzKX0pKSxpfWZ1bmN0aW9uIHgoZSx0LHM9IiIpe2lmKDE9PT10Lmxlbmd0aCYmIioiPT09dFswXSlyZXR1cm4gZTtjb25zdCBpPXt9O2Zvcihjb25zdCBuIG9mIHQpe2NvbnN0IHI9bi5zcGxpdCgiLiIpLG89clswXSxhPWVbb10sbD0iIj09PXM/bzpgJHtzfS4ke299YDtpZihlLmhhc093blByb3BlcnR5KG8pKWlmKHIubGVuZ3RoPjEpe2lmKCEoMCxkLmRlZmF1bHQpKGEpKXtULmxvZ0Vycm9yKGBwYXRoICR7bH0gbXVzdCBiZSBhbiBvYmplY3QsIGJ1dCBpdCBpcyBhIHByaW1pdGl2ZWApO2NvbnRpbnVlfXtjb25zdCBlPXQuZmlsdGVyKChlPT5lLnN0YXJ0c1dpdGgoYCR7b30uYCkpKS5tYXAoKGU9PmUuc3BsaXQoIi4iKS5zbGljZSgxKS5qb2luKCIuIikpKTtpW29dPXgoYSxlLGwpfX1lbHNle2lmKCgwLGQuZGVmYXVsdCkoYSkpe1QubG9nRXJyb3IoYHBhdGggJHtsfSBtdXN0IGJlIGEgcHJpbWl0aXZlLCBidXQgaXQgaXMgYW4gb2JqZWN0YCk7Y29udGludWV9aVtvXT1hfX1yZXR1cm4gaX1mdW5jdGlvbiBSKGUsdCxzKXtpZighZSlyZXR1cm57fTtsZXQgaT1lO3JldHVybiB0JiYoaT14KGUsdCkpLHMmJkUoaSxzLCEwKSxpfWZ1bmN0aW9uIGsoZSx0KXtjb25zdCBzPUQoZSksaT1bXTtmb3IoY29uc3QgbiBvZiBzKXtjb25zdCBzPSgwLG8uZGVmYXVsdCkoZSxuKSxyPSgwLG8uZGVmYXVsdCkodCxuKTsoMCxwLmFzc2VydCkodm9pZCAwIT09cyxgTGlnaHQgdGhlbWUgdmFsdWUgZm9yICR7bn0gaXMgdW5kZWZpbmVkYCksKDAscC5hc3NlcnQpKHZvaWQgMCE9PXIsYERhcmsgdGhlbWUgdmFsdWUgZm9yICR7bn0gaXMgdW5kZWZpbmVkYCksaS5wdXNoKHtwYXRoOm4sY29sb3JzOltzLHJdfSl9cmV0dXJuIGl9ZnVuY3Rpb24gVihlLHQpe2UuaW5jbHVkZXModCl8fGUucHVzaCh0KX1mdW5jdGlvbiBBKGUsdCl7Y29uc3Qgcz1lLmluZGV4T2YodCk7LTEhPT1zJiZlLnNwbGljZShzLDEpfWZ1bmN0aW9uIEYoZSx0KXtjb25zdCBzPSgwLGwuZGVmYXVsdCkoZSwoKGUscyxpKT0+e2lmKHZvaWQgMD09PXRbaV0pcmV0dXJuIGU7aWYoISgwLHUuZGVmYXVsdCkocyx0W2ldKSlpZigoMCxkLmRlZmF1bHQpKHMpJiYoMCxkLmRlZmF1bHQpKHRbaV0pKXtjb25zdCBuPUYocyx0W2ldKTt2b2lkIDAhPT1uJiYoZVtpXT1uKX1lbHNlIGVbaV09cztyZXR1cm4gZX0pLHt9KTtyZXR1cm4oMCxjLmRlZmF1bHQpKHMpP3ZvaWQgMDpzfWZ1bmN0aW9uIEIoZSl7cmV0dXJuIGU9PT15LlN0ZFRoZW1lLkRhcms/MTowfWZ1bmN0aW9uIE8oZSx0KXtpZihlPT09dClyZXR1cm4hMDtpZih0eXBlb2YgZSE9dHlwZW9mIHQpcmV0dXJuITE7aWYoISgwLGguZGVmYXVsdCkoZSl8fCEoMCxoLmRlZmF1bHQpKHQpKXJldHVybiExO2NvbnN0IHM9KDAsbS50cnlQYXJzZVJnYmEpKGUpLGk9KDAsbS50cnlQYXJzZVJnYmEpKHQpO3JldHVybiEoIXN8fCFpKSYmISEoMCxnLmNvbG9yc0FyZUNsb3NlRW5vdWdoKShlLHQpfWNsYXNzIE4gZXh0ZW5kcyBQLlByb3BlcnR5e2NvbnN0cnVjdG9yKGUpe2NvbnN0e2RlZmF1bHROYW1lOnQsbm9uVGhlbWVkRGVmYXVsdHNLZXlzOnMsdGhlbWVkRGVmYXVsdHNLZXlzOmksZXhjbHVkZWREZWZhdWx0c0tleXM6cj1bXSx0aGVtZWRDb2xvcnM6byxyZXBsYWNlVGhlbWVkQ29sb3JzT25UaGVtZUNoYW5nZTphPSExLGFsbFN0YXRlS2V5czpsLGV4Y2x1ZGVkU3RhdGVLZXlzOnU9W10sZXhjbHVkZWRUZW1wbGF0ZUtleXM6Yz1bXSxzdGF0ZTpkLHVzZVVzZXJQcmVmZXJlbmNlczpoPSEwLHNhdmVOb25EZWZhdWx0VXNlclByZWZlcmVuY2VzT25seTptPSExLGlnbm9yZUFsbG93U2F2aW5nRGVmYXVsdHM6Xz0hMSxhbHdheXNTYXZlRGVmYXVsdEtleXM6Zz1bInZlcnNpb24iXSxzYXZlRGVmYXVsdHNDb25zdW1lcjpQPXcuc2F2ZURlZmF1bHRzLGZhY3RvcnlEZWZhdWx0c1N1cHBsaWVyOlQ9KCk9PkkoITEsdCxbXSksc2NoZW1hOkU9KDAsUy5jcmVhdGVQcm9wZXJ0eVNjaGVtYSkoVCgpKSx0aGVtZTpMPWYud2F0Y2hlZFRoZW1lLnNwYXduT3duZXJzaGlwKCl9PWU7c3VwZXIodm9pZCAwLEUpLHRoaXMuX3RoZW1lZENvbG9ycz1bXSwKdGhpcy5fcmVzdG9yZUZhY3RvcnlEZWZhdWx0c0V2ZW50PW5ldyBiLkRlbGVnYXRlLHRoaXMuX3JlcGxhY2VUaGVtZWRDb2xvcnNPblRoZW1lQ2hhbmdlPSExLHRoaXMuX2ZvcmJpZFNhdmluZ0RlZmF1bHRzPSExLHRoaXMuX2RlZmF1bHROYW1lPXQsdGhpcy5fdXNlVXNlclByZWZlcmVuY2VzPWgsdGhpcy5fc2F2ZU5vbkRlZmF1bHRVc2VyUHJlZmVyZW5jZXNPbmx5PW0sdGhpcy5faWdub3JlQWxsb3dTYXZpbmdEZWZhdWx0cz1fLHRoaXMuX3NhdmVEZWZhdWx0c0NvbnN1bWVyPVAsdGhpcy5fZmFjdG9yeURlZmF1bHRzU3VwcGxpZXI9VCx0aGlzLl9hbGxTdGF0ZUtleXM9bCx0aGlzLl9leGNsdWRlZFN0YXRlS2V5cz11LHRoaXMuX25vblRoZW1lZERlZmF1bHRzS2V5cz1zLHRoaXMuX3RoZW1lZERlZmF1bHRzS2V5cz1pLHRoaXMuX2FsbERlZmF1bHRzS2V5cz1zfHxpP1suLi5zPz9bXSwuLi5pPz9bXV06dm9pZCAwLHRoaXMuX2V4Y2x1ZGVkRGVmYXVsdHNLZXlzPXIsdGhpcy5fZXhjbHVkZWRUZW1wbGF0ZUtleXM9Yyx0aGlzLl90aGVtZWRDb2xvcnM9byx0aGlzLl9hbHdheXNTYXZlRGVmYXVsdEtleXM9ZywoMCxwLmFzc2VydCkodm9pZCAwPT09dGhpcy5fYWxsRGVmYXVsdHNLZXlzfHwwPT09dGhpcy5fZXhjbHVkZWREZWZhdWx0c0tleXMubGVuZ3RoLCJEZWZhdWx0cyBrZXlzIGFuZCBleGNsdWRlZCBkZWZhdWx0cyBrZXlzIGNhbm5vdCBiZSB1c2VkIGF0IHRoZSBzYW1lIHRpbWUiKSwoMCxwLmFzc2VydCkodm9pZCAwPT09dGhpcy5fYWxsU3RhdGVLZXlzfHwwPT09dGhpcy5fZXhjbHVkZWRTdGF0ZUtleXMubGVuZ3RoLCJTdGF0ZSBrZXlzIGFuZCBleGNsdWRlZCBzdGF0ZSBrZXlzIGNhbm5vdCBiZSB1c2VkIGF0IHRoZSBzYW1lIHRpbWUiKSx0aGlzLl90aGVtZT1MO2NvbnN0IE09Qyh0aGlzLl90aGVtZSk7dGhpcy5tZXJnZSgoMCxuLmRlZmF1bHQpKHRoaXMuX2ZhY3RvcnlEZWZhdWx0c0ZvclRoZW1lKCgwLHYuaXNTdGRUaGVtZU5hbWUpKE0pP006eS5TdGRUaGVtZS5MaWdodCksdGhpcy5fdXNlclNldHRpbmdzKCksUihkLGwsdSkpKSxvJiZhJiZ0aGlzLnNldFRoZW1lZENvbG9ycyhvKSx0aGlzLl9yZXN0b3JlRmFjdG9yeURlZmF1bHRzRXZlbnQ9bmV3IGIuRGVsZWdhdGV9ZGVzdHJveSgpe3RoaXMuX3RoZW1lPy5yZWxlYXNlKCksdGhpcy5fdW5zdWJzY3JpYmVXYXRjaGVkVGhlbWU/LigpLHN1cGVyLmRlc3Ryb3koKX1hcHBseVRlbXBsYXRlKGUsdCl7dGhpcy5tZXJnZUFuZEZpcmUoUigoMCxuLmRlZmF1bHQpKCgwLGkuZGVmYXVsdCkodCksZSksdGhpcy5fYWxsU3RhdGVLZXlzLHRoaXMuX2V4Y2x1ZGVkVGVtcGxhdGVLZXlzKSl9cHJlZmVyZW5jZXMoKXtyZXR1cm4gUih0aGlzLnN0YXRlKHRoaXMuX2V4Y2x1ZGVkRGVmYXVsdHNLZXlzKSx0aGlzLl9hbGxEZWZhdWx0c0tleXMpfXRlbXBsYXRlKCl7cmV0dXJuIFIodGhpcy5zdGF0ZSh2b2lkIDAsNCksdm9pZCAwLHRoaXMuX2V4Y2x1ZGVkVGVtcGxhdGVLZXlzKX1tZXJnZVByZWZlcmVuY2VzKGUpe3RoaXMubWVyZ2VBbmRGaXJlKFIoZSx0aGlzLl9hbGxEZWZhdWx0c0tleXMsdGhpcy5fZXhjbHVkZWREZWZhdWx0c0tleXMpKX1hZGRFeGNsdWRlZEtleShlLHQpezEmdCYmVih0aGlzLl9leGNsdWRlZERlZmF1bHRzS2V5cyxlKSwyJnQmJlYodGhpcy5fZXhjbHVkZWRTdGF0ZUtleXMsZSksNCZ0JiZWKHRoaXMuX2V4Y2x1ZGVkVGVtcGxhdGVLZXlzLGUpfXJlbW92ZUV4Y2x1ZGVkS2V5KGUsdCl7MSZ0JiZBKHRoaXMuX2V4Y2x1ZGVkRGVmYXVsdHNLZXlzLGUpLDImdCYmQSh0aGlzLl9leGNsdWRlZFN0YXRlS2V5cyxlKX1yZXN0b3JlRmFjdG9yeURlZmF1bHRzKCl7Y29uc3QgZT10aGlzLmZhY3RvcnlEZWZhdWx0cygpO0UoZSx0aGlzLl9leGNsdWRlZERlZmF1bHRzS2V5cyksdGhpcy5tZXJnZUFuZEZpcmUoZSksdGhpcy5fZGVmYXVsdE5hbWUuc3RhcnRzV2l0aCgic3R1ZHlfIikmJiF0aGlzLl9kZWZhdWx0TmFtZS5zdGFydHNXaXRoKCJzdHVkeV9WYlBGaXhlZCIpfHx0aGlzLl9zYXZlRGVmYXVsdHNDb25zdW1lcih0aGlzLl9kZWZhdWx0TmFtZSksdGhpcy5fcmVzdG9yZUZhY3RvcnlEZWZhdWx0c0V2ZW50LmZpcmUoKX1vblJlc3RvcmVGYWN0b3J5RGVmYXVsdHMoKXtyZXR1cm4gdGhpcy5fcmVzdG9yZUZhY3RvcnlEZWZhdWx0c0V2ZW50fXNhdmVEZWZhdWx0cygpe2lmKCF0aGlzLl91c2VVc2VyUHJlZmVyZW5jZXN8fHRoaXMuX2ZvcmJpZFNhdmluZ0RlZmF1bHRzKXJldHVybjtsZXQgZTtpZih0aGlzLl9zYXZlTm9uRGVmYXVsdFVzZXJQcmVmZXJlbmNlc09ubHkpe2NvbnN0IHQ9dGhpcy5zdGF0ZSh0aGlzLl9leGNsdWRlZERlZmF1bHRzS2V5cykscz10aGlzLmZhY3RvcnlEZWZhdWx0cygpO2lmKGU9RihSKHQsdGhpcy5fbm9uVGhlbWVkRGVmYXVsdHNLZXlzKSxSKHMsdGhpcy5fbm9uVGhlbWVkRGVmYXVsdHNLZXlzLHRoaXMuX2V4Y2x1ZGVkRGVmYXVsdHNLZXlzKSksdGhpcy5fYWx3YXlzU2F2ZURlZmF1bHRLZXlzLmxlbmd0aCl7Y29uc3Qgcz1SKHQsdGhpcy5fYWx3YXlzU2F2ZURlZmF1bHRLZXlzKTtlPWU/P3t9LCgwLG4uZGVmYXVsdCkoZSxzKX1jb25zdCBpPXRoaXMudGhlbWVEZWZhdWx0cyhDKHRoaXMuX3RoZW1lKSkscj10aGlzLnRoZW1lU3RhdGUoKSxvPUYocixpKTsoMCxjLmRlZmF1bHQpKG8pfHwoZT1lPz97fSwoMCxuLmRlZmF1bHQpKGUscikpfWVsc2UgZT10aGlzLnByZWZlcmVuY2VzKCk7dGhpcy5fc2F2ZURlZmF1bHRzQ29uc3VtZXIodGhpcy5fZGVmYXVsdE5hbWUsZSl9dGhlbWVEZWZhdWx0cyhlKXtpZih0aGlzLl90aGVtZWRDb2xvcnMpcmV0dXJuIGZ1bmN0aW9uKGUsdCl7Y29uc3Qgcz17fSxpPUIodCk7Zm9yKGNvbnN0e3BhdGg6dCxjb2xvcnM6bn1vZiBlKSgwLGEuZGVmYXVsdCkocyx0LG5baV0pO3JldHVybiBzfSh0aGlzLl90aGVtZWRDb2xvcnMsZT09PXkuU3RkVGhlbWUuRGFyaz95LlN0ZFRoZW1lLkRhcms6eS5TdGRUaGVtZS5MaWdodCk7cmV0dXJuIFIodGhpcy5fZmFjdG9yeURlZmF1bHRzU3VwcGxpZXIoKSx0aGlzLl90aGVtZWREZWZhdWx0c0tleXMsdGhpcy5fZXhjbHVkZWREZWZhdWx0c0tleXMpfQpmYWN0b3J5RGVmYXVsdHMoKXtyZXR1cm4gdGhpcy5fZmFjdG9yeURlZmF1bHRzRm9yVGhlbWUoQyh0aGlzLl90aGVtZSkpfXRoZW1lU3RhdGUoKXtjb25zdCBlPXN1cGVyLnN0YXRlKHRoaXMuX2V4Y2x1ZGVkRGVmYXVsdHNLZXlzKSx0PXRoaXMuX3RoZW1lZENvbG9ycztyZXR1cm4gUihlLHQ/dC5tYXAoKGU9PmUucGF0aCkpOnRoaXMuX3RoZW1lZERlZmF1bHRzS2V5cyl9YWxsVGhlbWVQcm9wZXJ0aWVzQXJlRGVmYXVsdChlKXsoMCxwLmFzc2VydCkoISF0aGlzLl90aGVtZWRDb2xvcnMsIlRoaXMgbWV0aG9kIHNob3VsZCBub3QgYmUgY2FsbGVkIGlmIHRoZW1lZCBjb2xvcnMgYXJlIG5vdCBzZXQiKTtyZXR1cm4gZnVuY3Rpb24oZSx0LHM9W10pe2Zvcihjb25zdCBpIG9mIHMpe2NvbnN0IHM9aS5wYXRoO2lmKCFPKCgwLG8uZGVmYXVsdCkoZSxzKSwoMCxvLmRlZmF1bHQpKHQscykpKXJldHVybiExfXJldHVybiEwfSh0aGlzLnRoZW1lU3RhdGUoKSx0aGlzLnRoZW1lRGVmYXVsdHMoZSksdGhpcy5fdGhlbWVkQ29sb3JzKX1jbG9uZShlKXtyZXR1cm4gbmV3IE4odGhpcy5fb3B0aW9ucygpKX1zZXRUaGVtZWRDb2xvcnMoZSl7aWYodGhpcy5fdGhlbWVkQ29sb3JzPWUsdm9pZCAwPT09dGhpcy5fdW5zdWJzY3JpYmVXYXRjaGVkVGhlbWUpe2NvbnN0IGU9KCk9Pnt0aGlzLl91cGRhdGVUaGVtZWRDb2xvcnMoITEpfTt0aGlzLl90aGVtZS5zdWJzY3JpYmUoZSksdGhpcy5fdW5zdWJzY3JpYmVXYXRjaGVkVGhlbWU9KCk9PnRoaXMuX3RoZW1lLnVuc3Vic2NyaWJlKGUpfXRoaXMuX3VwZGF0ZVRoZW1lZENvbG9ycyghMCl9YXBwbHlEZWZhdWx0VGhlbWVkUHJvcGVydGllcyhlKXt0aGlzLl90aGVtZWRDb2xvcnMmJnRoaXMubWVyZ2VBbmRGaXJlKHRoaXMudGhlbWVEZWZhdWx0cyhlKSl9c3RhdGUoZSx0KXtyZXR1cm4gUihzdXBlci5zdGF0ZShbLi4udGhpcy5fZXhjbHVkZWRTdGF0ZUtleXMsLi4uZT8/W11dLHQpLHRoaXMuX2FsbFN0YXRlS2V5cyl9ZnVsbFN0YXRlKCl7cmV0dXJuIHN1cGVyLnN0YXRlKCl9X3VwZGF0ZVRoZW1lZENvbG9ycyhlKXtpZighdGhpcy5fdGhlbWVkQ29sb3JzKXJldHVybjtjb25zdCB0PUModGhpcy5fdGhlbWUpLHM9dD09PXkuU3RkVGhlbWUuTGlnaHQ/eS5TdGRUaGVtZS5EYXJrOnkuU3RkVGhlbWUuTGlnaHQ7Zm9yKGNvbnN0IGkgb2YgdGhpcy5fdGhlbWVkQ29sb3JzKXtjb25zdCBuPSgwLHAuZW5zdXJlRGVmaW5lZCkodGhpcy5jaGlsZEJ5UGF0aChpLnBhdGgpKSxyPWkuY29sb3JzW0IocyldOygiIj09PW4udmFsdWUoKXx8IWUmJk8obi52YWx1ZSgpLHIpKSYmbi5zZXRWYWx1ZShpLmNvbG9yc1tCKHQpXSl9fV91c2VyU2V0dGluZ3MoKXtpZighdGhpcy5fdXNlVXNlclByZWZlcmVuY2VzKXJldHVybjtjb25zdCBlPUkoITAsdGhpcy5fZGVmYXVsdE5hbWUsW10pO2lmKCFlKXJldHVybjtyZXR1cm4gUigoMCxTLmV4dHJhY3RTdGF0ZVdpdGhTY2hlbWEpKGUsdGhpcy5fc2NoZW1hLDEpLHRoaXMuX2FsbERlZmF1bHRzS2V5cyx0aGlzLl9leGNsdWRlZERlZmF1bHRzS2V5cyl9X29wdGlvbnMoKXtyZXR1cm57ZGVmYXVsdE5hbWU6dGhpcy5fZGVmYXVsdE5hbWUsZmFjdG9yeURlZmF1bHRzU3VwcGxpZXI6dGhpcy5fZmFjdG9yeURlZmF1bHRzU3VwcGxpZXIsc3RhdGU6dGhpcy5zdGF0ZSgpLG5vblRoZW1lZERlZmF1bHRzS2V5czp0aGlzLl9ub25UaGVtZWREZWZhdWx0c0tleXMsdGhlbWVkRGVmYXVsdHNLZXlzOnRoaXMuX3RoZW1lZERlZmF1bHRzS2V5cyxleGNsdWRlZERlZmF1bHRzS2V5czp0aGlzLl9leGNsdWRlZERlZmF1bHRzS2V5cyx0aGVtZWRDb2xvcnM6dGhpcy5fdGhlbWVkQ29sb3JzLHJlcGxhY2VUaGVtZWRDb2xvcnNPblRoZW1lQ2hhbmdlOnRoaXMuX3JlcGxhY2VUaGVtZWRDb2xvcnNPblRoZW1lQ2hhbmdlLGFsbFN0YXRlS2V5czp0aGlzLl9hbGxTdGF0ZUtleXMsZXhjbHVkZWRTdGF0ZUtleXM6dGhpcy5fZXhjbHVkZWREZWZhdWx0c0tleXMsZXhjbHVkZWRUZW1wbGF0ZUtleXM6dGhpcy5fZXhjbHVkZWRUZW1wbGF0ZUtleXMsdXNlVXNlclByZWZlcmVuY2VzOnRoaXMuX3VzZVVzZXJQcmVmZXJlbmNlcyxzYXZlTm9uRGVmYXVsdFVzZXJQcmVmZXJlbmNlc09ubHk6dGhpcy5fc2F2ZU5vbkRlZmF1bHRVc2VyUHJlZmVyZW5jZXNPbmx5LGlnbm9yZUFsbG93U2F2aW5nRGVmYXVsdHM6dGhpcy5faWdub3JlQWxsb3dTYXZpbmdEZWZhdWx0cyxzYXZlRGVmYXVsdHNDb25zdW1lcjp0aGlzLl9zYXZlRGVmYXVsdHNDb25zdW1lcixhbHdheXNTYXZlRGVmYXVsdEtleXM6dGhpcy5fYWx3YXlzU2F2ZURlZmF1bHRLZXlzLHRoZW1lOnRoaXMuX3RoZW1lLnNwYXduT3duZXJzaGlwKCl9fV9jaGlsZENoYW5nZWQoZSx0KXtzdXBlci5fY2hpbGRDaGFuZ2VkKGUsdCksdGhpcy5fcHJvcGVydHlBZmZlY3RzRGVmYXVsdHModCkmJnRoaXMuc2F2ZURlZmF1bHRzKCl9X2ZpcmVNZXJnZUFuZEZpcmVDaGFuZ2VkUHJvcHMoZSl7dGhpcy5fZm9yYmlkU2F2aW5nRGVmYXVsdHM9ITAsc3VwZXIuX2ZpcmVNZXJnZUFuZEZpcmVDaGFuZ2VkUHJvcHMoZSksdGhpcy5fZm9yYmlkU2F2aW5nRGVmYXVsdHM9ITEsZS5zb21lKChlPT50aGlzLl9wcm9wZXJ0eUFmZmVjdHNEZWZhdWx0cyhlLnBhdGhUb1Jvb3RQcm9wZXJ0eSgpKSkpJiZ0aGlzLnNhdmVEZWZhdWx0cygpfV9mYWN0b3J5RGVmYXVsdHNGb3JUaGVtZShlKXtyZXR1cm4oMCxuLmRlZmF1bHQpKHRoaXMuX2ZhY3RvcnlEZWZhdWx0c1N1cHBsaWVyKCksdGhpcy50aGVtZURlZmF1bHRzKGUpKX1fcHJvcGVydHlBZmZlY3RzRGVmYXVsdHMoZSl7CnJldHVybih0aGlzLl9pZ25vcmVBbGxvd1NhdmluZ0RlZmF1bHRzfHxMKSYmIXRoaXMuX2RlZmF1bHROYW1lLnN0YXJ0c1dpdGgoInJlcGxheVN0dWR5U3RyYXRlZ3kiKSYmKCF0aGlzLl9kZWZhdWx0TmFtZS5zdGFydHNXaXRoKCJzdHVkeV8iKXx8dGhpcy5fZGVmYXVsdE5hbWUuc3RhcnRzV2l0aCgic3R1ZHlfVmJQRml4ZWQiKSkmJih0aGlzLl9hbGxEZWZhdWx0c0tleXMmJnRoaXMuX2FsbERlZmF1bHRzS2V5cy5pbmNsdWRlcyhlKXx8IXRoaXMuX2FsbERlZmF1bHRzS2V5cyYmIXRoaXMuX2V4Y2x1ZGVkRGVmYXVsdHNLZXlzPy5pbmNsdWRlcyhlKSkmJigwLFAuaXNQcmltaXRpdmVUeXBlKSh0aGlzLmNoaWxkQnlQYXRoKGUpPy52YWx1ZSgpKX19fSwxMDk0MjkoZSx0LHMpeyJ1c2Ugc3RyaWN0Ijt2YXJ7Y2xvbmU6aSxtZXJnZTpufT1zKDYwMTg0MSkscj1zKDkzMDUwNikuUGxEaXNwbGF5O2NvbnN0e2dldFN0ZENoYXJ0VGhlbWU6b309cyg3Mjg1NCkse0RFRkFVTFRfVEhFTUU6YX09cyg2NjUxODcpLGw9cyg1MDc2MDQpLmNvbG9yczt2YXIgdT1zKDkzMDUwNikuVHJhZGVkR3JvdXBIb3Jpem9udGFsQWxpZ25tZW50LGM9cygxNjgyNTgpLlNUVURZUExPVERJU1BMQVlUQVJHRVQsZD1zKDQ2NTc3NyksaD1zKDIyNjQ3NykuUHJpY2VBeGlzTGFzdFZhbHVlTW9kZSxwPXMoNDkyMzgxKS5NYWduZXRNb2RlLG09cygyMjc4MjUpLkNvbG9yVHlwZTtjb25zdCBfPXMoMzk4ODk5KS5ERUZBVUxUX0xJTkVfVE9PTF9MSU5FX1dJRFRIO3ZhciBnPXMoOTYxODMxKS5zZXNzaW9uc1ByZWZlcmVuY2VzRGVmYXVsdCx5PXMoNzA5NDYpLmF4aXNMYWJlbEJhY2tncm91bmRDb2xvcixmPXMoNTE4Nzk1KS5tYWluU2VyaWVzUHJvcGVydGllcztjb25zdHtkZWZhdWx0c0FzSXM6dixhcHBseURlZmF1bHRzT3ZlcnJpZGVzOmIsYXBwbHlEZWZhdWx0T3ZlcnJpZGVzVG9MaW5ldG9vbHM6U309cyg3OTQ4MTIpLHtMSU5FU1RZTEVfU09MSUQ6dyxMSU5FU1RZTEVfRE9UVEVEOlAsTElORVNUWUxFX0RBU0hFRDpUfT1zKDI2MDY5KSx7Y29sb3JXaGl0ZTpDLGNvbG9yVHZCbHVlNTAwOkUsY29sb3JUdkJsdWU1MDBBbHBoYTMwOkksY29sb3JUdkJsdWU1MDBBbHBoYTI1OkwsY29sb3JUdkJsdWU1MDBBbHBoYTIwOk0sY29sb3JEZWVwQmx1ZTUwMDpELGNvbG9yU2t5Qmx1ZTUwMDp4LGNvbG9yUmlwZVJlZDUwMDpSLGNvbG9yUmlwZVJlZDUwMEFscGhhMzA6ayxjb2xvclJpcGVSZWQ1MDBBbHBoYTIwOlYsY29sb3JHcmFwZXNQdXJwbGU1MDBBbHBoYTA6QSxjb2xvckdyYXBlc1B1cnBsZTUwMEFscGhhNzA6Rixjb2xvckJlcnJ5UGluazUwMDpCLGNvbG9yTWludHlHcmVlbjUwMDpPLGNvbG9ySWd1YW5hR3JlZW41MDA6Tixjb2xvclRhbk9yYW5nZTUwMDpXLGNvbG9yQ29sZEdyYXkxNTA6VSxjb2xvckNvbGRHcmF5NTAwOnosY29sb3JDb2xkR3JheTkwMDpILGNvbG9yQ29sZEdyYXk3NTA6an09bDt2YXIgJD1mdW5jdGlvbihlKXt2YXIgdD1mdW5jdGlvbihlLHQscyxpKXtjb25zdCBuPXtjb2VmZjplLGNvbG9yOnQsdmlzaWJsZTpzfTtyZXR1cm4gaSYmKG4udGV4dD0iIiksbn0scz1mdW5jdGlvbihlLHQscyxpLG4pe3JldHVybntjb2VmZjplLGNvbG9yOnQsdmlzaWJsZTpzLGxpbmVzdHlsZTp2b2lkIDA9PT1pP3c6aSxsaW5ld2lkdGg6dm9pZCAwPT09bj9fOm59fTtpZih2b2lkIDA9PT1UcmFkaW5nVmlldy5kZWZhdWx0UHJvcGVydGllcyl7dmFyIHY7c3dpdGNoKHdpbmRvdy5sb2NhbGUpe2Nhc2UiYXJfQUUiOnY9IkFzaWEvRHViYWkiO2JyZWFrO2Nhc2UiYXUiOnY9IkF1c3RyYWxpYS9TeWRuZXkiO2JyZWFrO2Nhc2UiYnIiOnY9IkFtZXJpY2EvU2FvX1BhdWxvIjticmVhaztjYXNlImNhIjp2PSJBbWVyaWNhL1Rvcm9udG8iO2JyZWFrO2Nhc2UiZGVfREUiOmNhc2UiaXQiOnY9IkV1cm9wZS9CZXJsaW4iO2JyZWFrO2Nhc2UiZXMiOnY9IkV1cm9wZS9NYWRyaWQiO2JyZWFrO2Nhc2UiaGVfSUwiOmNhc2UidHIiOnY9IkV1cm9wZS9BdGhlbnMiO2JyZWFrO2Nhc2UiaHVfSFUiOmNhc2UicGwiOnY9IkV1cm9wZS9XYXJzYXciO2JyZWFrO2Nhc2UiaWQiOmNhc2UidGhfVEgiOmNhc2UidmlfVk4iOnY9IkFzaWEvQmFuZ2tvayI7YnJlYWs7Y2FzZSJpbiI6dj0iQXNpYS9Lb2xrYXRhIjticmVhaztjYXNlImphIjpjYXNlImtyIjp2PSJBc2lhL1Rva3lvIjticmVhaztjYXNlIm1zX01ZIjp2PSJBc2lhL1NpbmdhcG9yZSI7YnJlYWs7Y2FzZSJydSI6dj0iRXVyb3BlL01vc2NvdyI7YnJlYWs7Y2FzZSJ1ayI6dj0iRXVyb3BlL0xvbmRvbiI7YnJlYWs7Y2FzZSJ6aF9DTiI6Y2FzZSJ6aF9UVyI6dj0iQXNpYS9TaGFuZ2hhaSI7YnJlYWs7ZGVmYXVsdDp2PSJFdGMvVVRDIn1jb25zdCBlPW8oYSk7VHJhZGluZ1ZpZXcuZGVmYXVsdFByb3BlcnRpZXM9e2NoYXJ0cHJvcGVydGllczpuKHt0aW1lem9uZTp2LHByaWNlU2NhbGVTZWxlY3Rpb25TdHJhdGVneU5hbWU6ImF1dG8iLGluYWN0aXZpdHlHYXBzOiExLHBhbmVQcm9wZXJ0aWVzOntiYWNrZ3JvdW5kVHlwZTptLlNvbGlkLHZlcnRHcmlkUHJvcGVydGllczp7c3R5bGU6UCx2aXNpYmxlOiEwfSxob3J6R3JpZFByb3BlcnRpZXM6e3N0eWxlOlAsdmlzaWJsZTohMH0sY3Jvc3NIYWlyUHJvcGVydGllczp7c3R5bGU6VCx0cmFuc3BhcmVuY3k6MCx3aWR0aDoxfSx0b3BNYXJnaW46MTAsYm90dG9tTWFyZ2luOjgsYXhpc1Byb3BlcnRpZXM6e2F1dG9TY2FsZTohMCxhdXRvU2NhbGVEaXNhYmxlZDohMSxsb2NrU2NhbGU6ITEscGVyY2VudGFnZTohMSxwZXJjZW50YWdlRGlzYWJsZWQ6ITEsaW5kZXhlZFRvMTAwOiExLGxvZzohMSxsb2dEaXNhYmxlZDohMSxhbGlnbkxhYmVsczohMCxpc0ludmVydGVkOiExfSxsZWdlbmRQcm9wZXJ0aWVzOntzaG93U3R1ZHlBcmd1bWVudHM6ITAsc2hvd1N0dWR5VGl0bGVzOiEwLHNob3dTdHVkeVZhbHVlczohMCxzaG93U2VyaWVzVGl0bGU6ITAsc2hvd1Nlcmllc09ITEM6ITAsc2hvd0xlZ2VuZDohMCxzaG93TGFzdERheUNoYW5nZTohMSxzaG93QmFyQ2hhbmdlOiEwLHNob3dWb2x1bWU6ITEsc2hvd0JhY2tncm91bmQ6ITAsc2hvd1ByaWNlU291cmNlOiEwLApiYWNrZ3JvdW5kVHJhbnNwYXJlbmN5OjUwLHNob3dMb2dvOiEwLHNob3dUcmFkaW5nQnV0dG9uczohMCxzaG93VHJhZGluZ0J1dHRvbnNNb2JpbGU6ITAsc2hvd1Nlcmllc0xlZ2VuZENsb3NlT25Nb2JpbGU6ITAsYmFyQ2hhbmdlVXBDb2xvcjpPLGJhckNoYW5nZURvd25Db2xvcjpSLHVzZUJhckNoYW5nZUN1c3RvbUNvbG9yczohMX0sc2VwYXJhdG9yQ29sb3I6VX0sc2NhbGVzUHJvcGVydGllczp7Zm9udFNpemU6MTIsc2NhbGVTZXJpZXNPbmx5OiExLHNob3dTZXJpZXNMYXN0VmFsdWU6ITAsc2VyaWVzTGFzdFZhbHVlTW9kZTpoLkxhc3RWYWx1ZUFjY29yZGluZ1RvU2NhbGUsc2hvd1Nlcmllc1ByZXZDbG9zZVZhbHVlOiExLHNob3dTdHVkeUxhc3RWYWx1ZTohMCxzaG93U3ltYm9sTGFiZWxzOiExLHNob3dTdHVkeVBsb3RMYWJlbHM6ITEsc2hvd0JpZEFza0xhYmVsczohMSxzaG93UHJlUG9zdE1hcmtldFByaWNlTGFiZWw6ITAsc2hvd0Z1bmRhbWVudGFsTmFtZUxhYmVsOiExLHNob3dGdW5kYW1lbnRhbExhc3RWYWx1ZTohMCxiYXJTcGFjaW5nOmQuREVGQVVMVF9CQVJfU1BBQ0lORyxheGlzSGlnaGxpZ2h0Q29sb3I6TCxheGlzTGluZVRvb2xMYWJlbEJhY2tncm91bmRDb2xvckNvbW1vbjp5LmNvbW1vbixheGlzTGluZVRvb2xMYWJlbEJhY2tncm91bmRDb2xvckFjdGl2ZTp5LmFjdGl2ZSxzaG93UHJpY2VTY2FsZUNyb3NzaGFpckxhYmVsOiEwLHNob3dUaW1lU2NhbGVDcm9zc2hhaXJMYWJlbDohMCxjcm9zc2hhaXJMYWJlbEJnQ29sb3JMaWdodDpILGNyb3NzaGFpckxhYmVsQmdDb2xvckRhcms6aixzYXZlTGVmdEVkZ2U6ITF9LG1haW5TZXJpZXNQcm9wZXJ0aWVzOm4oZixlLmNvbnRlbnQubWFpblNvdXJjZVByb3BlcnRpZXMpLGNoYXJ0RXZlbnRzU291cmNlUHJvcGVydGllczp7dmlzaWJsZTohMCxmdXR1cmVPbmx5OiEwLGJyZWFrczp7Y29sb3I6IiM1NTU1NTUiLHZpc2libGU6ITEsc3R5bGU6VCx3aWR0aDoxfX0sdHJhZGluZ1Byb3BlcnRpZXM6e3Nob3dQb3NpdGlvbnM6ITAscG9zaXRpb25QTDp7dmlzaWJpbGl0eTohMCxkaXNwbGF5OnIuTW9uZXl9LGJyYWNrZXRzUEw6e3Zpc2liaWxpdHk6ITAsZGlzcGxheTpyLk1vbmV5fSxwb3NpdGlvbkFuZEJyYWNrZXRzUEw6ITAsc2hvd1Byb2plY3RNYXJrZXRPcmRlcjohMCxzaG93T3JkZXJzOiEwLHNob3dFeGVjdXRpb25zOiEwLHNob3dFeGVjdXRpb25zTGFiZWxzOiExLHNob3dSZXZlcnNlOiEwLGhvcml6b250YWxBbGlnbm1lbnQ6dS5SaWdodCxleHRlbmRMZWZ0OiEwLGxpbmVMZW5ndGg6NSxsaW5lV2lkdGg6MSxsaW5lU3R5bGU6d30sdm9sdW1lUGFuZVNpemU6ImxhcmdlIn0sZS5jb250ZW50LmNoYXJ0UHJvcGVydGllcyksc2Vzc2lvbnM6bihnLGUuY29udGVudC5zZXNzaW9ucyksZHJhd2luZ3M6e21hZ25ldDohMSxtYWduZXRTbmFwc1RvSW5kaWNhdG9yczohMSxtYWduZXRNb2RlOnAuV2Vha01hZ25ldCxzdGF5SW5EcmF3aW5nTW9kZTohMSxkcmF3T25BbGxDaGFydHM6ITAsZHJhd09uQWxsQ2hhcnRzTW9kZToxfSxsaW5ldG9vbGV4ZWN1dGlvbjp7ZGlyZWN0aW9uOiJidXkiLGFycm93SGVpZ2h0OjgsYXJyb3dTcGFjaW5nOjEsYXJyb3dCdXlDb2xvcjoiIzQwOTRlOCIsYXJyb3dTZWxsQ29sb3I6IiNlNzU2NTYiLHRleHQ6IiIsdGV4dENvbG9yOmwuY29sb3JCbGFjayx0ZXh0VHJhbnNwYXJlbmN5OjAsZm9udEZhbWlseToiVmVyZGFuYSIsZm9udFNpemU6MTAsZm9udEJvbGQ6ITEsZm9udEl0YWxpYzohMSx0b29sdGlwOiIifSxsaW5ldG9vbGJhbGxvb246e2NvbG9yOkMsYmFja2dyb3VuZENvbG9yOkYsYm9yZGVyQ29sb3I6QSxmb250c2l6ZToxNCx0cmFuc3BhcmVuY3k6MzB9LGxpbmV0b29sY29tbWVudDp7Y29sb3I6QyxiYWNrZ3JvdW5kQ29sb3I6RSxib3JkZXJDb2xvcjpFLGZvbnRzaXplOjE2LHRyYW5zcGFyZW5jeTowfSxsaW5ldG9vbGVsbGlwc2U6e2NvbG9yOlIsZmlsbEJhY2tncm91bmQ6ITAsYmFja2dyb3VuZENvbG9yOlYsdHJhbnNwYXJlbmN5OjUwLGxpbmV3aWR0aDpfLHRleHRDb2xvcjpSLGZvbnRTaXplOjE0LGJvbGQ6ITEsaXRhbGljOiExfSxsaW5ldG9vbHBhcmFsbGVsY2hhbm5lbDp7bGluZWNvbG9yOkUsbGluZXdpZHRoOl8sbGluZXN0eWxlOncsZXh0ZW5kTGVmdDohMSxleHRlbmRSaWdodDohMSxmaWxsQmFja2dyb3VuZDohMCxiYWNrZ3JvdW5kQ29sb3I6TSx0cmFuc3BhcmVuY3k6MjAsc2hvd01pZGxpbmU6ITAsbWlkbGluZWNvbG9yOkUsbWlkbGluZXdpZHRoOjEsbWlkbGluZXN0eWxlOlQsbGFiZWxWaXNpYmxlOiExLGxhYmVsSG9yekFsaWduOiJsZWZ0IixsYWJlbFZlcnRBbGlnbjoiYm90dG9tIixsYWJlbFRleHRDb2xvcjpFLGxhYmVsRm9udFNpemU6MTQsbGFiZWxCb2xkOiExLGxhYmVsSXRhbGljOiExfSxsaW5ldG9vbGZpYnNwZWVkcmVzaXN0YW5jZWZhbjp7ZmlsbEJhY2tncm91bmQ6ITAsdHJhbnNwYXJlbmN5OjgwLGdyaWQ6e2NvbG9yOiJyZ2JhKDIxLCA1NiwgMTUzLCAwLjgpIixsaW5ld2lkdGg6MSxsaW5lc3R5bGU6dyx2aXNpYmxlOiEwfSxsaW5ld2lkdGg6XyxsaW5lc3R5bGU6dyxzaG93VG9wTGFiZWxzOiEwLHNob3dCb3R0b21MYWJlbHM6ITAsc2hvd0xlZnRMYWJlbHM6ITAsc2hvd1JpZ2h0TGFiZWxzOiEwLHJldmVyc2U6ITEsaGxldmVsMTp0KDAseiwhMCksaGxldmVsMjp0KC4yNSxXLCEwKSxobGV2ZWwzOnQoLjM4Mix4LCEwKSxobGV2ZWw0OnQoLjUsTiwhMCksaGxldmVsNTp0KC42MTgsTywhMCksaGxldmVsNjp0KC43NSxFLCEwKSxobGV2ZWw3OnQoMSx6LCEwKSx2bGV2ZWwxOnQoMCx6LCEwKSx2bGV2ZWwyOnQoLjI1LFcsITApLHZsZXZlbDM6dCguMzgyLHgsITApLHZsZXZlbDQ6dCguNSxOLCEwKSx2bGV2ZWw1OnQoLjYxOCxPLCEwKSx2bGV2ZWw2OnQoLjc1LEUsITApLHZsZXZlbDc6dCgxLHosITApfSxsaW5ldG9vbGZpYndlZGdlOntzaG93Q29lZmZzOiEwLGZpbGxCYWNrZ3JvdW5kOiEwLHRyYW5zcGFyZW5jeTo4MCx0cmVuZGxpbmU6e3Zpc2libGU6ITAsY29sb3I6IiM4MDgwODAiLGxpbmV3aWR0aDpfLGxpbmVzdHlsZTp3fSxsZXZlbDE6cyguMjM2LFIsITApLApsZXZlbDI6cyguMzgyLFcsITApLGxldmVsMzpzKC41LE4sITApLGxldmVsNDpzKC42MTgsTywhMCksbGV2ZWw1OnMoLjc4Nix4LCEwKSxsZXZlbDY6cygxLHosITApLGxldmVsNzpzKDEuNjE4LEUsITEpLGxldmVsODpzKDIuNjE4LFIsITEpLGxldmVsOTpzKDMuNjE4LEQsITEpLGxldmVsMTA6cyg0LjIzNixCLCExKSxsZXZlbDExOnMoNC42MTgsQiwhMSl9LGxpbmV0b29sZmlic3BlZWRyZXNpc3RhbmNlYXJjczp7c2hvd0NvZWZmczohMCxmaWxsQmFja2dyb3VuZDohMCx0cmFuc3BhcmVuY3k6ODAsZnVsbENpcmNsZXM6ITEsdHJlbmRsaW5lOnt2aXNpYmxlOiEwLGNvbG9yOnosbGluZXdpZHRoOl8sbGluZXN0eWxlOlR9LGxldmVsMTpzKC4yMzYsUiwhMCksbGV2ZWwyOnMoLjM4MixXLCEwKSxsZXZlbDM6cyguNSxPLCEwKSxsZXZlbDQ6cyguNjE4LE4sITApLGxldmVsNTpzKC43ODYseCwhMCksbGV2ZWw2OnMoMSx6LCEwKSxsZXZlbDc6cygxLjYxOCxFLCEwKSxsZXZlbDg6cygyLjYxOCxCLCEwKSxsZXZlbDk6cygzLjYxOCxFLCEwKSxsZXZlbDEwOnMoNC4yMzYsQiwhMCksbGV2ZWwxMTpzKDQuNjE4LFIsITApfSxsaW5ldG9vbHJlZ3Jlc3Npb250cmVuZDp7bGluZXdpZHRoOjEsbGluZXN0eWxlOncsc3R5bGVzOnt1cExpbmU6e2Rpc3BsYXk6Yy5BbGwsY29sb3I6SSxsaW5lc3R5bGU6dyxsaW5ld2lkdGg6X30sZG93bkxpbmU6e2Rpc3BsYXk6Yy5BbGwsY29sb3I6SSxsaW5lc3R5bGU6dyxsaW5ld2lkdGg6X30sYmFzZUxpbmU6e2Rpc3BsYXk6Yy5BbGwsY29sb3I6ayxsaW5lc3R5bGU6VCxsaW5ld2lkdGg6MX0sZXh0ZW5kTGluZXM6ITEsc2hvd1BlYXJzb25zOiEwLHRyYW5zcGFyZW5jeTo3MH19fSxiKFRyYWRpbmdWaWV3LmRlZmF1bHRQcm9wZXJ0aWVzLmNoYXJ0cHJvcGVydGllcyksUygpfWZvcih2YXIgJD1lLnNwbGl0KCIuIikscT1UcmFkaW5nVmlldy5kZWZhdWx0UHJvcGVydGllcyxLPTA7SzwkLmxlbmd0aDtLKyspcSYmKHE9cVskW0tdXSk7cmV0dXJuIG51bGwhPXE/aShxKTp7fX07ZnVuY3Rpb24gcShlKXtyZXR1cm4gdihlLCQpfVRyYWRpbmdWaWV3LnNhdmVEZWZhdWx0cz1mdW5jdGlvbihlLHQpe3ZvaWQgMD09PXQ/VFZTZXR0aW5ncy5yZW1vdmUoZSk6VFZTZXR0aW5ncy5zZXRKU09OKGUsdCl9LFRyYWRpbmdWaWV3LmZhY3RvcnlEZWZhdWx0cz0kLHdpbmRvdy5kZWZhdWx0cz1xLHQuZGVmYXVsdHM9cSx0LmZhY3RvcnlEZWZhdWx0cz0kLHQuc2F2ZURlZmF1bHRzPVRyYWRpbmdWaWV3LnNhdmVEZWZhdWx0c30sNDY4NTM4KGUsdCxzKXsidXNlIHN0cmljdCI7dmFyIGksbjtzLmQodCx7RHJhd2luZ1N5bmNNb2RlOigpPT5pLFNlbGVjdFBvaW50TW9kZTooKT0+bn0pLGZ1bmN0aW9uKGUpe2VbZS5MYXlvdXQ9MV09IkxheW91dCIsZVtlLkdsb2JhbD0yXT0iR2xvYmFsIn0oaXx8KGk9e30pKSxmdW5jdGlvbihlKXtlW2UuTm9uZT0wXT0iTm9uZSIsZVtlLlJlcGxheT0xXT0iUmVwbGF5IixlW2UuU3R1ZHk9Ml09IlN0dWR5In0obnx8KG49e30pKX0sNjc4Mjg1KGUsdCxzKXsidXNlIHN0cmljdCI7cy5yKHQpLHMuZCh0LHtEcmF3aW5nU3luY01vZGU6KCk9PmkuRHJhd2luZ1N5bmNNb2RlLFNlbGVjdFBvaW50TW9kZTooKT0+aS5TZWxlY3RQb2ludE1vZGUsYWN0aXZlUG9pbnRTZWxlY3Rpb25Nb2RlOigpPT5aLGFsaWduVG80NURlZ3JlZXM6KCk9Pk1lLGJhclRpbWVzVW5kZXJDdXJzb3I6KCk9PnRlLGJlZW5TZXRMaW5lVG9vbExhc3RQb2ludDooKT0+VyxjYW5jZWxMaW5lVG9vbDooKT0+b2UsY2FuY2VsbGVkTGluZVRvb2w6KCk9Pk4sY2hhbmdlTGluZVN0eWxlOigpPT5nZSxjaGFuZ2VMaW5lVG9vbDooKT0+aGUsY2hhbmdlZExpbmVTdHlsZTooKT0+RyxjaGFuZ2VkTGluZVRvb2w6KCk9PiQsY29udGludWVMaW5lVG9vbDooKT0+cmUsY29udGludWVkTGluZVRvb2w6KCk9Pk8sY29waWVkTGluZVRvb2w6KCk9PkosY29weUxpbmVUb29sOigpPT55ZSxjcmVhdGVMaW5lVG9vbDooKT0+bmUsY3JlYXRlZExpbmVUb29sOigpPT5CLGNyb3NzaGFpckxvY2s6KCk9PkksY3Vyc29yVG9vbDooKT0+UixkcmF3T25BbGxDaGFydHM6KCk9PkRlLGRyYXdPbkFsbENoYXJ0c01vZGU6KCk9PnhlLGVtb2ppVG9vbDooKT0+RCxmaW5pc2hDaGFuZ2luZ0xpbmVUb29sOigpPT5wZSxmaW5pc2hMaW5lVG9vbDooKT0+X2UsZmluaXNoTW92aW5nTGluZVRvb2w6KCk9PmNlLGZpbmlzaGVkQ2hhbmdpbmdMaW5lVG9vbDooKT0+cSxmaW5pc2hlZExpbmVUb29sOigpPT5ZLGZpbmlzaGVkTW92aW5nTGluZVRvb2w6KCk9PkgsaGlkZUFsbERyYXdpbmdzOigpPT5DZSxoaWRlQWxsSW5kaWNhdG9yczooKT0+RWUsaGlkZU1hcmtzT25CYXJzOigpPT5MZSxpY29uVG9vbDooKT0+TSxpbml0OigpPT53ZSxpc0RpcmVjdGlvbmFsTW92ZW1lbnRBY3RpdmU6KCk9PkYsaXNTdHVkeUVkaXRpbmdOb3c6KCk9PmVlLGlzVG9vbENyZWF0aW5nTm93OigpPT5rLGlzVG9vbEVkaXRpbmdOb3c6KCk9PlYsaXNUb29sTW92aW5nTm93OigpPT5BLGxvY2tEcmF3aW5nczooKT0+SWUsbW92ZUxpbmVUb29sOigpPT51ZSxtb3ZlZExpbmVUb29sOigpPT56LHByb3BlcnRpZXM6KCk9PlRlLHJlbW92ZUxpbmVUb29sOigpPT5tZSxyZW1vdmVkTGluZVRvb2w6KCk9PksscmVzZXRUb0N1cnNvcjooKT0+dixyZXN0b3JlTGluZVRvb2w6KCk9PmZlLHJlc3RvcmVMaW5lVG9vbFN0YXRlOigpPT52ZSxyZXN0b3JlZExpbmVUb29sOigpPT5YLHJlc3RvcmVkTGluZVRvb2xTdGF0ZTooKT0+USxydW5PbkRyYXdpbmdTdGF0ZVJlYWR5OigpPT5QZSxzZXRMaW5lVG9vbExhc3RQb2ludDooKT0+YWUsc3RhcnRDaGFuZ2luZ0xpbmVUb29sOigpPT5kZSxzdGFydE1vdmluZ0xpbmVUb29sOigpPT5sZSxzdGFydGVkQ2hhbmdpbmdMaW5lVG9vbDooKT0+aixzdGFydGVkTW92aW5nTGluZVRvb2w6KCk9PlUsc3RpY2tlclRvb2w6KCk9PngsdG9vbDooKT0+TCx0b29sSXNDdXJzb3I6KCk9Pl8sdG9vbElzRGVtb25zdHJhdGlvbjooKT0+eSx0b29sSXNFcmFzZXI6KCk9PmcsdG9vbElzTWVhc3VyZTooKT0+Zix0cnlTZWxlY3RMaW5lVG9vbDooKT0+Yn0pCjt2YXIgaT1zKDQ2ODUzOCksbj1zKDEzODYzOCkscj1zKDM3ODA4KSxvPXMoOTc0NjYzKSxhPXMoMjMyMzY0KSxsPXMoNDAyMDQ1KSx1PXMoOTQ4MzgwKSxjPXMoOTMwNTY2KSxkPXMoMTc5NzcxKSxoPXMoMzg2OTMxKSxwPXMoNTU2NjUxKTtjb25zdCBtPW5ldyBTZXQoWyJjdXJzb3IiLCJhcnJvdyIsImRvdCIsInBlcmZvcm1hbmNlIiwiZGVtb25zdHJhdGlvbiJdKTtmdW5jdGlvbiBfKGUpe3JldHVybiBtLmhhcyhlKX1mdW5jdGlvbiBnKGUpe3JldHVybiJlcmFzZXIiPT09ZX1mdW5jdGlvbiB5KGUpe3JldHVybiJkZW1vbnN0cmF0aW9uIj09PWV9ZnVuY3Rpb24gZihlKXtyZXR1cm4ibWVhc3VyZSI9PT1lfWZ1bmN0aW9uIHYoZT0hMSl7aWYoIWUmJlMpe2lmKFMuY2hpbGRzKCkuc3RheUluRHJhd2luZ01vZGUudmFsdWUoKSlyZXR1cm59TC5zZXRWYWx1ZShSLnZhbHVlKCkpfWZ1bmN0aW9uIGIoZSl7cmV0dXJuISEoMCxwLmVuc3VyZURyYXdpbmdTZWxlY3RBbGxvd2VkKShlKSYmKEwuc2V0VmFsdWUoZSksITApfWxldCBTPW51bGwsdz1udWxsLFA9bnVsbCxUPW51bGwsQz1udWxsLEU9bnVsbDtjb25zdCBJPW5ldyBsLldhdGNoZWRPYmplY3QobnVsbCksTD1uZXcgYS5XYXRjaGVkVmFsdWUsTT1uZXcgYS5XYXRjaGVkVmFsdWUsRD1uZXcgYS5XYXRjaGVkVmFsdWUseD1uZXcgYS5XYXRjaGVkVmFsdWUsUj1uZXcgYS5XYXRjaGVkVmFsdWUsaz1uZXcgYS5XYXRjaGVkVmFsdWUoITEpLFY9bmV3IGEuV2F0Y2hlZFZhbHVlKCExKSxBPW5ldyBhLldhdGNoZWRWYWx1ZSghMSksRj1uZXcgYS5XYXRjaGVkVmFsdWUoITEpLEI9bmV3IHUuRGVsZWdhdGUsTz1uZXcgdS5EZWxlZ2F0ZSxOPW5ldyB1LkRlbGVnYXRlLFc9bmV3IHUuRGVsZWdhdGUsVT1uZXcgdS5EZWxlZ2F0ZSx6PW5ldyB1LkRlbGVnYXRlLEg9bmV3IHUuRGVsZWdhdGUsaj1uZXcgdS5EZWxlZ2F0ZSwkPW5ldyB1LkRlbGVnYXRlLHE9bmV3IHUuRGVsZWdhdGUsSz1uZXcgdS5EZWxlZ2F0ZSxZPW5ldyB1LkRlbGVnYXRlLEc9bmV3IHUuRGVsZWdhdGUsSj1uZXcgdS5EZWxlZ2F0ZSxYPW5ldyB1LkRlbGVnYXRlLFE9bmV3IHUuRGVsZWdhdGUsWj1uZXcgYS5XYXRjaGVkVmFsdWUoaS5TZWxlY3RQb2ludE1vZGUuTm9uZSksZWU9bmV3IGEuV2F0Y2hlZFZhbHVlKCExKSx0ZT1uZXcgTWFwO2Z1bmN0aW9uIHNlKGUsdCl7Y29uc3Qgcz10fHx7dmFsdWU6ITF9O3JldHVybiB0PT57cy52YWx1ZXx8KHMudmFsdWU9ITAsZS5maXJlKHQpLHMudmFsdWU9ITEpfX1jb25zdCBpZT17dmFsdWU6ITF9LG5lPXNlKEIsaWUpLHJlPXNlKE8saWUpLG9lPXNlKE4saWUpLGFlPXNlKFcsaWUpLGxlPXNlKFUpLHVlPXNlKHopLGNlPXNlKEgpLGRlPXNlKGopLGhlPXNlKCQpLHBlPXNlKHEpLG1lPXNlKEspLF9lPXNlKFkpLGdlPXNlKEcsaWUpLHllPXNlKEosaWUpLGZlPXNlKFgpLHZlPXNlKFEpO2xldCBiZT0hMSxTZT1bXTtmdW5jdGlvbiB3ZSgpe2lmKGJlKXJldHVybjtjb25zdCBlPWMuZ2V0VmFsdWUoImNoYXJ0LmN1cnNvclByZWZlcmVuY2UiLCJjdXJzb3IiKTtMLnNldFZhbHVlKF8oZSk/ZToiY3Vyc29yIiksTC5zdWJzY3JpYmUoKGU9PntfKGUpP1Iuc2V0VmFsdWUoZSk6ZyhlKSYmKDAsaC50cmFja0V2ZW50KSgiQ2hhcnQgY3Vyc29ycyIsZSl9KSx7Y2FsbFdpdGhMYXN0OiEwfSksUi5zdWJzY3JpYmUoKGU9PnsoMCxoLnRyYWNrRXZlbnQpKCJDaGFydCBjdXJzb3JzIixlKSxlJiYicGVyZm9ybWFuY2UiIT09ZSYmIXkoZSkmJmMuc2V0VmFsdWUoImNoYXJ0LmN1cnNvclByZWZlcmVuY2UiLGUpfSkpLFM9bmV3IG8uRGVmYXVsdFByb3BlcnR5KHtkZWZhdWx0TmFtZToiZHJhd2luZ3MifSksdz0oMCxyLmNyZWF0ZVByaW1pdGl2ZVByb3BlcnR5KSghMSksUD0oMCxyLmNyZWF0ZVByaW1pdGl2ZVByb3BlcnR5KSghMSksVD0oMCxyLmNyZWF0ZVByaW1pdGl2ZVByb3BlcnR5KSghMSksQz0oMCxyLmNyZWF0ZVByaW1pdGl2ZVByb3BlcnR5KSghYy5nZXRCb29sKCJCYXJzTWFya3NDb250YWluZXIudmlzaWJpbGUiLCEwKSksRT0oMCxyLmNyZWF0ZVByaW1pdGl2ZVByb3BlcnR5KSghMSksTC5zdWJzY3JpYmUoKGU9PnsoMCxkLmVtaXQpKCJvblNlbGVjdGVkTGluZVRvb2xDaGFuZ2VkIil9KSksYmU9ITAsU2UuZm9yRWFjaCgoZT0+ZSgpKSksU2U9W119ZnVuY3Rpb24gUGUoZSl7YmU/ZSgpOlNlLnB1c2goZSl9ZnVuY3Rpb24gVGUoKXtyZXR1cm4oMCxuLmVuc3VyZU5vdE51bGwpKFMpfWZ1bmN0aW9uIENlKCl7cmV0dXJuKDAsbi5lbnN1cmVOb3ROdWxsKSh3KX1mdW5jdGlvbiBFZSgpe3JldHVybigwLG4uZW5zdXJlTm90TnVsbCkoUCl9ZnVuY3Rpb24gSWUoKXtyZXR1cm4oMCxuLmVuc3VyZU5vdE51bGwpKFQpfWZ1bmN0aW9uIExlKCl7cmV0dXJuKDAsbi5lbnN1cmVOb3ROdWxsKShDKX1mdW5jdGlvbiBNZSgpe3JldHVybigwLG4uZW5zdXJlTm90TnVsbCkoRSl9ZnVuY3Rpb24gRGUoKXtyZXR1cm4gVGUoKS5jaGlsZHMoKS5kcmF3T25BbGxDaGFydHN9ZnVuY3Rpb24geGUoKXtyZXR1cm4gVGUoKS5jaGlsZHMoKS5kcmF3T25BbGxDaGFydHNNb2RlfX0sOTQzOTUoZSx0LHMpeyJ1c2Ugc3RyaWN0Ijt2YXIgaSxuLHI7cy5kKHQse1RpdGxlRGlzcGxheVRhcmdldDooKT0+cn0pLGZ1bmN0aW9uKGUpe2VbZS5BZnRlck1haW5TZXJpZXM9MF09IkFmdGVyTWFpblNlcmllcyJ9KGl8fChpPXt9KSksZnVuY3Rpb24oZSl7ZVtlLklkbGU9MF09IklkbGUiLGVbZS5Qcm9jZXNzaW5nPTFdPSJQcm9jZXNzaW5nIixlW2UuQWN0aXZlPTJdPSJBY3RpdmUiLGVbZS5TdG9wcGVkPTNdPSJTdG9wcGVkIn0obnx8KG49e30pKSxmdW5jdGlvbihlKXtlW2UuRGF0YVdpbmRvdz0xXT0iRGF0YVdpbmRvdyIsZVtlLlN0YXR1c0xpbmU9Ml09IlN0YXR1c0xpbmUiLGVbZS5BbGVydHM9M109IkFsZXJ0cyJ9KHJ8fChyPXt9KSl9LDIxNDc1MChlLHQscyl7InVzZSBzdHJpY3QiO3MuZCh0LHtDb2xsZWN0aWJsZUNvbG9yUHJvcGVydHlEaXJlY3RXcmFwcGVyOigpPT5hLENvbGxlY3RpYmxlQ29sb3JQcm9wZXJ0eVVuZG9XcmFwcGVyOigpPT5vfSk7dmFyIGk9cygxMzg2MzgpLG49cyg3NjgyOTIpCjtjbGFzcyByIGV4dGVuZHMgbi5Qcm9wZXJ0eXtjb25zdHJ1Y3RvcihlKXtzdXBlcigpLHRoaXMuX2xpc3RlbmVyc01hcHBlcnM9W10sdGhpcy5faXNQcm9jZXNzPSExLHRoaXMuX2Jhc2VQcm9wZXJ0eT1lfWRlc3Ryb3koKXt0aGlzLl9iYXNlUHJvcGVydHkuZGVzdHJveSgpLHN1cGVyLmRlc3Ryb3koKX12YWx1ZSgpe2NvbnN0IGU9dGhpcy5fYmFzZVByb3BlcnR5LnZhbHVlKCk7cmV0dXJuIm1peGVkIj09PWU/IiI6ZX12aXNpYmxlKCl7cmV0dXJuIHRoaXMuX2Jhc2VQcm9wZXJ0eS52aXNpYmxlKCl9c2V0VmFsdWUoZSl7dGhpcy5faXNQcm9jZXNzPSEwLHRoaXMuX2Jhc2VQcm9wZXJ0eS5zZXRWYWx1ZSgiIj09PWU/Im1peGVkIjplLHZvaWQgMCx7YXBwbHlWYWx1ZTp0aGlzLl9hcHBseVZhbHVlLmJpbmQodGhpcyl9KSx0aGlzLl9pc1Byb2Nlc3M9ITEsdGhpcy5fbGlzdGVuZXJzTWFwcGVycy5mb3JFYWNoKChlPT57ZS5tZXRob2QuY2FsbChlLm9iaix0aGlzLCIiKX0pKX1zdWJzY3JpYmUoZSx0KXtjb25zdCBzPXM9Pnt0aGlzLl9pc1Byb2Nlc3N8fHQuY2FsbChlLHRoaXMsIiIpfSxpPXtvYmo6ZSxtZXRob2Q6dCxjYWxsYmFjazpzfTt0aGlzLl9saXN0ZW5lcnNNYXBwZXJzLnB1c2goaSksdGhpcy5fYmFzZVByb3BlcnR5LnN1YnNjcmliZShlLHMpfXVuc3Vic2NyaWJlKGUsdCl7Y29uc3Qgcz0oMCxpLmVuc3VyZURlZmluZWQpKHRoaXMuX2xpc3RlbmVyc01hcHBlcnMuZmluZCgocz0+cy5vYmo9PT1lJiZzLm1ldGhvZD09PXQpKT8uY2FsbGJhY2spO3RoaXMuX2Jhc2VQcm9wZXJ0eS51bnN1YnNjcmliZShlLHMpfXVuc3Vic2NyaWJlQWxsKGUpe3RoaXMuX2Jhc2VQcm9wZXJ0eS51bnN1YnNjcmliZUFsbChlKX19Y2xhc3MgbyBleHRlbmRzIHJ7Y29uc3RydWN0b3IoZSx0LHMpe3N1cGVyKGUpLHRoaXMuX3Byb3BlcnR5QXBwbGllcj10LHRoaXMuX3VuZG9UZXh0PXN9X2FwcGx5VmFsdWUoZSx0KXt0aGlzLl9wcm9wZXJ0eUFwcGxpZXIuc2V0UHJvcGVydHkoZSx0LHRoaXMuX3VuZG9UZXh0KX19Y2xhc3MgYSBleHRlbmRzIHJ7X2FwcGx5VmFsdWUoZSx0KXtlLnNldFZhbHVlKHQpfX19LDg4MTkyKGUsdCxzKXsidXNlIHN0cmljdCI7cy5kKHQse2lzTGluZVRvb2w6KCk9PnIsaXNTdHVkeUxpbmVUb29sOigpPT5vfSk7dmFyIGk9cyg2MDE4NDEpLG49cyg4NjA0NDIpO2Z1bmN0aW9uIHIoZSl7cmV0dXJuKDAsaS5pc09iamVjdCkoZSkmJiJpc0xpbmVUb29sImluIGUmJmUuaXNMaW5lVG9vbH1mdW5jdGlvbiBvKGUpe3JldHVybiByKGUpJiYoMCxuLmlzU3R1ZHlMaW5lVG9vbE5hbWUpKGUudG9vbG5hbWUpfX0sNzA3OTYzKGUsdCxzKXsidXNlIHN0cmljdCI7cy5kKHQse0xpbmVUb29sQ29sbGVjdGVkUHJvcGVydHk6KCk9PnUsTGluZVRvb2xDb2xvcnNQcm9wZXJ0eTooKT0+ZCxMaW5lVG9vbFdpZHRoc1Byb3BlcnR5OigpPT5jLE11bHRpcGxlTGluZUNvbG9yc1Byb3BlcnR5OigpPT5tLE11bHRpcGxlTGluZVdpZHRoc1Byb3BlcnR5OigpPT5wfSk7dmFyIGk9cygyMjEwNjEpLG49cygxMzEyOTQpLHI9cyg2MzY5MTIpO2NvbnN0IG89KDAsaS5nZXRMb2dnZXIpKCJDaGFydC5MaW5lVG9vbENvbGxlY3RlZFByb3BlcnR5Iik7Y2xhc3MgYXthcHBseVZhbHVlKGUsdCl7ZS5zZXRWYWx1ZSh0KX19Y2xhc3MgbCBleHRlbmRzIHIuUHJvcGVydHlCYXNle2NvbnN0cnVjdG9yKGUsdCl7c3VwZXIoKSx0aGlzLl9wcm9wZXJ0aWVzPWUsZS5mb3JFYWNoKCgoZSx0KT0+ZS5zdWJzY3JpYmUodGhpcywoKGUscyk9Pnt0aGlzLl9saXN0ZW5lcnMuZmlyZSh0aGlzLGAke3R9LiR7c31gKX0pKSkpLHRoaXMuX3Nob3dJZlByb3BlcnR5PXR9dmlzaWJsZSgpe3JldHVybiF0aGlzLl9zaG93SWZQcm9wZXJ0eXx8dGhpcy5fc2hvd0lmUHJvcGVydHk/LnZhbHVlKCl9dmFsdWUoKXtpZigwPT09dGhpcy5fcHJvcGVydGllcy5sZW5ndGgpcmV0dXJuIG8ubG9nRXJyb3IoIkluY29ycmVjdCBjYWxsLCBzaG91bGQgbm90IHJlcXVlc3QgdmFsdWUgb2YgMCBwcm9wZXJ0aWVzIiksIm1peGVkIjtjb25zdCBlPXRoaXMuX3Byb3BlcnRpZXNbMF0udmFsdWUoKTtyZXR1cm4gMT09PXRoaXMuX3Byb3BlcnRpZXMubGVuZ3RofHx0aGlzLl9wcm9wZXJ0aWVzLmV2ZXJ5KCh0PT50LnZhbHVlKCk9PT1lKSk/ZToibWl4ZWQifXNldFZhbHVlU2lsZW50bHkoZSl7Im1peGVkIiE9PWUmJnRoaXMuX3Byb3BlcnRpZXMuZm9yRWFjaCgodD0+dC5zZXRWYWx1ZVNpbGVudGx5KGUpKSl9aGFzQ2hpbGQoZSl7Y29uc3QgdD1wYXJzZUludChlLDEwKTtyZXR1cm4haXNOYU4odCkmJnQ+PTAmJnQ8dGhpcy5fcHJvcGVydGllcy5sZW5ndGh9Y2hpbGRDb3VudCgpe3JldHVybiB0aGlzLl9wcm9wZXJ0aWVzLmxlbmd0aH1jaGlsZE5hbWVzKCl7cmV0dXJuIHRoaXMuX3Byb3BlcnRpZXMubWFwKCgoZSx0KT0+dC50b1N0cmluZygpKSl9Y2hpbGQoZSl7Y29uc3QgdD1wYXJzZUludChlLDEwKTtyZXR1cm4haXNOYU4odCkmJnQ+PTAmJnQ8dGhpcy5fcHJvcGVydGllcy5sZW5ndGg/dGhpcy5fcHJvcGVydGllc1t0XTp2b2lkIDB9ZGVzdHJveSgpe3RoaXMuX3Byb3BlcnRpZXMuZm9yRWFjaCgoZT0+ZS51bnN1YnNjcmliZUFsbCh0aGlzKSkpLHRoaXMuX2xpc3RlbmVycy5kZXN0cm95KCl9c3RvcmVTdGF0ZUlmVW5kZWZpbmVkKCl7cmV0dXJuITB9d2Vha1JlZmVyZW5jZSgpe3JldHVybigwLG4ud2Vha1JlZmVyZW5jZSkodGhpcyl9b3duZXJzaGlwKCl7cmV0dXJuKDAsbi5vd25lcnNoaXApKHRoaXMpfX1jbGFzcyB1IGV4dGVuZHMgbHtzZXRWYWx1ZShlLHQscyl7aWYoIm1peGVkIj09PWUpcmV0dXJuO2NvbnN0IGk9cz8/bmV3IGE7dGhpcy5fcHJvcGVydGllcy5mb3JFYWNoKCh0PT5pLmFwcGx5VmFsdWUodCxlKSkpfX1jbGFzcyBjIGV4dGVuZHMgdXt9Y2xhc3MgZCBleHRlbmRzIHV7Zmlyc3RDb2xvcigpe3JldHVybiB0aGlzLl9wcm9wZXJ0aWVzWzBdLnZhbHVlKCl9fWNsYXNzIGggZXh0ZW5kcyBse3NldFZhbHVlKGUsdCxzKXtpZigibWl4ZWQiPT09ZSlyZXR1cm47Y29uc3QgaT1zPz9uZXcgYQo7dGhpcy5fcHJvcGVydGllcy5mb3JFYWNoKCh0PT50LnNldFZhbHVlKGUsdm9pZCAwLGkpKSl9fWNsYXNzIHAgZXh0ZW5kcyBoe31jbGFzcyBtIGV4dGVuZHMgaHt9fSw1MjkxNjUoZSx0LHMpeyJ1c2Ugc3RyaWN0IjtzLmQodCx7bGluZVRvb2xzU3R1ZHlJZHM6KCk9Pml9KTtjb25zdCBpPXtMaW5lVG9vbEFuY2hvcmVkVldBUDoiQW5jaG9yZWRWV0FQQHR2LWJhc2ljc3R1ZGllcyIsTGluZVRvb2xSZWdyZXNzaW9uVHJlbmQ6IlJlZ3Jlc3Npb25UcmVuZEB0di1iYXNpY3N0dWRpZXMiLExpbmVUb29sRml4ZWRSYW5nZVZvbHVtZVByb2ZpbGU6IlZiUEZpeGVkQHR2LWJhc2ljc3R1ZGllcyIsTGluZVRvb2xWYlBGaXhlZDoiVmJQRml4ZWRAdHYtdm9sdW1lYnlwcmljZSJ9O3tjb25zdCBlPXtMaW5lVG9vbEFuY2hvcmVkVm9sdW1lUHJvZmlsZToiVmJQQW5jaG9yZWRAdHYtYmFzaWNzdHVkaWVzIn07Zm9yKGNvbnN0W3Qsc11vZiBPYmplY3QuZW50cmllcyhlKSlpW3RdPXN9fSwzNjgxMTAoZSx0LHMpeyJ1c2Ugc3RyaWN0IjtzLmQodCx7Y2xvbmVMaW5lVG9vbDooKT0+TyxjcmVhdGVMaW5lVG9vbDooKT0+TCxjcmVhdGVMaW5lVG9vbFByb3BlcnRpZXM6KCk9PkQsY3JlYXRlU3R1ZHlMaW5lVG9vbFByb3BlcnRpZXM6KCk9PngsZW5zdXJlQWxsTGluZVRvb2xzTG9hZGVkRm9yTGF5b3V0OigpPT5FLGluaXRBbGxMaW5lVG9vbHNGcm9tQ29udGVudDooKT0+SSxpbml0TGluZVRvb2w6KCk9PncsaXNCcnVzaEJhc2VkTGluZVRvb2w6KCk9PmssaXNFZGl0YWJsZVRleHRMaW5lVG9vbDooKT0+Rixpc0xpbmVUb29sOigpPT5mLmlzTGluZVRvb2wsaXNUcmFkaW5nOigpPT5WLHByZXBhcmVMaW5lVG9vbFByb3BlcnRpZXNCeU93bmVyU291cmNlOigpPT5NLHNldE5ld1Rvb2xQcm9wZXJ0aWVzOigpPT5iLHN1cHBvcnRzUGhhbnRvbU1vZGU6KCk9PlIsdHJ5RmluZFN0dWR5TGluZVRvb2xOYW1lQnlTdHVkeUlkOigpPT5CLHVuc2V0TmV3VG9vbFByb3BlcnRpZXM6KCk9PlN9KTt2YXIgaT1zKDg4MDExNSksbj1zKDEzODYzOCkscj1zKDczNjUzMSksbz1zKDIyMTA2MSksYT1zKDQ3NzMpLGw9cyg2OTE3OTUpLHU9cyg2Nzc5NTgpLGM9cygxMjg5OTgpLGQ9cyg4NjA0NDIpLGg9cyg1MjkxNjUpLHA9cyg0NTY4NjIpLG09cyg4NTYxOTYpLF89cygzNTUxMjMpLGc9cygzMjk2NjYpLHk9cyg2MDU4NzcpLGY9cyg4ODE5Mik7bGV0IHY9bnVsbDtmdW5jdGlvbiBiKGUsdCxzKXtyZXR1cm4gbnVsbCE9PXYmJnYudG9vbD09PWUmJnYudG9vbERhdGE9PT10fHwoUyghMCksdj17cHJvcGVydGllczpEKHMuYmFja2dyb3VuZFRoZW1lKCkuc3Bhd25Pd25lcnNoaXAoKSxlLCFzLnJlYWRPbmx5KCkpLHRvb2w6ZSx0b29sRGF0YTp0fSksdi5wcm9wZXJ0aWVzfWZ1bmN0aW9uIFMoZSl7ZSYmdj8ucHJvcGVydGllcy5kZXN0cm95KCksdj1udWxsfWFzeW5jIGZ1bmN0aW9uIHcoZSl7YXdhaXQoMCxnLmxvYWRNZXRhSW5mb0ZvckxpbmV0b29sSWZSZXF1aXJlZCkoZSk7Y29uc3QgdD0oMCxnLmFzTGluZVRvb2xOYW1lKShlKTsoMCxnLmlzTGluZVRvb2xMb2FkZWQpKHQpfHwoMCxkLmlzTGluZVRvb2xOYW1lKSh0KSYmYXdhaXQoMCxnLmxvYWRMaW5lVG9vbCkodCl9ZnVuY3Rpb24gUChlLHQpe2NvbnN0IHM9ImNoYXJ0cyJpbiBlP2UuY2hhcnRzOltlXTtmb3IoY29uc3QgZSBvZiBzKXtmb3IoY29uc3QgcyBvZiBlLnBhbmVzKWZvcihjb25zdCBlIG9mIHMuc291cmNlcyl0KCgwLHkuZ2V0TGluZVRvb2xUeXBlRnJvbVN0YXRlKShlKSk7ZS5saW5lVG9vbHNHcm91cHM/Lmdyb3Vwcy5mb3JFYWNoKChlPT57ZS50b29scy5mb3JFYWNoKChlPT50KGUpKSl9KSl9fWNsYXNzIFQgZXh0ZW5kcyBFcnJvcntjb25zdHJ1Y3RvcihlLHQpe3N1cGVyKGBGYWlsZWQgdG8gbG9hZCBsaW5lIHRvb2w6ICR7ZX1gKSx0aGlzLm5hbWU9IkxpbmVUb29sTG9hZEVycm9yIix0aGlzLnRvb2xOYW1lPWUsdGhpcy5vcmlnaW5hbEVycm9yPXR9fWNvbnN0IEM9KDAsby5nZXRMb2dnZXIpKCJMaW5lVG9vbHNTeW5jaHJvbml6ZXIiKTthc3luYyBmdW5jdGlvbiBFKGUpe2NvbnN0IHQ9bmV3IFNldCxzPWU9PnsoMCxnLmlzQXN5bmNHZW5lcmljTGluZVRvb2xOYW1lKShlKSYmdC5hZGQoZSl9O2Zvcihjb25zdCB0IG9mIGUpUCh0LHMpO2NvbnN0IGk9Wy4uLnRdLG49KGF3YWl0IFByb21pc2UuYWxsU2V0dGxlZChpLm1hcCgoZT0+KDAsZy5lbnN1cmVMaW5lVG9vbExvYWRlZCkoZSkuY2F0Y2goKHQ9Pnt0aHJvdyBuZXcgVChlLHQpfSkpKSkpKS5maWx0ZXIoKGU9PiJyZWplY3RlZCI9PT1lLnN0YXR1cykpO24ubGVuZ3RoPjAmJm4uZm9yRWFjaCgoZT0+e2NvbnN0IHQ9ZS5yZWFzb247Qy5sb2dFcnJvcihgRmFpbGVkIHRvIGxvYWQgbGluZSB0b29sOiAke3QudG9vbE5hbWV9YCl9KSl9YXN5bmMgZnVuY3Rpb24gSShlKXtpZighZSlyZXR1cm47Y29uc3QgdD1uZXcgU2V0O1AoZSwoZT0+eygwLGQuaXNMaW5lVG9vbE5hbWUpKGUpJiZ0LmFkZChlKX0pKSxhd2FpdCBQcm9taXNlLmFsbChBcnJheS5mcm9tKHQpLm1hcCgoZT0+dyhlKSkpKX1mdW5jdGlvbiBMKGUsdCxzLGkscixvLGEpeygwLG4uYXNzZXJ0KSgoMCxkLmlzTGluZVRvb2xOYW1lKShlKSwiVW5rbm93biBsaW5lIHRvb2w6ICIrZSk7Y29uc3QgbD0oMCxnLmFzTGluZVRvb2xOYW1lKShlKTtsZXQgdTtpZigoMCxuLmFzc2VydCkoKDAsZy5pc0xpbmVUb29sTG9hZGVkKShsKSxgTGluZSB0b29sICR7bH0gaXMgbm90IGxvYWRlZGApLHJ8fHN8fG51bGw9PT12fHx2LnRvb2whPT1lfHwocz12LnByb3BlcnRpZXMsUyghMSkpLCgwLGcuaXNBc3luY1N0dWR5TGluZVRvb2xOYW1lKShsKSl7dT1uZXcoKDAsZy5nZXRMb2FkZWRMaW5lVG9vbCkobCkpKHQscywoMCxuLmVuc3VyZURlZmluZWQpKGkpLHIsbyl9ZWxzZXt1PW5ldygoMCxnLmdldExvYWRlZExpbmVUb29sKShsKSkodCxzLHIsbyl9cmV0dXJuIHUudG9vbG5hbWU9ZSxTKCEwKSx2b2lkIDAhPT1hJiYoMCxtLnNob3VsZEFmZmVjdFVzZXIpKCJEcmF3aW5nQ3JlYXRpb25zIixfLnNwYXJzZVVzZXJzVHJhY2tpbmdDb2VmZmljaWVudCkmJigwLApwLnRyYWNrQ2hhcnREcmF3aW5nQ3JlYXRpb24pKGUsYSksdX1mdW5jdGlvbiBNKGUsdCl7Y29uc3Qgcz0oMCxuLmVuc3VyZU5vdE51bGwpKHQuc3ltYm9sU291cmNlKCkpLGk9cy5zeW1ib2xJbmZvKCkscj10LmN1cnJlbmN5T3JpZ2luU291cmNlKCkudmFsdWUoKSxvPXQudW5pdE9yaWdpblNvdXJjZSgpLnZhbHVlKCksYT1pPygwLGMuZXh0cmFjdExpbmVUb29sU3ltYm9sRnJvbVN5bWJvbEluZm8pKGkscy5zeW1ib2woKSk6cy5zeW1ib2woKTtlLmNoaWxkcygpLnN5bWJvbC5zZXRWYWx1ZShhKSxzLm1vZGVsKCkuY3VycmVuY3lDb252ZXJzaW9uRW5hYmxlZCgpJiZyLmlzQ29udmVydGVkVG9PdGhlckN1cnJlbmN5KCkmJmUuY2hpbGRzKCkuY3VycmVuY3lJZC5zZXRWYWx1ZShyLmN1cnJlbmN5KCkpLHMubW9kZWwoKS51bml0Q29udmVyc2lvbkVuYWJsZWQoKSYmby5pc0NvbnZlcnRlZFRvT3RoZXJVbml0KCkmJmUuY2hpbGRzKCkudW5pdElkLnNldFZhbHVlKG8udW5pdCgpKSxzLm1vZGVsKCkubWV0cmljQ29udmVyc2lvbkVuYWJsZWQoKSYmZS5jaGlsZHMoKS5tZXRyaWNJZC5zZXRWYWx1ZShzLm1vZGVsKCkubWFpblNlcmllcygpLm1ldHJpYygpPz8icHJpY2UiKSxlLmNoaWxkcygpLnN5bWJvbFN0YXRlVmVyc2lvbi5zZXRWYWx1ZSgyKSxlLmNoaWxkcygpLnpPcmRlclZlcnNpb24uc2V0VmFsdWUoMil9ZnVuY3Rpb24gRChlLHQscyxpKXsoMCxuLmFzc2VydCkoKDAsZC5pc0xpbmVUb29sTmFtZSkodCksYCR7dH0gc2hvdWxkIGJlIG5hbWUgb2YgdGhlIGxpbmUgdG9vbGApO2NvbnN0IHI9KDAsZy5hc0xpbmVUb29sTmFtZSkodCk7aWYoKDAsbi5hc3NlcnQpKCgwLGcuaXNMaW5lVG9vbExvYWRlZCkociksYExpbmUgdG9vbCAke3J9IGlzIG5vdCBsb2FkZWRgKSwoMCxnLmlzQXN5bmNTdHVkeUxpbmVUb29sTmFtZSkocikpe3JldHVybigwLGcuZ2V0TG9hZGVkTGluZVRvb2wpKHIpLmNyZWF0ZVByb3BlcnRpZXMoZSxpKX1yZXR1cm4oMCxnLmdldExvYWRlZExpbmVUb29sKShyKS5jcmVhdGVQcm9wZXJ0aWVzKGUsaSxzKX1mdW5jdGlvbiB4KGUsdCxzLGkscixvKXsoMCxuLmFzc2VydCkoKDAsZC5pc1N0dWR5TGluZVRvb2xOYW1lKSh0KSxgJHt0fSBzaG91bGQgYmUgbmFtZSBvZiB0aGUgc3R1ZHkgbGluZSB0b29sYCk7Y29uc3QgYT0oMCxnLmFzTGluZVRvb2xOYW1lKSh0KTtpZigoMCxnLmlzQXN5bmNTdHVkeUxpbmVUb29sTmFtZSkoYSkpe3JldHVybigwLGcuZ2V0TG9hZGVkTGluZVRvb2wpKGEpLmNyZWF0ZVByb3BlcnRpZXNGcm9tU3R1ZHlNZXRhSW5mb0FuZFN0YXRlKHMsaSxyLG8sZSl9dGhyb3cgbmV3IEVycm9yKGBQcm9wZXJ0eSBjcmVhdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgZm9yIHN0dWR5IGxpbmUgdG9vbCAke3R9YCl9ZnVuY3Rpb24gUihlKXsoMCxuLmFzc2VydCkoKDAsZC5pc0xpbmVUb29sTmFtZSkoZSksYCR7ZX0gc2hvdWxkIGJlIG5hbWUgb2YgdGhlIGxpbmUgdG9vbGApO2NvbnN0IHQ9KDAsZy5hc0xpbmVUb29sTmFtZSkoZSk7KDAsbi5hc3NlcnQpKCgwLGcuaXNMaW5lVG9vbExvYWRlZCkodCksYExpbmUgdG9vbCAke3R9IGlzIG5vdCBsb2FkZWRgKTtjb25zdCBzPSgwLGcuZ2V0TG9hZGVkTGluZVRvb2wpKHQpO3JldHVybiB2b2lkIDAhPT1zJiZCb29sZWFuKHMuc3VwcG9ydFBoYW50b21Nb2RlKX1mdW5jdGlvbiBrKGUpe3JldHVybiBlIGluc3RhbmNlb2YgbC5MaW5lRGF0YVNvdXJjZSYmKDAsZC5pc0xpbmVEcmF3bldpdGhQcmVzc2VkQnV0dG9uKShlLnRvb2xuYW1lKX1mdW5jdGlvbiBWKGUpe3JldHVybiBlIGluc3RhbmNlb2YgdS5MaW5lVG9vbFRyYWRpbmd9Y29uc3QgQT1bImVkaXRhYmxlVGV4dFN0eWxlIiwiZWRpdGFibGVUZXh0IiwiZWRpdGFibGVUZXh0UHJvcGVydGllcyJdO2Z1bmN0aW9uIEYoZSl7cmV0dXJuKDAsaS5kZWZhdWx0KShlKSYmQS5ldmVyeSgodD0+dCBpbiBlKSl9ZnVuY3Rpb24gQihlKXtsZXQgdD1udWxsO3JldHVybiBlPT09aC5saW5lVG9vbHNTdHVkeUlkcy5MaW5lVG9vbFJlZ3Jlc3Npb25UcmVuZD90PSJMaW5lVG9vbFJlZ3Jlc3Npb25UcmVuZCI6ZT09PWgubGluZVRvb2xzU3R1ZHlJZHMuTGluZVRvb2xWYlBGaXhlZD90PSJMaW5lVG9vbFZiUEZpeGVkIjplPT09aC5saW5lVG9vbHNTdHVkeUlkcy5MaW5lVG9vbEZpeGVkUmFuZ2VWb2x1bWVQcm9maWxlJiYodD0iTGluZVRvb2xGaXhlZFJhbmdlVm9sdW1lUHJvZmlsZSIpLHR9ZnVuY3Rpb24gTyhlLHQscyxpLG8pe2NvbnN0IGw9dC50b29sbmFtZSx1PXQucHJvcGVydGllcygpLnN0YXRlKCk7dS5pbnRlcnZhbHNWaXNpYmlsaXRpZXM9KDAsYS5tZXJnZUludGVydmFsVmlzaWJpbGl0aWVzRGVmYXVsdHMpKHU/LmludGVydmFsc1Zpc2liaWxpdGllcyk7Y29uc3QgYz1EKGUuYmFja2dyb3VuZFRoZW1lKCkuc3Bhd25Pd25lcnNoaXAoKSx0LnRvb2xuYW1lLCFlLnJlYWRPbmx5KCksdSk7Yy5jaGlsZHMoKS52aXNpYmxlLnNldFZhbHVlKCEwKTtjb25zdCBkPSgwLG4uZW5zdXJlTm90TnVsbCkodC5vd25lclNvdXJjZSgpKSxoPUwobCxlLGMsbnVsbCx2b2lkIDAsdm9pZCAwLG8pO3ZvaWQgMCE9PWkmJmguc2V0SWQoaSksaC5zdXBwb3J0c1RhcmdldFNpZ25hdHVyZSgpJiZudWxsIT09ZC5zaWduYXR1cmUoKS52YWx1ZSgpP2guc2V0VGFyZ2V0U2lnbmF0dXJlKGQuc2lnbmF0dXJlKCkudmFsdWUoKSk6aC5zZXRPd25lclNvdXJjZShkKSxoLnRvb2xuYW1lPWw7Y29uc3QgcD1oLmNsb25lUG9zaXRpb25PZmZzZXQoKTtpZih0LmlzRml4ZWQoKSl7Y29uc3QgZT0oMCxuLmVuc3VyZURlZmluZWQpKHQuZml4ZWRQb2ludCgpKSxpPXM/ZS5hZGQobmV3IHIuUG9pbnQocC54Q29vcmRPZmZzZXQscC55Q29vcmRPZmZzZXQpKTplO2guYWRkRml4ZWRQb2ludChpKX1jb25zdCBtPXQubm9ybWFsaXplZFBvaW50cygpLF89cz9mdW5jdGlvbihlLHQscyl7Y29uc3QgaT0oMCxuLmVuc3VyZU5vdE51bGwpKHQucHJpY2VTY2FsZSgpKSxyPSgwLG4uZW5zdXJlTm90TnVsbCkodC5maXJzdFZhbHVlKCkpO3JldHVybiBlLm1hcCgoZT0+ewpjb25zdCB0PWUucHJpY2Usbj1pLnByaWNlVG9Db29yZGluYXRlKHQscikrcy55Q29vcmRPZmZzZXQsbz1pLmNvb3JkaW5hdGVUb1ByaWNlKG4sciksYT1lLmludGVydmFsO3JldHVybnt0aW1lX3Q6ZS50aW1lX3QscHJpY2U6byxvZmZzZXQ6ZS5vZmZzZXQrcy5iYXJPZmZzZXQsaW50ZXJ2YWw6YX19KSl9KG0sZCxwKTptLGc9dC5wb2ludHMoKTtyZXR1cm4gaC5yZXN0b3JlUG9pbnRzKF8sZyksaC5jbG9uZURhdGEmJmguY2xvbmVEYXRhKHQpLGgucmVjYWxjdWxhdGVTdGF0ZUJ5RGF0YSYmaC5yZWNhbGN1bGF0ZVN0YXRlQnlEYXRhKCksaH19LDgyODg1NyhlLHQscyl7InVzZSBzdHJpY3QiO3MuZCh0LHttYWduZXRFbmFibGVkOigpPT5nLG1hZ25ldE1vZGU6KCk9PnksbWFnbmV0U25hcHNUb0luZGljYXRvcnM6KCk9PmYsc2V0SXNNYWduZXRFbmFibGVkOigpPT52LHNldE1hZ25ldE1vZGU6KCk9PmIsc2V0TWFnbmV0U25hcHNUb0luZGljYXRvcnM6KCk9PlN9KTt2YXIgaT1zKDIzMjM2NCksbj1zKDk3NDY2Mykscj1zKDQ5MjM4MSksbz1zKDY3ODI4NSksYT1zKDg2MDQ0MiksbD1zKDQ2NDgzNSk7Y29uc3QgdT1uZXcgaS5XYXRjaGVkVmFsdWUoITEpLGM9bmV3IGkuV2F0Y2hlZFZhbHVlKHIuTWFnbmV0TW9kZS5XZWFrTWFnbmV0KSxkPW5ldyBpLldhdGNoZWRWYWx1ZSghMSksaD0oMCxsLm1vZGlmaWVyUHJlc3NlZCkoKSxwPSgwLGwuc2hpZnRQcmVzc2VkKSgpO2Z1bmN0aW9uIG0oKXtjb25zdCBlPWgudmFsdWUoKTtpZihwLnZhbHVlKCkmJihvLmlzVG9vbEVkaXRpbmdOb3cudmFsdWUoKXx8by5pc1Rvb2xDcmVhdGluZ05vdy52YWx1ZSgpKSlyZXR1cm4gdm9pZCB1LnNldFZhbHVlKCExKTtsZXQgdCxzO2lmKG8uYWN0aXZlUG9pbnRTZWxlY3Rpb25Nb2RlLnZhbHVlKCk9PT1vLlNlbGVjdFBvaW50TW9kZS5SZXBsYXkpdD1zPSExO2Vsc2V7Y29uc3QgaT1vLnRvb2wudmFsdWUoKSxuPW8uaXNTdHVkeUVkaXRpbmdOb3cudmFsdWUoKXx8by5hY3RpdmVQb2ludFNlbGVjdGlvbk1vZGUudmFsdWUoKT09PW8uU2VsZWN0UG9pbnRNb2RlLlN0dWR5O3Q9ZSYmKCgwLGEuaXNMaW5lVG9vbE5hbWUpKGkpfHxvLmlzVG9vbEVkaXRpbmdOb3cudmFsdWUoKXx8KDAsby50b29sSXNNZWFzdXJlKShpKXx8bikscz0oMCxvLnByb3BlcnRpZXMpKCkuY2hpbGRzKCkubWFnbmV0LnZhbHVlKCl9Yy5zZXRWYWx1ZSghcyYmdD9yLk1hZ25ldE1vZGUuU3Ryb25nTWFnbmV0OigwLG8ucHJvcGVydGllcykoKS5jaGlsZHMoKS5tYWduZXRNb2RlLnZhbHVlKCkpLHUuc2V0VmFsdWUodD8hczpzKX1mdW5jdGlvbiBfKCl7ZC5zZXRWYWx1ZSgoMCxvLnByb3BlcnRpZXMpKCkuY2hpbGRzKCkubWFnbmV0U25hcHNUb0luZGljYXRvcnMudmFsdWUoKSl9ZnVuY3Rpb24gZygpe3JldHVybiB1fWZ1bmN0aW9uIHkoKXtyZXR1cm4gY31mdW5jdGlvbiBmKCl7cmV0dXJuIGR9ZnVuY3Rpb24gdihlKXsoMCxuLmFsbG93U2F2aW5nRGVmYXVsdHMpKCEwKSwoMCxvLnByb3BlcnRpZXMpKCkuY2hpbGRzKCkubWFnbmV0LnNldFZhbHVlKGUpLCgwLG4uYWxsb3dTYXZpbmdEZWZhdWx0cykoITEpfWZ1bmN0aW9uIGIoZSl7KDAsbi5hbGxvd1NhdmluZ0RlZmF1bHRzKSghMCksKDAsby5wcm9wZXJ0aWVzKSgpLmNoaWxkcygpLm1hZ25ldE1vZGUuc2V0VmFsdWUoZSksKDAsby5wcm9wZXJ0aWVzKSgpLmNoaWxkcygpLm1hZ25ldC5zZXRWYWx1ZSghMCksKDAsbi5hbGxvd1NhdmluZ0RlZmF1bHRzKSghMSl9ZnVuY3Rpb24gUyhlKXsoMCxuLmFsbG93U2F2aW5nRGVmYXVsdHMpKCEwKSwoMCxvLnByb3BlcnRpZXMpKCkuY2hpbGRzKCkubWFnbmV0U25hcHNUb0luZGljYXRvcnMuc2V0VmFsdWUoZSksKDAsbi5hbGxvd1NhdmluZ0RlZmF1bHRzKSghMSl9KDAsby5ydW5PbkRyYXdpbmdTdGF0ZVJlYWR5KSgoKCk9PnsoMCxvLnByb3BlcnRpZXMpKCkuY2hpbGRzKCkubWFnbmV0LnN1YnNjcmliZShudWxsLG0pLCgwLG8ucHJvcGVydGllcykoKS5jaGlsZHMoKS5tYWduZXRNb2RlLnN1YnNjcmliZShudWxsLG0pLCgwLG8ucHJvcGVydGllcykoKS5jaGlsZHMoKS5tYWduZXRTbmFwc1RvSW5kaWNhdG9ycy5zdWJzY3JpYmUobnVsbCxfKSxoLnN1YnNjcmliZShtKSxwLnN1YnNjcmliZShtKSxvLnRvb2wuc3Vic2NyaWJlKG0pLG8uaXNUb29sRWRpdGluZ05vdy5zdWJzY3JpYmUobSksbSgpLF8oKX0pKX0sNjk5NTUwKGUsdCxzKXsidXNlIHN0cmljdCI7cy5kKHQse1F1b3Rlc1Byb3ZpZGVyOigpPT5sfSk7dmFyIGk9cygyMzIzNjQpLG49cyg0MDIwNDUpLHI9cygxNTk1MTMpLG89cyg5NDgzODApLGE9cygxNTAxNTApO2NsYXNzIGx7Y29uc3RydWN0b3IoZT0iZnVsbCIsdCl7dGhpcy5fcXVvdGVzPW5ldyBuLldhdGNoZWRPYmplY3QobnVsbCksdGhpcy5fcXVvdGVTZXNzaW9uU3ltYm9sPW51bGwsdGhpcy5fcXVvdGVTZXNzaW9uQ2xpZW50SWQ9IiIsdGhpcy5fcGF1c2VkUXVvdGVTZXNzaW9uU3ltYm9sPW51bGwsdGhpcy5fcXVvdGVzVXBkYXRlPW5ldyBvLkRlbGVnYXRlLHRoaXMuX3F1b3RlU3ltYm9sQ2hhbmdlZD1uZXcgby5EZWxlZ2F0ZSx0aGlzLl9jb21wbGV0ZWQ9bmV3IGkuV2F0Y2hlZFZhbHVlKCExKSx0aGlzLl9tdWx0aXBsZXhlclR5cGU9ZSx0aGlzLl9oaWJlcm5hdGVkPXQsdGhpcy5faGliZXJuYXRlZD8uc3Vic2NyaWJlKChlPT57ZT90aGlzLnBhdXNlKCk6dGhpcy5yZXN1bWUoKX0pKX1zZXRRdW90ZXNTZXNzaW9uU3ltYm9sKGUpe3RoaXMuX3F1b3RlU2Vzc2lvblN5bWJvbCE9PWUmJih0aGlzLl9wYXVzZWRRdW90ZVNlc3Npb25TeW1ib2w9bnVsbCx0aGlzLl9xdW90ZVNlc3Npb25DbGllbnRJZHx8KHRoaXMuX3F1b3RlU2Vzc2lvbkNsaWVudElkPSJzZXJpZXMtIisoMCxhLmd1aWQpKCkpLHRoaXMuX3Vuc3Vic2NyaWJlUXVvdGVTZXNzaW9uKCksdGhpcy5fcXVvdGVTZXNzaW9uU3ltYm9sPWUsdGhpcy5fcXVvdGVTeW1ib2xDaGFuZ2VkLmZpcmUoKSxlJiZ0aGlzLl9zdWJzY3JpYmVRdW90ZVNlc3Npb24oZSkpfXN5bWJvbCgpe3JldHVybiB0aGlzLl9xdW90ZVNlc3Npb25TeW1ib2x9cXVvdGVzVXBkYXRlKCl7cmV0dXJuIHRoaXMuX3F1b3Rlc1VwZGF0ZX0KcXVvdGVTeW1ib2xDaGFuZ2VkKCl7cmV0dXJuIHRoaXMuX3F1b3RlU3ltYm9sQ2hhbmdlZH1xdW90ZXMoKXtyZXR1cm4gdGhpcy5fcXVvdGVzLnJlYWRvbmx5KCl9Y29tcGxldGVkKCl7cmV0dXJuIHRoaXMuX2NvbXBsZXRlZC5yZWFkb25seSgpfWFzeW5jIHF1b3Rlc1NuYXBzaG90KGUpe3JldHVybigwLHIuZ2V0UXVvdGVTZXNzaW9uSW5zdGFuY2UpKCJzaW1wbGUiKS5zbmFwc2hvdChlKX1pc1BhdXNlZCgpe3JldHVybiBudWxsIT09dGhpcy5fcGF1c2VkUXVvdGVTZXNzaW9uU3ltYm9sfXBhdXNlKCl7bnVsbD09PXRoaXMuX3BhdXNlZFF1b3RlU2Vzc2lvblN5bWJvbCYmKHRoaXMuX3BhdXNlZFF1b3RlU2Vzc2lvblN5bWJvbD10aGlzLl9xdW90ZVNlc3Npb25TeW1ib2wsdGhpcy5fdW5zdWJzY3JpYmVRdW90ZVNlc3Npb24oKSl9cmVzdW1lKCl7bnVsbCE9PXRoaXMuX3BhdXNlZFF1b3RlU2Vzc2lvblN5bWJvbCYmKHRoaXMuX3N1YnNjcmliZVF1b3RlU2Vzc2lvbih0aGlzLl9wYXVzZWRRdW90ZVNlc3Npb25TeW1ib2wpLHRoaXMuX3BhdXNlZFF1b3RlU2Vzc2lvblN5bWJvbD1udWxsKX1kZXN0cm95KCl7dGhpcy5fdW5zdWJzY3JpYmVRdW90ZVNlc3Npb24oKSx0aGlzLl9oaWJlcm5hdGVkPy5yZWxlYXNlKCl9X29uVXBkYXRlKGUsdCl7dGhpcy5fcXVvdGVzLnNldFZhbHVlKGU/LnZhbHVlcz8/bnVsbCksdCYmdC52YWx1ZXMmJnRoaXMuX3F1b3Rlc1VwZGF0ZS5maXJlKGUsdCksdm9pZCAwIT09ZS5jb21wbGV0ZSYmdGhpcy5fY29tcGxldGVkLnNldFZhbHVlKCEwKX1fc3Vic2NyaWJlUXVvdGVTZXNzaW9uKGUpe3RoaXMuX3F1b3RlU2Vzc2lvblN5bWJvbD1lLCgwLHIuZ2V0UXVvdGVTZXNzaW9uSW5zdGFuY2UpKHRoaXMuX211bHRpcGxleGVyVHlwZSkuc3Vic2NyaWJlKHRoaXMuX3F1b3RlU2Vzc2lvbkNsaWVudElkLHRoaXMuX3F1b3RlU2Vzc2lvblN5bWJvbCx0aGlzLl9vblVwZGF0ZS5iaW5kKHRoaXMpKX1fdW5zdWJzY3JpYmVRdW90ZVNlc3Npb24oKXt0aGlzLl9xdW90ZVNlc3Npb25TeW1ib2wmJigoMCxyLmdldFF1b3RlU2Vzc2lvbkluc3RhbmNlKSh0aGlzLl9tdWx0aXBsZXhlclR5cGUpLnVuc3Vic2NyaWJlKHRoaXMuX3F1b3RlU2Vzc2lvbkNsaWVudElkLHRoaXMuX3F1b3RlU2Vzc2lvblN5bWJvbCksdGhpcy5fcXVvdGVTZXNzaW9uU3ltYm9sPW51bGwsdGhpcy5fcXVvdGVzLnNldFZhbHVlKG51bGwpLHRoaXMuX2NvbXBsZXRlZC5zZXRWYWx1ZSghMSkpfX19LDQ2NTEzNyhlLHQscyl7InVzZSBzdHJpY3QiO3MuZCh0LHtjb21wYXJlUmVzb2x1dGlvbnM6KCk9Pm0uY29tcGFyZVJlc29sdXRpb25zLGNvbnZlcnRSZXNvbHV0aW9uc0Zyb21TZXR0aW5nczooKT0+SSxmb3JtYXREaXJlY3Rpb25hbFJlc29sdXRpb246KCk9PkIsZ2V0QXBwbGljYWJsZUludGVydmFsRm9yRnJlcXVlbmN5OigpPT5tLmdldEFwcGxpY2FibGVJbnRlcnZhbEZvckZyZXF1ZW5jeSxnZXREZWZhdWx0UmVzb2x1dGlvbjooKT0+dyxnZXRNYXhSZXNvbHV0aW9uVmFsdWU6KCk9PkUsZ2V0UmVzb2x1dGlvbkJ5Q2hhcnRTdHlsZTooKT0+UCxnZXRUcmFuc2xhdGVkUmVzb2x1dGlvbjooKT0+RCxnZXRUcmFuc2xhdGVkUmVzb2x1dGlvbk1vZGVsOigpPT54LGludGVydmFsSXNTdXBwb3J0ZWQ6KCk9PkYsaXNBdmFpbGFibGU6KCk9PmIsaXNJbnRlcnZhbEVuYWJsZWQ6KCk9PkEsaXNSZXNvbHV0aW9uTXVsdGlwbGllclZhbGlkOigpPT5ULGlzU2Vjb25kc0VuYWJsZWQ6KCk9PmssbWVyZ2VSZXNvbHV0aW9uczooKT0+TCxub3JtYWxpemVJbnRlcnZhbFN0cmluZzooKT0+dixzZXRMYXN0VXNlZFJlc29sdXRpb246KCk9PlMsc29ydFJlc29sdXRpb25zOigpPT5NfSk7dmFyIGk9cyg2MDE4NDEpLG49cyg5MzAyMzEpLHI9cygxODUyNzEpLG89cygyNTQ2NzMpLGE9cygxMjg5OTgpLGw9cyg5MzA1NjYpLHU9cyg1NjkzOTgpLGM9cygyMjUyOTgpLGQ9cygxNzY4NTEpLGg9cyg5NjkxNjgpLHA9cyg2MTk5OTIpLG09cyg3MDg1OSk7Y29uc3QgXz1bMSw1LDEwLDE1LDMwLDQ1XSxnPVsxLDEwLDEwMCwxZTNdLHk9KDAsdS5pc0ZlYXR1cmVFbmFibGVkKSgiY3VzdG9tX3RpY2tzIik7dmFyIGY7ZnVuY3Rpb24gdihlKXtyZXR1cm4gby5JbnRlcnZhbC5wYXJzZShlKS52YWx1ZSgpfWZ1bmN0aW9uIGIoZSl7Y29uc3QgdD1vLkludGVydmFsLnBhcnNlKGUpO2lmKHQuaXNSYW5nZSgpKXJldHVybiBjLmxpbmtpbmcucmFuZ2UudmFsdWUoKTtpZighKDAscC5pc1RpY2tzRW5hYmxlZCkoKSYmdC5pc1RpY2tzKCkpcmV0dXJuITE7Y29uc3Qgcz10LnZhbHVlKCksaT1jLmxpbmtpbmcuZGF0YUZyZXF1ZW5jeVJlc29sdXRpb24udmFsdWUoKTtpZih2b2lkIDAhPT1pJiYoMCxtLmNvbXBhcmVSZXNvbHV0aW9ucykocyxpKTwwKXJldHVybiExO2NvbnN0IG49Yy5saW5raW5nLnN1cHBvcnRlZFJlc29sdXRpb25zLnZhbHVlKCk7cmV0dXJuIHZvaWQgMCE9PW4/dm9pZCAwIT09bi5maW5kKChlPT52KGUpPT09cykpOnQuaXNUaWNrcygpP0Jvb2xlYW4oYy5saW5raW5nLnRpY2tzLnZhbHVlKCkpOnQuaXNJbnRyYWRheSgpP0Jvb2xlYW4oYy5saW5raW5nLmludHJhZGF5LnZhbHVlKCkpOnQuaXNEV00oKX1mdW5jdGlvbiBTKGUpe28uSW50ZXJ2YWwuaXNWYWxpZChlKSYmKG8uSW50ZXJ2YWwuaXNSYW5nZShlKT9sLnNldFZhbHVlKCJjaGFydC5sYXN0VXNlZFJhbmdlUmVzb2x1dGlvbiIsZSk6bC5zZXRWYWx1ZSgiY2hhcnQubGFzdFVzZWRUaW1lQmFzZWRSZXNvbHV0aW9uIixlKSl9ZnVuY3Rpb24gdyhlKXtyZXR1cm4gZT8iMTAwUiI6IjFEIn1mdW5jdGlvbiBQKGUsdCxzKXtjb25zdCBpPWEuaXNSYW5nZVN0eWxlKGUpLG49by5JbnRlcnZhbC5pc1JhbmdlKHQpO3JldHVybiFpJiZuP2Z1bmN0aW9uKGUpe2NvbnN0IHQ9bC5nZXRWYWx1ZSgiY2hhcnQubGFzdFVzZWRUaW1lQmFzZWRSZXNvbHV0aW9uIik7aWYodm9pZCAwIT09dCYmby5JbnRlcnZhbC5pc1RpbWVCYXNlZCh0KSlyZXR1cm4gdDtsZXQgcz0iMUQiO2Zvcihjb25zdCB0IG9mIGUpe2NvbnN0IGU9by5JbnRlcnZhbC5wYXJzZSh0KTtpZihlLmlzVGltZUJhc2VkKCkpe2NvbnN0IHQ9ZS52YWx1ZSgpCjtpZigiMUQiPT09dClyZXR1cm4gdDtzPXR9fXJldHVybiBzfShzKTppJiYhbj9mdW5jdGlvbihlKXtjb25zdCB0PWwuZ2V0VmFsdWUoImNoYXJ0Lmxhc3RVc2VkUmFuZ2VSZXNvbHV0aW9uIik7aWYodm9pZCAwIT09dCYmby5JbnRlcnZhbC5pc1JhbmdlKHQpKXJldHVybiB0O2xldCBzPSIxMDBSIjtmb3IoY29uc3QgdCBvZiBlKXtjb25zdCBlPW8uSW50ZXJ2YWwucGFyc2UodCk7aWYoZS5pc1JhbmdlKCkpe2NvbnN0IHQ9ZS52YWx1ZSgpO2lmKCIxMDBSIj09PXQpcmV0dXJuIHQ7cz10fX1yZXR1cm4gc30ocyk6dH1mdW5jdGlvbiBUKGUpe2NvbnN0e2ludGVydmFsOnQsZ3VpUmVzb2x1dGlvbktpbmQ6c309by5JbnRlcnZhbC5wYXJzZUV4dChlKTtpZighdC5pc1ZhbGlkKCkpcmV0dXJuITE7Y29uc3QgaT10Lm11bHRpcGxpZXIoKTtpZihzPT09by5SZXNvbHV0aW9uS2luZC5TZWNvbmRzKXJldHVybiBfLmluY2x1ZGVzKGkpO2lmKCgwLHAuaXNUaWNrc0VuYWJsZWQpKCkmJnM9PT1vLlJlc29sdXRpb25LaW5kLlRpY2tzKXJldHVybiEheXx8Zy5pbmNsdWRlcyhpKTtyZXR1cm4ocz09PW8uU3BlY2lhbFJlc29sdXRpb25LaW5kLkhvdXJzP2kvNjA6aSk8PUMocyl9ZnVuY3Rpb24gQyhlKXtjb25zdCB0PW0ubWF4UmVzb2x1dGlvblZhbHVlc1tlXTtyZXR1cm4gTnVtYmVyLmlzTmFOKHQpPzE6dH1mdW5jdGlvbiBFKGUpe3JldHVybiBDKG8uSW50ZXJ2YWwucGFyc2VFeHQoZSkuZ3VpUmVzb2x1dGlvbktpbmQpfWZ1bmN0aW9uIEkoZSl7cmV0dXJuIEFycmF5LmlzQXJyYXkoZSk/ZTpPYmplY3Qua2V5cyhlKS5tYXAoby5JbnRlcnZhbC5ub3JtYWxpemUpLmZpbHRlcihpLm5vdE51bGwpfWZ1bmN0aW9uIEwoLi4uZSl7bGV0IHQ9W10uY29uY2F0KC4uLmUpO3JldHVybiB0PSgwLGQudW5pcSkodC5maWx0ZXIoVCkubWFwKHYpKSxNKHQpfWZ1bmN0aW9uIE0oZSl7cmV0dXJuIGUuc29ydChtLmNvbXBhcmVSZXNvbHV0aW9ucyl9ZnVuY3Rpb24gRChlKXtjb25zdHttdWx0aXBsaWVyOnQsc2hvcnRLaW5kOnN9PXgoZSk7cmV0dXJuYCR7dH0ke3N9YH1mdW5jdGlvbiB4KGUsdCl7Y29uc3Qgcz1vLkludGVydmFsLnBhcnNlKGUpO2xldCBpPXMubXVsdGlwbGllcigpLG49cy5raW5kKCk7aWYoIXMuaXNWYWxpZCgpKXtpZih0KXJldHVybiBudWxsO3Rocm93IG5ldyBUeXBlRXJyb3IoYENhbid0IHRyYW5zbGF0ZSBpbnZhbGlkIGludGVydmFsOiAke2V9YCl9cmV0dXJuIHMuaXNNaW51dGVIb3VycygpJiYoaT1NYXRoLmZsb29yKGkvNjApLG49by5TcGVjaWFsUmVzb2x1dGlvbktpbmQuSG91cnMpLHttdWx0aXBsaWVyOmkudG9TdHJpbmcoKSxzaG9ydEtpbmQ6UihuKSxoaW50OmAke2l9ICR7UihuLGkpfWAsbWF5T21pdE11bHRpcGxpZXI6cy5pc0RXTSgpJiYxPT09aSxtYXlPbWl0U2hvcnRLaW5kOnMuaXNNaW51dGVzKCkmJiFzLmlzTWludXRlSG91cnMoKX19ZnVuY3Rpb24gUihlLHQpe2lmKCF0KXJldHVybntbby5SZXNvbHV0aW9uS2luZC5JbnZhbGlkXToiIixbby5SZXNvbHV0aW9uS2luZC5UaWNrc106ci50KG51bGwse2NvbnRleHQ6ImludGVydmFsX3Nob3J0In0scygyMTgwMzYpKSxbby5SZXNvbHV0aW9uS2luZC5TZWNvbmRzXTpyLnQobnVsbCx7Y29udGV4dDoiaW50ZXJ2YWxfc2hvcnQifSxzKDM5MDgwOSkpLFtvLlJlc29sdXRpb25LaW5kLk1pbnV0ZXNdOnIudChudWxsLHtjb250ZXh0OiJpbnRlcnZhbF9zaG9ydCJ9LHMoNjE4NCkpLFtvLlNwZWNpYWxSZXNvbHV0aW9uS2luZC5Ib3Vyc106ci50KG51bGwse2NvbnRleHQ6ImludGVydmFsX3Nob3J0In0scygyNDA3MykpLFtvLlJlc29sdXRpb25LaW5kLkRheXNdOnIudChudWxsLHtjb250ZXh0OiJpbnRlcnZhbF9zaG9ydCJ9LHMoMTkxNDMyKSksW28uUmVzb2x1dGlvbktpbmQuV2Vla3NdOnIudChudWxsLHtjb250ZXh0OiJpbnRlcnZhbF9zaG9ydCJ9LHMoMzIzNTcwKSksW28uUmVzb2x1dGlvbktpbmQuTW9udGhzXTpyLnQobnVsbCx7Y29udGV4dDoiaW50ZXJ2YWxfc2hvcnQifSxzKDg4OTEwKSksW28uUmVzb2x1dGlvbktpbmQuUmFuZ2VdOnIudChudWxsLHtjb250ZXh0OiJpbnRlcnZhbF9zaG9ydCJ9LHMoMjgxMTA3KSl9W2VdO3N3aXRjaChlKXtjYXNlIG8uUmVzb2x1dGlvbktpbmQuVGlja3M6cmV0dXJuIHIudChudWxsLHtwbHVyYWw6InRpY2tzIixjb3VudDp0fSxzKDUwNjQ0NykpO2Nhc2Ugby5SZXNvbHV0aW9uS2luZC5EYXlzOnJldHVybiByLnQobnVsbCx7cGx1cmFsOiJkYXlzIixjb3VudDp0fSxzKDc0MzAwMikpO2Nhc2Ugby5SZXNvbHV0aW9uS2luZC5XZWVrczpyZXR1cm4gci50KG51bGwse3BsdXJhbDoid2Vla3MiLGNvdW50OnR9LHMoMzg4MTA1KSk7Y2FzZSBvLlJlc29sdXRpb25LaW5kLk1vbnRoczpyZXR1cm4gci50KG51bGwse3BsdXJhbDoibW9udGhzIixjb3VudDp0fSxzKDMyMzQ4NSkpO2Nhc2Ugby5SZXNvbHV0aW9uS2luZC5TZWNvbmRzOnJldHVybiByLnQobnVsbCx7cGx1cmFsOiJzZWNvbmRzIixjb3VudDp0fSxzKDY2NTUzMCkpO2Nhc2Ugby5SZXNvbHV0aW9uS2luZC5NaW51dGVzOnJldHVybiByLnQobnVsbCx7cGx1cmFsOiJtaW51dGVzIixjb3VudDp0fSxzKDExMzY0MikpO2Nhc2Ugby5TcGVjaWFsUmVzb2x1dGlvbktpbmQuSG91cnM6cmV0dXJuIHIudChudWxsLHtwbHVyYWw6ImhvdXJzIixjb3VudDp0fSxzKDQxOTExNCkpO2Nhc2Ugby5SZXNvbHV0aW9uS2luZC5SYW5nZTpyZXR1cm4gci50KG51bGwse3BsdXJhbDoicmFuZ2VzIixjb3VudDp0fSxzKDYxNjQ5KSk7ZGVmYXVsdDpyZXR1cm4gZX19ZnVuY3Rpb24gaygpe3JldHVybiEwfWZ1bmN0aW9uIFYoZSl7cmV0dXJuISghKDAscC5pc1RpY2tzRW5hYmxlZCkoKSYmZS5pc1RpY2tzKCkpfWZ1bmN0aW9uIEEoZSl7cmV0dXJuIFYoby5JbnRlcnZhbC5wYXJzZShlKSl9ZnVuY3Rpb24gRihlKXtpZigoMCxuLmlzRmVhdHVyZXNldEVuYWJsZWQpKCJhbGxvd19zdXBwb3J0ZWRfcmVzb2x1dGlvbnNfc2V0X29ubHkiKSl7Y29uc3QgdD1vLkludGVydmFsLm5vcm1hbGl6ZShlKTtyZXR1cm4gbnVsbCE9PXQmJmIodCl9e2NvbnN0IHQ9by5JbnRlcnZhbC5wYXJzZShlKQo7aWYoIXQuaXNWYWxpZCgpfHwhVih0KSlyZXR1cm4hMTtpZighKDAsbi5pc0ZlYXR1cmVzZXRFbmFibGVkKSgiY3VzdG9tX3Jlc29sdXRpb25zIikpe2NvbnN0IHQ9by5JbnRlcnZhbC5ub3JtYWxpemUoZSkscz13aW5kb3cuQ2hhcnRBcGlJbnN0YW5jZS5kZWZhdWx0UmVzb2x1dGlvbnMoKS5maWx0ZXIoQSk7aWYoIXR8fC0xPT09cy5pbmRleE9mKHQpKXJldHVybiExfWNvbnN0IHM9Yy5saW5raW5nLmRhdGFGcmVxdWVuY3lSZXNvbHV0aW9uLnZhbHVlKCk7aWYodm9pZCAwIT09cyYmKDAsbS5nZXRBcHBsaWNhYmxlSW50ZXJ2YWxGb3JGcmVxdWVuY3kpKHMsdC52YWx1ZSgpKSE9PXQudmFsdWUoKSlyZXR1cm4hMTtpZih0LmlzUmFuZ2UoKSlyZXR1cm4gYy5saW5raW5nLnJhbmdlLnZhbHVlKCk7aWYodC5pc1RpY2tzKCkpcmV0dXJuIGMubGlua2luZy50aWNrcy52YWx1ZSgpO2lmKHQuaXNJbnRyYWRheSgpKXJldHVybiBjLmxpbmtpbmcuaW50cmFkYXkudmFsdWUoKTt7Y29uc3QgZT1jLmxpbmtpbmcuc3VwcG9ydGVkUmVzb2x1dGlvbnMudmFsdWUoKTtyZXR1cm4hZXx8ZS5pbmNsdWRlcyh0LnZhbHVlKCkpfX19ZnVuY3Rpb24gQihlKXtyZXR1cm4oMCxoLmlzUnRsKSgpPyIgIisoMCxoLmZvcmNlUlRMU3RyKSgiICwiK2UpOiIsICIrZX0hZnVuY3Rpb24oZSl7ZS5DdXN0b21Vc2VyUmVzb2x1dGlvbnNLZXk9IkludGVydmFsV2lkZ2V0LmludGVydmFscyIsZS5MYXN0VXNlZFJhbmdlUmVzb2x1dGlvbktleT0iY2hhcnQubGFzdFVzZWRSYW5nZVJlc29sdXRpb24iLGUuTGFzdFVzZWRUaW1lQmFzZWRSZXNvbHV0aW9uS2V5PSJjaGFydC5sYXN0VXNlZFRpbWVCYXNlZFJlc29sdXRpb24iLGUuRGVmYXVsdFJhbmdlUmVzb2x1dGlvbj0iMTAwUiIsZS5EZWZhdWx0VGltZUJhc2VkUmVzb2x1dGlvbj0iMUQifShmfHwoZj17fSkpfSw2MzY5NjYoZSx0LHMpeyJ1c2Ugc3RyaWN0IjtzLmQodCx7U2VyaWVzOigpPT52dH0pO3ZhciBpPXMoMTY3NTAyKSxuPXMoMTM4NjM4KSxyPXMoMjMyMzY0KSxvPXMoOTUyOTAwKSxhPXMoNjAxODQxKSxsPXMoOTQ4MzgwKSx1PXMoMjIxMDYxKSxjPXMoMjU0NjczKSxkPXMoODU3MTUxKSxoPXMoOTM2MzI2KSxwPXMoMTIxNDc5KSxtPXMoMzg2OTMxKSxfPXMoMTc5NzcxKSxnPXMoOTMwMjMxKSx5PXMoNzY4NzYwKSxmPXMoNTQyMzQ5KSx2PXMoOTMwNTA2KSxiPXMoNjE5MTY1KSxTPXMoNjM1NTA5KSx3PXMoNzY4MjkyKSxQPXMoMTI4OTk4KSxUPXMoMzE0OTE0KSxDPXMoNjgyODIyKSxFPXMoNzU1NjI3KSxJPXMoNzk4MzgpLEw9cygyNTc4MSksTT1zKDYyNjc1NiksRD1zKDU0NjU3NSkseD1zKDE1Mjc2NiksUj1zKDM3Njc5Nyksaz1zKDYwOTA0MSksVj1zKDgyNzY5OCksQT1zKDY5OTU1MCksRj1zKDM1NzIxOSksQj1zKDY0NTI4NSksTz1zKDU2OTg0NiksTj1zKDk0NzM4MiksVz1zKDE1Njg1MCksVT1zKDY4MzkwMiksej1zKDE3MjMwNCksSD1zKDQ4Mzc4Myksaj1zKDkxMTQzMCksJD1zKDQ5MDM5OSkscT1zKDY1NTU4NCksSz1zKDY4NTU1NSksWT1zKDI5MzQ0NyksRz1zKDg5MTQ0MSksSj1zKDU2OTM5OCksWD1zKDIyNjkzNyksUT1zKDI3NTc0MiksWj1zKDk3Mzk3KSxlZT1zKDY4MjgwNiksdGU9cyg3MzkzNjMpLHNlPXMoNDE3MjkpLGllPXMoNDk5Njk1KSxuZT1zKDk2OTQpLHJlPXMoODY2OTUwKSxvZT1zKDM3NjY0NSksYWU9cygzMjI0NjApLGxlPXMoODUzMjQ1KSx1ZT1zKDIzNDg2NiksY2U9cyg4OTQ2OTcpLGRlPXMoMjA2NTcwKSxoZT1zKDQwNzc5OSkscGU9cyg2MTU2NzMpLG1lPXMoMjM0OTMyKSxfZT1zKDQ5MDQ0NiksZ2U9cyg0Njg3NzQpLHllPXMoODM3MjAzKSxmZT1zKDk2NjQwNCksdmU9cyg0NjUxMzcpLGJlPXMoMzQ3MDQyKSxTZT1zKDgwNjgxOCksd2U9cygxNTc4NTMpLFBlPXMoMTY4NzcxKSxUZT1zKDM2MDIzOCksQ2U9cyg3NDgyMTApLEVlPXMoNTQ5NjEzKSxJZT1zKDEzMDkxNSksTGU9cygzMTg5NzQpLE1lPXMoMzExNjE5KSxEZT1zKDI3MzE4NykseGU9cygzMjA2NjUpLFJlPXMoNjMyNTM1KSxrZT1zKDIyODI1MSksVmU9cyg3MzQ0NzkpLEFlPXMoNjU2NDA5KSxGZT1zKDY5Nzc5OSksQmU9cyg2NTkyOTEpLE9lPXMoMTk2MDQ5KSxOZT1zKDIxNzAxNiksV2U9cyg5ODE4NTMpLFVlPXMoMzY0NzgyKSx6ZT1zKDM1ODA4OCksSGU9cyg0NTk2NzMpLGplPXMoNDE2MzUpLCRlPXMoOTU2NDM3KSxxZT0ocygyNTAzMzQpLHMoMTU2ODI5KSksS2U9cyg2OTk2NjgpLFllPXMoNzA0NTcyKSxHZT1zKDg2NjczMSksSmU9cyg4Njc4MzEpLFhlPXMoMjQxOTU2KSxRZT1zKDE4OTgwMCksWmU9cygyMjc4MjUpLGV0PXMoNzkzODYyKSx0dD1zKDQ4OTAzMSksc3Q9cyg5NjkxNjgpLGl0PXMoMjA1NjIyKSxudD1zKDcyMzUyNSk7Y29uc3QgcnQ9KDAsZy5pc0ZlYXR1cmVzZXRFbmFibGVkKSgicHJpY2Vfc2NhbGVfYWx3YXlzX2xhc3RfYmFyX3ZhbHVlIiksb3Q9KDAsZy5pc0ZlYXR1cmVzZXRFbmFibGVkKSgiZGlzcGxheV9kYXRhX21vZGUiKSxhdD0hKDAsZy5pc0ZlYXR1cmVzZXRFbmFibGVkKSgiaGlkZV9zZXJpZXNfbGVnZW5kX2l0ZW0iKSxsdD0oMCxnLmlzRmVhdHVyZXNldEVuYWJsZWQpKCJoaWRlX3ByaWNlX3NjYWxlX2dsb2JhbF9sYXN0X2Jhcl92YWx1ZSIpLHV0PSgwLGcuaXNGZWF0dXJlc2V0RW5hYmxlZCkoIm5vX2JhcnNfc3RhdHVzIiksY3Q9KDAsZy5pc0ZlYXR1cmVzZXRFbmFibGVkKSgiY2hhcnRpbmdfbGlicmFyeV9kZWJ1Z19tb2RlIiksZHQ9KDAsZy5pc0ZlYXR1cmVzZXRFbmFibGVkKSgiY2hhcnRfc3R5bGVfaGlsb19sYXN0X3ByaWNlIiksaHQ9KDAsdS5nZXRMb2dnZXIpKCJDaGFydC5TZXJpZXMiKSxwdD1QZS5sYXN0RGF5Q2hhbmdlQXZhaWxhYmxlJiZMZS5DaGVja01vYmlsZS5hbnkoKXx8UGUuYWx3YXlzU2hvd0xhc3RQcmljZUFuZExhc3REYXlDaGFuZ2U7bGV0IG10PSExO2NvbnN0IF90PXtjb3VudGRvd25FbmFibGVkOiEwLGxhc3RQcmljZUFuaW1hdGlvbkVuYWJsZWQ6ITB9O2Z1bmN0aW9uIGd0KGUsdCxzKXtyZXR1cm4gdm9pZCAwPT09dD9udWxsOmAke2V9PSR7dH0gKCR7cz8iY2hhbmdlZCI6InVuY2hhbmdlZCJ9KWB9ZnVuY3Rpb24geXQoZSl7CmNvbnN0IHQ9ZS5zdGF0ZSgpO3JldHVybiB0LmRhdGEuZm9yRWFjaCgoZT0+ZS52YWx1ZS5zcGxpY2UoNywxKSkpLHR9ZnVuY3Rpb24gZnQoZSl7Y29uc3R7c2VyaWVzU3RhdHVzOnQsYWRkaXRpb25hbFN0dWR5U3RhdHVzOnN9PWU7aWYoSS5zZXJpZXNMb2FkaW5nU3RhdHVzZXMuaGFzKHQpKXJldHVybiAyO2lmKHMpe2lmKDQhPT10JiZzLnR5cGU9PT1KZS5TdHVkeVN0YXR1c1R5cGUuRXJyb3IpcmV0dXJuIDEzO2lmKEkuc2VyaWVzUmVhZHlTdGF0dXNlcy5oYXModCkmJihzLnR5cGU9PT1KZS5TdHVkeVN0YXR1c1R5cGUuTG9hZGluZ3x8cy50eXBlPT09SmUuU3R1ZHlTdGF0dXNUeXBlLlVuZGVmaW5lZCkpcmV0dXJuIDJ9cmV0dXJuIHR9Y2xhc3MgdnQgZXh0ZW5kcyBmLlByaWNlRGF0YVNvdXJjZXtjb25zdHJ1Y3RvcihlLHQsdSxkKXtzdXBlcihlLCJfc2VyaWVzSWQiKSx0aGlzLmlzU2VyaWVzPSEwLHRoaXMucmVxdWVzdGluZ1N0eWxlSXNOb3RTdXBwb3J0ZWQ9bmV3IGwuRGVsZWdhdGUsdGhpcy5yZXF1ZXN0aW5nU3R5bGVTdXBwb3J0UmVjb3ZlcmVkPW5ldyBsLkRlbGVnYXRlLHRoaXMuX3BhbmVWaWV3PW51bGwsdGhpcy5fZnV0dXJlQmFyc1BhbmVWaWV3PW51bGwsdGhpcy5fcHJvamVjdGlvbkJhcnNQYW5lVmlldz1udWxsLHRoaXMuX3dhdGVybGluZVZpZXc9bnVsbCx0aGlzLl9wcmljZUxpbmVWaWV3PW51bGwsdGhpcy5fZ290b0RhdGVWaWV3PW51bGwsdGhpcy5fYmFzZUhvcml6b250YWxMaW5lVmlldz1udWxsLHRoaXMuX3ByaWNlU3RlcD1udWxsLHRoaXMuX3N5bWJvbEluZm89bmV3IHIuV2F0Y2hlZFZhbHVlKG51bGwpLHRoaXMuX2lzUHJlUG9zdE1hcmtldFByaWNlc0F2YWlsYWJsZVByb3BlcnR5PW5ldyB3LlByb3BlcnR5KCExKSx0aGlzLl9pc092ZXJuaWdodE1hcmtldFByaWNlc0F2YWlsYWJsZVByb3BlcnR5PW5ldyB3LlByb3BlcnR5KCExKSx0aGlzLl9pc0JhY2tBZGp1c3RtZW50Rm9yYmlkZGVuUHJvcGVydHk9bmV3IHcuUHJvcGVydHkoITApLHRoaXMuX2lzU2V0dGxlbWVudEFzQ2xvc2VGb3JiaWRkZW5Qcm9wZXJ0eT1uZXcgdy5Qcm9wZXJ0eSghMCksdGhpcy5faGlnaExvd1ByaWNlQ2FjaGU9bmV3IE1hcCx0aGlzLl9hdmVyYWdlUHJpY2VDYWNoZT1uZXcgTWFwLHRoaXMuX3ByZXZDbG9zZVByaWNlQXhpc1ZpZXc9bnVsbCx0aGlzLl9wcmljZVNjYWxlQWJvdXRUb0JlQ2hhbmdlZD1uZXcgbC5EZWxlZ2F0ZSx0aGlzLl9vblJlc3RhcnRlZD1uZXcgbC5EZWxlZ2F0ZSx0aGlzLl9vblN0YXR1c0NoYW5nZWQ9bmV3IGwuRGVsZWdhdGUsdGhpcy5fdGFnc0NoYW5nZWQ9bmV3IGwuRGVsZWdhdGUsdGhpcy5faW50ZXJ2YWxDaGFuZ2VkPW5ldyBsLkRlbGVnYXRlLHRoaXMuX3Nlc3Npb25JZENoYW5nZWQ9bmV3IGwuRGVsZWdhdGUsdGhpcy5fcmVxdWVzdE1vcmVEYXRhQXZhaWxhYmxlPSEwLHRoaXMuX2xpbmVTdHlsZUxhc3RQcmljZUNpcmNsZVBhbmVWaWV3PW5ldyBtZS5MYXN0UHJpY2VDaXJjbGVQYW5lVmlldyh0aGlzKSx0aGlzLl9wcmV2Q2xvc2VQcmljZUxpbmVWaWV3PW51bGwsdGhpcy5fZGF0YVBvd2VyZWRCeT1udWxsLHRoaXMuX3N5bWJvbFJlc29sdmluZ0FjdGl2ZT1uZXcgci5XYXRjaGVkVmFsdWUoITEpLHRoaXMuX3ByZWRpY3RCYXJzPTAsdGhpcy5fc3luY01vZGVsPW51bGwsdGhpcy5fZGF0YT1udWxsLHRoaXMuX2xhc3RDb21wbGV0ZUZsYWdzPW51bGwsdGhpcy5fYmFyQ29sb3JlckNhY2hlPW51bGwsdGhpcy5fcXVvdGVzTGFzdFNwbGl0cz1uZXcgci5XYXRjaGVkVmFsdWUobnVsbCksdGhpcy5fb3ZlcnJpZGRlbkxhc3RTcGxpdHM9bmV3IHIuV2F0Y2hlZFZhbHVlKG51bGwpLHRoaXMuX2xhc3RTcGxpdHM9KDAsby5jb21iaW5lKSgoKGUsdCk9PnR8fGUpLHRoaXMuX3F1b3Rlc0xhc3RTcGxpdHMud2Vha1JlZmVyZW5jZSgpLHRoaXMuX292ZXJyaWRkZW5MYXN0U3BsaXRzLndlYWtSZWZlcmVuY2UoKSksdGhpcy5fYm94U2l6ZVZhbHVlPW5ldyByLldhdGNoZWRWYWx1ZSx0aGlzLl9iYXNlPTEwMCx0aGlzLl9wb2ludFZhbHVlPTEsdGhpcy5fZm9ybWF0dGluZ0RlcHM9bnVsbCx0aGlzLl9kZWZhdWx0Rm9ybWF0dGVyPW5ldyBFLlByaWNlRm9ybWF0dGVyKHtwcmljZVNjYWxlOnRoaXMuX2Jhc2V9KSx0aGlzLl9mb3JtYXR0ZXI9bmV3IEUuUHJpY2VGb3JtYXR0ZXIoe3ByaWNlU2NhbGU6dGhpcy5fYmFzZX0pLHRoaXMuX2lnbm9yZU1pbk1vdmVGb3JtYXR0ZXI9bmV3IEUuUHJpY2VGb3JtYXR0ZXIoe3ByaWNlU2NhbGU6dGhpcy5fYmFzZX0pLHRoaXMuX2lnbm9yZU1pbk1vdmVQcmljZVN0ZXA9bnVsbCx0aGlzLl9sYXN0QmFyQ2xvc2VUaW1lPW51bGwsdGhpcy5fb25TZXNzaW9uSWRQcm9wZXJ0eUNoYW5nZWRCb3VuZD10aGlzLl9vblNlc3Npb25JZFByb3BlcnR5Q2hhbmdlZC5iaW5kKHRoaXMpLHRoaXMuX2lnbm9yZVNlc3Npb25JZFByb3h5UHJvcGVydHlDaGFuZ2VzPSExLHRoaXMuX3JlYWxpZ25MaW5lVG9vbHNCb3VuZD10aGlzLl9yZWFsaWduTGluZVRvb2xzLmJpbmQodGhpcyksdGhpcy5fdGV4dFNvdXJjZUlzQWx3YXlzVGlja2VyUmVzdHJpY3Rpb25FbmFibGVkPSExLHRoaXMuX2xhc3RQcmljZUFuaW1hdGlvbkFjdGl2ZT0hMSx0aGlzLl9jdXJyZW50U2Vzc2lvbj0ib3V0X29mX3Nlc3Npb24iLHRoaXMuX29uU3R5bGVDaGFuZ2VkPW5ldyBsLkRlbGVnYXRlLHRoaXMuX29ic29sZXRlWk9yZGVyPTAsdGhpcy5fc2VyaWVzRXJyb3JNZXNzYWdlPW51bGwsdGhpcy5fc2VyaWVzQWx3YXlzRmFsc2VIaWJlcm5hdGVkVlc9bmV3IHIuV2F0Y2hlZFZhbHVlKCExKSx0aGlzLl9zdHlsZVRvUmVjb3Zlcj1udWxsLHRoaXMuX3ByZWNvbXB1dGVkQmFyU3R5bGVzPW5ldyBXZWFrTWFwLHRoaXMuX2RvTm90U2hvd0xhc3RBdmFpbGFibGVCYXI9ITEsdGhpcy5fZ290b0RhdGVSZXN1bHRDbGVhcmVkPSExLHRoaXMuX2VuZE9mRGF0YVBhbmVWaWV3PW51bGwsdGhpcy5fZGVsYXlTdGF0dXNQYW5lVmlldz1udWxsLHRoaXMuX3BlbmRpbmdUaW1lUmFuZ2U9bnVsbCx0aGlzLl9yZXBsYXlTdWJzY3JpYmVyPW5ldyByLldhdGNoZWRWYWx1ZShudWxsKSwKdGhpcy5fc3ltYm9sSW50ZXJ2YWxDaGFuZ2VkPW5ldyBsLkRlbGVnYXRlLHRoaXMuX2lzUmVwbGF5UmVzb2x1dGlvbkF2YWlsYWJsZUZvclVzZXI9bnVsbCx0aGlzLl9vbkluUmVwbGF5U3RhdGVDaGFuZ2VkPW5ldyBsLkRlbGVnYXRlLHRoaXMuX29uUmVwbGF5U3Vic2NyaWJlclNlcmllc01vZGlmaWVkPW5ldyBsLkRlbGVnYXRlLHRoaXMuX3BhcmFtc05vdEFwcGxpY2FibGVGb3JSZXBsYXk9bmV3IGwuRGVsZWdhdGUsdGhpcy5fb25UaW1lRnJhbWVBcHBsaWVkPW5ldyBsLkRlbGVnYXRlLHRoaXMuX3Nlcmllc0xvYWRlZD0hMSx0aGlzLl9zZXJpZXNDb21wbGV0ZWQ9ITEsdGhpcy5fc3RhdHVzPW5ldyByLldhdGNoZWRWYWx1ZSh7c2VyaWVzU3RhdHVzOjB9KSx0aGlzLl9wcmV2UmVxdWVzdGVkSW50ZXJ2YWw9IiIsdGhpcy5fdW5zdXBwb3J0ZWRSZXNvbHV0aW9uU3RhdGU9bmV3IHIuV2F0Y2hlZFZhbHVlKG51bGwpLHRoaXMuX2NvdW50ZG93blVwZGF0ZVRpbWVyPW51bGwsdGhpcy5fZGVmZXJyZWREZXN0cm95ZWQ9KDAseS5jcmVhdGVEZWZlcnJlZFByb21pc2UpKCksdGhpcy5fdm9sdW1lUG9pbnRXZWlnaHRzPW51bGwsdGhpcy5fc3R1ZHlCaW5kaW5ncz1udWxsLHRoaXMuX2xpbmVDb2xvckF0WVBlcmNlbnRGcm9tVG9wPW5ldyBaLkdyYWRpZW50Q29sb3JDYWNoZSx0aGlzLl9zYXZlZExlZnRFZGdlPW51bGwsdGhpcy5fcGVuZGluZ1Njcm9sbFRvTGVmdEVkZ2U9bnVsbCx0aGlzLl9zeW1ib2xTb3VyY2VXVj1uZXcgci5XYXRjaGVkVmFsdWUodGhpcyksdGhpcy5fY3VycmVuY3lPcmlnaW5Tb3VyY2U9bmV3IHIuV2F0Y2hlZFZhbHVlKHRoaXMpLHRoaXMuX3VuaXRPcmlnaW5Tb3VyY2U9bmV3IHIuV2F0Y2hlZFZhbHVlKHRoaXMpLHRoaXMuX3VwZGF0ZVRpbWVTY2FsZVRpbWVQb2ludFdlaWdodHM9KCk9Pnt0aGlzLl9tb2RlbC50aW1lU2NhbGUoKS5zZXRUaW1lUG9pbnRXZWlnaHRzKDE5PT09dGhpcy5zdHlsZSgpP3RoaXMuX3ZvbHVtZVBvaW50V2VpZ2h0czpudWxsKX07Y29uc3QgaD10LmNoaWxkcygpLHA9aC5pbnRlcnZhbDt0aGlzLl9pbnRlcnZhbE9iaj1uZXcgci5XYXRjaGVkVmFsdWUoYy5JbnRlcnZhbC5wYXJzZShwLnZhbHVlKCkpKSxwLnN1YnNjcmliZSh0aGlzLCgoKT0+dGhpcy5faW50ZXJ2YWxPYmouc2V0VmFsdWUoYy5JbnRlcnZhbC5wYXJzZShwLnZhbHVlKCkpKSkpLHRoaXMuX3Nlcmllc1N0YXR1cz0oMCxvLmNvbWJpbmUpKGZ0LHRoaXMuX3N0YXR1cy53ZWFrUmVmZXJlbmNlKCkpLHRoaXMuX3N0dWR5QmluZGluZ3M9bmV3IEcuU2VyaWVzU3R1ZGllc0JpbmRpbmdzKHRoaXMpLHRoaXMuX3N0dWR5QmluZGluZ3Mub25TdGF0dXNDaGFuZ2VkKCkuc3Vic2NyaWJlKHRoaXMsKCgpPT57Y29uc3QgZT10aGlzLnN0YXR1cygpLHQ9dGhpcy5fc3RhdHVzLnZhbHVlKCkscz10aGlzLl9zdHVkeUJpbmRpbmdzPy5zdGF0dXMoKTtzPy50eXBlIT09SmUuU3R1ZHlTdGF0dXNUeXBlLkVycm9yfHx0aGlzLmlzRmFpbGVkKCl8fCh0aGlzLl9zZXJpZXNFcnJvck1lc3NhZ2U9KDAsSmUuY29udmVydFN0dWR5U3RhdHVzVG9TdHJpbmcpKHMpKSx0aGlzLl91cGRhdGVTdGF0dXMoey4uLnRoaXMuX3N0YXR1cy52YWx1ZSgpLGFkZGl0aW9uYWxTdHVkeVN0YXR1czpzfSksdGhpcy5zdGF0dXMoKSE9PWUmJih0aGlzLl9zdGF0dXNWaWV3LnVwZGF0ZSgpLHRoaXMuX21vZGVsLnVwZGF0ZVNvdXJjZSh0aGlzKSksKDAsaS5kZWZhdWx0KSh0LHRoaXMuX3N0YXR1cyl8fHRoaXMuX29uU3RhdHVzQ2hhbmdlZC5maXJlKCl9KSksdGhpcy5fc2VyaWVzU291cmNlPW5ldyB5ZS5TZXJpZXNEYXRhU291cmNlKGUuY2hhcnRBcGkoKSwicyIsZCk7Y29uc3QgXz10aGlzLl9zZXJpZXNTb3VyY2UuZGF0YUV2ZW50cygpO18uc3ltYm9sUmVzb2x2ZWQoKS5zdWJzY3JpYmUodGhpcyx0aGlzLl9vblN5bWJvbFJlc29sdmVkKSxfLnN5bWJvbEVycm9yKCkuc3Vic2NyaWJlKHRoaXMsdGhpcy5fb25TeW1ib2xFcnJvciksXy5zZXJpZXNUaW1lRnJhbWUoKS5zdWJzY3JpYmUodGhpcyx0aGlzLl9vblNlcmllc1RpbWVGcmFtZSksXy5zZXJpZXNFcnJvcigpLnN1YnNjcmliZSh0aGlzLHRoaXMuX29uU2VyaWVzRXJyb3IpLF8ubG9hZGluZygpLnN1YnNjcmliZSh0aGlzLHRoaXMuX29uU2VyaWVzTG9hZGluZyksXy5jb21wbGV0ZWQoKS5zdWJzY3JpYmUodGhpcyx0aGlzLl9vblNlcmllc0NvbXBsZXRlZCksXy5kYXRhVXBkYXRlZCgpLnN1YnNjcmliZSh0aGlzLHRoaXMuX29uRGF0YVVwZGF0ZWQpLF8uYmFyUmVjZWl2ZWQoKS5zdWJzY3JpYmUodGhpcyx0aGlzLl9vbkJhclJlY2VpdmVkKSxfLnVuc3VwcG9ydGVkUmVzb2x1dGlvblJlcXVlc3RlZCgpLnN1YnNjcmliZSh0aGlzLHRoaXMuX29uVW5zdXBwb3J0ZWRSZXNvbHV0aW9uUmVxdWVzdGVkKSxfLmNsZWFyZWQoKS5zdWJzY3JpYmUodGhpcyx0aGlzLl9vblNlcmllc0RhdGFDbGVhcmVkKSx0aGlzLl9xdW90ZXNQcm92aWRlcj1uZXcgQS5RdW90ZXNQcm92aWRlcih2b2lkIDAsZS5jb2xsYXBzZWQoKS5zcGF3bk93bmVyc2hpcCgpKSx0aGlzLl9xdW90ZXNQcm92aWRlci5xdW90ZXNVcGRhdGUoKS5zdWJzY3JpYmUodGhpcyx0aGlzLl9vblF1b3Rlc1VwZGF0ZSksdGhpcy5fc3R1ZHlCaW5kaW5ncz8uYmluZFRvU2VyaWVzUHJvcGVydGllcyh0KSx0aGlzLl9wcm9wZXJ0aWVzPXQsaC5jdXJyZW5jeUlkLnN1YnNjcmliZSh0aGlzLHRoaXMuX29uQ3VycmVuY3lDaGFuZ2VkKSxoLnVuaXRJZC5zdWJzY3JpYmUodGhpcyx0aGlzLl9vblVuaXRDaGFuZ2VkKSxoLm1ldHJpY0lkLnN1YnNjcmliZSh0aGlzLHRoaXMuX29uTWV0cmljQ2hhbmdlZCksaC50aW1lZnJhbWUuc3Vic2NyaWJlKHRoaXMsdGhpcy5jaGFuZ2VUaW1lRnJhbWUpLHQuc3Vic2NyaWJlKHRoaXMsdGhpcy5fb25Qcm9wZXJ0aWVzQ2hhbmdlZCksdGhpcy5fc2Vzc2lvbklkUHJveHlQcm9wZXJ0eT1uZXcgdy5Qcm9wZXJ0eShoLnNlc3Npb25JZC52YWx1ZSgpKSxoLnNlc3Npb25JZC5zdWJzY3JpYmUodGhpcywoKCk9PnRoaXMuX3VwZGF0ZVNlc3Npb25JZFByb3h5UHJvcGVydHkoKSkpLAp0aGlzLl9zZXNzaW9uSWRQcm94eVByb3BlcnR5LnN1YnNjcmliZSh0aGlzLHRoaXMuX29uU2Vzc2lvbklkUHJveHlQcm9wZXJ0eUNoYW5nZWQpLHRoaXMuX3N5bWJvbFRleHRTb3VyY2VQcm94eVByb3BlcnR5PW5ldyB3LlByb3BlcnR5LHRoaXMuX3JlY2FsY1N5bWJvbFRleHRTb3VyY2VQcm94eVByb3BlcnR5KCksaC5zdGF0dXNWaWV3U3R5bGUuY2hpbGRzKCkuc3ltYm9sVGV4dFNvdXJjZS5zdWJzY3JpYmUodGhpcyx0aGlzLl9yZWNhbGNTeW1ib2xUZXh0U291cmNlUHJveHlQcm9wZXJ0eSksdGhpcy5fc3ltYm9sVGV4dFNvdXJjZVByb3h5UHJvcGVydHkuc3Vic2NyaWJlKHRoaXMsKCgpPT5lLmxpZ2h0VXBkYXRlKCkpKSx0aGlzLl9vcHRpb25zPSgwLGEubWVyZ2UpKCgwLGEuY2xvbmUpKF90KSx1KSx0aGlzLl9wcmV2Q2hhcnRTdHlsZT1oLnN0eWxlLnZhbHVlKCksdGhpcy5fcHJpY2VBeGlzVmlldz1uZXcgRi5TZXJpZXNQcmljZUF4aXNWaWV3KHRoaXMsZSx7YWx3YXlzU2hvd0dsb2JhbExhc3Q6IWx0LHNob3dDb3VudGRvd246dS5jb3VudGRvd25FbmFibGVkfSk7bGV0IGY9bnVsbDtydHx8bHR8fChmPW5ldyBGLlNlcmllc1ByaWNlQXhpc1ZpZXcodGhpcyxlLHt2aXNpYmxlT25IaXN0b3J5T25seTohMCxzaG93U3ltYm9sTGFiZWw6ITEsc2hvd0NvdW50ZG93bjohMSxhbHdheXNTaG93R2xvYmFsTGFzdDohMSx1c2VTb2xpZEJvZHlDb2xvcjohMX0pKSx0aGlzLl9wcmljZUxpbmVQcmljZUF4aXNWaWV3PW5ldyBuZS5TZXJpZXNQcmljZUxpbmVBeGlzVmlldyh0aGlzKSx0aGlzLl9wcmljZUxpbmVBeGlzVmlld3M9W3RoaXMuX3ByaWNlTGluZVByaWNlQXhpc1ZpZXddLHRoaXMuX3Byb2plY3Rpb25QcmljZUF4aXNWaWV3PW5ldyByZS5Qcm9qZWN0aW9uU2VyaWVzUHJpY2VBeGlzVmlldyh0aGlzLGUse3Nob3dDb3VudGRvd246dS5jb3VudGRvd25FbmFibGVkfSksdGhpcy5fcHJpY2VBeGlzVmlld3M9W3RoaXMuX3ByaWNlQXhpc1ZpZXcsdGhpcy5fcHJvamVjdGlvblByaWNlQXhpc1ZpZXddLG51bGwhPT1mJiZ0aGlzLl9wcmljZUF4aXNWaWV3cy5wdXNoKGYpLHRoaXMuX3ByZXZDbG9zZVByaWNlQXhpc1ZpZXc9bmV3IHRlLlByZXZDbG9zZVNlcmllc1ByaWNlQXhpc1ZpZXcodGhpcyxlKSx0aGlzLl9wcmljZUF4aXNWaWV3cy51bnNoaWZ0KHRoaXMuX3ByZXZDbG9zZVByaWNlQXhpc1ZpZXcpLHRoaXMuX3ByZXZDbG9zZVByaWNlTGluZVZpZXc9bmV3IHNlLlNlcmllc1ByZXZDbG9zZVByaWNlTGluZVBhbmVWaWV3KHRoaXMpLHRoaXMuX3BhbmVQcmljZUF4aXNWaWV3PW5ldyBvZS5QYW5lUHJpY2VBeGlzVmlldyh0aGlzLl9wcmljZUF4aXNWaWV3LHRoaXMsZSksdGhpcy5faGlzdG9yeVByaWNlUGFuZVByaWNlQXhpc1ZpZXc9bnVsbCE9PWY/bmV3IG9lLlBhbmVQcmljZUF4aXNWaWV3KGYsdGhpcyxlKTpudWxsLHRoaXMuX3Byb2plY3Rpb25QYW5lUHJpY2VBeGlzVmlldz1uZXcgb2UuUGFuZVByaWNlQXhpc1ZpZXcodGhpcy5fcHJvamVjdGlvblByaWNlQXhpc1ZpZXcsdGhpcyxlKSx0aGlzLl9sYWJlbFBhbmVWaWV3cz1bdGhpcy5fcGFuZVByaWNlQXhpc1ZpZXcsdGhpcy5fcHJvamVjdGlvblBhbmVQcmljZUF4aXNWaWV3XSxudWxsIT09dGhpcy5faGlzdG9yeVByaWNlUGFuZVByaWNlQXhpc1ZpZXcmJnRoaXMuX2xhYmVsUGFuZVZpZXdzLnB1c2godGhpcy5faGlzdG9yeVByaWNlUGFuZVByaWNlQXhpc1ZpZXcpLHRoaXMuX2hpZ2hMb3dBdmdQYW5lVmlld3M9W10sdGhpcy5fYXZlcmFnZVBhbmVWaWV3cz1bXSx0aGlzLl9jcmVhdGVIaWdoTG93QXZnVmlld3MoKSx0aGlzLl9zdWJzY3JpYmVSZXN0YXJ0VG9TZXNzaW9uSWRDaGFuZ2UoKSxoLnZpc2libGUuc3Vic2NyaWJlKHRoaXMsdGhpcy5fdXBkYXRlTGFzdFByaWNlQW5pbWF0aW9uQWN0aXZlKSx0aGlzLl91cGRhdGVMYXN0UHJpY2VBbmltYXRpb25BY3RpdmUoKSxoLm1pblRpY2suc3Vic2NyaWJlKHRoaXMsdGhpcy5fb25Gb3JtYXR0ZXJQcm9wc0NoYW5nZWQpLHRoaXMuX2RhdGFXaW5kb3dWaWV3PW5ldyBnZS5TZXJpZXNEYXRhV2luZG93Vmlldyh0aGlzLGUpLHRoaXMuX2xlZ2VuZFZpZXc9bmV3IE0uU2VyaWVzTGVnZW5kVmlldyh0aGlzLGUpLHRoaXMuX3N0YXR1c1ZpZXc9bmV3IEwuU2VyaWVzU3RhdHVzVmlldyh0aGlzLGguc3RhdHVzVmlld1N0eWxlKSx0aGlzLl9mbG9hdGluZ1Rvb2x0aXBWaWV3PW5ldyBldC5TZXJpZXNDaGFydEZsb2F0aW5nVG9vbHRpcFZpZXcoZSksdGhpcy5fbWFya2V0U3RhdHVzTW9kZWw9bmV3IEQuTWFya2V0U3RhdHVzTW9kZWwodGhpcy5fcXVvdGVzUHJvdmlkZXIpLHRoaXMuX2RhdGFVcGRhdGVkTW9kZU1vZGVsPW90P25ldyBrLkRhdGFVcGRhdGVkTW9kZU1vZGVsKHRoaXMuX3N5bWJvbEluZm8uc3Bhd24oKS5vd25lcnNoaXAoKSx0aGlzLl9zZXJpZXNTdGF0dXMuc3Bhd24oKS5vd25lcnNoaXAoKSwoMCxYZS5jcmVhdGVXVkZyb21HZXR0ZXJBbmRTdWJzY3JpcHRpb24pKCgoKT0+dGhpcy5fbGFzdENvbXBsZXRlRmxhZ3M/LnJ0X3VwZGF0ZV9wZXJpb2QpLF8uY29tcGxldGVkKCkpLm93bmVyc2hpcCgpKTpudWxsLHRoaXMuX2RhdGFQcm9ibGVtTW9kZWw9bmV3IFYuRGF0YVByb2JsZW1Nb2RlbCh0aGlzLl9xdW90ZXNQcm92aWRlcix0aGlzLl9zeW1ib2xJbmZvLnNwYXduKCkub3duZXJzaGlwKCkpLGguYmFja0FkanVzdG1lbnQuc3Vic2NyaWJlKHRoaXMsKCgpPT57dGhpcy5pc1N0YXJ0ZWQoKSYmdGhpcy5yZXN0YXJ0KCl9KSksaC5zZXR0bGVtZW50QXNDbG9zZS5zdWJzY3JpYmUodGhpcywoKCk9Pnt0aGlzLmlzRFdNKCkmJnRoaXMuaXNTdGFydGVkKCkmJnRoaXMucmVzdGFydCgpfSkpLHRoaXMuX3N5bWJvbFJlc29sdmluZ0FjdGl2ZS5zdWJzY3JpYmUodGhpcy5fcmVhbGlnbkxpbmVUb29sc0JvdW5kKSx0aGlzLl9pbnRlcnZhbENoYW5nZWQuc3Vic2NyaWJlKHRoaXMsdGhpcy5fcmVhbGlnbkxpbmVUb29sc0JvdW5kKSx0aGlzLl9pbnRlcnZhbENoYW5nZWQuc3Vic2NyaWJlKHRoaXMsKCgpPT50aGlzLl9jaGVja0NoYXJ0U3R5bGUoKSkpLCgwLApnLmlzRmVhdHVyZXNldEVuYWJsZWQpKCJ3aWRnZXQiKXx8UHJvbWlzZS5hbGwoW3MuZSg3MzExKSxzLmUoODQzMDYpLHMuZSgyOTI5Nikscy5lKDUyMzk2KSxzLmUoNjAwNjIpLHMuZSgyMDM1NCkscy5lKDEzNDkyKSxzLmUoMzc3NDYpLHMuZSg5NDIzMikscy5lKDUxODQpLHMuZSgxMjA1MSkscy5lKDM4MjYyKSxzLmUoNzQyNzMpLHMuZSgzMjM4Nykscy5lKDM5NjA5KSxzLmUoOTE4MzMpXSkudGhlbihzLmJpbmQocywzMDA4MjgpKS50aGVuKChlPT57dGhpcy5fZW5kT2ZEYXRhUGFuZVZpZXc9bmV3IGUuRW5kT2ZEYXRhTG9sbGlwb3BQYW5lVmlldyh0aGlzKX0pKSx0aGlzLl9zdHVkeUJpbmRpbmdzPy5zeW5jU3R1ZHkodGhpcy5zdHlsZSgpKSx0aGlzLl9hbGlhc1N5bWJvbEluZm89KDAsTy5jcmVhdGVBbGlhc1N5bWJvbEluZm9XVikodGhpcy5fc3ltYm9sSW5mby53ZWFrUmVmZXJlbmNlKCksdGhpcy5fbW9kZWwuc3ltYm9sQWxpYXNTZXJ2aWNlKCkpLHRoaXMuX2FsaWFzU3ltYm9sSW5mby5zdWJzY3JpYmUoKCgpPT50aGlzLl9vbkZvcm1hdHRlclByb3BzQ2hhbmdlZCgpKSksJC5hbGVydHNBdmFpbGFibGUmJnRoaXMuX3N5bWJvbFJlc29sdmluZ0FjdGl2ZS5zdWJzY3JpYmUodGhpcy5fdXBkYXRlQWxlcnRDcmVhdGlvbkF2YWlsYWJsZUJvdW5kKSwhKDAsSi5pc0ZlYXR1cmVFbmFibGVkKSgiZGVsYXlfc3RhdHVzX29uX2xhc3RfYmFyIil8fHRoaXMuX21vZGVsLm9uV2lkZ2V0KCl8fHRoaXMuX21vZGVsLmlzU25hcHNob3QoKXx8dGhpcy5fc3ltYm9sSW5mby5zdWJzY3JpYmUoKGU9PntpZigoMCxQLmdldFN5bWJvbERlbGF5U2Vjb25kcykoZSk+MCl7aWYodGhpcy5fZGVsYXlTdGF0dXNQYW5lVmlldylyZXR1cm47dGhpcy5fZGVsYXlTdGF0dXNQYW5lVmlldz1uZXcgWC5Bc3luY1Jlc291cmNlV3JhcHBlcihQcm9taXNlLmFsbChbcy5lKDI3MjkyKSxzLmUoMTI0NDgpXSkudGhlbihzLmJpbmQocywxMDA4MjApKS50aGVuKCgoe0RlbGF5U3RhdHVzUGFuZVZpZXc6ZX0pPT5uZXcgZSh0aGlzKSkpLChlPT57ZS5kZXN0cm95KCksdGhpcy5fZGVsYXlTdGF0dXNQYW5lVmlldz1udWxsfSkpfWVsc2UgdGhpcy5fZGVsYXlTdGF0dXNQYW5lVmlldz8uZGVzdHJveSgpfSkpLHRoaXMuY3JlYXRlUGFuZVZpZXcoKSx0aGlzLl9wcm9wZXJ0aWVzLmFkZEV4Y2x1ZGVkS2V5KCJ2aXNpYmxlIiwxKSx0aGlzLl9wcm9wZXJ0aWVzLmFkZEV4Y2x1ZGVkS2V5KCJjdXJyZW5jeUlkIiwxKSx0aGlzLl9mdXR1cmVCYXJzUGFuZVZpZXc9bnVsbCx0aGlzLl9wcmljZUxpbmVWaWV3PW51bGwsdGhpcy5fYmFzZUhvcml6b250YWxMaW5lVmlldz1uZXcgR2UuU2VyaWVzSG9yaXpvbnRhbEJhc2VMaW5lUGFuZVZpZXcodGhpcyk7Zm9yKGNvbnN0WyxlXW9mIE9iamVjdC5lbnRyaWVzKEkuU1RZTEVfU0hPUlRfTkFNRVMpKXRoaXMuX3Byb3BlcnRpZXMuY2hpbGQoYCR7ZX1TdHlsZWApPy5zdWJzY3JpYmUodGhpcywoKCk9PnRoaXMuaW52YWxpZGF0ZUJhclN0eWxlc0NhY2hlKCkpKTtjb25zdCB2PWgucmVua29TdHlsZS5jaGlsZHMoKS5pbnB1dHMuY2hpbGRzKCk7di5ib3hTaXplLnN1YnNjcmliZSh0aGlzLCgoKT0+dGhpcy5fcmVzdGFydElmU3R5bGVNYXRjaGVzKDQpKSksdi5zdHlsZS5zdWJzY3JpYmUodGhpcywoKCk9PnRoaXMuX3Jlc3RhcnRJZlN0eWxlTWF0Y2hlcyg0KSkpLHYuYXRyTGVuZ3RoLnN1YnNjcmliZSh0aGlzLCgoKT0+dGhpcy5fcmVzdGFydElmU3R5bGVNYXRjaGVzKDQpKSksdi5wZXJjZW50YWdlTFRQLnN1YnNjcmliZSh0aGlzLCgoKT0+dGhpcy5fcmVzdGFydElmU3R5bGVNYXRjaGVzKDQpKSksdi53aWNrcy5zdWJzY3JpYmUodGhpcywoKCk9PnRoaXMuX3Jlc3RhcnRJZlN0eWxlTWF0Y2hlcyg0KSkpLHYuc291cmNlcy5zdWJzY3JpYmUodGhpcywoKCk9PnRoaXMuX3Jlc3RhcnRJZlN0eWxlTWF0Y2hlcyg0KSkpLGgucGJTdHlsZS5jaGlsZHMoKS5pbnB1dHMuY2hpbGRzKCkubGIuc3Vic2NyaWJlKHRoaXMsKCgpPT50aGlzLl9yZXN0YXJ0SWZTdHlsZU1hdGNoZXMoNykpKTtjb25zdCBiPWgua2FnaVN0eWxlLmNoaWxkcygpLmlucHV0cy5jaGlsZHMoKTtiLnJldmVyc2FsQW1vdW50LnN1YnNjcmliZSh0aGlzLCgoKT0+dGhpcy5fcmVzdGFydElmU3R5bGVNYXRjaGVzKDUpKSksYi5zdHlsZS5zdWJzY3JpYmUodGhpcywoKCk9PnRoaXMuX3Jlc3RhcnRJZlN0eWxlTWF0Y2hlcyg1KSkpLGIuYXRyTGVuZ3RoLnN1YnNjcmliZSh0aGlzLCgoKT0+dGhpcy5fcmVzdGFydElmU3R5bGVNYXRjaGVzKDUpKSksYi5wZXJjZW50YWdlTFRQLnN1YnNjcmliZSh0aGlzLCgoKT0+dGhpcy5fcmVzdGFydElmU3R5bGVNYXRjaGVzKDUpKSk7Y29uc3QgUz1oLnBuZlN0eWxlLmNoaWxkcygpLmlucHV0cy5jaGlsZHMoKTtTLmJveFNpemUuc3Vic2NyaWJlKHRoaXMsKCgpPT50aGlzLl9yZXN0YXJ0SWZTdHlsZU1hdGNoZXMoNikpKSxTLnJldmVyc2FsQW1vdW50LnN1YnNjcmliZSh0aGlzLCgoKT0+dGhpcy5fcmVzdGFydElmU3R5bGVNYXRjaGVzKDYpKSksUy5zb3VyY2VzLnN1YnNjcmliZSh0aGlzLCgoKT0+dGhpcy5fcmVzdGFydElmU3R5bGVNYXRjaGVzKDYpKSksUy5zdHlsZS5zdWJzY3JpYmUodGhpcywoKCk9PnRoaXMuX3Jlc3RhcnRJZlN0eWxlTWF0Y2hlcyg2KSkpLFMuYXRyTGVuZ3RoLnN1YnNjcmliZSh0aGlzLCgoKT0+dGhpcy5fcmVzdGFydElmU3R5bGVNYXRjaGVzKDYpKSksUy5wZXJjZW50YWdlTFRQLnN1YnNjcmliZSh0aGlzLCgoKT0+dGhpcy5fcmVzdGFydElmU3R5bGVNYXRjaGVzKDYpKSksUy5vbmVTdGVwQmFja0J1aWxkaW5nLnN1YnNjcmliZSh0aGlzLCgoKT0+dGhpcy5fcmVzdGFydElmU3R5bGVNYXRjaGVzKDYpKSksaC5yYW5nZVN0eWxlLmNoaWxkcygpLmlucHV0cy5jaGlsZHMoKS5waGFudG9tQmFycy5zdWJzY3JpYmUodGhpcywoKCk9PnRoaXMuX3Jlc3RhcnRJZlN0eWxlTWF0Y2hlcygxMSkpKSx0aGlzLl9pc0RXTVByb3BlcnR5PW5ldyB3LlByb3BlcnR5KHRoaXMuaXNEV00oKSksCnRoaXMuX29uUmVzdGFydGVkLnN1YnNjcmliZSh0aGlzLCgoKT0+dGhpcy5faXNEV01Qcm9wZXJ0eS5zZXRWYWx1ZSh0aGlzLmlzRFdNKCkpKSksaC5kaXZpZGVuZHNBZGp1c3RtZW50Py5zdWJzY3JpYmUodGhpcywoKCk9Pntjb25zdCBlPSgwLG4uZW5zdXJlRGVmaW5lZCkoaC5kaXZpZGVuZHNBZGp1c3RtZW50KS52YWx1ZSgpOygwLG0udHJhY2tFdmVudCkoIkRpdmlkZW5kcyBhZGp1c3QiLCEwPT09ZT8iT24iOiJPZmYiKSx0aGlzLnJlc3RhcnQoKX0pKSx0aGlzLl9kYXRhUG93ZXJlZEJ5PW51bGwsaC5zaG93Q291bnRkb3duLnN1YnNjcmliZSh0aGlzLHRoaXMuX29uU2hvd0NvdW50ZG93bkNoYW5nZWQpLHRoaXMuX29uU2hvd0NvdW50ZG93bkNoYW5nZWQoaC5zaG93Q291bnRkb3duKSx0aGlzLl9yZWNyZWF0ZVByaWNlRm9ybWF0dGluZ0RlcGVuZGVuY2llcygpLGgubGluZVN0eWxlLmNoaWxkcygpLnByaWNlU291cmNlLnN1YnNjcmliZSh0aGlzLHRoaXMuX3VwZGF0ZUJhckZ1bmN0aW9uKSxoLmxpbmVXaXRoTWFya2Vyc1N0eWxlLmNoaWxkcygpLnByaWNlU291cmNlLnN1YnNjcmliZSh0aGlzLHRoaXMuX3VwZGF0ZUJhckZ1bmN0aW9uKSxoLnN0ZXBsaW5lU3R5bGUuY2hpbGRzKCkucHJpY2VTb3VyY2Uuc3Vic2NyaWJlKHRoaXMsdGhpcy5fdXBkYXRlQmFyRnVuY3Rpb24pLGguYXJlYVN0eWxlLmNoaWxkcygpLnByaWNlU291cmNlLnN1YnNjcmliZSh0aGlzLHRoaXMuX3VwZGF0ZUJhckZ1bmN0aW9uKSxoLmJhc2VsaW5lU3R5bGUuY2hpbGRzKCkucHJpY2VTb3VyY2Uuc3Vic2NyaWJlKHRoaXMsdGhpcy5fdXBkYXRlQmFyRnVuY3Rpb24pLGguY29sdW1uU3R5bGUuY2hpbGRzKCkucHJpY2VTb3VyY2Uuc3Vic2NyaWJlKHRoaXMsdGhpcy5fdXBkYXRlQmFyRnVuY3Rpb24pLGgudHBvU3R5bGUuY2hpbGRzKCkucHJpY2VTb3VyY2Uuc3Vic2NyaWJlKHRoaXMsdGhpcy5fdXBkYXRlQmFyRnVuY3Rpb24pLHRoaXMuX3VwZGF0ZUJhckZ1bmN0aW9uKCksdGhpcy5faXNJblJlcGxheT0oMCxvLmNvbWJpbmUpKChlPT5udWxsIT09ZSksdGhpcy5fcmVwbGF5U3Vic2NyaWJlci53ZWFrUmVmZXJlbmNlKCkpLHRoaXMuX3ZhbHVlc1Byb3ZpZGVyPW5ldyBRZS5TZXJpZXNWYWx1ZXNQcm92aWRlcih0aGlzLHRoaXMubW9kZWwoKSksdGhpcy5fbGVnZW5kVmFsdWVzUHJvdmlkZXI9bmV3IGxlLlNlcmllc0xlZ2VuZFZhbHVlc1Byb3ZpZGVyKHRoaXMsdGhpcy5tb2RlbCgpKSx0aGlzLl90YWJsZVZpZXdWYWx1ZXNQcm92aWRlcj1uZXcgaXQuU2VyaWVzVGFibGVWaWV3VmFsdWVzUHJvdmlkZXIodGhpcyx0aGlzLm1vZGVsKCkpLHRoaXMuX2RhdGFXaW5kb3dWYWx1ZXNQcm92aWRlcj1uZXcgUWUuU2VyaWVzVmFsdWVzUHJvdmlkZXIodGhpcyx0aGlzLm1vZGVsKCkpLHRoaXMuX3ZhbHVlc1Byb3ZpZGVyPW5ldyBRZS5TZXJpZXNWYWx1ZXNQcm92aWRlcih0aGlzLHRoaXMubW9kZWwoKSksdGhpcy5fY2hhcnRGbG9hdGluZ1Rvb2x0aXBWYWx1ZXNQcm92aWRlcj1uZXcgdWUuU2VyaWVzQ2hhcnRGbG9hdGluZ1Rvb2x0aXBWYWx1ZXNQcm92aWRlcih0aGlzLHRoaXMubW9kZWwoKSksdGhpcy5faXNDdXJyZW5jeU9yaWdpbi5zZXRWYWx1ZSghMCksdGhpcy5faXNVbml0T3JpZ2luLnNldFZhbHVlKCEwKTtjb25zdCBUPSgpPT57Y29uc3QgdD10aGlzLl9zeW1ib2xJbmZvLnZhbHVlKCkscz0oMCxQLnN5bWJvbFVuaXQpKHQsZS51bml0Q29udmVyc2lvbkVuYWJsZWQoKSk7bnVsbCE9PXQmJm51bGwhPT1zP3RoaXMuX3VuaXRNZXRhRGF0YS5zZXRWYWx1ZSh7dW5pdE9yaWdpbk5hbWU6dGhpcy5wcm9TeW1ib2woKSxjb252ZXJ0aWJsZUdyb3VwczooMCxudC51bml0Q29udmVydGlibGVHcm91cHMpKHQscyx0aGlzLl9hdmFpbGFibGVVbml0cy52YWx1ZSgpKSxpc0NvbnZlcnRlZFRvT3RoZXJVbml0OigwLFAuaXNDb252ZXJ0ZWRUb090aGVyVW5pdCkodCxlLnVuaXRDb252ZXJzaW9uRW5hYmxlZCgpKSxvcmlnaW5hbFVuaXQ6KDAsUC5zeW1ib2xPcmlnaW5hbFVuaXQpKHQsZS51bml0Q29udmVyc2lvbkVuYWJsZWQoKSksY3VycmVudFVuaXQ6c30pOnRoaXMuX3VuaXRNZXRhRGF0YS5zZXRWYWx1ZShudWxsKX07dGhpcy5fYXZhaWxhYmxlVW5pdHM9ZS5hdmFpbGFibGVVbml0cygpLnNwYXduKCksdGhpcy5fc3ltYm9sSW5mby5zdWJzY3JpYmUoKCgpPT57Y29uc3QgZT10aGlzLl9zeW1ib2xJbmZvLnZhbHVlKCksdD0oMCxQLnN5bWJvbEN1cnJlbmN5KShlKTtudWxsIT09ZSYmbnVsbCE9PXQ/dGhpcy5fY3VycmVuY3lNZXRhRGF0YS5zZXRWYWx1ZSh7b3JpZ2luYWxDdXJyZW5jeTooMCxQLnN5bWJvbE9yaWdpbmFsQ3VycmVuY3kpKGUpLGN1cnJlbnRDdXJyZW5jeTp0LGJhc2VDdXJyZW5jeTooMCxQLnN5bWJvbEJhc2VDdXJyZW5jeSkoZSksaXNDdXJyZW5jeUNvbnZlcnRpYmxlOigwLFAuc3ltYm9sQ3VycmVuY3lDb252ZXJ0aWJsZSkoZSksaXNDb252ZXJ0ZWRUb090aGVyQ3VycmVuY3k6KDAsUC5pc0NvbnZlcnRlZFRvT3RoZXJDdXJyZW5jeSkoZSksY3VycmVuY3lPcmlnaW5OYW1lOnRoaXMucHJvU3ltYm9sKCl9KTp0aGlzLl9jdXJyZW5jeU1ldGFEYXRhLnNldFZhbHVlKG51bGwpfSkpLHRoaXMuX3N5bWJvbEluZm8uc3Vic2NyaWJlKFQpLHRoaXMuX2F2YWlsYWJsZVVuaXRzLnN1YnNjcmliZShUKX1zZXRJZChlKXtzdXBlci5zZXRJZChlKSwoMCxRLmdldFBlcnNpc3RlbnRMb2dnZXIpKCk/LmFkZFBlcnNpc3RlbnRMb2dFbnRyeShgU2V0IHNlcmllcyBJZCB0byAke2V9YCx1LkxPR0xFVkVMLklORk8sImNoYXJ0LnNlcmllcyIpfXN1cHBvcnRzQ29uZmxhdGVkQ2h1bmtzKCl7cmV0dXJuITB9Y29uZmxhdGVkQ2h1bmtzKGUsdCl7cmV0dXJuIHRoaXMuZGF0YSgpLmNvbmZsYXRlZENodW5rcyhlLHQpfXNlcmllc0Vycm9yTWVzc2FnZSgpe2NvbnN0e3Nlcmllc1N0YXR1czplLGFkZGl0aW9uYWxTdHVkeVN0YXR1czp0fT10aGlzLl9zdGF0dXMudmFsdWUoKQo7cmV0dXJuIHRoaXMuaXNGYWlsZWQoKT90aGlzLl9zZXJpZXNFcnJvck1lc3NhZ2U6SS5zZXJpZXNMb2FkaW5nU3RhdHVzZXMuaGFzKGUpP251bGw6dD8udHlwZT09PUplLlN0dWR5U3RhdHVzVHlwZS5FcnJvcj8oMCxKZS5jb252ZXJ0U3R1ZHlTdGF0dXNUb1N0cmluZykoe3R5cGU6SmUuU3R1ZHlTdGF0dXNUeXBlLkVycm9yLGVycm9yRGVzY3JpcHRpb246dC5lcnJvckRlc2NyaXB0aW9ufSwhMCk6bnVsbH1kZXN0cm95KCl7dGhpcy5fbGFzdFNwbGl0cy5kZXN0cm95KCksdGhpcy5fc2VyaWVzU3RhdHVzLmRlc3Ryb3koKSx0aGlzLl9xdW90ZXNQcm92aWRlci5xdW90ZXNVcGRhdGUoKS51bnN1YnNjcmliZUFsbCh0aGlzKSx0aGlzLl9xdW90ZXNQcm92aWRlci5kZXN0cm95KCksdGhpcy5jbGVhckdvdG9EYXRlUmVzdWx0KCksdGhpcy5fbGVnZW5kVmlldy5kZXN0cm95KCksdGhpcy5fZmxvYXRpbmdUb29sdGlwVmlldy5kZXN0cm95KCksdGhpcy5fbWFya2V0U3RhdHVzTW9kZWwuZGVzdHJveSgpLHRoaXMuX21vZGVsLnN5bWJvbEFsaWFzU2VydmljZSgpPy5vbkFsaWFzQ2hhbmdlZCgpLnVuc3Vic2NyaWJlQWxsKHRoaXMpLHRoaXMuX2FsaWFzU3ltYm9sSW5mbz8ucmVsZWFzZSgpLHRoaXMuX3N0dWR5QmluZGluZ3M/LmRlc3Ryb3koKSx0aGlzLl9kYXRhVXBkYXRlZE1vZGVNb2RlbD8uZGVzdHJveSgpLHRoaXMuX2RhdGFQcm9ibGVtTW9kZWwuZGVzdHJveSgpLHRoaXMuX2RlbGF5U3RhdHVzUGFuZVZpZXc/LmRlc3Ryb3koKSx0aGlzLl9wYW5lVmlldyYmdGhpcy5fcGFuZVZpZXcuZGVzdHJveSYmdGhpcy5fcGFuZVZpZXcuZGVzdHJveSgpLHRoaXMuX3Nlcmllc1NvdXJjZS5kZXN0cm95KCksdGhpcy5fcXVvdGVzUHJvdmlkZXIucXVvdGVzVXBkYXRlKCkudW5zdWJzY3JpYmVBbGwodGhpcyksdGhpcy5fbW9kZWwudGltZVNjYWxlKCkudmlzaWJsZUJhcnNTdHJpY3RSYW5nZUNoYW5nZWQoKS51bnN1YnNjcmliZUFsbCh0aGlzKSx0aGlzLl91bnN1YnNjcmliZVJlc3RhcnRUb1Nlc3Npb25JZENoYW5nZSgpLHRoaXMuX3BhcmFtc05vdEFwcGxpY2FibGVGb3JSZXBsYXkuZGVzdHJveSgpLHRoaXMuX29uVGltZUZyYW1lQXBwbGllZC5kZXN0cm95KCksdGhpcy5fZGVmZXJyZWREZXN0cm95ZWQucmVzb2x2ZSgpLHRoaXMuX3Byb3BlcnRpZXMuZGVzdHJveSgpLHRoaXMuX2lzSW5SZXBsYXkuZGVzdHJveSgpLHRoaXMuX2F2YWlsYWJsZVVuaXRzLmRlc3Ryb3koKSx0aGlzLl9zeW1ib2xSZXNvbHZpbmdBY3RpdmUudW5zdWJzY3JpYmUodGhpcy5fcmVhbGlnbkxpbmVUb29sc0JvdW5kKSwkLmFsZXJ0c0F2YWlsYWJsZSYmdGhpcy5fc3ltYm9sUmVzb2x2aW5nQWN0aXZlLnVuc3Vic2NyaWJlKHRoaXMuX3VwZGF0ZUFsZXJ0Q3JlYXRpb25BdmFpbGFibGVCb3VuZCksdGhpcy5faW50ZXJ2YWxDaGFuZ2VkLmRlc3Ryb3koKSxudWxsIT09dGhpcy5fY291bnRkb3duVXBkYXRlVGltZXImJih0aGlzLl9tb2RlbC5jbGVhckludGVydmFsKHRoaXMuX2NvdW50ZG93blVwZGF0ZVRpbWVyKSx0aGlzLl9jb3VudGRvd25VcGRhdGVUaW1lcj1udWxsKSxzdXBlci5kZXN0cm95KCl9YmFyQ29sb3Jlcigpe2lmKHRoaXMuX2JhckNvbG9yZXJDYWNoZSlyZXR1cm4gdGhpcy5fYmFyQ29sb3JlckNhY2hlO2xldCBlPW51bGw7Y29uc3QgdD10aGlzLl9tb2RlbC5wYW5lcygpO2ZvcihsZXQgcz10Lmxlbmd0aC0xO3M+PTA7cy0tKXtjb25zdCBpPXRbc10uZGF0YVNvdXJjZXMoKS5maWx0ZXIoJGUuaXNTdHVkeSkuZmlsdGVyKChlPT5lLmhhc0JhckNvbG9yZXIoKSYmIWUuaXNTb3VyY2VIaWRkZW4oKSkpLnNvcnQoKChlLHQpPT5lLnpvcmRlcigpLXQuem9yZGVyKCkpKTtmb3IobGV0IHQ9MDt0PGkubGVuZ3RoO3QrKyl7Y29uc3Qgcz0oMCxuLmVuc3VyZU5vdE51bGwpKGlbdF0uYmFyQ29sb3JlcigpKTtudWxsPT09ZT9lPXM6ZS5wdXNoQmFja0JhckNvbG9yZXIocyl9fXJldHVybiBudWxsPT09ZT9lPW5ldyBqZS5TZXJpZXNCYXJDb2xvcmVyKHRoaXMpOmUucHVzaEJhY2tCYXJDb2xvcmVyKG5ldyBqZS5TZXJpZXNCYXJDb2xvcmVyKHRoaXMpKSx0aGlzLl9iYXJDb2xvcmVyQ2FjaGU9ZSxlfWNyZWF0ZVBhbmVWaWV3KCl7dGhpcy5fcGFuZVZpZXc9bnVsbCx0aGlzLl9wcm9qZWN0aW9uQmFyc1BhbmVWaWV3PW51bGwsdGhpcy5fd2F0ZXJsaW5lVmlldz1udWxsLHRoaXMuX3ByaWNlTGluZVZpZXc9dGhpcy5oYXNDbG9zZVByaWNlKCk/bmV3IGJlLlNlcmllc1ByaWNlTGluZVBhbmVWaWV3KHRoaXMpOm51bGw7Y29uc3QgZT10aGlzLl9wcm9wZXJ0aWVzLmNoaWxkcygpLnN0eWxlLnZhbHVlKCk7c3dpdGNoKGUpe2Nhc2UgMDp0aGlzLl9wYW5lVmlldz1uZXcgRGUuU2VyaWVzQmFyc1BhbmVWaWV3KHRoaXMsdGhpcy5fbW9kZWwpO2JyZWFrO2Nhc2UgMTc6Y2FzZSAxOTpjYXNlIDE6dGhpcy5fcGFuZVZpZXc9bmV3IHhlLlNlcmllc0NhbmRsZXNQYW5lVmlldyh0aGlzLHRoaXMuX21vZGVsLDE9PT1lfHwxOT09PWU/MTouMik7YnJlYWs7Y2FzZSAyOmNhc2UgMTg6Y2FzZSAxNDpjYXNlIDE1OnRoaXMuX3BhbmVWaWV3PW5ldyBSZS5TZXJpZXNMaW5lUGFuZVZpZXcodGhpcyx0aGlzLl9tb2RlbCk7YnJlYWs7Y2FzZSAzOnRoaXMuX3BhbmVWaWV3PW5ldyBrZS5TZXJpZXNBcmVhUGFuZVZpZXcodGhpcyx0aGlzLl9tb2RlbCk7YnJlYWs7Y2FzZSAxNjp0aGlzLl9wYW5lVmlldz1uZXcgVmUuU2VyaWVzSExDQXJlYVBhbmVWaWV3KHRoaXMsdGhpcy5fbW9kZWwpO2JyZWFrO2Nhc2UgODp0aGlzLl9wYW5lVmlldz1uZXcgQWUuU2VyaWVzSGVpa2VuQXNoaVBhbmVWaWV3KHRoaXMsdGhpcy5fbW9kZWwpO2JyZWFrO2Nhc2UgOTp0aGlzLl9wYW5lVmlldz1uZXcgRmUuU2VyaWVzSG9sbG93Q2FuZGxlc1BhbmVWaWV3KHRoaXMsdGhpcy5fbW9kZWwpO2JyZWFrO2Nhc2UgMTM6dGhpcy5fcGFuZVZpZXc9bmV3IE1lLlNlcmllc0NvbHVtbnNQYW5lVmlldyh0aGlzLHRoaXMuX21vZGVsKTticmVhaztjYXNlIDEwOnt0aGlzLl9wYW5lVmlldz1uZXcgQmUuU2VyaWVzQmFzZWxpbmVQYW5lVmlldyh0aGlzLHRoaXMuX21vZGVsKQo7Y29uc3QgZT10aGlzLl9wcm9wZXJ0aWVzLmNoaWxkcygpLmJhc2VsaW5lU3R5bGUuY2hpbGRzKCk7dGhpcy5fd2F0ZXJsaW5lVmlldz1uZXcgU2UuU2VyaWVzV2F0ZXJsaW5lUGFuZVZpZXcoe3BhbmVIZWlnaHQ6KCk9PnRoaXMucHJpY2VTY2FsZSgpLmhlaWdodCgpLGNvbG9yOigpPT5lLmJhc2VsaW5lQ29sb3IudmFsdWUoKSxiYXNlTGV2ZWxQZXJjZW50YWdlOigpPT5lLmJhc2VMZXZlbFBlcmNlbnRhZ2UudmFsdWUoKX0pO2JyZWFrfWNhc2UgMTI6dGhpcy5fcGFuZVZpZXc9bmV3IHdlLlNlcmllc0hpTG9QYW5lVmlldyh0aGlzLHRoaXMuX21vZGVsKTticmVhaztjYXNlIDIxOnRoaXMuX3BhbmVWaWV3PW5ldyB0dC5TZXJpZXNITENCYXJzUGFuZVZpZXcodGhpcyx0aGlzLl9tb2RlbCl9c3dpdGNoKGUpe2Nhc2UgNDp0aGlzLl9wYW5lVmlldz1uZXcgVGUuU2VyaWVzUmVua29QYW5lVmlldyh0aGlzLHRoaXMuX21vZGVsKSx0aGlzLl9wcm9qZWN0aW9uQmFyc1BhbmVWaWV3PW5ldyBUZS5TZXJpZXNQcm9qZWN0aW9uUmVua29QYW5lVmlldyh0aGlzLHRoaXMuX21vZGVsKTticmVhaztjYXNlIDc6dGhpcy5fcGFuZVZpZXc9bmV3IENlLlNlcmllc1ByaWNlQnJlYWtQYW5lVmlldyh0aGlzLHRoaXMuX21vZGVsKSx0aGlzLl9wcm9qZWN0aW9uQmFyc1BhbmVWaWV3PW5ldyBDZS5TZXJpZXNQcm9qZWN0aW9uUHJpY2VCcmVha1BhbmVWaWV3KHRoaXMsdGhpcy5fbW9kZWwpO2JyZWFrO2Nhc2UgNTp0aGlzLl9wYW5lVmlldz1uZXcgRWUuU2VyaWVzS2FnaVBhbmVWaWV3KHRoaXMsdGhpcy5fbW9kZWwpLHRoaXMuX3Byb2plY3Rpb25CYXJzUGFuZVZpZXc9bmV3IEVlLlNlcmllc1Byb2plY3Rpb25LYWdpUGFuZVZpZXcodGhpcyx0aGlzLl9tb2RlbCk7YnJlYWs7Y2FzZSA2OnRoaXMuX3BhbmVWaWV3PW5ldyBJZS5TZXJpZXNQbkZQYW5lVmlldyh0aGlzLHRoaXMuX21vZGVsKSx0aGlzLl9wcm9qZWN0aW9uQmFyc1BhbmVWaWV3PW5ldyBJZS5TZXJpZXNQcm9qZWN0aW9uUG5GUGFuZVZpZXcodGhpcyx0aGlzLl9tb2RlbCl9aWYoMTE9PT1lJiYodGhpcy5fcHJvcGVydGllcy5jaGlsZHMoKS5yYW5nZVN0eWxlLmNoaWxkcygpLmJhclN0eWxlLnZhbHVlKCk9PT1LZS5SYW5nZUJhclN0eWxlLkJhcnM/KHRoaXMuX3BhbmVWaWV3PW5ldyBEZS5TZXJpZXNCYXJzUGFuZVZpZXcodGhpcyx0aGlzLl9tb2RlbCksdGhpcy5fcHJvamVjdGlvbkJhcnNQYW5lVmlldz1uZXcgaWUuU2VyaWVzUHJvamVjdGlvblJhbmdlQmFyc1BhbmVWaWV3KHRoaXMsdGhpcy5fbW9kZWwpKToodGhpcy5fcGFuZVZpZXc9bmV3IHhlLlNlcmllc0NhbmRsZXNQYW5lVmlldyh0aGlzLHRoaXMuX21vZGVsKSx0aGlzLl9wcm9qZWN0aW9uQmFyc1BhbmVWaWV3PW5ldyBpZS5TZXJpZXNQcm9qZWN0aW9uUmFuZ2VDYW5kbGVzUGFuZVZpZXcodGhpcyx0aGlzLl9tb2RlbCkpKSwyMD09PWUmJih0aGlzLl9wYW5lVmlldz1ZLkVtcHR5UGFuZVZpZXcuaW5zdGFuY2UoKSksbnVsbD09PXRoaXMuX3BhbmVWaWV3KXRocm93IEVycm9yKCJVbmtub3duIGNoYXJ0IHN0eWxlIGFzc2lnbmVkOiAiK2UpfXByb3BlcnRpZXMoKXtyZXR1cm4gdGhpcy5fcHJvcGVydGllc316b3JkZXIoKXtyZXR1cm4gMH1xdW90ZXNQcm92aWRlcigpe3JldHVybiB0aGlzLl9xdW90ZXNQcm92aWRlcn1jdXJyZW50U2Vzc2lvbigpe3JldHVybiB0aGlzLl9jdXJyZW50U2Vzc2lvbn1zeW5jTW9kZWwoKXtpZighdGhpcy5fc3luY01vZGVsKXtjb25zdCBlPXRoaXMuc3ltYm9sSW5mbygpLHQ9dGhpcy5pbnRlcnZhbCgpO2lmKCFlfHwhdClyZXR1cm4gbnVsbDt0aGlzLl9zeW5jTW9kZWw9bmV3IFIuU3luY01vZGVsKGUsdCl9cmV0dXJuIHRoaXMuX3N5bmNNb2RlbH1sYWJlbFBhbmVWaWV3cygpe3JldHVybiB0aGlzLl9sYWJlbFBhbmVWaWV3c310b3BQYW5lVmlld3MoKXtjb25zdCBlPVtdO2lmKG51bGwhPT10aGlzLl9nb3RvRGF0ZVZpZXcmJmUucHVzaCh0aGlzLl9nb3RvRGF0ZVZpZXcpLHRoaXMuX2xhc3RQcmljZUFuaW1hdGlvbkFjdGl2ZSl7Y29uc3QgdD10aGlzLl9saW5lU3R5bGVMYXN0UHJpY2VDaXJjbGVQYW5lVmlldzt0LmFuaW1hdGlvbkFjdGl2ZSgpJiZzZXRUaW1lb3V0KCgoKT0+dGhpcy5fbW9kZWwuaW52YWxpZGF0ZShfZS5JbnZhbGlkYXRpb25NYXNrLmN1cnNvcigpKSksMCksdC5pbnZhbGlkYXRlU3RhZ2UoKSxlLnB1c2godCl9cmV0dXJuIDAhPT1lLmxlbmd0aD9lOm51bGx9cGFuZVZpZXdzKGUpe2lmKCF0aGlzLnByb3BlcnRpZXMoKS5jaGlsZHMoKS52aXNpYmxlLnZhbHVlKCl8fCF0aGlzLl9tb2RlbC5pc1NuYXBzaG90KCkmJiF0aGlzLl93YXNDb21wbGV0ZWRCZWZvcmUoKSlyZXR1cm4gbnVsbDtjb25zdCB0PWU9PT10aGlzLl9tb2RlbC5wYW5lRm9yU291cmNlKHRoaXMpLHM9dD9bKDAsbi5lbnN1cmVOb3ROdWxsKSh0aGlzLl9iYXNlSG9yaXpvbnRhbExpbmVWaWV3KSwoMCxuLmVuc3VyZU5vdE51bGwpKHRoaXMuX3BhbmVWaWV3KV06W107aWYocy5wdXNoKC4uLnRoaXMuX3N0dWR5QmluZGluZ3M/LnBhbmVWaWV3cyhlKT8/W10pLHQpe2lmKDE3IT09dGhpcy5zdHlsZSgpJiZ0aGlzLl9kZWxheVN0YXR1c1BhbmVWaWV3KXtjb25zdCBlPXRoaXMuX2RlbGF5U3RhdHVzUGFuZVZpZXcuZ2V0KCk7ZSYmKGUuc2V0QmFyc1Byb3ZpZGVyKHRoaXMuX3Byb2plY3Rpb25CYXJzUGFuZVZpZXcpLHMucHVzaChlKSl9dGhpcy5fZW5kT2ZEYXRhUGFuZVZpZXcmJnMucHVzaCh0aGlzLl9lbmRPZkRhdGFQYW5lVmlldyksdGhpcy5fZnV0dXJlQmFyc1BhbmVWaWV3JiZzLnB1c2godGhpcy5fZnV0dXJlQmFyc1BhbmVWaWV3KSx0aGlzLl9wcm9qZWN0aW9uQmFyc1BhbmVWaWV3JiZzLnB1c2godGhpcy5fcHJvamVjdGlvbkJhcnNQYW5lVmlldyksbnVsbCE9PXRoaXMuX3dhdGVybGluZVZpZXcmJnMucHVzaCh0aGlzLl93YXRlcmxpbmVWaWV3KSxzLnB1c2goKDAsbi5lbnN1cmVOb3ROdWxsKSh0aGlzLl9wcmV2Q2xvc2VQcmljZUxpbmVWaWV3KSksbnVsbCE9PXRoaXMuX3ByaWNlTGluZVZpZXcmJnMucHVzaCh0aGlzLl9wcmljZUxpbmVWaWV3KSwKd2luZG93LlRyYWRpbmdWaWV3LnByaW50aW5nJiZ0aGlzLl9sYXN0UHJpY2VBbmltYXRpb25BY3RpdmUmJih0aGlzLl9saW5lU3R5bGVMYXN0UHJpY2VDaXJjbGVQYW5lVmlldy5zdG9wQW5pbWF0aW9uKCkscy5wdXNoKHRoaXMuX2xpbmVTdHlsZUxhc3RQcmljZUNpcmNsZVBhbmVWaWV3KSkscy5wdXNoKC4uLnRoaXMuX2hpZ2hMb3dBdmdQYW5lVmlld3MpLHMucHVzaCguLi50aGlzLl9hdmVyYWdlUGFuZVZpZXdzKX1yZXR1cm4gc313aWRnZXRTaWRlQXJlYVZpZXdzKGUpe3JldHVybiB0aGlzLl9zdHVkeUJpbmRpbmdzPy53aWRnZXRTaWRlQXJlYVZpZXdzKGUpPz9udWxsfXByaWNlQXhpc1ZpZXdzKGUsdCl7cmV0dXJuIGUuZmluZFRhcmdldFByaWNlQXhpc1ZpZXdzKHRoaXMsdCx0aGlzLl9wcmljZUF4aXNWaWV3cyx0aGlzLl9wcmljZUxpbmVBeGlzVmlld3MpfWNsZWFySGlnaExvd1ByaWNlQ2FjaGUoKXt0aGlzLl9oaWdoTG93UHJpY2VDYWNoZS5jbGVhcigpfWNsZWFyQXZlcmFnZVByaWNlQ2FjaGUoKXt0aGlzLl9hdmVyYWdlUHJpY2VDYWNoZS5jbGVhcigpfXByaWNlU2NhbGUoKXtyZXR1cm4oMCxuLmVuc3VyZU5vdE51bGwpKHRoaXMuX3ByaWNlU2NhbGUpfXNldFByaWNlU2NhbGUoZSl7dGhpcy5fcHJpY2VTY2FsZSE9PWUmJih0aGlzLl9wcmljZVNjYWxlQWJvdXRUb0JlQ2hhbmdlZC5maXJlKCksdGhpcy5fcHJpY2VTY2FsZT1lLHRoaXMuX3Byb3BlcnRpZXMucmVtb3ZlUHJvcGVydHkoInByaWNlQXhpc1Byb3BlcnRpZXMiKSx0aGlzLl9wcm9wZXJ0aWVzLmFkZENoaWxkKCJwcmljZUF4aXNQcm9wZXJ0aWVzIixlLnByb3BlcnRpZXMoKSksdGhpcy5fcHJvcGVydGllcy5jaGlsZHMoKS5wcmljZUF4aXNQcm9wZXJ0aWVzLmZpcmVDaGFuZ2VkKCksKDAsXy5lbWl0KSgic2VyaWVzX2V2ZW50IiwicHJpY2Vfc2NhbGVfY2hhbmdlZCIpLHRoaXMuX3ByaWNlU2NhbGVDaGFuZ2VkLmZpcmUoZSkpfXByaWNlU2NhbGVDaGFuZ2VkKCl7cmV0dXJuIHRoaXMuX3ByaWNlU2NhbGVDaGFuZ2VkfXByaWNlU2NhbGVBYm91dFRvQmVDaGFuZ2VkKCl7cmV0dXJuIHRoaXMuX3ByaWNlU2NhbGVBYm91dFRvQmVDaGFuZ2VkfWFwcGx5UHJlZmVyZW5jZXMoZSl7Y29uc3QgdD0oMCxhLmNsb25lKShlKTt0aGlzLnByaWNlU2NhbGUoKS5zZXRNb2RlKHthdXRvU2NhbGU6dC5wcmljZUF4aXNQcm9wZXJ0aWVzLmF1dG9TY2FsZSxwZXJjZW50YWdlOnQucHJpY2VBeGlzUHJvcGVydGllcy5wZXJjZW50YWdlLGxvZzp0LnByaWNlQXhpc1Byb3BlcnRpZXMubG9nLGxvY2tTY2FsZTp0LnByaWNlQXhpc1Byb3BlcnRpZXMubG9ja1NjYWxlfSksdGhpcy5zZXRDaGFydFN0eWxlV2l0aEludGVydmFsSWZOZWVkZWQodC5zdHlsZSk7Y29uc3R7c3R5bGU6cyxpbnRlcnZhbDppLC4uLm59PXQ7dGhpcy5fcHJvcGVydGllcy5tZXJnZVByZWZlcmVuY2VzKG4pLHRoaXMuX3Byb3BlcnRpZXMuc2F2ZURlZmF1bHRzKCksdGhpcy5jcmVhdGVQYW5lVmlldygpLHRoaXMuaW52YWxpZGF0ZUJhclN0eWxlc0NhY2hlKCl9ZGlzY29ubmVjdCgpe3RoaXMuX3N0dWR5QmluZGluZ3M/LnN0b3AoKSx0aGlzLl9zZXJpZXNTb3VyY2Uuc3RvcCgpLHRoaXMuX3ByZWRpY3RCYXJzPTAsdGhpcy5fdXBkYXRlU3RhdHVzKHsuLi50aGlzLl9zdGF0dXMudmFsdWUoKSxzZXJpZXNTdGF0dXM6MH0pfWlzU3RhcnRlZCgpe3JldHVybiB0aGlzLl9zZXJpZXNTb3VyY2UuaXNTdGFydGVkKCl9aXNDb21wbGV0ZWQoKXtyZXR1cm4gdGhpcy5fc2VyaWVzQ29tcGxldGVkfXJlc3RhcnQoZSl7aWYoNT09PXRoaXMuX3N0YXR1cy52YWx1ZSgpLnNlcmllc1N0YXR1cylyZXR1cm47bGV0IHQ9bnVsbDt0aGlzLl9wZW5kaW5nVGltZVJhbmdlJiYodD10aGlzLl9wZW5kaW5nVGltZVJhbmdlLHRoaXMuX3Nlcmllc1NvdXJjZS5pc1N0YXJ0ZWQoKXx8KHRoaXMuX3Nlcmllc1NvdXJjZS5zZXRUaW1lZnJhbWUodCksdGhpcy5fcGVuZGluZ1RpbWVSYW5nZT1udWxsKSk7Y29uc3Qgcz10aGlzLl9wcm9wZXJ0aWVzLmNoaWxkcygpLmludGVydmFsLnZhbHVlKCksaT0oMCxwLmdldFNlcnZlckludGVydmFsKShzKSxuPXRoaXMuX2dldFJlc29sdmluZ1N5bWJvbE9iamVjdCgpO3RoaXMuX3Nlcmllc1NvdXJjZS5jYW5Nb2RpZnlTZXJpZXMobixpKT8odGhpcy5fc2VyaWVzTG9hZGVkPSExLHRoaXMuX3Nlcmllc0NvbXBsZXRlZD0hMSx0aGlzLl9sYXN0Q29tcGxldGVGbGFncz1udWxsLHRoaXMuX29uUmVzdGFydGVkLmZpcmUoKSx0aGlzLl9zZXRTdGF0dXMoMSksdGhpcy5fdXBkYXRlU3ltYm9sSW5mbyhudWxsKSxjLkludGVydmFsLmlzRXF1YWwocyx0aGlzLl9wcmV2UmVxdWVzdGVkSW50ZXJ2YWwpfHx0aGlzLl9ub3RpZnlJbnRlcnZhbENoYW5nZWQocyksZXx8dGhpcy5fcmVtb3ZlUmVwbGF5U3Vic2NyaWJlcigpLHRoaXMuX29uQmVmb3JlTW9kaWZ5U2VyaWVzKHRoaXMuZ2V0U3ltYm9sU3RyaW5nKCkscyksdGhpcy5fb25UaW1lRnJhbWVBcHBsaWVkLmZpcmUodCksdGhpcy5fZGF0YT1udWxsLHRoaXMubW9kZWwoKS5yZWNhbGNWaXNpYmxlUmFuZ2VTdHVkaWVzKHYuUmVjYWxjVmlzaWJsZVJhbmdlU3R1ZGllc1JlYXNvbi5TZXJpZXNSZXN0YXJ0KSx0aGlzLl9zZXJpZXNTb3VyY2UubW9kaWZ5U2VyaWVzKG4saSx0KSx0aGlzLl9zZXJpZXNTb3VyY2UuaXNTdGFydGVkKCl8fHRoaXMuX3Nlcmllc1NvdXJjZS5zdGFydCgpLHRoaXMuX3ByZXZSZXF1ZXN0ZWRJbnRlcnZhbD10aGlzLmludGVydmFsKCksdGhpcy5fcGVuZGluZ1RpbWVSYW5nZT1udWxsLHRoaXMuX3N0dWR5QmluZGluZ3M/LnJlc3RhcnQoKSx0aGlzLnVwZGF0ZUFsbFZpZXdzKCgwLGZlLnNvdXJjZUNoYW5nZUV2ZW50KSh0aGlzLmlkKCkpKSx0aGlzLl9tb2RlbC5saWdodFVwZGF0ZSgpKTp0aGlzLl9zZXJpZXNTb3VyY2UuaXNTdGFydGVkKCl8fCh0aGlzLl91cGRhdGVTeW1ib2xJbmZvKG51bGwpLHRoaXMuX3Nlcmllc1NvdXJjZS5zdGFydCgpLHRoaXMuX3N0dWR5QmluZGluZ3M/LnJlc3RhcnQoKSl9aXNTeW1ib2xJbnZhbGlkKCl7cmV0dXJuIDQ9PT10aGlzLl9zdGF0dXMudmFsdWUoKS5zZXJpZXNTdGF0dXN9CmdldFN5bWJvbFN0cmluZygpe3JldHVybigwLGhlLmVuY29kZUV4dGVuZGVkU3ltYm9sT3JHZXRTaW1wbGVTeW1ib2xTdHJpbmcpKHRoaXMuX2dldFN5bWJvbE9iamVjdCgpKX1nZXRBbGVydFN5bWJvbFN0cmluZygpe3JldHVybigwLGhlLmVuY29kZUV4dGVuZGVkU3ltYm9sT3JHZXRTaW1wbGVTeW1ib2xTdHJpbmcpKHRoaXMuX2dldFN5bWJvbE9iamVjdCh0aGlzLmFjdHVhbFN5bWJvbCgpLCEwLCEwKSl9Z2V0QWxlcnRQcm9TeW1ib2xTdHJpbmcoKXtyZXR1cm4oMCxoZS5lbmNvZGVFeHRlbmRlZFN5bWJvbE9yR2V0U2ltcGxlU3ltYm9sU3RyaW5nKSh0aGlzLl9nZXRTeW1ib2xPYmplY3QodGhpcy5wcm9TeW1ib2woKSwhMCwhMCkpfWdldFF1b3Rlc1N5bWJvbFN0cmluZygpe3JldHVybigwLGhlLmVuY29kZUV4dGVuZGVkU3ltYm9sT3JHZXRTaW1wbGVTeW1ib2xTdHJpbmcpKHRoaXMuX2dldEV4dGVuZGVkU3ltYm9sT2JqZWN0KHtza2lwTWV0cmljOiEwfSkpfWludmFsaWRhdGVCYXJTdHlsZXNDYWNoZShlKXtodC5sb2dEZWJ1ZygiSW52YWxpZGF0ZSBzdHlsZSBjYWNoZSBzdGFydGluZyBmcm9tICIrZSksdGhpcy5fY2xlYXJTdHlsZVBsb3QodGhpcy5iYXJzKCksZSksdGhpcy5fY2xlYXJTdHlsZVBsb3QodGhpcy5uc0JhcnMoKSl9aXNMb2FkaW5nKCl7cmV0dXJuIEkuc2VyaWVzTG9hZGluZ1N0YXR1c2VzLmhhcyh0aGlzLnN0YXR1c1dWKCkudmFsdWUoKSl9aXNGYWlsZWQoKXtjb25zdCBlPXRoaXMuc3RhdHVzKCk7cmV0dXJuIDEyPT09ZXx8ND09PWV8fDEwPT09ZXx8MTQ9PT1lfHwxMz09PWV9aXNTdGF0dXNFcnJvcigpe3JldHVybiAxMj09PXRoaXMuc3RhdHVzKCl9dW5zdXBwb3J0ZWRSZXNvbHV0aW9uU3RhdGUoKXtyZXR1cm4gdGhpcy5fdW5zdXBwb3J0ZWRSZXNvbHV0aW9uU3RhdGUucmVhZG9ubHkoKX1hY3R1YWxTeW1ib2woKXtyZXR1cm4oMCxQLmFjdHVhbFN5bWJvbCkodGhpcy5zeW1ib2xJbmZvKCksdGhpcy5zeW1ib2woKSl9cHJvU3ltYm9sKCl7cmV0dXJuKDAsUC5wcm9TeW1ib2wpKHRoaXMuc3ltYm9sSW5mbygpLHRoaXMuc3ltYm9sKCkpfW9uU3R5bGVDaGFuZ2VkKCl7cmV0dXJuIHRoaXMuX29uU3R5bGVDaGFuZ2VkfXN0eWxlKCl7cmV0dXJuIHRoaXMucHJvcGVydGllcygpLmNoaWxkcygpLnN0eWxlLnZhbHVlKCl9c2V0U3R5bGUoZSl7dGhpcy5zZXRTeW1ib2xQYXJhbXMoe3N0eWxlOmV9KX1pc1JhbmdlQmFzZWRTdHlsZSgpe3JldHVybigwLFAuaXNSYW5nZUJhc2VkU3R5bGUpKHRoaXMuc3R5bGUoKSl9c3ltYm9sU2FtZUFzQ3VycmVudChlKXtyZXR1cm4gdGhpcy5zeW1ib2woKT09PWV8fCgwLGRlLnN5bWJvbFNhbWVBc0N1cnJlbnQpKGUsdGhpcy5zeW1ib2xJbmZvKCkpfXN5bWJvbFNhbWVBc1Jlc29sdmVkKGUpe3JldHVybiB0aGlzLl9tb2RlbC5pc1NuYXBzaG90KCk/dGhpcy5zeW1ib2xTYW1lQXNDdXJyZW50KGUpOnRoaXMuX3Nlcmllc1NvdXJjZS5zeW1ib2xTYW1lQXNSZXNvbHZlZChlKX1zdGF0dXMoKXtyZXR1cm4gdGhpcy5fc2VyaWVzU3RhdHVzLnZhbHVlKCl9c3RhdHVzV1YoKXtyZXR1cm4gdGhpcy5fc2VyaWVzU3RhdHVzfWNvbXBvc2l0ZVN0YXR1c1ZXKCl7cmV0dXJuIHRoaXMuX3N0YXR1c31zeW1ib2woKXtyZXR1cm4gdGhpcy5wcm9wZXJ0aWVzKCkuY2hpbGRzKCkuc3ltYm9sLnZhbHVlKCl9c3ltYm9sT3JBbGlhcygpe2NvbnN0IGU9dGhpcy5zeW1ib2woKSx0PXRoaXMuX21vZGVsLnN5bWJvbEFsaWFzU2VydmljZSgpPy5nZXRBbGlhc0J5UHJvTmFtZShlKTtyZXR1cm4gdD8uYWxpYXNOYW1lPz9lfXN5bWJvbENoYW5nZWQoKXtyZXR1cm4gdGhpcy5wcm9wZXJ0aWVzKCkuY2hpbGRzKCkuc3ltYm9sfXNlcmllc1NvdXJjZSgpe3JldHVybiB0aGlzLl9zZXJpZXNTb3VyY2V9c3ltYm9sSW5mbygpe3JldHVybiB0aGlzLl9zeW1ib2xJbmZvLnZhbHVlKCl9YWxpYXNTeW1ib2xJbmZvKCl7cmV0dXJuKHRoaXMuX2FsaWFzU3ltYm9sSW5mbz8/dGhpcy5fc3ltYm9sSW5mbykudmFsdWUoKX1zeW1ib2xJbmZvV1YoKXtyZXR1cm4gdGhpcy5fc3ltYm9sSW5mby5yZWFkb25seSgpfWxhc3RTcGxpdHMoKXtyZXR1cm4gdGhpcy5fbGFzdFNwbGl0c31vdmVycmlkZUxhc3RTcGxpdHMoZSl7dGhpcy5fb3ZlcnJpZGRlbkxhc3RTcGxpdHMuc2V0VmFsdWUoZSl9c3ltYm9sUmVzb2x2ZWQoKXtyZXR1cm4gdGhpcy5kYXRhRXZlbnRzKCkuc3ltYm9sUmVzb2x2ZWQoKX1zeW1ib2xSZXNvbHZpbmdBY3RpdmUoKXtyZXR1cm4gdGhpcy5fc3ltYm9sUmVzb2x2aW5nQWN0aXZlfXN5bWJvbEhpYmVybmF0ZWQoKXtyZXR1cm4gdGhpcy5fc2VyaWVzQWx3YXlzRmFsc2VIaWJlcm5hdGVkVld9Z2V0U3ltYm9sTmFtZSgpe3JldHVybiB0aGlzLnN5bWJvbEluZm8oKT8ubmFtZT8/IiJ9Zmlyc3RWYWx1ZSgpe2NvbnN0IGU9dGhpcy5maXJzdEJhcigpO3JldHVybiBudWxsPT09ZT9udWxsOnRoaXMuX2JhckZ1bmN0aW9uKGUsMCl9Zmlyc3RCYXIoKXtjb25zdCBlPXRoaXMubW9kZWwoKS50aW1lU2NhbGUoKS52aXNpYmxlQmFyc1N0cmljdFJhbmdlKCk7aWYobnVsbD09PWUpcmV0dXJuIG51bGw7Y29uc3QgdD1lLmZpcnN0QmFyKCkscz10aGlzLmRhdGEoKS5zZWFyY2godCxoLlBsb3RSb3dTZWFyY2hNb2RlLk5lYXJlc3RSaWdodCk7cmV0dXJuIG51bGwhPT1zP3MudmFsdWU6bnVsbH1mb3JtYXR0ZXIoZT0hMCl7cmV0dXJuIGU/dGhpcy5fZm9ybWF0dGVyOnRoaXMuX2lnbm9yZU1pbk1vdmVGb3JtYXR0ZXJ9ZGVmYXVsdEZvcm1hdHRlcigpe3JldHVybiB0aGlzLl9kZWZhdWx0Rm9ybWF0dGVyfXByaWNlU3RlcChlPSEwKXtyZXR1cm4gZT90aGlzLl9wcmljZVN0ZXA6dGhpcy5faWdub3JlTWluTW92ZVByaWNlU3RlcH1iYXJzKCl7cmV0dXJuIHRoaXMuZGF0YSgpLmJhcnMoKX1uc0JhcnMoKXtyZXR1cm4gdGhpcy5kYXRhKCkubnNCYXJzKCl9aW50ZXJ2YWwoKXtyZXR1cm4gdGhpcy5wcm9wZXJ0aWVzKCkuY2hpbGRzKCkuaW50ZXJ2YWwudmFsdWUoKX1zZXRJbnRlcnZhbChlKXt0aGlzLnNldFN5bWJvbFBhcmFtcyh7aW50ZXJ2YWw6ZX0pfWludGVydmFsT2JqKCl7CnJldHVybiB0aGlzLl9pbnRlcnZhbE9iai5yZWFkb25seSgpfXByZXZDbG9zZSgpe2NvbnN0IGU9dGhpcy5wcmljZVNjYWxlKCk7aWYoZS5pc0VtcHR5KCl8fHRoaXMuZGF0YSgpLmlzRW1wdHkoKSlyZXR1cm4gbnVsbDtjb25zdCB0PXRoaXMucXVvdGVzKCkscz10aGlzLmZpcnN0VmFsdWUoKTtpZihudWxsPT09dHx8bnVsbD09PXMpcmV0dXJuIG51bGw7Y29uc3QgaT10LnByZXZfY2xvc2VfcHJpY2U7cmV0dXJuIHZvaWQgMD09PWk/bnVsbDp7Y29vcmRpbmF0ZTplLnByaWNlVG9Db29yZGluYXRlKGkscyksZm9ybWF0dGVkUHJpY2VQZXJjZW50YWdlOmUuZm9ybWF0UHJpY2VQZXJjZW50YWdlKGkscyx7c2lnblBvc2l0aXZlOiEwfSksZm9ybWF0dGVkUHJpY2VBYnNvbHV0ZTplLmZvcm1hdFByaWNlQWJzb2x1dGUoaSksZm9ybWF0dGVkUHJpY2VJbmRleGVkVG8xMDA6ZS5mb3JtYXRQcmljZUluZGV4ZWRUbzEwMChpLHMpfX1wcmljZUxpbmVDb2xvcihlKXtyZXR1cm4gdGhpcy5wcm9wZXJ0aWVzKCkuY2hpbGRzKCkucHJpY2VMaW5lQ29sb3IudmFsdWUoKXx8ZX1oYXNDbG9zZVByaWNlKCl7cmV0dXJuIGR0fHwxMiE9PXRoaXMucHJvcGVydGllcygpLmNoaWxkcygpLnN0eWxlLnZhbHVlKCl9bGFzdFZhbHVlRGF0YShlLHQscyl7Y29uc3QgaT17bm9EYXRhOiEwfSxuPXRoaXMucHJpY2VTY2FsZSgpO2lmKHRoaXMubW9kZWwoKS50aW1lU2NhbGUoKS5pc0VtcHR5KCl8fG4uaXNFbXB0eSgpfHx0aGlzLmRhdGEoKS5pc0VtcHR5KCkpcmV0dXJuIGk7Y29uc3Qgcj10aGlzLm1vZGVsKCkudGltZVNjYWxlKCkudmlzaWJsZUJhcnNTdHJpY3RSYW5nZSgpLG89dGhpcy5maXJzdFZhbHVlKCk7aWYobnVsbD09PXJ8fG51bGw9PT1vKXJldHVybiBpO2xldCBhLGw7aWYodCl7Y29uc3QgZT10aGlzLmRhdGEoKS5iYXJzKCkubGFzdCgpO2lmKG51bGw9PT1lKXJldHVybiBpO2E9ZS52YWx1ZSxsPWUuaW5kZXh9ZWxzZXtjb25zdCBlPXRoaXMuZGF0YSgpLmJhcnMoKS5zZWFyY2goci5sYXN0QmFyKCksaC5QbG90Um93U2VhcmNoTW9kZS5OZWFyZXN0TGVmdCk7aWYobnVsbD09PWUpcmV0dXJuIGk7YT1lLnZhbHVlLGw9ZS5pbmRleH1jb25zdCB1PSh2b2lkIDAhPT1lP2FbZV06dGhpcy5fYmFyRnVuY3Rpb24oYSwyKSk/P05hTixjPXRoaXMuYmFyQ29sb3JlcigpLmJhclN0eWxlKGwsITEpLGQ9bi5wcmljZVRvQ29vcmRpbmF0ZSh1LG8pLHA9ey4uLm4uZ2V0Rm9ybWF0dGVkVmFsdWVzKHUsbywhMCksbm9EYXRhOiExLGNvbG9yOmMuYmFyQ29sb3IsY29vcmRpbmF0ZTpkLGluZGV4Omx9O3JldHVybiBzJiYocC5wcmljZT11KSxwfWlzRFdNKCl7cmV0dXJuIHRoaXMuaW50ZXJ2YWxPYmooKS52YWx1ZSgpLmlzRFdNKCl9aXNQdWxzZSgpe2NvbnN0IGU9dGhpcy5zeW1ib2xJbmZvKCk7cmV0dXJuIG51bGwhPT1lJiYoZS5yZXNvbHV0aW9ucz8/W10pLmxlbmd0aD4wfWRhdGEoKXtyZXR1cm4gdGhpcy5fZGF0YT8/dGhpcy5fc2VyaWVzU291cmNlLmRhdGEoKX1jbGVhckRhdGEoKXsoMCxuLmFzc2VydCkobnVsbD09PXRoaXMuX2RhdGEsIkNhbm5vdCBjbGVhciBsb2FkZWQgZGF0YSIpLHRoaXMuX3N0dWR5QmluZGluZ3M/LmNsZWFyRGF0YSgpLHRoaXMuX3Nlcmllc1NvdXJjZS5jbGVhckRhdGEoKX1uZWFyZXN0RGF0YShlLHQpe3JldHVybiB0aGlzLmRhdGEoKS5zZWFyY2goZSx0KT8/dm9pZCAwfW5lYXJlc3RJbmRleChlLHQpe3JldHVybiB0aGlzLm5lYXJlc3REYXRhKGUsdCk/LmluZGV4fW5lYXJlc3RWYWx1ZShlLHQscyl7Y29uc3QgaT10aGlzLm5lYXJlc3REYXRhKGUscyk7cmV0dXJuIGk/LnZhbHVlW3RdPz92b2lkIDB9b25TeW1ib2xJbnRlcnZhbENoYW5nZWQoKXtyZXR1cm4gdGhpcy5fc3ltYm9sSW50ZXJ2YWxDaGFuZ2VkfW9uSW50ZXJ2YWxDaGFuZ2VkKCl7cmV0dXJuIHRoaXMuX2ludGVydmFsQ2hhbmdlZH1vblN0YXR1c0NoYW5nZWQoKXtyZXR1cm4gdGhpcy5fb25TdGF0dXNDaGFuZ2VkfW9uUmVzdGFydGVkKCl7cmV0dXJuIHRoaXMuX29uUmVzdGFydGVkfWZpeExhc3RCYXIoZSl7aWYoIXRoaXMuX2Z1dHVyZUJhcnNQYW5lVmlldyl7Y29uc3QgdD10aGlzLmJhcnMoKS5sYXN0SW5kZXgoKTt0JiYodGhpcy5fZnV0dXJlQmFyc1BhbmVWaWV3PW5ldyBqLkZ1dHVyZUJhcnNQYW5lVmlldyh0aGlzLm1vZGVsKCkudGltZVNjYWxlKCksdGhpcyx0LGUpKX19cmVxdWVzdE1vcmVEYXRhKGUpe2lmKCFJLnNlcmllc1JlYWR5U3RhdHVzZXMuaGFzKHRoaXMuX3N0YXR1cy52YWx1ZSgpLnNlcmllc1N0YXR1cykpcmV0dXJuO2lmKHRoaXMuX21vZGVsLnRpbWVTY2FsZSgpLmlzRW1wdHkoKSlyZXR1cm47Y29uc3QgdD10aGlzLl9tb2RlbC50aW1lU2NhbGUoKS52aXNpYmxlQmFyc1N0cmljdFJhbmdlKCk7aWYobnVsbD09PXQpcmV0dXJuO2lmKDA9PT10aGlzLmJhcnMoKS5zaXplKCkpcmV0dXJuO2NvbnN0IHM9dC5sYXN0QmFyKCktKDAsbi5lbnN1cmVOb3ROdWxsKSh0aGlzLmRhdGEoKS5sYXN0KCkpLmluZGV4O2lmKHRoaXMuX3ByZWRpY3RCYXJzPHMmJih0aGlzLl9wcmVkaWN0QmFycz1zLHRoaXMuX3Nlcmllc1NvdXJjZS5yZXF1ZXN0TW9yZVRpY2ttYXJrcyhzKSksIXRoaXMuX3JlcXVlc3RNb3JlRGF0YUF2YWlsYWJsZSlyZXR1cm47Y29uc3QgaT0oMCxuLmVuc3VyZU5vdE51bGwpKHRoaXMuYmFycygpLmZpcnN0SW5kZXgoKSkscj1lfHxNYXRoLm1heChpLXQuZmlyc3RCYXIoKSxpLSh0aGlzLl9zdHVkeUJpbmRpbmdzPy5yZXF1ZXN0TW9yZURhdGFJbmRleCgpPz9pKSk7aWYocjw9MClyZXR1cm47aWYoIU51bWJlci5pc0Zpbml0ZShyKSlyZXR1cm4gdm9pZCBodC5sb2dXYXJuKCJyZXF1ZXN0TW9yZURhdGE6IGludmFsaWQgYmFyIGNvdW50OiAiK3IrIiwgdmlzaWJsZSBiYXJzOiBbIit0LmZpcnN0QmFyKCkrIiwgIit0Lmxhc3RCYXIoKSsiXSwgbGFzdCBpbmRleDogIisoMCxuLmVuc3VyZU5vdE51bGwpKHRoaXMuZGF0YSgpLmxhc3QoKSkuaW5kZXgrIiwgcHJlZGljdGVkIGJhcnM6ICIrdGhpcy5fcHJlZGljdEJhcnMrIiwgcmVxdWlyZWQgYmFyczoiK2UpO3RoaXMuX3JlcXVlc3RNb3JlRGF0YUF2YWlsYWJsZT0hMQo7Y29uc3Qgbz10aGlzLl9jb2xvck9uUHJldkJhcigpPzI6MDt0aGlzLl9zZXJpZXNTb3VyY2UucmVxdWVzdE1vcmVEYXRhKHIrbyksdGhpcy5fc2V0U3RhdHVzKDIpfWlzTmVlZFJlc3RhcnQoZSl7cmV0dXJuIDUhPT10aGlzLl9zdGF0dXMudmFsdWUoKS5zZXJpZXNTdGF0dXMmJih2b2lkIDA9PT1lJiYoZT10aGlzLnByb3BlcnRpZXMoKS5jaGlsZHMoKS5zdHlsZS52YWx1ZSgpKSwoMCxQLnN0eWxlQ2hhbmdlUmVxdWlyZXNSZXN0YXJ0KSh0aGlzLl9wcmV2Q2hhcnRTdHlsZSxlKSl9aXNTdHlsZVN1cHBvcnRlZChlKXtyZXR1cm4hdGhpcy5pc0luUmVwbGF5KCkudmFsdWUoKXx8KDAsUC5pc1N0eWxlU3VwcG9ydGVkRm9yUmVwbGF5KShlKX1zZXNzaW9uSWQoKXtyZXR1cm4gdGhpcy5wcm9wZXJ0aWVzKCkuY2hpbGRzKCkuc2Vzc2lvbklkLnZhbHVlKCl9c2Vzc2lvbklkQ2hhbmdlZCgpe3JldHVybiB0aGlzLl9zZXNzaW9uSWRDaGFuZ2VkfXByaWNlUmFuZ2UoZSl7Y29uc3QgdD10aGlzLl9wcmljZVNjYWxlO2lmKHRoaXMuZGF0YSgpLmlzRW1wdHkoKXx8IXQpcmV0dXJuIG51bGw7Y29uc3R7c3RhcnRUaW1lUG9pbnQ6cyxlbmRUaW1lUG9pbnQ6aX09ZTtpZih0LmlzTG9ja1NjYWxlKCkpe2NvbnN0IGU9dGhpcy5fbW9kZWwubWFpblNlcmllc1NjYWxlUmF0aW8oKTtpZihudWxsIT09ZSl7Y29uc3Qgcz10LmludGVybmFsSGVpZ2h0KCkvKHRoaXMubW9kZWwoKS50aW1lU2NhbGUoKS5iYXJTcGFjaW5nKCkvZSkscj0oMCxuLmVuc3VyZU5vdE51bGwpKHRoaXMuZGF0YSgpLnNlYXJjaChpLGguUGxvdFJvd1NlYXJjaE1vZGUuTmVhcmVzdExlZnQpKS52YWx1ZSxvPSgoMCxuLmVuc3VyZSkoclsyXSkrKDAsbi5lbnN1cmUpKHJbM10pKS8yO3JldHVybiBuZXcgUy5QcmljZVJhbmdlKG8tLjUqcyxvKy41KnMpfX1jb25zdCByPXRoaXMucHJpY2VTb3VyY2UoKTtsZXQgbyxhLGw7aWYobnVsbCE9PXI/KG89dGhpcy5kYXRhKCkuYmFycygpLm1pbk1heE9uUmFuZ2VDYWNoZWQocyxpLFt7bmFtZTpyLG9mZnNldDowfV0pLGE9dGhpcy5kYXRhKCkubnNCYXJzKCkubWluTWF4T25SYW5nZUNhY2hlZChzLGksW3tuYW1lOnIsb2Zmc2V0OjB9XSkpOihvPXRoaXMuZGF0YSgpLmJhcnMoKS5taW5NYXhPblJhbmdlQ2FjaGVkKHMsaSxbe25hbWU6ImxvdyIsb2Zmc2V0OjB9LHtuYW1lOiJoaWdoIixvZmZzZXQ6MH1dKSxhPXRoaXMuZGF0YSgpLm5zQmFycygpLm1pbk1heE9uUmFuZ2UocyxpLFt7bmFtZToibG93IixvZmZzZXQ6MH0se25hbWU6ImhpZ2giLG9mZnNldDowfV0pKSxvPSgwLGQubWVyZ2VNaW5NYXgpKG8sYSksbnVsbD09PW8pbD1uZXcgUy5QcmljZVJhbmdlKC0uNSwuNSk7ZWxzZSBpZihvLm1pbj09PW8ubWF4KXtjb25zdCBlPTUvKHRoaXMuc3ltYm9sSW5mbygpPy5wcmljZXNjYWxlPz8xMDApO2w9bmV3IFMuUHJpY2VSYW5nZShvLm1pbi1lLG8ubWF4K2UpfWVsc2UgbD1uZXcgUy5QcmljZVJhbmdlKG8ubWluLG8ubWF4KTtyZXR1cm4gdC5pc0xvZygpP25ldyBTLlByaWNlUmFuZ2UodC5wcmljZVRvTG9naWNhbChsLm1pblZhbHVlKCkpLHQucHJpY2VUb0xvZ2ljYWwobC5tYXhWYWx1ZSgpKSk6bH1hdXRvU2NhbGVJbmZvKGUpe2xldCB0PXtyYW5nZTp0aGlzLnByaWNlUmFuZ2Uoey4uLmUsc2NhbGVTZXJpZXNPbmx5OiEwfSksdG9wUGl4ZWxNYXJnaW46dGhpcy5fcGFuZVZpZXc/LnRvcFBpeGVsTWFyZ2luPy4oKSxib3R0b21QaXhlbE1hcmdpbjp0aGlzLl9wYW5lVmlldz8uYm90dG9tUGl4ZWxNYXJnaW4/LigpfTtpZighZS5zY2FsZVNlcmllc09ubHkpe2NvbnN0IHM9dGhpcy5fbW9kZWwuYWxsU3R1ZGllcygpLmZpbHRlcigoZT0+ZS5pc1Zpc2libGUoKSkpLGk9KGUsdCk9PnZvaWQgMD09PWU/dDp2b2lkIDA9PT10P2U6TWF0aC5tYXgoZSx0KSxuPXMubWFwKCh0PT50LmF1dG9TY2FsZUluZm8oey4uLmUsZm9yY2VPdmVybGF5T25seTohMH0pKSk7dGhpcy5fc3R1ZHlCaW5kaW5ncyYmbi5wdXNoKC4uLnRoaXMuX3N0dWR5QmluZGluZ3MuYXV0b1NjYWxlSW5mb3MoZSkpO2NvbnN0IHI9KGUsdCk9Pih7cmFuZ2U6ZS5yYW5nZT90LnJhbmdlP2UucmFuZ2UubWVyZ2UodC5yYW5nZSk6ZS5yYW5nZTp0LnJhbmdlLHRvcFBpeGVsTWFyZ2luOmkoZS50b3BQaXhlbE1hcmdpbix0LnRvcFBpeGVsTWFyZ2luKSxib3R0b21QaXhlbE1hcmdpbjppKGUuYm90dG9tUGl4ZWxNYXJnaW4sdC5ib3R0b21QaXhlbE1hcmdpbil9KTt0PW4ucmVkdWNlKHIsdCl9cmV0dXJuIHR9b25DaGFydFN0eWxlQ2hhbmdlZCgpe2lmKHRoaXMuX3VwZGF0ZUJhckZ1bmN0aW9uKCksdGhpcy5pc05lZWRSZXN0YXJ0KCkpe3RoaXMuZGF0YSgpLmNsZWFyKCk7Y29uc3QgZT0oMCxQLmlzU3R5bGVTdXBwb3J0ZWRGb3JSZXBsYXkpKHRoaXMuc3R5bGUoKSk7dGhpcy5pc0luUmVwbGF5KCkudmFsdWUoKSYmIWUmJnRoaXMuX3JlbW92ZVJlcGxheVN1YnNjcmliZXIoKSx0aGlzLl9zYXZlTGVmdEVkZ2VJZlJlcXVpcmVkKCExKXx8dGhpcy5tb2RlbCgpLnRpbWVTY2FsZSgpLnNjcm9sbFRvUmVhbHRpbWUoITEpLHRoaXMucmVzdGFydChlKX1jb25zdCBlPXRoaXMucHJvcGVydGllcygpO3RoaXMuX3ByZXZDaGFydFN0eWxlIT09ZS5jaGlsZHMoKS5zdHlsZS52YWx1ZSgpJiZ0aGlzLl9zdHVkeUJpbmRpbmdzPy5zeW5jU3R1ZHkodGhpcy5zdHlsZSgpKSx0aGlzLl9wcmV2Q2hhcnRTdHlsZT1lLmNoaWxkcygpLnN0eWxlLnZhbHVlKCksdGhpcy5fb25TdHlsZUNoYW5nZWQuZmlyZShlLmNoaWxkcygpLnN0eWxlLnZhbHVlKCkpLHRoaXMuaW52YWxpZGF0ZUJhclN0eWxlc0NhY2hlKCksdGhpcy5fdXBkYXRlTGFzdFByaWNlQW5pbWF0aW9uQWN0aXZlKCksdGhpcy5fc3R5bGVUb1JlY292ZXI/Lm9yaWdpbmFsU3R5bGUhPT10aGlzLnN0eWxlKCkmJih0aGlzLl9zdHlsZVRvUmVjb3Zlcj1udWxsKSx0aGlzLl91cGRhdGVUaW1lU2NhbGVUaW1lUG9pbnRXZWlnaHRzKCl9c2V0Q2hhcnRTdHlsZVdpdGhJbnRlcnZhbElmTmVlZGVkKGUsdCl7Y29uc3Qgcz10aGlzLmludGVydmFsKCksaT10Pz8oMCwKdmUuZ2V0UmVzb2x1dGlvbkJ5Q2hhcnRTdHlsZSkoZSxzLHRoaXMuX21vZGVsLmRlZmF1bHRSZXNvbHV0aW9ucygpKSxuPWMuSW50ZXJ2YWwuaXNFcXVhbChpLHMpO3RoaXMuc2V0U3ltYm9sUGFyYW1zKHtpbnRlcnZhbDpuP3ZvaWQgMDppLHN0eWxlOmV9KX1nZXRJbnB1dHNQcm9wZXJ0aWVzKCl7Y29uc3QgZT10aGlzLl9wcm9wZXJ0aWVzLmNoaWxkKGAke3RoaXMuZ2V0U3R5bGVTaG9ydE5hbWUoKX1TdHlsZWApO3JldHVybiBlPy5jaGlsZHMoKS5pbnB1dHM/P25ldyB3LlByb3BlcnR5fWdldElucHV0c0luZm9Qcm9wZXJ0aWVzKCl7Y29uc3QgZT10aGlzLl9zdHVkeUJpbmRpbmdzPy5nZXRJbnB1dHNJbmZvUHJvcGVydGllcygpO2lmKGUpcmV0dXJuIGU7Y29uc3QgdD10aGlzLl9wcm9wZXJ0aWVzLmNoaWxkKGAke3RoaXMuZ2V0U3R5bGVTaG9ydE5hbWUoKX1TdHlsZWApO3JldHVybiB0Py5jaGlsZHMoKS5pbnB1dEluZm8/P25ldyB3LlByb3BlcnR5fWdldFNvdXJjZUljb24oKXtyZXR1cm57dHlwZToibG9hZFN2ZyIsc3ZnSWQ6YHNlcmllcy4ke3RoaXMuc3R5bGUoKX1gfX1vblNvdXJjZUljb25DaGFuZ2VkKCl7cmV0dXJuIHRoaXMuX29uU3R5bGVDaGFuZ2VkfXB1cmdlU3ltYm9sSW5mbygpe3RoaXMuX3N5bWJvbEluZm8uc2V0VmFsdWUobnVsbCksdGhpcy5fcXVvdGVzTGFzdFNwbGl0cy5zZXRWYWx1ZShudWxsKX1pZEZvckFsZXJ0KCl7cmV0dXJuKDAsVS5nZXRTZXJpZXNJZEZvckFsZXJ0KSh0aGlzLmdldEFsZXJ0U3ltYm9sU3RyaW5nKCksdGhpcy5pbnRlcnZhbCgpKX1oYXNTdGF0ZUZvckFsZXJ0KCl7Y29uc3QgZT10aGlzLnN5bWJvbEluZm8oKTtyZXR1cm4gc3VwZXIuaGFzU3RhdGVGb3JBbGVydCgpJiYhKDAsUC5pc0Vjb25vbWljU3ltYm9sKShlKSYmISgwLFAuaXNNZXRyaWNBY3RpdmUpKGUpfXN0YXRlRm9yQWxlcnQoKXtjb25zdCBlPXRoaXMuaWRGb3JBbGVydCgpLHQ9ei5Gb3JtYXR0ZXJzU2VyaWFsaXplci5zZXJpYWxpemUodGhpcy5fZm9ybWF0dGVyKTtsZXQgcztjb25zdCBpPXRoaXMuaXNEV00oKT9DLlN1YnNlc3Npb25JZC5SZWd1bGFyOnRoaXMuc2Vzc2lvbklkUHJveHlQcm9wZXJ0eSgpLnZhbHVlKCkscj10aGlzLnN5bWJvbEluZm8oKTtpZihyJiZyLnN1YnNlc3Npb25zJiZyLnN1YnNlc3Npb25zLmxlbmd0aD4xKXtjb25zdCBlPXIuc3Vic2Vzc2lvbnM/LmZpbmQoKGU9PmUuaWQ9PT1pKSk7ZSYmKHM9KDAsSC50cmFuc2xhdGVTZXNzaW9uRXh0ZW5kZWREZXNjcmlwdGlvbikoZS5kZXNjcmlwdGlvbixyLnR5cGUpKX1jb25zdCBvPXRoaXMucHJvcGVydGllcygpLmNoaWxkcygpO3JldHVybntpZDplLHR5cGU6Ik1haW5TZXJpZXMiLGFjdHVhbFN5bWJvbDp0aGlzLmFjdHVhbFN5bWJvbCgpLHN5bWJvbFN0cmluZzp0aGlzLmdldEFsZXJ0U3ltYm9sU3RyaW5nKCksaW50ZXJ2YWw6dGhpcy5pbnRlcnZhbCgpLHN0eWxlOm8uc3R5bGUudmFsdWUoKSxzdHlsZUlucHV0czp0aGlzLmdldElucHV0c1Byb3BlcnRpZXMoKS5zdGF0ZSgpLHNlc3Npb25JZDppLHNlc3Npb25EZXNjcmlwdGlvbjpzLGRpdmlkZW5kc0FkanVzdG1lbnQ6KDAsbi5lbnN1cmVEZWZpbmVkKShvLmRpdmlkZW5kc0FkanVzdG1lbnQpLnZhbHVlKCksYm94U2l6ZTp0aGlzLmRhdGEoKS5ib3hTaXplLHJldmVyc2FsQW1vdW50OnRoaXMuZGF0YSgpLnJldmVyc2FsQW1vdW50LGlzU3ByZWFkOnRoaXMuaXNTcHJlYWQoKSxmb3JtYXR0ZXI6dH19YXN5bmMgc3RhdGVGb3JBbGVydEFzeW5jKCl7cmV0dXJuIHRoaXMuc3RhdGVGb3JBbGVydCgpfXN0eWxlU3R1ZHlJbmZvcygpe2xldCBlPXtoYVN0eWxlOntzdHVkeUlkOigwLG4uZW5zdXJlTm90TnVsbCkoKDAsUC5jaGFydFN0eWxlU3R1ZHlJZCkoOCwhMCkpfSxyZW5rb1N0eWxlOntzdHVkeUlkOigwLG4uZW5zdXJlTm90TnVsbCkoKDAsUC5jaGFydFN0eWxlU3R1ZHlJZCkoNCwhMCkpfSxwYlN0eWxlOntzdHVkeUlkOigwLG4uZW5zdXJlTm90TnVsbCkoKDAsUC5jaGFydFN0eWxlU3R1ZHlJZCkoNywhMCkpfSxrYWdpU3R5bGU6e3N0dWR5SWQ6KDAsbi5lbnN1cmVOb3ROdWxsKSgoMCxQLmNoYXJ0U3R5bGVTdHVkeUlkKSg1LCEwKSl9LHBuZlN0eWxlOntzdHVkeUlkOigwLG4uZW5zdXJlTm90TnVsbCkoKDAsUC5jaGFydFN0eWxlU3R1ZHlJZCkoNiwhMCkpfSxyYW5nZVN0eWxlOntzdHVkeUlkOigwLG4uZW5zdXJlTm90TnVsbCkoKDAsUC5jaGFydFN0eWxlU3R1ZHlJZCkoMTEsITApKX19O3JldHVybiBlPXsuLi5lLHZvbEZvb3RwcmludFN0eWxlOntzdHVkeUlkOigwLG4uZW5zdXJlTm90TnVsbCkoKDAsUC5jaGFydFN0eWxlU3R1ZHlJZCkoMTcsITApKX0sdHBvU3R5bGU6e3N0dWR5SWQ6KDAsbi5lbnN1cmVOb3ROdWxsKSgoMCxQLmNoYXJ0U3R5bGVTdHVkeUlkKSgxOCwhMCx0aGlzLl9wcm9wZXJ0aWVzLmNoaWxkcygpLnRwb1N0eWxlLmNoaWxkcygpLmlucHV0cy5zdGF0ZSgpKSl9LHN2cFN0eWxlOntzdHVkeUlkOigwLG4uZW5zdXJlTm90TnVsbCkoKDAsUC5jaGFydFN0eWxlU3R1ZHlJZCkoMjAsITApKX19LGV9ZGF0YUV2ZW50cygpe3JldHVybiB0aGlzLl9zZXJpZXNTb3VyY2UuZGF0YUV2ZW50cygpfWlzU3ByZWFkKCl7cmV0dXJuInNwcmVhZCI9PT10aGlzLnN5bWJvbEluZm8oKT8udHlwZX1pc1lpZWxkKCl7Y29uc3QgZT10aGlzLnN5bWJvbEluZm8oKTtyZXR1cm4gbnVsbCE9PWUmJigwLHFlLmlzWWllbGQpKGUpfWRpdmlkZW5kc0FkanVzdG1lbnRQcm9wZXJ0eSgpe3JldHVybigwLG4uZW5zdXJlRGVmaW5lZCkodGhpcy5fcHJvcGVydGllcy5jaGlsZHMoKS5kaXZpZGVuZHNBZGp1c3RtZW50KX1zZXNzaW9uSWRQcm94eVByb3BlcnR5KCl7cmV0dXJuIHRoaXMuX3Nlc3Npb25JZFByb3h5UHJvcGVydHl9c3ltYm9sVGV4dFNvdXJjZVByb3h5UHJvcGVydHkoKXtyZXR1cm4gdGhpcy5fc3ltYm9sVGV4dFNvdXJjZVByb3h5UHJvcGVydHl9c2V0VGV4dFNvdXJjZUlzQWx3YXlzVGlja2VyUmVzdHJpY3Rpb25FbmFibGVkKGUpe3RoaXMuX3RleHRTb3VyY2VJc0Fsd2F5c1RpY2tlclJlc3RyaWN0aW9uRW5hYmxlZD1lLAp0aGlzLl9yZWNhbGNTeW1ib2xUZXh0U291cmNlUHJveHlQcm9wZXJ0eSgpfWlzRFdNUHJvcGVydHkoKXtyZXR1cm4gdGhpcy5faXNEV01Qcm9wZXJ0eX1pc1ByZVBvc3RNYXJrZXRQcmljZXNBdmFpbGFibGVQcm9wZXJ0eSgpe3JldHVybiB0aGlzLl9pc1ByZVBvc3RNYXJrZXRQcmljZXNBdmFpbGFibGVQcm9wZXJ0eX1pc092ZXJuaWdodE1hcmtldFByaWNlc0F2YWlsYWJsZVByb3BlcnR5KCl7cmV0dXJuIHRoaXMuX2lzT3Zlcm5pZ2h0TWFya2V0UHJpY2VzQXZhaWxhYmxlUHJvcGVydHl9aXNTZXR0bGVtZW50QXNDbG9zZUZvcmJpZGRlblByb3BlcnR5KCl7cmV0dXJuIHRoaXMuX2lzU2V0dGxlbWVudEFzQ2xvc2VGb3JiaWRkZW5Qcm9wZXJ0eX1pc0JhY2tBZGp1c3RtZW50Rm9yYmlkZGVuUHJvcGVydHkoKXtyZXR1cm4gdGhpcy5faXNCYWNrQWRqdXN0bWVudEZvcmJpZGRlblByb3BlcnR5fWdldFN0eWxlU2hvcnROYW1lKCl7Y29uc3QgZT10aGlzLnN0eWxlKCksdD1JLlNUWUxFX1NIT1JUX05BTUVTW2VdO3JldHVybigwLG4uYXNzZXJ0KSghIXQsYE1pc3NlZCBzaG9ydCBuYW1lIGZvciBzdHlsZSAke2V9YCksdH1pbnZhbGlkYXRlQmFyQ29sb3JlckNhY2hlKCl7dGhpcy5fYmFyQ29sb3JlckNhY2hlPW51bGwsdGhpcy5pbnZhbGlkYXRlQmFyU3R5bGVzQ2FjaGUoKX1wYXJhbXNOb3RBcHBsaWNhYmxlRm9yUmVwbGF5KCl7cmV0dXJuIHRoaXMuX3BhcmFtc05vdEFwcGxpY2FibGVGb3JSZXBsYXl9b25UaW1lRnJhbWVBcHBsaWVkKCl7cmV0dXJuIHRoaXMuX29uVGltZUZyYW1lQXBwbGllZH1vbkluUmVwbGF5U3RhdGVDaGFuZ2VkKCl7cmV0dXJuIHRoaXMuX29uSW5SZXBsYXlTdGF0ZUNoYW5nZWR9b25SZXBsYXlNb2RpZmllZCgpe3JldHVybiB0aGlzLl9vblJlcGxheVN1YnNjcmliZXJTZXJpZXNNb2RpZmllZH1kYXRhV2luZG93Vmlldygpe3JldHVybiB0aGlzLl9kYXRhV2luZG93Vmlld31jaGFydEZsb2F0aW5nVG9vbHRpcFZpZXcoKXtyZXR1cm4gdGhpcy5fc3R1ZHlCaW5kaW5ncz8uYWN0aXZlU3R1ZHkoKT8uY2hhcnRGbG9hdGluZ1Rvb2x0aXBWaWV3Py4oKT8/dGhpcy5fZmxvYXRpbmdUb29sdGlwVmlld31zdGF0dXNWaWV3KCl7cmV0dXJuIGF0P3RoaXMuX3N0YXR1c1ZpZXc6bnVsbH1sZWdlbmRWaWV3KCl7cmV0dXJuIHRoaXMuX2xlZ2VuZFZpZXd9bWFya2V0U3RhdHVzTW9kZWwoKXtyZXR1cm4gdGhpcy5fbWFya2V0U3RhdHVzTW9kZWx9aXNNYWluU2VyaWVzKCl7cmV0dXJuITB9ZGF0YVVwZGF0ZWRNb2RlTW9kZWwoKXtyZXR1cm4gdGhpcy5fZGF0YVVwZGF0ZWRNb2RlTW9kZWx9ZGF0YVByb2JsZW1Nb2RlbCgpe3JldHVybiB0aGlzLl9kYXRhUHJvYmxlbU1vZGVsfXNldERlZmF1bHRUaW1lZnJhbWUoZSl7dGhpcy5fcGVuZGluZ1RpbWVSYW5nZT1lfWxvYWREYXRhVG8oZSl7Y29uc3QgdD10aGlzLl9wcm9wZXJ0aWVzLmNoaWxkcygpLmludGVydmFsLnZhbHVlKCk7dGhpcy5fb25UaW1lRnJhbWVBcHBsaWVkLmZpcmUoZSksdGhpcy5fc2VyaWVzU291cmNlLm1vZGlmeVNlcmllcyh0aGlzLl9nZXRSZXNvbHZpbmdTeW1ib2xPYmplY3QoKSwoMCxwLmdldFNlcnZlckludGVydmFsKSh0KSxlKX1pc0luUmVwbGF5KCl7cmV0dXJuIHRoaXMuX2lzSW5SZXBsYXl9cXVvdGVzKCl7cmV0dXJuIHRoaXMuZGF0YSgpLmlzRW1wdHkoKT9udWxsOnRoaXMuX3F1b3Rlc1Byb3ZpZGVyLnF1b3RlcygpLnZhbHVlKCl9YmFzZSgpe3JldHVybiB0aGlzLl9iYXNlfXBvaW50VmFsdWUoKXtyZXR1cm4gdGhpcy5fcG9pbnRWYWx1ZX1iYXJDbG9zZVRpbWUoKXtyZXR1cm4gdGhpcy5fbGFzdEJhckNsb3NlVGltZX1wcmljZVNvdXJjZSgpe2xldCBlPW51bGw7Y29uc3QgdD10aGlzLl9wcm9wZXJ0aWVzLmNoaWxkcygpO3N3aXRjaCh0LnN0eWxlLnZhbHVlKCkpe2Nhc2UgMjplPXQubGluZVN0eWxlLmNoaWxkcygpLnByaWNlU291cmNlLnZhbHVlKCk7YnJlYWs7Y2FzZSAxODplPXQudHBvU3R5bGUuY2hpbGRzKCkucHJpY2VTb3VyY2UudmFsdWUoKTticmVhaztjYXNlIDE0OmU9dC5saW5lV2l0aE1hcmtlcnNTdHlsZS5jaGlsZHMoKS5wcmljZVNvdXJjZS52YWx1ZSgpO2JyZWFrO2Nhc2UgMTU6ZT10LnN0ZXBsaW5lU3R5bGUuY2hpbGRzKCkucHJpY2VTb3VyY2UudmFsdWUoKTticmVhaztjYXNlIDM6ZT10LmFyZWFTdHlsZS5jaGlsZHMoKS5wcmljZVNvdXJjZS52YWx1ZSgpO2JyZWFrO2Nhc2UgMTA6ZT10LmJhc2VsaW5lU3R5bGUuY2hpbGRzKCkucHJpY2VTb3VyY2UudmFsdWUoKTticmVhaztjYXNlIDEzOmU9dC5jb2x1bW5TdHlsZS5jaGlsZHMoKS5wcmljZVNvdXJjZS52YWx1ZSgpfXJldHVybiBlfWxpbmVDb2xvckF0WVBlcmNlbnRGcm9tVG9wKGUpe2xldCB0O3N3aXRjaCh0aGlzLnN0eWxlKCkpe2Nhc2UgMjp0PXRoaXMucHJvcGVydGllcygpLmNoaWxkcygpLmxpbmVTdHlsZS5jaGlsZHMoKTticmVhaztjYXNlIDE0OnQ9dGhpcy5wcm9wZXJ0aWVzKCkuY2hpbGRzKCkubGluZVdpdGhNYXJrZXJzU3R5bGUuY2hpbGRzKCk7YnJlYWs7Y2FzZSAxNTp0PXRoaXMucHJvcGVydGllcygpLmNoaWxkcygpLnN0ZXBsaW5lU3R5bGUuY2hpbGRzKCk7YnJlYWs7ZGVmYXVsdDp0PW51bGx9cmV0dXJuIHQ/dC5jb2xvclR5cGU/LnZhbHVlKCk9PT1aZS5Db2xvclR5cGUuU29saWQ/dC5jb2xvci52YWx1ZSgpOnRoaXMuX2xpbmVDb2xvckF0WVBlcmNlbnRGcm9tVG9wLmdyYWRpZW50Q29sb3IoKDAsbi5lbnN1cmVEZWZpbmVkKSh0LmdyYWRpZW50U3RhcnRDb2xvcikudmFsdWUoKSwoMCxuLmVuc3VyZURlZmluZWQpKHQuZ3JhZGllbnRFbmRDb2xvcikudmFsdWUoKSxlKTpudWxsfXVwZGF0ZUFsbFZpZXdzKGUpe3RoaXMuX3N0dWR5QmluZGluZ3M/LnVwZGF0ZUFsbFZpZXdzKGUpLHRoaXMuX2RlbGF5U3RhdHVzUGFuZVZpZXc/LmdldCgpPy51cGRhdGUoZSksImhvdmVyLWNoYW5nZSIhPT1lLnR5cGUmJih0aGlzLl9wYW5lVmlldz8udXBkYXRlKGUpLHRoaXMuX2RhdGFXaW5kb3dWaWV3LnVwZGF0ZSgpLHRoaXMuX2xlZ2VuZFZpZXcudXBkYXRlKCksdGhpcy5fc3RhdHVzVmlldy51cGRhdGUoKSwKdGhpcy5fZmxvYXRpbmdUb29sdGlwVmlldy51cGRhdGUoZSksdGhpcy5fYXZlcmFnZVBhbmVWaWV3cy5mb3JFYWNoKCh0PT50LnVwZGF0ZShlKSkpLHRoaXMuX2hpZ2hMb3dBdmdQYW5lVmlld3MuZm9yRWFjaCgodD0+dC51cGRhdGUoZSkpKSx0aGlzLl9sYWJlbFBhbmVWaWV3cy5mb3JFYWNoKCh0PT50LnVwZGF0ZShlKSkpLHRoaXMuX3ByaWNlQXhpc1ZpZXdzLmZvckVhY2goKHQ9PnQudXBkYXRlKGUpKSksdGhpcy5fcHJpY2VMaW5lQXhpc1ZpZXdzLmZvckVhY2goKHQ9PnQudXBkYXRlKGUpKSksdGhpcy5fZnV0dXJlQmFyc1BhbmVWaWV3Py51cGRhdGUoZSksdGhpcy5fcHJvamVjdGlvbkJhcnNQYW5lVmlldz8udXBkYXRlKGUpLHRoaXMuX3dhdGVybGluZVZpZXc/LnVwZGF0ZShlKSx0aGlzLl9wcmV2Q2xvc2VQcmljZUxpbmVWaWV3Py51cGRhdGUoZSksdGhpcy5fcHJpY2VMaW5lVmlldz8udXBkYXRlKGUpLHRoaXMuX2dvdG9EYXRlVmlldz8udXBkYXRlKGUpLHRoaXMuX2VuZE9mRGF0YVBhbmVWaWV3Py51cGRhdGUoZSksdGhpcy5fYmFzZUhvcml6b250YWxMaW5lVmlldz8udXBkYXRlKGUpLHRoaXMuX21vZGVsLmFjdGl2ZVN0cmF0ZWd5U291cmNlKCkudmFsdWUoKT8udXBkYXRlQWxsVmlld3MoZSksdGhpcy5fbW9kZWwucmVwbGF5U3R1ZHlTdHJhdGVneSgpLnZhbHVlKCk/LnVwZGF0ZUFsbFZpZXdzKGUpLHRoaXMuX2xpbmVTdHlsZUxhc3RQcmljZUNpcmNsZVBhbmVWaWV3LnVwZGF0ZShlKSl9c3R5bGVTdHVkeUluZm8oZSl7cmV0dXJuIHRoaXMuc3R5bGVTdHVkeUluZm9zKClbZV19YmFyRnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYmFyRnVuY3Rpb259cHJlY29tcHV0ZWRCYXJTdHlsZShlKXtyZXR1cm4gdGhpcy5fcHJlY29tcHV0ZWRCYXJTdHlsZXMuZ2V0KGUpfXNldFByZWNvbXB1dGVkQmFyU3R5bGUoZSx0KXt0aGlzLl9wcmVjb21wdXRlZEJhclN0eWxlcy5zZXQoZSx0KX1zeW1ib2xQYXJhbXMoKXtyZXR1cm4oMCxkZS5zeW1ib2xQYXJhbXMpKHRoaXMpfWNvbXBhcmVTeW1ib2xQYXJhbXMoZSl7cmV0dXJuKDAsZGUuY29tcGFyZVN5bWJvbFBhcmFtcykodGhpcyxlLHRoaXMuX21vZGVsLnVuaXRDb252ZXJzaW9uRW5hYmxlZCgpLHRoaXMuX21vZGVsLm1ldHJpY0NvbnZlcnNpb25FbmFibGVkKCkpfXNldFN5bWJvbFBhcmFtcyhlKXtjb25zdHtzeW1ib2w6dCxjdXJyZW5jeTpzLHVuaXQ6aSxtZXRyaWM6cixzdHlsZTpvLGludGVydmFsOmEsc2Vzc2lvbjpsfT1lLHtzeW1ib2xDaGFuZ2VkOnUsaW50ZXJ2YWxDaGFuZ2VkOmMsY3VycmVuY3lDaGFuZ2VkOmQsdW5pdENoYW5nZWQ6aCxtZXRyaWNDaGFuZ2VkOnAsc3R5bGVDaGFuZ2VkOm0sc2Vzc2lvbkNoYW5nZWQ6X309dGhpcy5jb21wYXJlU3ltYm9sUGFyYW1zKGUpLGc9W2d0KCJzeW1ib2wiLHQsdSksZ3QoImludGVydmFsIixhLGMpLGd0KCJjdXJyZW5jeSIscyxkKSxndCgidW5pdCIsaSxoKSxndCgibWV0cmljIixyLHApLGd0KCJzdHlsZSIsbyxtKSxndCgic2Vzc2lvbiIsbCxfKV0uZmlsdGVyKChlPT5udWxsIT09ZSkpLmpvaW4oIjsgIik7aHQubG9nSW5mbyhgQXBwbHlpbmcgc2VyaWVzIHN5bWJvbCBwYXJhbXM6ICR7Z31gKTtjb25zdCB5PXRoaXMucHJvcGVydGllcygpLmNoaWxkcygpO3ZvaWQgMCE9PXQmJnkuc3ltYm9sLnNldFZhbHVlKHQpLHZvaWQgMCE9PXMmJnkuY3VycmVuY3lJZC5zZXRWYWx1ZShzKSx2b2lkIDAhPT1pJiZ5LnVuaXRJZC5zZXRWYWx1ZShpKSx2b2lkIDAhPT1yJiZwJiYoeS5tZXRyaWNJZC5zZXRWYWx1ZShyKSxudWxsIT09ciYmKDAsUC5zZXRMYXN0VXNlZE1ldHJpYykocikpLGMmJnkuaW50ZXJ2YWwuc2V0VmFsdWUoKDAsbi5lbnN1cmVEZWZpbmVkKShhKSksdm9pZCAwIT09byYmbSYmeS5zdHlsZS5zZXRWYWx1ZShvKTtsZXQgZj0hMTt2b2lkIDAhPT1sJiZfJiYoeS5zZXNzaW9uSWQuc2V0VmFsdWUobCksZj0hdGhpcy5pc0RXTSgpKSxtJiYoZnx8PXRoaXMuaXNOZWVkUmVzdGFydCgpLHRoaXMub25DaGFydFN0eWxlQ2hhbmdlZCgpKTtsZXQgdj1Qcm9taXNlLnJlc29sdmUoKTtyZXR1cm4hZiYmKHV8fGN8fGR8fGh8fHApJiYodj10aGlzLl9hcHBseVN5bWJvbFBhcmFtc0NoYW5nZXMoe3N5bWJvbENoYW5nZWQ6dSxjdXJyZW5jeUNoYW5nZWQ6ZCx1bml0Q2hhbmdlZDpoLG1ldHJpY0NoYW5nZWQ6cCxpbnRlcnZhbENoYW5nZWQ6YyxzdHlsZUNoYW5nZWQ6bX0pKSwodXx8ZHx8aHx8cCkmJnRoaXMubW9kZWwoKS5jaGVja0xpbmVUb29sQW5kR3JvdXBTZWxlY3Rpb24oKSx2fXNldFN5bWJvbChlKXt0aGlzLnNldFN5bWJvbFBhcmFtcyh7c3ltYm9sOmV9KX1jdXJyZW5jeSgpe3JldHVybiB0aGlzLnByb3BlcnRpZXMoKS5jaGlsZHMoKS5jdXJyZW5jeUlkLnZhbHVlKCl8fG51bGx9c2V0Q3VycmVuY3koZSl7dGhpcy5zZXRTeW1ib2xQYXJhbXMoe2N1cnJlbmN5OmV9KX1jdXJyZW5jeU9yaWdpblNvdXJjZSgpe3JldHVybiB0aGlzLl9jdXJyZW5jeU9yaWdpblNvdXJjZS5yZWFkb25seSgpfXNldE1ldHJpYyhlKXt0aGlzLnNldFN5bWJvbFBhcmFtcyh7bWV0cmljOmV9KX11bml0KCl7cmV0dXJuIHRoaXMucHJvcGVydGllcygpLmNoaWxkcygpLnVuaXRJZC52YWx1ZSgpfHxudWxsfXNldFVuaXQoZSl7dGhpcy5zZXRTeW1ib2xQYXJhbXMoe3VuaXQ6ZX0pfXVuaXRPcmlnaW5Tb3VyY2UoKXtyZXR1cm4gdGhpcy5fdW5pdE9yaWdpblNvdXJjZS5yZWFkb25seSgpfW1lYXN1cmVVbml0SWQoKXtyZXR1cm4gdGhpcy5zeW1ib2xJbmZvKCk/Lm1ldHJpY3M/bnVsbDooMCxQLm1lYXN1cmVVbml0SWQpKHRoaXMuc3ltYm9sSW5mbygpKX1tZXRyaWMoKXtyZXR1cm4gdGhpcy5wcm9wZXJ0aWVzKCkuY2hpbGRzKCkubWV0cmljSWQudmFsdWUoKXx8bnVsbH12YWx1ZUF0KGUsdCl7cmV0dXJuIHRoaXMuZGF0YSgpLnNlYXJjaChlKT8udmFsdWVbdF0/P251bGx9c3ltYm9sU291cmNlKCl7cmV0dXJuIHRoaXN9c3ltYm9sU291cmNlV1YoKXtyZXR1cm4gdGhpcy5fc3ltYm9sU291cmNlV1YucmVhZG9ubHkoKX1iYXJzUHJvdmlkZXIoKXtyZXR1cm4gdGhpc310aXRsZShlKXtyZXR1cm4gdGhpcy5zeW1ib2xUaXRsZShlKX1uYW1lKCl7CnJldHVybiB0aGlzLnN5bWJvbFRpdGxlKFllLlRpdGxlRGlzcGxheVRhcmdldC5TdGF0dXNMaW5lKX1zeW1ib2xUaXRsZShlLHQscyl7bGV0IGk9dGhpcy5wcm9wZXJ0aWVzKCkuY2hpbGRzKCkuc3ltYm9sLnZhbHVlKCk7Y29uc3Qgbj10aGlzLmFsaWFzU3ltYm9sSW5mbygpO2lmKG51bGwhPT1uJiYoaT0oMCxQLnN5bWJvbFRpdGxlKShuLHQpKSxzKXJldHVybiBpO2xldCByPSgwLHBlLnRyYW5zbGF0ZWRJbnRlcnZhbFN0cmluZykodGhpcy5wcm9wZXJ0aWVzKCkuY2hpbGRzKCkuaW50ZXJ2YWwudmFsdWUoKSk7cmV0dXJuIGU9PT1ZZS5UaXRsZURpc3BsYXlUYXJnZXQuRGF0YVdpbmRvdyYmKHI9KDAsc3QuZm9yY2VSVExTdHIpKHIpKSxgJHtpfSwgJHtyfWB9c2V0T2Jzb2xldGVaT3JkZXIoZSl7dGhpcy5fb2Jzb2xldGVaT3JkZXI9ZX1vYnNvbGV0ZVpPcmRlcigpe3JldHVybiB0aGlzLl9vYnNvbGV0ZVpPcmRlcn12YWx1ZXNQcm92aWRlcigpe3JldHVybiB0aGlzLl92YWx1ZXNQcm92aWRlcn1sZWdlbmRWYWx1ZXNQcm92aWRlcigpe3JldHVybiB0aGlzLl9zdHVkeUJpbmRpbmdzPy5sZWdlbmRWYWx1ZXNQcm92aWRlcigpPz90aGlzLl9sZWdlbmRWYWx1ZXNQcm92aWRlcn10YWJsZVZpZXdWYWx1ZXNQcm92aWRlcigpe3JldHVybiB0aGlzLl9zdHVkeUJpbmRpbmdzPy50YWJsZVZpZXdWYWx1ZXNQcm92aWRlcigpPz90aGlzLl90YWJsZVZpZXdWYWx1ZXNQcm92aWRlcn1kYXRhV2luZG93VmFsdWVzUHJvdmlkZXIoKXtyZXR1cm4gdGhpcy5fc3R1ZHlCaW5kaW5ncz8uZGF0YVdpbmRvd1ZhbHVlc1Byb3ZpZGVyKCk/P3RoaXMuX2RhdGFXaW5kb3dWYWx1ZXNQcm92aWRlcn1jaGFydEZsb2F0aW5nVG9vbHRpcFZhbHVlc1Byb3ZpZGVyKCl7cmV0dXJuIHRoaXMuX3N0dWR5QmluZGluZ3M/LmFjdGl2ZVN0dWR5KCk/LmNoYXJ0RmxvYXRpbmdUb29sdGlwVmFsdWVzUHJvdmlkZXIoKT8/dGhpcy5fY2hhcnRGbG9hdGluZ1Rvb2x0aXBWYWx1ZXNQcm92aWRlcn1zdGF0dXNQcm92aWRlcihlKXtyZXR1cm4gbmV3IGNlLlNlcmllc1N0YXR1c1Byb3ZpZGVyKHRoaXMsdGhpcy5wcm9wZXJ0aWVzKCkuY2hpbGRzKCkuc3RhdHVzVmlld1N0eWxlLGUpfW1vdmVJdGVtKGUsdCxzKXtpZigxMD09PXRoaXMuc3R5bGUoKSYmMD09PXQpe2NvbnN0IHQ9dGhpcy5wcmljZVNjYWxlKCkscz10aGlzLnByb3BlcnRpZXMoKS5jaGlsZHMoKS5iYXNlbGluZVN0eWxlLGk9dC5oZWlnaHQoKSxuPTEwMC1lLnkvaSoxMDAscj1uPDA/MDpNYXRoLnJvdW5kKDEwKm4pLzEwO3MuY2hpbGRzKCkuYmFzZUxldmVsUGVyY2VudGFnZS5zZXRWYWx1ZShNYXRoLm1heChNYXRoLm1pbihyLDEwMCksMCkpfX1yZXJlcXVlc3REYXRhKCl7dGhpcy5fYXBwbHlTeW1ib2xQYXJhbXNDaGFuZ2VzKHtmb3JjZTohMH0pfXN3aXRjaFRvUmVwbGF5KGUsdCxzKXt0aGlzLl9yZXBsYXlTdWJzY3JpYmVyLnNldFZhbHVlKGUpLHRoaXMuX2lzUmVwbGF5UmVzb2x1dGlvbkF2YWlsYWJsZUZvclVzZXI9dCx0aGlzLl9vbkluUmVwbGF5U3RhdGVDaGFuZ2VkLmZpcmUoKSxlLm9uU2VyaWVzTW9kaWZpZWQoKS5zdWJzY3JpYmUodGhpcywoKCk9PnRoaXMuX29uUmVwbGF5U3Vic2NyaWJlclNlcmllc01vZGlmaWVkLmZpcmUoKSkpLGUubW9kaWZ5U2VyaWVzKHRoaXMuZ2V0U3ltYm9sU3RyaW5nKCksdGhpcy5fcHJvcGVydGllcy5jaGlsZHMoKS5pbnRlcnZhbC52YWx1ZSgpLHMpLHRoaXMucmVyZXF1ZXN0RGF0YSgpfXN3aXRjaFRvUmVhbHRpbWUoKXt0aGlzLmlzSW5SZXBsYXkoKS52YWx1ZSgpJiYodGhpcy5fcmVtb3ZlUmVwbGF5U3Vic2NyaWJlcigpLHRoaXMucmVyZXF1ZXN0RGF0YSgpKX1hc3luYyBjYW5DaGFuZ2VSZXNvbHV0aW9uKGUpe3tpZighdGhpcy5pc0luUmVwbGF5KCkudmFsdWUoKSlyZXR1cm4hMDtjb25zdCB0PSJjaGFuZ2VSZXNvbHV0aW9uIjtpZighKDAsbi5lbnN1cmVOb3ROdWxsKSh0aGlzLl9pc1JlcGxheVJlc29sdXRpb25BdmFpbGFibGVGb3JVc2VyKShlKSlyZXR1cm4gdGhpcy5fcGFyYW1zTm90QXBwbGljYWJsZUZvclJlcGxheS5maXJlKDMsdCksITE7Y29uc3Qgcz0oMCxuLmVuc3VyZU5vdE51bGwpKHRoaXMuX3JlcGxheVN1YnNjcmliZXIudmFsdWUoKSksaT1hd2FpdCBzLmNhbkNoYW5nZVN5bWJvbFBhcmFtcyh0aGlzLmdldFN5bWJvbFN0cmluZygpLGUpO3JldHVybiBpLnJlc3x8dGhpcy5fcmVwbGF5U3Vic2NyaWJlci52YWx1ZSgpIT09c3x8dGhpcy5fcGFyYW1zTm90QXBwbGljYWJsZUZvclJlcGxheS5maXJlKDIsdCksaS5yZXN9fWFzeW5jIGNhbkNoYW5nZVN5bWJvbChlKXt7aWYoIXRoaXMuaXNJblJlcGxheSgpLnZhbHVlKCkpcmV0dXJue3Jlc3VsdDohMH07Y29uc3QgdD10aGlzLl9nZXRFeHRlbmRlZFN5bWJvbE9iamVjdCh7b3ZlcnJpZGRlblN5bWJvbDplfSk7ZGVsZXRlIHRbImN1cnJlbmN5LWlkIl0sZGVsZXRlIHRbInVuaXQtaWQiXTtjb25zdCBzPSgwLGhlLmVuY29kZUV4dGVuZGVkU3ltYm9sT3JHZXRTaW1wbGVTeW1ib2xTdHJpbmcpKHQpLGk9ImNoYW5nZVN5bWJvbCI7cmV0dXJuIG5ldyBQcm9taXNlKCgoZSx0KT0+e2NvbnN0IHI9KDAsbi5lbnN1cmVOb3ROdWxsKSh0aGlzLl9yZXBsYXlTdWJzY3JpYmVyLnZhbHVlKCkpO3RoaXMuX21vZGVsLmNoYXJ0QXBpKCkucmVzb2x2ZVN5bWJvbCgoMCxCLm1ha2VOZXh0U3ltYm9sSWQpKCkscywobz0+e2lmKHRoaXMuX3JlcGxheVN1YnNjcmliZXIudmFsdWUoKSE9PXImJnQobmV3IEVycm9yKCJSZXBsYXkgc3Vic2NyaWJlciBjaGFuZ2VkIikpLCJzeW1ib2xfZXJyb3IiPT09by5tZXRob2QpdGhpcy5fcGFyYW1zTm90QXBwbGljYWJsZUZvclJlcGxheS5maXJlKDAsaSksZSh7cmVzdWx0OiExLHJlYXNvbjowfSk7ZWxzZSBpZihvLnBhcmFtc1sxXS5pc19yZXBsYXlhYmxlKXtjb25zdCBvPXRoaXMuaW50ZXJ2YWwoKTsoMCwKbi5lbnN1cmVOb3ROdWxsKSh0aGlzLl9pc1JlcGxheVJlc29sdXRpb25BdmFpbGFibGVGb3JVc2VyKShvKT9yLmNhbkNoYW5nZVN5bWJvbFBhcmFtcyhzLG8pLnRoZW4oKHM9Pih0aGlzLl9yZXBsYXlTdWJzY3JpYmVyLnZhbHVlKCkhPT1yJiZ0KG5ldyBFcnJvcigiUmVwbGF5IHN1YnNjcmliZXIgY2hhbmdlZCIpKSxzLnJlcz9lKHtyZXN1bHQ6ITB9KToodGhpcy5fcGFyYW1zTm90QXBwbGljYWJsZUZvclJlcGxheS5maXJlKDIsaSksZSh7cmVzdWx0OiExLHJlYXNvbjoyfSkpKSkpOih0aGlzLl9wYXJhbXNOb3RBcHBsaWNhYmxlRm9yUmVwbGF5LmZpcmUoMyxpKSxlKHtyZXN1bHQ6ITEscmVhc29uOjN9KSl9ZWxzZSB0aGlzLl9wYXJhbXNOb3RBcHBsaWNhYmxlRm9yUmVwbGF5LmZpcmUoMSxpKSxlKHtyZXN1bHQ6ITEscmVhc29uOjF9KX0pKX0pKX19cmVxdWVzdE1vcmVEYXRhQXZhaWxhYmxlKCl7cmV0dXJuIHRoaXMuX3JlcXVlc3RNb3JlRGF0YUF2YWlsYWJsZX1zZXJpZXNMb2FkZWQoKXtyZXR1cm4gdGhpcy5fc2VyaWVzTG9hZGVkfWVuZE9mRGF0YSgpe3JldHVybiB2b2lkIDAhPT10aGlzLl9sYXN0Q29tcGxldGVGbGFncz8uZGF0YV9jb21wbGV0ZWR9ZW5kT2ZEYXRhVHlwZSgpe3JldHVybiB0aGlzLl9sYXN0Q29tcGxldGVGbGFncz8uZGF0YV9jb21wbGV0ZWQ/P251bGx9ZGF0YVBvd2VyZWRCeSgpe3JldHVybiB0aGlzLl9kYXRhUG93ZXJlZEJ5fWJveFNpemVWYWx1ZSgpe3JldHVybiB0aGlzLl9ib3hTaXplVmFsdWV9aXNVc2VyRGVsZXRhYmxlKCl7cmV0dXJuITF9Y2hhbmdlVGltZUZyYW1lKCl7KDAsbS50cmFja0V2ZW50KSgiR1VJIiwiQ2hhbmdlIHRpbWVmcmFtZSIpfW9uVGFnc0NoYW5nZWQoKXtyZXR1cm4gdGhpcy5fdGFnc0NoYW5nZWR9c3RhdGUoZSl7Y29uc3QgdD10aGlzLm9ic29sZXRlWk9yZGVyKCk7bGV0IHM9e3R5cGU6Ik1haW5TZXJpZXMiLGlkOnRoaXMuaWQoKSx6b3JkZXI6dCwuLi50aGlzLnN0eWxlU3R1ZHlJbmZvcygpLGZvcm1hdHRpbmdEZXBzOnRoaXMuX2Zvcm1hdHRpbmdEZXBzLHN0dWR5QmluZGluZ3M6dGhpcy5fc3R1ZHlCaW5kaW5ncz8uc3RhdGUoISFlKX07Y29uc3QgaT10aGlzLnByb3BlcnRpZXMoKS5zdGF0ZSh2b2lkIDAsMik7aWYoaS5zeW1ib2w9KDAsUC5zeW1ib2xUb1NhdmVJblN0YXRlKSh0aGlzLnN5bWJvbEluZm8oKT8/dGhpcy5fbW9kZWwuY2hhcnRBcGkoKS5sYXN0U3ltYm9sUmVzb2x2ZUluZm8oaS5zeW1ib2wpLGkuc3ltYm9sKSx0aGlzLl9tb2RlbC51bml0Q29udmVyc2lvbkVuYWJsZWQoKXx8KGkudW5pdElkPW51bGwpLHMuc3RhdGU9aSxlKXtsZXQgZT10aGlzLmJhcnMoKTtjb25zdCB0PXRoaXMuX21vZGVsLnRpbWVTY2FsZSgpLnZpc2libGVFeHRlbmRlZERhdGFSYW5nZShlLDApO251bGwhPT10JiYoZT1lLnJhbmdlKHQuZmlyc3RCYXIoKSx0Lmxhc3RCYXIoKSkpLHM9ey4uLnMsYmFyczp5dChlKSxuc0JhcnM6eXQodGhpcy5uc0JhcnMoKSksc3ltYm9sSW5mbzp0aGlzLnN5bWJvbEluZm8oKSxydFByaWNlOnRoaXMuZGF0YSgpLmxhc3RQcm9qZWN0aW9uUHJpY2UsYm94U2l6ZTp0aGlzLmRhdGEoKS5ib3hTaXplLHJldmVyc2FsQW1vdW50OnRoaXMuZGF0YSgpLnJldmVyc2FsQW1vdW50fX1yZXR1cm4gc31yZXN0b3JlU3RhdGUoZSx0LHMpe3QmJnRoaXMuX3NldFN0YXR1cyg1KSwhdGhpcy5fbW9kZWwudW5pdENvbnZlcnNpb25FbmFibGVkKCkmJmUuc3RhdGUmJmRlbGV0ZSBlLnN0YXRlLnVuaXRJZCxlLnN0YXRlJiZjLkludGVydmFsLmlzUmFuZ2UoZS5zdGF0ZS5pbnRlcnZhbCkmJihlLnN0YXRlLnN0eWxlPTExKTtjb25zdCBpPWUuc3RhdGU7aWYodm9pZCAwIT09aSl7Y29uc3QgZT1pLnN0eWxlLHQ9Sy5jaGFydFN0eWxlUGVybWlzc2lvbnMuZ2V0KGUpO3QmJiF0aGlzLl9tb2RlbC5pc1NuYXBzaG90KCkmJihpLnN0eWxlPTIsKDAscS5ydW5PckdvUHJvV2l0aG91dFN5bmMpKCgoKT0+e2kuc3R5bGU9ZX0pLHQuZmVhdHVyZSx7ZmVhdHVyZTp0LmZlYXR1cmVOYW1lfSkpfWlmKHRoaXMuX3Byb3BlcnRpZXMubWVyZ2VBbmRGaXJlKGUuc3RhdGUpLG51bGwhPT10aGlzLl9wcm9wZXJ0aWVzLmNoaWxkcygpLm1ldHJpY0lkLnZhbHVlKCl8fHN8fHRoaXMuX3Byb3BlcnRpZXMuY2hpbGRzKCkubWV0cmljSWQuc2V0VmFsdWUoInByaWNlIiksdGhpcy5fcHJldkNoYXJ0U3R5bGU9dGhpcy5wcm9wZXJ0aWVzKCkuY2hpbGRzKCkuc3R5bGUudmFsdWUoKSx0aGlzLmNyZWF0ZVBhbmVWaWV3KCksdCl7Y29uc3QgdD1lO3RoaXMucmVzdG9yZURhdGEodC5iYXJzLHQubnNCYXJzLHQuc3ltYm9sSW5mbyx0LnJ0UHJpY2UsdC5ib3hTaXplLHQucmV2ZXJzYWxBbW91bnQpfWUuZm9ybWF0dGluZ0RlcHMmJih0aGlzLl9mb3JtYXR0aW5nRGVwcz1lLmZvcm1hdHRpbmdEZXBzLHRoaXMuX3JlY3JlYXRlUHJpY2VGb3JtYXR0aW5nRGVwZW5kZW5jaWVzKCkpLHRoaXMuX3N0dWR5QmluZGluZ3M/LnJlc3RvcmVTdGF0ZShlLnN0dWR5QmluZGluZ3M/P3t9LHQpLHRoaXMuX3N0dWR5QmluZGluZ3M/LnN5bmNTdHVkeSh0aGlzLnN0eWxlKCkpfXJlc3RvcmVEYXRhKGUsdCxzLGksbixyKXt0aGlzLl91cGRhdGVTdGF0dXMoe3Nlcmllc1N0YXR1czo1fSksdGhpcy5fZGF0YT1uZXcgYi5TZXJpZXNEYXRhLHRoaXMuX2RhdGEuYmFycygpLnJlc3RvcmVTdGF0ZShlKSx0aGlzLl9kYXRhLm5zQmFycygpLnJlc3RvcmVTdGF0ZSh0KSx0aGlzLl91cGRhdGVTeW1ib2xJbmZvKHMpLHRoaXMuX2RhdGEubGFzdFByb2plY3Rpb25QcmljZT1pLHRoaXMuX2RhdGEuYm94U2l6ZT1uO2NvbnN0IG89dGhpcy5wcm9wZXJ0aWVzKCkuY2hpbGRzKCk7bnx8KDY9PT1vLnN0eWxlLnZhbHVlKCk/dGhpcy5fZGF0YS5ib3hTaXplPW8ucG5mU3R5bGUuY2hpbGRzKCkuaW5wdXRzLmNoaWxkcygpLmJveFNpemUudmFsdWUoKTo0PT09by5zdHlsZS52YWx1ZSgpJiYodGhpcy5fZGF0YS5ib3hTaXplPW8ucmVua29TdHlsZS5jaGlsZHMoKS5pbnB1dHMuY2hpbGRzKCkuYm94U2l6ZS52YWx1ZSgpKSksdGhpcy5fZGF0YS5yZXZlcnNhbEFtb3VudD1yLApyfHw1PT09by5zdHlsZS52YWx1ZSgpJiYodGhpcy5fZGF0YS5yZXZlcnNhbEFtb3VudD1vLmthZ2lTdHlsZS5jaGlsZHMoKS5pbnB1dHMuY2hpbGRzKCkucmV2ZXJzYWxBbW91bnQudmFsdWUoKSl9YXN5bmMgc2V0R290b0RhdGVSZXN1bHQoZSx0KXt0aGlzLl9nb3RvRGF0ZVJlc3VsdENsZWFyZWQ9ITE7Y29uc3QgaT1hd2FpdCBQcm9taXNlLmFsbChbcy5lKDU1MzgpLHMuZSg4ODM1OCldKS50aGVuKHMuYmluZChzLDcwOTA2NykpO3RoaXMuX2dvdG9EYXRlUmVzdWx0Q2xlYXJlZHx8KHRoaXMuX2dvdG9EYXRlVmlldz1uZXcgaS5Hb3RvRGF0ZVZpZXcodGhpcyxlLHQpLHRoaXMuX2dvdG9EYXRlVmlldy5kb05vdFNob3dMYXN0QXZhaWxhYmxlQmFyKHRoaXMuX2RvTm90U2hvd0xhc3RBdmFpbGFibGVCYXIpLHRoaXMuX21vZGVsLnVwZGF0ZVNvdXJjZSh0aGlzKSl9Y2xlYXJHb3RvRGF0ZVJlc3VsdCgpe3RoaXMuX2dvdG9EYXRlVmlldz1udWxsLHRoaXMuX2dvdG9EYXRlUmVzdWx0Q2xlYXJlZD0hMH1kb05vdFNob3dMYXN0QXZhaWxhYmxlQmFyKGUpe3RoaXMuX2RvTm90U2hvd0xhc3RBdmFpbGFibGVCYXI9ZSx0aGlzLl9nb3RvRGF0ZVZpZXc/LmRvTm90U2hvd0xhc3RBdmFpbGFibGVCYXIoZSl9ZGF0YVVwZGF0ZWQoKXtyZXR1cm4gdGhpcy5kYXRhRXZlbnRzKCkuZGF0YVVwZGF0ZWQoKX1tb3ZlRGF0YShlKXtjb25zdCB0PXRoaXMuX3Nlcmllc1NvdXJjZS5tb3ZlRGF0YShlKTtudWxsIT09dGhpcy5fdm9sdW1lUG9pbnRXZWlnaHRzJiZ0aGlzLl92b2x1bWVQb2ludFdlaWdodHMubW92ZURhdGEoZSksdGhpcy5fc3R1ZHlCaW5kaW5ncz8ubW92ZURhdGEoZSksdC50aGVuKCgoKT0+e3RoaXMuX2lzRGVzdHJveWVkfHx0aGlzLmJhcnMoKS5pc0VtcHR5KCl8fHRoaXMuX29uSW5kZXhEaWZmc0FwcGxpZWQoZSl9KSl9YXN5bmMgc2VyaWVzQ3JlYXRlZCgpe2NvbnN0IGU9dGhpcy5fc2VyaWVzU291cmNlLmluc3RhbmNlSWQoKTtpZihudWxsIT09ZSlyZXR1cm4gZTtjb25zdCB0PWF3YWl0IFByb21pc2UucmFjZShbdGhpcy5fZGVmZXJyZWREZXN0cm95ZWQucHJvbWlzZS50aGVuKCgoKT0+e30pKSx0aGlzLl9tb2RlbC5pc1NuYXBzaG90KCk/UHJvbWlzZS5yZXNvbHZlKG51bGwpOm5ldyBQcm9taXNlKChlPT57dGhpcy5kYXRhRXZlbnRzKCkuY3JlYXRlZCgpLnN1YnNjcmliZSh0aGlzLGUsITApfSkpXSk7aWYodm9pZCAwPT09dCl0aHJvdyBuZXcgRXJyb3IoIlNlcmllcyBoYXMgYmVlbiBkZXN0cm95ZWQiKTtyZXR1cm4gdH1hY3RpdmVTdHVkeUJpbmRpbmcoKXtyZXR1cm4gdGhpcy5fc3R1ZHlCaW5kaW5ncz8uYWN0aXZlU3R1ZHkoKT8/bnVsbH1jb250ZXh0TWVudVN0YXROYW1lKCl7cmV0dXJuIlNlcmllc0NvbnRleHRNZW51In1fdXBkYXRlQmFyRnVuY3Rpb24oKXt0aGlzLl9iYXJGdW5jdGlvbj0oMCxIZS5iYXJGdW5jdGlvbkJ5U3R5bGUpKHRoaXMuc3R5bGUoKSx0aGlzLnByaWNlU291cmNlKCkpfV91cGRhdGVTZXNzaW9uSWRQcm94eVByb3BlcnR5KGUpe2NvbnN0IHQ9dGhpcy5fcHJvcGVydGllcy5jaGlsZHMoKS5zZXNzaW9uSWQudmFsdWUoKTtsZXQgcz10O2lmKGUpe2NvbnN0IGU9dGhpcy5zeW1ib2xJbmZvKCk7bnVsbCE9PWUmJihzPWUuc3Vic2Vzc2lvbl9pZHx8dCl9dGhpcy5faWdub3JlU2Vzc2lvbklkUHJveHlQcm9wZXJ0eUNoYW5nZXM9ITAsdGhpcy5fc2Vzc2lvbklkUHJveHlQcm9wZXJ0eS5zZXRWYWx1ZShzKSx0aGlzLl9pZ25vcmVTZXNzaW9uSWRQcm94eVByb3BlcnR5Q2hhbmdlcz0hMX1fb25TZXNzaW9uSWRQcm94eVByb3BlcnR5Q2hhbmdlZCgpe3RoaXMuX2lnbm9yZVNlc3Npb25JZFByb3h5UHJvcGVydHlDaGFuZ2VzfHx0aGlzLl9wcm9wZXJ0aWVzLmNoaWxkcygpLnNlc3Npb25JZC5zZXRWYWx1ZSh0aGlzLl9zZXNzaW9uSWRQcm94eVByb3BlcnR5LnZhbHVlKCkpLHRoaXMuX3VwZGF0ZUxhc3RQcmljZUFuaW1hdGlvbkFjdGl2ZSgpfV9vblN5bWJvbFJlc29sdmVkKGUpe3RoaXMuX3Nlcmllc0Vycm9yTWVzc2FnZT1udWxsLHRoaXMuX3VwZGF0ZVN5bWJvbEluZm8oZSksdGhpcy5fbW9kZWwudXBkYXRlU291cmNlKHRoaXMpLHRoaXMuX21vZGVsLm9uV2lkZ2V0KCl8fCgoMCxtLnRyYWNrRXZlbnQpKCJTeW1ib2wiLGUubGlzdGVkX2V4Y2hhbmdlLGUubmFtZSksKDAsbS50cmFja0V2ZW50KSgiU3ltYm9sIFR5cGUiLGUudHlwZSxlLmxpc3RlZF9leGNoYW5nZSkpO2NvbnN0IHQ9ZS5taW5tb3YvZS5wcmljZXNjYWxlLHM9dGhpcy5wcm9wZXJ0aWVzKCkuY2hpbGRzKCk7ND09PXMuc3R5bGUudmFsdWUoKSYmcy5yZW5rb1N0eWxlLmNoaWxkcygpLmlucHV0cy5jaGlsZHMoKS5ib3hTaXplLnZhbHVlKCk8dD9zLnJlbmtvU3R5bGUuY2hpbGRzKCkuaW5wdXRzLm1lcmdlKHtib3hTaXplOnR9KTo2PT09cy5zdHlsZS52YWx1ZSgpJiZzLnBuZlN0eWxlLmNoaWxkcygpLmlucHV0cy5jaGlsZHMoKS5ib3hTaXplLnZhbHVlKCk8dD9zLnBuZlN0eWxlLmNoaWxkcygpLmlucHV0cy5tZXJnZSh7Ym94U2l6ZTp0fSk6NT09PXMuc3R5bGUudmFsdWUoKSYmcy5rYWdpU3R5bGUuY2hpbGRzKCkuaW5wdXRzLmNoaWxkcygpLnJldmVyc2FsQW1vdW50LnZhbHVlKCk8dCYmcy5rYWdpU3R5bGUuY2hpbGRzKCkuaW5wdXRzLm1lcmdlKHtyZXZlcnNhbEFtb3VudDp0fSksdGhpcy5fY2hlY2tDaGFydFN0eWxlKCksdGhpcy5fZm9ybWF0dGluZ0RlcHM9e2Zvcm1hdDplLmZvcm1hdCxwcmljZXNjYWxlOmUucHJpY2VzY2FsZSxtaW5tb3Y6ZS5taW5tb3YsZnJhY3Rpb25hbDplLmZyYWN0aW9uYWwsbWlubW92ZTI6ZS5taW5tb3ZlMix2YXJpYWJsZV90aWNrX3NpemU6ZS52YXJpYWJsZV90aWNrX3NpemV9LHRoaXMuX3VwZGF0ZUxhc3RQcmljZUFuaW1hdGlvbkFjdGl2ZSgpfV9vblN5bWJvbEVycm9yKGUpe3RoaXMuX3NldFN0YXR1cyg0KSx0aGlzLl9wcm9wZXJ0aWVzLmNoaWxkcygpLnNob3J0TmFtZS5zZXRWYWx1ZSh0aGlzLl9wcm9wZXJ0aWVzLmNoaWxkcygpLnN5bWJvbC52YWx1ZSgpKSx0aGlzLl9tb2RlbC5jbGVhckFsbFN0dWRpZXMoKSx0aGlzLnVwZGF0ZUFsbFZpZXdzKCgwLApmZS5zb3VyY2VDaGFuZ2VFdmVudCkodGhpcy5pZCgpKSksdGhpcy5fbW9kZWwudXBkYXRlU291cmNlKHRoaXMpLHRoaXMuX3NlbmRUZWxlbWV0cnlDb3VudGVyKCJzeW1ib2xfZXJyb3IiLHRoaXMuX2dldFRlbGVtZXRyeUFkZGl0aW9uYWxEYXRhKGUsITEpKSx0aGlzLl9zeW1ib2xSZXNvbHZpbmdBY3RpdmUuc2V0VmFsdWUoITEpfV9zZW5kVGVsZW1ldHJ5Q291bnRlcihlLHQpe3ZvaWQgMD09PXQmJih0PXRoaXMuX2dldFRlbGVtZXRyeUFkZGl0aW9uYWxEYXRhKCkpO2NvbnN0IHM9T2JqZWN0LmFzc2lnbih7Y291bnQ6MX0se2FkZGl0aW9uYWw6dH0pO1cudGVsZW1ldHJ5LnNlbmRDaGFydFJlcG9ydChlLHMpfV9nZXRUZWxlbWV0cnlBZGRpdGlvbmFsRGF0YShlLHQpe3Q9dm9pZCAwPT09dHx8dDtjb25zdCBzPXtzeW1ib2w6dGhpcy5hY3R1YWxTeW1ib2woKX07cmV0dXJuIHQmJihzLnJlc29sdXRpb249dGhpcy5pbnRlcnZhbCgpKSx2b2lkIDAhPT1lJiYocy5yZWFzb249ZSksc31fb25TZXJpZXNUaW1lRnJhbWUoZSx0LHMsaSxuKXtjb25zdCByPSgwLFAuaXNTaW5nbGVWYWx1ZUJhc2VkU3R5bGUpKHRoaXMuc3R5bGUoKSk/ZSsuNTplO2xldCBvPXQ7aWYodm9pZCAwPT09biludWxsIT09cyYmInBlcmlvZC1iYWNrIiE9PXMudHlwZXx8KG8rPXRoaXMuX21vZGVsLnN0dWR5QXdhcmVEZWZhdWx0UmlnaHRPZmZzZXQoKSk7ZWxzZSBpZihuLmFwcGx5RGVmYXVsdFJpZ2h0TWFyZ2luKW8rPXRoaXMuX21vZGVsLnN0dWR5QXdhcmVEZWZhdWx0UmlnaHRPZmZzZXQoKTtlbHNlIGlmKG4ucGVyY2VudFJpZ2h0TWFyZ2luKXtjb25zdCBlPXQtcisxLHM9TWF0aC5tYXgoMCxNYXRoLm1pbiguOTksbi5wZXJjZW50UmlnaHRNYXJnaW4vMTAwKSk7bys9cyplLygxLXMpfXRoaXMuX21vZGVsLnNldFRpbWVWaWV3cG9ydChyLG8pfV9vblNlcmllc0Vycm9yKGUpe2xldCB0PWUuZXJyb3I7Y29uc3Qgcz1lLmN0eDtpZihzKXtjb25zdCBlPXt9O09iamVjdC5rZXlzKHMpLmZvckVhY2goKHQ9PntlW3RdPXNbdF0udG9TdHJpbmcoKX0pKSx0PXQuZm9ybWF0KGUpfWN0JiZodC5sb2dOb3JtYWwoIkVycm9yIHJlYXNvbjogIit0KSx0aGlzLl9zZXJpZXNFcnJvck1lc3NhZ2U9dDtjb25zdCBpPSgwLE5lLmRldGVybWluZVNlcmllc0Vycm9yU3RhdHVzKSh7aGFzRGV0YWlsZWRFcnJvck1hcHBpbmc6ITAsZXJyb3JNZXNzYWdlOnQsbm9CYXJzU3RhdHVzQXZhaWxhYmxlOnV0LGhhc1N5bWJvbEluZm86ISF0aGlzLnN5bWJvbEluZm8oKX0pO3RoaXMuX3NldFN0YXR1cyhpKSx0aGlzLl9zZXJpZXNMb2FkZWQ9ITAsdGhpcy5fc2VuZFRlbGVtZXRyeUNvdW50ZXIoInNlcmllc19lcnJvciIsdGhpcy5fZ2V0VGVsZW1ldHJ5QWRkaXRpb25hbERhdGEodCkpLHRoaXMuX2VuYWJsZVByaWNlUmFuZ2VSZWFkeSgpfV9vblNlcmllc0xvYWRpbmcoZSl7dGhpcy5fc2V0U3RhdHVzKDIpfV9vbkRhdGFVcGRhdGVkKGUsdCxzLGkscil7dCYmciYmdGhpcy5fY29sb3JPblByZXZCYXIoKSYmdGhpcy5fcHJlY29tcHV0ZWRCYXJTdHlsZXMuZGVsZXRlKHIudmFsdWUpO2NvbnN0IG89dGhpcy5zeW1ib2xJbmZvKCk7aWYoaSYmbyl7bGV0IGU9MCx0PTA7aWYoKDAsUC5oYXNWb2x1bWUpKG8pKWZvcihjb25zdCBzIG9mIHRoaXMuYmFycygpLmZ1bGxSYW5nZUl0ZXJhdG9yKCkpe2NvbnN0IGk9cy52YWx1ZVs1XTswIT09aSYmKGUrPWksdCs9MSl9dGhpcy5fdm9sdW1lUG9pbnRXZWlnaHRzPXQ+MD9uZXcgZWUuVm9sdW1lQmFzZWRUaW1lUG9pbnRXZWlnaHRzKGUvdCk6bnVsbCx0aGlzLl91cGRhdGVUaW1lU2NhbGVUaW1lUG9pbnRXZWlnaHRzKCl9aWYobnVsbCE9PXRoaXMuX3ZvbHVtZVBvaW50V2VpZ2h0cyl7Y29uc3QgZT10P3RoaXMuYmFycygpLmZ1bGxSYW5nZUl0ZXJhdG9yKCk6cz90aGlzLmJhcnMoKS5yYW5nZUl0ZXJhdG9yKHMuaW5kZXgsKDAsbi5lbnN1cmVOb3ROdWxsKSh0aGlzLmJhcnMoKS5sYXN0SW5kZXgoKSkpOm51bGw7aWYobnVsbCE9PWUpZm9yKGNvbnN0IHQgb2YgZSl0aGlzLl92b2x1bWVQb2ludFdlaWdodHMuc2V0Vm9sdW1lKHQuaW5kZXgsdC52YWx1ZVs1XSl9dD90aGlzLl9yZXF1ZXN0TW9yZURhdGFBdmFpbGFibGU9ITA6dGhpcy5fbGFzdFByaWNlQW5pbWF0aW9uQWN0aXZlJiZ0aGlzLl9zZXJpZXNMb2FkZWQmJnRoaXMuX2xpbmVTdHlsZUxhc3RQcmljZUNpcmNsZVBhbmVWaWV3LnVwZGF0ZSgoMCxmZS5zb3VyY2VDaGFuZ2VFdmVudCkodGhpcy5pZCgpKSksdGhpcy5fbGFzdEJhckNsb3NlVGltZT1lJiZlLmNsb3NlVGltZXx8bnVsbCx0aGlzLl9ib3hTaXplVmFsdWUuc2V0VmFsdWUodGhpcy5kYXRhKCkuYm94U2l6ZSksdGhpcy5fc3RhdHVzVmlldy51cGRhdGUoKTtjb25zdCBhPXRoaXMuYmFycygpLmZpcnN0SW5kZXgoKSxsPXRoaXMuYmFycygpLmxhc3RJbmRleCgpO251bGwhPT1hJiZudWxsIT09bD90aGlzLl9kYXRhUmFuZ2VVcGRhdGVkLmZpcmUoe3R5cGU6InBhcnRpYWwiLHN0YXJ0SW5kZXg6cz8uaW5kZXg/P2EsZW5kSW5kZXg6dD9yPy5pbmRleD8/bDpsfSk6dGhpcy5fZGF0YVJhbmdlVXBkYXRlZC5maXJlKHt0eXBlOiJmdWxsIn0pLHRoaXMuY2xlYXJBdmVyYWdlUHJpY2VDYWNoZSgpLHRoaXMuY2xlYXJIaWdoTG93UHJpY2VDYWNoZSgpO2NvbnN0IHU9dGhpcy5tb2RlbCgpLGM9KDAsbi5lbnN1cmVOb3ROdWxsKSh1LnBhbmVGb3JTb3VyY2UodGhpcykpO3UucmVjYWxjdWxhdGVQYW5lKGMsKDAsZmUuc291cmNlQ2hhbmdlRXZlbnQpKHtzb3VyY2VJZDp0aGlzLmlkKCkscmVhbHRpbWU6IXQsZmlyc3RVcGRhdGVkVGltZVBvaW50SW5kZXg6cz8uaW5kZXg/P3ZvaWQgMH0pKSx1LnVwZGF0ZVNvdXJjZSh0aGlzKX1fcGxvdHNEYXRhUmFuZ2UoKXtjb25zdCBlPXRoaXMuYmFycygpLmZpcnN0SW5kZXgoKSx0PXRoaXMuYmFycygpLmxhc3RJbmRleCgpO3JldHVybiBudWxsIT09ZSYmbnVsbCE9PXQ/W2UsdF06bnVsbH1fc2V0U3RhdHVzKGUpe2NvbnN0IHQ9ey4uLnRoaXMuX3N0YXR1cy52YWx1ZSgpLHNlcmllc1N0YXR1czplfTt0aGlzLl91cGRhdGVTdGF0dXModCksdGhpcy5fc3RhdHVzVmlldy51cGRhdGUoKSwKdGhpcy5tb2RlbCgpLnVwZGF0ZVNvdXJjZSh0aGlzKSx0aGlzLl9vblN0YXR1c0NoYW5nZWQuZmlyZSgpfV9vbkJhclJlY2VpdmVkKGUpe3RoaXMubW9kZWwoKS5yZWNhbGNWaXNpYmxlUmFuZ2VTdHVkaWVzKHYuUmVjYWxjVmlzaWJsZVJhbmdlU3R1ZGllc1JlYXNvbi5EYXRhVXBkYXRlKX1fb25VbnN1cHBvcnRlZFJlc29sdXRpb25SZXF1ZXN0ZWQoKXtjb25zdCBlPSgwLG4uZW5zdXJlTm90TnVsbCkodGhpcy5fZ2V0U3RhdGVGb3JVbnN1cHBvcnRlZFJlc29sdXRpb24oKSk7dGhpcy5fc2VyaWVzRXJyb3JNZXNzYWdlPWUucmVhc29uLHRoaXMuX3Vuc3VwcG9ydGVkUmVzb2x1dGlvblN0YXRlLnNldFZhbHVlKGUpLHRoaXMuX3NldFN0YXR1cygxNCksdGhpcy5fc2VyaWVzTG9hZGVkPSEwLHRoaXMuY2xlYXJEYXRhKCksdGhpcy5fbW9kZWwudGltZVNjYWxlKCkucG9pbnRzKCkuY2xlYXIoKSx0aGlzLl9lbmFibGVQcmljZVJhbmdlUmVhZHkoKX1fZ2V0U3RhdGVGb3JVbnN1cHBvcnRlZFJlc29sdXRpb24oKXtjb25zdCBlPXRoaXMuc3ltYm9sSW5mbygpO2lmKG51bGw9PT1lKXJldHVybiBudWxsO2NvbnN0IHQ9dGhpcy5pbnRlcnZhbCgpLHM9KDAsT2UuZ2V0UmVzb2x1dGlvblVuc3VwcG9ydGVkUmVhc29uKShlLHQpO2lmKG51bGw9PT1zKXJldHVybiBudWxsO2NvbnN0IGk9ITA7cmV0dXJuKDAsVWUuYnVpbGRVbnN1cHBvcnRlZFJlc29sdXRpb25TdGF0ZSkoe3N5bWJvbEluZm86ZSxyZXNvbHV0aW9uOnQscmVhc29uOnMsaGFzUmVzb2x1dGlvblBvbGljeTppLGlzSW50ZXJuYWxEYXRhRmVlZDohMCxkZWZhdWx0UmVzb2x1dGlvbnM6dGhpcy5fbW9kZWwuZGVmYXVsdFJlc29sdXRpb25zKCksaXNBdXRoZW50aWNhdGVkOiEhd2luZG93LmlzX2F1dGhlbnRpY2F0ZWQsaXNQcm86ISF3aW5kb3cudXNlcj8uaXNfcHJvfSl9X3JlY3JlYXRlRm9ybWF0dGVyKCl7e2NvbnN0IGU9KDAsemUuY3JlYXRlU2VyaWVzRm9ybWF0dGVycykoe2Zvcm1hdHRpbmdEZXBzOnRoaXMuX2Zvcm1hdHRpbmdEZXBzLGFsaWFzRm9ybWF0dGluZ0RlcHM6dGhpcy5hbGlhc1N5bWJvbEluZm8oKSxzeW1ib2xGb3JtYXR0aW5nRGVwczp0aGlzLnN5bWJvbEluZm8oKSxtaW5UaWNrOnRoaXMucHJvcGVydGllcygpLmNoaWxkcygpLm1pblRpY2sudmFsdWUoKX0pO3RoaXMuX2RlZmF1bHRGb3JtYXR0ZXI9ZS5kZWZhdWx0Rm9ybWF0dGVyLHRoaXMuX2Zvcm1hdHRlcj1lLmZvcm1hdHRlcix0aGlzLl9pZ25vcmVNaW5Nb3ZlRm9ybWF0dGVyPWUuaWdub3JlTWluTW92ZUZvcm1hdHRlcn10aGlzLl9wcmljZVNjYWxlPy51cGRhdGVGb3JtYXR0ZXIoKSx0aGlzLl9mb3JtYXR0ZXJDaGFuZ2VkLmZpcmUoKX1fcmVjcmVhdGVQcmljZVN0ZXAoKXtjb25zdHtwcmljZVN0ZXA6ZSxpZ25vcmVNaW5Nb3ZlUHJpY2VTdGVwOnR9PSgwLHplLmNhbGN1bGF0ZVByaWNlU3RlcHMpKHRoaXMuc3ltYm9sSW5mbygpKTt0aGlzLl9pZ25vcmVNaW5Nb3ZlUHJpY2VTdGVwPXQsdGhpcy5fcHJpY2VTdGVwIT09ZSYmKHRoaXMuX3ByaWNlU3RlcD1lLHRoaXMuX3ByaWNlU3RlcENoYW5nZWQuZmlyZSgpKX1fcmVjcmVhdGVQcmljZUZvcm1hdHRpbmdEZXBlbmRlbmNpZXMoKXt0aGlzLl9yZWNyZWF0ZUZvcm1hdHRlcigpLHRoaXMuX3JlY3JlYXRlUHJpY2VTdGVwKCl9X29uUXVvdGVzVXBkYXRlKGUsdCl7e2NvbnN0IHM9dm9pZCAwIT09dC52YWx1ZXMuY2hhbmdlfHx2b2lkIDAhPT10LnZhbHVlcy5jaGFuZ2VfcGVyY2VudDtzJiZwdCYmdGhpcy5fbGVnZW5kVmlldy51cGRhdGUoKTtjb25zdCBpPXZvaWQgMCE9PXQudmFsdWVzLnByZXZfY2xvc2VfcHJpY2U7aSYmKCgwLG4uZW5zdXJlTm90TnVsbCkodGhpcy5fcHJldkNsb3NlUHJpY2VMaW5lVmlldykudXBkYXRlKCgwLGZlLnNvdXJjZUNoYW5nZUV2ZW50KSh0aGlzLmlkKCkpKSwoMCxuLmVuc3VyZU5vdE51bGwpKHRoaXMuX3ByZXZDbG9zZVByaWNlQXhpc1ZpZXcpLnVwZGF0ZSgoMCxmZS5zb3VyY2VDaGFuZ2VFdmVudCkodGhpcy5pZCgpKSkpLChzfHxpKSYmdGhpcy5tb2RlbCgpLnVwZGF0ZVNvdXJjZSh0aGlzKSx0aGlzLl9xdW90ZXNMYXN0U3BsaXRzLnNldFZhbHVlKGUudmFsdWVzLmxhc3Rfc3BsaXRzPz9udWxsKX12b2lkIDAhPT1lLnZhbHVlcy5jdXJyZW50X3Nlc3Npb24mJmUudmFsdWVzLmN1cnJlbnRfc2Vzc2lvbiE9PXRoaXMuX2N1cnJlbnRTZXNzaW9uJiYodGhpcy5fY3VycmVudFNlc3Npb249ZS52YWx1ZXMuY3VycmVudF9zZXNzaW9uLHRoaXMuX3VwZGF0ZUxhc3RQcmljZUFuaW1hdGlvbkFjdGl2ZSgpKX1fdXBkYXRlSXNOb25SZWd1bGFyTWFya2V0UHJpY2VzRm9yYmlkZGVuUHJvcGVydGllcygpe2NvbnN0IGU9dGhpcy5zeW1ib2xJbmZvKCk7e2NvbnN0IHQ9KDAsUC5zeW1ib2xIYXNQcmVPclBvc3RNYXJrZXQpKGUpJiYodGhpcy5pc0RXTSgpfHwhIWUmJigwLFAuaXNSZWd1bGFyU2Vzc2lvbklkKSh0aGlzLnNlc3Npb25JZFByb3h5UHJvcGVydHkoKS52YWx1ZSgpLGUpKTt0aGlzLl9pc1ByZVBvc3RNYXJrZXRQcmljZXNBdmFpbGFibGVQcm9wZXJ0eS5zZXRWYWx1ZSh0KX17Y29uc3QgdD0hdGhpcy5pc0RXTSgpJiYoMCxKLmlzRmVhdHVyZUVuYWJsZWQpKCJzdXBwb3J0X292ZXJuaWdodF9zZXNzaW9uIikmJigwLFAuc3ltYm9sSGFzTmlnaHRNYXJrZXQpKGUpJiYhIWUmJiEoMCxQLmlzU3RvY2syNGhTZXNzaW9uSWQpKHRoaXMuc2Vzc2lvbklkUHJveHlQcm9wZXJ0eSgpLnZhbHVlKCkpJiYhKDAsUC5pc1JlZ3VsYXJTZXNzaW9uSWQpKHRoaXMuc2Vzc2lvbklkUHJveHlQcm9wZXJ0eSgpLnZhbHVlKCksZSk7dGhpcy5faXNPdmVybmlnaHRNYXJrZXRQcmljZXNBdmFpbGFibGVQcm9wZXJ0eS5zZXRWYWx1ZSh0KX19X3VwZGF0ZVNldHRsZW1lbnRBc0Nsb3NlRm9yYmlkZGVuUHJvcGVydHkoKXtjb25zdCBlPXRoaXMuaXNEV00oKSYmQm9vbGVhbih0aGlzLnN5bWJvbEluZm8oKT8uaGFzX3NldHRsZW1lbnQpO3RoaXMuX2lzU2V0dGxlbWVudEFzQ2xvc2VGb3JiaWRkZW5Qcm9wZXJ0eS5zZXRWYWx1ZSghZSl9X3VwZGF0ZUJhY2tBZGp1c3RtZW50Rm9yYmlkZGVuUHJvcGVydHkoKXsKY29uc3QgZT1Cb29sZWFuKHRoaXMuc3ltYm9sSW5mbygpPy5oYXNfYmFja2FkanVzdG1lbnQpO3RoaXMuX2lzQmFja0FkanVzdG1lbnRGb3JiaWRkZW5Qcm9wZXJ0eS5zZXRWYWx1ZSghZSl9X3JlbW92ZVJlcGxheVN1YnNjcmliZXIoKXt7aWYoIXRoaXMuaXNJblJlcGxheSgpLnZhbHVlKCkpcmV0dXJuO2NvbnN0IGU9dGhpcy5fcmVwbGF5U3Vic2NyaWJlci52YWx1ZSgpO3RoaXMuX3JlcGxheVN1YnNjcmliZXIuc2V0VmFsdWUobnVsbCksdGhpcy5faXNSZXBsYXlSZXNvbHV0aW9uQXZhaWxhYmxlRm9yVXNlcj1udWxsLHRoaXMuX29uSW5SZXBsYXlTdGF0ZUNoYW5nZWQuZmlyZSgpLGU/Lm9uU2VyaWVzTW9kaWZpZWQoKS51bnN1YnNjcmliZUFsbCh0aGlzKSxlPy5kZXN0cm95KCl9fV9nZXRTeW1ib2xGb3JBcGkoKXtyZXR1cm4gdGhpcy5zeW1ib2woKX1fZ2V0U3ltYm9sT2JqZWN0KGUsdCxzKXtjb25zdCBpPXRoaXMuX2dldEV4dGVuZGVkU3ltYm9sT2JqZWN0KHtvdmVycmlkZGVuU3ltYm9sOmUsc2tpcFNhdmVkTWV0cmljOnMsZG9Ob3RBZGRVbnN1cHBvcnRlZE9uQ3VycmVudFN5bWJvbEZpZWxkczp0fSksbj10aGlzLnByb3BlcnRpZXMoKS5jaGlsZHMoKS5zdHlsZS52YWx1ZSgpO2lmKEkuU1lNQk9MX1NUUklOR19EQVRBLmhhc093blByb3BlcnR5KG4pJiYhSS5jaGFydFN0eWxlc1dpdGhBdHRhY2hlZFN0dWRpZXMuaW5jbHVkZXMobikpe3JldHVybntzeW1ib2w6aSx0eXBlOnRoaXMuc3R5bGVTdHVkeUluZm8odGhpcy5nZXRTdHlsZVNob3J0TmFtZSgpKyJTdHlsZSIpLnN0dWR5SWQrIiEiLGlucHV0czp0aGlzLmdldElucHV0c1Byb3BlcnRpZXMoKS5zdGF0ZSgpfX1yZXR1cm4gaX1fZ2V0RXh0ZW5kZWRTeW1ib2xPYmplY3QoZT17fSl7Y29uc3R7b3ZlcnJpZGRlblN5bWJvbDp0LHNraXBNZXRyaWM6cyxza2lwU2F2ZWRNZXRyaWM6aSxkb05vdEFkZFVuc3VwcG9ydGVkT25DdXJyZW50U3ltYm9sRmllbGRzOnJ9PWUsbz17c3ltYm9sOnQ/P3RoaXMuX2dldFN5bWJvbEZvckFwaSgpfSxhPXRoaXMucHJvcGVydGllcygpLmNoaWxkcygpLGw9dGhpcy5jdXJyZW5jeSgpO251bGwhPT1sJiYob1siY3VycmVuY3ktaWQiXT1sKTtjb25zdCB1PXRoaXMudW5pdCgpO2lmKHRoaXMuX21vZGVsLnVuaXRDb252ZXJzaW9uRW5hYmxlZCgpJiZudWxsIT09dSYmKG9bInVuaXQtaWQiXT11KSx0aGlzLl9tb2RlbC5tZXRyaWNDb252ZXJzaW9uRW5hYmxlZCgpJiYhcyl7bGV0IGU9dGhpcy5tZXRyaWMoKTtpfHxudWxsIT09ZXx8bnVsbCE9PXRoaXMuc3ltYm9sSW5mbygpfHwoZT0oMCxQLmdldExhc3RVc2VkTWV0cmljKSgpKSxudWxsIT09ZSYmKG8ubWV0cmljPWUpfXRoaXMuaXNEV00oKXx8KG8uc2Vzc2lvbj1hLnNlc3Npb25JZC52YWx1ZSgpKTt7Y29uc3QgZT10aGlzLnN5bWJvbEluZm8oKSx0PWU/LmFsbG93ZWRfYWRqdXN0bWVudD8/Im5vbmUiLHM9ImFueSI9PT10fHwiZGl2aWRlbmRzIj09PXQsaT0iYW55Ij09PXR8fCJzcGxpdHMiPT09dDtyP2E/LmRpdmlkZW5kc0FkanVzdG1lbnQ/LnZhbHVlKCkmJnM/by5hZGp1c3RtZW50PSJkaXZpZGVuZHMiOmkmJihvLmFkanVzdG1lbnQ9InNwbGl0cyIpOm8uYWRqdXN0bWVudD0oMCxuLmVuc3VyZURlZmluZWQpKGEuZGl2aWRlbmRzQWRqdXN0bWVudCkudmFsdWUoKT8iZGl2aWRlbmRzIjoic3BsaXRzIiwhYS5iYWNrQWRqdXN0bWVudC52YWx1ZSgpfHxyJiYhZT8uaGFzX2JhY2thZGp1c3RtZW50fHwoby5iYWNrYWRqdXN0bWVudD0iZGVmYXVsdCIpLGEuc2V0dGxlbWVudEFzQ2xvc2UudmFsdWUoKXx8ciYmIWU/Lmhhc19zZXR0bGVtZW50fHwob1sic2V0dGxlbWVudC1hcy1jbG9zZSJdPSExKX1yZXR1cm4gb31fY2hlY2tDaGFydFN0eWxlKCl7Y29uc3QgZT10aGlzLnN0eWxlKCk7KDAsUC5pc0Nsb3NlQmFzZWRTeW1ib2wpKHRoaXMuc3ltYm9sSW5mbygpKXx8dGhpcy5pbnRlcnZhbE9iaigpLnZhbHVlKCkuaXMxVGljaygpPygwLFAuaXNTaW5nbGVWYWx1ZUJhc2VkU3R5bGUpKGUpfHwodGhpcy5yZXF1ZXN0aW5nU3R5bGVJc05vdFN1cHBvcnRlZC5maXJlKCksdGhpcy5fc3R5bGVUb1JlY292ZXI9e2NvcnJlY3RlZFN0eWxlOnRoaXMuc3R5bGUoKSxvcmlnaW5hbFN0eWxlOmV9KToiaGxjIj09PXRoaXMuc3ltYm9sSW5mbygpPy52aXNpYmxlX3Bsb3RzX3NldD8oMCxQLmlzSExDQmFzZWRTdHlsZSkoZSl8fCgwLFAuaXNTaW5nbGVWYWx1ZUJhc2VkU3R5bGUpKGUpfHwodGhpcy5yZXF1ZXN0aW5nU3R5bGVJc05vdFN1cHBvcnRlZC5maXJlKCksdGhpcy5fc3R5bGVUb1JlY292ZXI9e2NvcnJlY3RlZFN0eWxlOnRoaXMuc3R5bGUoKSxvcmlnaW5hbFN0eWxlOmV9KTpudWxsIT09dGhpcy5fc3R5bGVUb1JlY292ZXImJih0aGlzLnJlcXVlc3RpbmdTdHlsZVN1cHBvcnRSZWNvdmVyZWQuZmlyZSh0aGlzLl9zdHlsZVRvUmVjb3Zlci5vcmlnaW5hbFN0eWxlKSx0aGlzLl9zdHlsZVRvUmVjb3Zlcj1udWxsKX1fdXBkYXRlU3ltYm9sSW5mbyhlKXtpZihlKXtjb25zdCB0PXRoaXMuX2dldFJlc29sdmluZ1N5bWJvbE9iamVjdCgpLHM9dGhpcy5fcHJvcGVydGllcy5jaGlsZHMoKSxuPSgwLFAuc3ltYm9sQ3VycmVuY3kpKGUpLHI9KDAsUC5zeW1ib2xVbml0KShlLHRoaXMuX21vZGVsLnVuaXRDb252ZXJzaW9uRW5hYmxlZCgpKSxvPSgwLFAuc3ltYm9sTWV0cmljKShlLHRoaXMuX21vZGVsLm1ldHJpY0NvbnZlcnNpb25FbmFibGVkKCkpOyJhbHdheXNPZmYiPT09KDAseC5jdXJyZW5jeVVuaXRNZXRyaWNWaXNpYmlsaXR5UHJvcGVydHkpKCkudmFsdWUoKXx8bj09PXMuY3VycmVuY3lJZC52YWx1ZSgpJiZyPT09cy51bml0SWQudmFsdWUoKXx8dGhpcy5fbW9kZWwuZnVsbFVwZGF0ZSgpO2NvbnN0IGE9biE9PXMuY3VycmVuY3lJZC52YWx1ZSgpLGw9ciE9PXMudW5pdElkLnZhbHVlKCksdT1vIT09cy5tZXRyaWNJZC52YWx1ZSgpO3MuY3VycmVuY3lJZC5zZXRWYWx1ZVNpbGVudGx5KG4pLHMudW5pdElkLnNldFZhbHVlU2lsZW50bHkocikscy5tZXRyaWNJZC5zZXRWYWx1ZVNpbGVudGx5KG8pLHRoaXMuX3N5bWJvbEluZm8uc2V0VmFsdWUoZSksCnMuc2hvcnROYW1lLnNldFZhbHVlKGUubmFtZSk7Y29uc3QgYz0oMCxULmV4dHJhY3RTeW1ib2xOYW1lRnJvbVN5bWJvbEluZm8pKGUsdGhpcy5zeW1ib2woKSk7YyYmcy5zeW1ib2wuc2V0VmFsdWUoYyksYSYmcy5jdXJyZW5jeUlkLmZpcmVDaGFuZ2VkKCksbCYmcy51bml0SWQuZmlyZUNoYW5nZWQoKSx1JiZzLm1ldHJpY0lkLmZpcmVDaGFuZ2VkKCk7Y29uc3QgZD10aGlzLl9nZXRSZXNvbHZpbmdTeW1ib2xPYmplY3QoKSxoPXRoaXMuX3Nlcmllc1NvdXJjZS5zeW1ib2woKTsoMCxpLmRlZmF1bHQpKHQsaCkmJiEoMCxpLmRlZmF1bHQpKGQsaCkmJnRoaXMuX3Nlcmllc1NvdXJjZS51cGRhdGVFeHRTeW1ib2woZCksdGhpcy5fdXBkYXRlU2Vzc2lvbklkUHJveHlQcm9wZXJ0eSghMCl9ZWxzZSB0aGlzLl9zeW1ib2xJbmZvLnNldFZhbHVlKG51bGwpO2NvbnN0IHQ9dGhpcy5hbGlhc1N5bWJvbEluZm8oKTt0aGlzLl9iYXNlPXQ/dC5wcmljZXNjYWxlL3QubWlubW92OjEwMCx0aGlzLl9wb2ludFZhbHVlPWUmJmUucG9pbnR2YWx1ZXx8MTtjb25zdCBzPXRoaXMuZ2V0UXVvdGVzU3ltYm9sU3RyaW5nKCk7cyE9PXRoaXMuX3F1b3Rlc1Byb3ZpZGVyLnN5bWJvbCgpJiZ0aGlzLl9xdW90ZXNMYXN0U3BsaXRzLnNldFZhbHVlKG51bGwpLHRoaXMuX3F1b3Rlc1Byb3ZpZGVyLnNldFF1b3Rlc1Nlc3Npb25TeW1ib2wocyksdGhpcy5fbWFya2V0U3RhdHVzTW9kZWwuc2V0U3ltYm9sSW5mbyhlKSxlJiZ0aGlzLl9yZWNyZWF0ZVByaWNlRm9ybWF0dGluZ0RlcGVuZGVuY2llcygpLHRoaXMuX3N0YXR1c1ZpZXcudXBkYXRlKCksdGhpcy5wcmljZVNjYWxlKCkudXBkYXRlRm9ybWF0dGVyKCksdGhpcy5fc3ltYm9sUmVzb2x2aW5nQWN0aXZlLnNldFZhbHVlKCFlKSx0aGlzLl91cGRhdGVJc05vblJlZ3VsYXJNYXJrZXRQcmljZXNGb3JiaWRkZW5Qcm9wZXJ0aWVzKCksdGhpcy5fZGF0YVBvd2VyZWRCeT0oMCxOLmdldERhdGFWZW5kb3JTdHJpbmcpKGUpLHRoaXMuX3VwZGF0ZUJhY2tBZGp1c3RtZW50Rm9yYmlkZGVuUHJvcGVydHkoKSx0aGlzLl91cGRhdGVTZXR0bGVtZW50QXNDbG9zZUZvcmJpZGRlblByb3BlcnR5KCl9X2NyZWF0ZUhpZ2hMb3dBdmdWaWV3cygpe2NvbnN0IGU9dGhpcy5wcm9wZXJ0aWVzKCkuY2hpbGRzKCkuaGlnaExvd0F2Z1ByaWNlLHQ9dGhpcy5fZ2V0SGlnaExvd1ByaWNlLmJpbmQodGhpcykscz0oMCxhZS5jcmVhdGVIaWdoTG93Vmlld3MpKHRoaXMuX21vZGVsLHRoaXMsZSx0KTt0aGlzLl9oaWdoTG93QXZnUGFuZVZpZXdzLnB1c2goLi4ucy5wYW5lVmlld3MpLHRoaXMuX2xhYmVsUGFuZVZpZXdzLnB1c2goLi4ucy5wYW5lUHJpY2VBeGlzVmlld3MpLHRoaXMuX3ByaWNlQXhpc1ZpZXdzLnB1c2goLi4ucy5wcmljZUF4aXNWaWV3cyksdGhpcy5fcHJpY2VMaW5lQXhpc1ZpZXdzLnB1c2goLi4ucy5wcmljZUxpbmVBeGlzVmlld3MpfV9jcmVhdGVBdmVyYWdlVmlld3MoKXt9X2dldEhpZ2hMb3dQcmljZShlKXtpZighdGhpcy5faGlnaExvd1ByaWNlQ2FjaGUuaGFzKGUpKXtjb25zdCBlPXRoaXMuX21vZGVsLnRpbWVTY2FsZSgpLnZpc2libGVCYXJzU3RyaWN0UmFuZ2UoKTtpZihudWxsPT09ZSlyZXR1cm4gbnVsbDtjb25zdCB0PWZ1bmN0aW9uKGUsdCxzKXtyZXR1cm4gZS5taW5NYXhPblJhbmdlQ2FjaGVkKHQscyxbe25hbWU6ImxvdyIsb2Zmc2V0OjB9LHtuYW1lOiJoaWdoIixvZmZzZXQ6MH1dKX0odGhpcy5fbW9kZWwubWFpblNlcmllcygpLmJhcnMoKSxlLmZpcnN0QmFyKCksZS5sYXN0QmFyKCkpO2lmKG51bGw9PT10KXJldHVybiBudWxsO3RoaXMuX2hpZ2hMb3dQcmljZUNhY2hlLnNldCgxLHQubWluKSx0aGlzLl9oaWdoTG93UHJpY2VDYWNoZS5zZXQoMCx0Lm1heCl9cmV0dXJuIHRoaXMuX2hpZ2hMb3dQcmljZUNhY2hlLmdldChlKX1fZ2V0QXZlcmFnZVByaWNlKGUpe3JldHVybiBudWxsfV91cGRhdGVDb21wbGV0ZVN0YXR1c01vZGUoZSl7c3dpdGNoKGU9InB1bHNlZCI9PT1lPyJkZWxheWVkIjplKXtjYXNlInN0cmVhbWluZyI6dGhpcy5fc2V0U3RhdHVzKDMpO2JyZWFrO2Nhc2UiZW5kb2ZkYXkiOnRoaXMuX3NldFN0YXR1cyg2KTticmVhaztjYXNlImRlbGF5ZWQiOnRoaXMuX3NldFN0YXR1cyg4KTticmVhaztjYXNlInJlcGxheSI6dGhpcy5fc2V0U3RhdHVzKDExKX1lLm1hdGNoKC9kZWxheWVkX3N0cmVhbWluZy8pJiZ0aGlzLl9zZXRTdGF0dXMoOSl9X29uU2VyaWVzQ29tcGxldGVkKGUpe2lmKDE0PT09dGhpcy5fc3RhdHVzLnZhbHVlKCkuc2VyaWVzU3RhdHVzKXJldHVybjt0aGlzLl9zZW5kVGVsZW1ldHJ5Q291bnRlcigic2VyaWVzX2xvYWRlZCIsdGhpcy5fZ2V0VGVsZW1ldHJ5QWRkaXRpb25hbERhdGEoKSksdGhpcy5fc2VyaWVzRXJyb3JNZXNzYWdlPW51bGwsdGhpcy5fdXBkYXRlQ29tcGxldGVTdGF0dXNNb2RlKGUudXBkYXRlTW9kZSksdGhpcy5fbGFzdENvbXBsZXRlRmxhZ3M9ZS5mbGFncz8/bnVsbDtjb25zdCB0PSgwLG4uZW5zdXJlTm90TnVsbCkodGhpcy5fbW9kZWwucGFuZUZvclNvdXJjZSh0aGlzKSk7dC5yZWNhbGN1bGF0ZVByaWNlU2NhbGUodGhpcy5wcmljZVNjYWxlKCksKDAsZmUuc291cmNlQ2hhbmdlRXZlbnQpKHRoaXMuaWQoKSkpO2NvbnN0IGk9X2UuSW52YWxpZGF0aW9uTWFzay5mdWxsKCk7aWYobnVsbCE9PXRoaXMuX21vZGVsLmFwcGxpZWRUaW1lRnJhbWUoKS52YWx1ZSgpJiZpLmxvY2tWaXNpYmxlVGltZVJhbmdlT25SZXNpemUoKSx0aGlzLl9tb2RlbC5pbnZhbGlkYXRlKGkpLCF0aGlzLnByaWNlU2NhbGUoKS5pc0xvY2tTY2FsZSgpfHx0aGlzLm1vZGVsKCkudGltZVNjYWxlKCkuaXNFbXB0eSgpfHx0aGlzLl9zZXJpZXNMb2FkZWR8fCh0aGlzLm1vZGVsKCkudGltZVNjYWxlKCkuY29ycmVjdE9mZnNldCgpLHRoaXMubW9kZWwoKS50aW1lU2NhbGUoKS5jb3JyZWN0QmFyU3BhY2luZygpLHRoaXMubW9kZWwoKS5yZXNldFByaWNlU2NhbGUodCx0aGlzLnByaWNlU2NhbGUoKSkpLHRoaXMuX3Nlcmllc0xvYWRlZD0hMCx0aGlzLl9zZXJpZXNDb21wbGV0ZWQ9ITAsCnRoaXMubW9kZWwoKS5yZWNhbGNWaXNpYmxlUmFuZ2VTdHVkaWVzKHYuUmVjYWxjVmlzaWJsZVJhbmdlU3R1ZGllc1JlYXNvbi5TZXJpZXNDb21wbGV0ZWQpLHRoaXMubW9kZWwoKS5yZWNhbGNTdHVkeUJhc2VkTGluZVRvb2xzKCksIW10KXttdD0hMDsoMCxzKDc2MDA5OCkudHJhY2tUaW1pbmcpKCJDaGFydCIsIlRpbWUgdG8gc2VyaWVzIix3aW5kb3cucGVyZm9ybWFuY2Uubm93KCkpfWlmKHRoaXMucmVxdWVzdE1vcmVEYXRhKCksbnVsbCE9PXRoaXMuX3NhdmVkTGVmdEVkZ2UmJjIhPT10aGlzLl9zdGF0dXMudmFsdWUoKS5zZXJpZXNTdGF0dXMpe2NvbnN0IGU9MWUzKnRoaXMuX3NhdmVkTGVmdEVkZ2UsdD10aGlzLl9wZW5kaW5nU2Nyb2xsVG9MZWZ0RWRnZTtzZXRUaW1lb3V0KCgoKT0+e3RoaXMuX21vZGVsLnN5bmNUaW1lV2l0aE1vZGVsKCgwLG4uZW5zdXJlTm90TnVsbCkodGhpcy5zeW5jTW9kZWwoKSkuc3luY1NvdXJjZVRhcmdldCgpLGUse3RhcmdldFBvaW50QWxpZ25tZW50OiJsZWZ0IixhbGlnbklmVGFyZ2V0UG9pbnRJc1Zpc2libGU6ITAsYXV0b3NjYWxlQWZ0ZXJTY3JvbGw6ITF9KS50aGVuKCgoKT0+e3Q/LnJlc29sdmUoKX0pKS5jYXRjaCgoKCk9Pnt9KSl9KSwwKSx0aGlzLl9zYXZlZExlZnRFZGdlPW51bGwsdGhpcy5fcGVuZGluZ1Njcm9sbFRvTGVmdEVkZ2U9bnVsbH10aGlzLl9lbmFibGVQcmljZVJhbmdlUmVhZHkoKX1fb25TZXJpZXNEYXRhQ2xlYXJlZCgpe3RoaXMuX2RhdGFSYW5nZVVwZGF0ZWQuZmlyZSh7dHlwZToiZnVsbCJ9KX1fbm90aWZ5SW50ZXJ2YWxDaGFuZ2VkKGUpe2NvbnN0IHQ9e3RpbWVmcmFtZTp0aGlzLl9wZW5kaW5nVGltZVJhbmdlPz92b2lkIDB9O3RoaXMuX2ludGVydmFsQ2hhbmdlZC5maXJlKGUsdCksdGhpcy5fcGVuZGluZ1RpbWVSYW5nZT10LnRpbWVmcmFtZT8/bnVsbH1fb25DdXJyZW5jeUNoYW5nZWQoKXt0aGlzLl9jdXJyZW5jeUNoYW5nZWQuZmlyZSgpfV9vblVuaXRDaGFuZ2VkKCl7dGhpcy5fdW5pdENoYW5nZWQuZmlyZSgpfV9vbk1ldHJpY0NoYW5nZWQoKXt0aGlzLl9tZXRyaWNDaGFuZ2VkLmZpcmUoKX1fc2F2ZUxlZnRFZGdlSWZSZXF1aXJlZChlLHQ9bnVsbCl7aWYodGhpcy5fc2F2ZWRMZWZ0RWRnZT1udWxsLCF0JiYhZSYmdGhpcy5fbW9kZWwucHJvcGVydGllcygpLmNoaWxkcygpLnNjYWxlc1Byb3BlcnRpZXMuY2hpbGRzKCkuc2F2ZUxlZnRFZGdlLnZhbHVlKCkpe2NvbnN0IGU9dGhpcy5fbW9kZWwudGltZVNjYWxlKCk7aWYoIWUuaXNFbXB0eSgpKXtsZXQgdD1lLnZpc2libGVCYXJzU3RyaWN0UmFuZ2UoKT8uZmlyc3RCYXIoKTtpZih2b2lkIDAhPT10KXtjb25zdCBzPXRoaXMuX3Nlcmllc1NvdXJjZS5kYXRhKCk/LmJhcnMoKS5maXJzdCgpO3JldHVybiBudWxsIT1zJiYodD1NYXRoLm1heCh0LHMuaW5kZXgpKSx0aGlzLl9zYXZlZExlZnRFZGdlPWUuaW5kZXhUb1RpbWVQb2ludCh0KSx0aGlzLl9wZW5kaW5nU2Nyb2xsVG9MZWZ0RWRnZT0oMCx5LmNyZWF0ZURlZmVycmVkUHJvbWlzZSkoKSwhMH19fXJldHVybiExfWFzeW5jIF9wcm9jZXNzUmVwbGF5T25BcHBseVN5bWJvbFBhcmFtc0NoYW5nZXMoZSx0KXtpZih0aGlzLmlzSW5SZXBsYXkoKS52YWx1ZSgpKXtjb25zdCBzPSgpPT50aGlzLl9yZW1vdmVSZXBsYXlTdWJzY3JpYmVyKCk7ZSYmKGMuSW50ZXJ2YWwuaXNSYW5nZSh0KT9zKCk6KDAsbi5lbnN1cmVOb3ROdWxsKSh0aGlzLl9pc1JlcGxheVJlc29sdXRpb25BdmFpbGFibGVGb3JVc2VyKSh0KT9hd2FpdCB0aGlzLmNhbkNoYW5nZVJlc29sdXRpb24odCl8fHMoKToocygpLHRoaXMuX3BhcmFtc05vdEFwcGxpY2FibGVGb3JSZXBsYXkuZmlyZSgzLCJjaGFuZ2VSZXNvbHV0aW9uIikpKX19YXN5bmMgX2FwcGx5U3ltYm9sUGFyYW1zQ2hhbmdlcyhlKXt0aGlzLl9sYXN0Q29tcGxldGVGbGFncz1udWxsLHRoaXMuY2xlYXJHb3RvRGF0ZVJlc3VsdCgpO2NvbnN0IHQ9dGhpcy5pbnRlcnZhbCgpLHM9dGhpcy5jdXJyZW5jeSgpLGk9dGhpcy51bml0KCksbj10aGlzLm1ldHJpYygpO2MuSW50ZXJ2YWwuaXNSYW5nZSh0KSYmdGhpcy5fcHJvcGVydGllcy5jaGlsZHMoKS5yYW5nZVN0eWxlLmNoaWxkcygpLmlucHV0cy5jaGlsZHMoKS5yYW5nZS5zZXRWYWx1ZShjLkludGVydmFsLnBhcnNlKHQpLm11bHRpcGxpZXIoKSk7Y29uc3R7c3ltYm9sQ2hhbmdlZDpyLGludGVydmFsQ2hhbmdlZDpvLGN1cnJlbmN5Q2hhbmdlZDphLHVuaXRDaGFuZ2VkOmwsbWV0cmljQ2hhbmdlZDp1LGZvcmNlOmR9PWUsaD1vJiZjLkludGVydmFsLnBhcnNlKHRoaXMuX3ByZXZSZXF1ZXN0ZWRJbnRlcnZhbCkuaXNEV00oKSE9PWMuSW50ZXJ2YWwucGFyc2UodCkuaXNEV00oKTtpZigobnVsbCE9PXMmJmF8fG51bGwhPT1pJiZsfHxudWxsIT09biYmdSkmJnRoaXMuaXNJblJlcGxheSgpLnZhbHVlKCkpe2NvbnN0IGU9dGhpcy5zeW1ib2xJbmZvKCk7KG51bGw9PT1lfHxudWxsIT09cyYmZS5vcmlnaW5hbF9jdXJyZW5jeV9pZCE9PXN8fG51bGwhPT1pJiZlLm9yaWdpbmFsX3VuaXRfaWQhPT1pKSYmdGhpcy5fcmVtb3ZlUmVwbGF5U3Vic2NyaWJlcigpfWlmKHRoaXMuX3N5bmNNb2RlbD1udWxsLHRoaXMuX3ByZXZSZXF1ZXN0ZWRJbnRlcnZhbD10LDUhPT10aGlzLl9zdGF0dXMudmFsdWUoKS5zZXJpZXNTdGF0dXMmJighdGhpcy5fc2VyaWVzU291cmNlLmlzU3RhcnRlZCgpfHxyfHxhfHxsfHx1fHxoKSYmdGhpcy5fdXBkYXRlU3ltYm9sSW5mbyhudWxsKSx0aGlzLl9wcm9jZXNzUmVwbGF5T25BcHBseVN5bWJvbFBhcmFtc0NoYW5nZXMoISFvLHQpLDU9PT10aGlzLl9zdGF0dXMudmFsdWUoKS5zZXJpZXNTdGF0dXMpcmV0dXJuIHZvaWQgdGhpcy5fcmVhbGlnbkxpbmVUb29scygpO3RoaXMuX3NldFN0YXR1cygxKSx0aGlzLl91cGRhdGVJc05vblJlZ3VsYXJNYXJrZXRQcmljZXNGb3JiaWRkZW5Qcm9wZXJ0aWVzKCksdGhpcy5fdXBkYXRlQmFja0FkanVzdG1lbnRGb3JiaWRkZW5Qcm9wZXJ0eSgpLHRoaXMuX3VwZGF0ZVNldHRsZW1lbnRBc0Nsb3NlRm9yYmlkZGVuUHJvcGVydHkoKSx0aGlzLl9zeW1ib2xJbnRlcnZhbENoYW5nZWQuZmlyZSgpLApvJiZ0aGlzLl9ub3RpZnlJbnRlcnZhbENoYW5nZWQodCksdGhpcy5fb25SZXN0YXJ0ZWQuZmlyZSgpLHRoaXMuX3Nlcmllc0xvYWRlZD0hMSx0aGlzLl9zZXJpZXNDb21wbGV0ZWQ9ITEsdGhpcy5fbGluZVN0eWxlTGFzdFByaWNlQ2lyY2xlUGFuZVZpZXcuc3RvcEFuaW1hdGlvbigpO2xldCBtPW51bGw7dGhpcy5fcGVuZGluZ1RpbWVSYW5nZSYmKG09dGhpcy5fcGVuZGluZ1RpbWVSYW5nZSx0aGlzLl9wZW5kaW5nVGltZVJhbmdlPW51bGwpLHRoaXMuX29uVGltZUZyYW1lQXBwbGllZC5maXJlKG0pLHRoaXMuX29uQmVmb3JlTW9kaWZ5U2VyaWVzKHRoaXMuZ2V0U3ltYm9sU3RyaW5nKCksdCk7Y29uc3QgXz10aGlzLl9zaG91bGREZWZpbmVOdW1iZXJPZkJhcnNGb3JNb2RpZnlTZXJpZXMoZSkmJnRoaXMuX3Zpc2libGVCYXJzQ291bnQoKXx8bnVsbDt0aGlzLm1vZGVsKCkucmVjYWxjVmlzaWJsZVJhbmdlU3R1ZGllcyh2LlJlY2FsY1Zpc2libGVSYW5nZVN0dWRpZXNSZWFzb24uU2VyaWVzUmVzdGFydCksdGhpcy5fc2F2ZUxlZnRFZGdlSWZSZXF1aXJlZCghIXIsbSksdGhpcy5fZGF0YT1udWxsLHRoaXMuX3Nlcmllc1NvdXJjZS5tb2RpZnlTZXJpZXModGhpcy5fZ2V0UmVzb2x2aW5nU3ltYm9sT2JqZWN0KCksKDAscC5nZXRTZXJ2ZXJJbnRlcnZhbCkodCksbSxkLF8pLHRoaXMuX3Nlcmllc1NvdXJjZS5pc1N0YXJ0ZWQoKXx8KHRoaXMuX3ByZWRpY3RCYXJzPTAsdGhpcy5fc2VyaWVzU291cmNlLnN0YXJ0KCkpLChyfHxhfHxsKSYmdGhpcy5kaXNhYmxlUHJpY2VSYW5nZVJlYWR5KCksdGhpcy51cGRhdGVBbGxWaWV3cygoMCxmZS5zb3VyY2VDaGFuZ2VFdmVudCkodGhpcy5pZCgpKSksdGhpcy5fbW9kZWwubGlnaHRVcGRhdGUoKSx0aGlzLl9wZW5kaW5nU2Nyb2xsVG9MZWZ0RWRnZSYmYXdhaXQgdGhpcy5fcGVuZGluZ1Njcm9sbFRvTGVmdEVkZ2UucHJvbWlzZX1fcmVhbGlnbkxpbmVUb29scygpe3RoaXMubW9kZWwoKS5yZWFsaWduTGluZVRvb2xzKCl9YXN5bmMgX29uQmVmb3JlTW9kaWZ5U2VyaWVzKGUsdCl7Y29uc3Qgcz10aGlzLl9yZXBsYXlTdWJzY3JpYmVyLnZhbHVlKCk7cz8ubW9kaWZ5U2VyaWVzKGUsdCl9X2dldFJlc29sdmluZ1N5bWJvbE9iamVjdCgpe2xldCBlPXRoaXMuX2dldFN5bWJvbE9iamVjdCh0aGlzLl9zeW1ib2xGb3JSZXNvbHZlKCkpO2NvbnN0IHQ9dGhpcy5fcmVwbGF5U3Vic2NyaWJlci52YWx1ZSgpO3JldHVybiB0JiYoZT10LmdlbmVyYXRlUmVwbGF5U3ltYm9sKGUpKSxlfV9vblNlc3Npb25JZFByb3BlcnR5Q2hhbmdlZCgpe3RoaXMuX3Nlc3Npb25JZENoYW5nZWQuZmlyZSgpLHRoaXMuaXNEV00oKXx8KHRoaXMuX3NhdmVMZWZ0RWRnZUlmUmVxdWlyZWQoITEpLHRoaXMucmVzdGFydCghMCksdGhpcy5fdXBkYXRlTGFzdFByaWNlQW5pbWF0aW9uQWN0aXZlKCkpLHRoaXMuX3N5bmNNb2RlbD1udWxsfV9zdWJzY3JpYmVSZXN0YXJ0VG9TZXNzaW9uSWRDaGFuZ2UoKXt0aGlzLnByb3BlcnRpZXMoKS5jaGlsZHMoKS5zZXNzaW9uSWQuc3Vic2NyaWJlKHRoaXMsdGhpcy5fb25TZXNzaW9uSWRQcm9wZXJ0eUNoYW5nZWRCb3VuZCl9X3Vuc3Vic2NyaWJlUmVzdGFydFRvU2Vzc2lvbklkQ2hhbmdlKCl7dGhpcy5wcm9wZXJ0aWVzKCkuY2hpbGRzKCkuc2Vzc2lvbklkLnVuc3Vic2NyaWJlKHRoaXMsdGhpcy5fb25TZXNzaW9uSWRQcm9wZXJ0eUNoYW5nZWRCb3VuZCl9X3VwZGF0ZUxhc3RQcmljZUFuaW1hdGlvbkFjdGl2ZSgpe2lmKCF0aGlzLl9vcHRpb25zLmxhc3RQcmljZUFuaW1hdGlvbkVuYWJsZWR8fCgwLGcuaXNGZWF0dXJlc2V0RW5hYmxlZCkoImRpc2FibGVfcHVsc2VfYW5pbWF0aW9uIikpcmV0dXJuO2NvbnN0IGU9dGhpcy5fbGFzdFByaWNlQW5pbWF0aW9uQWN0aXZlLHQ9dGhpcy5wcm9wZXJ0aWVzKCkuY2hpbGRzKCkscz10aGlzLnN5bWJvbEluZm8oKTt0aGlzLl9sYXN0UHJpY2VBbmltYXRpb25BY3RpdmU9KDAsV2UuaXNMYXN0UHJpY2VBbmltYXRpb25BY3RpdmUpKHtzdHlsZTp0LnN0eWxlLnZhbHVlKCksdmlzaWJsZTp0LnZpc2libGUudmFsdWUoKSxpc1NuYXBzaG90OnRoaXMuX21vZGVsLmlzU25hcHNob3QoKSxoYXNTeW1ib2xJbmZvOiEhcyxpc1JlZ3VsYXJTZXNzaW9uOiFzfHwoMCxQLmlzUmVndWxhclNlc3Npb25JZCkodGhpcy5zZXNzaW9uSWRQcm94eVByb3BlcnR5KCkudmFsdWUoKSxzKSxpc0RXTTp0aGlzLmlzRFdNKCksY3VycmVudFNlc3Npb246dGhpcy5jdXJyZW50U2Vzc2lvbigpfSksdGhpcy5fbGFzdFByaWNlQW5pbWF0aW9uQWN0aXZlJiZlIT09dGhpcy5fbGFzdFByaWNlQW5pbWF0aW9uQWN0aXZlJiZ0aGlzLm1vZGVsKCkuaW52YWxpZGF0ZShfZS5JbnZhbGlkYXRpb25NYXNrLmN1cnNvcigpKX1fb25Qcm9wZXJ0aWVzQ2hhbmdlZChlKXtjb25zdCB0PXRoaXMuX3Byb3BlcnRpZXMuY2hpbGRzKCk7aWYoZT09PXQuc3ltYm9sfHxlPT09dC5pbnRlcnZhbHx8ZT09PXQudGltZWZyYW1lKXJldHVybjtjb25zdCBzPXRoaXMuX2lkLnZhbHVlKCk7dGhpcy5fdGFnc0NoYW5nZWQuZmlyZSgpLHRoaXMuY3JlYXRlUGFuZVZpZXcoKSx0aGlzLnVwZGF0ZUFsbFZpZXdzKCgwLGZlLnNvdXJjZUNoYW5nZUV2ZW50KShzKSksdGhpcy5tb2RlbCgpLnVwZGF0ZVNvdXJjZSh0aGlzKSwoMCxfLmVtaXQpKCJzZXJpZXNfcHJvcGVydGllc19jaGFuZ2VkIixzKX1fcmVjYWxjU3ltYm9sVGV4dFNvdXJjZVByb3h5UHJvcGVydHkoKXt0aGlzLl90ZXh0U291cmNlSXNBbHdheXNUaWNrZXJSZXN0cmljdGlvbkVuYWJsZWQ/dGhpcy5fc3ltYm9sVGV4dFNvdXJjZVByb3h5UHJvcGVydHkuc2V0VmFsdWUoInRpY2tlciIpOnRoaXMuX3N5bWJvbFRleHRTb3VyY2VQcm94eVByb3BlcnR5LnNldFZhbHVlKHRoaXMuX3Byb3BlcnRpZXMuY2hpbGRzKCkuc3RhdHVzVmlld1N0eWxlLmNoaWxkcygpLnN5bWJvbFRleHRTb3VyY2UudmFsdWUoKSl9X2NsZWFyU3R5bGVQbG90KGUsdCl7aWYoMD09PWUuc2l6ZSgpKXJldHVybjtpZih2b2lkIDA9PT10JiZlIT09dGhpcy5uc0JhcnMoKSlyZXR1cm4gdm9pZCh0aGlzLl9wcmVjb21wdXRlZEJhclN0eWxlcz1uZXcgV2Vha01hcCkKO2NvbnN0IHM9dD8/KDAsbi5lbnN1cmVOb3ROdWxsKShlLmZpcnN0SW5kZXgoKSksaT0oMCxuLmVuc3VyZU5vdE51bGwpKGUubGFzdEluZGV4KCkpKzE7ZS5yYW5nZShzLGkpLmVhY2goKChlLHQpPT4odGhpcy5fcHJlY29tcHV0ZWRCYXJTdHlsZXMuZGVsZXRlKHQpLCExKSkpfV92aXNpYmxlQmFyc0NvdW50KCl7Y29uc3QgZT10aGlzLl9tb2RlbC50aW1lU2NhbGUoKS52aXNpYmxlQmFyc1N0cmljdFJhbmdlKCk7cmV0dXJuIGU/LmNvdW50KCl9X3N5bWJvbEZvclJlc29sdmUoKXtjb25zdCBlPXRoaXMuc3ltYm9sKCk7cmV0dXJuIHRoaXMuX3Nlcmllc1NvdXJjZS5zeW1ib2xTYW1lQXNSZXNvbHZlZChlKT90aGlzLl9zZXJpZXNTb3VyY2UucmVzb2x2ZWRTeW1ib2woKT8/ZTplfV9zaG91bGREZWZpbmVOdW1iZXJPZkJhcnNGb3JNb2RpZnlTZXJpZXMoZSl7cmV0dXJuITF9X29uU2hvd0NvdW50ZG93bkNoYW5nZWQoZSl7ZS52YWx1ZSgpP3RoaXMuX2NvdW50ZG93blVwZGF0ZVRpbWVyPXRoaXMuX21vZGVsLnNldEludGVydmFsKCgoKT0+e3RoaXMuX3ByaWNlQXhpc1ZpZXcudXBkYXRlQ291bnRkb3duPy4oKSx0aGlzLl9wcm9qZWN0aW9uUHJpY2VBeGlzVmlldy51cGRhdGVDb3VudGRvd24/LigpfSksNTAwKTpudWxsIT09dGhpcy5fY291bnRkb3duVXBkYXRlVGltZXImJih0aGlzLl9tb2RlbC5jbGVhckludGVydmFsKHRoaXMuX2NvdW50ZG93blVwZGF0ZVRpbWVyKSx0aGlzLl9jb3VudGRvd25VcGRhdGVUaW1lcj1udWxsKX1fb25Gb3JtYXR0ZXJQcm9wc0NoYW5nZWQoKXt0aGlzLl9yZWNyZWF0ZUZvcm1hdHRlcigpLHRoaXMuX21vZGVsLmZ1bGxVcGRhdGUoKX1fdXBkYXRlU3RhdHVzKGUpezE0IT09ZS5zZXJpZXNTdGF0dXMmJnRoaXMuX3Vuc3VwcG9ydGVkUmVzb2x1dGlvblN0YXRlLnNldFZhbHVlKG51bGwpLHRoaXMuX3N0YXR1cy5zZXRWYWx1ZShlKX1fd2FzQ29tcGxldGVkQmVmb3JlKCl7cmV0dXJuIHRoaXMuaXNDb21wbGV0ZWQoKSYmKHRoaXMuX3N0dWR5QmluZGluZ3M/Lndhc0NvbXBsZXRlZEJlZm9yZSgpPz8hMCl9X2NvbG9yT25QcmV2QmFyKCl7Y29uc3QgZT1uZXcgTWFwKFtbMSwiY2FuZGxlU3R5bGUiXSxbMCwiYmFyU3R5bGUiXSxbMTksInZvbENhbmRsZXNTdHlsZSJdLFs4LCJoYVN0eWxlIl0sWzEzLCJjb2x1bW5TdHlsZSJdXSk7ZS5zZXQoMTcsInZvbEZvb3RwcmludFN0eWxlIik7Y29uc3QgdD1lLmdldCh0aGlzLnN0eWxlKCkpO3JldHVybiEhdCYmdGhpcy5fcHJvcGVydGllcy5jaGlsZHMoKVt0XS5jaGlsZHMoKS5iYXJDb2xvcnNPblByZXZDbG9zZS52YWx1ZSgpfV9yZXN0YXJ0SWZTdHlsZU1hdGNoZXMoZSl7dGhpcy5zdHlsZSgpPT09ZSYmdGhpcy5yZXN0YXJ0KCl9fX0sODM3MjAzKGUsdCxzKXsidXNlIHN0cmljdCI7cy5kKHQse1Nlcmllc0RhdGFTb3VyY2U6KCk9PmkuU2VyaWVzRGF0YVNvdXJjZX0pO3ZhciBpPXMoOTM1MjQwKSxuPXMoMTExOTUzKSxyPXMoODU2NTYpLG89cyg5MzAyMzEpO2kuU2VyaWVzRGF0YVNvdXJjZS5zZXROb25TZXJpZXNEYXRhVW5wYWNrZXIoci51bnBhY2tOb25TZXJpZXNEYXRhQ29tcHJlc3NlZCksaS5TZXJpZXNEYXRhU291cmNlLnNldFN5bWJvbEVuY29kZXIobi5lbmNvZGVFeHRlbmRlZFN5bWJvbFN0cnVjdHVyYWwpLGkuU2VyaWVzRGF0YVNvdXJjZS5zZXRFeHRyYWN0U3ltYm9sRmVhdHVyZXNldHMoe3BheUF0dGVudGlvblRvVGlja2VyTm90U3ltYm9sOigwLG8uaXNGZWF0dXJlc2V0RW5hYmxlZCkoInBheV9hdHRlbnRpb25fdG9fdGlja2VyX25vdF9zeW1ib2wiKSxjaGFydGluZ0xpYnJhcnlTaW5nbGVTeW1ib2xSZXF1ZXN0OigwLG8uaXNGZWF0dXJlc2V0RW5hYmxlZCkoImNoYXJ0aW5nX2xpYnJhcnlfc2luZ2xlX3N5bWJvbF9yZXF1ZXN0IiksdXNlVGlja2VyT25TeW1ib2xJbmZvVXBkYXRlOigwLG8uaXNGZWF0dXJlc2V0RW5hYmxlZCkoInVzZV90aWNrZXJfb25fc3ltYm9sX2luZm9fdXBkYXRlIiksdXBwZXJjYXNlSW5zdHJ1bWVudE5hbWVzOigwLG8uaXNGZWF0dXJlc2V0RW5hYmxlZCkoInVwcGVyY2FzZV9pbnN0cnVtZW50X25hbWVzIil9KX0sNDM3NzQ5KGUsdCxzKXsidXNlIHN0cmljdCI7cy5yKHQpLHMuZCh0LHthcHBseURlZmF1bHRDb2xvcnNUb1Byb3BzU3RhdGU6KCk9PngsYmxhY2tsaXN0ZWRQcm9wZXJ0aWVzOigpPT5rLHByZXBhcmVTdHVkeVByb3BlcnRpZXM6KCk9PlIscHJlcGFyZVN0dWR5UHJvcGVydGllc0ZvckxvYWRDaGFydDooKT0+VCxwcmVwYXJlU3R1ZHlQcm9wc1N0YXRlRm9yTG9hZENoYXJ0OigpPT5DLHN0dWR5R2VuZXJhbFByb3BzU3RhdGU6KCk9Pkksc3R1ZHlQcm9wc0V4Y2x1ZGVEZWZhdWx0c0tleXM6KCk9PlZ9KTt2YXIgaT1zKDc0MDE2Miksbj1zKDYwMTg0MSkscj1zKDIyMTA2MSksbz1zKDc5MTQyNyksYT1zKDUwNTU2KSxsPXMoMjYwNjkpLHU9cyg1MDk1NDQpLGM9cyg5NTA1NTQpLGQ9cyg4NzUzMDEpLGg9cygzNjQ0NjYpLHA9cygxNjgyNTgpLG09cyg4NzExOTQpLF89cyg1NTQ5MDQpO2NvbnN0IGc9KDAsci5nZXRMb2dnZXIpKCJDaGFydC5TdHVkeSIpLHk9KDAsYS5nZXRIZXhDb2xvckJ5TmFtZSkoImNvbG9yLXR2LWJsdWUtNTAwIiksZj0oMCxhLmdldEhleENvbG9yQnlOYW1lKSgiY29sb3ItdHYtYmx1ZS01MDAiKSx2PSgwLGEuZ2V0SGV4Q29sb3JCeU5hbWUpKCJjb2xvci10di1ibHVlLTUwMCIpLGI9KDAsYS5nZXRIZXhDb2xvckJ5TmFtZSkoImNvbG9yLXR2LWJsdWUtNTAwIiksUz0oMCxhLmdldEhleENvbG9yQnlOYW1lKSgiY29sb3ItY29sZC1ncmF5LTUwMCIpLHc9KDAsYS5nZXRIZXhDb2xvckJ5TmFtZSkoImNvbG9yLXR2LWJsdWUtNTAwIiksUD0oMCxhLmdldEhleENvbG9yQnlOYW1lKSgiY29sb3ItdHYtYmx1ZS01MDAiKTtmdW5jdGlvbiBUKGUsdCxzLGksbixyKXtyZXR1cm4gZnVuY3Rpb24oZSx0LHMsaSxuLHIsbyl7Y29uc3QgYT1DKGUsdCxzLGkscik7cmV0dXJuIEEodHx8ZSxuLGEsbywhMCl9KGUsdCxzLGksby5TdHVkeU1ldGFJbmZvLmdldFN0dWR5UHJvcGVydHlSb290TmFtZShlKSxuLHIpfWZ1bmN0aW9uIEMoZSx0LHMscixhKXsKZS52ZXJzaW9uJiZzLnZlcnNpb24mJmUudmVyc2lvbiE9PXMudmVyc2lvbiYmZy5sb2dXYXJuKCJTZXJpYWxpemVkIG1ldGFJbmZvIHZlcnNpb24gIitlLnZlcnNpb24rIiBpcyBub3QgZXF1YWwgdG8gdGhlIHNhdmVkIHN0YXRlIHZlcnNpb24gIitzLnZlcnNpb24pO2NvbnN0IGw9dHx8ZSxjPSgwLG4uY2xvbmUpKGwuZGVmYXVsdHMpPz97fSxkPW8uU3R1ZHlNZXRhSW5mby5nZXRTdHVkeVByb3BlcnR5Um9vdE5hbWUobCksaD1vLlN0dWR5TWV0YUluZm8uZ2V0U3R1ZHlQcm9wZXJ0eVJvb3ROYW1lKGUpO2xldCBwPUkoKTtyZXR1cm4oMCxpLmRlZmF1bHQpKHAsRShlKSksdCYmKDAsaS5kZWZhdWx0KShwLEUodCkpLCgwLGkuZGVmYXVsdCkocCwoMCxuLmNsb25lKShlLmRlZmF1bHRzKSksKDAsaS5kZWZhdWx0KShwLGMpLCgwLGkuZGVmYXVsdCkocCwoMCx1LnN0dWR5RmFjdG9yeURlZmF1bHRzKShkKSksKDAsaS5kZWZhdWx0KShwLCgwLHUuc3R1ZHlGYWN0b3J5RGVmYXVsdHMpKGgpKSwoMCxpLmRlZmF1bHQpKHAsTChsLHIsZCkpLCgwLGkuZGVmYXVsdCkocCxMKGUscixoKSksdCYmbnVsbCE9dC5fc2VydmVyTWV0YUluZm9WZXJzaW9uJiZudWxsIT1lLl9zZXJ2ZXJNZXRhSW5mb1ZlcnNpb24mJnQuaXNQaW5lKCkmJmUuaXNQaW5lKCkmJnQuX3NlcnZlck1ldGFJbmZvVmVyc2lvbj5lLl9zZXJ2ZXJNZXRhSW5mb1ZlcnNpb24/KDAsXy5tZXJnZVNlcmlhbGl6ZWRTdGF0ZVJlbWFwcGluZ0lucHV0c0J5TmFtZSkocCxzLGUsdCk6KDAsaS5kZWZhdWx0KShwLHMpLHgocCxsKSxwPXIudXBkYXRlU3R1ZHlTdGF0ZShwLGUsdCksdm9pZCAwIT09YSYmdCYmKHA9YShzLHAsZSx0KSksby5TdHVkeU1ldGFJbmZvLnZlcnNpb25PZihsKT49MSYmKDAsaS5kZWZhdWx0KShwLE0oYyxwKSkscH1mdW5jdGlvbiBFKGUpe2NvbnN0IHQ9e307aWYoZS5wbG90cylmb3IobGV0IHM9MDtzPGUucGxvdHMubGVuZ3RoO3MrKyl7Y29uc3QgaT1lLnBsb3RzW3NdLHI9aS5pZDtpZigoMCxwLmlzQ29sb3JlclBsb3QpKGkpKWNvbnRpbnVlO2NvbnN0IG89e2Rpc3BsYXk6cC5TdHVkeVBsb3REaXNwbGF5VGFyZ2V0LkFsbCxjb2xvcjp5LGxpbmVzdHlsZTpsLkxJTkVTVFlMRV9TT0xJRCxsaW5ld2lkdGg6MixwbG90dHlwZTpwLkxpbmVTdHVkeVBsb3RTdHlsZS5MaW5lLHRyYWNrUHJpY2U6ITF9OygwLHAuaXNCYXJDb2xvcmVyUGxvdCkoaSkmJihvLnRyYW5zcGFyZW5jeT0wKSxvLnBsb3R0eXBlPWkudHlwZSxvLnRpdGxlPXIsdFtyXT0oMCxuLmNsb25lKShvKX1yZXR1cm57c3R5bGVzOnR9fWZ1bmN0aW9uIEkoKXtjb25zdCBlPSgwLG4uY2xvbmUpKCgwLHUuc3R1ZHlEZWZhdWx0cykoInN0dWR5IikpO3JldHVybiBlLmludGVydmFsc1Zpc2liaWxpdGllcz0oMCxuLmNsb25lKShkLmludGVydmFsc1Zpc2liaWxpdGllc0RlZmF1bHRzKSxlfWZ1bmN0aW9uIEwoZSx0LHMpe2xldCBpPSgwLG4uY2xvbmUpKCgwLHUuc3R1ZHlEZWZhdWx0cykocyx0KSk7cmV0dXJuIk92ZXJsYXkiIT09ZS5zaG9ydElkJiYiQ29tcGFyZSIhPT1lLnNob3J0SWR8fChpLmN1cnJlbmN5SWQ9bnVsbCxpLnVuaXRJZD1udWxsKSxlLmlzVFZTY3JpcHQmJmUuVFZTY3JpcHRTb3VyY2VDb2RlIT09aS5UVlNjcmlwdFNvdXJjZUNvZGUmJihpPSgwLG4uY2xvbmUpKCgwLHUuc3R1ZHlGYWN0b3J5RGVmYXVsdHMpKHMpKSksaX1mdW5jdGlvbiBNKGUsdCl7Y29uc3Qgcz17fTtyZXR1cm4gYy5TdHVkeVZlcnNpb25pbmcubWVyZ2VJbnB1dHNPYmpQYXJ0KHMsZS5pbnB1dHM/P3t9KSxjLlN0dWR5VmVyc2lvbmluZy5tZXJnZUlucHV0c09ialBhcnQocyx0LmlucHV0cykse2lucHV0czpzfX1mdW5jdGlvbiBEKGUsdCxzLHIpe2lmKG8uU3R1ZHlNZXRhSW5mby52ZXJzaW9uT2YoZSk8MSl0aHJvdyBuZXcgRXJyb3IoIlRoaXMgZnVuY3Rpb24gY2Fubm90IHdvcmsgd2l0aCBtZXRhaW5mbyBvZiB0aGUgb2xkIGZvcm1hdCB2ZXJzaW9uLiBSZXF1aXJlZCBmb3JtYXQgdmVyc2lvbiA+PSAxIik7Y29uc3QgYT1vLlN0dWR5TWV0YUluZm8uZ2V0U3R1ZHlQcm9wZXJ0eVJvb3ROYW1lKGUpLGw9KDAsbi5jbG9uZSkoZS5kZWZhdWx0cyksYz0oMCx1LnN0dWR5RmFjdG9yeURlZmF1bHRzKShhKSxkPUkoKTtpZigoMCxpLmRlZmF1bHQpKGQsRShlKSksKDAsaS5kZWZhdWx0KShkLGwpLCgwLGkuZGVmYXVsdCkoZCxjKSwoMCxpLmRlZmF1bHQpKGQsTChlLHIsYSkpLCgwLGkuZGVmYXVsdCkoZCx0KSwoMCxpLmRlZmF1bHQpKGQsTShsLGQpKSx4KGQsZSksbnVsbCE9PXMpe2NvbnN0IHQ9cy5tb2RlbCgpLnN0dWRpZXNDb2xvclJvdGF0b3JGYWN0b3J5KCkuZ2V0Q29sb3JSb3RhdG9yKGUpO251bGwhPT10JiYoIk92ZXJsYXlAdHYtYmFzaWNzdHVkaWVzIj09PWUuaWQ/ZC5saW5lU3R5bGUuY29sb3I9dC5nZXRDb2xvcihkLmxpbmVTdHlsZS5jb2xvcixjLmxpbmVTdHlsZS5jb2xvcj09PWQubGluZVN0eWxlLmNvbG9yKTooMCxpLmRlZmF1bHQpKGQsZnVuY3Rpb24oZSx0KXtmb3IoY29uc3QgcyBvZiBPYmplY3Qua2V5cyhlLnN0eWxlcykpe2NvbnN0IGk9ZS5zdHlsZXNbc107aWYoKDAsbi5pc09iamVjdCkoaSkmJiJjb2xvciJpbiBpKXtjb25zdCBlPWkuY29sb3I7aS5jb2xvcj10LmdldENvbG9yKGUpfX1yZXR1cm4gZX0oZCx0KSkpfXJldHVybiByLnVwZGF0ZVN0dWR5SW5wdXRzSWZOZWVkZWQoZCxkLnZlcnNpb24/P2UudmVyc2lvbixlKSxkfWZ1bmN0aW9uIHgoZSx0KXtpZih0LnBsb3RzJiZlLnN0eWxlcylmb3IobGV0IHM9MDtzPHQucGxvdHMubGVuZ3RoO3MrKyl7Y29uc3QgaT10LnBsb3RzW3NdLG49aS5pZDtpZigoMCxwLmlzTGluZVBsb3QpKGkpKXtjb25zdCB0PWUuc3R5bGVzW25dO3QmJm51bGw9PT10LmNvbG9yJiYodC5jb2xvcj15KX1lbHNlIGlmKCgwLHAuaXNTaGFwZXNQbG90KShpKSl7Y29uc3QgdD1lLnN0eWxlc1tuXTt0JiYobnVsbD09PXQuY29sb3ImJih0LmNvbG9yPWYpLG51bGw9PT10LnRleHRDb2xvciYmKHQudGV4dENvbG9yPWIpKX1lbHNlIGlmKCgwLHAuaXNDaGFyc1Bsb3QpKGkpKXtjb25zdCB0PWUuc3R5bGVzW25dO3QmJihudWxsPT09dC5jb2xvciYmKHQuY29sb3I9dyksCm51bGw9PT10LnRleHRDb2xvciYmKHQudGV4dENvbG9yPVApKX1lbHNlIGlmKCgwLHAuaXNPaGxjUGxvdCkoaSkpe2NvbnN0IHQ9ZS5vaGxjUGxvdHM/LltpLnRhcmdldF07dCYmbnVsbD09PXQuY29sb3ImJih0LmNvbG9yPXYpfX1pZihlLmJhbmRzKWZvcihsZXQgdD0wO3Q8ZS5iYW5kcy5sZW5ndGg7Kyt0KXtjb25zdCBzPWUuYmFuZHNbdF07bnVsbD09PXMuY29sb3ImJihzLmNvbG9yPVMpfX1mdW5jdGlvbiBSKGUsdCxzLGkscil7cmV0dXJuIGZ1bmN0aW9uKGUsdCxzLGkscixhKXtjb25zdCBsPUQoZSx0LHMsaSksdT1vLlN0dWR5TWV0YUluZm8uZ2V0U291cmNlSW5wdXRJZHMoZSk7cmV0dXJuIHUuZm9yRWFjaCgoKGUsdCk9Pntjb25zdCBzPWwuaW5wdXRzW2VdO3Q8YS5sZW5ndGg/bC5pbnB1dHNbZV09YCR7YVt0XS5pZCgpfSQwYDooMCxuLmlzU3RyaW5nKShzKSYmcy5pbmNsdWRlcygiJCIpJiYobC5pbnB1dHNbZV09ImNsb3NlIil9KSksQShlLHIsbCl9KGUsdCxzLGksby5TdHVkeU1ldGFJbmZvLmdldFN0dWR5UHJvcGVydHlSb290TmFtZShlKSxyKX1jb25zdCBrPVsiaWQiLCJkZXNjcmlwdGlvbiIsImRlc2NyaXB0aW9uX2xvY2FsaXplZCIsInNob3J0RGVzY3JpcHRpb24iLCJfbWV0YWluZm9WZXJzaW9uIiwiaXNfcHJpY2Vfc3R1ZHkiLCJpc19oaWRkZW5fc3R1ZHkiLCJwcmljZVNjYWxlIiwiZnVsbElkIiwic2hvcnRJZCIsInNjcmlwdElkUGFydCIsInBhY2thZ2VJZCIsInByb2R1Y3RJZCIsImlzVFZTY3JpcHRTdHViIiwiZGVmYXVsdHMiLCJzeW1ib2xTb3VyY2UiLCJoaXN0b3J5Q2FsY3VsYXRpb25NYXlDaGFuZ2UiLCJmb3JtYXQiLCJsaW5rZWRUb1NlcmllcyIsImlzVFZMaWJyYXJ5IiwiZG9jcyIsImV4cG9ydHMiLCJleHBvcnRUeXBlcyIsImV4dHJhIiwidXNlc1ByaXZhdGVMaWIiLCJmaW5hbmNpYWxQZXJpb2QiLCJncm91cGluZ0tleSIsInBpbmUiLCJpc1JHQiIsImlzVFZTY3JpcHQiLCJUVlNjcmlwdE1ldGFJbmZvRXhwcnMiLCJ1c2VQbG90c1pPcmRlciIsImlzVFZTY3JpcHRTdHJhdGVneSIsIlRWU2NyaXB0U291cmNlQ29kZSIsImxvb2thaGVhZEZ1dHVyZURhdGEiLCJoYXNBbGVydEZ1bmN0aW9uIiwiZGVmYXVsdFN0cmF0ZWd5QWxlcnRNZXNzYWdlIiwidGFncyIsImNhbkJlQ2hpbGQiLCJjYW5Ob3RCZUNoaWxkIiwiX3NlcnZlck1ldGFJbmZvVmVyc2lvbiIsIndhcm5pbmdzIl07ZnVuY3Rpb24gVihlKXtjb25zdCB0PVsidmlzaWJsZSIsInByZWNpc2lvbiIsIm1pblRpY2siLCJpbnRlcnZhbHNWaXNpYmlsaXRpZXMiLCJpbnB1dHMuZmlyc3RfdmlzaWJsZV9iYXJfdGltZSIsImlucHV0cy5sYXN0X3Zpc2libGVfYmFyX3RpbWUiLCJpbnB1dHMuc3Vic2NyaWJlUmVhbHRpbWUiXTtmb3IobGV0IHM9MDtzPGUuaW5wdXRzLmxlbmd0aDsrK3Mpe2NvbnN0IGk9ZS5pbnB1dHNbc107aS5pc0hpZGRlbiYmKHQucHVzaChgaW5wdXRzLiR7c31gKSx0LnB1c2goYGlucHV0cy4ke2kuaWR9YCkpfXJldHVybiB0fWZ1bmN0aW9uIEEoZSx0LHMsaSxuKXtmb3IoY29uc3QgZSBvZiBrKWRlbGV0ZSBzW2VdO2NvbnN0IHI9bmV3IG0uU3R1ZHlEZWZhdWx0UHJvcGVydHkoe2RlZmF1bHROYW1lOnQsc3RhdGU6cyxleGNsdWRlZERlZmF1bHRzS2V5czpWKGUpLGV4Y2x1ZGVkU3RhdGVLZXlzOlsidmVyc2lvbiJdLHRoZW1lOml9KTtyLnJlbW92ZVByb3BlcnR5KCJpbnRlcnZhbHNWaXNpYmlsaXRpZXMiKSxyLmFkZENoaWxkKCJpbnRlcnZhbHNWaXNpYmlsaXRpZXMiLG5ldyBoLkludGVydmFsc1Zpc2liaWxpdGllc1Byb3BlcnR5KHMmJnMuaW50ZXJ2YWxzVmlzaWJpbGl0aWVzKSksIlBpdm90UG9pbnRzU3RhbmRhcmRAdHYtYmFzaWNzdHVkaWVzIiE9PWUuaWQmJiJQaXZvdFBvaW50c0hpZ2hMb3dAdHYtYmFzaWNzdHVkaWVzIiE9PWUuaWR8fCFyLmhhc0NoaWxkKCJmb250Iil8fHIucmVtb3ZlUHJvcGVydHkoImZvbnQiKTtjb25zdCBhPW8uU3R1ZHlNZXRhSW5mby52ZXJzaW9uT2YoZSk7cmV0dXJuIHIuaGFzQ2hpbGQoInZlcnNpb24iKT9yLmNoaWxkcygpLnZlcnNpb24/LnNldFZhbHVlKGEpOnIuYWRkUHJvcGVydHkoInZlcnNpb24iLGEpLGUuVFZTY3JpcHRNZXRhSW5mb0V4cHJzJiYhbiYmci5hZGRQcm9wZXJ0eSgicGF0Y2hNZXRhSW5mb0RlZmF1bHRzIiwhMCkscn19LDg3MjM0MyhlLHQscyl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGkoZSx0PSJzaGlmdCIscyl7cmV0dXJue3N0dWR5Q29uc3RydWN0b3JBc3luY0dldHRlcjplLGNvbG9yUm90YXRpb25Nb2RlOnQsY29sb3JSb3RhdGlvbkNvbXBhcmF0b3I6c319cy5kKHQse2FkZFN0dWR5SW5mb1RvTWFwOigpPT5yLGNyZWF0ZVN0dWR5SW5mbzooKT0+aSxnZXRTdHVkeUNsYXNzTmFtZTooKT0+YSxnZXRTdHVkeUluZm9CeU5hbWU6KCk9Pm99KTtjb25zdCBuPW5ldyBNYXA7ZnVuY3Rpb24gcihlLHQpe24uc2V0KGUsdCl9ZnVuY3Rpb24gbyhlKXtyZXR1cm4gbi5nZXQoZSl9ZnVuY3Rpb24gYShlKXtmb3IoY29uc3RbdCxzXW9mIG4uZW50cmllcygpKWlmKHMuc3R1ZHlDb25zdHJ1Y3Rvcj09PWUpcmV0dXJuIHQ7cmV0dXJuIG51bGx9fSw2MDUyNTcoZSx0LHMpeyJ1c2Ugc3RyaWN0IjtzLmQodCx7ZW1wdHlQaW5lSWQ6KCk9Pl8uZW1wdHlQaW5lSWQsaXNTdHVkeURlc2NyaXB0b3I6KCk9Pl8uaXNTdHVkeURlc2NyaXB0b3Isc3R1ZHlNZXRhSW5mb1JlcG9zaXRvcnk6KCk9PnZ9KTt2YXIgaT1zKDgzOTQyNiksbj1zKDE4NTI3MSkscj1zKDEzODYzOCksbz1zKDIyMTA2MSksYT1zKDc5MTQyNyksbD1zKDI3NDM5OSksdT1zKDg3NDMwNiksYz1zKDk1MDU1NCksZD1zKDM2MjI4OSksaD1zKDM2ODMxMikscD1zKDMwOTM2MCksbT1zKDc2ODc2MCksXz1zKDQ2MDM2MCk7Y29uc3QgZz0oMCxvLmdldExvZ2dlcikoIkNoYXJ0LlN0dWRpZXMuU3R1ZHlNZXRhSW5mb1JlcG9zaXRvcnkiLHtjb2xvcjoiIzYwNiJ9KTtjbGFzcyB5e2NvbnN0cnVjdG9yKGUpe3RoaXMuX2lzUmVhZHk9ITEsdGhpcy5fc3R1ZHlWZXJzaW9uaW5nPW51bGwsdGhpcy5fcmF3U3R1ZGllc01ldGFJbmZvPVtdLHRoaXMuX3Jhd1N0dWRpZXNNZXRhSW5mb0RlZmVycmVkUHJvbWlzZT1udWxsLAp0aGlzLl9qYXZhU3R1ZGllc01ldGFJbmZvPVtdLHRoaXMuX3BpbmVNZXRhSW5mb0NhY2hlPVtdLHRoaXMuX2NvbXBpbGVFcnJvcnM9bmV3IFdlYWtNYXAsdGhpcy5fc3R1ZGllc01pZ3JhdGlvbnM9W10sdGhpcy5fY2hhcnRBcGk9ZX1hc3luYyByZXF1ZXN0TWV0YUluZm8oKXtpZihudWxsPT09dGhpcy5fcmF3U3R1ZGllc01ldGFJbmZvRGVmZXJyZWRQcm9taXNlKXt0aGlzLl9yYXdTdHVkaWVzTWV0YUluZm9EZWZlcnJlZFByb21pc2U9KDAsbS5jcmVhdGVEZWZlcnJlZFByb21pc2UpKCk7Y29uc3QgZT1hd2FpdCB0aGlzLl9jaGFydEFwaS5yZXF1ZXN0TWV0YWRhdGEoKSx0PWUucGFyYW1zWzFdLm1ldGFpbmZvLnNsaWNlKCk7e2NvbnN0IHM9ZS5wYXJhbXNbMV0ubWlncmF0aW9ucy5zbGljZSgpO3RoaXMuX3Byb2Nlc3NTaXRlTWV0YUluZm8odCxzKX10aGlzLl9zdHVkeVZlcnNpb25pbmc9bmV3IGMuU3R1ZHlWZXJzaW9uaW5nKHRoaXMuX2phdmFTdHVkaWVzTWV0YUluZm8sdGhpcy5fc3R1ZGllc01pZ3JhdGlvbnMpLHRoaXMuX3JlcXVlc3RGaW5pc2hlZCgpLHRoaXMuX3Jhd1N0dWRpZXNNZXRhSW5mb0RlZmVycmVkUHJvbWlzZS5yZXNvbHZlKHRoaXMuX3Jhd1N0dWRpZXNNZXRhSW5mbyl9cmV0dXJuIHRoaXMuX3Jhd1N0dWRpZXNNZXRhSW5mb0RlZmVycmVkUHJvbWlzZS5wcm9taXNlfWFzeW5jIGZpbmRCeUlkKGUpe3RoaXMuX2lzUmVhZHl8fGF3YWl0IHRoaXMucmVxdWVzdE1ldGFJbmZvKCk7Y29uc3QgdD10aGlzLl9maW5kU3R1ZHlNZXRhSW5mbyhlKTtpZihudWxsIT09dCl7Y29uc3QgZT10aGlzLl9jb21waWxlRXJyb3JzLmdldCh0KTtyZXR1cm4gZT9Qcm9taXNlLnJlamVjdChlKTpQcm9taXNlLnJlc29sdmUodCl9cmV0dXJuInBpbmUiPT09ZS50eXBlP3RoaXMuX2NvbXBpbGVQaW5lKGUpOlByb21pc2UucmVqZWN0KGB1bmV4cGVjdGVkIHN0dWR5IGlkPSR7ZS5zdHVkeUlkfSB3aXRoIHR5cGU9JHtlLnR5cGV9YCl9ZmluZEJ5SWRTeW5jKGUpe3JldHVybiB0aGlzLl9maW5kU3R1ZHlNZXRhSW5mbyhlKX1pc1JlYWR5KCl7cmV0dXJuIHRoaXMuX2lzUmVhZHl9YXN5bmMgZmluZEFsbEphdmFTdHVkaWVzKCl7cmV0dXJuIHRoaXMuX2lzUmVhZHl8fGF3YWl0IHRoaXMucmVxdWVzdE1ldGFJbmZvKCksdGhpcy5famF2YVN0dWRpZXNNZXRhSW5mb31zdHVkeVZlcnNpb25pbmcoKXtyZXR1cm4oMCxyLmVuc3VyZU5vdE51bGwpKHRoaXMuX3N0dWR5VmVyc2lvbmluZyl9Z2V0SW50ZXJuYWxNZXRhSW5mb0FycmF5KCl7cmV0dXJuIHRoaXMuX2phdmFTdHVkaWVzTWV0YUluZm99YWRkUGluZU1ldGFJbmZvKGUsdCl7Y29uc3Qgcz1mKHRoaXMuX3BpbmVNZXRhSW5mb0NhY2hlLGUpO3JldHVybiB0JiYoIUFycmF5LmlzQXJyYXkodCl8fHQubGVuZ3RoPjApJiYodD1BcnJheS5pc0FycmF5KHQpP25ldyBwLlBpbmVDb21waWxlRmFpbEVycm9ySW1wbCh7d2FybmluZ3M6W10sZXJyb3JzOnR9LGUpOnQsdGhpcy5fY29tcGlsZUVycm9ycy5zZXQocyx0KSksc31hc3luYyBnZXRMYXRlc3RNZXRhSW5mb0ZvclBpbmVTdHVkeShlLHQpe2NvbnN0IHM9YXdhaXQoMCxoLnJlcXVlc3RVc2VyU2NyaXB0cykoKTtsZXQgaTtpZihzKXtjb25zdCBuPXMuZmluZCgodD0+dC5zY3JpcHRJZFBhcnQ9PT1lKSk7aWYobil7Y29uc3QgZT11LlZlcnNpb24ucGFyc2UodCkscz11LlZlcnNpb24ucGFyc2Uobi52ZXJzaW9uKTtlLmlzTGVzcyhzKSYmKGk9bi52ZXJzaW9uKX19aWYodm9pZCAwIT09aSl7Y29uc3QgdD17dHlwZToicGluZSIscGluZUlkOmUscGluZVZlcnNpb246aX07cmV0dXJuIHRoaXMuZmluZEJ5SWQodCl9cmV0dXJuIG51bGx9X3Byb2Nlc3NNaWdyYXRpb25zKGUpe3RoaXMuX3N0dWRpZXNNaWdyYXRpb25zPVtdO2ZvcihsZXQgdD0wO2UmJnQ8ZS5sZW5ndGg7dCsrKXRoaXMuX3N0dWRpZXNNaWdyYXRpb25zLnB1c2goZVt0XSl9X3Byb2Nlc3NTaXRlTWV0YUluZm8oZSx0KXtmb3IoY29uc3QgdCBvZiBlKWMuU3R1ZHlWZXJzaW9uaW5nLnZlcmlmeUlucHV0c01heFZhbHVlKHQpLChpPXQpLmRlc2NyaXB0aW9uX2xvY2FsaXplZD1uLnQoaS5kZXNjcmlwdGlvbix7Y29udGV4dDoic3R1ZHkifSxzKDg4NDY5MykpO3ZhciBpO3RoaXMuX3Jhd1N0dWRpZXNNZXRhSW5mbz1lLHRoaXMuX3Byb2Nlc3NNaWdyYXRpb25zKHQpO2Zvcihjb25zdCBlIG9mIHRoaXMuX3Jhd1N0dWRpZXNNZXRhSW5mbylmKHRoaXMuX2phdmFTdHVkaWVzTWV0YUluZm8sZSk7KDAsZC5vdmVycmlkZVN0dWR5RGVmYXVsdHMpKHRoaXMuX2phdmFTdHVkaWVzTWV0YUluZm8pfV9wcm9jZXNzTGlicmFyeU1ldGFJbmZvKGUpe31fcmVxdWVzdEZpbmlzaGVkKCl7dGhpcy5faXNSZWFkeT0hMH1fZmluZFN0dWR5TWV0YUluZm8oZSl7cmV0dXJuImphdmEiPT09ZS50eXBlPygoMCxyLmFzc2VydCkoMCE9PXRoaXMuX2phdmFTdHVkaWVzTWV0YUluZm8ubGVuZ3RoLCJKYXZhIHN0dWRpZXMgbWV0YWluZm8gc2hvdWxkIGJlIGRlZmluZSBoZXJlIiksdGhpcy5famF2YVN0dWRpZXNNZXRhSW5mby5maW5kKCh0PT50LmlkPT09ZS5zdHVkeUlkKSl8fG51bGwpOnRoaXMuX3BpbmVNZXRhSW5mb0NhY2hlLmZpbmQoKHQ9PnQuc2NyaXB0SWRQYXJ0PT09ZS5waW5lSWQmJih2b2lkIDA9PT1lLnBpbmVWZXJzaW9ufHwoMCxyLmVuc3VyZURlZmluZWQpKHQucGluZSkudmVyc2lvbj09PWUucGluZVZlcnNpb24pKSl8fG51bGx9X2NvbXBpbGVQaW5lKGUpe2cubG9nTm9ybWFsKGBDb21waWxpbmcgJHtlLnBpbmVJZH0gc2NyaXB0YCk7Y29uc3QgdD0oMCxoLnRyYW5zbGF0ZVNjcmlwdEFzeW5jMikoZS5waW5lSWQsZS5waW5lVmVyc2lvbnx8Imxhc3QiKS50aGVuKCgoe21ldGFJbmZvOnQsY29tcGlsZUVycm9yczpzfSk9PihnLmxvZ05vcm1hbChgQ29tcGlsaW5nICR7ZS5waW5lSWR9IGlzIHN1Y2Nlc3NmdWxgKSx0aGlzLmFkZFBpbmVNZXRhSW5mbygoMCxyLmVuc3VyZURlZmluZWQpKHQpLHMuZXJyb3JzKSkpKTtyZXR1cm4gdC5jYXRjaCgodD0+e3QgaW5zdGFuY2VvZiBwLlBpbmVDb21waWxlRmFpbEVycm9ySW1wbCYmdGhpcy5hZGRQaW5lTWV0YUluZm8odC5tZXRhSW5mbyx0KSwKZy5sb2dOb3JtYWwoYENvbXBpbGluZyAke2UucGluZUlkfSBpcyBmYWlsZWRgKX0pKSx0fX1mdW5jdGlvbiBmKGUsdCl7Y29uc3Qgcz1uZXcgYS5TdHVkeU1ldGFJbmZvKHQpLnN0YXRlKCk7KDAsbC5taWdyYXRlTWV0YUluZm9BbmRQcm9wU3RhdGUpKHMpO2NvbnN0IGk9bmV3IGEuU3R1ZHlNZXRhSW5mbyhzKTtsZXQgbj0hMDtjb25zdCByPWUuZmluZEluZGV4KChlPT5lLmlkPT09aS5pZCkpO2lmKC0xPT09cillLnB1c2goaSk7ZWxzZXtjb25zdCB0PWVbcl0scz12b2lkIDAhPT10LnBpbmU/dS5WZXJzaW9uLnBhcnNlKHQucGluZS52ZXJzaW9uKTpudWxsLG89dm9pZCAwIT09aS5waW5lP3UuVmVyc2lvbi5wYXJzZShpLnBpbmUudmVyc2lvbik6bnVsbDtudWxsPT09b3x8bnVsbD09PXN8fG8uaXNHcmVhdGVyT3JFcXVhbChzKT8oKDAsZC5yZW1vdmVTdHVkeURlZmF1bHRzKSh0KSxlW3JdPWkpOm49ITF9cmV0dXJuIG4mJigwLGQuY3JlYXRlU3R1ZHlEZWZhdWx0cykoaSksaX1jb25zdCB2PSgwLGkuZGVmYXVsdCkoKCgpPT5uZXcgeSh3aW5kb3cuQ2hhcnRBcGlJbnN0YW5jZSkpKX0sODIyNzI2KGUsdCxzKXsidXNlIHN0cmljdCI7cy5kKHQse1RleHRXaWR0aENhY2hlOigpPT5yLGdldE1pblRleHRNZXRyaWNzOigpPT5ufSk7dmFyIGk9cyg1MTcyOTMpO2Z1bmN0aW9uIG4oZSl7cmV0dXJue3dpZHRoOmUud2lkdGgsYWN0dWFsQm91bmRpbmdCb3hBc2NlbnQ6ZS5hY3R1YWxCb3VuZGluZ0JveEFzY2VudCxhY3R1YWxCb3VuZGluZ0JveERlc2NlbnQ6ZS5hY3R1YWxCb3VuZGluZ0JveERlc2NlbnQsZm9udEJvdW5kaW5nQm94QXNjZW50OmUuZm9udEJvdW5kaW5nQm94QXNjZW50LGZvbnRCb3VuZGluZ0JveERlc2NlbnQ6ZS5mb250Qm91bmRpbmdCb3hEZXNjZW50fX1jbGFzcyBye2NvbnN0cnVjdG9yKGU9MTUwKXt0aGlzLl9mb250U3R5bGU9IiIsdGhpcy5fY2FjaGU9bmV3IGkuQ2lyY3VsYXJDYWNoZUJ1ZmZlcihlLDEuNSl9cmVzZXQoKXt0aGlzLl9jYWNoZS5jbGVhcigpfW1lYXN1cmVUZXh0KGUsdCxzKXtsZXQgaT10O3JldHVybiBzPy5tb25vJiYoaT10LnJlcGxhY2UoL1xkL2csIjAiKSksdGhpcy5nZXRNZXRyaWNzKGUsaSkud2lkdGh9eU1pZENvcnJlY3Rpb24oZSx0KXtjb25zdCBzPXRoaXMuZ2V0TWV0cmljcyhlLHQpO3JldHVybiB2b2lkIDAhPT1zLmFjdHVhbEJvdW5kaW5nQm94QXNjZW50JiZ2b2lkIDAhPT1zLmFjdHVhbEJvdW5kaW5nQm94RGVzY2VudD8ocy5hY3R1YWxCb3VuZGluZ0JveEFzY2VudC1zLmFjdHVhbEJvdW5kaW5nQm94RGVzY2VudCkvMjowfWdldE1ldHJpY3MoZSx0KXtlLmZvbnQhPT10aGlzLl9mb250U3R5bGUmJih0aGlzLnJlc2V0KCksdGhpcy5fZm9udFN0eWxlPWUuZm9udCk7Y29uc3Qgcz10aGlzLl9jYWNoZS5nZXQodCk7aWYodm9pZCAwIT09cylyZXR1cm4gcztjb25zdCBpPWUudGV4dEJhc2VsaW5lO2UudGV4dEJhc2VsaW5lPSJtaWRkbGUiO2NvbnN0IHI9bihlLm1lYXN1cmVUZXh0KHQpKTtyZXR1cm4gZS50ZXh0QmFzZWxpbmU9aSwwPT09ci53aWR0aCYmdC5sZW5ndGh8fHRoaXMuX2NhY2hlLnNldCh0LHIpLHJ9fX0sNjM5MTEzKGUsdCxzKXsidXNlIHN0cmljdCI7cy5kKHQse3NldFN1cHBvcnRQb3J0YWxQcm9ibGVtc0hvc3Q6KCk9Pm4sc3VwcG9ydFBvcnRhbFByb2JsZW1zSG9zdDooKT0+aX0pO2xldCBpPSIiO2Z1bmN0aW9uIG4oZSl7aT1lfX0sNzcwNzU1KGUsdCxzKXsidXNlIHN0cmljdCI7cy5kKHQse29wZW5QYXl3YWxsOigpPT5vfSk7dmFyIGk9cyg5MzAyMzEpLG49cyg5OTk2NDApLHI9cyg0Mzg1MzkpO3MoMzAwMjg2KTthc3luYyBmdW5jdGlvbiBvKGUsdD17fSl7aWYobi5wYXl3YWxsTW9iaWxlSW50ZXJjZXB0b3IuaXNIaWRkZW5GZWF0dXJlKGUuZmVhdHVyZSkpcmV0dXJuIHZvaWQgbi5wYXl3YWxsTW9iaWxlSW50ZXJjZXB0b3IuaW52b2tlKGUuZmVhdHVyZSk7aWYoKDAsaS5pc0ZlYXR1cmVzZXRFbmFibGVkKSgicmVmZXJyYWxfcHJvZ3JhbV9mb3Jfd2lkZ2V0X293bmVycyIpKXJldHVybigwLHIuc2hvd0dvVG9UcmFkaW5nVmlld1JlZmVycmFsRGlhbG9nKSh7ZmVhdHVyZTplLmZlYXR1cmV9KTtjb25zdHtwYXl3YWxsczpvfT1hd2FpdCBQcm9taXNlLmFsbChbcy5lKDg0NjkzKSxzLmUoNDk2ODQpLHMuZSgyOTI5Nikscy5lKDYwMDYyKSxzLmUoMjAzNTQpLHMuZSg1MTg0KSxzLmUoMTEyMTgpLHMuZSg3MjY2Nikscy5lKDMyNjMyKSxzLmUoNTA2MjIpLHMuZSgzMzIyMSkscy5lKDU5MzUwKSxzLmUoMzMyMykscy5lKDM4MjYyKSxzLmUoODc0NzQpLHMuZSgzMjM4Nykscy5lKDc1NDg5KSxzLmUoNjg3NDEpLHMuZSg3MDU5MCkscy5lKDg2MDAxKV0pLnRoZW4ocy5iaW5kKHMsODE3ODE2KSk7by5vcGVuKGUsdCl9fSw2NTcyNDUoZSx0LHMpeyJ1c2Ugc3RyaWN0IjtzLmQodCx7c2V0TmV3QmxhY2tDb2xvcjooKT0+aX0pO2NvbnN0IGk9KDAscyg1NjkzOTgpLmlzRmVhdHVyZUVuYWJsZWQpKCJzZXRfbmV3X2JsYWNrX2NvbG9yIil9LDk1MTQ2OShlKXsidXNlIHN0cmljdCI7dmFyIHQ9e30scz17WENCVDoiQ0JPVCIsWE5ZTToiTllNRVgiLFhDTUU6IkNNRSIsWENFQzoiQ09NRVgifTt0LmNvbnZlcnRTeW1ib2xEYXRhVG9UVj1mdW5jdGlvbihlLHQsaSl7cmV0dXJuIGk9Mj09PWl8fCJmbG9vciI9PT1pfHwicGl0Ij09PWk/IlBJVCI6IkdCWCIsdCYmc1t0XT97c3RhdHVzOiJvayIsZGF0YTp7c3ltYm9sOmUsZXhjaGFuZ2U6c1t0XSsiXyIraX19OntzdGF0dXM6ImVycm9yIixkYXRhOiJFeGNoYW5nZSBgIit0KyJgIGlzIG5vdCBzdXBwb3J0ZWQifX0sZS5leHBvcnRzPXR9LDUyODM5NihlLHQscyl7InVzZSBzdHJpY3QiO3Mucih0KSxzLmQodCx7Z2V0VHJhbnNsYXRlZFN5bWJvbERlc2NyaXB0aW9uOigpPT5yfSk7dmFyIGk9cygxODUyNzEpO2Z1bmN0aW9uIG4oZSl7Y29uc3QgdD1gIyR7ZX0tc3ltYm9sLWRlc2NyaXB0aW9uYCxuPWkudCh0LHZvaWQgMCxzKDI1ODY2NykpO3JldHVybiBuPT09dD9udWxsOm59ZnVuY3Rpb24gcihlKXtpZih2b2lkIDAhPT1lLnByb19uYW1lKXtjb25zdCB0PW4oZS5wcm9fbmFtZSk7aWYobnVsbCE9PXQpcmV0dXJuIHQKO2lmKHZvaWQgMCE9PWUuc2hvcnRfbmFtZSl7Y29uc3QgdD1uKGUuc2hvcnRfbmFtZSk7aWYobnVsbCE9PXQpcmV0dXJuIHR9fXJldHVybiJlbiIhPT1lLmxhbmd1YWdlJiZ2b2lkIDAhPT1lLmxvY2FsX2Rlc2NyaXB0aW9uJiZlLmxhbmd1YWdlPT09d2luZG93Lmxhbmd1YWdlfHwiZW4iPT09ZS5sYW5ndWFnZSYmdm9pZCAwIT09ZS5sb2NhbF9kZXNjcmlwdGlvbiYmZS5sYW5ndWFnZT09PXdpbmRvdy5sYW5ndWFnZT9lLmxvY2FsX2Rlc2NyaXB0aW9uOmUuZGVzY3JpcHRpb258fCIifX0sNzQ5ODE0KGUsdCxzKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gaShlLHQpe3R8fCh0PXt9KSwiZnVuY3Rpb24iPT10eXBlb2YgdCYmKHQ9e2NtcDp0fSk7dmFyIHM9dC5zcGFjZXx8IiI7Im51bWJlciI9PXR5cGVvZiBzJiYocz1BcnJheShzKzEpLmpvaW4oIiAiKSk7dmFyIGksbz0iYm9vbGVhbiI9PXR5cGVvZiB0LmN5Y2xlcyYmdC5jeWNsZXMsYT10LnJlcGxhY2VyfHxmdW5jdGlvbihlLHQpe3JldHVybiB0fSxsPXQuY21wJiYoaT10LmNtcCxmdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24odCxzKXt2YXIgbj17a2V5OnQsdmFsdWU6ZVt0XX0scj17a2V5OnMsdmFsdWU6ZVtzXX07cmV0dXJuIGkobixyKX19KSx1PVtdO3JldHVybiBmdW5jdGlvbiBlKHQsaSxjLGQpe3ZhciBoPXM/IlxuIituZXcgQXJyYXkoZCsxKS5qb2luKHMpOiIiLHA9cz8iOiAiOiI6IjtpZihjJiZjLnRvSlNPTiYmImZ1bmN0aW9uIj09dHlwZW9mIGMudG9KU09OJiYoYz1jLnRvSlNPTigpKSx2b2lkIDAhPT0oYz1hLmNhbGwodCxpLGMpKSl7aWYoIm9iamVjdCIhPXR5cGVvZiBjfHxudWxsPT09YylyZXR1cm4gSlNPTi5zdHJpbmdpZnkoYyk7aWYobihjKSl7Zm9yKHZhciBtPVtdLF89MDtfPGMubGVuZ3RoO18rKyl7dmFyIGc9ZShjLF8sY1tfXSxkKzEpfHxKU09OLnN0cmluZ2lmeShudWxsKTttLnB1c2goaCtzK2cpfXJldHVybiJbIittLmpvaW4oIiwiKStoKyJdIn1pZigtMSE9PXUuaW5kZXhPZihjKSl7aWYobylyZXR1cm4gSlNPTi5zdHJpbmdpZnkoIl9fY3ljbGVfXyIpO3Rocm93IG5ldyBUeXBlRXJyb3IoIkNvbnZlcnRpbmcgY2lyY3VsYXIgc3RydWN0dXJlIHRvIEpTT04iKX11LnB1c2goYyk7dmFyIHk9cihjKS5zb3J0KGwmJmwoYykpO2ZvcihtPVtdLF89MDtfPHkubGVuZ3RoO18rKyl7dmFyIGY9ZShjLGk9eVtfXSxjW2ldLGQrMSk7aWYoZil7dmFyIHY9SlNPTi5zdHJpbmdpZnkoaSkrcCtmO20ucHVzaChoK3Mrdil9fXJldHVybiB1LnNwbGljZSh1LmluZGV4T2YoYyksMSksInsiK20uam9pbigiLCIpK2grIn0ifX0oeyIiOmV9LCIiLGUsMCl9cy5kKHQse3NvcnRlZFN0cmluZ2lmeTooKT0+aX0pO3ZhciBuPUFycmF5LmlzQXJyYXl8fGZ1bmN0aW9uKGUpe3JldHVybiJbb2JqZWN0IEFycmF5XSI9PT17fS50b1N0cmluZy5jYWxsKGUpfSxyPU9iamVjdC5rZXlzfHxmdW5jdGlvbihlKXt2YXIgdD1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5fHxmdW5jdGlvbigpe3JldHVybiEwfSxzPVtdO2Zvcih2YXIgaSBpbiBlKXQuY2FsbChlLGkpJiZzLnB1c2goaSk7cmV0dXJuIHN9fSwxMTM1NjcoZSx0LHMpeyJ1c2Ugc3RyaWN0IjtzLmQodCx7cHJlcGFyZUN1cnJlbmN5Rm9yRGlzcGxheTooKT0+cixwcmVwYXJlQ3VycmVuY3lWYWx1ZTooKT0+bn0pO3ZhciBpPXMoMTg1MjcxKTtmdW5jdGlvbiBuKGUpe2xldCB0PVtdO2NvbnN0IG49ZnVuY3Rpb24oZSl7c3dpdGNoKGUpe2Nhc2UiUENUIjpjYXNlIlBDVFBBUiI6cmV0dXJuIiUiO2Nhc2UiUENUR0RQIjpyZXR1cm4gaS50KG51bGwse2NvbnRleHQ6Il9tYXhfbGVuXzkifSxzKDU1ODQxMikpO2Nhc2UiREVHQyI6cmV0dXJuIuKEgyI7ZGVmYXVsdDpyZXR1cm4gZX19KGUuY3VycmVuY3lfY29kZXx8ZS52YWx1ZV91bml0X2lkfHwiIik7c3dpdGNoKGUubWVhc3VyZSl7Y2FzZSJwcmljZSI6Y2FzZSJ1bml0Ijp0PVtuLGUudW5pdF9pZF07YnJlYWs7ZGVmYXVsdDp0PVtuXX1yZXR1cm4gdC5maWx0ZXIoQm9vbGVhbikuam9pbigi4oCJL+KAiSIpfWZ1bmN0aW9uIHIoZSx0KXtyZXR1cm4iJSI9PT10JiZ2b2lkIDAhPT1lP3t2YWx1ZTpgJHtlfSVgLGN1cnJlbmN5OnZvaWQgMH06e3ZhbHVlOmUsY3VycmVuY3k6dHx8dm9pZCAwfX19LDQzMzUzNChlKXsKZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDQ0IDQ0IiB3aWR0aD0iNDQiIGhlaWdodD0iNDQiPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNMjkuNDggMTUuMzJjLS4xNi0uMTQtLjQtLjA3LS40OC4xM2E2LjA1IDYuMDUgMCAwIDEtMi4zOCAzLjEzIDYuMTYgNi4xNiAwIDAgMS0uOC40MmMtLjA2LjAzLS4xNC0uMDMtLjEzLS4xYTE5LjQ1IDE5LjQ1IDAgMCAwIC4wOC0uOXYtLjFjLjM4LTUuOTEtMi40My05LjEzLTQuNTktMTAuNDFhNy40IDcuNCAwIDAgMC0uNzktLjRjLS4xLS4wNS0uMjEuMTMtLjIuMjRhNS43IDUuNyAwIDAgMS0uMDQuNzN2LjAxYy0uMjcgMi40OS0yLjIyIDQuMjktNC4yMSA2LjE0LTEuNjMgMS41LTMuMjkgMy4wNS00LjExIDUuMDJhMTAuNDggMTAuNDggMCAwIDAtLjgzIDQuMDZBMTAuOSAxMC45IDAgMCAwIDIwLjE3IDM0Yy45NS0uNTkgMS4zNC0xLjgyIDEuMzMtMy4wNCAwLS4zNS0uMDQtLjctLjExLTEuMDMuMjggMCAuNjguMTQgMS4wNy40MUEzLjM2IDMuMzYgMCAwIDEgMjMuODMgMzQgMTAuODkgMTAuODkgMCAwIDAgMzMgMjMuMjljMC0zLjE1LTEuMzYtNS45OC0zLjUyLTcuOTdabS00LjU2IDE3LjRjNC4xLTEuMjMgNy4wOC01IDcuMDgtOS40MyAwLTIuNS0uOTQtNC43OC0yLjUtNi41MmE2LjQzIDYuNDMgMCAwIDEtMy4yNyAzLjE0bS0xLjMgMTIuODFhNC4zIDQuMyAwIDAgMC0yLjItMy4zOWMtLjQtLjIzLS44OC0uNC0xLjM0LS40aC0xLjIybC4yNCAxLjJjLjEzLjYyLjEyIDEuMy0uMDMgMS44Ni0uMS40MS0uMjcuNzMtLjQ4Ljk0QTkuOSA5LjkgMCAwIDEgMTIgMjMuM2MwLTEuMy4yNy0yLjUzLjc1LTMuNjcuNDItMSAxLjEtMS45MSAxLjk1LTIuODEuNi0uNjQgMS4yMy0xLjIzIDEuOS0xLjg0bC44Ny0uODJjMS41Ny0xLjUgMy4yLTMuMjIgMy42MS01LjU0IDEuOSAxLjM0IDQuMjkgNC40NCAzLjYxIDEwLjE2LS4wOS43OC43IDEuNTIgMS41NSAxLjE0Ii8+PC9zdmc+J30sODczNzk0KGUpe2UuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0NCA0NCIgd2lkdGg9IjQ0IiBoZWlnaHQ9IjQ0Ij48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGQ9Ik0yOCAxNkgxNnYxaDEydi0xWk0yOCAyMEgxNnYxaDEydi0xWk0xNiAyNGgxMnYxSDE2di0xWiIvPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJtMjIgMzAtMTAgNFYxMmExIDEgMCAwIDEgMS0xaDE4YTEgMSAwIDAgMSAxIDF2MjJsLTEwLTRabS05IDIuNTJWMTJoMTh2MjAuNTJsLTktMy42LTkgMy42WiIvPjwvc3ZnPid9LDgwOTQzNihlKXsidXNlIHN0cmljdCIKO2UuZXhwb3J0cz1KU09OLnBhcnNlKCd7ImR1ciI6IjM1MG1zIiwiZHVyLWZhc3QiOiI2MG1zIiwiZWFzZS1pbi1saWtlIjoiY3ViaWMtYmV6aWVyKDAuMzMsIDAsIDAuMTEsIDEpIiwiZWFzZS1vdXQtbGlrZSI6ImN1YmljLWJlemllcigwLjg5LCAwLCAwLjY3LCAxKSIsInNpemUtZmVlZC1pdGVtLXdpZHRoIjoiNDgwcHgiLCJzaXplLWZlZWQtaGlkZW50IjoiMjBweCIsInNpemUtZmVlZC12aWRlbnQiOiIyMHB4Iiwic2l6ZS1iYXNlLWluZGVudCI6IjRweCIsInNpemUtbGF5b3V0LXNtYWxsLWhvcnpwYWRkaW5nIjoiMTJweCIsInNpemUtbGF5b3V0LWhvcnpwYWRkaW5nIjoiMjBweCIsInNpemUtZHJhd2luZ3MtdG9vbGJhci1pdGVtLWhlaWdodCI6IjM4cHgiLCJzaXplLWhlYWRlci1saW5raW5kZW50IjoiMTVweCIsInNpemUtaGVhZGVyLWhlaWdodCI6IjY0cHgiLCJzaXplLW5hdi1oZWFkZXItaGVpZ2h0IjoiNThweCIsInNpemUtc3RpY2t5LXN5bWJvbC1oZWFkZXItaGVpZ2h0IjoiNjRweCIsInNpemUtZGlhbG9nLWZpeGVkLWhlYWRlci1oZWlnaHQiOiI3MnB4Iiwic2l6ZS1zaXRlLXdpZGdldC1wYWRkaW5nIjoiMjBweCIsInNpemUtc2l0ZS13aWRnZXQtcGFkZGluZy10YWJsZXQiOiIxMnB4Iiwic2l6ZS1jb2xsYXBzZS10YWJzLWhlaWdodCI6IjU2cHgiLCJzaXplLW5vLXNjcm9sbC1jaG9pY2VyLWhlaWdodCI6IjU2cHgiLCJzaXplLW1haW4tY2hhcnQtYXJlYS1pbmRlbnQiOiI0cHgiLCJzaXplLW1haW4tY2hhcnQtYXJlYS1yYWRpdXMiOiIwIiwic2l6ZS1zZWFyY2hiYXItaGVpZ2h0IjoiODBweCIsInNpemUtc2VhcmNoYmFyLWhlaWdodC10YWJsZXQiOiI1NHB4Iiwic2l6ZS1zZWFyY2hiYXItYnRuLXdpZHRoLXRhYmxldCI6IjY2cHgiLCJzaXplLWNvbnRlbnQtdG9wLXZpbmRlbnQiOiI0OHB4Iiwic2l6ZS1sYXlvdXQtd2lkdGgiOiIxMDIwcHgiLCJzaXplLWxheW91dC13aWR0aC13aWRlIjoiMTUyMHB4Iiwic2l6ZS1jaGVja2JveC1zaWRlIjoiMThweCIsInNpemUtY2hlY2tib3gtY2xpY2stZXhwYW5kIjoiMTBweCIsInNpemUtY29udHJvbC1pbnB1dC1oZWlnaHQtLXhzbWFsbCI6IjE5cHgiLCJzaXplLWNvbnRyb2wtaW5wdXQtaGVpZ2h0LS1zbWFsbCI6IjI3cHgiLCJzaXplLWNvbnRyb2wtaW5wdXQtaGVpZ2h0IjoiMzRweCIsInNpemUtY29udHJvbC1pbnB1dC1oZWlnaHQtLWxhcmdlIjoiNDhweCIsInNpemUtY29udHJvbC1pbnB1dC1wYWRkaW5nLWhvcnoiOiIxMnB4Iiwic2l6ZS10YWJzLWhvcnotaW5kZW50IjoiMTZweCIsInNpemUtYXZhdGFyLWJvcmRlci1yYWRpdXMiOiIzcHgiLCJzaXplLWNoYXJ0LXZpZXctc3BhY2luZyI6IjI1cHgiLCJzaXplLWNoYXJ0LXZpZXctc3BhY2luZy10YWJsZXQiOiIyMHB4IiwicmFkaXVzLWVtYmVkLXdpZGdldC13cmFwcGVyIjoiM3B4IiwidHlwb2dyYXBoeS1wbGF0Zm9ybS1yZWd1bGFyLTE2cHgtbGluZS1oZWlnaHQiOiIyNHB4IiwidHlwb2dyYXBoeS1wbGF0Zm9ybS1yZWd1bGFyLTE4cHgtbGluZS1oZWlnaHQiOiIyOHB4IiwibWVkaWEtbm90ZWJvb2siOiJhbGwgYW5kIChtYXgtd2lkdGg6IDE1MzBweCkiLCJtZWRpYS10YWJsZXQiOiJhbGwgYW5kIChtYXgtd2lkdGg6IDEwMTlweCkiLCJtZWRpYS1waG9uZSI6ImFsbCBhbmQgKG1heC13aWR0aDogNzY3cHgpIiwibWVkaWEtcGhvbmUtdmVydGljYWwiOiJhbGwgYW5kIChtYXgtd2lkdGg6IDQ3OXB4KSIsIm1lZGlhLWV4dHJlbWUtdGhpbiI6ImFsbCBhbmQgKG1heC13aWR0aDogMzI5cHgpIiwibWVkaWEtc2hvdy1kcmF3ZXIiOiJhbGwgYW5kIChtYXgtd2lkdGg6IDU2N3B4KSIsIm1lZGlhLW1mLWxlZ2FjeS1waG9uZS12ZXJ0aWNhbCI6ImFsbCBhbmQgKG1pbi13aWR0aDogMzMwcHgpIiwibWVkaWEtbWYtbGVnYWN5LXBob25lIjoiYWxsIGFuZCAobWluLXdpZHRoOiA0ODBweCkiLCJtZWRpYS1tZi1sZWdhY3ktbm90ZWJvb2siOiJhbGwgYW5kIChtaW4td2lkdGg6IDEwMjBweCkiLCJtZWRpYS1tZi1sZWdhY3ktZGVza3RvcC1tZWRpdW0iOiJhbGwgYW5kIChtaW4td2lkdGg6IDE0ODBweCkiLCJtZWRpYS1tZi1sZWdhY3ktZGVza3RvcCI6ImFsbCBhbmQgKG1pbi13aWR0aDogMTUzMXB4KSIsIm1lZGlhLW1mLXBob25lLXZlcnRpY2FsIjoiYWxsIGFuZCAobWluLXdpZHRoOiAzMjBweCkiLCJtZWRpYS1tZi1waG9uZS1sYW5kc2NhcGUiOiJhbGwgYW5kIChtaW4td2lkdGg6IDU2OHB4KSIsIm1lZGlhLW1mLXRhYmxldC12ZXJ0aWNhbCI6ImFsbCBhbmQgKG1pbi13aWR0aDogNzY4cHgpIiwibWVkaWEtbWYtdGFibGV0LWxhbmRzY2FwZSI6ImFsbCBhbmQgKG1pbi13aWR0aDogMTAyNHB4KSIsIm1lZGlhLW1mLWxhcHRvcCI6ImFsbCBhbmQgKG1pbi13aWR0aDogMTI4MHB4KSIsIm1lZGlhLW1mLWRlc2t0b3AtbWVkaXVtIjoiYWxsIGFuZCAobWluLXdpZHRoOiAxNDQwcHgpIiwibWVkaWEtbWYtZGVza3RvcC1sYXJnZSI6ImFsbCBhbmQgKG1pbi13aWR0aDogMTkyMHB4KSIsIm1lZGlhLW1mLWRlc2t0b3AtZXh0cmEtbGFyZ2UiOiJhbGwgYW5kIChtaW4td2lkdGg6IDI1NjBweCkiLCJjb250YWluZXItdGFibGV0IjoiKG1heC13aWR0aDogMTAxOXB4KSIsImNvbnRhaW5lci1waG9uZSI6IihtYXgtd2lkdGg6IDc2N3B4KSIsImNvbnRhaW5lci1waG9uZS12ZXJ0aWNhbCI6IihtYXgtd2lkdGg6IDQ3OXB4KSIsImNvbnRhaW5lci1tZi1waG9uZS12ZXJ0aWNhbCI6IihtaW4td2lkdGg6IDMwMHB4KSIsImNvbnRhaW5lci1tZi1waG9uZS1sYW5kc2NhcGUiOiIobWluLXdpZHRoOiA1NDhweCkiLCJjb250YWluZXItbWYtdGFibGV0LXZlcnRpY2FsIjoiKG1pbi13aWR0aDogNzAycHgpIiwiY29udGFpbmVyLW1mLXRhYmxldC1sYW5kc2NhcGUiOiIobWluLXdpZHRoOiA5NThweCkiLCJjb250YWluZXItbWYtbGFwdG9wIjoiKG1pbi13aWR0aDogMTIxNHB4KSIsImNvbnRhaW5lci1tZi1kZXNrdG9wLW1lZGl1bSI6IihtaW4td2lkdGg6IDEzNzRweCkiLCJjb250YWluZXItbWYtZGVza3RvcC1sYXJnZSI6IihtaW4td2lkdGg6IDE4NTRweCkiLCJjb250YWluZXItbWYtZGVza3RvcC1leHRyYS1sYXJnZSI6IihtaW4td2lkdGg6IDI0OTRweCkiLCJtZWRpYS1sYXB0b3AiOiJhbGwgYW5kIChtaW4td2lkdGg6IDEyODBweCkgYW5kIChtYXgtd2lkdGg6IDE0MzlweCkiLCJtZWRpYS1sYXB0b3AtYW5kLWRlc2t0b3AtbWVkaXVtIjoiYWxsIGFuZCAobWluLXdpZHRoOiAxMjgwcHgpIGFuZCAobWF4LXdpZHRoOiAxOTE5cHgpIiwibWVkaWEtbGFuZHNjYXBlIjoiYWxsIGFuZCAobWluLWRldmljZS13aWR0aDogMzc1cHgpIGFuZCAobWF4LWRldmljZS1oZWlnaHQ6IDgxMnB4KSBhbmQgKG9yaWVudGF0aW9uOiBsYW5kc2NhcGUpIiwibWVkaWEtcGhvbmUtbGFuZHNjYXBlIjoiYWxsIGFuZCAobWF4LWhlaWdodDogNDQwcHgpIGFuZCAob3JpZW50YXRpb246IGxhbmRzY2FwZSkiLCJtZWRpYS13aWRnZXRiYXItYnJlYWtwb2ludCI6ImFsbCBhbmQgKG1heC13aWR0aDogMTA2NHB4KSIsInotaW5kZXgtY29udGVudC1wYWdlIjoxLCJ6LWluZGV4LWNoYXJ0LWxlZ2VuZCI6Niwiei1pbmRleC1jaGFydC1yaWdodC1jb3JuZXItY29udHJvbHMiOjcsInotaW5kZXgtbG9hZGluZy1zY3JlZW4iOjgsInotaW5kZXgtZHJvcGRvd24iOjk5LCJ6LWluZGV4LXRvb2xiYXItcG9wdXAtbWVudSI6MTAwLCJ6LWluZGV4LXRvb2x0aXAiOjEwMDAsInotaW5kZXgtdXNlci1saW5rLXBvcHVwIjo5MDAsInotaW5kZXgtc3RpY2t5LXNlYXJjaC1iYXIiOjEwMSwiei1pbmRleC1yZXNpemFibGUtZHJhd2VyIjo4MDAsInotaW5kZXgtZnVsbHNjcmVlbiI6MTAyLCJkaXNhYmxlZC1zdGF0ZS1vcGFjaXR5IjowLjUsInNpemUtZ2FwLW1pbmltdW0iOiIyMHB4Iiwic2l6ZS1nYXAtbWVkaXVtIjoiNDBweCIsInNpemUtZ2FwLW1heGltdW0iOiIxMDBweCJ9JykKfX0sZT0+e2UuTygwLFs3NzAzOF0sKCgpPT57Wzg0NjkzLDg4OTk3LDMwNjk5LDQ2MjE3LDY2OTMzLDcxMzE5XS5tYXAoZS5FKX0pLDUpO2UuTygwLFs1ODY2Nyw2MjM1MSw5NTExNCwzOTA1LDU0NjgxLDMxODM3LDUxNTA4LDQ5NTE4LDMyNjMyLDg0MDgsOTk1MjcsMTE0MDksMzAyMDAsNTI4NDIsODg5MDYsMTM4MDksODU1MTAsMzM3MzUsMTMxNDgsNDkyNjUsOTk4MjcsNTYyNTgsNTM2MjcsMzQ2NzgsNDQ5MTEsNjU4NjIsNTEwMzEsMzU1Miw5NDgyNSwxMjE4MSw2OTM0LDk1MjQ0LDU1OTY5LDkzNDI2LDYzMTYwLDk3NDcyLDU5NDY1XSwoKCk9PntyZXR1cm4gdD00NDM3NzYsZShlLnM9dCk7dmFyIHR9KSk7ZS5PKCl9XSk7"}},"time_used":9,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":9,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/89204.f6418fba73d397b29641.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:13.768Z","timestamp":1785148033768,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/89204.f6418fba73d397b29641.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:13 GMT\r\ncontent-type: text/css; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding, Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\netag: W/\"69f98b78-142\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Tue, 05 May 2026 06:17:28 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.51\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 05/05/2026 10:16:42\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 3c665a86a154551e9ea20e2f26dab855\r\ncdn-cache: HIT\r\ncontent-encoding: br\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":322,"size_decoded":1004,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with very long lines (322), with no line terminators","md5":"563945a9dc3f312146a5c158aa6e6ee9","sha1":"78cb43846e5dba44427d564e9102bc8b42099d12","sha256":"3eb3c2fc923c9e7a63bb29f65516f6a81786dbac6ef260ef42320d8dd906a9e0","sha512":"affae07e66af435a2825898cc8a27eee49f9e507ab4e765b0af5a96af6b4e80cfc8cedec4bd0c8b89033e405e0630ae24042553f017bb1f29360d57fbd1aa04d","ssdeep":"","tlshash":"5de07d062634443ec48b4a39bec34337c874c641dee27a9ba113b10611b223507f530f","first_seen":"2026-04-10T04:33:31.665375Z","last_seen":"2026-07-27T12:54:15.374279Z","times_seen":644,"resource_available":false,"data":"Lmljb24tV0IyeTBFblB7YWxpZ24taXRlbXM6Y2VudGVyO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpyb3c7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjM1cyBjdWJpYy1iZXppZXIoLjE3NSwuODg1LC4zMiwxLjI3NSl9Lmljb24tV0IyeTBFblAgc3Zne2Rpc3BsYXk6YmxvY2s7ZmlsbDpjdXJyZW50Q29sb3I7aGVpZ2h0OjRweDt3aWR0aDo4cHh9Lmljb24tV0IyeTBFblAuZHJvcHBlZC1XQjJ5MEVuUHt0cmFuc2Zvcm06cm90YXRlKDE4MGRlZyl9Lmljb24tV0IyeTBFblAuZHJvcHBlZC1XQjJ5MEVuUDpkaXIocnRsKXt0cmFuc2Zvcm06cm90YXRlKC0xODBkZWcpfQ=="}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/93416.90818d73e0e3a9a9fe2a.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:13.902Z","timestamp":1785148033902,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/93416.90818d73e0e3a9a9fe2a.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:13 GMT\r\ncontent-type: text/css; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a58ab11-244\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Thu, 16 Jul 2026 09:57:37 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/16/2026 11:03:21\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 58206606dc91274199d8e70673e27aaa\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":580,"size_decoded":1088,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with very long lines (580), with no line terminators","md5":"34f5e63cca1a0c5f41a95164111b3b4c","sha1":"c652860824e5dfe8605dfd2c449ab1999dbb7320","sha256":"d836659d40ccee20b3bda744c4d2935c90d75eb285a16b35fea1a995e18a1d80","sha512":"4e47b6897f850a154d8b07315c97ee8b4d0b2f5d4909f78c8ccc1de89e165e871ba201c85af37eb3c384ef96de09c261da19a74b11a2290fa42b7872527a8638","ssdeep":"","tlshash":"02f04c1aa2b98f9f9063c899053cb21b5451dd93de221f27b6d8c52c81cbed71307a0c","first_seen":"2026-07-17T03:30:51.191624Z","last_seen":"2026-07-27T12:48:39.614018Z","times_seen":127,"resource_available":false,"data":"LmNoZWNrYm94LWhVc25uMlpfe2FsaWduLWl0ZW1zOmNlbnRlcjtkaXNwbGF5OmZsZXg7LXdlYmtpdC11c2VyLXNlbGVjdDpub25lO3VzZXItc2VsZWN0Om5vbmU7LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOnRyYW5zcGFyZW50O2N1cnNvcjpkZWZhdWx0O2ZvbnQtc2l6ZToxNHB4O2ZvbnQtc3RyZXRjaDpub3JtYWw7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC13ZWlnaHQ6NDAwO2dhcDo4cHg7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO2xpbmUtaGVpZ2h0Om5vcm1hbH0uY2hlY2tib3gtaFVzbm4yWl8ucmV2ZXJzZS1oVXNubjJaX3tmbGV4LWRpcmVjdGlvbjpyb3ctcmV2ZXJzZTtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmR9LmNoZWNrYm94LWhVc25uMlpfLmJhc2VsaW5lLWhVc25uMlpfe2FsaWduLWl0ZW1zOmZsZXgtc3RhcnR9LmxhYmVsLWhVc25uMlpfe21pbi13aWR0aDowfS5kaXNhYmxlZC1oVXNubjJaX3tvcGFjaXR5Oi41fS5wcmltYXJ5LWhVc25uMlpfe2NvbG9yOnZhcigtLWNvbG9yLXRleHQtcHJpbWFyeSl9LmRhbmdlci1oVXNubjJaX3tjb2xvcjp2YXIoLS1jb2xvci1jb250cm9sLWludGVudC1kYW5nZXIpfQ=="}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/75217.8bfd234354863130e2e0.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:13.917Z","timestamp":1785148033917,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/75217.8bfd234354863130e2e0.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:13 GMT\r\ncontent-type: text/css; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a323ca6-c52\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Wed, 17 Jun 2026 06:20:22 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.57\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 06/17/2026 11:15:35\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 80d2303c90bdf68cdeb73896b574756c\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":3154,"size_decoded":1710,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with very long lines (3154), with no line terminators","md5":"3769691bb164341f7e317cc239ff0c44","sha1":"30fb0806e24700cbe465c6e23625f8c54f7d81d0","sha256":"5a44f7b43f7cddd61283088bc8588ab2e403da2614a2b11033b868fe41252f57","sha512":"af441b79c8ec24b217485a344904104dfdbeeb191c486f83c61059638f6ec7ad8d10444382314e3be3339643770c1e016f64a4d41c108fe0d4c7b3ca23c23d93","ssdeep":"","tlshash":"d1512130e7e9ebbb7e1e9612f38082caa443de56da1e8cb65c87d59190d05c106313fd","first_seen":"2026-06-17T17:50:59.571321Z","last_seen":"2026-07-27T12:57:36.973236Z","times_seen":424,"resource_available":false,"data":"W2RhdGEtdGhlbWU9bGlnaHRdey0tXzAtTjVoMzp2YXIoLS1jb2xvci1jb2xkLWdyYXktMTAwKX1bZGF0YS10aGVtZT1kYXJrXXstLV8wLU41aDM6dmFyKC0tY29sb3ItY29sZC1ncmF5LTgwMCl9LnBvcHVwV2lkZ2V0V3JhcHBlci1BNHYwZGwxN3tiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXR2LWNvbG9yLXBvcHVwLWJhY2tncm91bmQsdmFyKC0tY29sb3ItcG9wdXAtYmFja2dyb3VuZCkpO2JvcmRlci1yYWRpdXM6NnB4O2JveC1zaGFkb3c6MCAycHggNHB4IHZhcigtLWNvbG9yLXNoYWRvdy1wcmltYXJ5LW5ldXRyYWwtZXh0cmEtaGVhdnkpfS5wb3B1cFdpZGdldFdpZHRoLUE0djBkbDE3ey0tdWktbGliLWluLXBvc2l0aW9uZXItbWF4V2lkdGg6MzgwcHg7LS11aS1saWItaW4tcG9zaXRpb25lci1taW5XaWR0aDptaW4oMzgwcHgsdmFyKC0tdWktbGliLW91dC1wb3NpdGlvbmVyLWFuY2hvcldpZHRoLDBweCkpfS5wb3B1cFdpZGdldC1BNHYwZGwxN3tib3gtc2l6aW5nOmJvcmRlci1ib3g7ZGlzcGxheTpmbGV4O21hcmdpbi1pbmxpbmUtZW5kOmNhbGModmFyKC0tdWktbGliLXBvcG92ZXItY29udGVudC12ZXJ0aWNhbC1jYWxjdWxhdGVkLXBhZGRpbmcsIDBweCkqLTEpO21hcmdpbi1pbmxpbmUtc3RhcnQ6Y2FsYyh2YXIoLS11aS1saWItcG9wb3Zlci1jb250ZW50LXZlcnRpY2FsLWNhbGN1bGF0ZWQtcGFkZGluZywgMHB4KSotMSk7b3V0bGluZTpub25lO3BhZGRpbmc6MTZweH0ucG9wdXBXaWRnZXQtQTR2MGRsMTc6bGFzdC1jaGlsZHtwYWRkaW5nLWJvdHRvbToxMHB4fS5wb3B1cFdpZGdldC1BNHYwZGwxNzpmaXJzdC1jaGlsZHtwYWRkaW5nLXRvcDoxMXB4fUBtZWRpYSAobWluLXdpZHRoOjQ0MHB4KXsucG9wdXBXaWRnZXQtQTR2MGRsMTcubGFyZ2UtQTR2MGRsMTd7bWF4LXdpZHRoOjM1NHB4fS5wb3B1cFdpZGdldC1BNHYwZGwxNy5tb2JpbGUtQTR2MGRsMTd7bWF4LXdpZHRoOjEwMCV9LnBvcHVwV2lkZ2V0LUE0djBkbDE3e21heC13aWR0aDozNDRweH19LnBvcHVwV2lkZ2V0LUE0djBkbDE3Om5vdCg6bGFzdC1jaGlsZCl7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgdmFyKC0tXzAtTjVoMyl9LnBvcHVwV2lkZ2V0LUE0djBkbDE3IC5kZXNjLUE0djBkbDE3e2Rpc3BsYXk6ZmxleDtmbGV4OjEgMSBhdXRvO2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjttYXgtd2lkdGg6MTAwJTt3aWR0aDpjYWxjKDEwMCUgLSAxNnB4KTt3b3JkLXdyYXA6YnJlYWstd29yZDtvdmVyZmxvdzpoaWRkZW59LnBvcHVwV2lkZ2V0LUE0djBkbDE3IC5pY29uLUE0djBkbDE3e2ZsZXg6MCAwIGF1dG87bWFyZ2luLWJsb2NrOjJweCAycHg7bWFyZ2luLWlubGluZTowIDZweDtvdmVyZmxvdzpoaWRkZW59LnBvcHVwV2lkZ2V0LUE0djBkbDE3IC5pY29uLUE0djBkbDE3LnNtYWxsLUE0djBkbDE3e2JvcmRlci1yYWRpdXM6OXB4O2hlaWdodDoxOHB4O3dpZHRoOjE4cHh9LnBvcHVwV2lkZ2V0LUE0djBkbDE3IC5pY29uLUE0djBkbDE3Lm1lZGl1bS1BNHYwZGwxN3tib3JkZXItcmFkaXVzOjExcHg7aGVpZ2h0OjIycHg7d2lkdGg6MjJweH0ucG9wdXBXaWRnZXQtQTR2MGRsMTcgLmljb24tQTR2MGRsMTcubGFyZ2UtQTR2MGRsMTd7Ym9yZGVyLXJhZGl1czo4cHg7aGVpZ2h0OjI4cHg7d2lkdGg6MjhweH0ucG9wdXBXaWRnZXQtQTR2MGRsMTcgLnRpdGxlLUE0djBkbDE3e2FsaWduLWl0ZW1zOmNlbnRlcjtjb2x1bW4tZ2FwOjZweDtkaXNwbGF5OmZsZXg7Zm9udC13ZWlnaHQ6NjAwfS5wb3B1cFdpZGdldC1BNHYwZGwxNyAudGl0bGUtQTR2MGRsMTcuc21hbGwtQTR2MGRsMTd7Zm9udC1zaXplOjE2cHg7bGluZS1oZWlnaHQ6MjJweDttYXJnaW4tYm90dG9tOjRweH0ucG9wdXBXaWRnZXQtQTR2MGRsMTcgLnRpdGxlLUE0djBkbDE3Lm1lZGl1bS1BNHYwZGwxN3tmb250LXNpemU6MThweDtsaW5lLWhlaWdodDoyNnB4O21hcmdpbi1ib3R0b206MnB4fS5wb3B1cFdpZGdldC1BNHYwZGwxNyAudGl0bGUtQTR2MGRsMTcubGFyZ2UtQTR2MGRsMTd7Zm9udC1zaXplOjE4cHg7bGluZS1oZWlnaHQ6MzJweDttYXJnaW4tYm90dG9tOjJweH0ucG9wdXBXaWRnZXQtQTR2MGRsMTcgLnRleHQtQTR2MGRsMTcuc21hbGwtQTR2MGRsMTd7Zm9udC1zaXplOjE0cHg7bGluZS1oZWlnaHQ6MjFweH0ucG9wdXBXaWRnZXQtQTR2MGRsMTcgLnRleHQtQTR2MGRsMTcubGFyZ2UtQTR2MGRsMTcsLnBvcHVwV2lkZ2V0LUE0djBkbDE3IC50ZXh0LUE0djBkbDE3Lm1lZGl1bS1BNHYwZGwxN3tmb250LXNpemU6MTZweDtsaW5lLWhlaWdodDoyNXB4fS5wb3B1cFdpZGdldC1BNHYwZGwxNyAudGV4dC1BNHYwZGwxNyAuaXRlbS1BNHYwZGwxNzpub3QoOmxhc3QtY2hpbGQpOmFmdGVye2NvbnRlbnQ6IiAifS5wb3B1cFdpZGdldC1BNHYwZGwxNyAudGV4dC1BNHYwZGwxNyAuYm9sZEl0ZW0tQTR2MGRsMTd7Zm9udC13ZWlnaHQ6NzAwfS5wb3B1cFdpZGdldC1BNHYwZGwxNyAuYWN0aW9uLUE0djBkbDE3e2NvbG9yOnZhcigtLWNvbG9yLWJyYW5kKTttYXJnaW4tdG9wOjhweH0ucG9wdXBXaWRnZXQtQTR2MGRsMTcgLmFjdGlvbi1BNHYwZGwxNy5zbWFsbC1BNHYwZGwxN3tmb250LXNpemU6MTRweDtsaW5lLWhlaWdodDoyMXB4fS5wb3B1cFdpZGdldC1BNHYwZGwxNyAuYWN0aW9uLUE0djBkbDE3LmxhcmdlLUE0djBkbDE3LC5wb3B1cFdpZGdldC1BNHYwZGwxNyAuYWN0aW9uLUE0djBkbDE3Lm1lZGl1bS1BNHYwZGwxN3tmb250LXNpemU6MTZweDtsaW5lLWhlaWdodDoyNXB4fS5wb3B1cFdpZGdldC1BNHYwZGwxNyAuYWN0aW9uLUE0djBkbDE3LmxhcmdlLUE0djBkbDE3e2N1cnNvcjpwb2ludGVyfS5wb3B1cFdpZGdldC1BNHYwZGwxNyAuYWN0aW9uQnRuLUE0djBkbDE3e2FsaWduLXNlbGY6c3RhcnQ7bWFyZ2luLXRvcDo4cHh9LnBvcHVwV2lkZ2V0LUE0djBkbDE3IC5hY3Rpb25zLUE0djBkbDE3e2FsaWduLWl0ZW1zOmNlbnRlcjtkaXNwbGF5OmZsZXg7ZmxleC13cmFwOndyYXA7Z2FwOjhweH0ucG9wdXBXaWRnZXQtQTR2MGRsMTcgLmFjdGlvbnMtQTR2MGRsMTcgLmFjdGlvbkJ0bi1BNHYwZGwxN3ttYXJnaW4tdG9wOjhweH0uYWRkaXRpb25hbFdpZGdldC1BNHYwZGwxN3ttYXJnaW4tYm90dG9tOjEycHg7bWFyZ2luLXRvcDoxMnB4fS5hZGRpdGlvbmFsV2lkZ2V0LUE0djBkbDE3Omxhc3QtY2hpbGR7bWFyZ2luLWJvdHRvbTowfQ=="}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/10385.8744d4f8670dac310d1f.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:13.761Z","timestamp":1785148033761,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/10385.8744d4f8670dac310d1f.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:13 GMT\r\ncontent-type: text/css; charset=utf-8\r\ncontent-length: 82\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\netag: \"69f98b72-52\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Tue, 05 May 2026 06:17:22 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.51\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 05/05/2026 10:16:42\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 4400afd3d1cdae145268b943a958e3e9\r\ncdn-cache: HIT\r\naccept-ranges: bytes\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":82,"size_decoded":866,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with no line terminators","md5":"9c95d3a949cd65153c73fef9b7436e51","sha1":"2481fdfca00fe9dd2dbdcc9cef393f2bfa940e0f","sha256":"8a7a6dad3d21341892305029b6f16da6eb7b1618e90462b3a0fac8b37b7b32ef","sha512":"3f37d27a43edad41d3c4249ef19dde0b693557e7da003f10173dcb04d10120fd18ac1ee9a303edaf615ca4aac0b6628a11223b7826c35112667e286163a908c4","ssdeep":"","tlshash":"a2a0122876d61555f507302987648d0460484510440087165a1d5491d0811ed1591240","first_seen":"2025-07-09T18:19:43.633418Z","last_seen":"2026-07-27T12:48:39.616018Z","times_seen":656,"resource_available":false,"data":"LnNlcGFyYXRvci1QZjRySXpFdHtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLWRpdmlkZXIpO2hlaWdodDoxcHg7bWFyZ2luOjhweCAwfQ=="}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/71901.43d5b48d9643656bfd2c.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:13.786Z","timestamp":1785148033786,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/71901.43d5b48d9643656bfd2c.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:13 GMT\r\ncontent-type: text/css; charset=utf-8\r\ncontent-length: 31\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\netag: \"6a4360b8-1f\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Tue, 30 Jun 2026 06:22:48 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.57\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 06/30/2026 11:55:10\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: ba599966a4233fd956a95f071bba940b\r\ncdn-cache: HIT\r\naccept-ranges: bytes\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":31,"size_decoded":815,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with no line terminators","md5":"6f60c3725f61aa347ed7762fdf8fdf11","sha1":"0eb08b4e1af29799e916fc9d9386cb6c96d13d78","sha256":"08a238fafe5ccfdeb182eb61a9597d32a7e3cfad290a0ce62061302fadafa0e4","sha512":"e1c14f942cbbebbb809b688c5956540410d65d8192ab5b374a7f7355488382dd907b31b68573381b5c399d38cd1490b3ca92187cb5c60c2ef9b8e83a6f889b01","ssdeep":"","tlshash":"d380008a0a0228ea038c8280cc0320a8b3080ca0002030bf800a2afc2280082a0bc80a","first_seen":"2026-06-30T21:57:43.490808Z","last_seen":"2026-07-27T12:48:39.766424Z","times_seen":239,"resource_available":false,"data":"LmJ1dHRvbi1GRHRpRGJ5antwYWRkaW5nOjAgNXB4fQ=="}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/en.49677.098688b37f7855b4c79b.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:13.865Z","timestamp":1785148033865,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/en.49677.098688b37f7855b4c79b.js HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:13 GMT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a632876-32e7\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Fri, 24 Jul 2026 08:55:18 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/24/2026 10:31:24\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: d51a5e1aa280151d25c2b2fbebf4f56b\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":13031,"size_decoded":5445,"mime_type":"application/javascript; charset=utf-8","magic":"Unicode text, UTF-8 text, with very long lines (3051)","md5":"0f6776037f5de9e4c3f9207486f0f7b2","sha1":"783fbc6385122ea3c305de021a71b08abbb0fe13","sha256":"dce110ca579172bc1139100317015723ce296c628363106c1f5f2f4567c0ee5b","sha512":"cd35bafd0f45ba936b47aafdca6062140e335ebd2f5af9fe5de62b033302b464c56fadcd87e9ecef463689aaece2f2c72b8da59c89c1700df22b99c4bd4721fe","ssdeep":"192:gYx48+UxlRhelpk8aH7usVSBzl97rUv1sSM5jyHw8BedM3Mj45shOAlJH2Ew+41q:7+UXRheQl5Kzl98tm5jdhj45kJHlzN","tlshash":"4a42e917d100c2f60fb0e662b749edd1b6f8b09893f1e0c673998f689207d65a92d778","first_seen":"2026-07-22T16:00:00.332154Z","last_seen":"2026-07-27T12:53:06.194945Z","times_seen":131,"resource_available":true,"data":"KHNlbGYud2VicGFja0NodW5rdHJhZGluZ3ZpZXc9c2VsZi53ZWJwYWNrQ2h1bmt0cmFkaW5ndmlld3x8W10pLnB1c2goW1syNzI5Miw0MjA5Niw0OTUwMSw0OTY3Nyw5NDk0N10sezIyOTAyNShlKXtlLmV4cG9ydHM9WyJDYm9lIE9uZSJdfSwzMDAyNzEoZSl7ZS5leHBvcnRzPVsie2V4Y2hhbmdlfSBieSB7b3JpZ2luYWxFeGNoYW5nZX0iXX0sMTY3OTEyKGUpe2UuZXhwb3J0cz1bIkV4Y2hhbmdlIGRpc2NsYWltZXIiXX0sMjQ0MTAoZSl7ZS5leHBvcnRzPVsiSGFwcHkgaG9saWRheXMsIHRyYWRlcnMiXX0sOTgxODcyKGUpe2UuZXhwb3J0cz1bIkxldCBpdCBzbm93Il19LDQ4OTIwMChlKXtlLmV4cG9ydHM9WyJTdG9wIHRoZSBzbm93Il19LDMwNTA1NShlKXtlLmV4cG9ydHM9WyJTaG93IG9iamVjdCB0cmVlIl19LDEwOTYwMShlKXtlLmV4cG9ydHM9WyJMZWFybiBtb3JlIl19LDEzODE4MChlKXtlLmV4cG9ydHM9WyJTZWUgcmV2aWV3cyJdfSw4OTQyMjEoZSl7ZS5leHBvcnRzPVsiQ29udGludW91cyBmdXR1cmVzIGNvbnRyYWN0cyJdfSwyNzE3ODgoZSl7ZS5leHBvcnRzPVsiQ29udHJhY3QgZXhwaXJlZCJdfSw1MjYxNzQoZSl7ZS5leHBvcnRzPVsiQmxhbmsgY2hlY2sgY29tcGFueSJdfSwzMzM4ODQoZSl7ZS5leHBvcnRzPVsiRGVmYXVsdGVkIGJvbmQiXX0sNTY4NTUxKGUpe2UuZXhwb3J0cz1bIkRlbGlzdGVkIl19LDc1NjgwNihlKXtlLmV4cG9ydHM9WyJEZWxpc3RlZCBhbGVydCJdfSwxNjM4MDYoZSl7ZS5leHBvcnRzPVsiRGVyaXZlZCBEYXRhIl19LDQxNzkxKGUpe2UuZXhwb3J0cz1bIkhhbGFsIHN5bWJvbCJdfSw4MzYxMjMoZSl7ZS5leHBvcnRzPVsiU3ludGhldGljIHN5bWJvbCJdfSwxMTk1KGUpe2UuZXhwb3J0cz1bIlVwY29taW5nIElQTyJdfSwyMzIxNDkoZSl7ZS5leHBvcnRzPVsiUmVhbC10aW1lIGRhdGEgZm9yIHtzeW1ib2xOYW1lfSJdfSw0MDkwMTkoZSl7ZS5leHBvcnRzPVsiaXMgcHJvdmlkZWQgYnkge2V4Y2hhbmdlfSBleGNoYW5nZS4iXX0sOTAwNDI1KGUpe2UuZXhwb3J0cz1bIkdvIHRoZXJlIG5vdyJdfSwyOTQ2MTgoZSl7ZS5leHBvcnRzPVsiT3BlbmVkIGluIFBpbmUgRWRpdG9yIl19LDc3NDI4KGUpe2UuZXhwb3J0cz1bIk9wZW5lZCBpbiBib3R0b20gcGFuZWwiXX0sOTkyNjM2KGUpe2UuZXhwb3J0cz1bIkxlYXJuIG1vcmUiXX0sNDczNDI1KGUpe2UuZXhwb3J0cz1bIkRhdGEgaXMgZGVsYXllZCJdfSw0MzU3NTAoZSl7ZS5leHBvcnRzPVsiUmVtb3ZlIHNlbGVjdGVkIHN5bWJvbHM/Il19LDgyNjg3MyhlKXtlLmV4cG9ydHM9WyJVbmZsYWcgYWxsIHN5bWJvbHM/Il19LDQxNzE5MShlKXtlLmV4cG9ydHM9WyJVbmZsYWcgc2VsZWN0ZWQgc3ltYm9scz8iXX0sMzA5MzMoZSl7ZS5leHBvcnRzPVsiQ2FuY2VsIl19LDEwOChlKXtlLmV4cG9ydHM9WyJSZW1vdmUiXX0sODM1OTM3KGUpe2UuZXhwb3J0cz1bIlVuZmxhZyJdfSwzNzE4MTUoZSl7ZS5leHBvcnRzPVsiT3BlbiBTdHJhdGVneSBSZXBvcnQiXX0sNjUxNjM4KGUpe2UuZXhwb3J0cz1bIk5ldyB3YXRjaGxpc3QgbmFtZSJdfSw4MTkxNjMoZSl7ZS5leHBvcnRzPVsiSW4gZnVuY3Rpb24iXX0sODg2MTMzKGUpe2UuZXhwb3J0cz1bIk9uIGJhciJdfSw4OTAwOShlKXtlLmV4cG9ydHM9WyJDb2xsYXBzZSBwYW5lIl19LDI3MjA3NChlKXtlLmV4cG9ydHM9WyJDb25uZWN0IHRvIG91ciByZWNvbW1lbmRlZCBicm9rZXIgdG8gdHJhZGUgdGhpcyBhbmQgb3RoZXIgc3ltYm9scy4iXX0sNDQxNzYwKGUpe2UuZXhwb3J0cz1bIkNvbm5lY3QgdG8gb3VyIHJlY29tbWVuZGVkIGV4Y2hhbmdlIHRvIHRyYWRlIHRoaXMgYW5kIG90aGVyIHN5bWJvbHMuIl19LDI2NjUoZSl7ZS5leHBvcnRzPVsiQ2hhbmdlIHN5bWJvbCJdfSw0MjEyMShlKXtlLmV4cG9ydHM9WyJDaGFydCBzeW5jaW5nIl19LDU3MzM0NyhlKXtlLmV4cG9ydHM9WyJDaGFydCBzeW5jaW5nIHdpdGggZHJvcCBpY29uIl19LDYxNTIyMShlKXtlLmV4cG9ydHM9WyJDaGFydCBzeW5jaW5nIHdpdGggaGVhcnQgaWNvbiJdfSw3NjA1KGUpe2UuZXhwb3J0cz1bIkNoYXJ0IHN5bmNpbmcgd2l0aCBsZWFmIGljb24iXX0sOTIzOTA5KGUpe2UuZXhwb3J0cz1bIkNoYXJ0IHN5bmNpbmcgd2l0aCBwb28gaWNvbiJdfSw0NzkwNzgoZSl7ZS5leHBvcnRzPVsiQ2hhcnQgc3luY2luZyB3aXRoIHJob21iIGljb24iXX0sMjg4NTgwKGUpe2UuZXhwb3J0cz1bIkNoYXJ0IHZhbHVlcyJdfSwxODMxMzIoZSl7ZS5leHBvcnRzPVsiQ2hlY2sgd2hhdCdzIG5ldyJdfSwzNDk1MDEoZSl7ZS5leHBvcnRzPVsiQ2xpY2sgaGVyZSB0byBsZWFybiBtb3JlIl19LDI5OTkyNihlKXtlLmV4cG9ydHM9WyJDcmVhdGUgYSBmcmVlIGFjY291bnQiXX0sMTQ2ODQoZSl7ZS5leHBvcnRzPVsiQ3lhbiJdfSw4MzkzOTAoZSl7ZS5leHBvcnRzPVsiQ3lhbiBsaXN0Il19LDUzMzc5OShlKXtlLmV4cG9ydHM9WyJBIG5ldyB2ZXJzaW9uIG9mIHRoaXMgc2NyaXB0IGlzIHJlYWR5IOKAlCBub3cgd2l0aCBuZXcgZmVhdHVyZXMgYW5kIGltcG9ydGFudCBidWcgZml4ZXMuIl19LDc1ODU0OShlKXtlLmV4cG9ydHM9WyJBY3RpdmUgc3RyYXRlZ3kiXX0sMjQ1ODcwKGUpe2UuZXhwb3J0cz1bIkFsZXJ0cyJdfSw4OTk3OShlKXtlLmV4cG9ydHM9WyJCYXIgY2hhbmdlIHZhbHVlcyJdfSw2MzgxKGUpe2UuZXhwb3J0cz1bIkJsdWUiXX0sNTczODA3KGUpe2UuZXhwb3J0cz1bIkJsdWUgbGlzdCJdfSw2ODI2NjkoZSl7ZS5leHBvcnRzPVsiR3JlZW4iXX0sNDU5NDAyKGUpe2UuZXhwb3J0cz1bIkdyZWVuIGxpc3QiXX0sMTQ4ODY1KGUpe2UuZXhwb3J0cz1bIkRvdWJsZSBjbGljayJdfSw5NTg5NTEoZSl7ZS5leHBvcnRzPVsiRG9pbmcgdGhpcyB3aWxsIHVuZmxhZyBhbGwgc3ltYm9scyBmcm9tIGFsbCB5b3VyIHdhdGNobGlzdHMuIl19LDQ5NTM2OShlKXtlLmV4cG9ydHM9WyJEb2luZyB0aGlzIHdpbGwgdW5mbGFnIHNlbGVjdGVkIHN5bWJvbHMgZnJvbSB5b3VyIHdhdGNobGlzdC4iXX0sMjI4MDQxKGUpe2UuZXhwb3J0cz1bIkRhdGEgZXJyb3IiXX0sMTg3MjcyKGUpewplLmV4cG9ydHM9WyJEYXRhIGlzIHVwZGF0ZWQgb25jZSBhIGRheS4iXX0sMjI3MDg4KGUpe2UuZXhwb3J0cz1bIkRhdGEgaXMgdXBkYXRlZCBvbmNlIGEgZGF5LiBUbyBnZXQgcmVhbC10aW1lIGRhdGEgZm9yIHtsaXN0ZWRFeGNoYW5nZX0sIHBsZWFzZSBidXkgdGhlIHJlYWwtdGltZSBkYXRhIHBhY2thZ2UuIl19LDIzMzkxMihlKXtlLmV4cG9ydHM9WyJEYXRhIGlzIHVwZGF0ZWQgb25jZSBwZXIgc2Vjb25kLCBldmVuIGlmIHRoZXJlIGFyZSBtb3JlIHVwZGF0ZXMgb24gdGhlIG1hcmtldC4iXX0sODk1MzAwKGUpe2UuZXhwb3J0cz1bIkRhdGEgb24gb3VyIEJhc2ljIHBsYW4gaXMgdXBkYXRlZCBvbmNlIHBlciBzZWNvbmQsIGV2ZW4gaWYgdGhlcmUgYXJlIG1vcmUgdXBkYXRlcyBvbiB0aGUgbWFya2V0LiJdfSw4MzE5ODgoZSl7ZS5leHBvcnRzPVsiRGVsZXRlIHBhbmUiXX0sNzk3NDYwKGUpe2UuZXhwb3J0cz1bIkVuZCBvZiBkYXkgZGF0YSJdfSw4NDA4MyhlKXtlLmV4cG9ydHM9WyJFeGNoYW5nZSB0aW1lem9uZSJdfSw4NjM4NzcoZSl7ZS5leHBvcnRzPVsiRmlsbCBvdXQgRXhjaGFuZ2UgQWdyZWVtZW50cyJdfSwzMDgzOShlKXtlLmV4cG9ydHM9WyJGbGFnIHtzeW1ib2x9Il19LDcwNjQ4NihlKXtlLmV4cG9ydHM9WyJGbGFnIHN5bWJvbCJdfSw0MDQ1NDQoZSl7ZS5leHBvcnRzPVsiRnJvbSBvdXIgZmFtaWx5IHRvIHlvdXJzLCB3aXNoaW5nIHlvdSBhIG1lcnJ5IGZlc3RpdmUgc2Vhc29uLiJdfSw0NTc3NTAoZSl7ZS5leHBvcnRzPVsiSEtFWCBhbmQvb3IgYW55IHN1YnNpZGlhcmllcyBlbmRlYXZvdXIgdG8gZW5zdXJlIHRoZSBhY2N1cmFjeSBhbmQgcmVsaWFiaWxpdHkgb2YgdGhlIGluZm9ybWF0aW9uIHByb3ZpZGVkIGJ1dCBkbyBub3QgZ3VhcmFudGVlIGl0cyBhY2N1cmFjeSBvciByZWxpYWJpbGl0eSBhbmQgYWNjZXB0IG5vIGxpYWJpbGl0eSAod2hldGhlciBpbiB0b3J0IG9yIGNvbnRyYWN0IG9yIG90aGVyd2lzZSkgZm9yIGFueSBsb3NzIG9yIGRhbWFnZSBhcmlzaW5nIGZyb20gYW55IGluYWNjdXJhY2llcyBvciBvbWlzc2lvbnMuIl19LDczMjc3NihlKXtlLmV4cG9ydHM9WyJJbnZhbGlkIHN5bWJvbCJdfSw5MTkxMjEoZSl7ZS5leHBvcnRzPVsiSW5kaWNhdG9yIGVycm9yIl19LDIwNDQ4OChlKXtlLmV4cG9ydHM9WyJJbmRpY2F0b3IgaW5wdXRzIl19LDQ0MzE5MihlKXtlLmV4cG9ydHM9WyJJbmRpY2F0b3IgdGl0bGVzIl19LDk3Mzk3MShlKXtlLmV4cG9ydHM9WyJJbmRpY2F0b3IgdmFsdWVzIl19LDI0MzU0MShlKXtlLmV4cG9ydHM9WyJJbmRpY2F0b3JzIHVwZGF0ZSJdfSwxNjUwNTIoZSl7ZS5leHBvcnRzPVsiSWYgeW91J2QgbGlrZSB7bGlzdGVkRXhjaGFuZ2V9IHJlYWwtdGltZSBkYXRhIHlvdSdsbCBuZWVkIHRvIGNvbXBsZXRlIGFuIEV4Y2hhbmdlIEFncmVlbWVudC4gRG9uJ3Qgd29ycnksIGl0IG9ubHkgdGFrZXMgYSBmZXcgY2xpY2tzIl19LDg0MTc5OShlKXtlLmV4cG9ydHM9WyJJc3N1ZSBXaXRoIEZsYWdnaW5nIl19LDMzMDc2MChlKXtlLmV4cG9ydHM9WyJPbmUgdXBkYXRlIHBlciBzZWNvbmQiXX0sMzYyOTYoZSl7ZS5leHBvcnRzPVsiT29wcy4gU29tZXRoaW5nIGhhcyBnb25lIHdyb25nIHdpdGggb25lIG9yIG1vcmUgb2YgeW91ciBpbmRpY2F0b3JzLiBDbGljayB0aGUgYXJyb3cgYnV0dG9uIHRvIHRoZSBsZWZ0IHRvIGV4cGFuZCB0aGUgaW5kaWNhdG9yIGxpc3QgYW5kIHNlZSBkZXRhaWxzLiJdfSw4Nzk2NjEoZSl7ZS5leHBvcnRzPVsiT29wcy4gU29tZXRoaW5nIGhhcyBnb25lIHdyb25nIHdpdGggb25lIG9yIG1vcmUgb2YgeW91ciBpbmRpY2F0b3JzLiBSZXNpemUgdGhlIHBhbmVzIHRvIHNlZSB0aGUgZGV0YWlscy4iXX0sMTQyNzU1KGUpe2UuZXhwb3J0cz1bIk9ibGlnYXRpb24gbm90IHBhaWQuIElzc3VlciBwYXltZW50cyBhcmUgb3ZlciBhIG1vbnRoIGxhdGUsIHRoaXMgaXMgZHVlIHRvIGNvdXBvbiBvciBwcmluY2lwYWwgZGVidC4iXX0sNjQxMTA5KGUpe2UuZXhwb3J0cz1bIk9wZW4gaW4gZWRpdG9yIl19LDE2NTM0MChlKXtlLmV4cG9ydHM9WyJPcGVuIG1hcmtldCBzdGF0dXMiXX0sOTU4MjcxKGUpe2UuZXhwb3J0cz1bIk9wZW5lZCBpbiBkZXRhY2hlZCBlZGl0b3IiXX0sOTcxMjgzKGUpe2UuZXhwb3J0cz1bIk9yYW5nZSJdfSw1MDYzMzAoZSl7ZS5leHBvcnRzPVsiT3JhbmdlIGxpc3QiXX0sNjE1NzgzKGUpe2UuZXhwb3J0cz1bIk92ZXJuaWdodCJdfSw1MjcwMjAoZSl7ZS5leHBvcnRzPVsiTGFzdCBkYXkgY2hhbmdlIHZhbHVlcyJdfSwzMjUxNTUoZSl7ZS5leHBvcnRzPVsiTGVhcm4gbW9yZSJdfSw4MTQwNTgoZSl7ZS5leHBvcnRzPVsiTW92ZSBwYW5lIGRvd24iXX0sMzA1ODgyKGUpe2UuZXhwb3J0cz1bIk1vdmUgcGFuZSB1cCJdfSwzOTQ5NDcoZSl7ZS5leHBvcnRzPVsiTW9yZSJdfSw1NTEzMzIoZSl7ZS5leHBvcnRzPVsiTWF4aW1pemUgY2hhcnQiXX0sNTUwNTU5KGUpe2UuZXhwb3J0cz1bIk1heGltaXplIHBhbmUiXX0sMTU5NDQzKGUpe2UuZXhwb3J0cz1bIk1hbmFnZSBwYW5lcyJdfSw5Njk0NDkoZSl7ZS5leHBvcnRzPVsiTWFya2V0IG9wZW4iXX0sODI5ODMoZSl7ZS5leHBvcnRzPVsiTWFya2V0IGNsb3NlZCJdfSwxOTQzMDQoZSl7ZS5leHBvcnRzPVsiU2NyaXB0IHdpbGwgYmUgdXBkYXRlZCBmb3IgYWxsIGNoYXJ0cyBvZiB0aGlzIGxheW91dCJdfSwyNDE3MjIoZSl7ZS5leHBvcnRzPVsiU2Nyb2xsIHRvIHRoZSBsZWZ0Il19LDY2MDgxMChlKXtlLmV4cG9ydHM9WyJTY3JvbGwgdG8gdGhlIG1vc3QgcmVjZW50IGJhciJdfSw3MDgyMzMoZSl7ZS5leHBvcnRzPVsiU2Nyb2xsIHRvIHRoZSByaWdodCJdfSw1MDY5MTUoZSl7ZS5leHBvcnRzPVsiU2V0IHtjb2xvcn0gZmxhZyJdfSw5MzMxODQoZSl7ZS5leHBvcnRzPVsiU2VlIG1vcmUiXX0sNDM1MChlKXtlLmV4cG9ydHM9WyJTZWxlY3QgeW91ciBzdGFydCBwb2ludCJdfSw4ODI4MzkoZSl7ZS5leHBvcnRzPVsiU2VsZWN0IHlvdXIgc3RhcnQgcG9pbnQuIl19LDg5NzMwOShlKXtlLmV4cG9ydHM9WyJTaG93Il19LDI4ODI0NChlKXsKZS5leHBvcnRzPVsiU2hvdyBpbnRlcnZhbCBzZXR0aW5ncyJdfSwzMzM0MDcoZSl7ZS5leHBvcnRzPVsiU3R1ZHkgRXJyb3IiXX0sNDY5ODQxKGUpe2UuZXhwb3J0cz1bIlN0YWNrIHRyYWNlIGNvcGllZCB0byBjbGlwYm9hcmQiXX0sOTYxNjE0KGUpe2UuZXhwb3J0cz1bIlN5bWJvbCBncm91cCJdfSwyODg3MjUoZSl7ZS5leHBvcnRzPVsiU3ltYm9sIHByaWNlIHNvdXJjZSJdfSw2ODc2MShlKXtlLmV4cG9ydHM9WyJTeW1ib2wgdGl0bGUiXX0sNTQ2MzY5KGUpe2UuZXhwb3J0cz1bIlN5bWJvbC9pbnRlcnZhbCBjaGFydCBzeW5jaW5nIl19LDk3Nzc3NihlKXtlLmV4cG9ydHM9WyJTeW50aGV0aWMgaW5zdHJ1bWVudHMgY29tYmluaW5nIGluZGl2aWR1YWwgY29udHJhY3RzLiBUaGUgMSEgY29udHJhY3QgcmVwcmVzZW50cyB0aGUgZnJvbnQtbW9udGggKG5lYXJlc3QgZXhwaXJhdGlvbikgd2hpbGUgdGhlIDIhIHJlcHJlc2VudHMgdGhlIHNlY29uZCBuZWFyZXN0IGV4cGlyYXRpb24uIl19LDE0ODkwKGUpe2UuZXhwb3J0cz1bIlBvc3QtbWFya2V0Il19LDExNDQ0KGUpe2UuZXhwb3J0cz1bIlBhaWQgcGxhbnMgZmVhdHVyZSBmYXN0ZXIgZGF0YSB1cGRhdGVzLiJdfSw0ODcyMDAoZSl7ZS5leHBvcnRzPVsiUGluZSBjb2RlIGhhcyBnaG9zdGVkIl19LDY3Njc2OChlKXtlLmV4cG9ydHM9WyJQaW5rIl19LDk0MTk4NihlKXtlLmV4cG9ydHM9WyJQaW5rIGxpc3QiXX0sNDI4ODA5KGUpe2UuZXhwb3J0cz1bIlByZS1tYXJrZXQiXX0sNjcwOTIzKGUpe2UuZXhwb3J0cz1bIlB1cnBsZSJdfSw5MDc4NzQoZSl7ZS5leHBvcnRzPVsiUHVycGxlIGxpc3QiXX0sOTE1MTAwKGUpe2UuZXhwb3J0cz1bIlJlYWwtdGltZSBkYXRhIGZvciB0aGlzIHN5bWJvbCBpcyBub3Qgc3VwcG9ydGVkIHJpZ2h0IG5vdy4gV2UgbWF5IHN1cHBvcnQgaXQgaW4gdGhlIGZ1dHVyZS4iXX0sOTYxOTI2KGUpe2UuZXhwb3J0cz1bIlJlYWwtdGltZSBkYXRhIGZvciB7c3ltYm9sTmFtZX0gaXMgcHJvdmlkZWQgYnkge2V4Y2hhbmdlfSBleGNoYW5nZS4iXX0sNjU1MDQyKGUpe2UuZXhwb3J0cz1bIlJlZCJdfSwxNjU1MDEoZSl7ZS5leHBvcnRzPVsiUmVkIGxpc3QiXX0sNTA4NzQ5KGUpe2UuZXhwb3J0cz1bIlJlcG9ydCBpdCJdfSwyODE0NTMoZSl7ZS5leHBvcnRzPVsiUmVwbGF5IG1vZGUiXX0sNjcxODA5KGUpe2UuZXhwb3J0cz1bIlJlc3RvcmUgY2hhcnQiXX0sMjYwNTQ5KGUpe2UuZXhwb3J0cz1bIlJlc3RvcmUgcGFuZSJdfSw1NjY5NDgoZSl7ZS5leHBvcnRzPVsiV2F0Y2hsaXN0IGNhbm5vdCB0YWtlIGFueW1vcmUsIENhcCduIl19LDM4MjAyNShlKXtlLmV4cG9ydHM9WyJXYXRjaGxpc3QgZXJyb3IiXX0sNjQ1MjYzKGUpe2UuZXhwb3J0cz1bIldlIHRyaWVkIHRvIGdyYWIgdGhlIHNvdXJjZSBjb2RlLCBidXQgaXQgd2Fzbid0IHRoZXJlLiBNYXliZSBpdCdzIGJlZW4gbW92ZWQsIGRlbGV0ZWQsIG9yIGlzIGp1c3QgaGlkaW5nLiBHaXZlIGl0IGFub3RoZXIgZ28gbGF0ZXIhIl19LDMyODgyOChlKXtlLmV4cG9ydHM9WyJXaG9hIHRoZXJlLCB5b3UgY2FuJ3QgZ28gYWRkaW5nIG92ZXIge251bWJlcn0gc3ltYm9scyBhbmQgc2VwYXJhdG9ycyB0byBhIHdhdGNobGlzdCDigJMgd2UncmUgZW5naW5lZXJzIG5vdCBtaXJhY2xlIHdvcmtlcnMuIl19LDY4Nzk1NChlKXtlLmV4cG9ydHM9WyJUbyBhY2Nlc3Mgb3Zlcm5pZ2h0IHRyYWRpbmcgcXVvdGVzIGZyb20gVVMgbWFya2V0cywgc3Vic2NyaWJlIHRvIEJsdWUgT2NlYW4gKG92ZXJuaWdodCBxdW90ZXMpLiJdfSwyMjA3MzgoZSl7ZS5leHBvcnRzPVsiVG8gZ2V0IHJlYWwtdGltZSBkYXRhIGZvciB7ZGVzY3JpcHRpb259LCBwbGVhc2UgYnV5IHRoZSByZWFsLXRpbWUgZGF0YSBwYWNrYWdlLiJdfSw1NDU4NChlKXtlLmV4cG9ydHM9WyJUaGUgc291cmNlIGNvZGUgaXMgY3VycmVudGx5IG9wZW4gaW4gUGluZSBFZGl0b3IuIl19LDgyOTQ0OChlKXtlLmV4cG9ydHM9WyJUaGUgc291cmNlIGNvZGUgaXMgY3VycmVudGx5IG9wZW4gaW4gZGV0YWNoZWQgUGluZSBFZGl0b3IuIl19LDgzNzI1KGUpe2UuZXhwb3J0cz1bIlRoZSBzb3VyY2UgY29kZSBpcyBjdXJyZW50bHkgb3BlbiBpbiB0aGUgYm90dG9tIHBhbmVsLiJdfSwxMzI1NjEoZSl7ZS5leHBvcnRzPVsiVGhpcyBhc3NldCB3aWxsIGJlIGxpc3RlZCBzb29uLiBMaXZlIGRhdGEgd2lsbCBiZSBhdmFpbGFibGUgb25jZSB0cmFkaW5nIGJlZ2lucy4gVW50aWwgdGhlbiwgeW91IGNhbiBleHBsb3JlIGZ1bmRhbWVudGFsIGRhdGEuIl19LDQ2MzgyNShlKXtlLmV4cG9ydHM9WyJUaGlzIGRhdGEgaXMgcmVhbC10aW1lLCBidXQgaXQgbWF5IGJlIHNsaWdodGx5IGRpZmZlcmVudCB0byBpdHMgb2ZmaWNpYWwgY291bnRlcnBhcnQgY29taW5nIGZyb20gcHJpbWFyeSBleGNoYW5nZXMuIl19LDI4MjEzMShlKXtlLmV4cG9ydHM9WyJUaGlzIGRhdGEgaXMgcmVhbC10aW1lLCBidXQgaXQgbWF5IGJlIHNsaWdodGx5IGRpZmZlcmVudCB0byBpdHMgb2ZmaWNpYWwgY291bnRlcnBhcnQgY29taW5nIGZyb20ge2V4Y2hhbmdlfS4iXX0sNjMyMTI1KGUpe2UuZXhwb3J0cz1bIlRoaXMgaXMgYSBkZXZlbG9wbWVudGFsLXN0YWdlIGNvbXBhbnkgd2l0aCBubyBzZXQgYnVzaW5lc3MgcGxhbiwgb2Z0ZW4gZm9ybWVkIHRvIHJhaXNlIGZ1bmRzIGZvciBhIGZ1dHVyZSBtZXJnZXIgb3IgYWNxdWlzaXRpb24uIl19LDU3MzY4MihlKXtlLmV4cG9ydHM9WydUaGlzIGlzIGEgc2hhcmlhaC1jb21wbGlhbnQgYm9uZCwgb2Z0ZW4gcmVmZXJyZWQgdG8gYXMgYSAic3VrdWssIiBtZWFuaW5nIHRoYXQgaXQgY29tcGxpZXMgd2l0aCBJc2xhbWljIGxhdyB0aGF0IHByb2hpYml0cyBpbnRlcmVzdC4gVW5saWtlIGNvbnZlbnRpb25hbCBib25kcywgd2hpY2ggaW52b2x2ZSBwYXlpbmcgaW50ZXJlc3QsIHN1a3VrIHJlcHJlc2VudCBvd25lcnNoaXAgaW4gYW4gdW5kZXJseWluZyBhc3NldCBvciBwcm9qZWN0IGFuZCBpbnZlc3RvcnMgZWFybiByZXR1cm5zIGJhc2VkIG9uIHByb2ZpdC1zaGFyaW5nIG9yIHJlbnRhbCBpbmNvbWUuJ119LDIzODAwNChlKXsKZS5leHBvcnRzPVsiVGhpcyBpcyBhIHNoYXJpYWgtY29tcGxpYW50IHN0b2NrLCBtZWFuaW5nIHRoYXQgaXQgZm9sbG93cyBJc2xhbWljIGxhdy4gVGhpcyBjb21wYW55IGRvZXMgbm90IGNoYXJnZSBvciByZWNlaXZlIGludGVyZXN0LCBhbmQgZG9lcyBub3QgZW5nYWdlIHdpdGggY2VydGFpbiBzZWN0b3JzIChnYW1ibGluZywgYWxjb2hvbCwgdG9iYWNjbywgcG9yayBwcm9kdWN0cykuIl19LDg5NDU1NihlKXtlLmV4cG9ydHM9WyJUaGlzIGlzIG5vIGxvbmdlciBwdWJsaWNseSB0cmFkaW5nIHNvIG5vIG5ldyBkYXRhIHdpbGwgYmUgYWRkZWQuIEJ1dCB5b3UgY2FuIGV4cGxvcmUgdGhlIGhpc3RvcmljYWxzIGhlcmUuIl19LDcxOTcxMShlKXtlLmV4cG9ydHM9WyJUaGlzIHJlYWwtdGltZSBkYXRhIGlzIHByb3ZpZGVkIGJ5IHtvcmlnaW5hbEV4Y2hhbmdlfSBleGNoYW5nZS4gSXQgbWF5IGJlIHNsaWdodGx5IGRpZmZlcmVudCBmcm9tIHRoZSBvZmZpY2lhbCBkYXRhIGRpcmVjdGx5IGZyb20ge2V4Y2hhbmdlfS4gSWYgdGhpcyBkaWZmZXJlbmNlIGlzIGNydWNpYWwgZm9yIHlvdSwgeW91J2xsIG5lZWQgdG8gcHVyY2hhc2UgcmVhbC10aW1lIGRhdGEgZnJvbSB0aGUgcHJpbWFyeSBleGNoYW5nZSwgd2hpY2ggd2UgY2FuIGhlbHAgd2l0aC4iXX0sOTUyNTAwKGUpe2UuZXhwb3J0cz1bIlRoaXMgcmVmZXJzIHRvIGZpbmFuY2lhbCBpbmRpY2F0b3JzIHdoaWNoIGFyZSBjcmVhdGVkIGJ5IGNvbWJpbmluZyBhbmQvb3IgcHJvY2Vzc2luZyByYXcgZGF0YSBzdXBwbGllZCBmcm9tIHZhcmlvdXMgc291cmNlcy4iXX0sMzQ5MzMwKGUpe2UuZXhwb3J0cz1bIlRoaXMgc3RyYXRlZ3kncyB0cmFkZXMgYXJlIGRpc3BsYXllZCBvbiB0aGUgY2hhcnQuIl19LDY5MjYxNShlKXtlLmV4cG9ydHM9WyJUaGlzIHN5bWJvbCBkb2Vzbid0IGV4aXN0LCBwbGVhc2UgcGljayBhbm90aGVyIG9uZS4iXX0sNjI4NTUzKGUpe2UuZXhwb3J0cz1bIlRoaXMgc3ltYm9sIGlzIGNhbGN1bGF0ZWQgYnkgVHJhZGluZ1ZpZXcgdXNpbmcgdGhlIHJhdGUgZnJvbSBvdGhlciBleGNoYW5nZXMuIl19LDU1OTU4MyhlKXtlLmV4cG9ydHM9WyJUcmFkZSB7c3ltYm9sTmFtZX0gd2l0aCB7YnJva2VyTmFtZX0iXX0sNTk3OTQoZSl7ZS5leHBvcnRzPVsiVVMgbWFya2V0cyBvdmVybmlnaHQgcXVvdGVzIl19LDg2MDcyMihlKXtlLmV4cG9ydHM9WyJVbmFibGUgdG8gZmxhZyBhbGwgc2VsZWN0ZWQgc3ltYm9scyBzaW5jZSBpdCBleGNlZWRzIHRoZSBtYXhpbXVtIGFtb3VudCAoe2xpbWl0fSkuIl19LDMzMjc1MyhlKXtlLmV4cG9ydHM9WyJVbmZsYWcgQWxsIFN5bWJvbHMgaW4gdGhlIFN5c3RlbSJdfSwzNzUxNjUoZSl7ZS5leHBvcnRzPVsiVW5mbGFnIHN5bWJvbCJdfSw2OTIxKGUpe2UuZXhwb3J0cz1bIlVuZmxhZyB7c3ltYm9sfSJdfSwzNDYzKGUpe2UuZXhwb3J0cz1bIlVwZGF0ZSBvbiBhbGwgY2hhcnRzIl19LDEwNzg3MChlKXtlLmV4cG9ydHM9WyJVcGRhdGUgYXZhaWxhYmxlIl19LDU4MTM4OChlKXtlLmV4cG9ydHM9WyJVcGRhdGUgdG8gbGF0ZXN0IHZlcnNpb24iXX0sMjQ3MDYyKGUpe2UuZXhwb3J0cz1bIlZvbHVtZSJdfSw3OTUzMzAoZSl7ZS5leHBvcnRzPVsiWW91IG5lZWQgdG8gdXBkYXRlIG9uZSBvciBtb3JlIG9mIHlvdXIgaW5kaWNhdG9ycy4gQ2xpY2sgdGhlIGFycm93IGJ1dHRvbiB0byB0aGUgbGVmdCB0byBleHBhbmQgdGhlIGluZGljYXRvciBsaXN0IGFuZCBzZWUgZGV0YWlscy4iXX0sMzYxMDUoZSl7ZS5leHBvcnRzPVsiWW91IG5lZWQgdG8gdXBkYXRlIG9uZSBvciBtb3JlIG9mIHlvdXIgaW5kaWNhdG9ycy4gUmVzaXplIHRoZSBwYW5lcyBvciB0aGUgd2luZG93IHRvIHNlZSB0aGUgZGV0YWlscy4iXX0sNzYzNDUxKGUpe2UuZXhwb3J0cz1bIllvdSdyZSBpbiBSZXBsYXkgbW9kZS4gWW91J3JlIGluIFJlcGxheSBtb2RlLiBZb3UncmUgaW4gUmVwbGF5IG1vZGUuIl19LDQ4Nzg3NChlKXtlLmV4cG9ydHM9WyJab29tIGluIl19LDMxNDUzNChlKXtlLmV4cG9ydHM9WyJab29tIG91dCJdfSwxNzYyNDkoZSl7ZS5leHBvcnRzPVsiY2hhbmdlIG9wZW4gbWFya2V0IHN0YXR1cyB2aXNpYmlsaXR5Il19LDM2Nzg2MChlKXtlLmV4cG9ydHM9WyJjaGFuZ2UgYmFyIGNoYW5nZSB2aXNpYmlsaXR5Il19LDU2ODczMChlKXtlLmV4cG9ydHM9WyJjaGFuZ2UgY2hhcnQgdmFsdWVzIHZpc2liaWxpdHkiXX0sMzIwNDI2KGUpe2UuZXhwb3J0cz1bImNoYW5nZSBpbmRpY2F0b3IgdGl0bGVzIHZpc2liaWxpdHkiXX0sMjE1MDI3KGUpe2UuZXhwb3J0cz1bImNoYW5nZSBpbmRpY2F0b3IgdmFsdWVzIHZpc2liaWxpdHkiXX0sMzM1MzMoZSl7ZS5leHBvcnRzPVsiY2hhbmdlIGluZGljYXRvciBpbnB1dHMgdmlzaWJpbGl0eSJdfSwzMzU2ODIoZSl7ZS5leHBvcnRzPVsiY2hhbmdlIGxhc3QgZGF5IGNoYW5nZSB2aXNpYmlsaXR5Il19LDU1NTY2NihlKXtlLmV4cG9ydHM9WyJjaGFuZ2Ugc3ltYm9sIGRlc2NyaXB0aW9uIHZpc2liaWxpdHkiXX0sNjY4MTkyKGUpe2UuZXhwb3J0cz1bImNoYW5nZSBzeW1ib2wgZmllbGQgdmlzaWJpbGl0eSJdfSw1MjE2NChlKXtlLmV4cG9ydHM9WyJjaGFuZ2Ugdm9sdW1lIHZhbHVlcyB2aXNpYmlsaXR5Il19LDcyNTA5KGUpe2UuZXhwb3J0cz1bInNob3cge3RpdGxlfSJdfSw3MTg3NTcoZSl7ZS5leHBvcnRzPVsidXBkYXRlIGluZGljYXRvciB0byBsYXRlc3QgdmVyc2lvbiJdfSw0MTAxNDgoZSl7ZS5leHBvcnRzPVsidXBkYXRlIHt0aXRsZX0gc2NyaXB0Il19LDkxNDU1KGUpe2UuZXhwb3J0cz1bIntsaXN0ZWRFeGNoYW5nZX0gcmVhbC10aW1lIGRhdGEgaXMgYXZhaWxhYmxlIGZvciBmcmVlIHRvIHJlZ2lzdGVyZWQgdXNlcnMuIl19LDE2OTgzKGUpe2UuZXhwb3J0cz1bIkRvaW5nIHRoaXMgd2lsbCByZW1vdmUge2NvdW50fSBzZWxlY3RlZCBzeW1ib2wgZnJvbSB5b3VyIHdhdGNobGlzdC4iLCJEb2luZyB0aGlzIHdpbGwgcmVtb3ZlIHtjb3VudH0gc2VsZWN0ZWQgc3ltYm9scyBmcm9tIHlvdXIgd2F0Y2hsaXN0LiJdfSw3NzEzNTYoZSl7CmUuZXhwb3J0cz1bIkRhdGEgaXMgdXBkYXRlZCBvbmNlIGV2ZXJ5IHthbW91bnR9IHNlY29uZCwgZXZlbiBpZiB0aGVyZSBhcmUgbW9yZSB1cGRhdGVzIG9uIHRoZSBtYXJrZXQuIiwiRGF0YSBpcyB1cGRhdGVkIG9uY2UgZXZlcnkge2Ftb3VudH0gc2Vjb25kcywgZXZlbiBpZiB0aGVyZSBhcmUgbW9yZSB1cGRhdGVzIG9uIHRoZSBtYXJrZXQuIl19LDc1NTE5MihlKXtlLmV4cG9ydHM9WyJEYXRhIG9uIG91ciBCYXNpYyBwbGFuIGlzIHVwZGF0ZWQgb25jZSBldmVyeSB7YW1vdW50fSBzZWNvbmQsIGV2ZW4gaWYgdGhlcmUgYXJlIG1vcmUgdXBkYXRlcyBvbiB0aGUgbWFya2V0LiIsIkRhdGEgb24gb3VyIEJhc2ljIHBsYW4gaXMgdXBkYXRlZCBvbmNlIGV2ZXJ5IHthbW91bnR9IHNlY29uZHMsIGV2ZW4gaWYgdGhlcmUgYXJlIG1vcmUgdXBkYXRlcyBvbiB0aGUgbWFya2V0LiJdfSwzMzI4MjgoZSl7ZS5leHBvcnRzPVsiSGlkZSBpbmRpY2F0b3IgbGVnZW5kIiwiSGlkZSBpbmRpY2F0b3JzIGxlZ2VuZCJdfSwyNTY4MTcoZSl7ZS5leHBvcnRzPVsiT25lIHVwZGF0ZSBldmVyeSB7YW1vdW50fSBzZWNvbmQiLCJPbmUgdXBkYXRlIGV2ZXJ5IHthbW91bnR9IHNlY29uZHMiXX0sNjkyNzEyKGUpe2UuZXhwb3J0cz1bIlNob3cgaW5kaWNhdG9yIGxlZ2VuZCIsIlNob3cgaW5kaWNhdG9ycyBsZWdlbmQiXX0sODU3MDY3KGUpe2UuZXhwb3J0cz1bIntzeW1ib2xOYW1lfSBkYXRhIGlzIGRlbGF5ZWQgYnkge3RpbWV9IG1pbnV0ZSBiZWNhdXNlIG9mIGV4Y2hhbmdlIHJlcXVpcmVtZW50cy4iLCJ7c3ltYm9sTmFtZX0gZGF0YSBpcyBkZWxheWVkIGJ5IHt0aW1lfSBtaW51dGVzIGJlY2F1c2Ugb2YgZXhjaGFuZ2UgcmVxdWlyZW1lbnRzLiJdfX1dKTs="}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/20354.2ddf934f8edc2802d90a.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:13.876Z","timestamp":1785148033876,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/20354.2ddf934f8edc2802d90a.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:13 GMT\r\ncontent-type: text/css; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a58ab11-4c0f\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Thu, 16 Jul 2026 09:57:37 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/16/2026 11:03:21\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 80c565bf69d8d3708ef9bba22ff65c7c\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":19471,"size_decoded":3320,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with very long lines (19471), with no line terminators","md5":"862a961c39b7410a362cc06ade612375","sha1":"0c7a395968e24e835ade4687d6738865085e0e3a","sha256":"bab109cd7e0f582023950c24ed2f621684d739836c3dd4a8ec06defa4fe2c79a","sha512":"4349960f67b7538f48f9093de4c5f5d571167e0bfa535df0fa4bece73a757b23be6f06dc372fbd20958defade650741ef4ea329a326b707bf80a291c3f7c8fe0","ssdeep":"96:oeExfo1CyDi6qKiVncAB009Fb0g7i3J/KjA+f7GRX6fXGq/J5FzalqIsoNIhYnwa:o/ty+6IcpcA+f7GRX6fXGq1JIsqGsM0V","tlshash":"ab9259dbb1d4a8307dd161e9d35a316ca7d1ec38f9132cc3faa9e45248c1bf224b8566","first_seen":"2026-07-16T13:40:49.886491Z","last_seen":"2026-07-27T12:57:37.08324Z","times_seen":328,"resource_available":false,"data":"LmJ1dHRvbi1tTEVoQ3JWd3thbGlnbi1pdGVtczpjZW50ZXI7YmFja2dyb3VuZDp2YXIoLS11aS1saWItc3F1YXJlQnV0dG9uLWJhY2tncm91bmQsdmFyKC0tdWktbGliLWJ1dHRvbi1jb2xvci1iZyx2YXIoLS11aS1saWItcHJpdmF0ZS1zcXVhcmVCdXR0b24tYmcpKSk7Ym9yZGVyLWNvbG9yOnZhcigtLXVpLWxpYi1zcXVhcmVCdXR0b24tYm9yZGVyLWNvbG9yLHZhcigtLXVpLWxpYi1idXR0b24tY29sb3ItYm9yZGVyLHZhcigtLXVpLWxpYi1wcml2YXRlLXNxdWFyZUJ1dHRvbi1ib3JkZXIpKSk7Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci13aWR0aDoxcHg7Ym94LXNpemluZzpib3JkZXItYm94O2NvbG9yOnZhcigtLXVpLWxpYi1zcXVhcmVCdXR0b24tY29udGVudC1jb2xvcix2YXIoLS11aS1saWItYnV0dG9uLWNvbG9yLWNvbnRlbnQsdmFyKC0tdWktbGliLXByaXZhdGUtc3F1YXJlQnV0dG9uLWNvbnRlbnQtY29sb3IpKSk7ZGlzcGxheTppbmxpbmUtZmxleDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO21heC13aWR0aDoxMDAlO3BhZGRpbmctYm90dG9tOjA7cGFkZGluZy1pbmxpbmUtZW5kOnZhcigtLXVpLWxpYi1zcXVhcmVCdXR0b24tcGFkZGluZy1yaWdodCx2YXIoLS11aS1saWItYnV0dG9uLXBhZGRpbmctcmlnaHQsdmFyKC0tdWktbGliLXByaXZhdGUtc3F1YXJlQnV0dG9uLXBhZGRpbmctcmlnaHQpKSk7cGFkZGluZy10b3A6MDtwYWRkaW5nLWlubGluZS1zdGFydDp2YXIoLS11aS1saWItc3F1YXJlQnV0dG9uLXBhZGRpbmctbGVmdCx2YXIoLS11aS1saWItYnV0dG9uLXBhZGRpbmctbGVmdCx2YXIoLS11aS1saWItcHJpdmF0ZS1zcXVhcmVCdXR0b24tcGFkZGluZy1sZWZ0KSkpOy0tdWktbGliLXNpemUtZGVmOnZhcigtLXVpLWxpYi1pbi1zcXVhcmVCdXR0b24tc2l6ZSx2YXIoLS11aS1saWItcHJpdmF0ZS1zcXVhcmVCdXR0b24tc2l6ZSw0KSk7LS11aS1saWItc2l6ZS1kZWYteHNtYWxsOmNhbGMobWF4KDAsIDEgLSAodmFyKC0tdWktbGliLXNpemUtZGVmKSAtIDIpICogKHZhcigtLXVpLWxpYi1zaXplLWRlZikgLSAyKSkpOy0tdWktbGliLXNpemUtZGVmLXNtYWxsOmNhbGMobWF4KDAsIDEgLSAodmFyKC0tdWktbGliLXNpemUtZGVmKSAtIDMpICogKHZhcigtLXVpLWxpYi1zaXplLWRlZikgLSAzKSkpOy0tdWktbGliLXNpemUtZGVmLW1lZGl1bTpjYWxjKG1heCgwLCAxIC0gKHZhcigtLXVpLWxpYi1zaXplLWRlZikgLSA0KSAqICh2YXIoLS11aS1saWItc2l6ZS1kZWYpIC0gNCkpKTstLXVpLWxpYi1zaXplLWRlZi1sYXJnZTpjYWxjKG1heCgwLCAxIC0gKHZhcigtLXVpLWxpYi1zaXplLWRlZikgLSA1KSAqICh2YXIoLS11aS1saWItc2l6ZS1kZWYpIC0gNSkpKTstLXVpLWxpYi1zaXplLWRlZi14bGFyZ2U6Y2FsYyhtYXgoMCwgMSAtICh2YXIoLS11aS1saWItc2l6ZS1kZWYpIC0gNikgKiAodmFyKC0tdWktbGliLXNpemUtZGVmKSAtIDYpKSk7LS11aS1saWItcHJpdmF0ZS1zcXVhcmVCdXR0b24taGVpZ2h0OmNhbGModmFyKC0tdWktbGliLXNpemUtZGVmLXhzbWFsbCkqMjhweCArIHZhcigtLXVpLWxpYi1zaXplLWRlZi1zbWFsbCkqMzRweCArIHZhcigtLXVpLWxpYi1zaXplLWRlZi1tZWRpdW0pKjQwcHggKyB2YXIoLS11aS1saWItc2l6ZS1kZWYtbGFyZ2UpKjQ4cHggKyB2YXIoLS11aS1saWItc2l6ZS1kZWYteGxhcmdlKSo1NnB4KTtoZWlnaHQ6dmFyKC0tdWktbGliLXByaXZhdGUtc3F1YXJlQnV0dG9uLWhlaWdodCk7LS11aS1saWItcHJpdmF0ZS1zcXVhcmVCdXR0b24tcGFkZGluZy1ob3I6Y2FsYyh2YXIoLS11aS1saWItc2l6ZS1kZWYteHNtYWxsKSo3cHggKyB2YXIoLS11aS1saWItc2l6ZS1kZWYtc21hbGwpKjExcHggKyB2YXIoLS11aS1saWItc2l6ZS1kZWYtbWVkaXVtKSoxNXB4ICsgdmFyKC0tdWktbGliLXNpemUtZGVmLWxhcmdlKSoyM3B4ICsgdmFyKC0tdWktbGliLXNpemUtZGVmLXhsYXJnZSkqMzFweCk7LS11aS1saWItcHJpdmF0ZS1zcXVhcmVCdXR0b24tcGFkZGluZy1sZWZ0OnZhcigtLXVpLWxpYi1wcml2YXRlLXNxdWFyZUJ1dHRvbi1wYWRkaW5nLWhvcik7LS11aS1saWItcHJpdmF0ZS1zcXVhcmVCdXR0b24tcGFkZGluZy1yaWdodDp2YXIoLS11aS1saWItcHJpdmF0ZS1zcXVhcmVCdXR0b24tcGFkZGluZy1ob3IpOy0tdWktbGliLXByaXZhdGUtc3F1YXJlQnV0dG9uLXJhZGl1czpjYWxjKHZhcigtLXVpLWxpYi1zaXplLWRlZi14c21hbGwpKjZweCArIHZhcigtLXVpLWxpYi1zaXplLWRlZi1zbWFsbCkqNnB4ICsgdmFyKC0tdWktbGliLXNpemUtZGVmLW1lZGl1bSkqOHB4ICsgdmFyKC0tdWktbGliLXNpemUtZGVmLWxhcmdlKSo4cHggKyB2YXIoLS11aS1saWItc2l6ZS1kZWYteGxhcmdlKSoxMnB4KTtib3JkZXItcmFkaXVzOnZhcigtLXVpLWxpYi1wcml2YXRlLXNxdWFyZUJ1dHRvbi1yYWRpdXMpO3RyYW5zaXRpb246dmFyKC0tdWktbGliLXNxdWFyZUJ1dHRvbi10cmFuc2l0aW9uKX0uYnV0dG9uLW1MRWhDclZ3OmFmdGVye2JvcmRlci1yYWRpdXM6Y2FsYyh2YXIoLS11aS1saWItcHJpdmF0ZS1zcXVhcmVCdXR0b24tcmFkaXVzKSArIDRweCl9LmJ1dHRvbi1tTEVoQ3JWd3tvdXRsaW5lOm5vbmU7b3ZlcmZsb3c6dmlzaWJsZTtwb3NpdGlvbjpyZWxhdGl2ZX0uYnV0dG9uLW1MRWhDclZ3OmZvY3Vze291dGxpbmU6bm9uZX0uYnV0dG9uLW1MRWhDclZ3OmZvY3VzLXZpc2libGV7b3V0bGluZTpub25lfS5idXR0b24tbUxFaENyVnc6YWZ0ZXJ7Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci13aWR0aDoycHg7Ym94LXNpemluZzpib3JkZXItYm94O2NvbnRlbnQ6IiI7ZGlzcGxheTpub25lO2hlaWdodDpjYWxjKDEwMCUgKyAxMHB4KTtpbnNldC1pbmxpbmUtc3RhcnQ6LTVweDtwb2ludGVyLWV2ZW50czpub25lO3Bvc2l0aW9uOmFic29sdXRlO3RvcDotNXB4O3dpZHRoOmNhbGMoMTAwJSArIDEwcHgpO3otaW5kZXg6MX0uYnV0dG9uLW1MRWhDclZ3OmZvY3VzOmFmdGVye2Rpc3BsYXk6YmxvY2t9LmJ1dHRvbi1tTEVoQ3JWdzpmb2N1cy12aXNpYmxlOmFmdGVye2Rpc3BsYXk6YmxvY2t9LmJ1dHRvbi1tTEVoQ3JWdzpmb2N1czpub3QoOmZvY3VzLXZpc2libGUpOmFmdGVye2Rpc3BsYXk6bm9uZX0uYnV0dG9uLW1MRWhDclZ3OmFmdGVye2JvcmRlci1jb2xvcjp2YXIoLS1jb2xvci1mb2N1cy1vdXRsaW5lLWNvbG9yLWJsdWUpfS5idXR0b24tbUxFaENyVncuaWNvbk9ubHktbUxFaENyVnd7aGVpZ2h0OnZhcigtLXVpLWxpYi1wcml2YXRlLXNxdWFyZUJ1dHRvbi1oZWlnaHQpO3dpZHRoOnZhcigtLXVpLWxpYi1wcml2YXRlLXNxdWFyZUJ1dHRvbi1oZWlnaHQpOy0tdWktbGliLXByaXZhdGUtc3F1YXJlQnV0dG9uLXBhZGRpbmctbGVmdDowOy0tdWktbGliLXByaXZhdGUtc3F1YXJlQnV0dG9uLXBhZGRpbmctcmlnaHQ6MH0uYnV0dG9uLW1MRWhDclZ3Om5vdCguaWNvbk9ubHktbUxFaENyVncpey0tdWktbGliLXByaXZhdGUtc3F1YXJlQnV0dG9uLXBhZGRpbmctaG9yLXdpdGgtaWNvbjpjYWxjKHZhcigtLXVpLWxpYi1zaXplLWRlZi14c21hbGwpKjdweCArIHZhcigtLXVpLWxpYi1zaXplLWRlZi1zbWFsbCkqMTFweCArIHZhcigtLXVpLWxpYi1zaXplLWRlZi1tZWRpdW0pKjE1cHggKyB2YXIoLS11aS1saWItc2l6ZS1kZWYtbGFyZ2UpKjIzcHggKyB2YXIoLS11aS1saWItc2l6ZS1kZWYteGxhcmdlKSozMXB4KTstLXVpLWxpYi1wcml2YXRlLXNxdWFyZUJ1dHRvbi1tYXJnaW4tYmV0d2Vlbi1pY29uczpjYWxjKHZhcigtLXVpLWxpYi1zaXplLWRlZi14c21hbGwpKjRweCArIHZhcigtLXVpLWxpYi1zaXplLWRlZi1zbWFsbCkqNHB4ICsgdmFyKC0tdWktbGliLXNpemUtZGVmLW1lZGl1bSkqNHB4ICsgdmFyKC0tdWktbGliLXNpemUtZGVmLWxhcmdlKSo4cHggKyB2YXIoLS11aS1saWItc2l6ZS1kZWYteGxhcmdlKSo4cHgpfS5idXR0b24tbUxFaENyVnc6bm90KC5pY29uT25seS1tTEVoQ3JWdykud2l0aFN0YXJ0U2xvdC1tTEVoQ3JWd3stLXVpLWxpYi1wcml2YXRlLXNxdWFyZUJ1dHRvbi1wYWRkaW5nLWxlZnQ6dmFyKC0tdWktbGliLXByaXZhdGUtc3F1YXJlQnV0dG9uLXBhZGRpbmctaG9yLXdpdGgtaWNvbil9LmJ1dHRvbi1tTEVoQ3JWdzpub3QoLmljb25Pbmx5LW1MRWhDclZ3KS53aXRoRW5kU2xvdC1tTEVoQ3JWd3stLXVpLWxpYi1wcml2YXRlLXNxdWFyZUJ1dHRvbi1wYWRkaW5nLXJpZ2h0OnZhcigtLXVpLWxpYi1wcml2YXRlLXNxdWFyZUJ1dHRvbi1wYWRkaW5nLWhvci13aXRoLWljb24pfS5idXR0b24tbUxFaENyVnc6bm90KC5pY29uT25seS1tTEVoQ3JWdykgLnN0YXJ0U2xvdFdyYXAtbUxFaENyVnd7bWFyZ2luLWlubGluZS1lbmQ6dmFyKC0tdWktbGliLXByaXZhdGUtc3F1YXJlQnV0dG9uLW1hcmdpbi1iZXR3ZWVuLWljb25zKX0uYnV0dG9uLW1MRWhDclZ3Om5vdCguaWNvbk9ubHktbUxFaENyVncpIC5lbmRTbG90V3JhcC1tTEVoQ3JWd3ttYXJnaW4taW5saW5lLXN0YXJ0OnZhcigtLXVpLWxpYi1wcml2YXRlLXNxdWFyZUJ1dHRvbi1tYXJnaW4tYmV0d2Vlbi1pY29ucyl9LnhzbWFsbC1tTEVoQ3JWd3stLXVpLWxpYi1wcml2YXRlLXNxdWFyZUJ1dHRvbi1zaXplOjJ9LnNtYWxsLW1MRWhDclZ3ey0tdWktbGliLXByaXZhdGUtc3F1YXJlQnV0dG9uLXNpemU6M30ubWVkaXVtLW1MRWhDclZ3ey0tdWktbGliLXByaXZhdGUtc3F1YXJlQnV0dG9uLXNpemU6NH0ubGFyZ2UtbUxFaENyVnd7LS11aS1saWItcHJpdmF0ZS1zcXVhcmVCdXR0b24tc2l6ZTo1fS54bGFyZ2UtbUxFaENyVnd7LS11aS1saWItcHJpdmF0ZS1zcXVhcmVCdXR0b24tc2l6ZTo2fS5jb250ZW50LW1MRWhDclZ3e2ZvbnQtZmFtaWx5Oi1hcHBsZS1zeXN0ZW0sQmxpbmtNYWNTeXN0ZW1Gb250LFRyZWJ1Y2hldCBNUyxSb2JvdG8sVWJ1bnR1LHNhbnMtc2VyaWY7Zm9udC1mZWF0dXJlLXNldHRpbmdzOiJ0bnVtIiBvbiwibG51bSIgb247Zm9udC1zaXplOmNhbGModmFyKC0tdWktbGliLXNpemUtZGVmLXhzbWFsbCkqMTRweCArIHZhcigtLXVpLWxpYi1zaXplLWRlZi1zbWFsbCkqMTZweCArIHZhcigtLXVpLWxpYi1zaXplLWRlZi1tZWRpdW0pKjE2cHggKyB2YXIoLS11aS1saWItc2l6ZS1kZWYtbGFyZ2UpKjE2cHggKyB2YXIoLS11aS1saWItc2l6ZS1kZWYteGxhcmdlKSoxOHB4KTtmb250LXN0eWxlOm5vcm1hbDtmb250LXdlaWdodDpjYWxjKHZhcigtLXVpLWxpYi1zaXplLWRlZi14c21hbGwpKjQwMCArIHZhcigtLXVpLWxpYi1zaXplLWRlZi1zbWFsbCkqNDAwICsgdmFyKC0tdWktbGliLXNpemUtZGVmLW1lZGl1bSkqNTAwICsgdmFyKC0tdWktbGliLXNpemUtZGVmLWxhcmdlKSo1MDAgKyB2YXIoLS11aS1saWItc2l6ZS1kZWYteGxhcmdlKSo2MDApO2xpbmUtaGVpZ2h0OmNhbGModmFyKC0tdWktbGliLXNpemUtZGVmLXhzbWFsbCkqMThweCArIHZhcigtLXVpLWxpYi1zaXplLWRlZi1zbWFsbCkqMjRweCArIHZhcigtLXVpLWxpYi1zaXplLWRlZi1tZWRpdW0pKjI0cHggKyB2YXIoLS11aS1saWItc2l6ZS1kZWYtbGFyZ2UpKjI0cHggKyB2YXIoLS11aS1saWItc2l6ZS1kZWYteGxhcmdlKSoyNHB4KTtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpczt3aGl0ZS1zcGFjZTpub3dyYXB9Lmljb25Pbmx5LW1MRWhDclZ3IC5jb250ZW50LW1MRWhDclZ3e2JvcmRlcjowO2hlaWdodDoxcHg7bWFyZ2luOi0xcHg7cGFkZGluZzowO3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjFweDtjbGlwOnJlY3QoMCAwIDAgMCk7b3ZlcmZsb3c6aGlkZGVufS5saW5rLW1MRWhDclZ3e2N1cnNvcjpwb2ludGVyOy13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTt1c2VyLXNlbGVjdDpub25lfS5ibHVlLW1MRWhDclZ3LnByaW1hcnktbUxFaENyVnd7LS11aS1saWItcHJpdmF0ZS1zcXVhcmVCdXR0b24tYmc6dmFyKC0tY29sb3ItY29udGFpbmVyLWZpbGwtcHJpbWFyeS1hY2NlbnQpOy0tdWktbGliLXByaXZhdGUtc3F1YXJlQnV0dG9uLWJvcmRlcjp2YXIoLS1jb2xvci1jb250YWluZXItZmlsbC1wcmltYXJ5LWFjY2VudCk7LS11aS1saWItcHJpdmF0ZS1zcXVhcmVCdXR0b24tY29udGVudC1jb2xvcjp2YXIoLS1jb2xvci1jb250ZW50LXRlcnRpYXJ5LWludmVyc2UpfUBtZWRpYSBub3QgKHBvaW50ZXI6Y29hcnNlKXtAbWVkaWEgKGFueS1ob3Zlcjpob3Zlcil7LmJsdWUtbUxFaENyVncucHJpbWFyeS1tTEVoQ3JWdzpob3ZlcnstLXVpLWxpYi1wcml2YXRlLXNxdWFyZUJ1dHRvbi1iZzp2YXIoLS1jb2xvci1jb250YWluZXItZmlsbC1wcmltYXJ5LWFjY2VudC1zZW1pLWJvbGQpOy0tdWktbGliLXByaXZhdGUtc3F1YXJlQnV0dG9uLWJvcmRlcjp2YXIoLS1jb2xvci1jb250YWluZXItZmlsbC1wcmltYXJ5LWFjY2VudC1zZW1pLWJvbGQpOy0tdWktbGliLXByaXZhdGUtc3F1YXJlQnV0dG9uLWNvbnRlbnQtY29sb3I6dmFyKC0tY29sb3ItY29udGVudC10ZXJ0aWFyeS1pbnZlcnNlKX19fS5ibHVlLW1MRWhDclZ3LnByaW1hcnktbUxFaENyVnc6YWN0aXZley0tdWktbGliLXByaXZhdGUtc3F1YXJlQnV0dG9uLWJnOnZhcigtLWNvbG9yLWNvbnRhaW5lci1maWxsLXByaW1hcnktYWNjZW50LWJvbGQpOy0tdWktbGliLXByaXZhdGUtc3F1YXJlQnV0dG9uLWJvcmRlcjp2YXIoLS1jb2xvci1jb250YWluZXItZmlsbC1wcmltYXJ5LWFjY2VudC1ib2xkKTstLXVpLWxpYi1wcml2YXRlLXNxdWFyZUJ1dHRvbi1jb250ZW50LWNvbG9yOnZhcigtLWNvbG9yLWNvbnRlbnQtdGVydGlhcnktaW52ZXJzZSl9LmJsdWUtbUxFaENyVncuc2Vjb25kYXJ5LW1MRWhDclZ3ey0tdWktbGliLXByaXZhdGUtc3F1YXJlQnV0dG9uLWJnOnZhcigtLWNvbG9yLW90aGVyLXRyYW5zcGFyZW50KTstLXVpLWxpYi1wcml2YXRlLXNxdWFyZUJ1dHRvbi1ib3JkZXI6dmFyKC0tY29sb3ItY29udGVudC1wcmltYXJ5LWFjY2VudCk7LS11aS1saWItcHJpdmF0ZS1zcXVhcmVCdXR0b24tY29udGVudC1jb2xvcjp2YXIoLS1jb2xvci1jb250ZW50LXByaW1hcnktYWNjZW50KX1AbWVkaWEgbm90IChwb2ludGVyOmNvYXJzZSl7QG1lZGlhIChhbnktaG92ZXI6aG92ZXIpey5ibHVlLW1MRWhDclZ3LnNlY29uZGFyeS1tTEVoQ3JWdzpob3ZlcnstLXVpLWxpYi1wcml2YXRlLXNxdWFyZUJ1dHRvbi1iZzp2YXIoLS1jb2xvci1jb250YWluZXItZmlsbC1wcmltYXJ5LWFjY2VudC1zZW1pLWJvbGQpOy0tdWktbGliLXByaXZhdGUtc3F1YXJlQnV0dG9uLWJvcmRlcjp2YXIoLS1jb2xvci1jb250YWluZXItZmlsbC1wcmltYXJ5LWFjY2VudC1zZW1pLWJvbGQpOy0tdWktbGliLXByaXZhdGUtc3F1YXJlQnV0dG9uLWNvbnRlbnQtY29sb3I6dmFyKC0tY29sb3ItY29udGVudC10ZXJ0aWFyeS1pbnZlcnNlKX19fS5ibHVlLW1MRWhDclZ3LnNlY29uZGFyeS1tTEVoQ3JWdzphY3RpdmV7LS11aS1saWItcHJpdmF0ZS1zcXVhcmVCdXR0b24tYmc6dmFyKC0tY29sb3ItY29udGFpbmVyLWZpbGwtcHJpbWFyeS1hY2NlbnQtYm9sZCk7LS11aS1saWItcHJpdmF0ZS1zcXVhcmVCdXR0b24tYm9yZGVyOnZhcigtLWNvbG9yLWNvbnRhaW5lci1maWxsLXByaW1hcnktYWNjZW50LWJvbGQpOy0tdWktbGliLXByaXZhdGUtc3F1YXJlQnV0dG9uLWNvbnRlbnQtY29sb3I6dmFyKC0tY29sb3ItY29udGVudC10ZXJ0aWFyeS1pbnZlcnNlKX0uZ3JheS1tTEVoQ3JWdy5wcmltYXJ5LW1MRWhDclZ3ey0tdWktbGliLXByaXZhdGUtc3F1YXJlQnV0dG9uLWJnOnZhcigtLWNvbG9yLWNvbnRhaW5lci1maWxsLXByaW1hcnktbmV1dHJhbC1leHRyYS1saWdodCk7LS11aS1saWItcHJpdmF0ZS1zcXVhcmVCdXR0b24tYm9yZGVyOnZhcigtLWNvbG9yLWNvbnRhaW5lci1maWxsLXByaW1hcnktbmV1dHJhbC1leHRyYS1saWdodCk7LS11aS1saWItcHJpdmF0ZS1zcXVhcmVCdXR0b24tY29udGVudC1jb2xvcjp2YXIoLS1jb2xvci1jb250ZW50LXNlY29uZGFyeS1uZXV0cmFsLWJvbGQpfUBtZWRpYSBub3QgKHBvaW50ZXI6Y29hcnNlKXtAbWVkaWEgKGFueS1ob3Zlcjpob3Zlcil7LmdyYXktbUxFaENyVncucHJpbWFyeS1tTEVoQ3JWdzpob3ZlcnstLXVpLWxpYi1wcml2YXRlLXNxdWFyZUJ1dHRvbi1iZzp2YXIoLS1jb2xvci1jb250YWluZXItZmlsbC1wcmltYXJ5LW5ldXRyYWwtbGlnaHQpOy0tdWktbGliLXByaXZhdGUtc3F1YXJlQnV0dG9uLWJvcmRlcjp2YXIoLS1jb2xvci1jb250YWluZXItZmlsbC1wcmltYXJ5LW5ldXRyYWwtbGlnaHQpOy0tdWktbGliLXByaXZhdGUtc3F1YXJlQnV0dG9uLWNvbnRlbnQtY29sb3I6dmFyKC0tY29sb3ItY29udGVudC1zZWNvbmRhcnktbmV1dHJhbC1ib2xkKX19fS5ncmF5LW1MRWhDclZ3LnByaW1hcnktbUxFaENyVnc6YWN0aXZley0tdWktbGliLXByaXZhdGUtc3F1YXJlQnV0dG9uLWJnOnZhcigtLWNvbG9yLWNvbnRhaW5lci1maWxsLXByaW1hcnktbmV1dHJhbC1ub3JtYWwpOy0tdWktbGliLXByaXZhdGUtc3F1YXJlQnV0dG9uLWJvcmRlcjp2YXIoLS1jb2xvci1jb250YWluZXItZmlsbC1wcmltYXJ5LW5ldXRyYWwtbm9ybWFsKTstLXVpLWxpYi1wcml2YXRlLXNxdWFyZUJ1dHRvbi1jb250ZW50LWNvbG9yOnZhcigtLWNvbG9yLWNvbnRlbnQtc2Vjb25kYXJ5LW5ldXRyYWwtYm9sZCl9LmdyYXktbUxFaENyVncuc2Vjb25kYXJ5LW1MRWhDclZ3ey0tdWktbGliLXByaXZhdGUtc3F1YXJlQnV0dG9uLWJnOnZhcigtLWNvbG9yLW90aGVyLXRyYW5zcGFyZW50KTstLXVpLWxpYi1wcml2YXRlLXNxdWFyZUJ1dHRvbi1ib3JkZXI6dmFyKC0tY29sb3ItYm9yZGVyLXByaW1hcnktbmV1dHJhbC1saWdodCk7LS11aS1saWItcHJpdmF0ZS1zcXVhcmVCdXR0b24tY29udGVudC1jb2xvcjp2YXIoLS1jb2xvci1jb250ZW50LXNlY29uZGFyeS1uZXV0cmFsLWJvbGQpfUBtZWRpYSBub3QgKHBvaW50ZXI6Y29hcnNlKXtAbWVkaWEgKGFueS1ob3Zlcjpob3Zlcil7LmdyYXktbUxFaENyVncuc2Vjb25kYXJ5LW1MRWhDclZ3OmhvdmVyey0tdWktbGliLXByaXZhdGUtc3F1YXJlQnV0dG9uLWJnOnZhcigtLWNvbG9yLWNvbnRhaW5lci1maWxsLXByaW1hcnktbmV1dHJhbC1leHRyYS1saWdodCk7LS11aS1saWItcHJpdmF0ZS1zcXVhcmVCdXR0b24tYm9yZGVyOnZhcigtLWNvbG9yLWNvbnRhaW5lci1maWxsLXByaW1hcnktbmV1dHJhbC1leHRyYS1saWdodCk7LS11aS1saWItcHJpdmF0ZS1zcXVhcmVCdXR0b24tY29udGVudC1jb2xvcjp2YXIoLS1jb2xvci1jb250ZW50LXNlY29uZGFyeS1uZXV0cmFsLWJvbGQpfX19LmdyYXktbUxFaENyVncuc2Vjb25kYXJ5LW1MRWhDclZ3OmFjdGl2ZXstLXVpLWxpYi1wcml2YXRlLXNxdWFyZUJ1dHRvbi1iZzp2YXIoLS1jb2xvci1jb250YWluZXItZmlsbC1wcmltYXJ5LW5ldXRyYWwtbGlnaHQpOy0tdWktbGliLXByaXZhdGUtc3F1YXJlQnV0dG9uLWJvcmRlcjp2YXIoLS1jb2xvci1jb250YWluZXItZmlsbC1wcmltYXJ5LW5ldXRyYWwtbGlnaHQpOy0tdWktbGliLXByaXZhdGUtc3F1YXJlQnV0dG9uLWNvbnRlbnQtY29sb3I6dmFyKC0tY29sb3ItY29udGVudC1zZWNvbmRhcnktbmV1dHJhbC1ib2xkKX0uZ3JlZW4tbUxFaENyVncucHJpbWFyeS1tTEVoQ3JWd3stLXVpLWxpYi1wcml2YXRlLXNxdWFyZUJ1dHRvbi1iZzp2YXIoLS1jb2xvci1jb250YWluZXItZmlsbC1wcmltYXJ5LXN1Y2Nlc3MpOy0tdWktbGliLXByaXZhdGUtc3F1YXJlQnV0dG9uLWJvcmRlcjp2YXIoLS1jb2xvci1jb250YWluZXItZmlsbC1wcmltYXJ5LXN1Y2Nlc3MpOy0tdWktbGliLXByaXZhdGUtc3F1YXJlQnV0dG9uLWNvbnRlbnQtY29sb3I6dmFyKC0tY29sb3ItY29udGVudC10ZXJ0aWFyeS1pbnZlcnNlKX1AbWVkaWEgbm90IChwb2ludGVyOmNvYXJzZSl7QG1lZGlhIChhbnktaG92ZXI6aG92ZXIpey5ncmVlbi1tTEVoQ3JWdy5wcmltYXJ5LW1MRWhDclZ3OmhvdmVyey0tdWktbGliLXByaXZhdGUtc3F1YXJlQnV0dG9uLWJnOnZhcigtLWNvbG9yLWNvbnRhaW5lci1maWxsLXByaW1hcnktc3VjY2Vzcy1zZW1pLWJvbGQpOy0tdWktbGliLXByaXZhdGUtc3F1YXJlQnV0dG9uLWJvcmRlcjp2YXIoLS1jb2xvci1jb250YWluZXItZmlsbC1wcmltYXJ5LXN1Y2Nlc3Mtc2VtaS1ib2xkKTstLXVpLWxpYi1wcml2YXRlLXNxdWFyZUJ1dHRvbi1jb250ZW50LWNvbG9yOnZhcigtLWNvbG9yLWNvbnRlbnQtdGVydGlhcnktaW52ZXJzZSl9fX0uZ3JlZW4tbUxFaENyVncucHJpbWFyeS1tTEVoQ3JWdzphY3RpdmV7LS11aS1saWItcHJpdmF0ZS1zcXVhcmVCdXR0b24tYmc6dmFyKC0tY29sb3ItY29udGFpbmVyLWZpbGwtcHJpbWFyeS1zdWNjZXNzLWJvbGQpOy0tdWktbGliLXByaXZhdGUtc3F1YXJlQnV0dG9uLWJvcmRlcjp2YXIoLS1jb2xvci1jb250YWluZXItZmlsbC1wcmltYXJ5LXN1Y2Nlc3MtYm9sZCk7LS11aS1saWItcHJpdmF0ZS1zcXVhcmVCdXR0b24tY29udGVudC1jb2xvcjp2YXIoLS1jb2xvci1jb250ZW50LXRlcnRpYXJ5LWludmVyc2UpfS5ncmVlbi1tTEVoQ3JWdy5zZWNvbmRhcnktbUxFaENyVnd7LS11aS1saWItcHJpdmF0ZS1zcXVhcmVCdXR0b24tYmc6dmFyKC0tY29sb3Itb3RoZXItdHJhbnNwYXJlbnQpOy0tdWktbGliLXByaXZhdGUtc3F1YXJlQnV0dG9uLWJvcmRlcjp2YXIoLS1jb2xvci1ib3JkZXItcHJpbWFyeS1zdWNjZXNzKTstLXVpLWxpYi1wcml2YXRlLXNxdWFyZUJ1dHRvbi1jb250ZW50LWNvbG9yOnZhcigtLWNvbG9yLWNvbnRlbnQtcHJpbWFyeS1zdWNjZXNzKX1AbWVkaWEgbm90IChwb2ludGVyOmNvYXJzZSl7QG1lZGlhIChhbnktaG92ZXI6aG92ZXIpey5ncmVlbi1tTEVoQ3JWdy5zZWNvbmRhcnktbUxFaENyVnc6aG92ZXJ7LS11aS1saWItcHJpdmF0ZS1zcXVhcmVCdXR0b24tYmc6dmFyKC0tY29sb3ItY29udGFpbmVyLWZpbGwtcHJpbWFyeS1zdWNjZXNzLXNlbWktYm9sZCk7LS11aS1saWItcHJpdmF0ZS1zcXVhcmVCdXR0b24tYm9yZGVyOnZhcigtLWNvbG9yLWNvbnRhaW5lci1maWxsLXByaW1hcnktc3VjY2Vzcy1zZW1pLWJvbGQpOy0tdWktbGliLXByaXZhdGUtc3F1YXJlQnV0dG9uLWNvbnRlbnQtY29sb3I6dmFyKC0tY29sb3ItY29udGVudC10ZXJ0aWFyeS1pbnZlcnNlKX19fS5ncmVlbi1tTEVoQ3JWdy5zZWNvbmRhcnktbUxFaENyVnc6YWN0aXZley0tdWktbGliLXByaXZhdGUtc3F1YXJlQnV0dG9uLWJnOnZhcigtLWNvbG9yLWNvbnRhaW5lci1maWxsLXByaW1hcnktc3VjY2Vzcy1ib2xkKTstLXVpLWxpYi1wcml2YXRlLXNxdWFyZUJ1dHRvbi1ib3JkZXI6dmFyKC0tY29sb3ItY29udGFpbmVyLWZpbGwtcHJpbWFyeS1zdWNjZXNzLWJvbGQpOy0tdWktbGliLXByaXZhdGUtc3F1YXJlQnV0dG9uLWNvbnRlbnQtY29sb3I6dmFyKC0tY29sb3ItY29udGVudC10ZXJ0aWFyeS1pbnZlcnNlKX0ucmVkLW1MRWhDclZ3LnByaW1hcnktbUxFaENyVnd7LS11aS1saWItcHJpdmF0ZS1zcXVhcmVCdXR0b24tYmc6dmFyKC0tY29sb3ItY29udGFpbmVyLWZpbGwtcHJpbWFyeS1kYW5nZXIpOy0tdWktbGliLXByaXZhdGUtc3F1YXJlQnV0dG9uLWJvcmRlcjp2YXIoLS1jb2xvci1jb250YWluZXItZmlsbC1wcmltYXJ5LWRhbmdlcik7LS11aS1saWItcHJpdmF0ZS1zcXVhcmVCdXR0b24tY29udGVudC1jb2xvcjp2YXIoLS1jb2xvci1jb250ZW50LXRlcnRpYXJ5LWludmVyc2UpfUBtZWRpYSBub3QgKHBvaW50ZXI6Y29hcnNlKXtAbWVkaWEgKGFueS1ob3Zlcjpob3Zlcil7LnJlZC1tTEVoQ3JWdy5wcmltYXJ5LW1MRWhDclZ3OmhvdmVyey0tdWktbGliLXByaXZhdGUtc3F1YXJlQnV0dG9uLWJnOnZhcigtLWNvbG9yLWNvbnRhaW5lci1maWxsLXByaW1hcnktZGFuZ2VyLXNlbWktYm9sZCk7LS11aS1saWItcHJpdmF0ZS1zcXVhcmVCdXR0b24tYm9yZGVyOnZhcigtLWNvbG9yLWNvbnRhaW5lci1maWxsLXByaW1hcnktZGFuZ2VyLXNlbWktYm9sZCk7LS11aS1saWItcHJpdmF0ZS1zcXVhcmVCdXR0b24tY29udGVudC1jb2xvcjp2YXIoLS1jb2xvci1jb250ZW50LXRlcnRpYXJ5LWludmVyc2UpfX19LnJlZC1tTEVoQ3JWdy5wcmltYXJ5LW1MRWhDclZ3OmFjdGl2ZXstLXVpLWxpYi1wcml2YXRlLXNxdWFyZUJ1dHRvbi1iZzp2YXIoLS1jb2xvci1jb250YWluZXItZmlsbC1wcmltYXJ5LWRhbmdlci1ib2xkKTstLXVpLWxpYi1wcml2YXRlLXNxdWFyZUJ1dHRvbi1ib3JkZXI6dmFyKC0tY29sb3ItY29udGFpbmVyLWZpbGwtcHJpbWFyeS1kYW5nZXItYm9sZCk7LS11aS1saWItcHJpdmF0ZS1zcXVhcmVCdXR0b24tY29udGVudC1jb2xvcjp2YXIoLS1jb2xvci1jb250ZW50LXRlcnRpYXJ5LWludmVyc2UpfS5yZWQtbUxFaENyVncuc2Vjb25kYXJ5LW1MRWhDclZ3ey0tdWktbGliLXByaXZhdGUtc3F1YXJlQnV0dG9uLWJnOnZhcigtLWNvbG9yLW90aGVyLXRyYW5zcGFyZW50KTstLXVpLWxpYi1wcml2YXRlLXNxdWFyZUJ1dHRvbi1ib3JkZXI6dmFyKC0tY29sb3ItY29udGVudC1wcmltYXJ5LWRhbmdlcik7LS11aS1saWItcHJpdmF0ZS1zcXVhcmVCdXR0b24tY29udGVudC1jb2xvcjp2YXIoLS1jb2xvci1idXR0b24tY29udGVudC1zZWNvbmRhcnktZGFuZ2VyLWRlZmF1bHQpfUBtZWRpYSBub3QgKHBvaW50ZXI6Y29hcnNlKXtAbWVkaWEgKGFueS1ob3Zlcjpob3Zlcil7LnJlZC1tTEVoQ3JWdy5zZWNvbmRhcnktbUxFaENyVnc6aG92ZXJ7LS11aS1saWItcHJpdmF0ZS1zcXVhcmVCdXR0b24tYmc6dmFyKC0tY29sb3ItY29udGFpbmVyLWZpbGwtcHJpbWFyeS1kYW5nZXItc2VtaS1ib2xkKTstLXVpLWxpYi1wcml2YXRlLXNxdWFyZUJ1dHRvbi1ib3JkZXI6dmFyKC0tY29sb3ItY29udGFpbmVyLWZpbGwtcHJpbWFyeS1kYW5nZXItc2VtaS1ib2xkKTstLXVpLWxpYi1wcml2YXRlLXNxdWFyZUJ1dHRvbi1jb250ZW50LWNvbG9yOnZhcigtLWNvbG9yLWNvbnRlbnQtdGVydGlhcnktaW52ZXJzZSl9fX0ucmVkLW1MRWhDclZ3LnNlY29uZGFyeS1tTEVoQ3JWdzphY3RpdmV7LS11aS1saWItcHJpdmF0ZS1zcXVhcmVCdXR0b24tYmc6dmFyKC0tY29sb3ItY29udGFpbmVyLWZpbGwtcHJpbWFyeS1kYW5nZXItYm9sZCk7LS11aS1saWItcHJpdmF0ZS1zcXVhcmVCdXR0b24tYm9yZGVyOnZhcigtLWNvbG9yLWNvbnRhaW5lci1maWxsLXByaW1hcnktZGFuZ2VyLWJvbGQpOy0tdWktbGliLXByaXZhdGUtc3F1YXJlQnV0dG9uLWNvbnRlbnQtY29sb3I6dmFyKC0tY29sb3ItY29udGVudC10ZXJ0aWFyeS1pbnZlcnNlKX0uYmxhY2stbUxFaENyVncucHJpbWFyeS1tTEVoQ3JWd3stLXVpLWxpYi1wcml2YXRlLXNxdWFyZUJ1dHRvbi1iZzp2YXIoLS1jb2xvci1jb250YWluZXItZmlsbC1wcmltYXJ5LW5ldXRyYWwtZXh0cmEtYm9sZCk7LS11aS1saWItcHJpdmF0ZS1zcXVhcmVCdXR0b24tYm9yZGVyOnZhcigtLWNvbG9yLWNvbnRhaW5lci1maWxsLXByaW1hcnktbmV1dHJhbC1leHRyYS1ib2xkKTstLXVpLWxpYi1wcml2YXRlLXNxdWFyZUJ1dHRvbi1jb250ZW50LWNvbG9yOnZhcigtLWNvbG9yLWNvbnRlbnQtc2Vjb25kYXJ5LWludmVyc2UpfUBtZWRpYSBub3QgKHBvaW50ZXI6Y29hcnNlKXtAbWVkaWEgKGFueS1ob3Zlcjpob3Zlcil7LmJsYWNrLW1MRWhDclZ3LnByaW1hcnktbUxFaENyVnc6aG92ZXJ7LS11aS1saWItcHJpdmF0ZS1zcXVhcmVCdXR0b24tYmc6dmFyKC0tY29sb3ItY29udGFpbmVyLWZpbGwtcHJpbWFyeS1uZXV0cmFsLWJvbGQpOy0tdWktbGliLXByaXZhdGUtc3F1YXJlQnV0dG9uLWJvcmRlcjp2YXIoLS1jb2xvci1jb250YWluZXItZmlsbC1wcmltYXJ5LW5ldXRyYWwtYm9sZCk7LS11aS1saWItcHJpdmF0ZS1zcXVhcmVCdXR0b24tY29udGVudC1jb2xvcjp2YXIoLS1jb2xvci1jb250ZW50LXNlY29uZGFyeS1pbnZlcnNlKX19fS5ibGFjay1tTEVoQ3JWdy5wcmltYXJ5LW1MRWhDclZ3OmFjdGl2ZXstLXVpLWxpYi1wcml2YXRlLXNxdWFyZUJ1dHRvbi1iZzp2YXIoLS1jb2xvci1jb250YWluZXItZmlsbC1wcmltYXJ5LW5ldXRyYWwtZXh0cmEtYm9sZCk7LS11aS1saWItcHJpdmF0ZS1zcXVhcmVCdXR0b24tYm9yZGVyOnZhcigtLWNvbG9yLWNvbnRhaW5lci1maWxsLXByaW1hcnktbmV1dHJhbC1leHRyYS1ib2xkKTstLXVpLWxpYi1wcml2YXRlLXNxdWFyZUJ1dHRvbi1jb250ZW50LWNvbG9yOnZhcigtLWNvbG9yLWNvbnRlbnQtc2Vjb25kYXJ5LWludmVyc2UpfS5ibGFjay1tTEVoQ3JWdy5zZWNvbmRhcnktbUxFaENyVnd7LS11aS1saWItcHJpdmF0ZS1zcXVhcmVCdXR0b24tYmc6dmFyKC0tY29sb3Itb3RoZXItdHJhbnNwYXJlbnQpOy0tdWktbGliLXByaXZhdGUtc3F1YXJlQnV0dG9uLWJvcmRlcjp2YXIoLS1jb2xvci1ib3JkZXItcHJpbWFyeS1uZXV0cmFsLWV4dHJhLWhlYXZ5KTstLXVpLWxpYi1wcml2YXRlLXNxdWFyZUJ1dHRvbi1jb250ZW50LWNvbG9yOnZhcigtLWNvbG9yLWNvbnRlbnQtc2Vjb25kYXJ5LW5ldXRyYWwtYm9sZCl9QG1lZGlhIG5vdCAocG9pbnRlcjpjb2Fyc2Upe0BtZWRpYSAoYW55LWhvdmVyOmhvdmVyKXsuYmxhY2stbUxFaENyVncuc2Vjb25kYXJ5LW1MRWhDclZ3OmhvdmVyey0tdWktbGliLXByaXZhdGUtc3F1YXJlQnV0dG9uLWJnOnZhcigtLWNvbG9yLWNvbnRhaW5lci1maWxsLXByaW1hcnktbmV1dHJhbC1leHRyYS1ib2xkKTstLXVpLWxpYi1wcml2YXRlLXNxdWFyZUJ1dHRvbi1ib3JkZXI6dmFyKC0tY29sb3ItY29udGFpbmVyLWZpbGwtcHJpbWFyeS1uZXV0cmFsLWV4dHJhLWJvbGQpOy0tdWktbGliLXByaXZhdGUtc3F1YXJlQnV0dG9uLWNvbnRlbnQtY29sb3I6dmFyKC0tY29sb3ItY29udGVudC1zZWNvbmRhcnktaW52ZXJzZSl9fX0uYmxhY2stbUxFaENyVncuc2Vjb25kYXJ5LW1MRWhDclZ3OmFjdGl2ZXstLXVpLWxpYi1wcml2YXRlLXNxdWFyZUJ1dHRvbi1iZzp2YXIoLS1jb2xvci1jb250YWluZXItZmlsbC1wcmltYXJ5LW5ldXRyYWwtYm9sZCk7LS11aS1saWItcHJpdmF0ZS1zcXVhcmVCdXR0b24tYm9yZGVyOnZhcigtLWNvbG9yLWNvbnRhaW5lci1maWxsLXByaW1hcnktbmV1dHJhbC1ib2xkKTstLXVpLWxpYi1wcml2YXRlLXNxdWFyZUJ1dHRvbi1jb250ZW50LWNvbG9yOnZhcigtLWNvbG9yLWNvbnRlbnQtc2Vjb25kYXJ5LWludmVyc2UpfS5wcmltYXJ5LW1MRWhDclZ3W2FyaWEtZGlzYWJsZWQ9dHJ1ZV17YmFja2dyb3VuZDp2YXIoLS1jb2xvci1jb250YWluZXItZmlsbC1wcmltYXJ5LW5ldXRyYWwtbGlnaHQpfS5wcmltYXJ5LW1MRWhDclZ3W2FyaWEtZGlzYWJsZWQ9dHJ1ZV0sLnNlY29uZGFyeS1tTEVoQ3JWd1thcmlhLWRpc2FibGVkPXRydWVde2JvcmRlci1jb2xvcjp2YXIoLS1jb2xvci1jb250YWluZXItZmlsbC1wcmltYXJ5LW5ldXRyYWwtbGlnaHQpO2NvbG9yOnZhcigtLWNvbG9yLWNvbnRlbnQtcHJpbWFyeS1uZXV0cmFsLWxpZ2h0KX0uc2Vjb25kYXJ5LW1MRWhDclZ3W2FyaWEtZGlzYWJsZWQ9dHJ1ZV17YmFja2dyb3VuZDp2YXIoLS1jb2xvci1vdGhlci10cmFuc3BhcmVudCl9LnNsb3QtbUxFaENyVnd7YWxpZ24taXRlbXM6Y2VudGVyO2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyfS5zdHJldGNoLW1MRWhDclZ3e3dpZHRoOjEwMCV9LmJ1dHRvbi1tTEVoQ3JWdy5ncm91cGVkLW1MRWhDclZ3LmFkanVzdFBvc2l0aW9uLW1MRWhDclZ3Om5vdCguZmlyc3RSb3ctbUxFaENyVncpe21hcmdpbi10b3A6LTFweH0uYnV0dG9uLW1MRWhDclZ3Lmdyb3VwZWQtbUxFaENyVncuYWRqdXN0UG9zaXRpb24tbUxFaENyVnc6bm90KC5maXJzdENvbC1tTEVoQ3JWdyl7bWFyZ2luLWlubGluZS1zdGFydDotMXB4O21heC13aWR0aDpjYWxjKDEwMCUgKyAxcHgpO3dpZHRoOmNhbGMoMTAwJSArIDFweCl9LmJ1dHRvbi1tTEVoQ3JWdy5ncm91cGVkLW1MRWhDclZ3OmZvY3Vze3otaW5kZXg6MX0uYnV0dG9uLW1MRWhDclZ3Lmdyb3VwZWQtbUxFaENyVnc6Zm9jdXMtdmlzaWJsZXt6LWluZGV4OjF9LmJ1dHRvbi1tTEVoQ3JWdy5ncm91cGVkLW1MRWhDclZ3OmZvY3VzOm5vdCg6Zm9jdXMtdmlzaWJsZSl7ei1pbmRleDphdXRvfS5idXR0b24tbUxFaENyVncuZ3JvdXBlZC1tTEVoQ3JWdy5uby1jb3JuZXItdG9wLWxlZnQtbUxFaENyVncsLmJ1dHRvbi1tTEVoQ3JWdy5ncm91cGVkLW1MRWhDclZ3Lm5vLWNvcm5lci10b3AtbGVmdC1tTEVoQ3JWdzphZnRlcntib3JkZXItdG9wLWxlZnQtcmFkaXVzOjB9LmJ1dHRvbi1tTEVoQ3JWdy5ncm91cGVkLW1MRWhDclZ3Lm5vLWNvcm5lci10b3AtcmlnaHQtbUxFaENyVncsLmJ1dHRvbi1tTEVoQ3JWdy5ncm91cGVkLW1MRWhDclZ3Lm5vLWNvcm5lci10b3AtcmlnaHQtbUxFaENyVnc6YWZ0ZXJ7Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6MH0uYnV0dG9uLW1MRWhDclZ3Lmdyb3VwZWQtbUxFaENyVncubm8tY29ybmVyLWJvdHRvbS1yaWdodC1tTEVoQ3JWdywuYnV0dG9uLW1MRWhDclZ3Lmdyb3VwZWQtbUxFaENyVncubm8tY29ybmVyLWJvdHRvbS1yaWdodC1tTEVoQ3JWdzphZnRlcntib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czowfS5idXR0b24tbUxFaENyVncuZ3JvdXBlZC1tTEVoQ3JWdy5uby1jb3JuZXItYm90dG9tLWxlZnQtbUxFaENyVncsLmJ1dHRvbi1tTEVoQ3JWdy5ncm91cGVkLW1MRWhDclZ3Lm5vLWNvcm5lci1ib3R0b20tbGVmdC1tTEVoQ3JWdzphZnRlcntib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjB9LnRleHRXcmFwLW1MRWhDclZ3e2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7d2hpdGUtc3BhY2U6bm93cmFwfS5tdWx0aWxpbmVDb250ZW50LW1MRWhDclZ3e2hlaWdodDptaW4tY29udGVudDtwYWRkaW5nOmNhbGModmFyKC0tdWktbGliLXNpemUtZGVmLXhzbWFsbCkqOXB4ICsgdmFyKC0tdWktbGliLXNpemUtZGVmLXNtYWxsKSo5cHggKyB2YXIoLS11aS1saWItc2l6ZS1kZWYtbWVkaXVtKSoxNXB4ICsgdmFyKC0tdWktbGliLXNpemUtZGVmLWxhcmdlKSoyM3B4ICsgdmFyKC0tdWktbGliLXNpemUtZGVmLXhsYXJnZSkqMjNweCk7cGFkZGluZy1ib3R0b206Y2FsYyh2YXIoLS11aS1saWItc2l6ZS1kZWYteHNtYWxsKSozcHggKyB2YXIoLS11aS1saWItc2l6ZS1kZWYtc21hbGwpKjNweCArIHZhcigtLXVpLWxpYi1zaXplLWRlZi1tZWRpdW0pKjJweCArIHZhcigtLXVpLWxpYi1zaXplLWRlZi1sYXJnZSkqNXB4ICsgdmFyKC0tdWktbGliLXNpemUtZGVmLXhsYXJnZSkqNnB4KTtwYWRkaW5nLXRvcDpjYWxjKHZhcigtLXVpLWxpYi1zaXplLWRlZi14c21hbGwpKjFweCArIHZhcigtLXVpLWxpYi1zaXplLWRlZi1zbWFsbCkqMXB4ICsgdmFyKC0tdWktbGliLXNpemUtZGVmLW1lZGl1bSkqMnB4ICsgdmFyKC0tdWktbGliLXNpemUtZGVmLWxhcmdlKSo1cHggKyB2YXIoLS11aS1saWItc2l6ZS1kZWYteGxhcmdlKSo2cHgpfS5wcmltYXJ5VGV4dC1tTEVoQ3JWd3tmb250LWZlYXR1cmUtc2V0dGluZ3M6InRudW0iIG9uLCJsbnVtIiBvbjtmb250LXNpemU6Y2FsYyh2YXIoLS11aS1saWItc2l6ZS1kZWYteHNtYWxsKSoxMnB4ICsgdmFyKC0tdWktbGliLXNpemUtZGVmLXNtYWxsKSoxMnB4ICsgdmFyKC0tdWktbGliLXNpemUtZGVmLW1lZGl1bSkqMTRweCArIHZhcigtLXVpLWxpYi1zaXplLWRlZi1sYXJnZSkqMTRweCArIHZhcigtLXVpLWxpYi1zaXplLWRlZi14bGFyZ2UpKjE2cHgpO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtd2VpZ2h0OmNhbGModmFyKC0tdWktbGliLXNpemUtZGVmLXhzbWFsbCkqNjAwICsgdmFyKC0tdWktbGliLXNpemUtZGVmLXNtYWxsKSo2MDAgKyB2YXIoLS11aS1saWItc2l6ZS1kZWYtbWVkaXVtKSo2MDAgKyB2YXIoLS11aS1saWItc2l6ZS1kZWYtbGFyZ2UpKjYwMCArIHZhcigtLXVpLWxpYi1zaXplLWRlZi14bGFyZ2UpKjYwMCk7bGluZS1oZWlnaHQ6Y2FsYyh2YXIoLS11aS1saWItc2l6ZS1kZWYteHNtYWxsKSoxNnB4ICsgdmFyKC0tdWktbGliLXNpemUtZGVmLXNtYWxsKSoxNnB4ICsgdmFyKC0tdWktbGliLXNpemUtZGVmLW1lZGl1bSkqMThweCArIHZhcigtLXVpLWxpYi1zaXplLWRlZi1sYXJnZSkqMThweCArIHZhcigtLXVpLWxpYi1zaXplLWRlZi14bGFyZ2UpKjI0cHgpO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7d2hpdGUtc3BhY2U6bm93cmFwfS5wcmltYXJ5VGV4dC1tTEVoQ3JWdywuc2Vjb25kYXJ5VGV4dC1tTEVoQ3JWd3tmb250LWZhbWlseTotYXBwbGUtc3lzdGVtLEJsaW5rTWFjU3lzdGVtRm9udCxUcmVidWNoZXQgTVMsUm9ib3RvLFVidW50dSxzYW5zLXNlcmlmO292ZXJmbG93OmhpZGRlbn0uc2Vjb25kYXJ5VGV4dC1tTEVoQ3JWd3tmb250LWZlYXR1cmUtc2V0dGluZ3M6InRudW0iIG9uLCJsbnVtIiBvbjtmb250LXNpemU6Y2FsYyh2YXIoLS11aS1saWItc2l6ZS1kZWYteHNtYWxsKSoxMXB4ICsgdmFyKC0tdWktbGliLXNpemUtZGVmLXNtYWxsKSoxMXB4ICsgdmFyKC0tdWktbGliLXNpemUtZGVmLW1lZGl1bSkqMTJweCArIHZhcigtLXVpLWxpYi1zaXplLWRlZi1sYXJnZSkqMTNweCArIHZhcigtLXVpLWxpYi1zaXplLWRlZi14bGFyZ2UpKjEzcHgpO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtd2VpZ2h0OmNhbGModmFyKC0tdWktbGliLXNpemUtZGVmLXhzbWFsbCkqNDAwICsgdmFyKC0tdWktbGliLXNpemUtZGVmLXNtYWxsKSo0MDAgKyB2YXIoLS11aS1saWItc2l6ZS1kZWYtbWVkaXVtKSo0MDAgKyB2YXIoLS11aS1saWItc2l6ZS1kZWYtbGFyZ2UpKjQwMCArIHZhcigtLXVpLWxpYi1zaXplLWRlZi14bGFyZ2UpKjQwMCk7bGluZS1oZWlnaHQ6Y2FsYyh2YXIoLS11aS1saWItc2l6ZS1kZWYteHNtYWxsKSoxNnB4ICsgdmFyKC0tdWktbGliLXNpemUtZGVmLXNtYWxsKSoxNnB4ICsgdmFyKC0tdWktbGliLXNpemUtZGVmLW1lZGl1bSkqMTZweCArIHZhcigtLXVpLWxpYi1zaXplLWRlZi1sYXJnZSkqMThweCArIHZhcigtLXVpLWxpYi1zaXplLWRlZi14bGFyZ2UpKjE4cHgpO3RleHQtdHJhbnNmb3JtOnZhcigtLXVpLWxpYi1zcXVhcmVCdXR0b24tc2Vjb25kYXJ5LXRleHQtdHJhbnNmb3JtKTt3aGl0ZS1zcGFjZTpub3JtYWw7LS11aS1saWItdHlwb2dyYXBoeS1saW5lLWhlaWdodDpjYWxjKHZhcigtLXVpLWxpYi1zaXplLWRlZi14c21hbGwpKjE2cHggKyB2YXIoLS11aS1saWItc2l6ZS1kZWYtc21hbGwpKjEycHggKyB2YXIoLS11aS1saWItc2l6ZS1kZWYtbWVkaXVtKSoxNnB4ICsgdmFyKC0tdWktbGliLXNpemUtZGVmLWxhcmdlKSoxOHB4ICsgdmFyKC0tdWktbGliLXNpemUtZGVmLXhsYXJnZSkqMThweCk7ZGlzcGxheTotd2Via2l0LWJveDtsZXR0ZXItc3BhY2luZzpjYWxjKHZhcigtLXVpLWxpYi1zaXplLWRlZi14c21hbGwpKi40cHggKyB2YXIoLS11aS1saWItc2l6ZS1kZWYtc21hbGwpKi40cHggKyB2YXIoLS11aS1saWItc2l6ZS1kZWYtbWVkaXVtKSowICsgdmFyKC0tdWktbGliLXNpemUtZGVmLWxhcmdlKSowICsgdmFyKC0tdWktbGliLXNpemUtZGVmLXhsYXJnZSkqMCk7LXdlYmtpdC1saW5lLWNsYW1wOjI7LXdlYmtpdC1ib3gtb3JpZW50OnZlcnRpY2FsO2xpbmUtaGVpZ2h0OnZhcigtLXVpLWxpYi10eXBvZ3JhcGh5LWxpbmUtaGVpZ2h0KTttYXgtaGVpZ2h0OmNhbGModmFyKC0tdWktbGliLXR5cG9ncmFwaHktbGluZS1oZWlnaHQpKjIpfQ=="}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/en.79667.38b400b7bcd71265de7e.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.501Z","timestamp":1785148034501,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/en.79667.38b400b7bcd71265de7e.js HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a632876-443f\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Fri, 24 Jul 2026 08:55:18 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/24/2026 10:31:24\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 9318343cb2cd23cf9fa5d203a146b3c8\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":17471,"size_decoded":6840,"mime_type":"application/javascript; charset=utf-8","magic":"Unicode text, UTF-8 text, with very long lines (3068)","md5":"abdac933416adad2f1f0358c34e06d0c","sha1":"0dc05aeba8286a0334c027665641bcf478994d5d","sha256":"5f564c4503176b996145604c8e659d0a1c2128953899b2e776973f0a91e17e9d","sha512":"56050afbc169f102143e4d56c74c692b0bae5319724042b3417d8740d60592b7d74fb27d1863dce300e020f33f36498a00fd31af8f94b6d301558007054ee92b","ssdeep":"192:nzHO1epgwUCqXYyY0ltStvFnUkst1siHYFhftcmrEnpsMhRl2FlQ8oCe68ciDhvx:nzJWPs0ChspEkmEnptD2FlQ8/e6Axrn","tlshash":"6c72db17c105c0fa8fb5ca227359edc0b5f8b19410f1e8c6b3a95f69c623c656838b79","first_seen":"2026-07-24T15:28:44.838926Z","last_seen":"2026-07-27T12:48:39.705138Z","times_seen":56,"resource_available":true,"data":"KHNlbGYud2VicGFja0NodW5rdHJhZGluZ3ZpZXc9c2VsZi53ZWJwYWNrQ2h1bmt0cmFkaW5ndmlld3x8W10pLnB1c2goW1szMjc4LDE4OTExLDUyMzI0LDc5NjY3LDg3MjM4LDk0OTQ3XSx7NDM1NzUwKGUpe2UuZXhwb3J0cz1bIlJlbW92ZSBzZWxlY3RlZCBzeW1ib2xzPyJdfSw4MjY4NzMoZSl7ZS5leHBvcnRzPVsiVW5mbGFnIGFsbCBzeW1ib2xzPyJdfSw0MTcxOTEoZSl7ZS5leHBvcnRzPVsiVW5mbGFnIHNlbGVjdGVkIHN5bWJvbHM/Il19LDIwNjk0OChlKXtlLmV4cG9ydHM9WyJDbGVhciJdfSwzMDkzMyhlKXtlLmV4cG9ydHM9WyJDYW5jZWwiXX0sMTA4KGUpe2UuZXhwb3J0cz1bIlJlbW92ZSJdfSw4MzU5MzcoZSl7ZS5leHBvcnRzPVsiVW5mbGFnIl19LDY2ODQ0OShlKXtlLmV4cG9ydHM9WyJhbmltYWxzICYgbmF0dXJlIl19LDU3NDcxNShlKXtlLmV4cG9ydHM9WyJhY3Rpdml0eSJdfSwxNDc1MDAoZSl7ZS5leHBvcnRzPVsiZm9vZCAmIGRyaW5rIl19LDE3NDE3OChlKXtlLmV4cG9ydHM9WyJmbGFncyJdfSw5NDMzOTMoZSl7ZS5leHBvcnRzPVsib2JqZWN0cyJdfSwzMDYwNzAoZSl7ZS5leHBvcnRzPVsic21pbGVzICYgcGVvcGxlIl19LDI3NjYwOShlKXtlLmV4cG9ydHM9WyJzeW1ib2xzIl19LDQ2NTQ1NihlKXtlLmV4cG9ydHM9WyJyZWNlbnRseSB1c2VkIl19LDEyMzEzOChlKXtlLmV4cG9ydHM9WyJ0cmF2ZWwgJiBwbGFjZXMiXX0sOTA0NzA0KGUpe2UuZXhwb3J0cz1bIk5vIG9wdGlvbnMgYXZhaWxhYmxlIl19LDMwNjYyNihlKXtlLmV4cG9ydHM9WyJCYWNrIl19LDY1MTYzOChlKXtlLmV4cG9ydHM9WyJOZXcgd2F0Y2hsaXN0IG5hbWUiXX0sMTYzOTgwKGUpe2UuZXhwb3J0cz1bIlN5bWJvbCJdfSw3Mzg1NShlKXtlLmV4cG9ydHM9WyJDYWxscyJdfSw5MTU3ODcoZSl7ZS5leHBvcnRzPVsiUHV0cyJdfSw4OTI1KGUpe2UuZXhwb3J0cz1bIkhpZGUgc3ByZWFkIG9wZXJhdG9ycyJdfSwzMjMzNjMoZSl7ZS5leHBvcnRzPVsiU2hvdyBzcHJlYWQgb3BlcmF0b3JzIl19LDk2MjMxOChlKXtlLmV4cG9ydHM9WyJBZGRpdGlvbiJdfSwzMzgwMChlKXtlLmV4cG9ydHM9WyJEaXZpc2lvbiJdfSw5MjMwMjEoZSl7ZS5leHBvcnRzPVsiRXhwb25lbnRpYXRpb24iXX0sNDg0ODc1KGUpe2UuZXhwb3J0cz1bIk11bHRpcGxpY2F0aW9uIl19LDkwNTI5OShlKXtlLmV4cG9ydHM9WyJTdWJ0cmFjdGlvbiJdfSw4NTMzNDkoZSl7ZS5leHBvcnRzPVsiUmVjaXByb2NhbCJdfSw4NDUyMjgoZSl7ZS5leHBvcnRzPVsiU3ltYm9sIHNlYXJjaCJdfSwyMzkxOTgoZSl7ZS5leHBvcnRzPVsiQ29sbGFwc2UiXX0sMzg2MjQ2KGUpe2UuZXhwb3J0cz1bIkV4cGFuZCJdfSwxODEzMDUoZSl7ZS5leHBvcnRzPVsiQ0VYIl19LDQ1MDI3MyhlKXtlLmV4cG9ydHM9WyJDb21tb24gc3RvY2siXX0sMzAxNTkzKGUpe2UuZXhwb3J0cz1bIkNvbW1lcmNpYWwgU2VydmljZXMiXX0sOTM0MjQ2KGUpe2UuZXhwb3J0cz1bIkNvbW11bmljYXRpb25zIl19LDY4NTEzKGUpe2UuZXhwb3J0cz1bIkNvbnN1bWVyIl19LDI3Mzk0MyhlKXtlLmV4cG9ydHM9WyJDb25zdW1lciBEdXJhYmxlcyJdfSwyNDY1NShlKXtlLmV4cG9ydHM9WyJDb25zdW1lciBOb24tRHVyYWJsZXMiXX0sMjQ0OTIoZSl7ZS5leHBvcnRzPVsiQ29uc3VtZXIgU2VydmljZXMiXX0sNjc1NDQzKGUpe2UuZXhwb3J0cz1bIkNvcnBvcmF0ZSJdfSw3ODkzMTkoZSl7ZS5leHBvcnRzPVsiQ2Vuc3VzIEJ1cmVhdSJdfSw4NTQ2NjEoZSl7ZS5leHBvcnRzPVsiQ2VudHJhbCBCYW5rIG9mIFdlc3QgQWZyaWNhbiBTdGF0ZXMgKEJDRUFPKSJdfSwzMzgxOTcoZSl7ZS5leHBvcnRzPVsiQ2hlbWljYWxzIl19LDU5ODU4KGUpe2UuZXhwb3J0cz1bIkN1cnJlbmNpZXMiXX0sOTkzMTY4KGUpe2UuZXhwb3J0cz1bIkFLQU1BSSJdfSw0NDY3NjcoZSl7ZS5leHBvcnRzPVsiQWdyaWN1bHR1cmUiXX0sOTc3NzY3KGUpe2UuZXhwb3J0cz1bIkFsbCBjYXRlZ29yaWVzIl19LDM2NTM0MChlKXtlLmV4cG9ydHM9WyJBbGwgZXhjaGFuZ2UgdHlwZXMiXX0sNTAyNTUzKGUpe2UuZXhwb3J0cz1bIkFsbCBzZWN0b3JzIl19LDI4OTI4MChlKXtlLmV4cG9ydHM9WyJBbGwgc291cmNlcyJdfSw3NjEzNjQoZSl7ZS5leHBvcnRzPVsiQWxsIHR5cGVzIl19LDU0NjQ5KGUpe2UuZXhwb3J0cz1bIkJDRUFPIl19LDg5NzAyOShlKXtlLmV4cG9ydHM9WyJCRUEiXX0sOTY5NjEzKGUpe2UuZXhwb3J0cz1bIkJMUyJdfSwxMzczNTMoZSl7ZS5leHBvcnRzPVsiQnVpbGRpbmcgbWF0ZXJpYWxzIl19LDU0MzU1MChlKXtlLmV4cG9ydHM9WyJCdXJlYXUgb2YgRWNvbm9taWNzIEFuYWx5c2lzIl19LDkwMzA4MyhlKXtlLmV4cG9ydHM9WyJCdXJlYXUgb2YgTGFib3VyIFN0YXRpc3RpY3MiXX0sMzg1MTYyKGUpe2UuZXhwb3J0cz1bIkJ1c2luZXNzIl19LDQxNTQwKGUpe2UuZXhwb3J0cz1bIkdEUCJdfSw4MzQ2MzQoZSl7ZS5leHBvcnRzPVsiR292ZXJubWVudCJdfSw1MzU1OShlKXtlLmV4cG9ydHM9WyJHb3Zlcm5tZW50IHNlY3RvciJdfSwzMjg1NDUoZSl7ZS5leHBvcnRzPVsiREVYIl19LDI5MjAyMChlKXtlLmV4cG9ydHM9WyJEZXBvc2l0b3J5IFJlY2VpcHQiXX0sMjk0ODEwKGUpe2UuZXhwb3J0cz1bIkRpc3RyaWJ1dGlvbiBTZXJ2aWNlcyJdfSwyMjc4NjAoZSl7ZS5leHBvcnRzPVsiRVRGIl19LDYyODQ3MihlKXtlLmV4cG9ydHM9WyJFVVJPU1RBVCJdfSwyMzM4OTAoZSl7ZS5leHBvcnRzPVsiRW5lcmd5Il19LDY2MjQ4MShlKXtlLmV4cG9ydHM9WyJFbmVyZ3kgTWluZXJhbHMiXX0sNjEyMDc1KGUpe2UuZXhwb3J0cz1bIkVsZWN0cm9uaWMgVGVjaG5vbG9neSJdfSwxMTA2MihlKXtlLmV4cG9ydHM9WyJGZWRlcmFsIFJlc2VydmUiXX0sNjkxMTg5KGUpe2UuZXhwb3J0cz1bIkZpbmFuY2UiXX0sMjA2MTEoZSl7ZS5leHBvcnRzPVsiRnV0dXJlcyJdfSw5ODc0MzQoZSl7ZS5leHBvcnRzPVsiRnVuZGFtZW50YWwiXX0sMjAxNTc0KGUpe2UuZXhwb3J0cz1bIkhvdXNpbmciXX0sMjIyMDAyKGUpe2UuZXhwb3J0cz1bIkhlYWx0aCJdfSw2MDEzNDkoZSl7ZS5leHBvcnRzPVsiSGVhbHRoIFNlcnZpY2VzIl19LDE1MjgwNShlKXsKZS5leHBvcnRzPVsiSGVhbHRoIFRlY2hub2xvZ3kiXX0sNjY1Njg5KGUpe2UuZXhwb3J0cz1bIklNRiJdfSwzNzc3NDIoZSl7ZS5leHBvcnRzPVsiSUVQIl19LDYwMTU1MShlKXtlLmV4cG9ydHM9WyJJbnRlcmVzdCByYXRlcyJdfSw4NDAxODcoZSl7ZS5leHBvcnRzPVsiSW50ZXJuYXRpb25hbCBNb25ldGFyeSBGdW5kIChJTUYpIl19LDU5NzIwMChlKXtlLmV4cG9ydHM9WyJJbmRleCJdfSwzODIxNDAoZSl7ZS5leHBvcnRzPVsiSW5kdXN0cmlhbCBTZXJ2aWNlcyJdfSw4MzI4NjYoZSl7ZS5leHBvcnRzPVsiSW5zdGl0dXRlIGZvciBFY29ub21pY3MgYW5kIFBlYWNlIl19LDQ1MDU1MChlKXtlLmV4cG9ydHM9WyJPTlMiXX0sNTIwMDQwKGUpe2UuZXhwb3J0cz1bIk9FQ0QiXX0sOTc4Mjk0KGUpe2UuZXhwb3J0cz1bIk9mZmljZSBmb3IgTmF0aW9uYWwgU3RhdGlzdGljcyJdfSwxMTc4MTAoZSl7ZS5leHBvcnRzPVsiT3JnYW5pc2F0aW9uIGZvciBFY29ub21pYyBDby1vcGVyYXRpb24gYW5kIERldmVsb3BtZW50Il19LDgxNTc0MShlKXtlLmV4cG9ydHM9WyJMYWJvciJdfSw3NTQ0OTAoZSl7ZS5leHBvcnRzPVsiTW9uZXkiXX0sNzYxMTIyKGUpe2UuZXhwb3J0cz1bIk1ldGFscyJdfSwzNjc3NjMoZSl7ZS5leHBvcnRzPVsiTWlzY2VsbGFuZW91cyJdfSw5NTc3OTgoZSl7ZS5leHBvcnRzPVsiTXV0dWFsIGZ1bmQiXX0sMTkxNDIoZSl7ZS5leHBvcnRzPVsiTm9uLUVuZXJneSBNaW5lcmFscyJdfSw3NzA5ODIoZSl7ZS5leHBvcnRzPVsiU0lQUkkiXX0sNzQ2NzkyKGUpe2UuZXhwb3J0cz1bIlNpbmdsZSBzdG9jayJdfSw0MzczNTYoZSl7ZS5leHBvcnRzPVsiU3BvdCJdfSw5MTc4MDUoZSl7ZS5leHBvcnRzPVsiU3RhdENhbiJdfSw2NTQ0NDAoZSl7ZS5leHBvcnRzPVsiU3RhdGlzdGljcyBDYW5hZGEiXX0sODYzMjM2KGUpe2UuZXhwb3J0cz1bIlN0YXRpc3RpY3MgTm9yd2F5Il19LDg3MTcyNyhlKXtlLmV4cG9ydHM9WyJTdG9ja2hvbG0gSW50ZXJuYXRpb25hbCBQZWFjZSBSZXNlYXJjaCBJbnN0aXR1dGUiXX0sMTY5MTQ1KGUpe2UuZXhwb3J0cz1bIlN3YXAiXX0sNjc4MzUoZSl7ZS5leHBvcnRzPVsiUHJlLUlQTyJdfSw0ODc0MDQoZSl7ZS5leHBvcnRzPVsiUHJlZmVycmVkIHN0b2NrIl19LDUzNjMzMyhlKXtlLmV4cG9ydHM9WyJQcmljZXMiXX0sNzEyMTk4KGUpe2UuZXhwb3J0cz1bIlByb2Nlc3MgSW5kdXN0cmllcyJdfSw5OTY0MjAoZSl7ZS5leHBvcnRzPVsiUHJvZHVjZXIgTWFudWZhY3R1cmluZyJdfSw5NTAxNzQoZSl7ZS5leHBvcnRzPVsiUkVJVCJdfSwzNjc1ODIoZSl7ZS5leHBvcnRzPVsiUmV0YWlsIFRyYWRlIl19LDI1ODc2MChlKXtlLmV4cG9ydHM9WyJXQiJdfSw3OTA0NjYoZSl7ZS5leHBvcnRzPVsiV0VGIl19LDgzMjk0NyhlKXtlLmV4cG9ydHM9WyJXR0MiXX0sMzM2MTEyKGUpe2UuZXhwb3J0cz1bIldvcmxkIEJhbmsiXX0sNDgzOTY2KGUpe2UuZXhwb3J0cz1bIldvcmxkIEdvbGQgQ291bmNpbCJdfSw4NTk5NTUoZSl7ZS5leHBvcnRzPVsiV29ybGQgRWNvbm9taWMgRm9ydW0iXX0sNzIxNzYyKGUpe2UuZXhwb3J0cz1bIldvcmxkIGluZGljZXMiXX0sNzE0MTQ1KGUpe2UuZXhwb3J0cz1bIldhZ2VJbmRpY2F0b3IiXX0sMzQ1NjA5KGUpe2UuZXhwb3J0cz1bIldhZ2VJbmRpY2F0b3IgRm91bmRhdGlvbiJdfSw0NTU0MDQoZSl7ZS5leHBvcnRzPVsiV2FycmFudCJdfSw5MTE4NjIoZSl7ZS5leHBvcnRzPVsiV2VhdGhlciJdfSwyNzY4MzMoZSl7ZS5leHBvcnRzPVsiVGF4ZXMiXX0sMjg0Njc3KGUpe2UuZXhwb3J0cz1bIlRlY2hub2xvZ3kgU2VydmljZXMiXX0sOTM3OTM1KGUpe2UuZXhwb3J0cz1bIlRydXN0Il19LDIzOTkyOShlKXtlLmV4cG9ydHM9WyJUcmFkZSJdfSw3NzAxMihlKXtlLmV4cG9ydHM9WyJUcmFuc3BhcmVuY3kgSW50ZXJuYXRpb25hbCJdfSw0MzI3MzgoZSl7ZS5leHBvcnRzPVsiVHJhbnNwb3J0YXRpb24iXX0sNTk5ODA3KGUpe2UuZXhwb3J0cz1bIlUuUy4gRW5lcmd5IEluZm9ybWF0aW9uIEFkbWluaXN0cmF0aW9uIl19LDYyNzUwNChlKXtlLmV4cG9ydHM9WyJVRUlBIl19LDM5OTQ1MShlKXtlLmV4cG9ydHM9WyJVU0NCIl19LDM0MzI4NChlKXtlLmV4cG9ydHM9WyJVdGlsaXRpZXMiXX0sNTgwNTY4KGUpe2UuZXhwb3J0cz1bIkNhdGVnb3JpZXMiXX0sMzQ0NzgxKGUpe2UuZXhwb3J0cz1bIkV4Y2hhbmdlIHR5cGVzIl19LDMyMTA4OShlKXtlLmV4cG9ydHM9WyJTb3VyY2VzIl19LDg5NTE3NihlKXtlLmV4cG9ydHM9WyJTZWN0b3JzIl19LDY2MjgzNChlKXtlLmV4cG9ydHM9WyJUeXBlcyJdfSwyODcwMzgoZSl7ZS5leHBvcnRzPVsiUmlnaHQiXX0sNDQ1MzMzKGUpe2UuZXhwb3J0cz1bIlN0cmlrZSJdfSwxNjE3MDgoZSl7ZS5leHBvcnRzPVsiLiJdfSw1MDI2OTIoZSl7ZS5leHBvcnRzPVsiJXMgYWdvIl19LDQ5MDc0MChlKXtlLmV4cG9ydHM9WyJJbiAlcyJdfSwzMjU3MzIoZSl7ZS5leHBvcnRzPVsiQ29jb3MgKEtlZWxpbmcpIElzbGFuZHMiXX0sNDg0MTM2KGUpe2UuZXhwb3J0cz1bIkNvbW9yb3MiXX0sOTY0ODU4KGUpe2UuZXhwb3J0cz1bIkNvbmdvIl19LDI3MTU1OChlKXtlLmV4cG9ydHM9WyJDb25nbyAodGhlIERlbW9jcmF0aWMgUmVwdWJsaWMgb2YgdGhlKSJdfSw3MDg4NTkoZSl7ZS5leHBvcnRzPVsiQ29vayBJc2xhbmRzIl19LDI2ODg0NChlKXtlLmV4cG9ydHM9WyJDb3N0YSBSaWNhIl19LDY0MTAyNihlKXtlLmV4cG9ydHM9WyJDYXltYW4gSXNsYW5kcyJdfSw2MDEwOTcoZSl7ZS5leHBvcnRzPVsiQ2FibyBWZXJkZSJdfSw1NTU0ODkoZSl7ZS5leHBvcnRzPVsiQ2FtYm9kaWEiXX0sOTc3MDI4KGUpe2UuZXhwb3J0cz1bIkNhbWVyb29uIl19LDc3NDc4KGUpe2UuZXhwb3J0cz1bIkNlbnRyYWwgQWZyaWNhbiBSZXB1YmxpYyJdfSw0ODM1NShlKXtlLmV4cG9ydHM9WyJDaGFkIl19LDk1NjQ2NChlKXtlLmV4cG9ydHM9WyJDaHJpc3RtYXMgSXNsYW5kIl19LDU0OTEwKGUpe2UuZXhwb3J0cz1bIkNsb3NlIG1lbnUiXX0sODgyNDExKGUpe2UuZXhwb3J0cz1bIkNyeXB0byJdfSwyOTk5NjYoZSl7ZS5leHBvcnRzPVsiQ3J5cHRvY3VycmVuY3kiXX0sCjc2OTE0MChlKXtlLmV4cG9ydHM9WyJDdWJhIl19LDU4OTQxNyhlKXtlLmV4cG9ydHM9WyJDdXJhY2FvIl19LDk0NTE3MShlKXtlLmV4cG9ydHM9WyJDdXJhw6dhbyJdfSwxNDY4NChlKXtlLmV4cG9ydHM9WyJDeWFuIl19LDgzOTM5MChlKXtlLmV4cG9ydHM9WyJDeWFuIGxpc3QiXX0sMjYxOTkwKGUpe2UuZXhwb3J0cz1bIkN6ZWNoaWEiXX0sNDk4NzYyKGUpe2UuZXhwb3J0cz1bIkPDtHRlIGQnSXZvaXJlIl19LDEwNDU1MyhlKXtlLmV4cG9ydHM9WyJBbWVyaWNhbiBTYW1vYSJdfSw5OTE0NjQoZSl7ZS5leHBvcnRzPVsiQW1lcmljYXMiXX0sMjk3NTcwKGUpe2UuZXhwb3J0cz1bIkFudGFyY3RpY2EiXX0sNzQ1ODkoZSl7ZS5leHBvcnRzPVsiQW50aWd1YSBhbmQgQmFyYnVkYSJdfSw5NjUyMTMoZSl7ZS5leHBvcnRzPVsiQW5kb3JyYSJdfSw3NzcyMChlKXtlLmV4cG9ydHM9WyJBbmdvbGEiXX0sODU0OTAyKGUpe2UuZXhwb3J0cz1bIkFuZ3VpbGxhIl19LDQxODIzOChlKXtlLmV4cG9ydHM9WyJBZGQgdG8gV2F0Y2hsaXN0Il19LDk5MzEwMShlKXtlLmV4cG9ydHM9WyJBZmdoYW5pc3RhbiJdfSw2NTAzNDQoZSl7ZS5leHBvcnRzPVsiQWZyaWNhIl19LDI4MDAyNShlKXtlLmV4cG9ydHM9WyJBbGJhbmlhIl19LDI5NjE4MShlKXtlLmV4cG9ydHM9WyJBbGdlcmlhIl19LDIzMzY5MChlKXtlLmV4cG9ydHM9WyJBbGwiXX0sNTEzMzA4KGUpe2UuZXhwb3J0cz1bIkFsbCBjb3VudHJpZXMiXX0sMzg0MDIwKGUpe2UuZXhwb3J0cz1bIkFsbCBzb3VyY2VzIl19LDExNDc1NihlKXtlLmV4cG9ydHM9WyJBcnViYSJdfSw3Nzk5NTIoZSl7ZS5leHBvcnRzPVsiQXJtZW5pYSJdfSw2ODkxODIoZSl7ZS5leHBvcnRzPVsiQXNpYSJdfSw3NjQxNzEoZSl7ZS5leHBvcnRzPVsiQXNpYSAvIFBhY2lmaWMiXX0sNDY4MTcoZSl7ZS5leHBvcnRzPVsiQXplcmJhaWphbiJdfSw0MjUzNzgoZSl7ZS5leHBvcnRzPVsiQm90c3dhbmEiXX0sNzMwNzYzKGUpe2UuZXhwb3J0cz1bIkJvdXZldCBJc2xhbmQiXX0sOTMxMzA0KGUpe2UuZXhwb3J0cz1bIkJvbGl2aWEiXX0sNTU3MjM1KGUpe2UuZXhwb3J0cz1bIkJvbmFpcmUsIFNpbnQgRXVzdGF0aXVzIGFuZCBTYWJhIl19LDkwOTA1NChlKXtlLmV4cG9ydHM9WyJCb25kIl19LDI0MzQ2NChlKXtlLmV4cG9ydHM9WyJCb25kcyJdfSw5NzA2OTEoZSl7ZS5leHBvcnRzPVsiQm9zbmlhIGFuZCBIZXJ6ZWdvdmluYSJdfSwzMzUyNTkoZSl7ZS5leHBvcnRzPVsiQmFoYW1hcyJdfSw4MjkzODcoZSl7ZS5leHBvcnRzPVsiQmFyYmFkb3MiXX0sNTIzNTUyKGUpe2UuZXhwb3J0cz1bIkJlbGFydXMiXX0sNzg3NzAxKGUpe2UuZXhwb3J0cz1bIkJlbGl6ZSJdfSw1ODg4NDgoZSl7ZS5leHBvcnRzPVsiQmVuaW4iXX0sMzE0NzM3KGUpe2UuZXhwb3J0cz1bIkJlcm11ZGEiXX0sMjg0NDQyKGUpe2UuZXhwb3J0cz1bIkJodXRhbiJdfSw2MzgxKGUpe2UuZXhwb3J0cz1bIkJsdWUiXX0sNTczODA3KGUpe2UuZXhwb3J0cz1bIkJsdWUgbGlzdCJdfSwzOTE5MDYoZSl7ZS5leHBvcnRzPVsiQnJ1bmVpIl19LDc0NDI0NihlKXtlLmV4cG9ydHM9WyJCcml0aXNoIEluZGlhbiBPY2VhbiBUZXJyaXRvcnkiXX0sNjUzMzQwKGUpe2UuZXhwb3J0cz1bIkJyaXRpc2ggVmlyZ2luIElzbGFuZHMiXX0sMTk4Mjk3KGUpe2UuZXhwb3J0cz1bIkJ1cmtpbmEgRmFzbyJdfSw3NTgyMihlKXtlLmV4cG9ydHM9WyJCdXJ1bmRpIl19LDc2NjYyMihlKXtlLmV4cG9ydHM9WyJHbyB0byBzeW1ib2wiXX0sMzY3NjkwKGUpe2UuZXhwb3J0cz1bIkdhYm9uIl19LDcwODc4NShlKXtlLmV4cG9ydHM9WyJHYW1iaWEiXX0sNzk1OTUxKGUpe2UuZXhwb3J0cz1bIkdlb3JnaWEiXX0sNDk4Njc5KGUpe2UuZXhwb3J0cz1bIkdoYW5hIl19LDc3MTAxNyhlKXtlLmV4cG9ydHM9WyJHaWJyYWx0YXIiXX0sNjgyNjY5KGUpe2UuZXhwb3J0cz1bIkdyZWVuIl19LDQ1OTQwMihlKXtlLmV4cG9ydHM9WyJHcmVlbiBsaXN0Il19LDMxODM5OShlKXtlLmV4cG9ydHM9WyJHcmVlbmxhbmQiXX0sNzkzMjg5KGUpe2UuZXhwb3J0cz1bIkdyZWVjZSJdfSw5MzIwODYoZSl7ZS5leHBvcnRzPVsiR3JlbmFkYSJdfSwyNDIxMTYoZSl7ZS5leHBvcnRzPVsiR3V5YW5hIl19LDE2NDg3NyhlKXtlLmV4cG9ydHM9WyJHdWFkZWxvdXBlIl19LDU0NDMyNShlKXtlLmV4cG9ydHM9WyJHdWFtIl19LDg3NzQ4NyhlKXtlLmV4cG9ydHM9WyJHdWF0ZW1hbGEiXX0sNDA4OTE2KGUpe2UuZXhwb3J0cz1bIkd1ZXJuc2V5Il19LDQzNjQ1NShlKXtlLmV4cG9ydHM9WyJHdWluZWEiXX0sMzA4MjI5KGUpe2UuZXhwb3J0cz1bIkd1aW5lYS1CaXNzYXUiXX0sOTU4OTUxKGUpe2UuZXhwb3J0cz1bIkRvaW5nIHRoaXMgd2lsbCB1bmZsYWcgYWxsIHN5bWJvbHMgZnJvbSBhbGwgeW91ciB3YXRjaGxpc3RzLiJdfSw0OTUzNjkoZSl7ZS5leHBvcnRzPVsiRG9pbmcgdGhpcyB3aWxsIHVuZmxhZyBzZWxlY3RlZCBzeW1ib2xzIGZyb20geW91ciB3YXRjaGxpc3QuIl19LDE5NDMyNihlKXtlLmV4cG9ydHM9WyJEb21pbmljYSJdfSw4MTg2MDQoZSl7ZS5leHBvcnRzPVsiRG9taW5pY2FuIFJlcHVibGljIl19LDM5Nzk4NyhlKXtlLmV4cG9ydHM9WyJEZXNjcmlwdGlvbiJdfSw1MDc3OTgoZSl7ZS5leHBvcnRzPVsiRGppYm91dGkiXX0sNDEzMzk3KGUpe2UuZXhwb3J0cz1bIkVjdWFkb3IiXX0sMTc2Mzc4KGUpe2UuZXhwb3J0cz1bIkVjb25vbXkiXX0sODgwODcyKGUpe2UuZXhwb3J0cz1bIkVsIFNhbHZhZG9yIl19LDc0NjUyNChlKXtlLmV4cG9ydHM9WyJFcXVhdG9yaWFsIEd1aW5lYSJdfSw3MzA4NzMoZSl7ZS5leHBvcnRzPVsiRXJpdHJlYSJdfSw4NzIzOChlKXtlLmV4cG9ydHM9WyJFcnJvciJdfSw4OTgzMDMoZSl7ZS5leHBvcnRzPVsiRXN3YXRpbmkiXX0sMzMxOTEoZSl7ZS5leHBvcnRzPVsiRXRoaW9waWEiXX0sOTUyMzY3KGUpe2UuZXhwb3J0cz1bIkV1cm9wZSJdfSw1MzUxNDYoZSl7ZS5leHBvcnRzPVsiRXVyb3BlYW4gVW5pb24iXX0sMjU1MDkzKGUpe2UuZXhwb3J0cz1bIkZvcmV4Il19LDQ5NzU2OShlKXtlLmV4cG9ydHM9WyJGb3JleCAmIENGRCJdfSw5OTM0NzUoZSl7CmUuZXhwb3J0cz1bIkZhbGtsYW5kIElzbGFuZHMiXX0sNjA3NzIzKGUpe2UuZXhwb3J0cz1bIkZhbGtsYW5kIElzbGFuZHMgKE1hbHZpbmFzKSJdfSw0NTI0ODcoZSl7ZS5leHBvcnRzPVsiRmFyb2UgSXNsYW5kcyJdfSw5NjY0NzUoZSl7ZS5leHBvcnRzPVsiRmVhdHVyZWQiXX0sMTUyNDA5KGUpe2UuZXhwb3J0cz1bIkZpamkiXX0sMzA4MzkoZSl7ZS5leHBvcnRzPVsiRmxhZyB7c3ltYm9sfSJdfSw5NzYwNzkoZSl7ZS5leHBvcnRzPVsiRnJlbmNoIEd1aWFuYSJdfSw4NjM4MjUoZSl7ZS5leHBvcnRzPVsiRnJlbmNoIFBvbHluZXNpYSJdfSwzMjg2MDcoZSl7ZS5leHBvcnRzPVsiRnJlbmNoIFNvdXRoZXJuIFRlcnJpdG9yaWVzIl19LDk0MzkwMyhlKXtlLmV4cG9ydHM9WyJGdXR1cmVzIl19LDQ4MDQ2MShlKXtlLmV4cG9ydHM9WyJGdW5kcyJdfSw2NzY4NihlKXtlLmV4cG9ydHM9WyJLb3Nvdm8iXX0sMjc3NTYwKGUpe2UuZXhwb3J0cz1bIkthemFraHN0YW4iXX0sNDQ2MjkzKGUpe2UuZXhwb3J0cz1bIktpcmliYXRpIl19LDQ1ODY2MChlKXtlLmV4cG9ydHM9WyJLeXJneXpzdGFuIl19LDEyNzQ5KGUpe2UuZXhwb3J0cz1bIkhvbHkgU2VlIl19LDIwMjgxNihlKXtlLmV4cG9ydHM9WyJIb25kdXJhcyJdfSw4OTQ3MDkoZSl7ZS5leHBvcnRzPVsiSGFpdGkiXX0sMjM2MTIzKGUpe2UuZXhwb3J0cz1bIkhlYXJkIElzbGFuZCBhbmQgTWNEb25hbGQgSXNsYW5kcyJdfSw1NjI2NjcoZSl7ZS5leHBvcnRzPVsiSW5kaWNlcyJdfSwzNzE3NDYoZSl7ZS5leHBvcnRzPVsiSXJhcSJdfSwyMDc4MjUoZSl7ZS5leHBvcnRzPVsiSXNsZSBvZiBNYW4iXX0sODQxNzk5KGUpe2UuZXhwb3J0cz1bIklzc3VlIFdpdGggRmxhZ2dpbmciXX0sNTgzMDA5KGUpe2UuZXhwb3J0cz1bIkpvcmRhbiJdfSwxNjM1KGUpe2UuZXhwb3J0cz1bIkphbWFpY2EiXX0sMTE4NTk4KGUpe2UuZXhwb3J0cz1bIkplcnNleSJdfSw0MDIzMjQoZSl7ZS5leHBvcnRzPVsiT0siXX0sMjg1MjkzKGUpe2UuZXhwb3J0cz1bIk9tYW4iXX0sMjg1MTMxKGUpe2UuZXhwb3J0cz1bIk9vcHMhIFRoZXJlJ3Mgbm90aGluZyBoZXJlIGZvciB0aGlzIHNlbGVjdGVkIG9wdGlvbiBzZXJpZXMiXX0sMTQ1MzQ4KGUpe2UuZXhwb3J0cz1bIk9rLCB0aGFua3MiXX0sNTg3NDY0KGUpe2UuZXhwb3J0cz1bIk9wdGlvbnMiXX0sOTcxMjgzKGUpe2UuZXhwb3J0cz1bIk9yYW5nZSJdfSw1MDYzMzAoZSl7ZS5leHBvcnRzPVsiT3JhbmdlIGxpc3QiXX0sOTcwOTA5KGUpe2UuZXhwb3J0cz1bIk90aGVycyJdfSw1OTExODAoZSl7ZS5leHBvcnRzPVsiTGFvcyJdfSw5NDU2MTMoZSl7ZS5leHBvcnRzPVsiTGViYW5vbiJdfSw2NTMzOTUoZSl7ZS5leHBvcnRzPVsiTGVzb3RobyJdfSw2NjIxKGUpe2UuZXhwb3J0cz1bIkxpYmVyaWEiXX0sNTU1MzUyKGUpe2UuZXhwb3J0cz1bIkxpYnlhIl19LDM4NjY2NyhlKXtlLmV4cG9ydHM9WyJMaWVjaHRlbnN0ZWluIl19LDEwMDAyNihlKXtlLmV4cG9ydHM9WyJNb3phbWJpcXVlIl19LDMyMTMzNihlKXtlLmV4cG9ydHM9WyJNb2xkb3ZhIl19LDIwODkwNChlKXtlLmV4cG9ydHM9WyJNb25hY28iXX0sOTEzNzA5KGUpe2UuZXhwb3J0cz1bIk1vbmdvbGlhIl19LDczOTM2NShlKXtlLmV4cG9ydHM9WyJNb250ZW5lZ3JvIl19LDMzMzI2MihlKXtlLmV4cG9ydHM9WyJNb250c2VycmF0Il19LDM5NDk0NyhlKXtlLmV4cG9ydHM9WyJNb3JlIl19LDY2Nzk5NihlKXtlLmV4cG9ydHM9WyJNYXVyaXRhbmlhIl19LDE1MDA1NChlKXtlLmV4cG9ydHM9WyJNYXVyaXRpdXMiXX0sNDgzMTQ5KGUpe2UuZXhwb3J0cz1bIk1heW90dGUiXX0sMzA3MDYyKGUpe2UuZXhwb3J0cz1bIk1hY2FvIl19LDUzMjI2OShlKXtlLmV4cG9ydHM9WyJNYWNhdSwgQ2hpbmEiXX0sNDU5MTA4KGUpe2UuZXhwb3J0cz1bIk1hY2Vkb25pYSJdfSw2NjAxODgoZSl7ZS5leHBvcnRzPVsiTWFkYWdhc2NhciJdfSwyNDU5NDgoZSl7ZS5leHBvcnRzPVsiTWFsYXdpIl19LDMzMTYxNShlKXtlLmV4cG9ydHM9WyJNYWxkaXZlcyJdfSw2MjM0NjUoZSl7ZS5leHBvcnRzPVsiTWFsaSJdfSw0Nzc4NDMoZSl7ZS5leHBvcnRzPVsiTWFyc2hhbGwgSXNsYW5kcyJdfSwxMzUxNTIoZSl7ZS5leHBvcnRzPVsiTWFydGluaXF1ZSJdfSw1OTgyNDcoZSl7ZS5leHBvcnRzPVsiTWV4aWNvIGFuZCBTb3V0aCBBbWVyaWNhIl19LDI5MTA5OChlKXtlLmV4cG9ydHM9WyJNaWNyb25lc2lhIChGZWRlcmF0ZWQgU3RhdGVzIG9mKSJdfSw2ODU3NTEoZSl7ZS5leHBvcnRzPVsiTWlkZGxlIEVhc3QiXX0sNjAzMDY1KGUpe2UuZXhwb3J0cz1bIk1pZGRsZSBFYXN0IC8gQWZyaWNhIl19LDIzOTQzKGUpe2UuZXhwb3J0cz1bIk15YW5tYXIiXX0sNzQ0ODcwKGUpe2UuZXhwb3J0cz1bIk5vIGRhdGEgZm9yIHRoaXMgc3ltYm9sIl19LDQ3MjI5OShlKXtlLmV4cG9ydHM9WyJObyBleGNoYW5nZXMgbWF0Y2ggeW91ciBjcml0ZXJpYSJdfSw0MTc3NyhlKXtlLmV4cG9ydHM9WyJObyBzeW1ib2xzIG1hdGNoIHlvdXIgY3JpdGVyaWEiXX0sNjg5NzE2KGUpe2UuZXhwb3J0cz1bIk5vcnRoIEFtZXJpY2EiXX0sNzI5NzgyKGUpe2UuZXhwb3J0cz1bIk5vcnRoIE1hY2Vkb25pYSJdfSw2MTI1NTcoZSl7ZS5leHBvcnRzPVsiTm9ydGhlcm4gTWFyaWFuYSBJc2xhbmRzIl19LDQ3MzQzNyhlKXtlLmV4cG9ydHM9WyJOYXVydSJdfSw1NzA2MTgoZSl7ZS5leHBvcnRzPVsiTmFtaWJpYSJdfSwyNDk1ODgoZSl7ZS5leHBvcnRzPVsiTmV3IENhbGVkb25pYSJdfSw0NzEyODgoZSl7ZS5leHBvcnRzPVsiTmVwYWwiXX0sOTA3NDcwKGUpe2UuZXhwb3J0cz1bIk5pdWUiXX0sNjIzNDQwKGUpe2UuZXhwb3J0cz1bIk5pY2FyYWd1YSJdfSw1OTIxODkoZSl7ZS5leHBvcnRzPVsiTmlnZXIiXX0sNzk1MDIxKGUpe2UuZXhwb3J0cz1bIlNJTlQgTUFBUlRFTiAoRFVUQ0ggUEFSVCkiXX0sNDg2NzE0KGUpe2UuZXhwb3J0cz1bIlNvdXJjZXMiXX0sNDQ3ODU0KGUpe2UuZXhwb3J0cz1bIlNvdXRoIEdlb3JnaWEgYW5kIHRoZSBTb3V0aCBTYW5kd2ljaCBJc2xhbmRzIl19LDQ1NzE4NihlKXtlLmV4cG9ydHM9WyJTb3V0aCBTdWRhbiJdfSwxODE3OChlKXsKZS5leHBvcnRzPVsiU29sb21vbiBJc2xhbmRzIl19LDYwMDU3KGUpe2UuZXhwb3J0cz1bIlNvbWFsaWEiXX0sMTk5NDgzKGUpe2UuZXhwb3J0cz1bIlNhaW50IEJhcnRow6lsZW15Il19LDU3Njk3NShlKXtlLmV4cG9ydHM9WyJTYWludCBLaXR0cyBhbmQgTmV2aXMiXX0sOTU1ODM1KGUpe2UuZXhwb3J0cz1bIlNhaW50IEhlbGVuYSwgQXNjZW5zaW9uIGFuZCBUcmlzdGFuIGRhIEN1bmhhIl19LDI1ODMxMShlKXtlLmV4cG9ydHM9WyJTYWludCBMdWNpYSJdfSw0MjUwNjQoZSl7ZS5leHBvcnRzPVsiU2FpbnQgTWFydGluIChGcmVuY2ggcGFydCkiXX0sNzk3MDM1KGUpe2UuZXhwb3J0cz1bIlNhaW50IFBpZXJyZSBhbmQgTWlxdWVsb24iXX0sNjIyNjEzKGUpe2UuZXhwb3J0cz1bIlNhaW50IFZpbmNlbnQgYW5kIHRoZSBHcmVuYWRpbmVzIl19LDU5ODk2MyhlKXtlLmV4cG9ydHM9WyJTYW1vYSJdfSw5OTk3NjIoZSl7ZS5leHBvcnRzPVsiU2FuIE1hcmlubyJdfSwyNzkzODIoZSl7ZS5leHBvcnRzPVsiU2FvIFRvbWUgYW5kIFByaW5jaXBlIl19LDUwNjkxNShlKXtlLmV4cG9ydHM9WyJTZXQge2NvbG9yfSBmbGFnIl19LDQyMDgyMShlKXtlLmV4cG9ydHM9WyJTZXljaGVsbGVzIl19LDM1MjEyNyhlKXtlLmV4cG9ydHM9WyJTZWFyY2giXX0sNDc5MjQ2KGUpe2UuZXhwb3J0cz1bIlNlbGVjdCBzb3VyY2UiXX0sMjI0Mjg5KGUpe2UuZXhwb3J0cz1bIlNlbmVnYWwiXX0sNTg5MDcyKGUpe2UuZXhwb3J0cz1bIlNob3cgdGhlIG1hcmtldHMgeW91IGNhbiBwbGFjZSBhbiBvcmRlciB3aXRoIHticm9rZXJOYW1lfSJdfSw2MjE0MzAoZSl7ZS5leHBvcnRzPVsiU2hvdyBtZSJdfSwxNjQ5OTIoZSl7ZS5leHBvcnRzPVsiU2llcnJhIExlb25lIl19LDczNjQwKGUpe2UuZXhwb3J0cz1bIlNpbnQgTWFhcnRlbiAoRHV0Y2ggcGFydCkiXX0sNTIyMDE0KGUpe2UuZXhwb3J0cz1bIlN0b2NrcyJdfSw5NzQ0MDQoZSl7ZS5leHBvcnRzPVsiU3VkYW4iXX0sODE4ODM3KGUpe2UuZXhwb3J0cz1bIlN1cmluYW1lIl19LDk3MzkxNShlKXtlLmV4cG9ydHM9WyJTdmFsYmFyZCBhbmQgSmFuIE1heWVuIl19LDYxMzE2MyhlKXtlLmV4cG9ydHM9WyJTeW1ib2wiXX0sMTAwMzczKGUpe2UuZXhwb3J0cz1bIlN5bWJvbCAmIGRlc2NyaXB0aW9uIl19LDQwNjAxMyhlKXtlLmV4cG9ydHM9WyJTeW1ib2wgbm90IGZvdW5kIG9uIHtleGNoYW5nZU5hbWV9Il19LDk2MTYxNChlKXtlLmV4cG9ydHM9WyJTeW1ib2wgZ3JvdXAiXX0sMjEzMjk5KGUpe2UuZXhwb3J0cz1bIlN5bWJvbCwgSVNJTiwgb3IgQ1VTSVAiXX0sMjcxODQwKGUpe2UuZXhwb3J0cz1bIlN5bWJvbHMgbm90IGZvdW5kIGluIHtzeW1ib2xUeXBlfSJdfSw0ODg1OTkoZSl7ZS5leHBvcnRzPVsiU3ltYm9scyBub3QgZm91bmQgaW4ge3N5bWJvbFR5cGV9IG9uIHtleGNoYW5nZU5hbWV9Il19LDQ2NTYwNihlKXtlLmV4cG9ydHM9WyJTeW1ib2xzIG5vdCBmb3VuZCBpbiB7c3ltYm9sVHlwZX0gd2l0aCBzdWNoIGNyaXRlcmlhIl19LDI3NDQ4NShlKXtlLmV4cG9ydHM9WyJTeXJpYSJdfSw5OTA1NzUoZSl7ZS5leHBvcnRzPVsiUGFjaWZpYyJdfSw3OTg0NzYoZSl7ZS5leHBvcnRzPVsiUGFsYXUiXX0sNjk4MDgzKGUpe2UuZXhwb3J0cz1bIlBhbGVzdGluZSwgU3RhdGUgb2YiXX0sMTAwNzI5KGUpe2UuZXhwb3J0cz1bIlBhbmFtYSJdfSw3MjU2OTcoZSl7ZS5leHBvcnRzPVsiUGFwdWEgTmV3IEd1aW5lYSJdfSw0MjAxMzUoZSl7ZS5leHBvcnRzPVsiUGFyYWd1YXkiXX0sMzg0MzgyKGUpe2UuZXhwb3J0cz1bIlBpdGNhaXJuIl19LDY3Njc2OChlKXtlLmV4cG9ydHM9WyJQaW5rIl19LDk0MTk4NihlKXtlLmV4cG9ydHM9WyJQaW5rIGxpc3QiXX0sNTUyMDk1KGUpe2UuZXhwb3J0cz1bIlByaW1hcnkgZXhjaGFuZ2UiXX0sODQzMzI3KGUpe2UuZXhwb3J0cz1bIlB1ZXJ0byBSaWNvIl19LDY3MDkyMyhlKXtlLmV4cG9ydHM9WyJQdXJwbGUiXX0sOTA3ODc0KGUpe2UuZXhwb3J0cz1bIlB1cnBsZSBsaXN0Il19LDY1NTA0MihlKXtlLmV4cG9ydHM9WyJSZWQiXX0sMTY1NTAxKGUpe2UuZXhwb3J0cz1bIlJlZCBsaXN0Il19LDk2ODA0NyhlKXtlLmV4cG9ydHM9WyJSZW1vdmUgZnJvbSBXYXRjaGxpc3QiXX0sNzU0MzgyKGUpe2UuZXhwb3J0cz1bIlJlbW92ZSBzZWxlY3RlZCBlbW9qaSJdfSw5MjQzMjgoZSl7ZS5leHBvcnRzPVsiUmVzZXQgYWxsIGZpbHRlcnMiXX0sOTcyMTczKGUpe2UuZXhwb3J0cz1bIlJlc2V0IHNvbWUgY3JpdGVyaWEgdG8gc2hvdyBzeW1ib2xzIGluIHtzeW1ib2xUeXBlfSJdfSw5MzQ4ODMoZSl7ZS5leHBvcnRzPVsiUnVzc2lhIl19LDc1ODI5NyhlKXtlLmV4cG9ydHM9WyJSd2FuZGEiXX0sODcyNjgwKGUpe2UuZXhwb3J0cz1bIlLDqXVuaW9uIl19LDUxMzk1MyhlKXtlLmV4cG9ydHM9WyJXb3JsZHdpZGUiXX0sNTY2OTQ4KGUpe2UuZXhwb3J0cz1bIldhdGNobGlzdCBjYW5ub3QgdGFrZSBhbnltb3JlLCBDYXAnbiJdfSwzODIwMjUoZSl7ZS5leHBvcnRzPVsiV2F0Y2hsaXN0IGVycm9yIl19LDU5MDUwNShlKXtlLmV4cG9ydHM9WyJXYWxsaXMgYW5kIEZ1dHVuYSJdfSw4ODEyNzcoZSl7ZS5leHBvcnRzPVsiV2VzdGVybiBTYWhhcmEiXX0sMzI4ODI4KGUpe2UuZXhwb3J0cz1bIldob2EgdGhlcmUsIHlvdSBjYW4ndCBnbyBhZGRpbmcgb3ZlciB7bnVtYmVyfSBzeW1ib2xzIGFuZCBzZXBhcmF0b3JzIHRvIGEgd2F0Y2hsaXN0IOKAkyB3ZSdyZSBlbmdpbmVlcnMgbm90IG1pcmFjbGUgd29ya2Vycy4iXX0sNjE0NDUwKGUpe2UuZXhwb3J0cz1bIlRvZGF5Il19LDgzMjQ0OChlKXtlLmV4cG9ydHM9WyJUb2dvIl19LDk0MDQ4MyhlKXtlLmV4cG9ydHM9WyJUb21vcnJvdyJdfSwyNTA1NTUoZSl7ZS5leHBvcnRzPVsiVG9uZ2EiXX0sOTY4NDU4KGUpe2UuZXhwb3J0cz1bIlRhamlraXN0YW4iXX0sNDk4MTgzKGUpe2UuZXhwb3J0cz1bIlRhbnphbmlhIl19LDgwMzA1MShlKXtlLmV4cG9ydHM9WyJUaW1vci1MZXN0ZSJdfSwzMzU2NzMoZSl7ZS5leHBvcnRzPVsiVHJ5IGFnYWluIGJ5IHNlbGVjdGluZyBhbm90aGVyIGV4cGlyYXRpb24gZGF0ZS4iXX0sOTg0MjM2KGUpewplLmV4cG9ydHM9WyJUcnkgc2VsZWN0aW5nIGFub3RoZXIgc3ltYm9sLiJdfSwzMTQ4NyhlKXtlLmV4cG9ydHM9WyJUcmluaWRhZCBhbmQgVG9iYWdvIl19LDQzMDEzNChlKXtlLmV4cG9ydHM9WyJUdXZhbHUiXX0sNzM1NjgzKGUpe2UuZXhwb3J0cz1bIlR1cmttZW5pc3RhbiJdfSw5NzA2MjQoZSl7ZS5leHBvcnRzPVsiVHVya3MgYW5kIENhaWNvcyBJc2xhbmRzIl19LDE5MjkxMChlKXtlLmV4cG9ydHM9WyJUeXBlIHRvIHNlYXJjaCBmb3Igc3ltYm9sIl19LDQzMTM3NyhlKXtlLmV4cG9ydHM9WyJVLlMuIFZpcmdpbiBJc2xhbmRzIl19LDg2MDcyMihlKXtlLmV4cG9ydHM9WyJVbmFibGUgdG8gZmxhZyBhbGwgc2VsZWN0ZWQgc3ltYm9scyBzaW5jZSBpdCBleGNlZWRzIHRoZSBtYXhpbXVtIGFtb3VudCAoe2xpbWl0fSkuIl19LDMzMjc1MyhlKXtlLmV4cG9ydHM9WyJVbmZsYWcgQWxsIFN5bWJvbHMgaW4gdGhlIFN5c3RlbSJdfSw2OTIxKGUpe2UuZXhwb3J0cz1bIlVuZmxhZyB7c3ltYm9sfSJdfSw5Njc5NDEoZSl7ZS5leHBvcnRzPVsiVW5pdGVkIFN0YXRlcyJdfSw3MzY3OTkoZSl7ZS5leHBvcnRzPVsiVW5pdGVkIFN0YXRlcyBNaW5vciBPdXRseWluZyBJc2xhbmRzIl19LDU4ODY5MyhlKXtlLmV4cG9ydHM9WyJVZ2FuZGEiXX0sMzE3NDc1KGUpe2UuZXhwb3J0cz1bIlVrcmFpbmUiXX0sOTI4NTUzKGUpe2UuZXhwb3J0cz1bIlVydWd1YXkiXX0sNTQyNjA5KGUpe2UuZXhwb3J0cz1bIlVzZSB0aGUgYXJyb3dzIG9yIG1vdXNlIHRvIG5hdmlnYXRlIHRocm91Z2ggdGhlIGNoYWluLiBQcmVzcyBFbnRlciBvciBjbGljayB0byBzZWxlY3QgYW5kIG9wZW4gdGhlIGNoYXJ0LiJdfSw3ODM5NzAoZSl7ZS5leHBvcnRzPVsiVXpiZWtpc3RhbiJdfSw0MTYyNTcoZSl7ZS5leHBvcnRzPVsiVmFudWF0dSJdfSw0MjMyMDYoZSl7ZS5leHBvcnRzPVsiVmlyZ2luIElzbGFuZHMgKEJyaXRpc2gpIl19LDMwMTIyOShlKXtlLmV4cG9ydHM9WyJWaXJnaW4gSXNsYW5kcyAoVS5TLikiXX0sNDA5Mzg0KGUpe2UuZXhwb3J0cz1bIlllbWVuIl19LDk2NTU3MyhlKXtlLmV4cG9ydHM9WyJZZXN0ZXJkYXkiXX0sODY3MzkzKGUpe2UuZXhwb3J0cz1bIlphbWJpYSJdfSw5NTkxNTUoZSl7ZS5leHBvcnRzPVsiWmltYmFid2UiXX0sNzYyOTIyKGUpe2UuZXhwb3J0cz1bImNvbW1vZGl0eSJdfSwyMDgwMTcoZSl7ZS5leHBvcnRzPVsiY2ZkIl19LDk5MTA1OShlKXtlLmV4cG9ydHM9WyJjcnlwdG8iXX0sOTc0MjY0KGUpe2UuZXhwb3J0cz1bImRyIl19LDk5Njg4MihlKXtlLmV4cG9ydHM9WyJlY29ub215Il19LDg3MzU5NyhlKXtlLmV4cG9ydHM9WyJmb3JleCJdfSw4MDY3MjcoZSl7ZS5leHBvcnRzPVsiZnV0dXJlcyJdfSw2NTg5MjYoZSl7ZS5leHBvcnRzPVsiaW5kZXgiXX0sMTUxNjEoZSl7ZS5leHBvcnRzPVsiaW5kaWNlcyJdfSwzNjQ2MjUoZSl7ZS5leHBvcnRzPVsic3RvY2siXX0sOTAxNTI3KGUpe2UuZXhwb3J0cz1bIntzeW1ib2xOYW1lfSBPcHRpb25zIl19LDUzNDEzMihlKXtlLmV4cG9ydHM9WyJ7c3ltYm9sfSBub3QgZm91bmQgaW4ge3N5bWJvbFR5cGV9Il19LDIwMzA4NShlKXtlLmV4cG9ydHM9WyJ7c3ltYm9sfSBub3QgZm91bmQgaW4ge3N5bWJvbFR5cGV9IHdpdGggc3VjaCBjcml0ZXJpYSJdfSw5MDY1NTQoZSl7ZS5leHBvcnRzPVsiw4VsYW5kIElzbGFuZHMiXX0sNTUwMjYoZSl7ZS5leHBvcnRzPVsiJWQgZGF5IiwiJWQgZGF5cyJdfSwxNjk4MyhlKXtlLmV4cG9ydHM9WyJEb2luZyB0aGlzIHdpbGwgcmVtb3ZlIHtjb3VudH0gc2VsZWN0ZWQgc3ltYm9sIGZyb20geW91ciB3YXRjaGxpc3QuIiwiRG9pbmcgdGhpcyB3aWxsIHJlbW92ZSB7Y291bnR9IHNlbGVjdGVkIHN5bWJvbHMgZnJvbSB5b3VyIHdhdGNobGlzdC4iXX0sNDM4Nzc1KGUpe2UuZXhwb3J0cz1bIlRoZXJlIGlzIGFsc28ge2NvdW50fSBzeW1ib2wgaW4gb3RoZXIgbWFya2V0cyIsIlRoZXJlIGFyZSBhbHNvIHtjb3VudH0gc3ltYm9scyBpbiBvdGhlciBtYXJrZXRzIl19LDEwMTIyOChlKXtlLmV4cG9ydHM9WyJ7bWF0Y2hpbmdDb3VudH0gbWF0Y2hpbmcgc3ltYm9sIGZvdW5kIHdpdGggb3RoZXIgZmlsdGVycyIsInttYXRjaGluZ0NvdW50fSBtYXRjaGluZyBzeW1ib2xzIGZvdW5kIHdpdGggb3RoZXIgZmlsdGVycyJdfX1dKTs="}},"time_used":3,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":3,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/32176.7c57c98933b8cfd3f8e7.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.525Z","timestamp":1785148034525,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/32176.7c57c98933b8cfd3f8e7.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\ncontent-type: text/css; charset=utf-8\r\ncontent-length: 47\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\netag: \"6a58ab11-2f\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Thu, 16 Jul 2026 09:57:37 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/16/2026 11:03:22\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 3d4baab77e0afa8697c68f9b61e8e343\r\ncdn-cache: HIT\r\naccept-ranges: bytes\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":47,"size_decoded":831,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with no line terminators","md5":"285050ec431662602ebff1a7403d840d","sha1":"e46274ce870b7b93f851b2764c3f0d6dca88cbfe","sha256":"e7051ebd49847be7a2594441481b75d8893d862ca965a4b10ef38bd60fcaf512","sha512":"2d5d3c21c502edac88ccc711982ef21cd411a476d72776ad784c143b582646a57b9eb034d9f364c322df558128497a522f08998f24c3835b07483eb7cd29b19d","ssdeep":"","tlshash":"b8900284aa2099524912905e13c8d05debc45dc016810fb2a514415454d15d31082110","first_seen":"2026-07-19T21:33:33.874532Z","last_seen":"2026-07-27T12:48:39.806589Z","times_seen":56,"resource_available":false,"data":"LmhpZ2hsaWdodGVkLVVzVHFua0wwe2NvbG9yOnZhcigtLWNvbG9yLWJyYW5kKX0="}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/83041.9c545f9868204c7700f2.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.528Z","timestamp":1785148034528,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/83041.9c545f9868204c7700f2.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\ncontent-type: text/css; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a58ab11-8a\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Thu, 16 Jul 2026 09:57:37 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/16/2026 11:03:22\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 74484b5cb17279d40bc6be52f6fd3b8d\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":138,"size_decoded":890,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with no line terminators","md5":"c3173b693b4fb2e1f5f6b77cfd60af3b","sha1":"a175181620523c8f8d34c629bd56a1366f38b718","sha256":"fe910ab647b1d1c45eaf208d85b6224b9ab6a4815880a67ab39d801af5e3d100","sha512":"55757fa16faa58c1bd2e6bf0cae13823977f47efc188dded627421ba751306f658f1aa2a880ce85cc5ab746ce99c7a3f62df4d1f2024e25614b2732afe7c9b8a","ssdeep":"","tlshash":"bdc08c224a033e0c8720daa0af301b5880c090528142408e80052a2b40c918a18b1788","first_seen":"2026-07-19T14:58:49.136091Z","last_seen":"2026-07-27T12:51:16.053344Z","times_seen":92,"resource_available":false,"data":"LndyYXAtalBJYU84SHV7YWxpZ24taXRlbXM6Y2VudGVyO2JveC1zaXppbmc6Ym9yZGVyLWJveDtkaXNwbGF5OmZsZXg7aGVpZ2h0OjI4cHg7anVzdGlmeS1jb250ZW50OmNlbnRlcjtwYWRkaW5nLWlubGluZS1lbmQ6MnB4O3dpZHRoOjI4cHh9"}},"time_used":3,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":3,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"digital-assettrade.com/","fqdn":"digital-assettrade.com","domain":"digital-assettrade.com","tld":"com"},"ip":{"addr":"5.182.208.207","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"is_navigation_request":true,"resource_type":"document","requested_by":"","date":"2026-07-27T10:27:11.182Z","timestamp":1785148031182,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"digital-assettrade.com","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Sat, 20 Jun 2026 16:59:16 GMT","end":"Fri, 18 Sep 2026 16:59:15 GMT"},"fingerprint":{"sha1":"01:E1:B4:F9:5D:C1:12:F0:96:4A:57:43:D3:BB:2D:2B:F2:BE:B0:FC","sha256":"A8:D5:A6:4E:32:4D:7C:DD:DA:A5:73:54:3A:4A:4B:A5:0E:50:6F:09:0E:F5:B9:74:AC:9A:03:38:4D:A3:42:85"}}},"request":{"raw":"GET / HTTP/1.1\r\nHost: digital-assettrade.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nUpgrade-Insecure-Requests: 1\r\nSec-Fetch-Dest: document\r\nSec-Fetch-Mode: navigate\r\nSec-Fetch-Site: none\r\nPriority: u=0, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ncontent-type: text/html; charset=UTF-8\r\ncache-control: no-cache, private\r\nset-cookie: XSRF-TOKEN=eyJpdiI6IlBJZ3lRZTB2d214bVhnZk5JbmtvaWc9PSIsInZhbHVlIjoiOWllUUw0S1NpMERaV0d2c2FYTDF0YndkRm5iSHg5RGJOMTVmNEltV2lONmQ5RlhjdjhvR0syQVZyZGdYanU1OEMwUkhQVVdndjRJelQzdWxmQldFejlZc2c4K1RKbktYZ2NySWpkQkdLTEV3czBrQyt5RE9TTHRSQk5BYkRvZEMiLCJtYWMiOiJkZDhhNjRlM2IzMGU1NTc4NDFkOGUyNGM0M2IyYTFkYjk3MDUxYTIwOGM5OTUwNDM2MmNhNjYzNjUwMTliN2EyIiwidGFnIjoiIn0%3D; expires=Mon, 27 Jul 2026 12:27:11 GMT; Max-Age=7200; path=/; samesite=lax; secure\ndigitalassettrade_session=eyJpdiI6InppdHd5OXFTcGhzM0xrUzhKN0NmQ2c9PSIsInZhbHVlIjoiNytzaTJ2ekZZSE9MTU9oYTdHZWwxeWl5YUl6ZDJSZ2UxSDhBZ0FCUmoxbFlrYU5kNXpTZnRqMTNTNERMaEpGM0srWk1KZ2YrcFNUalloQVkrTGEvSXBCVFU2blExUlgyTDFhckFkdlg0bHNjSVYrQWltRENjeDJ5QWNnQUk3RGciLCJtYWMiOiJhZDEzNWUwOGYyMzcwOGNkYjRlMGY4NmJhMDBlY2Y5OTdjYmUyMjRkNWY1N2NmODMwNWE1MDUxNjg1ZDMxOWE2IiwidGFnIjoiIn0%3D; expires=Mon, 27 Jul 2026 12:27:11 GMT; Max-Age=7200; path=/; httponly; samesite=lax; secure\r\ncontent-length: 17003\r\ncontent-encoding: br\r\nvary: Accept-Encoding\r\ndate: Mon, 27 Jul 2026 10:27:11 GMT\r\nserver: LiteSpeed\r\nalt-svc: h3=\":443\"; ma=2592000, h3-29=\":443\"; ma=2592000, h3-Q050=\":443\"; ma=2592000, h3-Q046=\":443\"; ma=2592000, h3-Q043=\":443\"; ma=2592000, quic=\":443\"; ma=2592000; v=\"43,46\"\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"LiteSpeed","description":"LiteSpeed is a high-scalability web server.","website":"https://litespeedtech.com","common_platform_enumeration":"cpe:2.3:a:litespeedtech:litespeed_web_server:*:*:*:*:*:*:*:*","icon":"LiteSpeed.svg","categories":["Web servers"]},{"name":"Tailwind CSS","description":"Tailwind is a utility-first CSS framework.","website":"https://tailwindcss.com/","common_platform_enumeration":"","icon":"tailwindcss.svg","categories":["UI frameworks"]},{"name":"Unpkg","description":"Unpkg is a content delivery network for everything on npm.","website":"https://unpkg.com","common_platform_enumeration":"","icon":"Unpkg.png","categories":["CDN"]}],"data":{"size":107154,"size_decoded":18326,"mime_type":"text/html; charset=UTF-8","magic":"HTML document, Unicode text, UTF-8 text, with very long lines (732), with CRLF, LF line terminators","md5":"80073f365c33e53db432118ac1e8acfa","sha1":"073a353a9b1aa02412f32f13dc4af3fa04e3c7ec","sha256":"104fb6bbe77a3a9d9c8136d6c017f1cf2e062ae7ad80e54c20c7a16539a079c3","sha512":"a31efafb5a74b07cdad70e877e012c1505068f79f1076071e1cd395968a41935b6f3ddecfd1b6c1c64d64a1dda12dd396a220decc2f01988ef6043b93a77c801","ssdeep":"1536:c4eyPdpWoi3YJk1LFksM0f/L4HvuZab+H8bbbbrVbbbbLIbbbbxjt+:pbbbbpbbbbcbbbbr+","tlshash":"b4a34374b2c2157690b3c2e2ab626b29feb9c20bd207c544b2fc57872ff7c159853658","first_seen":"2026-07-27T10:28:06.110949Z","last_seen":"2026-07-27T10:28:06.110949Z","times_seen":1,"resource_available":false,"data":"PCFET0NUWVBFIGh0bWw+DQo8aHRtbCBsYW5nPSJlbiIgaXRlbXNjb3BlIGl0ZW10eXBlPSJodHRwOi8vc2NoZW1hLm9yZy9XZWJQYWdlIj4NCjxoZWFkPg0KICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4NCiAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEuMCI+DQogICAgPG1ldGEgaHR0cC1lcXVpdj0iWC1VQS1Db21wYXRpYmxlIiBjb250ZW50PSJJRT1lZGdlIj4NCiAgICA8dGl0bGU+RGlnaXRhbCBBc3NldCBUcmFkZSAtIEhvbWU8L3RpdGxlPg0KICAgIDxtZXRhIG5hbWU9InRpdGxlIiBDb250ZW50PSJEaWdpdGFsIEFzc2V0IFRyYWRlIC0gSG9tZSI+CgogICAgPG1ldGEgbmFtZT0iZGVzY3JpcHRpb24iIGNvbnRlbnQ9IldlbGNvbWUgdG8gRGlnaXRhbCBBc3NldCBUcmFkZSAtIFlvdXIgUGF0aCB0byBTbWFydCBDcnlwdG8gSW52ZXN0bWVudHMiPgogICAgPG1ldGEgbmFtZT0ia2V5d29yZHMiIGNvbnRlbnQ9ImJpdGNvaW4saW52ZXN0bWVudCxoaWdodCB5aWVsZCBpbnZlc3RtZW50IHByb2dyYW0saHlpcCBwcm9ncmFtIj4KICAgIDxsaW5rIHJlbD0ic2hvcnRjdXQgaWNvbiIgaHJlZj0iaHR0cHM6Ly9kaWdpdGFsLWFzc2V0dHJhZGUuY29tL2Fzc2V0cy9pbWFnZXMvbG9nb0ljb24vZmF2aWNvbi5wbmciIHR5cGU9ImltYWdlL3gtaWNvbiI+CgogICAgCiAgICA8bGluayByZWw9ImFwcGxlLXRvdWNoLWljb24iIGhyZWY9Imh0dHBzOi8vZGlnaXRhbC1hc3NldHRyYWRlLmNvbS9hc3NldHMvaW1hZ2VzL2xvZ29JY29uL2xvZ28ucG5nIj4KICAgIDxtZXRhIG5hbWU9ImFwcGxlLW1vYmlsZS13ZWItYXBwLWNhcGFibGUiIGNvbnRlbnQ9InllcyI+CiAgICA8bWV0YSBuYW1lPSJhcHBsZS1tb2JpbGUtd2ViLWFwcC1zdGF0dXMtYmFyLXN0eWxlIiBjb250ZW50PSJibGFjayI+CiAgICA8bWV0YSBuYW1lPSJhcHBsZS1tb2JpbGUtd2ViLWFwcC10aXRsZSIgY29udGVudD0iRGlnaXRhbCBBc3NldCBUcmFkZSAtIEhvbWUiPgogICAgCiAgICA8bWV0YSBpdGVtcHJvcD0ibmFtZSIgY29udGVudD0iRGlnaXRhbCBBc3NldCBUcmFkZSAtIEhvbWUiPgogICAgPG1ldGEgaXRlbXByb3A9ImRlc2NyaXB0aW9uIiBjb250ZW50PSJXZWxjb21lIHRvIERpZ2l0YWwgQXNzZXQgVHJhZGUgLSBZb3VyIFBhdGggdG8gU21hcnQgQ3J5cHRvIEludmVzdG1lbnRzIj4KICAgIDxtZXRhIGl0ZW1wcm9wPSJpbWFnZSIgY29udGVudD0iaHR0cHM6Ly9kaWdpdGFsLWFzc2V0dHJhZGUuY29tL2Fzc2V0cy9pbWFnZXMvc2VvLzY5ZTZlZTEwN2Q4YWYxNzc2NzQxOTA0LnBuZyI+CiAgICAKICAgIDxtZXRhIHByb3BlcnR5PSJvZzp0eXBlIiBjb250ZW50PSJ3ZWJzaXRlIj4KICAgIDxtZXRhIHByb3BlcnR5PSJvZzp0aXRsZSIgY29udGVudD0iRGlnaXRhbCBBc3NldCBUcmFkZSI+CiAgICA8bWV0YSBwcm9wZXJ0eT0ib2c6ZGVzY3JpcHRpb24iIGNvbnRlbnQ9IldlbGNvbWUgdG8gRGlnaXRhbCBBc3NldCBUcmFkZSAtIFlvdXIgUGF0aCB0byBTbWFydCBDcnlwdG8gSW52ZXN0bWVudHMiPgogICAgPG1ldGEgcHJvcGVydHk9Im9nOmltYWdlIiBjb250ZW50PSJodHRwczovL2RpZ2l0YWwtYXNzZXR0cmFkZS5jb20vYXNzZXRzL2ltYWdlcy9zZW8vNjllNmVlMTA3ZDhhZjE3NzY3NDE5MDQucG5nIi8+CiAgICA8bWV0YSBwcm9wZXJ0eT0ib2c6aW1hZ2U6dHlwZSIgY29udGVudD0icG5nIi8+CiAgICA8bWV0YSBwcm9wZXJ0eT0ib2c6aW1hZ2U6d2lkdGgiIGNvbnRlbnQ9IjExODAiIC8+CiAgICA8bWV0YSBwcm9wZXJ0eT0ib2c6aW1hZ2U6aGVpZ2h0IiBjb250ZW50PSI2MDAiIC8+CiAgICA8bWV0YSBwcm9wZXJ0eT0ib2c6dXJsIiBjb250ZW50PSJodHRwczovL2RpZ2l0YWwtYXNzZXR0cmFkZS5jb20iPgogICAgCiAgICA8bWV0YSBuYW1lPSJ0d2l0dGVyOmNhcmQiIGNvbnRlbnQ9InN1bW1hcnlfbGFyZ2VfaW1hZ2UiPgogICAgPGRpdiBzdHlsZT0icG9zaXRpb246IGZpeGVkOyByaWdodDogOTAwOyBib3R0b206IDA7IHotaW5kZXg6IDE7IHdpZHRoOiAxMDAlOyI+DQogICAgICAgICAgICAgICAgPGRpdiBzdHlsZT0id2lkdGg6IDEwMCU7IGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7IG92ZXJmbG93OmhpZGRlbjsgYm94LXNpemluZzogYm9yZGVyLWJveDsgdGV4dC1hbGlnbjogbGVmdDsgbGluZS1oZWlnaHQ6MTRweDsgZm9udC1zaXplOiAxMnB4OyBib3gtc2l6aW5nOmNvbnRlbnQtYm94OyBmb250LWZlYXR1cmUtc2V0dGluZ3M6IG5vcm1hbDsgdGV4dC1zaXplLWFkanVzdDogMTAwJTsgcGFkZGluZzoxcHg7cGFkZGluZzogMHB4OyBtYXJnaW46IDBweDsiPg0KICAgICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPSJoZWlnaHQ6NDBweDsiPg0KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iZ29vZ2xlX3RyYW5zbGF0ZV9lbGVtZW50Ij48L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgIDwvZGl2Pg0KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPg0KZnVuY3Rpb24gZ29vZ2xlVHJhbnNsYXRlRWxlbWVudEluaXQoKSB7DQogIG5ldyBnb29nbGUudHJhbnNsYXRlLlRyYW5zbGF0ZUVsZW1lbnQoeyAgIHBhZ2VMYW5ndWFnZTogJ2VuJ30sICdnb29nbGVfdHJhbnNsYXRlX2VsZW1lbnQnKTsNCn0NCjwvc2NyaXB0Pg0KDQo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIvL3RyYW5zbGF0ZS5nb29nbGUuY29tL3RyYW5zbGF0ZV9hL2VsZW1lbnQuanM/Y2I9Z29vZ2xlVHJhbnNsYXRlRWxlbWVudEluaXQiPjwvc2NyaXB0Pg0KPHN0eWxlPg0KICAuZ29vZy1sb2dvLWxpbmsgew0KICAgZGlzcGxheTpub25lICFpbXBvcnRhbnQ7DQp9DQoNCi5nb29nLXRlLWdhZGdldCB7DQogICBjb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDsNCn0NCg0KLmdvb2ctdGUtZ2FkZ2V0IC5nb29nLXRlLWNvbWJvIHsNCiAgICBwYWRkaW5nOiAxMHB4IDVweDsNCiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRDZCOTE4ICFpbXBvcnRhbnQ7DQogICBjb2xvcjogd2hpdGUgIWltcG9ydGFudDsNCn0NCg0KICAgIA0KPC9zdHlsZT4NCiAgICA8IS0tIFRhaWx3aW5kIENTUyBDRE4gLS0+DQogICAgPHNjcmlwdCBzcmM9Imh0dHBzOi8vY2RuLnRhaWx3aW5kY3NzLmNvbSI+PC9zY3JpcHQ+DQogICAgPHNjcmlwdD4NCiAgICAgICAgdGFpbHdpbmQuY29uZmlnID0gew0KICAgICAgICAgICAgdGhlbWU6IHsNCiAgICAgICAgICAgICAgICBleHRlbmQ6IHsNCiAgICAgICAgICAgICAgICAgICAgY29sb3JzOiB7DQogICAgICAgICAgICAgICAgICAgICAgICBnb2xkOiB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgNTA6ICAnI2ZmZmRlNycsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMTAwOiAnI2ZmZjljNCcsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMjAwOiAnI2ZmZjE3NicsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMzAwOiAnI2ZmZWU1OCcsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgNDAwOiAnI2ZmY2EyOCcsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgNTAwOiAnI2ViZDEwMCcsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgNjAwOiAnI2M4YTgwMCcsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgNzAwOiAnI2EwN2QwMCcsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgODAwOiAnIzdhNWMwMCcsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgOTAwOiAnIzVhNDIwMCcsDQogICAgICAgICAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgICAgICAgICAgZGFyazogew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDkwMDogJyMwOTA5MDknLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDgwMDogJyMxMTExMTEnLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDcwMDogJyMxYTFhMWEnLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDYwMDogJyMyMjIyMjInLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDUwMDogJyMyYTJhMmEnLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQwMDogJyMzMzMzMzMnLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMwMDogJyM0NDQ0NDQnLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIwMDogJyM2NjY2NjYnLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEwMDogJyM4ODg4ODgnLA0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgICAgICBmb250RmFtaWx5OiB7DQogICAgICAgICAgICAgICAgICAgICAgICBoZWFkaW5nOiBbJyJQbGF5ZmFpciBEaXNwbGF5IicsICdzZXJpZiddLA0KICAgICAgICAgICAgICAgICAgICAgICAgYm9keTogWyciRE0gU2FucyInLCAnc2Fucy1zZXJpZiddLA0KICAgICAgICAgICAgICAgICAgICAgICAgbW9ubzogWyciU3BhY2UgTW9ubyInLCAnbW9ub3NwYWNlJ10sDQogICAgICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogew0KICAgICAgICAgICAgICAgICAgICAgICAgJ2Zsb2F0JzogJ2Zsb2F0IDZzIGVhc2UtaW4tb3V0IGluZmluaXRlJywNCiAgICAgICAgICAgICAgICAgICAgICAgICdwdWxzZS1nb2xkJzogJ3B1bHNlR29sZCAycyBlYXNlLWluLW91dCBpbmZpbml0ZScsDQogICAgICAgICAgICAgICAgICAgICAgICAnc2xpZGUtdXAnOiAnc2xpZGVVcCAwLjZzIGVhc2UgZm9yd2FyZHMnLA0KICAgICAgICAgICAgICAgICAgICAgICAgJ2ZhZGUtaW4nOiAnZmFkZUluIDAuOHMgZWFzZSBmb3J3YXJkcycsDQogICAgICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAgICAgIGtleWZyYW1lczogew0KICAgICAgICAgICAgICAgICAgICAgICAgZmxvYXQ6IHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnMCUsIDEwMCUnOiB7IHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVkoMHB4KScgfSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnNTAlJzogeyB0cmFuc2Zvcm06ICd0cmFuc2xhdGVZKC0yMHB4KScgfSwNCiAgICAgICAgICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAgICAgICAgICBwdWxzZUdvbGQ6IHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnMCUsIDEwMCUnOiB7IGJveFNoYWRvdzogJzAgMCAwIDAgcmdiYSgyMzUsMjA5LDAsMC40KScgfSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnNTAlJzogeyBib3hTaGFkb3c6ICcwIDAgMCAxNXB4IHJnYmEoMjM1LDIwOSwwLDApJyB9LA0KICAgICAgICAgICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICAgICAgICAgIHNsaWRlVXA6IHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcm9tOiB7IG9wYWNpdHk6ICcwJywgdHJhbnNmb3JtOiAndHJhbnNsYXRlWSgzMHB4KScgfSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0bzogeyBvcGFjaXR5OiAnMScsIHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVkoMCknIH0sDQogICAgICAgICAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgICAgICAgICAgZmFkZUluOiB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgZnJvbTogeyBvcGFjaXR5OiAnMCcgfSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0bzogeyBvcGFjaXR5OiAnMScgfSwNCiAgICAgICAgICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICA8L3NjcmlwdD4NCg0KICAgIDwhLS0gR29vZ2xlIEZvbnRzIC0tPg0KICAgIDxsaW5rIHJlbD0icHJlY29ubmVjdCIgaHJlZj0iaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbSI+DQogICAgPGxpbmsgcmVsPSJwcmVjb25uZWN0IiBocmVmPSJodHRwczovL2ZvbnRzLmdzdGF0aWMuY29tIiBjcm9zc29yaWdpbj4NCiAgICA8bGluayBocmVmPSJodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2NzczI/ZmFtaWx5PVBsYXlmYWlyK0Rpc3BsYXk6aXRhbCx3Z2h0QDAsNDAwOzAsNjAwOzAsNzAwOzAsODAwOzEsNDAwOzEsNjAwJmZhbWlseT1ETStTYW5zOndnaHRAMzAwOzQwMDs1MDA7NjAwJmZhbWlseT1TcGFjZStNb25vOndnaHRANDAwOzcwMCZkaXNwbGF5PXN3YXAiIHJlbD0ic3R5bGVzaGVldCI+DQoNCiAgICA8IS0tIEx1Y2lkZSBJY29ucyAtLT4NCiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly91bnBrZy5jb20vbHVjaWRlQGxhdGVzdC9kaXN0L3VtZC9sdWNpZGUuanMiPjwvc2NyaXB0Pg0KDQogDQoNCiAgICA8c3R5bGU+DQogICAgICAgICogeyBib3gtc2l6aW5nOiBib3JkZXItYm94OyBtYXJnaW46IDA7IHBhZGRpbmc6IDA7IH0NCiAgICAgICAgaHRtbCB7IHNjcm9sbC1iZWhhdmlvcjogc21vb3RoOyB9DQogICAgICAgIGJvZHkgew0KICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdETSBTYW5zJywgc2Fucy1zZXJpZjsNCiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMwOTA5MDk7DQogICAgICAgICAgICBjb2xvcjogI2U1ZTVlNTsNCiAgICAgICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjsNCiAgICAgICAgfQ0KDQogICAgICAgIC8qIFNjcm9sbGJhciAqLw0KICAgICAgICA6Oi13ZWJraXQtc2Nyb2xsYmFyIHsgd2lkdGg6IDVweDsgfQ0KICAgICAgICA6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHsgYmFja2dyb3VuZDogIzExMTsgfQ0KICAgICAgICA6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHsgYmFja2dyb3VuZDogI2ViZDEwMDsgYm9yZGVyLXJhZGl1czogMTBweDsgfQ0KDQogICAgICAgIC8qIEdvbGQgZ3JhZGllbnQgdGV4dCAqLw0KICAgICAgICAuZ29sZC10ZXh0IHsNCiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICNlYmQxMDAgMCUsICNmZmVlNTggNDAlLCAjYzhhODAwIDEwMCUpOw0KICAgICAgICAgICAgLXdlYmtpdC1iYWNrZ3JvdW5kLWNsaXA6IHRleHQ7DQogICAgICAgICAgICAtd2Via2l0LXRleHQtZmlsbC1jb2xvcjogdHJhbnNwYXJlbnQ7DQogICAgICAgICAgICBiYWNrZ3JvdW5kLWNsaXA6IHRleHQ7DQogICAgICAgIH0NCg0KICAgICAgICAvKiBHb2xkIGJvcmRlciBnbG93ICovDQogICAgICAgIC5nb2xkLWdsb3cgeyBib3gtc2hhZG93OiAwIDAgMjBweCByZ2JhKDIzNSwyMDksMCwwLjMpLCAwIDAgNjBweCByZ2JhKDIzNSwyMDksMCwwLjEpOyB9DQogICAgICAgIC5nb2xkLWdsb3ctc20geyBib3gtc2hhZG93OiAwIDAgMTBweCByZ2JhKDIzNSwyMDksMCwwLjIpOyB9DQoNCiAgICAgICAgLyogR2xhc3Ntb3JwaGlzbSAqLw0KICAgICAgICAuZ2xhc3Mgew0KICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsMjU1LDI1NSwwLjAzKTsNCiAgICAgICAgICAgIGJhY2tkcm9wLWZpbHRlcjogYmx1cigyMHB4KTsNCiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjM1LDIwOSwwLDAuMSk7DQogICAgICAgIH0NCiAgICAgICAgLmdsYXNzLWRhcmsgew0KICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgwLDAsMCwwLjQpOw0KICAgICAgICAgICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDIwcHgpOw0KICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyMzUsMjA5LDAsMC4xNSk7DQogICAgICAgIH0NCg0KICAgICAgICAvKiBOb2lzZSB0ZXh0dXJlIG92ZXJsYXkgKi8NCiAgICAgICAgYm9keTo6YmVmb3JlIHsNCiAgICAgICAgICAgIGNvbnRlbnQ6ICcnOw0KICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkOw0KICAgICAgICAgICAgaW5zZXQ6IDA7DQogICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0Nzdmcgdmlld0JveD0nMCAwIDI1NiAyNTYnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyclM0UlM0NmaWx0ZXIgaWQ9J25vaXNlJyUzRSUzQ2ZlVHVyYnVsZW5jZSB0eXBlPSdmcmFjdGFsTm9pc2UnIGJhc2VGcmVxdWVuY3k9JzAuOScgbnVtT2N0YXZlcz0nNCcgc3RpdGNoVGlsZXM9J3N0aXRjaCcvJTNFJTNDL2ZpbHRlciUzRSUzQ3JlY3Qgd2lkdGg9JzEwMCUyNScgaGVpZ2h0PScxMDAlMjUnIGZpbHRlcj0ndXJsKCUyM25vaXNlKScgb3BhY2l0eT0nMC4wMycvJTNFJTNDL3N2ZyUzRSIpOw0KICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7DQogICAgICAgICAgICB6LWluZGV4OiAxMDAwOw0KICAgICAgICAgICAgb3BhY2l0eTogMC40Ow0KICAgICAgICB9DQoNCiAgICAgICAgLyogR3JpZCBwYXR0ZXJuICovDQogICAgICAgIC5ncmlkLWJnIHsNCiAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6DQogICAgICAgICAgICAgICAgbGluZWFyLWdyYWRpZW50KHJnYmEoMjM1LDIwOSwwLDAuMDMpIDFweCwgdHJhbnNwYXJlbnQgMXB4KSwNCiAgICAgICAgICAgICAgICBsaW5lYXItZ3JhZGllbnQoOTBkZWcsIHJnYmEoMjM1LDIwOSwwLDAuMDMpIDFweCwgdHJhbnNwYXJlbnQgMXB4KTsNCiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogNTBweCA1MHB4Ow0KICAgICAgICB9DQoNCiAgICAgICAgLyogTmF2YmFyICovDQogICAgICAgICNuYXZiYXIgew0KICAgICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTsNCiAgICAgICAgfQ0KICAgICAgICAjbmF2YmFyLnNjcm9sbGVkIHsNCiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoOSw5LDksMC45NSkgIWltcG9ydGFudDsNCiAgICAgICAgICAgIGJhY2tkcm9wLWZpbHRlcjogYmx1cigyMHB4KTsNCiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDIzNSwyMDksMCwwLjIpOw0KICAgICAgICAgICAgYm94LXNoYWRvdzogMCA0cHggMzBweCByZ2JhKDAsMCwwLDAuNSk7DQogICAgICAgIH0NCg0KICAgICAgICAubmF2LWxpbmsgew0KICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOw0KICAgICAgICAgICAgZm9udC1zaXplOiAwLjg1cmVtOw0KICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsNCiAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjA4ZW07DQogICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOw0KICAgICAgICAgICAgY29sb3I6ICNhYWE7DQogICAgICAgICAgICB0cmFuc2l0aW9uOiBjb2xvciAwLjNzIGVhc2U7DQogICAgICAgIH0NCiAgICAgICAgLm5hdi1saW5rOjphZnRlciB7DQogICAgICAgICAgICBjb250ZW50OiAnJzsNCiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsNCiAgICAgICAgICAgIGJvdHRvbTogLTRweDsNCiAgICAgICAgICAgIGxlZnQ6IDA7DQogICAgICAgICAgICB3aWR0aDogMDsNCiAgICAgICAgICAgIGhlaWdodDogMXB4Ow0KICAgICAgICAgICAgYmFja2dyb3VuZDogI2ViZDEwMDsNCiAgICAgICAgICAgIHRyYW5zaXRpb246IHdpZHRoIDAuM3MgZWFzZTsNCiAgICAgICAgfQ0KICAgICAgICAubmF2LWxpbms6aG92ZXIgeyBjb2xvcjogI2ViZDEwMDsgfQ0KICAgICAgICAubmF2LWxpbms6aG92ZXI6OmFmdGVyIHsgd2lkdGg6IDEwMCU7IH0NCiAgICAgICAgLm5hdi1saW5rLmFjdGl2ZSB7IGNvbG9yOiAjZWJkMTAwOyB9DQogICAgICAgIC5uYXYtbGluay5hY3RpdmU6OmFmdGVyIHsgd2lkdGg6IDEwMCU7IH0NCg0KICAgICAgICAvKiBCdXR0b25zICovDQogICAgICAgIC5idG4tZ29sZCB7DQogICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjZWJkMTAwIDAlLCAjYzhhODAwIDEwMCUpOw0KICAgICAgICAgICAgY29sb3I6ICMwOTA5MDk7DQogICAgICAgICAgICBmb250LXdlaWdodDogNjAwOw0KICAgICAgICAgICAgZm9udC1zaXplOiAwLjhyZW07DQogICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogMC4xZW07DQogICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOw0KICAgICAgICAgICAgcGFkZGluZzogMTJweCAyOHB4Ow0KICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4Ow0KICAgICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTsNCiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4Ow0KICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsNCiAgICAgICAgICAgIGdhcDogOHB4Ow0KICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyOw0KICAgICAgICAgICAgYm9yZGVyOiBub25lOw0KICAgICAgICB9DQogICAgICAgIC5idG4tZ29sZDpob3ZlciB7DQogICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjZmZlZTU4IDAlLCAjZWJkMTAwIDEwMCUpOw0KICAgICAgICAgICAgYm94LXNoYWRvdzogMCA4cHggMjVweCByZ2JhKDIzNSwyMDksMCwwLjQpOw0KICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0ycHgpOw0KICAgICAgICB9DQoNCiAgICAgICAgLmJ0bi1vdXRsaW5lIHsNCiAgICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50Ow0KICAgICAgICAgICAgY29sb3I6ICNlYmQxMDA7DQogICAgICAgICAgICBmb250LXdlaWdodDogNjAwOw0KICAgICAgICAgICAgZm9udC1zaXplOiAwLjhyZW07DQogICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogMC4xZW07DQogICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOw0KICAgICAgICAgICAgcGFkZGluZzogMTFweCAyOHB4Ow0KICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4Ow0KICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyMzUsMjA5LDAsMC41KTsNCiAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7DQogICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsNCiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7DQogICAgICAgICAgICBnYXA6IDhweDsNCiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsNCiAgICAgICAgfQ0KICAgICAgICAuYnRuLW91dGxpbmU6aG92ZXIgew0KICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyMzUsMjA5LDAsMC4xKTsNCiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogI2ViZDEwMDsNCiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgOHB4IDI1cHggcmdiYSgyMzUsMjA5LDAsMC4yKTsNCiAgICAgICAgfQ0KDQogICAgICAgIC8qIFNlY3Rpb24gdGl0bGVzICovDQogICAgICAgIC5zZWN0aW9uLWxhYmVsIHsNCiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnU3BhY2UgTW9ubycsIG1vbm9zcGFjZTsNCiAgICAgICAgICAgIGZvbnQtc2l6ZTogMC43cmVtOw0KICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuMjVlbTsNCiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7DQogICAgICAgICAgICBjb2xvcjogI2ViZDEwMDsNCiAgICAgICAgfQ0KICAgICAgICAuc2VjdGlvbi10aXRsZSB7DQogICAgICAgICAgICBmb250LWZhbWlseTogJ1BsYXlmYWlyIERpc3BsYXknLCBzZXJpZjsNCiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7DQogICAgICAgICAgICBsaW5lLWhlaWdodDogMS4xNTsNCiAgICAgICAgfQ0KDQogICAgICAgIC8qIENhcmRzICovDQogICAgICAgIC5jYXJkLWludmVzdG1lbnQgew0KICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE0NWRlZywgIzFhMWExYSwgIzExMSk7DQogICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDIzNSwyMDksMCwwLjEpOw0KICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4Ow0KICAgICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuNHMgZWFzZTsNCiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsNCiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47DQogICAgICAgIH0NCiAgICAgICAgLmNhcmQtaW52ZXN0bWVudDo6YmVmb3JlIHsNCiAgICAgICAgICAgIGNvbnRlbnQ6ICcnOw0KICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOw0KICAgICAgICAgICAgdG9wOiAwOw0KICAgICAgICAgICAgbGVmdDogMDsNCiAgICAgICAgICAgIHJpZ2h0OiAwOw0KICAgICAgICAgICAgaGVpZ2h0OiAycHg7DQogICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsIHRyYW5zcGFyZW50LCAjZWJkMTAwLCB0cmFuc3BhcmVudCk7DQogICAgICAgICAgICBvcGFjaXR5OiAwOw0KICAgICAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzIGVhc2U7DQogICAgICAgIH0NCiAgICAgICAgLmNhcmQtaW52ZXN0bWVudDpob3ZlciB7DQogICAgICAgICAgICBib3JkZXItY29sb3I6IHJnYmEoMjM1LDIwOSwwLDAuMyk7DQogICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTRweCk7DQogICAgICAgICAgICBib3gtc2hhZG93OiAwIDIwcHggNTBweCByZ2JhKDAsMCwwLDAuNSksIDAgMCAzMHB4IHJnYmEoMjM1LDIwOSwwLDAuMSk7DQogICAgICAgIH0NCiAgICAgICAgLmNhcmQtaW52ZXN0bWVudDpob3Zlcjo6YmVmb3JlIHsgb3BhY2l0eTogMTsgfQ0KDQogICAgICAgIC8qIFN0YXQgY291bnRlciAqLw0KICAgICAgICAuc3RhdC1jYXJkIHsNCiAgICAgICAgICAgIGJvcmRlci1sZWZ0OiAycHggc29saWQgI2ViZDEwMDsNCiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMS41cmVtOw0KICAgICAgICB9DQoNCiAgICAgICAgLyogTW9iaWxlIG1lbnUgKi8NCiAgICAgICAgI21vYmlsZS1tZW51IHsNCiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTAwJSk7DQogICAgICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC40cyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpOw0KICAgICAgICB9DQogICAgICAgICNtb2JpbGUtbWVudS5vcGVuIHsNCiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTsNCiAgICAgICAgfQ0KDQogICAgICAgIC8qIEZsb2F0aW5nIHNvY2lhbCAqLw0KICAgICAgICAuZmxvYXRpbmctc29jaWFsIHsNCiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDsNCiAgICAgICAgICAgIGxlZnQ6IDA7DQogICAgICAgICAgICB0b3A6IDUwJTsNCiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTsNCiAgICAgICAgICAgIHotaW5kZXg6IDkwMDsNCiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7DQogICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOw0KICAgICAgICAgICAgZ2FwOiAwOw0KICAgICAgICB9DQogICAgICAgIC5zb2NpYWwtYnRuIHsNCiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7DQogICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOw0KICAgICAgICAgICAgcGFkZGluZzogMTRweCAxMnB4Ow0KICAgICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTsNCiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsNCiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsNCiAgICAgICAgfQ0KICAgICAgICAuc29jaWFsLWJ0biBzcGFuIHsNCiAgICAgICAgICAgIG1heC13aWR0aDogMDsNCiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47DQogICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOw0KICAgICAgICAgICAgdHJhbnNpdGlvbjogbWF4LXdpZHRoIDAuM3MgZWFzZSwgcGFkZGluZyAwLjNzIGVhc2U7DQogICAgICAgICAgICBmb250LXNpemU6IDAuNzVyZW07DQogICAgICAgICAgICBmb250LXdlaWdodDogNjAwOw0KICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuMDVlbTsNCiAgICAgICAgfQ0KICAgICAgICAuc29jaWFsLWJ0bjpob3ZlciBzcGFuIHsNCiAgICAgICAgICAgIG1heC13aWR0aDogMTIwcHg7DQogICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxMHB4Ow0KICAgICAgICB9DQoNCiAgICAgICAgLyogVHJhbnNsYXRvciB3aWRnZXQgKi8NCiAgICAgICAgLmdvb2ctdGUtZ2FkZ2V0LXNpbXBsZSB7DQogICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDIzNSwyMDksMCwwLjEpICFpbXBvcnRhbnQ7DQogICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDIzNSwyMDksMCwwLjMpICFpbXBvcnRhbnQ7DQogICAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHggIWltcG9ydGFudDsNCiAgICAgICAgICAgIHBhZGRpbmc6IDRweCA4cHggIWltcG9ydGFudDsNCiAgICAgICAgfQ0KICAgICAgICAuZ29vZy10ZS1nYWRnZXQtc2ltcGxlIHNwYW4geyBjb2xvcjogI2ViZDEwMCAhaW1wb3J0YW50OyBmb250LXNpemU6IDAuNzVyZW0gIWltcG9ydGFudDsgfQ0KICAgICAgICAuZ29vZy10ZS1nYWRnZXQtc2ltcGxlIC5nb29nLXRlLW1lbnUtdmFsdWUgc3BhbiB7IGNvbG9yOiAjZWJkMTAwICFpbXBvcnRhbnQ7IH0NCg0KICAgICAgICAvKiBEaXZpZGVyICovDQogICAgICAgIC5nb2xkLWRpdmlkZXIgew0KICAgICAgICAgICAgaGVpZ2h0OiAxcHg7DQogICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsIHRyYW5zcGFyZW50LCByZ2JhKDIzNSwyMDksMCwwLjQpLCB0cmFuc3BhcmVudCk7DQogICAgICAgIH0NCg0KICAgICAgICAvKiBUaWNrZXIgdGFwZSAqLw0KICAgICAgICAudGlja2VyLXdyYXAgew0KICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsNCiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjM1LDIwOSwwLDAuMDUpOw0KICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoMjM1LDIwOSwwLDAuMSk7DQogICAgICAgICAgICBwYWRkaW5nOiA4cHggMDsNCiAgICAgICAgfQ0KICAgICAgICAudGlja2VyIHsNCiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7DQogICAgICAgICAgICB3aWR0aDogbWF4LWNvbnRlbnQ7DQogICAgICAgICAgICBhbmltYXRpb246IHRpY2tlciAzMHMgbGluZWFyIGluZmluaXRlOw0KICAgICAgICB9DQogICAgICAgIC50aWNrZXI6aG92ZXIgeyBhbmltYXRpb24tcGxheS1zdGF0ZTogcGF1c2VkOyB9DQogICAgICAgIEBrZXlmcmFtZXMgdGlja2VyIHsNCiAgICAgICAgICAgIDAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApOyB9DQogICAgICAgICAgICAxMDAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpOyB9DQogICAgICAgIH0NCg0KICAgICAgICAvKiBQbGFuIGNhcmRzICovDQogICAgICAgIC5wbGFuLWNhcmQgew0KICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOw0KICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsNCiAgICAgICAgfQ0KICAgICAgICAucGxhbi1jYXJkLmZlYXR1cmVkIHsNCiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogcmdiYSgyMzUsMjA5LDAsMC41KSAhaW1wb3J0YW50Ow0KICAgICAgICB9DQogICAgICAgIC5wbGFuLWNhcmQuZmVhdHVyZWQ6OmFmdGVyIHsNCiAgICAgICAgICAgIGNvbnRlbnQ6ICdQT1BVTEFSJzsNCiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsNCiAgICAgICAgICAgIHRvcDogMTZweDsNCiAgICAgICAgICAgIHJpZ2h0OiAtMjhweDsNCiAgICAgICAgICAgIGJhY2tncm91bmQ6ICNlYmQxMDA7DQogICAgICAgICAgICBjb2xvcjogIzA5MDkwOTsNCiAgICAgICAgICAgIGZvbnQtc2l6ZTogMC42cmVtOw0KICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDsNCiAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjFlbTsNCiAgICAgICAgICAgIHBhZGRpbmc6IDRweCA0MHB4Ow0KICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpOw0KICAgICAgICB9DQoNCiAgICAgICAgLyogQU9TLWxpa2UgYW5pbWF0aW9ucyB3aXRoIEludGVyc2VjdGlvbiBPYnNlcnZlciAqLw0KICAgICAgICAucmV2ZWFsIHsNCiAgICAgICAgICAgIG9wYWNpdHk6IDA7DQogICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMzBweCk7DQogICAgICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuN3MgZWFzZSwgdHJhbnNmb3JtIDAuN3MgZWFzZTsNCiAgICAgICAgfQ0KICAgICAgICAucmV2ZWFsLnJldmVhbGVkIHsNCiAgICAgICAgICAgIG9wYWNpdHk6IDE7DQogICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7DQogICAgICAgIH0NCiAgICAgICAgLnJldmVhbC1sZWZ0IHsNCiAgICAgICAgICAgIG9wYWNpdHk6IDA7DQogICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTMwcHgpOw0KICAgICAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjdzIGVhc2UsIHRyYW5zZm9ybSAwLjdzIGVhc2U7DQogICAgICAgIH0NCiAgICAgICAgLnJldmVhbC1sZWZ0LnJldmVhbGVkIHsNCiAgICAgICAgICAgIG9wYWNpdHk6IDE7DQogICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7DQogICAgICAgIH0NCiAgICAgICAgLnJldmVhbC1yaWdodCB7DQogICAgICAgICAgICBvcGFjaXR5OiAwOw0KICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDMwcHgpOw0KICAgICAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjdzIGVhc2UsIHRyYW5zZm9ybSAwLjdzIGVhc2U7DQogICAgICAgIH0NCiAgICAgICAgLnJldmVhbC1yaWdodC5yZXZlYWxlZCB7DQogICAgICAgICAgICBvcGFjaXR5OiAxOw0KICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApOw0KICAgICAgICB9DQoNCiAgICAgICAgLyogVGFibGUgKi8NCiAgICAgICAgLmRhdGEtdGFibGUgdGggew0KICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyMzUsMjA5LDAsMC4wOCk7DQogICAgICAgICAgICBjb2xvcjogI2ViZDEwMDsNCiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnU3BhY2UgTW9ubycsIG1vbm9zcGFjZTsNCiAgICAgICAgICAgIGZvbnQtc2l6ZTogMC43cmVtOw0KICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuMWVtOw0KICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsNCiAgICAgICAgICAgIHBhZGRpbmc6IDE0cHggMTZweDsNCiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDIzNSwyMDksMCwwLjE1KTsNCiAgICAgICAgfQ0KICAgICAgICAuZGF0YS10YWJsZSB0ZCB7DQogICAgICAgICAgICBwYWRkaW5nOiAxNHB4IDE2cHg7DQogICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwwLjA0KTsNCiAgICAgICAgICAgIGZvbnQtc2l6ZTogMC45cmVtOw0KICAgICAgICAgICAgY29sb3I6ICNjY2M7DQogICAgICAgIH0NCiAgICAgICAgLmRhdGEtdGFibGUgdHI6aG92ZXIgdGQgeyBiYWNrZ3JvdW5kOiByZ2JhKDIzNSwyMDksMCwwLjAzKTsgfQ0KDQogICAgICAgIC8qIEZvb3RlciAqLw0KICAgICAgICBmb290ZXIgYSB7IHRyYW5zaXRpb246IGNvbG9yIDAuMnMgZWFzZTsgfQ0KICAgICAgICBmb290ZXIgYTpob3ZlciB7IGNvbG9yOiAjZWJkMTAwOyB9DQoNCiAgICAgICAgLyogSW5wdXQgc3R5bGVzICovDQogICAgICAgIC5mb3JtLWlucHV0IHsNCiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LDI1NSwyNTUsMC4wNSk7DQogICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LDAuMSk7DQogICAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7DQogICAgICAgICAgICBjb2xvcjogI2U1ZTVlNTsNCiAgICAgICAgICAgIHBhZGRpbmc6IDEycHggMTZweDsNCiAgICAgICAgICAgIHdpZHRoOiAxMDAlOw0KICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdETSBTYW5zJywgc2Fucy1zZXJpZjsNCiAgICAgICAgICAgIGZvbnQtc2l6ZTogMC45cmVtOw0KICAgICAgICAgICAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDAuM3MgZWFzZSwgYm94LXNoYWRvdyAwLjNzIGVhc2U7DQogICAgICAgICAgICBvdXRsaW5lOiBub25lOw0KICAgICAgICB9DQogICAgICAgIC5mb3JtLWlucHV0OmZvY3VzIHsNCiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogcmdiYSgyMzUsMjA5LDAsMC41KTsNCiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDNweCByZ2JhKDIzNSwyMDksMCwwLjA4KTsNCiAgICAgICAgfQ0KICAgICAgICAuZm9ybS1pbnB1dDo6cGxhY2Vob2xkZXIgeyBjb2xvcjogIzU1NTsgfQ0KDQogICAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkgew0KICAgICAgICAgICAgLmZsb2F0aW5nLXNvY2lhbCB7IHRvcDogYXV0bzsgYm90dG9tOiAyMHB4OyB0cmFuc2Zvcm06IG5vbmU7IGZsZXgtZGlyZWN0aW9uOiByb3c7IGxlZnQ6IDE2cHg7IH0NCiAgICAgICAgICAgIC5zb2NpYWwtYnRuIHNwYW4geyBkaXNwbGF5OiBub25lOyB9DQogICAgICAgICAgICAuc29jaWFsLWJ0biB7IGJvcmRlci1yYWRpdXM6IDUwJTsgd2lkdGg6IDQ4cHg7IGhlaWdodDogNDhweDsganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IH0NCiAgICAgICAgfQ0KICAgIDwvc3R5bGU+DQoNCiAgICA8L2hlYWQ+DQo8Ym9keSBjbGFzcz0iZ3JpZC1iZyI+DQoNCjwhLS0gPT09PT0gTkFWQkFSID09PT09IC0tPg0KPG5hdiBpZD0ibmF2YmFyIiBjbGFzcz0iZml4ZWQgdG9wLTAgbGVmdC0wIHJpZ2h0LTAgei01MCB0cmFuc2l0aW9uLWFsbCBkdXJhdGlvbi0zMDAiPg0KICAgIDxkaXYgY2xhc3M9Im1heC13LTd4bCBteC1hdXRvIHB4LTQgc206cHgtNiBsZzpweC04Ij4NCiAgICAgICAgPGRpdiBjbGFzcz0iZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuIGgtMjAiPg0KDQogICAgICAgICAgICA8IS0tIExvZ28gLS0+DQogICAgICAgICAgICA8YSBocmVmPSJodHRwczovL2RpZ2l0YWwtYXNzZXR0cmFkZS5jb20iIGNsYXNzPSJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMyBncm91cCI+DQogICAgICAgICAgICAgICAgPGltZyBzcmM9Imh0dHBzOi8vZGlnaXRhbC1hc3NldHRyYWRlLmNvbS9hc3NldHMvaW1hZ2VzL2xvZ29JY29uL2xvZ28ucG5nIiB3aWR0aD0iMTg1cHgiLz4NCiAgICAgICAgICAgIDwvYT4NCg0KICAgICAgICAgICAgPCEtLSBEZXNrdG9wIE5hdiAtLT4NCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImhpZGRlbiBsZzpmbGV4IGl0ZW1zLWNlbnRlciBnYXAtOCI+DQogICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly9kaWdpdGFsLWFzc2V0dHJhZGUuY29tIiBjbGFzcz0ibmF2LWxpbmsgYWN0aXZlIj5Ib21lPC9hPg0KICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vZGlnaXRhbC1hc3NldHRyYWRlLmNvbS9hYm91dHVzIiBjbGFzcz0ibmF2LWxpbmsgIj5BYm91dDwvYT4NCiAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwczovL2RpZ2l0YWwtYXNzZXR0cmFkZS5jb20vcGxhbiIgY2xhc3M9Im5hdi1saW5rICI+UGxhbnM8L2E+DQogICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly9kaWdpdGFsLWFzc2V0dHJhZGUuY29tL2ZhcXMiIGNsYXNzPSJuYXYtbGluayAiPkZBUTwvYT4NCiAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vZGlnaXRhbC1hc3NldHRyYWRlLmNvbS9jb250YWN0IiBjbGFzcz0ibmF2LWxpbmsgIj5Db250YWN0PC9hPg0KICAgICAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgICAgIDwhLS0gUmlnaHQgQWN0aW9ucyAtLT4NCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImhpZGRlbiBsZzpmbGV4IGl0ZW1zLWNlbnRlciBnYXAtNCI+DQogICAgICAgICAgICAgICAgPCEtLSBUcmFuc2xhdG9yIC0tPg0KICAgICAgICAgICAgICAgIA0KDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwczovL2RpZ2l0YWwtYXNzZXR0cmFkZS5jb20vdXNlci9sb2dpbiIgY2xhc3M9ImJ0bi1vdXRsaW5lIHRleHQteHMgcHktMiBweC00Ij5Mb2dpbjwvYT4NCiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly9kaWdpdGFsLWFzc2V0dHJhZGUuY29tL3VzZXIvcmVnaXN0ZXIiIGNsYXNzPSJidG4tZ29sZCB0ZXh0LXhzIHB5LTIgcHgtNCI+DQogICAgICAgICAgICAgICAgICAgICAgICA8aSBkYXRhLWx1Y2lkZT0idHJlbmRpbmctdXAiIGNsYXNzPSJ3LTMgaC0zIj48L2k+DQogICAgICAgICAgICAgICAgICAgICAgICBHZXQgU3RhcnRlZA0KICAgICAgICAgICAgICAgICAgICA8L2E+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgICAgIDwhLS0gTW9iaWxlIE1lbnUgVG9nZ2xlIC0tPg0KICAgICAgICAgICAgPGJ1dHRvbiBpZD0ibWVudS10b2dnbGUiIGNsYXNzPSJsZzpoaWRkZW4gdGV4dC1ncmF5LTMwMCBob3Zlcjp0ZXh0LWdvbGQtNTAwIHRyYW5zaXRpb24tY29sb3JzIiBhcmlhLWxhYmVsPSJNZW51Ij4NCiAgICAgICAgICAgICAgICA8aSBkYXRhLWx1Y2lkZT0ibWVudSIgY2xhc3M9InctNiBoLTYiIGlkPSJtZW51LWljb24iPjwvaT4NCiAgICAgICAgICAgIDwvYnV0dG9uPg0KICAgICAgICA8L2Rpdj4NCiAgICA8L2Rpdj4NCjwvbmF2Pg0KDQo8IS0tID09PT09IE1PQklMRSBNRU5VID09PT09IC0tPg0KPGRpdiBpZD0ibW9iaWxlLW1lbnUiIGNsYXNzPSJmaXhlZCBpbnNldC0wIHotNDAgbGc6aGlkZGVuIj4NCiAgICA8ZGl2IGNsYXNzPSJhYnNvbHV0ZSBpbnNldC0wIGJnLWJsYWNrLzgwIGJhY2tkcm9wLWJsdXItc20iIGlkPSJtZW51LW92ZXJsYXkiPjwvZGl2Pg0KICAgIDxkaXYgY2xhc3M9ImFic29sdXRlIGxlZnQtMCB0b3AtMCBib3R0b20tMCB3LTgwIGJnLWRhcmstODAwIGJvcmRlci1yIGJvcmRlci1nb2xkLTUwMC8yMCBmbGV4IGZsZXgtY29sIG92ZXJmbG93LXktYXV0byI+DQogICAgICAgIDwhLS0gTW9iaWxlIEhlYWRlciAtLT4NCiAgICAgICAgPGRpdiBjbGFzcz0iZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuIHAtNiBib3JkZXItYiBib3JkZXItd2hpdGUvNSI+DQogICAgICAgICAgICA8YSBocmVmPSJodHRwczovL2RpZ2l0YWwtYXNzZXR0cmFkZS5jb20iPjxpbWcgc3JjPSJodHRwczovL2RpZ2l0YWwtYXNzZXR0cmFkZS5jb20vYXNzZXRzL2ltYWdlcy9sb2dvSWNvbi9sb2dvLnBuZyIgd2lkdGg9IjE4NXB4Ii8+PC9hPg0KICAgICAgICAgICAgPGJ1dHRvbiBpZD0ibWVudS1jbG9zZSIgY2xhc3M9InRleHQtZ3JheS00MDAgaG92ZXI6dGV4dC1nb2xkLTUwMCB0cmFuc2l0aW9uLWNvbG9ycyI+DQogICAgICAgICAgICAgICAgPGkgZGF0YS1sdWNpZGU9IngiIGNsYXNzPSJ3LTUgaC01Ij48L2k+DQogICAgICAgICAgICA8L2J1dHRvbj4NCiAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgPCEtLSBNb2JpbGUgTGlua3MgLS0+DQogICAgICAgIDxuYXYgY2xhc3M9ImZsZXgtMSBweC02IHB5LTYgc3BhY2UteS0xIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vZGlnaXRhbC1hc3NldHRyYWRlLmNvbSIgY2xhc3M9ImZsZXggaXRlbXMtY2VudGVyIGdhcC0zIHB4LTQgcHktMyByb3VuZGVkIHRleHQtZ3JheS0zMDAgaG92ZXI6dGV4dC1nb2xkLTUwMCBob3ZlcjpiZy1nb2xkLTUwMC81IHRyYW5zaXRpb24tYWxsIGdyb3VwIj4NCiAgICAgICAgICAgICAgICA8aSBkYXRhLWx1Y2lkZT0iaG9tZSIgY2xhc3M9InctNCBoLTQgdGV4dC1nb2xkLTUwMC81MCBncm91cC1ob3Zlcjp0ZXh0LWdvbGQtNTAwIHRyYW5zaXRpb24tY29sb3JzIj48L2k+DQogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImZvbnQtbWVkaXVtIHRleHQtc20iPkhvbWU8L3NwYW4+DQogICAgICAgICAgICA8L2E+DQogICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwczovL2RpZ2l0YWwtYXNzZXR0cmFkZS5jb20vYWJvdXR1cyIgY2xhc3M9ImZsZXggaXRlbXMtY2VudGVyIGdhcC0zIHB4LTQgcHktMyByb3VuZGVkIHRleHQtZ3JheS0zMDAgaG92ZXI6dGV4dC1nb2xkLTUwMCBob3ZlcjpiZy1nb2xkLTUwMC81IHRyYW5zaXRpb24tYWxsIGdyb3VwIj4NCiAgICAgICAgICAgICAgICA8aSBkYXRhLWx1Y2lkZT0iaW5mbyIgY2xhc3M9InctNCBoLTQgdGV4dC1nb2xkLTUwMC81MCBncm91cC1ob3Zlcjp0ZXh0LWdvbGQtNTAwIHRyYW5zaXRpb24tY29sb3JzIj48L2k+DQogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImZvbnQtbWVkaXVtIHRleHQtc20iPkFib3V0IFVzPC9zcGFuPg0KICAgICAgICAgICAgPC9hPg0KICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly9kaWdpdGFsLWFzc2V0dHJhZGUuY29tL3BsYW4iIGNsYXNzPSJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMyBweC00IHB5LTMgcm91bmRlZCB0ZXh0LWdyYXktMzAwIGhvdmVyOnRleHQtZ29sZC01MDAgaG92ZXI6YmctZ29sZC01MDAvNSB0cmFuc2l0aW9uLWFsbCBncm91cCI+DQogICAgICAgICAgICAgICAgPGkgZGF0YS1sdWNpZGU9InRyZW5kaW5nLXVwIiBjbGFzcz0idy00IGgtNCB0ZXh0LWdvbGQtNTAwLzUwIGdyb3VwLWhvdmVyOnRleHQtZ29sZC01MDAgdHJhbnNpdGlvbi1jb2xvcnMiPjwvaT4NCiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZm9udC1tZWRpdW0gdGV4dC1zbSI+SW52ZXN0bWVudCBQbGFuczwvc3Bhbj4NCiAgICAgICAgICAgIDwvYT4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vZGlnaXRhbC1hc3NldHRyYWRlLmNvbS9mYXFzIiBjbGFzcz0iZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTMgcHgtNCBweS0zIHJvdW5kZWQgdGV4dC1ncmF5LTMwMCBob3Zlcjp0ZXh0LWdvbGQtNTAwIGhvdmVyOmJnLWdvbGQtNTAwLzUgdHJhbnNpdGlvbi1hbGwgZ3JvdXAiPg0KICAgICAgICAgICAgICAgIDxpIGRhdGEtbHVjaWRlPSJoZWxwLWNpcmNsZSIgY2xhc3M9InctNCBoLTQgdGV4dC1nb2xkLTUwMC81MCBncm91cC1ob3Zlcjp0ZXh0LWdvbGQtNTAwIHRyYW5zaXRpb24tY29sb3JzIj48L2k+DQogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImZvbnQtbWVkaXVtIHRleHQtc20iPkZBUTwvc3Bhbj4NCiAgICAgICAgICAgIDwvYT4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vZGlnaXRhbC1hc3NldHRyYWRlLmNvbS9jb250YWN0IiBjbGFzcz0iZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTMgcHgtNCBweS0zIHJvdW5kZWQgdGV4dC1ncmF5LTMwMCBob3Zlcjp0ZXh0LWdvbGQtNTAwIGhvdmVyOmJnLWdvbGQtNTAwLzUgdHJhbnNpdGlvbi1hbGwgZ3JvdXAiPg0KICAgICAgICAgICAgICAgIDxpIGRhdGEtbHVjaWRlPSJtYWlsIiBjbGFzcz0idy00IGgtNCB0ZXh0LWdvbGQtNTAwLzUwIGdyb3VwLWhvdmVyOnRleHQtZ29sZC01MDAgdHJhbnNpdGlvbi1jb2xvcnMiPjwvaT4NCiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZm9udC1tZWRpdW0gdGV4dC1zbSI+Q29udGFjdDwvc3Bhbj4NCiAgICAgICAgICAgIDwvYT4NCiAgICAgICAgICAgICAgICAgICAgPC9uYXY+DQoNCiAgICAgICAgPCEtLSBNb2JpbGUgQWN0aW9ucyAtLT4NCiAgICAgICAgPGRpdiBjbGFzcz0icC02IGJvcmRlci10IGJvcmRlci13aGl0ZS81IHNwYWNlLXktMyI+DQogICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly9kaWdpdGFsLWFzc2V0dHJhZGUuY29tL3VzZXIvbG9naW4iIGNsYXNzPSJidG4tb3V0bGluZSB3LWZ1bGwganVzdGlmeS1jZW50ZXIiPkxvZ2luPC9hPg0KICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vZGlnaXRhbC1hc3NldHRyYWRlLmNvbS91c2VyL3JlZ2lzdGVyIiBjbGFzcz0iYnRuLWdvbGQgdy1mdWxsIGp1c3RpZnktY2VudGVyIj4NCiAgICAgICAgICAgICAgICAgICAgPGkgZGF0YS1sdWNpZGU9InRyZW5kaW5nLXVwIiBjbGFzcz0idy00IGgtNCI+PC9pPg0KICAgICAgICAgICAgICAgICAgICBDcmVhdGUgQWNjb3VudA0KICAgICAgICAgICAgICAgIDwvYT4NCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgPCEtLSBTb2NpYWwgbGlua3MgaW4gbW9iaWxlIG1lbnUgLS0+DQogICAgICAgIDxkaXYgY2xhc3M9InB4LTYgcGItNiBmbGV4IGdhcC0zIj4NCiAgICAgICAgICAgDQogICAgICAgICAgICA8YSBocmVmPSJodHRwczovL3QubWUvREFURE1JTiIgdGFyZ2V0PSJfYmxhbmsiIGNsYXNzPSJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMiB0ZXh0LXhzIHRleHQtZ3JheS00MDAgaG92ZXI6dGV4dC1ibHVlLTQwMCB0cmFuc2l0aW9uLWNvbG9ycyI+DQogICAgICAgICAgICAgICAgPHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0iY3VycmVudENvbG9yIj48cGF0aCBkPSJNMTEuOTQ0IDBBMTIgMTIgMCAwIDAgMCAxMmExMiAxMiAwIDAgMCAxMiAxMiAxMiAxMiAwIDAgMCAxMi0xMkExMiAxMiAwIDAgMCAxMiAwYTEyIDEyIDAgMCAwLS4wNTYgMHptNC45NjIgNy4yMjRjLjEtLjAwMi4zMjEuMDIzLjQ2NS4xNGEuNTA2LjUwNiAwIDAgMSAuMTcxLjMyNWMuMDE2LjA5My4wMzYuMzA2LjAyLjQ3Mi0uMTggMS44OTgtLjk2MiA2LjUwMi0xLjM2IDguNjI3LS4xNjguOS0uNDk5IDEuMjAxLS44MiAxLjIzLS42OTYuMDY1LTEuMjI1LS40Ni0xLjktLjkwMi0xLjA1Ni0uNjkzLTEuNjUzLTEuMTI0LTIuNjc4LTEuOC0xLjE4NS0uNzgtLjQxNy0xLjIxLjI1OC0xLjkxLjE3Ny0uMTg0IDMuMjQ3LTIuOTc3IDMuMzA3LTMuMjMuMDA3LS4wMzIuMDE0LS4xNS0uMDU2LS4yMTJzLS4xNzQtLjA0MS0uMjQ5LS4wMjRjLS4xMDYuMDI0LTEuNzkzIDEuMTQtNS4wNjEgMy4zNDUtLjQ4LjMzLS45MTMuNDktMS4zMDIuNDgtLjQyOC0uMDA4LTEuMjUyLS4yNDEtMS44NjUtLjQ0LS43NTItLjI0NS0xLjM0OS0uMzc0LTEuMjk3LS43ODkuMDI3LS4yMTYuMzI1LS40MzcuODkzLS42NjMgMy40OTgtMS41MjQgNS44My0yLjUyOSA2Ljk5OC0zLjAxNCAzLjMzMi0xLjM4NiA0LjAyNS0xLjYyNyA0LjQ3Ni0xLjYzNXoiLz48L3N2Zz4NCiAgICAgICAgICAgICAgICBUZWxlZ3JhbQ0KICAgICAgICAgICAgPC9hPg0KICAgICAgICA8L2Rpdj4NCiAgICA8L2Rpdj4NCjwvZGl2Pg0KDQo8IS0tID09PT09IFRJQ0tFUiBUQVBFID09PT09IC0tPg0KPGRpdiBjbGFzcz0idGlja2VyLXdyYXAgbXQtMjAiIHN0eWxlPSJtYXJnaW4tdG9wOiA4MHB4OyI+DQogICAgPGRpdiBjbGFzcz0idGlja2VyIj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZsZXggaXRlbXMtY2VudGVyIGdhcC0yIHB4LTYgdGV4dC14cyBmb250LW1vbm8iPg0KICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRleHQtZ3JheS00MDAiPkJUQy9VU0Q8L3NwYW4+DQogICAgICAgICAgICA8c3BhbiBjbGFzcz0idGV4dC1ncmVlbi00MDAgZm9udC1zZW1pYm9sZCI+JDY3LDQyMC41MDwvc3Bhbj4NCiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0ZXh0LWdyZWVuLTQwMCI+4payPC9zcGFuPg0KICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRleHQtZ3JheS03MDAgbXgtMiI+fDwvc3Bhbj4NCiAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTIgcHgtNiB0ZXh0LXhzIGZvbnQtbW9ubyI+DQogICAgICAgICAgICA8c3BhbiBjbGFzcz0idGV4dC1ncmF5LTQwMCI+RVRIL1VTRDwvc3Bhbj4NCiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0ZXh0LWdyZWVuLTQwMCBmb250LXNlbWlib2xkIj4kMyw4NDIuMTA8L3NwYW4+DQogICAgICAgICAgICA8c3BhbiBjbGFzcz0idGV4dC1ncmVlbi00MDAiPuKWsjwvc3Bhbj4NCiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0ZXh0LWdyYXktNzAwIG14LTIiPnw8L3NwYW4+DQogICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZsZXggaXRlbXMtY2VudGVyIGdhcC0yIHB4LTYgdGV4dC14cyBmb250LW1vbm8iPg0KICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRleHQtZ3JheS00MDAiPkdvbGQgWEFVPC9zcGFuPg0KICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRleHQtcmVkLTQwMCBmb250LXNlbWlib2xkIj4kMiwzNDEuODA8L3NwYW4+DQogICAgICAgICAgICA8c3BhbiBjbGFzcz0idGV4dC1yZWQtNDAwIj7ilrw8L3NwYW4+DQogICAgICAgICAgICA8c3BhbiBjbGFzcz0idGV4dC1ncmF5LTcwMCBteC0yIj58PC9zcGFuPg0KICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMiBweC02IHRleHQteHMgZm9udC1tb25vIj4NCiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0ZXh0LWdyYXktNDAwIj5TJmFtcDtQIDUwMDwvc3Bhbj4NCiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0ZXh0LWdyZWVuLTQwMCBmb250LXNlbWlib2xkIj4kNSwyNDguMzI8L3NwYW4+DQogICAgICAgICAgICA8c3BhbiBjbGFzcz0idGV4dC1ncmVlbi00MDAiPuKWsjwvc3Bhbj4NCiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0ZXh0LWdyYXktNzAwIG14LTIiPnw8L3NwYW4+DQogICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZsZXggaXRlbXMtY2VudGVyIGdhcC0yIHB4LTYgdGV4dC14cyBmb250LW1vbm8iPg0KICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRleHQtZ3JheS00MDAiPkJOQi9VU0Q8L3NwYW4+DQogICAgICAgICAgICA8c3BhbiBjbGFzcz0idGV4dC1yZWQtNDAwIGZvbnQtc2VtaWJvbGQiPiQ2MTIuNDU8L3NwYW4+DQogICAgICAgICAgICA8c3BhbiBjbGFzcz0idGV4dC1yZWQtNDAwIj7ilrw8L3NwYW4+DQogICAgICAgICAgICA8c3BhbiBjbGFzcz0idGV4dC1ncmF5LTcwMCBteC0yIj58PC9zcGFuPg0KICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMiBweC02IHRleHQteHMgZm9udC1tb25vIj4NCiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0ZXh0LWdyYXktNDAwIj5TT0wvVVNEPC9zcGFuPg0KICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRleHQtZ3JlZW4tNDAwIGZvbnQtc2VtaWJvbGQiPiQxODkuNzI8L3NwYW4+DQogICAgICAgICAgICA8c3BhbiBjbGFzcz0idGV4dC1ncmVlbi00MDAiPuKWsjwvc3Bhbj4NCiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0ZXh0LWdyYXktNzAwIG14LTIiPnw8L3NwYW4+DQogICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZsZXggaXRlbXMtY2VudGVyIGdhcC0yIHB4LTYgdGV4dC14cyBmb250LW1vbm8iPg0KICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRleHQtZ3JheS00MDAiPkFEQS9VU0Q8L3NwYW4+DQogICAgICAgICAgICA8c3BhbiBjbGFzcz0idGV4dC1yZWQtNDAwIGZvbnQtc2VtaWJvbGQiPiQwLjY4MjE8L3NwYW4+DQogICAgICAgICAgICA8c3BhbiBjbGFzcz0idGV4dC1yZWQtNDAwIj7ilrw8L3NwYW4+DQogICAgICAgICAgICA8c3BhbiBjbGFzcz0idGV4dC1ncmF5LTcwMCBteC0yIj58PC9zcGFuPg0KICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMiBweC02IHRleHQteHMgZm9udC1tb25vIj4NCiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0ZXh0LWdyYXktNDAwIj5ET1QvVVNEPC9zcGFuPg0KICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRleHQtZ3JlZW4tNDAwIGZvbnQtc2VtaWJvbGQiPiQ5LjQzPC9zcGFuPg0KICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRleHQtZ3JlZW4tNDAwIj7ilrI8L3NwYW4+DQogICAgICAgICAgICA8c3BhbiBjbGFzcz0idGV4dC1ncmF5LTcwMCBteC0yIj58PC9zcGFuPg0KICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMiBweC02IHRleHQteHMgZm9udC1tb25vIj4NCiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0ZXh0LWdyYXktNDAwIj5BVkFYL1VTRDwvc3Bhbj4NCiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0ZXh0LWdyZWVuLTQwMCBmb250LXNlbWlib2xkIj4kNDEuMjg8L3NwYW4+DQogICAgICAgICAgICA8c3BhbiBjbGFzcz0idGV4dC1ncmVlbi00MDAiPuKWsjwvc3Bhbj4NCiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0ZXh0LWdyYXktNzAwIG14LTIiPnw8L3NwYW4+DQogICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZsZXggaXRlbXMtY2VudGVyIGdhcC0yIHB4LTYgdGV4dC14cyBmb250LW1vbm8iPg0KICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRleHQtZ3JheS00MDAiPk1BVElDPC9zcGFuPg0KICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRleHQtcmVkLTQwMCBmb250LXNlbWlib2xkIj4kMS4xMjwvc3Bhbj4NCiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0ZXh0LXJlZC00MDAiPuKWvDwvc3Bhbj4NCiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0ZXh0LWdyYXktNzAwIG14LTIiPnw8L3NwYW4+DQogICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZsZXggaXRlbXMtY2VudGVyIGdhcC0yIHB4LTYgdGV4dC14cyBmb250LW1vbm8iPg0KICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRleHQtZ3JheS00MDAiPkJUQy9VU0Q8L3NwYW4+DQogICAgICAgICAgICA8c3BhbiBjbGFzcz0idGV4dC1ncmVlbi00MDAgZm9udC1zZW1pYm9sZCI+JDY3LDQyMC41MDwvc3Bhbj4NCiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0ZXh0LWdyZWVuLTQwMCI+4payPC9zcGFuPg0KICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRleHQtZ3JheS03MDAgbXgtMiI+fDwvc3Bhbj4NCiAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTIgcHgtNiB0ZXh0LXhzIGZvbnQtbW9ubyI+DQogICAgICAgICAgICA8c3BhbiBjbGFzcz0idGV4dC1ncmF5LTQwMCI+RVRIL1VTRDwvc3Bhbj4NCiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0ZXh0LWdyZWVuLTQwMCBmb250LXNlbWlib2xkIj4kMyw4NDIuMTA8L3NwYW4+DQogICAgICAgICAgICA8c3BhbiBjbGFzcz0idGV4dC1ncmVlbi00MDAiPuKWsjwvc3Bhbj4NCiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0ZXh0LWdyYXktNzAwIG14LTIiPnw8L3NwYW4+DQogICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZsZXggaXRlbXMtY2VudGVyIGdhcC0yIHB4LTYgdGV4dC14cyBmb250LW1vbm8iPg0KICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRleHQtZ3JheS00MDAiPkdvbGQgWEFVPC9zcGFuPg0KICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRleHQtcmVkLTQwMCBmb250LXNlbWlib2xkIj4kMiwzNDEuODA8L3NwYW4+DQogICAgICAgICAgICA8c3BhbiBjbGFzcz0idGV4dC1yZWQtNDAwIj7ilrw8L3NwYW4+DQogICAgICAgICAgICA8c3BhbiBjbGFzcz0idGV4dC1ncmF5LTcwMCBteC0yIj58PC9zcGFuPg0KICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMiBweC02IHRleHQteHMgZm9udC1tb25vIj4NCiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0ZXh0LWdyYXktNDAwIj5TJmFtcDtQIDUwMDwvc3Bhbj4NCiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0ZXh0LWdyZWVuLTQwMCBmb250LXNlbWlib2xkIj4kNSwyNDguMzI8L3NwYW4+DQogICAgICAgICAgICA8c3BhbiBjbGFzcz0idGV4dC1ncmVlbi00MDAiPuKWsjwvc3Bhbj4NCiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0ZXh0LWdyYXktNzAwIG14LTIiPnw8L3NwYW4+DQogICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZsZXggaXRlbXMtY2VudGVyIGdhcC0yIHB4LTYgdGV4dC14cyBmb250LW1vbm8iPg0KICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRleHQtZ3JheS00MDAiPkJOQi9VU0Q8L3NwYW4+DQogICAgICAgICAgICA8c3BhbiBjbGFzcz0idGV4dC1yZWQtNDAwIGZvbnQtc2VtaWJvbGQiPiQ2MTIuNDU8L3NwYW4+DQogICAgICAgICAgICA8c3BhbiBjbGFzcz0idGV4dC1yZWQtNDAwIj7ilrw8L3NwYW4+DQogICAgICAgICAgICA8c3BhbiBjbGFzcz0idGV4dC1ncmF5LTcwMCBteC0yIj58PC9zcGFuPg0KICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMiBweC02IHRleHQteHMgZm9udC1tb25vIj4NCiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0ZXh0LWdyYXktNDAwIj5TT0wvVVNEPC9zcGFuPg0KICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRleHQtZ3JlZW4tNDAwIGZvbnQtc2VtaWJvbGQiPiQxODkuNzI8L3NwYW4+DQogICAgICAgICAgICA8c3BhbiBjbGFzcz0idGV4dC1ncmVlbi00MDAiPuKWsjwvc3Bhbj4NCiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0ZXh0LWdyYXktNzAwIG14LTIiPnw8L3NwYW4+DQogICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZsZXggaXRlbXMtY2VudGVyIGdhcC0yIHB4LTYgdGV4dC14cyBmb250LW1vbm8iPg0KICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRleHQtZ3JheS00MDAiPkFEQS9VU0Q8L3NwYW4+DQogICAgICAgICAgICA8c3BhbiBjbGFzcz0idGV4dC1yZWQtNDAwIGZvbnQtc2VtaWJvbGQiPiQwLjY4MjE8L3NwYW4+DQogICAgICAgICAgICA8c3BhbiBjbGFzcz0idGV4dC1yZWQtNDAwIj7ilrw8L3NwYW4+DQogICAgICAgICAgICA8c3BhbiBjbGFzcz0idGV4dC1ncmF5LTcwMCBteC0yIj58PC9zcGFuPg0KICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMiBweC02IHRleHQteHMgZm9udC1tb25vIj4NCiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0ZXh0LWdyYXktNDAwIj5ET1QvVVNEPC9zcGFuPg0KICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRleHQtZ3JlZW4tNDAwIGZvbnQtc2VtaWJvbGQiPiQ5LjQzPC9zcGFuPg0KICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRleHQtZ3JlZW4tNDAwIj7ilrI8L3NwYW4+DQogICAgICAgICAgICA8c3BhbiBjbGFzcz0idGV4dC1ncmF5LTcwMCBteC0yIj58PC9zcGFuPg0KICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMiBweC02IHRleHQteHMgZm9udC1tb25vIj4NCiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0ZXh0LWdyYXktNDAwIj5BVkFYL1VTRDwvc3Bhbj4NCiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0ZXh0LWdyZWVuLTQwMCBmb250LXNlbWlib2xkIj4kNDEuMjg8L3NwYW4+DQogICAgICAgICAgICA8c3BhbiBjbGFzcz0idGV4dC1ncmVlbi00MDAiPuKWsjwvc3Bhbj4NCiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0ZXh0LWdyYXktNzAwIG14LTIiPnw8L3NwYW4+DQogICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZsZXggaXRlbXMtY2VudGVyIGdhcC0yIHB4LTYgdGV4dC14cyBmb250LW1vbm8iPg0KICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRleHQtZ3JheS00MDAiPk1BVElDPC9zcGFuPg0KICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRleHQtcmVkLTQwMCBmb250LXNlbWlib2xkIj4kMS4xMjwvc3Bhbj4NCiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0ZXh0LXJlZC00MDAiPuKWvDwvc3Bhbj4NCiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0ZXh0LWdyYXktNzAwIG14LTIiPnw8L3NwYW4+DQogICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgPC9kaXY+DQo8L2Rpdj4NCg0KPCEtLSA9PT09PSBGTE9BVElORyBTT0NJQUwgQlVUVE9OUyA9PT09PSAtLT4NCjxkaXYgY2xhc3M9ImZsb2F0aW5nLXNvY2lhbCI+DQogICANCiAgICA8YSBocmVmPSJodHRwczovL3QubWUvREFURE1JTiIgdGFyZ2V0PSJfYmxhbmsiIGNsYXNzPSJzb2NpYWwtYnRuIiBzdHlsZT0iYmFja2dyb3VuZDogIzIyOUVEOTsiPg0KICAgICAgICA8c3BhbiBzdHlsZT0iY29sb3I6IHdoaXRlOyBmb250LXNpemU6IDAuN3JlbTsgZm9udC13ZWlnaHQ6IDYwMDsgbGV0dGVyLXNwYWNpbmc6IDAuMDVlbTsiPlRlbGVncmFtPC9zcGFuPg0KICAgICAgICA8c3ZnIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJ3aGl0ZSI+DQogICAgICAgICAgICA8cGF0aCBkPSJNMTEuOTQ0IDBBMTIgMTIgMCAwIDAgMCAxMmExMiAxMiAwIDAgMCAxMiAxMiAxMiAxMiAwIDAgMCAxMi0xMkExMiAxMiAwIDAgMCAxMiAwYTEyIDEyIDAgMCAwLS4wNTYgMHptNC45NjIgNy4yMjRjLjEtLjAwMi4zMjEuMDIzLjQ2NS4xNGEuNTA2LjUwNiAwIDAgMSAuMTcxLjMyNWMuMDE2LjA5My4wMzYuMzA2LjAyLjQ3Mi0uMTggMS44OTgtLjk2MiA2LjUwMi0xLjM2IDguNjI3LS4xNjguOS0uNDk5IDEuMjAxLS44MiAxLjIzLS42OTYuMDY1LTEuMjI1LS40Ni0xLjktLjkwMi0xLjA1Ni0uNjkzLTEuNjUzLTEuMTI0LTIuNjc4LTEuOC0xLjE4NS0uNzgtLjQxNy0xLjIxLjI1OC0xLjkxLjE3Ny0uMTg0IDMuMjQ3LTIuOTc3IDMuMzA3LTMuMjMuMDA3LS4wMzIuMDE0LS4xNS0uMDU2LS4yMTJzLS4xNzQtLjA0MS0uMjQ5LS4wMjRjLS4xMDYuMDI0LTEuNzkzIDEuMTQtNS4wNjEgMy4zNDUtLjQ4LjMzLS45MTMuNDktMS4zMDIuNDgtLjQyOC0uMDA4LTEuMjUyLS4yNDEtMS44NjUtLjQ0LS43NTItLjI0NS0xLjM0OS0uMzc0LTEuMjk3LS43ODkuMDI3LS4yMTYuMzI1LS40MzcuODkzLS42NjMgMy40OTgtMS41MjQgNS44My0yLjUyOSA2Ljk5OC0zLjAxNCAzLjMzMi0xLjM4NiA0LjAyNS0xLjYyNyA0LjQ3Ni0xLjYzNXoiLz4NCiAgICAgICAgPC9zdmc+DQogICAgPC9hPg0KPC9kaXY+DQoNCjwhLS0gPT09PT0gTUFJTiBDT05URU5UID09PT09IC0tPg0KPG1haW4+DQogICAgDQo8IS0tID09PT09IEhFUk8gU0VDVElPTiA9PT09PSAtLT4NCjxzZWN0aW9uIGNsYXNzPSJyZWxhdGl2ZSBtaW4taC1zY3JlZW4gZmxleCBpdGVtcy1jZW50ZXIgb3ZlcmZsb3ctaGlkZGVuIiBzdHlsZT0iYmFja2dyb3VuZDogcmFkaWFsLWdyYWRpZW50KGVsbGlwc2UgYXQgNjAlIDUwJSwgcmdiYSgyMzUsMjA5LDAsMC4wOCkgMCUsIHRyYW5zcGFyZW50IDYwJSksIHJhZGlhbC1ncmFkaWVudChlbGxpcHNlIGF0IDIwJSA4MCUsIHJnYmEoMjM1LDIwOSwwLDAuMDUpIDAlLCB0cmFuc3BhcmVudCA1MCUpOyI+DQoNCiAgICA8IS0tIERlY29yYXRpdmUgb3JicyAtLT4NCiAgICA8ZGl2IGNsYXNzPSJhYnNvbHV0ZSB0b3AtMS80IHJpZ2h0LTEvNCB3LTk2IGgtOTYgcm91bmRlZC1mdWxsIG9wYWNpdHktMTAgYW5pbWF0ZS1mbG9hdCIgc3R5bGU9ImJhY2tncm91bmQ6IHJhZGlhbC1ncmFkaWVudChjaXJjbGUsICNlYmQxMDAsIHRyYW5zcGFyZW50KTsgZmlsdGVyOiBibHVyKDYwcHgpOyI+PC9kaXY+DQogICAgPGRpdiBjbGFzcz0iYWJzb2x1dGUgYm90dG9tLTEvMyBsZWZ0LTEvMyB3LTY0IGgtNjQgcm91bmRlZC1mdWxsIG9wYWNpdHktNSIgc3R5bGU9ImJhY2tncm91bmQ6IHJhZGlhbC1ncmFkaWVudChjaXJjbGUsICNlYmQxMDAsIHRyYW5zcGFyZW50KTsgZmlsdGVyOiBibHVyKDgwcHgpOyBhbmltYXRpb246IGZsb2F0IDhzIGVhc2UtaW4tb3V0IGluZmluaXRlIHJldmVyc2U7Ij48L2Rpdj4NCg0KICAgIDwhLS0gR2VvbWV0cmljIGxpbmVzIC0tPg0KICAgIDxkaXYgY2xhc3M9ImFic29sdXRlIGluc2V0LTAgb3ZlcmZsb3ctaGlkZGVuIG9wYWNpdHktMTAgcG9pbnRlci1ldmVudHMtbm9uZSI+DQogICAgICAgIDxkaXYgY2xhc3M9ImFic29sdXRlIHRvcC0yMCByaWdodC0yMCB3LXB4IGgtNjQiIHN0eWxlPSJiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCB0cmFuc3BhcmVudCwgI2ViZDEwMCwgdHJhbnNwYXJlbnQpOyI+PC9kaXY+DQogICAgICAgIDxkaXYgY2xhc3M9ImFic29sdXRlIGJvdHRvbS0yMCBsZWZ0LTIwIHctNjQgaC1weCIgc3R5bGU9ImJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgdHJhbnNwYXJlbnQsICNlYmQxMDAsIHRyYW5zcGFyZW50KTsiPjwvZGl2Pg0KICAgIDwvZGl2Pg0KDQogICAgPGRpdiBjbGFzcz0ibWF4LXctN3hsIG14LWF1dG8gcHgtNCBzbTpweC02IGxnOnB4LTggcHktMjQgbGc6cHktMzIgdy1mdWxsIj4NCiAgICAgICAgPGRpdiBjbGFzcz0iZ3JpZCBsZzpncmlkLWNvbHMtMiBnYXAtMTYgaXRlbXMtY2VudGVyIj4NCg0KICAgICAgICAgICAgPCEtLSBMZWZ0IENvbnRlbnQgLS0+DQogICAgICAgICAgICA8ZGl2Pg0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tbGFiZWwgbWItNCByZXZlYWwiPg0KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iaW5saW5lLWZsZXggaXRlbXMtY2VudGVyIGdhcC0yIj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ3LTggaC1weCBiZy1nb2xkLTUwMCI+PC9zcGFuPg0KICAgICAgICAgICAgICAgICAgICAgICAgUmVndWxhdGVkIEdsb2JhbCBJbnZlc3RtZW50IFBsYXRmb3JtDQogICAgICAgICAgICAgICAgICAgIDwvc3Bhbj4NCiAgICAgICAgICAgICAgICA8L2Rpdj4NCg0KICAgICAgICAgICAgICAgIDxoMSBjbGFzcz0ic2VjdGlvbi10aXRsZSB0ZXh0LTV4bCBsZzp0ZXh0LTd4bCB0ZXh0LXdoaXRlIG1iLTYgcmV2ZWFsIiBzdHlsZT0idHJhbnNpdGlvbi1kZWxheTogMC4xczsgbGluZS1oZWlnaHQ6IDEuMTsiPg0KICAgICAgICAgICAgICAgICAgICBHcm93IFlvdXIgPHNwYW4gY2xhc3M9ImdvbGQtdGV4dCI+V2VhbHRoPC9zcGFuPjxicj4NCiAgICAgICAgICAgICAgICAgICAgV2l0aCBDb25maWRlbmNlDQogICAgICAgICAgICAgICAgPC9oMT4NCg0KICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJ0ZXh0LWdyYXktNDAwIHRleHQtbGcgbGVhZGluZy1yZWxheGVkIG1iLTggbWF4LXctbGcgcmV2ZWFsIiBzdHlsZT0idHJhbnNpdGlvbi1kZWxheTogMC4yczsiPg0KICAgICAgICAgICAgICAgICAgICBEaWdpdGFsIEFzc2V0IFRyYWRlIGlzIGEgZ2xvYmFsbHkgdHJ1c3RlZCBpbnZlc3RtZW50IHBsYXRmb3JtIHBvd2VyZWQgYnkgYmxvY2tjaGFpbiB0ZWNobm9sb2d5LCBwcm9mZXNzaW9uYWwgYXNzZXQgbWFuYWdlcnMsIGFuZCBhIG11bHRpbGV2ZWwgYWZmaWxpYXRlIGVjb3N5c3RlbSDigJQgZGVzaWduZWQgdG8gbXVsdGlwbHkgeW91ciBjYXBpdGFsIGNvbnNpc3RlbnRseS4NCiAgICAgICAgICAgICAgICA8L3A+DQoNCiAgICAgICAgICAgICAgICA8IS0tIFN0YXRzIFJvdyAtLT4NCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJncmlkIGdyaWQtY29scy0zIGdhcC02IG1iLTEwIHJldmVhbCIgc3R5bGU9InRyYW5zaXRpb24tZGVsYXk6IDAuM3M7Ij4NCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3RhdC1jYXJkIj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRleHQtMnhsIGZvbnQtYm9sZCB0ZXh0LXdoaXRlIGZvbnQtaGVhZGluZyIgZGF0YS10YXJnZXQ9IjkzMTk5OSI+MDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGV4dC14cyB0ZXh0LWdyYXktNDAwIG10LTEiPkFjdGl2ZSBJbnZlc3RvcnM8L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InN0YXQtY2FyZCI+DQogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0ZXh0LTJ4bCBmb250LWJvbGQgdGV4dC13aGl0ZSBmb250LWhlYWRpbmciPiQ8c3BhbiBkYXRhLXRhcmdldD0iMjQwIj4wPC9zcGFuPk0rPC9kaXY+DQogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0ZXh0LXhzIHRleHQtZ3JheS00MDAgbXQtMSI+VG90YWwgUGF5b3V0czwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3RhdC1jYXJkIj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRleHQtMnhsIGZvbnQtYm9sZCB0ZXh0LXdoaXRlIGZvbnQtaGVhZGluZyI+PHNwYW4gZGF0YS10YXJnZXQ9Ijk4Ij4wPC9zcGFuPiU8L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRleHQteHMgdGV4dC1ncmF5LTQwMCBtdC0xIj5TYXRpc2ZhY3Rpb24gUmF0ZTwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICA8L2Rpdj4NCg0KICAgICAgICAgICAgICAgIDwhLS0gQ1RBIEJ1dHRvbnMgLS0+DQogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmxleCBmbGV4LXdyYXAgZ2FwLTQgcmV2ZWFsIiBzdHlsZT0idHJhbnNpdGlvbi1kZWxheTogMC40czsiPg0KICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwczovL2RpZ2l0YWwtYXNzZXR0cmFkZS5jb20vdXNlci9yZWdpc3RlciIgY2xhc3M9ImJ0bi1nb2xkIHRleHQtc20iPg0KICAgICAgICAgICAgICAgICAgICAgICAgPGkgZGF0YS1sdWNpZGU9InRyZW5kaW5nLXVwIiBjbGFzcz0idy00IGgtNCI+PC9pPg0KICAgICAgICAgICAgICAgICAgICAgICAgU3RhcnQgSW52ZXN0aW5nIE5vdw0KICAgICAgICAgICAgICAgICAgICA8L2E+DQogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vZGlnaXRhbC1hc3NldHRyYWRlLmNvbS9wbGFuIiBjbGFzcz0iYnRuLW91dGxpbmUgdGV4dC1zbSI+DQogICAgICAgICAgICAgICAgICAgICAgICA8aSBkYXRhLWx1Y2lkZT0ibGF5ZXJzIiBjbGFzcz0idy00IGgtNCI+PC9pPg0KICAgICAgICAgICAgICAgICAgICAgICAgVmlldyBQbGFucw0KICAgICAgICAgICAgICAgICAgICA8L2E+DQogICAgICAgICAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgICAgICAgICA8IS0tIFRydXN0IGJhZGdlcyAtLT4NCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmbGV4IGZsZXgtd3JhcCBpdGVtcy1jZW50ZXIgZ2FwLTYgbXQtMTAgcHQtOCBib3JkZXItdCBib3JkZXItd2hpdGUvNSByZXZlYWwiIHN0eWxlPSJ0cmFuc2l0aW9uLWRlbGF5OiAwLjVzOyI+DQogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZsZXggaXRlbXMtY2VudGVyIGdhcC0yIHRleHQteHMgdGV4dC1ncmF5LTQwMCI+DQogICAgICAgICAgICAgICAgICAgICAgICA8aSBkYXRhLWx1Y2lkZT0ic2hpZWxkLWNoZWNrIiBjbGFzcz0idy00IGgtNCB0ZXh0LWdvbGQtNTAwIj48L2k+DQogICAgICAgICAgICAgICAgICAgICAgICBGQ0EgUmVndWxhdGVkDQogICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMiB0ZXh0LXhzIHRleHQtZ3JheS00MDAiPg0KICAgICAgICAgICAgICAgICAgICAgICAgPGkgZGF0YS1sdWNpZGU9ImxvY2siIGNsYXNzPSJ3LTQgaC00IHRleHQtZ29sZC01MDAiPjwvaT4NCiAgICAgICAgICAgICAgICAgICAgICAgIDI1Ni1iaXQgU1NMDQogICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMiB0ZXh0LXhzIHRleHQtZ3JheS00MDAiPg0KICAgICAgICAgICAgICAgICAgICAgICAgPGkgZGF0YS1sdWNpZGU9InphcCIgY2xhc3M9InctNCBoLTQgdGV4dC1nb2xkLTUwMCI+PC9pPg0KICAgICAgICAgICAgICAgICAgICAgICAgSW5zdGFudCBXaXRoZHJhd2Fscw0KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTIgdGV4dC14cyB0ZXh0LWdyYXktNDAwIj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxpIGRhdGEtbHVjaWRlPSJnbG9iZSIgY2xhc3M9InctNCBoLTQgdGV4dC1nb2xkLTUwMCI+PC9pPg0KICAgICAgICAgICAgICAgICAgICAgICAgR2xvYmFsIEFjY2Vzcw0KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgIDwvZGl2Pg0KDQogICAgICAgICAgICA8IS0tIFJpZ2h0IOKAlCBJbnZlc3RtZW50IGNhcmQgbW9ja3VwIC0tPg0KICAgICAgICAgICAgPGRpdiBjbGFzcz0icmVsYXRpdmUgcmV2ZWFsLXJpZ2h0IGhpZGRlbiBsZzpibG9jayI+DQogICAgICAgICAgICAgICAgPCEtLSBNYWluIGNhcmQgLS0+DQogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZ2xhc3MtZGFyayByb3VuZGVkLWxnIHAtOCBtYXgtdy1tZCBteC1hdXRvIGdvbGQtZ2xvdyI+DQogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktYmV0d2VlbiBtYi02Ij4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1sYWJlbCB0ZXh0LXhzIj5Qb3J0Zm9saW8gVmFsdWU8L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0ZXh0LTR4bCBmb250LWhlYWRpbmcgZm9udC1ib2xkIHRleHQtd2hpdGUgbXQtMSI+JDEyOCw0NTA8c3BhbiBjbGFzcz0idGV4dC1nb2xkLTUwMCI+Ljwvc3Bhbj44MDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ3LTEyIGgtMTIgYmctZ29sZC01MDAvMTAgcm91bmRlZC1mdWxsIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIGJvcmRlciBib3JkZXItZ29sZC01MDAvMjAiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGRhdGEtbHVjaWRlPSJiYXItY2hhcnQtMyIgY2xhc3M9InctNiBoLTYgdGV4dC1nb2xkLTUwMCI+PC9pPg0KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KDQogICAgICAgICAgICAgICAgICAgIDwhLS0gTWluaSBjaGFydCBiYXJzIC0tPg0KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmbGV4IGl0ZW1zLWVuZCBnYXAtMS41IGgtMjAgbWItNiI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmbGV4LTEgcm91bmRlZC1zbSIgc3R5bGU9ImhlaWdodDogNDAlOyBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gdG9wLCByZ2JhKDIzNSwyMDksMCwwLjgpLCByZ2JhKDIzNSwyMDksMCwwLjMpKTsiPjwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmxleC0xIHJvdW5kZWQtc20iIHN0eWxlPSJoZWlnaHQ6IDU1JTsgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIHRvcCwgcmdiYSgyMzUsMjA5LDAsMC44KSwgcmdiYSgyMzUsMjA5LDAsMC4zKSk7Ij48L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZsZXgtMSByb3VuZGVkLXNtIiBzdHlsZT0iaGVpZ2h0OiAzNSU7IGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byB0b3AsIHJnYmEoMjM1LDIwOSwwLDAuOCksIHJnYmEoMjM1LDIwOSwwLDAuMykpOyI+PC9kaXY+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmbGV4LTEgcm91bmRlZC1zbSIgc3R5bGU9ImhlaWdodDogNzAlOyBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gdG9wLCByZ2JhKDIzNSwyMDksMCwwLjgpLCByZ2JhKDIzNSwyMDksMCwwLjMpKTsiPjwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmxleC0xIHJvdW5kZWQtc20iIHN0eWxlPSJoZWlnaHQ6IDYwJTsgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIHRvcCwgcmdiYSgyMzUsMjA5LDAsMC44KSwgcmdiYSgyMzUsMjA5LDAsMC4zKSk7Ij48L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZsZXgtMSByb3VuZGVkLXNtIiBzdHlsZT0iaGVpZ2h0OiA4MCU7IGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byB0b3AsIHJnYmEoMjM1LDIwOSwwLDAuOCksIHJnYmEoMjM1LDIwOSwwLDAuMykpOyI+PC9kaXY+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmbGV4LTEgcm91bmRlZC1zbSIgc3R5bGU9ImhlaWdodDogNjUlOyBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gdG9wLCByZ2JhKDIzNSwyMDksMCwwLjgpLCByZ2JhKDIzNSwyMDksMCwwLjMpKTsiPjwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmxleC0xIHJvdW5kZWQtc20iIHN0eWxlPSJoZWlnaHQ6IDkwJTsgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIHRvcCwgcmdiYSgyMzUsMjA5LDAsMC44KSwgcmdiYSgyMzUsMjA5LDAsMC4zKSk7Ij48L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZsZXgtMSByb3VuZGVkLXNtIiBzdHlsZT0iaGVpZ2h0OiA3NSU7IGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byB0b3AsIHJnYmEoMjM1LDIwOSwwLDAuOCksIHJnYmEoMjM1LDIwOSwwLDAuMykpOyI+PC9kaXY+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmbGV4LTEgcm91bmRlZC1zbSIgc3R5bGU9ImhlaWdodDogOTUlOyBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gdG9wLCByZ2JhKDIzNSwyMDksMCwwLjgpLCByZ2JhKDIzNSwyMDksMCwwLjMpKTsiPjwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmxleC0xIHJvdW5kZWQtc20iIHN0eWxlPSJoZWlnaHQ6IDg1JTsgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIHRvcCwgcmdiYSgyMzUsMjA5LDAsMC44KSwgcmdiYSgyMzUsMjA5LDAsMC4zKSk7Ij48L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZsZXgtMSByb3VuZGVkLXNtIiBzdHlsZT0iaGVpZ2h0OiAxMDAlOyBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gdG9wLCByZ2JhKDIzNSwyMDksMCwwLjgpLCByZ2JhKDIzNSwyMDksMCwwLjMpKTsiPjwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCg0KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmbGV4IGdhcC0zIG1iLTYiPg0KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmxleC0xIGdsYXNzIHJvdW5kZWQgcC0zIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0ZXh0LXhzIHRleHQtZ3JheS00MDAiPkRhaWx5IFByb2ZpdDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRleHQtbGcgZm9udC1ib2xkIHRleHQtZ3JlZW4tNDAwIG10LTAuNSI+KyQ5NjQuMzg8L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmxleC0xIGdsYXNzIHJvdW5kZWQgcC0zIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0ZXh0LXhzIHRleHQtZ3JheS00MDAiPlJPSTwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRleHQtbGcgZm9udC1ib2xkIHRleHQtZ29sZC00MDAgbXQtMC41Ij4rMC43NSU8L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCg0KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzcGFjZS15LTMiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idGV4dC1zbSB0ZXh0LWdyYXktMzAwIj5CaXRjb2luPC9zcGFuPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0ZXh0LXNtIHRleHQtZ3JheS0zMDAiPiQ0OCwyMDA8L3NwYW4+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRleHQteHMgdGV4dC1ncmVlbi00MDAgZm9udC1tb25vIj4rMy4yJTwvc3Bhbj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idGV4dC1zbSB0ZXh0LWdyYXktMzAwIj5FdGhlcmV1bTwvc3Bhbj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idGV4dC1zbSB0ZXh0LWdyYXktMzAwIj4kMywxMjA8L3NwYW4+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRleHQteHMgdGV4dC1ncmVlbi00MDAgZm9udC1tb25vIj4rMS44JTwvc3Bhbj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idGV4dC1zbSB0ZXh0LWdyYXktMzAwIj5Hb2xkIEluZGV4PC9zcGFuPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0ZXh0LXNtIHRleHQtZ3JheS0zMDAiPiQyLDM0MTwvc3Bhbj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idGV4dC14cyB0ZXh0LXJlZC00MDAgZm9udC1tb25vIj4tMC40JTwvc3Bhbj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICA8L2Rpdj4NCg0KICAgICAgICAgICAgICAgIDwhLS0gRmxvYXRpbmcgYmFkZ2VzIC0tPg0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImFic29sdXRlIC10b3AtNCAtcmlnaHQtNCBnbGFzcyByb3VuZGVkIHB4LTMgcHktMiB0ZXh0LXhzIj4NCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTIiPg0KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idy0yIGgtMiByb3VuZGVkLWZ1bGwgYmctZ3JlZW4tNDAwIGFuaW1hdGUtcHVsc2UiPjwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRleHQtZ3JheS0zMDAiPkxpdmUgRWFybmluZ3MgQWN0aXZlPC9zcGFuPg0KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJhYnNvbHV0ZSAtYm90dG9tLTQgLWxlZnQtNCBnbGFzcyByb3VuZGVkIHB4LTMgcHktMiB0ZXh0LXhzIj4NCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTIiPg0KICAgICAgICAgICAgICAgICAgICAgICAgPGkgZGF0YS1sdWNpZGU9InRyZW5kaW5nLXVwIiBjbGFzcz0idy0zIGgtMyB0ZXh0LWdvbGQtNTAwIj48L2k+DQogICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idGV4dC1ncmF5LTMwMCI+KyQxMiw0ODAgdGhpcyBtb250aDwvc3Bhbj4NCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgPC9kaXY+DQogICAgPC9kaXY+DQoNCiAgICA8IS0tIFNjcm9sbCBpbmRpY2F0b3IgLS0+DQogICAgPGRpdiBjbGFzcz0iYWJzb2x1dGUgYm90dG9tLTggbGVmdC0xLzIgLXRyYW5zbGF0ZS14LTEvMiBmbGV4IGZsZXgtY29sIGl0ZW1zLWNlbnRlciBnYXAtMiB0ZXh0LWdyYXktNTAwIHRleHQteHMiPg0KICAgICAgICA8c3BhbiBjbGFzcz0idHJhY2tpbmctd2lkZXN0IHVwcGVyY2FzZSIgc3R5bGU9ImZvbnQtc2l6ZTogMC42cmVtOyI+U2Nyb2xsPC9zcGFuPg0KICAgICAgICA8ZGl2IGNsYXNzPSJ3LXB4IGgtOCBiZy1ncmFkaWVudC10by1iIGZyb20tZ29sZC01MDAvNTAgdG8tdHJhbnNwYXJlbnQiPjwvZGl2Pg0KICAgIDwvZGl2Pg0KPC9zZWN0aW9uPg0KDQoNCjwhLS0gPT09PT0gV0hZIENIT09TRSBVUyA9PT09PSAtLT4NCjxzZWN0aW9uIGNsYXNzPSJweS0yNCByZWxhdGl2ZSI+DQogICAgPGRpdiBjbGFzcz0ibWF4LXctN3hsIG14LWF1dG8gcHgtNCBzbTpweC02IGxnOnB4LTgiPg0KICAgICAgICA8ZGl2IGNsYXNzPSJ0ZXh0LWNlbnRlciBtYi0xNiI+DQogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWxhYmVsIG1iLTMgcmV2ZWFsIj5XaHkgRGlnaXRhbCBBc3NldCBUcmFkZTwvZGl2Pg0KICAgICAgICAgICAgPGgyIGNsYXNzPSJzZWN0aW9uLXRpdGxlIHRleHQtNHhsIGxnOnRleHQtNXhsIHRleHQtd2hpdGUgbWItNCByZXZlYWwiPlRoZSBCZW5lZml0cyBvZiBJbnZlc3RpbmcgPGJyIGNsYXNzPSJoaWRkZW4gbGc6YmxvY2siPldpdGggPHNwYW4gY2xhc3M9ImdvbGQtdGV4dCI+VXM8L3NwYW4+PC9oMj4NCiAgICAgICAgICAgIDxwIGNsYXNzPSJ0ZXh0LWdyYXktNDAwIG1heC13LTJ4bCBteC1hdXRvIHRleHQtYmFzZSByZXZlYWwiPldlIGNvbWJpbmUgY3V0dGluZy1lZGdlIGJsb2NrY2hhaW4gaW5mcmFzdHJ1Y3R1cmUgd2l0aCBwcm9mZXNzaW9uYWwgdHJhZGluZyBleHBlcnRpc2UgdG8gZGVsaXZlciBjb25zaXN0ZW50LCB0cmFuc3BhcmVudCByZXR1cm5zIGZvciBpbnZlc3RvcnMgd29ybGR3aWRlLjwvcD4NCiAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgPGRpdiBjbGFzcz0iZ3JpZCBtZDpncmlkLWNvbHMtMiBsZzpncmlkLWNvbHMtNCBnYXAtNiI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkLWludmVzdG1lbnQgcC03IHJldmVhbCIgc3R5bGU9InRyYW5zaXRpb24tZGVsYXk6IDBzOyI+DQogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idy0xMiBoLTEyIGJnLWdvbGQtNTAwLzEwIGJvcmRlciBib3JkZXItZ29sZC01MDAvMjAgcm91bmRlZCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBtYi01Ij4NCiAgICAgICAgICAgICAgICAgICAgPGkgZGF0YS1sdWNpZGU9InBpZS1jaGFydCIgY2xhc3M9InctNSBoLTUgdGV4dC1nb2xkLTUwMCI+PC9pPg0KICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgIDxoMyBjbGFzcz0idGV4dC13aGl0ZSBmb250LXNlbWlib2xkIHRleHQtYmFzZSBtYi0zIj5Bc3NldCBNYW5hZ2VtZW50PC9oMz4NCiAgICAgICAgICAgICAgICA8cCBjbGFzcz0idGV4dC1ncmF5LTQwMCB0ZXh0LXNtIGxlYWRpbmctcmVsYXhlZCI+RWFybiB1cCB0byAwLjc1JSBob3VybHkgaW4gcGFzc2l2ZSBtb2RlIGJ5IGludmVzdGluZyBmdW5kcywgbWFuYWdlZCBieSBleHBlcmllbmNlZCBwb3J0Zm9saW8gYW5hbHlzdHMgYWNyb3NzIGRpdmVyc2lmaWVkIG1hcmtldHMgaW5jbHVkaW5nIGNyeXB0bywgZm9yZXgsIGFuZCBjb21tb2RpdGllcy48L3A+DQogICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmQtaW52ZXN0bWVudCBwLTcgcmV2ZWFsIiBzdHlsZT0idHJhbnNpdGlvbi1kZWxheTogMC4xczsiPg0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InctMTIgaC0xMiBiZy1nb2xkLTUwMC8xMCBib3JkZXIgYm9yZGVyLWdvbGQtNTAwLzIwIHJvdW5kZWQgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgbWItNSI+DQogICAgICAgICAgICAgICAgICAgIDxpIGRhdGEtbHVjaWRlPSJleWUiIGNsYXNzPSJ3LTUgaC01IHRleHQtZ29sZC01MDAiPjwvaT4NCiAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICA8aDMgY2xhc3M9InRleHQtd2hpdGUgZm9udC1zZW1pYm9sZCB0ZXh0LWJhc2UgbWItMyI+TWF4aW11bSBUcmFuc3BhcmVuY3k8L2gzPg0KICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJ0ZXh0LWdyYXktNDAwIHRleHQtc20gbGVhZGluZy1yZWxheGVkIj5XZSBwcm92aWRlIHdlZWtseSByZXBvcnRzIG9uIGFsbCB0cmFuc2FjdGlvbnMgYW5kIHRyYWRlIGZvcmVjYXN0cy4gT3VyIG9wZW4gbGVkZ2VyIGVuc3VyZXMgZXZlcnkgaW52ZXN0bWVudCBtb3ZlIGlzIHRyYWNlYWJsZSBhbmQgdmVyaWZpYWJsZSBvbiB0aGUgYmxvY2tjaGFpbi48L3A+DQogICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmQtaW52ZXN0bWVudCBwLTcgcmV2ZWFsIiBzdHlsZT0idHJhbnNpdGlvbi1kZWxheTogMC4yczsiPg0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InctMTIgaC0xMiBiZy1nb2xkLTUwMC8xMCBib3JkZXIgYm9yZGVyLWdvbGQtNTAwLzIwIHJvdW5kZWQgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgbWItNSI+DQogICAgICAgICAgICAgICAgICAgIDxpIGRhdGEtbHVjaWRlPSJ6YXAiIGNsYXNzPSJ3LTUgaC01IHRleHQtZ29sZC01MDAiPjwvaT4NCiAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICA8aDMgY2xhc3M9InRleHQtd2hpdGUgZm9udC1zZW1pYm9sZCB0ZXh0LWJhc2UgbWItMyI+U2ltcGxlICZhbXA7IEFmZm9yZGFibGU8L2gzPg0KICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJ0ZXh0LWdyYXktNDAwIHRleHQtc20gbGVhZGluZy1yZWxheGVkIj5TdGFydCB3aXRoIGFzIGxpdHRsZSBhcyAkMjAuIE5vIHRyYWRpbmcga25vd2xlZGdlIHJlcXVpcmVkLiBPdXIgaW50dWl0aXZlIHBsYXRmb3JtIGhhbmRsZXMgZXZlcnl0aGluZyDigJQgZnJvbSBkZXBvc2l0IHRvIGF1dG9tYXRlZCBwcm9maXQgZGlzdHJpYnV0aW9uLjwvcD4NCiAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZC1pbnZlc3RtZW50IHAtNyByZXZlYWwiIHN0eWxlPSJ0cmFuc2l0aW9uLWRlbGF5OiAwLjNzOyI+DQogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idy0xMiBoLTEyIGJnLWdvbGQtNTAwLzEwIGJvcmRlciBib3JkZXItZ29sZC01MDAvMjAgcm91bmRlZCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBtYi01Ij4NCiAgICAgICAgICAgICAgICAgICAgPGkgZGF0YS1sdWNpZGU9InVzZXJzIiBjbGFzcz0idy01IGgtNSB0ZXh0LWdvbGQtNTAwIj48L2k+DQogICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJ0ZXh0LXdoaXRlIGZvbnQtc2VtaWJvbGQgdGV4dC1iYXNlIG1iLTMiPkFmZmlsaWF0ZSBQcm9ncmFtPC9oMz4NCiAgICAgICAgICAgICAgICA8cCBjbGFzcz0idGV4dC1ncmF5LTQwMCB0ZXh0LXNtIGxlYWRpbmctcmVsYXhlZCI+QnVpbGQgeW91ciBpbnZlc3RtZW50IG5ldHdvcmsgYW5kIGVhcm4gbXVsdGktbGV2ZWwgY29tbWlzc2lvbnMgb2YgNSUsIDIlLCBhbmQgMSUgb24gcmVmZXJyYWwgZGVwb3NpdHMuIE91ciByZXByZXNlbnRhdGl2ZSBwcm9ncmFtIHJld2FyZHMgdG9wIHBlcmZvcm1lcnMgd2l0aCBhZGRpdGlvbmFsIGJvbnVzZXMuPC9wPg0KICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgIDwvZGl2Pg0KPC9zZWN0aW9uPg0KDQoNCjwhLS0gPT09PT0gRkVBVFVSRUQgUExBTlMgPT09PT0gLS0+DQoNCjxzZWN0aW9uIGNsYXNzPSJweS0yNCByZWxhdGl2ZSIgc3R5bGU9ImJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxODBkZWcsIHRyYW5zcGFyZW50LCByZ2JhKDIzNSwyMDksMCwwLjAyKSwgdHJhbnNwYXJlbnQpOyI+DQogICAgPGRpdiBjbGFzcz0ibWF4LXctN3hsIG14LWF1dG8gcHgtNCBzbTpweC02IGxnOnB4LTgiPg0KICAgICAgICA8ZGl2IGNsYXNzPSJmbGV4IGZsZXgtY29sIGxnOmZsZXgtcm93IGl0ZW1zLXN0YXJ0IGxnOml0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW4gZ2FwLTYgbWItMTYiPg0KICAgICAgICAgICAgPGRpdj4NCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWxhYmVsIG1iLTMgcmV2ZWFsIj5JbnZlc3RtZW50IFBsYW5zPC9kaXY+DQogICAgICAgICAgICAgICAgPGgyIGNsYXNzPSJzZWN0aW9uLXRpdGxlIHRleHQtNHhsIGxnOnRleHQtNXhsIHRleHQtd2hpdGUgcmV2ZWFsIj5DaG9vc2UgWW91ciA8c3BhbiBjbGFzcz0iZ29sZC10ZXh0Ij5Hcm93dGg8L3NwYW4+IFBsYW48L2gyPg0KICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICA8YSBocmVmPSJodHRwczovL2RpZ2l0YWwtYXNzZXR0cmFkZS5jb20vcGxhbiIgY2xhc3M9ImJ0bi1vdXRsaW5lIHRleHQtc20gcmV2ZWFsLXJpZ2h0Ij4NCiAgICAgICAgICAgICAgICBWaWV3IEFsbCBQbGFucw0KICAgICAgICAgICAgICAgIDxpIGRhdGEtbHVjaWRlPSJhcnJvdy1yaWdodCIgY2xhc3M9InctNCBoLTQiPjwvaT4NCiAgICAgICAgICAgIDwvYT4NCiAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgPGRpdiBjbGFzcz0iZ3JpZCBtZDpncmlkLWNvbHMtMiBsZzpncmlkLWNvbHMtMyBnYXAtNiI+DQogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkLWludmVzdG1lbnQgcGxhbi1jYXJkIHAtOCByZXZlYWwgIiBzdHlsZT0idHJhbnNpdGlvbi1kZWxheTogMHM7Ij4NCiAgICAgICAgICAgICAgICA8IS0tIFBsYW4gSGVhZGVyIC0tPg0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1iLTYiPg0KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWxhYmVsIHRleHQteHMgbWItMiI+MyBEYXlzPC9kaXY+DQogICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz0idGV4dC13aGl0ZSBmb250LWhlYWRpbmcgZm9udC1ib2xkIHRleHQtMnhsIj5TaWx2ZXI8L2gzPg0KICAgICAgICAgICAgICAgIDwvZGl2Pg0KDQogICAgICAgICAgICAgICAgPCEtLSBJbnRlcmVzdCBSYXRlIC0tPg0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1iLTYgcGItNiBib3JkZXItYiBib3JkZXItd2hpdGUvNSI+DQogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZsZXggaXRlbXMtZW5kIGdhcC0yIj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0ZXh0LTV4bCBmb250LWhlYWRpbmcgZm9udC1ib2xkIGdvbGQtdGV4dCI+MTAuMDAlPC9zcGFuPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0ZXh0LWdyYXktNDAwIHRleHQtc20gbWItMiI+LyAzIERheXM8L3NwYW4+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgIDwvZGl2Pg0KDQogICAgICAgICAgICAgICAgPCEtLSBQbGFuIERldGFpbHMgLS0+DQogICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJzcGFjZS15LTMgbWItOCI+DQogICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0iZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTMgdGV4dC1zbSI+DQogICAgICAgICAgICAgICAgICAgICAgICA8aSBkYXRhLWx1Y2lkZT0iY2hlY2stY2lyY2xlIiBjbGFzcz0idy00IGgtNCB0ZXh0LWdvbGQtNTAwIHNocmluay0wIj48L2k+DQogICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idGV4dC1ncmF5LTMwMCI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbnZlc3QgJDEwMC4wMCDigJMgJDEsMDAwLjAwDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPg0KICAgICAgICAgICAgICAgICAgICA8L2xpPg0KICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9ImZsZXggaXRlbXMtY2VudGVyIGdhcC0zIHRleHQtc20iPg0KICAgICAgICAgICAgICAgICAgICAgICAgPGkgZGF0YS1sdWNpZGU9ImNoZWNrLWNpcmNsZSIgY2xhc3M9InctNCBoLTQgdGV4dC1nb2xkLTUwMCBzaHJpbmstMCI+PC9pPg0KICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRleHQtZ3JheS0zMDAiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRHVyYXRpb246IDEgMyBEYXlzDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPg0KICAgICAgICAgICAgICAgICAgICA8L2xpPg0KICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9ImZsZXggaXRlbXMtY2VudGVyIGdhcC0zIHRleHQtc20iPg0KICAgICAgICAgICAgICAgICAgICAgICAgPGkgZGF0YS1sdWNpZGU9ImNoZWNrLWNpcmNsZSIgY2xhc3M9InctNCBoLTQgdGV4dC1nb2xkLTUwMCBzaHJpbmstMCI+PC9pPg0KICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRleHQtZ3JheS0zMDAiPkluc3RhbnQgUHJvZml0IERpc3RyaWJ1dGlvbjwvc3Bhbj4NCiAgICAgICAgICAgICAgICAgICAgPC9saT4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9ImZsZXggaXRlbXMtY2VudGVyIGdhcC0zIHRleHQtc20iPg0KICAgICAgICAgICAgICAgICAgICAgICAgPGkgZGF0YS1sdWNpZGU9ImNoZWNrLWNpcmNsZSIgY2xhc3M9InctNCBoLTQgdGV4dC1nb2xkLTUwMCBzaHJpbmstMCI+PC9pPg0KICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRleHQtZ3JheS0zMDAiPkNhcGl0YWwgUmV0dXJuZWQgYXQgRW5kPC9zcGFuPg0KICAgICAgICAgICAgICAgICAgICA8L2xpPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0iZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTMgdGV4dC1zbSI+DQogICAgICAgICAgICAgICAgICAgICAgICA8aSBkYXRhLWx1Y2lkZT0iY2hlY2stY2lyY2xlIiBjbGFzcz0idy00IGgtNCB0ZXh0LWdvbGQtNTAwIHNocmluay0wIj48L2k+DQogICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idGV4dC1ncmF5LTMwMCI+MjQvNyBEYXNoYm9hcmQgQWNjZXNzPC9zcGFuPg0KICAgICAgICAgICAgICAgICAgICA8L2xpPg0KICAgICAgICAgICAgICAgIDwvdWw+DQoNCiAgICAgICAgICAgICAgICA8IS0tIFRvdGFsIFJldHVybiBCYWRnZSAtLT4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZ2xhc3Mgcm91bmRlZCBwLTMgbWItNiB0ZXh0LWNlbnRlciI+DQogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0ZXh0LXhzIHRleHQtZ3JheS00MDAiPlRvdGFsIFJldHVybjogPC9zcGFuPg0KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idGV4dC1nb2xkLTQwMCBmb250LXNlbWlib2xkIHRleHQtc20iPg0KICAgICAgICAgICAgICAgICAgICAgICAgMTAuMDAlDQogICAgICAgICAgICAgICAgICAgICAgICAgKyBDYXBpdGFsICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPg0KICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vZGlnaXRhbC1hc3NldHRyYWRlLmNvbS91c2VyL3JlZ2lzdGVyIiBjbGFzcz0iYnRuLW91dGxpbmUgdy1mdWxsIGp1c3RpZnktY2VudGVyIj4NCiAgICAgICAgICAgICAgICAgICAgSW52ZXN0IE5vdw0KICAgICAgICAgICAgICAgIDwvYT4NCiAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZC1pbnZlc3RtZW50IHBsYW4tY2FyZCBwLTggcmV2ZWFsIGZlYXR1cmVkIiBzdHlsZT0idHJhbnNpdGlvbi1kZWxheTogMC4xczsiPg0KICAgICAgICAgICAgICAgIDwhLS0gUGxhbiBIZWFkZXIgLS0+DQogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibWItNiI+DQogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tbGFiZWwgdGV4dC14cyBtYi0yIj5EYWlseTwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICA8aDMgY2xhc3M9InRleHQtd2hpdGUgZm9udC1oZWFkaW5nIGZvbnQtYm9sZCB0ZXh0LTJ4bCI+R29sZDwvaDM+DQogICAgICAgICAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgICAgICAgICA8IS0tIEludGVyZXN0IFJhdGUgLS0+DQogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibWItNiBwYi02IGJvcmRlci1iIGJvcmRlci13aGl0ZS81Ij4NCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmxleCBpdGVtcy1lbmQgZ2FwLTIiPg0KICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRleHQtNXhsIGZvbnQtaGVhZGluZyBmb250LWJvbGQgZ29sZC10ZXh0Ij4zMC4wMCU8L3NwYW4+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRleHQtZ3JheS00MDAgdGV4dC1zbSBtYi0yIj4vIERhaWx5PC9zcGFuPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICA8L2Rpdj4NCg0KICAgICAgICAgICAgICAgIDwhLS0gUGxhbiBEZXRhaWxzIC0tPg0KICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0ic3BhY2UteS0zIG1iLTgiPg0KICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9ImZsZXggaXRlbXMtY2VudGVyIGdhcC0zIHRleHQtc20iPg0KICAgICAgICAgICAgICAgICAgICAgICAgPGkgZGF0YS1sdWNpZGU9ImNoZWNrLWNpcmNsZSIgY2xhc3M9InctNCBoLTQgdGV4dC1nb2xkLTUwMCBzaHJpbmstMCI+PC9pPg0KICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRleHQtZ3JheS0zMDAiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSW52ZXN0ICQxLDAwMC4wMCDigJMgJDEwLDAwMC4wMA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj4NCiAgICAgICAgICAgICAgICAgICAgPC9saT4NCiAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMyB0ZXh0LXNtIj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxpIGRhdGEtbHVjaWRlPSJjaGVjay1jaXJjbGUiIGNsYXNzPSJ3LTQgaC00IHRleHQtZ29sZC01MDAgc2hyaW5rLTAiPjwvaT4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0ZXh0LWdyYXktMzAwIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIER1cmF0aW9uOiA2IERhaWx5DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPg0KICAgICAgICAgICAgICAgICAgICA8L2xpPg0KICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9ImZsZXggaXRlbXMtY2VudGVyIGdhcC0zIHRleHQtc20iPg0KICAgICAgICAgICAgICAgICAgICAgICAgPGkgZGF0YS1sdWNpZGU9ImNoZWNrLWNpcmNsZSIgY2xhc3M9InctNCBoLTQgdGV4dC1nb2xkLTUwMCBzaHJpbmstMCI+PC9pPg0KICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRleHQtZ3JheS0zMDAiPkluc3RhbnQgUHJvZml0IERpc3RyaWJ1dGlvbjwvc3Bhbj4NCiAgICAgICAgICAgICAgICAgICAgPC9saT4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9ImZsZXggaXRlbXMtY2VudGVyIGdhcC0zIHRleHQtc20iPg0KICAgICAgICAgICAgICAgICAgICAgICAgPGkgZGF0YS1sdWNpZGU9ImNoZWNrLWNpcmNsZSIgY2xhc3M9InctNCBoLTQgdGV4dC1nb2xkLTUwMCBzaHJpbmstMCI+PC9pPg0KICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRleHQtZ3JheS0zMDAiPkNhcGl0YWwgUmV0dXJuZWQgYXQgRW5kPC9zcGFuPg0KICAgICAgICAgICAgICAgICAgICA8L2xpPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0iZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTMgdGV4dC1zbSI+DQogICAgICAgICAgICAgICAgICAgICAgICA8aSBkYXRhLWx1Y2lkZT0iY2hlY2stY2lyY2xlIiBjbGFzcz0idy00IGgtNCB0ZXh0LWdvbGQtNTAwIHNocmluay0wIj48L2k+DQogICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idGV4dC1ncmF5LTMwMCI+MjQvNyBEYXNoYm9hcmQgQWNjZXNzPC9zcGFuPg0KICAgICAgICAgICAgICAgICAgICA8L2xpPg0KICAgICAgICAgICAgICAgIDwvdWw+DQoNCiAgICAgICAgICAgICAgICA8IS0tIFRvdGFsIFJldHVybiBCYWRnZSAtLT4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZ2xhc3Mgcm91bmRlZCBwLTMgbWItNiB0ZXh0LWNlbnRlciI+DQogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0ZXh0LXhzIHRleHQtZ3JheS00MDAiPlRvdGFsIFJldHVybjogPC9zcGFuPg0KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idGV4dC1nb2xkLTQwMCBmb250LXNlbWlib2xkIHRleHQtc20iPg0KICAgICAgICAgICAgICAgICAgICAgICAgMTgwLjAwJQ0KICAgICAgICAgICAgICAgICAgICAgICAgICsgQ2FwaXRhbCAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj4NCiAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwczovL2RpZ2l0YWwtYXNzZXR0cmFkZS5jb20vdXNlci9yZWdpc3RlciIgY2xhc3M9ImJ0bi1nb2xkIHctZnVsbCBqdXN0aWZ5LWNlbnRlciI+DQogICAgICAgICAgICAgICAgICAgIEludmVzdCBOb3cNCiAgICAgICAgICAgICAgICA8L2E+DQogICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmQtaW52ZXN0bWVudCBwbGFuLWNhcmQgcC04IHJldmVhbCAiIHN0eWxlPSJ0cmFuc2l0aW9uLWRlbGF5OiAwLjJzOyI+DQogICAgICAgICAgICAgICAgPCEtLSBQbGFuIEhlYWRlciAtLT4NCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJtYi02Ij4NCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1sYWJlbCB0ZXh0LXhzIG1iLTIiPkRhaWx5PC9kaXY+DQogICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz0idGV4dC13aGl0ZSBmb250LWhlYWRpbmcgZm9udC1ib2xkIHRleHQtMnhsIj5EaWFtb25kPC9oMz4NCiAgICAgICAgICAgICAgICA8L2Rpdj4NCg0KICAgICAgICAgICAgICAgIDwhLS0gSW50ZXJlc3QgUmF0ZSAtLT4NCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJtYi02IHBiLTYgYm9yZGVyLWIgYm9yZGVyLXdoaXRlLzUiPg0KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmbGV4IGl0ZW1zLWVuZCBnYXAtMiI+DQogICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idGV4dC01eGwgZm9udC1oZWFkaW5nIGZvbnQtYm9sZCBnb2xkLXRleHQiPjYwLjAwJTwvc3Bhbj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idGV4dC1ncmF5LTQwMCB0ZXh0LXNtIG1iLTIiPi8gRGFpbHk8L3NwYW4+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgIDwvZGl2Pg0KDQogICAgICAgICAgICAgICAgPCEtLSBQbGFuIERldGFpbHMgLS0+DQogICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJzcGFjZS15LTMgbWItOCI+DQogICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0iZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTMgdGV4dC1zbSI+DQogICAgICAgICAgICAgICAgICAgICAgICA8aSBkYXRhLWx1Y2lkZT0iY2hlY2stY2lyY2xlIiBjbGFzcz0idy00IGgtNCB0ZXh0LWdvbGQtNTAwIHNocmluay0wIj48L2k+DQogICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idGV4dC1ncmF5LTMwMCI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbnZlc3QgJDEwLDAwMC4wMCDigJMgJDUwLDAwMC4wMA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj4NCiAgICAgICAgICAgICAgICAgICAgPC9saT4NCiAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMyB0ZXh0LXNtIj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxpIGRhdGEtbHVjaWRlPSJjaGVjay1jaXJjbGUiIGNsYXNzPSJ3LTQgaC00IHRleHQtZ29sZC01MDAgc2hyaW5rLTAiPjwvaT4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0ZXh0LWdyYXktMzAwIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIER1cmF0aW9uOiAxNCBEYWlseQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj4NCiAgICAgICAgICAgICAgICAgICAgPC9saT4NCiAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMyB0ZXh0LXNtIj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxpIGRhdGEtbHVjaWRlPSJjaGVjay1jaXJjbGUiIGNsYXNzPSJ3LTQgaC00IHRleHQtZ29sZC01MDAgc2hyaW5rLTAiPjwvaT4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0ZXh0LWdyYXktMzAwIj5JbnN0YW50IFByb2ZpdCBEaXN0cmlidXRpb248L3NwYW4+DQogICAgICAgICAgICAgICAgICAgIDwvbGk+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMyB0ZXh0LXNtIj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxpIGRhdGEtbHVjaWRlPSJjaGVjay1jaXJjbGUiIGNsYXNzPSJ3LTQgaC00IHRleHQtZ29sZC01MDAgc2hyaW5rLTAiPjwvaT4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0ZXh0LWdyYXktMzAwIj5DYXBpdGFsIFJldHVybmVkIGF0IEVuZDwvc3Bhbj4NCiAgICAgICAgICAgICAgICAgICAgPC9saT4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9ImZsZXggaXRlbXMtY2VudGVyIGdhcC0zIHRleHQtc20iPg0KICAgICAgICAgICAgICAgICAgICAgICAgPGkgZGF0YS1sdWNpZGU9ImNoZWNrLWNpcmNsZSIgY2xhc3M9InctNCBoLTQgdGV4dC1nb2xkLTUwMCBzaHJpbmstMCI+PC9pPg0KICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRleHQtZ3JheS0zMDAiPjI0LzcgRGFzaGJvYXJkIEFjY2Vzczwvc3Bhbj4NCiAgICAgICAgICAgICAgICAgICAgPC9saT4NCiAgICAgICAgICAgICAgICA8L3VsPg0KDQogICAgICAgICAgICAgICAgPCEtLSBUb3RhbCBSZXR1cm4gQmFkZ2UgLS0+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImdsYXNzIHJvdW5kZWQgcC0zIG1iLTYgdGV4dC1jZW50ZXIiPg0KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idGV4dC14cyB0ZXh0LWdyYXktNDAwIj5Ub3RhbCBSZXR1cm46IDwvc3Bhbj4NCiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRleHQtZ29sZC00MDAgZm9udC1zZW1pYm9sZCB0ZXh0LXNtIj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDg0MC4wMCUNCiAgICAgICAgICAgICAgICAgICAgICAgICArIENhcGl0YWwgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+DQogICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly9kaWdpdGFsLWFzc2V0dHJhZGUuY29tL3VzZXIvcmVnaXN0ZXIiIGNsYXNzPSJidG4tb3V0bGluZSB3LWZ1bGwganVzdGlmeS1jZW50ZXIiPg0KICAgICAgICAgICAgICAgICAgICBJbnZlc3QgTm93DQogICAgICAgICAgICAgICAgPC9hPg0KICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkLWludmVzdG1lbnQgcGxhbi1jYXJkIHAtOCByZXZlYWwgIiBzdHlsZT0idHJhbnNpdGlvbi1kZWxheTogMC4zczsiPg0KICAgICAgICAgICAgICAgIDwhLS0gUGxhbiBIZWFkZXIgLS0+DQogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibWItNiI+DQogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tbGFiZWwgdGV4dC14cyBtYi0yIj5EYWlseTwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICA8aDMgY2xhc3M9InRleHQtd2hpdGUgZm9udC1oZWFkaW5nIGZvbnQtYm9sZCB0ZXh0LTJ4bCI+UGxhdGludW08L2gzPg0KICAgICAgICAgICAgICAgIDwvZGl2Pg0KDQogICAgICAgICAgICAgICAgPCEtLSBJbnRlcmVzdCBSYXRlIC0tPg0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1iLTYgcGItNiBib3JkZXItYiBib3JkZXItd2hpdGUvNSI+DQogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZsZXggaXRlbXMtZW5kIGdhcC0yIj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0ZXh0LTV4bCBmb250LWhlYWRpbmcgZm9udC1ib2xkIGdvbGQtdGV4dCI+MTUwLjAwJTwvc3Bhbj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idGV4dC1ncmF5LTQwMCB0ZXh0LXNtIG1iLTIiPi8gRGFpbHk8L3NwYW4+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgIDwvZGl2Pg0KDQogICAgICAgICAgICAgICAgPCEtLSBQbGFuIERldGFpbHMgLS0+DQogICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJzcGFjZS15LTMgbWItOCI+DQogICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0iZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTMgdGV4dC1zbSI+DQogICAgICAgICAgICAgICAgICAgICAgICA8aSBkYXRhLWx1Y2lkZT0iY2hlY2stY2lyY2xlIiBjbGFzcz0idy00IGgtNCB0ZXh0LWdvbGQtNTAwIHNocmluay0wIj48L2k+DQogICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idGV4dC1ncmF5LTMwMCI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbnZlc3QgJDUwLDAwMC4wMCDigJMgJDEwMCwwMDAuMDANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+DQogICAgICAgICAgICAgICAgICAgIDwvbGk+DQogICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0iZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTMgdGV4dC1zbSI+DQogICAgICAgICAgICAgICAgICAgICAgICA8aSBkYXRhLWx1Y2lkZT0iY2hlY2stY2lyY2xlIiBjbGFzcz0idy00IGgtNCB0ZXh0LWdvbGQtNTAwIHNocmluay0wIj48L2k+DQogICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idGV4dC1ncmF5LTMwMCI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEdXJhdGlvbjogMzEgRGFpbHkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+DQogICAgICAgICAgICAgICAgICAgIDwvbGk+DQogICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0iZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTMgdGV4dC1zbSI+DQogICAgICAgICAgICAgICAgICAgICAgICA8aSBkYXRhLWx1Y2lkZT0iY2hlY2stY2lyY2xlIiBjbGFzcz0idy00IGgtNCB0ZXh0LWdvbGQtNTAwIHNocmluay0wIj48L2k+DQogICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idGV4dC1ncmF5LTMwMCI+SW5zdGFudCBQcm9maXQgRGlzdHJpYnV0aW9uPC9zcGFuPg0KICAgICAgICAgICAgICAgICAgICA8L2xpPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0iZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTMgdGV4dC1zbSI+DQogICAgICAgICAgICAgICAgICAgICAgICA8aSBkYXRhLWx1Y2lkZT0iY2hlY2stY2lyY2xlIiBjbGFzcz0idy00IGgtNCB0ZXh0LWdvbGQtNTAwIHNocmluay0wIj48L2k+DQogICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idGV4dC1ncmF5LTMwMCI+Q2FwaXRhbCBSZXR1cm5lZCBhdCBFbmQ8L3NwYW4+DQogICAgICAgICAgICAgICAgICAgIDwvbGk+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMyB0ZXh0LXNtIj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxpIGRhdGEtbHVjaWRlPSJjaGVjay1jaXJjbGUiIGNsYXNzPSJ3LTQgaC00IHRleHQtZ29sZC01MDAgc2hyaW5rLTAiPjwvaT4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0ZXh0LWdyYXktMzAwIj4yNC83IERhc2hib2FyZCBBY2Nlc3M8L3NwYW4+DQogICAgICAgICAgICAgICAgICAgIDwvbGk+DQogICAgICAgICAgICAgICAgPC91bD4NCg0KICAgICAgICAgICAgICAgIDwhLS0gVG90YWwgUmV0dXJuIEJhZGdlIC0tPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJnbGFzcyByb3VuZGVkIHAtMyBtYi02IHRleHQtY2VudGVyIj4NCiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRleHQteHMgdGV4dC1ncmF5LTQwMCI+VG90YWwgUmV0dXJuOiA8L3NwYW4+DQogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0ZXh0LWdvbGQtNDAwIGZvbnQtc2VtaWJvbGQgdGV4dC1zbSI+DQogICAgICAgICAgICAgICAgICAgICAgICA0LDY1MC4wMCUNCiAgICAgICAgICAgICAgICAgICAgICAgICArIENhcGl0YWwgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+DQogICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly9kaWdpdGFsLWFzc2V0dHJhZGUuY29tL3VzZXIvcmVnaXN0ZXIiIGNsYXNzPSJidG4tb3V0bGluZSB3LWZ1bGwganVzdGlmeS1jZW50ZXIiPg0KICAgICAgICAgICAgICAgICAgICBJbnZlc3QgTm93DQogICAgICAgICAgICAgICAgPC9hPg0KICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgIDwvZGl2Pg0KPC9zZWN0aW9uPg0KDQoNCjwhLS0gPT09PT0gSE9XIElUIFdPUktTID09PT09IC0tPg0KPHNlY3Rpb24gY2xhc3M9InB5LTI0Ij4NCiAgICA8ZGl2IGNsYXNzPSJtYXgtdy03eGwgbXgtYXV0byBweC00IHNtOnB4LTYgbGc6cHgtOCI+DQogICAgICAgIDxkaXYgY2xhc3M9InRleHQtY2VudGVyIG1iLTE2Ij4NCiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tbGFiZWwgbWItMyByZXZlYWwiPlNpbXBsZSBQcm9jZXNzPC9kaXY+DQogICAgICAgICAgICA8aDIgY2xhc3M9InNlY3Rpb24tdGl0bGUgdGV4dC00eGwgbGc6dGV4dC01eGwgdGV4dC13aGl0ZSBtYi00IHJldmVhbCI+SG93IEl0IDxzcGFuIGNsYXNzPSJnb2xkLXRleHQiPldvcmtzPC9zcGFuPjwvaDI+DQogICAgICAgICAgICA8cCBjbGFzcz0idGV4dC1ncmF5LTQwMCBtYXgtdy14bCBteC1hdXRvIHJldmVhbCI+Rm91ciBzdHJhaWdodGZvcndhcmQgc3RlcHMgZnJvbSByZWdpc3RyYXRpb24gdG8gY29uc2lzdGVudCBlYXJuaW5ncy4gTm8gZXhwZXJpZW5jZSBuZWVkZWQuPC9wPg0KICAgICAgICA8L2Rpdj4NCg0KICAgICAgICA8ZGl2IGNsYXNzPSJyZWxhdGl2ZSI+DQogICAgICAgICAgICA8IS0tIENvbm5lY3RpbmcgbGluZSAtLT4NCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImhpZGRlbiBsZzpibG9jayBhYnNvbHV0ZSB0b3AtMTAgbGVmdC0wIHJpZ2h0LTAgaC1weCIgc3R5bGU9ImJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgdHJhbnNwYXJlbnQsIHJnYmEoMjM1LDIwOSwwLDAuMiksIHJnYmEoMjM1LDIwOSwwLDAuNCksIHJnYmEoMjM1LDIwOSwwLDAuMiksIHRyYW5zcGFyZW50KTsgdG9wOiA0MHB4OyBsZWZ0OiAxMi41JTsgcmlnaHQ6IDEyLjUlOyI+PC9kaXY+DQoNCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImdyaWQgbWQ6Z3JpZC1jb2xzLTIgbGc6Z3JpZC1jb2xzLTQgZ2FwLTgiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGV4dC1jZW50ZXIgcmV2ZWFsIiBzdHlsZT0idHJhbnNpdGlvbi1kZWxheTogMHM7Ij4NCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icmVsYXRpdmUgaW5saW5lLWZsZXggbWItNiI+DQogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ3LTIwIGgtMjAgcm91bmRlZC1mdWxsIGJnLWRhcmstNzAwIGJvcmRlciBib3JkZXItZ29sZC01MDAvMjAgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgZ29sZC1nbG93LXNtIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBkYXRhLWx1Y2lkZT0idXNlci1wbHVzIiBjbGFzcz0idy03IGgtNyB0ZXh0LWdvbGQtNTAwIj48L2k+DQogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJhYnNvbHV0ZSAtdG9wLTEgLXJpZ2h0LTEgdy02IGgtNiByb3VuZGVkLWZ1bGwgYmctZ29sZC01MDAgdGV4dC1kYXJrLTkwMCB0ZXh0LXhzIGZvbnQtYm9sZCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBmb250LW1vbm8iPjE8L3NwYW4+DQogICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICA8aDMgY2xhc3M9InRleHQtd2hpdGUgZm9udC1zZW1pYm9sZCB0ZXh0LWJhc2UgbWItMyI+UmVnaXN0ZXIgRnJlZTwvaDM+DQogICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJ0ZXh0LWdyYXktNDAwIHRleHQtc20gbGVhZGluZy1yZWxheGVkIj5DcmVhdGUgeW91ciBhY2NvdW50IGluIHVuZGVyIDIgbWludXRlcy4gRW50ZXIgeW91ciBlbWFpbCwgc2V0IGEgcGFzc3dvcmQsIGFuZCB5b3UmIzAzOTtyZSByZWFkeS4gTm8gY3JlZGl0IGNhcmQgcmVxdWlyZWQgZm9yIHJlZ2lzdHJhdGlvbi48L3A+DQogICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRleHQtY2VudGVyIHJldmVhbCIgc3R5bGU9InRyYW5zaXRpb24tZGVsYXk6IDAuMTVzOyI+DQogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJlbGF0aXZlIGlubGluZS1mbGV4IG1iLTYiPg0KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idy0yMCBoLTIwIHJvdW5kZWQtZnVsbCBiZy1kYXJrLTcwMCBib3JkZXIgYm9yZGVyLWdvbGQtNTAwLzIwIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIGdvbGQtZ2xvdy1zbSI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgZGF0YS1sdWNpZGU9ImNyZWRpdC1jYXJkIiBjbGFzcz0idy03IGgtNyB0ZXh0LWdvbGQtNTAwIj48L2k+DQogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJhYnNvbHV0ZSAtdG9wLTEgLXJpZ2h0LTEgdy02IGgtNiByb3VuZGVkLWZ1bGwgYmctZ29sZC01MDAgdGV4dC1kYXJrLTkwMCB0ZXh0LXhzIGZvbnQtYm9sZCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBmb250LW1vbm8iPjI8L3NwYW4+DQogICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICA8aDMgY2xhc3M9InRleHQtd2hpdGUgZm9udC1zZW1pYm9sZCB0ZXh0LWJhc2UgbWItMyI+TWFrZSBhIERlcG9zaXQ8L2gzPg0KICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0idGV4dC1ncmF5LTQwMCB0ZXh0LXNtIGxlYWRpbmctcmVsYXhlZCI+RnVuZCB5b3VyIGFjY291bnQgd2l0aCBjcnlwdG8gb3IgYmFuayB0cmFuc2ZlciBzdGFydGluZyBmcm9tIGp1c3QgJDIwLiBPdXIgc2VjdXJlIHBheW1lbnQgcHJvY2Vzc2luZyBlbnN1cmVzIGluc3RhbnQgY3JlZGl0aW5nLjwvcD4NCiAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGV4dC1jZW50ZXIgcmV2ZWFsIiBzdHlsZT0idHJhbnNpdGlvbi1kZWxheTogMC4zczsiPg0KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyZWxhdGl2ZSBpbmxpbmUtZmxleCBtYi02Ij4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InctMjAgaC0yMCByb3VuZGVkLWZ1bGwgYmctZGFyay03MDAgYm9yZGVyIGJvcmRlci1nb2xkLTUwMC8yMCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBnb2xkLWdsb3ctc20iPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGRhdGEtbHVjaWRlPSJ0cmVuZGluZy11cCIgY2xhc3M9InctNyBoLTcgdGV4dC1nb2xkLTUwMCI+PC9pPg0KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iYWJzb2x1dGUgLXRvcC0xIC1yaWdodC0xIHctNiBoLTYgcm91bmRlZC1mdWxsIGJnLWdvbGQtNTAwIHRleHQtZGFyay05MDAgdGV4dC14cyBmb250LWJvbGQgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgZm9udC1tb25vIj4zPC9zcGFuPg0KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJ0ZXh0LXdoaXRlIGZvbnQtc2VtaWJvbGQgdGV4dC1iYXNlIG1iLTMiPlByb2Zlc3Npb25hbCBUcmFkaW5nPC9oMz4NCiAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9InRleHQtZ3JheS00MDAgdGV4dC1zbSBsZWFkaW5nLXJlbGF4ZWQiPk91ciBleHBlcnQgdHJhZGVycyBkZXBsb3kgeW91ciBmdW5kcyBhY3Jvc3MgZGl2ZXJzaWZpZWQgbWFya2V0cyDigJQgY3J5cHRvLCBjb21tb2RpdGllcywgYW5kIGZvcmV4IOKAlCB3aXRoIHJlYWwtdGltZSBibG9ja2NoYWluIHZlcmlmaWNhdGlvbi48L3A+DQogICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRleHQtY2VudGVyIHJldmVhbCIgc3R5bGU9InRyYW5zaXRpb24tZGVsYXk6IDAuNDVzOyI+DQogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJlbGF0aXZlIGlubGluZS1mbGV4IG1iLTYiPg0KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idy0yMCBoLTIwIHJvdW5kZWQtZnVsbCBiZy1kYXJrLTcwMCBib3JkZXIgYm9yZGVyLWdvbGQtNTAwLzIwIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIGdvbGQtZ2xvdy1zbSI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgZGF0YS1sdWNpZGU9ImRvbGxhci1zaWduIiBjbGFzcz0idy03IGgtNyB0ZXh0LWdvbGQtNTAwIj48L2k+DQogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJhYnNvbHV0ZSAtdG9wLTEgLXJpZ2h0LTEgdy02IGgtNiByb3VuZGVkLWZ1bGwgYmctZ29sZC01MDAgdGV4dC1kYXJrLTkwMCB0ZXh0LXhzIGZvbnQtYm9sZCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBmb250LW1vbm8iPjQ8L3NwYW4+DQogICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICA8aDMgY2xhc3M9InRleHQtd2hpdGUgZm9udC1zZW1pYm9sZCB0ZXh0LWJhc2UgbWItMyI+Q29sbGVjdCBQcm9maXRzPC9oMz4NCiAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9InRleHQtZ3JheS00MDAgdGV4dC1zbSBsZWFkaW5nLXJlbGF4ZWQiPlByb2ZpdHMgYXJlIGRpc3RyaWJ1dGVkIGF1dG9tYXRpY2FsbHkgcGVyIHlvdXIgY2hvc2VuIHBsYW4gY3ljbGUuIFdpdGhkcmF3IGFueXRpbWUgdG8geW91ciBwcmVmZXJyZWQgcGF5bWVudCBtZXRob2Qgd2l0aCB6ZXJvIGhpZGRlbiBmZWVzLjwvcD4NCiAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgPC9kaXY+DQogICAgPC9kaXY+DQo8L3NlY3Rpb24+DQoNCg0KPCEtLSA9PT09PSBSRUZFUlJBTCBQUk9HUkFNID09PT09IC0tPg0KPHNlY3Rpb24gY2xhc3M9InB5LTI0IiBzdHlsZT0iYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgcmdiYSgyMzUsMjA5LDAsMC4wMykgMCUsIHRyYW5zcGFyZW50IDUwJSwgcmdiYSgyMzUsMjA5LDAsMC4wMikgMTAwJSk7Ij4NCiAgICA8ZGl2IGNsYXNzPSJtYXgtdy03eGwgbXgtYXV0byBweC00IHNtOnB4LTYgbGc6cHgtOCI+DQogICAgICAgIDxkaXYgY2xhc3M9ImdyaWQgbGc6Z3JpZC1jb2xzLTIgZ2FwLTE2IGl0ZW1zLWNlbnRlciI+DQogICAgICAgICAgICA8IS0tIExlZnQgLS0+DQogICAgICAgICAgICA8ZGl2Pg0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tbGFiZWwgbWItMyByZXZlYWwtbGVmdCI+RWFybiBNb3JlIFRvZ2V0aGVyPC9kaXY+DQogICAgICAgICAgICAgICAgPGgyIGNsYXNzPSJzZWN0aW9uLXRpdGxlIHRleHQtNHhsIGxnOnRleHQtNXhsIHRleHQtd2hpdGUgbWItNCByZXZlYWwtbGVmdCI+TXVsdGlsZXZlbCA8c3BhbiBjbGFzcz0iZ29sZC10ZXh0Ij5SZWZlcnJhbDwvc3Bhbj4gUHJvZ3JhbTwvaDI+DQogICAgICAgICAgICAgICAgPHAgY2xhc3M9InRleHQtZ3JheS00MDAgdGV4dC1iYXNlIGxlYWRpbmctcmVsYXhlZCBtYi04IHJldmVhbC1sZWZ0Ij5TaGFyZSBEaWdpdGFsIEFzc2V0IFRyYWRlIHdpdGggZnJpZW5kcywgY29sbGVhZ3VlcywgYW5kIGZhbWlseS4gRXZlcnkgc3VjY2Vzc2Z1bCByZWZlcnJhbCBlYXJucyB5b3UgYSBwZXJjZW50YWdlIG9mIHRoZWlyIGRlcG9zaXRzIGFuZCBkYWlseSBlYXJuaW5ncyDigJQgYnVpbGRpbmcgYSBjb21wb3VuZGluZyBwYXNzaXZlIGluY29tZSBzdHJlYW0uPC9wPg0KDQogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3BhY2UteS00IG1iLTgiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZC1pbnZlc3RtZW50IHAtNSBmbGV4IGl0ZW1zLWNlbnRlciBnYXAtNSByZXZlYWwtbGVmdCIgc3R5bGU9InRyYW5zaXRpb24tZGVsYXk6IDBzOyI+DQogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0ZXh0LTN4bCBmb250LWhlYWRpbmcgZm9udC1ib2xkIGdvbGQtdGV4dCB3LTIwIHNocmluay0wIj41JTwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0ZXh0LXdoaXRlIGZvbnQtc2VtaWJvbGQgdGV4dC1zbSI+MXN0IExldmVsPC9kaXY+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGV4dC1ncmF5LTQwMCB0ZXh0LXhzIG10LTEiPkRpcmVjdCByZWZlcnJhbCBjb21taXNzaW9uIG9uIGV2ZXJ5IGRlcG9zaXQ8L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkLWludmVzdG1lbnQgcC01IGZsZXggaXRlbXMtY2VudGVyIGdhcC01IHJldmVhbC1sZWZ0IiBzdHlsZT0idHJhbnNpdGlvbi1kZWxheTogMC4xczsiPg0KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGV4dC0zeGwgZm9udC1oZWFkaW5nIGZvbnQtYm9sZCBnb2xkLXRleHQgdy0yMCBzaHJpbmstMCI+MiU8L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGV4dC13aGl0ZSBmb250LXNlbWlib2xkIHRleHQtc20iPjJuZCBMZXZlbDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRleHQtZ3JheS00MDAgdGV4dC14cyBtdC0xIj5Db21taXNzaW9uIGZyb20geW91ciByZWZlcnJhbHMmIzAzOTsgcmVmZXJyYWxzPC9kaXY+DQogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZC1pbnZlc3RtZW50IHAtNSBmbGV4IGl0ZW1zLWNlbnRlciBnYXAtNSByZXZlYWwtbGVmdCIgc3R5bGU9InRyYW5zaXRpb24tZGVsYXk6IDAuMnM7Ij4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRleHQtM3hsIGZvbnQtaGVhZGluZyBmb250LWJvbGQgZ29sZC10ZXh0IHctMjAgc2hyaW5rLTAiPjElPC9kaXY+DQogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRleHQtd2hpdGUgZm9udC1zZW1pYm9sZCB0ZXh0LXNtIj4zcmQgTGV2ZWw8L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0ZXh0LWdyYXktNDAwIHRleHQteHMgbXQtMSI+RGVlcCBuZXR3b3JrIHJld2FyZHMgdGhhdCBjb21wb3VuZDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwczovL2RpZ2l0YWwtYXNzZXR0cmFkZS5jb20vdXNlci9yZWdpc3RlciIgY2xhc3M9ImJ0bi1nb2xkIHJldmVhbC1sZWZ0Ij4NCiAgICAgICAgICAgICAgICAgICAgPGkgZGF0YS1sdWNpZGU9InNoYXJlLTIiIGNsYXNzPSJ3LTQgaC00Ij48L2k+DQogICAgICAgICAgICAgICAgICAgIEpvaW4gUmVmZXJyYWwgUHJvZ3JhbQ0KICAgICAgICAgICAgICAgIDwvYT4NCiAgICAgICAgICAgIDwvZGl2Pg0KDQogICAgICAgICAgICA8IS0tIFJpZ2h0IOKAlCBSZWZlcnJhbCB2aXN1YWxpemF0aW9uIC0tPg0KICAgICAgICAgICAgPGRpdiBjbGFzcz0icmV2ZWFsLXJpZ2h0Ij4NCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJnbGFzcy1kYXJrIHJvdW5kZWQtbGcgcC04Ij4NCiAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJ0ZXh0LXdoaXRlIGZvbnQtc2VtaWJvbGQgbWItNiBmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMiI+DQogICAgICAgICAgICAgICAgICAgICAgICA8aSBkYXRhLWx1Y2lkZT0iZ2l0LWJyYW5jaCIgY2xhc3M9InctNSBoLTUgdGV4dC1nb2xkLTUwMCI+PC9pPg0KICAgICAgICAgICAgICAgICAgICAgICAgRWFybmluZ3MgU2ltdWxhdGlvbg0KICAgICAgICAgICAgICAgICAgICA8L2gzPg0KDQogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1iLTYgcC00IGJnLWdvbGQtNTAwLzUgYm9yZGVyIGJvcmRlci1nb2xkLTUwMC8yMCByb3VuZGVkIj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRleHQteHMgdGV4dC1ncmF5LTQwMCBtYi0xIj5JZiB5b3UgaW52aXRlIDEwIHBlb3BsZSB3aG8gZWFjaCBpbnZlc3QgJDEsMDAwOjwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGV4dC0yeGwgZm9udC1oZWFkaW5nIGZvbnQtYm9sZCB0ZXh0LXdoaXRlIj4kNTAwIDxzcGFuIGNsYXNzPSJ0ZXh0LWdvbGQtNTAwIj5pbW1lZGlhdGVseTwvc3Bhbj48L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRleHQteHMgdGV4dC1ncmF5LTQwMCBtdC0xIj5QbHVzIG9uZ29pbmcgZGFpbHkgZWFybmluZ3MgZnJvbSB0aGVpciBhY3RpdmUgcGxhbnM8L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3BhY2UteS0zIHRleHQtc20iPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuIHB5LTIgYm9yZGVyLWIgYm9yZGVyLXdoaXRlLzUiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0ZXh0LWdyYXktNDAwIj5MZXZlbCAxICgxMCByZWZzIMOXICQxMDAwIMOXIDUlKTwvc3Bhbj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idGV4dC13aGl0ZSI+JDUwMDwvc3Bhbj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuIHB5LTIgYm9yZGVyLWIgYm9yZGVyLXdoaXRlLzUiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0ZXh0LWdyYXktNDAwIj5MZXZlbCAyICg1MCByZWZzIMOXICQxMDAwIMOXIDIlKTwvc3Bhbj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idGV4dC13aGl0ZSI+JDEsMDAwPC9zcGFuPg0KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW4gcHktMiBib3JkZXItYiBib3JkZXItd2hpdGUvNSI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRleHQtZ3JheS00MDAiPkxldmVsIDMgKDIwMCByZWZzIMOXICQxMDAwIMOXIDElKTwvc3Bhbj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idGV4dC13aGl0ZSI+JDIsMDAwPC9zcGFuPg0KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW4gcHktMiBib3JkZXItYiBib3JkZXItd2hpdGUvNSI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRleHQtZ29sZC00MDAgZm9udC1zZW1pYm9sZCI+VG90YWwgTmV0d29yayBFYXJuaW5nczwvc3Bhbj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idGV4dC1nb2xkLTQwMCBmb250LWJvbGQiPiQzLDUwMDwvc3Bhbj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCg0KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJtdC02IHRleHQteHMgdGV4dC1ncmF5LTUwMCI+KiBTaW11bGF0aW9uIGJhc2VkIG9uIGV4YW1wbGUgZGVwb3NpdHMuIEFjdHVhbCBlYXJuaW5ncyB2YXJ5IGJhc2VkIG9uIHBsYW4gc2VsZWN0aW9uIGFuZCByZWZlcnJhbCBhY3Rpdml0eS48L2Rpdj4NCiAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICA8L2Rpdj4NCiAgICA8L2Rpdj4NCjwvc2VjdGlvbj4NCg0KDQo8IS0tID09PT09IExJVkUgU1RBVElTVElDUyA9PT09PSAtLT4NCjxzZWN0aW9uIGNsYXNzPSJweS0xNiBib3JkZXIteSBib3JkZXItd2hpdGUvNSI+DQogICAgPGRpdiBjbGFzcz0ibWF4LXctN3hsIG14LWF1dG8gcHgtNCBzbTpweC02IGxnOnB4LTgiPg0KICAgICAgICA8ZGl2IGNsYXNzPSJncmlkIGdyaWQtY29scy0yIGxnOmdyaWQtY29scy01IGdhcC04IHRleHQtY2VudGVyIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJldmVhbCIgc3R5bGU9InRyYW5zaXRpb24tZGVsYXk6IDBzOyI+DQogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idy0xMCBoLTEwIGJnLWdvbGQtNTAwLzEwIGJvcmRlciBib3JkZXItZ29sZC01MDAvMjAgcm91bmRlZCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBteC1hdXRvIG1iLTMiPg0KICAgICAgICAgICAgICAgICAgICA8aSBkYXRhLWx1Y2lkZT0iY2FsZW5kYXIiIGNsYXNzPSJ3LTUgaC01IHRleHQtZ29sZC01MDAiPjwvaT4NCiAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0ZXh0LTJ4bCBsZzp0ZXh0LTN4bCBmb250LWhlYWRpbmcgZm9udC1ib2xkIHRleHQtd2hpdGUgbWItMSI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMsOTc5DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0ZXh0LXhzIHRleHQtZ3JheS00MDAgdXBwZXJjYXNlIHRyYWNraW5nLXdpZGVyIj5PbmxpbmUgRGF5czwvZGl2Pg0KICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyZXZlYWwiIHN0eWxlPSJ0cmFuc2l0aW9uLWRlbGF5OiAwLjFzOyI+DQogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idy0xMCBoLTEwIGJnLWdvbGQtNTAwLzEwIGJvcmRlciBib3JkZXItZ29sZC01MDAvMjAgcm91bmRlZCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBteC1hdXRvIG1iLTMiPg0KICAgICAgICAgICAgICAgICAgICA8aSBkYXRhLWx1Y2lkZT0idXNlcnMiIGNsYXNzPSJ3LTUgaC01IHRleHQtZ29sZC01MDAiPjwvaT4NCiAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0ZXh0LTJ4bCBsZzp0ZXh0LTN4bCBmb250LWhlYWRpbmcgZm9udC1ib2xkIHRleHQtd2hpdGUgbWItMSI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDkyNzFNDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0ZXh0LXhzIHRleHQtZ3JheS00MDAgdXBwZXJjYXNlIHRyYWNraW5nLXdpZGVyIj5Ub3RhbCBBY2NvdW50czwvZGl2Pg0KICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyZXZlYWwiIHN0eWxlPSJ0cmFuc2l0aW9uLWRlbGF5OiAwLjJzOyI+DQogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idy0xMCBoLTEwIGJnLWdvbGQtNTAwLzEwIGJvcmRlciBib3JkZXItZ29sZC01MDAvMjAgcm91bmRlZCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBteC1hdXRvIG1iLTMiPg0KICAgICAgICAgICAgICAgICAgICA8aSBkYXRhLWx1Y2lkZT0iYXJyb3ctZG93bi1jaXJjbGUiIGNsYXNzPSJ3LTUgaC01IHRleHQtZ29sZC01MDAiPjwvaT4NCiAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0ZXh0LTJ4bCBsZzp0ZXh0LTN4bCBmb250LWhlYWRpbmcgZm9udC1ib2xkIHRleHQtd2hpdGUgbWItMSI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQyNDBNKw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGV4dC14cyB0ZXh0LWdyYXktNDAwIHVwcGVyY2FzZSB0cmFja2luZy13aWRlciI+VG90YWwgRGVwb3NpdGVkPC9kaXY+DQogICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJldmVhbCIgc3R5bGU9InRyYW5zaXRpb24tZGVsYXk6IDAuM3M7Ij4NCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ3LTEwIGgtMTAgYmctZ29sZC01MDAvMTAgYm9yZGVyIGJvcmRlci1nb2xkLTUwMC8yMCByb3VuZGVkIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIG14LWF1dG8gbWItMyI+DQogICAgICAgICAgICAgICAgICAgIDxpIGRhdGEtbHVjaWRlPSJhcnJvdy11cC1jaXJjbGUiIGNsYXNzPSJ3LTUgaC01IHRleHQtZ29sZC01MDAiPjwvaT4NCiAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0ZXh0LTJ4bCBsZzp0ZXh0LTN4bCBmb250LWhlYWRpbmcgZm9udC1ib2xkIHRleHQtd2hpdGUgbWItMSI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQxODVNKw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGV4dC14cyB0ZXh0LWdyYXktNDAwIHVwcGVyY2FzZSB0cmFja2luZy13aWRlciI+VG90YWwgV2l0aGRyYXduPC9kaXY+DQogICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJldmVhbCIgc3R5bGU9InRyYW5zaXRpb24tZGVsYXk6IDAuNHM7Ij4NCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ3LTEwIGgtMTAgYmctZ29sZC01MDAvMTAgYm9yZGVyIGJvcmRlci1nb2xkLTUwMC8yMCByb3VuZGVkIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIG14LWF1dG8gbWItMyI+DQogICAgICAgICAgICAgICAgICAgIDxpIGRhdGEtbHVjaWRlPSJnbG9iZSIgY2xhc3M9InctNSBoLTUgdGV4dC1nb2xkLTUwMCI+PC9pPg0KICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRleHQtMnhsIGxnOnRleHQtM3hsIGZvbnQtaGVhZGluZyBmb250LWJvbGQgdGV4dC13aGl0ZSBtYi0xIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTIwDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0ZXh0LXhzIHRleHQtZ3JheS00MDAgdXBwZXJjYXNlIHRyYWNraW5nLXdpZGVyIj5Db3VudHJpZXMgU2VydmVkPC9kaXY+DQogICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQogICAgPC9kaXY+DQo8L3NlY3Rpb24+DQoNCg0KPCEtLSA9PT09PSBDRVJUSUZJQ0FUSU9OUyA9PT09PSAtLT4NCjxzZWN0aW9uIGNsYXNzPSJweS0yNCI+DQogICAgPGRpdiBjbGFzcz0ibWF4LXctN3hsIG14LWF1dG8gcHgtNCBzbTpweC02IGxnOnB4LTgiPg0KICAgICAgICA8ZGl2IGNsYXNzPSJ0ZXh0LWNlbnRlciBtYi0xNiI+DQogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWxhYmVsIG1iLTMgcmV2ZWFsIj5Db21wbGlhbmNlICYgVHJ1c3Q8L2Rpdj4NCiAgICAgICAgICAgIDxoMiBjbGFzcz0ic2VjdGlvbi10aXRsZSB0ZXh0LTR4bCB0ZXh0LXdoaXRlIG1iLTQgcmV2ZWFsIj5Db21wYW55IDxzcGFuIGNsYXNzPSJnb2xkLXRleHQiPkNlcnRpZmljYXRpb25zPC9zcGFuPjwvaDI+DQogICAgICAgICAgICA8cCBjbGFzcz0idGV4dC1ncmF5LTQwMCBtYXgtdy0yeGwgbXgtYXV0byByZXZlYWwiPkRpZ2l0YWwgQXNzZXQgVHJhZGUgaXMgYSBmdWxseSByZWdpc3RlcmVkIGFuZCByZWd1bGF0ZWQgZW50aXR5LiBPdXIgY2VydGlmaWNhdGlvbnMgdmFsaWRhdGUgb3VyIGNvbW1pdG1lbnQgdG8gdHJhbnNwYXJlbmN5LCBpbnZlc3RvciBwcm90ZWN0aW9uLCBhbmQgZmluYW5jaWFsIGludGVncml0eS48L3A+DQogICAgICAgIDwvZGl2Pg0KDQogICAgICAgIDxkaXYgY2xhc3M9ImdyaWQgbWQ6Z3JpZC1jb2xzLTMgZ2FwLTggbWItMTIiPg0KICAgICAgICAgICAgPCEtLSBDZXJ0aWZpY2F0ZSBDYXJkIC0tPg0KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZC1pbnZlc3RtZW50IHAtNiB0ZXh0LWNlbnRlciByZXZlYWwiPg0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InctMjAgaC0yMCBteC1hdXRvIG1iLTQgcm91bmRlZCBiZy1nb2xkLTUwMC81IGJvcmRlciBib3JkZXItZ29sZC01MDAvMjAgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIiPg0KICAgICAgICAgICAgICAgICAgICA8aSBkYXRhLWx1Y2lkZT0iYXdhcmQiIGNsYXNzPSJ3LTEwIGgtMTAgdGV4dC1nb2xkLTUwMCI+PC9pPg0KICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgIDxoMyBjbGFzcz0idGV4dC13aGl0ZSBmb250LXNlbWlib2xkIG1iLTIiPkZDQSBSZWdpc3RyYXRpb248L2gzPg0KICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJ0ZXh0LWdyYXktNDAwIHRleHQtc20gbWItNCI+UmVnaXN0ZXJlZCB3aXRoIHRoZSBGaW5hbmNpYWwgQ29uZHVjdCBBdXRob3JpdHkuIENvbXBhbnkgTm8uIDExNTA2NTYxLiBGdWxseSBjb21wbGlhbnQgd2l0aCBVSyBmaW5hbmNpYWwgcmVndWxhdGlvbnMgYW5kIGludmVzdG9yIHByb3RlY3Rpb24gbGF3cy48L3A+DQogICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly9maW5kLWFuZC11cGRhdGUuY29tcGFueS1pbmZvcm1hdGlvbi5zZXJ2aWNlLmdvdi51ay9jb21wYW55LzExNTA2NTYxIiB0YXJnZXQ9Il9ibGFuayIgY2xhc3M9ImJ0bi1vdXRsaW5lIHRleHQteHMgcHktMiBweC00Ij4NCiAgICAgICAgICAgICAgICAgICAgPGkgZGF0YS1sdWNpZGU9ImV4dGVybmFsLWxpbmsiIGNsYXNzPSJ3LTMgaC0zIj48L2k+DQogICAgICAgICAgICAgICAgICAgIFZlcmlmeSBSZWdpc3RyYXRpb24NCiAgICAgICAgICAgICAgICA8L2E+DQogICAgICAgICAgICA8L2Rpdj4NCg0KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZC1pbnZlc3RtZW50IHAtNiB0ZXh0LWNlbnRlciByZXZlYWwiIHN0eWxlPSJ0cmFuc2l0aW9uLWRlbGF5OiAwLjFzOyI+DQogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idy0yMCBoLTIwIG14LWF1dG8gbWItNCByb3VuZGVkIGJnLWdvbGQtNTAwLzUgYm9yZGVyIGJvcmRlci1nb2xkLTUwMC8yMCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciI+DQogICAgICAgICAgICAgICAgICAgIDxpIGRhdGEtbHVjaWRlPSJmaWxlLWNoZWNrIiBjbGFzcz0idy0xMCBoLTEwIHRleHQtZ29sZC01MDAiPjwvaT4NCiAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICA8aDMgY2xhc3M9InRleHQtd2hpdGUgZm9udC1zZW1pYm9sZCBtYi0yIj5Db21wYW55IENlcnRpZmljYXRlPC9oMz4NCiAgICAgICAgICAgICAgICA8cCBjbGFzcz0idGV4dC1ncmF5LTQwMCB0ZXh0LXNtIG1iLTQiPk9mZmljaWFsIGluY29ycG9yYXRpb24gY2VydGlmaWNhdGUgaXNzdWVkIGJ5IENvbXBhbmllcyBIb3VzZSBVSy4gRGVtb25zdHJhdGVzIGxlZ2FsIHN0YW5kaW5nIGFuZCBjb21taXRtZW50IHRvIHJlZ3VsYXRvcnkgY29tcGxpYW5jZSBmb3IgYWxsIGludmVzdG9yIHRyYW5zYWN0aW9ucy48L3A+DQogICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly9maW5kLWFuZC11cGRhdGUuY29tcGFueS1pbmZvcm1hdGlvbi5zZXJ2aWNlLmdvdi51ay9jb21wYW55LzExNTA2NTYxL2ZpbGluZy1oaXN0b3J5L016SXhNVFUxTXpJMk1HRmthWEY2YTJONC9kb2N1bWVudD9mb3JtYXQ9cGRmJmRvd25sb2FkPTAiIHRhcmdldD0iX2JsYW5rIiBjbGFzcz0iYnRuLW91dGxpbmUgdGV4dC14cyBweS0yIHB4LTQiPg0KICAgICAgICAgICAgICAgICAgICA8aSBkYXRhLWx1Y2lkZT0iZG93bmxvYWQiIGNsYXNzPSJ3LTMgaC0zIj48L2k+DQogICAgICAgICAgICAgICAgICAgIERvd25sb2FkIENlcnRpZmljYXRlDQogICAgICAgICAgICAgICAgPC9hPg0KICAgICAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmQtaW52ZXN0bWVudCBwLTYgdGV4dC1jZW50ZXIgcmV2ZWFsIiBzdHlsZT0idHJhbnNpdGlvbi1kZWxheTogMC4yczsiPg0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InctMjAgaC0yMCBteC1hdXRvIG1iLTQgcm91bmRlZCBiZy1nb2xkLTUwMC81IGJvcmRlciBib3JkZXItZ29sZC01MDAvMjAgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIiPg0KICAgICAgICAgICAgICAgICAgICA8aSBkYXRhLWx1Y2lkZT0ic2hpZWxkIiBjbGFzcz0idy0xMCBoLTEwIHRleHQtZ29sZC01MDAiPjwvaT4NCiAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICA8aDMgY2xhc3M9InRleHQtd2hpdGUgZm9udC1zZW1pYm9sZCBtYi0yIj5TU0wgJiBTZWN1cml0eTwvaDM+DQogICAgICAgICAgICAgICAgPHAgY2xhc3M9InRleHQtZ3JheS00MDAgdGV4dC1zbSBtYi00Ij4yNTYtYml0IFNTTCBlbmNyeXB0aW9uLCB0d28tZmFjdG9yIGF1dGhlbnRpY2F0aW9uLCBjb2xkIHdhbGxldCBzdG9yYWdlLCBhbmQgcmVhbC10aW1lIHRyYW5zYWN0aW9uIG1vbml0b3JpbmcgcHJvdGVjdCBldmVyeSBpbnZlc3RvciBhY2NvdW50IGFuZCB3aXRoZHJhd2FsLjwvcD4NCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJidG4tb3V0bGluZSB0ZXh0LXhzIHB5LTIgcHgtNCBjdXJzb3ItZGVmYXVsdCI+DQogICAgICAgICAgICAgICAgICAgIDxpIGRhdGEtbHVjaWRlPSJjaGVjay1jaXJjbGUiIGNsYXNzPSJ3LTMgaC0zIj48L2k+DQogICAgICAgICAgICAgICAgICAgIFZlcmlmaWVkIFNlY3VyZQ0KICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgPC9kaXY+DQogICAgICAgIDwvZGl2Pg0KDQogICAgICAgIDwhLS0gU2VjdXJpdHkgYmFkZ2VzIHN0cmlwIC0tPg0KICAgICAgICA8ZGl2IGNsYXNzPSJnbGFzcyByb3VuZGVkLWxnIHAtNiBmbGV4IGZsZXgtd3JhcCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgZ2FwLTggcmV2ZWFsIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZsZXggaXRlbXMtY2VudGVyIGdhcC0yIHRleHQtc20gdGV4dC1ncmF5LTMwMCI+DQogICAgICAgICAgICAgICAgPGkgZGF0YS1sdWNpZGU9ImNoZWNrLWNpcmNsZSIgY2xhc3M9InctNCBoLTQgdGV4dC1nb2xkLTUwMCI+PC9pPg0KICAgICAgICAgICAgICAgIFNTTCBTZWN1cmVkDQogICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZsZXggaXRlbXMtY2VudGVyIGdhcC0yIHRleHQtc20gdGV4dC1ncmF5LTMwMCI+DQogICAgICAgICAgICAgICAgPGkgZGF0YS1sdWNpZGU9ImNoZWNrLWNpcmNsZSIgY2xhc3M9InctNCBoLTQgdGV4dC1nb2xkLTUwMCI+PC9pPg0KICAgICAgICAgICAgICAgIEdEUFIgQ29tcGxpYW50DQogICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZsZXggaXRlbXMtY2VudGVyIGdhcC0yIHRleHQtc20gdGV4dC1ncmF5LTMwMCI+DQogICAgICAgICAgICAgICAgPGkgZGF0YS1sdWNpZGU9ImNoZWNrLWNpcmNsZSIgY2xhc3M9InctNCBoLTQgdGV4dC1nb2xkLTUwMCI+PC9pPg0KICAgICAgICAgICAgICAgIEFNTCBWZXJpZmllZA0KICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMiB0ZXh0LXNtIHRleHQtZ3JheS0zMDAiPg0KICAgICAgICAgICAgICAgIDxpIGRhdGEtbHVjaWRlPSJjaGVjay1jaXJjbGUiIGNsYXNzPSJ3LTQgaC00IHRleHQtZ29sZC01MDAiPjwvaT4NCiAgICAgICAgICAgICAgICBLWUMgUHJvdGVjdGVkDQogICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZsZXggaXRlbXMtY2VudGVyIGdhcC0yIHRleHQtc20gdGV4dC1ncmF5LTMwMCI+DQogICAgICAgICAgICAgICAgPGkgZGF0YS1sdWNpZGU9ImNoZWNrLWNpcmNsZSIgY2xhc3M9InctNCBoLTQgdGV4dC1nb2xkLTUwMCI+PC9pPg0KICAgICAgICAgICAgICAgIElTTyAyNzAwMQ0KICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMiB0ZXh0LXNtIHRleHQtZ3JheS0zMDAiPg0KICAgICAgICAgICAgICAgIDxpIGRhdGEtbHVjaWRlPSJjaGVjay1jaXJjbGUiIGNsYXNzPSJ3LTQgaC00IHRleHQtZ29sZC01MDAiPjwvaT4NCiAgICAgICAgICAgICAgICBQQ0kgRFNTDQogICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQogICAgPC9kaXY+DQo8L3NlY3Rpb24+DQoNCg0KPCEtLSA9PT09PSBMSVZFIENIQVJUID09PT09IC0tPg0KPHNlY3Rpb24gY2xhc3M9InB5LTI0IGJvcmRlci10IGJvcmRlci13aGl0ZS81Ij4NCiAgICA8ZGl2IGNsYXNzPSJtYXgtdy03eGwgbXgtYXV0byBweC00IHNtOnB4LTYgbGc6cHgtOCI+DQogICAgICAgIDxkaXYgY2xhc3M9InRleHQtY2VudGVyIG1iLTEyIj4NCiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tbGFiZWwgbWItMyByZXZlYWwiPlJlYWwtVGltZSBNYXJrZXQ8L2Rpdj4NCiAgICAgICAgICAgIDxoMiBjbGFzcz0ic2VjdGlvbi10aXRsZSB0ZXh0LTR4bCB0ZXh0LXdoaXRlIHJldmVhbCI+TGl2ZSBUcmFkaW5nIDxzcGFuIGNsYXNzPSJnb2xkLXRleHQiPkNoYXJ0PC9zcGFuPjwvaDI+DQogICAgICAgICAgICA8cCBjbGFzcz0idGV4dC1ncmF5LTQwMCBtdC0zIHJldmVhbCI+T3VyIGludmVzdG1lbnQgZXhwZXJ0cyBhY3RpdmVseSB0cmFkZSB0aGVzZSBtYXJrZXRzIHRvIGdlbmVyYXRlIHlvdXIgcmV0dXJucy48L3A+DQogICAgICAgIDwvZGl2Pg0KICAgICAgICA8ZGl2IGNsYXNzPSJnbGFzcy1kYXJrIHJvdW5kZWQtbGcgb3ZlcmZsb3ctaGlkZGVuIHJldmVhbCIgc3R5bGU9ImhlaWdodDogNTAwcHg7Ij4NCiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRyYWRpbmd2aWV3LXdpZGdldC1jb250YWluZXIiIHN0eWxlPSJoZWlnaHQ6MTAwJTsiPg0KICAgICAgICAgICAgICAgIDxkaXYgaWQ9InRyYWRpbmd2aWV3X2NoYXJ0IiBzdHlsZT0iaGVpZ2h0OjEwMCU7Ij48L2Rpdj4NCiAgICAgICAgICAgICAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3MzLnRyYWRpbmd2aWV3LmNvbS90di5qcyI+PC9zY3JpcHQ+DQogICAgICAgICAgICAgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPg0KICAgICAgICAgICAgICAgIG5ldyBUcmFkaW5nVmlldy53aWRnZXQoew0KICAgICAgICAgICAgICAgICAgICAid2lkdGgiOiAiMTAwJSIsDQogICAgICAgICAgICAgICAgICAgICJoZWlnaHQiOiAiMTAwJSIsDQogICAgICAgICAgICAgICAgICAgICJzeW1ib2wiOiAiQlRDVVNEIiwNCiAgICAgICAgICAgICAgICAgICAgImludGVydmFsIjogIjYwIiwNCiAgICAgICAgICAgICAgICAgICAgInRpbWV6b25lIjogIkV0Yy9VVEMiLA0KICAgICAgICAgICAgICAgICAgICAidGhlbWUiOiAiZGFyayIsDQogICAgICAgICAgICAgICAgICAgICJzdHlsZSI6ICIxIiwNCiAgICAgICAgICAgICAgICAgICAgImxvY2FsZSI6ICJlbiIsDQogICAgICAgICAgICAgICAgICAgICJ0b29sYmFyX2JnIjogIiMxMTExMTEiLA0KICAgICAgICAgICAgICAgICAgICAiZW5hYmxlX3B1Ymxpc2hpbmciOiBmYWxzZSwNCiAgICAgICAgICAgICAgICAgICAgIndpdGhkYXRlcmFuZ2VzIjogdHJ1ZSwNCiAgICAgICAgICAgICAgICAgICAgImhpZGVfc2lkZV90b29sYmFyIjogZmFsc2UsDQogICAgICAgICAgICAgICAgICAgICJhbGxvd19zeW1ib2xfY2hhbmdlIjogdHJ1ZSwNCiAgICAgICAgICAgICAgICAgICAgImRldGFpbHMiOiB0cnVlLA0KICAgICAgICAgICAgICAgICAgICAiY2FsZW5kYXIiOiB0cnVlLA0KICAgICAgICAgICAgICAgICAgICAiY29udGFpbmVyX2lkIjogInRyYWRpbmd2aWV3X2NoYXJ0IiwNCiAgICAgICAgICAgICAgICAgICAgImJhY2tncm91bmRDb2xvciI6ICJyZ2JhKDksIDksIDksIDAuMCkiLA0KICAgICAgICAgICAgICAgICAgICAiZ3JpZENvbG9yIjogInJnYmEoMjM1LCAyMDksIDAsIDAuMDUpIg0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIDwvc2NyaXB0Pg0KICAgICAgICAgICAgPC9kaXY+DQogICAgICAgIDwvZGl2Pg0KICAgIDwvZGl2Pg0KPC9zZWN0aW9uPg0KDQoNCjwhLS0gPT09PT0gVEVTVElNT05JQUxTID09PT09IC0tPg0KPHNlY3Rpb24gY2xhc3M9InB5LTI0IiBzdHlsZT0iYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE4MGRlZywgdHJhbnNwYXJlbnQsIHJnYmEoMjM1LDIwOSwwLDAuMDIpLCB0cmFuc3BhcmVudCk7Ij4NCiAgICA8ZGl2IGNsYXNzPSJtYXgtdy03eGwgbXgtYXV0byBweC00IHNtOnB4LTYgbGc6cHgtOCI+DQogICAgICAgIDxkaXYgY2xhc3M9InRleHQtY2VudGVyIG1iLTE2Ij4NCiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tbGFiZWwgbWItMyByZXZlYWwiPkludmVzdG9yIFZvaWNlczwvZGl2Pg0KICAgICAgICAgICAgPGgyIGNsYXNzPSJzZWN0aW9uLXRpdGxlIHRleHQtNHhsIHRleHQtd2hpdGUgcmV2ZWFsIj5XaGF0IE91ciA8c3BhbiBjbGFzcz0iZ29sZC10ZXh0Ij5JbnZlc3RvcnMgU2F5PC9zcGFuPjwvaDI+DQogICAgICAgIDwvZGl2Pg0KDQogICAgICAgIDxkaXYgY2xhc3M9ImdyaWQgbWQ6Z3JpZC1jb2xzLTMgZ2FwLTYiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZC1pbnZlc3RtZW50IHAtNyByZXZlYWwiIHN0eWxlPSJ0cmFuc2l0aW9uLWRlbGF5OiAwczsiPg0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZsZXggZ2FwLTEgbWItNCI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgZGF0YS1sdWNpZGU9InN0YXIiIGNsYXNzPSJ3LTQgaC00IHRleHQtZ29sZC01MDAgZmlsbC1jdXJyZW50IiBzdHlsZT0iZmlsbDogI2ViZDEwMDsiPjwvaT4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBkYXRhLWx1Y2lkZT0ic3RhciIgY2xhc3M9InctNCBoLTQgdGV4dC1nb2xkLTUwMCBmaWxsLWN1cnJlbnQiIHN0eWxlPSJmaWxsOiAjZWJkMTAwOyI+PC9pPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGRhdGEtbHVjaWRlPSJzdGFyIiBjbGFzcz0idy00IGgtNCB0ZXh0LWdvbGQtNTAwIGZpbGwtY3VycmVudCIgc3R5bGU9ImZpbGw6ICNlYmQxMDA7Ij48L2k+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgZGF0YS1sdWNpZGU9InN0YXIiIGNsYXNzPSJ3LTQgaC00IHRleHQtZ29sZC01MDAgZmlsbC1jdXJyZW50IiBzdHlsZT0iZmlsbDogI2ViZDEwMDsiPjwvaT4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBkYXRhLWx1Y2lkZT0ic3RhciIgY2xhc3M9InctNCBoLTQgdGV4dC1nb2xkLTUwMCBmaWxsLWN1cnJlbnQiIHN0eWxlPSJmaWxsOiAjZWJkMTAwOyI+PC9pPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgPHAgY2xhc3M9InRleHQtZ3JheS0zMDAgdGV4dC1zbSBsZWFkaW5nLXJlbGF4ZWQgbWItNiI+SSBzdGFydGVkIHdpdGggdGhlIHN0YXJ0ZXIgcGxhbiBhdCAkMjAwIGFuZCB3aXRoaW4gYSB3ZWVrIEkgd2FzIGFscmVhZHkgc2VlaW5nIGNvbnNpc3RlbnQgaG91cmx5IHJldHVybnMuIFRoZSB3aXRoZHJhd2FsIHByb2Nlc3MgaXMgZ2VudWluZWx5IGluc3RhbnQgYW5kIHRoZSBzdXBwb3J0IHRlYW0gaXMgZXh0cmVtZWx5IHJlc3BvbnNpdmUuPC9wPg0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZsZXggaXRlbXMtY2VudGVyIGdhcC0zIj4NCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idy0xMCBoLTEwIHJvdW5kZWQtZnVsbCBiZy1nb2xkLTUwMC8xMCBib3JkZXIgYm9yZGVyLWdvbGQtNTAwLzIwIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0ZXh0LWdvbGQtNTAwIGZvbnQtYm9sZCB0ZXh0LXNtIj5KPC9zcGFuPg0KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgPGRpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRleHQtd2hpdGUgZm9udC1zZW1pYm9sZCB0ZXh0LXNtIj5KYW1lcyBPLjwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGV4dC1ncmF5LTQwMCB0ZXh0LXhzIj5Vbml0ZWQgS2luZ2RvbTwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZC1pbnZlc3RtZW50IHAtNyByZXZlYWwiIHN0eWxlPSJ0cmFuc2l0aW9uLWRlbGF5OiAwLjFzOyI+DQogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmxleCBnYXAtMSBtYi00Ij4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBkYXRhLWx1Y2lkZT0ic3RhciIgY2xhc3M9InctNCBoLTQgdGV4dC1nb2xkLTUwMCBmaWxsLWN1cnJlbnQiIHN0eWxlPSJmaWxsOiAjZWJkMTAwOyI+PC9pPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGRhdGEtbHVjaWRlPSJzdGFyIiBjbGFzcz0idy00IGgtNCB0ZXh0LWdvbGQtNTAwIGZpbGwtY3VycmVudCIgc3R5bGU9ImZpbGw6ICNlYmQxMDA7Ij48L2k+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgZGF0YS1sdWNpZGU9InN0YXIiIGNsYXNzPSJ3LTQgaC00IHRleHQtZ29sZC01MDAgZmlsbC1jdXJyZW50IiBzdHlsZT0iZmlsbDogI2ViZDEwMDsiPjwvaT4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBkYXRhLWx1Y2lkZT0ic3RhciIgY2xhc3M9InctNCBoLTQgdGV4dC1nb2xkLTUwMCBmaWxsLWN1cnJlbnQiIHN0eWxlPSJmaWxsOiAjZWJkMTAwOyI+PC9pPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGRhdGEtbHVjaWRlPSJzdGFyIiBjbGFzcz0idy00IGgtNCB0ZXh0LWdvbGQtNTAwIGZpbGwtY3VycmVudCIgc3R5bGU9ImZpbGw6ICNlYmQxMDA7Ij48L2k+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICA8cCBjbGFzcz0idGV4dC1ncmF5LTMwMCB0ZXh0LXNtIGxlYWRpbmctcmVsYXhlZCBtYi02Ij5UaGlzIHBsYXRmb3JtIGhhcyBjaGFuZ2VkIG15IGZpbmFuY2lhbCBsaWZlLiBJIHJlZmVyIGZyaWVuZHMgYW5kIGZhbWlseSByZWd1bGFybHkgYW5kIHRoZSBjb21taXNzaW9uIHBheW1lbnRzIGFycml2ZSB3aXRob3V0IGRlbGF5LiBUcmFuc3BhcmVudCwgdHJ1c3R3b3J0aHksIGFuZCBwcm9mZXNzaW9uYWwuPC9wPg0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZsZXggaXRlbXMtY2VudGVyIGdhcC0zIj4NCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idy0xMCBoLTEwIHJvdW5kZWQtZnVsbCBiZy1nb2xkLTUwMC8xMCBib3JkZXIgYm9yZGVyLWdvbGQtNTAwLzIwIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0ZXh0LWdvbGQtNTAwIGZvbnQtYm9sZCB0ZXh0LXNtIj5NPC9zcGFuPg0KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgPGRpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRleHQtd2hpdGUgZm9udC1zZW1pYm9sZCB0ZXh0LXNtIj5NaWNreSBLLjwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGV4dC1ncmF5LTQwMCB0ZXh0LXhzIj5Vbml0ZWQgU3RhdGU8L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmQtaW52ZXN0bWVudCBwLTcgcmV2ZWFsIiBzdHlsZT0idHJhbnNpdGlvbi1kZWxheTogMC4yczsiPg0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZsZXggZ2FwLTEgbWItNCI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgZGF0YS1sdWNpZGU9InN0YXIiIGNsYXNzPSJ3LTQgaC00IHRleHQtZ29sZC01MDAgZmlsbC1jdXJyZW50IiBzdHlsZT0iZmlsbDogI2ViZDEwMDsiPjwvaT4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBkYXRhLWx1Y2lkZT0ic3RhciIgY2xhc3M9InctNCBoLTQgdGV4dC1nb2xkLTUwMCBmaWxsLWN1cnJlbnQiIHN0eWxlPSJmaWxsOiAjZWJkMTAwOyI+PC9pPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGRhdGEtbHVjaWRlPSJzdGFyIiBjbGFzcz0idy00IGgtNCB0ZXh0LWdvbGQtNTAwIGZpbGwtY3VycmVudCIgc3R5bGU9ImZpbGw6ICNlYmQxMDA7Ij48L2k+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgZGF0YS1sdWNpZGU9InN0YXIiIGNsYXNzPSJ3LTQgaC00IHRleHQtZ29sZC01MDAgZmlsbC1jdXJyZW50IiBzdHlsZT0iZmlsbDogI2ViZDEwMDsiPjwvaT4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBkYXRhLWx1Y2lkZT0ic3RhciIgY2xhc3M9InctNCBoLTQgdGV4dC1nb2xkLTUwMCBmaWxsLWN1cnJlbnQiIHN0eWxlPSJmaWxsOiAjZWJkMTAwOyI+PC9pPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgPHAgY2xhc3M9InRleHQtZ3JheS0zMDAgdGV4dC1zbSBsZWFkaW5nLXJlbGF4ZWQgbWItNiI+QXMgYSBzZWFzb25lZCBpbnZlc3RvciBJIHdhcyBza2VwdGljYWwsIGJ1dCB0aGUgRkNBIHJlZ2lzdHJhdGlvbiBhbmQgdmVyaWZpYWJsZSBibG9ja2NoYWluIHRyYW5zYWN0aW9ucyBjb252aW5jZWQgbWUuIFRocmVlIG1vbnRocyBpbiBhbmQgbXkgUk9JIGhhcyBiZWVuIGV4Y2VwdGlvbmFsLjwvcD4NCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMyI+DQogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InctMTAgaC0xMCByb3VuZGVkLWZ1bGwgYmctZ29sZC01MDAvMTAgYm9yZGVyIGJvcmRlci1nb2xkLTUwMC8yMCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciI+DQogICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idGV4dC1nb2xkLTUwMCBmb250LWJvbGQgdGV4dC1zbSI+Qzwvc3Bhbj4NCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgICAgIDxkaXY+DQogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0ZXh0LXdoaXRlIGZvbnQtc2VtaWJvbGQgdGV4dC1zbSI+Q2hlbiBXZWk8L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRleHQtZ3JheS00MDAgdGV4dC14cyI+U2luZ2Fwb3JlPC9kaXY+DQogICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgIDwvZGl2Pg0KPC9zZWN0aW9uPg0KDQoNCjwhLS0gPT09PT0gQ1RBIFNFQ1RJT04gPT09PT0gLS0+DQo8c2VjdGlvbiBjbGFzcz0icHktMjQiPg0KICAgIDxkaXYgY2xhc3M9Im1heC13LTR4bCBteC1hdXRvIHB4LTQgc206cHgtNiBsZzpweC04IHRleHQtY2VudGVyIj4NCiAgICAgICAgPGRpdiBjbGFzcz0iZ2xhc3MtZGFyayByb3VuZGVkLTJ4bCBwLTEyIGxnOnAtMTYgcmVsYXRpdmUgb3ZlcmZsb3ctaGlkZGVuIHJldmVhbCI+DQogICAgICAgICAgICA8ZGl2IGNsYXNzPSJhYnNvbHV0ZSBpbnNldC0wIG9wYWNpdHktNSIgc3R5bGU9ImJhY2tncm91bmQ6IHJhZGlhbC1ncmFkaWVudChlbGxpcHNlIGF0IGNlbnRlciwgI2ViZDEwMCwgdHJhbnNwYXJlbnQpOyI+PC9kaXY+DQogICAgICAgICAgICA8ZGl2IGNsYXNzPSJyZWxhdGl2ZSI+DQogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1sYWJlbCBtYi00Ij5CZWdpbiBZb3VyIEpvdXJuZXk8L2Rpdj4NCiAgICAgICAgICAgICAgICA8aDIgY2xhc3M9InNlY3Rpb24tdGl0bGUgdGV4dC00eGwgbGc6dGV4dC01eGwgdGV4dC13aGl0ZSBtYi00Ij4NCiAgICAgICAgICAgICAgICAgICAgU3RhcnQgRWFybmluZyA8c3BhbiBjbGFzcz0iZ29sZC10ZXh0Ij5Ub2RheTwvc3Bhbj4NCiAgICAgICAgICAgICAgICA8L2gyPg0KICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJ0ZXh0LWdyYXktNDAwIHRleHQtbGcgbWItOCBtYXgtdy14bCBteC1hdXRvIj5Kb2luIG92ZXIgOTAwLDAwMCBpbnZlc3RvcnMgd29ybGR3aWRlIHdobyB0cnVzdCBEaWdpdGFsIEFzc2V0IFRyYWRlIHRvIGdyb3cgdGhlaXIgd2VhbHRoIHNhZmVseSwgY29uc2lzdGVudGx5LCBhbmQgdHJhbnNwYXJlbnRseS48L3A+DQogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmxleCBmbGV4LWNvbCBzbTpmbGV4LXJvdyBnYXAtNCBqdXN0aWZ5LWNlbnRlciI+DQogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vZGlnaXRhbC1hc3NldHRyYWRlLmNvbS91c2VyL3JlZ2lzdGVyIiBjbGFzcz0iYnRuLWdvbGQiPg0KICAgICAgICAgICAgICAgICAgICAgICAgPGkgZGF0YS1sdWNpZGU9InRyZW5kaW5nLXVwIiBjbGFzcz0idy00IGgtNCI+PC9pPg0KICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlIEZyZWUgQWNjb3VudA0KICAgICAgICAgICAgICAgICAgICA8L2E+DQogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vZGlnaXRhbC1hc3NldHRyYWRlLmNvbS9jb250YWN0IiBjbGFzcz0iYnRuLW91dGxpbmUiPg0KICAgICAgICAgICAgICAgICAgICAgICAgPGkgZGF0YS1sdWNpZGU9ImhlYWRwaG9uZXMiIGNsYXNzPSJ3LTQgaC00Ij48L2k+DQogICAgICAgICAgICAgICAgICAgICAgICBUYWxrIHRvIGFuIEFkdmlzb3INCiAgICAgICAgICAgICAgICAgICAgPC9hPg0KICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgPC9kaXY+DQogICAgICAgIDwvZGl2Pg0KICAgIDwvZGl2Pg0KPC9zZWN0aW9uPg0KDQo8L21haW4+DQoNCjwhLS0gPT09PT0gRk9PVEVSID09PT09IC0tPg0KPGZvb3RlciBjbGFzcz0iYmctZGFyay04MDAgYm9yZGVyLXQgYm9yZGVyLXdoaXRlLzUgbXQtMjAiPg0KICAgIDwhLS0gTmV3c2xldHRlciAtLT4NCiAgICA8ZGl2IGNsYXNzPSJib3JkZXItYiBib3JkZXItd2hpdGUvNSI+DQogICAgICAgIDxkaXYgY2xhc3M9Im1heC13LTd4bCBteC1hdXRvIHB4LTQgc206cHgtNiBsZzpweC04IHB5LTEyIj4NCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZsZXggZmxleC1jb2wgbWQ6ZmxleC1yb3cgaXRlbXMtY2VudGVyIGp1c3RpZnktYmV0d2VlbiBnYXAtNiI+DQogICAgICAgICAgICAgICAgPGRpdj4NCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1sYWJlbCBtYi0yIj5TdGF5IEluZm9ybWVkPC9kaXY+DQogICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz0ic2VjdGlvbi10aXRsZSB0ZXh0LTJ4bCB0ZXh0LXdoaXRlIj5TdWJzY3JpYmUgdG8gTWFya2V0IEluc2lnaHRzPC9oMz4NCiAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9InRleHQtZ3JheS00MDAgdGV4dC1zbSBtdC0xIj5XZWVrbHkgYW5hbHlzaXMsIG1hcmtldCB0cmVuZHMsIGFuZCBpbnZlc3RtZW50IG9wcG9ydHVuaXRpZXMuPC9wPg0KICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgIDxmb3JtIGFjdGlvbj0iaHR0cHM6Ly9kaWdpdGFsLWFzc2V0dHJhZGUuY29tL3N1YnNjcmliZSIgbWV0aG9kPSJQT1NUIiBjbGFzcz0iZmxleCBnYXAtMiB3LWZ1bGwgbWQ6dy1hdXRvIG1pbi13LTgwIj4NCiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iX3Rva2VuIiB2YWx1ZT0iaGNTOXFPSDZZd3JHSTBNTTZnTUlRYkh0SHpyQjdzYjNpTDh4VXgxSCI+ICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iZW1haWwiIG5hbWU9ImVtYWlsIiBwbGFjZWhvbGRlcj0iWW91ciBlbWFpbCBhZGRyZXNzIiBjbGFzcz0iZm9ybS1pbnB1dCBmbGV4LTEgbWQ6dy02NCI+DQogICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT0ic3VibWl0IiBjbGFzcz0iYnRuLWdvbGQgd2hpdGVzcGFjZS1ub3dyYXAiPlN1YnNjcmliZTwvYnV0dG9uPg0KICAgICAgICAgICAgICAgIDwvZm9ybT4NCiAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICA8L2Rpdj4NCiAgICA8L2Rpdj4NCg0KICAgIDwhLS0gTWFpbiBGb290ZXIgLS0+DQogICAgPGRpdiBjbGFzcz0ibWF4LXctN3hsIG14LWF1dG8gcHgtNCBzbTpweC02IGxnOnB4LTggcHktMTYiPg0KICAgICAgICA8ZGl2IGNsYXNzPSJncmlkIGdyaWQtY29scy0xIG1kOmdyaWQtY29scy0yIGxnOmdyaWQtY29scy00IGdhcC0xMiI+DQogICAgICAgICAgICA8IS0tIEJyYW5kIC0tPg0KICAgICAgICAgICAgPGRpdiBjbGFzcz0ibGc6Y29sLXNwYW4tMSI+DQogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTIgbWItNCI+DQogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vZGlnaXRhbC1hc3NldHRyYWRlLmNvbSI+PGltZyBzcmM9Imh0dHBzOi8vZGlnaXRhbC1hc3NldHRyYWRlLmNvbS9hc3NldHMvaW1hZ2VzL2xvZ29JY29uL2xvZ28ucG5nIiB3aWR0aD0iMTg1cHgiLz48L2E+DQogICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgPHAgY2xhc3M9InRleHQtZ3JheS00MDAgdGV4dC1zbSBsZWFkaW5nLXJlbGF4ZWQgbWItNiI+QSByZWd1bGF0ZWQgZ2xvYmFsIGludmVzdG1lbnQgcGxhdGZvcm0gcHJvdmlkaW5nIGFjY2VzcyB0byBkaXZlcnNpZmllZCBwb3J0Zm9saW9zIHBvd2VyZWQgYnkgYmxvY2tjaGFpbiB0ZWNobm9sb2d5IGFuZCBwcm9mZXNzaW9uYWwgYXNzZXQgbWFuYWdlbWVudC48L3A+DQogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmxleCBnYXAtMyI+DQogICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vdC5tZS9EQVRETUlOIiB0YXJnZXQ9Il9ibGFuayIgY2xhc3M9InctOSBoLTkgcm91bmRlZCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBiZy13aGl0ZS81IGhvdmVyOmJnLWJsdWUtNDAwLzIwIGJvcmRlciBib3JkZXItd2hpdGUvNSBob3Zlcjpib3JkZXItYmx1ZS00MDAvMzAgdHJhbnNpdGlvbi1hbGwiPg0KICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0iIzIyOUVEOSI+PHBhdGggZD0iTTExLjk0NCAwQTEyIDEyIDAgMCAwIDAgMTJhMTIgMTIgMCAwIDAgMTIgMTIgMTIgMTIgMCAwIDAgMTItMTJBMTIgMTIgMCAwIDAgMTIgMGExMiAxMiAwIDAgMC0uMDU2IDB6bTQuOTYyIDcuMjI0Yy4xLS4wMDIuMzIxLjAyMy40NjUuMTRhLjUwNi41MDYgMCAwIDEgLjE3MS4zMjVjLjAxNi4wOTMuMDM2LjMwNi4wMi40NzItLjE4IDEuODk4LS45NjIgNi41MDItMS4zNiA4LjYyNy0uMTY4LjktLjQ5OSAxLjIwMS0uODIgMS4yMy0uNjk2LjA2NS0xLjIyNS0uNDYtMS45LS45MDItMS4wNTYtLjY5My0xLjY1My0xLjEyNC0yLjY3OC0xLjgtMS4xODUtLjc4LS40MTctMS4yMS4yNTgtMS45MS4xNzctLjE4NCAzLjI0Ny0yLjk3NyAzLjMwNy0zLjIzLjAwNy0uMDMyLjAxNC0uMTUtLjA1Ni0uMjEycy0uMTc0LS4wNDEtLjI0OS0uMDI0Yy0uMTA2LjAyNC0xLjc5MyAxLjE0LTUuMDYxIDMuMzQ1LS40OC4zMy0uOTEzLjQ5LTEuMzAyLjQ4LS40MjgtLjAwOC0xLjI1Mi0uMjQxLTEuODY1LS40NC0uNzUyLS4yNDUtMS4zNDktLjM3NC0xLjI5Ny0uNzg5LjAyNy0uMjE2LjMyNS0uNDM3Ljg5My0uNjYzIDMuNDk4LTEuNTI0IDUuODMtMi41MjkgNi45OTgtMy4wMTQgMy4zMzItMS4zODYgNC4wMjUtMS42MjcgNC40NzYtMS42MzV6Ii8+PC9zdmc+DQogICAgICAgICAgICAgICAgICAgIDwvYT4NCiAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgIDwvZGl2Pg0KDQogICAgICAgICAgICA8IS0tIFF1aWNrIExpbmtzIC0tPg0KICAgICAgICAgICAgPGRpdj4NCiAgICAgICAgICAgICAgICA8aDQgY2xhc3M9InRleHQtd2hpdGUgZm9udC1zZW1pYm9sZCB0ZXh0LXNtIHVwcGVyY2FzZSB0cmFja2luZy13aWRlc3QgbWItNSI+UXVpY2sgTGlua3M8L2g0Pg0KICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0ic3BhY2UteS0zIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+DQogICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwczovL2RpZ2l0YWwtYXNzZXR0cmFkZS5jb20iIGNsYXNzPSJ0ZXh0LWdyYXktNDAwIHRleHQtc20gaG92ZXI6dGV4dC1nb2xkLTUwMCBmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMiBncm91cCI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgZGF0YS1sdWNpZGU9ImNoZXZyb24tcmlnaHQiIGNsYXNzPSJ3LTMgaC0zIHRleHQtZ29sZC01MDAvMzAgZ3JvdXAtaG92ZXI6dGV4dC1nb2xkLTUwMCB0cmFuc2l0aW9uLWNvbG9ycyI+PC9pPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEhvbWUNCiAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4NCiAgICAgICAgICAgICAgICAgICAgPC9saT4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+DQogICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwczovL2RpZ2l0YWwtYXNzZXR0cmFkZS5jb20vYWJvdXR1cyIgY2xhc3M9InRleHQtZ3JheS00MDAgdGV4dC1zbSBob3Zlcjp0ZXh0LWdvbGQtNTAwIGZsZXggaXRlbXMtY2VudGVyIGdhcC0yIGdyb3VwIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBkYXRhLWx1Y2lkZT0iY2hldnJvbi1yaWdodCIgY2xhc3M9InctMyBoLTMgdGV4dC1nb2xkLTUwMC8zMCBncm91cC1ob3Zlcjp0ZXh0LWdvbGQtNTAwIHRyYW5zaXRpb24tY29sb3JzIj48L2k+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgQWJvdXQgVXMNCiAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4NCiAgICAgICAgICAgICAgICAgICAgPC9saT4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+DQogICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwczovL2RpZ2l0YWwtYXNzZXR0cmFkZS5jb20vcGxhbiIgY2xhc3M9InRleHQtZ3JheS00MDAgdGV4dC1zbSBob3Zlcjp0ZXh0LWdvbGQtNTAwIGZsZXggaXRlbXMtY2VudGVyIGdhcC0yIGdyb3VwIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBkYXRhLWx1Y2lkZT0iY2hldnJvbi1yaWdodCIgY2xhc3M9InctMyBoLTMgdGV4dC1nb2xkLTUwMC8zMCBncm91cC1ob3Zlcjp0ZXh0LWdvbGQtNTAwIHRyYW5zaXRpb24tY29sb3JzIj48L2k+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgSW52ZXN0bWVudCBQbGFucw0KICAgICAgICAgICAgICAgICAgICAgICAgPC9hPg0KICAgICAgICAgICAgICAgICAgICA8L2xpPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vZGlnaXRhbC1hc3NldHRyYWRlLmNvbS9mYXFzIiBjbGFzcz0idGV4dC1ncmF5LTQwMCB0ZXh0LXNtIGhvdmVyOnRleHQtZ29sZC01MDAgZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTIgZ3JvdXAiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGRhdGEtbHVjaWRlPSJjaGV2cm9uLXJpZ2h0IiBjbGFzcz0idy0zIGgtMyB0ZXh0LWdvbGQtNTAwLzMwIGdyb3VwLWhvdmVyOnRleHQtZ29sZC01MDAgdHJhbnNpdGlvbi1jb2xvcnMiPjwvaT4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBGQVENCiAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4NCiAgICAgICAgICAgICAgICAgICAgPC9saT4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+DQogICAgICAgICAgICA8L2Rpdj4NCg0KICAgICAgICAgICAgPCEtLSBMZWdhbCAtLT4NCiAgICAgICAgICAgIDxkaXY+DQogICAgICAgICAgICAgICAgPGg0IGNsYXNzPSJ0ZXh0LXdoaXRlIGZvbnQtc2VtaWJvbGQgdGV4dC1zbSB1cHBlcmNhc2UgdHJhY2tpbmctd2lkZXN0IG1iLTUiPkxlZ2FsPC9oND4NCiAgICAgICAgICAgICAgICA8dWwgY2xhc3M9InNwYWNlLXktMyI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPg0KICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iIyIgY2xhc3M9InRleHQtZ3JheS00MDAgdGV4dC1zbSBob3Zlcjp0ZXh0LWdvbGQtNTAwIGZsZXggaXRlbXMtY2VudGVyIGdhcC0yIGdyb3VwIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBkYXRhLWx1Y2lkZT0iY2hldnJvbi1yaWdodCIgY2xhc3M9InctMyBoLTMgdGV4dC1nb2xkLTUwMC8zMCBncm91cC1ob3Zlcjp0ZXh0LWdvbGQtNTAwIHRyYW5zaXRpb24tY29sb3JzIj48L2k+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgUHJpdmFjeSBQb2xpY3kNCiAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4NCiAgICAgICAgICAgICAgICAgICAgPC9saT4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+DQogICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIjIiBjbGFzcz0idGV4dC1ncmF5LTQwMCB0ZXh0LXNtIGhvdmVyOnRleHQtZ29sZC01MDAgZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTIgZ3JvdXAiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGRhdGEtbHVjaWRlPSJjaGV2cm9uLXJpZ2h0IiBjbGFzcz0idy0zIGgtMyB0ZXh0LWdvbGQtNTAwLzMwIGdyb3VwLWhvdmVyOnRleHQtZ29sZC01MDAgdHJhbnNpdGlvbi1jb2xvcnMiPjwvaT4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXJtcyBvZiBTZXJ2aWNlDQogICAgICAgICAgICAgICAgICAgICAgICA8L2E+DQogICAgICAgICAgICAgICAgICAgIDwvbGk+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPg0KICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iIyIgY2xhc3M9InRleHQtZ3JheS00MDAgdGV4dC1zbSBob3Zlcjp0ZXh0LWdvbGQtNTAwIGZsZXggaXRlbXMtY2VudGVyIGdhcC0yIGdyb3VwIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBkYXRhLWx1Y2lkZT0iY2hldnJvbi1yaWdodCIgY2xhc3M9InctMyBoLTMgdGV4dC1nb2xkLTUwMC8zMCBncm91cC1ob3Zlcjp0ZXh0LWdvbGQtNTAwIHRyYW5zaXRpb24tY29sb3JzIj48L2k+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmlzayBEaXNjbGFpbWVyDQogICAgICAgICAgICAgICAgICAgICAgICA8L2E+DQogICAgICAgICAgICAgICAgICAgIDwvbGk+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPg0KICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iIyIgY2xhc3M9InRleHQtZ3JheS00MDAgdGV4dC1zbSBob3Zlcjp0ZXh0LWdvbGQtNTAwIGZsZXggaXRlbXMtY2VudGVyIGdhcC0yIGdyb3VwIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBkYXRhLWx1Y2lkZT0iY2hldnJvbi1yaWdodCIgY2xhc3M9InctMyBoLTMgdGV4dC1nb2xkLTUwMC8zMCBncm91cC1ob3Zlcjp0ZXh0LWdvbGQtNTAwIHRyYW5zaXRpb24tY29sb3JzIj48L2k+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgQU1MIFBvbGljeQ0KICAgICAgICAgICAgICAgICAgICAgICAgPC9hPg0KICAgICAgICAgICAgICAgICAgICA8L2xpPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiMiIGNsYXNzPSJ0ZXh0LWdyYXktNDAwIHRleHQtc20gaG92ZXI6dGV4dC1nb2xkLTUwMCBmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMiBncm91cCI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgZGF0YS1sdWNpZGU9ImNoZXZyb24tcmlnaHQiIGNsYXNzPSJ3LTMgaC0zIHRleHQtZ29sZC01MDAvMzAgZ3JvdXAtaG92ZXI6dGV4dC1nb2xkLTUwMCB0cmFuc2l0aW9uLWNvbG9ycyI+PC9pPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvb2tpZSBQb2xpY3kNCiAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4NCiAgICAgICAgICAgICAgICAgICAgPC9saT4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+DQogICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwczovL2RpZ2l0YWwtYXNzZXR0cmFkZS5jb20vY29udGFjdCIgY2xhc3M9InRleHQtZ3JheS00MDAgdGV4dC1zbSBob3Zlcjp0ZXh0LWdvbGQtNTAwIGZsZXggaXRlbXMtY2VudGVyIGdhcC0yIGdyb3VwIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBkYXRhLWx1Y2lkZT0iY2hldnJvbi1yaWdodCIgY2xhc3M9InctMyBoLTMgdGV4dC1nb2xkLTUwMC8zMCBncm91cC1ob3Zlcjp0ZXh0LWdvbGQtNTAwIHRyYW5zaXRpb24tY29sb3JzIj48L2k+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgU3VwcG9ydA0KICAgICAgICAgICAgICAgICAgICAgICAgPC9hPg0KICAgICAgICAgICAgICAgICAgICA8L2xpPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD4NCiAgICAgICAgICAgIDwvZGl2Pg0KDQogICAgICAgICAgICA8IS0tIENvbnRhY3QgLS0+DQogICAgICAgICAgICA8ZGl2Pg0KICAgICAgICAgICAgICAgIDxoNCBjbGFzcz0idGV4dC13aGl0ZSBmb250LXNlbWlib2xkIHRleHQtc20gdXBwZXJjYXNlIHRyYWNraW5nLXdpZGVzdCBtYi01Ij5Db250YWN0PC9oND4NCiAgICAgICAgICAgICAgICA8dWwgY2xhc3M9InNwYWNlLXktNCI+DQogICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0iZmxleCBnYXAtMyB0ZXh0LXNtIHRleHQtZ3JheS00MDAiPg0KICAgICAgICAgICAgICAgICAgICAgICAgPGkgZGF0YS1sdWNpZGU9Im1hcC1waW4iIGNsYXNzPSJ3LTQgaC00IHRleHQtZ29sZC01MDAgc2hyaW5rLTAgbXQtMC41Ij48L2k+DQogICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5GaXJzdCBGbG9vciBEZWFuIEhvdXNlLCAxOTMgSGlnaCBTdHJlZXQgUG9uZGVycyBFbmQsIExvbmRvbiwgVW5pdGVkIEtpbmdkb20sIEVOMyA0RUE8L3NwYW4+DQogICAgICAgICAgICAgICAgICAgIDwvbGk+DQogICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0iZmxleCBnYXAtMyB0ZXh0LXNtIHRleHQtZ3JheS00MDAiPg0KICAgICAgICAgICAgICAgICAgICAgICAgPGkgZGF0YS1sdWNpZGU9InNlbmQiIGNsYXNzPSJ3LTQgaC00IHRleHQtZ29sZC01MDAgc2hyaW5rLTAiPjwvaT4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vdC5tZS9EQVRETUlOIiB0YXJnZXQ9Il9ibGFuayIgY2xhc3M9ImhvdmVyOnRleHQtZ29sZC01MDAgdHJhbnNpdGlvbi1jb2xvcnMiPlRlbGVncmFtIFN1cHBvcnQ8L2E+DQogICAgICAgICAgICAgICAgICAgIDwvbGk+DQogICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0iZmxleCBnYXAtMyB0ZXh0LXNtIHRleHQtZ3JheS00MDAiPg0KICAgICAgICAgICAgICAgICAgICAgICAgPGkgZGF0YS1sdWNpZGU9ImhlYWRwaG9uZXMiIGNsYXNzPSJ3LTQgaC00IHRleHQtZ29sZC01MDAgc2hyaW5rLTAiPjwvaT4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vZGlnaXRhbC1hc3NldHRyYWRlLmNvbS90aWNrZXQiIGNsYXNzPSJob3Zlcjp0ZXh0LWdvbGQtNTAwIHRyYW5zaXRpb24tY29sb3JzIj5UaWNrZXQgU3VwcG9ydDwvYT4NCiAgICAgICAgICAgICAgICAgICAgPC9saT4NCiAgICAgICAgICAgICAgICA8L3VsPg0KICAgICAgICAgICAgPC9kaXY+DQogICAgICAgIDwvZGl2Pg0KICAgIDwvZGl2Pg0KDQogICAgPCEtLSBCb3R0b20gQmFyIC0tPg0KICAgIDxkaXYgY2xhc3M9ImJvcmRlci10IGJvcmRlci13aGl0ZS81Ij4NCiAgICAgICAgPGRpdiBjbGFzcz0ibWF4LXctN3hsIG14LWF1dG8gcHgtNCBzbTpweC02IGxnOnB4LTggcHktNiBmbGV4IGZsZXgtY29sIHNtOmZsZXgtcm93IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW4gZ2FwLTQiPg0KICAgICAgICAgICAgPHAgY2xhc3M9InRleHQtZ3JheS01MDAgdGV4dC14cyI+DQogICAgICAgICAgICAgICAgJmNvcHk7IDIwMjYgRGlnaXRhbCBBc3NldCBUcmFkZS4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gUmVndWxhdGVkIEZpbmFuY2lhbCBQbGF0Zm9ybS4NCiAgICAgICAgICAgIDwvcD4NCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZsZXggaXRlbXMtY2VudGVyIGdhcC02IHRleHQteHMgdGV4dC1ncmF5LTUwMCI+DQogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImZsZXggaXRlbXMtY2VudGVyIGdhcC0xLjUiPg0KICAgICAgICAgICAgICAgICAgICA8aSBkYXRhLWx1Y2lkZT0ic2hpZWxkLWNoZWNrIiBjbGFzcz0idy0zIGgtMyB0ZXh0LWdvbGQtNTAwIj48L2k+DQogICAgICAgICAgICAgICAgICAgIFNTTCBTZWN1cmVkDQogICAgICAgICAgICAgICAgPC9zcGFuPg0KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMS41Ij4NCiAgICAgICAgICAgICAgICAgICAgPGkgZGF0YS1sdWNpZGU9ImxvY2siIGNsYXNzPSJ3LTMgaC0zIHRleHQtZ29sZC01MDAiPjwvaT4NCiAgICAgICAgICAgICAgICAgICAgMjU2LWJpdCBFbmNyeXB0ZWQNCiAgICAgICAgICAgICAgICA8L3NwYW4+DQogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImZsZXggaXRlbXMtY2VudGVyIGdhcC0xLjUiPg0KICAgICAgICAgICAgICAgICAgICA8aSBkYXRhLWx1Y2lkZT0iY2hlY2stY2lyY2xlIiBjbGFzcz0idy0zIGgtMyB0ZXh0LWdvbGQtNTAwIj48L2k+DQogICAgICAgICAgICAgICAgICAgIEZDQSBSZWdpc3RlcmVkDQogICAgICAgICAgICAgICAgPC9zcGFuPg0KICAgICAgICAgICAgPC9kaXY+DQogICAgICAgIDwvZGl2Pg0KICAgIDwvZGl2Pg0KPC9mb290ZXI+DQoNCiAgICAgICAgICAgIDwhLS0gU21hcnRzdXBwIExpdmUgQ2hhdCBzY3JpcHQgLS0+IDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4gdmFyIF9zbWFydHN1cHAgPSBfc21hcnRzdXBwIHx8IHt9OyBfc21hcnRzdXBwLmtleSA9ICdjOWUxMWEwYzYxNWMyNThmYjU2YTE0MjkzMzliMGRmNzUyNDM5NjUyJzsgd2luZG93LnNtYXJ0c3VwcHx8KGZ1bmN0aW9uKGQpIHsgICB2YXIgcyxjLG89c21hcnRzdXBwPWZ1bmN0aW9uKCl7IG8uXy5wdXNoKGFyZ3VtZW50cyl9O28uXz1bXTsgICBzPWQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3NjcmlwdCcpWzBdO2M9ZC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTsgICBjLnR5cGU9J3RleHQvamF2YXNjcmlwdCc7Yy5jaGFyc2V0PSd1dGYtOCc7Yy5hc3luYz10cnVlOyAgIGMuc3JjPSdodHRwczovL3d3dy5zbWFydHN1cHBjaGF0LmNvbS9sb2FkZXIuanM/JztzLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGMscyk7IH0pKGRvY3VtZW50KTsgPC9zY3JpcHQ+IDxub3NjcmlwdD5Qb3dlcmVkIGJ5IDxhIGhyZWY9Imh0dHBzOi8vd3d3LnNtYXJ0c3VwcC5jb20iIHRhcmdldD0iX2JsYW5rIj5TbWFydHN1cHA8L2E+PC9ub3NjcmlwdD4NCiAgICANCjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9kaWdpdGFsLWFzc2V0dHJhZGUuY29tL2Fzc2V0cy9nbG9iYWwvY3NzL2l6aVRvYXN0Lm1pbi5jc3MiPgo8c2NyaXB0IHNyYz0iaHR0cHM6Ly9kaWdpdGFsLWFzc2V0dHJhZGUuY29tL2Fzc2V0cy9nbG9iYWwvanMvaXppVG9hc3QubWluLmpzIj48L3NjcmlwdD4KCgo8c2NyaXB0PgogICAgInVzZSBzdHJpY3QiOwogICAgZnVuY3Rpb24gbm90aWZ5KHN0YXR1cywgbWVzc2FnZSkgewogICAgICAgIGlmICh0eXBlb2YgbWVzc2FnZSA9PSAnc3RyaW5nJykgewogICAgICAgICAgICBpemlUb2FzdFtzdGF0dXNdKHsKICAgICAgICAgICAgICAgIG1lc3NhZ2U6IG1lc3NhZ2UsCiAgICAgICAgICAgICAgICBwb3NpdGlvbjogInRvcFJpZ2h0IgogICAgICAgICAgICB9KTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAkLmVhY2gobWVzc2FnZSwgZnVuY3Rpb24oaSwgdmFsKSB7CiAgICAgICAgICAgICAgICBpemlUb2FzdFtzdGF0dXNdKHsKICAgICAgICAgICAgICAgICAgICBtZXNzYWdlOiB2YWwsCiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246ICJ0b3BSaWdodCIKICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICB9KTsKICAgICAgICB9CiAgICB9Cjwvc2NyaXB0Pgo8c2NyaXB0IHNyYz0iaHR0cHM6Ly9kaWdpdGFsLWFzc2V0dHJhZGUuY29tL2Fzc2V0cy9nbG9iYWwvanMvZmlyZWJhc2UvZmlyZWJhc2UtOC4zLjIuanMiPjwvc2NyaXB0Pg0KDQo8c2NyaXB0Pg0KICAgICJ1c2Ugc3RyaWN0IjsgICANCiAgICANCiAgICB2YXIgcGVybWlzc2lvbiA9IG51bGw7DQogICAgdmFyIGF1dGhlbnRpY2F0ZWQgPSAnJzsNCiAgICB2YXIgcHVzaE5vdGlmeSA9IDA7DQogICAgdmFyIGZpcmViYXNlQ29uZmlnID0gbnVsbDsNCg0KICAgIGZ1bmN0aW9uIHB1c2hOb3RpZnlBY3Rpb24oKXsgDQogICAgICAgIHBlcm1pc3Npb24gPSBOb3RpZmljYXRpb24ucGVybWlzc2lvbjsNCg0KICAgICAgICBpZighKCdOb3RpZmljYXRpb24nIGluIHdpbmRvdykpew0KICAgICAgICAgICAgbm90aWZ5KCdpbmZvJywgJ1B1c2ggbm90aWZpY2F0aW9ucyBub3QgYXZhaWxhYmxlIGluIHlvdXIgYnJvd3Nlci4gVHJ5IENocm9taXVtLicpDQogICAgICAgIH0NCiAgICAgICAgZWxzZSBpZihwZXJtaXNzaW9uID09PSAnZGVuaWVkJyB8fCBwZXJtaXNzaW9uID09ICdkZWZhdWx0Jyl7IC8vTm90aWNlIGZvciB1c2VycyBkYXNoYm9hcmQNCiAgICAgICAgICAgICQoJy5ub3RpY2UnKS5hcHBlbmQoYA0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1sZy0xMiI+DQogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImN1c3RvbS0tY2FyZCBtYi00Ij4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmQtaGVhZGVyIGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGQtZmxleCBmbGV4LXdyYXAgbm90aWNlX25vdGlmeSI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGg1IGNsYXNzPSJhbGVydC1oZWFkaW5nIj5QbGVhc2UgQWxsb3cgLyBSZXNldCBCcm93c2VyIE5vdGlmaWNhdGlvbiA8aSBjbGFzcz0nbGFzIGxhLWJlbGwgdGV4dC0tZGFuZ2VyJz48L2k+PC9oNT4NCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZC1ib2R5Ij4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0ibWItMCBzbWFsbCI+SWYgeW91IHdhbnQgdG8gZ2V0IHB1c2ggbm90aWZpY2F0aW9uIHRoZW4geW91IGhhdmUgdG8gYWxsb3cgbm90aWZpY2F0aW9uIGZyb20geW91ciBicm93c2VyPC9wPg0KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgICAgIDwvZGl2PiANCiAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgIGApOw0KICAgICAgICB9DQogICAgfQ0KDQogICAgLy9JZiBlbmFibGUgcHVzaCBub3RpZmljYXRpb24gZnJvbSBhZG1pbiBwYW5lbA0KICAgIGlmKHB1c2hOb3RpZnkgPT0gMSl7DQogICAgICAgIHB1c2hOb3RpZnlBY3Rpb24oKTsNCiAgICB9DQoNCiAgICAvL1doZW4gdXNlcnMgYWxsb3cgYnJvd3NlciBub3RpZmljYXRpb24NCiAgICBpZihwZXJtaXNzaW9uICE9ICdkZW5pZWQnICYmIGZpcmViYXNlQ29uZmlnKXsgDQogICANCiAgICAgICAgLy9GaXJlYmFzZSANCiAgICAgICAgZmlyZWJhc2UuaW5pdGlhbGl6ZUFwcChmaXJlYmFzZUNvbmZpZyk7DQogICAgICAgIGNvbnN0IG1lc3NhZ2luZyA9IGZpcmViYXNlLm1lc3NhZ2luZygpOw0KDQogICAgICAgIG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLnJlZ2lzdGVyKCJodHRwczovL2RpZ2l0YWwtYXNzZXR0cmFkZS5jb20vYXNzZXRzL2dsb2JhbC9qcy9maXJlYmFzZS9maXJlYmFzZS1tZXNzYWdpbmctc3cuanMiKQ0KICAgICAgICANCiAgICAgICAgLnRoZW4oKHJlZ2lzdHJhdGlvbikgPT4gew0KICAgICAgICAgICAgbWVzc2FnaW5nLnVzZVNlcnZpY2VXb3JrZXIocmVnaXN0cmF0aW9uKTsNCiAgICAgICAgICAgIA0KICAgICAgICAgICAgZnVuY3Rpb24gaW5pdEZpcmViYXNlTWVzc2FnaW5nUmVnaXN0cmF0aW9uKCkgew0KICAgICAgICAgICAgICAgIG1lc3NhZ2luZw0KICAgICAgICAgICAgICAgIC5yZXF1ZXN0UGVybWlzc2lvbigpDQogICAgICAgICAgICAgICAgLnRoZW4oZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gbWVzc2FnaW5nLmdldFRva2VuKCkNCiAgICAgICAgICAgICAgICB9KQ0KICAgICAgICAgICAgICAgIC50aGVuKGZ1bmN0aW9uICh0b2tlbil7ICAgDQogICAgICAgICAgICAgICAgICAgICQuYWpheCh7IA0KICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiAnaHR0cHM6Ly9kaWdpdGFsLWFzc2V0dHJhZGUuY29tL2FkZC9kZXZpY2UvdG9rZW4nLA0KICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogJ1BPU1QnLA0KICAgICAgICAgICAgICAgICAgICAgICAgZGF0YTogew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRva2VuOiB0b2tlbiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnX3Rva2VuJzogImhjUzlxT0g2WXdyR0kwTU02Z01JUWJIdEh6ckI3c2IzaUw4eFV4MUgiDQogICAgICAgICAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgICAgICAgICAgc3VjY2VzczogZnVuY3Rpb24ocmVzcG9uc2Upew0KICAgICAgICAgICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yOiBmdW5jdGlvbiAoZXJyKSB7DQogICAgICAgICAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICB9KS5jYXRjaChmdW5jdGlvbiAoZXJyb3Ipew0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBtZXNzYWdpbmcub25NZXNzYWdlKGZ1bmN0aW9uIChwYXlsb2FkKXsgDQogICAgICAgICAgICAgICAgY29uc3QgdGl0bGUgPSBwYXlsb2FkLm5vdGlmaWNhdGlvbi50aXRsZTsNCiAgICAgICAgICAgICAgICBjb25zdCBvcHRpb25zID0gew0KICAgICAgICAgICAgICAgICAgICBib2R5OiBwYXlsb2FkLm5vdGlmaWNhdGlvbi5ib2R5LA0KICAgICAgICAgICAgICAgICAgICBpY29uOiBwYXlsb2FkLm5vdGlmaWNhdGlvbi5pY29uLCANCiAgICAgICAgICAgICAgICAgICAgY2xpY2tfYWN0aW9uOnBheWxvYWQubm90aWZpY2F0aW9uLmNsaWNrX2FjdGlvbiwNCiAgICAgICAgICAgICAgICAgICAgdmlicmF0ZTogWzIwMCwgMTAwLCAyMDBdDQogICAgICAgICAgICAgICAgfTsNCiAgICAgICAgICAgICAgICBuZXcgTm90aWZpY2F0aW9uKHRpdGxlLCBvcHRpb25zKTsNCiAgICAgICAgICAgIH0pOw0KDQogICAgICAgICAgICAvL0ZvciBhdXRoZW50aWNhdGVkIHVzZXJzDQogICAgICAgICAgICBpZihhdXRoZW50aWNhdGVkKXsNCiAgICAgICAgICAgICAgICBpbml0RmlyZWJhc2VNZXNzYWdpbmdSZWdpc3RyYXRpb24oKTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICB9KTsNCg0KICAgIH0NCjwvc2NyaXB0Pg0KPHNjcmlwdD4NCihmdW5jdGlvbigpIHsNCiAgICAvLyBJbml0IEx1Y2lkZSBpY29ucw0KICAgIGx1Y2lkZS5jcmVhdGVJY29ucygpOw0KDQogICAgLy8gTmF2YmFyIHNjcm9sbCBlZmZlY3QNCiAgICBjb25zdCBuYXZiYXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbmF2YmFyJyk7DQogICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsICgpID0+IHsNCiAgICAgICAgaWYgKHdpbmRvdy5zY3JvbGxZID4gNTApIHsNCiAgICAgICAgICAgIG5hdmJhci5jbGFzc0xpc3QuYWRkKCdzY3JvbGxlZCcpOw0KICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgbmF2YmFyLmNsYXNzTGlzdC5yZW1vdmUoJ3Njcm9sbGVkJyk7DQogICAgICAgIH0NCiAgICB9KTsNCg0KICAgIC8vIE1vYmlsZSBtZW51DQogICAgY29uc3QgdG9nZ2xlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ21lbnUtdG9nZ2xlJyk7DQogICAgY29uc3QgbW9iaWxlTWVudSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdtb2JpbGUtbWVudScpOw0KICAgIGNvbnN0IG92ZXJsYXkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbWVudS1vdmVybGF5Jyk7DQogICAgY29uc3QgY2xvc2VCdG4gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbWVudS1jbG9zZScpOw0KDQogICAgZnVuY3Rpb24gb3Blbk1lbnUoKSB7IG1vYmlsZU1lbnUuY2xhc3NMaXN0LmFkZCgnb3BlbicpOyBkb2N1bWVudC5ib2R5LnN0eWxlLm92ZXJmbG93ID0gJ2hpZGRlbic7IH0NCiAgICBmdW5jdGlvbiBjbG9zZU1lbnUoKSB7IG1vYmlsZU1lbnUuY2xhc3NMaXN0LnJlbW92ZSgnb3BlbicpOyBkb2N1bWVudC5ib2R5LnN0eWxlLm92ZXJmbG93ID0gJyc7IH0NCg0KICAgIHRvZ2dsZT8uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBvcGVuTWVudSk7DQogICAgY2xvc2VCdG4/LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgY2xvc2VNZW51KTsNCiAgICBvdmVybGF5Py5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGNsb3NlTWVudSk7DQoNCiAgICAvLyBJbnRlcnNlY3Rpb24gT2JzZXJ2ZXIgZm9yIHJldmVhbCBhbmltYXRpb25zDQogICAgY29uc3Qgb2JzZXJ2ZXIgPSBuZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoKGVudHJpZXMpID0+IHsNCiAgICAgICAgZW50cmllcy5mb3JFYWNoKGVudHJ5ID0+IHsNCiAgICAgICAgICAgIGlmIChlbnRyeS5pc0ludGVyc2VjdGluZykgew0KICAgICAgICAgICAgICAgIGVudHJ5LnRhcmdldC5jbGFzc0xpc3QuYWRkKCdyZXZlYWxlZCcpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9KTsNCiAgICB9LCB7IHRocmVzaG9sZDogMC4xLCByb290TWFyZ2luOiAnMHB4IDBweCAtNTBweCAwcHgnIH0pOw0KDQogICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLnJldmVhbCwgLnJldmVhbC1sZWZ0LCAucmV2ZWFsLXJpZ2h0JykuZm9yRWFjaChlbCA9PiB7DQogICAgICAgIG9ic2VydmVyLm9ic2VydmUoZWwpOw0KICAgIH0pOw0KDQogICAgLy8gTGFuZ3VhZ2Ugc2VsZWN0b3INCiAgICAoZnVuY3Rpb24oJCkgew0KICAgICAgICBpZiAodHlwZW9mICQgIT09ICd1bmRlZmluZWQnKSB7DQogICAgICAgICAgICAkKCIubGFuZ1NlbCIpLm9uKCJjaGFuZ2UiLCBmdW5jdGlvbigpIHsNCiAgICAgICAgICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9ICJodHRwczovL2RpZ2l0YWwtYXNzZXR0cmFkZS5jb20vY2hhbmdlLyIgKyAkKHRoaXMpLnZhbCgpOw0KICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAkKCcucG9saWN5Jykub24oJ2NsaWNrJywgZnVuY3Rpb24oKSB7DQogICAgICAgICAgICAgICAgJC5nZXQoJ2h0dHBzOi8vZGlnaXRhbC1hc3NldHRyYWRlLmNvbS9jb29raWUvYWNjZXB0JywgZnVuY3Rpb24oKSB7DQogICAgICAgICAgICAgICAgICAgICQoJy5jb29raWVzLWNhcmQnKS5hZGRDbGFzcygnZC1ub25lJyk7DQogICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICB9KTsNCiAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7DQogICAgICAgICAgICAgICAgJCgnLmNvb2tpZXMtY2FyZCcpLnJlbW92ZUNsYXNzKCdoaWRlJyk7DQogICAgICAgICAgICB9LCAyMDAwKTsNCiAgICAgICAgfQ0KICAgIH0pKHR5cGVvZiBqUXVlcnkgIT09ICd1bmRlZmluZWQnID8galF1ZXJ5IDogbnVsbCk7DQoNCiAgICAvLyBDb3VudGVyIGFuaW1hdGlvbg0KICAgIGZ1bmN0aW9uIGFuaW1hdGVDb3VudGVyKGVsLCB0YXJnZXQsIGR1cmF0aW9uID0gMjAwMCkgew0KICAgICAgICBsZXQgc3RhcnQgPSAwOw0KICAgICAgICBjb25zdCBpbmNyZW1lbnQgPSB0YXJnZXQgLyAoZHVyYXRpb24gLyAxNik7DQogICAgICAgIGNvbnN0IHRpbWVyID0gc2V0SW50ZXJ2YWwoKCkgPT4gew0KICAgICAgICAgICAgc3RhcnQgKz0gaW5jcmVtZW50Ow0KICAgICAgICAgICAgaWYgKHN0YXJ0ID49IHRhcmdldCkgew0KICAgICAgICAgICAgICAgIHN0YXJ0ID0gdGFyZ2V0Ow0KICAgICAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwodGltZXIpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWwudGV4dENvbnRlbnQgPSBNYXRoLmZsb29yKHN0YXJ0KS50b0xvY2FsZVN0cmluZygpOw0KICAgICAgICB9LCAxNik7DQogICAgfQ0KDQogICAgY29uc3QgY291bnRlck9ic2VydmVyID0gbmV3IEludGVyc2VjdGlvbk9ic2VydmVyKChlbnRyaWVzKSA9PiB7DQogICAgICAgIGVudHJpZXMuZm9yRWFjaChlbnRyeSA9PiB7DQogICAgICAgICAgICBpZiAoZW50cnkuaXNJbnRlcnNlY3RpbmcgJiYgIWVudHJ5LnRhcmdldC5jbGFzc0xpc3QuY29udGFpbnMoJ2NvdW50ZWQnKSkgew0KICAgICAgICAgICAgICAgIGVudHJ5LnRhcmdldC5jbGFzc0xpc3QuYWRkKCdjb3VudGVkJyk7DQogICAgICAgICAgICAgICAgY29uc3QgdGFyZ2V0ID0gcGFyc2VJbnQoZW50cnkudGFyZ2V0LmRhdGFzZXQudGFyZ2V0KTsNCiAgICAgICAgICAgICAgICBpZiAoIWlzTmFOKHRhcmdldCkpIGFuaW1hdGVDb3VudGVyKGVudHJ5LnRhcmdldCwgdGFyZ2V0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfSk7DQogICAgfSwgeyB0aHJlc2hvbGQ6IDAuNSB9KTsNCg0KICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ1tkYXRhLXRhcmdldF0nKS5mb3JFYWNoKGVsID0+IGNvdW50ZXJPYnNlcnZlci5vYnNlcnZlKGVsKSk7DQp9KSgpOw0KPC9zY3JpcHQ+DQo8L2JvZHk+DQo8L2h0bWw+"}},"time_used":452,"timings":{"blocked":-1,"dns":3,"connect":19,"send":0,"wait":406,"receive":0,"ssl":24},"alerts":{"ids":null,"analyzer":[{"sensor_name":"dns4eu","sensor_type":"DNS","title":"DNS4EU","description":"DNS4EU","scan_date":"2026-07-27","alert":"Sinkholed","trigger":"digital-assettrade.com","verdict":"malicious","severity":"medium","comment":"","link":"https://www.joindns4.eu/","meta":null}],"urlquery":null}},{"url":{"schema":"https","addr":"fonts.gstatic.com/s/spacemono/v17/i7dPIFZifjKcF5UAWdDRYEF8RQ.woff2","fqdn":"fonts.gstatic.com","domain":"gstatic.com","tld":"com"},"ip":{"addr":"142.250.178.67","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"font","requested_by":"https://digital-assettrade.com/","date":"2026-07-27T10:27:12.711Z","timestamp":1785148032711,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.gstatic.com","organization":""},"issuer":{"commonName":"WE2","organization":"Google Trust Services"},"validity":{"start":"Mon, 29 Jun 2026 08:39:25 GMT","end":"Mon, 21 Sep 2026 08:39:24 GMT"},"fingerprint":{"sha1":"4E:F2:73:C6:27:16:58:35:FE:55:D5:30:6B:E8:6D:2B:DA:B0:E8:7B","sha256":"82:EF:6A:61:96:A5:23:D6:2C:2C:9D:77:67:04:D8:7B:3B:6A:50:DA:3C:6C:6A:5F:4E:2D:55:F3:FC:DA:0B:EE"}}},"request":{"raw":"GET /s/spacemono/v17/i7dPIFZifjKcF5UAWdDRYEF8RQ.woff2 HTTP/1.1\r\nHost: fonts.gstatic.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: application/font-woff2;q=1.0,application/font-woff;q=0.9,*/*;q=0.8\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: identity\r\nOrigin: https://digital-assettrade.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://fonts.googleapis.com/\r\nSec-Fetch-Dest: font\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=5\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccept-ranges: bytes\r\naccess-control-allow-origin: *\r\ncontent-security-policy-report-only: require-trusted-types-for 'script'; report-uri https://csp.withgoogle.com/csp/apps-themes\r\ncross-origin-resource-policy: cross-origin\r\ncross-origin-opener-policy: same-origin; report-to=\"apps-themes\"\r\nreport-to: {\"group\":\"apps-themes\",\"max_age\":2592000,\"endpoints\":[{\"url\":\"https://csp.withgoogle.com/csp/report-to/apps-themes\"}]}\r\ntiming-allow-origin: *\r\ncontent-length: 16520\r\nx-content-type-options: nosniff\r\nserver: sffe\r\nx-xss-protection: 0\r\ndate: Wed, 22 Jul 2026 13:11:35 GMT\r\nexpires: Thu, 22 Jul 2027 13:11:35 GMT\r\ncache-control: public, max-age=31536000\r\nlast-modified: Wed, 25 Jun 2025 16:58:01 GMT\r\ncontent-type: font/woff2\r\nage: 422137\r\nalt-svc: h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":null,"data":{"size":16520,"size_decoded":17333,"mime_type":"font/woff2","magic":"Web Open Font Format (Version 2), TrueType, length 16520, version 1.0","md5":"049dfc5919c21896a13296775d80b8c0","sha1":"e2ee2d370f0d46ca5a113126da3b58e16240fdec","sha256":"fb4a81a2d0a893e5c38c394a7e716a1cef0b24610a0af49c96f6d529bd66bf2b","sha512":"ffe3d5afd5a536cb2e78212c39163f16c254fbddca8c586ad99f0f06d27dad6af5b664d523909a0e3c5ed10d239e7f0fd96f2b2970163b23082f8be15a62cea2","ssdeep":"384:KWnkX//eTuOOsUGC9voO/fHl7exLa4Mp2e0+9NxHg+UM:KSm/GTuPsUG8vnnl7aL2pJHg+UM","tlshash":"0272d148764753bdec6bc86ce1e9ebd2e835b934c83c428fc858d8152161a53e86e34c","first_seen":"2025-02-19T12:54:04.599046Z","last_seen":"2026-07-27T10:28:13.810632Z","times_seen":3115,"resource_available":false,"data":"d09GMgABAAAAAECIABEAAAAAoRAAAEAjAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGoFWG4xOHINwBmAAhRAIgRYJnAwRCAqB7yCB0zwLhAgAATYCJAOHfgQgBYRAB4gCDIFWG/mPNexGb7sdPCad/ocnikB3nFfRBN+ecGO0YeMACPtzIPj/vyRwQ0R0X8DWvUV2RLGSCBys4AgLPMQZlDkzCGPOjc5oclOGZsoUCyGABiqhmGJb0am4QRZ1haiuVCrV1b/9FrSWxee9GlH+ZeS6siZNtvA/yq7Ow+n9g/sSLjpNeIroiNuPh9Rxn3K1/7NN3uhu0/O6M7BtbJ8kmfb+PL/NP+c+QLwXlomVQ4yIv5kPMBoVo1bx93FrXKRz1eqyrEXrdKWLzq///zat7r0P/q8quYncCGqftgeA1DDoUSSrqUYz7KXMpxazGCGbbDHcIKMIgee/34/f2ue9L+AZ2i+BIYt4FJGmUUSiS2kM0UKDRGLmDtG2irvbNwYDFQNFSnKBRWCJXlhYamFxCdFTMOowzysv+9v414+r/Co/0q8Iv/onnfrvRLbFZBHZlhxS4sAFCgjT+Kf+Ze6eFNcSuJTl0m+Tr28FcdkdFgW1f3UlF9WFFRjlh/3sAB2glhL2bUg/KK19W9Rb1OqqkY/bIqaKzX5amVqzZDlffMt2ykRvycNrh2XEf9SZ732BJUNy5iR2gI6cIx6mgjyMU7epHeariqo+VEwpkAPTc3XvL9fb+Tdd2f4/kkA4Stz6PTmzjnLIRbPZIV0uKseiG/3/NTP6EySNBIhBgJCA4+CCJPA+gfbuaTSCG2lhA8u+pws5awXcsnAp5SqFyqGPnZ+rc9m6avy2dFG37g3Pf3O9dm5e5gPnF1h+qHFJgSUaXdUm2Z+dnT8l5C1mS4pQ9nj0BApVZR1ZXeX6GDrBt9tkQIjU//tp/WIsmdKOEkW4KNIVEJzZr30VYlUumzUmXKkRMcTPxxr07vA3/bEldCoQLBTSEfE75OvJYEBEJ/et5jREd0gMMQySkkKdmUOWLCFr1pAtfyhQEBQiBAqjhNQyIA0NlC0bypUHFRgLvfeR+eofzC//Yn6HAEJCAAEAvABYAzAG0AfifPBHf0fEN/9CBt4b8/1VF//enTr6gUTjdxcBUOYikBnPD+Wh0875qGLoRAAAOjoIACIqi0GfXQUE60Lh/iiqHUAQHp8gBn0Ot9EJW8zgoguRLhDFwaSjFwwPCSSAHnTZQOgXMSCuvodX1HVNUxtwYs+SsQF6ETrudJ6uKPTb1dRQk4DuVi1QdS0H0tXurrlWwgJ0DRTHcNNA5uKJKP7vJDaxn3OSgKmSSTBycta9VlODWthnV4ylrgSLwmLkdLJ2RjEEI9BV39jdqeAtQpw0xf5nAPoB6AGgE1RaImBblAcwAYizWq5QTh+mUDFQqJtuJNVCjJv1MC4hQpJN9WPGEQIQgbMxz8rQN0hXNalfXU27JkWVTwj+8c0Hr/iE9yT+IpERgs3EG7zCJp5h9h0F3/5ctpNVxIT6MHADV0HUYUXLAuqvy5rGyVzPcWbZyzRTX145TZIEMVqIEiFdmKKFsjIhOV1Q+dlXHZiPSYAiNCHAL1/yGiVfW0TwC6YOg++9SCR8XGK4Yx84yalYJmpNIstH4G4Rek7LvJWirfXEKUROy9wPTkpqc60PTkIkxLOc4xHCIgblnVBRiIvMEYUYlYxEmeMnhRiJmUwUIzvTotaOzg65Wfue9G8N4mYlSCbZ82iJhJvkfXh6bnMyD06ciopwcuOKpRSiwCVGaOwcOhRLpKunWIhdIhZDYSWRVIRiwnJkGKzwCGKARzDxS0ziknh+C/wdBDlwSbTCxcmjFqYMsnekKBnqZ46GntyVKKnizmmiWebtfbMAZV7uJRcnf7lQJ3wgRnJ6dHXwD0HFbygZqVwiK34NZ9iWE6hPxwjvz4Y3v0yD2Kot/h1wP6sBLb1yYI5zuBbF/2N97IK+OSC+4i5eyB8M0cXmxGJrS0DikpDk/iltkeQhAW0sWhcF4JRJT5XxsJZ18qnxDYINt4pKQb6xuKQIrDePyNDA/+d4yQjo9/YiEQCOmCGKF4N3AxACkvhRglfuqKGbFpmmtD9iqR+MqnPaNyhL5F7EQdyC7AFpwJAt08wFJAyIdgvmWQbmK8GXiNonY+EDt/RACafpkCUTTNVR17gt7RviQhT8QtAKUddIhVCSccWEC5BHF0l1N3Dpe3gipnpNxrYQ0VQn5TbClES3KYi1bgWdahxj3e005cOXoWiCyuLlEALyVXoAzOn/CP6Awi8gERpyhADpdQAtgHyf4v+dOnRFaCQbqVye/t8ycF1DDhwHvAwAwL9ZCwAZAlrI+XqAiJ1TUJOeaV5kBAYYwt1k23VgoQOb9YRu6Y4hJ+AMOZPjFdxaLofL54q4Gq6J65ZtNzLmXWG02Lgbv/L/DgAZOQ/r7ASxRRcC13Hiz5dzq7l1O9TENd5VEQAAoAMbF/D/1P8b/xf+Xfr7CfD3+4PNAAAPLjzY8+AY3mH6gfyDq/tt95Putdy7AMgLQLwHfgAAXsMnJ57DL4RnuAD/17Etdrhov9veuKTJMbX2eaDaIVUOqLHNM088tUszRDFSnfXQUy+9DTDQIIPJGLNmy469IeScuXDlxkODgxq9ctQfjwgUJESYYSJFiaYSL0GiJCmyaeXKU6DQcCOMNMpYddrVe2GrnW6665Z7bmj126+Nc9ZLV4JwzXNrrPXXH7TYEwKrjXfOCsuttJsIISAmZMCQRHdddNVNf3301U8nRsyZMGXJzCMWnDhQcOTORj5fXrz58+EnQLChwkX4h1KsOLxQyTKkSqOR7rFMpYoUKzFajjGsZHnvu0+dcdxJp5zwS+rTxLMU6ILgDlDe59vZOI+CiAYQgbyeRUSa1OGmp///EwT4f2e1HMqg+Lssta1H1FqAeonrEVaYz44poQPhmR8o8P4MxJv3ZO5+em4fsnoJU6RnzyQink9lKl8amRhrCa8I59LvAMl5cCURGLVpSQJixZYkgfaQ3Lo453rUiBBcJrZ6Ludz5yT4dQbyLmyqF1tS17OOGAyePsaz63Y0tRO358+uQ0oR12mqedhQNjz0B9qZSnAGVAqZNOgLGwWmd2KyQQv+q8tVLD+7SgUOmgGZ6i3J0PEvv5Rq0kvjw+tvPnyqHDG7jS+KjDpjyyp7sayP6WlPAf4lYYr0LUqA9QWDRiSUxTC7YDcSVFfmIBHk2RAee8Kdzmd1wWQmTA/P4pksDWHFM1o+q7ZRifLySgL0rqBJcVqSBgYgFbEFJ6w9J+44dWesXU20koza2QKyL0+mDpPQtiWzDdQbSroNGtITm+8eIkX/l/OZ+4WcVNn3oTZxrF7UKojvPFEa/XjXNF3JCThj0QFhbjBNnrkTEK7viCSmU6LvCCeTXZsBQqeKbM4o+TzruTXcFIVC/7Y5Ft1sU84H7pF1IMDpHUriwVpQij0TqQgYpLSjVboKnmFYreOQWHERkuGU+rzGIrAJMgtDMKyBiDY226GwLmStvTVi9ZGtGRIyMaj86u8sKWMXAJrEd4w8AruoKWUsfAxlFoIKFKycex1nlHxJaafCgPTRqLiTkiref/WZ+unrHQozmZXU8H7fv//yMGjsbtHcdWRQe98ElaUTdUcl914aiXBZeoZyJtGOgGTU80iN6aTCpW/g3ylPrKxzOMmQAcJD8WuvUuJoY9Fj5jFaIaacNwNo0ici4bhDqi93m4G5DET96qm6w4CiOwpOujmEU3tvHpS5lTnnnCaAXpmoZ3255f/F4W3NmSYyGEVJR1rOEMwYAXNGgQWjQccY0DMWLJkIrBgH1oxvl2MtxA5VybT3X72gIvo4NOzWzXeTqk3/N7yoLvy/xxZhjlLKu5aoHz/FqExOYiISjBQjw8gxCowSo8KoMRrMqcQS2HRcsEoNtBt6Ios90wropkvfDfRwCbkLE+UMGQCMYNW4xFUJ8IUTUqMFsCb3eBYXq+dNxWGSad0e+CcqrbylpoJJE9vASwnadjCHVlOX1ohSJOPxOcE8AgCAi21ZzdtqyHyG7AKbGMkRIZx3druQ9lBd3iw5zukkYrOWuY9MiHkXVdMI6aHpfZu+jZz0RfiJib6Z7rpR0faFRzn1AAST1idIxYinRzIvckWOxUFaOrCZRljCJowKNkDG4Kg08GNsycQ3/pCy5ciwvrLsqou4/SyRUsqADI8JGe5bGqIeOZ0qUAytkGZsu0cMRlNoiHh5aVuiIFStyDCuGiHL4ckVYrnYBgNqKsgnDhqM0kJHpHkna6TKapjwkcwbUXOWFPSjHOrEB7ORLigim6sztUchsmTCEBB3ZE3lmARvimicNb7tqa+wKdbwTxTiydTEIBNq0dsShhjT0Ou9VqPu+srJB7IC90pDppN365ypIxjiR9pk6ewWfW3G6rGpVe5VL1yLn253bOrVn0EUTHmCz8GD5Jx8AW4yRSfytUmmcU4KGVbsg+BaCEw/lYoFIpH8QVSA3gRZ7UYlq8ukX0dm58Oh3HPt2v/FyJtj2eJ49uimrBrrN/OsiqtuLIeDQjvmpjr1nGelKUiVqYJb3cb+n93BQS+u2DW7k2G5vfEOMiBxFvdK8a7X7L/VvdeBORBUGKa0a232fTj2LN6TdnkAuu8FCGlEe6hi6hCI9VDFBQCh8B4qZR0CKg93VcP7ACCwEi+oEuoRSBRUSa0ASLKgSqlHIFWwlLY0wV56XKmMOgQyPVSaACCMLA9Vdh0COR5arXgESW58U3n1COQL2gIUIwoFVVE9AsWCO0rgPeBlSFuKnXWz3+YPx780QvlJRUBx5IRDUjVKo4zWqMYsAG9wxvrejPO97XiUvDOh8K4malSTNJp/P9U+TPZ9+M/3Qef7UFZAaopGNVWjmQbVvkz3fZnh+zLT92VWAanZGpVe45ry8V5W4L51t6j/NwWEC37bxIjNa0kIuPYXZ3+dM70xLmn/g3aAsP1vOwDADgCADALgJED3cTnQZykAdxpADgKcR3I4pH1aR7jfGK0gcNSyLcNn3UlAs1mbfTk9ZYIpX7qGZW2YQPIEXaq6nKEzehNApOPl5JfBujD6ZEg+WUiCKj8updcG1zduefLciuAIoEWgGy3FIV6TfFXi6AKv11D+T09ZEapQqhAuziKMCNdAxQORpo0Ppqmnb9Lav6spCQzcnK+yi7NpF1mn+WglQkCMDBeF2QA0Tqusplh7/5eXy6ylNoDNQLy6Orrb7YpcpWSew4FlESZfjB2ApWUkihKvQOxyyZYuvgzSfnPXXVyYlZYATpXuuQUmXxm5QErpCyVMz+JUk268S5LHqRHYWSCiChkO2hCSAdEjwZ7IKGO7UUcX5T86zAWToEYVUzI14yFGVZRnaSzlnl7Cq1kiZWlSoBgKhlqAmw+ZkKK0/DqA7loQPF5tliay8nbEsjZKBV1Lhr6tBNrZiqfGaNa0WUH9tdt3HT3Vx+LCNW9DfT/PqTPJ27Cshup77EA9MureQiorWtm6joOu1evWZWVhqprsK1tGKwa4YYZEWLJBY4RSkPjK40rV+hcru66IFKWEIl11jQkZkXJMQDkJ0U0/0J4BG5nNA1w/A1q6OplpGWRBj+7cTAkVcE9mKSyNCehfnMk0FVVAiHD8erAMskq5RKBupUp9iajfWR3jm6eyV5eLqmPLs6ict3tA29LNUnZ+ZtBGlXBbonCrRK8BwhViPc93M3R2QM6soL6obXUr8bCNMVhjXvCEG3yvU6Rcw4dzDl5PmF5Ssc7RO3NCbNwuYShLdYzaj3GMUKZdMVWPcnIffUX6ZPXeJExkCWwmFg8tNJHGS5Gi6hRYtChBKWQBw2b8KvrsGDIiF3v21CPdrXnUkEbWz0lheI1WrRWQ4KjpdfZbg3I6szCJbWhziS/CoNDU7M0ZcXsK1P5Nu9p1kx+86Ppa9rzO468/MQVt9/BPNihv3C3jOkOtR3nkRc6rId0uUqHN3FZsQ5uHrV/1tEe9+bTZEB+8aSLJMrVjvYgSUdBbuFe6Qsr2A+sUG5QcBLC0UqK0HFdTTNcI8LB1tTSx9RepswvIaM7p4mSHvp55pLwOoqHkXG67EAYMoyMD49Ry9Ce0TJFyEPOYSc2AhxgUrqIQWCoIGLCOAbvf0jvq+rI1gJ1i44ClHpPmE49TjN76+ZqemMrx6WbQ5p6OMeQpir0V6rf0UrVW6GtZCXBIj/ipcni9A4qpOrzs1Mx9CRk4Hi10x/0kSeViHFgDRqZvMMOZyuiOlc8J0KjkwwKOivE2jvpIzR95y1Wtnr/+zjZbM5lj33YZXtUoxQEZdUtH89GjZi0MJRj6eiQTmY+h3Zw3ZmDHl1kwIH2CQ2GiFEuF2E+wk+rB8LMujAAtDopIORKEkFVr+tHKw8blD6KfBHV1XqVNfFRHsPIWWb4UKgoN9Wa1E2PXFOJBTPpAoKaEIfYFQPVDecusLxVuvedyCNUSmHkFpqAEkxg5TodMxtF4aiRwpA/loFjiXXlcXabCFxzwPGfjviEq7KnaDgDqbtHjQZYcRLcT/G72zuJE3TQmsGFvg6FEtur8MYUw0r2iWtPqrzgiW7IvA+haI8u3YWT1VUGsWn2gBoRt5fpWw1CVlMuQ8lTNgEnCsgbXQ3MzZArTqWt02i+rDDTSHRenkb6dFBm2YrBVq2KGGqUCJ3SCrmFgdUmPV0ClFyGbF7StGejCUXZ9G4nskwiEqgyq28pW9ucYW1IJiAuXsLfBArfUNNACmtUq00RcPjSpqM1KHKKUmPAxpEuqvppOaEhH+2+3Wtml0J854yCTyNK8hD7y1HWpdqI5HqcfN2SwaMaikkXZMTUrmIDHiwU9AtfHFwmoettsNQ4npAA8QHoAo05lzrbGSS7z4PNz/hii1RdphUo+cGEvlu272B6v83tg2H1Og4NZCB1V/9NLW4jMucofj1M6VHFyGQwwNAmKD+upLwI6pcIXi1YpKupzXhT0IiZ67mqCOgoTplWqJiozJqjHq1EKXxOdQYnhkKwNNSZIWz7myr0UUNw+acRXtRziyh42IZe9CEKNUrirOg7CTwLIzcOIRxhOMYDxJ7ViQCNmQWJoZsOHY6KelFNeScveV0tva1ELvdokio4SFZZPHEboKi5UIWumKfJriGoTPVrcstNLDmO7KbDD+SrTs/guN+fr2AxaG5VcSLHWcfFuX9UkNjSwHiGrtCMUz1yHyASFFQ0oxpBHTRo8sykrO/ZKElFfC0Od5mIn1sWrSzrqsuXpnVi2snfFtSlcpEkfVM11JPjxl3J0lT2qc4Zr6mVls+IVJ3stmTDR1OaMQF9Oo9rcHGpNNMoi7kiIcbXCNDVxagt9X/4mVVziSIzN0nJMObBocELCVQfQhapBhYRiKDVYgOQxTO0hPOqKGpPkG14CPzTjEibScowk0yYNXlViXmTQQSzRFkLOfj9ooyFetPaqY+Nq2m4h8B2K2Xb5YLkaXb0awRICsU3XfrVZq7eL4bFmWi8740LbnGzXE4M0ukA5FIcUbpJEU97V8rhbc6BNFUtK7Ls+ybZBxfTsCiUlZuQaGlyJtgK8KJqg5M0eOYSCESEhgYom3V5NrFoVp1TH8MpoVWAU+KyPsoiGptO9G9RgJmbASCZqIA0ZWIbvDFAv2/pEBi69hsV7q518IorVD6q4FkI9NEVWIimJJWSzJYR58HmvbKL6S/0oScpMwUlwAjSeocd5+y5Fkiys4cK3xMJzOE+DFixjRPfNy0xxQ9LiTJmmZjzFmbY5LQcgXu4rMMguYDVzQDJlbe1ov52nfq8fGbjyGMaq+y6fera0rHdgyK/ycFquFNJUyAwvZVcPj7kHsw323lc/qkyYRpfpJsZflK9UeO2V2rWOxXTxkF9bGwz5g06h11NajoKTIBjKMedhpyk2pJZcvW+NK7HpAryK7+//Zisldvmtx1HdPXL+RUXk9KsNkb9dXED21N8wQuJrJC1cC8nuGdBGStxdoYFggCviBqLytNn66bO8gq0o5OgzmXdzp5vDTVrIGbdb9tmcGSOnLCpfNXNKxchIUaDruFfCS6SysMfBSEVGpy/IiZTEuHvV3LDyEkIPdvbPKc/gK/L2zR+V/aySqb26uYq7DQVFXaMtnTXzJoDdiGjxAVGL1GS7wIr6/x5f2KvBQn6+fdymmftnviqWKUMR3iS3kfJVhacqpMzql/tIr68sdcHEFb/KRhZ6ti9URdIvyGHhq1TkkPz3Mq12Z2TqBR3Ju0lhRmmZzMC+xnsjqJLYCGW6UvKEdIuQvOSXyuVxXy2PylCaTWWQGcQ0uV+2n1z4RaVLVDJn5IwdWehCo5gLtxjiGsZWhZE3SK/57KqRzi1/uJFVwLkfMqKAHQXl99JXGZSJBX64OHKwcuHGlBnJ2LmuNnL27asUUyrtwheqznOJr8qsxA4WmnWirGLmqvKyRSNDMdElOQvSkxKjX+wbU5yPhfSsT+X2S6aZTM6rKkmxPHhlbSRPOxmbnz0BF4gnzuTNsNvWoSP9YMP73zqVc2yDIx/mx2zzLzmX9muISxOY6N1msccW/iLatcqYhqNRJYRZvCe5w/OH1jN1bod3Xj7VQR842Tni7bqPTn/Kxl7BHP8cH8sUZS/fuqHXfGv2ikyhjMOmial35DJ18n2nYlnoMfAKS/AP/XXtRs7b/J/EWjsjtQGzrfZx6OrWnrYWksQNkD5iTIH+4k3JFNCbon0qd3jYaGo3ymih8t0ABxZhNduEkGmldiVjqKSvIwJaJ0fN+cPPkt+Szw7z1IyRbds2vEiT1HAiGCITtCRsMKhQy8kfPX5f6s4ZMAopIYkX9dwXxMSIbeZaFAAKQdl+jYPFSgrkYhJcjLfN65hJaENWA0mgr6RH8n9jvv14+62bAQrtWJX5G5yv23LsE3CIfLWd7WZSyWI4+03W0WgpZR2D/3G0a6LwFkCSBzjsGkLX8AYMRmlE5PO0dEWBTkp5lUqlF5ZG0FK6peOHXxnR1rgVqBRYWNBUcrilsLjDV7YRIaKwucqalBtctUGeY/GoN367r7zCPRLv4Os2iHDPn4k1hSehphm4MeslGEgHPA+C5AJZC+Zblai1z2QbjVRQ1pF+E+nztndEK3TysB9WKf1KmNIBvZwKwGdMDHy1yTNGgYhn9Worbu9EbLE9obKmNqxRjZBKZRQFBmUkLFOrMVHQGSqbtsY6ETUVQ85ykym7ts/D0Oz8uHu3Vgxslck+RpVSjtFBs0OThLeAWnKBDILNbXKhT+WH5ZQe6GDKr1QOPpkiaKleFgnIz6gZ2KgZH4sCyjWeNVs0hLgePGQnZsX/iMt6ynw/P3BPxbcVbiG9Tnwl1YFtGbW5fUgAhuM2FKaCCpUqqOAtKDDAFcvdGoY367COB6s99qFhO26EKpfnEfFU0Iubn7LEwzAaz9U5ap/HeWKsJWz+5vQ1xDVb+Of4jxGn2ZzeF4gXTqsOLxJiNuci2BSF1diwCduewzU6NASllG2AJAfXJnNy2fsT5ZffnlggRWAkqrdQ3YOrJGQ1iYcsHipN5SGote6auvrZuvp99XX7l6zExfQ88fXpo4Sta2g98XrSasxyiHiUzSl8gqhYfF/micXhf0Ea9y+Q15YtPJeGnvuY+dn3UPrlt8rfbkoQt8MXiX8mbifEyBKJgkdK+cLPDgOey2+weIxbyG7BPwLe9qYI2c8zcYRdsvjuxBJJA0VmPN4jtmmLlQL4uECxQbdxCkTxsfPj9CEBOUwZgEFmUPzo8lRK5/2rY/TJRWNHluGVy43wRDOTmTBAHVF2jLU5wAoGu6NScgsC/BpoZWHRaKujyGZZh+Ghksz1ex8aHhryrHQDr6dV6168myT3k2jfawek4sSym3B8fefdRdaeF+zlxQpwqBVWHIMLMKE8BEjy7p+95clzXEWMp3uJ2zEg8Yhgf1smbyVVhDstiNWUdL68hXjTyAhltKqo3FdGkG6HHpOJZU6Bbzm9os3tgFQ2qkGJxWGFB/d12l061POfSSh8PLIiBrW6MYjIUrbtDHNA2eiDfEVKXA4fM9pprQ29itV0UrVC5TIiepcP+408bSEsxQ5NKoWYDAmZmtRDWjnuFrpBjSYpRaMWSAeHw/D/zYp/jp+aJ+afJZ99iHgI47APE7pCRrRv1aCE5JB2L+aNpKk8colMga0h/c5Pz//QNvMMmHmmTajIS4d+iDifAcZnLjduLAgR2X65mR0rKbzX/Q6u+KZl03PMJLSgADDWuuctJg5Dji8S/7PDBZalLUuhHfAkQFs3ZRpAG3H9+i4BGCWU3Ck0FCK8JKk390Fc7KWy0mILUn6cCc189g33HaXivEB4pVh+/f+aYUrk4skwtZqy3CzCvb6t/GI5zODzGbC8WJH+QYAZg+uYdS/LscgHNb01tT01tbHamrjNSz7hA+NQM7Sj8djwEyTiWe/QN/do8eJkOenXQcIGzC3TB2MrSZhucuiHh9wRasCmzaDMcNfYUFV7RcqNcfaQSgsjPGaz9DtQGgl00ATsEUkcEsge9ljaJz654uTybXtvLSW6lQpT3MG0WNOr9N41u9wTvzx67Ossmd0VfumfJ8AP96BWBjVqNa5y19GsaFtzAPWqBREVJBVgv8tkqfj143eS3X8BgrZgjk7U0OViYvrRIfduNQMfMtn73P/7T7NZE+bq11oyLtoZJr2uRFugH2xMqvXOLtTQSwDc3j9kdvt8sSQOVBKPV6xUeCVSXF7uiiVC64XCd7/nXFj3y3FSdD/ZXs0RSRieAbUxhgKk0X02HzyPhUxAp6e6lBiEdSn1lA6YsNDzIP9soxsBqDHWr/bm32AjMTWkCdocjqBNA6lJTN8M3LRHD9niLhzC4y4bpI95vBoG3q81ZVy0IxL2uOMCf2cq3mR0duuM3THb4JBlunLWbBtw/+O3Z7MmHL8dYqnrChUij0eq9sVaceBpoUMFnzbVNKWeVKaUk+om/3tT/oaqeVYva76qaiGlLlR6GDxG8f3Uyy1m5Jpfn0PIlwsq23QNk4NLXqT5pTlU9u+f9U1xWaqadV8tE2XKVmkQlkCo+RNdXwEdRuSaKWS9uBQtZs2xqvaVVz9axg1SbOgK5D4atm6Q8A+xvPutwBy6A6NPdd0rQSTo3p7oPBSY2q2fMhYIIFSDNlmqekoY31TRRxaQPRGICYtehJVWXD0FT8izik45HJahzASrsoUlggLba8SvS5W7b6o8yKo6UFl5oIp10PP9XEnpk7cMXAdNNz2UzFw9uK0INKqnxE/KOWUCaPn7HEFSIiUEnPeXQ5pcjvxJ0W3lR5jMI+U1i9++s2K6vGKqovzEaTiJaabkHVxf+RsS1S45vBrOKjrhGe4XORf1/OY3lzZDal6SZfliywsv9eblaVoxnqV5V7xgBbnKvWpGBtFQ+/s6VBWp6SzUvA9PuZN/ji9Rj01et27rYLFiygbjX7HZtu0jhnlzbb6qPUek4J68SJ548VErrM7ti/Uv/yhFi5G8iOSHe9pFJY21CpMThSQCh1MEE1SCkNGIVTcw6Ai7ek3GDhNTq0hEtJriOo5fxHjb2/3LznD3YnvjkojlN6SNTJ0iXn6fuqqZqUH9BbfjVy731w5uv0IDo2fvu7ffkkjwx2x24Lm9xN7nAmys85bb3y2QZEjgtp7JYWI4S12TxGRWXwUeyQ6zbX50wFPJdE3ildANA0wNR4MZ0NwHBExwiAu8DIp8QQ2um03075xni6az03go+U+L8eDG5ooeoV9IbPaHDqR/Sb9YFAh9v+XOuTFJSB872PJP8icYqZLOb4RDW+rZmqyGXd+iJWUInM1xbL0CAIDgOV8ODhsndt4wN1oqA6BuoiGVJBSVVHb5BQ4nZ4j2X/L7gDuuPvrY2PecpkOvIIyomaaNF9QZz/jhQWONvgL/4zPqDct/Z5XkLyn66rr5sQFKvnQYrJ98H9uW31iEEaHx4verCfKPQUwA3UM1GBp7ZUQ8zuJ6HKxx8ci3wxMpWGRPZu4LDHVQK0+7mC44HdCqlHk52CUxDruazalwWjBnLcFv60t3afnn+JFGFhvcfqDBJ32t3CFhisodb0ibDFEL024I/0+T3YN9YWBwRwBguENGQMLWrXsbOWnymzQQilst+wfpwQyZMbwV2vP1fgtu10FavykE3npe4hSJnBKJyOkUSW5fIk4LT3srr+Sc5XDOrtS/hXt8euCG6ohGwfWlFQV/HBf+LSo9PTB4ganxm3R2u0tW6oYqS+tr7ypniiUGp6pkNnuJQOPFcl5TkMcs/GO7dkdlYalMMto4qtbgIxg26saxkREMxzWM4G5stJJbZWjR6VJ6g66Fuwz6lI5trM6iKXPGdACUmV7Y+yI8z2KiQOkfYP1+sMhNK17g1iwbgEr/LE6hzUXPAVV2nlvVX17eU8Ud4M1x+4tekkJS8FI/F82D4OJXU4w3JVDeC0sB5FkksORXn1JcLi4k9iqPfF7VqHzFXzXwFodp8uOs+W2CuW9komcH6y2wGHO/EL9UMba/TrzurX9VVLHYtsVOm2mVD/hShU7nop2whwsGetVKobKg2b9hbIM5kN1uJPD390YLbN59Y+fCaS/wkW2q7sS+s+3VPmn0h7Ot9zNftVRKhc8QjwlS9LWj+l+0yryCg4QUihCCIMvNCO593b+CbZ/1oQK/qDoIkIIzx3wFYcwCyc/ivJ02wuEpiiYMzCDgXZBcFi2Ie2yQqy0SXG71jh/89OH6urzxX48X8AW3/kY1J+g9iWrKQiBChLBA3mCn1PDzxLvRRnWhy4mjwqPEFSub1bouuXWoh7Cst9Ab729OJMlAKtlcTVZrSkWNXI0/RaTW/0RgjB76AHFAmJLjG76Ir/kCFDSAR67HAdq5dQDj1O4cc3IgxqELF4hqU3DaSBwlONfP8K9s+rdySH3/uRL8bqe/6MVTq8WZ3v4teOSyl6CSYvTO7eASaLlzFsrb/rBIRvLwDf5yqFwVQ/cH1OTKb/6rFJmukv6qdYXiw7pUfdbzS5a45kj1FGB4y3D0Mz4Rk1eFeLeu7l45upL3fuUrLeOLd0dWk5FhXpbqEa70EukFVr51c/3unESw6MxS80C+xKVCJFhxicQY34WoJK7UHvEvcvkv4hZXLYX+lGwbO+f0nK6V0qiqxBiZnU0fSULcpcoUo3D+MLL1TH1/y2H+rKqomW6MW5PoP9pcbXRyENd7zBi1ZtLo4h0T4MpRq90dziE0WNIFLS9HS0Ewlc/RgXb5WTn6zLluY5lPCmOJeU3V62Wdhfv1OsMFrWH96996/Na3BsLNuUcMdQ+1vmYjBgWYf87r3goNLepWHNiNtbOkV7/yx83tcgtKyt8hsHoBMssDHZ4RcwNip9+fRbq3que5H8Ou8Kl8Yp6DAA7BR481Ybf92ZJtfwLbfk+17Q/02/4CTvb4SjlDCgrKyLyjUlRyVrk81ZYQbUm8tmSOi85CtNEkmkSTaFKZXEu0j/bRPtrrUe6pTQnUXlfAQyKf/vRHeT9zlA/H8l+sdV/RM4Ow9LySJnVMpynTV5GeE1AZcxbhmHBMOKY7KdjbFk0Jp4RToindKT7eSl0ov5H11kLmn7WQWWArtAzFo0qVUXYXNwSrgv9v5LbVtjW2tbZ1tvW2DbaNtk3M5u+AhdVtAlrWWAwaBJXBaIOzUPQWJ5a0rW2tiW+l9h4AIPeDAvI3r0H+5h3Dz9N7XxDqtwMbv7ef48H3+Iel1GFcuHGcF3uxzEDn//GxJafvbzhjOgOy0jbNSk3rtped+5AqjLXzib8CyJeeiH8aGD50su2DV/uUlnoeKTUN64cB0DiP+Kdl1/6AzAXfENgvf91Miaf5sEHigs9+yXSz+J+W49YAEvwXgOpdx5FauMegTR4p9bQ4FxADDfJgvYB87W3kYe2rfqH9ZQXNcRngI8rQBPAGzdGUfJU6vLDwMWW4JG+Qc6qgOe4AvAOP5gjOh8cmv3KKrhBnWAVmlQ/f1QU8KQ9uAx64CT4Em1JnTQQzy8LvrMWu598dmoRHDeaNAL/1+TCrCuu9BifJLcxj6BqVqlo0AFAO6xGoJWoPkVqHxFmL4vXagNvvkvgqchrff34lw2GwnandP+AGNERXjwjMAAyB2USOOQJJ21QUlJ25MvEHhyvh13/GHcYu/TriQxBYlfWoSK/ZN8jQaw3uMWtLEWMzAmWhyDDF9p1LEc4f2cbfbHkjZirOCRwFXvooQHbpRjEANavMxmoEri6SaB7YJtSotskx8wev/ghiYYoB4Ra+BTPOQa6uQcUc6O/vI0bGsZVra4qQ1sQp7iO/b7hzyd14G0tP+vIgpXUTzSbLdy6Fx1D5Z4Snrxg91sdgsmbUAbVkLVswsbFNtJC1WiDT53BfDVBKM0fTrAUgMe8A9xiXLTmCnQStUYRZ+5IwsFrdSXXUyDg0G4UPgU4fO4K489Hix+kwBw4QHv3c3Rn6rslT69XL0uTjT/I3WhdXfmKhanLVeSuLWMLohGN/Ox6nVEMi2Bev4Mt2d8h0m1nLNaffbuZh4Okq5DjbdmCZdr7NeB6XVnJ+HAk6qqAyqY1X3CN83yYLN4ALtgEaqmMNWO/RtDH+kG/+/rdALE05oIZH9QGJqBm9k0dLGXu6peH8aZwrFpg6Wqaa0eeaPX2FHYTT+0SJ/A77+Fmex1PiDAg3ei+RR91lqLzK2w9ckBbdZ7T8CtZAk1FDWLscpCig7sqjZLCtTdvLurqgcDtzcnIiMg5XygFJvitUIbVhpLH8chjEZVD+wIAbhu6YCfGp2KxWGCD5RGeBb4ICaMayoSheTlNjEpUmn9Vn334R+yqxm3bOYolLmUYWxefDR2Ii4fyFQyrtl5CWvbSEl4kvKe93ATwECu93s8bxZBw3SZM1Fe0PRv/hCh7mfTqXALRLYRbwZ8OsAk4Yd6kIu+aES1HZbVMTO5nH+9kBCgHj8WF3hVZwqKmOc3zp3JZR8vAOiHBGn9SgYSr+8LfOGvVsYRFXW/pTUCLj5JXL2Y23sTeP8NNuQkEIt+Gu0n49LmOf6PDcNDTXbIoNx0Y4vrJzJzd1PsZ+ti7kNnCx5AUn2WnXS8eCBs3ejyfnlZsOhrOBCsoRYXVmPyiR2JfF+Qys8ZHv7iFBQNMKJb03gUNaxfGO8rp+jRO3R3qHZmRHyRz6sDG34Q3YxMxT0wHZzdio57uBq59pC9aLvs9AadE2U1OEQohhSyOKCnHcTiMrdIMTqAnT89sgSNuda4gEWDA4kI5iXP9KgFptPv29gS25x01EjHET4GZ4VRIGmBYYbvCM9phq1oLBazJ4SWuCtkwpURidlmrg+0wVvw1axzZ1TTlo6W3FMrukCl4U8q136ujSJY1p4pi0oL0L6d4wFYF5ud3Q8yXCpatyVa3SxLE1eRbhBDc+VxpWgwbTuU5wyVFK1EW8WmkcZjIxr1obSz6T0ETVakbOgU88c3qWiXBsaRZWIaZtUzNealGdiYcso7mYuak3SWpc1+xYxA4vNKWjLLDWzGuuh2hO2djFKB+k1BxP9lLQmAiqkPl8YRhcgT5PsU1UyKoWiCh5wL2OzNJYSvFkawjfs0INzijOXAvScrBS+tJsdOgnxou5ITb5nBELKUJWJ7Ds2jq+25pb7/oWQaQix/kLQcYzOVTjo8SBR2nHV2Zpld9RyGHiq/RT33Md0yC4DJYvQ3TKB7izVhmuZo0qZzKEy0O2nW9Dcd82BuPRMgmlpGE1nZ9aE60m5rm6unm2TxzkPPJ1Tm+ZJNKpAPhwroSJzLFtkgsUuRqne9vUH1YvXR4tpoQiYgo+bcR7I0lVzSGtBQDshkKarlgdKw01njnp0IwmL6Tt+8MKA8DFMViGS+jR5WqZqDHnDw94AXRz2pBrY0ZF9yaMpArVXksqRvbNREF+6s36xJUCIpqzqp+k0SJGe4lcGXZwCXTsmgzVm3k6VwLJ/sU4G99fPDLc8NkEC7iCn+sPpK0stUxdJIkCcCZZroC0fmcRT4RXOShFjWkLykP5DSzzJeIJaREAt0Epcc2dUvGp3TdrZ7GGsz31pwIcdwq4bUbGDtm3VwVgT+x7TYvV5AolH1uNeX5byi33rHjT8bcMKNPt1BExQ4JAUS3RejXGl8xLuFfdraYCQV3QUtZlR9BOizeyIMIVKi0XxD9q+7X4c/aFqtqqh4uufr+mQ+gTikdqXaEgTWAQTO+IwKef0MHZ3i7bzxbR2gGsCW69h4dENHykomth6m9cCORnshFOXUYvo8QBqbDbtExIrFWgRl2UiaKwqjSfgC37UAAQL62bAqzhR7oD/miSm4lpJuOaUeLAS0sCPUI0bxCif0weJSciK22i6w6SJ1szbU9fIgOINqpSxpHQRfFc/GI0Y00aS+BNtgQjlJtijV9xPijJf8NuR5knOXiVjecS4uGib7IKJNpn2IKYKX9yobJqCsuQsqbgIq8Pxu7cmz6ZEBWBbbXkT0qg+TY2ehfu1V4rSv1wpq6EUpUsUNym7nH3EHhlTafo146ytIp3no+yYjlUWJ8DPYS1+zL/WaPfdyxVVs4nHuJHIq4LCmI7bG/ENoqNcnHS3Thj5zTLJaFpL3axcIU3h2mGYii9EflQPM77+Bt9dVwz6ofoiFpD0l6sQR1le1glkOO/ze14TzCqxbLdxreAVh2jM5h/XZBgLVUBdFiUqZaocTBjlN0t8woUqrDN5B7CFMHL4g+1Kh3WXVLJfWrXgaJY0r3qgl0BCvDFis52Btz0EvAD14YbEILouavVxwAyvrC75S0nwEVFHJ3Am+bnMzrwg0TgqmMreNxOnVSe411bwg3ZfZLjJRd9Efyw75Tn2F/LnuLNImzn9uyuzglMpSt8gUNZJtZUj/inUzm19cugxKNAgyI8NyEooGUooBiAfV9MMdpZDMYtEAanjxcMjsF0Ec9XH3HsMq27JHzhuYZOWecEAxyGhDGtT57hzIuL1JSso71jW6amQCyfOMOju25bkpKSkyAjXOiRiSkoEw4QhpWNFu3OXFWm4Ra0hB7rXZ5W4CzeAVeEzMyPV6Nz8n2e9fRUWKm2aEP3iJOplhPr4DKCzuGDuvqJ87yM/bdXQN6hlyyeAwLFo1w0fdIz66kE4dJVMqSDa5uGKm+eepsT3B5GyhohKjzaiZVbbAr3C99jvcc5TwohXNHrulPbLtf8/u2yQHj8a/t893zZFVvllq7AkQc/Ac5cc/Oy94YJZ/oCCmBW9TcfGl8jk9vTlPBiyBXs+/9ruTOwjByvfihlVZrxqAZ7L5SEcGfSk7+knvkY9+qYxE2HZCBuQbINhfAJUnz5NaxG4ls9aO6v1ES1iI6VW+pS/RJGAGusL1Ot1pG+vzNLIUuChP6ec7Buyk0Y3T6GCiHc1ZY4uUKDBDlaMB05TxsotBYvJ8ctOiGuG1AuAANGUXtlYGQtL0xDV2XRr33iGNdO5e8zO5iTEfEVXl5hSNMB/YmR4DAQN2E7Cz0a1J6Uf42EsV3PDq0j69eULrZdCBgByEyPzwwkGSaaJhFe+iYSskRHagucqZdMIoCTRWSQB9TEES6fWs9VZMPcZG7y98iR4bmoohCx4LgShWzBrkX1y+ziOGGpvCsbQV/D6BUUluOhTzRGylOvPAnv7RqfKzwX4fJQDOUQz93cy8UUBzk/NWCOxV6rgDFs8evxW3nc5c4ZMQLye1y6Fb6f95614YpK92FRjdD9ZQ7CtFA+3uMs6wFU4pIl3+0om+sLOc/gdMcyDrySUb28egddba0KLfgXTslymlO8xR1kF684ib8aAc/wHhJuFsABL5CvqUfIOBFuHgtlKkSfoFtstTIocB1+kJ8ov/ihW9r5KTkiPXoliBLzMRhKP3RLulCJjs0LLVCirYKWP3TWyAFCI3qPBU9zj9DZMNeXTgkUl64CpR866wUfZvDc8trgF9fGGkAK0RIPFPNIICPG6nJ6Zk4ATYPdgQQ3oJcvVCgP6TEaigB0qGoewU2/JuPSInbnfJu1rTO5cKMg5eegwlDcyTa4VDC8plCs3348XS9sXaWLS51NzOsoyuC956AtpGGlblCmaa6pAx96HmMxAGfCt8f2PSl11ov5jECXngN7EQiZysBeSdf+8KHKUm2vT2V48dgEoAO+ALl+Fi8l55EOXcMmS60YN6IMlMXraxY54HSd90UPBxzeMq3YYv0yJ+qMmco1KJtwmdwGJOSpdydjrXuYxRxIBqzEVeOjgiUHOkncNTwFQ1jceRKJW+PfULhC4rdtlqzBh1VJhPgR+u3gdOmVEa+SQqqRuB8X2s0wQL3ZcrWn1Nmt6B1cuWlqxog1YBMko3B9ZSeC6FfrXIrryL7DXe66ijsRJXRuRi56cdQKHdEn35FJ592t7a0HWnIddUVE4SGJW+frP6CHw6KpbyPq3ewu7foUh4BsXYMO8THeA+VXXjXO1k6HfMjCHoDEupMEcoLXkWxCtY/VOlJX9vazNQEurwJCRi1ggJquTVG7BGkHGikbtYZHNHZBBWES2FxQBiegOg32avX5OWbbkoBLcy7BKBmbSCo/hkmR6ouOmOIqQBQqZUs+reD6Mu4ZE4oc6MZxi1afYgvh5MZ3HUtTHIlaYmsDeo6XBgmmXMygm8PCzS2QiHQhKnACUX1BQYyJEAe6cblFCc7Vv8dum73BhZFgLTNwvW3HJDlqUFBhmcHrn8txtk0Ls8hLHMf3XFoYqKuPWu1FTRQEohl7DUB9ZVS1O/BsswOGdTtIBIE1FNb4tmGotCrjPgPhzD4KW5dRm/X5IDgHxvKfwYmpkTzYEWZoNYxGNutKVUCby2Mug6diZwocpVYJJCGYODkxoPGtwxgTNGW/DYlqAqEgKqWUQfyaQElFwkkxP6vJv7PWoDVeP22j86cCW8ZcFm58WaATnMTmZrbc8cBx+wPCEeJqDZiIZx2MEKwwUqUUQUJAPahIgrPbPigqZK8azOhBtM5WDUDNru+MptzL7MAT/mrfmHdQnVJ1sK6hEF629nITXatGz9Aa625LsDGhLNM0RMV7LRyVNA0Ug0iOuGsv676n9qA7qMo8CTzX1o8YIKyYydJuT0tp4Im7VWax/LCEoXl8aIHZkE5Z/MpnD0mbttH/jEpts4KexMSkwDQeTrRyma6gGcVgYd284kRN9isGwe5QSVs8Zk6xIcuAs4aEVQW99BV3cCiL/T+xO5g0Y3RoSPFhHGWTcPk9tysHuWYpqTtJDhQDr19z9hBHgee8jy/EN1zue8jSlGwGNLU0dSvBQTANk49OHdFVfdERINOOhJstCK+diBQZ4dGvcXdYdW1VRCfxiWPJc2XuruESci+kxzkrZCsno1KkMjRQxr/C0VRvjo2MmoVl/sFXjyc99rW3E22T07k1LBdpXMzy5A2Fk8COzLqFoGvSdvPF8K8lhQislyJWSGdAXN+jA6pOd9DTQYmyUgyFs4dEpCzjcil4s4TF80ORHC9zSEnhJQAPGM8hzXdoiiy4FSKqXS6JhPfV6ADiqyL5eW8Ouqk1KbCHzLQeg84bTHbdB6CLlww2i6VzwHCYoSuyEHNkXwx9/SeWWHaPBr6hyqxzw8FyIi470btIUzbZORO8vIz4EgAl2MKJ1NQZ2d3EV08lsJy26ujzcLvfRpZO3ZAHrmNeQ6uJGGxCxldy2AgUR7Bld5IcMLEOMj1V6eMbeIWrzghNwCLjpaYSyi9cViDka6Hfh4VXmtz6hlqyE3t0QDJF12E+gg6vMs7sY61FwQp/6OYTY56y+/YEdChcAwzhFoukQkLsKzQN1ivAz1oNGrHFckVLCT5mC47R49hP9a8StZIMeKfBliX69j2wbmOks+4GgBbBXq0waVzHpnokreCwDtjQT91t9jEwCRFgx+2wkPUI95giwueVh7+6U+bTJbsvfjo6aDCqUkfcHnGB6+GdyYQq97Lg9Sup2fbrGi1gWH56kMUKdg8vJBpIUZNt8DIARdgClDgFqTlEvXq61DPKHyLkKFHIIjWy/xMQWFR9mAEMHGUTXspXoXyKuQOwZBRiekBKYMQFEQjCtm/o+qoTGRpy8ZyhryWFOZQ+aBMByOwIbeGWlXJlvTUvU5jcqeIfM4xGy3jdFEuVWiSLklxXeh0isWOEjhAcNmlOoRIh2G0OLdMCB/iS2vWB8GpvtF/VAy/9ZtjUZbSKV2YMjgbgWMzaJo9yENTZKbcptu9XdsR18Wy3ViSzONXQeKTbyQgMwAIfWZoymrWJ1Ij2BWfrEj85IMvYkgUc/+le+JYZRyVJQh/DLWAYC3iL8NoNVZmYXyUslpJ2ufIvhfuZwgX2J7nt2ATVNoJpAoEmpm72vaVbOA6zH90Zn2eUJkYHD1FBEzT/14t9LfdzILv36A95ltn0rK0zT/RPFjHcXtyLEo7dFZQq+w6VVcyOML4oBgNZaAGHGvN9z5KFNkuRKzjE1xFGke409c+2y3QDe+2BRlMPCsYzXBV1w0Hl2cDHX4JPq4v/Xj5In2+V7LcAf/8vawHAP87fQ/O/ZzTqXwAWAgAQ+JPas6QQXwtwKUdSXLZk/jiML19uySpG7dC+obXT4cyzi9Hgo4VEXul5qRZAdcxZNp1CuxgmsCkC0Wx0w6qCAA+bL8UYQxQtiUvpQq9x++0gLsGwGnFrHD0qkojwDJlKgYk3n4BWfR0WzDiwo3aYBqHtPM1L9llS3T3P9Hebc2XH5DRypZByl8OQvs1bNAhNsIAJj9sM8/gs2Ex1MJ5UN9bm5ruLPrkrmizGkeh7uyyI0LKJ884ENo7wk5quzy1Ozx2YdoQMk8bqMpAdWsbZNyFIoC3hax6TA1C4TegmvLjKG64ZRXTRLE+I2eT9XTPt8ggC7IAnoiVE2EsxF8C08RLgIACxHBzsDQFgd6y1NtQjrDaiU8RtHDetbQKmtrcJ8eLbRIy5mE5tE0CuUXnwUiN5GGJKcFO2Yjloih1bCuXRtJiRl7FvR46gFadUBnaYfdcSdmJl38FohYtGUHUzImrzbB+ScWBPTs6RJ1n0ohwZITMKl+TKi9wiY2lMgXHLxokO7sqOs6ybM1mFz5ANhiArj1sUKSrfazDP8y5XTx9oA+/RkeONkEcrtwkU5MZFMbxB9hmc66JoI7LJN62m3PrfAZt7V+3I6SmfxxKtPOOLRstkT6NEUaspyTu0CmU/KTPSnjEy3BX111ghlqas4wB4AEB/ETsAMHU+BM7KtIPGTguYMZfFwkuWsp1zwUVWrNmw1aTZJS1ZBb7fQQ6FVpdpXbXQLrs5esspxcDXXXNdrjbuPHjy8pq3oOnn5StWZJ1gIUqEeiVM6X1xwzMCfGqodqOMMdZow7Is+cDPjDFOrPEmmmSC9f61R5x3eEoqs6nFm0ynzH8JCZQ3n+yNo1KstkbqdycwIPkF/vvs0FMzmCysbNiy44hL3Mbt3MGcBUtWrNmwxR/8xbf/sTnngh17LrnimhtuoXgSOaYPqh7HOQLHGDvqpJmkIEx2pW61TwAGaJfOh8Mpp+13wEGHVKtRr4FQIYEC+8xQTm+OqUlzocML09QxSNitIoViP/jgjAxPg6tk2MQ/JedUpdZodRaWVnqDtS3bkKLDPIHmuuGum265N+h/c0T2mGyDNR/myRUafcGv6qGKMLrEIx9mbwlPfKFFpClw8IAafh8eURoXY+wLVi/G4Wp4yARn2yGTxuHFgUkUqjQDgbcgMAQ8w+AxBoPAYwKeETAYPEbXFVfI9ci0GCSXY+5a4RxtTovWaVTrtaHgoxN1ykW1AEmiPDxUUHE1HtkVanIMNn9PZnNEydjRpYYosw42HNoRMRT8zyCeHwSKMu/WW6NHKV7kpqkNPRWn4cSiMMu4qpbR/1FJQUZmiVNC0v3RqGQ9OaMFTXpADX+ux6XAPx/h3LL4PYjzpjfjx5vn2LsHDKZ9F8DJgIEc662X8aQES2NIKzeqfQXdNQVhNqmzUXXqbFky7addGkVdq6t+6YAQq6BrEHRE9BsgmfMHwIGgV6a479Xkbr998TrIYiyjh8XQS4Ogtf33WAySjop1wN7fpKH3QEtX2k+Cm0XyFKhWKzpZfx87dl/63G9oLv2NMCtzgmYAAAA="}},"time_used":99,"timings":{"blocked":-1,"dns":0,"connect":29,"send":0,"wait":66,"receive":4,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/68725.df46d140ffcce5cbedbf.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:13.928Z","timestamp":1785148033928,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/68725.df46d140ffcce5cbedbf.js HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:13 GMT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a61b1a8-6e6d\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Thu, 23 Jul 2026 06:16:08 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/23/2026 10:17:28\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 24eef7a1f30e82f50c723b0aa8b7db37\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":28269,"size_decoded":10427,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (3071)","md5":"301a8f4008180f5ddc683901defaec4d","sha1":"892a96df9fffdbee70f8c3c701e4681b6c4466dc","sha256":"89111fb1ee14c800a44c510278977f64ce50a38e074b3bbaa2f494193ed42cf6","sha512":"86dc50bd47044f799fa90bbb6725d83f782e87021fb6097ab0304ab1db8cbcd8c660f107d780b2c01c6e18fa7d03b5cf55d686e28c12ee3c4fd4a25d406379db","ssdeep":"768:5CNMfr3mWAwSatuyEJEIVVij9+Dpo27SU21KP3:IQPA+wVojcDa27SUh","tlshash":"f5c20964b2a8343541d7825bd4794a03f2356c85b00352adf66e2cde1f9e88d33aaf39","first_seen":"2026-07-23T14:00:31.748932Z","last_seen":"2026-07-27T12:52:15.440001Z","times_seen":113,"resource_available":true,"data":"KHNlbGYud2VicGFja0NodW5rdHJhZGluZ3ZpZXc9c2VsZi53ZWJwYWNrQ2h1bmt0cmFkaW5ndmlld3x8W10pLnB1c2goW1szOTYwOSw2ODcyNV0sezQ0ODQxMSh0KXt0LmV4cG9ydHM9e2RpYWxvZzoiZGlhbG9nLUdIVUg2XzFYIixyb3VuZGVkOiJyb3VuZGVkLUdIVUg2XzFYIixzaGFkb3dlZDoic2hhZG93ZWQtR0hVSDZfMVgiLGZ1bGxzY3JlZW46ImZ1bGxzY3JlZW4tR0hVSDZfMVgiLGRhcmtlcjoiZGFya2VyLUdIVUg2XzFYIixiYWNrZHJvcDoiYmFja2Ryb3AtR0hVSDZfMVgifX0sMTQ1OTg1KHQpe3QuZXhwb3J0cz17YmxvY2tJY29uOiJibG9ja0ljb24tZ3ZPUVZpVjcifX0sNzk1NDY1KHQpe3QuZXhwb3J0cz17d3JhcDoid3JhcC1ZWnc4UlhlaSIsdWlNYXJrZXI6InVpTWFya2VyLVladzhSWGVpIixyZWQ6InJlZC1ZWnc4UlhlaSIsYmx1ZToiYmx1ZS1ZWnc4UlhlaSIsZ3JlZW46ImdyZWVuLVladzhSWGVpIixvcmFuZ2U6Im9yYW5nZS1ZWnc4UlhlaSIscHVycGxlOiJwdXJwbGUtWVp3OFJYZWkiLGN5YW46ImN5YW4tWVp3OFJYZWkiLHBpbms6InBpbmstWVp3OFJYZWkiLHVpTWFya2VyX19zbWFsbDoidWlNYXJrZXJfX3NtYWxsLVladzhSWGVpIn19LDE3NTg2Myh0KXt0LmV4cG9ydHM9eyJ0YWJsZXQtbm9ybWFsLWJyZWFrcG9pbnQiOiIobWF4LXdpZHRoOiA3NjhweCkiLCJ0b29sdGlwLW9mZnNldCI6IjIwcHgiLGRpYWxvZzoiZGlhbG9nLXF5Q3cwUGFOIixkcmFnZ2luZzoiZHJhZ2dpbmctcXlDdzBQYU4iLG1vYmlsZToibW9iaWxlLXF5Q3cwUGFOIixmdWxsc2NyZWVuOiJmdWxsc2NyZWVuLXF5Q3cwUGFOIixkaWFsb2dBbmltYXRlZEFwcGVhcmFuY2U6ImRpYWxvZ0FuaW1hdGVkQXBwZWFyYW5jZS1xeUN3MFBhTiIsZGlhbG9nQW5pbWF0aW9uOiJkaWFsb2dBbmltYXRpb24tcXlDdzBQYU4iLGRpYWxvZ1Rvb2x0aXA6ImRpYWxvZ1Rvb2x0aXAtcXlDdzBQYU4ifX0sOTIzNTEzKHQpe3QuZXhwb3J0cz17Y29udGFpbmVyOiJjb250YWluZXItekxWbTZCNHQiLGNvbnRlbnQ6ImNvbnRlbnQtekxWbTZCNHQiLGFycm93SG9sZGVyOiJhcnJvd0hvbGRlci16TFZtNkI0dCIsImFycm93SG9sZGVyLS1iZWxvdyI6ImFycm93SG9sZGVyLS1iZWxvdy16TFZtNkI0dCIsImFycm93SG9sZGVyLS1hYm92ZSI6ImFycm93SG9sZGVyLS1hYm92ZS16TFZtNkI0dCIsImFycm93SG9sZGVyLS1iZWZvcmUiOiJhcnJvd0hvbGRlci0tYmVmb3JlLXpMVm02QjR0IiwiYXJyb3dIb2xkZXItLWFmdGVyIjoiYXJyb3dIb2xkZXItLWFmdGVyLXpMVm02QjR0IiwiYXJyb3dIb2xkZXItLWFib3ZlLWZpeCI6ImFycm93SG9sZGVyLS1hYm92ZS1maXgtekxWbTZCNHQiLCJhcnJvd0hvbGRlci0tYmVmb3JlLXJ0bC1maXgiOiJhcnJvd0hvbGRlci0tYmVmb3JlLXJ0bC1maXgtekxWbTZCNHQiLCJhcnJvd0hvbGRlci0tYWZ0ZXItbHRyLWZpeCI6ImFycm93SG9sZGVyLS1hZnRlci1sdHItZml4LXpMVm02QjR0IixsYWJlbDoibGFiZWwtekxWbTZCNHQiLGNsb3NlQnV0dG9uOiJjbG9zZUJ1dHRvbi16TFZtNkI0dCJ9fSw0OTA4OTModCxlLHMpeyJ1c2Ugc3RyaWN0IjtzLmQoZSx7UG9wdXBDb250ZXh0OigpPT5pfSk7Y29uc3QgaT1zKDc3OTQ3NCkuY3JlYXRlQ29udGV4dChudWxsKX0sOTkxMDY2KHQsZSxzKXsidXNlIHN0cmljdCI7cy5kKGUse0RpYWxvZzooKT0+ZH0pO3ZhciBpPXMoNzc5NDc0KSxvPXMoOTE0NDg3KSxuPXMubihvKSxhPXMoNjA3ODMyKSxyPXMoOTAzNDIpLGw9cygzNDUxMTYpLGg9cyg0NDg0MTEpLGM9cy5uKGgpO2NsYXNzIGQgZXh0ZW5kcyBpLlB1cmVDb21wb25lbnR7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMuX21hbmFnZXI9bmV3IHIuT3ZlcmxhcE1hbmFnZXIsdGhpcy5faGFuZGxlU2xvdD10PT57dGhpcy5fbWFuYWdlci5zZXRDb250YWluZXIodCl9fXJlbmRlcigpe2NvbnN0e3JvdW5kZWQ6dD0hMCxzaGFkb3dlZDplPSEwLGZ1bGxzY3JlZW46cz0hMSxkYXJrZXI6bz0hMSxjbGFzc05hbWU6cixiYWNrZHJvcDpoLGNvbnRhaW5lclRhYkluZGV4OmQ9LTF9PXRoaXMucHJvcHMsdT1uKCkocixjKCkuZGlhbG9nLHQmJmMoKS5yb3VuZGVkLGUmJmMoKS5zaGFkb3dlZCxzJiZjKCkuZnVsbHNjcmVlbixvJiZjKCkuZGFya2VyKSxwPSgwLGwuZmlsdGVyRGF0YVByb3BzKSh0aGlzLnByb3BzKSxtPXRoaXMucHJvcHMuc3R5bGU/ey4uLnRoaXMuX2NyZWF0ZVN0eWxlcygpLC4uLnRoaXMucHJvcHMuc3R5bGV9OnRoaXMuX2NyZWF0ZVN0eWxlcygpO3JldHVybiBpLmNyZWF0ZUVsZW1lbnQoaS5GcmFnbWVudCxudWxsLGkuY3JlYXRlRWxlbWVudChhLlNsb3RDb250ZXh0LlByb3ZpZGVyLHt2YWx1ZTp0aGlzLl9tYW5hZ2VyfSxoJiZpLmNyZWF0ZUVsZW1lbnQoImRpdiIse29uQ2xpY2s6dGhpcy5wcm9wcy5vbkNsaWNrQmFja2Ryb3AsY2xhc3NOYW1lOmMoKS5iYWNrZHJvcH0pLGkuY3JlYXRlRWxlbWVudCgiZGl2Iix7Li4ucCxjbGFzc05hbWU6dSxzdHlsZTptLHJlZjp0aGlzLnByb3BzLnJlZmVyZW5jZSxvbkZvY3VzOnRoaXMucHJvcHMub25Gb2N1cyxvbk1vdXNlRG93bjp0aGlzLnByb3BzLm9uTW91c2VEb3duLG9uTW91c2VVcDp0aGlzLnByb3BzLm9uTW91c2VVcCxvbkNsaWNrOnRoaXMucHJvcHMub25DbGljayxvbktleURvd246dGhpcy5wcm9wcy5vbktleURvd24sdGFiSW5kZXg6ZCwiYXJpYS1sYWJlbCI6dGhpcy5wcm9wcy5jb250YWluZXJBcmlhTGFiZWx9LHRoaXMucHJvcHMuY2hpbGRyZW4pKSxpLmNyZWF0ZUVsZW1lbnQoYS5TbG90LHtyZWZlcmVuY2U6dGhpcy5faGFuZGxlU2xvdH0pKX1fY3JlYXRlU3R5bGVzKCl7Y29uc3R7Ym90dG9tOnQsbGVmdDplLHdpZHRoOnMscmlnaHQ6aSx0b3A6byx6SW5kZXg6bixoZWlnaHQ6YX09dGhpcy5wcm9wcztyZXR1cm57Ym90dG9tOnQsbGVmdDplLHJpZ2h0OmksdG9wOm8sekluZGV4Om4sbWF4V2lkdGg6cyxoZWlnaHQ6YX19fX0sMjE3Mjc0KHQsZSxzKXsidXNlIHN0cmljdCI7cy5kKGUse0Jsb2NrSWNvbjooKT0+aH0pO3ZhciBpPXMoOTE0NDg3KSxvPXMubihpKSxuPXMoNzc5NDc0KSxhPXMoOTQ4NDUwKSxyPXMoMTQ1OTg1KSxsPXMubihyKQo7Y29uc3QgaD1uLmZvcndhcmRSZWYoKCh0LGUpPT57Y29uc3R7Y2xhc3NOYW1lOnMsaWNvbjppLGFyaWFMYWJlbDpyLGFyaWFMYWJlbGxlZGJ5OmgsdGl0bGU6YywuLi5kfT10LHU9ZDtyZXR1cm4gbi5jcmVhdGVFbGVtZW50KGEuQ29tbW9uSWNvbix7Y2xhc3NOYW1lOm8oKShzLGwoKS5ibG9ja0ljb24pLHJlZjplLGljb246aSxhcmlhTGFiZWw6cixhcmlhTGFiZWxsZWRieTpoLHRpdGxlOmMsLi4udX0pfSkpfSw4MzE1MjcodCxlLHMpeyJ1c2Ugc3RyaWN0IjtzLnIoZSkscy5kKGUse01hcmtlZFN5bWJvbHNMaXN0U2VydmljZTooKT0+ZCxnZXRNYXJrZWRTeW1ib2xzTGlzdFNlcnZpY2VJbnN0YW5jZTooKT0+dX0pO3ZhciBpPXMoODM5NDI2KSxvPXMoMTg1MjcxKSxuPXMoNzEyMTM0KSxhPXMoNTAwNTE0KSxyPXMoMjM0OTY0KSxsPXMoMjQzNjMxKSxoPXMoNzcwNzU1KSxjPXMoMzEzMzAwKTtjbGFzcyBke2dldFN5bWJvbHNCeUNvbG9yKHQpe3JldHVybiB0aGlzLl9tb2RlbC5nZXRTeW1ib2xzQnlDb2xvcih0KX1zZXRTeW1ib2xzQ29sb3IodCxlKXswIT09dC5sZW5ndGgmJnRoaXMuX3J1bldpdGhTeW5jKCgoKT0+e3RoaXMuX21vZGVsLnNldFN5bWJvbHNDb2xvcih0LGUpfSkpfWdldFN5bWJvbENvbG9yKHQpe3JldHVybiB0aGlzLl9tb2RlbC5nZXRTeW1ib2xDb2xvcih0KX1tYXJrTWFueSh0KXt0aGlzLl9ydW5XaXRoU3luYygoKCk9Pnt0aGlzLl9tb2RlbC5tYXJrTWFueSh0KX0pKX1jbGVhckFsbFN5bWJvbHNDb2xvcigpe3RoaXMuX3J1bldpdGhTeW5jKCgoKT0+e3RoaXMuX21vZGVsLmNsZWFyQWxsU3ltYm9sc0NvbG9yKCl9KSl9YWRqdXN0U3ltYm9sc0NvbG9ycyh0KXtjb25zdCBlPW5ldyBsLkNvbG9yTWFuYWdlcih7Y29udGV4dDpsLkNvbG9yQ29udGV4dC5TeW1ib2xNYXJrZXJ9KSxzPSF0Lm1hcCgodD0+dGhpcy5nZXRTeW1ib2xDb2xvcih0KSkpLmluY2x1ZGVzKG51bGwpO3RoaXMuc2V0U3ltYm9sc0NvbG9yKHQscz9udWxsOmUuZ2V0Q29sb3IoKSl9b25TeW1ib2xDaGFuZ2UodCxlKXtjb25zdCBzPXRoaXMuX3N5bWJvbENoYW5nZUhhbmRsZXJzLmdldCh0KTtzP3MucHVzaChlKTp0aGlzLl9zeW1ib2xDaGFuZ2VIYW5kbGVycy5zZXQodCxbZV0pfW9mZlN5bWJvbENoYW5nZSh0LGUpe2NvbnN0IHM9dGhpcy5fc3ltYm9sQ2hhbmdlSGFuZGxlcnMuZ2V0KHQpO2lmKHMpe2NvbnN0IGk9cy5maWx0ZXIoKHQ9PnQhPT1lKSk7aS5sZW5ndGg+MD90aGlzLl9zeW1ib2xDaGFuZ2VIYW5kbGVycy5zZXQodCxpKTp0aGlzLl9zeW1ib2xDaGFuZ2VIYW5kbGVycy5kZWxldGUodCl9fW9uTGlzdENoYW5nZSh0KXt0aGlzLl9saXN0Q2hhbmdlSGFuZGxlcnMucHVzaCh0KX1vZmZMaXN0Q2hhbmdlKHQpe3RoaXMuX2xpc3RDaGFuZ2VIYW5kbGVycz10aGlzLl9saXN0Q2hhbmdlSGFuZGxlcnMuZmlsdGVyKChlPT5lIT09dCkpfW9uSW5pdCh0KXt0aGlzLl9pbml0SGFuZGxlcnMucHVzaCh0KX1vZmZJbml0KHQpe3RoaXMuX2luaXRIYW5kbGVycz10aGlzLl9pbml0SGFuZGxlcnMuZmlsdGVyKChlPT5lIT09dCkpfWRlc3Ryb3koKXt0aGlzLl9tb2RlbC5kZXN0cm95KCksdGhpcy5fdW5zdWJzY3JpYmVMb2dpblN0YXRlQ2hhbmdlKCl9aXNJbml0ZWQoKXtyZXR1cm4gdGhpcy5faW5pdGVkfV9zdWJzY3JpYmVMb2dpblN0YXRlQ2hhbmdlKCl7d2luZG93LmxvZ2luU3RhdGVDaGFuZ2UmJndpbmRvdy5sb2dpblN0YXRlQ2hhbmdlLnN1YnNjcmliZSh0aGlzLHRoaXMuX29uTG9naW5TdGF0ZUNoYW5nZSl9X3Vuc3Vic2NyaWJlTG9naW5TdGF0ZUNoYW5nZSgpe3dpbmRvdy5sb2dpblN0YXRlQ2hhbmdlJiZ3aW5kb3cubG9naW5TdGF0ZUNoYW5nZS51bnN1YnNjcmliZSh0aGlzLHRoaXMuX29uTG9naW5TdGF0ZUNoYW5nZSl9X3N5bmNTeW1ib2xzKCl7aWYod2luZG93LmlzX2F1dGhlbnRpY2F0ZWQpe3RoaXMuX3N5bmM9dGhpcy5fbW9kZWwuc3luY1N5bWJvbHMoKTtjb25zdCB0PSgpPT57dGhpcy5fc3luYz1udWxsLHRoaXMuX2luaXRlZD0hMH07cmV0dXJuIHRoaXMuX3N5bmMudGhlbih0KS5jYXRjaCh0KX1yZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCl9Y29uc3RydWN0b3IodCl7dGhpcy5fc3ltYm9sQ2hhbmdlSGFuZGxlcnM9bmV3IE1hcCx0aGlzLl9saXN0Q2hhbmdlSGFuZGxlcnM9W10sdGhpcy5faW5pdEhhbmRsZXJzPVtdLHRoaXMuX3N5bmM9bnVsbCx0aGlzLl9pbml0ZWQ9ITEsdGhpcy5faGFuZGxlQ2hhbmdlPSh0LGUpPT57aWYodC5saXN0cyE9PWUubGlzdHMpe3RoaXMuX2xpc3RDaGFuZ2VIYW5kbGVycy5mb3JFYWNoKChzPT57dHJ5e3ModCxlKX1jYXRjaHt9fSkpO2Zvcihjb25zdFtzLGldb2YgQXJyYXkuZnJvbSh0aGlzLl9zeW1ib2xDaGFuZ2VIYW5kbGVycy5lbnRyaWVzKCkpKXtjb25zdCBvPSgwLG4uZ2V0U3ltYm9sQ29sb3IpKHQscyksYT0oMCxuLmdldFN5bWJvbENvbG9yKShlLHMpO28hPT1hJiZpLmZvckVhY2goKHQ9Pnt0cnl7dChvLGEpfWNhdGNoe319KSl9fX0sdGhpcy5fb25Mb2dpblN0YXRlQ2hhbmdlPSgpPT57bGV0IHQ7dGhpcy5fbW9kZWwuY2xvc2VDb25uZWN0aW9uKCksd2luZG93LmlzX2F1dGhlbnRpY2F0ZWQ/KHRoaXMuX21vZGVsLmNvbm5lY3QoKSx0PXRoaXMuX3N5bmNTeW1ib2xzKCkpOih0aGlzLl9tb2RlbC5hbm9ueW1pemUoKSx0aGlzLl9pbml0ZWQ9ITEsdD1Qcm9taXNlLnJlc29sdmUoKSksdC50aGVuKHRoaXMuX2ZpcmVJbml0KX0sdGhpcy5fZmlyZUluaXQ9KCk9Pnt0aGlzLl9pbml0SGFuZGxlcnMuZm9yRWFjaCgodD0+dCgpKSl9LHRoaXMuX3J1bldpdGhTeW5jPXQ9Pnt0aGlzLl9zeW5jP3RoaXMuX3N5bmMudGhlbih0KTp0KCl9LHRoaXMuX2hhbmRsZVJlc3RyaWN0ZWRDb2xvcj0oKT0+eygwLGgub3BlblBheXdhbGwpKHtmZWF0dXJlOiJmbGFnZ2VkU3ltYm9scyJ9KX0sdGhpcy5faGFuZGxlTGltaXQ9KCk9PnsoMCxjLmdldFdhdGNobGlzdFN5bWJvbHNMaW1pdCkoKTxjLk1BWF9XQVRDSExJU1RfTEVOR1RIPygwLGgub3BlblBheXdhbGwpKHtmZWF0dXJlOiJ3YXRjaGxpc3RTeW1ib2xzIn0pOigwLHIuc2hvd1dhcm5pbmcpKHsKdGl0bGU6by50KG51bGwsdm9pZCAwLHMoODQxNzk5KSksdGV4dDpvLnQobnVsbCx7cmVwbGFjZTp7bGltaXQ6U3RyaW5nKGMuTUFYX1dBVENITElTVF9MRU5HVEgpfX0scyg4NjA3MjIpKX0sbnVsbCl9LHRoaXMuX21vZGVsPW5ldyBhLk1hcmtlZFN5bWJvbHNMaXN0TW9kZWwoe2FwaTp0P3QuYXBpOnZvaWQgMCxxdW90ZVNlc3Npb246dD90LnF1b3RlU2Vzc2lvbjp2b2lkIDAsb25DaGFuZ2U6dGhpcy5faGFuZGxlQ2hhbmdlLGxpbWl0OnQ/LmxpbWl0LG9uTGltaXQ6dGhpcy5faGFuZGxlTGltaXQsb25SZXN0cmljdGVkQ29sb3I6dGhpcy5faGFuZGxlUmVzdHJpY3RlZENvbG9yLGNvbG9yczp0Py5jb2xvcnMsZXZlbnQ6Im1hcmtlZC1zeW1ib2xzIn0pLHRoaXMuX3N1YnNjcmliZUxvZ2luU3RhdGVDaGFuZ2UoKSx0aGlzLl9zeW5jU3ltYm9scygpLnRoZW4odGhpcy5fZmlyZUluaXQpfX1jb25zdCB1PSgwLGkuZGVmYXVsdCkoKCgpPT5uZXcgZCkpfSw4Mjk3NjModCxlLHMpeyJ1c2Ugc3RyaWN0IjtzLmQoZSx7VWlNYXJrZXI6KCk9Pmh9KTt2YXIgaT1zKDcxMjEzNCksbz1zKDM2MzI2OSksbj1zKDkxNDQ4NyksYT1zLm4obikscj1zKDg1MjUzMSksbD1zKDc5NTQ2NSk7Y2xhc3MgaHtzZXRDb2xvcih0KXt0aGlzLnJlbW92ZUNvbG9yKCksdGhpcy5hZGRDbGFzcyhsW3RdKX1yZW1vdmVDb2xvcigpe3RoaXMuX2VsZW0uY2xhc3NMaXN0LnJlbW92ZShsW2kuTGlzdENvbG9yLlJlZF0sbFtpLkxpc3RDb2xvci5PcmFuZ2VdLGxbaS5MaXN0Q29sb3IuUHVycGxlXSxsW2kuTGlzdENvbG9yLkdyZWVuXSxsW2kuTGlzdENvbG9yLkJsdWVdLGxbaS5MaXN0Q29sb3IuQ3lhbl0sbFtpLkxpc3RDb2xvci5QaW5rXSl9YWRkQ2xhc3ModCl7dGhpcy5fZWxlbS5jbGFzc0xpc3QuYWRkKHQpfXJlbW92ZUNsYXNzKHQpe3RoaXMuX2VsZW0uY2xhc3NMaXN0LnJlbW92ZSh0KX1nZXRFbGVtKCl7cmV0dXJuIHRoaXMuX2VsZW19YXBwZW5kVG8odCl7dGhpcy5kZXRhY2goKSx0aGlzLl9jb250YWluZXI9dCx0aGlzLl9jb250YWluZXIuYXBwZW5kQ2hpbGQodGhpcy5fZWxlbSksdGhpcy5fYWRkRXZlbnRMaXN0ZW5lcnMoKX1kZXRhY2goKXt0aGlzLl9yZW1vdmVFdmVudExpc3RlbmVycygpLHRoaXMuX2NvbnRhaW5lciYmKHRoaXMuX2NvbnRhaW5lci5yZW1vdmVDaGlsZCh0aGlzLl9lbGVtKSxkZWxldGUgdGhpcy5fY29udGFpbmVyKX1fcmVuZGVyKHQpe2NvbnN0IGU9YSgpKGwudWlNYXJrZXIse1t0LmNsYXNzTmFtZV06Qm9vbGVhbih0LmNsYXNzTmFtZSksW2xbdC5jb2xvcl1dOkJvb2xlYW4odC5jb2xvcil9KSxzPXQuc3BlY2lhbEltYWdlfHxyLGk9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7cmV0dXJuIGkuY2xhc3NOYW1lPWUsaS5pbm5lckhUTUw9cyx0aGlzLl9jb250YWluZXImJnRoaXMuX2NvbnRhaW5lci5hcHBlbmRDaGlsZChpKSxpfV9hZGRFdmVudExpc3RlbmVycygpe2lmKHRoaXMuX29wdHMub25DbGljayl7Y29uc3QgdD1vLm1vYmlsZXRvdWNoPyJ0b3VjaHN0YXJ0IjoiY2xpY2siO3RoaXMuX2VsZW0uYWRkRXZlbnRMaXN0ZW5lcih0LHRoaXMuX29uQ2xpY2spfXRoaXMuX29wdHMub25EYmxDbGljayYmdGhpcy5fZWxlbS5hZGRFdmVudExpc3RlbmVyKCJkYmxjbGljayIsdGhpcy5fb25EYmxDbGljayl9X3JlbW92ZUV2ZW50TGlzdGVuZXJzKCl7aWYodGhpcy5fb3B0cy5vbkNsaWNrKXtjb25zdCB0PW8ubW9iaWxldG91Y2g/InRvdWNoc3RhcnQiOiJjbGljayI7dGhpcy5fZWxlbS5yZW1vdmVFdmVudExpc3RlbmVyKHQsdGhpcy5fb25DbGljayl9dGhpcy5fb3B0cy5vbkRibENsaWNrJiZ0aGlzLl9lbGVtLnJlbW92ZUV2ZW50TGlzdGVuZXIoImRibGNsaWNrIix0aGlzLl9vbkRibENsaWNrKX1jb25zdHJ1Y3Rvcih0KXt0aGlzLl9vbkNsaWNrPXQ9Pnt0aGlzLl9vcHRzLm9uQ2xpY2smJnRoaXMuX29wdHMub25DbGljayh0KX0sdGhpcy5fb25EYmxDbGljaz10PT57dGhpcy5fb3B0cy5vbkRibENsaWNrJiZ0aGlzLl9vcHRzLm9uRGJsQ2xpY2sodCl9LHRoaXMuX2NvbnRhaW5lcj10LmNvbnRhaW5lcix0aGlzLl9vcHRzPXQsdGhpcy5fZWxlbT10aGlzLl9yZW5kZXIodCksdGhpcy5fYWRkRXZlbnRMaXN0ZW5lcnMoKX19fSw0NDM4MjcodCxlLHMpeyJ1c2Ugc3RyaWN0IjtzLmQoZSx7Z2V0Q29sb3JlZExpc3RUaXRsZTooKT0+bixnZXRTb3J0QnlDb2xvckNvbXBhcmF0b3I6KCk9PnIsbWFrZU1hcmtlZExpc3RGcm9tUmVjb3JkOigpPT5hfSk7dmFyIGk9cyg3MTIxMzQpLG89cyg3ODMyNTQpO2Z1bmN0aW9uIG4odCl7cmV0dXJue1tpLkxpc3RDb2xvci5SZWRdOm8udChudWxsLHZvaWQgMCxzKDE2NTUwMSkpLFtpLkxpc3RDb2xvci5HcmVlbl06by50KG51bGwsdm9pZCAwLHMoNDU5NDAyKSksW2kuTGlzdENvbG9yLk9yYW5nZV06by50KG51bGwsdm9pZCAwLHMoNTA2MzMwKSksW2kuTGlzdENvbG9yLlB1cnBsZV06by50KG51bGwsdm9pZCAwLHMoOTA3ODc0KSksW2kuTGlzdENvbG9yLkJsdWVdOm8udChudWxsLHZvaWQgMCxzKDU3MzgwNykpLFtpLkxpc3RDb2xvci5DeWFuXTpvLnQobnVsbCx2b2lkIDAscyg4MzkzOTApKSxbaS5MaXN0Q29sb3IuUGlua106by50KG51bGwsdm9pZCAwLHMoOTQxOTg2KSl9W3RdfWZ1bmN0aW9uIGEodCl7cmV0dXJue3R5cGU6ImNvbG9yZWQiLGlkOnQuY29sb3IsY29sb3I6dC5jb2xvcixzeW1ib2xzOnQuc3ltYm9scyxuYW1lOnQubmFtZXx8bih0LmNvbG9yKSxkZXNjcmlwdGlvbjp0LmRlc2NyaXB0aW9uLHNoYXJlZDp0LnNoYXJlZCxwZXJzaXN0ZWRTdGF0ZTp0LnBlcnNpc3RlZFN0YXRlfX1mdW5jdGlvbiByKHQpe2NvbnN0IGU9LTE9PT10Py0xLzA6MS8wO3JldHVybihzLGkpPT57Y29uc3Qgbz1sKHMsZSksbj1sKGksZSk7cmV0dXJuIG89PT1uPzA6dCooby1uKX19ZnVuY3Rpb24gbCh0LGUpe3JldHVybiBudWxsPT09dD9lOmkuTElTVF9DT0xPUlMuaW5kZXhPZih0KX19LDc0NTY1NCh0LGUscyl7InVzZSBzdHJpY3QiO3MuZChlLHtxdW90ZVNlc3Npb25BZGFwdGVyczooKT0+ZH0pCjt2YXIgaT1zKDEzODYzOCksbz1zKDE1OTUxMyksbj1zKDM0NDEwMyksYT1zKDEwMTcxMikscj1zKDQ5ODY1MSksbD1zKDQ3OTM0KSxoPXMoOTI5NDg4KTtjbGFzcyBje2NvbnN0cnVjdG9yKHQsZSxzPSJ3YXRjaGxpc3QiKXt0aGlzLl9zeW1ib2xEYXRhSGFuZGxlcnM9bmV3IE1hcCx0aGlzLl9mYXN0U3ltYm9scz1uZXcgU2V0LHRoaXMuX3N1YnNjcmliZWRTeW1ib2xzPW5ldyBTZXQsdGhpcy5fc3Vic2NyaXB0aW9uU2V0PW5ldyBTZXQsdGhpcy5fY2FuY2VsU3Vic2NyaXB0aW9uU2V0PW5ldyBTZXQsdGhpcy5fcXVvdGVTZXNzaW9uRGF0YUhhbmRsZXI9dD0+e2NvbnN0IGU9KDAsaS5lbnN1cmVEZWZpbmVkKSh0LnN5bWJvbG5hbWUpLHtmaWx0ZXJlZDpzLGtlZXBTdWJzY3JpcHRpb246b309dGhpcy5fYXBwbHlEYXRhRmlsdGVycyh0KTtvfHx0aGlzLl91bnN1YnNjcmliZVN5bWJvbHMoW2VdKSx0aGlzLl9zZXRTeW1ib2xEYXRhQ2FjaGUoZSxzKTtjb25zdCBuPXRoaXMuX3N5bWJvbERhdGFIYW5kbGVycy5nZXQoZSk7biYmbihzKX0sdGhpcy5fY2xpZW50SWQ9dCx0aGlzLl9xdW90ZVNlc3Npb249KDAsby5nZXRRdW90ZVNlc3Npb25JbnN0YW5jZSkocyksdGhpcy5fbGFzdFN5bWJvbERhdGE9ZXx8bmV3IE1hcH1kZXN0cm95KCl7Y29uc3QgdD1BcnJheS5mcm9tKHRoaXMuX3N1YnNjcmliZWRTeW1ib2xzKTt0aGlzLl91bnN1YnNjcmliZVN5bWJvbHModCl9YWRkRmFzdFN5bWJvbCh0KXt0aGlzLl9mYXN0U3ltYm9scy5oYXModCl8fCF0aGlzLl9zdWJzY3JpYmVkU3ltYm9scy5oYXModCl8fCgwLGguaXNTZXBhcmF0b3JJdGVtKSh0KXx8KHRoaXMuX2Zhc3RTeW1ib2xzLmFkZCh0KSx0aGlzLl9xdW90ZVNlc3Npb24uc2V0RmFzdFN5bWJvbHModGhpcy5fY2xpZW50SWQsQXJyYXkuZnJvbSh0aGlzLl9mYXN0U3ltYm9scykpKX1yZW1vdmVGYXN0U3ltYm9sKHQpe3RoaXMuX2Zhc3RTeW1ib2xzLmhhcyh0KSYmKHRoaXMuX2Zhc3RTeW1ib2xzLmRlbGV0ZSh0KSx0aGlzLl9xdW90ZVNlc3Npb24uc2V0RmFzdFN5bWJvbHModGhpcy5fY2xpZW50SWQsQXJyYXkuZnJvbSh0aGlzLl9mYXN0U3ltYm9scykpKX1hZGRTeW1ib2xEYXRhSGFuZGxlcih0LGUpeygwLGguaXNTZXBhcmF0b3JJdGVtKSh0KXx8dGhpcy5fc3ltYm9sRGF0YUhhbmRsZXJzLnNldCh0LGUpfXJlbW92ZVN5bWJvbERhdGFIYW5kbGVyKHQpe3RoaXMuX3N5bWJvbERhdGFIYW5kbGVycy5kZWxldGUodCl9YWRkVG9TdWJzY3JpcHRpb25TZXQodCl7dC5mb3JFYWNoKCh0PT57KDAsaC5pc1NlcGFyYXRvckl0ZW0pKHQpfHx0aGlzLl9zdWJzY3JpcHRpb25TZXQuYWRkKHQpfSkpfWNsZWFyU3Vic2NyaXB0aW9uU2V0KCl7dGhpcy5fc3Vic2NyaXB0aW9uU2V0LmNsZWFyKCl9YWRkVG9DYW5jZWxTdWJzY3JpcHRpb25TZXQodCl7dC5mb3JFYWNoKCh0PT57KDAsaC5pc1NlcGFyYXRvckl0ZW0pKHQpfHx0aGlzLl9jYW5jZWxTdWJzY3JpcHRpb25TZXQuYWRkKHQpfSkpfWNvbW1pdFN1YnNjcmlwdGlvbkNoYW5nZXMoKXtBcnJheS5mcm9tKHRoaXMuX3N1YnNjcmlwdGlvblNldCkuZm9yRWFjaCgodD0+e3RoaXMuX2NhbmNlbFN1YnNjcmlwdGlvblNldC5oYXModCkmJih0aGlzLl9zdWJzY3JpcHRpb25TZXQuZGVsZXRlKHQpLHRoaXMuX2NhbmNlbFN1YnNjcmlwdGlvblNldC5kZWxldGUodCkpfSkpLHRoaXMuX3N1YnNjcmliZVN5bWJvbHMoQXJyYXkuZnJvbSh0aGlzLl9zdWJzY3JpcHRpb25TZXQpKSx0aGlzLl9zdWJzY3JpcHRpb25TZXQuY2xlYXIoKSx0aGlzLl91bnN1YnNjcmliZVN5bWJvbHMoQXJyYXkuZnJvbSh0aGlzLl9jYW5jZWxTdWJzY3JpcHRpb25TZXQpKSx0aGlzLl9jYW5jZWxTdWJzY3JpcHRpb25TZXQuY2xlYXIoKSx0aGlzLl9xdW90ZVNlc3Npb24uc2V0RmFzdFN5bWJvbHModGhpcy5fY2xpZW50SWQsQXJyYXkuZnJvbSh0aGlzLl9mYXN0U3ltYm9scykpfWdldExhc3RTeW1ib2xEYXRhKHQpe3JldHVybiB0aGlzLl9sYXN0U3ltYm9sRGF0YS5nZXQodCl9X3N1YnNjcmliZVN5bWJvbHModCl7dGhpcy5fcXVvdGVTZXNzaW9uLnN1YnNjcmliZSh0aGlzLl9jbGllbnRJZCx0LHRoaXMuX3F1b3RlU2Vzc2lvbkRhdGFIYW5kbGVyKSx0LmZvckVhY2goKHQ9PnRoaXMuX3N1YnNjcmliZWRTeW1ib2xzLmFkZCh0KSkpfV91bnN1YnNjcmliZVN5bWJvbHModCl7dGhpcy5fcXVvdGVTZXNzaW9uLnVuc3Vic2NyaWJlKHRoaXMuX2NsaWVudElkLHQsdGhpcy5fcXVvdGVTZXNzaW9uRGF0YUhhbmRsZXIpLHQuZm9yRWFjaCgodD0+e3RoaXMuX3N1YnNjcmliZWRTeW1ib2xzLmRlbGV0ZSh0KX0pKX1fc2V0U3ltYm9sRGF0YUNhY2hlKHQsZSl7Y29uc3Qgcz10aGlzLl9sYXN0U3ltYm9sRGF0YS5nZXQodCk/LnZhbHVlc3x8e307dGhpcy5fbGFzdFN5bWJvbERhdGEuc2V0KHQsey4uLmUsdmFsdWVzOnsuLi5zLC4uLmUudmFsdWVzfX0pfV9hcHBseURhdGFGaWx0ZXJzKHQpe3tjb25zdCBlPSgpPT4oMCxsLmVuYWJsZWQpKCJJRENfQVZBSUxBQkxFX0RFTEFZIikscz10PT4oey4uLnQsc3RhdHVzOiJzZl9kYXRhIix2YWx1ZXM6e319KTtpZigodD0+KDAsYS5pc1NmUXVvdGVEYXRhKSh0KXx8KDAsci5pc0lEQ0V4Y2hhbmdlKSgoMCxuLmdldEV4Y2hhbmdlKSgoMCxpLmVuc3VyZURlZmluZWQpKHQuc3ltYm9sbmFtZSkpLCEwKSkodCkmJiFlKCkpcmV0dXJue2ZpbHRlcmVkOnModCksa2VlcFN1YnNjcmlwdGlvbjohMX19cmV0dXJue2ZpbHRlcmVkOnQsa2VlcFN1YnNjcmlwdGlvbjohMH19fWNvbnN0IGQ9bmV3IGNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5fYWRhcHRlcnNNYXA9bmV3IE1hcCx0aGlzLl9sYXN0U3ltYm9sRGF0YT1uZXcgTWFwfWRlc3Ryb3koKXt0aGlzLl9hZGFwdGVyc01hcC5mb3JFYWNoKCh0PT57dC5mb3JFYWNoKCh0PT50LmRlc3Ryb3koKSkpfSkpLHRoaXMuX2xhc3RTeW1ib2xEYXRhLmNsZWFyKCl9Z2V0KHQsZT0id2F0Y2hsaXN0Iil7bGV0IHM7Y29uc3QgaT10aGlzLl9hZGFwdGVyc01hcC5nZXQodCk7aWYoaSl7Y29uc3Qgbz1pLmdldChlKTtvP3M9bzoocz1uZXcgYyh0LHRoaXMuX2xhc3RTeW1ib2xEYXRhLGUpLGkuc2V0KGUscykpfWVsc2V7CnM9bmV3IGModCx0aGlzLl9sYXN0U3ltYm9sRGF0YSxlKTtjb25zdCBpPW5ldyBNYXA7aS5zZXQoZSxzKSx0aGlzLl9hZGFwdGVyc01hcC5zZXQodCxpKX1yZXR1cm4gc319fSw5OTU2ODIodCxlLHMpeyJ1c2Ugc3RyaWN0IjtzLmQoZSx7RHJhZ0hhbmRsZXI6KCk9Pm99KTt2YXIgaT1zKDUzMTkyOCk7Y2xhc3Mgb3tjb25zdHJ1Y3Rvcih0LGUscz17Ym91bmRCeVNjcmVlbjohMH0pe3RoaXMuX2RyYWc9bnVsbCx0aGlzLl9jYW5CZVRvdWNoQ2xpY2s9ITEsdGhpcy5fZnJhbWU9bnVsbCx0aGlzLl9vbk1vdXNlRHJhZ1N0YXJ0PXQ9PntpZigwIT09dC5idXR0b258fHRoaXMuX2lzVGFyZ2V0Tm9EcmFnZ2FibGUodCkpcmV0dXJuO3QucHJldmVudERlZmF1bHQoKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLHRoaXMuX29uTW91c2VEcmFnTW92ZSksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsdGhpcy5fb25Nb3VzZURyYWdFbmQpO2NvbnN0IGU9KDAsaS5jbGFtcFBvc2l0aW9uKSgoMCxpLnBvc2l0aW9uRnJvbU1vdXNlRXZlbnQpKHQpKTt0aGlzLl9kcmFnU3RhcnQoZSl9LHRoaXMuX29uVG91Y2hEcmFnU3RhcnQ9dD0+e2lmKHRoaXMuX2lzVGFyZ2V0Tm9EcmFnZ2FibGUodCkpcmV0dXJuO3RoaXMuX2NhbkJlVG91Y2hDbGljaz0hMCx0LnByZXZlbnREZWZhdWx0KCksdGhpcy5faGVhZGVyLmFkZEV2ZW50TGlzdGVuZXIoInRvdWNobW92ZSIsdGhpcy5fb25Ub3VjaERyYWdNb3ZlLHtwYXNzaXZlOiExfSk7Y29uc3QgZT0oMCxpLmNsYW1wUG9zaXRpb24pKCgwLGkucG9zaXRpb25Gcm9tVG91Y2hFdmVudCkodCkpO3RoaXMuX2RyYWdTdGFydChlKX0sdGhpcy5fb25Nb3VzZURyYWdFbmQ9dD0+e3QudGFyZ2V0IGluc3RhbmNlb2YgTm9kZSYmdGhpcy5faGVhZGVyLmNvbnRhaW5zKHQudGFyZ2V0KSYmdC5wcmV2ZW50RGVmYXVsdCgpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIsdGhpcy5fb25Nb3VzZURyYWdNb3ZlKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZXVwIix0aGlzLl9vbk1vdXNlRHJhZ0VuZCksdGhpcy5fb25EcmFnU3RvcCgpfSx0aGlzLl9vblRvdWNoRHJhZ0VuZD10PT57dGhpcy5faGVhZGVyLnJlbW92ZUV2ZW50TGlzdGVuZXIoInRvdWNobW92ZSIsdGhpcy5fb25Ub3VjaERyYWdNb3ZlKSx0aGlzLl9vbkRyYWdTdG9wKCksdGhpcy5fY2FuQmVUb3VjaENsaWNrJiYodGhpcy5fY2FuQmVUb3VjaENsaWNrPSExLCgwLGkuc2ltdWxhdGVDbGljaykodC50YXJnZXQpKX0sdGhpcy5fb25Nb3VzZURyYWdNb3ZlPXQ9Pntjb25zdCBlPSgwLGkuY2xhbXBQb3NpdGlvbikoKDAsaS5wb3NpdGlvbkZyb21Nb3VzZUV2ZW50KSh0KSk7dGhpcy5fZHJhZ01vdmUoZSl9LHRoaXMuX29uVG91Y2hEcmFnTW92ZT10PT57dGhpcy5fY2FuQmVUb3VjaENsaWNrPSExLHQucHJldmVudERlZmF1bHQoKTtjb25zdCBlPSgwLGkuY2xhbXBQb3NpdGlvbikoKDAsaS5wb3NpdGlvbkZyb21Ub3VjaEV2ZW50KSh0KSk7dGhpcy5fZHJhZ01vdmUoZSl9LHRoaXMuX29uRHJhZ1N0b3A9KCk9Pnt0aGlzLl9kcmFnPW51bGwsdGhpcy5faGVhZGVyLmNsYXNzTGlzdC5yZW1vdmUoImRyYWdnaW5nIiksdGhpcy5fb3B0aW9ucy5vbkRyYWdFbmQmJnRoaXMuX29wdGlvbnMub25EcmFnRW5kKCl9LHRoaXMuX2RpYWxvZz10LHRoaXMuX2hlYWRlcj1lLHRoaXMuX29wdGlvbnM9cyx0aGlzLl9oZWFkZXIuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vkb3duIix0aGlzLl9vbk1vdXNlRHJhZ1N0YXJ0KSx0aGlzLl9oZWFkZXIuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hzdGFydCIsdGhpcy5fb25Ub3VjaERyYWdTdGFydCksdGhpcy5faGVhZGVyLmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoZW5kIix0aGlzLl9vblRvdWNoRHJhZ0VuZCl9ZGVzdHJveSgpe251bGwhPT10aGlzLl9mcmFtZSYmY2FuY2VsQW5pbWF0aW9uRnJhbWUodGhpcy5fZnJhbWUpLHRoaXMuX2hlYWRlci5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZWRvd24iLHRoaXMuX29uTW91c2VEcmFnU3RhcnQpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLHRoaXMuX29uTW91c2VEcmFnRW5kKSx0aGlzLl9oZWFkZXIucmVtb3ZlRXZlbnRMaXN0ZW5lcigidG91Y2hzdGFydCIsdGhpcy5fb25Ub3VjaERyYWdTdGFydCksdGhpcy5faGVhZGVyLnJlbW92ZUV2ZW50TGlzdGVuZXIoInRvdWNoZW5kIix0aGlzLl9vblRvdWNoRHJhZ0VuZCksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2VsZWF2ZSIsdGhpcy5fb25Nb3VzZURyYWdFbmQpfXVwZGF0ZU9wdGlvbnModCl7dGhpcy5fb3B0aW9ucz10fV9kcmFnU3RhcnQodCl7Y29uc3QgZT10aGlzLl9kaWFsb2cuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7dGhpcy5fZHJhZz17c3RhcnRYOnQueCxzdGFydFk6dC55LGZpbmlzaFg6dC54LGZpbmlzaFk6dC55LGRpYWxvZ1g6ZS5sZWZ0LGRpYWxvZ1k6ZS50b3B9O2NvbnN0IHM9TWF0aC5yb3VuZChlLmxlZnQpLGk9TWF0aC5yb3VuZChlLnRvcCk7dGhpcy5fZGlhbG9nLnN0eWxlLnRyYW5zZm9ybT1gdHJhbnNsYXRlKCR7c31weCwgJHtpfXB4KWAsdGhpcy5faGVhZGVyLmNsYXNzTGlzdC5hZGQoImRyYWdnaW5nIiksdGhpcy5fb3B0aW9ucy5vbkRyYWdTdGFydCYmdGhpcy5fb3B0aW9ucy5vbkRyYWdTdGFydCgpfV9kcmFnTW92ZSh0KXtpZih0aGlzLl9kcmFnKXtpZih0aGlzLl9kcmFnLmZpbmlzaFg9dC54LHRoaXMuX2RyYWcuZmluaXNoWT10LnksbnVsbCE9PXRoaXMuX2ZyYW1lKXJldHVybjt0aGlzLl9mcmFtZT1yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCgpPT57aWYodGhpcy5fZHJhZyl7Y29uc3QgZT10LngtdGhpcy5fZHJhZy5zdGFydFgscz10LnktdGhpcy5fZHJhZy5zdGFydFk7dGhpcy5fbW92ZURpYWxvZyh0aGlzLl9kcmFnLmRpYWxvZ1grZSx0aGlzLl9kcmFnLmRpYWxvZ1krcyl9dGhpcy5fZnJhbWU9bnVsbH0pKX19X21vdmVEaWFsb2codCxlKXsKY29uc3Qgcz10aGlzLl9kaWFsb2cuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkse2JvdW5kQnlTY3JlZW46b309dGhpcy5fb3B0aW9ucyxuPSgwLGkuY2xhbXBTZWdtZW50KSh0LHMud2lkdGgsbz8wOi0xLzAsbz93aW5kb3cuaW5uZXJXaWR0aDoxLzApLGE9KDAsaS5jbGFtcFNlZ21lbnQpKGUscy5oZWlnaHQsbz8wOi0xLzAsbz93aW5kb3cuaW5uZXJIZWlnaHQ6MS8wKTt0aGlzLl9kaWFsb2cuc3R5bGUudHJhbnNmb3JtPWB0cmFuc2xhdGUoJHtNYXRoLnJvdW5kKG4pfXB4LCAke01hdGgucm91bmQoYSl9cHgpYH1faXNUYXJnZXROb0RyYWdnYWJsZSh0KXtyZXR1cm4gdC50YXJnZXQgaW5zdGFuY2VvZiBFbGVtZW50JiZudWxsIT09dC50YXJnZXQuY2xvc2VzdCgiW2RhdGEtZGlzYWJsZS1kcmFnXSIpfX19LDU4NTgyMSh0LGUscyl7InVzZSBzdHJpY3QiO3MuZChlLHtQb3B1cERpYWxvZzooKT0+TH0pO3ZhciBpPXMoNzc5NDc0KSxvPXMoOTE0NDg3KSxuPXMubihvKSxhPXMoMTM4NjM4KSxyPXMoOTkxMDY2KSxsPXMoNzE4NTUzKSxoPXMoOTMwMjMxKSxjPXMoNjU5ODc4KSxkPXMoOTk1NjgyKSx1PXMoNTMxOTI4KTtjb25zdCBwPXt2ZXJ0aWNhbDowfTtjbGFzcyBte2NvbnN0cnVjdG9yKHQsZSl7dGhpcy5fZnJhbWU9bnVsbCx0aGlzLl9pc0Z1bGxzY3JlZW49ITEsdGhpcy5faGFuZGxlUmVzaXplPSgpPT57bnVsbD09PXRoaXMuX2ZyYW1lJiYodGhpcy5fZnJhbWU9cmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgoKT0+e3RoaXMucmVjYWxjdWxhdGVCb3VuZHMoKSx0aGlzLl9mcmFtZT1udWxsfSkpKX0sdGhpcy5fZGlhbG9nPXQsdGhpcy5fZ3VhcmQ9ZS5ndWFyZHx8cCx0aGlzLl9jYWxjdWxhdGVEaWFsb2dQb3NpdGlvbj1lLmNhbGN1bGF0ZURpYWxvZ1Bvc2l0aW9uLHRoaXMuX2luaXRpYWxIZWlnaHQ9dC5zdHlsZS5oZWlnaHQsd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsdGhpcy5faGFuZGxlUmVzaXplKX11cGRhdGVPcHRpb25zKHQpe3RoaXMuX2d1YXJkPXQuZ3VhcmR8fHAsdGhpcy5fY2FsY3VsYXRlRGlhbG9nUG9zaXRpb249dC5jYWxjdWxhdGVEaWFsb2dQb3NpdGlvbn1zZXRGdWxsc2NyZWVuKHQpe3RoaXMuX2lzRnVsbHNjcmVlbiE9PXQmJih0aGlzLl9pc0Z1bGxzY3JlZW49dCx0aGlzLnJlY2FsY3VsYXRlQm91bmRzKCkpfWNlbnRlckFuZEZpdCgpe2NvbnN0e3g6dCx5OmV9PXRoaXMuZ2V0RGlhbG9nc1RvcExlZnRDb29yZGluYXRlcygpLHM9dGhpcy5fY2FsY0F2YWlsYWJsZUhlaWdodCgpLGk9dGhpcy5fY2FsY0RpYWxvZ0hlaWdodCgpO2lmKHM9PT1pKWlmKHRoaXMuX2NhbGN1bGF0ZURpYWxvZ1Bvc2l0aW9uKXtjb25zdHtsZWZ0OnQsdG9wOmV9PXRoaXMuX2NhbGN1bGF0ZURpYWxvZ1Bvc2l0aW9uKHRoaXMuX2RpYWxvZyxkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsdGhpcy5fZ3VhcmQpO3RoaXMuX2RpYWxvZy5zdHlsZS50cmFuc2Zvcm09YHRyYW5zbGF0ZSgke01hdGgucm91bmQodCl9cHgsICR7TWF0aC5yb3VuZChlKX1weClgfWVsc2UgdGhpcy5fZGlhbG9nLnN0eWxlLmhlaWdodD1pKyJweCI7dGhpcy5fZGlhbG9nLnN0eWxlLnRvcD0iMHB4Iix0aGlzLl9kaWFsb2cuc3R5bGUubGVmdD0iMHB4Iix0aGlzLl9kaWFsb2cuc3R5bGUudHJhbnNmb3JtPWB0cmFuc2xhdGUoJHt0fXB4LCAke2V9cHgpYH1nZXREaWFsb2dzVG9wTGVmdENvb3JkaW5hdGVzKCl7Y29uc3R7Y2xpZW50V2lkdGg6dCxjbGllbnRIZWlnaHQ6ZX09dGhpcy5fZ2V0Q2xpZW50RGltZW5zaW9ucygpLHM9dGhpcy5fY2FsY0RpYWxvZ0hlaWdodCgpLGk9dC8yLXRoaXMuX2RpYWxvZy5jbGllbnRXaWR0aC8yLG89ZS8yLXMvMit0aGlzLl9nZXRUb3BPZmZzZXQoKTtyZXR1cm57eDpNYXRoLnJvdW5kKGkpLHk6TWF0aC5yb3VuZChvKX19cmVjYWxjdWxhdGVCb3VuZHMoKXtjb25zdHtjbGllbnRXaWR0aDp0LGNsaWVudEhlaWdodDplfT10aGlzLl9nZXRDbGllbnREaW1lbnNpb25zKCkse3ZlcnRpY2FsOnN9PXRoaXMuX2d1YXJkLGk9dGhpcy5fY2FsY3VsYXRlRGlhbG9nUG9zaXRpb24/Lih0aGlzLl9kaWFsb2cse2NsaWVudFdpZHRoOnQsY2xpZW50SGVpZ2h0OmV9LHt2ZXJ0aWNhbDpzfSk7aWYodGhpcy5faXNGdWxsc2NyZWVuKXtpZih0aGlzLl9kaWFsb2cuc3R5bGUudG9wPSIwcHgiLHRoaXMuX2RpYWxvZy5zdHlsZS5sZWZ0PSIwcHgiLHRoaXMuX2RpYWxvZy5zdHlsZS53aWR0aD0iMTAwJSIsdGhpcy5fZGlhbG9nLnN0eWxlLmhlaWdodD0iMTAwJSIsdGhpcy5fZGlhbG9nLnN0eWxlLnRyYW5zZm9ybT0ibm9uZSIsaSl7Y29uc3R7bGVmdDp0LHRvcDplLHdpZHRoOnMsaGVpZ2h0Om99PWk7dGhpcy5fZGlhbG9nLnN0eWxlLnRyYW5zZm9ybT1gdHJhbnNsYXRlKCR7TWF0aC5yb3VuZCh0KX1weCwgJHtNYXRoLnJvdW5kKGUpfXB4KWAscyYmKHRoaXMuX2RpYWxvZy5zdHlsZS53aWR0aD1gJHtzfXB4YCx0aGlzLl9kaWFsb2cuc3R5bGUubWluV2lkdGg9InVuc2V0IiksbyYmKHRoaXMuX2RpYWxvZy5zdHlsZS5oZWlnaHQ9YCR7b31weGAsdGhpcy5fZGlhbG9nLnN0eWxlLm1pbkhlaWdodD0idW5zZXQiKX19ZWxzZSBpZihpKXtjb25zdHtsZWZ0OnQsdG9wOmV9PWk7dGhpcy5fZGlhbG9nLnN0eWxlLnRyYW5zZm9ybT1gdHJhbnNsYXRlKCR7TWF0aC5yb3VuZCh0KX1weCwgJHtNYXRoLnJvdW5kKGUpfXB4KWB9ZWxzZXt0aGlzLl9kaWFsb2cuc3R5bGUud2lkdGg9IiIsdGhpcy5fZGlhbG9nLnN0eWxlLmhlaWdodD0iIjtjb25zdCBpPXRoaXMuX2RpYWxvZy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxvPWUtMipzLG49KDAsdS5jbGFtcFNlZ21lbnQpKGkubGVmdCxpLndpZHRoLDAsdCksYT0oMCx1LmNsYW1wU2VnbWVudCkoaS50b3AsaS5oZWlnaHQscyxlKTt0aGlzLl9kaWFsb2cuc3R5bGUudG9wPSIwcHgiLHRoaXMuX2RpYWxvZy5zdHlsZS5sZWZ0PSIwcHgiLHRoaXMuX2RpYWxvZy5zdHlsZS50cmFuc2Zvcm09YHRyYW5zbGF0ZSgke01hdGgucm91bmQobil9cHgsICR7TWF0aC5yb3VuZChhKX1weClgLHRoaXMuX2RpYWxvZy5zdHlsZS5oZWlnaHQ9bzxpLmhlaWdodD9vKyJweCI6dGhpcy5faW5pdGlhbEhlaWdodH19CmRlc3Ryb3koKXt3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigicmVzaXplIix0aGlzLl9oYW5kbGVSZXNpemUpLG51bGwhPT10aGlzLl9mcmFtZSYmKGNhbmNlbEFuaW1hdGlvbkZyYW1lKHRoaXMuX2ZyYW1lKSx0aGlzLl9mcmFtZT1udWxsKX1fZ2V0Q2xpZW50RGltZW5zaW9ucygpe3JldHVybntjbGllbnRIZWlnaHQ6ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodCxjbGllbnRXaWR0aDpkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50V2lkdGh9fV9nZXRUb3BPZmZzZXQoKXtyZXR1cm4gMH1fY2FsY0RpYWxvZ0hlaWdodCgpe2NvbnN0IHQ9dGhpcy5fY2FsY0F2YWlsYWJsZUhlaWdodCgpO3JldHVybiB0PHRoaXMuX2RpYWxvZy5jbGllbnRIZWlnaHQ/dDp0aGlzLl9kaWFsb2cuY2xpZW50SGVpZ2h0fV9jYWxjQXZhaWxhYmxlSGVpZ2h0KCl7cmV0dXJuIHRoaXMuX2dldENsaWVudERpbWVuc2lvbnMoKS5jbGllbnRIZWlnaHQtMip0aGlzLl9ndWFyZC52ZXJ0aWNhbH19dmFyIF89cyg1ODU0OCksZz1zKDQ5MDg5MyksYj1zKDg3MjUxOCkseT1zKDMzMjY2MCksZj1zKDExNzMxMyksUz1zKDMzNzM2Mik7dmFyIHY9cyg2OTIyNjYpLEM9cygxNDc5MDEpLHc9cygxNzU4NjMpO2NvbnN0IEQ9d1sidG9vbHRpcC1vZmZzZXQiXSxFPSgwLGguaXNGZWF0dXJlc2V0RW5hYmxlZCkoImVtYmVkX3Jlc2l6ZXJfb3ZlcnJpZGVzIik/Y2xhc3MgZXh0ZW5kcyBte2NvbnN0cnVjdG9yKHQsZSl7c3VwZXIodCxlKSx0aGlzLl9lbmFibGVkPSgwLGguaXNGZWF0dXJlc2V0RW5hYmxlZCkoImVtYmVkX3Jlc2l6ZXJfb3ZlcnJpZGVzIil9X2dldENsaWVudERpbWVuc2lvbnMoKXtjb25zdCB0PXN1cGVyLl9nZXRDbGllbnREaW1lbnNpb25zKCk7aWYodGhpcy5fZW5hYmxlZCl7Y29uc3QgZT1TLkVtYmVkVmlld3BvcnREaW1lbnNpb25zUHJvdmlkZXIuZ2V0SW5zdGFuY2UoKS5kYXRhKCk7ZSYmKHQuY2xpZW50SGVpZ2h0PWUuaGVpZ2h0KX1yZXR1cm4gdH1fZ2V0VG9wT2Zmc2V0KCl7aWYodGhpcy5fZW5hYmxlZCl7Y29uc3QgdD1TLkVtYmVkVmlld3BvcnREaW1lbnNpb25zUHJvdmlkZXIuZ2V0SW5zdGFuY2UoKS5kYXRhKCk7aWYodClyZXR1cm4gdC50b3B9cmV0dXJuIHN1cGVyLl9nZXRUb3BPZmZzZXQoKX19Om07Y2xhc3MgeCBleHRlbmRzIGkuUHVyZUNvbXBvbmVudHtjb25zdHJ1Y3Rvcih0KXtzdXBlcih0KSx0aGlzLl9kaWFsb2c9bnVsbCx0aGlzLl9jbGVhblVwRnVuY3Rpb25zPVtdLHRoaXMuX3ByZXZBY3RpdmVFbGVtZW50PW51bGwsdGhpcy5fZXZlbnREaXNwYXRjaGVyPW5ldyB5LkRpYWxvZ0V2ZW50RGlzcGF0Y2hlcix0aGlzLl9oYW5kbGVEaWFsb2dSZWY9dD0+e2NvbnN0e3JlZmVyZW5jZTplfT10aGlzLnByb3BzO3RoaXMuX2RpYWxvZz10LCJmdW5jdGlvbiI9PXR5cGVvZiBlP2UodCk6bnVsbCE9ZSYmKGUuY3VycmVudD10KX0sdGhpcy5faGFuZGxlRm9jdXM9KCk9Pnt0aGlzLl9tb3ZlVG9Ub3AoKX0sdGhpcy5faGFuZGxlTW91c2VEb3duPXQ9Pnt0aGlzLl9tb3ZlVG9Ub3AoKX0sdGhpcy5faGFuZGxlVG91Y2hTdGFydD10PT57dGhpcy5fbW92ZVRvVG9wKCl9LHRoaXMuc3RhdGU9e2NhbkZpdFRvb2x0aXA6ITF9LHRoaXMuX3ByZXZBY3RpdmVFbGVtZW50PWRvY3VtZW50LmFjdGl2ZUVsZW1lbnR9cmVuZGVyKCl7cmV0dXJuIGkuY3JlYXRlRWxlbWVudChnLlBvcHVwQ29udGV4dC5Qcm92aWRlcix7dmFsdWU6dGhpc30saS5jcmVhdGVFbGVtZW50KGwuT3V0c2lkZUV2ZW50LHttb3VzZURvd246ITAsdG91Y2hTdGFydDohMCxoYW5kbGVyOnRoaXMucHJvcHMub25DbGlja091dHNpZGV9LCh0PT5pLmNyZWF0ZUVsZW1lbnQoImRpdiIse3JlZjp0LCJkYXRhLW91dHNpZGUtYm91bmRhcnktZm9yIjp0aGlzLnByb3BzLm5hbWUsb25Gb2N1czp0aGlzLl9oYW5kbGVGb2N1cyxvbk1vdXNlRG93bjp0aGlzLl9oYW5kbGVNb3VzZURvd24sb25Ub3VjaFN0YXJ0OnRoaXMuX2hhbmRsZVRvdWNoU3RhcnQsImRhdGEtZGlhbG9nLW5hbWUiOnRoaXMucHJvcHNbImRhdGEtZGlhbG9nLW5hbWUiXSwiZGF0YS10b29sdGlwLXNob3ctb24tZm9jdXMiOiJ0cnVlIiwiZGF0YS1xYS1pZCI6KDAsQy5kYXRhUWFJZHMpKCJ1aS1saWItUG9wdXBEaWFsb2ciLHRoaXMucHJvcHMuZGF0YVFhSWQpfSxpLmNyZWF0ZUVsZW1lbnQoci5EaWFsb2cse3N0eWxlOnRoaXMuX2FwcGx5QW5pbWF0aW9uQ1NTVmFyaWFibGVzKCksLi4udGhpcy5wcm9wcyxyZWZlcmVuY2U6dGhpcy5faGFuZGxlRGlhbG9nUmVmLGNsYXNzTmFtZTpuKCkody5kaWFsb2csKDAsZi5pc09uTW9iaWxlQXBwUGFnZSkoImFueSIpJiYhdGhpcy5wcm9wcy5ub01vYmlsZUFwcFNoYWRvd3MmJncubW9iaWxlLHRoaXMucHJvcHMuZnVsbHNjcmVlbiYmdy5mdWxsc2NyZWVuLHRoaXMucHJvcHMuY2xhc3NOYW1lKX0sdGhpcy5wcm9wcy5kaWFsb2dUb29sdGlwJiZ0aGlzLnN0YXRlLmNhbkZpdFRvb2x0aXAmJmkuY3JlYXRlRWxlbWVudCh2LlRvb2x0aXBXaWRnZXQse2NsYXNzTmFtZTp3LmRpYWxvZ1Rvb2x0aXB9LHRoaXMucHJvcHMuZGlhbG9nVG9vbHRpcCksdGhpcy5wcm9wcy5jaGlsZHJlbikpKSkpfWNvbXBvbmVudERpZE1vdW50KCl7Y29uc3R7ZHJhZ2dhYmxlOnQsYm91bmRCeVNjcmVlbjplLG9uRHJhZ1N0YXJ0OnN9PXRoaXMucHJvcHMsaT0oMCxhLmVuc3VyZU5vdE51bGwpKHRoaXMuX2RpYWxvZyk7aWYodGhpcy5fZXZlbnREaXNwYXRjaGVyLmRpc3BhdGNoKCJkaWFsb2ctb3BlbiIpLHQpe2NvbnN0IHQ9aS5xdWVyeVNlbGVjdG9yKCJbZGF0YS1kcmFnZy1hcmVhXSIpO2lmKHQmJnQgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCl7Y29uc3Qgbz1uZXcgZC5EcmFnSGFuZGxlcihpLHQse2JvdW5kQnlTY3JlZW46Qm9vbGVhbihlKSxvbkRyYWdTdGFydDpzfSk7dGhpcy5fY2xlYW5VcEZ1bmN0aW9ucy5wdXNoKCgoKT0+by5kZXN0cm95KCkpKSx0aGlzLl9kcmFnPW99fXRoaXMucHJvcHMuYXV0b2ZvY3VzJiYhaS5jb250YWlucyhkb2N1bWVudC5hY3RpdmVFbGVtZW50KSYmaS5mb2N1cygpLAoodGhpcy5faXNGdWxsU2NyZWVuKCl8fHRoaXMucHJvcHMuZml4ZWRCb2R5KSYmKDAsYi5zZXRGaXhlZEJvZHlTdGF0ZSkoITApO2NvbnN0e2d1YXJkOm8sY2FsY3VsYXRlRGlhbG9nUG9zaXRpb246bn09dGhpcy5wcm9wcztpZih0aGlzLnByb3BzLnJlc2l6ZUhhbmRsZXIpdGhpcy5fcmVzaXplPXRoaXMucHJvcHMucmVzaXplSGFuZGxlcjtlbHNle2NvbnN0IHQ9bmV3IEUoaSx7Z3VhcmQ6byxjYWxjdWxhdGVEaWFsb2dQb3NpdGlvbjpufSk7dGhpcy5fY2xlYW5VcEZ1bmN0aW9ucy5wdXNoKCgoKT0+dC5kZXN0cm95KCkpKSx0aGlzLl9yZXNpemU9dH1pZih0aGlzLl9pc0Z1bGxTY3JlZW4oKSYmdGhpcy5fZXZlbnREaXNwYXRjaGVyLmRpc3BhdGNoKCJkaWFsb2ctZnVsbHNjcmVlbi1vbiIpLHRoaXMucHJvcHMuaXNBbmltYXRpb25FbmFibGVkJiZ0aGlzLnByb3BzLmdyb3dQb2ludCYmdGhpcy5fYXBwbHlBcHBlYXJhbmNlQW5pbWF0aW9uKHRoaXMucHJvcHMuZ3Jvd1BvaW50KSx0aGlzLnByb3BzLmNlbnRlcmVkT25Nb3VudCYmdGhpcy5fcmVzaXplLmNlbnRlckFuZEZpdCgpLHRoaXMuX3Jlc2l6ZS5zZXRGdWxsc2NyZWVuKHRoaXMuX2lzRnVsbFNjcmVlbigpKSx0aGlzLnByb3BzLmRpYWxvZ1Rvb2x0aXAmJnRoaXMuX2hhbmRsZVRvb2x0aXBGaXQoKSx0aGlzLnByb3BzLnNob3VsZEZvcmNlRm9jdXMpe2lmKHRoaXMucHJvcHMub25Gb3JjZUZvY3VzKXJldHVybiB2b2lkIHRoaXMucHJvcHMub25Gb3JjZUZvY3VzKGkpO2kuZm9jdXMoKX1pZighaS5jb250YWlucyhkb2N1bWVudC5hY3RpdmVFbGVtZW50KSl7Y29uc3QgdD0oMCx1LmZpbmREZWZhdWx0Rm9jdXNhYmxlRWxlbWVudCkoaSk7dCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50JiZ0LmZvY3VzKCl9fWNvbXBvbmVudERpZFVwZGF0ZSh0KXtjb25zdCBlPXQuZnVsbHNjcmVlbjtpZih0aGlzLl9yZXNpemUpe2NvbnN0e2d1YXJkOnQsY2FsY3VsYXRlRGlhbG9nUG9zaXRpb246ZX09dGhpcy5wcm9wczt0aGlzLl9yZXNpemUudXBkYXRlT3B0aW9ucyh7Z3VhcmQ6dCxjYWxjdWxhdGVEaWFsb2dQb3NpdGlvbjplfSksdGhpcy5fcmVzaXplLnNldEZ1bGxzY3JlZW4odGhpcy5faXNGdWxsU2NyZWVuKCkpfWlmKHRoaXMuX2RyYWcmJnRoaXMuX2RyYWcudXBkYXRlT3B0aW9ucyh7Ym91bmRCeVNjcmVlbjpCb29sZWFuKHRoaXMucHJvcHMuYm91bmRCeVNjcmVlbiksb25EcmFnU3RhcnQ6dGhpcy5wcm9wcy5vbkRyYWdTdGFydH0pLHQuZnVsbHNjcmVlbiE9PXRoaXMucHJvcHMuZnVsbHNjcmVlbil7Y29uc3QgdD10aGlzLnByb3BzLmZ1bGxzY3JlZW47dCYmIWU/dGhpcy5fZXZlbnREaXNwYXRjaGVyLmRpc3BhdGNoKCJkaWFsb2ctZnVsbHNjcmVlbi1vbiIpOiF0JiZlJiZ0aGlzLl9ldmVudERpc3BhdGNoZXIuZGlzcGF0Y2goImRpYWxvZy1mdWxsc2NyZWVuLW9mZiIpfX1jb21wb25lbnRXaWxsVW5tb3VudCgpe2lmKHRoaXMucHJvcHMuc2hvdWxkUmV0dXJuRm9jdXMmJnRoaXMuX3ByZXZBY3RpdmVFbGVtZW50JiZkb2N1bWVudC5ib2R5LmNvbnRhaW5zKHRoaXMuX3ByZXZBY3RpdmVFbGVtZW50KSYmKG51bGw9PT1kb2N1bWVudC5hY3RpdmVFbGVtZW50fHxkb2N1bWVudC5hY3RpdmVFbGVtZW50PT09ZG9jdW1lbnQuYm9keXx8dGhpcy5fZGlhbG9nPy5jb250YWlucyhkb2N1bWVudC5hY3RpdmVFbGVtZW50KSkpdHJ5e3NldFRpbWVvdXQoKCgpPT57dGhpcy5fcHJldkFjdGl2ZUVsZW1lbnQuZm9jdXMoe3ByZXZlbnRTY3JvbGw6ITB9KX0pKX1jYXRjaHt9Zm9yKGNvbnN0IHQgb2YgdGhpcy5fY2xlYW5VcEZ1bmN0aW9ucyl0KCk7KHRoaXMuX2lzRnVsbFNjcmVlbigpfHx0aGlzLnByb3BzLmZpeGVkQm9keSkmJigwLGIuc2V0Rml4ZWRCb2R5U3RhdGUpKCExKSx0aGlzLl9pc0Z1bGxTY3JlZW4oKSYmdGhpcy5fZXZlbnREaXNwYXRjaGVyLmRpc3BhdGNoKCJkaWFsb2ctZnVsbHNjcmVlbi1vZmYiKSx0aGlzLl9ldmVudERpc3BhdGNoZXIuZGlzcGF0Y2goImRpYWxvZy1jbG9zZSIpfWZvY3VzKCl7dGhpcy5fZGlhbG9nJiZ0aGlzLl9kaWFsb2cuZm9jdXMoKX1jZW50ZXJBbmRGaXQoKXt0aGlzLl9yZXNpemUmJnRoaXMuX3Jlc2l6ZS5jZW50ZXJBbmRGaXQoKX1yZWNhbGN1bGF0ZUJvdW5kcygpe3RoaXMuX3Jlc2l6ZSYmdGhpcy5fcmVzaXplLnJlY2FsY3VsYXRlQm91bmRzKCl9X21vdmVUb1RvcCgpe3RoaXMucHJvcHMuaXNaSW5kZXhGaXhlZHx8bnVsbCE9PXRoaXMuY29udGV4dCYmdGhpcy5jb250ZXh0Lm1vdmVUb1RvcCgpfV9hcHBseUFuaW1hdGlvbkNTU1ZhcmlhYmxlcygpe3JldHVybnsiLS1hbmltYXRpb25UcmFuc2xhdGVTdGFydFgiOm51bGwsIi0tYW5pbWF0aW9uVHJhbnNsYXRlU3RhcnRZIjpudWxsLCItLWFuaW1hdGlvblRyYW5zbGF0ZUVuZFgiOm51bGwsIi0tYW5pbWF0aW9uVHJhbnNsYXRlRW5kWSI6bnVsbH19X2FwcGx5QXBwZWFyYW5jZUFuaW1hdGlvbih0KXtpZih0aGlzLl9yZXNpemUmJnRoaXMuX2RpYWxvZyl7Y29uc3R7eDplLHk6c309dCx7eDppLHk6b309dGhpcy5fcmVzaXplLmdldERpYWxvZ3NUb3BMZWZ0Q29vcmRpbmF0ZXMoKTt0aGlzLl9kaWFsb2cuc3R5bGUuc2V0UHJvcGVydHkoIi0tYW5pbWF0aW9uVHJhbnNsYXRlU3RhcnRYIixgJHtlfXB4YCksdGhpcy5fZGlhbG9nLnN0eWxlLnNldFByb3BlcnR5KCItLWFuaW1hdGlvblRyYW5zbGF0ZVN0YXJ0WSIsYCR7c31weGApLHRoaXMuX2RpYWxvZy5zdHlsZS5zZXRQcm9wZXJ0eSgiLS1hbmltYXRpb25UcmFuc2xhdGVFbmRYIixgJHtpfXB4YCksdGhpcy5fZGlhbG9nLnN0eWxlLnNldFByb3BlcnR5KCItLWFuaW1hdGlvblRyYW5zbGF0ZUVuZFkiLGAke299cHhgKSx0aGlzLl9kaWFsb2cuY2xhc3NMaXN0LmFkZCh3LmRpYWxvZ0FuaW1hdGVkQXBwZWFyYW5jZSl9fV9oYW5kbGVUb29sdGlwRml0KCl7aWYodGhpcy5fcmVzaXplKXtjb25zdCB0PXRoaXMuX3Jlc2l6ZS5nZXREaWFsb2dzVG9wTGVmdENvb3JkaW5hdGVzKCkueS1wYXJzZUludChEKT49MDt0aGlzLnNldFN0YXRlKHtjYW5GaXRUb29sdGlwOnR9KX19X2lzRnVsbFNjcmVlbigpewpyZXR1cm4gQm9vbGVhbih0aGlzLnByb3BzLmZ1bGxzY3JlZW4pfX14LmNvbnRleHRUeXBlPV8uUG9ydGFsQ29udGV4dCx4LmRlZmF1bHRQcm9wcz17Ym91bmRCeVNjcmVlbjohMCxkcmFnZ2FibGU6ITAsY2VudGVyZWRPbk1vdW50OiEwLHNob3VsZFJldHVybkZvY3VzOiEwfTtjb25zdCBMPSgwLGMubWFrZU92ZXJsYXBhYmxlKSh4LCEwKX0sNTMxOTI4KHQsZSxzKXsidXNlIHN0cmljdCI7cy5kKGUse2NsYW1wUG9zaXRpb246KCk9PnIsY2xhbXBTZWdtZW50OigpPT5hLGZpbmREZWZhdWx0Rm9jdXNhYmxlRWxlbWVudDooKT0+ZCxwb3NpdGlvbkZyb21Nb3VzZUV2ZW50OigpPT5oLHBvc2l0aW9uRnJvbVRvdWNoRXZlbnQ6KCk9PmMsc2ltdWxhdGVDbGljazooKT0+bH0pO3ZhciBpLG89cyg2NDA3NDQpLG49cyg2ODIzODEpO2Z1bmN0aW9uIGEodCxlLHMsaSl7cmV0dXJuIHQrZT5pJiYodD1pLWUpLHQ8cyYmKHQ9cyksdH1mdW5jdGlvbiByKHQpe3JldHVybnt4OigwLG8uY2xhbXApKHQueCwyMCxkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50V2lkdGgtMjApLHk6KDAsby5jbGFtcCkodC55LDIwLHdpbmRvdy5pbm5lckhlaWdodC0yMCl9fWZ1bmN0aW9uIGwodCl7aWYodCBpbnN0YW5jZW9mIFNWR0VsZW1lbnQpe2NvbnN0IGU9ZG9jdW1lbnQuY3JlYXRlRXZlbnQoIlNWR0V2ZW50cyIpO2UuaW5pdEV2ZW50KCJjbGljayIsITAsITApLHQuZGlzcGF0Y2hFdmVudChlKX10IGluc3RhbmNlb2YgSFRNTEVsZW1lbnQmJnQuY2xpY2soKX1mdW5jdGlvbiBoKHQpe3JldHVybnt4OnQuY2xpZW50WCx5OnQuY2xpZW50WX19ZnVuY3Rpb24gYyh0KXtyZXR1cm57eDp0LnRvdWNoZXNbMF0uY2xpZW50WCx5OnQudG91Y2hlc1swXS5jbGllbnRZfX1mdW5jdGlvbiBkKHQpe2NvbnN0IGU9dC5xdWVyeVNlbGVjdG9yKCJbYXV0b2ZvY3VzXTpub3QoW2Rpc2FibGVkXSkiKTtpZihlKXJldHVybiBlO2lmKHQudGFiSW5kZXg+PTApcmV0dXJuIHQ7Y29uc3Qgcz0oMCxuLmdldEFjdGl2ZUVsZW1lbnRTZWxlY3RvcnMpKCksaT1BcnJheS5mcm9tKHQucXVlcnlTZWxlY3RvckFsbChzKSkuZmlsdGVyKCgwLG4uY3JlYXRlU2NvcGVkVmlzaWJsZUVsZW1lbnRGaWx0ZXIpKHQpKTtsZXQgbz1OdW1iZXIuTkVHQVRJVkVfSU5GSU5JVFksYT1udWxsO2ZvcihsZXQgdD0wO3Q8aS5sZW5ndGg7dCsrKXtjb25zdCBlPWlbdF0scz1lLmdldEF0dHJpYnV0ZSgidGFiaW5kZXgiKTtpZihudWxsIT09cyl7Y29uc3QgdD1wYXJzZUludChzLDEwKTshaXNOYU4odCkmJnQ+byYmKG89dCxhPWUpfX1yZXR1cm4gYX0hZnVuY3Rpb24odCl7dFt0Lk1vdXNlR3VhcmRab25lPTIwXT0iTW91c2VHdWFyZFpvbmUifShpfHwoaT17fSkpfSw5MTEzMjcodCxlLHMpeyJ1c2Ugc3RyaWN0IjtzLmQoZSx7ZXh0cmFjdFRhYlBhdGg6KCk9PmIsZ2V0U3ltYm9sUGFnZVBhdGg6KCk9PmgsbWFrZVN5bWJvbENoYXJ0VXJsOigpPT5nLG1ha2VTeW1ib2xQYWdlVXJsOigpPT5ffSk7cyg5NjM5MDApO3ZhciBpPXMoMzA5ODM2KSxvPXMoMjQxOTM3KSxuPXMoODUxNDU4KSxhPXMoMTU2ODI5KTtjb25zdCByPW5ldyBTZXQoWyJTUDpTUFgiLCJDQk9FOlNQWCJdKTtmdW5jdGlvbiBsKHQpe2NvbnN0IGU9ey4uLnR9O2lmKCJzcHJlYWQiPT09ZS50eXBlfHwiZXhwcmVzc2lvbiI9PT1lLnR5cGUpe2NvbnN0IHQ9ZS5zaG9ydE5hbWUmJmMoZS5zaG9ydE5hbWUpLHM9ZS5wcm9OYW1lJiZjKGUucHJvTmFtZSk7ZS50eXBlPXZvaWQgMCxlLnNob3J0TmFtZT10LGUucHJvTmFtZT1zfXJldHVybiBlfWZ1bmN0aW9uIGgodCxlKXtjb25zdCBzPWwodCk7cmV0dXJuIHUocChzLGUpLGQocykpfWZ1bmN0aW9uIGModCl7cmV0dXJuKDAsbi50b2tlbml6ZSkodCkuZmluZCgodD0+InN5bWJvbCI9PT10LnR5cGUpKT8udmFsdWV9ZnVuY3Rpb24gZCh0KXtjb25zdCBlPXtzaG9ydE5hbWU6dC5zaG9ydE5hbWUsZXhjaGFuZ2U6dC5leGNoYW5nZSxwcm9OYW1lOnQucHJvTmFtZSx0eXBlOnQudHlwZSx0eXBlc3BlY3M6dC50eXBlc3BlY3Mscm9vdDp0LnJvb3R9O3JldHVybiBlLnByb05hbWUmJmUucHJvTmFtZS5pbmNsdWRlcygiOiIpJiYoW2UuZXhjaGFuZ2UsZS5zaG9ydE5hbWVdPWUucHJvTmFtZS5zcGxpdCgiOiIpKSxlfWZ1bmN0aW9uIHUodCxlKXtjb25zdCBzPWVuY29kZVVSSUNvbXBvbmVudChlLnNob3J0TmFtZXx8IiIpLGk9ZW5jb2RlVVJJQ29tcG9uZW50KGUuZXhjaGFuZ2V8fCIiKSxvPWVuY29kZVVSSUNvbXBvbmVudChlLnByb05hbWV8fCIiKSxuPWVuY29kZVVSSUNvbXBvbmVudChlLnJvb3R8fCIiKTtyZXR1cm4gdC5yZXBsYWNlKCJ7dHZleGNoYW5nZX0iLGkpLnJlcGxhY2UoInt0dnN5bWJvbH0iLHMpLnJlcGxhY2UoInt0dnByb3N5bWJvbH0iLG8pLnJlcGxhY2UoInt0dnJvb3R9IixuKX1mdW5jdGlvbiBwKHQsZT0iIil7Y29uc3Qgcz1kKHQpLHt0eXBlOmksdHlwZXNwZWNzOm8sc2hvcnROYW1lOm4scHJvTmFtZTpsLGV4Y2hhbmdlOmgscm9vdDpjfT1zO3JldHVybiB2b2lkIDA9PT1uJiZ2b2lkIDA9PT1sPyhjb25zb2xlLndhcm4oIlBhcmFtcyBtaXNzZWQiKSwiLyIpOmwmJnIuaGFzKGwpP2Avc3ltYm9scy97dHZzeW1ib2x9LyR7ZX1gOml8fG8/ImNvbW1vZGl0eSI9PT1pJiZvJiZvLmluY2x1ZGVzKCJjZmQiKT8iL3N5bWJvbHMve3R2c3ltYm9sfS8/ZXhjaGFuZ2U9e3R2ZXhjaGFuZ2V9IjohY3x8IW98fCJmdXR1cmVzIiE9PWl8fG8uaW5jbHVkZXMoImNvbnRpbnVvdXMiKSYmbj8uZW5kc1dpdGgoIjEhIil8fG8uaW5jbHVkZXMoImV4Y2hhbmdlLWNvbnRpbnVvdXMiKT9oJiYoImZvcmV4Ij09PWl8fG8mJigwLAphLmhhc0NyeXB0b1R5cGVzcGVjKShvKSk/Ii9zeW1ib2xzL3t0dnN5bWJvbH0vP2V4Y2hhbmdlPXt0dmV4Y2hhbmdlfSI6aD9gL3N5bWJvbHMve3R2ZXhjaGFuZ2V9LXt0dnN5bWJvbH0vJHtlfWA6YC9zeW1ib2xzL3t0dnN5bWJvbH0vJHtlfWA6YC9zeW1ib2xzL3t0dmV4Y2hhbmdlfS17dHZyb290fTEhLyR7ZX0/Y29udHJhY3Q9e3R2c3ltYm9sfWA6aD9gL3N5bWJvbHMve3R2ZXhjaGFuZ2V9LXt0dnN5bWJvbH0vJHtlfWA6YC9zeW1ib2xzL3t0dnN5bWJvbH0vJHtlfWB9ZnVuY3Rpb24gbSh0LGUscyxuKXtjb25zdCBhPSh3aW5kb3cubG9jYWxlX2RvbWFpbnM/KDAsby5kZXRlcm1pbmVCYXNlVXJsKSh3aW5kb3cubG9jYWxlX2RvbWFpbnMsbik6d2luZG93LmxvY2F0aW9uLm9yaWdpbikrdSh0LGQobChlKSkpO3JldHVybiBzPygwLGkuYWRkVXRtVG9VcmwpKGEscyk6YX1mdW5jdGlvbiBfKHQsZSxzLGkpe2NvbnN0IG89bCh0KTtyZXR1cm4gbShwKG8saSksbyxlLHMpfWZ1bmN0aW9uIGcodCxlKXtyZXR1cm4gbSgiL2NoYXJ0Lz9zeW1ib2w9e3R2cHJvc3ltYm9sfSIsdCxlKX1mdW5jdGlvbiBiKHQsZSl7Y29uc3Qgcz1oKHtwcm9OYW1lOnR9KTtyZXR1cm4gZS5zdGFydHNXaXRoKHMpP2UucmVwbGFjZShzLnNsaWNlKDAscy5sZW5ndGgtMSksIiIpOm51bGx9fSw4MDY2OTModCl7dC5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjE4IiBoZWlnaHQ9IjE4Ij48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGQ9Ik05LjcwNyA5bDQuNjQ3LTQuNjQ2LS43MDctLjcwOEw5IDguMjkzIDQuMzU0IDMuNjQ2bC0uNzA4LjcwOEw4LjI5MyA5bC00LjY0NyA0LjY0Ni43MDguNzA4TDkgOS43MDdsNC42NDYgNC42NDcuNzA4LS43MDdMOS43MDcgOXoiLz48L3N2Zz4nfSw4NTI1MzEodCl7dC5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDE0IDEyIiB3aWR0aD0iMTQiIGhlaWdodD0iMTIiIGZpbGw9ImN1cnJlbnRDb2xvciIgZm9jdXNhYmxlPSJmYWxzZSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+PHBhdGggZD0iTTE0IDEybC00LTYgNC02SDB2MTJ6Ii8+PC9zdmc+J319XSk7"}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"translate.googleapis.com/translate_static/img/te_bk.gif","fqdn":"translate.googleapis.com","domain":"translate.googleapis.com","tld":"googleapis.com"},"ip":{"addr":"142.250.178.106","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://digital-assettrade.com/","date":"2026-07-27T10:27:14.665Z","timestamp":1785148034665,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_256_GCM_SHA384","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"upload.video.google.com","organization":""},"issuer":{"commonName":"WE2","organization":"Google Trust Services"},"validity":{"start":"Mon, 29 Jun 2026 08:39:27 GMT","end":"Mon, 21 Sep 2026 08:39:26 GMT"},"fingerprint":{"sha1":"50:37:CF:61:33:A1:EE:47:D9:3D:A6:5E:07:BA:4C:FF:F7:25:9F:76","sha256":"7D:4D:21:06:63:E2:5E:F0:8C:59:8E:EB:B7:94:2B:81:70:11:D3:F4:C0:A0:81:A6:1B:E7:27:FD:56:10:1A:11"}}},"request":{"raw":"GET /translate_static/img/te_bk.gif HTTP/1.1\r\nHost: translate.googleapis.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-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://digital-assettrade.com/\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=6, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccept-ranges: bytes\r\ncross-origin-resource-policy: cross-origin\r\ncross-origin-opener-policy-report-only: same-origin; report-to=\"static-on-bigtable\"\r\nreport-to: {\"group\":\"static-on-bigtable\",\"max_age\":2592000,\"endpoints\":[{\"url\":\"https://csp.withgoogle.com/csp/report-to/static-on-bigtable\"}]}\r\ncontent-length: 848\r\nx-content-type-options: nosniff\r\nserver: sffe\r\nx-xss-protection: 0\r\ndate: Thu, 23 Jul 2026 10:11:17 GMT\r\nexpires: Fri, 23 Jul 2027 10:11:17 GMT\r\ncache-control: public, max-age=31536000\r\nage: 346557\r\nlast-modified: Sun, 25 Jun 2023 02:58:00 GMT\r\ncontent-type: image/gif\r\nalt-svc: h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":null,"data":{"size":848,"size_decoded":1507,"mime_type":"image/gif","magic":"GIF image data, version 89a, 1 x 59","md5":"daf9b48977041ac85a62dc9b7c16b38d","sha1":"049dcb061470572d06fd83b287ebd1d96e6bb870","sha256":"cb1fd0e051209c32622e91cdeda967e50d80a184b185ac6a656a807986e8eb75","sha512":"99f5f27990b6b5559c751a92c04037f5d42e848a966893484af66d3f66828c29a2dddc8788d7dd4cd835e8ab6d834e74fb3eaa4e2cd72d55b2813d7aab990af2","ssdeep":"","tlshash":"1c018c0cc8700a19e3422fb0ca5b6e0429675b465d88b20fb6aa22c27d04ba48049b1c","first_seen":"2023-04-05T23:29:53Z","last_seen":"2026-07-27T13:00:41.388763Z","times_seen":9980,"resource_available":false,"data":"R0lGODlhAQA7APcAANfX19/f3+Hh4eLi4uTk5Obm5ujo6Orq6uvr6+3t7e7u7uTv++bw++fw/Ojx/Ory/O30/O71/fHx8fP4/fT5/fb6/vj7/vr8/vz9//7+/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwAAAAAAQA7AAAINQAzCBxIUCCGCwgtVFhIYcKECA8jQHgw8UEDBg4aLGCwIIOEjyAlKEiA4ICBAgQGCAgQAEBAADs="}},"time_used":16,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":16,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/97647.64fa07ee74fd665d6e19.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.858Z","timestamp":1785148034858,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/97647.64fa07ee74fd665d6e19.js HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a632877-8ba7\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Fri, 24 Jul 2026 08:55:19 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/24/2026 10:32:20\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 986b1515d844ff86c8a4a3f585569bbb\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":35751,"size_decoded":14035,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, Unicode text, UTF-8 text, with very long lines (3071)","md5":"377f21b2eb37b75910455b74b865c812","sha1":"53c2e8911b87850cfc16af04158dd57efecbe1a4","sha256":"baaaf9756a2a7fb4d2da73148463a614bfda643f0a50ac59978d8533b5469472","sha512":"2f87da9c9367bf2461dcc54bbf6a4aad4df6a508be15a9872ce605c0d5fae1b3f8c11c22b312be5951fd72c359ad908345c200fe33d922ea9da67f168422e263","ssdeep":"768:4hcXPPqeIIT9p9JGNrDlRWVRBO3Ev9MqoElUuL6i/U97JGWTv/FWhKZ/nNjFJpLF:4SXPPqeLT4XlRKBZpo813xSWhKhNh3UC","tlshash":"32f23a82f196b0d953e706ead07b0581f3662fd865894c31f1f5ddac3828c88b636b2d","first_seen":"2026-07-27T03:26:08.757469Z","last_seen":"2026-07-27T10:53:39.257837Z","times_seen":8,"resource_available":true,"data":"KHNlbGYud2VicGFja0NodW5rdHJhZGluZ3ZpZXc9c2VsZi53ZWJwYWNrQ2h1bmt0cmFkaW5ndmlld3x8W10pLnB1c2goW1s5NzY0N10sezY5NDM0OShlKXtlLmV4cG9ydHM9e3ByZXZpZXc6InByZXZpZXcta3k5d3U5WUEiLGZpeGVkSGVpZ2h0OiJmaXhlZEhlaWdodC1reTl3dTlZQSIscmF0aW8xNmJ5OToicmF0aW8xNmJ5OS1reTl3dTlZQSIscmF0aW8yYnkxOiJyYXRpbzJieTEta3k5d3U5WUEiLCJicm9rZW4taW1hZ2UiOiJicm9rZW4taW1hZ2Uta3k5d3U5WUEiLCJwcmV2aWV3LWdyaWQiOiJwcmV2aWV3LWdyaWQta3k5d3U5WUEiLHBpY3R1cmU6InBpY3R1cmUta3k5d3U5WUEiLGltYWdlOiJpbWFnZS1reTl3dTlZQSIsImltYWdlLWxpbmsiOiJpbWFnZS1saW5rLWt5OXd1OVlBIixtaWRkbGU6Im1pZGRsZS1reTl3dTlZQSIsY29ybmVyOiJjb3JuZXIta3k5d3U5WUEiLCJjb3JuZXItdG9wLWxlZnQiOiJjb3JuZXItdG9wLWxlZnQta3k5d3U5WUEiLCJjb3JuZXItdG9wLXJpZ2h0IjoiY29ybmVyLXRvcC1yaWdodC1reTl3dTlZQSIsImNvcm5lci1ib3R0b20tbGVmdCI6ImNvcm5lci1ib3R0b20tbGVmdC1reTl3dTlZQSIsImNvcm5lci1ib3R0b20tcmlnaHQiOiJjb3JuZXItYm90dG9tLXJpZ2h0LWt5OXd1OVlBIn19LDMwMTA1OShlKXtlLmV4cG9ydHM9e2ltcG9ydGFudDoiaW1wb3J0YW50LXYwUTF5MHYxIixleGNsdXNpdmU6ImV4Y2x1c2l2ZS12MFExeTB2MSIsZmxhc2g6ImZsYXNoLXYwUTF5MHYxIixwb3NpdGl2ZToicG9zaXRpdmUtdjBRMXkwdjEiLG5lZ2F0aXZlOiJuZWdhdGl2ZS12MFExeTB2MSJ9fSw2NzM3NzQoZSl7ZS5leHBvcnRzPXtibG9jazoiYmxvY2stZ2JzNXBCOVoifX0sMjU5MDkwKGUpe2UuZXhwb3J0cz17aGVhZGVyOiJoZWFkZXItYU1UWU5WRHgiLGxvZ286ImxvZ28tYU1UWU5WRHgiLGljb246Imljb24tYU1UWU5WRHgiLGRhdGU6ImRhdGUtYU1UWU5WRHgiLGRvdGg6ImRvdGgtYU1UWU5WRHgiLGNvbGRHcmF5OiJjb2xkR3JheS1hTVRZTlZEeCIsZWxsaXBzaXNUZXh0OiJlbGxpcHNpc1RleHQtYU1UWU5WRHgifX0sMjg5MzAoZSl7ZS5leHBvcnRzPXtwcmV2aWV3V3JhcHBlcjoicHJldmlld1dyYXBwZXItdmlQT0cyYzYifX0sNjMzNjM4KGUpe2UuZXhwb3J0cz17YmxvY2s6ImJsb2NrLVJMR2FFZDA2IixiYWRnZXM6ImJhZGdlcy1STEdhRWQwNiIsYmFkZ2VzU21hbGw6ImJhZGdlc1NtYWxsLVJMR2FFZDA2IixpY29uOiJpY29uLVJMR2FFZDA2In19LDQ1ODYzOChlKXtlLmV4cG9ydHM9e2Jsb2NrOiJibG9jay1mcWhjUDFsZyIsaWNvbjoiaWNvbi1mcWhjUDFsZyJ9fSwzMDU4MTEoZSl7ZS5leHBvcnRzPXtjYXJkOiJjYXJkLVBMVXZtcWVuIixoaWdobGlnaHQ6ImhpZ2hsaWdodC1QTFV2bXFlbiIsY29udGFpbmVyV2l0aEltYWdlOiJjb250YWluZXJXaXRoSW1hZ2UtUExVdm1xZW4iLGhlYWRlcjoiaGVhZGVyLVBMVXZtcWVuIix0aXRsZToidGl0bGUtUExVdm1xZW4iLHRpdGxlU21hbGw6InRpdGxlU21hbGwtUExVdm1xZW4iLGFydGljbGU6ImFydGljbGUtUExVdm1xZW4iLGNvbnRhaW5lcjoiY29udGFpbmVyLVBMVXZtcWVuIixwcmV2aWV3OiJwcmV2aWV3LVBMVXZtcWVuIixkaXNhYmxlZDoiZGlzYWJsZWQtUExVdm1xZW4iLHdyYXBwZXI6IndyYXBwZXItUExVdm1xZW4ifX0sNzQ4MjU5KGUpe2UuZXhwb3J0cz17YXJ0aWNsZToiYXJ0aWNsZS1mV1puejlxdiIsY2FyZDoiY2FyZC1mV1puejlxdiIsZnJlc2g6ImZyZXNoLWZXWm56OXF2Iix0aXRsZToidGl0bGUtZldabno5cXYiLHByZXZpZXc6InByZXZpZXctZldabno5cXYiLGNvbnRhaW5lcjoiY29udGFpbmVyLWZXWm56OXF2IixoZWFkZXI6ImhlYWRlci1mV1puejlxdiIsZGF0ZToiZGF0ZS1mV1puejlxdiIsbG9nbzoibG9nby1mV1puejlxdiIscHJvdmlkZXI6InByb3ZpZGVyLWZXWm56OXF2IixkaXNhYmxlZDoiZGlzYWJsZWQtZldabno5cXYifX0sNDIxMDIwKGUpe2UuZXhwb3J0cz17YXJ0aWNsZToiYXJ0aWNsZS1NY0RGNXlOTSIsY2FyZDoiY2FyZC1NY0RGNXlOTSIscHJldmlldzoicHJldmlldy1NY0RGNXlOTSIsY29udGFpbmVyOiJjb250YWluZXItTWNERjV5Tk0iLGhlYWRlcjoiaGVhZGVyLU1jREY1eU5NIix0aXRsZToidGl0bGUtTWNERjV5Tk0iLGRhdGU6ImRhdGUtTWNERjV5Tk0iLGxvZ286ImxvZ28tTWNERjV5Tk0iLHByb3ZpZGVyOiJwcm92aWRlci1NY0RGNXlOTSIsZGlzYWJsZWQ6ImRpc2FibGVkLU1jREY1eU5NIn19LDY2ODc4MihlKXtlLmV4cG9ydHM9e2RvdGg6ImRvdGgtREo4cWxQTzgiLGNvbGRHcmF5OiJjb2xkR3JheS1ESjhxbFBPOCIsZWxsaXBzaXNUZXh0OiJlbGxpcHNpc1RleHQtREo4cWxQTzgifX0sNTYyNjk5KGUpe2UuZXhwb3J0cz17bm9CcmVhazoibm9CcmVhay1Ia0dYSzUyNCJ9fSw3NTM0ODUoZSl7ZS5leHBvcnRzPXtzdGFjazoic3RhY2stTDJFMjZTd2YiLCJzdGFjay0teHh4c21hbGwiOiJzdGFjay0teHh4c21hbGwtTDJFMjZTd2YiLCJzdGFjay0teHNtYWxsIjoic3RhY2stLXhzbWFsbC1MMkUyNlN3ZiJ9fSwyMzQ2MzYoZSx0LG4peyJ1c2Ugc3RyaWN0Ijt2YXIgYTtuLmQodCx7QmFkZ2VTaXplOigpPT5hfSksZnVuY3Rpb24oZSl7ZS5YU21hbGw9InhzbWFsbCIsZS5TbWFsbD0ic21hbGwiLGUuTWVkaXVtPSJtZWRpdW0iLGUuTGFyZ2U9ImxhcmdlIixlLlhMYXJnZT0ieGxhcmdlIn0oYXx8KGE9e30pKX0sNTUwNTc0KGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse1ByZXZpZXc6KCk9PnUsUHJldmlld0JvdHRvbUxlZnRDb3JuZXI6KCk9PnYsUHJldmlld0JvdHRvbVJpZ2h0Q29ybmVyOigpPT5wLFByZXZpZXdHcmlkOigpPT5kLFByZXZpZXdJbWFnZTooKT0+ZixQcmV2aWV3SW1hZ2VMaW5rOigpPT55LFByZXZpZXdNaWRkbGU6KCk9PncsUHJldmlld1Jlc2l6ZU1vZGU6KCk9PmksUHJldmlld1RvcExlZnRDb3JuZXI6KCk9PmcsUHJldmlld1RvcFJpZ2h0Q29ybmVyOigpPT5ofSk7dmFyIGEsaSxyPW4oNzc5NDc0KSxvPW4oOTE0NDg3KSxzPW4ubihvKSxsPW4oNjk0MzQ5KSxjPW4ubihsKTtmdW5jdGlvbiBtKGUpewpjb25zdHtjb3JuZXI6dCxjbGFzc05hbWU6bixjaGlsZHJlbjphLC4uLml9PWU7cmV0dXJuIHIuY3JlYXRlRWxlbWVudCgiZGl2Iix7Li4uaSxjbGFzc05hbWU6cygpKGMoKS5jb3JuZXIsYygpW2Bjb3JuZXItJHt0fWBdKX0sYSl9ZnVuY3Rpb24gdShlKXtjb25zdHtyZXNpemVNb2RlOnQ9aS5GaXhlZEhlaWdodCxjbGFzc05hbWU6bixjaGlsZHJlbjphLC4uLm99PWU7cmV0dXJuIHIuY3JlYXRlRWxlbWVudCgiZGl2Iix7Li4ubyxjbGFzc05hbWU6cygpKGMoKS5wcmV2aWV3LGMoKVt0XSxuKX0sYSl9ZnVuY3Rpb24gZChlKXtjb25zdHtjbGFzc05hbWU6dCxjaGlsZHJlbjpuLC4uLmF9PWU7cmV0dXJuIHIuY3JlYXRlRWxlbWVudCgiZGl2Iix7Li4uYSxjbGFzc05hbWU6cygpKGMoKVsicHJldmlldy1ncmlkIl0sdCl9LG4pfWZ1bmN0aW9uIGcoZSl7cmV0dXJuIHIuY3JlYXRlRWxlbWVudChtLHsuLi5lLGNvcm5lcjoidG9wLWxlZnQifSl9ZnVuY3Rpb24gaChlKXtyZXR1cm4gci5jcmVhdGVFbGVtZW50KG0sey4uLmUsY29ybmVyOiJ0b3AtcmlnaHQifSl9ZnVuY3Rpb24gdihlKXtyZXR1cm4gci5jcmVhdGVFbGVtZW50KG0sey4uLmUsY29ybmVyOiJib3R0b20tbGVmdCJ9KX1mdW5jdGlvbiBwKGUpe3JldHVybiByLmNyZWF0ZUVsZW1lbnQobSx7Li4uZSxjb3JuZXI6ImJvdHRvbS1yaWdodCJ9KX1mdW5jdGlvbiB3KGUpe2NvbnN0e2NsYXNzTmFtZTp0LC4uLm59PWU7cmV0dXJuIHIuY3JlYXRlRWxlbWVudCgiZGl2Iix7Li4ubixjbGFzc05hbWU6cygpKGMoKS5taWRkbGUsdCl9KX1mdW5jdGlvbiBmKGUpe2NvbnN0e2NsYXNzTmFtZTp0LHNvdXJjZXM6bixmYWxsYmFja1NyYzphLHJvbGU6aT0icHJlc2VudGF0aW9uIixsb2FkaW5nOm89ImxhenkiLGFsdDpsLC4uLm19PWUsW3UsZF09KDAsci51c2VTdGF0ZSkoITEpO3JldHVybiByLmNyZWF0ZUVsZW1lbnQoInBpY3R1cmUiLHtjbGFzc05hbWU6cygpKGMoKS5waWN0dXJlLHUmJmMoKVsiYnJva2VuLWltYWdlIl0pfSxuPy5tYXAoKChlLHQpPT5yLmNyZWF0ZUVsZW1lbnQoInNvdXJjZSIsey4uLmUsa2V5OnR9KSkpLHIuY3JlYXRlRWxlbWVudCgiaW1nIix7Li4ubSxhbHQ6bCxzcmM6YSxvbkVycm9yOigpPT5kKCEwKSxyb2xlOmksbG9hZGluZzpvLGNsYXNzTmFtZTpzKCkoYygpLmltYWdlLHQpfSkpfWZ1bmN0aW9uIHkoZSl7Y29uc3R7Y2xhc3NOYW1lOnQsdGFiSW5kZXg6bj0tMSwiYXJpYS1oaWRkZW4iOmE9ITAsZGF0YVFhSWQ6aSwuLi5vfT1lO3JldHVybiByLmNyZWF0ZUVsZW1lbnQoImEiLHsuLi5vLCJkYXRhLXFhLWlkIjppLHRhYkluZGV4Om4sImFyaWEtaGlkZGVuIjphLGNsYXNzTmFtZTpzKCkoYygpWyJpbWFnZS1saW5rIl0sdCl9KX0hZnVuY3Rpb24oZSl7ZS5Ub3BMZWZ0PSJ0b3AtbGVmdCIsZS5Ub3BSaWdodD0idG9wLXJpZ2h0IixlLkJvdHRvbUxlZnQ9ImJvdHRvbS1sZWZ0IixlLkJvdHRvbVJpZ2h0PSJib3R0b20tcmlnaHQifShhfHwoYT17fSkpLGZ1bmN0aW9uKGUpe2UuRml4ZWRIZWlnaHQ9ImZpeGVkSGVpZ2h0IixlLlJhdGlvMTZieTk9InJhdGlvMTZieTkiLGUuUmF0aW8yYnkxPSJyYXRpbzJieTEifShpfHwoaT17fSkpfSw1OTAzMTEoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7aW5zdGFsbFJlbGF0aXZlVGltZTooKT0+aX0pO3ZhciBhPW4oMjY4MTY5KTtmdW5jdGlvbiBpKCl7aWYoIXdpbmRvdy5jdXN0b21FbGVtZW50cy5nZXQoInJlbGF0aXZlLXRpbWUiKSl7Y2xhc3MgZSBleHRlbmRzIEhUTUxFbGVtZW50e3N0YXRpYyBnZXQgb2JzZXJ2ZWRBdHRyaWJ1dGVzKCl7cmV0dXJuWyJldmVudC10aW1lIiwibG9jYWxlIiwiZm9ybWF0LXN0eWxlIiwidGltZS16b25lIl19Y29uc3RydWN0b3IoKXtzdXBlcigpLHRoaXMuX2N1cnJlbnRUaW1lPTAsdGhpcy5fZXZlbnRUaW1lPTAsdGhpcy5fbG9jYWxlPXZvaWQgMCx0aGlzLl90aW1lWm9uZT12b2lkIDAsdGhpcy5fc3R5bGU9ImxvbmciLHRoaXMuX2lzQ29ubmVjdGVkPSExLHRoaXMuX2RhdGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidGltZSIpO2NvbnN0IGU9dGhpcy5nZXRBdHRyaWJ1dGUoInNzci10aW1lIik7dGhpcy5fY3VycmVudFRpbWU9ZT9EYXRlLnBhcnNlKGUpOkRhdGUubm93KCk7dGhpcy5hdHRhY2hTaGFkb3coe21vZGU6ImNsb3NlZCJ9KS5hcHBlbmRDaGlsZCh0aGlzLl9kYXRlKX1jb25uZWN0ZWRDYWxsYmFjaygpe3RoaXMuX2lzQ29ubmVjdGVkPSEwLHRoaXMuY2xhc3NMaXN0LmFkZCgiYXBwbHktY29tbW9uLXRvb2x0aXAiKSx0aGlzLl91cGRhdGVBdHRyaWJ1dGVzKCksdGhpcy5fY29ubmVjdGlvbkNoYW5nZWQoKX1kaXNjb25uZWN0ZWRDYWxsYmFjaygpe3RoaXMuX2lzQ29ubmVjdGVkPSExLHRoaXMuX2Nvbm5lY3Rpb25DaGFuZ2VkKCl9YXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrKGUsdCxuKXsiZXZlbnQtdGltZSI9PT1lJiYodGhpcy5fZXZlbnRUaW1lPURhdGUucGFyc2UobikpLCJsb2NhbGUiPT09ZSYmKHRoaXMuX2xvY2FsZT1uKSwidGltZS16b25lIj09PWUmJih0aGlzLl90aW1lWm9uZT1uKSwiZm9ybWF0LXN0eWxlIj09PWUmJih0aGlzLl9zdHlsZT1uKSx0aGlzLl9pc0Nvbm5lY3RlZCYmKHRoaXMuX3VwZGF0ZUF0dHJpYnV0ZXMoKSx0aGlzLnVwZGF0ZShEYXRlLm5vdygpKSl9dXBkYXRlKGUpe2NvbnN0IHQ9dGhpcy5fZXZlbnRUaW1lLWUsbj0oMCxhLmZvcm1hdFRpbWUpKHQsdGhpcy5fbG9jYWxlLHRoaXMuX3N0eWxlKTt0aGlzLl9kYXRlLmlubmVyVGV4dD1ufV91cGRhdGVBdHRyaWJ1dGVzKCl7Y29uc3QgZT1uZXcgRGF0ZSh0aGlzLl9ldmVudFRpbWUpO3RoaXMuc2V0QXR0cmlidXRlKCJ0aXRsZSIsKDAsYS5nZXRMYWJlbCkoZSwoMCxhLmdldExvY2FsZSkodGhpcy5fbG9jYWxlKSx0aGlzLl90aW1lWm9uZSkpLHRoaXMuX2RhdGUuc2V0QXR0cmlidXRlKCJkYXRldGltZSIsZS50b1VUQ1N0cmluZygpKX1fY29ubmVjdGlvbkNoYW5nZWQoKXt0aGlzLl9pc0Nvbm5lY3RlZD8oci5hZGQodGhpcyksdGhpcy51cGRhdGUodGhpcy5fY3VycmVudFRpbWUpLGwoKSk6ci5kZWxldGUodGhpcyl9fQp3aW5kb3cuY3VzdG9tRWxlbWVudHMuZGVmaW5lKCJyZWxhdGl2ZS10aW1lIixlKX19Y29uc3Qgcj1uZXcgU2V0O2xldCBvPTAscz0wO2Z1bmN0aW9uIGwoKXswPT09byYmMD09PXMmJjAhPT1yLnNpemUmJihvPXNldFRpbWVvdXQoKCgpPT57bz0wLHM9cmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgoKT0+e3M9MCxsKCksZnVuY3Rpb24oKXtjb25zdCBlPURhdGUubm93KCk7Zm9yKGNvbnN0IHQgb2Ygcil0LnVwZGF0ZShlKX0oKX0pKX0pLDNlNCkpfX0sNzY4MDY2KGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse1JlbGF0aXZlVGltZTooKT0+b30pO3ZhciBhPW4oNzc5NDc0KSxpPW4oNTkwMzExKSxyPW4oMjY4MTY5KTtmdW5jdGlvbiBvKGUpe2NvbnN0e3NzclRpbWU6dCxldmVudFRpbWU6bixsb2NhbGVJc286cixmb3JtYXRTdHlsZTpvLGZhbGxiYWNrVGV4dDpsLGlzU1NSOmMsY2xhc3NOYW1lOm0sdGltZVpvbmU6dX09ZSxkPW5ldyBEYXRlKHR8fERhdGUubm93KCkpLGc9bmV3IERhdGUobiksaD0oMCxhLnVzZVJlZikobnVsbCk7cmV0dXJuIGN8fCgwLGEudXNlTGF5b3V0RWZmZWN0KSgoKCk9Pntjb25zdCBlPWguY3VycmVudDtsJiZlJiYhZS50ZXh0Q29udGVudCYmKGUudGV4dENvbnRlbnQ9bCl9KSksKDAsYS51c2VFZmZlY3QpKCgoKT0+e2NvbnN0IGU9aC5jdXJyZW50O0ludGwuUmVsYXRpdmVUaW1lRm9ybWF0JiYoZSYmZS5yZW1vdmUoKSwoMCxpLmluc3RhbGxSZWxhdGl2ZVRpbWUpKCkpfSksW10pLGEuY3JlYXRlRWxlbWVudCgicmVsYXRpdmUtdGltZSIse2xvY2FsZTpyLCJzc3ItdGltZSI6dD9kLnRvVVRDU3RyaW5nKCk6dm9pZCAwLCJldmVudC10aW1lIjpnLnRvVVRDU3RyaW5nKCksInRpbWUtem9uZSI6dSwiZm9ybWF0LXN0eWxlIjpvLGNsYXNzOm19LGEuY3JlYXRlRWxlbWVudChzLHtzdGFydERhdGU6ZCxlbmREYXRlOmcsbG9jYWxlSXNvOnIsc3R5bGU6byxyZWY6aH0pKX1jb25zdCBzPWEuZm9yd2FyZFJlZigoKGUsdCk9Pntjb25zdHtzdGFydERhdGU6bixlbmREYXRlOmksbG9jYWxlSXNvOm8sc3R5bGU6c309ZTtpZihJbnRsLlJlbGF0aXZlVGltZUZvcm1hdCl7Y29uc3QgZT0oMCxhLnVzZU1lbW8pKCgoKT0+e2NvbnN0IGU9aS5nZXRUaW1lKCktbi5nZXRUaW1lKCk7cmV0dXJuKDAsci5mb3JtYXRUaW1lKShlLG8scyl9KSxbXSk7cmV0dXJuIGEuY3JlYXRlRWxlbWVudCgidGltZSIse3JlZjp0LGRhdGVUaW1lOmkudG9VVENTdHJpbmcoKSxzdXBwcmVzc0h5ZHJhdGlvbldhcm5pbmc6ITB9LGUpfXJldHVybiBhLmNyZWF0ZUVsZW1lbnQoInRpbWUiLHtyZWY6dCxkYW5nZXJvdXNseVNldElubmVySFRNTDp7X19odG1sOiIifSxzdXBwcmVzc0h5ZHJhdGlvbldhcm5pbmc6ITB9KX0pKX0sMjY4MTY5KGUsdCxuKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gYShlLHQsbil7cmV0dXJuIG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KHQse3RpbWVab25lOm4seWVhcjoibnVtZXJpYyIsZGF5OiJudW1lcmljIixtb250aDoic2hvcnQiLGhvdXI6IjItZGlnaXQiLG1pbnV0ZToiMi1kaWdpdCIsY2FsZW5kYXI6ImdyZWdvcnkiLHRpbWVab25lTmFtZToic2hvcnQifSkuZm9ybWF0KGUpfWZ1bmN0aW9uIGkoZSl7cmV0dXJuIGU/YCR7ZX0tdS1oYy1oMjNgOnZvaWQgMH1mdW5jdGlvbiByKGUsdCxuPSJsb25nIil7Y29uc3RbYSxpXT1mdW5jdGlvbihlKXtjb25zdCB0PU1hdGguZmxvb3IoZS8xZTMpLG49TWF0aC5zaWduKHQpLFthLGldPWZ1bmN0aW9uKGUpe2lmKGU8OTApcmV0dXJuWzEsIm1pbnV0ZSJdO2lmKGU8MjcwMClyZXR1cm5bTWF0aC5tYXgoTWF0aC5mbG9vcihlLzYwKSwyKSwibWludXRlIl07aWYoZTw1NDAwKXJldHVyblsxLCJob3VyIl07aWYoZTw3OTIwMClyZXR1cm5bTWF0aC5tYXgoTWF0aC5mbG9vcihlLzYwLzYwKSwyKSwiaG91ciJdO2lmKGU8MTI5NjAwKXJldHVyblsxLCJkYXkiXTtpZihlPDIxNmU0KXJldHVybltNYXRoLm1heChNYXRoLmZsb29yKGUvODY0MDApLDIpLCJkYXkiXTtpZihlPDM4ODhlMylyZXR1cm5bMSwibW9udGgiXTtpZihlPDI5ODA4ZTMpcmV0dXJuW01hdGgubWF4KE1hdGguZmxvb3IoZS8yNTkyZTMpLDIpLCJtb250aCJdO3JldHVybiBlPDQ3MDg4ZTM/WzEsInllYXIiXTpbTWF0aC5tYXgoTWF0aC5mbG9vcihlLzMxNTM2ZTMpLDIpLCJ5ZWFyIl19KE1hdGguYWJzKHQpKTtyZXR1cm5bbiphLGldfShlKTtyZXR1cm4gbmV3IEludGwuUmVsYXRpdmVUaW1lRm9ybWF0KHQse251bWVyaWM6ImF1dG8iLHN0eWxlOm59KS5mb3JtYXQoYSxpKX1uLmQodCx7Zm9ybWF0VGltZTooKT0+cixnZXRMYWJlbDooKT0+YSxnZXRMb2NhbGU6KCk9Pml9KX0sMTA2MTIwKGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse0FuYWx5dGljc1VJT2JqZWN0OigpPT5yLkFuYWx5dGljc1VJT2JqZWN0LEFuYWx5dGljc1VJT2JqZWN0VmFsdWU6KCk9PnIuQW5hbHl0aWNzVUlPYmplY3RWYWx1ZSxMaW5rQ29tcG9uZW50V2l0aEFuYWx5dGljc0NsaWNrOigpPT5vfSk7dmFyIGE9big3Nzk0NzQpLGk9bigyNTY5ODgpLHI9bigxNTU1NDcpO2NvbnN0IG89KDAsaS53aXRoQW5hbHl0aWNzQ2xpY2spKGEuZm9yd2FyZFJlZigoKGUsdCk9PmEuY3JlYXRlRWxlbWVudCgiYSIsey4uLmUscmVmOnR9KSkpKTsoMCxpLndpdGhBbmFseXRpY3NDbGljaykoYS5mb3J3YXJkUmVmKCgoZSx0KT0+YS5jcmVhdGVFbGVtZW50KCJkaXYiLHsuLi5lLHJlZjp0fSkpKSksKDAsaS53aXRoQW5hbHl0aWNzQ2xpY2spKGEuZm9yd2FyZFJlZigoKGUsdCk9PmEuY3JlYXRlRWxlbWVudCgic3BhbiIsey4uLmUscmVmOnR9KSkpKX0sMjU2OTg4KGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse0FuYWx5dGljc1VJT2JqZWN0OigpPT5sLkFuYWx5dGljc1VJT2JqZWN0LEFuYWx5dGljc1VJT2JqZWN0VmFsdWU6KCk9PmwuQW5hbHl0aWNzVUlPYmplY3RWYWx1ZSx3aXRoQW5hbHl0aWNzQ2xpY2s6KCk9Pm19KTt2YXIgYT1uKDc3OTQ3NCk7Y29uc3QgaT1hLmNyZWF0ZUNvbnRleHQoe2V2ZW50TmFtZTp2b2lkIDB9KTt2YXIgcixvPW4oMzYyMjM5KTtmdW5jdGlvbiBzKGUsdCxuLGEsaSl7Y29uc3Qgcj0ocz10LHsKdXNlcl9pZDp3aW5kb3cudXNlci5pZD9TdHJpbmcod2luZG93LnVzZXIuaWQpOm51bGwsdXNlcl9wbGFuOndpbmRvdy51c2VyLnByb19wbGFufHwod2luZG93LmlzX2F1dGhlbnRpY2F0ZWQ/ImZyZWUiOiJ2aXNpdG9yIiksd2lkZ2V0X2lkOnMuY2xvc2VzdCgiW2RhdGEtYW4td2lkZ2V0LWlkXSIpPy5nZXRBdHRyaWJ1dGUoImRhdGEtYW4td2lkZ2V0LWlkIil8fG51bGwsc2VjdGlvbl9pZDpzLmNsb3Nlc3QoIltkYXRhLWFuLXNlY3Rpb24taWRdIik/LmdldEF0dHJpYnV0ZSgiZGF0YS1hbi1zZWN0aW9uLWlkIil8fG51bGx9KTt2YXIgcztpZihpJiZmdW5jdGlvbihlLHQpe2lmKGUuaW5jbHVkZSlyZXR1cm4hZS5pbmNsdWRlLnNvbWUoKGU9PmU9PT10Py53aWRnZXRfaWR8fGU9PT10Py5zZWN0aW9uX2lkKSk7cmV0dXJuITF9KGkscikpcmV0dXJuO2NvbnN0IGw9ey4uLnIsYWN0aW9uOm4sbGluazphLmxpbmt8fG51bGwsdWlfb2JqZWN0OmEudWlPYmplY3R8fG51bGwsdWlfb2JqZWN0X3ZhbHVlOmEudWlPYmplY3RWYWx1ZXx8bnVsbH07aT8uZXh0cmFFdmVudERhdGEmJk9iamVjdC5hc3NpZ24obCxpLmV4dHJhRXZlbnREYXRhKSwoMCxvLmdldFRyYWNrZXIpKCkudGhlbigodD0+e3QmJnQudHJhY2tTZWxmRGVzYyhlLGwpfSkpfSFmdW5jdGlvbihlKXtlLk1haW5QYWdlV2lkZ2V0cz0iaWdsdTpjb20udHJhZGluZ3ZpZXcvbWFpbl9wYWdlX3dpZGdldHMvanNvbnNjaGVtYS8xLTAtMCIsZS5TeW1ib2xQYWdlVGFiT3ZlcnZpZXdXaWRnZXRzPSJpZ2x1OmNvbS50cmFkaW5ndmlldy9zeW1ib2xfcGFnZV90YWJfb3ZlcnZpZXdfd2lkZ2V0cy9qc29uc2NoZW1hLzEtMC0wIixlLk1hcmtldHNQYWdlV2lkZ2V0cz0iaWdsdTpjb20udHJhZGluZ3ZpZXcvbWFya2V0c19wYWdlc193aWRnZXRzL2pzb25zY2hlbWEvMS0wLTAifShyfHwocj17fSkpO3ZhciBsPW4oMTU1NTQ3KTtjb25zdCBjPW5ldyBXZWFrU2V0O2Z1bmN0aW9uIG0oZSl7cmV0dXJuKDAsYS5mb3J3YXJkUmVmKSgoKHQsbik9Pntjb25zdHthbmFseXRpY0xpbms6cixhbmFseXRpY1VpT2JqZWN0Om8sYW5hbHl0aWNVaU9iamVjdFZhbHVlOnMsLi4ubH09dCx7ZXZlbnROYW1lOm0saW5jbHVkZTpkLGV4dHJhRXZlbnREYXRhOmd9PSgwLGEudXNlQ29udGV4dCkoaSk7cmV0dXJuIGEuY3JlYXRlRWxlbWVudChlLHsuLi5sLHJlZjpuLG9uQ2xpY2s6ZT0+e2NvbnN0IG49Yy5oYXMoZSk7bSYmIW4mJihjLmFkZChlKSx1KGUudGFyZ2V0LG0sdCx7aW5jbHVkZTpkLGV4dHJhRXZlbnREYXRhOmd9KSksIm9uQ2xpY2siaW4gdCYmImZ1bmN0aW9uIj09dHlwZW9mIHQub25DbGljayYmdC5vbkNsaWNrKGUpfX0pfSkpfWZ1bmN0aW9uIHUoZSx0LG4sYSl7cyh0LGUsbC5BbmFseXRpY3NBY3Rpb24uQ0xJQ0sse2xpbms6bi5hbmFseXRpY0xpbmssdWlPYmplY3Q6bi5hbmFseXRpY1VpT2JqZWN0LHVpT2JqZWN0VmFsdWU6bi5hbmFseXRpY1VpT2JqZWN0VmFsdWV9LGEpfX0sNTcyMTUzKGUsdCxuKXsidXNlIHN0cmljdCI7dmFyIGEsaTtmdW5jdGlvbiByKGUpe3JldHVybiBlLmFjY2Vzc0xldmVsIT09YS5BbGwmJihlLndheVRvVW5sb2NrPT09aS5TdGFydEFGcmVlVHJpYWx8fGUud2F5VG9VbmxvY2s9PT1pLlVwZ3JhZGVQbGFuKX1uLmQodCx7QWNjZXNzTGV2ZWw6KCk9PmEsV2F5VG9VbmxvY2s6KCk9PmksY29tcHV0ZUFjY2VzczooKT0+cyxpc1BheXdhbGxHYXRlOigpPT5yfSksZnVuY3Rpb24oZSl7ZVtlLkFsbD0wXT0iQWxsIixlW2UuUHJldmlldz0xXT0iUHJldmlldyIsZVtlLkhlYWRsaW5lPTJdPSJIZWFkbGluZSIsZVtlLlByb3ZpZGVyPTNdPSJQcm92aWRlciJ9KGF8fChhPXt9KSksZnVuY3Rpb24oZSl7ZVtlLlVwZ3JhZGVQbGFuPTBdPSJVcGdyYWRlUGxhbiIsZVtlLlN0YXJ0QUZyZWVUcmlhbD0xXT0iU3RhcnRBRnJlZVRyaWFsIixlW2UuU2lnblVwPTJdPSJTaWduVXAifShpfHwoaT17fSkpO2NvbnN0IG89e2FjY2Vzc0xldmVsOmEuQWxsfTtmdW5jdGlvbiBzKGUsdCl7Y29uc3Qgbj1sLmZpbmQoKG49PmZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4hKHZvaWQgMCE9PWUudXNlci5hdXRoZW50aWNhdGVkJiZlLnVzZXIuYXV0aGVudGljYXRlZCE9PXQuaXNBdXRoZW50aWNhdGVkfHx2b2lkIDAhPT1lLnVzZXIucHJvJiZlLnVzZXIucHJvIT09dC5pc1Byb3x8dm9pZCAwIT09ZS51c2VyLmNhblRyaWFsJiZlLnVzZXIuY2FuVHJpYWwhPT10LmNhblN0YXJ0RnJlZVRyaWFsfHx2b2lkIDAhPT1lLm5ld3MucGF5d2FsbCYmZS5uZXdzLnBheXdhbGwhPT1Cb29sZWFuKG4ucGF5d2FsbCl8fHZvaWQgMCE9PWUubmV3cy5wZXJtaXNzaW9uJiZlLm5ld3MucGVybWlzc2lvbiE9PShuLnBlcm1pc3Npb24/PyJub25lIikpfShuLGUsdCkpKTtyZXR1cm4gbj8uZ2F0ZT8/b31jb25zdCBsPVt7dXNlcjp7YXV0aGVudGljYXRlZDohMCxwcm86ITB9LG5ld3M6e30sZ2F0ZTpvfSx7dXNlcjp7YXV0aGVudGljYXRlZDohMCxwcm86ITF9LG5ld3M6e3BheXdhbGw6ITF9LGdhdGU6b30se3VzZXI6e2F1dGhlbnRpY2F0ZWQ6ITAscHJvOiExLGNhblRyaWFsOiEwfSxuZXdzOntwYXl3YWxsOiEwfSxnYXRlOnthY2Nlc3NMZXZlbDphLkhlYWRsaW5lLHdheVRvVW5sb2NrOmkuU3RhcnRBRnJlZVRyaWFsfX0se3VzZXI6e2F1dGhlbnRpY2F0ZWQ6ITAscHJvOiExLGNhblRyaWFsOiExfSxuZXdzOntwYXl3YWxsOiEwfSxnYXRlOnthY2Nlc3NMZXZlbDphLkhlYWRsaW5lLHdheVRvVW5sb2NrOmkuVXBncmFkZVBsYW59fSx7dXNlcjp7YXV0aGVudGljYXRlZDohMX0sbmV3czp7cGF5d2FsbDohMSxwZXJtaXNzaW9uOiJub25lIn0sZ2F0ZTpvfSx7dXNlcjp7YXV0aGVudGljYXRlZDohMX0sbmV3czp7cGF5d2FsbDohMSxwZXJtaXNzaW9uOiJwcmV2aWV3In0sZ2F0ZTp7YWNjZXNzTGV2ZWw6YS5QcmV2aWV3LHdheVRvVW5sb2NrOmkuU2lnblVwfX0se3VzZXI6e2F1dGhlbnRpY2F0ZWQ6ITF9LG5ld3M6e3BheXdhbGw6ITEscGVybWlzc2lvbjoiaGVhZGxpbmUifSxnYXRlOnthY2Nlc3NMZXZlbDphLkhlYWRsaW5lLHdheVRvVW5sb2NrOmkuU2lnblVwfX0se3VzZXI6e2F1dGhlbnRpY2F0ZWQ6ITF9LG5ld3M6ewpwYXl3YWxsOiExLHBlcm1pc3Npb246InByb3ZpZGVyIn0sZ2F0ZTp7YWNjZXNzTGV2ZWw6YS5Qcm92aWRlcix3YXlUb1VubG9jazppLlNpZ25VcH19LHt1c2VyOnthdXRoZW50aWNhdGVkOiExfSxuZXdzOntwYXl3YWxsOiEwLHBlcm1pc3Npb246InByb3ZpZGVyIn0sZ2F0ZTp7YWNjZXNzTGV2ZWw6YS5Qcm92aWRlcix3YXlUb1VubG9jazppLlN0YXJ0QUZyZWVUcmlhbH19LHt1c2VyOnthdXRoZW50aWNhdGVkOiExfSxuZXdzOntwYXl3YWxsOiEwfSxnYXRlOnthY2Nlc3NMZXZlbDphLkhlYWRsaW5lLHdheVRvVW5sb2NrOmkuU3RhcnRBRnJlZVRyaWFsfX1dfSw5MjUzOTEoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7Z2V0UGFnZU5hbWU6KCk9Pm8sdHJhY2tOZXdzRXZlbnQ6KCk9PnJ9KTt2YXIgYT1uKDM2MjIzOSksaT1uKDgzNjA4MSk7YXN5bmMgZnVuY3Rpb24gcihlKXsoYXdhaXQoMCxhLmdldFRyYWNrZXIpKCkpPy50cmFja1NlbGZEZXNjKCJpZ2x1OmNvbS50cmFkaW5ndmlldy9uZXdzX2V2ZW50cy9qc29uc2NoZW1hLzEtMC00Iix7dXNlcl9wbGFuOigwLGkuZ2V0VXNlclBsYW4pKCksdXNlcl9pZDooMCxpLmdldFVzZXJJZCkoKSxwYWdlX3VybHBhdGg6bG9jYXRpb24ucGF0aG5hbWUscGFnZV91cmxob3N0OmxvY2F0aW9uLmhvc3QsbGluazplLmxpbms/P251bGwsLi4uZX0pfWZ1bmN0aW9uIG8oKXtpZih3aW5kb3cuVHJhZGluZ1ZpZXc/Lm9uQ2hhcnRQYWdlKXJldHVybiJjaGFydCI7Y29uc3QgZT13aW5kb3cubG9jYXRpb24ucGF0aG5hbWU7aWYoIi8iPT09ZSlyZXR1cm4ibWFpbiI7Y29uc3QgdD1lLnNwbGl0KCIvIilbMV07cmV0dXJuImNoYXJ0Ij09PXQ/ImlkZWEiOnR9fSw4NDg3OTMoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7Z2V0VHJhZGluZ1ZpZXdTdG9yeUl0ZW06KCk9Pmh9KTt2YXIgYT1uKDM4NDAxNyksaT1uKDQ5MjY3Nykscj1uKDk2MzA5OCksbz1uKDEzODYzOCkscz1uKDIyMTA2MSksbD1uKDMyMzkwOSksYz1uKDg0NDIyNSk7Y29uc3QgbT0oMCxzLmdldExvZ2dlcikoIkxpYi5Db3VudHJ5Q29kZSIpO2Z1bmN0aW9uIHUoZSl7cmV0dXJuIGV8fCgiaW4iPT09d2luZG93LmxvY2FsZT9mdW5jdGlvbihlKXt0cnl7cmV0dXJuKDAsbC50b0NvdW50cnlDb2RlKShjW2VdPy5nZW9pcF9jb2RlPy50b1VwcGVyQ2FzZSgpKX1jYXRjaCh0KXtyZXR1cm4gbS5sb2dFcnJvcihgR2V0IElTTyBjb3VudHJ5IGNvZGUgZnJvbSBsb2NhbGUgIiR7ZX0iIGZhaWxlZDogJHt0Lm1lc3NhZ2V9YCksKDAsbC50b0NvdW50cnlDb2RlKShjLmVuLmdlb2lwX2NvZGUudG9VcHBlckNhc2UoKSl9fSh3aW5kb3cubG9jYWxlKTpudWxsKX12YXIgZD1uKDU2OTM5OCksZz1uKDEyMzE5Nik7YXN5bmMgZnVuY3Rpb24gaChlLHQpe2NvbnN0IHM9KDAsci5nZXRJc29MYW5ndWFnZUNvZGVGcm9tTGFuZ3VhZ2UpKCgwLG8uZW5zdXJlRGVmaW5lZCkod2luZG93Lmxhbmd1YWdlKSk7cmV0dXJuKDAsZC5pc0ZlYXR1cmVFbmFibGVkKSgibmV3c191c2VfbWVkaWF0b3Jfc3RvcnkiKT9hc3luYyBmdW5jdGlvbihlLHQsYSl7Y29uc3QgaT17aWQ6ZSxsYW5nOnQsdXNlcl9wcm9zdGF0dXM6KDAsZy5nZXROZXdzVXNlclByb1N0YXR1cykoKX07dHJ5e2NvbnN0W3tnZXROZXdzTWVkaWF0b3JTZXJ2aWNlOmV9LHtjb252ZXJ0TWVkaWF0b3JTdG9yeTp0fV09YXdhaXQgUHJvbWlzZS5hbGwoW24uZSg1Mzc3MCkudGhlbihuLmJpbmQobiw0MDcwMDYpKSxuLmUoMzk0NDIpLnRoZW4obi5iaW5kKG4sNjQwODMzKSldKTtyZXR1cm4gdChhd2FpdCBlKCkudjEuZ2V0U3RvcnkoaSxhJiZ7c2lnbmFsOmF9KSl9Y2F0Y2godCl7Y29uc3Qgbj0ib2JqZWN0Ij09dHlwZW9mIHQmJm51bGwhPT10JiYic3RhdHVzImluIHQ/dC5zdGF0dXM6dm9pZCAwLGE9e2lkOmUsZXJyb3JTdGF0dXM6Im51bWJlciI9PXR5cGVvZiBuP246NDAwfTtyZXR1cm4gUHJvbWlzZS5yZWplY3QoYSl9fShlLHMsdCk6YXN5bmMgZnVuY3Rpb24oZSx0LHIpe2NvbnN0IG89YCR7d2luZG93Lk5FV1NfU0VSVklDRV9VUkx9L3YzL3N0b3J5P2Ascz0oMCxpLmNyZWF0ZVVybFBhcmFtcykoe2lkOmUsbGFuZzp0LHVzZXJfY291bnRyeTp1KCl9KSxbbCx7c3RvcnlJdGVtVHJhbnNmb3JtOmN9XT1hd2FpdCBQcm9taXNlLmFsbChbKDAsYS5mZXRjaCkoYCR7b30ke3N9YCx7c2lnbmFsOnJ9KSxuLmUoNjE1MzMpLnRoZW4obi5iaW5kKG4sODE0MzE2KSldKTtpZighbC5vayl7Y29uc3QgdD17aWQ6ZSxlcnJvclN0YXR1czpsLnN0YXR1c307cmV0dXJuIFByb21pc2UucmVqZWN0KHQpfXJldHVybiBsLmpzb24oKS50aGVuKGMpfShlLHMsdCl9fSw4Nzk5ODkoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7TmV3c0JhZGdlczooKT0+U30pO3ZhciBhLGkscj1uKDc3OTQ3NCksbz1uKDkxNDQ4Nykscz1uLm4obyksbD1uKDE4NTI3MSksYz1uKDIzNDYzNiksbT1uKDU5MDQ4NiksdT1uKDQ4MDk3MiksZD1uKDYwMTUyKSxnPW4ubihkKSxoPW4oNjUwMTgyKSx2PW4ubihoKSxwPW4oNzIyNzY0KSx3PW4ubihwKSxmPW4oNTE1NTcxKSx5PW4ubihmKSxUPW4oOTM3MDI0KSxiPW4ubihUKSxFPW4oMzAxMDU5KTshZnVuY3Rpb24oZSl7ZS5TaW1wbGlmaWVkPSJzaW1wbGlmaWVkIixlLkRlZmF1bHQ9ImRlZmF1bHQifShhfHwoYT17fSkpLGZ1bmN0aW9uKGUpe2UuRmxhc2g9ImZsYXNoIixlLkltcG9ydGFudD0iaW1wb3J0YW50IixlLkV4Y2x1c2l2ZT0iZXhjbHVzaXZlIixlLlBvc2l0aXZlU2VudGltZW50PSJwb3NpdGl2ZSIsZS5OZWdhdGl2ZVNlbnRpbWVudD0ibmVnYXRpdmUifShpfHwoaT17fSkpO2NvbnN0IE49e2ZsYXNoOnYoKSxpbXBvcnRhbnQ6dygpLGV4Y2x1c2l2ZTpnKCkscG9zaXRpdmU6eSgpLG5lZ2F0aXZlOmIoKX07ZnVuY3Rpb24gayhlKXtjb25zdHtjb250ZW50OnQsdmFyaWFudDpuPSJkZWZhdWx0IixzaXplOmE9Yy5CYWRnZVNpemUuTWVkaXVtLHR5cGU6aX09ZSxvPSJzaW1wbGlmaWVkIj09PW4/dDp2b2lkIDAsbD1hIT09Yy5CYWRnZVNpemUuWFNtYWxsfHwic2ltcGxpZmllZCI9PT1uLGQ9InNpbXBsaWZpZWQiIT09bjtyZXR1cm4gci5jcmVhdGVFbGVtZW50KG0uQmFkZ2UsewpzaXplOmEsdGl0bGU6bywiYXJpYS1sYWJlbCI6byxjbGFzc05hbWU6cygpKEUuYmFkZ2UsRVtuXSxFW2ldLCJzaW1wbGlmaWVkIj09PW4mJiJhcHBseS1jb21tb24tdG9vbHRpcCIpLGxlZnRTbG90OmwmJnIuY3JlYXRlRWxlbWVudCh1LlNjYWxhYmxlSWNvbix7aWNvbjpOW2ldfSl9LGQmJih0fHxpKSl9dmFyIEw9big2NzM3NzQpLHg9bi5uKEwpO2Z1bmN0aW9uIFMoZSl7Y29uc3R7aXNJbXBvcnRhbnQ6dCxpc0V4Y2x1c2l2ZTphLGlzRmxhc2g6aSxzZW50aW1lbnQ6byxjbGFzc05hbWU6YywuLi5tfT1lLHU9MT09PW8sZD0tMT09PW87cmV0dXJuIHIuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOnMoKSh4KCkuYmxvY2ssYyl9LHUmJnIuY3JlYXRlRWxlbWVudChrLHtjb250ZW50OmwudChudWxsLHZvaWQgMCxuKDcwNDAxMykpLHR5cGU6InBvc2l0aXZlIiwuLi5tfSksZCYmci5jcmVhdGVFbGVtZW50KGsse2NvbnRlbnQ6bC50KG51bGwsdm9pZCAwLG4oMTAyODMzKSksdHlwZToibmVnYXRpdmUiLC4uLm19KSxpJiZyLmNyZWF0ZUVsZW1lbnQoayx7Y29udGVudDpsLnQobnVsbCx2b2lkIDAsbig0NzU4MTIpKSx0eXBlOiJmbGFzaCIsLi4ubX0pLHQmJnIuY3JlYXRlRWxlbWVudChrLHtjb250ZW50OmwudChudWxsLHZvaWQgMCxuKDg4ODcxOSkpLHR5cGU6ImltcG9ydGFudCIsLi4ubX0pLGEmJnIuY3JlYXRlRWxlbWVudChrLHtjb250ZW50OmwudChudWxsLHZvaWQgMCxuKDkwOTMyNikpLHR5cGU6ImV4Y2x1c2l2ZSIsLi4ubX0pKX19LDc3ODY1MyhlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtvcGVuVHJhZGluZ1ZpZXdOZXdzRGVzY3JpcHRpb25EaWFsb2c6KCk9Pml9KTt2YXIgYT1uKDEzMzkwNik7YXN5bmMgZnVuY3Rpb24gaShlLHQsaSxyLG8pe2NvbnN0IHM9KDAsYS5nZXROZWFyYnlOZXdzSW5kaWNlcykoZSkubWFwKChlPT50W2VdKSksW3tvcGVuVHJhZGluZ1ZpZXdOZXdzRGVzY3JpcHRpb25EaWFsb2dJbXBsOmx9LC4uLmNdPWF3YWl0IFByb21pc2UuYWxsKFtQcm9taXNlLmFsbChbbi5lKDgyMDAzKSxuLmUoODQzMDYpLG4uZSgyOTI5Niksbi5lKDUyMzk2KSxuLmUoNjAwNjIpLG4uZSg0NjkwNyksbi5lKDIwMzU0KSxuLmUoMTM0OTIpLG4uZSgzNzc0Niksbi5lKDEyMzg1KSxuLmUoODEwNzIpLG4uZSg5NDk0OCksbi5lKDIzNjI0KSxuLmUoMzYyMjIpLG4uZSgyOTUzNiksbi5lKDMyODE2KSxuLmUoNTE4NCksbi5lKDgzNDg4KSxuLmUoMTk1OTUpLG4uZSgxOTc4Nyksbi5lKDY3Nzk5KSxuLmUoMTE0NjEpLG4uZSg5NjU4Nyksbi5lKDExMjE4KSxuLmUoMzc1MTMpLG4uZSg0OTU4OCksbi5lKDEwMzg1KSxuLmUoNTIwNjUpLG4uZSg2NjA1KSxuLmUoNzQzODEpLG4uZSgxNTUyNiksbi5lKDYxODIxKSxuLmUoMzI3NDgpLG4uZSg2NjI3MCksbi5lKDcxNDgyKSxuLmUoMzUxOTgpLG4uZSg0NjU5MSksbi5lKDQ1MzY4KSxuLmUoNDQ3Nyksbi5lKDE1MDkpLG4uZSgyMDI3MSksbi5lKDUxODgwKSxuLmUoNzYzMjkpLG4uZSgyNzU0OSksbi5lKDE2NDIxKSxuLmUoODIyNzEpLG4uZSg2OTgwOSksbi5lKDllMyksbi5lKDc4NDcxKSxuLmUoODgzODUpLG4uZSg1MDMyNSksbi5lKDQ3MDIxKSxuLmUoNzM1NTEpLG4uZSg3ODIzNyksbi5lKDQ5MjkpLG4uZSg1MzMyOSksbi5lKDMyMzg3KSxuLmUoNzgzMTIpLG4uZSg4ODE3Miksbi5lKDIzNzQzKSxuLmUoNjExODMpLG4uZSg5NTI0NCksbi5lKDc4MTA5KSxuLmUoMTUzOTQpLG4uZSg1NjAwOCldKS50aGVuKG4uYmluZChuLDYwNjU1OCkpLC4uLnMubWFwKChlPT5lP2UoKTpQcm9taXNlLnJlc29sdmUodm9pZCAwKSkpXSk7bChlLGMsdCxpLHIsbyl9fSwxMzM5MDYoZSx0LG4peyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBhKGUpe3JldHVybltlLTEsZSxlKzFdfW4uZCh0LHtnZXROZWFyYnlOZXdzSW5kaWNlczooKT0+YX0pfSw3MzQ4MDEoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7cHJvbWlzaWZ5TmV3c0l0ZW1zOigpPT5pfSk7dmFyIGE9big4NDg3OTMpO2Z1bmN0aW9uIGkoZSl7cmV0dXJuIGUubWFwKChlPT50PT4oMCxhLmdldFRyYWRpbmdWaWV3U3RvcnlJdGVtKShlLmlkLHQpLmNhdGNoKChlPT5lJiYib2JqZWN0Ij09dHlwZW9mIGUmJiJlcnJvclN0YXR1cyJpbiBlP1Byb21pc2UucmVzb2x2ZShlKTpQcm9taXNlLnJlc29sdmUodm9pZCAwKSkpKSl9fSw5NDYxMzcoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7SEVBRExJTkVfSEVBRF9ERUZBVUxUX1RIRU1FOigpPT5nLEhlYWRsaW5lSGVhZDooKT0+aH0pO3ZhciBhPW4oNzc5NDc0KSxpPW4oOTE0NDg3KSxyPW4ubihpKSxvPW4oMjczMzEwKSxzPW4oNDk0NjIpLGw9bigzNDQ3ODUpLGM9bigzOTA5MDcpLG09big0OTE1ODMpLHU9bigzMDkzMDIpLGQ9bigyNTkwOTApO2NvbnN0IGc9bi5uKGQpKCk7ZnVuY3Rpb24gaChlKXtjb25zdHt0aGVtZTp0PWcscHJvdmlkZXJOYW1lOm4sZGlzdHJpYnV0b3I6aSxzc3JUaW1lTXM6ZCxwdWJsaXNoZWQ6aCxsb2dvVXJsc09yU3ltYm9sczp2LHN5bWJvbHNQcm9OYW1lczpwLGlzTG9ja2VkOncsY2xhc3NOYW1lOmZ9PWUseT0oMCxhLnVzZVJlZikobnVsbCk7cmV0dXJuIGEuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOnIoKSh0LmhlYWRlcixmKX0sMCE9PXYubGVuZ3RoJiZhLmNyZWF0ZUVsZW1lbnQocy5DaXJjbGVMb2dvU3RhY2sse2NsYXNzTmFtZTp0LmxvZ28sbG9nb1VybHNPclN5bWJvbHM6dixyZWZlcmVuY2U6eSxzaG93VG9vbHRpcDooKT0+KDAsbS5zaG93U3ltYm9sc1Rvb2x0aXApKHAseSksaGlkZVRvb2x0aXA6KCk9PigwLGwuaGlkZSkoKX0pLGEuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZTpyKCkodC5kYXRlLG4mJnQuZG90aCl9LGEuY3JlYXRlRWxlbWVudChjLkFnb0RhdGVGb3JtYXR0ZXIse2V2ZW50VGltZTpoLHNzclRpbWU6ZCxpc1NTUjohMX0pKSxhLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6dC5wcm92aWRlcn0sYS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOnIoKShpJiZ0LmRvdGgpfSxuKSwoKCk9PntpZighaSlyZXR1cm4gbnVsbDtjb25zdCBlPWkuc2hvcnRfbmFtZXx8aS5uYW1lCjtyZXR1cm4gYS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOnIoKShpLnNob3J0X25hbWUmJiJhcHBseS1jb21tb24tdG9vbHRpcCIpLCJkYXRhLXRvb2x0aXAiOmkuc2hvcnRfbmFtZT9pLm5hbWU6dm9pZCAwfSxlKX0pKCksdyYmYS5jcmVhdGVFbGVtZW50KG8uSWNvbix7Y2xhc3NOYW1lOnQuaWNvbixpY29uOnV9KSkpfX0sMTU4NjU1KGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse0NBUkRfQ09OVEVOVF9ERUZBVUxUX1RIRU1FOigpPT5JLkNBUkRfQ09OVEVOVF9ERUZBVUxUX1RIRU1FLEhlYWRsaW5lQ2FyZDooKT0+UCxIZWFkbGluZUhlYWQ6KCk9Pk0uSGVhZGxpbmVIZWFkLEhlYWRsaW5lVW5hdXRoVGl0bGU6KCk9PlUsZ2V0SGVhZGxpbmVDYXJkVGhlbWU6KCk9PmVlLGdldExvY2tlZFRpdGxlVGV4dDooKT0+QSxnZXRMb2NrZWRXYXlUb1VubG9jazooKT0+RyxnZXROZXdzQ2FyZFZpc3VhbFByb3BzOigpPT5RLHByZXBhcmVMb2dvVXJsczooKT0+WH0pO3ZhciBhPW4oNzc5NDc0KSxpPW4oOTE0NDg3KSxyPW4ubihpKSxvPW4oMjM0NjM2KSxzPW4oOTY0NTk0KSxsPW4oMTg1MjcxKSxjPW4oNzMwNjQ1KSxtPW4oNTcyMTUzKSx1PW4oNTUwNTc0KSxkPW4oMjY1MjQxKSxnPW4oMjg5MzApO2NvbnN0IGg9KDAsZC5nZXROZXdzSW1hZ2VVcmxzUmVzb2x2ZXIpKCk7ZnVuY3Rpb24gdihlKXtjb25zdHtwcmV2aWV3SW1hZ2U6dCxyZXNpemVNb2RlOm49dS5QcmV2aWV3UmVzaXplTW9kZS5SYXRpbzE2Ynk5LGNsYXNzTmFtZTppfT1lLG89W3tzcmNTZXQ6aC5nZXROZXdzUmVzaXplZEltYWdlVXJsKHQuaWQsIndlYnAiKSx0eXBlOiJpbWFnZXMvd2VicCJ9XTtyZXR1cm4gYS5jcmVhdGVFbGVtZW50KHUuUHJldmlldyx7cmVzaXplTW9kZTpuLGNsYXNzTmFtZTpyKCkoZy5wcmV2aWV3V3JhcHBlcixpKSwiZGF0YS1xYS1pZCI6ImhlYWRsaW5lLXByZXZpZXctaW1hZ2UifSxhLmNyZWF0ZUVsZW1lbnQodS5QcmV2aWV3SW1hZ2Use2ZhbGxiYWNrU3JjOmguZ2V0TmV3c1Jlc2l6ZWRJbWFnZVVybCh0LmlkLCJqcGVnIiksc291cmNlczpvLGFsdDp0LmFsdHx8IiJ9KSl9dmFyIHA9bigyNzMzMTApLHc9big4Nzk5ODkpLGY9big3ODU2OTUpLHk9big2MzM2MzgpLFQ9bi5uKHkpO2Z1bmN0aW9uIGIoZSl7Y29uc3R7dGl0bGU6dCxpc0ltcG9ydGFudDpuLGlzRXhjbHVzaXZlOmksaXNGbGFzaDpzLHNlbnRpbWVudDpsLGJhZGdlU2l6ZTpjLHNob3dFeHRlcm5hbExpbms6bSxjbGFzc05hbWU6dX09ZSxkPWl8fG58fHN8fHZvaWQgMCE9PWwmJjAhPT1sO3JldHVybiBhLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpyKCkoImFwcGx5LW92ZXJmbG93LXRvb2x0aXAiLCJhcHBseS1vdmVyZmxvdy10b29sdGlwLS1kaXJlY3Rpb25fYm90aCIsVCgpLmJsb2NrLHUpLCJkYXRhLW92ZXJmbG93LXRvb2x0aXAtdGV4dCI6dCwiZGF0YS1xYS1pZCI6Im5ld3MtaGVhZGxpbmUtdGl0bGUifSxkJiZhLmNyZWF0ZUVsZW1lbnQody5OZXdzQmFkZ2VzLHtzZW50aW1lbnQ6bCxpc0V4Y2x1c2l2ZTpCb29sZWFuKGkpLGlzSW1wb3J0YW50OkJvb2xlYW4obiksaXNGbGFzaDpCb29sZWFuKHMpLHNpemU6Yyx2YXJpYW50OiJzaW1wbGlmaWVkIixjbGFzc05hbWU6cigpKFQoKS5iYWRnZXMsYz09PW8uQmFkZ2VTaXplLlNtYWxsJiZUKCkuYmFkZ2VzU21hbGwpfSksdCxtJiZhLmNyZWF0ZUVsZW1lbnQocC5JY29uLHtjbGFzc05hbWU6VCgpLmljb24saWNvbjpmfSkpfXZhciBFPW4oOTY5MTY4KSxOPW4oNTM4NDA0KSxrPW4oOTcwOTgzKSxMPW4oMjM2MjQ4KSx4PW4oNDU4NjM4KSxTPW4ubih4KTtmdW5jdGlvbiBVKGUpe3JldHVybiBhLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpyKCkoUygpLmJsb2NrLGUuY2xhc3NOYW1lKSwiZGF0YS1xYS1pZCI6ImhlYWRsaW5lLXVuYXV0aC10aXRsZSIsb25DbGljazplLm9uQ2xpY2t9LGEuY3JlYXRlRWxlbWVudChOLldyYXBXaXRoTGFzdFdvcmQse3RleHQ6ZS50ZXh0Pz9sLnQobnVsbCx2b2lkIDAsbig4MDUxNDMpKX0sYS5jcmVhdGVFbGVtZW50KHAuSWNvbix7Y2xhc3NOYW1lOlMoKS5pY29uLGljb246KDAsRS5pc1J0bCkoKT9MOmt9KSkpfXZhciBfLEMsTT1uKDk0NjEzNyksRD1uKDEwNjEyMCksST1uKDUzOTI0Nik7ZnVuY3Rpb24gQShlKXtzd2l0Y2goZSl7Y2FzZSBtLldheVRvVW5sb2NrLlN0YXJ0QUZyZWVUcmlhbDpyZXR1cm4gbC50KG51bGwsdm9pZCAwLG4oNTY4MTMwKSk7Y2FzZSBtLldheVRvVW5sb2NrLlVwZ3JhZGVQbGFuOnJldHVybiBsLnQobnVsbCx2b2lkIDAsbig4NzE3NjEpKTtjYXNlIG0uV2F5VG9VbmxvY2suU2lnblVwOmRlZmF1bHQ6cmV0dXJuIGwudChudWxsLHZvaWQgMCxuKDgwNTE0MykpfX0hZnVuY3Rpb24oZSl7ZS5EZWZhdWx0PSJkZWZhdWx0IixlLlNtYWxsPSJzbWFsbCJ9KF98fChfPXt9KSksZnVuY3Rpb24oZSl7ZS5EZWZhdWx0PSJkZWZhdWx0IixlLlJldXNlPSJyZXVzZSIsZS5GcmVzaE5ld3NPbmx5PSJmcmVzaC1uZXdzLW9ubHkifShDfHwoQz17fSkpO2NvbnN0IFA9KDAsYS5tZW1vKSgoZnVuY3Rpb24oZSl7CmNvbnN0e3RoZW1lOnQ9SS5DQVJEX0NPTlRFTlRfREVGQVVMVF9USEVNRSxwdWJsaXNoZWQ6bixjbGFzc05hbWU6aSxsb2dvVXJsc09yU3ltYm9sczpsLHN5bWJvbHNQcm9OYW1lczptLG9uQWN0aW9uOnUsb25Gb2N1czpkLG9uTW91c2VFbnRlcjpnLG9uTW91c2VMZWF2ZTpoLHByZXZpZXdJbWFnZTpwLHJlZmVyZW5jZTp3LHNob3dFeHRlcm5hbExpbms6Zix0aXRsZTp5LGxvY2tlZFdheVRvVW5sb2NrOlQsaXNFeGNsdXNpdmU6RSx1cmdlbmN5Ok4sc3R5bGU6ayxwcm92aWRlck5hbWU6TCxkaXN0cmlidXRvcjp4LHNzclRpbWVNczpTLGJhZGdlU2l6ZTpQPW8uQmFkZ2VTaXplLk1lZGl1bSxwcmV2aWV3UmVzaXplTW9kZTpGLGhpZ2hsaWdodFRpbWVzdGFtcDpSLGlzRmxhc2g6SCxpc0ZyZXNoOnosc2VudGltZW50OlcsZGF0YUlkOk8sdGl0bGVTaXplOmo9Xy5EZWZhdWx0LGhpZ2hsaWdodE1vZGU6Vj1DLkRlZmF1bHQsZGF0YUluZGV4OlosYWRkaXRpb25hbExpbmtBdHRyczpxfT1lLEI9dm9pZCAwIT09VCxZPTE9PT1OLCQ9IUImJnA/LmlkLEc9ZS5saW5rJiYoMCxjLmlzVHZMaW5rKShlLmxpbmspP3ZvaWQgMDoibm9mb2xsb3cgbm9vcGVuZXIiLFE9KDAsYS51c2VSZWYpKFIpLFg9KDAsYS51c2VSZWYpKG51bGwpLFtKLEtdPSgwLGEudXNlU3RhdGUpKCExKTtyZXR1cm4oMCxhLnVzZUVmZmVjdCkoKCgpPT57aWYoVj09PUMuRnJlc2hOZXdzT25seSlyZXR1cm47Y29uc3QgZT0oKT0+e0soITEpLHQuaGlnaGxpZ2h0JiZYLmN1cnJlbnQ/LmNsYXNzTGlzdC5yZW1vdmUodC5oaWdobGlnaHQpfSxuPShSPz8wKT49RGF0ZS5ub3coKS0xZTM7aWYoKFEuY3VycmVudCE9PVJ8fFY9PT1DLkRlZmF1bHQpJiZYLmN1cnJlbnQmJm4pe0soITApO2NvbnN0IHQ9Z2V0Q29tcHV0ZWRTdHlsZShYLmN1cnJlbnQpLmdldFByb3BlcnR5VmFsdWUoIi0tYW5pbWF0aW9uLWR1cmF0aW9uIik7WC5jdXJyZW50Py5hZGRFdmVudExpc3RlbmVyKCJhbmltYXRpb25lbmQiLGUpLHQmJnNldFRpbWVvdXQoZSwxZTMqTnVtYmVyKHQpKX1RLmN1cnJlbnQ9Un0pLFtWLFIsdC5oaWdobGlnaHRdKSxhLmNyZWF0ZUVsZW1lbnQoRC5MaW5rQ29tcG9uZW50V2l0aEFuYWx5dGljc0NsaWNrLHthbmFseXRpY1VpT2JqZWN0OkQuQW5hbHl0aWNzVUlPYmplY3QuTkVXUyxhbmFseXRpY1VpT2JqZWN0VmFsdWU6RC5BbmFseXRpY3NVSU9iamVjdFZhbHVlLkxJTkssYW5hbHl0aWNMaW5rOmUubGlua3x8bnVsbCxocmVmOmUubGluayx0YXJnZXQ6ZS5saW5rVGFyZ2V0LCJkYXRhLWlkIjpPLCJkYXRhLWluZGV4IjpaLHJlbDpHLGNsYXNzTmFtZTpyKCkodC5jYXJkLEomJnQuaGlnaGxpZ2h0LHomJnQuZnJlc2gsaSksc3R5bGU6ayxvbkNsaWNrOnUsb25Gb2N1czpkLG9uTW91c2VFbnRlcjpnLG9uTW91c2VMZWF2ZTpoLHJlZjooMCxzLm1lcmdlUmVmcykoW3csWF0pLC4uLnF9LGEuY3JlYXRlRWxlbWVudCgiYXJ0aWNsZSIse2NsYXNzTmFtZTpyKCkodC5hcnRpY2xlLHQud3JhcHBlciksImRhdGEtcWEtaWQiOiJuZXdzLWhlYWRsaW5lLWNhcmQifSxhLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpyKCkodC5jb250YWluZXIsJCYmdC5jb250YWluZXJXaXRoSW1hZ2UpfSxhLmNyZWF0ZUVsZW1lbnQoTS5IZWFkbGluZUhlYWQse2NsYXNzTmFtZTp0LmhlYWRlcix0aGVtZTp0LHB1Ymxpc2hlZDpuLGxvZ29VcmxzT3JTeW1ib2xzOmwsc3ltYm9sc1Byb05hbWVzOm0scHJvdmlkZXJOYW1lOkwsZGlzdHJpYnV0b3I6eCxzc3JUaW1lTXM6Uyxpc0xvY2tlZDpCfSksJCYmYS5jcmVhdGVFbGVtZW50KHYse3ByZXZpZXdJbWFnZTpwLHJlc2l6ZU1vZGU6RixjbGFzc05hbWU6dC5wcmV2aWV3fSksdm9pZCAwIT09VD9hLmNyZWF0ZUVsZW1lbnQoVSx7dGV4dDpBKFQpLGNsYXNzTmFtZTp0LnRpdGxlfSk6YS5jcmVhdGVFbGVtZW50KGIse3RpdGxlOnksaXNJbXBvcnRhbnQ6WSxpc0V4Y2x1c2l2ZTpFLGlzRmxhc2g6SCxzZW50aW1lbnQ6VyxjbGFzc05hbWU6cigpKHQudGl0bGUse1t0LnRpdGxlU21hbGxdOmo9PT1fLlNtYWxsfSksYmFkZ2VTaXplOlAsc2hvd0V4dGVybmFsTGluazpmfSkpKSl9KSwoKGUsdCk9PmUudGl0bGU9PT10LnRpdGxlJiZlLmRhdGFJZD09PXQuZGF0YUlkJiZlLnB1Ymxpc2hlZD09PXQucHVibGlzaGVkJiZlLmhpZ2hsaWdodFRpbWVzdGFtcD09PXQuaGlnaGxpZ2h0VGltZXN0YW1wJiZlLmxvY2tlZFdheVRvVW5sb2NrPT09dC5sb2NrZWRXYXlUb1VubG9jayYmZS5jbGFzc05hbWU9PT10LmNsYXNzTmFtZSYmZS5zdHlsZT09PXQuc3R5bGUmJmUuZGF0YUluZGV4PT09dC5kYXRhSW5kZXgmJmUubmV3c0Rpc3BsYXlNb2RlPT09dC5uZXdzRGlzcGxheU1vZGUmJmUudGl0bGVTaXplPT09dC50aXRsZVNpemUmJmUuaXNGcmVzaD09PXQuaXNGcmVzaCkpO3ZhciBGPW4oMTU3ODg4KSxSPW4oOTgxMzY1KSxIPW4oNzk4MDk0KSx6PW4oMzM0NDEzKSxXPW4oMTkzMzgyKSxPPW4oMzkyOTA4KTtjb25zdCBqPWZ1bmN0aW9uKGUsdCl7dmFyIG49LTEsYT0oMCxPLmRlZmF1bHQpKGUpP0FycmF5KGUubGVuZ3RoKTpbXTtyZXR1cm4oMCxXLmRlZmF1bHQpKGUsKGZ1bmN0aW9uKGUsaSxyKXthWysrbl09dChlLGkscil9KSksYX07dmFyIFY9bigyOTU2MzUpO2NvbnN0IFo9ZnVuY3Rpb24oZSx0KXtyZXR1cm4oKDAsVi5kZWZhdWx0KShlKT9ILmRlZmF1bHQ6aikoZSwoMCx6LmRlZmF1bHQpKHQsMykpfTtjb25zdCBxPWZ1bmN0aW9uKGUsdCl7cmV0dXJuKDAsUi5kZWZhdWx0KShaKGUsdCksMSl9O3ZhciBCPW4oNzU3NTE1KSxZPW4oOTg2Mjc1KSwkPW4oMzYyMTM0KTtmdW5jdGlvbiBHKGUpe3JldHVybiBlLmFjY2Vzc0xldmVsPT09bS5BY2Nlc3NMZXZlbC5Qcm92aWRlcj9lLndheVRvVW5sb2NrOnZvaWQgMH1mdW5jdGlvbiBRKGUsdCxuKXtyZXR1cm57dGl0bGU6ZS50aXRsZSxsaW5rOigwLEIuZ2V0TmV3c0l0ZW1MaW5rKShlKSxsb2dvVXJsc09yU3ltYm9sczplLnJlbGF0ZWRTeW1ib2xzP1goZS5yZWxhdGVkU3ltYm9scy5zbGljZSgwLDQpKTpbXSwKc3ltYm9sc1Byb05hbWVzOmUucmVsYXRlZFN5bWJvbHM/ZS5yZWxhdGVkU3ltYm9scy5zbGljZSgwLDQpLm1hcCgoZT0+ZS5zeW1ib2wpKTpbXSxzc3JUaW1lTXM6bixwcm92aWRlck5hbWU6ZS5wcm92aWRlci5uYW1lLGRpc3RyaWJ1dG9yOmUuZGlzdHJpYnV0b3IscHVibGlzaGVkOmUucHVibGlzaGVkLHNob3dFeHRlcm5hbExpbms6Qm9vbGVhbihlLmlzRXh0ZXJuYWwpLGxvY2tlZFdheVRvVW5sb2NrOkcodCksaXNFeGNsdXNpdmU6ZS5pc0V4Y2x1c2l2ZSx1cmdlbmN5OmUudXJnZW5jeSxwcmV2aWV3SW1hZ2U6ZS5wcmV2aWV3SW1hZ2UscHJldmlld1Jlc2l6ZU1vZGU6dS5QcmV2aWV3UmVzaXplTW9kZS5SYXRpbzJieTEsaXNGbGFzaDplLmlzRmxhc2gsc2VudGltZW50OigwLCQuZ2V0U2VudGltZW50KShlLnJlbGF0ZWRTeW1ib2xzKX19ZnVuY3Rpb24gWChlKXtyZXR1cm4gcShlLChlPT57Y29uc3QgdD0oMCxZLnJlbW92ZVVzZEZyb21DcnlwdG9QYWlyTG9nb3MpKCgwLFkucmVzb2x2ZUxvZ29VcmxzKShlKSk7cmV0dXJuIHQubGVuZ3RoP3QubWFwKEopOntzeW1ib2w6ZS5zeW1ib2x9fSkpfWZ1bmN0aW9uIEooZSl7cmV0dXJue2xvZ29Vcmw6ZX19dmFyIEs9bigxMTg0OCk7ZnVuY3Rpb24gZWUoZSl7cmV0dXJuIGU9PT1LLk5ld3NEaXNwbGF5TW9kZS5MaXN0P0YuQ0FSRF9MSVNUX1RIRU1FOkkuQ0FSRF9DT05URU5UX0RFRkFVTFRfVEhFTUV9fSw1MzkyNDYoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7Q0FSRF9DT05URU5UX0RFRkFVTFRfVEhFTUU6KCk9Pm99KTt2YXIgYT1uKDM4NzIzMSksaT1uKDk0NjEzNykscj1uKDMwNTgxMSk7Y29uc3Qgbz0oMCxhLm1lcmdlVGhlbWVzKShyLGkuSEVBRExJTkVfSEVBRF9ERUZBVUxUX1RIRU1FKX0sMTU3ODg4KGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse0NBUkRfTElTVF9BREFQVElWRV9USEVNRTooKT0+bCxDQVJEX0xJU1RfVEhFTUU6KCk9PnN9KTt2YXIgYT1uKDM4NzIzMSksaT1uKDUzOTI0Nikscj1uKDQyMTAyMCksbz1uKDc0ODI1OSk7Y29uc3Qgcz0oMCxhLm1lcmdlVGhlbWVzKShyLGkuQ0FSRF9DT05URU5UX0RFRkFVTFRfVEhFTUUpLGw9KDAsYS5tZXJnZVRoZW1lcykobyxpLkNBUkRfQ09OVEVOVF9ERUZBVUxUX1RIRU1FKX0sMjY1MjQxKGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse2dldE5ld3NJbWFnZVVybHNSZXNvbHZlcjooKT0+c30pO3ZhciBhPW4oMTM4NjM4KSxpPW4oNjMxNjM0KTtjbGFzcyBye2NvbnN0cnVjdG9yKGUpeygwLGEuYXNzZXJ0KSgiIiE9PWUsIlMzIGJhc2UgdXJsIG11c3QgYmUgYSBub24tZW1wdHkgc3RyaW5nIiksdGhpcy5fYmFzZVVybD1lfWdldE5ld3NMb2dvVXJscyhlKXtyZXR1cm4oMCxhLmFzc2VydCkoIiIhPT1lLCJsb2dvIGlkIG11c3QgYmUgYSBub24tZW1wdHkgc3RyaW5nIiksW3RoaXMuX2Jhc2VVcmwrYGxvZ28vJHtlfS0tdGhlbWUtbGlnaHQuc3ZnYCx0aGlzLl9iYXNlVXJsK2Bsb2dvLyR7ZX0tLXRoZW1lLWRhcmsuc3ZnYF19Z2V0TmV3c1Jlc2l6ZWRJbWFnZVVybChlLHQ9ImpwZWciKXtyZXR1cm4gdGhpcy5nZXROZXdzSW1hZ2VVcmwoZSx0LCEwKX1nZXROZXdzT3JpZ2luYWxJbWFnZVVybChlLHQ9ImpwZWciKXtyZXR1cm4gdGhpcy5nZXROZXdzSW1hZ2VVcmwoZSx0LCExKX1nZXROZXdzSW1hZ2VVcmwoZSx0PSJqcGVnIixuPSExKXsoMCxhLmFzc2VydCkoIiIhPT1lLCJpbWFnZSBpZCBtdXN0IGJlIGEgbm9uLWVtcHR5IHN0cmluZyIpO2NvbnN0IGk9bj8iLXJlc2l6ZWQiOiIiO3JldHVybmAke3RoaXMuX2Jhc2VVcmx9aW1hZ2UvJHtlfSR7aX0uJHt0fWB9fWxldCBvO2Z1bmN0aW9uIHMoKXtpZighbyl7Y29uc3QgZT0oMCxpLmdldEluaXREYXRhKSgpLHQ9ZS5zZXR0aW5ncz9lLnNldHRpbmdzLlMzX05FV1NfSU1BR0VfU0VSVklDRV9CQVNFX1VSTDoiIjtvPW5ldyByKHQpfXJldHVybiBvfX0sNDQwMzQ3KGUsdCxuKXsidXNlIHN0cmljdCI7dmFyIGEsaSxyLG87bi5kKHQse05ld3NXaWRnZXRQbGFjZW1lbnQ6KCk9Pm99KSxmdW5jdGlvbihlKXtlW2UuUG9zaXRpdmU9MV09IlBvc2l0aXZlIixlW2UuTmV1dHJhbD0wXT0iTmV1dHJhbCIsZVtlLk5lZ2F0aXZlPS0xXT0iTmVnYXRpdmUifShhfHwoYT17fSkpLGZ1bmN0aW9uKGUpe2UuSGVhZGxpbmU9ImhlYWRsaW5lIixlLlByZXZpZXc9InByZXZpZXciLGUuUHJvdmlkZXI9InByb3ZpZGVyIn0oaXx8KGk9e30pKSxmdW5jdGlvbihlKXtlW2UuSW1wb3J0YW50PTFdPSJJbXBvcnRhbnQiLGVbZS5EZWZhdWx0PTJdPSJEZWZhdWx0In0ocnx8KHI9e30pKSxmdW5jdGlvbihlKXtlLldpZGdldEJhcj0id2lkZ2V0YmFyIixlLk1haW49Im1haW4iLGUuQ2hhcnQ9ImNoYXJ0IixlLk5ld3NGbG93PSJuZXdzLWZsb3ciLGUuU3RvcnlQYWdlPSJzdG9yeXBhZ2UifShvfHwobz17fSkpfSwzNjIxMzQoZSx0LG4peyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBhKGUpe2lmKDE9PT1lPy5sZW5ndGgpcmV0dXJuIGVbMF0uc2VudGltZW50fW4uZCh0LHtnZXRTZW50aW1lbnQ6KCk9PmF9KX0sMTE4NDgoZSx0LG4peyJ1c2Ugc3RyaWN0Ijt2YXIgYSxpO24uZCh0LHtOZXdzRGlzcGxheU1vZGU6KCk9PmEsU2tlbGV0b25EaXNwbGF5Q291bnQ6KCk9Pml9KSxmdW5jdGlvbihlKXtlLkxpc3Q9Imxpc3QiLGUuR3JpZD0iZ3JpZCJ9KGF8fChhPXt9KSksZnVuY3Rpb24oZSl7ZVtlLlNtYWxsPTBdPSJTbWFsbCIsZVtlLlJlZ3VsYXI9MV09IlJlZ3VsYXIifShpfHwoaT17fSkpfSw0OTE1ODMoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7c2hvd1N5bWJvbHNUb29sdGlwOigpPT5zfSk7dmFyIGE9big2NDE1OTMpLGk9bigxMzg2MzgpLHI9bigzNDQ3ODUpLG89big2Njg3ODIpO2Z1bmN0aW9uIHMoZSx0KXsoYXN5bmMgZnVuY3Rpb24oZSl7CmNvbnN0IHQ9bmV3IFNldChbImRlc2NyaXB0aW9uIiwic2hvcnRfbmFtZSIsInByb19uYW1lIiwibGFuZ3VhZ2UiXSksW3tzbmFwc2hvdGVyOmF9LHtnZXRUcmFuc2xhdGVkU3ltYm9sRGVzY3JpcHRpb246aX1dPWF3YWl0IFByb21pc2UuYWxsKFtuLmUoNzExODUpLnRoZW4obi5iaW5kKG4sMzIwNTUpKSxQcm9taXNlLmFsbChbbi5lKDU4NjY3KSxuLmUoODA5MzkpXSkudGhlbihuLmJpbmQobiw1MjgzOTYpKV0pLHI9YSgpLG89ZS5tYXAoKGU9PnIuZ2V0U25hcHNob3RTeW5jKGUsdCkpKS5maWx0ZXIoQm9vbGVhbik7aWYoby5sZW5ndGg9PT1lLmxlbmd0aClyZXR1cm4gby5yZWR1Y2UoKChlLHQpPT4odCYmImVycm9yIiE9PXQuc3RhdHVzJiZlLnB1c2goe2Rlc2NyaXB0aW9uOmkodC52YWx1ZXMpLHNob3J0TmFtZTp0LnZhbHVlcy5zaG9ydF9uYW1lfSksZSkpLFtdKTt0cnl7cmV0dXJuKGF3YWl0IFByb21pc2UuYWxsKGUubWFwKChlPT5yLmdldFNuYXBzaG90KGUsdCkpKSkpLnJlZHVjZSgoKGUsdCk9Pih0JiYiZXJyb3IiIT09dD8uc3RhdHVzJiZlLnB1c2goe2Rlc2NyaXB0aW9uOmkodC52YWx1ZXMpLHNob3J0TmFtZTp0LnZhbHVlcy5zaG9ydF9uYW1lfSksZSkpLFtdKX1jYXRjaChlKXtyZXR1cm4gby5yZWR1Y2UoKChlLHQpPT4odCYmImVycm9yIiE9PXQuc3RhdHVzJiZlLnB1c2goe2Rlc2NyaXB0aW9uOmkodC52YWx1ZXMpLHNob3J0TmFtZTp0LnZhbHVlcy5zaG9ydF9uYW1lfSksZSkpLFtdKX19KShlKS50aGVuKChlPT57KDAsci5zaG93T25FbGVtZW50KSgoMCxpLmVuc3VyZU5vdE51bGwpKHQuY3VycmVudCkse3Rvb2x0aXBEZWxheTo1MDAsY29udGVudDp7dHlwZToiaHRtbCIsZGF0YTpsKGUpfX0pfSkpfWZ1bmN0aW9uIGwoZSl7cmV0dXJuYDxkaXY+JHtlLm1hcCgoZT0+YDxkaXYgY2xhc3M9IiR7by5lbGxpcHNpc1RleHR9Ij48c3BhbiBjbGFzcz0iJHtvLmRvdGh9ICR7by5jb2xkR3JheX0iPiR7KDAsYS5odG1sRXNjYXBlKShlLnNob3J0TmFtZSl9PC9zcGFuPjxzcGFuPiR7KDAsYS5odG1sRXNjYXBlKShlLmRlc2NyaXB0aW9uKX08L3NwYW4+PC9kaXY+YCkpLmpvaW4oIiIpfTwvZGl2PmAudHJpbSgpfX0sNzU3NTE1KGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse2dldE5ld3NJdGVtTGluazooKT0+aSxpc1RyYWRpbmdWaWV3TmV3c0l0ZW06KCk9PnJ9KTt2YXIgYT1uKDExNzMxMyk7ZnVuY3Rpb24gaShlKXtyZXR1cm4gZS5pc0V4dGVybmFsP2UubGluazooMCxhLnVybFdpdGhNb2JpbGVBcHBQYXJhbXMpKGUuc3RvcnlQYXRoLCEwKX1mdW5jdGlvbiByKGUpe3JldHVybiEhZSYmInB1Ymxpc2hlZCJpbiBlfX0sMzkwOTA3KGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse0Fnb0RhdGVGb3JtYXR0ZXI6KCk9PnV9KTt2YXIgYT1uKDc3OTQ3NCksaT1uKDkxNDQ4Nykscj1uLm4oaSksbz1uKDc2ODA2Nikscz1uKDg5MzExNSksbD1uKDM2MzM1NiksYz1uKDkyNjcxKTtmdW5jdGlvbiBtKGUpe2NvbnN0IHQ9bmV3IERhdGUoZS5ldmVudFRpbWUpO3JldHVybiBhLmNyZWF0ZUVsZW1lbnQoInRpbWUiLHtkYXRlVGltZTp0LnRvVVRDU3RyaW5nKCksY2xhc3NOYW1lOnIoKShlLnRpdGxlJiYiYXBwbHktY29tbW9uLXRvb2x0aXAiLGUuY2xhc3NOYW1lKSx0aXRsZTplLnRpdGxlLHN1cHByZXNzSHlkcmF0aW9uV2FybmluZzohMH0sZS5jaGlsZHJlbil9ZnVuY3Rpb24gdShlKXtjb25zdCB0PW5ldyBEYXRlLG49bmV3IERhdGUoZS5ldmVudFRpbWUpLGk9bi5nZXRUaW1lKCkscj10LmdldFRpbWUoKS1pLHU9dC5nZXRGdWxsWWVhcigpIT09bi5nZXRGdWxsWWVhcigpO3JldHVybiF1JiZyPDY5MTJlNT9hLmNyZWF0ZUVsZW1lbnQoby5SZWxhdGl2ZVRpbWUse2NsYXNzTmFtZTplLmNsYXNzTmFtZSxldmVudFRpbWU6ZS5ldmVudFRpbWUsc3NyVGltZTplLnNzclRpbWUsbG9jYWxlSXNvOigwLHMuZ2V0TG9jYWxlSXNvKSgpLGZhbGxiYWNrVGV4dDooMCxsLmdldFRleHREYXRlVGltZUZvck5ld3MpKGkpLGlzU1NSOiExLHRpbWVab25lOmUudXNlVVRDVGltZXpvbmU/IlVUQyI6dm9pZCAwfSk6YS5jcmVhdGVFbGVtZW50KG0se2NsYXNzTmFtZTplLmNsYXNzTmFtZSxldmVudFRpbWU6ZS5ldmVudFRpbWUsdGl0bGU6KDAsYy5nZXRGb3JtYXR0ZXJGdWxsQ29udGVudCkoZS5ldmVudFRpbWUsZS51c2VVVENUaW1lem9uZSl9LGZ1bmN0aW9uKGUsdCxuKXtpZih0KXJldHVybigwLGMuZ2V0Rm9ybWF0dGVyQ29udGVudFdpdGhZZWFyKShlLG4pO3JldHVybigwLGMuZ2V0Rm9ybWF0dGVyQ29udGVudCkoZSxuKX0oaSx1LGUudXNlVVRDVGltZXpvbmUpKX19LDkyNjcxKGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse2dldEZvcm1hdHRlckNvbnRlbnQ6KCk9Pm8sZ2V0Rm9ybWF0dGVyQ29udGVudFdpdGhZZWFyOigpPT5zLGdldEZvcm1hdHRlckZ1bGxDb250ZW50OigpPT5yLGdldEZvcm1hdHRlck1vbnRoWWVhcjooKT0+bSxnZXRGb3JtYXR0ZXJUaW1lOigpPT5sLGdldEZvcm1hdHRlclllYXI6KCk9PmN9KTt2YXIgYT1uKDg5MzExNSk7ZnVuY3Rpb24gaSgpe2NvbnN0IGU9KDAsYS5nZXRMb2NhbGVJc28pKCk7cmV0dXJuIGUmJmAke2V9LXUtaGMtaDIzYH1jb25zdCByPShlLHQpPT57Y29uc3Qgbj11KGUpLmdldFRpbWUoKTtyZXR1cm4gbmV3IEludGwuRGF0ZVRpbWVGb3JtYXQoaSgpLHtkYXk6Im51bWVyaWMiLG1vbnRoOiJzaG9ydCIseWVhcjoibnVtZXJpYyIsaG91cjoiMi1kaWdpdCIsbWludXRlOiIyLWRpZ2l0IixjYWxlbmRhcjoiZ3JlZ29yeSIsdGltZVpvbmVOYW1lOiJzaG9ydCIsdGltZVpvbmU6dD8iVVRDIjp2b2lkIDB9KS5mb3JtYXQobil9LG89KGUsdCk9Pntjb25zdCBuPXUoZSkuZ2V0VGltZSgpO3JldHVybiBuZXcgSW50bC5EYXRlVGltZUZvcm1hdChpKCkse21vbnRoOiJzaG9ydCIsZGF5OiJudW1lcmljIixjYWxlbmRhcjoiZ3JlZ29yeSIsdGltZVpvbmU6dD8iVVRDIjp2b2lkIDB9KS5mb3JtYXQobil9LHM9KGUsdCk9Pntjb25zdCBuPXUoZSkuZ2V0VGltZSgpO3JldHVybiBuZXcgSW50bC5EYXRlVGltZUZvcm1hdChpKCkse21vbnRoOiJzaG9ydCIsZGF5OiJudW1lcmljIiwKY2FsZW5kYXI6ImdyZWdvcnkiLHllYXI6Im51bWVyaWMiLHRpbWVab25lOnQ/IlVUQyI6dm9pZCAwfSkuZm9ybWF0KG4pfSxsPShlLHQpPT57Y29uc3Qgbj11KGUpLmdldFRpbWUoKTtyZXR1cm4gbmV3IEludGwuRGF0ZVRpbWVGb3JtYXQoaSgpLHtob3VyOiIyLWRpZ2l0IixtaW51dGU6IjItZGlnaXQiLHRpbWVab25lTmFtZTp0P3ZvaWQgMDoic2hvcnQiLHRpbWVab25lOnQ/dm9pZCAwOiJVVEMifSkuZm9ybWF0KG4pfSxjPWU9PnUoZSkuZ2V0RnVsbFllYXIoKSxtPWU9Pntjb25zdCB0PXUoZSkuZ2V0VGltZSgpO3JldHVybiBuZXcgSW50bC5EYXRlVGltZUZvcm1hdChpKCkse21vbnRoOiJzaG9ydCIseWVhcjoibnVtZXJpYyIsY2FsZW5kYXI6ImdyZWdvcnkifSkuZm9ybWF0KHQpfTtmdW5jdGlvbiB1KGUpe3JldHVybiBlIGluc3RhbmNlb2YgRGF0ZT9lOm5ldyBEYXRlKGUpfX0sMzIzOTA5KGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse2lzQ291bnRyeUNvZGU6KCk9PmksdG9Db3VudHJ5Q29kZTooKT0+cn0pO2NvbnN0IGE9L15bQS1aXXsyfSQvO2Z1bmN0aW9uIGkoZSl7cmV0dXJuIGEudGVzdChlKX1mdW5jdGlvbiByKGUpe2lmKGkoZSkpcmV0dXJuIGU7dGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIGNvdW50cnkgY29kZSIpfX0sNTM4NDA0KGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse1dyYXBXaXRoTGFzdFdvcmQ6KCk9Pm99KTt2YXIgYT1uKDc3OTQ3NCksaT1uKDIxNTU4OSkscj1uKDU2MjY5OSk7ZnVuY3Rpb24gbyhlKXtpZih2b2lkIDA9PT1lLmNoaWxkcmVuKXJldHVybiBhLmNyZWF0ZUVsZW1lbnQoYS5GcmFnbWVudCxudWxsLGUudGV4dCk7Y29uc3RbdCxuXT0oMCxpLnNwbGl0TGFzdFdvcmQpKGUudGV4dCk7cmV0dXJuIGEuY3JlYXRlRWxlbWVudChhLkZyYWdtZW50LG51bGwsdCxhLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6ci5ub0JyZWFrfSxuLGUuY2hpbGRyZW4pKX19LDIxNTU4OShlLHQsbil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGEoZSl7Y29uc3QgdD1lLnNwbGl0KCIgIiksbj10LnBvcCgpO3JldHVyblt0Lmxlbmd0aD90LmpvaW4oIiAiKSsiICI6IiIsbl19bi5kKHQse3NwbGl0TGFzdFdvcmQ6KCk9PmF9KX0sNDk0NjIoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7Q2lyY2xlTG9nb1N0YWNrOigpPT5jfSk7dmFyIGE9big3Nzk0NzQpLGk9big5MTQ0ODcpLHI9bi5uKGkpLG89big3MjY1Mikscz1uKDM4Nzc3NCksbD1uKDc1MzQ4NSk7ZnVuY3Rpb24gYyhlKXtjb25zdHtzaXplOnQ9Inh4eHNtYWxsIixyZWZlcmVuY2U6bixzaG93VG9vbHRpcDppLGhpZGVUb29sdGlwOmN9PWUsbT0oMCxvLmdldENpcmNsZUxvZ29TdGFja0RhdGEpKGUubG9nb1VybHNPclN5bWJvbHMpO3JldHVybiBhLmNyZWF0ZUVsZW1lbnQoInVsIix7Y2xhc3NOYW1lOnIoKShsLnN0YWNrLGxbYHN0YWNrLS0ke3R9YF0sZS5jbGFzc05hbWUsImFwcGx5LWNvbW1vbi10b29sdGlwIikscmVmOm4sb25Nb3VzZUVudGVyOmksb25Nb3VzZUxlYXZlOmN9LG0ubWFwKCgoZSxuKT0+YS5jcmVhdGVFbGVtZW50KCJsaSIse2tleTpufSxhLmNyZWF0ZUVsZW1lbnQocy5DaXJjbGVMb2dvLHsuLi5lLHNpemU6dCxsb2FkaW5nOiJsYXp5In0pKSkpKX19LDcyNjUyKGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse2dldENpcmNsZUxvZ29TdGFja0RhdGE6KCk9PnJ9KTt2YXIgYSxpPW4oNTgzMDM4KTtmdW5jdGlvbiByKGUpe2NvbnN0IHQ9W10sbj1uZXcgU2V0LGE9ZS5zbGljZSgpO2Zvcig7MCE9PWEubGVuZ3RoOyl7Y29uc3QgZT1hLnNoaWZ0KCk7aWYoIWUpYnJlYWs7Y29uc3Qgcj1vKGUpLHM9cj9lLmxvZ29Vcmw6ZS5zeW1ib2w7aWYoIW4uaGFzKHMpJiYobi5hZGQocykscj90LnB1c2goZSk6dC5wdXNoKHtwbGFjZWhvbGRlckxldHRlcjooMCxpLnNwbGl0U3ltYm9sTmFtZSkoZS5zeW1ib2wpWzFdWzBdfSksND09PXQubGVuZ3RoKSlicmVha31yZXR1cm4gdH1mdW5jdGlvbiBvKGUpe3JldHVybiJsb2dvVXJsImluIGV9IWZ1bmN0aW9uKGUpe2VbZS5NYXhMb2dvVXJsc1N0YWNrTGVuZ3RoPTRdPSJNYXhMb2dvVXJsc1N0YWNrTGVuZ3RoIn0oYXx8KGE9e30pKX0sMzYzMzU2KGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse2dldFRleHREYXRlVGltZUZvck5ld3M6KCk9Pm99KTt2YXIgYT1uKDI5NzExMSksaT1uKDIzODEwMykscj1uKDQ5MTE2NSk7ZnVuY3Rpb24gbyhlKXtyZXR1cm4gZnVuY3Rpb24oZSl7Y29uc3QgdD1uZXcgRGF0ZShlKSxuPW5ldyBhLlRpbWVGb3JtYXR0ZXIoaS5ob3VyTWludXRlRm9ybWF0KSxvPXIuZGF0ZUZvcm1hdEZ1bmN0aW9uc1siTU1NIGRkIl0odCwhMCk7cmV0dXJuW24uZm9ybWF0TG9jYWwodCksb119KGUpLmpvaW4oIiAiKS5yZXBsYWNlKCIgIiwiIMK3ICIpfX0sNzMwNjQ1KGUsdCxuKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gYShlKXtjb25zdCB0PW5ldyBVUkwoZSxkb2N1bWVudC5iYXNlVVJJKTtyZXR1cm4gcyh0KSYmbyh0KSYmcih0KX1mdW5jdGlvbiBpKGUpe3JldHVybiFlLnNwbGl0KC8oXHMrKS8pLmZpbHRlcigoZT0+ZS50cmltKCkubGVuZ3RoPjApKS5zb21lKChlPT57dHJ5e2NvbnN0IHQ9bmV3IFVSTChlKTtyZXR1cm4hKCF0fHwhdC5ob3N0bmFtZS5sZW5ndGgpJiYhZnVuY3Rpb24oZSl7Y29uc3QgdD1uZXcgVVJMKGUsZG9jdW1lbnQuYmFzZVVSSSk7cmV0dXJuIG8odCkmJnIodCl9KGUpfWNhdGNoKGUpe3JldHVybiExfX0pKX1uLmQodCx7aXNJbnRlcm5hbEhvc3Q6KCk9PmwsaXNJbnRlcm5hbFVybDooKT0+YSxpc1R2TGluazooKT0+Yyx2YWxpZGF0ZVVybHNJblRleHQ6KCk9Pml9KTtjb25zdCByPWU9PiFlLnVzZXJuYW1lLG89ZT0+Imh0dHA6Ij09PWUucHJvdG9jb2x8fCJodHRwczoiPT09ZS5wcm90b2NvbCxzPWU9PmUuaG9zdG5hbWU9PT1sb2NhdGlvbi5ob3N0bmFtZXx8IS9eXGQrXC5cZCtcLlxkK1wuXGQrJC8udGVzdChlLmhvc3RuYW1lKSYmbChlLmhvc3RuYW1lKTtmdW5jdGlvbiBsKGUsdD13aW5kb3cubG9jYXRpb24uaG9zdG5hbWUpewpjb25zdCBuPSIuIj09PXQuc2xpY2UoLTEpPzM6MixhPXQudG9Mb3dlckNhc2UoKS5zcGxpdCgiLiIpLnNsaWNlKC1uKSxpPWUudG9Mb3dlckNhc2UoKS5zcGxpdCgiLiIpLnNsaWNlKC1hLmxlbmd0aCk7cmV0dXJuIGEuam9pbigiLiIpPT09aS5qb2luKCIuIil9ZnVuY3Rpb24gYyhlKXt0cnl7cmV0dXJuIGUuc3RhcnRzV2l0aCgiLyIpfHxsKG5ldyBVUkwoZSkuaG9zdG5hbWUsInRyYWRpbmd2aWV3LmNvbSIpfWNhdGNoe3JldHVybiExfX19LDc4NTY5NShlKXtlLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMTggMTgiIHdpZHRoPSIxOCIgaGVpZ2h0PSIxOCI+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBkPSJNNS41IDIuNzVBMi43NSAyLjc1IDAgMDAyLjc1IDUuNXY3YTIuNzUgMi43NSAwIDAwMi43NSAyLjc1aDdhMi43NSAyLjc1IDAgMDAyLjc1LTIuNzVWMTBoLTEuNXYyLjVjMCAuNjktLjU2IDEuMjUtMS4yNSAxLjI1aC03Yy0uNjkgMC0xLjI1LS41Ni0xLjI1LTEuMjV2LTdjMC0uNjkuNTYtMS4yNSAxLjI1LTEuMjVIOHYtMS41SDUuNXptNS41IDEuNWgxLjY5TDguOTcgNy45N2wxLjA2IDEuMDYgMy43Mi0zLjcyVjdoMS41VjIuNzVIMTF2MS41eiIvPjwvc3ZnPid9LDMwOTMwMihlKXtlLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMTggMTgiIHdpZHRoPSIxOCIgaGVpZ2h0PSIxOCI+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik02IDZhMyAzIDAgMCAxIDYgMHYxSDZWNlpNNSA3VjZhNCA0IDAgMSAxIDggMHYxYTIgMiAwIDAgMSAyIDJ2NWEyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMlY5YzAtMS4xLjktMiAyLTJabTMgNGExIDEgMCAxIDEgMiAwdjFhMSAxIDAgMSAxLTIgMHYtMVoiLz48L3N2Zz4nfSwyMzYyNDgoZSl7ZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDE4IDE4IiB3aWR0aD0iMTgiIGhlaWdodD0iMTgiPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZD0iTTYuMjIgOS42MmExIDEgMCAwIDEgMC0xLjI0bDQtNWExIDEgMCAwIDEgMS41NiAxLjI0TDguMjggOWwzLjUgNC4zOGExIDEgMCAxIDEtMS41NiAxLjI0bC00LTVaIi8+PC9zdmc+J30sOTcwOTgzKGUpe2UuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxOCAxOCIgd2lkdGg9IjE4IiBoZWlnaHQ9IjE4Ij48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGQ9Ik0xMS43OCA4LjM4YTEgMSAwIDAgMSAwIDEuMjRsLTQgNWExIDEgMCAxIDEtMS41Ni0xLjI0TDkuNzIgOWwtMy41LTQuMzhhMSAxIDAgMSAxIDEuNTYtMS4yNGw0IDVaIi8+PC9zdmc+J30sNzIyNzY0KGUpe2UuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0Ij48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGQ9Ik0xNC4xMyAxMi4yM2MxLjQ0LTUuMTEtMS4zLTguNzctNC4xMi0xMC4yMy0uMDQgMi45Mi0uMTggNC4zOC0xLjYxIDUuODUtMS4zNyAxLjM4LTUuMDMgMi45Mi00LjMgNy4zLjQ4IDIuOTkgMy4xIDUuMTUgNS43MyA1Ljg1IDAtMS4zLjg0LTIuNzMgMi44Ny00LjM4LjAyIDIuNTItLjIgMy41MiAxLjQzIDQuMzggMi40NC0uOCA1LjE5LTMgNS43NC01Ljg1LjcyLTMuNy0xLjc1LTUuNTYtMy4yLTcuMDQuNDggMS45OS0uMzggNC4xMi0yLjU0IDQuMTJaIi8+PC9zdmc+J30sNjUwMTgyKGUpe2UuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0Ij48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGQ9Ik0xNC41MyAxMC4zMyAyMCAySDguMjFMNCAxMmg1LjlMNS42NyAyMiAyMCAxMC4zM2gtNS40N1oiLz48L3N2Zz4nfSw2MDE1MihlKXtlLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCI+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBkPSJtMTIgMy41IDIuMDIgNi4yMmg2LjU0bC01LjMgMy44NCAyLjAzIDYuMjJMMTIgMTUuOTRsLTUuMjkgMy44NCAyLjAyLTYuMjItNS4yOS0zLjg0aDYuNTRMMTIgMy41WiIvPjwvc3ZnPid9LDkzNzAyNChlKXtlLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCI+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBkPSJNMTYuNzggNGE0IDQgMCAwIDEgMy44OSAzLjA2bDEuMjYgNS4yNGEzIDMgMCAwIDEgLjA3Ljc0QTMgMyAwIDAgMSAxOS4wMiAxNkgxNXYyLjk2YzAgMS41OS0xLjM4IDMuMDMtMyAzLjA0YTEgMSAwIDAgMS0xLTF2LTEuNzJhNCA0IDAgMCAwLS42NC0yLjE2TDkgMTVWNHpNNyAxNkgzVjRoNHoiLz48L3N2Zz4nfSw1MTU1NzEoZSl7ZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZD0iTTcgMjFIM1Y5aDR6bTUuMTYtMTlBMi45NCAyLjk0IDAgMCAxIDE1IDUuMDNWOGg0LjAyYzEuNyAwIDMgMS4zOCAyLjk4IDMgMCAuMjItLjAxLjQ4LS4wNy43bC0xLjI2IDUuMjRBNCA0IDAgMCAxIDE2Ljc4IDIwSDlWOWwxLjQxLTIuMTRhNCA0IDAgMCAwIC41OS0yLjFWM2MwLS42Mi41LTEuMDMgMS4xNi0xIi8+PC9zdmc+J319XSk7"}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/37106.9faa0d59d3cf1bb8f978.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.870Z","timestamp":1785148034870,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/37106.9faa0d59d3cf1bb8f978.js HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a632877-fd09\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Fri, 24 Jul 2026 08:55:19 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/24/2026 10:32:20\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 6b82d800d5b80efb2fb9ac11a66a2cb6\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":64777,"size_decoded":23366,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, Unicode text, UTF-8 text, with very long lines (4877)","md5":"5072a3be558ae3431eca0dc65d0b8aa9","sha1":"69c9892df8b18cb2525f876b4085d3c6c8488cc8","sha256":"97ed37756bf7a0b297cf363e53c0080b657cf5cceba44c307325e1f8cde084b5","sha512":"a87268355b4cb9fdc6e5268a6bff6ce757e5772e6c2e3d091386dba7eb2f1d49451c209d26fbcb22612dbd22e1b7c39d07e000bd4131197de7f7489f78c30b0a","ssdeep":"1536:QYb00UoD7yRitQuD/4jZrj9cd2izLNiJU9f69flejDDVzS:QYOoD3T/4jos","tlshash":"2f532bb5f0c02468d2b305e984bf0199a62d3d4b3d5a44f4fd7e8c862c0a99d7639e7e","first_seen":"2026-07-27T03:26:08.839502Z","last_seen":"2026-07-27T10:53:39.238665Z","times_seen":8,"resource_available":true,"data":"KHNlbGYud2VicGFja0NodW5rdHJhZGluZ3ZpZXc9c2VsZi53ZWJwYWNrQ2h1bmt0cmFkaW5ndmlld3x8W10pLnB1c2goW1szNzEwNiw4OTQ2N10sezM0NjU2KGUpe2UuZXhwb3J0cz17Y2ZpVmFsdWU6ImNmaVZhbHVlLWlIZzU3RUhHIix0b29sdGlwQ29udGVudDoidG9vbHRpcENvbnRlbnQtaUhnNTdFSEciLHRvb2x0aXBSb3c6InRvb2x0aXBSb3ctaUhnNTdFSEciLHRvb2x0aXBMb2NhbFBhcnQ6InRvb2x0aXBMb2NhbFBhcnQtaUhnNTdFSEcifX0sMzE2MDE0KGUpe2UuZXhwb3J0cz17dG9vbHRpcExhYmVsU25wOiJ0b29sdGlwTGFiZWxTbnAtZV9XWjZDdUwiLHRvb2x0aXBMYWJlbEZpdGNoOiJ0b29sdGlwTGFiZWxGaXRjaC1lX1daNkN1TCJ9fSwxMDg3NTcoZSl7ZS5leHBvcnRzPXtpY29uOiJpY29uLWNFcVlkZXN2In19LDE0MDQ5NihlKXtlLmV4cG9ydHM9e3dyYXA6IndyYXAteDA0cmQ2TjgiLHRvb2x0aXBUZXh0OiJ0b29sdGlwVGV4dC14MDRyZDZOOCIsdG9vbHRpcERpdmlkZXI6InRvb2x0aXBEaXZpZGVyLXgwNHJkNk44Iix2ZXJ0aWNhbFNjYWxlSXRlbToidmVydGljYWxTY2FsZUl0ZW0teDA0cmQ2TjgiLHN0YWNrZWRDb250YWluZXI6InN0YWNrZWRDb250YWluZXIteDA0cmQ2TjgiLGNvbG9yZWRWYWx1ZToiY29sb3JlZFZhbHVlLXgwNHJkNk44IixzdGFja2VkVG9wOiJzdGFja2VkVG9wLXgwNHJkNk44IixzdGFja2VkQm90dG9tOiJzdGFja2VkQm90dG9tLXgwNHJkNk44IixwbGFpblZhbHVlOiJwbGFpblZhbHVlLXgwNHJkNk44Iix0b29sdGlwSGVhZGVyOiJ0b29sdGlwSGVhZGVyLXgwNHJkNk44Iix0b29sdGlwSGVhZGVyVGV4dDoidG9vbHRpcEhlYWRlclRleHQteDA0cmQ2TjgiLHRvb2x0aXBPdXRsb29rOiJ0b29sdGlwT3V0bG9vay14MDRyZDZOOCJ9fSwxNDg0NTYoZSl7ZS5leHBvcnRzPXtjb250YWluZXI6ImNvbnRhaW5lci1LOHRkWGhsZCIsdmlzaWJsZToidmlzaWJsZS1LOHRkWGhsZCJ9fSwzODA0NDcoZSl7ZS5leHBvcnRzPXtsYWJlbFdyYXA6ImxhYmVsV3JhcC1uSWJTbmY1YyIsbGVmdDoibGVmdC1uSWJTbmY1YyIscmlnaHQ6InJpZ2h0LW5JYlNuZjVjIn19LDY5ODY2NyhlKXtlLmV4cG9ydHM9e3dyYXA6IndyYXAtS0VrNExVbjMiLGhvdmVyQ29udGFpbmVyOiJob3ZlckNvbnRhaW5lci1LRWs0TFVuMyIsaG92ZXJEZXRlY3RvcjoiaG92ZXJEZXRlY3Rvci1LRWs0TFVuMyIsdmlzaWJsZUNvbnRhaW5lcjoidmlzaWJsZUNvbnRhaW5lci1LRWs0TFVuMyIsc2VsZWN0ZWQ6InNlbGVjdGVkLUtFazRMVW4zIixsYWJlbDoibGFiZWwtS0VrNExVbjMiLGlubmVyVGV4dDoiaW5uZXJUZXh0LUtFazRMVW4zIix2aXNpYmxlOiJ2aXNpYmxlLUtFazRMVW4zIn19LDg1MDI0NyhlKXtlLmV4cG9ydHM9e3dyYXA6IndyYXAtcXQwdzh5VXIiLGxlZnQ6ImxlZnQtcXQwdzh5VXIiLHJpZ2h0OiJyaWdodC1xdDB3OHlVciIsdG9vbHRpcDoidG9vbHRpcC1xdDB3OHlVciIsZWFyOiJlYXItcXQwdzh5VXIiLCJlYXItLWJlbG93IjoiZWFyLS1iZWxvdy1xdDB3OHlVciIsImVhci0tYWJvdmUiOiJlYXItLWFib3ZlLXF0MHc4eVVyIiwiZWFyLS1iZWZvcmUiOiJlYXItLWJlZm9yZS1xdDB3OHlVciIsImVhci0tYWZ0ZXIiOiJlYXItLWFmdGVyLXF0MHc4eVVyIixzd2F0Y2g6InN3YXRjaC1xdDB3OHlVciIsdGV4dDoidGV4dC1xdDB3OHlVciIsY291bnQ6ImNvdW50LXF0MHc4eVVyIix1bml0OiJ1bml0LXF0MHc4eVVyIn19LDY3NjgyMChlKXtlLmV4cG9ydHM9e3BpZUNvbnRhaW5lcjoicGllQ29udGFpbmVyLUlFMkRqcklSIixpbnZhbGlkOiJpbnZhbGlkLUlFMkRqcklSIixjaGFydDoiY2hhcnQtSUUyRGpySVIiLGNlbnRlclRleHQ6ImNlbnRlclRleHQtSUUyRGpySVIifX0sNzE2MDkzKGUpe2UuZXhwb3J0cz17bGluZVBsb3Q6ImxpbmVQbG90LVZHRXByZWpLIixjYW52YXM6ImNhbnZhcy1WR0VwcmVqSyJ9fSw2MzI4OTQoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7Q2lyY2xlTG9nb0FueTooKT0+aX0pO3ZhciByPW4oNzc5NDc0KSxvPW4oMjQ5ODYyKSxsPW4oMzg3Nzc0KTtmdW5jdGlvbiBpKGUpe2NvbnN0e2xvZ29VcmxzOnR9PWU7cmV0dXJuIDE9PT10Lmxlbmd0aD9yLmNyZWF0ZUVsZW1lbnQobC5DaXJjbGVMb2dvLHsuLi5lLGxvZ29Vcmw6dFswXX0pOjI9PT10Lmxlbmd0aD9yLmNyZWF0ZUVsZW1lbnQoby5DaXJjbGVMb2dvUGFpcix7Li4uZSxwcmltYXJ5TG9nb1VybDp0WzBdLHNlY29uZGFyeUxvZ29Vcmw6dFsxXX0pOnIuY3JlYXRlRWxlbWVudChsLkNpcmNsZUxvZ28sey4uLmUsbG9nb1VybDp2b2lkIDB9KX19LDI0OTg2MihlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtDaXJjbGVMb2dvUGFpcjooKT0+bH0pO3ZhciByPW4oNzc5NDc0KSxvPW4oNjI3ODQ4KTtmdW5jdGlvbiBsKGUpe2NvbnN0e3ByaW1hcnlMb2dvVXJsOnQsc2Vjb25kYXJ5TG9nb1VybDpuLHNpemU6bCxjbGFzc05hbWU6YX09ZTtyZXR1cm4gci5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOigwLG8uZ2V0QmxvY2tTdHlsZUNsYXNzZXMpKGwsYSksdGl0bGU6ZS50aXRsZX0sci5jcmVhdGVFbGVtZW50KGkse2xvZ29Vcmw6bixzaXplOmx9KSxyLmNyZWF0ZUVsZW1lbnQoaSx7bG9nb1VybDp0LHNpemU6bH0pKX1mdW5jdGlvbiBpKGUpe2NvbnN0e2xvZ29Vcmw6dCxzaXplOm59PWUsbD12b2lkIDAhPT10LFtpLGFdPSgwLHIudXNlU3RhdGUpKDApLHM9KDAsci51c2VSZWYpKG51bGwpLHU9KDAsby5nZXRMb2dvU3R5bGVDbGFzc2VzKShuLGkpO3JldHVybigwLHIudXNlRWZmZWN0KSgoKCk9PmEocy5jdXJyZW50Py5jb21wbGV0ZT8/IWw/MjoxKSksW2xdKSxsJiYzIT09aT9yLmNyZWF0ZUVsZW1lbnQoImltZyIse3JlZjpzLGNsYXNzTmFtZTp1LGNyb3NzT3JpZ2luOiIiLHNyYzp0LGFsdDoiIixvbkxvYWQ6KCk9PmEoMiksb25FcnJvcjooKT0+YSgzKX0pOnIuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZTp1fSl9fSw1NDQyNzgoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7Q2ZpQ29kZVZhbHVlOigpPT5mfSkKO3ZhciByPW4oNzc5NDc0KSxvPW4oMTUzMTU0KSxsPW4oOTM1NzcyKSxpPW4oMTUzNzI4KSxhPW4oNjM3NTY0KSxzPW4oMzg0MDE3KTtjb25zdCB1PSgwLG4oMjIxMDYxKS5nZXRMb2dnZXIpKCJDZmlEaWN0aW9uYXJ5Iik7YXN5bmMgZnVuY3Rpb24gYyhlKXtjb25zdCB0PWBodHRwczovLyR7ZnVuY3Rpb24oKXtjb25zdCBlPXdpbmRvdy5sb2NhdGlvbi5ob3N0bmFtZTtyZXR1cm4idHJhZGluZ3ZpZXcuY29tIj09PWV8fGUuZW5kc1dpdGgoIi50cmFkaW5ndmlldy5jb20iKT8iaW5mby50cmFkaW5ndmlldy5jb20iOiJpbmZvLnhzdGFnaW5nLnR2In0oKX0vY2ZpL2NmaS1kaWN0LW1lcmdlZC0ke2VuY29kZVVSSUNvbXBvbmVudCgoZT0+e3N3aXRjaChlKXtjYXNlInB0IjpyZXR1cm4iYnIiO2Nhc2UidmkiOnJldHVybiJ2biI7Y2FzZSJ6aC1IYW5zIjpyZXR1cm4iY24iO2Nhc2UiemgtSGFudCI6cmV0dXJuInR3IjtjYXNlImphIjpyZXR1cm4ianAiO2Nhc2Uia28iOnJldHVybiJrciI7Y2FzZSJoZSI6cmV0dXJuImlsIjtkZWZhdWx0OnJldHVybiBlfX0pKGUpKX0uanNvbmA7dHJ5e2NvbnN0IGU9YXdhaXQoMCxzLmZldGNoKSh0KTtyZXR1cm4gZS5vaz9hd2FpdCBlLmpzb24oKTpudWxsfWNhdGNoe3JldHVybiB1LmxvZ1dhcm4oYEZhaWxlZCB0byBmZXRjaCBDRkkgZGljdGlvbmFyeSBmb3IgbG9jYWxlOiAke2V9YCksbnVsbH19ZnVuY3Rpb24gZChlLHQpe3JldHVybntsZXR0ZXI6ZSxlbk1lYW5pbmc6dD8uZW4/P2UsbG9jYWxNZWFuaW5nOnQ/LmxvY2FsfX1mdW5jdGlvbiBwKGUsdCl7cmV0dXJuIHQmJjY9PT10Lmxlbmd0aD9mdW5jdGlvbihlLHQpe2NvbnN0IG49ZS5jYXRlZ29yaWVzW3RbMF1dO2lmKCFuKXJldHVybltdO2NvbnN0IHI9bi5ncm91cHNbdFsxXV07cmV0dXJuIHI/W2QodFswXSxuKSxkKHRbMV0sciksZCh0WzJdLHIuYXR0cmlidXRlMT8uW3RbMl1dKSxkKHRbM10sci5hdHRyaWJ1dGUyPy5bdFszXV0pLGQodFs0XSxyLmF0dHJpYnV0ZTM/Llt0WzRdXSksZCh0WzVdLHIuYXR0cmlidXRlND8uW3RbNV1dKV06W2QodFswXSxuKV19KGUsdCk6W119dmFyIG09bigzNDY1Nik7ZnVuY3Rpb24gZihlKXtjb25zdHtjb2RlOnQsbG9jYWxlOm59PWUscz0oMCxyLnVzZVJlZikobnVsbCksW3UsZF09KDAsci51c2VTdGF0ZSkobnVsbCksW2Ysdl09KDAsci51c2VTdGF0ZSkoITEpLHt2aXNpYmxlOmcsb3BlbjpoLGNsb3NlOnksdG9nZ2xlOlN9PSgwLGkudXNlVG9vbHRpcFN0YXRlKSh7b3BlbkRlbGF5OjAsY2xvc2VEZWxheTowfSk7KDAsbC51c2VDbG9zZU9uRWxlbWVudFNjcm9sbCkoeSk7Y29uc3QgRT11JiZ1Lmxlbmd0aD4wP3IuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOm0udG9vbHRpcENvbnRlbnR9LHUubWFwKCgoZSx0KT0+ci5jcmVhdGVFbGVtZW50KCJkaXYiLHtrZXk6dCxjbGFzc05hbWU6bS50b29sdGlwUm93fSxlLmxvY2FsTWVhbmluZz9yLmNyZWF0ZUVsZW1lbnQoci5GcmFnbWVudCxudWxsLGUuZW5NZWFuaW5nLHIuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZTptLnRvb2x0aXBMb2NhbFBhcnR9LCIg4oCUICIsZS5sb2NhbE1lYW5pbmcpKTplLmVuTWVhbmluZykpKSk6dm9pZCAwO3JldHVybiByLmNyZWF0ZUVsZW1lbnQoci5GcmFnbWVudCxudWxsLEUmJnIuY3JlYXRlRWxlbWVudChvLlRvb2x0aXBTdGF0ZWxlc3Mse2lkOmBjZmktJHt0fWAsb3BlbjpnLGNvbnRlbnQ6RSxoYXNBcnJvdzohMCxhbmNob3I6cyxvbkNsb3NlOigpPT57fSxwbGFjZW1lbnQ6W2EuVG9vbHRpcFBsYWNlbWVudHMuVG9wTGVmdCxhLlRvb2x0aXBQbGFjZW1lbnRzLlRvcFJpZ2h0LGEuVG9vbHRpcFBsYWNlbWVudHMuQm90dG9tTGVmdCxhLlRvb2x0aXBQbGFjZW1lbnRzLkJvdHRvbVJpZ2h0XX0pLHIuY3JlYXRlRWxlbWVudCgic3BhbiIse3JlZjpzLGNsYXNzTmFtZTptLmNmaVZhbHVlLG9uQ2xpY2s6Uyxvbk1vdXNlRW50ZXI6ZnVuY3Rpb24oKXt1JiZ1Lmxlbmd0aD4wP2goKTpmfHwodighMCksYXN5bmMgZnVuY3Rpb24oZSl7Y29uc3QgdD1lfHwiZW4iO3JldHVybiBhd2FpdCBjKHQpfHwoImVuIiE9PXQ/YygiZW4iKTpudWxsKX0obikudGhlbigoZT0+e2lmKGUpe2NvbnN0IG49cChlLHQpO2QobiksbiYmbi5sZW5ndGg+MCYmaCgpfX0pKS5jYXRjaCgoKCk9Pnt9KSkuZmluYWxseSgoKCk9PnYoITEpKSkpfSxvbk1vdXNlTGVhdmU6eX0sdCkpfX0sOTEwOTAxKGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse0ZJVENIX0xBQkVMOigpPT5pLEZJVENIX0xJTkVfQ09MT1I6KCk9PnMsRklUQ0hfVE9PTFRJUF9MQUJFTF9DTEFTU19OQU1FOigpPT5jLFNOUF9MQUJFTDooKT0+bCxTTlBfTElORV9DT0xPUjooKT0+YSxTTlBfVE9PTFRJUF9MQUJFTF9DTEFTU19OQU1FOigpPT51LGJ1aWxkUmF0aW5nU2VyaWVzOigpPT5kfSk7dmFyIHI9big1MDU1Niksbz1uKDMxNjAxNCk7Y29uc3QgbD0iUyZQIixpPSJGaXRjaCIsYT1bci5jb2xvcnNQYWxldHRlWyJjb2xvci10YW4tb3JhbmdlLTgwMCJdLHIuY29sb3JzUGFsZXR0ZVsiY29sb3ItdGFuLW9yYW5nZS01MDAiXV0scz1yLmNvbG9yc1BhbGV0dGVbImNvbG9yLWRlZXAtYmx1ZS01MDAiXSx1PW8udG9vbHRpcExhYmVsU25wLGM9by50b29sdGlwTGFiZWxGaXRjaDtmdW5jdGlvbiBkKGUpe3JldHVybiAwPT09ZS5pdGVtcy5sZW5ndGg/bnVsbDp7aXRlbXM6ZS5pdGVtcyxwb3NzaWJsZVZhbHVlczplLnBvc3NpYmxlVmFsdWVzLGxhYmVsOmUubGFiZWwsb3V0bG9va1RpdGxlczplLm91dGxvb2tUaXRsZXMsY29sb3JDb25maWc6e2xpbmVDb2xvcjplLmxpbmVDb2xvcix2ZXJ0aWNhbFNjYWxlQ2VsbENsYXNzTmFtZTplLnNjYWxlQ2VsbENsYXNzTmFtZSx0b29sdGlwTGFiZWxDbGFzc05hbWU6ZS50b29sdGlwTGFiZWxDbGFzc05hbWV9fX19LDc2ODI5NShlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtnZXRPdXRsb29rVGl0bGVzOigpPT5vfSk7dmFyIHI9big3ODMyNTQpO2Z1bmN0aW9uIG8oZSl7cmV0dXJuezA6ci50KG51bGwse2NvbnRleHQ6ImJvbmRfcmF0aW5nX291dGxvb2sifSxuKDU2MzA0NikpLDE6ci50KG51bGwsewpjb250ZXh0OiJib25kX3JhdGluZ19vdXRsb29rIn0sbigxMDIyNTYpKSxbLTFdOnIudChudWxsLHtjb250ZXh0OiJib25kX3JhdGluZ19vdXRsb29rIn0sbigxMDk5MDQpKSwyOiJmaXRjaCI9PT1lP3IudChudWxsLHtjb250ZXh0OiJib25kX3JhdGluZ19vdXRsb29rIn0sbig0MTcyMTQpKTpyLnQobnVsbCx7Y29udGV4dDoiYm9uZF9yYXRpbmdfb3V0bG9vayJ9LG4oNTUxNjcwKSl9fX0sNjMzODU0KGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse1JhdGluZ0NoYXJ0OigpPT5HfSk7dmFyIHI9big3Nzk0NzQpLG89big5MTQ0ODcpLGw9bi5uKG8pLGk9big3ODMyNTQpLGE9bigxMzg2MzgpLHM9big0OTExNjUpLHU9bigyMjEwNjEpLGM9bigzNzQwMTcpLGQ9big4NDc1MjkpLHA9big5NjkxNjgpLG09big4MTA0MSksZj1uKDcxOTQyNSksdj1uKDg3MTcwKSxnPW4oNzE2MDkzKTtmdW5jdGlvbiBoKGUpe2NvbnN0e2xpbmVzOnQscGFkZGluZzpufT1lLG89KDAsci51c2VSZWYpKG51bGwpLFtsLGldPSgwLHIudXNlU3RhdGUpKDApLFtzLHVdPSgwLHIudXNlU3RhdGUpKDApLGM9KDAsZi51c2VSZXNpemVPYnNlcnZlcikoe2NhbGxiYWNrOmZ1bmN0aW9uKFtlXSl7Y29uc3R7d2lkdGg6dCxoZWlnaHQ6bn09ZS5jb250ZW50UmVjdCxyPXAoKTt1KE1hdGguY2VpbCh0KnIpKSxpKE1hdGguY2VpbChuKnIpKX0scmVmOm99KTsoMCxyLnVzZUVmZmVjdCkoKCgpPT57IWZ1bmN0aW9uKCl7aWYoIW8uY3VycmVudHx8IWx8fCFzKXJldHVybjtjb25zdCBlPSgwLGEuZW5zdXJlTm90TnVsbCkoby5jdXJyZW50LmdldENvbnRleHQoIjJkIikpO2UuY2xlYXJSZWN0KDAsMCxzLGwpLGUubGluZUpvaW49InJvdW5kIixlLmxpbmVDYXA9InJvdW5kIix0LmZvckVhY2goKHQ9PnshZnVuY3Rpb24oZSx0KXtjb25zdHtwb2ludHM6cixjb2xvcjpvLGxpbmVXaWR0aDpsfT1lO2lmKCFsfHwhbylyZXR1cm47Y29uc3QgaT1wKCksYT1yLmxlbmd0aDtpZih0LnN0cm9rZVN0eWxlPW8sdC5saW5lV2lkdGg9bCppLGE+MSl7dC5iZWdpblBhdGgoKTtmb3IobGV0IGU9MDtlPGE7ZSsrKXtjb25zdCBvPXJbZV07dFswPT09ZT8ibW92ZVRvIjoibGluZVRvIl0oby54KnMseShvLnksbSgpKSsobj8udG9wfHwwKSpwKCkpfXQuc3Ryb2tlKCl9fSh0LGUpLGZ1bmN0aW9uKGUsdCl7Y29uc3R7cG9pbnRzOnIsY29sb3I6byxwb2ludFNldHRpbmdzOmx9PWUsaT1wKCk7Zm9yKGxldCBlPTA7ZTxyLmxlbmd0aDtlKyspe2NvbnN0IGE9cltlXSx1PShhLnJhZGl1cz8/bD8ucmFkaXVzPz8wKSppO2lmKDA9PT11KWNvbnRpbnVlO2NvbnN0IGM9YS5jb2xvcj8/bD8uY29sb3I/P287aWYoIWMpY29udGludWU7Y29uc3QgZD15KGEueSxtKCkpKyhuPy50b3B8fDApKnAoKSxmPWEueCpzLHY9YS5ib3JkZXI/P2w/LmJvcmRlcixnPU1hdGgubWluKCh2Py53aWR0aD8/MCkqaSx1KTt2JiZnJiYodC5maWxsU3R5bGU9di5jb2xvcix0LmJlZ2luUGF0aCgpLHQuYXJjKGYsZCx1LDAsMipNYXRoLlBJKSx0LmZpbGwoKSksdC5maWxsU3R5bGU9Yyx0LmJlZ2luUGF0aCgpLHQuYXJjKGYsZCx1LWcsMCwyKk1hdGguUEkpLHQuZmlsbCgpO2NvbnN0IGg9YS5nbHlwaD8/bD8uZ2x5cGg7aWYoaCl7Y29uc3QgZT11LWcsbj1hLmdseXBoQ29sb3I/P2w/LmdseXBoQ29sb3I/P3Y/LmNvbG9yPz9jO3Quc2F2ZSgpLFQodCxmLGQsZSx7Z2x5cGg6aCxjb2xvcjpuLGJhc2VDb2xvcjpjfSksdC5yZXN0b3JlKCl9fX0odCxlKX0pKX0oKX0pLFtsLHMsbl0pO2NvbnN0IGQ9KDAsci51c2VNZW1vKSgoKCk9Pih7Ii0tbGluZS1wbG90LXBhbmUtcGFkZGluZy10b3AiOmAke24/LnRvcHx8MH1weGAsIi0tbGluZS1wbG90LXBhbmUtcGFkZGluZy1ib3R0b20iOmAke24/LmJvdHRvbXx8MH1weGB9KSksW25dKTtyZXR1cm4gZnVuY3Rpb24oZSl7aWYoMD09PWUubGVuZ3RoKXJldHVybiExO2ZvcihsZXQgdD0wO3Q8ZS5sZW5ndGg7dCsrKWlmKDAhPT1lW3RdLnBvaW50cy5sZW5ndGgpcmV0dXJuITA7cmV0dXJuITF9KHQpP3IuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOmcubGluZVBsb3Qsc3R5bGU6ZH0sci5jcmVhdGVFbGVtZW50KCJjYW52YXMiLHtyZWY6YyxjbGFzc05hbWU6Zy5jYW52YXMsd2lkdGg6cyxoZWlnaHQ6bH0pKTpudWxsO2Z1bmN0aW9uIHAoKXtyZXR1cm4oMCx2LmdldENhbnZhc0RldmljZVBpeGVsUmF0aW8pKCgwLGEuZW5zdXJlTm90TnVsbCkoby5jdXJyZW50KSl9ZnVuY3Rpb24gbSgpe3JldHVybiBsLSgobj8udG9wfHwwKSsobj8uYm90dG9tfHwwKSkqcCgpfX1mdW5jdGlvbiB5KGUsdCl7cmV0dXJuIHQqKDEtZSl8fDB9Y29uc3QgUz0uNjIsRT0uMzQsQz0uOTIsYj0uNyx4PS40O2Z1bmN0aW9uIFQoZSx0LG4scixvKXtjb25zdHtnbHlwaDpsLGNvbG9yOmksYmFzZUNvbG9yOmF9PW87c3dpdGNoKGUuZmlsbFN0eWxlPWksbCl7Y2FzZSJkb3QiOnJldHVybiBlLmJlZ2luUGF0aCgpLGUuYXJjKHQsbixyKmIsMCwyKk1hdGguUEkpLGUuZmlsbCgpLGUuZmlsbFN0eWxlPWEsZS5iZWdpblBhdGgoKSxlLmFyYyh0LG4scip4LDAsMipNYXRoLlBJKSx2b2lkIGUuZmlsbCgpO2Nhc2Uic3F1YXJlIjp7Y29uc3Qgbz1yKkM7cmV0dXJuIHZvaWQgZS5maWxsUmVjdCh0LW8vMixuLW8vMixvLG8pfWNhc2UibWludXMiOntjb25zdCBvPU1hdGgubWF4KDEscipFKSxsPXIqUztyZXR1cm4gdm9pZCBlLmZpbGxSZWN0KHQtbCxuLW8vMiwyKmwsbyl9Y2FzZSJwbHVzIjp7Y29uc3Qgbz1NYXRoLm1heCgxLHIqRSksbD1yKlM7cmV0dXJuIGUuZmlsbFJlY3QodC1sLG4tby8yLDIqbCxvKSx2b2lkIGUuZmlsbFJlY3QodC1vLzIsbi1sLG8sMipsKX19fXZhciBOPW4oNjE2NjQzKSxMPW4oNjU5MzgxKTtjb25zdCB3PXsxOnt0aW1lc3RhbXBUb1BlcmlvZDplPT57Y29uc3QgdD1uZXcgRGF0ZSgxZTMqZSk7cmV0dXJuIDEyKnQuZ2V0RnVsbFllYXIoKSt0LmdldE1vbnRoKCl9LHBlcmlvZFRvVGltZXN0YW1wOk0scGVyaW9kVG9TdHJpbmc6ZT0+cy5kYXRlRm9ybWF0RnVuY3Rpb25zWyJNTU0gJ3l5Il0obmV3IERhdGUoMWUzKk0oZSkpLCEwKX0sMDp7CnRpbWVzdGFtcFRvUGVyaW9kOmU9Pm5ldyBEYXRlKDFlMyplKS5nZXRGdWxsWWVhcigpLHBlcmlvZFRvVGltZXN0YW1wOmU9Pntjb25zdCB0PW5ldyBEYXRlO3JldHVybiB0LnNldEZ1bGxZZWFyKGUpLCgwLEwucmVzZXRUb1llYXJTdGFydCkodCkuZ2V0VGltZSgpLzFlM30scGVyaW9kVG9TdHJpbmc6ZT0+ZS50b1N0cmluZygpfX07ZnVuY3Rpb24gTShlKXtjb25zdCB0PW5ldyBEYXRlO3JldHVybiB0LnNldEZ1bGxZZWFyKGUvMTIpLHQuc2V0TW9udGgoZSUxMiksKDAsTC5yZXNldFRvTW9udGhTdGFydCkodCkuZ2V0VGltZSgpLzFlM312YXIgUD1uKDUwNTU2KTtjb25zdCBBPWU9Pih0LG4pPT5QLmNvbG9yc1BhbGV0dGVbZT09PW0uU3RkVGhlbWUuTGlnaHQ/dDpuXTtmdW5jdGlvbiBEKGUpe3JldHVybnt3aWR0aDoxLGNvbG9yOlAuY29sb3JzUGFsZXR0ZVtlPT09bS5TdGRUaGVtZS5MaWdodD8iY29sb3Itd2hpdGUiOiJjb2xvci1ibGFjayJdfX1mdW5jdGlvbiBSKGUpe3JldHVybiBBKGUpKCJjb2xvci1jb2xkLWdyYXktOTAwIiwiY29sb3ItY29sZC1ncmF5LTIwMCIpfWNvbnN0IF89ezE6InBsdXMiLFstMV06Im1pbnVzIiwwOiJzcXVhcmUiLDI6ImRvdCJ9O3ZhciBJPW4oMjczMzEwKSxrPW4oODIwNjYzKSxPPW4oMjI0MzAyKSxGPW4oNTM3NDQ2KSxCPW4oNTE0NzMxKSxWPW4oMTA4NzU3KTtjb25zdCBVPXsxOkYsWy0xXTpPLDA6QiwyOmt9O2Z1bmN0aW9uIEgoZSl7Y29uc3R7b3V0bG9vazp0fT1lO3JldHVybiByLmNyZWF0ZUVsZW1lbnQoSS5JY29uLHtjbGFzc05hbWU6Vi5pY29uLGljb246VVt0XX0pfXZhciAkPW4oMTQwNDk2KTtjb25zdCBXPTUscT0oMCx1LmdldExvZ2dlcikoIlJhdGluZ0NoYXJ0Iik7ZnVuY3Rpb24gRyhlKXtjb25zdHtzZXJpZXM6dCxwZXJpb2RUeXBlOm4scGVyaW9kc0NvdW50Om89VyxzaG9ydGVuWWVhcjpsLHNob3dMZWdlbmQ6aT0hMX09ZSxzPSgwLE4udXNlVGhlbWUpKCksdT0oMCxyLnVzZU1lbW8pKCgoKT0+dC5tYXAoKGU9Pntjb25zdCB0PWUuaXRlbXMuZmluZCgodD0+IWUucG9zc2libGVWYWx1ZXMuc29tZSgoZT0+dC5yYXRpbmc9PT1lLnZhbHVlKSkpKTtyZXR1cm4gdCYmcS5sb2dFcnJvcihgSW5jb3JyZWN0IHZhbHVlICR7dC5yYXRpbmd9YCksey4uLmUsaXRlbXM6ZS5pdGVtcy5maWx0ZXIoKGU9PmUucmF0aW5nIT09dD8ucmF0aW5nKSl9fSkpKSxbdF0pLHtib3R0b21TY2FsZU5hbWVzOnAsbGluZXM6bSxwbGFjZWhvbGRlcnM6ZixjdXN0b21WZXJ0aWNhbFNjYWxlRm9ybWF0OnYsbGVmdFZlcnRpY2FsU2NhbGVPcHRpb25zOmd9PSgwLHIudXNlTWVtbykoKCgpPT5mdW5jdGlvbihlKXtjb25zdHtzZXJpZXM6dCx0aW1lUGVyaW9kRnVuY3Rpb25zOm4scGVyaW9kc0NvdW50OnIsc2hvcnRlblllYXI6byx0aGVtZTpsLHNob3dMZWdlbmQ6aX09ZTtpZigwPT09dC5sZW5ndGgpcmV0dXJue2JvdHRvbVNjYWxlTmFtZXM6W10sbGluZXM6W10scGxhY2Vob2xkZXJzOltdLGN1c3RvbVZlcnRpY2FsU2NhbGVGb3JtYXQ6KCk9PiIifTtjb25zdHt0aW1lc3RhbXBUb1BlcmlvZDpzLHBlcmlvZFRvVGltZXN0YW1wOnUscGVyaW9kVG9TdHJpbmc6Y309bixwPShuZXcgRGF0ZSkuZ2V0VGltZSgpLzFlMyxtPXMocCksZj1tLXIrMSx2PXUoZiksZz11KG0rMSksaD10Lm1hcCgoZT0+e2NvbnN0IHQ9bmV3IE1hcChlLnBvc3NpYmxlVmFsdWVzLm1hcCgoKGUsdCk9PltlLnZhbHVlLHRdKSkpLG49bmV3IE1hcChlLnBvc3NpYmxlVmFsdWVzLm1hcCgoZT0+W2UudmFsdWUsZS50aXRsZV0pKSk7bGV0IHI9Wy4uLmUuaXRlbXNdO3Iuc29ydCgoKGUsdCk9PmUuZGF0ZS10LmRhdGUpKTtsZXQgbz0wO2ZvcihsZXQgZT0wO2U8ci5sZW5ndGgmJihvPWUsIShyW2VdLmRhdGU+dikpO2UrKyk7bz4xJiYocj1yLnNsaWNlKG8tMSkpO2NvbnN0IGk9ZT0+KDAsYS5lbnN1cmVEZWZpbmVkKSh0LmdldChlKSkscz1lPT4oMCxhLmVuc3VyZURlZmluZWQpKG4uZ2V0KGUpKSx1PXIubWFwKChlPT5pKGUucmF0aW5nKSkpLGM9ci5sZW5ndGg+MD9pKHJbci5sZW5ndGgtMV0ucmF0aW5nKTpudWxsLGQ9ZS5jb2xvckNvbmZpZz97bGluZUNvbG9yOlEoZS5jb2xvckNvbmZpZy5saW5lQ29sb3IsbCksdmVydGljYWxTY2FsZUNlbGxDbGFzc05hbWU6ZS5jb2xvckNvbmZpZy52ZXJ0aWNhbFNjYWxlQ2VsbENsYXNzTmFtZSx0b29sdGlwTGFiZWxDbGFzc05hbWU6ZS5jb2xvckNvbmZpZy50b29sdGlwTGFiZWxDbGFzc05hbWV9OnZvaWQgMDtyZXR1cm57aXRlbXM6cixwb3NzaWJsZVZhbHVlczplLnBvc3NpYmxlVmFsdWVzLG91dGxvb2tUaXRsZXM6ZS5vdXRsb29rVGl0bGVzLGxhYmVsOmUubGFiZWwsY29sb3JzOmQsZ2V0TGV2ZWxCeVJhdGluZzppLGdldFRpdGxlQnlSYXRpbmc6cyxsZXZlbHM6dSxjdXJyZW50TGV2ZWw6Y319KSkseT1oWzBdLnBvc3NpYmxlVmFsdWVzLFM9W10sRT1bXTtoLmZvckVhY2goKGU9PntKKGUucG9zc2libGVWYWx1ZXMseSk/Uy5wdXNoKGUpOkUucHVzaChlKX0pKTtjb25zdCBDPUUubGVuZ3RoPjA7bmV3IFNldChoLm1hcCgoZT0+SlNPTi5zdHJpbmdpZnkoZS5wb3NzaWJsZVZhbHVlcykpKSkuc2l6ZT4yJiZxLmxvZ0Vycm9yKCJNb3JlIHRoYW4gMiBkaXN0aW5jdCBwb3NzaWJsZVZhbHVlcyBzZXRzIGFyZSBub3Qgc3VwcG9ydGVkIik7Y29uc3QgYj1TLmZsYXRNYXAoKGU9PmUubGV2ZWxzKSkseD1uZXcgU2V0O3guYWRkKE1hdGgubWluKC4uLmIpKSx4LmFkZChNYXRoLm1heCguLi5iKSksUy5mb3JFYWNoKChlPT57bnVsbCE9PWUuY3VycmVudExldmVsJiZ4LmFkZChlLmN1cnJlbnRMZXZlbCl9KSk7Y29uc3QgVD10ZSh7bGV2ZWxzOmIsY3VycmVudExldmVsOlNbMF0uY3VycmVudExldmVsLG1heFBvc3NpYmxlTGV2ZWw6eS5sZW5ndGgtMSxpbXBvcnRhbnRMZXZlbHM6eH0pLE49ZWUoe3NjYWxlTGV2ZWxzOlQscHJvY2Vzc2VkU2VyaWVzOlN9KTtsZXQgTCx3O2lmKEMpe2NvbnN0IGU9RVswXS5wb3NzaWJsZVZhbHVlcyx0PUUuZmxhdE1hcCgoZT0+ZS5sZXZlbHMpKSxuPW5ldyBTZXQ7bi5hZGQoTWF0aC5taW4oLi4udCkpLG4uYWRkKE1hdGgubWF4KC4uLnQpKSwKRS5mb3JFYWNoKChlPT57bnVsbCE9PWUuY3VycmVudExldmVsJiZuLmFkZChlLmN1cnJlbnRMZXZlbCl9KSksTD10ZSh7bGV2ZWxzOnQsY3VycmVudExldmVsOkVbMF0uY3VycmVudExldmVsLG1heFBvc3NpYmxlTGV2ZWw6ZS5sZW5ndGgtMSxpbXBvcnRhbnRMZXZlbHM6bn0pO2NvbnN0IHI9ZWUoe3NjYWxlTGV2ZWxzOkwscHJvY2Vzc2VkU2VyaWVzOkV9KTt3PXtjdXN0b21Gb3JtYXQ6WChMLGUscil9fWNvbnN0IE09W10sUD1bXTtoLmZvckVhY2goKGU9Pntjb25zdCB0PUMmJiFKKGUucG9zc2libGVWYWx1ZXMseSkmJkw/TDpULHI9ZnVuY3Rpb24oZSl7Y29uc3R7aXRlbXM6dCxzdGFydERhdGU6bixlbmREYXRlOnIsc2NhbGVMZXZlbHM6byxnZXRMZXZlbEJ5UmF0aW5nOmwsdGltZVBlcmlvZEZ1bmN0aW9uczppLHRoZW1lOmEsbGluZUNvbG9yOnN9PWUsdT1bXSxjPVtdO3QuZm9yRWFjaCgoKGUsZCk9Pntjb25zdCBwPXooZS5kYXRlLG4scixpKSxtPWZ1bmN0aW9uKGUsdCl7Y29uc3Qgbj10Lmxlbmd0aC0xLHI9dC5pbmRleE9mKGUpO2lmKC0xIT09cilyZXR1cm4gci9uO2ZvcihsZXQgcj0wO3I8dC5sZW5ndGgtMTtyKyspe2NvbnN0IG89dFtyXSxsPXRbcisxXTtpZihlPm8mJmU8bCl7cmV0dXJuKHIrKGUtbykvKGwtbykpL259fWlmKGU8PXRbMF0pcmV0dXJuIDA7cmV0dXJuIDF9KGwoZS5yYXRpbmcpLG8pLGY9W21dO2lmKGQ+MCYmZS5yYXRpbmchPT10W2QtMV0ucmF0aW5nKXtjb25zdCBlPXVbdS5sZW5ndGgtMV0ueTtmLnVuc2hpZnQoZSl9dS5wdXNoKC4uLmYubWFwKChlPT4oe3g6cCx5OmUscmFkaXVzOjB9KSkpKTtjb25zdHtvdXRsb29rOnZ9PWU7bnVsbCE9diYmYy5wdXNoKHt4OnAseTptLGNvbG9yOnN8fFIoYSksYm9yZGVyOkQoYSkscmFkaXVzOjYsZ2x5cGg6X1t2XX0pfSkpLHUubGVuZ3RoPjAmJnUucHVzaCh7eDp6KChuZXcgRGF0ZSkuZ2V0VGltZSgpLzFlMyxuLHIsaSkseTp1W3UubGVuZ3RoLTFdLnkscmFkaXVzOjB9KTtjb25zdCBkPWZ1bmN0aW9uKGUpe3JldHVybntsaW5lV2lkdGg6Mixjb2xvcjpBKGUpKCJjb2xvci1jb2xkLWdyYXktOTAwIiwiY29sb3ItY29sZC1ncmF5LTIwMCIpfX0oYSk7cmV0dXJue2xpbmU6e3BvaW50czp1LGxpbmVXaWR0aDpkLmxpbmVXaWR0aCxjb2xvcjpzfHxkLmNvbG9yfSxwb2ludHM6Y319KHtpdGVtczplLml0ZW1zLHN0YXJ0RGF0ZTp2LGVuZERhdGU6ZyxzY2FsZUxldmVsczp0LGdldExldmVsQnlSYXRpbmc6ZS5nZXRMZXZlbEJ5UmF0aW5nLHRpbWVQZXJpb2RGdW5jdGlvbnM6bix0aGVtZTpsLGxpbmVDb2xvcjplLmNvbG9ycz8ubGluZUNvbG9yfSk7TS5wdXNoKHIubGluZSksUC5wdXNoKC4uLnIucG9pbnRzKX0pKSxQLmxlbmd0aD4wJiZNLnB1c2goe3BvaW50czpQLGxpbmVXaWR0aDowLGNvbG9yOiJ0cmFuc3BhcmVudCJ9KTtyZXR1cm57Ym90dG9tU2NhbGVOYW1lczpZKGYsbSxjKS5tYXAoKGU9PigwLGQuZm9ybWF0UGVyaW9kKShlLHtzaG9ydGVuWWVhcjpvfSkpKSxsaW5lczpNLHBsYWNlaG9sZGVyczpqKHtwcm9jZXNzZWRTZXJpZXM6aCxtaW5QZXJpb2Q6ZixtYXhQZXJpb2Q6bSx0aW1lc3RhbXBUb1BlcmlvZDpzLHNob3dMZWdlbmQ6aX0pLGN1c3RvbVZlcnRpY2FsU2NhbGVGb3JtYXQ6WChULHksTiksbGVmdFZlcnRpY2FsU2NhbGVPcHRpb25zOnd9fSh7c2VyaWVzOnUsdGltZVBlcmlvZEZ1bmN0aW9uczp3W25dLHBlcmlvZHNDb3VudDpvLHNob3J0ZW5ZZWFyOmwsdGhlbWU6cyxzaG93TGVnZW5kOml9KSksW3UsbixvLGwscyxpXSk7cmV0dXJuIHIuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiQud3JhcH0sci5jcmVhdGVFbGVtZW50KGMuRGV0YWlsc0NoYXJ0LHtib3R0b21TY2FsZU5hbWVzOnAsc2VyaWVzQXJyYXk6ZixyaWdodFZlcnRpY2FsU2NhbGVPcHRpb25zOnt2aXNpYmxlOiEwLHZhbHVlVHlwZToibnVtYmVycyIsaXRlbUNsYXNzTmFtZTokLnZlcnRpY2FsU2NhbGVJdGVtLGN1c3RvbUZvcm1hdDp2fSxsZWZ0VmVydGljYWxTY2FsZU9wdGlvbnM6Zz97dmlzaWJsZTohMCx2YWx1ZVR5cGU6Im51bWJlcnMiLGl0ZW1DbGFzc05hbWU6JC52ZXJ0aWNhbFNjYWxlSXRlbSxjdXN0b21Gb3JtYXQ6Zy5jdXN0b21Gb3JtYXR9OnZvaWQgMCxob3Jpem9udGFsTGluZXNDb3VudDo2LG1pbmk6ITB9LHIuY3JlYXRlRWxlbWVudChoLHtsaW5lczptLHBhZGRpbmc6e3RvcDo2LGJvdHRvbTo2fX0pKSl9ZnVuY3Rpb24gWShlLHQsbil7Y29uc3Qgcj10LWUsbz1bXTtmb3IobGV0IHQ9MDt0PD1yO3QrKylvLnB1c2gobihlK3QpKTtyZXR1cm4gb31mdW5jdGlvbiB6KGUsdCxuLHIpe2NvbnN0e3RpbWVzdGFtcFRvUGVyaW9kOm8scGVyaW9kVG9UaW1lc3RhbXA6bH09cixpPW8odCksYT1vKG4pLHM9byhlKSx1PVooZSxsKHMpLGwocysxKSk7cmV0dXJuIFoocyt1LGksYSl9ZnVuY3Rpb24gaihlKXtjb25zdHtwcm9jZXNzZWRTZXJpZXM6dCxtaW5QZXJpb2Q6bixtYXhQZXJpb2Q6byx0aW1lc3RhbXBUb1BlcmlvZDpsLHNob3dMZWdlbmQ6aX09ZSxzPW8tbisxLHU9bmV3IEFycmF5KHMpLmZpbGwoMCk7dVsxXT01O2NvbnN0IGM9aT90LmZpbHRlcigoZT0+Qm9vbGVhbihlLmxhYmVsKSkpLm1hcCgoZT0+KHtuYW1lOmUubGFiZWwsbGVnZW5kQ29sb3I6ZS5jb2xvcnM/LmxpbmVDb2xvcix2YWx1ZXM6dSx0eXBlOiJoaWRkZW4iLHZhbHVlVHlwZToibnVtYmVycyIsYnVpbGRUb29sdGlwOigpPT5udWxsLHNob3dJbkxlZ2VuZDohMH0pKSk6W10sZD10Lm1hcCgoZT0+e2NvbnN0IHQ9bmV3IE1hcDtlLml0ZW1zLmZvckVhY2goKGU9Pntjb25zdCByPWwoZS5kYXRlKS1uO3QuaGFzKHIpfHx0LnNldChyLFtdKSwoMCxhLmVuc3VyZURlZmluZWQpKHQuZ2V0KHIpKS5wdXNoKGUpfSkpO2xldCByPW51bGw7Zm9yKGxldCB0PTA7dDxlLml0ZW1zLmxlbmd0aDt0Kyspe2NvbnN0IG89ZS5pdGVtc1t0XTtpZihsKG8uZGF0ZSk+PW4pYnJlYWs7cj1vfWNvbnN0IG89bmV3IE1hcDtmb3IobGV0IGU9MDtlPHM7ZSsrKXtjb25zdCBuPXQuZ2V0KGUpO24/cj1uW24ubGVuZ3RoLTFdOnImJm8uc2V0KGUscil9cmV0dXJue2NvbHVtbkluZGV4VG9JdGVtczp0LAplbXB0eUNvbHVtbkluZGV4VG9QcmV2SXRlbTpvfX0pKTtyZXR1cm5be25hbWU6InBsYWNlaG9sZGVycyIsdmFsdWVzOnUsdHlwZToiaGlkZGVuIix2YWx1ZVR5cGU6Im51bWJlcnMiLHNob3dJbkxlZ2VuZDohMSxidWlsZFRvb2x0aXA6KGUsbixvKT0+e2NvbnN0IGw9W107cmV0dXJuIGQuc29tZSgoZT0+ZS5jb2x1bW5JbmRleFRvSXRlbXMuaGFzKG8pKSk/KGQuZm9yRWFjaCgoKGUsbik9Pntjb25zdCBpPWUuY29sdW1uSW5kZXhUb0l0ZW1zLmdldChvKSxhPXRbbl07aSYmaS5mb3JFYWNoKCgoZSx0KT0+e2wubGVuZ3RoPjAmJjA9PT10JiZsLnB1c2goe3RpdGxlOnIuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiQudG9vbHRpcERpdmlkZXJ9KSxmdWxsV2lkdGg6ITB9KSxsLnB1c2goLi4uSyh7aXRlbTplLHJhdGluZ1RvVGl0bGU6YS5nZXRUaXRsZUJ5UmF0aW5nLG91dGxvb2tUaXRsZXM6YS5vdXRsb29rVGl0bGVzLGxhYmVsOmEubGFiZWwsbGFiZWxDbGFzc05hbWU6YS5jb2xvcnM/LnRvb2x0aXBMYWJlbENsYXNzTmFtZX0pKSx0PGkubGVuZ3RoLTEmJmwucHVzaCh7dGl0bGU6ci5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6JC50b29sdGlwRGl2aWRlcn0pLGZ1bGxXaWR0aDohMH0pfSkpfSkpLGwpOihkLmZvckVhY2goKChlLG4pPT57Y29uc3QgaT1lLmVtcHR5Q29sdW1uSW5kZXhUb1ByZXZJdGVtLmdldChvKTtpZihpKXtsLmxlbmd0aD4wJiZsLnB1c2goe3RpdGxlOnIuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiQudG9vbHRpcERpdmlkZXJ9KSxmdWxsV2lkdGg6ITB9KTtjb25zdCBlPXRbbl07bC5wdXNoKC4uLksoe2l0ZW06aSxyYXRpbmdUb1RpdGxlOmUuZ2V0VGl0bGVCeVJhdGluZyxvdXRsb29rVGl0bGVzOmUub3V0bG9va1RpdGxlcyxpc1ByZXY6ITAsbGFiZWw6ZS5sYWJlbCxsYWJlbENsYXNzTmFtZTplLmNvbG9ycz8udG9vbHRpcExhYmVsQ2xhc3NOYW1lfSkpfX0pKSxsLmxlbmd0aD4wP2w6bnVsbCl9fSwuLi5jXX1mdW5jdGlvbiBLKGUpe2NvbnN0e2l0ZW06dCxyYXRpbmdUb1RpdGxlOm8sb3V0bG9va1RpdGxlczphLGlzUHJldjp1PSExLGxhYmVsOmMsbGFiZWxDbGFzc05hbWU6ZH09ZSxtPVtdO2MmJm0ucHVzaCh7dGl0bGU6ci5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6JC50b29sdGlwSGVhZGVyfSxyLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6bCgpKCQudG9vbHRpcFRleHQsJC50b29sdGlwSGVhZGVyVGV4dCxkKX0sYykpLGZ1bGxXaWR0aDohMH0pO2NvbnN0IGY9dT8iZGQgTU1NICd5eSI6ImRkIE1NTSIsdj1zLmRhdGVGb3JtYXRGdW5jdGlvbnNbZl0obmV3IERhdGUoMWUzKnQuZGF0ZSksITApLGc9dT9pLnQobnVsbCx7cmVwbGFjZTp7ZGF0ZTp2fSxjb250ZXh0OiJyYXRpbmcgY2hhcnQgdG9vbHRpcCJ9LG4oOTk2MjA0KSk6dixoPSgwLHAuZm9yY2VMVFJTdHIpKG8odC5yYXRpbmcpKTttLnB1c2goe3RpdGxlOnIuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiQudG9vbHRpcFRleHR9LGcpLHZhbHVlOnIuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiQudG9vbHRpcFRleHR9LGgpfSk7Y29uc3R7b3V0bG9vazp5fT10O3JldHVybiBudWxsIT15JiZtLnB1c2goe3RpdGxlOnIuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiQudG9vbHRpcFRleHR9LGkudChudWxsLHtjb250ZXh0OiJyYXRpbmcgY2hhcnQgdG9vbHRpcCJ9LG4oNTQ0OTgwKSkpLHZhbHVlOnIuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiQudG9vbHRpcFRleHR9LHIuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZTokLnRvb2x0aXBPdXRsb29rfSxyLmNyZWF0ZUVsZW1lbnQoSCx7b3V0bG9vazp5fSksYVt5XSkpfSksbX1mdW5jdGlvbiBYKGUsdCxuKXtjb25zdCBvPW5ldyBNYXAodC5tYXAoKChlLHQpPT5bdCxlLnRpdGxlXSkpKTtyZXR1cm4gdD0+e2NvbnN0IGw9ZVt0XTtpZih2b2lkIDA9PT1sKXJldHVybiLCoCI7Y29uc3QgaT1vLmdldChsKXx8IsKgIixhPW4/Llt0XTtyZXR1cm4gYSYmMCE9PWEubGVuZ3RoPzI9PT1hLmxlbmd0aD9yLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTokLnN0YWNrZWRDb250YWluZXJ9LHIuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZTpbJC5jb2xvcmVkVmFsdWUsJC5zdGFja2VkVG9wLGFbMF1dLmpvaW4oIiAiKX0saSksci5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOlskLmNvbG9yZWRWYWx1ZSwkLnN0YWNrZWRCb3R0b20sYVsxXV0uam9pbigiICIpfSxpKSk6ci5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOlskLmNvbG9yZWRWYWx1ZSxhW2EubGVuZ3RoLTFdXS5qb2luKCIgIil9LGkpOml9fWZ1bmN0aW9uIFooZSx0LG4pe3JldHVybihlLXQpLyhuLXQpfWZ1bmN0aW9uIFEoZSx0KXtpZihlKXJldHVybiBBcnJheS5pc0FycmF5KGUpP3Q9PT1tLlN0ZFRoZW1lLkxpZ2h0P2VbMF06ZVsxXTplfWZ1bmN0aW9uIEooZSx0KXtyZXR1cm4gZS5sZW5ndGg9PT10Lmxlbmd0aCYmZS5ldmVyeSgoKGUsbik9PmUudmFsdWU9PT10W25dLnZhbHVlJiZlLnRpdGxlPT09dFtuXS50aXRsZSkpfWZ1bmN0aW9uIGVlKGUpe2NvbnN0e3NjYWxlTGV2ZWxzOnQscHJvY2Vzc2VkU2VyaWVzOm59PWU7cmV0dXJuIHQubWFwKChlPT5uLmZpbHRlcigodD0+dC5jdXJyZW50TGV2ZWw9PT1lJiZ0LmNvbG9ycykpLm1hcCgoZT0+ZS5jb2xvcnM/LnZlcnRpY2FsU2NhbGVDZWxsQ2xhc3NOYW1lfHwiIikpLmZpbHRlcihCb29sZWFuKSkpfWZ1bmN0aW9uIHRlKGUpe2NvbnN0e2xldmVsczp0LGN1cnJlbnRMZXZlbDpuLG1heFBvc3NpYmxlTGV2ZWw6cixpbXBvcnRhbnRMZXZlbHM6b309ZTtpZigwPT09dC5sZW5ndGgpcmV0dXJuW107Y29uc3QgbD1NYXRoLm1pbiguLi50KSxpPU1hdGgubWF4KC4uLnQpLGE9bz8/bmV3IFNldDthLmFkZChsKSxhLmFkZChpKSxudWxsIT09biYmYS5hZGQobiksbD4wJiZhLmFkZChsLTEpLGk8ciYmYS5hZGQoaSsxKQo7Y29uc3Qgcz1BcnJheS5mcm9tKGEpLnNvcnQoKChlLHQpPT5lLXQpKSx1PXNbMF0sYz1zW3MubGVuZ3RoLTFdLGQ9Yy11LHA9Wy4uLnNdO2lmKHAubGVuZ3RoPDYmJmQ+MCl7Y29uc3QgZT1NYXRoLmNlaWwoZC81KTtmb3IobGV0IHQ9dTt0PD1jO3QrPWUpcC5pbmNsdWRlcyh0KXx8cC5wdXNoKHQpO2ZvcihwLnNvcnQoKChlLHQpPT5lLXQpKTtwLmxlbmd0aD42Oylmb3IobGV0IGU9cC5sZW5ndGgtMjtlPj0xO2UtLSlpZighYS5oYXMocFtlXSkpe3Auc3BsaWNlKGUsMSk7YnJlYWt9fWNvbnN0IG09ZD4wP01hdGguY2VpbChkLzUpOjE7bGV0IGY9ITA7Zm9yKDtwLmxlbmd0aDw2Oyl7Y29uc3QgZT1wWzBdLW0sdD1wW3AubGVuZ3RoLTFdK20sbj1lPj0wLG89dDw9cjtpZighbiYmIW8pYnJlYWs7IW58fCFmJiZvP28mJihwLnB1c2godCksZj0hMCk6KHAudW5zaGlmdChlKSxmPSExKX1mb3IoO3AubGVuZ3RoPDY7KXtsZXQgZT0wLHQ9LTE7Zm9yKGxldCBuPTA7bjxwLmxlbmd0aC0xO24rKyl7Y29uc3Qgcj1wW24rMV0tcFtuXTtyPmUmJihlPXIsdD1uKX1pZihlPD0xKWJyZWFrO2NvbnN0IG49TWF0aC5mbG9vcigocFt0XStwW3QrMV0pLzIpO3Auc3BsaWNlKHQrMSwwLG4pfXJldHVybiBwfX0sNDQ2MTI5KGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse2dldFJlZ2lvblRpdGxlTWFwOigpPT5vLHJlZ2lvblNldDooKT0+aSxyZWdpb25zOigpPT5sfSk7dmFyIHI9bigxODUyNzEpO2Z1bmN0aW9uIG8oKXtyZXR1cm57QXNpYTpyLnQobnVsbCx2b2lkIDAsbig2ODkxODIpKSxFdXJvcGU6ci50KG51bGwsdm9pZCAwLG4oOTUyMzY3KSksQWZyaWNhOnIudChudWxsLHZvaWQgMCxuKDY1MDM0NCkpLCJMYXRpbiBBbWVyaWNhIjpyLnQobnVsbCx2b2lkIDAsbig3MTk1MzYpKSwiTWlkZGxlIEVhc3QiOnIudChudWxsLHZvaWQgMCxuKDY4NTc1MSkpLCJOb3J0aCBBbWVyaWNhIjpyLnQobnVsbCx2b2lkIDAsbig2ODk3MTYpKSxQYWNpZmljOnIudChudWxsLHZvaWQgMCxuKDEzMDc5MikpfX1jb25zdCBsPVsiTm9ydGggQW1lcmljYSIsIkxhdGluIEFtZXJpY2EiLCJFdXJvcGUiLCJBc2lhIiwiQWZyaWNhIiwiTWlkZGxlIEVhc3QiLCJQYWNpZmljIl0saT1uZXcgU2V0KGwpfSw5MDExNihlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHt1c2VBc3NldFR5cGVFeHBvc3VyZUFyY0NvbG9yR2V0dGVyOigpPT5sfSk7dmFyIHI9big3Nzk0NzQpLG89big5ODA2MTEpO2Z1bmN0aW9uIGwoZSl7cmV0dXJuKDAsci51c2VDYWxsYmFjaykoKHQ9Pntjb25zdHtjaXJjbGVJbmRleDpuLGFyY0luZGV4OnJ9PXQse2dyb3VwTmFtZTpsfT1lW25dW3JdO3JldHVybigwLG8uZ2V0QXNzZXRUeXBlRXhwb3N1cmVDb2xvckJ5R3JvdXBOYW1lKShsKX0pLFtlXSl9fSwzNDczNTIoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7dXNlQXNzZXRUeXBlRXhwb3N1cmVEaXNwbGF5RGF0YTooKT0+cH0pO3ZhciByPW4oNzc5NDc0KSxvPW4oMTM4NjM4KSxsPW4oMjAzNjgxKSxpPW4oMTg1MjcxKSxhPW4oNjQwNzQ0KTtjb25zdCBzPW5ldyBNYXAoW1siQ29tbWVyY2lhbCBTZXJ2aWNlcyIsKCk9PmkudChudWxsLHZvaWQgMCxuKDQzNzcwMSkpXSxbIkNvbW11bmljYXRpb25zIiwoKT0+aS50KG51bGwsdm9pZCAwLG4oODU4MTgpKV0sWyJDb25zdW1lciBEdXJhYmxlcyIsKCk9PmkudChudWxsLHZvaWQgMCxuKDc1NDg0MykpXSxbIkNvbnN1bWVyIE5vbi1EdXJhYmxlcyIsKCk9PmkudChudWxsLHZvaWQgMCxuKDU1NjQ3NSkpXSxbIkNvbnN1bWVyIFNlcnZpY2VzIiwoKT0+aS50KG51bGwsdm9pZCAwLG4oMTUyODA4KSldLFsiRGlzdHJpYnV0aW9uIFNlcnZpY2VzIiwoKT0+aS50KG51bGwsdm9pZCAwLG4oMTcxMzQyKSldLFsiRWxlY3Ryb25pYyBUZWNobm9sb2d5IiwoKT0+aS50KG51bGwsdm9pZCAwLG4oNzU5NjE1KSldLFsiRW5lcmd5IE1pbmVyYWxzIiwoKT0+aS50KG51bGwsdm9pZCAwLG4oNTYwMzg5KSldLFsiRmluYW5jZSIsKCk9PmkudChudWxsLHZvaWQgMCxuKDQ2MjE5MykpXSxbIkdvdmVybm1lbnQiLCgpPT5pLnQobnVsbCx2b2lkIDAsbig3ODMzMTgpKV0sWyJIZWFsdGggU2VydmljZXMiLCgpPT5pLnQobnVsbCx2b2lkIDAsbig2MjA2MDEpKV0sWyJIZWFsdGggVGVjaG5vbG9neSIsKCk9PmkudChudWxsLHZvaWQgMCxuKDQxODQ1NykpXSxbIkluZHVzdHJpYWwgU2VydmljZXMiLCgpPT5pLnQobnVsbCx2b2lkIDAsbig5OTk1NjApKV0sWyJNaXNjZWxsYW5lb3VzIiwoKT0+aS50KG51bGwsdm9pZCAwLG4oMTU3MDIzKSldLFsiTm9uLUVuZXJneSBNaW5lcmFscyIsKCk9PmkudChudWxsLHZvaWQgMCxuKDU5MjUzOCkpXSxbIlByb2Nlc3MgSW5kdXN0cmllcyIsKCk9PmkudChudWxsLHZvaWQgMCxuKDgyMDY5OCkpXSxbIlByb2R1Y2VyIE1hbnVmYWN0dXJpbmciLCgpPT5pLnQobnVsbCx2b2lkIDAsbig1Mjc2NDApKV0sWyJSZXRhaWwgVHJhZGUiLCgpPT5pLnQobnVsbCx2b2lkIDAsbig1OTAwNjYpKV0sWyJUZWNobm9sb2d5IFNlcnZpY2VzIiwoKT0+aS50KG51bGwsdm9pZCAwLG4oNjQwOTUzKSldLFsiVHJhbnNwb3J0YXRpb24iLCgpPT5pLnQobnVsbCx2b2lkIDAsbig3NjgzOTApKV0sWyJVdGlsaXRpZXMiLCgpPT5pLnQobnVsbCx2b2lkIDAsbig4OTExMzYpKV0sWyJBZ2VuY3kiLCgpPT5pLnQobnVsbCx2b2lkIDAsbigyNTA3MjEpKV0sWyJDYXNoIiwoKT0+aS50KG51bGwsdm9pZCAwLG4oOTU0ODMwKSldLFsiQ29ycG9yYXRlIiwoKT0+aS50KG51bGwsdm9pZCAwLG4oNTAwMzkpKV0sWyJNdW5pY2lwYWwiLCgpPT5pLnQobnVsbCx2b2lkIDAsbig5NTA5MTUpKV0sWyJNdXR1YWwgZnVuZCIsKCk9PmkudChudWxsLHZvaWQgMCxuKDk0MDk4NikpXSxbIlN0cnVjdHVyZWQiLCgpPT5pLnQobnVsbCx2b2lkIDAsbigyNTU2MjIpKV1dKTtmdW5jdGlvbiB1KGUpe2NvbnN0IHQ9cy5nZXQoZSk7cmV0dXJuIHZvaWQgMCE9PXQ/dCgpOmV9dmFyIGM9big3NTU2MjcpLGQ9big5NjkxNjgpO2Z1bmN0aW9uIHAoZSl7cmV0dXJuKDAsci51c2VNZW1vKSgoKCk9Pntjb25zdCB0PW5ldyBjLlByaWNlRm9ybWF0dGVyKHtwcmljZVNjYWxlOjEwMAp9KSxuPWcoZSwhMCkscj1uLm1hcCgoKGUscik9Pih7bmFtZTplLm5hbWUsY291bnQ6Mj09PW4ubGVuZ3RoP20oZSxuWzFecl0pOmUud2VpZ2h0LGN1c3RvbVRvb2x0aXA6e2NvdW50OnYoZS53ZWlnaHQsdCkscGVyY2VudHM6bnVsbH0saW5uZXJUZXh0OmUubmFtZSxoaWRlTGFiZWw6ITAsZ3JvdXBOYW1lOmUuZ3JvdXBOYW1lfSkpKSxsPVtdO24uZm9yRWFjaCgoZT0+e2NvbnN0IG49KDAsby5lbnN1cmVEZWZpbmVkKSgoMCxvLmVuc3VyZU5vdE51bGwpKGUuc3VidHlwZXMpKSxyPW4ubWFwKChlPT5lLndlaWdodCkpLGk9ZnVuY3Rpb24oZSx0LG4pe2NvbnN0IHI9dC5sZW5ndGgqbixvPWUtcjtpZihvPDApcmV0dXJuIG5ldyBBcnJheSh0Lmxlbmd0aCkuZmlsbChuKTtjb25zdCBsPXQucmVkdWNlKCgoZSx0KT0+ZSt0KSwwKTtyZXR1cm4gdC5tYXAoKGU9PmUvbCpvK24pKX0oZS53ZWlnaHQsciwuNik7bC5wdXNoKC4uLm4ubWFwKCgobixyKT0+KHtuYW1lOnUobi5uYW1lKSxjb3VudDppW3JdLGN1c3RvbVRvb2x0aXA6e2NvdW50OnYobi53ZWlnaHQsdCkscGVyY2VudHM6bnVsbH0saGlkZUxhYmVsOm4ud2VpZ2h0PDEwLGdyb3VwTmFtZTplLmdyb3VwTmFtZX0pKSkpfSkpO2NvbnN0IGk9ZyhlLCExKS5tYXAoKGU9Plt7dGl0bGU6dShlLm5hbWUpLHZhbHVlOmYoZS53ZWlnaHQsdCksZ3JvdXBOYW1lOmUuZ3JvdXBOYW1lfSwuLi4oMCxvLmVuc3VyZURlZmluZWQpKCgwLG8uZW5zdXJlTm90TnVsbCkoZS5zdWJ0eXBlcykpLm1hcCgobj0+KHt0aXRsZTp1KG4ubmFtZSksdmFsdWU6ZihuLndlaWdodCx0KSxncm91cE5hbWU6ZS5ncm91cE5hbWV9KSkpXSkpO3JldHVybltbbCxyXSxpXX0pLFtlXSl9ZnVuY3Rpb24gbShlLHQpe2NvbnN0IG49KDAsby5lbnN1cmVEZWZpbmVkKSgoMCxvLmVuc3VyZU5vdE51bGwpKGUuc3VidHlwZXMpKSxyPSgwLG8uZW5zdXJlRGVmaW5lZCkoKDAsby5lbnN1cmVOb3ROdWxsKSh0LnN1YnR5cGVzKSk7cmV0dXJuKDAsYS5jbGFtcCkoLjYqbi5sZW5ndGgsZS53ZWlnaHQsMTAwLS42KnIubGVuZ3RoKX1mdW5jdGlvbiBmKGUsdCl7cmV0dXJuIHQuZm9ybWF0KGUpfWZ1bmN0aW9uIHYoZSx0KXtyZXR1cm4oMCxkLmZvcmNlTFRSU3RyKShmKGUsdCkrIiUiKX1mdW5jdGlvbiBnKGUsdCl7Y29uc3Qgcj10P2UubWFwKChlPT4oey4uLmUsc3VidHlwZXM6ZS5zdWJ0eXBlcz8uZmlsdGVyKChlPT5lLndlaWdodD4wKSl9KSkpLmZpbHRlcigoZT0+ZS53ZWlnaHQ+MCYmZS5zdWJ0eXBlcyYmZS5zdWJ0eXBlcy5sZW5ndGg+MCkpOmU7Y29uc3QgYT1bXSxzPWkudChudWxsLHZvaWQgMCxuKDYzNjk5NCkpO2xldCB1PXtuYW1lOnMsc3VidHlwZXM6W10sd2VpZ2h0OjAsZ3JvdXBOYW1lOnN9O2lmKHIuZm9yRWFjaCgoZT0+eyJTdG9jayI9PT1lLm5hbWU/YS5wdXNoKHsuLi5lLG5hbWU6aS50KG51bGwsdm9pZCAwLG4oNTIyMDE0KSksZ3JvdXBOYW1lOiJTdG9jayJ9KTp1PXsuLi51LHdlaWdodDp1LndlaWdodCtlLndlaWdodCxzdWJ0eXBlczpbLi4uKDAsbC5kZWZhdWx0KSgoMCxvLmVuc3VyZURlZmluZWQpKCgwLG8uZW5zdXJlTm90TnVsbCkodS5zdWJ0eXBlcykpKSwuLi4oMCxsLmRlZmF1bHQpKCgwLG8uZW5zdXJlRGVmaW5lZCkoKDAsby5lbnN1cmVOb3ROdWxsKShlLnN1YnR5cGVzKSkpXX19KSksKCF0fHx1LndlaWdodD4wKSYmKCgwLG8uZW5zdXJlRGVmaW5lZCkoKDAsby5lbnN1cmVOb3ROdWxsKSh1LnN1YnR5cGVzKSkuc29ydCgoKGUsdCk9PnQud2VpZ2h0LWUud2VpZ2h0KSksYS5wdXNoKHUpKSwhdClyZXR1cm4gYTtjb25zdCBjPXIucmVkdWNlKCgoZSx0KT0+ZSt0LndlaWdodCksMCk7cmV0dXJuIGM+MTAwJiZhLmZvckVhY2goKGU9PntlLndlaWdodD1lLndlaWdodC9jKjEwMCwoMCxvLmVuc3VyZURlZmluZWQpKCgwLG8uZW5zdXJlTm90TnVsbCkoZS5zdWJ0eXBlcykpLmZvckVhY2goKGU9PntlLndlaWdodD1lLndlaWdodC9jKjEwMH0pKX0pKSxhfX0sMzMzNzgyKGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse3VzZVJlZ2lvbkNoYXJ0RGF0YTooKT0+bH0pO3ZhciByPW4oNzc5NDc0KSxvPW4oNDQ2MTI5KTtmdW5jdGlvbiBsKGUpe3JldHVybigwLHIudXNlTWVtbykoKCgpPT57aWYoIWUpcmV0dXJuWyExLFtdXTtjb25zdCB0PWZ1bmN0aW9uKGUpe2NvbnN0IHQ9ZS5maWx0ZXIoKGU9Pm8ucmVnaW9uU2V0LmhhcyhlLm5hbWUpKSksbj10LnJlZHVjZSgoKGUsdCk9PmUrdC53ZWlnaHQpLDApLHI9dC5tYXAoKGU9Pih7bmFtZTplLm5hbWUsd2VpZ2h0OmUud2VpZ2h0L24qMTAwfSkpKTtyZXR1cm4gby5yZWdpb25zLm1hcCgoZT0+e2NvbnN0IHQ9ci5maW5kKCh0PT50Lm5hbWU9PT1lKSk7cmV0dXJuIHQ/e25hbWU6dC5uYW1lLHdlaWdodDp0LndlaWdodH06e25hbWU6ZSx3ZWlnaHQ6MH19KSkuc29ydChpKX0oZSk7cmV0dXJuW3Quc29tZSgoZT0+MCE9PWUud2VpZ2h0KSksdF19KSxbZV0pfWZ1bmN0aW9uIGkoZSx0KXtyZXR1cm4gdC53ZWlnaHQtZS53ZWlnaHR9fSw5ODA2MTEoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7Z2V0QXNzZXRUeXBlRXhwb3N1cmVDb2xvckJ5R3JvdXBOYW1lOigpPT5vfSk7dmFyIHI9big1MDU1Nik7ZnVuY3Rpb24gbyhlKXtyZXR1cm4gci5jb2xvcnNQYWxldHRlWyJTdG9jayI9PT1lPyJjb2xvci10YW4tb3JhbmdlLWE0MDAiOiJjb2xvci1kZWVwLWJsdWUtYTIwMCJdfX0sMTQ3NzMzKGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse2dldFRyYW5zbGF0ZUZyZXF1ZW5jeTooKT0+aX0pO3ZhciByLG89bigxODUyNzEpOyFmdW5jdGlvbihlKXtlLkFubnVhbD0iYW5udWFsIixlLlF1YXJ0ZXJseT0icXVhcnRlcmx5IixlLkRhaWx5PSJkYWlseSIsZS5XZWVrbHk9IndlZWtseSIsZS5Nb250aGx5PSJtb250aGx5IixlLlBheXNBdE1hdHVyaXR5PSJwYXlzLWF0LW1hdHVyaXR5IixlLlNlbWlBbm51YWw9InNlbWktYW5udWFsIixlLk9uRWZmZWN0aXZlUG10RGF0ZT0ib24tZWZmZWN0aXZlLXBtdC1kYXRlIixlLk9uQXBlcmlvZGljU2NoZWR1bGU9Im9uLWFwZXJpb2RpYy1zY2hlZHVsZSIsZS5FdmVyeTRNb250aHM9ImV2ZXJ5LTQtbW9udGhzIiwKZS5FdmVyeTI4RGF5cz0iZXZlcnktMjgtZGF5cyIsZS5FdmVyeTJZZWFycz0iZXZlcnktMi15ZWFycyIsZS5FdmVyeTRZZWFycz0iZXZlcnktNC15ZWFycyIsZS5FdmVyeTVZZWFycz0iZXZlcnktNS15ZWFycyIsZS5FdmVyeTJNb250aHM9ImV2ZXJ5LTItbW9udGhzIixlLkV2ZXJ5M1llYXJzPSJldmVyeS0zLXllYXJzIn0ocnx8KHI9e30pKTtjb25zdCBsPW5ldyBNYXAoW1tyLkFubnVhbCwoKT0+by50KG51bGwse2NvbnRleHQ6ImNvdXBvbl9mcmVxdWVuY3kifSxuKDgyOTQxMCkpXSxbci5RdWFydGVybHksKCk9Pm8udChudWxsLHtjb250ZXh0OiJjb3Vwb25fZnJlcXVlbmN5In0sbigzNTc0MzUpKV0sW3IuRGFpbHksKCk9Pm8udChudWxsLHtjb250ZXh0OiJjb3Vwb25fZnJlcXVlbmN5In0sbig0MjAzMzQpKV0sW3IuV2Vla2x5LCgpPT5vLnQobnVsbCx7Y29udGV4dDoiY291cG9uX2ZyZXF1ZW5jeSJ9LG4oNzgzMjMyKSldLFtyLk1vbnRobHksKCk9Pm8udChudWxsLHtjb250ZXh0OiJjb3Vwb25fZnJlcXVlbmN5In0sbigzODg4MjEpKV0sW3IuUGF5c0F0TWF0dXJpdHksKCk9Pm8udChudWxsLHtjb250ZXh0OiJjb3Vwb25fZnJlcXVlbmN5In0sbig3MTExNTYpKV0sW3IuU2VtaUFubnVhbCwoKT0+by50KG51bGwse2NvbnRleHQ6ImNvdXBvbl9mcmVxdWVuY3kifSxuKDgwOTk0NikpXSxbci5PbkVmZmVjdGl2ZVBtdERhdGUsKCk9Pm8udChudWxsLHtjb250ZXh0OiJjb3Vwb25fZnJlcXVlbmN5In0sbigxODA4NjcpKV0sW3IuT25BcGVyaW9kaWNTY2hlZHVsZSwoKT0+by50KG51bGwse2NvbnRleHQ6ImNvdXBvbl9mcmVxdWVuY3kifSxuKDQzMDkwKSldLFtyLkV2ZXJ5MjhEYXlzLCgpPT5vLnQobnVsbCx7cGx1cmFsOiJFdmVyeSB7Y291bnR9IGRheXMiLGNvdW50OjI4LGNvbnRleHQ6ImNvdXBvbl9mcmVxdWVuY3kifSxuKDYwMjY5MikpXSxbci5FdmVyeTJZZWFycywoKT0+by50KG51bGwse3BsdXJhbDoiRXZlcnkge2NvdW50fSB5ZWFycyIsY291bnQ6Mixjb250ZXh0OiJjb3Vwb25fZnJlcXVlbmN5In0sbig5NTA5MjcpKV0sW3IuRXZlcnkzWWVhcnMsKCk9Pm8udChudWxsLHtwbHVyYWw6IkV2ZXJ5IHtjb3VudH0geWVhcnMiLGNvdW50OjMsY29udGV4dDoiY291cG9uX2ZyZXF1ZW5jeSJ9LG4oOTUwOTI3KSldLFtyLkV2ZXJ5NFllYXJzLCgpPT5vLnQobnVsbCx7cGx1cmFsOiJFdmVyeSB7Y291bnR9IHllYXJzIixjb3VudDo0LGNvbnRleHQ6ImNvdXBvbl9mcmVxdWVuY3kifSxuKDk1MDkyNykpXSxbci5FdmVyeTVZZWFycywoKT0+by50KG51bGwse3BsdXJhbDoiRXZlcnkge2NvdW50fSB5ZWFycyIsY291bnQ6NSxjb250ZXh0OiJjb3Vwb25fZnJlcXVlbmN5In0sbig5NTA5MjcpKV0sW3IuRXZlcnkyTW9udGhzLCgpPT5vLnQobnVsbCx7cGx1cmFsOiJFdmVyeSB7Y291bnR9IG1vbnRocyIsY291bnQ6Mixjb250ZXh0OiJjb3Vwb25fZnJlcXVlbmN5In0sbigxODg5NjMpKV0sW3IuRXZlcnk0TW9udGhzLCgpPT5vLnQobnVsbCx7cGx1cmFsOiJFdmVyeSB7Y291bnR9IG1vbnRocyIsY291bnQ6NCxjb250ZXh0OiJjb3Vwb25fZnJlcXVlbmN5In0sbigxODg5NjMpKV1dKTtmdW5jdGlvbiBpKGUpe3JldHVybiBsLmdldChlKT8uKCl9fSwzNDEyNzYoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7Qk9ORF9JU1NVRVJfTE9OR19QT1NTSUJMRV9WQUxVRVM6KCk9PnIsQk9ORF9JU1NVRVJfU0hPUlRfUE9TU0lCTEVfVkFMVUVTOigpPT5vLEZJVENIX0lTU1VFUl9TSE9SVF9QT1NTSUJMRV9WQUxVRVM6KCk9Pmx9KTtjb25zdCByPVt7dmFsdWU6NTAwLHRpdGxlOiJOUiJ9LHt2YWx1ZTo1MzAsdGl0bGU6IkQifSx7dmFsdWU6NTQwLHRpdGxlOiJTRCJ9LHt2YWx1ZTo1NTAsdGl0bGU6IkMifSx7dmFsdWU6NTYwLHRpdGxlOiJDQyJ9LHt2YWx1ZTo1NzAsdGl0bGU6IkNDQy0ifSx7dmFsdWU6NTgwLHRpdGxlOiJDQ0MifSx7dmFsdWU6NTkwLHRpdGxlOiJDQ0MrIn0se3ZhbHVlOjYwMCx0aXRsZToiQi0ifSx7dmFsdWU6NjEwLHRpdGxlOiJCIn0se3ZhbHVlOjYyMCx0aXRsZToiQisifSx7dmFsdWU6NjMwLHRpdGxlOiJCQi0ifSx7dmFsdWU6NjQwLHRpdGxlOiJCQiJ9LHt2YWx1ZTo2NTAsdGl0bGU6IkJCKyJ9LHt2YWx1ZTo2NjAsdGl0bGU6IkJCQi0ifSx7dmFsdWU6NjcwLHRpdGxlOiJCQkIifSx7dmFsdWU6NjgwLHRpdGxlOiJCQkIrIn0se3ZhbHVlOjY5MCx0aXRsZToiQS0ifSx7dmFsdWU6NzAwLHRpdGxlOiJBIn0se3ZhbHVlOjcxMCx0aXRsZToiQSsifSx7dmFsdWU6NzIwLHRpdGxlOiJBQS0ifSx7dmFsdWU6NzMwLHRpdGxlOiJBQSJ9LHt2YWx1ZTo3NDAsdGl0bGU6IkFBKyJ9LHt2YWx1ZTo3NTAsdGl0bGU6IkFBQSJ9XSxvPVt7dGl0bGU6Ik5SIix2YWx1ZTo1MDB9LHt0aXRsZToiRCIsdmFsdWU6NTMwfSx7dGl0bGU6IlNEIix2YWx1ZTo1NDB9LHt0aXRsZToiQyIsdmFsdWU6NTcwfSx7dGl0bGU6IkItMyIsdmFsdWU6NTkwfSx7dGl0bGU6IkItMiIsdmFsdWU6NjAwfSx7dGl0bGU6IkIiLHZhbHVlOjYxMH0se3RpdGxlOiJCLTEiLHZhbHVlOjYzMH0se3RpdGxlOiJBLTMiLHZhbHVlOjY2MH0se3RpdGxlOiJBLTIiLHZhbHVlOjY4MH0se3RpdGxlOiJBLTEiLHZhbHVlOjcwMH0se3RpdGxlOiJBLTErIix2YWx1ZTo3MzB9XSxsPVt7dGl0bGU6Ik5SIix2YWx1ZTo1MDB9LHt0aXRsZToiRCIsdmFsdWU6NTQwfSx7dGl0bGU6IkMiLHZhbHVlOjU3MH0se3RpdGxlOiJCIix2YWx1ZTo2MTB9LHt0aXRsZToiRjMiLHZhbHVlOjY2MH0se3RpdGxlOiJGMiIsdmFsdWU6NjgwfSx7dGl0bGU6IkYxIix2YWx1ZTo3MDB9LHt0aXRsZToiRjErIix2YWx1ZTo3MzB9XX0sMTY3MTg2KGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse2Zvcm1hdERheXNUb01hdHVyaXR5OigpPT5zfSk7dmFyIHI9bigxODUyNzEpLG89big0MDIzOSk7Y29uc3QgbD1lPT5yLnQobnVsbCx7cGx1cmFsOiJ7bnVtYmVyfSBkYXlzIixjb3VudDplLHJlcGxhY2U6e251bWJlcjplLnRvU3RyaW5nKCl9fSxuKDI0NTI2MikpLGk9ZT0+ci50KG51bGwse3BsdXJhbDoie251bWJlcn0gbW9udGhzIixjb3VudDplLHJlcGxhY2U6e251bWJlcjplLnRvU3RyaW5nKCl9Cn0sbig3MjA4OTMpKSxhPWU9PnIudChudWxsLHtwbHVyYWw6IntudW1iZXJ9IHllYXJzIixjb3VudDplLHJlcGxhY2U6e251bWJlcjplLnRvU3RyaW5nKCl9fSxuKDgzMDg3NCkpO2Z1bmN0aW9uIHMoZSx0KXtpZigibnVtYmVyIiE9dHlwZW9mIGUpcmV0dXJuO2lmKGU8MilyZXR1cm4oMCxvLmZvcm1hdENhbGVuZGFyRGF5c0RpZmYpKGUpO2NvbnN0IG49bmV3IERhdGUodHx8RGF0ZS5ub3coKSkscj1uZXcgRGF0ZSh0fHxEYXRlLm5vdygpKTtyLnNldERhdGUoci5nZXREYXRlKCkrZSk7bGV0IHM9ci5nZXRGdWxsWWVhcigpLW4uZ2V0RnVsbFllYXIoKSx1PXIuZ2V0TW9udGgoKS1uLmdldE1vbnRoKCksYz1yLmdldERhdGUoKS1uLmdldERhdGUoKTtpZihjPDApe3UtLTtjKz1uZXcgRGF0ZShyLmdldEZ1bGxZZWFyKCksci5nZXRNb250aCgpLDApLmdldERhdGUoKX1yZXR1cm4gdTwwJiYocy0tLHUrPTEyKSxzP2Eocyk6dT9pKHUpOmwoYyl9fSw0NzkwMzgoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7Zm9ybWF0RGlzY291bnRQcmVtaXVtVG9OYXY6KCk9PmF9KTt2YXIgcj1uKDE2NzUxNyksbz1uKDMxMzUxNiksbD1uKDE0NzYyMyksaT1uKDg3MjYxKTtjb25zdCBhPSgwLHIubnVtYmVyRm9ybWF0dGVyc1BhcnNlcnNDaGFpbikoe2NoYWluOlsoMCxvLnNpZ25pZmljYW50Rml4ZWROdW1iZXJNYWduaXR1ZGVTdGVwKSh7ZGVjaW1hbFBsYWNlczoxLG9uSW50ZWdlckJlaGF2aW9yOiJoaWRlRGVjaW1hbFBvaW50QW5kWmVyb3MifSksKDAsbC5zaWdudW1TdGVwKSh7bmVnYXRpdmVTaWduOmwubG9uZ01pbnVzU2lnbn0pLCgwLGkuc3VmZml4U3RlcCkoe3N1ZmZpeDoiJSJ9KV19KS5mb3JtYXR9LDk4MjMzOShlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtmb3JtYXRNb250aDooKT0+bH0pO2NvbnN0IHI9KDAsbig4OTMxMTUpLmdldExvY2FsZUlzbykoKSxvPXImJmAke3J9LXUtaGMtaDIzYDtmdW5jdGlvbiBsKGUpe2lmKGUpdHJ5e3JldHVybiBuZXcgSW50bC5EYXRlVGltZUZvcm1hdChvLHttb250aDoic2hvcnQiLHllYXI6Im51bWVyaWMifSkuZm9ybWF0KG5ldyBEYXRlKGUpKX1jYXRjaCh0KXtyZXR1cm4gZX19fSw4NjI5NTIoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7Zm9ybWF0UHJpY2VXaXRoUGxhY2Vob2xkZXI6KCk9Pml9KTt2YXIgcj1uKDk4NDM3Niksbz1uKDc1NTYyNyk7Y29uc3QgbD1uZXcgci5Wb2x1bWVGb3JtYXR0ZXIoe3ByZWNpc2lvbjoyfSk7ZnVuY3Rpb24gaShlKXtpZigidm9sdW1lIj09PWUuZm9ybWF0JiZlLnZhbHVlKXJldHVybiBsLmZvcm1hdChlLnZhbHVlKTtjb25zdCB0PW5ldyBvLlByaWNlRm9ybWF0dGVyKHtwcmljZVNjYWxlOmUucHJpY2VzY2FsZXx8MTAwLG1pbk1vdmU6ZS5taW5tb3Z8fDEsZnJhY3Rpb25hbDplLmZyYWN0aW9uYWwsbWluTW92ZTI6ZS5taW5tb3ZlMn0pO3JldHVybiBlLnZhbHVlP3QuZm9ybWF0KGUudmFsdWUse3VzZVJ0bEZvcm1hdDohMX0pOnZvaWQgMH19LDQ5MzUzOShlLHQsbil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHIoZSx0KXtsZXQgcj0oKT0+bnVsbCxvPSExO3JldHVybiBQcm9taXNlLmFsbChbbi5lKDE3ODU5KSxuLmUoNDMzMjUpLG4uZSgyODAxNyksbi5lKDkwODEwKV0pLnRoZW4obi5iaW5kKG4sMTEzMDMwKSkudGhlbigobj0+e298fChyPW4uYWRkTWluaUNoYXJ0Q29weXJpZ2h0SW1wbChlLHQpKX0pKSwoKT0+e289ITA7Y29uc3QgdD1yKCk7bnVsbCE9PXQmJmUucmVtb3ZlQ2hpbGQodCl9fW4uZCh0LHthZGRNaW5pQ2hhcnRDb3B5cmlnaHQ6KCk9PnJ9KX0sNDg4MDUoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7Z2V0Q3Jvc3NoYWlyTW92ZURhdGE6KCk9Pm99KTt2YXIgcj1uKDc4MzI1NCk7ZnVuY3Rpb24gbyhlLHQpe2NvbnN0e3BvaW50Om8sdGltZTpsLHNlcmllc0RhdGE6aX09dDtpZih2b2lkIDA9PT1vfHx2b2lkIDA9PT1sKXJldHVybjtjb25zdCBhPWUubWFpblBsb3QoKSxzPWEuc2VyaWVzKCk7aWYodm9pZCAwPT09aS5nZXQocykpcmV0dXJuO2xldCB1O2NvbnN0IGM9W10sZD1hLmN1cnJlbnRTZXJpZXNPcHRpb25zKCk7aWYodT0iQXJlYSI9PT1zLnNlcmllc1R5cGUoKXx8IkxpbmUiPT09cy5zZXJpZXNUeXBlKCk/ZC50b29sdGlwVHlwZXx8ImxpbmUiOmQudG9vbHRpcFR5cGV8fCJvaGxjIixjLnB1c2goLi4uYS5nZXRMZWdlbmREYXRhKHQubG9naWNhbCkpLGUuc3R1ZHlQbG90cygpLmZvckVhY2goKGU9PntjLnB1c2goLi4uZS5nZXRMZWdlbmREYXRhKHQubG9naWNhbCkpfSkpLDA9PT1jLmxlbmd0aClyZXR1cm47Y29uc3QgcD1kLnRvb2x0aXBMZWdlbmRDb2xvck9yZGVyO3A/LnNpemUmJmMuc29ydCgoKGUsdCk9Pntjb25zdCBuPXAuZ2V0KGUuY29sb3IpPz8tMSxyPXAuZ2V0KHQuY29sb3IpPz8tMTtyZXR1cm4obj4tMT9uOjEvMCktKHI+LTE/cjoxLzApfSkpO2NvbnN0IG09bmV3IERhdGUoMWUzKmwpO2xldCBmPWUuZGF0ZVRpbWVGb3JtYXR0ZXIoKS5mb3JtYXQobSx7ZGF0ZVRpbWVTZXBhcmF0b3I6IlxuIn0pO2UuaXNEV01SZXNvbHV0aW9uKCl8fChmKz0iICIrZnVuY3Rpb24oZSl7aWYoMD09PWUpcmV0dXJuIlVUQyI7Y29uc3QgdD1NYXRoLmFicyhlKSxuPU1hdGguZmxvb3IodC82MCkscj10LTYwKm47cmV0dXJuYFVUQyR7TWF0aC5zaWduKGUpPD0wPyIrIjoiLSJ9JHtufSR7cj4wP2A6JHtyfWA6IiJ9YH0obS5nZXRUaW1lem9uZU9mZnNldCgpKSk7Y29uc3Qgdj1lLmlzRFdNUmVzb2x1dGlvbigpfHwzIT09YS5zZXNzaW9uQXRUaW1lKGZ1bmN0aW9uKGUpe2NvbnN0IHQ9bmV3IERhdGUoMWUzKmUpO3JldHVybiBuZXcgRGF0ZSh0LmdldFVUQ0Z1bGxZZWFyKCksdC5nZXRVVENNb250aCgpLHQuZ2V0VVRDRGF0ZSgpLHQuZ2V0VVRDSG91cnMoKSx0LmdldFVUQ01pbnV0ZXMoKSx0LmdldFVUQ1NlY29uZHMoKSkudmFsdWVPZigpLzFlM30obCkpP3ZvaWQgMDpyLnQobnVsbCx7Y29udGV4dDoibWFya2V0X3N0YXR1cyJ9LG4oNTQ1MjI0KSk7cmV0dXJue3BvaW50Om8sdGltZTpmLHByaWNlczpjLHR5cGU6dSxub3RlOnZ9fX0sMjgxMDM4KGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQsewpnZXRDcm9zc2hhaXJDb2xvcjooKT0+bCxnZXRHcmlkQ29sb3I6KCk9PnMsZ2V0UHJpY2VsaW5lQ29sb3I6KCk9PmEsZ2V0VGV4dENvbG9yOigpPT5pfSk7dmFyIHI9bigyNDc5MDEpLG89big1MDU1Nik7ZnVuY3Rpb24gbChlKXtyZXR1cm4oMCxvLmdldEhleENvbG9yQnlOYW1lKShlPT09ci5TdGRUaGVtZS5MaWdodD8iY29sb3ItY29sZC1ncmF5LTIwMCI6ImNvbG9yLWNvbGQtZ3JheS03MDAiKX1mdW5jdGlvbiBpKGUpe3JldHVybigwLG8uZ2V0SGV4Q29sb3JCeU5hbWUpKGU9PT1yLlN0ZFRoZW1lLkxpZ2h0PyJjb2xvci1jb2xkLWdyYXktOTAwIjoiY29sb3ItY29sZC1ncmF5LTIwMCIpfWZ1bmN0aW9uIGEoZSl7cmV0dXJuKDAsby5nZXRIZXhDb2xvckJ5TmFtZSkoZT09PXIuU3RkVGhlbWUuTGlnaHQ/ImNvbG9yLWNvbGQtZ3JheS01NTAiOiJjb2xvci1jb2xkLWdyYXktNDUwIil9ZnVuY3Rpb24gcyhlKXtyZXR1cm4oMCxvLmdldEhleENvbG9yQnlOYW1lKShlPT09ci5TdGRUaGVtZS5MaWdodD8iY29sb3ItY29sZC1ncmF5LTEwMCI6ImNvbG9yLWNvbGQtZ3JheS04MDAiKX19LDk4NDgxMChlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtnZXRDaGFydE9wdGlvbnM6KCk9PmF9KTt2YXIgcj1uKDc0MDE2Miksbz1uKDg5MzExNSksbD1uKDI4MTAzOCksaT1uKDYxMDU3MSk7ZnVuY3Rpb24gYShlKXtjb25zdHtjaGFydFR5cGU6dCxsaW5lU3R5bGU6bixkb05vdERpc2Nvbm5lY3RPbkRhdGFSZWFkeTphLGlzVmlzaWJsZVRpbWVmcmFtZTpzLHRoZW1lOnUsdGltZWZyYW1lOmMsdGltZUZyYW1lT3B0aW9uczpkLHRpbWVmcmFtZUNvbnRhaW5lcjpwLGdldE1pbkhlaWdodDptLGdldFRoZW1lOmYsbWluaUNoYXJ0T3B0aW9uczp2PXt9LGNhY2hlOmd9PWU7cmV0dXJuKDAsci5kZWZhdWx0KSh7Y2FjaGU6ZyxzaG93RGVzY3JpcHRpb246ITEsdGltZWZyYW1lOnt2YWx1ZTp7dHlwZToicGVyaW9kLWJhY2siLHZhbHVlOmN9LHZpc2libGU6cyxjb250YWluZXI6cCxnZXRUaGVtZTpmLG9wdGlvbnM6ZH0sY2hhcnRPcHRpb25zOnttaW5IZWlnaHQ6bSgpLGNoYXJ0OntncmlkOnt2ZXJ0TGluZXM6e3Zpc2libGU6ITF9LGhvcnpMaW5lczp7dmlzaWJsZTohMX19LGxvY2FsaXphdGlvbjp7bG9jYWxlOigwLG8uZ2V0TG9jYWxlKSgpLmlzb30sbGF5b3V0Ontmb250U2l6ZToxMixmb250RmFtaWx5OictYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICJUcmVidWNoZXQgTVMiLCBSb2JvdG8sIFVidW50dSwgc2Fucy1zZXJpZicsdGV4dENvbG9yOigwLGwuZ2V0VGV4dENvbG9yKSh1KSxhdHRyaWJ1dGlvbkxvZ286ITF9LGNyb3NzaGFpcjp7dmVydExpbmU6e3Zpc2libGU6ITAsc3R5bGU6MCxjb2xvcjooMCxsLmdldENyb3NzaGFpckNvbG9yKSh1KX19fSxzZXJpZXM6KDAsaS5nZXRTZXJpZXNPcHRpb25zKSh0LG4/PzAsdSxjKSxsb2FkaW5nOntmYWRlOnt2aXNpYmxlOiEwfSxjbGVhckRhdGFPblN5bWJvbENoYW5nZTohMSxjbGVhckRhdGFPblRpbWVmcmFtZUNoYW5nZTohMX0sc3VwcHJlc3NUaWNrTWFya3M6e2RheUFuZFRpbWVUaWNrTWFya0ZpeEVuYWJsZWQ6ITB9fSx2YWx1ZXNUcmFja2luZzoiMSIsZG9Ob3REaXNjb25uZWN0T25EYXRhUmVhZHk6YX0sdil9fSw2MTA1NzEoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7ZGVmYXVsdFZvbHVtZU9wdGlvbnM6KCk9PnUsZ2V0U2VyaWVzT3B0aW9uczooKT0+aX0pO3ZhciByPW4oNTA1NTYpLG89bigyNDc5MDEpLGw9big4NzM1NzMpO2Z1bmN0aW9uIGkoZSx0LG4sbyl7cmV0dXJuImxpbmUiPT09ZT97Y2hhcnRUeXBlOiJsaW5lIixsaW5lV2lkdGg6Myxncm93aW5nQ29sb3I6KDAsci5nZXRIZXhDb2xvckJ5TmFtZSkoImNvbG9yLW1pbnR5LWdyZWVuLTUwMCIpLGZhbGxpbmdDb2xvcjooMCxyLmdldEhleENvbG9yQnlOYW1lKSgiY29sb3ItcmlwZS1yZWQtNTAwIiksY3Jvc3NoYWlyTWFya2VyVmlzaWJsZTohMCxsYXN0VmFsdWVWaXNpYmxlOiEwLGNyb3NzaGFpck1hcmtlclJhZGl1czo0LjUsY3Jvc3NoYWlyTWFya2VyQm9yZGVyQ29sb3I6cyhuKSxwcmVtYXJrZXRMaW5lQ29sb3I6YShuLG8pLHBvc3RtYXJrZXRMaW5lQ29sb3I6YShuLG8pLG5pZ2h0TGluZUNvbG9yOmEobixvKSxhZGRNYXJrZXJzOjE9PT10LGxpbmVUeXBlOjI9PT10PzE6MCxzY2FsZU1hcmdpbnM6e3RvcDouMDUsYm90dG9tOi4wNX19OiJhcmVhIj09PWU/e2NoYXJ0VHlwZToiYXJlYSIsbGluZVdpZHRoOjIscHJpY2VMaW5lVmlzaWJsZTohMSxjcm9zc2hhaXJNYXJrZXJWaXNpYmxlOiEwLGNyb3NzaGFpck1hcmtlclJhZGl1czozLjUsY3Jvc3NoYWlyTWFya2VyQm9yZGVyQ29sb3I6cyhuKSxsYXN0VmFsdWVWaXNpYmxlOiEwLGdyb3dpbmdUb3BDb2xvcjooMCxsLmdlbmVyYXRlQ29sb3IpKHIuY29sb3JzUGFsZXR0ZVsiY29sb3ItbWludHktZ3JlZW4tNTAwIl0sNzApLGdyb3dpbmdCb3R0b21Db2xvcjooMCxsLmdlbmVyYXRlQ29sb3IpKHIuY29sb3JzUGFsZXR0ZVsiY29sb3ItbWludHktZ3JlZW4tNTAwIl0sMTAwKSxncm93aW5nTGluZUNvbG9yOigwLHIuZ2V0SGV4Q29sb3JCeU5hbWUpKCJjb2xvci1taW50eS1ncmVlbi01MDAiKSxmYWxsaW5nVG9wQ29sb3I6KDAsbC5nZW5lcmF0ZUNvbG9yKShyLmNvbG9yc1BhbGV0dGVbImNvbG9yLXJpcGUtcmVkLTUwMCJdLDcwKSxmYWxsaW5nQm90dG9tQ29sb3I6KDAsbC5nZW5lcmF0ZUNvbG9yKShyLmNvbG9yc1BhbGV0dGVbImNvbG9yLXJpcGUtcmVkLTUwMCJdLDEwMCksZmFsbGluZ0xpbmVDb2xvcjooMCxyLmdldEhleENvbG9yQnlOYW1lKSgiY29sb3ItcmlwZS1yZWQtNTAwIikscHJlbWFya2V0TGluZUNvbG9yOmEobixvKSxwb3N0bWFya2V0TGluZUNvbG9yOmEobixvKSxuaWdodExpbmVDb2xvcjphKG4sbyl9OntjaGFydFR5cGU6ImNhbmRsZXN0aWNrcyIsdXBDb2xvcjooMCxyLmdldEhleENvbG9yQnlOYW1lKSgiY29sb3ItbWludHktZ3JlZW4tNTAwIiksZG93bkNvbG9yOigwLHIuZ2V0SGV4Q29sb3JCeU5hbWUpKCJjb2xvci1yaXBlLXJlZC01MDAiKSxib3JkZXJVcENvbG9yOigwLApyLmdldEhleENvbG9yQnlOYW1lKSgiY29sb3ItbWludHktZ3JlZW4tNTAwIiksYm9yZGVyRG93bkNvbG9yOigwLHIuZ2V0SGV4Q29sb3JCeU5hbWUpKCJjb2xvci1yaXBlLXJlZC01MDAiKSx3aWNrVXBDb2xvcjooMCxyLmdldEhleENvbG9yQnlOYW1lKSgiY29sb3ItbWludHktZ3JlZW4tNTAwIiksd2lja0Rvd25Db2xvcjooMCxyLmdldEhleENvbG9yQnlOYW1lKSgiY29sb3ItcmlwZS1yZWQtNTAwIil9fWZ1bmN0aW9uIGEoZSx0KXtpZigiTEFTVFNFU1NJT04iPT09dClyZXR1cm4oMCxyLmdldEhleENvbG9yQnlOYW1lKShlPT09by5TdGRUaGVtZS5MaWdodD8iY29sb3ItY29sZC1ncmF5LTMwMCI6ImNvbG9yLWNvbGQtZ3JheS02NTAiKX1mdW5jdGlvbiBzKGUpe3JldHVybigwLHIuZ2V0SGV4Q29sb3JCeU5hbWUpKGU9PT1vLlN0ZFRoZW1lLkxpZ2h0PyJjb2xvci13aGl0ZSI6ImNvbG9yLWJsYWNrIil9Y29uc3QgdT17c2NhbGVNYXJnaW5zOnt0b3A6LjgsYm90dG9tOjB9LHByaWNlU2NhbGVJZDoib3ZlcmxheSIsdXBDb2xvcjooMCxsLmFwcGx5VHJhbnNwYXJlbmN5KShyLmNvbG9yc1BhbGV0dGVbImNvbG9yLW1pbnR5LWdyZWVuLTUwMCJdLDUwKSxkb3duQ29sb3I6KDAsbC5hcHBseVRyYW5zcGFyZW5jeSkoci5jb2xvcnNQYWxldHRlWyJjb2xvci1yaXBlLXJlZC01MDAiXSw1MCksdmlzaWJsZTohMSxsYXN0VmFsdWVWaXNpYmxlOiExLHByaWNlTGluZVZpc2libGU6ITF9fSw4NDA5MzMoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7dXNlQ2hhcnRTdHlsZTooKT0+YX0pO3ZhciByPW4oNzc5NDc0KSxvPW4oNzQwMTYyKSxsPW4oMjgxMDM4KSxpPW4oNjEwNTcxKTtmdW5jdGlvbiBhKGUsdCl7Y29uc3R7bWluaUNoYXJ0Om4sbWluaUNoYXJ0T3B0aW9uczphLGNoYXJ0VHlwZTpzLGxpbmVTdHlsZTp1LHRoZW1lOmMsdGltZWZyYW1lOmQsbWFpblBsb3RPcHRpb25zR2V0dGVyOnAsc2VyaWVzT3B0aW9uc092ZXJyaWRlOm19PWU7KDAsci51c2VFZmZlY3QpKCgoKT0+e2NvbnN0IGU9bi5jdXJyZW50O2lmKGUpe2lmKGUud2lkZ2V0KCkuYXBwbHlPcHRpb25zKHtjcm9zc2hhaXI6e3ZlcnRMaW5lOntjb2xvcjooMCxsLmdldENyb3NzaGFpckNvbG9yKShjKX19LGxheW91dDp7dGV4dENvbG9yOigwLGwuZ2V0VGV4dENvbG9yKShjKX0sZ3JpZDp7aG9yekxpbmVzOntjb2xvcjooMCxsLmdldEdyaWRDb2xvcikoYyl9fX0pLHApe2NvbnN0IHQ9cChjKTtlLm1haW5QbG90KCkuYXBwbHlPcHRpb25zKHQpfWUudXBkYXRlU2VyaWVzT3B0aW9ucygoMCxvLmRlZmF1bHQpKHsuLi4oMCxpLmdldFNlcmllc09wdGlvbnMpKHMsdSxjLGQpLGNoYXJ0VHlwZTpzfSxhPy5jaGFydE9wdGlvbnM/LnNlcmllcyxtKSl9fSksW2MsZCx1LHMsYT8uY2hhcnRPcHRpb25zPy5zZXJpZXMsbSwuLi50XSl9fSwxMjMzMzYoZSx0LG4peyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiByKGUsdCl7aWYobnVsbD09ZSlyZXR1cm4gbnVsbDtjb25zdCBuPXQuZ2V0KGUpO3JldHVybiB2b2lkIDA9PT1uP251bGw6bigpfW4uZCh0LHt0cmFuc2xhdGVGcm9tTWFwOigpPT5yfSl9LDgwMTMxKGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse2dldEFzc2V0Q2xhc3NUcmFuc2xhdGlvbk1hcDooKT0+bH0pO3ZhciByPW4oMTg1MjcxKTtjb25zdCBvPW5ldyBNYXAoW1siMWFmMDM4OTgzODUwOGQ3MDE2YTk4NDFlYjYyNzM5NjIiLCgpPT5yLnQobnVsbCx2b2lkIDAsbig2MTcyOCkpXSxbIjQwNzE1MThmMTczNmE1YTQzZGFlNTFiNDc1OTAzMjJmIiwoKT0+ci50KG51bGwsdm9pZCAwLG4oNDEyMTg4KSldLFsiOGZlODAzOTVmMzg5ZTI5ZTNlYTQyMjEwMzM3ZjAzNTAiLCgpPT5yLnQobnVsbCx2b2lkIDAsbigyMzQxMTQpKV0sWyJiMDkwZTk5YjhkOTVmNTgzN2VjMTc4YzJkM2QzZmM1MCIsKCk9PnIudChudWxsLHZvaWQgMCxuKDYwNzU0OSkpXSxbImI2ZTQ0M2E2YzRhOGEyZTc5MThjNWRiZjNkNDVjNzk2IiwoKT0+ci50KG51bGwsdm9pZCAwLG4oNDgyOTI1KSldLFsiYzA1Zjg1ZDM1ZDFjZDBiZTZlYmIyYWY0YmUxNmUwNmEiLCgpPT5yLnQobnVsbCx7Y29udGV4dDoiZXRmX2Fzc2V0X2NsYXNzIn0sbigxMjU0MDQpKV1dKTtmdW5jdGlvbiBsKCl7cmV0dXJuIG99fSw5Njk2OTAoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7Z2V0Rm9jdXNUcmFuc2xhdGlvbk1hcDooKT0+bH0pO3ZhciByPW4oMTg1MjcxKQo7Y29uc3Qgbz1uZXcgTWFwKFtbIjEiLCgpPT5yLnQobnVsbCx2b2lkIDAsbigzMjU4NTUpKV0sWyI2IiwoKT0+ci50KG51bGwsdm9pZCAwLG4oMzM4MzkyKSldLFsiOSIsKCk9PnIudChudWxsLHZvaWQgMCxuKDUyMjMzNCkpXSxbIjEwIiwoKT0+ci50KG51bGwsdm9pZCAwLG4oNzU3MTAxKSldLFsiMTEiLCgpPT5yLnQobnVsbCx2b2lkIDAsbigzNTExMzgpKV0sWyIxMiIsKCk9PnIudChudWxsLHZvaWQgMCxuKDc1NDg3NSkpXSxbIjEzIiwoKT0+ci50KG51bGwsdm9pZCAwLG4oMjgxMDc5KSldLFsiMTQiLCgpPT5yLnQobnVsbCx2b2lkIDAsbig1OTc0OTgpKV0sWyIxNSIsKCk9PnIudChudWxsLHZvaWQgMCxuKDI5NjEzNSkpXSxbIjE2IiwoKT0+ci50KG51bGwsdm9pZCAwLG4oMjY3ODIyKSldLFsiMTciLCgpPT5yLnQobnVsbCx2b2lkIDAsbigyMzc1MjMpKV0sWyIxOCIsKCk9PnIudChudWxsLHZvaWQgMCxuKDUwMjUyMykpXSxbIjIwIiwoKT0+ci50KG51bGwsdm9pZCAwLG4oNjc2Mzg0KSldLFsiMjEiLCgpPT5yLnQobnVsbCx2b2lkIDAsbigzODgzODcpKV0sWyIyMiIsKCk9PnIudChudWxsLHZvaWQgMCxuKDU2NTI4MykpXSxbIjIzIiwoKT0+ci50KG51bGwsdm9pZCAwLG4oNjQ0MjMxKSldLFsiMjQiLCgpPT5yLnQobnVsbCx2b2lkIDAsbig5MzAzOTMpKV0sWyIyNSIsKCk9PnIudChudWxsLHZvaWQgMCxuKDE0NzI2OSkpXSxbIjI2IiwoKT0+ci50KG51bGwsdm9pZCAwLG4oNjU0MjYzKSldLFsiMjciLCgpPT5yLnQobnVsbCx2b2lkIDAsbigxMTEyNjIpKV0sWyIyOCIsKCk9PnIudChudWxsLHZvaWQgMCxuKDE5NjU2OSkpXSxbIjI5IiwoKT0+ci50KG51bGwsdm9pZCAwLG4oNTY1Mjk0KSldLFsiMzAiLCgpPT5yLnQobnVsbCx2b2lkIDAsbig0NTk5ODEpKV0sWyIzMSIsKCk9PnIudChudWxsLHZvaWQgMCxuKDU0MzM0OCkpXSxbIjMyIiwoKT0+ci50KG51bGwsdm9pZCAwLG4oMTAzODUzKSldLFsiMzMiLCgpPT5yLnQobnVsbCx2b2lkIDAsbig4MDU3MDgpKV0sWyIzNSIsKCk9PnIudChudWxsLHZvaWQgMCxuKDEzNjUzNykpXSxbIjQxIiwoKT0+ci50KG51bGwsdm9pZCAwLG4oNTA3MzA4KSldLFsiNDIiLCgpPT5yLnQobnVsbCx2b2lkIDAsbigxNjUyNTkpKV0sWyI1MiIsKCk9PnIudChudWxsLHZvaWQgMCxuKDMzNTE0OCkpXSxbIjUzIiwoKT0+ci50KG51bGwsdm9pZCAwLG4oMTg4NjkpKV0sWyI1NCIsKCk9PnIudChudWxsLHZvaWQgMCxuKDM2OTMyNSkpXSxbIjU1IiwoKT0+ci50KG51bGwsdm9pZCAwLG4oMzA0NzQ0KSldLFsiNTYiLCgpPT5yLnQobnVsbCx2b2lkIDAsbigzMDY3MjcpKV0sWyI1OCIsKCk9PnIudChudWxsLHtjb250ZXh0OiJldGZfZm9jdXMiCn0sbigxODI4NTMpKV0sWyI1OSIsKCk9PnIudChudWxsLHZvaWQgMCxuKDgyNTU0MikpXSxbIjYxIiwoKT0+ci50KG51bGwsdm9pZCAwLG4oOTc4NTcyKSldLFsiNjIiLCgpPT5yLnQobnVsbCx2b2lkIDAsbig3MjQ1NCkpXSxbIjYzIiwoKT0+ci50KG51bGwsdm9pZCAwLG4oMzMyMTU2KSldLFsiNjQiLCgpPT5yLnQobnVsbCx2b2lkIDAsbig4MjA1MDcpKV0sWyI2NiIsKCk9PnIudChudWxsLHZvaWQgMCxuKDU0OTgwMikpXSxbIjY4IiwoKT0+ci50KG51bGwsdm9pZCAwLG4oODgzMDY5KSldLFsiNzAiLCgpPT5yLnQobnVsbCx2b2lkIDAsbig4OTExMzYpKV0sWyI3MyIsKCk9PnIudChudWxsLHZvaWQgMCxuKDI2MzI0NSkpXSxbIjc4IiwoKT0+ci50KG51bGwsdm9pZCAwLG4oMjA1NDUyKSldLFsiODciLCgpPT5yLnQobnVsbCx2b2lkIDAsbig0NDk3MykpXSxbIjkwIiwoKT0+ci50KG51bGwsdm9pZCAwLG4oNTkxNjM1KSldLFsiOTEiLCgpPT5yLnQobnVsbCx2b2lkIDAsbigyNTI2NDcpKV0sWyI5NCIsKCk9PnIudChudWxsLHZvaWQgMCxuKDM5NTM0NikpXSxbIjEwMiIsKCk9PnIudChudWxsLHZvaWQgMCxuKDgxNTM0NCkpXSxbIjEwNSIsKCk9PnIudChudWxsLHZvaWQgMCxuKDk5NDkwKSldLFsiMTA2IiwoKT0+ci50KG51bGwsdm9pZCAwLG4oNDgyODA0KSldLFsiMTA5IiwoKT0+ci50KG51bGwsdm9pZCAwLG4oMTU0MzUwKSldLFsiMTExIiwoKT0+ci50KG51bGwsdm9pZCAwLG4oNjQwMjkpKV0sWyIxMTMiLCgpPT5yLnQobnVsbCx2b2lkIDAsbig0NjQzMDQpKV0sWyIxMTUiLCgpPT5yLnQobnVsbCx2b2lkIDAsbig1MjY1OTApKV0sWyIxMTciLCgpPT5yLnQobnVsbCx2b2lkIDAsbig1MzQ1NTQpKV0sWyIxMTgiLCgpPT5yLnQobnVsbCx2b2lkIDAsbigyOTg0MzIpKV0sWyIxMjAiLCgpPT5yLnQobnVsbCx2b2lkIDAsbigxMzI2MjgpKV0sWyIxMjEiLCgpPT5yLnQobnVsbCx2b2lkIDAsbig2MjU5MDApKV0sWyIxMjIiLCgpPT5yLnQobnVsbCx2b2lkIDAsbigxMTc0OTIpKV0sWyIxMjMiLCgpPT5yLnQobnVsbCx2b2lkIDAsbigxODYwMTEpKV0sWyIyMDExIiwoKT0+ci50KG51bGwsdm9pZCAwLG4oOTYyMzEwKSldLFsiMjAyNSIsKCk9PnIudChudWxsLHZvaWQgMCxuKDMwNzMyNykpXSxbIjIwMjkiLCgpPT5yLnQobnVsbCx2b2lkIDAsbigyMjcyMDgpKV0sWyIyMDMyIiwoKT0+ci50KG51bGwsdm9pZCAwLG4oNjcxNzQ3KSldLFsiMjAzMyIsKCk9PnIudChudWxsLHZvaWQgMCxuKDM3MjY1MCkpXSxbIjIwMzQiLCgpPT5yLnQobnVsbCx2b2lkIDAsbig5NDM5OTMpKV0sWyIyMDM1IiwoKT0+ci50KG51bGwsdm9pZCAwLG4oMTIwOTcpKV0sWyIyMDM2IiwoKT0+ci50KG51bGwsdm9pZCAwLG4oMjkwMjYzKSldLFsiMjAzNyIsKCk9PnIudChudWxsLHZvaWQgMCxuKDkzNzkxMCkpXSxbIjIwMzgiLCgpPT5yLnQobnVsbCx2b2lkIDAsbig2NjkyMjApKV0sWyIyMDM5IiwoKT0+ci50KG51bGwsdm9pZCAwLG4oNTcwNDI1KSldLFsiMjA0MCIsKCk9PnIudChudWxsLHZvaWQgMCxuKDUyODI1OCkpXSxbIjIwNDEiLCgpPT5yLnQobnVsbCx2b2lkIDAsbig4MjE1NzApKV0sWyIyMDQyIiwoKT0+ci50KG51bGwsdm9pZCAwLG4oODMyODA3KSldLFsiMjA0MyIsKCk9PnIudChudWxsLHZvaWQgMCxuKDk4NTUxMikpXSxbIjIwNDQiLCgpPT5yLnQobnVsbCx2b2lkIDAsbig3MDc4NjYpKV0sWyIyMDQ1IiwoKT0+ci50KG51bGwsdm9pZCAwLG4oMjE5Mjg0KSldLFsiMjA0NiIsKCk9PnIudChudWxsLHZvaWQgMCxuKDkxMjM2MykpXSxbIjIwNDciLCgpPT5yLnQobnVsbCx2b2lkIDAsbig2NzAyMzkpKV0sWyIyMDQ4IiwoKT0+ci50KG51bGwsdm9pZCAwLG4oMTk1MDcwKSldLFsiMjA0OSIsKCk9PnIudChudWxsLHZvaWQgMCxuKDg4MTcxMikpXSxbIjIwNTAiLCgpPT5yLnQobnVsbCx2b2lkIDAsbigyNjI3NTgpKV0sWyIyMDUxIiwoKT0+ci50KG51bGwsdm9pZCAwLG4oMTUwODEzKSldLFsiMjA1MiIsKCk9PnIudChudWxsLHZvaWQgMCxuKDQ2MjIxKSldLFsiMjA1MyIsKCk9PnIudChudWxsLHZvaWQgMCxuKDgyOTcwNSkpXSxbIjIwNTQiLCgpPT5yLnQobnVsbCx2b2lkIDAsbigxMTE3ODUpKV0sWyIyMDU1IiwoKT0+ci50KG51bGwsdm9pZCAwLG4oNzc1ODI5KSldLFsiMjA1NiIsKCk9PnIudChudWxsLHZvaWQgMCxuKDMzNTcyNykpXSxbIjIwNTciLCgpPT5yLnQobnVsbCx2b2lkIDAsbig2MzAzNDYpKV0sWyIyMDU4IiwoKT0+ci50KG51bGwsdm9pZCAwLG4oNTc2OTM3KSldLFsiMjA1OSIsKCk9PnIudChudWxsLHZvaWQgMCxuKDU2Nzc1KSldLFsiMjA2MCIsKCk9PnIudChudWxsLHZvaWQgMCxuKDc5NDM1OCkpXSxbIjIwNjEiLCgpPT5yLnQobnVsbCx2b2lkIDAsbigyMDYyNjYpKV0sWyIyMDYyIiwoKT0+ci50KG51bGwsdm9pZCAwLG4oNDMwNDk5KSldLFsiMjA2MyIsKCk9PnIudChudWxsLHZvaWQgMCxuKDg4MDAwMSkpXSxbIjIwNjQiLCgpPT5yLnQobnVsbCx2b2lkIDAsbig0Njg4NykpXSxbIjIwNjUiLCgpPT5yLnQobnVsbCx2b2lkIDAsbig2MjAwMzIpKV0sWyIyMDY2IiwoKT0+ci50KG51bGwsdm9pZCAwLG4oNjk1MjQpKV0sWyIyMDY3IiwoKT0+ci50KG51bGwsdm9pZCAwLG4oODExMTU2KSldLFsiMjA2OCIsKCk9PnIudChudWxsLHZvaWQgMCxuKDU4MTY5NikpXSxbIjIwNjkiLCgpPT5yLnQobnVsbCx2b2lkIDAsbig0MTIyMzkpKV0sWyIyMDcwIiwoKT0+ci50KG51bGwsdm9pZCAwLG4oMzc5MDUwKSldLFsiMjA3MSIsKCk9PnIudChudWxsLHZvaWQgMCxuKDgxMzE1NSkpXSxbIjIwNzIiLCgpPT5yLnQobnVsbCx2b2lkIDAsbig4MTU0MikpXSxbIjIwNzMiLCgpPT5yLnQobnVsbCx2b2lkIDAsbig4OTk1NTgpKV0sWyIyMDc0IiwoKT0+ci50KG51bGwsdm9pZCAwLG4oMTMyNzc2KSldLFsiMjA3NSIsKCk9PnIudChudWxsLHZvaWQgMCxuKDgxOTI2MCkpXSxbIjIwNzYiLCgpPT5yLnQobnVsbCx2b2lkIDAsbig1MDUzMDMpKV0sWyIyMDc3IiwoKT0+ci50KG51bGwsdm9pZCAwLG4oNTMwODc4KSldLFsiMjA3OCIsKCk9PnIudChudWxsLHZvaWQgMCxuKDU1NDk4OSkpXSxbIjIwNzkiLCgpPT5yLnQobnVsbCx2b2lkIDAsbig2OTk5MDMpKV0sWyIyMDgwIiwoKT0+ci50KG51bGwsdm9pZCAwLG4oNzY3OTQyKSldLFsiMjA4MSIsKCk9PnIudChudWxsLHZvaWQgMCxuKDEwNDUwMSkpXSxbIjIwODIiLCgpPT5yLnQobnVsbCx2b2lkIDAsbigzNDE1MzUpKV0sWyIyMDgzIiwoKT0+ci50KG51bGwsdm9pZCAwLG4oNDYyNDM4KSldLFsiMjA4NCIsKCk9PnIudChudWxsLHZvaWQgMCxuKDg1MjMwOSkpXSxbIjIwODUiLCgpPT5yLnQobnVsbCx2b2lkIDAsbigyMTMyODIpKV0sWyIyMDg2IiwoKT0+ci50KG51bGwsdm9pZCAwLG4oNzQxNjgwKSldLFsiMjA4NyIsKCk9PnIudChudWxsLHZvaWQgMCxuKDIxMjU0MCkpXSxbIjIwODgiLCgpPT5yLnQobnVsbCx2b2lkIDAsbigxNTkxNzMpKV0sWyIyMDg5IiwoKT0+ci50KG51bGwsdm9pZCAwLG4oNzk3NjY2KSldLFsiMjA5MCIsKCk9PnIudChudWxsLHZvaWQgMCxuKDExMjc2NykpXSxbIjIwOTEiLCgpPT5yLnQobnVsbCx2b2lkIDAsbigzMzc4OTkpKV0sWyIyMDkyIiwoKT0+ci50KG51bGwsdm9pZCAwLG4oMjUwMDkpKV0sWyIyMDkzIiwoKT0+ci50KG51bGwsdm9pZCAwLG4oNDk0NTgpKV0sWyIyMDk0IiwoKT0+ci50KG51bGwsdm9pZCAwLG4oODc5MTEyKSldLFsiMjA5NSIsKCk9PnIudChudWxsLHZvaWQgMCxuKDY5MzkyKSldLFsiMjA5NiIsKCk9PnIudChudWxsLHZvaWQgMCxuKDg5NzAyNikpXSxbIjIwOTciLCgpPT5yLnQobnVsbCx2b2lkIDAsbig4NTA3NTQpKV0sWyIyMDk4IiwoKT0+ci50KG51bGwsdm9pZCAwLG4oNzQ4MjM4KSldLFsiMjA5OSIsKCk9PnIudChudWxsLHZvaWQgMCxuKDUzMTY5MCkpXSxbIjIxMDEiLCgpPT5yLnQobnVsbCx2b2lkIDAsbigyMjUwMTcpKV0sWyIyMTAzIiwoKT0+ci50KG51bGwsdm9pZCAwLG4oNjQxNDQzKSldLFsiMjEwNyIsKCk9PnIudChudWxsLHZvaWQgMCxuKDg1MDkyKSldLFsiMjEwOCIsKCk9PnIudChudWxsLHZvaWQgMCxuKDQ0OTMyOSkpXSxbIjIxMTEiLCgpPT5yLnQobnVsbCx2b2lkIDAsbigxNzk2ODYpKV0sWyIyMTEyIiwoKT0+ci50KG51bGwsdm9pZCAwLG4oNTI4OTI1KSldLFsiMjExMyIsKCk9PnIudChudWxsLHZvaWQgMCxuKDg0OTQxKSldLFsiMjExNCIsKCk9PnIudChudWxsLHZvaWQgMCxuKDkxMjc3MikpXSxbIjIxMTUiLCgpPT5yLnQobnVsbCx2b2lkIDAsbigxMjA0NDkpKV0sWyIyMTE2IiwoKT0+ci50KG51bGwsdm9pZCAwLG4oNTcxNzMwKSldLFsiMjExNyIsKCk9PnIudChudWxsLHZvaWQgMCxuKDEwOTIyMykpXSxbIjIxMTgiLCgpPT5yLnQobnVsbCx2b2lkIDAsbig2NjE0MDkpKV0sWyIyMTE5IiwoKT0+ci50KG51bGwsdm9pZCAwLG4oNTkwNDc4KSldLFsiMjEyMCIsKCk9PnIudChudWxsLHZvaWQgMCxuKDIzNjMyKSldLFsiMjEyMSIsKCk9PnIudChudWxsLHZvaWQgMCxuKDMwOTUxKSldLFsiMjEyMiIsKCk9PnIudChudWxsLHZvaWQgMCxuKDk0NzAwNCkpXSxbIjIxMjMiLCgpPT5yLnQobnVsbCx2b2lkIDAsbigxNzUwMTMpKV0sWyIyMTI1IiwoKT0+ci50KG51bGwsdm9pZCAwLG4oNDI3NjAzKSldLFsiMjEyNyIsKCk9PnIudChudWxsLHZvaWQgMCxuKDIzNDY5MikpXSxbIjIxMjgiLCgpPT5yLnQobnVsbCx2b2lkIDAsbigzNzI2NjQpKV0sWyIyMTI5IiwoKT0+ci50KG51bGwsdm9pZCAwLG4oNzUwMDM4KSldLFsiMjEzMSIsKCk9PnIudChudWxsLHZvaWQgMCxuKDM0NjEyOCkpXSxbIjIxMzIiLCgpPT5yLnQobnVsbCx2b2lkIDAsbig1OTc4NjUpKV0sWyIyMTM0IiwoKT0+ci50KG51bGwsdm9pZCAwLG4oOTUwNzc5KSldLFsiMjEzNSIsKCk9PnIudChudWxsLHZvaWQgMCxuKDM5MjUyNSkpXV0pCjtmdW5jdGlvbiBsKCl7cmV0dXJuIG99fSwxNjc1MTcoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7bnVtYmVyRm9ybWF0dGVyc1BhcnNlcnNDaGFpbjooKT0+aX0pO3ZhciByPW4oNjMxNDM1KTtmdW5jdGlvbiBvKGU9MCx0KXtyZXR1cm57bWFnbml0dWRlOk1hdGguYWJzKGUpLHNpZ251bTplPj0wPyJwb3NpdGl2ZSI6Im5lZ2F0aXZlIixpZ25vcmVMb2NhbGVOdW1iZXJGb3JtYXQ6dD8uaWdub3JlTG9jYWxlTnVtYmVyRm9ybWF0LG5vRXhwb25lbnRpYWxGb3JtOnQ/Lm5vRXhwb25lbnRpYWxGb3JtfX1jb25zdCBsPXtjcmVhdGVFbXB0eVByb3BlcnRpZXM6by5iaW5kKG51bGwsMCksY3JlYXRlUHJvcGVydGllc091dE9mVmFsdWU6byxjcmVhdGVWYWx1ZU91dE9mUHJvcGVydGllczpmdW5jdGlvbihlKXtyZXR1cm4gZS5tYWduaXR1ZGUqKCJuZWdhdGl2ZSI9PT1lLnNpZ251bT8tMToxKX19O2Z1bmN0aW9uIGkoZSx0KXtyZXR1cm4oMCxyLmZvcm1hdHRlcnNQYXJzZXJzQ2hhaW4pKHtidWlsZGVyOmwsY2hhaW46ZS5jaGFpbn0sdCl9fSw2MzE0MzUoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7Zm9ybWF0dGVyc1BhcnNlcnNDaGFpbjooKT0+YSxpc0V2ZXJ5UGFyc2VyQWJsZVRvUGFyc2U6KCk9Pmx9KTt2YXIgcj1uKDkzNzkyOCksbz1uKDcwODQ1MCk7ZnVuY3Rpb24gbChlKXtyZXR1cm4gZS5ldmVyeSgoZT0+dm9pZCAwIT09ZS5wYXJzZVN0ZXApKX1mdW5jdGlvbiBpKGUsdCxuKXtpZighbCh0KSlyZXR1cm4gby51bnBhcnNhYmxlU3RlcDtjb25zdCBpPWZ1bmN0aW9uKGUpe2lmKCFsKGUpKXJldHVybiBvLnVucGFyc2FibGVTdGVwO2NvbnN0IHQ9Wy4uLmVdLnJldmVyc2UoKTtyZXR1cm57cGFyc2VTdGVwOmU9PntsZXQgbj1lLm5leHRTdGVwU3RyaW5nLG89ZS5uZXh0U3RlcFByb3BlcnRpZXM7Zm9yKGNvbnN0IGUgb2YgdCl7Y29uc3QgdD1lLnBhcnNlU3RlcCh7bmV4dFN0ZXBTdHJpbmc6bixuZXh0U3RlcFByb3BlcnRpZXM6b30pO2lmKCExPT09dC5yZXMpcmV0dXJuIHQ7W24sb109dC52YWx1ZX1yZXR1cm4oMCxyLnBhcnNlU3VjY2VzcykoW24sb10pfX19KHQpO3JldHVybntwYXJzZTp0PT57Y29uc3Qgbz1pLnBhcnNlU3RlcCh7bmV4dFN0ZXBTdHJpbmc6dCxuZXh0U3RlcFByb3BlcnRpZXM6ZS5jcmVhdGVFbXB0eVByb3BlcnRpZXMobil9KTtyZXR1cm4hMT09PW8ucmVzP286KDAsci5wYXJzZVN1Y2Nlc3MpKGUuY3JlYXRlVmFsdWVPdXRPZlByb3BlcnRpZXMoby52YWx1ZVsxXSkpfSxwYXJzZVN0ZXA6ZT0+aS5wYXJzZVN0ZXAoZSl9fWZ1bmN0aW9uIGEoZSx0KXtjb25zdCBuPWZ1bmN0aW9uKGUsdCxuKXtjb25zdCByPWZ1bmN0aW9uKGUpe3JldHVybntmb3JtYXRTdGVwOnQ9PntsZXQgbj10LnByZXZpb3VzU3RlcFN0cmluZztmb3IoY29uc3QgciBvZiBlKW49ci5mb3JtYXRTdGVwKHtwcmV2aW91c1N0ZXBTdHJpbmc6bixwcm9wZXJ0aWVzOnQucHJvcGVydGllcyx2YWx1ZTp0LnZhbHVlfSk7cmV0dXJuIG59fX0odCk7cmV0dXJue2Zvcm1hdDp0PT5yLmZvcm1hdFN0ZXAoe3ByZXZpb3VzU3RlcFN0cmluZzoiIixwcm9wZXJ0aWVzOmUuY3JlYXRlUHJvcGVydGllc091dE9mVmFsdWUodCxuKSx2YWx1ZTp0fSksZm9ybWF0U3RlcDplPT5yLmZvcm1hdFN0ZXAoZSl9fShlLmJ1aWxkZXIsZS5jaGFpbix0KTtpZighbChlLmNoYWluKSlyZXR1cm57Li4ubixwYXJzZTp2b2lkIDAscGFyc2VTdGVwOnZvaWQgMH07Y29uc3Qgcj1pKGUuYnVpbGRlcixlLmNoYWluLHQpO3JldHVybnsuLi5uLC4uLnJ9fX0sOTM3OTI4KGUsdCxuKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gcihlKXtyZXR1cm57cmVzOiEwLHZhbHVlOmV9fW4uZCh0LHtwYXJzZVN1Y2Nlc3M6KCk9PnJ9KX0sNzA4NDUwKGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse2lkZW50aXR5Rm9ybWF0OigpPT5yLHVucGFyc2FibGVTdGVwOigpPT5vfSk7Y29uc3Qgcj1lPT5lLnByZXZpb3VzU3RlcFN0cmluZyxvPXtwYXJzZVN0ZXA6dm9pZCAwfX0sODcyNjEoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7YXBwZW5kQWZmaXg6KCk9PmwsaGFzQWZmaXg6KCk9Pmksc3VmZml4U3RlcDooKT0+cyx0cmltQWZmaXg6KCk9Pm99KTt2YXIgcj1uKDkzNzkyOCk7ZnVuY3Rpb24gbyhlLHQsbil7c3dpdGNoKG4pe2Nhc2UicHJlZml4IjpyZXR1cm4gZnVuY3Rpb24oZSx0KXtyZXR1cm4gZS5zdGFydHNXaXRoKHQpP2Uuc3Vic3RyaW5nKHQubGVuZ3RoKTplfShlLHQpO2Nhc2Uic3VmZml4IjpyZXR1cm4gZnVuY3Rpb24oZSx0KXtyZXR1cm4gZS5lbmRzV2l0aCh0KT9lLnN1YnN0cmluZygwLGUubGVuZ3RoLXQubGVuZ3RoKTplfShlLHQpfX1mdW5jdGlvbiBsKGUsdCxuKXtzd2l0Y2gobil7Y2FzZSJwcmVmaXgiOnJldHVybiBmdW5jdGlvbihlLHQpe3JldHVybiB0K2V9KGUsdCk7Y2FzZSJzdWZmaXgiOnJldHVybiBmdW5jdGlvbihlLHQpe3JldHVybiBlK3R9KGUsdCl9fWZ1bmN0aW9uIGkoZSx0LG4pe3N3aXRjaChuKXtjYXNlInByZWZpeCI6cmV0dXJuIGUuc3RhcnRzV2l0aCh0KTtjYXNlInN1ZmZpeCI6cmV0dXJuIGUuZW5kc1dpdGgodCl9fWZ1bmN0aW9uIGEoZSl7cmV0dXJue2Zvcm1hdFN0ZXA6dD0+bCh0LnByZXZpb3VzU3RlcFN0cmluZyxlLmFmZml4LGUuc2lkZSkscGFyc2VTdGVwOnQ9PigwLHIucGFyc2VTdWNjZXNzKShbbyh0Lm5leHRTdGVwU3RyaW5nLGUuYWZmaXgsZS5zaWRlKSx0Lm5leHRTdGVwUHJvcGVydGllc10pfX1mdW5jdGlvbiBzKGUpe3JldHVybiBhKHthZmZpeDplLnN1ZmZpeCxzaWRlOiJzdWZmaXgifSl9fSwzMTM1MTYoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7Zml4ZWROdW1iZXJNYWduaXR1ZGVTdGVwOigpPT5kLHNpZ25pZmljYW50Rml4ZWROdW1iZXJNYWduaXR1ZGVTdGVwOigpPT5tfSk7dmFyIHI9big5Mzc5MjgpLG89big1OTg5MjIpLGw9bigxMDcwNDUpLGk9big1NDY0ODUpO2NvbnN0IGE9e3Bvc2l0aXZlOiJyb3VuZEhhbGZVcCIsbmVnYXRpdmU6InJvdW5kSGFsZkRvd24ifTtjb25zdCBzPXtmbG9vcjpNYXRoLmZsb29yLGNlaWw6TWF0aC5jZWlsLHJvdW5kSGFsZlVwOmU9Pk1hdGgucm91bmQoZSksCnJvdW5kSGFsZkRvd246ZT0+LU1hdGgucm91bmQoLWUpfTtmdW5jdGlvbiB1KGUsdCxuPWEscil7bGV0IGw9ZS5tYWduaXR1ZGU7Y29uc3QgdT0xMCoqdC8ocnx8MSk7cmV0dXJuIGwqPXUsbD1mdW5jdGlvbihlLHQsbil7Y29uc3Qgcj0ic3RyaW5nIj09dHlwZW9mIG4/bjpuW3RdO3JldHVybiBzW3JdKGUpfShsLGUuc2lnbnVtLG4pLGwvPXUsKDAsby5mb3JtYXROdW1iZXIpKGwsKDAsaS5nZXROdW1iZXJGb3JtYXQpKGUuaWdub3JlTG9jYWxlTnVtYmVyRm9ybWF0KSx0LGUubm9FeHBvbmVudGlhbEZvcm0pfWZ1bmN0aW9uIGMoZSx0KXtyZXR1cm4rZS50b0ZpeGVkKHQpfWZ1bmN0aW9uIGQoZSl7Y29uc3QgdD1lPy5kZWNpbWFsUGxhY2VzO2lmKHZvaWQgMD09PXQpcmV0dXJuIGZ1bmN0aW9uKGUpe2NvbnN0IHQ9ZT8uc3RhbmRhcmROb3RhdGlvbk9ubHk7cmV0dXJue2Zvcm1hdFN0ZXA6ZT0+bC5OdW1lcmljRm9ybWF0dGVyLmZvcm1hdE5vRShlLnByb3BlcnRpZXMubWFnbml0dWRlLCgwLGkuZ2V0TnVtYmVyRm9ybWF0KShlLnByb3BlcnRpZXMuaWdub3JlTG9jYWxlTnVtYmVyRm9ybWF0KSkscGFyc2VTdGVwOmU9Pntjb25zdCBuPSgwLG8ucGFyc2VOdW1iZXIpKGUubmV4dFN0ZXBTdHJpbmcsKDAsaS5nZXROdW1iZXJGb3JtYXQpKGUubmV4dFN0ZXBQcm9wZXJ0aWVzLmlnbm9yZUxvY2FsZU51bWJlckZvcm1hdCkpO3JldHVybiB0JiYoaXNOYU4obil8fC9lL2kudGVzdChlLm5leHRTdGVwU3RyaW5nKSk/e3JlczohMX06KDAsci5wYXJzZVN1Y2Nlc3MpKFsiIix7Li4uZS5uZXh0U3RlcFByb3BlcnRpZXMsbWFnbml0dWRlOm59XSl9fX0oKTtjb25zdCBuPWU/LnJvdW5kaW5nTW9kZSxhPWU/LnN0ZXA7cmV0dXJue2Zvcm1hdFN0ZXA6ZT0+dShlLnByb3BlcnRpZXMsdCxuLGEpLHBhcnNlU3RlcDplPT4oMCxyLnBhcnNlU3VjY2VzcykoWyIiLHsuLi5lLm5leHRTdGVwUHJvcGVydGllcyxtYWduaXR1ZGU6YygoMCxvLnBhcnNlTnVtYmVyKShlLm5leHRTdGVwU3RyaW5nLCgwLGkuZ2V0TnVtYmVyRm9ybWF0KShlLm5leHRTdGVwUHJvcGVydGllcy5pZ25vcmVMb2NhbGVOdW1iZXJGb3JtYXQpKSx0KX1dKX19ZnVuY3Rpb24gcChlLHQsbil7aWYoMD09PXQpcmV0dXJuIDA7Y29uc3Qgcj1sLk51bWVyaWNGb3JtYXR0ZXIuZm9ybWF0Tm9FKGUpLnNwbGl0KCIuIik7aWYoci5sZW5ndGg8PTEpc3dpdGNoKG4pe2Nhc2UiaGlkZURlY2ltYWxQb2ludEFuZFplcm9zIjpyZXR1cm4gMDtjYXNlInNob3dEZWNpbWFsUG9pbnRBbmRaZXJvcyI6cmV0dXJuIHR9cmV0dXJuIHJbMV0uc3BsaXQoIiIpLmZpbmRJbmRleCgoZT0+IjAiIT09ZSkpK3R9ZnVuY3Rpb24gbShlKXtjb25zdCB0PWUub25JbnRlZ2VyQmVoYXZpb3J8fCJzaG93RGVjaW1hbFBvaW50QW5kWmVyb3MiO3JldHVybntmb3JtYXRTdGVwOm49PnUobi5wcm9wZXJ0aWVzLHAobi5wcm9wZXJ0aWVzLm1hZ25pdHVkZSxlLmRlY2ltYWxQbGFjZXMsdCkpLHBhcnNlU3RlcDpuPT57Y29uc3QgbD0oMCxvLnBhcnNlTnVtYmVyKShuLm5leHRTdGVwU3RyaW5nLCgwLGkuZ2V0TnVtYmVyRm9ybWF0KShuLm5leHRTdGVwUHJvcGVydGllcy5pZ25vcmVMb2NhbGVOdW1iZXJGb3JtYXQpKSxhPWMobCxwKGwsZS5kZWNpbWFsUGxhY2VzLHQpKTtyZXR1cm4oMCxyLnBhcnNlU3VjY2VzcykoWyIiLHsuLi5uLm5leHRTdGVwUHJvcGVydGllcyxtYWduaXR1ZGU6YX1dKX19fX0sMTQ3NjIzKGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse2xvbmdNaW51c1NpZ246KCk9PnUsc2lnbnVtU3RlcDooKT0+Y30pO3ZhciByPW4oOTM3OTI4KSxvPW4oODcyNjEpLGw9big2MzE0MzUpLGk9big3MDg0NTApO2Z1bmN0aW9uIGEoZSl7cmV0dXJuIHQ9PnQudmFsdWU+ZX1mdW5jdGlvbiBzKGUpe2NvbnN0IHQ9KG49ZS5jYXNlcyx7Zm9ybWF0U3RlcDplPT57Zm9yKGNvbnN0IHQgb2YgbilpZih0Lm1hdGNoVmFsdWUoZSkpcmV0dXJuIHQuZm9ybWF0U3RlcChlKTtyZXR1cm4gZS5wcmV2aW91c1N0ZXBTdHJpbmd9fSk7dmFyIG47aWYoISgwLGwuaXNFdmVyeVBhcnNlckFibGVUb1BhcnNlKShlLmNhc2VzKSlyZXR1cm57Li4udCxwYXJzZVN0ZXA6dm9pZCAwfTtjb25zdCBvPWZ1bmN0aW9uKGUpe3JldHVybigwLGwuaXNFdmVyeVBhcnNlckFibGVUb1BhcnNlKShlKT97cGFyc2VTdGVwOnQ9Pntmb3IoY29uc3QgbiBvZiBlKWlmKG4ubWF0Y2hTdHJpbmcodCkpcmV0dXJuIG4ucGFyc2VTdGVwKHQpO3JldHVybigwLHIucGFyc2VTdWNjZXNzKShbdC5uZXh0U3RlcFN0cmluZyx0Lm5leHRTdGVwUHJvcGVydGllc10pfX06aS51bnBhcnNhYmxlU3RlcH0oZS5jYXNlcyk7cmV0dXJuey4uLnQsLi4ub319Y29uc3QgdT0i4oiSIjtmdW5jdGlvbiBjKGUpe3JldHVybiBmdW5jdGlvbihlKXtyZXR1cm4gcyh7Y2FzZXM6ZS5jYXNlcy5tYXAoKHQ9Pih7Zm9ybWF0U3RlcDpuPT4oMCxvLmFwcGVuZEFmZml4KShuLnByZXZpb3VzU3RlcFN0cmluZyx0LmFmZml4LGUuc2lkZSkscGFyc2VTdGVwOm49PigwLHIucGFyc2VTdWNjZXNzKShbKDAsby50cmltQWZmaXgpKG4ubmV4dFN0ZXBTdHJpbmcsdC5hZmZpeCxlLnNpZGUpLHZvaWQgMCE9PXQucGFyc2U/dC5wYXJzZShuKTpuLm5leHRTdGVwUHJvcGVydGllc10pLG1hdGNoVmFsdWU6ZT0+dm9pZCAwPT09dC5tYXRjaFZhbHVlfHx0Lm1hdGNoVmFsdWUoZSksbWF0Y2hTdHJpbmc6bj0+KDAsby5oYXNBZmZpeCkobi5uZXh0U3RlcFN0cmluZyx0LmFmZml4LGUuc2lkZSl9KSkpfSl9KHtzaWRlOmUuc2lkZXx8InByZWZpeCIsY2FzZXM6W3thZmZpeDplLm5lZ2F0aXZlU2lnbixtYXRjaFZhbHVlOih0PTAsZT0+ZS52YWx1ZTx0KSxwYXJzZTplPT4oe3NpZ251bToibmVnYXRpdmUiLG1hZ25pdHVkZTpNYXRoLmFicyhlLm5leHRTdGVwUHJvcGVydGllcy5tYWduaXR1ZGUpLGlnbm9yZUxvY2FsZU51bWJlckZvcm1hdDplLm5leHRTdGVwUHJvcGVydGllcz8uaWdub3JlTG9jYWxlTnVtYmVyRm9ybWF0fSl9LHthZmZpeDplLnBvc2l0aXZlU2lnbj8/IiIsbWF0Y2hWYWx1ZTphKDApLHBhcnNlOmU9Pih7c2lnbnVtOiJwb3NpdGl2ZSIsCm1hZ25pdHVkZTpNYXRoLmFicyhlLm5leHRTdGVwUHJvcGVydGllcy5tYWduaXR1ZGUpLGlnbm9yZUxvY2FsZU51bWJlckZvcm1hdDplLm5leHRTdGVwUHJvcGVydGllcz8uaWdub3JlTG9jYWxlTnVtYmVyRm9ybWF0fSl9XX0pO3ZhciB0fX0sNTIzMDcxKGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse01BVEhfTUlOVVNfU0lHTjooKT0+byxyb3VuZFRvVGhpcmREaWdpdDooKT0+bH0pO3ZhciByPW4oMTA3MDQ1KTtjb25zdCBvPSLiiJIiO2Z1bmN0aW9uIGwoZSx0KXtjb25zdCBuPU1hdGguYWJzKE1hdGgucm91bmQoMWUzKmUpLzFlMyksWyxsXT1uLnRvRml4ZWQoMykuc3BsaXQoIi4iKSxpPSF0JiZsLmVuZHNXaXRoKCIwIik/bmV3IHIuTnVtZXJpY0Zvcm1hdHRlcih7cHJlY2lzaW9uOjJ9KTpuZXcgci5OdW1lcmljRm9ybWF0dGVyKHtwcmVjaXNpb246M30pO3JldHVybmAke2U8MD9vOiIifSR7aS5mb3JtYXQobil9YH19LDMzNDI1NChlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtBU1RSZW5kZXJlckNvbnRleHQ6KCk9PnMsY3JlYXRlUmVuZGVyZXJDb250ZXh0OigpPT5sfSk7dmFyIHI9big3Nzk0NzQpO2Z1bmN0aW9uIG8oZSl7Y29uc3QgdD1lLnRleHQucmVwbGFjZSgvXHIvZywiIikuc3BsaXQoIlxuIiksbj10Lmxlbmd0aDtyZXR1cm4gci5jcmVhdGVFbGVtZW50KHIuRnJhZ21lbnQsbnVsbCx0Lm1hcCgoKGUsdCk9PnIuY3JlYXRlRWxlbWVudChyLkZyYWdtZW50LHtrZXk6dH0sZSYmci5jcmVhdGVFbGVtZW50KCJzcGFuIixudWxsLGUpLHQ8bi0xJiZyLmNyZWF0ZUVsZW1lbnQoImJyIixudWxsKSkpKSl9ZnVuY3Rpb24gbChlLHQpe3JldHVybntjb25maWc6ZSxyZW5kZXJDaGlsZHJlbjppLmJpbmQobnVsbCxlLHQ/PyIiKSxyZW5kZXJOb2RlOmEuYmluZChudWxsLGUsdD8/IiIpfX1mdW5jdGlvbiBpKGUsdCxuKXtyZXR1cm4gdm9pZCAwPT09bi5jaGlsZHJlbj9bbnVsbF06bi5jaGlsZHJlbi5tYXAoYS5iaW5kKG51bGwsZSx0KSl9ZnVuY3Rpb24gYShlLHQsbixsKXtpZigic3RyaW5nIj09dHlwZW9mIG4pe2NvbnN0IGU9dD9gdGV4dC0ke2x9LSR7dH1gOmB0ZXh0LSR7bH1gO3JldHVybiByLmNyZWF0ZUVsZW1lbnQobyx7dGV4dDpuLGtleTplfSl9Y29uc3QgaT1uLnR5cGU7bi5rZXl8fChuLmtleT10P2Ake2l9LSR7bH0tJHt0fWA6YCR7aX0tJHtsfWApO2NvbnN0IGE9ZVtpXTtyZXR1cm4gdm9pZCAwPT09YT9udWxsOmEobixsKX1jb25zdCBzPXIuY3JlYXRlQ29udGV4dChsKHt9KSl9LDEwMzUzMShlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtBU1RUcmVlOigpPT5sLGlzQVNUUm9vdE5vZGU6KCk9Pml9KTt2YXIgcj1uKDc3OTQ3NCksbz1uKDMzNDI1NCk7ZnVuY3Rpb24gbChlKXtjb25zdHtyb290Tm9kZTp0LHJlbmRlcmVyczpuLGlkOmwsY2xhc3NOYW1lOml9PWUsYT0oMCxvLmNyZWF0ZVJlbmRlcmVyQ29udGV4dCkobixsKTtyZXR1cm4gci5jcmVhdGVFbGVtZW50KG8uQVNUUmVuZGVyZXJDb250ZXh0LlByb3ZpZGVyLHt2YWx1ZTphfSxyLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6aX0sYS5yZW5kZXJDaGlsZHJlbih0KSkpfWZ1bmN0aW9uIGkoZSl7dHJ5e2NvbnN0e3R5cGU6dH09ZTtyZXR1cm4icm9vdCI9PT10fWNhdGNoe3JldHVybiExfX19LDM3NDM3MShlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtBUkNfSE9WRVJfV0lEVEg6KCk9PmksQ0VOVEVSX0xBQkVMU19BTkdMRTooKT0+YSxDSVJDTEVTX09WRVJMQVA6KCk9PmYsQ09MT1JfTEVWRUxfQlJJR0hUTkVTU19TVEVQOigpPT5wLERFRkFVTFRfQVJDX1dJRFRIOigpPT5vLERJQU1FVEVSOigpPT5yLEZVTExfQ0lSQ0xFOigpPT5zLElOREVYRVNfU0VQQVJBVE9SOigpPT5tLE1JTl9DT09SRElOQVRFX1ZBTFVFOigpPT51LE1JTl9WSVNJQkxFX1BFUkNFTlRTX1ZBTFVFOigpPT5jLE9WRVJMQVBfREVMVEE6KCk9PmQsU1RBUlRfQU5HTEU6KCk9Pmx9KTtjb25zdCByPTEwMCxvPTMwLGw9LU1hdGguUEkvMixpPTMsYT1NYXRoLlBJLzIuNSxzPTIqTWF0aC5QSSx1PS4wMDEsYz0yLjgsZD0yLHA9MTAsbT0iXyIsZj0xO3ZhciB2OyFmdW5jdGlvbihlKXtlLkhhc0hvdmVyPSJkYXRhLXBpZS1jaGFydC1oYXMtaG92ZXIifSh2fHwodj17fSkpfSwxOTMwMDQoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7RmxvYXRpbmdUb29sdGlwOigpPT51fSk7dmFyIHI9big3Nzk0NzQpLG89big5MTQ0ODcpLGw9bi5uKG8pLGk9big1ODU0OCksYT1uKDcwMDU2MSkscz1uKDg1MDI0Nyk7Y2xhc3MgdSBleHRlbmRzIHIuUHVyZUNvbXBvbmVudHtjb25zdHJ1Y3RvcihlKXtzdXBlcihlKSx0aGlzLl9yYWZVcGRhdGU9bnVsbCx0aGlzLl9oaWRlPSgpPT57dGhpcy51cGRhdGVEYXRhKG51bGwpfSx0aGlzLl9yZWY9ci5jcmVhdGVSZWYoKSx0aGlzLnN0YXRlPXtkYXRhOm51bGx9fWNvbXBvbmVudERpZE1vdW50KCl7ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigic2Nyb2xsIix0aGlzLl9oaWRlKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaHN0YXJ0Iix0aGlzLl9oaWRlKX1jb21wb25lbnRXaWxsVW5tb3VudCgpe251bGwhPT10aGlzLl9yYWZVcGRhdGUmJmNhbmNlbEFuaW1hdGlvbkZyYW1lKHRoaXMuX3JhZlVwZGF0ZSksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigic2Nyb2xsIix0aGlzLl9oaWRlKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJ0b3VjaHN0YXJ0Iix0aGlzLl9oaWRlKX1yZW5kZXIoKXtjb25zdHtkYXRhOmV9PXRoaXMuc3RhdGU7aWYoIWUpcmV0dXJuIHIuY3JlYXRlRWxlbWVudChyLkZyYWdtZW50LG51bGwpO2NvbnN0e2lzTGVmdDp0LHRleHQ6bixjb3VudDpvLHBlcmNlbnRzOnUsdW5pdDpjfT1lO3JldHVybiByLmNyZWF0ZUVsZW1lbnQoaS5Qb3J0YWwse3BvaW50ZXJFdmVudHM6Im5vbmUiLGxlZnQ6IjAifSxyLmNyZWF0ZUVsZW1lbnQoImRpdiIse3JlZjp0aGlzLl9yZWYsY2xhc3NOYW1lOmwoKShzLndyYXAsdD9zLmxlZnQ6cy5yaWdodCksc3R5bGU6ey4uLnRoaXMuX2dldFRvb2x0aXBTdHlsZSgpfX0sci5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6cy50b29sdGlwCn0sci5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6bCgpKHMuZWFyLHQ/c1siZWFyLS1iZWZvcmUiXTpzWyJlYXItLWFmdGVyIl0pfSksci5jcmVhdGVFbGVtZW50KGEuTGVnZW5kQ29sb3JTd2F0Y2gse2NsYXNzTmFtZTpzLnN3YXRjaH0pLHIuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOnMudGV4dH0sci5jcmVhdGVFbGVtZW50KCJkaXYiLG51bGwsbiksci5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6cy5jb3VudH0sci5jcmVhdGVFbGVtZW50KCJzcGFuIixudWxsLG8pLGMmJnIuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZTpzLnVuaXR9LGAgJHtjfWApLG51bGwhPT11JiZyLmNyZWF0ZUVsZW1lbnQoInNwYW4iLG51bGwsYCAoJHt1fSlgKSkpKSkpfXVwZGF0ZURhdGEoZSl7bnVsbCE9PXRoaXMuX3JhZlVwZGF0ZSYmY2FuY2VsQW5pbWF0aW9uRnJhbWUodGhpcy5fcmFmVXBkYXRlKSx0aGlzLl9yYWZVcGRhdGU9cmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgoKT0+e3RoaXMuc2V0U3RhdGUoe2RhdGE6ZX0pLHRoaXMuX3JhZlVwZGF0ZT1udWxsfSkpfWdldFdpZHRoKCl7cmV0dXJuIHRoaXMuX3JlZi5jdXJyZW50Py5jbGllbnRXaWR0aH1fZ2V0VG9vbHRpcFN0eWxlKCl7Y29uc3R7ZGF0YTplfT10aGlzLnN0YXRlO2lmKCFlKXJldHVybnt9O2NvbnN0e3g6dCx5Om4sY29sb3I6cn09ZSxvPWB0cmFuc2xhdGUoJHt0fXB4LCAke259cHgpYDtyZXR1cm57Y29sb3I6cix0cmFuc2Zvcm06byxXZWJraXRUcmFuc2Zvcm06b319fX0sMzIzMTE1KGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse1BpZUNoYXJ0OigpPT5BfSk7dmFyIHI9big3Nzk0NzQpLG89big5MTQ0ODcpLGw9bi5uKG8pLGk9bigxMzg2MzgpLGE9bigzNzQzNzEpLHM9big2ODk4OTQpLHU9bigyNzYwMTkpLGM9big1NTY5MTEpLGQ9big2MTYzMTEpLHA9big0NjE1ODcpLG09big2OTg2NjcpO2Z1bmN0aW9uIGYoZSl7Y29uc3R7aWQ6dCxjbGFzc05hbWU6bixzdGFydEFuZ2xlOm8sZW5kQW5nbGU6aSxjb2xvcjpzLG9uQ2xpY2s6dSxzZWxlY3RhYmxlOmMsc2hvd1BlcmNlbnRzOmY9ITAsc2hvd0hvdmVyOmg9ITAsZGlhbWV0ZXI6UyxzdGFydE9mZnNldDpFPTAsYXJjV2lkdGg6QyxjaXJjbGVHYXA6YixhcmNHYXA6eD0wLGlubmVyVGV4dDpUfT1lLFtOLExdPSgwLHIudXNlU3RhdGUpKCExKSxbdyxNXT0oMCxyLnVzZVN0YXRlKSghMSksUD0oMCxyLnVzZVJlZikobnVsbCksQT0oMCxyLnVzZVJlZikobnVsbCksRD0oMCxyLnVzZUlkKSgpLFI9Qy1iLF89KDAscC5nZXRSYWRpdXMpKFMpLEk9eD4wP3gvNDowLGs9ZyhfK0UsKDAscC5nZXRJbm5lckFyY1JhZGl1cykoUyxSKSxfLG8saSxJKSxPPWcoXytFLCgwLHAuZ2V0SW5uZXJBcmNSYWRpdXMpKFMsQyksXyxvLGksMCksRj1NYXRoLmFicyhpLW8pLEI9Xy0oMCxwLmdldExhYmVsUGFkZGluZykoUiksVj1mdW5jdGlvbihlLHQsbixyKXtjb25zdCBvPShuK3IpLzI7cmV0dXJuKDAscC5nZXRDb29yZGluYXRlUG9pbnQpKGUsdCxvKX0oXyxCLG8saSksVT0oMCxyLnVzZU1lbW8pKCgoKT0+KHsiLS1waWUtY2hhcnQtYXJjLWZhbGxiYWNrLWNvbG9yIjpzfSkpLFtzXSk7cmV0dXJuKDAsZC51c2VJc29tb3JwaGljTGF5b3V0RWZmZWN0KSgoKCk9Pntjb25zdCBlPVAuY3VycmVudD8uZ2V0VG90YWxMZW5ndGgoKSx0PUEuY3VycmVudD8uZ2V0Q29tcHV0ZWRUZXh0TGVuZ3RoKCk7ZSYmdCYmTSh0PGUpfSksW28saSx4LEMsYixUXSksci5jcmVhdGVFbGVtZW50KCJnIix7Y2xhc3NOYW1lOmwoKShuLG0ud3JhcCksb25DbGljazpmdW5jdGlvbigpe3UmJnUodCk7aWYoIWMpcmV0dXJuO0woIU4pfSxzdHlsZTpVfSxyLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtjbGFzc05hbWU6bS52aXNpYmxlQ29udGFpbmVyLGQ6a30pLHIuY3JlYXRlRWxlbWVudCgicGF0aCIse2NsYXNzTmFtZTptLmhvdmVyRGV0ZWN0b3IsZDpPLCJkYXRhLWlkIjp0fSksaCYmci5jcmVhdGVFbGVtZW50KCJwYXRoIix7Y2xhc3NOYW1lOm0uaG92ZXJDb250YWluZXIsZDprLGZpbGxPcGFjaXR5Oi4yNX0pLGMmJk4mJnIuY3JlYXRlRWxlbWVudCgicGF0aCIse2NsYXNzTmFtZTptLnNlbGVjdGVkLGQ6dihfLF8rYS5BUkNfSE9WRVJfV0lEVEgsbyxpKSxzdHJva2U6cyxzdHJva2VXaWR0aDoyLGZpbGw6Im5vbmUifSksZiYmci5jcmVhdGVFbGVtZW50KCJ0ZXh0Iix7Y2xhc3NOYW1lOm0ubGFiZWwseDpWLngseTpWLnksZG9taW5hbnRCYXNlbGluZToibWlkZGxlIn0sKDAscC5mb3JtYXRQZXJjZW50KShGLGEuRlVMTF9DSVJDTEUpKSxUJiZyLmNyZWF0ZUVsZW1lbnQoci5GcmFnbWVudCxudWxsLHIuY3JlYXRlRWxlbWVudCgicGF0aCIse3JlZjpQLGlkOkQsZDp5KF8rRSxCLG8saSxJKSxmaWxsOiJub25lIn0pLHIuY3JlYXRlRWxlbWVudCgidGV4dCIse3JlZjpBLGNsYXNzTmFtZTpsKCkobS5pbm5lclRleHQsdyYmbS52aXNpYmxlKSxkb21pbmFudEJhc2VsaW5lOiJjZW50cmFsIn0sci5jcmVhdGVFbGVtZW50KCJ0ZXh0UGF0aCIse2hyZWY6YCMke0R9YCxzdGFydE9mZnNldDoiNTAlIix0ZXh0QW5jaG9yOiJtaWRkbGUifSxUKSkpKX1mdW5jdGlvbiB2KGUsdCxuLHIsbz0hMCl7cmV0dXJuYE0ke2goZSx0LG8/bjpyLG8/cjpuLG8pfWB9ZnVuY3Rpb24gZyhlLHQsbixyLG8sbCl7Y29uc3QgaT1TKG4scixvLGwpO2lmKG51bGw9PT1pKXJldHVybiIiO2NvbnN0IGE9Uyh0LHIsbyxsKTtsZXQgcztpZihudWxsPT09YSl7Y29uc3QgdD0oby1yKS8yLG49KDAscC5nZXRDb29yZGluYXRlUG9pbnQpKGUsbC9NYXRoLnNpbih0KSwocitvKS8yKTtzPWAke24ueH0sJHtuLnl9YH1lbHNlIHM9aChlLHQscithLG8tYSk7cmV0dXJuYE0ke3N9TCR7aChlLG4sby1pLHIraSwhMSl9emB9ZnVuY3Rpb24gaChlLHQsbixyLG89ITApe2NvbnN0IGw9KDAscC5nZXRDb29yZGluYXRlUG9pbnQpKGUsdCxuKSxpPSgwLHAuZ2V0Q29vcmRpbmF0ZVBvaW50KShlLHQscik7bC54PT09aS54JiZsLnk9PT1pLnkmJigobz9sOmkpLng9KDAscC5udW1iZXJUb0Nvb3JkaW5hdGVTdHJpbmcpKGUrYS5NSU5fQ09PUkRJTkFURV9WQUxVRSkpCjtjb25zdCBzPU1hdGguYWJzKG4tcik+TWF0aC5QST8xOjAsdT1vPzE6MDtyZXR1cm5gJHtsLnh9LCR7bC55fUEke3R9LCR7dH0gMCwke3N9LCR7dX0gJHtpLnh9LCR7aS55fWB9ZnVuY3Rpb24geShlLHQsbixyLG8pe2NvbnN0IGw9Uyh0LG4scixvKTtpZihudWxsPT09bClyZXR1cm4iIjtjb25zdCBpPShuK3IpLzI7cmV0dXJuIHYoZSx0LG4rbCxyLWwsIShpPjAmJmk8TWF0aC5QSSkpfWZ1bmN0aW9uIFMoZSx0LG4scil7Y29uc3Qgbz1NYXRoLmFzaW4oci9lKTtyZXR1cm4gTWF0aC5hYnModC1uKT4yKm8/bzpudWxsfXZhciBFPW4oMTkzMDA0KSxDPW4oOTQ4MzgwKSxiPW4oMTQ4NDU2KTtmdW5jdGlvbiB4KGUpe2NvbnN0e2NsYXNzTmFtZTp0LGluZGV4Om4sdGl0bGU6byxvbkFsbFJlYWR5OmEscmVjdHNNYXA6c309ZSx1PSgwLHIudXNlUmVmKShudWxsKTtyZXR1cm4oMCxkLnVzZUlzb21vcnBoaWNMYXlvdXRFZmZlY3QpKCgoKT0+e2NvbnN0IGU9KDAsaS5lbnN1cmVOb3ROdWxsKSh1LmN1cnJlbnQpO3JldHVybiBlLmNsYXNzTGlzdC5yZW1vdmUoYi52aXNpYmxlKSxzLnNldChuLGUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkpLGEuc3Vic2NyaWJlKG51bGwsYyksKCk9PnthLnVuc3Vic2NyaWJlKG51bGwsYyl9fSksW24scyxhXSksci5jcmVhdGVFbGVtZW50KCJkaXYiLHtyZWY6dSxjbGFzc05hbWU6bCgpKHQsYi5jb250YWluZXIpfSxvKTtmdW5jdGlvbiBjKCl7aWYoIXUuY3VycmVudClyZXR1cm47Y29uc3R7eDplLHdpZHRoOnR9PXUuY3VycmVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtlPDB8fHQrZT53aW5kb3cuaW5uZXJXaWR0aHx8MSE9PXMuc2l6ZSYmKG0obisxKXx8bShuLTEpKXx8dS5jdXJyZW50LmNsYXNzTGlzdC5hZGQoYi52aXNpYmxlKX1mdW5jdGlvbiBtKGUpe2xldCB0PWUlcy5zaXplO3JldHVybiB0PDAmJih0PXMuc2l6ZSt0KSxCb29sZWFuKHUuY3VycmVudCYmKDAscC5jaGVja092ZXJsYXApKHUuY3VycmVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSwoMCxpLmVuc3VyZURlZmluZWQpKHMuZ2V0KHQpKSkpfX12YXIgVD1uKDM4MDQ0Nyk7ZnVuY3Rpb24gTihlKXtjb25zdHthcmNMYWJlbENsYXNzTmFtZTp0LGRhdGE6bixhcmNXaWR0aDpvfT1lLGw9KDAsci51c2VSZWYpKG5ldyBDLkRlbGVnYXRlKSxpPW5ldyBNYXAscz0oMCxwLmdldFJhZGl1cykoYS5ESUFNRVRFUik7cmV0dXJuKDAsZC51c2VJc29tb3JwaGljTGF5b3V0RWZmZWN0KSgoKCk9PmwuY3VycmVudC5maXJlKCkpLFtuXSksci5jcmVhdGVFbGVtZW50KHIuRnJhZ21lbnQsbnVsbCxuLm1hcCgoKHthbmdsZTplLHRpdGxlOm59LGEpPT5yLmNyZWF0ZUVsZW1lbnQoImRpdiIse2tleTphLGNsYXNzTmFtZTpMKGUpLHN0eWxlOncoZSxzKygwLHAuZ2V0TGFiZWxQYWRkaW5nKShvKSxzKX0sci5jcmVhdGVFbGVtZW50KHgse2NsYXNzTmFtZTp0LGluZGV4OmEsdGl0bGU6bixyZWN0c01hcDppLG9uQWxsUmVhZHk6bC5jdXJyZW50fSkpKSkpfWZ1bmN0aW9uIEwoZSl7Y29uc3QgdD1NYXRoLmNvcyhlKSxuPU1hdGguY29zKGEuQ0VOVEVSX0xBQkVMU19BTkdMRSk7cmV0dXJuIGwoKShULmxhYmVsV3JhcCxNYXRoLmFicyh0KT49biYmKHQ+MD9ULnJpZ2h0OlQubGVmdCkpfWZ1bmN0aW9uIHcoZSx0LG4pe2NvbnN0IHI9KDAscC5nZXRDb29yZGluYXRlUG9pbnQpKG4sdCxlKTtyZXR1cm57dG9wOmAke3IueX0lYCxsZWZ0OmAke3IueH0lYH19dmFyIE09big2MTY2NDMpLFA9big2NzY4MjApO2Z1bmN0aW9uIEEoZSl7Y29uc3R7dGl0bGU6dCxjaXJjbGVzOm4sc2VsZWN0YWJsZTpvLGhvcml6b250YWxGbGlwOmQsc2hvd1Rvb2x0aXA6bT0hMCxzaG93TGFiZWxzOnY9ITAsc2hvd1BlcmNlbnRzOmc9ITAsZ2V0QXJjQ29sb3I6aD1wLmdldERlZmF1bHRDb2xvcixzaG93Q291bnQ6eT0hMCxzaG93SG92ZXI6Uyx0aXRsZUNsYXNzTmFtZTpDLGFyY0xhYmVsQ2xhc3NOYW1lOmIsdGl0bGVDb2xvcjp4LHNvcnREYXRhOlQ9ITAsYXJjV2lkdGg6TD1hLkRFRkFVTFRfQVJDX1dJRFRILGFyY0dhcDp3LHVuaXQ6QX09ZSxbRCxSXT0oMCxyLnVzZVN0YXRlKShuZXcgU2V0KSxfPSgwLHIudXNlUmVmKShudWxsKSxJPSgwLHIudXNlUmVmKShudWxsKSxrPSgwLE0udXNlVGhlbWUpKCksTz1hLkRJQU1FVEVSLUwqbi5sZW5ndGgrIiUiLEY9e2hlaWdodDpPLHdpZHRoOk99LEI9KDAsci51c2VNZW1vKSgoKCk9Pntjb25zdCBlPShlLHQpPT50LmNvdW50LWUuY291bnQ7bGV0IHQ9VD9bLi4ubl0ubWFwKCh0PT5bLi4udF0uc29ydChlKSkpOigwLGMuZGVlcENvcHkpKG4pO3JldHVybiBkJiYodD10Lm1hcCgoZT0+Wy4uLmVdLnJldmVyc2UoKSkpKSx0fSksW24sZCxUXSksVj0oMCxyLnVzZU1lbW8pKCgoKT0+Qi5tYXAoKGU9PmUubWFwKChlPT5lLm5hbWUpKSkpKSxbQl0pLFU9KDAsci51c2VNZW1vKSgoKCk9PkIubWFwKChlPT5lLm1hcCgoZT0+ZS5jb3VudCkpKSkpLFtCXSksSD0oMCxyLnVzZU1lbW8pKCgoKT0+VS5tYXAoKGU9PmUucmVkdWNlKCgoZSx0KT0+ZSt0KSwwKSkpKSxbVV0pLCQ9KDAsci51c2VNZW1vKSgoKCk9PlUubWFwKCgoZSx0KT0+e2NvbnN0IG49W107bGV0IHI9YS5TVEFSVF9BTkdMRTtmb3IobGV0IG89MDtvPGUubGVuZ3RoO28rKyl7Y29uc3QgbD1yK2EuRlVMTF9DSVJDTEUqZVtvXS9IW3RdO24ucHVzaChbcixsXSkscj1sfXJldHVybiBufSkpKSxbVSxIXSksVz0kLmxlbmd0aD4xP251bGw6JFswXS5sZW5ndGgscT0oMCxyLnVzZU1lbW8pKCgoKT0+VS5ldmVyeSgoKGUsdCk9PmUuZXZlcnkoKGU9PmU+PTApKSYmSFt0XT4wKSkpLFtVLEhdKSxHPSQubWFwKCgoZSx0KT0+ci5jcmVhdGVFbGVtZW50KHIuRnJhZ21lbnQse2tleTp0fSxlLm1hcCgoKGUsbik9PnIuY3JlYXRlRWxlbWVudChmLHtrZXk6YCR7dH0ke2EuSU5ERVhFU19TRVBBUkFUT1J9JHtufWAsaWQ6YCR7dH0ke2EuSU5ERVhFU19TRVBBUkFUT1J9JHtufWAsY2xhc3NOYW1lOkJbdF1bbl0uY2xhc3NOYW1lLHN0YXJ0QW5nbGU6ZVswXSxlbmRBbmdsZTplWzFdLGNvbG9yOmgoe2NpcmNsZUluZGV4OnQsYXJjSW5kZXg6WCh0LG4pLHRoZW1lOmt9KSxvbkNsaWNrOmosCnNlbGVjdGFibGU6byxzaG93UGVyY2VudHM6ZyxzaG93SG92ZXI6UyxkaWFtZXRlcjphLkRJQU1FVEVSLUwqdCxhcmNXaWR0aDpMLHN0YXJ0T2Zmc2V0OkwqdC8yLGlubmVyVGV4dDpCW3RdW25dLmlubmVyVGV4dCxjaXJjbGVHYXA6dDwkLmxlbmd0aC0xP3d8fC1hLkNJUkNMRVNfT1ZFUkxBUDowLGFyY0dhcDp3fSkpKSkpKSxZPSgwLHIudXNlTWVtbykoKCgpPT57aWYoViYmdilyZXR1cm4gVS5tYXAoKChlLHQpPT57Y29uc3Qgbj1bXTtsZXQgcj1hLlNUQVJUX0FOR0xFO2ZvcihsZXQgbz0wO288ZS5sZW5ndGg7bysrKXtjb25zdCBsPXIrYS5GVUxMX0NJUkNMRSplW29dL0hbdF07bi5wdXNoKHt0aXRsZTpWW3RdW29dLGFuZ2xlOihyK2wpLzJ9KSxyPWx9cmV0dXJuIG59KSl9KSxbVSxILFYsdl0pLHo9KDAsci51c2VNZW1vKSgoKCk9PntpZihZKXJldHVybiBZLm1hcCgoKGUsdCk9PnIuY3JlYXRlRWxlbWVudChOLHtrZXk6dCxhcmNMYWJlbENsYXNzTmFtZTpiLGRhdGE6ZS5maWx0ZXIoKChlLG4pPT4hQlt0XVtuXS5oaWRlTGFiZWwpKSxhcmNXaWR0aDpMfSkpKX0pLFtZLEwsQl0pO3JldHVybigwLHIudXNlRWZmZWN0KSgoKCk9PntpZihtKXJldHVybiB1Lmdsb2JhbENsb3NlRGVsZWdhdGUuc3Vic2NyaWJlKG51bGwsZSksKCk9Pnt1Lmdsb2JhbENsb3NlRGVsZWdhdGUudW5zdWJzY3JpYmUobnVsbCxlKX07ZnVuY3Rpb24gZSgpe0kuY3VycmVudD8udXBkYXRlRGF0YShudWxsKX19KSxbbV0pLHE/ci5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6UC5waWVDb250YWluZXJ9LHIuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOmwoKShQLmNlbnRlclRleHQsQyksc3R5bGU6ey4uLkYsY29sb3I6eH19LHkmJnIuY3JlYXRlRWxlbWVudCgiZGl2IixudWxsLFcpLHIuY3JlYXRlRWxlbWVudCgiZGl2IixudWxsLHQpKSxyLmNyZWF0ZUVsZW1lbnQoInN2ZyIse3JlZjpfLHhtbG5zOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsY2xhc3NOYW1lOlAuY2hhcnQsd2lkdGg6YS5ESUFNRVRFUixoZWlnaHQ6YS5ESUFNRVRFUix2aWV3Qm94OmAwIDAgJHthLkRJQU1FVEVSfSAke2EuRElBTUVURVJ9YCxzdHJva2VXaWR0aDoiMCIsb25Nb3VzZU1vdmU6ZnVuY3Rpb24oZSl7aWYoIW18fCFWKXJldHVybjtjb25zdCB0PSgwLGkuZW5zdXJlTm90TnVsbCkoSS5jdXJyZW50KSxyPXQ/LmdldFdpZHRoKCksbz1lLnRhcmdldC5nZXRBdHRyaWJ1dGUoImRhdGEtaWQiKTtpZihudWxsIT09byl7Y29uc3R7Y2xpZW50WDpsLGNsaWVudFk6c309ZSxbdSxjXT1vLnNwbGl0KGEuSU5ERVhFU19TRVBBUkFUT1IpLm1hcCgoZT0+cGFyc2VJbnQoZSkpKSxkPVVbdV0sbT1WW3VdLGY9SFt1XSx2PW5bdV1bY10sZz1YKHUsYykseT1oKHtjaXJjbGVJbmRleDp1LGFyY0luZGV4OmcsdGhlbWU6a30pO3QudXBkYXRlRGF0YSh7eDpsLHk6cyxpc0xlZnQ6SyhsLHIpLHRleHQ6bVtjXSxjb3VudDp2LmN1c3RvbVRvb2x0aXA/di5jdXN0b21Ub29sdGlwLmNvdW50OmRbY10udG9TdHJpbmcoKSxwZXJjZW50czp2LmN1c3RvbVRvb2x0aXA/di5jdXN0b21Ub29sdGlwLnBlcmNlbnRzOigwLHAuZm9ybWF0UGVyY2VudCkoZFtjXSxmLCEwKSxjb2xvcjp5LHVuaXQ6QX0pLCgwLGkuZW5zdXJlTm90TnVsbCkoXy5jdXJyZW50KS5zZXRBdHRyaWJ1dGUoImRhdGEtcGllLWNoYXJ0LWhhcy1ob3ZlciIsIiIpfWVsc2UgdC51cGRhdGVEYXRhKG51bGwpLCgwLGkuZW5zdXJlTm90TnVsbCkoXy5jdXJyZW50KS5yZW1vdmVBdHRyaWJ1dGUoImRhdGEtcGllLWNoYXJ0LWhhcy1ob3ZlciIpfSxvbk1vdXNlT3V0OmZ1bmN0aW9uKGUpe2lmKCFtKXJldHVybjsoMCxzLmhvdmVyTW91c2VFdmVudEZpbHRlcikoZSkmJigoMCxpLmVuc3VyZU5vdE51bGwpKEkuY3VycmVudCkudXBkYXRlRGF0YShudWxsKSwoMCxpLmVuc3VyZU5vdE51bGwpKF8uY3VycmVudCkucmVtb3ZlQXR0cmlidXRlKCJkYXRhLXBpZS1jaGFydC1oYXMtaG92ZXIiKSl9fSxHKSx6JiZ6LG0mJnIuY3JlYXRlRWxlbWVudChFLkZsb2F0aW5nVG9vbHRpcCx7cmVmOkl9KSk6ci5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6bCgpKFAucGllQ29udGFpbmVyLFAuaW52YWxpZCl9LHIuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOlAuY2VudGVyVGV4dCxzdHlsZTpGfSxyLmNyZWF0ZUVsZW1lbnQoImRpdiIsbnVsbCwiSU5WQUxJRCBEQVRBIikpKTtmdW5jdGlvbiBqKGUpe2lmKCFvKXJldHVybjtjb25zdCB0PW5ldyBTZXQoRCk7dC5oYXMoZSk/dC5kZWxldGUoZSk6dC5hZGQoZSksUih0KX1mdW5jdGlvbiBLKGUsdCl7aWYodCYmZS10PDApcmV0dXJuITA7Y29uc3R7eDpuLHdpZHRoOnJ9PSgwLGkuZW5zdXJlTm90TnVsbCkoXy5jdXJyZW50KS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtyZXR1cm4gZTxuK3IvMn1mdW5jdGlvbiBYKGUsdCl7cmV0dXJuIGQ/VVtlXS5sZW5ndGgtdC0xOnR9fX0sNDYxNTg3KGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse2NoZWNrT3ZlcmxhcDooKT0+bSxmb3JtYXRQZXJjZW50OigpPT5mLGdldENvb3JkaW5hdGVQb2ludDooKT0+cCxnZXREZWZhdWx0Q29sb3I6KCk9PmcsZ2V0SW5uZXJBcmNSYWRpdXM6KCk9PnksZ2V0TGFiZWxQYWRkaW5nOigpPT5TLGdldFJhZGl1czooKT0+aCxudW1iZXJUb0Nvb3JkaW5hdGVTdHJpbmc6KCk9PmR9KTt2YXIgcixvPW4oMTM0NjcpLGw9big2NDA3NDQpLGk9bigzNzQzNzEpLGE9big4Njc3MzIpLHM9bigxMjUyMTgpOyFmdW5jdGlvbihlKXtlW2UuWD0wXT0iWCIsZVtlLlk9MV09IlkifShyfHwocj17fSkpO2NvbnN0IHU9TWF0aC5hYnMoTWF0aC5sb2cxMChpLk1JTl9DT09SRElOQVRFX1ZBTFVFKSk7ZnVuY3Rpb24gYyhlLHQsbixyKXtyZXR1cm4gZCh0K24qKDA9PT1lP01hdGguY29zOk1hdGguc2luKShyKSl9ZnVuY3Rpb24gZChlKXtyZXR1cm4gZS50b0ZpeGVkKHUpfWZ1bmN0aW9uIHAoZSx0LG4pe3JldHVybnt4OmMoMCxlLHQsbikseTpjKDEsZSx0LG4pfX1mdW5jdGlvbiBtKGUsdCl7Y29uc3R7eDpuLHk6cix3aWR0aDpvLGhlaWdodDpsfT1lLHt4OmEseTpzLHdpZHRoOnUsaGVpZ2h0OmN9PXQKO3JldHVybiEobi1hPj11LWkuT1ZFUkxBUF9ERUxUQXx8YS1uPj1vLWkuT1ZFUkxBUF9ERUxUQXx8ci1zPj1jLWkuT1ZFUkxBUF9ERUxUQXx8cy1yPj1sLWkuT1ZFUkxBUF9ERUxUQSl9ZnVuY3Rpb24gZihlLHQsbixyPSEwKXtjb25zdCBvPWZ1bmN0aW9uKGUsdCxuKXtjb25zdCByPWUvdCoxMDA7cmV0dXJuIG4/TWF0aC5yb3VuZCgxMDAqcikvMTAwOk1hdGgucm91bmQocil9KGUsdCxuKSxsPW5ldyBzLlBlcmNlbnRhZ2VGb3JtYXR0ZXI7cmV0dXJuIG4/bC5mb3JtYXQobyx7cmVtb3ZlQWxsRW5kaW5nWmVyb3M6ITB9KTpyJiZvPD1pLk1JTl9WSVNJQkxFX1BFUkNFTlRTX1ZBTFVFPyIiOmAke299JWB9ZnVuY3Rpb24gdihlLHQpe2NvbnN0IG49TWF0aC5yb3VuZChlKigxMDAtdCkvMTAwKTtyZXR1cm4oMCxsLmNsYW1wKShlLW4sMCwyNTUpfWZ1bmN0aW9uIGcoZSl7Y29uc3R7YXJjSW5kZXg6dH09ZSxuPSgwLGEuZ2V0Q29sb3JCeUluZGV4KSh0LGEuT0xEX1NFUklFU19DT0xPUlMpLHI9TWF0aC5mbG9vcih0L2EuT0xEX1NFUklFU19DT0xPUlMubGVuZ3RoKTtyZXR1cm4gZnVuY3Rpb24oZSx0KXtpZigxMDA9PT10KXJldHVybiBlO2NvbnN0IG49KDAsby5wYXJzZVJnYikoZSkscj0oMCxvLnJnYikodihuWzBdLHQpLHYoblsxXSx0KSx2KG5bMl0sdCkpO3JldHVybigwLG8ucmdiVG9IZXhTdHJpbmcpKHIpfShuLDEwMC1pLkNPTE9SX0xFVkVMX0JSSUdIVE5FU1NfU1RFUCpyKX1mdW5jdGlvbiBoKGUpe3JldHVybiBlLzJ9ZnVuY3Rpb24geShlLHQpe3JldHVybiBoKGUpLXQvMn1mdW5jdGlvbiBTKGUpe3JldHVybiBlLzR9fSwyMzc2MDMoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7dXNlQ2hhbmdlU3RhdGVBdXRoZW50aWNhdGlvbjooKT0+b30pO3ZhciByPW4oNzc5NDc0KTtmdW5jdGlvbiBvKGUpe2NvbnN0W3Qsbl09KDAsci51c2VTdGF0ZSkoZSk7cmV0dXJuKDAsci51c2VFZmZlY3QpKCgoKT0+KHdpbmRvdy5sb2dpblN0YXRlQ2hhbmdlLnN1YnNjcmliZShudWxsLG8pLCgpPT53aW5kb3cubG9naW5TdGF0ZUNoYW5nZS51bnN1YnNjcmliZShudWxsLG8pKSksW10pLHQ7ZnVuY3Rpb24gbygpe24od2luZG93LmlzX2F1dGhlbnRpY2F0ZWQpfX19LDQ2ODQ5MyhlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHt1c2VQcm9taXNlOigpPT5sfSk7dmFyIHI9big3Nzk0NzQpLG89bigyMTQ5ODcpO2Z1bmN0aW9uIGwoZSx0LG4pe2NvbnN0W2wsaV09KDAsci51c2VTdGF0ZSkobnVsbCk7cmV0dXJuKDAsci51c2VFZmZlY3QpKCgoKT0+e2NvbnN0IG49bmV3IEFib3J0Q29udHJvbGxlcjtsZXQgcj1udWxsO3JldHVybigwLG8ucmVzcGVjdEFib3J0KShuLnNpZ25hbCxlKCkpLnRoZW4oKGU9PmkoKCgpPT5yPWUpKSkpLmNhdGNoKG8uc2tpcEFib3J0RXJyb3IpLCgpPT57bi5hYm9ydCgpLHImJnQmJnQocil9fSksbj9bLi4ubl06dm9pZCAwKSxsfX0sNjU5MzgxKGUsdCxuKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gcihlKXtjb25zdCB0PW5ldyBEYXRlKGUpO3JldHVybiB0LnNldE1pbGxpc2Vjb25kcygwKSx0LnNldFNlY29uZHMoMCksdC5zZXRNaW51dGVzKDApLHQuc2V0SG91cnMoMCksdH1mdW5jdGlvbiBvKGUpe2NvbnN0IHQ9bmV3IERhdGUoZSk7cmV0dXJuIHQuc2V0TWlsbGlzZWNvbmRzKDk5OSksdC5zZXRTZWNvbmRzKDU5KSx0LnNldE1pbnV0ZXMoNTkpLHQuc2V0SG91cnMoMjMpLHR9ZnVuY3Rpb24gbChlLHQ9ITEpe2NvbnN0IG49cihlKSxvPXQ/ZnVuY3Rpb24oZSl7aWYoZT42KXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBkYXkgaXMgcHJvdmlkZWQiKTtyZXR1cm4gMD09PWU/NjplLTF9KG4uZ2V0RGF5KCkpOm4uZ2V0RGF5KCk7cmV0dXJuIG4uc2V0RGF0ZShuLmdldERhdGUoKS1vKSxufWZ1bmN0aW9uIGkoZSl7Y29uc3QgdD1yKGUpO3JldHVybiB0LnNldERhdGUoMSksdH1mdW5jdGlvbiBhKGUpe2NvbnN0IHQ9aShlKTtyZXR1cm4gdC5zZXRNb250aCgwKSx0fW4uZCh0LHtyZXNldFRvRGF5RW5kOigpPT5vLHJlc2V0VG9EYXlTdGFydDooKT0+cixyZXNldFRvTW9udGhTdGFydDooKT0+aSxyZXNldFRvV2Vla1N0YXJ0OigpPT5sLHJlc2V0VG9ZZWFyU3RhcnQ6KCk9PmF9KX0sOTM1NzcyKGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse3VzZUNsb3NlT25FbGVtZW50U2Nyb2xsOigpPT5sLHVzZUNsb3NlT25TY3JvbGw6KCk9Pm99KTt2YXIgcj1uKDc3OTQ3NCk7ZnVuY3Rpb24gbyhlKXtsKGUsZG9jdW1lbnQpfWZ1bmN0aW9uIGwoZSx0KXsoMCxyLnVzZUVmZmVjdCkoKCgpPT57Y29uc3Qgbj10fHxkb2N1bWVudDtyZXR1cm4gbi5hZGRFdmVudExpc3RlbmVyKCJzY3JvbGwiLGUpLCgpPT5uLnJlbW92ZUV2ZW50TGlzdGVuZXIoInNjcm9sbCIsZSl9KSxbZV0pfX0sMjQ2MTc1KGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse3VzZVF1b3Rlc0NhY2hlZERhdGE6KCk9PmF9KTt2YXIgcj1uKDc3OTQ3NCksbz1uKDE2ODYyMSksbD1uKDE2NzUwMiksaT1uKDkyOTQ4OCk7ZnVuY3Rpb24gYShlLHQsbixhLHUpe2NvbnN0W2MsZF09KDAsci51c2VTdGF0ZSkoKCgpPT57aWYodm9pZCAwPT09ZXx8KDAsaS5pc1NlcGFyYXRvckl0ZW0pKGUpKXJldHVybiBzKG4sdCk7Y29uc3Qgcj11P251bGw6YSgpLmdldFNuYXBzaG90U3luYyhlLG5ldyBTZXQodCkpO3JldHVybiBudWxsPT09cnx8ImVycm9yIj09PXIuc3RhdHVzP3Mobix0KTooMCxvLmRlZmF1bHQpKHIudmFsdWVzLHQpfSkpO3JldHVybigwLHIudXNlRWZmZWN0KSgoKCk9PntpZih2b2lkIDA9PT1lfHwoMCxpLmlzU2VwYXJhdG9ySXRlbSkoZSkpcmV0dXJuO2xldCByPSExO3JldHVybiBhKCkuZ2V0U25hcHNob3QoZSxuZXcgU2V0KHQpKS50aGVuKChlPT57aWYocilyZXR1cm47Y29uc3QgaT0iZXJyb3IiPT09ZS5zdGF0dXM/cyhuLHQpOigwLG8uZGVmYXVsdCkoZS52YWx1ZXMsdCk7ZCgoZT0+KDAsbC5kZWZhdWx0KShpLGUpP2U6aSkpfSkpLCgpPT57cj0hMH19KSxbZSxhXSksY31mdW5jdGlvbiBzKGUsdCl7cmV0dXJuIGV9fSw2NTM3MDEoZSx0LG4peyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiByKGUpewpyZXR1cm4gZT9lPDEuMjU/InN0cm9uZy1idXkiOmU8MS43NT8iYnV5IjplPDIuMjU/Im5ldXRyYWwiOmU8Mi43NT8ic2VsbCI6ZTw9Mz8ic3Ryb25nLXNlbGwiOiJuZXV0cmFsIjoibmV1dHJhbCJ9bi5kKHQse2dldEFuYWx5c3RSZWNvbW1lbmRhdGlvbjooKT0+cn0pfSw5NjQ5NDUoZSl7ZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDE4IDE4IiB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIGZpbGw9Im5vbmUiPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZD0iTTkgM2E2IDYgMCAxIDEgMCAxMkE2IDYgMCAwIDEgOSAzTTYgOHYyaDZWOHoiLz48L3N2Zz4nfSw4MjA2NjMoZSl7ZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDEyIDEyIiB3aWR0aD0iMTIiIGhlaWdodD0iMTIiPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZD0iTTYgMGE2IDYgMCAxIDEgMCAxMkE2IDYgMCAwIDEgNiAwbTAgM2EzIDMgMCAxIDAgMCA2IDMgMyAwIDAgMCAwLTYiLz48L3N2Zz4nfSwyMjQzMDIoZSl7ZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDEyIDEyIiB3aWR0aD0iMTIiIGhlaWdodD0iMTIiPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZD0iTTYgMGE2IDYgMCAxIDEgMCAxMkE2IDYgMCAwIDEgNiAwTTIgNi43NWg4di0xLjVIMnoiLz48L3N2Zz4nfSw1Mzc0NDYoZSl7ZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDEyIDEyIiB3aWR0aD0iMTIiIGhlaWdodD0iMTIiPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZD0iTTYgMGE2IDYgMCAxIDEgMCAxMkE2IDYgMCAwIDEgNiAwbS0uNzkgNS4yNEgydjEuNDloMy4yMVYxMGgxLjU3VjYuNzNIMTB2LTEuNUg2Ljc4VjJINS4yMXoiLz48L3N2Zz4nfSw1MTQ3MzEoZSl7ZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDEyIDEyIiB3aWR0aD0iMTIiIGhlaWdodD0iMTIiPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZD0iTTYgMGE2IDYgMCAxIDEgMCAxMkE2IDYgMCAwIDEgNiAwTTMgOWg2VjNIM3oiLz48L3N2Zz4nfSwxNjg2MjEoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7ZGVmYXVsdDooKT0+aX0pO3ZhciByPW4oNjg1MTU0KSxvPW4oMjE4NjY5KTtjb25zdCBsPWZ1bmN0aW9uKGUsdCl7cmV0dXJuKDAsci5kZWZhdWx0KShlLHQsKGZ1bmN0aW9uKHQsbil7cmV0dXJuKDAsby5kZWZhdWx0KShlLG4pfSkpfTtjb25zdCBpPSgwLG4oMjYwODA2KS5kZWZhdWx0KSgoZnVuY3Rpb24oZSx0KXtyZXR1cm4gbnVsbD09ZT97fTpsKGUsdCl9KSl9fV0pOw=="}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"telemetry.tradingview.com/widget/report","fqdn":"telemetry.tradingview.com","domain":"tradingview.com","tld":"com"},"ip":{"addr":"","port":0,"asn":0,"as":"","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"fetch","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:28.657Z","timestamp":1785148048657,"http_version":"","security_state":"","security_info":null,"request":{"raw":"POST /widget/report HTTP/1.1\r\nHost: telemetry.tradingview.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\nReferer: https://s.tradingview.com/\r\nContent-Type: text/plain;charset=UTF-8\r\nContent-Length: 1256\r\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: empty\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-site\r\nPriority: u=4\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"POST"},"response":{"raw":"","headers":null,"cookies":null,"status_code":"","status_text":"","fingerprints":null,"data":{"size":0,"size_decoded":0,"mime_type":"","magic":"","md5":"d41d8cd98f00b204e9800998ecf8427e","sha1":"da39a3ee5e6b4b0d3255bfef95601890afd80709","sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha512":"cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e","ssdeep":"","tlshash":"","first_seen":"0001-01-01T00:00:00Z","last_seen":"2026-07-27T13:01:10.036638Z","times_seen":17563461,"resource_available":true,"data":null}},"time_used":0,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":0,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/71414.e345ed752d3a20d19467.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:13.765Z","timestamp":1785148033765,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/71414.e345ed752d3a20d19467.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:13 GMT\r\ncontent-type: text/css; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a58ab11-e5\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Thu, 16 Jul 2026 09:57:37 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/16/2026 11:03:21\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: f486b3246a8717de2f4c4b25c24466d4\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":229,"size_decoded":932,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with no line terminators","md5":"dba3b8b6e522981747aa88dbb55e965d","sha1":"5a76446063310fe075cf2a937154a1aea73f1679","sha256":"83032ab92bfa437e6220899f5aec9d57a35bc5811fbb395c19f27e069db50c01","sha512":"6bf4cbdf37126f5115df62c04af8d2348ad30107f48d0156b0c25c4327f7632d11d42e318171954fbec505ddba87a7b228597ec6d2229e5633ff36d5f4a5aba9","ssdeep":"","tlshash":"bed0a75af604b031786fa136d38da4df7504b94b5400ae779650c5c94051ad2b3d9b58","first_seen":"2026-07-17T03:30:51.226443Z","last_seen":"2026-07-27T12:48:39.803901Z","times_seen":134,"resource_available":false,"data":"LnRpdGxlLW5ma0dtN05He2NvbG9yOnZhcigtLXR2LWNvbG9yLXBvcHVwLWVsZW1lbnQtc2Vjb25kYXJ5LXRleHQsdmFyKC0tY29sb3ItcG9wdXAtZWxlbWVudC1zZWNvbmRhcnktdGV4dCkpO2N1cnNvcjpkZWZhdWx0O2ZvbnQtc2l6ZToxMXB4O2xldHRlci1zcGFjaW5nOi40cHg7bGluZS1oZWlnaHQ6MTZweDttYXJnaW46NnB4IDA7cGFkZGluZzowIDEycHg7dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlfQ=="}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/60062.495444a7fac173fb28cd.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:13.873Z","timestamp":1785148033873,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/60062.495444a7fac173fb28cd.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:13 GMT\r\ncontent-type: text/css; charset=utf-8\r\ncontent-length: 87\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\netag: \"6a58ab11-57\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Thu, 16 Jul 2026 09:57:37 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/16/2026 11:03:29\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 1fde0c37807a58c8fe2f63cdab733132\r\ncdn-cache: HIT\r\naccept-ranges: bytes\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":87,"size_decoded":871,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with no line terminators","md5":"274893b786bd12b8da5e090fb307e32b","sha1":"21255ee94ceb3d1a0ee22982cf407e6e567093b4","sha256":"b86cb37cc4b27818ca22cc6d1618b286d3a8e8b04fbfea6a2f2d42101e5db23e","sha512":"b1c9690086309a24a4d9044af4b2936d25346e6cd8a6a8d3bc6831f844f1a44b08405dbeef9999998f66be34b01476894d9b38aa7933d3f6da6f3d8b207d266a","ssdeep":"","tlshash":"4eb012e13c1063344322806a444043ede1a4014825000e524431fc22cc1d80e363d518","first_seen":"2026-07-17T03:30:51.160472Z","last_seen":"2026-07-27T12:53:06.166877Z","times_seen":133,"resource_available":false,"data":"LnNjYWxhYmxlSWNvbi1jajFiQVNmNywuc2NhbGFibGVJY29uLWNqMWJBU2Y3IHN2Z3tkaXNwbGF5OmJsb2NrO2hlaWdodDoxMDAlO3dpZHRoOjEwMCV9"}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/62600.6106356cb816fb74b17b.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:13.916Z","timestamp":1785148033916,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/62600.6106356cb816fb74b17b.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:13 GMT\r\ncontent-type: text/css; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a323ca6-146d\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Wed, 17 Jun 2026 06:20:22 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.57\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 06/17/2026 11:15:35\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 363a8b1235128c406bb07c0c1c57aab5\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":5229,"size_decoded":2117,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with very long lines (5229), with no line terminators","md5":"d7ea1ec834cf91a040325bf4ce34f925","sha1":"0e34981976b5428933d87649f4e113d7b409a3b9","sha256":"fcd588160da6452887ebf4d1c522d196ea1fac8d17a58ed47e62f1f0d21b1e2d","sha512":"28eac8fd6dae3ee056842ef33367e88045ddcc76dca080bb2bd1525ba419a0b977c2a9355af008ed3a33c42e7e53add886ed268cd67340b988a14b8e4f33f9ea","ssdeep":"96:DxvxrXUfOCYwE/U8BfOfqFmn6w67T+Di1FuxgZcipAR/kESRLUUBNbkuuVIlkK/:XUo/vyqFmn6w67Cm10xgWKAR/kESRLUE","tlshash":"51b1eeb5f3c041bef413c71fb398bed803a79955ab2e9df8e025ba151a86fd52111388","first_seen":"2026-06-17T17:50:59.584306Z","last_seen":"2026-07-27T12:57:37.035625Z","times_seen":425,"resource_available":false,"data":"W2RhdGEtdGhlbWU9bGlnaHRdey0tXzAtenhSbjp2YXIoLS1jb2xvci1jb2xkLWdyYXktNDAwKTstLV8xLXp4Um46dmFyKC0tY29sb3ItdHYtYmx1ZS1hMjAwKTstLV8yLXp4Um46dmFyKC0tY29sb3ItY29sZC1ncmF5LTEwMCl9W2RhdGEtdGhlbWU9ZGFya117LS1fMC16eFJuOnZhcigtLWNvbG9yLWNvbGQtZ3JheS0zMDApOy0tXzEtenhSbjp2YXIoLS1jb2xvci10di1ibHVlLWEyMDApOy0tXzItenhSbjp2YXIoLS1jb2xvci1jb2xkLWdyYXktMTAwKX0ud3JhcHBlci1qV21NbTJWQXtib3gtc2l6aW5nOmJvcmRlci1ib3g7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjttaW4td2lkdGg6MjE1cHg7cGFkZGluZy1pbmxpbmUtZW5kOjE1cHg7cG9zaXRpb246cmVsYXRpdmV9LnRpbWV6b25lLWpXbU1tMlZBe2NvbG9yOnZhcigtLWNvbG9yLWRlZmF1bHQtZ3JheSk7Zm9udC1zaXplOjExcHg7bGluZS1oZWlnaHQ6MThweDtwYWRkaW5nLXRvcDo0cHg7dGV4dC1hbGlnbjpjZW50ZXI7d2lkdGg6MTAwJX0ubGFyZ2VQYWRkaW5nLWpXbU1tMlZBe3BhZGRpbmctdG9wOjhweH0uc2Vzc2lvbkRheVdyYXBwZXItaldtTW0yVkF7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtwb3NpdGlvbjpyZWxhdGl2ZX0ubm93V3JhcHBlci1qV21NbTJWQXtib3R0b206MDtpbnNldC1pbmxpbmUtZW5kOjA7aW5zZXQtaW5saW5lLXN0YXJ0OjMwcHg7cG9pbnRlci1ldmVudHM6bm9uZTtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MH0ubm93V3JhcHBlci1qV21NbTJWQSAubm93LWpXbU1tMlZBe2JhY2tmYWNlLXZpc2liaWxpdHk6aGlkZGVuO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItY29udGVudC1wcmltYXJ5LW5ldXRyYWwtYm9sZCk7Ym90dG9tOi0xcHg7b3V0bGluZToxcHggdmFyKC0tY29sb3ItY29udGFpbmVyLWZpbGwtdGVydGlhcnktaW52ZXJzZSkgc29saWQ7cG9zaXRpb246YWJzb2x1dGU7dG9wOjJweDt3aWR0aDoxcHh9LnNlc3Npb25EYXktaldtTW0yVkF7YWxpZ24taXRlbXM6YmFzZWxpbmU7ZGlzcGxheTpmbGV4fS5zZXNzaW9uRGF5LWpXbU1tMlZBIC53ZWVrRGF5LWpXbU1tMlZBe2NvbG9yOnZhcigtLWNvbG9yLWRlZmF1bHQtZ3JheSk7Zm9udC1zaXplOjEwcHg7b3ZlcmZsb3c6aGlkZGVuO3BhZGRpbmctdG9wOjNweDt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7d2lkdGg6MzBweH0uc2Vzc2lvbkRheS1qV21NbTJWQSAuc2Vzc2lvbkRheVNlZ21lbnRzLWpXbU1tMlZBLC5zZXNzaW9uRGF5LWpXbU1tMlZBIC50aW1lTWFya1dyYXBwZXItaldtTW0yVkF7ZmxleDoxO3Bvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOjEwMCV9LnNlc3Npb25EYXktaldtTW0yVkEgLnRpbWVNYXJrV3JhcHBlci1qV21NbTJWQXtoZWlnaHQ6MTZweDttYXJnaW4tdG9wOjNweH0uc2Vzc2lvbkRheS1qV21NbTJWQSAuc2Vzc2lvbkRheVNlZ21lbnRzLWpXbU1tMlZBe2JvcmRlci1yYWRpdXM6NHB4O2hlaWdodDo3cHg7bWFyZ2luOjIwcHggMCAycHh9LnNlc3Npb25EYXktaldtTW0yVkE6Zmlyc3QtY2hpbGQgLnNlc3Npb25EYXlTZWdtZW50cy1qV21NbTJWQXttYXJnaW4tdG9wOjB9LnNlc3Npb25EYXktaldtTW0yVkEgLnRpbWVNYXJrU2VnbWVudC1qV21NbTJWQXtjb250ZW50OiIiO2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3Bvc2l0aW9uOmFic29sdXRlfS5zZXNzaW9uRGF5LWpXbU1tMlZBIC50aW1lTWFya1NlZ21lbnQtaldtTW0yVkEgLnRpbWVNYXJrLWpXbU1tMlZBOmZpcnN0LWNoaWxke3BhZGRpbmctaW5saW5lLWVuZDo0cHh9LnNlc3Npb25EYXktaldtTW0yVkEgLnRpbWVNYXJrU2VnbWVudC1qV21NbTJWQSAudGltZU1hcmstaldtTW0yVkE6bGFzdC1jaGlsZHtwYWRkaW5nLWlubGluZS1zdGFydDo0cHh9LnNlc3Npb25EYXktaldtTW0yVkEgLnRpbWVNYXJrU2VnbWVudC1qV21NbTJWQS50aW1lTWFya1NlZ21lbnRBbGlnbkJ5RW5kcy1qV21NbTJWQXtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2Vlbn0uc2Vzc2lvbkRheS1qV21NbTJWQSAudGltZU1hcmtTZWdtZW50LWpXbU1tMlZBLnRpbWVNYXJrU2VnbWVudEFsaWduQnlFbmRzLWpXbU1tMlZBIC50aW1lTWFyay1qV21NbTJWQXtwYWRkaW5nOjB9LnNlc3Npb25EYXktaldtTW0yVkEgLnRpbWVNYXJrU2VnbWVudC1qV21NbTJWQS50aW1lTWFya1NlZ21lbnRBbGlnbkJ5RW5kcy1qV21NbTJWQSAudGltZU1hcmstaldtTW0yVkE6Zmlyc3QtY2hpbGR7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTUwJSl9LnNlc3Npb25EYXktaldtTW0yVkEgLnRpbWVNYXJrU2VnbWVudC1qV21NbTJWQS50aW1lTWFya1NlZ21lbnRBbGlnbkJ5RW5kcy1qV21NbTJWQSAudGltZU1hcmstaldtTW0yVkE6Zmlyc3QtY2hpbGQ6ZGlyKHJ0bCl7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoNTAlKX0uc2Vzc2lvbkRheS1qV21NbTJWQSAudGltZU1hcmtTZWdtZW50LWpXbU1tMlZBLnRpbWVNYXJrU2VnbWVudEFsaWduQnlFbmRzLWpXbU1tMlZBIC50aW1lTWFyay1qV21NbTJWQTpsYXN0LWNoaWxke3RyYW5zZm9ybTp0cmFuc2xhdGVYKDUwJSl9LnNlc3Npb25EYXktaldtTW0yVkEgLnRpbWVNYXJrU2VnbWVudC1qV21NbTJWQS50aW1lTWFya1NlZ21lbnRBbGlnbkJ5RW5kcy1qV21NbTJWQSAudGltZU1hcmstaldtTW0yVkE6bGFzdC1jaGlsZDpkaXIocnRsKXt0cmFuc2Zvcm06dHJhbnNsYXRlWCgtNTAlKX0uc2Vzc2lvbkRheS1qV21NbTJWQSAudGltZU1hcmstaldtTW0yVkF7Zm9udC1mYW1pbHk6LWFwcGxlLXN5c3RlbSxCbGlua01hY1N5c3RlbUZvbnQsVHJlYnVjaGV0IE1TLFJvYm90byxVYnVudHUsc2Fucy1zZXJpZjtmb250LWZlYXR1cmUtc2V0dGluZ3M6InRudW0iIG9uLCJsbnVtIiBvbjtmb250LXN0eWxlOm5vcm1hbDstLXVpLWxpYi10eXBvZ3JhcGh5LWZvbnQtc2l6ZToxMXB4O2ZvbnQtc2l6ZTp2YXIoLS11aS1saWItdHlwb2dyYXBoeS1mb250LXNpemUpO2ZvbnQtd2VpZ2h0OjQwMDstLXVpLWxpYi10eXBvZ3JhcGh5LWxpbmUtaGVpZ2h0OjE0cHg7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci10aW1lLW1hcmspO2NvbG9yOnZhcigtLWNvbG9yLWRlZmF1bHQtZ3JheSk7bGluZS1oZWlnaHQ6dmFyKC0tdWktbGliLXR5cG9ncmFwaHktbGluZS1oZWlnaHQpfS5zZXNzaW9uRGF5LWpXbU1tMlZBIC5zZWdtZW50LWpXbU1tMlZBe2JveC1zaXppbmc6Ym9yZGVyLWJveDtjb250ZW50OiIiO2hlaWdodDoxMDAlO29wYWNpdHk6LjM7cGFkZGluZzowIDJweDtwb3NpdGlvbjphYnNvbHV0ZX0uc2Vzc2lvbkRheS1qV21NbTJWQSAuc2VnbWVudC1qV21NbTJWQTpmaXJzdC1jaGlsZHtwYWRkaW5nLWlubGluZS1zdGFydDowfS5zZXNzaW9uRGF5LWpXbU1tMlZBIC5zZWdtZW50LWpXbU1tMlZBOmxhc3QtY2hpbGR7cGFkZGluZy1pbmxpbmUtZW5kOjB9LnNlc3Npb25EYXktaldtTW0yVkEgLnNlZ21lbnQtaldtTW0yVkE6YmVmb3Jle2NvbnRlbnQ6IiI7ZGlzcGxheTpmbGV4O2ZsZXg6MTtoZWlnaHQ6MTAwJTttaW4td2lkdGg6MXB4O3otaW5kZXg6MH0uc2Vzc2lvbkRheS1qV21NbTJWQSAuc2VnbWVudC1qV21NbTJWQS5zbWFsbC1qV21NbTJWQXttYXJnaW4taW5saW5lLXN0YXJ0Oi0xcHg7cGFkZGluZzowO3otaW5kZXg6MX0uc2Vzc2lvbkRheS1qV21NbTJWQSAuc2VnbWVudC1qV21NbTJWQS5zdGFydC1qV21NbTJWQTpiZWZvcmV7Ym9yZGVyLXJhZGl1czowO2JvcmRlci1lbmQtc3RhcnQtcmFkaXVzOjRweDtib3JkZXItc3RhcnQtc3RhcnQtcmFkaXVzOjRweH0uc2Vzc2lvbkRheS1qV21NbTJWQSAuc2VnbWVudC1qV21NbTJWQS5lbmQtaldtTW0yVkE6YmVmb3Jle2JvcmRlci1yYWRpdXM6MDtib3JkZXItZW5kLWVuZC1yYWRpdXM6NHB4O2JvcmRlci1zdGFydC1lbmQtcmFkaXVzOjRweH0uc2Vzc2lvbkRheS1qV21NbTJWQSAuc2VnbWVudC1qV21NbTJWQS5zdGFydC1qV21NbTJWQS5lbmQtaldtTW0yVkE6YmVmb3Jle2JvcmRlci1yYWRpdXM6NHB4fS5zZXNzaW9uRGF5LWpXbU1tMlZBLmFjdGl2ZS1qV21NbTJWQSAuc2VnbWVudC1qV21NbTJWQXtvcGFjaXR5OjF9LnNlc3Npb25EYXktaldtTW0yVkEuYWN0aXZlLWpXbU1tMlZBIC53ZWVrRGF5LWpXbU1tMlZBe2NvbG9yOnZhcigtLWNvbG9yLWNvbnRlbnQtcHJpbWFyeS1uZXV0cmFsLWJvbGQpfS5ncmVlbi1qV21NbTJWQXtjb2xvcjp2YXIoLS1jb2xvci1jb250ZW50LXByaW1hcnktc3VjY2Vzcy1ib2xkKX0uZ3JlZW4taldtTW0yVkE6YmVmb3Jle2JhY2tncm91bmQtY29sb3I6Y3VycmVudENvbG9yfS5vcmFuZ2UtaldtTW0yVkF7Y29sb3I6dmFyKC0tY29sb3ItY29udGVudC1wcmltYXJ5LXdhcm5pbmctZXh0cmEtYm9sZCl9Lm9yYW5nZS1qV21NbTJWQTpiZWZvcmV7YmFja2dyb3VuZC1jb2xvcjpjdXJyZW50Q29sb3J9LmJsdWUtaldtTW0yVkF7Y29sb3I6dmFyKC0tY29sb3ItY29udGVudC1wcmltYXJ5LWFjY2VudC1leHRyYS1ib2xkKX0uYmx1ZS1qV21NbTJWQTpiZWZvcmV7YmFja2dyb3VuZC1jb2xvcjpjdXJyZW50Q29sb3J9LnB1cnBsZS1qV21NbTJWQXtjb2xvcjp2YXIoLS1jb2xvci1jb250ZW50LXNlY29uZGFyeS1hY2NlbnQtb3RoZXItc2VtaS1ib2xkKX0ucHVycGxlLWpXbU1tMlZBOmJlZm9yZXtiYWNrZ3JvdW5kLWNvbG9yOmN1cnJlbnRDb2xvcn0uZ3JheS1qV21NbTJWQXtjb2xvcjp2YXIoLS1jb2xvci1iYWNrZ3JvdW5kLXByaW1hcnktbmV1dHJhbC1ub3JtYWwpfS5ncmF5LWpXbU1tMlZBOmJlZm9yZXtiYWNrZ3JvdW5kLWNvbG9yOmN1cnJlbnRDb2xvcn0udG9vbHRpcC1qV21NbTJWQXt3aGl0ZS1zcGFjZTpub3JtYWx9LnRvb2x0aXAtaldtTW0yVkEgLnRpbWUtaldtTW0yVkF7Y29sb3I6dmFyKC0tY29sb3ItY29udGVudC10ZXJ0aWFyeS1pbnZlcnNlKTttYXJnaW4taW5saW5lLXN0YXJ0OjVweH0udG9vbHRpcC1qV21NbTJWQSAuZ3JlZW4taldtTW0yVkF7Y29sb3I6dmFyKC0tY29sb3ItbWludHktZ3JlZW4tNDAwKX0udG9vbHRpcC1qV21NbTJWQSAuZ3JheS1qV21NbTJWQXtjb2xvcjp2YXIoLS1jb2xvci1jb2xkLWdyYXktMzAwKX0udG9vbHRpcC1qV21NbTJWQSAub3JhbmdlLWpXbU1tMlZBe2NvbG9yOnZhcigtLWNvbG9yLXRhbi1vcmFuZ2UtNDAwKX0udG9vbHRpcC1qV21NbTJWQSAuYmx1ZS1qV21NbTJWQXtjb2xvcjp2YXIoLS1jb2xvci10di1ibHVlLTMwMCl9LnRvb2x0aXAtaldtTW0yVkEgLnB1cnBsZS1qV21NbTJWQXtjb2xvcjp2YXIoLS1jb2xvci1ncmFwZXMtcHVycGxlLTMwMCl9"}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/52509.40659470e51b065d5139.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.559Z","timestamp":1785148034559,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/52509.40659470e51b065d5139.js HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a61b1a8-c6e6\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Thu, 23 Jul 2026 06:16:08 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/23/2026 10:17:30\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: d832b9c8e1d388b70138d0099966bd48\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":50918,"size_decoded":15407,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, Unicode text, UTF-8 text, with very long lines (13726)","md5":"b7af9caf2d203689250c618a39d39029","sha1":"54e22965aaf8dd894b275b582cc30705d69821ad","sha256":"2600de068f623019889e62254b9834e05e70d376b307a4ad6b859f23cdcc8f8a","sha512":"3ef3adc84c046249eb8338da914e3af339fc2a92d8f0ae731d3b82dfc79a838b32bb4601581fb9d42f1ad5dece74230ddca8b9193f7acb1a023a1892cc8633eb","ssdeep":"1536:p5+ejeWbrN0Y4NT7JDMclwUYGZTw7yhLrLl1wrFMl:p5+ejDbrSY497JDMclwUYGZTw7yhLrL5","tlshash":"4833a36890d52d392df542f540ab2010e8ade8974d9610a6efef4dbf4940ac9b13ed3f","first_seen":"2026-07-23T14:00:31.718819Z","last_seen":"2026-07-27T12:48:39.669745Z","times_seen":57,"resource_available":true,"data":"InVzZSBzdHJpY3QiOyhzZWxmLndlYnBhY2tDaHVua3RyYWRpbmd2aWV3PXNlbGYud2VicGFja0NodW5rdHJhZGluZ3ZpZXd8fFtdKS5wdXNoKFtbNTI1MDldLHs5NzMwNDEoZSx0LGEpe2EuZCh0LHt0cmllc1RyYW5zbGF0ZUNvdW50cmllTmFtZTooKT0+aX0pO3ZhciBvPWEoMTg1MjcxKTtmdW5jdGlvbiBpKGUpe2NvbnN0IHQ9bi5nZXQoZSk7cmV0dXJuIHZvaWQgMCE9PXQ/dCgpOmV9CmNvbnN0IG49bmV3IE1hcChbWyJBZnJpY2EiLCgpPT5vLnQobnVsbCx2b2lkIDAsYSg2NTAzNDQpKV0sWyJBbWVyaWNhcyIsKCk9Pm8udChudWxsLHZvaWQgMCxhKDk5MTQ2NCkpXSxbIkFzaWEiLCgpPT5vLnQobnVsbCx2b2lkIDAsYSg2ODkxODIpKV0sWyJFdXJvcGUiLCgpPT5vLnQobnVsbCx2b2lkIDAsYSg5NTIzNjcpKV0sWyJQYWNpZmljIiwoKT0+by50KG51bGwsdm9pZCAwLGEoOTkwNTc1KSldLFsiTWlkZGxlIEVhc3QiLCgpPT5vLnQobnVsbCx2b2lkIDAsYSg2ODU3NTEpKV0sWyJBZmdoYW5pc3RhbiIsKCk9Pm8udChudWxsLHZvaWQgMCxhKDk5MzEwMSkpXSxbIsOFbGFuZCBJc2xhbmRzIiwoKT0+by50KG51bGwsdm9pZCAwLGEoOTA2NTU0KSldLFsiQWxhbmQgSXNsYW5kcyIsKCk9Pm8udChudWxsLHZvaWQgMCxhKDkwNjU1NCkpXSxbIkFsYmFuaWEiLCgpPT5vLnQobnVsbCx2b2lkIDAsYSgyODAwMjUpKV0sWyJBbGdlcmlhIiwoKT0+by50KG51bGwsdm9pZCAwLGEoMjk2MTgxKSldLFsiQW1lcmljYW4gU2Ftb2EiLCgpPT5vLnQobnVsbCx2b2lkIDAsYSgxMDQ1NTMpKV0sWyJBbmRvcnJhIiwoKT0+by50KG51bGwsdm9pZCAwLGEoOTY1MjEzKSldLFsiQW5nb2xhIiwoKT0+by50KG51bGwsdm9pZCAwLGEoNzc3MjApKV0sWyJBbmd1aWxsYSIsKCk9Pm8udChudWxsLHZvaWQgMCxhKDg1NDkwMikpXSxbIkFudGFyY3RpY2EiLCgpPT5vLnQobnVsbCx2b2lkIDAsYSgyOTc1NzApKV0sWyJBbnRpZ3VhIGFuZCBCYXJidWRhIiwoKT0+by50KG51bGwsdm9pZCAwLGEoNzQ1ODkpXSxbIkFyZ2VudGluYSIsKCk9Pm8udChudWxsLHZvaWQgMCxhKDg1NzU4NykpXSxbIkFybWVuaWEiLCgpPT5vLnQobnVsbCx2b2lkIDAsYSg3Nzk5NTIpKV0sWyJBcnViYSIsKCk9Pm8udChudWxsLHZvaWQgMCxhKDExNDc1NikpXSxbIkF1c3RyYWxpYSIsKCk9Pm8udChudWxsLHZvaWQgMCxhKDI3OTIzMykpXSxbIkF1c3RyaWEiLCgpPT5vLnQobnVsbCx2b2lkIDAsYSgyMzgyNzgpKV0sWyJBemVyYmFpamFuIiwoKT0+by50KG51bGwsdm9pZCAwLGEoNDY4MTcpKV0sWyJCYWhhbWFzIiwoKT0+by50KG51bGwsdm9pZCAwLGEoMzM1MjU5KSldLFsiQmFocmFpbiIsKCk9Pm8udChudWxsLHZvaWQgMCxhKDU3ODY2NSkpXSxbIkJhbmdsYWRlc2giLCgpPT5vLnQobnVsbCx2b2lkIDAsYSg0NTIwMTUpKV0sWyJCYXJiYWRvcyIsKCk9Pm8udChudWxsLHZvaWQgMCxhKDgyOTM4NykpXSxbIkJlbGFydXMiLCgpPT5vLnQobnVsbCx2b2lkIDAsYSg1MjM1NTIpKV0sWyJCZWxnaXVtIiwoKT0+by50KG51bGwsdm9pZCAwLGEoODMzMjQpKV0sWyJCZWxpemUiLCgpPT5vLnQobnVsbCx2b2lkIDAsYSg3ODc3MDEpKV0sWyJCZW5pbiIsKCk9Pm8udChudWxsLHZvaWQgMCxhKDU4ODg0OCkpXSxbIkJlcm11ZGEiLCgpPT5vLnQobnVsbCx2b2lkIDAsYSgzMTQ3MzcpKV0sWyJCaHV0YW4iLCgpPT5vLnQobnVsbCx2b2lkIDAsYSgyODQ0NDIpKV0sWyJCb2xpdmlhIiwoKT0+by50KG51bGwsdm9pZCAwLGEoOTMxMzA0KSldLFsiQm9uYWlyZSwgU2ludCBFdXN0YXRpdXMgYW5kIFNhYmEiLCgpPT5vLnQobnVsbCx2b2lkIDAsYSg1NTcyMzUpKV0sWyJCb3NuaWEgYW5kIEhlcnplZ292aW5hIiwoKT0+by50KG51bGwsdm9pZCAwLGEoOTcwNjkxKSldLFsiQm90c3dhbmEiLCgpPT5vLnQobnVsbCx2b2lkIDAsYSg0MjUzNzgpKV0sWyJCb3V2ZXQgSXNsYW5kIiwoKT0+by50KG51bGwsdm9pZCAwLGEoNzMwNzYzKSldLFsiQnJhemlsIiwoKT0+by50KG51bGwsdm9pZCAwLGEoNjEyOTY3KSldLFsiQnJpdGlzaCBJbmRpYW4gT2NlYW4gVGVycml0b3J5IiwoKT0+by50KG51bGwsdm9pZCAwLGEoNzQ0MjQ2KSldLFsiQnJpdGlzaCBWaXJnaW4gSXNsYW5kcyIsKCk9Pm8udChudWxsLHZvaWQgMCxhKDY1MzM0MCkpXSxbIkJydW5laSIsKCk9Pm8udChudWxsLHZvaWQgMCxhKDM5MTkwNikpXSxbIkJ1bGdhcmlhIiwoKT0+by50KG51bGwsdm9pZCAwLGEoNzE0MDMxKSldLFsiQnVya2luYSBGYXNvIiwoKT0+by50KG51bGwsdm9pZCAwLGEoMTk4Mjk3KSldLFsiQnVydW5kaSIsKCk9Pm8udChudWxsLHZvaWQgMCxhKDc1ODIyKSldLFsiQ2FibyBWZXJkZSIsKCk9Pm8udChudWxsLHZvaWQgMCxhKDYwMTA5NykpXSxbIkNhbWJvZGlhIiwoKT0+by50KG51bGwsdm9pZCAwLGEoNTU1NDg5KSldLFsiQ2FtZXJvb24iLCgpPT5vLnQobnVsbCx2b2lkIDAsYSg5NzcwMjgpKV0sWyJDYW5hZGEiLCgpPT5vLnQobnVsbCx2b2lkIDAsYSgxNTE4OSkpXSxbIkNheW1hbiBJc2xhbmRzIiwoKT0+by50KG51bGwsdm9pZCAwLGEoNjQxMDI2KSldLFsiQ2VudHJhbCBBZnJpY2FuIFJlcHVibGljIiwoKT0+by50KG51bGwsdm9pZCAwLGEoNzc0NzgpKV0sWyJDaGFkIiwoKT0+by50KG51bGwsdm9pZCAwLGEoNDgzNTUpKV0sWyJDaGlsZSIsKCk9Pm8udChudWxsLHZvaWQgMCxhKDkwNDMzOCkpXSxbIkNoaW5hIiwoKT0+by50KG51bGwsdm9pZCAwLGEoNjAyNTE5KSldLFsiQ2hyaXN0bWFzIElzbGFuZCIsKCk9Pm8udChudWxsLHZvaWQgMCxhKDk1NjQ2NCkpXSxbIkNvY29zIChLZWVsaW5nKSBJc2xhbmRzIiwoKT0+by50KG51bGwsdm9pZCAwLGEoMzI1NzMyKSldLFsiQ29sb21iaWEiLCgpPT5vLnQobnVsbCx2b2lkIDAsYSgxMzU4NjcpKV0sWyJDb21vcm9zIiwoKT0+by50KG51bGwsdm9pZCAwLGEoNDg0MTM2KSldLFsiQ29uZ28iLCgpPT5vLnQobnVsbCx2b2lkIDAsYSg5NjQ4NTgpKV0sWyJDb25nbyAodGhlIERlbW9jcmF0aWMgUmVwdWJsaWMgb2YgdGhlKSIsKCk9Pm8udChudWxsLHZvaWQgMCxhKDI3MTU1OCkpXSxbIkNvb2sgSXNsYW5kcyIsKCk9Pm8udChudWxsLHZvaWQgMCxhKDcwODg1OSkpXSxbIkN1cmFjYW8iLCgpPT5vLnQobnVsbCx2b2lkIDAsYSg1ODk0MTcpKV0sWyJDb3N0YSBSaWNhIiwoKT0+by50KG51bGwsdm9pZCAwLGEoMjY4ODQ0KSldLFsiQ8O0dGUgZCdJdm9pcmUiLCgpPT5vLnQobnVsbCx2b2lkIDAsYSg0OTg3NjIpKV0sWyJDcm9hdGlhIiwoKT0+by50KG51bGwsdm9pZCAwLGEoNDA3NCkpXSxbIkN1YmEiLCgpPT5vLnQobnVsbCx2b2lkIDAsYSg3NjkxNDApKV0sWyJDdXJhw6dhbyIsKCk9Pm8udChudWxsLHZvaWQgMCxhKDk0NTE3MSkpXSxbIkN5cHJ1cyIsKCk9Pm8udChudWxsLHZvaWQgMCxhKDYzNDczNykpXSxbIkN6ZWNoaWEiLCgpPT5vLnQobnVsbCx2b2lkIDAsYSgyNjE5OTApKV0sWyJDemVjaCBSZXB1YmxpYyIsKCk9Pm8udChudWxsLHZvaWQgMCxhKDEyOTgwOCkpXSxbIkRlbm1hcmsiLCgpPT5vLnQobnVsbCx2b2lkIDAsYSg4NTI1MDEpKV0sWyJEamlib3V0aSIsKCk9Pm8udChudWxsLHZvaWQgMCxhKDUwNzc5OCkpXSxbIkRvbWluaWNhIiwoKT0+by50KG51bGwsdm9pZCAwLGEoMTk0MzI2KSldLFsiRG9taW5pY2FuIFJlcHVibGljIiwoKT0+by50KG51bGwsdm9pZCAwLGEoODE4NjA0KSldLFsiRWN1YWRvciIsKCk9Pm8udChudWxsLHZvaWQgMCxhKDQxMzM5NykpXSxbIkVneXB0IiwoKT0+by50KG51bGwsdm9pZCAwLGEoMzM3NDM3KSldLFsiRWwgU2FsdmFkb3IiLCgpPT5vLnQobnVsbCx2b2lkIDAsYSg4ODA4NzIpKV0sWyJFcXVhdG9yaWFsIEd1aW5lYSIsKCk9Pm8udChudWxsLHZvaWQgMCxhKDc0NjUyNCkpXSxbIkVyaXRyZWEiLCgpPT5vLnQobnVsbCx2b2lkIDAsYSg3MzA4NzMpKV0sWyJFc3RvbmlhIiwoKT0+by50KG51bGwsdm9pZCAwLGEoOTQxMjApKV0sWyJGYWxrbGFuZCBJc2xhbmRzIiwoKT0+by50KG51bGwsdm9pZCAwLGEoOTkzNDc1KSldLFsiRXN3YXRpbmkiLCgpPT5vLnQobnVsbCx2b2lkIDAsYSg4OTgzMDMpKV0sWyJFdGhpb3BpYSIsKCk9Pm8udChudWxsLHZvaWQgMCxhKDMzMTkxKSldLFsiRXVyb3BlYW4gVW5pb24iLCgpPT5vLnQobnVsbCx2b2lkIDAsYSg1MzUxNDYpKV0sWyJGYWxrbGFuZCBJc2xhbmRzIChNYWx2aW5hcykiLCgpPT5vLnQobnVsbCx2b2lkIDAsYSg2MDc3MjMpKV0sWyJGYXJvZSBJc2xhbmRzIiwoKT0+by50KG51bGwsdm9pZCAwLGEoNDUyNDg3KSldLFsiRmlqaSIsKCk9Pm8udChudWxsLHZvaWQgMCxhKDE1MjQwOSkpXSxbIkZpbmxhbmQiLCgpPT5vLnQobnVsbCx2b2lkIDAsYSg5NzY0NTQpKV0sWyJGcmFuY2UiLCgpPT5vLnQobnVsbCx2b2lkIDAsYSgxMzYyMzgpKV0sWyJGcmVuY2ggR3VpYW5hIiwoKT0+by50KG51bGwsdm9pZCAwLGEoOTc2MDc5KSldLFsiRnJlbmNoIFBvbHluZXNpYSIsKCk9Pm8udChudWxsLHZvaWQgMCxhKDg2MzgyNSkpXSxbIkZyZW5jaCBTb3V0aGVybiBUZXJyaXRvcmllcyIsKCk9Pm8udChudWxsLHZvaWQgMCxhKDMyODYwNykpXSxbIkdhYm9uIiwoKT0+by50KG51bGwsdm9pZCAwLGEoMzY3NjkwKSldLFsiR2FtYmlhIiwoKT0+by50KG51bGwsdm9pZCAwLGEoNzA4Nzg1KSldLFsiR2VvcmdpYSIsKCk9Pm8udChudWxsLHZvaWQgMCxhKDc5NTk1MSkpXSxbIkdlcm1hbnkiLCgpPT5vLnQobnVsbCx2b2lkIDAsYSg0NjY2OTgpKV0sWyJHaGFuYSIsKCk9Pm8udChudWxsLHZvaWQgMCxhKDQ5ODY3OSkpXSxbIkdpYnJhbHRhciIsKCk9Pm8udChudWxsLHZvaWQgMCxhKDc3MTAxNykpXSxbIkdyZWVjZSIsKCk9Pm8udChudWxsLHZvaWQgMCxhKDc5MzI4OSkpXSxbIkdyZWVubGFuZCIsKCk9Pm8udChudWxsLHZvaWQgMCxhKDMxODM5OSkpXSxbIkdyZW5hZGEiLCgpPT5vLnQobnVsbCx2b2lkIDAsYSg5MzIwODYpKV0sWyJHdWFkZWxvdXBlIiwoKT0+by50KG51bGwsdm9pZCAwLGEoMTY0ODc3KSldLFsiR3VhbSIsKCk9Pm8udChudWxsLHZvaWQgMCxhKDU0NDMyNSkpXSxbIkd1YXRlbWFsYSIsKCk9Pm8udChudWxsLHZvaWQgMCxhKDg3NzQ4NykpXSxbIkd1ZXJuc2V5IiwoKT0+by50KG51bGwsdm9pZCAwLGEoNDA4OTE2KSldLFsiR3VpbmVhIiwoKT0+by50KG51bGwsdm9pZCAwLGEoNDM2NDU1KSldLFsiR3VpbmVhLUJpc3NhdSIsKCk9Pm8udChudWxsLHZvaWQgMCxhKDMwODIyOSkpXSxbIkd1eWFuYSIsKCk9Pm8udChudWxsLHZvaWQgMCxhKDI0MjExNikpXSxbIkhhaXRpIiwoKT0+by50KG51bGwsdm9pZCAwLGEoODk0NzA5KSldLFsiSGVhcmQgSXNsYW5kIGFuZCBNY0RvbmFsZCBJc2xhbmRzIiwoKT0+by50KG51bGwsdm9pZCAwLGEoMjM2MTIzKSldLFsiSG9seSBTZWUiLCgpPT5vLnQobnVsbCx2b2lkIDAsYSgxMjc0OSkpXSxbIkhvbmR1cmFzIiwoKT0+by50KG51bGwsdm9pZCAwLGEoMjAyODE2KSldLFsiSG9uZyBLb25nIiwoKT0+by50KG51bGwsdm9pZCAwLGEoNDYzNzc5KSldLFsiSHVuZ2FyeSIsKCk9Pm8udChudWxsLHZvaWQgMCxhKDY2MTM2NikpXSxbIkljZWxhbmQiLCgpPT5vLnQobnVsbCx2b2lkIDAsYSg0NDAxODgpKV0sWyJJbmRpYSIsKCk9Pm8udChudWxsLHZvaWQgMCxhKDM3MjUyMCkpXSxbIkluZG9uZXNpYSIsKCk9Pm8udChudWxsLHZvaWQgMCxhKDgwMjk3NSkpXSxbIklyYXEiLCgpPT5vLnQobnVsbCx2b2lkIDAsYSgzNzE3NDYpKV0sWyJJcmVsYW5kIiwoKT0+by50KG51bGwsdm9pZCAwLGEoNzExNTI3KSldLFsiSXNsZSBvZiBNYW4iLCgpPT5vLnQobnVsbCx2b2lkIDAsYSgyMDc4MjUpKV0sWyJJc3JhZWwiLCgpPT5vLnQobnVsbCx2b2lkIDAsYSg4MDMzNTQpKV0sWyJJdGFseSIsKCk9Pm8udChudWxsLHZvaWQgMCxhKDg5ODE2MykpXSxbIkphbWFpY2EiLCgpPT5vLnQobnVsbCx2b2lkIDAsYSgxNjM1KSldLFsiSmFwYW4iLCgpPT5vLnQobnVsbCx2b2lkIDAsYSgyMDAwNjgpKV0sWyJKZXJzZXkiLCgpPT5vLnQobnVsbCx2b2lkIDAsYSgxMTg1OTgpKV0sWyJKb3JkYW4iLCgpPT5vLnQobnVsbCx2b2lkIDAsYSg1ODMwMDkpKV0sWyJLYXpha2hzdGFuIiwoKT0+by50KG51bGwsdm9pZCAwLGEoMjc3NTYwKSldLFsiS2VueWEiLCgpPT5vLnQobnVsbCx2b2lkIDAsYSg4MTQ5NjYpKV0sWyJLaXJpYmF0aSIsKCk9Pm8udChudWxsLHZvaWQgMCxhKDQ0NjI5MykpXSxbIktvc292byIsKCk9Pm8udChudWxsLHZvaWQgMCxhKDY3Njg2KSldLFsiS3V3YWl0IiwoKT0+by50KG51bGwsdm9pZCAwLGEoMzk1MTMwKSldLFsiS3lyZ3l6c3RhbiIsKCk9Pm8udChudWxsLHZvaWQgMCxhKDQ1ODY2MCkpXSxbIkxhb3MiLCgpPT5vLnQobnVsbCx2b2lkIDAsYSg1OTExODApKV0sWyJMYXR2aWEiLCgpPT5vLnQobnVsbCx2b2lkIDAsYSgyODI3NzMpKV0sWyJMZWJhbm9uIiwoKT0+by50KG51bGwsdm9pZCAwLGEoOTQ1NjEzKSldLFsiTGVzb3RobyIsKCk9Pm8udChudWxsLHZvaWQgMCxhKDY1MzM5NSkpXSxbIkxpYmVyaWEiLCgpPT5vLnQobnVsbCx2b2lkIDAsYSg2NjIxKSldLFsiTGlieWEiLCgpPT5vLnQobnVsbCx2b2lkIDAsYSg1NTUzNTIpKV0sWyJMaWVjaHRlbnN0ZWluIiwoKT0+by50KG51bGwsdm9pZCAwLGEoMzg2NjY3KSldLFsiTGl0aHVhbmlhIiwoKT0+by50KG51bGwsdm9pZCAwLGEoODkyMTAwKSldLFsiTHV4ZW1ib3VyZyIsKCk9Pm8udChudWxsLHZvaWQgMCxhKDk3NTQ0NykpXSxbIk1hY2F1IiwoKT0+by50KG51bGwsdm9pZCAwLGEoNTMyMjY5KSldLFsiTWFjYW8iLCgpPT5vLnQobnVsbCx2b2lkIDAsYSgzMDcwNjIpKV0sWyJNYWNlZG9uaWEiLCgpPT5vLnQobnVsbCx2b2lkIDAsYSg0NTkxMDgpKV0sWyJNYWRhZ2FzY2FyIiwoKT0+by50KG51bGwsdm9pZCAwLGEoNjYwMTg4KSldLFsiTWFsYXdpIiwoKT0+by50KG51bGwsdm9pZCAwLGEoMjQ1OTQ4KSldLFsiTWFsYXlzaWEiLCgpPT5vLnQobnVsbCx2b2lkIDAsYSg2Mjc5NjcpKV0sWyJNYWxkaXZlcyIsKCk9Pm8udChudWxsLHZvaWQgMCxhKDMzMTYxNSkpXSxbIk1hbGkiLCgpPT5vLnQobnVsbCx2b2lkIDAsYSg2MjM0NjUpKV0sWyJNYWx0YSIsKCk9Pm8udChudWxsLHZvaWQgMCxhKDU2MzIzNykpXSxbIk1hcnNoYWxsIElzbGFuZHMiLCgpPT5vLnQobnVsbCx2b2lkIDAsYSg0Nzc4NDMpKV0sWyJNYXJ0aW5pcXVlIiwoKT0+by50KG51bGwsdm9pZCAwLGEoMTM1MTUyKSldLFsiTWF1cml0YW5pYSIsKCk9Pm8udChudWxsLHZvaWQgMCxhKDY2Nzk5NikpXSxbIk1hdXJpdGl1cyIsKCk9Pm8udChudWxsLHZvaWQgMCxhKDE1MDA1NCkpXSxbIk1heW90dGUiLCgpPT5vLnQobnVsbCx2b2lkIDAsYSg0ODMxNDkpKV0sWyJNZXhpY28iLCgpPT5vLnQobnVsbCx2b2lkIDAsYSg4NjU3MDApKV0sWyJNaWNyb25lc2lhIChGZWRlcmF0ZWQgU3RhdGVzIG9mKSIsKCk9Pm8udChudWxsLHZvaWQgMCxhKDI5MTA5OCkpXSxbIk1vbGRvdmEiLCgpPT5vLnQobnVsbCx2b2lkIDAsYSgzMjEzMzYpKV0sWyJNb25hY28iLCgpPT5vLnQobnVsbCx2b2lkIDAsYSgyMDg5MDQpKV0sWyJNb25nb2xpYSIsKCk9Pm8udChudWxsLHZvaWQgMCxhKDkxMzcwOSkpXSxbIk1vbnRlbmVncm8iLCgpPT5vLnQobnVsbCx2b2lkIDAsYSg3MzkzNjUpKV0sWyJNb250c2VycmF0IiwoKT0+by50KG51bGwsdm9pZCAwLGEoMzMzMjYyKSldLFsiTW9yb2NjbyIsKCk9Pm8udChudWxsLHZvaWQgMCxhKDcyMTQzMykpXSxbIk1vemFtYmlxdWUiLCgpPT5vLnQobnVsbCx2b2lkIDAsYSgxMDAwMjYpKV0sWyJNeWFubWFyIiwoKT0+by50KG51bGwsdm9pZCAwLGEoMjM5NDMpKV0sWyJOYW1pYmlhIiwoKT0+by50KG51bGwsdm9pZCAwLGEoNTcwNjE4KSldLFsiTmF1cnUiLCgpPT5vLnQobnVsbCx2b2lkIDAsYSg0NzM0MzcpKV0sWyJOZXBhbCIsKCk9Pm8udChudWxsLHZvaWQgMCxhKDQ3MTI4OCkpXSxbIk5ldGhlcmxhbmRzIiwoKT0+by50KG51bGwsdm9pZCAwLGEoNjE2ODYyKSldLFsiTmV3IENhbGVkb25pYSIsKCk9Pm8udChudWxsLHZvaWQgMCxhKDI0OTU4OCkpXSxbIk5ldyBaZWFsYW5kIiwoKT0+by50KG51bGwsdm9pZCAwLGEoNDIxNikpXSxbIk5pY2FyYWd1YSIsKCk9Pm8udChudWxsLHZvaWQgMCxhKDYyMzQ0MCkpXSxbIk5pZ2VyIiwoKT0+by50KG51bGwsdm9pZCAwLGEoNTkyMTg5KSldLFsiTmlnZXJpYSIsKCk9Pm8udChudWxsLHZvaWQgMCxhKDg0OTg2OCkpXSxbIk5pdWUiLCgpPT5vLnQobnVsbCx2b2lkIDAsYSg5MDc0NzApKV0sWyJOb3Jmb2xrIElzbGFuZCIsKCk9Pm8udChudWxsLHZvaWQgMCxhKDk2NzQxMikpXSxbIk5vcnRoIE1hY2Vkb25pYSIsKCk9Pm8udChudWxsLHZvaWQgMCxhKDcyOTc4MikpXSxbIk5vcnRoZXJuIE1hcmlhbmEgSXNsYW5kcyIsKCk9Pm8udChudWxsLHZvaWQgMCxhKDYxMjU1NykpXSxbIk5vcndheSIsKCk9Pm8udChudWxsLHZvaWQgMCxhKDg0NTUyMykpXSxbIk9tYW4iLCgpPT5vLnQobnVsbCx2b2lkIDAsYSgyODUyOTMpKV0sWyJQYWtpc3RhbiIsKCk9Pm8udChudWxsLHZvaWQgMCxhKDg0NDQzNikpXSxbIlBhbGF1IiwoKT0+by50KG51bGwsdm9pZCAwLGEoNzk4NDc2KSldLFsiUGFsZXN0aW5lLCBTdGF0ZSBvZiIsKCk9Pm8udChudWxsLHZvaWQgMCxhKDY5ODA4MykpXSxbIlBhbmFtYSIsKCk9Pm8udChudWxsLHZvaWQgMCxhKDEwMDcyOSkpXSxbIlBhcHVhIE5ldyBHdWluZWEiLCgpPT5vLnQobnVsbCx2b2lkIDAsYSg3MjU2OTcpKV0sWyJQYXJhZ3VheSIsKCk9Pm8udChudWxsLHZvaWQgMCxhKDQyMDEzNSkpXSxbIlBlcnUiLCgpPT5vLnQobnVsbCx2b2lkIDAsYSg4NTExMTEpKV0sWyJQaGlsaXBwaW5lcyIsKCk9Pm8udChudWxsLHZvaWQgMCxhKDYxMzY0NykpXSxbIlBpdGNhaXJuIiwoKT0+by50KG51bGwsdm9pZCAwLGEoMzg0MzgyKSldLFsiUG9sYW5kIiwoKT0+by50KG51bGwsdm9pZCAwLGEoOTY4NjA5KSldLFsiUG9ydHVnYWwiLCgpPT5vLnQobnVsbCx2b2lkIDAsYSgzOTg5NCkpXSxbIlB1ZXJ0byBSaWNvIiwoKT0+by50KG51bGwsdm9pZCAwLGEoODQzMzI3KSldLFsiUWF0YXIiLCgpPT5vLnQobnVsbCx2b2lkIDAsYSg5MzM3NTMpKV0sWyJSw6l1bmlvbiIsKCk9Pm8udChudWxsLHZvaWQgMCxhKDg3MjY4MCkpXSxbIkxhIFJldW5pb24iLCgpPT5vLnQobnVsbCx2b2lkIDAsYSg4NzI2ODApKV0sWyJSb21hbmlhIiwoKT0+by50KG51bGwsdm9pZCAwLGEoOTA1OTQ1KSldLFsiUnVzc2lhIiwoKT0+by50KG51bGwsdm9pZCAwLGEoOTM0ODgzKSldLFsiUnVzc2lhbiBGZWRlcmF0aW9uIiwoKT0+by50KG51bGwsdm9pZCAwLGEoMzkwNTk4KSldLFsiU0lOVCBNQUFSVEVOIChEVVRDSCBQQVJUKSIsKCk9Pm8udChudWxsLHZvaWQgMCxhKDc5NTAyMSkpXSxbIlJ3YW5kYSIsKCk9Pm8udChudWxsLHZvaWQgMCxhKDc1ODI5NykpXSxbIlNhaW50IEJhcnRow6lsZW15IiwoKT0+by50KG51bGwsdm9pZCAwLGEoMTk5NDgzKSldLFsiU2FpbnQgSGVsZW5hLCBBc2NlbnNpb24gYW5kIFRyaXN0YW4gZGEgQ3VuaGEiLCgpPT5vLnQobnVsbCx2b2lkIDAsYSg5NTU4MzUpKV0sWyJTYWludCBLaXR0cyBhbmQgTmV2aXMiLCgpPT5vLnQobnVsbCx2b2lkIDAsYSg1NzY5NzUpKV0sWyJTYWludCBMdWNpYSIsKCk9Pm8udChudWxsLHZvaWQgMCxhKDI1ODMxMSkpXSxbIlNhaW50IE1hcnRpbiAoRnJlbmNoIHBhcnQpIiwoKT0+by50KG51bGwsdm9pZCAwLGEoNDI1MDY0KSldLFsiU2FpbnQgUGllcnJlIGFuZCBNaXF1ZWxvbiIsKCk9Pm8udChudWxsLHZvaWQgMCxhKDc5NzAzNSkpXSxbIlNhaW50IFZpbmNlbnQgYW5kIHRoZSBHcmVuYWRpbmVzIiwoKT0+by50KG51bGwsdm9pZCAwLGEoNjIyNjEzKSldLFsiU2Ftb2EiLCgpPT5vLnQobnVsbCx2b2lkIDAsYSg1OTg5NjMpKV0sWyJTYW4gTWFyaW5vIiwoKT0+by50KG51bGwsdm9pZCAwLGEoOTk5NzYyKSldLFsiU2FvIFRvbWUgYW5kIFByaW5jaXBlIiwoKT0+by50KG51bGwsdm9pZCAwLGEoMjc5MzgyKSldLFsiU2F1ZGkgQXJhYmlhIiwoKT0+by50KG51bGwsdm9pZCAwLGEoNzYxNTIzKSldLFsiU2VuZWdhbCIsKCk9Pm8udChudWxsLHZvaWQgMCxhKDIyNDI4OSkpXSxbIlNlcmJpYSIsKCk9Pm8udChudWxsLHZvaWQgMCxhKDcxODUyOSkpXSxbIlNleWNoZWxsZXMiLCgpPT5vLnQobnVsbCx2b2lkIDAsYSg0MjA4MjEpKV0sWyJTaWVycmEgTGVvbmUiLCgpPT5vLnQobnVsbCx2b2lkIDAsYSgxNjQ5OTIpKV0sWyJTaW5nYXBvcmUiLCgpPT5vLnQobnVsbCx2b2lkIDAsYSg2NDM3OTUpKV0sWyJTaW50IE1hYXJ0ZW4gKER1dGNoIHBhcnQpIiwoKT0+by50KG51bGwsdm9pZCAwLGEoNzM2NDApKV0sWyJTbG92YWtpYSIsKCk9Pm8udChudWxsLHZvaWQgMCxhKDI2MzQzMikpXSxbIlNsb3ZlbmlhIiwoKT0+by50KG51bGwsdm9pZCAwLGEoNzIxODIxKSldLFsiU29sb21vbiBJc2xhbmRzIiwoKT0+by50KG51bGwsdm9pZCAwLGEoMTgxNzgpKV0sWyJTb21hbGlhIiwoKT0+by50KG51bGwsdm9pZCAwLGEoNjAwNTcpKV0sWyJTb3V0aCBBZnJpY2EiLCgpPT5vLnQobnVsbCx2b2lkIDAsYSgzMTAwODIpKV0sWyJTb3V0aCBHZW9yZ2lhIGFuZCB0aGUgU291dGggU2FuZHdpY2ggSXNsYW5kcyIsKCk9Pm8udChudWxsLHZvaWQgMCxhKDQ0Nzg1NCkpXSxbIlNvdXRoIEtvcmVhIiwoKT0+by50KG51bGwsdm9pZCAwLGEoNTg3NzUyKSldLFsiU291dGggU3VkYW4iLCgpPT5vLnQobnVsbCx2b2lkIDAsYSg0NTcxODYpKV0sWyJTcGFpbiIsKCk9Pm8udChudWxsLHZvaWQgMCxhKDc4ODMyMSkpXSxbIlNyaSBMYW5rYSIsKCk9Pm8udChudWxsLHZvaWQgMCxhKDgwNDc2NikpXSxbIlN1ZGFuIiwoKT0+by50KG51bGwsdm9pZCAwLGEoOTc0NDA0KSldLFsiU3VyaW5hbWUiLCgpPT5vLnQobnVsbCx2b2lkIDAsYSg4MTg4MzcpKV0sWyJTdmFsYmFyZCBhbmQgSmFuIE1heWVuIiwoKT0+by50KG51bGwsdm9pZCAwLGEoOTczOTE1KSldLFsiU3dlZGVuIiwoKT0+by50KG51bGwsdm9pZCAwLGEoMzY5OTYzKSldLFsiU3dpdHplcmxhbmQiLCgpPT5vLnQobnVsbCx2b2lkIDAsYSg3MzM5NzEpKV0sWyJTeXJpYSIsKCk9Pm8udChudWxsLHZvaWQgMCxhKDI3NDQ4NSkpXSxbIlRhaXdhbiIsKCk9Pm8udChudWxsLHZvaWQgMCxhKDI3MzE1NykpXSxbIlRhamlraXN0YW4iLCgpPT5vLnQobnVsbCx2b2lkIDAsYSg5Njg0NTgpKV0sWyJUYW56YW5pYSIsKCk9Pm8udChudWxsLHZvaWQgMCxhKDQ5ODE4MykpXSxbIlRoYWlsYW5kIiwoKT0+by50KG51bGwsdm9pZCAwLGEoNTUzMDQ0KSldLFsiVGltb3ItTGVzdGUiLCgpPT5vLnQobnVsbCx2b2lkIDAsYSg4MDMwNTEpKV0sWyJUb2dvIiwoKT0+by50KG51bGwsdm9pZCAwLGEoODMyNDQ4KSldLFsiVG9rZWxhdSIsKCk9Pm8udChudWxsLHZvaWQgMCxhKDEwNDE3NykpXSxbIlRvbmdhIiwoKT0+by50KG51bGwsdm9pZCAwLGEoMjUwNTU1KSldLFsiVHJpbmlkYWQgYW5kIFRvYmFnbyIsKCk9Pm8udChudWxsLHZvaWQgMCxhKDMxNDg3KSldLFsiVHVuaXNpYSIsKCk9Pm8udChudWxsLHZvaWQgMCxhKDY3NzU5KSldLFsiVHVya2V5IiwoKT0+by50KG51bGwsdm9pZCAwLGEoNjMxODEwKSldLFsiVHVya21lbmlzdGFuIiwoKT0+by50KG51bGwsdm9pZCAwLGEoNzM1NjgzKSldLFsiVHVya3MgYW5kIENhaWNvcyBJc2xhbmRzIiwoKT0+by50KG51bGwsdm9pZCAwLGEoOTcwNjI0KSldLFsiVHV2YWx1IiwoKT0+by50KG51bGwsdm9pZCAwLGEoNDMwMTM0KSldLFsiVS5TLiBWaXJnaW4gSXNsYW5kcyIsKCk9Pm8udChudWxsLHZvaWQgMCxhKDQzMTM3NykpXSxbIlVBRSIsKCk9Pm8udChudWxsLHZvaWQgMCxhKDE2MzExMCkpXSxbIlVTQSIsKCk9Pm8udChudWxsLHZvaWQgMCxhKDMwMTExNykpXSxbIlVnYW5kYSIsKCk9Pm8udChudWxsLHZvaWQgMCxhKDU4ODY5MykpXSxbIlVrcmFpbmUiLCgpPT5vLnQobnVsbCx2b2lkIDAsYSgzMTc0NzUpKV0sWyJVbml0ZWQgQXJhYiBFbWlyYXRlcyIsKCk9Pm8udChudWxsLHZvaWQgMCxhKDI0OTA5MSkpXSxbIlVuaXRlZCBLaW5nZG9tIiwoKT0+by50KG51bGwsdm9pZCAwLGEoMjgyNzMpKV0sWyJVbml0ZWQgU3RhdGVzIiwoKT0+by50KG51bGwsdm9pZCAwLGEoOTY3OTQxKSldLFsiVW5pdGVkIFN0YXRlcyBNaW5vciBPdXRseWluZyBJc2xhbmRzIiwoKT0+by50KG51bGwsdm9pZCAwLGEoNzM2Nzk5KSldLFsiVXJ1Z3VheSIsKCk9Pm8udChudWxsLHZvaWQgMCxhKDkyODU1MykpXSxbIlVTQSIsKCk9Pm8udChudWxsLHZvaWQgMCxhKDMwMTExNykpXSxbIlV6YmVraXN0YW4iLCgpPT5vLnQobnVsbCx2b2lkIDAsYSg3ODM5NzApKV0sWyJWYW51YXR1IiwoKT0+by50KG51bGwsdm9pZCAwLGEoNDE2MjU3KSldLFsiVmVuZXp1ZWxhIiwoKT0+by50KG51bGwsdm9pZCAwLGEoNjQzNTAzKSldLFsiVmlldG5hbSIsKCk9Pm8udChudWxsLHZvaWQgMCxhKDg1MjIxKSldLFsiVmlyZ2luIElzbGFuZHMgKEJyaXRpc2gpIiwoKT0+by50KG51bGwsdm9pZCAwLGEoNDIzMjA2KSldLFsiVmlyZ2luIElzbGFuZHMgKFUuUy4pIiwoKT0+by50KG51bGwsdm9pZCAwLGEoMzAxMjI5KSldLFsiV2FsbGlzIGFuZCBGdXR1bmEiLCgpPT5vLnQobnVsbCx2b2lkIDAsYSg1OTA1MDUpKV0sWyJXZXN0ZXJuIFNhaGFyYSIsKCk9Pm8udChudWxsLHZvaWQgMCxhKDg4MTI3NykpXSxbIlllbWVuIiwoKT0+by50KG51bGwsdm9pZCAwLGEoNDA5Mzg0KSldLFsiWmFtYmlhIiwoKT0+by50KG51bGwsdm9pZCAwLGEoODY3MzkzKSldLFsiWmltYmFid2UiLCgpPT5vLnQobnVsbCx2b2lkIDAsYSg5NTkxNTUpKV1dKQp9LDEyMjMwNyhlLHQsYSl7YS5yKHQpLGEuZCh0LHthZGRPclVwZGF0ZVN5bWJvbExpc3Q6KCk9PnUsaW5pdFdpZGdldDooKT0+cyxyZW1vdmVTeW1ib2xMaXN0OigpPT5kLHNlbGVjdEFsbFN5bWJvbHM6KCk9PmMsc2VsZWN0SG90bGlzdDooKT0+cCxzZWxlY3ROZXh0QXZhaWxhYmxlU3ltYm9sOigpPT5pLHNldFN5bWJvbExpc3RzOigpPT5tLHNob3dDb250ZXh0TWVudTooKT0+bix1cGRhdGVBY3RpdmVMaXN0OigpPT5oLHVwZGF0ZUJ1bGtQb3NpdGlvbnM6KCk9PmcsdXBkYXRlUG9zaXRpb246KCk9PlMsdXBkYXRlV2lkZ2V0OigpPT5yLHVwZGF0ZVdpZGdldE9wdGlvbnM6KCk9Pmx9KTt2YXIgbz1hKDQxMTM1Nyk7Y29uc3QgaT0oZSx0LGEsaSk9Pih7dHlwZTpvLlNFTEVDVF9ORVhUX0FWQUlMQUJMRV9TWU1CT0wsd2lkZ2V0SWQ6ZSxjdXJyZW50U3ltYm9sOnQsa2V5Ym9hcmRBY3Rpb246YSxjYW5jZWxTZXRPbkNoYXJ0Oml9KSxuPShlLHQsYSxpKT0+KHt0eXBlOm8uU0hPV19DT05URVhUX01FTlUsc3ltYm9sOnQscG9zaXRpb246dihhKSx3aWRnZXRJZDplLHNpemU6aX0pLHM9KGUsdCxhLGkpPT4oe3R5cGU6by5JTklUX1dJREdFVCxvcHRpb25zOmksaWQ6ZSxjb2x1bW5zOmEsdGlja2VyVHlwZTp0fSkscj0oZSx0KT0+KHt0eXBlOm8uVVBEQVRFX1dJREdFVCx3aWRnZXRJZDplLHdpZGdldDp0fSksbD0oZSx0KT0+KHt0eXBlOm8uVVBEQVRFX1dJREdFVF9PUFRJT05TLHdpZGdldElkOmUsb3B0aW9uczp0fSksYz1lPT4oe3R5cGU6by5TRUxFQ1RfQUxMX1NZTUJPTFMsd2lkZ2V0SWQ6ZX0pLHU9ZT0+KHt0eXBlOm8uQUREX09SX1VQREFURV9TWU1CT0xfTElTVCxzeW1ib2xMaXN0OmV9KSxkPWU9Pih7dHlwZTpvLlJFTU9WRV9TWU1CT0xfTElTVCxpZDplfSksbT1lPT4oe3R5cGU6by5TRVRfU1lNQk9MX0xJU1RTLHN5bWJvbExpc3RzOmV9KSxwPShlLHQsYSxpPSExLG49ITEpPT4oe3R5cGU6by5TRUxFQ1RfSE9UTElTVCx3aWRnZXRJZDplLGV4Y2hhbmdlOnQsZ3JvdXA6YSxza2lwVXBkYXRlV2lkZ2V0Omksc2tpcEFkZE9yVXBkYXRlTGlzdDpufSksUz0oZSx0KT0+KHt0eXBlOm8uVVBEQVRFX1BPU0lUSU9OUyxzeW1ib2w6ZSxwb3NpdGlvbjp0fSksZz1lPT4oe3R5cGU6by5VUERBVEVfQlVMS19QT1NJVElPTlMsbWFwOmV9KSxoPWU9Pih7dHlwZTpvLlVQREFURV9BQ1RJVkVfTElTVCx0b2tlbjplfSk7ZnVuY3Rpb24gdihlKXtjb25zdCB0PWUudG91Y2hlcz8ubWFwKChlPT4oe2NsaWVudFg6ZS5jbGllbnRYLGNsaWVudFk6ZS5jbGllbnRZfSkpKTtyZXR1cm57Y2xpZW50WDplLmNsaWVudFgsY2xpZW50WTplLmNsaWVudFksdG91Y2hlczp0LGF0dGFjaFRvWEJ5OmUuYXR0YWNoVG9YQnksYXR0YWNoVG9ZQnk6ZS5hdHRhY2hUb1lCeSxib3g6ZS5ib3h9fX0sNzQxOTI0KGUsdCxhKXthLmQodCx7U0VUX0lTX0FVVEhFTlRJQ0FURUQ6KCk9PnMsYXV0aFJlZHVjZXI6KCk9Pmwsd2F0Y2hBdXRoOigpPT5jfSk7dmFyIG89YSg4OTQ0OCksaT1hKDYxNDgyNSksbj1hKDIzMDIxMSk7Y29uc3Qgcz0iQVVUSF9fU0VUX0lTX0FVVEhFTlRJQ0FURUQiO2Z1bmN0aW9uIHIoZSl7cmV0dXJue3R5cGU6cyxpc0F1dGhlbnRpY2F0ZWQ6ZX19ZnVuY3Rpb24gbChlPUJvb2xlYW4od2luZG93LmlzX2F1dGhlbnRpY2F0ZWQpLHQpe3JldHVybiB0LnR5cGU9PT1zP3QuaXNBdXRoZW50aWNhdGVkOmV9ZnVuY3Rpb24qYygpe2NvbnN0IGU9KDAsby5ldmVudENoYW5uZWwpKChlPT57Y29uc3QgdD17fTtyZXR1cm4gd2luZG93LmxvZ2luU3RhdGVDaGFuZ2Uuc3Vic2NyaWJlKHQsKCgpPT5lKHdpbmRvdy5pc19hdXRoZW50aWNhdGVkKSkpLCgpPT53aW5kb3cubG9naW5TdGF0ZUNoYW5nZS51bnN1YnNjcmliZUFsbCh0KX0pKTt0cnl7Zm9yKDs7KXtjb25zdCB0PXlpZWxkKDAsaS50YWtlKShlKTt5aWVsZCgwLGkucHV0KSgoMCxuLnNldHVwKSh7bGlzdHM6W10sdGltZXN0YW1wOkRhdGUubm93KCksc2lsZW50OiEwfSkpLHlpZWxkKDAsaS5wdXQpKHIodCkpfX1maW5hbGx5e2UuY2xvc2UoKX19fSw3MzAzNTUoZSx0LGEpe2EuZCh0LHtjb2xsYXBzZWRTZXBhcmF0b3JzU2VsZWN0b3I6KCk9PmwsZGlzcGxheVN5bWJvbHNTZWxlY3RvcjooKT0+bSxkaXNwbGF5U3ltYm9sc1RvQWN0dWFsU2VsZWN0b3I6KCk9PnAsZ2V0Q3VycmVudFZpZXdhYmxlQ29sbGFwc2VkU2VwYXJhdG9yc1NlbGVjdG9yOigpPT5jLHNlcGFyYXRvcklzQ29sbGFwc2VkQnlMaXN0SWRTZWxlY3RvcjooKT0+ZCxzZXBhcmF0b3JJc0NvbGxhcHNlZFNlbGVjdG9yOigpPT51LHN5bWJvbHNUb1NlcGFyYXRvckNoaWxkcmVuTWFwOigpPT5nfSk7dmFyIG89YSgzNjQzNTApLGk9YSgxMzg2MzgpLG49YSgzNjYyNjIpLHM9YSg5MTk5ODUpO2NvbnN0IHI9KGUsdCxhKT0+YTtmdW5jdGlvbiBsKGUpe3JldHVybiBlLmNvbGxhcHNlZFNlcGFyYXRvcnN9Y29uc3QgYz0oMCxvLmNyZWF0ZVNlbGVjdG9yKShbbCxuLmdldEN1cnJlbnRWaWV3YWJsZUxpc3RCeVdpZGdldElkXSwoKGUsdCk9PnQmJiJob3QiIT09dC50eXBlP3suLi5lW3QuaWRdfTp7fSkpLHU9KDAsby5jcmVhdGVTZWxlY3RvcikoW2Mscl0sKChlLHQpPT5oKGUsdCkpKSxkPSgwLG8uY3JlYXRlU2VsZWN0b3IpKFtsLChlLHQpPT50LHJdLCgoZSx0LGEpPT5oKHsuLi5lW3RdfSxhKSkpLG09KCgwLG8uY3JlYXRlU2VsZWN0b3IpKFtsLG4uZ2V0R2xvYmFsQWN0aXZlU3ltYm9sTGlzdF0sKChlLHQpPT50P1ModCx7Li4uZVt0LmlkXX0pOltdKSksKDAsby5jcmVhdGVTZWxlY3RvcikoW24uZ2V0Q3VycmVudFZpZXdhYmxlTGlzdEJ5V2lkZ2V0SWQsY10sUykpLHA9KDAsby5jcmVhdGVTZWxlY3RvcikoW24uZ2V0Q3VycmVudFZpZXdhYmxlTGlzdEJ5V2lkZ2V0SWQsYyxyXSwoKGUsdCxhKT0+e2lmKCFlfHwiaG90Ij09PWUudHlwZSlyZXR1cm5bXTtjb25zdHtzeW1ib2xzOm99PWUsaT1nKG8pLG49W107cmV0dXJuIGEuZm9yRWFjaCgoZT0+e24ucHVzaChlKTtjb25zdCBhPWkuZ2V0KGUpLG89aCh0LGUpO2EmJm8mJm4ucHVzaCguLi5hKX0pKSxufSkpO2Z1bmN0aW9uIFMoZSx0KXtpZighZSlyZXR1cm5bXQo7Y29uc3R7c3ltYm9sczphfT1lLG89W107bGV0IGk9ITA7cmV0dXJuIGEuZm9yRWFjaCgoZT0+e2NvbnN0IGE9KDAscy5pc1ZhbGlkU2VwYXJhdG9ySXRlbSkoZSk7KGl8fGEpJiZvLnB1c2goZSksYSYmKGk9IWgodCxlKSl9KSksb31mdW5jdGlvbiBnKGUpe2NvbnN0IHQ9bmV3IE1hcDtsZXQgYT0iIjtyZXR1cm4gZS5mb3JFYWNoKChlPT57KDAscy5pc1ZhbGlkU2VwYXJhdG9ySXRlbSkoZSk/KGE9ZSx0LnNldChhLFtdKSk6YSYmKDAsaS5lbnN1cmVEZWZpbmVkKSh0LmdldChhKSkucHVzaChlKX0pKSx0fWZ1bmN0aW9uIGgoZSx0KXtyZXR1cm4hIWUuaGFzT3duUHJvcGVydHkodCkmJmVbdF19fSwxNjIzMzUoZSx0LGEpe2EuZCh0LHtjcmVhdGVDcm9zc1RhYlN5bmNNaWRkbGV3YXJlOigpPT5tLHJlZHVjZXI6KCk9PmQsc2V0U2VwYXJhdG9yc0NvbGxhcHNlOigpPT51fSk7dmFyIG89YSgxMzA2OTkpLGk9YSg0MzMyMCksbj1hKDIzMDIxMSkscz1hKDcxMjEzNCk7Y29uc3Qgcj0iY29sbGFwc2VkLXNlcGFyYXRvcnMtc3RhdGUtZXh0ZW5zaW9uIixsPXtbcl06e319LGM9KDAsby5jcmVhdGVTbGljZSkoe25hbWU6ImNvbGxhcHNlZC1zZXBhcmF0b3JzIixpbml0aWFsU3RhdGU6bCxyZWR1Y2Vyczp7c2V0U2VwYXJhdG9yc0NvbGxhcHNlOihlLHQpPT57Y29uc3R7bGlzdElkOmEsdmFsdWVzOm8sYWN0aW9uVGltZXN0YW1wOml9PXQucGF5bG9hZDtUKGUsYSksdm9pZCAwIT09aSYmZVtyXVthXS5sYXN0Q2hhbmdlVGltZXN0YW1wPj1pfHwoT2JqZWN0LmVudHJpZXMobykuZm9yRWFjaCgoKFt0LG9dKT0+cChlLGEsdCxvKSkpLHZvaWQgMCE9PWkmJihlW3JdW2FdLmxhc3RDaGFuZ2VUaW1lc3RhbXA9aSkpfX0sZXh0cmFSZWR1Y2VyczplPT57ZS5hZGRDYXNlKG4uc2V0dXAsUyksZS5hZGRDYXNlKHMuc2V0dXAsZyksZS5hZGRDYXNlKG4ucHV0LCgoZSx0KT0+e2NvbnN0e2FjdGlvblRpbWVzdGFtcDphLGNvbGxhcHNlZFNlcGFyYXRvcnM6byxpZDppfT10LnBheWxvYWQ7aChlLHtpZDppLGNvbGxhcHNlZFNlcGFyYXRvcnM6byxsYXN0Q2hhbmdlVGltZXN0YW1wOmF9LGEpfSkpLGUuYWRkQ2FzZShzLnJlbmFtZVNlcGFyYXRvciwoKGUsdCk9Pntjb25zdHtjb2xvcjphLHNlcGFyYXRvcjpvLG5hbWU6aX09dC5wYXlsb2FkO0Jvb2xlYW4oZVthXT8uW29dKSYmcChlLGEsaSwhMCl9KSl9fSkse3NldFNlcGFyYXRvcnNDb2xsYXBzZTp1fT1jLmFjdGlvbnMse3JlZHVjZXI6ZH09YztmdW5jdGlvbiBtKGUsdCxhPWMpe3JldHVybigwLGkuY3JlYXRlQ3Jvc3NUYWJTeW5jTWlkZGxld2FyZSkoe2lkOmUsY2hhbm5lbDp0LGV2ZW50OiJjb2xsYXBzZWQtc2VwYXJhdG9ycy1jcm9zcy10YWItc3luYyIsZmlsdGVyOmU9PmZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQuYWN0aW9ucy5zZXRTZXBhcmF0b3JzQ29sbGFwc2UubWF0Y2goZSl9KGUsYSl9KX1mdW5jdGlvbiBwKGUsdCxhLG8peyFmdW5jdGlvbihlLHQpe2UuaGFzT3duUHJvcGVydHkodCl8fChlW3RdPXt9KX0oZSx0KSxvP2VbdF1bYV09bzpkZWxldGUgZVt0XVthXX1mdW5jdGlvbiBTKGUsdCl7Y29uc3R7bGlzdHM6YX09dC5wYXlsb2FkO2EuZm9yRWFjaCgodD0+aChlLHQsdC5sYXN0Q2hhbmdlVGltZXN0YW1wKSkpfWZ1bmN0aW9uIGcoZSx0KXtjb25zdHtsaXN0czphfT10LnBheWxvYWQ7YS5mb3JFYWNoKCh0PT52KGUsdCkpKX1mdW5jdGlvbiBoKGUsdCxhKXt2KGUsdCxhKX1mdW5jdGlvbiB2KGUsdCxhKXtjb25zdCBvPWZ1bmN0aW9uKGUpe3JldHVybiBlLmhhc093blByb3BlcnR5KCJjb2xvciIpfSh0KT90LmNvbG9yOnQuaWQse2NvbGxhcHNlZFNlcGFyYXRvcnM6aX09dDtUKGUsbyksdm9pZCAwIT09YSYmZVtyXVtvXS5sYXN0Q2hhbmdlVGltZXN0YW1wPj1hfHwoZVtvXT17fSxpPy5mb3JFYWNoKCh0PT57ZVtvXVt0XT0hMH0pKSx2b2lkIDAhPT1hJiYoZVtyXVtvXS5sYXN0Q2hhbmdlVGltZXN0YW1wPWEpKX1mdW5jdGlvbiBUKGUsdCl7ZVtyXS5oYXNPd25Qcm9wZXJ0eSh0KXx8KGVbcl1bdF09e2xhc3RDaGFuZ2VUaW1lc3RhbXA6MH0pfX0sNDExMzU3KGUsdCxhKXthLmQodCx7QUREX09SX1VQREFURV9TWU1CT0xfTElTVDooKT0+bSxJTklUX1dJREdFVDooKT0+cixSRU1PVkVfU1lNQk9MX0xJU1Q6KCk9PlMsU0VMRUNUX0FMTF9TWU1CT0xTOigpPT5kLFNFTEVDVF9IT1RMSVNUOigpPT5nLFNFTEVDVF9ORVhUX0FWQUlMQUJMRV9TWU1CT0w6KCk9PmksU0VUX1NZTUJPTF9MSVNUUzooKT0+cCxTSE9XX0NPTlRFWFRfTUVOVTooKT0+bCxVUERBVEVfQUNUSVZFX0xJU1Q6KCk9PmgsVVBEQVRFX0JVTEtfUE9TSVRJT05TOigpPT5zLFVQREFURV9QT1NJVElPTlM6KCk9Pm4sVVBEQVRFX1dJREdFVDooKT0+YyxVUERBVEVfV0lER0VUX09QVElPTlM6KCk9PnV9KTtjb25zdCBvPSgwLGEoMzYzNTI2KS5jcmVhdGVBY3Rpb25UeXBlRmFjdG9yeSkoIldBVENITElTVFMiKSxpPW8oIlNFTEVDVF9ORVhUX0FWQUlMQUJMRV9TWU1CT0wiKSxuPW8oIlVQREFURV9QT1NJVElPTlMiKSxzPW8oIlVQREFURV9CVUxLX1BPU0lUSU9OUyIpLHI9bygiSU5JVF9XSURHRVQiKSxsPW8oIlNIT1dfQ09OVEVYVF9NRU5VIiksYz1vKCJVUERBVEVfV0lER0VUIiksdT1vKCJVUERBVEVfV0lER0VUX09QVElPTlMiKSxkPW8oIlNFTEVDVF9BTExfU1lNQk9MUyIpLG09bygiQUREX09SX1VQREFURV9TWU1CT0xfTElTVCIpLHA9bygiU0VUX1NZTUJPTF9MSVNUUyIpLFM9bygiUkVNT1ZFX1NZTUJPTF9MSVNUIiksZz1vKCJTRUxFQ1RfSE9UTElTVCIpLGg9bygiVVBEQVRFX0FDVElWRV9MSVNUIil9LDU0ODEwMyhlLHQsYSl7YS5kKHQse2Nyb3NzdGFiTW9ub3RvbmljVGltZXN0YW1wOigpPT5yfSk7dmFyIG89YSgyMjEwNjEpLGk9YSg5MzIzNjUpO2NvbnN0IG49KDAsby5nZXRMb2dnZXIpKCJDcm9zc3RhYk1vbm90b25pY0Nsb2NrIik7bGV0IHM9ITE7ZnVuY3Rpb24gcigpe2NvbnN0IGU9TnVtYmVyKGkuVFZMb2NhbFN0b3JhZ2UuZ2V0SXRlbSgibGFzdC1jcm9zc3RhYi1tb25vdG9uaWMtdGltZXN0YW1wIikpfHwwLHQ9RGF0ZS5ub3coKSxhPWU8dD90OmUrMQo7cmV0dXJuIXMmJmUtdD44NjRlNSYmKG4ubG9nRXJyb3IoYFRoZSBsYXN0IHJlY29yZGVkIHRpbWVzdGFtcCAke2V9IG9jY3VycmVkIG1vcmUgdGhhbiBvbmUgZGF5IGluIHRoZSBmdXR1cmUuYCkscz0hMCksaS5UVkxvY2FsU3RvcmFnZS5zZXRJdGVtKCJsYXN0LWNyb3NzdGFiLW1vbm90b25pYy10aW1lc3RhbXAiLFN0cmluZyhhKSksYX19LDY0NTkzMyhlLHQsYSl7ZnVuY3Rpb24gbyhlKXtyZXR1cm57dHlwZToiY3VzdG9tIixpZDplLmlkLG5hbWU6ZS5uYW1lLGRlc2NyaXB0aW9uOmUuZGVzY3JpcHRpb24sc3ltYm9sczplLnN5bWJvbHMsc2hhcmVkOmUuc2hhcmVkLHBlcnNpc3RlZFN0YXRlOmUucGVyc2lzdGVkU3RhdGV9fWZ1bmN0aW9uIGkoZSl7cmV0dXJuImN1c3RvbSI9PT1lLnR5cGV9YS5kKHQse2lzQ3VzdG9tTGlzdDooKT0+aSxtYWtlQ3VzdG9tTGlzdEZyb21SZWNvcmQ6KCk9Pm99KX0sOTc5NTc5KGUsdCxhKXthLmQodCx7Y3JlYXRlU3ltYm9sTGlzdElkOigpPT5uLGlzSG90TGlzdElkOigpPT5pfSk7Y29uc3Qgbz0iIyMjSE9UIyMjIjtmdW5jdGlvbiBpKGUpe3JldHVybiJzdHJpbmciPT10eXBlb2YgZSYmMD09PWUuaW5kZXhPZihvKX1mdW5jdGlvbiBuKGUsdCl7cmV0dXJuIG8rYCR7ZX0uJHt0fWB9fSw4NzEwMjEoZSx0LGEpe2EuZCh0LHtnZXRIb3RsaXN0QnlJZDooKT0+bixob3RMaXN0c1NlbGVjdG9yOigpPT5pfSk7dmFyIG89YSgzNjQzNTApO2NvbnN0IGk9ZT0+ZS5ob3RMaXN0cz8ubGlzdHM/P251bGwsbj0oMCxvLmNyZWF0ZVNlbGVjdG9yKShbaSwoZSx0KT0+dF0sKChlLHQpPT5lP2VbdF06bnVsbCkpfSw3Nzk5MzkoZSx0LGEpe2Eucih0KSxhLmQodCx7YWRkV2F0Y2hsaXN0U3ltYm9sc1RodW5rOigpPT5GLGNyZWF0ZVdhdGNobGlzdFRodW5rOigpPT53LGdldEFjdGl2ZVdhdGNobGlzdFRodW5rOigpPT5KLGdldEN1c3RvbVdhdGNobGlzdHNUaHVuazooKT0+UCxwZXJzaXN0U2VwYXJhdG9yc0NvbGxhcHNlVGh1bms6KCk9PlgscHV0Q3VzdG9tV2F0Y2hsaXN0c1RodW5rOigpPT56LHJlbW92ZVdhdGNobGlzdFN5bWJvbHNUaHVuazooKT0+VixyZW1vdmVXYXRjaGxpc3RUaHVuazooKT0+VyxyZW5hbWVTZXBhcmF0b3JUaHVuazooKT0+SyxyZW5hbWVXYXRjaGxpc3RUaHVuazooKT0+RCxyZXBsYWNlV2F0Y2hsaXN0U3ltYm9sc1RodW5rOigpPT5VLHNhdmVDb2xsYXBzZWRTZXBhcmF0b3JzVGh1bms6KCk9Pkgsc2V0QWN0aXZlV2F0Y2hsaXN0VGh1bms6KCk9Plksc3ltYm9sTGlzdFJlcG9zaXRvcnlTYWdhOigpPT54LHZhbGlkYXRlV2F0Y2hMaXN0U3ltYm9sczooKT0+Qn0pO3ZhciBvPWEoNjE0ODI1KSxpPWEoMjMwMjExKSxuPWEoOTMwMjMxKSxzPWEoNzgzMjU0KSxyPWEoNzA1MDEyKSxsPWEoNTA4NzQ3KSxjPWEoMTIyMzA3KSx1PWEoMjIxMDYxKSxkPWEoMjM0OTY0KSxtPWEoMjE0OTg3KSxwPWEoMzY2MjYyKSxTPWEoNTE5NTE1KSxnPWEoNDc3NTg3KTtmdW5jdGlvbipoKCl7Zm9yKHlpZWxkKDAsby5wdXQpKCgwLGcuYXNBY3Rpb24pKEoobnVsbCkpKTs7KXt5aWVsZCgwLG8udGFrZSkoW2kucmVtb3ZlLGkuc2V0dXBdKTtjb25zdCBlPXlpZWxkKDAsby5zZWxlY3QpKCk7bnVsbD09PSgwLHAuZ2V0Q3VycmVudFZpZXdhYmxlTGlzdEJ5V2lkZ2V0SWQpKGUsUy5XQVRDSExJU1RfV0lER0VUX0lEKSYmKHlpZWxkKDAsby5wdXQpKCgwLGcuYXNBY3Rpb24pKEoobnVsbCkpKSl9fXZhciB2PWEoNjQ1OTMzKSxUPWEoNTQ4MTAzKSxFPWEoNzQxOTI0KSx5PWEoODMxNTI3KSxBPWEoMzIwNTUpLGs9YSgzODQwMTcpLGI9YSg5NjIwODEpLEw9YSgzMDQzOTkpLEk9YSg1ODA1MjYpO3ZhciBDPWEoNzcwNzU1KSxmPWEoNzYwMzkwKSxSPWEoMzEzMzAwKSxOPWEoNzMwMzU1KSxNPWEoMTYyMzM1KTtjb25zdCBfPSgwLHUuZ2V0TG9nZ2VyKSgiUGxhdGZvcm0uTW9kZWwuU3ltYm9sTGlzdHMiKTtmdW5jdGlvbip4KCl7eWllbGQoMCxvLmZvcmspKEUud2F0Y2hBdXRoKSwoMCxuLmlzRmVhdHVyZXNldEVuYWJsZWQpKCJ3aWRnZXQiKXx8KHlpZWxkKDAsby5mb3JrKShoKSl9ZnVuY3Rpb24gQihlKXtyZXR1cm4gbmV3IFByb21pc2UoKHQ9PnsoMCxBLnJlc29sdmVTeW1ib2xOYW1lRm9yQWxsRGlzdGluY3QpKGUpLnRoZW4oKGU9Pnt0KGUpfSkpfSkpfWZ1bmN0aW9uIE8oZSx0LG8peygwLGQuc2hvd1dhcm5pbmcpKHt0aXRsZTp0fHxzLnQobnVsbCx2b2lkIDAsYSgzODIwMjUpKSx0ZXh0OmV9LG8pfWZ1bmN0aW9uIHcoZSl7Y29uc3QgdD0oMCxyLnNlcnZpY2UpKGwuU1lNQk9MX0xJU1RfUkVQT1NJVE9SWV9CQUNLRU5EX1NFUlZJQ0UpO3JldHVybiBhc3luYyhhLG8pPT57dHJ5e2NvbnN0IG89KDAsVC5jcm9zc3RhYk1vbm90b25pY1RpbWVzdGFtcCkoKSxuPWF3YWl0IHQuY3JlYXRlV2F0Y2hMaXN0KGUpO3JldHVybiBudWxsPT09bj9udWxsOihhKCgwLGkuY3JlYXRlKSh7aWQ6bi5pZCxuYW1lOm4ubmFtZSxzeW1ib2xzOm4uc3ltYm9scyxwZXJzaXN0ZWRTdGF0ZTpuLnBlcnNpc3RlZFN0YXRlLGFjdGlvblRpbWVzdGFtcDpvfSkpLG4uaWQpfWNhdGNoKGUpe3JldHVybiJBcGlFcnJvcjpwbGFuX3N5bWJvbHNfbGltaXRfcmVhY2hlZCI9PT1lLm5hbWU/KCgwLEMub3BlblBheXdhbGwpKHtmZWF0dXJlOiJ3YXRjaGxpc3RTeW1ib2xzIn0pLG51bGwpOihPKGUubWVzc2FnZSksbnVsbCl9fX1jb25zdCBQPSgwLG0ucmVzcGVjdExhdGVzdCkoKGZ1bmN0aW9uKGUpe2NvbnN0IHQ9KDAsci5zZXJ2aWNlKShsLlNZTUJPTF9MSVNUX1JFUE9TSVRPUllfQkFDS0VORF9TRVJWSUNFKTtyZXR1cm4gYXN5bmMoYSxvKT0+e3RyeXtjb25zdCBvPSgwLFQuY3Jvc3N0YWJNb25vdG9uaWNUaW1lc3RhbXApKCksbj1hd2FpdCgwLG0ucmVzcGVjdEFib3J0KShlLHQuZ2V0Q3VzdG9tV2F0Y2hMaXN0cygpKSxzPURhdGUubm93KCk7YSgoMCxpLnNldHVwKSh7bGlzdHM6bi5tYXAoKGU9Pih7aWQ6ZS5pZCxuYW1lOmUubmFtZSxkZXNjcmlwdGlvbjplLmRlc2NyaXB0aW9uLHN5bWJvbHM6ZS5zeW1ib2xzLHNoYXJlZDplLnNoYXJlZCxjb2xsYXBzZWRTZXBhcmF0b3JzOmUuY29sbGFwc2VkU2VwYXJhdG9ycyx0aW1lc3RhbXA6cywKcGVyc2lzdGVkU3RhdGU6ZS5wZXJzaXN0ZWRTdGF0ZSxsYXN0Q2hhbmdlVGltZXN0YW1wOm99KSkpLHRpbWVzdGFtcDpzfSkpfWNhdGNoKGUpeygwLG0uc2tpcEFib3J0RXJyb3IpKGUpfX19KSk7ZnVuY3Rpb24geihlLHQpe2NvbnN0IGE9KDAsci5zZXJ2aWNlKShsLlNZTUJPTF9MSVNUX1JFUE9TSVRPUllfQkFDS0VORF9TRVJWSUNFKTtyZXR1cm4gYXN5bmMobyxuKT0+e3RyeXtjb25zdCBuPSgwLFQuY3Jvc3N0YWJNb25vdG9uaWNUaW1lc3RhbXApKCkscz1hd2FpdCgwLG0ucmVzcGVjdEFib3J0KShlLGEucHV0V2F0Y2hMaXN0KHQpKTtvKCgwLGkucHV0KSh7aWQ6cy5pZCxuYW1lOnMubmFtZSxkZXNjcmlwdGlvbjpzLmRlc2NyaXB0aW9uLHN5bWJvbHM6cy5zeW1ib2xzLHNoYXJlZDpzLnNoYXJlZCxjb2xsYXBzZWRTZXBhcmF0b3JzOnMuY29sbGFwc2VkU2VwYXJhdG9ycyxwZXJzaXN0ZWRTdGF0ZTpzLnBlcnNpc3RlZFN0YXRlLGFjdGlvblRpbWVzdGFtcDpufSkpfWNhdGNoKGUpeygwLG0ucmV0aHJvd0Fib3J0RXJyb3IpKGUpLE8oZS5tZXNzYWdlKX19fWZ1bmN0aW9uIEQoZSx0LGEpe2NvbnN0IG89KDAsci5zZXJ2aWNlKShsLlNZTUJPTF9MSVNUX1JFUE9TSVRPUllfQkFDS0VORF9TRVJWSUNFKTtyZXR1cm4gYXN5bmMobixzKT0+e24oKDAsaS5yZW5hbWUpKHtpZDp0LmlkLG5hbWU6YSxhY3Rpb25UaW1lc3RhbXA6KDAsVC5jcm9zc3RhYk1vbm90b25pY1RpbWVzdGFtcCkoKX0pKTtjb25zdCByPWF3YWl0KDAsbS5yZXNwZWN0QWJvcnQpKGUsby5yZW5hbWVXYXRjaExpc3QodCxhKSk7ciYmci5wZXJzaXN0ZWRTdGF0ZSYmbigoMCxpLnVwZGF0ZVBlcnNpc3RlZFN0YXRlKSh7W3QuaWRdOnIucGVyc2lzdGVkU3RhdGV9KSl9fWZ1bmN0aW9uIFUoZSx0LGEsbyl7Y29uc3Qgbj0oMCxyLnNlcnZpY2UpKGwuU1lNQk9MX0xJU1RfUkVQT1NJVE9SWV9CQUNLRU5EX1NFUlZJQ0UpO3JldHVybiBhc3luYyhzLHIpPT57aWYoImN1c3RvbSIhPT10LnR5cGUpcmV0dXJuIHZvaWQgXy5sb2dXYXJuKCJUcnlpbmcgdG8gbW9kaWZ5IG5vdCBhIGN1c3RvbSB3YXRjaGxpc3QiKTtpZihhLmxlbmd0aD5SLk1BWF9XQVRDSExJU1RfTEVOR1RIKXJldHVybiB2b2lkKDAsUi5zaG93TWF4TGltaXRFcnJvcikobyk7e2NvbnN0IGU9KDAscC5nZXRDdXN0b21MaXN0QnlJZCkocigpLHQuaWQpO2lmKGU/LnN5bWJvbHMubGVuZ3RoIT09YS5sZW5ndGgmJiFaKGEubGVuZ3RoKSlyZXR1cm59cygoMCxpLmV4YWN0KSh7aWQ6dC5pZCxzeW1ib2xzOmEsYWN0aW9uVGltZXN0YW1wOigwLFQuY3Jvc3N0YWJNb25vdG9uaWNUaW1lc3RhbXApKCl9KSk7Y29uc3QgbD1hd2FpdCgwLG0ucmVzcGVjdEFib3J0KShlLG4ucmVwbGFjZVN5bWJvbHModCxhKSk7bCYmcygoMCxpLnVwZGF0ZVBlcnNpc3RlZFN0YXRlKSh7W3QuaWRdOntzeW1ib2xzOmx9fSkpfX1mdW5jdGlvbiBIKGUpe2NvbnN0IHQ9KDAsci5zZXJ2aWNlKShsLlNZTUJPTF9MSVNUX1JFUE9TSVRPUllfQkFDS0VORF9TRVJWSUNFKTtyZXR1cm4gYXN5bmMoKT0+e2F3YWl0IHQucmVwbGFjZVN5bWJvbHMoZSxlLnN5bWJvbHMpfX1mdW5jdGlvbiBYKGUsdCxvKXtyZXR1cm4gYXN5bmMgaT0+e3dpbmRvdy5pc19hdXRoZW50aWNhdGVkJiZhd2FpdCBhc3luYyBmdW5jdGlvbihlKXtjb25zdHtsaXN0OntpZDp0LHR5cGU6YSxzeW1ib2xzOm99LHNlcGFyYXRvcnM6aSx2YWx1ZTpuLHNpZ25hbDpzfT1lO2lmKDE9PT1pLmxlbmd0aCl7Y29uc3RbZV09aSxvPSgwLEkuc2VwYXJhdG9yUmVtb3RlUmVwcmVzZW50YXRpb24pKGUsIW4pLHM9KDAsSS5zZXBhcmF0b3JSZW1vdGVSZXByZXNlbnRhdGlvbikoZSxuKTtyZXR1cm4oMCxiLmNvbW1vblJlbmFtZVNlcGFyYXRvcikodCxhLG8scyl9Y29uc3Qgcj1uZXcgU2V0KGkpLGw9KDAsSS5yZW1vdGVTeW1ib2xzRm9ybUxvY2FsU3RhdGUpKHQsbykubWFwKCgoZSx0KT0+e2NvbnN0IGE9b1t0XTtyZXR1cm4gci5oYXMoYSk/KDAsSS5zZXBhcmF0b3JSZW1vdGVSZXByZXNlbnRhdGlvbikoYSxuKTplfSkpLGM9YXdhaXQoMCxrLmZldGNoKSgoMCxMLndhdGNobGlzdFVybCkoYC9hcGkvdjEvc3ltYm9sc19saXN0LyR7YX0vJHt0fS9yZXBsYWNlLz91bnNhZmU9dHJ1ZWApLHttZXRob2Q6IlBPU1QiLGJvZHk6SlNPTi5zdHJpbmdpZnkobCksY3JlZGVudGlhbHM6ImluY2x1ZGUiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sc2lnbmFsOnN9KTtpZighYy5vayl7Y29uc3R7ZGV0YWlsOmV9PWF3YWl0IGMuanNvbigpO3Rocm93IEVycm9yKGUpfX0oe2xpc3Q6ZSxzZXBhcmF0b3JzOnQsdmFsdWU6b30pLmNhdGNoKG0uc2tpcEFib3J0RXJyb3IpLmNhdGNoKChuPT57KDAsZC5zaG93V2FybmluZykoe3RpdGxlOnMudChudWxsLHZvaWQgMCxhKDg3MjM4KSksdGV4dDpuLm1lc3NhZ2V9KTtjb25zdCByPXt9O3QuZm9yRWFjaCgoZT0+e3JbZV09IW99KSksaSgoMCxNLnNldFNlcGFyYXRvcnNDb2xsYXBzZSkoe2xpc3RJZDplLmlkLHZhbHVlczpyLGFjdGlvblRpbWVzdGFtcDooMCxULmNyb3NzdGFiTW9ub3RvbmljVGltZXN0YW1wKSgpfSkpfSkpfX1mdW5jdGlvbiBGKGUsdCxhLG8pe2NvbnN0IG49KDAsci5zZXJ2aWNlKShsLlNZTUJPTF9MSVNUX1JFUE9TSVRPUllfQkFDS0VORF9TRVJWSUNFKTtyZXR1cm4gYXN5bmMocyxyKT0+e2lmKCJjdXN0b20iPT09dC50eXBlKWlmKHQuc3ltYm9scy5sZW5ndGg+Ui5NQVhfV0FUQ0hMSVNUX0xFTkdUSCkoMCxSLnNob3dNYXhMaW1pdEVycm9yKShvKTtlbHNle3tjb25zdCBlPSgwLHAuZ2V0Q3VzdG9tTGlzdEJ5SWQpKHIoKSx0LmlkKTtpZighKDAsZi5pc0RlbGV0ZWRTeW1ib2xzTGlzdCkodC5pZCkmJmU/LnN5bWJvbHMubGVuZ3RoIT09dC5zeW1ib2xzLmxlbmd0aCYmIVoodC5zeW1ib2xzLmxlbmd0aCkpcmV0dXJufXMoKDAsaS5pbnNlcnQpKHtpZDp0LmlkLHN5bWJvbHM6YSxhY3Rpb25UaW1lc3RhbXA6KDAsVC5jcm9zc3RhYk1vbm90b25pY1RpbWVzdGFtcCkoKX0pKTt0cnl7Y29uc3Qgbz1hd2FpdCgwLG0ucmVzcGVjdEFib3J0KShlLG4uYWRkU3ltYm9scyh0LGEpKTtzKCgwLAppLnVwZGF0ZVBlcnNpc3RlZFN0YXRlKSh7W3QuaWRdOntzeW1ib2xzOm99fSkpfWNhdGNoKGUpe2lmKCgwLG0uaXNBYm9ydEVycm9yKShlKSl0aHJvdyBlO2NvbnN0IG49dC5zeW1ib2xzLmZpbHRlcigoZT0+IWEuaW5jbHVkZXMoZSkpKTtpZihzKCgwLGkuZXhhY3QpKHtpZDp0LmlkLHN5bWJvbHM6bixhY3Rpb25UaW1lc3RhbXA6KDAsVC5jcm9zc3RhYk1vbm90b25pY1RpbWVzdGFtcCkoKX0pKSwiQXBpRXJyb3I6cGxhbl9zeW1ib2xzX2xpbWl0X3JlYWNoZWQiPT09ZS5uYW1lKXJldHVybiB2b2lkKDAsQy5vcGVuUGF5d2FsbCkoe2ZlYXR1cmU6IndhdGNobGlzdFN5bWJvbHMifSk7TyhlLm1lc3NhZ2Usdm9pZCAwLG8pfX1lbHNlIF8ubG9nV2FybigiVHJ5aW5nIHRvIG1vZGlmeSBub3QgYSBjdXN0b20gd2F0Y2hsaXN0Iil9fWZ1bmN0aW9uIFYoZSx0LGEpe2NvbnN0IG89KDAsci5zZXJ2aWNlKShsLlNZTUJPTF9MSVNUX1JFUE9TSVRPUllfQkFDS0VORF9TRVJWSUNFKTtyZXR1cm4gYXN5bmMobixzKT0+e24oKDAsaS5leGNsdWRlKSh7aWQ6dC5pZCxzeW1ib2xzOmEsYWN0aW9uVGltZXN0YW1wOigwLFQuY3Jvc3N0YWJNb25vdG9uaWNUaW1lc3RhbXApKCl9KSk7Y29uc3Qgcj1hd2FpdCgwLG0ucmVzcGVjdEFib3J0KShlLG8ucmVtb3ZlU3ltYm9scyh0LGEpKTtuKCgwLGkudXBkYXRlUGVyc2lzdGVkU3RhdGUpKHtbdC5pZF06e3N5bWJvbHM6cn19KSl9fWZ1bmN0aW9uIFcoZSx0KXtjb25zdCBhPSgwLHIuc2VydmljZSkobC5TWU1CT0xfTElTVF9SRVBPU0lUT1JZX0JBQ0tFTkRfU0VSVklDRSk7cmV0dXJuIGFzeW5jKG8sbik9Pnthd2FpdCgwLG0ucmVzcGVjdEFib3J0KShlLGEucmVtb3ZlV2F0Y2hMaXN0KHQpKSxvKCgwLGkucmVtb3ZlKSh7aWQ6dC5pZH0pKX19ZnVuY3Rpb24gWShlLHQpe2NvbnN0IGE9KDAsci5zZXJ2aWNlKShsLlNZTUJPTF9MSVNUX1JFUE9TSVRPUllfQkFDS0VORF9TRVJWSUNFKTtyZXR1cm4gYXN5bmMobyxuKT0+e2NvbnN0e2lkOnN9PXQ7bygoMCxjLnVwZGF0ZUFjdGl2ZUxpc3QpKHQpKTtjb25zdCByPWF3YWl0KDAsbS5yZXNwZWN0QWJvcnQpKGUsYS5zZXRBY3RpdmUodCkpO3ImJigwLHYuaXNDdXN0b21MaXN0KShyKSYmci5wZXJzaXN0ZWRTdGF0ZSYmbygoMCxpLnVwZGF0ZVBlcnNpc3RlZFN0YXRlKSh7W3NdOnIucGVyc2lzdGVkU3RhdGV9KSl9fWZ1bmN0aW9uIEcoZSx0LGEpe3JldHVybiBhc3luYyhvLG4pPT57Y29uc3Qgcz0oMCxOLnNlcGFyYXRvcklzQ29sbGFwc2VkQnlMaXN0SWRTZWxlY3RvcikobigpLGUsdCk7bygoMCxpLnJlcGxhY2UpKHtpZDplLGN1cnJlbnQ6dCxuZXh0OmEsYWN0aW9uVGltZXN0YW1wOigwLFQuY3Jvc3N0YWJNb25vdG9uaWNUaW1lc3RhbXApKCl9KSkscyYmbygoMCxNLnNldFNlcGFyYXRvcnNDb2xsYXBzZSkoe2xpc3RJZDplLHZhbHVlczp7W2FdOiEwLFt0XTohMX0sYWN0aW9uVGltZXN0YW1wOigwLFQuY3Jvc3N0YWJNb25vdG9uaWNUaW1lc3RhbXApKCl9KSl9fWZ1bmN0aW9uIEsoZSx0LGEsbyl7Y29uc3Qgbj0oMCxyLnNlcnZpY2UpKGwuU1lNQk9MX0xJU1RfUkVQT1NJVE9SWV9CQUNLRU5EX1NFUlZJQ0UpO3JldHVybiBhc3luYyhzLHIpPT57ImN1c3RvbSI9PT10LnR5cGU/KHMoRyh0LmlkLGEsbykpLGF3YWl0KDAsbS5yZXNwZWN0QWJvcnQpKGUsbi5yZW5hbWVTZXBhcmF0b3IodC5pZCxhLG8pLnRoZW4oKGU9PntlJiZzKCgwLGkudXBkYXRlUGVyc2lzdGVkU3RhdGUpKHtbdC5pZF06e3N5bWJvbHM6ZX19KSl9KSkuY2F0Y2gobS5za2lwQWJvcnRFcnJvcikuY2F0Y2goKGU9PntPKGUubWVzc2FnZSkscyhHKHQuaWQsbyxhKSl9KSkpKTpfLmxvZ1dhcm4oIlRyeWluZyB0byBtb2RpZnkgbm90IGEgY3VzdG9tIHdhdGNobGlzdCIpfX1jb25zdCBKPSgwLG0ucmVzcGVjdExhdGVzdCkoKGZ1bmN0aW9uKGUpe2NvbnN0IHQ9KDAsci5zZXJ2aWNlKShsLlNZTUJPTF9MSVNUX1JFUE9TSVRPUllfQkFDS0VORF9TRVJWSUNFKTtyZXR1cm4gYXN5bmMoYSxvKT0+e3RyeXtjb25zdCBvPSgwLFQuY3Jvc3N0YWJNb25vdG9uaWNUaW1lc3RhbXApKCksbj1hd2FpdCgwLG0ucmVzcGVjdEFib3J0KShlLHQuZ2V0QWN0aXZlKCkpO2lmKCJjb2xvcmVkIj09PW4udHlwZSl7Y29uc3QgdD0oMCx5LmdldE1hcmtlZFN5bWJvbHNMaXN0U2VydmljZUluc3RhbmNlKSgpO3QuaXNJbml0ZWQoKXx8YXdhaXQoMCxtLnJlc3BlY3RBYm9ydCkoZSxuZXcgUHJvbWlzZSgoZT0+e3Qub25Jbml0KGUpfSkpKSxhKCgwLGMudXBkYXRlQWN0aXZlTGlzdCkoe3R5cGU6ImNvbG9yIixpZDpuLmNvbG9yfSkpfWVsc2UiY3VzdG9tIj09PW4udHlwZT8oImN1c3RvbSI9PT1uLnR5cGUmJihuLnN5bWJvbHM9YXdhaXQoMCxtLnJlc3BlY3RBYm9ydCkoZSxCKG4uc3ltYm9scykpKSxhKCgwLGkucHV0KSh7aWQ6bi5pZCxuYW1lOm4ubmFtZSxkZXNjcmlwdGlvbjpuLmRlc2NyaXB0aW9uLHN5bWJvbHM6bi5zeW1ib2xzLHNoYXJlZDpuLnNoYXJlZCxjb2xsYXBzZWRTZXBhcmF0b3JzOm4uY29sbGFwc2VkU2VwYXJhdG9ycyxwZXJzaXN0ZWRTdGF0ZTpuLnBlcnNpc3RlZFN0YXRlLGFjdGlvblRpbWVzdGFtcDpvfSkpLGEoKDAsYy51cGRhdGVBY3RpdmVMaXN0KSh7dHlwZToiY3VzdG9tIixpZDpuLmlkfSkpKToiaG90Ij09PW4udHlwZSYmKGEoKDAsYy5hZGRPclVwZGF0ZVN5bWJvbExpc3QpKG4pKSxuLmV4Y2hhbmdlJiZuLmdyb3VwJiZhKCgwLGMudXBkYXRlQWN0aXZlTGlzdCkoe3R5cGU6ImhvdCIsZXhjaGFuZ2U6bi5leGNoYW5nZSxncm91cDpuLmdyb3VwLGlkOm4uaWR9KSkpfWNhdGNoKGUpeygwLG0uc2tpcEFib3J0RXJyb3IpKGUpfX19KSk7ZnVuY3Rpb24gWihlKXtjb25zdCB0PSgwLFIuZ2V0V2F0Y2hsaXN0U3ltYm9sc0xpbWl0KSgpO3JldHVybiEodCYmZT50KXx8KCgwLEMub3BlblBheXdhbGwpKHtmZWF0dXJlOiJ3YXRjaGxpc3RTeW1ib2xzIn0pLCExKX19LDQ3NzU4NyhlLHQsYSl7ZnVuY3Rpb24gbyhlKXtyZXR1cm4gZX1hLmQodCx7YXNBY3Rpb246KCk9Pm99KX0sMzY2MjYyKGUsdCxhKXthLnIodCksYS5kKHQse2NvbHVtbnNTZWxlY3RvcjooKT0+aywKY3VycmVudEhvdExpc3RTZWxlY3RvcjooKT0+QixnZXRDdXJyZW50Vmlld2FibGVMaXN0QnlXaWRnZXRJZDooKT0+eCxnZXRDdXN0b21MaXN0QnlJZDooKT0+TixnZXRDdXN0b21MaXN0czooKT0+QyxnZXRDdXN0b21MaXN0c01hcDooKT0+UixnZXRDdXN0b21MaXN0c1N0YXRlOigpPT5tLGdldEdsb2JhbEFjdGl2ZUlEOigpPT5oLGdldEdsb2JhbEFjdGl2ZVN5bWJvbExpc3Q6KCk9Pl8sZ2V0SXNSZWFkeUN1c3RvbUxpc3RzOigpPT5mLGdldE1hcmtlZExpc3RzTWFwOigpPT5NLGhpZ2hsaWdodGVkU3ltYm9sc1NlbGVjdG9yOigpPT5BLGlzQXV0aGVudGljYXRlZFNlbGVjdG9yOigpPT5wLGlzTG9hZGluZ1NlbGVjdG9yOigpPT5PLG1ha2VHZXRJc0NvbnRhaW5lZEJ5TXVsdGlTZWxlY3Rpb246KCk9PlAscG9zaXRpb25TZWxlY3RvcjooKT0+dyxzY3JvbGxUb0lkU2VsZWN0b3I6KCk9PkUsc2VsZWN0ZWRTeW1ib2xzU2VsZWN0b3I6KCk9PlQsc2hvdWxkRGlzcGxheVBvc2l0aW9uc1NlbGVjdG9yOigpPT5JLHNvcnRpbmdTZWxlY3RvcjooKT0+eSx0aWNrZXJUeXBlU2VsZWN0b3I6KCk9PmIsd2lkZ2V0T3B0aW9uc1NlbGVjdG9yOigpPT5MLHdpZGdldFNlbGVjdG9yOigpPT52fSk7dmFyIG89YSgzNjQzNTApLGk9YSgxMzg2MzgpLG49YSgyMzAyMTEpLHM9YSg3MTIxMzQpLHI9YSg1MDA1MTQpLGw9YSg0NDM4MjcpLGM9YSg5Nzk1NzkpLHU9YSg4NzEwMjEpLGQ9YSg2NDU5MzMpO2Z1bmN0aW9uIG0oZSl7cmV0dXJuIGUuY3VzdG9tTGlzdHN9Y29uc3QgcD1lPT5lLmlzQXV0aGVudGljYXRlZCxTPWU9PmUud2lkZ2V0cyxnPShlLHQpPT50LGg9ZT0+ZS5hY3RpdmVTeW1ib2xMaXN0Py5pZD8/bnVsbCx2PSgwLG8uY3JlYXRlU2VsZWN0b3IpKFtTLGddLCgoZSx0KT0+ZVt0XXx8e30pKSxUPSgwLG8uY3JlYXRlU2VsZWN0b3IpKHYsKGU9PmUuc2VsZWN0ZWRTeW1ib2xzfHxbXSkpLEU9KDAsby5jcmVhdGVTZWxlY3RvcikodiwoZT0+ZS5zY3JvbGxUb0lkKSkseT0oMCxvLmNyZWF0ZVNlbGVjdG9yKSh2LChlPT5lLnNvcnRpbmd8fG51bGwpKSxBPSgwLG8uY3JlYXRlU2VsZWN0b3IpKHYsKGU9PmUuaGlnaGxpZ2h0ZWRTeW1ib2xzfHxudWxsKSksaz0oMCxvLmNyZWF0ZVNlbGVjdG9yKSh2LChlPT5lLmNvbHVtbnMpKSxiPSgwLG8uY3JlYXRlU2VsZWN0b3IpKHYsKGU9PmUudGlja2VyVHlwZSkpLEw9KDAsby5jcmVhdGVTZWxlY3RvcikodiwoZT0+ZS5vcHRpb25zfHx7fSkpLEk9KDAsby5jcmVhdGVTZWxlY3RvcikoW0wscF0sKChlLHQpPT5lLnNob3VsZERpc3BsYXlQb3NpdGlvbnMmJnQpKSxDPSgwLG8uY3JlYXRlU2VsZWN0b3IpKG0sKGU9PigwLG4uZ2V0TGlzdElkcykoZSkubWFwKCh0PT4oMCxkLm1ha2VDdXN0b21MaXN0RnJvbVJlY29yZCkoKDAsaS5lbnN1cmVOb3ROdWxsKSgoMCxuLmdldExpc3RCeUlkKShlLHQpKSkpKSkpLGY9KDAsby5jcmVhdGVTZWxlY3RvcikoW21dLChlPT5udWxsIT09ZS50aW1lc3RhbXApKSxSPSgwLG8uY3JlYXRlU2VsZWN0b3IpKFttXSxuLmdldExpc3RzTWFwKSxOPSgwLG8uY3JlYXRlU2VsZWN0b3IpKFttLChlLHQpPT50XSwoKGUsdCk9Pntjb25zdCBhPSgwLG4uZ2V0TGlzdEJ5SWQpKGUsdCk7cmV0dXJuIG51bGw9PT1hP251bGw6KDAsZC5tYWtlQ3VzdG9tTGlzdEZyb21SZWNvcmQpKGEpfSkpLE09KDAsby5jcmVhdGVTZWxlY3RvcikoW3IuZ2V0TWFya2VkTGlzdHNTdGF0ZV0sKGU9PmU/ZS5saXN0cy5ieUNvbG9yOm51bGwpKSxfPSgwLG8uY3JlYXRlU2VsZWN0b3IpKFt1LmhvdExpc3RzU2VsZWN0b3IsbSxyLmdldE1hcmtlZExpc3RzU3RhdGUsaF0sKChlLHQsYSxvKT0+e2lmKG51bGw9PT1vKXJldHVybiBudWxsO2lmKG51bGwhPT1hJiYoMCxzLmlzTGlzdENvbG9yKShvKSl7Y29uc3QgZT0oMCxzLmdldExpc3RCeUNvbG9yKShhLG8pO3JldHVybiBudWxsPT09ZT9udWxsOigwLGwubWFrZU1hcmtlZExpc3RGcm9tUmVjb3JkKShlKX1pZigoMCxjLmlzSG90TGlzdElkKShvKSl7Y29uc3QgdD1lPy5bb107cmV0dXJuIHQ/e2lkOnQuaWQsbmFtZTp0Lm5hbWUsdHlwZTp0LnR5cGUsZ3JvdXA6dC5ncm91cCxleGNoYW5nZTp0LmV4Y2hhbmdlLHN5bWJvbHM6dC5zeW1ib2xzfTpudWxsfWNvbnN0IGk9KDAsbi5nZXRMaXN0QnlJZCkodCxvKTtyZXR1cm4gbnVsbCE9PWk/KDAsZC5tYWtlQ3VzdG9tTGlzdEZyb21SZWNvcmQpKGkpOm51bGx9KSkseD0oMCxvLmNyZWF0ZVNlbGVjdG9yKShbdS5ob3RMaXN0c1NlbGVjdG9yLG0sci5nZXRNYXJrZWRMaXN0c1N0YXRlLFMsZ10sKChlLHQsYSxvLGkpPT57Y29uc3Qgcj1vW2ldO2lmKHZvaWQgMD09PXIpcmV0dXJuIG51bGw7Y29uc3QgdT1yLmxpc3RJZDtpZihudWxsPT09dSlyZXR1cm4gbnVsbDtpZihudWxsIT09YSYmKDAscy5pc0xpc3RDb2xvcikodSkpe2NvbnN0IGU9KDAscy5nZXRMaXN0QnlDb2xvcikoYSx1KTtyZXR1cm4gbnVsbD09PWU/bnVsbDooMCxsLm1ha2VNYXJrZWRMaXN0RnJvbVJlY29yZCkoZSl9aWYoKDAsYy5pc0hvdExpc3RJZCkodSkpe2NvbnN0IHQ9ZT8uW3VdO3JldHVybiB0P3tpZDp0LmlkLG5hbWU6dC5uYW1lLHR5cGU6dC50eXBlLGdyb3VwOnQuZ3JvdXAsZXhjaGFuZ2U6dC5leGNoYW5nZSxzeW1ib2xzOnQuc3ltYm9sc306bnVsbH1jb25zdCBtPSgwLG4uZ2V0TGlzdEJ5SWQpKHQsdSk7cmV0dXJuIG51bGwhPT1tPygwLGQubWFrZUN1c3RvbUxpc3RGcm9tUmVjb3JkKShtKTpudWxsfSkpO2Z1bmN0aW9uIEIoZSx0KXtjb25zdCBhPXgoZSx0KTtyZXR1cm4iaG90IiE9PWE/LnR5cGU/bnVsbDphfWNvbnN0IE89KDAsby5jcmVhdGVTZWxlY3RvcikoW3YseF0sKChlLHQpPT5udWxsPT09dHx8ZS5pc0xvYWRpbmd8fCExKSksdz0oMCxvLmNyZWF0ZVNlbGVjdG9yKShbZT0+ZS5wb3NpdGlvbnMsKGUsdCk9PnRdLCgoZSx0KT0+ZVt0XSkpO2Z1bmN0aW9uIFAoKXtjb25zdCBlPSgwLG8uY3JlYXRlU2VsZWN0b3IpKFsoZSx0KT0+dC53aWRnZXRJZCxlPT5lLndpZGdldHNdLCgoZSx0KT0+dFtlXSkpLHQ9KDAsby5jcmVhdGVTZWxlY3RvcikoZSwoZT0+ZS5zZWxlY3RlZFN5bWJvbHN8fFtdKSksYT0oMCwKby5jcmVhdGVTZWxlY3RvcikodCwoZT0+bmV3IFNldChlKSkpO3JldHVybigwLG8uY3JlYXRlU2VsZWN0b3IpKFthLChlLHQpPT50LnN5bWJvbF0sKChlLHQpPT5lLnNpemU+MSYmZS5oYXModCkpKX19LDQyOTk5MihlLHQsYSl7YS5yKHQpLGEuZCh0LHtnZXRMaXN0U3ltYm9sc0J5Q29sb3I6KCk9PmMsZ2V0TWFya2VkTGlzdEJ5Q29sb3I6KCk9PmwsZ2V0TWFya2VkTGlzdHM6KCk9PnJ9KTt2YXIgbz1hKDM2NDM1MCksaT1hKDcxMjEzNCksbj1hKDUwMDUxNCkscz1hKDQ0MzgyNyk7Y29uc3Qgcj0oMCxvLmNyZWF0ZVNlbGVjdG9yKShbbi5nZXRNYXJrZWRMaXN0c1N0YXRlXSwoZT0+e2NvbnN0IHQ9W107aWYobnVsbCE9PWUpZm9yKGNvbnN0IGEgb2YgaS5MSVNUX0NPTE9SUyl7Y29uc3Qgbz0oMCxpLmdldExpc3RCeUNvbG9yKShlLGEpO251bGwhPT1vJiZ0LnB1c2goKDAscy5tYWtlTWFya2VkTGlzdEZyb21SZWNvcmQpKG8pKX1yZXR1cm4gdH0pKSxsPSgwLG8uY3JlYXRlU2VsZWN0b3IpKFtuLmdldE1hcmtlZExpc3RzU3RhdGUsKGUsdCk9PnRdLCgoZSx0KT0+e2lmKG51bGw9PT1lKXJldHVybiBudWxsO2NvbnN0IGE9KDAsaS5nZXRMaXN0QnlDb2xvcikoZSx0KTtyZXR1cm4gbnVsbD09PWE/bnVsbDooMCxzLm1ha2VNYXJrZWRMaXN0RnJvbVJlY29yZCkoYSl9KSksYz0oMCxvLmNyZWF0ZVNlbGVjdG9yKShbbF0sKGU9PmU/LnN5bWJvbHM/P251bGwpKX0sMjMwMjExKGUsdCxhKXthLmQodCx7Y2hhbmdlRGVzY3JpcHRpb246KCk9PkUsY3JlYXRlOigpPT5oLGNyZWF0ZUNyb3NzVGFiU3luY01pZGRsZXdhcmU6KCk9PmIsZXhhY3Q6KCk9PnAsZXhjbHVkZTooKT0+UyxnZXRMaXN0QnlJZDooKT0+SSxnZXRMaXN0SWRzOigpPT5DLGdldExpc3RzTWFwOigpPT5MLGluc2VydDooKT0+ZCxwdXQ6KCk9PnYscmVkdWNlcjooKT0+ayxyZW1vdmU6KCk9PmcscmVuYW1lOigpPT5ULHJlcGxhY2U6KCk9Pm0sc2V0dXA6KCk9PnUsc2hhcmU6KCk9PnksdXBkYXRlUGVyc2lzdGVkU3RhdGU6KCk9PkF9KTt2YXIgbz1hKDEzMDY5OSksaT1hKDQzMzIwKSxuPWEoNjEyNDQ2KSxzPWEoOTczNTI0KTtjb25zdCByPXtsaXN0czp7aWRzOltdLGJ5SWQ6e319LHRpbWVzdGFtcDpudWxsfTtmdW5jdGlvbiBsKGUsdCl7ZS5saXN0cy5pZHMucHVzaCh0LmlkKSxlLmxpc3RzLmJ5SWRbdC5pZF09e2lkOnQuaWQsbmFtZTp0Lm5hbWUsZGVzY3JpcHRpb246dC5kZXNjcmlwdGlvbixzeW1ib2xzOlsuLi50LnN5bWJvbHNdLHNoYXJlZDp0LnNoYXJlZCx0aW1lc3RhbXA6dC50aW1lc3RhbXAsY29sbGFwc2VkU2VwYXJhdG9yczp0LmNvbGxhcHNlZFNlcGFyYXRvcnMscGVyc2lzdGVkU3RhdGU6dC5wZXJzaXN0ZWRTdGF0ZSxsYXN0Q2hhbmdlVGltZXN0YW1wOnQubGFzdENoYW5nZVRpbWVzdGFtcH19Y29uc3QgYz0oMCxvLmNyZWF0ZVNsaWNlKSh7bmFtZToiY3VzdG9tLWxpc3RzIixpbml0aWFsU3RhdGU6cixyZWR1Y2Vyczp7c2V0dXA6KGUsdCk9Pntjb25zdHtsaXN0czphLHRpbWVzdGFtcDpvfT10LnBheWxvYWQsaT1uZXcgU2V0KGEubWFwKChlPT5lLmlkKSkpLG49bmV3IFNldChlLmxpc3RzLmlkcy5maWx0ZXIoKGU9PiFpLmhhcyhlKSkpKTtmb3IoY29uc3QgdCBvZiBuKWRlbGV0ZSBlLmxpc3RzLmJ5SWRbdF07ZS5saXN0cy5pZHM9Wy4uLmldO2Zvcihjb25zdCB0IG9mIGEpe2NvbnN0IGE9SShlLHQuaWQpO2lmKGEpe2lmKGEubGFzdENoYW5nZVRpbWVzdGFtcD49dC5sYXN0Q2hhbmdlVGltZXN0YW1wKWNvbnRpbnVlO2EubmFtZT10Lm5hbWUsYS5kZXNjcmlwdGlvbj10LmRlc2NyaXB0aW9uLGEuc3ltYm9scz1bLi4udC5zeW1ib2xzXSxhLnNoYXJlZD10LnNoYXJlZCxhLnRpbWVzdGFtcD10LnRpbWVzdGFtcCxhLmNvbGxhcHNlZFNlcGFyYXRvcnM9dC5jb2xsYXBzZWRTZXBhcmF0b3JzLGEucGVyc2lzdGVkU3RhdGU9dC5wZXJzaXN0ZWRTdGF0ZSx2b2lkIDAhPT10Lmxhc3RDaGFuZ2VUaW1lc3RhbXAmJihhLmxhc3RDaGFuZ2VUaW1lc3RhbXA9dC5sYXN0Q2hhbmdlVGltZXN0YW1wKX1lbHNlIGUubGlzdHMuYnlJZFt0LmlkXT17aWQ6dC5pZCxuYW1lOnQubmFtZSxkZXNjcmlwdGlvbjp0LmRlc2NyaXB0aW9uLHN5bWJvbHM6Wy4uLnQuc3ltYm9sc10sc2hhcmVkOnQuc2hhcmVkLHRpbWVzdGFtcDp0LnRpbWVzdGFtcCxjb2xsYXBzZWRTZXBhcmF0b3JzOnQuY29sbGFwc2VkU2VwYXJhdG9ycyxwZXJzaXN0ZWRTdGF0ZTp0LnBlcnNpc3RlZFN0YXRlLGxhc3RDaGFuZ2VUaW1lc3RhbXA6dC5sYXN0Q2hhbmdlVGltZXN0YW1wfX1lLnRpbWVzdGFtcD1vfSxpbnNlcnQ6KGUsdCk9Pntjb25zdHtpZDphLHN5bWJvbHM6byxiZWZvcmU6aSxhY3Rpb25UaW1lc3RhbXA6cn09dC5wYXlsb2FkLHtsaXN0czpsfT1lLGM9bC5ieUlkW2FdO2lmKHZvaWQgMD09PWMpcmV0dXJuO2lmKGMubGFzdENoYW5nZVRpbWVzdGFtcD49cilyZXR1cm47Y29uc3QgdT1uZXcgU2V0KG8pO2xldCBkO2lmKHZvaWQgMCE9PWkmJnUuaGFzKGkpKXtkPXMuTElTVF9TVEFSVDtmb3IobGV0IGU9Yy5zeW1ib2xzLmluZGV4T2YoaSk7ZT49MDstLWUpaWYoIXUuaGFzKGMuc3ltYm9sc1tlXSkpe2Q9Yy5zeW1ib2xzW2VdO2JyZWFrfX1jb25zdCBtPWMuc3ltYm9scy5maWx0ZXIoKGU9PiF1LmhhcyhlKSkpLHA9KDAscy5nZXRUYXJnZXRJbmRleCkobSxpLGQpO3ZvaWQgMD09PXA/bS5wdXNoKC4uLnUpOm0uc3BsaWNlKHAsMCwuLi51KSwoMCxuLmVxdWFsQXJyYXlzKShtLGMuc3ltYm9scyl8fChjLnN5bWJvbHM9bSx2b2lkIDAhPT1yJiYoYy5sYXN0Q2hhbmdlVGltZXN0YW1wPXIpKX0scmVwbGFjZTooZSx0KT0+e2NvbnN0e2lkOmEsY3VycmVudDpvLG5leHQ6aSxhY3Rpb25UaW1lc3RhbXA6bn09dC5wYXlsb2FkLHtsaXN0czpzfT1lLHI9cy5ieUlkW2FdO2lmKHZvaWQgMD09PXIpcmV0dXJuO2lmKHIubGFzdENoYW5nZVRpbWVzdGFtcD49bilyZXR1cm47aWYobz09PWkpcmV0dXJuO2xldCBsPSExLGM9ITE7Y29uc3QgdT1bXTtmb3IoY29uc3QgZSBvZiByLnN5bWJvbHMpe2lmKGU9PT1pKXtjPSEwO2JyZWFrfWU9PT1vPyh1LnB1c2goaSksbD0hMCk6dS5wdXNoKGUpfQpsJiYhYyYmKHIuc3ltYm9scz11LHZvaWQgMCE9PW4mJihyLmxhc3RDaGFuZ2VUaW1lc3RhbXA9bikpfSxleGFjdDooZSx0KT0+e2NvbnN0e2lkOmEsc3ltYm9sczpvLGFjdGlvblRpbWVzdGFtcDppfT10LnBheWxvYWQse2xpc3RzOnN9PWUscj1zLmJ5SWRbYV07aWYodm9pZCAwPT09cilyZXR1cm47aWYoci5sYXN0Q2hhbmdlVGltZXN0YW1wPj1pKXJldHVybjtjb25zdCBsPVsuLi5uZXcgU2V0KG8pXTsoMCxuLmVxdWFsQXJyYXlzKShsLHIuc3ltYm9scyl8fChyLnN5bWJvbHM9bCx2b2lkIDAhPT1pJiYoci5sYXN0Q2hhbmdlVGltZXN0YW1wPWkpKX0sZXhjbHVkZTooZSx0KT0+e2NvbnN0e2lkOmEsc3ltYm9sczpvLGFjdGlvblRpbWVzdGFtcDppfT10LnBheWxvYWQse2xpc3RzOnN9PWUscj1zLmJ5SWRbYV07aWYodm9pZCAwPT09cilyZXR1cm47aWYoci5sYXN0Q2hhbmdlVGltZXN0YW1wPj1pKXJldHVybjtjb25zdCBsPW5ldyBTZXQobyksYz1yLnN5bWJvbHMuZmlsdGVyKChlPT4hbC5oYXMoZSkpKTsoMCxuLmVxdWFsQXJyYXlzKShjLHIuc3ltYm9scyl8fChyLnN5bWJvbHM9Yyx2b2lkIDAhPT1pJiYoci5sYXN0Q2hhbmdlVGltZXN0YW1wPWkpKX0scmVtb3ZlOihlLHQpPT57Y29uc3R7aWQ6YX09dC5wYXlsb2FkLHtsaXN0czpvfT1lO2lmKHZvaWQgMD09PW8uYnlJZFthXSlyZXR1cm47Y29uc3QgaT1vLmlkcy5maWx0ZXIoKGU9PmUhPT1hKSk7by5pZHM9aSxkZWxldGUgby5ieUlkW2FdfSxjcmVhdGU6KGUsdCk9Pntjb25zdHtpZDphLG5hbWU6byxzeW1ib2xzOmkscGVyc2lzdGVkU3RhdGU6bixhY3Rpb25UaW1lc3RhbXA6c309dC5wYXlsb2FkLHtsaXN0czpyfT1lO3ZvaWQgMD09PXIuYnlJZFthXSYmbChlLHtpZDphLG5hbWU6byxzeW1ib2xzOmksc2hhcmVkOiExLGRlc2NyaXB0aW9uOm51bGwsdGltZXN0YW1wOm51bGwscGVyc2lzdGVkU3RhdGU6bixsYXN0Q2hhbmdlVGltZXN0YW1wOnN9KX0scHV0OihlLHQpPT57Y29uc3R7aWQ6YSxuYW1lOm8sZGVzY3JpcHRpb246aSxzeW1ib2xzOm4sc2hhcmVkOnMsdGltZXN0YW1wOnIsY29sbGFwc2VkU2VwYXJhdG9yczpjLHBlcnNpc3RlZFN0YXRlOnUsYWN0aW9uVGltZXN0YW1wOmR9PXQucGF5bG9hZCx7bGlzdHM6bX09ZSxwPW0uYnlJZFthXTtpZih2b2lkIDA9PT1wKWwoZSx7aWQ6YSxuYW1lOm8sZGVzY3JpcHRpb246aSxzeW1ib2xzOm4sc2hhcmVkOnMsdGltZXN0YW1wOnI/P251bGwscGVyc2lzdGVkU3RhdGU6dSxsYXN0Q2hhbmdlVGltZXN0YW1wOmR9KTtlbHNle2lmKHAubGFzdENoYW5nZVRpbWVzdGFtcD49ZClyZXR1cm47bS5ieUlkW2FdPXtpZDphLG5hbWU6byxkZXNjcmlwdGlvbjppLHNoYXJlZDpzLHRpbWVzdGFtcDpyPz9udWxsLHN5bWJvbHM6Wy4uLm5dLGNvbGxhcHNlZFNlcGFyYXRvcnM6YyxwZXJzaXN0ZWRTdGF0ZTp1LGxhc3RDaGFuZ2VUaW1lc3RhbXA6ZD8/cC5sYXN0Q2hhbmdlVGltZXN0YW1wfX19LHJlbmFtZTooZSx0KT0+e2NvbnN0e2lkOmEsbmFtZTpvLGFjdGlvblRpbWVzdGFtcDppfT10LnBheWxvYWQse2xpc3RzOm59PWUscz1uLmJ5SWRbYV07dm9pZCAwIT09cyYmKHMubGFzdENoYW5nZVRpbWVzdGFtcD49aXx8cy5uYW1lIT09byYmKHMubmFtZT1vLHZvaWQgMCE9PWkmJihzLmxhc3RDaGFuZ2VUaW1lc3RhbXA9aSkpKX0sY2hhbmdlRGVzY3JpcHRpb246KGUsdCk9Pntjb25zdHtpZDphLGRlc2NyaXB0aW9uOm8sYWN0aW9uVGltZXN0YW1wOml9PXQucGF5bG9hZCx7bGlzdHM6bn09ZSxzPW4uYnlJZFthXTt2b2lkIDAhPT1zJiYocy5sYXN0Q2hhbmdlVGltZXN0YW1wPj1pfHxzLmRlc2NyaXB0aW9uIT09byYmKHMuZGVzY3JpcHRpb249byx2b2lkIDAhPT1pJiYocy5sYXN0Q2hhbmdlVGltZXN0YW1wPWkpKSl9LHNoYXJlOihlLHQpPT57Y29uc3R7aWQ6YSxzaGFyZWQ6byxhY3Rpb25UaW1lc3RhbXA6aX09dC5wYXlsb2FkLHtsaXN0czpufT1lLHM9bi5ieUlkW2FdO3ZvaWQgMCE9PXMmJihzLmxhc3RDaGFuZ2VUaW1lc3RhbXA+PWl8fHMuc2hhcmVkIT09byYmKHMuc2hhcmVkPW8sdm9pZCAwIT09aSYmKHMubGFzdENoYW5nZVRpbWVzdGFtcD1pKSkpfSx1cGRhdGVQZXJzaXN0ZWRTdGF0ZTooZSx0KT0+e2NvbnN0e2xpc3RzOmF9PWU7YS5pZHMuZm9yRWFjaCgoZT0+e2NvbnN0IG89YS5ieUlkW2VdLGk9dC5wYXlsb2FkW2VdO3ZvaWQgMCE9PW8mJm8ucGVyc2lzdGVkU3RhdGUmJmkmJihvLnBlcnNpc3RlZFN0YXRlPXsuLi5vLnBlcnNpc3RlZFN0YXRlLC4uLml9KX0pKX19fSkse3NldHVwOnUsaW5zZXJ0OmQscmVwbGFjZTptLGV4YWN0OnAsZXhjbHVkZTpTLHJlbW92ZTpnLGNyZWF0ZTpoLHB1dDp2LHJlbmFtZTpULGNoYW5nZURlc2NyaXB0aW9uOkUsc2hhcmU6eSx1cGRhdGVQZXJzaXN0ZWRTdGF0ZTpBfT1jLmFjdGlvbnMse3JlZHVjZXI6a309YztmdW5jdGlvbiBiKGUsdCxhPWMpe3JldHVybigwLGkuY3JlYXRlQ3Jvc3NUYWJTeW5jTWlkZGxld2FyZSkoe2lkOmUsY2hhbm5lbDp0LGV2ZW50OiJjdXN0b20tbGlzdC1jcm9zcy10YWItc3luYyIsZmlsdGVyOmU9PmZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQuYWN0aW9ucy5zZXR1cC5tYXRjaChlKXx8dC5hY3Rpb25zLmluc2VydC5tYXRjaChlKXx8dC5hY3Rpb25zLmV4Y2x1ZGUubWF0Y2goZSl8fHQuYWN0aW9ucy5leGFjdC5tYXRjaChlKXx8dC5hY3Rpb25zLnJlcGxhY2UubWF0Y2goZSl8fHQuYWN0aW9ucy5yZW1vdmUubWF0Y2goZSl8fHQuYWN0aW9ucy5jcmVhdGUubWF0Y2goZSl8fHQuYWN0aW9ucy5wdXQubWF0Y2goZSl8fHQuYWN0aW9ucy5yZW5hbWUubWF0Y2goZSl8fHQuYWN0aW9ucy5jaGFuZ2VEZXNjcmlwdGlvbi5tYXRjaChlKXx8dC5hY3Rpb25zLnNoYXJlLm1hdGNoKGUpfHx0LmFjdGlvbnMudXBkYXRlUGVyc2lzdGVkU3RhdGUubWF0Y2goZSl9KGUsYSl9KX1mdW5jdGlvbiBMKGUpe3JldHVybiBlLmxpc3RzLmJ5SWR9ZnVuY3Rpb24gSShlLHQpe3JldHVybiBMKGUpW3RdPz9udWxsfWZ1bmN0aW9uIEMoZSl7cmV0dXJuIGUubGlzdHMuaWRzfX0sMzYzNTI2KGUsdCxhKXtmdW5jdGlvbiBvKGUpe3JldHVybiB0PT5lKyJfXyIrdH1hLmQodCx7CmNyZWF0ZUFjdGlvblR5cGVGYWN0b3J5OigpPT5vfSl9LDI1NTUxNihlKXsKZS5leHBvcnRzPUpTT04ucGFyc2UoJ3sidXMiOnsidGl0bGUiOiJVU0EiLCJzY3JlZW5lck5hbWUiOiJhbWVyaWNhIiwic2NyZWVuZXJUaW1lem9uZSI6IkFtZXJpY2EvTmV3X1lvcmsiLCJkZWZhdWx0RXhjaGFuZ2UiOiJVUyIsImV4Y2hhbmdlc0ZvckhvdGxpc3QiOlsiQU1FWCIsIk5BU0RBUSIsIk5ZU0UiLCJPVEMiLCJVUyJdLCJleGNoYW5nZXNTdG9ja3MiOlsiTkFTREFRIiwiTllTRSIsIk5ZU0UgQVJDQSIsIk9UQyJdLCJncm91cCI6Ik5vcnRoIEFtZXJpY2EiLCJtYXJrZXRSb3V0ZSI6InVzYS8ifSwiYWUiOnsidGl0bGUiOiJVbml0ZWQgQXJhYiBFbWlyYXRlcyIsInNjcmVlbmVyTmFtZSI6InVhZSIsInNjcmVlbmVyVGltZXpvbmUiOiJBc2lhL0R1YmFpIiwiZGVmYXVsdEV4Y2hhbmdlIjoiQURYIiwiZXhjaGFuZ2VzRm9ySG90bGlzdCI6WyJERk0iLCJBRFgiXSwiZXhjaGFuZ2VzU3RvY2tzIjpbIkRGTSIsIkFEWCIsIk5BU0RBUURVQkFJIl0sImdyb3VwIjoiTWlkZGxlIEVhc3QgLyBBZnJpY2EiLCJtYXJrZXRSb3V0ZSI6InVhZS8ifSwiYXIiOnsidGl0bGUiOiJBcmdlbnRpbmEiLCJzY3JlZW5lck5hbWUiOiJhcmdlbnRpbmEiLCJzY3JlZW5lclRpbWV6b25lIjoiQW1lcmljYS9BcmdlbnRpbmEvQnVlbm9zX0FpcmVzIiwiZXhjaGFuZ2VzRm9ySG90bGlzdCI6WyJCQ0JBIl0sImV4Y2hhbmdlc1N0b2NrcyI6WyJCWU1BIiwiQkNCQSJdLCJkZWZhdWx0RXhjaGFuZ2UiOiJCQ0JBIiwiZ3JvdXAiOiJNZXhpY28gYW5kIFNvdXRoIEFtZXJpY2EiLCJtYXJrZXRSb3V0ZSI6ImFyZ2VudGluYS8ifSwiYXQiOnsidGl0bGUiOiJBdXN0cmlhIiwic2NyZWVuZXJOYW1lIjoiYXVzdHJpYSIsInNjcmVlbmVyVGltZXpvbmUiOiJFdXJvcGUvVmllbm5hIiwiZXhjaGFuZ2VzRm9ySG90bGlzdCI6WyJWSUUiXSwiZXhjaGFuZ2VzU3RvY2tzIjpbIlZJRSJdLCJkZWZhdWx0RXhjaGFuZ2UiOiJWSUUiLCJncm91cCI6IkV1cm9wZSIsIm1hcmtldFJvdXRlIjoiYXVzdHJpYS8ifSwiYXUiOnsidGl0bGUiOiJBdXN0cmFsaWEiLCJzY3JlZW5lck5hbWUiOiJhdXN0cmFsaWEiLCJzY3JlZW5lclRpbWV6b25lIjoiQXVzdHJhbGlhL1N5ZG5leSIsImV4Y2hhbmdlc1N0b2NrcyI6WyJBU1giXSwiZ3JvdXAiOiJBc2lhIC8gUGFjaWZpYyIsIm1hcmtldFJvdXRlIjoiYXVzdHJhbGlhLyJ9LCJiZCI6eyJ0aXRsZSI6IkJhbmdsYWRlc2giLCJzY3JlZW5lck5hbWUiOiJiYW5nbGFkZXNoIiwic2NyZWVuZXJUaW1lem9uZSI6IkFzaWEvRGhha2EiLCJleGNoYW5nZXNTdG9ja3MiOlsiRFNFQkQiXSwiZXhjaGFuZ2VzRm9ySG90bGlzdCI6WyJEU0VCRCJdLCJncm91cCI6IkFzaWEgLyBQYWNpZmljIiwibWFya2V0Um91dGUiOiJiYW5nbGFkZXNoLyJ9LCJiZSI6eyJ0aXRsZSI6IkJlbGdpdW0iLCJzY3JlZW5lck5hbWUiOiJiZWxnaXVtIiwic2NyZWVuZXJUaW1lem9uZSI6IkV1cm9wZS9CcnVzc2VscyIsImV4Y2hhbmdlc0ZvckhvdGxpc3QiOlsiRVVST05FWFRfQlJVIl0sImV4Y2hhbmdlc1N0b2NrcyI6WyJFVVJPTkVYVEJSVSJdLCJkZWZhdWx0RXhjaGFuZ2UiOiJFVVJPTkVYVF9CUlUiLCJncm91cCI6IkV1cm9wZSIsIm1hcmtldFJvdXRlIjoiYmVsZ2l1bS8ifSwiYmgiOnsidGl0bGUiOiJCYWhyYWluIiwic2NyZWVuZXJOYW1lIjoiYmFocmFpbiIsInNjcmVlbmVyVGltZXpvbmUiOiJBc2lhL0JhaHJhaW4iLCJleGNoYW5nZXNTdG9ja3MiOlsiQkFIUkFJTiJdLCJncm91cCI6Ik1pZGRsZSBFYXN0IC8gQWZyaWNhIiwibWFya2V0Um91dGUiOiJiYWhyYWluLyJ9LCJiciI6eyJ0aXRsZSI6IkJyYXppbCIsInNjcmVlbmVyTmFtZSI6ImJyYXppbCIsInNjcmVlbmVyVGltZXpvbmUiOiJBbWVyaWNhL1Nhb19QYXVsbyIsImV4Y2hhbmdlc1N0b2NrcyI6WyJCTUZCT1ZFU1BBIl0sImdyb3VwIjoiTWV4aWNvIGFuZCBTb3V0aCBBbWVyaWNhIiwibWFya2V0Um91dGUiOiJicmF6aWwvIn0sImJnIjp7InRpdGxlIjoiQnVsZ2FyaWEiLCJzY3JlZW5lck5hbWUiOiJidWxnYXJpYSIsInNjcmVlbmVyVGltZXpvbmUiOiJFdXJvcGUvU29maWEiLCJleGNoYW5nZXNTdG9ja3MiOlsiQlNFU09GIl0sImdyb3VwIjoiRXVyb3BlIiwibWFya2V0Um91dGUiOiJidWxnYXJpYS8ifSwiY2EiOnsidGl0bGUiOiJDYW5hZGEiLCJzY3JlZW5lck5hbWUiOiJjYW5hZGEiLCJzY3JlZW5lclRpbWV6b25lIjoiQW1lcmljYS9Ub3JvbnRvIiwiZXhjaGFuZ2VzU3RvY2tzIjpbIlRTWCIsIlRTWFYiLCJDU0UiLCJORU8iXSwiZ3JvdXAiOiJOb3J0aCBBbWVyaWNhIiwibWFya2V0Um91dGUiOiJjYW5hZGEvIn0sImNoIjp7InRpdGxlIjoiU3dpdHplcmxhbmQiLCJzY3JlZW5lck5hbWUiOiJzd2l0emVybGFuZCIsInNjcmVlbmVyVGltZXpvbmUiOiJFdXJvcGUvWnVyaWNoIiwiZXhjaGFuZ2VzU3RvY2tzIjpbIlNJWCIsIkJYIl0sImdyb3VwIjoiRXVyb3BlIiwibWFya2V0Um91dGUiOiJzd2l0emVybGFuZC8ifSwiY2wiOnsidGl0bGUiOiJDaGlsZSIsInNjcmVlbmVyTmFtZSI6ImNoaWxlIiwic2NyZWVuZXJUaW1lem9uZSI6IkFtZXJpY2EvU2FudGlhZ28iLCJleGNoYW5nZXNTdG9ja3MiOlsiQkNTIl0sImdyb3VwIjoiTWV4aWNvIGFuZCBTb3V0aCBBbWVyaWNhIiwibWFya2V0Um91dGUiOiJjaGlsZS8ifSwiY24iOnsidGl0bGUiOiJNYWlubGFuZCBDaGluYSIsInR2TG9jYWxlIjoiemhfQ04iLCJzY3JlZW5lck5hbWUiOiJjaGluYSIsInNjcmVlbmVyVGltZXpvbmUiOiJBc2lhL0hvbmdfS29uZyIsImV4Y2hhbmdlc0ZvckhvdGxpc3QiOlsiU1NFIiwiU1pTRSJdLCJleGNoYW5nZXNTdG9ja3MiOlsiU1NFIiwiU1pTRSIsIlNIRkUiLCJaQ0UiLCJDRkZFWCJdLCJncm91cCI6IkFzaWEgLyBQYWNpZmljIiwibWFya2V0Um91dGUiOiJjaGluYS8ifSwiY28iOnsidGl0bGUiOiJDb2xvbWJpYSIsInNjcmVlbmVyTmFtZSI6ImNvbG9tYmlhIiwic2NyZWVuZXJUaW1lem9uZSI6IkFtZXJpY2EvQm9nb3RhIiwiZXhjaGFuZ2VzU3RvY2tzIjpbIkJWQyJdLCJncm91cCI6Ik1leGljbyBhbmQgU291dGggQW1lcmljYSIsIm1hcmtldFJvdXRlIjoiY29sb21iaWEvIn0sImhyIjp7InRpdGxlIjoiQ3JvYXRpYSIsInNjcmVlbmVyTmFtZSI6ImNyb2F0aWEiLCJzY3JlZW5lclRpbWV6b25lIjoiRXVyb3BlL1phZ3JlYiIsImV4Y2hhbmdlc1N0b2NrcyI6WyJaU0UiXSwiZXhjaGFuZ2VzRm9ySG90bGlzdCI6WyJaU0UiXSwiZGVmYXVsdEV4Y2hhbmdlIjoiWlNFIiwiZ3JvdXAiOiJFdXJvcGUiLCJtYXJrZXRSb3V0ZSI6ImNyb2F0aWEvIn0sImN5Ijp7InRpdGxlIjoiQ3lwcnVzIiwic2NyZWVuZXJOYW1lIjoiY3lwcnVzIiwic2NyZWVuZXJUaW1lem9uZSI6IkV1cm9wZS9DeXBydXMiLCJleGNoYW5nZXNTdG9ja3MiOlsiQ1NFQ1kiXSwiZXhjaGFuZ2VzRm9ySG90bGlzdCI6WyJDU0VDWSJdLCJncm91cCI6IkV1cm9wZSIsIm1hcmtldFJvdXRlIjoiY3lwcnVzLyJ9LCJjeiI6eyJ0aXRsZSI6IkN6ZWNoIFJlcHVibGljIiwic2NyZWVuZXJOYW1lIjoiY3plY2giLCJzY3JlZW5lclRpbWV6b25lIjoiRXVyb3BlL0N6ZWNoIiwiZXhjaGFuZ2VzU3RvY2tzIjpbIlBTRUNaIl0sImV4Y2hhbmdlc0ZvckhvdGxpc3QiOlsiUFNFQ1oiXSwiZ3JvdXAiOiJFdXJvcGUiLCJtYXJrZXRSb3V0ZSI6ImN6ZWNoLyJ9LCJkZSI6eyJ0aXRsZSI6Ikdlcm1hbnkiLCJ0dkxvY2FsZSI6ImRlX0RFIiwic2NyZWVuZXJOYW1lIjoiZ2VybWFueSIsInNjcmVlbmVyVGltZXpvbmUiOiJFdXJvcGUvQmVybGluIiwiZGVmYXVsdEV4Y2hhbmdlIjoiWEVUUiIsImV4Y2hhbmdlc1N0b2NrcyI6WyJGV0IiLCJTV0IiLCJYRVRSIiwiRFVTIiwiSEFNIiwiSEFOIiwiTVVOIiwiVFJBREVHQVRFIiwiTFMiLCJMU1giLCJHRVRURVgiXSwiZXhjaGFuZ2VzRm9ySG90bGlzdCI6WyJGV0IiLCJTV0IiLCJYRVRSIiwiRFVTIiwiSEFNIiwiSEFOIiwiTVVOIiwiVFJBREVHQVRFIiwiTFMiLCJMU1giXSwiZ3JvdXAiOiJFdXJvcGUiLCJtYXJrZXRSb3V0ZSI6Imdlcm1hbnkvIn0sImRrIjp7InRpdGxlIjoiRGVubWFyayIsInNjcmVlbmVyTmFtZSI6ImRlbm1hcmsiLCJzY3JlZW5lclRpbWV6b25lIjoiRXVyb3BlL0NvcGVuaGFnZW4iLCJleGNoYW5nZXNTdG9ja3MiOlsiT01YQ09QIl0sImdyb3VwIjoiRXVyb3BlIiwibWFya2V0Um91dGUiOiJkZW5tYXJrLyJ9LCJlZSI6eyJ0aXRsZSI6IkVzdG9uaWEiLCJzY3JlZW5lck5hbWUiOiJlc3RvbmlhIiwic2NyZWVuZXJUaW1lem9uZSI6IkV1cm9wZS9UYWxsaW5uIiwiZXhjaGFuZ2VzU3RvY2tzIjpbIk9NWFRTRSJdLCJncm91cCI6IkV1cm9wZSIsIm1hcmtldFJvdXRlIjoiZXN0b25pYS8ifSwiZWciOnsidGl0bGUiOiJFZ3lwdCIsInNjcmVlbmVyTmFtZSI6ImVneXB0Iiwic2NyZWVuZXJUaW1lem9uZSI6IkFmcmljYS9DYWlybyIsImV4Y2hhbmdlc1N0b2NrcyI6WyJFR1giXSwiZ3JvdXAiOiJNaWRkbGUgRWFzdCAvIEFmcmljYSIsIm1hcmtldFJvdXRlIjoiZWd5cHQvIn0sImVzIjp7InRpdGxlIjoiU3BhaW4iLCJzY3JlZW5lck5hbWUiOiJzcGFpbiIsInNjcmVlbmVyVGltZXpvbmUiOiJFdXJvcGUvTWFkcmlkIiwiZXhjaGFuZ2VzU3RvY2tzIjpbIkJNRSJdLCJncm91cCI6IkV1cm9wZSIsIm1hcmtldFJvdXRlIjoic3BhaW4vIn0sImV1Ijp7InRpdGxlIjoiRXVyb3BlYW4gVW5pb24iLCJzY3JlZW5lck5hbWUiOiJldXJvbmV4dCIsInNjcmVlbmVyVGltZXpvbmUiOiJFdXJvcGUvUGFyaXMiLCJleGNoYW5nZXNGb3JIb3RsaXN0IjpbXSwiZXhjaGFuZ2VzU3RvY2tzIjpbIkVVUk9ORVhUIiwiRVVST05FWFRDT01NIl0sImdyb3VwIjoiRXVyb3BlIn0sImZpIjp7InRpdGxlIjoiRmlubGFuZCIsInNjcmVlbmVyTmFtZSI6ImZpbmxhbmQiLCJzY3JlZW5lclRpbWV6b25lIjoiRXVyb3BlL0hlbHNpbmtpIiwiZXhjaGFuZ2VzU3RvY2tzIjpbIk9NWEhFWCJdLCJncm91cCI6IkV1cm9wZSIsIm1hcmtldFJvdXRlIjoiZmlubGFuZC8ifSwiZnIiOnsidGl0bGUiOiJGcmFuY2UiLCJzY3JlZW5lck5hbWUiOiJmcmFuY2UiLCJzY3JlZW5lclRpbWV6b25lIjoiRXVyb3BlL1BhcmlzIiwiZXhjaGFuZ2VzRm9ySG90bGlzdCI6WyJFVVJPTkVYVF9QQVIiXSwiZXhjaGFuZ2VzU3RvY2tzIjpbIkVVUk9ORVhUUEFSIl0sImRlZmF1bHRFeGNoYW5nZSI6IkVVUk9ORVhUX1BBUiIsImdyb3VwIjoiRXVyb3BlIiwibWFya2V0Um91dGUiOiJmcmFuY2UvIn0sImdlIjp7InRpdGxlIjoiR2VvcmdpYSJ9LCJnciI6eyJ0aXRsZSI6IkdyZWVjZSIsInNjcmVlbmVyTmFtZSI6ImdyZWVjZSIsInNjcmVlbmVyVGltZXpvbmUiOiJFdXJvcGUvQXRoZW5zIiwiZXhjaGFuZ2VzU3RvY2tzIjpbIkFUSEVYIl0sImdyb3VwIjoiRXVyb3BlIiwibWFya2V0Um91dGUiOiJncmVlY2UvIn0sImhrIjp7InRpdGxlIjoiSG9uZyBLb25nLCBDaGluYSIsInNjcmVlbmVyTmFtZSI6Imhvbmdrb25nIiwic2NyZWVuZXJUaW1lem9uZSI6IkFzaWEvSG9uZ19Lb25nIiwiZXhjaGFuZ2VzU3RvY2tzIjpbIkhLRVgiXSwiZ3JvdXAiOiJBc2lhIC8gUGFjaWZpYyIsIm1hcmtldFJvdXRlIjoiaG9uZy1rb25nLyJ9LCJodSI6eyJ0aXRsZSI6Ikh1bmdhcnkiLCJzY3JlZW5lck5hbWUiOiJodW5nYXJ5Iiwic2NyZWVuZXJUaW1lem9uZSI6IkV1cm9wZS9CdWRhcGVzdCIsImV4Y2hhbmdlc1N0b2NrcyI6WyJCRVQiXSwiZXhjaGFuZ2VzRm9ySG90bGlzdCI6WyJCRVQiXSwiZGVmYXVsdEV4Y2hhbmdlIjoiQkVUIiwiZ3JvdXAiOiJFdXJvcGUiLCJtYXJrZXRSb3V0ZSI6Imh1bmdhcnkvIn0sImlkIjp7InRpdGxlIjoiSW5kb25lc2lhIiwic2NyZWVuZXJOYW1lIjoiaW5kb25lc2lhIiwic2NyZWVuZXJUaW1lem9uZSI6IkFzaWEvSmFrYXJ0YSIsImV4Y2hhbmdlc1N0b2NrcyI6WyJJRFgiXSwiZ3JvdXAiOiJBc2lhIC8gUGFjaWZpYyIsIm1hcmtldFJvdXRlIjoiaW5kb25lc2lhLyJ9LCJpZSI6eyJ0aXRsZSI6IklyZWxhbmQiLCJzY3JlZW5lck5hbWUiOiJpcmVsYW5kIiwic2NyZWVuZXJUaW1lem9uZSI6IkV1cm9wZS9EdWJsaW4iLCJleGNoYW5nZXNTdG9ja3MiOlsiRVVST05FWFREVUIiXSwiZ3JvdXAiOiJFdXJvcGUiLCJtYXJrZXRSb3V0ZSI6ImlyZWxhbmQvIn0sImlsIjp7InRpdGxlIjoiSXNyYWVsIiwidHZMb2NhbGUiOiJoZV9JTCIsInNjcmVlbmVyTmFtZSI6ImlzcmFlbCIsInNjcmVlbmVyVGltZXpvbmUiOiJBc2lhL0plcnVzYWxlbSIsImV4Y2hhbmdlc1N0b2NrcyI6WyJUQVNFIl0sImdyb3VwIjoiTWlkZGxlIEVhc3QgLyBBZnJpY2EiLCJtYXJrZXRSb3V0ZSI6ImlzcmFlbC8ifSwiaW4iOnsidGl0bGUiOiJJbmRpYSIsInNjcmVlbmVyTmFtZSI6ImluZGlhIiwic2NyZWVuZXJUaW1lem9uZSI6IkFzaWEvS29sa2F0YSIsImV4Y2hhbmdlc1N0b2NrcyI6WyJCU0UiLCJOU0UiXSwiZ3JvdXAiOiJBc2lhIC8gUGFjaWZpYyIsIm1hcmtldFJvdXRlIjoiaW5kaWEvIn0sImlyIjp7InRpdGxlIjoiSXJhbiJ9LCJpcyI6eyJ0aXRsZSI6IkljZWxhbmQiLCJzY3JlZW5lck5hbWUiOiJpY2VsYW5kIiwic2NyZWVuZXJUaW1lem9uZSI6IkF0bGFudGljL1JleWtqYXZpayIsImV4Y2hhbmdlc1N0b2NrcyI6WyJPTVhJQ0UiXSwiZ3JvdXAiOiJFdXJvcGUiLCJtYXJrZXRSb3V0ZSI6ImljZWxhbmQvIn0sIml0Ijp7InRpdGxlIjoiSXRhbHkiLCJzY3JlZW5lck5hbWUiOiJpdGFseSIsInNjcmVlbmVyVGltZXpvbmUiOiJFdXJvcGUvUm9tZSIsImV4Y2hhbmdlc0ZvckhvdGxpc3QiOlsiTUlMIiwiRVVST1RMWCJdLCJleGNoYW5nZXNTdG9ja3MiOlsiTUlMIiwiRVVST1RMWCJdLCJncm91cCI6IkV1cm9wZSIsIm1hcmtldFJvdXRlIjoiaXRhbHkvIn0sImpwIjp7InRpdGxlIjoiSmFwYW4iLCJ0dkxvY2FsZSI6ImphIiwic2NyZWVuZXJOYW1lIjoiamFwYW4iLCJzY3JlZW5lclRpbWV6b25lIjoiQXNpYS9Ub2t5byIsImRlZmF1bHRFeGNoYW5nZSI6IlRTRSIsImV4Y2hhbmdlc0ZvckhvdGxpc3QiOlsiTkFHIiwiVFNFIl0sImV4Y2hhbmdlc1N0b2NrcyI6WyJUU0UiLCJOQUciLCJGU0UiLCJTQVBTRSJdLCJncm91cCI6IkFzaWEgLyBQYWNpZmljIiwibWFya2V0Um91dGUiOiJqYXBhbi8ifSwia2UiOnsidGl0bGUiOiJLZW55YSIsInNjcmVlbmVyTmFtZSI6ImtlbnlhIiwic2NyZWVuZXJUaW1lem9uZSI6IkFmcmljYS9OYWlyb2JpIiwiZXhjaGFuZ2VzU3RvY2tzIjpbIk5TRUtFIl0sImdyb3VwIjoiTWlkZGxlIEVhc3QgLyBBZnJpY2EiLCJtYXJrZXRSb3V0ZSI6ImtlbnlhLyJ9LCJrcCI6eyJ0aXRsZSI6Ik5vcnRoIEtvcmVhIn0sImtyIjp7InRpdGxlIjoiU291dGggS29yZWEiLCJ0dkxvY2FsZSI6ImtyIiwic2NyZWVuZXJOYW1lIjoia29yZWEiLCJzY3JlZW5lclRpbWV6b25lIjoiQXNpYS9TZW91bCIsImV4Y2hhbmdlc1N0b2NrcyI6WyJLUlgiXSwiZ3JvdXAiOiJBc2lhIC8gUGFjaWZpYyIsIm1hcmtldFJvdXRlIjoia29yZWEvIn0sImt3Ijp7InRpdGxlIjoiS3V3YWl0Iiwic2NyZWVuZXJOYW1lIjoia3V3YWl0Iiwic2NyZWVuZXJUaW1lem9uZSI6IkFzaWEvS3V3YWl0IiwiZXhjaGFuZ2VzU3RvY2tzIjpbIktTRSJdLCJncm91cCI6Ik1pZGRsZSBFYXN0IC8gQWZyaWNhIiwibWFya2V0Um91dGUiOiJrdXdhaXQvIn0sImxrIjp7InRpdGxlIjoiU3JpIExhbmthIiwic2NyZWVuZXJOYW1lIjoic3JpbGFua2EiLCJzY3JlZW5lclRpbWV6b25lIjoiQXNpYS9Db2xvbWJvIiwiZXhjaGFuZ2VzU3RvY2tzIjpbIkNTRUxLIl0sImdyb3VwIjoiQXNpYSAvIFBhY2lmaWMiLCJtYXJrZXRSb3V0ZSI6InNyaS1sYW5rYS8ifSwibHQiOnsidGl0bGUiOiJMaXRodWFuaWEiLCJzY3JlZW5lck5hbWUiOiJsaXRodWFuaWEiLCJzY3JlZW5lclRpbWV6b25lIjoiRXVyb3BlL1ZpbG5pdXMiLCJleGNoYW5nZXNTdG9ja3MiOlsiT01YVlNFIl0sImdyb3VwIjoiRXVyb3BlIiwibWFya2V0Um91dGUiOiJsaXRodWFuaWEvIn0sImx2Ijp7InRpdGxlIjoiTGF0dmlhIiwic2NyZWVuZXJOYW1lIjoibGF0dmlhIiwic2NyZWVuZXJUaW1lem9uZSI6IkV1cm9wZS9SaWdhIiwiZXhjaGFuZ2VzU3RvY2tzIjpbIk9NWFJTRSJdLCJncm91cCI6IkV1cm9wZSIsIm1hcmtldFJvdXRlIjoibGF0dmlhLyJ9LCJsdSI6eyJ0aXRsZSI6Ikx1eGVtYm91cmciLCJzY3JlZW5lck5hbWUiOiJsdXhlbWJvdXJnIiwic2NyZWVuZXJUaW1lem9uZSI6IkV1cm9wZS9MdXhlbWJvdXJnIiwiZXhjaGFuZ2VzU3RvY2tzIjpbIkxVWFNFIl0sImV4Y2hhbmdlc0ZvckhvdGxpc3QiOlsiTFVYU0UiXSwiZGVmYXVsdEV4Y2hhbmdlIjoiTFVYU0UiLCJncm91cCI6IkV1cm9wZSIsIm1hcmtldFJvdXRlIjoibHV4ZW1ib3VyZy8ifSwibXgiOnsidGl0bGUiOiJNZXhpY28iLCJzY3JlZW5lck5hbWUiOiJtZXhpY28iLCJzY3JlZW5lclRpbWV6b25lIjoiQW1lcmljYS9NZXhpY29fQ2l0eSIsImV4Y2hhbmdlc1N0b2NrcyI6WyJCTVYiLCJCSVZBIl0sImdyb3VwIjoiTWV4aWNvIGFuZCBTb3V0aCBBbWVyaWNhIiwibWFya2V0Um91dGUiOiJtZXhpY28vIn0sIm1hIjp7InRpdGxlIjoiTW9yb2NjbyIsInNjcmVlbmVyTmFtZSI6Im1vcm9jY28iLCJzY3JlZW5lclRpbWV6b25lIjoiQWZyaWNhL01vcm9jY28iLCJleGNoYW5nZXNTdG9ja3MiOlsiQ1NFTUEiXSwiZXhjaGFuZ2VzRm9ySG90bGlzdCI6WyJDU0VNQSJdLCJncm91cCI6Ik1pZGRsZSBFYXN0IC8gQWZyaWNhIiwibWFya2V0Um91dGUiOiJtb3JvY2NvLyJ9LCJteSI6eyJ0aXRsZSI6Ik1hbGF5c2lhIiwidHZMb2NhbGUiOiJtc19NWSIsInNjcmVlbmVyTmFtZSI6Im1hbGF5c2lhIiwic2NyZWVuZXJUaW1lem9uZSI6IkFzaWEvU2luZ2Fwb3JlIiwiZXhjaGFuZ2VzU3RvY2tzIjpbIk1ZWCJdLCJncm91cCI6IkFzaWEgLyBQYWNpZmljIiwibWFya2V0Um91dGUiOiJtYWxheXNpYS8ifSwibmciOnsidGl0bGUiOiJOaWdlcmlhIiwic2NyZWVuZXJOYW1lIjoibmlnZXJpYSIsInNjcmVlbmVyVGltZXpvbmUiOiJBZnJpY2EvTGFnb3MiLCJleGNoYW5nZXNTdG9ja3MiOlsiTlNFTkciXSwiZ3JvdXAiOiJNaWRkbGUgRWFzdCAvIEFmcmljYSIsIm1hcmtldFJvdXRlIjoibmlnZXJpYS8ifSwibmwiOnsidGl0bGUiOiJOZXRoZXJsYW5kcyIsInNjcmVlbmVyTmFtZSI6Im5ldGhlcmxhbmRzIiwic2NyZWVuZXJUaW1lem9uZSI6IkV1cm9wZS9BbXN0ZXJkYW0iLCJleGNoYW5nZXNGb3JIb3RsaXN0IjpbIkVVUk9ORVhUX0FNUyJdLCJleGNoYW5nZXNTdG9ja3MiOlsiRVVST05FWFRBTVMiXSwiZGVmYXVsdEV4Y2hhbmdlIjoiRVVST05FWFRfQU1TIiwiZ3JvdXAiOiJFdXJvcGUiLCJtYXJrZXRSb3V0ZSI6Im5ldGhlcmxhbmRzLyJ9LCJubyI6eyJ0aXRsZSI6Ik5vcndheSIsInNjcmVlbmVyTmFtZSI6Im5vcndheSIsInNjcmVlbmVyVGltZXpvbmUiOiJFdXJvcGUvT3NsbyIsImV4Y2hhbmdlc0ZvckhvdGxpc3QiOlsiT1NMIl0sImV4Y2hhbmdlc1N0b2NrcyI6WyJFVVJPTkVYVE9TRSJdLCJkZWZhdWx0RXhjaGFuZ2UiOiJPU0wiLCJncm91cCI6IkV1cm9wZSIsIm1hcmtldFJvdXRlIjoibm9yd2F5LyJ9LCJueiI6eyJ0aXRsZSI6Ik5ldyBaZWFsYW5kIiwic2NyZWVuZXJOYW1lIjoibmV3emVhbGFuZCIsInNjcmVlbmVyVGltZXpvbmUiOiJQYWNpZmljL0F1Y2tsYW5kIiwiZXhjaGFuZ2VzU3RvY2tzIjpbIk5aWCJdLCJncm91cCI6IkFzaWEgLyBQYWNpZmljIiwibWFya2V0Um91dGUiOiJuZXctemVhbGFuZC8ifSwicGUiOnsidGl0bGUiOiJQZXJ1Iiwic2NyZWVuZXJOYW1lIjoicGVydSIsInNjcmVlbmVyVGltZXpvbmUiOiJBbWVyaWNhL0xpbWEiLCJleGNoYW5nZXNTdG9ja3MiOlsiQlZMIl0sImdyb3VwIjoiTWV4aWNvIGFuZCBTb3V0aCBBbWVyaWNhIiwibWFya2V0Um91dGUiOiJwZXJ1LyJ9LCJwaCI6eyJ0aXRsZSI6IlBoaWxpcHBpbmVzIiwic2NyZWVuZXJOYW1lIjoicGhpbGlwcGluZXMiLCJzY3JlZW5lclRpbWV6b25lIjoiUGhpbGlwcGluZXMvTWFuaWxhIiwiZXhjaGFuZ2VzU3RvY2tzIjpbIlBTRSJdLCJncm91cCI6IkFzaWEgLyBQYWNpZmljIiwibWFya2V0Um91dGUiOiJwaGlsaXBwaW5lcy8ifSwicGsiOnsidGl0bGUiOiJQYWtpc3RhbiIsInNjcmVlbmVyTmFtZSI6InBha2lzdGFuIiwic2NyZWVuZXJUaW1lem9uZSI6IkFzaWEvS2FyYWNoaSIsImV4Y2hhbmdlc0ZvckhvdGxpc3QiOlsiUFNYIl0sImV4Y2hhbmdlc1N0b2NrcyI6WyJQU1giXSwiZGVmYXVsdEV4Y2hhbmdlIjoiUFNYIiwiZ3JvdXAiOiJBc2lhIC8gUGFjaWZpYyIsIm1hcmtldFJvdXRlIjoicGFraXN0YW4vIn0sInBsIjp7InRpdGxlIjoiUG9sYW5kIiwic2NyZWVuZXJOYW1lIjoicG9sYW5kIiwic2NyZWVuZXJUaW1lem9uZSI6IkV1cm9wZS9XYXJzYXciLCJleGNoYW5nZXNTdG9ja3MiOlsiR1BXIiwiTkVXQ09OTkVDVCJdLCJncm91cCI6IkV1cm9wZSIsIm1hcmtldFJvdXRlIjoicG9sYW5kLyJ9LCJwdCI6eyJ0aXRsZSI6IlBvcnR1Z2FsIiwic2NyZWVuZXJOYW1lIjoicG9ydHVnYWwiLCJzY3JlZW5lclRpbWV6b25lIjoiRXVyb3BlL0xpc2JvbiIsImV4Y2hhbmdlc0ZvckhvdGxpc3QiOlsiRVVST05FWFRfTElTIl0sImV4Y2hhbmdlc1N0b2NrcyI6WyJFVVJPTkVYVExJUyJdLCJkZWZhdWx0RXhjaGFuZ2UiOiJFVVJPTkVYVF9MSVMiLCJncm91cCI6IkV1cm9wZSIsIm1hcmtldFJvdXRlIjoicG9ydHVnYWwvIn0sInFhIjp7InRpdGxlIjoiUWF0YXIiLCJzY3JlZW5lck5hbWUiOiJxYXRhciIsInNjcmVlbmVyVGltZXpvbmUiOiJBc2lhL1FhdGFyIiwiZXhjaGFuZ2VzU3RvY2tzIjpbIlFTRSJdLCJncm91cCI6Ik1pZGRsZSBFYXN0IC8gQWZyaWNhIiwibWFya2V0Um91dGUiOiJxYXRhci8ifSwicm8iOnsidGl0bGUiOiJSb21hbmlhIiwic2NyZWVuZXJOYW1lIjoicm9tYW5pYSIsInNjcmVlbmVyVGltZXpvbmUiOiJFdXJvcGUvQnVjaGFyZXN0IiwiZXhjaGFuZ2VzU3RvY2tzIjpbIkJWQiJdLCJleGNoYW5nZXNGb3JIb3RsaXN0IjpbIkJWQiJdLCJkZWZhdWx0RXhjaGFuZ2UiOiJCVkIiLCJncm91cCI6IkV1cm9wZSIsIm1hcmtldFJvdXRlIjoicm9tYW5pYS8ifSwicnMiOnsidGl0bGUiOiJTZXJiaWEiLCJzY3JlZW5lck5hbWUiOiJzZXJiaWEiLCJzY3JlZW5lclRpbWV6b25lIjoiRXVyb3BlL0JlbGdyYWRlIiwiZXhjaGFuZ2VzU3RvY2tzIjpbIkJFTEVYIl0sImdyb3VwIjoiRXVyb3BlIiwibWFya2V0Um91dGUiOiJzZXJiaWEvIn0sInJ1Ijp7InRpdGxlIjoiUnVzc2lhIiwic2NyZWVuZXJOYW1lIjoicnVzc2lhIiwic2NyZWVuZXJUaW1lem9uZSI6IkV1cm9wZS9Nb3Njb3ciLCJleGNoYW5nZXNTdG9ja3MiOlsiUlVTIl0sImdyb3VwIjoiRXVyb3BlIiwibWFya2V0Um91dGUiOiJydXNzaWEvIn0sInNhIjp7InRpdGxlIjoiU2F1ZGkgQXJhYmlhIiwidHZMb2NhbGUiOiJhcl9BRSIsInNjcmVlbmVyTmFtZSI6ImtzYSIsInNjcmVlbmVyVGltZXpvbmUiOiJBc2lhL1JpeWFkaCIsImV4Y2hhbmdlc1N0b2NrcyI6WyJUQURBV1VMIl0sImdyb3VwIjoiTWlkZGxlIEVhc3QgLyBBZnJpY2EiLCJtYXJrZXRSb3V0ZSI6ImtzYS8ifSwic2UiOnsidGl0bGUiOiJTd2VkZW4iLCJzY3JlZW5lck5hbWUiOiJzd2VkZW4iLCJzY3JlZW5lclRpbWV6b25lIjoiRXVyb3BlL1N0b2NraG9sbSIsImV4Y2hhbmdlc1N0b2NrcyI6WyJOR00iLCJPTVhTVE8iXSwiZXhjaGFuZ2VzRm9ySG90bGlzdCI6WyJOR00iLCJPTVhTVE8iXSwiZ3JvdXAiOiJFdXJvcGUiLCJtYXJrZXRSb3V0ZSI6InN3ZWRlbi8ifSwic2ciOnsidGl0bGUiOiJTaW5nYXBvcmUiLCJzY3JlZW5lck5hbWUiOiJzaW5nYXBvcmUiLCJzY3JlZW5lclRpbWV6b25lIjoiQXNpYS9TaW5nYXBvcmUiLCJleGNoYW5nZXNTdG9ja3MiOlsiU0dYIl0sImdyb3VwIjoiQXNpYSAvIFBhY2lmaWMiLCJtYXJrZXRSb3V0ZSI6InNpbmdhcG9yZS8ifSwic2siOnsidGl0bGUiOiJTbG92YWtpYSIsInNjcmVlbmVyTmFtZSI6InNsb3Zha2lhIiwic2NyZWVuZXJUaW1lem9uZSI6IkV1cm9wZS9CcmF0aXNsYXZhIiwiZXhjaGFuZ2VzU3RvY2tzIjpbIkJTU0UiXSwiZ3JvdXAiOiJFdXJvcGUiLCJtYXJrZXRSb3V0ZSI6InNsb3Zha2lhLyJ9LCJzaSI6eyJ0aXRsZSI6IlNsb3ZlbmlhIiwic2NyZWVuZXJOYW1lIjoic2xvdmVuaWEiLCJzY3JlZW5lclRpbWV6b25lIjoiRXVyb3BlL0xqdWJsamFuYSIsImV4Y2hhbmdlc1N0b2NrcyI6WyJMSlNFIl0sImV4Y2hhbmdlc0ZvckhvdGxpc3QiOlsiTEpTRSJdLCJkZWZhdWx0RXhjaGFuZ2UiOiJMSlNFIiwiZ3JvdXAiOiJFdXJvcGUiLCJtYXJrZXRSb3V0ZSI6InNsb3ZlbmlhLyJ9LCJ0aCI6eyJ0aXRsZSI6IlRoYWlsYW5kIiwidHZMb2NhbGUiOiJ0aF9USCIsInNjcmVlbmVyTmFtZSI6InRoYWlsYW5kIiwic2NyZWVuZXJUaW1lem9uZSI6IkFzaWEvQmFuZ2tvayIsImV4Y2hhbmdlc1N0b2NrcyI6WyJTRVQiXSwiZ3JvdXAiOiJBc2lhIC8gUGFjaWZpYyIsIm1hcmtldFJvdXRlIjoidGhhaWxhbmQvIn0sInRuIjp7InRpdGxlIjoiVHVuaXNpYSIsInNjcmVlbmVyTmFtZSI6InR1bmlzaWEiLCJzY3JlZW5lclRpbWV6b25lIjoiQWZyaWNhL1R1bmlzIiwiZXhjaGFuZ2VzU3RvY2tzIjpbIkJWTVQiXSwiZ3JvdXAiOiJNaWRkbGUgRWFzdCAvIEFmcmljYSIsIm1hcmtldFJvdXRlIjoidHVuaXNpYS8ifSwidHIiOnsidGl0bGUiOiJUdXJrZXkiLCJzY3JlZW5lck5hbWUiOiJ0dXJrZXkiLCJzY3JlZW5lclRpbWV6b25lIjoiRXVyb3BlL0lzdGFuYnVsIiwiZXhjaGFuZ2VzU3RvY2tzIjpbIkJJU1QiXSwiZ3JvdXAiOiJFdXJvcGUiLCJtYXJrZXRSb3V0ZSI6InR1cmtleS8ifSwidHciOnsidGl0bGUiOiJUYWl3YW4sIENoaW5hIiwidHZMb2NhbGUiOiJ6aF9UVyIsInNjcmVlbmVyTmFtZSI6InRhaXdhbiIsInNjcmVlbmVyVGltZXpvbmUiOiJBc2lhL1RhaXBlaSIsImV4Y2hhbmdlc1N0b2NrcyI6WyJUV1NFIiwiVFBFWCJdLCJncm91cCI6IkFzaWEgLyBQYWNpZmljIiwibWFya2V0Um91dGUiOiJ0YWl3YW4vIn0sImdiIjp7InRpdGxlIjoiVW5pdGVkIEtpbmdkb20iLCJzY3JlZW5lck5hbWUiOiJ1ayIsInNjcmVlbmVyVGltZXpvbmUiOiJFdXJvcGUvTG9uZG9uIiwiZGVmYXVsdEV4Y2hhbmdlIjoiTFNFIiwiZXhjaGFuZ2VzU3RvY2tzIjpbIkxTRSIsIkxTSU4iLCJBUVVJUyJdLCJncm91cCI6IkV1cm9wZSIsIm1hcmtldFJvdXRlIjoidW5pdGVkLWtpbmdkb20vIn0sInZlIjp7InRpdGxlIjoiVmVuZXp1ZWxhIiwic2NyZWVuZXJOYW1lIjoidmVuZXp1ZWxhIiwic2NyZWVuZXJUaW1lem9uZSI6IkFtZXJpY2EvQ2FyYWNhcyIsImV4Y2hhbmdlc1N0b2NrcyI6WyJCVkNWIl0sImdyb3VwIjoiTWV4aWNvIGFuZCBTb3V0aCBBbWVyaWNhIiwibWFya2V0Um91dGUiOiJ2ZW5lenVlbGEvIn0sInZuIjp7InRpdGxlIjoiVmlldG5hbSIsInR2TG9jYWxlIjoidmlfVk4iLCJzY3JlZW5lck5hbWUiOiJ2aWV0bmFtIiwic2NyZWVuZXJUaW1lem9uZSI6IkFzaWEvSG9fQ2hpX01pbmgiLCJleGNoYW5nZXNTdG9ja3MiOlsiSE9TRSIsIkhOWCIsIlVQQ09NIl0sImdyb3VwIjoiQXNpYSAvIFBhY2lmaWMiLCJtYXJrZXRSb3V0ZSI6InZpZXRuYW0vIn0sInphIjp7InRpdGxlIjoiU291dGggQWZyaWNhIiwic2NyZWVuZXJOYW1lIjoicnNhIiwic2NyZWVuZXJUaW1lem9uZSI6IkFmcmljYS9Kb2hhbm5lc2J1cmciLCJleGNoYW5nZXNTdG9ja3MiOlsiSlNFIl0sImdyb3VwIjoiTWlkZGxlIEVhc3QgLyBBZnJpY2EiLCJtYXJrZXRSb3V0ZSI6InNvdXRoLWFmcmljYS8ifSwid3ciOnsidGl0bGUiOiJXb3JsZHdpZGUiLCJzY3JlZW5lck5hbWUiOiJnbG9iYWwiLCJleGNoYW5nZXNTdG9ja3MiOltdfX0nKQp9fV0pOw=="}},"time_used":4,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":4,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/85511.bc0015c736830dbb4391.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.122Z","timestamp":1785148034122,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/85511.bc0015c736830dbb4391.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\ncontent-type: text/css; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a4f5c14-1989\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Thu, 09 Jul 2026 08:30:12 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/09/2026 11:42:59\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: a39971dfb5df53ff6e72e6db3e814f54\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":6537,"size_decoded":2708,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with very long lines (6537), with no line terminators","md5":"79a6792de03ff4a95919fca915585072","sha1":"894af226132a69169d79adfee1b99a27c38a9459","sha256":"41841f312da6f654069d63933a797e4ce52da6805547e298eb813ff8b80ec32c","sha512":"c7d1e601099b5ea49d903aab906ed8784918c75438b8c45288b10e714507417869967f32e9597c6902b0224b9aa7f144ddfa5159f499ea2a7b5145cbd2f8aa6f","ssdeep":"96:DOl2YDDxCVQSJkAy3lr/9ZlaJUr8seYMfXSYV19UheBZEZXDe:qDxCVQSw1huJUr8xfXSZeH","tlshash":"54d14365e270663fb827613a5780bf99204cb5cfea024f9afe70b66104c61db1733689","first_seen":"2026-07-10T15:10:09.979104Z","last_seen":"2026-07-27T10:54:11.603283Z","times_seen":25,"resource_available":false,"data":"W2RhdGEtdGhlbWU9bGlnaHRdey0tXzAtZ2dGWDp2YXIoLS1jb2xvci1jb2xkLWdyYXktMTUwKTstLV8xLWdnRlg6dmFyKC0tY29sb3ItY29sZC1ncmF5LTkwMCk7LS1fMi1nZ0ZYOnZhcigtLWNvbG9yLWNvbGQtZ3JheS0xMDApOy0tXzMtZ2dGWDp2YXIoLS1jb2xvci1jb2xkLWdyYXktOTAwKX1bZGF0YS10aGVtZT1kYXJrXXstLV8wLWdnRlg6dmFyKC0tY29sb3ItY29sZC1ncmF5LTc1MCk7LS1fMS1nZ0ZYOnZhcigtLWNvbG9yLWNvbGQtZ3JheS0yMDApOy0tXzItZ2dGWDp2YXIoLS1jb2xvci1jb2xkLWdyYXktODAwKTstLV8zLWdnRlg6dmFyKC0tY29sb3ItY29sZC1ncmF5LTIwMCl9LndpZGdldGJhci13cmFwe2hlaWdodDoxMDAlO2luc2V0LWlubGluZS1lbmQ6MDtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDt3aWR0aDoxMDAlfS53aWRnZXRiYXItaGlkZXJ7Ym90dG9tOjU4cHg7ZGlzcGxheTpibG9jaztsZWZ0Oi0zcHg7cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxMH0ud2lkZ2V0YmFyLWhpZGVyLS1jbG9zZWR7bGVmdDotNHB4fS53aWRnZXRiYXItaGFuZGxle2JhY2tncm91bmQ6IzAwMDA7Y3Vyc29yOmV3LXJlc2l6ZTtoZWlnaHQ6MTAwJTtsZWZ0Oi0zcHg7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7dG91Y2gtYWN0aW9uOm5vbmU7d2lkdGg6NXB4fWh0bWwuZmVhdHVyZS1tb2JpbGV0b3VjaCAud2lkZ2V0YmFyLWhhbmRsZXtpbnNldC1pbmxpbmUtc3RhcnQ6LThweDt3aWR0aDoxNXB4fS53aWRnZXRiYXItdGFic3tiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXR2LWNvbG9yLXBhbmUtYmFja2dyb3VuZCx2YXIoLS1jb2xvci1wYW5lLWJnKSk7aGVpZ2h0OjEwMCU7b3ZlcmZsb3c6aGlkZGVuO3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjA7dG9wOjA7d2lkdGg6NDVweH0ubGF5b3V0LXdpdGgtYm9yZGVyLXJhZGl1cyAubGF5b3V0X19hcmVhLS1yaWdodDpub3QoLm5vLWJvcmRlci10b3AtbGVmdC1yYWRpdXMpIC53aWRnZXRiYXItcGFnZXMsLmxheW91dC13aXRoLWJvcmRlci1yYWRpdXMgLmxheW91dF9fYXJlYS0tcmlnaHQ6bm90KC5uby1ib3JkZXItdG9wLWxlZnQtcmFkaXVzKSAud2lkZ2V0YmFyLXdpZGdldDpmaXJzdC1jaGlsZCwubGF5b3V0LXdpdGgtYm9yZGVyLXJhZGl1cyAubGF5b3V0X19hcmVhLS1yaWdodDpub3QoLm5vLWJvcmRlci10b3AtbGVmdC1yYWRpdXMpOmhhcygud2lkZ2V0YmFyLXBhZ2VzLmhpZGRlbikgLndpZGdldGJhci10YWJze2JvcmRlci1zdGFydC1zdGFydC1yYWRpdXM6NHB4fS53aWRnZXRiYXItcGFnZXMsLndpZGdldGJhci1wYWdlcy1uby10YWJze2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3Itd2lkZ2V0LXBhZ2VzLWJnKTtib3JkZXItaW5saW5lLWVuZDoxcHggc29saWQ7Ym9yZGVyLWlubGluZS1zdGFydDoxcHggc29saWQ7Ym9yZGVyLWNvbG9yOnZhcigtLWNvbG9yLWNoYXJ0LXBhZ2UtYmcpO2hlaWdodDoxMDAlO3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjQ1cHg7dG9wOjB9LndpZGdldGJhci1wYWdlcy1uby10YWJze2luc2V0LWlubGluZS1zdGFydDowfS53aWRnZXRiYXItcGFnZXMuaGlkZGVue2JvcmRlci1pbmxpbmUtZW5kOm5vbmUhaW1wb3J0YW50fS53aWRnZXRiYXItcGFnZXMuaGlkZGVuIC53aWRnZXRiYXItcGFnZXNjb250ZW50e2Rpc3BsYXk6bm9uZX0ud2lkZ2V0YmFyLXBhZ2VzY29udGVudHtoZWlnaHQ6MTAwJTtvdmVyZmxvdzpoaWRkZW59LndpZGdldGJhci1wYWdle2Rpc3BsYXk6bm9uZTtoZWlnaHQ6MTAwJX0ud2lkZ2V0YmFyLXBhZ2UuYWN0aXZle2Rpc3BsYXk6YmxvY2t9LndpZGdldGJhci13aWRnZXR7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci13aWRnZXQtcGFnZXMtYmcpO3Bvc2l0aW9uOnJlbGF0aXZlfS53aWRnZXRiYXItd2lkZ2V0aGVhZGVye2FsaWduLWl0ZW1zOmNlbnRlcjtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLWJnLXNlY29uZGFyeSk7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgdmFyKC0tXzAtZ2dGWCk7Ym94LXNpemluZzpib3JkZXItYm94O2NvbnRhaW46c3RyaWN0O2N1cnNvcjpkZWZhdWx0O2Rpc3BsYXk6ZmxleDtoZWlnaHQ6NDhweDtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjttYXJnaW46MDtwYWRkaW5nOjAgMTZweDt3aWR0aDoxMDAlfS53aWRnZXRiYXItaGVhZGVyc3BhY2V7ZGlzcGxheTpmbGV4O21hcmdpbi1pbmxpbmUtZW5kOi04cHg7cGFkZGluZy1ibG9jazoxcHggMDtwYWRkaW5nLWlubGluZTowIDJweDtwb3NpdGlvbjpyZWxhdGl2ZX0ud2lkZ2V0YmFyLXdpZGdldGJvZHl7Y29udGFpbjpzdHJpY3Q7b3ZlcmZsb3c6aGlkZGVuO3Bvc2l0aW9uOnJlbGF0aXZlfS53aWRnZXRiYXItd2lkZ2V0dGl0bGV7Y29sb3I6dmFyKC0tXzEtZ2dGWCk7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NjAwO2xpbmUtaGVpZ2h0OjE4cHg7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7d2hpdGUtc3BhY2U6bm93cmFwfS53aWRnZXRiYXItd2lkZ2V0aGFuZGxle2JhY2tncm91bmQ6IzAwMDA7ZGlzcGxheTpub25lO2hlaWdodDo1cHg7aW5zZXQtaW5saW5lLXN0YXJ0OjA7cG9zaXRpb246YWJzb2x1dGU7dG9wOi0zcHg7dG91Y2gtYWN0aW9uOm5vbmU7d2lkdGg6MTAwJX1odG1sLmZlYXR1cmUtbW9iaWxldG91Y2ggLndpZGdldGJhci13aWRnZXRoYW5kbGV7aGVpZ2h0OjE1cHg7dG9wOi04cHh9LndpZGdldGJhci1wYWdlLndpZGdldC1yZXNpemUtbW9kZSwud2lkZ2V0YmFyLXBhZ2Uud2lkZ2V0LXJlc2l6ZS1tb2RlICosLndpZGdldGJhci13aWRnZXRoYW5kbGV7Y3Vyc29yOm5zLXJlc2l6ZX0ud2lkZ2V0YmFyLXdpZGdldCsud2lkZ2V0YmFyLXdpZGdldCAud2lkZ2V0YmFyLXdpZGdldGhhbmRsZXtkaXNwbGF5OmJsb2NrfS53aWRnZXRiYXItaGVhZGVyc3BhY2UgLmJ1dHRvbnthbGlnbi1pdGVtczpjZW50ZXI7Ym9yZGVyLXJhZGl1czo0cHg7Ym94LXNpemluZzpib3JkZXItYm94O2NvbG9yOnZhcigtLV8zLWdnRlgpO2Rpc3BsYXk6ZmxleDtmbG9hdDppbmxpbmUtc3RhcnQ7Zm9udC1zaXplOjEycHg7aGVpZ2h0OjM0cHg7anVzdGlmeS1jb250ZW50OmNlbnRlcjtsaW5lLWhlaWdodDoxNXB4O21hcmdpbi1pbmxpbmUtc3RhcnQ6NXB4O3Bvc2l0aW9uOnJlbGF0aXZlO3RleHQtYWxpZ246Y2VudGVyO3dpZHRoOjM0cHg7ZmlsbDpjdXJyZW50Q29sb3J9LndpZGdldGJhci1oZWFkZXJzcGFjZSAuYnV0dG9uLmFjdGl2ZSwud2lkZ2V0YmFyLWhlYWRlcnNwYWNlIC5idXR0b246YWN0aXZle2JhY2tncm91bmQtY29sb3I6dmFyKC0tXzItZ2dGWCk7dHJhbnNmb3JtOnNjYWxlKDEpfUBtZWRpYSAoYW55LWhvdmVyOmhvdmVyKXsud2lkZ2V0YmFyLWhlYWRlcnNwYWNlIC5idXR0b246aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1fMi1nZ0ZYKTt0cmFuc2Zvcm06c2NhbGUoMSl9fVtkYXRhLXRoZW1lPWxpZ2h0XXstLV8wLWRWZVU6dmFyKC0tY29sb3ItY29sZC1ncmF5LTE1MCk7LS1fMS1kVmVVOnZhcigtLWNvbG9yLWNvbGQtZ3JheS05MDApfVtkYXRhLXRoZW1lPWRhcmtdey0tXzAtZFZlVTp2YXIoLS1jb2xvci1jb2xkLWdyYXktODAwKTstLV8xLWRWZVU6dmFyKC0tY29sb3ItY29sZC1ncmF5LTIwMCl9LndpZGdldGJhci13aWRnZXQud2lkZ2V0LUNLRmxLalUye2JvcmRlci10b3A6NHB4IHNvbGlkO2JvcmRlci10b3AtY29sb3I6dmFyKC0tXzAtZFZlVSk7bWFyZ2luLWJvdHRvbTowfS53aWRnZXRiYXItd2lkZ2V0LndpZGdldC1DS0ZsS2pVMjpmaXJzdC1jaGlsZHtib3JkZXItdG9wOm5vbmV9LndpZGdldGJhci13aWRnZXQud2lkZ2V0LUNLRmxLalUyOmxhc3QtY2hpbGR7Ym94LXNoYWRvdzpub25lfS53aWRnZXRIZWFkZXItQ0tGbEtqVTJ7YWxpZ24taXRlbXM6Y2VudGVyO2N1cnNvcjpkZWZhdWx0O2Rpc3BsYXk6ZmxleDtoZWlnaHQ6NDhweDttYXJnaW46MDtwYWRkaW5nOjAgMTZweH0ud2lkZ2V0SGVhZGVyLUNLRmxLalUyIC53aWRnZXRUaXRsZS1DS0ZsS2pVMntjb2xvcjp2YXIoLS1fMS1kVmVVKTtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo2MDA7aGVpZ2h0OmF1dG87bGluZS1oZWlnaHQ6MjhweDt3aGl0ZS1zcGFjZTpub3dyYXB9LndpZGdldEhlYWRlci1DS0ZsS2pVMiAud2lkZ2V0VGl0bGUtQ0tGbEtqVTIud2lkZ2V0YmFyLXdpZGdldHRpdGxle3BhZGRpbmctaW5saW5lLXN0YXJ0OjB9LndpZGdldEhlYWRlci1DS0ZsS2pVMiAuaGVhZGVyU3BhY2UtQ0tGbEtqVTJ7bWFyZ2luLWlubGluZS1zdGFydDphdXRvfS5idXR0b24tVVgzS1dOek57YWxpZ24taXRlbXM6Y2VudGVyO2JveC1zaXppbmc6Ym9yZGVyLWJveDtkaXNwbGF5OmZsZXg7ZmxleDowIDAgYXV0bztoZWlnaHQ6NDVweDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3dpZHRoOjEwMCU7LS11aS1saWItaW4tbmF2QnV0dG9uLWNvbG9yQmc6dmFyKC0tdHYtY29sb3ItcGFuZS1iYWNrZ3JvdW5kLHZhcigtLWNvbG9yLXBhbmUtYmcpKX0uc2VwYXJhdG9yLVZSajVwaTk4e2FsaWduLXNlbGY6c3RyZXRjaDtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXR2LWNvbG9yLXRvb2xiYXItZGl2aWRlci1iYWNrZ3JvdW5kLHZhcigtLWNvbG9yLXRvb2xiYXItZGl2aWRlci1iYWNrZ3JvdW5kKSk7ZmxleDowIDAgYXV0bztoZWlnaHQ6MXB4O21hcmdpbjo2cHh9LmZpbGxlci1TYzVHbzhHOHtmbGV4OjEgMSAxMDAlO21pbi1oZWlnaHQ6MTZweDt3aWR0aDoxMDAlfS5idXR0b24tZ3l1bVpNYzF7aGVpZ2h0OjQ0cHg7d2lkdGg6NDRweDstLXR2LXRvb2xiYXItZXhwbGljaXQtaG92ZXItbWFyZ2luOjNweDstLXR2LXRvb2xiYXItZXhwbGljaXQtaG92ZXItYm9yZGVyLXJhZGl1czo4cHh9LmJ1dHRvbi1neXVtWk1jMSsuYnV0dG9uLWd5dW1aTWMxe21hcmdpbi10b3A6MnB4fS5jb2xsYXBzZWQtZ3l1bVpNYzE6YWZ0ZXJ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1jb250YWluZXItZmlsbC1zZWNvbmRhcnktbmV1dHJhbCk7Ym9yZGVyLXJhZGl1czo1MCU7Y29udGVudDoiIjtoZWlnaHQ6NHB4O2luc2V0LWlubGluZS1zdGFydDoxcHg7cG9zaXRpb246YWJzb2x1dGU7dG9wOmNhbGMoNTAlIC0gMnB4KTt3aWR0aDo0cHh9LmluZXJ0LWd5dW1aTWMxe3BvaW50ZXItZXZlbnRzOm5vbmV9LmNvdW50ZXJSb3ctZ3l1bVpNYzF7YWxpZ24taXRlbXM6Y2VudGVyO2NvbG9yOnZhcigtLWNvbG9yLXdoaXRlKTtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246cm93LXJldmVyc2U7Zm9udC1zaXplOjEwcHg7aGVpZ2h0OjE0cHg7aW5zZXQtaW5saW5lLWVuZDpjYWxjKDUwJSAtIDE4cHgpO2luc2V0LWlubGluZS1zdGFydDoxMHB4O2xpbmUtaGVpZ2h0OjE0cHg7cG9zaXRpb246YWJzb2x1dGU7dG9wOjRweDt3aGl0ZS1zcGFjZTpub3dyYXB9LmJ1dHRvbi1WdXRkMTNOM3toZWlnaHQ6NDRweDttYXJnaW4tdG9wOjJweH0uYnV0dG9uSWNvbi1WdXRkMTNOM3tjb2xvcjp2YXIoLS1jb2xvci1jb250YWluZXItZmlsbC1wcmltYXJ5LW5ldXRyYWwtZXh0cmEtYm9sZCl9LnRvb2xiYXIteXpua1BTVGF7YWxpZ24taXRlbXM6Y2VudGVyO2JveC1zaXppbmc6Ym9yZGVyLWJveDtkaXNwbGF5OmlubGluZS1mbGV4O2ZsZXg6MSAwIGF1dG87ZmxleC1kaXJlY3Rpb246Y29sdW1uO2hlaWdodDoxMDAlO3BhZGRpbmc6MnB4IDA7d2lkdGg6NDVweH1bZGF0YS10aGVtZT1kYXJrXSxbZGF0YS10aGVtZT1saWdodF17LS1fMC16ZWVHOnZhcigtLWNvbG9yLWNvbGQtZ3JheS0zMDApfS5jb250YWluZXItcHBua0RTNmx7ZGlzcGxheTpibG9jazt0cmFuc2l0aW9uOmZpbGwgNjBtcyBlYXNlLHN0cm9rZSA2MG1zIGVhc2V9LmNvbnRhaW5lci1wcG5rRFM2bC5taXJyb3ItcHBua0RTNmx7dHJhbnNmb3JtOnJvdGF0ZSgxODBkZWcpfS5jb250YWluZXItcHBua0RTNmwubWlycm9yLXBwbmtEUzZsOmRpcihydGwpe3RyYW5zZm9ybTpyb3RhdGUoLTE4MGRlZyl9LmNvbnRhaW5lci1wcG5rRFM2bCAuYmFja2dyb3VuZC1wcG5rRFM2bHtmaWxsOnZhcigtLXR2LWNvbG9yLXBhbmUtYmFja2dyb3VuZCx2YXIoLS1jb2xvci1wYW5lLWJnKSk7c3Ryb2tlOnZhcigtLXR2LWNvbG9yLXBsYXRmb3JtLWJhY2tncm91bmQsdmFyKC0tY29sb3ItY2hhcnQtcGFnZS1iZykpfS5jb250YWluZXItcHBua0RTNmwgLmFycm93LXBwbmtEUzZse3N0cm9rZTp2YXIoLS1fMC16ZWVHKX1AbWVkaWEgKGFueS1ob3Zlcjpob3Zlcil7LmNvbnRhaW5lci1wcG5rRFM2bDpob3ZlciAuYmFja2dyb3VuZC1wcG5rRFM2bHtmaWxsOnZhcigtLXR2LWNvbG9yLXRvb2xiYXItdG9nZ2xlLWJ1dHRvbi1iYWNrZ3JvdW5kLWFjdGl2ZSx2YXIoLS1jb2xvci1jb250YWluZXItZmlsbC1wcmltYXJ5LW5ldXRyYWwtZXh0cmEtYm9sZCkpO3N0cm9rZTp2YXIoLS10di1jb2xvci10b29sYmFyLXRvZ2dsZS1idXR0b24tYmFja2dyb3VuZC1hY3RpdmUtaG92ZXIsdmFyKC0tY29sb3ItY29udGFpbmVyLWZpbGwtcHJpbWFyeS1uZXV0cmFsLWJvbGQpKX0uY29udGFpbmVyLXBwbmtEUzZsOmhvdmVyIC5hcnJvdy1wcG5rRFM2bHtzdHJva2U6dmFyKC0tdHYtY29sb3ItcGFuZS1iYWNrZ3JvdW5kLHZhcigtLWNvbG9yLXBhbmUtYmcpKX19"}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/11461.e27cb4ecf30492ac11f6.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:13.895Z","timestamp":1785148033895,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/11461.e27cb4ecf30492ac11f6.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:13 GMT\r\ncontent-type: text/css; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a58ab11-d22\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Thu, 16 Jul 2026 09:57:37 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/16/2026 11:03:26\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 3560068e2c180a063ee0ccc5bcc0f892\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":3362,"size_decoded":1718,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with very long lines (3362), with no line terminators","md5":"d57b002e0b956f52c9bfada971230444","sha1":"06594be9b9b68921b0e108591a901858ebc1f8b1","sha256":"f1b83b2356d69c4ca5f06d45aa89ed7abedeeb54bec8ab856702bdadaf099259","sha512":"14fd023c81be241ae68a71bfac23b1be63eb4f5893a2728775eac03ad277734fd2762138ef44afc0769cd939d74c34eb7e2af50b51ee6680e2c6f678aaae7892","ssdeep":"","tlshash":"3c613e72c50424b536ffe8d68e928f47191c6463ea03264fa6217e2859c7ffe04e21a7","first_seen":"2026-07-16T13:40:49.805257Z","last_seen":"2026-07-27T12:57:37.016164Z","times_seen":229,"resource_available":false,"data":"LmJvZHlOb1Njcm9sbC1mT0lSS0F0SHttYXJnaW4tcmlnaHQ6dmFyKC0tdWktbGliLXByaXZhdGUtc2Nyb2xsVHJhcC1zY3JvbGwtd2lkdGgpO292ZXJmbG93OmhpZGRlbjt0b3VjaC1hY3Rpb246bm9uZX1Ac3VwcG9ydHMgKC1tb3otYXBwZWFyYW5jZTpub25lKXsuYm9keU5vU2Nyb2xsLWZPSVJLQXRIe3Njcm9sbGJhci13aWR0aDpub25lfX0uYm9keU5vU2Nyb2xsLWZPSVJLQXRILnNiLXNjcm9sbGJhci13cmFwe2Rpc3BsYXk6bm9uZX0uYm9keU5vU2Nyb2xsLWZPSVJLQXRIOjotd2Via2l0LXNjcm9sbGJhcntkaXNwbGF5Om5vbmU7aGVpZ2h0OjA7d2lkdGg6MH0uYm9keU5vU2Nyb2xsLWZPSVJLQXRIOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiwuYm9keU5vU2Nyb2xsLWZPSVJLQXRIOjotd2Via2l0LXNjcm9sbGJhci10cmFja3tkaXNwbGF5Om5vbmV9LmJvZHlOb1Njcm9sbC1mT0lSS0F0SDo6LXdlYmtpdC1zY3JvbGxiYXItY29ybmVye2Rpc3BsYXk6bm9uZX0uc2Nyb2xsVHJhcC1MbjBBSVc0RntoZWlnaHQ6MTAwJTtpbnNldC1pbmxpbmUtc3RhcnQ6MDtvdmVyZmxvdzpzY3JvbGw7cG9zaXRpb246Zml4ZWQ7dG9wOjA7d2lkdGg6MTAwJX1Ac3VwcG9ydHMgKC1tb3otYXBwZWFyYW5jZTpub25lKXsuc2Nyb2xsVHJhcC1MbjBBSVc0RntzY3JvbGxiYXItd2lkdGg6bm9uZX19LnNjcm9sbFRyYXAtTG4wQUlXNEYuc2Itc2Nyb2xsYmFyLXdyYXB7ZGlzcGxheTpub25lfS5zY3JvbGxUcmFwLUxuMEFJVzRGOjotd2Via2l0LXNjcm9sbGJhcntkaXNwbGF5Om5vbmU7aGVpZ2h0OjA7d2lkdGg6MH0uc2Nyb2xsVHJhcC1MbjBBSVc0Rjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIsLnNjcm9sbFRyYXAtTG4wQUlXNEY6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNre2Rpc3BsYXk6bm9uZX0uc2Nyb2xsVHJhcC1MbjBBSVc0Rjo6LXdlYmtpdC1zY3JvbGxiYXItY29ybmVye2Rpc3BsYXk6bm9uZX0uc2Nyb2xsVHJhcENvbnRlbnQtTG4wQUlXNEZ7aGVpZ2h0OmNhbGMoMTAwJSArIDEwMDAwcHgpO3dpZHRoOmNhbGMoMTAwJSArIDEwMDAwcHgpfS5zdHViLUl1aE9qb3VZe2JhY2tncm91bmQ6dmFyKC0tY29sb3ItYmFja2dyb3VuZC1zZWNvbmRhcnkpO2JvdHRvbTowO2hlaWdodDo0cHg7aW5zZXQtaW5saW5lLWVuZDowO2luc2V0LWlubGluZS1zdGFydDowO29wYWNpdHk6LjU7cG9pbnRlci1ldmVudHM6bm9uZTtwb3NpdGlvbjpmaXhlZH0uY29udGVudC1hZjBMQ2d5NXtvdmVyZmxvdy14OmhpZGRlbjtvdmVyZmxvdy15OmhpZGRlbjtvdmVyc2Nyb2xsLWJlaGF2aW9yOm5vbmU7cG9zaXRpb246Zml4ZWQ7ei1pbmRleDoxOy0td2Via2l0LW92ZXJzY3JvbGwtYmVoYWl2aW91cjpub25lO2Rpc3BsYXk6Z3JpZDtncmlkLXRlbXBsYXRlLWNvbHVtbnM6MWZyO2dyaWQtdGVtcGxhdGUtcm93czoxZnJ9LnN0cmV0Y2gtYWYwTENneTV7aGVpZ2h0OjEwMCU7d2lkdGg6MTAwJX0uYmVnaW4tYWYwTENneTV7aW5zZXQtaW5saW5lLXN0YXJ0OjB9LmVuZC1hZjBMQ2d5NXtpbnNldC1pbmxpbmUtZW5kOjB9LmJlZ2luLWFmMExDZ3k1LC5lbmQtYWYwTENneTV7aGVpZ2h0OjEwMCU7bWF4LXdpZHRoOmNhbGMoMTAwdncgLSAxMDBweCk7dG9wOjB9LnRvcC1hZjBMQ2d5NXt0b3A6MH0uYm90dG9tLWFmMExDZ3k1e2JvdHRvbTowfS5ib3R0b20tYWYwTENneTUsLnRvcC1hZjBMQ2d5NXtpbnNldC1pbmxpbmUtc3RhcnQ6MDttYXgtaGVpZ2h0OmNhbGMoMTAwJSAtIDEwMHB4KTt3aWR0aDoxMDAlfUBzdXBwb3J0cyAoaGVpZ2h0OjEwMGR2aCl7LmJvdHRvbS1hZjBMQ2d5NSwudG9wLWFmMExDZ3k1e21heC1oZWlnaHQ6Y2FsYygxMDBkdmggLSAxMDBweCl9fS5iYWNrZHJvcC1hZjBMQ2d5NXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLW90aGVyLW1vZGFsLWJhY2tncm91bmQpO2hlaWdodDoxMDAlO2luc2V0LWlubGluZS1zdGFydDowO292ZXJzY3JvbGwtYmVoYXZpb3I6bm9uZTtwb3NpdGlvbjpmaXhlZDt0b3A6MDt3aWR0aDoxMDAlOy0td2Via2l0LW92ZXJzY3JvbGwtYmVoYWl2aW91cjpub25lfS5tb2JpbGVDb250ZXh0LVZ4bjRMaFlMe2Rpc3BsYXk6Y29udGVudHM7LS11aS1saWItb3V0LXBvc2l0aW9uZXItaXNBbmNob3JQb3NpdGlvbmVyOjA7LS11aS1saWItb3V0LXBvc2l0aW9uZXItaXNNb2JpbGVQb3NpdGlvbmVyOjF9LmFuY2hvckNvbnRleHQtVnhuNExoWUx7ZGlzcGxheTpjb250ZW50czstLXVpLWxpYi1vdXQtcG9zaXRpb25lci1pc0FuY2hvclBvc2l0aW9uZXI6MTstLXVpLWxpYi1vdXQtcG9zaXRpb25lci1pc01vYmlsZVBvc2l0aW9uZXI6MH0uY29udGVudERlZmF1bHRBcHBlYXJhbmNlTW9iaWxlLWc4Um9oZ05Ye2JhY2tncm91bmQ6dmFyKC0tY29sb3ItY29udGFpbmVyLWZpbGwtdGVydGlhcnktaW52ZXJzZSk7Ym9yZGVyLXJhZGl1czowIDAgMTBweCAxMHB4O2JveC1zaGFkb3c6MCAycHggNHB4IHZhcigtLWNvbG9yLXNoYWRvdy1wcmltYXJ5LW5ldXRyYWwtZXh0cmEtaGVhdnkpfS5jb250ZW50RGVmYXVsdEFwcGVhcmFuY2VNb2JpbGUtZzhSb2hnTlg6ZGlyKHJ0bCl7Ym9yZGVyLXJhZGl1czowIDAgMTBweCAxMHB4fS5jb250ZW50RGVmYXVsdEFwcGVhcmFuY2VNb2JpbGUtZzhSb2hnTlguYmVnaW4tZzhSb2hnTlh7Ym9yZGVyLXJhZGl1czowIDEwcHggMTBweCAwfS5jb250ZW50RGVmYXVsdEFwcGVhcmFuY2VNb2JpbGUtZzhSb2hnTlguYmVnaW4tZzhSb2hnTlg6ZGlyKHJ0bCl7Ym9yZGVyLXJhZGl1czoxMHB4IDAgMCAxMHB4fS5jb250ZW50RGVmYXVsdEFwcGVhcmFuY2VNb2JpbGUtZzhSb2hnTlguZW5kLWc4Um9oZ05Ye2JvcmRlci1yYWRpdXM6MTBweCAwIDAgMTBweH0uY29udGVudERlZmF1bHRBcHBlYXJhbmNlTW9iaWxlLWc4Um9oZ05YLmVuZC1nOFJvaGdOWDpkaXIocnRsKXtib3JkZXItcmFkaXVzOjAgMTBweCAxMHB4IDB9LmNvbnRlbnREZWZhdWx0QXBwZWFyYW5jZU1vYmlsZS1nOFJvaGdOWC50b3AtZzhSb2hnTlh7Ym9yZGVyLXJhZGl1czowIDAgMTBweCAxMHB4fS5jb250ZW50RGVmYXVsdEFwcGVhcmFuY2VNb2JpbGUtZzhSb2hnTlguYm90dG9tLWc4Um9oZ05Ye2JvcmRlci1yYWRpdXM6MTBweCAxMHB4IDAgMH0uY29udGVudERlZmF1bHRBcHBlYXJhbmNlLWc4Um9oZ05Ye2JhY2tncm91bmQ6dmFyKC0tY29sb3ItY29udGFpbmVyLWZpbGwtdGVydGlhcnktaW52ZXJzZSk7Ym9yZGVyLXJhZGl1czoxMHB4IDEwcHggMTBweCAxMHB4O2JveC1zaGFkb3c6MCAycHggNHB4IHZhcigtLWNvbG9yLXNoYWRvdy1wcmltYXJ5LW5ldXRyYWwtZXh0cmEtaGVhdnkpO292ZXJmbG93OmhpZGRlbn0uY29udGVudERlZmF1bHRBcHBlYXJhbmNlLWc4Um9oZ05YOmRpcihydGwpe2JvcmRlci1yYWRpdXM6MTBweCAxMHB4IDEwcHggMTBweH0="}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/54681.a717110e6749f307ed6d.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:12.936Z","timestamp":1785148032936,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/54681.a717110e6749f307ed6d.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:12 GMT\r\ncontent-type: text/css; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding, Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\netag: W/\"6a041685-15e\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Wed, 13 May 2026 06:13:25 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.52\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 05/13/2026 09:56:17\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 3e8a2612eaa58c4a3d62b4df8909d2da\r\ncdn-cache: HIT\r\ncontent-encoding: br\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":350,"size_decoded":952,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with very long lines (350), with no line terminators","md5":"f2e28dcef513e7329db6a3a69720bb48","sha1":"d2b0bc2f96723e3d74402c72a78a9a449405c692","sha256":"b2adba47f3ef9121bd8fb32842dcca6edcc4b9e36084de7724ef7244f6b03640","sha512":"97e9c6797a664f80308677fd34c5ddaafe0f74b206038c67761074bc9062d4439f8bd8aaae50193cd70d06f3baa8f30eb1fad236115eb4cda845f8dc922c1e2f","ssdeep":"","tlshash":"60e08cc3f0c6000444a341329c00b738fdaf98588b836ea4805e77304b166cf3b30dae","first_seen":"2026-05-13T13:23:52.95015Z","last_seen":"2026-07-27T12:57:37.089009Z","times_seen":2159,"resource_available":false,"data":"LmktaGlkZGVue2Rpc3BsYXk6bm9uZSFpbXBvcnRhbnR9LmktaW52aXNpYmxle3Zpc2liaWxpdHk6aGlkZGVuIWltcG9ydGFudH0uaS1hbGlnbl9sZWZ0e3RleHQtYWxpZ246c3RhcnQhaW1wb3J0YW50fS5pLWFsaWduX3JpZ2h0e3RleHQtYWxpZ246ZW5kIWltcG9ydGFudH0uaS1hbGlnbl9jZW50ZXJ7dGV4dC1hbGlnbjpjZW50ZXIhaW1wb3J0YW50fS5pLWZsb2F0X2xlZnR7ZmxvYXQ6aW5saW5lLXN0YXJ0IWltcG9ydGFudH0uaS1mbG9hdF9yaWdodHtmbG9hdDppbmxpbmUtZW5kIWltcG9ydGFudH0uaS1mbG9hdF9ub25le2Zsb2F0Om5vbmUhaW1wb3J0YW50fS5pLW5vLWJyZWFre3doaXRlLXNwYWNlOm5vd3JhcH0="}},"time_used":19,"timings":{"blocked":-1,"dns":0,"connect":2,"send":0,"wait":6,"receive":0,"ssl":11},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"translate-pa.googleapis.com/v1/supportedLanguages?client=te\u0026display_language=no\u0026key=AIzaSyBWDj0QJvVIx8XOhRegXX5_SrRWxhT5Hs4\u0026callback=callback","fqdn":"translate-pa.googleapis.com","domain":"translate-pa.googleapis.com","tld":"googleapis.com"},"ip":{"addr":"172.217.114.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"script","requested_by":"moz-nullprincipal:{83ce8b90-af1b-4b77-a96c-c20aa8260ba1}?https://digital-assettrade.com","date":"2026-07-27T10:27:13.674Z","timestamp":1785148033674,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_256_GCM_SHA384","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"upload.video.google.com","organization":""},"issuer":{"commonName":"WR2","organization":"Google Trust Services"},"validity":{"start":"Mon, 29 Jun 2026 08:39:20 GMT","end":"Mon, 21 Sep 2026 08:39:19 GMT"},"fingerprint":{"sha1":"2A:E6:04:0E:76:A4:02:27:67:28:31:4D:E5:61:19:26:CA:0E:32:84","sha256":"D4:ED:C4:F8:DB:31:8A:2D:35:15:01:14:C0:49:CB:47:FF:5B:CC:17:14:82:63:9B:A8:6F:61:4D:AA:E5:96:94"}}},"request":{"raw":"GET /v1/supportedLanguages?client=te\u0026display_language=no\u0026key=AIzaSyBWDj0QJvVIx8XOhRegXX5_SrRWxhT5Hs4\u0026callback=callback HTTP/1.1\r\nHost: translate-pa.googleapis.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-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://digital-assettrade.com/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\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\np3p: CP=\"This is not a P3P policy! See g.co/p3phelp for more info.\"\r\ncross-origin-resource-policy: cross-origin\r\ncontent-type: text/javascript; charset=UTF-8\r\nvary: Origin, X-Origin, Referer\r\ncontent-encoding: gzip\r\ndate: Mon, 27 Jul 2026 10:27:13 GMT\r\nserver: ESF\r\ncontent-length: 2635\r\nx-xss-protection: 0\r\nx-frame-options: SAMEORIGIN\r\nx-content-type-options: nosniff\r\nset-cookie: NID=533=elgF5FkQcFNS7S1I4l-cLmdBsIlDBBiAPsFQ26iayNTn3UTjv_LDSn8la_wZ-Bg1z2w0o253lzW9-5XhuEOgLiP-Q5P_RPOr0NbRirVcObEL7RmqLGQAAI0LKfttL1rk3vZOv5qLykTbDcvzi2Ysb-xPUdMXCOQGCBlDJ0VL0kJFu_kYb1gCt23Xew8zHyc8kkV2ciPOvsLb3l2j1PrbWDEE8nt9WLHVjg; expires=Tue, 26-Jan-2027 10:27:13 GMT; path=/; domain=.translate-pa.googleapis.com; HttpOnly\r\nexpires: Mon, 27 Jul 2026 10:27:13 GMT\r\ncache-control: private\r\nalt-svc: h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":null,"data":{"size":31482,"size_decoded":3504,"mime_type":"text/javascript; charset=UTF-8","magic":"Unicode text, UTF-8 text","md5":"91115de97ad1a90076e130223cdd90ad","sha1":"f3ad22e4fa892dfbff0d083bc0465fc3a2240317","sha256":"816e9881b1955d8beff3011d93481dad4c4de71bbd80b50ac267e7e45d4c3bad","sha512":"fbca69c3431240ab374b9ccfb06d76074059cdfe2f153743b292020271a8a3a36885189594a97fd74b43249b1f6359af62dfd0731e7b50e024f37faebdccf620","ssdeep":"192:Z6STcB9aqiD0+52DdKXrWryLxizUSTcB9aqdD0+52DdKXrWryLxG:JTcbaU3KXiMxidTcbah3KXiMxG","tlshash":"d0e267bae8b50d9b6a5e65b416fa2a03306041db4edc3c053b1c1e4c6fdec1e6c7169e","first_seen":"2025-09-02T05:12:23.753308Z","last_seen":"2026-07-27T13:00:41.357383Z","times_seen":7532,"resource_available":true,"data":"Ly8gQVBJIGNhbGxiYWNrCmNhbGxiYWNrKHsKICAic291cmNlTGFuZ3VhZ2VzIjogWwogICAgewogICAgICAibGFuZ3VhZ2UiOiAiYXV0byIsCiAgICAgICJuYW1lIjogIkdqZW5ramVubiBzcHLDpWsiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiYWIiLAogICAgICAibmFtZSI6ICJhYmtoYXNpc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiYWNlIiwKICAgICAgIm5hbWUiOiAiYWNlaG5lc2lzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJhY2giLAogICAgICAibmFtZSI6ICJhY2hvbGkiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiYWEiLAogICAgICAibmFtZSI6ICJhZmFyIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImFmIiwKICAgICAgIm5hbWUiOiAiYWZyaWthYW5zIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogInNxIiwKICAgICAgIm5hbWUiOiAiYWxiYW5zayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJhbHoiLAogICAgICAibmFtZSI6ICJhbHVyIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImFtIiwKICAgICAgIm5hbWUiOiAiYW1oYXJpc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiYXIiLAogICAgICAibmFtZSI6ICJhcmFiaXNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImh5IiwKICAgICAgIm5hbWUiOiAiYXJtZW5zayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJheiIsCiAgICAgICJuYW1lIjogImFzZXJiYWpkc2phbnNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImFzIiwKICAgICAgIm5hbWUiOiAiYXNzYW1lc2lzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJhdiIsCiAgICAgICJuYW1lIjogImF2YXJpc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiYXdhIiwKICAgICAgIm5hbWUiOiAiYXdhZGhpIgogICAgfSwKICAgIHsKICAgICAibGFuZ3VhZ2UiOiAiYXkiLAogICAgICAibmFtZSI6ICJheW1hcmEiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiYmFuIiwKICAgICAgIm5hbWUiOiAiYmFsaW5lc2lzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJiYWwiLAogICAgICAibmFtZSI6ICJiYWx1dHNqaSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJibSIsCiAgICAgICJuYW1lIjogImJhbWJhcmEiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiYmNpIiwKICAgICAgIm5hbWUiOiAiYmFvdWzDqSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJiYSIsCiAgICAgICJuYW1lIjogImJhc2praXJzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJldSIsCiAgICAgICJuYW1lIjogImJhc2tpc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiYnR4IiwKICAgICAgIm5hbWUiOiAiYmF0YWsga2FybyIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJidHMiLAogICAgICAibmFtZSI6ICJiYXRhayBzaW1hbHVuZ3VuIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImJiYyIsCiAgICAgICJuYW1lIjogImJhdGFrIHRvYmEiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiYmVtIiwKICAgICAgIm5hbWUiOiAiYmVtYmEiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiYm4iLAogICAgICAibmFtZSI6ICJiZW5nYWxpIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImJldyIsCiAgICAgICJuYW1lIjogImJldGF3aSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJiaG8iLAogICAgICAibmFtZSI6ICJiaG9qcHVyaSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJiaWsiLAogICAgICAibmFtZSI6ICJiaWtvbCIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJicyIsCiAgICAgICJuYW1lIjogImJvc25pc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiYnIiLAogICAgICAibmFtZSI6ICJicmV0b25zayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJiZyIsCiAgICAgICJuYW1lIjogImJ1bGdhcnNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImJ1YSIsCiAgICAgICJuYW1lIjogImJ1cmphdGlzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJteSIsCiAgICAgICJuYW1lIjogImJ1cm1lc2lzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJjZWIiLAogICAgICAibmFtZSI6ICJjZWJ1YW5vIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImNoIiwKICAgICAgIm5hbWUiOiAiY2hhbW9ycm8iCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAibnkiLAogICAgICAibmFtZSI6ICJjaGljaGV3YSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJkYSIsCiAgICAgICJuYW1lIjogImRhbnNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImZhLUFGIiwKICAgICAgIm5hbWUiOiAiZGFyaSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJkdiIsCiAgICAgICJuYW1lIjogImRoaXZlaGkiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiZGluIiwKICAgICAgIm5hbWUiOiAiZGlua2EiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiZG9pIiwKICAgICAgIm5hbWUiOiAiZG9ncmkiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiZG92IiwKICAgICAgIm5hbWUiOiAiZG9tYmUiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiZHl1IiwKICAgICAgIm5hbWUiOiAiRHl1bGEiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiZHoiLAogICAgICAibmFtZSI6ICJkem9uZ2toYSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJlbiIsCiAgICAgICJuYW1lIjogImVuZ2Vsc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiZW8iLAogICAgICAibmFtZSI6ICJlc3BlcmFudG8iCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiZXQiLAogICAgICAibmFtZSI6ICJlc3Rpc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiZWUiLAogICAgICAibmFtZSI6ICJld2UiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiZmEiLAogICAgICAibmFtZSI6ICJmYXJzaSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJmaiIsCiAgICAgICJuYW1lIjogImZpamlhbnNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImZpIiwKICAgICAgIm5hbWUiOiAiZmluc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiZm9uIiwKICAgICAgIm5hbWUiOiAiZm9uIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImZyIiwKICAgICAgIm5hbWUiOiAiZnJhbnNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImZyLUNBIiwKICAgICAgIm5hbWUiOiAiRnJhbnNrIChDYW5hZGEpIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImZ5IiwKICAgICAgIm5hbWUiOiAiZnJpc2lzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJmdXIiLAogICAgICAibmFtZSI6ICJmcml1bGlzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJmZiIsCiAgICAgICJuYW1lIjogImZ1bGZ1bGRlIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImZvIiwKICAgICAgIm5hbWUiOiAiZsOmcsO4eXNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImdsIiwKICAgICAgIm5hbWUiOiAiZ2FsaXNpc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAia2EiLAogICAgICAibmFtZSI6ICJnZW9yZ2lzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJlbCIsCiAgICAgICJuYW1lIjogImdyZXNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImduIiwKICAgICAgIm5hbWUiOiAiZ3VhcmFuw60iCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiZ3UiLAogICAgICAibmFtZSI6ICJndWphcmF0aSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJnYWEiLAogICAgICAibmFtZSI6ICJnYWEiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiY25oIiwKICAgICAgIm5hbWUiOiAiaGFraGEgY2hpbiIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJoYSIsCiAgICAgICJuYW1lIjogImhhdXNhIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImhhdyIsCiAgICAgICJuYW1lIjogImhhd2FpaXNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogIml3IiwKICAgICAgIm5hbWUiOiAiaGVicmFpc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiaGlsIiwKICAgICAgIm5hbWUiOiAiaGlsaWdheW5vbiIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJoaSIsCiAgICAgICJuYW1lIjogImhpbmRpIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImhtbiIsCiAgICAgICJuYW1lIjogImhtb25nIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImhyeCIsCiAgICAgICJuYW1lIjogImh1bnNyaWsiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiYmUiLAogICAgICAibmFtZSI6ICJodml0ZXJ1c3Npc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiaWJhIiwKICAgICAgIm5hbWUiOiAiaWJhbiIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJpZyIsCiAgICAgICJuYW1lIjogImlnYm8iCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiaWxvIiwKICAgICAgIm5hbWUiOiAiaWxva2FubyIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJpZCIsCiAgICAgICJuYW1lIjogImluZG9uZXNpc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiaXUtTGF0biIsCiAgICAgICJuYW1lIjogIkludWt0aXR1dCAobGF0aW5zaykiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiaXUiLAogICAgICAibmFtZSI6ICJJbnVrdGl0dXQgKHN0YXZlbHNlKSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJnYSIsCiAgICAgICJuYW1lIjogImlyc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiaXMiLAogICAgICAibmFtZSI6ICJpc2xhbmRzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJpdCIsCiAgICAgICJuYW1lIjogIml0YWxpZW5zayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJzYWgiLAogICAgICAibmFtZSI6ICJqYWt1dGlzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJqYW0iLAogICAgICAibmFtZSI6ICJqYW1haWNhbnNrIHBhdG9pcyIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJqYSIsCiAgICAgICJuYW1lIjogImphcGFuc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAianciLAogICAgICAibmFtZSI6ICJqYXZhbmVzaXNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogInlpIiwKICAgICAgIm5hbWUiOiAiamlkZGlzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJrYWMiLAogICAgICAibmFtZSI6ICJqaW5ncG8iCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAieW8iLAogICAgICAibmFtZSI6ICJqb3J1YmEiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAia2wiLAogICAgICAibmFtZSI6ICJrYWxhYWxsaXN1dCIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJrbiIsCiAgICAgICJuYW1lIjogImthbm5hZGEiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAieXVlIiwKICAgICAgIm5hbWUiOiAia2FudG9uZXNpc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAia3IiLAogICAgICAibmFtZSI6ICJrYW51cmkiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAicGFtIiwKICAgICAgIm5hbWUiOiAia2FwYW1wYW5nYW4iCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAia2siLAogICAgICAibmFtZSI6ICJrYXNha2hpc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiY2EiLAogICAgICAibmFtZSI6ICJrYXRhbGFuc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAia2VrIiwKICAgICAgIm5hbWUiOiAia2VrY2hpIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImtoYSIsCiAgICAgICJuYW1lIjogImtoYXNpIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImttIiwKICAgICAgIm5hbWUiOiAia2htZXIiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiY2dnIiwKICAgICAgIm5hbWUiOiAia2lnYSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJrZyIsCiAgICAgICJuYW1lIjogImtpa29uZ28iCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiemgtQ04iLAogICAgICAibmFtZSI6ICJraW5lc2lzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJydyIsCiAgICAgICJuYW1lIjogImtpbnlhcndhbmRhIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImt5IiwKICAgICAgIm5hbWUiOiAia2lyZ2lzaXNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogInJuIiwKICAgICAgIm5hbWUiOiAia2lydW5kaSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJrdHUiLAogICAgICAibmFtZSI6ICJraXR1YmEiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAidHJwIiwKICAgICAgIm5hbWUiOiAia29rYm9yb2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAia3YiLAogICAgICAibmFtZSI6ICJrb21pIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImdvbSIsCiAgICAgICJuYW1lIjogImtvbmthbmkiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAia28iLAogICAgICAibmFtZSI6ICJrb3JlYW5zayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJjbyIsCiAgICAgICJuYW1lIjogImtvcnNpa2Fuc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiaHQiLAogICAgICAibmFtZSI6ICJrcmVvbCAoSGFpdGkpIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImNycyIsCiAgICAgICJuYW1lIjogImtyZW9sIChTZXljaGVsbGVuZSkiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiY3JoIiwKICAgICAgIm5hbWUiOiAiS3JpbXRhdGFyaXNrIChreXJpbGxpc2spIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImNyaC1MYXRuIiwKICAgICAgIm5hbWUiOiAiS3JpbXRhdGFyaXNrIChsYXRpbnNrKSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJrcmkiLAogICAgICAibmFtZSI6ICJrcmlvIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImhyIiwKICAgICAgIm5hbWUiOiAia3JvYXRpc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAia3UiLAogICAgICAibmFtZSI6ICJrdXJkaXNrIChrdXJtYW5qaSkiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiY2tiIiwKICAgICAgIm5hbWUiOiAia3VyZGlzayAoc29yYW5pKSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJsbyIsCiAgICAgICJuYW1lIjogImxhb3Rpc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAibHRnIiwKICAgICAgIm5hbWUiOiAibGF0Z2FsaXNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImxhIiwKICAgICAgIm5hbWUiOiAibGF0aW4iCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAibHYiLAogICAgICAibmFtZSI6ICJsYXR2aXNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImxpaiIsCiAgICAgICJuYW1lIjogImxpZ3VyaXNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImxpIiwKICAgICAgIm5hbWUiOiAibGltYnVyZ3NrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImxuIiwKICAgICAgIm5hbWUiOiAibGluZ2FsYSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJsdCIsCiAgICAgICJuYW1lIjogImxpdGF1aXNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImxtbyIsCiAgICAgICJuYW1lIjogImxvbWJhcmRpc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAibGciLAogICAgICAibmFtZSI6ICJsdWdhbmRhIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImx1byIsCiAgICAgICJuYW1lIjogImx1byIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJsYiIsCiAgICAgICJuYW1lIjogImx1eGVtYm91cmdzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJtZyIsCiAgICAgICJuYW1lIjogIm1hZGFnYXNzaXNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogIm1hZCIsCiAgICAgICJuYW1lIjogIm1hZHVyZXNpc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAibWFpIiwKICAgICAgIm5hbWUiOiAibWFpdGhpbGkiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAibWFrIiwKICAgICAgIm5hbWUiOiAiTWFrYXNzYXIiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAibWsiLAogICAgICAibmFtZSI6ICJtYWtlZG9uc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAibWwiLAogICAgICAibmFtZSI6ICJtYWxheWFsYW0iCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAibXMiLAogICAgICAibmFtZSI6ICJtYWxheWlzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJtcy1BcmFiIiwKICAgICAgIm5hbWUiOiAibWFsYXlpc2sgKGphd2kpIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogIm10IiwKICAgICAgIm5hbWUiOiAibWFsdGVzaXNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogIm1hbSIsCiAgICAgICJuYW1lIjogIm1hbSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJndiIsCiAgICAgICJuYW1lIjogIm1hbnNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogIm1pIiwKICAgICAgIm5hbWUiOiAibWFvcmkiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAibXIiLAogICAgICAibmFtZSI6ICJtYXJhdGhpIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogIm1oIiwKICAgICAgIm5hbWUiOiAibWFyc2hhbGxlc2lzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJtd3IiLAogICAgICAibmFtZSI6ICJtYXJ3YWRpIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogIm1mZSIsCiAgICAgICJuYW1lIjogIm1hdXJpdGlzayBrcmVvbCIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJtbmktTXRlaSIsCiAgICAgICJuYW1lIjogIm1laXRlaWxvbiAobWFuaXB1cmkpIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogIm1pbiIsCiAgICAgICJuYW1lIjogIm1pbmFuZyIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJsdXMiLAogICAgICAibmFtZSI6ICJtaXpvIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogIm1uIiwKICAgICAgIm5hbWUiOiAibW9uZ29sc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAibmhlIiwKICAgICAgIm5hbWUiOiAibmFodWF0bCAow7hzdGxpZ2UgSHVhc3RlY2EpIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogIm5kYy1aVyIsCiAgICAgICJuYW1lIjogIm5kYXUiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAibnIiLAogICAgICAibmFtZSI6ICJuZGViZWxlIChzw7hyKSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJubCIsCiAgICAgICJuYW1lIjogIm5lZGVybGFuZHNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogIm5ldyIsCiAgICAgICJuYW1lIjogIk5lcGFsIGJoYXNhIChuZXdhcmkpIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogIm5lIiwKICAgICAgIm5hbWUiOiAibmVwYWxzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJibS1Oa29vIiwKICAgICAgIm5hbWUiOiAiTktvIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogIm5vIiwKICAgICAgIm5hbWUiOiAibm9yc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAibnVzIiwKICAgICAgIm5hbWUiOiAibnVlciIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJvYyIsCiAgICAgICJuYW1lIjogIm9rc2l0YW5zayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJvciIsCiAgICAgICJuYW1lIjogIm9yaXlhIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogIm9tIiwKICAgICAgIm5hbWUiOiAib3JvbW8iCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAib3MiLAogICAgICAibmFtZSI6ICJvc3NldGlzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJwYWciLAogICAgICAibmFtZSI6ICJwYW5nYXNpbmFuIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogInBhIiwKICAgICAgIm5hbWUiOiAiUGFuamFiaSAoZ3VybXVraGkpIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogInBhLUFyYWIiLAogICAgICAibmFtZSI6ICJwYW5qYWJpIChzaGFobXVraGkpIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogInBhcCIsCiAgICAgICJuYW1lIjogInBhcGlhbWVudG8iCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAicHMiLAogICAgICAibmFtZSI6ICJwYXNodG8iCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAicGwiLAogICAgICAibmFtZSI6ICJwb2xzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJwdCIsCiAgICAgICJuYW1lIjogInBvcnR1Z2lzaXNrIChCcmFzaWwpIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogInB0LVBUIiwKICAgICAgIm5hbWUiOiAicG9ydHVnaXNpc2sgKFBvcnR1Z2FsKSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJxdSIsCiAgICAgICJuYW1lIjogInF1ZWNodWEiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAicm9tIiwKICAgICAgIm5hbWUiOiAicm9tYW5pIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogInJvIiwKICAgICAgIm5hbWUiOiAicnVtZW5zayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJydSIsCiAgICAgICJuYW1lIjogInJ1c3Npc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAic2UiLAogICAgICAibmFtZSI6ICJzYW1pc2sgKG5vcmQpIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogInNtIiwKICAgICAgIm5hbWUiOiAic2Ftb2Fuc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAic2ciLAogICAgICAibmFtZSI6ICJzYW5nbyIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJzYSIsCiAgICAgICJuYW1lIjogInNhbnNrcml0IgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogInNhdC1MYXRuIiwKICAgICAgIm5hbWUiOiAiU2FudGFsaSAobGF0aW5zaykiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAic2F0IiwKICAgICAgIm5hbWUiOiAiU2FudGFsaSAob2wgY2hpa2kpIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogInN6bCIsCiAgICAgICJuYW1lIjogInNjaGxlc2lzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJuc28iLAogICAgICAibmFtZSI6ICJzZXBlZGkiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAic3IiLAogICAgICAibmFtZSI6ICJzZXJiaXNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogInNobiIsCiAgICAgICJuYW1lIjogInNoYW4iCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAic24iLAogICAgICAibmFtZSI6ICJzaG9uYSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJzY24iLAogICAgICAibmFtZSI6ICJzaWNpbGlhbnNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogInNkIiwKICAgICAgIm5hbWUiOiAic2luZGhpIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogInNpIiwKICAgICAgIm5hbWUiOiAic2luZ2FsZXNpc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiZ2QiLAogICAgICAibmFtZSI6ICJza290c2sgZ8OmbGlzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJzayIsCiAgICAgICJuYW1lIjogInNsb3Zha2lzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJzbCIsCiAgICAgICJuYW1lIjogInNsb3ZlbnNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogInNvIiwKICAgICAgIm5hbWUiOiAic29tYWxpIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogInN0IiwKICAgICAgIm5hbWUiOiAic290aG8iCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiZXMiLAogICAgICAibmFtZSI6ICJzcGFuc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAic3UiLAogICAgICAibmFtZSI6ICJzdW5kYW5lc2lzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJzdXMiLAogICAgICAibmFtZSI6ICJzdXN1IgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogInN2IiwKICAgICAgIm5hbWUiOiAic3ZlbnNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogInN3IiwKICAgICAgIm5hbWUiOiAic3dhaGlsaSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJzcyIsCiAgICAgICJuYW1lIjogInN3YXRpIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogInRnIiwKICAgICAgIm5hbWUiOiAidGFkc2ppa2lzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJ0bCIsCiAgICAgICJuYW1lIjogInRhZ2Fsb2ciCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAidHkiLAogICAgICAibmFtZSI6ICJ0YWhpdGlzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJiZXItTGF0biIsCiAgICAgICJuYW1lIjogInRhbWF6aWdodCIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJiZXIiLAogICAgICAibmFtZSI6ICJ0YW1hemlnaHQgKHRpZmluYWdoKSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJ0YSIsCiAgICAgICJuYW1lIjogInRhbWlsIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogInR0IiwKICAgICAgIm5hbWUiOiAidGF0YXJpc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAidGUiLAogICAgICAibmFtZSI6ICJ0ZWx1Z3UiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAidGV0IiwKICAgICAgIm5hbWUiOiAidGV0dW0iCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAidGgiLAogICAgICAibmFtZSI6ICJ0aGFpIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImJvIiwKICAgICAgIm5hbWUiOiAidGliZXRhbnNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogInRpIiwKICAgICAgIm5hbWUiOiAidGlncmluamEiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAidGl2IiwKICAgICAgIm5hbWUiOiAidGl2IgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogInRwaSIsCiAgICAgICJuYW1lIjogInRvayBwaXNpbiIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJ0byIsCiAgICAgICJuYW1lIjogInRvbmdhbnNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImx1YSIsCiAgICAgICJuYW1lIjogInRzaGlsdWJhIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImNzIiwKICAgICAgIm5hbWUiOiAidHNqZWtraXNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImNlIiwKICAgICAgIm5hbWUiOiAidHNqZXRzamVuc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiY2hrIiwKICAgICAgIm5hbWUiOiAidHNqdWt0c2ppc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiY3YiLAogICAgICAibmFtZSI6ICJ0c2p1dmFzamlzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJ0cyIsCiAgICAgICJuYW1lIjogInRzb25nYSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJ0biIsCiAgICAgICJuYW1lIjogInRzd2FuYSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJ0Y3kiLAogICAgICAibmFtZSI6ICJ0dWx1IgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogInR1bSIsCiAgICAgICJuYW1lIjogInR1bWJ1a2EiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAidGsiLAogICAgICAibmFtZSI6ICJ0dXJrbWVuc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAidHl2IiwKICAgICAgIm5hbWUiOiAidHV2aW5zayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJhayIsCiAgICAgICJuYW1lIjogInR3aSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJ0ciIsCiAgICAgICJuYW1lIjogInR5cmtpc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiZGUiLAogICAgICAibmFtZSI6ICJ0eXNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogInVkbSIsCiAgICAgICJuYW1lIjogInVkbXVydGlzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJ1ZyIsCiAgICAgICJuYW1lIjogInVpZ3VyaXNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogInVrIiwKICAgICAgIm5hbWUiOiAidWtyYWluc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiaHUiLAogICAgICAibmFtZSI6ICJ1bmdhcnNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogInVyIiwKICAgICAgIm5hbWUiOiAidXJkdSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJ1eiIsCiAgICAgICJuYW1lIjogInVzYmVraXNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogInZlIiwKICAgICAgIm5hbWUiOiAidmVuZGEiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAidmVjIiwKICAgICAgIm5hbWUiOiAidmVuZXRpYW5zayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJ2aSIsCiAgICAgICJuYW1lIjogInZpZXRuYW1lc2lzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJjeSIsCiAgICAgICJuYW1lIjogIndhbGlzaXNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogIndhciIsCiAgICAgICJuYW1lIjogIndhcmF5LXdhcmF5IgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogIndvIiwKICAgICAgIm5hbWUiOiAid29sb2YiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAieGgiLAogICAgICAibmFtZSI6ICJ4aG9zYSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJ5dWEiLAogICAgICAibmFtZSI6ICJ5dWthdGFuc2sgbWF5YSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJ6YXAiLAogICAgICAibmFtZSI6ICJ6YXBvdGVjIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogInp1IiwKICAgICAgIm5hbWUiOiAienVsdSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJjaG0iLAogICAgICAibmFtZSI6ICLDuHN0bWFyaXNrIgogICAgfQogIF0sCiAgInRhcmdldExhbmd1YWdlcyI6IFsKICAgIHsKICAgICAgImxhbmd1YWdlIjogImFiIiwKICAgICAgIm5hbWUiOiAiYWJraGFzaXNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImFjZSIsCiAgICAgICJuYW1lIjogImFjZWhuZXNpc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiYWNoIiwKICAgICAgIm5hbWUiOiAiYWNob2xpIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImFhIiwKICAgICAgIm5hbWUiOiAiYWZhciIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJhZiIsCiAgICAgICJuYW1lIjogImFmcmlrYWFucyIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJzcSIsCiAgICAgICJuYW1lIjogImFsYmFuc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiYWx6IiwKICAgICAgIm5hbWUiOiAiYWx1ciIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJhbSIsCiAgICAgICJuYW1lIjogImFtaGFyaXNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImFyIiwKICAgICAgIm5hbWUiOiAiYXJhYmlzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJoeSIsCiAgICAgICJuYW1lIjogImFybWVuc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiYXoiLAogICAgICAibmFtZSI6ICJhc2VyYmFqZHNqYW5zayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJhcyIsCiAgICAgICJuYW1lIjogImFzc2FtZXNpc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiYXYiLAogICAgICAibmFtZSI6ICJhdmFyaXNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImF3YSIsCiAgICAgICJuYW1lIjogImF3YWRoaSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJheSIsCiAgICAgICJuYW1lIjogImF5bWFyYSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJiYW4iLAogICAgICAibmFtZSI6ICJiYWxpbmVzaXNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImJhbCIsCiAgICAgICJuYW1lIjogImJhbHV0c2ppIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImJtIiwKICAgICAgIm5hbWUiOiAiYmFtYmFyYSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJiY2kiLAogICAgICAibmFtZSI6ICJiYW91bMOpIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImJhIiwKICAgICAgIm5hbWUiOiAiYmFzamtpcnNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImV1IiwKICAgICAgIm5hbWUiOiAiYmFza2lzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJidHgiLAogICAgICAibmFtZSI6ICJiYXRhayBrYXJvIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImJ0cyIsCiAgICAgICJuYW1lIjogImJhdGFrIHNpbWFsdW5ndW4iCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiYmJjIiwKICAgICAgIm5hbWUiOiAiYmF0YWsgdG9iYSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJiZW0iLAogICAgICAibmFtZSI6ICJiZW1iYSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJibiIsCiAgICAgICJuYW1lIjogImJlbmdhbGkiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiYmV3IiwKICAgICAgIm5hbWUiOiAiYmV0YXdpIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImJobyIsCiAgICAgICJuYW1lIjogImJob2pwdXJpIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImJpayIsCiAgICAgICJuYW1lIjogImJpa29sIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImJzIiwKICAgICAgIm5hbWUiOiAiYm9zbmlzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJiciIsCiAgICAgICJuYW1lIjogImJyZXRvbnNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImJnIiwKICAgICAgIm5hbWUiOiAiYnVsZ2Fyc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiYnVhIiwKICAgICAgIm5hbWUiOiAiYnVyamF0aXNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogIm15IiwKICAgICAgIm5hbWUiOiAiYnVybWVzaXNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImNlYiIsCiAgICAgICJuYW1lIjogImNlYnVhbm8iCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiY2giLAogICAgICAibmFtZSI6ICJjaGFtb3JybyIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJueSIsCiAgICAgICJuYW1lIjogImNoaWNoZXdhIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImRhIiwKICAgICAgIm5hbWUiOiAiZGFuc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiZmEtQUYiLAogICAgICAibmFtZSI6ICJkYXJpIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImR2IiwKICAgICAgIm5hbWUiOiAiZGhpdmVoaSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJkaW4iLAogICAgICAibmFtZSI6ICJkaW5rYSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJkb2kiLAogICAgICAibmFtZSI6ICJkb2dyaSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJkb3YiLAogICAgICAibmFtZSI6ICJkb21iZSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJkeXUiLAogICAgICAibmFtZSI6ICJEeXVsYSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJkeiIsCiAgICAgICJuYW1lIjogImR6b25na2hhIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImVuIiwKICAgICAgIm5hbWUiOiAiZW5nZWxzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJlbyIsCiAgICAgICJuYW1lIjogImVzcGVyYW50byIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJldCIsCiAgICAgICJuYW1lIjogImVzdGlzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJlZSIsCiAgICAgICJuYW1lIjogImV3ZSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJmYSIsCiAgICAgICJuYW1lIjogImZhcnNpIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImZqIiwKICAgICAgIm5hbWUiOiAiZmlqaWFuc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiZmkiLAogICAgICAibmFtZSI6ICJmaW5zayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJmb24iLAogICAgICAibmFtZSI6ICJmb24iCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiZnIiLAogICAgICAibmFtZSI6ICJmcmFuc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiZnItQ0EiLAogICAgICAibmFtZSI6ICJGcmFuc2sgKENhbmFkYSkiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiZnkiLAogICAgICAibmFtZSI6ICJmcmlzaXNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImZ1ciIsCiAgICAgICJuYW1lIjogImZyaXVsaXNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImZmIiwKICAgICAgIm5hbWUiOiAiZnVsZnVsZGUiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiZm8iLAogICAgICAibmFtZSI6ICJmw6Zyw7h5c2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiZ2wiLAogICAgICAibmFtZSI6ICJnYWxpc2lzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJrYSIsCiAgICAgICJuYW1lIjogImdlb3JnaXNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImVsIiwKICAgICAgIm5hbWUiOiAiZ3Jlc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiZ24iLAogICAgICAibmFtZSI6ICJndWFyYW7DrSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJndSIsCiAgICAgICJuYW1lIjogImd1amFyYXRpIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImdhYSIsCiAgICAgICJuYW1lIjogImdhYSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJjbmgiLAogICAgICAibmFtZSI6ICJoYWtoYSBjaGluIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImhhIiwKICAgICAgIm5hbWUiOiAiaGF1c2EiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiaGF3IiwKICAgICAgIm5hbWUiOiAiaGF3YWlpc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiaXciLAogICAgICAibmFtZSI6ICJoZWJyYWlzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJoaWwiLAogICAgICAibmFtZSI6ICJoaWxpZ2F5bm9uIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImhpIiwKICAgICAgIm5hbWUiOiAiaGluZGkiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiaG1uIiwKICAgICAgIm5hbWUiOiAiaG1vbmciCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiaHJ4IiwKICAgICAgIm5hbWUiOiAiaHVuc3JpayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJiZSIsCiAgICAgICJuYW1lIjogImh2aXRlcnVzc2lzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJpYmEiLAogICAgICAibmFtZSI6ICJpYmFuIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImlnIiwKICAgICAgIm5hbWUiOiAiaWdibyIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJpbG8iLAogICAgICAibmFtZSI6ICJpbG9rYW5vIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImlkIiwKICAgICAgIm5hbWUiOiAiaW5kb25lc2lzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJpdS1MYXRuIiwKICAgICAgIm5hbWUiOiAiSW51a3RpdHV0IChsYXRpbnNrKSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJpdSIsCiAgICAgICJuYW1lIjogIkludWt0aXR1dCAoc3RhdmVsc2UpIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImdhIiwKICAgICAgIm5hbWUiOiAiaXJzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJpcyIsCiAgICAgICJuYW1lIjogImlzbGFuZHNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogIml0IiwKICAgICAgIm5hbWUiOiAiaXRhbGllbnNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogInNhaCIsCiAgICAgICJuYW1lIjogImpha3V0aXNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImphbSIsCiAgICAgICJuYW1lIjogImphbWFpY2Fuc2sgcGF0b2lzIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImphIiwKICAgICAgIm5hbWUiOiAiamFwYW5zayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJqdyIsCiAgICAgICJuYW1lIjogImphdmFuZXNpc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAieWkiLAogICAgICAibmFtZSI6ICJqaWRkaXNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImthYyIsCiAgICAgICJuYW1lIjogImppbmdwbyIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJ5byIsCiAgICAgICJuYW1lIjogImpvcnViYSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJrbCIsCiAgICAgICJuYW1lIjogImthbGFhbGxpc3V0IgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImtuIiwKICAgICAgIm5hbWUiOiAia2FubmFkYSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJ5dWUiLAogICAgICAibmFtZSI6ICJrYW50b25lc2lzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJrciIsCiAgICAgICJuYW1lIjogImthbnVyaSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJwYW0iLAogICAgICAibmFtZSI6ICJrYXBhbXBhbmdhbiIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJrayIsCiAgICAgICJuYW1lIjogImthc2FraGlzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJjYSIsCiAgICAgICJuYW1lIjogImthdGFsYW5zayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJrZWsiLAogICAgICAibmFtZSI6ICJrZWtjaGkiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAia2hhIiwKICAgICAgIm5hbWUiOiAia2hhc2kiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAia20iLAogICAgICAibmFtZSI6ICJraG1lciIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJjZ2ciLAogICAgICAibmFtZSI6ICJraWdhIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImtnIiwKICAgICAgIm5hbWUiOiAia2lrb25nbyIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJ6aC1DTiIsCiAgICAgICJuYW1lIjogImtpbmVzaXNrIChmb3JlbmtsZXQpIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogInpoLVRXIiwKICAgICAgIm5hbWUiOiAia2luZXNpc2sgKHRyYWRpc2pvbmVsbCkiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAicnciLAogICAgICAibmFtZSI6ICJraW55YXJ3YW5kYSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJreSIsCiAgICAgICJuYW1lIjogImtpcmdpc2lzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJybiIsCiAgICAgICJuYW1lIjogImtpcnVuZGkiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAia3R1IiwKICAgICAgIm5hbWUiOiAia2l0dWJhIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogInRycCIsCiAgICAgICJuYW1lIjogImtva2Jvcm9rIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImt2IiwKICAgICAgIm5hbWUiOiAia29taSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJnb20iLAogICAgICAibmFtZSI6ICJrb25rYW5pIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImtvIiwKICAgICAgIm5hbWUiOiAia29yZWFuc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiY28iLAogICAgICAibmFtZSI6ICJrb3JzaWthbnNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImh0IiwKICAgICAgIm5hbWUiOiAia3Jlb2wgKEhhaXRpKSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJjcnMiLAogICAgICAibmFtZSI6ICJrcmVvbCAoU2V5Y2hlbGxlbmUpIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImNyaCIsCiAgICAgICJuYW1lIjogIktyaW10YXRhcmlzayAoa3lyaWxsaXNrKSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJjcmgtTGF0biIsCiAgICAgICJuYW1lIjogIktyaW10YXRhcmlzayAobGF0aW5zaykiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAia3JpIiwKICAgICAgIm5hbWUiOiAia3JpbyIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJociIsCiAgICAgICJuYW1lIjogImtyb2F0aXNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImt1IiwKICAgICAgIm5hbWUiOiAia3VyZGlzayAoa3VybWFuamkpIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImNrYiIsCiAgICAgICJuYW1lIjogImt1cmRpc2sgKHNvcmFuaSkiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAibG8iLAogICAgICAibmFtZSI6ICJsYW90aXNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImx0ZyIsCiAgICAgICJuYW1lIjogImxhdGdhbGlzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJsYSIsCiAgICAgICJuYW1lIjogImxhdGluIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImx2IiwKICAgICAgIm5hbWUiOiAibGF0dmlzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJsaWoiLAogICAgICAibmFtZSI6ICJsaWd1cmlzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJsaSIsCiAgICAgICJuYW1lIjogImxpbWJ1cmdzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJsbiIsCiAgICAgICJuYW1lIjogImxpbmdhbGEiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAibHQiLAogICAgICAibmFtZSI6ICJsaXRhdWlzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJsbW8iLAogICAgICAibmFtZSI6ICJsb21iYXJkaXNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImxnIiwKICAgICAgIm5hbWUiOiAibHVnYW5kYSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJsdW8iLAogICAgICAibmFtZSI6ICJsdW8iCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAibGIiLAogICAgICAibmFtZSI6ICJsdXhlbWJvdXJnc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAibWciLAogICAgICAibmFtZSI6ICJtYWRhZ2Fzc2lzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJtYWQiLAogICAgICAibmFtZSI6ICJtYWR1cmVzaXNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogIm1haSIsCiAgICAgICJuYW1lIjogIm1haXRoaWxpIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogIm1hayIsCiAgICAgICJuYW1lIjogIk1ha2Fzc2FyIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogIm1rIiwKICAgICAgIm5hbWUiOiAibWFrZWRvbnNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogIm1sIiwKICAgICAgIm5hbWUiOiAibWFsYXlhbGFtIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogIm1zIiwKICAgICAgIm5hbWUiOiAibWFsYXlpc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAibXMtQXJhYiIsCiAgICAgICJuYW1lIjogIm1hbGF5aXNrIChqYXdpKSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJtdCIsCiAgICAgICJuYW1lIjogIm1hbHRlc2lzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJtYW0iLAogICAgICAibmFtZSI6ICJtYW0iCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiZ3YiLAogICAgICAibmFtZSI6ICJtYW5zayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJtaSIsCiAgICAgICJuYW1lIjogIm1hb3JpIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogIm1yIiwKICAgICAgIm5hbWUiOiAibWFyYXRoaSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJtaCIsCiAgICAgICJuYW1lIjogIm1hcnNoYWxsZXNpc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAibXdyIiwKICAgICAgIm5hbWUiOiAibWFyd2FkaSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJtZmUiLAogICAgICAibmFtZSI6ICJtYXVyaXRpc2sga3Jlb2wiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAibW5pLU10ZWkiLAogICAgICAibmFtZSI6ICJtZWl0ZWlsb24gKG1hbmlwdXJpKSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJtaW4iLAogICAgICAibmFtZSI6ICJtaW5hbmciCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAibHVzIiwKICAgICAgIm5hbWUiOiAibWl6byIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJtbiIsCiAgICAgICJuYW1lIjogIm1vbmdvbHNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogIm5oZSIsCiAgICAgICJuYW1lIjogIm5haHVhdGwgKMO4c3RsaWdlIEh1YXN0ZWNhKSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJuZGMtWlciLAogICAgICAibmFtZSI6ICJuZGF1IgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogIm5yIiwKICAgICAgIm5hbWUiOiAibmRlYmVsZSAoc8O4cikiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAibmwiLAogICAgICAibmFtZSI6ICJuZWRlcmxhbmRzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJuZXciLAogICAgICAibmFtZSI6ICJOZXBhbCBiaGFzYSAobmV3YXJpKSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJuZSIsCiAgICAgICJuYW1lIjogIm5lcGFsc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiYm0tTmtvbyIsCiAgICAgICJuYW1lIjogIk5LbyIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJubyIsCiAgICAgICJuYW1lIjogIm5vcnNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogIm51cyIsCiAgICAgICJuYW1lIjogIm51ZXIiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAib2MiLAogICAgICAibmFtZSI6ICJva3NpdGFuc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAib3IiLAogICAgICAibmFtZSI6ICJvcml5YSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJvbSIsCiAgICAgICJuYW1lIjogIm9yb21vIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogIm9zIiwKICAgICAgIm5hbWUiOiAib3NzZXRpc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAicGFnIiwKICAgICAgIm5hbWUiOiAicGFuZ2FzaW5hbiIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJwYSIsCiAgICAgICJuYW1lIjogIlBhbmphYmkgKGd1cm11a2hpKSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJwYS1BcmFiIiwKICAgICAgIm5hbWUiOiAicGFuamFiaSAoc2hhaG11a2hpKSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJwYXAiLAogICAgICAibmFtZSI6ICJwYXBpYW1lbnRvIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogInBzIiwKICAgICAgIm5hbWUiOiAicGFzaHRvIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogInBsIiwKICAgICAgIm5hbWUiOiAicG9sc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAicHQiLAogICAgICAibmFtZSI6ICJwb3J0dWdpc2lzayAoQnJhc2lsKSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJwdC1QVCIsCiAgICAgICJuYW1lIjogInBvcnR1Z2lzaXNrIChQb3J0dWdhbCkiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAicXUiLAogICAgICAibmFtZSI6ICJxdWVjaHVhIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogInJvbSIsCiAgICAgICJuYW1lIjogInJvbWFuaSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJybyIsCiAgICAgICJuYW1lIjogInJ1bWVuc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAicnUiLAogICAgICAibmFtZSI6ICJydXNzaXNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogInNlIiwKICAgICAgIm5hbWUiOiAic2FtaXNrIChub3JkKSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJzbSIsCiAgICAgICJuYW1lIjogInNhbW9hbnNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogInNnIiwKICAgICAgIm5hbWUiOiAic2FuZ28iCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAic2EiLAogICAgICAibmFtZSI6ICJzYW5za3JpdCIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJzYXQtTGF0biIsCiAgICAgICJuYW1lIjogIlNhbnRhbGkgKGxhdGluc2spIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogInNhdCIsCiAgICAgICJuYW1lIjogIlNhbnRhbGkgKG9sIGNoaWtpKSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJzemwiLAogICAgICAibmFtZSI6ICJzY2hsZXNpc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAibnNvIiwKICAgICAgIm5hbWUiOiAic2VwZWRpIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogInNyIiwKICAgICAgIm5hbWUiOiAic2VyYmlzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJzaG4iLAogICAgICAibmFtZSI6ICJzaGFuIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogInNuIiwKICAgICAgIm5hbWUiOiAic2hvbmEiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAic2NuIiwKICAgICAgIm5hbWUiOiAic2ljaWxpYW5zayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJzZCIsCiAgICAgICJuYW1lIjogInNpbmRoaSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJzaSIsCiAgICAgICJuYW1lIjogInNpbmdhbGVzaXNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImdkIiwKICAgICAgIm5hbWUiOiAic2tvdHNrIGfDpmxpc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAic2siLAogICAgICAibmFtZSI6ICJzbG92YWtpc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAic2wiLAogICAgICAibmFtZSI6ICJzbG92ZW5zayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJzbyIsCiAgICAgICJuYW1lIjogInNvbWFsaSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJzdCIsCiAgICAgICJuYW1lIjogInNvdGhvIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImVzIiwKICAgICAgIm5hbWUiOiAic3BhbnNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogInN1IiwKICAgICAgIm5hbWUiOiAic3VuZGFuZXNpc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAic3VzIiwKICAgICAgIm5hbWUiOiAic3VzdSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJzdiIsCiAgICAgICJuYW1lIjogInN2ZW5zayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJzdyIsCiAgICAgICJuYW1lIjogInN3YWhpbGkiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAic3MiLAogICAgICAibmFtZSI6ICJzd2F0aSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJ0ZyIsCiAgICAgICJuYW1lIjogInRhZHNqaWtpc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAidGwiLAogICAgICAibmFtZSI6ICJ0YWdhbG9nIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogInR5IiwKICAgICAgIm5hbWUiOiAidGFoaXRpc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiYmVyLUxhdG4iLAogICAgICAibmFtZSI6ICJ0YW1hemlnaHQiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiYmVyIiwKICAgICAgIm5hbWUiOiAidGFtYXppZ2h0ICh0aWZpbmFnaCkiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAidGEiLAogICAgICAibmFtZSI6ICJ0YW1pbCIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJ0dCIsCiAgICAgICJuYW1lIjogInRhdGFyaXNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogInRlIiwKICAgICAgIm5hbWUiOiAidGVsdWd1IgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogInRldCIsCiAgICAgICJuYW1lIjogInRldHVtIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogInRoIiwKICAgICAgIm5hbWUiOiAidGhhaSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJibyIsCiAgICAgICJuYW1lIjogInRpYmV0YW5zayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJ0aSIsCiAgICAgICJuYW1lIjogInRpZ3JpbmphIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogInRpdiIsCiAgICAgICJuYW1lIjogInRpdiIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJ0cGkiLAogICAgICAibmFtZSI6ICJ0b2sgcGlzaW4iCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAidG8iLAogICAgICAibmFtZSI6ICJ0b25nYW5zayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJsdWEiLAogICAgICAibmFtZSI6ICJ0c2hpbHViYSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJjcyIsCiAgICAgICJuYW1lIjogInRzamVra2lzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJjZSIsCiAgICAgICJuYW1lIjogInRzamV0c2plbnNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImNoayIsCiAgICAgICJuYW1lIjogInRzanVrdHNqaXNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImN2IiwKICAgICAgIm5hbWUiOiAidHNqdXZhc2ppc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAidHMiLAogICAgICAibmFtZSI6ICJ0c29uZ2EiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAidG4iLAogICAgICAibmFtZSI6ICJ0c3dhbmEiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAidGN5IiwKICAgICAgIm5hbWUiOiAidHVsdSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJ0dW0iLAogICAgICAibmFtZSI6ICJ0dW1idWthIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogInRrIiwKICAgICAgIm5hbWUiOiAidHVya21lbnNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogInR5diIsCiAgICAgICJuYW1lIjogInR1dmluc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiYWsiLAogICAgICAibmFtZSI6ICJ0d2kiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAidHIiLAogICAgICAibmFtZSI6ICJ0eXJraXNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImRlIiwKICAgICAgIm5hbWUiOiAidHlzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJ1ZG0iLAogICAgICAibmFtZSI6ICJ1ZG11cnRpc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAidWciLAogICAgICAibmFtZSI6ICJ1aWd1cmlzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJ1ayIsCiAgICAgICJuYW1lIjogInVrcmFpbnNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImh1IiwKICAgICAgIm5hbWUiOiAidW5nYXJzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJ1ciIsCiAgICAgICJuYW1lIjogInVyZHUiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAidXoiLAogICAgICAibmFtZSI6ICJ1c2Jla2lzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJ2ZSIsCiAgICAgICJuYW1lIjogInZlbmRhIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogInZlYyIsCiAgICAgICJuYW1lIjogInZlbmV0aWFuc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAidmkiLAogICAgICAibmFtZSI6ICJ2aWV0bmFtZXNpc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiY3kiLAogICAgICAibmFtZSI6ICJ3YWxpc2lzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJ3YXIiLAogICAgICAibmFtZSI6ICJ3YXJheS13YXJheSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJ3byIsCiAgICAgICJuYW1lIjogIndvbG9mIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogInhoIiwKICAgICAgIm5hbWUiOiAieGhvc2EiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAieXVhIiwKICAgICAgIm5hbWUiOiAieXVrYXRhbnNrIG1heWEiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiemFwIiwKICAgICAgIm5hbWUiOiAiemFwb3RlYyIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJ6dSIsCiAgICAgICJuYW1lIjogInp1bHUiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiY2htIiwKICAgICAgIm5hbWUiOiAiw7hzdG1hcmlzayIKICAgIH0KICBdCn0KKTs="}},"time_used":58,"timings":{"blocked":0,"dns":2,"connect":8,"send":0,"wait":26,"receive":0,"ssl":22},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/14889.6210b1c56dc3b20c8ffb.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:13.925Z","timestamp":1785148033925,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/14889.6210b1c56dc3b20c8ffb.js HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:13 GMT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a61b1a8-5855\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Thu, 23 Jul 2026 06:16:08 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/23/2026 10:17:28\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 2a0f6100451b2dd71e27301b1c3f30b7\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":22613,"size_decoded":9336,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (3071)","md5":"18f15990d846223cca396c3c761972f1","sha1":"8dede85b8e37373abbd001b14678c4421d37fe66","sha256":"6ebf58b388094ec25d3a4ce00e5bba7428699a6d2ed1cbc9d3d0173cde200293","sha512":"ed8e626b0b1517a097135fc060afb74f6b2ac796367fe82d704bc3ac76c4bc0077eaae8e0310851b25c711abf13380f522a22440b5e027de37de8fbcd5f41878","ssdeep":"384:hH0ZXXyspmgswwUCsoMJRWF3WW/N9MNuV62dv4xCFwUCBxDgQm7ibLeDglZnquTq:RkdmgswwrsJDWF3/N+NuVD14ECBxDgQg","tlshash":"75a2e9997199a12456eb50ee503f0406f33a7905b014ad36f2acccde3aec94cb139bb9","first_seen":"2026-07-23T14:00:31.727085Z","last_seen":"2026-07-27T12:52:15.506419Z","times_seen":113,"resource_available":true,"data":"KHNlbGYud2VicGFja0NodW5rdHJhZGluZ3ZpZXc9c2VsZi53ZWJwYWNrQ2h1bmt0cmFkaW5ndmlld3x8W10pLnB1c2goW1sxNDg4OV0sezQ3MzE1OShlKXtlLmV4cG9ydHM9e2J1dHRvbjoiYnV0dG9uLW1MRWhDclZ3IixpY29uT25seToiaWNvbk9ubHktbUxFaENyVnciLHdpdGhTdGFydFNsb3Q6IndpdGhTdGFydFNsb3QtbUxFaENyVnciLHdpdGhFbmRTbG90OiJ3aXRoRW5kU2xvdC1tTEVoQ3JWdyIsc3RhcnRTbG90V3JhcDoic3RhcnRTbG90V3JhcC1tTEVoQ3JWdyIsZW5kU2xvdFdyYXA6ImVuZFNsb3RXcmFwLW1MRWhDclZ3Iix4c21hbGw6InhzbWFsbC1tTEVoQ3JWdyIsc21hbGw6InNtYWxsLW1MRWhDclZ3IixtZWRpdW06Im1lZGl1bS1tTEVoQ3JWdyIsbGFyZ2U6ImxhcmdlLW1MRWhDclZ3Iix4bGFyZ2U6InhsYXJnZS1tTEVoQ3JWdyIsY29udGVudDoiY29udGVudC1tTEVoQ3JWdyIsbGluazoibGluay1tTEVoQ3JWdyIsYmx1ZToiYmx1ZS1tTEVoQ3JWdyIscHJpbWFyeToicHJpbWFyeS1tTEVoQ3JWdyIsc2Vjb25kYXJ5OiJzZWNvbmRhcnktbUxFaENyVnciLGdyYXk6ImdyYXktbUxFaENyVnciLGdyZWVuOiJncmVlbi1tTEVoQ3JWdyIscmVkOiJyZWQtbUxFaENyVnciLGJsYWNrOiJibGFjay1tTEVoQ3JWdyIsc2xvdDoic2xvdC1tTEVoQ3JWdyIsc3RyZXRjaDoic3RyZXRjaC1tTEVoQ3JWdyIsZ3JvdXBlZDoiZ3JvdXBlZC1tTEVoQ3JWdyIsYWRqdXN0UG9zaXRpb246ImFkanVzdFBvc2l0aW9uLW1MRWhDclZ3IixmaXJzdFJvdzoiZmlyc3RSb3ctbUxFaENyVnciLGZpcnN0Q29sOiJmaXJzdENvbC1tTEVoQ3JWdyIsIm5vLWNvcm5lci10b3AtbGVmdCI6Im5vLWNvcm5lci10b3AtbGVmdC1tTEVoQ3JWdyIsIm5vLWNvcm5lci10b3AtcmlnaHQiOiJuby1jb3JuZXItdG9wLXJpZ2h0LW1MRWhDclZ3Iiwibm8tY29ybmVyLWJvdHRvbS1yaWdodCI6Im5vLWNvcm5lci1ib3R0b20tcmlnaHQtbUxFaENyVnciLCJuby1jb3JuZXItYm90dG9tLWxlZnQiOiJuby1jb3JuZXItYm90dG9tLWxlZnQtbUxFaENyVnciLHRleHRXcmFwOiJ0ZXh0V3JhcC1tTEVoQ3JWdyIsbXVsdGlsaW5lQ29udGVudDoibXVsdGlsaW5lQ29udGVudC1tTEVoQ3JWdyIscHJpbWFyeVRleHQ6InByaW1hcnlUZXh0LW1MRWhDclZ3IixzZWNvbmRhcnlUZXh0OiJzZWNvbmRhcnlUZXh0LW1MRWhDclZ3In19LDMzMTg4MyhlKXtlLmV4cG9ydHM9e2FjdGlvbkJ1dHRvbjoiYWN0aW9uQnV0dG9uLWs1M3ZleFBhIixzbWFsbDoic21hbGwtazUzdmV4UGEiLGhpZGRlblRpdGxlOiJoaWRkZW5UaXRsZS1rNTN2ZXhQYSJ9fSw4ODgxNTkoZSl7ZS5leHBvcnRzPXtwb3B1cERpYWxvZzoicG9wdXBEaWFsb2ctQjAyVVVVTjMiLHdyYXA6IndyYXAtQjAyVVVVTjMiLG1haW46Im1haW4tQjAyVVVVTjMiLHNtYWxsOiJzbWFsbC1CMDJVVVVOMyIsdGl0bGU6InRpdGxlLUIwMlVVVU4zIixjb250ZW50OiJjb250ZW50LUIwMlVVVU4zIixodG1sOiJodG1sLUIwMlVVVU4zIixmb290ZXI6ImZvb3Rlci1CMDJVVVVOMyIsY2xvc2U6ImNsb3NlLUIwMlVVVU4zIixtYXJnaW5XaXRob3V0Q2xvc2VCdXR0b246Im1hcmdpbldpdGhvdXRDbG9zZUJ1dHRvbi1CMDJVVVVOMyJ9fSw2NzQ3NDkoZSx0LHMpeyJ1c2Ugc3RyaWN0IjtzLmQodCx7QnV0dG9uOigpPT5ofSk7dmFyIG8scixuLGk9cyg3Nzk0NzQpLGw9cygyOTU3NDQpO2Z1bmN0aW9uIGEoZT0iZGVmYXVsdCIpe3N3aXRjaChlKXtjYXNlImRlZmF1bHQiOnJldHVybiJwcmltYXJ5IjtjYXNlInN0cm9rZSI6cmV0dXJuInNlY29uZGFyeSJ9fWZ1bmN0aW9uIGMoZT0icHJpbWFyeSIpe3N3aXRjaChlKXtjYXNlInByaW1hcnkiOnJldHVybiJicmFuZCI7Y2FzZSJzdWNjZXNzIjpyZXR1cm4iZ3JlZW4iO2Nhc2UiZGVmYXVsdCI6cmV0dXJuImdyYXkiO2Nhc2UiZGFuZ2VyIjpyZXR1cm4icmVkIn19ZnVuY3Rpb24gdShlPSJtIil7c3dpdGNoKGUpe2Nhc2UicyI6cmV0dXJuInhzbWFsbCI7Y2FzZSJtIjpyZXR1cm4ic21hbGwiO2Nhc2UibCI6cmV0dXJuImxhcmdlIn19ZnVuY3Rpb24gbShlKXtjb25zdHtpbnRlbnQ6dCxzaXplOnMsYXBwZWFyYW5jZTpvLHVzZUZ1bGxXaWR0aDpyLGljb246biwuLi5pfT1lO3JldHVybnsuLi5pLGNvbG9yOmModCksc2l6ZTp1KHMpLHZhcmlhbnQ6YShvKSxzdHJldGNoOnJ9fWZ1bmN0aW9uIGgoZSl7cmV0dXJuIGkuY3JlYXRlRWxlbWVudChsLlNxdWFyZUJ1dHRvbix7Li4ubShlKX0pfSFmdW5jdGlvbihlKXtlLlByaW1hcnk9InByaW1hcnkiLGUuU3VjY2Vzcz0ic3VjY2VzcyIsZS5EZWZhdWx0PSJkZWZhdWx0IixlLkRhbmdlcj0iZGFuZ2VyIn0ob3x8KG89e30pKSxmdW5jdGlvbihlKXtlLlNtYWxsPSJzIixlLk1lZGl1bT0ibSIsZS5MYXJnZT0ibCJ9KHJ8fChyPXt9KSksZnVuY3Rpb24oZSl7ZS5EZWZhdWx0PSJkZWZhdWx0IixlLlN0cm9rZT0ic3Ryb2tlIn0obnx8KG49e30pKX0sMjQzMjA3KGUsdCxzKXsidXNlIHN0cmljdCI7cy5kKHQse1NxdWFyZUJ1dHRvbkNvbnRlbnQ6KCk9Pm0sZ2V0U3F1YXJlQnV0dG9uQ2xhc3NlczooKT0+dX0pO3ZhciBvPXMoNzc5NDc0KSxyPXMoOTE0NDg3KSxuPXMubihyKSxpPXMoNjA1MTQxKSxsPXMoNDczMTU5KSxhPXMubihsKTtjb25zdCBjPSJhcHBseS1vdmVyZmxvdy10b29sdGlwIGFwcGx5LW92ZXJmbG93LXRvb2x0aXAtLWNoZWNrLWNoaWxkcmVuLXJlY3Vyc2l2ZWx5IGFwcGx5LW92ZXJmbG93LXRvb2x0aXAtLWFsbG93LXRleHQgYXBwbHktY29tbW9uLXRvb2x0aXAiO2Z1bmN0aW9uIHUoZSl7Y29uc3R7c2l6ZTp0PSJtZWRpdW0iLHZhcmlhbnQ6cz0icHJpbWFyeSIsY29sb3I6bz0iYnJhbmQiLHN0cmV0Y2g6cj0hMSxzdGFydFNsb3Q6bCxlbmRTbG90OnUsaWNvbk9ubHk6bT0hMSxjbGFzc05hbWU6aCxpc0dyb3VwZWQ6ZCxjZWxsU3RhdGU6cCxkaXNhYmxlUG9zaXRpb25BZGp1c3RtZW50Onk9ITEscHJpbWFyeVRleHQ6ZixzZWNvbmRhcnlUZXh0Ol8saXNBbmNob3I6Uz0hMX09ZSxnPSJicmFuZCI9PT1vPyJibGFjayI6byxiPWZ1bmN0aW9uKGUpe2xldCB0PSIiCjtyZXR1cm4gMCE9PWUmJigxJmUmJih0PW4oKSh0LGEoKVsibm8tY29ybmVyLXRvcC1sZWZ0Il0pKSwyJmUmJih0PW4oKSh0LGEoKVsibm8tY29ybmVyLXRvcC1yaWdodCJdKSksNCZlJiYodD1uKCkodCxhKClbIm5vLWNvcm5lci1ib3R0b20tcmlnaHQiXSkpLDgmZSYmKHQ9bigpKHQsYSgpWyJuby1jb3JuZXItYm90dG9tLWxlZnQiXSkpKSx0fSgoMCxpLmdldEdyb3VwQ2VsbFJlbW92ZVJvdW5kQm9yZGVycykocCkpLEM9bSYmKGx8fHUpO3JldHVybiBuKCkoaCxhKCkuYnV0dG9uLGEoKVt0XSxhKClbZ10sYSgpW3NdLHImJmEoKS5zdHJldGNoLGwmJmEoKS53aXRoU3RhcnRJY29uLHUmJmEoKS53aXRoRW5kSWNvbixDJiZhKCkuaWNvbk9ubHksYixkJiZhKCkuZ3JvdXBlZCxkJiYheSYmYSgpLmFkanVzdFBvc2l0aW9uLGQmJnAuaXNUb3AmJmEoKS5maXJzdFJvdyxkJiZwLmlzTGVmdCYmYSgpLmZpcnN0Q29sLGYmJl8mJmEoKS5tdWx0aWxpbmVDb250ZW50LFMmJmEoKS5saW5rLGMpfWZ1bmN0aW9uIG0oZSl7Y29uc3R7c3RhcnRTbG90OnQsaWNvbk9ubHk6cyxjaGlsZHJlbjpyLGVuZFNsb3Q6aSxwcmltYXJ5VGV4dDpsLHNlY29uZGFyeVRleHQ6dX09ZTtpZih0JiZpJiZzKXJldHVybiBvLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6bigpKGEoKS5zbG90LGEoKS5zdGFydFNsb3RXcmFwKX0sdCk7Y29uc3QgbT1zJiYodD8/aSksaD0hdCYmIWkmJiFzJiYhciYmbCYmdTtyZXR1cm4gby5jcmVhdGVFbGVtZW50KG8uRnJhZ21lbnQsbnVsbCx0JiZvLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6bigpKGEoKS5zbG90LGEoKS5zdGFydFNsb3RXcmFwKX0sdCksciYmIW0mJm8uY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZTphKCkuY29udGVudH0sciksaSYmby5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOm4oKShhKCkuc2xvdCxhKCkuZW5kU2xvdFdyYXApfSxpKSxoJiYhbSYmZnVuY3Rpb24oZSl7cmV0dXJuIGUucHJpbWFyeVRleHQmJmUuc2Vjb25kYXJ5VGV4dCYmby5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6bigpKGEoKS50ZXh0V3JhcCxjKX0sby5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOmEoKS5wcmltYXJ5VGV4dH0sIiAiLGUucHJpbWFyeVRleHQsIiAiKSwic3RyaW5nIj09dHlwZW9mIGUuc2Vjb25kYXJ5VGV4dD9vLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6YSgpLnNlY29uZGFyeVRleHR9LCIgIixlLnNlY29uZGFyeVRleHQsIiAiKTpvLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6YSgpLnNlY29uZGFyeVRleHR9LG8uY3JlYXRlRWxlbWVudCgic3BhbiIsbnVsbCxlLnNlY29uZGFyeVRleHQuZmlyc3RMaW5lKSxvLmNyZWF0ZUVsZW1lbnQoInNwYW4iLG51bGwsZS5zZWNvbmRhcnlUZXh0LnNlY29uZExpbmUpKSl9KGUpKX19LDI5NTc0NChlLHQscyl7InVzZSBzdHJpY3QiO3MuZCh0LHtTcXVhcmVCdXR0b246KCk9PnV9KTt2YXIgbz1zKDc3OTQ3NCkscj1zKDc3MDE0Myksbj1zKDUzMjAxMSksaT1zKDM0NTExNik7ZnVuY3Rpb24gbChlLHQpe3JldHVybiBzPT57aWYodClyZXR1cm4gcy5wcmV2ZW50RGVmYXVsdCgpLHZvaWQgcy5zdG9wUHJvcGFnYXRpb24oKTtlPy4ocyl9fXZhciBhPXMoMjQzMjA3KTtmdW5jdGlvbiBjKGUpe2NvbnN0e2NsYXNzTmFtZTp0LGNvbG9yOnMsdmFyaWFudDpvLHNpemU6cixzdHJldGNoOm4saWNvbk9ubHk6bCxzdGFydFNsb3Q6YSxlbmRTbG90OmMscHJpbWFyeVRleHQ6dSxzZWNvbmRhcnlUZXh0Om0sLi4uaH09ZTtyZXR1cm57Li4uaCwuLi4oMCxpLmZpbHRlckRhdGFQcm9wcykoZSksLi4uKDAsaS5maWx0ZXJBcmlhUHJvcHMpKGUpfX1mdW5jdGlvbiB1KGUpe2NvbnN0e3JlZmVyZW5jZTp0LHRvb2x0aXBUZXh0OnMsZGlzYWJsZWQ6aSxvbkNsaWNrOnUsb25Nb3VzZU92ZXI6bSxvbk1vdXNlT3V0Omgsb25Nb3VzZURvd246ZCxvbk1vdXNlRW50ZXI6cCxhcmlhRGlzYWJsZWQ6eSwuLi5mfT1lLHtpc0dyb3VwZWQ6XyxjZWxsU3RhdGU6UyxkaXNhYmxlUG9zaXRpb25BZGp1c3RtZW50Omd9PSgwLG8udXNlQ29udGV4dCkobi5Db250cm9sR3JvdXBDb250ZXh0KSxiPSgwLGEuZ2V0U3F1YXJlQnV0dG9uQ2xhc3Nlcykoey4uLmYsaXNHcm91cGVkOl8sY2VsbFN0YXRlOlMsZGlzYWJsZVBvc2l0aW9uQWRqdXN0bWVudDpnfSksQz1zPz8oZS5wcmltYXJ5VGV4dD9bZS5wcmltYXJ5VGV4dCxlLnNlY29uZGFyeVRleHRdLmpvaW4oIiAiKTooMCxyLmdldFRleHRGb3JUb29sdGlwKShlLmNoaWxkcmVuKSk7cmV0dXJuIG8uY3JlYXRlRWxlbWVudCgiYnV0dG9uIix7Li4uYyhmKSwiYXJpYS1kaXNhYmxlZCI6aXx8eSx0YWJJbmRleDplLnRhYkluZGV4Pz8oaT8tMTowKSxjbGFzc05hbWU6YixyZWY6dCxvbkNsaWNrOmwodSxpKSxvbk1vdXNlRG93bjpsKGQsaSksb25Nb3VzZU92ZXI6bChtLGkpLG9uTW91c2VPdXQ6bChoLGkpLG9uTW91c2VFbnRlcjpsKHAsaSksImRhdGEtb3ZlcmZsb3ctdG9vbHRpcC10ZXh0IjpDfSxvLmNyZWF0ZUVsZW1lbnQoYS5TcXVhcmVCdXR0b25Db250ZW50LHsuLi5mfSkpfX0sNjA1MTQxKGUsdCxzKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbyhlKXtsZXQgdD0wO3JldHVybiBlLmlzVG9wJiZlLmlzTGVmdHx8KHQrPTEpLGUuaXNUb3AmJmUuaXNSaWdodHx8KHQrPTIpLGUuaXNCb3R0b20mJmUuaXNMZWZ0fHwodCs9OCksZS5pc0JvdHRvbSYmZS5pc1JpZ2h0fHwodCs9NCksdH1zLmQodCx7Z2V0R3JvdXBDZWxsUmVtb3ZlUm91bmRCb3JkZXJzOigpPT5vfSl9LDk3MTY1OShlLHQscyl7InVzZSBzdHJpY3QiO3MuZCh0LHt1c2VJc01vdW50ZWQ6KCk9PnJ9KTt2YXIgbz1zKDc3OTQ3NCk7Y29uc3Qgcj0oKT0+e2NvbnN0IGU9KDAsby51c2VSZWYpKCExKTtyZXR1cm4oMCxvLnVzZUVmZmVjdCkoKCgpPT4oZS5jdXJyZW50PSEwLCgpPT57ZS5jdXJyZW50PSExfSkpLFtdKSxlfX0sMTQ3OTAxKGUsdCxzKXsidXNlIHN0cmljdCI7cy5kKHQse1VJX0xJQl9EQVRBX1FBX0lEX1BSRUZJWDooKT0+aSxjb25jYXRJZk5vdE51bGw6KCk9Pm4sZGF0YVFhSWRzOigpPT5yfSkKO3ZhciBvPXMoNTY1NzQ1KTtmdW5jdGlvbiByKGUsdCl7cmV0dXJuW2UsdF0uZmlsdGVyKG8uaXNFeGlzdGVudCkuam9pbigiICIpfWZ1bmN0aW9uIG4oZSx0KXtpZigoMCxvLmlzRXhpc3RlbnQpKHQpKXJldHVybltlLHRdLmpvaW4oIiAiKX1jb25zdCBpPSJ1aS1saWItIn0sNTY1NzQ1KGUsdCxzKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbyhlKXtyZXR1cm4gbnVsbCE9ZX1zLmQodCx7aXNFeGlzdGVudDooKT0+b30pfSw5NjIwODEoZSx0LHMpeyJ1c2Ugc3RyaWN0IjtzLmQodCx7Y29tbW9uUmVuYW1lU2VwYXJhdG9yOigpPT5pfSk7dmFyIG89cygzODQwMTcpLHI9cyg1ODA1MjYpLG49cygzMDQzOTkpO2FzeW5jIGZ1bmN0aW9uIGkoZSx0LHMsaSl7Y29uc3R7b2xkU2VwYXJhdG9yOmwsbmV3U2VwYXJhdG9yOmF9PSgwLHIucmVtb3RlUmVuYW1lU2VwYXJhdG9ycykoZSxzLGkpLGM9YXdhaXQoMCxvLmZldGNoKSgoMCxuLndhdGNobGlzdFVybCkoYC9hcGkvdjEvc3ltYm9sc19saXN0LyR7dH0vJHtlfS9yZXBsYWNlX3N5bWJvbC9gKSx7bWV0aG9kOiJQT1NUIixib2R5OkpTT04uc3RyaW5naWZ5KHtvbGQ6bCxuZXc6YX0pLGNyZWRlbnRpYWxzOiJpbmNsdWRlIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9fSk7aWYoIWMub2spe2NvbnN0e2RldGFpbDplfT1hd2FpdCBjLmpzb24oKTt0aHJvdyBFcnJvcihlKX1yZXR1cm4oMCxuLmhhbmRsZUpTT04pKGMpfX0sNjkzMjE2KGUsdCxzKXsidXNlIHN0cmljdCI7cy5kKHQse2dldEV4dHJhSG91cnNDaGFuZ2VQZXJjZW50OigpPT5uLGlzRXh0cmFIb3Vyc1Nlc3Npb246KCk9PnJ9KTtjb25zdCBvPVsicHJlX21hcmtldCIsInBvc3RfbWFya2V0IiwibmlnaHQiXTtmdW5jdGlvbiByKGUpe3JldHVybiBCb29sZWFuKGUmJm8uaW5jbHVkZXMoZSkpfWZ1bmN0aW9uIG4oZSl7bGV0IHQ7c3dpdGNoKGUuY3VycmVudF9zZXNzaW9uKXtjYXNlIm5pZ2h0Ijp0PWUubmNocDticmVhaztjYXNlInBvc3RfbWFya2V0IjpjYXNlInByZV9tYXJrZXQiOnQ9ZS5yY2hwfXJldHVybiB0Pz9udWxsfX0sMjQzNjMxKGUsdCxzKXsidXNlIHN0cmljdCI7cy5kKHQse0NvbG9yQ29udGV4dDooKT0+byxDb2xvck1hbmFnZXI6KCk9Pmx9KTt2YXIgbyxyPXMoNzEyMTM0KSxuPXMoMzU3NTMzKSxpPXMoNTAwNTE0KTshZnVuY3Rpb24oZSl7ZVtlLlN5bWJvbE1hcmtlcj0wXT0iU3ltYm9sTWFya2VyIixlW2UuU2NyZWVuZXJGaWx0ZXI9MV09IlNjcmVlbmVyRmlsdGVyIn0ob3x8KG89e30pKTtjbGFzcyBse2dldENvbG9yKCl7c3dpdGNoKHRoaXMuX2NvbnRleHQpe2Nhc2Ugby5TeW1ib2xNYXJrZXI6cmV0dXJuIHRoaXMuX2dldEF2YWlsYWJsZUNvbG9yKG4uU3ltYm9sTWFya2VyU2V0dGluZ3MuZ2V0RGVmYXVsdENvbG9yKCkpO2Nhc2Ugby5TY3JlZW5lckZpbHRlcjpyZXR1cm4gdGhpcy5fZ2V0QXZhaWxhYmxlQ29sb3Iobi5TeW1ib2xzRmlsdGVyU2V0dGluZ3MuZ2V0RGVmYXVsdENvbG9yKCkpfX1zZXRDb2xvcihlKXtzd2l0Y2godGhpcy5fY29udGV4dCl7Y2FzZSBvLlN5bWJvbE1hcmtlcjpuLlN5bWJvbE1hcmtlclNldHRpbmdzLnNldERlZmF1bHRDb2xvcih0aGlzLl9nZXRBdmFpbGFibGVDb2xvcihlKSk7YnJlYWs7Y2FzZSBvLlNjcmVlbmVyRmlsdGVyOm4uU3ltYm9sc0ZpbHRlclNldHRpbmdzLnNldERlZmF1bHRDb2xvcih0aGlzLl9nZXRBdmFpbGFibGVDb2xvcihlKSl9fV9nZXRBdmFpbGFibGVDb2xvcihlKXtyZXR1cm4oMCxpLmNoZWNrQ29sb3JQZXJtaXNzaW9ucykoZSk/ZToodGhpcy5zZXRDb2xvcihyLkxpc3RDb2xvci5SZWQpLHIuTGlzdENvbG9yLlJlZCl9Y29uc3RydWN0b3IoZSl7dGhpcy5fY29udGV4dD1lLmNvbnRleHR9fX0sNTAwNTE0KGUsdCxzKXsidXNlIHN0cmljdCI7cy5kKHQse01hcmtlZFN5bWJvbHNMaXN0TW9kZWw6KCk9PmssY2hlY2tDb2xvclBlcm1pc3Npb25zOigpPT5ULGdldE1hcmtlZExpc3RzU3RhdGU6KCk9Pk59KTt2YXIgbz1zKDEzODYzOCkscj1zKDcxMjEzNCk7Y2xhc3MgbntkZXN0cm95KCl7dGhpcy5fc3Vic2NyaXB0aW9uKCksdGhpcy5fZGVzdHJveWVkPSEwfV9nZXRDb21tYW5kcygpe2NvbnN0IGU9dGhpcy5fc2VsZWN0b3IodGhpcy5fc3RvcmUuZ2V0U3RhdGUoKSk7cmV0dXJuKDAsci5nZXRDb21tYW5kcykoZSl9Y29uc3RydWN0b3IoZSl7dGhpcy5fZXhlY3V0aW5nPW51bGwsdGhpcy5fZGVzdHJveWVkPSExLHRoaXMuX2hhbmRsZUNoYW5nZT0oKT0+e2lmKHRoaXMuX2Rlc3Ryb3llZClyZXR1cm47Y29uc3QgZT10aGlzLl9nZXRDb21tYW5kcygpO2lmKGUubGVuZ3RoPjApe2lmKG51bGwhPT10aGlzLl9leGVjdXRpbmcpcmV0dXJuO2NvbnN0W3QsLi4uc109ZTtzd2l0Y2godC50eXBlKXtjYXNlImFwcGVuZCI6dGhpcy5fZXhlY3V0aW5nPXRoaXMuX2FwaS5hcHBlbmRTeW1ib2xzKHQuY29sb3IsdC5zeW1ib2xzKS50aGVuKChlPT4hZXx8dGhpcy5fZGVzdHJveWVkP251bGw6e1t0LmNvbG9yXTp7c3ltYm9sczplfX0pKS50aGVuKChhc3luYyBlPT57aWYodGhpcy5fZGVzdHJveWVkKXJldHVybiBudWxsO2NvbnN0IHM9dGhpcy5fc2VsZWN0b3IodGhpcy5fc3RvcmUuZ2V0U3RhdGUoKSksbz0oMCxyLmdldExpc3RCeUNvbG9yKShzLHQuY29sb3IpO2lmKG51bGwhPT1vJiZudWxsIT09by5wZXJzaXN0ZWRTdGF0ZSYmbnVsbCE9PW8ucGVyc2lzdGVkU3RhdGUuaWQpcmV0dXJuIGU7Y29uc3Qgbj1hd2FpdCB0aGlzLl9hcGkuZ2V0TGlzdHMoKTtpZih0aGlzLl9kZXN0cm95ZWQpcmV0dXJuIG51bGw7Y29uc3QgaT1uLmZpbmQoKGU9PmUuY29sb3I9PT10LmNvbG9yKSk7cmV0dXJuIGk/e1t0LmNvbG9yXTp7aWQ6aS5pZCxzeW1ib2xzOmkuc3ltYm9sc319Om51bGx9KSk7YnJlYWs7Y2FzZSJyZW1vdmUiOnRoaXMuX2V4ZWN1dGluZz10aGlzLl9hcGkucmVtb3ZlU3ltYm9scyh0LmNvbG9yLHQuc3ltYm9scykudGhlbigoZT0+IWV8fHRoaXMuX2Rlc3Ryb3llZD9udWxsOntbdC5jb2xvcl06e3N5bWJvbHM6ZX19KSk7YnJlYWs7Y2FzZSJyZXBsYWNlIjoKdGhpcy5fZXhlY3V0aW5nPXRoaXMuX2FwaS5yZXBsYWNlU3ltYm9scyh0LmNvbG9yLHQuc3ltYm9scykudGhlbigoZT0+IWV8fHRoaXMuX2Rlc3Ryb3llZD9udWxsOntbdC5jb2xvcl06e3N5bWJvbHM6ZX19KSk7YnJlYWs7Y2FzZSJyZXNldCI6dGhpcy5fZXhlY3V0aW5nPXRoaXMuX2FwaS5yZXNldFN5bWJvbHModC5zeW1ib2xzKS50aGVuKCgoKT0+e2lmKHRoaXMuX2Rlc3Ryb3llZClyZXR1cm4gbnVsbDtjb25zdCBlPXt9O2Zvcihjb25zdCBzIG9mIHIuTElTVF9DT0xPUlMpe2NvbnN0IG89dC5wcmV2TGlzdHMuYnlDb2xvcltzXTtpZighb3x8IW8ucGVyc2lzdGVkU3RhdGUpY29udGludWU7Y29uc3Qgcj1vLnBlcnNpc3RlZFN0YXRlLnN5bWJvbHMuZmlsdGVyKChlPT4hdC5zeW1ib2xzLmluY2x1ZGVzKGUpKSk7ZVtzXT17Li4uby5wZXJzaXN0ZWRTdGF0ZSxzeW1ib2xzOnJ9fXJldHVybiBlfSkpO2JyZWFrO2Nhc2UicmVuYW1lIjp0aGlzLl9leGVjdXRpbmc9dGhpcy5fYXBpLnJlbmFtZUxpc3QodC5jb2xvcix0Lm5hbWUpLnRoZW4oKGU9PnRoaXMuX2Rlc3Ryb3llZD9udWxsOntbdC5jb2xvcl06ZX0pKTticmVhaztjYXNlImNoYW5nZS1kZXNjcmlwdGlvbiI6dGhpcy5fZXhlY3V0aW5nPXRoaXMuX2FwaS5jaGFuZ2VEZXNjcmlwdGlvbih0LmNvbG9yLHQuZGVzY3JpcHRpb24pLnRoZW4oKGU9PnRoaXMuX2Rlc3Ryb3llZD9udWxsOntbdC5jb2xvcl06ZX0pKTticmVhaztjYXNlInJlc2V0LWFsbCI6dGhpcy5fZXhlY3V0aW5nPXRoaXMuX2FwaS5yZXNldEFsbCgpLnRoZW4oKCgpPT57aWYodGhpcy5fZGVzdHJveWVkKXJldHVybiBudWxsO2NvbnN0IGU9e307Zm9yKGNvbnN0IHMgb2Ygci5MSVNUX0NPTE9SUyl7Y29uc3Qgbz10LnByZXZMaXN0cy5ieUNvbG9yW3NdO28mJm8ucGVyc2lzdGVkU3RhdGUmJihlW3NdPXsuLi5vLnBlcnNpc3RlZFN0YXRlLHN5bWJvbHM6W119KX1yZXR1cm4gZX0pKTticmVhaztjYXNlInNoYXJlIjp0aGlzLl9leGVjdXRpbmc9dGhpcy5fYXBpLnNoYXJlTGlzdCh0LmNvbG9yLHQuc2hhcmVkKS50aGVuKChlPT50aGlzLl9kZXN0cm95ZWQ/bnVsbDp7W3QuY29sb3JdOntzaGFyZWQ6ZS5zaGFyZWR9fSkpO2JyZWFrO2Nhc2UicmVuYW1lLXNlcGFyYXRvciI6dGhpcy5fZXhlY3V0aW5nPXRoaXMuX2FwaS5yZW5hbWVTZXBhcmF0b3IodC5jb2xvcix0LnNlcGFyYXRvcix0Lm5hbWUpLnRoZW4oKGU9PiFlfHx0aGlzLl9kZXN0cm95ZWQ/bnVsbDp7W3QuY29sb3JdOntzeW1ib2xzOmV9fSkpfXRoaXMuX2V4ZWN1dGluZy50aGVuKChlPT57aWYodGhpcy5fZXhlY3V0aW5nPW51bGwsdGhpcy5fZGVzdHJveWVkKXJldHVybjtjb25zdFtvXT10aGlzLl9nZXRDb21tYW5kcygpO289PT10Pyh0aGlzLl9zdG9yZS5kaXNwYXRjaCgoMCxyLnNoaWZ0Q29tbWFuZCkoe2NvdW50OjF9KSksZSYmdGhpcy5fc3RvcmUuZGlzcGF0Y2goKDAsci51cGRhdGVQZXJzaXN0ZWRTdGF0ZSkoZSkpKToodGhpcy5fb25XYXJuKGBDb21tYW5kOiAke0pTT04uc3RyaW5naWZ5KHQpfSB3YXMgc2VudCB0byB0aGUgc2VydmVyIGJ1dCBpcyBub3QgZm91bmQgaW4gdGhlIHN0YXRlYCkscy5sZW5ndGg+MCYmdGhpcy5fb25XYXJuKGBDb21tYW5kczogJHtKU09OLnN0cmluZ2lmeShzKX0gd2FzIGRyb3BwZWQgZnJvbSBzdGF0ZSB3aXRob3V0IHN5bmNpbmcgd2l0aCBzZXJ2ZXJgKSksdGhpcy5faGFuZGxlQ2hhbmdlKCl9KSwoZT0+e2lmKHRoaXMuX2Rlc3Ryb3llZClyZXR1cm47dGhpcy5fZXhlY3V0aW5nPW51bGw7Y29uc3R7Y29sb3JzOnMsYnlDb2xvcjpufT10LnByZXZMaXN0cyxpPXMubWFwKChlPT4oMCxvLmVuc3VyZURlZmluZWQpKG5bZV0pKSk7dGhpcy5fc3RvcmUuZGlzcGF0Y2goKDAsci5zZXR1cCkoe2xpc3RzOmksdGltZXN0YW1wOigwLG8uZW5zdXJlTm90TnVsbCkoKDAsci5nZXRUaW1lc3RhbXApKHRoaXMuX3NlbGVjdG9yKHRoaXMuX3N0b3JlLmdldFN0YXRlKCkpKSl9KSksdGhpcy5fb25FcnJvcih0LGUpfSkpfX07Y29uc3R7cm9vdDp0LHNlbGVjdG9yOnMsb25FcnJvcjpuLG9uV2FybjppLGFwaTpsfT1lO3RoaXMuX3N0b3JlPXQsdGhpcy5fc2VsZWN0b3I9cyx0aGlzLl9zdWJzY3JpcHRpb249dGhpcy5fc3RvcmUuc3Vic2NyaWJlKHRoaXMuX2hhbmRsZUNoYW5nZSksdGhpcy5fb25FcnJvcj1uLHRoaXMuX29uV2Fybj1pLHRoaXMuX2FwaT1sLHRoaXMuX2hhbmRsZUNoYW5nZSgpfX12YXIgaT1zKDI5NTIzNSksbD1zKDkwMTAyMik7dmFyIGE9cygyMjEwNjEpLGM9cygxODUyNzEpLHU9cyg5MTM0MTMpLG09cyg2MzI2ODYpLGg9cygxNTI3MTcpLGQ9cyg0NTY3MDUpLHA9cyg1ODA1MjYpLHk9cyg5Mjk0ODgpLGY9cyg2NDM5MDMpLF89cygxNTk1MTMpLFM9cyg0NzkzNCksZz1zKDc3MDc1NSksYj1zKDYxMzg3MCksQz1zKDMxMzMwMCksdj1zKDU5NjA1MCksdz1zKDQzNjM5NCksRT1zKDQzMjM1MCk7Y29uc3QgeD0oMCxhLmdldExvZ2dlcikoIk1hcmtlZFN5bWJvbHMuTW9kZWwiKTt2YXIgTDtmdW5jdGlvbiBOKGUpe3JldHVybiBlLm1hcmtlZExpc3RzfSFmdW5jdGlvbihlKXtlLkxpbWl0UmVhY2hlZD0iTGltaXRSZWFjaGVkIn0oTHx8KEw9e30pKTtjbGFzcyBre2Rlc3Ryb3koKXt0aGlzLl9zeW5jaHJvbml6YXRpb25TZXJ2aWNlLmRlc3Ryb3koKSx0aGlzLl9zdWJzY3JpcHRpb24mJnRoaXMuX3N1YnNjcmlwdGlvbigpLHRoaXMuX2V4ZWN1dG9yJiZ0aGlzLl9leGVjdXRvci5kZXN0cm95KCl9Z2V0U3ltYm9sc0J5Q29sb3IoZSl7aWYobnVsbD09PXRoaXMuX3NlcnZpY2UpcmV0dXJuW107Y29uc3R7c3RvcmU6dH09dGhpcy5fc2VydmljZSxzPU4odC5nZXRTdGF0ZSgpKTtyZXR1cm4gbnVsbD09PXM/W106KDAsci5nZXRTeW1ib2xzQnlDb2xvcikocyxlKT8/W119Z2V0TGlzdHMoKXtyZXR1cm4gci5MSVNUX0NPTE9SUy5yZWR1Y2UoKChlLHQpPT4oZS5zZXQodCxuZXcgU2V0KHRoaXMuZ2V0U3ltYm9sc0J5Q29sb3IodCkpKSxlKSksbmV3IE1hcCl9c2V0U3ltYm9sc0NvbG9yKGUsdCl7aWYoeC5sb2dOb3JtYWwoYFNldCBzeW1ib2xzIGNvbG9yICR7dH1gKSxudWxsPT09dGhpcy5fc2VydmljZSlyZXR1cm4KO2NvbnN0IHM9dGhpcy5fcmVzdHJpY3RlZE1hcmtTeW1ib2xzKHtzeW1ib2xzOmUsY29sb3I6dCxzZXBhcmF0b3JzOiExfSk7dGhpcy5fc2VydmljZS5zdG9yZS5kaXNwYXRjaChzKX1tYXJrTWFueShlKXtpZih4LmxvZ05vcm1hbChgTWFyayBtYW55IHN5bWJvbHM6ICR7ZS5jb2xvcn1gKSxudWxsPT09dGhpcy5fc2VydmljZSlyZXR1cm47Y29uc3QgdD10aGlzLl9yZXN0cmljdGVkTWFya1N5bWJvbHMoZSk7dGhpcy5fc2VydmljZS5zdG9yZS5kaXNwYXRjaCh0KX1nZXRTeW1ib2xDb2xvcihlKXtpZihudWxsPT09dGhpcy5fc2VydmljZSlyZXR1cm4gbnVsbDtjb25zdHtzdG9yZTp0fT10aGlzLl9zZXJ2aWNlLHM9Tih0LmdldFN0YXRlKCkpO3JldHVybiBudWxsPT09cz9udWxsOigwLHIuZ2V0U3ltYm9sQ29sb3IpKHMsZSl9Y2xlYXJBbGxTeW1ib2xzQ29sb3IoKXt4LmxvZ05vcm1hbCgiQ2xlYXIgYWxsIHN5bWJvbHMgY29sb3IiKSxudWxsIT09dGhpcy5fc2VydmljZSYmdGhpcy5fc2VydmljZS5zdG9yZS5kaXNwYXRjaCgoMCxyLnJlc2V0KSh7fSkpfXN5bmNTeW1ib2xzKCl7cmV0dXJuIHRoaXMuX3N5bmNocm9uaXphdGlvblNlcnZpY2Uuc3luY1N5bWJvbHMoKX1hbm9ueW1pemUoKXtudWxsIT09dGhpcy5fc2VydmljZSYmdGhpcy5fc2VydmljZS5zdG9yZS5kaXNwYXRjaCgoMCxyLnNldHVwKSh7dGltZXN0YW1wOkRhdGUubm93KCksbGlzdHM6W119KSl9Y29ubmVjdCgpe3JldHVybiB0aGlzLl9zeW5jaHJvbml6YXRpb25TZXJ2aWNlLmNvbm5lY3QoKX1jbG9zZUNvbm5lY3Rpb24oKXtyZXR1cm4gdGhpcy5fc3luY2hyb25pemF0aW9uU2VydmljZS5jbG9zZUNvbm5lY3Rpb24oKX1fcmVzb2x2ZShlKXtjb25zdCB0PW5ldyBTZXQ7Zm9yKGNvbnN0IHMgb2YgZSlpZih2b2lkIDAhPT1zLnN5bWJvbHMpZm9yKGNvbnN0IGUgb2Ygcy5zeW1ib2xzKXtpZigoMCx5LmlzU2VwYXJhdG9ySXRlbSkoZSkpY29udGludWU7KDAsZi5zYWZlU2hvcnROYW1lKShlKT09PWUmJnQuYWRkKGUpfWNvbnN0IHM9QXJyYXkuZnJvbSh0KS5tYXAoKGU9PnRoaXMuX3Nlc3Npb24uc25hcHNob3QoZSkudGhlbigodD0+dC5wcm9fbmFtZXx8ZSksKCgpPT5lKSkudGhlbigodD0+W2UsdF0pKSkpO3JldHVybiBQcm9taXNlLmFsbChzKS50aGVuKCh0PT57Y29uc3Qgcz1uZXcgTWFwKHQpO3JldHVybiBlLm1hcCgoZT0+e2NvbnN0e3N5bWJvbHM6dCxjb2xsYXBzZWRTZXBhcmF0b3JzOm99PSgwLHAubG9jYWxDb2xsYXBzZVN0YXRlRnJvbVJlbW90ZVN5bWJvbHMpKGUuc3ltYm9scz8/W10pO3JldHVybntpZDplLmlkLG5hbWU6ZS5uYW1lLGRlc2NyaXB0aW9uOmUuZGVzY3JpcHRpb24sY29sb3I6ZS5jb2xvcixzaGFyZWQ6ZS5zaGFyZWQsY3JlYXRlZDplLmNyZWF0ZWQsbW9kaWZpZWQ6ZS5tb2RpZmllZCx0eXBlOmUudHlwZSxhY3RpdmU6ZS5hY3RpdmUsc3ltYm9sczp0Lm1hcCgoZT0+cy5nZXQoZSk/P2UpKSxjb2xsYXBzZWRTZXBhcmF0b3JzOm8scGVyc2lzdGVkU3RhdGU6ZX19KSl9KSl9X2NyZWF0ZUV4ZWN1dG9yKCl7Y29uc3R7c3RvcmU6ZX09KDAsby5lbnN1cmVOb3ROdWxsKSh0aGlzLl9zZXJ2aWNlKTt0aGlzLl9leGVjdXRvcj1uZXcgbih7cm9vdDplLHNlbGVjdG9yOmU9PigwLG8uZW5zdXJlTm90TnVsbCkoTihlKSksYXBpOnRoaXMuX2FwaSxvbkVycm9yOnRoaXMuX2hhbmRsZUV4ZWN1dG9yRXJyb3Isb25XYXJuOmU9Pnt4LmxvZ1dhcm4oZSl9fSkseC5sb2dOb3JtYWwoIkV4ZWN1dG9yIHdhcyBjcmVhdGVkIil9Y29uc3RydWN0b3IoZSl7dGhpcy5fcHJvbWlzZT0oMCxkLmluaXRTeW1ib2xMaXN0U2VydmljZSkoKSx0aGlzLl9zZXJ2aWNlPW51bGwsdGhpcy5fZXhlY3V0b3I9bnVsbCx0aGlzLl9zdWJzY3JpcHRpb249bnVsbCx0aGlzLl9jb25uZWN0aW9uU3RhdHVzPW51bGwsdGhpcy5fcmVjb3Zlcj0hMSx0aGlzLl9zeW5jaHJvbml6ZT1hc3luYyBlPT57bGV0IHQscztudWxsIT09dGhpcy5fZXhlY3V0b3ImJih0aGlzLl9leGVjdXRvci5kZXN0cm95KCksdGhpcy5fZXhlY3V0b3I9bnVsbCx4LmxvZ05vcm1hbCgiRXhlY3V0b3Igd2FzIGRlc3Ryb3llZC4iKSk7dHJ5e3RoaXMuX3JlY292ZXImJmF3YWl0KDAsaC5zeW5jVXNlckRhdGEpKCJtYXJrZWQtc3ltYm9scyIpO2NvbnN0W29dPWF3YWl0IFByb21pc2UuYWxsKFt0aGlzLl9hcGkuZ2V0TGlzdHMoKSx0aGlzLl9wcm9taXNlXSk7dD1hd2FpdCB0aGlzLl9yZXNvbHZlKG8pLHM9RGF0ZS5ub3coKSxlLmFzc2VydCgpfWNhdGNoKGUpe2lmKGUgaW5zdGFuY2VvZiBFcnJvcil7aWYoeC5sb2dFcnJvcihgU3luYyBzeW1ib2xzIGVycm9yOiAke2UubWVzc2FnZX1gKSxlLm1lc3NhZ2U9PT1FLlJPVVRJTkVfQ0FOQ0VMTEVEX01FU1NBR0UpcmV0dXJuO2lmKCJBcGlFcnJvcjpub3RfYXV0aGVudGljYXRlZCI9PT1lLm5hbWUpcmV0dXJuIHRoaXMuX3JlY292ZXJ8fGF3YWl0KDAsaC5zeW5jVXNlckRhdGEpKCJtYXJrZWQtc3ltYm9scyIpLHZvaWQoMCxiLnNob3dTaWduTW9kYWwpKHtmZWF0dXJlOiJmbGFnZ2VkU3ltYm9scyJ9KX10aHJvdyBlfXRoaXMuX3JlY292ZXI9ITE7Y29uc3R7c3RvcmU6bn09KDAsby5lbnN1cmVOb3ROdWxsKSh0aGlzLl9zZXJ2aWNlKTt0aGlzLl9jcmVhdGVFeGVjdXRvcigpO2NvbnN0IGk9dGhpcy5fc3luY2hyb25pemF0aW9uU2VydmljZS5nZXRTdGF0ZSgpLGw9bnVsbCE9PWk/TShpKTpudWxsO2lmKG51bGwhPT1sJiZsPj1zKXJldHVybjtjb25zdCBhPSgwLHIuc2V0dXApKHtsaXN0czp0Lm1hcCgoZT0+KHtuYW1lOmUubmFtZT8/bnVsbCxkZXNjcmlwdGlvbjplLmRlc2NyaXB0aW9uPz9udWxsLGNvbG9yOmUuY29sb3Isc3ltYm9sczplLnN5bWJvbHMsc2hhcmVkOmUuc2hhcmVkLGNvbGxhcHNlZFNlcGFyYXRvcnM6ZS5jb2xsYXBzZWRTZXBhcmF0b3JzLHBlcnNpc3RlZFN0YXRlOmUucGVyc2lzdGVkU3RhdGV9KSkpLHRpbWVzdGFtcDpzfSk7bi5kaXNwYXRjaChhKX0sdGhpcy5faGFuZGxlQ2hhbmdlPSgpPT57aWYodGhpcy5fc3luY2hyb25pemF0aW9uU2VydmljZS5pc0Rlc3Ryb3llZCgpKXJldHVybjtjb25zdHtzdG9yZTplfT0oMCwKby5lbnN1cmVOb3ROdWxsKSh0aGlzLl9zZXJ2aWNlKSx0PSgwLG8uZW5zdXJlTm90TnVsbCkoTihlLmdldFN0YXRlKCkpKTtpZih0aGlzLl9zeW5jaHJvbml6YXRpb25TZXJ2aWNlLmdldFN0YXRlKCkhPT10KXRyeXt0aGlzLl9vcHRzLm9uQ2hhbmdlPy4odCwoMCxvLmVuc3VyZU5vdE51bGwpKHRoaXMuX3N5bmNocm9uaXphdGlvblNlcnZpY2UuZ2V0U3RhdGUoKSkpfWZpbmFsbHl7dGhpcy5fc3luY2hyb25pemF0aW9uU2VydmljZS5zZXRTdGF0ZSh0KX19LHRoaXMuX2hhbmRsZUV4ZWN1dG9yRXJyb3I9KGUsdCk9PnsiQXBpRXJyb3I6cGxhbl9zeW1ib2xzX2xpbWl0X3JlYWNoZWQiIT09dC5uYW1lP3RoaXMuX2Nvbm5lY3Rpb25TdGF0dXM9PT1tLkNvbm5lY3Rpb25TdGF0dXMuT3Blbj90aGlzLl9zeW5jaHJvbml6YXRpb25TZXJ2aWNlLmlzRGVzdHJveWVkKCl8fCh4LmxvZ0Vycm9yKGBGYWlsZWQgdG8gZXhlY3V0ZSAke2UudHlwZX1gKSx0aGlzLl9yZWNvdmVyPSEwLHRoaXMuX3N5bmNocm9uaXphdGlvblNlcnZpY2Uuc3luY1N5bWJvbHMoKSk6KDAsdi5zaG93U2ltcGxlRGlhbG9nSW5zdGFuY2UpKHt0aXRsZTpjLnQobnVsbCx2b2lkIDAscygzODIwMjUpKSx0ZXh0OnQubWVzc2FnZX0sdy5XYXJuaW5nKTooMCxnLm9wZW5QYXl3YWxsKSh7ZmVhdHVyZToid2F0Y2hsaXN0U3ltYm9scyJ9KX0sdGhpcy5fb3B0cz1lLHRoaXMuX2FwaT1lLmFwaXx8bmV3IHUuTWFya2VkU3ltYm9sc0xpc3RBcGksdGhpcy5fc2Vzc2lvbj1lLnF1b3RlU2Vzc2lvbnx8KDAsXy5nZXRRdW90ZVNlc3Npb25JbnN0YW5jZSkoInNpbXBsZSIpLHRoaXMuX3N5bmNocm9uaXphdGlvblNlcnZpY2U9bmV3IEUuU3ltYm9sTGlzdFN5bmNocm9uaXphdGlvblNlcnZpY2Uoe3N5bmNocm9uaXplOnRoaXMuX3N5bmNocm9uaXplLGV2ZW50OmUuZXZlbnQsc3RhdGU6bnVsbCxnZXRUaW1lc3RhbXA6TSxsb2dnZXJOYW1lOiJNYXJrZWRTeW1ib2xzTGlzdE1vZGVsIn0pLHRoaXMuX3Jlc3RyaWN0ZWRNYXJrU3ltYm9scz1mdW5jdGlvbihlKXtjb25zdHtsaW1pdDp0LGNvbG9yczpzLG9uTGltaXQ6byxvblJlc3RyaWN0ZWRDb2xvcjpuLHNlbGVjdG9yOmF9PWU7cmV0dXJuIGU9PihjLHUpPT57Y29uc3QgbT11KCksaD1hKG0pLHtjb2xvcjpkLHN5bWJvbHM6cCxzZXBhcmF0b3JzOnl9PWU7aWYobnVsbCE9PWQpe2NvbnN0IGU9aC5saXN0cy5ieUNvbG9yW2RdPy5zeW1ib2xzPz9bXSxyPW5ldyBTZXQoZSksYT1pLnF1YWxpZmllZC5jYXN0TWFueShbXSk7Zm9yKGNvbnN0IGUgb2YgbmV3IFNldChwKSkheSYmKDAsbC5pc1NlcGFyYXRvckl0ZW0pKGUpfHxyLmhhcyhlKXx8YS5wdXNoKGUpO2lmKCFzKCkuaW5jbHVkZXMoZCkpcmV0dXJuIHZvaWQgbigpO2lmKGEubGVuZ3RoJiZhLmxlbmd0aCtyLnNpemU+dCgpKXJldHVybiB2b2lkIG8oKX1jKCgwLHIubWFya01hbnkpKGUpKX19KHtzZWxlY3RvcjplPT4oMCxvLmVuc3VyZU5vdE51bGwpKE4oZSkpLGxpbWl0OmUubGltaXQ/PygoKT0+KDAsQy5nZXRXYXRjaGxpc3RTeW1ib2xzTGltaXQpKCkpLG9uTGltaXQ6KCk9Pnt4LmxvZ05vcm1hbCgiTGltaXRSZWFjaGVkIiksdGhpcy5fb3B0cy5vbkxpbWl0Py4oKX0sY29sb3JzOmUuY29sb3JzPz8oKCk9PnIuTElTVF9DT0xPUlMuZmlsdGVyKEQpKSxvblJlc3RyaWN0ZWRDb2xvcjooKT0+e3RoaXMuX29wdHMub25SZXN0cmljdGVkQ29sb3I/LigpfX0pLHRoaXMuX3Byb21pc2UudGhlbigoZT0+e2lmKHRoaXMuX3N5bmNocm9uaXphdGlvblNlcnZpY2UuaXNEZXN0cm95ZWQoKSlyZXR1cm47dGhpcy5fc2VydmljZT1lO2NvbnN0e3N0b3JlOnR9PWU7dGhpcy5fc3luY2hyb25pemF0aW9uU2VydmljZS5zZXRTdGF0ZSgoMCxvLmVuc3VyZU5vdE51bGwpKE4odC5nZXRTdGF0ZSgpKSkpLHRoaXMuX3N1YnNjcmlwdGlvbj10LnN1YnNjcmliZSh0aGlzLl9oYW5kbGVDaGFuZ2UpfSkpLHRoaXMuX3N5bmNocm9uaXphdGlvblNlcnZpY2UuY29ubmVjdCgpfX1mdW5jdGlvbiBEKGUpe3JldHVybiByLkxpc3RDb2xvci5SZWQ9PT1lfHwoMCxTLmVuYWJsZWQpKCJNVUxUSUZMQUdHRURfU1lNQk9MU19MSVNUUyIpfWZ1bmN0aW9uIFQoZSl7cmV0dXJuISFEKGUpfHwoKDAsZy5vcGVuUGF5d2FsbCkoe2ZlYXR1cmU6ImZsYWdnZWRTeW1ib2xzIn0pLCExKX1mdW5jdGlvbiBNKGUpe3JldHVybiBlLnRpbWVzdGFtcH19LDM1NzUzMyhlLHQscyl7InVzZSBzdHJpY3QiO3MuZCh0LHtTeW1ib2xNYXJrZXJTZXR0aW5nczooKT0+byxTeW1ib2xzRmlsdGVyU2V0dGluZ3M6KCk9PnJ9KTt2YXIgbyxyLG49cyg3MTIxMzQpLGk9cyg5MzA1NjYpOyFmdW5jdGlvbihlKXtjb25zdCB0PSJkZWZhdWx0X3N5bWJvbF9tYXJrZXJfY29sb3IiO2UuZ2V0RGVmYXVsdENvbG9yPWZ1bmN0aW9uKCl7cmV0dXJuIGkuZ2V0VmFsdWUodCxuLkxpc3RDb2xvci5SZWQpfSxlLnNldERlZmF1bHRDb2xvcj1mdW5jdGlvbihlKXtpLnNldFZhbHVlKHQsZSx7Zm9yY2VGbHVzaDohMH0pfX0ob3x8KG89e30pKSxmdW5jdGlvbihlKXtjb25zdCB0PSJkZWZhdWx0X3N5bWJvbHNfZmlsdGVyX2NvbG9yIixzPSJtYXJrZWRfc3ltYm9sc19maWx0ZXIiO2UuZ2V0RGVmYXVsdENvbG9yPWZ1bmN0aW9uKCl7cmV0dXJuIGkuZ2V0VmFsdWUodCxuLkxpc3RDb2xvci5SZWQpfSxlLnNldERlZmF1bHRDb2xvcj1mdW5jdGlvbihlKXtpLnNldFZhbHVlKHQsZSx7Zm9yY2VGbHVzaDohMH0pfSxlLnNldElzQWN0aXZlPWZ1bmN0aW9uKGUpe2kuc2V0VmFsdWUocyxlLHtmb3JjZUZsdXNoOiEwfSl9LGUuZ2V0SXNBY3RpdmU9ZnVuY3Rpb24oKXtyZXR1cm4gaS5nZXRCb29sKHMsITEpfX0ocnx8KHI9e30pKX0sMTU1OTAwKGUsdCxzKXsidXNlIHN0cmljdCI7cygzMTg5NzQpfSw0NTk4NjMoZSx0LHMpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBvKGUpe3JldHVybiJodG1sImluIGU/e2h0bWw6ZS5odG1sfToidGV4dCJpbiBlP3tjb250ZW50OmUudGV4dH06e2NvbnRlbnQ6ZS5jb250ZW50fX1zLmQodCx7Z2V0Q29udGVudDooKT0+b30pfSwxODQyMihlLHQscyl7InVzZSBzdHJpY3QiO3MuZCh0LHtTaW1wbGVEaWFsb2dDb250ZXh0OigpPT5vfSkKO2NvbnN0IG89cyg3Nzk0NzQpLmNyZWF0ZUNvbnRleHQoe2lzU21hbGxUYWJsZXQ6ITEsZGlhbG9nQ2xvc2VIYW5kbGVyOigpPT57fX0pfSw3MjU4NjIoZSx0LHMpeyJ1c2Ugc3RyaWN0IjtzLmQodCx7U2ltcGxlRGlhbG9nOigpPT5FfSk7dmFyIG89cyg3Nzk0NzQpLHI9cyg5MTQ0ODcpLG49cy5uKHIpLGk9cyg4ODA4ODYpLGw9cygxNzk3NzEpLGE9cyg1ODU4MjEpLGM9cygyMzU3MjQpLHU9cyg0MDYxMTApLG09cyg2MDM2MTIpLGg9cyg2MDk1MjgpLGQ9cyg1NTgwMzApLHA9cyg2NzQ3NDkpLHk9cyg2NDkxNjYpLGY9cygxMzg2MzgpLF89cyg5NzE2NTkpLFM9cyg2MDc4MzIpLGc9cygxODQyMiksYj1zKDMzMTg4Myk7ZnVuY3Rpb24gQyhlKXtjb25zdHtkaXNhYmxlZDp0LG5hbWU6cyx0aXRsZTpyLGFwcGVhcmFuY2U6aSxpbnRlbnQ6bCxoYW5kbGVyOmEscmVmZXJlbmNlOmMsZGF0YVFhSWQ6dSx0eXBlOm0sY2xhc3NOYW1lOmh9PWUse2lzU21hbGxUYWJsZXQ6ZCxkaWFsb2dDbG9zZUhhbmRsZXI6Q309KDAsby51c2VDb250ZXh0KShnLlNpbXBsZURpYWxvZ0NvbnRleHQpLHY9KDAsZi5lbnN1cmVOb3ROdWxsKSgoMCxvLnVzZUNvbnRleHQpKFMuU2xvdENvbnRleHQpKSx3PSgwLF8udXNlSXNNb3VudGVkKSgpLFtFLHhdPSgwLG8udXNlU3RhdGUpKCExKTtyZXR1cm4gby5jcmVhdGVFbGVtZW50KHAuQnV0dG9uLHt0eXBlOm0sZGlzYWJsZWQ6dCxyZWZlcmVuY2U6YyxjbGFzc05hbWU6bigpKGIuYWN0aW9uQnV0dG9uLGgsZCYmYi5zbWFsbCksbmFtZTpzLHNpemU6ZD8ibCI6dm9pZCAwLGFwcGVhcmFuY2U6aSxpbnRlbnQ6bCwiZGF0YS1xYS1pZCI6dSxvbkNsaWNrOmZ1bmN0aW9uKCl7aWYoRSlyZXR1cm47Y29uc3QgZT1hKHtkaWFsb2dDbG9zZTpDLGlubmVyTWFuYWdlcjp2fSk7ZSYmKHgoITApLGUudGhlbigoKCk9Pnt3LmN1cnJlbnQmJngoITEpfSkpKX19LG8uY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZTpuKCkoRSYmYi5oaWRkZW5UaXRsZSl9LHIpLEUmJm8uY3JlYXRlRWxlbWVudCh5LkxvYWRlcix7Y29sb3I6InByaW1hcnkiPT09bD8iYmxhY2siOiJ3aGl0ZSJ9KSl9dmFyIHY9cygxNzYyNjgpLHc9cyg4ODgxNTkpO2Z1bmN0aW9uIEUoZSl7Y29uc3R7dGl0bGU6dCxvbkNsb3NlOnMsYWN0aW9uczpyLGRhdGFOYW1lOnAsZGF0YVFhSWQ6eSxwb3B1cERpYWxvZ0NsYXNzTmFtZTpmLGNvbnRlbnRDbGFzc05hbWU6Xyx3cmFwcGVyQ2xhc3NOYW1lOlMsYmFja2Ryb3A6YixjbG9zZU9uT3V0c2lkZUNsaWNrOkU9ITAsc2hvd0Nsb3NlQnV0dG9uOng9ITAsY2xvc2VPbkVzY2FwZVByZXNzOkw9ITAsZXZlbnRzOk49ITAsY2VudGVyZWRPblJlc2l6ZTprLHNob3VsZEF1dG9DbG9zZTpEfT1lOygwLG8udXNlRWZmZWN0KSgoKCk9PihsLnN1YnNjcmliZShtLkNMT1NFX1BPUFVQU19BTkRfRElBTE9HU19DT01NQU5ELHMsbnVsbCksKCk9PntsLnVuc3Vic2NyaWJlKG0uQ0xPU0VfUE9QVVBTX0FORF9ESUFMT0dTX0NPTU1BTkQscyxudWxsKX0pKSxbc10pO2NvbnN0W1QsTV09KDAsby51c2VTdGF0ZSkoITApLEI9KDAsby51c2VSZWYpKG51bGwpLE89KDAsby51c2VSZWYpKG51bGwpO3JldHVybigwLG8udXNlRWZmZWN0KSgoKCk9Pih3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicmVzaXplIixVKSwoKT0+e3dpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJyZXNpemUiLFUpfSkpLFtPLGtdKSxvLmNyZWF0ZUVsZW1lbnQodS5NYXRjaE1lZGlhLHtydWxlOmguRGlhbG9nQnJlYWtwb2ludHMuVGFibGV0U21hbGx9LChsPT5vLmNyZWF0ZUVsZW1lbnQoZy5TaW1wbGVEaWFsb2dDb250ZXh0LlByb3ZpZGVyLHt2YWx1ZTp7aXNTbWFsbFRhYmxldDpsLGRpYWxvZ0Nsb3NlSGFuZGxlcjpzfX0sby5jcmVhdGVFbGVtZW50KGEuUG9wdXBEaWFsb2cse2NsYXNzTmFtZTpuKCkody5wb3B1cERpYWxvZyxmKSxjb21wb25lbnRSZWY6Tyxpc09wZW5lZDpULGJhY2tkcm9wOmIsZGF0YVFhSWQ6eT8/dm9pZCAwLG9uQ2xpY2tCYWNrZHJvcDpOP1Y6dm9pZCAwLG9uQ2xpY2tPdXRzaWRlOkU/Vjp2b2lkIDAsb25LZXlEb3duOkksYXV0b2ZvY3VzOiEwLGZpeGVkQm9keTohMH0sby5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6bigpKHcud3JhcCxTKSwiZGF0YS1uYW1lIjpwLCJkYXRhLXFhLWlkIjp5fSxvLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpuKCkody5tYWluLCF4JiZ3Lm1hcmdpbldpdGhvdXRDbG9zZUJ1dHRvbixsJiZ3LnNtYWxsKX0sdCYmby5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6bigpKHcudGl0bGUsbCYmdy5zbWFsbCl9LHQpLGZ1bmN0aW9uKHQpe2lmKCJodG1sImluIGUpcmV0dXJuIG8uY3JlYXRlRWxlbWVudChkLlRvdWNoU2Nyb2xsQ29udGFpbmVyLHtjbGFzc05hbWU6bigpKHcuY29udGVudCx0JiZ3LnNtYWxsLHcuaHRtbCxfKSxkYW5nZXJvdXNseVNldElubmVySFRNTDp7X19odG1sOmUuaHRtbH19KTtpZigiY29udGVudCJpbiBlKXJldHVybiBvLmNyZWF0ZUVsZW1lbnQoZC5Ub3VjaFNjcm9sbENvbnRhaW5lcix7Y2xhc3NOYW1lOm4oKSh3LmNvbnRlbnQsdCYmdy5zbWFsbCxfKX0sZS5jb250ZW50KTtyZXR1cm4gbnVsbH0obCksciYmci5sZW5ndGg+MCYmby5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6bigpKHcuZm9vdGVyLGwmJncuc21hbGwpfSxyLm1hcCgoKGUsdCk9Pm8uY3JlYXRlRWxlbWVudChDLHsuLi5lLGtleTplLm5hbWUsZGF0YVFhSWQ6YCR7ZS5uYW1lfS1idG5gLHJlZmVyZW5jZTowPT09dD9COnZvaWQgMH0pKSkpKSx4JiZvLmNyZWF0ZUVsZW1lbnQoaS5OYXZCdXR0b24se2FyaWFMYWJlbDoiY2xvc2UiLHNpemU6Im1lZGl1bSIscHJlc2VydmVQYWRkaW5nczohMCxjbGFzc05hbWU6bigpKHcuY2xvc2UsbCYmdy5zbWFsbCksaWNvbjp2LG9uQ2xpY2s6ViwiZGF0YS1uYW1lIjoiY2xvc2UiLCJkYXRhLXJvbGUiOiJidXR0b24ifSkpKSkpKTtmdW5jdGlvbiBJKGUpe3N3aXRjaCgoMCxjLmhhc2hGcm9tRXZlbnQpKGUpKXtjYXNlIDI3OlQmJkwmJihlLnByZXZlbnREZWZhdWx0KCkscygpKTticmVhaztjYXNlIDEzOgpjb25zdCB0PWRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ7aWYoZS5kZWZhdWx0UHJldmVudGVkfHx0IGluc3RhbmNlb2YgSFRNTEFuY2hvckVsZW1lbnR8fHQgaW5zdGFuY2VvZiBIVE1MQnV0dG9uRWxlbWVudCYmInN1Ym1pdCIhPT10LnR5cGUpcmV0dXJuO2lmKFQmJnImJnIubGVuZ3RoKXtlLnByZXZlbnREZWZhdWx0KCk7Y29uc3QgdD1CLmN1cnJlbnQ7dCYmdC5jbGljaygpfX19ZnVuY3Rpb24gVigpe0QmJk0oITEpLHMoKX1mdW5jdGlvbiBVKCl7ayYmTy5jdXJyZW50Py5jZW50ZXJBbmRGaXQ/LigpfX19LDMzMjY2MChlLHQscyl7InVzZSBzdHJpY3QiO3ZhciBvO3MuZCh0LHtEaWFsb2dFdmVudERpc3BhdGNoZXI6KCk9Pmx9KSxmdW5jdGlvbihlKXtlLk9wZW49ImRpYWxvZy1vcGVuIixlLkNsb3NlPSJkaWFsb2ctY2xvc2UiLGUuRnVsbHNjcmVlbk9uPSJkaWFsb2ctZnVsbHNjcmVlbi1vbiIsZS5GdWxsc2NyZWVuT2ZmPSJkaWFsb2ctZnVsbHNjcmVlbi1vZmYifShvfHwobz17fSkpO3ZhciByPXMoMjIxMDYxKSxuPXMoMTUwMTUwKTtjb25zdCBpPSgwLHIuZ2V0TG9nZ2VyKSgiRGlhbG9nRXZlbnREaXNwYXRjaGVyIik7Y2xhc3MgbHtjb25zdHJ1Y3Rvcigpe3RoaXMuX29wZW5TZXNzaW9uSWQ9bnVsbH1kaXNwYXRjaChlKXtpZigiZGlhbG9nLW9wZW4iPT09ZSl7aWYobnVsbCE9PXRoaXMuX29wZW5TZXNzaW9uSWQpcmV0dXJuIHZvaWQgaS5sb2dFcnJvcigiTXVsdGlwbGUgY2FsbHMgdG8gb3BlbiBkaWFsb2ciKTt0aGlzLl9vcGVuU2Vzc2lvbklkPSgwLG4ucmFuZG9tSGFzaCkoKX1udWxsIT09dGhpcy5fb3BlblNlc3Npb25JZD8od2luZG93LmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KGUse2J1YmJsZXM6ITAsZGV0YWlsOntkaWFsb2dTZXNzaW9uSWQ6dGhpcy5fb3BlblNlc3Npb25JZH19KSksImRpYWxvZy1jbG9zZSI9PT1lJiYodGhpcy5fb3BlblNlc3Npb25JZD1udWxsKSk6aS5sb2dFcnJvcigiRW1wdHkgb3BlbiBkaWFsb2cgc2Vzc2lvbiBpZCIpfX19LDE3NjI2OChlKXtlLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMTcgMTciIHdpZHRoPSIxNyIgaGVpZ2h0PSIxNyIgZmlsbD0iY3VycmVudENvbG9yIj48cGF0aCBkPSJtLjU4IDEuNDIuODItLjgyIDE1IDE1LS44Mi44MnoiLz48cGF0aCBkPSJtLjU4IDE1LjU4IDE1LTE1IC44Mi44Mi0xNSAxNXoiLz48L3N2Zz4nfX1dKTs="}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/35794.0a273bafc5de50a0d21d.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:13.954Z","timestamp":1785148033954,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/35794.0a273bafc5de50a0d21d.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:13 GMT\r\ncontent-type: text/css; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a608300-929\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Wed, 22 Jul 2026 08:44:48 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/22/2026 11:01:21\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 2537661dab0c712075bafa5767558181\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":2345,"size_decoded":1476,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with very long lines (2345), with no line terminators","md5":"070dbbdaf81468918cc345dc05f9a381","sha1":"2ab8968ccfc58991cdc8860741aecf9533393e0f","sha256":"8782990aacf2d956262c5608c1f9f9be2c54e5b100e7e1fd85521c2424944d72","sha512":"c162784e77aaebd46d2c606d8ec9f965be7c21092d5143c64badbc4cc2b380589455fd4eb60cdd25a9cff11dceab520faac1d1753d1b999596c4c462a0fa0e43","ssdeep":"","tlshash":"e7418bafa148d8b0fe116198b3dd638db6e5ec70a90a05cdb633b839cce17f15d50158","first_seen":"2026-07-22T16:00:00.426214Z","last_seen":"2026-07-27T12:53:42.42775Z","times_seen":350,"resource_available":false,"data":"LnNtYWxsLXRXRElDVGF5ey0tdWktbGliLXByaXZhdGUtc3dpdGNoVmlldy1zaXplOjN9Lm1lZGl1bS10V0RJQ1RheXstLXVpLWxpYi1wcml2YXRlLXN3aXRjaFZpZXctc2l6ZTo0fS5sYXJnZS10V0RJQ1RheXstLXVpLWxpYi1wcml2YXRlLXN3aXRjaFZpZXctc2l6ZTo1fS5zd2l0Y2hWaWV3LXRXRElDVGF5ey0tdWktbGliLXNpemUtZGVmOnZhcigtLXVpLWxpYi1pbi1zd2l0Y2hWaWV3LXNpemUsdmFyKC0tdWktbGliLXByaXZhdGUtc3dpdGNoVmlldy1zaXplLDQpKTstLXVpLWxpYi1zaXplLWRlZi1zbWFsbDpjYWxjKG1heCgwLCAxIC0gKHZhcigtLXVpLWxpYi1zaXplLWRlZikgLSAzKSAqICh2YXIoLS11aS1saWItc2l6ZS1kZWYpIC0gMykpKTstLXVpLWxpYi1zaXplLWRlZi1tZWRpdW06Y2FsYyhtYXgoMCwgMSAtICh2YXIoLS11aS1saWItc2l6ZS1kZWYpIC0gNCkgKiAodmFyKC0tdWktbGliLXNpemUtZGVmKSAtIDQpKSk7LS11aS1saWItc2l6ZS1kZWYtbGFyZ2U6Y2FsYyhtYXgoMCwgMSAtICh2YXIoLS11aS1saWItc2l6ZS1kZWYpIC0gNSkgKiAodmFyKC0tdWktbGliLXNpemUtZGVmKSAtIDUpKSk7ZGlzcGxheTpibG9jaztwb3NpdGlvbjpyZWxhdGl2ZTstLXN3aXRjaC1oZWlnaHQ6Y2FsYyh2YXIoLS11aS1saWItc2l6ZS1kZWYtc21hbGwpKjIwcHggKyB2YXIoLS11aS1saWItc2l6ZS1kZWYtbWVkaXVtKSoyOHB4ICsgdmFyKC0tdWktbGliLXNpemUtZGVmLWxhcmdlKSozNHB4KTtoZWlnaHQ6dmFyKC0tc3dpdGNoLWhlaWdodCk7LS1zd2l0Y2gtd2lkdGg6Y2FsYyh2YXIoLS11aS1saWItc2l6ZS1kZWYtc21hbGwpKjM4cHggKyB2YXIoLS11aS1saWItc2l6ZS1kZWYtbWVkaXVtKSo1NHB4ICsgdmFyKC0tdWktbGliLXNpemUtZGVmLWxhcmdlKSo2NHB4KTt3aWR0aDp2YXIoLS1zd2l0Y2gtd2lkdGgpOy0tc3dpdGNoLXBhZGRpbmc6Y2FsYyh2YXIoLS11aS1saWItc2l6ZS1kZWYtc21hbGwpKjNweCArIHZhcigtLXVpLWxpYi1zaXplLWRlZi1tZWRpdW0pKjRweCArIHZhcigtLXVpLWxpYi1zaXplLWRlZi1sYXJnZSkqNXB4KTstLXN3aXRjaC10aHVtYjpjYWxjKHZhcigtLXN3aXRjaC1oZWlnaHQpIC0gdmFyKC0tc3dpdGNoLXBhZGRpbmcpKjIpOy0tZGVmYXVsdC1jb2xvcjp2YXIoLS1jb2xvci1jb250YWluZXItZmlsbC1wcmltYXJ5LW5ldXRyYWwpOy0tc3dpdGNoLWNvbG9yOnZhcigtLXVpLWxpYi1zd2l0Y2hWaWV3LWNvbG9yLHZhcigtLWRlZmF1bHQtY29sb3IpKX0uc3dpdGNoVmlldy10V0RJQ1RheS5jaGVja2VkLXRXRElDVGF5ey0tZGVmYXVsdC1jb2xvcjp2YXIoLS1jb2xvci1jb250YWluZXItZmlsbC1wcmltYXJ5LW5ldXRyYWwtZXh0cmEtYm9sZCl9LmRpc2FibGVkLXRXRElDVGF5e29wYWNpdHk6LjV9LnRyYWNrLXRXRElDVGF5e2JhY2tncm91bmQtY29sb3I6dmFyKC0tc3dpdGNoLWNvbG9yKTtib3JkZXItY29sb3I6dmFyKC0tc3dpdGNoLWNvbG9yKTtib3JkZXItcmFkaXVzOjIwcHg7Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci13aWR0aDoxcHg7Ym94LXNpemluZzpib3JkZXItYm94O2Rpc3BsYXk6YmxvY2s7aGVpZ2h0OjEwMCU7aW5zZXQtaW5saW5lLXN0YXJ0OjA7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7d2lkdGg6MTAwJX0udGh1bWItdFdESUNUYXl7YmFja2dyb3VuZDp2YXIoLS1jb2xvci1jb250YWluZXItZmlsbC1xdWluYXJ5LWludmVyc2UpO2JvcmRlci1yYWRpdXM6NTAlO2Rpc3BsYXk6YmxvY2s7aGVpZ2h0OnZhcigtLXN3aXRjaC10aHVtYik7dHJhbnNmb3JtOnRyYW5zbGF0ZSh2YXIoLS1zd2l0Y2gtcGFkZGluZyksdmFyKC0tc3dpdGNoLXBhZGRpbmcpKTt0cmFuc2l0aW9uLWR1cmF0aW9uOi4yNXM7dHJhbnNpdGlvbi1wcm9wZXJ0eTp0cmFuc2Zvcm07dHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246ZWFzZS1vdXQ7d2lkdGg6dmFyKC0tc3dpdGNoLXRodW1iKX0udGh1bWItdFdESUNUYXk6ZGlyKHJ0bCl7dHJhbnNmb3JtOnRyYW5zbGF0ZShjYWxjKHZhcigtLXN3aXRjaC1wYWRkaW5nKSotMSksdmFyKC0tc3dpdGNoLXBhZGRpbmcpKX0uY2hlY2tlZC10V0RJQ1RheSAudGh1bWItdFdESUNUYXl7dHJhbnNmb3JtOnRyYW5zbGF0ZShjYWxjKHZhcigtLXN3aXRjaC13aWR0aCkgLSB2YXIoLS1zd2l0Y2gtdGh1bWIpIC0gdmFyKC0tc3dpdGNoLXBhZGRpbmcpKSx2YXIoLS1zd2l0Y2gtcGFkZGluZykpfS5jaGVja2VkLXRXRElDVGF5IC50aHVtYi10V0RJQ1RheTpkaXIocnRsKXt0cmFuc2Zvcm06dHJhbnNsYXRlKGNhbGMoKHZhcigtLXN3aXRjaC13aWR0aCkgLSB2YXIoLS1zd2l0Y2gtdGh1bWIpIC0gdmFyKC0tc3dpdGNoLXBhZGRpbmcpKSotMSksdmFyKC0tc3dpdGNoLXBhZGRpbmcpKX0="}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/91855.009764da61bd8c8c44be.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.766Z","timestamp":1785148034766,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/91855.009764da61bd8c8c44be.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\ncontent-type: text/css; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a58ab11-3ec8\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Thu, 16 Jul 2026 09:57:37 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/16/2026 11:03:24\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: c93836dc4ce533c1a56be3a276f8fbe7\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":16072,"size_decoded":3208,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with very long lines (16072), with no line terminators","md5":"5af480f71e4ef9ec77601345a4929f5d","sha1":"ecefed36b921685bdd5209326cb6df8597dde83a","sha256":"3ebda9c5708c386688759cbfcdb87d7945032ec17792e052beb13dc8e324634f","sha512":"70df359a37d0201c61d77f5f9bd228c85b53c7ff114d8440380b0adff4052ffe3a1f7827d0ce1e96b173f732ba5064899dc6736b12d5b6899ed48f2562fb9e5d","ssdeep":"192:+8o3ziODLTrekcQDLBrvQXsDLHrH41UDLZrZwJL4DL84rp4P4wNvHNoIh2EHDc5n:+8o1vHvQ0Q6UlNvHNoIwyDVjEZ9eYJ","tlshash":"917210872355d8647877f6cd66aa63a952008c3ad002cefdc072aebd92c37f911e5f12","first_seen":"2026-07-16T13:40:49.854598Z","last_seen":"2026-07-27T12:57:37.021039Z","times_seen":243,"resource_available":false,"data":"LnNjcm9sbFdyYXAtRmFWMGJLN2V7bWFyZ2luOi00cHg7bWluLWhlaWdodDoxMDAlO3BhZGRpbmc6NHB4O3Bvc2l0aW9uOnJlbGF0aXZlOy13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTt1c2VyLXNlbGVjdDpub25lO3dpZHRoOjEwMCV9LnNjcm9sbFdyYXAtRmFWMGJLN2Uub3ZlcmZsb3dTY3JvbGwtRmFWMGJLN2V7b3ZlcmZsb3cteDphdXRvO292ZXJmbG93LXk6aGlkZGVuOy13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOnRvdWNofUBzdXBwb3J0cyAoLW1vei1hcHBlYXJhbmNlOm5vbmUpey5zY3JvbGxXcmFwLUZhVjBiSzdlLm92ZXJmbG93U2Nyb2xsLUZhVjBiSzdle3Njcm9sbGJhci13aWR0aDpub25lfX0uc2Nyb2xsV3JhcC1GYVYwYks3ZS5vdmVyZmxvd1Njcm9sbC1GYVYwYks3ZS5zYi1zY3JvbGxiYXItd3JhcHtkaXNwbGF5Om5vbmV9LnNjcm9sbFdyYXAtRmFWMGJLN2Uub3ZlcmZsb3dTY3JvbGwtRmFWMGJLN2U6Oi13ZWJraXQtc2Nyb2xsYmFye2Rpc3BsYXk6bm9uZTtoZWlnaHQ6MDt3aWR0aDowfS5zY3JvbGxXcmFwLUZhVjBiSzdlLm92ZXJmbG93U2Nyb2xsLUZhVjBiSzdlOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiwuc2Nyb2xsV3JhcC1GYVYwYks3ZS5vdmVyZmxvd1Njcm9sbC1GYVYwYks3ZTo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2t7ZGlzcGxheTpub25lfS5zY3JvbGxXcmFwLUZhVjBiSzdlLm92ZXJmbG93U2Nyb2xsLUZhVjBiSzdlOjotd2Via2l0LXNjcm9sbGJhci1jb3JuZXJ7ZGlzcGxheTpub25lfS5zcXVhcmVUYWJzLUZhVjBiSzdle2Rpc3BsYXk6ZmxleDtmbGV4LWZsb3c6cm93IG5vd3JhcDstLXVpLWxpYi1wcml2YXRlLXNxdWFyZVRhYnMtbWFyZ2luOnZhcigtLXVpLWxpYi1wcml2YXRlLXNxdWFyZVRhYnMtZ2FwKX06bm90KC5vdmVyZmxvd1Njcm9sbC1GYVYwYks3ZSkgLnNxdWFyZVRhYnMtRmFWMGJLN2V7cGFkZGluZzowIHZhcigtLXVpLWxpYi1zcXVhcmVUYWJzLWhvcml6b250YWwtc2Nyb2xsLXBhZGRpbmcsMCl9Lm92ZXJmbG93U2Nyb2xsLUZhVjBiSzdlIC5zcXVhcmVUYWJzLUZhVjBiSzdle3BhZGRpbmctaW5saW5lLXN0YXJ0OnZhcigtLXVpLWxpYi1zcXVhcmVUYWJzLWhvcml6b250YWwtc2Nyb2xsLXBhZGRpbmcsMCl9Lm92ZXJmbG93U2Nyb2xsLUZhVjBiSzdlIC5zcXVhcmVUYWJzLUZhVjBiSzdlOmFmdGVye2NvbnRlbnQ6IiI7ZmxleC1zaHJpbms6MDt3aWR0aDpjYWxjKHZhcigtLXVpLWxpYi1zcXVhcmVUYWJzLWhvcml6b250YWwtc2Nyb2xsLXBhZGRpbmcsIDBweCkgKyA0cHgpfS5vdmVyZmxvd1dyYXAtRmFWMGJLN2UgLnNxdWFyZVRhYnMtRmFWMGJLN2V7LS11aS1saWItcHJpdmF0ZS1zcXVhcmVUYWJzLW1hcmdpbjowO2ZsZXgtd3JhcDp3cmFwO2dhcDp2YXIoLS11aS1saWItcHJpdmF0ZS1zcXVhcmVUYWJzLWdhcCl9LnNxdWFyZVRhYnMtRmFWMGJLN2UgLmNvbnRlbnQtRmFWMGJLN2V7YWxpZ24taXRlbXM6Y2VudGVyO2Rpc3BsYXk6ZmxleH0uc3F1YXJlVGFicy1GYVYwYks3ZSAudmVydGljYWxDb250ZW50LUZhVjBiSzdle2Rpc3BsYXk6YmxvY2s7bWF4LXdpZHRoOjEwMCU7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7d2hpdGUtc3BhY2U6bm93cmFwO3dpZHRoOmZpdC1jb250ZW50fS52ZXJ0aWNhbC1GYVYwYks3ZXtmbGV4LWZsb3c6Y29sdW1ufS54c21hbGwtRmFWMGJLN2UgLnNxdWFyZVRhYkJ1dHRvbi1GYVYwYks3ZTpub3QoOmZpcnN0LWNoaWxkKXttYXJnaW4taW5saW5lLXN0YXJ0OnZhcigtLXVpLWxpYi1wcml2YXRlLXNxdWFyZVRhYnMtbWFyZ2luKX0ueHNtYWxsLUZhVjBiSzdlIC5zcXVhcmVUYWJCdXR0b24tRmFWMGJLN2U6aGFzKC5zdGFydFNsb3RXcmFwLUZhVjBiSzdlKXtwYWRkaW5nLWlubGluZS1zdGFydDo2cHh9LnhzbWFsbC1GYVYwYks3ZSAuc3F1YXJlVGFiQnV0dG9uLUZhVjBiSzdlOmhhcyguc3RhcnRTbG90V3JhcC1GYVYwYks3ZSk6bm90KDpoYXMoLmNvbnRlbnQtRmFWMGJLN2UpKXthbGlnbi1pdGVtczpjZW50ZXI7cGFkZGluZzowfS54c21hbGwtRmFWMGJLN2UgLnNxdWFyZVRhYkJ1dHRvbi1GYVYwYks3ZTpoYXMoLmVuZFNsb3RXcmFwLUZhVjBiSzdlKTpoYXMoLmNvbnRlbnQtRmFWMGJLN2Upe3BhZGRpbmctaW5saW5lLWVuZDo2cHh9LnhzbWFsbC1GYVYwYks3ZSAuZW5kU2xvdFdyYXAtRmFWMGJLN2UsLnhzbWFsbC1GYVYwYks3ZSAuZW5kVXBwZXJTbG90LUZhVjBiSzdlLC54c21hbGwtRmFWMGJLN2UgLnN0YXJ0U2xvdFdyYXAtRmFWMGJLN2V7YWxpZ24taXRlbXM6Y2VudGVyO2Rpc3BsYXk6aW5saW5lLWZsZXg7anVzdGlmeS1jb250ZW50OmNlbnRlcjt3aGl0ZS1zcGFjZTpub3JtYWx9LnhzbWFsbC1GYVYwYks3ZSAuZW5kU2xvdFdyYXAtRmFWMGJLN2UsLnhzbWFsbC1GYVYwYks3ZSAuc3RhcnRTbG90V3JhcC1GYVYwYks3ZXttYXgtaGVpZ2h0Om1heC1jb250ZW50O21heC13aWR0aDptYXgtY29udGVudH0ueHNtYWxsLUZhVjBiSzdlIC5lbmRVcHBlclNsb3QtRmFWMGJLN2V7aW5zZXQtaW5saW5lLWVuZDotMnB4O3Bvc2l0aW9uOmFic29sdXRlO3RvcDotMnB4O3otaW5kZXg6MTB9LnhzbWFsbC1GYVYwYks3ZSAuc3RhcnRTbG90V3JhcC1GYVYwYks3ZXttYXJnaW4taW5saW5lLWVuZDo0cHh9LnhzbWFsbC1GYVYwYks3ZSAuZW5kU2xvdFdyYXAtRmFWMGJLN2V7bWFyZ2luLWlubGluZS1zdGFydDo0cHh9LnhzbWFsbC1GYVYwYks3ZSAuc3RhcnRTbG90V3JhcEljb25Pbmx5LUZhVjBiSzdle21hcmdpbi1pbmxpbmUtZW5kOjB9LnNtYWxsLUZhVjBiSzdlIC5zcXVhcmVUYWJCdXR0b24tRmFWMGJLN2U6bm90KDpmaXJzdC1jaGlsZCl7bWFyZ2luLWlubGluZS1zdGFydDp2YXIoLS11aS1saWItcHJpdmF0ZS1zcXVhcmVUYWJzLW1hcmdpbil9LnNtYWxsLUZhVjBiSzdlIC5zcXVhcmVUYWJCdXR0b24tRmFWMGJLN2U6aGFzKC5zdGFydFNsb3RXcmFwLUZhVjBiSzdlKXtwYWRkaW5nLWlubGluZS1zdGFydDoxMHB4fS5zbWFsbC1GYVYwYks3ZSAuc3F1YXJlVGFiQnV0dG9uLUZhVjBiSzdlOmhhcyguc3RhcnRTbG90V3JhcC1GYVYwYks3ZSk6bm90KDpoYXMoLmNvbnRlbnQtRmFWMGJLN2UpKXthbGlnbi1pdGVtczpjZW50ZXI7cGFkZGluZzowfS5zbWFsbC1GYVYwYks3ZSAuc3F1YXJlVGFiQnV0dG9uLUZhVjBiSzdlOmhhcyguZW5kU2xvdFdyYXAtRmFWMGJLN2UpOmhhcyguY29udGVudC1GYVYwYks3ZSl7cGFkZGluZy1pbmxpbmUtZW5kOjEwcHh9LnNtYWxsLUZhVjBiSzdlIC5lbmRTbG90V3JhcC1GYVYwYks3ZSwuc21hbGwtRmFWMGJLN2UgLmVuZFVwcGVyU2xvdC1GYVYwYks3ZSwuc21hbGwtRmFWMGJLN2UgLnN0YXJ0U2xvdFdyYXAtRmFWMGJLN2V7YWxpZ24taXRlbXM6Y2VudGVyO2Rpc3BsYXk6aW5saW5lLWZsZXg7anVzdGlmeS1jb250ZW50OmNlbnRlcjt3aGl0ZS1zcGFjZTpub3JtYWx9LnNtYWxsLUZhVjBiSzdlIC5lbmRTbG90V3JhcC1GYVYwYks3ZSwuc21hbGwtRmFWMGJLN2UgLnN0YXJ0U2xvdFdyYXAtRmFWMGJLN2V7bWF4LWhlaWdodDptYXgtY29udGVudDttYXgtd2lkdGg6bWF4LWNvbnRlbnR9LnNtYWxsLUZhVjBiSzdlIC5lbmRVcHBlclNsb3QtRmFWMGJLN2V7aW5zZXQtaW5saW5lLWVuZDotMnB4O3Bvc2l0aW9uOmFic29sdXRlO3RvcDotMnB4O3otaW5kZXg6MTB9LnNtYWxsLUZhVjBiSzdlIC5zdGFydFNsb3RXcmFwLUZhVjBiSzdle21hcmdpbi1pbmxpbmUtZW5kOjRweH0uc21hbGwtRmFWMGJLN2UgLmVuZFNsb3RXcmFwLUZhVjBiSzdle21hcmdpbi1pbmxpbmUtc3RhcnQ6NHB4fS5zbWFsbC1GYVYwYks3ZSAuc3RhcnRTbG90V3JhcEljb25Pbmx5LUZhVjBiSzdle21hcmdpbi1pbmxpbmUtZW5kOjB9Lm1lZGl1bS1GYVYwYks3ZSAuc3F1YXJlVGFiQnV0dG9uLUZhVjBiSzdlOm5vdCg6Zmlyc3QtY2hpbGQpe21hcmdpbi1pbmxpbmUtc3RhcnQ6dmFyKC0tdWktbGliLXByaXZhdGUtc3F1YXJlVGFicy1tYXJnaW4pfS5tZWRpdW0tRmFWMGJLN2UgLnNxdWFyZVRhYkJ1dHRvbi1GYVYwYks3ZTpoYXMoLnN0YXJ0U2xvdFdyYXAtRmFWMGJLN2Upe3BhZGRpbmctaW5saW5lLXN0YXJ0OjEycHh9Lm1lZGl1bS1GYVYwYks3ZSAuc3F1YXJlVGFiQnV0dG9uLUZhVjBiSzdlOmhhcyguc3RhcnRTbG90V3JhcC1GYVYwYks3ZSk6bm90KDpoYXMoLmNvbnRlbnQtRmFWMGJLN2UpKXthbGlnbi1pdGVtczpjZW50ZXI7cGFkZGluZzowfS5tZWRpdW0tRmFWMGJLN2UgLnNxdWFyZVRhYkJ1dHRvbi1GYVYwYks3ZTpoYXMoLmVuZFNsb3RXcmFwLUZhVjBiSzdlKTpoYXMoLmNvbnRlbnQtRmFWMGJLN2Upe3BhZGRpbmctaW5saW5lLWVuZDoxMnB4fS5tZWRpdW0tRmFWMGJLN2UgLmVuZFNsb3RXcmFwLUZhVjBiSzdlLC5tZWRpdW0tRmFWMGJLN2UgLmVuZFVwcGVyU2xvdC1GYVYwYks3ZSwubWVkaXVtLUZhVjBiSzdlIC5zdGFydFNsb3RXcmFwLUZhVjBiSzdle2FsaWduLWl0ZW1zOmNlbnRlcjtkaXNwbGF5OmlubGluZS1mbGV4O2p1c3RpZnktY29udGVudDpjZW50ZXI7d2hpdGUtc3BhY2U6bm9ybWFsfS5tZWRpdW0tRmFWMGJLN2UgLmVuZFNsb3RXcmFwLUZhVjBiSzdlLC5tZWRpdW0tRmFWMGJLN2UgLnN0YXJ0U2xvdFdyYXAtRmFWMGJLN2V7bWF4LWhlaWdodDptYXgtY29udGVudDttYXgtd2lkdGg6bWF4LWNvbnRlbnR9Lm1lZGl1bS1GYVYwYks3ZSAuZW5kVXBwZXJTbG90LUZhVjBiSzdle2luc2V0LWlubGluZS1lbmQ6LTJweDtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6LTJweDt6LWluZGV4OjEwfS5tZWRpdW0tRmFWMGJLN2UgLnN0YXJ0U2xvdFdyYXAtRmFWMGJLN2V7bWFyZ2luLWlubGluZS1lbmQ6NHB4fS5tZWRpdW0tRmFWMGJLN2UgLmVuZFNsb3RXcmFwLUZhVjBiSzdle21hcmdpbi1pbmxpbmUtc3RhcnQ6NHB4fS5tZWRpdW0tRmFWMGJLN2UgLnN0YXJ0U2xvdFdyYXBJY29uT25seS1GYVYwYks3ZXttYXJnaW4taW5saW5lLWVuZDowfS5tZWRpdW1XaXRoU21hbGxGb250LUZhVjBiSzdlIC5zcXVhcmVUYWJCdXR0b24tRmFWMGJLN2U6bm90KDpmaXJzdC1jaGlsZCl7bWFyZ2luLWlubGluZS1zdGFydDp2YXIoLS11aS1saWItcHJpdmF0ZS1zcXVhcmVUYWJzLW1hcmdpbil9Lm1lZGl1bVdpdGhTbWFsbEZvbnQtRmFWMGJLN2UgLnNxdWFyZVRhYkJ1dHRvbi1GYVYwYks3ZTpoYXMoLnN0YXJ0U2xvdFdyYXAtRmFWMGJLN2Upe3BhZGRpbmctaW5saW5lLXN0YXJ0OjEycHh9Lm1lZGl1bVdpdGhTbWFsbEZvbnQtRmFWMGJLN2UgLnNxdWFyZVRhYkJ1dHRvbi1GYVYwYks3ZTpoYXMoLnN0YXJ0U2xvdFdyYXAtRmFWMGJLN2UpOm5vdCg6aGFzKC5jb250ZW50LUZhVjBiSzdlKSl7YWxpZ24taXRlbXM6Y2VudGVyO3BhZGRpbmc6MH0ubWVkaXVtV2l0aFNtYWxsRm9udC1GYVYwYks3ZSAuc3F1YXJlVGFiQnV0dG9uLUZhVjBiSzdlOmhhcyguZW5kU2xvdFdyYXAtRmFWMGJLN2UpOmhhcyguY29udGVudC1GYVYwYks3ZSl7cGFkZGluZy1pbmxpbmUtZW5kOjEycHh9Lm1lZGl1bVdpdGhTbWFsbEZvbnQtRmFWMGJLN2UgLmVuZFNsb3RXcmFwLUZhVjBiSzdlLC5tZWRpdW1XaXRoU21hbGxGb250LUZhVjBiSzdlIC5lbmRVcHBlclNsb3QtRmFWMGJLN2UsLm1lZGl1bVdpdGhTbWFsbEZvbnQtRmFWMGJLN2UgLnN0YXJ0U2xvdFdyYXAtRmFWMGJLN2V7YWxpZ24taXRlbXM6Y2VudGVyO2Rpc3BsYXk6aW5saW5lLWZsZXg7anVzdGlmeS1jb250ZW50OmNlbnRlcjt3aGl0ZS1zcGFjZTpub3JtYWx9Lm1lZGl1bVdpdGhTbWFsbEZvbnQtRmFWMGJLN2UgLmVuZFNsb3RXcmFwLUZhVjBiSzdlLC5tZWRpdW1XaXRoU21hbGxGb250LUZhVjBiSzdlIC5zdGFydFNsb3RXcmFwLUZhVjBiSzdle21heC1oZWlnaHQ6bWF4LWNvbnRlbnQ7bWF4LXdpZHRoOm1heC1jb250ZW50fS5tZWRpdW1XaXRoU21hbGxGb250LUZhVjBiSzdlIC5lbmRVcHBlclNsb3QtRmFWMGJLN2V7aW5zZXQtaW5saW5lLWVuZDotMnB4O3Bvc2l0aW9uOmFic29sdXRlO3RvcDotMnB4O3otaW5kZXg6MTB9Lm1lZGl1bVdpdGhTbWFsbEZvbnQtRmFWMGJLN2UgLnN0YXJ0U2xvdFdyYXAtRmFWMGJLN2V7bWFyZ2luLWlubGluZS1lbmQ6NHB4fS5tZWRpdW1XaXRoU21hbGxGb250LUZhVjBiSzdlIC5lbmRTbG90V3JhcC1GYVYwYks3ZXttYXJnaW4taW5saW5lLXN0YXJ0OjRweH0ubWVkaXVtV2l0aFNtYWxsRm9udC1GYVYwYks3ZSAuc3RhcnRTbG90V3JhcEljb25Pbmx5LUZhVjBiSzdle21hcmdpbi1pbmxpbmUtZW5kOjB9LnhsYXJnZS1GYVYwYks3ZSAuc3F1YXJlVGFiQnV0dG9uLUZhVjBiSzdlOm5vdCg6Zmlyc3QtY2hpbGQpe21hcmdpbi1pbmxpbmUtc3RhcnQ6dmFyKC0tdWktbGliLXByaXZhdGUtc3F1YXJlVGFicy1tYXJnaW4pfS54bGFyZ2UtRmFWMGJLN2UgLnNxdWFyZVRhYkJ1dHRvbi1GYVYwYks3ZTpoYXMoLnN0YXJ0U2xvdFdyYXAtRmFWMGJLN2Upe3BhZGRpbmctaW5saW5lLXN0YXJ0OjIycHh9LnhsYXJnZS1GYVYwYks3ZSAuc3F1YXJlVGFiQnV0dG9uLUZhVjBiSzdlOmhhcyguc3RhcnRTbG90V3JhcC1GYVYwYks3ZSk6bm90KDpoYXMoLmNvbnRlbnQtRmFWMGJLN2UpKXthbGlnbi1pdGVtczpjZW50ZXI7cGFkZGluZzowfS54bGFyZ2UtRmFWMGJLN2UgLnNxdWFyZVRhYkJ1dHRvbi1GYVYwYks3ZTpoYXMoLmVuZFNsb3RXcmFwLUZhVjBiSzdlKTpoYXMoLmNvbnRlbnQtRmFWMGJLN2Upe3BhZGRpbmctaW5saW5lLWVuZDoyMnB4fS54bGFyZ2UtRmFWMGJLN2UgLmVuZFNsb3RXcmFwLUZhVjBiSzdlLC54bGFyZ2UtRmFWMGJLN2UgLmVuZFVwcGVyU2xvdC1GYVYwYks3ZSwueGxhcmdlLUZhVjBiSzdlIC5zdGFydFNsb3RXcmFwLUZhVjBiSzdle2FsaWduLWl0ZW1zOmNlbnRlcjtkaXNwbGF5OmlubGluZS1mbGV4O2p1c3RpZnktY29udGVudDpjZW50ZXI7d2hpdGUtc3BhY2U6bm9ybWFsfS54bGFyZ2UtRmFWMGJLN2UgLmVuZFNsb3RXcmFwLUZhVjBiSzdlLC54bGFyZ2UtRmFWMGJLN2UgLnN0YXJ0U2xvdFdyYXAtRmFWMGJLN2V7bWF4LWhlaWdodDptYXgtY29udGVudDttYXgtd2lkdGg6bWF4LWNvbnRlbnR9LnhsYXJnZS1GYVYwYks3ZSAuZW5kVXBwZXJTbG90LUZhVjBiSzdle2luc2V0LWlubGluZS1lbmQ6LTJweDtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6LTJweDt6LWluZGV4OjEwfS54bGFyZ2UtRmFWMGJLN2UgLnN0YXJ0U2xvdFdyYXAtRmFWMGJLN2V7bWFyZ2luLWlubGluZS1lbmQ6OHB4fS54bGFyZ2UtRmFWMGJLN2UgLmVuZFNsb3RXcmFwLUZhVjBiSzdle21hcmdpbi1pbmxpbmUtc3RhcnQ6OHB4fS54bGFyZ2UtRmFWMGJLN2UgLnN0YXJ0U2xvdFdyYXBJY29uT25seS1GYVYwYks3ZXttYXJnaW4taW5saW5lLWVuZDowfS5zcXVhcmVUYWJDb3VudGVyLUZhVjBiSzdle3otaW5kZXg6MTB9W2RhdGEtdGhlbWU9bGlnaHRdey0tXzAtU0VqaTojMDAwMDstLV8xLVNFamk6dmFyKC0tY29sb3ItY29sZC1ncmF5LTE1MCk7LS1fMi1TRWppOnZhcigtLWNvbG9yLWNvbGQtZ3JheS05MDApOy0tXzMtU0VqaTp2YXIoLS1jb2xvci1jb2xkLWdyYXktMTAwKX1bZGF0YS10aGVtZT1kYXJrXXstLV8wLVNFamk6IzAwMDA7LS1fMS1TRWppOnZhcigtLWNvbG9yLWNvbGQtZ3JheS03NTApOy0tXzItU0VqaTp2YXIoLS1jb2xvci13aGl0ZSk7LS1fMy1TRWppOnZhcigtLWNvbG9yLWNvbGQtZ3JheS04MDApfS5zcXVhcmVUYWJCdXR0b24tUktLVFJoWjZ7YWxpZ24taXRlbXM6Y2VudGVyO2JhY2tncm91bmQtY29sb3I6dmFyKC0tXzAtU0VqaSk7Ym9yZGVyOm5vbmU7Ym9yZGVyLXJhZGl1czo4cHg7Y29sb3I6dmFyKC0tY29sb3ItdGV4dC1wcmltYXJ5KTtkaXNwbGF5OmZsZXg7ZmxleC1mbG93OmNvbHVtbiBub3dyYXA7ZmxleC1zaHJpbms6MDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOy13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjp0cmFuc3BhcmVudDtjdXJzb3I6ZGVmYXVsdH0uc3F1YXJlVGFiQnV0dG9uLVJLS1RSaFo2LnNlbGVjdGVkLVJLS1RSaFo2e2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItYmctcHJpbWFyeS1ob3Zlcik7Y29sb3I6dmFyKC0tXzItU0VqaSl9QG1lZGlhIChhbnktaG92ZXI6aG92ZXIpey5zcXVhcmVUYWJCdXR0b24tUktLVFJoWjY6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1iZy1wcmltYXJ5LWhvdmVyKTtjb2xvcjp2YXIoLS1fMi1TRWppKX19LnNxdWFyZVRhYkJ1dHRvbi1SS0tUUmhaNjphY3RpdmU6bm90KC5kaXNhYmxlQWN0aXZlU3RhdGVTdHlsZXMtUktLVFJoWjYpe2JhY2tncm91bmQtY29sb3I6dmFyKC0tXzEtU0VqaSk7Y29sb3I6dmFyKC0tXzItU0VqaSl9LnNxdWFyZVRhYkJ1dHRvbi1SS0tUUmhaNi5kaXNhYmxlZC1SS0tUUmhaNiwuc3F1YXJlVGFiQnV0dG9uLVJLS1RSaFo2LmRpc2FibGVkLVJLS1RSaFo2Om5vdCguZGlzYWJsZUFjdGl2ZVN0YXRlU3R5bGVzLVJLS1RSaFo2KXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLV8wLVNFamkpO2NvbG9yOnZhcigtLWNvbG9yLXRleHQtZGlzYWJsZWQpfS5zcXVhcmVUYWJCdXR0b24tUktLVFJoWjZ7b3V0bGluZTpub25lO292ZXJmbG93OnZpc2libGU7cG9zaXRpb246cmVsYXRpdmV9LnNxdWFyZVRhYkJ1dHRvbi1SS0tUUmhaNjpmb2N1c3tvdXRsaW5lOm5vbmV9LnNxdWFyZVRhYkJ1dHRvbi1SS0tUUmhaNjpmb2N1cy12aXNpYmxle291dGxpbmU6bm9uZX0uc3F1YXJlVGFiQnV0dG9uLVJLS1RSaFo2OmFmdGVye2JvcmRlci1zdHlsZTpzb2xpZDtib3JkZXItd2lkdGg6MnB4O2JveC1zaXppbmc6Ym9yZGVyLWJveDtjb250ZW50OiIiO2Rpc3BsYXk6bm9uZTtoZWlnaHQ6Y2FsYygxMDAlICsgOHB4KTtpbnNldC1pbmxpbmUtc3RhcnQ6LTRweDtwb2ludGVyLWV2ZW50czpub25lO3Bvc2l0aW9uOmFic29sdXRlO3RvcDotNHB4O3dpZHRoOmNhbGMoMTAwJSArIDhweCk7ei1pbmRleDoxfS5zcXVhcmVUYWJCdXR0b24tUktLVFJoWjY6Zm9jdXM6YWZ0ZXJ7ZGlzcGxheTpibG9ja30uc3F1YXJlVGFiQnV0dG9uLVJLS1RSaFo2OmZvY3VzLXZpc2libGU6YWZ0ZXJ7ZGlzcGxheTpibG9ja30uc3F1YXJlVGFiQnV0dG9uLVJLS1RSaFo2OmZvY3VzOm5vdCg6Zm9jdXMtdmlzaWJsZSk6YWZ0ZXJ7ZGlzcGxheTpub25lfS5zcXVhcmVUYWJCdXR0b24tUktLVFJoWjY6YWZ0ZXJ7Ym9yZGVyLWNvbG9yOnZhcigtLWNvbG9yLWZvY3VzLW91dGxpbmUtY29sb3ItYmx1ZSk7Ym9yZGVyLXJhZGl1czoxMnB4fS5zcXVhcmVUYWJCdXR0b24tUktLVFJoWjYuZGlzYWJsZUZvY3VzT3V0bGluZS1SS0tUUmhaNjphZnRlcntkaXNwbGF5Om5vbmV9LnNxdWFyZVRhYkJ1dHRvbi1SS0tUUmhaNi54bGFyZ2UtUktLVFJoWjZ7Zm9udC1mYW1pbHk6LWFwcGxlLXN5c3RlbSxCbGlua01hY1N5c3RlbUZvbnQsVHJlYnVjaGV0IE1TLFJvYm90byxVYnVudHUsc2Fucy1zZXJpZjtmb250LWZlYXR1cmUtc2V0dGluZ3M6InRudW0iIG9uLCJsbnVtIiBvbjtmb250LXN0eWxlOm5vcm1hbDstLXVpLWxpYi10eXBvZ3JhcGh5LWZvbnQtc2l6ZToyMHB4O2ZvbnQtc2l6ZTp2YXIoLS11aS1saWItdHlwb2dyYXBoeS1mb250LXNpemUpO2ZvbnQtd2VpZ2h0OjQwMDstLXVpLWxpYi10eXBvZ3JhcGh5LWxpbmUtaGVpZ2h0OjMwcHg7aGVpZ2h0OjU2cHg7bGluZS1oZWlnaHQ6dmFyKC0tdWktbGliLXR5cG9ncmFwaHktbGluZS1oZWlnaHQpO21pbi13aWR0aDo1NnB4O3BhZGRpbmc6MCAyNnB4fS5zcXVhcmVUYWJCdXR0b24tUktLVFJoWjYueGxhcmdlLVJLS1RSaFo2IC50YWJIaWRkZW5Db250ZW50LVJLS1RSaFo2LC5zcXVhcmVUYWJCdXR0b24tUktLVFJoWjYueGxhcmdlLVJLS1RSaFo2LnNlbGVjdGVkLVJLS1RSaFo2e2ZvbnQtZmFtaWx5Oi1hcHBsZS1zeXN0ZW0sQmxpbmtNYWNTeXN0ZW1Gb250LFRyZWJ1Y2hldCBNUyxSb2JvdG8sVWJ1bnR1LHNhbnMtc2VyaWY7Zm9udC1mZWF0dXJlLXNldHRpbmdzOiJ0bnVtIiBvbiwibG51bSIgb247Zm9udC1zdHlsZTpub3JtYWw7LS11aS1saWItdHlwb2dyYXBoeS1mb250LXNpemU6MjBweDtmb250LXNpemU6dmFyKC0tdWktbGliLXR5cG9ncmFwaHktZm9udC1zaXplKTtmb250LXdlaWdodDo2MDA7LS11aS1saWItdHlwb2dyYXBoeS1saW5lLWhlaWdodDoyNHB4O2xpbmUtaGVpZ2h0OnZhcigtLXVpLWxpYi10eXBvZ3JhcGh5LWxpbmUtaGVpZ2h0KX0uc3F1YXJlVGFiQnV0dG9uLVJLS1RSaFo2Lm1lZGl1bS1SS0tUUmhaNntmb250LWZlYXR1cmUtc2V0dGluZ3M6InRudW0iIG9uLCJsbnVtIiBvbjtmb250LXNpemU6dmFyKC0tdWktbGliLXR5cG9ncmFwaHktZm9udC1zaXplKTtmb250LXN0eWxlOm5vcm1hbDtmb250LXdlaWdodDo0MDA7aGVpZ2h0OjQwcHg7bWluLXdpZHRoOjQwcHg7cGFkZGluZzowIDE2cHh9LnNxdWFyZVRhYkJ1dHRvbi1SS0tUUmhaNi5tZWRpdW0tUktLVFJoWjYsLnNxdWFyZVRhYkJ1dHRvbi1SS0tUUmhaNi5tZWRpdW0tUktLVFJoWjYuc2VsZWN0ZWQtUktLVFJoWjZ7Zm9udC1mYW1pbHk6LWFwcGxlLXN5c3RlbSxCbGlua01hY1N5c3RlbUZvbnQsVHJlYnVjaGV0IE1TLFJvYm90byxVYnVudHUsc2Fucy1zZXJpZjstLXVpLWxpYi10eXBvZ3JhcGh5LWZvbnQtc2l6ZToxNnB4Oy0tdWktbGliLXR5cG9ncmFwaHktbGluZS1oZWlnaHQ6MjRweDtsaW5lLWhlaWdodDp2YXIoLS11aS1saWItdHlwb2dyYXBoeS1saW5lLWhlaWdodCl9LnNxdWFyZVRhYkJ1dHRvbi1SS0tUUmhaNi5tZWRpdW0tUktLVFJoWjYuc2VsZWN0ZWQtUktLVFJoWjZ7Zm9udC1mZWF0dXJlLXNldHRpbmdzOiJ0bnVtIiBvbiwibG51bSIgb247Zm9udC1zaXplOnZhcigtLXVpLWxpYi10eXBvZ3JhcGh5LWZvbnQtc2l6ZSk7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC13ZWlnaHQ6NjAwfS5zcXVhcmVUYWJCdXR0b24tUktLVFJoWjYubWVkaXVtLVJLS1RSaFo2IC50YWJIaWRkZW5Db250ZW50LVJLS1RSaFo2e2ZvbnQtZmVhdHVyZS1zZXR0aW5nczoidG51bSIgb24sImxudW0iIG9uO2ZvbnQtc2l6ZTp2YXIoLS11aS1saWItdHlwb2dyYXBoeS1mb250LXNpemUpO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtd2VpZ2h0OjYwMH0uc3F1YXJlVGFiQnV0dG9uLVJLS1RSaFo2Lm1lZGl1bS1SS0tUUmhaNiAudGFiSGlkZGVuQ29udGVudC1SS0tUUmhaNiwuc3F1YXJlVGFiQnV0dG9uLVJLS1RSaFo2LnNtYWxsLVJLS1RSaFo2e2ZvbnQtZmFtaWx5Oi1hcHBsZS1zeXN0ZW0sQmxpbmtNYWNTeXN0ZW1Gb250LFRyZWJ1Y2hldCBNUyxSb2JvdG8sVWJ1bnR1LHNhbnMtc2VyaWY7LS11aS1saWItdHlwb2dyYXBoeS1mb250LXNpemU6MTZweDstLXVpLWxpYi10eXBvZ3JhcGh5LWxpbmUtaGVpZ2h0OjI0cHg7bGluZS1oZWlnaHQ6dmFyKC0tdWktbGliLXR5cG9ncmFwaHktbGluZS1oZWlnaHQpfS5zcXVhcmVUYWJCdXR0b24tUktLVFJoWjYuc21hbGwtUktLVFJoWjZ7Ym9yZGVyLXJhZGl1czo2cHg7Zm9udC1mZWF0dXJlLXNldHRpbmdzOiJ0bnVtIiBvbiwibG51bSIgb247Zm9udC1zaXplOnZhcigtLXVpLWxpYi10eXBvZ3JhcGh5LWZvbnQtc2l6ZSk7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC13ZWlnaHQ6NDAwO2hlaWdodDozNHB4O21pbi13aWR0aDozNHB4O3BhZGRpbmc6MCB2YXIoLS11aS1saWItc3F1YXJlVGFiLWJ1dHRvbi1zbWFsbC1pbmxpbmUtcGFkZGluZy1vdmVycmlkZSwxMnB4KX0uc3F1YXJlVGFiQnV0dG9uLVJLS1RSaFo2LnNtYWxsLVJLS1RSaFo2OmFmdGVye2JvcmRlci1yYWRpdXM6MTBweH0uc3F1YXJlVGFiQnV0dG9uLVJLS1RSaFo2LnNtYWxsLVJLS1RSaFo2IC50YWJIaWRkZW5Db250ZW50LVJLS1RSaFo2LC5zcXVhcmVUYWJCdXR0b24tUktLVFJoWjYuc21hbGwtUktLVFJoWjYuc2VsZWN0ZWQtUktLVFJoWjZ7Zm9udC1mYW1pbHk6LWFwcGxlLXN5c3RlbSxCbGlua01hY1N5c3RlbUZvbnQsVHJlYnVjaGV0IE1TLFJvYm90byxVYnVudHUsc2Fucy1zZXJpZjtmb250LWZlYXR1cmUtc2V0dGluZ3M6InRudW0iIG9uLCJsbnVtIiBvbjtmb250LXN0eWxlOm5vcm1hbDstLXVpLWxpYi10eXBvZ3JhcGh5LWZvbnQtc2l6ZToxNnB4O2ZvbnQtc2l6ZTp2YXIoLS11aS1saWItdHlwb2dyYXBoeS1mb250LXNpemUpO2ZvbnQtd2VpZ2h0OjYwMDstLXVpLWxpYi10eXBvZ3JhcGh5LWxpbmUtaGVpZ2h0OjI0cHg7bGluZS1oZWlnaHQ6dmFyKC0tdWktbGliLXR5cG9ncmFwaHktbGluZS1oZWlnaHQpfS5zcXVhcmVUYWJCdXR0b24tUktLVFJoWjYueHNtYWxsLVJLS1RSaFo2e2ZvbnQtZmFtaWx5Oi1hcHBsZS1zeXN0ZW0sQmxpbmtNYWNTeXN0ZW1Gb250LFRyZWJ1Y2hldCBNUyxSb2JvdG8sVWJ1bnR1LHNhbnMtc2VyaWY7Zm9udC1mZWF0dXJlLXNldHRpbmdzOiJ0bnVtIiBvbiwibG51bSIgb247Zm9udC1zdHlsZTpub3JtYWw7LS11aS1saWItdHlwb2dyYXBoeS1mb250LXNpemU6MTRweDtmb250LXNpemU6dmFyKC0tdWktbGliLXR5cG9ncmFwaHktZm9udC1zaXplKTtmb250LXdlaWdodDo0MDA7LS11aS1saWItdHlwb2dyYXBoeS1saW5lLWhlaWdodDoxOHB4O2JvcmRlci1yYWRpdXM6NnB4O2hlaWdodDoyOHB4O2xpbmUtaGVpZ2h0OnZhcigtLXVpLWxpYi10eXBvZ3JhcGh5LWxpbmUtaGVpZ2h0KTttaW4td2lkdGg6MjhweDtwYWRkaW5nOjAgOHB4fS5zcXVhcmVUYWJCdXR0b24tUktLVFJoWjYueHNtYWxsLVJLS1RSaFo2OmFmdGVye2JvcmRlci1yYWRpdXM6MTBweH0uc3F1YXJlVGFiQnV0dG9uLVJLS1RSaFo2LnhzbWFsbC1SS0tUUmhaNiAudGFiSGlkZGVuQ29udGVudC1SS0tUUmhaNiwuc3F1YXJlVGFiQnV0dG9uLVJLS1RSaFo2LnhzbWFsbC1SS0tUUmhaNi5zZWxlY3RlZC1SS0tUUmhaNntmb250LWZlYXR1cmUtc2V0dGluZ3M6InRudW0iIG9uLCJsbnVtIiBvbjtmb250LXNpemU6dmFyKC0tdWktbGliLXR5cG9ncmFwaHktZm9udC1zaXplKTtmb250LXN0eWxlOm5vcm1hbDtmb250LXdlaWdodDo2MDB9LnNxdWFyZVRhYkJ1dHRvbi1SS0tUUmhaNi5tZWRpdW1XaXRoU21hbGxGb250LVJLS1RSaFo2LC5zcXVhcmVUYWJCdXR0b24tUktLVFJoWjYueHNtYWxsLVJLS1RSaFo2IC50YWJIaWRkZW5Db250ZW50LVJLS1RSaFo2LC5zcXVhcmVUYWJCdXR0b24tUktLVFJoWjYueHNtYWxsLVJLS1RSaFo2LnNlbGVjdGVkLVJLS1RSaFo2e2ZvbnQtZmFtaWx5Oi1hcHBsZS1zeXN0ZW0sQmxpbmtNYWNTeXN0ZW1Gb250LFRyZWJ1Y2hldCBNUyxSb2JvdG8sVWJ1bnR1LHNhbnMtc2VyaWY7LS11aS1saWItdHlwb2dyYXBoeS1mb250LXNpemU6MTRweDstLXVpLWxpYi10eXBvZ3JhcGh5LWxpbmUtaGVpZ2h0OjE4cHg7bGluZS1oZWlnaHQ6dmFyKC0tdWktbGliLXR5cG9ncmFwaHktbGluZS1oZWlnaHQpfS5zcXVhcmVUYWJCdXR0b24tUktLVFJoWjYubWVkaXVtV2l0aFNtYWxsRm9udC1SS0tUUmhaNntmb250LWZlYXR1cmUtc2V0dGluZ3M6InRudW0iIG9uLCJsbnVtIiBvbjtmb250LXNpemU6dmFyKC0tdWktbGliLXR5cG9ncmFwaHktZm9udC1zaXplKTtmb250LXN0eWxlOm5vcm1hbDtmb250LXdlaWdodDo0MDA7aGVpZ2h0OjQwcHg7bWluLXdpZHRoOjQwcHg7cGFkZGluZzowIDE2cHh9LnNxdWFyZVRhYkJ1dHRvbi1SS0tUUmhaNi5tZWRpdW1XaXRoU21hbGxGb250LVJLS1RSaFo2IC50YWJIaWRkZW5Db250ZW50LVJLS1RSaFo2LC5zcXVhcmVUYWJCdXR0b24tUktLVFJoWjYubWVkaXVtV2l0aFNtYWxsRm9udC1SS0tUUmhaNi5zZWxlY3RlZC1SS0tUUmhaNntmb250LWZhbWlseTotYXBwbGUtc3lzdGVtLEJsaW5rTWFjU3lzdGVtRm9udCxUcmVidWNoZXQgTVMsUm9ib3RvLFVidW50dSxzYW5zLXNlcmlmO2ZvbnQtZmVhdHVyZS1zZXR0aW5nczoidG51bSIgb24sImxudW0iIG9uO2ZvbnQtc3R5bGU6bm9ybWFsOy0tdWktbGliLXR5cG9ncmFwaHktZm9udC1zaXplOjE0cHg7Zm9udC1zaXplOnZhcigtLXVpLWxpYi10eXBvZ3JhcGh5LWZvbnQtc2l6ZSk7Zm9udC13ZWlnaHQ6NjAwOy0tdWktbGliLXR5cG9ncmFwaHktbGluZS1oZWlnaHQ6MThweDtsaW5lLWhlaWdodDp2YXIoLS11aS1saWItdHlwb2dyYXBoeS1saW5lLWhlaWdodCl9LnNxdWFyZVRhYkJ1dHRvbi1SS0tUUmhaNi5mYWtlLVJLS1RSaFo2e2luc2V0LWlubGluZS1zdGFydDotOTk5OTk5cHg7cG9pbnRlci1ldmVudHM6bm9uZTtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDptYXgtY29udGVudDt6LWluZGV4Oi0xfS52ZXJ0aWNhbFRhYnNXcmFwcGVyLVJLS1RSaFo2ey0tdWktbGliLXNxdWFyZVRhYnMtaG9yaXpvbnRhbC1zY3JvbGwtcGFkZGluZzowcHh9LnZlcnRpY2FsQnV0dG9uLVJLS1RSaFo2e2FsaWduLWl0ZW1zOmZsZXgtc3RhcnQ7b3V0bGluZTpub25lO292ZXJmbG93OnZpc2libGU7cG9zaXRpb246cmVsYXRpdmU7d2lkdGg6YXV0b30udmVydGljYWxCdXR0b24tUktLVFJoWjY6Zm9jdXN7b3V0bGluZTpub25lfS52ZXJ0aWNhbEJ1dHRvbi1SS0tUUmhaNjpmb2N1cy12aXNpYmxle291dGxpbmU6bm9uZX0udmVydGljYWxCdXR0b24tUktLVFJoWjY6YWZ0ZXJ7Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci13aWR0aDoycHg7Ym94LXNpemluZzpib3JkZXItYm94O2NvbnRlbnQ6IiI7ZGlzcGxheTpub25lO2hlaWdodDpjYWxjKDEwMCUgKyA0cHgpO2luc2V0LWlubGluZS1zdGFydDotMnB4O3BvaW50ZXItZXZlbnRzOm5vbmU7cG9zaXRpb246YWJzb2x1dGU7dG9wOi0ycHg7d2lkdGg6Y2FsYygxMDAlICsgNHB4KTt6LWluZGV4OjF9LnZlcnRpY2FsQnV0dG9uLVJLS1RSaFo2OmZvY3VzOmFmdGVye2Rpc3BsYXk6YmxvY2t9LnZlcnRpY2FsQnV0dG9uLVJLS1RSaFo2OmZvY3VzLXZpc2libGU6YWZ0ZXJ7ZGlzcGxheTpibG9ja30udmVydGljYWxCdXR0b24tUktLVFJoWjY6Zm9jdXM6bm90KDpmb2N1cy12aXNpYmxlKTphZnRlcntkaXNwbGF5Om5vbmV9LnZlcnRpY2FsQnV0dG9uLVJLS1RSaFo2LnNtYWxsLVJLS1RSaFo2e2ZvbnQtZmFtaWx5Oi1hcHBsZS1zeXN0ZW0sQmxpbmtNYWNTeXN0ZW1Gb250LFRyZWJ1Y2hldCBNUyxSb2JvdG8sVWJ1bnR1LHNhbnMtc2VyaWY7Zm9udC1mZWF0dXJlLXNldHRpbmdzOiJ0bnVtIiBvbiwibG51bSIgb247Zm9udC1zdHlsZTpub3JtYWw7LS11aS1saWItdHlwb2dyYXBoeS1mb250LXNpemU6MTZweDtmb250LXNpemU6dmFyKC0tdWktbGliLXR5cG9ncmFwaHktZm9udC1zaXplKTtmb250LXdlaWdodDo0MDA7LS11aS1saWItdHlwb2dyYXBoeS1saW5lLWhlaWdodDoyNHB4O2xpbmUtaGVpZ2h0OnZhcigtLXVpLWxpYi10eXBvZ3JhcGh5LWxpbmUtaGVpZ2h0KX0udmVydGljYWxCdXR0b24tUktLVFJoWjYuc21hbGwtUktLVFJoWjYgLnRhYkhpZGRlbkNvbnRlbnQtUktLVFJoWjYsLnZlcnRpY2FsQnV0dG9uLVJLS1RSaFo2LnNtYWxsLVJLS1RSaFo2LnNlbGVjdGVkLVJLS1RSaFo2e2ZvbnQtZmFtaWx5Oi1hcHBsZS1zeXN0ZW0sQmxpbmtNYWNTeXN0ZW1Gb250LFRyZWJ1Y2hldCBNUyxSb2JvdG8sVWJ1bnR1LHNhbnMtc2VyaWY7Zm9udC1mZWF0dXJlLXNldHRpbmdzOiJ0bnVtIiBvbiwibG51bSIgb247Zm9udC1zdHlsZTpub3JtYWw7LS11aS1saWItdHlwb2dyYXBoeS1mb250LXNpemU6MTZweDtmb250LXNpemU6dmFyKC0tdWktbGliLXR5cG9ncmFwaHktZm9udC1zaXplKTtmb250LXdlaWdodDo2MDA7LS11aS1saWItdHlwb2dyYXBoeS1saW5lLWhlaWdodDoyNHB4O2xpbmUtaGVpZ2h0OnZhcigtLXVpLWxpYi10eXBvZ3JhcGh5LWxpbmUtaGVpZ2h0KX0udmVydGljYWxCdXR0b24tUktLVFJoWjYuc21hbGwtUktLVFJoWjY6YWZ0ZXIsLnZlcnRpY2FsQnV0dG9uLVJLS1RSaFo2LnhzbWFsbC1SS0tUUmhaNjphZnRlcntib3JkZXItcmFkaXVzOjhweH0udmVydGljYWxCdXR0b24tUktLVFJoWjYubWVkaXVtLVJLS1RSaFo2OmFmdGVyLC52ZXJ0aWNhbEJ1dHRvbi1SS0tUUmhaNi54bGFyZ2UtUktLVFJoWjY6YWZ0ZXJ7Ym9yZGVyLXJhZGl1czoxMHB4fS5jb250ZW50LVJLS1RSaFo2e2ZsZXgtc2hyaW5rOjB9LmNvbnRlbnQtUktLVFJoWjYsLnRhYkNvbnRlbnQtUktLVFJoWjZ7YWxpZ24taXRlbXM6Y2VudGVyO2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyfS50YWJDb250ZW50LVJLS1RSaFo2e21heC13aWR0aDoxMDAlfS50YWJIaWRkZW5Db250ZW50LVJLS1RSaFo2e2Rpc3BsYXk6ZmxleDtoZWlnaHQ6MDt2aXNpYmlsaXR5OmhpZGRlbn0uZW5kU2xvdEluRGlzY2xvc3VyZS1SS0tUUmhaNj5zcGFuey0tdWktbGliLWluLWNvdW50ZXItc2l6ZTozOy0tdWktbGliLWNvdW50ZXItYm9yZGVyLW91dGxpbmUtcHJpbWFyeTpub25lfQ=="}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"bootstrap.smartsuppchat.com/widget/c9e11a0c615c258fb56a1429339b0df752439652.json","fqdn":"bootstrap.smartsuppchat.com","domain":"smartsuppchat.com","tld":"com"},"ip":{"addr":"3.69.194.231","port":443,"asn":16509,"as":"AMAZON-02","country":"Germany","country_code":"DE"},"is_navigation_request":false,"resource_type":"xhr","requested_by":"https://digital-assettrade.com/","date":"2026-07-27T10:27:16.305Z","timestamp":1785148036305,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.smartsuppchat.com","organization":""},"issuer":{"commonName":"Amazon RSA 2048 M04","organization":"Amazon"},"validity":{"start":"Tue, 02 Dec 2025 00:00:00 GMT","end":"Wed, 30 Dec 2026 23:59:59 GMT"},"fingerprint":{"sha1":"DC:47:26:FC:2D:4B:14:19:23:BC:B7:70:14:DA:60:A6:21:B0:1E:81","sha256":"0D:5E:FD:70:25:9E:DE:DD:47:CF:0C:58:1C:08:A2:A1:05:AC:A6:7E:0C:43:6F:50:E7:49:E0:A1:60:D0:0E:0F"}}},"request":{"raw":"GET /widget/c9e11a0c615c258fb56a1429339b0df752439652.json HTTP/1.1\r\nHost: bootstrap.smartsuppchat.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\nContent-Type: text/plain\r\nOrigin: https://digital-assettrade.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://digital-assettrade.com/\r\nSec-Fetch-Dest: empty\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:16 GMT\r\ncontent-type: application/json; charset=utf-8\r\nx-version: 6cb79abf75047496934c7756b55ec6f26e7d2373\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: private, max-age=0, must-revalidate\r\nx-hit: redis\r\netag: \"4c7-B/6NfaaDpZne/g/uc5qfSnm44ZA\"\r\ncontent-encoding: br\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":null,"data":{"size":1223,"size_decoded":879,"mime_type":"application/json; charset=utf-8","magic":"JSON text data","md5":"1623b3b9e850c9c1491c70aef8d248c2","sha1":"07fe8d7da683a599defe0fee739a9f4a79b8e190","sha256":"b5b4d35c58c664f860fdab342e28e4f7337c31f56e8da3582e65972af84deb9e","sha512":"bcfb7323cde3f50f57c38880ba4f962f1f35f106a93074f2f3da73256fe2b54698c6065b11f1bc93d6f74811f6d2543fc6f5aa7afea2e5df1ff45b4f25fcc6d2","ssdeep":"","tlshash":"5321766d4a6822fd5245c7d6c5047a036bacdcb371003e7eea0d0a0e70db2e6223646b","first_seen":"2026-06-06T06:44:39.646667Z","last_seen":"2026-07-27T13:00:53.907951Z","times_seen":1998,"resource_available":false,"data":"eyJhaVJhdGluZ0VuYWJsZWQiOnRydWUsImFsbG93ZWREb21haW5zIjpbXSwiYnV0dG9uU3R5bGUiOiJncmVldGluZyIsImNvbG9yIjoiIzEyMzNkZiIsImNvbG9yMiI6bnVsbCwiY29sb3JHcmFkaWVudCI6dHJ1ZSwiY29uc2VudE1vZGVFbmFibGVkIjpmYWxzZSwiY3Jvc3NEb21haW5FbmFibGVkIjpmYWxzZSwiY3VzdG9tQnJhbmRpbmdFbmFibGVkIjpmYWxzZSwiY3VzdG9tQnJhbmRpbmdMaW5rIjoiIiwiY3VzdG9tQnJhbmRpbmdUZXh0IjoiIiwiZW1haWxDb250cm9sIjp0cnVlLCJmZWF0dXJlcyI6eyJhcGkiOmZhbHNlLCJjdXN0b21pemUiOmZhbHNlLCJnYSI6ZmFsc2UsImdyb3VwcyI6ZmFsc2UsInJhdGluZyI6ZmFsc2UsIndoaXRlTGFiZWwiOmZhbHNlfSwiZ29vZ2xlQW5hbHl0aWNzRW5hYmxlZCI6ZmFsc2UsImdvb2dsZUFuYWx5dGljc01hbnVhbCI6ZmFsc2UsImdvb2dsZUFuYWx5dGljc01lYXN1cmVtZW50SWRzIjpbXSwiZ3JvdXBTZWxlY3RFbmFibGVkIjpmYWxzZSwiaGVhZGVyU3R5bGUiOiJzdGFuZGFyZCIsImhpZGVPZmZsaW5lQ2hhdCI6ZmFsc2UsImhpZGVXaWRnZXQiOmZhbHNlLCJob3N0Ijoid2Vic29ja2V0LXZpc2l0b3JzLnNtYXJ0c3VwcC5jb20iLCJpbnRlcm5hbEFuYWx5dGljc0VuYWJsZWQiOmZhbHNlLCJpc0Jsb2NrZWQiOmZhbHNlLCJsYW5nIjoiZW4iLCJtb2JpbGVQb3B1cHNFbmFibGVkIjp0cnVlLCJuYW1lQ29udHJvbCI6dHJ1ZSwibnVtYmVyQ29udHJvbCI6ZmFsc2UsIm9wZW5PblRyaWdnZXIiOmZhbHNlLCJvcmllbnRhdGlvbiI6InJpZ2h0IiwicGFja2FnZU5hbWUiOiJmcmVlIiwicG9wdXBUZXh0YXJlYUVuYWJsZWQiOmZhbHNlLCJwcml2YWN5Tm90aWNlQ2hlY2tSZXF1aXJlZCI6ZmFsc2UsInByaXZhY3lOb3RpY2VFbmFibGVkIjp0cnVlLCJwcml2YWN5Tm90aWNlVXJsIjoiIiwicmF0aW5nRW5hYmxlZCI6ZmFsc2UsInJlcXVpcmVMb2dpbiI6ZmFsc2UsInRyYW5zbGF0ZXMiOnt9LCJ1cmxDYXJkc0VuYWJsZWQiOnRydWUsIndpZGdldFZlcnNpb24iOjMsImhhc0ludGVybmFsQXBpIjpmYWxzZSwiY29uZmlnIjp7fSwiYnJvd3NlckxhbmciOiJlbiIsIndpZGdldFRyYWNrZXJVcmwiOiJodHRwczovL3dpZGdldC10cmFja2VyLnNtYXJ0c3VwcC5jb20iLCJ0cmFuc2xhdGlvbnNCYXNlVXJsIjoiaHR0cHM6Ly90cmFuc2xhdGlvbnMuc21hcnRzdXBwY2RuLmNvbSIsIndpZGdldFRyYWNrZXJFbmFibGVkIjpmYWxzZX0="}},"time_used":87,"timings":{"blocked":-1,"dns":3,"connect":25,"send":0,"wait":29,"receive":0,"ssl":30},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/51508.767219283c65f4d4ca6e.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:12.950Z","timestamp":1785148032950,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/51508.767219283c65f4d4ca6e.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:12 GMT\r\ncontent-type: text/css; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding, Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\netag: W/\"69f98b75-9e1\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Tue, 05 May 2026 06:17:25 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.51\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 05/05/2026 10:16:22\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: a4eac6875adf18df7e581ba773bbbfe3\r\ncdn-cache: HIT\r\ncontent-encoding: br\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":2529,"size_decoded":1497,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with very long lines (2529), with no line terminators","md5":"76e3b34ef660092cb6ebcda4b1e8a0b0","sha1":"d997b9296e92721e4cfa8c5cd062150dd5a72d76","sha256":"1f4abc998292aaf8b21eb2933273369f5d7611063f098e70b47fbd27258859c0","sha512":"91d3087923640eeca24866262f097a03a730ca9ecbcab63c5851539144aca3fc7b28c2b2a340a3318f5a5f4149e8f995999a8ec0680a94a7780ac64e2ce591a3","ssdeep":"","tlshash":"6651481fb3fb1d212c234b0047d56e432330e5a315e36aece810d1ae9eda9de39b1285","first_seen":"2026-04-15T09:47:56.501715Z","last_seen":"2026-07-27T13:00:41.36661Z","times_seen":5279,"resource_available":false,"data":"LnR2LWRhdGEtbW9kZXt2ZXJ0aWNhbC1hbGlnbjp0b3B9LnR2LWRhdGEtbW9kZS0tcmVhbHRpbWV7Y29sb3I6dmFyKC0tY29sb3ItbWludHktZ3JlZW4tMzAwKX0udHYtZGF0YS1tb2RlLS1zbmFwc2hvdHtjb2xvcjp2YXIoLS1jb2xvci10di1ibHVlLTQwMCl9LnR2LWRhdGEtbW9kZS0tZW5kb2ZkYXl7Y29sb3I6dmFyKC0tY29sb3ItZ3JhcGVzLXB1cnBsZS00MDApfS50di1kYXRhLW1vZGUtLWNvbm5lY3RpbmcsLnR2LWRhdGEtbW9kZS0tZm9yYmlkZGVuLC50di1kYXRhLW1vZGUtLWludmFsaWQsLnR2LWRhdGEtbW9kZS0tbG9hZGluZ3t2aXNpYmlsaXR5OmhpZGRlbn0udHYtZGF0YS1tb2RlLS1kZWxheWVke2NvbG9yOnZhcigtLWNvbG9yLXRhbi1vcmFuZ2UtNTAwKX0udHYtZGF0YS1tb2RlLS1mb3ItdGlja2VyLWxhc3R7ZGlzcGxheTppbmxpbmUtYmxvY2s7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NzAwO21hcmdpbi1pbmxpbmUtc3RhcnQ6MnB4O3Bvc2l0aW9uOmFic29sdXRlfS50di1kYXRhLW1vZGUtLXJlYWx0aW1lLS1mb3ItdGlja2VyLWxhc3R7ZGlzcGxheTpub25lfS50di1kYXRhLW1vZGUtLWZvci1zdGlja3ktc3ltYm9sLWhlYWRlciwudHYtZGF0YS1tb2RlLS1mb3ItdGlja2VyLXRhcGV7Zm9udC1zaXplOjEwcHg7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoMnB4KX0udHYtZGF0YS1tb2RlLS1mb3Itc3RpY2t5LXN5bWJvbC1oZWFkZXI6ZGlyKHJ0bCksLnR2LWRhdGEtbW9kZS0tZm9yLXRpY2tlci10YXBlOmRpcihydGwpe3RyYW5zZm9ybTp0cmFuc2xhdGVYKC0ycHgpfS50di1kYXRhLW1vZGUtLXJlYWx0aW1lLS1mb3Itc3RpY2t5LXN5bWJvbC1oZWFkZXIsLnR2LWRhdGEtbW9kZS0tcmVhbHRpbWUtLWZvci10aWNrZXItdGFwZXtkaXNwbGF5Om5vbmV9LnR2LWRhdGEtbW9kZS0tZm9yLXRpY2tlci1oZWFkZXJ7ZGlzcGxheTppbmxpbmUtYmxvY2s7Zm9udC1zaXplOjEwcHg7bGluZS1oZWlnaHQ6bm9ybWFsO21hcmdpbi1pbmxpbmUtc3RhcnQ6MXB4O21hcmdpbi10b3A6NHB4O3ZlcnRpY2FsLWFsaWduOnRvcH0udHYtZGF0YS1tb2RlLS1yZWFsdGltZS0tZm9yLXRpY2tlci1oZWFkZXJ7ZGlzcGxheTpub25lfS50di1kYXRhLW1vZGUtLWZvci10aWNrZXJ7ZGlzcGxheTppbmxpbmUtYmxvY2s7Zm9udC1zaXplOjEwcHg7bWFyZ2luLWxlZnQ6MnB4fS50di1kYXRhLW1vZGUtLXJlYWx0aW1lLS1mb3ItdGlja2VyLC50di1kYXRhLW1vZGUtLXJlYWx0aW1lLS1uby1yZWFsdGltZXtkaXNwbGF5Om5vbmV9LnR2LWRhdGEtbW9kZS0tcmVwbGF5e2NvbG9yOnZhcigtLWNvbG9yLXJlcGxheS1kYXRhLW1vZGUpfS50di1kYXRhLW1vZGUtLWZvci1jaGFydHtmbG9hdDppbmxpbmUtZW5kO2xpbmUtaGVpZ2h0OjE2cHg7bWFyZ2luLWlubGluZS1zdGFydDo2cHh9LnR2LWRhdGEtbW9kZS0tY29ubmVjdGluZy0tZm9yLWNoYXJ0LC50di1kYXRhLW1vZGUtLWxvYWRpbmctLWZvci1jaGFydHtkaXNwbGF5Om5vbmV9LnR2LWRhdGEtbW9kZS0tZm9yYmlkZGVuLS1mb3ItY2hhcnQsLnR2LWRhdGEtbW9kZS0taW52YWxpZC0tZm9yLWNoYXJ0e2NvbG9yOnZhcigtLWNvbG9yLXJpcGUtcmVkLTUwMCk7dmlzaWJpbGl0eTp2aXNpYmxlfS50di1kYXRhLW1vZGUtLXJlYWx0aW1lLS1mb3ItY2hhcnR7ZGlzcGxheTpub25lfS50di1kYXRhLW1vZGUtLWZvci1jaGFydC50di1kYXRhLW1vZGUtLXJlcGxheXttYXJnaW4tbGVmdDowfS50di1kYXRhLW1vZGUtLWZvci10aWNrZXItY2FyZHtkaXNwbGF5OmlubGluZTttYXJnaW4taW5saW5lLXN0YXJ0OjRweH0udHYtZGF0YS1tb2RlLS1mb3Itc3ltYm9sLXdpZGdldHtkaXNwbGF5OmlubGluZTtmb250LXNpemU6MTVweDtsaW5lLWhlaWdodDoxN3B4O21hcmdpbi1sZWZ0OjNweH0udHYtZGF0YS1tb2RlLS1yZWFsdGltZS50di1kYXRhLW1vZGUtLWZvci1zeW1ib2wtd2lkZ2V0LC50di1kYXRhLW1vZGUtLXJlYWx0aW1lLnR2LWRhdGEtbW9kZS0tZm9yLXRpY2tlci1jYXJke2Rpc3BsYXk6bm9uZX0udHYtZGF0YS1tb2RlLS1mb3Itd2F0Y2gtbGlzdHtmb250LXNpemU6MTBweDtsaW5lLWhlaWdodDoxNHB4O292ZXJmbG93OnZpc2libGU7cG9pbnRlci1ldmVudHM6YXV0bzt3aGl0ZS1zcGFjZTpub3dyYXB9LnR2LWRhdGEtbW9kZS0tZm9yLXdhdGNoLWxpc3Q6ZGlyKHJ0bCl7bWFyZ2luLWxlZnQ6MDttYXJnaW4tcmlnaHQ6MnB4fS50di1kYXRhLW1vZGUtLXJlYWx0aW1lLS1mb3Itd2F0Y2gtbGlzdHt2aXNpYmlsaXR5OmhpZGRlbn0udHYtZGF0YS1tb2RlLS1zaXplX2xhcmdle2ZvbnQtc2l6ZToxMnB4fS50di1kYXRhLW1vZGUtLWZvci1zeW1ib2wtaW5mb3tkaXNwbGF5OmlubGluZTtmb250LXNpemU6MTVweDtsaW5lLWhlaWdodDoxN3B4O21hcmdpbi1sZWZ0OjNweH0udHYtZGF0YS1tb2RlLS1yZWFsdGltZS0tZm9yLXN5bWJvbC1pbmZve2Rpc3BsYXk6bm9uZX0udHYtZGF0YS1tb2RlLS1mb3Itc2NyZWVuZXJ7Zm9udC1zaXplOjEwcHh9LnR2LWRhdGEtbW9kZS0tcmVhbHRpbWUtLWZvci1zY3JlZW5lcntkaXNwbGF5Om5vbmV9"}},"time_used":9,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":9,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"digital-assettrade.com/assets/images/logoIcon/favicon.png","fqdn":"digital-assettrade.com","domain":"digital-assettrade.com","tld":"com"},"ip":{"addr":"5.182.208.207","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://digital-assettrade.com/","date":"2026-07-27T10:27:13.434Z","timestamp":1785148033434,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"digital-assettrade.com","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Sat, 20 Jun 2026 16:59:16 GMT","end":"Fri, 18 Sep 2026 16:59:15 GMT"},"fingerprint":{"sha1":"01:E1:B4:F9:5D:C1:12:F0:96:4A:57:43:D3:BB:2D:2B:F2:BE:B0:FC","sha256":"A8:D5:A6:4E:32:4D:7C:DD:DA:A5:73:54:3A:4A:4B:A5:0E:50:6F:09:0E:F5:B9:74:AC:9A:03:38:4D:A3:42:85"}}},"request":{"raw":"GET /assets/images/logoIcon/favicon.png HTTP/1.1\r\nHost: digital-assettrade.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://digital-assettrade.com/\r\nCookie: XSRF-TOKEN=eyJpdiI6IlBJZ3lRZTB2d214bVhnZk5JbmtvaWc9PSIsInZhbHVlIjoiOWllUUw0S1NpMERaV0d2c2FYTDF0YndkRm5iSHg5RGJOMTVmNEltV2lONmQ5RlhjdjhvR0syQVZyZGdYanU1OEMwUkhQVVdndjRJelQzdWxmQldFejlZc2c4K1RKbktYZ2NySWpkQkdLTEV3czBrQyt5RE9TTHRSQk5BYkRvZEMiLCJtYWMiOiJkZDhhNjRlM2IzMGU1NTc4NDFkOGUyNGM0M2IyYTFkYjk3MDUxYTIwOGM5OTUwNDM2MmNhNjYzNjUwMTliN2EyIiwidGFnIjoiIn0%3D; digitalassettrade_session=eyJpdiI6InppdHd5OXFTcGhzM0xrUzhKN0NmQ2c9PSIsInZhbHVlIjoiNytzaTJ2ekZZSE9MTU9oYTdHZWwxeWl5YUl6ZDJSZ2UxSDhBZ0FCUmoxbFlrYU5kNXpTZnRqMTNTNERMaEpGM0srWk1KZ2YrcFNUalloQVkrTGEvSXBCVFU2blExUlgyTDFhckFkdlg0bHNjSVYrQWltRENjeDJ5QWNnQUk3RGciLCJtYWMiOiJhZDEzNWUwOGYyMzcwOGNkYjRlMGY4NmJhMDBlY2Y5OTdjYmUyMjRkNWY1N2NmODMwNWE1MDUxNjg1ZDMxOWE2IiwidGFnIjoiIn0%3D\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/3 200 \r\ncache-control: public, max-age=604800\r\nexpires: Mon, 03 Aug 2026 10:27:13 GMT\r\ncontent-type: image/png\r\nlast-modified: Tue, 21 Apr 2026 01:31:54 GMT\r\naccept-ranges: bytes\r\ncontent-length: 7588\r\ndate: Mon, 27 Jul 2026 10:27:13 GMT\r\nserver: LiteSpeed\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"LiteSpeed","description":"LiteSpeed is a high-scalability web server.","website":"https://litespeedtech.com","common_platform_enumeration":"cpe:2.3:a:litespeedtech:litespeed_web_server:*:*:*:*:*:*:*:*","icon":"LiteSpeed.svg","categories":["Web servers"]}],"data":{"size":7588,"size_decoded":7853,"mime_type":"image/png","magic":"PNG image data, 128 x 128, 8-bit/color RGBA, non-interlaced","md5":"f0bacac846465fecd9cc25a1593094cf","sha1":"f26d9e65df21a9544ecb05a9f2e2bea90f4aa91e","sha256":"7a31ee2c78ae2537eac21ab83f3e9d10e9384fadbf26ea622bd61ad86cd75e69","sha512":"0ad81309c92bc55c25acbb2b0b6f35ae71d3064b8408853457126712c61e38e1ab9ff5a2d05e91af0d79912998994df5fbb59c405e13480711fd7379b681e24c","ssdeep":"192:qGv2OYKygP0g+oNArMVvk7agAsL9KTFLiGhWVIg6L2U3eL:qBKHP0DoNA4eagETFHg6SUI","tlshash":"5af1b0fb647302299fe99e5530066374cbb019ba378be5a51803127a2dff629749d232","first_seen":"2026-07-27T07:37:36.936016Z","last_seen":"2026-07-27T10:28:13.902006Z","times_seen":3,"resource_available":false,"data":"iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAdVklEQVR4nO2de3xT15Xv19rn6OhIlmRZtoXfGGOMY4zjEEMID0MIcYDwTkpJIGEY8mg+bW/b6XRm2vvo/dxOPp3Pze29n97MTKZJEy4NSXklEAKEAAFCCOUVXjaOMUYY/ECWZUmWZOnoPPa+fxDSPIxs8EOS7e+/kny2vH977bXXXmsJGWMwwvCFxHoAI8SWEQEMc0YEMMwZEcAwZ0QAw5wRAQxzRgQwzBkRwDBnRADDnOEtAPW6SfV+aIr1MGIJDrdQcPgv/0hkY5YNXYemEjA+yRAk1ClbSc6S4zps8OsK/juN9RgHk2EjAHrmp3ygzVmGkesLmdSwjCnBEgRJAABgaJCJkHYckye8j1zugaTM9Bqc8M/DQghDXgBdH1ZZleyqSmh4+1EMOZYChDMAle63PqZXAY2tzDhuE4x5fIOBXG3Ql70qD/KQB5UhKQDZ/w6PnqBdaq1fTRv//DhARxkwRQTo7aImFMDgAcPYo5g2Y7OOSzvIT7zXo7MsVwd04DFgSAlAa39DkD59s1S1Zq9C96m5TG4uBVT75ugyQoEf5eByF27Sm/gNZPzs65y4YshYhSEhAL/vXQs5s6NA7axbh6FLKwAC9n5/COMp6tLqmWHsXl1K4QZ67yKHyfK4v9+fM8gktACk+pdtypk/LVb1wtMYulyGELQBsAE+2iIFMHmYsfAcp5H14vTn9ugyX/AN7DMHjoQTQFft/xaZ4i1iddsqNYisRaW5DFDhYzIYJshMl3NBZyl6HfOnHyOcWC8W/X1CbQ8JIwDpxgGL2rJrKr16YJlGPU8QxZUGqMV6WDehHDAhx8nx4puYs2S/Lnf6aX3W4mCsh9Ub4loAne8IaUC5ObRoHeGu7l1HNd9UpB4TYJyOmRHKOFuIE3L2sMzp70LTsaPGidOdfMkrcRtTiFsBhK7vLJQ//5efYejEswz1gCwsxHpMvQcBiF4Chb+Oo2Zvwqzlb5knrm2I9ai6I24EIPv2Enpmo1U1janS3IcfgY4LiwGDaYBxu3h6B0MASHHiqFl/ws7gZsPEybX8+JekWA/rFjEXgKLsI/TSRzbZ6Z5HvcdeAKlpKpBIbJy6gYQhANP7WFLxTi6l4g9c1thaZi+XklLmxVQMsRNAZBuv1B3KCzXVL2DhK09jpLUMUBYB4sMiDRwIwJLczJDXQGyTTurt5lf1xVUNwC2NSZRxUAUgNf6eqKY0G1z8MF/xXH0Ow/ULkXrtgNrQW/G9gXGUkhQnGMfv1I8qXU/GznTAlWse8cFfDdq+NygCkDv+QpS2U3bm2DxXlUM/xvCVUoCAccAfnFAkhUDMr0ONrSf3rdnB2x9oFZNnDbgQBlQAof3/JCg5WeWkfus0LdTyNGo3SgGlBPLmYwATZMpn1vLG0W9B0dJjpL7hXNLifxswP2FABKAEjvGS46MprObNFyl2LUDqtwJqwzv76E5hHGUk2UcoHiNjn9pA7I8eMI59rN9Dzv0ngMhbJOLwpCmhy8uZ4+NHtHDTPOS6Rsx8P8CogRLOWoc5j76Kbu8m06KVHtCt7Jftoc8CUNr/ryjfCBUr7Se/R1wnFjC1vQzIbRIuRugblKPA2c4w+4z1vG7UDm5ShdtgXtenu4e7EoCifE7Q8Z5RargwRdPa12BXwxymduYAGXL5EvEJ06nAJTcwy72H0d+23Th50TGa90RIL0y6Y6twRwIIB7YTru2yLXK1/gnNd+JplOtLARTL0D+7xymMADCdX9OPu8Clz9pgGJW9Q8so9xhs83sthF4JoLN5s6i7tqdI7WhczCLNq0BuLAKgCWzmCQAm+zkx9xgwzaRKLZMQ/Mbep4zFIZSnIOTWo5j/OpdTvpOMW3TdYHmox+2hRwGEDv5Nvuyp/jXI1xYi89oSeeIZEygIdjfH2Q5iycqtBkE8AKZ8IdRUMw8cmxZptHMOqq40QCXWQ717GEcZn+kEY+EOkjrpd5bpv3NEe3tUAaiNHwih43/3B6Zd+ZuENvNMBNSPPseJ6dtpyep9+ohyjhQYZF5cRwEAlPbXiXpdEhQRJ3HXPpqvBOqfALm5GEko1iO/exhHWdL0d5IqfvKiLnf5bXMTooZgqSIJwOT8xJx8BAaWIIijDwqmrA90E1ft49trm3HsC9+x87r056guHSQDwDFZTDtO0L+eOT6ZHfFeWksiX0wBDAsJ9z9AjRC5LZ8EnVHnOOqLqGpk4HPs+htBRSHbBfr8nWKq/V1y37rjOuMjN1dAVi8+PXYlBQAHFDzv4J2bdyqfb5unau510FVbDtRtTSg/gakCRKSo8xdVAIwl0GU8M8hgGFuLlvH/x5A/7jgWzL/Oc5V9CqEKGd93C499f6MW2bFXPrO3QPK71qKvegEq17Jilod4ByAD2tP67c2XiG8RMEEF833n+Mzpr4omOAjjVjZzusn9GpDg9EvdhgeXunXe92vU6+d/r3Q0VdLOcy9C18VSwHDcCoEBAmAfBIBUIxCXFcQ8BUjygHnCaTJ25QbRLOyh2RODHDdtQMXKpywJ8SlL6vjIp/XQXr4l5A0vhMZda1igehowX/wdIxGgp/zJ6E4g1SCefAAGRhW5tFpin3qEy6x6w5jUUA95Px50V53Xz6SQM9NnyYGNkJuyI9QeXqzWvr2ISddmM6XTjhiKm/8ZsOiijC4AppAebchgwEwqEezHMXPGdhz3t+8kgcMFGWvjY7lZ1wWNVniHoryli88rh5YDVeA69QINXsoD0hXToSGjBGgfBIAYYwuAo1SSNOYwlz5hKzdq7ja96ZofRs1SAWbFbEi3gxT+nWoGOA3J0jl5fNUezbFvhuysX6L6v5jNY/Sj2MBBeaDRayN78AEYxOr8i5gGhhn/pQato9fxlkXXYzKIuyFltSoAnAOLegE6KncaWNe70uFfVTDmjs14tOjFM71QZmwMAKOdIH3+7wWYnPUyZlxZL6ZbjmBqoURIZXyY/tugdm7moYtYI9eOLWeuQ4/LEX8RUM9Nh2zQYaQnx7QXAohRBAwVoKEvLNBVvwLaqucGTKVHdPnLNujFk4dJ9qQgMc6Jq7tn6t4gaEGWE2o6/yJxfTyNRq5MAhoWAVmMJv/msHp6eHQBEP7LPxJDUAOgLhv6Dy9VLxybR40lDujo2CAmH93IcipcgnlBTIUg+7YIzNmeLzUf+wl2HFkOapudwpcJMbGb+L+CfRIAoRBrAXwFBQBJpKEzJdBQ89uQMPpF0lK3gxnf28xPWFTLJS8Z1Fp9JfyuVbqwu1jzedei5+RSoDfsLO7uC7BHESbGMfDboExAuZxP2xp+KhH7M9Bx9TAvvPkW3r/iuDFtlXOgHhsJHSRMduZof9lYEdGkNRionUGoyxa/F0VIgXBR3xFVAOTm2o8/AXwFA6BtNvC7lissaQH9pLFG4177s376j3dAyuhGgZ/cL9Yr4j1MCGsuYNW7lkq+xrUYqC7gMCT2x98ecPoUCgYFAONZALdggBgUOelCBWW6SV2HPS9wtgkbInkP7RI5qCM6Aw3zxdSUOaVXgoi0fkx4bOU1Y0FepGV/MdbvnaXKHU+gfD0PUSZxsbf3BoSvVvHtiCoADfFmk6REAhVC5Joi2nr5Jeo+uw6Tx+4j9mkull5w1dt2cVPKqAm3vSF0tTQQPZML+KC3XPWefIi1vz5XCzvyUbkhIPboUMcdDDiV6YSo8xf9Otg0SqL6zCMQaitDlBIqxx9JBDi1vkBtv/ID8JykpPUzP7FOuNcbqTob0Wc36xRyzKeJKg8amAwhnmpKpeg+Vcw81atUz/EyFv5CQJAIxvYYd3cwBOBszcyYvwF0hqidSnrMCQxW/4tJbT5VCcFLP8PItQrALmv8Oj3RQADQU43Pl0nKgz4u+9E3/cn3UNCCAmn/zKRvP7GCeI5YkXn4uGk9c8cgBZJ2HW2VB4W00a+wzPtqDFmrox6Te50Wzq79N7HL1VUMwRsv0raP5zDVXQCYuAmiwDKAmUuAyUGAUC0QPiFa+nQDAjA+xPjcc5B832ZjsrhFmDrPBWR1r7buOy4Mee4Hy/gpY9IW8u7j68syndYxqQHg+MhdDX2EPsA4ALRKJCl3DyXpb4nJ3AH9rA/vWMW9FoA9p5jIEbkEOTKPUraE53BqRrqRX1RhgHnjnFCW5QaOT+As2kSB8oC6/FZMLtzIZ8//gqSX7+FNzW7O/NRdOes9CuBG/YfkV7/dWrT13T1P6JPMz8HN1EoeAIAxBorGIMNuhlklBvj+pCDcO+oG6Dg/ED6Bc+vjDgRgoopCQZDPqvwTn/HQG5yZr+VGLet2f6fqFZ5S3tjV8UUwOXNeVGFEFUDX1YO8r+Xkwt2Hq19+bcfFQkdrGKimAUe+6RYzxkBWNLCnW2F8rhnGWTtheXknlOW0AcdFekxLGuF26CiQdDdnm1oD5uI3+HEL61RhTI0pOaPbih8tUM3TUFOBeuPzqUrIsyoS0d5Ozi7ZIhT94LZH36jHQF3EJ+pvfPbk0syrheVPJ8HW0zo4VAdQf80HBNlXQkBEEAUevF4/HO3ohE8YgT3VFlg7Ox8eKw1Diq4BLGJgxCr0GgtFcYyT2CvrSUbxf9ZlTq7TmSZ7bvduxXfeyuS2EvnyhyXMe+knmv90AageoyCUGIm9cBcA3J0AODlM9MoFOxWaYLwN4J8e0cOyCTbYf2kUHG8yw4kv2kCJKCDoCDAAIISA8OW5wOMLwSu7Fdh0VIR0cxY8UmGEJ0raIN3YAsjH1U1u3IDMoDJjaQMWrrrOpeT/GiyFdTJL9xtN9m7NuOw+aZS7Wmdo1w8/Cr7q1cx/2oIsICIyAA6AsAiPSvRS/eiBIP7L1GLCvnyzBBNyW6EkxwlrA8lwuNEOx1pzYO8xN/i6ZKAaBZ4jgHjTKsiqCk3uAFxrY3C2MQJb00X4n//wU7g/0wfEvR9AaQaARD1z9xc8BUh2g/H+GshbUMelF/1OE7OdSfaybj1qzb2XaJ1tRs3jnK22HV6iBS6vAPWaBYl6M171naBV9Ehu9LsATrt5F/CtLRyRQrLFC0vKvLCo5Bo8U5IM513Z0Bi0wbZPneALRIBqDJAxQEbBaBQhJzsLZs18EEof/RGY0kTA4FWI1G+n9Np2QkOXATBueicOAgjARBn5UQ7VPOWImD7mdUwpqo3YpqqW1JJu93fF9xGvtTblRVzV61jHiVIMX5kL0GFEZLe9rmNIVOCi3/j3kBHUs/NGeAkm5EkwIacdVGqCR8dmwdmmNNh4JAA+VYSpk++Dh2bNhAemTIKiwjGg1wNoVAM0FPqTJv5ok2Kf0dRVvy0d3YemMdlZhiSYeHV4dwIzSygWnKGWinf1yZZNJGuqx5i7QgIAMHz7rV0OIRI6zxNvS0a48fxzzHd0MUYaixEjpJeONWF9qgu4OYzeRfsIBZ744f7cAEzKJrC4xAZO61NQNv8HYLLkAuH0ABoFpjHKUSIDZT4G5rfAnHcsqaiS0PSctLCiLoTmQ99jgYuzEb1DRwiMAwbpLp3pnsOabfpHvMmygzfn+YVx3/+OM9TVXk84iIhEazChN/hj2fF+Je38LB9ZRw6CQu7kbhYZA9T6khOoIdz5JDBAooHd2g52+q9AD3wEXaOqwDhuIWDqvcCI5RhD+A1HUGKg1eis4ylYx1PIBace4I9y3twtEU/jHPbFHx+jYcdCpC47sAS6gr0FQ6BgkhGMdZx56p7I2GfetZYuPx3tI5L7OI8dDVOUQNMvteZ9edh1pgjQL979V6c80D44gVTr4wokGhClDljzJQi0bgIc9SiIY6ssLCkFOGvBBcLf8522Z0L6TL+QPnMH5eR9IY1/izV9/Aj11T0L0sU0wFDc1uF9BSNAIcUHmLQLMuYfUswP7DWHa13m0tv/4FSgYbeRazs0TW0+tIhCcDnIzVlIQv0k+j7kBDLCA7D+yAlkQKgLoHUjSDc+KGNC3p+VlNKjOGry64bcyqO8ddJ3hEAK14VMAEfUtPzjqrfpXdq8e5Lid62FYPUkoG5j3AWXGA8aP9oFQsY7JLl0t5xSccQ+6dnbtmhxNZ4lotpSDi0Hy2jLzvkaDc5FcFsRtTsy89FBCiR6hXcPlUEU+jUjDBkg+ABln405axZT576qUP3mo5g1fbvOVv4erwVcfMmL3xgwnzpL5lPhHBSuPid5P96JV/cUKs21a7Tg+ZVAXZaYN6Bkgsp0BfWE6F/RFS89KnFZdbaS57td7ZH6PxFV7eC7wknluo4Tj2udNU+hVJeBJMAPmKD7khRKgAEg+84xsF9ACghukYXdc7XLF2druqwnwTr9IO/7X7tFS0stn70kBCmzvyEGMeVhN6Q87NanHbigth39Q7itZh0LnV/I5KY8wMjgCYERADCHmFh0hhDz64b8h4+G+Nzr1olPq+Zu3h65+h+C5vfbI8Gupdjxl/v4oGMeKC1ZhJcGNOOyN9MWfU8djPt+BCBcgAd6aQZzX5umeVKeDSWNPykEc3brM69vA505iFnfuvTImxvi8+aeE5r2/kLz1v1BbXc8h76j06jkKAbwmwbs9MB0FEmqUzWUnQNz8QYxe9zhgPEetyX/YdpdA+TQpQ28FFLK0F2ziu/8tBKlpjJgAYEjau86M/R9wAC0Dz4AwuAmwiGRCMCNLBZ0LZWvnK+SW8et5WyVtUKw7fe6zIx6MC/9xp6qz50nQe68Gvn67l8Qf6bV7w3NJt5Ta6DzXAViu71ffm2EITDNKDNdTq1sqTist6SuN5pHO/xiWchYMpd2lycXaVlvVNvaCqS2xp9z/iOVoDbm05iklzEA2oc4wM1GhD0UmA8EqAEDrxHCJ6epLaenac68xVJK5QEu+eRLmP2AW+NtblPmzK/GJeQ9JgM85rIBbFHO//a9QGReKXF9tg46z1QAbStHDIt3KgbG9CqDlGamKzoSss/9QDSqe3SiRbJW/JwCAHw7J7zt/Gu8gFIG13EuJxIM/qPgP1rJgzPGNQOM9NTWr4fCENZtKHhwocC0Rjtrv/4U7ciey7xXG3XW3H9TOh2nNX1eszjmoW9UBOnu/aVqAzgH1e6fecMVVuZ1LMVg7XyINFYR6jQBRruIQqDMKCHoT6vmqfsj6Q9vSqOXGm0z/uttvfm26p3WpODJIp3rTKUWCazFSF2WgB3WeDil3DQ2fbAAN8vK4qRRFFIA1mTHji12xZNSqoglHi65dJfmq94AKcU1SflV30yHmvjPagqAGwD+2F773nv69rNzSccnD0akphWc2pKFRPmrOaYcaJgiARqPQNJ974fTZm7JmvnzqPXcrZc/yLK07ivTdThWyWFHFccabRxKfFxVUTAA6CHhpxdbQHzM/1cgBYQOI0ifGmn4+PNa26iVxFCwJ3xj/wdyytTjycWPN377I+klyz3K2dZtncbVOzTJ9Tb6GxaxrovPotRoo1yajxdSX4HkinP+5PKjaeFLQdvMn3f7pSOnfk1CXF4h5z4+V++pXqMqDWUcegVAGp+Ryl4U9US3AITeLC2KvTXrHlQIQrOVhVqeki5XrwDx49rOa9s3q+lVR0UxfFoAlHQlz1MAAN19P6JpADIAnHbV7Tgn0ofe1kWcthCmucNCqiOzZCm1dfMI/xf/StS2FhNFnKP3nX0QujYtpmpLEc919WPAZqBAANKXSCCocdol7FsgA8J5eVC8ZcxVX0Z8552aIedAwDrjc7y4dZsZPa18yV87hNqLl6oAUA/w3Ru4W/iqfyNwHa3GiCos1rkPPonqjRka85sIUQCi11vGE33rD3DzKjFel3/3IOkCVGsyaGfdahI4v5K4ipaFKN3AX9myTz9miYsr/U9RO2h3ffYbo9T6SZkmpKzRd52cpGOeEmRhE6KWeBVCQGjf+gP0EESIZ5CoAHCDZxFnJVBuqqLkNkYcp8+A7+VX9am6014yWcoeP50CANTXHSLW0DFR8bIK3lP9C33486m8HLABaKT7LJuhQw8C4GiiWYDvwgCIKgBcLSKBxiIIZlTJ3nKHmOp/Wz6x8wCVQ7wo6+Yw37knjeGaQoLt1gQy8T3Tl1PAzVSQODkG9gsMgN2wYafTxvtPlIbB9HNgGjEzfxrBoBAPZ/f+hfW4fnuTEhb/TuCdggwAPCKAJ6cXjnICw0hPFiDq5A65BTEc6cEJ7GF1x2uz6BF6B/boA/QwuSMmILHp4xZANYARESQ4fREAu6mAkS0gUenF2o0+uQxhaB0DhxmIKnB81PmLfgoAgfZPVvAIseBmXWf0Nd7TqyPmP6FB2lOjyOivCnoKACO13IkK0UvMYL77LYC3poeouXwDhWxHwjWMHM4wBACbk5rHbUazNWrjph57BPk7PuDx9Jv5mq/lOYqRBUS6XIQkLAzlG7KEhRIKuoxWxuW+J6SO2YDjqmoNuWuj1t33uktY0HeQp9eOm5S2q6XMc+6XOvXCbADVOHJIiDEMAVAnMd2YGpY2Z6spM32jYhnrMmY/06ut+477BAIAyCf/3iQ111ZR9C/C0MXZwIJ5gNF/nGiEfoYRysDkRLHgOJombDUWP7BPs4/36Y1Vd7Qi70oAtwjVvSQqLU1ZzH9pDQbO/i2DcBZy8ogQBhBGOUAwOlnSPe+wpHveMOZkNtKSSsmA8wemT2CvqH6JBNw38lS9MIdr/vBxLdw6h/ABcSSM3H8wTS8jn1wLqVP+zKXftyPJAA6853/0+YTWPwL4GlT6XOhsOFKpu7x9lhq6vBLBkw8gx39df1xCADDZh8x8FPMWvMEVPbnPOKqyX9ux9rsAbqF5d5Eub3s+u7h5jha8toxorZWIftOAPGzIwasUsxo5xB3chHXvC4a807pxawaki9aACeDrdF79fzbi+GiK5qv9IYQbZyMETCPZJt3A9CoTx9XyaNgAYxft5MxjHIaxvev6fbcMigBuEWj6DxM2niiS/f4X0P/5XKI15wFqw3x7IBSYyacIJQcMqUWvauMeqNXzOW591uJBOV8PqgC+gn5I1PP77SHn5dUscHEVyM3FgEpi/AhTf8E4CiTlOrNOO2KwZb4ijJt4AVN/GLVmYSCIjQC+JNS5iyc1h+xSx9WpGL64DiKNc4BThvbpgXIqcBkXqLlsl5A64W0td3KzJXdFzPrsx1QAt5B8ewg5/aZJYpZyKt/4HnaerWJaRyGSoRJcQgDN6AN91jHNMHq9Xmc8Ikx90qNLWRnzi7a4EMC3CVzdaaWNu1cQ1ydPUu3GFKBBMTF/nkYvA+jcaLjnPVb8wsuG9gvNwqzfx1XsPC4FcAvFsz8t1HhqBjq2Tddk5zOEutJi3hWsJxgCRYuf4+x7ILViP1ew7IDAQs26wjVxNfG3iGsB3EJq+Xc+0tY+Ca5+MJeqrqdRbi1GEmddxikHVMxxc6p2ADIfXs+NXXkkKXde3HfATggB3KKr8W1CpbY8Vr9vsRZyvEjkpgLgpO4adA0elFeZkNPAgfAWlD61i0u6p86Yv2LQvfm7JaEEcAtVOkOo65RduXJ8aqTL+SJ2ni0hrCMDUB2kmAICMIOfJRVd4MG8Xjdx/l594S9bB+fZ/UtCCuDreDu2W/jLh9IU16WlXNcX64C2FPfUGatvmNzUMGEXb8h9g1Q8UpOU/vx32twmEgkvgFsovq28WvdZRiTQuhTbT6wDrbUUSD9ZBMZRJPYGmvbAQR6518WS2XV89o+GxG/kDRkB3ELu2EjY2aNWibMugPY9y0C5PAdAtQDcaUyBowBcEPiCI1rK7PcNhrSdpCDXo8/uvg9wojLkBPB11P1PC4HUmYXo3L0KO09VMc1XhhiO7jQyQQVibARD6S7IePQtQ+BCjVC1JWGcujtlSAvgFqz1FRLwpqSB452lLHh+LaNSOTKv+PUbScaSZORMNUQoeptmLNhmEkgrN/kfhtRq745hIYBbRPavJbK9xErDzRXk+tHHZBpYwRiCHnAPZtz/AU0pP2p0Xvbw816Ly6DNQDCsBPB1widf47Wi7DxKOcpduNKcNPuHQ361d8ewFcAIN4nvuPoIA86IAIY5IwIY5owIYJgzIoBhzogAhjkjAhjmjAhgmDMigGHO/wc7bUTIaq4kdAAAAABJRU5ErkJggg=="}},"time_used":23,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":22,"receive":1,"ssl":0},"alerts":{"ids":null,"analyzer":[{"sensor_name":"dns4eu","sensor_type":"DNS","title":"DNS4EU","description":"DNS4EU","scan_date":"2026-07-27","alert":"Sinkholed","trigger":"digital-assettrade.com","verdict":"malicious","severity":"medium","comment":"","link":"https://www.joindns4.eu/","meta":null}],"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/20331.74035fe9297181a127db.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.041Z","timestamp":1785148034041,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/20331.74035fe9297181a127db.js HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a61b1a9-9c22\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Thu, 23 Jul 2026 06:16:09 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/23/2026 10:17:28\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 34cddd973d8790cb509264696eddaed7\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":39970,"size_decoded":13870,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (3068)","md5":"80fd73098bc3f1b62f5be21ba82ce7e3","sha1":"e95fd45c1982ac20337bb73d34102c2ff803d842","sha256":"7d2c5cf5a94d571f2fd90f67cb4fcd30385dd47b9d9ea5ae4a527728087badd6","sha512":"1b958675ed2ec6977c296824a443de3bce71b8529e3d1b2181148ae7e0d10caf03a35739d761f588f0e00eb39eb0bc96f147e083862702bcfd25b2107c46b411","ssdeep":"768:jj2btu57z2njmJ16zwExyPwtsQYxJ5rCBweiUgier6fA80OIbGy9gyRv:jj4c1O3T2+0U7fSQZC","tlshash":"270308507070e06896f240aad13f064be3b6354db859086df1b9acdc6aec98e717db78","first_seen":"2026-07-25T03:24:57.2429Z","last_seen":"2026-07-27T12:07:26.538599Z","times_seen":19,"resource_available":true,"data":"KHNlbGYud2VicGFja0NodW5rdHJhZGluZ3ZpZXc9c2VsZi53ZWJwYWNrQ2h1bmt0cmFkaW5ndmlld3x8W10pLnB1c2goW1syMDMzMSw2MzU5NV0sezgwMzI4NyhlKXtlLmV4cG9ydHM9eyJkZWZhdWx0LWRyYXdlci1taW4tdG9wLWRpc3RhbmNlIjoiMTAwcHgiLHdyYXA6IndyYXAtaWlpMTE4b04iLHBvc2l0aW9uQm90dG9tOiJwb3NpdGlvbkJvdHRvbS1paWkxMThvTiIsYmFja2Ryb3A6ImJhY2tkcm9wLWlpaTExOG9OIixkcmF3ZXI6ImRyYXdlci1paWkxMThvTiIscG9zaXRpb25MZWZ0OiJwb3NpdGlvbkxlZnQtaWlpMTE4b04ifX0sOTU4NjM5KGUpe2UuZXhwb3J0cz17bWVudVdyYXA6Im1lbnVXcmFwLWxCSXhJd3R6Iixpc01lYXN1cmluZzoiaXNNZWFzdXJpbmctbEJJeEl3dHoiLHNjcm9sbFdyYXA6InNjcm9sbFdyYXAtbEJJeEl3dHoiLG1vbWVudHVtQmFzZWQ6Im1vbWVudHVtQmFzZWQtbEJJeEl3dHoiLG1lbnVCb3g6Im1lbnVCb3gtbEJJeEl3dHoiLGlzSGlkZGVuOiJpc0hpZGRlbi1sQkl4SXd0eiJ9fSw3MTc2MChlKXtlLmV4cG9ydHM9eyJjaGVja2JveC1zaXplIjoiMThweCIsImNoZWNrYm94LXByaW1hcnktZGVmYXVsdC1iZyI6InZhcigtLWNvbG9yLWNvbnRhaW5lci1maWxsLXByaW1hcnktbmV1dHJhbC1leHRyYS1ib2xkKSIsImNoZWNrYm94LXByaW1hcnktaG92ZXItYmciOiJ2YXIoLS1jb2xvci1jb250YWluZXItZmlsbC1wcmltYXJ5LW5ldXRyYWwtYm9sZCkiLCJjaGVja2JveC1wcmltYXJ5LWFjdGl2ZS1iZyI6InZhcigtLWNvbG9yLWNvbnRhaW5lci1maWxsLXByaW1hcnktbmV1dHJhbC1tZWRpdW0pIiwiY2hlY2tib3gtcHJpbWFyeS1mZyI6InZhcigtLWNvbG9yLWNvbnRhaW5lci1maWxsLXF1aW5hcnktaW52ZXJzZSkiLCJjaGVja2JveC1kYW5nZXItZGVmYXVsdC1iZyI6InZhcigtLWNvbG9yLWNvbnRhaW5lci1maWxsLXByaW1hcnktZGFuZ2VyLWJvbGQpIiwiY2hlY2tib3gtZGFuZ2VyLWhvdmVyLWJnIjoidmFyKC0tY29sb3ItY29udGFpbmVyLWZpbGwtcHJpbWFyeS1kYW5nZXItc2VtaS1ib2xkKSIsImNoZWNrYm94LWRhbmdlci1hY3RpdmUtYmciOiJ2YXIoLS1jb2xvci1jb250YWluZXItZmlsbC1wcmltYXJ5LWRhbmdlcikiLCJjaGVja2JveC1kYW5nZXItZmciOiJ2YXIoLS1jb2xvci1jb250YWluZXItZmlsbC1xdWF0ZXJuYXJ5LWludmVyc2UpIix3cmFwcGVyOiJ3cmFwcGVyLXNXODdwUXpLIixpbnB1dDoiaW5wdXQtc1c4N3BReksiLGZvY3VzT3V0bGluZToiZm9jdXNPdXRsaW5lLXNXODdwUXpLIixwcmltYXJ5OiJwcmltYXJ5LXNXODdwUXpLIixkaXNhYmxlZDoiZGlzYWJsZWQtc1c4N3BReksiLGRhbmdlcjoiZGFuZ2VyLXNXODdwUXpLIix2aWV3OiJ2aWV3LXNXODdwUXpLIn19LDgzMjUxOChlKXtlLmV4cG9ydHM9eyJjaGVja2JveC1zaXplIjoiMThweCIsYm94OiJib3gtWGZHa0JCcWYiLHVuY2hlY2tlZDoidW5jaGVja2VkLVhmR2tCQnFmIixjaGVja2VkOiJjaGVja2VkLVhmR2tCQnFmIixtaXhlZDoibWl4ZWQtWGZHa0JCcWYiLGRpc2FibGVkOiJkaXNhYmxlZC1YZkdrQkJxZiIsY2hlY2tlZE1hcms6ImNoZWNrZWRNYXJrLVhmR2tCQnFmIixtaXhlZE1hcms6Im1peGVkTWFyay1YZkdrQkJxZiJ9fSw0NDM3MTIoZSl7ZS5leHBvcnRzPXthY2Nlc3NpYmxlOiJhY2Nlc3NpYmxlLWljQ2pGVHEyIn19LDg2NjU0NihlKXtlLmV4cG9ydHM9e2xvYWRlcldyYXA6ImxvYWRlcldyYXAtTzE2WHY0VDIiLGJpZzoiYmlnLU8xNlh2NFQyIixsb2FkZXI6ImxvYWRlci1PMTZYdjRUMiJ9fSw5MTYyNihlKXtlLmV4cG9ydHM9e2l0ZW06Iml0ZW0tdlRtOE8wTE0iLGludGVyYWN0aXZlOiJpbnRlcmFjdGl2ZS12VG04TzBMTSIsaG92ZXJlZDoiaG92ZXJlZC12VG04TzBMTSIsZGlzYWJsZWQ6ImRpc2FibGVkLXZUbThPMExNIixhY3RpdmU6ImFjdGl2ZS12VG04TzBMTSIsc2hvcnRjdXQ6InNob3J0Y3V0LXZUbThPMExNIixub3JtYWw6Im5vcm1hbC12VG04TzBMTSIsYmlnOiJiaWctdlRtOE8wTE0iLGljb25DZWxsOiJpY29uQ2VsbC12VG04TzBMTSIsaWNvbjoiaWNvbi12VG04TzBMTSIsY29udGVudDoiY29udGVudC12VG04TzBMTSIsbGFiZWw6ImxhYmVsLXZUbThPMExNIixjaGVja2VkOiJjaGVja2VkLXZUbThPMExNIix0b29sYm94OiJ0b29sYm94LXZUbThPMExNIixzaG93VG9vbGJveE9uSG92ZXI6InNob3dUb29sYm94T25Ib3Zlci12VG04TzBMTSIsYXJyb3dJY29uOiJhcnJvd0ljb24tdlRtOE8wTE0iLHN1Yk1lbnU6InN1Yk1lbnUtdlRtOE8wTE0iLGludmlzaWJsZUhvdGtleToiaW52aXNpYmxlSG90a2V5LXZUbThPMExNIn19LDEzMjY0NihlKXtlLmV4cG9ydHM9e3Jvdzoicm93LV9Dd25ZbEZfIixsaW5lOiJsaW5lLV9Dd25ZbEZfIixoaW50OiJoaW50LV9Dd25ZbEZfIn19LDEzNzk4OChlKXtlLmV4cG9ydHM9e21lbnU6Im1lbnUtb3F3SDg4NU0ifX0sMTA3OTY2KGUpe2UuZXhwb3J0cz17aXRlbToiaXRlbS1kOWpMT0xyUiIsZW1wdHlJY29uczoiZW1wdHlJY29ucy1kOWpMT0xyUiIsbG9hZGluZzoibG9hZGluZy1kOWpMT0xyUiIsZGlzYWJsZWQ6ImRpc2FibGVkLWQ5akxPTHJSIixpbnRlcmFjdGl2ZToiaW50ZXJhY3RpdmUtZDlqTE9MclIiLGhvdmVyZWQ6ImhvdmVyZWQtZDlqTE9MclIiLG5vcm1hbDoibm9ybWFsLWQ5akxPTHJSIixiaWc6ImJpZy1kOWpMT0xyUiIsaWNvbjoiaWNvbi1kOWpMT0xyUiIsbGFiZWw6ImxhYmVsLWQ5akxPTHJSIix0aXRsZToidGl0bGUtZDlqTE9MclIiLG5lc3RlZDoibmVzdGVkLWQ5akxPTHJSIixzaG9ydGN1dDoic2hvcnRjdXQtZDlqTE9MclIiLHJlbW92ZToicmVtb3ZlLWQ5akxPTHJSIn19LDk1NDQ3OChlKXtlLmV4cG9ydHM9e3NlcGFyYXRvcjoic2VwYXJhdG9yLUtIdHlNVFlHIn19LDMxMzc3MihlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtEcmF3ZXJDb250ZXh0OigpPT5pLERyYXdlck1hbmFnZXI6KCk9Pm99KTt2YXIgcz1uKDc3OTQ3NCkscj1uKDk5NTY3OCk7Y2xhc3MgbyBleHRlbmRzIHMuUHVyZUNvbXBvbmVudHtjb25zdHJ1Y3RvcihlKXtzdXBlcihlKSx0aGlzLl9pc0JvZHlGaXhlZD0hMSwKdGhpcy5fYWRkRHJhd2VyPWU9Pnt0aGlzLnNldFN0YXRlKCh0PT4oe3N0YWNrOlsuLi50LnN0YWNrLGVdfSkpKX0sdGhpcy5fcmVtb3ZlRHJhd2VyPWU9Pnt0aGlzLnNldFN0YXRlKCh0PT4oe3N0YWNrOnQuc3RhY2suZmlsdGVyKCh0PT50IT09ZSkpfSkpKX0sdGhpcy5zdGF0ZT17c3RhY2s6W119fWNvbXBvbmVudERpZFVwZGF0ZShlLHQpeyF0LnN0YWNrLmxlbmd0aCYmdGhpcy5zdGF0ZS5zdGFjay5sZW5ndGgmJigoMCxyLnJlcXVlc3RNb2RhbFNjcm9sbExvY2spKHdpbmRvdyksdGhpcy5faXNCb2R5Rml4ZWQ9ITApLHQuc3RhY2subGVuZ3RoJiYhdGhpcy5zdGF0ZS5zdGFjay5sZW5ndGgmJnRoaXMuX2lzQm9keUZpeGVkJiYoKDAsci5yZWxlYXNlTW9kYWxTY3JvbGxMb2NrKSh3aW5kb3cpLHRoaXMuX2lzQm9keUZpeGVkPSExKX1jb21wb25lbnRXaWxsVW5tb3VudCgpe3RoaXMuc3RhdGUuc3RhY2subGVuZ3RoJiZ0aGlzLl9pc0JvZHlGaXhlZCYmKDAsci5yZWxlYXNlTW9kYWxTY3JvbGxMb2NrKSh3aW5kb3cpfXJlbmRlcigpe3JldHVybiBzLmNyZWF0ZUVsZW1lbnQoaS5Qcm92aWRlcix7dmFsdWU6e2FkZERyYXdlcjp0aGlzLl9hZGREcmF3ZXIscmVtb3ZlRHJhd2VyOnRoaXMuX3JlbW92ZURyYXdlcixjdXJyZW50RHJhd2VyOnRoaXMuc3RhdGUuc3RhY2subGVuZ3RoP3RoaXMuc3RhdGUuc3RhY2tbdGhpcy5zdGF0ZS5zdGFjay5sZW5ndGgtMV06bnVsbH19LHRoaXMucHJvcHMuY2hpbGRyZW4pfX1jb25zdCBpPXMuY3JlYXRlQ29udGV4dChudWxsKX0sOTY0MjE0KGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse0RyYXdlcjooKT0+cH0pO3ZhciBzPW4oNzc5NDc0KSxyPW4oOTE0NDg3KSxvPW4ubihyKSxpPW4oMTM4NjM4KSxhPW4oNTg1NDgpLGw9bigxNTAxNTApLGM9bigzMTM3NzIpLHU9big2MzI5OTIpLGQ9big1NTgwMzApLGg9big4MDMyODcpO3ZhciBtO2Z1bmN0aW9uIHAoZSl7Y29uc3R7cG9zaXRpb246dD0iQm90dG9tIixvbkNsb3NlOm4sY2hpbGRyZW46cixyZWZlcmVuY2U6ZCxjbGFzc05hbWU6bSx0aGVtZTpwPWh9PWUsdj0oMCxpLmVuc3VyZU5vdE51bGwpKCgwLHMudXNlQ29udGV4dCkoYy5EcmF3ZXJDb250ZXh0KSksW2ZdPSgwLHMudXNlU3RhdGUpKCgoKT0+KDAsbC5yYW5kb21IYXNoKSgpKSkseD0oMCxzLnVzZVJlZikobnVsbCksXz0oMCxzLnVzZUNvbnRleHQpKHUuQ2xvc2VEZWxlZ2F0ZUNvbnRleHQpO3JldHVybigwLHMudXNlTGF5b3V0RWZmZWN0KSgoKCk9PigoMCxpLmVuc3VyZU5vdE51bGwpKHguY3VycmVudCkuZm9jdXMoe3ByZXZlbnRTY3JvbGw6ITB9KSxfLnN1YnNjcmliZSh2LG4pLHYuYWRkRHJhd2VyKGYpLCgpPT57di5yZW1vdmVEcmF3ZXIoZiksXy51bnN1YnNjcmliZSh2LG4pfSkpLFtdKSxzLmNyZWF0ZUVsZW1lbnQoYS5Qb3J0YWwsbnVsbCxzLmNyZWF0ZUVsZW1lbnQoImRpdiIse3JlZjpkLGNsYXNzTmFtZTpvKCkoaC53cmFwLGhbYHBvc2l0aW9uJHt0fWBdKX0sZj09PXYuY3VycmVudERyYXdlciYmcy5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6aC5iYWNrZHJvcCxvbkNsaWNrOm59KSxzLmNyZWF0ZUVsZW1lbnQoYix7Y2xhc3NOYW1lOm8oKShwLmRyYXdlcixoW2Bwb3NpdGlvbiR7dH1gXSxtKSxyZWY6eCwiZGF0YS1uYW1lIjplWyJkYXRhLW5hbWUiXSwiZGF0YS1xYS1pZCI6ZVsiZGF0YS1xYS1pZCJdfSxyKSkpfSFmdW5jdGlvbihlKXtlLkxlZnQ9IkxlZnQiLGUuQm90dG9tPSJCb3R0b20ifShtfHwobT17fSkpO2NvbnN0IGI9KDAscy5mb3J3YXJkUmVmKSgoKGUsdCk9Pntjb25zdHtjbGFzc05hbWU6biwuLi5yfT1lO3JldHVybiBzLmNyZWF0ZUVsZW1lbnQoZC5Ub3VjaFNjcm9sbENvbnRhaW5lcix7Y2xhc3NOYW1lOm8oKShoLmRyYXdlcixuKSx0YWJJbmRleDotMSxyZWY6dCwuLi5yfSl9KSl9LDk1MTA0NChlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtLZXlib2FyZERvY3VtZW50TGlzdGVuZXI6KCk9PnJ9KTt2YXIgcz1uKDc3OTQ3NCk7Y2xhc3MgciBleHRlbmRzIHMuUHVyZUNvbXBvbmVudHtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5faGFuZGxlS2V5RG93bj1lPT57ZS5rZXlDb2RlPT09dGhpcy5wcm9wcy5rZXlDb2RlJiZ0aGlzLnByb3BzLmhhbmRsZXIoZSl9fWNvbXBvbmVudERpZE1vdW50KCl7ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcih0aGlzLnByb3BzLmV2ZW50VHlwZXx8ImtleWRvd24iLHRoaXMuX2hhbmRsZUtleURvd24sITEpfWNvbXBvbmVudFdpbGxVbm1vdW50KCl7ZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcih0aGlzLnByb3BzLmV2ZW50VHlwZXx8ImtleWRvd24iLHRoaXMuX2hhbmRsZUtleURvd24sITEpfXJlbmRlcigpe3JldHVybiBudWxsfX19LDQwNjExMChlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtNYXRjaE1lZGlhOigpPT5yfSk7dmFyIHM9big3Nzk0NzQpO2NsYXNzIHIgZXh0ZW5kcyBzLlB1cmVDb21wb25lbnR7Y29uc3RydWN0b3IoZSl7c3VwZXIoZSksdGhpcy5faGFuZGxlQ2hhbmdlPSgpPT57dGhpcy5mb3JjZVVwZGF0ZSgpfSx0aGlzLnN0YXRlPXtxdWVyeTp3aW5kb3cubWF0Y2hNZWRpYSh0aGlzLnByb3BzLnJ1bGUpfX1jb21wb25lbnREaWRNb3VudCgpe3RoaXMuX3N1YnNjcmliZSh0aGlzLnN0YXRlLnF1ZXJ5KX1jb21wb25lbnREaWRVcGRhdGUoZSx0KXt0aGlzLnN0YXRlLnF1ZXJ5IT09dC5xdWVyeSYmKHRoaXMuX3Vuc3Vic2NyaWJlKHQucXVlcnkpLHRoaXMuX3N1YnNjcmliZSh0aGlzLnN0YXRlLnF1ZXJ5KSl9Y29tcG9uZW50V2lsbFVubW91bnQoKXt0aGlzLl91bnN1YnNjcmliZSh0aGlzLnN0YXRlLnF1ZXJ5KX1yZW5kZXIoKXtyZXR1cm4gdGhpcy5wcm9wcy5jaGlsZHJlbih0aGlzLnN0YXRlLnF1ZXJ5Lm1hdGNoZXMpfXN0YXRpYyBnZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMoZSx0KXtyZXR1cm4gZS5ydWxlIT09dC5xdWVyeS5tZWRpYT97cXVlcnk6d2luZG93Lm1hdGNoTWVkaWEoZS5ydWxlKX06bnVsbH1fc3Vic2NyaWJlKGUpe2UuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIix0aGlzLl9oYW5kbGVDaGFuZ2UpfV91bnN1YnNjcmliZShlKXsKZS5yZW1vdmVFdmVudExpc3RlbmVyKCJjaGFuZ2UiLHRoaXMuX2hhbmRsZUNoYW5nZSl9fX0sNjgxMjI0KGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse01lbnVDb250ZXh0OigpPT5zfSk7Y29uc3Qgcz1uKDc3OTQ3NCkuY3JlYXRlQ29udGV4dChudWxsKX0sMTQ1MTUwKGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse0RFRkFVTFRfTUVOVV9USEVNRTooKT0+dixNZW51OigpPT54fSk7dmFyIHM9big3Nzk0NzQpLHI9big5MTQ0ODcpLG89bi5uKHIpLGk9bigxMzg2MzgpLGE9big2MDc4MzIpLGw9big5MDM0MiksYz1uKDg5MTIwOSksdT1uKDY0MDc0NCksZD1uKDUxODc1KSxoPW4oNzI3MDkpLG09bigyNzYwMTkpLHA9big2ODEyMjQpLGI9big5NTg2MzkpO2NvbnN0IHY9Yjt2YXIgZjshZnVuY3Rpb24oZSl7ZVtlLkluZGVudEZyb21XaW5kb3c9MF09IkluZGVudEZyb21XaW5kb3cifShmfHwoZj17fSkpO2NsYXNzIHggZXh0ZW5kcyBzLlB1cmVDb21wb25lbnR7Y29uc3RydWN0b3IoZSl7c3VwZXIoZSksdGhpcy5fY29udGFpbmVyUmVmPW51bGwsdGhpcy5fc2Nyb2xsV3JhcFJlZj1udWxsLHRoaXMuX3JhZj1udWxsLHRoaXMuX3Njcm9sbFJhZj1udWxsLHRoaXMuX3Njcm9sbFRpbWVvdXQ9dm9pZCAwLHRoaXMuX21hbmFnZXI9bmV3IGwuT3ZlcmxhcE1hbmFnZXIsdGhpcy5faG90a2V5cz1udWxsLHRoaXMuX3Njcm9sbD0wLHRoaXMuX2hhbmRsZUNvbnRhaW5lclJlZj1lPT57dGhpcy5fY29udGFpbmVyUmVmPWUsdGhpcy5wcm9wcy5yZWZlcmVuY2UmJigiZnVuY3Rpb24iPT10eXBlb2YgdGhpcy5wcm9wcy5yZWZlcmVuY2UmJnRoaXMucHJvcHMucmVmZXJlbmNlKGUpLCJvYmplY3QiPT10eXBlb2YgdGhpcy5wcm9wcy5yZWZlcmVuY2UmJih0aGlzLnByb3BzLnJlZmVyZW5jZS5jdXJyZW50PWUpKX0sdGhpcy5faGFuZGxlU2Nyb2xsV3JhcFJlZj1lPT57dGhpcy5fc2Nyb2xsV3JhcFJlZj1lLCJmdW5jdGlvbiI9PXR5cGVvZiB0aGlzLnByb3BzLnNjcm9sbFdyYXBSZWZlcmVuY2UmJnRoaXMucHJvcHMuc2Nyb2xsV3JhcFJlZmVyZW5jZShlKSwib2JqZWN0Ij09dHlwZW9mIHRoaXMucHJvcHMuc2Nyb2xsV3JhcFJlZmVyZW5jZSYmKHRoaXMucHJvcHMuc2Nyb2xsV3JhcFJlZmVyZW5jZS5jdXJyZW50PWUpfSx0aGlzLl9oYW5kbGVDdXN0b21SZW1lYXN1cmVEZWxlZ2F0ZT0oKT0+e3RoaXMuX3Jlc2l6ZUZvcmNlZCgpLHRoaXMuX2hhbmRsZU1lYXN1cmUoKX0sdGhpcy5faGFuZGxlTWVhc3VyZT0oe2NhbGxiYWNrOmUsZm9yY2VSZWNhbGNQb3NpdGlvbjp0fT17fSk9PntpZih0aGlzLnN0YXRlLmlzTWVhc3VyZVZhbGlkJiYhdClyZXR1cm47Y29uc3R7cG9zaXRpb246bn09dGhpcy5wcm9wcyxzPSgwLGkuZW5zdXJlTm90TnVsbCkodGhpcy5fY29udGFpbmVyUmVmKTtsZXQgcj1zLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO2NvbnN0IG89ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodCxhPWRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aCxsPXRoaXMucHJvcHMuY2xvc2VPblNjcm9sbE91dHNpZGVPZmZzZXQ/PzA7bGV0IGM9by0wLWw7Y29uc3QgZD1yLmhlaWdodD5jO2lmKGQpeygwLGkuZW5zdXJlTm90TnVsbCkodGhpcy5fc2Nyb2xsV3JhcFJlZikuc3R5bGUub3ZlcmZsb3dZPSJzY3JvbGwiLHI9cy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKX1jb25zdHt3aWR0aDpoLGhlaWdodDptfT1yLHA9ImZ1bmN0aW9uIj09dHlwZW9mIG4/bih7Y29udGVudFdpZHRoOmgsY29udGVudEhlaWdodDptLGF2YWlsYWJsZVdpZHRoOmEsYXZhaWxhYmxlSGVpZ2h0Om99KTpuLGI9cD8uaW5kZW50RnJvbVdpbmRvdz8ubGVmdD8/MCx2PWEtKHAub3ZlcnJpZGVXaWR0aD8/aCktKHA/LmluZGVudEZyb21XaW5kb3c/LnJpZ2h0Pz8wKSxmPSgwLHUuY2xhbXApKHAueCxiLE1hdGgubWF4KGIsdikpLHg9KHA/LmluZGVudEZyb21XaW5kb3c/LnRvcD8/MCkrbCxfPW8tKHAub3ZlcnJpZGVIZWlnaHQ/P20pLShwPy5pbmRlbnRGcm9tV2luZG93Py5ib3R0b20/PzApO2xldCBnPSgwLHUuY2xhbXApKHAueSx4LE1hdGgubWF4KHgsXykpO2lmKHAuZm9yYmlkQ29ycmVjdFlDb29yZCYmZzxwLnkmJihjLT1wLnktZyxnPXAueSksdCYmdm9pZCAwIT09dGhpcy5wcm9wcy5jbG9zZU9uU2Nyb2xsT3V0c2lkZU9mZnNldCYmcC55PD10aGlzLnByb3BzLmNsb3NlT25TY3JvbGxPdXRzaWRlT2Zmc2V0KXJldHVybiB2b2lkIHRoaXMuX2hhbmRsZUdsb2JhbENsb3NlKCEwKTtjb25zdCB3PXAub3ZlcnJpZGVIZWlnaHQ/PyhkP2M6dm9pZCAwKTt0aGlzLnNldFN0YXRlKHthcHBlYXJpbmdNZW51SGVpZ2h0OnQ/dGhpcy5zdGF0ZS5hcHBlYXJpbmdNZW51SGVpZ2h0OncsYXBwZWFyaW5nTWVudVdpZHRoOnQ/dGhpcy5zdGF0ZS5hcHBlYXJpbmdNZW51V2lkdGg6cC5vdmVycmlkZVdpZHRoLGFwcGVhcmluZ1Bvc2l0aW9uOnt4OmYseTpnfSxpc01lYXN1cmVWYWxpZDohMH0sKCgpPT57dGhpcy5wcm9wcy5kb05vdFJlc3RvcmVQb3NpdGlvbnx8dGhpcy5fcmVzdG9yZVNjcm9sbFBvc2l0aW9uKCksZSYmZSgpfSkpfSx0aGlzLl9yZXN0b3JlU2Nyb2xsUG9zaXRpb249KCk9Pntjb25zdCBlPSgwLGkuZW5zdXJlTm90TnVsbCkodGhpcy5fc2Nyb2xsV3JhcFJlZik7ZS5zY3JvbGxUb3A9dGhpcy5fc2Nyb2xsO2NvbnN0IHQ9ZG9jdW1lbnQuYWN0aXZlRWxlbWVudCxuPSgwLGkuZW5zdXJlTm90TnVsbCkodGhpcy5fY29udGFpbmVyUmVmKTtpZih0IGluc3RhbmNlb2YgSFRNTEVsZW1lbnQmJm4uY29udGFpbnModCkmJiF0aGlzLl9pc0VsZW1lbnRGdWxseVZpc2libGUodCxlKSl0cnl7dC5zY3JvbGxJbnRvVmlldygpfWNhdGNoKGUpe319LHRoaXMuX2lzRWxlbWVudEZ1bGx5VmlzaWJsZT0oZSx0KT0+e2NvbnN0IG49ZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxzPXQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7cmV0dXJuIG4udG9wPj1zLnRvcCYmbi5ib3R0b208PXMuYm90dG9tfSx0aGlzLl9yZXNpemVGb3JjZWQ9KCk9Pnt0aGlzLnNldFN0YXRlKHthcHBlYXJpbmdNZW51SGVpZ2h0OnZvaWQgMCwKYXBwZWFyaW5nTWVudVdpZHRoOnZvaWQgMCxhcHBlYXJpbmdQb3NpdGlvbjp2b2lkIDAsaXNNZWFzdXJlVmFsaWQ6dm9pZCAwfSl9LHRoaXMuX3Jlc2l6ZT0oKT0+e251bGw9PT10aGlzLl9yYWYmJih0aGlzLl9yYWY9cmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgoKT0+e3RoaXMuc2V0U3RhdGUoe2FwcGVhcmluZ01lbnVIZWlnaHQ6dm9pZCAwLGFwcGVhcmluZ01lbnVXaWR0aDp2b2lkIDAsYXBwZWFyaW5nUG9zaXRpb246dm9pZCAwLGlzTWVhc3VyZVZhbGlkOnZvaWQgMH0pLHRoaXMuX3JhZj1udWxsfSkpKX0sdGhpcy5faGFuZGxlR2xvYmFsQ2xvc2U9ZT0+e3RoaXMucHJvcHMub25DbG9zZShlKX0sdGhpcy5faGFuZGxlU2xvdD1lPT57dGhpcy5fbWFuYWdlci5zZXRDb250YWluZXIoZSl9LHRoaXMuX2hhbmRsZVNjcm9sbD0oKT0+e3RoaXMuX3Njcm9sbD0oMCxpLmVuc3VyZU5vdE51bGwpKHRoaXMuX3Njcm9sbFdyYXBSZWYpLnNjcm9sbFRvcH0sdGhpcy5faGFuZGxlU2Nyb2xsT3V0c2lkZUVuZD0oKT0+e2NsZWFyVGltZW91dCh0aGlzLl9zY3JvbGxUaW1lb3V0KSx0aGlzLl9zY3JvbGxUaW1lb3V0PXNldFRpbWVvdXQoKCgpPT57dGhpcy5faGFuZGxlTWVhc3VyZSh7Zm9yY2VSZWNhbGNQb3NpdGlvbjohMH0pfSksODApfSx0aGlzLl9oYW5kbGVTY3JvbGxPdXRzaWRlPWU9PntlLnRhcmdldCE9PXRoaXMuX3Njcm9sbFdyYXBSZWYmJih0aGlzLl9oYW5kbGVTY3JvbGxPdXRzaWRlRW5kKCksbnVsbD09PXRoaXMuX3Njcm9sbFJhZiYmKHRoaXMuX3Njcm9sbFJhZj1yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCgpPT57dGhpcy5faGFuZGxlTWVhc3VyZSh7Zm9yY2VSZWNhbGNQb3NpdGlvbjohMH0pLHRoaXMuX3Njcm9sbFJhZj1udWxsfSkpKSl9LHRoaXMuc3RhdGU9e319Y29tcG9uZW50RGlkTW91bnQoKXt0aGlzLl9oYW5kbGVNZWFzdXJlKHtjYWxsYmFjazp0aGlzLnByb3BzLm9uT3Blbn0pO2NvbnN0e2N1c3RvbUNsb3NlRGVsZWdhdGU6ZT1tLmdsb2JhbENsb3NlRGVsZWdhdGUsY3VzdG9tUmVtZWFzdXJlRGVsZWdhdGU6dH09dGhpcy5wcm9wcztlLnN1YnNjcmliZSh0aGlzLHRoaXMuX2hhbmRsZUdsb2JhbENsb3NlKSx0Py5zdWJzY3JpYmUobnVsbCx0aGlzLl9oYW5kbGVDdXN0b21SZW1lYXN1cmVEZWxlZ2F0ZSksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsdGhpcy5fcmVzaXplKTtjb25zdCBuPW51bGwhPT10aGlzLmNvbnRleHQ7dGhpcy5faG90a2V5c3x8bnx8KHRoaXMuX2hvdGtleXM9aC5jcmVhdGVHcm91cCh7ZGVzYzoiUG9wdXAgbWVudSJ9KSx0aGlzLl9ob3RrZXlzLmFkZCh7ZGVzYzoiQ2xvc2UiLGhvdGtleToyNyxoYW5kbGVyOigpPT57dGhpcy5wcm9wcy5vbktleWJvYXJkQ2xvc2UmJnRoaXMucHJvcHMub25LZXlib2FyZENsb3NlKCksdGhpcy5faGFuZGxlR2xvYmFsQ2xvc2UoKX19KSksdGhpcy5wcm9wcy5yZXBvc2l0aW9uT25TY3JvbGwmJndpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJzY3JvbGwiLHRoaXMuX2hhbmRsZVNjcm9sbE91dHNpZGUse2NhcHR1cmU6ITB9KX1jb21wb25lbnREaWRVcGRhdGUoKXt0aGlzLl9oYW5kbGVNZWFzdXJlKCl9Y29tcG9uZW50V2lsbFVubW91bnQoKXtjb25zdHtjdXN0b21DbG9zZURlbGVnYXRlOmU9bS5nbG9iYWxDbG9zZURlbGVnYXRlLGN1c3RvbVJlbWVhc3VyZURlbGVnYXRlOnR9PXRoaXMucHJvcHM7ZS51bnN1YnNjcmliZSh0aGlzLHRoaXMuX2hhbmRsZUdsb2JhbENsb3NlKSx0Py51bnN1YnNjcmliZShudWxsLHRoaXMuX2hhbmRsZUN1c3RvbVJlbWVhc3VyZURlbGVnYXRlKSx3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigicmVzaXplIix0aGlzLl9yZXNpemUpLHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJzY3JvbGwiLHRoaXMuX2hhbmRsZVNjcm9sbE91dHNpZGUse2NhcHR1cmU6ITB9KSx0aGlzLl9ob3RrZXlzJiYodGhpcy5faG90a2V5cy5kZXN0cm95KCksdGhpcy5faG90a2V5cz1udWxsKSxudWxsIT09dGhpcy5fcmFmJiYoY2FuY2VsQW5pbWF0aW9uRnJhbWUodGhpcy5fcmFmKSx0aGlzLl9yYWY9bnVsbCksbnVsbCE9PXRoaXMuX3Njcm9sbFJhZiYmKGNhbmNlbEFuaW1hdGlvbkZyYW1lKHRoaXMuX3Njcm9sbFJhZiksdGhpcy5fc2Nyb2xsUmFmPW51bGwpLHRoaXMuX3Njcm9sbFRpbWVvdXQmJmNsZWFyVGltZW91dCh0aGlzLl9zY3JvbGxUaW1lb3V0KX1yZW5kZXIoKXtjb25zdHtpZDplLHJvbGU6dCwiYXJpYS1sYWJlbCI6biwiYXJpYS1sYWJlbGxlZGJ5IjpyLCJhcmlhLWFjdGl2ZWRlc2NlbmRhbnQiOmksImFyaWEtaGlkZGVuIjpsLCJhcmlhLWRlc2NyaWJlZGJ5Ijp1LCJhcmlhLWludmFsaWQiOmgsY2hpbGRyZW46bSxtaW5XaWR0aDp2LHRoZW1lOmY9YixjbGFzc05hbWU6eCxtYXhIZWlnaHQ6Zyxvbk1vdXNlT3Zlcjp3LG9uTW91c2VPdXQ6QyxvbktleURvd246RSxvbkZvY3VzOmssb25CbHVyOnl9PXRoaXMucHJvcHMse2FwcGVhcmluZ01lbnVIZWlnaHQ6TSxhcHBlYXJpbmdNZW51V2lkdGg6TixhcHBlYXJpbmdQb3NpdGlvbjpTLGlzTWVhc3VyZVZhbGlkOkl9PXRoaXMuc3RhdGUsTz17Ii0tdWkta2l0LW1lbnUtbWF4LXdpZHRoIjpgJHtTJiZTLnh9cHhgLG1heFdpZHRoOiJjYWxjKDEwMHZ3IC0gdmFyKC0tdWkta2l0LW1lbnUtbWF4LXdpZHRoKSAtIDZweCkifTtyZXR1cm4gcy5jcmVhdGVFbGVtZW50KHAuTWVudUNvbnRleHQuUHJvdmlkZXIse3ZhbHVlOnRoaXN9LHMuY3JlYXRlRWxlbWVudChjLlN1Ym1lbnVIYW5kbGVyLG51bGwscy5jcmVhdGVFbGVtZW50KGEuU2xvdENvbnRleHQuUHJvdmlkZXIse3ZhbHVlOnRoaXMuX21hbmFnZXJ9LHMuY3JlYXRlRWxlbWVudCgiZGl2Iix7aWQ6ZSxyb2xlOnQsImFyaWEtbGFiZWwiOm4sImFyaWEtbGFiZWxsZWRieSI6ciwiYXJpYS1hY3RpdmVkZXNjZW5kYW50IjppLCJhcmlhLWhpZGRlbiI6bCwiYXJpYS1kZXNjcmliZWRieSI6dSwiYXJpYS1pbnZhbGlkIjpoLGNsYXNzTmFtZTpvKCkoeCxmLm1lbnVXcmFwLCFJJiZmLmlzTWVhc3VyaW5nKSxzdHlsZTp7aGVpZ2h0Ok0sbGVmdDpTJiZTLngsbWluV2lkdGg6dixwb3NpdGlvbjoiZml4ZWQiLHRvcDpTJiZTLnksCndpZHRoOk4sLi4udGhpcy5wcm9wcy5saW1pdE1heFdpZHRoJiZPfSwiZGF0YS1uYW1lIjp0aGlzLnByb3BzWyJkYXRhLW5hbWUiXSwiZGF0YS1xYS1pZCI6dGhpcy5wcm9wcy5kYXRhUWFJZCwiZGF0YS10b29sdGlwLXNob3ctb24tZm9jdXMiOnRoaXMucHJvcHNbImRhdGEtdG9vbHRpcC1zaG93LW9uLWZvY3VzIl0scmVmOnRoaXMuX2hhbmRsZUNvbnRhaW5lclJlZixvblNjcm9sbENhcHR1cmU6dGhpcy5wcm9wcy5vblNjcm9sbCxvbkNvbnRleHRNZW51OmQucHJldmVudERlZmF1bHRGb3JDb250ZXh0TWVudSx0YWJJbmRleDp0aGlzLnByb3BzLnRhYkluZGV4LG9uTW91c2VPdmVyOncsb25Nb3VzZU91dDpDLG9uS2V5RG93bjpFLG9uRm9jdXM6ayxvbkJsdXI6eX0scy5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6bygpKGYuc2Nyb2xsV3JhcCwhdGhpcy5wcm9wcy5ub01vbWVudHVtQmFzZWRTY3JvbGwmJmYubW9tZW50dW1CYXNlZCksc3R5bGU6e292ZXJmbG93WTp2b2lkIDAhPT1NPyJzY3JvbGwiOiJhdXRvIixtYXhIZWlnaHQ6Z30sb25TY3JvbGxDYXB0dXJlOnRoaXMuX2hhbmRsZVNjcm9sbCxyZWY6dGhpcy5faGFuZGxlU2Nyb2xsV3JhcFJlZn0scy5jcmVhdGVFbGVtZW50KF8se2NsYXNzTmFtZTpmLm1lbnVCb3h9LG0pKSkpLHMuY3JlYXRlRWxlbWVudChhLlNsb3Qse3JlZmVyZW5jZTp0aGlzLl9oYW5kbGVTbG90fSkpKX11cGRhdGUoZSl7ZT90aGlzLl9yZXNpemVGb3JjZWQoKTp0aGlzLl9yZXNpemUoKX1mb2N1cyhlKXt0aGlzLl9jb250YWluZXJSZWY/LmZvY3VzKGUpfWJsdXIoKXt0aGlzLl9jb250YWluZXJSZWY/LmJsdXIoKX19ZnVuY3Rpb24gXyhlKXtjb25zdCB0PSgwLGkuZW5zdXJlTm90TnVsbCkoKDAscy51c2VDb250ZXh0KShjLlN1Ym1lbnVDb250ZXh0KSksbj1zLnVzZVJlZihudWxsKTtyZXR1cm4gcy5jcmVhdGVFbGVtZW50KCJkaXYiLHtyZWY6bixjbGFzc05hbWU6ZS5jbGFzc05hbWUsb25Nb3VzZU92ZXI6ZnVuY3Rpb24oZSl7aWYoIShudWxsIT09dC5jdXJyZW50JiZlLnRhcmdldCBpbnN0YW5jZW9mIE5vZGUmJihzPWUudGFyZ2V0LG4uY3VycmVudD8uY29udGFpbnMocykpKSlyZXR1cm47dmFyIHM7dC5pc1N1Ym1lbnVOb2RlKGUudGFyZ2V0KXx8dC5zZXRDdXJyZW50KG51bGwpfSwiZGF0YS1xYS1pZCI6Im1lbnUtaW5uZXIifSxlLmNoaWxkcmVuKX14LmNvbnRleHRUeXBlPWMuU3VibWVudUNvbnRleHR9LDY1OTg3OChlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHttYWtlT3ZlcmxhcGFibGU6KCk9Pm99KTt2YXIgcz1uKDc3OTQ3NCkscj1uKDU4NTQ4KTtmdW5jdGlvbiBvKGUsdCl7cmV0dXJuIGNsYXNzIGV4dGVuZHMgcy5QdXJlQ29tcG9uZW50e3JlbmRlcigpe2NvbnN0e2lzT3BlbmVkOm4scm9vdDpvfT10aGlzLnByb3BzO2lmKCFuKXJldHVybiBudWxsO2NvbnN0IGk9cy5jcmVhdGVFbGVtZW50KGUsey4uLnRoaXMucHJvcHMscmVmOnRoaXMucHJvcHMuY29tcG9uZW50UmVmLHpJbmRleDoxNTB9KTtyZXR1cm4icGFyZW50Ij09PW8/aTpzLmNyZWF0ZUVsZW1lbnQoci5Qb3J0YWwse3Nob3VsZFRyYXBGb2N1czp0fSxpKX19fX0sNjMyOTkyKGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse0Nsb3NlRGVsZWdhdGVDb250ZXh0OigpPT5vfSk7dmFyIHM9big3Nzk0NzQpLHI9bigyNzYwMTkpO2NvbnN0IG89cy5jcmVhdGVDb250ZXh0KHIuZ2xvYmFsQ2xvc2VEZWxlZ2F0ZSl9LDU1ODAzMChlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtUb3VjaFNjcm9sbENvbnRhaW5lcjooKT0+Y30pO3ZhciBzPW4oNzc5NDc0KSxyPW4oODUzMzM2KSxvPW4oMTM4NjM4KSxpPW4oNzM4NDU4KTtjb25zdCBhPUNTUy5zdXBwb3J0cygib3ZlcnNjcm9sbC1iZWhhdmlvciIsIm5vbmUiKTtsZXQgbD0wO2NvbnN0IGM9KDAscy5mb3J3YXJkUmVmKSgoKGUsdCk9Pntjb25zdHtjaGlsZHJlbjpuLC4uLm99PWUsYz0oMCxzLnVzZVJlZikobnVsbCk7cmV0dXJuKDAscy51c2VJbXBlcmF0aXZlSGFuZGxlKSh0LCgoKT0+Yy5jdXJyZW50KSksKDAscy51c2VMYXlvdXRFZmZlY3QpKCgoKT0+e2lmKGkuaXNJT1MpcmV0dXJuIGwrKyxudWxsIT09Yy5jdXJyZW50JiYoYT8xPT09bCYmKGRvY3VtZW50LmJvZHkuc3R5bGUub3ZlcnNjcm9sbEJlaGF2aW9yPSJub25lIik6KDAsci5kaXNhYmxlQm9keVNjcm9sbCkoYy5jdXJyZW50LHthbGxvd1RvdWNoTW92ZTp1KGMpfSkpLCgpPT57bC0tLG51bGwhPT1jLmN1cnJlbnQmJihhPzA9PT1sJiYoZG9jdW1lbnQuYm9keS5zdHlsZS5vdmVyc2Nyb2xsQmVoYXZpb3I9IiIpOigwLHIuZW5hYmxlQm9keVNjcm9sbCkoYy5jdXJyZW50KSl9fSksW10pLHMuY3JlYXRlRWxlbWVudCgiZGl2Iix7cmVmOmMsLi4ub30sbil9KSk7ZnVuY3Rpb24gdShlKXtyZXR1cm4gdD0+e2NvbnN0IG49KDAsby5lbnN1cmVOb3ROdWxsKShlLmN1cnJlbnQpLHM9ZG9jdW1lbnQuYWN0aXZlRWxlbWVudDtyZXR1cm4hbi5jb250YWlucyh0KXx8bnVsbCE9PXMmJm4uY29udGFpbnMocykmJnMuY29udGFpbnModCl9fX0sODYwOTA3KGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse0NoZWNrYm94SW5wdXQ6KCk9Pm0sR3JvdXBlZENoZWNrYm94SW5wdXQ6KCk9PnB9KTt2YXIgcz1uKDc3OTQ3NCkscj1uKDkxNDQ4Nyksbz1uLm4ociksaT1uKDM0NTExNiksYT1uKDY1ODQ2KSxsPW4oMTQ3OTAxKSxjPW4oNTM2MTI1KSx1PW4oNzE3NjApLGQ9bi5uKHUpO2NvbnN0IGg9YCR7bC5VSV9MSUJfREFUQV9RQV9JRF9QUkVGSVh9Y2hlY2tib3gtaW5wdXRgO2Z1bmN0aW9uIG0oZSl7Y29uc3R7aW50ZW50OnQsZGlzYWJsZWQ6bixjbGFzc05hbWU6cix0aXRsZTphLHN0eWxlOmwsY2hlY2tlZDp1LGlkOm0sdGFiSW5kZXg6cCxuYW1lOmIsdmFsdWU6dixyb2xlOmYsb25DaGFuZ2U6eCxyZWZlcmVuY2U6XyxhcmlhUmVxdWlyZWQ6ZyxhcmlhRGVzY3JpYmVkYnk6dyxhcmlhSW52YWxpZDpDLGRhdGFRYUlkOkV9PWUsaz10Pz8icHJpbWFyeSI7cmV0dXJuIHMuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZTpvKCkoZCgpLndyYXBwZXIsbiYmZCgpLmRpc2FibGVkLHIpLHRpdGxlOmEsc3R5bGU6bCwKImRhdGEtcWEtaWQiOkV9LHMuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZTpvKCkoZCgpLnZpZXcsZCgpW2tdKX0scy5jcmVhdGVFbGVtZW50KGMuQ2hlY2tib3hWaWV3SW1wbCx7Y2hlY2tlZDp1LGRpc2FibGVkOm4sZGF0YVFhSWQ6YCR7aH0tdmlld2B9KSkscy5jcmVhdGVFbGVtZW50KCJpbnB1dCIse2lkOm0sdGFiSW5kZXg6cCxjbGFzc05hbWU6bygpKGQoKVtrXSxkKCkuaW5wdXQpLHR5cGU6ImNoZWNrYm94IixuYW1lOmIsY2hlY2tlZDohMSE9PXUsZGlzYWJsZWQ6bix2YWx1ZTp2LHJvbGU6ZixvbkNoYW5nZTp4LHJlZjpfLCJhcmlhLWNoZWNrZWQiOigoKT0+e3N3aXRjaCh1KXtjYXNlITA6cmV0dXJuInRydWUiO2Nhc2UhMTpyZXR1cm4iZmFsc2UiO2Nhc2UibWl4ZWQiOnJldHVybiJtaXhlZCJ9fSkoKSwiYXJpYS1yZXF1aXJlZCI6ZywiYXJpYS1kZXNjcmliZWRieSI6dywiYXJpYS1pbnZhbGlkIjpDLCJkYXRhLXFhLWlkIjpgJHtofS1pbnB1dGAsLi4uKDAsaS5maWx0ZXJEYXRhUHJvcHMpKGUpfSkscy5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6ZCgpLmZvY3VzT3V0bGluZX0pKX1jb25zdCBwPSgwLGEubWFrZVN3aXRjaEdyb3VwSXRlbSkobSl9LDUzNjEyNShlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtDaGVja2JveFZpZXdJbXBsOigpPT5ofSk7dmFyIHM9big3Nzk0NzQpLHI9big5MTQ0ODcpLG89bi5uKHIpLGk9bigyMTcyNzQpLGE9bigxNDc5MDEpLGw9bigxMjU4OTcpLGM9bi5uKGwpLHU9big4MzI1MTgpLGQ9bi5uKHUpO2Z1bmN0aW9uIGgoZSl7Y29uc3R7Y2hlY2tlZDp0LGRpc2FibGVkOm4sZGF0YVFhSWQ6cn09ZTtyZXR1cm4gcy5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6bygpKGQoKS5ib3gsITA9PT10JiZkKCkuY2hlY2tlZCwhMT09PXQmJmQoKS51bmNoZWNrZWQsIm1peGVkIj09PXQmJmQoKS5taXhlZCxuJiZkKCkuZGlzYWJsZWQpLCJkYXRhLXFhLWlkIjooMCxhLmNvbmNhdElmTm90TnVsbCkoYCR7YS5VSV9MSUJfREFUQV9RQV9JRF9QUkVGSVh9Y2hlY2tib3gtdmlldy0ke3Q/ImNoZWNrZWQiOiJ1bmNoZWNrZWQifWAscil9LCEwPT09dCYmcy5jcmVhdGVFbGVtZW50KGkuQmxvY2tJY29uLHtpY29uOmMoKSxjbGFzc05hbWU6ZCgpLmNoZWNrZWRNYXJrfSksIm1peGVkIj09PXQmJnMuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOmQoKS5taXhlZE1hcmt9KSl9fSw3ODc4OTUoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7dXNlRnVuY3Rpb25hbFJlZk9iamVjdDooKT0+b30pO3ZhciBzPW4oNzc5NDc0KSxyPW4oNjE2MzExKTtmdW5jdGlvbiBvKGUpe2NvbnN0IHQ9KDAscy51c2VNZW1vKSgoKCk9PmZ1bmN0aW9uKGUpe2NvbnN0IHQ9bj0+e2UobiksdC5jdXJyZW50PW59O3JldHVybiB0LmN1cnJlbnQ9bnVsbCx0fSgoZT0+e2EuY3VycmVudChlKX0pKSksW10pLG49KDAscy51c2VSZWYpKG51bGwpLG89dD0+e2lmKG51bGw9PT10KXJldHVybiBpKG4uY3VycmVudCx0KSx2b2lkKG4uY3VycmVudD1udWxsKTtuLmN1cnJlbnQhPT1lJiYobi5jdXJyZW50PWUsaShuLmN1cnJlbnQsdCkpfSxhPSgwLHMudXNlUmVmKShvKTtyZXR1cm4gYS5jdXJyZW50PW8sKDAsci51c2VJc29tb3JwaGljTGF5b3V0RWZmZWN0KSgoKCk9PntpZihudWxsIT09dC5jdXJyZW50KXJldHVybiBhLmN1cnJlbnQodC5jdXJyZW50KSwoKT0+YS5jdXJyZW50KG51bGwpfSksW2VdKSx0fWZ1bmN0aW9uIGkoZSx0KXtudWxsIT09ZSYmKCJmdW5jdGlvbiI9PXR5cGVvZiBlP2UodCk6ZS5jdXJyZW50PXQpfX0sOTAwODQxKGUsdCxuKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gcyhlLHQsbixzLHIpe2Z1bmN0aW9uIG8ocil7aWYoZT5yLnRpbWVTdGFtcClyZXR1cm47Y29uc3Qgbz1yLnRhcmdldDt2b2lkIDAhPT1uJiZudWxsIT09dCYmbnVsbCE9PW8mJm8ub3duZXJEb2N1bWVudD09PXMmJih0LmNvbnRhaW5zKG8pfHxuKHIpKX1yZXR1cm4gci5jbGljayYmcy5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsbywhMSksci5tb3VzZURvd24mJnMuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vkb3duIixvLCExKSxyLnRvdWNoRW5kJiZzLmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoZW5kIixvLCExKSxyLnRvdWNoU3RhcnQmJnMuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hzdGFydCIsbywhMSksKCk9PntzLnJlbW92ZUV2ZW50TGlzdGVuZXIoImNsaWNrIixvLCExKSxzLnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsbywhMSkscy5yZW1vdmVFdmVudExpc3RlbmVyKCJ0b3VjaGVuZCIsbywhMSkscy5yZW1vdmVFdmVudExpc3RlbmVyKCJ0b3VjaHN0YXJ0IixvLCExKX19bi5kKHQse2FkZE91dHNpZGVFdmVudExpc3RlbmVyOigpPT5zfSl9LDIzNjc2NShlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHt1c2VPdXRzaWRlRXZlbnQ6KCk9Pml9KTt2YXIgcz1uKDc3OTQ3NCkscj1uKDYxNjMxMSksbz1uKDkwMDg0MSk7ZnVuY3Rpb24gaShlKXtjb25zdHtjbGljazp0LG1vdXNlRG93bjpuLHRvdWNoRW5kOmksdG91Y2hTdGFydDphLGhhbmRsZXI6bCxyZWZlcmVuY2U6Y309ZSx1PSgwLHMudXNlUmVmKShudWxsKSxkPSgwLHMudXNlUmVmKSgidW5kZWZpbmVkIj09dHlwZW9mIHdpbmRvdz8wOm5ldyB3aW5kb3cuQ3VzdG9tRXZlbnQoInRpbWVzdGFtcCIpLnRpbWVTdGFtcCk7cmV0dXJuKDAsci51c2VJc29tb3JwaGljTGF5b3V0RWZmZWN0KSgoKCk9Pntjb25zdCBlPXtjbGljazp0LG1vdXNlRG93bjpuLHRvdWNoRW5kOmksdG91Y2hTdGFydDphfSxzPWM/Yy5jdXJyZW50OnUuY3VycmVudDtyZXR1cm4oMCxvLmFkZE91dHNpZGVFdmVudExpc3RlbmVyKShkLmN1cnJlbnQscyxsLGRvY3VtZW50LGUpfSksW3QsbixpLGEsbF0pLGN8fHV9fSw5NDg0NTAoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7Q29tbW9uSWNvbjooKT0+cn0pO3ZhciBzPW4oNzc5NDc0KTtjb25zdCByPXMuZm9yd2FyZFJlZigoKGUsdCk9Pntjb25zdHtjbGFzc05hbWU6bixhcmlhTGFiZWw6cixhcmlhTGFiZWxsZWRieTpvLHRpdGxlOmksaWNvbjphPSIiLC4uLmx9PWUsYz1sLHU9ISghciYmIW8pCjtyZXR1cm4gcy5jcmVhdGVFbGVtZW50KCJzcGFuIix7ImFyaWEtbGFiZWwiOnIsImFyaWEtbGFiZWxsZWRieSI6bywiYXJpYS1oaWRkZW4iOiF1LHJlZjp0LHJvbGU6ImltZyIsZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUw6e19faHRtbDphfSxjbGFzc05hbWU6bix0aXRsZTppLC4uLmN9KX0pKX0sMjczMzEwKGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse0ljb246KCk9PnJ9KTt2YXIgcz1uKDc3OTQ3NCk7Y29uc3Qgcj1zLmZvcndhcmRSZWYoKChlLHQpPT57Y29uc3R7aWNvbjpuPSIiLHRpdGxlOnIsYXJpYUxhYmVsOm8sYXJpYUxhYmVsbGVkYnk6aSxhcmlhSGlkZGVuOmEsLi4ubH09ZSxjPSEhKHJ8fG98fGkpO3JldHVybiBzLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtyb2xlOiJpbWciLC4uLmwscmVmOnQsImFyaWEtbGFiZWwiOm8sImFyaWEtbGFiZWxsZWRieSI6aSwiYXJpYS1oaWRkZW4iOmF8fCFjLHRpdGxlOnIsZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUw6e19faHRtbDpufX0pfSkpfSw4OTEyMDkoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7U3VibWVudUNvbnRleHQ6KCk9PnIsU3VibWVudUhhbmRsZXI6KCk9Pm99KTt2YXIgcz1uKDc3OTQ3NCk7Y29uc3Qgcj1zLmNyZWF0ZUNvbnRleHQobnVsbCk7ZnVuY3Rpb24gbyhlKXtjb25zdFt0LG5dPSgwLHMudXNlU3RhdGUpKG51bGwpLG89KDAscy51c2VSZWYpKG51bGwpLGk9KDAscy51c2VSZWYpKG5ldyBNYXApO3JldHVybigwLHMudXNlRWZmZWN0KSgoKCk9PigpPT57bnVsbCE9PW8uY3VycmVudCYmY2xlYXJUaW1lb3V0KG8uY3VycmVudCl9KSxbXSkscy5jcmVhdGVFbGVtZW50KHIuUHJvdmlkZXIse3ZhbHVlOntjdXJyZW50OnQsc2V0Q3VycmVudDpmdW5jdGlvbihlKXtudWxsIT09by5jdXJyZW50JiYoY2xlYXJUaW1lb3V0KG8uY3VycmVudCksby5jdXJyZW50PW51bGwpO251bGw9PT10P24oZSk6by5jdXJyZW50PXNldFRpbWVvdXQoKCgpPT57by5jdXJyZW50PW51bGwsbihlKX0pLDEwMCl9LHJlZ2lzdGVyU3VibWVudTpmdW5jdGlvbihlLHQpe3JldHVybiBpLmN1cnJlbnQuc2V0KGUsdCksKCk9PntpLmN1cnJlbnQuZGVsZXRlKGUpfX0saXNTdWJtZW51Tm9kZTpmdW5jdGlvbihlKXtyZXR1cm4gQXJyYXkuZnJvbShpLmN1cnJlbnQudmFsdWVzKCkpLnNvbWUoKHQ9PnQoZSkpKX19fSxlLmNoaWxkcmVuKX19LDg2OTg0MihlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtTd2l0Y2hHcm91cENvbnRleHQ6KCk9Pm99KTt2YXIgcz1uKDc3OTQ3NCkscj1uKDg2MjM4OCk7Y29uc3Qgbz0oMCxzLmNyZWF0ZUNvbnRleHQpKHtnZXROYW1lOigpPT4iIixnZXRWYWx1ZXM6KCk9PltdLGdldE9uQ2hhbmdlOigpPT5yLmRlZmF1bHQsc3Vic2NyaWJlOnIuZGVmYXVsdCx1bnN1YnNjcmliZTpyLmRlZmF1bHR9KX0sNjU4NDYoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7bWFrZVN3aXRjaEdyb3VwSXRlbTooKT0+b30pO3ZhciBzPW4oNzc5NDc0KSxyPW4oODY5ODQyKTtmdW5jdGlvbiBvKGUpe3ZhciB0O3JldHVybiB0PWNsYXNzIGV4dGVuZHMgcy5QdXJlQ29tcG9uZW50e2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLl9vbkNoYW5nZT1lPT57dGhpcy5jb250ZXh0LmdldE9uQ2hhbmdlKCkoZS50YXJnZXQudmFsdWUpfSx0aGlzLl9vblVwZGF0ZT1lPT57ZS5pbmNsdWRlcyh0aGlzLnByb3BzLnZhbHVlKSYmdGhpcy5mb3JjZVVwZGF0ZSgpfX1jb21wb25lbnREaWRNb3VudCgpe3RoaXMuY29udGV4dC5zdWJzY3JpYmUodGhpcy5fb25VcGRhdGUpfXJlbmRlcigpe3JldHVybiBzLmNyZWF0ZUVsZW1lbnQoZSx7Li4udGhpcy5wcm9wcyxuYW1lOnRoaXMuX2dldE5hbWUoKSxvbkNoYW5nZTp0aGlzLl9vbkNoYW5nZSxjaGVja2VkOnRoaXMuX2lzQ2hlY2tlZCgpfSl9Y29tcG9uZW50V2lsbFVubW91bnQoKXt0aGlzLmNvbnRleHQudW5zdWJzY3JpYmUodGhpcy5fb25VcGRhdGUpfV9nZXROYW1lKCl7cmV0dXJuIHRoaXMuY29udGV4dC5nZXROYW1lKCl9X2lzQ2hlY2tlZCgpe3JldHVybiB0aGlzLmNvbnRleHQuZ2V0VmFsdWVzKCkuaW5jbHVkZXModGhpcy5wcm9wcy52YWx1ZSl9fSx0LmNvbnRleHRUeXBlPXIuU3dpdGNoR3JvdXBDb250ZXh0LHR9fSwzNDUxMTYoZSx0LG4peyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBzKGUpe3JldHVybiBvKGUsaSl9ZnVuY3Rpb24gcihlKXtyZXR1cm4gbyhlLGEpfWZ1bmN0aW9uIG8oZSx0KXtjb25zdCBuPU9iamVjdC5lbnRyaWVzKGUpLmZpbHRlcih0KSxzPXt9O2Zvcihjb25zdFtlLHRdb2YgbilzW2VdPXQ7cmV0dXJuIHN9ZnVuY3Rpb24gaShlKXtjb25zdFt0LG5dPWU7cmV0dXJuIDA9PT10LmluZGV4T2YoImRhdGEtIikmJiJzdHJpbmciPT10eXBlb2Ygbn1mdW5jdGlvbiBhKGUpe3JldHVybiAwPT09ZVswXS5pbmRleE9mKCJhcmlhLSIpfWZ1bmN0aW9uIGwoZSx0KXtjb25zdCBuPXMoZSk7cmV0dXJuIHQmJihuWyJkYXRhLXFhLWlkIl09dCksbn1uLmQodCx7ZmlsdGVyQXJpYVByb3BzOigpPT5yLGZpbHRlckNoZWNrZWREYXRhUHJvcHM6KCk9PmwsZmlsdGVyRGF0YVByb3BzOigpPT5zLGZpbHRlclByb3BzOigpPT5vLGlzQXJpYUF0dHJpYnV0ZTooKT0+YSxpc0RhdGFBdHRyaWJ1dGU6KCk9Pml9KX0sMTQ3OTAxKGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse1VJX0xJQl9EQVRBX1FBX0lEX1BSRUZJWDooKT0+aSxjb25jYXRJZk5vdE51bGw6KCk9Pm8sZGF0YVFhSWRzOigpPT5yfSk7dmFyIHM9big1NjU3NDUpO2Z1bmN0aW9uIHIoZSx0KXtyZXR1cm5bZSx0XS5maWx0ZXIocy5pc0V4aXN0ZW50KS5qb2luKCIgIil9ZnVuY3Rpb24gbyhlLHQpe2lmKCgwLHMuaXNFeGlzdGVudCkodCkpcmV0dXJuW2UsdF0uam9pbigiICIpfWNvbnN0IGk9InVpLWxpYi0ifSw3MTg1NTMoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7T3V0c2lkZUV2ZW50OigpPT5yfSk7dmFyIHM9bigyMzY3NjUpO2Z1bmN0aW9uIHIoZSl7Y29uc3R7Y2hpbGRyZW46dCwuLi5ufT1lO3JldHVybiB0KCgwLHMudXNlT3V0c2lkZUV2ZW50KShuKSl9fSw0NDA3MTUoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7CkNvbnRleHRNZW51Q29udGV4dDooKT0+c30pO2NvbnN0IHM9big3Nzk0NzQpLmNyZWF0ZUNvbnRleHQobnVsbCl9LDQ5MzAxMyhlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtDb250ZXh0TWVudTooKT0+eCxPdmVybGFwQ29udGV4dE1lbnU6KCk9Pl99KTt2YXIgcz1uKDc3OTQ3NCkscj1uKDkxNDQ4Nyksbz1uLm4ociksaT1uKDY1OTg3OCksYT1uKDE0NTE1MCksbD1uKDcxODU1MyksYz1uKDk1MTA0NCksdT1uKDg1NTI3MiksZD1uKDMxMzc3MiksaD1uKDQwNjExMCksbT1uKDMyMzgzMCkscD1uKDk2NDIxNCksYj1uKDQ0MDcxNSksdj1uKDg2MTE4OCksZj1uKDEzNzk4OCk7Y2xhc3MgeCBleHRlbmRzIHMuUHVyZUNvbXBvbmVudHtjb25zdHJ1Y3RvcihlKXtzdXBlcihlKSx0aGlzLl9tZW51UmVmPXMuY3JlYXRlUmVmKCksdGhpcy5faGFuZGxlUmVxdWVzdFVwZGF0ZT0oKT0+e3RoaXMudXBkYXRlKCl9LHRoaXMuX2hhbmRsZUNsb3NlPSgpPT57dGhpcy5wcm9wcy5vbkNsb3NlJiZ0aGlzLnByb3BzLm9uQ2xvc2UoKX0sdGhpcy5faGFuZGxlT3V0c2lkZUNsaWNrQ2xvc2U9ZT0+e2NvbnN0e2RvTm90Q2xvc2VPbjp0LG9uQ2xvc2U6bn09dGhpcy5wcm9wczshbnx8dm9pZCAwIT09dCYmdC5jb250YWlucyhlLnRhcmdldCl8fG4oKX0sdGhpcy5faGFuZGxlRm9jdXNPbk9wZW49KCk9Pnt0aGlzLnByb3BzLm1lbnVFbGVtZW50UmVmZXJlbmNlPy5jdXJyZW50JiZ0aGlzLnByb3BzLnRha2VGb2N1cyYmdGhpcy5wcm9wcy5tZW51RWxlbWVudFJlZmVyZW5jZT8uY3VycmVudC5mb2N1cyh7cHJldmVudFNjcm9sbDohMH0pfSx0aGlzLl9oYW5kbGVGb2N1cz1lPT57dGhpcy5wcm9wcy5pc0tleWJvYXJkRXZlbnQmJmUudGFyZ2V0JiYoMCx2LmZvY3VzRmlyc3RNZW51SXRlbSkoZS50YXJnZXQpfSx0aGlzLnN0YXRlPXt9fXJlbmRlcigpe2NvbnN0e2lzT3BlbmVkOmUsb25DbG9zZTp0LGl0ZW1zOm4sZG9Ob3RDbG9zZU9uOnIsbWVudVN0YXROYW1lOmkscGFyZW50U3RhdE5hbWU6eCx0YWtlRm9jdXM6XywuLi5nfT10aGlzLnByb3BzO3JldHVybiBlJiZuLmxlbmd0aD4wP3MuY3JlYXRlRWxlbWVudChkLkRyYXdlck1hbmFnZXIsbnVsbCxzLmNyZWF0ZUVsZW1lbnQoYy5LZXlib2FyZERvY3VtZW50TGlzdGVuZXIse2tleUNvZGU6MjcsZXZlbnRUeXBlOiJrZXl1cCIsaGFuZGxlcjp0aGlzLl9oYW5kbGVDbG9zZX0pLHMuY3JlYXRlRWxlbWVudChoLk1hdGNoTWVkaWEse3J1bGU6IihtYXgtd2lkdGg6IDQ0MHB4KSJ9LCh0PT50aGlzLl9pc0RyYXdlcih0KT9zLmNyZWF0ZUVsZW1lbnQoYi5Db250ZXh0TWVudUNvbnRleHQuUHJvdmlkZXIse3ZhbHVlOnt0eXBlOiJkcmF3ZXIifX0scy5jcmVhdGVFbGVtZW50KHAuRHJhd2VyLHtvbkNsb3NlOnRoaXMuX2hhbmRsZUNsb3NlLHBvc2l0aW9uOiJCb3R0b20iLCJkYXRhLW5hbWUiOmdbImRhdGEtbmFtZSJdfSxzLmNyZWF0ZUVsZW1lbnQobS5Db250ZXh0TWVudUxpc3Qse2l0ZW1zOm59KSkpOnMuY3JlYXRlRWxlbWVudChiLkNvbnRleHRNZW51Q29udGV4dC5Qcm92aWRlcix7dmFsdWU6e3R5cGU6Im1lbnUifX0scy5jcmVhdGVFbGVtZW50KGwuT3V0c2lkZUV2ZW50LHtoYW5kbGVyOnRoaXMuX2hhbmRsZU91dHNpZGVDbGlja0Nsb3NlLG1vdXNlRG93bjohMCx0b3VjaFN0YXJ0OiEwLHJlZmVyZW5jZTp0aGlzLnByb3BzLm1lbnVFbGVtZW50UmVmZXJlbmNlfSwodD0+cy5jcmVhdGVFbGVtZW50KGEuTWVudSx7Li4uZyxyZWZlcmVuY2U6dCxjbGFzc05hbWU6bygpKGYubWVudSwiY29udGV4dC1tZW51Iiksb25DbG9zZTp0aGlzLl9oYW5kbGVDbG9zZSxub01vbWVudHVtQmFzZWRTY3JvbGw6ITAscmVmOnRoaXMuX21lbnVSZWYsdGFiSW5kZXg6Xz8tMTp2b2lkIDAsb25PcGVuOnRoaXMuX2hhbmRsZUZvY3VzT25PcGVuLG9uRm9jdXM6dGhpcy5faGFuZGxlRm9jdXMsb25LZXlEb3duOnYuaGFuZGxlQWNjZXNzaWJsZU1lbnVLZXlEb3dufSxzLmNyZWF0ZUVsZW1lbnQodS5BY3Rpb25zVGFibGUse2l0ZW1zOm4sbWVudVN0YXROYW1lOmkscGFyZW50U3RhdE5hbWU6eCxwYXJlbnRJc09wZW5lZDplLG9uUmVxdWVzdFVwZGF0ZTp0aGlzLl9oYW5kbGVSZXF1ZXN0VXBkYXRlfSkpKSkpKSkpOm51bGx9dXBkYXRlKCl7dGhpcy5fbWVudVJlZi5jdXJyZW50JiZ0aGlzLl9tZW51UmVmLmN1cnJlbnQudXBkYXRlKCksdGhpcy5wcm9wcy5pc0tleWJvYXJkRXZlbnQmJnRoaXMucHJvcHMubWVudUVsZW1lbnRSZWZlcmVuY2U/LmN1cnJlbnQmJmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ9PT10aGlzLnByb3BzLm1lbnVFbGVtZW50UmVmZXJlbmNlLmN1cnJlbnQmJigwLHYuZm9jdXNGaXJzdE1lbnVJdGVtKSh0aGlzLnByb3BzLm1lbnVFbGVtZW50UmVmZXJlbmNlLmN1cnJlbnQpfV9pc0RyYXdlcihlKXtyZXR1cm4gdm9pZCAwPT09dGhpcy5wcm9wcy5tb2RlP2U6ImRyYXdlciI9PT10aGlzLnByb3BzLm1vZGV9fWNvbnN0IF89KDAsaS5tYWtlT3ZlcmxhcGFibGUpKHgpfSw1MjUxKGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse0hpbnQ6KCk9PmF9KTt2YXIgcz1uKDc3OTQ3NCkscj1uKDkxNDQ4Nyksbz1uLm4ociksaT1uKDkxNjI2KTtmdW5jdGlvbiBhKGUpe2NvbnN0e3RleHQ6dD0iIixjbGFzc05hbWU6bn09ZTtyZXR1cm4gcy5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOm8oKShpLnNob3J0Y3V0LG4pfSx0KX19LDcyMTE2NyhlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtDb250ZXh0TWVudUl0ZW06KCk9PnB9KTt2YXIgcz1uKDc3OTQ3NCkscj1uKDkxNDQ4Nyksbz1uLm4ociksaT1uKDI3MzMxMCksYT1uKDY0OTE2NiksbD1uKDc3OTEwOCksYz1uKDUyNTEpLHU9bigzODA1NiksZD1uKDU4MDU5NiksaD1uKDQ2MjcwNCksbT1uKDEwNzk2Nik7ZnVuY3Rpb24gcChlKXsKY29uc3R7Y2xhc3NOYW1lOnQsaXNUaXRsZTpuLGlzTG9hZGluZzpyLGlzSG92ZXJlZDpwLGFjdGl2ZTpiLGNoZWNrYWJsZTp2LGRpc2FibGVkOmYsY2hlY2tlZDp4LGljb246XyxpY29uQ2hlY2tlZDpnLGhpbnQ6dyxzdWJJdGVtczpDLGxhYmVsOkUsc3R5bGVkTGFiZWw6ayxvbkNsaWNrOnksY2hpbGRyZW46TSx0b29sYm94Ok4sanN4TGFiZWw6UyxzaXplOkk9Im5vcm1hbCJ9PWUsTz0oMCxzLnVzZUNvbnRleHQpKGwuRW1wdHlJY29uc0NvbnRleHQpLEw9ISFDLmxlbmd0aDtyZXR1cm4gcj9zLmNyZWF0ZUVsZW1lbnQoImxpIix7Y2xhc3NOYW1lOm8oKSh0LG0uaXRlbSxtLmxvYWRpbmcsbVtJXSl9LHMuY3JlYXRlRWxlbWVudChhLkxvYWRlcixudWxsKSk6cy5jcmVhdGVFbGVtZW50KCJsaSIse2NsYXNzTmFtZTpvKCkodCxtLml0ZW0sbS5pbnRlcmFjdGl2ZSxuJiZtLnRpdGxlLGYmJm0uZGlzYWJsZWQscCYmbS5ob3ZlcmVkLGImJm0uYWN0aXZlLE8mJm0uZW1wdHlJY29ucyxtW0ldKSxvbkNsaWNrOnl9LHMuY3JlYXRlRWxlbWVudChpLkljb24se2NsYXNzTmFtZTpvKCkobS5pY29uKSxpY29uOmZ1bmN0aW9uKCl7aWYodiYmeClyZXR1cm4gZ3x8X3x8dTtyZXR1cm4gX30oKX0pLHMuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZTpvKCkobS5sYWJlbCl9LCFTJiZrP2subWFwKCgoe3RleHQ6ZSwuLi50fSxuKT0+cy5jcmVhdGVFbGVtZW50KCJzcGFuIix7a2V5Om4sc3R5bGU6dH0sZSkpKTpTPz9FKSwhIU4mJnMuY3JlYXRlRWxlbWVudChpLkljb24se29uQ2xpY2s6ZnVuY3Rpb24oKXtOJiZOLmFjdGlvbigpfSxjbGFzc05hbWU6bS5yZW1vdmUsaWNvbjpofSksIUwmJncmJnMuY3JlYXRlRWxlbWVudChjLkhpbnQse2NsYXNzTmFtZTptLnNob3J0Y3V0LHRleHQ6d30pLEwmJnMuY3JlYXRlRWxlbWVudChpLkljb24se2NsYXNzTmFtZTptLm5lc3RlZCxpY29uOmR9KSxNKX19LDMyMzgzMChlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtDb250ZXh0TWVudUxpc3Q6KCk9PnB9KTt2YXIgcz1uKDc3OTQ3NCkscj1uKDk1NDQ3OCk7ZnVuY3Rpb24gbyhlKXtyZXR1cm4gcy5jcmVhdGVFbGVtZW50KCJsaSIse2NsYXNzTmFtZTpyLnNlcGFyYXRvcn0pfXZhciBpPW4oNzIxMTY3KSxhPW4oNTY5Mzk4KSxsPW4oOTY0MjE0KSxjPW4oMjc2MDE5KTtjb25zdCB1PSgwLGEuaXNGZWF0dXJlRW5hYmxlZCkoImZvcmNlX2Rpc2FibGVfanN4X21lbnVfaXRlbXNfcmVuZGVyaW5nIik7ZnVuY3Rpb24gZChlKXtjb25zdCB0PXU/ZS5hY3Rpb246ZS5hY3Rpb24uY3VzdG9tKCk/P2UuYWN0aW9uLFtuLHJdPSgwLHMudXNlU3RhdGUpKCgoKT0+dC5nZXRTdGF0ZSgpKSksW28sYV09KDAscy51c2VTdGF0ZSkoITEpLGQ9ISFuLnN1Ykl0ZW1zLmxlbmd0aCxoPWQmJm87cmV0dXJuKDAscy51c2VFZmZlY3QpKCgoKT0+e2NvbnN0IGU9KCk9PnIodC5nZXRTdGF0ZSgpKTtyZXR1cm4gdC5vblVwZGF0ZSgpLnN1YnNjcmliZShudWxsLGUpLCgpPT57dC5vblVwZGF0ZSgpLnVuc3Vic2NyaWJlKG51bGwsZSl9fSksW10pLHMuY3JlYXRlRWxlbWVudChpLkNvbnRleHRNZW51SXRlbSx7Li4ubixvbkNsaWNrOmZ1bmN0aW9uKGUpe2lmKG4uZGlzYWJsZWR8fGUuZGVmYXVsdFByZXZlbnRlZClyZXR1cm47aWYoZClyZXR1cm4gdm9pZCBhKCEwKTtuLmRvTm90Q2xvc2VPbkNsaWNrfHwoMCxjLmdsb2JhbENsb3NlTWVudSkoKTt0LmV4ZWN1dGUoKX0saXNMb2FkaW5nOm4ubG9hZGluZyxpc0hvdmVyZWQ6aH0saCYmcy5jcmVhdGVFbGVtZW50KGwuRHJhd2VyLHtvbkNsb3NlOm19LHMuY3JlYXRlRWxlbWVudChwLHtpdGVtczpuLnN1Ykl0ZW1zLHBhcmVudEFjdGlvbjp0LGNsb3NlTmVzdGVkOm19KSkpO2Z1bmN0aW9uIG0oZSl7ZSYmZS5wcmV2ZW50RGVmYXVsdCgpLGEoITEpfX12YXIgaD1uKDc3OTEwOCksbT1uKDMzNDU1MCk7ZnVuY3Rpb24gcChlKXtjb25zdHtpdGVtczp0LHBhcmVudEFjdGlvbjpuLGNsb3NlTmVzdGVkOnJ9PWUsYT0hQm9vbGVhbihuKSYmdC5ldmVyeSgoZT0+IUJvb2xlYW4oInNlcGFyYXRvciIhPT1lLnR5cGUmJihlLmdldFN0YXRlKCkuaWNvbnx8ZS5nZXRTdGF0ZSgpLmNoZWNrYWJsZSkpKSk7cmV0dXJuIHMuY3JlYXRlRWxlbWVudChoLkVtcHR5SWNvbnNDb250ZXh0LlByb3ZpZGVyLHt2YWx1ZTphfSxzLmNyZWF0ZUVsZW1lbnQoInVsIixudWxsLG4mJnMuY3JlYXRlRWxlbWVudChzLkZyYWdtZW50LG51bGwscy5jcmVhdGVFbGVtZW50KGkuQ29udGV4dE1lbnVJdGVtLHtsYWJlbDpuLmdldFN0YXRlKCkubGFiZWwsaXNUaXRsZTohMCxhY3RpdmU6ITEsZGlzYWJsZWQ6ITEsc3ViSXRlbXM6W10sY2hlY2thYmxlOiExLGNoZWNrZWQ6ITEsZG9Ob3RDbG9zZU9uQ2xpY2s6ITEsaWNvbjptLG9uQ2xpY2s6cn0pLHMuY3JlYXRlRWxlbWVudChvLG51bGwpKSx0Lm1hcCgoZT0+e3N3aXRjaChlLnR5cGUpe2Nhc2UiYWN0aW9uIjpyZXR1cm4gcy5jcmVhdGVFbGVtZW50KGQse2tleTplLmlkLGFjdGlvbjplfSk7Y2FzZSJzZXBhcmF0b3IiOnJldHVybiBzLmNyZWF0ZUVsZW1lbnQobyx7a2V5OmUuaWR9KX19KSkpKX19LDc3OTEwOChlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtFbXB0eUljb25zQ29udGV4dDooKT0+c30pO2NvbnN0IHM9big3Nzk0NzQpLmNyZWF0ZUNvbnRleHQoITEpfSwzMjk2NjgoZSx0LG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcztmdW5jdGlvbiByKGUpe2UuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInJvdmluZy10YWJpbmRleDptYWluLWVsZW1lbnQiKSl9ZnVuY3Rpb24gbyhlKXtlLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJyb3ZpbmctdGFiaW5kZXg6c2Vjb25kYXJ5LWVsZW1lbnQiKSl9bi5kKHQse2JlY29tZU1haW5FbGVtZW50OigpPT5yLGJlY29tZVNlY29uZGFyeUVsZW1lbnQ6KCk9Pm99KSxmdW5jdGlvbihlKXtlLk1haW5FbGVtZW50PSJyb3ZpbmctdGFiaW5kZXg6bWFpbi1lbGVtZW50IixlLlNlY29uZGFyeUVsZW1lbnQ9InJvdmluZy10YWJpbmRleDpzZWNvbmRhcnktZWxlbWVudCJ9KHN8fChzPXt9KSl9LDk4MzYxNihlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHsKbWFwS2V5Q29kZVRvRGlyZWN0aW9uOigpPT51LG5hdmlnYXRpb25PcmRlckNvbXBhcmF0b3I6KCk9PmkscXVlcnlGb2N1c2FibGVFbGVtZW50czooKT0+bCxxdWVyeVRhYmJhYmxlRWxlbWVudHM6KCk9PmEsdXBkYXRlVGFiSW5kZXhlczooKT0+Y30pO3ZhciBzLHI9big5NjkxNjgpLG89big2ODIzODEpO2Z1bmN0aW9uIGkoZSx0KXtyZXR1cm4gZT09PXQ/MDplLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKHQpJk5vZGUuRE9DVU1FTlRfUE9TSVRJT05fRk9MTE9XSU5HPy0xOjF9ZnVuY3Rpb24gYShlKXtyZXR1cm4gQXJyYXkuZnJvbShlLnF1ZXJ5U2VsZWN0b3JBbGwoJ2J1dHRvbjpub3QoOmRpc2FibGVkKTpub3QoW2FyaWEtZGlzYWJsZWQ9InRydWUiIGldKTpub3QoW3RhYmluZGV4PSItMSJdKSwgW3RhYmluZGV4XTpub3QoW2Rpc2FibGVkXSk6bm90KFthcmlhLWRpc2FibGVkPSJ0cnVlIiBpXSk6bm90KFt0YWJpbmRleD0iLTEiXSknKSkuZmlsdGVyKCgwLG8uY3JlYXRlU2NvcGVkVmlzaWJsZUVsZW1lbnRGaWx0ZXIpKGUpKX1mdW5jdGlvbiBsKGUpe3JldHVybiBBcnJheS5mcm9tKGUucXVlcnlTZWxlY3RvckFsbCgnYnV0dG9uOm5vdCg6ZGlzYWJsZWQpOm5vdChbYXJpYS1kaXNhYmxlZD0idHJ1ZSIgaV0pOm5vdChbYXJpYS1kaXNhYmxlZD0iIl0pLCBbdGFiaW5kZXhdOm5vdChbZGlzYWJsZWRdKTpub3QoW2FyaWEtZGlzYWJsZWQ9InRydWUiIGldKTpub3QoW2FyaWEtZGlzYWJsZWQ9IiJdKScpKS5maWx0ZXIoKDAsby5jcmVhdGVTY29wZWRWaXNpYmxlRWxlbWVudEZpbHRlcikoZSkpfWZ1bmN0aW9uIGMoKXt3aW5kb3cuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImtleWJvYXJkLW5hdmlnYXRpb24tYWN0aXZhdGlvbiIse2J1YmJsZXM6ITB9KSl9ZnVuY3Rpb24gdShlKXtjb25zdCB0PSgwLHIuaXNSdGwpKCk7c3dpdGNoKGUpe2Nhc2UgMzg6cmV0dXJuImJsb2NrUHJldiI7Y2FzZSA0MDpyZXR1cm4iYmxvY2tOZXh0IjtjYXNlIDM3OnJldHVybiB0PyJpbmxpbmVOZXh0IjoiaW5saW5lUHJldiI7Y2FzZSAzOTpyZXR1cm4gdD8iaW5saW5lUHJldiI6ImlubGluZU5leHQiO2RlZmF1bHQ6cmV0dXJuIG51bGx9fSFmdW5jdGlvbihlKXtlLkJsb2NrUHJldj0iYmxvY2tQcmV2IixlLkJsb2NrTmV4dD0iYmxvY2tOZXh0IixlLklubGluZVByZXY9ImlubGluZVByZXYiLGUuSW5saW5lTmV4dD0iaW5saW5lTmV4dCJ9KHN8fChzPXt9KSl9LDg1NTI3MihlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtBY3Rpb25zVGFibGU6KCk9PnF9KTt2YXIgcz1uKDc3OTQ3NCkscj1uKDEzMjY0Nik7ZnVuY3Rpb24gbyhlKXtyZXR1cm4gcy5jcmVhdGVFbGVtZW50KCJ0ciIse2NsYXNzTmFtZTpyLnJvd30scy5jcmVhdGVFbGVtZW50KCJ0ZCIsbnVsbCxzLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpyLmxpbmV9KSkscy5jcmVhdGVFbGVtZW50KCJ0ZCIsbnVsbCxzLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpyLmxpbmV9KSxlLmhpbnQ/cy5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6ci5oaW50fSxlLmhpbnQpOm51bGwpKX12YXIgaT1uKDU2OTM5OCksYT1uKDEzODYzOCksbD1uKDM0NTExNiksYz1uKDg5MTIwOSksdT1uKDI3NjAxOSksZD1uKDkxNDQ4NyksaD1uLm4oZCksbT1uKDY0OTE2NikscD1uKDg2MDkwNyksYj0obig5MzAyMzEpLG4oMzE4OTc0KSksdj1uKDE2MTQpLGY9big1NDU0MjIpLHg9bigzNTcyNjIpLF89big1MjUxKSxnPW4oMzc5NzkzKSx3PW4oNDYyNzA0KSxDPW4oMzkyMzk4KSxFPW4oMTUxODk0KSxrPW4oOTE2MjYpO2NsYXNzIHkgZXh0ZW5kcyBzLlB1cmVDb21wb25lbnR7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMuX2hhbmRsZU1vdXNlT3Zlcj1lPT57KDAsdi5pc1RvdWNoRXZlbnQpKGUubmF0aXZlRXZlbnQpfHx0aGlzLnByb3BzLm9uTW91c2VPdmVyJiZ0aGlzLnByb3BzLm9uTW91c2VPdmVyKCl9LHRoaXMuX2hhbmRsZUNsaWNrVG9vbGJveD1lPT57ZS5zdG9wUHJvcGFnYXRpb24oKSx0aGlzLnByb3BzLm9uQ2xpY2tUb29sYm94JiZ0aGlzLnByb3BzLm9uQ2xpY2tUb29sYm94KCl9fXJlbmRlcigpe2NvbnN0e2hhc1N1Ykl0ZW1zOmUsc2hvcnRjdXRIaW50OnQsaGludDpuLGludmlzaWJsZUhvdGtleTpyLGZhdm91cml0ZTpvLHRoZW1lOmk9ayxzaXplOmE9Im5vcm1hbCIsb25LZXlEb3duOmMsbGFiZWw6dSxqc3hMYWJlbDpkLHN0eWxlZExhYmVsOm19PXRoaXMucHJvcHMscD10aGlzLnByb3BzLmNoZWNrYWJsZSYmdGhpcy5wcm9wcy5jaGVja2JveElucHV0PyJsYWJlbCI6ImRpdiI7cmV0dXJuIHMuY3JlYXRlRWxlbWVudChzLkZyYWdtZW50LG51bGwscy5jcmVhdGVFbGVtZW50KCJ0ciIsey4uLigwLGwuZmlsdGVyRGF0YVByb3BzKSh0aGlzLnByb3BzKSwuLi4oMCxsLmZpbHRlckFyaWFQcm9wcykodGhpcy5wcm9wcyksaWQ6dGhpcy5wcm9wcy5pZCxjbGFzc05hbWU6aCgpKHRoaXMucHJvcHMuY2xhc3NOYW1lLGkuaXRlbSwhdGhpcy5wcm9wcy5ub0ludGVyYWN0aXZlJiZpLmludGVyYWN0aXZlLHRoaXMucHJvcHMuaG92ZXJlZCYmaS5ob3ZlcmVkLHRoaXMucHJvcHMuZGlzYWJsZWQmJmkuZGlzYWJsZWQsdGhpcy5wcm9wcy5hY3RpdmUmJmkuYWN0aXZlLHRoaXMucHJvcHMuc2VsZWN0ZWQmJmkuc2VsZWN0ZWQsaVthXSksb25DbGljazp0aGlzLnByb3BzLm9uQ2xpY2ssb25Nb3VzZU92ZXI6dGhpcy5faGFuZGxlTW91c2VPdmVyLHJlZjp0aGlzLnByb3BzLnJlZmVyZW5jZSwiZGF0YS1hY3Rpb24tbmFtZSI6dGhpcy5wcm9wcy5hY3Rpb25OYW1lLHRhYkluZGV4OnRoaXMucHJvcHMudGFiSW5kZXgsb25LZXlEb3duOmN9LHZvaWQgMCE9PW8mJnMuY3JlYXRlRWxlbWVudCgidGQiLHtjbGFzc05hbWU6aS5mYXZvcml0ZUFjdGlvbkNlbGx9LHMuY3JlYXRlRWxlbWVudCh4LkZhdm9yaXRlQnV0dG9uLHtpZDpgJHt0aGlzLnByb3BzLmlkfS1mYXZvcml0ZWAsY2xhc3NOYW1lOmgoKShpLmZhdm91cml0ZSxvJiZpLmZpbGxlZCksaXNGaWxsZWQ6byxvbkNsaWNrOnRoaXMucHJvcHMub25GYXZvdXJpdGVDbGljaywKImRhdGEtcm9sZSI6Imxpc3QtaXRlbS1hY3Rpb24ifSkpLHMuY3JlYXRlRWxlbWVudCgidGQiLHtjbGFzc05hbWU6aCgpKGkuaWNvbkNlbGwpLCJkYXRhLWljb24tY2VsbCI6ITB9LHRoaXMuX2ljb24oaSkpLHMuY3JlYXRlRWxlbWVudCgidGQiLHtjbGFzc05hbWU6aS5jb250ZW50Q2VsbH0scy5jcmVhdGVFbGVtZW50KHAse2NsYXNzTmFtZTppLmNvbnRlbnR9LHMuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZTpoKCkoaS5sYWJlbCx0aGlzLnByb3BzLmNoZWNrZWQmJmkuY2hlY2tlZCksImRhdGEtbGFiZWwiOiEwfSwhZCYmbT9tLm1hcCgoKHt0ZXh0OmUsLi4udH0sbik9PnMuY3JlYXRlRWxlbWVudCgic3BhbiIse2tleTpuLHN0eWxlOnR9LGUpKSk6ZD8/dSksdGhpcy5fdG9vbGJveChpKSxlJiZzLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6aS5hcnJvd0ljb24sZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUw6e19faHRtbDpFfSwiZGF0YS1zdWJtZW51LWFycm93IjohMH0pLCFlJiZ0JiYhYi5DaGVja01vYmlsZS5hbnkoKSYmcy5jcmVhdGVFbGVtZW50KF8uSGludCx7Y2xhc3NOYW1lOmgoKShyJiZpLmludmlzaWJsZUhvdGtleSksdGV4dDp0fSksIWUmJiF0JiZuJiZzLmNyZWF0ZUVsZW1lbnQoXy5IaW50LHt0ZXh0Om59KSkpKSxzLmNyZWF0ZUVsZW1lbnQoInRyIix7Y2xhc3NOYW1lOmkuc3ViTWVudX0scy5jcmVhdGVFbGVtZW50KCJ0ZCIsbnVsbCx0aGlzLnByb3BzLmNoaWxkcmVuKSkpfV9pY29uKGUpe2lmKHRoaXMucHJvcHMuY2hlY2thYmxlKXtpZih0aGlzLnByb3BzLmNoZWNrYm94SW5wdXQpcmV0dXJuIHMuY3JlYXRlRWxlbWVudChwLkNoZWNrYm94SW5wdXQse2NsYXNzTmFtZTpoKCkoZS5jaGVja2JveElucHV0KSxjaGVja2VkOiEhdGhpcy5wcm9wcy5jaGVja2VkfSk7aWYodGhpcy5wcm9wcy5jaGVja2VkKXtjb25zdCB0PSF0aGlzLnByb3BzLmljb24mJiF0aGlzLnByb3BzLmljb25DaGVja2VkLG49dGhpcy5wcm9wcy5pY29uQ2hlY2tlZHx8dGhpcy5wcm9wcy5pY29ufHxDO3JldHVybiBzLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6ZS5pY29uLGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MOntfX2h0bWw6bn0sImRhdGEtaWNvbi1jaGVja21hcmsiOnR9KX1yZXR1cm4gdGhpcy5wcm9wcy5pY29uP3MuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZTplLmljb24sZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUw6e19faHRtbDp0aGlzLnByb3BzLmljb259fSk6cy5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOmUuaWNvbn0pfXJldHVybiB0aGlzLnByb3BzLmljb24/cy5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOmUuaWNvbixkYW5nZXJvdXNseVNldElubmVySFRNTDp7X19odG1sOnRoaXMucHJvcHMuaWNvbn19KTpudWxsfV90b29sYm94KGUpe3JldHVybiB0aGlzLnByb3BzLnRvb2xib3g/cy5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOmgoKShlLnRvb2xib3gsdGhpcy5wcm9wcy5zaG93VG9vbGJveE9uSG92ZXImJmUuc2hvd1Rvb2xib3hPbkhvdmVyKSxvbkNsaWNrOnRoaXMuX2hhbmRsZUNsaWNrVG9vbGJveCwiZGF0YS10b29sYm94IjohMH0sdGhpcy5fcmVuZGVyVG9vbGJveENvbnRlbnQoKSk6bnVsbH1fcmVuZGVyVG9vbGJveENvbnRlbnQoKXtyZXR1cm4gdGhpcy5wcm9wcy50b29sYm94JiZ0aGlzLnByb3BzLnRvb2xib3gudHlwZT09PWcuVG9vbGJveFR5cGUuRGVsZXRlP3MuY3JlYXRlRWxlbWVudChmLlJlbW92ZUJ1dHRvbix7aWNvbjp3LG9uQ2xpY2s6dGhpcy5wcm9wcy50b29sYm94LmFjdGlvbn0pOm51bGx9fXZhciBNPW4oODY2NTQ2KTtmdW5jdGlvbiBOKGUpe2NvbnN0e3NpemU6dD0ibm9ybWFsIn09ZTtyZXR1cm4gcy5jcmVhdGVFbGVtZW50KHkse3NpemU6dCxqc3hMYWJlbDpzLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpoKCkoTS5sb2FkZXJXcmFwLE1bdF0pfSxzLmNyZWF0ZUVsZW1lbnQobS5Mb2FkZXIse2NsYXNzTmFtZTpNLmxvYWRlcn0pKSxub0ludGVyYWN0aXZlOiEwLG9uTW91c2VPdmVyOmUub25Nb3VzZU92ZXJ9KX12YXIgUz1uKDIzNTcyNCksST1uKDE4MjMwOCksTz1uKDQ0MzcxMik7Y29uc3QgTD0oMCxzLmZvcndhcmRSZWYpKChmdW5jdGlvbihlLHQpe2NvbnN0e2NsYXNzTmFtZTpuLC4uLnJ9PWUsW28saV09KDAsSS51c2VSb3ZpbmdUYWJpbmRleEVsZW1lbnQpKHQpO3JldHVybiBzLmNyZWF0ZUVsZW1lbnQoeSx7Li4ucixjbGFzc05hbWU6aCgpKE8uYWNjZXNzaWJsZSxuKSxyZWZlcmVuY2U6byx0YWJJbmRleDppLG9uS2V5RG93bjpmdW5jdGlvbihlKXtpZihlLnRhcmdldCE9PWUuY3VycmVudFRhcmdldClyZXR1cm47Y29uc3QgdD0oMCxTLmhhc2hGcm9tRXZlbnQpKGUpOzEzIT09dCYmMzIhPT10fHwoZS5wcmV2ZW50RGVmYXVsdCgpLG8uY3VycmVudCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50JiZvLmN1cnJlbnQuY2xpY2soKSl9LCJkYXRhLXJvbGUiOiJtZW51aXRlbSIsImFyaWEtZGlzYWJsZWQiOmUuZGlzYWJsZWR8fHZvaWQgMH0pfSkpO3ZhciBSPW4oMTE1MjkzKTt2YXIgVD1uKDM2MjIzOSk7dmFyIEQ9big4NTYxOTYpLEI9bigzNTUxMjMpLEY9bigzODY5MzEpLFA9big0OTMwMTMpO2NsYXNzIFcgZXh0ZW5kcyBzLlB1cmVDb21wb25lbnR7Y29uc3RydWN0b3IoZSl7c3VwZXIoZSksdGhpcy5faXRlbVJlZj1udWxsLHRoaXMuX21lbnVFbGVtZW50UmVmPXMuY3JlYXRlUmVmKCksdGhpcy5fbWVudVJlZj1udWxsLHRoaXMuX2hhbmRsZUNsaWNrPWU9PntlLmlzRGVmYXVsdFByZXZlbnRlZCgpfHx0aGlzLnN0YXRlLmRpc2FibGVkfHwodGhpcy5faGFzU3ViSXRlbXMoKT90aGlzLl9zaG93U3ViTWVudSgpOih0aGlzLnN0YXRlLmRvTm90Q2xvc2VPbkNsaWNrfHwoMCx1Lmdsb2JhbENsb3NlTWVudSkoKSx0aGlzLnByb3BzLmFjdGlvbi5leGVjdXRlKCksdGhpcy5fdHJhY2tFdmVudCgpLHRoaXMucHJvcHMub25FeGVjdXRlJiZ0aGlzLnByb3BzLm9uRXhlY3V0ZSh0aGlzLnByb3BzLmFjdGlvbikpKX0sdGhpcy5faGFuZGxlQ2xpY2tUb29sYm94PSgpPT57KDAsCnUuZ2xvYmFsQ2xvc2VNZW51KSgpfSx0aGlzLl9oYW5kbGVJdGVtTW91c2VPdmVyPSgpPT57dGhpcy5fc2hvd1N1Yk1lbnUoKSx0aGlzLl9zZXRDdXJyZW50Q29udGV4dFZhbHVlKCl9LHRoaXMuX2hhbmRsZU1lbnVNb3VzZU92ZXI9KCk9Pnt0aGlzLl9zZXRDdXJyZW50Q29udGV4dFZhbHVlKCl9LHRoaXMuX3Nob3dTdWJNZW51PSgpPT57dGhpcy5wcm9wcy5vblNob3dTdWJNZW51KHRoaXMucHJvcHMuYWN0aW9uKX0sdGhpcy5fY2FsY1N1Yk1lbnVQb3M9ZT0+ZnVuY3Rpb24oZSx0LG49e3g6MCx5OjEwfSl7aWYodCl7Y29uc3R7bGVmdDpuLHJpZ2h0OnMsdG9wOnJ9PXQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksbz1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50V2lkdGgsaT17eDpuLWUseTpyfSxhPXt4OnMseTpyfTtyZXR1cm4oMCxSLmlzUnRsKSgpP248PWU/YTppOm8tcz49ZT9hOml9cmV0dXJuIG59KGUuY29udGVudFdpZHRoLHRoaXMuX2l0ZW1SZWYpLHRoaXMuX3VwZGF0ZVN0YXRlPWU9Pnt0aGlzLnNldFN0YXRlKGUuZ2V0U3RhdGUoKSl9LHRoaXMuX3NldEl0ZW1SZWY9ZT0+e3RoaXMuX2l0ZW1SZWY9ZX0sdGhpcy5faGFuZGxlTWVudVJlZj1lPT57dGhpcy5fbWVudVJlZj1lfSx0aGlzLl9yZWdpc3RlclN1Ym1lbnU9KCk9PnRoaXMuY29udGV4dD8ucmVnaXN0ZXJTdWJtZW51KHRoaXMucHJvcHMuYWN0aW9uLmlkLChlPT4oMCxhLmVuc3VyZU5vdE51bGwpKHRoaXMuX2l0ZW1SZWYpLmNvbnRhaW5zKGUpfHxudWxsIT09dGhpcy5fbWVudUVsZW1lbnRSZWYuY3VycmVudCYmdGhpcy5fbWVudUVsZW1lbnRSZWYuY3VycmVudC5jb250YWlucyhlKSkpLHRoaXMuc3RhdGU9ey4uLnRoaXMucHJvcHMuYWN0aW9uLmdldFN0YXRlKCl9fWNvbXBvbmVudERpZE1vdW50KCl7dGhpcy5wcm9wcy5hY3Rpb24ub25VcGRhdGUoKS5zdWJzY3JpYmUodGhpcyx0aGlzLl91cGRhdGVTdGF0ZSksdGhpcy5zdGF0ZS5zdWJJdGVtcy5sZW5ndGgmJih0aGlzLl91bnN1YnNjcmliZT10aGlzLl9yZWdpc3RlclN1Ym1lbnUoKSksdGhpcy5wcm9wcy5yZWZlcmVuY2UmJih0aGlzLl9pdGVtUmVmPXRoaXMucHJvcHMucmVmZXJlbmNlLmN1cnJlbnQpfWNvbXBvbmVudERpZFVwZGF0ZShlLHQpe3QubG9hZGluZyE9PXRoaXMuc3RhdGUubG9hZGluZyYmdGhpcy5wcm9wcy5vblJlcXVlc3RVcGRhdGU/LigpLDA9PT10LnN1Ykl0ZW1zLmxlbmd0aCYmdGhpcy5zdGF0ZS5zdWJJdGVtcy5sZW5ndGg+MCYmKHRoaXMuX3Vuc3Vic2NyaWJlPXRoaXMuX3JlZ2lzdGVyU3VibWVudSgpKSx0LnN1Ykl0ZW1zLmxlbmd0aD4wJiYwPT09dGhpcy5zdGF0ZS5zdWJJdGVtcy5sZW5ndGgmJnRoaXMuX3Vuc3Vic2NyaWJlPy4oKSx0LnN1Ykl0ZW1zIT09dGhpcy5zdGF0ZS5zdWJJdGVtcyYmbnVsbCE9PXRoaXMuX21lbnVSZWYmJnRoaXMuX21lbnVSZWYudXBkYXRlKCl9Y29tcG9uZW50V2lsbFVubW91bnQoKXt0aGlzLnByb3BzLmFjdGlvbi5vblVwZGF0ZSgpLnVuc3Vic2NyaWJlKHRoaXMsdGhpcy5fdXBkYXRlU3RhdGUpLHRoaXMuX3Vuc3Vic2NyaWJlJiZ0aGlzLl91bnN1YnNjcmliZSgpfXJlbmRlcigpe2NvbnN0IGU9dGhpcy5jb250ZXh0Py5jdXJyZW50P3RoaXMuY29udGV4dC5jdXJyZW50PT09dGhpcy5wcm9wcy5hY3Rpb24uaWQ6dGhpcy5wcm9wcy5pc1N1Yk1lbnVPcGVuZWQ7cmV0dXJuIHRoaXMuc3RhdGUubG9hZGluZz9zLmNyZWF0ZUVsZW1lbnQoTix7c2l6ZTp0aGlzLnN0YXRlLnNpemV9KTpzLmNyZWF0ZUVsZW1lbnQoTCx7Li4uKDAsbC5maWx0ZXJEYXRhUHJvcHMpKHRoaXMucHJvcHMpLHRoZW1lOnRoaXMucHJvcHMudGhlbWUscmVmOnRoaXMucHJvcHMucmVmZXJlbmNlPz90aGlzLl9zZXRJdGVtUmVmLG9uQ2xpY2s6dGhpcy5faGFuZGxlQ2xpY2ssb25DbGlja1Rvb2xib3g6dGhpcy5faGFuZGxlQ2xpY2tUb29sYm94LG9uTW91c2VPdmVyOnRoaXMuX2hhbmRsZUl0ZW1Nb3VzZU92ZXIsaG92ZXJlZDplLGhhc1N1Ykl0ZW1zOnRoaXMuX2hhc1N1Ykl0ZW1zKCksYWN0aW9uTmFtZTp0aGlzLnN0YXRlLm5hbWUsY2hlY2tib3hJbnB1dDp0aGlzLnByb3BzLmNoZWNrYm94SW5wdXQsc2VsZWN0ZWQ6dGhpcy5wcm9wcy5zZWxlY3RlZCxjbGFzc05hbWU6dGhpcy5wcm9wcy5jbGFzc05hbWUsLi4udGhpcy5zdGF0ZX0scy5jcmVhdGVFbGVtZW50KFAuQ29udGV4dE1lbnUse2lzT3BlbmVkOmUsaXRlbXM6dGhpcy5zdGF0ZS5zdWJJdGVtcyxwb3NpdGlvbjp0aGlzLl9jYWxjU3ViTWVudVBvcyxtZW51U3RhdE5hbWU6dGhpcy5wcm9wcy5tZW51U3RhdE5hbWUscGFyZW50U3RhdE5hbWU6dGhpcy5fZ2V0U3RhdE5hbWUoKSxtZW51RWxlbWVudFJlZmVyZW5jZTp0aGlzLl9tZW51RWxlbWVudFJlZixvbk1vdXNlT3Zlcjp0aGlzLnN0YXRlLnN1Ykl0ZW1zLmxlbmd0aD90aGlzLl9oYW5kbGVNZW51TW91c2VPdmVyOnZvaWQgMCxyZWY6dGhpcy5faGFuZGxlTWVudVJlZn0pKX1fc2V0Q3VycmVudENvbnRleHRWYWx1ZSgpe3RoaXMuc3RhdGUuc3ViSXRlbXMubGVuZ3RoJiZ0aGlzLmNvbnRleHQ/LnNldEN1cnJlbnQodGhpcy5wcm9wcy5hY3Rpb24uaWQpfV9oYXNTdWJJdGVtcygpe3JldHVybiB0aGlzLnN0YXRlLnN1Ykl0ZW1zLmxlbmd0aD4wfV90cmFja0V2ZW50KCl7Y29uc3QgZT10aGlzLl9nZXRTdGF0TmFtZSgpO3ZhciB0OygwLEYudHJhY2tFdmVudCkoIkNvbnRleHRNZW51Q2xpY2siLHRoaXMucHJvcHMubWVudVN0YXROYW1lfHwiIixlKSx0aGlzLnByb3BzLm1lbnVTdGF0TmFtZSYmdGhpcy5zdGF0ZS5zdGF0TmFtZSYmKDAsRC5zaG91bGRBZmZlY3RVc2VyKSgiQ29udGV4dE1lbnVUcmFja2luZyIsQi5zcGFyc2VVc2Vyc1RyYWNraW5nQ29lZmZpY2llbnQpJiYodD17bWVudU5hbWU6dGhpcy5wcm9wcy5tZW51U3RhdE5hbWUsc3VibWVudU5hbWU6dGhpcy5wcm9wcy5wYXJlbnRTdGF0TmFtZSxhY3Rpb25OYW1lOnRoaXMuc3RhdGUuc3RhdE5hbWV9LCgwLFQuZ2V0VHJhY2tlcikoKS50aGVuKChlPT57ZSYmZS50cmFja0NvbnRleHRNZW51QWN0aW9uKHQpfSkpKX1fZ2V0U3RhdE5hbWUoKXsKcmV0dXJuW3RoaXMucHJvcHMucGFyZW50U3RhdE5hbWUsdGhpcy5zdGF0ZS5zdGF0TmFtZV0uZmlsdGVyKChlPT5Cb29sZWFuKGUpKSkuam9pbigiLiIpfX1XLmNvbnRleHRUeXBlPWMuU3VibWVudUNvbnRleHQ7Y29uc3QgSD0oMCxpLmlzRmVhdHVyZUVuYWJsZWQpKCJmb3JjZV9kaXNhYmxlX2pzeF9tZW51X2l0ZW1zX3JlbmRlcmluZyIpO2NsYXNzIHEgZXh0ZW5kcyBzLlB1cmVDb21wb25lbnR7Y29uc3RydWN0b3IoZSl7c3VwZXIoZSksdGhpcy5faGFuZGxlU2hvd1N1Yk1lbnU9ZT0+e2NvbnN0IHQ9ZS5nZXRTdGF0ZSgpO3RoaXMuc2V0U3RhdGUoe3Nob3dTdWJNZW51T2Y6dC5zdWJJdGVtcy5sZW5ndGg/ZTp2b2lkIDB9KX0sdGhpcy5zdGF0ZT17fX1yZW5kZXIoKXtyZXR1cm4gcy5jcmVhdGVFbGVtZW50KCJ0YWJsZSIsbnVsbCxzLmNyZWF0ZUVsZW1lbnQoInRib2R5IixudWxsLHRoaXMucHJvcHMuaXRlbXMubWFwKChlPT50aGlzLl9pdGVtKGUpKSkpKX1zdGF0aWMgZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzKGUsdCl7cmV0dXJuIWUucGFyZW50SXNPcGVuZWQmJnQuc2hvd1N1Yk1lbnVPZj97c2hvd1N1Yk1lbnVPZjp2b2lkIDB9Om51bGx9X2l0ZW0oZSl7c3dpdGNoKGUudHlwZSl7Y2FzZSJzZXBhcmF0b3IiOnJldHVybiBzLmNyZWF0ZUVsZW1lbnQobyx7a2V5OmUuaWQsaGludDplLmdldEhpbnQoKX0pO2Nhc2UiYWN0aW9uIjpjb25zdCB0PUg/ZTplLmN1c3RvbSgpPz9lO3JldHVybiBzLmNyZWF0ZUVsZW1lbnQoVyx7a2V5OnQuaWQsYWN0aW9uOnQsb25TaG93U3ViTWVudTp0aGlzLl9oYW5kbGVTaG93U3ViTWVudSxpc1N1Yk1lbnVPcGVuZWQ6dGhpcy5zdGF0ZS5zaG93U3ViTWVudU9mPT09dCxtZW51U3RhdE5hbWU6dGhpcy5wcm9wcy5tZW51U3RhdE5hbWUscGFyZW50U3RhdE5hbWU6dGhpcy5wcm9wcy5wYXJlbnRTdGF0TmFtZSxvblJlcXVlc3RVcGRhdGU6dGhpcy5wcm9wcy5vblJlcXVlc3RVcGRhdGV9KX19fX0sNjE2MzExKGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse3VzZUlzb21vcnBoaWNMYXlvdXRFZmZlY3Q6KCk9PnJ9KTt2YXIgcz1uKDc3OTQ3NCk7ZnVuY3Rpb24gcihlLHQpeygidW5kZWZpbmVkIj09dHlwZW9mIHdpbmRvdz9zLnVzZUVmZmVjdDpzLnVzZUxheW91dEVmZmVjdCkoZSx0KX19LDE4MjMwOChlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHt1c2VSb3ZpbmdUYWJpbmRleEVsZW1lbnQ6KCk9Pml9KTt2YXIgcz1uKDc3OTQ3NCkscj1uKDc4Nzg5NSksbz1uKDYxNjMxMSk7ZnVuY3Rpb24gaShlLHQ9W10pe2NvbnN0W24saV09KDAscy51c2VTdGF0ZSkoITEpLGE9KDAsci51c2VGdW5jdGlvbmFsUmVmT2JqZWN0KShlKTtyZXR1cm4oMCxvLnVzZUlzb21vcnBoaWNMYXlvdXRFZmZlY3QpKCgoKT0+e2NvbnN0IGU9YS5jdXJyZW50O2lmKG51bGw9PT1lKXJldHVybjtjb25zdCB0PWU9Pntzd2l0Y2goZS50eXBlKXtjYXNlInJvdmluZy10YWJpbmRleDptYWluLWVsZW1lbnQiOmkoITApO2JyZWFrO2Nhc2Uicm92aW5nLXRhYmluZGV4OnNlY29uZGFyeS1lbGVtZW50IjppKCExKX19O3JldHVybiBlLmFkZEV2ZW50TGlzdGVuZXIoInJvdmluZy10YWJpbmRleDptYWluLWVsZW1lbnQiLHQpLGUuYWRkRXZlbnRMaXN0ZW5lcigicm92aW5nLXRhYmluZGV4OnNlY29uZGFyeS1lbGVtZW50Iix0KSwoKT0+e2UucmVtb3ZlRXZlbnRMaXN0ZW5lcigicm92aW5nLXRhYmluZGV4Om1haW4tZWxlbWVudCIsdCksZS5yZW1vdmVFdmVudExpc3RlbmVyKCJyb3ZpbmctdGFiaW5kZXg6c2Vjb25kYXJ5LWVsZW1lbnQiLHQpfX0pLHQpLFthLG4/MDotMV19fSw0NjI3MDQoZSl7ZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDE4IDE4IiB3aWR0aD0iMTgiIGhlaWdodD0iMTgiPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZD0iTTEyIDRoM3YxaC0xLjA0bC0uODggOS42NGExLjUgMS41IDAgMCAxLTEuNSAxLjM2SDYuNDJhMS41IDEuNSAwIDAgMS0xLjUtMS4zNkw0LjA1IDVIM1Y0aDN2LS41QzYgMi42NyA2LjY3IDIgNy41IDJoM2MuODMgMCAxLjUuNjcgMS41IDEuNVY0Wk03LjUgM2EuNS41IDAgMCAwLS41LjVWNGg0di0uNWEuNS41IDAgMCAwLS41LS41aC0zWk01LjA1IDVsLjg3IDkuNTVhLjUuNSAwIDAgMCAuNS40NWg1LjE3YS41LjUgMCAwIDAgLjUtLjQ1TDEyLjk0IDVoLTcuOVoiLz48L3N2Zz4nfSwzOTIzOTgoZSl7ZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDI4IDI4IiB3aWR0aD0iMjgiIGhlaWdodD0iMjgiPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZD0iTTIyIDkuMDYgMTEgMjAgNiAxNC43bDEuMDktMS4wMiAzLjk0IDQuMTZMMjAuOTQgOCAyMiA5LjA2WiIvPjwvc3ZnPid9LDEyNTg5NyhlKXtlLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMTEgOSIgd2lkdGg9IjExIiBoZWlnaHQ9IjkiIGZpbGw9Im5vbmUiPjxwYXRoIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiIGQ9Ik0wLjk5OTg3OCA0TDMuOTk5ODggN0w5Ljk5OTg4IDEiLz48L3N2Zz4nfSwzMzQ1NTAoZSl7ZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDI4IDI4IiB3aWR0aD0iMjgiIGhlaWdodD0iMjgiIGZpbGw9Im5vbmUiPjxwYXRoIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHN0cm9rZS13aWR0aD0iMiIgZD0iTTE2LjUgMjBMMTEgMTQuNSAxNi41IDkiLz48L3N2Zz4nfSw1ODA1OTYoZSl7ZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDE4IDE4IiB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIGZpbGw9Im5vbmUiPjxwYXRoIHN0cm9rZT0iY3VycmVudENvbG9yIiBkPSJNOCA1bDMuNSAzLjVMOCAxMiIvPjwvc3ZnPid9LDM4MDU2KGUpewplLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMjggMjgiIHdpZHRoPSIyOCIgaGVpZ2h0PSIyOCIgZmlsbD0ibm9uZSI+PHBhdGggc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLXdpZHRoPSIxLjUiIGQ9Ik03IDE1bDUgNUwyMyA5Ii8+PC9zdmc+J30sMTUxODk0KGUpe2UuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMCAxNiIgd2lkdGg9IjEwIiBoZWlnaHQ9IjE2Ij48cGF0aCBkPSJNLjYgMS40bDEuNC0xLjQgOCA4LTggOC0xLjQtMS40IDYuMzg5LTYuNTMyLTYuMzg5LTYuNjY4eiIvPjwvc3ZnPid9fV0pOw=="}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/99309.ca4ac19b8ab37679f251.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.086Z","timestamp":1785148034086,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/99309.ca4ac19b8ab37679f251.js HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a61b1a8-7f26\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Thu, 23 Jul 2026 06:16:08 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/23/2026 10:17:28\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 3b4c64619750138f9fdb3d38da9e19ca\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":32550,"size_decoded":11901,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (3071)","md5":"07536e5ca803829ab657e62c61210dbc","sha1":"0d11d8bbefaca8f90cf1e077c6fa59dd3d64373b","sha256":"378146c5d601a41f6b19209c59c2a432275153ee70df8a706ba1ef83af1e43a5","sha512":"c85137ba985b9fc6ebe8e1027753279bacf049530b0ab2ea0eef73d83967d84a9ca4fdb32907e453f60678d15cea4dc76ef348e7aeb9b2609b88441ad1e984ae","ssdeep":"768:hsXBcQmT4krvwY0u+/z8SSV3WMODEDQKtGn72TCqXWmXMxpp0rf7eilfefe8LMsX:hsX1a0d/zESPqheft","tlshash":"2de21ad1309174d923ff4edba0ab0558e33a1764b85a8c60b0b8eddc25d3818b276dbd","first_seen":"2026-07-23T14:00:31.509299Z","last_seen":"2026-07-27T12:48:39.823238Z","times_seen":105,"resource_available":true,"data":"KHNlbGYud2VicGFja0NodW5rdHJhZGluZ3ZpZXc9c2VsZi53ZWJwYWNrQ2h1bmt0cmFkaW5ndmlld3x8W10pLnB1c2goW1s5OTMwOV0sezgwMzI4NyhlKXtlLmV4cG9ydHM9eyJkZWZhdWx0LWRyYXdlci1taW4tdG9wLWRpc3RhbmNlIjoiMTAwcHgiLHdyYXA6IndyYXAtaWlpMTE4b04iLHBvc2l0aW9uQm90dG9tOiJwb3NpdGlvbkJvdHRvbS1paWkxMThvTiIsYmFja2Ryb3A6ImJhY2tkcm9wLWlpaTExOG9OIixkcmF3ZXI6ImRyYXdlci1paWkxMThvTiIscG9zaXRpb25MZWZ0OiJwb3NpdGlvbkxlZnQtaWlpMTE4b04ifX0sMTQwMDE3KGUpe2UuZXhwb3J0cz17bG9nbzoibG9nby1WQ05LdWJXcSIsaGlkZGVuOiJoaWRkZW4tVkNOS3ViV3EiLHh4Y2VwdGlvbmFsbHlzbWFsbGRvbm90dXNlYnJ2MTAyMzoieHhjZXB0aW9uYWxseXNtYWxsZG9ub3R1c2VicnYxMDIzLVZDTkt1YldxIix4eHhzbWFsbDoieHh4c21hbGwtVkNOS3ViV3EiLHh4c21hbGw6Inh4c21hbGwtVkNOS3ViV3EiLHhzbWFsbDoieHNtYWxsLVZDTkt1YldxIixzbWFsbDoic21hbGwtVkNOS3ViV3EiLG1lZGl1bToibWVkaXVtLVZDTkt1YldxIixsYXJnZToibGFyZ2UtVkNOS3ViV3EiLHhsYXJnZToieGxhcmdlLVZDTkt1YldxIix4eGxhcmdlOiJ4eGxhcmdlLVZDTkt1YldxIix4eHhsYXJnZToieHh4bGFyZ2UtVkNOS3ViV3EiLHNrZWxldG9uOiJza2VsZXRvbi1WQ05LdWJXcSIsbGV0dGVyOiJsZXR0ZXItVkNOS3ViV3EifX0sNTYxMjUwKGUpe2UuZXhwb3J0cz17YmFja2dyb3VuZDoiYmFja2dyb3VuZC1OUW9tNUk4WiIsbWVkaXVtOiJtZWRpdW0tTlFvbTVJOFoiLGxhcmdlOiJsYXJnZS1OUW9tNUk4WiIsZGlzYWJsZWQ6ImRpc2FibGVkLU5Rb201SThaIixvcGVuOiJvcGVuLU5Rb201SThaIixzZWxlY3RlZDoic2VsZWN0ZWQtTlFvbTVJOFoiLG5ldXRyYWw6Im5ldXRyYWwtTlFvbTVJOFoiLGRhbmdlcjoiZGFuZ2VyLU5Rb201SThaIn19LDQ0MzYxOChlKXtlLmV4cG9ydHM9e2VsbGlwc2lzOiJlbGxpcHNpcy1EYXpSODVWQSIsd2l0aEdhcHM6IndpdGhHYXBzLURhelI4NVZBIn19LDQ0MDkyNihlKXtlLmV4cG9ydHM9e2hvdGtleToiaG90a2V5LVhjNlNocENxIn19LDIxMjQ4NihlKXtlLmV4cG9ydHM9e2J1dHRvbkNvbnRlbnQ6ImJ1dHRvbkNvbnRlbnQtVlg0a3BSOWkiLGxlZnQ6ImxlZnQtVlg0a3BSOWkifX0sMzU5MTE2KGUpe2UuZXhwb3J0cz17YnV0dG9uOiJidXR0b24tWE5VaXZUb3UifX0sOTQ4MzkwKGUpe2UuZXhwb3J0cz17bWlkZGxlOiJtaWRkbGUtRnR3d1JyN3UiLGhhc05vRW5kU2xvdDoiaGFzTm9FbmRTbG90LUZ0d3dScjd1Iix0aXRsZToidGl0bGUtRnR3d1JyN3UiLGRlc2NyaXB0aW9uOiJkZXNjcmlwdGlvbi1GdHd3UnI3dSIsaGFzVGl0bGU6Imhhc1RpdGxlLUZ0d3dScjd1IixoYXNEZXNjcmlwdGlvbjoiaGFzRGVzY3JpcHRpb24tRnR3d1JyN3UifX0sMjMyMDU0KGUpe2UuZXhwb3J0cz17cmlnaHQ6InJpZ2h0LUNHZGpLYTlZIixjaGlsZDoiY2hpbGQtQ0dkakthOVkifX0sNDQwMDk2KGUpe2UuZXhwb3J0cz17c2Nyb2xsQ29udGFpbmVyOiJzY3JvbGxDb250YWluZXItekcyQ3FEZTIifX0sNjI3MDIyKGUpe2UuZXhwb3J0cz17ZmxleDoiZmxleC1nbzBaZU5RRiIsZml4ZWRIZWFkZXI6ImZpeGVkSGVhZGVyLWdvMFplTlFGIixmaXhlZEZvb3RlcjoiZml4ZWRGb290ZXItZ28wWmVOUUYiLG1haW5TY3JvbGxXcmFwcGVyOiJtYWluU2Nyb2xsV3JhcHBlci1nbzBaZU5RRiIsZml4ZWRIZWFkZXJDb250ZW50OiJmaXhlZEhlYWRlckNvbnRlbnQtZ28wWmVOUUYiLGZpeGVkRm9vdGVyQ29udGVudDoiZml4ZWRGb290ZXJDb250ZW50LWdvMFplTlFGIixub1Njcm9sbDoibm9TY3JvbGwtZ28wWmVOUUYiLG1haW46Im1haW4tZ28wWmVOUUYiLG1haW5Db250ZW50OiJtYWluQ29udGVudC1nbzBaZU5RRiJ9fSw0NTI0NjQoZSl7ZS5leHBvcnRzPXtwa246InBrbi1jVHBfdW5WOCJ9fSw1MTgyNzIoZSl7ZS5leHBvcnRzPXtldmVudFdyYXBwZXI6ImV2ZW50V3JhcHBlci1fRThVWFZLMSJ9fSw2MjM2MTMoZSl7ZS5leHBvcnRzPXttb2JpbGVDb250ZXh0OiJtb2JpbGVDb250ZXh0LVZ4bjRMaFlMIixhbmNob3JDb250ZXh0OiJhbmNob3JDb250ZXh0LVZ4bjRMaFlMIn19LDk3NTI4NShlKXtlLmV4cG9ydHM9e3dyYXBwZXI6IndyYXBwZXItaGN0MnlKdksiLGFuaW1hdGVkOiJhbmltYXRlZC1oY3QyeUp2SyIscHVsc2F0aW9uOiJwdWxzYXRpb24taGN0MnlKdksifX0sMzEzNzcyKGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse0RyYXdlckNvbnRleHQ6KCk9PmEsRHJhd2VyTWFuYWdlcjooKT0+aX0pO3ZhciByPW4oNzc5NDc0KSxvPW4oOTk1Njc4KTtjbGFzcyBpIGV4dGVuZHMgci5QdXJlQ29tcG9uZW50e2NvbnN0cnVjdG9yKGUpe3N1cGVyKGUpLHRoaXMuX2lzQm9keUZpeGVkPSExLHRoaXMuX2FkZERyYXdlcj1lPT57dGhpcy5zZXRTdGF0ZSgodD0+KHtzdGFjazpbLi4udC5zdGFjayxlXX0pKSl9LHRoaXMuX3JlbW92ZURyYXdlcj1lPT57dGhpcy5zZXRTdGF0ZSgodD0+KHtzdGFjazp0LnN0YWNrLmZpbHRlcigodD0+dCE9PWUpKX0pKSl9LHRoaXMuc3RhdGU9e3N0YWNrOltdfX1jb21wb25lbnREaWRVcGRhdGUoZSx0KXshdC5zdGFjay5sZW5ndGgmJnRoaXMuc3RhdGUuc3RhY2subGVuZ3RoJiYoKDAsby5yZXF1ZXN0TW9kYWxTY3JvbGxMb2NrKSh3aW5kb3cpLHRoaXMuX2lzQm9keUZpeGVkPSEwKSx0LnN0YWNrLmxlbmd0aCYmIXRoaXMuc3RhdGUuc3RhY2subGVuZ3RoJiZ0aGlzLl9pc0JvZHlGaXhlZCYmKCgwLG8ucmVsZWFzZU1vZGFsU2Nyb2xsTG9jaykod2luZG93KSx0aGlzLl9pc0JvZHlGaXhlZD0hMSl9Y29tcG9uZW50V2lsbFVubW91bnQoKXt0aGlzLnN0YXRlLnN0YWNrLmxlbmd0aCYmdGhpcy5faXNCb2R5Rml4ZWQmJigwLG8ucmVsZWFzZU1vZGFsU2Nyb2xsTG9jaykod2luZG93KX1yZW5kZXIoKXtyZXR1cm4gci5jcmVhdGVFbGVtZW50KGEuUHJvdmlkZXIse3ZhbHVlOnthZGREcmF3ZXI6dGhpcy5fYWRkRHJhd2VyLHJlbW92ZURyYXdlcjp0aGlzLl9yZW1vdmVEcmF3ZXIsCmN1cnJlbnREcmF3ZXI6dGhpcy5zdGF0ZS5zdGFjay5sZW5ndGg/dGhpcy5zdGF0ZS5zdGFja1t0aGlzLnN0YXRlLnN0YWNrLmxlbmd0aC0xXTpudWxsfX0sdGhpcy5wcm9wcy5jaGlsZHJlbil9fWNvbnN0IGE9ci5jcmVhdGVDb250ZXh0KG51bGwpfSw5NjQyMTQoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7RHJhd2VyOigpPT5wfSk7dmFyIHI9big3Nzk0NzQpLG89big5MTQ0ODcpLGk9bi5uKG8pLGE9bigxMzg2MzgpLHM9big1ODU0OCksbD1uKDE1MDE1MCksYz1uKDMxMzc3MiksdT1uKDYzMjk5MiksZD1uKDU1ODAzMCksZj1uKDgwMzI4Nyk7dmFyIG07ZnVuY3Rpb24gcChlKXtjb25zdHtwb3NpdGlvbjp0PSJCb3R0b20iLG9uQ2xvc2U6bixjaGlsZHJlbjpvLHJlZmVyZW5jZTpkLGNsYXNzTmFtZTptLHRoZW1lOnA9Zn09ZSx2PSgwLGEuZW5zdXJlTm90TnVsbCkoKDAsci51c2VDb250ZXh0KShjLkRyYXdlckNvbnRleHQpKSxbaF09KDAsci51c2VTdGF0ZSkoKCgpPT4oMCxsLnJhbmRvbUhhc2gpKCkpKSxDPSgwLHIudXNlUmVmKShudWxsKSxiPSgwLHIudXNlQ29udGV4dCkodS5DbG9zZURlbGVnYXRlQ29udGV4dCk7cmV0dXJuKDAsci51c2VMYXlvdXRFZmZlY3QpKCgoKT0+KCgwLGEuZW5zdXJlTm90TnVsbCkoQy5jdXJyZW50KS5mb2N1cyh7cHJldmVudFNjcm9sbDohMH0pLGIuc3Vic2NyaWJlKHYsbiksdi5hZGREcmF3ZXIoaCksKCk9Pnt2LnJlbW92ZURyYXdlcihoKSxiLnVuc3Vic2NyaWJlKHYsbil9KSksW10pLHIuY3JlYXRlRWxlbWVudChzLlBvcnRhbCxudWxsLHIuY3JlYXRlRWxlbWVudCgiZGl2Iix7cmVmOmQsY2xhc3NOYW1lOmkoKShmLndyYXAsZltgcG9zaXRpb24ke3R9YF0pfSxoPT09di5jdXJyZW50RHJhd2VyJiZyLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpmLmJhY2tkcm9wLG9uQ2xpY2s6bn0pLHIuY3JlYXRlRWxlbWVudChFLHtjbGFzc05hbWU6aSgpKHAuZHJhd2VyLGZbYHBvc2l0aW9uJHt0fWBdLG0pLHJlZjpDLCJkYXRhLW5hbWUiOmVbImRhdGEtbmFtZSJdLCJkYXRhLXFhLWlkIjplWyJkYXRhLXFhLWlkIl19LG8pKSl9IWZ1bmN0aW9uKGUpe2UuTGVmdD0iTGVmdCIsZS5Cb3R0b209IkJvdHRvbSJ9KG18fChtPXt9KSk7Y29uc3QgRT0oMCxyLmZvcndhcmRSZWYpKCgoZSx0KT0+e2NvbnN0e2NsYXNzTmFtZTpuLC4uLm99PWU7cmV0dXJuIHIuY3JlYXRlRWxlbWVudChkLlRvdWNoU2Nyb2xsQ29udGFpbmVyLHtjbGFzc05hbWU6aSgpKGYuZHJhd2VyLG4pLHRhYkluZGV4Oi0xLHJlZjp0LC4uLm99KX0pKX0sOTk5NTEoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7QXBwQ29udGV4dDooKT0+cn0pO2NvbnN0IHI9KDAsbig3Nzk0NzQpLmNyZWF0ZUNvbnRleHQpKHtpc09uTW9iaWxlQXBwUGFnZTooKT0+ITEsaXNSdGw6ITEsbG9jYWxlOiJlbiIscmVuZGVyTW9kZToibGVnYWN5In0pfSwzMzI2ODcoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7REVGQVVMVF9JQ09OX0JVVFRPTl9WQVJJQU5UOigpPT5vLEljb25CdXR0b25WYXJpYW50Q29udGV4dDooKT0+aSxJY29uQnV0dG9uVmFyaWFudENvbnRleHRQcm92aWRlcjooKT0+YX0pO3ZhciByPW4oNzc5NDc0KTtjb25zdCBvPSJwcmltYXJ5IixpPSgwLHIuY3JlYXRlQ29udGV4dCkoe3ZhcmlhbnQ6dm9pZCAwfSk7ZnVuY3Rpb24gYShlKXtyZXR1cm4gci5jcmVhdGVFbGVtZW50KGkuUHJvdmlkZXIse3ZhbHVlOnt2YXJpYW50OmUudmFyaWFudH19LGUuY2hpbGRyZW4pfX0sMzg3Nzc0KGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse0NpcmNsZUxvZ286KCk9PnMsaGlkZGVuQ2lyY2xlTG9nb0NsYXNzOigpPT5hfSk7dmFyIHI9big3Nzk0NzQpLG89big3OTQxODcpLGk9bigxNDAwMTcpO2NvbnN0IGE9bi5uKGkpKCkuaGlkZGVuO2Z1bmN0aW9uIHMoZSl7Y29uc3QgdD0oMCxvLmlzQ2lyY2xlTG9nb1dpdGhVcmxQcm9wcykoZSksW24saV09KDAsci51c2VTdGF0ZSkoMCksYT0oMCxyLnVzZVJlZikobnVsbCkscz0oMCxvLmdldFN0eWxlQ2xhc3NlcykoZS5zaXplLG4sZS5jbGFzc05hbWUpLGw9ZS5hbHQ/P2UudGl0bGU/PyIiLGM9dD9sWzBdOmUucGxhY2Vob2xkZXJMZXR0ZXI7cmV0dXJuKDAsci51c2VFZmZlY3QpKCgoKT0+aShhLmN1cnJlbnQ/LmNvbXBsZXRlPz8hdD8yOjEpKSxbdF0pLHQmJjMhPT1uP3IuY3JlYXRlRWxlbWVudCgiaW1nIix7cmVmOmEsY2xhc3NOYW1lOnMsY3Jvc3NPcmlnaW46IiIsc3JjOmUubG9nb1VybCxhbHQ6bCx0aXRsZTplLnRpdGxlLGxvYWRpbmc6ZS5sb2FkaW5nLG9uTG9hZDooKT0+aSgyKSxvbkVycm9yOigpPT5pKDMpLCJhcmlhLWxhYmVsIjplWyJhcmlhLWxhYmVsIl0sImFyaWEtaGlkZGVuIjplWyJhcmlhLWhpZGRlbiJdfSk6ci5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOnMsdGl0bGU6ZS50aXRsZSwiYXJpYS1sYWJlbCI6ZVsiYXJpYS1sYWJlbCJdLCJhcmlhLWhpZGRlbiI6ZVsiYXJpYS1oaWRkZW4iXX0sYyl9fSw3OTQxODcoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7Z2V0U3R5bGVDbGFzc2VzOigpPT5sLGlzQ2lyY2xlTG9nb1dpdGhVcmxQcm9wczooKT0+Y30pO3ZhciByPW4oOTE0NDg3KSxvPW4ubihyKSxpPW4oMTM2NCksYT1uKDE0MDAxNykscz1uLm4oYSk7ZnVuY3Rpb24gbChlLHQ9MixuKXtyZXR1cm4gbygpKHMoKS5sb2dvLHMoKVtlXSxuLDA9PT10fHwxPT09dD9vKCkoaS5za2VsZXRvblRoZW1lLndyYXBwZXIscygpLnNrZWxldG9uKTpzKCkubGV0dGVyLDE9PT10JiZpLnNrZWxldG9uVGhlbWUuYW5pbWF0ZWQpfWZ1bmN0aW9uIGMoZSl7cmV0dXJuImxvZ29VcmwiaW4gZSYmbnVsbCE9PWUubG9nb1VybCYmdm9pZCAwIT09ZS5sb2dvVXJsJiYwIT09ZS5sb2dvVXJsLmxlbmd0aH19LDMwOTkyMChlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtDdXN0b21CZWhhdmlvdXJDb250ZXh0OigpPT5yfSk7Y29uc3Qgcj0oMCxuKDc3OTQ3NCkuY3JlYXRlQ29udGV4dCkoe2VuYWJsZUFjdGl2ZVN0YXRlU3R5bGVzOiEwfSk7ci5kaXNwbGF5TmFtZT0iQ3VzdG9tQmVoYXZpb3VyQ29udGV4dCJ9LDUyOTQxMShlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHsKdXNlSXNGaXJzdFJlbmRlcjooKT0+byx1c2VJc05vbkZpcnN0UmVuZGVyOigpPT5pfSk7dmFyIHI9big3Nzk0NzQpO2Z1bmN0aW9uIG8oKXtjb25zdFtlLHRdPSgwLHIudXNlU3RhdGUpKCEwKTtyZXR1cm4oMCxyLnVzZUVmZmVjdCkoKCgpPT57dCghMSl9KSxbXSksZX1mdW5jdGlvbiBpKCl7cmV0dXJuIW8oKX19LDM0MjI2MShlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHt1c2VGb3JjZVVwZGF0ZTooKT0+b30pO3ZhciByPW4oNzc5NDc0KTtjb25zdCBvPSgpPT57Y29uc3RbLGVdPSgwLHIudXNlUmVkdWNlcikoKGU9PmUrMSksMCk7cmV0dXJuIGV9fSw3ODc4OTUoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7dXNlRnVuY3Rpb25hbFJlZk9iamVjdDooKT0+aX0pO3ZhciByPW4oNzc5NDc0KSxvPW4oNjE2MzExKTtmdW5jdGlvbiBpKGUpe2NvbnN0IHQ9KDAsci51c2VNZW1vKSgoKCk9PmZ1bmN0aW9uKGUpe2NvbnN0IHQ9bj0+e2UobiksdC5jdXJyZW50PW59O3JldHVybiB0LmN1cnJlbnQ9bnVsbCx0fSgoZT0+e3MuY3VycmVudChlKX0pKSksW10pLG49KDAsci51c2VSZWYpKG51bGwpLGk9dD0+e2lmKG51bGw9PT10KXJldHVybiBhKG4uY3VycmVudCx0KSx2b2lkKG4uY3VycmVudD1udWxsKTtuLmN1cnJlbnQhPT1lJiYobi5jdXJyZW50PWUsYShuLmN1cnJlbnQsdCkpfSxzPSgwLHIudXNlUmVmKShpKTtyZXR1cm4gcy5jdXJyZW50PWksKDAsby51c2VJc29tb3JwaGljTGF5b3V0RWZmZWN0KSgoKCk9PntpZihudWxsIT09dC5jdXJyZW50KXJldHVybiBzLmN1cnJlbnQodC5jdXJyZW50KSwoKT0+cy5jdXJyZW50KG51bGwpfSksW2VdKSx0fWZ1bmN0aW9uIGEoZSx0KXtudWxsIT09ZSYmKCJmdW5jdGlvbiI9PXR5cGVvZiBlP2UodCk6ZS5jdXJyZW50PXQpfX0sNjg5ODk0KGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse2hvdmVyTW91c2VFdmVudEZpbHRlcjooKT0+YSx1c2VBY2N1cmF0ZUhvdmVyOigpPT5zLHVzZUhvdmVyOigpPT5vLHVzZUhvdmVyRGVwcmVjYXRlZDooKT0+aX0pO3ZhciByPW4oNzc5NDc0KTtmdW5jdGlvbiBvKCl7Y29uc3RbZSx0XT0oMCxyLnVzZVN0YXRlKSghMSk7cmV0dXJuW2Use29uTW91c2VFbnRlcjpmdW5jdGlvbihlKXt0KCEwKX0sb25Nb3VzZUxlYXZlOmZ1bmN0aW9uKGUpe3QoITEpfX1dfWZ1bmN0aW9uIGkoKXtjb25zdFtlLHRdPSgwLHIudXNlU3RhdGUpKCExKTtyZXR1cm5bZSx7b25Nb3VzZU92ZXI6ZnVuY3Rpb24oZSl7YShlKSYmdCghMCl9LG9uTW91c2VPdXQ6ZnVuY3Rpb24oZSl7YShlKSYmdCghMSl9fV19ZnVuY3Rpb24gYShlKXtyZXR1cm4hZS5jdXJyZW50VGFyZ2V0LmNvbnRhaW5zKGUucmVsYXRlZFRhcmdldCl9ZnVuY3Rpb24gcyhlKXtjb25zdFt0LG5dPSgwLHIudXNlU3RhdGUpKCExKTtyZXR1cm4oMCxyLnVzZUVmZmVjdCkoKCgpPT57Y29uc3QgdD10PT57aWYobnVsbD09PWUuY3VycmVudClyZXR1cm47Y29uc3Qgcj1lLmN1cnJlbnQuY29udGFpbnModC50YXJnZXQpO24ocil9O3JldHVybiBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZW92ZXIiLHQpLCgpPT5kb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZW92ZXIiLHQpfSksW10pLHR9fSw3MTc5MzIoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7dXNlTWF0Y2hNZWRpYTooKT0+aSx1c2VTYWZlTWF0Y2hNZWRpYTooKT0+b30pO3ZhciByPW4oNzc5NDc0KTtmdW5jdGlvbiBvKGUsdD0hMSl7Y29uc3RbbixvXT0oMCxyLnVzZVN0YXRlKSh0KTtyZXR1cm4oMCxyLnVzZUVmZmVjdCkoKCgpPT57Y29uc3QgdD13aW5kb3cubWF0Y2hNZWRpYShlKTtmdW5jdGlvbiBuKCl7byh0Lm1hdGNoZXMpfXJldHVybiBuKCksdC5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLG4pLCgpPT57dC5yZW1vdmVFdmVudExpc3RlbmVyKCJjaGFuZ2UiLG4pfX0pLFtlXSksbn1mdW5jdGlvbiBpKGUpe2NvbnN0IHQ9KDAsci51c2VNZW1vKSgoKCk9PndpbmRvdy5tYXRjaE1lZGlhKGUpLm1hdGNoZXMpLFtdKTtyZXR1cm4gbyhlLHQpfX0sOTQ4NDUwKGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse0NvbW1vbkljb246KCk9Pm99KTt2YXIgcj1uKDc3OTQ3NCk7Y29uc3Qgbz1yLmZvcndhcmRSZWYoKChlLHQpPT57Y29uc3R7Y2xhc3NOYW1lOm4sYXJpYUxhYmVsOm8sYXJpYUxhYmVsbGVkYnk6aSx0aXRsZTphLGljb246cz0iIiwuLi5sfT1lLGM9bCx1PSEoIW8mJiFpKTtyZXR1cm4gci5jcmVhdGVFbGVtZW50KCJzcGFuIix7ImFyaWEtbGFiZWwiOm8sImFyaWEtbGFiZWxsZWRieSI6aSwiYXJpYS1oaWRkZW4iOiF1LHJlZjp0LHJvbGU6ImltZyIsZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUw6e19faHRtbDpzfSxjbGFzc05hbWU6bix0aXRsZTphLC4uLmN9KX0pKX0sMjczMzEwKGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse0ljb246KCk9Pm99KTt2YXIgcj1uKDc3OTQ3NCk7Y29uc3Qgbz1yLmZvcndhcmRSZWYoKChlLHQpPT57Y29uc3R7aWNvbjpuPSIiLHRpdGxlOm8sYXJpYUxhYmVsOmksYXJpYUxhYmVsbGVkYnk6YSxhcmlhSGlkZGVuOnMsLi4ubH09ZSxjPSEhKG98fGl8fGEpO3JldHVybiByLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtyb2xlOiJpbWciLC4uLmwscmVmOnQsImFyaWEtbGFiZWwiOmksImFyaWEtbGFiZWxsZWRieSI6YSwiYXJpYS1oaWRkZW4iOnN8fCFjLHRpdGxlOm8sZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUw6e19faHRtbDpufX0pfSkpfSw3NDE0MDUoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7TGlzdEl0ZW1IYXNEZXNjcmlwdGlvbkNvbnRleHQ6KCk9PnJ9KTtjb25zdCByPSgwLG4oNzc5NDc0KS5jcmVhdGVDb250ZXh0KSghMSl9LDYyODgyNShlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtMaXN0SXRlbTooKT0+a30pO3ZhciByPW4oNzc5NDc0KSxvPW4oOTE0NDg3KSxpPW4ubihvKSxhPW4oNTYxMjUwKSxzPW4ubihhKTtmdW5jdGlvbiBsKGUpe2NvbnN0IHQ9KDAsCnIudXNlUmVmKShudWxsKSx7Y2hpbGRyZW46bixsaXN0SXRlbVJlZjpvPXQsaXNPcGVuOmEsc2VsZWN0ZWQ6bCxkaXNhYmxlZDpjLG9uTW91c2VFbnRlcjp1LHNpemU6ZD0ibWVkaXVtIixhcmlhQnVzeTpmLGludGVudDptPSJuZXV0cmFsIixkYXRhUWFJZDpwfT1lO3JldHVybiByLmNyZWF0ZUVsZW1lbnQoImRpdiIseyJkYXRhLXFhLWlkIjpwLGNsYXNzTmFtZTppKCkocygpLmJhY2tncm91bmQsbCYmcygpLnNlbGVjdGVkLGEmJnMoKS5vcGVuLGMmJnMoKS5kaXNhYmxlZCxzKClbZF0scygpW21dKSxyZWY6byxvbk1vdXNlRW50ZXI6dSwiYXJpYS1idXN5IjpmfSxuKX12YXIgYz1uKDIzNTcyNCksdT1uKDc4Nzg5NSksZD1uKDM0NTExNiksZj1uKDM1OTExNiksbT1uLm4oZik7ZnVuY3Rpb24gcChlKXtjb25zdCB0PSgwLHIudXNlUmVmKShudWxsKSx7Y2hpbGRyZW46bixsaXN0SXRlbUJ1dHRvblJlZjpvPXQsbGlzdEl0ZW1CdXR0b25JZDphLG9uS2V5RG93bkxpc3RJdGVtQnV0dG9uOnMsaHJlZjpsLHRhcmdldDpmPSJfYmxhbmsiLGhvdGtleTpwLGFyaWFDaGVja2VkOkUsYXJpYVNlbGVjdGVkOnYsYXJpYUhhc3BvcHVwOmgsYXJpYUNvbnRyb2xzOkMsYXJpYUV4cGFuZGVkOmIsYXJpYUxhYmVsOmcsYXJpYUxldmVsOngscm9sZTpPLGRpc2FibGVkOk4saXNPcGVuOncsc2VsZWN0ZWQ6UCxvbkNsaWNrOkwsdGFiSW5kZXg6VD0wLHJlbDpfLGRhdGFRYUlkOnksLi4uU309ZSxJPSgwLGQuZmlsdGVyQ2hlY2tlZERhdGFQcm9wcykoUyksUj0oMCx1LnVzZUZ1bmN0aW9uYWxSZWZPYmplY3QpKG8pLEE9KDAsci51c2VDYWxsYmFjaykoKGU9PntpZihSLmN1cnJlbnQhPT1lLnRhcmdldClyZXR1cm47cz8uKGUpO2NvbnN0IHQ9KDAsYy5oYXNoRnJvbUV2ZW50KShlKTszMiE9PXQmJjEzIT09dHx8KHZvaWQgMCE9PWwmJndpbmRvdy5vcGVuKGwsZiksTD8uKGUpLGUucHJldmVudERlZmF1bHQoKSxlLnN0b3BQcm9wYWdhdGlvbigpKX0pLFtMLGwsZixzLFJdKSxrPXtyb2xlOk8sImFyaWEta2V5c2hvcnRjdXRzIjpwPyhEPXAsQXJyYXkuaXNBcnJheShEKT9ELm1hcChjLmhvdGtleUhhc2hUb0FyaWFLZXlzaG9ydGN1dHMpLmpvaW4oIiAiKTooMCxjLmhvdGtleUhhc2hUb0FyaWFLZXlzaG9ydGN1dHMpKEQpKTp2b2lkIDAsImFyaWEtZXhwYW5kZWQiOmIsImFyaWEtaGFzcG9wdXAiOmgsImFyaWEtY29udHJvbHMiOkMsImFyaWEtY2hlY2tlZCI6RSwiYXJpYS1zZWxlY3RlZCI6diwiYXJpYS1kaXNhYmxlZCI6TiwiYXJpYS1sYWJlbCI6ZywiYXJpYS1sZXZlbCI6eCxjbGFzc05hbWU6aSgpKG0oKS5idXR0b24sUCYmbSgpLnNlbGVjdGVkKSx0YWJJbmRleDpULHJlZjpSLG9uS2V5RG93bjpOP3ZvaWQgMDpBLG9uQ2xpY2s6Tj92b2lkIDA6TCxpZDphLCJkYXRhLXFhLWlkIjp5LC4uLkl9O3ZhciBEO3JldHVybiByLmNyZWF0ZUVsZW1lbnQoci5GcmFnbWVudCxudWxsLCFsJiZyLmNyZWF0ZUVsZW1lbnQoImRpdiIsey4uLmt9LCIgIixuLCIgIiksbCYmci5jcmVhdGVFbGVtZW50KCJhIix7aHJlZjpsLHRhcmdldDpmLHJlbDpfLC4uLmt9LG4pKX12YXIgRT1uKDMzMjY4Nyksdj1uKDQ0MDkyNiksaD1uLm4odik7ZnVuY3Rpb24gQyhlKXtjb25zdHtob3RrZXk6dH09ZTtyZXR1cm4gci5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6aCgpLmhvdGtleX0sKG49dCxBcnJheS5pc0FycmF5KG4pP24ubWFwKGMuaHVtYW5SZWFkYWJsZUhhc2gpLmpvaW4oIiwgIik6KDAsYy5odW1hblJlYWRhYmxlSGFzaCkobikpKTt2YXIgbn12YXIgYj1uKDIzMjA1NCksZz1uLm4oYik7ZnVuY3Rpb24geChlKXtjb25zdHtyaWdodFNsb3Q6dCxob3RrZXk6bixzZWxlY3RlZDpvfT1lO3JldHVybiByLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpnKCkucmlnaHR9LHIuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOmcoKS5jaGlsZH0sci5jcmVhdGVFbGVtZW50KEUuSWNvbkJ1dHRvblZhcmlhbnRDb250ZXh0UHJvdmlkZXIse3ZhcmlhbnQ6bz8icHJpbWFyeS1zcGVjaWFsIjoicHJpbWFyeSJ9LG4mJnIuY3JlYXRlRWxlbWVudChDLHtob3RrZXk6bn0pLHQpKSl9dmFyIE89big0NDM2MTgpLE49bi5uKE8pO2Z1bmN0aW9uIHcoZSl7Y29uc3R7ZWxsaXBzaXM6dCx0ZXh0Om4sY2xhc3NOYW1lOm99PWU7cmV0dXJuIG4/ci5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6aSgpKG8sInN0cmluZyI9PXR5cGVvZiBuJiZ0JiZOKCkuZWxsaXBzaXMsInN0cmluZyIhPXR5cGVvZiBuJiZOKCkud2l0aEdhcHMsdCYmImFwcGx5LW92ZXJmbG93LXRvb2x0aXAiKX0sbik6bnVsbH12YXIgUD1uKDk0ODM5MCksTD1uLm4oUCk7ZnVuY3Rpb24gVChlKXtjb25zdHtlbGxpcHNpczp0PSEwLHRpdGxlOm4sZGVzY3JpcHRpb246byxoYXNFbmRTbG90OmF9PWU7cmV0dXJuIHIuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOmkoKShMKCkubWlkZGxlLG4mJkwoKS5oYXNUaXRsZSxvJiZMKCkuaGFzRGVzY3JpcHRpb24sIWEmJkwoKS5oYXNOb0VuZFNsb3QpfSxyLmNyZWF0ZUVsZW1lbnQodyx7a2V5OiJ0aXRsZSIsY2xhc3NOYW1lOkwoKS50aXRsZSx0ZXh0Om4sZWxsaXBzaXM6dH0pLHIuY3JlYXRlRWxlbWVudCh3LHtrZXk6ImRlc2NyaXB0aW9uIixjbGFzc05hbWU6TCgpLmRlc2NyaXB0aW9uLHRleHQ6byxlbGxpcHNpczp0fSkpfXZhciBfPW4oMjEyNDg2KSx5PW4ubihfKTtmdW5jdGlvbiBTKGUpe2NvbnN0e2xlZnRTbG90OnQscmlnaHRTbG90Om4saG90a2V5Om8sc2VsZWN0ZWQ6aSxlbGxpcHNpczphLHRpdGxlOnMsZGVzY3JpcHRpb246bH09ZSxjPXZvaWQgMCE9PXQmJnIuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOnkoKS5sZWZ0LHN0eWxlOnsiLS11aS1saWItcHJpdmF0ZS1saXN0SXRlbS1sZWZ0U2xvdEl0ZW1zTnVtYmVyIjpBcnJheS5pc0FycmF5KHQpP3QubGVuZ3RoOjF9fSx0KSx1PW58fG8/ci5jcmVhdGVFbGVtZW50KHgse3JpZ2h0U2xvdDpuLGhvdGtleTpvLHNlbGVjdGVkOml9KTpudWxsLGQ9ci5jcmVhdGVFbGVtZW50KFQse2VsbGlwc2lzOmEsdGl0bGU6cyxkZXNjcmlwdGlvbjpsLGhhc0VuZFNsb3Q6ISF1fSkKO3JldHVybiByLmNyZWF0ZUVsZW1lbnQoci5GcmFnbWVudCxudWxsLHIuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOnkoKS5idXR0b25Db250ZW50fSxjLGQsdSkpfXZhciBJLFIsQT1uKDc0MTQwNSk7ZnVuY3Rpb24gayhlKXtjb25zdHt0aXRsZTp0LGRlc2NyaXB0aW9uOm4sbGlzdEl0ZW1SZWY6byxsaXN0SXRlbUJ1dHRvblJlZjppLGlzT3BlbjphLHNlbGVjdGVkOnMsZGlzYWJsZWQ6YyxvbkNsaWNrOnUsaHJlZjpmLGxlZnRTbG90Om0scmlnaHRTbG90OkUsaG90a2V5OnYsaW50ZW50Omgsb25Nb3VzZUVudGVyOkMsb25LZXlEb3duTGlzdEl0ZW1CdXR0b246YixsaXN0SXRlbUJ1dHRvbklkOmcsYXJpYUNoZWNrZWQ6eCxhcmlhU2VsZWN0ZWQ6TyxhcmlhSGFzcG9wdXA6TixhcmlhQ29udHJvbHM6dyxhcmlhRXhwYW5kZWQ6UCxhcmlhQnVzeTpMLGFyaWFMYWJlbDpULGFyaWFMZXZlbDpfLHJvbGU6eSxzaXplOkksZWxsaXBzaXM6Uix0YXJnZXQ6ayxvdXRzaWRlT2ZCdXR0b25TbG90OkQsdGFiSW5kZXg6RixyZWw6VixkYXRhUWFJZDpNLC4uLld9PWUsSD0oMCxkLmZpbHRlckNoZWNrZWREYXRhUHJvcHMpKFcpO3JldHVybiByLmNyZWF0ZUVsZW1lbnQoQS5MaXN0SXRlbUhhc0Rlc2NyaXB0aW9uQ29udGV4dC5Qcm92aWRlcix7dmFsdWU6ISFufSxyLmNyZWF0ZUVsZW1lbnQobCx7c2l6ZTpJLHNlbGVjdGVkOnMsaXNPcGVuOmEsZGlzYWJsZWQ6YyxsaXN0SXRlbVJlZjpvLG9uTW91c2VFbnRlcjpDLGFyaWFCdXN5OkwsaW50ZW50Omh9LHIuY3JlYXRlRWxlbWVudChwLHtsaXN0SXRlbUJ1dHRvblJlZjppLGxpc3RJdGVtQnV0dG9uSWQ6ZyxvbktleURvd25MaXN0SXRlbUJ1dHRvbjpiLGhyZWY6Zix0YXJnZXQ6ayxob3RrZXk6dixhcmlhQ2hlY2tlZDp4LGFyaWFTZWxlY3RlZDpPLGFyaWFIYXNwb3B1cDpOLGFyaWFDb250cm9sczp3LGFyaWFFeHBhbmRlZDpQLGFyaWFMYWJlbDpULGFyaWFMZXZlbDpfLHJvbGU6eSxkaXNhYmxlZDpjLGlzT3BlbjphLHNlbGVjdGVkOnMsb25DbGljazp1LGRhdGFRYUlkOk0sdGFiSW5kZXg6RixyZWw6ViwuLi5IfSxyLmNyZWF0ZUVsZW1lbnQoUyx7bGVmdFNsb3Q6bSxyaWdodFNsb3Q6RSxob3RrZXk6dixzZWxlY3RlZDpzLGVsbGlwc2lzOlIsdGl0bGU6dCxkZXNjcmlwdGlvbjpufSkpLEQpKX0hZnVuY3Rpb24oZSl7ZS5NZWRpdW09Im1lZGl1bSIsZS5MYXJnZT0ibGFyZ2UifShJfHwoST17fSkpLGZ1bmN0aW9uKGUpe2UuTmV1dHJhbD0ibmV1dHJhbCIsZS5EYW5nZXI9ImRhbmdlciJ9KFJ8fChSPXt9KSl9LDk4ODA2OChlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtEQVRBX0lTX0NPTlRFWFRfQUNUSU9OOigpPT5pLERBVEFfSVNfUE9QT1ZFUl9JVEVNX0JVVFRPTjooKT0+byxEQVRBX05FU1RFRF9QT1BPVkVSX09QRU46KCk9PnJ9KTtjb25zdCByPSJkYXRhLW5lc3RlZC1wb3BvdmVyLW9wZW4iLG89ImRhdGEtaXMtcG9wb3Zlci1pdGVtLWJ1dHRvbiIsaT0iZGF0YS1pcy1wb3BvdmVyLWNvbnRleHQtYWN0aW9uIn0sODczMDkwKGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse0FMV0FZU19EUk9QRE9XTl9QT1BPVkVSX0JSRUFLUE9JTlQ6KCk9Pm8sREVGQVVMVF9QT1BPVkVSX0JSRUFLUE9JTlQ6KCk9Pml9KTt2YXIgcj1uKDgwOTQzNik7Y29uc3Qgbz0ibm90IGFsbCIsaT1yWyJtZWRpYS1zaG93LWRyYXdlciJdfSw1MjA0ODYoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7UG9wb3ZlckNvbnRlbnRWZXJ0aWNhbDooKT0+dX0pO3ZhciByPW4oNzc5NDc0KSxvPW4oOTE0NDg3KSxpPW4ubihvKSxhPW4oNDQwMDk2KSxzPW4ubihhKTt2YXIgbD1uKDYyNzAyMiksYz1uLm4obCk7ZnVuY3Rpb24gdShlKXtjb25zdHtjaGlsZHJlbjp0LGZpeGVkSGVhZGVyOm4sZml4ZWRGb290ZXI6byxvblNjcm9sbDphLHNjcm9sbFJlZjpsLGRhdGFRYUlkOnV9PWUse3Njcm9sbENvbXBlbnNhdGlvbjpkLHNjcm9sbFBhZGRpbmdDb250YWluZXI6Zn09ZnVuY3Rpb24oKXtjb25zdFtlLHRdPSgwLHIudXNlU3RhdGUpKHZvaWQgMCksbj0oMCxyLnVzZUNhbGxiYWNrKSgoZT0+e2UmJnQoKHQ9PnR8fGUub2Zmc2V0V2lkdGgtZS5jbGllbnRXaWR0aCkpfSksW10pO3JldHVybntzY3JvbGxDb21wZW5zYXRpb246dm9pZCAwIT09ZT8tZSsicHgiOnZvaWQgMCxzY3JvbGxQYWRkaW5nQ29udGFpbmVyOnIuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOnMoKS5zY3JvbGxDb250YWluZXIscmVmOm59KX19KCk7cmV0dXJuIHIuY3JlYXRlRWxlbWVudChyLkZyYWdtZW50LG51bGwsci5jcmVhdGVFbGVtZW50KCJkaXYiLHsiZGF0YS1xYS1pZCI6dSxjbGFzc05hbWU6YygpLmZsZXh9LHIuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOmkoKShjKCkuZml4ZWRIZWFkZXIsbiYmYygpLmZpeGVkSGVhZGVyQ29udGVudCl9LG4pLHIuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOmkoKShjKCkubWFpblNjcm9sbFdyYXBwZXIsdm9pZCAwPT09ZCYmYygpLm5vU2Nyb2xsKSxvblNjcm9sbDphLHJlZjpsLHN0eWxlOnsiLS11aS1saWItcHJpdmF0ZS1wb3BvdmVyQ29udGVudFZlcnRpY2FsLXNjcm9sbC1jb21wZW5zYXRpb24iOmR9fSxyLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTppKCkoYygpLm1haW4sdCYmYygpLm1haW5Db250ZW50KX0sdCkpLHIuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOmkoKShjKCkuZml4ZWRGb290ZXIsbyYmYygpLmZpeGVkRm9vdGVyQ29udGVudCl9LG8pKSxmKX19LDk3MjczNChlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtQb3BvdmVySXRlbTooKT0+bH0pO3ZhciByLG8saT1uKDc3OTQ3NCksYT1uKDYyODgyNSkscz1uKDk4ODA2OCk7ZnVuY3Rpb24gbChlKXsKY29uc3R7dGl0bGU6dCxkZXNjcmlwdGlvbjpuLHBvcG92ZXJJdGVtUmVmOnIscG9wb3Zlckl0ZW1CdXR0b25SZWY6byxpc09wZW46bCxzZWxlY3RlZDpjLGRpc2FibGVkOnUsb25DbGljazpkLGhyZWY6ZixsZWZ0U2xvdDptLHJpZ2h0U2xvdDpwLGhvdGtleTpFLGludGVudDp2LG9uTW91c2VFbnRlcjpoLG9uS2V5RG93blBvcG92ZXJJdGVtQnV0dG9uOkMscG9wb3Zlckl0ZW1CdXR0b25JZDpiLGFyaWFDaGVja2VkOmcsYXJpYVNlbGVjdGVkOngsYXJpYUhhc3BvcHVwOk8sYXJpYUNvbnRyb2xzOk4sYXJpYUV4cGFuZGVkOncsYXJpYUJ1c3k6UCxhcmlhTGFiZWw6TCxyb2xlOlQsc2l6ZTpfLGVsbGlwc2lzOnksdGFyZ2V0OlMsb3V0c2lkZU9mQnV0dG9uU2xvdDpJLHRhYkluZGV4OlIscmVsOkEsZGF0YVFhSWQ6a309ZTtyZXR1cm4gaS5jcmVhdGVFbGVtZW50KGEuTGlzdEl0ZW0se3RpdGxlOnQsZGVzY3JpcHRpb246bixsaXN0SXRlbVJlZjpyLGxpc3RJdGVtQnV0dG9uUmVmOm8saXNPcGVuOmwsc2VsZWN0ZWQ6YyxkaXNhYmxlZDp1LG9uQ2xpY2s6ZCxocmVmOmYsbGVmdFNsb3Q6bSxyaWdodFNsb3Q6cCxob3RrZXk6RSxpbnRlbnQ6dixvbk1vdXNlRW50ZXI6aCxvbktleURvd25MaXN0SXRlbUJ1dHRvbjpDLGxpc3RJdGVtQnV0dG9uSWQ6YixhcmlhQ2hlY2tlZDpnLGFyaWFTZWxlY3RlZDp4LGFyaWFIYXNwb3B1cDpPLGFyaWFDb250cm9sczpOLGFyaWFFeHBhbmRlZDp3LGFyaWFCdXN5OlAsYXJpYUxhYmVsOkwscm9sZTpULHNpemU6XyxlbGxpcHNpczp5LHRhcmdldDpTLG91dHNpZGVPZkJ1dHRvblNsb3Q6SSx0YWJJbmRleDpSLHJlbDpBLGRhdGFRYUlkOmssW3MuREFUQV9JU19QT1BPVkVSX0lURU1fQlVUVE9OXToidHJ1ZSJ9KX0hZnVuY3Rpb24oZSl7ZS5NZWRpdW09Im1lZGl1bSIsZS5MYXJnZT0ibGFyZ2UifShyfHwocj17fSkpLGZ1bmN0aW9uKGUpe2UuTmV1dHJhbD0ibmV1dHJhbCIsZS5EYW5nZXI9ImRhbmdlciJ9KG98fChvPXt9KSl9LDIwODA4MChlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtQb3BvdmVyS2V5Ym9hcmROYXZpZ2F0b3I6KCk9PlB9KTt2YXIgcj1uKDc3OTQ3NCksbz1uKDc4Nzg5NSksaT1uKDIzNjQ1NCksYT1uKDcxODc3Mykscz1uKDU4NzE2OCksbD1uKDIzNTcyNCksYz1uKDk4ODA2OCksdT1uKDgyMzEyNCksZD1uKDI1MDUxOCk7Y29uc3QgZj0oZSx0KT0+e2NvbnN0IG49ZSh0LHtwcmV2ZW50U2Nyb2xsOiEwfSk7biYmKDAsdS5zY3JvbGxQb3BvdmVySXRlbUludG9WaWV3KShuKX07ZnVuY3Rpb24gbShlLHQ9MCl7Y29uc3R7Zm9jdXNQcmV2TG9vcDpuLGZvY3VzTmV4dExvb3A6byxmb2N1c0ZpcnN0OmksZm9jdXNMYXN0OmF9PSgwLHIudXNlTWVtbykoKCgpPT4oMCxkLmdldFNlbGVjdG9yS2V5Ym9hcmROYXZpZ2F0aW9uKShgWyR7Yy5EQVRBX0lTX1BPUE9WRVJfSVRFTV9CVVRUT059XWApKSxbXSk7Y29uc3QgdT0oMCxyLnVzZUNhbGxiYWNrKSgodD0+e2UmJnQmJmkodCl9KSxbaSxlXSksbT0oMCxyLnVzZU1lbW8pKCgoKT0+KDAscy5kZWZhdWx0KShmLHQse2xlYWRpbmc6ITEsdHJhaWxpbmc6ITB9KSksW3RdKTtyZXR1cm57b25LZXlEb3duOmZ1bmN0aW9uKGUpe2NvbnN0IHI9KDAsbC5oYXNoRnJvbUV2ZW50KShlKSxzPWUuY3VycmVudFRhcmdldCxjPWZ1bmN0aW9uKGUpe3N3aXRjaChlKXtjYXNlIDM4OnJldHVybiBuO2Nhc2UgNDA6cmV0dXJuIG87Y2FzZSAzNjpyZXR1cm4gaTtjYXNlIDM1OnJldHVybiBhfX0ocik7YyYmKGUuc3RvcFByb3BhZ2F0aW9uKCksZS5wcmV2ZW50RGVmYXVsdCgpLHQ/bShjLHMpOmYoYyxzKSl9LHJlZlRvQ29udGVudFdyYXBwZXJFbGVtZW50OnV9fXZhciBwPW4oOTE0NDg3KSxFPW4ubihwKSx2PW4oMzE5NjkpLGg9bigyMzc2MTYpLEM9big1MjA0ODYpLGI9big1MTgyNzIpLGc9bi5uKGIpO2Z1bmN0aW9uIHgoZSl7Y29uc3QgdD0oMCxyLnVzZVJlZikobnVsbCkse3dpZHRoOm49aS5QT1BPVkVSX0RFRkFVTFRfV0lEVEgsaGVpZ2h0Om89aS5QT1BPVkVSX0RFRkFVTFRfSEVJR0hULHBsYWNlbWVudFJ1bGVzOmE9aS5QT1BPVkVSX0RFRkFVTFRfUExBQ0VNRU5UX1JVTEVTLG9uQ2xvc2U6cyxpc09wZW46bCxhbmNob3JQb3NpdGlvbmVyQ2FyZEFwcGVhcmFuY2VDbGFzc25hbWU6YyxjaGlsZHJlbjp1LHJvbGU6ZCxhcmlhTGFiZWxsZWRieTpmLGlkT2ZDb250ZW50V3JhcHBlckVsZW1lbnQ6bSxhbmNob3JlZDpwLGFyaWFNdWx0aXNlbGVjdGFibGU6Yixtb2JpbGVQb3NpdGlvbmVyU2lkZTp4LG1vYmlsZVBvc2l0aW9uZXJDYXJkQXBwZWFyYW5jZUNsYXNzbmFtZTpPLG1vYmlsZVBvc2l0aW9uZXJTdHJldGNoOk4scmVmT2JqZWN0VG9Db250ZW50V3JhcHBlckVsZW1lbnQ6dz10LGlzUnRsOlAscmVwb3NpdGlvblRyaWdnZXJzOkwscmVwb3NpdGlvbkRlcGVuZGVuY2llczpULGZpeGVkSGVhZGVyOl8sZml4ZWRGb290ZXI6eSxvblNjcm9sbDpTLHNjcm9sbFJlZjpJLG9uS2V5RG93bjpSLGNvbnRlbnRSZXNpemU6QSxtb2JpbGVCcmVha3BvaW50OmssZGF0YVFhSWQ6RCxjb250ZW50V3JhcHBlckNsYXNzbmFtZTpGfT1lLFY9KDAsci51c2VJZCkoKSxNPW0/P1YsVz0oMCx2LnVzZU1lcmdlZFJlZnMpKFt3XSksSD0oMCxyLnVzZVJlZikobnVsbCksQj0oMCx2LnVzZU1lcmdlZFJlZnMpKFtJLEhdKSxLPXIuY3JlYXRlRWxlbWVudCgiZGl2Iix7b25LZXlEb3duOlIsY2xhc3NOYW1lOkUoKShGLGcoKS5ldmVudFdyYXBwZXIpfSxyLmNyZWF0ZUVsZW1lbnQoQy5Qb3BvdmVyQ29udGVudFZlcnRpY2FsLHtmaXhlZEhlYWRlcjpfLGZpeGVkRm9vdGVyOnksb25TY3JvbGw6UyxzY3JvbGxSZWY6Qn0sdSkpO3JldHVybiByLmNyZWF0ZUVsZW1lbnQoaC5Qb3BvdmVyLHthbmNob3JlZDpwLGlzUnRsOlAsb25DbG9zZTpzLGlzT3BlbjpsLGFuY2hvclBvc2l0aW9uZXJDYXJkQXBwZWFyYW5jZUNsYXNzbmFtZTpjLHJvbGU6ZCxhcmlhTGFiZWxsZWRieTpmLGFyaWFNdWx0aXNlbGVjdGFibGU6YixpZE9mQ29udGVudFdyYXBwZXJFbGVtZW50Ok0scmVmVG9Db250ZW50V3JhcHBlckVsZW1lbnQ6VyxwbGFjZW1lbnRSdWxlczphLHdpZHRoOm4saGVpZ2h0Om8sCmNoaWxkcmVuOkssbW9iaWxlUG9zaXRpb25lclNpZGU6eCxtb2JpbGVQb3NpdGlvbmVyQ2FyZEFwcGVhcmFuY2VDbGFzc25hbWU6Tyxtb2JpbGVQb3NpdGlvbmVyU3RyZXRjaDpOLHJlcG9zaXRpb25UcmlnZ2VyczpMLHJlcG9zaXRpb25EZXBlbmRlbmNpZXM6VCxtb2JpbGVCcmVha3BvaW50OmssZGF0YVFhSWQ6RCxjb250ZW50UmVzaXplOkEsc2Nyb2xsQ29udGFpbmVyOkh9KX12YXIgTz1uKDk5OTUxKSxOPW4oNDUyNDY0KSx3PW4ubihOKTtmdW5jdGlvbiBQKGUpe2NvbnN0IHQ9KDAsci51c2VSZWYpKG51bGwpLHt3aWR0aDpuPWkuUE9QT1ZFUl9ERUZBVUxUX1dJRFRILGhlaWdodDpzPWkuUE9QT1ZFUl9ERUZBVUxUX0hFSUdIVCxwbGFjZW1lbnRSdWxlczpsPWkuUE9QT1ZFUl9ERUZBVUxUX1BMQUNFTUVOVF9SVUxFUyxvbkNsb3NlOmMsaXNPcGVuOnUsY2xvc2VPbkNsaWNrQXdheTpkPWkuUE9QT1ZFUl9ERUZBVUxUX0NMT1NFX09OX0NMSUNLX0FXQVksY2xvc2VPbkVzY2FwZTpmPWkuUE9QT1ZFUl9ERUZBVUxUX0NMT1NFX09OX0VTQ0FQRSxjbG9zZU9uU2Nyb2xsT3V0c2lkZTpwPWkuUE9QT1ZFUl9ERUZBVUxUX0NMT1NFX09OX1NDUk9MTF9PVVRTSURFLGNsb3NlT25SZXNpemVXaW5kb3c6RT1pLlBPUE9WRVJfREVGQVVMVF9DTE9TRV9PTl9SRVNJWkVfV0lORE9XLGNsb3NlT25UYWI6aD1pLlBPUE9WRVJfREVGQVVMVF9DTE9TRV9PTl9UQUIsYW5jaG9yUG9zaXRpb25lckNhcmRBcHBlYXJhbmNlQ2xhc3NuYW1lOkMsY2hpbGRyZW46Yixyb2xlOmcsYXJpYUxhYmVsbGVkYnk6TixpZE9mQ29udGVudFdyYXBwZXJFbGVtZW50OlAsYW5jaG9yZWQ6TCxhcmlhTXVsdGlzZWxlY3RhYmxlOlQsbW9iaWxlUG9zaXRpb25lclNpZGU6Xyxtb2JpbGVQb3NpdGlvbmVyQ2FyZEFwcGVhcmFuY2VDbGFzc25hbWU6eSxyZWZUb0NvbnRlbnRXcmFwcGVyRWxlbWVudDpTPXQsaXNSdGw6SSxmb2N1c0ZpcnN0SXRlbU9uT3BlbjpSPSEwLHJlcG9zaXRpb25UcmlnZ2VyczpBPVtdLHJlcG9zaXRpb25EZXBlbmRlbmNpZXM6ayxmaXhlZEhlYWRlcjpELGZpeGVkRm9vdGVyOkYsb25TY3JvbGw6VixzY3JvbGxSZWY6TSxtb2JpbGVCcmVha3BvaW50OlcsY29udGVudFJlc2l6ZTpIPTE0LG1vYmlsZVBvc2l0aW9uZXJTdHJldGNoOkIsa2V5RG93blRocm90dGxlTXM6SyxkYXRhUWFJZDpVfT1lLHo9KDAsci51c2VDb250ZXh0KShPLkFwcENvbnRleHQpLmlzUnRsLEc9ST8/eixRPSgwLG8udXNlRnVuY3Rpb25hbFJlZk9iamVjdCkoUykscT0oMCxyLnVzZUlkKSgpLFo9UD8/cSx7cmVwb3NpdGlvblRyaWdnZXJzOmoscmVmVG9Db250ZW50V3JhcHBlckVsZW1lbnQ6WX09KDAsYS51c2VQb3BvdmVyQ2xvc2VCZWhhdmlvcikoe29uQ2xvc2U6Yyxpc09wZW46dSxjbG9zZU9uQ2xpY2tBd2F5OmQsY2xvc2VPbkVzY2FwZTpmLGNsb3NlT25SZXNpemVXaW5kb3c6RSxjbG9zZU9uU2Nyb2xsT3V0c2lkZTpwLGNsb3NlT25UYWI6aCxyZWZUb0NvbnRlbnRXcmFwcGVyRWxlbWVudDpRLGV4Y2x1ZGVBcmVhOkwuYXR9KSx7b25LZXlEb3duOlgscmVmVG9Db250ZW50V3JhcHBlckVsZW1lbnQ6Sn09bShSLEspLCQ9KDAsdi51c2VNZXJnZWRSZWZzKShbSixZXSk7cmV0dXJuIHIuY3JlYXRlRWxlbWVudCh4LHthbmNob3JlZDpMLGlzUnRsOkcsb25DbG9zZTpjLGlzT3Blbjp1LGFuY2hvclBvc2l0aW9uZXJDYXJkQXBwZWFyYW5jZUNsYXNzbmFtZTpDLHJvbGU6ZyxhcmlhTGFiZWxsZWRieTpOLGFyaWFNdWx0aXNlbGVjdGFibGU6VCxpZE9mQ29udGVudFdyYXBwZXJFbGVtZW50OloscmVmT2JqZWN0VG9Db250ZW50V3JhcHBlckVsZW1lbnQ6JCxwbGFjZW1lbnRSdWxlczpsLHdpZHRoOm4saGVpZ2h0OnMsY2hpbGRyZW46Yixtb2JpbGVQb3NpdGlvbmVyU2lkZTpfLG1vYmlsZVBvc2l0aW9uZXJDYXJkQXBwZWFyYW5jZUNsYXNzbmFtZTp5LHJlcG9zaXRpb25UcmlnZ2VyczpbLi4uaiwuLi5BXSxyZXBvc2l0aW9uRGVwZW5kZW5jaWVzOmssZml4ZWRGb290ZXI6RixmaXhlZEhlYWRlcjpELG9uU2Nyb2xsOlYsc2Nyb2xsUmVmOk0sb25LZXlEb3duOlgsY29udGVudFJlc2l6ZTpILG1vYmlsZVBvc2l0aW9uZXJTdHJldGNoOkIsbW9iaWxlQnJlYWtwb2ludDpXLGRhdGFRYUlkOlUsY29udGVudFdyYXBwZXJDbGFzc25hbWU6dygpLnBrbn0pfX0sODIzMTI0KGUsdCxuKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gcihlLHQpe2Uuc2Nyb2xsSW50b1ZpZXcoe2JlaGF2aW9yOnQ/InNtb290aCI6dm9pZCAwLGJsb2NrOiJjZW50ZXIifSl9bi5kKHQse3Njcm9sbFBvcG92ZXJJdGVtSW50b1ZpZXc6KCk9PnJ9KX0sNjQwNTEzKGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse1BMQUNFTUVOVF9CT1RUT01fQUxJR05fQ0VOVEVSOigpPT5pLFBMQUNFTUVOVF9CT1RUT01fQUxJR05fTEVGVDooKT0+cixQTEFDRU1FTlRfQk9UVE9NX0FMSUdOX1JJR0hUOigpPT5vLFBMQUNFTUVOVF9MRUZUX0FMSUdOX0JPVFRPTTooKT0+bSxQTEFDRU1FTlRfTEVGVF9BTElHTl9DRU5URVI6KCk9PnAsUExBQ0VNRU5UX0xFRlRfQUxJR05fVE9QOigpPT5mLFBMQUNFTUVOVF9SSUdIVF9BTElHTl9CT1RUT006KCk9PnUsUExBQ0VNRU5UX1JJR0hUX0FMSUdOX0NFTlRFUjooKT0+ZCxQTEFDRU1FTlRfUklHSFRfQUxJR05fVE9QOigpPT5jLFBMQUNFTUVOVF9UT1BfQUxJR05fQ0VOVEVSOigpPT5sLFBMQUNFTUVOVF9UT1BfQUxJR05fTEVGVDooKT0+YSxQTEFDRU1FTlRfVE9QX0FMSUdOX1JJR0hUOigpPT5zfSk7Y29uc3Qgcj17bmFtZToiYm90dG9tLWxlZnQiLHJ0bE5hbWU6ImJvdHRvbS1yaWdodCIsYW5jaG9yUG9pbnQ6e3g6MCx5OjF9LGNvbnRlbnRQb2ludDp7eDowLHk6MH0sb3ZlcmZsb3dIb3Jpem9udGFsOiJzbGlkZSIsb3ZlcmZsb3dWZXJ0aWNhbDoiY3JvcFNsaWRlIn0sbz17bmFtZToiYm90dG9tLXJpZ2h0IixydGxOYW1lOiJib3R0b20tbGVmdCIsYW5jaG9yUG9pbnQ6e3g6MSx5OjF9LGNvbnRlbnRQb2ludDp7eDoxLHk6MH0sb3ZlcmZsb3dIb3Jpem9udGFsOiJzbGlkZSIsb3ZlcmZsb3dWZXJ0aWNhbDoiY3JvcFNsaWRlIn0saT17bmFtZToiYm90dG9tIixhbmNob3JQb2ludDp7eDouNSwKeToxfSxjb250ZW50UG9pbnQ6e3g6LjUseTowfSxvdmVyZmxvd0hvcml6b250YWw6InNsaWRlIixvdmVyZmxvd1ZlcnRpY2FsOiJjcm9wU2xpZGUifSxhPXtuYW1lOiJ0b3AtbGVmdCIscnRsTmFtZToidG9wLXJpZ2h0IixhbmNob3JQb2ludDp7eDowLHk6MH0sY29udGVudFBvaW50Ont4OjAseToxfSxvdmVyZmxvd0hvcml6b250YWw6InNsaWRlIixvdmVyZmxvd1ZlcnRpY2FsOiJjcm9wU2xpZGUifSxzPXtuYW1lOiJ0b3AtcmlnaHQiLHJ0bE5hbWU6InRvcC1sZWZ0IixhbmNob3JQb2ludDp7eDoxLHk6MH0sY29udGVudFBvaW50Ont4OjEseToxfSxvdmVyZmxvd0hvcml6b250YWw6InNsaWRlIixvdmVyZmxvd1ZlcnRpY2FsOiJjcm9wU2xpZGUifSxsPXtuYW1lOiJ0b3AiLGFuY2hvclBvaW50Ont4Oi41LHk6MH0sY29udGVudFBvaW50Ont4Oi41LHk6MX0sb3ZlcmZsb3dIb3Jpem9udGFsOiJzbGlkZSIsb3ZlcmZsb3dWZXJ0aWNhbDoiY3JvcFNsaWRlIn0sYz17bmFtZToicmlnaHQtdG9wIixydGxOYW1lOiJsZWZ0LXRvcCIsYW5jaG9yUG9pbnQ6e3g6MSx5OjB9LGNvbnRlbnRQb2ludDp7eDowLHk6MH0sb3ZlcmZsb3dIb3Jpem9udGFsOiJjcm9wU2xpZGUiLG92ZXJmbG93VmVydGljYWw6InNsaWRlIn0sdT17bmFtZToicmlnaHQtYm90dG9tIixydGxOYW1lOiJsZWZ0LWJvdHRvbSIsYW5jaG9yUG9pbnQ6e3g6MSx5OjF9LGNvbnRlbnRQb2ludDp7eDowLHk6MX0sb3ZlcmZsb3dIb3Jpem9udGFsOiJjcm9wU2xpZGUiLG92ZXJmbG93VmVydGljYWw6InNsaWRlIn0sZD17bmFtZToicmlnaHQiLHJ0bE5hbWU6ImxlZnQiLGFuY2hvclBvaW50Ont4OjEseTouNX0sY29udGVudFBvaW50Ont4OjAseTouNX0sb3ZlcmZsb3dIb3Jpem9udGFsOiJjcm9wU2xpZGUiLG92ZXJmbG93VmVydGljYWw6InNsaWRlIn0sZj17bmFtZToibGVmdC10b3AiLHJ0bE5hbWU6InJpZ2h0LXRvcCIsYW5jaG9yUG9pbnQ6e3g6MCx5OjB9LGNvbnRlbnRQb2ludDp7eDoxLHk6MH0sb3ZlcmZsb3dIb3Jpem9udGFsOiJjcm9wU2xpZGUiLG92ZXJmbG93VmVydGljYWw6InNsaWRlIn0sbT17bmFtZToibGVmdC1ib3R0b20iLHJ0bE5hbWU6InJpZ2h0LWJvdHRvbSIsYW5jaG9yUG9pbnQ6e3g6MCx5OjF9LGNvbnRlbnRQb2ludDp7eDoxLHk6MX0sb3ZlcmZsb3dIb3Jpem9udGFsOiJjcm9wU2xpZGUiLG92ZXJmbG93VmVydGljYWw6InNsaWRlIn0scD17bmFtZToibGVmdCIscnRsTmFtZToicmlnaHQiLGFuY2hvclBvaW50Ont4OjAseTouNX0sY29udGVudFBvaW50Ont4OjEseTouNX0sb3ZlcmZsb3dIb3Jpem9udGFsOiJjcm9wU2xpZGUiLG92ZXJmbG93VmVydGljYWw6InNsaWRlIn19LDQ3OTI5NyhlLHQsbil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHIoZSl7cmV0dXJuKHQsbik9Pih3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihlLHQsbiksKCk9Pnt3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihlLHQsbil9KX1uLmQodCx7d2luZG93RXZlbnQ6KCk9PnJ9KX0sNDQwNDQ2KGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse3VzZUNsb3NlUmVwb3NpdGlvbk9uU2Nyb2xsT3V0c2lkZTooKT0+Y30pO3ZhciByPW4oNzc5NDc0KSxvPW4oNzA2OTQzKSxpPW4oNDc5Mjk3KSxhPW4oMTU5MjU2KSxzPW4oODU0MzM4KTtjb25zdCBsPSgwLGkud2luZG93RXZlbnQpKCJzY3JvbGwiKTtmdW5jdGlvbiBjKGUsdCxuLGkpe2NvbnN0IGM9KDAsci51c2VNZW1vKSgoKCk9PigwLG8uY3JlYXRlU2lnbmFsKSgpKSxbXSksdT0oMCxyLnVzZUNhbGxiYWNrKSgoKCk9PntuKCExLCJjdXJyZW50TGV2ZWwiKX0pLFtuXSk7cmV0dXJuIGZ1bmN0aW9uKGUsdCxuKXsoMCxhLnVzZUNvbmRpdGlvbmFsRWZmZWN0KShlLCgoKT0+bCgoZT0+e2NvbnN0IHI9bi5jdXJyZW50O2lmKCFyKXJldHVybjtjb25zdCBvPWUudGFyZ2V0O28mJigoMCxzLmlzRWxlbWVudENvbnRhaW5zRWxlbWVudFRocm91Z2hQb3J0YWxzKShyLG8pfHwoMCxzLmlzRWxlbWVudENvbnRhaW5zRWxlbWVudFRocm91Z2hQb3J0YWxzKShvLHIpJiZ0KCkpfSksITApKSxbdCxuXSl9KGUsdD91OmMuZmlyZSxpKSxjfX0sNTc3ODMyKGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse2lzSW5FeGNsdWRlZEFyZWE6KCk9Pm99KTt2YXIgcj1uKDc3MTQ0Nyk7ZnVuY3Rpb24gbyhlLHQpe2lmKCF0KXJldHVybiExO2NvbnN0IG49ImN1cnJlbnQiaW4gdD90LmN1cnJlbnQ/LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOnQ7cmV0dXJuISFuJiYoMCxyLmlzSW5SZWN0KShlLG4pfX0sMzA2Mjg3KGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse3VzZVdpbmRvd1Jlc2l6ZVRyaWdnZXI6KCk9PnMsdXNlV2luZG93U2Nyb2xsVHJpZ2dlcjooKT0+bH0pO3ZhciByPW4oNzc5NDc0KSxvPW4oNzA2OTQzKSxpPW4oMTU5MjU2KTtmdW5jdGlvbiBhKGUsdCxuKXtjb25zdCBhPSgwLHIudXNlTWVtbykoKCgpPT4oMCxvLmNyZWF0ZVNpZ25hbCkoKSksW10pO3JldHVybigwLGkudXNlQ29uZGl0aW9uYWxFZmZlY3QpKGUsKCgpPT4od2luZG93LmFkZEV2ZW50TGlzdGVuZXIodCxhLmZpcmUsbiksKCk9Pnt3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcih0LGEuZmlyZSxuKX0pKSxbYV0pLGF9Y29uc3Qgcz0oZT0hMCk9PmEoZSwicmVzaXplIiwhMCksbD0oZT0hMCk9PmEoZSwic2Nyb2xsIiwhMCl9LDE1OTI1NihlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHt1c2VDb25kaXRpb25hbEVmZmVjdDooKT0+b30pO3ZhciByPW4oNzc5NDc0KTtmdW5jdGlvbiBvKGUsdCxuKXsoMCxyLnVzZUVmZmVjdCkoKCgpPT57aWYoZSlyZXR1cm4gdCgpfSksWy4uLm4sZV0pfX0sNzE4NzczKGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse3VzZVBvcG92ZXJDbG9zZUJlaGF2aW9yOigpPT5ofSk7dmFyIHIsbz1uKDc3OTQ3NCksaT1uKDMwNjI4NyksYT1uKDE1OTI1Nik7IWZ1bmN0aW9uKGUpe2VbZS5Ob25lPTBdPSJOb25lIixlW2UuSG9yaXpvbnRhbD0xXT0iSG9yaXpvbnRhbCIsZVtlLlZlcnRpY2FsPTJdPSJWZXJ0aWNhbCIsZVtlLkJvdGg9M109IkJvdGgifShyfHwocj17fSkpO3ZhciBzPW4oNDQwNDQ2KTtmdW5jdGlvbiBsKGUsdCxuKXtjb25zdCByPSgwLAppLnVzZVdpbmRvd1Jlc2l6ZVRyaWdnZXIpKCFuLmNsb3NlT25SZXNpemVXaW5kb3cmJmUpOyFmdW5jdGlvbihlLHQsbil7Y29uc3Qgcj0oMCxvLnVzZVJlZikoe2NsaWVudFdpZHRoOnZvaWQgMCxjbGllbnRIZWlnaHQ6dm9pZCAwfSksaT0oMCxvLnVzZU1lbW8pKCgoKT0+ZnVuY3Rpb24oZSl7Y29uc3QgdD1bXTtyZXR1cm4gMSZlJiZ0LnB1c2goImNsaWVudFdpZHRoIiksMiZlJiZ0LnB1c2goImNsaWVudEhlaWdodCIpLHR9KG4pKSxbbl0pOygwLGEudXNlQ29uZGl0aW9uYWxFZmZlY3QpKGUmJjAhPT1uLCgoKT0+e2NvbnN0IGU9KCk9PntpLmZvckVhY2goKGU9Pntjb25zdCBuPWRvY3VtZW50LmRvY3VtZW50RWxlbWVudFtlXTt2b2lkIDAhPT1yLmN1cnJlbnRbZV0/ci5jdXJyZW50W2VdIT09biYmKHQoITAsImN1cnJlbnRMZXZlbCIpLHIuY3VycmVudFtlXT1uKTpyLmN1cnJlbnRbZV09bn0pKX07cmV0dXJuIGUoKSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicmVzaXplIixlLCEwKSwoKT0+e3dpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJyZXNpemUiLGUsITApLHIuY3VycmVudD17Y2xpZW50V2lkdGg6dm9pZCAwLGNsaWVudEhlaWdodDp2b2lkIDB9fX0pLFt0LGldKX0oISFuLmNsb3NlT25SZXNpemVXaW5kb3cmJmUsdCwzKTtyZXR1cm5bciwoMCxzLnVzZUNsb3NlUmVwb3NpdGlvbk9uU2Nyb2xsT3V0c2lkZSkoZSwhIW4uY2xvc2VPblNjcm9sbE91dHNpZGUsdCxuLnJlZildfXZhciBjPW4oNzg3ODk1KSx1PW4oODU0MzM4KSxkPW4oNDc5Mjk3KSxmPW4oNTc3ODMyKSxtPW4oMjM2NDU0KTt2YXIgcD1uKDMxOTY5KSxFPW4oMjM1NzI0KTtjb25zdCB2PSgwLGQud2luZG93RXZlbnQpKCJrZXlkb3duIik7ZnVuY3Rpb24gaChlKXtjb25zdCB0PSgwLG8udXNlUmVmKShudWxsKSx7b25DbG9zZTpuLGlzT3BlbjpyLHJlZlRvQ29udGVudFdyYXBwZXJFbGVtZW50Omk9dCxjbG9zZU9uQ2xpY2tBd2F5OnM9bS5QT1BPVkVSX0RFRkFVTFRfQ0xPU0VfT05fQ0xJQ0tfQVdBWSxjbG9zZU9uRXNjYXBlOmg9bS5QT1BPVkVSX0RFRkFVTFRfQ0xPU0VfT05fRVNDQVBFLGNsb3NlT25TY3JvbGxPdXRzaWRlOkM9bS5QT1BPVkVSX0RFRkFVTFRfQ0xPU0VfT05fU0NST0xMX09VVFNJREUsY2xvc2VPblJlc2l6ZVdpbmRvdzpiPW0uUE9QT1ZFUl9ERUZBVUxUX0NMT1NFX09OX1JFU0laRV9XSU5ET1csY2xvc2VPblRhYjpnPW0uUE9QT1ZFUl9ERUZBVUxUX0NMT1NFX09OX1RBQixleGNsdWRlQXJlYTp4fT1lO2xldCBPPSgwLGMudXNlRnVuY3Rpb25hbFJlZk9iamVjdCkoaSk7Y29uc3QgTj1sKHIsbix7Y2xvc2VPblJlc2l6ZVdpbmRvdzpiLGNsb3NlT25TY3JvbGxPdXRzaWRlOkMscmVmOk99KTtyZXR1cm4gTz1mdW5jdGlvbihlLHQsbil7Y29uc3Qgcj0oMCxvLnVzZUNhbGxiYWNrKSgocj0+e2UmJnImJnIuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsKGU9PntpZigyNyE9PSgwLEUuaGFzaEZyb21FdmVudCkoZSkpcmV0dXJuO2NvbnN0IHI9bi5jdXJyZW50O2lmKCFyKXJldHVybjtjb25zdCBvPWUudGFyZ2V0O28gaW5zdGFuY2VvZiBIVE1MRWxlbWVudCYmci5jb250YWlucyhvKSYmKGUucHJldmVudERlZmF1bHQoKSxlLnN0b3BQcm9wYWdhdGlvbigpLHQoITAsImN1cnJlbnRMZXZlbCIpKX0pLHtjYXB0dXJlOiExfSl9KSxbZV0pO3JldHVybigwLGMudXNlRnVuY3Rpb25hbFJlZk9iamVjdCkoKDAscC51c2VNZXJnZWRSZWZzKShbbixyXSkpfShoJiZyLG4sTyksZnVuY3Rpb24oZSx0LG4peygwLGEudXNlQ29uZGl0aW9uYWxFZmZlY3QpKCEhZSwoKCk9PnYoKGU9Pntjb25zdCBuPSgwLEUuaGFzaEZyb21FdmVudCkoZSk7OSE9PW4mJm4hPT05K0UuTW9kaWZpZXJzLlNoaWZ0fHx0KCEwLCJjdXJyZW50TGV2ZWwiKX0pLCEwKSksW3Qsbl0pfShnJiZyLG4sTyksZnVuY3Rpb24oZSx0LG4scixvKXtjb25zdCBpPSJib29sZWFuIj09dHlwZW9mIHI/bS5QT1BPVkVSX0RFRkFVTFRfQ0xPU0VfT05fQ0xJQ0tfQVdBWTpyOygwLGEudXNlQ29uZGl0aW9uYWxFZmZlY3QpKCEhZSwoKCk9PigwLGQud2luZG93RXZlbnQpKGkpKChlPT57Y29uc3Qgcj17eDplLmNsaWVudFgseTplLmNsaWVudFl9LGk9bi5jdXJyZW50OygwLGYuaXNJbkV4Y2x1ZGVkQXJlYSkocixvKXx8aSYmKDAsdS5pc1hZSW5zaWRlRWxlbWVudFRocm91Z2hQb3J0YWxzKShpLHIueCxyLnkpfHx0KCExLCJjdXJyZW50TGV2ZWwiKX0pKSksW3QsbyxuLGldKX0ocyYmcixuLE8scyx4KSx7cmVwb3NpdGlvblRyaWdnZXJzOk4scmVmVG9Db250ZW50V3JhcHBlckVsZW1lbnQ6T319fSwxMzY0KGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse3NrZWxldG9uVGhlbWU6KCk9Pm99KTt2YXIgcj1uKDk3NTI4NSk7Y29uc3Qgbz1uLm4ocikoKX0sMzQ1MTE2KGUsdCxuKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gcihlKXtyZXR1cm4gaShlLGEpfWZ1bmN0aW9uIG8oZSl7cmV0dXJuIGkoZSxzKX1mdW5jdGlvbiBpKGUsdCl7Y29uc3Qgbj1PYmplY3QuZW50cmllcyhlKS5maWx0ZXIodCkscj17fTtmb3IoY29uc3RbZSx0XW9mIG4pcltlXT10O3JldHVybiByfWZ1bmN0aW9uIGEoZSl7Y29uc3RbdCxuXT1lO3JldHVybiAwPT09dC5pbmRleE9mKCJkYXRhLSIpJiYic3RyaW5nIj09dHlwZW9mIG59ZnVuY3Rpb24gcyhlKXtyZXR1cm4gMD09PWVbMF0uaW5kZXhPZigiYXJpYS0iKX1mdW5jdGlvbiBsKGUsdCl7Y29uc3Qgbj1yKGUpO3JldHVybiB0JiYoblsiZGF0YS1xYS1pZCJdPXQpLG59bi5kKHQse2ZpbHRlckFyaWFQcm9wczooKT0+byxmaWx0ZXJDaGVja2VkRGF0YVByb3BzOigpPT5sLGZpbHRlckRhdGFQcm9wczooKT0+cixmaWx0ZXJQcm9wczooKT0+aSxpc0FyaWFBdHRyaWJ1dGU6KCk9PnMsaXNEYXRhQXR0cmlidXRlOigpPT5hfSl9LDU2Mjk4KGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse2lnbm9yZU9uU1NSOigpPT5pfSk7dmFyIHI9big3Nzk0NzQpLG89big1Mjk0MTEpO2Z1bmN0aW9uIGkoZSl7cmV0dXJuIHQ9PigwLG8udXNlSXNOb25GaXJzdFJlbmRlcikoKT9yLmNyZWF0ZUVsZW1lbnQoZSx7Li4udH0pOm51bGx9fSwyODQ2OTAoZSx0LG4peyJ1c2Ugc3RyaWN0Igo7bi5kKHQse2dldExpbmVhcktleWJvYXJkTmF2aWdhdGlvbjooKT0+bH0pO3ZhciByPW4oMjUwNTE4KSxvPW4oMjM1NzI0KSxpPW4oMzgyMjQyKSxhPW4oNjgyMzgxKSxzPW4oMjk4NzI4KTtmdW5jdGlvbiBsKGUsdD17fSl7Y29uc3R7Zm9jdXNOZXh0Om4sZm9jdXNQcmV2OmwsZm9jdXNGaXJzdDpjLGZvY3VzTGFzdDp1fT0oMCxyLmdldFNlbGVjdG9yS2V5Ym9hcmROYXZpZ2F0aW9uKShlLHQuYWxsb3dOZXN0ZWRGb2N1c2FibGUpLGQ9ey4uLnQuaG9yaXpvbnRhbD97Mzk6biwzNzpsfTp7NDA6biwzODpsfSwuLi50LmhhbmRsZUhvbWVFbmQ/ezM2OmMsMzU6dX06e319O3JldHVybntvbkZvY3VzOmZ1bmN0aW9uKG4pe2NvbnN0IHI9bi5jdXJyZW50VGFyZ2V0O24udGFyZ2V0PT09ciYmZnVuY3Rpb24obil7Y29uc3Qgcj0oMCxpLmdldFNlbGVjdG9yVHJlZVdhbGtlcikobixlKS5uZXh0Tm9kZSgpO3ImJigwLGEuaXNIVE1MT3JTVkdFbGVtZW50KShyKSYmciE9PW4mJnIuZm9jdXModC5mb2N1c09wdGlvbnMpfShyKX0sb25LZXlEb3duOmZ1bmN0aW9uKGUpe2NvbnN0IG49KDAscy5mbGlwQXJyb3dzT25SdGwpKCgwLG8uaGFzaEZyb21FdmVudCkoZSksdC5pc1J0bCkscj1lLmN1cnJlbnRUYXJnZXQsaT1lLnRhcmdldDtpZighKGkgaW5zdGFuY2VvZiBOb2RlKSlyZXR1cm47aWYoIXIuY29udGFpbnMoaSkpcmV0dXJuO2NvbnN0IGE9ZFtuXTtpZihhKXtlLnByZXZlbnREZWZhdWx0KCk7Y29uc3Qgbj1hPy4ocix0LmZvY3VzT3B0aW9ucyk7biYmZS5zdG9wUHJvcGFnYXRpb24oKX19fX19LDI5ODcyOChlLHQsbil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHIoZSx0KXtpZighdClyZXR1cm4gZTtjb25zdCBuPTI1NSZlLHI9LTI1NiZlO3JldHVybiAzNz09PW4/MzkrcjozOT09PW4/MzcrcjplfW4uZCh0LHtmbGlwQXJyb3dzT25SdGw6KCk9PnJ9KX0sMjUwNTE4KGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse2dldFNlbGVjdG9yS2V5Ym9hcmROYXZpZ2F0aW9uOigpPT5pfSk7dmFyIHI9bigzODIyNDIpLG89big2ODIzODEpO2Z1bmN0aW9uIGkoZSx0KXtjb25zdCBuPXQ9PihuLGkpPT57Y29uc3QgYT1kb2N1bWVudC5hY3RpdmVFbGVtZW50fHxuLHM9KDAsci5nZXRTZWxlY3RvclRyZWVXYWxrZXIpKG4sZSk7cy5jdXJyZW50Tm9kZT1hO2NvbnN0IGw9dChzKTtyZXR1cm4gbCYmKDAsby5pc0hUTUxPclNWR0VsZW1lbnQpKGwpJiZsIT09YT8obC5mb2N1cyhpKSxsKTpudWxsfSxpPXQ/ZT0+ZS5wcmV2aW91c05vZGUoKTpyLmdldFByZXZpb3VzTm9uUGFyZW50LGE9ZT0+ZS5uZXh0Tm9kZSgpO3JldHVybntmb2N1c1ByZXY6bihpKSxmb2N1c05leHQ6bihhKSxmb2N1c0ZpcnN0Om4oci5nZXRGaXJzdERlc2NlbmRhbnQpLGZvY3VzTGFzdDpuKHIuZ2V0TGFzdERlc2NlbmRhbnQpLGZvY3VzUHJldkxvb3A6bigoZT0+e2NvbnN0IHQ9aShlKTtyZXR1cm4gdHx8KDAsci5nZXRMYXN0RGVzY2VuZGFudCkoZSl9KSksZm9jdXNOZXh0TG9vcDpuKChlPT57Y29uc3QgdD1hKGUpO3JldHVybiB0fHwoMCxyLmdldEZpcnN0RGVzY2VuZGFudCkoZSl9KSksZm9jdXNJbmRleDooZSx0LHIpPT5uKChlPT57ZS5jdXJyZW50Tm9kZT1lLnJvb3Q7Zm9yKGxldCBuPTA7bjx0O24rKyllLm5leHROb2RlKCk7cmV0dXJuIGUubmV4dE5vZGUoKX0pKShlLHIpfX19LDk2NDU5NChlLHQsbil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHIoZSl7cmV0dXJuIHQ9PntlLmZvckVhY2goKGU9PnsiZnVuY3Rpb24iPT10eXBlb2YgZT9lKHQpOm51bGwhPWUmJihlLmN1cnJlbnQ9dCl9KSl9fWZ1bmN0aW9uIG8oZSl7cmV0dXJuIHIoW2VdKX1uLmQodCx7aXNvbW9ycGhpY1JlZjooKT0+byxtZXJnZVJlZnM6KCk9PnJ9KX0sODMzOTAzKGUsdCxuKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gciguLi5lKXtyZXR1cm4gdD0+e2Zvcihjb25zdCBuIG9mIGUpdm9pZCAwIT09biYmbih0KX19bi5kKHQse2NyZWF0ZVNhZmVNdWx0aWNhc3RFdmVudEhhbmRsZXI6KCk9PnJ9KX0sMzI5NjY4KGUsdCxuKXsidXNlIHN0cmljdCI7dmFyIHI7ZnVuY3Rpb24gbyhlKXtlLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJyb3ZpbmctdGFiaW5kZXg6bWFpbi1lbGVtZW50IikpfWZ1bmN0aW9uIGkoZSl7ZS5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgicm92aW5nLXRhYmluZGV4OnNlY29uZGFyeS1lbGVtZW50IikpfW4uZCh0LHtiZWNvbWVNYWluRWxlbWVudDooKT0+byxiZWNvbWVTZWNvbmRhcnlFbGVtZW50OigpPT5pfSksZnVuY3Rpb24oZSl7ZS5NYWluRWxlbWVudD0icm92aW5nLXRhYmluZGV4Om1haW4tZWxlbWVudCIsZS5TZWNvbmRhcnlFbGVtZW50PSJyb3ZpbmctdGFiaW5kZXg6c2Vjb25kYXJ5LWVsZW1lbnQifShyfHwocj17fSkpfSw5ODM2MTYoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7bWFwS2V5Q29kZVRvRGlyZWN0aW9uOigpPT51LG5hdmlnYXRpb25PcmRlckNvbXBhcmF0b3I6KCk9PmEscXVlcnlGb2N1c2FibGVFbGVtZW50czooKT0+bCxxdWVyeVRhYmJhYmxlRWxlbWVudHM6KCk9PnMsdXBkYXRlVGFiSW5kZXhlczooKT0+Y30pO3ZhciByLG89big5NjkxNjgpLGk9big2ODIzODEpO2Z1bmN0aW9uIGEoZSx0KXtyZXR1cm4gZT09PXQ/MDplLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKHQpJk5vZGUuRE9DVU1FTlRfUE9TSVRJT05fRk9MTE9XSU5HPy0xOjF9ZnVuY3Rpb24gcyhlKXtyZXR1cm4gQXJyYXkuZnJvbShlLnF1ZXJ5U2VsZWN0b3JBbGwoJ2J1dHRvbjpub3QoOmRpc2FibGVkKTpub3QoW2FyaWEtZGlzYWJsZWQ9InRydWUiIGldKTpub3QoW3RhYmluZGV4PSItMSJdKSwgW3RhYmluZGV4XTpub3QoW2Rpc2FibGVkXSk6bm90KFthcmlhLWRpc2FibGVkPSJ0cnVlIiBpXSk6bm90KFt0YWJpbmRleD0iLTEiXSknKSkuZmlsdGVyKCgwLGkuY3JlYXRlU2NvcGVkVmlzaWJsZUVsZW1lbnRGaWx0ZXIpKGUpKX1mdW5jdGlvbiBsKGUpewpyZXR1cm4gQXJyYXkuZnJvbShlLnF1ZXJ5U2VsZWN0b3JBbGwoJ2J1dHRvbjpub3QoOmRpc2FibGVkKTpub3QoW2FyaWEtZGlzYWJsZWQ9InRydWUiIGldKTpub3QoW2FyaWEtZGlzYWJsZWQ9IiJdKSwgW3RhYmluZGV4XTpub3QoW2Rpc2FibGVkXSk6bm90KFthcmlhLWRpc2FibGVkPSJ0cnVlIiBpXSk6bm90KFthcmlhLWRpc2FibGVkPSIiXSknKSkuZmlsdGVyKCgwLGkuY3JlYXRlU2NvcGVkVmlzaWJsZUVsZW1lbnRGaWx0ZXIpKGUpKX1mdW5jdGlvbiBjKCl7d2luZG93LmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJrZXlib2FyZC1uYXZpZ2F0aW9uLWFjdGl2YXRpb24iLHtidWJibGVzOiEwfSkpfWZ1bmN0aW9uIHUoZSl7Y29uc3QgdD0oMCxvLmlzUnRsKSgpO3N3aXRjaChlKXtjYXNlIDM4OnJldHVybiJibG9ja1ByZXYiO2Nhc2UgNDA6cmV0dXJuImJsb2NrTmV4dCI7Y2FzZSAzNzpyZXR1cm4gdD8iaW5saW5lTmV4dCI6ImlubGluZVByZXYiO2Nhc2UgMzk6cmV0dXJuIHQ/ImlubGluZVByZXYiOiJpbmxpbmVOZXh0IjtkZWZhdWx0OnJldHVybiBudWxsfX0hZnVuY3Rpb24oZSl7ZS5CbG9ja1ByZXY9ImJsb2NrUHJldiIsZS5CbG9ja05leHQ9ImJsb2NrTmV4dCIsZS5JbmxpbmVQcmV2PSJpbmxpbmVQcmV2IixlLklubGluZU5leHQ9ImlubGluZU5leHQifShyfHwocj17fSkpfSw2MTYzMTEoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7dXNlSXNvbW9ycGhpY0xheW91dEVmZmVjdDooKT0+b30pO3ZhciByPW4oNzc5NDc0KTtmdW5jdGlvbiBvKGUsdCl7KCJ1bmRlZmluZWQiPT10eXBlb2Ygd2luZG93P3IudXNlRWZmZWN0OnIudXNlTGF5b3V0RWZmZWN0KShlLHQpfX0sMTA2OTAwKGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse3VzZVdhdGNoZWRWYWx1ZVJlYWRvbmx5OigpPT5pfSk7dmFyIHI9big3Nzk0NzQpLG89big2MTYzMTEpO2NvbnN0IGk9KGUsdD0hMSxuPVtdKT0+e2NvbnN0IGk9IndhdGNoZWRWYWx1ZSJpbiBlP2Uud2F0Y2hlZFZhbHVlOnZvaWQgMCxhPSJkZWZhdWx0VmFsdWUiaW4gZT9lLmRlZmF1bHRWYWx1ZTplLndhdGNoZWRWYWx1ZS52YWx1ZSgpLFtzLGxdPSgwLHIudXNlU3RhdGUpKGk/aS52YWx1ZSgpOmEpO3JldHVybih0P28udXNlSXNvbW9ycGhpY0xheW91dEVmZmVjdDpyLnVzZUVmZmVjdCkoKCgpPT57aWYoaSl7bChpLnZhbHVlKCkpO2NvbnN0IGU9ZT0+bChlKTtyZXR1cm4gaS5zdWJzY3JpYmUoZSksKCk9PmkudW5zdWJzY3JpYmUoZSl9cmV0dXJuKCk9Pnt9fSksW2ksLi4ubl0pLHN9fSwxODIzMDgoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7dXNlUm92aW5nVGFiaW5kZXhFbGVtZW50OigpPT5hfSk7dmFyIHI9big3Nzk0NzQpLG89big3ODc4OTUpLGk9big2MTYzMTEpO2Z1bmN0aW9uIGEoZSx0PVtdKXtjb25zdFtuLGFdPSgwLHIudXNlU3RhdGUpKCExKSxzPSgwLG8udXNlRnVuY3Rpb25hbFJlZk9iamVjdCkoZSk7cmV0dXJuKDAsaS51c2VJc29tb3JwaGljTGF5b3V0RWZmZWN0KSgoKCk9Pntjb25zdCBlPXMuY3VycmVudDtpZihudWxsPT09ZSlyZXR1cm47Y29uc3QgdD1lPT57c3dpdGNoKGUudHlwZSl7Y2FzZSJyb3ZpbmctdGFiaW5kZXg6bWFpbi1lbGVtZW50IjphKCEwKTticmVhaztjYXNlInJvdmluZy10YWJpbmRleDpzZWNvbmRhcnktZWxlbWVudCI6YSghMSl9fTtyZXR1cm4gZS5hZGRFdmVudExpc3RlbmVyKCJyb3ZpbmctdGFiaW5kZXg6bWFpbi1lbGVtZW50Iix0KSxlLmFkZEV2ZW50TGlzdGVuZXIoInJvdmluZy10YWJpbmRleDpzZWNvbmRhcnktZWxlbWVudCIsdCksKCk9PntlLnJlbW92ZUV2ZW50TGlzdGVuZXIoInJvdmluZy10YWJpbmRleDptYWluLWVsZW1lbnQiLHQpLGUucmVtb3ZlRXZlbnRMaXN0ZW5lcigicm92aW5nLXRhYmluZGV4OnNlY29uZGFyeS1lbGVtZW50Iix0KX19KSx0KSxbcyxuPzA6LTFdfX0sNDYyNzA0KGUpe2UuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxOCAxOCIgd2lkdGg9IjE4IiBoZWlnaHQ9IjE4Ij48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGQ9Ik0xMiA0aDN2MWgtMS4wNGwtLjg4IDkuNjRhMS41IDEuNSAwIDAgMS0xLjUgMS4zNkg2LjQyYTEuNSAxLjUgMCAwIDEtMS41LTEuMzZMNC4wNSA1SDNWNGgzdi0uNUM2IDIuNjcgNi42NyAyIDcuNSAyaDNjLjgzIDAgMS41LjY3IDEuNSAxLjVWNFpNNy41IDNhLjUuNSAwIDAgMC0uNS41VjRoNHYtLjVhLjUuNSAwIDAgMC0uNS0uNWgtM1pNNS4wNSA1bC44NyA5LjU1YS41LjUgMCAwIDAgLjUuNDVoNS4xN2EuNS41IDAgMCAwIC41LS40NUwxMi45NCA1aC03LjlaIi8+PC9zdmc+J319XSk7"}},"time_used":7,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":7,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/17693.b529334c8c760ee351da.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.794Z","timestamp":1785148034794,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/17693.b529334c8c760ee351da.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\ncontent-type: text/css; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a608293-3aa8\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Wed, 22 Jul 2026 08:42:59 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/22/2026 11:05:07\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 89bf133317dca1d09fd2ff477f46b116\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":15016,"size_decoded":3281,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with very long lines (15016), with no line terminators","md5":"cc80eb4baff0d8e99e154f610b7bb5ed","sha1":"6b8d54761d6fe90d3c24f025e8d54aa638cdd68c","sha256":"a7a634542fb7e904a803f221c2abd1f54b8455dad12add6b3465fd54e13d8042","sha512":"4f1a6123b0de6dc45215fc2a747045ec9ac4a2dbd1d014c6d9993107f78fe98631b6ae3e5cb9db915e88094e94dbf1dc1152eacaea1b2bfdf398da7c718b1830","ssdeep":"384:0QqJOeyM65aGrDvUfM2WVOeWhqoUt1mjc:pqJOeyM65aGrDvUfM2WVOeWhqoUt1mjc","tlshash":"b86286156f5873bcb3a79479d5a035c84704cc36e3819dfdf941e62a68cab98232ca4d","first_seen":"2026-07-27T03:26:08.918305Z","last_seen":"2026-07-27T10:28:13.923834Z","times_seen":7,"resource_available":false,"data":"LmRvdGgtREo4cWxQTzh7bWFyZ2luOjB9LmRvdGgtREo4cWxQTzg6YWZ0ZXJ7Y29udGVudDoiXDAwYjciO21hcmdpbjowIDRweH0uZG90aC1ESjhxbFBPOC5jb2xkR3JheS1ESjhxbFBPODphZnRlcntjb2xvcjp2YXIoLS1jb2xvci1jb2xkLWdyYXktNTUwKX0uZWxsaXBzaXNUZXh0LURKOHFsUE84e21heC13aWR0aDoxMDAlO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3doaXRlLXNwYWNlOm5vd3JhcH0uaGVhZGVyLWFNVFlOVkR4e2FsaWduLWl0ZW1zOmNlbnRlcjtkaXNwbGF5OmZsZXg7ZmxleC13cmFwOndyYXB9LmxvZ28tYU1UWU5WRHh7bWFyZ2luLWlubGluZS1lbmQ6OHB4fS5pY29uLWFNVFlOVkR4e2Rpc3BsYXk6aW5saW5lLWZsZXg7bWFyZ2luLWlubGluZS1zdGFydDo0cHg7dmVydGljYWwtYWxpZ246Ym90dG9tfS5kYXRlLWFNVFlOVkR4e21hcmdpbi1pbmxpbmUtZW5kOjhweH0uZG90aC1hTVRZTlZEeHttYXJnaW46MH0uZG90aC1hTVRZTlZEeDphZnRlcntjb250ZW50OiJcMDBiNyI7bWFyZ2luOjAgNHB4fS5kb3RoLWFNVFlOVkR4LmNvbGRHcmF5LWFNVFlOVkR4OmFmdGVye2NvbG9yOnZhcigtLWNvbG9yLWNvbGQtZ3JheS01NTApfS5lbGxpcHNpc1RleHQtYU1UWU5WRHh7bWF4LXdpZHRoOjEwMCU7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7d2hpdGUtc3BhY2U6bm93cmFwfVtkYXRhLXRoZW1lPWRhcmtdLFtkYXRhLXRoZW1lPWxpZ2h0XXstLV8wLVAxTHk6IzAwMDB9QGtleWZyYW1lcyBrZXlmcmFtZXMtaGlnaGxpZ2h0LWFuaW1hdGlvbi10aGVtZS1saWdodHswJXtiYWNrZ3JvdW5kOiMwMDAwfTUwJXtiYWNrZ3JvdW5kOnZhcigtLWNvbG9yLXR2LWJsdWUtNTApfXRve2JhY2tncm91bmQ6IzAwMDB9fUBrZXlmcmFtZXMga2V5ZnJhbWVzLWhpZ2hsaWdodC1hbmltYXRpb24tdGhlbWUtZGFya3swJXtiYWNrZ3JvdW5kOiMwMDAwfTUwJXtiYWNrZ3JvdW5kOnZhcigtLWNvbG9yLXR2LWJsdWUtYTkwMCl9dG97YmFja2dyb3VuZDojMDAwMH19LmNhcmQtUExVdm1xZW57YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1fMC1QMUx5KTtkaXNwbGF5OmlubGluZS1mbGV4Oy13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTt1c2VyLXNlbGVjdDpub25lOy0tYW5pbWF0aW9uLWR1cmF0aW9uOjI7b3V0bGluZTpub25lO292ZXJmbG93OnZpc2libGU7cG9zaXRpb246cmVsYXRpdmV9LmNhcmQtUExVdm1xZW46Zm9jdXN7b3V0bGluZTpub25lfS5jYXJkLVBMVXZtcWVuOmZvY3VzLXZpc2libGV7b3V0bGluZTpub25lfS5jYXJkLVBMVXZtcWVuOmFmdGVye2JvcmRlci1zdHlsZTpzb2xpZDtib3JkZXItd2lkdGg6MnB4O2JveC1zaXppbmc6Ym9yZGVyLWJveDtjb250ZW50OiIiO2Rpc3BsYXk6bm9uZTtoZWlnaHQ6Y2FsYygxMDAlICsgMTBweCk7aW5zZXQtaW5saW5lLXN0YXJ0Oi01cHg7cG9pbnRlci1ldmVudHM6bm9uZTtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6LTVweDt3aWR0aDpjYWxjKDEwMCUgKyAxMHB4KTt6LWluZGV4OjF9LmNhcmQtUExVdm1xZW46Zm9jdXM6YWZ0ZXJ7ZGlzcGxheTpibG9ja30uY2FyZC1QTFV2bXFlbjpmb2N1cy12aXNpYmxlOmFmdGVye2Rpc3BsYXk6YmxvY2t9LmNhcmQtUExVdm1xZW46Zm9jdXM6bm90KDpmb2N1cy12aXNpYmxlKTphZnRlcntkaXNwbGF5Om5vbmV9LmNhcmQtUExVdm1xZW46YWZ0ZXJ7Ym9yZGVyLWNvbG9yOnZhcigtLWNvbG9yLWZvY3VzLW91dGxpbmUtY29sb3ItYmx1ZSk7Ym9yZGVyLXJhZGl1czoxNnB4fS5jYXJkLVBMVXZtcWVuLmhpZ2hsaWdodC1QTFV2bXFlbnthbmltYXRpb246a2V5ZnJhbWVzLWhpZ2hsaWdodC1hbmltYXRpb24tdGhlbWUtbGlnaHQgLjdzIGVhc2UtaW4tb3V0IDJ9LnRoZW1lLWRhcmsgLmNhcmQtUExVdm1xZW4uaGlnaGxpZ2h0LVBMVXZtcWVue2FuaW1hdGlvbi1uYW1lOmtleWZyYW1lcy1oaWdobGlnaHQtYW5pbWF0aW9uLXRoZW1lLWRhcmt9QG1lZGlhIChhbnktaG92ZXI6aG92ZXIpey5jYXJkLVBMVXZtcWVuOmhvdmVye2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItYmctcHJpbWFyeS1ob3Zlcik7Y3Vyc29yOmRlZmF1bHR9fS5jb250YWluZXJXaXRoSW1hZ2UtUExVdm1xZW57Y29sdW1uLWdhcDo4cHg7ZGlzcGxheTpncmlkO2dyaWQtdGVtcGxhdGUtYXJlYXM6ImhlYWRlciBoZWFkZXIiICJ0aXRsZSBwcmV2aWV3IjtncmlkLXRlbXBsYXRlLWNvbHVtbnM6MWZyIDcycHh9QG1lZGlhIChtYXgtd2lkdGg6NzY3cHgpey5jb250YWluZXJXaXRoSW1hZ2UtUExVdm1xZW57Z3JpZC10ZW1wbGF0ZS1hcmVhczoiaGVhZGVyIHByZXZpZXciICJ0aXRsZSBwcmV2aWV3In19LmhlYWRlci1QTFV2bXFlbntjb2xvcjp2YXIoLS1jb2xvci10ZXh0LXNlY29uZGFyeSk7Zm9udC1mZWF0dXJlLXNldHRpbmdzOiJ0bnVtIiBvbiwibG51bSIgb247Zm9udC1zdHlsZTpub3JtYWw7Z3JpZC1hcmVhOmhlYWRlcjttYXJnaW4tYm90dG9tOjhweDttaW4taGVpZ2h0OjE4cHg7LS11aS1saWItdHlwb2dyYXBoeS1mb250LXNpemU6MTRweDtmb250LXNpemU6dmFyKC0tdWktbGliLXR5cG9ncmFwaHktZm9udC1zaXplKTtmb250LXdlaWdodDo0MDA7LS11aS1saWItdHlwb2dyYXBoeS1saW5lLWhlaWdodDoxOHB4O2xpbmUtaGVpZ2h0OnZhcigtLXVpLWxpYi10eXBvZ3JhcGh5LWxpbmUtaGVpZ2h0KX0uaGVhZGVyLVBMVXZtcWVuLC50aXRsZS1QTFV2bXFlbntmb250LWZhbWlseTotYXBwbGUtc3lzdGVtLEJsaW5rTWFjU3lzdGVtRm9udCxUcmVidWNoZXQgTVMsUm9ib3RvLFVidW50dSxzYW5zLXNlcmlmfS50aXRsZS1QTFV2bXFlbntncmlkLWFyZWE6dGl0bGU7LXdlYmtpdC1saW5lLWNsYW1wOjQ7Zm9udC1mZWF0dXJlLXNldHRpbmdzOiJ0bnVtIiBvbiwibG51bSIgb247Zm9udC1zdHlsZTpub3JtYWw7bGluZS1oZWlnaHQ6MjRweDttYXgtaGVpZ2h0Ojk2cHg7LS11aS1saWItdHlwb2dyYXBoeS1mb250LXNpemU6MTZweDtmb250LXNpemU6dmFyKC0tdWktbGliLXR5cG9ncmFwaHktZm9udC1zaXplKTtmb250LXdlaWdodDo1MDA7LS11aS1saWItdHlwb2dyYXBoeS1saW5lLWhlaWdodDoyNHB4O2xpbmUtaGVpZ2h0OnZhcigtLXVpLWxpYi10eXBvZ3JhcGh5LWxpbmUtaGVpZ2h0KX0udGl0bGUtUExVdm1xZW4sLnRpdGxlLVBMVXZtcWVuLnRpdGxlU21hbGwtUExVdm1xZW57ZGlzcGxheTotd2Via2l0LWJveDtvdmVyZmxvdzpoaWRkZW47LXdlYmtpdC1ib3gtb3JpZW50OnZlcnRpY2FsfS50aXRsZS1QTFV2bXFlbi50aXRsZVNtYWxsLVBMVXZtcWVuey13ZWJraXQtbGluZS1jbGFtcDozO2xpbmUtaGVpZ2h0OjI0cHg7bWF4LWhlaWdodDo3MnB4fS5hcnRpY2xlLVBMVXZtcWVue2NvbG9yOnZhcigtLWNvbG9yLXRleHQtcHJpbWFyeSk7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtmbGV4LWdyb3c6MX1AbWVkaWEgKG1heC13aWR0aDo3NjdweCl7LmFydGljbGUtUExVdm1xZW57bWFyZ2luOjAgLTIwcHg7cGFkZGluZzoxMnB4IDIwcHh9fS5hcnRpY2xlLVBMVXZtcWVuIC5jb250YWluZXItUExVdm1xZW4gLnByZXZpZXctUExVdm1xZW57YXNwZWN0LXJhdGlvOjE7Z3JpZC1hcmVhOnByZXZpZXd9QG1lZGlhIChtYXgtd2lkdGg6NzY3cHgpey5hcnRpY2xlLVBMVXZtcWVuIC5jb250YWluZXItUExVdm1xZW4gLnByZXZpZXctUExVdm1xZW57YWxpZ24tc2VsZjpjZW50ZXJ9fS5kaXNhYmxlZC1QTFV2bXFlbntjdXJzb3I6ZGVmYXVsdCFpbXBvcnRhbnQ7cGFkZGluZzo4cHggMjBweH1AbWVkaWEgKG1pbi13aWR0aDo3NjhweCl7LmRpc2FibGVkLVBMVXZtcWVue3BhZGRpbmc6OHB4fX0ud3JhcHBlci1QTFV2bXFlbntib3gtc2l6aW5nOmJvcmRlci1ib3g7cGFkZGluZzo4cHh9LmJsb2NrLVJMR2FFZDA2e2Rpc3BsYXk6aW5saW5lO292ZXJmbG93LXdyYXA6YW55d2hlcmV9LmJhZGdlcy1STEdhRWQwNnttYXJnaW4taW5saW5lLWVuZDo4cHg7bWFyZ2luLWJvdHRvbTo0cHg7dmVydGljYWwtYWxpZ246bWlkZGxlfS5iYWRnZXNTbWFsbC1STEdhRWQwNnttYXJnaW4taW5saW5lLWVuZDo0cHh9Lmljb24tUkxHYUVkMDZ7ZGlzcGxheTppbmxpbmUtZmxleDtwYWRkaW5nLWlubGluZS1zdGFydDo0cHg7dmVydGljYWwtYWxpZ246dGV4dC1ib3R0b219LmFydGljbGUtTWNERjV5Tk17Ym9yZGVyLXJhZGl1czowO21hcmdpbjowIC0yMHB4O3BhZGRpbmc6MTJweCAyMHB4fUBtZWRpYSAobWluLXdpZHRoOjEwMjRweCl7LmFydGljbGUtTWNERjV5Tk17Y29sdW1uLWdhcDp2YXIoLS1ncmlkLWNvbC1nYXApO2Rpc3BsYXk6Z3JpZDtncmlkLXRlbXBsYXRlLWNvbHVtbnM6cmVwZWF0KGF1dG8tZmlsbCxtaW5tYXgodmFyKC0tZ3JpZC1pdGVtLW1pbi13aWR0aCksMWZyKSk7Z3JpZC10ZW1wbGF0ZS1yb3dzOnJlcGVhdChhdXRvLWZpbGwsNDhweCk7cGFkZGluZzowIDIwcHg7cm93LWdhcDp2YXIoLS1ncmlkLXJvdy1nYXApfX0uY2FyZC1NY0RGNXlOTXtvdXRsaW5lOm5vbmU7b3ZlcmZsb3c6dmlzaWJsZTtwb3NpdGlvbjpyZWxhdGl2ZX0uY2FyZC1NY0RGNXlOTTpmb2N1c3tvdXRsaW5lOm5vbmV9LmNhcmQtTWNERjV5Tk06Zm9jdXMtdmlzaWJsZXtvdXRsaW5lOm5vbmV9LmNhcmQtTWNERjV5Tk06YWZ0ZXJ7Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci13aWR0aDoycHg7Ym94LXNpemluZzpib3JkZXItYm94O2NvbnRlbnQ6IiI7ZGlzcGxheTpub25lO2hlaWdodDoxMDAlO2luc2V0LWlubGluZS1zdGFydDowO3BvaW50ZXItZXZlbnRzOm5vbmU7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7d2lkdGg6MTAwJTt6LWluZGV4OjF9LmNhcmQtTWNERjV5Tk06Zm9jdXM6YWZ0ZXJ7ZGlzcGxheTpibG9ja30uY2FyZC1NY0RGNXlOTTpmb2N1cy12aXNpYmxlOmFmdGVye2Rpc3BsYXk6YmxvY2t9LmNhcmQtTWNERjV5Tk06Zm9jdXM6bm90KDpmb2N1cy12aXNpYmxlKTphZnRlcntkaXNwbGF5Om5vbmV9LmNhcmQtTWNERjV5Tk06YWZ0ZXJ7Ym9yZGVyLXJhZGl1czo2cHh9QG1lZGlhIChtaW4td2lkdGg6MTAyNHB4KXsuY2FyZC1NY0RGNXlOTXtkaXNwbGF5OmdyaWR9fUBtZWRpYSAoYW55LWhvdmVyOmhvdmVyKXsuY2FyZC1NY0RGNXlOTTpob3Zlcntib3JkZXItcmFkaXVzOjB9fS5wcmV2aWV3LU1jREY1eU5Ne2FsaWduLXNlbGY6Y2VudGVyfUBtZWRpYSAobWluLXdpZHRoOjEwMjRweCl7LnByZXZpZXctTWNERjV5Tk17ZGlzcGxheTpub25lfS5jb250YWluZXItTWNERjV5Tk17Z3JpZC10ZW1wbGF0ZS1hcmVhczoiaGVhZGVyIHByZXZpZXciICJ0aXRsZSBwcmV2aWV3In19QG1lZGlhIChtaW4td2lkdGg6NzY4cHgpey5jb250YWluZXItTWNERjV5Tk17Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjFmciA2MHB4fX1AbWVkaWEgKG1pbi13aWR0aDoxMDI0cHgpey5jb250YWluZXItTWNERjV5Tk17YWxpZ24taXRlbXM6Y2VudGVyO2NvbHVtbi1nYXA6MDtkaXNwbGF5OmdyaWQ7Z3JpZC10ZW1wbGF0ZS1hcmVhczoiZGF0ZSBzeW1ib2xzIHRpdGxlIHByb3ZpZGVyIjtncmlkLXRlbXBsYXRlLWNvbHVtbnM6MTEzcHggODdweCBhdXRvIDFmcn0uaGVhZGVyLU1jREY1eU5Ne2Rpc3BsYXk6Y29udGVudHN9LnRpdGxlLU1jREY1eU5Ne2ZvbnQtZmFtaWx5Oi1hcHBsZS1zeXN0ZW0sQmxpbmtNYWNTeXN0ZW1Gb250LFRyZWJ1Y2hldCBNUyxSb2JvdG8sVWJ1bnR1LHNhbnMtc2VyaWY7Zm9udC1mZWF0dXJlLXNldHRpbmdzOiJ0bnVtIiBvbiwibG51bSIgb247Zm9udC1zdHlsZTpub3JtYWw7LS11aS1saWItdHlwb2dyYXBoeS1mb250LXNpemU6MTZweDtmb250LXNpemU6dmFyKC0tdWktbGliLXR5cG9ncmFwaHktZm9udC1zaXplKTtmb250LXdlaWdodDo1MDA7LS11aS1saWItdHlwb2dyYXBoeS1saW5lLWhlaWdodDoyNHB4O2Rpc3BsYXk6aW5saW5lO2dyaWQtYXJlYTp0aXRsZTtsaW5lLWhlaWdodDp2YXIoLS11aS1saWItdHlwb2dyYXBoeS1saW5lLWhlaWdodCk7bWFyZ2luLWlubGluZS1lbmQ6MDtvdmVyZmxvdzpoaWRkZW47cGFkZGluZy1ibG9jazoxMHB4IDExcHg7cGFkZGluZy1pbmxpbmU6MjhweCAwO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7d2hpdGUtc3BhY2U6bm93cmFwfS50aXRsZS1NY0RGNXlOTT4qe21hcmdpbi1ib3R0b206MH0uZGF0ZS1NY0RGNXlOTXtncmlkLWFyZWE6ZGF0ZTttYXJnaW46MDtwYWRkaW5nLWJsb2NrOjEwcHggMTBweDtwYWRkaW5nLWlubGluZTowIDEycHg7d2lkdGg6bWF4LWNvbnRlbnR9LmRhdGUtTWNERjV5Tk06YWZ0ZXJ7ZGlzcGxheTpub25lfS5sb2dvLU1jREY1eU5Ne2dyaWQtYXJlYTpzeW1ib2xzO21hcmdpbi1ibG9jazowIDA7bWFyZ2luLWlubGluZTowIGF1dG87cGFkZGluZzowIDIwcHh9LnByb3ZpZGVyLU1jREY1eU5Ne2Rpc3BsYXk6ZmxleDtncmlkLWFyZWE6cHJvdmlkZXI7bWFyZ2luLWlubGluZS1zdGFydDphdXRvO3BhZGRpbmctYmxvY2s6MTBweCAxMXB4O3BhZGRpbmctaW5saW5lOjEycHggMDt3aGl0ZS1zcGFjZTpub3dyYXB9LmRpc2FibGVkLU1jREY1eU5Ne2NvbHVtbi1nYXA6dmFyKC0tZ3JpZC1jb2wtZ2FwKTtkaXNwbGF5OmdyaWQ7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOnJlcGVhdChhdXRvLWZpbGwsbWlubWF4KHZhcigtLWdyaWQtaXRlbS1taW4td2lkdGgpLDFmcikpO2dyaWQtdGVtcGxhdGUtcm93czpyZXBlYXQoYXV0by1maWxsLDQ4cHgpO3BhZGRpbmc6MCAyMHB4O3Jvdy1nYXA6dmFyKC0tZ3JpZC1yb3ctZ2FwKX19LmJsb2NrLWZxaGNQMWxne2NvbG9yOnZhcigtLWNvbG9yLWNvbGQtZ3JheS01MDApO2Rpc3BsYXk6aW5saW5lfS5pY29uLWZxaGNQMWxne2Rpc3BsYXk6aW5saW5lLWZsZXg7bWFyZ2luLWlubGluZS1zdGFydDoycHg7dmVydGljYWwtYWxpZ246bWlkZGxlfS5hcnRpY2xlLWZXWm56OXF2e2JvcmRlci1yYWRpdXM6MDttYXJnaW46MCAtMjBweDtwYWRkaW5nOjEycHggMjBweH0ucmVzcG9uc2l2ZS1jb250YWluZXItbWVkaWEtbWYtdGFibGV0LWxhbmRzY2FwZSAuYXJ0aWNsZS1mV1puejlxdntjb2x1bW4tZ2FwOnZhcigtLWdyaWQtY29sLWdhcCk7ZGlzcGxheTpncmlkO2dyaWQtdGVtcGxhdGUtY29sdW1uczpyZXBlYXQoYXV0by1maWxsLG1pbm1heCh2YXIoLS1ncmlkLWl0ZW0tbWluLXdpZHRoKSwxZnIpKTtncmlkLXRlbXBsYXRlLXJvd3M6cmVwZWF0KGF1dG8tZmlsbCw0OHB4KTtwYWRkaW5nOjA7cm93LWdhcDp2YXIoLS1ncmlkLXJvdy1nYXApfUBtZWRpYSAobWluLXdpZHRoOjEwMjRweCl7LnJlc3BvbnNpdmUtY29udGFpbmVyLWJhc2U6bm90KC5yZXNwb25zaXZlLWNvbnRhaW5lci1tZWRpYS1tZi1waG9uZS12ZXJ0aWNhbCkgLmFydGljbGUtZldabno5cXZ7Y29sdW1uLWdhcDp2YXIoLS1ncmlkLWNvbC1nYXApO2Rpc3BsYXk6Z3JpZDtncmlkLXRlbXBsYXRlLWNvbHVtbnM6cmVwZWF0KGF1dG8tZmlsbCxtaW5tYXgodmFyKC0tZ3JpZC1pdGVtLW1pbi13aWR0aCksMWZyKSk7Z3JpZC10ZW1wbGF0ZS1yb3dzOnJlcGVhdChhdXRvLWZpbGwsNDhweCk7cGFkZGluZzowO3Jvdy1nYXA6dmFyKC0tZ3JpZC1yb3ctZ2FwKX19LmNhcmQtZldabno5cXZ7b3V0bGluZTpub25lO292ZXJmbG93OnZpc2libGU7cG9zaXRpb246cmVsYXRpdmV9LmNhcmQtZldabno5cXY6Zm9jdXN7b3V0bGluZTpub25lfS5jYXJkLWZXWm56OXF2OmZvY3VzLXZpc2libGV7b3V0bGluZTpub25lfS5jYXJkLWZXWm56OXF2OmFmdGVye2JvcmRlci1zdHlsZTpzb2xpZDtib3JkZXItd2lkdGg6MnB4O2JveC1zaXppbmc6Ym9yZGVyLWJveDtjb250ZW50OiIiO2Rpc3BsYXk6bm9uZTtoZWlnaHQ6MTAwJTtpbnNldC1pbmxpbmUtc3RhcnQ6MDtwb2ludGVyLWV2ZW50czpub25lO3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO3dpZHRoOjEwMCU7ei1pbmRleDoxfS5jYXJkLWZXWm56OXF2OmZvY3VzOmFmdGVye2Rpc3BsYXk6YmxvY2t9LmNhcmQtZldabno5cXY6Zm9jdXMtdmlzaWJsZTphZnRlcntkaXNwbGF5OmJsb2NrfS5jYXJkLWZXWm56OXF2OmZvY3VzOm5vdCg6Zm9jdXMtdmlzaWJsZSk6YWZ0ZXJ7ZGlzcGxheTpub25lfS5jYXJkLWZXWm56OXF2OmFmdGVye2JvcmRlci1yYWRpdXM6NnB4fUBtZWRpYSAoYW55LWhvdmVyOmhvdmVyKXsuY2FyZC1mV1puejlxdjpob3Zlcntib3JkZXItcmFkaXVzOjB9fS5yZXNwb25zaXZlLWNvbnRhaW5lci1tZWRpYS1tZi10YWJsZXQtbGFuZHNjYXBlIC5jYXJkLWZXWm56OXF2e2Rpc3BsYXk6Z3JpZH1AbWVkaWEgKG1pbi13aWR0aDoxMDI0cHgpey5yZXNwb25zaXZlLWNvbnRhaW5lci1iYXNlOm5vdCgucmVzcG9uc2l2ZS1jb250YWluZXItbWVkaWEtbWYtcGhvbmUtdmVydGljYWwpIC5jYXJkLWZXWm56OXF2e2Rpc3BsYXk6Z3JpZH19LmNhcmQtZldabno5cXYuZnJlc2gtZldabno5cXZ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1iYWNrZ3JvdW5kLXByaW1hcnktbmV1dHJhbC1leHRyYS1saWdodCl9LmNhcmQtZldabno5cXYuZnJlc2gtZldabno5cXYgLnRpdGxlLWZXWm56OXF2e292ZXJmbG93OnZpc2libGU7cG9zaXRpb246cmVsYXRpdmV9LmNhcmQtZldabno5cXYuZnJlc2gtZldabno5cXYgLnRpdGxlLWZXWm56OXF2OmJlZm9yZXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLWNvbnRhaW5lci1maWxsLXByaW1hcnktbmV1dHJhbC1tZWRpdW0pO2JvcmRlci1yYWRpdXM6NTAlO2NvbnRlbnQ6IiI7ZGlzcGxheTppbmxpbmUtYmxvY2s7aGVpZ2h0OjZweDtpbnNldC1pbmxpbmUtc3RhcnQ6LTEwcHg7cG9zaXRpb246YWJzb2x1dGU7dG9wOmNhbGModmFyKC0tdWktbGliLXR5cG9ncmFwaHktbGluZS1oZWlnaHQpKi41IC0gM3B4KTt3aWR0aDo2cHh9LnJlc3BvbnNpdmUtY29udGFpbmVyLW1lZGlhLW1mLXRhYmxldC1sYW5kc2NhcGUgLmNhcmQtZldabno5cXYuZnJlc2gtZldabno5cXYgLnRpdGxlLWZXWm56OXF2e292ZXJmbG93OmhpZGRlbjtwb3NpdGlvbjp1bnNldH0ucmVzcG9uc2l2ZS1jb250YWluZXItbWVkaWEtbWYtdGFibGV0LWxhbmRzY2FwZSAuY2FyZC1mV1puejlxdi5mcmVzaC1mV1puejlxdiAudGl0bGUtZldabno5cXY6YmVmb3Jle2Rpc3BsYXk6bm9uZX0ucmVzcG9uc2l2ZS1jb250YWluZXItbWVkaWEtbWYtdGFibGV0LWxhbmRzY2FwZSAuY2FyZC1mV1puejlxdi5mcmVzaC1mV1puejlxdiAuYXJ0aWNsZS1mV1puejlxdntvdmVyZmxvdzp2aXNpYmxlO3Bvc2l0aW9uOnJlbGF0aXZlfS5yZXNwb25zaXZlLWNvbnRhaW5lci1tZWRpYS1tZi10YWJsZXQtbGFuZHNjYXBlIC5jYXJkLWZXWm56OXF2LmZyZXNoLWZXWm56OXF2IC5hcnRpY2xlLWZXWm56OXF2OmJlZm9yZXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLWNvbnRhaW5lci1maWxsLXByaW1hcnktbmV1dHJhbC1tZWRpdW0pO2JvcmRlci1yYWRpdXM6NTAlO2NvbnRlbnQ6IiI7ZGlzcGxheTppbmxpbmUtYmxvY2s7aGVpZ2h0OjZweDtpbnNldC1pbmxpbmUtc3RhcnQ6MTBweDtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6Y2FsYyg1MCUgLSAzcHgpO3dpZHRoOjZweH1AbWVkaWEgKG1pbi13aWR0aDoxMDI0cHgpey5yZXNwb25zaXZlLWNvbnRhaW5lci1iYXNlOm5vdCgucmVzcG9uc2l2ZS1jb250YWluZXItbWVkaWEtbWYtcGhvbmUtdmVydGljYWwpIC5jYXJkLWZXWm56OXF2LmZyZXNoLWZXWm56OXF2IC50aXRsZS1mV1puejlxdntvdmVyZmxvdzpoaWRkZW47cG9zaXRpb246dW5zZXR9LnJlc3BvbnNpdmUtY29udGFpbmVyLWJhc2U6bm90KC5yZXNwb25zaXZlLWNvbnRhaW5lci1tZWRpYS1tZi1waG9uZS12ZXJ0aWNhbCkgLmNhcmQtZldabno5cXYuZnJlc2gtZldabno5cXYgLnRpdGxlLWZXWm56OXF2OmJlZm9yZXtkaXNwbGF5Om5vbmV9LnJlc3BvbnNpdmUtY29udGFpbmVyLWJhc2U6bm90KC5yZXNwb25zaXZlLWNvbnRhaW5lci1tZWRpYS1tZi1waG9uZS12ZXJ0aWNhbCkgLmNhcmQtZldabno5cXYuZnJlc2gtZldabno5cXYgLmFydGljbGUtZldabno5cXZ7b3ZlcmZsb3c6dmlzaWJsZTtwb3NpdGlvbjpyZWxhdGl2ZX0ucmVzcG9uc2l2ZS1jb250YWluZXItYmFzZTpub3QoLnJlc3BvbnNpdmUtY29udGFpbmVyLW1lZGlhLW1mLXBob25lLXZlcnRpY2FsKSAuY2FyZC1mV1puejlxdi5mcmVzaC1mV1puejlxdiAuYXJ0aWNsZS1mV1puejlxdjpiZWZvcmV7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1jb250YWluZXItZmlsbC1wcmltYXJ5LW5ldXRyYWwtbWVkaXVtKTtib3JkZXItcmFkaXVzOjUwJTtjb250ZW50OiIiO2Rpc3BsYXk6aW5saW5lLWJsb2NrO2hlaWdodDo2cHg7aW5zZXQtaW5saW5lLXN0YXJ0OjEwcHg7cG9zaXRpb246YWJzb2x1dGU7dG9wOmNhbGMoNTAlIC0gM3B4KTt3aWR0aDo2cHh9fS5wcmV2aWV3LWZXWm56OXF2e2FsaWduLXNlbGY6Y2VudGVyfS5yZXNwb25zaXZlLWNvbnRhaW5lci1tZWRpYS1tZi10YWJsZXQtbGFuZHNjYXBlIC5wcmV2aWV3LWZXWm56OXF2e2Rpc3BsYXk6bm9uZX1AbWVkaWEgKG1pbi13aWR0aDoxMDI0cHgpey5yZXNwb25zaXZlLWNvbnRhaW5lci1iYXNlOm5vdCgucmVzcG9uc2l2ZS1jb250YWluZXItbWVkaWEtbWYtcGhvbmUtdmVydGljYWwpIC5wcmV2aWV3LWZXWm56OXF2e2Rpc3BsYXk6bm9uZX19LmNvbnRhaW5lci1mV1puejlxdntwYWRkaW5nOjAgMjBweH0ucmVzcG9uc2l2ZS1jb250YWluZXItbWVkaWEtbWYtdGFibGV0LWxhbmRzY2FwZSAuY29udGFpbmVyLWZXWm56OXF2e2dyaWQtdGVtcGxhdGUtYXJlYXM6ImhlYWRlciBwcmV2aWV3IiAidGl0bGUgcHJldmlldyJ9QG1lZGlhIChtaW4td2lkdGg6MTAyNHB4KXsucmVzcG9uc2l2ZS1jb250YWluZXItYmFzZTpub3QoLnJlc3BvbnNpdmUtY29udGFpbmVyLW1lZGlhLW1mLXBob25lLXZlcnRpY2FsKSAuY29udGFpbmVyLWZXWm56OXF2e2dyaWQtdGVtcGxhdGUtYXJlYXM6ImhlYWRlciBwcmV2aWV3IiAidGl0bGUgcHJldmlldyJ9fS5yZXNwb25zaXZlLWNvbnRhaW5lci1tZWRpYS1tZi10YWJsZXQtdmVydGljYWwgLmNvbnRhaW5lci1mV1puejlxdntncmlkLXRlbXBsYXRlLWNvbHVtbnM6MWZyIDYwcHh9QG1lZGlhIChtaW4td2lkdGg6NzY4cHgpey5yZXNwb25zaXZlLWNvbnRhaW5lci1iYXNlOm5vdCgucmVzcG9uc2l2ZS1jb250YWluZXItbWVkaWEtbWYtcGhvbmUtdmVydGljYWwpIC5jb250YWluZXItZldabno5cXZ7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjFmciA2MHB4fX0ucmVzcG9uc2l2ZS1jb250YWluZXItbWVkaWEtbWYtdGFibGV0LWxhbmRzY2FwZSAuY29udGFpbmVyLWZXWm56OXF2e2FsaWduLWl0ZW1zOmNlbnRlcjtjb2x1bW4tZ2FwOjA7ZGlzcGxheTpncmlkO2dyaWQtdGVtcGxhdGUtYXJlYXM6ImRhdGUgc3ltYm9scyB0aXRsZSBwcm92aWRlciI7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjExM3B4IDg3cHggYXV0byAxZnJ9QG1lZGlhIChtaW4td2lkdGg6MTAyNHB4KXsucmVzcG9uc2l2ZS1jb250YWluZXItYmFzZTpub3QoLnJlc3BvbnNpdmUtY29udGFpbmVyLW1lZGlhLW1mLXBob25lLXZlcnRpY2FsKSAuY29udGFpbmVyLWZXWm56OXF2e2FsaWduLWl0ZW1zOmNlbnRlcjtjb2x1bW4tZ2FwOjA7ZGlzcGxheTpncmlkO2dyaWQtdGVtcGxhdGUtYXJlYXM6ImRhdGUgc3ltYm9scyB0aXRsZSBwcm92aWRlciI7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjExM3B4IDg3cHggYXV0byAxZnJ9fS5yZXNwb25zaXZlLWNvbnRhaW5lci1tZWRpYS1tZi10YWJsZXQtbGFuZHNjYXBlIC5oZWFkZXItZldabno5cXZ7ZGlzcGxheTpjb250ZW50c31AbWVkaWEgKG1pbi13aWR0aDoxMDI0cHgpey5yZXNwb25zaXZlLWNvbnRhaW5lci1iYXNlOm5vdCgucmVzcG9uc2l2ZS1jb250YWluZXItbWVkaWEtbWYtcGhvbmUtdmVydGljYWwpIC5oZWFkZXItZldabno5cXZ7ZGlzcGxheTpjb250ZW50c319LnJlc3BvbnNpdmUtY29udGFpbmVyLW1lZGlhLW1mLXRhYmxldC1sYW5kc2NhcGUgLnRpdGxlLWZXWm56OXF2e2ZvbnQtZmFtaWx5Oi1hcHBsZS1zeXN0ZW0sQmxpbmtNYWNTeXN0ZW1Gb250LFRyZWJ1Y2hldCBNUyxSb2JvdG8sVWJ1bnR1LHNhbnMtc2VyaWY7Zm9udC1mZWF0dXJlLXNldHRpbmdzOiJ0bnVtIiBvbiwibG51bSIgb247Zm9udC1zdHlsZTpub3JtYWw7LS11aS1saWItdHlwb2dyYXBoeS1mb250LXNpemU6MTZweDtmb250LXNpemU6dmFyKC0tdWktbGliLXR5cG9ncmFwaHktZm9udC1zaXplKTtmb250LXdlaWdodDo1MDA7LS11aS1saWItdHlwb2dyYXBoeS1saW5lLWhlaWdodDoyNHB4O2Rpc3BsYXk6aW5saW5lO2dyaWQtYXJlYTp0aXRsZTtsaW5lLWhlaWdodDp2YXIoLS11aS1saWItdHlwb2dyYXBoeS1saW5lLWhlaWdodCk7bWFyZ2luLWlubGluZS1lbmQ6MDtvdmVyZmxvdzpoaWRkZW47cGFkZGluZy1ibG9jazoxMHB4IDExcHg7cGFkZGluZy1pbmxpbmU6MjhweCAwO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7d2hpdGUtc3BhY2U6bm93cmFwfS5yZXNwb25zaXZlLWNvbnRhaW5lci1tZWRpYS1tZi10YWJsZXQtbGFuZHNjYXBlIC50aXRsZS1mV1puejlxdj4qe21hcmdpbi1ib3R0b206MH1AbWVkaWEgKG1pbi13aWR0aDoxMDI0cHgpey5yZXNwb25zaXZlLWNvbnRhaW5lci1iYXNlOm5vdCgucmVzcG9uc2l2ZS1jb250YWluZXItbWVkaWEtbWYtcGhvbmUtdmVydGljYWwpIC50aXRsZS1mV1puejlxdntmb250LWZhbWlseTotYXBwbGUtc3lzdGVtLEJsaW5rTWFjU3lzdGVtRm9udCxUcmVidWNoZXQgTVMsUm9ib3RvLFVidW50dSxzYW5zLXNlcmlmO2ZvbnQtZmVhdHVyZS1zZXR0aW5nczoidG51bSIgb24sImxudW0iIG9uO2ZvbnQtc3R5bGU6bm9ybWFsOy0tdWktbGliLXR5cG9ncmFwaHktZm9udC1zaXplOjE2cHg7Zm9udC1zaXplOnZhcigtLXVpLWxpYi10eXBvZ3JhcGh5LWZvbnQtc2l6ZSk7Zm9udC13ZWlnaHQ6NTAwOy0tdWktbGliLXR5cG9ncmFwaHktbGluZS1oZWlnaHQ6MjRweDtkaXNwbGF5OmlubGluZTtncmlkLWFyZWE6dGl0bGU7bGluZS1oZWlnaHQ6dmFyKC0tdWktbGliLXR5cG9ncmFwaHktbGluZS1oZWlnaHQpO21hcmdpbi1pbmxpbmUtZW5kOjA7b3ZlcmZsb3c6aGlkZGVuO3BhZGRpbmctYmxvY2s6MTBweCAxMXB4O3BhZGRpbmctaW5saW5lOjI4cHggMDt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3doaXRlLXNwYWNlOm5vd3JhcH0ucmVzcG9uc2l2ZS1jb250YWluZXItYmFzZTpub3QoLnJlc3BvbnNpdmUtY29udGFpbmVyLW1lZGlhLW1mLXBob25lLXZlcnRpY2FsKSAudGl0bGUtZldabno5cXY+KnttYXJnaW4tYm90dG9tOjB9fS5yZXNwb25zaXZlLWNvbnRhaW5lci1tZWRpYS1tZi10YWJsZXQtbGFuZHNjYXBlIC5kYXRlLWZXWm56OXF2e2dyaWQtYXJlYTpkYXRlO21hcmdpbjowO3BhZGRpbmctYmxvY2s6MTBweCAxMHB4O3BhZGRpbmctaW5saW5lOjAgMTJweDt3aWR0aDptYXgtY29udGVudH0ucmVzcG9uc2l2ZS1jb250YWluZXItbWVkaWEtbWYtdGFibGV0LWxhbmRzY2FwZSAuZGF0ZS1mV1puejlxdjphZnRlcntkaXNwbGF5Om5vbmV9QG1lZGlhIChtaW4td2lkdGg6MTAyNHB4KXsucmVzcG9uc2l2ZS1jb250YWluZXItYmFzZTpub3QoLnJlc3BvbnNpdmUtY29udGFpbmVyLW1lZGlhLW1mLXBob25lLXZlcnRpY2FsKSAuZGF0ZS1mV1puejlxdntncmlkLWFyZWE6ZGF0ZTttYXJnaW46MDtwYWRkaW5nLWJsb2NrOjEwcHggMTBweDtwYWRkaW5nLWlubGluZTowIDEycHg7d2lkdGg6bWF4LWNvbnRlbnR9LnJlc3BvbnNpdmUtY29udGFpbmVyLWJhc2U6bm90KC5yZXNwb25zaXZlLWNvbnRhaW5lci1tZWRpYS1tZi1waG9uZS12ZXJ0aWNhbCkgLmRhdGUtZldabno5cXY6YWZ0ZXJ7ZGlzcGxheTpub25lfX0ucmVzcG9uc2l2ZS1jb250YWluZXItbWVkaWEtbWYtdGFibGV0LWxhbmRzY2FwZSAubG9nby1mV1puejlxdntncmlkLWFyZWE6c3ltYm9sczttYXJnaW4tYmxvY2s6MCAwO21hcmdpbi1pbmxpbmU6MCBhdXRvO3BhZGRpbmc6MCAyMHB4fUBtZWRpYSAobWluLXdpZHRoOjEwMjRweCl7LnJlc3BvbnNpdmUtY29udGFpbmVyLWJhc2U6bm90KC5yZXNwb25zaXZlLWNvbnRhaW5lci1tZWRpYS1tZi1waG9uZS12ZXJ0aWNhbCkgLmxvZ28tZldabno5cXZ7Z3JpZC1hcmVhOnN5bWJvbHM7bWFyZ2luLWJsb2NrOjAgMDttYXJnaW4taW5saW5lOjAgYXV0bztwYWRkaW5nOjAgMjBweH19LnJlc3BvbnNpdmUtY29udGFpbmVyLW1lZGlhLW1mLXRhYmxldC1sYW5kc2NhcGUgLnByb3ZpZGVyLWZXWm56OXF2e2Rpc3BsYXk6ZmxleDtncmlkLWFyZWE6cHJvdmlkZXI7bWFyZ2luLWlubGluZS1zdGFydDphdXRvO3BhZGRpbmctYmxvY2s6MTBweCAxMXB4O3BhZGRpbmctaW5saW5lOjEycHggMDt3aGl0ZS1zcGFjZTpub3dyYXB9QG1lZGlhIChtaW4td2lkdGg6MTAyNHB4KXsucmVzcG9uc2l2ZS1jb250YWluZXItYmFzZTpub3QoLnJlc3BvbnNpdmUtY29udGFpbmVyLW1lZGlhLW1mLXBob25lLXZlcnRpY2FsKSAucHJvdmlkZXItZldabno5cXZ7ZGlzcGxheTpmbGV4O2dyaWQtYXJlYTpwcm92aWRlcjttYXJnaW4taW5saW5lLXN0YXJ0OmF1dG87cGFkZGluZy1ibG9jazoxMHB4IDExcHg7cGFkZGluZy1pbmxpbmU6MTJweCAwO3doaXRlLXNwYWNlOm5vd3JhcH19LnJlc3BvbnNpdmUtY29udGFpbmVyLW1lZGlhLW1mLXRhYmxldC1sYW5kc2NhcGUgLmRpc2FibGVkLWZXWm56OXF2e2NvbHVtbi1nYXA6dmFyKC0tZ3JpZC1jb2wtZ2FwKTtkaXNwbGF5OmdyaWQ7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOnJlcGVhdChhdXRvLWZpbGwsbWlubWF4KHZhcigtLWdyaWQtaXRlbS1taW4td2lkdGgpLDFmcikpO2dyaWQtdGVtcGxhdGUtcm93czpyZXBlYXQoYXV0by1maWxsLDQ4cHgpO3BhZGRpbmc6MCAyMHB4O3Jvdy1nYXA6dmFyKC0tZ3JpZC1yb3ctZ2FwKX1AbWVkaWEgKG1pbi13aWR0aDoxMDI0cHgpey5yZXNwb25zaXZlLWNvbnRhaW5lci1iYXNlOm5vdCgucmVzcG9uc2l2ZS1jb250YWluZXItbWVkaWEtbWYtcGhvbmUtdmVydGljYWwpIC5kaXNhYmxlZC1mV1puejlxdntjb2x1bW4tZ2FwOnZhcigtLWdyaWQtY29sLWdhcCk7ZGlzcGxheTpncmlkO2dyaWQtdGVtcGxhdGUtY29sdW1uczpyZXBlYXQoYXV0by1maWxsLG1pbm1heCh2YXIoLS1ncmlkLWl0ZW0tbWluLXdpZHRoKSwxZnIpKTtncmlkLXRlbXBsYXRlLXJvd3M6cmVwZWF0KGF1dG8tZmlsbCw0OHB4KTtwYWRkaW5nOjAgMjBweDtyb3ctZ2FwOnZhcigtLWdyaWQtcm93LWdhcCl9fQ=="}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/27217.925f1191a000b02c0ad5.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.842Z","timestamp":1785148034842,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/27217.925f1191a000b02c0ad5.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\ncontent-type: text/css; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a4f5c14-8fd1\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Thu, 09 Jul 2026 08:30:12 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/09/2026 11:43:46\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 8e65eb31140f1ddc1cb9894a0a837157\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":36817,"size_decoded":8254,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with very long lines (36817), with no line terminators","md5":"d2b2c70ca0482dbc0e2902a012671ee4","sha1":"c7b63af03d9551ffd425c200c303a040457a1105","sha256":"0dedd52b93ac862bc350f972131755841f44b8f15520965822321ea97a6a6181","sha512":"396935d341680f25f9b75fe41e18f1bba687e52daf777ceb34fba76f689ab7ccbfdf594abc70ec151889e01cc8c3ae59bed471a44437609d68d8440ffba19948","ssdeep":"384:vvAZcCHnEqZjqnraYNs4cbyoNgbZlM41bZBXfYobqgw:vv5CHnEqZmrXp5DbZlM4xzf5qgw","tlshash":"3cf2a699b351a538b85399ba7756f55cb104dc27d4038afeeb62ab1c80c33f72324b19","first_seen":"2026-07-10T15:18:12.205974Z","last_seen":"2026-07-27T10:28:13.925463Z","times_seen":11,"resource_available":false,"data":"LmNvbnRhaW5lci1sVTlrWlNNR3twb3NpdGlvbjpyZWxhdGl2ZX0uY2hhcnQtbFU5a1pTTUd7b3ZlcmZsb3c6aGlkZGVufS50b29sdGlwV3JhcC1sVTlrWlNNR3tpbnNldC1pbmxpbmUtc3RhcnQ6LTUwJTtwb2ludGVyLWV2ZW50czpub25lO3Bvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOm1heC1jb250ZW50fVtkYXRhLXRoZW1lPWxpZ2h0XXstLV8wLTdXSGI6dmFyKC0tY29sb3ItY29sZC1ncmF5LTkwMCk7LS1fMS03V0hiOnZhcigtLWNvbG9yLWNvbGQtZ3JheS0xMDApOy0tXzItN1dIYjp2YXIoLS1jb2xvci1jb2xkLWdyYXktMTUwKX1bZGF0YS10aGVtZT1kYXJrXXstLV8wLTdXSGI6dmFyKC0tY29sb3ItY29sZC1ncmF5LTIwMCk7LS1fMS03V0hiOnZhcigtLWNvbG9yLWNvbGQtZ3JheS04MDApOy0tXzItN1dIYjp2YXIoLS1jb2xvci1jb2xkLWdyYXktNzUwKX0uYnV0dG9uQ29udGFpbmVyLWJlNWdBMTNie2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyfS5idXR0b25Db250YWluZXItYmU1Z0ExM2IgLmJ1dHRvbi1iZTVnQTEzYnthbGlnbi1pdGVtczpjZW50ZXI7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1fMS03V0hiKTtib3JkZXI6bm9uZTtib3JkZXItcmFkaXVzOjEwcHg7Y29sb3I6dmFyKC0tXzAtN1dIYik7ZGlzcGxheTpmbGV4O2ZvbnQtc2l6ZToxMnB4O2p1c3RpZnktY29udGVudDpjZW50ZXI7bGluZS1oZWlnaHQ6MTdweDtwYWRkaW5nOjJweCAxMnB4O3RleHQtYWxpZ246Y2VudGVyfUBtZWRpYSAoYW55LWhvdmVyOmhvdmVyKXsuYnV0dG9uQ29udGFpbmVyLWJlNWdBMTNiIC5idXR0b24tYmU1Z0ExM2I6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1fMi03V0hiKX19LmNoYXJ0LVNfdUx5UUd4e3Bvc2l0aW9uOnJlbGF0aXZlfS5pbmFjdGl2ZS1TX3VMeVFHeHtwb2ludGVyLWV2ZW50czpub25lfS5jaGFydC1xcFpjN0R3a3twb3NpdGlvbjpyZWxhdGl2ZX0uaW5hY3RpdmUtcXBaYzdEd2t7cG9pbnRlci1ldmVudHM6bm9uZX0uY29udGFpbmVyLWV0YUlqQUNzey0tc3RyYXRlZ3ktY2hhcnQtaGVpZ2h0OjE2MHB4fS5jaGFydC1ldGFJakFDc3toZWlnaHQ6dmFyKC0tc3RyYXRlZ3ktY2hhcnQtaGVpZ2h0LDMyMHB4KTt3aWR0aDoxMDAlfS5tb3JlQnV0dG9uLWV0YUlqQUNze21hcmdpbi10b3A6MTJweH0uc3RhdHVzV3JhcHBlci1kTjFlMkxfZ3thbGlnbi1pdGVtczpjZW50ZXI7Y29sdW1uLWdhcDo4cHg7ZGlzcGxheTpmbGV4O2ZsZXgtd3JhcDp3cmFwfS5sYXN0VGltZS1kTjFlMkxfZ3tmb250LWZhbWlseTotYXBwbGUtc3lzdGVtLEJsaW5rTWFjU3lzdGVtRm9udCxUcmVidWNoZXQgTVMsUm9ib3RvLFVidW50dSxzYW5zLXNlcmlmO2ZvbnQtZmVhdHVyZS1zZXR0aW5nczoidG51bSIgb24sImxudW0iIG9uO2ZvbnQtc3R5bGU6bm9ybWFsOy0tdWktbGliLXR5cG9ncmFwaHktZm9udC1zaXplOjEzcHg7Zm9udC1zaXplOnZhcigtLXVpLWxpYi10eXBvZ3JhcGh5LWZvbnQtc2l6ZSk7Zm9udC13ZWlnaHQ6NDAwOy0tdWktbGliLXR5cG9ncmFwaHktbGluZS1oZWlnaHQ6MThweDtjb2xvcjp2YXIoLS1jb2xvci1jb250ZW50LXByaW1hcnktbmV1dHJhbC1ub3JtYWwpO2xpbmUtaGVpZ2h0OnZhcigtLXVpLWxpYi10eXBvZ3JhcGh5LWxpbmUtaGVpZ2h0KX0ubGFzdFByaWNlLWROMWUyTF9ne2FsaWduLWl0ZW1zOmJhc2VsaW5lO2Rpc3BsYXk6ZmxleDtmbGV4LXdyYXA6d3JhcDttYXJnaW4tdG9wOjEycHh9Lmxhc3RQcmljZS1kTjFlMkxfZy5wbHVzLWROMWUyTF9nIC5jaGFuZ2UtZE4xZTJMX2csLmxhc3RQcmljZS1kTjFlMkxfZy5wbHVzLWROMWUyTF9nIC5jaGFuZ2VQZXJjZW50LWROMWUyTF9ne2NvbG9yOnZhcigtLWNvbG9yLXN5bWJvbC1jaGFuZ2UtcG9zaXRpdmUpfS5sYXN0UHJpY2UtZE4xZTJMX2cubWludXMtZE4xZTJMX2cgLmNoYW5nZS1kTjFlMkxfZywubGFzdFByaWNlLWROMWUyTF9nLm1pbnVzLWROMWUyTF9nIC5jaGFuZ2VQZXJjZW50LWROMWUyTF9ne2NvbG9yOnZhcigtLWNvbG9yLXN5bWJvbC1jaGFuZ2UtbmVnYXRpdmUpfS5wcmljZS1kTjFlMkxfZ3ttYXJnaW4taW5saW5lLWVuZDo4cHg7LS11aS1saWItdHlwb2dyYXBoeS1mb250LXNpemU6MjBweDstLXVpLWxpYi10eXBvZ3JhcGh5LWxpbmUtaGVpZ2h0OjI0cHg7Y29sb3I6dmFyKC0tY29sb3ItY29udGVudC1wcmltYXJ5LW5ldXRyYWwtYm9sZCk7b3ZlcmZsb3c6aGlkZGVufS5jaGFuZ2VXcmFwLWROMWUyTF9nLC5wcmljZS1kTjFlMkxfZ3tmb250LWZhbWlseTotYXBwbGUtc3lzdGVtLEJsaW5rTWFjU3lzdGVtRm9udCxUcmVidWNoZXQgTVMsUm9ib3RvLFVidW50dSxzYW5zLXNlcmlmO2ZvbnQtZmVhdHVyZS1zZXR0aW5nczoidG51bSIgb24sImxudW0iIG9uO2ZvbnQtc2l6ZTp2YXIoLS11aS1saWItdHlwb2dyYXBoeS1mb250LXNpemUpO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtd2VpZ2h0OjYwMDtsaW5lLWhlaWdodDp2YXIoLS11aS1saWItdHlwb2dyYXBoeS1saW5lLWhlaWdodCl9LmNoYW5nZVdyYXAtZE4xZTJMX2d7ZGlyZWN0aW9uOmx0cjtkaXNwbGF5OmlubGluZS1mbGV4Oy0tdWktbGliLXR5cG9ncmFwaHktZm9udC1zaXplOjE2cHg7LS11aS1saWItdHlwb2dyYXBoeS1saW5lLWhlaWdodDoyNHB4O3VuaWNvZGUtYmlkaTpiaWRpLW92ZXJyaWRlfS5leHRyYS1kTjFlMkxfZ3tmb250LWZhbWlseTotYXBwbGUtc3lzdGVtLEJsaW5rTWFjU3lzdGVtRm9udCxUcmVidWNoZXQgTVMsUm9ib3RvLFVidW50dSxzYW5zLXNlcmlmO2ZvbnQtZmVhdHVyZS1zZXR0aW5nczoidG51bSIgb24sImxudW0iIG9uO2ZvbnQtc3R5bGU6bm9ybWFsOy0tdWktbGliLXR5cG9ncmFwaHktZm9udC1zaXplOjEzcHg7Zm9udC1zaXplOnZhcigtLXVpLWxpYi10eXBvZ3JhcGh5LWZvbnQtc2l6ZSk7Zm9udC13ZWlnaHQ6NDAwOy0tdWktbGliLXR5cG9ncmFwaHktbGluZS1oZWlnaHQ6MThweDtsaW5lLWhlaWdodDp2YXIoLS11aS1saWItdHlwb2dyYXBoeS1saW5lLWhlaWdodCl9Lmljb24tZE4xZTJMX2d7aGVpZ2h0OjE4cHg7d2lkdGg6MThweH0ubmV1dHJhbC1kTjFlMkxfZ3tjb2xvcjp2YXIoLS1jb2xvci1jb250ZW50LXByaW1hcnktbmV1dHJhbCl9LmJsdWUtZE4xZTJMX2d7Y29sb3I6dmFyKC0tY29sb3ItY29udGVudC1wcmltYXJ5LWFjY2VudCl9LnllbGxvdy1kTjFlMkxfZ3tjb2xvcjp2YXIoLS1jb2xvci1jb250ZW50LXByaW1hcnktd2FybmluZy1zZW1pLWJvbGQpfS5ncmVlbi1kTjFlMkxfZ3tjb2xvcjp2YXIoLS1jb2xvci1jb250ZW50LXByaW1hcnktc3VjY2Vzcyl9LnB1cnBsZS1kTjFlMkxfZ3tjb2xvcjp2YXIoLS1jb2xvci1jb250ZW50LXNlY29uZGFyeS1hY2NlbnQtb3RoZXItc2VtaS1ib2xkKX0uY2hhbmdlUGVyY2VudC1kTjFlMkxfZ3ttYXJnaW4taW5saW5lLXN0YXJ0OjhweH0uY2hhbmdlUGVyY2VudC1kTjFlMkxfZzpkaXIocnRsKXttYXJnaW4tbGVmdDo4cHg7bWFyZ2luLXJpZ2h0OjB9LmN1cnJlbmN5LWROMWUyTF9ne2ZvbnQtZmFtaWx5Oi1hcHBsZS1zeXN0ZW0sQmxpbmtNYWNTeXN0ZW1Gb250LFRyZWJ1Y2hldCBNUyxSb2JvdG8sVWJ1bnR1LHNhbnMtc2VyaWY7Zm9udC1mZWF0dXJlLXNldHRpbmdzOiJ0bnVtIiBvbiwibG51bSIgb247Zm9udC1zdHlsZTpub3JtYWw7LS11aS1saWItdHlwb2dyYXBoeS1mb250LXNpemU6MTJweDtmb250LXNpemU6dmFyKC0tdWktbGliLXR5cG9ncmFwaHktZm9udC1zaXplKTtmb250LXdlaWdodDo0MDA7LS11aS1saWItdHlwb2dyYXBoeS1saW5lLWhlaWdodDoxNnB4O2xpbmUtaGVpZ2h0OnZhcigtLXVpLWxpYi10eXBvZ3JhcGh5LWxpbmUtaGVpZ2h0KTttYXJnaW4taW5saW5lLXN0YXJ0OjRweH0uY3VycmVuY3ktZE4xZTJMX2c6ZGlyKHJ0bCl7bWFyZ2luLWxlZnQ6NHB4O21hcmdpbi1yaWdodDowfS5zdGF0dXMtZE4xZTJMX2d7YWxpZ24taXRlbXM6Y2VudGVyO2Rpc3BsYXk6aW5saW5lLWZsZXg7Zm9udC1mYW1pbHk6LWFwcGxlLXN5c3RlbSxCbGlua01hY1N5c3RlbUZvbnQsVHJlYnVjaGV0IE1TLFJvYm90byxVYnVudHUsc2Fucy1zZXJpZjtmb250LWZlYXR1cmUtc2V0dGluZ3M6InRudW0iIG9uLCJsbnVtIiBvbjtmb250LXN0eWxlOm5vcm1hbDstLXVpLWxpYi10eXBvZ3JhcGh5LWZvbnQtc2l6ZToxM3B4O2ZvbnQtc2l6ZTp2YXIoLS11aS1saWItdHlwb2dyYXBoeS1mb250LXNpemUpO2ZvbnQtd2VpZ2h0OjQwMDstLXVpLWxpYi10eXBvZ3JhcGh5LWxpbmUtaGVpZ2h0OjE4cHg7bGluZS1oZWlnaHQ6dmFyKC0tdWktbGliLXR5cG9ncmFwaHktbGluZS1oZWlnaHQpfS5saW5rLWc5bnpSWTZTe2NvbG9yOmluaGVyaXQ7ZGlyZWN0aW9uOmx0cn1AbWVkaWEgKGFueS1ob3Zlcjpob3Zlcil7LmxpbmstZzluelJZNlM6aG92ZXIsLmxpbmstZzluelJZNlM6aG92ZXIgLmljb24tZzluelJZNlN7Y29sb3I6dmFyKC0tY29sb3ItdHYtYmx1ZS02MDApfX0udGV4dC1nOW56Ulk2U3ttYXJnaW4taW5saW5lLWVuZDoycHg7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXN9Lmljb24tZzluelJZNlN7Y29sb3I6dmFyKC0tY29sb3ItZGVmYXVsdC1ncmF5KTtkaXNwbGF5OmlubGluZS1ibG9jaztoZWlnaHQ6MThweDttYXJnaW4tYm90dG9tOjJweDt2ZXJ0aWNhbC1hbGlnbjpib3R0b207d2lkdGg6MThweH1bZGF0YS10aGVtZT1saWdodF17LS1fMC1TcmlWOnZhcigtLWNvbG9yLWNvbGQtZ3JheS05MDApOy0tXzEtU3JpVjp2YXIoLS1jb2xvci1jb2xkLWdyYXktNDAwKX1bZGF0YS10aGVtZT1kYXJrXXstLV8wLVNyaVY6dmFyKC0tY29sb3ItY29sZC1ncmF5LTIwMCk7LS1fMS1TcmlWOnZhcigtLWNvbG9yLWNvbGQtZ3JheS00NTApfS5hZGRpdGlvbmFsLWNGX3FEWndELC5pbnZhbGlkLWNGX3FEWndEe2Rpc3BsYXk6aW5saW5lLWJsb2NrO2ZvbnQtc2l6ZToxMnB4O2xpbmUtaGVpZ2h0OjE3cHg7cGFkZGluZzoycHggMH0uZG90V3JhcC1jRl9xRFp3RHtkaXNwbGF5OmlubGluZS1ibG9jaztoZWlnaHQ6NXB4O21hcmdpbjowIDZweH0uZG90V3JhcC1jRl9xRFp3RC5zbWFsbE1hcmdpbi1jRl9xRFp3RHttYXJnaW4taW5saW5lLXN0YXJ0OjNweH0uZG90V3JhcC1jRl9xRFp3RCAuZG90LWNGX3FEWndEe2JhY2tncm91bmQtY29sb3I6dmFyKC0tXzEtU3JpVik7Ym9yZGVyLXJhZGl1czo1MCU7aGVpZ2h0OjNweDt3aWR0aDozcHh9Lm1haW4tY0ZfcURad0R7Y29sb3I6dmFyKC0tXzAtU3JpVik7ZGlzcGxheTppbmxpbmUtYmxvY2s7Zm9udC1zaXplOjEycHg7bGluZS1oZWlnaHQ6MjJweH0uYWRkaXRpb25hbC1jRl9xRFp3RHtjb2xvcjp2YXIoLS1fMS1TcmlWKX0uaW52YWxpZC1jRl9xRFp3RHtjb2xvcjp2YXIoLS1jb2xvci1yaXBlLXJlZC00MDApfS5saW5rLWNGX3FEWndEe2NvbG9yOmluaGVyaXR9QG1lZGlhIChhbnktaG92ZXI6aG92ZXIpey5saW5rLWNGX3FEWndEOmhvdmVye2NvbG9yOnZhcigtLWNvbG9yLXR2LWJsdWUtNjAwKX19LmNvbnRhaW5lci1oTzM3bmRxTXtkaXNwbGF5OmZsZXg7ZmxleC13cmFwOndyYXB9LmFzay1oTzM3bmRxTSwuYmlkLWhPMzduZHFNe2FsaWduLWl0ZW1zOmNlbnRlcjtib3JkZXItcmFkaXVzOjE2cHg7Ym94LXNpemluZzpib3JkZXItYm94O2Rpc3BsYXk6ZmxleDtmb250LXNpemU6MTJweDtoZWlnaHQ6MThweDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2xpbmUtaGVpZ2h0OjE0cHg7bWFyZ2luLXRvcDoycHg7cGFkZGluZzoycHggOHB4fS5hc2staE8zN25kcU17YmFja2dyb3VuZDp2YXIoLS1jb2xvci1vdmVybGF5LW5lZ2F0aXZlLTEtbGlnaHQpO2NvbG9yOnZhcigtLWNvbG9yLXJpcGUtcmVkLTUwMCl9LmJpZC1oTzM3bmRxTXtiYWNrZ3JvdW5kOnZhcigtLWNvbG9yLW92ZXJsYXktYWNjZW50LTEtbGlnaHQpO2NvbG9yOnZhcigtLWNvbG9yLXR2LWJsdWUtNTAwKTttYXJnaW4taW5saW5lLWVuZDo4cHh9W2RhdGEtdGhlbWU9bGlnaHRdey0tXzAtRF8tRDp2YXIoLS1jb2xvci1jb2xkLWdyYXktOTAwKTstLV8xLURfLUQ6dmFyKC0tY29sb3ItY29sZC1ncmF5LTEwMCl9W2RhdGEtdGhlbWU9ZGFya117LS1fMC1EXy1EOnZhcigtLWNvbG9yLWNvbGQtZ3JheS0yMDApOy0tXzEtRF8tRDp2YXIoLS1jb2xvci1jb2xkLWdyYXktODAwKX0uY29udGFpbmVyLVlyTG14UXpre21hcmdpbi1ib3R0b206OHB4O21pbi1oZWlnaHQ6MzlweH0uaGVhZGVyLVlyTG14UXpre2FsaWduLWl0ZW1zOmNlbnRlcjtkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW59LmhlYWRlci1ZckxteFF6ayAudGl0bGUtWXJMbXhRemt7Y29sb3I6dmFyKC0tY29sb3ItY29sZC1ncmF5LTQwMCk7Zm9udC1zaXplOjExcHg7bGV0dGVyLXNwYWNpbmc6LjRweDtsaW5lLWhlaWdodDoxNnB4O3BhZGRpbmc6MCAycHg7dGV4dC1hbGlnbjpjZW50ZXI7dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlfS5oZWFkZXItWXJMbXhRemsgLnByaWNlLVlyTG14UXpre2NvbG9yOnZhcigtLV8wLURfLUQpO2ZvbnQtc2l6ZToxM3B4O2xpbmUtaGVpZ2h0OjE5cHg7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7d2hpdGUtc3BhY2U6bm93cmFwfS5yYW5nZS1ZckxteFF6a3tiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLV8xLURfLUQpO2JvcmRlci1yYWRpdXM6MTJweDtmbGV4LXNocmluazowO2hlaWdodDo2cHg7bWFyZ2luLWJsb2NrOjRweCAycHg7bWFyZ2luLWlubGluZTowIDA7d2lkdGg6MTAwJX0ucmFuZ2UtWXJMbXhRemsgLmJhci1ZckxteFF6a3tiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLW1pbnR5LWdyZWVuLWE2MDApO2JvcmRlci1jb2xvcjp2YXIoLS1jb2xvci1iZy1wcmltYXJ5KTtib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLXdpZHRoOjAgMnB4O2hlaWdodDppbmhlcml0O3Bvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOjIwcHh9LnJhbmdlLVlyTG14UXprIC5iYXItWXJMbXhRemsubG93LVlyTG14UXpre2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItcmlwZS1yZWQtNTAwKX0ucmFuZ2UtWXJMbXhRemsgLmJhci1ZckxteFF6ay5yb3VuZGVkTGVmdC1ZckxteFF6a3tib3JkZXItZW5kLXN0YXJ0LXJhZGl1czoxMnB4O2JvcmRlci1pbmxpbmUtc3RhcnQ6bm9uZTtib3JkZXItc3RhcnQtc3RhcnQtcmFkaXVzOjEycHh9LnJhbmdlLVlyTG14UXprIC5iYXItWXJMbXhRemsucm91bmRlZFJpZ2h0LVlyTG14UXpre2JvcmRlci1lbmQtZW5kLXJhZGl1czoxMnB4O2JvcmRlci1pbmxpbmUtZW5kOm5vbmU7Ym9yZGVyLXN0YXJ0LWVuZC1yYWRpdXM6MTJweH0uYXJyb3dDb250YWluZXItWXJMbXhRemt7aGVpZ2h0OjhweDtwb3NpdGlvbjpyZWxhdGl2ZX0uYXJyb3dDb250YWluZXItWXJMbXhRemsgLmFycm93LVlyTG14UXpre2Rpc3BsYXk6ZmxleDttYXJnaW4taW5saW5lLXN0YXJ0Oi00cHg7cG9zaXRpb246YWJzb2x1dGV9LmFycm93Q29udGFpbmVyLVlyTG14UXprIC5hcnJvdy1ZckxteFF6ay5leHRyYU1hcmdpbi1ZckxteFF6a3ttYXJnaW4taW5saW5lLXN0YXJ0Oi02cHh9LmNvbnRlbnQtVUZvd2RWTnp7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtnYXA6OHB4fS5jb250ZW50LVVGb3dkVk56LnNtYWxsLVVGb3dkVk56e2dhcDo0cHh9LmJsb2NrLVVGb3dkVk56e2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2Vlbn0udGl0bGUtVUZvd2RWTnp7LS11aS1saWItdHlwb2dyYXBoeS1mb250LXNpemU6MTRweDstLXVpLWxpYi10eXBvZ3JhcGh5LWxpbmUtaGVpZ2h0OjE4cHg7Y29sb3I6dmFyKC0tY29sb3ItY29udGVudC1wcmltYXJ5LW5ldXRyYWwpO3doaXRlLXNwYWNlOm5vd3JhcH0udGl0bGUtVUZvd2RWTnosLnRpdGxlLVVGb3dkVk56LnNtYWxsLVVGb3dkVk56e2ZvbnQtZmFtaWx5Oi1hcHBsZS1zeXN0ZW0sQmxpbmtNYWNTeXN0ZW1Gb250LFRyZWJ1Y2hldCBNUyxSb2JvdG8sVWJ1bnR1LHNhbnMtc2VyaWY7Zm9udC1mZWF0dXJlLXNldHRpbmdzOiJ0bnVtIiBvbiwibG51bSIgb247Zm9udC1zaXplOnZhcigtLXVpLWxpYi10eXBvZ3JhcGh5LWZvbnQtc2l6ZSk7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC13ZWlnaHQ6NDAwO2xpbmUtaGVpZ2h0OnZhcigtLXVpLWxpYi10eXBvZ3JhcGh5LWxpbmUtaGVpZ2h0KX0udGl0bGUtVUZvd2RWTnouc21hbGwtVUZvd2RWTnp7LS11aS1saWItdHlwb2dyYXBoeS1mb250LXNpemU6MTJweDstLXVpLWxpYi10eXBvZ3JhcGh5LWxpbmUtaGVpZ2h0OjE2cHh9LnZhbHVlLVVGb3dkVk56ey0tdWktbGliLXR5cG9ncmFwaHktZm9udC1zaXplOjE0cHg7LS11aS1saWItdHlwb2dyYXBoeS1saW5lLWhlaWdodDoxOHB4O2NvbG9yOnZhcigtLWNvbG9yLWNvbnRlbnQtcHJpbWFyeS1uZXV0cmFsLWJvbGQpO3doaXRlLXNwYWNlOm5vd3JhcH0udmFsdWUtVUZvd2RWTnosLnZhbHVlLVVGb3dkVk56LnNtYWxsLVVGb3dkVk56e2ZvbnQtZmFtaWx5Oi1hcHBsZS1zeXN0ZW0sQmxpbmtNYWNTeXN0ZW1Gb250LFRyZWJ1Y2hldCBNUyxSb2JvdG8sVWJ1bnR1LHNhbnMtc2VyaWY7Zm9udC1mZWF0dXJlLXNldHRpbmdzOiJ0bnVtIiBvbiwibG51bSIgb247Zm9udC1zaXplOnZhcigtLXVpLWxpYi10eXBvZ3JhcGh5LWZvbnQtc2l6ZSk7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC13ZWlnaHQ6NDAwO2xpbmUtaGVpZ2h0OnZhcigtLXVpLWxpYi10eXBvZ3JhcGh5LWxpbmUtaGVpZ2h0KX0udmFsdWUtVUZvd2RWTnouc21hbGwtVUZvd2RWTnp7LS11aS1saWItdHlwb2dyYXBoeS1mb250LXNpemU6MTJweDstLXVpLWxpYi10eXBvZ3JhcGh5LWxpbmUtaGVpZ2h0OjE2cHh9LnJhbmdlLVVGb3dkVk56e2JhY2tncm91bmQ6dmFyKC0tY29sb3ItY29udGVudC1wcmltYXJ5LW5ldXRyYWwtZXh0cmEtbGlnaHQpO2JvcmRlci1yYWRpdXM6MjBweDtoZWlnaHQ6MTJweDtvdmVyZmxvdzpoaWRkZW47cG9zaXRpb246cmVsYXRpdmV9LnJhbmdlLVVGb3dkVk56LnNtYWxsLVVGb3dkVk56e2JvcmRlci1yYWRpdXM6M3B4O2hlaWdodDo2cHh9LnJhbmdlSXRlbS1VRm93ZFZOentkaXNwbGF5OmJsb2NrO2hlaWdodDoxMDAlO2luc2V0LWlubGluZS1lbmQ6MDtpbnNldC1pbmxpbmUtc3RhcnQ6MDtwb3NpdGlvbjphYnNvbHV0ZTt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuM3MgZWFzZS1pbi1vdXR9QG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOnJlZHVjZSl7LnJhbmdlSXRlbS1VRm93ZFZOent0cmFuc2l0aW9uOm5vbmV9fS5yYW5nZUl0ZW0tVUZvd2RWTnoubGVmdC1VRm93ZFZOentiYWNrZ3JvdW5kOnZhcigtLWNvbG9yLWNvbnRlbnQtcHJpbWFyeS1hY2NlbnQpO3RyYW5zZm9ybTp0cmFuc2xhdGVYKC0xMDAlKX0ucmFuZ2VJdGVtLVVGb3dkVk56LmxlZnQtVUZvd2RWTno6YmVmb3Jle2luc2V0LWlubGluZS1lbmQ6LTFweH0ucmFuZ2VJdGVtLVVGb3dkVk56LmxlZnQtVUZvd2RWTno6ZGlyKHJ0bCl7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoMTAwJSl9LnJhbmdlSXRlbS1VRm93ZFZOei5yaWdodC1VRm93ZFZOentiYWNrZ3JvdW5kOnZhcigtLWNvbG9yLWNvbnRlbnQtcHJpbWFyeS1kYW5nZXIpO3RyYW5zZm9ybTp0cmFuc2xhdGVYKDEwMCUpfS5yYW5nZUl0ZW0tVUZvd2RWTnoucmlnaHQtVUZvd2RWTno6YmVmb3Jle2luc2V0LWlubGluZS1zdGFydDotMXB4fS5yYW5nZUl0ZW0tVUZvd2RWTnoucmlnaHQtVUZvd2RWTno6ZGlyKHJ0bCl7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTEwMCUpfS5yYW5nZUl0ZW0tVUZvd2RWTnoud2l0aFNlcGFyYXRvci1VRm93ZFZOejpiZWZvcmV7YmFja2dyb3VuZDp2YXIoLS1jb2xvci1iYWNrZ3JvdW5kLXByaW1hcnkpO2NvbnRlbnQ6IiI7aGVpZ2h0OjEwMCU7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MnB4fS5oaWRlLVVGb3dkVk56IC5yYW5nZUl0ZW0tVUZvd2RWTnosLmhpZGUtVUZvd2RWTnogLnZhbHVlLVVGb3dkVk56e3Zpc2liaWxpdHk6aGlkZGVufVtkYXRhLXRoZW1lPWxpZ2h0XXstLV8wLVFIQU46dmFyKC0tY29sb3ItY29sZC1ncmF5LTkwMCl9W2RhdGEtdGhlbWU9ZGFya117LS1fMC1RSEFOOnZhcigtLWNvbG9yLWNvbGQtZ3JheS0yMDApfS5idXR0b24tWF9Jb2VuangsLmJ1dHRvbi1YX0lvZW5qeC5ob3Zlci1YX0lvZW5qeCwuYnV0dG9uLVhfSW9lbmp4OmFjdGl2ZXtjb2xvcjp2YXIoLS1fMC1RSEFOKX1AbWVkaWEgKGFueS1ob3Zlcjpob3Zlcil7LmJ1dHRvbi1YX0lvZW5qeDpob3Zlcntjb2xvcjp2YXIoLS1fMC1RSEFOKX19LmJ1dHRvbi1YX0lvZW5qeC5ob3Zlci1YX0lvZW5qeDpiZWZvcmUsLmJ1dHRvbi1YX0lvZW5qeDphY3RpdmU6YmVmb3Jle2JvcmRlci1yYWRpdXM6NHB4O2JvdHRvbTowO2luc2V0LWlubGluZS1lbmQ6MDtpbnNldC1pbmxpbmUtc3RhcnQ6MDt0b3A6MH1AbWVkaWEgKGFueS1ob3Zlcjpob3Zlcil7LmJ1dHRvbi1YX0lvZW5qeDpob3ZlcjpiZWZvcmV7Ym9yZGVyLXJhZGl1czo0cHg7Ym90dG9tOjA7aW5zZXQtaW5saW5lLWVuZDowO2luc2V0LWlubGluZS1zdGFydDowO3RvcDowfX0uYnV0dG9uLVhfSW9lbmp4LmlzT3BlbmVkLVhfSW9lbmp4LmhvdmVyLVhfSW9lbmp4OmJlZm9yZSwuYnV0dG9uLVhfSW9lbmp4LmlzT3BlbmVkLVhfSW9lbmp4OmFjdGl2ZTpiZWZvcmUsLmJ1dHRvbi1YX0lvZW5qeC5pc09wZW5lZC1YX0lvZW5qeDpiZWZvcmV7Ym9yZGVyLXJhZGl1czo0cHh9QG1lZGlhIChhbnktaG92ZXI6aG92ZXIpey5idXR0b24tWF9Jb2VuanguaXNPcGVuZWQtWF9Jb2Vuang6aG92ZXI6YmVmb3Jle2JvcmRlci1yYWRpdXM6NHB4fX0uaW5uZXItWF9Jb2Vuanh7Zm9udC1zaXplOjEzcHg7Zm9udC13ZWlnaHQ6NjAwO2hlaWdodDoxN3B4O2xpbmUtaGVpZ2h0OjE3cHg7b3ZlcmZsb3c6aGlkZGVuO3BhZGRpbmc6NHB4O3BhZGRpbmctaW5saW5lLWVuZDowO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7d2hpdGUtc3BhY2U6bm93cmFwfS5zZWxlY3Rvci1VbXJfMlVyantoZWlnaHQ6MjhweDttYXJnaW4tYm90dG9tOjNweDttYXJnaW4taW5saW5lLXN0YXJ0Oi00cHg7d2lkdGg6bWluLWNvbnRlbnR9LmN1cnJlbmN5LVVtcl8yVXJqey0tdWktbGliLXR5cG9ncmFwaHktbGluZS1oZWlnaHQ6MTZweDstLXVpLWxpYi10eXBvZ3JhcGh5LWZvbnQtc2l6ZToxMXB4O2xldHRlci1zcGFjaW5nOi40cHg7bWFyZ2luLWxlZnQ6MnB4O3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZX0uYmFyVGl0bGUtVW1yXzJVcmosLmN1cnJlbmN5LVVtcl8yVXJqe2ZvbnQtZmFtaWx5Oi1hcHBsZS1zeXN0ZW0sQmxpbmtNYWNTeXN0ZW1Gb250LFRyZWJ1Y2hldCBNUyxSb2JvdG8sVWJ1bnR1LHNhbnMtc2VyaWY7Zm9udC1mZWF0dXJlLXNldHRpbmdzOiJ0bnVtIiBvbiwibG51bSIgb247Zm9udC1zaXplOnZhcigtLXVpLWxpYi10eXBvZ3JhcGh5LWZvbnQtc2l6ZSk7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC13ZWlnaHQ6NDAwO2xpbmUtaGVpZ2h0OnZhcigtLXVpLWxpYi10eXBvZ3JhcGh5LWxpbmUtaGVpZ2h0KX0uYmFyVGl0bGUtVW1yXzJVcmp7LS11aS1saWItdHlwb2dyYXBoeS1mb250LXNpemU6MTNweDstLXVpLWxpYi10eXBvZ3JhcGh5LWxpbmUtaGVpZ2h0OjE4cHg7bWFyZ2luLWJvdHRvbTo0cHh9LmJhcldyYXAtVW1yXzJVcmo6bm90KDpsYXN0LWNoaWxkKXttYXJnaW4tYm90dG9tOjEycHh9LnRpdGxlLU5XMzFDbGxje2FsaWduLWl0ZW1zOmJhc2VsaW5lO2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2Vlbn0udGV4dC1OVzMxQ2xsY3tjb2xvcjp2YXIoLS1jb2xvci1kZWZhdWx0LWdyYXkpO2ZvbnQtc2l6ZToxM3B4O2ZvbnQtd2VpZ2h0OjUwMDtsaW5lLWhlaWdodDoxN3B4fS5pdGVtcy1JcU5LY3hTTHtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO21hcmdpbi1ib3R0b206OHB4fS5idXR0b24tSXFOS2N4U0x7aGVpZ2h0OjIxcHg7d2lkdGg6NDJweH0uZGFuZ2VyLVBXbDVDRFY1e2NvbG9yOnZhcigtLWNvbG9yLWNvbnRhaW5lci1maWxsLXByaW1hcnktZGFuZ2VyKX0uY2FwaXRhbGl6ZUZpcnN0LVBXbDVDRFY1OmZpcnN0LWxldHRlcnt0ZXh0LXRyYW5zZm9ybTpjYXBpdGFsaXplfS5ibG9jay1QM0o2Sko5dXtib3JkZXItcmFkaXVzOjhweDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2ZvbnQtZmFtaWx5Oi1hcHBsZS1zeXN0ZW0sQmxpbmtNYWNTeXN0ZW1Gb250LFRyZWJ1Y2hldCBNUyxSb2JvdG8sVWJ1bnR1LHNhbnMtc2VyaWY7Zm9udC1mZWF0dXJlLXNldHRpbmdzOiJ0bnVtIiBvbiwibG51bSIgb247Zm9udC1zdHlsZTpub3JtYWw7Z2FwOjRweDtwYWRkaW5nLWJsb2NrOjhweDtwYWRkaW5nLWlubGluZToxMnB4Oy0tdWktbGliLXR5cG9ncmFwaHktZm9udC1zaXplOjEycHg7Zm9udC1zaXplOnZhcigtLXVpLWxpYi10eXBvZ3JhcGh5LWZvbnQtc2l6ZSk7Zm9udC13ZWlnaHQ6NDAwOy0tdWktbGliLXR5cG9ncmFwaHktbGluZS1oZWlnaHQ6MTZweDtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLWNvbnRhaW5lci1maWxsLXByaW1hcnktbmV1dHJhbC1leHRyYS1saWdodCk7Y29sb3I6dmFyKC0tY29sb3ItY29udGVudC1wcmltYXJ5LW5ldXRyYWwtYm9sZCk7bGluZS1oZWlnaHQ6dmFyKC0tdWktbGliLXR5cG9ncmFwaHktbGluZS1oZWlnaHQpfUBtZWRpYSAoYW55LWhvdmVyOmhvdmVyKXsuYmxvY2stUDNKNkpKOXU6aG92ZXJ7YmFja2dyb3VuZDp2YXIoLS1jb2xvci1jb250YWluZXItZmlsbC1wcmltYXJ5LW5ldXRyYWwtbGlnaHQpfX0uYmxvY2stUDNKNkpKOXU6YWN0aXZle2JhY2tncm91bmQ6dmFyKC0tY29sb3ItY29udGFpbmVyLWZpbGwtcHJpbWFyeS1uZXV0cmFsLW5vcm1hbCl9LnRpdGxlLVAzSjZKSjl1e2ZvbnQtZmFtaWx5Oi1hcHBsZS1zeXN0ZW0sQmxpbmtNYWNTeXN0ZW1Gb250LFRyZWJ1Y2hldCBNUyxSb2JvdG8sVWJ1bnR1LHNhbnMtc2VyaWY7Zm9udC1mZWF0dXJlLXNldHRpbmdzOiJ0bnVtIiBvbiwibG51bSIgb247b3ZlcmZsb3ctd3JhcDpicmVhay13b3JkOy0tdWktbGliLXR5cG9ncmFwaHktbGluZS1oZWlnaHQ6MTZweDtsaW5lLWhlaWdodDp2YXIoLS11aS1saWItdHlwb2dyYXBoeS1saW5lLWhlaWdodCk7LS11aS1saWItdHlwb2dyYXBoeS1mb250LXNpemU6MTJweDtmb250LXNpemU6dmFyKC0tdWktbGliLXR5cG9ncmFwaHktZm9udC1zaXplKTtmb250LXN0eWxlOm5vcm1hbDtmb250LXdlaWdodDo2MDB9LnN0YXJ0SWNvbi1QM0o2Sko5dXtkaXNwbGF5OmlubGluZS1ibG9jaztoZWlnaHQ6MThweDttYXJnaW4taW5saW5lLWVuZDo0cHg7cG9zaXRpb246cmVsYXRpdmU7dG9wOjFweDt2ZXJ0aWNhbC1hbGlnbjpib3R0b207d2lkdGg6MThweH0uZm9vdGVyLVAzSjZKSjl1e2FsaWduLWl0ZW1zOmJhc2VsaW5lO2NvbG9yOnZhcigtLWNvbG9yLWNvbnRlbnQtcHJpbWFyeS1uZXV0cmFsKTtkaXNwbGF5OmZsZXg7Zm9udC1mYW1pbHk6LWFwcGxlLXN5c3RlbSxCbGlua01hY1N5c3RlbUZvbnQsVHJlYnVjaGV0IE1TLFJvYm90byxVYnVudHUsc2Fucy1zZXJpZjtmb250LWZlYXR1cmUtc2V0dGluZ3M6InRudW0iIG9uLCJsbnVtIiBvbjtmb250LXN0eWxlOm5vcm1hbDtnYXA6MnB4O3BhZGRpbmctYmxvY2s6MXB4Oy0tdWktbGliLXR5cG9ncmFwaHktZm9udC1zaXplOjEycHg7Zm9udC1zaXplOnZhcigtLXVpLWxpYi10eXBvZ3JhcGh5LWZvbnQtc2l6ZSk7Zm9udC13ZWlnaHQ6NDAwOy0tdWktbGliLXR5cG9ncmFwaHktbGluZS1oZWlnaHQ6MTZweDtsaW5lLWhlaWdodDp2YXIoLS11aS1saWItdHlwb2dyYXBoeS1saW5lLWhlaWdodCl9LmFycm93SWNvbi1QM0o2Sko5dXtkaXNwbGF5OmlubGluZS1mbGV4O2hlaWdodDo4cHg7d2lkdGg6OHB4fS5hcnJvd0ljb24tUDNKNkpKOXUgc3ZnOmRpcihydGwpe3RyYW5zZm9ybTpzY2FsZVgoLTEpfS5ibG9jay1MekRhc1Uza3thbGlnbi1pdGVtczpjZW50ZXI7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1jb250YWluZXItZmlsbC1wcmltYXJ5LW5ldXRyYWwtZXh0cmEtbGlnaHQpO2JvcmRlci1yYWRpdXM6OHB4O2NvbG9yOnZhcigtLWNvbG9yLWNvbnRlbnQtcHJpbWFyeS1uZXV0cmFsLWJvbGQpO2N1cnNvcjpkZWZhdWx0O2Rpc3BsYXk6ZmxleDtmb250LWZhbWlseTotYXBwbGUtc3lzdGVtLEJsaW5rTWFjU3lzdGVtRm9udCxUcmVidWNoZXQgTVMsUm9ib3RvLFVidW50dSxzYW5zLXNlcmlmO2ZvbnQtZmVhdHVyZS1zZXR0aW5nczoidG51bSIgb24sImxudW0iIG9uO2ZvbnQtc3R5bGU6bm9ybWFsO3BhZGRpbmc6NHB4IDZweDstLXVpLWxpYi10eXBvZ3JhcGh5LWZvbnQtc2l6ZToxMnB4O2ZvbnQtc2l6ZTp2YXIoLS11aS1saWItdHlwb2dyYXBoeS1mb250LXNpemUpO2ZvbnQtd2VpZ2h0OjQwMDstLXVpLWxpYi10eXBvZ3JhcGh5LWxpbmUtaGVpZ2h0OjE2cHg7bGluZS1oZWlnaHQ6dmFyKC0tdWktbGliLXR5cG9ncmFwaHktbGluZS1oZWlnaHQpO292ZXJmbG93OmhpZGRlbjt3b3JkLWJyZWFrOmJyZWFrLXdvcmR9QG1lZGlhIChhbnktaG92ZXI6aG92ZXIpey5ibG9jay1MekRhc1Uzazpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLWNvbnRhaW5lci1maWxsLXByaW1hcnktbmV1dHJhbC1saWdodCl9fS5zdGFydEljb24tTHpEYXNVM2t7YWxpZ24taXRlbXM6Y2VudGVyO2Rpc3BsYXk6ZmxleDtoZWlnaHQ6MThweDttYXJnaW4taW5saW5lLWVuZDo0cHh9LmVuZEljb24tTHpEYXNVM2t7aGVpZ2h0OjE4cHg7bWFyZ2luLWlubGluZS1zdGFydDphdXRvfS5hZGROb3RlVGV4dC1MekRhc1Uza3tvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpczt3aGl0ZS1zcGFjZTpub3dyYXB9LmNvbnRlbnQteEJoMjlFMm17ZGlzcGxheTotd2Via2l0LWJveDtvdmVyZmxvdzpoaWRkZW47LXdlYmtpdC1saW5lLWNsYW1wOjI7LXdlYmtpdC1ib3gtb3JpZW50OnZlcnRpY2FsO2xpbmUtaGVpZ2h0OjE2cHg7bWF4LWhlaWdodDozMnB4fVtkYXRhLXRoZW1lPWxpZ2h0XXstLV8wLW1PZEQ6dmFyKC0tY29sb3ItY29sZC1ncmF5LTkwMCk7LS1fMS1tT2REOnZhcigtLWNvbG9yLW1pbnR5LWdyZWVuLTUwMCk7LS1fMi1tT2REOnZhcigtLWNvbG9yLXJpcGUtcmVkLTUwMCk7LS1fMy1tT2REOnZhcigtLWNvbG9yLWNvbGQtZ3JheS01NTApOy0tXzQtbU9kRDp2YXIoLS1jb2xvci1jb2xkLWdyYXktMTAwKX1bZGF0YS10aGVtZT1kYXJrXXstLV8wLW1PZEQ6dmFyKC0tY29sb3ItY29sZC1ncmF5LTIwMCk7LS1fMS1tT2REOnZhcigtLWNvbG9yLW1pbnR5LWdyZWVuLTUwMCk7LS1fMi1tT2REOnZhcigtLWNvbG9yLXJpcGUtcmVkLTUwMCk7LS1fMy1tT2REOnZhcigtLWNvbG9yLWNvbGQtZ3JheS00NTApOy0tXzQtbU9kRDp2YXIoLS1jb2xvci1jb2xkLWdyYXktODAwKX0uY29udGFpbmVyLXBoYVNGOEhUe2FsaWduLWl0ZW1zOmNlbnRlcjtib3JkZXItcmFkaXVzOjRweDtib3gtc2l6aW5nOmJvcmRlci1ib3g7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO21hcmdpbi1ib3R0b206OHB4O21hcmdpbi1pbmxpbmUtZW5kOjhweDtwYWRkaW5nLXRvcDo0cHg7d2lkdGg6Y2FsYygzMy4zMzMzMyUgLSA1LjMzMzMzcHgpfS5jb250YWluZXItcGhhU0Y4SFQ6bnRoLWNoaWxkKDNuKzMpe21hcmdpbi1pbmxpbmUtZW5kOjB9LmNvbnRhaW5lci1waGFTRjhIVDpudGgtY2hpbGQobis0KXttYXJnaW4tYm90dG9tOjB9LnBlcmNlbnRhZ2UtcGhhU0Y4SFR7Zm9udC1mYW1pbHk6LWFwcGxlLXN5c3RlbSxCbGlua01hY1N5c3RlbUZvbnQsVHJlYnVjaGV0IE1TLFJvYm90byxVYnVudHUsc2Fucy1zZXJpZjtmb250LWZlYXR1cmUtc2V0dGluZ3M6InRudW0iIG9uLCJsbnVtIiBvbjstLXVpLWxpYi10eXBvZ3JhcGh5LWxpbmUtaGVpZ2h0OjE4cHg7bGluZS1oZWlnaHQ6dmFyKC0tdWktbGliLXR5cG9ncmFwaHktbGluZS1oZWlnaHQpOy0tdWktbGliLXR5cG9ncmFwaHktZm9udC1zaXplOjEzcHg7Zm9udC1zaXplOnZhcigtLXVpLWxpYi10eXBvZ3JhcGh5LWZvbnQtc2l6ZSk7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50LW51bWVyaWM6bGluaW5nLW51bXMgdGFidWxhci1udW1zO2ZvbnQtd2VpZ2h0OjYwMH0ucGVyY2VudGFnZS1waGFTRjhIVDpkaXIocnRsKXtkaXJlY3Rpb246bHRyfS5wZXJjZW50YWdlTmVnYXRpdmUtcGhhU0Y4SFR7Y29sb3I6dmFyKC0tXzItbU9kRCl9LnBlcmNlbnRhZ2VQb3NpdGl2ZS1waGFTRjhIVHtjb2xvcjp2YXIoLS1fMS1tT2REKX0ucGVyY2VudGFnZU5vbmUtcGhhU0Y4SFR7Y29sb3I6dmFyKC0tXzMtbU9kRCl9LnBlcmlvZC1waGFTRjhIVHtjb2xvcjp2YXIoLS1fMC1tT2REKTtmb250LXNpemU6MTFweDtsZXR0ZXItc3BhY2luZzouNHB4O2xpbmUtaGVpZ2h0OjE2cHg7cGFkZGluZy1ib3R0b206MnB4O3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZX0ubmVnYXRpdmVMb3ctcGhhU0Y4SFR7YmFja2dyb3VuZDpyZ2IoZnJvbSB2YXIoLS1jb2xvci1yaXBlLXJlZC00MDApIHIgZyBiLy4xKX0ubmVnYXRpdmVNZWRpdW0tcGhhU0Y4SFR7YmFja2dyb3VuZDpyZ2IoZnJvbSB2YXIoLS1jb2xvci1yaXBlLXJlZC00MDApIHIgZyBiLy4yKX0ubmVnYXRpdmVIaWdoLXBoYVNGOEhUe2JhY2tncm91bmQ6cmdiKGZyb20gdmFyKC0tY29sb3ItcmlwZS1yZWQtNDAwKSByIGcgYi8uMyl9LnBvc2l0aXZlTG93LXBoYVNGOEhUe2JhY2tncm91bmQ6cmdiKGZyb20gdmFyKC0tY29sb3ItbWludHktZ3JlZW4tNDAwKSByIGcgYi8uMSl9LnBvc2l0aXZlTWVkaXVtLXBoYVNGOEhUe2JhY2tncm91bmQ6cmdiKGZyb20gdmFyKC0tY29sb3ItbWludHktZ3JlZW4tNDAwKSByIGcgYi8uMil9LnBvc2l0aXZlSGlnaC1waGFTRjhIVHtiYWNrZ3JvdW5kOnJnYihmcm9tIHZhcigtLWNvbG9yLW1pbnR5LWdyZWVuLTQwMCkgciBnIGIvLjMpfUBzdXBwb3J0cyBub3QgKGJhY2tncm91bmQ6cmdiKGZyb20gIzAwMCByIGcgYikpey5uZWdhdGl2ZUxvdy1waGFTRjhIVHtiYWNrZ3JvdW5kOiNmNzUyNWYwM30ubmVnYXRpdmVNZWRpdW0tcGhhU0Y4SFR7YmFja2dyb3VuZDojZjc1MjVmMzN9Lm5lZ2F0aXZlSGlnaC1waGFTRjhIVHtiYWNrZ3JvdW5kOiNmNzUyNWY0ZH0ucG9zaXRpdmVMb3ctcGhhU0Y4SFR7YmFja2dyb3VuZDojMjJhYjk0MDN9LnBvc2l0aXZlTWVkaXVtLXBoYVNGOEhUe2JhY2tncm91bmQ6IzIyYWI5NDMzfS5wb3NpdGl2ZUhpZ2gtcGhhU0Y4SFR7YmFja2dyb3VuZDojMjJhYjk0NGR9fS5ub25lLXBoYVNGOEhUe2JhY2tncm91bmQ6dmFyKC0tXzQtbU9kRCl9LnNtYWxsU2l6ZS1waGFTRjhIVHtmb250LXNpemU6MTJweDtsaW5lLWhlaWdodDoxOHB4fS5zZWxlY3QtSVpTQlBLZGJ7ZGlzcGxheTpmbGV4O2ZsZXgtd3JhcDp3cmFwO21hcmdpbjo0cHggMH0udGl0bGUtSVpTQlBLZGJ7Y29sb3I6dmFyKC0tY29sb3ItdGV4dC1wcmltYXJ5KTtkaXNwbGF5OmZsZXg7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NDAwO2hlaWdodDoxN3B4O2xpbmUtaGVpZ2h0OjE3cHg7bWFyZ2luLWlubGluZS1lbmQ6MTZweH0udGl0bGUtSVpTQlBLZGI6bGFzdC1jaGlsZHttYXJnaW4taW5saW5lLWVuZDowfS50aXRsZS1JWlNCUEtkYi5hY3RpdmUtSVpTQlBLZGJ7Ym9yZGVyLWJvdHRvbToxcHggc29saWQ7Ym9yZGVyLWJvdHRvbS1jb2xvcjp2YXIoLS1jb2xvci1icmFuZCk7Y29sb3I6dmFyKC0tY29sb3ItYnJhbmQpfS50aXRsZS1JWlNCUEtkYi5kaXNhYmxlZC1JWlNCUEtkYntjb2xvcjp2YXIoLS1jb2xvci10ZXh0LWRpc2FibGVkKTtwb2ludGVyLWV2ZW50czpub25lfS5jYXJkcy12bEtpRWxiUntkaXNwbGF5OmZsZXg7ZmxleC13cmFwOndyYXB9LmhlYWRlci12bEtpRWxiUntkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW59LnNlbGVjdC12bEtpRWxiUnttYXJnaW4tYmxvY2s6MCA2cHg7bWFyZ2luLWlubGluZTowIDB9LmNvbnRhaW5lci1Ld3JQa2Vtd3ttYXJnaW4tdG9wOi0zcHh9LmhlYWRlcldyYXBwZXItS3dyUGtlbXd7bWFyZ2luLWJvdHRvbTo1cHh9LmhlYWRlci1Ld3JQa2Vtd3tkaXNwbGF5OmZsZXg7ZmxleC13cmFwOndyYXA7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW59LnNldFNlbGVjdFdyYXAtS3dyUGtlbXd7ZGlzcGxheTpmbGV4O2ZsZXgtc2hyaW5rOjA7bWFyZ2luLWlubGluZS1zdGFydDotNHB4O21hcmdpbi10b3A6LTNweH0ucGVyaW9kU2VsZWN0LUt3clBrZW13e2Rpc3BsYXk6ZmxleDtmbGV4LXdyYXA6d3JhcDttYXJnaW46NHB4IDB9LnBlcmlvZFRpdGxlLUt3clBrZW13e2NvbG9yOnZhcigtLWNvbG9yLXRleHQtcHJpbWFyeSk7ZGlzcGxheTpmbGV4O2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjQwMDtoZWlnaHQ6MTdweDtsaW5lLWhlaWdodDoxN3B4O21hcmdpbi1pbmxpbmUtZW5kOjE2cHh9LnBlcmlvZFRpdGxlLUt3clBrZW13Omxhc3QtY2hpbGR7bWFyZ2luLWlubGluZS1lbmQ6MH0ucGVyaW9kVGl0bGUtS3dyUGtlbXcuYWN0aXZlLUt3clBrZW13e2JvcmRlci1ib3R0b206MXB4IHNvbGlkO2JvcmRlci1ib3R0b20tY29sb3I6dmFyKC0tY29sb3ItYnJhbmQpO2NvbG9yOnZhcigtLWNvbG9yLWJyYW5kKX0ucGVyaW9kVGl0bGUtS3dyUGtlbXcuZGlzYWJsZWQtS3dyUGtlbXd7Y29sb3I6dmFyKC0tY29sb3ItdGV4dC1kaXNhYmxlZCk7cG9pbnRlci1ldmVudHM6bm9uZX0udmFsdWUtc2JhQ3hvdEN7bWFyZ2luLWlubGluZS1zdGFydDoxNnB4O292ZXJmbG93OmhpZGRlbn0ud3JhcC15U3d2QkNSMXtwYWRkaW5nOjAgMTZweH0ucGllV3JhcC15U3d2QkNSMXtoZWlnaHQ6MTIwcHg7bWFyZ2luOjAgYXV0byAxMnB4O3dpZHRoOjEyMHB4Oy0tdHYtcGllLWNoYXJ0LWFyYy1pbm5lci10ZXh0LWNvbG9yOiMwMDAwfS5sZWdlbmRJdGVtLXlTd3ZCQ1Ixe2FsaWduLWl0ZW1zOmJhc2VsaW5lO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpyb3d9LnN3YXRjaC15U3d2QkNSMXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWxlZ2VuZC1pdGVtLXJlY3RhbmdsZS1jb2xvcik7bWFyZ2luLWlubGluZS1lbmQ6OHB4fS5zd2F0Y2gteVN3dkJDUjEuc3RvY2tzLXlTd3ZCQ1Ixe2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItdGFuLW9yYW5nZS1hNDAwKX0uc3dhdGNoLXlTd3ZCQ1IxLm90aGVyLXlTd3ZCQ1Ixe2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItZGVlcC1ibHVlLWEyMDApfS5sZWdlbmRUZXh0LXlTd3ZCQ1Ixe2ZsZXg6MSAxIGF1dG99LmxlZ2VuZERhdGEteVN3dkJDUjF7ZGlyZWN0aW9uOmx0cn0ud3JhcC1sV1M4M3lKdHtwYWRkaW5nOjAgMTZweH0uY29udGFpbmVyLWFkNlRscGVle292ZXJmbG93OmhpZGRlbn0ubWVudUhlYWRlci1GSlEwa1BLaHthbGlnbi1pdGVtczpjZW50ZXI7ZGlzcGxheTpmbGV4O2hlaWdodDoyMHB4fS50aXRsZS1GSlEwa1BLaHtmb250LWZhbWlseTotYXBwbGUtc3lzdGVtLEJsaW5rTWFjU3lzdGVtRm9udCxUcmVidWNoZXQgTVMsUm9ib3RvLFVidW50dSxzYW5zLXNlcmlmO2ZvbnQtZmVhdHVyZS1zZXR0aW5nczoidG51bSIgb24sImxudW0iIG9uOy0tdWktbGliLXR5cG9ncmFwaHktbGluZS1oZWlnaHQ6MTZweDtsaW5lLWhlaWdodDp2YXIoLS11aS1saWItdHlwb2dyYXBoeS1saW5lLWhlaWdodCk7LS11aS1saWItdHlwb2dyYXBoeS1mb250LXNpemU6MTJweDtmb250LXNpemU6dmFyKC0tdWktbGliLXR5cG9ncmFwaHktZm9udC1zaXplKTtmb250LXN0eWxlOm5vcm1hbDtmb250LXdlaWdodDo2MDB9Lm1lbnVCdXR0b24tRkpRMGtQS2h7LS10di10b29sYmFyLW9wZW5lZC1lbGVtZW50LWhvdmVyLWJvcmRlci1yYWRpdXM6NnB4Oy0tdHYtdG9vbGJhci1leHBsaWNpdC1ob3Zlci1tYXJnaW46MDtkaXNwbGF5OmZsZXg7ZmxleC1ncm93OjA7aGVpZ2h0OjE4cHg7anVzdGlmeS1jb250ZW50OmNlbnRlcjtwYWRkaW5nOjRweDt3aWR0aDoxOHB4fS5saW5rLWszMjhBbnZre2FsaWduLWl0ZW1zOmNlbnRlcjtkaXNwbGF5OmZsZXg7b3ZlcmZsb3c6aGlkZGVufS50ZXh0LWszMjhBbnZre2ZvbnQtZmFtaWx5Oi1hcHBsZS1zeXN0ZW0sQmxpbmtNYWNTeXN0ZW1Gb250LFRyZWJ1Y2hldCBNUyxSb2JvdG8sVWJ1bnR1LHNhbnMtc2VyaWY7Zm9udC1mZWF0dXJlLXNldHRpbmdzOiJ0bnVtIiBvbiwibG51bSIgb247Zm9udC1zdHlsZTpub3JtYWw7LS11aS1saWItdHlwb2dyYXBoeS1mb250LXNpemU6MTNweDtmb250LXNpemU6dmFyKC0tdWktbGliLXR5cG9ncmFwaHktZm9udC1zaXplKTtmb250LXdlaWdodDo0MDA7LS11aS1saWItdHlwb2dyYXBoeS1saW5lLWhlaWdodDoxOHB4O2xpbmUtaGVpZ2h0OnZhcigtLXVpLWxpYi10eXBvZ3JhcGh5LWxpbmUtaGVpZ2h0KTtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpczt3aGl0ZS1zcGFjZTpub3dyYXB9LmRldGFpbHNMaW5rSWNvbi1rMzI4QW52a3thbGlnbi1zZWxmOmZsZXgtc3RhcnQ7bWFyZ2luLWJvdHRvbTowfS5pdGVtLWszMjhBbnZrLC5pdGVtV2l0aE91dEhvdmVyLWszMjhBbnZre21heC13aWR0aDoyNzBweDtvdmVyZmxvdzpoaWRkZW59Lml0ZW0tazMyOEFudmt7Y3Vyc29yOnBvaW50ZXJ9Lml0ZW1XaXRoT3V0SG92ZXItazMyOEFudmt7LS10di1jb2xvci1wb3B1cC1lbGVtZW50LXRleHQtaG92ZXI6dmFyKC0tY29sb3ItcG9wdXAtZWxlbWVudC10ZXh0KTstLXR2LWNvbG9yLXBvcHVwLWVsZW1lbnQtYmFja2dyb3VuZC1ob3ZlcjojMDAwMH0ubGFiZWwtazMyOEFudmt7Zm9udC1mYW1pbHk6LWFwcGxlLXN5c3RlbSxCbGlua01hY1N5c3RlbUZvbnQsVHJlYnVjaGV0IE1TLFJvYm90byxVYnVudHUsc2Fucy1zZXJpZjtmb250LWZlYXR1cmUtc2V0dGluZ3M6InRudW0iIG9uLCJsbnVtIiBvbjtmb250LXN0eWxlOm5vcm1hbDstLXVpLWxpYi10eXBvZ3JhcGh5LWZvbnQtc2l6ZToxM3B4O2ZvbnQtc2l6ZTp2YXIoLS11aS1saWItdHlwb2dyYXBoeS1mb250LXNpemUpO2ZvbnQtd2VpZ2h0OjQwMDstLXVpLWxpYi10eXBvZ3JhcGh5LWxpbmUtaGVpZ2h0OjE4cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7bGluZS1oZWlnaHQ6dmFyKC0tdWktbGliLXR5cG9ncmFwaHktbGluZS1oZWlnaHQpO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXN9Lmljb24tdlBGTDlKVWF7aGVpZ2h0OjE4cHg7d2lkdGg6MThweH0uYnV0dG9uLUt3RnpwR1ZXe2FsaWduLWl0ZW1zOmNlbnRlcjthbGlnbi1zZWxmOmZsZXgtc3RhcnQ7Y29sb3I6dmFyKC0tY29sb3ItZGVmYXVsdC1ncmF5KTtkaXNwbGF5OmZsZXg7aGVpZ2h0OjIycHg7anVzdGlmeS1jb250ZW50OmNlbnRlcjt3aWR0aDoyMnB4Oy0tdHYtdG9vbGJhci1leHBsaWNpdC1ob3Zlci1tYXJnaW46MH0ud3JhcC1uVExUZ1loWXthbGlnbi1pdGVtczpjZW50ZXI7ZGlzcGxheTpmbGV4O292ZXJmbG93OmhpZGRlbn0ubG9nby1uVExUZ1loWXttYXJnaW4taW5saW5lLWVuZDoycHg7bWluLXdpZHRoOjE4cHh9Lm1lbnVDb3B5QnV0dG9uLXlobFFBWlNVey0tdHYtY29sb3ItdG9vbGJhci1idXR0b24tYmFja2dyb3VuZC1ob3Zlcjp2YXIoLS1jb2xvci1idXR0b24taG92ZXItYmcpfS5pY29ucy15aGxRQVpTVXthbGlnbi1pdGVtczpjZW50ZXI7ZGlzcGxheTpmbGV4O2dhcDo0cHh9Lmljb24teWhsUUFaU1V7aGVpZ2h0OjE4cHg7d2lkdGg6MThweH0ubG9nby15aGxRQVpTVXttYXJnaW4taW5saW5lLWVuZDo2cHg7bWluLXdpZHRoOjE4cHh9LmRlc2NyaXB0aW9uLXlobFFBWlNVe21hcmdpbi1pbmxpbmUtZW5kOjRweDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpczt3aGl0ZS1zcGFjZTpub3dyYXB9LmxhYmVsLXlobFFBWlNVe2FsaWduLWl0ZW1zOmNlbnRlcjtkaXNwbGF5OmZsZXg7ZmxleC13cmFwOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW59LndyYXAtbXFGS2RYRk97YWxpZ24taXRlbXM6Y2VudGVyO2NvbHVtbi1nYXA6MjRweDtkaXNwbGF5OmdyaWQ7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOnJlcGVhdChhdXRvLWZpdCxtaW5tYXgoMTIycHgsMWZyKSk7cGFkZGluZy10b3A6NHB4O3Jvdy1nYXA6MTJweH0uaXRlbS1CMnZUMVBqUHthbGlnbi1pdGVtczpjZW50ZXI7ZGlzcGxheTpmbGV4fS50ZXh0LUIydlQxUGpQe21hcmdpbi1pbmxpbmUtZW5kOjJweDtvdmVyZmxvdzpoaWRkZW47d29yZC1icmVhazpicmVhay13b3JkfS5kZXNjcmlwdGlvbnMtWFlROHRwR3h7Y29sb3I6dmFyKC0tY29sb3ItdG9vbGJhci1pbnRlcmFjdGl2ZS1lbGVtZW50LXRleHQtbm9ybWFsKTtmb250LXNpemU6MTNweDtsaW5lLWhlaWdodDp2YXIoLS1idXNpbmVzcy1kZXNjcmlwdGlvbi1yb3ctaGVpZ2h0LDE5cHgpO21hcmdpbi10b3A6MTJweDstd2Via2l0LXVzZXItc2VsZWN0OnRleHQ7dXNlci1zZWxlY3Q6dGV4dH0uZGVzY3JpcHRpb25zLVhZUTh0cEd4LmNvbGxhcHNlZC1YWVE4dHBHeHtkaXNwbGF5Oi13ZWJraXQtYm94O292ZXJmbG93OmhpZGRlbjstd2Via2l0LWxpbmUtY2xhbXA6dmFyKC0tYnVzaW5lc3MtZGVzY3JpcHRpb24tcm93LWxpbWl0LDUpOy13ZWJraXQtYm94LW9yaWVudDp2ZXJ0aWNhbDtsaW5lLWhlaWdodDp2YXIoLS1idXNpbmVzcy1kZXNjcmlwdGlvbi1yb3ctaGVpZ2h0LDE5cHgpO21heC1oZWlnaHQ6Y2FsYyh2YXIoLS1idXNpbmVzcy1kZXNjcmlwdGlvbi1yb3ctaGVpZ2h0LCAxOXB4KSp2YXIoLS1idXNpbmVzcy1kZXNjcmlwdGlvbi1yb3ctbGltaXQsIDUpKX0uYnV0dG9uLVhZUTh0cEd4e2hlaWdodDoyMXB4O21hcmdpbi10b3A6OHB4O3dpZHRoOjQycHh9LnZhbHVlLUhiS1RodW9He21hcmdpbi1pbmxpbmUtc3RhcnQ6MTZweDtvdmVyZmxvdzpoaWRkZW59Lml0ZW0tSGJLVGh1b0d7cGFkZGluZzoxcHggMH0ubGluay1IYktUaHVvR3thbGlnbi1pdGVtczpjZW50ZXI7ZGlzcGxheTpmbGV4fS5kZXRhaWxzTGlua0ljb24tSGJLVGh1b0d7YWxpZ24tc2VsZjpmbGV4LXN0YXJ0O21hcmdpbi1ib3R0b206MH0udGl0bGUtRXZpVUM2RDV7Zm9udC1mZWF0dXJlLXNldHRpbmdzOiJ0bnVtIiBvbiwibG51bSIgb247LS11aS1saWItdHlwb2dyYXBoeS1saW5lLWhlaWdodDoxNnB4Oy0tdWktbGliLXR5cG9ncmFwaHktZm9udC1zaXplOjEycHg7Zm9udC1zaXplOnZhcigtLXVpLWxpYi10eXBvZ3JhcGh5LWZvbnQtc2l6ZSk7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC13ZWlnaHQ6NjAwfS5pdGVtQ29udGVudC1FdmlVQzZENSwudGl0bGUtRXZpVUM2RDV7Zm9udC1mYW1pbHk6LWFwcGxlLXN5c3RlbSxCbGlua01hY1N5c3RlbUZvbnQsVHJlYnVjaGV0IE1TLFJvYm90byxVYnVudHUsc2Fucy1zZXJpZjtsaW5lLWhlaWdodDp2YXIoLS11aS1saWItdHlwb2dyYXBoeS1saW5lLWhlaWdodCl9Lml0ZW1Db250ZW50LUV2aVVDNkQ1e2ZvbnQtZmVhdHVyZS1zZXR0aW5nczoidG51bSIgb24sImxudW0iIG9uO2ZvbnQtc3R5bGU6bm9ybWFsO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3doaXRlLXNwYWNlOm5vd3JhcDstLXVpLWxpYi10eXBvZ3JhcGh5LWZvbnQtc2l6ZToxM3B4O2ZvbnQtc2l6ZTp2YXIoLS11aS1saWItdHlwb2dyYXBoeS1mb250LXNpemUpO2ZvbnQtd2VpZ2h0OjQwMDstLXVpLWxpYi10eXBvZ3JhcGh5LWxpbmUtaGVpZ2h0OjE4cHg7bGluZS1oZWlnaHQ6MjBweH0uaXRlbUNvbnRlbnQtRXZpVUM2RDUud2l0aEljb24tRXZpVUM2RDV7YWxpZ24taXRlbXM6Y2VudGVyO2Rpc3BsYXk6ZmxleDtoZWlnaHQ6MjBweH0ud3JhcC1EbmFGbUI3YnthbGlnbi1pdGVtczpiYXNlbGluZTtjb2x1bW4tZ2FwOjI0cHg7ZGlzcGxheTpncmlkO2dyaWQtdGVtcGxhdGUtY29sdW1uczpyZXBlYXQoYXV0by1maXQsbWlubWF4KDEyMnB4LDFmcikpO3BhZGRpbmctdG9wOjRweDtyb3ctZ2FwOjEycHh9LnZhbHVlLVNyblY1eHgye21hcmdpbi1pbmxpbmUtc3RhcnQ6MTZweDtvdmVyZmxvdzpoaWRkZW59LmxpbmstU3JuVjV4eDJ7YWxpZ24taXRlbXM6Y2VudGVyO2NvbG9yOnZhcigtLWNvbG9yLXRleHQtcHJpbWFyeSk7ZGlzcGxheTpmbGV4O21hcmdpbi1pbmxpbmUtc3RhcnQ6NXB4O292ZXJmbG93OmhpZGRlbjt3aGl0ZS1zcGFjZTpub3dyYXB9LmxpbmstU3JuVjV4eDIgLmljb25BcnJvdy1Tcm5WNXh4MntkaXNwbGF5OmZsZXh9LmxpbmstU3JuVjV4eDIgLmljb25BcnJvdy1Tcm5WNXh4MjpkaXIocnRsKXt0cmFuc2Zvcm06cm90YXRlWSgxODBkZWcpfUBtZWRpYSAoYW55LWhvdmVyOmhvdmVyKXsubGluay1Tcm5WNXh4Mjpob3Zlcntjb2xvcjp2YXIoLS1jb2xvci1saW5rLWhvdmVyKX19LmxpbmtJdGVtLVNyblY1eHgye2FsaWduLWl0ZW1zOmZsZXgtc3RhcnQ7ZGlzcGxheTpmbGV4fS5pc3N1ZXJMaW5rLVNyblY1eHgye2Rpc3BsYXk6ZmxleH0uZGV0YWlsc0xpbmtJY29uLVNyblY1eHgye2FsaWduLXNlbGY6ZmxleC1zdGFydDttYXJnaW4tYm90dG9tOjB9LnZhbHVlLWpEZG1CR0Qwe21hcmdpbi1pbmxpbmUtc3RhcnQ6MTZweDtvdmVyZmxvdzpoaWRkZW59LmRldGFpbHNMaW5rSWNvbi1qRGRtQkdEMHthbGlnbi1zZWxmOmZsZXgtc3RhcnQ7bWFyZ2luLWJvdHRvbTowfS5saW5rLWpEZG1CR0Qwe2FsaWduLWl0ZW1zOmNlbnRlcjtjb2xvcjp2YXIoLS1jb2xvci10ZXh0LXByaW1hcnkpO2Rpc3BsYXk6ZmxleDttYXJnaW4taW5saW5lLXN0YXJ0OjVweDtvdmVyZmxvdzpoaWRkZW47d2hpdGUtc3BhY2U6bm93cmFwfS5saW5rLWpEZG1CR0QwIC5pY29uQXJyb3ctakRkbUJHRDB7ZGlzcGxheTpmbGV4fS5saW5rLWpEZG1CR0QwIC5pY29uQXJyb3ctakRkbUJHRDA6ZGlyKHJ0bCl7dHJhbnNmb3JtOnJvdGF0ZVkoMTgwZGVnKX1AbWVkaWEgKGFueS1ob3Zlcjpob3Zlcil7LmxpbmstakRkbUJHRDA6aG92ZXJ7Y29sb3I6dmFyKC0tY29sb3ItbGluay1ob3Zlcil9fS51bmRlcmx5aW5nU3ltYm9sTGluay1qRGRtQkdEMHtkaXNwbGF5OmZsZXh9LndyYXAtRFBXWGIxcXV7YWxpZ24taXRlbXM6YmFzZWxpbmU7Y29sdW1uLWdhcDoyNHB4O2Rpc3BsYXk6Z3JpZDtncmlkLXRlbXBsYXRlLWNvbHVtbnM6cmVwZWF0KGF1dG8tZml0LG1pbm1heCgxMjJweCwxZnIpKTtwYWRkaW5nLXRvcDo0cHg7cm93LWdhcDoxMnB4fS5ibG9jay1EUFdYYjFxdXthbGlnbi1pdGVtczpjZW50ZXI7ZGlzcGxheTpmbGV4O292ZXJmbG93OmhpZGRlbn0ubG9nby1EUFdYYjFxdXtmbGV4LXNocmluazowO21hcmdpbi1pbmxpbmUtZW5kOjJweH0uY29weS1EUFdYYjFxdXtmbGV4LXNocmluazowfS5ibG9jay1zcnVadGdyNXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLWNvbnRhaW5lci1maWxsLXByaW1hcnktbmV1dHJhbC1leHRyYS1saWdodCk7Ym9yZGVyLXJhZGl1czo4cHg7Y29sb3I6dmFyKC0tY29sb3ItdGV4dC1wcmltYXJ5KTtjdXJzb3I6ZGVmYXVsdDtmb250LWZhbWlseTotYXBwbGUtc3lzdGVtLEJsaW5rTWFjU3lzdGVtRm9udCxUcmVidWNoZXQgTVMsUm9ib3RvLFVidW50dSxzYW5zLXNlcmlmO2ZvbnQtZmVhdHVyZS1zZXR0aW5nczoidG51bSIgb24sImxudW0iIG9uO292ZXJmbG93LXdyYXA6YnJlYWstd29yZDtwYWRkaW5nLWJsb2NrOjhweDtwYWRkaW5nLWlubGluZToxMnB4Oy0tdWktbGliLXR5cG9ncmFwaHktbGluZS1oZWlnaHQ6MTZweDtsaW5lLWhlaWdodDp2YXIoLS11aS1saWItdHlwb2dyYXBoeS1saW5lLWhlaWdodCk7LS11aS1saWItdHlwb2dyYXBoeS1mb250LXNpemU6MTJweDtmb250LXNpemU6dmFyKC0tdWktbGliLXR5cG9ncmFwaHktZm9udC1zaXplKTtmb250LXN0eWxlOm5vcm1hbDtmb250LXdlaWdodDo2MDB9QG1lZGlhIChhbnktaG92ZXI6aG92ZXIpey5ibG9jay1zcnVadGdyNTpob3ZlcntiYWNrZ3JvdW5kOnZhcigtLWNvbG9yLWNvbnRhaW5lci1maWxsLXByaW1hcnktbmV1dHJhbC1saWdodCl9fS5ibG9jay1zcnVadGdyNTphY3RpdmV7YmFja2dyb3VuZDp2YXIoLS1jb2xvci1jb250YWluZXItZmlsbC1wcmltYXJ5LW5ldXRyYWwtbm9ybWFsKX0uc3RhcnRJY29uLXNydVp0Z3I1e2hlaWdodDoxOHB4O21hcmdpbi1pbmxpbmUtZW5kOjRweDtwb3NpdGlvbjpyZWxhdGl2ZTt0b3A6MXB4O3ZlcnRpY2FsLWFsaWduOmJvdHRvbTt3aWR0aDoxOHB4fS5lbmRJY29uLXNydVp0Z3I1LC5zdGFydEljb24tc3J1WnRncjV7YWxpZ24taXRlbXM6Y2VudGVyO2Rpc3BsYXk6aW5saW5lLWZsZXh9LmVuZEljb24tc3J1WnRncjV7aGVpZ2h0OjhweDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO21hcmdpbi1pbmxpbmUtc3RhcnQ6MnB4O3dpZHRoOjhweH0uZW5kSWNvbi1zcnVadGdyNSBzdmc6ZGlyKHJ0bCl7dHJhbnNmb3JtOnNjYWxlWCgtMSl9LmNhcmQtbGN0Sm1Ed0V7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1vdmVybGF5LWFjY2VudC00LWxpZ2h0KX1AbWVkaWEgKGFueS1ob3Zlcjpob3Zlcil7LmNhcmQtbGN0Sm1Ed0U6aG92ZXJ7YmFja2dyb3VuZDp2YXIoLS1jb2xvci1vdmVybGF5LWFjY2VudC00LW5vcm1hbCl9fS5jYXJkLWxjdEptRHdFOmFjdGl2ZXtiYWNrZ3JvdW5kOnZhcigtLWNvbG9yLW92ZXJsYXktYWNjZW50LTQtYm9sZCl9LnByZXZpZXdCdXR0b24tbGN0Sm1Ed0UsLnRpdGxlLWxjdEptRHdFe2NvbG9yOnZhcigtLWNvbG9yLWNvbnRlbnQtcHJpbWFyeS1hY2NlbnQtb3RoZXItZXh0cmEtYm9sZCl9LmNvbnRlbnQtbGN0Sm1Ed0V7ZGlzcGxheTotd2Via2l0LWJveDtvdmVyZmxvdzpoaWRkZW47LXdlYmtpdC1saW5lLWNsYW1wOjQ7LXdlYmtpdC1ib3gtb3JpZW50OnZlcnRpY2FsO2xpbmUtaGVpZ2h0OjE2cHg7bWF4LWhlaWdodDo2NHB4fS5kb3QtbGN0Sm1Ed0V7dmVydGljYWwtYWxpZ246bWlkZGxlfS5kYXRlLWxjdEptRHdFe2NvbG9yOnZhcigtLWNvbG9yLWNvbnRlbnQtcHJpbWFyeS1uZXV0cmFsKX0uY29udGFpbmVyLXFEWGx3b1hke292ZXJmbG93OmhpZGRlbn0uY2hhbmdlLXFEWGx3b1hkLC5wcmljZS1xRFhsd29YZHtmb250LWZhbWlseTotYXBwbGUtc3lzdGVtLEJsaW5rTWFjU3lzdGVtRm9udCxUcmVidWNoZXQgTVMsUm9ib3RvLFVidW50dSxzYW5zLXNlcmlmO2ZvbnQtZmVhdHVyZS1zZXR0aW5nczoidG51bSIgb24sImxudW0iIG9uOy0tdWktbGliLXR5cG9ncmFwaHktbGluZS1oZWlnaHQ6MThweDtsaW5lLWhlaWdodDp2YXIoLS11aS1saWItdHlwb2dyYXBoeS1saW5lLWhlaWdodCk7LS11aS1saWItdHlwb2dyYXBoeS1mb250LXNpemU6MTNweDtmb250LXNpemU6dmFyKC0tdWktbGliLXR5cG9ncmFwaHktZm9udC1zaXplKTtmb250LXN0eWxlOm5vcm1hbDtmb250LXdlaWdodDo2MDB9LmNoYW5nZS1xRFhsd29YZHttYXJnaW4taW5saW5lLXN0YXJ0OjhweH0uY2hhbmdlLXFEWGx3b1hkOmRpcihydGwpe21hcmdpbi1sZWZ0OjhweDttYXJnaW4tcmlnaHQ6MH0uc3BlZWRvbWV0ZXJXcmFwLXFEWGx3b1hke21hcmdpbi1ib3R0b206MTJweH0uaXRlbVdyYXAtcURYbHdvWGR7ZGlyZWN0aW9uOmx0cjtkaXNwbGF5OmlubGluZS1mbGV4fS5pY29uLUJJU0Q0YzVGe2hlaWdodDo3MnB4O3dpZHRoOjcycHh9LmNyb3duLUJJU0Q0YzVGe2JhY2tncm91bmQtaW1hZ2U6dXJsKGNyb3duX2RhcmsuMWRmYzhmNGE4MTNiYWM1NjQzNWEuc3ZnKTtiYWNrZ3JvdW5kLXBvc2l0aW9uOjUwJTtiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXR9aHRtbC50aGVtZS1kYXJrIC5jcm93bi1CSVNENGM1RntiYWNrZ3JvdW5kLWltYWdlOnVybChjcm93bl9saWdodC4wY2Y2MGQxMjk2N2NlYjI5ZDkwOS5zdmcpfS5ub0RpdmlkZW5kc1RleHQtZkttT3YwNVV7Zm9udC1mYW1pbHk6LWFwcGxlLXN5c3RlbSxCbGlua01hY1N5c3RlbUZvbnQsVHJlYnVjaGV0IE1TLFJvYm90byxVYnVudHUsc2Fucy1zZXJpZjtmb250LWZlYXR1cmUtc2V0dGluZ3M6InRudW0iIG9uLCJsbnVtIiBvbjtmb250LXN0eWxlOm5vcm1hbDstLXVpLWxpYi10eXBvZ3JhcGh5LWZvbnQtc2l6ZToxMnB4O2ZvbnQtc2l6ZTp2YXIoLS11aS1saWItdHlwb2dyYXBoeS1mb250LXNpemUpO2ZvbnQtd2VpZ2h0OjQwMDstLXVpLWxpYi10eXBvZ3JhcGh5LWxpbmUtaGVpZ2h0OjE2cHg7bGluZS1oZWlnaHQ6dmFyKC0tdWktbGliLXR5cG9ncmFwaHktbGluZS1oZWlnaHQpfS5zdGF0cy1mS21PdjA1VXttYXJnaW4tdG9wOjIwcHh9LnN0YXRzLWZLbU92MDVVOmZpcnN0LWNoaWxke21hcmdpbi10b3A6MH0ucGllV3JhcC1oeF9DR1lYbXtoZWlnaHQ6MTIwcHg7bWFyZ2luOjAgYXV0byAxMnB4O3dpZHRoOjEyMHB4fS5jaGFydFRpdGxlLWh4X0NHWVhte2ZvbnQtZmFtaWx5Oi1hcHBsZS1zeXN0ZW0sQmxpbmtNYWNTeXN0ZW1Gb250LFRyZWJ1Y2hldCBNUyxSb2JvdG8sVWJ1bnR1LHNhbnMtc2VyaWY7Zm9udC1mZWF0dXJlLXNldHRpbmdzOiJ0bnVtIiBvbiwibG51bSIgb247Zm9udC1zdHlsZTpub3JtYWw7LS11aS1saWItdHlwb2dyYXBoeS1mb250LXNpemU6MTZweDtmb250LXNpemU6dmFyKC0tdWktbGliLXR5cG9ncmFwaHktZm9udC1zaXplKTtmb250LXdlaWdodDo0MDA7LS11aS1saWItdHlwb2dyYXBoeS1saW5lLWhlaWdodDoyNHB4O2NvbG9yOnZhcigtLWNvbG9yLWNvbnRhaW5lci1maWxsLXByaW1hcnktbmV1dHJhbC1oZWF2eSk7bGluZS1oZWlnaHQ6dmFyKC0tdWktbGliLXR5cG9ncmFwaHktbGluZS1oZWlnaHQpfS5jaGFydFRpdGxlLWh4X0NHWVhtOmRpcihydGwpe2RpcmVjdGlvbjpsdHJ9LmxlZ2VuZEl0ZW0taHhfQ0dZWG17YWxpZ24taXRlbXM6YmFzZWxpbmU7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOnJvd30ub3V0c3RhbmRpbmdBbW91bnQtaHhfQ0dZWG0sLnBhaWRBbW91bnQtaHhfQ0dZWG17bWFyZ2luLWlubGluZS1lbmQ6OHB4fS5vdXRzdGFuZGluZ0Ftb3VudC1oeF9DR1lYbXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLXRhbi1vcmFuZ2UtYTIwMCk7LS10di1waWUtY2hhcnQtYXJjLWNvbG9yOnZhcigtLWNvbG9yLXRhbi1vcmFuZ2UtYTIwMCl9LnBhaWRBbW91bnQtaHhfQ0dZWG17YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci10di1ibHVlLTMwMCk7LS10di1waWUtY2hhcnQtYXJjLWNvbG9yOnZhcigtLWNvbG9yLXR2LWJsdWUtMzAwKX0ubGVnZW5kVGV4dC1oeF9DR1lYbXtmbGV4OjEgMSBhdXRvfS5sZWdlbmREYXRhLWh4X0NHWVhte3RleHQtYWxpZ246ZW5kfS5sZWdlbmREYXRhLWh4X0NHWVhtOmRpcihydGwpe2RpcmVjdGlvbjpsdHJ9LnNjYWxlQ2VsbEZpdGNoLVFiQ2tQZXQxe2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3Itb3ZlcmxheS1hY2NlbnQtNC1saWdodCk7Y29sb3I6dmFyKC0tY29sb3ItY29udGVudC1wcmltYXJ5LWFjY2VudC1vdGhlci1leHRyYS1ib2xkKX0uc2NhbGVDZWxsU25wLVFiQ2tQZXQxe2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3Itb3ZlcmxheS13YXJuaW5nLTEtbGlnaHQpO2NvbG9yOnZhcigtLWNvbG9yLWNvbnRlbnQtcHJpbWFyeS13YXJuaW5nLWV4dHJhLWJvbGQpfS5ibG9jay1PMGxIdUk5Q3tiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgyNzdkZWcsI2ZmZjAgNzAuMDIlLCNkNTAwZjkxYSAxMDAuMjElKSxsaW5lYXItZ3JhZGllbnQoMjYzZGVnLCNmZmYwIDY5LjkzJSwjMDBlNWZmMWEpLGxpbmVhci1ncmFkaWVudCg3OWRlZywjZmZmMCA2NS44NCUsI2Q1MDBmOTFhKSxsaW5lYXItZ3JhZGllbnQoMTAxZGVnLCNmZmYwIDY1LjklLCMwMGU1ZmYxYSAxMDAuMTMlKX1AbWVkaWEgKGFueS1ob3Zlcjpob3Zlcil7LmJsb2NrLU8wbEh1STlDOmhvdmVye2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDI3N2RlZywjZmZmMCA3MC4wMiUsI2Q1MDBmOTMzIDEwMC4yMSUpLGxpbmVhci1ncmFkaWVudCgyNjNkZWcsI2ZmZjAgNjkuOTMlLCMwMGU1ZmYzMyksbGluZWFyLWdyYWRpZW50KDc5ZGVnLCNmZmYwIDY1Ljg0JSwjZDUwMGY5MzMpLGxpbmVhci1ncmFkaWVudCgxMDFkZWcsI2ZmZjAgNjUuOSUsIzAwZTVmZjMzIDEwMC4xMyUpfX1AbWVkaWEgKGFueS1ob3Zlcjpob3Zlcil7LmJsb2NrLU8wbEh1STlDOmhvdmVyOmRpcihydGwpe2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KC0yNzdkZWcsI2ZmZjAgNzAuMDIlLCNkNTAwZjkzMyAxMDAuMjElKSxsaW5lYXItZ3JhZGllbnQoLTI2M2RlZywjZmZmMCA2OS45MyUsIzAwZTVmZjMzKSxsaW5lYXItZ3JhZGllbnQoLTc5ZGVnLCNmZmYwIDY1Ljg0JSwjZDUwMGY5MzMpLGxpbmVhci1ncmFkaWVudCgtMTAxZGVnLCNmZmYwIDY1LjklLCMwMGU1ZmYzMyAxMDAuMTMlKX19LnRpdGxlLU8wbEh1STlDe2NvbG9yOnZhcigtLWNvbG9yLWNvbnRlbnQtcHJpbWFyeS1hY2NlbnQtb3RoZXItZXh0cmEtYm9sZCl9LmNoYXJ0LUcxdWRiNmVNe2hlaWdodDoxNzBweDttaW4td2lkdGg6MDt3aWR0aDoxMDAlfS50b29sdGlwV3JhcC1HMXVkYjZlTXtpbnNldC1pbmxpbmUtc3RhcnQ6LTUwJTtwb2ludGVyLWV2ZW50czpub25lO3Bvc2l0aW9uOnJlbGF0aXZlfS5jb250YWluZXItY0E4OW1uZlIsLml0ZW1zLWd6UW5SbElvLC5sYWJlbFJvdy1jQTg5bW5mUntkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1ufS5sYWJlbFJvdy1jQTg5bW5mUnttYXJnaW4tdG9wOjRweH0ubGFiZWwtY0E4OW1uZlJ7Zm9udC1mYW1pbHk6LWFwcGxlLXN5c3RlbSxCbGlua01hY1N5c3RlbUZvbnQsVHJlYnVjaGV0IE1TLFJvYm90byxVYnVudHUsc2Fucy1zZXJpZjtmb250LWZlYXR1cmUtc2V0dGluZ3M6InRudW0iIG9uLCJsbnVtIiBvbjtmb250LXN0eWxlOm5vcm1hbDstLXVpLWxpYi10eXBvZ3JhcGh5LWZvbnQtc2l6ZToxM3B4O2ZvbnQtc2l6ZTp2YXIoLS11aS1saWItdHlwb2dyYXBoeS1mb250LXNpemUpO2ZvbnQtd2VpZ2h0OjQwMDstLXVpLWxpYi10eXBvZ3JhcGh5LWxpbmUtaGVpZ2h0OjE4cHg7Y29sb3I6dmFyKC0tY29sb3ItY29udGVudC1wcmltYXJ5LW5ldXRyYWwtYm9sZCk7bGluZS1oZWlnaHQ6dmFyKC0tdWktbGliLXR5cG9ncmFwaHktbGluZS1oZWlnaHQpfS50di1kYXRhLW1vZGUtLXJlYWx0aW1lLS1mb3ItZGV0YWlscywudHYtZGF0YS1tb2RlLS1yZWFsdGltZS0tZm9yLXl0bXt2aXNpYmlsaXR5OmhpZGRlbn0uY29udGFpbmVyLWhNbmsyMk1Xe2hlaWdodDoxMDAlO292ZXJmbG93OmF1dG99LmNvbnRhaW5lci1oTW5rMjJNVzo6LXdlYmtpdC1zY3JvbGxiYXJ7aGVpZ2h0OjVweDt3aWR0aDo1cHh9LmNvbnRhaW5lci1oTW5rMjJNVzo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWJ7YmFja2dyb3VuZC1jbGlwOmNvbnRlbnQtYm94O2JhY2tncm91bmQtY29sb3I6dmFyKC0tdHYtY29sb3Itc2Nyb2xsYmFyLXRodW1iLWJhY2tncm91bmQsdmFyKC0tY29sb3Itc2Nyb2xsLWJnKSk7Ym9yZGVyOjFweCBzb2xpZCAjMDAwMDtib3JkZXItcmFkaXVzOjNweH0uY29udGFpbmVyLWhNbmsyMk1XOjotd2Via2l0LXNjcm9sbGJhci10cmFja3tiYWNrZ3JvdW5kLWNvbG9yOmluaXRpYWw7Ym9yZGVyLXJhZGl1czozcHh9LmNvbnRhaW5lci1oTW5rMjJNVzo6LXdlYmtpdC1zY3JvbGxiYXItY29ybmVye2Rpc3BsYXk6bm9uZX0ub3BhY2l0eS1oTW5rMjJNV3tvcGFjaXR5Oi4zfS53aWRnZXRXcmFwcGVyLWhNbmsyMk1Xe21hcmdpbi1ib3R0b206MTJweDtwYWRkaW5nOjAgMTZweH0ud2lkZ2V0V3JhcHBlci1oTW5rMjJNVy5sYXJnZS1oTW5rMjJNV3ttYXJnaW4tYm90dG9tOjE2cHh9Lm9mZnNldERpc2FibGVkLWhNbmsyMk1Xe21hcmdpbi1ib3R0b206MH0uc2VwYXJhdG9yLWhNbmsyMk1Xe21hcmdpbi10b3A6MjRweH0uc2VwYXJhdG9yLWhNbmsyMk1XKy5zZXBhcmF0b3ItaE1uazIyTVcsLnNlcGFyYXRvci1oTW5rMjJNVzpmaXJzdC1jaGlsZHttYXJnaW4tdG9wOjB9LnNlcGFyYXRvci1oTW5rMjJNVzpsYXN0LWNoaWxke21hcmdpbi10b3A6NDBweH0uaGludFBsYWNlaG9sZGVyLWhNbmsyMk1Xe3Bvc2l0aW9uOnJlbGF0aXZlO3RvcDo0cHh9QG1lZGlhIChtYXgtd2lkdGg6NzY3cHgpey5oaW50LWhNbmsyMk1XLC5oaW50UGxhY2Vob2xkZXItaE1uazIyTVd7ZGlzcGxheTpub25lfX0ucHJldmlld0J1dHRvbnNXcmFwLWhNbmsyMk1Xe2FsaWduLWl0ZW1zOmNlbnRlcjtkaXNwbGF5OmZsZXh9LnByZXZpZXdCdXR0b24taE1uazIyTVd7ZmxleC1iYXNpczo1MCU7ZmxleC1ncm93OjF9LnByZXZpZXdCdXR0b24taE1uazIyTVcrLnByZXZpZXdCdXR0b24taE1uazIyTVd7bWFyZ2luLWlubGluZS1zdGFydDoxMnB4fS51c2VyU2VsZWN0VGV4dC1oTW5rMjJNV3std2Via2l0LXVzZXItc2VsZWN0OnRleHQ7dXNlci1zZWxlY3Q6dGV4dH0ubW9yZUFib3V0RnVuZEJ1dHRvbi1oTW5rMjJNV3ttYXJnaW4tdG9wOjEycHh9LmhpZ2hsaWdodC1oTW5rMjJNVy5ncm93aW5nLWhNbmsyMk1Xe2NvbG9yOnZhcigtLWNvbG9yLXN5bWJvbC1jaGFuZ2UtcG9zaXRpdmUpfS5oaWdobGlnaHQtaE1uazIyTVcuZmFsbGluZy1oTW5rMjJNV3tjb2xvcjp2YXIoLS1jb2xvci1zeW1ib2wtY2hhbmdlLW5lZ2F0aXZlKX0uc2Vjb25kYXJ5UHJpY2VWYWx1ZS1oTW5rMjJNV3tmb250LWZhbWlseTotYXBwbGUtc3lzdGVtLEJsaW5rTWFjU3lzdGVtRm9udCxUcmVidWNoZXQgTVMsUm9ib3RvLFVidW50dSxzYW5zLXNlcmlmO2ZvbnQtZmVhdHVyZS1zZXR0aW5nczoidG51bSIgb24sImxudW0iIG9uO2ZvbnQtc3R5bGU6bm9ybWFsOy0tdWktbGliLXR5cG9ncmFwaHktZm9udC1zaXplOjIwcHg7Zm9udC1zaXplOnZhcigtLXVpLWxpYi10eXBvZ3JhcGh5LWZvbnQtc2l6ZSk7Zm9udC13ZWlnaHQ6NjAwOy0tdWktbGliLXR5cG9ncmFwaHktbGluZS1oZWlnaHQ6MjRweDtjb2xvcjp2YXIoLS1jb2xvci1jb250ZW50LXByaW1hcnktbmV1dHJhbC1ib2xkKTtsaW5lLWhlaWdodDp2YXIoLS11aS1saWItdHlwb2dyYXBoeS1saW5lLWhlaWdodCl9LmluZm8taE1uazIyTVd7bWFyZ2luLWJvdHRvbToxcHh9LnByaWNlV3JhcHBlci1oTW5rMjJNV3thbGlnbi1pdGVtczplbmR9LnByaWNlV3JhcHBlci1oTW5rMjJNVyAudHYtZGF0YS1tb2RlLS1mb3ItZGV0YWlsc3tmb250LXNpemU6MTBweDtsaW5lLWhlaWdodDoxMnB4fUBrZXlmcmFtZXMga2V5ZnJhbWVzLWhpZ2hsaWdodC1hbmltYXRpb24tdGhlbWUtbGlnaHR7MCV7YmFja2dyb3VuZDojMDAwMH01MCV7YmFja2dyb3VuZDp2YXIoLS1jb2xvci10di1ibHVlLTUwKX10b3tiYWNrZ3JvdW5kOiMwMDAwfX1Aa2V5ZnJhbWVzIGtleWZyYW1lcy1oaWdobGlnaHQtYW5pbWF0aW9uLXRoZW1lLWRhcmt7MCV7YmFja2dyb3VuZDojMDAwMH01MCV7YmFja2dyb3VuZDp2YXIoLS1jb2xvci10di1ibHVlLWE5MDApfXRve2JhY2tncm91bmQ6IzAwMDB9fS5uZXdzLWl0ZW0tY2l3amhwY1N7Y29sb3I6dmFyKC0tY29sb3ItdGV4dC1wcmltYXJ5KTtkaXNwbGF5OmJsb2NrO3BhZGRpbmc6MTJweCAxNnB4O3Bvc2l0aW9uOnJlbGF0aXZlOy13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTt1c2VyLXNlbGVjdDpub25lfS5uZXdzLWl0ZW0tY2l3amhwY1MuYWNjZXNzaWJsZS1jaXdqaHBjUzpmb2N1cy12aXNpYmxle2JvcmRlci1yYWRpdXM6NHB4O291dGxpbmU6dmFyKC0tY29sb3ItdHYtYmx1ZS01MDApIHNvbGlkIDJweDtvdXRsaW5lLW9mZnNldDotMnB4fUBtZWRpYSAoYW55LWhvdmVyOmhvdmVyKXsubmV3cy1pdGVtLWNpd2pocGNTOm5vdCgubmV3cy1pdGVtLS1uby1ob3Zlci1jaXdqaHBjUyk6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1iZy1wcmltYXJ5LWhvdmVyKTtjdXJzb3I6cG9pbnRlcn19Lm5ld3MtaXRlbS0taGlnaGxpZ2h0LWNpd2pocGNTe2FuaW1hdGlvbjprZXlmcmFtZXMtaGlnaGxpZ2h0LWFuaW1hdGlvbi10aGVtZS1saWdodCAuN3MgZWFzZS1pbi1vdXQgMX0udGhlbWUtZGFyayAubmV3cy1pdGVtLS1oaWdobGlnaHQtY2l3amhwY1N7YW5pbWF0aW9uLW5hbWU6a2V5ZnJhbWVzLWhpZ2hsaWdodC1hbmltYXRpb24tdGhlbWUtZGFya30ubmV3cy1pdGVtX19oZWFkZXItY2l3amhwY1N7YWxpZ24taXRlbXM6Y2VudGVyO2NvbG9yOnZhcigtLWNvbG9yLXRleHQtc2Vjb25kYXJ5KTtkaXNwbGF5OmZsZXg7Zm9udC1mYW1pbHk6LWFwcGxlLXN5c3RlbSxCbGlua01hY1N5c3RlbUZvbnQsVHJlYnVjaGV0IE1TLFJvYm90byxVYnVudHUsc2Fucy1zZXJpZjtmb250LWZlYXR1cmUtc2V0dGluZ3M6InRudW0iIG9uLCJsbnVtIiBvbjtmb250LXN0eWxlOm5vcm1hbDttYXJnaW4tYm90dG9tOjhweDstLXVpLWxpYi10eXBvZ3JhcGh5LWZvbnQtc2l6ZToxMnB4O2ZvbnQtc2l6ZTp2YXIoLS11aS1saWItdHlwb2dyYXBoeS1mb250LXNpemUpO2ZvbnQtd2VpZ2h0OjQwMDstLXVpLWxpYi10eXBvZ3JhcGh5LWxpbmUtaGVpZ2h0OjE2cHg7bGluZS1oZWlnaHQ6dmFyKC0tdWktbGliLXR5cG9ncmFwaHktbGluZS1oZWlnaHQpO2xpbmUtaGVpZ2h0OjE4cHg7dHJhbnNmb3JtOnRyYW5zbGF0ZVooMCl9Lm5ld3MtaXRlbV9fYnJlYWRjcnVtYnMtY2l3amhwY1N7ZGlzcGxheTpmbGV4O2ZsZXgtd3JhcDp3cmFwfS5uZXdzLWl0ZW1fX2JyZWFkY3J1bWJzLWNpd2pocGNTPjpub3QoOmxhc3QtY2hpbGQpOmFmdGVye2NvbnRlbnQ6IlwwMGI3IjttYXJnaW46MCA0cHh9Lm5ld3MtaXRlbV9fbG9nb3MtY2l3amhwY1N7bWFyZ2luLWlubGluZS1lbmQ6OHB4O21hcmdpbi1pbmxpbmUtc3RhcnQ6MH0ubmV3cy1pdGVtX19sb2dvcy1jaXdqaHBjUzplbXB0eXttYXJnaW4taW5saW5lLWVuZDowfS5uZXdzLWl0ZW1fX3RpdGxlLWNpd2pocGNTe2Rpc3BsYXk6aW5saW5lO2ZvbnQtZmFtaWx5Oi1hcHBsZS1zeXN0ZW0sQmxpbmtNYWNTeXN0ZW1Gb250LFRyZWJ1Y2hldCBNUyxSb2JvdG8sVWJ1bnR1LHNhbnMtc2VyaWY7Zm9udC1mZWF0dXJlLXNldHRpbmdzOiJ0bnVtIiBvbiwibG51bSIgb247Zm9udC1zdHlsZTpub3JtYWw7LS11aS1saWItdHlwb2dyYXBoeS1mb250LXNpemU6MTRweDtmb250LXNpemU6dmFyKC0tdWktbGliLXR5cG9ncmFwaHktZm9udC1zaXplKTtmb250LXdlaWdodDo1MDA7LS11aS1saWItdHlwb2dyYXBoeS1saW5lLWhlaWdodDoxOHB4O2ZvbnQtd2VpZ2h0OjYwMDtsaW5lLWhlaWdodDp2YXIoLS11aS1saWItdHlwb2dyYXBoeS1saW5lLWhlaWdodCl9Lm5ld3MtaXRlbV9fdGl0bGUtLWV4dGVybmFsLWxpbmstY2l3amhwY1N7LS1leHRlcm5hbC1saW5rLWljb24tcmlnaHQtZXh0cmEtcGFkZGluZzoxcHg7LS1leHRlcm5hbC1saW5rLWljb24tdi1wb3NpdGlvbjpjYWxjKDEwMCUgLSAycHgpfS5uZXdzLWl0ZW1fX3RpdGxlLS1leHRlcm5hbC1saW5rLWNpd2pocGNTOmFmdGVyey0tZXh0ZXJuYWwtbGluay1jb2xvcjp2YXIoLS1jb2xvci1saW5rLXByaW1hcnktZGVmYXVsdCk7YmFja2dyb3VuZC1pbWFnZTpsaW5lYXItZ3JhZGllbnQodmFyKC0tZXh0ZXJuYWwtbGluay1jb2xvciksdmFyKC0tZXh0ZXJuYWwtbGluay1jb2xvcikpO2JhY2tncm91bmQtcG9zaXRpb246Y2FsYygxMDAlIC0gdmFyKC0tZXh0ZXJuYWwtbGluay1pY29uLXJpZ2h0LWV4dHJhLXBhZGRpbmcpKSB2YXIoLS1leHRlcm5hbC1saW5rLWljb24tdi1wb3NpdGlvbik7YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0O2JhY2tncm91bmQtc2l6ZToxM3B4IDEzcHg7Y29udGVudDoiIjstd2Via2l0LW1hc2staW1hZ2U6dXJsKGV4dGVybmFsLWxpbmsuMGMzYmEwMzI2NDE4N2JhYTU0ZmIuc3ZnKTttYXNrLWltYWdlOnVybChleHRlcm5hbC1saW5rLjBjM2JhMDMyNjQxODdiYWE1NGZiLnN2Zyk7LXdlYmtpdC1tYXNrLXBvc2l0aW9uOmNhbGMoMTAwJSAtIHZhcigtLWV4dGVybmFsLWxpbmstaWNvbi1yaWdodC1leHRyYS1wYWRkaW5nKSkgdmFyKC0tZXh0ZXJuYWwtbGluay1pY29uLXYtcG9zaXRpb24pO21hc2stcG9zaXRpb246Y2FsYygxMDAlIC0gdmFyKC0tZXh0ZXJuYWwtbGluay1pY29uLXJpZ2h0LWV4dHJhLXBhZGRpbmcpKSB2YXIoLS1leHRlcm5hbC1saW5rLWljb24tdi1wb3NpdGlvbik7LXdlYmtpdC1tYXNrLXJlcGVhdDpuby1yZXBlYXQ7bWFzay1yZXBlYXQ6bm8tcmVwZWF0Oy13ZWJraXQtbWFzay1zaXplOjEzcHg7bWFzay1zaXplOjEzcHg7cGFkZGluZy1pbmxpbmUtZW5kOmNhbGMoMjFweCArIHZhcigtLWV4dGVybmFsLWxpbmstaWNvbi1yaWdodC1leHRyYS1wYWRkaW5nKSk7cG9zaXRpb246cmVsYXRpdmV9Lm5ld3MtaXRlbV9fdGl0bGUtLWV4dGVybmFsLWxpbmstY2l3amhwY1M6ZGlyKHJ0bCk6YWZ0ZXJ7YmFja2dyb3VuZC1wb3NpdGlvbjpjYWxjKHZhcigtLWV4dGVybmFsLWxpbmstaWNvbi1yaWdodC1leHRyYS1wYWRkaW5nKSkgdmFyKC0tZXh0ZXJuYWwtbGluay1pY29uLXYtcG9zaXRpb24pfS5uZXdzLWl0ZW1fX3RpdGxlLS1leHRlcm5hbC1saW5rLWNpd2pocGNTOmRpcihydGwpOmFmdGVyey13ZWJraXQtbWFzay1wb3NpdGlvbjp2YXIoLS1leHRlcm5hbC1saW5rLWljb24tcmlnaHQtZXh0cmEtcGFkZGluZykgdmFyKC0tZXh0ZXJuYWwtbGluay1pY29uLXYtcG9zaXRpb24pO21hc2stcG9zaXRpb246dmFyKC0tZXh0ZXJuYWwtbGluay1pY29uLXJpZ2h0LWV4dHJhLXBhZGRpbmcpIHZhcigtLWV4dGVybmFsLWxpbmstaWNvbi12LXBvc2l0aW9uKX1AbWVkaWEgKGFueS1ob3Zlcjpob3Zlcil7Lm5ld3MtaXRlbV9fdGl0bGUtLWV4dGVybmFsLWxpbmstY2l3amhwY1M6aG92ZXI6YWZ0ZXJ7LS1leHRlcm5hbC1saW5rLWNvbG9yOnZhcigtLWNvbG9yLWxpbmstcHJpbWFyeS1ob3Zlcil9fS5uZXdzLWl0ZW1fX3RpdGxlLS1leHRlcm5hbC1saW5rLWNpd2pocGNTOmFjdGl2ZTphZnRlcnstLWV4dGVybmFsLWxpbmstY29sb3I6dmFyKC0tY29sb3ItbGluay1wcmltYXJ5LWFjdGl2ZSl9Lm5ld3MtaXRlbV9fZGVzY3JpcHRpb24tY2l3amhwY1N7bGluZS1oZWlnaHQ6MjJweDttYXJnaW4tdG9wOjhweH0udGl0bGUtbXV0Uk82eVZ7Zm9udC1mYW1pbHk6LWFwcGxlLXN5c3RlbSxCbGlua01hY1N5c3RlbUZvbnQsVHJlYnVjaGV0IE1TLFJvYm90byxVYnVudHUsc2Fucy1zZXJpZjtmb250LWZlYXR1cmUtc2V0dGluZ3M6InRudW0iIG9uLCJsbnVtIiBvbjtmb250LXN0eWxlOm5vcm1hbDstLXVpLWxpYi10eXBvZ3JhcGh5LWZvbnQtc2l6ZToxOHB4O2ZvbnQtc2l6ZTp2YXIoLS11aS1saWItdHlwb2dyYXBoeS1mb250LXNpemUpO2ZvbnQtd2VpZ2h0OjYwMDstLXVpLWxpYi10eXBvZ3JhcGh5LWxpbmUtaGVpZ2h0OjI0cHg7bGluZS1oZWlnaHQ6dmFyKC0tdWktbGliLXR5cG9ncmFwaHktbGluZS1oZWlnaHQpfQ=="}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/52920.30ba05d6a5393e331827.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:13.913Z","timestamp":1785148033913,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/52920.30ba05d6a5393e331827.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:13 GMT\r\ncontent-type: text/css; charset=utf-8\r\ncontent-length: 103\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\netag: \"6a58ab11-67\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Thu, 16 Jul 2026 09:57:37 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/16/2026 11:03:21\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 11450e142a88fbef1deab0c4851a3f1d\r\ncdn-cache: HIT\r\naccept-ranges: bytes\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":103,"size_decoded":888,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with no line terminators","md5":"905ba86f45c3c4836e1e66ce0b1a69d4","sha1":"500fc2231fc7750395f3d4ba76aaa9ca105b5267","sha256":"16405805afc864f5869ae7c76253575cc65188d7ebb3f3b4207b634b7876bf8f","sha512":"838c4397409cdb507a9f79bd3943a589fc809cb994669fcbffa017fd350ec5f0994caea1f8f4837f2b5d61a440945e8334f4310d5b23302be6408645230b51a2","ssdeep":"","tlshash":"adb0921b5a704f55155b96514fc8835a9c63043260413e88c401ca221a3a88cead020a","first_seen":"2026-07-17T03:30:51.221694Z","last_seen":"2026-07-27T12:48:39.693104Z","times_seen":125,"resource_available":false,"data":"LmlubGluZUljb24tdDZXWmxMUU97ZGlzcGxheTppbmxpbmUtYmxvY2s7dmVydGljYWwtYWxpZ246bWlkZGxlfS5pbmxpbmVJY29uLXQ2V1psTFFPIHN2Z3tkaXNwbGF5OmJsb2NrfQ=="}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/20564.13e6efb38eaab0a52683.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:13.982Z","timestamp":1785148033982,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/20564.13e6efb38eaab0a52683.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:13 GMT\r\ncontent-type: text/css; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding, Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\netag: W/\"69f98b72-1d16\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Tue, 05 May 2026 06:17:22 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.51\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 05/05/2026 10:16:50\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 62c1f19925b661b39ac065a3d07c0a67\r\ncdn-cache: HIT\r\ncontent-encoding: br\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":7446,"size_decoded":2611,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with very long lines (7446), with no line terminators","md5":"8e083847cfd9c8a5676bd44d7cbd10d2","sha1":"f71af91a8f001c3088ad6b520f3db83627f5b867","sha256":"e7e72574ebfc90cdac24685531498c4611176071b73ce224920a3e45cb74b550","sha512":"d52b79e3f0da64eeff642b7190eeb9b1d86b124014a760b04d02fe6777d8dc10c97f0ef131bfa3baf0507065cfce9fbdcf5c3377366b2f6bacb271fde766a8b0","ssdeep":"192:ik1s5k+N7GIfan8fwHnOc7zzXtg844yr3sNX:nRN4W","tlshash":"a9e181f2d719316aef53d12a234457ccabb1b42289124b2efe95b425c1c77b90a35a82","first_seen":"2026-05-01T03:41:17.144045Z","last_seen":"2026-07-27T12:07:26.420808Z","times_seen":60,"resource_available":false,"data":"W2RhdGEtdGhlbWU9bGlnaHRdey0tXzAtSktLdjp2YXIoLS1jb2xvci1ibGFjayk7LS1fMS1KS0t2OnZhcigtLWNvbG9yLXJpcGUtcmVkLTQwMCk7LS1fMi1KS0t2OnZhcigtLWNvbG9yLWNvbGQtZ3JheS0yMDApOy0tXzMtSktLdjp2YXIoLS1jb2xvci10di1ibHVlLTUwMCk7LS1fNC1KS0t2OnZhcigtLWNvbG9yLWNvbGQtZ3JheS0yMDApOy0tXzUtSktLdjp2YXIoLS1jb2xvci1jb2xkLWdyYXktOTAwKX1bZGF0YS10aGVtZT1kYXJrXXstLV8wLUpLS3Y6dmFyKC0tY29sb3Itd2hpdGUpOy0tXzEtSktLdjp2YXIoLS1jb2xvci1yaXBlLXJlZC00MDApOy0tXzItSktLdjp2YXIoLS1jb2xvci1jb2xkLWdyYXktNjUwKTstLV8zLUpLS3Y6dmFyKC0tY29sb3ItdHYtYmx1ZS01MDApOy0tXzQtSktLdjojMDAwMDstLV81LUpLS3Y6dmFyKC0tY29sb3ItY29sZC1ncmF5LTIwMCl9LnN3YXRjaGVzLXNmbjdMZXp2e2Rpc3BsYXk6ZmxleDtmbGV4LXdyYXA6d3JhcDttYXJnaW46MCAtM3B4IDZweH0uc3dhdGNoLXNmbjdMZXp2e2FsbDp1bnNldDtiYWNrZ3JvdW5kLWNvbG9yOmN1cnJlbnRDb2xvcjtib3JkZXI6MXB4IHNvbGlkO2JvcmRlci1yYWRpdXM6MnB4O2ZsZXg6MCAwIDE1cHg7aGVpZ2h0OjE1cHg7bWFyZ2luOjNweDtwb3NpdGlvbjpyZWxhdGl2ZTt3aWR0aDoxNXB4fS5zd2F0Y2gtc2ZuN0xlenY6YWZ0ZXJ7Ym9yZGVyOjJweCBzb2xpZCAjMDAwMDtib3JkZXItcmFkaXVzOjZweDtib3gtc2l6aW5nOmluaXRpYWw7Y29udGVudDoiIjtoZWlnaHQ6MTAwJTtpbnNldC1pbmxpbmUtc3RhcnQ6LTVweDtwYWRkaW5nOjNweDtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6LTVweDt0cmFuc2l0aW9uOmJvcmRlci1jb2xvciAuMzVzIGVhc2U7d2lkdGg6MTAwJX0uc3dhdGNoLXNmbjdMZXp2LmhvdmVyLXNmbjdMZXp2OmFmdGVye2JvcmRlci1jb2xvcjp2YXIoLS1fMi1KS0t2KX1AbWVkaWEgKGFueS1ob3Zlcjpob3Zlcil7LnN3YXRjaC1zZm43TGV6djpob3ZlcjphZnRlcntib3JkZXItY29sb3I6dmFyKC0tXzItSktLdil9fS5zd2F0Y2gtc2ZuN0xlenYuZW1wdHktc2ZuN0xlenZ7YmFja2dyb3VuZC1jb2xvcjppbml0aWFsO2JvcmRlci1jb2xvcjp2YXIoLS1fMC1KS0t2KX0uc3dhdGNoLXNmbjdMZXp2LmVtcHR5LXNmbjdMZXp2OmJlZm9yZXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLV8xLUpLS3YpO2NvbnRlbnQ6IiI7aGVpZ2h0OjIxcHg7aW5zZXQtaW5saW5lLXN0YXJ0OjdweDtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6LTNweDt0cmFuc2Zvcm06cm90YXRlKDQ1ZGVnKTt3aWR0aDoxcHh9LnN3YXRjaC1zZm43TGV6di5lbXB0eS1zZm43TGV6djpkaXIocnRsKTpiZWZvcmV7dHJhbnNmb3JtOnJvdGF0ZSgtNDVkZWcpfS5zd2F0Y2gtc2ZuN0xlenYud2hpdGUtc2ZuN0xlenZ7Ym9yZGVyLWNvbG9yOnZhcigtLV80LUpLS3YpfS5zd2F0Y2gtc2ZuN0xlenYuc2VsZWN0ZWQtc2ZuN0xlenY6YWZ0ZXJ7Ym9yZGVyLWNvbG9yOnZhcigtLV81LUpLS3YpO3otaW5kZXg6MX0uc3dhdGNoLXNmbjdMZXp2OmZvY3VzLXZpc2libGU6YWZ0ZXJ7Ym9yZGVyLWNvbG9yOnZhcigtLWNvbG9yLWJyYW5kKX0uY29udGV4dEl0ZW0tc2ZuN0xlenZ7Ym94LXNpemluZzpib3JkZXItYm94O2hlaWdodDozMnB4fS5yb3ctc2ZuN0xlenZ7ZGlzcGxheTpmbGV4fS5zYXR1cmF0aW9uLU5GTmZxUDJ3e2JvcmRlci1yYWRpdXM6MnB4O2hlaWdodDoxMDAlO292ZXJmbG93OmhpZGRlbjtwb3NpdGlvbjpyZWxhdGl2ZTt3aWR0aDoxMDAlO3otaW5kZXg6MH0uc2F0dXJhdGlvbi1ORk5mcVAydzphZnRlciwuc2F0dXJhdGlvbi1ORk5mcVAydzpiZWZvcmV7Y29udGVudDoiIjtoZWlnaHQ6MTAwJTtpbnNldC1pbmxpbmUtc3RhcnQ6MDtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDt3aWR0aDoxMDAlfS5zYXR1cmF0aW9uLU5GTmZxUDJ3OmJlZm9yZXtiYWNrZ3JvdW5kLWltYWdlOmxpbmVhci1ncmFkaWVudCg5MGRlZywjZmZmLCNmZmYwKX0uc2F0dXJhdGlvbi1ORk5mcVAydzpkaXIocnRsKTpiZWZvcmV7YmFja2dyb3VuZC1pbWFnZTpsaW5lYXItZ3JhZGllbnQoMjcwZGVnLCNmZmYsI2ZmZjApfS5zYXR1cmF0aW9uLU5GTmZxUDJ3OmFmdGVye2JhY2tncm91bmQtaW1hZ2U6bGluZWFyLWdyYWRpZW50KDBkZWcsIzAwMCwjMDAwMCl9LnNhdHVyYXRpb24tTkZOZnFQMncgLnBvaW50ZXItTkZOZnFQMnd7YmFja2dyb3VuZC1jb2xvcjppbml0aWFsO2JvcmRlcjoycHggc29saWQgdmFyKC0tY29sb3ItYm9yZGVyLXByaW1hcnktbmV1dHJhbC1leHRyYS1oZWF2eSk7Ym9yZGVyLXJhZGl1czo1MCU7Ym94LXNoYWRvdzowIDFweCAycHggIzAwMDAwMDgwO2hlaWdodDoxMHB4O21hcmdpbi1ibG9jazotNnB4IDA7bWFyZ2luLWlubGluZTotNnB4IDA7cG9zaXRpb246YWJzb2x1dGU7dHJhbnNpdGlvbjppbnNldC1pbmxpbmUtc3RhcnQgLjFzLGluc2V0LWlubGluZS1zdGFydCAuMXMsdG9wIC4xczt3aWR0aDoxMHB4O3otaW5kZXg6MX0uYWNjZXNzaWJsZS1ORk5mcVAyd3tvdXRsaW5lOm5vbmU7b3ZlcmZsb3c6dmlzaWJsZTtwb3NpdGlvbjpyZWxhdGl2ZX0uYWNjZXNzaWJsZS1ORk5mcVAydzpmb2N1c3tvdXRsaW5lOm5vbmV9LmFjY2Vzc2libGUtTkZOZnFQMnc6Zm9jdXMtdmlzaWJsZXtvdXRsaW5lOm5vbmV9LmFjY2Vzc2libGUtTkZOZnFQMnc6YWZ0ZXJ7Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci13aWR0aDoycHg7Ym94LXNpemluZzpib3JkZXItYm94O2NvbnRlbnQ6IiI7ZGlzcGxheTpub25lO2hlaWdodDpjYWxjKDEwMCUgKyA4cHgpO2luc2V0LWlubGluZS1zdGFydDotNHB4O3BvaW50ZXItZXZlbnRzOm5vbmU7cG9zaXRpb246YWJzb2x1dGU7dG9wOi00cHg7d2lkdGg6Y2FsYygxMDAlICsgOHB4KTt6LWluZGV4OjF9LmFjY2Vzc2libGUtTkZOZnFQMnc6Zm9jdXM6YWZ0ZXJ7ZGlzcGxheTpibG9ja30uYWNjZXNzaWJsZS1ORk5mcVAydzpmb2N1cy12aXNpYmxlOmFmdGVye2Rpc3BsYXk6YmxvY2t9LmFjY2Vzc2libGUtTkZOZnFQMnc6Zm9jdXM6bm90KDpmb2N1cy12aXNpYmxlKTphZnRlcntkaXNwbGF5Om5vbmV9LmFjY2Vzc2libGUtTkZOZnFQMnc6YWZ0ZXJ7Ym9yZGVyLWNvbG9yOnZhcigtLWNvbG9yLXR2LWJsdWUtNTAwKTtib3JkZXItcmFkaXVzOjZweH0uaHVlLXI0dW81V242e2FsaWduLWl0ZW1zOnN0cmV0Y2g7YmFja2dyb3VuZC1pbWFnZTpsaW5lYXItZ3JhZGllbnQoMTgwZGVnLHJlZCAwLCNmZjAgMTclLCMwZjAgMzMlLCMwZmYgNTAlLCMwMGYgNjclLCNmMGYgODMlLHJlZCk7Ym9yZGVyLXJhZGl1czoycHg7ZGlzcGxheTpmbGV4fS5odWUtcjR1bzVXbjYgLnBvaW50ZXItcjR1bzVXbjZ7YmFja2dyb3VuZC1jb2xvcjppbml0aWFsO2JvcmRlcjoycHggc29saWQgdmFyKC0tY29sb3ItYm9yZGVyLXByaW1hcnktbmV1dHJhbC1leHRyYS1oZWF2eSk7Ym9yZGVyLXJhZGl1czoycHg7Ym94LXNoYWRvdzowIDFweCAycHggIzAwMDAwMDgwO2hlaWdodDo1cHg7bWFyZ2luLWJsb2NrOi00cHggMDttYXJnaW4taW5saW5lOi0ycHggMDtwb3NpdGlvbjphYnNvbHV0ZTt0cmFuc2l0aW9uOmluc2V0LWlubGluZS1zdGFydCAuMXMsaW5zZXQtaW5saW5lLXN0YXJ0IC4xcyx0b3AgLjFzO3dpZHRoOjEwMCV9Lmh1ZS1yNHVvNVduNi5hY2Nlc3NpYmxlLXI0dW81V242e291dGxpbmU6bm9uZTtvdmVyZmxvdzp2aXNpYmxlO3Bvc2l0aW9uOnJlbGF0aXZlfS5odWUtcjR1bzVXbjYuYWNjZXNzaWJsZS1yNHVvNVduNjpmb2N1c3tvdXRsaW5lOm5vbmV9Lmh1ZS1yNHVvNVduNi5hY2Nlc3NpYmxlLXI0dW81V242OmZvY3VzLXZpc2libGV7b3V0bGluZTpub25lfS5odWUtcjR1bzVXbjYuYWNjZXNzaWJsZS1yNHVvNVduNjphZnRlcntib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLXdpZHRoOjJweDtib3gtc2l6aW5nOmJvcmRlci1ib3g7Y29udGVudDoiIjtkaXNwbGF5Om5vbmU7aGVpZ2h0OmNhbGMoMTAwJSArIDhweCk7aW5zZXQtaW5saW5lLXN0YXJ0Oi00cHg7cG9pbnRlci1ldmVudHM6bm9uZTtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6LTRweDt3aWR0aDpjYWxjKDEwMCUgKyA4cHgpO3otaW5kZXg6MX0uaHVlLXI0dW81V242LmFjY2Vzc2libGUtcjR1bzVXbjY6Zm9jdXM6YWZ0ZXJ7ZGlzcGxheTpibG9ja30uaHVlLXI0dW81V242LmFjY2Vzc2libGUtcjR1bzVXbjY6Zm9jdXMtdmlzaWJsZTphZnRlcntkaXNwbGF5OmJsb2NrfS5odWUtcjR1bzVXbjYuYWNjZXNzaWJsZS1yNHVvNVduNjpmb2N1czpub3QoOmZvY3VzLXZpc2libGUpOmFmdGVye2Rpc3BsYXk6bm9uZX0uaHVlLXI0dW81V242LmFjY2Vzc2libGUtcjR1bzVXbjY6YWZ0ZXJ7Ym9yZGVyLWNvbG9yOnZhcigtLWNvbG9yLXR2LWJsdWUtNTAwKTtib3JkZXItcmFkaXVzOjZweH0ucG9pbnRlckNvbnRhaW5lci1yNHVvNVduNnttYXJnaW46M3B4IDA7cG9zaXRpb246cmVsYXRpdmU7d2lkdGg6MTAwJX1bZGF0YS10aGVtZT1saWdodF17LS1fMC1VVzdXOnZhcigtLWNvbG9yLWNvbGQtZ3JheS0yMDApOy0tXzEtVVc3Vzp2YXIoLS1jb2xvci1jb2xkLWdyYXktOTAwKTstLV8yLVVXN1c6dmFyKC0tY29sb3ItY29sZC1ncmF5LTIwMCl9W2RhdGEtdGhlbWU9ZGFya117LS1fMC1VVzdXOiMwMDAwOy0tXzEtVVc3Vzp2YXIoLS1jb2xvci1jb2xkLWdyYXktMjAwKTstLV8yLVVXN1c6dmFyKC0tY29sb3ItY29sZC1ncmF5LTY1MCl9LmNvbnRhaW5lci1paUVZYXFQRHtwYWRkaW5nOjZweCAxMnB4O3dpZHRoOjIyNHB4fS5mb3JtLWlpRVlhcVBEe2Rpc3BsYXk6ZmxleDttYXJnaW4tYm90dG9tOjEycHh9LnN3YXRjaC1paUVZYXFQRHtib3JkZXItcmFkaXVzOjRweDtib3gtc2l6aW5nOmJvcmRlci1ib3g7aGVpZ2h0OjI2cHg7d2lkdGg6MjZweH0uc3dhdGNoLWlpRVlhcVBELndoaXRlLWlpRVlhcVBEe2JvcmRlcjoxcHggc29saWQgdmFyKC0tXzAtVVc3Vyl9LmlucHV0V3JhcC1paUVZYXFQRHthbGlnbi1pdGVtczpjZW50ZXI7Y29sb3I6dmFyKC0tXzEtVVc3Vyk7ZGlzcGxheTpmbGV4O3Bvc2l0aW9uOnJlbGF0aXZlfS5pbnB1dEhhc2gtaWlFWWFxUER7cG9pbnRlci1ldmVudHM6bm9uZTtwb3NpdGlvbjphYnNvbHV0ZTt0ZXh0LWFsaWduOmVuZDt0b3A6NXB4O3dpZHRoOjIxcHh9LmlucHV0LWlpRVlhcVBEe2JhY2tncm91bmQtY29sb3I6aW5pdGlhbDtib3JkZXI6MXB4IHNvbGlkIHZhcigtLV8yLVVXN1cpO2JvcmRlci1yYWRpdXM6NHB4O2JveC1zaXppbmc6Ym9yZGVyLWJveDtkaXNwbGF5OmZsZXg7aGVpZ2h0OjI2cHg7bGluZS1oZWlnaHQ6MjRweDttYXJnaW4taW5saW5lLXN0YXJ0OjhweDtwYWRkaW5nOjAgNXB4O3BhZGRpbmctaW5saW5lLXN0YXJ0OjEycHg7d2lkdGg6NjhweH0uaW5wdXQtaWlFWWFxUEQ6Zm9jdXN7Ym9yZGVyLWNvbG9yOnZhcigtLWNvbG9yLWJyYW5kKX0uYnV0dG9uV3JhcC1paUVZYXFQRHtoZWlnaHQ6MjZweDttYXJnaW4taW5saW5lLXN0YXJ0OmF1dG99Lmh1ZVNhdHVyYXRpb25XcmFwLWlpRVlhcVBEe2Rpc3BsYXk6ZmxleDtoZWlnaHQ6MTg0cHh9LnNhdHVyYXRpb24taWlFWWFxUER7bWFyZ2luLWlubGluZS1lbmQ6N3B4O3dpZHRoOjIwMHB4fS5odWUtaWlFWWFxUER7aGVpZ2h0OjEwMCU7d2lkdGg6MTdweH1bZGF0YS10aGVtZT1saWdodF17LS1fMC15T0tKOnZhcigtLWNvbG9yLWNvbGQtZ3JheS0yMDApOy0tXzEteU9LSjp2YXIoLS1jb2xvci1jb2xkLWdyYXktOTAwKTstLV8yLXlPS0o6dmFyKC0tY29sb3ItY29sZC1ncmF5LTEwMCl9W2RhdGEtdGhlbWU9ZGFya117LS1fMC15T0tKOnZhcigtLWNvbG9yLWNvbGQtZ3JheS03MDApOy0tXzEteU9LSjp2YXIoLS1jb2xvci1jb2xkLWdyYXktMjAwKTstLV8yLXlPS0o6dmFyKC0tY29sb3ItY29sZC1ncmF5LTgwMCl9LmNvbnRhaW5lci1tZGNPa3ZiantwYWRkaW5nOjZweCAxMnB4O3dpZHRoOjIyNHB4fS5zZWN0aW9uVGl0bGUtbWRjT2t2Ymp7Y29sb3I6dmFyKC0tY29sb3ItZGVmYXVsdC1ncmF5KTtmb250LXNpemU6MTJweDtsaW5lLWhlaWdodDoxNHB4O21hcmdpbjoxMnB4IDAgNHB4fS5zZXBhcmF0b3ItbWRjT2t2Ymp7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1fMC15T0tKKTtoZWlnaHQ6MXB4O21hcmdpbjoxMnB4IDB9LnNlcGFyYXRvci1tZGNPa3ZiajpsYXN0LWNoaWxke2Rpc3BsYXk6bm9uZX0uY3VzdG9tQnV0dG9uLW1kY09rdmJqe2FsaWduLWl0ZW1zOmNlbnRlcjtib3JkZXItcmFkaXVzOjJweDtib3gtc2l6aW5nOmJvcmRlci1ib3g7ZGlzcGxheTpmbGV4O2hlaWdodDoxN3B4O2p1c3RpZnktY29udGVudDpjZW50ZXI7bWFyZ2luOjNweDtwb3NpdGlvbjpyZWxhdGl2ZTt0cmFuc2l0aW9uOmJhY2tncm91bmQtY29sb3IgLjM1czt3aWR0aDoxN3B4fUBtZWRpYSAoYW55LWhvdmVyOmhvdmVyKXsuY3VzdG9tQnV0dG9uLW1kY09rdmJqOmhvdmVye2JhY2tncm91bmQtY29sb3I6dmFyKC0tXzIteU9LSil9fS5jdXN0b21CdXR0b24tbWRjT2t2Ymo6YWZ0ZXIsLmN1c3RvbUJ1dHRvbi1tZGNPa3ZiajpiZWZvcmV7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1fMS15T0tKKTtjb250ZW50OiIiO3Bvc2l0aW9uOmFic29sdXRlfS5jdXN0b21CdXR0b24tbWRjT2t2Ymo6YmVmb3Jle2hlaWdodDoxM3B4O2luc2V0LWlubGluZS1zdGFydDpjYWxjKDUwJSAtIC41cHgpO3RvcDpjYWxjKDUwJSAtIDYuNXB4KTt3aWR0aDoxcHh9LmN1c3RvbUJ1dHRvbi1tZGNPa3ZiajphZnRlcntoZWlnaHQ6MXB4O2luc2V0LWlubGluZS1zdGFydDpjYWxjKDUwJSAtIDYuNXB4KTt0b3A6Y2FsYyg1MCUgLSAuNXB4KTt3aWR0aDoxM3B4fS5hY2Nlc3NpYmxlLW1kY09rdmJqe2FsbDp1bnNldDthbGlnbi1pdGVtczpjZW50ZXI7Ym9yZGVyLXJhZGl1czoycHg7Ym94LXNpemluZzpib3JkZXItYm94O2Rpc3BsYXk6ZmxleDtoZWlnaHQ6MTdweDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO21hcmdpbjozcHg7cG9zaXRpb246cmVsYXRpdmU7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kLWNvbG9yIC4zNXM7d2lkdGg6MTdweH1AbWVkaWEgKGFueS1ob3Zlcjpob3Zlcil7LmFjY2Vzc2libGUtbWRjT2t2Ymo6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1fMi15T0tKKX19LmFjY2Vzc2libGUtbWRjT2t2Ymo6YWZ0ZXIsLmFjY2Vzc2libGUtbWRjT2t2Ymo6YmVmb3Jle2JhY2tncm91bmQtY29sb3I6dmFyKC0tXzEteU9LSik7Y29udGVudDoiIjtwb3NpdGlvbjphYnNvbHV0ZX0uYWNjZXNzaWJsZS1tZGNPa3ZiajpiZWZvcmV7aGVpZ2h0OjEzcHg7aW5zZXQtaW5saW5lLXN0YXJ0OmNhbGMoNTAlIC0gLjVweCk7dG9wOmNhbGMoNTAlIC0gNi41cHgpO3dpZHRoOjFweH0uYWNjZXNzaWJsZS1tZGNPa3ZiajphZnRlcntoZWlnaHQ6MXB4O2luc2V0LWlubGluZS1zdGFydDpjYWxjKDUwJSAtIDYuNXB4KTt0b3A6Y2FsYyg1MCUgLSAuNXB4KTt3aWR0aDoxM3B4fS5hY2Nlc3NpYmxlLW1kY09rdmJqOmZvY3VzLXZpc2libGV7Ym9yZGVyOjJweCBzb2xpZCB2YXIoLS1jb2xvci10di1ibHVlLTUwMCk7Ym9yZGVyLXJhZGl1czo0cHh9"}},"time_used":4,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":4,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/37513.de1574b3389800c93ebc.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.054Z","timestamp":1785148034054,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/37513.de1574b3389800c93ebc.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\ncontent-type: text/css; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a58ab11-f9\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Thu, 16 Jul 2026 09:57:37 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/16/2026 11:03:21\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: bf5a149b560cb0e45ed39b3c48cf891f\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":249,"size_decoded":921,"mime_type":"text/css; charset=utf-8","magic":"assembler source, ASCII text, with no line terminators","md5":"2609ad9fbf4035b2a6560fc3dc9d6ea8","sha1":"bdfe0d65ef3fe93359d3b4c44d38f0c71a542575","sha256":"f77d49b20494fbd63705f7a88a3710886adb7e234fa5e484f24ce7a7da5e7e24","sha512":"bbc4fff59f180264dcbd742c54b6c269770c18d10946ccb1842a3a4eb4207d6c4157c253f72cde3e06cf38c4d3c7b7b7fbefd05c61e9fbe4de303b7f06283c7a","ssdeep":"","tlshash":"e9d01787a1d04f313c13aa6d19f9263921b9ac745e22198e30206e225ae3aaa0011daf","first_seen":"2026-07-17T14:15:58.496983Z","last_seen":"2026-07-27T12:51:16.050139Z","times_seen":155,"resource_available":false,"data":"LmV2ZW50V3JhcHBlci1fRThVWFZLMXthbGw6dW5zZXQhaW1wb3J0YW50O2Rpc3BsYXk6Y29udGVudHMhaW1wb3J0YW50fS5wa24tY1RwX3VuVjh7LS11aS1saWItaW4tbGlzdEl0ZW0tc2l6ZUlzRGVza3RvcDp2YXIoLS11aS1saWItb3V0LXBvc2l0aW9uZXItaXNBbmNob3JQb3NpdGlvbmVyKTstLXVpLWxpYi1pbi1saXN0SXRlbS1zaXplSXNNb2JpbGU6dmFyKC0tdWktbGliLW91dC1wb3NpdGlvbmVyLWlzTW9iaWxlUG9zaXRpb25lcil9"}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/91944.cd51b48fa4d742a11726.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.165Z","timestamp":1785148034165,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/91944.cd51b48fa4d742a11726.js HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a608293-4db1\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Wed, 22 Jul 2026 08:42:59 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/22/2026 11:01:21\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: fc5b5174c9735e8e54337903ff0f6ac5\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":19889,"size_decoded":7413,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (3072)","md5":"21603b1ea6d66be9e85aa0d9d193067c","sha1":"5dfac46409e281f3078e3af99e4bff3c1a5f0872","sha256":"9b43f56adbbeaa987486fbb6cacb11cabfc1b3f3a2dd72779653f53c856e5019","sha512":"cab7c1b47820cec2b3b2a91830c3ab740452d292f8365c4ddcbb24c933e951935088f8e65d6b05cf26971d02ca63b8ed69349566da982272c09dc14fad9cb99c","ssdeep":"384:lciP7w+YSd7NNsFs9s5QFdP4k3I+0rZnPb5X9D8Tq7dQYQBcOu7+sP5MgVzZtcip:lciPU+YSdHs0sJjFnPb5X9w+7dQ/SOub","tlshash":"b792a5913161697a53a622ed6cb11a03a749680af80e4d8cf1fd49ff685cc0e327db7c","first_seen":"2026-07-22T16:00:00.510452Z","last_seen":"2026-07-27T12:48:39.853479Z","times_seen":83,"resource_available":true,"data":"InVzZSBzdHJpY3QiOyhzZWxmLndlYnBhY2tDaHVua3RyYWRpbmd2aWV3PXNlbGYud2VicGFja0NodW5rdHJhZGluZ3ZpZXd8fFtdKS5wdXNoKFtbOTE5NDRdLHszODgzNjcoZSx0LGkpe2Z1bmN0aW9uIHMoZSx0KXtyZXR1cm4gZT8uc3R1ZHlJZHMuaGFzKHQpPz8hMX1pLmQodCx7aGlnaGxpZ2h0Q29udGFpbnNTb3VyY2U6KCk9PnN9KX0sNzMyMDgwKGUsdCxpKXtmdW5jdGlvbiBzKGUsdCl7cmV0dXJuKGUmdCk9PT10fWkuZCh0LHtpc1Bsb3RWaXNpYmxlOigpPT5zfSl9LDUyMTk4MyhlLHQsaSl7ZnVuY3Rpb24gcyhlLHQpe2lmKG51bGw9PT1lKXJldHVybiB0O2NvbnN0IGk9ZS5maXJzdEluZGV4LHM9dC5maXJzdEluZGV4LG49ZS5jbGVhckRhdGF8fHQuY2xlYXJEYXRhO3JldHVybntmaXJzdEluZGV4Om58fHZvaWQgMD09PWl8fHZvaWQgMD09PXM/dm9pZCAwOk1hdGgubWluKGkscyksY2xlYXJEYXRhOm59fWkuZCh0LHttZXJnZURhdGFJbnZhbGlkYXRpb246KCk9PnN9KX0sMzE1NjU0KGUsdCxpKXtpLmQodCx7U3R1ZHlQbG90UGFuZVZpZXc6KCk9PkZ9KTt2YXIgcyxuPWkoMTM4NjM4KSxvPWkoMTM0NjcpLGw9aSg2MDE4NDEpLGE9aSg5MzAyMzEpLHI9aSg2NDA3NDQpLGQ9aSg4NzM1NzMpLGg9aSg1NTY5MTEpLGM9aSg2Mzg1NzEpLHU9aSg0MTk5MjQpLF89aSg3ODkxOTApLHA9aSg0NTM2NzcpLG09aSg0NzAyMTApLHk9aSg1OTA0MjMpLEk9aSg5NzA0MzQpLFM9aSgxNDM4MDgpLGc9aSg3MzY1MzEpLGY9aSg2MDQyMTQpLHY9aSg3NjMpLFA9aSg5MzQzMDUpLHg9aSgzMTg5NzQpOyFmdW5jdGlvbihlKXtlW2UuTWluQ2lyY2xlUmFkaXVzPTEuNV09Ik1pbkNpcmNsZVJhZGl1cyIsZVtlLlNpbXBsaWZpZWRQYWludGluZ01vZGVNYXhCYXJTcGFjaW5nPTJdPSJTaW1wbGlmaWVkUGFpbnRpbmdNb2RlTWF4QmFyU3BhY2luZyJ9KHN8fChzPXt9KSk7Y2xhc3MgYiBleHRlbmRzIFAuQml0bWFwQ29vcmRpbmF0ZXNQYW5lUmVuZGVyZXJ7Y29uc3RydWN0b3IoZSl7c3VwZXIoKSx0aGlzLl9kYXRhPWV9aGl0VGVzdChlKXtjb25zdCB0PXRoaXMuX2RhdGEsaT10LmxpbmVXaWR0aCxzPXQudmVydE9mZnNldHx8MCxuPSgwLGYuaW50ZXJhY3Rpb25Ub2xlcmFuY2UpKCkuc2VyaWVzK2ksbz10LnZpc2libGVJdGVtc1JhbmdlPy5zdGFydEl0ZW1JbmRleD8/MCxsPXQudmlzaWJsZUl0ZW1zUmFuZ2U/LmVuZEl0ZW1JbmRleD8/dC5pdGVtcy5sZW5ndGg7Zm9yKGxldCBhPW87YTxsO2ErKyl7Y29uc3Qgbz10Lml0ZW1zW2FdO2lmKG5ldyBnLlBvaW50KG8uY2VudGVyLG8ueStzKS5zdWJ0cmFjdChlKS5sZW5ndGgoKStpPD1uKXJldHVybiBuZXcgdi5IaXRUZXN0UmVzdWx0KHYuSGl0VGFyZ2V0LlJlZ3VsYXIpfXJldHVybiBudWxsfV9kcmF3SW1wbChlKXtjb25zdCB0PXRoaXMuX2RhdGEse2hvcml6b250YWxQaXhlbFJhdGlvOmksdmVydGljYWxQaXhlbFJhdGlvOnMsY29udGV4dDpufT1lLG89TWF0aC5tYXgoMSxNYXRoLmZsb29yKGkpKSxhPW8lMj8uNTowLHt2ZXJ0T2Zmc2V0OnI9MCxsaW5lQ29sb3I6ZCxsaW5lV2lkdGg6aCxiYXJTcGFjaW5nOmN9PXQ7bGV0IHU9IiIsXz0hMTtjb25zdCBwPXQudmlzaWJsZUl0ZW1zUmFuZ2U/LnN0YXJ0SXRlbUluZGV4Pz8wLG09dC52aXNpYmxlSXRlbXNSYW5nZT8uZW5kSXRlbUluZGV4Pz90Lml0ZW1zLmxlbmd0aDtmb3IobGV0IGU9cDtlPG07ZSsrKXtjb25zdCBwPXQuaXRlbXNbZV0sbT1wLmNlbnRlcix5PXAueStyO2lmKCgwLGwuaXNOYU4pKG0pfHwoMCxsLmlzTmFOKSh5KSljb250aW51ZTtsZXQgSSxTO251bGwhPXAuc3R5bGU/KEk9cC5zdHlsZS5jb2xvcixTPXAuc3R5bGUud2lkdGgpOihJPWQsUz1oKSwoSSE9PXV8fHguaXNTYWZhcmkpJiYodT1JLF8mJm4uZmlsbCgpLG4uYmVnaW5QYXRoKCksbi5maWxsU3R5bGU9SSk7Y29uc3QgZz1NYXRoLnJvdW5kKG0qaSkrYSxmPU1hdGgucm91bmQoeSpzKSthO2xldCB2PU1hdGgucm91bmQoMipNYXRoLm1heCgxLjUsUykqaSk7byUyIT12JTImJih2Kz0xKSxjPjJ8fFM+MS41PyhuLm1vdmVUbyhnK3YvMixmKSxuLmFyYyhnLGYsdi8yLDAsMipNYXRoLlBJLCExKSk6bi5yZWN0KGctdi8yLGYtdi8yLHYsdiksXz0hMH1fJiZuLmZpbGwoKX19dmFyIE49aSg3MjEzOTYpLEM9aSg3MDA3NCk7Y2xhc3MgdyBleHRlbmRzIFAuQml0bWFwQ29vcmRpbmF0ZXNQYW5lUmVuZGVyZXJ7Y29uc3RydWN0b3IoZSl7c3VwZXIoKSx0aGlzLl9kYXRhPWV9aGl0VGVzdChlKXtjb25zdCB0PSgwLGYuaW50ZXJhY3Rpb25Ub2xlcmFuY2UpKCkuc2VyaWVzK3RoaXMuX2RhdGEubGluZVdpZHRoLzI7bGV0IGkscyxuLG87Zm9yKGxldCBsPTE7bDx0aGlzLl9kYXRhLml0ZW1zLmxlbmd0aDsrK2wpe2k9dGhpcy5fZGF0YS5pdGVtc1tsLTFdLHM9dGhpcy5fZGF0YS5pdGVtc1tsXSxuPWkuY2VudGVyLG89cy5jZW50ZXI7aWYoKDAsQy5kaXN0YW5jZVRvU2VnbWVudCkobmV3IGcuUG9pbnQobixpLnkpLG5ldyBnLlBvaW50KG8scy55KSxuZXcgZy5Qb2ludChlLngsZS55KSkuZGlzdGFuY2U8PXQpcmV0dXJuIG5ldyB2LkhpdFRlc3RSZXN1bHQodi5IaXRUYXJnZXQuUmVndWxhcil9cmV0dXJuIG51bGx9X2RyYXdJbXBsKGUpe2NvbnN0e2NvbnRleHQ6dCxob3Jpem9udGFsUGl4ZWxSYXRpbzppLHZlcnRpY2FsUGl4ZWxSYXRpbzpzfT1lO2xldCBuPSIiLG89ITE7Y29uc3QgYT10aGlzLl9kYXRhLnZpc2libGVJdGVtc1JhbmdlPy5zdGFydEl0ZW1JbmRleD8/MCxyPSh0aGlzLl9kYXRhLnZpc2libGVJdGVtc1JhbmdlPy5lbmRJdGVtSW5kZXg/P3RoaXMuX2RhdGEuaXRlbXMubGVuZ3RoKS0xO2ZvcihsZXQgZT1hO2U8PXI7ZSsrKXtjb25zdCBhPXRoaXMuX2RhdGEuaXRlbXNbZV07aWYoKDAsbC5pc05hTikoYS5jZW50ZXIpfHwoMCxsLmlzTmFOKShhLnkpKWNvbnRpbnVlO2NvbnN0IHI9YS5zdHlsZT8uY29sb3I/P3RoaXMuX2RhdGEubGluZUNvbG9yLGQ9YS5zdHlsZT8ud2lkdGg/P3RoaXMuX2RhdGEubGluZVdpZHRoLGg9TWF0aC5tYXgoMSxNYXRoLmZsb29yKGQqaSkpLGM9TWF0aC5tYXgoMSxNYXRoLmZsb29yKGQqcykpOyhyIT09bnx8eC5pc1NhZmFyaSkmJihuPXIsCm8mJnQuZmlsbCgpLHQuYmVnaW5QYXRoKCksdC5maWxsU3R5bGU9cik7bGV0IHU9MypoO3UlMiE9aCUyJiYodSs9MSk7bGV0IF89MypjO18lMiE9YyUyJiYoXys9MSk7Y29uc3QgcD1NYXRoLnJvdW5kKE1hdGgucm91bmQoYS5jZW50ZXIqaSktdS8yKSxtPU1hdGgucm91bmQoTWF0aC5yb3VuZChhLnkqcyktXy8yKSx5PXArTWF0aC5mbG9vcih1LzItaC8yKSxJPW0rTWF0aC5mbG9vcihfLzItYy8yKTt0LnJlY3QocCxJLHUsYyksdC5yZWN0KHksbSxoLF8pLG89ITB9byYmdC5maWxsKCl9fWNsYXNzIFIgZXh0ZW5kcyBQLkJpdG1hcENvb3JkaW5hdGVzUGFuZVJlbmRlcmVye2NvbnN0cnVjdG9yKGUpe3N1cGVyKCksdGhpcy5fZGF0YT1lfWhpdFRlc3QoZSl7Y29uc3QgdD0oMCxmLmludGVyYWN0aW9uVG9sZXJhbmNlKSgpLnNlcmllcyt0aGlzLl9kYXRhLmxpbmVXaWR0aC8yLGk9bmV3IE1hcDtmb3IoY29uc3QgcyBvZiB0aGlzLl9kYXRhLml0ZW1zKXtjb25zdCBvPXMuY2VudGVyLGw9cy55O2xldCBhPXQ7cy5zdHlsZSYmKGkuaGFzKHMuc3R5bGUud2lkdGgpP2E9KDAsbi5lbnN1cmVEZWZpbmVkKShpLmdldChzLnN0eWxlLndpZHRoKSk6aS5zZXQodGhpcy5fZGF0YS5saW5lV2lkdGgsYSkpO2lmKCgwLEMuZGlzdGFuY2VUb1NlZ21lbnQpKG5ldyBnLlBvaW50KG8sbCksbmV3IGcuUG9pbnQobyx0aGlzLl9kYXRhLmhpc3RvZ3JhbUJhc2UpLG5ldyBnLlBvaW50KGUueCxlLnkpKS5kaXN0YW5jZTw9YSlyZXR1cm4gbmV3IHYuSGl0VGVzdFJlc3VsdCh2LkhpdFRhcmdldC5SZWd1bGFyKX1yZXR1cm4gbnVsbH1fZHJhd0ltcGwoZSl7aWYoMD09PXRoaXMuX2RhdGEuaXRlbXMubGVuZ3RoKXJldHVybjtjb25zdHtjb250ZXh0OnQsaG9yaXpvbnRhbFBpeGVsUmF0aW86aSx2ZXJ0aWNhbFBpeGVsUmF0aW86c309ZTt0LmZpbGxTdHlsZT10aGlzLl9kYXRhLmxpbmVDb2xvcjtjb25zdCBuPU1hdGgubWF4KDEsTWF0aC5mbG9vcih0aGlzLl9kYXRhLmxpbmVXaWR0aCppKSksbz1uLzIsbD1NYXRoLm1heCgxLE1hdGguZmxvb3IoaSkpLGE9TWF0aC5yb3VuZCh0aGlzLl9kYXRhLmhpc3RvZ3JhbUJhc2UqcyktTWF0aC5mbG9vcihsLzIpLHI9YStsLGQ9dGhpcy5fZGF0YS52aXNpYmxlSXRlbXNSYW5nZT8uc3RhcnRJdGVtSW5kZXg/PzAsaD0odGhpcy5fZGF0YS52aXNpYmxlSXRlbXNSYW5nZT8uZW5kSXRlbUluZGV4Pz90aGlzLl9kYXRhLml0ZW1zLmxlbmd0aCktMTtmb3IobGV0IGU9ZDtlPD1oO2UrKyl7Y29uc3QgZD10aGlzLl9kYXRhLml0ZW1zW2VdO2xldCBoPW4sYz1vO2Quc3R5bGU/KHQuZmlsbFN0eWxlPWQuc3R5bGUuY29sb3IsaD1NYXRoLm1heCgxLE1hdGguZmxvb3IoZC5zdHlsZS53aWR0aCppKSksYz1oLzIpOnQuZmlsbFN0eWxlPXRoaXMuX2RhdGEubGluZUNvbG9yO2NvbnN0IHU9aCUyPy41OjAsXz1NYXRoLnJvdW5kKGQuY2VudGVyKmkpK3UscD1NYXRoLnJvdW5kKGQueSpzKTtsZXQgbSx5O3A8PWE/KG09cCx5PXIpOihtPWEseT1wLU1hdGguZmxvb3IobC8yKStsKSx0LmZpbGxSZWN0KE1hdGguZmxvb3IoXy1jKSxtLGgseS1tKX19fXZhciBNPWkoMTY4MjU4KSxMPWkoNjU1NTY5KSxUPWkoMTk4OTAxKSxCPWkoMzAzMjcwKSxEPWkoMjI3ODI1KTtjb25zdCBWPWU9Pntjb25zdCB0PSgwLG8ucmdiVG9Ic2wpKCgwLG8ucGFyc2VSZ2IpKGUpKSxpPXRbMF0rLjA1O3JldHVybiB0WzBdPWktTWF0aC5mbG9vcihpKSwoMCxvLnJnYlRvSGV4U3RyaW5nKSgoMCxvLmhzbFRvUmdiKSh0KSl9LGs9KDAsYy5tZW1vaXplKShWKTtjbGFzcyBGIGV4dGVuZHMgQi5TdHVkeVBhbmVWaWV3SW5wbGFjZVVwZGF0YWJsZXtjb25zdHJ1Y3RvcihlLHQsaSxzLG49ITEpe3N1cGVyKHQsaSxzKSx0aGlzLl9oaXN0b2dyYW1CYXNlPW51bGwsdGhpcy5fbGluZUNvbG9yPSIiLHRoaXMuX2xpbmVXaWR0aD0xLHRoaXMuX2NvbG9yMT0iIix0aGlzLl9jb2xvcjI9IiIsdGhpcy5fcmVuZGVyZXI9bmV3IF8uQ29tcG9zaXRlUmVuZGVyZXIsdGhpcy5faXNNYXJrZXJzRW5hYmxlZD0oMCxhLmlzRmVhdHVyZXNldEVuYWJsZWQpKCJzb3VyY2Vfc2VsZWN0aW9uX21hcmtlcnMiKSx0aGlzLl9zdHVkeT1lLHRoaXMuX3Bsb3RJbmRleD1lLm1ldGFJbmZvKCkucGxvdHMuZmluZEluZGV4KChlPT5lLmlkPT09cykpLHRoaXMuX2NvbG9yUHJvdmlkZXI9KDAsTC5jcmVhdGVTdHVkeVBsb3RDb2xvclByb3ZpZGVyKShlLm1ldGFJbmZvKCksZS5wcm9wZXJ0aWVzKCkscyksdGhpcy5fZXh0ZW5kU3RlcExpbmVUb0JhcnNFbmRpbmdzPW4sdGhpcy5faXNGdW5kYW1lbnRhbD0oMCxTLmlzRnVuZGFtZW50YWxTdHVkeU1ldGFJbmZvKShlLm1ldGFJbmZvKCkpO2NvbnN0IG89dGhpcy5fc3R1ZHkucHJvcGVydGllcygpLnN0eWxlc1t0aGlzLl9wbG90TmFtZV0ucGxvdHR5cGUudmFsdWUoKTt0aGlzLl9pc1N0ZXBMaW5lUGxvdD1vPT09TS5MaW5lU3R1ZHlQbG90U3R5bGUuU3RlcExpbmV8fG89PT1NLkxpbmVTdHVkeVBsb3RTdHlsZS5TdGVwTGluZVdpdGhCcmVha3N8fG89PT1NLkxpbmVTdHVkeVBsb3RTdHlsZS5TdGVwTGluZVdpdGhEaWFtb25kc31pdGVtcygpe3JldHVybiB0aGlzLl9pdGVtc31yZW5kZXJlcigpe3JldHVybiB0aGlzLl9tYWtlU3VyZVJlbmRlcmVySXNWYWxpZCgpLHRoaXMuX3JlbmRlcmVyfV9nZXRUcmFuc3BWYWx1ZSgpe2NvbnN0IGU9dGhpcy5fc3R1ZHkucHJvcGVydGllcygpLHQ9ZS5zdHlsZXNbdGhpcy5fcGxvdE5hbWVdO2xldCBpPTA7Y29uc3Qgcz10aGlzLl9zdHVkeS5tZXRhSW5mbygpO3JldHVybiJWb2x1bWVAdHYtYmFzaWNzdHVkaWVzIj09PXMuaWQmJnMudmVyc2lvbjw9NDYmJiJ0cmFuc3BhcmVuY3kiaW4gZT8oaT1lLnRyYW5zcGFyZW5jeS52YWx1ZSgpLGk9KDAsbC5pc051bWJlcikoaSk/aTowLGkpOih0LnRyYW5zcGFyZW5jeSYmKGk9dC50cmFuc3BhcmVuY3kudmFsdWUoKSxpPSgwLGwuaXNOdW1iZXIpKGkpP2k6MCksaSl9X3VwZGF0ZUltcGxGdWxsKGUpe2lmKHRoaXMuX3JlbmRlcmVyLmNsZWFyKCksdGhpcy5fZGF0YUludmFsaWRhdGVkPy5jbGVhckRhdGEmJih0aGlzLl9pdGVtcz1bXSksCiF0aGlzLl9zdHVkeS5pc1Bsb3RWaXNpYmxlQXQodGhpcy5fcGxvdE5hbWUsTS5TdHVkeVBsb3REaXNwbGF5VGFyZ2V0LlBhbmUpKXJldHVybiExO2NvbnN0IHQ9dGhpcy5fcHJpY2VTY2FsZSgpO2lmKCF0fHx0LmlzRW1wdHkoKSlyZXR1cm4hMTtpZihudWxsPT09dGhpcy5fc3R1ZHkuZmlyc3RWYWx1ZSh2b2lkIDAsdGhpcy5pc0ZvcmNlT3ZlcmxheSgpKSlyZXR1cm4hMTt0aGlzLl9oaXN0b2dyYW1CYXNlPW51bGw7Y29uc3QgaT10aGlzLl9zdHVkeS5wcm9wZXJ0aWVzKCkuc3R5bGVzW3RoaXMuX3Bsb3ROYW1lXSxzPWkucGxvdHR5cGUudmFsdWUoKSxvPXRoaXMuX2lzRnVuZGFtZW50YWwmJnRoaXMuX2lzU3RlcExpbmVQbG90LGw9dGhpcy5fc3R1ZHkucGxvdHMoKS5wbG90dGFibGVSYW5nZShvKTtpZigwPT09bC5zaXplKCkpcmV0dXJuITE7Y29uc3QgYT10aGlzLl9zdHVkeS5vZmZzZXQodGhpcy5fcGxvdE5hbWUpLGM9KDAsTS5kb2VzTGluZVBsb3RTdHlsZVN1cHBvcnRGaWxsQnJlYWtzKShzKSx1PXRoaXMuX3ByZWFsbG9jYXRlSXRlbXMobCwoKGUsdCk9Pih7eTpOYU4sbGVmdDpOYU4sY2VudGVyOk5hTixyaWdodDpOYU4scHJpY2U6dD8/TmFOLHRpbWVQb2ludEluZGV4OmUrYX0pKSk7bGV0IF89TmFOLHA9TmFOO2NvbnN0IG09bmV3IE1hcCx5PShlLHQpPT57bGV0IGk9bS5nZXQoZSk7dm9pZCAwPT09aSYmKGk9bmV3IE1hcCxtLnNldChlLGkpKTtsZXQgcz1pLmdldCh0KTtpZih2b2lkIDA9PT1zKXtjb25zdCBuPSF0aGlzLl9wbG90TmFtZXx8InZvbCIhPT10aGlzLl9wbG90TmFtZTtzPSgwLGQuZ2VuZXJhdGVDb2xvcikoZSx0LG4pLGkuc2V0KHQscyl9cmV0dXJuIHN9LFM9KDAsSS5jcmVhdGVFbXB0eVN0eWxlKSgpLGc9KDAsci5jbGFtcCkodGhpcy5fZ2V0VHJhbnNwVmFsdWUoKSwwLDEwMCksZj10aGlzLl9tb2RlbC50aW1lU2NhbGUoKS52aXNpYmxlQmFyc1N0cmljdFJhbmdlKCk7aWYobnVsbD09PWYpcmV0dXJuITE7Y29uc3R7c3RhcnRCYXI6dixlbmRCYXI6UH09dGhpcy5fY2FsY3VsYXRlU3RhcnRFbmQoZik7aWYobnVsbD09PXZ8fG51bGw9PT1QfHwwPT09dGhpcy5faXRlbXMubGVuZ3RoKXJldHVybiExO2NvbnN0IHg9dT8/KDAsbi5lbnN1cmVOb3ROdWxsKShsLmZpcnN0SW5kZXgoKSksYj0oMCxuLmVuc3VyZU5vdE51bGwpKGwubGFzdEluZGV4KCkpKzEsTj1sLnJhbmdlSXRlcmF0b3IoeCxiKTtsZXQgQyx3PSgwLFQubG93ZXJib3VuZCkodGhpcy5faXRlbXMseCthLCgoZSx0KT0+ZS50aW1lUG9pbnRJbmRleDx0KSk7Zm9yKGNvbnN0IGUgb2YgTil7bGV0IHQ9ZS5pbmRleDtjb25zdCBzPWUudmFsdWU7dCs9YSx0PU1hdGguZmxvb3IodCk7bGV0IG49c1t0aGlzLl9wbG90SW5kZXgrMV07Y29uc3Qgbz1udWxsPT1uO2lmKG49bz9OYU46bixjJiZvKXtwPW4sXz10LHcrKztjb250aW51ZX1jb25zdCBsPXRoaXMuX2l0ZW1zW3ddO2wudmFsSXNOb3RTYW1lQXNQcmV2PW4hPT1wfHx0LTEhPT1fO2lmKHRoaXMuX2NvbG9yUHJvdmlkZXIuaXNDb2xvckRlZmluZWQoKSYmKGwuc3R5bGU9e2NvbG9yOnkoaS5jb2xvci52YWx1ZSgpLDEwMCksd2lkdGg6aS5saW5ld2lkdGgudmFsdWUoKSxzdHlsZTppLmxpbmVzdHlsZS52YWx1ZSgpfSxudWxsIT1uKSl7Y29uc3QgZT10aGlzLl9jb2xvclByb3ZpZGVyLmdldFBsb3RQb2ludFN0eWxlKHMsUyksdD1lLmNvbG9yc1swXTt2b2lkIDAhPT10JiYobC5zdHlsZS5jb2xvcj0oMCxkLmlzSGV4Q29sb3IpKHQpP3kodCxnKTp0KSxsLnN0eWxlLndpZHRoPWUubGluZVdpZHRoPz9sLnN0eWxlLndpZHRoLGwuc3R5bGUuc3R5bGU9ZS5saW5lU3R5bGU/P2wuc3R5bGUuc3R5bGV9IWMmJiFpc05hTihfKSYmXyE9PXQtMSYmdz4wJiYodGhpcy5faXRlbXNbd10uYnJlYWtCZWZvcmU9ITApLHA9bixfPXQsdysrLEM9bH1pZihDJiZ0aGlzLl9pc0Z1bmRhbWVudGFsJiZ0aGlzLl9pc1N0ZXBMaW5lUGxvdCl7Y29uc3QgZT10aGlzLl9tb2RlbC5tYWluU2VyaWVzKCkuZGF0YSgpLmJhcnMoKS5sYXN0SW5kZXgoKSx0PUM7aWYobnVsbCE9PWUmJmU+dC50aW1lUG9pbnRJbmRleCl7Y29uc3QgaT0oMCxoLmRlZXBDb3B5KSh0KTtpLnRpbWVQb2ludEluZGV4PWUsaS52YWxJc05vdFNhbWVBc1ByZXY9ITEsdGhpcy5faXRlbXMubGVuZ3RoPnc/dGhpcy5faXRlbXNbd109aTp0aGlzLl9pdGVtcy5wdXNoKGkpfX1yZXR1cm4gdGhpcy5fdXBkYXRlSW1wbExpZ2h0KCksITB9X2NvcnJlY3RWaXNpYmxlSXRlbUluZGV4ZXMoZSx0KXtjb25zdCBpPXN1cGVyLl9jb3JyZWN0VmlzaWJsZUl0ZW1JbmRleGVzKGUsdCk7cmV0dXJuIHRoaXMuX2lzRnVuZGFtZW50YWwmJnRoaXMuX2lzU3RlcExpbmVQbG90JiZpLmVuZEl0ZW1JbmRleD09PXRoaXMuX2l0ZW1zLmxlbmd0aC0xJiYoaS5lbmRJdGVtSW5kZXgrPTEpLGl9X3VwZGF0ZVJlbmRlcmVyKGUsdCl7dGhpcy5fcmVuZGVyZXIuY2xlYXIoKTtjb25zdCBpPXRoaXMuX3N0dWR5LnByb3BlcnRpZXMoKS5zdHlsZXMuY2hpbGRzKClbdGhpcy5fcGxvdE5hbWVdLmNoaWxkcygpLHM9dGhpcy5fc3R1ZHkubWV0YUluZm8oKS5zdHlsZXM/Llt0aGlzLl9wbG90TmFtZV0sbz0oMCxyLmNsYW1wKSh0aGlzLl9nZXRUcmFuc3BWYWx1ZSgpLDAsMTAwKTt0aGlzLl9saW5lQ29sb3I9KDAsZC5nZW5lcmF0ZUNvbG9yKShpLmNvbG9yLnZhbHVlKCksbyksdGhpcy5fbGluZVdpZHRoPWkubGluZXdpZHRoLnZhbHVlKCk7bGV0IGE9aS5jb2xvci52YWx1ZSgpO2NvbnN0IGM9dGhpcy5fY29sb3JQcm92aWRlci5nZXREZWZhdWx0UGxvdFBvaW50U3R5bGUoKTtjJiYoYT1jLmNvbG9yc1swXXx8YSx0aGlzLl9saW5lV2lkdGg9Yy5saW5lV2lkdGg/P3RoaXMuX2xpbmVXaWR0aCx0aGlzLl9saW5lQ29sb3I9YT8oMCxkLmdlbmVyYXRlQ29sb3IpKGEsbyk6dGhpcy5fbGluZUNvbG9yKSx0aGlzLl9jb2xvcjI9KDAsZC5nZW5lcmF0ZUNvbG9yKShhLG8pO2NvbnN0IF89dGhpcy5fc3R1ZHkubWV0YUluZm8oKS5pc1JHQj9WKGEpOmsoYSk7dGhpcy5fY29sb3IxPSgwLGQuZ2VuZXJhdGVDb2xvcikoXyxvKQo7Y29uc3QgST10aGlzLl9oaXN0b2dyYW1CYXNlP3RoaXMuX2hpc3RvZ3JhbUJhc2U6KDAsbi5lbnN1cmVOb3ROdWxsKSh0aGlzLl9wcmljZVNjYWxlKCkpLmhlaWdodCgpLFM9aS5wbG90dHlwZS52YWx1ZSgpLGc9e2JhclNwYWNpbmc6dGhpcy5fbW9kZWwudGltZVNjYWxlKCkuYmFyU3BhY2luZygpLGl0ZW1zOnRoaXMuX2l0ZW1zLGhpc3RvZ3JhbUJhc2U6SSxsaW5lSW5kZXg6MCxsaW5lU3R5bGU6aS5saW5lc3R5bGUudmFsdWUoKSxsaW5lQ29sb3I6dGhpcy5fbGluZUNvbG9yLGxpbmVXaWR0aDooMCxsLmlzTnVtYmVyKSh0aGlzLl9saW5lV2lkdGgpP3RoaXMuX2xpbmVXaWR0aDoxLGNvbG9yMTp0aGlzLl9jb2xvcjEsY29sb3IyOnRoaXMuX2NvbG9yMixib3R0b206SSx2aXNpYmxlSXRlbXNSYW5nZTp7c3RhcnRJdGVtSW5kZXg6ZSxlbmRJdGVtSW5kZXg6dH0sc2ltcGxlTW9kZTp0aGlzLl9jb2xvclByb3ZpZGVyLnNpbmdsZUNvbG9yKCksc2tpcEhvbGVzOigwLE0uZG9lc0xpbmVQbG90U3R5bGVTdXBwb3J0RmlsbEJyZWFrcykoUyl9LGY9dGhpcy5fcmVuZGVyZXIsdj1Cb29sZWFuKHM/LmpvaW5Qb2ludHMpO3N3aXRjaChTKXtjYXNlIE0uTGluZVN0dWR5UGxvdFN0eWxlLkxpbmU6Y2FzZSBNLkxpbmVTdHVkeVBsb3RTdHlsZS5MaW5lV2l0aEJyZWFrczpmLmFwcGVuZChuZXcgcC5QYW5lUmVuZGVyZXJMaW5lKHsuLi5nLGxpbmVDb2xvcjp7dHlwZTpELkNvbG9yVHlwZS5Tb2xpZCxjb2xvcjp0aGlzLl9saW5lQ29sb3J9fSkpO2JyZWFrO2Nhc2UgTS5MaW5lU3R1ZHlQbG90U3R5bGUuQXJlYTpjYXNlIE0uTGluZVN0dWR5UGxvdFN0eWxlLkFyZWFXaXRoQnJlYWtzOmYuYXBwZW5kKG5ldyB1LlBhbmVSZW5kZXJlckFyZWEoey4uLmcsbGluZUNvbG9yOnt0eXBlOkQuQ29sb3JUeXBlLlNvbGlkLGNvbG9yOnRoaXMuX2xpbmVDb2xvcn19KSk7YnJlYWs7Y2FzZSBNLkxpbmVTdHVkeVBsb3RTdHlsZS5IaXN0b2dyYW06Zi5hcHBlbmQobmV3IFIoZykpO2JyZWFrO2Nhc2UgTS5MaW5lU3R1ZHlQbG90U3R5bGUuQ29sdW1uczpmLmFwcGVuZChuZXcgTi5QYW5lUmVuZGVyZXJDb2x1bW5zKGcpKTticmVhaztjYXNlIE0uTGluZVN0dWR5UGxvdFN0eWxlLkNyb3NzOmYuYXBwZW5kKG5ldyB3KGcpKSx2JiZmLmFwcGVuZChuZXcgcC5QYW5lUmVuZGVyZXJMaW5lKHsuLi4oMCxoLmRlZXBDb3B5KShnKSxsaW5lV2lkdGg6MSxsaW5lQ29sb3I6e3R5cGU6RC5Db2xvclR5cGUuU29saWQsY29sb3I6dGhpcy5fbGluZUNvbG9yfSxmb3JjZUxpbmVXaWR0aDohMH0pKTticmVhaztjYXNlIE0uTGluZVN0dWR5UGxvdFN0eWxlLkNpcmNsZXM6Zi5hcHBlbmQobmV3IGIoZykpLHYmJmYuYXBwZW5kKG5ldyBwLlBhbmVSZW5kZXJlckxpbmUoey4uLigwLGguZGVlcENvcHkpKGcpLGxpbmVXaWR0aDoxLGxpbmVDb2xvcjp7dHlwZTpELkNvbG9yVHlwZS5Tb2xpZCxjb2xvcjp0aGlzLl9saW5lQ29sb3J9LGlnbm9yZVBhbGV0dGVMaW5lV2lkdGg6ITB9KSk7YnJlYWs7Y2FzZSBNLkxpbmVTdHVkeVBsb3RTdHlsZS5TdGVwTGluZTpjYXNlIE0uTGluZVN0dWR5UGxvdFN0eWxlLlN0ZXBMaW5lV2l0aEJyZWFrczpjYXNlIE0uTGluZVN0dWR5UGxvdFN0eWxlLlN0ZXBMaW5lV2l0aERpYW1vbmRzOntjb25zdCBlPW5ldyBtLlBhbmVSZW5kZXJlclN0ZXBMaW5lO2Uuc2V0RGF0YSh7Li4uZyxsaW5lQ29sb3I6e3R5cGU6RC5Db2xvclR5cGUuU29saWQsY29sb3I6dGhpcy5fbGluZUNvbG9yfSxkZWNvcmF0aW9uOmkucGxvdHR5cGUudmFsdWUoKT09PU0uTGluZVN0dWR5UGxvdFN0eWxlLlN0ZXBMaW5lV2l0aERpYW1vbmRzP20uU3RlcExpbmVEZWNvcmF0aW9uLkRpYW1vbmRzOm0uU3RlcExpbmVEZWNvcmF0aW9uLk5vbmUsZXh0ZW5kVG9CYXJzRW5kaW5nczp0aGlzLl9leHRlbmRTdGVwTGluZVRvQmFyc0VuZGluZ3N9KSxmLmFwcGVuZChlKTticmVha31kZWZhdWx0OmYuYXBwZW5kKG5ldyBwLlBhbmVSZW5kZXJlckxpbmUoey4uLmcsbGluZUNvbG9yOnt0eXBlOkQuQ29sb3JUeXBlLlNvbGlkLGNvbG9yOnRoaXMuX2xpbmVDb2xvcn19KSl9dGhpcy5faXNNYXJrZXJzRW5hYmxlZCYmdGhpcy5fc2VsZWN0aW9uRGF0YSYmZi5hcHBlbmQobmV3IHkuU2VsZWN0aW9uUmVuZGVyZXIodGhpcy5fc2VsZWN0aW9uRGF0YSkpfV91cGRhdGVBZGRpdGlvbmFsUHJpY2VzKGUsdCl7Y29uc3QgaT10aGlzLl9zdHVkeS5tZXRhSW5mbygpLnN0eWxlcz8uW3RoaXMuX3Bsb3ROYW1lXTt2b2lkIDAhPT1pPy5oaXN0b2dyYW1CYXNlJiYodGhpcy5faGlzdG9ncmFtQmFzZT1lLnByaWNlVG9Db29yZGluYXRlKGkuaGlzdG9ncmFtQmFzZSx0KSl9fX0sODQwNzcxKGUsdCxpKXtpLmQodCx7U3R1ZHlGb3JjZU92ZXJsYXlQbG90VmlldzooKT0+b30pO3ZhciBzPWkoMTM4NjM4KTtjbGFzcyBue2NvbnN0cnVjdG9yKGUsdCxpKXt0aGlzLl9zZXJpZXM9ZSx0aGlzLl9tb2RlbD10LHRoaXMuX3Bsb3ROYW1lPWl9aXNQbG90SGlnaGxpZ2h0ZWQoKXtyZXR1cm4hIXRoaXMuX3N0dWR5Lmhhc0hpZ2hsaWdodGVkUGxvdHMoKSYmKDAscy5lbnN1cmVOb3ROdWxsKSh0aGlzLl9tb2RlbC5oaWdobGlnaHRlZFBsb3RJbmZvKCkpLnBsb3RJZD09PXRoaXMuX3Bsb3ROYW1lfX1jbGFzcyBvIGV4dGVuZHMgbntpc0ZvcmNlT3ZlcmxheSgpe3JldHVybiEhdGhpcy5fc3R1ZHkubWV0YUluZm8oKS5pc1Bsb3RGb3JjZU92ZXJsYXkodGhpcy5fcGxvdE5hbWUpfV9wcmljZVNjYWxlKCl7cmV0dXJuIHRoaXMuaXNGb3JjZU92ZXJsYXkoKT90aGlzLl9tb2RlbC5tYWluU2VyaWVzKCkucHJpY2VTY2FsZSgpOnRoaXMuX3N0dWR5LnByaWNlU2NhbGUoKX19fSwzMDMyNzAoZSx0LGkpe2kuZCh0LHtTdHVkeVBhbmVWaWV3SW5wbGFjZVVwZGF0YWJsZTooKT0+dX0pO3ZhciBzPWkoMTM4NjM4KSxuPWkoNzM2NTMxKSxvPWkoNjAxODQxKSxsPWkoNTIxOTgzKSxhPWkoOTM2MzI2KSxyPWkoMTk4OTAxKSxkPWkoMTQzOTMyKSxoPWkoNTQ0ODY0KSxjPWkoODQwNzcxKTtjbGFzcyB1IGV4dGVuZHMgYy5TdHVkeUZvcmNlT3ZlcmxheVBsb3RWaWV3e2NvbnN0cnVjdG9yKGUsdCxpKXtzdXBlcihlLHQsaSksCnRoaXMuX3NlbGVjdGlvbkRhdGE9bnVsbCx0aGlzLl9kYXRhSW52YWxpZGF0ZWQ9bnVsbCx0aGlzLl92aWV3cG9ydEludmFsaWRhdGVkPSExLHRoaXMuX2l0ZW1zPVtdLHRoaXMuX3NlbGVjdGlvbkluZGV4ZXI9bmV3IGQuU2VsZWN0aW9uSW5kZXhlcyh0LnRpbWVTY2FsZSgpKX11cGRhdGUoZSl7aWYoImhvdmVyLWNoYW5nZSIhPT1lLnR5cGUpe2lmKCJnbG9iYWwtY2hhbmdlIj09PWUudHlwZSlyZXR1cm4gdGhpcy5fZGF0YUludmFsaWRhdGVkPSgwLGwubWVyZ2VEYXRhSW52YWxpZGF0aW9uKSh0aGlzLl9kYXRhSW52YWxpZGF0ZWQse30pLHZvaWQodGhpcy5fdmlld3BvcnRJbnZhbGlkYXRlZD0hMCk7aWYoImRhdGEtc291cmNlLWNoYW5nZSIhPT1lLnR5cGUpdGhpcy5fdmlld3BvcnRJbnZhbGlkYXRlZD0hMDtlbHNle2lmKChlLnNvdXJjZUlkPT09dGhpcy5fc3R1ZHkuaWQoKXx8dGhpcy5fZGVwZW5kc09uU2VyaWVzRGF0YSgpJiZlLnNvdXJjZUlkPT09dGhpcy5fbW9kZWwubWFpblNlcmllcygpLmlkKCkpJiYhZS5ub25TZXJpZXNPbmx5KXtjb25zdCB0PSgwLGwubWVyZ2VEYXRhSW52YWxpZGF0aW9uKSh0aGlzLl9kYXRhSW52YWxpZGF0ZWQse2ZpcnN0SW5kZXg6ZS5maXJzdFVwZGF0ZWRUaW1lUG9pbnRJbmRleCxjbGVhckRhdGE6ZS5jbGVhckRhdGF9KTt0aGlzLl9kYXRhSW52YWxpZGF0ZWQ9dH19fX1fZGVwZW5kc09uU2VyaWVzRGF0YSgpe3JldHVybiExfV9tYWtlU3VyZVJlbmRlcmVySXNWYWxpZCgpe3RoaXMuX2RhdGFJbnZhbGlkYXRlZD90aGlzLl91cGRhdGVJbXBsRnVsbCh0aGlzLl92aWV3cG9ydEludmFsaWRhdGVkKSYmKHRoaXMuX2RhdGFJbnZhbGlkYXRlZD1udWxsKTp0aGlzLl92aWV3cG9ydEludmFsaWRhdGVkJiZ0aGlzLl91cGRhdGVJbXBsTGlnaHQoKSx0aGlzLl92aWV3cG9ydEludmFsaWRhdGVkPSExfV9wcmVhbGxvY2F0ZUl0ZW1zKGUsdCl7Y29uc3QgaT1lLnNpemUoKTtsZXQgbj10aGlzLl9kYXRhSW52YWxpZGF0ZWQ/LmZpcnN0SW5kZXg7aWYoMD09PWkpcmV0dXJuIG47Y29uc3Qgbz10aGlzLl9zdHVkeS5vZmZzZXQodGhpcy5fcGxvdE5hbWUpO2lmKGkhPT10aGlzLl9pdGVtcy5sZW5ndGgpe2NvbnN0IGk9dm9pZCAwIT09bj9uK286dm9pZCAwO2lmKHZvaWQgMD09PWl8fDA9PT10aGlzLl9pdGVtcy5sZW5ndGh8fGk8KDAscy5lbnN1cmVEZWZpbmVkKSh0aGlzLl9pdGVtc1swXS50aW1lUG9pbnRJbmRleCkpcmV0dXJuIHRoaXMuX2l0ZW1zPVtdLGUuZWFjaCgoKGUsaSk9Pntjb25zdCBzPWlbdGhpcy5fcGxvdEluZGV4KzFdO3JldHVybiB0aGlzLl9pdGVtcy5wdXNoKHQoZSxzKSksITF9KSksdGhpcy5faXRlbXMubGVuZ3RoPygwLHMuZW5zdXJlRGVmaW5lZCkodGhpcy5faXRlbXNbMF0udGltZVBvaW50SW5kZXgpLW86dm9pZCAwO3tjb25zdCBpPSgwLHMuZW5zdXJlRGVmaW5lZCkobiksbD1vPj0wPzA6byxhPW8+PTA/bzowO2xldCBkPSgwLHIubG93ZXJib3VuZCkodGhpcy5faXRlbXMsaStsLCgoZSx0KT0+ZS50aW1lUG9pbnRJbmRleDx0KSk7Y29uc3QgaD0oMCxzLmVuc3VyZU5vdE51bGwpKGUubGFzdEluZGV4KCkpLGM9ZS5yYW5nZUl0ZXJhdG9yKGktYSxoKTtmb3IoY29uc3QgZSBvZiBjKWlmKHZvaWQgMCE9PWQmJnRoaXMuX2l0ZW1zW2RdPy50aW1lUG9pbnRJbmRleD09PWUuaW5kZXgrbylkPXRoaXMuX3VwZGF0ZUl0ZW0oZSxkKTtlbHNle2NvbnN0IGk9ZS52YWx1ZVt0aGlzLl9wbG90SW5kZXgrMV07dGhpcy5faXRlbXMucHVzaCh0KGUuaW5kZXgsaSkpfX19ZWxzZSBpZihuPW4/P2UuZmlyc3RJbmRleCgpPz92b2lkIDAsdm9pZCAwIT09bil7Y29uc3QgdD1vPj0wPzA6byxpPW8+PTA/bzowO2xldCBsPSgwLHIubG93ZXJib3VuZCkodGhpcy5faXRlbXMsbit0LCgoZSx0KT0+ZS50aW1lUG9pbnRJbmRleDx0KSk7Y29uc3QgYT0oMCxzLmVuc3VyZU5vdE51bGwpKGUubGFzdEluZGV4KCkpKzEsZD1lLnJhbmdlSXRlcmF0b3Iobi1pLGEpO2Zvcihjb25zdCBlIG9mIGQpbD10aGlzLl91cGRhdGVJdGVtKGUsbCl9cmV0dXJuIG59X3VwZGF0ZUl0ZW0oZSx0KXtjb25zdCBpPXRoaXMuX2dldFZhbHVlRm9yVXBkYXRpbmcoZSk7cmV0dXJuIHRoaXMuX2l0ZW1zW3RdLnByaWNlPWk/P05hTix0KzF9X2dldFZhbHVlRm9yVXBkYXRpbmcoZSl7cmV0dXJuIGUudmFsdWVbdGhpcy5fcGxvdEluZGV4KzFdfV9jYWxjdWxhdGVTdGFydEVuZChlKXtjb25zdCB0PXRoaXMuX3N0dWR5Lm9mZnNldCh0aGlzLl9wbG90TmFtZSk7bGV0IGk9ZS5maXJzdEJhcigpLU1hdGguYWJzKHQpLTEsbj1lLmxhc3RCYXIoKStNYXRoLmFicyh0KSsxO2NvbnN0IG89dGhpcy5fc3R1ZHkuZ2V0TWluRmlyc3RCYXJJbmRleEZvclBsb3QodGhpcy5fcGxvdE5hbWUpK3Q7aWYobz5uKzEpcmV0dXJue3N0YXJ0QmFyOm51bGwsZW5kQmFyOm51bGx9O2NvbnN0IGw9dGhpcy5fc3R1ZHkucGxvdHMoKTtpZihsLmlzRW1wdHkoKSlyZXR1cm57c3RhcnRCYXI6bnVsbCxlbmRCYXI6bnVsbH07Y29uc3Qgcj1sLnJhbmdlKG8sKDAscy5lbnN1cmVOb3ROdWxsKShsLmxhc3RJbmRleCgpKSk7aT1NYXRoLm1heChpLG8pLG49TWF0aC5tYXgobixvKTtjb25zdCBkPXIuc2VhcmNoKGksYS5QbG90Um93U2VhcmNoTW9kZS5OZWFyZXN0TGVmdCx0aGlzLl9wbG90SW5kZXgrMSksaD1yLnNlYXJjaChuLGEuUGxvdFJvd1NlYXJjaE1vZGUuTmVhcmVzdFJpZ2h0LHRoaXMuX3Bsb3RJbmRleCsxKTtyZXR1cm4gbnVsbCE9PWQmJihpPWQuaW5kZXgpLG51bGwhPT1oJiYobj1oLmluZGV4KSxpPU1hdGgubWF4KG8saSkse3N0YXJ0QmFyOmksZW5kQmFyOm59fV91cGRhdGVJbXBsTGlnaHQoKXtjb25zdCBlPXRoaXMuX3N0dWR5LmZpcnN0VmFsdWUodm9pZCAwLHRoaXMuaXNGb3JjZU92ZXJsYXkoKSk7aWYobnVsbD09PWUpcmV0dXJuIHRoaXMuX3NlbGVjdGlvbkRhdGE9bnVsbCx2b2lkIHRoaXMuX3VwZGF0ZVJlbmRlcmVyKDAsLTEpO2NvbnN0IHQ9dGhpcy5fcHJpY2VTY2FsZSgpO2lmKG51bGw9PT10fHx0LmlzRW1wdHkoKSlyZXR1cm4gdGhpcy5fc2VsZWN0aW9uRGF0YT1udWxsLHZvaWQgdGhpcy5fdXBkYXRlUmVuZGVyZXIoMCwtMSkKO2NvbnN0IGk9dGhpcy5fbW9kZWwudGltZVNjYWxlKCkudmlzaWJsZUJhcnNTdHJpY3RSYW5nZSgpO2lmKG51bGw9PT1pKXJldHVybiB0aGlzLl9zZWxlY3Rpb25EYXRhPW51bGwsdm9pZCB0aGlzLl91cGRhdGVSZW5kZXJlcigwLC0xKTtjb25zdHtzdGFydEJhcjpzLGVuZEJhcjpufT10aGlzLl9jYWxjdWxhdGVTdGFydEVuZChpKTtpZihudWxsPT09c3x8bnVsbD09PW58fDA9PT10aGlzLl9pdGVtcy5sZW5ndGgpcmV0dXJuIHRoaXMuX3NlbGVjdGlvbkRhdGE9bnVsbCx2b2lkIHRoaXMuX3VwZGF0ZVJlbmRlcmVyKDAsLTEpO2NvbnN0e3N0YXJ0SXRlbUluZGV4Om8sZW5kSXRlbUluZGV4Omx9PXRoaXMuX2NvcnJlY3RWaXNpYmxlSXRlbUluZGV4ZXMoTWF0aC5tYXgoMCwoMCxyLmxvd2VyYm91bmQpKHRoaXMuX2l0ZW1zLHMsKChlLHQpPT5lLnRpbWVQb2ludEluZGV4PHQpKSksTWF0aC5taW4odGhpcy5faXRlbXMubGVuZ3RoLCgwLHIudXBwZXJib3VuZCkodGhpcy5faXRlbXMsbiwoKGUsdCk9PmU8dC50aW1lUG9pbnRJbmRleCkpKSk7aWYobz49bClyZXR1cm4gdGhpcy5fc2VsZWN0aW9uRGF0YT1udWxsLHZvaWQgdGhpcy5fdXBkYXRlUmVuZGVyZXIoMCwtMSk7dGhpcy5fY29udmVydEl0ZW1zVG9Db29yZGluYXRlcyh0LGUsbyxsKSx0aGlzLl9jcmVhdGVTZWxlY3Rpb24oZSksdGhpcy5fdXBkYXRlUmVuZGVyZXIobyxsKX1fY29ycmVjdFZpc2libGVJdGVtSW5kZXhlcyhlLHQpe3JldHVybntzdGFydEl0ZW1JbmRleDplLGVuZEl0ZW1JbmRleDp0fX1fY29udmVydEl0ZW1zVG9Db29yZGluYXRlcyhlLHQsaSxzKXt0aGlzLl9jb252ZXJ0SXRlbXNUb0Nvb3JkaW5hdGVzSW1wbChlLHQsaSxzKX1fY29udmVydEl0ZW1zVG9Db29yZGluYXRlc0ltcGwoZSx0LGkscyl7ZS5maWxsWUNvb3JkaW5hdGVzKHRoaXMuX2l0ZW1zLHQse3N0YXJ0SXRlbUluZGV4OmksZW5kSXRlbUluZGV4OnN9KSx0aGlzLl9tb2RlbC50aW1lU2NhbGUoKS5maWxsQmFyQm9yZGVycyh0aGlzLl9pdGVtcyx7c3RhcnRJdGVtSW5kZXg6aSxlbmRJdGVtSW5kZXg6c30sITApLHRoaXMuX3VwZGF0ZUFkZGl0aW9uYWxQcmljZXMoZSx0KX1fdXBkYXRlQWRkaXRpb25hbFByaWNlcyhlLHQpe31fY3JlYXRlU2VsZWN0aW9uKGUpe2NvbnN0IHQ9dGhpcy5fcHJpY2VTY2FsZSgpO2lmKG51bGw9PT10KXJldHVybjtpZih0aGlzLl9zZWxlY3Rpb25EYXRhPXtwb2ludHM6W10sYmdDb2xvcnM6W10sdmlzaWJsZTohMCxoaXR0ZXN0UmVzdWx0OmguSGl0VGFyZ2V0LlJlZ3VsYXIsYmFyU3BhY2luZzp0aGlzLl9tb2RlbC50aW1lU2NhbGUoKS5iYXJTcGFjaW5nKCl9LCF0aGlzLmlzUGxvdEhpZ2hsaWdodGVkKCkmJighdGhpcy5fbW9kZWwuc2VsZWN0aW9uKCkuaXNTZWxlY3RlZCh0aGlzLl9zdHVkeSl8fHRoaXMuX3N0dWR5Lmhhc0hpZ2hsaWdodGVkUGxvdHMoKSkpcmV0dXJuIHZvaWQgdGhpcy5fc2VsZWN0aW9uSW5kZXhlci5jbGVhcigpO2NvbnN0IGk9KDAscy5lbnN1cmVOb3ROdWxsKSh0aGlzLl9tb2RlbC5wYW5lRm9yU291cmNlKHRoaXMuX3N0dWR5KSkuaGVpZ2h0KCksbj10aGlzLl9zdHVkeS5vZmZzZXQodGhpcy5fcGxvdE5hbWUpO2Zvcihjb25zdCBzIG9mIHRoaXMuX3NlbGVjdGlvbkluZGV4ZXIuaW5kZXhlcygpKXtjb25zdCBsPXRoaXMuX3N0dWR5LnBsb3RzKCkudmFsdWVBdChzKTtpZigoMCxvLmlzQWJzZW50KShsKSljb250aW51ZTtjb25zdCBhPWxbdGhpcy5fcGxvdEluZGV4KzFdO2lmKCgwLG8uaXNBYnNlbnQpKGEpKWNvbnRpbnVlO2NvbnN0IHI9dGhpcy5fY3JlYXRlU2VsZWN0aW9uRGF0YVBvaW50KHQsTWF0aC5mbG9vcihzK24pLGEsZSk7dGhpcy5fc2VsZWN0aW9uRGF0YS5wb2ludHMucHVzaChyKSx0aGlzLl9zZWxlY3Rpb25EYXRhLmJnQ29sb3JzLnB1c2godGhpcy5fbW9kZWwuYmFja2dyb3VuZENvbG9yQXRZUGVyY2VudEZyb21Ub3Aoci5wb2ludC55L2kpKX19X2NyZWF0ZVNlbGVjdGlvbkRhdGFQb2ludChlLHQsaSxzKXtjb25zdCBvPXRoaXMuX21vZGVsLnRpbWVTY2FsZSgpLmluZGV4VG9Db29yZGluYXRlKHQpLGw9ZS5wcmljZVRvQ29vcmRpbmF0ZShpLHMpO3JldHVybntwb2ludDooMCxuLnBvaW50KShvLGwpfX19fSw2ODAxMjYoZSx0LGkpe2kuZCh0LHtTdHVkeVByaWNlQXhpc1ZpZXc6KCk9PmF9KTt2YXIgcz1pKDEzODYzOCksbj1pKDcxNjc4KSxvPWkoMTY4MjU4KSxsPWkoODczNTczKTtjbGFzcyBhIGV4dGVuZHMgbi5QcmljZUF4aXNWaWV3e2NvbnN0cnVjdG9yKGUsdCl7c3VwZXIoKSx0aGlzLl9tb2RlbD1lLm1vZGVsKCksdGhpcy5fc291cmNlPWUsdGhpcy5fZGF0YT10LHRoaXMuX2lzRm9yY2VPdmVybGF5PSEhdGhpcy5fc291cmNlLm1ldGFJbmZvKCkuaXNQbG90Rm9yY2VPdmVybGF5KHRoaXMuX2RhdGEucGxvdE5hbWUpfXVwZGF0ZShlKXsiaG92ZXItY2hhbmdlIiE9PWUudHlwZSYmc3VwZXIudXBkYXRlKGUpfWlzUGxvdEhpZ2hsaWdodGVkKCl7cmV0dXJuISF0aGlzLl9zb3VyY2UuaGFzSGlnaGxpZ2h0ZWRQbG90cygpJiYoMCxzLmVuc3VyZU5vdE51bGwpKHRoaXMuX21vZGVsLmhpZ2hsaWdodGVkUGxvdEluZm8oKSkucGxvdElkPT09dGhpcy5fZGF0YT8ucGxvdE5hbWV9X3VwZGF0ZVJlbmRlcmVyRGF0YShlLHQsaSl7ZS52aXNpYmxlPSExLHQudmlzaWJsZT0hMTtjb25zdCBuPXRoaXMuX3NvdXJjZS5tb2RlbCgpLG89dGhpcy5faXNGb3JjZU92ZXJsYXk/bi5tYWluU2VyaWVzKCkucHJpY2VTY2FsZSgpOnRoaXMuX3NvdXJjZS5wcmljZVNjYWxlKCk7aWYobnVsbD09PW8pcmV0dXJuO2lmKCFuLmlzUHJpY2VTY2FsZVZpc2libGUobykpcmV0dXJuO2NvbnN0IGE9dGhpcy5fc291cmNlLmxhc3RWYWx1ZURhdGEodGhpcy5fZGF0YS5wbG90TmFtZSwhMSk7aWYoYS5ub0RhdGEpcmV0dXJuO2NvbnN0IHI9bi50aW1lU2NhbGUoKS52aXNpYmxlQmFyc1N0cmljdFJhbmdlKCksZD1uLm1haW5TZXJpZXMoKS5iYXJzKCkubGFzdEluZGV4KCk7aWYobnVsbD09PXJ8fG51bGw9PT1kKXJldHVybjtsZXQgaDtpZihkPD1yLmxhc3RCYXIoKSl7aS5iYWNrZ3JvdW5kPSgwLGwucmVzZXRUcmFuc3BhcmVuY3kpKGEuY29sb3IpLApoPWkuYmFja2dyb3VuZDtsZXQgcz1hLmNvbG9yOyJ0cmFuc3BhcmVudCI9PT1zJiYocz10aGlzLl9tb2RlbC5wcm9wZXJ0aWVzKCkuY2hpbGRzKCkuc2NhbGVzUHJvcGVydGllcy5jaGlsZHMoKS5iYWNrZ3JvdW5kQ29sb3IudmFsdWUoKSksaS50ZXh0Q29sb3I9dGhpcy5nZW5lcmF0ZVRleHRDb2xvcihzKSxpLmJvcmRlckNvbG9yPXZvaWQgMCxlLmJvcmRlclZpc2libGU9ITEsdC5ib3JkZXJWaXNpYmxlPSExfWVsc2V7Y29uc3Qgbz1uLmJhY2tncm91bmRDb2xvckF0WVBlcmNlbnRGcm9tVG9wKGEuY29vcmRpbmF0ZS8oMCxzLmVuc3VyZU5vdE51bGwpKG4ucGFuZUZvclNvdXJjZSh0aGlzLl9zb3VyY2UpKS5oZWlnaHQoKSk7aS5iYWNrZ3JvdW5kPW8saS50ZXh0Q29sb3I9KDAsbC5yZXNldFRyYW5zcGFyZW5jeSkoYS5jb2xvciksaS5ib3JkZXJDb2xvcj0oMCxsLnJlc2V0VHJhbnNwYXJlbmN5KShpLnRleHRDb2xvciksaD1pLmJvcmRlckNvbG9yLGUuYm9yZGVyVmlzaWJsZT0hMCx0LmJvcmRlclZpc2libGU9ITB9aS5jb29yZGluYXRlPWEuY29vcmRpbmF0ZSx0aGlzLl9zaG93QXhpc0xhYmVsKCkmJihlLnRleHQ9YS50ZXh0LGUudmlzaWJsZT0hMCksZS5zZWxlY3RlZE1hcmtDb2xvcj10aGlzLl9tb2RlbC5zZWxlY3Rpb24oKS5pc1NlbGVjdGVkKHRoaXMuX3NvdXJjZSkmJiF0aGlzLl9zb3VyY2UuaGFzSGlnaGxpZ2h0ZWRQbG90cygpfHx0aGlzLmlzUGxvdEhpZ2hsaWdodGVkKCk/aDp2b2lkIDAsdGhpcy5fdXBkYXRlUGFuZVJlbmRlcmVyRGF0YSh0KX1fc2hvd1BhbmVMYWJlbCgpe2NvbnN0IGU9dGhpcy5fbW9kZWwucHJvcGVydGllcygpLmNoaWxkcygpLnNjYWxlc1Byb3BlcnRpZXMuY2hpbGRzKCk7cmV0dXJuKGUuc2hvd1N0dWR5UGxvdExhYmVscy52YWx1ZSgpfHxlLnNob3dGdW5kYW1lbnRhbE5hbWVMYWJlbC52YWx1ZSgpKSYmdGhpcy5fc291cmNlLnByb3BlcnRpZXMoKS5jaGlsZHMoKS5zaG93TGFiZWxzT25QcmljZVNjYWxlLnZhbHVlKCkmJnRoaXMuX3NvdXJjZS5pc1Bsb3RWaXNpYmxlQXQodGhpcy5fZGF0YS5wbG90TmFtZSxvLlN0dWR5UGxvdERpc3BsYXlUYXJnZXQuUHJpY2VTY2FsZSl9X3Nob3dBeGlzTGFiZWwoKXtjb25zdCBlPXRoaXMuX21vZGVsLnByb3BlcnRpZXMoKS5jaGlsZHMoKS5zY2FsZXNQcm9wZXJ0aWVzLmNoaWxkcygpO3JldHVybihlLnNob3dTdHVkeUxhc3RWYWx1ZS52YWx1ZSgpfHxlLnNob3dGdW5kYW1lbnRhbExhc3RWYWx1ZS52YWx1ZSgpKSYmdGhpcy5fc291cmNlLnByb3BlcnRpZXMoKS5jaGlsZHMoKS5zaG93TGFiZWxzT25QcmljZVNjYWxlLnZhbHVlKCkmJnRoaXMuX3NvdXJjZS5pc1Bsb3RWaXNpYmxlQXQodGhpcy5fZGF0YS5wbG90TmFtZSxvLlN0dWR5UGxvdERpc3BsYXlUYXJnZXQuUHJpY2VTY2FsZSl9X3VwZGF0ZVBhbmVSZW5kZXJlckRhdGEoZSl7ZS50ZXh0PSIiLHRoaXMuX3Nob3dQYW5lTGFiZWwoKSYmKGUudGV4dD10aGlzLl9zb3VyY2UucHJpY2VMYWJlbFRleHQodGhpcy5fZGF0YS5wbG90TmFtZSksZS52aXNpYmxlPSEwKX19fX1dKTs="}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/46907.c5af8aa7b5082b1875a5.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:13.732Z","timestamp":1785148033732,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/46907.c5af8aa7b5082b1875a5.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:13 GMT\r\ncontent-type: text/css; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a58ab11-6bc\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Thu, 16 Jul 2026 09:57:37 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/16/2026 11:03:21\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 17981960da73fc4b5a13d20038a4f5d4\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":1724,"size_decoded":1396,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with very long lines (1724), with no line terminators","md5":"8212d60d44748bb18233778e23b8f7b2","sha1":"35debdd9067ec06aa3648e5d7a9cddde39873397","sha256":"cc31664050fc2b670129f7e7d1a11bda8d20efa47a713598bbb96d4da6e297ba","sha512":"3f0235fe9fb761707020a01990077cf65fd4d774216e7d49fe218ea8e4ffa73a0d3d662536e662eb978f3d790446e7ee75ab139468bc6a0371653a48512aa994","ssdeep":"","tlshash":"d931cc75936ad2387a770b376241558a3199f64773730239e680bda881e16ba3b333c4","first_seen":"2026-07-16T11:36:17.893966Z","last_seen":"2026-07-27T13:00:41.419539Z","times_seen":1923,"resource_available":false,"data":"W2RhdGEtdGhlbWU9bGlnaHRdey0tXzAtQUVROTp2YXIoLS1jb2xvci1jb2xkLWdyYXktMTAwKX1bZGF0YS10aGVtZT1kYXJrXXstLV8wLUFFUTk6dmFyKC0tY29sb3ItY29sZC1ncmF5LTgwMCl9LndyYXBwZXItaGN0MnlKdkt7Y29sb3I6dmFyKC0tXzAtQUVROSl9LmFuaW1hdGVkLWhjdDJ5SnZLe2FuaW1hdGlvbjoxcyBlYXNlLWluLW91dCAwcyBpbmZpbml0ZSBhbHRlcm5hdGUgbm9uZSBydW5uaW5nO2FuaW1hdGlvbi1uYW1lOnB1bHNhdGlvbi1oY3QyeUp2S31Aa2V5ZnJhbWVzIHB1bHNhdGlvbi1oY3QyeUp2S3swJXtvcGFjaXR5OjF9dG97b3BhY2l0eTouNH19W2RhdGEtdGhlbWU9bGlnaHRdey0tXzAtX19ycTp2YXIoLS1jb2xvci13aGl0ZSk7LS1fMS1fX3JxOnZhcigtLWNvbG9yLWNvbGQtZ3JheS0xNTApfVtkYXRhLXRoZW1lPWRhcmtdey0tXzAtX19ycTp2YXIoLS1jb2xvci1jb2xkLWdyYXktNjAwKTstLV8xLV9fcnE6dmFyKC0tY29sb3ItY29sZC1ncmF5LTgwMCl9LmxvZ28tVkNOS3ViV3F7YWxpZ24taXRlbXM6Y2VudGVyO2JvcmRlci1yYWRpdXM6NTAlO2Rpc3BsYXk6aW5saW5lLWZsZXg7anVzdGlmeS1jb250ZW50OmNlbnRlcn0ubG9nby1WQ05LdWJXcTpub3QoaW1nKXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLV8xLV9fcnEpfS5oaWRkZW4tVkNOS3ViV3F7b3BhY2l0eTowO3Bvc2l0aW9uOmFic29sdXRlfS54eGNlcHRpb25hbGx5c21hbGxkb25vdHVzZWJydjEwMjMtVkNOS3ViV3F7Zm9udC1zaXplOjEwcHg7aGVpZ2h0OjEycHg7bGluZS1oZWlnaHQ6MTBweDttaW4td2lkdGg6MTJweDt3aWR0aDoxMnB4fS54eHhzbWFsbC1WQ05LdWJXcXtmb250LXNpemU6MTFweDtoZWlnaHQ6MThweDtsaW5lLWhlaWdodDoxNnB4O21pbi13aWR0aDoxOHB4O3dpZHRoOjE4cHh9Lnh4c21hbGwtVkNOS3ViV3F7Zm9udC1zaXplOjExcHg7aGVpZ2h0OjIwcHg7bGluZS1oZWlnaHQ6MTZweDttaW4td2lkdGg6MjBweDt3aWR0aDoyMHB4fS54c21hbGwtVkNOS3ViV3F7Zm9udC1zaXplOjExcHg7aGVpZ2h0OjI0cHg7bGluZS1oZWlnaHQ6MTZweDttaW4td2lkdGg6MjRweDt3aWR0aDoyNHB4fS5zbWFsbC1WQ05LdWJXcXtmb250LXNpemU6MTRweDtoZWlnaHQ6MjhweDtsaW5lLWhlaWdodDoxNnB4O21pbi13aWR0aDoyOHB4O3dpZHRoOjI4cHh9Lm1lZGl1bS1WQ05LdWJXcXtmb250LXNpemU6MTZweDtoZWlnaHQ6MzZweDtsaW5lLWhlaWdodDoxNnB4O21pbi13aWR0aDozNnB4O3dpZHRoOjM2cHh9LmxhcmdlLVZDTkt1Yldxe2ZvbnQtc2l6ZToyNHB4O2hlaWdodDo0OHB4O2xpbmUtaGVpZ2h0OjMycHg7bWluLXdpZHRoOjQ4cHg7d2lkdGg6NDhweH0ueGxhcmdlLVZDTkt1Yldxe2ZvbnQtc2l6ZTo0MHB4O2hlaWdodDo1NnB4O2xpbmUtaGVpZ2h0OjQwcHg7bWluLXdpZHRoOjU2cHg7d2lkdGg6NTZweH0ueHhsYXJnZS1WQ05LdWJXcXtmb250LXNpemU6ODBweDtoZWlnaHQ6MTEycHg7bGluZS1oZWlnaHQ6ODBweDttaW4td2lkdGg6MTEycHg7d2lkdGg6MTEycHh9Lnh4eGxhcmdlLVZDTkt1Yldxe2ZvbnQtc2l6ZToxNjBweDtoZWlnaHQ6MTY4cHg7bGluZS1oZWlnaHQ6MTYwcHg7bWluLXdpZHRoOjE2OHB4O3dpZHRoOjE2OHB4fS5za2VsZXRvbi1WQ05LdWJXcXtiYWNrZ3JvdW5kLWNvbG9yOmN1cnJlbnRDb2xvcn0ubGV0dGVyLVZDTkt1Yldxe2NvbG9yOnZhcigtLV8wLV9fcnEpO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtd2VpZ2h0OjcwMH0="}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/202.072e990c76641068d8e3.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:13.781Z","timestamp":1785148033781,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/202.072e990c76641068d8e3.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:13 GMT\r\ncontent-type: text/css; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a58ab11-132\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Thu, 16 Jul 2026 09:57:37 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/16/2026 11:03:21\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 534b9fb7c3f4f5344888dc40faaeff57\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":306,"size_decoded":944,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with very long lines (306), with no line terminators","md5":"cb8fa6b3f87a2345533ef73d9ce94efb","sha1":"534e37132178ef4786a8b4671717bfd4ef5867cd","sha256":"33b229a3fbec03996ba88aa195ef07f83ff055cbdd2c760874be142bc7eabdaa","sha512":"65cdae9e4fe341fde4951075dcf1c7ff79f7904b1b0f1aba42cfc73327300fb696a189161e0fd149becaf22695a1d1e435c6e7b2cb662b2691265f303073bb95","ssdeep":"","tlshash":"58e0c21532d4253ad20f223a83f5c8fcf002dd13cc8ce6736c29d692d004fd62381928","first_seen":"2026-07-17T03:30:51.171265Z","last_seen":"2026-07-27T12:48:39.69063Z","times_seen":130,"resource_available":false,"data":"LnNlcGFyYXRvci13c055UDllMntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXR2LWNvbG9yLXBvcHVwLWVsZW1lbnQtZGl2aWRlci1iYWNrZ3JvdW5kLHZhcigtLWNvbG9yLXBvcHVwLW1lbnUtc2VwYXJhdG9yKSk7ZmxleC1zaHJpbms6MDtoZWlnaHQ6MXB4O21hcmdpbjo2cHggMH0uc21hbGwtd3NOeVA5ZTJ7bWFyZ2luLWJvdHRvbTo0cHg7bWFyZ2luLXRvcDo0cHh9Lm5vcm1hbC13c055UDllMnttYXJnaW4tYm90dG9tOjZweDttYXJnaW4tdG9wOjZweH0ubGFyZ2Utd3NOeVA5ZTJ7bWFyZ2luLWJvdHRvbTo4cHg7bWFyZ2luLXRvcDo4cHh9"}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/en.54852.7728cde9c01225945d10.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:13.946Z","timestamp":1785148033946,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/en.54852.7728cde9c01225945d10.js HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:13 GMT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a608291-1990\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Wed, 22 Jul 2026 08:42:57 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/22/2026 11:01:40\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 07529195500e074b8782464347957809\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":6544,"size_decoded":3147,"mime_type":"application/javascript; charset=utf-8","magic":"Unicode text, UTF-8 text, with very long lines (3071)","md5":"d81ff48f4fa8644025b1feee1ad169a8","sha1":"1694534c49abdcfb227e7ed96e939f620c16c3f3","sha256":"1f466c21d9b96a33877d9f52b95c41e238c9bce171330d53659bd6765e6e672b","sha512":"f213fb05c500cda8c326959061edf851e1c38d2b16b0bd06f19afad19050e6af59c78ae99306f0f7e85587920480b4587f85f861b4d14682d5c1f90a42be7546","ssdeep":"96:jDvuCulnHPdmbfGW4aU7mJTKtgeT+trVI/3FGPXn+tFiVWt8:jilnvMfGmU7mJXo+1VVPX+tMWq","tlshash":"24d1fc27c010c5e29f3aea2abb99edc0b8f4b09146f4e1c97359df68c117c2585387b8","first_seen":"2026-07-25T03:24:57.382724Z","last_seen":"2026-07-27T12:07:26.45647Z","times_seen":19,"resource_available":true,"data":"KHNlbGYud2VicGFja0NodW5rdHJhZGluZ3ZpZXc9c2VsZi53ZWJwYWNrQ2h1bmt0cmFkaW5ndmlld3x8W10pLnB1c2goW1s0OTM5NCw0OTUwMSw1NDg1Miw4NjgwOCw5NDk0N10sezgwMzQ3OChlKXtlLmV4cG9ydHM9WyJBZGQiXX0sMjA2MTE0KGUpe2UuZXhwb3J0cz1bIkFkZCBjdXN0b20gY29sb3IiXX0sNzczMDkoZSl7ZS5leHBvcnRzPVsiT3BhY2l0eSJdfSw3ODkzODIoZSl7ZS5leHBvcnRzPVsiRGVsZXRlIHRoaXMgdGVtcGxhdGU/Il19LDE3MzY3OShlKXtlLmV4cG9ydHM9WyJDb250ZW50Il19LDY3MzczMyhlKXtlLmV4cG9ydHM9WyJDaGFubmVscyJdfSw1Mjk2MzcoZSl7ZS5leHBvcnRzPVsiQ2hhcnQgcGF0dGVybnMiXX0sNTkwNTYoZSl7ZS5leHBvcnRzPVsiQ3JlYXRlIGxpbWl0IG9yZGVyIl19LDE1MjAwOChlKXtlLmV4cG9ydHM9WyJDdXJzb3JzIl19LDEwNDQwOChlKXtlLmV4cG9ydHM9WyJDeWNsZXMiXX0sNTM1NTc3KGUpe2UuZXhwb3J0cz1bIkFubm90YXRpb24gdG9vbHMiXX0sOTQ4MzQ0KGUpe2UuZXhwb3J0cz1bIkFycm93cyJdfSw4NTM3ODMoZSl7ZS5leHBvcnRzPVsiQnJ1c2hlcyJdfSw1Nzc5MjkoZSl7ZS5leHBvcnRzPVsiRGVsZXRlIl19LDE3NjQ5OShlKXtlLmV4cG9ydHM9WyJHYW5uIl19LDk3MDYyOShlKXtlLmV4cG9ydHM9WyJHYW5uIGFuZCBGaWJvbmFjY2kgdG9vbHMiXX0sMjQ2MDQ3KGUpe2UuZXhwb3J0cz1bIkdlb21ldHJpYyBzaGFwZXMiXX0sOTc5MDI0KGUpe2UuZXhwb3J0cz1bIlNob3cgaGlkZGVuIHRvb2xzIl19LDcxNzc1OChlKXtlLmV4cG9ydHM9WyJTaG93IG9iamVjdCB0cmVlIl19LDQ4MTkzMyhlKXtlLmV4cG9ydHM9WyJSZW1vdmUgZHJhd2luZ3MiXX0sMjYyNTQwKGUpe2UuZXhwb3J0cz1bIlpvb20gaW4iXX0sMjQ1MzUyKGUpe2UuZXhwb3J0cz1bIlpvb20gb3V0Il19LDk3MTMxOShlKXtlLmV4cG9ydHM9WyJFbGxpb3R0IHdhdmVzIl19LDg4MTQxMShlKXtlLmV4cG9ydHM9WyJGb3JlY2FzdGluZyBhbmQgbWVhc3VyZW1lbnQgdG9vbHMiXX0sMTUwNjUzKGUpe2UuZXhwb3J0cz1bIkZvcmVjYXN0aW5nIl19LDIzOTE0NihlKXtlLmV4cG9ydHM9WyJGaWJvbmFjY2kiXX0sMTY0MjkoZSl7ZS5leHBvcnRzPVsiTGluZXMiXX0sOTE5ODU1KGUpe2UuZXhwb3J0cz1bIlN0cm9uZyBtYWduZXQiXX0sMjkxNjk0KGUpe2UuZXhwb3J0cz1bIldlYWsgbWFnbmV0Il19LDE3NDYyMihlKXtlLmV4cG9ydHM9WyJNZWFzdXJlcnMiXX0sNzc4MzcyKGUpe2UuZXhwb3J0cz1bIlNoYXBlcyJdfSw1NDc5MjUoZSl7ZS5leHBvcnRzPVsiUGF0dGVybnMiXX0sNTAyMTgzKGUpe2UuZXhwb3J0cz1bIlBpdGNoZm9ya3MiXX0sNjk1OTQ5KGUpe2UuZXhwb3J0cz1bIlRleHQgYW5kIG5vdGVzIl19LDE2OTQyOShlKXtlLmV4cG9ydHM9WyJUcmVuZCB0b29scyJdfSwyODE1NTgoZSl7ZS5leHBvcnRzPVsiVm9sdW1lLWJhc2VkIl19LDMzODk2NihlKXtlLmV4cG9ydHM9WyJTYXZlIGRyYXdpbmcgdGVtcGxhdGUiXX0sNTY5MDQyKGUpe2UuZXhwb3J0cz1bImN1cnJlbmN5Il19LDY2ODQ0OShlKXtlLmV4cG9ydHM9WyJhbmltYWxzICYgbmF0dXJlIl19LDU3NDcxNShlKXtlLmV4cG9ydHM9WyJhY3Rpdml0eSJdfSwzOTkxMDgoZSl7ZS5leHBvcnRzPVsiYXJyb3dzIl19LDIwNjQ0MyhlKXtlLmV4cG9ydHM9WyJnZXN0dXJlcyAmIHNtaWxleXMiXX0sMTQ3NTAwKGUpe2UuZXhwb3J0cz1bImZvb2QgJiBkcmluayJdfSwxNzQxNzgoZSl7ZS5leHBvcnRzPVsiZmxhZ3MiXX0sOTQzMzkzKGUpe2UuZXhwb3J0cz1bIm9iamVjdHMiXX0sODg0NjAoZSl7ZS5leHBvcnRzPVsibmF0dXJlIl19LDMwNjA3MChlKXtlLmV4cG9ydHM9WyJzbWlsZXMgJiBwZW9wbGUiXX0sMjc2NjA5KGUpe2UuZXhwb3J0cz1bInN5bWJvbHMiXX0sNTE3NTQ2KGUpe2UuZXhwb3J0cz1bInN5bWJvbHMgJiBmbGFncyJdfSw0NjU0NTYoZSl7ZS5leHBvcnRzPVsicmVjZW50bHkgdXNlZCJdfSwxMjMxMzgoZSl7ZS5leHBvcnRzPVsidHJhdmVsICYgcGxhY2VzIl19LDE3MTg5OShlKXtlLmV4cG9ydHM9WyJOZXcgdGVtcGxhdGUgbmFtZSJdfSwzNzIxMjUoZSl7ZS5leHBvcnRzPVsibGluZSB0b29sKHMpIGxpbmUgc3R5bGUiXX0sMTI0NzY2KGUpe2UuZXhwb3J0cz1bIkNvcHkgaW1hZ2UiXX0sNDIyODcwKGUpe2UuZXhwb3J0cz1bIkNvcHkgbGluayJdfSw2Njc5ODEoZSl7ZS5leHBvcnRzPVsiQ2hhcnQgc25hcHNob3QiXX0sMzM2OTkzKGUpe2UuZXhwb3J0cz1bIkRvd25sb2FkIGltYWdlIl19LDU4NTEyOChlKXtlLmV4cG9ydHM9WyJTaGFyZSB2aWEgU3ltcGhvbnkiXX0sNTgxODUzKGUpe2UuZXhwb3J0cz1bIlR3ZWV0IGltYWdlIl19LDkyMTY2NihlKXtlLmV4cG9ydHM9WyJDb2xvciJdfSwxMjkyMTQoZSl7ZS5leHBvcnRzPVsiQ29weSJdfSwzNDk1MDEoZSl7ZS5leHBvcnRzPVsiQ2xpY2sgaGVyZSB0byBsZWFybiBtb3JlIl19LDIwNTgyKGUpe2UuZXhwb3J0cz1bIkNsb25lIl19LDQ4ODE4MChlKXtlLmV4cG9ydHM9WyJDcm9zcyJdfSw2MjA1MzQoZSl7ZS5leHBvcnRzPVsiQW5jaG9yIl19LDEwNDA1NihlKXtlLmV4cG9ydHM9WyJBbmNob3IgZHJhd2luZyJdfSw2Mjg5MTkoZSl7ZS5leHBvcnRzPVsiQWRkIEFsZXJ0Il19LDk5NTI5KGUpe2UuZXhwb3J0cz1bIkFkZCB0byBmYXZvcml0ZXMiXX0sODE0NjYoZSl7ZS5leHBvcnRzPVsiQWx3YXlzIHJlbW92ZSBsb2NrZWQgZHJhd2luZ3MiXX0sMTYxNzM1KGUpe2UuZXhwb3J0cz1bIkFsZXJ0Il19LDUzODMxKGUpe2UuZXhwb3J0cz1bIkFsaWduIHRvIDQ1IGRlZ3JlZSJdfSw1MzkxOChlKXtlLmV4cG9ydHM9WyJBcHBseSBEZWZhdWx0IERyYXdpbmcgVGVtcGxhdGUiXX0sMzUxOTc5KGUpe2UuZXhwb3J0cz1bIkFycm93Il19LDE4MDIxNihlKXtlLmV4cG9ydHM9WyJCYWNrZ3JvdW5kIGNvbG9yIl19LDU0ODM5MyhlKXtlLmV4cG9ydHM9WyJCYWNrZ3JvdW5kIGNvbG9yIDEiXX0sNzM1NTg0KGUpe2UuZXhwb3J0cz1bIkJhY2tncm91bmQgY29sb3IgMiJdfSw0MzgxMihlKXtlLmV4cG9ydHM9WyJHb3QgaXQhIl19LDU2MTkxKGUpe2UuZXhwb3J0cz1bIkRvdCJdfSw1MzM5ODcoZSl7CmUuZXhwb3J0cz1bIkRvdHRlZCBsaW5lIl19LDg1MDI4NihlKXtlLmV4cG9ydHM9WydEb2luZyB0aGlzIHdpbGwgcGVybWFuZW50bHkgZGVsZXRlIHlvdXIgIntuYW1lfSIgZHJhd2luZyB0ZW1wbGF0ZS4nXX0sODk4ODQ3KGUpe2UuZXhwb3J0cz1bIkRhc2hlZCBsaW5lIl19LDI1MjEoZSl7ZS5leHBvcnRzPVsiRGVtb25zdHJhdGlvbiJdfSw5NTQyMDgoZSl7ZS5leHBvcnRzPVsiRGlzYWJsZSBhbGlnbiB0byA0NSBkZWdyZWVzIG1vZGUiXX0sNzMyMjk5KGUpe2UuZXhwb3J0cz1bJ0RyYXdpbmcgdGVtcGxhdGUgIntuYW1lfSIgYWxyZWFkeSBleGlzdHMuIERvIHlvdSByZWFsbHkgd2FudCB0byByZXBsYWNlIGl0PyddfSw5MDg4NjEoZSl7ZS5leHBvcnRzPVsiRW1vamlzIl19LDMzNjEzOChlKXtlLmV4cG9ydHM9WyJFbmFibGUgYWxpZ24gdG8gNDUgZGVncmVlcyBtb2RlIl19LDkwODAzMChlKXtlLmV4cG9ydHM9WyJFZGl0IEFsZXJ0Il19LDQ3MTY5NyhlKXtlLmV4cG9ydHM9WyJFcmFzZXIiXX0sMTk1NDg0KGUpe2UuZXhwb3J0cz1bIkZvbnQgc2l6ZSJdfSwyNjMzNjYoZSl7ZS5leHBvcnRzPVsiSG9sZCB7aG90S2V5XzB9IGZvciB0ZW1wb3JhcnkgZHJhd2luZyJdfSwxODYwOTkoZSl7ZS5leHBvcnRzPVsiSGlkZSBvcHRpb25zIl19LDgwMzA2NihlKXtlLmV4cG9ydHM9WyJJY29uIl19LDkxMTQ0NChlKXtlLmV4cG9ydHM9WyJJY29ucyJdfSw0MDIzMjQoZSl7ZS5leHBvcnRzPVsiT0siXX0sMTQ4ODg5KGUpe2UuZXhwb3J0cz1bIk9wZW4gaW4gbmV3IHRhYiJdfSw0MzY1MDQoZSl7ZS5leHBvcnRzPVsiTG9hZGluZy4uLiJdfSw4MjkzMDcoZSl7ZS5leHBvcnRzPVsiTG9jayJdfSwzOTUzODcoZSl7ZS5leHBvcnRzPVsiTG9jayBhbGwgZHJhd2luZ3MiXX0sMTMwNTQ4KGUpe2UuZXhwb3J0cz1bIkxpbmUgdG9vbCBiYWNrZ3JvdW5kcyJdfSwyNTk4NzcoZSl7ZS5leHBvcnRzPVsiTGluZSB0b29sIGNvbG9ycyJdfSwxMDAzMTgoZSl7ZS5leHBvcnRzPVsiTGluZSB0b29sIHRleHQgY29sb3JzIl19LDU5OTM4NChlKXtlLmV4cG9ydHM9WyJMaW5lIHRvb2wgd2lkdGgiXX0sMjQ4MzEwKGUpe2UuZXhwb3J0cz1bIkxpbmUgdG9vbCB3aWR0aHMiXX0sMzk0OTQ3KGUpe2UuZXhwb3J0cz1bIk1vcmUiXX0sODgxMTgzKGUpe2UuZXhwb3J0cz1bIk1hZ2ljIl19LDIyOTA0NShlKXtlLmV4cG9ydHM9WyJNYWduZXQgbW9kZSBpcyBPbi4gRHJhd2luZyBhbmNob3JzIHdpbGwgYmUgc25hcHBlZCB0byB0aGUgY2xvc2VzdCBPSExDIG9yIGluZGljYXRvcnMgdmFsdWVzIG9mIG5lYXJieSBiYXJzIG9yIHBsb3RzLiJdfSwxNjg4MDIoZSl7ZS5leHBvcnRzPVsiTWFnbmV0IG1vZGUgc25hcHMgZHJhd2luZ3MgcGxhY2VkIG5lYXIgcHJpY2UgYmFycyB0byB0aGUgY2xvc2VzdCBPSExDIHZhbHVlIl19LDU1MTkzNyhlKXtlLmV4cG9ydHM9WyJNYWduZXRzIl19LDUzMDAwOChlKXtlLmV4cG9ydHM9WyJNYXJrZXIgY29sb3IiXX0sNzY5MDM0KGUpe2UuZXhwb3J0cz1bIk1lYXN1cmUiXX0sNzM0NDcyKGUpe2UuZXhwb3J0cz1bIk5ldyBkcmF3aW5ncyBhcmUgcmVwbGljYXRlZCB0byBhbGwgY2hhcnRzIGluIGFsbCBsYXlvdXRzIGFuZCBzaG93biB3aGVuIHRoZSBzYW1lIHRpY2tlciBpcyBzZWxlY3RlZCJdfSwzNTU1MTkoZSl7ZS5leHBvcnRzPVsiTmV3IGRyYXdpbmdzIGFyZSByZXBsaWNhdGVkIHRvIGFsbCBjaGFydHMgaW4gdGhlIGxheW91dCBhbmQgc2hvd24gd2hlbiB0aGUgc2FtZSB0aWNrZXIgaXMgc2VsZWN0ZWQiXX0sOTA2ODcxKGUpe2UuZXhwb3J0cz1bIk5ldyBkcmF3aW5ncyBzeW5jIGdsb2JhbGx5Il19LDU2NjgyOShlKXtlLmV4cG9ydHM9WyJOZXcgZHJhd2luZ3Mgc3luYyBpbiBsYXlvdXQiXX0sMTczMTA4KGUpe2UuZXhwb3J0cz1bIk5ldyBkcmF3aW5ncyB3aWxsIG5vdCBiZSBzeW5jZWQiXX0sOTA1NzkzKGUpe2UuZXhwb3J0cz1bIlNuYXAgdG8gaW5kaWNhdG9ycyJdfSwzOTE5MzcoZSl7ZS5leHBvcnRzPVsiU2F2ZSBEcmF3aW5nIFRlbXBsYXRlIEFzIl19LDE4NjEzMihlKXtlLmV4cG9ydHM9WyJTaG93IEZhdm9yaXRlIERyYXdpbmcgVG9vbHMgVG9vbGJhciJdfSw5MjMxMTgoZSl7ZS5leHBvcnRzPVsiU3RpY2tlcnMiXX0sNTkzNjY5KGUpe2UuZXhwb3J0cz1bIlN0b3AgYmFja2dyb3VuZCBjb2xvciJdfSw0MzIyODUoZSl7ZS5leHBvcnRzPVsiU3luYyBkcmF3aW5ncyBvcHRpb25zIl19LDYyNjU5NChlKXtlLmV4cG9ydHM9WyJQcm9maXQgYmFja2dyb3VuZCBjb2xvciJdfSw2MzY1MDQoZSl7ZS5leHBvcnRzPVsiUmVtb3ZlIG9iamVjdHMiXX0sMjc5NDAoZSl7ZS5leHBvcnRzPVsiUmVtb3ZlIG9wdGlvbnMiXX0sODIxNTMoZSl7ZS5leHBvcnRzPVsiUmVtb3ZlIGNvbG9yIl19LDQyMjQxNShlKXtlLmV4cG9ydHM9WyJSZW1vdmUgZHJhd2luZ3MiXX0sMTgxOTQ0KGUpe2UuZXhwb3J0cz1bIlJlbW92ZSBkcmF3aW5ncyBhbmQgaW5kaWNhdG9ycyJdfSw2OTQyMDkoZSl7ZS5leHBvcnRzPVsiUmVtb3ZlIGZyb20gZmF2b3JpdGVzIl19LDI5MDQ1KGUpe2UuZXhwb3J0cz1bIlJlbW92ZSBpbmRpY2F0b3JzIl19LDc1NDM4MihlKXtlLmV4cG9ydHM9WyJSZW1vdmUgc2VsZWN0ZWQgZW1vamkiXX0sMjA3MzcxKGUpe2UuZXhwb3J0cz1bIlRha2UgYSBzbmFwc2hvdCJdfSw1Nzc3MTcoZSl7ZS5leHBvcnRzPVsiVGV4dCBjb2xvciJdfSw5NDA1MzEoZSl7ZS5leHBvcnRzPVsiVGVtcGxhdGVzIl19LDE4NjEyNShlKXtlLmV4cG9ydHM9WyJUaGUgTW90bGV5IEZvb2wgY29kZSJdfSw5NzExNjAoZSl7ZS5leHBvcnRzPVsiVW5sb2NrIl19LDU1MjA4MChlKXtlLmV4cG9ydHM9WyJWYWx1ZXMgdG9vbHRpcCBvbiBsb25nIHByZXNzIl19LDkyMjQwMChlKXtlLmV4cG9ydHM9WyJjaGFuZ2UgbGluZSB0b29sKHMpIHRleHQgY29sb3IiXX0sMzQyMTQ5KGUpe2UuZXhwb3J0cz1bImNoYW5nZSBsaW5lIHRvb2wocykgYmFja2dyb3VuZCBjb2xvciJdfSw0NDAzODMoZSl7ZS5leHBvcnRzPVsiY2hhbmdlIGxpbmUgdG9vbChzKSBjb2xvciJdfSw2Njk0NDkoZSl7ZS5leHBvcnRzPVsiY2hhbmdlIGxpbmUgdG9vbChzKSBmb250IHNpemUiXX0sCjY2ODYwOChlKXtlLmV4cG9ydHM9WyJjaGFuZ2UgbGluZSB0b29sKHMpIGxpbmUgc3R5bGUiXX0sNjEzNDUzKGUpe2UuZXhwb3J0cz1bImNoYW5nZSBsaW5lIHRvb2wocykgbGluZSB3aWR0aCJdfSw0Mzk1NyhlKXtlLmV4cG9ydHM9WyJ7aG90S2V5XzB9ICsgQ2xpY2sgb24gdGhlIGNoYXJ0Il19LDc4ODM0MyhlKXtlLmV4cG9ydHM9WyJ7aG90S2V5XzB9IOKAlCBjaXJjbGUiXX0sNjEyMjU2KGUpe2UuZXhwb3J0cz1bIntob3RLZXlfMH0g4oCUIGRyYXdpbmcgYSBzdHJhaWdodCBsaW5lIGF0IGFuZ2xlcyBvZiA0NSJdfSw2MzU4NzUoZSl7ZS5leHBvcnRzPVsie2hvdEtleV8wfSDigJQgZml4ZWQgaW5jcmVtZW50cyJdfSw5MzY5NTQoZSl7ZS5leHBvcnRzPVsie2hvdEtleV8wfSDigJQgc3F1YXJlIl19fV0pOw=="}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/35342.7d61a7ec764ba6b2c6bd.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:13.991Z","timestamp":1785148033991,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/35342.7d61a7ec764ba6b2c6bd.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:13 GMT\r\ncontent-type: text/css; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a58ab11-327\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Thu, 16 Jul 2026 09:57:37 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/16/2026 11:03:21\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 604aa6a534c40283bb6416f5e69556a9\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":807,"size_decoded":1107,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with very long lines (807), with no line terminators","md5":"50d3abce4215ba71259575a94352a7c1","sha1":"f6730a01f60611b0d6d8b26b0771318b8ba5e72d","sha256":"8645bbc80c253b897320c57fa607b4f6898034ea24adf1e1ef5f754c8b1255a2","sha512":"cf887dea6f55668c33daa46b54a9fe526a84dee52138a92728920e878e21d5bc8b516e76ce087a8a0580365ea43b8dba7239895e6136f44d43645ef76695bdba","ssdeep":"","tlshash":"ae0155c4a5887e3bac6233f8f61291131754dd19fdda2e427a66e08e80a62e2407a930","first_seen":"2026-07-17T14:15:58.314201Z","last_seen":"2026-07-27T12:48:39.74733Z","times_seen":117,"resource_available":false,"data":"LmZhdm9yaXRlc0ljb25CdXR0b25Ub2dnbGVkLVlGWFZKTkVRLnByaW1hcnktWUZYVkpORVEsLmZhdm9yaXRlc0ljb25CdXR0b25Ub2dnbGVkLVlGWFZKTkVRLnNlY29uZGFyeS1ZRlhWSk5FUSwuZmF2b3JpdGVzSWNvbkJ1dHRvblRvZ2dsZWQtWUZYVkpORVEudGVydGlhcnktWUZYVkpORVF7LS11aS1saWItaWNvbkJ1dHRvbi1pY29uLWNvbG9yLWRlZmF1bHQ6dmFyKC0tY29sb3ItY29udGFpbmVyLWZpbGwtcHJpbWFyeS1uZXV0cmFsLWV4dHJhLWJvbGQpOy0tdWktbGliLWljb25CdXR0b24taWNvbi1jb2xvci1ob3Zlcjp2YXIoLS1jb2xvci1jb250YWluZXItZmlsbC1wcmltYXJ5LW5ldXRyYWwtZXh0cmEtYm9sZCl9LmFjdGlvbi15bUZ1OVFFRHthbGlnbi1pdGVtczpjZW50ZXI7ZGlzcGxheTpmbGV4O3Bvc2l0aW9uOnJlbGF0aXZlfS5zaG93T25Ib3Zlci15bUZ1OVFFRHstLW1lbnUtaXRlbS1pcy1ob3ZlcmVkLW9yLWZvY3VzZWQ6bWluKDEsdmFyKC0tdWktbGliLXByaXZhdGUtbGlzdEl0ZW0taXMtaG92ZXJlZCwwKSArIHZhcigtLXVpLWxpYi1wcml2YXRlLWxpc3RJdGVtLWlzLWZvY3VzZWQtdmlzaWJsZSwwKSl9QG1lZGlhIG5vdCAoYW55LXBvaW50ZXI6Y29hcnNlKXsuc2hvd09uSG92ZXIteW1GdTlRRUR7b3BhY2l0eTptaW4oMSx2YXIoLS1tZW51LWl0ZW0taXMtaG92ZXJlZC1vci1mb2N1c2VkLDApICsgdmFyKC0tbWVudS1pdGVtLWFjdGlvbi1mb3JjZVZpc2libGUsMCkpfX0uc2hvd09uSG92ZXIteW1GdTlRRUQ6aGFzKDpmb2N1cy12aXNpYmxlKXstLW1lbnUtaXRlbS1hY3Rpb24tZm9yY2VWaXNpYmxlOjF9"}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/26118.3f4b0e5de045d6bd8295.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.034Z","timestamp":1785148034034,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/26118.3f4b0e5de045d6bd8295.js HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a61b1a8-f26e\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Thu, 23 Jul 2026 06:16:08 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/23/2026 10:17:28\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 591c7b1061e36f89330c83dcfc5db6e9\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":62062,"size_decoded":23231,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, Unicode text, UTF-8 text, with very long lines (7991)","md5":"1df37fb14b509991868640e93d196bed","sha1":"5f505db48850be97fd31188d307c0ca784a40dfa","sha256":"ed0d9ccffe67dd588b5c48ee432f2e2dd44b6cf6cfad2f9758b8301cd0d8520f","sha512":"912b321be9c0a010a1c7329216e9ab2c519ffc0ab565211c1eff82d6a9ad052dd9a608f210d4946ef10e20a2d65e45692b0f2ca44bdb5810354db30cd40ef97d","ssdeep":"768:iDUhaWDzyJMn6lh1lMAf0BokL0ZBWTvf4bAGUvS2w+Ntd87EKEV3GmXEKptPPFb4:iUnZVrXEKtql5suJ+m3SJaIKoCVmG","tlshash":"d1533b907354a29f53d3e1adc63d8496771a60b7b80f4a70b4eacee8116b47ff913908","first_seen":"2026-07-23T14:00:31.462637Z","last_seen":"2026-07-27T12:48:39.742998Z","times_seen":102,"resource_available":true,"data":"KHNlbGYud2VicGFja0NodW5rdHJhZGluZ3ZpZXc9c2VsZi53ZWJwYWNrQ2h1bmt0cmFkaW5ndmlld3x8W10pLnB1c2goW1syNjExOF0sezk2OTYzMShlKXtlLmV4cG9ydHM9e2Zhdm9yaXRlOiJmYXZvcml0ZS1Rd0tXU1VtYSIsaG92ZXJlZDoiaG92ZXJlZC1Rd0tXU1VtYSIsZGlzYWJsZWQ6ImRpc2FibGVkLVF3S1dTVW1hIixmb2N1c2VkOiJmb2N1c2VkLVF3S1dTVW1hIixhY3RpdmU6ImFjdGl2ZS1Rd0tXU1VtYSIsY2hlY2tlZDoiY2hlY2tlZC1Rd0tXU1VtYSJ9fSw5MjQ1MDcoZSl7ZS5leHBvcnRzPXsidGFibGV0LW5vcm1hbC1icmVha3BvaW50IjoiKG1heC13aWR0aDogNzY4cHgpIiwic21hbGwtaGVpZ2h0LWJyZWFrcG9pbnQiOiIobWF4LWhlaWdodDogMzYwcHgpIiwidGFibGV0LXNtYWxsLWJyZWFrcG9pbnQiOiIobWF4LXdpZHRoOiA0NDBweCkifX0sMzU0ODEyKGUpe2UuZXhwb3J0cz17aXRlbToiaXRlbS1mU2FUX0RFTSIsbGFiZWw6ImxhYmVsLWZTYVRfREVNIixsYWJlbFJvdzoibGFiZWxSb3ctZlNhVF9ERU0iLHRvb2xib3g6InRvb2xib3gtZlNhVF9ERU0ifX0sNzQwOTQzKGUpe2UuZXhwb3J0cz17YnV0dG9uOiJidXR0b24tV01wS0tVQ3EiLGhvdmVyZWQ6ImhvdmVyZWQtV01wS0tVQ3EiLGRpc2FibGVkOiJkaXNhYmxlZC1XTXBLS1VDcSIsZm9jdXNlZDoiZm9jdXNlZC1XTXBLS1VDcSIsYWN0aXZlOiJhY3RpdmUtV01wS0tVQ3EiLGhpZGRlbjoiaGlkZGVuLVdNcEtLVUNxIn19LDEzMzY1NihlKXtlLmV4cG9ydHM9e2Zhdm9yaXRlc0ljb25CdXR0b25Ub2dnbGVkOiJmYXZvcml0ZXNJY29uQnV0dG9uVG9nZ2xlZC1ZRlhWSk5FUSIscHJpbWFyeToicHJpbWFyeS1ZRlhWSk5FUSIsc2Vjb25kYXJ5OiJzZWNvbmRhcnktWUZYVkpORVEiLHRlcnRpYXJ5OiJ0ZXJ0aWFyeS1ZRlhWSk5FUSJ9fSw5OTM5OTUoZSl7ZS5leHBvcnRzPXtpY29uQnV0dG9uOiJpY29uQnV0dG9uLUhERFVZT0JJIixzcXVhcmU6InNxdWFyZS1IRERVWU9CSSIscm91bmQ6InJvdW5kLUhERFVZT0JJIixwcmltYXJ5OiJwcmltYXJ5LUhERFVZT0JJIixpY29uOiJpY29uLUhERFVZT0JJIixzZWNvbmRhcnk6InNlY29uZGFyeS1IRERVWU9CSSIsdGVydGlhcnk6InRlcnRpYXJ5LUhERFVZT0JJIiwicHJpbWFyeS1zcGVjaWFsIjoicHJpbWFyeS1zcGVjaWFsLUhERFVZT0JJIn19LDE0NTk4NShlKXtlLmV4cG9ydHM9e2Jsb2NrSWNvbjoiYmxvY2tJY29uLWd2T1FWaVY3In19LDk5NDI4KGUpe2UuZXhwb3J0cz17ZGl2aWRlcjoiZGl2aWRlci1aZF90cXVjRCIsbGluZToibGluZS1aZF90cXVjRCJ9fSw2MjU3MDkoZSl7ZS5leHBvcnRzPXtzbWFsbDoic21hbGwtdFdESUNUYXkiLG1lZGl1bToibWVkaXVtLXRXRElDVGF5IixsYXJnZToibGFyZ2UtdFdESUNUYXkiLHN3aXRjaFZpZXc6InN3aXRjaFZpZXctdFdESUNUYXkiLGNoZWNrZWQ6ImNoZWNrZWQtdFdESUNUYXkiLGRpc2FibGVkOiJkaXNhYmxlZC10V0RJQ1RheSIsdHJhY2s6InRyYWNrLXRXRElDVGF5Iix0aHVtYjoidGh1bWItdFdESUNUYXkifX0sNjg3NTQ3KGUpe2UuZXhwb3J0cz17c3dpdGNoZXI6InN3aXRjaGVyLWwzRHRLTHNMIixpbnB1dDoiaW5wdXQtbDNEdEtMc0wiLHRodW1iV3JhcHBlcjoidGh1bWJXcmFwcGVyLWwzRHRLTHNMIixkaXNhYmxlZDoiZGlzYWJsZWQtbDNEdEtMc0wiLGNoZWNrZWQ6ImNoZWNrZWQtbDNEdEtMc0wifX0sNTcwNDk4KGUpe2UuZXhwb3J0cz17YnV0dG9uOiJidXR0b24tR2F3cEIwcGYiLGFjdGl2ZToiYWN0aXZlLUdhd3BCMHBmIixmYXZvcml0ZToiZmF2b3JpdGUtR2F3cEIwcGYiLGZpbGxlZDoiZmlsbGVkLUdhd3BCMHBmIn19LDU1MzE0OShlKXtlLmV4cG9ydHM9e3dyYXBwZXI6IndyYXBwZXItSmE3SUdET2ciLGxhYmVsUm93OiJsYWJlbFJvdy1KYTdJR0RPZyIsbGFiZWw6ImxhYmVsLUphN0lHRE9nIixsYWJlbEhpbnQ6ImxhYmVsSGludC1KYTdJR0RPZyIsbGFiZWxPbjoibGFiZWxPbi1KYTdJR0RPZyJ9fSw3MzU0NjIoZSl7ZS5leHBvcnRzPXt3cmFwcGVyOiJ3cmFwcGVyLXE1NFR3eUNPIixob3ZlcmVkOiJob3ZlcmVkLXE1NFR3eUNPIixzd2l0Y2hXcmFwOiJzd2l0Y2hXcmFwLXE1NFR3eUNPIix3aXRoSWNvbjoid2l0aEljb24tcTU0VHd5Q08iLGxhYmVsUm93OiJsYWJlbFJvdy1xNTRUd3lDTyIsbGFiZWw6ImxhYmVsLXE1NFR3eUNPIixpY29uOiJpY29uLXE1NFR3eUNPIixsYWJlbF9kaXNhYmxlZDoibGFiZWxfZGlzYWJsZWQtcTU0VHd5Q08iLGxhYmVsSGludDoibGFiZWxIaW50LXE1NFR3eUNPIixsYWJlbE9uOiJsYWJlbE9uLXE1NFR3eUNPIixhY2Nlc3NpYmxlOiJhY2Nlc3NpYmxlLXE1NFR3eUNPIn19LDI3NzA3NihlKXtlLmV4cG9ydHM9e2J1dHRvbjoiYnV0dG9uLUhkS2hjVHllIixwcmVzc2VkOiJwcmVzc2VkLUhkS2hjVHllIixob3ZlcjoiaG92ZXItSGRLaGNUeWUiLGNsaWNrZWQ6ImNsaWNrZWQtSGRLaGNUeWUiLGlzSW50ZXJhY3RpdmU6ImlzSW50ZXJhY3RpdmUtSGRLaGNUeWUiLGFjY2Vzc2libGU6ImFjY2Vzc2libGUtSGRLaGNUeWUiLGlzR3JvdXBlZDoiaXNHcm91cGVkLUhkS2hjVHllIixpc0FjdGl2ZToiaXNBY3RpdmUtSGRLaGNUeWUiLGlzT3BlbmVkOiJpc09wZW5lZC1IZEtoY1R5ZSIsaXNEaXNhYmxlZDoiaXNEaXNhYmxlZC1IZEtoY1R5ZSIsdGV4dDoidGV4dC1IZEtoY1R5ZSIsaWNvbjoiaWNvbi1IZEtoY1R5ZSIsZW5kSWNvbjoiZW5kSWNvbi1IZEtoY1R5ZSJ9fSwyOTgwODYoZSl7ZS5leHBvcnRzPXtidXR0b246ImJ1dHRvbi1GRHRpRGJ5aiJ9fSw5MTM3NyhlKXtlLmV4cG9ydHM9e2FjdGlvbjoiYWN0aW9uLXltRnU5UUVEIixzaG93T25Ib3Zlcjoic2hvd09uSG92ZXIteW1GdTlRRUQifX0sNTI4MTAxKGUpe2UuZXhwb3J0cz17YmFkZ2VOZXc6ImJhZGdlTmV3LWFfU2FnWlFBIn19LDQyODA5NyhlKXtlLmV4cG9ydHM9e2Vtb2ppOiJlbW9qaS1Cc0VSR2NaMSIsY2xlYXJCdXR0b246ImNsZWFyQnV0dG9uLUJzRVJHY1oxIn19LDQwMjIzKGUpe2UuZXhwb3J0cz17d3JhcHBlcjoid3JhcHBlci1tejA4NjZNMiIsaG92ZXJlZDoiaG92ZXJlZC1tejA4NjZNMiJ9fSw2ODQ3MzcoZSx0LG4pewoidXNlIHN0cmljdCI7bi5kKHQse1JlbW92ZVRpdGxlVHlwZTooKT0+YSxyZW1vdmVUaXRsZXNNYXA6KCk9PnJ9KTt2YXIgYSxvPW4oNzgzMjU0KTshZnVuY3Rpb24oZSl7ZS5BZGQ9ImFkZCIsZS5SZW1vdmU9InJlbW92ZSJ9KGF8fChhPXt9KSk7Y29uc3Qgcj17W2EuQWRkXTpvLnQobnVsbCx2b2lkIDAsbig5OTUyOSkpLFthLlJlbW92ZV06by50KG51bGwsdm9pZCAwLG4oNjk0MjA5KSl9fSwzNTcyNjIoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7RmF2b3JpdGVCdXR0b246KCk9PnV9KTt2YXIgYT1uKDc3OTQ3NCksbz1uKDkxNDQ4Nykscj1uLm4obyksaT1uKDI3MzMxMCksbD1uKDY4NDczNykscz1uKDk1Mzc0KSxjPW4oNjk2NDMpLGQ9big4MjY5NzgpLG09big5Njk2MzEpO2Z1bmN0aW9uIHUoZSl7Y29uc3R7Y2xhc3NOYW1lOnQsaXNGaWxsZWQ6bixpc0FjdGl2ZTpvLG9uQ2xpY2s6dSx0aXRsZTpoLC4uLnZ9PWUsW3AsZl09KDAscy51c2VBY3RpdmVEZXNjZW5kYW50KShudWxsKSxnPWg/PyhuP2wucmVtb3ZlVGl0bGVzTWFwW2wuUmVtb3ZlVGl0bGVUeXBlLlJlbW92ZV06bC5yZW1vdmVUaXRsZXNNYXBbbC5SZW1vdmVUaXRsZVR5cGUuQWRkXSk7cmV0dXJuKDAsYS51c2VMYXlvdXRFZmZlY3QpKCgoKT0+e2NvbnN0IGU9cC5jdXJyZW50O2UgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCYmZyYmZS5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiY29tbW9uLXRvb2x0aXAtdXBkYXRlIikpfSksW2cscF0pLGEuY3JlYXRlRWxlbWVudChpLkljb24sey4uLnYsY2xhc3NOYW1lOnIoKShtLmZhdm9yaXRlLCJhcHBseS1jb21tb24tdG9vbHRpcCIsbiYmbS5jaGVja2VkLG8mJm0uYWN0aXZlLGYmJm0uZm9jdXNlZCx0KSxvbkNsaWNrOnUsaWNvbjpuP2M6ZCx0aXRsZTpnLGFyaWFMYWJlbDpnLHJlZjpwfSl9fSw5NTM3NChlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHt1c2VBY3RpdmVEZXNjZW5kYW50OigpPT5yfSk7dmFyIGE9big3Nzk0NzQpLG89big3ODc4OTUpO2Z1bmN0aW9uIHIoZSx0PVtdKXtjb25zdFtuLHJdPSgwLGEudXNlU3RhdGUpKCExKSxpPSgwLG8udXNlRnVuY3Rpb25hbFJlZk9iamVjdCkoZSk7cmV0dXJuKDAsYS51c2VMYXlvdXRFZmZlY3QpKCgoKT0+e2NvbnN0IGU9aS5jdXJyZW50O2lmKG51bGw9PT1lKXJldHVybjtjb25zdCB0PWU9Pntzd2l0Y2goZS50eXBlKXtjYXNlImFjdGl2ZS1kZXNjZW5kYW50LWZvY3VzIjpyKCEwKTticmVhaztjYXNlImFjdGl2ZS1kZXNjZW5kYW50LWJsdXIiOnIoITEpfX07cmV0dXJuIGUuYWRkRXZlbnRMaXN0ZW5lcigiYWN0aXZlLWRlc2NlbmRhbnQtZm9jdXMiLHQpLGUuYWRkRXZlbnRMaXN0ZW5lcigiYWN0aXZlLWRlc2NlbmRhbnQtYmx1ciIsdCksKCk9PntlLnJlbW92ZUV2ZW50TGlzdGVuZXIoImFjdGl2ZS1kZXNjZW5kYW50LWZvY3VzIix0KSxlLnJlbW92ZUV2ZW50TGlzdGVuZXIoImFjdGl2ZS1kZXNjZW5kYW50LWJsdXIiLHQpfX0pLHQpLFtpLG5dfX0sNjA5NTI4KGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse0RpYWxvZ0JyZWFrcG9pbnRzOigpPT5vfSk7dmFyIGE9big5MjQ1MDcpO2NvbnN0IG89e1NtYWxsSGVpZ2h0OmFbInNtYWxsLWhlaWdodC1icmVha3BvaW50Il0sVGFibGV0U21hbGw6YVsidGFibGV0LXNtYWxsLWJyZWFrcG9pbnQiXSxUYWJsZXROb3JtYWw6YVsidGFibGV0LW5vcm1hbC1icmVha3BvaW50Il19fSwzOTE1MDQoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7bXVsdGlsaW5lTGFiZWxXaXRoSWNvbkFuZFRvb2xib3hUaGVtZTooKT0+aX0pO3ZhciBhPW4oMzg3MjMxKSxvPW4oNDcwMjk1KSxyPW4oMzU0ODEyKTtjb25zdCBpPSgwLGEubWVyZ2VUaGVtZXMpKG8scil9LDU0NTQyMihlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtSZW1vdmVCdXR0b246KCk9Pm19KTt2YXIgYT1uKDc4MzI1NCksbz1uKDc3OTQ3NCkscj1uKDkxNDQ4NyksaT1uLm4ociksbD1uKDI3MzMxMCkscz1uKDk1Mzc0KSxjPW4oNDg5MDU5KSxkPW4oNzQwOTQzKTtmdW5jdGlvbiBtKGUpe2NvbnN0e2NsYXNzTmFtZTp0LGlzQWN0aXZlOnIsb25DbGljazptLG9uTW91c2VEb3duOnUsdGl0bGU6aCxoaWRkZW46diwiZGF0YS1uYW1lIjpwPSJyZW1vdmUtYnV0dG9uIixpY29uOmYsLi4uZ309ZSxbdyxiXT0oMCxzLnVzZUFjdGl2ZURlc2NlbmRhbnQpKG51bGwpO3JldHVybiBvLmNyZWF0ZUVsZW1lbnQobC5JY29uLHsuLi5nLCJkYXRhLW5hbWUiOnAsY2xhc3NOYW1lOmkoKShkLmJ1dHRvbiwiYXBwbHktY29tbW9uLXRvb2x0aXAiLHImJmQuYWN0aXZlLHYmJmQuaGlkZGVuLGImJmQuZm9jdXNlZCx0KSxpY29uOmZ8fGMsb25DbGljazptLG9uTW91c2VEb3duOnUsdGl0bGU6aD8/YS50KG51bGwsdm9pZCAwLG4oOTExMjYpKSxhcmlhTGFiZWw6aD8/YS50KG51bGwsdm9pZCAwLG4oOTExMjYpKSxyZWY6d30pfX0sNzE5NzM3KGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse0Zhdm9yaXRlSWNvbkJ1dHRvbjooKT0+d30pO3ZhciBhPW4oNzc5NDc0KSxvPW4oOTE0NDg3KSxyPW4ubihvKSxpPW4oNzgzMjU0KSxsPW4oMzMyNjg3KSxzPW4oNzI5MjUwKSxjPW4oMzQ1MTE2KSxkPW4oNTk5NzUpLG09bi5uKGQpLHU9bigyMzA2ODYpLGg9bi5uKHUpLHY9bigxMzM2NTYpLHA9bi5uKHYpO2NvbnN0IGY9bSgpLGc9aCgpLHc9KDAsYS5mb3J3YXJkUmVmKSgoKGUsdCk9Pntjb25zdCBvPSgwLGEudXNlQ29udGV4dCkobC5JY29uQnV0dG9uVmFyaWFudENvbnRleHQpLHtpc0Zhdm9yaXRlOmQsb25DaGFuZ2VJc0Zhdm9yaXRlOm0sc2hhcGU6dSx2YXJpYW50Omg9by52YXJpYW50Pz8icHJpbWFyeSIsdGFiSW5kZXg6dixkYXRhUWFJZDp3LHJvbGU6YiwuLi55fT1lLEU9KDAsYy5maWx0ZXJDaGVja2VkRGF0YVByb3BzKSh5KTtyZXR1cm4gYS5jcmVhdGVFbGVtZW50KHMuVG9nZ2xlYWJsZUljb25CdXR0b24se3RvZ2dsZWRJY29uOmYsdW50b2dnbGVkSWNvbjpnLHRvZ2dsZWRDb2xvckNsYXNzTmFtZTpyKCkocCgpLmZhdm9yaXRlc0ljb25CdXR0b25Ub2dnbGVkLHAoKVtoXSksaXNUb2dnbGVkOmQsb25Ub2dnbGU6bSwKdW50b2dnbGVkVGl0bGU6aS50KG51bGwsdm9pZCAwLG4oOTk1MjkpKSx0b2dnbGVkVGl0bGU6aS50KG51bGwsdm9pZCAwLG4oNjk0MjA5KSksc2hhcGU6dSx2YXJpYW50OmgsdGFiSW5kZXg6dixkYXRhUWFJZDp3LHJlZjp0LHJvbGU6YiwuLi5FfSl9KSl9LDIzNDYzNihlLHQsbil7InVzZSBzdHJpY3QiO3ZhciBhO24uZCh0LHtCYWRnZVNpemU6KCk9PmF9KSxmdW5jdGlvbihlKXtlLlhTbWFsbD0ieHNtYWxsIixlLlNtYWxsPSJzbWFsbCIsZS5NZWRpdW09Im1lZGl1bSIsZS5MYXJnZT0ibGFyZ2UiLGUuWExhcmdlPSJ4bGFyZ2UifShhfHwoYT17fSkpfSwyNjQzMTgoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7Q2xpY2thYmxlSWNvbkJ1dHRvbjooKT0+bX0pO3ZhciBhPW4oNzc5NDc0KSxvPW4oOTE0NDg3KSxyPW4ubihvKSxpPW4oMzMyNjg3KSxsPW4oMjE3Mjc0KSxzPW4oMzQ1MTE2KSxjPW4oOTkzOTk1KSxkPW4ubihjKTtjb25zdCBtPSgwLGEuZm9yd2FyZFJlZikoKChlLHQpPT57Y29uc3Qgbj0oMCxhLnVzZUNvbnRleHQpKGkuSWNvbkJ1dHRvblZhcmlhbnRDb250ZXh0KS52YXJpYW50LHt0aXRsZTpvLG9uQ2xpY2s6Yyxjb2xvckNsYXNzTmFtZTptLGljb246dSx2YXJpYW50Omg9bj8/aS5ERUZBVUxUX0lDT05fQlVUVE9OX1ZBUklBTlQsc2hhcGU6dj0ic3F1YXJlIix0YWJJbmRleDpwLHJvbGU6ZixkYXRhUWFJZDpnLC4uLnd9PWUsYj0oMCxzLmZpbHRlckNoZWNrZWREYXRhUHJvcHMpKHcsZyk7cmV0dXJuIGEuY3JlYXRlRWxlbWVudCgiYnV0dG9uIix7cmVmOnQsdGl0bGU6byx0eXBlOiJidXR0b24iLHJvbGU6ZiwiYXJpYS1sYWJlbCI6byxvbkNsaWNrOmMsdGFiSW5kZXg6cCxjbGFzc05hbWU6cigpKGQoKS5pY29uQnV0dG9uLGQoKVtoXSxkKClbdl0sbSwiYXBwbHktY29tbW9uLXRvb2x0aXAiKSwuLi5ifSxhLmNyZWF0ZUVsZW1lbnQobC5CbG9ja0ljb24se2ljb246dSxjbGFzc05hbWU6ZCgpLmljb24sImFyaWEtaGlkZGVuIjoidHJ1ZSJ9KSl9KSl9LDcyOTI1MChlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtUb2dnbGVhYmxlSWNvbkJ1dHRvbjooKT0+aX0pO3ZhciBhPW4oNzc5NDc0KSxvPW4oMjY0MzE4KSxyPW4oMzQ1MTE2KTtjb25zdCBpPSgwLGEuZm9yd2FyZFJlZikoKChlLHQpPT57Y29uc3R7b25Ub2dnbGU6bixpc1RvZ2dsZWQ6aSx0b2dnbGVkVGl0bGU6bCx0b2dnbGVkSWNvbjpzLHRvZ2dsZWRDb2xvckNsYXNzTmFtZTpjLHVudG9nZ2xlZFRpdGxlOmQsdW50b2dnbGVkSWNvbjptLHVudG9nZ2xlZENvbG9yQ2xhc3NOYW1lOnUsdmFyaWFudDpoLHNoYXBlOnYsZGF0YVFhSWQ6cCx0YWJJbmRleDpmLHJvbGU6ZywuLi53fT1lLGI9KDAsci5maWx0ZXJDaGVja2VkRGF0YVByb3BzKSh3KTtsZXQgeSxFLFQ7cmV0dXJuIGk/KFQ9bCx5PXMsRT1jKTooVD1kLHk9bSxFPXUpLGEuY3JlYXRlRWxlbWVudChvLkNsaWNrYWJsZUljb25CdXR0b24se3RpdGxlOlQsaWNvbjp5LG9uQ2xpY2s6KCk9Pm4oIWkpLGNvbG9yQ2xhc3NOYW1lOkUsdmFyaWFudDpoLHNoYXBlOnYscmVmOnQsZGF0YVFhSWQ6cCx0YWJJbmRleDpmLHJvbGU6ZywuLi5ifSl9KSl9LDIxNzI3NChlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtCbG9ja0ljb246KCk9PmN9KTt2YXIgYT1uKDkxNDQ4Nyksbz1uLm4oYSkscj1uKDc3OTQ3NCksaT1uKDk0ODQ1MCksbD1uKDE0NTk4NSkscz1uLm4obCk7Y29uc3QgYz1yLmZvcndhcmRSZWYoKChlLHQpPT57Y29uc3R7Y2xhc3NOYW1lOm4saWNvbjphLGFyaWFMYWJlbDpsLGFyaWFMYWJlbGxlZGJ5OmMsdGl0bGU6ZCwuLi5tfT1lLHU9bTtyZXR1cm4gci5jcmVhdGVFbGVtZW50KGkuQ29tbW9uSWNvbix7Y2xhc3NOYW1lOm8oKShuLHMoKS5ibG9ja0ljb24pLHJlZjp0LGljb246YSxhcmlhTGFiZWw6bCxhcmlhTGFiZWxsZWRieTpjLHRpdGxlOmQsLi4udX0pfSkpfSw3MzI3MzEoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7RGl2aWRlckxpc3RJdGVtOigpPT5pfSk7dmFyIGE9big3Nzk0NzQpLG89big5OTQyOCkscj1uLm4obyk7ZnVuY3Rpb24gaShlKXtjb25zdHtyb2xlOnR9PWU7cmV0dXJuIGEuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOnIoKS5kaXZpZGVyLHJvbGU6dH0sYS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6cigpLmxpbmV9KSl9fSwzMDgyMTYoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7U3dpdGNoVmlldzooKT0+Y30pO3ZhciBhLG89big3Nzk0NzQpLHI9big5MTQ0ODcpLGk9bi5uKHIpLGw9big2MjU3MDkpLHM9bi5uKGwpO2Z1bmN0aW9uIGMoZSl7Y29uc3R7c2l6ZTp0PSJzbWFsbCIsY2hlY2tlZDpuLGRpc2FibGVkOmF9PWU7cmV0dXJuIG8uY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZTppKCkocygpLnN3aXRjaFZpZXcscygpW3RdLGEmJnMoKS5kaXNhYmxlZCxuJiZzKCkuY2hlY2tlZCl9LG8uY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZTpzKCkudHJhY2t9KSxvLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6cygpLnRodW1ifSkpfSFmdW5jdGlvbihlKXtlLlNtYWxsPSJzbWFsbCIsZS5NZWRpdW09Im1lZGl1bSIsZS5MYXJnZT0ibGFyZ2UifShhfHwoYT17fSkpfSwxMjgzMihlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtTd2l0Y2g6KCk9PnV9KTt2YXIgYSxvPW4oNzc5NDc0KSxyPW4oOTE0NDg3KSxpPW4ubihyKSxsPW4oMzA5OTIwKSxzPW4oMzA4MjE2KSxjPW4oMjM1NzI0KSxkPW4oNjg3NTQ3KSxtPW4ubihkKTtmdW5jdGlvbiB1KGUpe2NvbnN0IHQ9KDAsby51c2VDb250ZXh0KShsLkN1c3RvbUJlaGF2aW91ckNvbnRleHQpLHtzaXplOm4saW50ZW50OmE9ImRlZmF1bHQiLGNoZWNrZWQ6cixjbGFzc05hbWU6ZCxlbmFibGVBY3RpdmVTdGF0ZVN0eWxlczp1PXQuZW5hYmxlQWN0aXZlU3RhdGVTdHlsZXMsZGlzYWJsZWQ6aCxvbkNoYW5nZTp2LHRpdGxlOnAsaWQ6ZixuYW1lOmcsdmFsdWU6dyx0YWJJbmRleDpiLHJvbGU6eT0ic3dpdGNoIixhcmlhRGlzYWJsZWQ6RSxyZWZlcmVuY2U6VCxhcmlhTGFiZWxsZWRCeTp4LGFyaWFMYWJlbDpJLC4uLkN9PWUKO3JldHVybiBvLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6aSgpKGQsbSgpLnN3aXRjaGVyKX0sby5jcmVhdGVFbGVtZW50KCJpbnB1dCIsey4uLkMsdHlwZToiY2hlY2tib3giLGNsYXNzTmFtZTppKCkobSgpLmlucHV0LHUmJm0oKS5hY3RpdmVTdHlsZXNFbmFibGVkLHImJm0oKS5jaGVja2VkLGgmJm0oKS5kaXNhYmxlZCkscm9sZTp5LCJhcmlhLWNoZWNrZWQiOnIsY2hlY2tlZDpyLG9uS2V5RG93bjplPT57MTM9PT0oMCxjLmhhc2hGcm9tRXZlbnQpKGUpJiZlLmN1cnJlbnRUYXJnZXQ/LmNsaWNrKCl9LG9uQ2hhbmdlOnYsZGlzYWJsZWQ6aCwiYXJpYS1kaXNhYmxlZCI6RSx0YWJJbmRleDpiLHRpdGxlOnAsaWQ6ZixuYW1lOmcsdmFsdWU6dyxyZWY6VCwiYXJpYS1sYWJlbCI6SSwiYXJpYS1sYWJlbGxlZGJ5Ijp4fSksby5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOmkoKShtKCkudGh1bWJXcmFwcGVyLG0oKVthXSl9LG8uY3JlYXRlRWxlbWVudChzLlN3aXRjaFZpZXcse2NoZWNrZWQ6cixzaXplOm4sZGlzYWJsZWQ6aH0pKSl9IWZ1bmN0aW9uKGUpe2UuRGVmYXVsdD0iZGVmYXVsdCIsZS5TZWxlY3Q9InNlbGVjdCJ9KGF8fChhPXt9KSl9LDY1OTM2NShlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtiaW5kU2NyZWVuc2hvdDooKT0+aH0pO3ZhciBhPW4oMTg1MjcxKSxvPW4oNzc5NDc0KSxyPW4oMjIxODk2KSxpPW4oNTY5NjUyKSxsPW4oNzU0MjQ2KSxzPW4oODI2MTU2KSxjPW4oMzQ0MTAzKTtjb25zdCBkPW5ldyBzLkRhdGVUaW1lRm9ybWF0dGVyKHtkYXRlVGltZVNlcGFyYXRvcjoiXyIsdGltZUZvcm1hdDoiJWgtJW0tJXMifSksbT17dGFrZVNuYXBzaG90OmEudChudWxsLHZvaWQgMCxuKDIwNzM3MSkpfSx1PSgwLGkucmVnaXN0cnlDb250ZXh0VHlwZSkoKTtmdW5jdGlvbiBoKGUpe3ZhciB0O3JldHVybih0PWNsYXNzIGV4dGVuZHMgby5QdXJlQ29tcG9uZW50e2NvbnN0cnVjdG9yKGUsdCl7c3VwZXIoZSx0KSx0aGlzLl9jbGllbnRTbmFwc2hvdD1hc3luYygpPT57Y29uc3QgZT10aGlzLmNvbnRleHQuY2hhcnRXaWRnZXRDb2xsZWN0aW9uLmFjdGl2ZUNoYXJ0V2lkZ2V0LnZhbHVlKCkubW9kZWwoKS5tYWluU2VyaWVzKCkuYWN0dWFsU3ltYm9sKCk7cmV0dXJue2NhbnZhczphd2FpdCB0aGlzLmNvbnRleHQuY2hhcnRXaWRnZXRDb2xsZWN0aW9uLmNsaWVudFNuYXBzaG90KCksbmFtZTpgJHsoMCxjLnNob3J0TmFtZSkoZSl9XyR7ZC5mb3JtYXRMb2NhbChuZXcgRGF0ZSl9YH19LHRoaXMuX3NlcnZlclNuYXBzaG90PWFzeW5jKCk9Pntjb25zdCBlPXRoaXMuY29udGV4dC5jaGFydFdpZGdldENvbGxlY3Rpb24uYWN0aXZlQ2hhcnRXaWRnZXQudmFsdWUoKS5tb2RlbCgpLm1haW5TZXJpZXMoKS5hY3R1YWxTeW1ib2woKSx0PWF3YWl0IHRoaXMuY29udGV4dC5jaGFydFdpZGdldENvbGxlY3Rpb24udGFrZVNjcmVlbnNob3QoKSxuPSgwLGwuY29udmVydEltYWdlTmFtZVRvVXJsKSh0KTtyZXR1cm57c3ltYm9sOigwLGMuc2hvcnROYW1lKShlKSxpbWFnZVVybDpufX0sKDAsaS52YWxpZGF0ZVJlZ2lzdHJ5KSh0LHtjaGFydFdpZGdldENvbGxlY3Rpb246ci5hbnkuaXNSZXF1aXJlZH0pfXJlbmRlcigpe2NvbnN0e2NsYXNzTmFtZTp0LGlkOm59PXRoaXMucHJvcHM7cmV0dXJuIG8uY3JlYXRlRWxlbWVudChlLHtpZDpuLGNsYXNzTmFtZTp0LHRvb2x0aXA6bS50YWtlU25hcHNob3Qsc2VydmVyU25hcHNob3Q6dGhpcy5fc2VydmVyU25hcHNob3QsY2xpZW50U25hcHNob3Q6dGhpcy5fY2xpZW50U25hcHNob3Qsc25hcHNob3RVcmw6dGhpcy5jb250ZXh0LnNuYXBzaG90VXJsfSl9fSkuY29udGV4dFR5cGU9dSx0fX0sODYxMTg4KGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse2ZvY3VzRmlyc3RNZW51SXRlbTooKT0+ZCxoYW5kbGVBY2Nlc3NpYmxlTWVudUZvY3VzOigpPT5zLGhhbmRsZUFjY2Vzc2libGVNZW51S2V5RG93bjooKT0+YyxxdWVyeU1lbnVFbGVtZW50czooKT0+aH0pO3ZhciBhPW4oOTgzNjE2KSxvPW4oMzI5NjY4KSxyPW4oMjM1NzI0KSxpPW4oNjgyMzgxKTtjb25zdCBsPVszNywzOSwzOCw0MF07ZnVuY3Rpb24gcyhlLHQpe2lmKCFlLnRhcmdldClyZXR1cm47Y29uc3Qgbj1lLnJlbGF0ZWRUYXJnZXQ/LmdldEF0dHJpYnV0ZSgiYXJpYS1hY3RpdmVkZXNjZW5kYW50Iik7aWYoZS5yZWxhdGVkVGFyZ2V0IT09dC5jdXJyZW50KXtjb25zdCBlPW4mJmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKG4pO2lmKCFlfHxlIT09dC5jdXJyZW50KXJldHVybn1kKGUudGFyZ2V0KX1mdW5jdGlvbiBjKGUpe2lmKGUuZGVmYXVsdFByZXZlbnRlZClyZXR1cm47Y29uc3QgdD0oMCxyLmhhc2hGcm9tRXZlbnQpKGUpO2lmKCFsLmluY2x1ZGVzKHQpKXJldHVybjtjb25zdCBuPWRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ7aWYoIShkb2N1bWVudC5hY3RpdmVFbGVtZW50IGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpKXJldHVybjtjb25zdCBpPWgoZS5jdXJyZW50VGFyZ2V0KS5zb3J0KGEubmF2aWdhdGlvbk9yZGVyQ29tcGFyYXRvcik7aWYoMD09PWkubGVuZ3RoKXJldHVybjtjb25zdCBzPWRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuY2xvc2VzdCgnW2RhdGEtcm9sZT0ibWVudWl0ZW0iXScpfHxkb2N1bWVudC5hY3RpdmVFbGVtZW50LnBhcmVudEVsZW1lbnQ/LnF1ZXJ5U2VsZWN0b3IoJ1tkYXRhLXJvbGU9Im1lbnVpdGVtIl0nKTtpZighKHMgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCkpcmV0dXJuO2NvbnN0IGM9aS5pbmRleE9mKHMpO2lmKC0xPT09YylyZXR1cm47Y29uc3QgZD12KHMpLHA9ZC5pbmRleE9mKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQpLGY9LTEhPT1wLGc9ZT0+e24mJigwLG8uYmVjb21lU2Vjb25kYXJ5RWxlbWVudCkobiksKDAsby5iZWNvbWVNYWluRWxlbWVudCkoZSksZS5mb2N1cygpfTtzd2l0Y2goKDAsYS5tYXBLZXlDb2RlVG9EaXJlY3Rpb24pKHQpKXtjYXNlImlubGluZVByZXYiOmlmKCFkLmxlbmd0aClyZXR1cm47ZS5wcmV2ZW50RGVmYXVsdCgpLGcoMD09PXA/aVtjXTpmP20oZCxwLC0xKTpkW2QubGVuZ3RoLTFdKTticmVhaztjYXNlImlubGluZU5leHQiOgppZighZC5sZW5ndGgpcmV0dXJuO2UucHJldmVudERlZmF1bHQoKSxwPT09ZC5sZW5ndGgtMT9nKGlbY10pOmcoZj9tKGQscCwxKTpkWzBdKTticmVhaztjYXNlImJsb2NrUHJldiI6e2UucHJldmVudERlZmF1bHQoKTtjb25zdCB0PW0oaSxjLC0xKTtpZihmKXtjb25zdCBlPXUodCxwKTtnKGV8fHQpO2JyZWFrfWcodCk7YnJlYWt9Y2FzZSJibG9ja05leHQiOntlLnByZXZlbnREZWZhdWx0KCk7Y29uc3QgdD1tKGksYywxKTtpZihmKXtjb25zdCBlPXUodCxwKTtnKGV8fHQpO2JyZWFrfWcodCl9fX1mdW5jdGlvbiBkKGUpe2NvbnN0W3RdPWgoZSk7dCYmKCgwLG8uYmVjb21lTWFpbkVsZW1lbnQpKHQpLHQuZm9jdXMoKSl9ZnVuY3Rpb24gbShlLHQsbil7cmV0dXJuIGVbKHQrZS5sZW5ndGgrbiklZS5sZW5ndGhdfWZ1bmN0aW9uIHUoZSx0KXtjb25zdCBuPXYoZSk7cmV0dXJuIG4ubGVuZ3RoP25bKHQrbi5sZW5ndGgpJW4ubGVuZ3RoXTpudWxsfWZ1bmN0aW9uIGgoZSl7cmV0dXJuIEFycmF5LmZyb20oZS5xdWVyeVNlbGVjdG9yQWxsKCdbZGF0YS1yb2xlPSJtZW51aXRlbSJdOm5vdChbZGlzYWJsZWRdKTpub3QoW2FyaWEtZGlzYWJsZWQ9InRydWUiIGldKScpKS5maWx0ZXIoKDAsaS5jcmVhdGVTY29wZWRWaXNpYmxlRWxlbWVudEZpbHRlcikoZSkpfWZ1bmN0aW9uIHYoZSl7cmV0dXJuIEFycmF5LmZyb20oZS5xdWVyeVNlbGVjdG9yQWxsKCdbdGFiaW5kZXhdOm5vdChbZGlzYWJsZWRdKTpub3QoW2FyaWEtZGlzYWJsZWQ9InRydWUiIGldKScpKS5maWx0ZXIoKDAsaS5jcmVhdGVTY29wZWRWaXNpYmxlRWxlbWVudEZpbHRlcikoZSkpfX0sNjE5MTA1KGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse01lbnVGYXZvcml0ZUJ1dHRvbjooKT0+ZH0pO3ZhciBhPW4oNzc5NDc0KSxvPW4oOTE0NDg3KSxyPW4ubihvKSxpPW4oMTgyMzA4KSxsPW4oMzU3MjYyKSxzPW4oNjg0NzM3KSxjPW4oNTcwNDk4KTtmdW5jdGlvbiBkKGUpe2NvbnN0e29uQ2xpY2s6dCxpc0ZpbGxlZDpuLGlzQWN0aXZlOm8sY2xhc3NOYW1lOmQsY29sb3JUeXBlOm09ImxlZ2FjeSIsLi4udX09ZSxbaCx2XT0oMCxpLnVzZVJvdmluZ1RhYmluZGV4RWxlbWVudCkobnVsbCkscD1uP3MucmVtb3ZlVGl0bGVzTWFwW3MuUmVtb3ZlVGl0bGVUeXBlLlJlbW92ZV06cy5yZW1vdmVUaXRsZXNNYXBbcy5SZW1vdmVUaXRsZVR5cGUuQWRkXTtyZXR1cm4oMCxhLnVzZUxheW91dEVmZmVjdCkoKCgpPT57Y29uc3QgZT1oLmN1cnJlbnQ7ZSBpbnN0YW5jZW9mIEhUTUxFbGVtZW50JiZlLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJjb21tb24tdG9vbHRpcC11cGRhdGUiKSl9KSxbcCxoXSksYS5jcmVhdGVFbGVtZW50KCJidXR0b24iLHtyZWY6aCx0YWJJbmRleDp2LG9uQ2xpY2s6dCxjbGFzc05hbWU6cigpKGMuYnV0dG9uLG8mJmMuYWN0aXZlLGQsImFwcGx5LWNvbW1vbi10b29sdGlwIiksdHlwZToiYnV0dG9uIiwiYXJpYS1sYWJlbCI6cCwiZGF0YS10b29sdGlwIjpwLCJkYXRhLXFhLWlkIjoicHJlc2V0LW1lbnUtZmF2b3JpdGUtYnV0dG9uIn0sYS5jcmVhdGVFbGVtZW50KGwuRmF2b3JpdGVCdXR0b24sey4uLnUsaXNGaWxsZWQ6bixpc0FjdGl2ZTpvLHRpdGxlOiIiLGNsYXNzTmFtZTpyKCkoYy5mYXZvcml0ZSwibmV3Ij09PW0mJm4mJmMuZmlsbGVkLG8mJmMuYWN0aXZlKX0pKX19LDI1NTMyOShlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtERUZBVUxUX01FTlVfSVRFTV9TV0lUQ0hFUl9USEVNRTooKT0+dSxNZW51SXRlbVN3aXRjaGVyOigpPT5ofSk7dmFyIGE9big3Nzk0NzQpLG89big5MTQ0ODcpLHI9bi5uKG8pLGk9bigxMjgzMiksbD1uKDI3MzMxMCkscz1uKDIzNTcyNCksYz1uKDE4MjMwOCksZD1uKDM0NTExNiksbT1uKDczNTQ2Mik7Y29uc3QgdT1tO2Z1bmN0aW9uIGgoZSl7Y29uc3R7cm9sZTp0LGNoZWNrZWQ6bixvbkNoYW5nZTpvLGNsYXNzTmFtZTp1LGlkOmgsbGFiZWw6dixsYWJlbERlc2NyaXB0aW9uOnAscHJldmVudExhYmVsSGlnaGxpZ2h0OmYsdmFsdWU6ZyxyZWZlcmVuY2U6dyxzd2l0Y2hSZWZlcmVuY2U6Yix0aGVtZTp5PW0sZGlzYWJsZWQ6RSxzd2l0Y2hSb2xlOlQsaWNvbjp4fT1lLFtJLENdPSgwLGMudXNlUm92aW5nVGFiaW5kZXhFbGVtZW50KShudWxsKSxTPXIoKSh5LmxhYmVsLG4mJiFmJiZ5LmxhYmVsT24sRSYmbS5sYWJlbF9kaXNhYmxlZCksaz1yKCkodSx5LndyYXBwZXIsbiYmeS53cmFwcGVyV2l0aE9uTGFiZWwscCYmeS53cmFwcGVyV2l0aERlc2NyaXB0aW9uKTtyZXR1cm4gYS5jcmVhdGVFbGVtZW50KCJsYWJlbCIse3JvbGU6dCxjbGFzc05hbWU6cigpKGsseCYmeS53aXRoSWNvbixtLmFjY2Vzc2libGUpLGh0bWxGb3I6aCxyZWY6dyxvbktleURvd246ZnVuY3Rpb24oZSl7aWYoZS50YXJnZXQhPT1lLmN1cnJlbnRUYXJnZXQpcmV0dXJuO2NvbnN0IHQ9KDAscy5oYXNoRnJvbUV2ZW50KShlKTsxMyE9PXQmJjMyIT09dHx8KGUucHJldmVudERlZmF1bHQoKSxJLmN1cnJlbnQgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCYmSS5jdXJyZW50LmNsaWNrKCkpfSx0YWJJbmRleDpDLCJkYXRhLXJvbGUiOiJtZW51aXRlbSIsImFyaWEtZGlzYWJsZWQiOkV8fHZvaWQgMCwiYXJpYS1zZWxlY3RlZCI6bn0sdm9pZCAwIT09eCYmYS5jcmVhdGVFbGVtZW50KGwuSWNvbix7Y2xhc3NOYW1lOnkuaWNvbixpY29uOnh9KSxhLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTp5LmxhYmVsUm93fSxhLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpTfSx2KSxwJiZhLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTp5LmxhYmVsSGludH0scCkpLGEuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOm0uc3dpdGNoV3JhcH0sYS5jcmVhdGVFbGVtZW50KGkuU3dpdGNoLHtkaXNhYmxlZDpFLGNsYXNzTmFtZTp5LnN3aXRjaCxyZWZlcmVuY2U6ZnVuY3Rpb24oZSl7SShlKSxiPy4oZSl9LGNoZWNrZWQ6bixvbkNoYW5nZTpmdW5jdGlvbihlKXtjb25zdCB0PWUudGFyZ2V0LmNoZWNrZWQ7dm9pZCAwIT09byYmbyh0KX0sdmFsdWU6Zyx0YWJJbmRleDotMSxpZDpoLHJvbGU6VCxhcmlhRGlzYWJsZWQ6ITAsCi4uLigwLGQuZmlsdGVyRGF0YVByb3BzKShlKX0pKSl9fSwzNzQzMDQoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7bWVudUl0ZW1Td2l0Y2hlck1vYmlsZVRoZW1lOigpPT5pfSk7dmFyIGE9bigzODcyMzEpLG89bigyNTUzMjkpLHI9big1NTMxNDkpO2NvbnN0IGk9KDAsYS5tZXJnZVRoZW1lcykoby5ERUZBVUxUX01FTlVfSVRFTV9TV0lUQ0hFUl9USEVNRSxyKX0sOTk1NzE5KGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse0RFRkFVTFRfVE9PTF9XSURHRVRfQlVUVE9OX1RIRU1FOigpPT5zLFRvb2xXaWRnZXRCdXR0b246KCk9PmN9KTt2YXIgYT1uKDc3OTQ3NCksbz1uKDkxNDQ4Nykscj1uLm4obyksaT1uKDI3MzMxMCksbD1uKDI3NzA3Nik7Y29uc3Qgcz1sLGM9YS5mb3J3YXJkUmVmKCgoZSx0KT0+e2NvbnN0e3RhZzpuPSJkaXYiLGljb246byxlbmRJY29uOnMsaXNBY3RpdmU6Yyxpc09wZW5lZDpkLGlzRGlzYWJsZWQ6bSxpc0Rpc2FibGVkQXBwZWFyYW5jZTp1LGlzRGlzYWJsZUludGVyYWN0aW9uOmgsaXNHcm91cGVkOnYsaXNIb3ZlcmVkOnAsaXNDbGlja2VkOmYsb25DbGljazpnLHRleHQ6dyx0ZXh0QmVmb3JlSWNvbjpiLHRpdGxlOnksdGhlbWU6RT1sLGNsYXNzTmFtZTpULGZvcmNlSW50ZXJhY3RpdmU6eCwiZGF0YS1uYW1lIjpJLCJkYXRhLXRvb2x0aXAiOkMsdG9vbHRpcFBvc2l0aW9uOlMsY2hpbGRyZW46ayxpc1ByZXNzZWQ6XywuLi5NfT1lLE49cigpKFQsRS5idXR0b24seyJhcHBseS1jb21tb24tdG9vbHRpcCI6Qm9vbGVhbih5fHxDKSwiY29tbW9uLXRvb2x0aXAtdmVydGljYWwiOkJvb2xlYW4oQykmJiJ2ZXJ0aWNhbCI9PT1TLFtFLmlzQWN0aXZlXTpjLFtFLmlzT3BlbmVkXTpkLFtFLmlzSW50ZXJhY3RpdmVdOih4fHxCb29sZWFuKGcpKSYmIW0mJiF1LFtFLmlzRGlzYWJsZWRdOkJvb2xlYW4obXx8dSksW0UuaXNHcm91cGVkXTp2LFtFLmhvdmVyXTpwLFtFLmNsaWNrZWRdOmYsW0UucHJlc3NlZF06X30pLHo9byYmKCJzdHJpbmciPT10eXBlb2Ygbz9hLmNyZWF0ZUVsZW1lbnQoaS5JY29uLHtjbGFzc05hbWU6RS5pY29uLGljb246b30pOmEuY2xvbmVFbGVtZW50KG8se2NsYXNzTmFtZTpyKCkoRS5pY29uLG8ucHJvcHMuY2xhc3NOYW1lKX0pKTtyZXR1cm4iYnV0dG9uIj09PW4/YS5jcmVhdGVFbGVtZW50KCJidXR0b24iLHsuLi5NLHJlZjp0LHR5cGU6ImJ1dHRvbiIsY2xhc3NOYW1lOnIoKShOLEUuYWNjZXNzaWJsZSksZGlzYWJsZWQ6bSYmIXV8fGgsb25DbGljazpnLHRpdGxlOnksImRhdGEtbmFtZSI6SSwiZGF0YS10b29sdGlwIjpDfSxiJiZ3JiZhLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpyKCkoImpzLWJ1dHRvbi10ZXh0IixFLnRleHQpfSx3KSx6LCFiJiZ3JiZhLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpyKCkoImpzLWJ1dHRvbi10ZXh0IixFLnRleHQpfSx3KSxrKTphLmNyZWF0ZUVsZW1lbnQoImRpdiIsey4uLk0scmVmOnQsImRhdGEtcm9sZSI6ImJ1dHRvbiIsY2xhc3NOYW1lOk4sb25DbGljazptfHxoP3ZvaWQgMDpnLHRpdGxlOnksImRhdGEtbmFtZSI6SSwiZGF0YS10b29sdGlwIjpDfSxiJiZ3JiZhLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpyKCkoImpzLWJ1dHRvbi10ZXh0IixFLnRleHQpfSx3KSx6LCFiJiZ3JiZhLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpyKCkoImpzLWJ1dHRvbi10ZXh0IixFLnRleHQpfSx3KSxzJiZhLmNyZWF0ZUVsZW1lbnQoaS5JY29uLHtpY29uOnMsY2xhc3NOYW1lOmwuZW5kSWNvbn0pLGspfSkpfSw0MDg0MShlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtUb29sV2lkZ2V0SWNvbkJ1dHRvbjooKT0+c30pO3ZhciBhPW4oNzc5NDc0KSxvPW4oOTE0NDg3KSxyPW4ubihvKSxpPW4oOTk1NzE5KSxsPW4oMjk4MDg2KTtjb25zdCBzPWEuZm9yd2FyZFJlZigoZnVuY3Rpb24oZSx0KXtjb25zdHtjbGFzc05hbWU6bixpZDpvLC4uLnN9PWU7cmV0dXJuIGEuY3JlYXRlRWxlbWVudChpLlRvb2xXaWRnZXRCdXR0b24se2lkOm8sImRhdGEtbmFtZSI6bywuLi5zLHJlZjp0LGNsYXNzTmFtZTpyKCkobixsLmJ1dHRvbil9KX0pKX0sMTAzMTYwKGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse0NvbnRleHRBY3Rpb246KCk9PmN9KTt2YXIgYT1uKDc3OTQ3NCksbz1uKDkxNDQ4Nykscj1uLm4obyksaT1uKDk4ODA2OCksbD1uKDkxMzc3KTtjb25zdCBzPXtbaS5EQVRBX0lTX0NPTlRFWFRfQUNUSU9OXTohMH07ZnVuY3Rpb24gYyhlKXtjb25zdHtjaGlsZHJlbjp0LGNsYXNzTmFtZTpuLGhpZGVJZk5vSG92ZXI6bywuLi5pfT1lO3JldHVybiBhLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHsuLi5pLC4uLnMsY2xhc3NOYW1lOnIoKShsLmFjdGlvbixvJiZsLnNob3dPbkhvdmVyLG4pLG9uQ2xpY2s6ZT0+e2UucHJldmVudERlZmF1bHQoKSxlLnN0b3BQcm9wYWdhdGlvbigpfX0sdCl9fSw5Nzk3NDIoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7RmF2b3JpdGVJY29uQnV0dG9uOigpPT5pfSk7dmFyIGE9big3Nzk0NzQpLG89big3MTk3MzcpLHI9bigxODIzMDgpO2Z1bmN0aW9uIGkoZSl7Y29uc3R7aXNGYXZvcml0ZTp0LG9uQ2xpY2s6bn09ZSxbaSxsXT0oMCxyLnVzZVJvdmluZ1RhYmluZGV4RWxlbWVudCkobnVsbCk7cmV0dXJuIGEuY3JlYXRlRWxlbWVudChvLkZhdm9yaXRlSWNvbkJ1dHRvbix7cmVmOmkscm9sZToiYnV0dG9uIix0YWJJbmRleDpsLGlzRmF2b3JpdGU6dCxvbkNoYW5nZUlzRmF2b3JpdGU6KCk9Pm4oKSwiZGF0YS1xYS1pZCI6InByZXNldC1tZW51LWZhdm9yaXRlLWJ1dHRvbiJ9KX19LDcyMzk4NihlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtNZW51U3dpdGNoZXJJdGVtOigpPT5pfSk7dmFyIGE9big3Nzk0NzQpLG89bigzMDgyMTYpLHI9bigzMTMxMTApO2Z1bmN0aW9uIGkoZSl7Y29uc3R7dmFsdWU6dCwuLi5ufT1lO3JldHVybiBhLmNyZWF0ZUVsZW1lbnQoci5NZW51SXRlbSx7Li4ubixyaWdodFNsb3Q6YS5jcmVhdGVFbGVtZW50KCJkaXYiLHtyb2xlOiJncmlkY2VsbCJ9LGEuY3JlYXRlRWxlbWVudChvLlN3aXRjaFZpZXcse2NoZWNrZWQ6dH0pKSxhcmlhQ2hlY2tlZDp0LApkb250Q2xvc2VQb3B1cDohMH0pfX0sNTU4MDc1KGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse2dlbmVyYXRlQ2hhcnRVcmw6KCk9Pm99KTt2YXIgYT1uKDExNzMxMyk7ZnVuY3Rpb24gbyhlKXtjb25zdCB0PWUuY2hhcnRJZD9gL2NoYXJ0LyR7ZS5jaGFydElkfS9gOiIvY2hhcnQvIixuPW5ldyBVUkwodCxsb2NhdGlvbi5ocmVmKTtyZXR1cm4gZS5zeW1ib2wmJm4uc2VhcmNoUGFyYW1zLmFwcGVuZCgic3ltYm9sIixlLnN5bWJvbCksZS5pbnRlcnZhbCYmbi5zZWFyY2hQYXJhbXMuYXBwZW5kKCJpbnRlcnZhbCIsZS5pbnRlcnZhbCksZS5zdHlsZSYmbi5zZWFyY2hQYXJhbXMuYXBwZW5kKCJzdHlsZSIsZS5zdHlsZSksKDAsYS51cmxXaXRoTW9iaWxlQXBwUGFyYW1zKShuLmhyZWYpfX0sOTA4MDM0KGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse3VzZVJvd3NOYXZpZ2F0aW9uOigpPT5tfSk7dmFyIGE9big3Nzk0NzQpLG89bigxMzg2MzgpLHI9big5ODM2MTYpLGk9bigyMzU3MjQpLGw9bigzMjk2NjgpLHM9big2ODIzODEpLGM9big2MTYzMTEpO2NvbnN0IGQ9WzM3LDM5LDM4LDQwXTtmdW5jdGlvbiBtKGUpe2NvbnN0IHQ9KDAsYS51c2VSZWYpKG51bGwpO3JldHVybigwLGMudXNlSXNvbW9ycGhpY0xheW91dEVmZmVjdCkoKCgpPT57Y29uc3QgZT0oMCxvLmVuc3VyZU5vdE51bGwpKHQuY3VycmVudCksbj0oKT0+e2NvbnN0IG49KDAsci5xdWVyeVRhYmJhYmxlRWxlbWVudHMpKGUpLnNvcnQoci5uYXZpZ2F0aW9uT3JkZXJDb21wYXJhdG9yKTtpZigwPT09bi5sZW5ndGh8fG5bMF0ucGFyZW50RWxlbWVudCYmIXYoblswXS5wYXJlbnRFbGVtZW50LCgwLG8uZW5zdXJlTm90TnVsbCkodC5jdXJyZW50KSkpe2NvbnN0IGE9ZnVuY3Rpb24oZSl7Y29uc3Qgbj1oKGUpLnNvcnQoci5uYXZpZ2F0aW9uT3JkZXJDb21wYXJhdG9yKSxhPW4uZmluZCgoZT0+dihlLCgwLG8uZW5zdXJlTm90TnVsbCkodC5jdXJyZW50KSkpKTtpZighYSlyZXR1cm4gbnVsbDtjb25zdCBpPUFycmF5LmZyb20oYS5jaGlsZHJlbik7aWYoIWkubGVuZ3RoKXJldHVybiBudWxsO3JldHVybiBpWzBdfShlKTtpZihudWxsPT09YSlyZXR1cm47aWYoKDAsbC5iZWNvbWVNYWluRWxlbWVudCkoYSksbi5sZW5ndGg+MClmb3IoY29uc3QgZSBvZiBuKSgwLGwuYmVjb21lU2Vjb25kYXJ5RWxlbWVudCkoZSl9fTtyZXR1cm4gd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImtleWJvYXJkLW5hdmlnYXRpb24tYWN0aXZhdGlvbiIsbiksbigpLCgpPT53aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigia2V5Ym9hcmQtbmF2aWdhdGlvbi1hY3RpdmF0aW9uIixuKX0pLFtdKSxbdCxmdW5jdGlvbih0KXtpZih0LmRlZmF1bHRQcmV2ZW50ZWQpcmV0dXJuO2NvbnN0IG49KDAsaS5oYXNoRnJvbUV2ZW50KSh0KTtpZighZC5pbmNsdWRlcyhuKSlyZXR1cm47Y29uc3QgYT1kb2N1bWVudC5hY3RpdmVFbGVtZW50O2lmKCEoYSBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KSlyZXR1cm47Y29uc3Qgbz10LmN1cnJlbnRUYXJnZXQ7bGV0IGwsYztpZihlKXtjb25zdCBlPWEucGFyZW50RWxlbWVudDtsPWU/QXJyYXkuZnJvbShlLmNoaWxkcmVuKTpbXSxjPWwuaW5kZXhPZihhKX1lbHNlIGw9KG09byxBcnJheS5mcm9tKG0ucXVlcnlTZWxlY3RvckFsbCgnYnV0dG9uOm5vdCg6ZGlzYWJsZWQpOm5vdChbYXJpYS1kaXNhYmxlZD0idHJ1ZSIgaV0pJykpLmZpbHRlcigoMCxzLmNyZWF0ZVNjb3BlZFZpc2libGVFbGVtZW50RmlsdGVyKShtKSkpLnNvcnQoci5uYXZpZ2F0aW9uT3JkZXJDb21wYXJhdG9yKSxjPWwuaW5kZXhPZihhKTt2YXIgbTtpZigwPT09bC5sZW5ndGh8fC0xPT09YylyZXR1cm47Y29uc3Qgdj0oMCxyLm1hcEtleUNvZGVUb0RpcmVjdGlvbikobik7c3dpdGNoKHYpe2Nhc2UiaW5saW5lUHJldiI6aWYodC5wcmV2ZW50RGVmYXVsdCgpLCFlJiYwPT09YylicmVhaztwKHUobCxjLC0xKSk7YnJlYWs7Y2FzZSJpbmxpbmVOZXh0IjppZih0LnByZXZlbnREZWZhdWx0KCksIWUmJmM9PT1sLmxlbmd0aC0xKWJyZWFrO3AodShsLGMsMSkpO2JyZWFrO2Nhc2UiYmxvY2tQcmV2IjpjYXNlImJsb2NrTmV4dCI6KG49PntpZighZG9jdW1lbnQuYWN0aXZlRWxlbWVudClyZXR1cm47Y29uc3QgYT1oKG8pLHI9ZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5wYXJlbnRFbGVtZW50O2lmKCFyKXJldHVybjtjb25zdCBpPUFycmF5LmZyb20oci5jaGlsZHJlbikuaW5kZXhPZihkb2N1bWVudC5hY3RpdmVFbGVtZW50KTtpZigtMT09PWkpcmV0dXJuO2NvbnN0IGw9YVsiYmxvY2tOZXh0Ij09PW4/YS5pbmRleE9mKHIpKzE6YS5pbmRleE9mKHIpLTFdO2lmKCFsKXJldHVybjt0LnByZXZlbnREZWZhdWx0KCk7Y29uc3Qgcz1BcnJheS5mcm9tKGwuY2hpbGRyZW4pO3MubGVuZ3RoJiYoIWUmJmk8PXMubGVuZ3RoLTE/cChzW2ldKTpwKHNbMF0pKX0pKHYpfX1dfWZ1bmN0aW9uIHUoZSx0LG4pe3JldHVybiBlWyh0K2UubGVuZ3RoK24pJWUubGVuZ3RoXX1mdW5jdGlvbiBoKGUpe3JldHVybiBBcnJheS5mcm9tKGUucXVlcnlTZWxlY3RvckFsbCgnW2RhdGEtcm9sZT0icm93Il0nKSkuZmlsdGVyKCgwLHMuY3JlYXRlU2NvcGVkVmlzaWJsZUVsZW1lbnRGaWx0ZXIpKGUpKX1mdW5jdGlvbiB2KGUsdCl7Y29uc3Qgbj0oMCxvLmVuc3VyZU5vdE51bGwpKGUucGFyZW50RWxlbWVudCkub2Zmc2V0VG9wLGE9bisoMCxvLmVuc3VyZU5vdE51bGwpKGUucGFyZW50RWxlbWVudCkuY2xpZW50SGVpZ2h0LHI9dC5zY3JvbGxUb3AsaT1yK3QuY2xpZW50SGVpZ2h0O3JldHVybiBuPj1yJiZhPD1pfWZ1bmN0aW9uIHAoZSl7ZG9jdW1lbnQuYWN0aXZlRWxlbWVudCYmKDAsbC5iZWNvbWVTZWNvbmRhcnlFbGVtZW50KShkb2N1bWVudC5hY3RpdmVFbGVtZW50KSwoMCxsLmJlY29tZU1haW5FbGVtZW50KShlKSxlLmZvY3VzKCl9fSw3MDM4MTQoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7QmFkZ2VOZXc6KCk9PmN9KTt2YXIgYT1uKDc3OTQ3NCksbz1uKDkxNDQ4Nykscj1uLm4obyksaT1uKDU5MDQ4NiksbD1uKDIzNDYzNikscz1uKDUyODEwMSk7ZnVuY3Rpb24gYyhlKXtjb25zdHtzaXplOnQsY2xhc3NOYW1lOm59PWUKO3JldHVybiBhLmNyZWF0ZUVsZW1lbnQoaS5CYWRnZSx7c2l6ZTp0Pz9sLkJhZGdlU2l6ZS5YU21hbGwsY2xhc3NOYW1lOnIoKShzLmJhZGdlTmV3LG4pfSwiTkVXIil9fSw0Mjc3NzMoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7RU1QVFlfRU1PSkk6KCk9PmF9KTtjb25zdCBhPSIifSwzMTUxNTQoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7ZW1vamlHcm91cHM6KCk9PkwsaXNTdXBwb3J0ZWRFbW9qaTooKT0+TSxsb2NhbGVDb21wYXJlRW1vamlUaXRsZXM6KCk9PnoscmVtb3ZlVW5hdmFpbGFibGVFbW9qaTooKT0+XyxzZXBhcmF0ZUVtb2ppOigpPT5OfSk7dmFyIGE9big3Nzk0NzQpLG89bigxODUyNzEpLHI9big2NjMwNDYpLGk9big2NDE1OTMpLGw9bigxMzg2MzgpLHM9bigyNzM3MzIpLGM9big4MTQ2NzApLGQ9big2MjA3ODEpLG09bigxNjExNzcpLHU9bigxODU2MDUpLGg9bigyMDI1MTEpLHY9big3NTA3NjkpLHA9big2OTQ1MzIpLGY9big5MDAzMTEpLGc9big1Njk3ODUpCjtjb25zdCB3PVsi8J+YgCIsIvCfmIMiLCLwn5iEIiwi8J+YgSIsIvCfmIYiLCLwn5iFIiwi8J+YgiIsIvCfpKMiLCLimLrvuI8iLCLwn5iKIiwi8J+YhyIsIvCfmYIiLCLwn5mDIiwi8J+YiSIsIvCfmIwiLCLwn5iNIiwi8J+lsCIsIvCfmJgiLCLwn5iXIiwi8J+YmSIsIvCfmJoiLCLwn5iLIiwi8J+YmyIsIvCfmJ0iLCLwn5icIiwi8J+kqiIsIvCfpKgiLCLwn6eQIiwi8J+kkyIsIvCfmI4iLCLwn6SpIiwi8J+lsyIsIvCfmI8iLCLwn5iSIiwi8J+YniIsIvCfmJQiLCLwn5ifIiwi8J+YlSIsIvCfmYEiLCLimLnvuI8iLCLwn5ijIiwi8J+YliIsIvCfmKsiLCLwn5ipIiwi8J+luiIsIvCfmKIiLCLwn5itIiwi8J+YpCIsIvCfmKAiLCLwn5ihIiwi8J+krCIsIvCfpK8iLCLwn5izIiwi8J+ltSIsIvCfpbYiLCLwn5ixIiwi8J+YqCIsIvCfmLAiLCLwn5ilIiwi8J+YkyIsIvCfpJciLCLwn6SUIiwi8J+krSIsIvCfpKsiLCLwn6SlIiwi8J+YtiIsIvCfmJAiLCLwn5iRIiwi8J+YrCIsIvCfmYQiLCLwn5ivIiwi8J+YpiIsIvCfmKciLCLwn5iuIiwi8J+YsiIsIvCfpbEiLCLwn5i0Iiwi8J+kpCIsIvCfmKoiLCLwn5i1Iiwi8J+kkCIsIvCfpbQiLCLwn6SiIiwi8J+kriIsIvCfpKciLCLwn5i3Iiwi8J+kkiIsIvCfpJUiLCLwn6SRIiwi8J+koCIsIvCfmIgiLCLwn5G/Iiwi8J+RuSIsIvCfkboiLCLwn6ShIiwi8J+SqSIsIvCfkbsiLCLwn5KAIiwi4pig77iPIiwi8J+RvSIsIvCfkb4iLCLwn6SWIiwi8J+OgyIsIvCfmLoiLCLwn5i4Iiwi8J+YuSIsIvCfmLsiLCLwn5i8Iiwi8J+YvSIsIvCfmYAiLCLwn5i/Iiwi8J+YviIsIvCfkYsiLCLwn6SaIiwi8J+WkCIsIuKciyIsIvCflpYiLCLwn5GMIiwi8J+kjyIsIuKcjO+4jyIsIvCfpJ4iLCLwn6SfIiwi8J+kmCIsIvCfpJkiLCLwn5GIIiwi8J+RiSIsIvCfkYYiLCLwn5aVIiwi8J+RhyIsIuKYne+4jyIsIvCfkY0iLCLwn5GOIiwi4pyKIiwi8J+RiiIsIvCfpJsiLCLwn6ScIiwi8J+RjyIsIvCfmYwiLCLwn5GQIiwi8J+ksiIsIvCfpJ0iLCLwn5mPIiwi4pyN77iPIiwi8J+ShSIsIvCfpLMiLCLwn5KqIiwi8J+mviIsIvCfprUiLCLwn6a/Iiwi8J+mtiIsIvCfkYIiLCLwn6a7Iiwi8J+RgyIsIvCfp6AiLCLwn6a3Iiwi8J+mtCIsIvCfkYAiLCLwn5GBIiwi8J+RhSIsIvCfkYQiLCLwn5KLIiwi8J+puCIsIvCfkbYiLCLwn6eSIiwi8J+RpiIsIvCfkaciLCLwn6eRIiwi8J+RsSIsIvCfkagiLCLwn6eUIiwi8J+RqOKAjfCfprAiLCLwn5Go4oCN8J+msSIsIvCfkajigI3wn6azIiwi8J+RqOKAjfCfprIiLCLwn5GpIiwi8J+RqeKAjfCfprAiLCLwn6eR4oCN8J+msCIsIvCfkanigI3wn6axIiwi8J+nkeKAjfCfprEiLCLwn5Gp4oCN8J+msyIsIvCfp5HigI3wn6azIiwi8J+RqeKAjfCfprIiLCLwn6eR4oCN8J+msiIsIvCfkbHigI3imYDvuI8iLCLwn5Gx4oCN4pmC77iPIiwi8J+nkyIsIvCfkbQiLCLwn5G1Iiwi8J+ZjSIsIvCfmY3igI3imYLvuI8iLCLwn5mN4oCN4pmA77iPIiwi8J+ZjiIsIvCfmY7igI3imYLvuI8iLCLwn5mO4oCN4pmA77iPIiwi8J+ZhSIsIvCfmYXigI3imYLvuI8iLCLwn5mF4oCN4pmA77iPIiwi8J+ZhiIsIvCfmYbigI3imYLvuI8iLCLwn5mG4oCN4pmA77iPIiwi8J+SgSIsIvCfkoHigI3imYLvuI8iLCLwn5KB4oCN4pmA77iPIiwi8J+ZiyIsIvCfmYvigI3imYLvuI8iLCLwn5mL4oCN4pmA77iPIiwi8J+njyIsIvCfp4/igI3imYLvuI8iLCLwn6eP4oCN4pmA77iPIiwi8J+ZhyIsIvCfmYfigI3imYLvuI8iLCLwn5mH4oCN4pmA77iPIiwi8J+kpiIsIvCfpKbigI3imYLvuI8iLCLwn6Sm4oCN4pmA77iPIiwi8J+ktyIsIvCfpLfigI3imYLvuI8iLCLwn6S34oCN4pmA77iPIiwi8J+nkeKAjeKale+4jyIsIvCfkajigI3impXvuI8iLCLwn5Gp4oCN4pqV77iPIiwi8J+nkeKAjfCfjpMiLCLwn5Go4oCN8J+OkyIsIvCfkanigI3wn46TIiwi8J+nkeKAjfCfj6siLCLwn5Go4oCN8J+PqyIsIvCfkanigI3wn4+rIiwi8J+nkeKAjeKalu+4jyIsIvCfkajigI3impbvuI8iLCLwn5Gp4oCN4pqW77iPIiwi8J+nkeKAjfCfjL4iLCLwn5Go4oCN8J+MviIsIvCfkanigI3wn4y+Iiwi8J+nkeKAjfCfjbMiLCLwn5Go4oCN8J+NsyIsIvCfkanigI3wn42zIiwi8J+nkeKAjfCflKciLCLwn5Go4oCN8J+UpyIsIvCfkanigI3wn5SnIiwi8J+nkeKAjfCfj60iLCLwn5Go4oCN8J+PrSIsIvCfkanigI3wn4+tIiwi8J+nkeKAjfCfkrwiLCLwn5Go4oCN8J+SvCIsIvCfkanigI3wn5K8Iiwi8J+nkeKAjfCflKwiLCLwn5Go4oCN8J+UrCIsIvCfkanigI3wn5SsIiwi8J+nkeKAjfCfkrsiLCLwn5Go4oCN8J+SuyIsIvCfkanigI3wn5K7Iiwi8J+nkeKAjfCfjqQiLCLwn5Go4oCN8J+OpCIsIvCfkanigI3wn46kIiwi8J+nkeKAjfCfjqgiLCLwn5Go4oCN8J+OqCIsIvCfkanigI3wn46oIiwi8J+nkeKAjeKciO+4jyIsIvCfkajigI3inIjvuI8iLCLwn5Gp4oCN4pyI77iPIiwi8J+nkeKAjfCfmoAiLCLwn5Go4oCN8J+agCIsIvCfkanigI3wn5qAIiwi8J+nkeKAjfCfmpIiLCLwn5Go4oCN8J+akiIsIvCfkanigI3wn5qSIiwi8J+RriIsIvCfka7igI3imYLvuI8iLCLwn5Gu4oCN4pmA77iPIiwi8J+VtSIsIvCflbXvuI/igI3imYLvuI8iLCLwn5W177iP4oCN4pmA77iPIiwi8J+SgiIsIvCfkoLigI3imYLvuI8iLCLwn5KC4oCN4pmA77iPIiwi8J+RtyIsIvCfkbfigI3imYLvuI8iLCLwn5G34oCN4pmA77iPIiwi8J+ktCIsIvCfkbgiLCLwn5GzIiwi8J+Rs+KAjeKZgu+4jyIsIvCfkbPigI3imYDvuI8iLCLwn5GyIiwi8J+nlSIsIvCfpLUiLCLwn5GwIiwi8J+ksCIsIvCfpLEiLCLwn5G8Iiwi8J+OhSIsIvCfpLYiLCLwn6a4Iiwi8J+muOKAjeKZgu+4jyIsIvCfprjigI3imYDvuI8iLCLwn6a5Iiwi8J+mueKAjeKZgu+4jyIsIvCfprnigI3imYDvuI8iLCLwn6eZIiwi8J+nmeKAjeKZgu+4jyIsIvCfp5nigI3imYDvuI8iLCLwn6eaIiwi8J+nmuKAjeKZgu+4jyIsIvCfp5rigI3imYDvuI8iLCLwn6ebIiwi8J+nm+KAjeKZgu+4jyIsIvCfp5vigI3imYDvuI8iLCLwn6ecIiwi8J+nnOKAjeKZgu+4jyIsIvCfp5zigI3imYDvuI8iLCLwn6edIiwi8J+nneKAjeKZgu+4jyIsIvCfp53igI3imYDvuI8iLCLwn6eeIiwi8J+nnuKAjeKZgu+4jyIsIvCfp57igI3imYDvuI8iLCLwn6efIiwi8J+nn+KAjeKZgu+4jyIsIvCfp5/igI3imYDvuI8iLCLwn5KGIiwi8J+ShuKAjeKZgu+4jyIsIvCfkobigI3imYDvuI8iLCLwn5KHIiwi8J+Sh+KAjeKZgu+4jyIsIvCfkofigI3imYDvuI8iLCLwn5q2Iiwi8J+atuKAjeKZgu+4jyIsIvCfmrbigI3imYDvuI8iLCLwn6eNIiwi8J+njeKAjeKZgu+4jyIsIvCfp43igI3imYDvuI8iLCLwn6eOIiwi8J+njuKAjeKZgu+4jyIsIvCfp47igI3imYDvuI8iLCLwn6eR4oCN8J+mryIsIvCfkajigI3wn6avIiwi8J+RqeKAjfCfpq8iLCLwn6eR4oCN8J+mvCIsIvCfkajigI3wn6a8Iiwi8J+RqeKAjfCfprwiLCLwn6eR4oCN8J+mvSIsIvCfkajigI3wn6a9Iiwi8J+RqeKAjfCfpr0iLCLwn4+DIiwi8J+Pg+KAjeKZgu+4jyIsIvCfj4PigI3imYDvuI8iLCLwn5KDIiwi8J+VuiIsIvCflbQiLCLwn5GvIiwi8J+Rr+KAjeKZgu+4jyIsIvCfka/igI3imYDvuI8iLCLwn6eWIiwi8J+nluKAjeKZgu+4jyIsIvCfp5bigI3imYDvuI8iLCLwn6eR4oCN8J+kneKAjfCfp5EiLCLwn5GtIiwi8J+RqyIsIvCfkawiLCLwn5KPIiwi8J+RqOKAjeKdpO+4j+KAjfCfkovigI3wn5GoIiwi8J+RqeKAjeKdpO+4j+KAjfCfkovigI3wn5GpIiwi8J+SkSIsIvCfkajigI3inaTvuI/igI3wn5GoIiwi8J+RqeKAjeKdpO+4j+KAjfCfkakiLCLwn5GqIiwi8J+RqOKAjfCfkanigI3wn5GmIiwi8J+RqOKAjfCfkanigI3wn5GnIiwi8J+RqOKAjfCfkanigI3wn5Gn4oCN8J+RpiIsIvCfkajigI3wn5Gp4oCN8J+RpuKAjfCfkaYiLCLwn5Go4oCN8J+RqeKAjfCfkafigI3wn5GnIiwi8J+RqOKAjfCfkajigI3wn5GmIiwi8J+RqOKAjfCfkajigI3wn5GnIiwi8J+RqOKAjfCfkajigI3wn5Gn4oCN8J+RpiIsIvCfkajigI3wn5Go4oCN8J+RpuKAjfCfkaYiLCLwn5Go4oCN8J+RqOKAjfCfkafigI3wn5GnIiwi8J+RqeKAjfCfkanigI3wn5GmIiwi8J+RqeKAjfCfkanigI3wn5GnIiwi8J+RqeKAjfCfkanigI3wn5Gn4oCN8J+RpiIsIvCfkanigI3wn5Gp4oCN8J+RpuKAjfCfkaYiLCLwn5Gp4oCN8J+RqeKAjfCfkafigI3wn5GnIiwi8J+RqOKAjfCfkaYiLCLwn5Go4oCN8J+RpuKAjfCfkaYiLCLwn5Go4oCN8J+RpyIsIvCfkajigI3wn5Gn4oCN8J+RpiIsIvCfkajigI3wn5Gn4oCN8J+RpyIsIvCfkanigI3wn5GmIiwi8J+RqeKAjfCfkabigI3wn5GmIiwi8J+RqeKAjfCfkaciLCLwn5Gp4oCN8J+Rp+KAjfCfkaYiLCLwn5Gp4oCN8J+Rp+KAjfCfkaciLCLwn5ejIiwi8J+RpCIsIvCfkaUiLCLwn5GjIl0sYj1bIvCfkLYiLCLwn5CxIiwi8J+QrSIsIvCfkLkiLCLwn5CwIiwi8J+miiIsIvCfkLsiLCLwn5C8Iiwi8J+QqCIsIvCfkK8iLCLwn6aBIiwi8J+QriIsIvCfkLciLCLwn5C9Iiwi8J+QuCIsIvCfkLUiLCLwn5mIIiwi8J+ZiSIsIvCfmYoiLCLwn5CSIiwi8J+QlCIsIvCfkKciLCLwn5CmIiwi8J+QpCIsIvCfkKMiLCLwn5ClIiwi8J+mhiIsIvCfpoUiLCLwn6aJIiwi8J+mhyIsIvCfkLoiLCLwn5CXIiwi8J+QtCIsIvCfpoQiLCLwn5CdIiwi8J+QmyIsIvCfposiLCLwn5CMIiwi8J+QniIsIvCfkJwiLCLwn6afIiwi8J+mlyIsIvCflbciLCLwn5W4Iiwi8J+mgiIsIvCfkKIiLCLwn5CNIiwi8J+mjiIsIvCfppYiLCLwn6aVIiwi8J+QmSIsIvCfppEiLCLwn6aQIiwi8J+mniIsIvCfpoAiLCLwn5ChIiwi8J+QoCIsIvCfkJ8iLCLwn5CsIiwi8J+QsyIsIvCfkIsiLCLwn6aIIiwi8J+QiiIsIvCfkIUiLCLwn5CGIiwi8J+mkyIsIvCfpo0iLCLwn6anIiwi8J+QmCIsIvCfppsiLCLwn6aPIiwi8J+QqiIsIvCfkKsiLCLwn6aSIiwi8J+mmCIsIvCfkIMiLCLwn5CCIiwi8J+QhCIsIvCfkI4iLCLwn5CWIiwi8J+QjyIsIvCfkJEiLCLwn6aZIiwi8J+QkCIsIvCfpowiLCLwn5CVIiwi8J+QqSIsIvCfpq4iLCLwn5CV4oCN8J+muiIsIvCfkIgiLCLwn5CTIiwi8J+mgyIsIvCfppoiLCLwn6acIiwi8J+moiIsIvCfpqkiLCLwn5WKIiwi8J+QhyIsIvCfpp0iLCLwn6aoIiwi8J+moSIsIvCfpqYiLCLwn6alIiwi8J+QgSIsIvCfkIAiLCLwn5C/Iiwi8J+mlCIsIvCfkL4iLCLwn5CJIiwi8J+QsiIsIvCfjLUiLCLwn46EIiwi8J+MsiIsIvCfjLMiLCLwn4y0Iiwi8J+MsSIsIvCfjL8iLCLimJjvuI8iLCLwn42AIiwi8J+OjSIsIvCfjosiLCLwn42DIiwi8J+NgiIsIvCfjYEiLCLwn42EIiwi8J+QmiIsIvCfjL4iLCLwn5KQIiwi8J+MtyIsIvCfjLkiLCLwn6WAIiwi8J+MuiIsIvCfjLgiLCLwn4y8Iiwi8J+MuyIsIvCfjJ4iLCLwn4ydIiwi8J+MmyIsIvCfjJwiLCLwn4yaIiwi8J+MlSIsIvCfjJYiLCLwn4yXIiwi8J+MmCIsIvCfjJEiLCLwn4ySIiwi8J+MkyIsIvCfjJQiLCLwn4yZIiwi8J+MjiIsIvCfjI0iLCLwn4yPIiwi8J+qkCIsIvCfkqsiLCLirZDvuI8iLCLwn4yfIiwi4pyoIiwi4pqh77iPIiwi4piE77iPIiwi8J+SpSIsIvCflKUiLCLwn4yqIiwi8J+MiCIsIuKYgO+4jyIsIvCfjKQiLCLim4XvuI8iLCLwn4ylIiwi4piB77iPIiwi8J+MpiIsIvCfjKciLCLim4giLCLwn4ypIiwi8J+MqCIsIuKdhO+4jyIsIuKYg++4jyIsIuKbhO+4jyIsIvCfjKwiLCLwn5KoIiwi8J+SpyIsIvCfkqYiLCLimJTvuI8iLCLwn4yKIiwi8J+MqyJdLHk9WyLwn42PIiwi8J+NjiIsIvCfjZAiLCLwn42KIiwi8J+NiyIsIvCfjYwiLCLwn42JIiwi8J+NhyIsIvCfjZMiLCLwn42IIiwi8J+NkiIsIvCfjZEiLCLwn6WtIiwi8J+NjSIsIvCfpaUiLCLwn6WdIiwi8J+NhSIsIvCfjYYiLCLwn6WRIiwi8J+lpiIsIvCfpawiLCLwn6WSIiwi8J+MtiIsIvCfjL0iLCLwn6WVIiwi8J+nhCIsIvCfp4UiLCLwn6WUIiwi8J+NoCIsIvCfpZAiLCLwn6WvIiwi8J+NniIsIvCfpZYiLCLwn6WoIiwi8J+ngCIsIvCfpZoiLCLwn42zIiwi8J+niCIsIvCfpZ4iLCLwn6eHIiwi8J+lkyIsIvCfpakiLCLwn42XIiwi8J+NliIsIvCfjK0iLCLwn42UIiwi8J+NnyIsIvCfjZUiLCLwn6WqIiwi8J+lmSIsIvCfp4YiLCLwn4yuIiwi8J+MryIsIvCfpZciLCLwn6WYIiwi8J+lqyIsIvCfjZ0iLCLwn42cIiwi8J+NsiIsIvCfjZsiLCLwn42jIiwi8J+NsSIsIvCfpZ8iLCLwn6aqIiwi8J+NpCIsIvCfjZkiLCLwn42aIiwi8J+NmCIsIvCfjaUiLCLwn6WgIiwi8J+lriIsIvCfjaIiLCLwn42hIiwi8J+NpyIsIvCfjagiLCLwn42mIiwi8J+lpyIsIvCfp4EiLCLwn42wIiwi8J+OgiIsIvCfja4iLCLwn42tIiwi8J+NrCIsIvCfjasiLCLwn42/Iiwi8J+NqSIsIvCfjaoiLCLwn4ywIiwi8J+lnCIsIvCfja8iLCLwn6WbIiwi8J+NvCIsIuKYle+4jyIsIvCfjbUiLCLwn6eDIiwi8J+lpCIsIvCfjbYiLCLwn426Iiwi8J+NuyIsIvCfpYIiLCLwn423Iiwi8J+lgyIsIvCfjbgiLCLwn425Iiwi8J+niSIsIvCfjb4iLCLwn6eKIiwi8J+lhCIsIvCfjbQiLCLwn429Iiwi8J+loyIsIvCfpaEiLCLwn6WiIiwi8J+ngiJdLEU9WyLimr3vuI8iLCLwn4+AIiwi8J+PiCIsIuKavu+4jyIsIvCfpY4iLCLwn46+Iiwi8J+PkCIsIvCfj4kiLCLwn6WPIiwi8J+OsSIsIvCfqoAiLCLwn4+TIiwi8J+PuCIsIvCfj5IiLCLwn4+RIiwi8J+ljSIsIvCfj48iLCLwn6WFIiwi4puz77iPIiwi8J+qgSIsIvCfj7kiLCLwn46jIiwi8J+kvyIsIvCfpYoiLCLwn6WLIiwi8J+OvSIsIvCfm7kiLCLwn5u3Iiwi4pu4Iiwi8J+ljCIsIvCfjr8iLCLim7ciLCLwn4+CIiwi8J+qgiIsIvCfj4vvuI8iLCLwn4+L77iP4oCN4pmC77iPIiwi8J+Pi++4j+KAjeKZgO+4jyIsIvCfpLwiLCLwn6S84oCN4pmC77iPIiwi8J+kvOKAjeKZgO+4jyIsIvCfpLjigI3imYDvuI8iLCLwn6S4Iiwi8J+kuOKAjeKZgu+4jyIsIuKbue+4jyIsIuKbue+4j+KAjeKZgu+4jyIsIuKbue+4j+KAjeKZgO+4jyIsIvCfpLoiLCLwn6S+Iiwi8J+kvuKAjeKZgu+4jyIsIvCfpL7igI3imYDvuI8iLCLwn4+M77iPIiwi8J+PjO+4j+KAjeKZgu+4jyIsIvCfj4zvuI/igI3imYDvuI8iLCLwn4+HIiwi8J+nmCIsIvCfp5jigI3imYLvuI8iLCLwn6eY4oCN4pmA77iPIiwi8J+PhCIsIvCfj4TigI3imYLvuI8iLCLwn4+E4oCN4pmA77iPIiwi8J+PiiIsIvCfj4rigI3imYLvuI8iLCLwn4+K4oCN4pmA77iPIiwi8J+kvSIsIvCfpL3igI3imYLvuI8iLCLwn6S94oCN4pmA77iPIiwi8J+aoyIsIvCfmqPigI3imYLvuI8iLCLwn5qj4oCN4pmA77iPIiwi8J+nlyIsIvCfp5figI3imYLvuI8iLCLwn6eX4oCN4pmA77iPIiwi8J+atSIsIvCfmrXigI3imYLvuI8iLCLwn5q14oCN4pmA77iPIiwi8J+atCIsIvCfmrTigI3imYLvuI8iLCLwn5q04oCN4pmA77iPIiwi8J+PhiIsIvCfpYciLCLwn6WIIiwi8J+liSIsIvCfj4UiLCLwn46WIiwi8J+PtSIsIvCfjpciLCLwn46rIiwi8J+OnyIsIvCfjqoiLCLwn6S5Iiwi8J+kueKAjeKZgu+4jyIsIvCfpLnigI3imYDvuI8iLCLwn46tIiwi8J+OqCIsIvCfjqwiLCLwn46kIiwi8J+OpyIsIvCfjrwiLCLwn465Iiwi8J+lgSIsIvCfjrciLCLwn466Iiwi8J+OuCIsIvCfqpUiLCLwn467Iiwi8J+OsiIsIvCfjq8iLCLwn46zIiwi8J+OriIsIvCfjrAiLCLwn6epIl0sVD1bIvCfmpciLCLwn5qVIiwi8J+amSIsIvCfmowiLCLwn5qOIiwi8J+PjiIsIvCfmpMiLCLwn5qRIiwi8J+akiIsIvCfmpAiLCLwn5qaIiwi8J+amyIsIvCfmpwiLCLwn6avIiwi8J+mvSIsIvCfprwiLCLwn5u0Iiwi8J+asiIsIvCfm7UiLCLwn4+NIiwi8J+buiIsIvCfmqgiLCLwn5qUIiwi8J+ajSIsIvCfmpgiLCLwn5qWIiwi8J+aoSIsIvCfmqAiLCLwn5qfIiwi8J+agyIsIvCfmosiLCLwn5qeIiwi8J+anSIsIvCfmoQiLCLwn5qFIiwi8J+aiCIsIvCfmoIiLCLwn5qGIiwi8J+ahyIsIvCfmooiLCLwn5qJIiwi4pyI77iPIiwi8J+bqyIsIvCfm6wiLCLwn5upIiwi8J+SuiIsIvCfm7AiLCLwn5qAIiwi8J+buCIsIvCfmoEiLCLwn5u2Iiwi4pu177iPIiwi8J+apCIsIvCfm6UiLCLwn5uzIiwi4pu0Iiwi8J+aoiIsIuKak++4jyIsIuKbve+4jyIsIvCfmqciLCLwn5qmIiwi8J+apSIsIvCfmo8iLCLwn5e6Iiwi8J+XvyIsIvCfl70iLCLwn5e8Iiwi8J+PsCIsIvCfj68iLCLwn4+fIiwi8J+OoSIsIvCfjqIiLCLwn46gIiwi4puy77iPIiwi4puxIiwi8J+PliIsIvCfj50iLCLwn4+cIiwi8J+MiyIsIuKbsCIsIvCfj5QiLCLwn5e7Iiwi8J+PlSIsIuKbuu+4jyIsIvCfj6AiLCLwn4+hIiwi8J+PmCIsIvCfj5oiLCLwn4+XIiwi8J+PrSIsIvCfj6IiLCLwn4+sIiwi8J+PoyIsIvCfj6QiLCLwn4+lIiwi8J+PpiIsIvCfj6giLCLwn4+qIiwi8J+PqyIsIvCfj6kiLCLwn5KSIiwi8J+PmyIsIuKbqu+4jyIsIvCflYwiLCLwn5WNIiwi8J+blSIsIvCflYsiLCLim6kiLCLwn5ukIiwi8J+boyIsIvCfl74iLCLwn46RIiwi8J+PniIsIvCfjIUiLCLwn4yEIiwi8J+MoCIsIvCfjociLCLwn46GIiwi8J+MhyIsIvCfjIYiLCLwn4+ZIiwi8J+MgyIsIvCfjIwiLCLwn4yJIiwi8J+MgSJdLHg9WyLijJrvuI8iLCLwn5OxIiwi8J+TsiIsIvCfkrsiLCLijKjvuI8iLCLwn5alIiwi8J+WqCIsIvCflrEiLCLwn5ayIiwi8J+VuSIsIvCfl5wiLCLwn5K9Iiwi8J+SviIsIvCfkr8iLCLwn5OAIiwi8J+TvCIsIvCfk7ciLCLwn5O4Iiwi8J+TuSIsIvCfjqUiLCLwn5O9Iiwi8J+OniIsIvCfk54iLCLimI7vuI8iLCLwn5OfIiwi8J+ToCIsIvCfk7oiLCLwn5O7Iiwi8J+OmSIsIvCfjpoiLCLwn46bIiwi8J+nrSIsIuKPsSIsIuKPsiIsIuKPsCIsIvCflbAiLCLijJvvuI8iLCLij7MiLCLwn5OhIiwi8J+UiyIsIvCflIwiLCLwn5KhIiwi8J+UpiIsIvCfla8iLCLwn6qUIiwi8J+nryIsIvCfm6IiLCLwn5K4Iiwi8J+StSIsIvCfkrQiLCLwn5K2Iiwi8J+StyIsIvCfkrAiLCLwn5KzIiwi8J+SjiIsIuKalu+4jyIsIvCfp7AiLCLwn5SnIiwi8J+UqCIsIuKakiIsIvCfm6AiLCLim48iLCLwn5SpIiwi4pqZ77iPIiwi8J+nsSIsIuKbkyIsIvCfp7IiLCLwn5SrIiwi8J+SoyIsIvCfp6giLCLwn6qTIiwi8J+UqiIsIvCfl6EiLCLimpTvuI8iLCLwn5uhIiwi8J+arCIsIuKasO+4jyIsIuKase+4jyIsIvCfj7oiLCLwn5SuIiwi8J+TvyIsIvCfp78iLCLwn5KIIiwi4pqX77iPIiwi8J+UrSIsIvCflKwiLCLwn5WzIiwi8J+puSIsIvCfqboiLCLwn5KKIiwi8J+SiSIsIvCfp6wiLCLwn6agIiwi8J+nqyIsIvCfp6oiLCLwn4yhIiwi8J+nuSIsIvCfp7oiLCLwn6e7Iiwi8J+avSIsIvCfmrAiLCLwn5q/Iiwi8J+bgSIsIvCfm4AiLCLwn6e8Iiwi8J+qkiIsIvCfp70iLCLwn6e0Iiwi8J+bjiIsIvCflJEiLCLwn5edIiwi8J+aqiIsIvCfqpEiLCLwn5uLIiwi8J+bjyIsIvCfm4wiLCLwn6e4Iiwi8J+WvCIsIvCfm40iLCLwn5uSIiwi8J+OgSIsIvCfjogiLCLwn46PIiwi8J+OgCIsIvCfjooiLCLwn46JIiwi8J+OjiIsIvCfj64iLCLwn46QIiwi8J+npyIsIuKcie+4jyIsIvCfk6kiLCLwn5OoIiwi8J+TpyIsIvCfkowiLCLwn5OlIiwi8J+TpCIsIvCfk6YiLCLwn4+3Iiwi8J+TqiIsIvCfk6siLCLwn5OsIiwi8J+TrSIsIvCfk64iLCLwn5OvIiwi8J+TnCIsIvCfk4MiLCLwn5OEIiwi8J+TkSIsIvCfp74iLCLwn5OKIiwi8J+TiCIsIvCfk4kiLCLwn5eSIiwi8J+XkyIsIvCfk4YiLCLwn5OFIiwi8J+XkSIsIvCfk4ciLCLwn5eDIiwi8J+XsyIsIvCfl4QiLCLwn5OLIiwi8J+TgSIsIvCfk4IiLCLwn5eCIiwi8J+XniIsIvCfk7AiLCLwn5OTIiwi8J+TlCIsIvCfk5IiLCLwn5OVIiwi8J+TlyIsIvCfk5giLCLwn5OZIiwi8J+TmiIsIvCfk5YiLCLwn5SWIiwi8J+ntyIsIvCflJciLCLwn5OOIiwi8J+WhyIsIvCfk5AiLCLwn5OPIiwi8J+nriIsIvCfk4wiLCLwn5ONIiwi4pyC77iPIiwi8J+WiiIsIvCflosiLCLinJLvuI8iLCLwn5aMIiwi8J+WjSIsIvCfk50iLCLinI/vuI8iLCLwn5SNIiwi8J+UjiIsIvCflI8iLCLwn5SQIiwi8J+UkiIsIvCflJMiLCLwn6ezIiwi8J+MgiIsIuKYgu+4jyIsIvCfp7UiLCLwn6e2Iiwi8J+RkyIsIvCflbYiLCLwn6W9Iiwi8J+lvCIsIvCfproiLCLwn5GUIiwi8J+RlSIsIvCfkZYiLCLwn6ejIiwi8J+npCIsIvCfp6UiLCLwn6emIiwi8J+RlyIsIvCfkZgiLCLwn6W7Iiwi8J+psSIsIvCfqbIiLCLwn6mzIiwi8J+RmSIsIvCfkZoiLCLwn5GbIiwi8J+RnCIsIvCfkZ0iLCLwn46SIiwi8J+RniIsIvCfkZ8iLCLwn6W+Iiwi8J+lvyIsIvCfkaAiLCLwn5GhIiwi8J+psCIsIvCfkaIiLCLwn5GRIiwi8J+RkiIsIvCfjqkiLCLwn46TIiwi8J+noiIsIuKbkSIsIvCfkoQiLCLwn5KNIiwi8J+SvCJdLEk9WyLinaTvuI8iLCLwn6ehIiwi8J+SmyIsIvCfkpoiLCLwn5KZIiwi8J+SnCIsIvCflqQiLCLwn6SNIiwi8J+kjiIsIvCfkpQiLCLinaPvuI8iLCLwn5KVIiwi8J+SniIsIvCfkpMiLCLwn5KXIiwi8J+SliIsIvCfkpgiLCLwn5KdIiwi8J+SnyIsIuKYru+4jyIsIuKcne+4jyIsIuKYqu+4jyIsIvCflYkiLCLimLjvuI8iLCLinKHvuI8iLCLwn5SvIiwi8J+VjiIsIuKYr++4jyIsIuKYpu+4jyIsIvCfm5AiLCLim44iLCLimYjvuI8iLCLimYnvuI8iLCLimYrvuI8iLCLimYvvuI8iLCLimYzvuI8iLCLimY3vuI8iLCLimY7vuI8iLCLimY/vuI8iLCLimZDvuI8iLCLimZHvuI8iLCLimZLvuI8iLCLimZPvuI8iLCLwn4aUIiwi4pqb77iPIiwi8J+JkSIsIuKYou+4jyIsIuKYo++4jyIsIvCfk7QiLCLwn5OzIiwi8J+ItiIsIvCfiJrvuI8iLCLwn4i4Iiwi8J+IuiIsIvCfiLfvuI8iLCLinLTvuI8iLCLwn4aaIiwi8J+SriIsIvCfiZAiLCLjipnvuI8iLCLjipfvuI8iLCLwn4i0Iiwi8J+ItSIsIvCfiLkiLCLwn4iyIiwi8J+FsO+4jyIsIvCfhbHvuI8iLCLwn4aOIiwi8J+GkSIsIvCfhb7vuI8iLCLwn4aYIiwi4p2MIiwi4q2V77iPIiwi8J+bkSIsIuKblO+4jyIsIvCfk5siLCLwn5qrIiwi8J+SryIsIvCfkqIiLCLimajvuI8iLCLwn5q3Iiwi8J+aryIsIvCfmrMiLCLwn5qxIiwi8J+UniIsIvCfk7UiLCLwn5qtIiwi4p2X77iPIiwi4p2VIiwi4p2TIiwi4p2UIiwi4oC877iPIiwi4oGJ77iPIiwi8J+UhSIsIvCflIYiLCLjgL3vuI8iLCLimqDvuI8iLCLwn5q4Iiwi8J+UsSIsIuKanO+4jyIsIvCflLAiLCLimbvvuI8iLCLinIUiLCLwn4iv77iPIiwi8J+SuSIsIuKdh++4jyIsIuKcs++4jyIsIuKdjiIsIvCfjJAiLCLwn5KgIiwi4pOC77iPIiwi8J+MgCIsIvCfkqQiLCLwn4+nIiwi8J+aviIsIuKZv++4jyIsIvCfhb/vuI8iLCLwn4izIiwi8J+Igu+4jyIsIvCfm4IiLCLwn5uDIiwi8J+bhCIsIvCfm4UiLCLwn5q5Iiwi8J+auiIsIvCfmrwiLCLwn5q7Iiwi8J+ariIsIvCfjqYiLCLwn5O2Iiwi8J+IgSIsIvCflKMiLCLihLnvuI8iLCLwn5SkIiwi8J+UoSIsIvCflKAiLCLwn4aWIiwi8J+GlyIsIvCfhpkiLCLwn4aSIiwi8J+GlSIsIvCfhpMiLCIw77iP4oOjIiwiMe+4j+KDoyIsIjLvuI/ig6MiLCIz77iP4oOjIiwiNO+4j+KDoyIsIjXvuI/ig6MiLCI277iP4oOjIiwiN++4j+KDoyIsIjjvuI/ig6MiLCI577iP4oOjIiwi8J+UnyIsIvCflKIiLCIj77iP4oOjIiwiKu+4j+KDoyIsIuKPj++4jyIsIuKWtu+4jyIsIuKPuCIsIuKPryIsIuKPuSIsIuKPuiIsIuKPrSIsIuKPriIsIuKPqSIsIuKPqiIsIuKPqyIsIuKPrCIsIuKXgO+4jyIsIvCflLwiLCLwn5S9Iiwi4p6h77iPIiwi4qyF77iPIiwi4qyG77iPIiwi4qyH77iPIiwi4oaX77iPIiwi4oaY77iPIiwi4oaZ77iPIiwi4oaW77iPIiwi4oaV77iPIiwi4oaU77iPIiwi4oaq77iPIiwi4oap77iPIiwi4qS077iPIiwi4qS177iPIiwi8J+UgCIsIvCflIEiLCLwn5SCIiwi8J+UhCIsIvCflIMiLCLwn461Iiwi8J+OtiIsIuKelSIsIuKeliIsIuKelyIsIuKclu+4jyIsIuKZviIsIvCfkrIiLCLwn5KxIiwi4oSi77iPIiwiwqnvuI8iLCLCru+4jyIsIuOAsO+4jyIsIuKesCIsIuKevyIsIvCflJoiLCLwn5SZIiwi8J+UmyIsIvCflJ0iLCLwn5ScIiwi4pyU77iPIiwi4piR77iPIiwi8J+UmCIsIvCflLQiLCLwn5+gIiwi8J+foSIsIvCfn6IiLCLwn5S1Iiwi8J+foyIsIuKaq++4jyIsIuKaqu+4jyIsIvCfn6QiLCLwn5S6Iiwi8J+UuyIsIvCflLgiLCLwn5S5Iiwi8J+UtiIsIvCflLciLCLwn5SzIiwi8J+UsiIsIuKWqu+4jyIsIuKWq++4jyIsIuKXvu+4jyIsIuKXve+4jyIsIuKXvO+4jyIsIuKXu++4jyIsIvCfn6UiLCLwn5+nIiwi8J+fqCIsIvCfn6kiLCLwn5+mIiwi8J+fqiIsIuKsm++4jyIsIuKsnO+4jyIsIvCfn6siLCLwn5SIIiwi8J+UhyIsIvCflIkiLCLwn5SKIiwi8J+UlCIsIvCflJUiLCLwn5OjIiwi8J+ToiIsIvCfkYHigI3wn5eoIiwi8J+SrCIsIvCfkq0iLCLwn5evIiwi4pmg77iPIiwi4pmj77iPIiwi4pml77iPIiwi4pmm77iPIiwi8J+DjyIsIvCfjrQiLCLwn4CE77iPIiwi8J+VkCIsIvCflZEiLCLwn5WSIiwi8J+VkyIsIvCflZQiLCLwn5WVIiwi8J+VliIsIvCflZciLCLwn5WYIiwi8J+VmSIsIvCflZoiLCLwn5WbIiwi8J+VnCIsIvCflZ0iLCLwn5WeIiwi8J+VnyIsIvCflaAiLCLwn5WhIiwi8J+VoiIsIvCflaMiLCLwn5WkIiwi8J+VpSIsIvCflaYiLCLwn5WnIl0sQz1bIvCfj7PvuI8iLCLwn4+0Iiwi8J+PgSIsIvCfmqkiLCLwn4+z77iP4oCN8J+MiCIsIvCfj7TigI3imKDvuI8iLCLwn4em8J+HqyIsIvCfh6bwn4e9Iiwi8J+HpvCfh7EiLCLwn4ep8J+HvyIsIvCfh6bwn4e4Iiwi8J+HpvCfh6kiLCLwn4em8J+HtCIsIvCfh6bwn4euIiwi8J+HpvCfh7YiLCLwn4em8J+HrCIsIvCfh6bwn4e3Iiwi8J+HpvCfh7IiLCLwn4em8J+HvCIsIvCfh6bwn4e6Iiwi8J+HpvCfh7kiLCLwn4em8J+HvyIsIvCfh6fwn4e4Iiwi8J+Hp/Cfh60iLCLwn4en8J+HqSIsIvCfh6fwn4enIiwi8J+Hp/Cfh74iLCLwn4en8J+HqiIsIvCfh6fwn4e/Iiwi8J+Hp/Cfh68iLCLwn4en8J+HsiIsIvCfh6fwn4e5Iiwi8J+Hp/Cfh7QiLCLwn4en8J+HpiIsIvCfh6fwn4e8Iiwi8J+Hp/Cfh7ciLCLwn4eu8J+HtCIsIvCfh7vwn4esIiwi8J+Hp/Cfh7MiLCLwn4en8J+HrCIsIvCfh6fwn4erIiwi8J+Hp/Cfh64iLCLwn4ew8J+HrSIsIvCfh6jwn4eyIiwi8J+HqPCfh6YiLCLwn4eu8J+HqCIsIvCfh6jwn4e7Iiwi8J+Hp/Cfh7YiLCLwn4ew8J+HviIsIvCfh6jwn4erIiwi8J+HufCfh6kiLCLwn4eo8J+HsSIsIvCfh6jwn4ezIiwi8J+HqPCfh70iLCLwn4eo8J+HqCIsIvCfh6jwn4e0Iiwi8J+HsPCfh7IiLCLwn4eo8J+HrCIsIvCfh6jwn4epIiwi8J+HqPCfh7AiLCLwn4eo8J+HtyIsIvCfh6jwn4euIiwi8J+HrfCfh7ciLCLwn4eo8J+HuiIsIvCfh6jwn4e8Iiwi8J+HqPCfh74iLCLwn4eo8J+HvyIsIvCfh6nwn4ewIiwi8J+HqfCfh68iLCLwn4ep8J+HsiIsIvCfh6nwn4e0Iiwi8J+HqvCfh6giLCLwn4eq8J+HrCIsIvCfh7jwn4e7Iiwi8J+HrPCfh7YiLCLwn4eq8J+HtyIsIvCfh6rwn4eqIiwi8J+HqvCfh7kiLCLwn4eq8J+HuiIsIvCfh6vwn4ewIiwi8J+Hq/Cfh7QiLCLwn4er8J+HryIsIvCfh6vwn4euIiwi8J+Hq/Cfh7ciLCLwn4es8J+HqyIsIvCfh7Xwn4erIiwi8J+HufCfh6siLCLwn4es8J+HpiIsIvCfh6zwn4eyIiwi8J+HrPCfh6oiLCLwn4ep8J+HqiIsIvCfh6zwn4etIiwi8J+HrPCfh64iLCLwn4es8J+HtyIsIvCfh6zwn4exIiwi8J+HrPCfh6kiLCLwn4es8J+HtSIsIvCfh6zwn4e6Iiwi8J+HrPCfh7kiLCLwn4es8J+HrCIsIvCfh6zwn4ezIiwi8J+HrPCfh7wiLCLwn4es8J+HviIsIvCfh63wn4e5Iiwi8J+HrfCfh7MiLCLwn4et8J+HsCIsIvCfh63wn4e6Iiwi8J+HrvCfh7giLCLwn4eu8J+HsyIsIvCfh67wn4epIiwi8J+HrvCfh7ciLCLwn4eu8J+HtiIsIvCfh67wn4eqIiwi8J+HrvCfh7IiLCLwn4eu8J+HsSIsIvCfh67wn4e5Iiwi8J+Hr/Cfh7IiLCLwn4ev8J+HtSIsIvCfjowiLCLwn4ev8J+HqiIsIvCfh6/wn4e0Iiwi8J+HsPCfh78iLCLwn4ew8J+HqiIsIvCfh7Dwn4euIiwi8J+HvfCfh7AiLCLwn4ew8J+HvCIsIvCfh7Dwn4esIiwi8J+HsfCfh6YiLCLwn4ex8J+HuyIsIvCfh7Hwn4enIiwi8J+HsfCfh7giLCLwn4ex8J+HtyIsIvCfh7Hwn4e+Iiwi8J+HsfCfh64iLCLwn4ex8J+HuSIsIvCfh7Hwn4e6Iiwi8J+HsvCfh7QiLCLwn4ey8J+HsCIsIvCfh7Lwn4esIiwi8J+HsvCfh7wiLCLwn4ey8J+HviIsIvCfh7Lwn4e7Iiwi8J+HsvCfh7EiLCLwn4ey8J+HuSIsIvCfh7Lwn4etIiwi8J+HsvCfh7YiLCLwn4ey8J+HtyIsIvCfh7Lwn4e6Iiwi8J+HvvCfh7kiLCLwn4ey8J+HvSIsIvCfh6vwn4eyIiwi8J+HsvCfh6kiLCLwn4ey8J+HqCIsIvCfh7Lwn4ezIiwi8J+HsvCfh6oiLCLwn4ey8J+HuCIsIvCfh7Lwn4emIiwi8J+HsvCfh78iLCLwn4ey8J+HsiIsIvCfh7Pwn4emIiwi8J+Hs/Cfh7ciLCLwn4ez8J+HtSIsIvCfh7Pwn4exIiwi8J+Hs/Cfh6giLCLwn4ez8J+HvyIsIvCfh7Pwn4euIiwi8J+Hs/Cfh6oiLCLwn4ez8J+HrCIsIvCfh7Pwn4e6Iiwi8J+Hs/Cfh6siLCLwn4ew8J+HtSIsIvCfh7Lwn4e1Iiwi8J+Hs/Cfh7QiLCLwn4e08J+HsiIsIvCfh7Xwn4ewIiwi8J+HtfCfh7wiLCLwn4e18J+HuCIsIvCfh7Xwn4emIiwi8J+HtfCfh6wiLCLwn4e18J+HviIsIvCfh7Xwn4eqIiwi8J+HtfCfh60iLCLwn4e18J+HsyIsIvCfh7Xwn4exIiwi8J+HtfCfh7kiLCLwn4e18J+HtyIsIvCfh7bwn4emIiwi8J+Ht/Cfh6oiLCLwn4e38J+HtCIsIvCfh7fwn4e6Iiwi8J+Ht/Cfh7wiLCLwn4e88J+HuCIsIvCfh7jwn4eyIiwi8J+HuPCfh6YiLCLwn4e48J+HsyIsIvCfh7fwn4e4Iiwi8J+HuPCfh6giLCLwn4e48J+HsSIsIvCfh7jwn4esIiwi8J+HuPCfh70iLCLwn4e48J+HsCIsIvCfh7jwn4euIiwi8J+HrPCfh7giLCLwn4e48J+HpyIsIvCfh7jwn4e0Iiwi8J+Hv/Cfh6YiLCLwn4ew8J+HtyIsIvCfh7jwn4e4Iiwi8J+HqvCfh7giLCLwn4ex8J+HsCIsIvCfh6fwn4exIiwi8J+HuPCfh60iLCLwn4ew8J+HsyIsIvCfh7Hwn4eoIiwi8J+HtfCfh7IiLCLwn4e78J+HqCIsIvCfh7jwn4epIiwi8J+HuPCfh7ciLCLwn4e48J+HvyIsIvCfh7jwn4eqIiwi8J+HqPCfh60iLCLwn4e48J+HviIsIvCfh7nwn4e8Iiwi8J+HufCfh68iLCLwn4e58J+HvyIsIvCfh7nwn4etIiwi8J+HufCfh7EiLCLwn4e58J+HrCIsIvCfh7nwn4ewIiwi8J+HufCfh7QiLCLwn4e58J+HuSIsIvCfh7nwn4ezIiwi8J+HufCfh7ciLCLwn4e58J+HsiIsIvCfh7nwn4eoIiwi8J+HufCfh7siLCLwn4e78J+HriIsIvCfh7rwn4esIiwi8J+HuvCfh6YiLCLwn4em8J+HqiIsIvCfh6zwn4enIiwi8J+PtPOggafzoIGi86CBpfOgga7zoIGn86CBvyIsIvCfj7TzoIGn86CBovOggbPzoIGj86CBtPOggb8iLCLwn4+086CBp/OggaLzoIG386CBrPOggbPzoIG/Iiwi8J+HuvCfh7MiLCLwn4e68J+HuCIsIvCfh7rwn4e+Iiwi8J+HuvCfh78iLCLwn4e78J+HuiIsIvCfh7vwn4emIiwi8J+Hu/Cfh6oiLCLwn4e78J+HsyIsIvCfh7zwn4erIiwi8J+HqvCfh60iLCLwn4e+8J+HqiIsIvCfh7/wn4eyIiwi8J+Hv/Cfh7wiXSxTPVsuLi53LC4uLmIsLi4ueSwuLi5FLC4uLlQsLi4ueCwuLi5JLC4uLkNdLGs9bmV3IFNldChTKQo7ZnVuY3Rpb24gXyhlKXtyZXR1cm4gZS5maWx0ZXIoKGU9PmsuaGFzKGUpKSl9ZnVuY3Rpb24gTShlKXtyZXR1cm4gay5oYXMoZSl9Y29uc3QgTj0oMCxyLmRlZmF1bHQpKChlPT57Y29uc3QgdD0oMCxpLmdldEZpcnN0U2VnbWVudE9yQ29kZVBvaW50U3RyaW5nKShlKSxuPW51bGwhPT10JiZNKHQpP3Q6IiI7cmV0dXJue2Vtb2ppOm4sZW1vamlMZXNzU3RyaW5nOmUucmVwbGFjZShuLCIiKX19KSk7ZnVuY3Rpb24geihlLHQsLi4ubil7Y29uc3QgYT1OKCgwLGwuZW5zdXJlTm90TnVsbCkoZSkpLmVtb2ppTGVzc1N0cmluZy50cmltKCksbz1OKCgwLGwuZW5zdXJlTm90TnVsbCkodCkpLmVtb2ppTGVzc1N0cmluZy50cmltKCk7cmV0dXJuIGE9PT1vP2UubG9jYWxlQ29tcGFyZSh0LC4uLm4pOmEubG9jYWxlQ29tcGFyZShvLC4uLm4pfWNvbnN0IEw9KCk9Plt7dGl0bGU6by50KG51bGwse2NvbnRleHQ6ImVtb2ppX2dyb3VwIn0sbig0NjU0NTYpKSxlbW9qaXM6W10sY29udGVudDphLmNyZWF0ZUVsZW1lbnQocy5JY29uSXRlbSx7aWNvbjpjfSl9LHt0aXRsZTpvLnQobnVsbCx7Y29udGV4dDoiZW1vamlfZ3JvdXAifSxuKDMwNjA3MCkpLGVtb2ppczp3LGNvbnRlbnQ6YS5jcmVhdGVFbGVtZW50KHMuSWNvbkl0ZW0se2ljb246ZH0pfSx7dGl0bGU6by50KG51bGwse2NvbnRleHQ6ImVtb2ppX2dyb3VwIn0sbig2Njg0NDkpKSxlbW9qaXM6Yixjb250ZW50OmEuY3JlYXRlRWxlbWVudChzLkljb25JdGVtLHtpY29uOm19KX0se3RpdGxlOm8udChudWxsLHtjb250ZXh0OiJlbW9qaV9ncm91cCJ9LG4oMTQ3NTAwKSksZW1vamlzOnksY29udGVudDphLmNyZWF0ZUVsZW1lbnQocy5JY29uSXRlbSx7aWNvbjp1fSl9LHt0aXRsZTpvLnQobnVsbCx7Y29udGV4dDoiZW1vamlfZ3JvdXAifSxuKDU3NDcxNSkpLGVtb2ppczpFLGNvbnRlbnQ6YS5jcmVhdGVFbGVtZW50KHMuSWNvbkl0ZW0se2ljb246aH0pfSx7dGl0bGU6by50KG51bGwse2NvbnRleHQ6ImVtb2ppX2dyb3VwIn0sbigxMjMxMzgpKSxlbW9qaXM6VCxjb250ZW50OmEuY3JlYXRlRWxlbWVudChzLkljb25JdGVtLHtpY29uOnZ9KX0se3RpdGxlOm8udChudWxsLHtjb250ZXh0OiJlbW9qaV9ncm91cCJ9LG4oOTQzMzkzKSksZW1vamlzOngsY29udGVudDphLmNyZWF0ZUVsZW1lbnQocy5JY29uSXRlbSx7aWNvbjpwfSl9LHt0aXRsZTpvLnQobnVsbCx7Y29udGV4dDoiZW1vamlfZ3JvdXAifSxuKDI3NjYwOSkpLGVtb2ppczpJLGNvbnRlbnQ6YS5jcmVhdGVFbGVtZW50KHMuSWNvbkl0ZW0se2ljb246Zn0pfSx7dGl0bGU6by50KG51bGwse2NvbnRleHQ6ImVtb2ppX2dyb3VwIn0sbigxNzQxNzgpKSxlbW9qaXM6Qyxjb250ZW50OmEuY3JlYXRlRWxlbWVudChzLkljb25JdGVtLHtpY29uOmd9KX1dfSw0Mjg5MjQoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7RW1vamlJdGVtOigpPT51fSk7dmFyIGE9big3Nzk0NzQpLG89big5MTQ0ODcpLHI9bi5uKG8pLGk9bigyNzMzMTApLGw9bigxODUyNzEpLHM9bigzMzMzMTIpLGM9big0Mjc3NzMpLGQ9big0MjgwOTcpLG09big4ODk1NDYpO2Z1bmN0aW9uIHUoZSl7Y29uc3R7ZW1vamk6dCxjbGFzc05hbWU6b309ZTtpZih0PT09Yy5FTVBUWV9FTU9KSSlyZXR1cm4gYS5jcmVhdGVFbGVtZW50KGkuSWNvbix7Y2xhc3NOYW1lOnIoKShvLGQuY2xlYXJCdXR0b24sImFwcGx5LWNvbW1vbi10b29sdGlwIiksaWNvbjptLHRpdGxlOmwudChudWxsLHZvaWQgMCxuKDc1NDM4MikpfSk7Y29uc3QgdT0oMCxzLmdldFR3ZW1vamlVcmwpKHQsInBuZyIpO3JldHVybiBhLmNyZWF0ZUVsZW1lbnQoImltZyIse2NsYXNzTmFtZTpyKCkobyxkLmVtb2ppKSxzcmM6dSxkZWNvZGluZzoiYXN5bmMiLHdpZHRoOiIyNCIsaGVpZ2h0OiIyNCIsYWx0OiIiLGRyYWdnYWJsZTohMSxvbkNvbnRleHRNZW51OmZ1bmN0aW9uKGUpe2lmKGUudGFyZ2V0IGluc3RhbmNlb2YgRWxlbWVudCYmZS50YXJnZXQuY2xvc2VzdCgiYSIpKXJldHVybjtlLnByZXZlbnREZWZhdWx0KCl9fSl9fSwyNzM3MzIoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7SWNvbkl0ZW06KCk9PnN9KTt2YXIgYT1uKDc3OTQ3NCksbz1uKDkxNDQ4Nykscj1uLm4obyksaT1uKDI3MzMxMCksbD1uKDQwMjIzKTtmdW5jdGlvbiBzKGUpe3JldHVybiBhLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpyKCkobC53cmFwcGVyLGUuY2xhc3NOYW1lKX0sYS5jcmVhdGVFbGVtZW50KGkuSWNvbix7aWNvbjplLmljb259KSl9fSw0MzA4MTQoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7YmFja2VuZDooKT0+cX0pO3ZhciBhPXt9O24ucihhKSxuLmQoYSx7ZmF2b3JTdGFuZGFyZFN0dWR5VGVtcGxhdGU6KCk9Pk8sZmF2b3JTdHVkeVRlbXBsYXRlOigpPT5BLGdldENoYXJ0czooKT0+eCxnZXRDaGFydHNDb3VudDooKT0+SSxnZXREcmF3aW5nVGVtcGxhdGVzOigpPT5XLGdldFN0YW5kYXJkU3R1ZHlUZW1wbGF0ZUJ5SWQ6KCk9PkgsZ2V0U3R1ZHlUZW1wbGF0ZUJ5SWQ6KCk9PkIsZ2V0U3R1ZHlUZW1wbGF0ZXNMaXN0OigpPT56LGludmFsaWRhdGVTdHVkeVRlbXBsYXRlc0xpc3Q6KCk9PkwsbG9hZERyYXdpbmdUZW1wbGF0ZTooKT0+Rixsb2FkTGF5b3V0OigpPT5DLG9wZW5MYXlvdXRMaW5rOigpPT5TLHJlbW92ZUNoYXJ0OigpPT5NLHJlbW92ZURyYXdpbmdUZW1wbGF0ZTooKT0+SyxyZW1vdmVTdHVkeVRlbXBsYXRlOigpPT5qLHJlbmFtZVN0dWR5VGVtcGxhdGU6KCk9PlAscmVwbGFjZVN0dWR5VGVtcGxhdGU6KCk9PlUsc2F2ZUNoYXJ0OigpPT5fLHNhdmVEcmF3aW5nVGVtcGxhdGU6KCk9PlIsc2F2ZVN0dWR5VGVtcGxhdGU6KCk9PkR9KTt2YXIgbz1uKDMwNDIyMSkscj1uKDU1ODA3NSksaT1uKDIyMTA2MSksbD1uKDc4MzU5Myk7Y29uc3Qgcz0oMCxpLmdldExvZ2dlcikoIkxpYi5Bc3luY0d6aXAiKTt2YXIgYzshZnVuY3Rpb24oZSl7ZVtlLkxvYWRpbmdUaW1lb3V0PTVlM109IkxvYWRpbmdUaW1lb3V0IixlW2UuUHJvY2Vzc2luZ1RpbWVvdXQ9M2U0XT0iUHJvY2Vzc2luZ1RpbWVvdXQiLGVbZS5Xb3JrZXJQb29sTWF4U2l6ZT0xXT0iV29ya2VyUG9vbE1heFNpemUiCn0oY3x8KGM9e30pKTtjb25zdCBkPVtdO2Z1bmN0aW9uIG0oZSl7bGV0IHQ7Y29uc3QgYT1uZXcgUHJvbWlzZSgoKGEsbyk9PntsZXQgcj1zZXRUaW1lb3V0KG8sNWUzLG5ldyBFcnJvcigiTG9hZGluZyB0aW1lZCBvdXQiKSk7dD1kLnBvcCgpfHxuZXcgbC5Xb3JrZXIobmV3IFVSTChuLnArbi51KDU5NjMwKSxuLmIpLHtuYW1lOiJBc3luYyBnemlwIHdvcmtlciJ9KSx0Lm9uZXJyb3I9byx0Lm9ubWVzc2FnZWVycm9yPW8sdC5vbm1lc3NhZ2U9ZT0+e2NsZWFyVGltZW91dChyKSwiZG9uZSI9PT1lLmRhdGEudHlwZT9hKGUuZGF0YS5wYXlsb2FkKTpyPXNldFRpbWVvdXQobywzZTQsbmV3IEVycm9yKCJQcm9jZXNzaW5nIHRpbWVkIG91dCIpKX0sdC5wb3N0TWVzc2FnZSh7dHlwZToiZG8iLHBheWxvYWQ6ZX0pfSkpO3JldHVybiBhLnRoZW4oKCgpPT57ZC5sZW5ndGg8MT8oZGVsZXRlIHQub25lcnJvcixkZWxldGUgdC5vbm1lc3NhZ2UsZGVsZXRlIHQub25tZXNzYWdlZXJyb3IsZC5wdXNoKHQpKTp0LnRlcm1pbmF0ZSgpfSksKGU9PntzLmxvZ0Vycm9yKGBXb3JrZXIgcmVxdWVzdCBmYWlsZWQ6ICR7ZS5tZXNzYWdlfWApLHQudGVybWluYXRlKCl9KSksYX12YXIgdT1uKDM4NDAxNyk7ZnVuY3Rpb24gaChlKXtpZihlLm9rKXJldHVybiBlLmpzb24oKTt0aHJvdyBuZXcgRXJyb3IoIm5vdCBvayIpfWZ1bmN0aW9uIHYoZSl7aWYoZS5vaylyZXR1cm4gZS5qc29uKCk7dGhyb3cgbmV3IEVycm9yKCJub3Qgb2siKX12YXIgcD1uKDExNzMxMyksZj1uKDc0ODkxMiksZz1uKDYwNTI1Nyksdz1uKDk3NDY2MyksYj1uKDY5NDM4OSk7Y2xhc3MgeSBleHRlbmRzIEVycm9ye2NvbnN0cnVjdG9yKGUsdCl7c3VwZXIoZSksdGhpcy5zdGF0dXM9dD8uc3RhdHVzLHRoaXMuY29kZT10Py5jb2RlLHRoaXMucmVzcG9uc2U9dD8ucmVzcG9uc2V9fXZhciBFPW4oNTg5NzQ5KTtjb25zdCBUPSIvYXBpL3YxLyI7YXN5bmMgZnVuY3Rpb24geChlPW51bGwsdCl7Y29uc3Qgbj1uZXcgVVJMKCIvbXktY2hhcnRzLyIsd2luZG93LmxvY2F0aW9uLm9yaWdpbik7dm9pZCAwIT09dCYmbi5zZWFyY2hQYXJhbXMuYXBwZW5kKCJsaW1pdCIsdC50b1N0cmluZygpKTtjb25zdCBhPWF3YWl0KDAsdS5mZXRjaCkobi50b1N0cmluZygpLHttZXRob2Q6IkdFVCIsc2lnbmFsOmV9KTtpZighYS5vayl0aHJvdyBuZXcgRXJyb3IoIkdldHRpbmcgbXkgY2hhcnRzIHJlc3BvbnNlIHdhcyBub3QgT0siKTtyZXR1cm4gYS5qc29uKCl9YXN5bmMgZnVuY3Rpb24gSSgpe2NvbnN0IGU9YXdhaXQoMCx1LmZldGNoKShUKyJjaGFydHMvY291bnQvIik7aWYoIWUub2spdGhyb3cgZTtyZXR1cm4gZS5qc29uKCl9YXN5bmMgZnVuY3Rpb24gQyhlKXtjb25zdCB0PW5ldyBVUkwoYC9jaGFydC8ke2UudXJsfS9qc29uL2Asd2luZG93LmxvY2F0aW9uLm9yaWdpbiksYT1hd2FpdCgwLHUuZmV0Y2gpKHQudG9TdHJpbmcoKSx7bWV0aG9kOiJHRVQiLGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiJ9KTtpZighYS5vayl0aHJvdyBhO2xldCByO2NvbnN0IGk9YXdhaXQgYS5qc29uKCk7cmV0dXJuIHI9InVuZGVmaW5lZCIhPT1pLmNvbnRlbnQmJiJudWxsIiE9PWkuY29udGVudCYmaS5jb250ZW50P0pTT04ucGFyc2UoaS5jb250ZW50KTphd2FpdCBhc3luYyBmdW5jdGlvbigpe2NvbnN0IGU9KDAsZy5zdHVkeU1ldGFJbmZvUmVwb3NpdG9yeSkoKTthd2FpdCBlLnJlcXVlc3RNZXRhSW5mbygpO2NvbnN0W3Qse3ByZXBhcmVTdHVkeVByb3BlcnRpZXM6YX1dPWF3YWl0IFByb21pc2UuYWxsKFtlLmZpbmRCeUlkKHt0eXBlOiJqYXZhIixzdHVkeUlkOiJWb2x1bWVAdHYtYmFzaWNzdHVkaWVzIn0pLFByb21pc2UuYWxsKFtuLmUoMjE3ODQpLG4uZSgzMTAwMSksbi5lKDg2MTc4KSxuLmUoOTE5NDQpLG4uZSg5NzU1OCksbi5lKDY2OTg4KSxuLmUoOTcyNzIpLG4uZSg5MjcwKSxuLmUoODQyNjUpLG4uZSg1MzU1KSxuLmUoMTIyMjcpLG4uZSg1OTY0OSksbi5lKDQ3NTM4KV0pLnRoZW4obi5iaW5kKG4sNDM3NzQ5KSldKSxvPWEodCx7fSxudWxsLGUuc3R1ZHlWZXJzaW9uaW5nKCksW10pLHI9e21fcHJpY2VSYW5nZTpudWxsLG1faXNBdXRvU2NhbGU6ITAsbV9pc1BlcmNlbnRhZ2U6ITEsbV9pc0luZGV4ZWRUbzEwMDohMSxtX2lzTG9nOiExLG1faXNMb2NrU2NhbGU6ITEsbV9pc0ludmVydGVkOiExLG1fdG9wTWFyZ2luOi4xLG1fYm90dG9tTWFyZ2luOi4wOCxhbGlnbkxhYmVsczohMH07cmV0dXJue25hbWU6IiIsbGF5b3V0OiJzIixjaGFydHM6W3twYW5lczpbe21vZGU6Yi5QYW5lTW9kZS5SZWd1bGFyLHNvdXJjZXM6W3t0eXBlOiJNYWluU2VyaWVzIixpZDoiX3Nlcmllc0lkIix6b3JkZXI6MCxzdGF0ZTp7Li4uKG5ldyBmLlNlcmllc1Byb3BlcnRpZXNJbXBsKS5zdGF0ZSgpLHN0eWxlOjEsc3ltYm9sOiJOQVNEQVE6QUFQTCIsc2hvcnROYW1lOiJBQVBMIix0aW1lZnJhbWU6IiIsaW50ZXJ2YWw6IjFNIix1bml0SWQ6bnVsbCx0aW1lem9uZToiVVRDIixjdXJyZW5jeUlkOm51bGx9fSx7dHlwZToic3R1ZHlfVm9sdW1lIixpZDoibkFBTEdkIixzdGF0ZTpvLnN0YXRlKCksbWV0YUluZm86dC5zdGF0ZSgpfV0sbWFpblNvdXJjZUlkOiJfc2VyaWVzSWQiLHN0cmV0Y2hGYWN0b3I6MmUzLGxlZnRBeGlzZXNTdGF0ZTpbXSxyaWdodEF4aXNlc1N0YXRlOlt7c3RhdGU6e2lkOiJIOW8yemJaME5UakwiLC4uLnJ9LHNvdXJjZXM6WyJfc2VyaWVzSWQiXX1dLG92ZXJsYXlQcmljZVNjYWxlczp7bkFBTEdkOntpZDoiSDlvMnpiWjBOVGpMIiwuLi5yfX0scHJpY2VTY2FsZVJhdGlvOm51bGwsaXNDb2xsYXBzZWQ6ITEsaXNNYXhpbWl6ZWQ6ITF9XSx0aW1lU2NhbGU6e21fYmFyU3BhY2luZzo2LG1fcmlnaHRPZmZzZXQ6MTB9LGNoYXJ0UHJvcGVydGllczpuZXcgdy5EZWZhdWx0UHJvcGVydHkoe2RlZmF1bHROYW1lOiJjaGFydHByb3BlcnRpZXMifSkuc3RhdGUoKSx2ZXJzaW9uOjMsdGltZXpvbmU6IkV0Yy9VVEMiLHNob3VsZEJlU2F2ZWRFdmVuSWZIaWRkZW46ITEsbGlua2luZ0dyb3VwOm51bGwsbGluZVRvb2xzR3JvdXBzOntncm91cHM6W119LGNoYXJ0SWQ6IjEifV0sc3ltYm9sTG9jazowLAppbnRlcnZhbExvY2s6MCx0cmFja1RpbWVMb2NrOjAsZGF0ZVJhbmdlTG9jazowLGNyb3NzaGFpckxvY2s6MX19KCksImNvbnRlbnRfc3R1ZHlfbWV0YSJpbiBpJiYoMCxvLmRlZmF1bHQpKGkuY29udGVudF9zdHVkeV9tZXRhKSYmKHIuc3R1ZHlNZXRhSW5mb01hcD17Li4uci5zdHVkeU1ldGFJbmZvTWFwPz97fSwuLi5KU09OLnBhcnNlKGkuY29udGVudF9zdHVkeV9tZXRhKX0pLHtuYW1lOmkubmFtZSxjaGFydFdpZGdldENvbGxlY3Rpb25TdGF0ZTpyLHVpZDppLnVpZCxsYXN0TW9kaWZpZWQ6aS5sYXN0X21vZGlmaWVkLGlkOmkuaWQsZGVzY3JpcHRpb246aS5kZXNjcmlwdGlvbix1c2VybmFtZTppLnVzZXJuYW1lLGlzUHJpdmF0ZTppLmlzX3ByaXZhdGV9fWZ1bmN0aW9uIFMoZSx0KXtjb25zdCBuPSgwLHIuZ2VuZXJhdGVDaGFydFVybCkoe2NoYXJ0SWQ6ZS51cmx9KSxhPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImEiKTthLmhyZWY9biwhKDAscC5pc09uTW9iaWxlQXBwUGFnZSkoIm5ldyIpJiYvXlwvY2hhcnQoXC98JCkvLnRlc3QobG9jYXRpb24ucGF0aG5hbWUpJiYoYS50YXJnZXQ9dD8iX2JsYW5rIjoiX3NlbGYiLGEucmVsPSJub29wZW5lciIpLGEuY2xpY2soKX1hc3luYyBmdW5jdGlvbiBrKGUsdCl7bGV0IG4sYTt0cnl7W24sYV09YXdhaXQgUHJvbWlzZS5hbGwoW20oZS5jb250ZW50KSxlLnN0dWR5X21ldGFfaW5mb19tYXA/bShlLnN0dWR5X21ldGFfaW5mb19tYXApOlByb21pc2UucmVzb2x2ZShlLnN0dWR5X21ldGFfaW5mb19tYXApXSl9Y2F0Y2goZSl7fWNvbnN0IG89bmV3IEZvcm1EYXRhO3QudWlkJiZvLmFwcGVuZCgiaW1hZ2VfdXJsIix0LnVpZCk7Zm9yKGNvbnN0IHQgaW4gZSkiaWQiIT09dCYmKCJjb250ZW50Ij09PXQmJm4/by5hcHBlbmQodCxuZXcgQmxvYihbbl0se3R5cGU6ImFwcGxpY2F0aW9uL2d6aXAifSksImJsb2IuZ3oiKToic3R1ZHlfbWV0YV9pbmZvX21hcCI9PT10JiZhP28uYXBwZW5kKHQsbmV3IEJsb2IoW2FdLHt0eXBlOiJhcHBsaWNhdGlvbi9nemlwIn0pLCJibG9iLmd6Iik6by5hcHBlbmQodCxlW3RdKSk7dHJ5e2NvbnN0IGU9YXdhaXQoMCx1LmZldGNoKShUKyJjaGFydHMvc2F2ZS8iLHttZXRob2Q6IlBPU1QiLGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiIsYm9keTpvfSk7aWYoIWUub2spe2NvbnN0e2RldGFpbDp0LGNvZGU6bn09YXdhaXQgYXN5bmMgZnVuY3Rpb24oZSl7aWYoIWUpcmV0dXJue307aWYoIShlLmhlYWRlcnMuZ2V0KCJjb250ZW50LXR5cGUiKT8/IiIpLmluY2x1ZGVzKCJhcHBsaWNhdGlvbi9qc29uIikpcmV0dXJue307dHJ5e3JldHVybiBhd2FpdCBlLmpzb24oKX1jYXRjaChlKXtyZXR1cm57fX19KGUpO3Rocm93IG5ldyB5KHQ/P2Uuc3RhdHVzVGV4dD8/IlVua25vd24gZXJyb3IiLHtzdGF0dXM6ZS5zdGF0dXMsY29kZTpuLHJlc3BvbnNlOmV9KX1jb25zdCB0PWF3YWl0IGUuanNvbigpO3JldHVybntyZXN1bHQ6e2lkOnQuaWQsaW1hZ2VfdXJsOnQuaW1hZ2VfdXJsP3QuaW1hZ2VfdXJsOnZvaWQgMCxsYXN0TW9kaWZpZWQ6dC5sYXN0X21vZGlmaWVkfSxyZXNwb25zZTplfX1jYXRjaChlKXtsZXQgdD1lO3Rocm93IGZ1bmN0aW9uKGUpe3JldHVybiBlIGluc3RhbmNlb2YgeX0odCl8fCh0PW5ldyB5KCgwLEUuZXJyb3JUb1N0cmluZykodCkpKSx0fX1hc3luYyBmdW5jdGlvbiBfKGUsdCxuLGEsbyl7cmV0dXJuIGsoYSxvKX1mdW5jdGlvbiBNKGUpe3JldHVybigwLHUuZmV0Y2gpKFQrImNoYXJ0cy9kZWxldGUvIix7bWV0aG9kOiJQT1NUIixjcmVkZW50aWFsczoic2FtZS1vcmlnaW4iLGJvZHk6SlNPTi5zdHJpbmdpZnkoe3VpZDpbZV19KSxoZWFkZXJzOm5ldyBIZWFkZXJzKHsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9KX0pLnRoZW4oKGU9PntpZighZS5vayl0aHJvdyBlO3JldHVybiBlLmpzb24oKX0pKS50aGVuKChlPT57aWYoZS5lcnJvcil0aHJvdyBlLmVycm9yfSkpfWxldCBOPW51bGw7ZnVuY3Rpb24geigpe3JldHVybiBudWxsPT09TiYmKE49KDAsdS5mZXRjaCkoIi9hcGkvdjEvc3R1ZHktdGVtcGxhdGVzIix7Y3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIn0pLnRoZW4oaCkudGhlbigoZT0+e2NvbnN0IHQ9ZS5jdXN0b218fFtdLG49ZS5zdGFuZGFyZHx8W10sYT1lLmZ1bmRhbWVudGFsc3x8W10sbz1uZXcgU2V0KFsuLi5uLC4uLmFdLm1hcCgoZT0+ZS5uYW1lKSkpLHI9dC5tYXAoKGU9Pih7Li4uZSxpc19kZWZhdWx0OiExLGlzX2Z1bmRhbWVudGFsOiExLGZhdm9yaXRlX2RhdGU6ZS5mYXZvcml0ZV9kYXRlP25ldyBEYXRlKGUuZmF2b3JpdGVfZGF0ZSkuZ2V0VGltZSgpOm51bGx9KSkpO2Zvcihjb25zdCBlIG9mIHIpby5kZWxldGUoZS5uYW1lKTtjb25zdCBpPW4uZmlsdGVyKChlPT5vLmhhcyhlLm5hbWUpKSkubWFwKChlPT4oey4uLmUsaXNfZGVmYXVsdDohMCxpc19mdW5kYW1lbnRhbDohMSxmYXZvcml0ZV9kYXRlOmUuZmF2b3JpdGVfZGF0ZT9uZXcgRGF0ZShlLmZhdm9yaXRlX2RhdGUpLmdldFRpbWUoKTpudWxsfSkpKSxsPWEuZmlsdGVyKChlPT5vLmhhcyhlLm5hbWUpKSkubWFwKChlPT4oey4uLmUsaXNfZGVmYXVsdDohMCxpc19mdW5kYW1lbnRhbDohMCxmYXZvcml0ZV9kYXRlOmUuZmF2b3JpdGVfZGF0ZT9uZXcgRGF0ZShlLmZhdm9yaXRlX2RhdGUpLmdldFRpbWUoKTpudWxsfSkpKTtyZXR1cm5bLi4uciwuLi5pLC4uLmxdfSkpKSxOfWZ1bmN0aW9uIEwoKXtOPW51bGx9ZnVuY3Rpb24gRChlKXtyZXR1cm4gdD17bmFtZTplLm5hbWUsY29udGVudDplLmNvbnRlbnQsbWV0YV9pbmZvOmUubWV0YV9pbmZvfHx7aW5kaWNhdG9yczpbXX19LCgwLHUuZmV0Y2gpKCIvYXBpL3YxL3N0dWR5LXRlbXBsYXRlcyIse2NyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiIsbWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LGJvZHk6SlNPTi5zdHJpbmdpZnkodCl9KS50aGVuKChlPT57aWYoZS5vaylyZXR1cm4gZS5qc29uKCkudGhlbigoZT0+KHtyZXN1bHQ6ZX0pKSk7c3dpdGNoKGUuc3RhdHVzKXtjYXNlIDQwMzpyZXR1cm4gZS5qc29uKCkudGhlbigoZT0+KHsKZXJyb3I6ZS5jb2RlfSkpKTtjYXNlIDQyMjpyZXR1cm4gZS5qc29uKCkudGhlbigoZT0+KHtlcnJvcjplLmNvZGUsaWQ6ZS5pZH0pKSk7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoIm5vdCBvayIpfX0pKTt2YXIgdH1mdW5jdGlvbiBBKGUsdCxuKXsoZnVuY3Rpb24oZSx0KXtyZXR1cm4oMCx1LmZldGNoKShgL2FwaS92MS9zdHVkeS10ZW1wbGF0ZXMvJHtlfS9mYXZvcml0ZWAse2NyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiIsbWV0aG9kOnQ/IlBPU1QiOiJERUxFVEUifSkudGhlbihoKX0pKGUsdCkudGhlbigoZT0+e24/LihlPy5mYXZvcml0ZV9kYXRlP25ldyBEYXRlKGUuZmF2b3JpdGVfZGF0ZSkuZ2V0VGltZSgpOm51bGwpfSkpfWZ1bmN0aW9uIE8oZSx0LG4peyhmdW5jdGlvbihlLHQpe3JldHVybigwLHUuZmV0Y2gpKGAvYXBpL3YxL3N0dWR5LXRlbXBsYXRlcy9zdGFuZGFyZC8ke2V9L2Zhdm9yaXRlYCx7Y3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIixtZXRob2Q6dD8iUE9TVCI6IkRFTEVURSJ9KS50aGVuKGgpfSkoZSx0KS50aGVuKChlPT57bj8uKGU/LmZhdm9yaXRlX2RhdGU/bmV3IERhdGUoZS5mYXZvcml0ZV9kYXRlKS5nZXRUaW1lKCk6bnVsbCl9KSl9ZnVuY3Rpb24gQihlKXtyZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJuKDAsdS5mZXRjaCkoYC9hcGkvdjEvc3R1ZHktdGVtcGxhdGVzLyR7ZX1gLHtjcmVkZW50aWFsczoic2FtZS1vcmlnaW4ifSkudGhlbihoKX0oZSl9ZnVuY3Rpb24gSChlLHQpe3JldHVybiBmdW5jdGlvbihlKXtyZXR1cm4oMCx1LmZldGNoKShgL2FwaS92MS9zdHVkeS10ZW1wbGF0ZXMvc3RhbmRhcmQvJHtlfWAse2NyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiJ9KS50aGVuKGgpfShlKS50aGVuKHQpfWZ1bmN0aW9uIGooZSl7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybigwLHUuZmV0Y2gpKGAvYXBpL3YxL3N0dWR5LXRlbXBsYXRlcy8ke2V9YCx7Y3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIixtZXRob2Q6IkRFTEVURSJ9KS50aGVuKChlPT57aWYoIWUub2spdGhyb3cgbmV3IEVycm9yKCJub3Qgb2siKX0pKX0oZSl9ZnVuY3Rpb24gUChlLHQsbil7KGZ1bmN0aW9uKGUsdCl7cmV0dXJuKDAsdS5mZXRjaCkoYC9hcGkvdjEvc3R1ZHktdGVtcGxhdGVzLyR7ZX0vcmVuYW1lL2Ase2NyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiIsbWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LGJvZHk6SlNPTi5zdHJpbmdpZnkodCl9KS50aGVuKGgpfSkoZSx7bmFtZTp0fSkudGhlbihuKX1mdW5jdGlvbiBVKGUsdCxuKXsoZnVuY3Rpb24oZSx0KXtyZXR1cm4oMCx1LmZldGNoKShgL2FwaS92MS9zdHVkeS10ZW1wbGF0ZXMvJHtlfWAse2NyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiIsbWV0aG9kOiJQVVQiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sYm9keTpKU09OLnN0cmluZ2lmeSh0KX0pLnRoZW4oaCl9KShlLHtuYW1lOnQubmFtZSxjb250ZW50OnQuY29udGVudCxtZXRhX2luZm86dC5tZXRhX2luZm98fHtpbmRpY2F0b3JzOltdfX0pLnRoZW4oKGU9Pm4oe3Jlc3VsdDplfSkpKX1mdW5jdGlvbiBXKGUpe3JldHVybiBmdW5jdGlvbihlKXtyZXR1cm4oMCx1LmZldGNoKShgL2RyYXdpbmctdGVtcGxhdGVzLyR7ZX0vYCx7Y3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIn0pLnRoZW4odil9KGUpfWZ1bmN0aW9uIFIoZSx0LG4pe3JldHVybiBmdW5jdGlvbihlLHQsbil7Y29uc3QgYT1uZXcgRm9ybURhdGE7cmV0dXJuIGEuYXBwZW5kKCJuYW1lIix0KSxhLmFwcGVuZCgidG9vbCIsZSksYS5hcHBlbmQoImNvbnRlbnQiLG4pLCgwLHUuZmV0Y2gpKCIvc2F2ZS1kcmF3aW5nLXRlbXBsYXRlLyIse21ldGhvZDoiUE9TVCIsY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIixib2R5OmF9KS50aGVuKHYpfShlLHQsbil9ZnVuY3Rpb24gRihlLHQpe3JldHVybiBhc3luYyBmdW5jdGlvbihlLHQpe2NvbnN0IG49YXdhaXQoMCx1LmZldGNoKShgL2RyYXdpbmctdGVtcGxhdGUvJHtlfS8/dGVtcGxhdGVOYW1lPSR7ZW5jb2RlVVJJQ29tcG9uZW50KHQpfWAse2NyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiJ9KSxhPWF3YWl0IHYobik7cmV0dXJuIEpTT04ucGFyc2UoYS5jb250ZW50KX0oZSx0KX1mdW5jdGlvbiBLKGUsdCl7cmV0dXJuIGZ1bmN0aW9uKGUsdCl7Y29uc3Qgbj1uZXcgRm9ybURhdGE7cmV0dXJuIG4uYXBwZW5kKCJuYW1lIix0KSxuLmFwcGVuZCgidG9vbCIsZSksKDAsdS5mZXRjaCkoIi9yZW1vdmUtZHJhd2luZy10ZW1wbGF0ZS8iLHttZXRob2Q6IlBPU1QiLGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiIsYm9keTpufSkudGhlbih2KX0oZSx0KX1jb25zdCBxPWF9LDMzMzMxMihlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtnZXRUd2Vtb2ppVXJsOigpPT5vfSk7dmFyIGE9bigyNjA2MDMpO2Z1bmN0aW9uIG8oZSx0KXtsZXQgbj0iIjtyZXR1cm4gYS5kZWZhdWx0LnBhcnNlKGUsKGU9PihuPWEuZGVmYXVsdC5iYXNlKygic3ZnIj09PXQ/YHN2Zy8ke2V9LnN2Z2A6YDcyeDcyLyR7ZX0ucG5nYCksITEpKSksbn1hLmRlZmF1bHQuYmFzZT0iaHR0cHM6Ly9jZG5qcy5jbG91ZGZsYXJlLmNvbS9hamF4L2xpYnMvdHdlbW9qaS8xMy4wLjEvIn0sMzA5ODM2KGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse2FkZFV0bVRvVXJsOigpPT5vfSk7dmFyIGE9big2MDE1ODcpO2Z1bmN0aW9uIG8oZSx0KXtpZighLyhbYS16QS1aMC05Li1dKnRyYWRpbmd2aWV3LmNvbSl8bG9jYWxob3N0Ly50ZXN0KGUpKXJldHVybiBlO2NvbnN0IG49KDAsYS5idWlsZFV0bVF1ZXJ5U3RyaW5nKSh0KTtpZigiIj09PW4pcmV0dXJuIGU7Y29uc3Qgbz1lLmluZGV4T2YoIj8iKSxyPWUuaW5kZXhPZigiIyIpLGk9LTEhPT1yO2lmKC0xIT09byYmKCFpfHxvPHIpKXtyZXR1cm5gJHtlLnNsaWNlKDAsbyl9PyR7aT9lLnNsaWNlKG8rMSxyKTplLnNsaWNlKG8rMSl9JiR7bn0ke2k/ZS5zbGljZShyKToiIn1gfWlmKGkpe3JldHVybmAke2Uuc2xpY2UoMCxyKX0/JHtufSR7ZS5zbGljZShyKX1gfXJldHVybmAke2V9PyR7bn1gfX0sNjAxNTg3KGUsdCxuKXsKInVzZSBzdHJpY3QiO24uZCh0LHtidWlsZFV0bVF1ZXJ5U3RyaW5nOigpPT5sLGJ1aWxkVXRtUXVlcnlTdHJpbmdGcm9tVXJsUGFyYW1zOigpPT5zLGZpbHRlclV0bUluZm86KCk9Pml9KTt2YXIgYT1uKDQ5MjY3Nyksbz1uKDY0MTU5Myk7Y29uc3Qgcj1bInV0bV9zb3VyY2UiLCJ1dG1fbWVkaXVtIiwidXRtX2NhbXBhaWduIl07ZnVuY3Rpb24gaShlKXtjb25zdCB0PXt9O3JldHVybiByLmZvckVhY2goKG49Pntjb25zdCBhPWVbbl07InN0cmluZyI9PXR5cGVvZiBhJiYiIiE9PWEmJih0W25dPSgwLG8uaHRtbEVzY2FwZSkoYSkpfSkpLHR9ZnVuY3Rpb24gbChlLHQ9ITEpe2NvbnN0IG49KDAsYS5jcmVhdGVVcmxQYXJhbXMpKGUpO3JldHVybiBuJiZ0PyI/IituOm59ZnVuY3Rpb24gcyhlKXtyZXR1cm4gbChpKCgwLGEuZ2V0VXJsUGFyYW1zKSgpKSxlKX19LDY5NjQzKGUpe2UuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxOCAxOCIgd2lkdGg9IjE4IiBoZWlnaHQ9IjE4IiBmaWxsPSJub25lIj48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGQ9Ik05IDFsMi4zNSA0Ljc2IDUuMjYuNzctMy44IDMuNy45IDUuMjRMOSAxM2wtNC43IDIuNDcuOS01LjIzLTMuOC0zLjcxIDUuMjUtLjc3TDkgMXoiLz48L3N2Zz4nfSw4MjY5NzgoZSl7ZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDE4IDE4IiB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIGZpbGw9Im5vbmUiPjxwYXRoIHN0cm9rZT0iY3VycmVudENvbG9yIiBkPSJNOSAyLjEzbDEuOTAzIDMuODU1LjExNi4yMzYuMjYuMDM4IDQuMjU1LjYxOC0zLjA3OSAzLjAwMS0uMTg4LjE4NC4wNDQuMjU5LjcyNyA0LjIzNy0zLjgwNS0yTDkgMTIuNDM0bC0uMjMzLjEyMi0zLjgwNSAyLjAwMS43MjctNC4yMzcuMDQ0LS4yNi0uMTg4LS4xODMtMy4wNzktMy4wMDEgNC4yNTUtLjYxOC4yNi0uMDM4LjExNi0uMjM2TDkgMi4xM3oiLz48L3N2Zz4nfSwzNDc5NzMoZSl7ZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjI4IiBoZWlnaHQ9IjI4IiBmaWxsPSJub25lIj48cGF0aCBzdHJva2U9ImN1cnJlbnRDb2xvciIgZD0iTTggOS41SDYuNWExIDEgMCAwIDAtMSAxdjExYTEgMSAwIDAgMCAxIDFoMTFhMSAxIDAgMCAwIDEtMVYyMG0tOC0xLjVoMTFhMSAxIDAgMCAwIDEtMXYtMTFhMSAxIDAgMCAwLTEtMWgtMTFhMSAxIDAgMCAwLTEgMXYxMWExIDEgMCAwIDAgMSAxeiIvPjwvc3ZnPid9LDQ4OTA1OShlKXtlLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iMTgiIGhlaWdodD0iMTgiPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZD0iTTkuNzA3IDlsNC42NDctNC42NDYtLjcwNy0uNzA4TDkgOC4yOTMgNC4zNTQgMy42NDZsLS43MDguNzA4TDguMjkzIDlsLTQuNjQ3IDQuNjQ2LjcwOC43MDhMOSA5LjcwN2w0LjY0NiA0LjY0Ny43MDgtLjcwN0w5LjcwNyA5eiIvPjwvc3ZnPid9LDU5OTc1KGUpe2UuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxOCAxOCIgd2lkdGg9IjE4IiBoZWlnaHQ9IjE4IiBmaWxsPSJub25lIj48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGQ9Ik05IDFsMi4zNSA0Ljc2IDUuMjYuNzctMy44IDMuNy45IDUuMjRMOSAxM2wtNC43IDIuNDcuOS01LjIzLTMuOC0zLjcxIDUuMjUtLjc3TDkgMXoiLz48L3N2Zz4nfSwyMzA2ODYoZSl7ZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDE4IDE4IiB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIGZpbGw9Im5vbmUiPjxwYXRoIHN0cm9rZT0iY3VycmVudENvbG9yIiBkPSJNOSAyLjEzbDEuOTAzIDMuODU1LjExNi4yMzYuMjYuMDM4IDQuMjU1LjYxOC0zLjA3OSAzLjAwMS0uMTg4LjE4NC4wNDQuMjU5LjcyNyA0LjIzNy0zLjgwNS0yTDkgMTIuNDM0bC0uMjMzLjEyMi0zLjgwNSAyLjAwMS43MjctNC4yMzcuMDQ0LS4yNi0uMTg4LS4xODMtMy4wNzktMy4wMDEgNC4yNTUtLjYxOC4yNi0uMDM4LjExNi0uMjM2TDkgMi4xM3oiLz48L3N2Zz4nfSw4ODk1NDYoZSl7ZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDI4IDI4IiB3aWR0aD0iMjgiIGhlaWdodD0iMjgiPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZD0iTTcuMzMyIDYuNTQ4IDIxLjQyIDIwLjcwNEE5Ljk2MiA5Ljk2MiAwIDAgMCAyNCAxNGMwLTUuNTIzLTQuNDc3LTEwLTEwLTEwYTkuOTYxIDkuOTYxIDAgMCAwLTYuNjY4IDIuNTQ4Wm0xMy4zODEgMTQuODY0TDYuNjIxIDcuMjUyQTkuOTYyIDkuOTYyIDAgMCAwIDQgMTRjMCA1LjUyMyA0LjQ3NyAxMCAxMCAxMCAyLjU4NCAwIDQuOTM4LS45OCA2LjcxMy0yLjU4OFpNNi4yNjMgNi4xODFBMTAuOTY3IDEwLjk2NyAwIDAgMSAxNCAzYzYuMDc1IDAgMTEgNC45MjUgMTEgMTEgMCAzLjAzNi0xLjIzIDUuNzg1LTMuMjE4IDcuNzc1QTEwLjk2NyAxMC45NjcgMCAwIDEgMTQgMjVDNy45MjUgMjUgMyAyMC4wNzUgMyAxNGMwLTMuMDU4IDEuMjQ5LTUuODI2IDMuMjYzLTcuODJaIi8+PC9zdmc+J30sNzk1OTg2KGUpewplLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iMjgiIGhlaWdodD0iMjgiIGZpbGw9ImN1cnJlbnRDb2xvciI+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xMS4xMTggNmEuNS41IDAgMCAwLS40NDcuMjc2TDkuODA5IDhINS41QTEuNSAxLjUgMCAwIDAgNCA5LjV2MTBBMS41IDEuNSAwIDAgMCA1LjUgMjFoMTZhMS41IDEuNSAwIDAgMCAxLjUtMS41di0xMEExLjUgMS41IDAgMCAwIDIxLjUgOGgtNC4zMDlsLS44NjItMS43MjRBLjUuNSAwIDAgMCAxNS44ODIgNmgtNC43NjR6bS0xLjM0Mi0uMTdBMS41IDEuNSAwIDAgMSAxMS4xMTggNWg0Ljc2NGExLjUgMS41IDAgMCAxIDEuMzQyLjgzTDE3LjgwOSA3SDIxLjVBMi41IDIuNSAwIDAgMSAyNCA5LjV2MTBhMi41IDIuNSAwIDAgMS0yLjUgMi41aC0xNkEyLjUgMi41IDAgMCAxIDMgMTkuNXYtMTBBMi41IDIuNSAwIDAgMSA1LjUgN2gzLjY5MWwuNTg1LTEuMTd6Ii8+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xMy41IDE4YTMuNSAzLjUgMCAxIDAgMC03IDMuNSAzLjUgMCAwIDAgMCA3em0wIDFhNC41IDQuNSAwIDEgMCAwLTkgNC41IDQuNSAwIDAgMCAwIDl6Ii8+PC9zdmc+J30sMjAyNTExKGUpe2UuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyOCAyOCIgd2lkdGg9IjI4IiBoZWlnaHQ9IjI4Ij48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTEzLjk4IDYuMDJMMTQuNSA2YzIuMTggMCA0LjE2LjggNS42NiAyLjE0bC01LjY2IDUuNjUtMi4zMS0yLjNhOC40MyA4LjQzIDAgMCAwIDEuNTUtMy42NCAxNC4wMSAxNC4wMSAwIDAgMCAuMjQtMS44M3ptLTEuMDEuMTJhOC40NSA4LjQ1IDAgMCAwLTQuMTMgMmwyLjY0IDIuNjNhNy41OSA3LjU5IDAgMCAwIDEuMjgtMy4xMmMuMTItLjU5LjE4LTEuMTIuMi0xLjUxem0tNC44MyAyLjdhOC40NSA4LjQ1IDAgMCAwLTIgNC4xM2MuMzktLjAzLjkyLS4xIDEuNTEtLjIxYTcuNTkgNy41OSAwIDAgMCAzLjEyLTEuMjhMOC4xNCA4Ljg0em0tMi4xMiA1LjE0YTguNDggOC40OCAwIDAgMCAyLjEyIDYuMThsNS42NS01LjY2LTIuMy0yLjMxYTguNDMgOC40MyAwIDAgMS0zLjY0IDEuNTUgMTQuMDMgMTQuMDMgMCAwIDEtMS44My4yNHptMi44MiA2Ljg4YTguNDYgOC40NiAwIDAgMCA1LjEzIDIuMTJ2LS4wN0E4Ljk1IDguOTUgMCAwIDEgMTYuMyAxN2wtMS44LTEuOC01LjY2IDUuNjV6TTE0Ljk3IDIzYzItLjEgMy44LS45IDUuMTktMi4xM0wxNyAxNy43MmE3Ljk0IDcuOTQgMCAwIDAtMi4wNCA1LjI3em01LjktMi44M2E4LjQ2IDguNDYgMCAwIDAgMi4xMS01LjEzaC0uMDJhMTAuNjIgMTAuNjIgMCAwIDAtNS4yIDJsMy4xIDMuMTN6bTIuMTItNi4xM2MtLjEtMi0uOS0zLjgtMi4xMy01LjE5bC01LjY1IDUuNjYgMS44MyAxLjgzYTExLjYgMTEuNiAwIDAgMSA1Ljk1LTIuM3pNMTQuNSA1QTkuNDYgOS40NiAwIDAgMCA1IDE0LjVjMCA1LjI4IDQuMjIgOS41IDkuNSA5LjVzOS41LTQuMjIgOS41LTkuNVMxOS43OCA1IDE0LjUgNXoiLz48L3N2Zz4nfSwxNjExNzcoZSl7CmUuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyOCAyOCIgd2lkdGg9IjI4IiBoZWlnaHQ9IjI4Ij48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGQ9Ik00LjU0IDMuMmwuNzgtLjU5IDUuNDkgNC41IDEuNDMgMS4wN2E1LjI4IDUuMjggMCAwIDEgMi4xOS0yLjMgOS4xOSA5LjE5IDAgMCAxIDEuODgtLjg1aC4wNGwuMDEtLjAxLjE0LjQ4LjQyLS4yOHYuMDFsLjAxLjAyYTMuMTQgMy4xNCAwIDAgMSAuMTYuMjZsLjM3LjcyYy4yLjQ1LjQgMS4wMi41IDEuNjRhMi4xMyAyLjEzIDAgMCAxIDEuODkuNDZsLjE4LjE2LjAzLjAyLjE4LjE2Yy4yMi4xNi40Mi4yNy44MS4yNWE1LjkgNS45IDAgMCAwIDIuMi0uODZsLjY2LS4zNi4wOS43NWE1Ljk4IDUuOTggMCAwIDEtMS43IDUuMSA2Ljg3IDYuODcgMCAwIDEtMS43IDEuMjMgMTkuOTcgMTkuOTcgMCAwIDEgLjQ4IDIuNDhjLjI1IDEuNzMuNDIgNC4wOC4wNiA2LjVBMS40NiAxLjQ2IDAgMCAxIDE5LjY4IDI1aC03LjcxYTEuNSAxLjUgMCAwIDEtMS40LTIuMDZsMS0yLjQ3Yy0uMTguMDItLjM3LjAzLS41OC4wM2EzIDMgMCAwIDEtMS41My0uNCA2Ljg0IDYuODQgMCAwIDEtMS42LjY0Yy0xLjA4LjI3LTIuNTUuMjktMy43Mi0uODlhNC4wNiA0LjA2IDAgMCAxLS45Ni0zIDUuMSA1LjEgMCAwIDEgMi0zLjc0IDk4LjUgOTguNSAwIDAgMCAyLjctMi4yNEw0LjU1IDMuMnpNMTYuNSA1LjVsLS4xNC0uNDguMzUtLjEuMi4zLS40MS4yOHptLTcuODcgNi4wNmE1Ny40OCA1Ny40OCAwIDAgMS0yLjE5IDEuODJsLjQ5LjI2Yy42NS4zNyAxLjQ4LjkgMS45NyAxLjU2YTUuNzggNS43OCAwIDAgMSAxLjE0IDQuMDdsLjA2LjAzYy4xOS4xLjQ5LjIuOS4yLjY4IDAgLjk1LS4xMSAxLjAzLS4xNnYtLjAzbC45Ny4xOWgtLjUuNXYuMDNhLjc1Ljc1IDAgMCAxLS4wMS4xLjc0Ljc0IDAgMCAxLS4wOS4yMWwtMS4zOSAzLjQ3YS41LjUgMCAwIDAgLjQ3LjY5aDcuNzFjLjI0IDAgLjQzLS4xNy40Ny0uMzhhMjIgMjIgMCAwIDAtLjA2LTYuMjIgMjQuNCAyNC40IDAgMCAwLS41Ni0yLjcxIDExLjM1IDExLjM1IDAgMCAwLS45NC0xLjUyIDcuMSA3LjEgMCAwIDAtMi4zMS0yLjIybC0uNjItLjMxLjQ5LS41QTMuMDMgMy4wMyAwIDAgMCAxNyA4LjZhMS4yIDEuMiAwIDAgMCAuMDEtLjFjMC0uNjUtLjIyLTEuMzMtLjQ2LTEuODYtLjEtLjIxLS4xOC0uNC0uMjYtLjU0YTguMDcgOC4wNyAwIDAgMC0xLjM0LjY0Yy0uOS41NC0xLjc0IDEuMzItMS45NSAyLjM2di4wM2wtLjAyLjAzTDEyLjUgOWwuNDcuMTZ2LjAyYTIuOTcgMi45NyAwIDAgMS0uMS4yNiA1LjkgNS45IDAgMCAxLS4zMS42MmMtLjI3LjQ2LS43IDEuMDctMS4zNCAxLjM5LS42My4zMS0xLjM4LjMtMS45LjIzYTUuODMgNS44MyAwIDAgMS0uNy0uMTJ6bTMuMjYtMi4zOUwxMC4yIDcuOWwtLjAyLS4wMUw2LjMgNC43bDIuNTcgNS44OGguMDFjLjE0LjA0LjM0LjA4LjU3LjExLjQ3LjA2Ljk3LjA1IDEuMzQtLjE0LjM2LS4xOC42OC0uNTcuOTEtLjk5LjA4LS4xNC4xNS0uMjcuMi0uMzl6bTguMzIgNC42OGE1LjQ3IDUuNDcgMCAwIDAgMS4zNy0xLjAyIDQuODggNC44OCAwIDAgMCAxLjQ2LTMuNTNjLS44LjM5LTEuNDEuNTgtMS45Mi42MS0uNy4wNS0xLjE0LS4xOC0xLjQ5LS40NWE1LjYgNS42IDAgMCAxLS4yMi0uMTlsLS4wMy0uMDMtLjE3LS4xM2ExLjQgMS40IDAgMCAwLS4zMy0uMjJjLS4xOC0uMDctLjQ0LS4xMi0uOTMgMGwtLjEuNGMtLjEuMy0uMjguNjktLjU4IDEuMDkuODcuNTkgMS42IDEuNDYgMi4xNCAyLjJhMTQuOTIgMTQuOTIgMCAwIDEgLjggMS4yN3pNOS4wNSAxOS4xOXYtLjA5YTQuNzggNC43OCAwIDAgMC0uOTYtMy4zIDUuNTYgNS41NiAwIDAgMC0xLjY1LTEuMjljLS4zLS4xNy0uNi0uMy0uOC0uNGwtLjA1LS4wM2E0LjA1IDQuMDUgMCAwIDAtMS40IDIuODIgMy4xIDMuMSAwIDAgMCAuNjYgMi4yNWMuODMuODIgMS44Ni44NCAyLjc4LjYyYTUuNzEgNS43MSAwIDAgMCAxLjQyLS41OHptNC4yNi01Ljg3Yy0uMy4yNC0uNzQuNTQtMS4xOC42Ni0uMzcuMS0uODEuMS0xLjEyLjA4YTYuOTUgNi45NSAwIDAgMS0uNTQtLjA2aC0uMDVsLjA4LS41LjA4LS41LjAzLjAxYTUuMDIgNS4wMiAwIDAgMCAxLjI2IDBjLjI0LS4wNi41NC0uMjUuODMtLjQ3YTYuMSA2LjEgMCAwIDAgLjQyLS4zN2wuMDItLjAyLjM2LjM1LjM1LjM2aC0uMDFsLS4wMy4wNGE2LjA5IDYuMDkgMCAwIDEtLjUuNDJ6TTYgMTdoMXYtMUg2djF6Ii8+PC9zdmc+J30sNTY5Nzg1KGUpe2UuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyOCAyOCIgd2lkdGg9IjI4IiBoZWlnaHQ9IjI4IiBmaWxsPSJub25lIj48cGF0aCBzdHJva2U9ImN1cnJlbnRDb2xvciIgZD0iTTcuNSAyNHYtNS41bTAgMHMyLjctMS4xIDQuNS0xYzIuMS4xMiAyLjkgMS44OCA1IDIgMS44LjEgNC41LTEgNC41LTF2LTZtLTE0IDZ2LTZtMCAwdi02czIuNy0xLjEgNC41LTFjMi4xLjEyIDIuOSAxLjg4IDUgMiAxLjguMSA0LjUtMSA0LjUtMXY2bS0xNCAwczIuNy0xLjEgNC41LTFjMi4xLjEyIDIuOSAxLjg4IDUgMiAxLjguMSA0LjUtMSA0LjUtMSIvPjwvc3ZnPid9LDE4NTYwNShlKXsKZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDI4IDI4IiB3aWR0aD0iMjgiIGhlaWdodD0iMjgiPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNMTIuNSA4aDEuMzZsLS44NS0zLjM4Ljk4LS4yNC45IDMuNjJoNy42NGExLjM0IDEuMzQgMCAwIDEgLjIuMDJjLjEzLjAyLjMxLjA3LjUuMTYuMTguMDkuMzguMjQuNTMuNDYuMTUuMjQuMjQuNTIuMjQuODYgMCAuMzQtLjA5LjYyLS4yNC44NmExLjM4IDEuMzggMCAwIDEtLjc5LjU2TDIyIDI0LjU0bC0uMDMuNDZINi41Yy0xIDAtMS42NC0uNjgtMS45OS0xLjIzYTQuNCA0LjQgMCAwIDEtLjM4LS43OGwtLjAxLS4wNGMtLjEtLjAzLS4yMi0uMDctLjM0LS4xM2ExLjM2IDEuMzYgMCAwIDEtLjU0LS40NkExLjUxIDEuNTEgMCAwIDEgMyAyMS41YzAtLjM0LjA5LS42Mi4yNC0uODYuMTUtLjIyLjM1LS4zNy41NC0uNDYuMS0uMDUuMi0uMDkuMjgtLjExYTYuNiA2LjYgMCAwIDEgLjk2LTIuMzRDNS45MiAxNi4zNSA3LjU2IDE1IDEwLjUgMTVjLjcyIDAgMS4zNi4wOCAxLjkzLjIybC0uNC00LjNhMS4zOCAxLjM4IDAgMCAxLS44LS41N0ExLjUxIDEuNTEgMCAwIDEgMTEgOS41YzAtLjM0LjA5LS42Mi4yNC0uODYuMTUtLjIyLjM1LS4zNy41NC0uNDZhMS43MyAxLjczIDAgMCAxIC43LS4xOGguMDJ2LjVWOHptLjk2IDcuNTdhNS43MyA1LjczIDAgMCAxIDIuNTIgMi4xNiA2Ljg2IDYuODYgMCAwIDEgLjk1IDIuMzQgMS4zOCAxLjM4IDAgMCAxIC44Mi41OGMuMTYuMjMuMjUuNTEuMjUuODUgMCAuMzQtLjA5LjYyLS4yNC44Ni0uMTUuMjItLjM1LjM3LS41NC40Ni0uMTIuMDYtLjI0LjEtLjM0LjEzbC0uMDEuMDRhNC40IDQuNCAwIDAgMS0uNTQgMS4wMWg0LjdsLjkzLTEzaC04LjkxbC40MSA0LjU3ek0xNC41IDloOGEuNzMuNzMgMCAwIDEgLjI4LjA3Yy4wNi4wNC4xMS4wOC4xNS4xMy4wMy4wNS4wNy4xNC4wNy4zIDAgLjE2LS4wNC4yNS0uMDcuM2EuMzguMzggMCAwIDEtLjE1LjEzLjczLjczIDAgMCAxLS4yNy4wN0gxMi41YS43My43MyAwIDAgMS0uMjgtLjA3LjM4LjM4IDAgMCAxLS4xNS0uMTMuNTIuNTIgMCAwIDEtLjA3LS4zYzAtLjE2LjA0LS4yNS4wNy0uMy4wNC0uMDUuMDktLjEuMTUtLjEzQS43My43MyAwIDAgMSAxMi41IDloMi4wMXptMS40IDExYTUuOCA1LjggMCAwIDAtLjc2LTEuNzNDMTQuNDEgMTcuMTUgMTMuMDYgMTYgMTAuNSAxNmMtMi41NiAwLTMuOTEgMS4xNS00LjY0IDIuMjdBNS44NiA1Ljg2IDAgMCAwIDUuMSAyMGgxMC43OHpNNC41IDIxYS43Mi43MiAwIDAgMC0uMjguMDcuMzguMzggMCAwIDAtLjE1LjEzLjUyLjUyIDAgMCAwLS4wNy4zYzAgLjE2LjA0LjI1LjA3LjMuMDQuMDUuMDkuMS4xNS4xM2EuNzMuNzMgMCAwIDAgLjI3LjA3SDE2LjVhLjcyLjcyIDAgMCAwIC4yOC0uMDcuMzguMzggMCAwIDAgLjE1LS4xMy41Mi41MiAwIDAgMCAuMDctLjMuNTIuNTIgMCAwIDAtLjA3LS4zLjM4LjM4IDAgMCAwLS4xNS0uMTMuNzMuNzMgMCAwIDAtLjI3LS4wN0g0LjV6bS43MyAybC4xMy4yM2MuMjguNDUuNjUuNzcgMS4xNC43N2g4Yy41IDAgLjg2LS4zMiAxLjE0LS43Ny4wNS0uMDcuMS0uMTUuMTMtLjIzSDUuMjN6TTExIDE3djFoLTF2LTFoMXptLTMgMWgxdjFIOHYtMXptNCAxdi0xaDF2MWgtMXoiLz48L3N2Zz4nfSw2OTQ1MzIoZSl7ZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDI4IDI4IiB3aWR0aD0iMjgiIGhlaWdodD0iMjgiPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZD0iTTkuNSAyMUg5aC41em04IDBIMTdoLjV6bS02LTEwSDExdjFoLjV2LTF6bTQgMWguNXYtMWgtLjV2MXptMiA3LjVoLjUtLjV6bS4yOS0xLjU5QTcuOTcgNy45NyAwIDAgMCAyMSAxMS41aC0xYTYuOTcgNi45NyAwIDAgMS0yLjc5IDUuNTlsLjU4Ljgyek0yMSAxMS41QTcuNSA3LjUgMCAwIDAgMTMuNSA0djFhNi41IDYuNSAwIDAgMSA2LjUgNi41aDF6TTEzLjUgNEE3LjUgNy41IDAgMCAwIDYgMTEuNWgxQTYuNSA2LjUgMCAwIDEgMTMuNSA1VjR6TTYgMTEuNWE3Ljk4IDcuOTggMCAwIDAgMy4yMSA2LjQxbC41Ny0uODJBNi45OCA2Ljk4IDAgMCAxIDcgMTEuNUg2ek05IDIxYTEgMSAwIDAgMCAxIDF2LTFIOXptOCAxYTEgMSAwIDAgMCAxLTFoLTF2MXptLTYtLjVWMjNoMXYtMS41aC0xem0wIDEuNWExIDEgMCAwIDAgMSAxdi0xaC0xem0xIDFoM3YtMWgtM3Yxem0zIDBhMSAxIDAgMCAwIDEtMWgtMXYxem0xLTF2LTEuNWgtMVYyM2gxem0tMy0xMS41djZoMXYtNmgtMXpNOS41IDIwaDh2LTFoLTh2MXpNOSAxNy41djJoMXYtMkg5em0wIDJWMjFoMXYtMS41SDl6bTkgMS41di0xLjVoLTFWMjFoMXptMC0xLjV2LTJoLTF2Mmgxek05LjUgMThoNHYtMWgtNHYxem00IDBoNHYtMWgtNHYxem0tMi02aDJ2LTFoLTJ2MXptMiAwaDJ2LTFoLTJ2MXpNMTAgMjJoMS41di0xSDEwdjF6bTEuNSAwaDR2LTFoLTR2MXptNCAwSDE3di0xaC0xLjV2MXoiLz48L3N2Zz4nfSw4MTQ2NzAoZSl7ZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDI4IDI4IiB3aWR0aD0iMjgiIGhlaWdodD0iMjgiPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZD0iTTYgMTQuNUM2IDkuNzggOS43OCA2IDE0LjUgNmM0LjcyIDAgOC41IDMuNzggOC41IDguNSAwIDQuNzItMy43OCA4LjUtOC41IDguNUE4LjQ2IDguNDYgMCAwIDEgNiAxNC41ek0xNC41IDVBOS40NiA5LjQ2IDAgMCAwIDUgMTQuNWMwIDUuMjggNC4yMiA5LjUgOS41IDkuNXM5LjUtNC4yMiA5LjUtOS41UzE5Ljc4IDUgMTQuNSA1ek0xNCAxNlY5aDF2Nmg0djFoLTV6Ii8+PC9zdmc+J30sNjIwNzgxKGUpewplLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMjggMjgiIHdpZHRoPSIyOCIgaGVpZ2h0PSIyOCI+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBkPSJNNiAxNC41QzYgOS43OCA5Ljc4IDYgMTQuNSA2YzQuNzIgMCA4LjUgMy43OCA4LjUgOC41IDAgNC43Mi0zLjc4IDguNS04LjUgOC41QTguNDYgOC40NiAwIDAgMSA2IDE0LjV6TTE0LjUgNUE5LjQ2IDkuNDYgMCAwIDAgNSAxNC41YzAgNS4yOCA0LjIyIDkuNSA5LjUgOS41czkuNS00LjIyIDkuNS05LjVTMTkuNzggNSAxNC41IDV6TTEyIDEyYTEgMSAwIDEgMCAwIDIgMSAxIDAgMCAwIDAtMnptNCAxYTEgMSAwIDEgMSAyIDAgMSAxIDAgMCAxLTIgMHptLTYgNGwtLjQzLjI2di4wMWwuMDMuMDNhMy41NSAzLjU1IDAgMCAwIC4zLjQgNS43IDUuNyAwIDAgMCA5LjIyIDAgNS40MiA1LjQyIDAgMCAwIC4yOC0uNGwuMDItLjAzdi0uMDFMMTkgMTdsLS40My0uMjZ2LjAyYTIuNDUgMi40NSAwIDAgMS0uMjQuMzJjLS4xNy4yMS0uNDMuNS0uNzguNzlhNC43MSA0LjcxIDAgMCAxLTYuODgtLjggNC4zMiA0LjMyIDAgMCAxLS4yMy0uMzFsLS4wMS0uMDJMMTAgMTd6Ii8+PC9zdmc+J30sOTAwMzExKGUpe2UuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyOCAyOCIgd2lkdGg9IjI4IiBoZWlnaHQ9IjI4Ij48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTUuNiAxNS40M0E2LjE5IDYuMTkgMCAwIDEgMTQgNi4zNmE2LjE5IDYuMTkgMCAwIDEgOC40IDkuMDhsLS4wMy4wMi03LjMgNy4zMWExLjUgMS41IDAgMCAxLTIuMTMgMGwtNy4zLTcuMy0uMDMtLjAzbS43MS0uN3YtLjAxYTUuMTkgNS4xOSAwIDAgMSA3LjMzLTcuMzR2LjAxYy4yLjIuNTEuMTkuNyAwYTUuMTkgNS4xOSAwIDAgMSA3LjM0IDcuMzNsLS4wMy4wMi03LjMgNy4zMWEuNS41IDAgMCAxLS43MSAwbC03LjMtNy4zLS4wMy0uMDJ6Ii8+PC9zdmc+J30sNzUwNzY5KGUpe2UuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyOCAyOCIgd2lkdGg9IjI4IiBoZWlnaHQ9IjI4Ij48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGQ9Ik0yMi44NyA2LjQ0Yy4wOS0uNzgtLjUzLTEuNC0xLjMtMS4zMS0xLjQzLjE1LTMuNDMuNDgtNS40MiAxLjJhMTEuOCAxMS44IDAgMCAwLTUuMjMgMy40NEw5Ljg2IDExLjlsNi4yNCA2LjI0IDIuMTMtMS4wNmExMS44IDExLjggMCAwIDAgMy40NC01LjIzYy43Mi0xLjk5IDEuMDUtNCAxLjItNS40MXptLTQuOTMgMTEuOWwtMS43Mi44Ni0uMDQuMDJoLS4wNGwtMi4yLjY3di4wMWExOS42OCAxOS42OCAwIDAgMC0uMTMgMy4zM2MuMDEuMTQuMDguMjIuMTcuMjYuMDguMDQuMi4wNS4zMi0uMDNhMTguODMgMTguODMgMCAwIDAgMi43OS0yLjI2IDguMTggOC4xOCAwIDAgMCAuNDQtMS4xYy4xNi0uNTEuMzMtMS4xMi40MS0xLjc2em0tLjQ0IDMuMTZsLjM1LjM1LS4wMS4wMi0uMDUuMDVhMTYuODUgMTYuODUgMCAwIDEtLjgzLjc2Yy0uNTQuNDctMS4zIDEuMDgtMi4xIDEuNjFhMS4zIDEuMyAwIDAgMS0yLjA1LS45OCAxNi40NiAxNi40NiAwIDAgMSAuMDktMy4wOGwtLjE2LjA1YTEuNSAxLjUgMCAwIDEtMS41My0uMzZsLTMuMTMtMy4xM2MtLjQtLjQtLjU0LTEtLjM2LTEuNTNsLjA1LS4xNi0uMzYuMDRjLS43LjA2LTEuNjIuMTEtMi41NC4wNmExLjMgMS4zIDAgMCAxLTEuMTMtLjhjLS4xOC0uNDItLjEzLS45NC4xNy0xLjM1YTg3LjU1IDg3LjU1IDAgMCAxIDIuMTUtMi44bC4wNC0uMDR2LS4wMmwuNC4zMS0uMjItLjQ1LjAzLS4wMWE1LjkzIDUuOTMgMCAwIDEgLjM0LS4xNmMuMjMtLjEuNTUtLjIyLjk0LS4zNUE5Ljc3IDkuNzcgMCAwIDEgMTAuMjYgOWExMi45IDEyLjkgMCAwIDEgNS41NS0zLjYxYzIuMDktLjc2IDQuMTgtMS4xIDUuNjUtMS4yNiAxLjQxLS4xNSAyLjU2IDEgMi40IDIuNDFhMjQuMDQgMjQuMDQgMCAwIDEtMS4yNSA1LjY1QTEyLjkgMTIuOSAwIDAgMSAxOSAxNy43NGE5Ljc3IDkuNzcgMCAwIDEtLjg4IDMuNjEgOS4xOCA5LjE4IDAgMCAxLS4xNi4zNHYuMDNoLS4wMWwtLjQ1LS4yMnptMCAwbC40NS4yMi0uMDQuMDgtLjA2LjA1LS4zNS0uMzV6bS0xMS0xMWwtLjQtLjMxLjA4LS4wOS4xLS4wNS4yMi40NXptMy4xNi0uNDRhOS42MSA5LjYxIDAgMCAwLTIuODQuODRsLS4xMy4xNmExMDkuODMgMTA5LjgzIDAgMCAwLTEuOTcgMi41OC40LjQgMCAwIDAtLjA2LjM4Yy4wNC4xLjEyLjE3LjI3LjE4YTE2LjA1IDE2LjA1IDAgMCAwIDMuMTgtLjE1bC42Ni0yLjIuMDEtLjAzLjAyLS4wNC44Ni0xLjcyem01LjQgOC40NWwtNS41Ny01LjU2LS41MSAxLjctLjMxLjkyYS41LjUgMCAwIDAgLjEyLjUxbDMuMTMgMy4xM2EuNS41IDAgMCAwIC41LjEybC45Mi0uM2guMDJsMS43LS41MnptLTEwLjkxLjY0bDItMiAuNy43LTIgMi0uNy0uN3ptMCA0bDQtNCAuNy43LTQgNC0uNy0uN3ptNCAwbDItMiAuNy43LTIgMi0uNy0uN3pNMTYgMTAuNWExLjUgMS41IDAgMSAxIDMgMCAxLjUgMS41IDAgMCAxLTMgMHpNMTcuNSA4YTIuNSAyLjUgMCAxIDAgMCA1IDIuNSAyLjUgMCAwIDAgMC01eiIvPjwvc3ZnPid9fV0pOw=="}},"time_used":3,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":3,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"widget-v3.smartsuppcdn.com/assets/shared-kb1yqHaA.js","fqdn":"widget-v3.smartsuppcdn.com","domain":"smartsuppcdn.com","tld":"com"},"ip":{"addr":"185.76.9.12","port":443,"asn":60068,"as":"Datacamp Limited","country":"Sweden","country_code":"SE"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://digital-assettrade.com/","date":"2026-07-27T10:27:19.773Z","timestamp":1785148039773,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_256_GCM_SHA384","key_group_name":"x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"1857279285.rsc.cdn77.org","organization":""},"issuer":{"commonName":"YE2","organization":"Let's Encrypt"},"validity":{"start":"Thu, 04 Jun 2026 14:34:45 GMT","end":"Wed, 02 Sep 2026 14:34:44 GMT"},"fingerprint":{"sha1":"92:5D:A0:17:13:91:72:7B:B6:8C:6A:7D:A9:55:7F:C8:A9:47:11:99","sha256":"0E:FC:E3:4D:AD:32:B2:11:05:DC:E3:CD:CC:9E:10:DC:C5:2D:9E:1C:D7:C1:9C:00:92:15:43:C5:B7:0B:3A:D6"}}},"request":{"raw":"GET /assets/shared-kb1yqHaA.js HTTP/1.1\r\nHost: widget-v3.smartsuppcdn.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\nOrigin: https://digital-assettrade.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:19 GMT\r\ncontent-type: application/javascript\r\naccess-control-allow-origin: *\r\ncache-control: max-age=31536000, public, immutable\r\netag: W/\"6a670743-42705\"\r\nexpires: Tue, 27 Jul 2027 07:27:08 GMT\r\nlast-modified: Mon, 27 Jul 2026 07:22:43 GMT\r\nx-77-nzt: kxYsoyYb6hc7+BoipRw/9tfrvTD1adCOBIPf7ntPjtzvxj8KmcKm1QKq6MmkcYuwv0lVUeU\r\nx-77-nzt-ray: e2f7542072fcdf658732676a20a84c2e\r\nage: 19\r\nx-77-cache: HIT\r\nx-77-age: 10777\r\nvary: Accept-Encoding\r\ncontent-encoding: gzip\r\nserver: CDN77-Turbo\r\nx-77-pop: stockholmSE\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"CDN77","description":"CDN77 is a content delivery network (CDN).","website":"https://www.cdn77.com","common_platform_enumeration":"","icon":"CDN77.png","categories":["CDN"]}],"data":{"size":272133,"size_decoded":92601,"mime_type":"application/javascript","magic":"JavaScript source, Unicode text, UTF-8 text, with very long lines (44710)","md5":"4a99d6fd0e84ed566d578d0ed5dea128","sha1":"c729468068793db7ca783d243b2ec065b6e2f202","sha256":"99501ff83cea2d37fb29f4ff7e0bfc1a93655e56db91bce74171fe29f0821884","sha512":"fcab2b13f37fe49c7a500be1285445ec1dfb120ed4f6d909925ea5616ee9f62d999fe83c1f8210dcc1742528ee3469e5671b34191317836ab4ed3b020ade8608","ssdeep":"6144:mLjnOEIL18ad2jJKaQF+tRkYcuBa+y+mFJW:iOEIZRd29Uqj4r+mF4","tlshash":"b3443ad53294b03543db51e6906f1106b33e5c58580d812cf269ede638baec8a2f7fb8","first_seen":"2026-07-27T07:28:16.16312Z","last_seen":"2026-07-27T13:00:53.931658Z","times_seen":668,"resource_available":true,"data":"dmFyIGU9T2JqZWN0LmNyZWF0ZSx0PU9iamVjdC5kZWZpbmVQcm9wZXJ0eSxuPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iscj1PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyxpPU9iamVjdC5nZXRQcm90b3R5cGVPZixhPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHksbz0oZSx0KT0+KCk9PihlJiYodD1lKGU9MCkpLHQpLHM9KGUsdCk9PigpPT4odHx8KGUoKHQ9e2V4cG9ydHM6e319KS5leHBvcnRzLHQpLGU9bnVsbCksdC5leHBvcnRzKSxjPShlLG4pPT57bGV0IHI9e307Zm9yKHZhciBpIGluIGUpdChyLGkse2dldDplW2ldLGVudW1lcmFibGU6ITB9KTtyZXR1cm4gbnx8dChyLFN5bWJvbC50b1N0cmluZ1RhZyx7dmFsdWU6YE1vZHVsZWB9KSxyfSxsPShlLGksbyxzKT0+e2lmKGkmJnR5cGVvZiBpPT1gb2JqZWN0YHx8dHlwZW9mIGk9PWBmdW5jdGlvbmApZm9yKHZhciBjPXIoaSksbD0wLHU9Yy5sZW5ndGgsZDtsPHU7bCsrKWQ9Y1tsXSwhYS5jYWxsKGUsZCkmJmQhPT1vJiZ0KGUsZCx7Z2V0OihlPT5pW2VdKS5iaW5kKG51bGwsZCksZW51bWVyYWJsZTohKHM9bihpLGQpKXx8cy5lbnVtZXJhYmxlfSk7cmV0dXJuIGV9LHU9KG4scixhKT0+KGE9bj09bnVsbD97fTplKGkobikpLGwocnx8IW58fCFuLl9fZXNNb2R1bGU/dChhLGBkZWZhdWx0YCx7dmFsdWU6bixlbnVtZXJhYmxlOiEwfSk6YSxuKSksZD1lPT5hLmNhbGwoZSxgbW9kdWxlLmV4cG9ydHNgKT9lW2Btb2R1bGUuZXhwb3J0c2BdOmwodCh7fSxgX19lc01vZHVsZWAse3ZhbHVlOiEwfSksZSksZj1BcnJheS5pc0FycmF5LHA9QXJyYXkucHJvdG90eXBlLmluZGV4T2YsbT1BcnJheS5wcm90b3R5cGUuaW5jbHVkZXMsaD1BcnJheS5mcm9tLGc9T2JqZWN0LmRlZmluZVByb3BlcnR5LF89T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcix2PU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzLHk9T2JqZWN0LnByb3RvdHlwZSxlZT1BcnJheS5wcm90b3R5cGUsYj1PYmplY3QuZ2V0UHJvdG90eXBlT2YsdGU9T2JqZWN0LmlzRXh0ZW5zaWJsZTtmdW5jdGlvbiBuZShlKXtyZXR1cm4gdHlwZW9mIGU9PWBmdW5jdGlvbmB9dmFyIHg9KCk9Pnt9O2Z1bmN0aW9uIHJlKGUpe3JldHVybiBlKCl9ZnVuY3Rpb24gaWUoZSl7Zm9yKHZhciB0PTA7dDxlLmxlbmd0aDt0KyspZVt0XSgpfWZ1bmN0aW9uIGFlKCl7dmFyIGUsdDtyZXR1cm57cHJvbWlzZTpuZXcgUHJvbWlzZSgobixyKT0+e2U9bix0PXJ9KSxyZXNvbHZlOmUscmVqZWN0OnR9fXZhciBvZT0xPDwyNCxzZT0xMDI0LGNlPTIwNDgsbGU9NDA5Nix1ZT04MTkyLGRlPTE2Mzg0LGZlPTMyNzY4LHBlPTE8PDI1LG1lPTY1NTM2LGhlPTE8PDE5LGdlPTE8PDIwLF9lPTE8PDI1LHZlPTY1NTM2LHllPTE8PDIxLGJlPTE8PDIyLHhlPTE8PDIzLFNlPVN5bWJvbChgJHN0YXRlYCksQ2U9U3ltYm9sKGBsZWdhY3kgcHJvcHNgKSx3ZT1TeW1ib2woYGApLFRlPW5ldyBjbGFzcyBleHRlbmRzIEVycm9ye25hbWU9YFN0YWxlUmVhY3Rpb25FcnJvcmA7bWVzc2FnZT0iVGhlIHJlYWN0aW9uIHRoYXQgY2FsbGVkIGBnZXRBYm9ydFNpZ25hbCgpYCB3YXMgcmUtcnVuIG9yIGRlc3Ryb3llZCJ9LEVlPSEhZ2xvYmFsVGhpcy5kb2N1bWVudD8uY29udGVudFR5cGUmJmdsb2JhbFRoaXMuZG9jdW1lbnQuY29udGVudFR5cGUuaW5jbHVkZXMoYHhtbGApO2Z1bmN0aW9uIERlKGUpe3Rocm93IEVycm9yKGBodHRwczovL3N2ZWx0ZS5kZXYvZS9saWZlY3ljbGVfb3V0c2lkZV9jb21wb25lbnRgKX1mdW5jdGlvbiBPZSgpe3Rocm93IEVycm9yKGBodHRwczovL3N2ZWx0ZS5kZXYvZS9hc3luY19kZXJpdmVkX29ycGhhbmApfWZ1bmN0aW9uIGtlKGUsdCxuKXt0aHJvdyBFcnJvcihgaHR0cHM6Ly9zdmVsdGUuZGV2L2UvZWFjaF9rZXlfZHVwbGljYXRlYCl9ZnVuY3Rpb24gQWUoZSl7dGhyb3cgRXJyb3IoYGh0dHBzOi8vc3ZlbHRlLmRldi9lL2VmZmVjdF9pbl90ZWFyZG93bmApfWZ1bmN0aW9uIGplKCl7dGhyb3cgRXJyb3IoYGh0dHBzOi8vc3ZlbHRlLmRldi9lL2VmZmVjdF9pbl91bm93bmVkX2Rlcml2ZWRgKX1mdW5jdGlvbiBNZShlKXt0aHJvdyBFcnJvcihgaHR0cHM6Ly9zdmVsdGUuZGV2L2UvZWZmZWN0X29ycGhhbmApfWZ1bmN0aW9uIE5lKCl7dGhyb3cgRXJyb3IoYGh0dHBzOi8vc3ZlbHRlLmRldi9lL2VmZmVjdF91cGRhdGVfZGVwdGhfZXhjZWVkZWRgKX1mdW5jdGlvbiBQZShlKXt0aHJvdyBFcnJvcihgaHR0cHM6Ly9zdmVsdGUuZGV2L2UvcHJvcHNfaW52YWxpZF92YWx1ZWApfWZ1bmN0aW9uIEZlKCl7dGhyb3cgRXJyb3IoYGh0dHBzOi8vc3ZlbHRlLmRldi9lL3NldF9jb250ZXh0X2FmdGVyX2luaXRgKX1mdW5jdGlvbiBJZSgpe3Rocm93IEVycm9yKGBodHRwczovL3N2ZWx0ZS5kZXYvZS9zdGF0ZV9kZXNjcmlwdG9yc19maXhlZGApfWZ1bmN0aW9uIExlKCl7dGhyb3cgRXJyb3IoYGh0dHBzOi8vc3ZlbHRlLmRldi9lL3N0YXRlX3Byb3RvdHlwZV9maXhlZGApfWZ1bmN0aW9uIFJlKCl7dGhyb3cgRXJyb3IoYGh0dHBzOi8vc3ZlbHRlLmRldi9lL3N0YXRlX3Vuc2FmZV9tdXRhdGlvbmApfWZ1bmN0aW9uIHplKCl7dGhyb3cgRXJyb3IoYGh0dHBzOi8vc3ZlbHRlLmRldi9lL3N2ZWx0ZV9ib3VuZGFyeV9yZXNldF9vbmVycm9yYCl9dmFyIEJlPXt9LFM9U3ltYm9sKCksVmU9YGh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWxgLEhlPWBodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z2AsVWU9YGh0dHA6Ly93d3cudzMub3JnLzE5OTgvTWF0aC9NYXRoTUxgO2Z1bmN0aW9uIFdlKCl7Y29uc29sZS53YXJuKGBodHRwczovL3N2ZWx0ZS5kZXYvZS9kZXJpdmVkX2luZXJ0YCl9ZnVuY3Rpb24gR2UoZSl7Y29uc29sZS53YXJuKGBodHRwczovL3N2ZWx0ZS5kZXYvZS9oeWRyYXRpb25fbWlzbWF0Y2hgKX1mdW5jdGlvbiBLZSgpe2NvbnNvbGUud2FybihgaHR0cHM6Ly9zdmVsdGUuZGV2L2Uvc2VsZWN0X211bHRpcGxlX2ludmFsaWRfdmFsdWVgKX1mdW5jdGlvbiBxZSgpe2NvbnNvbGUud2FybihgaHR0cHM6Ly9zdmVsdGUuZGV2L2Uvc3ZlbHRlX2JvdW5kYXJ5X3Jlc2V0X25vb3BgKX12YXIgQz0hMTtmdW5jdGlvbiBKZShlKXtDPWV9dmFyIHc7ZnVuY3Rpb24gVChlKXtpZihlPT09bnVsbCl0aHJvdyBHZSgpLEJlO3JldHVybiB3PWV9ZnVuY3Rpb24gWWUoKXtyZXR1cm4gVChCbih3KSl9ZnVuY3Rpb24gWGUoZSl7aWYoQyl7aWYoQm4odykhPT1udWxsKXRocm93IEdlKCksQmU7dz1lfX1mdW5jdGlvbiBaZShlPTEpe2lmKEMpe2Zvcih2YXIgdD1lLG49dzt0LS07KW49Qm4obik7dz1ufX1mdW5jdGlvbiBRZShlPSEwKXtmb3IodmFyIHQ9MCxuPXc7Oyl7aWYobi5ub2RlVHlwZT09PTgpe3ZhciByPW4uZGF0YTtpZihyPT09YF1gKXtpZih0PT09MClyZXR1cm4gbjstLXR9ZWxzZSAocj09PWBbYHx8cj09PWBbIWB8fHJbMF09PT1gW2AmJiFpc05hTihOdW1iZXIoci5zbGljZSgxKSkpKSYmKHQrPTEpfXZhciBpPUJuKG4pO2UmJm4ucmVtb3ZlKCksbj1pfX1mdW5jdGlvbiAkZShlKXtpZighZXx8ZS5ub2RlVHlwZSE9PTgpdGhyb3cgR2UoKSxCZTtyZXR1cm4gZS5kYXRhfWZ1bmN0aW9uIGV0KGUpe3JldHVybiBlPT09dGhpcy52fWZ1bmN0aW9uIHR0KGUsdCl7cmV0dXJuIGU9PWU/ZSE9PXR8fHR5cGVvZiBlPT1gb2JqZWN0YCYmISFlfHx0eXBlb2YgZT09YGZ1bmN0aW9uYDp0PT10fWZ1bmN0aW9uIG50KGUpe3JldHVybiF0dChlLHRoaXMudil9dmFyIHJ0PSExLGl0PSExO2Z1bmN0aW9uIGF0KCl7aXQ9ITB9dmFyIEU9bnVsbDtmdW5jdGlvbiBvdChlKXtFPWV9ZnVuY3Rpb24gc3QoZSl7cmV0dXJuIGZ0KGBnZXRDb250ZXh0YCkuZ2V0KGUpfWZ1bmN0aW9uIGN0KGUsdCl7bGV0IG49ZnQoYHNldENvbnRleHRgKTtpZihydCl7dmFyIHI9SS5mOyFGJiZyJjMyJiYhRS5pfHxGZSgpfXJldHVybiBuLnNldChlLHQpLHR9ZnVuY3Rpb24gbHQoZSx0PSExLG4pe0U9e3A6RSxpOiExLGM6bnVsbCxlOm51bGwsczplLHg6bnVsbCxyOkksbDppdCYmIXQ/e3M6bnVsbCx1Om51bGwsJDpbXX06bnVsbH19ZnVuY3Rpb24gdXQoZSl7dmFyIHQ9RSxuPXQuZTtpZihuIT09bnVsbCl7dC5lPW51bGw7Zm9yKHZhciByIG9mIG4pc3Iocil9cmV0dXJuIGUhPT12b2lkIDAmJih0Lng9ZSksdC5pPSEwLEU9dC5wLGU/P3t9fWZ1bmN0aW9uIGR0KCl7cmV0dXJuIWl0fHxFIT09bnVsbCYmRS5sPT09bnVsbH1mdW5jdGlvbiBmdChlKXtyZXR1cm4gRT09PW51bGwmJkRlKGUpLEUuYz8/PW5ldyBNYXAocHQoRSl8fHZvaWQgMCl9ZnVuY3Rpb24gcHQoZSl7bGV0IHQ9ZS5wO2Zvcig7dCE9PW51bGw7KXtsZXQgZT10LmM7aWYoZSE9PW51bGwpcmV0dXJuIGU7dD10LnB9cmV0dXJuIG51bGx9dmFyIG10PVtdO2Z1bmN0aW9uIGh0KCl7dmFyIGU9bXQ7bXQ9W10saWUoZSl9ZnVuY3Rpb24gZ3QoZSl7aWYobXQubGVuZ3RoPT09MCYmIXp0KXt2YXIgdD1tdDtxdWV1ZU1pY3JvdGFzaygoKT0+e3Q9PT1tdCYmaHQoKX0pfW10LnB1c2goZSl9ZnVuY3Rpb24gX3QoKXtmb3IoO210Lmxlbmd0aD4wOylodCgpfWZ1bmN0aW9uIHZ0KGUpe3ZhciB0PUk7aWYodD09PW51bGwpcmV0dXJuIEYuZnw9eGUsZTtpZighKHQuZiYzMjc2OCkmJiEodC5mJjQpKXRocm93IGU7eXQoZSx0KX1mdW5jdGlvbiB5dChlLHQpe2Zvcig7dCE9PW51bGw7KXtpZih0LmYmMTI4KXtpZighKHQuZiYzMjc2OCkpdGhyb3cgZTt0cnl7dC5iLmVycm9yKGUpO3JldHVybn1jYXRjaCh0KXtlPXR9fXQ9dC5wYXJlbnR9dGhyb3cgZX12YXIgYnQ9fihjZXxsZXxzZSk7ZnVuY3Rpb24gRChlLHQpe2UuZj1lLmYmYnR8dH1mdW5jdGlvbiB4dChlKXtlLmYmNTEyfHxlLmRlcHM9PT1udWxsP0QoZSxzZSk6RChlLGxlKX1mdW5jdGlvbiBTdChlKXtpZihlIT09bnVsbClmb3IobGV0IHQgb2YgZSkhKHQuZiYyKXx8ISh0LmYmNjU1MzYpfHwodC5mXj12ZSxTdCh0LmRlcHMpKX1mdW5jdGlvbiBDdChlLHQsbil7ZS5mJjIwNDg/dC5hZGQoZSk6ZS5mJjQwOTYmJm4uYWRkKGUpLFN0KGUuZGVwcyksRChlLHNlKX1mdW5jdGlvbiB3dChlLHQsbil7aWYoZT09bnVsbClyZXR1cm4gdCh2b2lkIDApLG4mJm4odm9pZCAwKSx4O2xldCByPSRyKCgpPT5lLnN1YnNjcmliZSh0LG4pKTtyZXR1cm4gci51bnN1YnNjcmliZT8oKT0+ci51bnN1YnNjcmliZSgpOnJ9dmFyIFR0PVtdO2Z1bmN0aW9uIEV0KGUsdCl7cmV0dXJue3N1YnNjcmliZTpPKGUsdCkuc3Vic2NyaWJlfX1mdW5jdGlvbiBPKGUsdD14KXtsZXQgbj1udWxsLHI9bmV3IFNldDtmdW5jdGlvbiBpKHQpe2lmKHR0KGUsdCkmJihlPXQsbikpe2xldCB0PSFUdC5sZW5ndGg7Zm9yKGxldCB0IG9mIHIpdFsxXSgpLFR0LnB1c2godCxlKTtpZih0KXtmb3IobGV0IGU9MDtlPFR0Lmxlbmd0aDtlKz0yKVR0W2VdWzBdKFR0W2UrMV0pO1R0Lmxlbmd0aD0wfX19ZnVuY3Rpb24gYSh0KXtpKHQoZSkpfWZ1bmN0aW9uIG8obyxzPXgpe2xldCBjPVtvLHNdO3JldHVybiByLmFkZChjKSxyLnNpemU9PT0xJiYobj10KGksYSl8fHgpLG8oZSksKCk9PntyLmRlbGV0ZShjKSxyLnNpemU9PT0wJiZuJiYobigpLG49bnVsbCl9fXJldHVybntzZXQ6aSx1cGRhdGU6YSxzdWJzY3JpYmU6b319ZnVuY3Rpb24gayhlLHQsbil7bGV0IHI9IUFycmF5LmlzQXJyYXkoZSksaT1yP1tlXTplO2lmKCFpLmV2ZXJ5KEJvb2xlYW4pKXRocm93IEVycm9yKGBkZXJpdmVkKCkgZXhwZWN0cyBzdG9yZXMgYXMgaW5wdXQsIGdvdCBhIGZhbHN5IHZhbHVlYCk7bGV0IGE9dC5sZW5ndGg8MjtyZXR1cm4gRXQobiwoZSxuKT0+e2xldCBvPSExLHM9W10sYz0wLGw9eCx1PSgpPT57aWYoYylyZXR1cm47bCgpO2xldCBpPXQocj9zWzBdOnMsZSxuKTthP2UoaSk6bD10eXBlb2YgaT09YGZ1bmN0aW9uYD9pOnh9LGQ9aS5tYXAoKGUsdCk9Pnd0KGUsZT0+e3NbdF09ZSxjJj1+KDE8PHQpLG8mJnUoKX0sKCk9PntjfD0xPDx0fSkpO3JldHVybiBvPSEwLHUoKSxmdW5jdGlvbigpe2llKGQpLGwoKSxvPSExfX0pfWZ1bmN0aW9uIEEoZSl7bGV0IHQ7cmV0dXJuIHd0KGUsZT0+dD1lKSgpLHR9dmFyIER0PSExLE90PSExLGt0PVN5bWJvbCgpO2Z1bmN0aW9uIEF0KGUsdCxuKXtsZXQgcj1uW3RdPz89e3N0b3JlOm51bGwsc291cmNlOnduKHZvaWQgMCksdW5zdWJzY3JpYmU6eH07aWYoci5zdG9yZSE9PWUmJiEoa3QgaW4gbikpaWYoci51bnN1YnNjcmliZSgpLHIuc3RvcmU9ZT8/bnVsbCxlPT1udWxsKXIuc291cmNlLnY9dm9pZCAwLHIudW5zdWJzY3JpYmU9eDtlbHNle3ZhciBpPSEwO3IudW5zdWJzY3JpYmU9d3QoZSxlPT57aT9yLnNvdXJjZS52PWU6VG4oci5zb3VyY2UsZSl9KSxpPSExfXJldHVybiBlJiZrdCBpbiBuP0EoZSk6UihyLnNvdXJjZSl9ZnVuY3Rpb24ganQoZSx0KXtyZXR1cm4gTnQoZSx0KSx0fWZ1bmN0aW9uIE10KCl7bGV0IGU9e307ZnVuY3Rpb24gdCgpe2FyKCgpPT57Zm9yKHZhciB0IGluIGUpZVt0XS51bnN1YnNjcmliZSgpO2coZSxrdCx7ZW51bWVyYWJsZTohMSx2YWx1ZTohMH0pfSl9cmV0dXJuW2UsdF19ZnVuY3Rpb24gTnQoZSx0KXtEdD0hMDt0cnl7ZS5zZXQodCl9ZmluYWxseXtEdD0hMX19ZnVuY3Rpb24gUHQoZSx0LG4pe3JldHVybiBOdChlLG4pLHR9ZnVuY3Rpb24gRnQoZSl7dmFyIHQ9T3Q7dHJ5e3JldHVybiBPdD0hMSxbZSgpLE90XX1maW5hbGx5e090PXR9fXZhciBJdD1uZXcgU2V0LGo9bnVsbCxMdD1udWxsLE09bnVsbCxSdD1udWxsLHp0PSExLEJ0PSExLFZ0PW51bGwsSHQ9bnVsbCxVdD0wLFd0PTEsR3Q9Y2xhc3MgZXtpZD1XdCsrO2N1cnJlbnQ9bmV3IE1hcDtwcmV2aW91cz1uZXcgTWFwOyNlPW5ldyBTZXQ7I3Q9bmV3IFNldDsjbj1uZXcgU2V0OyNyPW5ldyBNYXA7I2k9bmV3IE1hcDsjYT1udWxsOyNvPVtdOyNzPVtdOyNjPW5ldyBTZXQ7I2w9bmV3IFNldDsjdT1uZXcgTWFwOyNkPW5ldyBTZXQ7aXNfZm9yaz0hMTsjZj0hMTsjcD1uZXcgU2V0OyNtKCl7cmV0dXJuIHRoaXMuaXNfZm9ya3x8dGhpcy4jaS5zaXplPjB9I2goKXtmb3IobGV0IG4gb2YgdGhpcy4jcClmb3IobGV0IHIgb2Ygbi4jaS5rZXlzKCkpe2Zvcih2YXIgZT0hMSx0PXI7dC5wYXJlbnQhPT1udWxsOyl7aWYodGhpcy4jdS5oYXModCkpe2U9ITA7YnJlYWt9dD10LnBhcmVudH1pZighZSlyZXR1cm4hMH1yZXR1cm4hMX1za2lwX2VmZmVjdChlKXt0aGlzLiN1LmhhcyhlKXx8dGhpcy4jdS5zZXQoZSx7ZDpbXSxtOltdfSksdGhpcy4jZC5kZWxldGUoZSl9dW5za2lwX2VmZmVjdChlLHQ9ZT0+dGhpcy5zY2hlZHVsZShlKSl7dmFyIG49dGhpcy4jdS5nZXQoZSk7aWYobil7dGhpcy4jdS5kZWxldGUoZSk7Zm9yKHZhciByIG9mIG4uZClEKHIsY2UpLHQocik7Zm9yKHIgb2Ygbi5tKUQocixsZSksdChyKX10aGlzLiNkLmFkZChlKX0jZygpe2lmKFV0Kys+MWUzJiYoSXQuZGVsZXRlKHRoaXMpLHF0KCkpLCF0aGlzLiNtKCkpe2ZvcihsZXQgZSBvZiB0aGlzLiNjKXRoaXMuI2wuZGVsZXRlKGUpLEQoZSxjZSksdGhpcy5zY2hlZHVsZShlKTtmb3IobGV0IGUgb2YgdGhpcy4jbClEKGUsbGUpLHRoaXMuc2NoZWR1bGUoZSl9bGV0IHQ9dGhpcy4jbzt0aGlzLiNvPVtdLHRoaXMuYXBwbHkoKTt2YXIgbj1WdD1bXSxyPVtdLGk9SHQ9W107Zm9yKGxldCBlIG9mIHQpdHJ5e3RoaXMuI18oZSxuLHIpfWNhdGNoKHQpe3Rocm93IGVuKGUpLHR9aWYoaj1udWxsLGkubGVuZ3RoPjApe3ZhciBhPWUuZW5zdXJlKCk7Zm9yKGxldCBlIG9mIGkpYS5zY2hlZHVsZShlKX1pZihWdD1udWxsLEh0PW51bGwsdGhpcy4jbSgpfHx0aGlzLiNoKCkpe3RoaXMuI3YociksdGhpcy4jdihuKTtmb3IobGV0W2UsdF1vZiB0aGlzLiN1KSR0KGUsdCl9ZWxzZXt0aGlzLiNyLnNpemU9PT0wJiZJdC5kZWxldGUodGhpcyksdGhpcy4jYy5jbGVhcigpLHRoaXMuI2wuY2xlYXIoKTtmb3IobGV0IGUgb2YgdGhpcy4jZSllKHRoaXMpO3RoaXMuI2UuY2xlYXIoKSxMdD10aGlzLFl0KHIpLFl0KG4pLEx0PW51bGwsdGhpcy4jYT8ucmVzb2x2ZSgpfXZhciBvPWo7aWYodGhpcy4jby5sZW5ndGg+MCl7bGV0IGU9bz8/PXRoaXM7ZS4jby5wdXNoKC4uLnRoaXMuI28uZmlsdGVyKHQ9PiFlLiNvLmluY2x1ZGVzKHQpKSl9byE9PW51bGwmJihJdC5hZGQobyksby4jZygpKSxydCYmIUl0Lmhhcyh0aGlzKSYmdGhpcy4jeSgpfSNfKGUsdCxuKXtlLmZePXNlO2Zvcih2YXIgcj1lLmZpcnN0O3IhPT1udWxsOyl7dmFyIGk9ci5mLGE9KGkmOTYpIT0wO2lmKCEoYSYmaSYxMDI0fHxpJjgxOTJ8fHRoaXMuI3UuaGFzKHIpKSYmci5mbiE9PW51bGwpe2E/ci5mXj1zZTppJjQ/dC5wdXNoKHIpOnJ0JiZpJjE2Nzc3MjI0P24ucHVzaChyKTpXcihyKSYmKGkmMTYmJnRoaXMuI2wuYWRkKHIpLFlyKHIpKTt2YXIgbz1yLmZpcnN0O2lmKG8hPT1udWxsKXtyPW87Y29udGludWV9fWZvcig7ciE9PW51bGw7KXt2YXIgcz1yLm5leHQ7aWYocyE9PW51bGwpe3I9czticmVha31yPXIucGFyZW50fX19I3YoZSl7Zm9yKHZhciB0PTA7dDxlLmxlbmd0aDt0Kz0xKUN0KGVbdF0sdGhpcy4jYyx0aGlzLiNsKX1jYXB0dXJlKGUsdCxuPSExKXtlLnYhPT1TJiYhdGhpcy5wcmV2aW91cy5oYXMoZSkmJnRoaXMucHJldmlvdXMuc2V0KGUsZS52KSxlLmYmODM4ODYwOHx8KHRoaXMuY3VycmVudC5zZXQoZSxbdCxuXSksTT8uc2V0KGUsdCkpLHRoaXMuaXNfZm9ya3x8KGUudj10KX1hY3RpdmF0ZSgpe2o9dGhpc31kZWFjdGl2YXRlKCl7aj1udWxsLE09bnVsbH1mbHVzaCgpe3RyeXtCdD0hMCxqPXRoaXMsdGhpcy4jZygpfWZpbmFsbHl7VXQ9MCxSdD1udWxsLFZ0PW51bGwsSHQ9bnVsbCxCdD0hMSxqPW51bGwsTT1udWxsLGJuLmNsZWFyKCl9fWRpc2NhcmQoKXtmb3IobGV0IGUgb2YgdGhpcy4jdCllKHRoaXMpO3RoaXMuI3QuY2xlYXIoKSx0aGlzLiNuLmNsZWFyKCksSXQuZGVsZXRlKHRoaXMpfXJlZ2lzdGVyX2NyZWF0ZWRfZWZmZWN0KGUpe3RoaXMuI3MucHVzaChlKX0jeSgpe2ZvcihsZXQgbCBvZiBJdCl7dmFyIGU9bC5pZDx0aGlzLmlkLHQ9W107Zm9yKGxldFtyLFtpLGFdXW9mIHRoaXMuY3VycmVudCl7aWYobC5jdXJyZW50LmhhcyhyKSl7dmFyIG49bC5jdXJyZW50LmdldChyKVswXTtpZihlJiZpIT09bilsLmN1cnJlbnQuc2V0KHIsW2ksYV0pO2Vsc2UgY29udGludWV9dC5wdXNoKHIpfXZhciByPVsuLi5sLmN1cnJlbnQua2V5cygpXS5maWx0ZXIoZT0+IXRoaXMuY3VycmVudC5oYXMoZSkpO2lmKHIubGVuZ3RoPT09MCllJiZsLmRpc2NhcmQoKTtlbHNlIGlmKHQubGVuZ3RoPjApe2lmKGUpZm9yKGxldCBlIG9mIHRoaXMuI2QpbC51bnNraXBfZWZmZWN0KGUsZT0+e2UuZiY0MTk0MzIwP2wuc2NoZWR1bGUoZSk6bC4jdihbZV0pfSk7bC5hY3RpdmF0ZSgpO3ZhciBpPW5ldyBTZXQsYT1uZXcgTWFwO2Zvcih2YXIgbyBvZiB0KVh0KG8scixpLGEpO2E9bmV3IE1hcDt2YXIgcz1bLi4ubC5jdXJyZW50LmtleXMoKV0uZmlsdGVyKGU9PnRoaXMuY3VycmVudC5oYXMoZSk/dGhpcy5jdXJyZW50LmdldChlKVswXSE9PWU6ITApO2ZvcihsZXQgZSBvZiB0aGlzLiNzKSEoZS5mJjE1NTY0OCkmJlp0KGUscyxhKSYmKGUuZiY0MTk0MzIwPyhEKGUsY2UpLGwuc2NoZWR1bGUoZSkpOmwuI2MuYWRkKGUpKTtpZihsLiNvLmxlbmd0aD4wKXtsLmFwcGx5KCk7Zm9yKHZhciBjIG9mIGwuI28pbC4jXyhjLFtdLFtdKTtsLiNvPVtdfWwuZGVhY3RpdmF0ZSgpfX1mb3IobGV0IGUgb2YgSXQpZS4jcC5oYXModGhpcykmJihlLiNwLmRlbGV0ZSh0aGlzKSxlLiNwLnNpemU9PT0wJiYhZS4jbSgpJiYoZS5hY3RpdmF0ZSgpLGUuI2coKSkpfWluY3JlbWVudChlLHQpe2xldCBuPXRoaXMuI3IuZ2V0KHQpPz8wO2lmKHRoaXMuI3Iuc2V0KHQsbisxKSxlKXtsZXQgZT10aGlzLiNpLmdldCh0KT8/MDt0aGlzLiNpLnNldCh0LGUrMSl9fWRlY3JlbWVudChlLHQsbil7bGV0IHI9dGhpcy4jci5nZXQodCk/PzA7aWYocj09PTE/dGhpcy4jci5kZWxldGUodCk6dGhpcy4jci5zZXQodCxyLTEpLGUpe2xldCBlPXRoaXMuI2kuZ2V0KHQpPz8wO2U9PT0xP3RoaXMuI2kuZGVsZXRlKHQpOnRoaXMuI2kuc2V0KHQsZS0xKX10aGlzLiNmfHxufHwodGhpcy4jZj0hMCxndCgoKT0+e3RoaXMuI2Y9ITEsdGhpcy5mbHVzaCgpfSkpfXRyYW5zZmVyX2VmZmVjdHMoZSx0KXtmb3IobGV0IHQgb2YgZSl0aGlzLiNjLmFkZCh0KTtmb3IobGV0IGUgb2YgdCl0aGlzLiNsLmFkZChlKTtlLmNsZWFyKCksdC5jbGVhcigpfW9uY29tbWl0KGUpe3RoaXMuI2UuYWRkKGUpfW9uZGlzY2FyZChlKXt0aGlzLiN0LmFkZChlKX1vbl9mb3JrX2NvbW1pdChlKXt0aGlzLiNuLmFkZChlKX1ydW5fZm9ya19jb21taXRfY2FsbGJhY2tzKCl7Zm9yKGxldCBlIG9mIHRoaXMuI24pZSh0aGlzKTt0aGlzLiNuLmNsZWFyKCl9c2V0dGxlZCgpe3JldHVybih0aGlzLiNhPz89YWUoKSkucHJvbWlzZX1zdGF0aWMgZW5zdXJlKCl7aWYoaj09PW51bGwpe2xldCB0PWo9bmV3IGU7QnR8fChJdC5hZGQoaiksenR8fGd0KCgpPT57aj09PXQmJnQuZmx1c2goKX0pKX1yZXR1cm4gan1hcHBseSgpe2lmKCFydHx8IXRoaXMuaXNfZm9yayYmSXQuc2l6ZT09PTEpe009bnVsbDtyZXR1cm59TT1uZXcgTWFwO2ZvcihsZXRbZSxbdF1db2YgdGhpcy5jdXJyZW50KU0uc2V0KGUsdCk7Zm9yKGxldCBuIG9mIEl0KWlmKCEobj09PXRoaXN8fG4uaXNfZm9yaykpe3ZhciBlPSExLHQ9ITE7aWYobi5pZDx0aGlzLmlkKWZvcihsZXRbcixbLGldXW9mIG4uY3VycmVudClpfHwoZXx8PXRoaXMuY3VycmVudC5oYXMociksdHx8PSF0aGlzLmN1cnJlbnQuaGFzKHIpKTtpZihlJiZ0KXRoaXMuI3AuYWRkKG4pO2Vsc2UgZm9yKGxldFtlLHRdb2Ygbi5wcmV2aW91cylNLmhhcyhlKXx8TS5zZXQoZSx0KX19c2NoZWR1bGUoZSl7aWYoUnQ9ZSxlLmI/LmlzX3BlbmRpbmcmJmUuZiYxNjc3NzIyOCYmIShlLmYmMzI3NjgpKXtlLmIuZGVmZXJfZWZmZWN0KGUpO3JldHVybn1mb3IodmFyIHQ9ZTt0LnBhcmVudCE9PW51bGw7KXt0PXQucGFyZW50O3ZhciBuPXQuZjtpZihWdCE9PW51bGwmJnQ9PT1JJiYocnR8fChGPT09bnVsbHx8IShGLmYmMikpJiYhRHQpKXJldHVybjtpZihuJjk2KXtpZighKG4mMTAyNCkpcmV0dXJuO3QuZl49c2V9fXRoaXMuI28ucHVzaCh0KX19O2Z1bmN0aW9uIEt0KGUpe3ZhciB0PXp0O3p0PSEwO3RyeXt2YXIgbjtmb3IoZSYmKGohPT1udWxsJiYhai5pc19mb3JrJiZqLmZsdXNoKCksbj1lKCkpOzspe2lmKF90KCksaj09PW51bGwpcmV0dXJuIG47ai5mbHVzaCgpfX1maW5hbGx5e3p0PXR9fWZ1bmN0aW9uIHF0KCl7dHJ5e05lKCl9Y2F0Y2goZSl7eXQoZSxSdCl9fXZhciBKdD1udWxsO2Z1bmN0aW9uIFl0KGUpe3ZhciB0PWUubGVuZ3RoO2lmKHQhPT0wKXtmb3IodmFyIG49MDtuPHQ7KXt2YXIgcj1lW24rK107aWYoIShyLmYmMjQ1NzYpJiZXcihyKSYmKEp0PW5ldyBTZXQsWXIociksci5kZXBzPT09bnVsbCYmci5maXJzdD09PW51bGwmJnIubm9kZXM9PT1udWxsJiZyLnRlYXJkb3duPT09bnVsbCYmci5hYz09PW51bGwmJnhyKHIpLEp0Py5zaXplPjApKXtibi5jbGVhcigpO2ZvcihsZXQgZSBvZiBKdCl7aWYoZS5mJjI0NTc2KWNvbnRpbnVlO2xldCB0PVtlXSxuPWUucGFyZW50O2Zvcig7biE9PW51bGw7KUp0LmhhcyhuKSYmKEp0LmRlbGV0ZShuKSx0LnB1c2gobikpLG49bi5wYXJlbnQ7Zm9yKGxldCBlPXQubGVuZ3RoLTE7ZT49MDtlLS0pe2xldCBuPXRbZV07bi5mJjI0NTc2fHxZcihuKX19SnQuY2xlYXIoKX19SnQ9bnVsbH19ZnVuY3Rpb24gWHQoZSx0LG4scil7aWYoIW4uaGFzKGUpJiYobi5hZGQoZSksZS5yZWFjdGlvbnMhPT1udWxsKSlmb3IobGV0IGkgb2YgZS5yZWFjdGlvbnMpe2xldCBlPWkuZjtlJjI/WHQoaSx0LG4scik6ZSY0MTk0MzIwJiYhKGUmMjA0OCkmJlp0KGksdCxyKSYmKEQoaSxjZSksUXQoaSkpfX1mdW5jdGlvbiBadChlLHQsbil7bGV0IHI9bi5nZXQoZSk7aWYociE9PXZvaWQgMClyZXR1cm4gcjtpZihlLmRlcHMhPT1udWxsKWZvcihsZXQgciBvZiBlLmRlcHMpe2lmKG0uY2FsbCh0LHIpKXJldHVybiEwO2lmKHIuZiYyJiZadChyLHQsbikpcmV0dXJuIG4uc2V0KHIsITApLCEwfXJldHVybiBuLnNldChlLCExKSwhMX1mdW5jdGlvbiBRdChlKXtqLnNjaGVkdWxlKGUpfWZ1bmN0aW9uICR0KGUsdCl7aWYoIShlLmYmMzImJmUuZiYxMDI0KSl7ZS5mJjIwNDg/dC5kLnB1c2goZSk6ZS5mJjQwOTYmJnQubS5wdXNoKGUpLEQoZSxzZSk7Zm9yKHZhciBuPWUuZmlyc3Q7biE9PW51bGw7KSR0KG4sdCksbj1uLm5leHR9fWZ1bmN0aW9uIGVuKGUpe0QoZSxzZSk7Zm9yKHZhciB0PWUuZmlyc3Q7dCE9PW51bGw7KWVuKHQpLHQ9dC5uZXh0fWZ1bmN0aW9uIHRuKGUpe2xldCB0PTAsbj1TbigwKSxyO3JldHVybigpPT57aXIoKSYmKFIobiksZnIoKCk9Pih0PT09MCYmKHI9JHIoKCk9PmUoKCk9PmtuKG4pKSkpLHQrPTEsKCk9PntndCgoKT0+ey0tdCx0PT09MCYmKHI/LigpLHI9dm9pZCAwLGtuKG4pKX0pfSkpKX19dmFyIG5uPW1lfGhlO2Z1bmN0aW9uIHJuKGUsdCxuLHIpe25ldyBhbihlLHQsbixyKX12YXIgYW49Y2xhc3N7cGFyZW50O2lzX3BlbmRpbmc9ITE7dHJhbnNmb3JtX2Vycm9yOyNlOyN0PUM/dzpudWxsOyNuOyNyOyNpOyNhPW51bGw7I289bnVsbDsjcz1udWxsOyNjPW51bGw7I2w9MDsjdT0wOyNkPSExOyNmPW5ldyBTZXQ7I3A9bmV3IFNldDsjbT1udWxsOyNoPXRuKCgpPT4odGhpcy4jbT1Tbih0aGlzLiNsKSwoKT0+e3RoaXMuI209bnVsbH0pKTtjb25zdHJ1Y3RvcihlLHQsbixyKXt0aGlzLiNlPWUsdGhpcy4jbj10LHRoaXMuI3I9ZT0+e3ZhciB0PUk7dC5iPXRoaXMsdC5mfD0xMjgsbihlKX0sdGhpcy5wYXJlbnQ9SS5iLHRoaXMudHJhbnNmb3JtX2Vycm9yPXI/P3RoaXMucGFyZW50Py50cmFuc2Zvcm1fZXJyb3I/PyhlPT5lKSx0aGlzLiNpPW1yKCgpPT57aWYoQyl7bGV0IGU9dGhpcy4jdDtZZSgpO2xldCB0PWUuZGF0YT09PWBbIWA7aWYoZS5kYXRhLnN0YXJ0c1dpdGgoYFs/YCkpe2xldCB0PUpTT04ucGFyc2UoZS5kYXRhLnNsaWNlKDIpKTt0aGlzLiNfKHQpfWVsc2UgdD90aGlzLiN2KCk6dGhpcy4jZygpfWVsc2UgdGhpcy4jeSgpfSxubiksQyYmKHRoaXMuI2U9dyl9I2coKXt0cnl7dGhpcy4jYT1ncigoKT0+dGhpcy4jcih0aGlzLiNlKSl9Y2F0Y2goZSl7dGhpcy5lcnJvcihlKX19I18oZSl7bGV0IHQ9dGhpcy4jbi5mYWlsZWQ7dCYmKHRoaXMuI3M9Z3IoKCk9Pnt0KHRoaXMuI2UsKCk9PmUsKCk9PigpPT57fSl9KSl9I3YoKXtsZXQgZT10aGlzLiNuLnBlbmRpbmc7ZSYmKHRoaXMuaXNfcGVuZGluZz0hMCx0aGlzLiNvPWdyKCgpPT5lKHRoaXMuI2UpKSxndCgoKT0+e3ZhciBlPXRoaXMuI2M9ZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpLHQ9em4oKTtlLmFwcGVuZCh0KSx0aGlzLiNhPXRoaXMuI3goKCk9PmdyKCgpPT50aGlzLiNyKHQpKSksdGhpcy4jdT09PTAmJih0aGlzLiNlLmJlZm9yZShlKSx0aGlzLiNjPW51bGwsU3IodGhpcy4jbywoKT0+e3RoaXMuI289bnVsbH0pLHRoaXMuI2IoaikpfSkpfSN5KCl7dHJ5e2lmKHRoaXMuaXNfcGVuZGluZz10aGlzLmhhc19wZW5kaW5nX3NuaXBwZXQoKSx0aGlzLiN1PTAsdGhpcy4jbD0wLHRoaXMuI2E9Z3IoKCk9Pnt0aGlzLiNyKHRoaXMuI2UpfSksdGhpcy4jdT4wKXt2YXIgZT10aGlzLiNjPWRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTtFcih0aGlzLiNhLGUpO2xldCB0PXRoaXMuI24ucGVuZGluZzt0aGlzLiNvPWdyKCgpPT50KHRoaXMuI2UpKX1lbHNlIHRoaXMuI2Ioail9Y2F0Y2goZSl7dGhpcy5lcnJvcihlKX19I2IoZSl7dGhpcy5pc19wZW5kaW5nPSExLGUudHJhbnNmZXJfZWZmZWN0cyh0aGlzLiNmLHRoaXMuI3ApfWRlZmVyX2VmZmVjdChlKXtDdChlLHRoaXMuI2YsdGhpcy4jcCl9aXNfcmVuZGVyZWQoKXtyZXR1cm4hdGhpcy5pc19wZW5kaW5nJiYoIXRoaXMucGFyZW50fHx0aGlzLnBhcmVudC5pc19yZW5kZXJlZCgpKX1oYXNfcGVuZGluZ19zbmlwcGV0KCl7cmV0dXJuISF0aGlzLiNuLnBlbmRpbmd9I3goZSl7dmFyIHQ9SSxuPUYscj1FO05yKHRoaXMuI2kpLE1yKHRoaXMuI2kpLG90KHRoaXMuI2kuY3R4KTt0cnl7cmV0dXJuIEd0LmVuc3VyZSgpLGUoKX1jYXRjaChlKXtyZXR1cm4gdnQoZSksbnVsbH1maW5hbGx5e05yKHQpLE1yKG4pLG90KHIpfX0jUyhlLHQpe2lmKCF0aGlzLmhhc19wZW5kaW5nX3NuaXBwZXQoKSl7dGhpcy5wYXJlbnQmJnRoaXMucGFyZW50LiNTKGUsdCk7cmV0dXJufXRoaXMuI3UrPWUsdGhpcy4jdT09PTAmJih0aGlzLiNiKHQpLHRoaXMuI28mJlNyKHRoaXMuI28sKCk9Pnt0aGlzLiNvPW51bGx9KSx0aGlzLiNjJiY9KHRoaXMuI2UuYmVmb3JlKHRoaXMuI2MpLG51bGwpKX11cGRhdGVfcGVuZGluZ19jb3VudChlLHQpe3RoaXMuI1MoZSx0KSx0aGlzLiNsKz1lLCEoIXRoaXMuI218fHRoaXMuI2QpJiYodGhpcy4jZD0hMCxndCgoKT0+e3RoaXMuI2Q9ITEsdGhpcy4jbSYmRW4odGhpcy4jbSx0aGlzLiNsKX0pKX1nZXRfZWZmZWN0X3BlbmRpbmcoKXtyZXR1cm4gdGhpcy4jaCgpLFIodGhpcy4jbSl9ZXJyb3IoZSl7aWYoIXRoaXMuI24ub25lcnJvciYmIXRoaXMuI24uZmFpbGVkKXRocm93IGU7aj8uaXNfZm9yaz8odGhpcy4jYSYmai5za2lwX2VmZmVjdCh0aGlzLiNhKSx0aGlzLiNvJiZqLnNraXBfZWZmZWN0KHRoaXMuI28pLHRoaXMuI3MmJmouc2tpcF9lZmZlY3QodGhpcy4jcyksai5vbl9mb3JrX2NvbW1pdCgoKT0+e3RoaXMuI0MoZSl9KSk6dGhpcy4jQyhlKX0jQyhlKXt0aGlzLiNhJiY9KFAodGhpcy4jYSksbnVsbCksdGhpcy4jbyYmPShQKHRoaXMuI28pLG51bGwpLHRoaXMuI3MmJj0oUCh0aGlzLiNzKSxudWxsKSxDJiYoVCh0aGlzLiN0KSxaZSgpLFQoUWUoKSkpO3ZhciB0PXRoaXMuI24ub25lcnJvcjtsZXQgbj10aGlzLiNuLmZhaWxlZDt2YXIgcj0hMSxpPSExO2xldCBhPSgpPT57aWYocil7cWUoKTtyZXR1cm59cj0hMCxpJiZ6ZSgpLHRoaXMuI3MhPT1udWxsJiZTcih0aGlzLiNzLCgpPT57dGhpcy4jcz1udWxsfSksdGhpcy4jeCgoKT0+e3RoaXMuI3koKX0pfSxvPWU9Pnt0cnl7aT0hMCx0Py4oZSxhKSxpPSExfWNhdGNoKGUpe3l0KGUsdGhpcy4jaSYmdGhpcy4jaS5wYXJlbnQpfW4mJih0aGlzLiNzPXRoaXMuI3goKCk9Pnt0cnl7cmV0dXJuIGdyKCgpPT57dmFyIHQ9STt0LmI9dGhpcyx0LmZ8PTEyOCxuKHRoaXMuI2UsKCk9PmUsKCk9PmEpfSl9Y2F0Y2goZSl7cmV0dXJuIHl0KGUsdGhpcy4jaS5wYXJlbnQpLG51bGx9fSkpfTtndCgoKT0+e3ZhciB0O3RyeXt0PXRoaXMudHJhbnNmb3JtX2Vycm9yKGUpfWNhdGNoKGUpe3l0KGUsdGhpcy4jaSYmdGhpcy4jaS5wYXJlbnQpO3JldHVybn10eXBlb2YgdD09YG9iamVjdGAmJnQmJnR5cGVvZiB0LnRoZW49PWBmdW5jdGlvbmA/dC50aGVuKG8sZT0+eXQoZSx0aGlzLiNpJiZ0aGlzLiNpLnBhcmVudCkpOm8odCl9KX19O2Z1bmN0aW9uIG9uKGUsdCxuLHIpe2xldCBpPWR0KCk/dW46cG47dmFyIGE9ZS5maWx0ZXIoZT0+IWUuc2V0dGxlZCk7aWYobi5sZW5ndGg9PT0wJiZhLmxlbmd0aD09PTApe3IodC5tYXAoaSkpO3JldHVybn12YXIgbz1JLHM9c24oKSxjPWEubGVuZ3RoPT09MT9hWzBdLnByb21pc2U6YS5sZW5ndGg+MT9Qcm9taXNlLmFsbChhLm1hcChlPT5lLnByb21pc2UpKTpudWxsO2Z1bmN0aW9uIGwoZSl7cygpO3RyeXtyKGUpfWNhdGNoKGUpe28uZiYxNjM4NHx8eXQoZSxvKX1jbigpfWlmKG4ubGVuZ3RoPT09MCl7Yy50aGVuKCgpPT5sKHQubWFwKGkpKSk7cmV0dXJufXZhciB1PWxuKCk7ZnVuY3Rpb24gZCgpe1Byb21pc2UuYWxsKG4ubWFwKGU9PmRuKGUpKSkudGhlbihlPT5sKFsuLi50Lm1hcChpKSwuLi5lXSkpLmNhdGNoKGU9Pnl0KGUsbykpLmZpbmFsbHkoKCk9PnUoKSl9Yz9jLnRoZW4oKCk9PntzKCksZCgpLGNuKCl9KTpkKCl9ZnVuY3Rpb24gc24oKXt2YXIgZT1JLHQ9RixuPUUscj1qO3JldHVybiBmdW5jdGlvbihpPSEwKXtOcihlKSxNcih0KSxvdChuKSxpJiYhKGUuZiYxNjM4NCkmJihyPy5hY3RpdmF0ZSgpLHI/LmFwcGx5KCkpfX1mdW5jdGlvbiBjbihlPSEwKXtOcihudWxsKSxNcihudWxsKSxvdChudWxsKSxlJiZqPy5kZWFjdGl2YXRlKCl9ZnVuY3Rpb24gbG4oKXt2YXIgZT1JLHQ9ZS5iLG49aixyPXQuaXNfcmVuZGVyZWQoKTtyZXR1cm4gdC51cGRhdGVfcGVuZGluZ19jb3VudCgxLG4pLG4uaW5jcmVtZW50KHIsZSksKGk9ITEpPT57dC51cGRhdGVfcGVuZGluZ19jb3VudCgtMSxuKSxuLmRlY3JlbWVudChyLGUsaSl9fWZ1bmN0aW9uIHVuKGUpe3ZhciB0PTJ8Y2U7cmV0dXJuIEkhPT1udWxsJiYoSS5mfD1oZSkse2N0eDpFLGRlcHM6bnVsbCxlZmZlY3RzOm51bGwsZXF1YWxzOmV0LGY6dCxmbjplLHJlYWN0aW9uczpudWxsLHJ2OjAsdjpTLHd2OjAscGFyZW50OkksYWM6bnVsbH19ZnVuY3Rpb24gZG4oZSx0LG4pe2xldCByPUk7cj09PW51bGwmJk9lKCk7dmFyIGk9dm9pZCAwLGE9U24oUyksbz0hRixzPW5ldyBNYXA7cmV0dXJuIGRyKCgpPT57dmFyIHQ9SSxuPWFlKCk7aT1uLnByb21pc2U7dHJ5e1Byb21pc2UucmVzb2x2ZShlKCkpLnRoZW4obi5yZXNvbHZlLG4ucmVqZWN0KS5maW5hbGx5KGNuKX1jYXRjaChlKXtuLnJlamVjdChlKSxjbigpfXZhciBjPWo7aWYobyl7aWYodC5mJjMyNzY4KXZhciBsPWxuKCk7aWYoci5iLmlzX3JlbmRlcmVkKCkpcy5nZXQoYyk/LnJlamVjdChUZSkscy5kZWxldGUoYyk7ZWxzZXtmb3IobGV0IGUgb2Ygcy52YWx1ZXMoKSllLnJlamVjdChUZSk7cy5jbGVhcigpfXMuc2V0KGMsbil9bGV0IHU9KGUsbj12b2lkIDApPT57aWYobCYmbChuPT09VGUpLCEobj09PVRlfHx0LmYmMTYzODQpKXtpZihjLmFjdGl2YXRlKCksbilhLmZ8PXhlLEVuKGEsbik7ZWxzZXthLmYmODM4ODYwOCYmKGEuZl49eGUpLEVuKGEsZSk7Zm9yKGxldFtlLHRdb2Ygcyl7aWYocy5kZWxldGUoZSksZT09PWMpYnJlYWs7dC5yZWplY3QoVGUpfX1jLmRlYWN0aXZhdGUoKX19O24ucHJvbWlzZS50aGVuKHUsZT0+dShudWxsLGV8fGB1bmtub3duYCkpfSksYXIoKCk9Pntmb3IobGV0IGUgb2Ygcy52YWx1ZXMoKSllLnJlamVjdChUZSl9KSxuZXcgUHJvbWlzZShlPT57ZnVuY3Rpb24gdChuKXtmdW5jdGlvbiByKCl7bj09PWk/ZShhKTp0KGkpfW4udGhlbihyLHIpfXQoaSl9KX1mdW5jdGlvbiBmbihlKXtsZXQgdD11bihlKTtyZXR1cm4gcnR8fEZyKHQpLHR9ZnVuY3Rpb24gcG4oZSl7bGV0IHQ9dW4oZSk7cmV0dXJuIHQuZXF1YWxzPW50LHR9ZnVuY3Rpb24gbW4oZSl7dmFyIHQ9ZS5lZmZlY3RzO2lmKHQhPT1udWxsKXtlLmVmZmVjdHM9bnVsbDtmb3IodmFyIG49MDtuPHQubGVuZ3RoO24rPTEpUCh0W25dKX19ZnVuY3Rpb24gaG4oZSl7dmFyIHQsbj1JLHI9ZS5wYXJlbnQ7aWYoIWtyJiZyIT09bnVsbCYmci5mJjI0NTc2KXJldHVybiBXZSgpLGUudjtOcihyKTt0cnl7ZS5mJj1+dmUsbW4oZSksdD1LcihlKX1maW5hbGx5e05yKG4pfXJldHVybiB0fWZ1bmN0aW9uIGduKGUpe3ZhciB0PWhuKGUpO2lmKCFlLmVxdWFscyh0KSYmKGUud3Y9VXIoKSwoIWo/LmlzX2Zvcmt8fGUuZGVwcz09PW51bGwpJiYoaj09PW51bGw/ZS52PXQ6ai5jYXB0dXJlKGUsdCwhMCksZS5kZXBzPT09bnVsbCkpKXtEKGUsc2UpO3JldHVybn1rcnx8KE09PT1udWxsP3h0KGUpOihpcigpfHxqPy5pc19mb3JrKSYmTS5zZXQoZSx0KSl9ZnVuY3Rpb24gX24oZSl7aWYoZS5lZmZlY3RzIT09bnVsbClmb3IobGV0IHQgb2YgZS5lZmZlY3RzKSh0LnRlYXJkb3dufHx0LmFjKSYmKHQudGVhcmRvd24/LigpLHQuYWM/LmFib3J0KFRlKSx0LnRlYXJkb3duPXgsdC5hYz1udWxsLEpyKHQsMCksdnIodCkpfWZ1bmN0aW9uIHZuKGUpe2lmKGUuZWZmZWN0cyE9PW51bGwpZm9yKGxldCB0IG9mIGUuZWZmZWN0cyl0LnRlYXJkb3duJiZZcih0KX12YXIgeW49bmV3IFNldCxibj1uZXcgTWFwLHhuPSExO2Z1bmN0aW9uIFNuKGUsdCl7cmV0dXJue2Y6MCx2OmUscmVhY3Rpb25zOm51bGwsZXF1YWxzOmV0LHJ2OjAsd3Y6MH19ZnVuY3Rpb24gQ24oZSx0KXtsZXQgbj1TbihlLHQpO3JldHVybiBGcihuKSxufWZ1bmN0aW9uIHduKGUsdD0hMSxuPSEwKXtsZXQgcj1TbihlKTtyZXR1cm4gdHx8KHIuZXF1YWxzPW50KSxpdCYmbiYmRSE9PW51bGwmJkUubCE9PW51bGwmJihFLmwucz8/PVtdKS5wdXNoKHIpLHJ9ZnVuY3Rpb24gVG4oZSx0LG49ITEpe3JldHVybiBGIT09bnVsbCYmKCFqcnx8Ri5mJjEzMTA3MikmJmR0KCkmJkYuZiY0MzI1Mzk0JiYoUHI9PT1udWxsfHwhbS5jYWxsKFByLGUpKSYmUmUoKSxFbihlLG4/am4odCk6dCxIdCl9ZnVuY3Rpb24gRW4oZSx0LG49bnVsbCl7aWYoIWUuZXF1YWxzKHQpKXtibi5zZXQoZSxrcj90OmUudik7dmFyIHI9R3QuZW5zdXJlKCk7aWYoci5jYXB0dXJlKGUsdCksZS5mJjIpe2xldCB0PWU7ZS5mJjIwNDgmJmhuKHQpLE09PT1udWxsJiZ4dCh0KX1lLnd2PVVyKCksQW4oZSxjZSxuKSxkdCgpJiZJIT09bnVsbCYmSS5mJjEwMjQmJiEoSS5mJjk2KSYmKExyPT09bnVsbD9ScihbZV0pOkxyLnB1c2goZSkpLCFyLmlzX2ZvcmsmJnluLnNpemU+MCYmIXhuJiZEbigpfXJldHVybiB0fWZ1bmN0aW9uIERuKCl7eG49ITE7Zm9yKGxldCBlIG9mIHluKWUuZiYxMDI0JiZEKGUsbGUpLFdyKGUpJiZZcihlKTt5bi5jbGVhcigpfWZ1bmN0aW9uIE9uKGUsdD0xKXt2YXIgbj1SKGUpLHI9dD09PTE/bisrOm4tLTtyZXR1cm4gVG4oZSxuKSxyfWZ1bmN0aW9uIGtuKGUpe1RuKGUsZS52KzEpfWZ1bmN0aW9uIEFuKGUsdCxuKXt2YXIgcj1lLnJlYWN0aW9ucztpZihyIT09bnVsbClmb3IodmFyIGk9ZHQoKSxhPXIubGVuZ3RoLG89MDtvPGE7bysrKXt2YXIgcz1yW29dLGM9cy5mO2lmKCEoIWkmJnM9PT1JKSl7dmFyIGw9KGMmY2UpPT09MDtpZihsJiZEKHMsdCksYyYyKXt2YXIgdT1zO00/LmRlbGV0ZSh1KSxjJjY1NTM2fHwoYyY1MTImJihJPT09bnVsbHx8IShJLmYmMjA5NzE1MikpJiYocy5mfD12ZSksQW4odSxsZSxuKSl9ZWxzZSBpZihsKXt2YXIgZD1zO2MmMTYmJkp0IT09bnVsbCYmSnQuYWRkKGQpLG49PT1udWxsP1F0KGQpOm4ucHVzaChkKX19fX1mdW5jdGlvbiBqbihlKXtpZih0eXBlb2YgZSE9YG9iamVjdGB8fCFlfHxTZSBpbiBlKXJldHVybiBlO2xldCB0PWIoZSk7aWYodCE9PXkmJnQhPT1lZSlyZXR1cm4gZTt2YXIgbj1uZXcgTWFwLHI9ZihlKSxpPUNuKDApLGE9bnVsbCxvPVZyLHM9ZT0+e2lmKFZyPT09bylyZXR1cm4gZSgpO3ZhciB0PUYsbj1WcjtNcihudWxsKSxIcihvKTt2YXIgcj1lKCk7cmV0dXJuIE1yKHQpLEhyKG4pLHJ9O3JldHVybiByJiZuLnNldChgbGVuZ3RoYCxDbihlLmxlbmd0aCxhKSksbmV3IFByb3h5KGUse2RlZmluZVByb3BlcnR5KGUsdCxyKXsoIShgdmFsdWVgaW4gcil8fHIuY29uZmlndXJhYmxlPT09ITF8fHIuZW51bWVyYWJsZT09PSExfHxyLndyaXRhYmxlPT09ITEpJiZJZSgpO3ZhciBpPW4uZ2V0KHQpO3JldHVybiBpPT09dm9pZCAwP3MoKCk9Pnt2YXIgZT1DbihyLnZhbHVlLGEpO3JldHVybiBuLnNldCh0LGUpLGV9KTpUbihpLHIudmFsdWUsITApLCEwfSxkZWxldGVQcm9wZXJ0eShlLHQpe3ZhciByPW4uZ2V0KHQpO2lmKHI9PT12b2lkIDApe2lmKHQgaW4gZSl7bGV0IGU9cygoKT0+Q24oUyxhKSk7bi5zZXQodCxlKSxrbihpKX19ZWxzZSBUbihyLFMpLGtuKGkpO3JldHVybiEwfSxnZXQodCxyLGkpe2lmKHI9PT1TZSlyZXR1cm4gZTt2YXIgbz1uLmdldChyKSxjPXIgaW4gdDtpZihvPT09dm9pZCAwJiYoIWN8fF8odCxyKT8ud3JpdGFibGUpJiYobz1zKCgpPT5DbihqbihjP3Rbcl06UyksYSkpLG4uc2V0KHIsbykpLG8hPT12b2lkIDApe3ZhciBsPVIobyk7cmV0dXJuIGw9PT1TP3ZvaWQgMDpsfXJldHVybiBSZWZsZWN0LmdldCh0LHIsaSl9LGdldE93blByb3BlcnR5RGVzY3JpcHRvcihlLHQpe3ZhciByPVJlZmxlY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGUsdCk7aWYociYmYHZhbHVlYGluIHIpe3ZhciBpPW4uZ2V0KHQpO2kmJihyLnZhbHVlPVIoaSkpfWVsc2UgaWYocj09PXZvaWQgMCl7dmFyIGE9bi5nZXQodCksbz1hPy52O2lmKGEhPT12b2lkIDAmJm8hPT1TKXJldHVybntlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx2YWx1ZTpvLHdyaXRhYmxlOiEwfX1yZXR1cm4gcn0saGFzKGUsdCl7aWYodD09PVNlKXJldHVybiEwO3ZhciByPW4uZ2V0KHQpLGk9ciE9PXZvaWQgMCYmci52IT09U3x8UmVmbGVjdC5oYXMoZSx0KTtyZXR1cm4ociE9PXZvaWQgMHx8SSE9PW51bGwmJighaXx8XyhlLHQpPy53cml0YWJsZSkpJiYocj09PXZvaWQgMCYmKHI9cygoKT0+Q24oaT9qbihlW3RdKTpTLGEpKSxuLnNldCh0LHIpKSxSKHIpPT09Uyk/ITE6aX0sc2V0KGUsdCxvLGMpe3ZhciBsPW4uZ2V0KHQpLHU9dCBpbiBlO2lmKHImJnQ9PT1gbGVuZ3RoYClmb3IodmFyIGQ9bztkPGwudjtkKz0xKXt2YXIgZj1uLmdldChkK2BgKTtmPT09dm9pZCAwP2QgaW4gZSYmKGY9cygoKT0+Q24oUyxhKSksbi5zZXQoZCtgYCxmKSk6VG4oZixTKX1pZihsPT09dm9pZCAwKSghdXx8XyhlLHQpPy53cml0YWJsZSkmJihsPXMoKCk9PkNuKHZvaWQgMCxhKSksVG4obCxqbihvKSksbi5zZXQodCxsKSk7ZWxzZXt1PWwudiE9PVM7dmFyIHA9cygoKT0+am4obykpO1RuKGwscCl9dmFyIG09UmVmbGVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZSx0KTtpZihtPy5zZXQmJm0uc2V0LmNhbGwoYyxvKSwhdSl7aWYociYmdHlwZW9mIHQ9PWBzdHJpbmdgKXt2YXIgaD1uLmdldChgbGVuZ3RoYCksZz1OdW1iZXIodCk7TnVtYmVyLmlzSW50ZWdlcihnKSYmZz49aC52JiZUbihoLGcrMSl9a24oaSl9cmV0dXJuITB9LG93bktleXMoZSl7UihpKTt2YXIgdD1SZWZsZWN0Lm93bktleXMoZSkuZmlsdGVyKGU9Pnt2YXIgdD1uLmdldChlKTtyZXR1cm4gdD09PXZvaWQgMHx8dC52IT09U30pO2Zvcih2YXJbcixhXW9mIG4pYS52IT09UyYmIShyIGluIGUpJiZ0LnB1c2gocik7cmV0dXJuIHR9LHNldFByb3RvdHlwZU9mKCl7TGUoKX19KX1mdW5jdGlvbiBNbihlKXt0cnl7aWYodHlwZW9mIGU9PWBvYmplY3RgJiZlJiZTZSBpbiBlKXJldHVybiBlW1NlXX1jYXRjaHt9cmV0dXJuIGV9ZnVuY3Rpb24gTm4oZSx0KXtyZXR1cm4gT2JqZWN0LmlzKE1uKGUpLE1uKHQpKX12YXIgUG4sRm4sSW4sTG47ZnVuY3Rpb24gUm4oKXtpZihQbj09PXZvaWQgMCl7UG49d2luZG93LEZuPS9GaXJlZm94Ly50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpO3ZhciBlPUVsZW1lbnQucHJvdG90eXBlLHQ9Tm9kZS5wcm90b3R5cGUsbj1UZXh0LnByb3RvdHlwZTtJbj1fKHQsYGZpcnN0Q2hpbGRgKS5nZXQsTG49Xyh0LGBuZXh0U2libGluZ2ApLmdldCx0ZShlKSYmKGUuX19jbGljaz12b2lkIDAsZS5fX2NsYXNzTmFtZT12b2lkIDAsZS5fX2F0dHJpYnV0ZXM9bnVsbCxlLl9fc3R5bGU9dm9pZCAwLGUuX19lPXZvaWQgMCksdGUobikmJihuLl9fdD12b2lkIDApfX1mdW5jdGlvbiB6bihlPWBgKXtyZXR1cm4gZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoZSl9ZnVuY3Rpb24gTihlKXtyZXR1cm4gSW4uY2FsbChlKX1mdW5jdGlvbiBCbihlKXtyZXR1cm4gTG4uY2FsbChlKX1mdW5jdGlvbiBWbihlLHQpe2lmKCFDKXJldHVybiBOKGUpO3ZhciBuPU4odyk7aWYobj09PW51bGwpbj13LmFwcGVuZENoaWxkKHpuKCkpO2Vsc2UgaWYodCYmbi5ub2RlVHlwZSE9PTMpe3ZhciByPXpuKCk7cmV0dXJuIG4/LmJlZm9yZShyKSxUKHIpLHJ9cmV0dXJuIHQmJkpuKG4pLFQobiksbn1mdW5jdGlvbiBIbihlLHQ9ITEpe2lmKCFDKXt2YXIgbj1OKGUpO3JldHVybiBuIGluc3RhbmNlb2YgQ29tbWVudCYmbi5kYXRhPT09YGA/Qm4obik6bn1pZih0KXtpZih3Py5ub2RlVHlwZSE9PTMpe3ZhciByPXpuKCk7cmV0dXJuIHc/LmJlZm9yZShyKSxUKHIpLHJ9Sm4odyl9cmV0dXJuIHd9ZnVuY3Rpb24gVW4oZSx0PTEsbj0hMSl7bGV0IHI9Qz93OmU7Zm9yKHZhciBpO3QtLTspaT1yLHI9Qm4ocik7aWYoIUMpcmV0dXJuIHI7aWYobil7aWYocj8ubm9kZVR5cGUhPT0zKXt2YXIgYT16bigpO3JldHVybiByPT09bnVsbD9pPy5hZnRlcihhKTpyLmJlZm9yZShhKSxUKGEpLGF9Sm4ocil9cmV0dXJuIFQocikscn1mdW5jdGlvbiBXbihlKXtlLnRleHRDb250ZW50PWBgfWZ1bmN0aW9uIEduKCl7cmV0dXJuIXJ0fHxKdCE9PW51bGw/ITE6KEkuZiZmZSkhPT0wfWZ1bmN0aW9uIEtuKGUsdCxuKXtsZXQgcj1uP3tpczpufTp2b2lkIDA7cmV0dXJuIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyh0Pz9gaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbGAsZSxyKX1mdW5jdGlvbiBxbihlPWBgKXtyZXR1cm4gZG9jdW1lbnQuY3JlYXRlQ29tbWVudChlKX1mdW5jdGlvbiBKbihlKXtpZihlLm5vZGVWYWx1ZS5sZW5ndGg8NjU1MzYpcmV0dXJuO2xldCB0PWUubmV4dFNpYmxpbmc7Zm9yKDt0IT09bnVsbCYmdC5ub2RlVHlwZT09PTM7KXQucmVtb3ZlKCksZS5ub2RlVmFsdWUrPXQubm9kZVZhbHVlLHQ9ZS5uZXh0U2libGluZ31mdW5jdGlvbiBZbihlLHQpe2lmKHQpe2xldCB0PWRvY3VtZW50LmJvZHk7ZS5hdXRvZm9jdXM9ITAsZ3QoKCk9Pntkb2N1bWVudC5hY3RpdmVFbGVtZW50PT09dCYmZS5mb2N1cygpfSl9fWZ1bmN0aW9uIFhuKGUpe0MmJk4oZSkhPT1udWxsJiZXbihlKX12YXIgWm49ITE7ZnVuY3Rpb24gUW4oKXtabnx8KFpuPSEwLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoYHJlc2V0YCxlPT57UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+e2lmKCFlLmRlZmF1bHRQcmV2ZW50ZWQpZm9yKGxldCB0IG9mIGUudGFyZ2V0LmVsZW1lbnRzKXQuX19vbl9yPy4oKX0pfSx7Y2FwdHVyZTohMH0pKX1mdW5jdGlvbiAkbihlKXt2YXIgdD1GLG49STtNcihudWxsKSxOcihudWxsKTt0cnl7cmV0dXJuIGUoKX1maW5hbGx5e01yKHQpLE5yKG4pfX1mdW5jdGlvbiBlcihlLHQsbixyPW4pe2UuYWRkRXZlbnRMaXN0ZW5lcih0LCgpPT4kbihuKSk7bGV0IGk9ZS5fX29uX3I7aT9lLl9fb25fcj0oKT0+e2koKSxyKCEwKX06ZS5fX29uX3I9KCk9PnIoITApLFFuKCl9ZnVuY3Rpb24gdHIoZSl7ST09PW51bGwmJihGPT09bnVsbCYmTWUoZSksamUoKSksa3ImJkFlKGUpfWZ1bmN0aW9uIG5yKGUsdCl7dmFyIG49dC5sYXN0O249PT1udWxsP3QubGFzdD10LmZpcnN0PWU6KG4ubmV4dD1lLGUucHJldj1uLHQubGFzdD1lKX1mdW5jdGlvbiBycihlLHQpe3ZhciBuPUk7biE9PW51bGwmJm4uZiY4MTkyJiYoZXw9dWUpO3ZhciByPXtjdHg6RSxkZXBzOm51bGwsbm9kZXM6bnVsbCxmOmV8Y2V8NTEyLGZpcnN0Om51bGwsZm46dCxsYXN0Om51bGwsbmV4dDpudWxsLHBhcmVudDpuLGI6biYmbi5iLHByZXY6bnVsbCx0ZWFyZG93bjpudWxsLHd2OjAsYWM6bnVsbH07aj8ucmVnaXN0ZXJfY3JlYXRlZF9lZmZlY3Qocik7dmFyIGk9cjtpZihlJjQpVnQ9PT1udWxsP0d0LmVuc3VyZSgpLnNjaGVkdWxlKHIpOlZ0LnB1c2gocik7ZWxzZSBpZih0IT09bnVsbCl7dHJ5e1lyKHIpfWNhdGNoKGUpe3Rocm93IFAociksZX1pLmRlcHM9PT1udWxsJiZpLnRlYXJkb3duPT09bnVsbCYmaS5ub2Rlcz09PW51bGwmJmkuZmlyc3Q9PT1pLmxhc3QmJiEoaS5mJjUyNDI4OCkmJihpPWkuZmlyc3QsZSYxNiYmZSY2NTUzNiYmaSE9PW51bGwmJihpLmZ8PW1lKSl9aWYoaSE9PW51bGwmJihpLnBhcmVudD1uLG4hPT1udWxsJiZucihpLG4pLEYhPT1udWxsJiZGLmYmMiYmIShlJjY0KSkpe3ZhciBhPUY7KGEuZWZmZWN0cz8/PVtdKS5wdXNoKGkpfXJldHVybiByfWZ1bmN0aW9uIGlyKCl7cmV0dXJuIEYhPT1udWxsJiYhanJ9ZnVuY3Rpb24gYXIoZSl7bGV0IHQ9cnIoOCxudWxsKTtyZXR1cm4gRCh0LHNlKSx0LnRlYXJkb3duPWUsdH1mdW5jdGlvbiBvcihlKXt0cihgJGVmZmVjdGApO3ZhciB0PUkuZjtpZighRiYmdCYzMiYmISh0JjMyNzY4KSl7dmFyIG49RTsobi5lPz89W10pLnB1c2goZSl9ZWxzZSByZXR1cm4gc3IoZSl9ZnVuY3Rpb24gc3IoZSl7cmV0dXJuIHJyKDR8Z2UsZSl9ZnVuY3Rpb24gY3IoZSl7cmV0dXJuIHRyKGAkZWZmZWN0LnByZWApLHJyKDh8Z2UsZSl9ZnVuY3Rpb24gbHIoZSl7R3QuZW5zdXJlKCk7bGV0IHQ9cnIoNjR8aGUsZSk7cmV0dXJuKGU9e30pPT5uZXcgUHJvbWlzZShuPT57ZS5vdXRybz9Tcih0LCgpPT57UCh0KSxuKHZvaWQgMCl9KTooUCh0KSxuKHZvaWQgMCkpfSl9ZnVuY3Rpb24gdXIoZSl7cmV0dXJuIHJyKDQsZSl9ZnVuY3Rpb24gZHIoZSl7cmV0dXJuIHJyKGJlfGhlLGUpfWZ1bmN0aW9uIGZyKGUsdD0wKXtyZXR1cm4gcnIoOHx0LGUpfWZ1bmN0aW9uIHByKGUsdD1bXSxuPVtdLHI9W10pe29uKHIsdCxuLHQ9Pntycig4LCgpPT5lKC4uLnQubWFwKFIpKSl9KX1mdW5jdGlvbiBtcihlLHQ9MCl7cmV0dXJuIHJyKDE2fHQsZSl9ZnVuY3Rpb24gaHIoZSx0PTApe3JldHVybiBycihvZXx0LGUpfWZ1bmN0aW9uIGdyKGUpe3JldHVybiBycigzMnxoZSxlKX1mdW5jdGlvbiBfcihlKXt2YXIgdD1lLnRlYXJkb3duO2lmKHQhPT1udWxsKXtsZXQgZT1rcixuPUY7QXIoITApLE1yKG51bGwpO3RyeXt0LmNhbGwobnVsbCl9ZmluYWxseXtBcihlKSxNcihuKX19fWZ1bmN0aW9uIHZyKGUsdD0hMSl7dmFyIG49ZS5maXJzdDtmb3IoZS5maXJzdD1lLmxhc3Q9bnVsbDtuIT09bnVsbDspe2xldCBlPW4uYWM7ZSE9PW51bGwmJiRuKCgpPT57ZS5hYm9ydChUZSl9KTt2YXIgcj1uLm5leHQ7bi5mJjY0P24ucGFyZW50PW51bGw6UChuLHQpLG49cn19ZnVuY3Rpb24geXIoZSl7Zm9yKHZhciB0PWUuZmlyc3Q7dCE9PW51bGw7KXt2YXIgbj10Lm5leHQ7dC5mJjMyfHxQKHQpLHQ9bn19ZnVuY3Rpb24gUChlLHQ9ITApe3ZhciBuPSExOyh0fHxlLmYmMjYyMTQ0KSYmZS5ub2RlcyE9PW51bGwmJmUubm9kZXMuZW5kIT09bnVsbCYmKGJyKGUubm9kZXMuc3RhcnQsZS5ub2Rlcy5lbmQpLG49ITApLEQoZSxwZSksdnIoZSx0JiYhbiksSnIoZSwwKTt2YXIgcj1lLm5vZGVzJiZlLm5vZGVzLnQ7aWYociE9PW51bGwpZm9yKGxldCBlIG9mIHIpZS5zdG9wKCk7X3IoZSksZS5mXj1wZSxlLmZ8PWRlO3ZhciBpPWUucGFyZW50O2khPT1udWxsJiZpLmZpcnN0IT09bnVsbCYmeHIoZSksZS5uZXh0PWUucHJldj1lLnRlYXJkb3duPWUuY3R4PWUuZGVwcz1lLmZuPWUubm9kZXM9ZS5hYz1lLmI9bnVsbH1mdW5jdGlvbiBicihlLHQpe2Zvcig7ZSE9PW51bGw7KXt2YXIgbj1lPT09dD9udWxsOkJuKGUpO2UucmVtb3ZlKCksZT1ufX1mdW5jdGlvbiB4cihlKXt2YXIgdD1lLnBhcmVudCxuPWUucHJldixyPWUubmV4dDtuIT09bnVsbCYmKG4ubmV4dD1yKSxyIT09bnVsbCYmKHIucHJldj1uKSx0IT09bnVsbCYmKHQuZmlyc3Q9PT1lJiYodC5maXJzdD1yKSx0Lmxhc3Q9PT1lJiYodC5sYXN0PW4pKX1mdW5jdGlvbiBTcihlLHQsbj0hMCl7dmFyIHI9W107Q3IoZSxyLCEwKTt2YXIgaT0oKT0+e24mJlAoZSksdCYmdCgpfSxhPXIubGVuZ3RoO2lmKGE+MCl7dmFyIG89KCk9Pi0tYXx8aSgpO2Zvcih2YXIgcyBvZiByKXMub3V0KG8pfWVsc2UgaSgpfWZ1bmN0aW9uIENyKGUsdCxuKXtpZighKGUuZiY4MTkyKSl7ZS5mXj11ZTt2YXIgcj1lLm5vZGVzJiZlLm5vZGVzLnQ7aWYociE9PW51bGwpZm9yKGxldCBlIG9mIHIpKGUuaXNfZ2xvYmFsfHxuKSYmdC5wdXNoKGUpO2Zvcih2YXIgaT1lLmZpcnN0O2khPT1udWxsOyl7dmFyIGE9aS5uZXh0O2lmKCEoaS5mJjY0KSl7dmFyIG89KGkuZiY2NTUzNikhPTB8fChpLmYmMzIpIT0wJiYoZS5mJjE2KSE9MDtDcihpLHQsbz9uOiExKX1pPWF9fX1mdW5jdGlvbiB3cihlKXtUcihlLCEwKX1mdW5jdGlvbiBUcihlLHQpe2lmKGUuZiY4MTkyKXtlLmZePXVlLGUuZiYxMDI0fHwoRChlLGNlKSxHdC5lbnN1cmUoKS5zY2hlZHVsZShlKSk7Zm9yKHZhciBuPWUuZmlyc3Q7biE9PW51bGw7KXt2YXIgcj1uLm5leHQsaT0obi5mJjY1NTM2KSE9MHx8KG4uZiYzMikhPTA7VHIobixpP3Q6ITEpLG49cn12YXIgYT1lLm5vZGVzJiZlLm5vZGVzLnQ7aWYoYSE9PW51bGwpZm9yKGxldCBlIG9mIGEpKGUuaXNfZ2xvYmFsfHx0KSYmZS5pbigpfX1mdW5jdGlvbiBFcihlLHQpe2lmKGUubm9kZXMpZm9yKHZhciBuPWUubm9kZXMuc3RhcnQscj1lLm5vZGVzLmVuZDtuIT09bnVsbDspe3ZhciBpPW49PT1yP251bGw6Qm4obik7dC5hcHBlbmQobiksbj1pfX12YXIgRHI9bnVsbCxPcj0hMSxrcj0hMTtmdW5jdGlvbiBBcihlKXtrcj1lfXZhciBGPW51bGwsanI9ITE7ZnVuY3Rpb24gTXIoZSl7Rj1lfXZhciBJPW51bGw7ZnVuY3Rpb24gTnIoZSl7ST1lfXZhciBQcj1udWxsO2Z1bmN0aW9uIEZyKGUpe0YhPT1udWxsJiYoIXJ0fHxGLmYmMikmJihQcj09PW51bGw/UHI9W2VdOlByLnB1c2goZSkpfXZhciBMPW51bGwsSXI9MCxMcj1udWxsO2Z1bmN0aW9uIFJyKGUpe0xyPWV9dmFyIHpyPTEsQnI9MCxWcj1CcjtmdW5jdGlvbiBIcihlKXtWcj1lfWZ1bmN0aW9uIFVyKCl7cmV0dXJuKyt6cn1mdW5jdGlvbiBXcihlKXt2YXIgdD1lLmY7aWYodCYyMDQ4KXJldHVybiEwO2lmKHQmMiYmKGUuZiY9fnZlKSx0JjQwOTYpe2Zvcih2YXIgbj1lLmRlcHMscj1uLmxlbmd0aCxpPTA7aTxyO2krKyl7dmFyIGE9bltpXTtpZihXcihhKSYmZ24oYSksYS53dj5lLnd2KXJldHVybiEwfXQmNTEyJiZNPT09bnVsbCYmRChlLHNlKX1yZXR1cm4hMX1mdW5jdGlvbiBHcihlLHQsbj0hMCl7dmFyIHI9ZS5yZWFjdGlvbnM7aWYociE9PW51bGwmJiEoIXJ0JiZQciE9PW51bGwmJm0uY2FsbChQcixlKSkpZm9yKHZhciBpPTA7aTxyLmxlbmd0aDtpKyspe3ZhciBhPXJbaV07YS5mJjI/R3IoYSx0LCExKTp0PT09YSYmKG4/RChhLGNlKTphLmYmMTAyNCYmRChhLGxlKSxRdChhKSl9fWZ1bmN0aW9uIEtyKGUpe3ZhciB0PUwsbj1JcixyPUxyLGk9RixhPVByLG89RSxzPWpyLGM9VnIsbD1lLmY7TD1udWxsLElyPTAsTHI9bnVsbCxGPWwmOTY/bnVsbDplLFByPW51bGwsb3QoZS5jdHgpLGpyPSExLFZyPSsrQnIsZS5hYyE9PW51bGwmJigkbigoKT0+e2UuYWMuYWJvcnQoVGUpfSksZS5hYz1udWxsKTt0cnl7ZS5mfD15ZTt2YXIgdT1lLmZuLGQ9dSgpO2UuZnw9ZmU7dmFyIGY9ZS5kZXBzLHA9aj8uaXNfZm9yaztpZihMIT09bnVsbCl7dmFyIG07aWYocHx8SnIoZSxJciksZiE9PW51bGwmJklyPjApZm9yKGYubGVuZ3RoPUlyK0wubGVuZ3RoLG09MDttPEwubGVuZ3RoO20rKylmW0lyK21dPUxbbV07ZWxzZSBlLmRlcHM9Zj1MO2lmKGlyKCkmJmUuZiY1MTIpZm9yKG09SXI7bTxmLmxlbmd0aDttKyspKGZbbV0ucmVhY3Rpb25zPz89W10pLnB1c2goZSl9ZWxzZSAhcCYmZiE9PW51bGwmJklyPGYubGVuZ3RoJiYoSnIoZSxJciksZi5sZW5ndGg9SXIpO2lmKGR0KCkmJkxyIT09bnVsbCYmIWpyJiZmIT09bnVsbCYmIShlLmYmNjE0NikpZm9yKG09MDttPExyLmxlbmd0aDttKyspR3IoTHJbbV0sZSk7aWYoaSE9PW51bGwmJmkhPT1lKXtpZihCcisrLGkuZGVwcyE9PW51bGwpZm9yKGxldCBlPTA7ZTxuO2UrPTEpaS5kZXBzW2VdLnJ2PUJyO2lmKHQhPT1udWxsKWZvcihsZXQgZSBvZiB0KWUucnY9QnI7THIhPT1udWxsJiYocj09PW51bGw/cj1McjpyLnB1c2goLi4uTHIpKX1yZXR1cm4gZS5mJjgzODg2MDgmJihlLmZePXhlKSxkfWNhdGNoKGUpe3JldHVybiB2dChlKX1maW5hbGx5e2UuZl49eWUsTD10LElyPW4sTHI9cixGPWksUHI9YSxvdChvKSxqcj1zLFZyPWN9fWZ1bmN0aW9uIHFyKGUsdCl7bGV0IG49dC5yZWFjdGlvbnM7aWYobiE9PW51bGwpe3ZhciByPXAuY2FsbChuLGUpO2lmKHIhPT0tMSl7dmFyIGk9bi5sZW5ndGgtMTtpPT09MD9uPXQucmVhY3Rpb25zPW51bGw6KG5bcl09bltpXSxuLnBvcCgpKX19aWYobj09PW51bGwmJnQuZiYyJiYoTD09PW51bGx8fCFtLmNhbGwoTCx0KSkpe3ZhciBhPXQ7YS5mJjUxMiYmKGEuZl49NTEyLGEuZiY9fnZlKSxhLnYhPT1TJiZ4dChhKSxfbihhKSxKcihhLDApfX1mdW5jdGlvbiBKcihlLHQpe3ZhciBuPWUuZGVwcztpZihuIT09bnVsbClmb3IodmFyIHI9dDtyPG4ubGVuZ3RoO3IrKylxcihlLG5bcl0pfWZ1bmN0aW9uIFlyKGUpe3ZhciB0PWUuZjtpZighKHQmMTYzODQpKXtEKGUsc2UpO3ZhciBuPUkscj1PcjtJPWUsT3I9ITA7dHJ5e3QmMTY3NzcyMzI/eXIoZSk6dnIoZSksX3IoZSk7dmFyIGk9S3IoZSk7ZS50ZWFyZG93bj10eXBlb2YgaT09YGZ1bmN0aW9uYD9pOm51bGwsZS53dj16cn1maW5hbGx5e09yPXIsST1ufX19YXN5bmMgZnVuY3Rpb24gWHIoKXtpZihydClyZXR1cm4gbmV3IFByb21pc2UoZT0+e3JlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+ZSgpKSxzZXRUaW1lb3V0KCgpPT5lKCkpfSk7YXdhaXQgUHJvbWlzZS5yZXNvbHZlKCksS3QoKX1mdW5jdGlvbiBSKGUpe3ZhciB0PShlLmYmMikhPTA7aWYoRHI/LmFkZChlKSxGIT09bnVsbCYmIWpyJiYhKEkhPT1udWxsJiZJLmYmMTYzODQpJiYoUHI9PT1udWxsfHwhbS5jYWxsKFByLGUpKSl7dmFyIG49Ri5kZXBzO2lmKEYuZiYyMDk3MTUyKWUucnY8QnImJihlLnJ2PUJyLEw9PT1udWxsJiZuIT09bnVsbCYmbltJcl09PT1lP0lyKys6TD09PW51bGw/TD1bZV06TC5wdXNoKGUpKTtlbHNleyhGLmRlcHM/Pz1bXSkucHVzaChlKTt2YXIgcj1lLnJlYWN0aW9ucztyPT09bnVsbD9lLnJlYWN0aW9ucz1bRl06bS5jYWxsKHIsRil8fHIucHVzaChGKX19aWYoa3ImJmJuLmhhcyhlKSlyZXR1cm4gYm4uZ2V0KGUpO2lmKHQpe3ZhciBpPWU7aWYoa3Ipe3ZhciBhPWkudjtyZXR1cm4oIShpLmYmMTAyNCkmJmkucmVhY3Rpb25zIT09bnVsbHx8UXIoaSkpJiYoYT1obihpKSksYm4uc2V0KGksYSksYX12YXIgbz0oaS5mJjUxMik9PTAmJiFqciYmRiE9PW51bGwmJihPcnx8KEYuZiY1MTIpIT0wKSxzPShpLmYmZmUpPT09MDtXcihpKSYmKG8mJihpLmZ8PTUxMiksZ24oaSkpLG8mJiFzJiYodm4oaSksWnIoaSkpfWlmKE0/LmhhcyhlKSlyZXR1cm4gTS5nZXQoZSk7aWYoZS5mJjgzODg2MDgpdGhyb3cgZS52O3JldHVybiBlLnZ9ZnVuY3Rpb24gWnIoZSl7aWYoZS5mfD01MTIsZS5kZXBzIT09bnVsbClmb3IobGV0IHQgb2YgZS5kZXBzKSh0LnJlYWN0aW9ucz8/PVtdKS5wdXNoKGUpLHQuZiYyJiYhKHQuZiY1MTIpJiYodm4odCksWnIodCkpfWZ1bmN0aW9uIFFyKGUpe2lmKGUudj09PVMpcmV0dXJuITA7aWYoZS5kZXBzPT09bnVsbClyZXR1cm4hMTtmb3IobGV0IHQgb2YgZS5kZXBzKWlmKGJuLmhhcyh0KXx8dC5mJjImJlFyKHQpKXJldHVybiEwO3JldHVybiExfWZ1bmN0aW9uICRyKGUpe3ZhciB0PWpyO3RyeXtyZXR1cm4ganI9ITAsZSgpfWZpbmFsbHl7anI9dH19ZnVuY3Rpb24gZWkoZSl7aWYoISh0eXBlb2YgZSE9YG9iamVjdGB8fCFlfHxlIGluc3RhbmNlb2YgRXZlbnRUYXJnZXQpKXtpZihTZSBpbiBlKXRpKGUpO2Vsc2UgaWYoIUFycmF5LmlzQXJyYXkoZSkpZm9yKGxldCB0IGluIGUpe2xldCBuPWVbdF07dHlwZW9mIG49PWBvYmplY3RgJiZuJiZTZSBpbiBuJiZ0aShuKX19fWZ1bmN0aW9uIHRpKGUsdD1uZXcgU2V0KXtpZih0eXBlb2YgZT09YG9iamVjdGAmJmUmJiEoZSBpbnN0YW5jZW9mIEV2ZW50VGFyZ2V0KSYmIXQuaGFzKGUpKXt0LmFkZChlKSxlIGluc3RhbmNlb2YgRGF0ZSYmZS5nZXRUaW1lKCk7Zm9yKGxldCBuIGluIGUpdHJ5e3RpKGVbbl0sdCl9Y2F0Y2h7fWxldCBuPWIoZSk7aWYobiE9PU9iamVjdC5wcm90b3R5cGUmJm4hPT1BcnJheS5wcm90b3R5cGUmJm4hPT1NYXAucHJvdG90eXBlJiZuIT09U2V0LnByb3RvdHlwZSYmbiE9PURhdGUucHJvdG90eXBlKXtsZXQgdD12KG4pO2ZvcihsZXQgbiBpbiB0KXtsZXQgcj10W25dLmdldDtpZihyKXRyeXtyLmNhbGwoZSl9Y2F0Y2h7fX19fX1mdW5jdGlvbiBuaShlKXtyZXR1cm4gZS5lbmRzV2l0aChgY2FwdHVyZWApJiZlIT09YGdvdHBvaW50ZXJjYXB0dXJlYCYmZSE9PWBsb3N0cG9pbnRlcmNhcHR1cmVgfXZhciByaT1bYGJlZm9yZWlucHV0YCxgY2xpY2tgLGBjaGFuZ2VgLGBkYmxjbGlja2AsYGNvbnRleHRtZW51YCxgZm9jdXNpbmAsYGZvY3Vzb3V0YCxgaW5wdXRgLGBrZXlkb3duYCxga2V5dXBgLGBtb3VzZWRvd25gLGBtb3VzZW1vdmVgLGBtb3VzZW91dGAsYG1vdXNlb3ZlcmAsYG1vdXNldXBgLGBwb2ludGVyZG93bmAsYHBvaW50ZXJtb3ZlYCxgcG9pbnRlcm91dGAsYHBvaW50ZXJvdmVyYCxgcG9pbnRlcnVwYCxgdG91Y2hlbmRgLGB0b3VjaG1vdmVgLGB0b3VjaHN0YXJ0YF07ZnVuY3Rpb24gaWkoZSl7cmV0dXJuIHJpLmluY2x1ZGVzKGUpfXZhciBhaT1gYWxsb3dmdWxsc2NyZWVuLmFzeW5jLmF1dG9mb2N1cy5hdXRvcGxheS5jaGVja2VkLmNvbnRyb2xzLmRlZmF1bHQuZGlzYWJsZWQuZm9ybW5vdmFsaWRhdGUuaW5kZXRlcm1pbmF0ZS5pbmVydC5pc21hcC5sb29wLm11bHRpcGxlLm11dGVkLm5vbW9kdWxlLm5vdmFsaWRhdGUub3Blbi5wbGF5c2lubGluZS5yZWFkb25seS5yZXF1aXJlZC5yZXZlcnNlZC5zZWFtbGVzcy5zZWxlY3RlZC53ZWJraXRkaXJlY3RvcnkuZGVmZXIuZGlzYWJsZXBpY3R1cmVpbnBpY3R1cmUuZGlzYWJsZXJlbW90ZXBsYXliYWNrYC5zcGxpdChgLmApLG9pPXtmb3Jtbm92YWxpZGF0ZTpgZm9ybU5vVmFsaWRhdGVgLGlzbWFwOmBpc01hcGAsbm9tb2R1bGU6YG5vTW9kdWxlYCxwbGF5c2lubGluZTpgcGxheXNJbmxpbmVgLHJlYWRvbmx5OmByZWFkT25seWAsZGVmYXVsdHZhbHVlOmBkZWZhdWx0VmFsdWVgLGRlZmF1bHRjaGVja2VkOmBkZWZhdWx0Q2hlY2tlZGAsc3Jjb2JqZWN0OmBzcmNPYmplY3RgLG5vdmFsaWRhdGU6YG5vVmFsaWRhdGVgLGFsbG93ZnVsbHNjcmVlbjpgYWxsb3dGdWxsc2NyZWVuYCxkaXNhYmxlcGljdHVyZWlucGljdHVyZTpgZGlzYWJsZVBpY3R1cmVJblBpY3R1cmVgLGRpc2FibGVyZW1vdGVwbGF5YmFjazpgZGlzYWJsZVJlbW90ZVBsYXliYWNrYH07ZnVuY3Rpb24gc2koZSl7cmV0dXJuIGU9ZS50b0xvd2VyQ2FzZSgpLG9pW2VdPz9lfVsuLi5haV07dmFyIGNpPVtgdG91Y2hzdGFydGAsYHRvdWNobW92ZWBdO2Z1bmN0aW9uIGxpKGUpe3JldHVybiBjaS5pbmNsdWRlcyhlKX12YXIgdWk9U3ltYm9sKGBldmVudHNgKSxkaT1uZXcgU2V0LGZpPW5ldyBTZXQ7ZnVuY3Rpb24gcGkoZSl7aWYoIUMpcmV0dXJuO2UucmVtb3ZlQXR0cmlidXRlKGBvbmxvYWRgKSxlLnJlbW92ZUF0dHJpYnV0ZShgb25lcnJvcmApO2xldCB0PWUuX19lO3QhPT12b2lkIDAmJihlLl9fZT12b2lkIDAscXVldWVNaWNyb3Rhc2soKCk9PntlLmlzQ29ubmVjdGVkJiZlLmRpc3BhdGNoRXZlbnQodCl9KSl9ZnVuY3Rpb24gbWkoZSx0LG4scj17fSl7ZnVuY3Rpb24gaShlKXtpZihyLmNhcHR1cmV8fHlpLmNhbGwodCxlKSwhZS5jYW5jZWxCdWJibGUpcmV0dXJuICRuKCgpPT5uPy5jYWxsKHRoaXMsZSkpfXJldHVybiBlLnN0YXJ0c1dpdGgoYHBvaW50ZXJgKXx8ZS5zdGFydHNXaXRoKGB0b3VjaGApfHxlPT09YHdoZWVsYD9ndCgoKT0+e3QuYWRkRXZlbnRMaXN0ZW5lcihlLGkscil9KTp0LmFkZEV2ZW50TGlzdGVuZXIoZSxpLHIpLGl9ZnVuY3Rpb24gaGkoZSx0LG4scixpKXt2YXIgYT17Y2FwdHVyZTpyLHBhc3NpdmU6aX0sbz1taShlLHQsbixhKTsodD09PWRvY3VtZW50LmJvZHl8fHQ9PT13aW5kb3d8fHQ9PT1kb2N1bWVudHx8dCBpbnN0YW5jZW9mIEhUTUxNZWRpYUVsZW1lbnQpJiZhcigoKT0+e3QucmVtb3ZlRXZlbnRMaXN0ZW5lcihlLG8sYSl9KX1mdW5jdGlvbiBnaShlLHQsbil7KHRbdWldPz89e30pW2VdPW59ZnVuY3Rpb24gX2koZSl7Zm9yKHZhciB0PTA7dDxlLmxlbmd0aDt0KyspZGkuYWRkKGVbdF0pO2Zvcih2YXIgbiBvZiBmaSluKGUpfXZhciB2aT1udWxsO2Z1bmN0aW9uIHlpKGUpe3ZhciB0PXRoaXMsbj10Lm93bmVyRG9jdW1lbnQscj1lLnR5cGUsaT1lLmNvbXBvc2VkUGF0aD8uKCl8fFtdLGE9aVswXXx8ZS50YXJnZXQ7dmk9ZTt2YXIgbz0wLHM9dmk9PT1lJiZlW3VpXTtpZihzKXt2YXIgYz1pLmluZGV4T2Yocyk7aWYoYyE9PS0xJiYodD09PWRvY3VtZW50fHx0PT09d2luZG93KSl7ZVt1aV09dDtyZXR1cm59dmFyIGw9aS5pbmRleE9mKHQpO2lmKGw9PT0tMSlyZXR1cm47Yzw9bCYmKG89Yyl9aWYoYT1pW29dfHxlLnRhcmdldCxhIT09dCl7ZyhlLGBjdXJyZW50VGFyZ2V0YCx7Y29uZmlndXJhYmxlOiEwLGdldCgpe3JldHVybiBhfHxufX0pO3ZhciB1PUYsZD1JO01yKG51bGwpLE5yKG51bGwpO3RyeXtmb3IodmFyIGYscD1bXTthIT09bnVsbDspe3ZhciBtPWEuYXNzaWduZWRTbG90fHxhLnBhcmVudE5vZGV8fGEuaG9zdHx8bnVsbDt0cnl7dmFyIGg9YVt1aV0/LltyXTtoIT1udWxsJiYoIWEuZGlzYWJsZWR8fGUudGFyZ2V0PT09YSkmJmguY2FsbChhLGUpfWNhdGNoKGUpe2Y/cC5wdXNoKGUpOmY9ZX1pZihlLmNhbmNlbEJ1YmJsZXx8bT09PXR8fG09PT1udWxsKWJyZWFrO2E9bX1pZihmKXtmb3IobGV0IGUgb2YgcClxdWV1ZU1pY3JvdGFzaygoKT0+e3Rocm93IGV9KTt0aHJvdyBmfX1maW5hbGx5e2VbdWldPXQsZGVsZXRlIGUuY3VycmVudFRhcmdldCxNcih1KSxOcihkKX19fXZhciBiaT1nbG9iYWxUaGlzPy53aW5kb3c/LnRydXN0ZWRUeXBlcyYmZ2xvYmFsVGhpcy53aW5kb3cudHJ1c3RlZFR5cGVzLmNyZWF0ZVBvbGljeShgc3ZlbHRlLXRydXN0ZWQtaHRtbGAse2NyZWF0ZUhUTUw6ZT0+ZX0pO2Z1bmN0aW9uIHhpKGUpe3JldHVybiBiaT8uY3JlYXRlSFRNTChlKT8/ZX1mdW5jdGlvbiBTaShlKXt2YXIgdD1LbihgdGVtcGxhdGVgKTtyZXR1cm4gdC5pbm5lckhUTUw9eGkoZS5yZXBsYWNlQWxsKGA8IT5gLGA8IS0tLS0+YCkpLHQuY29udGVudH1mdW5jdGlvbiBDaShlLHQpe3ZhciBuPUk7bi5ub2Rlcz09PW51bGwmJihuLm5vZGVzPXtzdGFydDplLGVuZDp0LGE6bnVsbCx0Om51bGx9KX1mdW5jdGlvbiB3aShlLHQpe3ZhciBuPSh0JjEpIT0wLHI9KHQmMikhPTAsaSxhPSFlLnN0YXJ0c1dpdGgoYDwhPmApO3JldHVybigpPT57aWYoQylyZXR1cm4gQ2kodyxudWxsKSx3O2k9PT12b2lkIDAmJihpPVNpKGE/ZTpgPCE+YCtlKSxufHwoaT1OKGkpKSk7dmFyIHQ9cnx8Rm4/ZG9jdW1lbnQuaW1wb3J0Tm9kZShpLCEwKTppLmNsb25lTm9kZSghMCk7aWYobil7dmFyIG89Tih0KSxzPXQubGFzdENoaWxkO0NpKG8scyl9ZWxzZSBDaSh0LHQpO3JldHVybiB0fX1mdW5jdGlvbiBUaShlLHQsbj1gc3ZnYCl7dmFyIHI9IWUuc3RhcnRzV2l0aChgPCE+YCksaT0odCYxKSE9MCxhPWA8JHtufT4ke3I/ZTpgPCE+YCtlfTwvJHtufT5gLG87cmV0dXJuKCk9PntpZihDKXJldHVybiBDaSh3LG51bGwpLHc7aWYoIW8pe3ZhciBlPU4oU2koYSkpO2lmKGkpZm9yKG89ZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpO04oZSk7KW8uYXBwZW5kQ2hpbGQoTihlKSk7ZWxzZSBvPU4oZSl9dmFyIHQ9by5jbG9uZU5vZGUoITApO2lmKGkpe3ZhciBuPU4odCkscj10Lmxhc3RDaGlsZDtDaShuLHIpfWVsc2UgQ2kodCx0KTtyZXR1cm4gdH19ZnVuY3Rpb24gRWkoZSx0KXtyZXR1cm4gVGkoZSx0LGBzdmdgKX1mdW5jdGlvbiBEaShlPWBgKXtpZighQyl7dmFyIHQ9em4oZStgYCk7cmV0dXJuIENpKHQsdCksdH12YXIgbj13O3JldHVybiBuLm5vZGVUeXBlPT09Mz9KbihuKToobi5iZWZvcmUobj16bigpKSxUKG4pKSxDaShuLG4pLG59ZnVuY3Rpb24gT2koKXtpZihDKXJldHVybiBDaSh3LG51bGwpLHc7dmFyIGU9ZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpLHQ9ZG9jdW1lbnQuY3JlYXRlQ29tbWVudChgYCksbj16bigpO3JldHVybiBlLmFwcGVuZCh0LG4pLENpKHQsbiksZX1mdW5jdGlvbiBraShlLHQpe2lmKEMpe3ZhciBuPUk7KCEobi5mJjMyNzY4KXx8bi5ub2Rlcy5lbmQ9PT1udWxsKSYmKG4ubm9kZXMuZW5kPXcpLFllKCk7cmV0dXJufWUhPT1udWxsJiZlLmJlZm9yZSh0KX12YXIgQWk9ITA7ZnVuY3Rpb24gamkoZSx0KXt2YXIgbj10PT1udWxsP2BgOnR5cGVvZiB0PT1gb2JqZWN0YD9gJHt0fWA6dDtuIT09KGUuX190Pz89ZS5ub2RlVmFsdWUpJiYoZS5fX3Q9bixlLm5vZGVWYWx1ZT1gJHtufWApfWZ1bmN0aW9uIE1pKGUsdCl7cmV0dXJuIFBpKGUsdCl9dmFyIE5pPW5ldyBNYXA7ZnVuY3Rpb24gUGkoZSx7dGFyZ2V0OnQsYW5jaG9yOm4scHJvcHM6cj17fSxldmVudHM6aSxjb250ZXh0OmEsaW50cm86bz0hMCx0cmFuc2Zvcm1FcnJvcjpzfSl7Um4oKTt2YXIgYz12b2lkIDAsbD1scigoKT0+e3ZhciBsPW4/P3QuYXBwZW5kQ2hpbGQoem4oKSk7cm4obCx7cGVuZGluZzooKT0+e319LHQ9PntsdCh7fSk7dmFyIG49RTtpZihhJiYobi5jPWEpLGkmJihyLiQkZXZlbnRzPWkpLEMmJkNpKHQsbnVsbCksQWk9byxjPWUodCxyKXx8e30sQWk9ITAsQyYmKEkubm9kZXMuZW5kPXcsdz09PW51bGx8fHcubm9kZVR5cGUhPT04fHx3LmRhdGEhPT1gXWApKXRocm93IEdlKCksQmU7dXQoKX0scyk7dmFyIHU9bmV3IFNldCxkPWU9Pntmb3IodmFyIG49MDtuPGUubGVuZ3RoO24rKyl7dmFyIHI9ZVtuXTtpZighdS5oYXMocikpe3UuYWRkKHIpO3ZhciBpPWxpKHIpO2ZvcihsZXQgZSBvZlt0LGRvY3VtZW50XSl7dmFyIGE9TmkuZ2V0KGUpO2E9PT12b2lkIDAmJihhPW5ldyBNYXAsTmkuc2V0KGUsYSkpO3ZhciBvPWEuZ2V0KHIpO289PT12b2lkIDA/KGUuYWRkRXZlbnRMaXN0ZW5lcihyLHlpLHtwYXNzaXZlOml9KSxhLnNldChyLDEpKTphLnNldChyLG8rMSl9fX19O3JldHVybiBkKGgoZGkpKSxmaS5hZGQoZCksKCk9Pntmb3IodmFyIGUgb2YgdSlmb3IobGV0IG4gb2ZbdCxkb2N1bWVudF0pe3ZhciByPU5pLmdldChuKSxpPXIuZ2V0KGUpOy0taT09MD8obi5yZW1vdmVFdmVudExpc3RlbmVyKGUseWkpLHIuZGVsZXRlKGUpLHIuc2l6ZT09PTAmJk5pLmRlbGV0ZShuKSk6ci5zZXQoZSxpKX1maS5kZWxldGUoZCksbCE9PW4mJmwucGFyZW50Tm9kZT8ucmVtb3ZlQ2hpbGQobCl9fSk7cmV0dXJuIEZpLnNldChjLGwpLGN9dmFyIEZpPW5ldyBXZWFrTWFwO2Z1bmN0aW9uIElpKGUsdCl7bGV0IG49RmkuZ2V0KGUpO3JldHVybiBuPyhGaS5kZWxldGUoZSksbih0KSk6UHJvbWlzZS5yZXNvbHZlKCl9dmFyIExpPWNsYXNze2FuY2hvcjsjZT1uZXcgTWFwOyN0PW5ldyBNYXA7I249bmV3IE1hcDsjcj1uZXcgU2V0OyNpPSEwO2NvbnN0cnVjdG9yKGUsdD0hMCl7dGhpcy5hbmNob3I9ZSx0aGlzLiNpPXR9I2E9ZT0+e2lmKHRoaXMuI2UuaGFzKGUpKXt2YXIgdD10aGlzLiNlLmdldChlKSxuPXRoaXMuI3QuZ2V0KHQpO2lmKG4pd3IobiksdGhpcy4jci5kZWxldGUodCk7ZWxzZXt2YXIgcj10aGlzLiNuLmdldCh0KTtyJiYodGhpcy4jdC5zZXQodCxyLmVmZmVjdCksdGhpcy4jbi5kZWxldGUodCksci5mcmFnbWVudC5sYXN0Q2hpbGQucmVtb3ZlKCksdGhpcy5hbmNob3IuYmVmb3JlKHIuZnJhZ21lbnQpLG49ci5lZmZlY3QpfWZvcihsZXRbdCxuXW9mIHRoaXMuI2Upe2lmKHRoaXMuI2UuZGVsZXRlKHQpLHQ9PT1lKWJyZWFrO2xldCByPXRoaXMuI24uZ2V0KG4pO3ImJihQKHIuZWZmZWN0KSx0aGlzLiNuLmRlbGV0ZShuKSl9Zm9yKGxldFtlLHJdb2YgdGhpcy4jdCl7aWYoZT09PXR8fHRoaXMuI3IuaGFzKGUpKWNvbnRpbnVlO2xldCBpPSgpPT57aWYoQXJyYXkuZnJvbSh0aGlzLiNlLnZhbHVlcygpKS5pbmNsdWRlcyhlKSl7dmFyIHQ9ZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpO0VyKHIsdCksdC5hcHBlbmQoem4oKSksdGhpcy4jbi5zZXQoZSx7ZWZmZWN0OnIsZnJhZ21lbnQ6dH0pfWVsc2UgUChyKTt0aGlzLiNyLmRlbGV0ZShlKSx0aGlzLiN0LmRlbGV0ZShlKX07dGhpcy4jaXx8IW4/KHRoaXMuI3IuYWRkKGUpLFNyKHIsaSwhMSkpOmkoKX19fTsjbz1lPT57dGhpcy4jZS5kZWxldGUoZSk7bGV0IHQ9QXJyYXkuZnJvbSh0aGlzLiNlLnZhbHVlcygpKTtmb3IobGV0W2Usbl1vZiB0aGlzLiNuKXQuaW5jbHVkZXMoZSl8fChQKG4uZWZmZWN0KSx0aGlzLiNuLmRlbGV0ZShlKSl9O2Vuc3VyZShlLHQpe3ZhciBuPWoscj1HbigpO2lmKHQmJiF0aGlzLiN0LmhhcyhlKSYmIXRoaXMuI24uaGFzKGUpKWlmKHIpe3ZhciBpPWRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKSxhPXpuKCk7aS5hcHBlbmQoYSksdGhpcy4jbi5zZXQoZSx7ZWZmZWN0OmdyKCgpPT50KGEpKSxmcmFnbWVudDppfSl9ZWxzZSB0aGlzLiN0LnNldChlLGdyKCgpPT50KHRoaXMuYW5jaG9yKSkpO2lmKHRoaXMuI2Uuc2V0KG4sZSkscil7Zm9yKGxldFt0LHJdb2YgdGhpcy4jdCl0PT09ZT9uLnVuc2tpcF9lZmZlY3Qocik6bi5za2lwX2VmZmVjdChyKTtmb3IobGV0W3Qscl1vZiB0aGlzLiNuKXQ9PT1lP24udW5za2lwX2VmZmVjdChyLmVmZmVjdCk6bi5za2lwX2VmZmVjdChyLmVmZmVjdCk7bi5vbmNvbW1pdCh0aGlzLiNhKSxuLm9uZGlzY2FyZCh0aGlzLiNvKX1lbHNlIEMmJih0aGlzLmFuY2hvcj13KSx0aGlzLiNhKG4pfX07ZnVuY3Rpb24gUmkoZSx0LG49ITEpe3ZhciByO0MmJihyPXcsWWUoKSk7dmFyIGk9bmV3IExpKGUpLGE9bj9tZTowO2Z1bmN0aW9uIG8oZSx0KXtpZihDKXt2YXIgbj0kZShyKTtpZihlIT09cGFyc2VJbnQobi5zdWJzdHJpbmcoMSkpKXt2YXIgYT1RZSgpO1QoYSksaS5hbmNob3I9YSxKZSghMSksaS5lbnN1cmUoZSx0KSxKZSghMCk7cmV0dXJufX1pLmVuc3VyZShlLHQpfW1yKCgpPT57dmFyIGU9ITE7dCgodCxuPTApPT57ZT0hMCxvKG4sdCl9KSxlfHxvKC0xLG51bGwpfSxhKX12YXIgemk9U3ltYm9sKGBOYU5gKTtmdW5jdGlvbiBCaShlLHQsbil7QyYmWWUoKTt2YXIgcj1uZXcgTGkoZSksaT0hZHQoKTttcigoKT0+e3ZhciBlPXQoKTtlIT09ZSYmKGU9emkpLGkmJnR5cGVvZiBlPT1gb2JqZWN0YCYmZSYmKGU9e30pLHIuZW5zdXJlKGUsbil9KX1mdW5jdGlvbiBWaShlLHQpe3JldHVybiB0fWZ1bmN0aW9uIEhpKGUsdCxuKXtmb3IodmFyIHI9W10saT10Lmxlbmd0aCxhLG89dC5sZW5ndGgscz0wO3M8aTtzKyspe2xldCBuPXRbc107U3IobiwoKT0+e2lmKGEpe2lmKGEucGVuZGluZy5kZWxldGUobiksYS5kb25lLmFkZChuKSxhLnBlbmRpbmcuc2l6ZT09PTApe3ZhciB0PWUub3V0cm9ncm91cHM7VWkoZSxoKGEuZG9uZSkpLHQuZGVsZXRlKGEpLHQuc2l6ZT09PTAmJihlLm91dHJvZ3JvdXBzPW51bGwpfX1lbHNlIC0tb30sITEpfWlmKG89PT0wKXt2YXIgYz1yLmxlbmd0aD09PTAmJm4hPT1udWxsO2lmKGMpe3ZhciBsPW4sdT1sLnBhcmVudE5vZGU7V24odSksdS5hcHBlbmQobCksZS5pdGVtcy5jbGVhcigpfVVpKGUsdCwhYyl9ZWxzZSBhPXtwZW5kaW5nOm5ldyBTZXQodCksZG9uZTpuZXcgU2V0fSwoZS5vdXRyb2dyb3Vwcz8/PW5ldyBTZXQpLmFkZChhKX1mdW5jdGlvbiBVaShlLHQsbj0hMCl7dmFyIHI7aWYoZS5wZW5kaW5nLnNpemU+MCl7cj1uZXcgU2V0O2ZvcihsZXQgdCBvZiBlLnBlbmRpbmcudmFsdWVzKCkpZm9yKGxldCBuIG9mIHQpci5hZGQoZS5pdGVtcy5nZXQobikuZSl9Zm9yKHZhciBpPTA7aTx0Lmxlbmd0aDtpKyspe3ZhciBhPXRbaV07cj8uaGFzKGEpPyhhLmZ8PV9lLEVyKGEsZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpKSk6UCh0W2ldLG4pfX12YXIgV2k7ZnVuY3Rpb24gR2koZSx0LG4scixpLGE9bnVsbCl7dmFyIG89ZSxzPW5ldyBNYXA7aWYodCY0KXt2YXIgYz1lO289Qz9UKE4oYykpOmMuYXBwZW5kQ2hpbGQoem4oKSl9QyYmWWUoKTt2YXIgbD1udWxsLHU9cG4oKCk9Pnt2YXIgZT1uKCk7cmV0dXJuIGYoZSk/ZTplPT1udWxsP1tdOmgoZSl9KSxkLHA9bmV3IE1hcCxtPSEwO2Z1bmN0aW9uIGcoZSl7di5lZmZlY3QuZiYxNjM4NHx8KHYucGVuZGluZy5kZWxldGUoZSksdi5mYWxsYmFjaz1sLHFpKHYsZCxvLHQsciksbCE9PW51bGwmJihkLmxlbmd0aD09PTA/bC5mJjMzNTU0NDMyPyhsLmZePV9lLFlpKGwsbnVsbCxvKSk6d3IobCk6U3IobCwoKT0+e2w9bnVsbH0pKSl9ZnVuY3Rpb24gXyhlKXt2LnBlbmRpbmcuZGVsZXRlKGUpfXZhciB2PXtlZmZlY3Q6bXIoKCk9PntkPVIodSk7dmFyIGU9ZC5sZW5ndGg7bGV0IGM9ITE7QyYmJGUobyk9PT1gWyFgIT0oZT09PTApJiYobz1RZSgpLFQobyksSmUoITEpLGM9ITApO2Zvcih2YXIgZj1uZXcgU2V0LGg9aix2PUduKCkseT0wO3k8ZTt5Kz0xKXtDJiZ3Lm5vZGVUeXBlPT09OCYmdy5kYXRhPT09YF1gJiYobz13LGM9ITAsSmUoITEpKTt2YXIgZWU9ZFt5XSxiPXIoZWUseSksdGU9bT9udWxsOnMuZ2V0KGIpO3RlPyh0ZS52JiZFbih0ZS52LGVlKSx0ZS5pJiZFbih0ZS5pLHkpLHYmJmgudW5za2lwX2VmZmVjdCh0ZS5lKSk6KHRlPUppKHMsbT9vOldpPz89em4oKSxlZSxiLHksaSx0LG4pLG18fCh0ZS5lLmZ8PV9lKSxzLnNldChiLHRlKSksZi5hZGQoYil9aWYoZT09PTAmJmEmJiFsJiYobT9sPWdyKCgpPT5hKG8pKToobD1ncigoKT0+YShXaT8/PXpuKCkpKSxsLmZ8PV9lKSksZT5mLnNpemUmJmtlKGBgLGBgLGBgKSxDJiZlPjAmJlQoUWUoKSksIW0paWYocC5zZXQoaCxmKSx2KXtmb3IobGV0W2UsdF1vZiBzKWYuaGFzKGUpfHxoLnNraXBfZWZmZWN0KHQuZSk7aC5vbmNvbW1pdChnKSxoLm9uZGlzY2FyZChfKX1lbHNlIGcoaCk7YyYmSmUoITApLFIodSl9KSxmbGFnczp0LGl0ZW1zOnMscGVuZGluZzpwLG91dHJvZ3JvdXBzOm51bGwsZmFsbGJhY2s6bH07bT0hMSxDJiYobz13KX1mdW5jdGlvbiBLaShlKXtmb3IoO2UhPT1udWxsJiYhKGUuZiYzMik7KWU9ZS5uZXh0O3JldHVybiBlfWZ1bmN0aW9uIHFpKGUsdCxuLHIsaSl7dmFyIGE9KHImOCkhPTAsbz10Lmxlbmd0aCxzPWUuaXRlbXMsYz1LaShlLmVmZmVjdC5maXJzdCksbCx1PW51bGwsZCxmPVtdLHA9W10sbSxnLF8sdjtpZihhKWZvcih2PTA7djxvO3YrPTEpbT10W3ZdLGc9aShtLHYpLF89cy5nZXQoZykuZSxfLmYmMzM1NTQ0MzJ8fChfLm5vZGVzPy5hPy5tZWFzdXJlKCksKGQ/Pz1uZXcgU2V0KS5hZGQoXykpO2Zvcih2PTA7djxvO3YrPTEpe2lmKG09dFt2XSxnPWkobSx2KSxfPXMuZ2V0KGcpLmUsZS5vdXRyb2dyb3VwcyE9PW51bGwpZm9yKGxldCB0IG9mIGUub3V0cm9ncm91cHMpdC5wZW5kaW5nLmRlbGV0ZShfKSx0LmRvbmUuZGVsZXRlKF8pO2lmKF8uZiY4MTkyJiYod3IoXyksYSYmKF8ubm9kZXM/LmE/LnVuZml4KCksKGQ/Pz1uZXcgU2V0KS5kZWxldGUoXykpKSxfLmYmMzM1NTQ0MzIpaWYoXy5mXj1fZSxfPT09YylZaShfLG51bGwsbik7ZWxzZXt2YXIgeT11P3UubmV4dDpjO189PT1lLmVmZmVjdC5sYXN0JiYoZS5lZmZlY3QubGFzdD1fLnByZXYpLF8ucHJldiYmKF8ucHJldi5uZXh0PV8ubmV4dCksXy5uZXh0JiYoXy5uZXh0LnByZXY9Xy5wcmV2KSxYaShlLHUsXyksWGkoZSxfLHkpLFlpKF8seSxuKSx1PV8sZj1bXSxwPVtdLGM9S2kodS5uZXh0KTtjb250aW51ZX1pZihfIT09Yyl7aWYobCE9PXZvaWQgMCYmbC5oYXMoXykpe2lmKGYubGVuZ3RoPHAubGVuZ3RoKXt2YXIgZWU9cFswXSxiO3U9ZWUucHJldjt2YXIgdGU9ZlswXSxuZT1mW2YubGVuZ3RoLTFdO2ZvcihiPTA7YjxmLmxlbmd0aDtiKz0xKVlpKGZbYl0sZWUsbik7Zm9yKGI9MDtiPHAubGVuZ3RoO2IrPTEpbC5kZWxldGUocFtiXSk7WGkoZSx0ZS5wcmV2LG5lLm5leHQpLFhpKGUsdSx0ZSksWGkoZSxuZSxlZSksYz1lZSx1PW5lLC0tdixmPVtdLHA9W119ZWxzZSBsLmRlbGV0ZShfKSxZaShfLGMsbiksWGkoZSxfLnByZXYsXy5uZXh0KSxYaShlLF8sdT09PW51bGw/ZS5lZmZlY3QuZmlyc3Q6dS5uZXh0KSxYaShlLHUsXyksdT1fO2NvbnRpbnVlfWZvcihmPVtdLHA9W107YyE9PW51bGwmJmMhPT1fOykobD8/PW5ldyBTZXQpLmFkZChjKSxwLnB1c2goYyksYz1LaShjLm5leHQpO2lmKGM9PT1udWxsKWNvbnRpbnVlfV8uZiYzMzU1NDQzMnx8Zi5wdXNoKF8pLHU9XyxjPUtpKF8ubmV4dCl9aWYoZS5vdXRyb2dyb3VwcyE9PW51bGwpe2ZvcihsZXQgdCBvZiBlLm91dHJvZ3JvdXBzKXQucGVuZGluZy5zaXplPT09MCYmKFVpKGUsaCh0LmRvbmUpKSxlLm91dHJvZ3JvdXBzPy5kZWxldGUodCkpO2Uub3V0cm9ncm91cHMuc2l6ZT09PTAmJihlLm91dHJvZ3JvdXBzPW51bGwpfWlmKGMhPT1udWxsfHxsIT09dm9pZCAwKXt2YXIgeD1bXTtpZihsIT09dm9pZCAwKWZvcihfIG9mIGwpXy5mJjgxOTJ8fHgucHVzaChfKTtmb3IoO2MhPT1udWxsOykhKGMuZiY4MTkyKSYmYyE9PWUuZmFsbGJhY2smJngucHVzaChjKSxjPUtpKGMubmV4dCk7dmFyIHJlPXgubGVuZ3RoO2lmKHJlPjApe3ZhciBpZT1yJjQmJm89PT0wP246bnVsbDtpZihhKXtmb3Iodj0wO3Y8cmU7dis9MSl4W3ZdLm5vZGVzPy5hPy5tZWFzdXJlKCk7Zm9yKHY9MDt2PHJlO3YrPTEpeFt2XS5ub2Rlcz8uYT8uZml4KCl9SGkoZSx4LGllKX19YSYmZ3QoKCk9PntpZihkIT09dm9pZCAwKWZvcihfIG9mIGQpXy5ub2Rlcz8uYT8uYXBwbHkoKX0pfWZ1bmN0aW9uIEppKGUsdCxuLHIsaSxhLG8scyl7dmFyIGM9byYxP28mMTY/U24obik6d24obiwhMSwhMSk6bnVsbCxsPW8mMj9TbihpKTpudWxsO3JldHVybnt2OmMsaTpsLGU6Z3IoKCk9PihhKHQsYz8/bixsPz9pLHMpLCgpPT57ZS5kZWxldGUocil9KSl9fWZ1bmN0aW9uIFlpKGUsdCxuKXtpZihlLm5vZGVzKWZvcih2YXIgcj1lLm5vZGVzLnN0YXJ0LGk9ZS5ub2Rlcy5lbmQsYT10JiYhKHQuZiYzMzU1NDQzMik/dC5ub2Rlcy5zdGFydDpuO3IhPT1udWxsOyl7dmFyIG89Qm4ocik7aWYoYS5iZWZvcmUocikscj09PWkpcmV0dXJuO3I9b319ZnVuY3Rpb24gWGkoZSx0LG4pe3Q9PT1udWxsP2UuZWZmZWN0LmZpcnN0PW46dC5uZXh0PW4sbj09PW51bGw/ZS5lZmZlY3QubGFzdD10Om4ucHJldj10fWZ1bmN0aW9uIFppKGUsdCxuPSExLHI9ITEsaT0hMSxhPSExKXt2YXIgbz1lLHM9YGA7aWYobil7dmFyIGM9ZTtDJiYobz1UKE4oYykpKX1wcigoKT0+e3ZhciBlPUk7aWYocz09PShzPXQoKT8/YGApKXtDJiZZZSgpO3JldHVybn1pZihuJiYhQyl7ZS5ub2Rlcz1udWxsLGMuaW5uZXJIVE1MPXMscyE9PWBgJiZDaShOKGMpLGMubGFzdENoaWxkKTtyZXR1cm59aWYoZS5ub2RlcyE9PW51bGwmJihicihlLm5vZGVzLnN0YXJ0LGUubm9kZXMuZW5kKSxlLm5vZGVzPW51bGwpLHMhPT1gYCl7aWYoQyl7Zm9yKHZhciBhPXcuZGF0YSxsPVllKCksdT1sO2whPT1udWxsJiYobC5ub2RlVHlwZSE9PTh8fGwuZGF0YSE9PWBgKTspdT1sLGw9Qm4obCk7aWYobD09PW51bGwpdGhyb3cgR2UoKSxCZTtDaSh3LHUpLG89VChsKTtyZXR1cm59dmFyIGQ9S24ocj9gc3ZnYDppP2BtYXRoYDpgdGVtcGxhdGVgLHI/SGU6aT9VZTp2b2lkIDApO2QuaW5uZXJIVE1MPXM7dmFyIGY9cnx8aT9kOmQuY29udGVudDtpZihDaShOKGYpLGYubGFzdENoaWxkKSxyfHxpKWZvcig7TihmKTspby5iZWZvcmUoTihmKSk7ZWxzZSBvLmJlZm9yZShmKX19KX1mdW5jdGlvbiBRaShlLHQsLi4ubil7dmFyIHI9bmV3IExpKGUpO21yKCgpPT57bGV0IGU9dCgpPz9udWxsO3IuZW5zdXJlKGUsZSYmKHQ9PmUodCwuLi5uKSkpfSxtZSl9ZnVuY3Rpb24gJGkoZSx0LG4pe3ZhciByO0MmJihyPXcsWWUoKSk7dmFyIGk9bmV3IExpKGUpO21yKCgpPT57dmFyIGU9dCgpPz9udWxsO2lmKEMmJiRlKHIpPT09YFtgIT0oZSE9PW51bGwpKXt2YXIgYT1RZSgpO1QoYSksaS5hbmNob3I9YSxKZSghMSksaS5lbnN1cmUoZSxlJiYodD0+bih0LGUpKSksSmUoITApO3JldHVybn1pLmVuc3VyZShlLGUmJih0PT5uKHQsZSkpKX0sbWUpfXZhciBlYT0oKT0+cGVyZm9ybWFuY2Uubm93KCksdGE9e3RpY2s6ZT0+cmVxdWVzdEFuaW1hdGlvbkZyYW1lKGUpLG5vdzooKT0+ZWEoKSx0YXNrczpuZXcgU2V0fTtmdW5jdGlvbiBuYSgpe2xldCBlPXRhLm5vdygpO3RhLnRhc2tzLmZvckVhY2godD0+e3QuYyhlKXx8KHRhLnRhc2tzLmRlbGV0ZSh0KSx0LmYoKSl9KSx0YS50YXNrcy5zaXplIT09MCYmdGEudGljayhuYSl9ZnVuY3Rpb24gcmEoZSl7bGV0IHQ7cmV0dXJuIHRhLnRhc2tzLnNpemU9PT0wJiZ0YS50aWNrKG5hKSx7cHJvbWlzZTpuZXcgUHJvbWlzZShuPT57dGEudGFza3MuYWRkKHQ9e2M6ZSxmOm59KX0pLGFib3J0KCl7dGEudGFza3MuZGVsZXRlKHQpfX19ZnVuY3Rpb24gaWEoZSx0KXskbigoKT0+e2UuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQodCkpfSl9ZnVuY3Rpb24gYWEoZSl7aWYoZT09PWBmbG9hdGApcmV0dXJuYGNzc0Zsb2F0YDtpZihlPT09YG9mZnNldGApcmV0dXJuYGNzc09mZnNldGA7aWYoZS5zdGFydHNXaXRoKGAtLWApKXJldHVybiBlO2xldCB0PWUuc3BsaXQoYC1gKTtyZXR1cm4gdC5sZW5ndGg9PT0xP3RbMF06dFswXSt0LnNsaWNlKDEpLm1hcChlPT5lWzBdLnRvVXBwZXJDYXNlKCkrZS5zbGljZSgxKSkuam9pbihgYCl9ZnVuY3Rpb24gb2EoZSl7bGV0IHQ9e30sbj1lLnNwbGl0KGA7YCk7Zm9yKGxldCBlIG9mIG4pe2xldFtuLHJdPWUuc3BsaXQoYDpgKTtpZighbnx8cj09PXZvaWQgMClicmVhaztsZXQgaT1hYShuLnRyaW0oKSk7dFtpXT1yLnRyaW0oKX1yZXR1cm4gdH12YXIgc2E9ZT0+ZTtmdW5jdGlvbiBjYShlLHQsbixyKXt2YXIgaT0oZSYxKSE9MCxhPShlJjIpIT0wLG89aSYmYSxzPShlJjQpIT0wLGM9bz9gYm90aGA6aT9gaW5gOmBvdXRgLGwsdT10LmluZXJ0LGQ9dC5zdHlsZS5vdmVyZmxvdyxmLHA7ZnVuY3Rpb24gbSgpe3JldHVybiAkbigoKT0+bD8/PW4oKSh0LHI/LigpPz97fSx7ZGlyZWN0aW9uOmN9KSl9dmFyIGg9e2lzX2dsb2JhbDpzLGluKCl7aWYodC5pbmVydD11LCFpKXtwPy5hYm9ydCgpLHA/LnJlc2V0Py4oKTtyZXR1cm59YXx8Zj8uYWJvcnQoKSxmPWxhKHQsbSgpLHAsMSwoKT0+e2lhKHQsYGludHJvc3RhcnRgKX0sKCk9PntpYSh0LGBpbnRyb2VuZGApLGY/LmFib3J0KCksZj1sPXZvaWQgMCx0LnN0eWxlLm92ZXJmbG93PWR9KX0sb3V0KGUpe2lmKCFhKXtlPy4oKSxsPXZvaWQgMDtyZXR1cm59dC5pbmVydD0hMCxwPWxhKHQsbSgpLGYsMCwoKT0+e2lhKHQsYG91dHJvc3RhcnRgKX0sKCk9PntpYSh0LGBvdXRyb2VuZGApLGU/LigpfSl9LHN0b3A6KCk9PntmPy5hYm9ydCgpLHA/LmFib3J0KCl9fSxnPUk7aWYoKGcubm9kZXMudD8/PVtdKS5wdXNoKGgpLGkmJkFpKXt2YXIgXz1zO2lmKCFfKXtmb3IodmFyIHY9Zy5wYXJlbnQ7diYmdi5mJjY1NTM2Oylmb3IoOyh2PXYucGFyZW50KSYmISh2LmYmMTYpOyk7Xz0hdnx8KHYuZiYzMjc2OCkhPTB9XyYmdXIoKCk9PnskcigoKT0+aC5pbigpKX0pfX1mdW5jdGlvbiBsYShlLHQsbixyLGksYSl7dmFyIG89cj09PTE7aWYobmUodCkpe3ZhciBzLGM9ITE7cmV0dXJuIGd0KCgpPT57Y3x8KHM9bGEoZSx0KHtkaXJlY3Rpb246bz9gaW5gOmBvdXRgfSksbixyLGksYSkpfSkse2Fib3J0OigpPT57Yz0hMCxzPy5hYm9ydCgpfSxkZWFjdGl2YXRlOigpPT5zLmRlYWN0aXZhdGUoKSxyZXNldDooKT0+cy5yZXNldCgpLHQ6KCk9PnMudCgpfX1pZihuPy5kZWFjdGl2YXRlKCksIXQ/LmR1cmF0aW9uJiYhdD8uZGVsYXkpcmV0dXJuIGkoKSxhKCkse2Fib3J0OngsZGVhY3RpdmF0ZTp4LHJlc2V0OngsdDooKT0+cn07bGV0e2RlbGF5Omw9MCxjc3M6dSx0aWNrOmQsZWFzaW5nOmY9c2F9PXQ7dmFyIHA9W107aWYobyYmbj09PXZvaWQgMCYmKGQmJmQoMCwxKSx1KSl7dmFyIG09b2EodSgwLDEpKTtwLnB1c2gobSxtKX12YXIgaD0oKT0+MS1yLGc9ZS5hbmltYXRlKHAse2R1cmF0aW9uOmwsZmlsbDpgZm9yd2FyZHNgfSk7cmV0dXJuIGcub25maW5pc2g9KCk9PntnLmNhbmNlbCgpLGkoKTt2YXIgbz1uPy50KCk/PzEtcjtuPy5hYm9ydCgpO3ZhciBzPXItbyxjPXQuZHVyYXRpb24qTWF0aC5hYnMocyksbD1bXTtpZihjPjApe3ZhciBwPSExO2lmKHUpZm9yKHZhciBtPU1hdGguY2VpbChjLygxZTMvNjApKSxfPTA7Xzw9bTtfKz0xKXt2YXIgdj1vK3MqZihfL20pLHk9b2EodSh2LDEtdikpO2wucHVzaCh5KSxwfHw9eS5vdmVyZmxvdz09PWBoaWRkZW5gfXAmJihlLnN0eWxlLm92ZXJmbG93PWBoaWRkZW5gKSxoPSgpPT57dmFyIGU9Zy5jdXJyZW50VGltZTtyZXR1cm4gbytzKmYoZS9jKX0sZCYmcmEoKCk9PntpZihnLnBsYXlTdGF0ZSE9PWBydW5uaW5nYClyZXR1cm4hMTt2YXIgZT1oKCk7cmV0dXJuIGQoZSwxLWUpLCEwfSl9Zz1lLmFuaW1hdGUobCx7ZHVyYXRpb246YyxmaWxsOmBmb3J3YXJkc2B9KSxnLm9uZmluaXNoPSgpPT57aD0oKT0+cixkPy4ociwxLXIpLGEoKX19LHthYm9ydDooKT0+e2cmJihnLmNhbmNlbCgpLGcuZWZmZWN0PW51bGwsZy5vbmZpbmlzaD14KX0sZGVhY3RpdmF0ZTooKT0+e2E9eH0scmVzZXQ6KCk9PntyPT09MCYmZD8uKDEsMCl9LHQ6KCk9PmgoKX19ZnVuY3Rpb24gdWEoZSx0LG4pe3VyKCgpPT57dmFyIHI9JHIoKCk9PnQoZSxuPy4oKSl8fHt9KTtpZihuJiZyPy51cGRhdGUpe3ZhciBpPSExLGE9e307ZnIoKCk9Pnt2YXIgZT1uKCk7ZWkoZSksaSYmdHQoYSxlKSYmKGE9ZSxyLnVwZGF0ZShlKSl9KSxpPSEwfWlmKHI/LmRlc3Ryb3kpcmV0dXJuKCk9PnIuZGVzdHJveSgpfSl9ZnVuY3Rpb24gZGEoZSx0KXt2YXIgbj12b2lkIDAscjtocigoKT0+e24hPT0obj10KCkpJiYociYmPShQKHIpLG51bGwpLG4mJihyPWdyKCgpPT57dXIoKCk9Pm4oZSkpfSkpKX0pfWZ1bmN0aW9uIGZhKGUpe3ZhciB0LG4scj1gYDtpZih0eXBlb2YgZT09YHN0cmluZ2B8fHR5cGVvZiBlPT1gbnVtYmVyYClyKz1lO2Vsc2UgaWYodHlwZW9mIGU9PWBvYmplY3RgKWlmKEFycmF5LmlzQXJyYXkoZSkpe3ZhciBpPWUubGVuZ3RoO2Zvcih0PTA7dDxpO3QrKyllW3RdJiYobj1mYShlW3RdKSkmJihyJiYocis9YCBgKSxyKz1uKX1lbHNlIGZvcihuIGluIGUpZVtuXSYmKHImJihyKz1gIGApLHIrPW4pO3JldHVybiByfWZ1bmN0aW9uIHBhKCl7Zm9yKHZhciBlLHQsbj0wLHI9YGAsaT1hcmd1bWVudHMubGVuZ3RoO248aTtuKyspKGU9YXJndW1lbnRzW25dKSYmKHQ9ZmEoZSkpJiYociYmKHIrPWAgYCkscis9dCk7cmV0dXJuIHJ9ZnVuY3Rpb24gbWEoZSl7cmV0dXJuIHR5cGVvZiBlPT1gb2JqZWN0YD9wYShlKTplPz9gYH12YXIgaGE9Wy4uLmAgCQpcclxmXHhBMFx277u/YF07ZnVuY3Rpb24gZ2EoZSx0LG4pe3ZhciByPWU9PW51bGw/YGA6YGArZTtpZih0JiYocj1yP3IrYCBgK3Q6dCksbil7Zm9yKHZhciBpIG9mIE9iamVjdC5rZXlzKG4pKWlmKG5baV0pcj1yP3IrYCBgK2k6aTtlbHNlIGlmKHIubGVuZ3RoKWZvcih2YXIgYT1pLmxlbmd0aCxvPTA7KG89ci5pbmRleE9mKGksbykpPj0wOyl7dmFyIHM9bythOyhvPT09MHx8aGEuaW5jbHVkZXMocltvLTFdKSkmJihzPT09ci5sZW5ndGh8fGhhLmluY2x1ZGVzKHJbc10pKT9yPShvPT09MD9gYDpyLnN1YnN0cmluZygwLG8pKStyLnN1YnN0cmluZyhzKzEpOm89c319cmV0dXJuIHI9PT1gYD9udWxsOnJ9ZnVuY3Rpb24gX2EoZSx0PSExKXt2YXIgbj10P2AgIWltcG9ydGFudDtgOmA7YCxyPWBgO2Zvcih2YXIgaSBvZiBPYmplY3Qua2V5cyhlKSl7dmFyIGE9ZVtpXTthIT1udWxsJiZhIT09YGAmJihyKz1gIGAraStgOiBgK2Erbil9cmV0dXJuIHJ9ZnVuY3Rpb24gdmEoZSl7cmV0dXJuIGVbMF0hPT1gLWB8fGVbMV0hPT1gLWA/ZS50b0xvd2VyQ2FzZSgpOmV9ZnVuY3Rpb24geWEoZSx0KXtpZih0KXt2YXIgbj1gYCxyLGk7aWYoQXJyYXkuaXNBcnJheSh0KT8ocj10WzBdLGk9dFsxXSk6cj10LGUpe2U9U3RyaW5nKGUpLnJlcGxhY2VBbGwoL1xzKlwvXCouKj9cKlwvXHMqL2csYGApLnRyaW0oKTt2YXIgYT0hMSxvPTAscz0hMSxjPVtdO3ImJmMucHVzaCguLi5PYmplY3Qua2V5cyhyKS5tYXAodmEpKSxpJiZjLnB1c2goLi4uT2JqZWN0LmtleXMoaSkubWFwKHZhKSk7dmFyIGw9MCx1PS0xO2xldCB0PWUubGVuZ3RoO2Zvcih2YXIgZD0wO2Q8dDtkKyspe3ZhciBmPWVbZF07aWYocz9mPT09YC9gJiZlW2QtMV09PT1gKmAmJihzPSExKTphP2E9PT1mJiYoYT0hMSk6Zj09PWAvYCYmZVtkKzFdPT09YCpgP3M9ITA6Zj09PWAiYHx8Zj09PWAnYD9hPWY6Zj09PWAoYD9vKys6Zj09PWApYCYmby0tLCFzJiZhPT09ITEmJm89PT0wKXtpZihmPT09YDpgJiZ1PT09LTEpdT1kO2Vsc2UgaWYoZj09PWA7YHx8ZD09PXQtMSl7aWYodSE9PS0xKXt2YXIgcD12YShlLnN1YnN0cmluZyhsLHUpLnRyaW0oKSk7aWYoIWMuaW5jbHVkZXMocCkpe2YhPT1gO2AmJmQrKzt2YXIgbT1lLnN1YnN0cmluZyhsLGQpLnRyaW0oKTtuKz1gIGArbStgO2B9fWw9ZCsxLHU9LTF9fX19cmV0dXJuIHImJihuKz1fYShyKSksaSYmKG4rPV9hKGksITApKSxuPW4udHJpbSgpLG49PT1gYD9udWxsOm59cmV0dXJuIGU9PW51bGw/bnVsbDpTdHJpbmcoZSl9ZnVuY3Rpb24gYmEoZSx0LG4scixpLGEpe3ZhciBvPWUuX19jbGFzc05hbWU7aWYoQ3x8byE9PW58fG89PT12b2lkIDApe3ZhciBzPWdhKG4scixhKTsoIUN8fHMhPT1lLmdldEF0dHJpYnV0ZShgY2xhc3NgKSkmJihzPT1udWxsP2UucmVtb3ZlQXR0cmlidXRlKGBjbGFzc2ApOnQ/ZS5jbGFzc05hbWU9czplLnNldEF0dHJpYnV0ZShgY2xhc3NgLHMpKSxlLl9fY2xhc3NOYW1lPW59ZWxzZSBpZihhJiZpIT09YSlmb3IodmFyIGMgaW4gYSl7dmFyIGw9ISFhW2NdOyhpPT1udWxsfHxsIT09ISFpW2NdKSYmZS5jbGFzc0xpc3QudG9nZ2xlKGMsbCl9cmV0dXJuIGF9ZnVuY3Rpb24geGEoZSx0PXt9LG4scil7Zm9yKHZhciBpIGluIG4pe3ZhciBhPW5baV07dFtpXSE9PWEmJihuW2ldPT1udWxsP2Uuc3R5bGUucmVtb3ZlUHJvcGVydHkoaSk6ZS5zdHlsZS5zZXRQcm9wZXJ0eShpLGEscikpfX1mdW5jdGlvbiBTYShlLHQsbixyKXt2YXIgaT1lLl9fc3R5bGU7aWYoQ3x8aSE9PXQpe3ZhciBhPXlhKHQscik7KCFDfHxhIT09ZS5nZXRBdHRyaWJ1dGUoYHN0eWxlYCkpJiYoYT09bnVsbD9lLnJlbW92ZUF0dHJpYnV0ZShgc3R5bGVgKTplLnN0eWxlLmNzc1RleHQ9YSksZS5fX3N0eWxlPXR9ZWxzZSByJiYoQXJyYXkuaXNBcnJheShyKT8oeGEoZSxuPy5bMF0sclswXSkseGEoZSxuPy5bMV0sclsxXSxgaW1wb3J0YW50YCkpOnhhKGUsbixyKSk7cmV0dXJuIHJ9ZnVuY3Rpb24gQ2EoZSx0LG49ITEpe2lmKGUubXVsdGlwbGUpe2lmKHQ9PW51bGwpcmV0dXJuO2lmKCFmKHQpKXJldHVybiBLZSgpO2Zvcih2YXIgciBvZiBlLm9wdGlvbnMpci5zZWxlY3RlZD10LmluY2x1ZGVzKEVhKHIpKTtyZXR1cm59Zm9yKHIgb2YgZS5vcHRpb25zKWlmKE5uKEVhKHIpLHQpKXtyLnNlbGVjdGVkPSEwO3JldHVybn0oIW58fHQhPT12b2lkIDApJiYoZS5zZWxlY3RlZEluZGV4PS0xKX1mdW5jdGlvbiB3YShlKXt2YXIgdD1uZXcgTXV0YXRpb25PYnNlcnZlcigoKT0+e0NhKGUsZS5fX3ZhbHVlKX0pO3Qub2JzZXJ2ZShlLHtjaGlsZExpc3Q6ITAsc3VidHJlZTohMCxhdHRyaWJ1dGVzOiEwLGF0dHJpYnV0ZUZpbHRlcjpbYHZhbHVlYF19KSxhcigoKT0+e3QuZGlzY29ubmVjdCgpfSl9ZnVuY3Rpb24gVGEoZSx0LG49dCl7dmFyIHI9bmV3IFdlYWtTZXQsaT0hMDtlcihlLGBjaGFuZ2VgLHQ9Pnt2YXIgaT10P2Bbc2VsZWN0ZWRdYDpgOmNoZWNrZWRgLGE7aWYoZS5tdWx0aXBsZSlhPVtdLm1hcC5jYWxsKGUucXVlcnlTZWxlY3RvckFsbChpKSxFYSk7ZWxzZXt2YXIgbz1lLnF1ZXJ5U2VsZWN0b3IoaSk/P2UucXVlcnlTZWxlY3Rvcihgb3B0aW9uOm5vdChbZGlzYWJsZWRdKWApO2E9byYmRWEobyl9bihhKSxlLl9fdmFsdWU9YSxqIT09bnVsbCYmci5hZGQoail9KSx1cigoKT0+e3ZhciBhPXQoKTtpZihlPT09ZG9jdW1lbnQuYWN0aXZlRWxlbWVudCl7dmFyIG89cnQ/THQ6ajtpZihyLmhhcyhvKSlyZXR1cm59aWYoQ2EoZSxhLGkpLGkmJmE9PT12b2lkIDApe3ZhciBzPWUucXVlcnlTZWxlY3RvcihgOmNoZWNrZWRgKTtzIT09bnVsbCYmKGE9RWEocyksbihhKSl9ZS5fX3ZhbHVlPWEsaT0hMX0pLHdhKGUpfWZ1bmN0aW9uIEVhKGUpe3JldHVybmBfX3ZhbHVlYGluIGU/ZS5fX3ZhbHVlOmUudmFsdWV9dmFyIERhPVN5bWJvbChgY2xhc3NgKSxPYT1TeW1ib2woYHN0eWxlYCksa2E9U3ltYm9sKGBpcyBjdXN0b20gZWxlbWVudGApLEFhPVN5bWJvbChgaXMgaHRtbGApLGphPUVlP2BsaW5rYDpgTElOS2AsTWE9RWU/YGlucHV0YDpgSU5QVVRgLE5hPUVlP2BvcHRpb25gOmBPUFRJT05gLFBhPUVlP2BzZWxlY3RgOmBTRUxFQ1RgLEZhPUVlP2Bwcm9ncmVzc2A6YFBST0dSRVNTYDtmdW5jdGlvbiBJYShlKXtpZihDKXt2YXIgdD0hMSxuPSgpPT57aWYoIXQpe2lmKHQ9ITAsZS5oYXNBdHRyaWJ1dGUoYHZhbHVlYCkpe3ZhciBuPWUudmFsdWU7emEoZSxgdmFsdWVgLG51bGwpLGUudmFsdWU9bn1pZihlLmhhc0F0dHJpYnV0ZShgY2hlY2tlZGApKXt2YXIgcj1lLmNoZWNrZWQ7emEoZSxgY2hlY2tlZGAsbnVsbCksZS5jaGVja2VkPXJ9fX07ZS5fX29uX3I9bixndChuKSxRbigpfX1mdW5jdGlvbiBMYShlLHQpe3ZhciBuPUhhKGUpO24udmFsdWU9PT0obi52YWx1ZT10Pz92b2lkIDApfHxlLnZhbHVlPT09dCYmKHQhPT0wfHxlLm5vZGVOYW1lIT09RmEpfHwoZS52YWx1ZT10Pz9gYCl9ZnVuY3Rpb24gUmEoZSx0KXt0P2UuaGFzQXR0cmlidXRlKGBzZWxlY3RlZGApfHxlLnNldEF0dHJpYnV0ZShgc2VsZWN0ZWRgLGBgKTplLnJlbW92ZUF0dHJpYnV0ZShgc2VsZWN0ZWRgKX1mdW5jdGlvbiB6YShlLHQsbixyKXt2YXIgaT1IYShlKTtDJiYoaVt0XT1lLmdldEF0dHJpYnV0ZSh0KSx0PT09YHNyY2B8fHQ9PT1gc3Jjc2V0YHx8dD09PWBocmVmYCYmZS5ub2RlTmFtZT09PWphKXx8aVt0XSE9PShpW3RdPW4pJiYodD09PWBsb2FkaW5nYCYmKGVbd2VdPW4pLG49PW51bGw/ZS5yZW1vdmVBdHRyaWJ1dGUodCk6dHlwZW9mIG4hPWBzdHJpbmdgJiZXYShlKS5pbmNsdWRlcyh0KT9lW3RdPW46ZS5zZXRBdHRyaWJ1dGUodCxuKSl9ZnVuY3Rpb24gQmEoZSx0LG4scixpPSExLGE9ITEpe2lmKEMmJmkmJmUubm9kZU5hbWU9PT1NYSl7dmFyIG89ZTsoby50eXBlPT09YGNoZWNrYm94YD9gZGVmYXVsdENoZWNrZWRgOmBkZWZhdWx0VmFsdWVgKWluIG58fElhKG8pfXZhciBzPUhhKGUpLGM9c1trYV0sbD0hc1tBYV07bGV0IHU9QyYmYzt1JiZKZSghMSk7dmFyIGQ9dHx8e30sZj1lLm5vZGVOYW1lPT09TmE7Zm9yKHZhciBwIGluIHQpcCBpbiBufHwobltwXT1udWxsKTtuLmNsYXNzP24uY2xhc3M9bWEobi5jbGFzcyk6KHJ8fG5bRGFdKSYmKG4uY2xhc3M9bnVsbCksbltPYV0mJihuLnN0eWxlPz89bnVsbCk7dmFyIG09V2EoZSk7Zm9yKGxldCBpIGluIG4pe2xldCBvPW5baV07aWYoZiYmaT09PWB2YWx1ZWAmJm89PW51bGwpe2UudmFsdWU9ZS5fX3ZhbHVlPWBgLGRbaV09bztjb250aW51ZX1pZihpPT09YGNsYXNzYCl7YmEoZSxlLm5hbWVzcGFjZVVSST09PWBodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sYCxvLHIsdD8uW0RhXSxuW0RhXSksZFtpXT1vLGRbRGFdPW5bRGFdO2NvbnRpbnVlfWlmKGk9PT1gc3R5bGVgKXtTYShlLG8sdD8uW09hXSxuW09hXSksZFtpXT1vLGRbT2FdPW5bT2FdO2NvbnRpbnVlfXZhciBoPWRbaV07aWYoIShvPT09aCYmIShvPT09dm9pZCAwJiZlLmhhc0F0dHJpYnV0ZShpKSkpKXtkW2ldPW87dmFyIGc9aVswXStpWzFdO2lmKGchPT1gJCRgKWlmKGc9PT1gb25gKXtsZXQgdD17fSxuPWAkJGAraSxyPWkuc2xpY2UoMik7dmFyIF89aWkocik7aWYobmkocikmJihyPXIuc2xpY2UoMCwtNyksdC5jYXB0dXJlPSEwKSwhXyYmaCl7aWYobyE9bnVsbCljb250aW51ZTtlLnJlbW92ZUV2ZW50TGlzdGVuZXIocixkW25dLHQpLGRbbl09bnVsbH1pZihfKWdpKHIsZSxvKSxfaShbcl0pO2Vsc2UgaWYobyE9bnVsbCl7ZnVuY3Rpb24gYShlKXtkW2ldLmNhbGwodGhpcyxlKX1kW25dPW1pKHIsZSxhLHQpfX1lbHNlIGlmKGk9PT1gc3R5bGVgKXphKGUsaSxvKTtlbHNlIGlmKGk9PT1gYXV0b2ZvY3VzYClZbihlLCEhbyk7ZWxzZSBpZighYyYmKGk9PT1gX192YWx1ZWB8fGk9PT1gdmFsdWVgJiZvIT1udWxsKSllLnZhbHVlPWUuX192YWx1ZT1vO2Vsc2UgaWYoaT09PWBzZWxlY3RlZGAmJmYpUmEoZSxvKTtlbHNle3ZhciB2PWk7bHx8KHY9c2kodikpO3ZhciB5PXY9PT1gZGVmYXVsdFZhbHVlYHx8dj09PWBkZWZhdWx0Q2hlY2tlZGA7aWYobz09bnVsbCYmIWMmJiF5KWlmKHNbaV09bnVsbCx2PT09YHZhbHVlYHx8dj09PWBjaGVja2VkYCl7bGV0IG49ZSxyPXQ9PT12b2lkIDA7aWYodj09PWB2YWx1ZWApe2xldCBlPW4uZGVmYXVsdFZhbHVlO24ucmVtb3ZlQXR0cmlidXRlKHYpLG4uZGVmYXVsdFZhbHVlPWUsbi52YWx1ZT1uLl9fdmFsdWU9cj9lOm51bGx9ZWxzZXtsZXQgZT1uLmRlZmF1bHRDaGVja2VkO24ucmVtb3ZlQXR0cmlidXRlKHYpLG4uZGVmYXVsdENoZWNrZWQ9ZSxuLmNoZWNrZWQ9cj9lOiExfX1lbHNlIGUucmVtb3ZlQXR0cmlidXRlKGkpO2Vsc2UgeXx8bS5pbmNsdWRlcyh2KSYmKGN8fHR5cGVvZiBvIT1gc3RyaW5nYCk/KGVbdl09byx2IGluIHMmJihzW3ZdPVMpKTp0eXBlb2YgbyE9YGZ1bmN0aW9uYCYmemEoZSx2LG8sYSl9fX1yZXR1cm4gdSYmSmUoITApLGR9ZnVuY3Rpb24gVmEoZSx0LG49W10scj1bXSxpPVtdLGEsbz0hMSxzPSExKXtvbihpLG4scixuPT57dmFyIHI9dm9pZCAwLGk9e30sYz1lLm5vZGVOYW1lPT09UGEsbD0hMTtpZihocigoKT0+e3ZhciB1PXQoLi4ubi5tYXAoUikpLGQ9QmEoZSxyLHUsYSxvLHMpO2wmJmMmJmB2YWx1ZWBpbiB1JiZDYShlLHUudmFsdWUpO2ZvcihsZXQgZSBvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGkpKXVbZV18fFAoaVtlXSk7Zm9yKGxldCB0IG9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHModSkpe3ZhciBmPXVbdF07dC5kZXNjcmlwdGlvbj09PWBAYXR0YWNoYCYmKCFyfHxmIT09clt0XSkmJihpW3RdJiZQKGlbdF0pLGlbdF09Z3IoKCk9PmRhKGUsKCk9PmYpKSksZFt0XT1mfXI9ZH0pLGMpe3ZhciB1PWU7dXIoKCk9PntDYSh1LHIudmFsdWUsITApLHdhKHUpfSl9bD0hMH0pfWZ1bmN0aW9uIEhhKGUpe3JldHVybiBlLl9fYXR0cmlidXRlcz8/PXtba2FdOmUubm9kZU5hbWUuaW5jbHVkZXMoYC1gKSxbQWFdOmUubmFtZXNwYWNlVVJJPT09VmV9fXZhciBVYT1uZXcgTWFwO2Z1bmN0aW9uIFdhKGUpe3ZhciB0PWUuZ2V0QXR0cmlidXRlKGBpc2ApfHxlLm5vZGVOYW1lLG49VWEuZ2V0KHQpO2lmKG4pcmV0dXJuIG47VWEuc2V0KHQsbj1bXSk7Zm9yKHZhciByLGk9ZSxhPUVsZW1lbnQucHJvdG90eXBlO2EhPT1pOyl7Zm9yKHZhciBvIGluIHI9dihpKSxyKXJbb10uc2V0JiZuLnB1c2gobyk7aT1iKGkpfXJldHVybiBufXZhciBHYT1udWxsO2Z1bmN0aW9uIEthKCl7aWYoR2E9PT1udWxsKXt2YXIgZT1Lbihgc2VsZWN0YCk7ZS5pbm5lckhUTUw9eGkoYDxvcHRpb24+PHNwYW4+dDwvc3Bhbj48L29wdGlvbj5gKSxHYT1lLmZpcnN0Q2hpbGQ/LmZpcnN0Q2hpbGQ/Lm5vZGVUeXBlPT09MX1yZXR1cm4gR2F9ZnVuY3Rpb24gcWEoZSx0KXt2YXIgbj1DO0thKCl8fChKZSghMSksZS50ZXh0Q29udGVudD1gYCxlLmFwcGVuZChxbihgYCkpKTt0cnl7dCgpfWZpbmFsbHl7biYmKEM/WGUoZSk6KEplKCEwKSxUKGUpKSl9fWZ1bmN0aW9uIEphKGUsdCxuPXQpe3ZhciByPW5ldyBXZWFrU2V0O2VyKGUsYGlucHV0YCxhc3luYyBpPT57dmFyIGE9aT9lLmRlZmF1bHRWYWx1ZTplLnZhbHVlO2lmKGE9WGEoZSk/WmEoYSk6YSxuKGEpLGohPT1udWxsJiZyLmFkZChqKSxhd2FpdCBYcigpLGEhPT0oYT10KCkpKXt2YXIgbz1lLnNlbGVjdGlvblN0YXJ0LHM9ZS5zZWxlY3Rpb25FbmQsYz1lLnZhbHVlLmxlbmd0aDtpZihlLnZhbHVlPWE/P2BgLHMhPT1udWxsKXt2YXIgbD1lLnZhbHVlLmxlbmd0aDtvPT09cyYmcz09PWMmJmw+Yz8oZS5zZWxlY3Rpb25TdGFydD1sLGUuc2VsZWN0aW9uRW5kPWwpOihlLnNlbGVjdGlvblN0YXJ0PW8sZS5zZWxlY3Rpb25FbmQ9TWF0aC5taW4ocyxsKSl9fX0pLChDJiZlLmRlZmF1bHRWYWx1ZSE9PWUudmFsdWV8fCRyKHQpPT1udWxsJiZlLnZhbHVlKSYmKG4oWGEoZSk/WmEoZS52YWx1ZSk6ZS52YWx1ZSksaiE9PW51bGwmJnIuYWRkKGopKSxmcigoKT0+e3ZhciBuPXQoKTtpZihlPT09ZG9jdW1lbnQuYWN0aXZlRWxlbWVudCl7dmFyIGk9cnQ/THQ6ajtpZihyLmhhcyhpKSlyZXR1cm59WGEoZSkmJm49PT1aYShlLnZhbHVlKXx8ZS50eXBlPT09YGRhdGVgJiYhbiYmIWUudmFsdWV8fG4hPT1lLnZhbHVlJiYoZS52YWx1ZT1uPz9gYCl9KX1mdW5jdGlvbiBZYShlLHQsbj10KXtlcihlLGBjaGFuZ2VgLHQ9PntuKHQ/ZS5kZWZhdWx0Q2hlY2tlZDplLmNoZWNrZWQpfSksKEMmJmUuZGVmYXVsdENoZWNrZWQhPT1lLmNoZWNrZWR8fCRyKHQpPT1udWxsKSYmbihlLmNoZWNrZWQpLGZyKCgpPT57ZS5jaGVja2VkPSEhdCgpfSl9ZnVuY3Rpb24gWGEoZSl7dmFyIHQ9ZS50eXBlO3JldHVybiB0PT09YG51bWJlcmB8fHQ9PT1gcmFuZ2VgfWZ1bmN0aW9uIFphKGUpe3JldHVybiBlPT09YGA/bnVsbDorZX1mdW5jdGlvbiBRYShlLHQpe3JldHVybiBlPT09dHx8ZT8uW1NlXT09PXR9ZnVuY3Rpb24gJGEoZT17fSx0LG4scil7dmFyIGk9RS5yLGE9STtyZXR1cm4gdXIoKCk9Pnt2YXIgbyxzO3JldHVybiBmcigoKT0+e289cyxzPXI/LigpfHxbXSwkcigoKT0+e2UhPT1uKC4uLnMpJiYodChlLC4uLnMpLG8mJlFhKG4oLi4ubyksZSkmJnQobnVsbCwuLi5vKSl9KX0pLCgpPT57bGV0IHI9YTtmb3IoO3IhPT1pJiZyLnBhcmVudCE9PW51bGwmJnIucGFyZW50LmYmMzM1NTQ0MzI7KXI9ci5wYXJlbnQ7bGV0IG89KCk9PntzJiZRYShuKC4uLnMpLGUpJiZ0KG51bGwsLi4ucyl9LGM9ci50ZWFyZG93bjtyLnRlYXJkb3duPSgpPT57bygpLGM/LigpfX19KSxlfWZ1bmN0aW9uIGVvKGU9ITEpe2xldCB0PUUsbj10LmwudTtpZighbilyZXR1cm47bGV0IHI9KCk9PmVpKHQucyk7aWYoZSl7bGV0IGU9MCxuPXt9LGk9dW4oKCk9PntsZXQgcj0hMSxpPXQucztmb3IobGV0IGUgaW4gaSlpW2VdIT09bltlXSYmKG5bZV09aVtlXSxyPSEwKTtyZXR1cm4gciYmZSsrLGV9KTtyPSgpPT5SKGkpfW4uYi5sZW5ndGgmJmNyKCgpPT57dG8odCxyKSxpZShuLmIpfSksb3IoKCk9PntsZXQgZT0kcigoKT0+bi5tLm1hcChyZSkpO3JldHVybigpPT57Zm9yKGxldCB0IG9mIGUpdHlwZW9mIHQ9PWBmdW5jdGlvbmAmJnQoKX19KSxuLmEubGVuZ3RoJiZvcigoKT0+e3RvKHQsciksaWUobi5hKX0pfWZ1bmN0aW9uIHRvKGUsdCl7aWYoZS5sLnMpZm9yKGxldCB0IG9mIGUubC5zKVIodCk7dCgpfXZhciBubz17Z2V0KGUsdCl7aWYoIWUuZXhjbHVkZS5pbmNsdWRlcyh0KSlyZXR1cm4gZS5wcm9wc1t0XX0sc2V0KGUsdCl7cmV0dXJuITF9LGdldE93blByb3BlcnR5RGVzY3JpcHRvcihlLHQpe2lmKCFlLmV4Y2x1ZGUuaW5jbHVkZXModCkmJnQgaW4gZS5wcm9wcylyZXR1cm57ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsdmFsdWU6ZS5wcm9wc1t0XX19LGhhcyhlLHQpe3JldHVybiBlLmV4Y2x1ZGUuaW5jbHVkZXModCk/ITE6dCBpbiBlLnByb3BzfSxvd25LZXlzKGUpe3JldHVybiBSZWZsZWN0Lm93bktleXMoZS5wcm9wcykuZmlsdGVyKHQ9PiFlLmV4Y2x1ZGUuaW5jbHVkZXModCkpfX07ZnVuY3Rpb24gcm8oZSx0LG4pe3JldHVybiBuZXcgUHJveHkoe3Byb3BzOmUsZXhjbHVkZTp0fSxubyl9dmFyIGlvPXtnZXQoZSx0KXtsZXQgbj1lLnByb3BzLmxlbmd0aDtmb3IoO24tLTspe2xldCByPWUucHJvcHNbbl07aWYobmUocikmJihyPXIoKSksdHlwZW9mIHI9PWBvYmplY3RgJiZyJiZ0IGluIHIpcmV0dXJuIHJbdF19fSxzZXQoZSx0LG4pe2xldCByPWUucHJvcHMubGVuZ3RoO2Zvcig7ci0tOyl7bGV0IGk9ZS5wcm9wc1tyXTtuZShpKSYmKGk9aSgpKTtsZXQgYT1fKGksdCk7aWYoYSYmYS5zZXQpcmV0dXJuIGEuc2V0KG4pLCEwfXJldHVybiExfSxnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZSx0KXtsZXQgbj1lLnByb3BzLmxlbmd0aDtmb3IoO24tLTspe2xldCByPWUucHJvcHNbbl07aWYobmUocikmJihyPXIoKSksdHlwZW9mIHI9PWBvYmplY3RgJiZyJiZ0IGluIHIpe2xldCBlPV8ocix0KTtyZXR1cm4gZSYmIWUuY29uZmlndXJhYmxlJiYoZS5jb25maWd1cmFibGU9ITApLGV9fX0saGFzKGUsdCl7aWYodD09PVNlfHx0PT09Q2UpcmV0dXJuITE7Zm9yKGxldCBuIG9mIGUucHJvcHMpaWYobmUobikmJihuPW4oKSksbiE9bnVsbCYmdCBpbiBuKXJldHVybiEwO3JldHVybiExfSxvd25LZXlzKGUpe2xldCB0PVtdO2ZvcihsZXQgbiBvZiBlLnByb3BzKWlmKG5lKG4pJiYobj1uKCkpLG4pe2ZvcihsZXQgZSBpbiBuKXQuaW5jbHVkZXMoZSl8fHQucHVzaChlKTtmb3IobGV0IGUgb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhuKSl0LmluY2x1ZGVzKGUpfHx0LnB1c2goZSl9cmV0dXJuIHR9fTtmdW5jdGlvbiBhbyguLi5lKXtyZXR1cm4gbmV3IFByb3h5KHtwcm9wczplfSxpbyl9ZnVuY3Rpb24gb28oZSx0LG4scil7dmFyIGk9IWl0fHwobiYyKSE9MCxhPShuJjgpIT0wLG89KG4mMTYpIT0wLHM9cixjPSEwLGw9KCk9PihjJiYoYz0hMSxzPW8/JHIocik6cikscyk7bGV0IHU7aWYoYSl7dmFyIGQ9U2UgaW4gZXx8Q2UgaW4gZTt1PV8oZSx0KT8uc2V0Pz8oZCYmdCBpbiBlP249PmVbdF09bjp2b2lkIDApfXZhciBmLHA9ITE7YT9bZixwXT1GdCgoKT0+ZVt0XSk6Zj1lW3RdLGY9PT12b2lkIDAmJnIhPT12b2lkIDAmJihmPWwoKSx1JiYoaSYmUGUodCksdShmKSkpO3ZhciBtPWk/KCk9Pnt2YXIgbj1lW3RdO3JldHVybiBuPT09dm9pZCAwP2woKTooYz0hMCxuKX06KCk9Pnt2YXIgbj1lW3RdO3JldHVybiBuIT09dm9pZCAwJiYocz12b2lkIDApLG49PT12b2lkIDA/czpufTtpZihpJiYhKG4mNCkpcmV0dXJuIG07aWYodSl7dmFyIGg9ZS4kJGxlZ2FjeTtyZXR1cm4oZnVuY3Rpb24oZSx0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD4wPygoIWl8fCF0fHxofHxwKSYmdSh0P20oKTplKSxlKTptKCl9KX12YXIgZz0hMSx2PShuJjE/dW46cG4pKCgpPT4oZz0hMSxtKCkpKTthJiZSKHYpO3ZhciB5PUk7cmV0dXJuKGZ1bmN0aW9uKGUsdCl7aWYoYXJndW1lbnRzLmxlbmd0aD4wKXtsZXQgbj10P1Iodik6aSYmYT9qbihlKTplO3JldHVybiBUbih2LG4pLGc9ITAscyE9PXZvaWQgMCYmKHM9biksZX1yZXR1cm4ga3ImJmd8fHkuZiYxNjM4ND92LnY6Uih2KX0pfWZ1bmN0aW9uIHNvKGUpe0U9PT1udWxsJiZEZShgb25Nb3VudGApLGl0JiZFLmwhPT1udWxsP2xvKEUpLm0ucHVzaChlKTpvcigoKT0+e2xldCB0PSRyKGUpO2lmKHR5cGVvZiB0PT1gZnVuY3Rpb25gKXJldHVybiB0fSl9ZnVuY3Rpb24gY28oZSl7RT09PW51bGwmJkRlKGBvbkRlc3Ryb3lgKSxzbygoKT0+KCk9PiRyKGUpKX1mdW5jdGlvbiBsbyhlKXt2YXIgdD1lLmw7cmV0dXJuIHQudT8/PXthOltdLGI6W10sbTpbXX19dmFyIHo9KCgpPT57bGV0IGU9bmV3IE1hcDtyZXR1cm4gT2JqZWN0LmZyZWV6ZSh7b246KHQsbik9PntsZXQgcj1lLmdldCh0KTtyP3IucHVzaChuKTplLnNldCh0LFtuXSl9LG9mZjoodCxuKT0+e2xldCByPWUuZ2V0KHQpO3ImJmUuc2V0KHQsci5maWx0ZXIoZT0+ZSE9PW4pKX0sZW1pdDoodCxuKT0+e2xldCByPWUuZ2V0KHQpO3ImJnIuZm9yRWFjaChlPT5lKG4pKX19KX0pKCksdW89YGRhdGEtc21hcnRzdXBwLWlkYCxmbz0oKT0+d2luZG93LnRvcD8/d2luZG93LnBhcmVudCxCPSgpPT53aW5kb3cucGFyZW50LHBvPSgpPT5CKCkuZG9jdW1lbnQsbW89ZT0+ZSYmZS5vd25lckRvY3VtZW50fHxkb2N1bWVudCxobz0oe3ZpZDplfSk9PntsZXQgdD1CKCkuc21hcnRzdXBwfHx7fTt0LnZpZD1lLEIoKS5zbWFydHN1cHA9dH0sZ289YGRlYnVnYCxfbz1lPT57dHJ5e2xldCB0PUIoKS5sb2NhbFN0b3JhZ2UuZ2V0SXRlbShnbyk7aWYoIXQpcmV0dXJuITE7aWYodD09PWV8fHQ9PT1gKmApcmV0dXJuITA7bGV0IG49ZS5tYXRjaCgvXlx3KzovZyk7cmV0dXJuIG4/dD09PWAke25bMF19KmA6ITF9Y2F0Y2h7cmV0dXJuITF9fSx2bz0oKGUsdCk9PihuLC4uLnIpPT57X28oZSkmJmNvbnNvbGUuZGVidWcoYCVjJHtlfWAsYGNvbG9yOiAke3R9O2AsbiwuLi5yKX0pKGBzbWFydHN1cHA6d2lkZ2V0YCxgIzEyMzNkZmApLFY9KCgpPT57bGV0IGU9bnVsbCx0PVtdO3JldHVybiBPYmplY3QuZnJlZXplKHtpbml0Om49PntlPW4sdm8oYHdpZGdldCBvcHRpb25zYCxuKSx0LmZvckVhY2goZT0+ZShuKSl9LGdldE9wdGlvbnM6KCk9PntpZighZSl0aHJvdyBFcnJvcihgV2lkZ2V0IG9wdGlvbnMgbm90IGluaXRpYWxpemVkYCk7cmV0dXJuIGV9LGF3YWl0T3B0aW9uczphc3luYygpPT5lfHxuZXcgUHJvbWlzZShlPT57dC5wdXNoKGUpfSksdXBkYXRlT3B0aW9uczp0PT57ZT17Li4uZSwuLi50fX19KX0pKCkseW89ZT0+e2xldCB0PWUuZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoYGJvZHlgKVswXS5nZXRBdHRyaWJ1dGUodW8pO2lmKCF0KXRocm93IEVycm9yKGBNaXNzaW5nIGNoYXQgSUQgYXR0cmlidXRlIG9uIGJvZHkgZWxlbWVudC5gKTtpZighZS5wYXJlbnQuJHNtYXJ0c3VwcCl0aHJvdyBFcnJvcihgU29tZXRoaW5nIHdlbnQgd3JvbmcuIFNlZW1zIGxpa2UgbG9hZGVyLmpzIGRpZCBub3QgaW5pdGlhbGl6ZSB3aWRnZXQuYCk7aWYoIWUucGFyZW50LiRzbWFydHN1cHAuZ2V0V2lkZ2V0KXRocm93IEVycm9yKGBHZXQgd2lkZ2V0IGZ1bmN0aW9uIHdhcyBub3Qgc3VwcGxpZWQgYnkgbG9hZGVyLmpzLmApO3JldHVybiBlLnBhcmVudC4kc21hcnRzdXBwLmdldFdpZGdldCh0KX07ZnVuY3Rpb24gYm8oZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIG49YXJndW1lbnRzW3RdO2Zvcih2YXIgciBpbiBuKWVbcl09bltyXX1yZXR1cm4gZX12YXIgeG89e3JlYWQ6ZnVuY3Rpb24oZSl7cmV0dXJuIGVbMF09PT1gImAmJihlPWUuc2xpY2UoMSwtMSkpLGUucmVwbGFjZSgvKCVbXGRBLUZdezJ9KSsvZ2ksZGVjb2RlVVJJQ29tcG9uZW50KX0sd3JpdGU6ZnVuY3Rpb24oZSl7cmV0dXJuIGVuY29kZVVSSUNvbXBvbmVudChlKS5yZXBsYWNlKC8lKDJbMzQ2QkZdfDNbQUMtRl18NDB8NVtCREVdfDYwfDdbQkNEXSkvZyxkZWNvZGVVUklDb21wb25lbnQpfX07ZnVuY3Rpb24gU28oZSx0KXtmdW5jdGlvbiBuKG4scixpKXtpZighKHR5cGVvZiBkb2N1bWVudD5gdWApKXtpPWJvKHt9LHQsaSksdHlwZW9mIGkuZXhwaXJlcz09YG51bWJlcmAmJihpLmV4cGlyZXM9bmV3IERhdGUoRGF0ZS5ub3coKStpLmV4cGlyZXMqODY0ZTUpKSxpLmV4cGlyZXMmJj1pLmV4cGlyZXMudG9VVENTdHJpbmcoKSxuPWVuY29kZVVSSUNvbXBvbmVudChuKS5yZXBsYWNlKC8lKDJbMzQ2Ql18NUV8NjB8N0MpL2csZGVjb2RlVVJJQ29tcG9uZW50KS5yZXBsYWNlKC9bKCldL2csZXNjYXBlKTt2YXIgYT1gYDtmb3IodmFyIG8gaW4gaSlpW29dJiYoYSs9YDsgYCtvLGlbb10hPT0hMCYmKGErPWA9YCtpW29dLnNwbGl0KGA7YClbMF0pKTtyZXR1cm4gZG9jdW1lbnQuY29va2llPW4rYD1gK2Uud3JpdGUocixuKSthfX1mdW5jdGlvbiByKHQpe2lmKCEodHlwZW9mIGRvY3VtZW50PmB1YHx8YXJndW1lbnRzLmxlbmd0aCYmIXQpKXtmb3IodmFyIG49ZG9jdW1lbnQuY29va2llP2RvY3VtZW50LmNvb2tpZS5zcGxpdChgOyBgKTpbXSxyPXt9LGk9MDtpPG4ubGVuZ3RoO2krKyl7dmFyIGE9bltpXS5zcGxpdChgPWApLG89YS5zbGljZSgxKS5qb2luKGA9YCk7dHJ5e3ZhciBzPWRlY29kZVVSSUNvbXBvbmVudChhWzBdKTtpZihyW3NdPWUucmVhZChvLHMpLHQ9PT1zKWJyZWFrfWNhdGNoe319cmV0dXJuIHQ/clt0XTpyfX1yZXR1cm4gT2JqZWN0LmNyZWF0ZSh7c2V0Om4sZ2V0OnIscmVtb3ZlOmZ1bmN0aW9uKGUsdCl7bihlLGBgLGJvKHt9LHQse2V4cGlyZXM6LTF9KSl9LHdpdGhBdHRyaWJ1dGVzOmZ1bmN0aW9uKGUpe3JldHVybiBTbyh0aGlzLmNvbnZlcnRlcixibyh7fSx0aGlzLmF0dHJpYnV0ZXMsZSkpfSx3aXRoQ29udmVydGVyOmZ1bmN0aW9uKGUpe3JldHVybiBTbyhibyh7fSx0aGlzLmNvbnZlcnRlcixlKSx0aGlzLmF0dHJpYnV0ZXMpfX0se2F0dHJpYnV0ZXM6e3ZhbHVlOk9iamVjdC5mcmVlemUodCl9LGNvbnZlcnRlcjp7dmFsdWU6T2JqZWN0LmZyZWV6ZShlKX19KX12YXIgQ289U28oeG8se3BhdGg6YC9gfSksd289YHNzdXBwYCxUbz0oZT0xODIpPT4oe2V4cGlyZXM6ZSxkb21haW46Vi5nZXRPcHRpb25zKCkuY29va2llRG9tYWluLHBhdGg6Vi5nZXRPcHRpb25zKCkuY29va2llUGF0aHx8YC9gLHNhbWVTaXRlOmBzdHJpY3RgLHNlY3VyZTpCKCkubG9jYXRpb24ucHJvdG9jb2w9PT1gaHR0cHM6YH0pLEVvPWU9PmAke1YuZ2V0T3B0aW9ucygpLmNvb2tpZVByZWZpeHx8YGB9JHt3b30uJHtlfWAsRG89KHtuYW1lOmUsdmFsdWU6dCxleHBpcmF0aW9uSW5EYXlzOm49MTgyLG9wdGlvbnM6cn0pPT57Q28uc2V0KEVvKGUpLHQsey4uLlRvKG4pLC4uLnJ9KX0sT289ZT0+Q28uZ2V0KEVvKGUpKSxrbz1lPT57bGV0IHQ9RW8oZSk7aWYoQ28uZ2V0KHQpKXtsZXR7cGF0aDplLGRvbWFpbjpufT1UbygpO0NvLnJlbW92ZSh0LHtwYXRoOmUsZG9tYWluOm59KX19LEFvPWU9Pih0LC4uLm4pPT57ZShgW1NtYXJ0c3VwcF0gJHt0fWAsLi4ubil9LEg9QW8oY29uc29sZS53YXJuKSxqbz1Bbyhjb25zb2xlLmVycm9yKSxNbz0oKT0+e2xldHtrZXk6ZX09Vi5nZXRPcHRpb25zKCk7cmV0dXJuYCR7QigpLlNNQVJUU1VQUF9BVVRPQ1JFQVRFPT09ITE/YCR7eW8od2luZG93KS5pZH1fJHt3b31gOndvfV8ke2V9YH0sTm89ZT0+YCR7TW8oKX0ke2U/YF8ke2V9YDpgYH1gLFBvPWU9Pnt0cnl7bGV0IHQ9d2luZG93LmxvY2FsU3RvcmFnZS5nZXRJdGVtKE5vKGUpKT8/YHt9YDtyZXR1cm4gSlNPTi5wYXJzZSh0KX1jYXRjaHtyZXR1cm57fX19LEZvPShlLHQpPT57dHJ5e3dpbmRvdy5sb2NhbFN0b3JhZ2Uuc2V0SXRlbShObyh0KSxKU09OLnN0cmluZ2lmeShlKSl9Y2F0Y2goZSl7SChgU2V0IHRvIGxvY2FsIHN0b3JhZ2UgZmFpbGVkYCxlKX19LElvPShlLHQpPT57Rm8oey4uLlBvKCksW2VdOlN0cmluZyh0KX0pfSxMbz1lPT57bGV0IHQ9UG8oKTt0W2VdJiYoZGVsZXRlIHRbZV0sRm8odCkpfSxSbz0oKT0+e3dpbmRvdy5sb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShObygpKSx3aW5kb3cubG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oTm8oYGNhcmRzYCkpfSxVPWZ1bmN0aW9uKGUpe3JldHVybiBlLkFuYWx5dGljc0NvbnNlbnQ9YGFuYWx5dGljc0NvbnNlbnRgLGUuQXV0aEZvcm09YGF1dGhGb3JtYCxlLklzTWVzc2VuZ2VyRnJhbWVFeHBhbmRlZD1gaXNNZXNzZW5nZXJGcmFtZUV4cGFuZGVkYCxlLklzTWVzc2VuZ2VyRnJhbWVPcGVuZWQ9YG9wZW5lZGAsZS5NYXJrZXRpbmdDb25zZW50PWBtYXJrZXRpbmdDb25zZW50YCxlLk1lc3NhZ2U9YG1lc3NhZ2VgLGUuUG9wdXBDbG9zZWRBdD1gcG9wdXBDbG9zZWRBdGAsZS5SYXRpbmdUZXh0PWByYXRpbmdUZXh0YCxlLlNvdW5kc0VuYWJsZWQ9YGVuYWJsZVNvdW5kc2AsZS5WaXNpdG9ySWQ9YHZpZGAsZS5WaXNpdHM9YHZpc2l0c2AsZS5UaWNrZXRGb3JtPWB0aWNrZXRGb3JtYCxlLlNlc3Npb25JZD1gc2Vzc2lvbklkYCxlfSh7fSksem89ZT0+e2xldCB0PWBgO3JldHVybiBlPT09VS5WaXNpdG9ySWQmJlYuZ2V0T3B0aW9ucygpLmNvb2tpZURvbWFpbiYmKHQ9T28oZSkpLHR8fFBvKClbZV19LEJvPSh7bmFtZTplLHZhbHVlOnR9KT0+e2U9PT1VLlZpc2l0b3JJZCYmVi5nZXRPcHRpb25zKCkuY29va2llRG9tYWluJiZEbyh7bmFtZTplLHZhbHVlOnR9KSxJbyhlLHQpfSxWbz1lPT57TG8oZSl9O3oub24oYGFuYWx5dGljc0NvbnNlbnRDaGFuZ2VkYCxlPT57Qm8oe25hbWU6VS5BbmFseXRpY3NDb25zZW50LHZhbHVlOlN0cmluZyhlKX0pfSksei5vbihgbWFya2V0aW5nQ29uc2VudENoYW5nZWRgLGU9PntCbyh7bmFtZTpVLk1hcmtldGluZ0NvbnNlbnQsdmFsdWU6U3RyaW5nKGUpfSl9KTt2YXIgSG89KCk9PiEhVi5nZXRPcHRpb25zKCkuY29uc2VudE1vZGVFbmFibGVkLFVvPSgpPT57bGV0IGU9em8oVS5BbmFseXRpY3NDb25zZW50KT09PWB0cnVlYDtyZXR1cm4hKEhvKCkmJiFlKX0sV289KCk9PntsZXQgZT16byhVLk1hcmtldGluZ0NvbnNlbnQpPT09YHRydWVgO3JldHVybiEoSG8oKSYmIWUpfSxHbz1gbW9kdWxlcHJlbG9hZGAsS289ZnVuY3Rpb24oZSx0KXtyZXR1cm4gbmV3IFVSTChlLHQpLmhyZWZ9LHFvPXt9LEpvPWZ1bmN0aW9uKGUsdCxuKXtsZXQgcj1Qcm9taXNlLnJlc29sdmUoKTtpZih0JiZ0Lmxlbmd0aD4wKXtsZXQgZT1kb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZShgbGlua2ApLGk9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcihgbWV0YVtwcm9wZXJ0eT1jc3Atbm9uY2VdYCksYT1pPy5ub25jZXx8aT8uZ2V0QXR0cmlidXRlKGBub25jZWApO2Z1bmN0aW9uIG8oZSl7cmV0dXJuIFByb21pc2UuYWxsKGUubWFwKGU9PlByb21pc2UucmVzb2x2ZShlKS50aGVuKGU9Pih7c3RhdHVzOmBmdWxmaWxsZWRgLHZhbHVlOmV9KSxlPT4oe3N0YXR1czpgcmVqZWN0ZWRgLHJlYXNvbjplfSkpKSl9cj1vKHQubWFwKHQ9PntpZih0PUtvKHQsbiksdCBpbiBxbylyZXR1cm47cW9bdF09ITA7bGV0IHI9dC5lbmRzV2l0aChgLmNzc2ApLGk9cj9gW3JlbD0ic3R5bGVzaGVldCJdYDpgYDtpZihuKWZvcihsZXQgbj1lLmxlbmd0aC0xO24+PTA7bi0tKXtsZXQgaT1lW25dO2lmKGkuaHJlZj09PXQmJighcnx8aS5yZWw9PT1gc3R5bGVzaGVldGApKXJldHVybn1lbHNlIGlmKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoYGxpbmtbaHJlZj0iJHt0fSJdJHtpfWApKXJldHVybjtsZXQgbz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KGBsaW5rYCk7aWYoby5yZWw9cj9gc3R5bGVzaGVldGA6R28scnx8KG8uYXM9YHNjcmlwdGApLG8uY3Jvc3NPcmlnaW49YGAsby5ocmVmPXQsYSYmby5zZXRBdHRyaWJ1dGUoYG5vbmNlYCxhKSxkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKG8pLHIpcmV0dXJuIG5ldyBQcm9taXNlKChlLG4pPT57by5hZGRFdmVudExpc3RlbmVyKGBsb2FkYCxlKSxvLmFkZEV2ZW50TGlzdGVuZXIoYGVycm9yYCwoKT0+bihFcnJvcihgVW5hYmxlIHRvIHByZWxvYWQgQ1NTIGZvciAke3R9YCkpKX0pfSkpfWZ1bmN0aW9uIGkoZSl7bGV0IHQ9bmV3IEV2ZW50KGB2aXRlOnByZWxvYWRFcnJvcmAse2NhbmNlbGFibGU6ITB9KTtpZih0LnBheWxvYWQ9ZSx3aW5kb3cuZGlzcGF0Y2hFdmVudCh0KSwhdC5kZWZhdWx0UHJldmVudGVkKXRocm93IGV9cmV0dXJuIHIudGhlbih0PT57Zm9yKGxldCBlIG9mIHR8fFtdKWUuc3RhdHVzPT09YHJlamVjdGVkYCYmaShlLnJlYXNvbik7cmV0dXJuIGUoKS5jYXRjaChpKX0pfSxZbz0oKT0+ISFWLmdldE9wdGlvbnMoKS5jcm9zc0RvbWFpbkVuYWJsZWQsWG89KCk9PlYuZ2V0T3B0aW9ucygpLmFsbG93ZWREb21haW5zLmxlbmd0aD4wLFpvPWFzeW5jKCk9Pnt0cnl7bGV0IGU9YXdhaXQgbmV3KGF3YWl0KEpvKCgpPT5pbXBvcnQoYC4vdGh1bWJtYXJrLmVzbS1DUDRDVTB5TC5qc2ApLFtdLGltcG9ydC5tZXRhLnVybCkpKS5UaHVtYm1hcmsoKS5nZXQoKTtyZXR1cm4gdm8oYFZpc2l0b3IgZmluZ2VycHJpbnQgY3JlYXRlZGAsZS50aHVtYm1hcmspLGUudGh1bWJtYXJrfWNhdGNoKGUpe0goYEZhaWxlZCB0byBnZW5lcmF0ZSBmaW5nZXJwcmludDpgLGUpfX0sUW89YXN5bmMoKT0+e2lmKCEoIVlvKCl8fCFYbygpKSlyZXR1cm4gWm8oKX0sJG89KCk9PnpvKFUuVmlzaXRvcklkKXx8bnVsbCxlcz1lPT5Cbyh7bmFtZTpVLlZpc2l0b3JJZCx2YWx1ZTpTdHJpbmcoZSl9KSx0cz0oKT0+e2lmKFdvKCkpcmV0dXJuIHpvKFUuVmlzaXRzKT9OdW1iZXIoem8oVS5WaXNpdHMpKTowfSxucz1lPT57V28oKSYmQm8oe25hbWU6VS5WaXNpdHMsdmFsdWU6U3RyaW5nKGUpfSl9O3oub24oYG1hcmtldGluZ0NvbnNlbnRDaGFuZ2VkYCxlPT57ZXx8Vm8oVS5WaXNpdHMpfSk7dmFyIHJzPShlLHQsbik9PntsZXR7c2V0OnIsc3Vic2NyaWJlOml9PU8odCx0PT57bGV0IHI9em8oZSk7ciYmdChuP24ocik6cil9KSxhPXQ9PntCbyh7bmFtZTplLHZhbHVlOlN0cmluZyh0KX0pfTtyZXR1cm57c2V0OmU9PnthKGUpLHIoZSl9LHN1YnNjcmliZTppfX0saXM9KCk9PmBvbnRvdWNoc3RhcnRgaW4gd2luZG93fHxuYXZpZ2F0b3IubXNNYXhUb3VjaFBvaW50cz4wLGFzPSgpPT5bYGlQYWQgU2ltdWxhdG9yYCxgaVBob25lIFNpbXVsYXRvcmAsYGlQb2QgU2ltdWxhdG9yYCxgaVBhZGAsYGlQaG9uZWAsYGlQb2RgXS5pbmNsdWRlcyhuYXZpZ2F0b3IucGxhdGZvcm0pfHxuYXZpZ2F0b3IudXNlckFnZW50LmluY2x1ZGVzKGBNYWNgKSYmYG9udG91Y2hlbmRgaW4gZG9jdW1lbnQsb3M9TyhudWxsKSxzcz1rKFtvcyxPKHt3aWR0aDpCKCkuaW5uZXJXaWR0aCxoZWlnaHQ6QigpLmlubmVySGVpZ2h0fSldLChbZSx0XSk9PntsZXR7d2lkZ2V0QmxvY2tpbmdPcHRpb25zOm59PVYuZ2V0T3B0aW9ucygpO2lmKG4/LmVuZm9yY2VEZXNrdG9wTW9kZSlyZXR1cm4hMTtpZihlKXtsZXR7aXNNb2JpbGU6dCxpc1RhYmxldDpufT1lO2lmKG4pcmV0dXJuITE7aWYodClyZXR1cm4hMH1yZXR1cm4gdC53aWR0aDw0NTB8fHQuaGVpZ2h0PDUwMH0pLGNzPWsoW3NzXSwoW2VdKT0+e2xldHtmdWxsU2NyZWVuRW5hYmxlZDp0fT1WLmdldE9wdGlvbnMoKTtyZXR1cm4hIShlfHx0KX0pLGxzPWsoW29zXSwoW2VdKT0+ZT8hIWU/LmlzRGVza3RvcCYmIWFzKCk6IWlzKCkpLHVzPWsoW2xzLGNzXSwoW2UsdF0pPT5lJiYhdCk7ayhbb3NdLChbZV0pPT4hIWU/LmlzVGFibGV0KTt2YXIgZHM9KCgpPT57bGV0IGU9Tyh7fSkse3N1YnNjcmliZTp0LHVwZGF0ZTpufT1lO3JldHVybntzdWJzY3JpYmU6dCxhZGQ6ZT0+e24odD0+KHsuLi50LFtlLmlkXTplfSkpfSxyZW1vdmU6ZT0+e24odD0+e2xldHtbZV06biwuLi5yfT10O3JldHVybiByfSl9LGZpbmQ6dD0+QShlKVt0XXx8bnVsbH19KSgpLGZzPWsoW2RzXSwoW2VdKT0+T2JqZWN0LnZhbHVlcyhlKSkscHM9ZT0+KHQsbj0zZTMpPT57bGV0IHI9YGZtLSR7ZX0tJHt0fWAsaT1kcy5maW5kKHIpLGE9MTtpJiYoY2xlYXJUaW1lb3V0KGkudGltZW91dCksYT1pLnJlY3VycmVuY2UrMSk7bGV0IG87cmV0dXJuIG4+MCYmKG89d2luZG93LnNldFRpbWVvdXQoKCk9PnttcyhyKX0sbikpLGRzLmFkZCh7aWQ6cix0eXBlOmUsdGV4dDp0LHRpbWVvdXQ6byxyZWN1cnJlbmNlOmF9KSwoKT0+bXMocil9LG1zPWU9Pntkcy5yZW1vdmUoZSl9LGhzPXBzKGBzdWNjZXNzYCksZ3M9cHMoYGVycm9yYCksX3M9cHMoYHdhcm5pbmdgKSx2cz1mdW5jdGlvbihlKXtyZXR1cm4gZVtlLkdvb2Q9NV09YEdvb2RgLGVbZS5Ob3JtYWw9M109YE5vcm1hbGAsZVtlLkJhZD0xXT1gQmFkYCxlfSh7fSkseXM9e1t2cy5Hb29kXTp7dmFsdWU6dnMuR29vZCx0ZXh0OmBhZ2VudFJhdGluZy5nb29kLmZvcm1UZXh0YCxuYW1lOmBnb29kYH0sW3ZzLk5vcm1hbF06e3ZhbHVlOnZzLk5vcm1hbCx0ZXh0OmBhZ2VudFJhdGluZy5ub3JtYWwuZm9ybVRleHRgLG5hbWU6YG5ldXRyYWxgfSxbdnMuQmFkXTp7dmFsdWU6dnMuQmFkLHRleHQ6YGFnZW50UmF0aW5nLmJhZC5mb3JtVGV4dGAsbmFtZTpgYmFkYH19LGJzPU9iamVjdC52YWx1ZXMoeXMpLnNvcnQoKGUsdCk9PnQudmFsdWUtZS52YWx1ZSkseHM9YHJhdGVfZm9ybV9pZGAsU3M9e2lkOnhzLHR5cGU6YG1lc3NhZ2VgLHN1YlR5cGU6YHN5c3RlbWAsY2hhbm5lbDp7dHlwZTpgZGVmYXVsdGAsaWQ6bnVsbH0sY2hhdElkOmBgLHZpc2l0b3JJZDpgYCxncm91cElkOm51bGwsYWdlbnRJZDpudWxsLHRyaWdnZXI6bnVsbCxjcmVhdGVkQXQ6YGAsY29udGVudDp7dHlwZTpgcmF0ZV9mb3JtYCxkYXRhOnt9fSxhdHRhY2htZW50czpbXSxzdWJqZWN0Om51bGwsZm9yd2FyZGVkTWVzc2FnZUlkOm51bGwscGFydGljaXBhbnRzOltdLHJlcGx5VG9NZXNzYWdlSWQ6bnVsbCxkZWxldGVkQXQ6bnVsbCx3aWRnZXRPcHRpb25zOntkaXNhYmxlSW5wdXQ6ITEsZGlzYWJsZUF1dGhlbnRpY2F0aW9uOiExLGRpc2FibGVBdHRhY2htZW50czohMX19LENzPU8obnVsbCksd3M9cygoKGUsdCk9Pnt2YXIgbj0xZTMscj1uKjYwLGk9cio2MCxhPWkqMjQsbz1hKjcscz1hKjM2NS4yNTt0LmV4cG9ydHM9ZnVuY3Rpb24oZSx0KXt0fHw9e307dmFyIG49dHlwZW9mIGU7aWYobj09PWBzdHJpbmdgJiZlLmxlbmd0aD4wKXJldHVybiBjKGUpO2lmKG49PT1gbnVtYmVyYCYmaXNGaW5pdGUoZSkpcmV0dXJuIHQubG9uZz91KGUpOmwoZSk7dGhyb3cgRXJyb3IoYHZhbCBpcyBub3QgYSBub24tZW1wdHkgc3RyaW5nIG9yIGEgdmFsaWQgbnVtYmVyLiB2YWw9YCtKU09OLnN0cmluZ2lmeShlKSl9O2Z1bmN0aW9uIGMoZSl7aWYoZT1TdHJpbmcoZSksIShlLmxlbmd0aD4xMDApKXt2YXIgdD0vXigtPyg/OlxkKyk/XC4/XGQrKSAqKG1pbGxpc2Vjb25kcz98bXNlY3M/fG1zfHNlY29uZHM/fHNlY3M/fHN8bWludXRlcz98bWlucz98bXxob3Vycz98aHJzP3xofGRheXM/fGR8d2Vla3M/fHd8eWVhcnM/fHlycz98eSk/JC9pLmV4ZWMoZSk7aWYodCl7dmFyIGM9cGFyc2VGbG9hdCh0WzFdKTtzd2l0Y2goKHRbMl18fGBtc2ApLnRvTG93ZXJDYXNlKCkpe2Nhc2VgeWVhcnNgOmNhc2VgeWVhcmA6Y2FzZWB5cnNgOmNhc2VgeXJgOmNhc2VgeWA6cmV0dXJuIGMqcztjYXNlYHdlZWtzYDpjYXNlYHdlZWtgOmNhc2Vgd2A6cmV0dXJuIGMqbztjYXNlYGRheXNgOmNhc2VgZGF5YDpjYXNlYGRgOnJldHVybiBjKmE7Y2FzZWBob3Vyc2A6Y2FzZWBob3VyYDpjYXNlYGhyc2A6Y2FzZWBocmA6Y2FzZWBoYDpyZXR1cm4gYyppO2Nhc2VgbWludXRlc2A6Y2FzZWBtaW51dGVgOmNhc2VgbWluc2A6Y2FzZWBtaW5gOmNhc2VgbWA6cmV0dXJuIGMqcjtjYXNlYHNlY29uZHNgOmNhc2Vgc2Vjb25kYDpjYXNlYHNlY3NgOmNhc2Vgc2VjYDpjYXNlYHNgOnJldHVybiBjKm47Y2FzZWBtaWxsaXNlY29uZHNgOmNhc2VgbWlsbGlzZWNvbmRgOmNhc2VgbXNlY3NgOmNhc2VgbXNlY2A6Y2FzZWBtc2A6cmV0dXJuIGM7ZGVmYXVsdDpyZXR1cm59fX19ZnVuY3Rpb24gbChlKXt2YXIgdD1NYXRoLmFicyhlKTtyZXR1cm4gdD49YT9NYXRoLnJvdW5kKGUvYSkrYGRgOnQ+PWk/TWF0aC5yb3VuZChlL2kpK2BoYDp0Pj1yP01hdGgucm91bmQoZS9yKStgbWA6dD49bj9NYXRoLnJvdW5kKGUvbikrYHNgOmUrYG1zYH1mdW5jdGlvbiB1KGUpe3ZhciB0PU1hdGguYWJzKGUpO3JldHVybiB0Pj1hP2QoZSx0LGEsYGRheWApOnQ+PWk/ZChlLHQsaSxgaG91cmApOnQ+PXI/ZChlLHQscixgbWludXRlYCk6dD49bj9kKGUsdCxuLGBzZWNvbmRgKTplK2AgbXNgfWZ1bmN0aW9uIGQoZSx0LG4scil7dmFyIGk9dD49bioxLjU7cmV0dXJuIE1hdGgucm91bmQoZS9uKStgIGArcisoaT9gc2A6YGApfX0pKSxUcz1zKCgoZSx0KT0+e2Z1bmN0aW9uIG4oZSl7bi5kZWJ1Zz1uLG4uZGVmYXVsdD1uLG4uY29lcmNlPWMsbi5kaXNhYmxlPW8sbi5lbmFibGU9aSxuLmVuYWJsZWQ9cyxuLmh1bWFuaXplPXdzKCksbi5kZXN0cm95PWwsT2JqZWN0LmtleXMoZSkuZm9yRWFjaCh0PT57blt0XT1lW3RdfSksbi5uYW1lcz1bXSxuLnNraXBzPVtdLG4uZm9ybWF0dGVycz17fTtmdW5jdGlvbiB0KGUpe2xldCB0PTA7Zm9yKGxldCBuPTA7bjxlLmxlbmd0aDtuKyspdD0odDw8NSktdCtlLmNoYXJDb2RlQXQobiksdHw9MDtyZXR1cm4gbi5jb2xvcnNbTWF0aC5hYnModCklbi5jb2xvcnMubGVuZ3RoXX1uLnNlbGVjdENvbG9yPXQ7ZnVuY3Rpb24gbihlKXtsZXQgdCxpPW51bGwsYSxvO2Z1bmN0aW9uIHMoLi4uZSl7aWYoIXMuZW5hYmxlZClyZXR1cm47bGV0IHI9cyxpPU51bWJlcihuZXcgRGF0ZSk7ci5kaWZmPWktKHR8fGkpLHIucHJldj10LHIuY3Vycj1pLHQ9aSxlWzBdPW4uY29lcmNlKGVbMF0pLHR5cGVvZiBlWzBdIT1gc3RyaW5nYCYmZS51bnNoaWZ0KGAlT2ApO2xldCBhPTA7ZVswXT1lWzBdLnJlcGxhY2UoLyUoW2EtekEtWiVdKS9nLCh0LGkpPT57aWYodD09PWAlJWApcmV0dXJuYCVgO2ErKztsZXQgbz1uLmZvcm1hdHRlcnNbaV07aWYodHlwZW9mIG89PWBmdW5jdGlvbmApe2xldCBuPWVbYV07dD1vLmNhbGwocixuKSxlLnNwbGljZShhLDEpLGEtLX1yZXR1cm4gdH0pLG4uZm9ybWF0QXJncy5jYWxsKHIsZSksKHIubG9nfHxuLmxvZykuYXBwbHkocixlKX1yZXR1cm4gcy5uYW1lc3BhY2U9ZSxzLnVzZUNvbG9ycz1uLnVzZUNvbG9ycygpLHMuY29sb3I9bi5zZWxlY3RDb2xvcihlKSxzLmV4dGVuZD1yLHMuZGVzdHJveT1uLmRlc3Ryb3ksT2JqZWN0LmRlZmluZVByb3BlcnR5KHMsYGVuYWJsZWRgLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMSxnZXQ6KCk9Pmk9PT1udWxsPyhhIT09bi5uYW1lc3BhY2VzJiYoYT1uLm5hbWVzcGFjZXMsbz1uLmVuYWJsZWQoZSkpLG8pOmksc2V0OmU9PntpPWV9fSksdHlwZW9mIG4uaW5pdD09YGZ1bmN0aW9uYCYmbi5pbml0KHMpLHN9ZnVuY3Rpb24gcihlLHQpe2xldCByPW4odGhpcy5uYW1lc3BhY2UrKHQ9PT12b2lkIDA/YDpgOnQpK2UpO3JldHVybiByLmxvZz10aGlzLmxvZyxyfWZ1bmN0aW9uIGkoZSl7bi5zYXZlKGUpLG4ubmFtZXNwYWNlcz1lLG4ubmFtZXM9W10sbi5za2lwcz1bXTtsZXQgdD0odHlwZW9mIGU9PWBzdHJpbmdgP2U6YGApLnRyaW0oKS5yZXBsYWNlKC9ccysvZyxgLGApLnNwbGl0KGAsYCkuZmlsdGVyKEJvb2xlYW4pO2ZvcihsZXQgZSBvZiB0KWVbMF09PT1gLWA/bi5za2lwcy5wdXNoKGUuc2xpY2UoMSkpOm4ubmFtZXMucHVzaChlKX1mdW5jdGlvbiBhKGUsdCl7bGV0IG49MCxyPTAsaT0tMSxhPTA7Zm9yKDtuPGUubGVuZ3RoOylpZihyPHQubGVuZ3RoJiYodFtyXT09PWVbbl18fHRbcl09PT1gKmApKXRbcl09PT1gKmA/KGk9cixhPW4scisrKToobisrLHIrKyk7ZWxzZSBpZihpIT09LTEpcj1pKzEsYSsrLG49YTtlbHNlIHJldHVybiExO2Zvcig7cjx0Lmxlbmd0aCYmdFtyXT09PWAqYDspcisrO3JldHVybiByPT09dC5sZW5ndGh9ZnVuY3Rpb24gbygpe2xldCBlPVsuLi5uLm5hbWVzLC4uLm4uc2tpcHMubWFwKGU9PmAtYCtlKV0uam9pbihgLGApO3JldHVybiBuLmVuYWJsZShgYCksZX1mdW5jdGlvbiBzKGUpe2ZvcihsZXQgdCBvZiBuLnNraXBzKWlmKGEoZSx0KSlyZXR1cm4hMTtmb3IobGV0IHQgb2Ygbi5uYW1lcylpZihhKGUsdCkpcmV0dXJuITA7cmV0dXJuITF9ZnVuY3Rpb24gYyhlKXtyZXR1cm4gZSBpbnN0YW5jZW9mIEVycm9yP2Uuc3RhY2t8fGUubWVzc2FnZTplfWZ1bmN0aW9uIGwoKXtjb25zb2xlLndhcm4oIkluc3RhbmNlIG1ldGhvZCBgZGVidWcuZGVzdHJveSgpYCBpcyBkZXByZWNhdGVkIGFuZCBubyBsb25nZXIgZG9lcyBhbnl0aGluZy4gSXQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IG1ham9yIHZlcnNpb24gb2YgYGRlYnVnYC4iKX1yZXR1cm4gbi5lbmFibGUobi5sb2FkKCkpLG59dC5leHBvcnRzPW59KSksRXM9cygoKGUsdCk9PntlLmZvcm1hdEFyZ3M9cixlLnNhdmU9aSxlLmxvYWQ9YSxlLnVzZUNvbG9ycz1uLGUuc3RvcmFnZT1vKCksZS5kZXN0cm95PSgoKT0+e2xldCBlPSExO3JldHVybigpPT57ZXx8KGU9ITAsY29uc29sZS53YXJuKCJJbnN0YW5jZSBtZXRob2QgYGRlYnVnLmRlc3Ryb3koKWAgaXMgZGVwcmVjYXRlZCBhbmQgbm8gbG9uZ2VyIGRvZXMgYW55dGhpbmcuIEl0IHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmV4dCBtYWpvciB2ZXJzaW9uIG9mIGBkZWJ1Z2AuIikpfX0pKCksZS5jb2xvcnM9YCMwMDAwQ0MuIzAwMDBGRi4jMDAzM0NDLiMwMDMzRkYuIzAwNjZDQy4jMDA2NkZGLiMwMDk5Q0MuIzAwOTlGRi4jMDBDQzAwLiMwMENDMzMuIzAwQ0M2Ni4jMDBDQzk5LiMwMENDQ0MuIzAwQ0NGRi4jMzMwMENDLiMzMzAwRkYuIzMzMzNDQy4jMzMzM0ZGLiMzMzY2Q0MuIzMzNjZGRi4jMzM5OUNDLiMzMzk5RkYuIzMzQ0MwMC4jMzNDQzMzLiMzM0NDNjYuIzMzQ0M5OS4jMzNDQ0NDLiMzM0NDRkYuIzY2MDBDQy4jNjYwMEZGLiM2NjMzQ0MuIzY2MzNGRi4jNjZDQzAwLiM2NkNDMzMuIzk5MDBDQy4jOTkwMEZGLiM5OTMzQ0MuIzk5MzNGRi4jOTlDQzAwLiM5OUNDMzMuI0NDMDAwMC4jQ0MwMDMzLiNDQzAwNjYuI0NDMDA5OS4jQ0MwMENDLiNDQzAwRkYuI0NDMzMwMC4jQ0MzMzMzLiNDQzMzNjYuI0NDMzM5OS4jQ0MzM0NDLiNDQzMzRkYuI0NDNjYwMC4jQ0M2NjMzLiNDQzk5MDAuI0NDOTkzMy4jQ0NDQzAwLiNDQ0NDMzMuI0ZGMDAwMC4jRkYwMDMzLiNGRjAwNjYuI0ZGMDA5OS4jRkYwMENDLiNGRjAwRkYuI0ZGMzMwMC4jRkYzMzMzLiNGRjMzNjYuI0ZGMzM5OS4jRkYzM0NDLiNGRjMzRkYuI0ZGNjYwMC4jRkY2NjMzLiNGRjk5MDAuI0ZGOTkzMy4jRkZDQzAwLiNGRkNDMzNgLnNwbGl0KGAuYCk7ZnVuY3Rpb24gbigpe2lmKHR5cGVvZiB3aW5kb3c8YHVgJiZ3aW5kb3cucHJvY2VzcyYmKHdpbmRvdy5wcm9jZXNzLnR5cGU9PT1gcmVuZGVyZXJgfHx3aW5kb3cucHJvY2Vzcy5fX253anMpKXJldHVybiEwO2lmKHR5cGVvZiBuYXZpZ2F0b3I8YHVgJiZuYXZpZ2F0b3IudXNlckFnZW50JiZuYXZpZ2F0b3IudXNlckFnZW50LnRvTG93ZXJDYXNlKCkubWF0Y2goLyhlZGdlfHRyaWRlbnQpXC8oXGQrKS8pKXJldHVybiExO2xldCBlO3JldHVybiB0eXBlb2YgZG9jdW1lbnQ8YHVgJiZkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQmJmRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZSYmZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLldlYmtpdEFwcGVhcmFuY2V8fHR5cGVvZiB3aW5kb3c8YHVgJiZ3aW5kb3cuY29uc29sZSYmKHdpbmRvdy5jb25zb2xlLmZpcmVidWd8fHdpbmRvdy5jb25zb2xlLmV4Y2VwdGlvbiYmd2luZG93LmNvbnNvbGUudGFibGUpfHx0eXBlb2YgbmF2aWdhdG9yPGB1YCYmbmF2aWdhdG9yLnVzZXJBZ2VudCYmKGU9bmF2aWdhdG9yLnVzZXJBZ2VudC50b0xvd2VyQ2FzZSgpLm1hdGNoKC9maXJlZm94XC8oXGQrKS8pKSYmcGFyc2VJbnQoZVsxXSwxMCk+PTMxfHx0eXBlb2YgbmF2aWdhdG9yPGB1YCYmbmF2aWdhdG9yLnVzZXJBZ2VudCYmbmF2aWdhdG9yLnVzZXJBZ2VudC50b0xvd2VyQ2FzZSgpLm1hdGNoKC9hcHBsZXdlYmtpdFwvKFxkKykvKX1mdW5jdGlvbiByKGUpe2lmKGVbMF09KHRoaXMudXNlQ29sb3JzP2AlY2A6YGApK3RoaXMubmFtZXNwYWNlKyh0aGlzLnVzZUNvbG9ycz9gICVjYDpgIGApK2VbMF0rKHRoaXMudXNlQ29sb3JzP2AlYyBgOmAgYCkrYCtgK3QuZXhwb3J0cy5odW1hbml6ZSh0aGlzLmRpZmYpLCF0aGlzLnVzZUNvbG9ycylyZXR1cm47bGV0IG49YGNvbG9yOiBgK3RoaXMuY29sb3I7ZS5zcGxpY2UoMSwwLG4sYGNvbG9yOiBpbmhlcml0YCk7bGV0IHI9MCxpPTA7ZVswXS5yZXBsYWNlKC8lW2EtekEtWiVdL2csZT0+e2UhPT1gJSVgJiYocisrLGU9PT1gJWNgJiYoaT1yKSl9KSxlLnNwbGljZShpLDAsbil9ZS5sb2c9Y29uc29sZS5kZWJ1Z3x8Y29uc29sZS5sb2d8fCgoKT0+e30pO2Z1bmN0aW9uIGkodCl7dHJ5e3Q/ZS5zdG9yYWdlLnNldEl0ZW0oYGRlYnVnYCx0KTplLnN0b3JhZ2UucmVtb3ZlSXRlbShgZGVidWdgKX1jYXRjaHt9fWZ1bmN0aW9uIGEoKXtsZXQgdDt0cnl7dD1lLnN0b3JhZ2UuZ2V0SXRlbShgZGVidWdgKXx8ZS5zdG9yYWdlLmdldEl0ZW0oYERFQlVHYCl9Y2F0Y2h7fXJldHVybiF0JiZ0eXBlb2YgcHJvY2VzczxgdWAmJmBlbnZgaW4gcHJvY2VzcyYmKHQ9e30uREVCVUcpLHR9ZnVuY3Rpb24gbygpe3RyeXtyZXR1cm4gbG9jYWxTdG9yYWdlfWNhdGNoe319dC5leHBvcnRzPVRzKCkoZSk7dmFye2Zvcm1hdHRlcnM6c309dC5leHBvcnRzO3Muaj1mdW5jdGlvbihlKXt0cnl7cmV0dXJuIEpTT04uc3RyaW5naWZ5KGUpfWNhdGNoKGUpe3JldHVybmBbVW5leHBlY3RlZEpTT05QYXJzZUVycm9yXTogYCtlLm1lc3NhZ2V9fX0pKSxEcz1zKChlPT57dmFyIHQ9ZSYmZS5fX2V4dGVuZHN8fChmdW5jdGlvbigpe3ZhciBlPWZ1bmN0aW9uKHQsbil7cmV0dXJuIGU9T2JqZWN0LnNldFByb3RvdHlwZU9mfHx7X19wcm90b19fOltdfWluc3RhbmNlb2YgQXJyYXkmJmZ1bmN0aW9uKGUsdCl7ZS5fX3Byb3RvX189dH18fGZ1bmN0aW9uKGUsdCl7Zm9yKHZhciBuIGluIHQpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQsbikmJihlW25dPXRbbl0pfSxlKHQsbil9O3JldHVybiBmdW5jdGlvbih0LG4pe2lmKHR5cGVvZiBuIT1gZnVuY3Rpb25gJiZuIT09bnVsbCl0aHJvdyBUeXBlRXJyb3IoYENsYXNzIGV4dGVuZHMgdmFsdWUgYCtTdHJpbmcobikrYCBpcyBub3QgYSBjb25zdHJ1Y3RvciBvciBudWxsYCk7ZSh0LG4pO2Z1bmN0aW9uIHIoKXt0aGlzLmNvbnN0cnVjdG9yPXR9dC5wcm90b3R5cGU9bj09PW51bGw/T2JqZWN0LmNyZWF0ZShuKTooci5wcm90b3R5cGU9bi5wcm90b3R5cGUsbmV3IHIpfX0pKCk7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsYF9fZXNNb2R1bGVgLHt2YWx1ZTohMH0pLGUuY3JlYXRlRW1pdHRlcj1lLmNyZWF0ZUNhbGxiYWNrPWUuYm91bmQ9ZS5jcmVhdGVTb2NrZXRFcnJvcj1lLlNvY2tldEVycm9yPWUuZGVidWc9dm9pZCAwLGUuZGVidWc9bigpO2Z1bmN0aW9uIG4oKXt0cnl7cmV0dXJuIEVzKCkoYHNtYXJ0c3VwcDpjbGllbnRgKX1jYXRjaHtyZXR1cm4gZnVuY3Rpb24oKXt9fX12YXIgcj1mdW5jdGlvbihlKXt0KG4sZSk7ZnVuY3Rpb24gbih0LHIpe3ZhciBpPWUuY2FsbCh0aGlzLHQpfHx0aGlzO3JldHVybiBPYmplY3Quc2V0UHJvdG90eXBlT2YoaSxuLnByb3RvdHlwZSksaS5uYW1lPWkuY29uc3RydWN0b3IubmFtZSxpLmNvZGU9ci5jb2RlLGkudHlwZT1yLnR5cGUsaS5ldmVudD1yLmV2ZW50LHImJnIuc3RhY2smJihpLnN0YWNrPWAke2kuc3RhY2t9CkNhdXNlZCBCeTogJHtyLnN0YWNrfWApLGl9cmV0dXJuIG59KEVycm9yKTtlLlNvY2tldEVycm9yPXI7ZnVuY3Rpb24gaShlKXtyZXR1cm4gbmV3IHIoZS5tZXNzYWdlLGUpfWUuY3JlYXRlU29ja2V0RXJyb3I9aTtmdW5jdGlvbiBhKGUsdCl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIG49Wy4uLmFyZ3VtZW50c107ZVt0XS5hcHBseShlLG4pfX1lLmJvdW5kPWE7ZnVuY3Rpb24gbyhlLHQpe3JldHVybiBmdW5jdGlvbihuLHIpe24/dChpKG4pKTplKHIpfX1lLmNyZWF0ZUNhbGxiYWNrPW87ZnVuY3Rpb24gcyhlLHQpe3JldHVybiBmdW5jdGlvbihuKXtlLmVtaXQodCxuKX19ZS5jcmVhdGVFbWl0dGVyPXN9KSksT3M9cygoKGUsdCk9Pnt2YXIgbj1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LHI9YH5gO2Z1bmN0aW9uIGkoKXt9T2JqZWN0LmNyZWF0ZSYmKGkucHJvdG90eXBlPU9iamVjdC5jcmVhdGUobnVsbCksbmV3IGkoKS5fX3Byb3RvX198fChyPSExKSk7ZnVuY3Rpb24gYShlLHQsbil7dGhpcy5mbj1lLHRoaXMuY29udGV4dD10LHRoaXMub25jZT1ufHwhMX1mdW5jdGlvbiBvKGUsdCxuLGksbyl7aWYodHlwZW9mIG4hPWBmdW5jdGlvbmApdGhyb3cgVHlwZUVycm9yKGBUaGUgbGlzdGVuZXIgbXVzdCBiZSBhIGZ1bmN0aW9uYCk7dmFyIHM9bmV3IGEobixpfHxlLG8pLGM9cj9yK3Q6dDtyZXR1cm4gZS5fZXZlbnRzW2NdP2UuX2V2ZW50c1tjXS5mbj9lLl9ldmVudHNbY109W2UuX2V2ZW50c1tjXSxzXTplLl9ldmVudHNbY10ucHVzaChzKTooZS5fZXZlbnRzW2NdPXMsZS5fZXZlbnRzQ291bnQrKyksZX1mdW5jdGlvbiBzKGUsdCl7LS1lLl9ldmVudHNDb3VudD09PTA/ZS5fZXZlbnRzPW5ldyBpOmRlbGV0ZSBlLl9ldmVudHNbdF19ZnVuY3Rpb24gYygpe3RoaXMuX2V2ZW50cz1uZXcgaSx0aGlzLl9ldmVudHNDb3VudD0wfWMucHJvdG90eXBlLmV2ZW50TmFtZXM9ZnVuY3Rpb24oKXt2YXIgZT1bXSx0LGk7aWYodGhpcy5fZXZlbnRzQ291bnQ9PT0wKXJldHVybiBlO2ZvcihpIGluIHQ9dGhpcy5fZXZlbnRzKW4uY2FsbCh0LGkpJiZlLnB1c2gocj9pLnNsaWNlKDEpOmkpO3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzP2UuY29uY2F0KE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHModCkpOmV9LGMucHJvdG90eXBlLmxpc3RlbmVycz1mdW5jdGlvbihlKXt2YXIgdD1yP3IrZTplLG49dGhpcy5fZXZlbnRzW3RdO2lmKCFuKXJldHVybltdO2lmKG4uZm4pcmV0dXJuW24uZm5dO2Zvcih2YXIgaT0wLGE9bi5sZW5ndGgsbz1BcnJheShhKTtpPGE7aSsrKW9baV09bltpXS5mbjtyZXR1cm4gb30sYy5wcm90b3R5cGUubGlzdGVuZXJDb3VudD1mdW5jdGlvbihlKXt2YXIgdD1yP3IrZTplLG49dGhpcy5fZXZlbnRzW3RdO3JldHVybiBuP24uZm4/MTpuLmxlbmd0aDowfSxjLnByb3RvdHlwZS5lbWl0PWZ1bmN0aW9uKGUsdCxuLGksYSxvKXt2YXIgcz1yP3IrZTplO2lmKCF0aGlzLl9ldmVudHNbc10pcmV0dXJuITE7dmFyIGM9dGhpcy5fZXZlbnRzW3NdLGw9YXJndW1lbnRzLmxlbmd0aCx1LGQ7aWYoYy5mbil7c3dpdGNoKGMub25jZSYmdGhpcy5yZW1vdmVMaXN0ZW5lcihlLGMuZm4sdm9pZCAwLCEwKSxsKXtjYXNlIDE6cmV0dXJuIGMuZm4uY2FsbChjLmNvbnRleHQpLCEwO2Nhc2UgMjpyZXR1cm4gYy5mbi5jYWxsKGMuY29udGV4dCx0KSwhMDtjYXNlIDM6cmV0dXJuIGMuZm4uY2FsbChjLmNvbnRleHQsdCxuKSwhMDtjYXNlIDQ6cmV0dXJuIGMuZm4uY2FsbChjLmNvbnRleHQsdCxuLGkpLCEwO2Nhc2UgNTpyZXR1cm4gYy5mbi5jYWxsKGMuY29udGV4dCx0LG4saSxhKSwhMDtjYXNlIDY6cmV0dXJuIGMuZm4uY2FsbChjLmNvbnRleHQsdCxuLGksYSxvKSwhMH1mb3IoZD0xLHU9QXJyYXkobC0xKTtkPGw7ZCsrKXVbZC0xXT1hcmd1bWVudHNbZF07Yy5mbi5hcHBseShjLmNvbnRleHQsdSl9ZWxzZXt2YXIgZj1jLmxlbmd0aCxwO2ZvcihkPTA7ZDxmO2QrKylzd2l0Y2goY1tkXS5vbmNlJiZ0aGlzLnJlbW92ZUxpc3RlbmVyKGUsY1tkXS5mbix2b2lkIDAsITApLGwpe2Nhc2UgMTpjW2RdLmZuLmNhbGwoY1tkXS5jb250ZXh0KTticmVhaztjYXNlIDI6Y1tkXS5mbi5jYWxsKGNbZF0uY29udGV4dCx0KTticmVhaztjYXNlIDM6Y1tkXS5mbi5jYWxsKGNbZF0uY29udGV4dCx0LG4pO2JyZWFrO2Nhc2UgNDpjW2RdLmZuLmNhbGwoY1tkXS5jb250ZXh0LHQsbixpKTticmVhaztkZWZhdWx0OmlmKCF1KWZvcihwPTEsdT1BcnJheShsLTEpO3A8bDtwKyspdVtwLTFdPWFyZ3VtZW50c1twXTtjW2RdLmZuLmFwcGx5KGNbZF0uY29udGV4dCx1KX19cmV0dXJuITB9LGMucHJvdG90eXBlLm9uPWZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gbyh0aGlzLGUsdCxuLCExKX0sYy5wcm90b3R5cGUub25jZT1mdW5jdGlvbihlLHQsbil7cmV0dXJuIG8odGhpcyxlLHQsbiwhMCl9LGMucHJvdG90eXBlLnJlbW92ZUxpc3RlbmVyPWZ1bmN0aW9uKGUsdCxuLGkpe3ZhciBhPXI/citlOmU7aWYoIXRoaXMuX2V2ZW50c1thXSlyZXR1cm4gdGhpcztpZighdClyZXR1cm4gcyh0aGlzLGEpLHRoaXM7dmFyIG89dGhpcy5fZXZlbnRzW2FdO2lmKG8uZm4pby5mbj09PXQmJighaXx8by5vbmNlKSYmKCFufHxvLmNvbnRleHQ9PT1uKSYmcyh0aGlzLGEpO2Vsc2V7Zm9yKHZhciBjPTAsbD1bXSx1PW8ubGVuZ3RoO2M8dTtjKyspKG9bY10uZm4hPT10fHxpJiYhb1tjXS5vbmNlfHxuJiZvW2NdLmNvbnRleHQhPT1uKSYmbC5wdXNoKG9bY10pO2wubGVuZ3RoP3RoaXMuX2V2ZW50c1thXT1sLmxlbmd0aD09PTE/bFswXTpsOnModGhpcyxhKX1yZXR1cm4gdGhpc30sYy5wcm90b3R5cGUucmVtb3ZlQWxsTGlzdGVuZXJzPWZ1bmN0aW9uKGUpe3ZhciB0O3JldHVybiBlPyh0PXI/citlOmUsdGhpcy5fZXZlbnRzW3RdJiZzKHRoaXMsdCkpOih0aGlzLl9ldmVudHM9bmV3IGksdGhpcy5fZXZlbnRzQ291bnQ9MCksdGhpc30sYy5wcm90b3R5cGUub2ZmPWMucHJvdG90eXBlLnJlbW92ZUxpc3RlbmVyLGMucHJvdG90eXBlLmFkZExpc3RlbmVyPWMucHJvdG90eXBlLm9uLGMucHJlZml4ZWQ9cixjLkV2ZW50RW1pdHRlcj1jLHQhPT12b2lkIDAmJih0LmV4cG9ydHM9Yyl9KSksa3M9cygoKGUsdCk9Pnt2YXIgbj0vXig/Oig/IVteOkBdKzpbXjpAXC9dKkApKGh0dHB8aHR0cHN8d3N8d3NzKTpcL1wvKT8oKD86KChbXjpAXSopKD86OihbXjpAXSopKT8pP0ApPygoPzpbYS1mMC05XXswLDR9Oil7Miw3fVthLWYwLTldezAsNH18W146XC8/I10qKSg/OjooXGQqKSk/KSgoKFwvKD86W14/I10oPyFbXj8jXC9dKlwuW14/I1wvLl0rKD86Wz8jXXwkKSkpKlwvPyk/KFtePyNcL10qKSkoPzpcPyhbXiNdKikpPyg/OiMoLiopKT8pLyxyPVtgc291cmNlYCxgcHJvdG9jb2xgLGBhdXRob3JpdHlgLGB1c2VySW5mb2AsYHVzZXJgLGBwYXNzd29yZGAsYGhvc3RgLGBwb3J0YCxgcmVsYXRpdmVgLGBwYXRoYCxgZGlyZWN0b3J5YCxgZmlsZWAsYHF1ZXJ5YCxgYW5jaG9yYF07dC5leHBvcnRzPWZ1bmN0aW9uKGUpe3ZhciB0PWUsaT1lLmluZGV4T2YoYFtgKSxhPWUuaW5kZXhPZihgXWApO2khPS0xJiZhIT0tMSYmKGU9ZS5zdWJzdHJpbmcoMCxpKStlLnN1YnN0cmluZyhpLGEpLnJlcGxhY2UoLzovZyxgO2ApK2Uuc3Vic3RyaW5nKGEsZS5sZW5ndGgpKTtmb3IodmFyIG89bi5leGVjKGV8fGBgKSxzPXt9LGM9MTQ7Yy0tOylzW3JbY11dPW9bY118fGBgO3JldHVybiBpIT0tMSYmYSE9LTEmJihzLnNvdXJjZT10LHMuaG9zdD1zLmhvc3Quc3Vic3RyaW5nKDEscy5ob3N0Lmxlbmd0aC0xKS5yZXBsYWNlKC87L2csYDpgKSxzLmF1dGhvcml0eT1zLmF1dGhvcml0eS5yZXBsYWNlKGBbYCxgYCkucmVwbGFjZShgXWAsYGApLnJlcGxhY2UoLzsvZyxgOmApLHMuaXB2NnVyaT0hMCksc319KSksQXM9cygoKGUsdCk9PntmdW5jdGlvbiBuKGUpe24uZGVidWc9bixuLmRlZmF1bHQ9bixuLmNvZXJjZT1sLG4uZGlzYWJsZT1vLG4uZW5hYmxlPWEsbi5lbmFibGVkPXMsbi5odW1hbml6ZT13cygpLE9iamVjdC5rZXlzKGUpLmZvckVhY2godD0+e25bdF09ZVt0XX0pLG4uaW5zdGFuY2VzPVtdLG4ubmFtZXM9W10sbi5za2lwcz1bXSxuLmZvcm1hdHRlcnM9e307ZnVuY3Rpb24gdChlKXtsZXQgdD0wO2ZvcihsZXQgbj0wO248ZS5sZW5ndGg7bisrKXQ9KHQ8PDUpLXQrZS5jaGFyQ29kZUF0KG4pLHR8PTA7cmV0dXJuIG4uY29sb3JzW01hdGguYWJzKHQpJW4uY29sb3JzLmxlbmd0aF19bi5zZWxlY3RDb2xvcj10O2Z1bmN0aW9uIG4oZSl7bGV0IGE7ZnVuY3Rpb24gbyguLi5lKXtpZighby5lbmFibGVkKXJldHVybjtsZXQgdD1vLHI9TnVtYmVyKG5ldyBEYXRlKTt0LmRpZmY9ci0oYXx8ciksdC5wcmV2PWEsdC5jdXJyPXIsYT1yLGVbMF09bi5jb2VyY2UoZVswXSksdHlwZW9mIGVbMF0hPWBzdHJpbmdgJiZlLnVuc2hpZnQoYCVPYCk7bGV0IGk9MDtlWzBdPWVbMF0ucmVwbGFjZSgvJShbYS16QS1aJV0pL2csKHIsYSk9PntpZihyPT09YCUlYClyZXR1cm4gcjtpKys7bGV0IG89bi5mb3JtYXR0ZXJzW2FdO2lmKHR5cGVvZiBvPT1gZnVuY3Rpb25gKXtsZXQgbj1lW2ldO3I9by5jYWxsKHQsbiksZS5zcGxpY2UoaSwxKSxpLS19cmV0dXJuIHJ9KSxuLmZvcm1hdEFyZ3MuY2FsbCh0LGUpLCh0LmxvZ3x8bi5sb2cpLmFwcGx5KHQsZSl9cmV0dXJuIG8ubmFtZXNwYWNlPWUsby5lbmFibGVkPW4uZW5hYmxlZChlKSxvLnVzZUNvbG9ycz1uLnVzZUNvbG9ycygpLG8uY29sb3I9dChlKSxvLmRlc3Ryb3k9cixvLmV4dGVuZD1pLHR5cGVvZiBuLmluaXQ9PWBmdW5jdGlvbmAmJm4uaW5pdChvKSxuLmluc3RhbmNlcy5wdXNoKG8pLG99ZnVuY3Rpb24gcigpe2xldCBlPW4uaW5zdGFuY2VzLmluZGV4T2YodGhpcyk7cmV0dXJuIGU9PT0tMT8hMToobi5pbnN0YW5jZXMuc3BsaWNlKGUsMSksITApfWZ1bmN0aW9uIGkoZSx0KXtsZXQgcj1uKHRoaXMubmFtZXNwYWNlKyh0PT09dm9pZCAwP2A6YDp0KStlKTtyZXR1cm4gci5sb2c9dGhpcy5sb2cscn1mdW5jdGlvbiBhKGUpe24uc2F2ZShlKSxuLm5hbWVzPVtdLG4uc2tpcHM9W107bGV0IHQscj0odHlwZW9mIGU9PWBzdHJpbmdgP2U6YGApLnNwbGl0KC9bXHMsXSsvKSxpPXIubGVuZ3RoO2Zvcih0PTA7dDxpO3QrKylyW3RdJiYoZT1yW3RdLnJlcGxhY2UoL1wqL2csYC4qP2ApLGVbMF09PT1gLWA/bi5za2lwcy5wdXNoKFJlZ0V4cChgXmArZS5zdWJzdHIoMSkrYCRgKSk6bi5uYW1lcy5wdXNoKFJlZ0V4cChgXmArZStgJGApKSk7Zm9yKHQ9MDt0PG4uaW5zdGFuY2VzLmxlbmd0aDt0Kyspe2xldCBlPW4uaW5zdGFuY2VzW3RdO2UuZW5hYmxlZD1uLmVuYWJsZWQoZS5uYW1lc3BhY2UpfX1mdW5jdGlvbiBvKCl7bGV0IGU9Wy4uLm4ubmFtZXMubWFwKGMpLC4uLm4uc2tpcHMubWFwKGMpLm1hcChlPT5gLWArZSldLmpvaW4oYCxgKTtyZXR1cm4gbi5lbmFibGUoYGApLGV9ZnVuY3Rpb24gcyhlKXtpZihlW2UubGVuZ3RoLTFdPT09YCpgKXJldHVybiEwO2xldCB0LHI7Zm9yKHQ9MCxyPW4uc2tpcHMubGVuZ3RoO3Q8cjt0KyspaWYobi5za2lwc1t0XS50ZXN0KGUpKXJldHVybiExO2Zvcih0PTAscj1uLm5hbWVzLmxlbmd0aDt0PHI7dCsrKWlmKG4ubmFtZXNbdF0udGVzdChlKSlyZXR1cm4hMDtyZXR1cm4hMX1mdW5jdGlvbiBjKGUpe3JldHVybiBlLnRvU3RyaW5nKCkuc3Vic3RyaW5nKDIsZS50b1N0cmluZygpLmxlbmd0aC0yKS5yZXBsYWNlKC9cLlwqXD8kLyxgKmApfWZ1bmN0aW9uIGwoZSl7cmV0dXJuIGUgaW5zdGFuY2VvZiBFcnJvcj9lLnN0YWNrfHxlLm1lc3NhZ2U6ZX1yZXR1cm4gbi5lbmFibGUobi5sb2FkKCkpLG59dC5leHBvcnRzPW59KSksanM9cygoKGUsdCk9PntlLmxvZz1pLGUuZm9ybWF0QXJncz1yLGUuc2F2ZT1hLGUubG9hZD1vLGUudXNlQ29sb3JzPW4sZS5zdG9yYWdlPXMoKSxlLmNvbG9ycz1gIzAwMDBDQy4jMDAwMEZGLiMwMDMzQ0MuIzAwMzNGRi4jMDA2NkNDLiMwMDY2RkYuIzAwOTlDQy4jMDA5OUZGLiMwMENDMDAuIzAwQ0MzMy4jMDBDQzY2LiMwMENDOTkuIzAwQ0NDQy4jMDBDQ0ZGLiMzMzAwQ0MuIzMzMDBGRi4jMzMzM0NDLiMzMzMzRkYuIzMzNjZDQy4jMzM2NkZGLiMzMzk5Q0MuIzMzOTlGRi4jMzNDQzAwLiMzM0NDMzMuIzMzQ0M2Ni4jMzNDQzk5LiMzM0NDQ0MuIzMzQ0NGRi4jNjYwMENDLiM2NjAwRkYuIzY2MzNDQy4jNjYzM0ZGLiM2NkNDMDAuIzY2Q0MzMy4jOTkwMENDLiM5OTAwRkYuIzk5MzNDQy4jOTkzM0ZGLiM5OUNDMDAuIzk5Q0MzMy4jQ0MwMDAwLiNDQzAwMzMuI0NDMDA2Ni4jQ0MwMDk5LiNDQzAwQ0MuI0NDMDBGRi4jQ0MzMzAwLiNDQzMzMzMuI0NDMzM2Ni4jQ0MzMzk5LiNDQzMzQ0MuI0NDMzNGRi4jQ0M2NjAwLiNDQzY2MzMuI0NDOTkwMC4jQ0M5OTMzLiNDQ0NDMDAuI0NDQ0MzMy4jRkYwMDAwLiNGRjAwMzMuI0ZGMDA2Ni4jRkYwMDk5LiNGRjAwQ0MuI0ZGMDBGRi4jRkYzMzAwLiNGRjMzMzMuI0ZGMzM2Ni4jRkYzMzk5LiNGRjMzQ0MuI0ZGMzNGRi4jRkY2NjAwLiNGRjY2MzMuI0ZGOTkwMC4jRkY5OTMzLiNGRkNDMDAuI0ZGQ0MzM2Auc3BsaXQoYC5gKTtmdW5jdGlvbiBuKCl7cmV0dXJuIHR5cGVvZiB3aW5kb3c8YHVgJiZ3aW5kb3cucHJvY2VzcyYmKHdpbmRvdy5wcm9jZXNzLnR5cGU9PT1gcmVuZGVyZXJgfHx3aW5kb3cucHJvY2Vzcy5fX253anMpPyEwOnR5cGVvZiBuYXZpZ2F0b3I8YHVgJiZuYXZpZ2F0b3IudXNlckFnZW50JiZuYXZpZ2F0b3IudXNlckFnZW50LnRvTG93ZXJDYXNlKCkubWF0Y2goLyhlZGdlfHRyaWRlbnQpXC8oXGQrKS8pPyExOnR5cGVvZiBkb2N1bWVudDxgdWAmJmRvY3VtZW50LmRvY3VtZW50RWxlbWVudCYmZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlJiZkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuV2Via2l0QXBwZWFyYW5jZXx8dHlwZW9mIHdpbmRvdzxgdWAmJndpbmRvdy5jb25zb2xlJiYod2luZG93LmNvbnNvbGUuZmlyZWJ1Z3x8d2luZG93LmNvbnNvbGUuZXhjZXB0aW9uJiZ3aW5kb3cuY29uc29sZS50YWJsZSl8fHR5cGVvZiBuYXZpZ2F0b3I8YHVgJiZuYXZpZ2F0b3IudXNlckFnZW50JiZuYXZpZ2F0b3IudXNlckFnZW50LnRvTG93ZXJDYXNlKCkubWF0Y2goL2ZpcmVmb3hcLyhcZCspLykmJnBhcnNlSW50KFJlZ0V4cC4kMSwxMCk+PTMxfHx0eXBlb2YgbmF2aWdhdG9yPGB1YCYmbmF2aWdhdG9yLnVzZXJBZ2VudCYmbmF2aWdhdG9yLnVzZXJBZ2VudC50b0xvd2VyQ2FzZSgpLm1hdGNoKC9hcHBsZXdlYmtpdFwvKFxkKykvKX1mdW5jdGlvbiByKGUpe2lmKGVbMF09KHRoaXMudXNlQ29sb3JzP2AlY2A6YGApK3RoaXMubmFtZXNwYWNlKyh0aGlzLnVzZUNvbG9ycz9gICVjYDpgIGApK2VbMF0rKHRoaXMudXNlQ29sb3JzP2AlYyBgOmAgYCkrYCtgK3QuZXhwb3J0cy5odW1hbml6ZSh0aGlzLmRpZmYpLCF0aGlzLnVzZUNvbG9ycylyZXR1cm47bGV0IG49YGNvbG9yOiBgK3RoaXMuY29sb3I7ZS5zcGxpY2UoMSwwLG4sYGNvbG9yOiBpbmhlcml0YCk7bGV0IHI9MCxpPTA7ZVswXS5yZXBsYWNlKC8lW2EtekEtWiVdL2csZT0+e2UhPT1gJSVgJiYocisrLGU9PT1gJWNgJiYoaT1yKSl9KSxlLnNwbGljZShpLDAsbil9ZnVuY3Rpb24gaSguLi5lKXtyZXR1cm4gdHlwZW9mIGNvbnNvbGU9PWBvYmplY3RgJiZjb25zb2xlLmxvZyYmY29uc29sZS5sb2coLi4uZSl9ZnVuY3Rpb24gYSh0KXt0cnl7dD9lLnN0b3JhZ2Uuc2V0SXRlbShgZGVidWdgLHQpOmUuc3RvcmFnZS5yZW1vdmVJdGVtKGBkZWJ1Z2ApfWNhdGNoe319ZnVuY3Rpb24gbygpe2xldCB0O3RyeXt0PWUuc3RvcmFnZS5nZXRJdGVtKGBkZWJ1Z2ApfWNhdGNoe31yZXR1cm4hdCYmdHlwZW9mIHByb2Nlc3M8YHVgJiZgZW52YGluIHByb2Nlc3MmJih0PXt9LkRFQlVHKSx0fWZ1bmN0aW9uIHMoKXt0cnl7cmV0dXJuIGxvY2FsU3RvcmFnZX1jYXRjaHt9fXQuZXhwb3J0cz1BcygpKGUpO3Zhcntmb3JtYXR0ZXJzOmN9PXQuZXhwb3J0cztjLmo9ZnVuY3Rpb24oZSl7dHJ5e3JldHVybiBKU09OLnN0cmluZ2lmeShlKX1jYXRjaChlKXtyZXR1cm5gW1VuZXhwZWN0ZWRKU09OUGFyc2VFcnJvcl06IGArZS5tZXNzYWdlfX19KSksTXM9cygoKGUsdCk9Pnt2YXIgbj1rcygpLHI9anMoKShgc29ja2V0LmlvLWNsaWVudDp1cmxgKTt0LmV4cG9ydHM9aTtmdW5jdGlvbiBpKGUsdCl7dmFyIGk9ZTt0fHw9dHlwZW9mIGxvY2F0aW9uPGB1YCYmbG9jYXRpb24sZT8/PXQucHJvdG9jb2wrYC8vYCt0Lmhvc3QsdHlwZW9mIGU9PWBzdHJpbmdgJiYoZS5jaGFyQXQoMCk9PT1gL2AmJihlPWUuY2hhckF0KDEpPT09YC9gP3QucHJvdG9jb2wrZTp0Lmhvc3QrZSksL14oaHR0cHM/fHdzcz8pOlwvXC8vLnRlc3QoZSl8fChyKGBwcm90b2NvbC1sZXNzIHVybCAlc2AsZSksZT10PT09dm9pZCAwP2BodHRwczovL2ArZTp0LnByb3RvY29sK2AvL2ArZSkscihgcGFyc2UgJXNgLGUpLGk9bihlKSksaS5wb3J0fHwoL14oaHR0cHx3cykkLy50ZXN0KGkucHJvdG9jb2wpP2kucG9ydD1gODBgOi9eKGh0dHB8d3MpcyQvLnRlc3QoaS5wcm90b2NvbCkmJihpLnBvcnQ9YDQ0M2ApKSxpLnBhdGg9aS5wYXRofHxgL2A7dmFyIGE9aS5ob3N0LmluZGV4T2YoYDpgKT09PS0xP2kuaG9zdDpgW2AraS5ob3N0K2BdYDtyZXR1cm4gaS5pZD1pLnByb3RvY29sK2A6Ly9gK2ErYDpgK2kucG9ydCxpLmhyZWY9aS5wcm90b2NvbCtgOi8vYCthKyh0JiZ0LnBvcnQ9PT1pLnBvcnQ/YGA6YDpgK2kucG9ydCksaX19KSksTnM9cygoKGUsdCk9Pnt2YXIgbj0xZTMscj1uKjYwLGk9cio2MCxhPWkqMjQsbz1hKjM2NS4yNTt0LmV4cG9ydHM9ZnVuY3Rpb24oZSx0KXt0fHw9e307dmFyIG49dHlwZW9mIGU7aWYobj09PWBzdHJpbmdgJiZlLmxlbmd0aD4wKXJldHVybiBzKGUpO2lmKG49PT1gbnVtYmVyYCYmaXNOYU4oZSk9PT0hMSlyZXR1cm4gdC5sb25nP2woZSk6YyhlKTt0aHJvdyBFcnJvcihgdmFsIGlzIG5vdCBhIG5vbi1lbXB0eSBzdHJpbmcgb3IgYSB2YWxpZCBudW1iZXIuIHZhbD1gK0pTT04uc3RyaW5naWZ5KGUpKX07ZnVuY3Rpb24gcyhlKXtpZihlPVN0cmluZyhlKSwhKGUubGVuZ3RoPjEwMCkpe3ZhciB0PS9eKCg/OlxkKyk/XC4/XGQrKSAqKG1pbGxpc2Vjb25kcz98bXNlY3M/fG1zfHNlY29uZHM/fHNlY3M/fHN8bWludXRlcz98bWlucz98bXxob3Vycz98aHJzP3xofGRheXM/fGR8eWVhcnM/fHlycz98eSk/JC9pLmV4ZWMoZSk7aWYodCl7dmFyIHM9cGFyc2VGbG9hdCh0WzFdKTtzd2l0Y2goKHRbMl18fGBtc2ApLnRvTG93ZXJDYXNlKCkpe2Nhc2VgeWVhcnNgOmNhc2VgeWVhcmA6Y2FzZWB5cnNgOmNhc2VgeXJgOmNhc2VgeWA6cmV0dXJuIHMqbztjYXNlYGRheXNgOmNhc2VgZGF5YDpjYXNlYGRgOnJldHVybiBzKmE7Y2FzZWBob3Vyc2A6Y2FzZWBob3VyYDpjYXNlYGhyc2A6Y2FzZWBocmA6Y2FzZWBoYDpyZXR1cm4gcyppO2Nhc2VgbWludXRlc2A6Y2FzZWBtaW51dGVgOmNhc2VgbWluc2A6Y2FzZWBtaW5gOmNhc2VgbWA6cmV0dXJuIHMqcjtjYXNlYHNlY29uZHNgOmNhc2Vgc2Vjb25kYDpjYXNlYHNlY3NgOmNhc2Vgc2VjYDpjYXNlYHNgOnJldHVybiBzKm47Y2FzZWBtaWxsaXNlY29uZHNgOmNhc2VgbWlsbGlzZWNvbmRgOmNhc2VgbXNlY3NgOmNhc2VgbXNlY2A6Y2FzZWBtc2A6cmV0dXJuIHM7ZGVmYXVsdDpyZXR1cm59fX19ZnVuY3Rpb24gYyhlKXtyZXR1cm4gZT49YT9NYXRoLnJvdW5kKGUvYSkrYGRgOmU+PWk/TWF0aC5yb3VuZChlL2kpK2BoYDplPj1yP01hdGgucm91bmQoZS9yKStgbWA6ZT49bj9NYXRoLnJvdW5kKGUvbikrYHNgOmUrYG1zYH1mdW5jdGlvbiBsKGUpe3JldHVybiB1KGUsYSxgZGF5YCl8fHUoZSxpLGBob3VyYCl8fHUoZSxyLGBtaW51dGVgKXx8dShlLG4sYHNlY29uZGApfHxlK2AgbXNgfWZ1bmN0aW9uIHUoZSx0LG4pe2lmKCEoZTx0KSlyZXR1cm4gZTx0KjEuNT9NYXRoLmZsb29yKGUvdCkrYCBgK246TWF0aC5jZWlsKGUvdCkrYCBgK24rYHNgfX0pKSxQcz1zKCgoZSx0KT0+e2U9dC5leHBvcnRzPXIuZGVidWc9ci5kZWZhdWx0PXIsZS5jb2VyY2U9YyxlLmRpc2FibGU9byxlLmVuYWJsZT1hLGUuZW5hYmxlZD1zLGUuaHVtYW5pemU9TnMoKSxlLmluc3RhbmNlcz1bXSxlLm5hbWVzPVtdLGUuc2tpcHM9W10sZS5mb3JtYXR0ZXJzPXt9O2Z1bmN0aW9uIG4odCl7dmFyIG49MCxyO2ZvcihyIGluIHQpbj0objw8NSktbit0LmNoYXJDb2RlQXQociksbnw9MDtyZXR1cm4gZS5jb2xvcnNbTWF0aC5hYnMobiklZS5jb2xvcnMubGVuZ3RoXX1mdW5jdGlvbiByKHQpe3ZhciByO2Z1bmN0aW9uIGEoKXtpZihhLmVuYWJsZWQpe3ZhciB0PWEsbj0rbmV3IERhdGU7dC5kaWZmPW4tKHJ8fG4pLHQucHJldj1yLHQuY3Vycj1uLHI9bjtmb3IodmFyIGk9QXJyYXkoYXJndW1lbnRzLmxlbmd0aCksbz0wO288aS5sZW5ndGg7bysrKWlbb109YXJndW1lbnRzW29dO2lbMF09ZS5jb2VyY2UoaVswXSksdHlwZW9mIGlbMF0hPWBzdHJpbmdgJiZpLnVuc2hpZnQoYCVPYCk7dmFyIHM9MDtpWzBdPWlbMF0ucmVwbGFjZSgvJShbYS16QS1aJV0pL2csZnVuY3Rpb24obixyKXtpZihuPT09YCUlYClyZXR1cm4gbjtzKys7dmFyIGE9ZS5mb3JtYXR0ZXJzW3JdO2lmKHR5cGVvZiBhPT1gZnVuY3Rpb25gKXt2YXIgbz1pW3NdO249YS5jYWxsKHQsbyksaS5zcGxpY2UocywxKSxzLS19cmV0dXJuIG59KSxlLmZvcm1hdEFyZ3MuY2FsbCh0LGkpLChhLmxvZ3x8ZS5sb2d8fGNvbnNvbGUubG9nLmJpbmQoY29uc29sZSkpLmFwcGx5KHQsaSl9fXJldHVybiBhLm5hbWVzcGFjZT10LGEuZW5hYmxlZD1lLmVuYWJsZWQodCksYS51c2VDb2xvcnM9ZS51c2VDb2xvcnMoKSxhLmNvbG9yPW4odCksYS5kZXN0cm95PWksdHlwZW9mIGUuaW5pdD09YGZ1bmN0aW9uYCYmZS5pbml0KGEpLGUuaW5zdGFuY2VzLnB1c2goYSksYX1mdW5jdGlvbiBpKCl7dmFyIHQ9ZS5pbnN0YW5jZXMuaW5kZXhPZih0aGlzKTtyZXR1cm4gdD09PS0xPyExOihlLmluc3RhbmNlcy5zcGxpY2UodCwxKSwhMCl9ZnVuY3Rpb24gYSh0KXtlLnNhdmUodCksZS5uYW1lcz1bXSxlLnNraXBzPVtdO3ZhciBuLHI9KHR5cGVvZiB0PT1gc3RyaW5nYD90OmBgKS5zcGxpdCgvW1xzLF0rLyksaT1yLmxlbmd0aDtmb3Iobj0wO248aTtuKyspcltuXSYmKHQ9cltuXS5yZXBsYWNlKC9cKi9nLGAuKj9gKSx0WzBdPT09YC1gP2Uuc2tpcHMucHVzaChSZWdFeHAoYF5gK3Quc3Vic3RyKDEpK2AkYCkpOmUubmFtZXMucHVzaChSZWdFeHAoYF5gK3QrYCRgKSkpO2ZvcihuPTA7bjxlLmluc3RhbmNlcy5sZW5ndGg7bisrKXt2YXIgYT1lLmluc3RhbmNlc1tuXTthLmVuYWJsZWQ9ZS5lbmFibGVkKGEubmFtZXNwYWNlKX19ZnVuY3Rpb24gbygpe2UuZW5hYmxlKGBgKX1mdW5jdGlvbiBzKHQpe2lmKHRbdC5sZW5ndGgtMV09PT1gKmApcmV0dXJuITA7dmFyIG4scjtmb3Iobj0wLHI9ZS5za2lwcy5sZW5ndGg7bjxyO24rKylpZihlLnNraXBzW25dLnRlc3QodCkpcmV0dXJuITE7Zm9yKG49MCxyPWUubmFtZXMubGVuZ3RoO248cjtuKyspaWYoZS5uYW1lc1tuXS50ZXN0KHQpKXJldHVybiEwO3JldHVybiExfWZ1bmN0aW9uIGMoZSl7cmV0dXJuIGUgaW5zdGFuY2VvZiBFcnJvcj9lLnN0YWNrfHxlLm1lc3NhZ2U6ZX19KSksRnM9cygoKGUsdCk9PntlPXQuZXhwb3J0cz1QcygpLGUubG9nPWksZS5mb3JtYXRBcmdzPXIsZS5zYXZlPWEsZS5sb2FkPW8sZS51c2VDb2xvcnM9bixlLnN0b3JhZ2U9dHlwZW9mIGNocm9tZTxgdWAmJmNocm9tZS5zdG9yYWdlIT09dm9pZCAwP2Nocm9tZS5zdG9yYWdlLmxvY2FsOnMoKSxlLmNvbG9ycz1gIzAwMDBDQy4jMDAwMEZGLiMwMDMzQ0MuIzAwMzNGRi4jMDA2NkNDLiMwMDY2RkYuIzAwOTlDQy4jMDA5OUZGLiMwMENDMDAuIzAwQ0MzMy4jMDBDQzY2LiMwMENDOTkuIzAwQ0NDQy4jMDBDQ0ZGLiMzMzAwQ0MuIzMzMDBGRi4jMzMzM0NDLiMzMzMzRkYuIzMzNjZDQy4jMzM2NkZGLiMzMzk5Q0MuIzMzOTlGRi4jMzNDQzAwLiMzM0NDMzMuIzMzQ0M2Ni4jMzNDQzk5LiMzM0NDQ0MuIzMzQ0NGRi4jNjYwMENDLiM2NjAwRkYuIzY2MzNDQy4jNjYzM0ZGLiM2NkNDMDAuIzY2Q0MzMy4jOTkwMENDLiM5OTAwRkYuIzk5MzNDQy4jOTkzM0ZGLiM5OUNDMDAuIzk5Q0MzMy4jQ0MwMDAwLiNDQzAwMzMuI0NDMDA2Ni4jQ0MwMDk5LiNDQzAwQ0MuI0NDMDBGRi4jQ0MzMzAwLiNDQzMzMzMuI0NDMzM2Ni4jQ0MzMzk5LiNDQzMzQ0MuI0NDMzNGRi4jQ0M2NjAwLiNDQzY2MzMuI0NDOTkwMC4jQ0M5OTMzLiNDQ0NDMDAuI0NDQ0MzMy4jRkYwMDAwLiNGRjAwMzMuI0ZGMDA2Ni4jRkYwMDk5LiNGRjAwQ0MuI0ZGMDBGRi4jRkYzMzAwLiNGRjMzMzMuI0ZGMzM2Ni4jRkYzMzk5LiNGRjMzQ0MuI0ZGMzNGRi4jRkY2NjAwLiNGRjY2MzMuI0ZGOTkwMC4jRkY5OTMzLiNGRkNDMDAuI0ZGQ0MzM2Auc3BsaXQoYC5gKTtmdW5jdGlvbiBuKCl7cmV0dXJuIHR5cGVvZiB3aW5kb3c8YHVgJiZ3aW5kb3cucHJvY2VzcyYmd2luZG93LnByb2Nlc3MudHlwZT09PWByZW5kZXJlcmA/ITA6dHlwZW9mIG5hdmlnYXRvcjxgdWAmJm5hdmlnYXRvci51c2VyQWdlbnQmJm5hdmlnYXRvci51c2VyQWdlbnQudG9Mb3dlckNhc2UoKS5tYXRjaCgvKGVkZ2V8dHJpZGVudClcLyhcZCspLyk/ITE6dHlwZW9mIGRvY3VtZW50PGB1YCYmZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50JiZkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUmJmRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5XZWJraXRBcHBlYXJhbmNlfHx0eXBlb2Ygd2luZG93PGB1YCYmd2luZG93LmNvbnNvbGUmJih3aW5kb3cuY29uc29sZS5maXJlYnVnfHx3aW5kb3cuY29uc29sZS5leGNlcHRpb24mJndpbmRvdy5jb25zb2xlLnRhYmxlKXx8dHlwZW9mIG5hdmlnYXRvcjxgdWAmJm5hdmlnYXRvci51c2VyQWdlbnQmJm5hdmlnYXRvci51c2VyQWdlbnQudG9Mb3dlckNhc2UoKS5tYXRjaCgvZmlyZWZveFwvKFxkKykvKSYmcGFyc2VJbnQoUmVnRXhwLiQxLDEwKT49MzF8fHR5cGVvZiBuYXZpZ2F0b3I8YHVgJiZuYXZpZ2F0b3IudXNlckFnZW50JiZuYXZpZ2F0b3IudXNlckFnZW50LnRvTG93ZXJDYXNlKCkubWF0Y2goL2FwcGxld2Via2l0XC8oXGQrKS8pfWUuZm9ybWF0dGVycy5qPWZ1bmN0aW9uKGUpe3RyeXtyZXR1cm4gSlNPTi5zdHJpbmdpZnkoZSl9Y2F0Y2goZSl7cmV0dXJuYFtVbmV4cGVjdGVkSlNPTlBhcnNlRXJyb3JdOiBgK2UubWVzc2FnZX19O2Z1bmN0aW9uIHIodCl7dmFyIG49dGhpcy51c2VDb2xvcnM7aWYodFswXT0obj9gJWNgOmBgKSt0aGlzLm5hbWVzcGFjZSsobj9gICVjYDpgIGApK3RbMF0rKG4/YCVjIGA6YCBgKStgK2ArZS5odW1hbml6ZSh0aGlzLmRpZmYpLG4pe3ZhciByPWBjb2xvcjogYCt0aGlzLmNvbG9yO3Quc3BsaWNlKDEsMCxyLGBjb2xvcjogaW5oZXJpdGApO3ZhciBpPTAsYT0wO3RbMF0ucmVwbGFjZSgvJVthLXpBLVolXS9nLGZ1bmN0aW9uKGUpe2UhPT1gJSVgJiYoaSsrLGU9PT1gJWNgJiYoYT1pKSl9KSx0LnNwbGljZShhLDAscil9fWZ1bmN0aW9uIGkoKXtyZXR1cm4gdHlwZW9mIGNvbnNvbGU9PWBvYmplY3RgJiZjb25zb2xlLmxvZyYmRnVuY3Rpb24ucHJvdG90eXBlLmFwcGx5LmNhbGwoY29uc29sZS5sb2csY29uc29sZSxhcmd1bWVudHMpfWZ1bmN0aW9uIGEodCl7dHJ5e3Q9PW51bGw/ZS5zdG9yYWdlLnJlbW92ZUl0ZW0oYGRlYnVnYCk6ZS5zdG9yYWdlLmRlYnVnPXR9Y2F0Y2h7fX1mdW5jdGlvbiBvKCl7dmFyIHQ7dHJ5e3Q9ZS5zdG9yYWdlLmRlYnVnfWNhdGNoe31yZXR1cm4hdCYmdHlwZW9mIHByb2Nlc3M8YHVgJiZgZW52YGluIHByb2Nlc3MmJih0PXt9LkRFQlVHKSx0fWUuZW5hYmxlKG8oKSk7ZnVuY3Rpb24gcygpe3RyeXtyZXR1cm4gd2luZG93LmxvY2FsU3RvcmFnZX1jYXRjaHt9fX0pKSxJcz1zKCgoZSx0KT0+e3QhPT12b2lkIDAmJih0LmV4cG9ydHM9bik7ZnVuY3Rpb24gbihlKXtpZihlKXJldHVybiByKGUpfWZ1bmN0aW9uIHIoZSl7Zm9yKHZhciB0IGluIG4ucHJvdG90eXBlKWVbdF09bi5wcm90b3R5cGVbdF07cmV0dXJuIGV9bi5wcm90b3R5cGUub249bi5wcm90b3R5cGUuYWRkRXZlbnRMaXN0ZW5lcj1mdW5jdGlvbihlLHQpe3JldHVybiB0aGlzLl9jYWxsYmFja3M9dGhpcy5fY2FsbGJhY2tzfHx7fSwodGhpcy5fY2FsbGJhY2tzW2AkYCtlXT10aGlzLl9jYWxsYmFja3NbYCRgK2VdfHxbXSkucHVzaCh0KSx0aGlzfSxuLnByb3RvdHlwZS5vbmNlPWZ1bmN0aW9uKGUsdCl7ZnVuY3Rpb24gbigpe3RoaXMub2ZmKGUsbiksdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9cmV0dXJuIG4uZm49dCx0aGlzLm9uKGUsbiksdGhpc30sbi5wcm90b3R5cGUub2ZmPW4ucHJvdG90eXBlLnJlbW92ZUxpc3RlbmVyPW4ucHJvdG90eXBlLnJlbW92ZUFsbExpc3RlbmVycz1uLnByb3RvdHlwZS5yZW1vdmVFdmVudExpc3RlbmVyPWZ1bmN0aW9uKGUsdCl7aWYodGhpcy5fY2FsbGJhY2tzPXRoaXMuX2NhbGxiYWNrc3x8e30sYXJndW1lbnRzLmxlbmd0aD09MClyZXR1cm4gdGhpcy5fY2FsbGJhY2tzPXt9LHRoaXM7dmFyIG49dGhpcy5fY2FsbGJhY2tzW2AkYCtlXTtpZighbilyZXR1cm4gdGhpcztpZihhcmd1bWVudHMubGVuZ3RoPT0xKXJldHVybiBkZWxldGUgdGhpcy5fY2FsbGJhY2tzW2AkYCtlXSx0aGlzO2Zvcih2YXIgcixpPTA7aTxuLmxlbmd0aDtpKyspaWYocj1uW2ldLHI9PT10fHxyLmZuPT09dCl7bi5zcGxpY2UoaSwxKTticmVha31yZXR1cm4gbi5sZW5ndGg9PT0wJiZkZWxldGUgdGhpcy5fY2FsbGJhY2tzW2AkYCtlXSx0aGlzfSxuLnByb3RvdHlwZS5lbWl0PWZ1bmN0aW9uKGUpe3RoaXMuX2NhbGxiYWNrcz10aGlzLl9jYWxsYmFja3N8fHt9O2Zvcih2YXIgdD1BcnJheShhcmd1bWVudHMubGVuZ3RoLTEpLG49dGhpcy5fY2FsbGJhY2tzW2AkYCtlXSxyPTE7cjxhcmd1bWVudHMubGVuZ3RoO3IrKyl0W3ItMV09YXJndW1lbnRzW3JdO2lmKG4pe249bi5zbGljZSgwKTtmb3IodmFyIHI9MCxpPW4ubGVuZ3RoO3I8aTsrK3IpbltyXS5hcHBseSh0aGlzLHQpfXJldHVybiB0aGlzfSxuLnByb3RvdHlwZS5saXN0ZW5lcnM9ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuX2NhbGxiYWNrcz10aGlzLl9jYWxsYmFja3N8fHt9LHRoaXMuX2NhbGxiYWNrc1tgJGArZV18fFtdfSxuLnByb3RvdHlwZS5oYXNMaXN0ZW5lcnM9ZnVuY3Rpb24oZSl7cmV0dXJuISF0aGlzLmxpc3RlbmVycyhlKS5sZW5ndGh9fSkpLExzPXMoKChlLHQpPT57dmFyIG49e30udG9TdHJpbmc7dC5leHBvcnRzPUFycmF5LmlzQXJyYXl8fGZ1bmN0aW9uKGUpe3JldHVybiBuLmNhbGwoZSk9PWBbb2JqZWN0IEFycmF5XWB9fSkpLFJzPXMoKChlLHQpPT57dC5leHBvcnRzPWE7dmFyIG49dHlwZW9mIEJ1ZmZlcj09YGZ1bmN0aW9uYCYmdHlwZW9mIEJ1ZmZlci5pc0J1ZmZlcj09YGZ1bmN0aW9uYCxyPXR5cGVvZiBBcnJheUJ1ZmZlcj09YGZ1bmN0aW9uYCxpPWZ1bmN0aW9uKGUpe3JldHVybiB0eXBlb2YgQXJyYXlCdWZmZXIuaXNWaWV3PT1gZnVuY3Rpb25gP0FycmF5QnVmZmVyLmlzVmlldyhlKTplLmJ1ZmZlciBpbnN0YW5jZW9mIEFycmF5QnVmZmVyfTtmdW5jdGlvbiBhKGUpe3JldHVybiBuJiZCdWZmZXIuaXNCdWZmZXIoZSl8fHImJihlIGluc3RhbmNlb2YgQXJyYXlCdWZmZXJ8fGkoZSkpfX0pKSx6cz1zKChlPT57dmFyIHQ9THMoKSxuPVJzKCkscj1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLGk9dHlwZW9mIEJsb2I9PWBmdW5jdGlvbmB8fHR5cGVvZiBCbG9iPGB1YCYmci5jYWxsKEJsb2IpPT09YFtvYmplY3QgQmxvYkNvbnN0cnVjdG9yXWAsYT10eXBlb2YgRmlsZT09YGZ1bmN0aW9uYHx8dHlwZW9mIEZpbGU8YHVgJiZyLmNhbGwoRmlsZSk9PT1gW29iamVjdCBGaWxlQ29uc3RydWN0b3JdYDtlLmRlY29uc3RydWN0UGFja2V0PWZ1bmN0aW9uKGUpe3ZhciB0PVtdLG49ZS5kYXRhLHI9ZTtyZXR1cm4gci5kYXRhPW8obix0KSxyLmF0dGFjaG1lbnRzPXQubGVuZ3RoLHtwYWNrZXQ6cixidWZmZXJzOnR9fTtmdW5jdGlvbiBvKGUscil7aWYoIWUpcmV0dXJuIGU7aWYobihlKSl7dmFyIGk9e19wbGFjZWhvbGRlcjohMCxudW06ci5sZW5ndGh9O3JldHVybiByLnB1c2goZSksaX1lbHNlIGlmKHQoZSkpe2Zvcih2YXIgYT1BcnJheShlLmxlbmd0aCkscz0wO3M8ZS5sZW5ndGg7cysrKWFbc109byhlW3NdLHIpO3JldHVybiBhfWVsc2UgaWYodHlwZW9mIGU9PWBvYmplY3RgJiYhKGUgaW5zdGFuY2VvZiBEYXRlKSl7dmFyIGE9e307Zm9yKHZhciBjIGluIGUpYVtjXT1vKGVbY10scik7cmV0dXJuIGF9cmV0dXJuIGV9ZS5yZWNvbnN0cnVjdFBhY2tldD1mdW5jdGlvbihlLHQpe3JldHVybiBlLmRhdGE9cyhlLmRhdGEsdCksZS5hdHRhY2htZW50cz12b2lkIDAsZX07ZnVuY3Rpb24gcyhlLG4pe2lmKCFlKXJldHVybiBlO2lmKGUmJmUuX3BsYWNlaG9sZGVyPT09ITApe2lmKHR5cGVvZiBlLm51bT09YG51bWJlcmAmJmUubnVtPj0wJiZlLm51bTxuLmxlbmd0aClyZXR1cm4gbltlLm51bV07dGhyb3cgRXJyb3IoYGlsbGVnYWwgYXR0YWNobWVudHNgKX1lbHNlIGlmKHQoZSkpZm9yKHZhciByPTA7cjxlLmxlbmd0aDtyKyspZVtyXT1zKGVbcl0sbik7ZWxzZSBpZih0eXBlb2YgZT09YG9iamVjdGApZm9yKHZhciBpIGluIGUpZVtpXT1zKGVbaV0sbik7cmV0dXJuIGV9ZS5yZW1vdmVCbG9icz1mdW5jdGlvbihlLHIpe2Z1bmN0aW9uIG8oZSxsLHUpe2lmKCFlKXJldHVybiBlO2lmKGkmJmUgaW5zdGFuY2VvZiBCbG9ifHxhJiZlIGluc3RhbmNlb2YgRmlsZSl7cysrO3ZhciBkPW5ldyBGaWxlUmVhZGVyO2Qub25sb2FkPWZ1bmN0aW9uKCl7dT91W2xdPXRoaXMucmVzdWx0OmM9dGhpcy5yZXN1bHQsLS1zfHxyKGMpfSxkLnJlYWRBc0FycmF5QnVmZmVyKGUpfWVsc2UgaWYodChlKSlmb3IodmFyIGY9MDtmPGUubGVuZ3RoO2YrKylvKGVbZl0sZixlKTtlbHNlIGlmKHR5cGVvZiBlPT1gb2JqZWN0YCYmIW4oZSkpZm9yKHZhciBwIGluIGUpbyhlW3BdLHAsZSl9dmFyIHM9MCxjPWU7byhjKSxzfHxyKGMpfX0pKSxCcz1zKChlPT57dmFyIHQ9RnMoKShgc29ja2V0LmlvLXBhcnNlcmApLG49SXMoKSxyPXpzKCksaT1McygpLGE9UnMoKTtlLnByb3RvY29sPTQsZS50eXBlcz1bYENPTk5FQ1RgLGBESVNDT05ORUNUYCxgRVZFTlRgLGBBQ0tgLGBFUlJPUmAsYEJJTkFSWV9FVkVOVGAsYEJJTkFSWV9BQ0tgXSxlLkNPTk5FQ1Q9MCxlLkRJU0NPTk5FQ1Q9MSxlLkVWRU5UPTIsZS5BQ0s9MyxlLkVSUk9SPTQsZS5CSU5BUllfRVZFTlQ9NSxlLkJJTkFSWV9BQ0s9NixlLkVuY29kZXI9byxlLkRlY29kZXI9ZDtmdW5jdGlvbiBvKCl7fXZhciBzPWUuRVJST1IrYCJlbmNvZGUgZXJyb3IiYDtvLnByb3RvdHlwZS5lbmNvZGU9ZnVuY3Rpb24obixyKXt0KGBlbmNvZGluZyBwYWNrZXQgJWpgLG4pLGUuQklOQVJZX0VWRU5UPT09bi50eXBlfHxlLkJJTkFSWV9BQ0s9PT1uLnR5cGU/dShuLHIpOnIoW2MobildKX07ZnVuY3Rpb24gYyhuKXt2YXIgcj1gYCtuLnR5cGU7aWYoKGUuQklOQVJZX0VWRU5UPT09bi50eXBlfHxlLkJJTkFSWV9BQ0s9PT1uLnR5cGUpJiYocis9bi5hdHRhY2htZW50cytgLWApLG4ubnNwJiZuLm5zcCE9PWAvYCYmKHIrPW4ubnNwK2AsYCksbi5pZCE9bnVsbCYmKHIrPW4uaWQpLG4uZGF0YSE9bnVsbCl7dmFyIGk9bChuLmRhdGEpO2lmKGkhPT0hMSlyKz1pO2Vsc2UgcmV0dXJuIHN9cmV0dXJuIHQoYGVuY29kZWQgJWogYXMgJXNgLG4scikscn1mdW5jdGlvbiBsKGUpe3RyeXtyZXR1cm4gSlNPTi5zdHJpbmdpZnkoZSl9Y2F0Y2h7cmV0dXJuITF9fWZ1bmN0aW9uIHUoZSx0KXtmdW5jdGlvbiBuKGUpe3ZhciBuPXIuZGVjb25zdHJ1Y3RQYWNrZXQoZSksaT1jKG4ucGFja2V0KSxhPW4uYnVmZmVyczthLnVuc2hpZnQoaSksdChhKX1yLnJlbW92ZUJsb2JzKGUsbil9ZnVuY3Rpb24gZCgpe3RoaXMucmVjb25zdHJ1Y3Rvcj1udWxsfW4oZC5wcm90b3R5cGUpLGQucHJvdG90eXBlLmFkZD1mdW5jdGlvbih0KXt2YXIgbjtpZih0eXBlb2YgdD09YHN0cmluZ2Ape2lmKHRoaXMucmVjb25zdHJ1Y3Rvcil0aHJvdyBFcnJvcihgZ290IHBsYWludGV4dCBkYXRhIHdoZW4gcmVjb25zdHJ1Y3RpbmcgYSBwYWNrZXRgKTtuPWYodCksZS5CSU5BUllfRVZFTlQ9PT1uLnR5cGV8fGUuQklOQVJZX0FDSz09PW4udHlwZT8odGhpcy5yZWNvbnN0cnVjdG9yPW5ldyBtKG4pLHRoaXMucmVjb25zdHJ1Y3Rvci5yZWNvblBhY2suYXR0YWNobWVudHM9PT0wJiZ0aGlzLmVtaXQoYGRlY29kZWRgLG4pKTp0aGlzLmVtaXQoYGRlY29kZWRgLG4pfWVsc2UgaWYoYSh0KXx8dC5iYXNlNjQpaWYodGhpcy5yZWNvbnN0cnVjdG9yKW49dGhpcy5yZWNvbnN0cnVjdG9yLnRha2VCaW5hcnlEYXRhKHQpLG4mJih0aGlzLnJlY29uc3RydWN0b3I9bnVsbCx0aGlzLmVtaXQoYGRlY29kZWRgLG4pKTtlbHNlIHRocm93IEVycm9yKGBnb3QgYmluYXJ5IGRhdGEgd2hlbiBub3QgcmVjb25zdHJ1Y3RpbmcgYSBwYWNrZXRgKTtlbHNlIHRocm93IEVycm9yKGBVbmtub3duIHR5cGU6IGArdCl9O2Z1bmN0aW9uIGYobil7dmFyIHI9MCxhPXt0eXBlOk51bWJlcihuLmNoYXJBdCgwKSl9O2lmKGUudHlwZXNbYS50eXBlXT09bnVsbClyZXR1cm4gaChgdW5rbm93biBwYWNrZXQgdHlwZSBgK2EudHlwZSk7aWYoZS5CSU5BUllfRVZFTlQ9PT1hLnR5cGV8fGUuQklOQVJZX0FDSz09PWEudHlwZSl7Zm9yKHZhciBvPXIrMTtuLmNoYXJBdCgrK3IpIT09YC1gJiZyIT1uLmxlbmd0aDspO3ZhciBzPW4uc3Vic3RyaW5nKG8scik7aWYocyE9TnVtYmVyKHMpfHxuLmNoYXJBdChyKSE9PWAtYCl0aHJvdyBFcnJvcihgSWxsZWdhbCBhdHRhY2htZW50c2ApO2EuYXR0YWNobWVudHM9TnVtYmVyKHMpfWlmKG4uY2hhckF0KHIrMSk9PT1gL2Ape2Zvcih2YXIgbz1yKzE7KytyOyl7dmFyIGM9bi5jaGFyQXQocik7aWYoYz09PWAsYHx8cj09PW4ubGVuZ3RoKWJyZWFrfWEubnNwPW4uc3Vic3RyaW5nKG8scil9ZWxzZSBhLm5zcD1gL2A7dmFyIGw9bi5jaGFyQXQocisxKTtpZihsIT09YGAmJk51bWJlcihsKT09bCl7Zm9yKHZhciBvPXIrMTsrK3I7KXt2YXIgYz1uLmNoYXJBdChyKTtpZihjPT1udWxsfHxOdW1iZXIoYykhPWMpey0tcjticmVha31pZihyPT09bi5sZW5ndGgpYnJlYWt9YS5pZD1OdW1iZXIobi5zdWJzdHJpbmcobyxyKzEpKX1pZihuLmNoYXJBdCgrK3IpKXt2YXIgdT1wKG4uc3Vic3RyKHIpKTtpZih1IT09ITEmJihhLnR5cGU9PT1lLkVSUk9SfHxpKHUpKSlhLmRhdGE9dTtlbHNlIHJldHVybiBoKGBpbnZhbGlkIHBheWxvYWRgKX1yZXR1cm4gdChgZGVjb2RlZCAlcyBhcyAlamAsbixhKSxhfWZ1bmN0aW9uIHAoZSl7dHJ5e3JldHVybiBKU09OLnBhcnNlKGUpfWNhdGNoe3JldHVybiExfX1kLnByb3RvdHlwZS5kZXN0cm95PWZ1bmN0aW9uKCl7dGhpcy5yZWNvbnN0cnVjdG9yJiZ0aGlzLnJlY29uc3RydWN0b3IuZmluaXNoZWRSZWNvbnN0cnVjdGlvbigpfTtmdW5jdGlvbiBtKGUpe3RoaXMucmVjb25QYWNrPWUsdGhpcy5idWZmZXJzPVtdfW0ucHJvdG90eXBlLnRha2VCaW5hcnlEYXRhPWZ1bmN0aW9uKGUpe2lmKHRoaXMuYnVmZmVycy5wdXNoKGUpLHRoaXMuYnVmZmVycy5sZW5ndGg9PT10aGlzLnJlY29uUGFjay5hdHRhY2htZW50cyl7dmFyIHQ9ci5yZWNvbnN0cnVjdFBhY2tldCh0aGlzLnJlY29uUGFjayx0aGlzLmJ1ZmZlcnMpO3JldHVybiB0aGlzLmZpbmlzaGVkUmVjb25zdHJ1Y3Rpb24oKSx0fXJldHVybiBudWxsfSxtLnByb3RvdHlwZS5maW5pc2hlZFJlY29uc3RydWN0aW9uPWZ1bmN0aW9uKCl7dGhpcy5yZWNvblBhY2s9bnVsbCx0aGlzLmJ1ZmZlcnM9W119O2Z1bmN0aW9uIGgodCl7cmV0dXJue3R5cGU6ZS5FUlJPUixkYXRhOmBwYXJzZXIgZXJyb3I6IGArdH19fSkpLFZzPXMoKChlLHQpPT57dHJ5e3QuZXhwb3J0cz10eXBlb2YgWE1MSHR0cFJlcXVlc3Q8YHVgJiZgd2l0aENyZWRlbnRpYWxzYGluIG5ldyBYTUxIdHRwUmVxdWVzdH1jYXRjaHt0LmV4cG9ydHM9ITF9fSkpLEhzPXMoKChlLHQpPT57dC5leHBvcnRzPShmdW5jdGlvbigpe3JldHVybiB0eXBlb2Ygc2VsZjxgdWA/c2VsZjp0eXBlb2Ygd2luZG93PGB1YD93aW5kb3c6RnVuY3Rpb24oYHJldHVybiB0aGlzYCkoKX0pKCl9KSksVXM9cygoKGUsdCk9Pnt2YXIgbj1WcygpLHI9SHMoKTt0LmV4cG9ydHM9ZnVuY3Rpb24oZSl7dmFyIHQ9ZS54ZG9tYWluLGk9ZS54c2NoZW1lLGE9ZS5lbmFibGVzWERSO3RyeXtpZih0eXBlb2YgWE1MSHR0cFJlcXVlc3Q8YHVgJiYoIXR8fG4pKXJldHVybiBuZXcgWE1MSHR0cFJlcXVlc3R9Y2F0Y2h7fXRyeXtpZih0eXBlb2YgWERvbWFpblJlcXVlc3Q8YHVgJiYhaSYmYSlyZXR1cm4gbmV3IFhEb21haW5SZXF1ZXN0fWNhdGNoe31pZighdCl0cnl7cmV0dXJuIG5ldyByW1tgQWN0aXZlYCxgT2JqZWN0YF0uam9pbihgWGApXShgTWljcm9zb2Z0LlhNTEhUVFBgKX1jYXRjaHt9fX0pKSxXcz1zKCgoZSx0KT0+e3QuZXhwb3J0cz1PYmplY3Qua2V5c3x8ZnVuY3Rpb24oZSl7dmFyIHQ9W10sbj1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O2Zvcih2YXIgciBpbiBlKW4uY2FsbChlLHIpJiZ0LnB1c2gocik7cmV0dXJuIHR9fSkpLEdzPXMoKChlLHQpPT57dmFyIG49THMoKSxyPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcsaT10eXBlb2YgQmxvYj09YGZ1bmN0aW9uYHx8dHlwZW9mIEJsb2I8YHVgJiZyLmNhbGwoQmxvYik9PT1gW29iamVjdCBCbG9iQ29uc3RydWN0b3JdYCxhPXR5cGVvZiBGaWxlPT1gZnVuY3Rpb25gfHx0eXBlb2YgRmlsZTxgdWAmJnIuY2FsbChGaWxlKT09PWBbb2JqZWN0IEZpbGVDb25zdHJ1Y3Rvcl1gO3QuZXhwb3J0cz1vO2Z1bmN0aW9uIG8oZSl7aWYoIWV8fHR5cGVvZiBlIT1gb2JqZWN0YClyZXR1cm4hMTtpZihuKGUpKXtmb3IodmFyIHQ9MCxyPWUubGVuZ3RoO3Q8cjt0KyspaWYobyhlW3RdKSlyZXR1cm4hMDtyZXR1cm4hMX1pZih0eXBlb2YgQnVmZmVyPT1gZnVuY3Rpb25gJiZCdWZmZXIuaXNCdWZmZXImJkJ1ZmZlci5pc0J1ZmZlcihlKXx8dHlwZW9mIEFycmF5QnVmZmVyPT1gZnVuY3Rpb25gJiZlIGluc3RhbmNlb2YgQXJyYXlCdWZmZXJ8fGkmJmUgaW5zdGFuY2VvZiBCbG9ifHxhJiZlIGluc3RhbmNlb2YgRmlsZSlyZXR1cm4hMDtpZihlLnRvSlNPTiYmdHlwZW9mIGUudG9KU09OPT1gZnVuY3Rpb25gJiZhcmd1bWVudHMubGVuZ3RoPT09MSlyZXR1cm4gbyhlLnRvSlNPTigpLCEwKTtmb3IodmFyIHMgaW4gZSlpZihPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSxzKSYmbyhlW3NdKSlyZXR1cm4hMDtyZXR1cm4hMX19KSksS3M9cygoKGUsdCk9Pnt0LmV4cG9ydHM9ZnVuY3Rpb24oZSx0LG4pe3ZhciByPWUuYnl0ZUxlbmd0aDtpZih0fHw9MCxufHw9cixlLnNsaWNlKXJldHVybiBlLnNsaWNlKHQsbik7aWYodDwwJiYodCs9ciksbjwwJiYobis9ciksbj5yJiYobj1yKSx0Pj1yfHx0Pj1ufHxyPT09MClyZXR1cm4gbmV3IEFycmF5QnVmZmVyKDApO2Zvcih2YXIgaT1uZXcgVWludDhBcnJheShlKSxhPW5ldyBVaW50OEFycmF5KG4tdCksbz10LHM9MDtvPG47bysrLHMrKylhW3NdPWlbb107cmV0dXJuIGEuYnVmZmVyfX0pKSxxcz1zKCgoZSx0KT0+e3QuZXhwb3J0cz1uO2Z1bmN0aW9uIG4oZSx0LG4pe3ZhciBpPSExO3JldHVybiBufHw9cixhLmNvdW50PWUsZT09PTA/dCgpOmE7ZnVuY3Rpb24gYShlLHIpe2lmKGEuY291bnQ8PTApdGhyb3cgRXJyb3IoYGFmdGVyIGNhbGxlZCB0b28gbWFueSB0aW1lc2ApOy0tYS5jb3VudCxlPyhpPSEwLHQoZSksdD1uKTphLmNvdW50PT09MCYmIWkmJnQobnVsbCxyKX19ZnVuY3Rpb24gcigpe319KSksSnM9cygoKGUsdCk9Pnt2YXIgbj1TdHJpbmcuZnJvbUNoYXJDb2RlO2Z1bmN0aW9uIHIoZSl7Zm9yKHZhciB0PVtdLG49MCxyPWUubGVuZ3RoLGksYTtuPHI7KWk9ZS5jaGFyQ29kZUF0KG4rKyksaT49NTUyOTYmJmk8PTU2MzE5JiZuPHI/KGE9ZS5jaGFyQ29kZUF0KG4rKyksKGEmNjQ1MTIpPT01NjMyMD90LnB1c2goKChpJjEwMjMpPDwxMCkrKGEmMTAyMykrNjU1MzYpOih0LnB1c2goaSksbi0tKSk6dC5wdXNoKGkpO3JldHVybiB0fWZ1bmN0aW9uIGkoZSl7Zm9yKHZhciB0PWUubGVuZ3RoLHI9LTEsaSxhPWBgOysrcjx0OylpPWVbcl0saT42NTUzNSYmKGktPTY1NTM2LGErPW4oaT4+PjEwJjEwMjN8NTUyOTYpLGk9NTYzMjB8aSYxMDIzKSxhKz1uKGkpO3JldHVybiBhfWZ1bmN0aW9uIGEoZSx0KXtpZihlPj01NTI5NiYmZTw9NTczNDMpe2lmKHQpdGhyb3cgRXJyb3IoYExvbmUgc3Vycm9nYXRlIFUrYCtlLnRvU3RyaW5nKDE2KS50b1VwcGVyQ2FzZSgpK2AgaXMgbm90IGEgc2NhbGFyIHZhbHVlYCk7cmV0dXJuITF9cmV0dXJuITB9ZnVuY3Rpb24gbyhlLHQpe3JldHVybiBuKGU+PnQmNjN8MTI4KX1mdW5jdGlvbiBzKGUsdCl7aWYoIShlJjQyOTQ5NjcxNjgpKXJldHVybiBuKGUpO3ZhciByPWBgO3JldHVybiBlJjQyOTQ5NjUyNDg/ZSY0Mjk0OTAxNzYwP2UmNDI5Mjg3MDE0NHx8KHI9bihlPj4xOCY3fDI0MCkscis9byhlLDEyKSxyKz1vKGUsNikpOihhKGUsdCl8fChlPTY1NTMzKSxyPW4oZT4+MTImMTV8MjI0KSxyKz1vKGUsNikpOnI9bihlPj42JjMxfDE5Mikscis9bihlJjYzfDEyOCkscn1mdW5jdGlvbiBjKGUsdCl7dHx8PXt9O2Zvcih2YXIgbj0hMSE9PXQuc3RyaWN0LGk9cihlKSxhPWkubGVuZ3RoLG89LTEsYyxsPWBgOysrbzxhOyljPWlbb10sbCs9cyhjLG4pO3JldHVybiBsfWZ1bmN0aW9uIGwoKXtpZihwPj1mKXRocm93IEVycm9yKGBJbnZhbGlkIGJ5dGUgaW5kZXhgKTt2YXIgZT1kW3BdJjI1NTtpZihwKyssKGUmMTkyKT09MTI4KXJldHVybiBlJjYzO3Rocm93IEVycm9yKGBJbnZhbGlkIGNvbnRpbnVhdGlvbiBieXRlYCl9ZnVuY3Rpb24gdShlKXt2YXIgdCxuLHIsaSxvO2lmKHA+Zil0aHJvdyBFcnJvcihgSW52YWxpZCBieXRlIGluZGV4YCk7aWYocD09ZilyZXR1cm4hMTtpZih0PWRbcF0mMjU1LHArKywhKHQmMTI4KSlyZXR1cm4gdDtpZigodCYyMjQpPT0xOTIpe2lmKG49bCgpLG89KHQmMzEpPDw2fG4sbz49MTI4KXJldHVybiBvO3Rocm93IEVycm9yKGBJbnZhbGlkIGNvbnRpbnVhdGlvbiBieXRlYCl9aWYoKHQmMjQwKT09MjI0KXtpZihuPWwoKSxyPWwoKSxvPSh0JjE1KTw8MTJ8bjw8NnxyLG8+PTIwNDgpcmV0dXJuIGEobyxlKT9vOjY1NTMzO3Rocm93IEVycm9yKGBJbnZhbGlkIGNvbnRpbnVhdGlvbiBieXRlYCl9aWYoKHQmMjQ4KT09MjQwJiYobj1sKCkscj1sKCksaT1sKCksbz0odCY3KTw8MTh8bjw8MTJ8cjw8NnxpLG8+PTY1NTM2JiZvPD0xMTE0MTExKSlyZXR1cm4gbzt0aHJvdyBFcnJvcihgSW52YWxpZCBVVEYtOCBkZXRlY3RlZGApfXZhciBkLGYscDtmdW5jdGlvbiBtKGUsdCl7dHx8PXt9O3ZhciBuPSExIT09dC5zdHJpY3Q7ZD1yKGUpLGY9ZC5sZW5ndGgscD0wO2Zvcih2YXIgYT1bXSxvOyhvPXUobikpIT09ITE7KWEucHVzaChvKTtyZXR1cm4gaShhKX10LmV4cG9ydHM9e3ZlcnNpb246YDIuMS4yYCxlbmNvZGU6YyxkZWNvZGU6bX19KSksWXM9cygoZT0+eyhmdW5jdGlvbih0KXtlLmVuY29kZT1mdW5jdGlvbihlKXt2YXIgbj1uZXcgVWludDhBcnJheShlKSxyLGk9bi5sZW5ndGgsYT1gYDtmb3Iocj0wO3I8aTtyKz0zKWErPXRbbltyXT4+Ml0sYSs9dFsobltyXSYzKTw8NHxuW3IrMV0+PjRdLGErPXRbKG5bcisxXSYxNSk8PDJ8bltyKzJdPj42XSxhKz10W25bcisyXSY2M107cmV0dXJuIGklMz09Mj9hPWEuc3Vic3RyaW5nKDAsYS5sZW5ndGgtMSkrYD1gOmklMz09MSYmKGE9YS5zdWJzdHJpbmcoMCxhLmxlbmd0aC0yKStgPT1gKSxhfSxlLmRlY29kZT1mdW5jdGlvbihlKXt2YXIgbj1lLmxlbmd0aCouNzUscj1lLmxlbmd0aCxpLGE9MCxvLHMsYyxsO2VbZS5sZW5ndGgtMV09PT1gPWAmJihuLS0sZVtlLmxlbmd0aC0yXT09PWA9YCYmbi0tKTt2YXIgdT1uZXcgQXJyYXlCdWZmZXIobiksZD1uZXcgVWludDhBcnJheSh1KTtmb3IoaT0wO2k8cjtpKz00KW89dC5pbmRleE9mKGVbaV0pLHM9dC5pbmRleE9mKGVbaSsxXSksYz10LmluZGV4T2YoZVtpKzJdKSxsPXQuaW5kZXhPZihlW2krM10pLGRbYSsrXT1vPDwyfHM+PjQsZFthKytdPShzJjE1KTw8NHxjPj4yLGRbYSsrXT0oYyYzKTw8NnxsJjYzO3JldHVybiB1fX0pKGBBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvYCl9KSksWHM9cygoKGUsdCk9Pnt2YXIgbj1uPT09dm9pZCAwP3R5cGVvZiBXZWJLaXRCbG9iQnVpbGRlcjxgdWA/V2ViS2l0QmxvYkJ1aWxkZXI6dHlwZW9mIE1TQmxvYkJ1aWxkZXI8YHVgP01TQmxvYkJ1aWxkZXI6dHlwZW9mIE1vekJsb2JCdWlsZGVyPGB1YD9Nb3pCbG9iQnVpbGRlcjohMTpuLHI9KGZ1bmN0aW9uKCl7dHJ5e3JldHVybiBuZXcgQmxvYihbYGhpYF0pLnNpemU9PT0yfWNhdGNoe3JldHVybiExfX0pKCksaT1yJiYoZnVuY3Rpb24oKXt0cnl7cmV0dXJuIG5ldyBCbG9iKFtuZXcgVWludDhBcnJheShbMSwyXSldKS5zaXplPT09Mn1jYXRjaHtyZXR1cm4hMX19KSgpLGE9biYmbi5wcm90b3R5cGUuYXBwZW5kJiZuLnByb3RvdHlwZS5nZXRCbG9iO2Z1bmN0aW9uIG8oZSl7cmV0dXJuIGUubWFwKGZ1bmN0aW9uKGUpe2lmKGUuYnVmZmVyIGluc3RhbmNlb2YgQXJyYXlCdWZmZXIpe3ZhciB0PWUuYnVmZmVyO2lmKGUuYnl0ZUxlbmd0aCE9PXQuYnl0ZUxlbmd0aCl7dmFyIG49bmV3IFVpbnQ4QXJyYXkoZS5ieXRlTGVuZ3RoKTtuLnNldChuZXcgVWludDhBcnJheSh0LGUuYnl0ZU9mZnNldCxlLmJ5dGVMZW5ndGgpKSx0PW4uYnVmZmVyfXJldHVybiB0fXJldHVybiBlfSl9ZnVuY3Rpb24gcyhlLHQpe3R8fD17fTt2YXIgcj1uZXcgbjtyZXR1cm4gbyhlKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3IuYXBwZW5kKGUpfSksdC50eXBlP3IuZ2V0QmxvYih0LnR5cGUpOnIuZ2V0QmxvYigpfWZ1bmN0aW9uIGMoZSx0KXtyZXR1cm4gbmV3IEJsb2IobyhlKSx0fHx7fSl9dHlwZW9mIEJsb2I8YHVgJiYocy5wcm90b3R5cGU9QmxvYi5wcm90b3R5cGUsYy5wcm90b3R5cGU9QmxvYi5wcm90b3R5cGUpLHQuZXhwb3J0cz0oZnVuY3Rpb24oKXtpZihyKXJldHVybiBpP0Jsb2I6YztpZihhKXJldHVybiBzfSkoKX0pKSxacz1zKChlPT57dmFyIHQ9V3MoKSxuPUdzKCkscj1LcygpLGk9cXMoKSxhPUpzKCksbzt0eXBlb2YgQXJyYXlCdWZmZXI8YHVgJiYobz1ZcygpKTt2YXIgcz10eXBlb2YgbmF2aWdhdG9yPGB1YCYmL0FuZHJvaWQvaS50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpLGM9dHlwZW9mIG5hdmlnYXRvcjxgdWAmJi9QaGFudG9tSlMvaS50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpLGw9c3x8YztlLnByb3RvY29sPTM7dmFyIHU9ZS5wYWNrZXRzPXtvcGVuOjAsY2xvc2U6MSxwaW5nOjIscG9uZzozLG1lc3NhZ2U6NCx1cGdyYWRlOjUsbm9vcDo2fSxkPXQodSksZj17dHlwZTpgZXJyb3JgLGRhdGE6YHBhcnNlciBlcnJvcmB9LHA9WHMoKTtlLmVuY29kZVBhY2tldD1mdW5jdGlvbihlLHQsbixyKXt0eXBlb2YgdD09YGZ1bmN0aW9uYCYmKHI9dCx0PSExKSx0eXBlb2Ygbj09YGZ1bmN0aW9uYCYmKHI9bixuPW51bGwpO3ZhciBpPWUuZGF0YT09PXZvaWQgMD92b2lkIDA6ZS5kYXRhLmJ1ZmZlcnx8ZS5kYXRhO2lmKHR5cGVvZiBBcnJheUJ1ZmZlcjxgdWAmJmkgaW5zdGFuY2VvZiBBcnJheUJ1ZmZlcilyZXR1cm4gaChlLHQscik7aWYocCE9PXZvaWQgMCYmaSBpbnN0YW5jZW9mIHApcmV0dXJuIF8oZSx0LHIpO2lmKGkmJmkuYmFzZTY0KXJldHVybiBtKGUscik7dmFyIG89dVtlLnR5cGVdO3JldHVybiBlLmRhdGEhPT12b2lkIDAmJihvKz1uP2EuZW5jb2RlKFN0cmluZyhlLmRhdGEpLHtzdHJpY3Q6ITF9KTpTdHJpbmcoZS5kYXRhKSkscihgYCtvKX07ZnVuY3Rpb24gbSh0LG4pe3JldHVybiBuKGBiYCtlLnBhY2tldHNbdC50eXBlXSt0LmRhdGEuZGF0YSl9ZnVuY3Rpb24gaCh0LG4scil7aWYoIW4pcmV0dXJuIGUuZW5jb2RlQmFzZTY0UGFja2V0KHQscik7dmFyIGk9dC5kYXRhLGE9bmV3IFVpbnQ4QXJyYXkoaSksbz1uZXcgVWludDhBcnJheSgxK2kuYnl0ZUxlbmd0aCk7b1swXT11W3QudHlwZV07Zm9yKHZhciBzPTA7czxhLmxlbmd0aDtzKyspb1tzKzFdPWFbc107cmV0dXJuIHIoby5idWZmZXIpfWZ1bmN0aW9uIGcodCxuLHIpe2lmKCFuKXJldHVybiBlLmVuY29kZUJhc2U2NFBhY2tldCh0LHIpO3ZhciBpPW5ldyBGaWxlUmVhZGVyO3JldHVybiBpLm9ubG9hZD1mdW5jdGlvbigpe2UuZW5jb2RlUGFja2V0KHt0eXBlOnQudHlwZSxkYXRhOmkucmVzdWx0fSxuLCEwLHIpfSxpLnJlYWRBc0FycmF5QnVmZmVyKHQuZGF0YSl9ZnVuY3Rpb24gXyh0LG4scil7aWYoIW4pcmV0dXJuIGUuZW5jb2RlQmFzZTY0UGFja2V0KHQscik7aWYobClyZXR1cm4gZyh0LG4scik7dmFyIGk9bmV3IFVpbnQ4QXJyYXkoMSk7cmV0dXJuIGlbMF09dVt0LnR5cGVdLHIobmV3IHAoW2kuYnVmZmVyLHQuZGF0YV0pKX1lLmVuY29kZUJhc2U2NFBhY2tldD1mdW5jdGlvbih0LG4pe3ZhciByPWBiYCtlLnBhY2tldHNbdC50eXBlXTtpZihwIT09dm9pZCAwJiZ0LmRhdGEgaW5zdGFuY2VvZiBwKXt2YXIgaT1uZXcgRmlsZVJlYWRlcjtyZXR1cm4gaS5vbmxvYWQ9ZnVuY3Rpb24oKXt2YXIgZT1pLnJlc3VsdC5zcGxpdChgLGApWzFdO24ocitlKX0saS5yZWFkQXNEYXRhVVJMKHQuZGF0YSl9dmFyIGE7dHJ5e2E9U3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShudWxsLG5ldyBVaW50OEFycmF5KHQuZGF0YSkpfWNhdGNoe2Zvcih2YXIgbz1uZXcgVWludDhBcnJheSh0LmRhdGEpLHM9QXJyYXkoby5sZW5ndGgpLGM9MDtjPG8ubGVuZ3RoO2MrKylzW2NdPW9bY107YT1TdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KG51bGwscyl9cmV0dXJuIHIrPWJ0b2EoYSksbihyKX0sZS5kZWNvZGVQYWNrZXQ9ZnVuY3Rpb24odCxuLGkpe2lmKHQ9PT12b2lkIDApcmV0dXJuIGY7aWYodHlwZW9mIHQ9PWBzdHJpbmdgKXtpZih0LmNoYXJBdCgwKT09PWBiYClyZXR1cm4gZS5kZWNvZGVCYXNlNjRQYWNrZXQodC5zdWJzdHIoMSksbik7aWYoaSYmKHQ9dih0KSx0PT09ITEpKXJldHVybiBmO3ZhciBhPXQuY2hhckF0KDApO3JldHVybiBOdW1iZXIoYSkhPWF8fCFkW2FdP2Y6dC5sZW5ndGg+MT97dHlwZTpkW2FdLGRhdGE6dC5zdWJzdHJpbmcoMSl9Ont0eXBlOmRbYV19fXZhciBhPW5ldyBVaW50OEFycmF5KHQpWzBdLG89cih0LDEpO3JldHVybiBwJiZuPT09YGJsb2JgJiYobz1uZXcgcChbb10pKSx7dHlwZTpkW2FdLGRhdGE6b319O2Z1bmN0aW9uIHYoZSl7dHJ5e2U9YS5kZWNvZGUoZSx7c3RyaWN0OiExfSl9Y2F0Y2h7cmV0dXJuITF9cmV0dXJuIGV9ZS5kZWNvZGVCYXNlNjRQYWNrZXQ9ZnVuY3Rpb24oZSx0KXt2YXIgbj1kW2UuY2hhckF0KDApXTtpZighbylyZXR1cm57dHlwZTpuLGRhdGE6e2Jhc2U2NDohMCxkYXRhOmUuc3Vic3RyKDEpfX07dmFyIHI9by5kZWNvZGUoZS5zdWJzdHIoMSkpO3JldHVybiB0PT09YGJsb2JgJiZwJiYocj1uZXcgcChbcl0pKSx7dHlwZTpuLGRhdGE6cn19LGUuZW5jb2RlUGF5bG9hZD1mdW5jdGlvbih0LHIsaSl7dHlwZW9mIHI9PWBmdW5jdGlvbmAmJihpPXIscj1udWxsKTt2YXIgYT1uKHQpO2lmKHImJmEpcmV0dXJuIHAmJiFsP2UuZW5jb2RlUGF5bG9hZEFzQmxvYih0LGkpOmUuZW5jb2RlUGF5bG9hZEFzQXJyYXlCdWZmZXIodCxpKTtpZighdC5sZW5ndGgpcmV0dXJuIGkoYDA6YCk7ZnVuY3Rpb24gbyhlKXtyZXR1cm4gZS5sZW5ndGgrYDpgK2V9ZnVuY3Rpb24gcyh0LG4pe2UuZW5jb2RlUGFja2V0KHQsYT9yOiExLCExLGZ1bmN0aW9uKGUpe24obnVsbCxvKGUpKX0pfXkodCxzLGZ1bmN0aW9uKGUsdCl7cmV0dXJuIGkodC5qb2luKGBgKSl9KX07ZnVuY3Rpb24geShlLHQsbil7Zm9yKHZhciByPUFycmF5KGUubGVuZ3RoKSxhPWkoZS5sZW5ndGgsbiksbz1mdW5jdGlvbihlLG4saSl7dChuLGZ1bmN0aW9uKHQsbil7cltlXT1uLGkodCxyKX0pfSxzPTA7czxlLmxlbmd0aDtzKyspbyhzLGVbc10sYSl9ZS5kZWNvZGVQYXlsb2FkPWZ1bmN0aW9uKHQsbixyKXtpZih0eXBlb2YgdCE9YHN0cmluZ2ApcmV0dXJuIGUuZGVjb2RlUGF5bG9hZEFzQmluYXJ5KHQsbixyKTt0eXBlb2Ygbj09YGZ1bmN0aW9uYCYmKHI9bixuPW51bGwpO3ZhciBpO2lmKHQ9PT1gYClyZXR1cm4gcihmLDAsMSk7Zm9yKHZhciBhPWBgLG8scyxjPTAsbD10Lmxlbmd0aDtjPGw7YysrKXt2YXIgdT10LmNoYXJBdChjKTtpZih1IT09YDpgKXthKz11O2NvbnRpbnVlfWlmKGE9PT1gYHx8YSE9KG89TnVtYmVyKGEpKXx8KHM9dC5zdWJzdHIoYysxLG8pLGEhPXMubGVuZ3RoKSlyZXR1cm4gcihmLDAsMSk7aWYocy5sZW5ndGgpe2lmKGk9ZS5kZWNvZGVQYWNrZXQocyxuLCExKSxmLnR5cGU9PT1pLnR5cGUmJmYuZGF0YT09PWkuZGF0YSlyZXR1cm4gcihmLDAsMSk7aWYoITE9PT1yKGksYytvLGwpKXJldHVybn1jKz1vLGE9YGB9aWYoYSE9PWBgKXJldHVybiByKGYsMCwxKX0sZS5lbmNvZGVQYXlsb2FkQXNBcnJheUJ1ZmZlcj1mdW5jdGlvbih0LG4pe2lmKCF0Lmxlbmd0aClyZXR1cm4gbihuZXcgQXJyYXlCdWZmZXIoMCkpO2Z1bmN0aW9uIHIodCxuKXtlLmVuY29kZVBhY2tldCh0LCEwLCEwLGZ1bmN0aW9uKGUpe3JldHVybiBuKG51bGwsZSl9KX15KHQscixmdW5jdGlvbihlLHQpe3ZhciByPXQucmVkdWNlKGZ1bmN0aW9uKGUsdCl7dmFyIG49dHlwZW9mIHQ9PWBzdHJpbmdgP3QubGVuZ3RoOnQuYnl0ZUxlbmd0aDtyZXR1cm4gZStuLnRvU3RyaW5nKCkubGVuZ3RoK24rMn0sMCksaT1uZXcgVWludDhBcnJheShyKSxhPTA7cmV0dXJuIHQuZm9yRWFjaChmdW5jdGlvbihlKXt2YXIgdD10eXBlb2YgZT09YHN0cmluZ2Asbj1lO2lmKHQpe2Zvcih2YXIgcj1uZXcgVWludDhBcnJheShlLmxlbmd0aCksbz0wO288ZS5sZW5ndGg7bysrKXJbb109ZS5jaGFyQ29kZUF0KG8pO249ci5idWZmZXJ9dD9pW2ErK109MDppW2ErK109MTtmb3IodmFyIHM9bi5ieXRlTGVuZ3RoLnRvU3RyaW5nKCksbz0wO288cy5sZW5ndGg7bysrKWlbYSsrXT1wYXJzZUludChzW29dKTtpW2ErK109MjU1O2Zvcih2YXIgcj1uZXcgVWludDhBcnJheShuKSxvPTA7bzxyLmxlbmd0aDtvKyspaVthKytdPXJbb119KSxuKGkuYnVmZmVyKX0pfSxlLmVuY29kZVBheWxvYWRBc0Jsb2I9ZnVuY3Rpb24odCxuKXtmdW5jdGlvbiByKHQsbil7ZS5lbmNvZGVQYWNrZXQodCwhMCwhMCxmdW5jdGlvbihlKXt2YXIgdD1uZXcgVWludDhBcnJheSgxKTtpZih0WzBdPTEsdHlwZW9mIGU9PWBzdHJpbmdgKXtmb3IodmFyIHI9bmV3IFVpbnQ4QXJyYXkoZS5sZW5ndGgpLGk9MDtpPGUubGVuZ3RoO2krKylyW2ldPWUuY2hhckNvZGVBdChpKTtlPXIuYnVmZmVyLHRbMF09MH1mb3IodmFyIGE9KGUgaW5zdGFuY2VvZiBBcnJheUJ1ZmZlcj9lLmJ5dGVMZW5ndGg6ZS5zaXplKS50b1N0cmluZygpLG89bmV3IFVpbnQ4QXJyYXkoYS5sZW5ndGgrMSksaT0wO2k8YS5sZW5ndGg7aSsrKW9baV09cGFyc2VJbnQoYVtpXSk7b1thLmxlbmd0aF09MjU1LHAmJm4obnVsbCxuZXcgcChbdC5idWZmZXIsby5idWZmZXIsZV0pKX0pfXkodCxyLGZ1bmN0aW9uKGUsdCl7cmV0dXJuIG4obmV3IHAodCkpfSl9LGUuZGVjb2RlUGF5bG9hZEFzQmluYXJ5PWZ1bmN0aW9uKHQsbixpKXt0eXBlb2Ygbj09YGZ1bmN0aW9uYCYmKGk9bixuPW51bGwpO2Zvcih2YXIgYT10LG89W107YS5ieXRlTGVuZ3RoPjA7KXtmb3IodmFyIHM9bmV3IFVpbnQ4QXJyYXkoYSksYz1zWzBdPT09MCxsPWBgLHU9MTtzW3VdIT09MjU1O3UrKyl7aWYobC5sZW5ndGg+MzEwKXJldHVybiBpKGYsMCwxKTtsKz1zW3VdfWE9cihhLDIrbC5sZW5ndGgpLGw9cGFyc2VJbnQobCk7dmFyIGQ9cihhLDAsbCk7aWYoYyl0cnl7ZD1TdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KG51bGwsbmV3IFVpbnQ4QXJyYXkoZCkpfWNhdGNoe3ZhciBwPW5ldyBVaW50OEFycmF5KGQpO2Q9YGA7Zm9yKHZhciB1PTA7dTxwLmxlbmd0aDt1KyspZCs9U3RyaW5nLmZyb21DaGFyQ29kZShwW3VdKX1vLnB1c2goZCksYT1yKGEsbCl9dmFyIG09by5sZW5ndGg7by5mb3JFYWNoKGZ1bmN0aW9uKHQscil7aShlLmRlY29kZVBhY2tldCh0LG4sITApLHIsbSl9KX19KSksUXM9cygoKGUsdCk9Pnt2YXIgbj1acygpLHI9SXMoKTt0LmV4cG9ydHM9aTtmdW5jdGlvbiBpKGUpe3RoaXMucGF0aD1lLnBhdGgsdGhpcy5ob3N0bmFtZT1lLmhvc3RuYW1lLHRoaXMucG9ydD1lLnBvcnQsdGhpcy5zZWN1cmU9ZS5zZWN1cmUsdGhpcy5xdWVyeT1lLnF1ZXJ5LHRoaXMudGltZXN0YW1wUGFyYW09ZS50aW1lc3RhbXBQYXJhbSx0aGlzLnRpbWVzdGFtcFJlcXVlc3RzPWUudGltZXN0YW1wUmVxdWVzdHMsdGhpcy5yZWFkeVN0YXRlPWBgLHRoaXMuYWdlbnQ9ZS5hZ2VudHx8ITEsdGhpcy5zb2NrZXQ9ZS5zb2NrZXQsdGhpcy5lbmFibGVzWERSPWUuZW5hYmxlc1hEUix0aGlzLndpdGhDcmVkZW50aWFscz1lLndpdGhDcmVkZW50aWFscyx0aGlzLnBmeD1lLnBmeCx0aGlzLmtleT1lLmtleSx0aGlzLnBhc3NwaHJhc2U9ZS5wYXNzcGhyYXNlLHRoaXMuY2VydD1lLmNlcnQsdGhpcy5jYT1lLmNhLHRoaXMuY2lwaGVycz1lLmNpcGhlcnMsdGhpcy5yZWplY3RVbmF1dGhvcml6ZWQ9ZS5yZWplY3RVbmF1dGhvcml6ZWQsdGhpcy5mb3JjZU5vZGU9ZS5mb3JjZU5vZGUsdGhpcy5pc1JlYWN0TmF0aXZlPWUuaXNSZWFjdE5hdGl2ZSx0aGlzLmV4dHJhSGVhZGVycz1lLmV4dHJhSGVhZGVycyx0aGlzLmxvY2FsQWRkcmVzcz1lLmxvY2FsQWRkcmVzc31yKGkucHJvdG90eXBlKSxpLnByb3RvdHlwZS5vbkVycm9yPWZ1bmN0aW9uKGUsdCl7dmFyIG49RXJyb3IoZSk7cmV0dXJuIG4udHlwZT1gVHJhbnNwb3J0RXJyb3JgLG4uZGVzY3JpcHRpb249dCx0aGlzLmVtaXQoYGVycm9yYCxuKSx0aGlzfSxpLnByb3RvdHlwZS5vcGVuPWZ1bmN0aW9uKCl7cmV0dXJuKHRoaXMucmVhZHlTdGF0ZT09PWBjbG9zZWRgfHx0aGlzLnJlYWR5U3RhdGU9PT1gYCkmJih0aGlzLnJlYWR5U3RhdGU9YG9wZW5pbmdgLHRoaXMuZG9PcGVuKCkpLHRoaXN9LGkucHJvdG90eXBlLmNsb3NlPWZ1bmN0aW9uKCl7cmV0dXJuKHRoaXMucmVhZHlTdGF0ZT09PWBvcGVuaW5nYHx8dGhpcy5yZWFkeVN0YXRlPT09YG9wZW5gKSYmKHRoaXMuZG9DbG9zZSgpLHRoaXMub25DbG9zZSgpKSx0aGlzfSxpLnByb3RvdHlwZS5zZW5kPWZ1bmN0aW9uKGUpe2lmKHRoaXMucmVhZHlTdGF0ZT09PWBvcGVuYCl0aGlzLndyaXRlKGUpO2Vsc2UgdGhyb3cgRXJyb3IoYFRyYW5zcG9ydCBub3Qgb3BlbmApfSxpLnByb3RvdHlwZS5vbk9wZW49ZnVuY3Rpb24oKXt0aGlzLnJlYWR5U3RhdGU9YG9wZW5gLHRoaXMud3JpdGFibGU9ITAsdGhpcy5lbWl0KGBvcGVuYCl9LGkucHJvdG90eXBlLm9uRGF0YT1mdW5jdGlvbihlKXt2YXIgdD1uLmRlY29kZVBhY2tldChlLHRoaXMuc29ja2V0LmJpbmFyeVR5cGUpO3RoaXMub25QYWNrZXQodCl9LGkucHJvdG90eXBlLm9uUGFja2V0PWZ1bmN0aW9uKGUpe3RoaXMuZW1pdChgcGFja2V0YCxlKX0saS5wcm90b3R5cGUub25DbG9zZT1mdW5jdGlvbigpe3RoaXMucmVhZHlTdGF0ZT1gY2xvc2VkYCx0aGlzLmVtaXQoYGNsb3NlYCl9fSkpLCRzPXMoKGU9PntlLmVuY29kZT1mdW5jdGlvbihlKXt2YXIgdD1gYDtmb3IodmFyIG4gaW4gZSllLmhhc093blByb3BlcnR5KG4pJiYodC5sZW5ndGgmJih0Kz1gJmApLHQrPWVuY29kZVVSSUNvbXBvbmVudChuKStgPWArZW5jb2RlVVJJQ29tcG9uZW50KGVbbl0pKTtyZXR1cm4gdH0sZS5kZWNvZGU9ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PXt9LG49ZS5zcGxpdChgJmApLHI9MCxpPW4ubGVuZ3RoO3I8aTtyKyspe3ZhciBhPW5bcl0uc3BsaXQoYD1gKTt0W2RlY29kZVVSSUNvbXBvbmVudChhWzBdKV09ZGVjb2RlVVJJQ29tcG9uZW50KGFbMV0pfXJldHVybiB0fX0pKSxlYz1zKCgoZSx0KT0+e3QuZXhwb3J0cz1mdW5jdGlvbihlLHQpe3ZhciBuPWZ1bmN0aW9uKCl7fTtuLnByb3RvdHlwZT10LnByb3RvdHlwZSxlLnByb3RvdHlwZT1uZXcgbixlLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1lfX0pKSx0Yz1zKCgoZSx0KT0+e3ZhciBuPWAwMTIzNDU2Nzg5QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ei1fYC5zcGxpdChgYCkscj02NCxpPXt9LGE9MCxvPTAscztmdW5jdGlvbiBjKGUpe3ZhciB0PWBgO2RvIHQ9bltlJXJdK3QsZT1NYXRoLmZsb29yKGUvcik7d2hpbGUoZT4wKTtyZXR1cm4gdH1mdW5jdGlvbiBsKGUpe3ZhciB0PTA7Zm9yKG89MDtvPGUubGVuZ3RoO28rKyl0PXQqcitpW2UuY2hhckF0KG8pXTtyZXR1cm4gdH1mdW5jdGlvbiB1KCl7dmFyIGU9YygrbmV3IERhdGUpO3JldHVybiBlPT09cz9lK2AuYCtjKGErKyk6KGE9MCxzPWUpfWZvcig7bzxyO28rKylpW25bb11dPW87dS5lbmNvZGU9Yyx1LmRlY29kZT1sLHQuZXhwb3J0cz11fSkpLG5jPXMoKChlLHQpPT57dmFyIG49UXMoKSxyPSRzKCksaT1acygpLGE9ZWMoKSxvPXRjKCkscz1GcygpKGBlbmdpbmUuaW8tY2xpZW50OnBvbGxpbmdgKTt0LmV4cG9ydHM9bDt2YXIgYz0oZnVuY3Rpb24oKXtyZXR1cm4gbmV3KFVzKCkpKHt4ZG9tYWluOiExfSkucmVzcG9uc2VUeXBlIT1udWxsfSkoKTtmdW5jdGlvbiBsKGUpe3ZhciB0PWUmJmUuZm9yY2VCYXNlNjQ7KCFjfHx0KSYmKHRoaXMuc3VwcG9ydHNCaW5hcnk9ITEpLG4uY2FsbCh0aGlzLGUpfWEobCxuKSxsLnByb3RvdHlwZS5uYW1lPWBwb2xsaW5nYCxsLnByb3RvdHlwZS5kb09wZW49ZnVuY3Rpb24oKXt0aGlzLnBvbGwoKX0sbC5wcm90b3R5cGUucGF1c2U9ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpczt0aGlzLnJlYWR5U3RhdGU9YHBhdXNpbmdgO2Z1bmN0aW9uIG4oKXtzKGBwYXVzZWRgKSx0LnJlYWR5U3RhdGU9YHBhdXNlZGAsZSgpfWlmKHRoaXMucG9sbGluZ3x8IXRoaXMud3JpdGFibGUpe3ZhciByPTA7dGhpcy5wb2xsaW5nJiYocyhgd2UgYXJlIGN1cnJlbnRseSBwb2xsaW5nIC0gd2FpdGluZyB0byBwYXVzZWApLHIrKyx0aGlzLm9uY2UoYHBvbGxDb21wbGV0ZWAsZnVuY3Rpb24oKXtzKGBwcmUtcGF1c2UgcG9sbGluZyBjb21wbGV0ZWApLC0tcnx8bigpfSkpLHRoaXMud3JpdGFibGV8fChzKGB3ZSBhcmUgY3VycmVudGx5IHdyaXRpbmcgLSB3YWl0aW5nIHRvIHBhdXNlYCkscisrLHRoaXMub25jZShgZHJhaW5gLGZ1bmN0aW9uKCl7cyhgcHJlLXBhdXNlIHdyaXRpbmcgY29tcGxldGVgKSwtLXJ8fG4oKX0pKX1lbHNlIG4oKX0sbC5wcm90b3R5cGUucG9sbD1mdW5jdGlvbigpe3MoYHBvbGxpbmdgKSx0aGlzLnBvbGxpbmc9ITAsdGhpcy5kb1BvbGwoKSx0aGlzLmVtaXQoYHBvbGxgKX0sbC5wcm90b3R5cGUub25EYXRhPWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXM7cyhgcG9sbGluZyBnb3QgZGF0YSAlc2AsZSksaS5kZWNvZGVQYXlsb2FkKGUsdGhpcy5zb2NrZXQuYmluYXJ5VHlwZSxmdW5jdGlvbihlLG4scil7aWYodC5yZWFkeVN0YXRlPT09YG9wZW5pbmdgJiZ0Lm9uT3BlbigpLGUudHlwZT09PWBjbG9zZWApcmV0dXJuIHQub25DbG9zZSgpLCExO3Qub25QYWNrZXQoZSl9KSx0aGlzLnJlYWR5U3RhdGUhPT1gY2xvc2VkYCYmKHRoaXMucG9sbGluZz0hMSx0aGlzLmVtaXQoYHBvbGxDb21wbGV0ZWApLHRoaXMucmVhZHlTdGF0ZT09PWBvcGVuYD90aGlzLnBvbGwoKTpzKGBpZ25vcmluZyBwb2xsIC0gdHJhbnNwb3J0IHN0YXRlICIlcyJgLHRoaXMucmVhZHlTdGF0ZSkpfSxsLnByb3RvdHlwZS5kb0Nsb3NlPWZ1bmN0aW9uKCl7dmFyIGU9dGhpcztmdW5jdGlvbiB0KCl7cyhgd3JpdGluZyBjbG9zZSBwYWNrZXRgKSxlLndyaXRlKFt7dHlwZTpgY2xvc2VgfV0pfXRoaXMucmVhZHlTdGF0ZT09PWBvcGVuYD8ocyhgdHJhbnNwb3J0IG9wZW4gLSBjbG9zaW5nYCksdCgpKToocyhgdHJhbnNwb3J0IG5vdCBvcGVuIC0gZGVmZXJyaW5nIGNsb3NlYCksdGhpcy5vbmNlKGBvcGVuYCx0KSl9LGwucHJvdG90eXBlLndyaXRlPWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXM7dGhpcy53cml0YWJsZT0hMTt2YXIgbj1mdW5jdGlvbigpe3Qud3JpdGFibGU9ITAsdC5lbWl0KGBkcmFpbmApfTtpLmVuY29kZVBheWxvYWQoZSx0aGlzLnN1cHBvcnRzQmluYXJ5LGZ1bmN0aW9uKGUpe3QuZG9Xcml0ZShlLG4pfSl9LGwucHJvdG90eXBlLnVyaT1mdW5jdGlvbigpe3ZhciBlPXRoaXMucXVlcnl8fHt9LHQ9dGhpcy5zZWN1cmU/YGh0dHBzYDpgaHR0cGAsbj1gYDshMSE9PXRoaXMudGltZXN0YW1wUmVxdWVzdHMmJihlW3RoaXMudGltZXN0YW1wUGFyYW1dPW8oKSksIXRoaXMuc3VwcG9ydHNCaW5hcnkmJiFlLnNpZCYmKGUuYjY0PTEpLGU9ci5lbmNvZGUoZSksdGhpcy5wb3J0JiYodD09PWBodHRwc2AmJk51bWJlcih0aGlzLnBvcnQpIT09NDQzfHx0PT09YGh0dHBgJiZOdW1iZXIodGhpcy5wb3J0KSE9PTgwKSYmKG49YDpgK3RoaXMucG9ydCksZS5sZW5ndGgmJihlPWA/YCtlKTt2YXIgaT10aGlzLmhvc3RuYW1lLmluZGV4T2YoYDpgKSE9PS0xO3JldHVybiB0K2A6Ly9gKyhpP2BbYCt0aGlzLmhvc3RuYW1lK2BdYDp0aGlzLmhvc3RuYW1lKStuK3RoaXMucGF0aCtlfX0pKSxyYz1zKCgoZSx0KT0+e3ZhciBuPVVzKCkscj1uYygpLGk9SXMoKSxhPWVjKCksbz1GcygpKGBlbmdpbmUuaW8tY2xpZW50OnBvbGxpbmcteGhyYCkscz1IcygpO3QuZXhwb3J0cz1sLHQuZXhwb3J0cy5SZXF1ZXN0PXU7ZnVuY3Rpb24gYygpe31mdW5jdGlvbiBsKGUpe2lmKHIuY2FsbCh0aGlzLGUpLHRoaXMucmVxdWVzdFRpbWVvdXQ9ZS5yZXF1ZXN0VGltZW91dCx0aGlzLmV4dHJhSGVhZGVycz1lLmV4dHJhSGVhZGVycyx0eXBlb2YgbG9jYXRpb248YHVgKXt2YXIgdD1sb2NhdGlvbi5wcm90b2NvbD09PWBodHRwczpgLG49bG9jYXRpb24ucG9ydDtufHw9dD80NDM6ODAsdGhpcy54ZD10eXBlb2YgbG9jYXRpb248YHVgJiZlLmhvc3RuYW1lIT09bG9jYXRpb24uaG9zdG5hbWV8fG4hPT1lLnBvcnQsdGhpcy54cz1lLnNlY3VyZSE9PXR9fWEobCxyKSxsLnByb3RvdHlwZS5zdXBwb3J0c0JpbmFyeT0hMCxsLnByb3RvdHlwZS5yZXF1ZXN0PWZ1bmN0aW9uKGUpe3JldHVybiBlfHw9e30sZS51cmk9dGhpcy51cmkoKSxlLnhkPXRoaXMueGQsZS54cz10aGlzLnhzLGUuYWdlbnQ9dGhpcy5hZ2VudHx8ITEsZS5zdXBwb3J0c0JpbmFyeT10aGlzLnN1cHBvcnRzQmluYXJ5LGUuZW5hYmxlc1hEUj10aGlzLmVuYWJsZXNYRFIsZS53aXRoQ3JlZGVudGlhbHM9dGhpcy53aXRoQ3JlZGVudGlhbHMsZS5wZng9dGhpcy5wZngsZS5rZXk9dGhpcy5rZXksZS5wYXNzcGhyYXNlPXRoaXMucGFzc3BocmFzZSxlLmNlcnQ9dGhpcy5jZXJ0LGUuY2E9dGhpcy5jYSxlLmNpcGhlcnM9dGhpcy5jaXBoZXJzLGUucmVqZWN0VW5hdXRob3JpemVkPXRoaXMucmVqZWN0VW5hdXRob3JpemVkLGUucmVxdWVzdFRpbWVvdXQ9dGhpcy5yZXF1ZXN0VGltZW91dCxlLmV4dHJhSGVhZGVycz10aGlzLmV4dHJhSGVhZGVycyxuZXcgdShlKX0sbC5wcm90b3R5cGUuZG9Xcml0ZT1mdW5jdGlvbihlLHQpe3ZhciBuPXR5cGVvZiBlIT1gc3RyaW5nYCYmZSE9PXZvaWQgMCxyPXRoaXMucmVxdWVzdCh7bWV0aG9kOmBQT1NUYCxkYXRhOmUsaXNCaW5hcnk6bn0pLGk9dGhpcztyLm9uKGBzdWNjZXNzYCx0KSxyLm9uKGBlcnJvcmAsZnVuY3Rpb24oZSl7aS5vbkVycm9yKGB4aHIgcG9zdCBlcnJvcmAsZSl9KSx0aGlzLnNlbmRYaHI9cn0sbC5wcm90b3R5cGUuZG9Qb2xsPWZ1bmN0aW9uKCl7byhgeGhyIHBvbGxgKTt2YXIgZT10aGlzLnJlcXVlc3QoKSx0PXRoaXM7ZS5vbihgZGF0YWAsZnVuY3Rpb24oZSl7dC5vbkRhdGEoZSl9KSxlLm9uKGBlcnJvcmAsZnVuY3Rpb24oZSl7dC5vbkVycm9yKGB4aHIgcG9sbCBlcnJvcmAsZSl9KSx0aGlzLnBvbGxYaHI9ZX07ZnVuY3Rpb24gdShlKXt0aGlzLm1ldGhvZD1lLm1ldGhvZHx8YEdFVGAsdGhpcy51cmk9ZS51cmksdGhpcy54ZD0hIWUueGQsdGhpcy54cz0hIWUueHMsdGhpcy5hc3luYz0hMSE9PWUuYXN5bmMsdGhpcy5kYXRhPWUuZGF0YT09PXZvaWQgMD9udWxsOmUuZGF0YSx0aGlzLmFnZW50PWUuYWdlbnQsdGhpcy5pc0JpbmFyeT1lLmlzQmluYXJ5LHRoaXMuc3VwcG9ydHNCaW5hcnk9ZS5zdXBwb3J0c0JpbmFyeSx0aGlzLmVuYWJsZXNYRFI9ZS5lbmFibGVzWERSLHRoaXMud2l0aENyZWRlbnRpYWxzPWUud2l0aENyZWRlbnRpYWxzLHRoaXMucmVxdWVzdFRpbWVvdXQ9ZS5yZXF1ZXN0VGltZW91dCx0aGlzLnBmeD1lLnBmeCx0aGlzLmtleT1lLmtleSx0aGlzLnBhc3NwaHJhc2U9ZS5wYXNzcGhyYXNlLHRoaXMuY2VydD1lLmNlcnQsdGhpcy5jYT1lLmNhLHRoaXMuY2lwaGVycz1lLmNpcGhlcnMsdGhpcy5yZWplY3RVbmF1dGhvcml6ZWQ9ZS5yZWplY3RVbmF1dGhvcml6ZWQsdGhpcy5leHRyYUhlYWRlcnM9ZS5leHRyYUhlYWRlcnMsdGhpcy5jcmVhdGUoKX1pZihpKHUucHJvdG90eXBlKSx1LnByb3RvdHlwZS5jcmVhdGU9ZnVuY3Rpb24oKXt2YXIgZT17YWdlbnQ6dGhpcy5hZ2VudCx4ZG9tYWluOnRoaXMueGQseHNjaGVtZTp0aGlzLnhzLGVuYWJsZXNYRFI6dGhpcy5lbmFibGVzWERSfTtlLnBmeD10aGlzLnBmeCxlLmtleT10aGlzLmtleSxlLnBhc3NwaHJhc2U9dGhpcy5wYXNzcGhyYXNlLGUuY2VydD10aGlzLmNlcnQsZS5jYT10aGlzLmNhLGUuY2lwaGVycz10aGlzLmNpcGhlcnMsZS5yZWplY3RVbmF1dGhvcml6ZWQ9dGhpcy5yZWplY3RVbmF1dGhvcml6ZWQ7dmFyIHQ9dGhpcy54aHI9bmV3IG4oZSkscj10aGlzO3RyeXtvKGB4aHIgb3BlbiAlczogJXNgLHRoaXMubWV0aG9kLHRoaXMudXJpKSx0Lm9wZW4odGhpcy5tZXRob2QsdGhpcy51cmksdGhpcy5hc3luYyk7dHJ5e2lmKHRoaXMuZXh0cmFIZWFkZXJzKWZvcih2YXIgaSBpbiB0LnNldERpc2FibGVIZWFkZXJDaGVjayYmdC5zZXREaXNhYmxlSGVhZGVyQ2hlY2soITApLHRoaXMuZXh0cmFIZWFkZXJzKXRoaXMuZXh0cmFIZWFkZXJzLmhhc093blByb3BlcnR5KGkpJiZ0LnNldFJlcXVlc3RIZWFkZXIoaSx0aGlzLmV4dHJhSGVhZGVyc1tpXSl9Y2F0Y2h7fWlmKHRoaXMubWV0aG9kPT09YFBPU1RgKXRyeXt0aGlzLmlzQmluYXJ5P3Quc2V0UmVxdWVzdEhlYWRlcihgQ29udGVudC10eXBlYCxgYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtYCk6dC5zZXRSZXF1ZXN0SGVhZGVyKGBDb250ZW50LXR5cGVgLGB0ZXh0L3BsYWluO2NoYXJzZXQ9VVRGLThgKX1jYXRjaHt9dHJ5e3Quc2V0UmVxdWVzdEhlYWRlcihgQWNjZXB0YCxgKi8qYCl9Y2F0Y2h7fWB3aXRoQ3JlZGVudGlhbHNgaW4gdCYmKHQud2l0aENyZWRlbnRpYWxzPXRoaXMud2l0aENyZWRlbnRpYWxzKSx0aGlzLnJlcXVlc3RUaW1lb3V0JiYodC50aW1lb3V0PXRoaXMucmVxdWVzdFRpbWVvdXQpLHRoaXMuaGFzWERSKCk/KHQub25sb2FkPWZ1bmN0aW9uKCl7ci5vbkxvYWQoKX0sdC5vbmVycm9yPWZ1bmN0aW9uKCl7ci5vbkVycm9yKHQucmVzcG9uc2VUZXh0KX0pOnQub25yZWFkeXN0YXRlY2hhbmdlPWZ1bmN0aW9uKCl7aWYodC5yZWFkeVN0YXRlPT09Mil0cnl7dmFyIGU9dC5nZXRSZXNwb25zZUhlYWRlcihgQ29udGVudC1UeXBlYCk7KHIuc3VwcG9ydHNCaW5hcnkmJmU9PT1gYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtYHx8ZT09PWBhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW07IGNoYXJzZXQ9VVRGLThgKSYmKHQucmVzcG9uc2VUeXBlPWBhcnJheWJ1ZmZlcmApfWNhdGNoe310LnJlYWR5U3RhdGU9PT00JiYodC5zdGF0dXM9PT0yMDB8fHQuc3RhdHVzPT09MTIyMz9yLm9uTG9hZCgpOnNldFRpbWVvdXQoZnVuY3Rpb24oKXtyLm9uRXJyb3IodHlwZW9mIHQuc3RhdHVzPT1gbnVtYmVyYD90LnN0YXR1czowKX0sMCkpfSxvKGB4aHIgZGF0YSAlc2AsdGhpcy5kYXRhKSx0LnNlbmQodGhpcy5kYXRhKX1jYXRjaChlKXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ci5vbkVycm9yKGUpfSwwKTtyZXR1cm59dHlwZW9mIGRvY3VtZW50PGB1YCYmKHRoaXMuaW5kZXg9dS5yZXF1ZXN0c0NvdW50KyssdS5yZXF1ZXN0c1t0aGlzLmluZGV4XT10aGlzKX0sdS5wcm90b3R5cGUub25TdWNjZXNzPWZ1bmN0aW9uKCl7dGhpcy5lbWl0KGBzdWNjZXNzYCksdGhpcy5jbGVhbnVwKCl9LHUucHJvdG90eXBlLm9uRGF0YT1mdW5jdGlvbihlKXt0aGlzLmVtaXQoYGRhdGFgLGUpLHRoaXMub25TdWNjZXNzKCl9LHUucHJvdG90eXBlLm9uRXJyb3I9ZnVuY3Rpb24oZSl7dGhpcy5lbWl0KGBlcnJvcmAsZSksdGhpcy5jbGVhbnVwKCEwKX0sdS5wcm90b3R5cGUuY2xlYW51cD1mdW5jdGlvbihlKXtpZighKHRoaXMueGhyPT09dm9pZCAwfHx0aGlzLnhocj09PW51bGwpKXtpZih0aGlzLmhhc1hEUigpP3RoaXMueGhyLm9ubG9hZD10aGlzLnhoci5vbmVycm9yPWM6dGhpcy54aHIub25yZWFkeXN0YXRlY2hhbmdlPWMsZSl0cnl7dGhpcy54aHIuYWJvcnQoKX1jYXRjaHt9dHlwZW9mIGRvY3VtZW50PGB1YCYmZGVsZXRlIHUucmVxdWVzdHNbdGhpcy5pbmRleF0sdGhpcy54aHI9bnVsbH19LHUucHJvdG90eXBlLm9uTG9hZD1mdW5jdGlvbigpe3ZhciBlO3RyeXt2YXIgdDt0cnl7dD10aGlzLnhoci5nZXRSZXNwb25zZUhlYWRlcihgQ29udGVudC1UeXBlYCl9Y2F0Y2h7fWU9KHQ9PT1gYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtYHx8dD09PWBhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW07IGNoYXJzZXQ9VVRGLThgKSYmdGhpcy54aHIucmVzcG9uc2V8fHRoaXMueGhyLnJlc3BvbnNlVGV4dH1jYXRjaChlKXt0aGlzLm9uRXJyb3IoZSl9ZSE9bnVsbCYmdGhpcy5vbkRhdGEoZSl9LHUucHJvdG90eXBlLmhhc1hEUj1mdW5jdGlvbigpe3JldHVybiB0eXBlb2YgWERvbWFpblJlcXVlc3Q8YHVgJiYhdGhpcy54cyYmdGhpcy5lbmFibGVzWERSfSx1LnByb3RvdHlwZS5hYm9ydD1mdW5jdGlvbigpe3RoaXMuY2xlYW51cCgpfSx1LnJlcXVlc3RzQ291bnQ9MCx1LnJlcXVlc3RzPXt9LHR5cGVvZiBkb2N1bWVudDxgdWApe2lmKHR5cGVvZiBhdHRhY2hFdmVudD09YGZ1bmN0aW9uYClhdHRhY2hFdmVudChgb251bmxvYWRgLGYpO2Vsc2UgaWYodHlwZW9mIGFkZEV2ZW50TGlzdGVuZXI9PWBmdW5jdGlvbmApe3ZhciBkPWBvbnBhZ2VoaWRlYGluIHM/YHBhZ2VoaWRlYDpgdW5sb2FkYDthZGRFdmVudExpc3RlbmVyKGQsZiwhMSl9fWZ1bmN0aW9uIGYoKXtmb3IodmFyIGUgaW4gdS5yZXF1ZXN0cyl1LnJlcXVlc3RzLmhhc093blByb3BlcnR5KGUpJiZ1LnJlcXVlc3RzW2VdLmFib3J0KCl9fSkpLGljPXMoKChlLHQpPT57dmFyIG49bmMoKSxyPWVjKCksaT1IcygpO3QuZXhwb3J0cz1sO3ZhciBhPS9cbi9nLG89L1xcbi9nLHM7ZnVuY3Rpb24gYygpe31mdW5jdGlvbiBsKGUpe24uY2FsbCh0aGlzLGUpLHRoaXMucXVlcnk9dGhpcy5xdWVyeXx8e30sc3x8PWkuX19fZWlvPWkuX19fZWlvfHxbXSx0aGlzLmluZGV4PXMubGVuZ3RoO3ZhciB0PXRoaXM7cy5wdXNoKGZ1bmN0aW9uKGUpe3Qub25EYXRhKGUpfSksdGhpcy5xdWVyeS5qPXRoaXMuaW5kZXgsdHlwZW9mIGFkZEV2ZW50TGlzdGVuZXI9PWBmdW5jdGlvbmAmJmFkZEV2ZW50TGlzdGVuZXIoYGJlZm9yZXVubG9hZGAsZnVuY3Rpb24oKXt0LnNjcmlwdCYmKHQuc2NyaXB0Lm9uZXJyb3I9Yyl9LCExKX1yKGwsbiksbC5wcm90b3R5cGUuc3VwcG9ydHNCaW5hcnk9ITEsbC5wcm90b3R5cGUuZG9DbG9zZT1mdW5jdGlvbigpe3RoaXMuc2NyaXB0JiY9KHRoaXMuc2NyaXB0LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodGhpcy5zY3JpcHQpLG51bGwpLHRoaXMuZm9ybSYmKHRoaXMuZm9ybS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHRoaXMuZm9ybSksdGhpcy5mb3JtPW51bGwsdGhpcy5pZnJhbWU9bnVsbCksbi5wcm90b3R5cGUuZG9DbG9zZS5jYWxsKHRoaXMpfSxsLnByb3RvdHlwZS5kb1BvbGw9ZnVuY3Rpb24oKXt2YXIgZT10aGlzLHQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChgc2NyaXB0YCk7dGhpcy5zY3JpcHQmJj0odGhpcy5zY3JpcHQucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0aGlzLnNjcmlwdCksbnVsbCksdC5hc3luYz0hMCx0LnNyYz10aGlzLnVyaSgpLHQub25lcnJvcj1mdW5jdGlvbih0KXtlLm9uRXJyb3IoYGpzb25wIHBvbGwgZXJyb3JgLHQpfTt2YXIgbj1kb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZShgc2NyaXB0YClbMF07bj9uLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKHQsbik6KGRvY3VtZW50LmhlYWR8fGRvY3VtZW50LmJvZHkpLmFwcGVuZENoaWxkKHQpLHRoaXMuc2NyaXB0PXQsdHlwZW9mIG5hdmlnYXRvcjxgdWAmJi9nZWNrby9pLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCkmJnNldFRpbWVvdXQoZnVuY3Rpb24oKXt2YXIgZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KGBpZnJhbWVgKTtkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGUpLGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZSl9LDEwMCl9LGwucHJvdG90eXBlLmRvV3JpdGU9ZnVuY3Rpb24oZSx0KXt2YXIgbj10aGlzO2lmKCF0aGlzLmZvcm0pe3ZhciByPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoYGZvcm1gKSxpPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoYHRleHRhcmVhYCkscz10aGlzLmlmcmFtZUlkPWBlaW9faWZyYW1lX2ArdGhpcy5pbmRleCxjO3IuY2xhc3NOYW1lPWBzb2NrZXRpb2Asci5zdHlsZS5wb3NpdGlvbj1gYWJzb2x1dGVgLHIuc3R5bGUudG9wPWAtMTAwMHB4YCxyLnN0eWxlLmxlZnQ9YC0xMDAwcHhgLHIudGFyZ2V0PXMsci5tZXRob2Q9YFBPU1RgLHIuc2V0QXR0cmlidXRlKGBhY2NlcHQtY2hhcnNldGAsYHV0Zi04YCksaS5uYW1lPWBkYCxyLmFwcGVuZENoaWxkKGkpLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQociksdGhpcy5mb3JtPXIsdGhpcy5hcmVhPWl9dGhpcy5mb3JtLmFjdGlvbj10aGlzLnVyaSgpO2Z1bmN0aW9uIGwoKXt1KCksdCgpfWZ1bmN0aW9uIHUoKXtpZihuLmlmcmFtZSl0cnl7bi5mb3JtLnJlbW92ZUNoaWxkKG4uaWZyYW1lKX1jYXRjaChlKXtuLm9uRXJyb3IoYGpzb25wIHBvbGxpbmcgaWZyYW1lIHJlbW92YWwgZXJyb3JgLGUpfXRyeXt2YXIgZT1gPGlmcmFtZSBzcmM9ImphdmFzY3JpcHQ6MCIgbmFtZT0iYCtuLmlmcmFtZUlkK2AiPmA7Yz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KGUpfWNhdGNoe2M9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChgaWZyYW1lYCksYy5uYW1lPW4uaWZyYW1lSWQsYy5zcmM9YGphdmFzY3JpcHQ6MGB9Yy5pZD1uLmlmcmFtZUlkLG4uZm9ybS5hcHBlbmRDaGlsZChjKSxuLmlmcmFtZT1jfXUoKSxlPWUucmVwbGFjZShvLGBcXApgKSx0aGlzLmFyZWEudmFsdWU9ZS5yZXBsYWNlKGEsYFxcbmApO3RyeXt0aGlzLmZvcm0uc3VibWl0KCl9Y2F0Y2h7fXRoaXMuaWZyYW1lLmF0dGFjaEV2ZW50P3RoaXMuaWZyYW1lLm9ucmVhZHlzdGF0ZWNoYW5nZT1mdW5jdGlvbigpe24uaWZyYW1lLnJlYWR5U3RhdGU9PT1gY29tcGxldGVgJiZsKCl9OnRoaXMuaWZyYW1lLm9ubG9hZD1sfX0pKSxhYz1zKCgoZSx0KT0+e3QuZXhwb3J0cz17fX0pKSxvYz1zKCgoZSx0KT0+e3ZhciBuPVFzKCkscj1acygpLGk9JHMoKSxhPWVjKCksbz10YygpLHM9RnMoKShgZW5naW5lLmlvLWNsaWVudDp3ZWJzb2NrZXRgKSxjLGw7aWYodHlwZW9mIFdlYlNvY2tldDxgdWA/Yz1XZWJTb2NrZXQ6dHlwZW9mIHNlbGY8YHVgJiYoYz1zZWxmLldlYlNvY2tldHx8c2VsZi5Nb3pXZWJTb2NrZXQpLHR5cGVvZiB3aW5kb3c+YHVgKXRyeXtsPWFjKCl9Y2F0Y2h7fXZhciB1PWN8fGw7dC5leHBvcnRzPWQ7ZnVuY3Rpb24gZChlKXtlJiZlLmZvcmNlQmFzZTY0JiYodGhpcy5zdXBwb3J0c0JpbmFyeT0hMSksdGhpcy5wZXJNZXNzYWdlRGVmbGF0ZT1lLnBlck1lc3NhZ2VEZWZsYXRlLHRoaXMudXNpbmdCcm93c2VyV2ViU29ja2V0PWMmJiFlLmZvcmNlTm9kZSx0aGlzLnByb3RvY29scz1lLnByb3RvY29scyx0aGlzLnVzaW5nQnJvd3NlcldlYlNvY2tldHx8KHU9bCksbi5jYWxsKHRoaXMsZSl9YShkLG4pLGQucHJvdG90eXBlLm5hbWU9YHdlYnNvY2tldGAsZC5wcm90b3R5cGUuc3VwcG9ydHNCaW5hcnk9ITAsZC5wcm90b3R5cGUuZG9PcGVuPWZ1bmN0aW9uKCl7aWYodGhpcy5jaGVjaygpKXt2YXIgZT10aGlzLnVyaSgpLHQ9dGhpcy5wcm90b2NvbHMsbj17fTt0aGlzLmlzUmVhY3ROYXRpdmV8fChuLmFnZW50PXRoaXMuYWdlbnQsbi5wZXJNZXNzYWdlRGVmbGF0ZT10aGlzLnBlck1lc3NhZ2VEZWZsYXRlLG4ucGZ4PXRoaXMucGZ4LG4ua2V5PXRoaXMua2V5LG4ucGFzc3BocmFzZT10aGlzLnBhc3NwaHJhc2Usbi5jZXJ0PXRoaXMuY2VydCxuLmNhPXRoaXMuY2Esbi5jaXBoZXJzPXRoaXMuY2lwaGVycyxuLnJlamVjdFVuYXV0aG9yaXplZD10aGlzLnJlamVjdFVuYXV0aG9yaXplZCksdGhpcy5leHRyYUhlYWRlcnMmJihuLmhlYWRlcnM9dGhpcy5leHRyYUhlYWRlcnMpLHRoaXMubG9jYWxBZGRyZXNzJiYobi5sb2NhbEFkZHJlc3M9dGhpcy5sb2NhbEFkZHJlc3MpO3RyeXt0aGlzLndzPXRoaXMudXNpbmdCcm93c2VyV2ViU29ja2V0JiYhdGhpcy5pc1JlYWN0TmF0aXZlP3Q/bmV3IHUoZSx0KTpuZXcgdShlKTpuZXcgdShlLHQsbil9Y2F0Y2goZSl7cmV0dXJuIHRoaXMuZW1pdChgZXJyb3JgLGUpfXRoaXMud3MuYmluYXJ5VHlwZT09PXZvaWQgMCYmKHRoaXMuc3VwcG9ydHNCaW5hcnk9ITEpLHRoaXMud3Muc3VwcG9ydHMmJnRoaXMud3Muc3VwcG9ydHMuYmluYXJ5Pyh0aGlzLnN1cHBvcnRzQmluYXJ5PSEwLHRoaXMud3MuYmluYXJ5VHlwZT1gbm9kZWJ1ZmZlcmApOnRoaXMud3MuYmluYXJ5VHlwZT1gYXJyYXlidWZmZXJgLHRoaXMuYWRkRXZlbnRMaXN0ZW5lcnMoKX19LGQucHJvdG90eXBlLmFkZEV2ZW50TGlzdGVuZXJzPWZ1bmN0aW9uKCl7dmFyIGU9dGhpczt0aGlzLndzLm9ub3Blbj1mdW5jdGlvbigpe2Uub25PcGVuKCl9LHRoaXMud3Mub25jbG9zZT1mdW5jdGlvbigpe2Uub25DbG9zZSgpfSx0aGlzLndzLm9ubWVzc2FnZT1mdW5jdGlvbih0KXtlLm9uRGF0YSh0LmRhdGEpfSx0aGlzLndzLm9uZXJyb3I9ZnVuY3Rpb24odCl7ZS5vbkVycm9yKGB3ZWJzb2NrZXQgZXJyb3JgLHQpfX0sZC5wcm90b3R5cGUud3JpdGU9ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpczt0aGlzLndyaXRhYmxlPSExO2Zvcih2YXIgbj1lLmxlbmd0aCxpPTAsYT1uO2k8YTtpKyspKGZ1bmN0aW9uKGUpe3IuZW5jb2RlUGFja2V0KGUsdC5zdXBwb3J0c0JpbmFyeSxmdW5jdGlvbihyKXtpZighdC51c2luZ0Jyb3dzZXJXZWJTb2NrZXQpe3ZhciBpPXt9O2Uub3B0aW9ucyYmKGkuY29tcHJlc3M9ZS5vcHRpb25zLmNvbXByZXNzKSx0LnBlck1lc3NhZ2VEZWZsYXRlJiYodHlwZW9mIHI9PWBzdHJpbmdgP0J1ZmZlci5ieXRlTGVuZ3RoKHIpOnIubGVuZ3RoKTx0LnBlck1lc3NhZ2VEZWZsYXRlLnRocmVzaG9sZCYmKGkuY29tcHJlc3M9ITEpfXRyeXt0LnVzaW5nQnJvd3NlcldlYlNvY2tldD90LndzLnNlbmQocik6dC53cy5zZW5kKHIsaSl9Y2F0Y2h7cyhgd2Vic29ja2V0IGNsb3NlZCBiZWZvcmUgb25jbG9zZSBldmVudGApfS0tbnx8bygpfSl9KShlW2ldKTtmdW5jdGlvbiBvKCl7dC5lbWl0KGBmbHVzaGApLHNldFRpbWVvdXQoZnVuY3Rpb24oKXt0LndyaXRhYmxlPSEwLHQuZW1pdChgZHJhaW5gKX0sMCl9fSxkLnByb3RvdHlwZS5vbkNsb3NlPWZ1bmN0aW9uKCl7bi5wcm90b3R5cGUub25DbG9zZS5jYWxsKHRoaXMpfSxkLnByb3RvdHlwZS5kb0Nsb3NlPWZ1bmN0aW9uKCl7dGhpcy53cyE9PXZvaWQgMCYmdGhpcy53cy5jbG9zZSgpfSxkLnByb3RvdHlwZS51cmk9ZnVuY3Rpb24oKXt2YXIgZT10aGlzLnF1ZXJ5fHx7fSx0PXRoaXMuc2VjdXJlP2B3c3NgOmB3c2Asbj1gYDt0aGlzLnBvcnQmJih0PT09YHdzc2AmJk51bWJlcih0aGlzLnBvcnQpIT09NDQzfHx0PT09YHdzYCYmTnVtYmVyKHRoaXMucG9ydCkhPT04MCkmJihuPWA6YCt0aGlzLnBvcnQpLHRoaXMudGltZXN0YW1wUmVxdWVzdHMmJihlW3RoaXMudGltZXN0YW1wUGFyYW1dPW8oKSksdGhpcy5zdXBwb3J0c0JpbmFyeXx8KGUuYjY0PTEpLGU9aS5lbmNvZGUoZSksZS5sZW5ndGgmJihlPWA/YCtlKTt2YXIgcj10aGlzLmhvc3RuYW1lLmluZGV4T2YoYDpgKSE9PS0xO3JldHVybiB0K2A6Ly9gKyhyP2BbYCt0aGlzLmhvc3RuYW1lK2BdYDp0aGlzLmhvc3RuYW1lKStuK3RoaXMucGF0aCtlfSxkLnByb3RvdHlwZS5jaGVjaz1mdW5jdGlvbigpe3JldHVybiEhdSYmIShgX19pbml0aWFsaXplYGluIHUmJnRoaXMubmFtZT09PWQucHJvdG90eXBlLm5hbWUpfX0pKSxzYz1zKChlPT57dmFyIHQ9VXMoKSxuPXJjKCkscj1pYygpLGk9b2MoKTtlLnBvbGxpbmc9YSxlLndlYnNvY2tldD1pO2Z1bmN0aW9uIGEoZSl7dmFyIGksYT0hMSxvPSExLHM9ITEhPT1lLmpzb25wO2lmKHR5cGVvZiBsb2NhdGlvbjxgdWApe3ZhciBjPWxvY2F0aW9uLnByb3RvY29sPT09YGh0dHBzOmAsbD1sb2NhdGlvbi5wb3J0O2x8fD1jPzQ0Mzo4MCxhPWUuaG9zdG5hbWUhPT1sb2NhdGlvbi5ob3N0bmFtZXx8bCE9PWUucG9ydCxvPWUuc2VjdXJlIT09Y31pZihlLnhkb21haW49YSxlLnhzY2hlbWU9byxpPW5ldyB0KGUpLGBvcGVuYGluIGkmJiFlLmZvcmNlSlNPTlApcmV0dXJuIG5ldyBuKGUpO2lmKCFzKXRocm93IEVycm9yKGBKU09OUCBkaXNhYmxlZGApO3JldHVybiBuZXcgcihlKX19KSksY2M9cygoKGUsdCk9Pnt2YXIgbj1bXS5pbmRleE9mO3QuZXhwb3J0cz1mdW5jdGlvbihlLHQpe2lmKG4pcmV0dXJuIGUuaW5kZXhPZih0KTtmb3IodmFyIHI9MDtyPGUubGVuZ3RoOysrcilpZihlW3JdPT09dClyZXR1cm4gcjtyZXR1cm4tMX19KSksbGM9cygoKGUsdCk9Pnt2YXIgbj0vXig/Oig/IVteOkBdKzpbXjpAXC9dKkApKGh0dHB8aHR0cHN8d3N8d3NzKTpcL1wvKT8oKD86KChbXjpAXSopKD86OihbXjpAXSopKT8pP0ApPygoPzpbYS1mMC05XXswLDR9Oil7Miw3fVthLWYwLTldezAsNH18W146XC8/I10qKSg/OjooXGQqKSk/KSgoKFwvKD86W14/I10oPyFbXj8jXC9dKlwuW14/I1wvLl0rKD86Wz8jXXwkKSkpKlwvPyk/KFtePyNcL10qKSkoPzpcPyhbXiNdKikpPyg/OiMoLiopKT8pLyxyPVtgc291cmNlYCxgcHJvdG9jb2xgLGBhdXRob3JpdHlgLGB1c2VySW5mb2AsYHVzZXJgLGBwYXNzd29yZGAsYGhvc3RgLGBwb3J0YCxgcmVsYXRpdmVgLGBwYXRoYCxgZGlyZWN0b3J5YCxgZmlsZWAsYHF1ZXJ5YCxgYW5jaG9yYF07dC5leHBvcnRzPWZ1bmN0aW9uKGUpe3ZhciB0PWUsbz1lLmluZGV4T2YoYFtgKSxzPWUuaW5kZXhPZihgXWApO28hPS0xJiZzIT0tMSYmKGU9ZS5zdWJzdHJpbmcoMCxvKStlLnN1YnN0cmluZyhvLHMpLnJlcGxhY2UoLzovZyxgO2ApK2Uuc3Vic3RyaW5nKHMsZS5sZW5ndGgpKTtmb3IodmFyIGM9bi5leGVjKGV8fGBgKSxsPXt9LHU9MTQ7dS0tOylsW3JbdV1dPWNbdV18fGBgO3JldHVybiBvIT0tMSYmcyE9LTEmJihsLnNvdXJjZT10LGwuaG9zdD1sLmhvc3Quc3Vic3RyaW5nKDEsbC5ob3N0Lmxlbmd0aC0xKS5yZXBsYWNlKC87L2csYDpgKSxsLmF1dGhvcml0eT1sLmF1dGhvcml0eS5yZXBsYWNlKGBbYCxgYCkucmVwbGFjZShgXWAsYGApLnJlcGxhY2UoLzsvZyxgOmApLGwuaXB2NnVyaT0hMCksbC5wYXRoTmFtZXM9aShsLGwucGF0aCksbC5xdWVyeUtleT1hKGwsbC5xdWVyeSksbH07ZnVuY3Rpb24gaShlLHQpe3ZhciBuPXQucmVwbGFjZSgvXC97Miw5fS9nLGAvYCkuc3BsaXQoYC9gKTtyZXR1cm4odC5zdWJzdHIoMCwxKT09YC9gfHx0Lmxlbmd0aD09PTApJiZuLnNwbGljZSgwLDEpLHQuc3Vic3RyKHQubGVuZ3RoLTEsMSk9PWAvYCYmbi5zcGxpY2Uobi5sZW5ndGgtMSwxKSxufWZ1bmN0aW9uIGEoZSx0KXt2YXIgbj17fTtyZXR1cm4gdC5yZXBsYWNlKC8oPzpefCYpKFteJj1dKik9PyhbXiZdKikvZyxmdW5jdGlvbihlLHQscil7dCYmKG5bdF09cil9KSxufX0pKSx1Yz1zKCgoZSx0KT0+e3ZhciBuPXNjKCkscj1JcygpLGk9RnMoKShgZW5naW5lLmlvLWNsaWVudDpzb2NrZXRgKSxhPWNjKCksbz1acygpLHM9bGMoKSxjPSRzKCk7dC5leHBvcnRzPWw7ZnVuY3Rpb24gbChlLHQpe2lmKCEodGhpcyBpbnN0YW5jZW9mIGwpKXJldHVybiBuZXcgbChlLHQpO3R8fD17fSxlJiZ0eXBlb2YgZT09YG9iamVjdGAmJih0PWUsZT1udWxsKSxlPyhlPXMoZSksdC5ob3N0bmFtZT1lLmhvc3QsdC5zZWN1cmU9ZS5wcm90b2NvbD09PWBodHRwc2B8fGUucHJvdG9jb2w9PT1gd3NzYCx0LnBvcnQ9ZS5wb3J0LGUucXVlcnkmJih0LnF1ZXJ5PWUucXVlcnkpKTp0Lmhvc3QmJih0Lmhvc3RuYW1lPXModC5ob3N0KS5ob3N0KSx0aGlzLnNlY3VyZT10LnNlY3VyZT09bnVsbD90eXBlb2YgbG9jYXRpb248YHVgJiZsb2NhdGlvbi5wcm90b2NvbD09PWBodHRwczpgOnQuc2VjdXJlLHQuaG9zdG5hbWUmJiF0LnBvcnQmJih0LnBvcnQ9dGhpcy5zZWN1cmU/YDQ0M2A6YDgwYCksdGhpcy5hZ2VudD10LmFnZW50fHwhMSx0aGlzLmhvc3RuYW1lPXQuaG9zdG5hbWV8fCh0eXBlb2YgbG9jYXRpb248YHVgP2xvY2F0aW9uLmhvc3RuYW1lOmBsb2NhbGhvc3RgKSx0aGlzLnBvcnQ9dC5wb3J0fHwodHlwZW9mIGxvY2F0aW9uPGB1YCYmbG9jYXRpb24ucG9ydD9sb2NhdGlvbi5wb3J0OnRoaXMuc2VjdXJlPzQ0Mzo4MCksdGhpcy5xdWVyeT10LnF1ZXJ5fHx7fSx0eXBlb2YgdGhpcy5xdWVyeT09YHN0cmluZ2AmJih0aGlzLnF1ZXJ5PWMuZGVjb2RlKHRoaXMucXVlcnkpKSx0aGlzLnVwZ3JhZGU9ITEhPT10LnVwZ3JhZGUsdGhpcy5wYXRoPSh0LnBhdGh8fGAvZW5naW5lLmlvYCkucmVwbGFjZSgvXC8kLyxgYCkrYC9gLHRoaXMuZm9yY2VKU09OUD0hIXQuZm9yY2VKU09OUCx0aGlzLmpzb25wPSExIT09dC5qc29ucCx0aGlzLmZvcmNlQmFzZTY0PSEhdC5mb3JjZUJhc2U2NCx0aGlzLmVuYWJsZXNYRFI9ISF0LmVuYWJsZXNYRFIsdGhpcy53aXRoQ3JlZGVudGlhbHM9ITEhPT10LndpdGhDcmVkZW50aWFscyx0aGlzLnRpbWVzdGFtcFBhcmFtPXQudGltZXN0YW1wUGFyYW18fGB0YCx0aGlzLnRpbWVzdGFtcFJlcXVlc3RzPXQudGltZXN0YW1wUmVxdWVzdHMsdGhpcy50cmFuc3BvcnRzPXQudHJhbnNwb3J0c3x8W2Bwb2xsaW5nYCxgd2Vic29ja2V0YF0sdGhpcy50cmFuc3BvcnRPcHRpb25zPXQudHJhbnNwb3J0T3B0aW9uc3x8e30sdGhpcy5yZWFkeVN0YXRlPWBgLHRoaXMud3JpdGVCdWZmZXI9W10sdGhpcy5wcmV2QnVmZmVyTGVuPTAsdGhpcy5wb2xpY3lQb3J0PXQucG9saWN5UG9ydHx8ODQzLHRoaXMucmVtZW1iZXJVcGdyYWRlPXQucmVtZW1iZXJVcGdyYWRlfHwhMSx0aGlzLmJpbmFyeVR5cGU9bnVsbCx0aGlzLm9ubHlCaW5hcnlVcGdyYWRlcz10Lm9ubHlCaW5hcnlVcGdyYWRlcyx0aGlzLnBlck1lc3NhZ2VEZWZsYXRlPSExPT09dC5wZXJNZXNzYWdlRGVmbGF0ZT8hMTp0LnBlck1lc3NhZ2VEZWZsYXRlfHx7fSwhMD09PXRoaXMucGVyTWVzc2FnZURlZmxhdGUmJih0aGlzLnBlck1lc3NhZ2VEZWZsYXRlPXt9KSx0aGlzLnBlck1lc3NhZ2VEZWZsYXRlJiZ0aGlzLnBlck1lc3NhZ2VEZWZsYXRlLnRocmVzaG9sZD09bnVsbCYmKHRoaXMucGVyTWVzc2FnZURlZmxhdGUudGhyZXNob2xkPTEwMjQpLHRoaXMucGZ4PXQucGZ4fHxudWxsLHRoaXMua2V5PXQua2V5fHxudWxsLHRoaXMucGFzc3BocmFzZT10LnBhc3NwaHJhc2V8fG51bGwsdGhpcy5jZXJ0PXQuY2VydHx8bnVsbCx0aGlzLmNhPXQuY2F8fG51bGwsdGhpcy5jaXBoZXJzPXQuY2lwaGVyc3x8bnVsbCx0aGlzLnJlamVjdFVuYXV0aG9yaXplZD10LnJlamVjdFVuYXV0aG9yaXplZD09PXZvaWQgMD8hMDp0LnJlamVjdFVuYXV0aG9yaXplZCx0aGlzLmZvcmNlTm9kZT0hIXQuZm9yY2VOb2RlLHRoaXMuaXNSZWFjdE5hdGl2ZT10eXBlb2YgbmF2aWdhdG9yPGB1YCYmdHlwZW9mIG5hdmlnYXRvci5wcm9kdWN0PT1gc3RyaW5nYCYmbmF2aWdhdG9yLnByb2R1Y3QudG9Mb3dlckNhc2UoKT09PWByZWFjdG5hdGl2ZWAsKHR5cGVvZiBzZWxmPmB1YHx8dGhpcy5pc1JlYWN0TmF0aXZlKSYmKHQuZXh0cmFIZWFkZXJzJiZPYmplY3Qua2V5cyh0LmV4dHJhSGVhZGVycykubGVuZ3RoPjAmJih0aGlzLmV4dHJhSGVhZGVycz10LmV4dHJhSGVhZGVycyksdC5sb2NhbEFkZHJlc3MmJih0aGlzLmxvY2FsQWRkcmVzcz10LmxvY2FsQWRkcmVzcykpLHRoaXMuaWQ9bnVsbCx0aGlzLnVwZ3JhZGVzPW51bGwsdGhpcy5waW5nSW50ZXJ2YWw9bnVsbCx0aGlzLnBpbmdUaW1lb3V0PW51bGwsdGhpcy5waW5nSW50ZXJ2YWxUaW1lcj1udWxsLHRoaXMucGluZ1RpbWVvdXRUaW1lcj1udWxsLHRoaXMub3BlbigpfWwucHJpb3JXZWJzb2NrZXRTdWNjZXNzPSExLHIobC5wcm90b3R5cGUpLGwucHJvdG9jb2w9by5wcm90b2NvbCxsLlNvY2tldD1sLGwuVHJhbnNwb3J0PVFzKCksbC50cmFuc3BvcnRzPXNjKCksbC5wYXJzZXI9WnMoKSxsLnByb3RvdHlwZS5jcmVhdGVUcmFuc3BvcnQ9ZnVuY3Rpb24oZSl7aShgY3JlYXRpbmcgdHJhbnNwb3J0ICIlcyJgLGUpO3ZhciB0PXUodGhpcy5xdWVyeSk7dC5FSU89by5wcm90b2NvbCx0LnRyYW5zcG9ydD1lO3ZhciByPXRoaXMudHJhbnNwb3J0T3B0aW9uc1tlXXx8e307cmV0dXJuIHRoaXMuaWQmJih0LnNpZD10aGlzLmlkKSxuZXcgbltlXSh7cXVlcnk6dCxzb2NrZXQ6dGhpcyxhZ2VudDpyLmFnZW50fHx0aGlzLmFnZW50LGhvc3RuYW1lOnIuaG9zdG5hbWV8fHRoaXMuaG9zdG5hbWUscG9ydDpyLnBvcnR8fHRoaXMucG9ydCxzZWN1cmU6ci5zZWN1cmV8fHRoaXMuc2VjdXJlLHBhdGg6ci5wYXRofHx0aGlzLnBhdGgsZm9yY2VKU09OUDpyLmZvcmNlSlNPTlB8fHRoaXMuZm9yY2VKU09OUCxqc29ucDpyLmpzb25wfHx0aGlzLmpzb25wLGZvcmNlQmFzZTY0OnIuZm9yY2VCYXNlNjR8fHRoaXMuZm9yY2VCYXNlNjQsZW5hYmxlc1hEUjpyLmVuYWJsZXNYRFJ8fHRoaXMuZW5hYmxlc1hEUix3aXRoQ3JlZGVudGlhbHM6ci53aXRoQ3JlZGVudGlhbHN8fHRoaXMud2l0aENyZWRlbnRpYWxzLHRpbWVzdGFtcFJlcXVlc3RzOnIudGltZXN0YW1wUmVxdWVzdHN8fHRoaXMudGltZXN0YW1wUmVxdWVzdHMsdGltZXN0YW1wUGFyYW06ci50aW1lc3RhbXBQYXJhbXx8dGhpcy50aW1lc3RhbXBQYXJhbSxwb2xpY3lQb3J0OnIucG9saWN5UG9ydHx8dGhpcy5wb2xpY3lQb3J0LHBmeDpyLnBmeHx8dGhpcy5wZngsa2V5OnIua2V5fHx0aGlzLmtleSxwYXNzcGhyYXNlOnIucGFzc3BocmFzZXx8dGhpcy5wYXNzcGhyYXNlLGNlcnQ6ci5jZXJ0fHx0aGlzLmNlcnQsY2E6ci5jYXx8dGhpcy5jYSxjaXBoZXJzOnIuY2lwaGVyc3x8dGhpcy5jaXBoZXJzLHJlamVjdFVuYXV0aG9yaXplZDpyLnJlamVjdFVuYXV0aG9yaXplZHx8dGhpcy5yZWplY3RVbmF1dGhvcml6ZWQscGVyTWVzc2FnZURlZmxhdGU6ci5wZXJNZXNzYWdlRGVmbGF0ZXx8dGhpcy5wZXJNZXNzYWdlRGVmbGF0ZSxleHRyYUhlYWRlcnM6ci5leHRyYUhlYWRlcnN8fHRoaXMuZXh0cmFIZWFkZXJzLGZvcmNlTm9kZTpyLmZvcmNlTm9kZXx8dGhpcy5mb3JjZU5vZGUsbG9jYWxBZGRyZXNzOnIubG9jYWxBZGRyZXNzfHx0aGlzLmxvY2FsQWRkcmVzcyxyZXF1ZXN0VGltZW91dDpyLnJlcXVlc3RUaW1lb3V0fHx0aGlzLnJlcXVlc3RUaW1lb3V0LHByb3RvY29sczpyLnByb3RvY29sc3x8dm9pZCAwLGlzUmVhY3ROYXRpdmU6dGhpcy5pc1JlYWN0TmF0aXZlfSl9O2Z1bmN0aW9uIHUoZSl7dmFyIHQ9e307Zm9yKHZhciBuIGluIGUpZS5oYXNPd25Qcm9wZXJ0eShuKSYmKHRbbl09ZVtuXSk7cmV0dXJuIHR9bC5wcm90b3R5cGUub3Blbj1mdW5jdGlvbigpe3ZhciBlO2lmKHRoaXMucmVtZW1iZXJVcGdyYWRlJiZsLnByaW9yV2Vic29ja2V0U3VjY2VzcyYmdGhpcy50cmFuc3BvcnRzLmluZGV4T2YoYHdlYnNvY2tldGApIT09LTEpZT1gd2Vic29ja2V0YDtlbHNlIGlmKHRoaXMudHJhbnNwb3J0cy5sZW5ndGg9PT0wKXt2YXIgdD10aGlzO3NldFRpbWVvdXQoZnVuY3Rpb24oKXt0LmVtaXQoYGVycm9yYCxgTm8gdHJhbnNwb3J0cyBhdmFpbGFibGVgKX0sMCk7cmV0dXJufWVsc2UgZT10aGlzLnRyYW5zcG9ydHNbMF07dGhpcy5yZWFkeVN0YXRlPWBvcGVuaW5nYDt0cnl7ZT10aGlzLmNyZWF0ZVRyYW5zcG9ydChlKX1jYXRjaHt0aGlzLnRyYW5zcG9ydHMuc2hpZnQoKSx0aGlzLm9wZW4oKTtyZXR1cm59ZS5vcGVuKCksdGhpcy5zZXRUcmFuc3BvcnQoZSl9LGwucHJvdG90eXBlLnNldFRyYW5zcG9ydD1mdW5jdGlvbihlKXtpKGBzZXR0aW5nIHRyYW5zcG9ydCAlc2AsZS5uYW1lKTt2YXIgdD10aGlzO3RoaXMudHJhbnNwb3J0JiYoaShgY2xlYXJpbmcgZXhpc3RpbmcgdHJhbnNwb3J0ICVzYCx0aGlzLnRyYW5zcG9ydC5uYW1lKSx0aGlzLnRyYW5zcG9ydC5yZW1vdmVBbGxMaXN0ZW5lcnMoKSksdGhpcy50cmFuc3BvcnQ9ZSxlLm9uKGBkcmFpbmAsZnVuY3Rpb24oKXt0Lm9uRHJhaW4oKX0pLm9uKGBwYWNrZXRgLGZ1bmN0aW9uKGUpe3Qub25QYWNrZXQoZSl9KS5vbihgZXJyb3JgLGZ1bmN0aW9uKGUpe3Qub25FcnJvcihlKX0pLm9uKGBjbG9zZWAsZnVuY3Rpb24oKXt0Lm9uQ2xvc2UoYHRyYW5zcG9ydCBjbG9zZWApfSl9LGwucHJvdG90eXBlLnByb2JlPWZ1bmN0aW9uKGUpe2koYHByb2JpbmcgdHJhbnNwb3J0ICIlcyJgLGUpO3ZhciB0PXRoaXMuY3JlYXRlVHJhbnNwb3J0KGUse3Byb2JlOjF9KSxuPSExLHI9dGhpcztsLnByaW9yV2Vic29ja2V0U3VjY2Vzcz0hMTtmdW5jdGlvbiBhKCl7aWYoci5vbmx5QmluYXJ5VXBncmFkZXMpe3ZhciBhPSF0aGlzLnN1cHBvcnRzQmluYXJ5JiZyLnRyYW5zcG9ydC5zdXBwb3J0c0JpbmFyeTtufHw9YX1ufHwoaShgcHJvYmUgdHJhbnNwb3J0ICIlcyIgb3BlbmVkYCxlKSx0LnNlbmQoW3t0eXBlOmBwaW5nYCxkYXRhOmBwcm9iZWB9XSksdC5vbmNlKGBwYWNrZXRgLGZ1bmN0aW9uKGEpe2lmKCFuKWlmKGEudHlwZT09PWBwb25nYCYmYS5kYXRhPT09YHByb2JlYCl7aWYoaShgcHJvYmUgdHJhbnNwb3J0ICIlcyIgcG9uZ2AsZSksci51cGdyYWRpbmc9ITAsci5lbWl0KGB1cGdyYWRpbmdgLHQpLCF0KXJldHVybjtsLnByaW9yV2Vic29ja2V0U3VjY2Vzcz10Lm5hbWU9PT1gd2Vic29ja2V0YCxpKGBwYXVzaW5nIGN1cnJlbnQgdHJhbnNwb3J0ICIlcyJgLHIudHJhbnNwb3J0Lm5hbWUpLHIudHJhbnNwb3J0LnBhdXNlKGZ1bmN0aW9uKCl7bnx8ci5yZWFkeVN0YXRlIT09YGNsb3NlZGAmJihpKGBjaGFuZ2luZyB0cmFuc3BvcnQgYW5kIHNlbmRpbmcgdXBncmFkZSBwYWNrZXRgKSxmKCksci5zZXRUcmFuc3BvcnQodCksdC5zZW5kKFt7dHlwZTpgdXBncmFkZWB9XSksci5lbWl0KGB1cGdyYWRlYCx0KSx0PW51bGwsci51cGdyYWRpbmc9ITEsci5mbHVzaCgpKX0pfWVsc2V7aShgcHJvYmUgdHJhbnNwb3J0ICIlcyIgZmFpbGVkYCxlKTt2YXIgbz1FcnJvcihgcHJvYmUgZXJyb3JgKTtvLnRyYW5zcG9ydD10Lm5hbWUsci5lbWl0KGB1cGdyYWRlRXJyb3JgLG8pfX0pKX1mdW5jdGlvbiBvKCl7bnx8KG49ITAsZigpLHQuY2xvc2UoKSx0PW51bGwpfWZ1bmN0aW9uIHMobil7dmFyIGE9RXJyb3IoYHByb2JlIGVycm9yOiBgK24pO2EudHJhbnNwb3J0PXQubmFtZSxvKCksaShgcHJvYmUgdHJhbnNwb3J0ICIlcyIgZmFpbGVkIGJlY2F1c2Ugb2YgZXJyb3I6ICVzYCxlLG4pLHIuZW1pdChgdXBncmFkZUVycm9yYCxhKX1mdW5jdGlvbiBjKCl7cyhgdHJhbnNwb3J0IGNsb3NlZGApfWZ1bmN0aW9uIHUoKXtzKGBzb2NrZXQgY2xvc2VkYCl9ZnVuY3Rpb24gZChlKXt0JiZlLm5hbWUhPT10Lm5hbWUmJihpKGAiJXMiIHdvcmtzIC0gYWJvcnRpbmcgIiVzImAsZS5uYW1lLHQubmFtZSksbygpKX1mdW5jdGlvbiBmKCl7dC5yZW1vdmVMaXN0ZW5lcihgb3BlbmAsYSksdC5yZW1vdmVMaXN0ZW5lcihgZXJyb3JgLHMpLHQucmVtb3ZlTGlzdGVuZXIoYGNsb3NlYCxjKSxyLnJlbW92ZUxpc3RlbmVyKGBjbG9zZWAsdSksci5yZW1vdmVMaXN0ZW5lcihgdXBncmFkaW5nYCxkKX10Lm9uY2UoYG9wZW5gLGEpLHQub25jZShgZXJyb3JgLHMpLHQub25jZShgY2xvc2VgLGMpLHRoaXMub25jZShgY2xvc2VgLHUpLHRoaXMub25jZShgdXBncmFkaW5nYCxkKSx0Lm9wZW4oKX0sbC5wcm90b3R5cGUub25PcGVuPWZ1bmN0aW9uKCl7aWYoaShgc29ja2V0IG9wZW5gKSx0aGlzLnJlYWR5U3RhdGU9YG9wZW5gLGwucHJpb3JXZWJzb2NrZXRTdWNjZXNzPXRoaXMudHJhbnNwb3J0Lm5hbWU9PT1gd2Vic29ja2V0YCx0aGlzLmVtaXQoYG9wZW5gKSx0aGlzLmZsdXNoKCksdGhpcy5yZWFkeVN0YXRlPT09YG9wZW5gJiZ0aGlzLnVwZ3JhZGUmJnRoaXMudHJhbnNwb3J0LnBhdXNlKXtpKGBzdGFydGluZyB1cGdyYWRlIHByb2Jlc2ApO2Zvcih2YXIgZT0wLHQ9dGhpcy51cGdyYWRlcy5sZW5ndGg7ZTx0O2UrKyl0aGlzLnByb2JlKHRoaXMudXBncmFkZXNbZV0pfX0sbC5wcm90b3R5cGUub25QYWNrZXQ9ZnVuY3Rpb24oZSl7aWYodGhpcy5yZWFkeVN0YXRlPT09YG9wZW5pbmdgfHx0aGlzLnJlYWR5U3RhdGU9PT1gb3BlbmB8fHRoaXMucmVhZHlTdGF0ZT09PWBjbG9zaW5nYClzd2l0Y2goaShgc29ja2V0IHJlY2VpdmU6IHR5cGUgIiVzIiwgZGF0YSAiJXMiYCxlLnR5cGUsZS5kYXRhKSx0aGlzLmVtaXQoYHBhY2tldGAsZSksdGhpcy5lbWl0KGBoZWFydGJlYXRgKSxlLnR5cGUpe2Nhc2Vgb3BlbmA6dGhpcy5vbkhhbmRzaGFrZShKU09OLnBhcnNlKGUuZGF0YSkpO2JyZWFrO2Nhc2VgcG9uZ2A6dGhpcy5zZXRQaW5nKCksdGhpcy5lbWl0KGBwb25nYCk7YnJlYWs7Y2FzZWBlcnJvcmA6dmFyIHQ9RXJyb3IoYHNlcnZlciBlcnJvcmApO3QuY29kZT1lLmRhdGEsdGhpcy5vbkVycm9yKHQpO2JyZWFrO2Nhc2VgbWVzc2FnZWA6dGhpcy5lbWl0KGBkYXRhYCxlLmRhdGEpLHRoaXMuZW1pdChgbWVzc2FnZWAsZS5kYXRhKTticmVha31lbHNlIGkoYHBhY2tldCByZWNlaXZlZCB3aXRoIHNvY2tldCByZWFkeVN0YXRlICIlcyJgLHRoaXMucmVhZHlTdGF0ZSl9LGwucHJvdG90eXBlLm9uSGFuZHNoYWtlPWZ1bmN0aW9uKGUpe3RoaXMuZW1pdChgaGFuZHNoYWtlYCxlKSx0aGlzLmlkPWUuc2lkLHRoaXMudHJhbnNwb3J0LnF1ZXJ5LnNpZD1lLnNpZCx0aGlzLnVwZ3JhZGVzPXRoaXMuZmlsdGVyVXBncmFkZXMoZS51cGdyYWRlcyksdGhpcy5waW5nSW50ZXJ2YWw9ZS5waW5nSW50ZXJ2YWwsdGhpcy5waW5nVGltZW91dD1lLnBpbmdUaW1lb3V0LHRoaXMub25PcGVuKCksdGhpcy5yZWFkeVN0YXRlIT09YGNsb3NlZGAmJih0aGlzLnNldFBpbmcoKSx0aGlzLnJlbW92ZUxpc3RlbmVyKGBoZWFydGJlYXRgLHRoaXMub25IZWFydGJlYXQpLHRoaXMub24oYGhlYXJ0YmVhdGAsdGhpcy5vbkhlYXJ0YmVhdCkpfSxsLnByb3RvdHlwZS5vbkhlYXJ0YmVhdD1mdW5jdGlvbihlKXtjbGVhclRpbWVvdXQodGhpcy5waW5nVGltZW91dFRpbWVyKTt2YXIgdD10aGlzO3QucGluZ1RpbWVvdXRUaW1lcj1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dC5yZWFkeVN0YXRlIT09YGNsb3NlZGAmJnQub25DbG9zZShgcGluZyB0aW1lb3V0YCl9LGV8fHQucGluZ0ludGVydmFsK3QucGluZ1RpbWVvdXQpfSxsLnByb3RvdHlwZS5zZXRQaW5nPWZ1bmN0aW9uKCl7dmFyIGU9dGhpcztjbGVhclRpbWVvdXQoZS5waW5nSW50ZXJ2YWxUaW1lciksZS5waW5nSW50ZXJ2YWxUaW1lcj1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7aShgd3JpdGluZyBwaW5nIHBhY2tldCAtIGV4cGVjdGluZyBwb25nIHdpdGhpbiAlc21zYCxlLnBpbmdUaW1lb3V0KSxlLnBpbmcoKSxlLm9uSGVhcnRiZWF0KGUucGluZ1RpbWVvdXQpfSxlLnBpbmdJbnRlcnZhbCl9LGwucHJvdG90eXBlLnBpbmc9ZnVuY3Rpb24oKXt2YXIgZT10aGlzO3RoaXMuc2VuZFBhY2tldChgcGluZ2AsZnVuY3Rpb24oKXtlLmVtaXQoYHBpbmdgKX0pfSxsLnByb3RvdHlwZS5vbkRyYWluPWZ1bmN0aW9uKCl7dGhpcy53cml0ZUJ1ZmZlci5zcGxpY2UoMCx0aGlzLnByZXZCdWZmZXJMZW4pLHRoaXMucHJldkJ1ZmZlckxlbj0wLHRoaXMud3JpdGVCdWZmZXIubGVuZ3RoPT09MD90aGlzLmVtaXQoYGRyYWluYCk6dGhpcy5mbHVzaCgpfSxsLnByb3RvdHlwZS5mbHVzaD1mdW5jdGlvbigpe3RoaXMucmVhZHlTdGF0ZSE9PWBjbG9zZWRgJiZ0aGlzLnRyYW5zcG9ydC53cml0YWJsZSYmIXRoaXMudXBncmFkaW5nJiZ0aGlzLndyaXRlQnVmZmVyLmxlbmd0aCYmKGkoYGZsdXNoaW5nICVkIHBhY2tldHMgaW4gc29ja2V0YCx0aGlzLndyaXRlQnVmZmVyLmxlbmd0aCksdGhpcy50cmFuc3BvcnQuc2VuZCh0aGlzLndyaXRlQnVmZmVyKSx0aGlzLnByZXZCdWZmZXJMZW49dGhpcy53cml0ZUJ1ZmZlci5sZW5ndGgsdGhpcy5lbWl0KGBmbHVzaGApKX0sbC5wcm90b3R5cGUud3JpdGU9bC5wcm90b3R5cGUuc2VuZD1mdW5jdGlvbihlLHQsbil7cmV0dXJuIHRoaXMuc2VuZFBhY2tldChgbWVzc2FnZWAsZSx0LG4pLHRoaXN9LGwucHJvdG90eXBlLnNlbmRQYWNrZXQ9ZnVuY3Rpb24oZSx0LG4scil7aWYodHlwZW9mIHQ9PWBmdW5jdGlvbmAmJihyPXQsdD12b2lkIDApLHR5cGVvZiBuPT1gZnVuY3Rpb25gJiYocj1uLG49bnVsbCksISh0aGlzLnJlYWR5U3RhdGU9PT1gY2xvc2luZ2B8fHRoaXMucmVhZHlTdGF0ZT09PWBjbG9zZWRgKSl7bnx8PXt9LG4uY29tcHJlc3M9ITEhPT1uLmNvbXByZXNzO3ZhciBpPXt0eXBlOmUsZGF0YTp0LG9wdGlvbnM6bn07dGhpcy5lbWl0KGBwYWNrZXRDcmVhdGVgLGkpLHRoaXMud3JpdGVCdWZmZXIucHVzaChpKSxyJiZ0aGlzLm9uY2UoYGZsdXNoYCxyKSx0aGlzLmZsdXNoKCl9fSxsLnByb3RvdHlwZS5jbG9zZT1mdW5jdGlvbigpe2lmKHRoaXMucmVhZHlTdGF0ZT09PWBvcGVuaW5nYHx8dGhpcy5yZWFkeVN0YXRlPT09YG9wZW5gKXt0aGlzLnJlYWR5U3RhdGU9YGNsb3NpbmdgO3ZhciBlPXRoaXM7dGhpcy53cml0ZUJ1ZmZlci5sZW5ndGg/dGhpcy5vbmNlKGBkcmFpbmAsZnVuY3Rpb24oKXt0aGlzLnVwZ3JhZGluZz9yKCk6dCgpfSk6dGhpcy51cGdyYWRpbmc/cigpOnQoKX1mdW5jdGlvbiB0KCl7ZS5vbkNsb3NlKGBmb3JjZWQgY2xvc2VgKSxpKGBzb2NrZXQgY2xvc2luZyAtIHRlbGxpbmcgdHJhbnNwb3J0IHRvIGNsb3NlYCksZS50cmFuc3BvcnQuY2xvc2UoKX1mdW5jdGlvbiBuKCl7ZS5yZW1vdmVMaXN0ZW5lcihgdXBncmFkZWAsbiksZS5yZW1vdmVMaXN0ZW5lcihgdXBncmFkZUVycm9yYCxuKSx0KCl9ZnVuY3Rpb24gcigpe2Uub25jZShgdXBncmFkZWAsbiksZS5vbmNlKGB1cGdyYWRlRXJyb3JgLG4pfXJldHVybiB0aGlzfSxsLnByb3RvdHlwZS5vbkVycm9yPWZ1bmN0aW9uKGUpe2koYHNvY2tldCBlcnJvciAlamAsZSksbC5wcmlvcldlYnNvY2tldFN1Y2Nlc3M9ITEsdGhpcy5lbWl0KGBlcnJvcmAsZSksdGhpcy5vbkNsb3NlKGB0cmFuc3BvcnQgZXJyb3JgLGUpfSxsLnByb3RvdHlwZS5vbkNsb3NlPWZ1bmN0aW9uKGUsdCl7aWYodGhpcy5yZWFkeVN0YXRlPT09YG9wZW5pbmdgfHx0aGlzLnJlYWR5U3RhdGU9PT1gb3BlbmB8fHRoaXMucmVhZHlTdGF0ZT09PWBjbG9zaW5nYCl7aShgc29ja2V0IGNsb3NlIHdpdGggcmVhc29uOiAiJXMiYCxlKTt2YXIgbj10aGlzO2NsZWFyVGltZW91dCh0aGlzLnBpbmdJbnRlcnZhbFRpbWVyKSxjbGVhclRpbWVvdXQodGhpcy5waW5nVGltZW91dFRpbWVyKSx0aGlzLnRyYW5zcG9ydC5yZW1vdmVBbGxMaXN0ZW5lcnMoYGNsb3NlYCksdGhpcy50cmFuc3BvcnQuY2xvc2UoKSx0aGlzLnRyYW5zcG9ydC5yZW1vdmVBbGxMaXN0ZW5lcnMoKSx0aGlzLnJlYWR5U3RhdGU9YGNsb3NlZGAsdGhpcy5pZD1udWxsLHRoaXMuZW1pdChgY2xvc2VgLGUsdCksbi53cml0ZUJ1ZmZlcj1bXSxuLnByZXZCdWZmZXJMZW49MH19LGwucHJvdG90eXBlLmZpbHRlclVwZ3JhZGVzPWZ1bmN0aW9uKGUpe2Zvcih2YXIgdD1bXSxuPTAscj1lLmxlbmd0aDtuPHI7bisrKX5hKHRoaXMudHJhbnNwb3J0cyxlW25dKSYmdC5wdXNoKGVbbl0pO3JldHVybiB0fX0pKSxkYz1zKCgoZSx0KT0+e3QuZXhwb3J0cz11YygpLHQuZXhwb3J0cy5wYXJzZXI9WnMoKX0pKSxmYz1zKCgoZSx0KT0+e3QhPT12b2lkIDAmJih0LmV4cG9ydHM9bik7ZnVuY3Rpb24gbihlKXtpZihlKXJldHVybiByKGUpfWZ1bmN0aW9uIHIoZSl7Zm9yKHZhciB0IGluIG4ucHJvdG90eXBlKWVbdF09bi5wcm90b3R5cGVbdF07cmV0dXJuIGV9bi5wcm90b3R5cGUub249bi5wcm90b3R5cGUuYWRkRXZlbnRMaXN0ZW5lcj1mdW5jdGlvbihlLHQpe3JldHVybiB0aGlzLl9jYWxsYmFja3M9dGhpcy5fY2FsbGJhY2tzfHx7fSwodGhpcy5fY2FsbGJhY2tzW2AkYCtlXT10aGlzLl9jYWxsYmFja3NbYCRgK2VdfHxbXSkucHVzaCh0KSx0aGlzfSxuLnByb3RvdHlwZS5vbmNlPWZ1bmN0aW9uKGUsdCl7ZnVuY3Rpb24gbigpe3RoaXMub2ZmKGUsbiksdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9cmV0dXJuIG4uZm49dCx0aGlzLm9uKGUsbiksdGhpc30sbi5wcm90b3R5cGUub2ZmPW4ucHJvdG90eXBlLnJlbW92ZUxpc3RlbmVyPW4ucHJvdG90eXBlLnJlbW92ZUFsbExpc3RlbmVycz1uLnByb3RvdHlwZS5yZW1vdmVFdmVudExpc3RlbmVyPWZ1bmN0aW9uKGUsdCl7aWYodGhpcy5fY2FsbGJhY2tzPXRoaXMuX2NhbGxiYWNrc3x8e30sYXJndW1lbnRzLmxlbmd0aD09MClyZXR1cm4gdGhpcy5fY2FsbGJhY2tzPXt9LHRoaXM7dmFyIG49dGhpcy5fY2FsbGJhY2tzW2AkYCtlXTtpZighbilyZXR1cm4gdGhpcztpZihhcmd1bWVudHMubGVuZ3RoPT0xKXJldHVybiBkZWxldGUgdGhpcy5fY2FsbGJhY2tzW2AkYCtlXSx0aGlzO2Zvcih2YXIgcixpPTA7aTxuLmxlbmd0aDtpKyspaWYocj1uW2ldLHI9PT10fHxyLmZuPT09dCl7bi5zcGxpY2UoaSwxKTticmVha31yZXR1cm4gdGhpc30sbi5wcm90b3R5cGUuZW1pdD1mdW5jdGlvbihlKXt0aGlzLl9jYWxsYmFja3M9dGhpcy5fY2FsbGJhY2tzfHx7fTt2YXIgdD1bXS5zbGljZS5jYWxsKGFyZ3VtZW50cywxKSxuPXRoaXMuX2NhbGxiYWNrc1tgJGArZV07aWYobil7bj1uLnNsaWNlKDApO2Zvcih2YXIgcj0wLGk9bi5sZW5ndGg7cjxpOysrciluW3JdLmFwcGx5KHRoaXMsdCl9cmV0dXJuIHRoaXN9LG4ucHJvdG90eXBlLmxpc3RlbmVycz1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5fY2FsbGJhY2tzPXRoaXMuX2NhbGxiYWNrc3x8e30sdGhpcy5fY2FsbGJhY2tzW2AkYCtlXXx8W119LG4ucHJvdG90eXBlLmhhc0xpc3RlbmVycz1mdW5jdGlvbihlKXtyZXR1cm4hIXRoaXMubGlzdGVuZXJzKGUpLmxlbmd0aH19KSkscGM9cygoKGUsdCk9Pnt0LmV4cG9ydHM9bjtmdW5jdGlvbiBuKGUsdCl7dmFyIG49W107dHx8PTA7Zm9yKHZhciByPXR8fDA7cjxlLmxlbmd0aDtyKyspbltyLXRdPWVbcl07cmV0dXJuIG59fSkpLG1jPXMoKChlLHQpPT57dC5leHBvcnRzPW47ZnVuY3Rpb24gbihlLHQsbil7cmV0dXJuIGUub24odCxuKSx7ZGVzdHJveTpmdW5jdGlvbigpe2UucmVtb3ZlTGlzdGVuZXIodCxuKX19fX0pKSxoYz1zKCgoZSx0KT0+e3ZhciBuPVtdLnNsaWNlO3QuZXhwb3J0cz1mdW5jdGlvbihlLHQpe2lmKHR5cGVvZiB0PT1gc3RyaW5nYCYmKHQ9ZVt0XSksdHlwZW9mIHQhPWBmdW5jdGlvbmApdGhyb3cgRXJyb3IoYGJpbmQoKSByZXF1aXJlcyBhIGZ1bmN0aW9uYCk7dmFyIHI9bi5jYWxsKGFyZ3VtZW50cywyKTtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdC5hcHBseShlLHIuY29uY2F0KG4uY2FsbChhcmd1bWVudHMpKSl9fX0pKSxnYz1zKChlPT57ZS5lbmNvZGU9ZnVuY3Rpb24oZSl7dmFyIHQ9YGA7Zm9yKHZhciBuIGluIGUpZS5oYXNPd25Qcm9wZXJ0eShuKSYmKHQubGVuZ3RoJiYodCs9YCZgKSx0Kz1lbmNvZGVVUklDb21wb25lbnQobikrYD1gK2VuY29kZVVSSUNvbXBvbmVudChlW25dKSk7cmV0dXJuIHR9LGUuZGVjb2RlPWZ1bmN0aW9uKGUpe2Zvcih2YXIgdD17fSxuPWUuc3BsaXQoYCZgKSxyPTAsaT1uLmxlbmd0aDtyPGk7cisrKXt2YXIgYT1uW3JdLnNwbGl0KGA9YCk7dFtkZWNvZGVVUklDb21wb25lbnQoYVswXSldPWRlY29kZVVSSUNvbXBvbmVudChhWzFdKX1yZXR1cm4gdH19KSksX2M9cygoKGUsdCk9Pnt2YXIgbj1CcygpLHI9ZmMoKSxpPXBjKCksYT1tYygpLG89aGMoKSxzPWpzKCkoYHNvY2tldC5pby1jbGllbnQ6c29ja2V0YCksYz1nYygpLGw9R3MoKTt0LmV4cG9ydHM9ZT1mO3ZhciB1PXtjb25uZWN0OjEsY29ubmVjdF9lcnJvcjoxLGNvbm5lY3RfdGltZW91dDoxLGNvbm5lY3Rpbmc6MSxkaXNjb25uZWN0OjEsZXJyb3I6MSxyZWNvbm5lY3Q6MSxyZWNvbm5lY3RfYXR0ZW1wdDoxLHJlY29ubmVjdF9mYWlsZWQ6MSxyZWNvbm5lY3RfZXJyb3I6MSxyZWNvbm5lY3Rpbmc6MSxwaW5nOjEscG9uZzoxfSxkPXIucHJvdG90eXBlLmVtaXQ7ZnVuY3Rpb24gZihlLHQsbil7dGhpcy5pbz1lLHRoaXMubnNwPXQsdGhpcy5qc29uPXRoaXMsdGhpcy5pZHM9MCx0aGlzLmFja3M9e30sdGhpcy5yZWNlaXZlQnVmZmVyPVtdLHRoaXMuc2VuZEJ1ZmZlcj1bXSx0aGlzLmNvbm5lY3RlZD0hMSx0aGlzLmRpc2Nvbm5lY3RlZD0hMCx0aGlzLmZsYWdzPXt9LG4mJm4ucXVlcnkmJih0aGlzLnF1ZXJ5PW4ucXVlcnkpLHRoaXMuaW8uYXV0b0Nvbm5lY3QmJnRoaXMub3BlbigpfXIoZi5wcm90b3R5cGUpLGYucHJvdG90eXBlLnN1YkV2ZW50cz1mdW5jdGlvbigpe2lmKCF0aGlzLnN1YnMpe3ZhciBlPXRoaXMuaW87dGhpcy5zdWJzPVthKGUsYG9wZW5gLG8odGhpcyxgb25vcGVuYCkpLGEoZSxgcGFja2V0YCxvKHRoaXMsYG9ucGFja2V0YCkpLGEoZSxgY2xvc2VgLG8odGhpcyxgb25jbG9zZWApKV19fSxmLnByb3RvdHlwZS5vcGVuPWYucHJvdG90eXBlLmNvbm5lY3Q9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jb25uZWN0ZWQ/dGhpczoodGhpcy5zdWJFdmVudHMoKSx0aGlzLmlvLm9wZW4oKSx0aGlzLmlvLnJlYWR5U3RhdGU9PT1gb3BlbmAmJnRoaXMub25vcGVuKCksdGhpcy5lbWl0KGBjb25uZWN0aW5nYCksdGhpcyl9LGYucHJvdG90eXBlLnNlbmQ9ZnVuY3Rpb24oKXt2YXIgZT1pKGFyZ3VtZW50cyk7cmV0dXJuIGUudW5zaGlmdChgbWVzc2FnZWApLHRoaXMuZW1pdC5hcHBseSh0aGlzLGUpLHRoaXN9LGYucHJvdG90eXBlLmVtaXQ9ZnVuY3Rpb24oZSl7aWYodS5oYXNPd25Qcm9wZXJ0eShlKSlyZXR1cm4gZC5hcHBseSh0aGlzLGFyZ3VtZW50cyksdGhpczt2YXIgdD1pKGFyZ3VtZW50cykscj17dHlwZToodGhpcy5mbGFncy5iaW5hcnk9PT12b2lkIDA/bCh0KTp0aGlzLmZsYWdzLmJpbmFyeSk/bi5CSU5BUllfRVZFTlQ6bi5FVkVOVCxkYXRhOnR9O3JldHVybiByLm9wdGlvbnM9e30sci5vcHRpb25zLmNvbXByZXNzPSF0aGlzLmZsYWdzfHwhMSE9PXRoaXMuZmxhZ3MuY29tcHJlc3MsdHlwZW9mIHRbdC5sZW5ndGgtMV09PWBmdW5jdGlvbmAmJihzKGBlbWl0dGluZyBwYWNrZXQgd2l0aCBhY2sgaWQgJWRgLHRoaXMuaWRzKSx0aGlzLmFja3NbdGhpcy5pZHNdPXQucG9wKCksci5pZD10aGlzLmlkcysrKSx0aGlzLmNvbm5lY3RlZD90aGlzLnBhY2tldChyKTp0aGlzLnNlbmRCdWZmZXIucHVzaChyKSx0aGlzLmZsYWdzPXt9LHRoaXN9LGYucHJvdG90eXBlLnBhY2tldD1mdW5jdGlvbihlKXtlLm5zcD10aGlzLm5zcCx0aGlzLmlvLnBhY2tldChlKX0sZi5wcm90b3R5cGUub25vcGVuPWZ1bmN0aW9uKCl7aWYocyhgdHJhbnNwb3J0IGlzIG9wZW4gLSBjb25uZWN0aW5nYCksdGhpcy5uc3AhPT1gL2ApaWYodGhpcy5xdWVyeSl7dmFyIGU9dHlwZW9mIHRoaXMucXVlcnk9PWBvYmplY3RgP2MuZW5jb2RlKHRoaXMucXVlcnkpOnRoaXMucXVlcnk7cyhgc2VuZGluZyBjb25uZWN0IHBhY2tldCB3aXRoIHF1ZXJ5ICVzYCxlKSx0aGlzLnBhY2tldCh7dHlwZTpuLkNPTk5FQ1QscXVlcnk6ZX0pfWVsc2UgdGhpcy5wYWNrZXQoe3R5cGU6bi5DT05ORUNUfSl9LGYucHJvdG90eXBlLm9uY2xvc2U9ZnVuY3Rpb24oZSl7cyhgY2xvc2UgKCVzKWAsZSksdGhpcy5jb25uZWN0ZWQ9ITEsdGhpcy5kaXNjb25uZWN0ZWQ9ITAsZGVsZXRlIHRoaXMuaWQsdGhpcy5lbWl0KGBkaXNjb25uZWN0YCxlKX0sZi5wcm90b3R5cGUub25wYWNrZXQ9ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5uc3A9PT10aGlzLm5zcCxyPWUudHlwZT09PW4uRVJST1ImJmUubnNwPT09YC9gO2lmKCEoIXQmJiFyKSlzd2l0Y2goZS50eXBlKXtjYXNlIG4uQ09OTkVDVDp0aGlzLm9uY29ubmVjdCgpO2JyZWFrO2Nhc2Ugbi5FVkVOVDp0aGlzLm9uZXZlbnQoZSk7YnJlYWs7Y2FzZSBuLkJJTkFSWV9FVkVOVDp0aGlzLm9uZXZlbnQoZSk7YnJlYWs7Y2FzZSBuLkFDSzp0aGlzLm9uYWNrKGUpO2JyZWFrO2Nhc2Ugbi5CSU5BUllfQUNLOnRoaXMub25hY2soZSk7YnJlYWs7Y2FzZSBuLkRJU0NPTk5FQ1Q6dGhpcy5vbmRpc2Nvbm5lY3QoKTticmVhaztjYXNlIG4uRVJST1I6dGhpcy5lbWl0KGBlcnJvcmAsZS5kYXRhKTticmVha319LGYucHJvdG90eXBlLm9uZXZlbnQ9ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5kYXRhfHxbXTtzKGBlbWl0dGluZyBldmVudCAlamAsdCksZS5pZCE9bnVsbCYmKHMoYGF0dGFjaGluZyBhY2sgY2FsbGJhY2sgdG8gZXZlbnRgKSx0LnB1c2godGhpcy5hY2soZS5pZCkpKSx0aGlzLmNvbm5lY3RlZD9kLmFwcGx5KHRoaXMsdCk6dGhpcy5yZWNlaXZlQnVmZmVyLnB1c2godCl9LGYucHJvdG90eXBlLmFjaz1mdW5jdGlvbihlKXt2YXIgdD10aGlzLHI9ITE7cmV0dXJuIGZ1bmN0aW9uKCl7aWYoIXIpe3I9ITA7dmFyIGE9aShhcmd1bWVudHMpO3MoYHNlbmRpbmcgYWNrICVqYCxhKSx0LnBhY2tldCh7dHlwZTpsKGEpP24uQklOQVJZX0FDSzpuLkFDSyxpZDplLGRhdGE6YX0pfX19LGYucHJvdG90eXBlLm9uYWNrPWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMuYWNrc1tlLmlkXTt0eXBlb2YgdD09YGZ1bmN0aW9uYD8ocyhgY2FsbGluZyBhY2sgJXMgd2l0aCAlamAsZS5pZCxlLmRhdGEpLHQuYXBwbHkodGhpcyxlLmRhdGEpLGRlbGV0ZSB0aGlzLmFja3NbZS5pZF0pOnMoYGJhZCBhY2sgJXNgLGUuaWQpfSxmLnByb3RvdHlwZS5vbmNvbm5lY3Q9ZnVuY3Rpb24oKXt0aGlzLmNvbm5lY3RlZD0hMCx0aGlzLmRpc2Nvbm5lY3RlZD0hMSx0aGlzLmVtaXQoYGNvbm5lY3RgKSx0aGlzLmVtaXRCdWZmZXJlZCgpfSxmLnByb3RvdHlwZS5lbWl0QnVmZmVyZWQ9ZnVuY3Rpb24oKXt2YXIgZTtmb3IoZT0wO2U8dGhpcy5yZWNlaXZlQnVmZmVyLmxlbmd0aDtlKyspZC5hcHBseSh0aGlzLHRoaXMucmVjZWl2ZUJ1ZmZlcltlXSk7Zm9yKHRoaXMucmVjZWl2ZUJ1ZmZlcj1bXSxlPTA7ZTx0aGlzLnNlbmRCdWZmZXIubGVuZ3RoO2UrKyl0aGlzLnBhY2tldCh0aGlzLnNlbmRCdWZmZXJbZV0pO3RoaXMuc2VuZEJ1ZmZlcj1bXX0sZi5wcm90b3R5cGUub25kaXNjb25uZWN0PWZ1bmN0aW9uKCl7cyhgc2VydmVyIGRpc2Nvbm5lY3QgKCVzKWAsdGhpcy5uc3ApLHRoaXMuZGVzdHJveSgpLHRoaXMub25jbG9zZShgaW8gc2VydmVyIGRpc2Nvbm5lY3RgKX0sZi5wcm90b3R5cGUuZGVzdHJveT1mdW5jdGlvbigpe2lmKHRoaXMuc3Vicyl7Zm9yKHZhciBlPTA7ZTx0aGlzLnN1YnMubGVuZ3RoO2UrKyl0aGlzLnN1YnNbZV0uZGVzdHJveSgpO3RoaXMuc3Vicz1udWxsfXRoaXMuaW8uZGVzdHJveSh0aGlzKX0sZi5wcm90b3R5cGUuY2xvc2U9Zi5wcm90b3R5cGUuZGlzY29ubmVjdD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmNvbm5lY3RlZCYmKHMoYHBlcmZvcm1pbmcgZGlzY29ubmVjdCAoJXMpYCx0aGlzLm5zcCksdGhpcy5wYWNrZXQoe3R5cGU6bi5ESVNDT05ORUNUfSkpLHRoaXMuZGVzdHJveSgpLHRoaXMuY29ubmVjdGVkJiZ0aGlzLm9uY2xvc2UoYGlvIGNsaWVudCBkaXNjb25uZWN0YCksdGhpc30sZi5wcm90b3R5cGUuY29tcHJlc3M9ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuZmxhZ3MuY29tcHJlc3M9ZSx0aGlzfSxmLnByb3RvdHlwZS5iaW5hcnk9ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuZmxhZ3MuYmluYXJ5PWUsdGhpc319KSksdmM9cygoKGUsdCk9Pnt0LmV4cG9ydHM9bjtmdW5jdGlvbiBuKGUpe2V8fD17fSx0aGlzLm1zPWUubWlufHwxMDAsdGhpcy5tYXg9ZS5tYXh8fDFlNCx0aGlzLmZhY3Rvcj1lLmZhY3Rvcnx8Mix0aGlzLmppdHRlcj1lLmppdHRlcj4wJiZlLmppdHRlcjw9MT9lLmppdHRlcjowLHRoaXMuYXR0ZW1wdHM9MH1uLnByb3RvdHlwZS5kdXJhdGlvbj1mdW5jdGlvbigpe3ZhciBlPXRoaXMubXMqdGhpcy5mYWN0b3IqKisgdGhpcy5hdHRlbXB0cysrO2lmKHRoaXMuaml0dGVyKXt2YXIgdD1NYXRoLnJhbmRvbSgpLG49TWF0aC5mbG9vcih0KnRoaXMuaml0dGVyKmUpO2U9TWF0aC5mbG9vcih0KjEwKSYxP2UrbjplLW59cmV0dXJuIE1hdGgubWluKGUsdGhpcy5tYXgpfDB9LG4ucHJvdG90eXBlLnJlc2V0PWZ1bmN0aW9uKCl7dGhpcy5hdHRlbXB0cz0wfSxuLnByb3RvdHlwZS5zZXRNaW49ZnVuY3Rpb24oZSl7dGhpcy5tcz1lfSxuLnByb3RvdHlwZS5zZXRNYXg9ZnVuY3Rpb24oZSl7dGhpcy5tYXg9ZX0sbi5wcm90b3R5cGUuc2V0Sml0dGVyPWZ1bmN0aW9uKGUpe3RoaXMuaml0dGVyPWV9fSkpLHljPXMoKChlLHQpPT57dmFyIG49ZGMoKSxyPV9jKCksaT1mYygpLGE9QnMoKSxvPW1jKCkscz1oYygpLGM9anMoKShgc29ja2V0LmlvLWNsaWVudDptYW5hZ2VyYCksbD1jYygpLHU9dmMoKSxkPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7dC5leHBvcnRzPWY7ZnVuY3Rpb24gZihlLHQpe2lmKCEodGhpcyBpbnN0YW5jZW9mIGYpKXJldHVybiBuZXcgZihlLHQpO2UmJnR5cGVvZiBlPT1gb2JqZWN0YCYmKHQ9ZSxlPXZvaWQgMCksdHx8PXt9LHQucGF0aD10LnBhdGh8fGAvc29ja2V0LmlvYCx0aGlzLm5zcHM9e30sdGhpcy5zdWJzPVtdLHRoaXMub3B0cz10LHRoaXMucmVjb25uZWN0aW9uKHQucmVjb25uZWN0aW9uIT09ITEpLHRoaXMucmVjb25uZWN0aW9uQXR0ZW1wdHModC5yZWNvbm5lY3Rpb25BdHRlbXB0c3x8MS8wKSx0aGlzLnJlY29ubmVjdGlvbkRlbGF5KHQucmVjb25uZWN0aW9uRGVsYXl8fDFlMyksdGhpcy5yZWNvbm5lY3Rpb25EZWxheU1heCh0LnJlY29ubmVjdGlvbkRlbGF5TWF4fHw1ZTMpLHRoaXMucmFuZG9taXphdGlvbkZhY3Rvcih0LnJhbmRvbWl6YXRpb25GYWN0b3J8fC41KSx0aGlzLmJhY2tvZmY9bmV3IHUoe21pbjp0aGlzLnJlY29ubmVjdGlvbkRlbGF5KCksbWF4OnRoaXMucmVjb25uZWN0aW9uRGVsYXlNYXgoKSxqaXR0ZXI6dGhpcy5yYW5kb21pemF0aW9uRmFjdG9yKCl9KSx0aGlzLnRpbWVvdXQodC50aW1lb3V0PT1udWxsPzJlNDp0LnRpbWVvdXQpLHRoaXMucmVhZHlTdGF0ZT1gY2xvc2VkYCx0aGlzLnVyaT1lLHRoaXMuY29ubmVjdGluZz1bXSx0aGlzLmxhc3RQaW5nPW51bGwsdGhpcy5lbmNvZGluZz0hMSx0aGlzLnBhY2tldEJ1ZmZlcj1bXTt2YXIgbj10LnBhcnNlcnx8YTt0aGlzLmVuY29kZXI9bmV3IG4uRW5jb2Rlcix0aGlzLmRlY29kZXI9bmV3IG4uRGVjb2Rlcix0aGlzLmF1dG9Db25uZWN0PXQuYXV0b0Nvbm5lY3QhPT0hMSx0aGlzLmF1dG9Db25uZWN0JiZ0aGlzLm9wZW4oKX1mLnByb3RvdHlwZS5lbWl0QWxsPWZ1bmN0aW9uKCl7Zm9yKHZhciBlIGluIHRoaXMuZW1pdC5hcHBseSh0aGlzLGFyZ3VtZW50cyksdGhpcy5uc3BzKWQuY2FsbCh0aGlzLm5zcHMsZSkmJnRoaXMubnNwc1tlXS5lbWl0LmFwcGx5KHRoaXMubnNwc1tlXSxhcmd1bWVudHMpfSxmLnByb3RvdHlwZS51cGRhdGVTb2NrZXRJZHM9ZnVuY3Rpb24oKXtmb3IodmFyIGUgaW4gdGhpcy5uc3BzKWQuY2FsbCh0aGlzLm5zcHMsZSkmJih0aGlzLm5zcHNbZV0uaWQ9dGhpcy5nZW5lcmF0ZUlkKGUpKX0sZi5wcm90b3R5cGUuZ2VuZXJhdGVJZD1mdW5jdGlvbihlKXtyZXR1cm4oZT09PWAvYD9gYDplK2AjYCkrdGhpcy5lbmdpbmUuaWR9LGkoZi5wcm90b3R5cGUpLGYucHJvdG90eXBlLnJlY29ubmVjdGlvbj1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odGhpcy5fcmVjb25uZWN0aW9uPSEhZSx0aGlzKTp0aGlzLl9yZWNvbm5lY3Rpb259LGYucHJvdG90eXBlLnJlY29ubmVjdGlvbkF0dGVtcHRzPWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0aGlzLl9yZWNvbm5lY3Rpb25BdHRlbXB0cz1lLHRoaXMpOnRoaXMuX3JlY29ubmVjdGlvbkF0dGVtcHRzfSxmLnByb3RvdHlwZS5yZWNvbm5lY3Rpb25EZWxheT1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odGhpcy5fcmVjb25uZWN0aW9uRGVsYXk9ZSx0aGlzLmJhY2tvZmYmJnRoaXMuYmFja29mZi5zZXRNaW4oZSksdGhpcyk6dGhpcy5fcmVjb25uZWN0aW9uRGVsYXl9LGYucHJvdG90eXBlLnJhbmRvbWl6YXRpb25GYWN0b3I9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHRoaXMuX3JhbmRvbWl6YXRpb25GYWN0b3I9ZSx0aGlzLmJhY2tvZmYmJnRoaXMuYmFja29mZi5zZXRKaXR0ZXIoZSksdGhpcyk6dGhpcy5fcmFuZG9taXphdGlvbkZhY3Rvcn0sZi5wcm90b3R5cGUucmVjb25uZWN0aW9uRGVsYXlNYXg9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHRoaXMuX3JlY29ubmVjdGlvbkRlbGF5TWF4PWUsdGhpcy5iYWNrb2ZmJiZ0aGlzLmJhY2tvZmYuc2V0TWF4KGUpLHRoaXMpOnRoaXMuX3JlY29ubmVjdGlvbkRlbGF5TWF4fSxmLnByb3RvdHlwZS50aW1lb3V0PWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0aGlzLl90aW1lb3V0PWUsdGhpcyk6dGhpcy5fdGltZW91dH0sZi5wcm90b3R5cGUubWF5YmVSZWNvbm5lY3RPbk9wZW49ZnVuY3Rpb24oKXshdGhpcy5yZWNvbm5lY3RpbmcmJnRoaXMuX3JlY29ubmVjdGlvbiYmdGhpcy5iYWNrb2ZmLmF0dGVtcHRzPT09MCYmdGhpcy5yZWNvbm5lY3QoKX0sZi5wcm90b3R5cGUub3Blbj1mLnByb3RvdHlwZS5jb25uZWN0PWZ1bmN0aW9uKGUsdCl7aWYoYyhgcmVhZHlTdGF0ZSAlc2AsdGhpcy5yZWFkeVN0YXRlKSx+dGhpcy5yZWFkeVN0YXRlLmluZGV4T2YoYG9wZW5gKSlyZXR1cm4gdGhpcztjKGBvcGVuaW5nICVzYCx0aGlzLnVyaSksdGhpcy5lbmdpbmU9bih0aGlzLnVyaSx0aGlzLm9wdHMpO3ZhciByPXRoaXMuZW5naW5lLGk9dGhpczt0aGlzLnJlYWR5U3RhdGU9YG9wZW5pbmdgLHRoaXMuc2tpcFJlY29ubmVjdD0hMTt2YXIgYT1vKHIsYG9wZW5gLGZ1bmN0aW9uKCl7aS5vbm9wZW4oKSxlJiZlKCl9KSxzPW8ocixgZXJyb3JgLGZ1bmN0aW9uKHQpe2lmKGMoYGNvbm5lY3RfZXJyb3JgKSxpLmNsZWFudXAoKSxpLnJlYWR5U3RhdGU9YGNsb3NlZGAsaS5lbWl0QWxsKGBjb25uZWN0X2Vycm9yYCx0KSxlKXt2YXIgbj1FcnJvcihgQ29ubmVjdGlvbiBlcnJvcmApO24uZGF0YT10LGUobil9ZWxzZSBpLm1heWJlUmVjb25uZWN0T25PcGVuKCl9KTtpZighMSE9PXRoaXMuX3RpbWVvdXQpe3ZhciBsPXRoaXMuX3RpbWVvdXQ7YyhgY29ubmVjdCBhdHRlbXB0IHdpbGwgdGltZW91dCBhZnRlciAlZGAsbCk7dmFyIHU9c2V0VGltZW91dChmdW5jdGlvbigpe2MoYGNvbm5lY3QgYXR0ZW1wdCB0aW1lZCBvdXQgYWZ0ZXIgJWRgLGwpLGEuZGVzdHJveSgpLHIuY2xvc2UoKSxyLmVtaXQoYGVycm9yYCxgdGltZW91dGApLGkuZW1pdEFsbChgY29ubmVjdF90aW1lb3V0YCxsKX0sbCk7dGhpcy5zdWJzLnB1c2goe2Rlc3Ryb3k6ZnVuY3Rpb24oKXtjbGVhclRpbWVvdXQodSl9fSl9cmV0dXJuIHRoaXMuc3Vicy5wdXNoKGEpLHRoaXMuc3Vicy5wdXNoKHMpLHRoaXN9LGYucHJvdG90eXBlLm9ub3Blbj1mdW5jdGlvbigpe2MoYG9wZW5gKSx0aGlzLmNsZWFudXAoKSx0aGlzLnJlYWR5U3RhdGU9YG9wZW5gLHRoaXMuZW1pdChgb3BlbmApO3ZhciBlPXRoaXMuZW5naW5lO3RoaXMuc3Vicy5wdXNoKG8oZSxgZGF0YWAscyh0aGlzLGBvbmRhdGFgKSkpLHRoaXMuc3Vicy5wdXNoKG8oZSxgcGluZ2Ascyh0aGlzLGBvbnBpbmdgKSkpLHRoaXMuc3Vicy5wdXNoKG8oZSxgcG9uZ2Ascyh0aGlzLGBvbnBvbmdgKSkpLHRoaXMuc3Vicy5wdXNoKG8oZSxgZXJyb3JgLHModGhpcyxgb25lcnJvcmApKSksdGhpcy5zdWJzLnB1c2gobyhlLGBjbG9zZWAscyh0aGlzLGBvbmNsb3NlYCkpKSx0aGlzLnN1YnMucHVzaChvKHRoaXMuZGVjb2RlcixgZGVjb2RlZGAscyh0aGlzLGBvbmRlY29kZWRgKSkpfSxmLnByb3RvdHlwZS5vbnBpbmc9ZnVuY3Rpb24oKXt0aGlzLmxhc3RQaW5nPW5ldyBEYXRlLHRoaXMuZW1pdEFsbChgcGluZ2ApfSxmLnByb3RvdHlwZS5vbnBvbmc9ZnVuY3Rpb24oKXt0aGlzLmVtaXRBbGwoYHBvbmdgLG5ldyBEYXRlLXRoaXMubGFzdFBpbmcpfSxmLnByb3RvdHlwZS5vbmRhdGE9ZnVuY3Rpb24oZSl7dGhpcy5kZWNvZGVyLmFkZChlKX0sZi5wcm90b3R5cGUub25kZWNvZGVkPWZ1bmN0aW9uKGUpe3RoaXMuZW1pdChgcGFja2V0YCxlKX0sZi5wcm90b3R5cGUub25lcnJvcj1mdW5jdGlvbihlKXtjKGBlcnJvcmAsZSksdGhpcy5lbWl0QWxsKGBlcnJvcmAsZSl9LGYucHJvdG90eXBlLnNvY2tldD1mdW5jdGlvbihlLHQpe3ZhciBuPXRoaXMubnNwc1tlXTtpZighbil7bj1uZXcgcih0aGlzLGUsdCksdGhpcy5uc3BzW2VdPW47dmFyIGk9dGhpcztuLm9uKGBjb25uZWN0aW5nYCxhKSxuLm9uKGBjb25uZWN0YCxmdW5jdGlvbigpe24uaWQ9aS5nZW5lcmF0ZUlkKGUpfSksdGhpcy5hdXRvQ29ubmVjdCYmYSgpfWZ1bmN0aW9uIGEoKXt+bChpLmNvbm5lY3Rpbmcsbil8fGkuY29ubmVjdGluZy5wdXNoKG4pfXJldHVybiBufSxmLnByb3RvdHlwZS5kZXN0cm95PWZ1bmN0aW9uKGUpe3ZhciB0PWwodGhpcy5jb25uZWN0aW5nLGUpO350JiZ0aGlzLmNvbm5lY3Rpbmcuc3BsaWNlKHQsMSksIXRoaXMuY29ubmVjdGluZy5sZW5ndGgmJnRoaXMuY2xvc2UoKX0sZi5wcm90b3R5cGUucGFja2V0PWZ1bmN0aW9uKGUpe2MoYHdyaXRpbmcgcGFja2V0ICVqYCxlKTt2YXIgdD10aGlzO2UucXVlcnkmJmUudHlwZT09PTAmJihlLm5zcCs9YD9gK2UucXVlcnkpLHQuZW5jb2Rpbmc/dC5wYWNrZXRCdWZmZXIucHVzaChlKToodC5lbmNvZGluZz0hMCx0aGlzLmVuY29kZXIuZW5jb2RlKGUsZnVuY3Rpb24obil7Zm9yKHZhciByPTA7cjxuLmxlbmd0aDtyKyspdC5lbmdpbmUud3JpdGUobltyXSxlLm9wdGlvbnMpO3QuZW5jb2Rpbmc9ITEsdC5wcm9jZXNzUGFja2V0UXVldWUoKX0pKX0sZi5wcm90b3R5cGUucHJvY2Vzc1BhY2tldFF1ZXVlPWZ1bmN0aW9uKCl7aWYodGhpcy5wYWNrZXRCdWZmZXIubGVuZ3RoPjAmJiF0aGlzLmVuY29kaW5nKXt2YXIgZT10aGlzLnBhY2tldEJ1ZmZlci5zaGlmdCgpO3RoaXMucGFja2V0KGUpfX0sZi5wcm90b3R5cGUuY2xlYW51cD1mdW5jdGlvbigpe2MoYGNsZWFudXBgKTtmb3IodmFyIGU9dGhpcy5zdWJzLmxlbmd0aCx0PTA7dDxlO3QrKyl0aGlzLnN1YnMuc2hpZnQoKS5kZXN0cm95KCk7dGhpcy5wYWNrZXRCdWZmZXI9W10sdGhpcy5lbmNvZGluZz0hMSx0aGlzLmxhc3RQaW5nPW51bGwsdGhpcy5kZWNvZGVyLmRlc3Ryb3koKX0sZi5wcm90b3R5cGUuY2xvc2U9Zi5wcm90b3R5cGUuZGlzY29ubmVjdD1mdW5jdGlvbigpe2MoYGRpc2Nvbm5lY3RgKSx0aGlzLnNraXBSZWNvbm5lY3Q9ITAsdGhpcy5yZWNvbm5lY3Rpbmc9ITEsdGhpcy5yZWFkeVN0YXRlPT09YG9wZW5pbmdgJiZ0aGlzLmNsZWFudXAoKSx0aGlzLmJhY2tvZmYucmVzZXQoKSx0aGlzLnJlYWR5U3RhdGU9YGNsb3NlZGAsdGhpcy5lbmdpbmUmJnRoaXMuZW5naW5lLmNsb3NlKCl9LGYucHJvdG90eXBlLm9uY2xvc2U9ZnVuY3Rpb24oZSl7Yyhgb25jbG9zZWApLHRoaXMuY2xlYW51cCgpLHRoaXMuYmFja29mZi5yZXNldCgpLHRoaXMucmVhZHlTdGF0ZT1gY2xvc2VkYCx0aGlzLmVtaXQoYGNsb3NlYCxlKSx0aGlzLl9yZWNvbm5lY3Rpb24mJiF0aGlzLnNraXBSZWNvbm5lY3QmJnRoaXMucmVjb25uZWN0KCl9LGYucHJvdG90eXBlLnJlY29ubmVjdD1mdW5jdGlvbigpe2lmKHRoaXMucmVjb25uZWN0aW5nfHx0aGlzLnNraXBSZWNvbm5lY3QpcmV0dXJuIHRoaXM7dmFyIGU9dGhpcztpZih0aGlzLmJhY2tvZmYuYXR0ZW1wdHM+PXRoaXMuX3JlY29ubmVjdGlvbkF0dGVtcHRzKWMoYHJlY29ubmVjdCBmYWlsZWRgKSx0aGlzLmJhY2tvZmYucmVzZXQoKSx0aGlzLmVtaXRBbGwoYHJlY29ubmVjdF9mYWlsZWRgKSx0aGlzLnJlY29ubmVjdGluZz0hMTtlbHNle3ZhciB0PXRoaXMuYmFja29mZi5kdXJhdGlvbigpO2MoYHdpbGwgd2FpdCAlZG1zIGJlZm9yZSByZWNvbm5lY3QgYXR0ZW1wdGAsdCksdGhpcy5yZWNvbm5lY3Rpbmc9ITA7dmFyIG49c2V0VGltZW91dChmdW5jdGlvbigpe2Uuc2tpcFJlY29ubmVjdHx8KGMoYGF0dGVtcHRpbmcgcmVjb25uZWN0YCksZS5lbWl0QWxsKGByZWNvbm5lY3RfYXR0ZW1wdGAsZS5iYWNrb2ZmLmF0dGVtcHRzKSxlLmVtaXRBbGwoYHJlY29ubmVjdGluZ2AsZS5iYWNrb2ZmLmF0dGVtcHRzKSwhZS5za2lwUmVjb25uZWN0JiZlLm9wZW4oZnVuY3Rpb24odCl7dD8oYyhgcmVjb25uZWN0IGF0dGVtcHQgZXJyb3JgKSxlLnJlY29ubmVjdGluZz0hMSxlLnJlY29ubmVjdCgpLGUuZW1pdEFsbChgcmVjb25uZWN0X2Vycm9yYCx0LmRhdGEpKTooYyhgcmVjb25uZWN0IHN1Y2Nlc3NgKSxlLm9ucmVjb25uZWN0KCkpfSkpfSx0KTt0aGlzLnN1YnMucHVzaCh7ZGVzdHJveTpmdW5jdGlvbigpe2NsZWFyVGltZW91dChuKX19KX19LGYucHJvdG90eXBlLm9ucmVjb25uZWN0PWZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5iYWNrb2ZmLmF0dGVtcHRzO3RoaXMucmVjb25uZWN0aW5nPSExLHRoaXMuYmFja29mZi5yZXNldCgpLHRoaXMudXBkYXRlU29ja2V0SWRzKCksdGhpcy5lbWl0QWxsKGByZWNvbm5lY3RgLGUpfX0pKSxiYz1zKCgoZSx0KT0+e3ZhciBuPU1zKCkscj1CcygpLGk9eWMoKSxhPWpzKCkoYHNvY2tldC5pby1jbGllbnRgKTt0LmV4cG9ydHM9ZT1zO3ZhciBvPWUubWFuYWdlcnM9e307ZnVuY3Rpb24gcyhlLHQpe3R5cGVvZiBlPT1gb2JqZWN0YCYmKHQ9ZSxlPXZvaWQgMCksdHx8PXt9O3ZhciByPW4oZSkscz1yLnNvdXJjZSxjPXIuaWQsbD1yLnBhdGgsdT1vW2NdJiZsIGluIG9bY10ubnNwcyxkPXQuZm9yY2VOZXd8fHRbYGZvcmNlIG5ldyBjb25uZWN0aW9uYF18fCExPT09dC5tdWx0aXBsZXh8fHUsZjtyZXR1cm4gZD8oYShgaWdub3Jpbmcgc29ja2V0IGNhY2hlIGZvciAlc2AscyksZj1pKHMsdCkpOihvW2NdfHwoYShgbmV3IGlvIGluc3RhbmNlIGZvciAlc2Ascyksb1tjXT1pKHMsdCkpLGY9b1tjXSksci5xdWVyeSYmIXQucXVlcnkmJih0LnF1ZXJ5PXIucXVlcnkpLGYuc29ja2V0KHIucGF0aCx0KX1lLnByb3RvY29sPXIucHJvdG9jb2wsZS5jb25uZWN0PXMsZS5NYW5hZ2VyPXljKCksZS5Tb2NrZXQ9X2MoKX0pKSx4Yz1jKHtkZWZhdWx0OigpPT5TY30pO2Z1bmN0aW9uIFNjKGUsdCl7cmV0dXJuIHR8fD17fSxuZXcgUHJvbWlzZShmdW5jdGlvbihuLHIpe3ZhciBpPW5ldyBYTUxIdHRwUmVxdWVzdCxhPVtdLG89W10scz17fSxjPWZ1bmN0aW9uKCl7cmV0dXJue29rOihpLnN0YXR1cy8xMDB8MCk9PTIsc3RhdHVzVGV4dDppLnN0YXR1c1RleHQsc3RhdHVzOmkuc3RhdHVzLHVybDppLnJlc3BvbnNlVVJMLHRleHQ6ZnVuY3Rpb24oKXtyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKGkucmVzcG9uc2VUZXh0KX0sanNvbjpmdW5jdGlvbigpe3JldHVybiBQcm9taXNlLnJlc29sdmUoaS5yZXNwb25zZVRleHQpLnRoZW4oSlNPTi5wYXJzZSl9LGJsb2I6ZnVuY3Rpb24oKXtyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKG5ldyBCbG9iKFtpLnJlc3BvbnNlXSkpfSxjbG9uZTpjLGhlYWRlcnM6e2tleXM6ZnVuY3Rpb24oKXtyZXR1cm4gYX0sZW50cmllczpmdW5jdGlvbigpe3JldHVybiBvfSxnZXQ6ZnVuY3Rpb24oZSl7cmV0dXJuIHNbZS50b0xvd2VyQ2FzZSgpXX0saGFzOmZ1bmN0aW9uKGUpe3JldHVybiBlLnRvTG93ZXJDYXNlKClpbiBzfX19fTtmb3IodmFyIGwgaW4gaS5vcGVuKHQubWV0aG9kfHxgZ2V0YCxlLCEwKSxpLm9ubG9hZD1mdW5jdGlvbigpe2kuZ2V0QWxsUmVzcG9uc2VIZWFkZXJzKCkucmVwbGFjZSgvXiguKj8pOlteXFNcbl0qKFtcc1xTXSo/KSQvZ20sZnVuY3Rpb24oZSx0LG4pe2EucHVzaCh0PXQudG9Mb3dlckNhc2UoKSksby5wdXNoKFt0LG5dKSxzW3RdPXNbdF0/c1t0XStgLGArbjpufSksbihjKCkpfSxpLm9uZXJyb3I9cixpLndpdGhDcmVkZW50aWFscz10LmNyZWRlbnRpYWxzPT1gaW5jbHVkZWAsdC5oZWFkZXJzKWkuc2V0UmVxdWVzdEhlYWRlcihsLHQuaGVhZGVyc1tsXSk7aS5zZW5kKHQuYm9keXx8bnVsbCl9KX12YXIgQ2M9bygoKCk9Pnt9KSksd2M9cygoKGUsdCk9Pnt0LmV4cG9ydHM9c2VsZi5mZXRjaHx8KHNlbGYuZmV0Y2g9KENjKCksZCh4YykpLmRlZmF1bHR8fChDYygpLGQoeGMpKSl9KSksVGM9cygoZT0+e3ZhciB0PWUmJmUuX19pbXBvcnREZWZhdWx0fHxmdW5jdGlvbihlKXtyZXR1cm4gZSYmZS5fX2VzTW9kdWxlP2U6e2RlZmF1bHQ6ZX19O09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLGBfX2VzTW9kdWxlYCx7dmFsdWU6ITB9KSxlLmZldGNoQmFsYW5jZXJDb25maWc9dm9pZCAwO3ZhciBuPURzKCkscj10KHdjKCkpO2UuZmV0Y2hCYWxhbmNlckNvbmZpZz1mdW5jdGlvbihlKXtyZXR1cm4oMCxuLmRlYnVnKShgdXNpbmcgYmFsYW5jZXIgJHtlfSB0byBnZXQgd2Vic29ja2V0IHVybGApLCgwLHIuZGVmYXVsdCkoYCR7ZX1gKS50aGVuKGZ1bmN0aW9uKGUpe3JldHVybiBlLmpzb24oKX0pLnRoZW4oZnVuY3Rpb24oZSl7cmV0dXJuIGU/LnVybCYmZT8udG9rZW4/KCgwLG4uZGVidWcpKGBiYWxhbmNlciByZXR1cm5zIHVybCAke2U/LnVybH0gYW5kIHRva2VuICR7ZT8udG9rZW59YCksZSk6KCgwLG4uZGVidWcpKGBiYWxhbmNlciByZXR1cm5zIGludmFsaWQgcmVzcG9uc2VgKSxudWxsKX0pLmNhdGNoKGZ1bmN0aW9uKGUpe3JldHVybigwLG4uZGVidWcpKGBmYWlsZWQgdG8gcmVzb2x2ZSB1cmw6ICR7ZS5tZXNzYWdlfWApLG51bGx9KX19KSksRWM9cygoZT0+e3ZhciB0PWUmJmUuX19leHRlbmRzfHwoZnVuY3Rpb24oKXt2YXIgZT1mdW5jdGlvbih0LG4pe3JldHVybiBlPU9iamVjdC5zZXRQcm90b3R5cGVPZnx8e19fcHJvdG9fXzpbXX1pbnN0YW5jZW9mIEFycmF5JiZmdW5jdGlvbihlLHQpe2UuX19wcm90b19fPXR9fHxmdW5jdGlvbihlLHQpe2Zvcih2YXIgbiBpbiB0KU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LG4pJiYoZVtuXT10W25dKX0sZSh0LG4pfTtyZXR1cm4gZnVuY3Rpb24odCxuKXtpZih0eXBlb2YgbiE9YGZ1bmN0aW9uYCYmbiE9PW51bGwpdGhyb3cgVHlwZUVycm9yKGBDbGFzcyBleHRlbmRzIHZhbHVlIGArU3RyaW5nKG4pK2AgaXMgbm90IGEgY29uc3RydWN0b3Igb3IgbnVsbGApO2UodCxuKTtmdW5jdGlvbiByKCl7dGhpcy5jb25zdHJ1Y3Rvcj10fXQucHJvdG90eXBlPW49PT1udWxsP09iamVjdC5jcmVhdGUobik6KHIucHJvdG90eXBlPW4ucHJvdG90eXBlLG5ldyByKX19KSgpLG49ZSYmZS5fX3NwcmVhZEFycmF5fHxmdW5jdGlvbihlLHQsbil7aWYobnx8YXJndW1lbnRzLmxlbmd0aD09PTIpZm9yKHZhciByPTAsaT10Lmxlbmd0aCxhO3I8aTtyKyspKGF8fCEociBpbiB0KSkmJihhfHw9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwodCwwLHIpLGFbcl09dFtyXSk7cmV0dXJuIGUuY29uY2F0KGF8fEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKHQpKX0scj1lJiZlLl9faW1wb3J0RGVmYXVsdHx8ZnVuY3Rpb24oZSl7cmV0dXJuIGUmJmUuX19lc01vZHVsZT9lOntkZWZhdWx0OmV9fTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxgX19lc01vZHVsZWAse3ZhbHVlOiEwfSksZS5Tb2NrZXRNb2NrPXZvaWQgMDt2YXIgaT1EcygpO2UuU29ja2V0TW9jaz1mdW5jdGlvbihlKXt0KHIsZSk7ZnVuY3Rpb24gcih0KXt2YXIgbj1lLmNhbGwodGhpcyl8fHRoaXM7cmV0dXJuIG4ub3B0aW9ucz10LG4uaWQ9YG1vY2tgLG4uY29ubmVjdGVkPSExLG4uZGlzY29ubmVjdGVkPSEwLG4uYmluYXJ5VHlwZT1gYmxvYmAsbn1yZXR1cm4gci5wcm90b3R5cGUub3Blbj1mdW5jdGlvbigpe3ZhciBlPXRoaXM7cmV0dXJuKDAsaS5kZWJ1ZykoYFNvY2tldElPTW9jazogY29ubmVjdGApLHRoaXMub25jZShgdmlzaXRvci5jb25uZWN0YCxmdW5jdGlvbih0LG4pe24obnVsbCxlLm9wdGlvbnMuY29ubmVjdERhdGEpfSksdGhpcy5jb25uZWN0ZWQ9ITAsdGhpcy5kaXNjb25uZWN0ZWQ9ITEsdGhpcy5lbWl0KGBjb25uZWN0YCksdGhpc30sci5wcm90b3R5cGUuY2xvc2U9ZnVuY3Rpb24oKXtyZXR1cm4oMCxpLmRlYnVnKShgU29ja2V0SU9Nb2NrOiBkaXNjb25uZWN0YCksdGhpcy5jb25uZWN0ZWQ9ITEsdGhpcy5kaXNjb25uZWN0ZWQ9ITEsdGhpcy5lbWl0KGBkaXNjb25uZWN0YCxgaW8gY2xpZW50IGRpc2Nvbm5lY3RgKSx0aGlzfSxyLnByb3RvdHlwZS5lbWl0PWZ1bmN0aW9uKHQpe3ZhciByPVsuLi5hcmd1bWVudHNdLnNsaWNlKDEpO3JldHVybiBpLmRlYnVnLmFwcGx5KHZvaWQgMCxuKFtgU29ja2V0SU9Nb2NrOiBlbWl0YF0sciwhMSkpLCh0PT09YGNvbm5lY3RgfHx0PT09YGRpc2Nvbm5lY3RgfHx0PT09YHZpc2l0b3IuY29ubmVjdGApJiZlLnByb3RvdHlwZS5lbWl0LmFwcGx5KHRoaXMsbihbdF0sciwhMSkpLHRoaXN9LHIucHJvdG90eXBlLnNlbmQ9ZnVuY3Rpb24oKXt2YXIgZT1bLi4uYXJndW1lbnRzXTtyZXR1cm4gdGhpcy5lbWl0LmFwcGx5KHRoaXMsbihbZVswXV0sZS5zbGljZSgxKSwhMSkpfSxyLnByb3RvdHlwZS5jb21wcmVzcz1mdW5jdGlvbigpe3JldHVybiB0aGlzfSxyLnByb3RvdHlwZS5jb25uZWN0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMub3BlbigpfSxyLnByb3RvdHlwZS5kaXNjb25uZWN0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2xvc2UoKX0sci5wcm90b3R5cGUuaGFzTGlzdGVuZXJzPWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmxpc3RlbmVyQ291bnQoZSk9PT0wfSxyLnByb3RvdHlwZS5hZGRFdmVudExpc3RlbmVyPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIHRoaXMuYWRkTGlzdGVuZXIoZSx0KSx0aGlzfSxyLnByb3RvdHlwZS5yZW1vdmVFdmVudExpc3RlbmVyPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIHRoaXMucmVtb3ZlTGlzdGVuZXIoZSx0KSx0aGlzfSxyfShyKE9zKCkpLmRlZmF1bHQpfSkpLERjPXMoKGU9Pnt2YXIgdD1lJiZlLl9fYXNzaWdufHxmdW5jdGlvbigpe3JldHVybiB0PU9iamVjdC5hc3NpZ258fGZ1bmN0aW9uKGUpe2Zvcih2YXIgdCxuPTEscj1hcmd1bWVudHMubGVuZ3RoO248cjtuKyspZm9yKHZhciBpIGluIHQ9YXJndW1lbnRzW25dLHQpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQsaSkmJihlW2ldPXRbaV0pO3JldHVybiBlfSx0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX0sbj1lJiZlLl9fY3JlYXRlQmluZGluZ3x8KE9iamVjdC5jcmVhdGU/KGZ1bmN0aW9uKGUsdCxuLHIpe3I9PT12b2lkIDAmJihyPW4pO3ZhciBpPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodCxuKTsoIWl8fChgZ2V0YGluIGk/IXQuX19lc01vZHVsZTppLndyaXRhYmxlfHxpLmNvbmZpZ3VyYWJsZSkpJiYoaT17ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdFtuXX19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxyLGkpfSk6KGZ1bmN0aW9uKGUsdCxuLHIpe3I9PT12b2lkIDAmJihyPW4pLGVbcl09dFtuXX0pKSxyPWUmJmUuX19leHBvcnRTdGFyfHxmdW5jdGlvbihlLHQpe2Zvcih2YXIgciBpbiBlKXIhPT1gZGVmYXVsdGAmJiFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCxyKSYmbih0LGUscil9LGk9ZSYmZS5fX2F3YWl0ZXJ8fGZ1bmN0aW9uKGUsdCxuLHIpe2Z1bmN0aW9uIGkoZSl7cmV0dXJuIGUgaW5zdGFuY2VvZiBuP2U6bmV3IG4oZnVuY3Rpb24odCl7dChlKX0pfXJldHVybiBuZXcobnx8PVByb21pc2UpKGZ1bmN0aW9uKG4sYSl7ZnVuY3Rpb24gbyhlKXt0cnl7YyhyLm5leHQoZSkpfWNhdGNoKGUpe2EoZSl9fWZ1bmN0aW9uIHMoZSl7dHJ5e2Moci50aHJvdyhlKSl9Y2F0Y2goZSl7YShlKX19ZnVuY3Rpb24gYyhlKXtlLmRvbmU/bihlLnZhbHVlKTppKGUudmFsdWUpLnRoZW4obyxzKX1jKChyPXIuYXBwbHkoZSx0fHxbXSkpLm5leHQoKSl9KX0sYT1lJiZlLl9fZ2VuZXJhdG9yfHxmdW5jdGlvbihlLHQpe3ZhciBuPXtsYWJlbDowLHNlbnQ6ZnVuY3Rpb24oKXtpZihhWzBdJjEpdGhyb3cgYVsxXTtyZXR1cm4gYVsxXX0sdHJ5czpbXSxvcHM6W119LHIsaSxhLG89T2JqZWN0LmNyZWF0ZSgodHlwZW9mIEl0ZXJhdG9yPT1gZnVuY3Rpb25gP0l0ZXJhdG9yOk9iamVjdCkucHJvdG90eXBlKTtyZXR1cm4gby5uZXh0PXMoMCksby50aHJvdz1zKDEpLG8ucmV0dXJuPXMoMiksdHlwZW9mIFN5bWJvbD09YGZ1bmN0aW9uYCYmKG9bU3ltYm9sLml0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSksbztmdW5jdGlvbiBzKGUpe3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gYyhbZSx0XSl9fWZ1bmN0aW9uIGMocyl7aWYocil0aHJvdyBUeXBlRXJyb3IoYEdlbmVyYXRvciBpcyBhbHJlYWR5IGV4ZWN1dGluZy5gKTtmb3IoO28mJihvPTAsc1swXSYmKG49MCkpLG47KXRyeXtpZihyPTEsaSYmKGE9c1swXSYyP2kucmV0dXJuOnNbMF0/aS50aHJvd3x8KChhPWkucmV0dXJuKSYmYS5jYWxsKGkpLDApOmkubmV4dCkmJiEoYT1hLmNhbGwoaSxzWzFdKSkuZG9uZSlyZXR1cm4gYTtzd2l0Y2goaT0wLGEmJihzPVtzWzBdJjIsYS52YWx1ZV0pLHNbMF0pe2Nhc2UgMDpjYXNlIDE6YT1zO2JyZWFrO2Nhc2UgNDpyZXR1cm4gbi5sYWJlbCsrLHt2YWx1ZTpzWzFdLGRvbmU6ITF9O2Nhc2UgNTpuLmxhYmVsKyssaT1zWzFdLHM9WzBdO2NvbnRpbnVlO2Nhc2UgNzpzPW4ub3BzLnBvcCgpLG4udHJ5cy5wb3AoKTtjb250aW51ZTtkZWZhdWx0OmlmKChhPW4udHJ5cywhKGE9YS5sZW5ndGg+MCYmYVthLmxlbmd0aC0xXSkpJiYoc1swXT09PTZ8fHNbMF09PT0yKSl7bj0wO2NvbnRpbnVlfWlmKHNbMF09PT0zJiYoIWF8fHNbMV0+YVswXSYmc1sxXTxhWzNdKSl7bi5sYWJlbD1zWzFdO2JyZWFrfWlmKHNbMF09PT02JiZuLmxhYmVsPGFbMV0pe24ubGFiZWw9YVsxXSxhPXM7YnJlYWt9aWYoYSYmbi5sYWJlbDxhWzJdKXtuLmxhYmVsPWFbMl0sbi5vcHMucHVzaChzKTticmVha31hWzJdJiZuLm9wcy5wb3AoKSxuLnRyeXMucG9wKCk7Y29udGludWV9cz10LmNhbGwoZSxuKX1jYXRjaChlKXtzPVs2LGVdLGk9MH1maW5hbGx5e3I9YT0wfWlmKHNbMF0mNSl0aHJvdyBzWzFdO3JldHVybnt2YWx1ZTpzWzBdP3NbMV06dm9pZCAwLGRvbmU6ITB9fX0sbz1lJiZlLl9faW1wb3J0RGVmYXVsdHx8ZnVuY3Rpb24oZSl7cmV0dXJuIGUmJmUuX19lc01vZHVsZT9lOntkZWZhdWx0OmV9fTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxgX19lc01vZHVsZWAse3ZhbHVlOiEwfSksZS5Tb2NrZXRFcnJvcj12b2lkIDA7dmFyIHM9RHMoKSxjPW8oT3MoKSksbD1vKGJjKCkpLHU9VGMoKSxkPXt0cmFuc3BvcnRzOltgd2Vic29ja2V0YF0scGF0aDpgL3NvY2tldGAscmVjb25uZWN0aW9uOiEwLHJlY29ubmVjdGlvbkRlbGF5OjFlMyxyZWNvbm5lY3Rpb25EZWxheU1heDo1ZTMscmVjb25uZWN0aW9uQXR0ZW1wdHM6MS8wfTtlLmRlZmF1bHQ9ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKGUpe3RoaXMub3B0aW9ucz1lLHRoaXMuaW5pdGlhbGl6ZWQ9ITEsdGhpcy5mb3JjZVJlY29ubmVjdD0hMSx0aGlzLmlkZW50aXR5PW51bGwsdGhpcy5jb25uZWN0aW9uPW51bGwsdGhpcy5jb25uZWN0Q2FsbGJhY2s9bnVsbCx0aGlzLmRpc2Nvbm5lY3RDYWxsYmFjaz1udWxsLHRoaXMuaW5pdERhdGE9bnVsbCx0aGlzLmludGVybmFsUmVjb25uZWN0aW9uPSExLHRoaXMuaW50ZXJuYWxSZWNvbm5lY3Rpbmc9ITEsdGhpcy5pbnRlcm5hbFJlY29ubmVjdGluZ0F0dGVtcHQ9MCx0aGlzLmVtaXR0ZXI9bmV3IGMuZGVmYXVsdCx0aGlzLnNlbmRCdWZmZXI9W10sdGhpcy5vcHRpb25zLm9wdGlvbnM9dCh0KHQoe30sZCksdGhpcy5vcHRpb25zLm9wdGlvbnMpLHthdXRvQ29ubmVjdDohMX0pfXJldHVybiBlLnByb3RvdHlwZS5pbml0Q29ubmVjdGlvbj1mdW5jdGlvbigpe3JldHVybiBpKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBlO3JldHVybiBhKHRoaXMsZnVuY3Rpb24obil7c3dpdGNoKG4ubGFiZWwpe2Nhc2UgMDppZih0aGlzLmNvbm5lY3Rpb24pdGhyb3cgRXJyb3IoYENvbm5lY3Rpb24gYWxyZWFkeSBleGlzdHNgKTtyZXR1cm4gdGhpcy5vcHRpb25zLnNvY2tldD8oKDAscy5kZWJ1ZykoYHVzaW5nIHNvY2tldCAke3RoaXMub3B0aW9ucy5zb2NrZXQuaWR9YCksdGhpcy5pbnRlcm5hbFJlY29ubmVjdGlvbj0hMSx0aGlzLnNldENvbm5lY3Rpb24odGhpcy5vcHRpb25zLnNvY2tldCksWzMsNF0pOlszLDFdO2Nhc2UgMTpyZXR1cm4gdGhpcy5vcHRpb25zLmJhbGFuY2VyVXJsP1s0LCgwLHUuZmV0Y2hCYWxhbmNlckNvbmZpZykodGhpcy5vcHRpb25zLmJhbGFuY2VyVXJsKV06WzMsM107Y2FzZSAyOnJldHVybiBlPW4uc2VudCgpLCgwLHMuZGVidWcpKGBjcmVhdGluZyBzb2NrZXQgdG8gJHtlLnVybH0gd2l0aCB0b2tlbiAke2UudG9rZW59YCksdGhpcy5pbnRlcm5hbFJlY29ubmVjdGlvbj0hMCx0aGlzLnNldENvbm5lY3Rpb24oKDAsbC5kZWZhdWx0KShlLnVybCx0KHQoe30sdGhpcy5vcHRpb25zLm9wdGlvbnMpLHthdXRvQ29ubmVjdDohMSxyZWNvbm5lY3Rpb246ITEscXVlcnk6e3Rva2VuOmUudG9rZW59fSkpLCEwKSxbMyw0XTtjYXNlIDM6aWYodGhpcy5vcHRpb25zLnVybCkoMCxzLmRlYnVnKShgY3JlYXRpbmcgc29ja2V0IHRvICR7dGhpcy5vcHRpb25zLnVybH1gKSx0aGlzLmludGVybmFsUmVjb25uZWN0aW9uPSExLHRoaXMuc2V0Q29ubmVjdGlvbigoMCxsLmRlZmF1bHQpKHRoaXMub3B0aW9ucy51cmwsdCh0KHt9LHRoaXMub3B0aW9ucy5vcHRpb25zKSx7YXV0b0Nvbm5lY3Q6ITF9KSkpO2Vsc2UgdGhyb3cgRXJyb3IoYE1pc3NpbmcgcmVxdWlyZWQgcGFyYW1ldGVyIHVybGApO24ubGFiZWw9NDtjYXNlIDQ6cmV0dXJuWzJdfX0pfSl9LGUucHJvdG90eXBlLnNldENvbm5lY3Rpb249ZnVuY3Rpb24oZSxuKXt2YXIgcj10aGlzO249PT12b2lkIDAmJihuPSExKSx0aGlzLmNvbm5lY3Rpb249ZSx0aGlzLmZvcmNlUmVjb25uZWN0PSExLHRoaXMuaW50ZXJuYWxSZWNvbm5lY3Rpb249bixlLm9uKGBjb25uZWN0X2Vycm9yYCxmdW5jdGlvbihlKXtyLmludGVybmFsUmVjb25uZWN0aW9uJiYoci5jb25uZWN0Q2FsbGJhY2s9bnVsbCwoMCxzLmRlYnVnKShgY29ubmVjdGlvbiB3YXMgbm90IHJlY29ubmVjdGVkYCksci5lbWl0dGVyLmVtaXQoYHJlY29ubmVjdF9lcnJvcmAsZSksci5vcHRpb25zLm9wdGlvbnMucmVjb25uZWN0aW9uQXR0ZW1wdHM+ci5pbnRlcm5hbFJlY29ubmVjdGluZ0F0dGVtcHQrMT9yLnJlY29ubmVjdChyLmludGVybmFsUmVjb25uZWN0aW5nQXR0ZW1wdCsxKTpyLmVtaXR0ZXIuZW1pdChgcmVjb25uZWN0X2ZhaWxlZGAsci5pbnRlcm5hbFJlY29ubmVjdGluZ0F0dGVtcHQpKX0pLGUub24oYGNvbm5lY3RgLGZ1bmN0aW9uKCl7KDAscy5kZWJ1ZykoYHNvY2tldCB3YXMgY29ubmVjdGVkYCksci5pbml0aWFsaXplZD0hMSxyLmludGVybmFsUmVjb25uZWN0aW5nPygoMCxzLmRlYnVnKShgY29ubmVjdGlvbiBpcyByZWNvbm5lY3RlZGApLHIuZW1pdHRlci5lbWl0KGByZWNvbm5lY3RgKSxyLmludGVybmFsUmVjb25uZWN0aW5nPSExLHIuaW50ZXJuYWxSZWNvbm5lY3RpbmdBdHRlbXB0PTApOnIuZW1pdHRlci5lbWl0KGBjb25uZWN0YCksci5pbml0aWFsaXplKCkudGhlbihmdW5jdGlvbihlKXtyZXR1cm4oMCxzLmRlYnVnKShgc29ja2V0IHdhcyBpbml0aWFsaXplZGApLHIub25Jbml0aWFsaXplZChlKSxyLmNvbm5lY3RDYWxsYmFjayYmPShyLmNvbm5lY3RDYWxsYmFjayhudWxsLGUpLG51bGwpLGV9KS5jYXRjaChmdW5jdGlvbihlKXsoMCxzLmRlYnVnKShgc29ja2V0IHdhcyBub3QgaW5pdGlhbGl6ZWQgYCx0KHt9LGUpKSxyLm9uSW5pdGlhbGl6ZUVycm9yKGUpLHIuY29ubmVjdENhbGxiYWNrJiY9KHIuY29ubmVjdENhbGxiYWNrKGUpLG51bGwpfSl9KSxlLm9uKGBkaXNjb25uZWN0YCxmdW5jdGlvbihlKXsoMCxzLmRlYnVnKShgc29ja2V0IHdhcyBkaXNjb25uZWN0ZWQgcmVhc29uPScke2V9J2ApLHIuaW5pdGlhbGl6ZWQ9ITEsKCFyLmludGVybmFsUmVjb25uZWN0aW5nfHxyLmludGVybmFsUmVjb25uZWN0aW5nQXR0ZW1wdD09PTEpJiZzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ci5lbWl0dGVyLmVtaXQoYGRpc2Nvbm5lY3RgLGUpLHIuZGlzY29ubmVjdENhbGxiYWNrJiY9KHIuZGlzY29ubmVjdENhbGxiYWNrKCksbnVsbCl9LDEwMCksci5vcHRpb25zLm9wdGlvbnMucmVjb25uZWN0aW9uJiZyLmludGVybmFsUmVjb25uZWN0aW9uJiYhci5pbnRlcm5hbFJlY29ubmVjdGluZyYmKHIuZm9yY2VSZWNvbm5lY3R8fGUhPT1gaW8gc2VydmVyIGRpc2Nvbm5lY3RgKSYmci5yZWNvbm5lY3QoKX0pLGUub24oYHJlY29ubmVjdGluZ2AsZnVuY3Rpb24oZSl7ci5lbWl0dGVyLmVtaXQoYHJlY29ubmVjdGluZ2AsZSl9KSxlLm9uKGByZWNvbm5lY3RgLGZ1bmN0aW9uKCl7ci5lbWl0dGVyLmVtaXQoYHJlY29ubmVjdGApfSksZS5vbihgcmVjb25uZWN0X2F0dGVtcHRgLGZ1bmN0aW9uKGUpe3IuZW1pdHRlci5lbWl0KGByZWNvbm5lY3RfYXR0ZW1wdGAsZSl9KSxlLm9uKGByZWNvbm5lY3RfZXJyb3JgLGZ1bmN0aW9uKGUpe3IuZW1pdHRlci5lbWl0KGByZWNvbm5lY3RfZXJyb3JgLGUpfSksZS5vbihgcmVjb25uZWN0X2ZhaWxlZGAsZnVuY3Rpb24oKXtyLmVtaXR0ZXIuZW1pdChgcmVjb25uZWN0X2ZhaWxlZGApfSksZS5vbihgZm9yY2VfcmVjb25uZWN0YCxmdW5jdGlvbigpeygwLHMuZGVidWcpKGByZWNlaXZlZCBldmVudCBmb3JjZV9yZWNvbm5lY3QsIHNldHRpbmcgZmxhZyBmb3JjZVJlY29ubmVjdCA9IHRydWVgKSxyLmZvcmNlUmVjb25uZWN0PSEwfSl9LGUucHJvdG90eXBlLmdldENvbm5lY3Rpb249ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jb25uZWN0aW9ufSxlLnByb3RvdHlwZS5pc0Nvbm5lY3RlZD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmNvbm5lY3Rpb24/LmNvbm5lY3RlZHx8ITF9LGUucHJvdG90eXBlLmlzSW5pdGlhbGl6ZWQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pbml0aWFsaXplZH0sZS5wcm90b3R5cGUuZ2V0SW5pdERhdGE9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pbml0RGF0YX0sZS5wcm90b3R5cGUuY29ubmVjdD1mdW5jdGlvbigpe3JldHVybiBpKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBlPXRoaXM7cmV0dXJuIGEodGhpcyxmdW5jdGlvbih0KXtzd2l0Y2godC5sYWJlbCl7Y2FzZSAwOnJldHVybiB0aGlzLmNvbm5lY3Rpb24/WzMsMl06WzQsdGhpcy5pbml0Q29ubmVjdGlvbigpXTtjYXNlIDE6dC5zZW50KCksdC5sYWJlbD0yO2Nhc2UgMjpyZXR1cm5bMixuZXcgUHJvbWlzZShmdW5jdGlvbih0LG4pe2UuaW5pdGlhbGl6ZWQ/dChlLmluaXREYXRhKTooKDAscy5kZWJ1ZykoYHN0YXJ0aW5nIGNvbm5lY3RpbmdgKSxlLmNvbm5lY3RDYWxsYmFjaz0oMCxzLmNyZWF0ZUNhbGxiYWNrKSh0LG4pLGUuY29ubmVjdGlvbi5vcGVuKCkpfSldfX0pfSl9LGUucHJvdG90eXBlLmRpc2Nvbm5lY3Q9ZnVuY3Rpb24oKXt2YXIgZT10aGlzO3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbih0LG4peyFlLmNvbm5lY3Rpb258fGUuY29ubmVjdGlvbi5kaXNjb25uZWN0ZWQ/KGUuY29ubmVjdGlvbj1udWxsLHQoKSk6KCgwLHMuZGVidWcpKGBzdGFydGluZyBkaXNjb25uZWN0aW5nYCksZS5kaXNjb25uZWN0Q2FsbGJhY2s9KDAscy5jcmVhdGVDYWxsYmFjaykodCxuKSxlLmNvbm5lY3Rpb24uY2xvc2UoKSxlLmNvbm5lY3Rpb249bnVsbCl9KX0sZS5wcm90b3R5cGUucmVjb25uZWN0PWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXM7cmV0dXJuIGU9PT12b2lkIDAmJihlPTEpLHRoaXMuaW50ZXJuYWxSZWNvbm5lY3Rpbmc9ITAsdGhpcy5pbnRlcm5hbFJlY29ubmVjdGluZ0F0dGVtcHQ9ZSx0aGlzLmRpc2Nvbm5lY3QoKS50aGVuKGZ1bmN0aW9uKCl7dmFyIG49TWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKih0Lm9wdGlvbnMub3B0aW9ucy5yZWNvbm5lY3Rpb25EZWxheU1heC10Lm9wdGlvbnMub3B0aW9ucy5yZWNvbm5lY3Rpb25EZWxheSkrdC5vcHRpb25zLm9wdGlvbnMucmVjb25uZWN0aW9uRGVsYXkpO3JldHVybigwLHMuZGVidWcpKGBjb25uZWN0aW9uIHdpbGwgcmVjb25uZWN0IGluICR7bn1tc2ApLHQuZW1pdHRlci5lbWl0KGByZWNvbm5lY3RpbmdgLGUpLG5ldyBQcm9taXNlKGZ1bmN0aW9uKGUpe3NldFRpbWVvdXQoZSxuKX0pfSkudGhlbihmdW5jdGlvbigpe3JldHVybigwLHMuZGVidWcpKGBjb25uZWN0aW9uIGlzIHN0YXJ0aW5nIHJlY29ubmVjdGApLHQuZW1pdHRlci5lbWl0KGByZWNvbm5lY3RfYXR0ZW1wdGAsZSksdC5jb25uZWN0KCl9KX0sZS5wcm90b3R5cGUuaW5pdGlhbGl6ZT1mdW5jdGlvbigpe3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihlKXtlKHt9KX0pfSxlLnByb3RvdHlwZS5vbkluaXRpYWxpemVkPWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXM7dGhpcy5pbml0aWFsaXplZHx8KHRoaXMuaW5pdGlhbGl6ZWQ9ITAsdGhpcy5pbml0RGF0YT1lLCgwLHMuZGVidWcpKGBlbWl0IGluaXRpYWxpemVkYCksdGhpcy5lbWl0dGVyLmVtaXQoYGluaXRpYWxpemVkYCxlKSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7aWYodC5zZW5kQnVmZmVyLmxlbmd0aD4wKXsoMCxzLmRlYnVnKShgc2VuZGluZyBidWZmZXJlZCAke3Quc2VuZEJ1ZmZlci5sZW5ndGh9IGV2ZW50c2ApO2Zvcih2YXIgZT0wO2U8dC5zZW5kQnVmZmVyLmxlbmd0aDtlKyspe3ZhciBuPXQuc2VuZEJ1ZmZlcltlXTt0LmNvbm5lY3Rpb24uZW1pdChuLm5hbWUsbi5kYXRhLG4uY2FsbGJhY2spfXQuc2VuZEJ1ZmZlcj1bXX19LDEpKX0sZS5wcm90b3R5cGUub25Jbml0aWFsaXplRXJyb3I9ZnVuY3Rpb24oZSl7dGhpcy5kaXNjb25uZWN0KCksKDAscy5kZWJ1ZykoYGVtaXQgaW5pdGlhbGl6ZV9lcnJvcmAsdCh7fSxlKSksdGhpcy5lbWl0dGVyLmVtaXQoYGluaXRpYWxpemVfZXJyb3JgLGUpfSxlLnByb3RvdHlwZS5zZW5kPWZ1bmN0aW9uKGUsdCxuKXt0aGlzLmluaXRpYWxpemVkP3RoaXMuY29ubmVjdGlvbi5lbWl0KGUsdCxuKTp0aGlzLnNlbmRCdWZmZXIucHVzaCh7bmFtZTplLGRhdGE6dCxjYWxsYmFjazpufSl9LGUucHJvdG90eXBlLm9uPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIHRoaXMuZW1pdHRlci5vbihlLHQpLHRoaXN9LGUucHJvdG90eXBlLm9uY2U9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdGhpcy5lbWl0dGVyLm9uY2UoZSx0KSx0aGlzfSxlLnByb3RvdHlwZS5yZW1vdmVBbGxMaXN0ZW5lcnM9ZnVuY3Rpb24oKXtmb3IodmFyIGUsdD1bXSxuPTA7bjxhcmd1bWVudHMubGVuZ3RoO24rKyl0W25dPWFyZ3VtZW50c1tuXTtyZXR1cm4oZT10aGlzLmVtaXR0ZXIpLnJlbW92ZUFsbExpc3RlbmVycy5hcHBseShlLHQpLHRoaXN9LGV9KCk7dmFyIGY9RHMoKTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxgU29ja2V0RXJyb3JgLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBmLlNvY2tldEVycm9yfX0pLHIoRWMoKSxlKX0pKSxPYz1zKChlPT57dmFyIHQ9ZSYmZS5fX2V4dGVuZHN8fChmdW5jdGlvbigpe3ZhciBlPWZ1bmN0aW9uKHQsbil7cmV0dXJuIGU9T2JqZWN0LnNldFByb3RvdHlwZU9mfHx7X19wcm90b19fOltdfWluc3RhbmNlb2YgQXJyYXkmJmZ1bmN0aW9uKGUsdCl7ZS5fX3Byb3RvX189dH18fGZ1bmN0aW9uKGUsdCl7Zm9yKHZhciBuIGluIHQpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQsbikmJihlW25dPXRbbl0pfSxlKHQsbil9O3JldHVybiBmdW5jdGlvbih0LG4pe2lmKHR5cGVvZiBuIT1gZnVuY3Rpb25gJiZuIT09bnVsbCl0aHJvdyBUeXBlRXJyb3IoYENsYXNzIGV4dGVuZHMgdmFsdWUgYCtTdHJpbmcobikrYCBpcyBub3QgYSBjb25zdHJ1Y3RvciBvciBudWxsYCk7ZSh0LG4pO2Z1bmN0aW9uIHIoKXt0aGlzLmNvbnN0cnVjdG9yPXR9dC5wcm90b3R5cGU9bj09PW51bGw/T2JqZWN0LmNyZWF0ZShuKTooci5wcm90b3R5cGU9bi5wcm90b3R5cGUsbmV3IHIpfX0pKCksbj1lJiZlLl9fYXNzaWdufHxmdW5jdGlvbigpe3JldHVybiBuPU9iamVjdC5hc3NpZ258fGZ1bmN0aW9uKGUpe2Zvcih2YXIgdCxuPTEscj1hcmd1bWVudHMubGVuZ3RoO248cjtuKyspZm9yKHZhciBpIGluIHQ9YXJndW1lbnRzW25dLHQpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQsaSkmJihlW2ldPXRbaV0pO3JldHVybiBlfSxuLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0scj1lJiZlLl9fYXdhaXRlcnx8ZnVuY3Rpb24oZSx0LG4scil7ZnVuY3Rpb24gaShlKXtyZXR1cm4gZSBpbnN0YW5jZW9mIG4/ZTpuZXcgbihmdW5jdGlvbih0KXt0KGUpfSl9cmV0dXJuIG5ldyhufHw9UHJvbWlzZSkoZnVuY3Rpb24obixhKXtmdW5jdGlvbiBvKGUpe3RyeXtjKHIubmV4dChlKSl9Y2F0Y2goZSl7YShlKX19ZnVuY3Rpb24gcyhlKXt0cnl7YyhyLnRocm93KGUpKX1jYXRjaChlKXthKGUpfX1mdW5jdGlvbiBjKGUpe2UuZG9uZT9uKGUudmFsdWUpOmkoZS52YWx1ZSkudGhlbihvLHMpfWMoKHI9ci5hcHBseShlLHR8fFtdKSkubmV4dCgpKX0pfSxpPWUmJmUuX19nZW5lcmF0b3J8fGZ1bmN0aW9uKGUsdCl7dmFyIG49e2xhYmVsOjAsc2VudDpmdW5jdGlvbigpe2lmKGFbMF0mMSl0aHJvdyBhWzFdO3JldHVybiBhWzFdfSx0cnlzOltdLG9wczpbXX0scixpLGEsbz1PYmplY3QuY3JlYXRlKCh0eXBlb2YgSXRlcmF0b3I9PWBmdW5jdGlvbmA/SXRlcmF0b3I6T2JqZWN0KS5wcm90b3R5cGUpO3JldHVybiBvLm5leHQ9cygwKSxvLnRocm93PXMoMSksby5yZXR1cm49cygyKSx0eXBlb2YgU3ltYm9sPT1gZnVuY3Rpb25gJiYob1tTeW1ib2wuaXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSxvO2Z1bmN0aW9uIHMoZSl7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBjKFtlLHRdKX19ZnVuY3Rpb24gYyhzKXtpZihyKXRocm93IFR5cGVFcnJvcihgR2VuZXJhdG9yIGlzIGFscmVhZHkgZXhlY3V0aW5nLmApO2Zvcig7byYmKG89MCxzWzBdJiYobj0wKSksbjspdHJ5e2lmKHI9MSxpJiYoYT1zWzBdJjI/aS5yZXR1cm46c1swXT9pLnRocm93fHwoKGE9aS5yZXR1cm4pJiZhLmNhbGwoaSksMCk6aS5uZXh0KSYmIShhPWEuY2FsbChpLHNbMV0pKS5kb25lKXJldHVybiBhO3N3aXRjaChpPTAsYSYmKHM9W3NbMF0mMixhLnZhbHVlXSksc1swXSl7Y2FzZSAwOmNhc2UgMTphPXM7YnJlYWs7Y2FzZSA0OnJldHVybiBuLmxhYmVsKysse3ZhbHVlOnNbMV0sZG9uZTohMX07Y2FzZSA1Om4ubGFiZWwrKyxpPXNbMV0scz1bMF07Y29udGludWU7Y2FzZSA3OnM9bi5vcHMucG9wKCksbi50cnlzLnBvcCgpO2NvbnRpbnVlO2RlZmF1bHQ6aWYoKGE9bi50cnlzLCEoYT1hLmxlbmd0aD4wJiZhW2EubGVuZ3RoLTFdKSkmJihzWzBdPT09Nnx8c1swXT09PTIpKXtuPTA7Y29udGludWV9aWYoc1swXT09PTMmJighYXx8c1sxXT5hWzBdJiZzWzFdPGFbM10pKXtuLmxhYmVsPXNbMV07YnJlYWt9aWYoc1swXT09PTYmJm4ubGFiZWw8YVsxXSl7bi5sYWJlbD1hWzFdLGE9czticmVha31pZihhJiZuLmxhYmVsPGFbMl0pe24ubGFiZWw9YVsyXSxuLm9wcy5wdXNoKHMpO2JyZWFrfWFbMl0mJm4ub3BzLnBvcCgpLG4udHJ5cy5wb3AoKTtjb250aW51ZX1zPXQuY2FsbChlLG4pfWNhdGNoKGUpe3M9WzYsZV0saT0wfWZpbmFsbHl7cj1hPTB9aWYoc1swXSY1KXRocm93IHNbMV07cmV0dXJue3ZhbHVlOnNbMF0/c1sxXTp2b2lkIDAsZG9uZTohMH19fSxhPWUmJmUuX19pbXBvcnREZWZhdWx0fHxmdW5jdGlvbihlKXtyZXR1cm4gZSYmZS5fX2VzTW9kdWxlP2U6e2RlZmF1bHQ6ZX19O09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLGBfX2VzTW9kdWxlYCx7dmFsdWU6ITB9KSxlLldlYnNvY2tldFZpc2l0b3JDbGllbnQ9dm9pZCAwO3ZhciBvPWEoRGMoKSkscz1EcygpLGM9ZnVuY3Rpb24oZSl7dChhLGUpO2Z1bmN0aW9uIGEodCl7dmFyIG49ZS5jYWxsKHRoaXMsdC5jb25uZWN0aW9uKXx8dGhpcztyZXR1cm4gbi5zZXJ2ZXJWZXJzaW9uPW51bGwsbi51cGRhdGVkVmFsdWVzPXt9LG4uY29ubmVjdERhdGE9dC5kYXRhLG4uaWRlbnRpdHk9bnVsbCxufXJldHVybiBhLnByb3RvdHlwZS5zZXRDb25uZWN0aW9uPWZ1bmN0aW9uKHQpe2UucHJvdG90eXBlLnNldENvbm5lY3Rpb24uY2FsbCh0aGlzLHQpLHQub24oYHNlcnZlci5lcnJvcmAsKDAscy5ib3VuZCkodGhpcyxgb25TZXJ2ZXJFcnJvcmApKSx0Lm9uKGBhY2NvdW50LnVwZGF0ZWRgLCgwLHMuY3JlYXRlRW1pdHRlcikodGhpcy5lbWl0dGVyLGBhY2NvdW50LnVwZGF0ZWRgKSksdC5vbihgYWdlbnQudXBkYXRlZGAsKDAscy5jcmVhdGVFbWl0dGVyKSh0aGlzLmVtaXR0ZXIsYGFnZW50LnVwZGF0ZWRgKSksdC5vbihgYWdlbnQuc3RhdHVzX3VwZGF0ZWRgLCgwLHMuY3JlYXRlRW1pdHRlcikodGhpcy5lbWl0dGVyLGBhZ2VudC5zdGF0dXNfdXBkYXRlZGApKSx0Lm9uKGBhZ2VudC5yZW1vdmVkYCwoMCxzLmNyZWF0ZUVtaXR0ZXIpKHRoaXMuZW1pdHRlcixgYWdlbnQucmVtb3ZlZGApKSx0Lm9uKGB2aXNpdG9yLnVwZGF0ZWRgLCgwLHMuYm91bmQpKHRoaXMsYG9uVmlzaXRvclVwZGF0ZWRgKSksdC5vbihgY2hhdC51cGRhdGVkYCwoMCxzLmNyZWF0ZUVtaXR0ZXIpKHRoaXMuZW1pdHRlcixgY2hhdC51cGRhdGVkYCkpLHQub24oYGNoYXQuYWdlbnRfam9pbmVkYCwoMCxzLmNyZWF0ZUVtaXR0ZXIpKHRoaXMuZW1pdHRlcixgY2hhdC5hZ2VudF9qb2luZWRgKSksdC5vbihgY2hhdC5hZ2VudF9hc3NpZ25lZGAsKDAscy5jcmVhdGVFbWl0dGVyKSh0aGlzLmVtaXR0ZXIsYGNoYXQuYWdlbnRfYXNzaWduZWRgKSksdC5vbihgY2hhdC5hZ2VudF91bmFzc2lnbmVkYCwoMCxzLmNyZWF0ZUVtaXR0ZXIpKHRoaXMuZW1pdHRlcixgY2hhdC5hZ2VudF91bmFzc2lnbmVkYCkpLHQub24oYGNoYXQuYWdlbnRfbGVmdGAsKDAscy5jcmVhdGVFbWl0dGVyKSh0aGlzLmVtaXR0ZXIsYGNoYXQuYWdlbnRfbGVmdGApKSx0Lm9uKGBjaGF0Lm9wZW5lZGAsKDAscy5jcmVhdGVFbWl0dGVyKSh0aGlzLmVtaXR0ZXIsYGNoYXQub3BlbmVkYCkpLHQub24oYGNoYXQuc2VydmVkYCwoMCxzLmNyZWF0ZUVtaXR0ZXIpKHRoaXMuZW1pdHRlcixgY2hhdC5zZXJ2ZWRgKSksdC5vbihgY2hhdC5jbG9zZWRgLCgwLHMuY3JlYXRlRW1pdHRlcikodGhpcy5lbWl0dGVyLGBjaGF0LmNsb3NlZGApKSx0Lm9uKGBjaGF0LnZpc2l0b3JfY2xvc2VkYCwoMCxzLmNyZWF0ZUVtaXR0ZXIpKHRoaXMuZW1pdHRlcixgY2hhdC52aXNpdG9yX2Nsb3NlZGApKSx0Lm9uKGBjaGF0Lm1lc3NhZ2VfcmVjZWl2ZWRgLCgwLHMuY3JlYXRlRW1pdHRlcikodGhpcy5lbWl0dGVyLGBjaGF0Lm1lc3NhZ2VfcmVjZWl2ZWRgKSksdC5vbihgY2hhdC5tZXNzYWdlX3VwZGF0ZWRgLCgwLHMuY3JlYXRlRW1pdHRlcikodGhpcy5lbWl0dGVyLGBjaGF0Lm1lc3NhZ2VfdXBkYXRlZGApKSx0Lm9uKGBjaGF0Lm1lc3NhZ2VfZGVsZXRlZGAsKDAscy5jcmVhdGVFbWl0dGVyKSh0aGlzLmVtaXR0ZXIsYGNoYXQubWVzc2FnZV9kZWxldGVkYCkpLHQub24oYGNoYXQuYWdlbnRfdHlwaW5nYCwoMCxzLmNyZWF0ZUVtaXR0ZXIpKHRoaXMuZW1pdHRlcixgY2hhdC5hZ2VudF90eXBpbmdgKSksdC5vbihgY2hhdC5yYXRlZGAsKDAscy5jcmVhdGVFbWl0dGVyKSh0aGlzLmVtaXR0ZXIsYGNoYXQucmF0ZWRgKSksdC5vbihgY2hhdC5yYXRpbmdfY2FuY2VsbGVkYCwoMCxzLmNyZWF0ZUVtaXR0ZXIpKHRoaXMuZW1pdHRlcixgY2hhdC5yYXRpbmdfY2FuY2VsbGVkYCkpLHQub24oYGNoYXQucmF0aW5nX3N1Z2dlc3RlZGAsKDAscy5jcmVhdGVFbWl0dGVyKSh0aGlzLmVtaXR0ZXIsYGNoYXQucmF0aW5nX3N1Z2dlc3RlZGApKSx0Lm9uKGBjaGF0LmNvbnRhY3RfcmVhZGAsKDAscy5jcmVhdGVFbWl0dGVyKSh0aGlzLmVtaXR0ZXIsYGNoYXQuY29udGFjdF9yZWFkYCkpLHQub24oYGNoYXQuZGVsZXRlZGAsKDAscy5jcmVhdGVFbWl0dGVyKSh0aGlzLmVtaXR0ZXIsYGNoYXQuZGVsZXRlZGApKSx0Lm9uKGBjaGF0LnRpY2tldF9mb3JtX2ZpbmlzaGAsKDAscy5jcmVhdGVFbWl0dGVyKSh0aGlzLmVtaXR0ZXIsYGNoYXQudGlja2V0X2Zvcm1fZmluaXNoYCkpLHQub24oYGNoYXQudHJhbnNjcmlwdF9wZGZgLCgwLHMuY3JlYXRlRW1pdHRlcikodGhpcy5lbWl0dGVyLGBjaGF0LnRyYW5zY3JpcHRfcGRmYCkpLHQub24oYGNvbnRhY3QuYWNxdWlyZWRgLCgwLHMuY3JlYXRlRW1pdHRlcikodGhpcy5lbWl0dGVyLGBjb250YWN0LmFjcXVpcmVkYCkpLHQub24oYGlkZW50aXR5LnN0YXR1c191cGRhdGVkYCwoMCxzLmNyZWF0ZUVtaXR0ZXIpKHRoaXMuZW1pdHRlcixgaWRlbnRpdHkuc3RhdHVzX3VwZGF0ZWRgKSl9LGEucHJvdG90eXBlLm9uPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIHRoaXMuZW1pdHRlci5vbihlLHQpLHRoaXN9LGEucHJvdG90eXBlLm9uY2U9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdGhpcy5lbWl0dGVyLm9uY2UoZSx0KSx0aGlzfSxhLnByb3RvdHlwZS5nZXRJZD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmlkZW50aXR5P3RoaXMuaWRlbnRpdHkuaWQ6bnVsbH0sYS5wcm90b3R5cGUuZ2V0SWRlbnRpdHk9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pZGVudGl0eX0sYS5wcm90b3R5cGUuY29ubmVjdD1mdW5jdGlvbigpe3JldHVybiBlLnByb3RvdHlwZS5jb25uZWN0LmNhbGwodGhpcyl9LGEucHJvdG90eXBlLmRpc2Nvbm5lY3Q9ZnVuY3Rpb24oKXtyZXR1cm4gcih0aGlzLGFyZ3VtZW50cyx2b2lkIDAsZnVuY3Rpb24odCl7dmFyIG49dGhpcztyZXR1cm4gdD09PXZvaWQgMCYmKHQ9ITEpLGkodGhpcyxmdW5jdGlvbihyKXtzd2l0Y2goci5sYWJlbCl7Y2FzZSAwOnJldHVybiB0P1s0LG5ldyBQcm9taXNlKGZ1bmN0aW9uKGUsdCl7bi5zZW5kKGB2aXNpdG9yLmxvZ291dGAse30sKDAscy5jcmVhdGVDYWxsYmFjaykoZSx0KSl9KV06WzMsMl07Y2FzZSAxOnIuc2VudCgpLHIubGFiZWw9MjtjYXNlIDI6cmV0dXJuWzIsZS5wcm90b3R5cGUuZGlzY29ubmVjdC5jYWxsKHRoaXMpXX19KX0pfSxhLnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24oZSl7Zm9yKHZhciB0IGluIGU9PT12b2lkIDAmJihlPXt9KSx0aGlzLmNoZWNrU2VydmVyVmVyc2lvbigpLGUpdGhpcy5pZGVudGl0eVt0XT1lW3RdLHRoaXMudXBkYXRlZFZhbHVlc1t0XT1lW3RdO3RoaXMuc2F2ZVZpc2l0b3JWYWx1ZXMoKX0sYS5wcm90b3R5cGUuYXV0aGVudGljYXRlPWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXM7cmV0dXJuIHRoaXMuY2hlY2tTZXJ2ZXJWZXJzaW9uKCksbmV3IFByb21pc2UoZnVuY3Rpb24obixyKXt0LnNlbmQoYHZpc2l0b3IuYXV0aGVudGljYXRlYCx7dmFsdWVzOmV9LCgwLHMuY3JlYXRlQ2FsbGJhY2spKG4scikpfSl9LGEucHJvdG90eXBlLm5vdGlmeT1mdW5jdGlvbihlLHQpe3ZhciBuPXRoaXM7cmV0dXJuIHQ9PT12b2lkIDAmJih0PW51bGwpLHRoaXMuY2hlY2tTZXJ2ZXJWZXJzaW9uKCksbmV3IFByb21pc2UoZnVuY3Rpb24ocixpKXtuLnNlbmQoYHZpc2l0b3Iubm90aWZ5YCx7bmFtZTplLHZhbHVlOnR9LCgwLHMuY3JlYXRlQ2FsbGJhY2spKHIsaSkpfSl9LGEucHJvdG90eXBlLmNoYXRSZWFkPWZ1bmN0aW9uKCl7dGhpcy5jaGVja1NlcnZlclZlcnNpb24oKSx0aGlzLnNlbmQoYGNoYXQucmVhZGAsbnVsbCl9LGEucHJvdG90eXBlLmNoYXRUeXBpbmc9ZnVuY3Rpb24oZSx0KXt0PT09dm9pZCAwJiYodD1udWxsKSx0aGlzLmNoZWNrU2VydmVyVmVyc2lvbigpLHRoaXMuc2VuZChgY2hhdC50eXBpbmdgLHt0eXBpbmc6e2lzOmUsdGV4dDp0fX0pfSxhLnByb3RvdHlwZS5jaGF0TWVzc2FnZT1mdW5jdGlvbihlKXt2YXIgdD10aGlzO3JldHVybiB0aGlzLmNoZWNrU2VydmVyVmVyc2lvbigpLG5ldyBQcm9taXNlKGZ1bmN0aW9uKG4scil7dC5zZW5kKGBjaGF0Lm1lc3NhZ2VgLGUsKDAscy5jcmVhdGVDYWxsYmFjaykobixyKSl9KX0sYS5wcm90b3R5cGUuY2hhdENsb3NlPWZ1bmN0aW9uKGUpe2U9PT12b2lkIDAmJihlPW51bGwpLHRoaXMuY2hlY2tTZXJ2ZXJWZXJzaW9uKCksdGhpcy5zZW5kKGBjaGF0LmNsb3NlYCx7dHlwZTplfSl9LGEucHJvdG90eXBlLmNoYXRVcGxvYWRJbml0PWZ1bmN0aW9uKCl7dmFyIGU9dGhpcztyZXR1cm4gdGhpcy5jaGVja1NlcnZlclZlcnNpb24oKSxuZXcgUHJvbWlzZShmdW5jdGlvbih0LG4pe2Uuc2VuZChgY2hhdC51cGxvYWRfaW5pdGAsbnVsbCwoMCxzLmNyZWF0ZUNhbGxiYWNrKSh0LG4pKX0pfSxhLnByb3RvdHlwZS5jaGF0VXBsb2FkRmluaXNoPWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXM7cmV0dXJuIHRoaXMuY2hlY2tTZXJ2ZXJWZXJzaW9uKCksbmV3IFByb21pc2UoZnVuY3Rpb24obixyKXt0LnNlbmQoYGNoYXQudXBsb2FkX2ZpbmlzaGAse3VwbG9hZFRva2VuOmV9LCgwLHMuY3JlYXRlQ2FsbGJhY2spKG4scikpfSl9LGEucHJvdG90eXBlLmNoYXRUcmFuc2NyaXB0PWZ1bmN0aW9uKGUsdCl7dmFyIG49dGhpcztyZXR1cm4gdGhpcy5jaGVja1NlcnZlclZlcnNpb24oKSxuZXcgUHJvbWlzZShmdW5jdGlvbihyLGkpe24uc2VuZChgY2hhdC50cmFuc2NyaXB0YCx7ZW1haWw6ZSxsYW5nOnR9LCgwLHMuY3JlYXRlQ2FsbGJhY2spKHIsaSkpfSl9LGEucHJvdG90eXBlLmNoYXRUaWNrZXRGb3JtRmluaXNoPWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXM7cmV0dXJuIHRoaXMuY2hlY2tTZXJ2ZXJWZXJzaW9uKCksbmV3IFByb21pc2UoZnVuY3Rpb24obixyKXt0LnNlbmQoYGNoYXQudGlja2V0X2Zvcm1fZmluaXNoYCxlLCgwLHMuY3JlYXRlQ2FsbGJhY2spKG4scikpfSl9LGEucHJvdG90eXBlLmNoYXRSYXRlSW5pdD1mdW5jdGlvbigpe3ZhciBlPXRoaXM7cmV0dXJuIHRoaXMuY2hlY2tTZXJ2ZXJWZXJzaW9uKCksbmV3IFByb21pc2UoZnVuY3Rpb24odCxuKXtlLnNlbmQoYGNoYXQucmF0ZV9pbml0YCxudWxsLCgwLHMuY3JlYXRlQ2FsbGJhY2spKHQsbikpfSl9LGEucHJvdG90eXBlLmNoYXRSYXRlPWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXM7cmV0dXJuIHRoaXMuY2hlY2tTZXJ2ZXJWZXJzaW9uKCksbmV3IFByb21pc2UoZnVuY3Rpb24obixyKXt0LnNlbmQoYGNoYXQucmF0ZWAsZSwoMCxzLmNyZWF0ZUNhbGxiYWNrKShuLHIpKX0pfSxhLnByb3RvdHlwZS5jaGF0VHJhbnNjcmlwdFBkZj1mdW5jdGlvbigpe3ZhciBlPXRoaXM7cmV0dXJuIHRoaXMuY2hlY2tTZXJ2ZXJWZXJzaW9uKCksbmV3IFByb21pc2UoZnVuY3Rpb24odCxuKXtlLnNlbmQoYGNoYXQudHJhbnNjcmlwdF9wZGZgLG51bGwsKDAscy5jcmVhdGVDYWxsYmFjaykodCxuKSl9KX0sYS5wcm90b3R5cGUubGlua09wZW5lZD1mdW5jdGlvbihlKXt2YXIgdD10aGlzO3JldHVybiB0aGlzLmNoZWNrU2VydmVyVmVyc2lvbigpLG5ldyBQcm9taXNlKGZ1bmN0aW9uKG4scil7dC5zZW5kKGBjaGF0Lmxpbmtfb3BlbmVkYCxlLCgwLHMuY3JlYXRlQ2FsbGJhY2spKG4scikpfSl9LGEucHJvdG90eXBlLnZpc2l0b3JDb25uZWN0PWZ1bmN0aW9uKCl7dmFyIGU9dGhpcyx0PW4oe3ZlcnNpb246YS5DTElFTlRfVkVSU0lPTn0sdGhpcy5jb25uZWN0RGF0YSk7Zm9yKHZhciByIGluIHRoaXMudXBkYXRlZFZhbHVlcyl0W3JdPXRoaXMudXBkYXRlZFZhbHVlc1tyXTtpZih0aGlzLnVwZGF0ZWRWYWx1ZXM9e30sdGhpcy5pZGVudGl0eSlmb3IodmFyIHIgaW4gdGhpcy5pZGVudGl0eSlbYGJhbm5lZEF0YCxgY2hhdElkYCxgc3RhdHVzYF0uaW5jbHVkZXMocil8fCh0W3JdPXRoaXMuaWRlbnRpdHlbcl0pO3JldHVybiB0aGlzLmVtaXR0ZXIuZW1pdChgaW5pdGlhbGl6ZWAsdCksbmV3IFByb21pc2UoZnVuY3Rpb24obixyKXtlLmNvbm5lY3Rpb24uZW1pdChgdmlzaXRvci5jb25uZWN0YCx0LCgwLHMuY3JlYXRlQ2FsbGJhY2spKG4scikpfSl9LGEucHJvdG90eXBlLnZpc2l0b3JEaXNjb25uZWN0PWZ1bmN0aW9uKCl7dmFyIGU9dGhpcztyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24odCxuKXtlLmNvbm5lY3Rpb24uZW1pdChgdmlzaXRvci5kaXNjb25uZWN0YCx7fSwoMCxzLmNyZWF0ZUNhbGxiYWNrKSh0LG4pKX0pfSxhLnByb3RvdHlwZS5vblZpc2l0b3JVcGRhdGVkPWZ1bmN0aW9uKGUpe3ZhciB0PXt9O2Zvcih2YXIgbiBpbiBlLmNoYW5nZXMpYS5pZGVudGl0eVByb3BlcnRpZXMuaW5jbHVkZXMobikmJih0aGlzLmlkZW50aXR5JiYodGhpcy5pZGVudGl0eVtuXT1lLmNoYW5nZXNbbl0pLHRbbl09ZS5jaGFuZ2VzW25dKTtPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh0KS5sZW5ndGg+MCYmdGhpcy5lbWl0dGVyLmVtaXQoYHZpc2l0b3IudXBkYXRlZGAsdCl9LGEucHJvdG90eXBlLm9uU2VydmVyRXJyb3I9ZnVuY3Rpb24oZSl7dmFyIHQ9KDAscy5jcmVhdGVTb2NrZXRFcnJvcikoZSk7dGhpcy5lbWl0dGVyLmVtaXQoYGVycm9yYCx0KX0sYS5wcm90b3R5cGUuaW5pdGlhbGl6ZT1mdW5jdGlvbigpe3ZhciBlPXRoaXM7cmV0dXJuIHRoaXMudmlzaXRvckNvbm5lY3QoKS50aGVuKGZ1bmN0aW9uKHQpe3JldHVybiBlLnNlcnZlclZlcnNpb249dC5zZXJ2ZXJWZXJzaW9uLGUuaWRlbnRpdHk9bihuKHt9LHQudmlzaXRvcikse3ZhcmlhYmxlczpuKHt9LHQudmlzaXRvci52YXJpYWJsZXMpfSksdH0pfSxhLnByb3RvdHlwZS5zYXZlVmlzaXRvclZhbHVlcz1mdW5jdGlvbigpe3ZhciBlPXRoaXM7dGhpcy5pbml0aWFsaXplZCYmc2V0VGltZW91dChmdW5jdGlvbigpe2lmKCEoIWUuaW5pdGlhbGl6ZWR8fE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKGUudXBkYXRlZFZhbHVlcykubGVuZ3RoPT09MCkpe3ZhciB0PXt9O2Zvcih2YXIgbiBpbiBlLnVwZGF0ZWRWYWx1ZXMpdFtuXT1lLnVwZGF0ZWRWYWx1ZXNbbl07ZS5zZW5kKGB2aXNpdG9yLnVwZGF0ZWAse3ZhbHVlczp0fSksZS51cGRhdGVkVmFsdWVzPXt9fX0sMSl9LGEucHJvdG90eXBlLmNoZWNrU2VydmVyVmVyc2lvbj1mdW5jdGlvbigpe2lmKHRoaXMuc2VydmVyVmVyc2lvbj09PW51bGwpdGhyb3cgRXJyb3IoYENsaWVudCBub3QgeWV0IGNvbm5lY3RlZCB0byBzZXJ2ZXJgKX0sYS5DTElFTlRfVkVSU0lPTj02LGEuaWRlbnRpdHlQcm9wZXJ0aWVzPVtgaWRgLGBuYW1lYCxgZW1haWxgLGBwaG9uZWAsYGNoYXRJZGAsYHZhcmlhYmxlc2AsYGxhbmdgLGBncm91cGAsYGJhbm5lZEF0YCxgdHJpZ2dlcmFibGVgLGB2aXNpdHNgLGBnZHByQXBwcm92ZWRgXSxhfShvLmRlZmF1bHQpO2UuV2Vic29ja2V0VmlzaXRvckNsaWVudD1jLChmdW5jdGlvbihlKXsoZnVuY3Rpb24oZSl7ZS5XaWRnZXRPcGVuPWB3aWRnZXRfb3BlbmAsZS5XaWRnZXRTaG93PWB3aWRnZXRfc2hvd2AsZS5WaXNpdG9yQWN0aXZlPWB2aXNpdG9yX2FjdGl2ZWAsZS5WaXNpdG9ySW5hY3RpdmU9YHZpc2l0b3JfaW5hY3RpdmVgfSkoZS5FdmVudE5hbWV8fD17fSl9KShjfHwoZS5XZWJzb2NrZXRWaXNpdG9yQ2xpZW50PWM9e30pKX0pKSxrYz1zKChlPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsYF9fZXNNb2R1bGVgLHt2YWx1ZTohMH0pfSkpLEFjPXMoKGU9PntPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxgX19lc01vZHVsZWAse3ZhbHVlOiEwfSksZS5SYXRpbmdUYXJnZXQ9dm9pZCAwO3ZhciB0OyhmdW5jdGlvbihlKXtlLkFnZW50PWBhZ2VudGAsZS5BaT1gYWlgfSkodHx8KGUuUmF0aW5nVGFyZ2V0PXQ9e30pKX0pKSxqYz1zKChlPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsYF9fZXNNb2R1bGVgLHt2YWx1ZTohMH0pLGUuTWVzc2FnZURlbGl2ZXJ5RmFpbFJlYXNvbj1lLk1lc3NhZ2VEZWxpdmVyeVN0YXR1cz1lLkFnZW50RGV2aWNlUGxhdGZvcm09ZS5BZ2VudERldmljZVR5cGU9ZS5WaXNpdG9yU3RhdHVzPWUuQ2hhdFJlYWRJbmZvVHlwZT1lLkNoYXRTdGF0dXM9ZS5BZ2VudFN0YXR1cz1lLkFjY291bnRTdGF0dXM9dm9pZCAwLGUuQWNjb3VudFN0YXR1cz17T25saW5lOmBvbmxpbmVgLE9mZmxpbmU6YG9mZmxpbmVgLE9mZmxpbmVXaXRoQUk6YG9mZmxpbmVXaXRoQWlgfSxlLkFnZW50U3RhdHVzPXtPbmxpbmU6YG9ubGluZWAsT2ZmbGluZTpgb2ZmbGluZWB9LGUuQ2hhdFN0YXR1cz17UGVuZGluZzpgcGVuZGluZ2AsT3Blbjpgb3BlbmAsQ2xvc2VkOmBjbG9zZWRgLFNlcnZlZDpgc2VydmVkYH0sZS5DaGF0UmVhZEluZm9UeXBlPXtBZ2VudDpgYWdlbnRgLENvbnRhY3Q6YGNvbnRhY3RgfSxlLlZpc2l0b3JTdGF0dXM9e0FjdGl2ZTpgYWN0aXZlYCxDbGlja2VkOmBjbGlja2VkYCxJZGxlOmBpZGxlYCxTZXJ2ZWQ6YHNlcnZlZGAsVW5zZXJ2ZWQ6YHVuc2VydmVkYCxUcmlnZ2VyZWQ6YHRyaWdnZXJlZGB9LGUuQWdlbnREZXZpY2VUeXBlPXtCcm93c2VyOmBicm93c2VyYCxNb2JpbGU6YG1vYmlsZWAsWG1wcDpgeG1wcGAsT3RoZXI6YG90aGVyYH0sZS5BZ2VudERldmljZVBsYXRmb3JtPXtJT1M6YGlvc2AsQU5EUk9JRDpgYW5kcm9pZGB9LGUuTWVzc2FnZURlbGl2ZXJ5U3RhdHVzPXtPazpgb2tgLFBlcm1hbmVudEZhaWw6YHBlcm1hbmVudF9mYWlsYCxUZW1wb3JhcnlGYWlsOmB0ZW1wb3JhcnlfZmFpbGAsQ29tcGxhaW5lZDpgY29tcGxhaW5lZGAsU2Vlbjpgc2VlbmB9LGUuTWVzc2FnZURlbGl2ZXJ5RmFpbFJlYXNvbj17RmFjZWJvb2syNGhXaW5kb3c6YGZhY2Vib29rLm91dHNpZGVfYWxsb3dlZF93aW5kb3dgLEluc3RhZ3JhbUV4Y2VlZGVkRmlsZVNpemU6YGluc3RhZ3JhbS5leGNlZWRlZF9maWxlX3NpemVgLEluc3RhZ3JhbVVua25vd246YGluc3RhZ3JhbS51bmtub3duYCxJbnN0YWdyYW1VbnN1cHBvcnRlZEZpbGVUeXBlOmBpbnN0YWdyYW0udW5zdXBwb3J0ZWRfZmlsZV90eXBlYCxXaGF0c2FwcFVuc3VwcG9ydGVkRmlsZTpgd2hhdHNhcHAudW5zdXBwb3J0ZWRfZmlsZV90eXBlYCxXaGF0c2FwcFVua25vd246YHdoYXRzYXBwLnVua25vd25gfX0pKSxNYz1zKChlPT57dmFyIHQ9ZSYmZS5fX2NyZWF0ZUJpbmRpbmd8fChPYmplY3QuY3JlYXRlPyhmdW5jdGlvbihlLHQsbixyKXtyPT09dm9pZCAwJiYocj1uKTt2YXIgaT1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHQsbik7KCFpfHwoYGdldGBpbiBpPyF0Ll9fZXNNb2R1bGU6aS53cml0YWJsZXx8aS5jb25maWd1cmFibGUpKSYmKGk9e2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRbbl19fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUscixpKX0pOihmdW5jdGlvbihlLHQsbixyKXtyPT09dm9pZCAwJiYocj1uKSxlW3JdPXRbbl19KSksbj1lJiZlLl9fZXhwb3J0U3Rhcnx8ZnVuY3Rpb24oZSxuKXtmb3IodmFyIHIgaW4gZSlyIT09YGRlZmF1bHRgJiYhT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG4scikmJnQobixlLHIpfTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxgX19lc01vZHVsZWAse3ZhbHVlOiEwfSksZS5Tb2NrZXRFcnJvcj1lLmRlZmF1bHQ9dm9pZCAwO3ZhciByPU9jKCk7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsYGRlZmF1bHRgLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiByLldlYnNvY2tldFZpc2l0b3JDbGllbnR9fSksbihPYygpLGUpLG4oa2MoKSxlKSxuKEFjKCksZSk7dmFyIGk9RHMoKTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxgU29ja2V0RXJyb3JgLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBpLlNvY2tldEVycm9yfX0pLG4oamMoKSxlKX0pKSxOYz1PKG51bGwpLFBjPU8oITEpLEZjPU8oW10pLEljPWU9PntGYy51cGRhdGUodD0+Wy4uLnQsZV0pfSxMYz0oKT0+e2xldCBlO3JldHVybiBGYy51cGRhdGUodD0+KGU9dC5wb3AoKSx0KSksZT8/bnVsbH0sUmM9KCk9PkEoRmMpLmxlbmd0aD09PTAsemM9ayhOYyxlPT5lIT09bnVsbCksQmM9KGUse3VzZVN0YWNrOnQ9ITF9PXt9KT0+e05jLnVwZGF0ZShuPT4odCYmbiYmSWMobiksUGMuc2V0KG4hPT1udWxsKSxlKSl9LFZjPSgpPT57bGV0IGU9bnVsbDtSYygpfHwoZT1MYygpKSxOYy5zZXQoZSl9LEhjPWZ1bmN0aW9uKGUpe3JldHVybiBlW2UuT3B0aW9ucz0wXT1gT3B0aW9uc2AsZVtlLkdkcHJBbmRQcml2YWN5PTFdPWBHZHByQW5kUHJpdmFjeWAsZVtlLkF1dGhGb3JtPTJdPWBBdXRoRm9ybWAsZVtlLkNsb3NlQ2hhdD0zXT1gQ2xvc2VDaGF0YCxlW2UuQ2hhdFJhdGluZz00XT1gQ2hhdFJhdGluZ2AsZVtlLlRpY2tldEZvcm09NV09YFRpY2tldEZvcm1gLGV9KHt9KSxVYz0xZTMsV2M9U3ltYm9sKGBjb250ZW50TGlzdEl0ZW1gKSxHYz1TeW1ib2woYGNvbnRlbnRNZXNzYWdlQXR0YWNobWVudGApLEtjPWAtcmVwbGllc2AscWM9LjM1LEpjPTVlMyxZYz1zKChlPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsYF9fZXNNb2R1bGVgLHt2YWx1ZTohMH0pfSkpLFhjPXMoKGU9PntPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxgX19lc01vZHVsZWAse3ZhbHVlOiEwfSksZS5DYXJkQWN0aW9uVHlwZT1lLkNhcmRzTGF5b3V0PXZvaWQgMCxlLkNhcmRzTGF5b3V0PXtDYXJvdXNlbDpgY2Fyb3VzZWxgfSxlLkNhcmRBY3Rpb25UeXBlPXtPcGVuVXJsOmBvcGVuX3VybGB9fSkpLFpjPXMoKGU9PntPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxgX19lc01vZHVsZWAse3ZhbHVlOiEwfSl9KSksUWM9cygoZT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLGBfX2VzTW9kdWxlYCx7dmFsdWU6ITB9KSxlLlJhdGluZ1RhcmdldD1lLkdyb3VwVHlwZT1lLkNoYW5uZWxUeXBlPWUuTWVzc2FnZVN1YlR5cGU9ZS5NZXNzYWdlVHlwZT1lLkF0dGFjaG1lbnRJbnZhbGlkUmVhc29uPWUuQXR0YWNobWVudFR5cGU9ZS5NZXNzYWdlQWN0aW9uVHlwZT12b2lkIDAsZS5NZXNzYWdlQWN0aW9uVHlwZT17VGV4dDpgdGV4dGAsT3BlblVybDpgb3Blbl91cmxgfSxlLkF0dGFjaG1lbnRUeXBlPXtDYXJkczpgY2FyZHNgLEZpbGU6YGZpbGVgLEltYWdlOmBpbWFnZWAsTWVkaWE6YG1lZGlhYCxJbnZhbGlkOmBpbnZhbGlkYH0sZS5BdHRhY2htZW50SW52YWxpZFJlYXNvbj17SW52YWxpZFNpemU6YGludmFsaWRfc2l6ZWAsSW52YWxpZFR5cGU6YGludmFsaWRfdHlwZWB9LGUuTWVzc2FnZVR5cGU9e01lc3NhZ2U6YG1lc3NhZ2VgLE5vdGU6YG5vdGVgLEV2ZW50OmBldmVudGAsSGVscDpgaGVscGB9LGUuTWVzc2FnZVN1YlR5cGU9e0FnZW50OmBhZ2VudGAsQ29udGFjdDpgY29udGFjdGAsVHJpZ2dlcjpgdHJpZ2dlcmAsQm90OmBib3RgLFN5c3RlbTpgc3lzdGVtYCxBZ2VudEV4dGVybmFsOmBhZ2VudF9leHRlcm5hbGAsRm91bmRFbWFpbDpgZm91bmRfZW1haWxgLENoYXRSZXNvbHZlOmBjaGF0X3Jlc29sdmVgLEVtYWlsOmBlbWFpbGB9LGUuQ2hhbm5lbFR5cGU9e0RlZmF1bHQ6YGRlZmF1bHRgLEVtYWlsOmBlbWFpbGAsRW1haWxJbnRlZ3JhdGlvbjpgZW1haWxfaW50ZWdyYXRpb25gLEZhY2Vib29rTWVzc2VuZ2VyOmBmYWNlYm9va19tZXNzZW5nZXJgLEdtYWlsOmBnbWFpbGAsU21hcnRzdXBwOmBzbWFydHN1cHBgLEluc3RhZ3JhbTpgaW5zdGFncmFtYCxXaGF0c2FwcDpgd2hhdHNhcHBgfTt2YXIgdDsoZnVuY3Rpb24oZSl7ZS5haT1gYWlgLGUuY2hhdGJvdD1gY2hhdGJvdGAsZS5tZXNzYWdlPWBtZXNzYWdlYH0pKHR8fChlLkdyb3VwVHlwZT10PXt9KSk7dmFyIG47KGZ1bmN0aW9uKGUpe2UuQWdlbnQ9YGFnZW50YCxlLkFpPWBhaWB9KShufHwoZS5SYXRpbmdUYXJnZXQ9bj17fSkpfSkpLCRjPXMoKGU9PntPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxgX19lc01vZHVsZWAse3ZhbHVlOiEwfSksZS5QYXJ0aWNpcGFudFR5cGU9dm9pZCAwO3ZhciB0OyhmdW5jdGlvbihlKXtlLmZyb209YGZyb21gLGUudG89YHRvYCxlLmNjPWBjY2AsZS5iY2M9YGJjY2B9KSh0fHwoZS5QYXJ0aWNpcGFudFR5cGU9dD17fSkpfSkpLGVsPXMoKGU9PntPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxgX19lc01vZHVsZWAse3ZhbHVlOiEwfSksZS5NZXNzYWdlQ29udGVudFR5cGU9ZS5NZXNzYWdlQ29udGVudD12b2lkIDA7dmFyIHQ7KGZ1bmN0aW9uKGUpeyhmdW5jdGlvbihlKXtlLlR5cGU9e1RleHQ6YHRleHRgLFVwbG9hZDpgdXBsb2FkYCxSYXRlRm9ybTpgcmF0ZV9mb3JtYCxUaWNrZXRGb3JtOmB0aWNrZXRfZm9ybWAsRW1haWw6YGVtYWlsYH19KShlLk1lc3NhZ2V8fD17fSksKGZ1bmN0aW9uKGUpe2UuVHlwZT17QWdlbnRKb2luOmBhZ2VudF9qb2luYCxBZ2VudEFzc2lnbjpgYWdlbnRfYXNzaWduYCxBZ2VudFVuYXNzaWduOmBhZ2VudF91bmFzc2lnbmAsQWdlbnRMZWF2ZTpgYWdlbnRfbGVhdmVgLENoYXRDbG9zZTpgY2hhdF9jbG9zZWAsQ2hhdFZpc2l0b3JDbG9zZTpgY2hhdF92aXNpdG9yX2Nsb3NlYH19KShlLkV2ZW50fHw9e30pLChmdW5jdGlvbihlKXtlLlR5cGU9e1RleHQ6YHRleHRgLEZvdW5kRW1haWw6YGZvdW5kX2VtYWlsYH19KShlLkhlbHB8fD17fSl9KSh0fHwoZS5NZXNzYWdlQ29udGVudD10PXt9KSksZS5NZXNzYWdlQ29udGVudFR5cGU9ey4uLnQuTWVzc2FnZS5UeXBlLC4uLnQuRXZlbnQuVHlwZSwuLi50LkhlbHAuVHlwZX19KSksdGw9cygoZT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLGBfX2VzTW9kdWxlYCx7dmFsdWU6ITB9KX0pKSxubD1zKChlPT57dmFyIHQ9ZSYmZS5fX2NyZWF0ZUJpbmRpbmd8fChPYmplY3QuY3JlYXRlPyhmdW5jdGlvbihlLHQsbixyKXtyPT09dm9pZCAwJiYocj1uKTt2YXIgaT1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHQsbik7KCFpfHwoYGdldGBpbiBpPyF0Ll9fZXNNb2R1bGU6aS53cml0YWJsZXx8aS5jb25maWd1cmFibGUpKSYmKGk9e2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRbbl19fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUscixpKX0pOihmdW5jdGlvbihlLHQsbixyKXtyPT09dm9pZCAwJiYocj1uKSxlW3JdPXRbbl19KSksbj1lJiZlLl9fZXhwb3J0U3Rhcnx8ZnVuY3Rpb24oZSxuKXtmb3IodmFyIHIgaW4gZSlyIT09YGRlZmF1bHRgJiYhT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG4scikmJnQobixlLHIpfTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxgX19lc01vZHVsZWAse3ZhbHVlOiEwfSksbihZYygpLGUpLG4oWGMoKSxlKSxuKFpjKCksZSksbihRYygpLGUpLG4oJGMoKSxlKSxuKGVsKCksZSksbih0bCgpLGUpfSkpLHJsPShlLHQpPT57bGV0IG49e307Zm9yKGxldCByIG9mIHQpe2xldCB0PVN0cmluZyhyW2VdKTtuW3RdPXJ9cmV0dXJuIG59LGlsPSgoKT0+e2xldHtzdWJzY3JpYmU6ZSxzZXQ6dH09Tyh7fSk7cmV0dXJue3N1YnNjcmliZTplLHNldEdyb3VwczplPT57dChybChga2V5YCxlKSl9fX0pKCksYWw9ayhbaWxdLChbZV0pPT5PYmplY3QudmFsdWVzKGUpKSxvbD17YXV0aEZvcm1EcmF3ZXI6YGF1dGhGb3JtRHJhd2VyYCxhdXRoRm9ybVByaXZhY3lOb3RpY2U6YGF1dGhGb3JtUHJpdmFjeU5vdGljZWAsYXV0aEZvcm1Qcml2YWN5Tm90aWNlU3dpdGNoOmBhdXRoRm9ybVByaXZhY3lOb3RpY2VTd2l0Y2hgLGF1dGhGb3JtU3VibWl0QnV0dG9uOmBhdXRoRm9ybVN1Ym1pdEJ1dHRvbmAsYXZhdGFyQWdlbnQ6YGF2YXRhckFnZW50YCxhdmF0YXJCb3Q6YGF2YXRhckJvdGAsYXZhdGFyR3JvdXA6YGF2YXRhckdyb3VwYCxhdmF0YXJJbmZvOmBhdmF0YXJJbmZvYCxidXR0b25BdHRhY2htZW50OmBidXR0b25BdHRhY2htZW50YCxidXR0b25DbG9zZUNoYXQ6YGJ1dHRvbkNsb3NlQ2hhdGAsYnV0dG9uQ2xvc2VEcmF3ZXI6YGJ1dHRvbkNsb3NlRHJhd2VyYCxidXR0b25Db2xsYXBzZUNoYXQ6YGJ1dHRvbkNvbGxhcHNlQ2hhdGAsYnV0dG9uRW1vamk6YGJ1dHRvbkVtb2ppYCxidXR0b25FeHBhbmRDaGF0OmBidXR0b25FeHBhbmRDaGF0YCxidXR0b25NaW5pbWl6ZUNoYXQ6YGJ1dHRvbk1pbmltaXplQ2hhdGAsYnV0dG9uT3B0aW9uczpgYnV0dG9uT3B0aW9uc2AsYnV0dG9uU2VuZDpgYnV0dG9uU2VuZGAsY2hhdFJhdGluZ0RyYXdlcjpgY2hhdFJhdGluZ0RyYXdlcmAsY2hhdFJhdGluZ0Vtb2ppQnV0dG9uOmBjaGF0UmF0aW5nRW1vamlgLGNoYXRSYXRpbmdTZW5kQnV0dG9uOmBjaGF0UmF0aW5nU2VuZEJ1dHRvbmAsY2hhdFJhdGluZ1RleHRhcmVhOmBjaGF0UmF0aW5nVGV4dGFyZWFgLGNoYXRSYXRpbmdGZWVkYmFja0J1dHRvbjpgY2hhdFJhdGluZ0ZlZWRiYWNrQnV0dG9uYCxjaGF0UmF0aW5nQnV0dG9uQWk6YGNoYXRSYXRpbmdCdXR0b25BaWAsY2hhdFJhdGluZ0J1dHRvbkFnZW50OmBjaGF0UmF0aW5nQnV0dG9uQWdlbnRgLGNsb3NlQ2hhdENvbmZpcm1CdXR0b246YGNsb3NlQ2hhdENvbmZpcm1CdXR0b25gLGNsb3NlQ2hhdERlY2xpbmVCdXR0b246YGNsb3NlQ2hhdERlY2xpbmVCdXR0b25gLGNsb3NlQ2hhdERyYXdlcjpgY2xvc2VDaGF0RHJhd2VyYCxmbGFzaE1lc3NhZ2U6YGZsYXNoTWVzc2FnZWAsZ2RwckRyYXdlcjpgZ2RwckRyYXdlcmAsaGVhZGVyVGl0bGU6YGhlYWRlclRpdGxlYCxoZWFkZXJTdGF0dXM6YGhlYWRlclN0YXR1c2AsaGVhZGVyQmFkZ2U6YGhlYWRlckJhZGdlYCxpbmxpbmVFbW9qaVBpY2tlcjpgaW5saW5lRW1vamlQaWNrZXJgLG1lc3NhZ2VBdHRhY2htZW50OmBtZXNzYWdlQXR0YWNobWVudGAsbWVzc2FnZUFnZW50OmBtZXNzYWdlQWdlbnRgLG1lc3NhZ2VCb3Q6YG1lc3NhZ2VCb3RgLG1lc3NhZ2VCb3RSZXBseTpgbWVzc2FnZUJvdFJlcGx5YCxtZXNzYWdlQm90QmFjazpgbWVzc2FnZUJvdEJhY2tgLG1lc3NhZ2VDb250YWN0OmBtZXNzYWdlQ29udGFjdGAsbWVzc2FnZUZpbGU6YG1lc3NhZ2VGaWxlYCxtZXNzYWdlR3JvdXA6YG1lc3NhZ2VHcm91cGAsbWVzc2FnZUltYWdlOmBtZXNzYWdlSW1hZ2VgLG9wdGlvbnNBY2Nlc3NpYmlsaXR5OmBvcHRpb25zQWNjZXNzaWJpbGl0eWAsb3B0aW9uc0RyYXdlcjpgb3B0aW9uc0RyYXdlcmAsb3B0aW9uc0V4cGFuZENoYXQ6YG9wdGlvbnNFeHBhbmRDaGF0YCxvcHRpb25zUHJpdmFjeU5vdGljZTpgb3B0aW9uc1ByaXZhY3lOb3RpY2VgLG9wdGlvbnNTb3VuZHM6YG9wdGlvbnNTb3VuZHNgLG9wdGlvbnNUcmFuc2NyaXB0OmBvcHRpb25zVHJhbnNjcmlwdGAscG9wdXA6YHBvcHVwYCxwb3B1cE1lc3NhZ2U6YHBvcHVwTWVzc2FnZWAscG9wdXBCdXR0b246YHBvcHVwQnV0dG9uYCxwb3B1cEJ1dHRvbkNsb3NlOmBwb3B1cEJ1dHRvbkNsb3NlYCxwcm9kdWN0Q2FyZDpgcHJvZHVjdENhcmRgLHByb2R1Y3RDYXJkQXJyb3dMZWZ0OmBwcm9kdWN0Q2FyZEFycm93TGVmdGAscHJvZHVjdENhcmRBcnJvd1JpZ2h0OmBwcm9kdWN0Q2FyZEFycm93UmlnaHRgLHByb2R1Y3RDYXJkQnV0dG9uOmBwcm9kdWN0Q2FyZEJ1dHRvbmAscHJvZHVjdENhcmRDYXJvdXNlbDpgcHJvZHVjdENhcmRDYXJvdXNlbGAscHJvZHVjdENhcmREZXNjcmlwdGlvbjpgcHJvZHVjdENhcmREZXNjcmlwdGlvbmAscHJvZHVjdENhcmRJbWFnZTpgcHJvZHVjdENhcmRJbWFnZWAscHJvZHVjdENhcmRJbmZvOmBwcm9kdWN0Q2FyZEluZm9gLHByb2R1Y3RDYXJkVGl0bGU6YHByb2R1Y3RDYXJkVGl0bGVgLHN5c3RlbU1lc3NhZ2U6YHN5c3RlbU1lc3NhZ2VgLHRleHRhcmVhOmB0ZXh0YXJlYWAsdGV4dGFyZWFQcmV2aWV3RmlsZTpgdGV4dGFyZWFQcmV2aWV3RmlsZWAsdGV4dGFyZWFQcmV2aWV3SW1hZ2U6YHRleHRhcmVhUHJldmlld0ltYWdlYCx0cmFuc2NyaXB0SW5wdXQ6YHRyYW5zY3JpcHRJbnB1dGAsdHJhbnNjcmlwdFNlbmRCdXR0b246YHRyYW5zY3JpcHRTZW5kYCx0aWNrZXRGb3JtRHJhd2VyOmB0aWNrZXRGb3JtRHJhd2VyYCx0aWNrZXRGb3JtU3VibWl0QnV0dG9uOmB0aWNrZXRGb3JtU3VibWl0QnV0dG9uYCx3aWRnZXRCdXR0b246YHdpZGdldEJ1dHRvbmAsd2lkZ2V0QnV0dG9uRnJhbWU6YHdpZGdldEJ1dHRvbkZyYW1lYCx3aWRnZXRCdXR0b25UZXh0OmB3aWRnZXRCdXR0b250ZXh0YCx3aWRnZXRJbWFnZVByZXZpZXc6YHdpZGdldEltYWdlUHJldmlld2Asd2lkZ2V0TWVzc2VuZ2VyOmB3aWRnZXRNZXNzZW5nZXJgLHdpZGdldE1lc3NlbmdlckZyYW1lOmB3aWRnZXRNZXNzZW5nZXJGcmFtZWAsd2lkZ2V0T25saW5lQmFkZ2U6YHdpZGdldE9ubGluZUJhZGdlYCx3aWRnZXRQb3B1cEZyYW1lOmB3aWRnZXRQb3B1cEZyYW1lYCx3aWRnZXRUeXBpbmdGcmFtZTpgd2lkZ2V0VHlwaW5nRnJhbWVgLHdpZGdldFVucmVhZE1lc3NhZ2VzQmFkZ2U6YHdpZGdldFVucmVhZE1lc3NhZ2VzQmFkZ2VgLHdpZGdldEhlYWRlcjpgd2lkZ2V0SGVhZGVyYH0sc2w9YGh0dHBzOi8vd3d3LnNtYXJ0c3VwcC5jb21gLGNsPWAvcG93ZXJlZC1ieS1zbWFydHN1cHBgLGxsPVtgY3NgLGBlc2AsYGZyYCxgaHVgLGBpdGAsYGRlYCxgbmxgLGBwbGBdLHVsPWBodHRwczovL3d3dy5zbWFydHN1cHAuY29tL215LWRhdGEtYW5kLWdkcHJgLGRsPU8oITEpLGZsPXJzKFUuU2Vzc2lvbklkLGBgKSxwbD0oKT0+e2xldHtwcm90b2NvbDplLGhvc3Q6dH09Vi5nZXRPcHRpb25zKCk7cmV0dXJuYCR7ZT09PWBodHRwYD9gaHR0cGA6YGh0dHBzYH06Ly8ke3R9YH0sbWw9KCk9PntsZXR7bW9iaWxlU2RrOmUsdmlzaXRvcklkOnR9PVYuZ2V0T3B0aW9ucygpO2lmKGUmJnQpcmV0dXJuIHQ7dHJ5e3JldHVybiAkbygpfWNhdGNoKGUpe3JldHVybiBIKFN0cmluZyhlKSksbnVsbH19LGhsPShlLHQpPT57bGV0IG49Zm8oKS5sb2NhdGlvbi5ocmVmO3JldHVybiBlJiZ0JiYobj1gJHtufSR7bi5pbmNsdWRlcyhgP2ApP2AmYDpgP2B9c3MtYm90LXJ1bj0ke3R9YCksbn0sZ2w9KCk9PntKLmNsZWFyTWVzc2FnZXMoKSxtZCgpLEd1LmNsZWFyQXNzaWduZWRBZ2VudElkcygpLFJvKCksa28oVS5WaXNpdG9ySWQpfSxfbD1lPT57dHJ5e2VzKGUpfWNhdGNoKGUpe0goU3RyaW5nKGUpKX19LHZsPWFzeW5jKGU9ITEpPT57bGV0e2tleTp0LGxhbmc6bixpc1ByZXZpZXdNb2RlOnIscHJldmlld1dpdGhvdXRSZXNldDppLHNpdGVQbGF0Zm9ybTphLHRyaWdnZXJhYmxlOm8sX2NoYXRNYXhSZW9wZW5UaW1lOnMsYm90SWQ6Y309Vi5nZXRPcHRpb25zKCk7KHImJiFpfHxlKSYmZ2woKTtsZXQgbD1tbCgpLHU9QShsYik7cmV0dXJue2tleTp0LGlkOmwsY2xpZW50RmluZ2VycHJpbnQ6YXdhaXQgUW8oKSxpc1ByZXZpZXdNb2RlOnIsc2l0ZVBsYXRmb3JtOmEsdHJpZ2dlcmFibGU6byxfY2hhdE1heFJlb3BlblRpbWU6cyxuYW1lOnUubmFtZSxlbWFpbDp1LmVtYWlsLHBob25lOnUucGhvbmUsZ3JvdXA6dS5ncm91cCxsYW5nOnUubGFuZz8/bix2YXJpYWJsZXM6dS52YXJpYWJsZXMsd2lkZ2V0VmVyc2lvbjpgMy4wYCx2aXNpdHM6dHMoKSxpc1dpZGdldFZpc2libGU6QShSXyksaXNXaWRnZXRPcGVuOkEoWCkscGFnZVVybDpobChyLGMpLHBhZ2VUaXRsZTpmbygpLmRvY3VtZW50LnRpdGxlLGRvbWFpbjpmbygpLmxvY2F0aW9uLmhvc3RuYW1lfHxgdW5rbm93bmAscmVmZXJlcjpmbygpLmRvY3VtZW50LnJlZmVycmVyLGJ1bmRsZVZlcnNpb246YGUwN2MyMDhhMzhlNmY1MDg0YzhlYjQ2MGI5NThhNDJmNzc4YTU5NjVgfX0seWw9KGUsdCk9PntsZXR7aXNQcmV2aWV3TW9kZTpufT1WLmdldE9wdGlvbnMoKTshZSYmdCE9PUEoZmwpJiYhbiYmKGdsKCksQShYKSYmWC5zZXQoITEpKSxmbC5zZXQodCl9LGJsPSgoKT0+e2xldHtzdWJzY3JpYmU6ZSxzZXQ6dH09TygpO3JldHVybntzdWJzY3JpYmU6ZSxpbml0aWFsaXplOmU9PnQoZSl9fSkoKSx4bD1gRklMRWAsU2w9MmUzLENsPWU9PmUuc3BsaXQoYC9gKVswXT09PWBpbWFnZWAsd2w9ZT0+ISFlLm1hdGNoKC9edmlkZW9cLyg/Om1wNHx3ZWJtfG9nZyl7MX0kLyk7YXN5bmMgZnVuY3Rpb24gVGwoZSl7aWYoIUZpbGVSZWFkZXIpcmV0dXJuIGpvKGBGaWxlUmVhZGVyIG5vdCBzdXBwb3J0ZWRgKSxudWxsO2xldCB0PW5ldyBGaWxlUmVhZGVyO3JldHVybiBuZXcgUHJvbWlzZShuPT57dC5vbmxvYWQ9KCk9PntpZighdC5yZXN1bHQpe24obnVsbCk7cmV0dXJufW4odHlwZW9mIHQucmVzdWx0PT1gc3RyaW5nYCYmdC5yZXN1bHQuc3RhcnRzV2l0aChgZGF0YTppbWFnZWApP3QucmVzdWx0Om51bGwpfSx0Lm9uZXJyb3I9KCk9PntqbyhgRmFpbGVkIHRvIGxvYWQgaW1hZ2UgZGF0YWApLG4obnVsbCl9LHQucmVhZEFzRGF0YVVSTChlKX0pfWFzeW5jIGZ1bmN0aW9uIEVsKGUpe3JldHVybiBuZXcgUHJvbWlzZSh0PT57bGV0IG49ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChgaW1nYCk7bi5vbmxvYWQ9KCk9Pnt0KHt3aWR0aDpuLndpZHRoLGhlaWdodDpuLmhlaWdodH0pfSxuLm9uZXJyb3I9KCk9PntqbyhgRmFpbGVkIHRvIG9idGFpbiBpbWFnZSBkaW1lbnNpb25zYCksdChudWxsKX0sbi5zcmM9ZX0pfWZ1bmN0aW9uIERsKGUpe3JldHVybntob3Jpem9udGFsOmUud2lkdGg+ZS5oZWlnaHQsdmVydGljYWw6ZS5oZWlnaHQ+ZS53aWR0aH19dmFyIE9sPWBhci5hei5iZy5ici5icy5jYS5jbi5jcy5kYS5kZS5lbC5lbi5lcy5ldC5mYS5maS5maWwuZnIuaGUuaGkuaHIuaHUuaXMuaXQuamEua2EubHQubHYubWsubmwubm8ucGwucHQucm8ucnUuc2suc2wuc3Iuc3YudGgudHIudHcudWtgLnNwbGl0KGAuYCksa2w9cygoZT0+e3ZhciB0PWUmJmUuX19pbXBvcnREZWZhdWx0fHxmdW5jdGlvbihlKXtyZXR1cm4gZSYmZS5fX2VzTW9kdWxlP2U6e2RlZmF1bHQ6ZX19O09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLGBfX2VzTW9kdWxlYCx7dmFsdWU6ITB9KSxlLkZldGNoQWRhcHRlcj12b2lkIDA7dmFyIG49dChhYygpKTtlLkZldGNoQWRhcHRlcj1jbGFzcyBle2NvbnN0cnVjdG9yKGUpe3RoaXMub3B0aW9ucz17fSx0aGlzLm9wdGlvbnM9ZX1hc3luYyByZXF1ZXN0KGUsdCxyLGksYSl7bGV0IG89ey4uLnRoaXMub3B0aW9ucywuLi5hfSxzPWk/YD9gK24uZGVmYXVsdC5zdHJpbmdpZnkoaSk6YGA7dHJ5e2xldCBuPWF3YWl0IGZldGNoKGAke28uYmFzZVVSTHx8YGB9JHt0fSR7c31gLHttZXRob2Q6ZSxib2R5OnI/SlNPTi5zdHJpbmdpZnkocik6bnVsbCwuLi5vfSk7cmV0dXJue3N0YXR1czpuLnN0YXR1cyxzdGF0dXNUZXh0Om4uc3RhdHVzVGV4dCxkYXRhOmF3YWl0IG4uanNvbigpLGhlYWRlcnM6Wy4uLm4uaGVhZGVycy5lbnRyaWVzKCldLnJlZHVjZSgoZSxbdCxuXSk9PihlW3RdPW4sZSkse30pfX1jYXRjaChlKXt0aHJvdyBlLmlzT3BlbkFwaUVycm9yPSEwLGV9fXdpdGhPcHRpb25zKHQpe3JldHVybiBuZXcgZSh0KX19fSkpLEFsPXMoKGU9PntPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxgX19lc01vZHVsZWAse3ZhbHVlOiEwfSksZS5Qcm9qZWN0TmFtZT1lLkVycm9yQ29kZT12b2lkIDAsZS5FcnJvckNvZGU9e0JhZFJlcXVlc3Q6YGJhZF9yZXF1ZXN0YCxOb3RBbGxvd2VkOmBub3RfYWxsb3dlZGAsTm90Rm91bmQ6YG5vdF9mb3VuZGAsRm9yYmlkZGVuOmBmb3JiaWRkZW5gLFRvb01hbnlSZXF1ZXN0czpgdG9vX21hbnlfcmVxdWVzdHNgLFVuYXV0aG9yaXplZDpgdW5hdXRob3JpemVkYCxVbnByb2Nlc3NhYmxlOmB1bnByb2Nlc3NhYmxlYH0sZS5Qcm9qZWN0TmFtZT17V2lkZ2V0OmB3aWRnZXRgLENoYXRib3Q6YGNoYXRib3RgfX0pKSxqbD1zKChlPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsYF9fZXNNb2R1bGVgLHt2YWx1ZTohMH0pLGUuVHJhbnNsYXRpb25zQ2xpZW50UmF3PWUuVHJhbnNsYXRpb25zQ2xpZW50PXZvaWQgMCxlLlRyYW5zbGF0aW9uc0NsaWVudD1jbGFzc3tjb25zdHJ1Y3RvcihlKXt0aGlzLmFkYXB0ZXI9ZSx0aGlzLnJhdz1uZXcgdCh0aGlzLmFkYXB0ZXIpfWdldERlZmF1bHRzKGUsdCxyKXtyZXR1cm4gdGhpcy5hZGFwdGVyLnJlcXVlc3QoYGdldGAsYC8ke2V9L3RyYW5zbGF0aW9ucy9sYW5nLyR7dH0vZGVmYXVsdHNgLG51bGwsbnVsbCxyKS50aGVuKG4pfX07dmFyIHQ9Y2xhc3N7Y29uc3RydWN0b3IoZSl7dGhpcy5hZGFwdGVyPWV9Z2V0RGVmYXVsdHMoZSx0LG4pe3JldHVybiB0aGlzLmFkYXB0ZXIucmVxdWVzdChgZ2V0YCxgLyR7ZX0vdHJhbnNsYXRpb25zL2xhbmcvJHt0fS9kZWZhdWx0c2AsbnVsbCxudWxsLG4pfX07ZS5UcmFuc2xhdGlvbnNDbGllbnRSYXc9dDtmdW5jdGlvbiBuKGUpe3JldHVybiBlLmRhdGF9fSkpLE1sPXMoKGU9PntPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxgX19lc01vZHVsZWAse3ZhbHVlOiEwfSksZS5TbWFydHN1cHBUcmFuc2xhdGlvbnNDbGllbnRBcGk9dm9pZCAwO3ZhciB0PWpsKCksbj1jbGFzcyBle2NvbnN0cnVjdG9yKGUpe3RoaXMuYWRhcHRlcj1lLHRoaXMudHJhbnNsYXRpb25zPW5ldyB0LlRyYW5zbGF0aW9uc0NsaWVudChlKX13aXRoT3B0aW9ucyh0KXtyZXR1cm4gbmV3IGUodGhpcy5hZGFwdGVyLndpdGhPcHRpb25zKHQpKX19O2UuU21hcnRzdXBwVHJhbnNsYXRpb25zQ2xpZW50QXBpPW4sZS5kZWZhdWx0PW59KSksTmw9cygoZT0+e3ZhciB0PWUmJmUuX19jcmVhdGVCaW5kaW5nfHwoT2JqZWN0LmNyZWF0ZT8oZnVuY3Rpb24oZSx0LG4scil7cj09PXZvaWQgMCYmKHI9bik7dmFyIGk9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0LG4pOyghaXx8KGBnZXRgaW4gaT8hdC5fX2VzTW9kdWxlOmkud3JpdGFibGV8fGkuY29uZmlndXJhYmxlKSkmJihpPXtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB0W25dfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHIsaSl9KTooZnVuY3Rpb24oZSx0LG4scil7cj09PXZvaWQgMCYmKHI9biksZVtyXT10W25dfSkpLG49ZSYmZS5fX2V4cG9ydFN0YXJ8fGZ1bmN0aW9uKGUsbil7Zm9yKHZhciByIGluIGUpciE9PWBkZWZhdWx0YCYmIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChuLHIpJiZ0KG4sZSxyKX07T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsYF9fZXNNb2R1bGVgLHt2YWx1ZTohMH0pLG4oQWwoKSxlKSxuKE1sKCksZSksbihqbCgpLGUpLGUuZGVmYXVsdD1NbCgpLlNtYXJ0c3VwcFRyYW5zbGF0aW9uc0NsaWVudEFwaX0pKSxQbD1rbCgpLEZsPU5sKCksSWw9ZT0+T2wuaW5jbHVkZXMoZSksTGw9ZT0+SWwoZSk/ZTpgZW5gLFJsPSgpPT57bGV0e2xhbmc6ZX09Vi5nZXRPcHRpb25zKCkse2xhbmc6dH09QShsYik7cmV0dXJuIExsKHQ/P2UpfTtmdW5jdGlvbiB6bCgpe3JldHVybiBuZXcgRmwuVHJhbnNsYXRpb25zQ2xpZW50KG5ldyBQbC5GZXRjaEFkYXB0ZXIoe2Jhc2VVUkw6YCR7Vi5nZXRPcHRpb25zKCkudHJhbnNsYXRpb25zQmFzZVVybH0vYXBpL3YxYH0pKX12YXIgQmw9YXN5bmMgZT0+emwoKS5nZXREZWZhdWx0cyhGbC5Qcm9qZWN0TmFtZS5XaWRnZXQsZSksVmw9KGUsdCk9PntsZXR7dHJhbnNsYXRlczpufT1WLmdldE9wdGlvbnMoKTtyZXR1cm57Li4uZSwuLi5uW3RdJiZuW3RdfX0sSGw9TyhgZW5gKSxVbD1PKHt9KSxXbD1hc3luYyBlPT57dHJ5e2xldCB0PVZsKGF3YWl0IEJsKGUpLGUpO1VsLnVwZGF0ZShuPT4oey4uLm4sW2VdOnR9KSl9Y2F0Y2h7am8oYEZldGNoIHRyYW5zbGF0aW9ucyBvZiAnJHtlfScgbGFuZ3VhZ2UgZmFpbGVkLmApfX0sR2w9YXN5bmMgZT0+e0EoVWwpW2VdfHxhd2FpdCBXbChlKSxIbC5zZXQoZSl9LEtsPWFzeW5jKCk9PntsZXQgZT1SbCgpO0hsLnNldChlKSxhd2FpdCBXbChlKX0scWw9ZT0+e2xldCB0PUEoSGwpLG49ey4uLkEoVWwpW3RdLC4uLmV9O1VsLnVwZGF0ZShlPT4oey4uLmUsW3RdOm59KSl9LEpsPShlLHQsbik9PntsZXQgcj1BKFVsKSxpPWB8JHt0fXxgO2lmKE9iamVjdC5rZXlzKHIpLmxlbmd0aD09PTApcmV0dXJuIGk7bGV0IGE9cltlXT8uW3RdfHxpO3JldHVybiBPYmplY3Qua2V5cyhuKS5tYXAoZT0+e2xldCB0PVJlZ0V4cChgeyR7ZX19YCxgZ2ApO2E9YS5yZXBsYWNlKHQsbltlXSl9KSxhfSxXPWsoW0hsLFVsXSwoW2VdKT0+KHQsbj17fSk9PkpsKGUsdCxuKSksWWw9KCgpPT57bGV0IGU9TyhbXSkse3N1YnNjcmliZTp0LHVwZGF0ZTpufT1lLHI9KCk9PkEoZSkubWFwKGU9PmUuZmlsZSksaT0odCxuKT0+KG58fEEoZSkpLmZpbmQoZT0+ZS5maWxlLm5hbWU9PT10KXx8bnVsbCxhPWU9Pih7ZmlsZTplLHByZXZpZXc6e30scHJldmlld1N0YXRlOmBub25lYCx1cGxvYWRTdGF0dXM6YG5vbmVgfSksbz1lPT57bGV0IHQ9QXJyYXkuaXNBcnJheShlKT9lOltlXTtuKGU9PmUubGVuZ3RoK3QubGVuZ3RoPjU/KGdzKGAke0EoVykoYGZpbGVVcGxvYWQudG9vTWFueUZpbGVzYCl9IDVgKSxlKTpbLi4uZSwuLi50Lm1hcChhKV0pLG0odCl9LHM9ZT0+e24odD0+dC5maWx0ZXIodD0+dC5maWxlIT09ZSkpfSxjPSgpPT5BKGUpLmxlbmd0aCxsPSgpPT5jKCk+PTUsdT0oKT0+ZS5zZXQoW10pLGQ9KCk9PntlLnVwZGF0ZShlPT4oZS5mb3JFYWNoKGU9PmUudXBsb2FkU3RhdHVzPWBpbi1wcm9ncmVzc2ApLGUpKX0sZj10PT57ZS51cGRhdGUoZT0+e2xldCBuPWkodCxlKTtyZXR1cm4gbiYmKG4udXBsb2FkU3RhdHVzPWBkb25lYCksZX0pfSxwPWU9PmkoZS5uYW1lKT8ucHJldmlld1N0YXRlIT09YG5vbmVgLG09ZT0+e2UuZm9yRWFjaChlPT52b2lkIGgoZSkpfSxoPWFzeW5jIHQ9PntpZihwKHQpKXJldHVybjtsZXQgbj1hd2FpdCBUbCh0KSxyPW4/YXdhaXQgRWwobik6bnVsbCxhPXI/RGwocik6bnVsbDtlLnVwZGF0ZShlPT57bGV0IG89aSh0Lm5hbWUsZSk7cmV0dXJuIG8/KG8ucHJldmlld1N0YXRlPWByZWFkeWAsby5wcmV2aWV3PXtkYXRhOm4sZGltZW5zaW9uczpyLG9yaWVudGF0aW9uOmF9LFsuLi5lXSk6ZX0pfTtyZXR1cm57c3Vic2NyaWJlOnQsZ2V0RmlsZXM6cixmaW5kOmksYWRkOm8scmVtb3ZlOnMsY291bnQ6Yyxpc0xpbWl0UmVhY2hlZDpsLGNsZWFyOnUsc2V0VXBsb2FkaW5nU3RhdHVzOmQsc2V0RmlsZVVwbG9hZGVkOmZ9fSkoKSxYbD0oKCk9PntsZXQgZT1bXTtyZXR1cm4gT2JqZWN0LmZyZWV6ZSh7cHVzaDp0PT57ZS5wdXNoKHQpfSxleGVjdXRlQWxsOigpPT57Zm9yKDtlLmxlbmd0aD4wOyl7bGV0IHQ9ZS5zaGlmdCgpO3QmJnQoKX19fSl9KSgpLFpsPSgpPT57bGV0e3dpZGdldFYzVXJsOmV9PVYuZ2V0T3B0aW9ucygpO3JldHVybmAke2V9L2Fzc2V0cy9pbWFnZXMvZGVmYXVsdC1haS1pZGVudGl0eS5wbmdgfSxRbD1lPT4oey4uLmUsYXZhdGFyVXJsOmUuYXZhdGFyVXJsfHxabCgpfSksJGw9KCgpPT57bGV0e3VwZGF0ZTplLHN1YnNjcmliZTp0LHNldDpufT1PKHt9KTtyZXR1cm57c3Vic2NyaWJlOnQsc2V0SWRlbnRpdGllczplPT57bihybChgaWRgLGUubWFwKFFsKSkpfSxhZGRJZGVudGl0eTp0PT57ZShlPT4oey4uLmUsW3QuaWRdOnR9KSl9LHVwZGF0ZUlkZW50aXR5Oih0LG4pPT57ZShlPT5lW3RdP3suLi5lLFt0XTp7Li4uZVt0XSwuLi5ufX06ZSl9fX0pKCksRz1ubCgpLEs9dShNYygpLDEpLGV1PWU9Pnt2byhgaW5pdCBkYXRhYCxlKSxkbC5zZXQoITApLHlsKGUuY2hhdCxlLnNlc3Npb25JZCk7bGV0IHQ9ZS52aXNpdG9yLmlkO19sKHQpLG5zKGUudmlzaXRvci52aXNpdHMpLE11LnNldFZpc2l0b3JEYXRhKGUudmlzaXRvciksaG8oe3ZpZDp0fSksYmwuaW5pdGlhbGl6ZShlLmZpbGVVcGxvYWQpLG9zLnNldChlLmJyb3dzZXIpLEJ1LnNldEFnZW50cyhlLmFjY291bnQuYWdlbnRzKSwkbC5zZXRJZGVudGl0aWVzKGUuYWNjb3VudC5ib3RJZGVudGl0aWVzKSxlLmNoYXQ/LnZpcnR1YWxBZ2VudCE9PXZvaWQgMCYmQnUuc2V0VmlydHVhbEFnZW50KGUuY2hhdD8udmlydHVhbEFnZW50KSxpbC5zZXRHcm91cHMoZS5hY2NvdW50Lmdyb3VwcyksaGQoZS5hY2NvdW50LnN0YXR1cyksZS5jaGF0JiYocXAoKSYmaWQuc2V0KGUuY2hhdC5yYXRpbmdTdWdnZXN0ZWRUYXJnZXR8fG51bGwpLGVkLnNldChlLmNoYXQuc3RhdHVzKSxkZChlLmNoYXQuaXNDbG9zZWQpLHJkLnNldChlLmNoYXQudW5yZWFkSW5mby5sYXN0UmVhZEF0KSxKLnNldE1lc3NhZ2VzKGUuY2hhdC5tZXNzYWdlcy5maWx0ZXIoZT0+IVpmKGUpKSksR3Uuc2V0QXNzaWduZWRBZ2VudElkcyhlLmNoYXQuYXNzaWduZWRJZHM/P1tdKSxlLmNoYXQud2lkZ2V0T3B0aW9ucyYmWHUudXBkYXRlR2VuZXJhbE9wdGlvbnMoZS5jaGF0LndpZGdldE9wdGlvbnMpKSxDXy5zZXQoITApLHouZW1pdChgd2lkZ2V0SW5pdGAsITApLFhsLmV4ZWN1dGVBbGwoKX0sdHU9ZT0+e2NvbnNvbGUuZXJyb3IoZSl9LG51PSgpPT57ZGwuc2V0KCExKX0scnU9KHtjaGF0SWQ6ZX0pPT57TXAuc2V0KCExKSxhZC5zZXQoZSksZWQuc2V0KEsuQ2hhdFN0YXR1cy5PcGVuKSxYdS5zZXRNZXNzYWdlT3B0aW9ucyh7ZGlzYWJsZUF0dGFjaG1lbnRzOiExfSl9LGl1PSgpPT57ZWQuc2V0KEsuQ2hhdFN0YXR1cy5TZXJ2ZWQpLGRkKCExKX0sYXU9KHttZXNzYWdlOmV9KT0+e2xldHtjbG9zZVR5cGU6dCxhZ2VudElkOm59PWUuY29udGVudC5kYXRhOyh0PT09YGFnZW50X2Nsb3NlYHx8dD09PWBib3RfY2xvc2VgKSYmKEd1LnNldEFzc2lnbmVkQWdlbnRJZHMoW10pLGVkLnNldChLLkNoYXRTdGF0dXMuQ2xvc2VkKSxKLmFkZE1lc3NhZ2UoZSksei5lbWl0KGBjaGF0Q2xvc2VkYCxlKSx0PT09YGFnZW50X2Nsb3NlYCYmUW0obj9BKFZ1KG4pKT8uZnVsbG5hbWU6dm9pZCAwKSl9LG91PSh7bWVzc2FnZTplfSk9PntxcCgpJiZZcCh4cyksZGQoITAse2J5VmlzaXRvcjohMH0pLEouYWRkTWVzc2FnZShlKSx6LmVtaXQoYGNoYXRWaXNpdG9yQ2xvc2VkYCxlKSxabSgpfSxzdT0oe2NoYW5nZXM6ZX0pPT57ZS53aWRnZXRPcHRpb25zJiZYdS51cGRhdGVHZW5lcmFsT3B0aW9ucyhlLndpZGdldE9wdGlvbnMpLGUuaXNDbG9zZWQhPT12b2lkIDAmJmRkKGUuaXNDbG9zZWQpLGUudmlydHVhbEFnZW50IT09dm9pZCAwJiZCdS5zZXRWaXJ0dWFsQWdlbnQoZS52aXJ0dWFsQWdlbnQpfSxjdT1hc3luYyh7bWVzc2FnZTplfSk9PntpZihaZihlKSlyZXR1cm47bGV0IHQ9QSh6XykmJllmKGUpOyFBKFgpJiZRZihlKSYmIXQ/QXAoZSk6YXdhaXQgSi5hZGRNZXNzYWdlKGUpLF9kKCksZS53aWRnZXRPcHRpb25zJiZYdS5zZXRNZXNzYWdlT3B0aW9ucyhlLndpZGdldE9wdGlvbnMpLHQmJlVfKCksei5lbWl0KGBtZXNzYWdlUmVjZWl2ZWRgLGUpfSxsdT1lPT57Y3UoZSl9LHV1PSh7bWVzc2FnZUlkOmUsZGVsZXRlZEF0OnR9KT0+e0EoSilbZV0/LnN1YlR5cGU9PT1HLk1lc3NhZ2VTdWJUeXBlLkNoYXRSZXNvbHZlP0ouZGVsZXRlTWVzc2FnZShlKTpKLm1hcmtNZXNzYWdlQXNEZWxldGVkKGUsdCl9LGR1PSh7bWVzc2FnZTplfSk9PntKLnJlcGxhY2VNZXNzYWdlKGUpLGUud2lkZ2V0T3B0aW9ucyYmZS5pZD09PUEoQnApJiZYdS5zZXRNZXNzYWdlT3B0aW9ucyhlLndpZGdldE9wdGlvbnMpfSxmdT0oe21lc3NhZ2U6ZSxhZ2VudDp0fSk9PntHdS5hZGRBc3NpZ25lZEFnZW50SWQoZS5jb250ZW50LmRhdGEuYWdlbnRJZCksSi5hZGRNZXNzYWdlKGUpLHouZW1pdChgYWdlbnRKb2luZWRgLHQpfSxwdT0oe21lc3NhZ2U6ZX0pPT57R3UucmVtb3ZlQXNzaWduZWRBZ2VudElkKGUuY29udGVudC5kYXRhLmFnZW50SWQpLEouYWRkTWVzc2FnZShlKX0sbXU9KHttZXNzYWdlOmV9KT0+e0d1LmFkZEFzc2lnbmVkQWdlbnRJZChlLmNvbnRlbnQuZGF0YS5hc3NpZ25lZCksSi5hZGRNZXNzYWdlKGUpfSxodT0oe21lc3NhZ2U6ZX0pPT57R3UucmVtb3ZlQXNzaWduZWRBZ2VudElkKGUuY29udGVudC5kYXRhLnVuYXNzaWduZWQpLEouYWRkTWVzc2FnZShlKX0sZ3U9ZT0+eyFlLnR5cGluZy5pcyYmQShNcCl8fG5kLnNldChlLnR5cGluZy5pcyl9LF91PWU9PntyZC5zZXQoZS5sYXN0UmVhZEF0KX0sdnU9KHttZXNzYWdlOmUscmF0aW5nOnR9KT0+e0oudXBkYXRlTWVzc2FnZVJhdGluZyhlKSx6LmVtaXQoYGNoYXRSYXRlZGAsdCl9LHl1PWU9Pnt6LmVtaXQoYHRyYW5zY3JpcHRQZGZgLGUpfSxidT0oe2lkOmUsY2hhbmdlczp0fSk9PntCdS51cGRhdGVBZ2VudChlLHQpfSx4dT0oe2lkOmUsc3RhdHVzOnR9KT0+e0J1LnVwZGF0ZUFnZW50KGUse3N0YXR1czp0fSl9LFN1PSh7c3RhdHVzOmV9KT0+e2hkKGUpfSxDdT1lPT57TXUudXBkYXRlVmlzaXRvckRhdGEoZSl9LHd1PWU9Pnt6LmVtaXQoYGNvbnRhY3RBY3F1aXJlZGAsZSl9LFR1PWU9PnsocXAoKXx8SnAoKSkmJmlkLnNldChlLnJhdGluZ1N1Z2dlc3RlZFRhcmdldCl9LEV1PSgpPT57QShpZCkmJmlkLnNldChudWxsKX0sRHU9KHtpZDplLGlzQWN0aXZlOnR9KT0+eyRsLnVwZGF0ZUlkZW50aXR5KGUse2lzQWN0aXZlOnR9KX0sT3U9RGMoKSxrdT1hc3luYyBlPT57bGV0IHQ9YXdhaXQgVi5hd2FpdE9wdGlvbnMoKTtyZXR1cm4gbmV3IEsuV2Vic29ja2V0VmlzaXRvckNsaWVudCh7ZGF0YTplLGNvbm5lY3Rpb246e3VybDpwbCgpLHNvY2tldDp0Lm1vY2s/bmV3IE91LlNvY2tldE1vY2sodC5tb2NrKTp2b2lkIDAsYmFsYW5jZXJVcmw6dC5iYWxhbmNlclVybCxvcHRpb25zOntwYXRoOmAvc29ja2V0YCxhdXRvQ29ubmVjdDohMSxyZWNvbm5lY3Rpb246ITB9fX0pfSxBdT0oKT0+e2xldCBlPW51bGwsdD0oKT0+ISFlLG49KCk9PntpZighZSl0aHJvdyBFcnJvcihgVmlzaXRvciBjbGllbnQgaXMgbm90IGluaXRpYWxpemVkYCk7cmV0dXJuIGV9LHI9YXN5bmMgdD0+e2U9YXdhaXQga3UoYXdhaXQgdmwodCkpLGUmJihqdShlKSxhd2FpdCBlLmNvbm5lY3QoKS5jYXRjaChlPT57am8oYEZhaWxlZCBjb25uZWN0IHRvIHNlcnZlci5gLGUpfSkpfTtyZXR1cm4gT2JqZWN0LmZyZWV6ZSh7Z2V0Q2xpZW50Om4saW5pdENsaWVudDpyLHJlbG9hZENsaWVudDphc3luYyh0LG4pPT57YXdhaXQgZT8uZGlzY29ubmVjdCgpLHQmJlYudXBkYXRlT3B0aW9ucyh7bW9jazp0fSksYXdhaXQgcihuKX0saXNJbml0aWFsaXplZDp0fSl9LGp1PWU9PntlLm9uKGBpbml0aWFsaXplZGAsZXUpLGUub24oYGVycm9yYCx0dSksZS5vbihgZGlzY29ubmVjdGAsbnUpLGUub24oYGNoYXQub3BlbmVkYCxydSksZS5vbihgY2hhdC5zZXJ2ZWRgLGl1KSxlLm9uKGBjaGF0LmNsb3NlZGAsYXUpLGUub24oYGNoYXQudmlzaXRvcl9jbG9zZWRgLG91KSxlLm9uKGBjaGF0LnVwZGF0ZWRgLHN1KSxlLm9uKGBjaGF0Lm1lc3NhZ2VfcmVjZWl2ZWRgLGx1KSxlLm9uKGBjaGF0Lm1lc3NhZ2VfdXBkYXRlZGAsZHUpLGUub24oYGNoYXQubWVzc2FnZV9kZWxldGVkYCx1dSksZS5vbihgY2hhdC5hZ2VudF9qb2luZWRgLGZ1KSxlLm9uKGBjaGF0LmFnZW50X2xlZnRgLHB1KSxlLm9uKGBjaGF0LmFnZW50X2Fzc2lnbmVkYCxtdSksZS5vbihgY2hhdC5hZ2VudF91bmFzc2lnbmVkYCxodSksZS5vbihgY2hhdC5hZ2VudF90eXBpbmdgLGd1KSxlLm9uKGBjaGF0LmNvbnRhY3RfcmVhZGAsX3UpLGUub24oYGNoYXQucmF0ZWRgLHZ1KSxlLm9uKGBjaGF0LnJhdGluZ19zdWdnZXN0ZWRgLFR1KSxlLm9uKGBjaGF0LnJhdGluZ19jYW5jZWxsZWRgLEV1KSxlLm9uKGBjaGF0LnRyYW5zY3JpcHRfcGRmYCx5dSksZS5vbihgYWdlbnQudXBkYXRlZGAsYnUpLGUub24oYGFnZW50LnN0YXR1c191cGRhdGVkYCx4dSksZS5vbihgYWNjb3VudC51cGRhdGVkYCxTdSksZS5vbihgdmlzaXRvci51cGRhdGVkYCxDdSksZS5vbihgY29udGFjdC5hY3F1aXJlZGAsd3UpLGUub24oYGlkZW50aXR5LnN0YXR1c191cGRhdGVkYCxEdSl9LHE9QXUoKSxNdT0oKCk9PntsZXQgZT1PKG51bGwpLHtzdWJzY3JpYmU6dCxzZXQ6bix1cGRhdGU6cn09ZSxpPWU9PntuKGUpfSxhPWU9PntyKHQ9PnQ/ey4uLnQsLi4uZX06bnVsbCl9LG89KGUsdCk9Pnt0cnl7cS5nZXRDbGllbnQoKS51cGRhdGUoe1tlXTp0fSl9Y2F0Y2godCl7am8oYFVwZGF0ZSBvZiB2aXNpdG9yIHByb3BlcnR5ICcke2V9JyBmYWlsZWQuYCxTdHJpbmcodCkpfX07cmV0dXJue3N1YnNjcmliZTp0LHNldFZpc2l0b3JEYXRhOmksdXBkYXRlVmlzaXRvckRhdGE6YSx1cGRhdGVWaXNpdG9yUHJvcGVydHk6KGUsdCk9PntpZighQShDXykpe3ViKGUsdCk7cmV0dXJufWEoe1tlXTp0fSksbyhlLHQpfSx1cGRhdGVWaXNpdG9yVmFyaWFibGVzOnQ9PntpZighQShDXykpe3ViKGB2YXJpYWJsZXNgLHQpO3JldHVybn1sZXQgbj1BKGUpO2lmKCFuKXJldHVybjtsZXQgcj1uLnZhcmlhYmxlczthKHt2YXJpYWJsZXM6ey4uLnIsLi4udH19KTtsZXQgaT17fTtPYmplY3Qua2V5cyh0KS5mb3JFYWNoKGU9Pnt0W2VdIT09cltlXSYmKGk9ey4uLmksW2VdOnRbZV19KX0pLE9iamVjdC5rZXlzKGkpLmxlbmd0aCE9PTAmJm8oYHZhcmlhYmxlc2AsaSl9LHVwZGF0ZVZpc2l0b3JDb250YWN0RGF0YTp0PT57aWYoIUEoQ18pKXt1YihgY29udGFjdERhdGFgLHtwcm9wZXJ0aWVzOnR9KTtyZXR1cm59bGV0IG49QShlKTtpZighbilyZXR1cm47bGV0IHI9bj8uY29udGFjdERhdGE/LnByb3BlcnRpZXM7YSh7dmFyaWFibGVzOnsuLi5yLC4uLnR9fSk7bGV0IGk9e307T2JqZWN0LmtleXModCkuZm9yRWFjaChlPT57KCFyfHx0W2VdIT09cltlXSkmJihpPXsuLi5pLFtlXTp0W2VdfSl9KSxPYmplY3Qua2V5cyhpKS5sZW5ndGghPT0wJiZvKGBjb250YWN0RGF0YWAse3Byb3BlcnRpZXM6dH0pfX19KSgpLE51PShlLHQpPT5lLmhhc093blByb3BlcnR5KHQpLFB1PWU9PnR5cGVvZiBlPT1gYm9vbGVhbmAsRnU9ZT0+dHlwZW9mIGU9PWBudW1iZXJgLEl1PWU9PnR5cGVvZiBlPT1gb2JqZWN0YCYmISFlJiYhQXJyYXkuaXNBcnJheShlKSxMdT1lPT50eXBlb2YgZT09YHN0cmluZ2B8fGUgaW5zdGFuY2VvZiBTdHJpbmcsUnU9ZT0+THUoZSl8fEZ1KGUpfHxQdShlKSx6dT1lPT57bGV0IHQ9e307cmV0dXJuIE9iamVjdC5rZXlzKGUpLmZvckVhY2gobj0+e2xldCByPWVbbl07UnUocik/dFtuXT1yOkl1KHIpJiZOdShyLGB2YWx1ZWApJiZSdShyLnZhbHVlKSYmKHRbbl09ci52YWx1ZSl9KSx0fSxCdT0oKCk9PntsZXR7dXBkYXRlOmUsc3Vic2NyaWJlOnQsc2V0Om59PU8oe30pO3JldHVybntzdWJzY3JpYmU6dCxzZXRBZ2VudHM6ZT0+e24ocmwoYGlkYCxlKSl9LGFkZEFnZW50OnQ9PntlKGU9Pih7Li4uZSxbdC5pZF06dH0pKX0sdXBkYXRlQWdlbnQ6KHQsbik9PntlKGU9PmVbdF0/ey4uLmUsW3RdOnsuLi5lW3RdLC4uLm59fTplKX0sc2V0VmlydHVhbEFnZW50OnQ9PntsZXR7ZGVzY3JpcHRpb246bixhdmF0YXI6cixuYW1lOml9PXQsYT17fTtuJiYoYS5kZXNjcmlwdGlvbj1uKSxyJiYoYS5hdmF0YXI9ciksaSYmKGEuZnVsbG5hbWU9aSksZShlPT4oT2JqZWN0LmtleXMoZSkuZm9yRWFjaCh0PT57ZVt0XT17Li4uZVt0XSwuLi5hfX0pLGUpKX19fSkoKSxWdT1lPT5rKFtCdV0sKFt0XSk9PnRbZV0/P251bGwpLEh1PWsoW2soW0J1XSwoW2VdKT0+T2JqZWN0LnZhbHVlcyhlKS5maWx0ZXIoZT0+IWUuZGlzYWJsZWQpKSxNdV0sKFtlLHRdKT0+e2xldCBuPXQ/Lmdyb3VwO3JldHVybiFufHxuPT09YGRlZmF1bHRgP2U6ZS5maWx0ZXIoZT0+ZS5ncm91cHMubGVuZ3RoPT09MHx8ZS5ncm91cHMuaW5jbHVkZXMobikpfSksVXU9ayhbSHVdLChbZV0pPT5lLmZpbHRlcihlPT5lLnN0YXR1cz09PUsuQWdlbnRTdGF0dXMuT25saW5lKSksV3U9ZT0+e2lmKGUpcmV0dXJuYCR7ZX0/c2l6ZT04MGA7bGV0e3dpZGdldFYzVXJsOnR9PVYuZ2V0T3B0aW9ucygpO3JldHVybmAke3R9L2Fzc2V0cy9pbWFnZXMvZGVmYXVsdC1hdmF0YXIucG5nYH0sR3U9KCgpPT57bGV0e3N1YnNjcmliZTplLHNldDp0LHVwZGF0ZTpufT1PKFtdKTtyZXR1cm57c3Vic2NyaWJlOmUsc2V0QXNzaWduZWRBZ2VudElkczplPT57dChlKX0sYWRkQXNzaWduZWRBZ2VudElkOmU9PntuKHQ9PlsuLi5uZXcgU2V0KFsuLi50LGVdKV0pfSxyZW1vdmVBc3NpZ25lZEFnZW50SWQ6ZT0+e24odD0+dC5maWx0ZXIodD0+dCE9PWUpKX0sY2xlYXJBc3NpZ25lZEFnZW50SWRzOigpPT57dChbXSl9fX0pKCksS3U9ayhbR3UsQnVdLChbZSx0XSk9PmUubWFwKGU9PnRbZV0pLmZpbHRlcihCb29sZWFuKSkscXU9ayhbS3VdLChbZV0pPT5lLmxlbmd0aD4wKSxKdT1rKFtLdV0sKFtlXSk9PmUuZmlsdGVyKGU9PiFlLmRpc2FibGVkKSksWXU9ayhbS3VdLChbZV0pPT5lLnNvbWUoZT0+ZS5zdGF0dXM9PT1LLkFnZW50U3RhdHVzLk9ubGluZSkpLFh1PSgoKT0+e2xldCBlPU8oe2Rpc2FibGVBdHRhY2htZW50czohMSxkaXNhYmxlQXV0aGVudGljYXRpb246ITEsZGlzYWJsZUlucHV0OiExfSksdD1PKHt9KTtyZXR1cm57c3Vic2NyaWJlOmsoW2UsdF0sKFtlLHRdKT0+KHsuLi5lLC4uLnR9KSkuc3Vic2NyaWJlLHVwZGF0ZUdlbmVyYWxPcHRpb25zOnQ9PntlLnVwZGF0ZShlPT4oey4uLmUsLi4udH0pKX0sc2V0TWVzc2FnZU9wdGlvbnM6ZT0+e3Quc2V0KGUpfX19KSgpLFp1PWsoW1h1XSwoW2VdKT0+ZS5kaXNhYmxlQXR0YWNobWVudHMpLFF1PWZ1bmN0aW9uKGUpe3JldHVybiBlW2UuT3Blbj0wXT1gT3BlbmAsZVtlLkNsb3NlZD0xXT1gQ2xvc2VkYCxlW2UuQ2xvc2VkQnlWaXNpdG9yPTJdPWBDbG9zZWRCeVZpc2l0b3JgLGV9KHt9KSwkdT1PKEsuQWNjb3VudFN0YXR1cy5PZmZsaW5lKSxlZD1PKG51bGwpLHRkPU8oUXUuT3BlbiksbmQ9TyghMSkscmQ9TyhudWxsKSxpZD1PKG51bGwpLGFkPU8oYGApLG9kPWsoW2VkXSwoW2VdKT0+ZT09PUsuQ2hhdFN0YXR1cy5QZW5kaW5nKTtrKFtlZF0sKFtlXSk9PmUhPT1udWxsKTt2YXIgc2Q9ayhbZWRdLChbZV0pPT5lPT09Sy5DaGF0U3RhdHVzLlNlcnZlZCksY2Q9ayhbZWRdLChbZV0pPT5lPT09Sy5DaGF0U3RhdHVzLk9wZW4pLGxkPWsoW2VkXSwoW2VdKT0+ZT09PUsuQ2hhdFN0YXR1cy5DbG9zZWQpLHVkPWsoW3NkLHRkXSwoW2UsdF0pPT5lJiZ0PT09UXUuT3BlbiksZGQ9KGUse2J5VmlzaXRvcjp0PSExfT17fSk9PntlP3RkLnNldCh0P1F1LkNsb3NlZEJ5VmlzaXRvcjpRdS5DbG9zZWQpOnRkLnNldChRdS5PcGVuKX0sZmQ9ayhbJHUsSnVdLChbZSx0XSk9PnQubGVuZ3RoPT09MD9lPT09Sy5BY2NvdW50U3RhdHVzLk9ubGluZTp0LnNvbWUoZT0+ZS5zdGF0dXM9PT1LLkFnZW50U3RhdHVzLk9ubGluZSkpLHBkPWsoW1h1XSwoW2VdKT0+ZS5kaXNhYmxlQXV0aGVudGljYXRpb24pLG1kPSgpPT57bmQuc2V0KCExKSxlZC5zZXQobnVsbCksZGQoITEpLHJkLnNldChudWxsKX0saGQ9ZT0+e2U9PT1LLkFjY291bnRTdGF0dXMuT2ZmbGluZVdpdGhBST8kdS5zZXQoSy5BY2NvdW50U3RhdHVzLk9ubGluZSk6JHUuc2V0KGUpfSxnZD0oKT0+e3JkLnNldChuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCkpLHEuZ2V0Q2xpZW50KCkuY2hhdFJlYWQoKX0sX2Q9KCk9PntsZXQgZT1wbygpLnZpc2liaWxpdHlTdGF0ZT09PWB2aXNpYmxlYDshQShMcCl8fCFBKFgpfHwhZXx8IUEoTl8pfHxnZCgpfSx2ZD1lPT4oey4uLlNzLGNoYXRJZDpBKGFkKSxjcmVhdGVkQXQ6bmV3IERhdGUoKS50b0lTT1N0cmluZygpLGNvbnRlbnQ6ey4uLlNzLmNvbnRlbnQsZGF0YTp7dGFyZ2V0OmV9fX0pLHlkPSgpPT57ZGQoITAse2J5VmlzaXRvcjohMH0pLHEuZ2V0Q2xpZW50KCkuY2hhdENsb3NlKCksVmMoKSxxcCgpfHxXXygpfSxiZD1hc3luYyBlPT57YXdhaXQgSi5hZGRNZXNzYWdlKHZkKGUpKX0seGQ9KCk9PntKLmRlbGV0ZU1lc3NhZ2UoeHMpfTtmdW5jdGlvbiBTZChlKXtyZXR1cm4gZS5sZW5ndGg9PT0wP251bGw6ZVtlLmxlbmd0aC0xXX12YXIgQ2Q9ZT0+ZS5zbGljZSgoZS5sYXN0SW5kZXhPZihgLmApLTE+Pj4wKSsyKS50b0xvd2VyQ2FzZSgpLHdkPWU9PntsZXQgdD1lLG49MCxyPVtgQmAsYEtCYCxgTUJgLGBHQmBdO2Zvcig7dD49MTAyNCYmbjxyLmxlbmd0aC0xOyl0Lz0xMDI0LG4rKztyZXR1cm57c2l6ZTpNYXRoLmZsb29yKHQpLHVuaXQ6cltuXX19LFRkPWU9PntsZXQgdD1TZChlLnNwbGl0KGAuYCkpO3JldHVybiB0P3QudG9VcHBlckNhc2UoKTp4bH0sRWQ9KGUsdCk9PmAke2V9P25hbWU9JHt0fWAsRGQ9YXN5bmMoZSx0KT0+e2xldCBuPXEuZ2V0Q2xpZW50KCkscj1bXTtmb3IobGV0e2ZpbGU6aX1vZiBlKXtsZXQgZT1hd2FpdCBuLmNoYXRVcGxvYWRJbml0KCksYT1uZXcgRm9ybURhdGE7YS5hcHBlbmQoYGZpbGVgLGksaS5uYW1lKTt0cnl7aWYoIShhd2FpdCBmZXRjaChlLnVybCx7bWV0aG9kOmBwb3N0YCxib2R5OmF9KSkub2spdGhyb3cgRXJyb3IoYFVwbG9hZCBmYWlsZWRgKTtyLnB1c2goZS50b2tlbil9Y2F0Y2h7am8oYEZpbGUgWyR7aS5uYW1lfV0gdXBsb2FkIGZhaWxlZGApLGdzKEEoVykoYGZpbGVVcGxvYWQuZmlsZXNXZXJlbnRQcm9jZXNzZWRgKSl9ZmluYWxseXt0KGkpfX1yZXR1cm4gcn0sT2Q9YXN5bmMgZT0+e2xldCB0PXEuZ2V0Q2xpZW50KCk7dHJ5e2F3YWl0IHQuY2hhdFVwbG9hZEZpbmlzaChlKX1jYXRjaHtqbyhgRmFpbGVkIHRvIGZpbmlzaCBmaWxlIHVwbG9hZCBmb3IgJHtlfWApfX0sa2Q9MWUzLEFkPTZlNCxqZD0zNmU1LE1kPTg2NGU1LE5kPTI2MjhlNixQZD0zMTUzNmU2LEZkPWU9Pk1hdGguZmxvb3IoZS9BZCkqQWQsSWQ9KGUsdCk9PkZkKG5ldyBEYXRlKGUpLmdldFRpbWUoKSk9PT1GZChuZXcgRGF0ZSh0KS5nZXRUaW1lKCkpLExkPShlLHQpPT57bGV0IG49bmV3IERhdGUoZSkscj1uZXcgRGF0ZSh0KTtyZXR1cm4gbi5nZXREYXRlKCk9PT1yLmdldERhdGUoKSYmbi5nZXRNb250aCgpPT09ci5nZXRNb250aCgpJiZuLmdldEZ1bGxZZWFyKCk9PT1yLmdldEZ1bGxZZWFyKCl9LFJkPShlLHQpPT5lLmdldFRpbWUoKS10LmdldFRpbWUoKSx6ZD1uZXcgSW50bC5EYXRlVGltZUZvcm1hdCh2b2lkIDAse2hvdXI6YG51bWVyaWNgLG1pbnV0ZTpgbnVtZXJpY2B9KSxCZD1uZXcgSW50bC5EYXRlVGltZUZvcm1hdCh2b2lkIDAse3llYXI6YG51bWVyaWNgLG1vbnRoOmBudW1lcmljYCxkYXk6YG51bWVyaWNgLGhvdXI6YG51bWVyaWNgLG1pbnV0ZTpgbnVtZXJpY2B9KSxWZD1lPT5MZChuZXcgRGF0ZSxlKT96ZDpCZCxIZD0oKT0+dHlwZW9mIEludGw8YHVgJiZgUmVsYXRpdmVUaW1lRm9ybWF0YGluIEludGwsVWQ9ZT0+SGQoKT9uZXcgSW50bC5SZWxhdGl2ZVRpbWVGb3JtYXQoZSx7bnVtZXJpYzpgYXV0b2B9KTpudWxsLFdkPVt7dW5pdDpgeWVhcmAsYW1vdW50OlBkfSx7dW5pdDpgbW9udGhgLGFtb3VudDpOZH0se3VuaXQ6YGRheWAsYW1vdW50Ok1kfSx7dW5pdDpgaG91cmAsYW1vdW50OmpkfSx7dW5pdDpgbWludXRlYCxhbW91bnQ6QWR9LHt1bml0OmBzZWNvbmRgLGFtb3VudDprZH1dLEdkPShlLHQpPT57bGV0IG49VWQodCk7aWYoIW4pcmV0dXJuIEgoYFJlbGF0aXZlIHRpbWUgZm9ybWF0IG5vdCBzdXBwb3J0ZWRgKSxgYDtmb3IobGV0e3VuaXQ6dCxhbW91bnQ6cn1vZiBXZCl7aWYodD09PWBzZWNvbmRgKXJldHVybiBuLmZvcm1hdCgwLGBzZWNvbmRgKTtpZihNYXRoLmFicyhlKT5yKXJldHVybiBuLmZvcm1hdChNYXRoLnJvdW5kKGUvciksdCl9cmV0dXJuYGB9LEtkPShlLHQ9MzAwKT0+e2xldCBuO3JldHVybiguLi5yKT0+e258fD0oZSguLi5yKSxzZXRUaW1lb3V0KCgpPT5uPW51bGwsdCkpfX0scWQ9L1tcMC1cdUQ3RkZcdUUwMDAtXHVGRkZGXXxbXHVEODAwLVx1REJGRl1bXHVEQzAwLVx1REZGRl18W1x1RDgwMC1cdURCRkZdKD8hW1x1REMwMC1cdURGRkZdKXwoPzpbXlx1RDgwMC1cdURCRkZdfF4pW1x1REMwMC1cdURGRkZdLyxKZD0vW1wwLVx4MUZceDdGLVx4OUZdLyxZZD0vWyEtIyUtXCosLVwvOjtcP0BcWy1cXV9ce1x9XHhBMVx4QTdceEFCXHhCNlx4QjdceEJCXHhCRlx1MDM3RVx1MDM4N1x1MDU1QS1cdTA1NUZcdTA1ODlcdTA1OEFcdTA1QkVcdTA1QzBcdTA1QzNcdTA1QzZcdTA1RjNcdTA1RjRcdTA2MDlcdTA2MEFcdTA2MENcdTA2MERcdTA2MUJcdTA2MUQtXHUwNjFGXHUwNjZBLVx1MDY2RFx1MDZENFx1MDcwMC1cdTA3MERcdTA3RjctXHUwN0Y5XHUwODMwLVx1MDgzRVx1MDg1RVx1MDk2NFx1MDk2NVx1MDk3MFx1MDlGRFx1MEE3Nlx1MEFGMFx1MEM3N1x1MEM4NFx1MERGNFx1MEU0Rlx1MEU1QVx1MEU1Qlx1MEYwNC1cdTBGMTJcdTBGMTRcdTBGM0EtXHUwRjNEXHUwRjg1XHUwRkQwLVx1MEZENFx1MEZEOVx1MEZEQVx1MTA0QS1cdTEwNEZcdTEwRkJcdTEzNjAtXHUxMzY4XHUxNDAwXHUxNjZFXHUxNjlCXHUxNjlDXHUxNkVCLVx1MTZFRFx1MTczNVx1MTczNlx1MTdENC1cdTE3RDZcdTE3RDgtXHUxN0RBXHUxODAwLVx1MTgwQVx1MTk0NFx1MTk0NVx1MUExRVx1MUExRlx1MUFBMC1cdTFBQTZcdTFBQTgtXHUxQUFEXHUxQjVBLVx1MUI2MFx1MUI3RFx1MUI3RVx1MUJGQy1cdTFCRkZcdTFDM0ItXHUxQzNGXHUxQzdFXHUxQzdGXHUxQ0MwLVx1MUNDN1x1MUNEM1x1MjAxMC1cdTIwMjdcdTIwMzAtXHUyMDQzXHUyMDQ1LVx1MjA1MVx1MjA1My1cdTIwNUVcdTIwN0RcdTIwN0VcdTIwOERcdTIwOEVcdTIzMDgtXHUyMzBCXHUyMzI5XHUyMzJBXHUyNzY4LVx1Mjc3NVx1MjdDNVx1MjdDNlx1MjdFNi1cdTI3RUZcdTI5ODMtXHUyOTk4XHUyOUQ4LVx1MjlEQlx1MjlGQ1x1MjlGRFx1MkNGOS1cdTJDRkNcdTJDRkVcdTJDRkZcdTJENzBcdTJFMDAtXHUyRTJFXHUyRTMwLVx1MkU0Rlx1MkU1Mi1cdTJFNURcdTMwMDEtXHUzMDAzXHUzMDA4LVx1MzAxMVx1MzAxNC1cdTMwMUZcdTMwMzBcdTMwM0RcdTMwQTBcdTMwRkJcdUE0RkVcdUE0RkZcdUE2MEQtXHVBNjBGXHVBNjczXHVBNjdFXHVBNkYyLVx1QTZGN1x1QTg3NC1cdUE4NzdcdUE4Q0VcdUE4Q0ZcdUE4RjgtXHVBOEZBXHVBOEZDXHVBOTJFXHVBOTJGXHVBOTVGXHVBOUMxLVx1QTlDRFx1QTlERVx1QTlERlx1QUE1Qy1cdUFBNUZcdUFBREVcdUFBREZcdUFBRjBcdUFBRjFcdUFCRUJcdUZEM0VcdUZEM0ZcdUZFMTAtXHVGRTE5XHVGRTMwLVx1RkU1Mlx1RkU1NC1cdUZFNjFcdUZFNjNcdUZFNjhcdUZFNkFcdUZFNkJcdUZGMDEtXHVGRjAzXHVGRjA1LVx1RkYwQVx1RkYwQy1cdUZGMEZcdUZGMUFcdUZGMUJcdUZGMUZcdUZGMjBcdUZGM0ItXHVGRjNEXHVGRjNGXHVGRjVCXHVGRjVEXHVGRjVGLVx1RkY2NV18XHVEODAwW1x1REQwMC1cdUREMDJcdURGOUZcdURGRDBdfFx1RDgwMVx1REQ2RnxcdUQ4MDJbXHVEQzU3XHVERDFGXHVERDNGXHVERTUwLVx1REU1OFx1REU3Rlx1REVGMC1cdURFRjZcdURGMzktXHVERjNGXHVERjk5LVx1REY5Q118XHVEODAzW1x1REVBRFx1REY1NS1cdURGNTlcdURGODYtXHVERjg5XXxcdUQ4MDRbXHVEQzQ3LVx1REM0RFx1RENCQlx1RENCQ1x1RENCRS1cdURDQzFcdURENDAtXHVERDQzXHVERDc0XHVERDc1XHVEREM1LVx1RERDOFx1RERDRFx1REREQlx1RERERC1cdUREREZcdURFMzgtXHVERTNEXHVERUE5XXxcdUQ4MDVbXHVEQzRCLVx1REM0Rlx1REM1QVx1REM1Qlx1REM1RFx1RENDNlx1RERDMS1cdURERDdcdURFNDEtXHVERTQzXHVERTYwLVx1REU2Q1x1REVCOVx1REYzQy1cdURGM0VdfFx1RDgwNltcdURDM0JcdURENDQtXHVERDQ2XHVEREUyXHVERTNGLVx1REU0Nlx1REU5QS1cdURFOUNcdURFOUUtXHVERUEyXHVERjAwLVx1REYwOV18XHVEODA3W1x1REM0MS1cdURDNDVcdURDNzBcdURDNzFcdURFRjdcdURFRjhcdURGNDMtXHVERjRGXHVERkZGXXxcdUQ4MDlbXHVEQzcwLVx1REM3NF18XHVEODBCW1x1REZGMVx1REZGMl18XHVEODFBW1x1REU2RVx1REU2Rlx1REVGNVx1REYzNy1cdURGM0JcdURGNDRdfFx1RDgxQltcdURFOTctXHVERTlBXHVERkUyXXxcdUQ4MkZcdURDOUZ8XHVEODM2W1x1REU4Ny1cdURFOEJdfFx1RDgzQVtcdURENUVcdURENUZdLyxYZD0vWyBceEEwXHUxNjgwXHUyMDAwLVx1MjAwQVx1MjAyOFx1MjAyOVx1MjAyRlx1MjA1Rlx1MzAwMF0vO2Z1bmN0aW9uIFpkKGUpe2xldCB0PXt9O2V8fD17fSx0LnNyY19Bbnk9cWQuc291cmNlLHQuc3JjX0NjPUpkLnNvdXJjZSx0LnNyY19aPVhkLnNvdXJjZSx0LnNyY19QPVlkLnNvdXJjZSx0LnNyY19aUENjPVt0LnNyY19aLHQuc3JjX1AsdC5zcmNfQ2NdLmpvaW4oYHxgKSx0LnNyY19aQ2M9W3Quc3JjX1osdC5zcmNfQ2NdLmpvaW4oYHxgKTtsZXQgbj1gWz48772cXWA7cmV0dXJuIHQuc3JjX3BzZXVkb19sZXR0ZXI9YCg/Oig/IWArbitgfGArdC5zcmNfWlBDYytgKWArdC5zcmNfQW55K2ApYCx0LnNyY19pcDQ9YCg/OigyNVswLTVdfDJbMC00XVswLTldfFswMV0/WzAtOV1bMC05XT8pXFwuKXszfSgyNVswLTVdfDJbMC00XVswLTldfFswMV0/WzAtOV1bMC05XT8pYCx0LnNyY19hdXRoPWAoPzooPzooPyFgK3Quc3JjX1pDYytgfFtAL1xcW1xcXSgpXSkuKStAKT9gLHQuc3JjX3BvcnQ9YCg/OjooPzo2KD86WzAtNF1cXGR7M318NSg/OlswLTRdXFxkezJ9fDUoPzpbMC0yXVxcZHwzWzAtNV0pKSl8WzEtNV0/XFxkezEsNH0pKT9gLHQuc3JjX2hvc3RfdGVybWluYXRvcj1gKD89JHxgK24rYHxgK3Quc3JjX1pQQ2MrYCkoPyFgKyhlW2AtLS1gXT9gLSg/IS0tKXxgOmAtfGApK2BffDpcXGR8XFwuLXxcXC4oPyEkfGArdC5zcmNfWlBDYytgKSlgLHQuc3JjX3BhdGg9YCg/OlsvPyNdKD86KD8hYCt0LnNyY19aQ2MrYHxbPjzvvZxdfFsoKVtcXF17fS4sIic/IVxcLTtdKS58XFxbKD86KD8hYCt0LnNyY19aQ2MrYHxcXF0pLikqXFxdfFxcKCg/Oig/IWArdC5zcmNfWkNjK2B8WyldKS4pKlxcKXxcXHsoPzooPyFgK3Quc3JjX1pDYytgfFt9XSkuKSpcXH18XFwiKD86KD8hYCt0LnNyY19aQ2MrYHxbIl0pLikrXFwifFxcJyg/Oig/IWArdC5zcmNfWkNjK2B8WyddKS4pK1xcJ3xcXCcoPz1gK3Quc3JjX3BzZXVkb19sZXR0ZXIrYHxbLV0pfFxcLnsyLH1bYS16QS1aMC05JS8mXXxcXC4oPyFgK3Quc3JjX1pDYytgfFsuXXwkKXxgKyhlW2AtLS1gXT9gXFwtKD8hLS0oPzpbXi1dfCQpKSg/Oi0qKXxgOmBcXC0rfGApK2AsKD8hYCt0LnNyY19aQ2MrYHwkKXw7KD8hYCt0LnNyY19aQ2MrYHwkKXxcXCErKD8hYCt0LnNyY19aQ2MrYHxbIV18JCl8XFw/KD8hYCt0LnNyY19aQ2MrYHxbP118JCkpK3xcXC8pP2AsdC5zcmNfZW1haWxfbmFtZT1gW1xcLTs6Jj1cXCtcXCQsXFwuYS16QS1aMC05X11bXFwtOzomPVxcK1xcJCxcXCJcXC5hLXpBLVowLTlfXSpgLHQuc3JjX3huPWB4bi0tW2EtejAtOVxcLV17MSw1OX1gLHQuc3JjX2RvbWFpbl9yb290PWAoPzpgK3Quc3JjX3huK2B8YCt0LnNyY19wc2V1ZG9fbGV0dGVyK2B7MSw2M30pYCx0LnNyY19kb21haW49YCg/OmArdC5zcmNfeG4rYHwoPzpgK3Quc3JjX3BzZXVkb19sZXR0ZXIrYCl8KD86YCt0LnNyY19wc2V1ZG9fbGV0dGVyK2AoPzotfGArdC5zcmNfcHNldWRvX2xldHRlcitgKXswLDYxfWArdC5zcmNfcHNldWRvX2xldHRlcitgKSlgLHQuc3JjX2hvc3Q9YCg/Oig/Oig/Oig/OmArdC5zcmNfZG9tYWluK2ApXFwuKSpgK3Quc3JjX2RvbWFpbitgKSlgLHQudHBsX2hvc3RfZnV6enk9YCg/OmArdC5zcmNfaXA0K2B8KD86KD86KD86YCt0LnNyY19kb21haW4rYClcXC4pKyg/OiVUTERTJSkpKWAsdC50cGxfaG9zdF9ub19pcF9mdXp6eT1gKD86KD86KD86YCt0LnNyY19kb21haW4rYClcXC4pKyg/OiVUTERTJSkpYCx0LnNyY19ob3N0X3N0cmljdD10LnNyY19ob3N0K3Quc3JjX2hvc3RfdGVybWluYXRvcix0LnRwbF9ob3N0X2Z1enp5X3N0cmljdD10LnRwbF9ob3N0X2Z1enp5K3Quc3JjX2hvc3RfdGVybWluYXRvcix0LnNyY19ob3N0X3BvcnRfc3RyaWN0PXQuc3JjX2hvc3QrdC5zcmNfcG9ydCt0LnNyY19ob3N0X3Rlcm1pbmF0b3IsdC50cGxfaG9zdF9wb3J0X2Z1enp5X3N0cmljdD10LnRwbF9ob3N0X2Z1enp5K3Quc3JjX3BvcnQrdC5zcmNfaG9zdF90ZXJtaW5hdG9yLHQudHBsX2hvc3RfcG9ydF9ub19pcF9mdXp6eV9zdHJpY3Q9dC50cGxfaG9zdF9ub19pcF9mdXp6eSt0LnNyY19wb3J0K3Quc3JjX2hvc3RfdGVybWluYXRvcix0LnRwbF9ob3N0X2Z1enp5X3Rlc3Q9YGxvY2FsaG9zdHx3d3dcXC58XFwuXFxkezEsM31cXC58KD86XFwuKD86JVRMRFMlKSg/OmArdC5zcmNfWlBDYytgfD58JCkpYCx0LnRwbF9lbWFpbF9mdXp6eT1gKF58YCtuK2B8InxcXCh8YCt0LnNyY19aQ2MrYCkoYCt0LnNyY19lbWFpbF9uYW1lK2BAYCt0LnRwbF9ob3N0X2Z1enp5X3N0cmljdCtgKWAsdC50cGxfbGlua19mdXp6eT0iKF58KD8hWy46L1xcLV9AXSkoPzpbJCs8PT5eYHzvvZxdfCIrdC5zcmNfWlBDYysiKSkoKD8hWyQrPD0+XmB8772cXSkiK3QudHBsX2hvc3RfcG9ydF9mdXp6eV9zdHJpY3QrdC5zcmNfcGF0aCtgKWAsdC50cGxfbGlua19ub19pcF9mdXp6eT0iKF58KD8hWy46L1xcLV9AXSkoPzpbJCs8PT5eYHzvvZxdfCIrdC5zcmNfWlBDYysiKSkoKD8hWyQrPD0+XmB8772cXSkiK3QudHBsX2hvc3RfcG9ydF9ub19pcF9mdXp6eV9zdHJpY3QrdC5zcmNfcGF0aCtgKWAsdH1mdW5jdGlvbiBRZChlKXtyZXR1cm4gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLDEpLmZvckVhY2goZnVuY3Rpb24odCl7dCYmT2JqZWN0LmtleXModCkuZm9yRWFjaChmdW5jdGlvbihuKXtlW25dPXRbbl19KX0pLGV9ZnVuY3Rpb24gJGQoZSl7cmV0dXJuIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChlKX1mdW5jdGlvbiBlZihlKXtyZXR1cm4gJGQoZSk9PT1gW29iamVjdCBTdHJpbmddYH1mdW5jdGlvbiB0ZihlKXtyZXR1cm4gJGQoZSk9PT1gW29iamVjdCBPYmplY3RdYH1mdW5jdGlvbiBuZihlKXtyZXR1cm4gJGQoZSk9PT1gW29iamVjdCBSZWdFeHBdYH1mdW5jdGlvbiByZihlKXtyZXR1cm4gJGQoZSk9PT1gW29iamVjdCBGdW5jdGlvbl1gfWZ1bmN0aW9uIGFmKGUpe3JldHVybiBlLnJlcGxhY2UoL1suPyorXiRbXF1cXCgpe318LV0vZyxgXFwkJmApfXZhciBvZj17ZnV6enlMaW5rOiEwLGZ1enp5RW1haWw6ITAsZnV6enlJUDohMX07ZnVuY3Rpb24gc2YoZSl7cmV0dXJuIE9iamVjdC5rZXlzKGV8fHt9KS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gZXx8b2YuaGFzT3duUHJvcGVydHkodCl9LCExKX12YXIgY2Y9eyJodHRwOiI6e3ZhbGlkYXRlOmZ1bmN0aW9uKGUsdCxuKXtsZXQgcj1lLnNsaWNlKHQpO3JldHVybiBuLnJlLmh0dHB8fChuLnJlLmh0dHA9UmVnRXhwKGBeXFwvXFwvYCtuLnJlLnNyY19hdXRoK24ucmUuc3JjX2hvc3RfcG9ydF9zdHJpY3Qrbi5yZS5zcmNfcGF0aCxgaWApKSxuLnJlLmh0dHAudGVzdChyKT9yLm1hdGNoKG4ucmUuaHR0cClbMF0ubGVuZ3RoOjB9fSwiaHR0cHM6IjpgaHR0cDpgLCJmdHA6IjpgaHR0cDpgLCIvLyI6e3ZhbGlkYXRlOmZ1bmN0aW9uKGUsdCxuKXtsZXQgcj1lLnNsaWNlKHQpO3JldHVybiBuLnJlLm5vX2h0dHB8fChuLnJlLm5vX2h0dHA9UmVnRXhwKGBeYCtuLnJlLnNyY19hdXRoK2AoPzpsb2NhbGhvc3R8KD86KD86YCtuLnJlLnNyY19kb21haW4rYClcXC4pK2Arbi5yZS5zcmNfZG9tYWluX3Jvb3QrYClgK24ucmUuc3JjX3BvcnQrbi5yZS5zcmNfaG9zdF90ZXJtaW5hdG9yK24ucmUuc3JjX3BhdGgsYGlgKSksbi5yZS5ub19odHRwLnRlc3Qocik/dD49MyYmZVt0LTNdPT09YDpgfHx0Pj0zJiZlW3QtM109PT1gL2A/MDpyLm1hdGNoKG4ucmUubm9faHR0cClbMF0ubGVuZ3RoOjB9fSwibWFpbHRvOiI6e3ZhbGlkYXRlOmZ1bmN0aW9uKGUsdCxuKXtsZXQgcj1lLnNsaWNlKHQpO3JldHVybiBuLnJlLm1haWx0b3x8KG4ucmUubWFpbHRvPVJlZ0V4cChgXmArbi5yZS5zcmNfZW1haWxfbmFtZStgQGArbi5yZS5zcmNfaG9zdF9zdHJpY3QsYGlgKSksbi5yZS5tYWlsdG8udGVzdChyKT9yLm1hdGNoKG4ucmUubWFpbHRvKVswXS5sZW5ndGg6MH19fSxsZj1gYVtjZGVmZ2lsbW5vcXJzdHV3eHpdfGJbYWJkZWZnaGlqbW5vcnN0dnd5el18Y1thY2RmZ2hpa2xtbm9ydXZ3eHl6XXxkW2Vqa21vel18ZVtjZWdyc3R1XXxmW2lqa21vcl18Z1thYmRlZmdoaWxtbnBxcnN0dXd5XXxoW2ttbnJ0dV18aVtkZWxtbm9xcnN0XXxqW2Vtb3BdfGtbZWdoaW1ucHJ3eXpdfGxbYWJjaWtyc3R1dnldfG1bYWNkZWdoa2xtbm9wcXJzdHV2d3h5el18blthY2VmZ2lsb3BydXpdfG9tfHBbYWVmZ2hrbG1ucnN0d3ldfHFhfHJbZW9zdXddfHNbYWJjZGVnaGlqa2xtbm9ydHV2eHl6XXx0W2NkZmdoamtsbW5vcnR2d3pdfHVbYWdrc3l6XXx2W2FjZWdpbnVdfHdbZnNdfHlbZXRdfHpbYW13XWAsdWY9YGJpenxjb218ZWR1fGdvdnxuZXR8b3JnfHByb3x3ZWJ8eHh4fGFlcm98YXNpYXxjb29wfGluZm98bXVzZXVtfG5hbWV8c2hvcHzRgNGEYC5zcGxpdChgfGApO2Z1bmN0aW9uIGRmKGUpe2UuX19pbmRleF9fPS0xLGUuX190ZXh0X2NhY2hlX189YGB9ZnVuY3Rpb24gZmYoZSl7cmV0dXJuIGZ1bmN0aW9uKHQsbil7bGV0IHI9dC5zbGljZShuKTtyZXR1cm4gZS50ZXN0KHIpP3IubWF0Y2goZSlbMF0ubGVuZ3RoOjB9fWZ1bmN0aW9uIHBmKCl7cmV0dXJuIGZ1bmN0aW9uKGUsdCl7dC5ub3JtYWxpemUoZSl9fWZ1bmN0aW9uIG1mKGUpe2xldCB0PWUucmU9WmQoZS5fX29wdHNfXyksbj1lLl9fdGxkc19fLnNsaWNlKCk7ZS5vbkNvbXBpbGUoKSxlLl9fdGxkc19yZXBsYWNlZF9ffHxuLnB1c2gobGYpLG4ucHVzaCh0LnNyY194biksdC5zcmNfdGxkcz1uLmpvaW4oYHxgKTtmdW5jdGlvbiByKGUpe3JldHVybiBlLnJlcGxhY2UoYCVUTERTJWAsdC5zcmNfdGxkcyl9dC5lbWFpbF9mdXp6eT1SZWdFeHAocih0LnRwbF9lbWFpbF9mdXp6eSksYGlgKSx0LmxpbmtfZnV6enk9UmVnRXhwKHIodC50cGxfbGlua19mdXp6eSksYGlgKSx0Lmxpbmtfbm9faXBfZnV6enk9UmVnRXhwKHIodC50cGxfbGlua19ub19pcF9mdXp6eSksYGlgKSx0Lmhvc3RfZnV6enlfdGVzdD1SZWdFeHAocih0LnRwbF9ob3N0X2Z1enp5X3Rlc3QpLGBpYCk7bGV0IGk9W107ZS5fX2NvbXBpbGVkX189e307ZnVuY3Rpb24gYShlLHQpe3Rocm93IEVycm9yKGAoTGlua2lmeUl0KSBJbnZhbGlkIHNjaGVtYSAiYCtlK2AiOiBgK3QpfU9iamVjdC5rZXlzKGUuX19zY2hlbWFzX18pLmZvckVhY2goZnVuY3Rpb24odCl7bGV0IG49ZS5fX3NjaGVtYXNfX1t0XTtpZihuPT09bnVsbClyZXR1cm47bGV0IHI9e3ZhbGlkYXRlOm51bGwsbGluazpudWxsfTtpZihlLl9fY29tcGlsZWRfX1t0XT1yLHRmKG4pKXtuZihuLnZhbGlkYXRlKT9yLnZhbGlkYXRlPWZmKG4udmFsaWRhdGUpOnJmKG4udmFsaWRhdGUpP3IudmFsaWRhdGU9bi52YWxpZGF0ZTphKHQsbikscmYobi5ub3JtYWxpemUpP3Iubm9ybWFsaXplPW4ubm9ybWFsaXplOm4ubm9ybWFsaXplP2EodCxuKTpyLm5vcm1hbGl6ZT1wZigpO3JldHVybn1pZihlZihuKSl7aS5wdXNoKHQpO3JldHVybn1hKHQsbil9KSxpLmZvckVhY2goZnVuY3Rpb24odCl7ZS5fX2NvbXBpbGVkX19bZS5fX3NjaGVtYXNfX1t0XV0mJihlLl9fY29tcGlsZWRfX1t0XS52YWxpZGF0ZT1lLl9fY29tcGlsZWRfX1tlLl9fc2NoZW1hc19fW3RdXS52YWxpZGF0ZSxlLl9fY29tcGlsZWRfX1t0XS5ub3JtYWxpemU9ZS5fX2NvbXBpbGVkX19bZS5fX3NjaGVtYXNfX1t0XV0ubm9ybWFsaXplKX0pLGUuX19jb21waWxlZF9fW2BgXT17dmFsaWRhdGU6bnVsbCxub3JtYWxpemU6cGYoKX07bGV0IG89T2JqZWN0LmtleXMoZS5fX2NvbXBpbGVkX18pLmZpbHRlcihmdW5jdGlvbih0KXtyZXR1cm4gdC5sZW5ndGg+MCYmZS5fX2NvbXBpbGVkX19bdF19KS5tYXAoYWYpLmpvaW4oYHxgKTtlLnJlLnNjaGVtYV90ZXN0PVJlZ0V4cChgKF58KD8hXykoPzpbPjzvvZxdfGArdC5zcmNfWlBDYytgKSkoYCtvK2ApYCxgaWApLGUucmUuc2NoZW1hX3NlYXJjaD1SZWdFeHAoYChefCg/IV8pKD86Wz48772cXXxgK3Quc3JjX1pQQ2MrYCkpKGArbytgKWAsYGlnYCksZS5yZS5zY2hlbWFfYXRfc3RhcnQ9UmVnRXhwKGBeYCtlLnJlLnNjaGVtYV9zZWFyY2guc291cmNlLGBpYCksZS5yZS5wcmV0ZXN0PVJlZ0V4cChgKGArZS5yZS5zY2hlbWFfdGVzdC5zb3VyY2UrYCl8KGArZS5yZS5ob3N0X2Z1enp5X3Rlc3Quc291cmNlK2ApfEBgLGBpYCksZGYoZSl9ZnVuY3Rpb24gaGYoZSx0KXtsZXQgbj1lLl9faW5kZXhfXyxyPWUuX19sYXN0X2luZGV4X18saT1lLl9fdGV4dF9jYWNoZV9fLnNsaWNlKG4scik7dGhpcy5zY2hlbWE9ZS5fX3NjaGVtYV9fLnRvTG93ZXJDYXNlKCksdGhpcy5pbmRleD1uK3QsdGhpcy5sYXN0SW5kZXg9cit0LHRoaXMucmF3PWksdGhpcy50ZXh0PWksdGhpcy51cmw9aX1mdW5jdGlvbiBnZihlLHQpe2xldCBuPW5ldyBoZihlLHQpO3JldHVybiBlLl9fY29tcGlsZWRfX1tuLnNjaGVtYV0ubm9ybWFsaXplKG4sZSksbn1mdW5jdGlvbiBfZihlLHQpe2lmKCEodGhpcyBpbnN0YW5jZW9mIF9mKSlyZXR1cm4gbmV3IF9mKGUsdCk7dHx8c2YoZSkmJih0PWUsZT17fSksdGhpcy5fX29wdHNfXz1RZCh7fSxvZix0KSx0aGlzLl9faW5kZXhfXz0tMSx0aGlzLl9fbGFzdF9pbmRleF9fPS0xLHRoaXMuX19zY2hlbWFfXz1gYCx0aGlzLl9fdGV4dF9jYWNoZV9fPWBgLHRoaXMuX19zY2hlbWFzX189UWQoe30sY2YsZSksdGhpcy5fX2NvbXBpbGVkX189e30sdGhpcy5fX3RsZHNfXz11Zix0aGlzLl9fdGxkc19yZXBsYWNlZF9fPSExLHRoaXMucmU9e30sbWYodGhpcyl9X2YucHJvdG90eXBlLmFkZD1mdW5jdGlvbihlLHQpe3JldHVybiB0aGlzLl9fc2NoZW1hc19fW2VdPXQsbWYodGhpcyksdGhpc30sX2YucHJvdG90eXBlLnNldD1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5fX29wdHNfXz1RZCh0aGlzLl9fb3B0c19fLGUpLHRoaXN9LF9mLnByb3RvdHlwZS50ZXN0PWZ1bmN0aW9uKGUpe2lmKHRoaXMuX190ZXh0X2NhY2hlX189ZSx0aGlzLl9faW5kZXhfXz0tMSwhZS5sZW5ndGgpcmV0dXJuITE7bGV0IHQsbixyLGksYSxvLHMsYyxsO2lmKHRoaXMucmUuc2NoZW1hX3Rlc3QudGVzdChlKSl7Zm9yKHM9dGhpcy5yZS5zY2hlbWFfc2VhcmNoLHMubGFzdEluZGV4PTA7KHQ9cy5leGVjKGUpKSE9PW51bGw7KWlmKGk9dGhpcy50ZXN0U2NoZW1hQXQoZSx0WzJdLHMubGFzdEluZGV4KSxpKXt0aGlzLl9fc2NoZW1hX189dFsyXSx0aGlzLl9faW5kZXhfXz10LmluZGV4K3RbMV0ubGVuZ3RoLHRoaXMuX19sYXN0X2luZGV4X189dC5pbmRleCt0WzBdLmxlbmd0aCtpO2JyZWFrfX1yZXR1cm4gdGhpcy5fX29wdHNfXy5mdXp6eUxpbmsmJnRoaXMuX19jb21waWxlZF9fW2BodHRwOmBdJiYoYz1lLnNlYXJjaCh0aGlzLnJlLmhvc3RfZnV6enlfdGVzdCksYz49MCYmKHRoaXMuX19pbmRleF9fPDB8fGM8dGhpcy5fX2luZGV4X18pJiYobj1lLm1hdGNoKHRoaXMuX19vcHRzX18uZnV6enlJUD90aGlzLnJlLmxpbmtfZnV6enk6dGhpcy5yZS5saW5rX25vX2lwX2Z1enp5KSkhPT1udWxsJiYoYT1uLmluZGV4K25bMV0ubGVuZ3RoLCh0aGlzLl9faW5kZXhfXzwwfHxhPHRoaXMuX19pbmRleF9fKSYmKHRoaXMuX19zY2hlbWFfXz1gYCx0aGlzLl9faW5kZXhfXz1hLHRoaXMuX19sYXN0X2luZGV4X189bi5pbmRleCtuWzBdLmxlbmd0aCkpKSx0aGlzLl9fb3B0c19fLmZ1enp5RW1haWwmJnRoaXMuX19jb21waWxlZF9fW2BtYWlsdG86YF0mJihsPWUuaW5kZXhPZihgQGApLGw+PTAmJihyPWUubWF0Y2godGhpcy5yZS5lbWFpbF9mdXp6eSkpIT09bnVsbCYmKGE9ci5pbmRleCtyWzFdLmxlbmd0aCxvPXIuaW5kZXgrclswXS5sZW5ndGgsKHRoaXMuX19pbmRleF9fPDB8fGE8dGhpcy5fX2luZGV4X198fGE9PT10aGlzLl9faW5kZXhfXyYmbz50aGlzLl9fbGFzdF9pbmRleF9fKSYmKHRoaXMuX19zY2hlbWFfXz1gbWFpbHRvOmAsdGhpcy5fX2luZGV4X189YSx0aGlzLl9fbGFzdF9pbmRleF9fPW8pKSksdGhpcy5fX2luZGV4X18+PTB9LF9mLnByb3RvdHlwZS5wcmV0ZXN0PWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLnJlLnByZXRlc3QudGVzdChlKX0sX2YucHJvdG90eXBlLnRlc3RTY2hlbWFBdD1mdW5jdGlvbihlLHQsbil7cmV0dXJuIHRoaXMuX19jb21waWxlZF9fW3QudG9Mb3dlckNhc2UoKV0/dGhpcy5fX2NvbXBpbGVkX19bdC50b0xvd2VyQ2FzZSgpXS52YWxpZGF0ZShlLG4sdGhpcyk6MH0sX2YucHJvdG90eXBlLm1hdGNoPWZ1bmN0aW9uKGUpe2xldCB0PVtdLG49MDt0aGlzLl9faW5kZXhfXz49MCYmdGhpcy5fX3RleHRfY2FjaGVfXz09PWUmJih0LnB1c2goZ2YodGhpcyxuKSksbj10aGlzLl9fbGFzdF9pbmRleF9fKTtsZXQgcj1uP2Uuc2xpY2Uobik6ZTtmb3IoO3RoaXMudGVzdChyKTspdC5wdXNoKGdmKHRoaXMsbikpLHI9ci5zbGljZSh0aGlzLl9fbGFzdF9pbmRleF9fKSxuKz10aGlzLl9fbGFzdF9pbmRleF9fO3JldHVybiB0Lmxlbmd0aD90Om51bGx9LF9mLnByb3RvdHlwZS5tYXRjaEF0U3RhcnQ9ZnVuY3Rpb24oZSl7aWYodGhpcy5fX3RleHRfY2FjaGVfXz1lLHRoaXMuX19pbmRleF9fPS0xLCFlLmxlbmd0aClyZXR1cm4gbnVsbDtsZXQgdD10aGlzLnJlLnNjaGVtYV9hdF9zdGFydC5leGVjKGUpO2lmKCF0KXJldHVybiBudWxsO2xldCBuPXRoaXMudGVzdFNjaGVtYUF0KGUsdFsyXSx0WzBdLmxlbmd0aCk7cmV0dXJuIG4/KHRoaXMuX19zY2hlbWFfXz10WzJdLHRoaXMuX19pbmRleF9fPXQuaW5kZXgrdFsxXS5sZW5ndGgsdGhpcy5fX2xhc3RfaW5kZXhfXz10LmluZGV4K3RbMF0ubGVuZ3RoK24sZ2YodGhpcywwKSk6bnVsbH0sX2YucHJvdG90eXBlLnRsZHM9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZT1BcnJheS5pc0FycmF5KGUpP2U6W2VdLHQ/KHRoaXMuX190bGRzX189dGhpcy5fX3RsZHNfXy5jb25jYXQoZSkuc29ydCgpLmZpbHRlcihmdW5jdGlvbihlLHQsbil7cmV0dXJuIGUhPT1uW3QtMV19KS5yZXZlcnNlKCksbWYodGhpcyksdGhpcyk6KHRoaXMuX190bGRzX189ZS5zbGljZSgpLHRoaXMuX190bGRzX3JlcGxhY2VkX189ITAsbWYodGhpcyksdGhpcyl9LF9mLnByb3RvdHlwZS5ub3JtYWxpemU9ZnVuY3Rpb24oZSl7ZS5zY2hlbWF8fChlLnVybD1gaHR0cDovL2ArZS51cmwpLGUuc2NoZW1hPT09YG1haWx0bzpgJiYhL15tYWlsdG86L2kudGVzdChlLnVybCkmJihlLnVybD1gbWFpbHRvOmArZS51cmwpfSxfZi5wcm90b3R5cGUub25Db21waWxlPWZ1bmN0aW9uKCl7fTt2YXIgdmY9SlNPTi5wYXJzZShgWyJhYWEiLCJhYXJwIiwiYWJiIiwiYWJib3R0IiwiYWJidmllIiwiYWJjIiwiYWJsZSIsImFib2dhZG8iLCJhYnVkaGFiaSIsImFjIiwiYWNhZGVteSIsImFjY2VudHVyZSIsImFjY291bnRhbnQiLCJhY2NvdW50YW50cyIsImFjbyIsImFjdG9yIiwiYWQiLCJhZHMiLCJhZHVsdCIsImFlIiwiYWVnIiwiYWVybyIsImFldG5hIiwiYWYiLCJhZmwiLCJhZnJpY2EiLCJhZyIsImFnYWtoYW4iLCJhZ2VuY3kiLCJhaSIsImFpZyIsImFpcmJ1cyIsImFpcmZvcmNlIiwiYWlydGVsIiwiYWtkbiIsImFsIiwiYWxpYmFiYSIsImFsaXBheSIsImFsbGZpbmFueiIsImFsbHN0YXRlIiwiYWxseSIsImFsc2FjZSIsImFsc3RvbSIsImFtIiwiYW1hem9uIiwiYW1lcmljYW5leHByZXNzIiwiYW1lcmljYW5mYW1pbHkiLCJhbWV4IiwiYW1mYW0iLCJhbWljYSIsImFtc3RlcmRhbSIsImFuYWx5dGljcyIsImFuZHJvaWQiLCJhbnF1YW4iLCJhbnoiLCJhbyIsImFvbCIsImFwYXJ0bWVudHMiLCJhcHAiLCJhcHBsZSIsImFxIiwiYXF1YXJlbGxlIiwiYXIiLCJhcmFiIiwiYXJhbWNvIiwiYXJjaGkiLCJhcm15IiwiYXJwYSIsImFydCIsImFydGUiLCJhcyIsImFzZGEiLCJhc2lhIiwiYXNzb2NpYXRlcyIsImF0IiwiYXRobGV0YSIsImF0dG9ybmV5IiwiYXUiLCJhdWN0aW9uIiwiYXVkaSIsImF1ZGlibGUiLCJhdWRpbyIsImF1c3Bvc3QiLCJhdXRob3IiLCJhdXRvIiwiYXV0b3MiLCJhdyIsImF3cyIsImF4IiwiYXhhIiwiYXoiLCJhenVyZSIsImJhIiwiYmFieSIsImJhaWR1IiwiYmFuYW1leCIsImJhbmQiLCJiYW5rIiwiYmFyIiwiYmFyY2Vsb25hIiwiYmFyY2xheWNhcmQiLCJiYXJjbGF5cyIsImJhcmVmb290IiwiYmFyZ2FpbnMiLCJiYXNlYmFsbCIsImJhc2tldGJhbGwiLCJiYXVoYXVzIiwiYmF5ZXJuIiwiYmIiLCJiYmMiLCJiYnQiLCJiYnZhIiwiYmNnIiwiYmNuIiwiYmQiLCJiZSIsImJlYXRzIiwiYmVhdXR5IiwiYmVlciIsImJlcmxpbiIsImJlc3QiLCJiZXN0YnV5IiwiYmV0IiwiYmYiLCJiZyIsImJoIiwiYmhhcnRpIiwiYmkiLCJiaWJsZSIsImJpZCIsImJpa2UiLCJiaW5nIiwiYmluZ28iLCJiaW8iLCJiaXoiLCJiaiIsImJsYWNrIiwiYmxhY2tmcmlkYXkiLCJibG9ja2J1c3RlciIsImJsb2ciLCJibG9vbWJlcmciLCJibHVlIiwiYm0iLCJibXMiLCJibXciLCJibiIsImJucHBhcmliYXMiLCJibyIsImJvYXRzIiwiYm9laHJpbmdlciIsImJvZmEiLCJib20iLCJib25kIiwiYm9vIiwiYm9vayIsImJvb2tpbmciLCJib3NjaCIsImJvc3RpayIsImJvc3RvbiIsImJvdCIsImJvdXRpcXVlIiwiYm94IiwiYnIiLCJicmFkZXNjbyIsImJyaWRnZXN0b25lIiwiYnJvYWR3YXkiLCJicm9rZXIiLCJicm90aGVyIiwiYnJ1c3NlbHMiLCJicyIsImJ0IiwiYnVpbGQiLCJidWlsZGVycyIsImJ1c2luZXNzIiwiYnV5IiwiYnV6eiIsImJ2IiwiYnciLCJieSIsImJ6IiwiYnpoIiwiY2EiLCJjYWIiLCJjYWZlIiwiY2FsIiwiY2FsbCIsImNhbHZpbmtsZWluIiwiY2FtIiwiY2FtZXJhIiwiY2FtcCIsImNhbm9uIiwiY2FwZXRvd24iLCJjYXBpdGFsIiwiY2FwaXRhbG9uZSIsImNhciIsImNhcmF2YW4iLCJjYXJkcyIsImNhcmUiLCJjYXJlZXIiLCJjYXJlZXJzIiwiY2FycyIsImNhc2EiLCJjYXNlIiwiY2FzaCIsImNhc2lubyIsImNhdCIsImNhdGVyaW5nIiwiY2F0aG9saWMiLCJjYmEiLCJjYm4iLCJjYnJlIiwiY2MiLCJjZCIsImNlbnRlciIsImNlbyIsImNlcm4iLCJjZiIsImNmYSIsImNmZCIsImNnIiwiY2giLCJjaGFuZWwiLCJjaGFubmVsIiwiY2hhcml0eSIsImNoYXNlIiwiY2hhdCIsImNoZWFwIiwiY2hpbnRhaSIsImNocmlzdG1hcyIsImNocm9tZSIsImNodXJjaCIsImNpIiwiY2lwcmlhbmkiLCJjaXJjbGUiLCJjaXNjbyIsImNpdGFkZWwiLCJjaXRpIiwiY2l0aWMiLCJjaXR5IiwiY2siLCJjbCIsImNsYWltcyIsImNsZWFuaW5nIiwiY2xpY2siLCJjbGluaWMiLCJjbGluaXF1ZSIsImNsb3RoaW5nIiwiY2xvdWQiLCJjbHViIiwiY2x1Ym1lZCIsImNtIiwiY24iLCJjbyIsImNvYWNoIiwiY29kZXMiLCJjb2ZmZWUiLCJjb2xsZWdlIiwiY29sb2duZSIsImNvbSIsImNvbW1iYW5rIiwiY29tbXVuaXR5IiwiY29tcGFueSIsImNvbXBhcmUiLCJjb21wdXRlciIsImNvbXNlYyIsImNvbmRvcyIsImNvbnN0cnVjdGlvbiIsImNvbnN1bHRpbmciLCJjb250YWN0IiwiY29udHJhY3RvcnMiLCJjb29raW5nIiwiY29vbCIsImNvb3AiLCJjb3JzaWNhIiwiY291bnRyeSIsImNvdXBvbiIsImNvdXBvbnMiLCJjb3Vyc2VzIiwiY3BhIiwiY3IiLCJjcmVkaXQiLCJjcmVkaXRjYXJkIiwiY3JlZGl0dW5pb24iLCJjcmlja2V0IiwiY3Jvd24iLCJjcnMiLCJjcnVpc2UiLCJjcnVpc2VzIiwiY3UiLCJjdWlzaW5lbGxhIiwiY3YiLCJjdyIsImN4IiwiY3kiLCJjeW1ydSIsImN5b3UiLCJjeiIsImRhZCIsImRhbmNlIiwiZGF0YSIsImRhdGUiLCJkYXRpbmciLCJkYXRzdW4iLCJkYXkiLCJkY2xrIiwiZGRzIiwiZGUiLCJkZWFsIiwiZGVhbGVyIiwiZGVhbHMiLCJkZWdyZWUiLCJkZWxpdmVyeSIsImRlbGwiLCJkZWxvaXR0ZSIsImRlbHRhIiwiZGVtb2NyYXQiLCJkZW50YWwiLCJkZW50aXN0IiwiZGVzaSIsImRlc2lnbiIsImRldiIsImRobCIsImRpYW1vbmRzIiwiZGlldCIsImRpZ2l0YWwiLCJkaXJlY3QiLCJkaXJlY3RvcnkiLCJkaXNjb3VudCIsImRpc2NvdmVyIiwiZGlzaCIsImRpeSIsImRqIiwiZGsiLCJkbSIsImRucCIsImRvIiwiZG9jcyIsImRvY3RvciIsImRvZyIsImRvbWFpbnMiLCJkb3QiLCJkb3dubG9hZCIsImRyaXZlIiwiZHR2IiwiZHViYWkiLCJkdXBvbnQiLCJkdXJiYW4iLCJkdmFnIiwiZHZyIiwiZHoiLCJlYXJ0aCIsImVhdCIsImVjIiwiZWNvIiwiZWRla2EiLCJlZHUiLCJlZHVjYXRpb24iLCJlZSIsImVnIiwiZW1haWwiLCJlbWVyY2siLCJlbmVyZ3kiLCJlbmdpbmVlciIsImVuZ2luZWVyaW5nIiwiZW50ZXJwcmlzZXMiLCJlcHNvbiIsImVxdWlwbWVudCIsImVyIiwiZXJpY3Nzb24iLCJlcm5pIiwiZXMiLCJlc3EiLCJlc3RhdGUiLCJldCIsImV1IiwiZXVyb3Zpc2lvbiIsImV1cyIsImV2ZW50cyIsImV4Y2hhbmdlIiwiZXhwZXJ0IiwiZXhwb3NlZCIsImV4cHJlc3MiLCJleHRyYXNwYWNlIiwiZmFnZSIsImZhaWwiLCJmYWlyd2luZHMiLCJmYWl0aCIsImZhbWlseSIsImZhbiIsImZhbnMiLCJmYXJtIiwiZmFybWVycyIsImZhc2hpb24iLCJmYXN0IiwiZmVkZXgiLCJmZWVkYmFjayIsImZlcnJhcmkiLCJmZXJyZXJvIiwiZmkiLCJmaWRlbGl0eSIsImZpZG8iLCJmaWxtIiwiZmluYWwiLCJmaW5hbmNlIiwiZmluYW5jaWFsIiwiZmlyZSIsImZpcmVzdG9uZSIsImZpcm1kYWxlIiwiZmlzaCIsImZpc2hpbmciLCJmaXQiLCJmaXRuZXNzIiwiZmoiLCJmayIsImZsaWNrciIsImZsaWdodHMiLCJmbGlyIiwiZmxvcmlzdCIsImZsb3dlcnMiLCJmbHkiLCJmbSIsImZvIiwiZm9vIiwiZm9vZCIsImZvb3RiYWxsIiwiZm9yZCIsImZvcmV4IiwiZm9yc2FsZSIsImZvcnVtIiwiZm91bmRhdGlvbiIsImZveCIsImZyIiwiZnJlZSIsImZyZXNlbml1cyIsImZybCIsImZyb2dhbnMiLCJmcm9udGllciIsImZ0ciIsImZ1aml0c3UiLCJmdW4iLCJmdW5kIiwiZnVybml0dXJlIiwiZnV0Ym9sIiwiZnlpIiwiZ2EiLCJnYWwiLCJnYWxsZXJ5IiwiZ2FsbG8iLCJnYWxsdXAiLCJnYW1lIiwiZ2FtZXMiLCJnYXAiLCJnYXJkZW4iLCJnYXkiLCJnYiIsImdiaXoiLCJnZCIsImdkbiIsImdlIiwiZ2VhIiwiZ2VudCIsImdlbnRpbmciLCJnZW9yZ2UiLCJnZiIsImdnIiwiZ2dlZSIsImdoIiwiZ2kiLCJnaWZ0IiwiZ2lmdHMiLCJnaXZlcyIsImdpdmluZyIsImdsIiwiZ2xhc3MiLCJnbGUiLCJnbG9iYWwiLCJnbG9ibyIsImdtIiwiZ21haWwiLCJnbWJoIiwiZ21vIiwiZ214IiwiZ24iLCJnb2RhZGR5IiwiZ29sZCIsImdvbGRwb2ludCIsImdvbGYiLCJnb28iLCJnb29keWVhciIsImdvb2ciLCJnb29nbGUiLCJnb3AiLCJnb3QiLCJnb3YiLCJncCIsImdxIiwiZ3IiLCJncmFpbmdlciIsImdyYXBoaWNzIiwiZ3JhdGlzIiwiZ3JlZW4iLCJncmlwZSIsImdyb2NlcnkiLCJncm91cCIsImdzIiwiZ3QiLCJndSIsImd1Y2NpIiwiZ3VnZSIsImd1aWRlIiwiZ3VpdGFycyIsImd1cnUiLCJndyIsImd5IiwiaGFpciIsImhhbWJ1cmciLCJoYW5nb3V0IiwiaGF1cyIsImhibyIsImhkZmMiLCJoZGZjYmFuayIsImhlYWx0aCIsImhlYWx0aGNhcmUiLCJoZWxwIiwiaGVsc2lua2kiLCJoZXJlIiwiaGVybWVzIiwiaGlwaG9wIiwiaGlzYW1pdHN1IiwiaGl0YWNoaSIsImhpdiIsImhrIiwiaGt0IiwiaG0iLCJobiIsImhvY2tleSIsImhvbGRpbmdzIiwiaG9saWRheSIsImhvbWVkZXBvdCIsImhvbWVnb29kcyIsImhvbWVzIiwiaG9tZXNlbnNlIiwiaG9uZGEiLCJob3JzZSIsImhvc3BpdGFsIiwiaG9zdCIsImhvc3RpbmciLCJob3QiLCJob3RlbHMiLCJob3RtYWlsIiwiaG91c2UiLCJob3ciLCJociIsImhzYmMiLCJodCIsImh1IiwiaHVnaGVzIiwiaHlhdHQiLCJoeXVuZGFpIiwiaWJtIiwiaWNiYyIsImljZSIsImljdSIsImlkIiwiaWUiLCJpZWVlIiwiaWZtIiwiaWthbm8iLCJpbCIsImltIiwiaW1hbWF0IiwiaW1kYiIsImltbW8iLCJpbW1vYmlsaWVuIiwiaW4iLCJpbmMiLCJpbmR1c3RyaWVzIiwiaW5maW5pdGkiLCJpbmZvIiwiaW5nIiwiaW5rIiwiaW5zdGl0dXRlIiwiaW5zdXJhbmNlIiwiaW5zdXJlIiwiaW50IiwiaW50ZXJuYXRpb25hbCIsImludHVpdCIsImludmVzdG1lbnRzIiwiaW8iLCJpcGlyYW5nYSIsImlxIiwiaXIiLCJpcmlzaCIsImlzIiwiaXNtYWlsaSIsImlzdCIsImlzdGFuYnVsIiwiaXQiLCJpdGF1IiwiaXR2IiwiamFndWFyIiwiamF2YSIsImpjYiIsImplIiwiamVlcCIsImpldHp0IiwiamV3ZWxyeSIsImppbyIsImpsbCIsImptIiwiam1wIiwiam5qIiwiam8iLCJqb2JzIiwiam9idXJnIiwiam90Iiwiam95IiwianAiLCJqcG1vcmdhbiIsImpwcnMiLCJqdWVnb3MiLCJqdW5pcGVyIiwia2F1ZmVuIiwia2RkaSIsImtlIiwia2Vycnlob3RlbHMiLCJrZXJyeXByb3BlcnRpZXMiLCJrZmgiLCJrZyIsImtoIiwia2kiLCJraWEiLCJraWRzIiwia2ltIiwia2luZGxlIiwia2l0Y2hlbiIsImtpd2kiLCJrbSIsImtuIiwia29lbG4iLCJrb21hdHN1Iiwia29zaGVyIiwia3AiLCJrcG1nIiwia3BuIiwia3IiLCJrcmQiLCJrcmVkIiwia3Vva2dyb3VwIiwia3ciLCJreSIsImt5b3RvIiwia3oiLCJsYSIsImxhY2FpeGEiLCJsYW1ib3JnaGluaSIsImxhbWVyIiwibGFuZCIsImxhbmRyb3ZlciIsImxhbnhlc3MiLCJsYXNhbGxlIiwibGF0IiwibGF0aW5vIiwibGF0cm9iZSIsImxhdyIsImxhd3llciIsImxiIiwibGMiLCJsZHMiLCJsZWFzZSIsImxlY2xlcmMiLCJsZWZyYWsiLCJsZWdhbCIsImxlZ28iLCJsZXh1cyIsImxnYnQiLCJsaSIsImxpZGwiLCJsaWZlIiwibGlmZWluc3VyYW5jZSIsImxpZmVzdHlsZSIsImxpZ2h0aW5nIiwibGlrZSIsImxpbGx5IiwibGltaXRlZCIsImxpbW8iLCJsaW5jb2xuIiwibGluayIsImxpdmUiLCJsaXZpbmciLCJsayIsImxsYyIsImxscCIsImxvYW4iLCJsb2FucyIsImxvY2tlciIsImxvY3VzIiwibG9sIiwibG9uZG9uIiwibG90dGUiLCJsb3R0byIsImxvdmUiLCJscGwiLCJscGxmaW5hbmNpYWwiLCJsciIsImxzIiwibHQiLCJsdGQiLCJsdGRhIiwibHUiLCJsdW5kYmVjayIsImx1eGUiLCJsdXh1cnkiLCJsdiIsImx5IiwibWEiLCJtYWRyaWQiLCJtYWlmIiwibWFpc29uIiwibWFrZXVwIiwibWFuIiwibWFuYWdlbWVudCIsIm1hbmdvIiwibWFwIiwibWFya2V0IiwibWFya2V0aW5nIiwibWFya2V0cyIsIm1hcnJpb3R0IiwibWFyc2hhbGxzIiwibWF0dGVsIiwibWJhIiwibWMiLCJtY2tpbnNleSIsIm1kIiwibWUiLCJtZWQiLCJtZWRpYSIsIm1lZXQiLCJtZWxib3VybmUiLCJtZW1lIiwibWVtb3JpYWwiLCJtZW4iLCJtZW51IiwibWVyY2ttc2QiLCJtZyIsIm1oIiwibWlhbWkiLCJtaWNyb3NvZnQiLCJtaWwiLCJtaW5pIiwibWludCIsIm1pdCIsIm1pdHN1YmlzaGkiLCJtayIsIm1sIiwibWxiIiwibWxzIiwibW0iLCJtbWEiLCJtbiIsIm1vIiwibW9iaSIsIm1vYmlsZSIsIm1vZGEiLCJtb2UiLCJtb2kiLCJtb20iLCJtb25hc2giLCJtb25leSIsIm1vbnN0ZXIiLCJtb3Jtb24iLCJtb3J0Z2FnZSIsIm1vc2NvdyIsIm1vdG8iLCJtb3RvcmN5Y2xlcyIsIm1vdiIsIm1vdmllIiwibXAiLCJtcSIsIm1yIiwibXMiLCJtc2QiLCJtdCIsIm10biIsIm10ciIsIm11IiwibXVzZXVtIiwibXVzaWMiLCJtdiIsIm13IiwibXgiLCJteSIsIm16IiwibmEiLCJuYWIiLCJuYWdveWEiLCJuYW1lIiwibmF2eSIsIm5iYSIsIm5jIiwibmUiLCJuZWMiLCJuZXQiLCJuZXRiYW5rIiwibmV0ZmxpeCIsIm5ldHdvcmsiLCJuZXVzdGFyIiwibmV3IiwibmV3cyIsIm5leHQiLCJuZXh0ZGlyZWN0IiwibmV4dXMiLCJuZiIsIm5mbCIsIm5nIiwibmdvIiwibmhrIiwibmkiLCJuaWNvIiwibmlrZSIsIm5pa29uIiwibmluamEiLCJuaXNzYW4iLCJuaXNzYXkiLCJubCIsIm5vIiwibm9raWEiLCJub3J0b24iLCJub3ciLCJub3dydXoiLCJub3d0diIsIm5wIiwibnIiLCJucmEiLCJucnciLCJudHQiLCJudSIsIm55YyIsIm56Iiwib2JpIiwib2JzZXJ2ZXIiLCJvZmZpY2UiLCJva2luYXdhIiwib2xheWFuIiwib2xheWFuZ3JvdXAiLCJvbGxvIiwib20iLCJvbWVnYSIsIm9uZSIsIm9uZyIsIm9ubCIsIm9ubGluZSIsIm9vbyIsIm9wZW4iLCJvcmFjbGUiLCJvcmFuZ2UiLCJvcmciLCJvcmdhbmljIiwib3JpZ2lucyIsIm9zYWthIiwib3RzdWthIiwib3R0Iiwib3ZoIiwicGEiLCJwYWdlIiwicGFuYXNvbmljIiwicGFyaXMiLCJwYXJzIiwicGFydG5lcnMiLCJwYXJ0cyIsInBhcnR5IiwicGF5IiwicGNjdyIsInBlIiwicGV0IiwicGYiLCJwZml6ZXIiLCJwZyIsInBoIiwicGhhcm1hY3kiLCJwaGQiLCJwaGlsaXBzIiwicGhvbmUiLCJwaG90byIsInBob3RvZ3JhcGh5IiwicGhvdG9zIiwicGh5c2lvIiwicGljcyIsInBpY3RldCIsInBpY3R1cmVzIiwicGlkIiwicGluIiwicGluZyIsInBpbmsiLCJwaW9uZWVyIiwicGl6emEiLCJwayIsInBsIiwicGxhY2UiLCJwbGF5IiwicGxheXN0YXRpb24iLCJwbHVtYmluZyIsInBsdXMiLCJwbSIsInBuIiwicG5jIiwicG9obCIsInBva2VyIiwicG9saXRpZSIsInBvcm4iLCJwb3N0IiwicHIiLCJwcmF4aSIsInByZXNzIiwicHJpbWUiLCJwcm8iLCJwcm9kIiwicHJvZHVjdGlvbnMiLCJwcm9mIiwicHJvZ3Jlc3NpdmUiLCJwcm9tbyIsInByb3BlcnRpZXMiLCJwcm9wZXJ0eSIsInByb3RlY3Rpb24iLCJwcnUiLCJwcnVkZW50aWFsIiwicHMiLCJwdCIsInB1YiIsInB3IiwicHdjIiwicHkiLCJxYSIsInFwb24iLCJxdWViZWMiLCJxdWVzdCIsInJhY2luZyIsInJhZGlvIiwicmUiLCJyZWFkIiwicmVhbGVzdGF0ZSIsInJlYWx0b3IiLCJyZWFsdHkiLCJyZWNpcGVzIiwicmVkIiwicmVkdW1icmVsbGEiLCJyZWhhYiIsInJlaXNlIiwicmVpc2VuIiwicmVpdCIsInJlbGlhbmNlIiwicmVuIiwicmVudCIsInJlbnRhbHMiLCJyZXBhaXIiLCJyZXBvcnQiLCJyZXB1YmxpY2FuIiwicmVzdCIsInJlc3RhdXJhbnQiLCJyZXZpZXciLCJyZXZpZXdzIiwicmV4cm90aCIsInJpY2giLCJyaWNoYXJkbGkiLCJyaWNvaCIsInJpbCIsInJpbyIsInJpcCIsInJvIiwicm9ja3MiLCJyb2RlbyIsInJvZ2VycyIsInJvb20iLCJycyIsInJzdnAiLCJydSIsInJ1Z2J5IiwicnVociIsInJ1biIsInJ3IiwicndlIiwicnl1a3l1Iiwic2EiLCJzYWFybGFuZCIsInNhZmUiLCJzYWZldHkiLCJzYWt1cmEiLCJzYWxlIiwic2Fsb24iLCJzYW1zY2x1YiIsInNhbXN1bmciLCJzYW5kdmlrIiwic2FuZHZpa2Nvcm9tYW50Iiwic2Fub2ZpIiwic2FwIiwic2FybCIsInNhcyIsInNhdmUiLCJzYXhvIiwic2IiLCJzYmkiLCJzYnMiLCJzYyIsInNjYiIsInNjaGFlZmZsZXIiLCJzY2htaWR0Iiwic2Nob2xhcnNoaXBzIiwic2Nob29sIiwic2NodWxlIiwic2Nod2FyeiIsInNjaWVuY2UiLCJzY290Iiwic2QiLCJzZSIsInNlYXJjaCIsInNlYXQiLCJzZWN1cmUiLCJzZWN1cml0eSIsInNlZWsiLCJzZWxlY3QiLCJzZW5lciIsInNlcnZpY2VzIiwic2V2ZW4iLCJzZXciLCJzZXgiLCJzZXh5Iiwic2ZyIiwic2ciLCJzaCIsInNoYW5ncmlsYSIsInNoYXJwIiwic2hlbGwiLCJzaGlhIiwic2hpa3NoYSIsInNob2VzIiwic2hvcCIsInNob3BwaW5nIiwic2hvdWppIiwic2hvdyIsInNpIiwic2lsayIsInNpbmEiLCJzaW5nbGVzIiwic2l0ZSIsInNqIiwic2siLCJza2kiLCJza2luIiwic2t5Iiwic2t5cGUiLCJzbCIsInNsaW5nIiwic20iLCJzbWFydCIsInNtaWxlIiwic24iLCJzbmNmIiwic28iLCJzb2NjZXIiLCJzb2NpYWwiLCJzb2Z0YmFuayIsInNvZnR3YXJlIiwic29odSIsInNvbGFyIiwic29sdXRpb25zIiwic29uZyIsInNvbnkiLCJzb3kiLCJzcGEiLCJzcGFjZSIsInNwb3J0Iiwic3BvdCIsInNyIiwic3JsIiwic3MiLCJzdCIsInN0YWRhIiwic3RhcGxlcyIsInN0YXIiLCJzdGF0ZWJhbmsiLCJzdGF0ZWZhcm0iLCJzdGMiLCJzdGNncm91cCIsInN0b2NraG9sbSIsInN0b3JhZ2UiLCJzdG9yZSIsInN0cmVhbSIsInN0dWRpbyIsInN0dWR5Iiwic3R5bGUiLCJzdSIsInN1Y2tzIiwic3VwcGxpZXMiLCJzdXBwbHkiLCJzdXBwb3J0Iiwic3VyZiIsInN1cmdlcnkiLCJzdXp1a2kiLCJzdiIsInN3YXRjaCIsInN3aXNzIiwic3giLCJzeSIsInN5ZG5leSIsInN5c3RlbXMiLCJzeiIsInRhYiIsInRhaXBlaSIsInRhbGsiLCJ0YW9iYW8iLCJ0YXJnZXQiLCJ0YXRhbW90b3JzIiwidGF0YXIiLCJ0YXR0b28iLCJ0YXgiLCJ0YXhpIiwidGMiLCJ0Y2kiLCJ0ZCIsInRkayIsInRlYW0iLCJ0ZWNoIiwidGVjaG5vbG9neSIsInRlbCIsInRlbWFzZWsiLCJ0ZW5uaXMiLCJ0ZXZhIiwidGYiLCJ0ZyIsInRoIiwidGhkIiwidGhlYXRlciIsInRoZWF0cmUiLCJ0aWFhIiwidGlja2V0cyIsInRpZW5kYSIsInRpcHMiLCJ0aXJlcyIsInRpcm9sIiwidGoiLCJ0am1heHgiLCJ0angiLCJ0ayIsInRrbWF4eCIsInRsIiwidG0iLCJ0bWFsbCIsInRuIiwidG8iLCJ0b2RheSIsInRva3lvIiwidG9vbHMiLCJ0b3AiLCJ0b3JheSIsInRvc2hpYmEiLCJ0b3RhbCIsInRvdXJzIiwidG93biIsInRveW90YSIsInRveXMiLCJ0ciIsInRyYWRlIiwidHJhZGluZyIsInRyYWluaW5nIiwidHJhdmVsIiwidHJhdmVsZXJzIiwidHJhdmVsZXJzaW5zdXJhbmNlIiwidHJ1c3QiLCJ0cnYiLCJ0dCIsInR1YmUiLCJ0dWkiLCJ0dW5lcyIsInR1c2h1IiwidHYiLCJ0dnMiLCJ0dyIsInR6IiwidWEiLCJ1YmFuayIsInVicyIsInVnIiwidWsiLCJ1bmljb20iLCJ1bml2ZXJzaXR5IiwidW5vIiwidW9sIiwidXBzIiwidXMiLCJ1eSIsInV6IiwidmEiLCJ2YWNhdGlvbnMiLCJ2YW5hIiwidmFuZ3VhcmQiLCJ2YyIsInZlIiwidmVnYXMiLCJ2ZW50dXJlcyIsInZlcmlzaWduIiwidmVybcO2Z2Vuc2JlcmF0ZXIiLCJ2ZXJtw7ZnZW5zYmVyYXR1bmciLCJ2ZXJzaWNoZXJ1bmciLCJ2ZXQiLCJ2ZyIsInZpIiwidmlhamVzIiwidmlkZW8iLCJ2aWciLCJ2aWtpbmciLCJ2aWxsYXMiLCJ2aW4iLCJ2aXAiLCJ2aXJnaW4iLCJ2aXNhIiwidmlzaW9uIiwidml2YSIsInZpdm8iLCJ2bGFhbmRlcmVuIiwidm4iLCJ2b2RrYSIsInZvbHZvIiwidm90ZSIsInZvdGluZyIsInZvdG8iLCJ2b3lhZ2UiLCJ2dSIsIndhbGVzIiwid2FsbWFydCIsIndhbHRlciIsIndhbmciLCJ3YW5nZ291Iiwid2F0Y2giLCJ3YXRjaGVzIiwid2VhdGhlciIsIndlYXRoZXJjaGFubmVsIiwid2ViY2FtIiwid2ViZXIiLCJ3ZWJzaXRlIiwid2VkIiwid2VkZGluZyIsIndlaWJvIiwid2VpciIsIndmIiwid2hvc3dobyIsIndpZW4iLCJ3aWtpIiwid2lsbGlhbWhpbGwiLCJ3aW4iLCJ3aW5kb3dzIiwid2luZSIsIndpbm5lcnMiLCJ3bWUiLCJ3b2x0ZXJza2x1d2VyIiwid29vZHNpZGUiLCJ3b3JrIiwid29ya3MiLCJ3b3JsZCIsIndvdyIsIndzIiwid3RjIiwid3RmIiwieGJveCIsInhlcm94IiwieGlodWFuIiwieGluIiwieHh4IiwieHl6IiwieWFjaHRzIiwieWFob28iLCJ5YW1heHVuIiwieWFuZGV4IiwieWUiLCJ5b2RvYmFzaGkiLCJ5b2dhIiwieW9rb2hhbWEiLCJ5b3UiLCJ5b3V0dWJlIiwieXQiLCJ5dW4iLCJ6YSIsInphcHBvcyIsInphcmEiLCJ6ZXJvIiwiemlwIiwiem0iLCJ6b25lIiwienVlcmljaCIsInp3IiwizrXOuyIsIs61z4UiLCLQsdCzIiwi0LHQtdC7Iiwi0LTQtdGC0LgiLCLQtdGOIiwi0LrQsNGC0L7Qu9C40LoiLCLQutC+0LwiLCLQvNC60LQiLCLQvNC+0L0iLCLQvNC+0YHQutCy0LAiLCLQvtC90LvQsNC50L0iLCLQvtGA0LMiLCLRgNGD0YEiLCLRgNGEIiwi0YHQsNC50YIiLCLRgdGA0LEiLCLRg9C60YAiLCLSm9Cw0LciLCLVsNWh1bUiLCLXmdep16jXkNecIiwi16fXldedIiwi2KfYqNmI2LjYqNmKIiwi2KfYsdin2YXZg9mIIiwi2KfZhNin2LHYr9mGIiwi2KfZhNio2K3YsdmK2YYiLCLYp9mE2KzYstin2KbYsSIsItin2YTYs9i52YjYr9mK2KkiLCLYp9mE2LnZhNmK2KfZhiIsItin2YTZhdi62LHYqCIsItin2YXYp9ix2KfYqiIsItin24zYsdin2YYiLCLYqNin2LHYqiIsItio2KfYstin2LEiLCLYqNmK2KrZgyIsItio2r7Yp9ix2KoiLCLYqtmI2YbYsyIsItiz2YjYr9in2YYiLCLYs9mI2LHZitipIiwi2LTYqNmD2KkiLCLYudix2KfZgiIsIti52LHYqCIsIti52YXYp9mGIiwi2YHZhNiz2LfZitmGIiwi2YLYt9ixIiwi2YPYp9ir2YjZhNmK2YMiLCLZg9mI2YUiLCLZhdi12LEiLCLZhdmE2YrYs9mK2KciLCLZhdmI2LHZitiq2KfZhtmK2KciLCLZhdmI2YLYuSIsItmH2YXYsdin2YciLCLZvtin2qnYs9iq2KfZhiIsItqA2KfYsdiqIiwi4KSV4KWJ4KSuIiwi4KSo4KWH4KSfIiwi4KSt4KS+4KSw4KSkIiwi4KSt4KS+4KSw4KSk4KSu4KWNIiwi4KSt4KS+4KSw4KWL4KSkIiwi4KS44KSC4KSX4KSg4KSoIiwi4Kas4Ka+4KaC4Kay4Ka+Iiwi4Kat4Ka+4Kaw4KakIiwi4Kat4Ka+4Kew4KakIiwi4Kit4Ki+4Kiw4KikIiwi4Kqt4Kq+4Kqw4KqkIiwi4Kyt4Ky+4Kyw4KykIiwi4K6H4K6o4K+N4K6k4K6/4K6v4K6+Iiwi4K6H4K6y4K6Z4K+N4K6V4K+IIiwi4K6a4K6/4K6Z4K+N4K6V4K6q4K+N4K6q4K+C4K6w4K+NIiwi4LCt4LC+4LCw4LCk4LGNIiwi4LKt4LK+4LKw4LKkIiwi4LSt4LS+4LSw4LSk4LSCIiwi4La94LaC4Laa4LePIiwi4LiE4Lit4LihIiwi4LmE4LiX4LiiIiwi4Lql4Lqy4LqnIiwi4YOS4YOUIiwi44G/44KT44GqIiwi44Ki44Oe44K+44OzIiwi44Kv44Op44Km44OJIiwi44Kw44O844Kw44OrIiwi44Kz44OgIiwi44K544OI44KiIiwi44K744O844OrIiwi44OV44Kh44OD44K344On44OzIiwi44Od44Kk44Oz44OIIiwi5LiW55WMIiwi5Lit5L+hIiwi5Lit5Zu9Iiwi5Lit5ZyLIiwi5Lit5paH572RIiwi5Lqa6ams6YCKIiwi5LyB5LiaIiwi5L2b5bGxIiwi5L+h5oGvIiwi5YGl5bq3Iiwi5YWr5Y2mIiwi5YWs5Y+4Iiwi5YWs55uKIiwi5Y+w5rm+Iiwi5Y+w54GjIiwi5ZWG5Z+OIiwi5ZWG5bqXIiwi5ZWG5qCHIiwi5ZiJ6YeMIiwi5ZiJ6YeM5aSn6YWS5bqXIiwi5Zyo57q/Iiwi5aSn5ou/Iiwi5aSp5Li75pWZIiwi5aix5LmQIiwi5a626Zu7Iiwi5bm/5LicIiwi5b6u5Y2aIiwi5oWI5ZaEIiwi5oiR54ix5L2gIiwi5omL5py6Iiwi5oub6IGYIiwi5pS/5YqhIiwi5pS/5bqcIiwi5paw5Yqg5Z2hIiwi5paw6Ze7Iiwi5pe25bCaIiwi5pu457GNIiwi5py65p6EIiwi5reh6ams6ZShIiwi5ri45oiPIiwi5r6z6ZaAIiwi54K555yLIiwi56e75YqoIiwi57uE57uH5py65p6EIiwi572R5Z2AIiwi572R5bqXIiwi572R56uZIiwi572R57ucIiwi6IGU6YCaIiwi6LC35q2MIiwi6LSt54mpIiwi6YCa6LKpIiwi6ZuG5ZuiIiwi6Zu76KiK55uI56eRIiwi6aOe5Yip5rWmIiwi6aOf5ZOBIiwi6aSQ5Y6FIiwi6aaZ5qC86YeM5ouJIiwi6aaZ5rivIiwi64u364S3Iiwi64u37Lu0Iiwi7IK87ISxIiwi7ZWc6rWtIl1gKSx5Zj0vXlstISMkJSYnKisvMC05PT9BLVpeX2EtemB7fH1+XShcLj9bLSEjJCUmJyorLzAtOT0/QS1aXl9hLXpge3x9fl0pKkBbYS16QS1aMC05XSgtKlwuP1thLXpBLVowLTldKSpcLlthLXpBLVpdKC0/W2EtekEtWjAtOV0pKyQvLGJmPS8oKD86d3d3Lik/W15ccy5dK1wuW15ccy9dK1wvW15ccy5dKykvLHhmPS9bJjw+IiddL2csU2Y9ZT0+e2xldCB0PXsiJiI6YCZhbXA7YCwiPCI6YCZsdDtgLCI+IjpgJmd0O2AsJyInOmAmcXVvdDtgLCInIjpgJiMzOTtgfSxuPVJlZ0V4cCh4Zi5zb3VyY2UpO3JldHVybiBlJiZuLnRlc3QoZSk/ZS5yZXBsYWNlKHhmLGU9PnRbZV0pOmV8fGBgfSxDZj1gb3ZlcmZsb3c6IGhpZGRlbjsgZGlzcGxheTogLXdlYmtpdC1pbmxpbmUtYm94OyAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsOyAtd2Via2l0LWxpbmUtY2xhbXA6IDE7IGxpbmUtY2xhbXA6IDE7IHdvcmQtYnJlYWs6IGJyZWFrLWFsbDtgLHdmPW5ldyBfZigpLnRsZHModmYpLnNldCh7ZnV6enlJUDohMH0pLFRmPW5ldyBfZigpLnRsZHModmYpLEVmPShlLHQsbik9PntsZXQgcj1CKCkubG9jYXRpb24uaG9zdG5hbWU7cmV0dXJuYDxhIGhyZWY9IiR7ZX0iIHRhcmdldD0iJHtyLmxlbmd0aD4wJiZlLmluY2x1ZGVzKHIpP2BfcGFyZW50YDpgX2JsYW5rYH0iIHJlbD0ibm9yZWZlcnJlciBub29wZW5lciIgdGl0bGU9IiR7ZX0iIHN0eWxlPSIke24/LmNsYW1wJiYhbj8ucmVwbGFjZVRleHQ/Q2Y6YGB9Ij4ke3R9PC9hPmB9LERmPShlLHQpPT57aWYoZT09PWBgKXJldHVybiBlO2xldCBuPXdmLm1hdGNoKGUpO2lmKCFuKXJldHVybiBTZihlKTtsZXQgcj1gYCxpPTA7cmV0dXJuIG4uZm9yRWFjaChuPT57bGV0IGE9YGAsbz1gYCxzPU9mKGUsbiksYz10Py5jbGFtcCYmbi50ZXh0Lmxlbmd0aD4zMCYmIXM7bi5pbmRleD5pJiYoYT1lLnN1YnN0cmluZyhpLG4uaW5kZXgpKSxvPUVmKG4udXJsLG4udGV4dCx7Li4udCxjbGFtcDpjfSksaT1uLmxhc3RJbmRleCxzJiYoYT1hLnN1YnN0cmluZygwLGEubGVuZ3RoLTEpLGkrPTEpLGMmJiFrZihlLG4pJiYobz1gXG4ke299XG5gLGE9YS50cmltRW5kKCksZVtpXT8ubWF0Y2goL1xzLykmJihpKz0xKSkscis9U2YoYSkrb30pLGUubGVuZ3RoPmkmJihyKz1TZihlLnN1YnN0cmluZyhpKSkpLHJ9LE9mPShlLHQpPT5lW3QuaW5kZXgtMV09PT1gImAmJmVbdC5sYXN0SW5kZXhdPT09YCJgLGtmPShlLHQpPT4hISh0LmluZGV4PD0xJiZlLnN1YnN0cmluZyh0Lmxhc3RJbmRleCx0Lmxhc3RJbmRleCszKS5tYXRjaCgvW1xuXHJdKy8pfHxlLnN1YnN0cmluZyh0LmluZGV4LTMsdC5pbmRleCkubWF0Y2goL1tcblxyXSsvKSYmZS5zdWJzdHJpbmcodC5sYXN0SW5kZXgsdC5sYXN0SW5kZXgrMykubWF0Y2goL1tcblxyXSsvKXx8ZS5zdWJzdHJpbmcodC5pbmRleC0zLHQuaW5kZXgpLm1hdGNoKC9bXG5ccl0rLykmJnQubGFzdEluZGV4PmUubGVuZ3RoLTN8fHQuaW5kZXg8PTEmJnQubGFzdEluZGV4Pj1lLmxlbmd0aC0yKSxBZj1lPT5lLnJlcGxhY2UoL15odHRwcz86XC9cLy8sYGApLnJlcGxhY2UoL153d3dcLi8sYGApLnJlcGxhY2UoL1wvKyQvLGBgKS50b0xvd2VyQ2FzZSgpLGpmPWU9PntsZXQgdD1bYG1haWx0bzpgLGBmdHA6YCxgLy9gXSxuPVRmLm1hdGNoKGUpO2lmKCFuKXJldHVybiBudWxsO2xldCByPW5ldyBTZXQ7cmV0dXJuIG4uZmlsdGVyKGU9PntpZih0LmluY2x1ZGVzKGUuc2NoZW1hKSlyZXR1cm4hMTtsZXQgbj1BZihlLnVybCk7cmV0dXJuIHIuaGFzKG4pPyExOihyLmFkZChuKSwhMCl9KX0sTWY9KCk9PlBvKGBjYXJkc2ApLE5mPWU9PntGbyh7Li4uZX0sYGNhcmRzYCl9LFBmPWFzeW5jIGU9PntsZXQgdD1uZXcgSGVhZGVycyx7d2lkZ2V0QXBpVXJsOm59PVYuZ2V0T3B0aW9ucygpO3QuYXBwZW5kKGBDb250ZW50LVR5cGVgLGBhcHBsaWNhdGlvbi9qc29uYCk7bGV0IHI9SlNPTi5zdHJpbmdpZnkoe2xpbmtzOmV9KTt0cnl7bGV0IGU9YXdhaXQgZmV0Y2goYCR7bn0vbGlua3MvcHJldmlld2Ase21ldGhvZDpgUE9TVGAsaGVhZGVyczp0LGJvZHk6cn0pO3JldHVybiBlLm9rJiZlLmpzb24/YXdhaXQgZS5qc29uKCk6bnVsbH1jYXRjaHtyZXR1cm4gbnVsbH19LEZmPWU9PmUuZmluZChlPT5lLnR5cGU9PT1gb3Blbl91cmxgKT8udmFsdWV8fGBgLElmPWU9PntsZXQgdD1lLmZpbHRlcihlPT5lLnRpdGxlJiZlLmltYWdlJiYhUmYoRmYoZS5hY3Rpb25zKSkpO3JldHVybiB0Lmxlbmd0aCYmZS5sZW5ndGg+MT9lOnQubGVuZ3RoPT09MT90OltdfSxMZj1lPT57bGV0IHQ9bmV3IERhdGUoKS5nZXRUaW1lKCk7cmV0dXJuIE9iamVjdC5rZXlzKGUpLmZvckVhY2gobj0+eyghZVtuXS5leHBpcmF0aW9ufHxlW25dLmV4cGlyYXRpb24mJmVbbl0uZXhwaXJhdGlvbjx0KSYmZGVsZXRlIGVbbl19KSxlfSxSZj1lPT57bGV0e2FjY2VwdGVkRmlsZUV4dGVuc2lvbnM6dH09QShibCksbj1lLm1hdGNoKC8oXC4pKFteLl17Myw0fSkkL20pO3JldHVybiBuJiZuWzJdJiZ0LmluY2x1ZGVzKG5bMl0pfSx6Zj1hc3luYyBlPT57dHJ5e2F3YWl0IHEuZ2V0Q2xpZW50KCkubGlua09wZW5lZCh7dXJsOmV9KX1jYXRjaChlKXtqbyhgU2VuZGluZyBsaW5rIG9wZW5lZCBhbmFseXRpY3MgZXZlbnQgZmFpbGVkYCxTdHJpbmcoZSkpfX0sQmY9KGUsdCk9PntpZighdClyZXR1cm47bGV0IG49YXN5bmMgbj0+e2xldCByPW4udGFyZ2V0LmNsb3Nlc3QoYGFgKTtyJiZlLmNvbnRhaW5zKHIpJiZ0JiZhd2FpdCB6ZihyLmhyZWYpfSxyPWU9PnZvaWQgbihlKSxpPWU9PntlLmJ1dHRvbiE9PTImJm4oZSl9LGE9ZT0+dm9pZCBuKGUpO3JldHVybiBlLmFkZEV2ZW50TGlzdGVuZXIoYGNsaWNrYCxyKSxlLmFkZEV2ZW50TGlzdGVuZXIoYGF1eGNsaWNrYCxpKSxlLmFkZEV2ZW50TGlzdGVuZXIoYGNvbnRleHRtZW51YCxhKSx7ZGVzdHJveSgpe2UucmVtb3ZlRXZlbnRMaXN0ZW5lcihgY2xpY2tgLHIpLGUucmVtb3ZlRXZlbnRMaXN0ZW5lcihgYXV4Y2xpY2tgLGkpLGUucmVtb3ZlRXZlbnRMaXN0ZW5lcihgY29udGV4dG1lbnVgLGEpfX19LFZmPSExLEhmPU8oKSxVZj1PKCExKSxXZj1PKCExKSxHZj0oZSx0LG4pPT57bGV0IHI9e30saT1uZXcgRGF0ZSgpLmdldFRpbWUoKStNZDtlLmZvckVhY2goKGUsbik9PnJbZV09e2V4cGlyYXRpb246aSxjYXJkOnRbbl19KTtsZXQgYT17Li4ubiwuLi5yfTtIZi5zZXQoYSksTmYoYSl9LEtmPWFzeW5jKGUsdCxuPSExKT0+e2xldCByPVtdLGk9e3R5cGU6YGNhcmRzYCxsYXlvdXQ6YGNhcm91c2VsYCxpdGVtczpbXX07VmZ8fD0oSGYuc2V0KE1mKCkpLCEwKTtsZXQgYT1qZihlKTtpZighYSlyZXR1cm4gbnVsbDtsZXQgbz1MZihBKEhmKSkscz1bXTtpZihhLmZvckVhY2godD0+e09mKGUsdCl8fChvW3QudXJsXT9yLnB1c2gob1t0LnVybF0uY2FyZCk6cy5wdXNoKHQudXJsKSl9KSxzLmxlbmd0aD4wKXt0JiZVZi5zZXQoITApLG4mJldmLnNldCghMCk7bGV0IGU9YXdhaXQgUGYocyk7ZSYmKEdmKHMsZSxvKSxyPVsuLi5yLC4uLmVdKX1yZXR1cm4gaS5pdGVtcz1JZihyKSxVZi5zZXQoITEpLFdmLnNldCghMSksaS5pdGVtcy5sZW5ndGg+MD9pOm51bGx9LHFmPWZ1bmN0aW9uKGUpe3JldHVybiBlLkNvbnRhY3RNZXNzYWdlPWBjb250YWN0LW1lc3NhZ2VgLGUuQWdlbnRNZXNzYWdlPWBhZ2VudC1tZXNzYWdlYCxlLkJvdE1lc3NhZ2U9YGJvdC1tZXNzYWdlYCxlLkJvdFJlcGxpZXM9YGJvdC1yZXBsaWVzYCxlfSh7fSksSmY9YXN5bmMoe3RleHQ6ZSxxdWlja1JlcGx5OnR9KT0+e3RyeXtsZXQgbj1CKCkubG9jYXRpb24uaHJlZjtyZXR1cm4gYXdhaXQgcS5nZXRDbGllbnQoKS5jaGF0TWVzc2FnZSh7Y29udGVudDp7dHlwZTpHLk1lc3NhZ2VDb250ZW50VHlwZS5UZXh0LHRleHQ6ZX0scXVpY2tSZXBseTp0LHBhZ2VVcmw6bn0pPz9udWxsfWNhdGNoe3JldHVybiBudWxsfX0sWWY9ZT0+ZS5zdWJUeXBlPT09Ry5NZXNzYWdlU3ViVHlwZS5Cb3R8fGUuc3ViVHlwZT09PUcuTWVzc2FnZVN1YlR5cGUuVHJpZ2dlcixYZj1lPT5lLnN1YlR5cGU9PT1HLk1lc3NhZ2VTdWJUeXBlLlN5c3RlbSxaZj1lPT5lLnR5cGU9PT1HLk1lc3NhZ2VUeXBlLk5vdGUsUWY9ZT0+IWUuZGVsZXRlZEF0JiYhWmYoZSkmJihlLnN1YlR5cGU9PT1HLk1lc3NhZ2VTdWJUeXBlLkFnZW50fHxZZihlKSksJGY9ZT0+YGh0bWxgaW4gZSYmISFlLmh0bWwsZXA9ZT0+YHRleHRgaW4gZSYmISFlLnRleHQsdHA9KGUsdCk9Pm5ldyBEYXRlKGUuY3JlYXRlZEF0KS5nZXRUaW1lKCktbmV3IERhdGUodC5jcmVhdGVkQXQpLmdldFRpbWUoKSxucD0oZSx0KT0+dD09PXFmLkJvdFJlcGxpZXM/YCR7ZS5pZH0tcmVwbGllc2A6ZS5pZCxycD1lPT57bGV0IHQ9e2lzUmlnaHQ6ITEsaXNMZWZ0OiExfSxuPXtpc1ByaW1hcnk6ITEsaXNTZWNvbmRhcnk6ITF9O3N3aXRjaChlKXtjYXNlIHFmLkNvbnRhY3RNZXNzYWdlOnQuaXNSaWdodD0hMCxuLmlzUHJpbWFyeT0hMDticmVhaztkZWZhdWx0OnQuaXNMZWZ0PSEwLG4uaXNTZWNvbmRhcnk9ITB9cmV0dXJue2FsaWduOnQsdmFyaWFudDpufX0saXA9ZT0+ISFlLmFnZW50SWR8fGUuc3ViVHlwZT09PUcuTWVzc2FnZVN1YlR5cGUuQm90JiZlLmNvbnRlbnQudHlwZSE9PUcuTWVzc2FnZUNvbnRlbnRUeXBlLlRpY2tldEZvcm0sYXA9KGUsdCk9PmUuc3ViVHlwZT09PUcuTWVzc2FnZVN1YlR5cGUuU3lzdGVtfHx0PT09cWYuQm90UmVwbGllc3x8ZS5jb250ZW50LnR5cGU9PT1HLk1lc3NhZ2VDb250ZW50VHlwZS5UaWNrZXRGb3JtLG9wPWU9PntsZXQgdD1bXSxuPW51bGwscj1udWxsO2ZvcihsZXQgaSBvZiBlKXtpZihpLmNvbnRlbnQudHlwZT09PUcuTWVzc2FnZUNvbnRlbnRUeXBlLlJhdGVGb3JtJiYoaS5jb250ZW50LmRhdGEudGFyZ2V0PT09Ry5SYXRpbmdUYXJnZXQuQWkmJiFKcCgpfHxpLmNvbnRlbnQuZGF0YS50YXJnZXQ9PT1HLlJhdGluZ1RhcmdldC5BZ2VudCYmIXFwKCkpKWNvbnRpbnVlO24mJiFocChpLG4pJiYodC5wdXNoKG4pLG49bnVsbCxyPW51bGwpLG58fD1zcChpKTtsZXQgZT1scChpLG4pO2lmKHIpe2xldCB0PV9wKHIpLG49ZHAocik7ZS5uZWlnaGJvcnMuaGFzVG9wPXQsbi5hbnkubmVpZ2hib3JzLmhhc0JvdHRvbT10LG4uYXR0YWNobWVudENvbnRleHQmJihuLmF0dGFjaG1lbnRDb250ZXh0LmV4dHJhU3BhY2VzLmhhc0JvdHRvbT15cChuLmF0dGFjaG1lbnRDb250ZXh0LmF0dGFjaG1lbnQpKX1sZXQgYT1mcChpKTtpZihhJiZ1cChhLGUsciksbi5tZXNzYWdlc0NvbnRleHQucHVzaChlKSxyPWUsKFlmKGkpfHxYZihpKSkmJlRwKGkpKXt0LnB1c2gobik7bGV0IGU9Y3AoaSk7ZS5tZXNzYWdlc0NvbnRleHQucHVzaChscChpLGUpKSx0LnB1c2goZSksbj1udWxsfX1yZXR1cm4gbiYmdC5wdXNoKG4pLHR9LHNwPWU9PntsZXQgdD1ncChlKSxuPWUuc3ViVHlwZT09PUcuTWVzc2FnZVN1YlR5cGUuQm90fHxlLnN1YlR5cGU9PT1HLk1lc3NhZ2VTdWJUeXBlLlRyaWdnZXIse2FsaWduOnIsdmFyaWFudDppfT1ycCh0KTtyZXR1cm57dHlwZTp0LGlzQm90Om4saWQ6bnAoZSx0KSxkYXRlOmUuY3JlYXRlZEF0LGFnZW50SWQ6ZS5hZ2VudElkLGFsaWduOnIsdmFyaWFudDppLG1lc3NhZ2VzQ29udGV4dDpbXSxzaG93QXZhdGFyOmlwKGUpLHVzZUZ1bGxXaWR0aDphcChlLHQpfX0sY3A9ZT0+e2xldCB0PXFmLkJvdFJlcGxpZXMse2FsaWduOm4sdmFyaWFudDpyfT1ycCh0KTtyZXR1cm57dHlwZTpxZi5Cb3RSZXBsaWVzLGlzQm90OiEwLGlkOm5wKGUsdCksZGF0ZTplLmNyZWF0ZWRBdCxhZ2VudElkOmUuYWdlbnRJZCxhbGlnbjpuLHZhcmlhbnQ6cixtZXNzYWdlc0NvbnRleHQ6W10sc2hvd0F2YXRhcjohMSx1c2VGdWxsV2lkdGg6YXAoZSx0KX19LGxwPShlLHQpPT4oe2dyb3VwOnQsbWVzc2FnZTplLG5laWdoYm9yczp7aGFzVG9wOiExLGhhc0JvdHRvbTohMX0sYXR0YWNobWVudHNDb250ZXh0OltdfSksdXA9KGUsdCxuKT0+e2xldCByPW51bGw7Zm9yKGxldCBpIG9mIGUpe2xldCBlPXZwKGkpLGE9e2hhc1RvcDohMSxoYXNCb3R0b206ITF9LG89eXAoaSkscz17aGFzVG9wOm8saGFzQm90dG9tOiExfTtpZihyKXtsZXQgdD12cChyLmF0dGFjaG1lbnQpLG49eXAoci5hdHRhY2htZW50KTtyLm5laWdoYm9ycy5oYXNCb3R0b209dCYmZSxhLmhhc1RvcD10JiZlLHIuZXh0cmFTcGFjZXMuaGFzQm90dG9tPSFvJiZufWVsc2UgaWYodC5uZWlnaGJvcnMuaGFzQm90dG9tPWUsYS5oYXNUb3A9ZSxwcCh0Lm1lc3NhZ2UpKWlmKGEuaGFzVG9wPSExLHQubmVpZ2hib3JzLmhhc1RvcD0hMSx0Lm5laWdoYm9ycy5oYXNCb3R0b209ITEsbil7bGV0IHQ9X3Aobikscj1kcChuKTthLmhhc1RvcD10JiZlLHIuYW55Lm5laWdoYm9ycy5oYXNCb3R0b209dCYmZTtsZXQgaT1yLmF0dGFjaG1lbnRDb250ZXh0O2kmJihpLmV4dHJhU3BhY2VzLmhhc0JvdHRvbT0hbyYmeXAoaS5hdHRhY2htZW50KSl9ZWxzZSBzLmhhc1RvcD0hMTtsZXQgYz17YXR0YWNobWVudDppLG5laWdoYm9yczphLGV4dHJhU3BhY2VzOnMsbWVzc2FnZUNvbnRleHQ6dH07dC5hdHRhY2htZW50c0NvbnRleHQucHVzaChjKSxyPXsuLi5jfX19LGRwPWU9PntsZXQgdD1TZChlLmF0dGFjaG1lbnRzQ29udGV4dCl8fHZvaWQgMDtyZXR1cm57YXR0YWNobWVudENvbnRleHQ6dCxhbnk6dHx8ZX19LGZwPWU9PmU/ZS5jb250ZW50Py50eXBlPT09Ry5NZXNzYWdlQ29udGVudFR5cGUuVXBsb2FkP1tlLmNvbnRlbnQuZGF0YV06ZS5hdHRhY2htZW50czpbXSxwcD1lPT4hZS5jb250ZW50LnRleHQsbXA9ZT0+e3RyeXtsZXQgdD1CKCkubG9jYXRpb24uaG9zdG5hbWUsbj1uZXcgRE9NUGFyc2VyKCkucGFyc2VGcm9tU3RyaW5nKGUsYHRleHQvaHRtbGApO3JldHVybiBuLnF1ZXJ5U2VsZWN0b3JBbGwoYGFbaHJlZl1gKS5mb3JFYWNoKGU9PntsZXQgbj1lLmdldEF0dHJpYnV0ZShgaHJlZmApfHxgYDtuPW4ucmVwbGFjZSgvXmh0dHBzPzpcL1wvIj9odHRwcz86XC9cLy8sYGh0dHBzOi8vYCksbj1uLnJlcGxhY2UoL14iK3wiKyQvZyxgYCksZS5zZXRBdHRyaWJ1dGUoYGhyZWZgLG4pO2xldCByPXQubGVuZ3RoPjAmJm4uaW5jbHVkZXModCk7ZS5oYXNBdHRyaWJ1dGUoYHRhcmdldGApfHxlLnNldEF0dHJpYnV0ZShgdGFyZ2V0YCxyP2BfcGFyZW50YDpgX2JsYW5rYCksZS5oYXNBdHRyaWJ1dGUoYHJlbGApfHxlLnNldEF0dHJpYnV0ZShgcmVsYCxgbm9vcGVuZXIgbm9yZWZlcnJlcmApfSksbi5ib2R5LmlubmVySFRNTH1jYXRjaHtyZXR1cm4gZX19LGhwPShlLHQpPT57bGV0IG49Z3AoZSkscj1uPT09cWYuQWdlbnRNZXNzYWdlJiZlLmFnZW50SWQ9PT10LmFnZW50SWQsaT1uPT09cWYuQ29udGFjdE1lc3NhZ2UsYT1lLnN1YlR5cGUhPT1HLk1lc3NhZ2VTdWJUeXBlLkJvdHx8KGUuY29udGVudC5xdWlja1JlcGxpZXN8fFtdKS5sZW5ndGg9PT0wO3JldHVybiB0LnR5cGU9PT1uJiYocnx8aSkmJmEmJklkKHQuZGF0ZSxlLmNyZWF0ZWRBdCl9LGdwPWU9Pntzd2l0Y2goZS5zdWJUeXBlKXtjYXNlIEcuTWVzc2FnZVN1YlR5cGUuQWdlbnQ6cmV0dXJuIHFmLkFnZW50TWVzc2FnZTtjYXNlIEcuTWVzc2FnZVN1YlR5cGUuQ29udGFjdDpyZXR1cm4gcWYuQ29udGFjdE1lc3NhZ2U7Y2FzZSBHLk1lc3NhZ2VTdWJUeXBlLkJvdDpyZXR1cm4gcWYuQm90TWVzc2FnZX1yZXR1cm4gbnVsbH0sX3A9ZT0+e2xldCB0PWUuYXR0YWNobWVudHNDb250ZXh0Lmxlbmd0aDtyZXR1cm4hKHQ+MCYmZS5hdHRhY2htZW50c0NvbnRleHRbdC0xXS5hdHRhY2htZW50LnR5cGU9PT1HLkF0dGFjaG1lbnRUeXBlLkZpbGUpfSx2cD1lPT5lLnR5cGUhPT1HLkF0dGFjaG1lbnRUeXBlLkZpbGUmJmUudHlwZSE9PUcuQXR0YWNobWVudFR5cGUuQ2FyZHMseXA9ZT0+ISFlJiYoZS50eXBlPT09Ry5BdHRhY2htZW50VHlwZS5GaWxlfHxlLnR5cGU9PT1HLkF0dGFjaG1lbnRUeXBlLkNhcmRzKSxicD0oKT0+e2xldCBlPWdfKCk7ZS52b2x1bWU9cWMsZS5hZGRFdmVudExpc3RlbmVyKGBjYW5wbGF5dGhyb3VnaGAsKCk9PntlLnBsYXkoKS5jYXRjaChlPT5IKGBDb3VsZCBub3QgcGxheSBtZXNzYWdlIHNvdW5kLmAsZSkpfSl9LHhwPUtkKGJwLEpjKSxTcD1lPT5lLmZpbHRlcihlPT5lLnR5cGU9PT1HLk1lc3NhZ2VUeXBlLk1lc3NhZ2UmJihlLnN1YlR5cGU9PT1HLk1lc3NhZ2VTdWJUeXBlLkFnZW50fHxlLnN1YlR5cGU9PT1HLk1lc3NhZ2VTdWJUeXBlLkNvbnRhY3QpKSxDcD0oZSx0PSEwKT0+e2xldCBuPWUucmVkdWNlKChlLHQpPT4oZS5wdXNoKHQpLHQuY29udGVudC50eXBlPT09Ry5NZXNzYWdlQ29udGVudFR5cGUuQ2hhdENsb3NlfHx0LmNvbnRlbnQudHlwZT09PUcuTWVzc2FnZUNvbnRlbnRUeXBlLkNoYXRWaXNpdG9yQ2xvc2U/W106ZSksW10pO3JldHVybiB0P24uZmlsdGVyKGU9PmUudHlwZT09PUcuTWVzc2FnZVR5cGUuTWVzc2FnZSYmZS5zdWJUeXBlIT09Ry5NZXNzYWdlU3ViVHlwZS5TeXN0ZW0pOm59LHdwPWU9PntsZXQgdD17fTtyZXR1cm4gZS5mb3JFYWNoKGU9PntlLnRyaWdnZXImJih0W2UudHJpZ2dlci5pZF09e3NlbnQ6ITB9KX0pLHR9LFRwPWU9PiEhKGUuY29udGVudC5xdWlja1JlcGxpZXMmJmUuY29udGVudC5xdWlja1JlcGxpZXMubGVuZ3RoPjApLEVwPWFzeW5jKGUsdD0hMSk9PntsZXQgbj1RZihlKSxyPSF0JiZuO2lmKGBodG1sYGluIGUuY29udGVudCYmZS5jb250ZW50Lmh0bWwmJihlLmNvbnRlbnQuaHRtbD1tcChlLmNvbnRlbnQuaHRtbCkpLGUuY29udGVudD8udGV4dCYmVi5nZXRPcHRpb25zKCkudXJsQ2FyZHNFbmFibGVkJiZlLmF0dGFjaG1lbnRzLmxlbmd0aD09PTApe2xldCB0PWF3YWl0IEtmKGUuY29udGVudC50ZXh0LGUuc3ViVHlwZT09PUcuTWVzc2FnZVN1YlR5cGUuQ29udGFjdCxyKTt0JiZ0Lml0ZW1zLmxlbmd0aD4wJiZlLmF0dGFjaG1lbnRzLnB1c2godCl9cmV0dXJuIG5kLnNldCghMSksZX0sRHA9YXN5bmMgZT0+KFYuZ2V0T3B0aW9ucygpLnVybENhcmRzRW5hYmxlZCYmYXdhaXQgUHJvbWlzZS5hbGwoZS5tYXAoYXN5bmMgZT0+YXdhaXQgRXAoZSkpKSxlKSxPcD1lPT5lLmZpbmRJbmRleChlPT5lLm1lc3NhZ2UuY2hhbm5lbC50eXBlPT09YGVtYWlsYCk+LTEsa3A9ZT0+ZS5maW5kKGU9PmUubWVzc2FnZT8udHJpZ2dlcj8uaWRlbnRpdHlJZCk/Lm1lc3NhZ2U/LnRyaWdnZXI/LmlkZW50aXR5SWQsSj0oKCk9PntsZXQgZT1PKHt9KSx7c3Vic2NyaWJlOnQsdXBkYXRlOm4sc2V0OnJ9PWUsaT1hc3luYyBlPT57cihybChgaWRgLGF3YWl0IERwKGUpKSl9LGE9YXN5bmMgZT0+e2xldCB0PWF3YWl0IEVwKGUpO1lmKGUpJiZNcC5zZXQoITEpLG4obj0+KHsuLi5uLFtlLmlkXTp0fSkpLGpwKHQpfSxvPWFzeW5jIGU9PntpZighQShScCkuc29tZSh0PT50LmlkPT09ZS5pZCkpcmV0dXJuO2xldCB0PUEoQnApPT09ZS5pZD9hd2FpdCBFcChlLCEwKTplO24obj0+KHsuLi5uLFtlLmlkXTp0fSkpfTtyZXR1cm57c3Vic2NyaWJlOnQsc2V0TWVzc2FnZXM6aSxhZGRNZXNzYWdlOmEsZGVsZXRlTWVzc2FnZTplPT57bih0PT57bGV0e1tlXTpuLC4uLnJ9PXQ7cmV0dXJuIHJ9KX0sbWFya01lc3NhZ2VBc0RlbGV0ZWQ6KHQscik9PntsZXQgaT1BKGUpW3RdO2kmJm4oZT0+KHsuLi5lLFtpLmlkXTp7Li4uaSxkZWxldGVkQXQ6cj8/bmV3IERhdGUoKS50b0lTT1N0cmluZygpfX0pKX0scmVwbGFjZU1lc3NhZ2U6byx1cGRhdGVNZXNzYWdlUmF0aW5nOmU9PntBKGlkKT09PWUuY29udGVudC5kYXRhPy50YXJnZXQmJnhkKCksbih0PT4hZXx8ZS5jb250ZW50LnR5cGUhPT1HLk1lc3NhZ2VDb250ZW50VHlwZS5SYXRlRm9ybT97Li4udH06KHRbZS5pZF18fFlwKGUuaWQpLHsuLi50LFtlLmlkXTplfSkpfSxzZW5kTWVzc2FnZTphc3luYyhlLHQpPT57S3Auc2V0KGUpO2xldCBuPWF3YWl0IEpmKHt0ZXh0OmV9KTtuJiYoS3Auc2V0KG51bGwpLGF3YWl0IGEobiksei5lbWl0KGBtZXNzYWdlU2VudGAsbiksd2goQSgkdSkpKSxhd2FpdCBQcm9taXNlLmFsbCh0Lm1hcChlPT5PZChlKSkpfSxzZW5kQm90UmVwbHk6YXN5bmMoZSx0LG4pPT57bGV0IHI9YXdhaXQgSmYoe3RleHQ6dCxxdWlja1JlcGx5OntyZXBseVRvOmUscGF5bG9hZDpufX0pO24uaXNHb0JhY2tCdXR0b258fEptKHQpLHImJmF3YWl0IG8ocil9LGNsZWFyTWVzc2FnZXM6KCk9PntyKHt9KX19fSkoKSxBcD1lPT57QShSXyl8fElfKCksUV8oKSxzZXRUaW1lb3V0KCgpPT57Si5hZGRNZXNzYWdlKGUpLCRfKCl9LDE2MDApfSxqcD1lPT57ZSYmQShEXykmJkEoUl8pJiYhKEEoa18pJiZBKFgpKSYmX18oZSkmJnhwKCl9LE1wPU8oITEpLE5wPWsoW0pdLChbZV0pPT57bGV0IHQ9T2JqZWN0LnZhbHVlcyhlKS5maWx0ZXIoUWYpO3JldHVybiB0P1NkKHQuc29ydCgoZSx0KT0+bmV3IERhdGUoZS5jcmVhdGVkQXQpLmdldFRpbWUoKS1uZXcgRGF0ZSh0LmNyZWF0ZWRBdCkuZ2V0VGltZSgpKSk6bnVsbH0pLFBwPWsoW0oscmRdLChbZSx0XSk9PntsZXQgbj1PYmplY3QudmFsdWVzKGUpLmZpbHRlcihRZik7cmV0dXJuIHQ/bi5maWx0ZXIoZT0+bmV3IERhdGUoZS5jcmVhdGVkQXQpPm5ldyBEYXRlKHQpKTpufSksRnA9ayhbUHBdLChbZV0pPT5TZChlKSksSXA9ayhbUHBdLChbZV0pPT5lLmxlbmd0aCksTHA9ayhbSXBdLChbZV0pPT5lPjApLFJwPWsoW0pdLChbZV0pPT5PYmplY3QudmFsdWVzKGUpLnNvcnQodHApKSx6cD1rKFtScF0sKFtlXSk9Pm9wKGUpKSxCcD1rKFtScF0sKFtlXSk9PlNkKGUpPy5pZD8/bnVsbCksVnA9ayhbSl0sKFtlXSk9PlNkKE9iamVjdC52YWx1ZXMoZSkuZmlsdGVyKGU9PnR5cGVvZiBlLndpZGdldE9wdGlvbnM/LmRpc2FibGVJbnB1dD09YGJvb2xlYW5gKSk/LndpZGdldE9wdGlvbnM/LmRpc2FibGVJbnB1dD8/ITEpLEhwPWsoW0pdLChbZV0pPT5PYmplY3QudmFsdWVzKGUpLmZpbHRlcihlPT5lLnN1YlR5cGU9PT1gY29udGFjdGB8fGUuc3ViVHlwZT09PWBhZ2VudGApLmxlbmd0aD4wKSxVcD1rKFtKXSwoW2VdKT0+T2JqZWN0LnZhbHVlcyhlKS5maWx0ZXIoZT0+ZS5zdWJUeXBlPT09Ry5NZXNzYWdlU3ViVHlwZS5Db250YWN0KS5sZW5ndGg+MCksV3A9ayhbSixDc10sKFtlLHRdLG4pPT57aWYodCl7bGV0IHI9ZVt0XTtyJiZyLmNvbnRlbnQudHlwZT09PUcuTWVzc2FnZUNvbnRlbnRUeXBlLlJhdGVGb3JtJiZuKHttZXNzYWdlSWQ6ci5pZCx2YWx1ZTpyLmNvbnRlbnQuZGF0YT8udmFsdWUsdGV4dDpyLmNvbnRlbnQuZGF0YT8udGV4dCx0YXJnZXQ6ci5jb250ZW50LmRhdGE/LnRhcmdldH0pfWVsc2UgbihudWxsKX0pLEdwPWsoW1JwXSwoW2VdKT0+ZS5zbGljZSgpLnJldmVyc2UoKS5maW5kKGU9PmUuc3ViVHlwZT09PUcuTWVzc2FnZVN1YlR5cGUuQ29udGFjdCl8fG51bGwpLEtwPU8obnVsbCkscXA9KCk9PiEhVi5nZXRPcHRpb25zKCkucmF0aW5nRW5hYmxlZCxKcD0oKT0+ISFWLmdldE9wdGlvbnMoKS5haVJhdGluZ0VuYWJsZWQsWXA9ZT0+e0NzLnNldChlKSxCYyhIYy5DaGF0UmF0aW5nKX0sWHA9YXN5bmMoe21lc3NhZ2VJZDplLHJhdGluZzp7dGV4dDp0LHZhbHVlOm59LG9uU3VjY2VzczpyfSk9PntsZXQgaT1BKEopW2VdLGE9ZT09PWByYXRlX2Zvcm1faWRgP3ZvaWQgMDplO3RyeXthd2FpdCBxLmdldENsaWVudCgpLmNoYXRSYXRlKHttZXNzYWdlSWQ6YSx2YWx1ZTpuLHRleHQ6dD8/dm9pZCAwfSksciYmcigpfWNhdGNoKGUpe2kmJmF3YWl0IEoucmVwbGFjZU1lc3NhZ2UoaSksam8oYENoYXQgcmF0aW5nIGZhaWxlZC5gLFN0cmluZyhlKSksZ3MoQShXKShgZm9ybS5zdWJtaXQuZXJyb3JgKSl9fSxacD1lPT57bGV0e3dpZGdldFYzVXJsOnR9PVYuZ2V0T3B0aW9ucygpO3JldHVybmAke3R9L2Fzc2V0cy9pbWFnZXMvcmF0aW5nLyR7ZX0uc3ZnYH0sUXA9LyhHLShbQS1aLDAtOV0qKSkvZywkcD1bXSxlbT0hMSx0bSxubT0hMSxybSxpbT1lPT5lLm1hdGNoKFFwKSxhbT0oKT0+e2xldHtnb29nbGVBbmFseXRpY3NFbmFibGVkOmV9PVYuZ2V0T3B0aW9ucygpO3RtPXdpbmRvdy50b3B8fHdpbmRvdyxlJiYodG0uZ3RhZyYmKHJtPXRtLmd0YWcsbm09ITApLHoub24oYGFuYWx5dGljc0NvbnNlbnRDaGFuZ2VkYCxvbSksIWVtJiZVbygpJiZzbSgpKX0sb209ZT0+eyFlbSYmZSYmc20oKX0sc209KCk9PntsZXR7Z2FLZXk6ZSxnYU9wdGlvbnM6dCxnb29nbGVBbmFseXRpY3NNYW51YWw6bixnb29nbGVBbmFseXRpY3NNZWFzdXJlbWVudElkczpyfT1WLmdldE9wdGlvbnMoKSxpPXR8fHtjb29raWVEb21haW46YGF1dG9gfTtpZihlKWltKGUpJiYkcC5wdXNoKHtrZXk6ZSxvcHRpb25zOml9KTtlbHNlIGlmKG4mJnIpci5mb3JFYWNoKGU9PntpbShlKSYmJHAucHVzaCh7a2V5OmUsb3B0aW9uczppfSl9KTtlbHNlIHRyeXskcC5wdXNoKC4uLmNtKCkpfWNhdGNoKGUpe3ZvKGBFcnJvciBkdXJpbmcgZ2V0dGluZyBHQSB0b3AgdHJhY2tlcnNgLGUgaW5zdGFuY2VvZiBFcnJvcj9lLm1lc3NhZ2U6ZSl9JHAubGVuZ3RoPjAmJiFubSYmbG0oKSwkcC5sZW5ndGg9PT0wP3ZvKGBObyBHQSB0byBzZXR1cGApOihkbSgpLGVtPSEwLHZvKGBHQSBpbml0aWFsaXplZGApKX0sY209KCk9PntsZXQgZT1bXTtyZXR1cm4gdG0uZ29vZ2xlX3RhZ19tYW5hZ2VyJiZPYmplY3Qua2V5cyh0bS5nb29nbGVfdGFnX21hbmFnZXIpLmZvckVhY2godD0+e2ltKHQpJiZlLnB1c2goe2tleTp0LG9wdGlvbnM6e2Nvb2tpZURvbWFpbjpgYXV0b2B9fSl9KSxlfSxsbT0oKT0+e2xldCBlPXRtLmRvY3VtZW50LHtoZWFkOnR9PWUsbj1lLmNyZWF0ZUVsZW1lbnQoYHNjcmlwdGApO24uaWQ9YGd0YWdgLG4udHlwZT1gdGV4dC9qYXZhc2NyaXB0YCxuLmFzeW5jPSEwLG4uc3JjPWBodHRwczovL3d3dy5nb29nbGV0YWdtYW5hZ2VyLmNvbS9ndGFnL2pzYCx0Lmluc2VydEJlZm9yZShuLHQuZmlyc3RDaGlsZCksdG0uZGF0YUxheWVyPXRtLmRhdGFMYXllcnx8W10sdG0uZ3RhZz1mdW5jdGlvbigpe3RtLmRhdGFMYXllci5wdXNoKGFyZ3VtZW50cyl9LHJtPXRtLmd0YWcscm0oYGpzYCxuZXcgRGF0ZSl9LHVtPSgpPT57bGV0IGU9W107aWYobm0pe2xldCB0PWNtKCk7JHAuZm9yRWFjaChuPT57dC5maW5kKCh7a2V5OmV9KT0+ZT09PW4ua2V5KXx8ZS5wdXNoKG4pfSl9ZWxzZSBlPVsuLi4kcF07cmV0dXJuIGV9LGRtPSgpPT57dW0oKS5mb3JFYWNoKGU9PntsZXR7a2V5OnQsb3B0aW9uczpufT1lLHI9e307bj8ocj17Y29va2llX2RvbWFpbjpuLmNvb2tpZURvbWFpbn0sbi5uYW1lJiYoci5uYW1lPW4ubmFtZSkpOnI9e2Nvb2tpZV9kb21haW46dG0/LmxvY2F0aW9uLmhvc3RuYW1lfHxgYH0sci5zZW5kX3BhZ2Vfdmlldz0hMSxybShgY29uZmlnYCx0LHIpfSl9LGZtPShlLHQpPT57bGV0e2dvb2dsZUFuYWx5dGljc0VuYWJsZWQ6bn09Vi5nZXRPcHRpb25zKCk7aWYoISghbnx8IXRtLmd0YWd8fCFVbygpfHx0bS5kb2N1bWVudC5oaWRkZW4pKXRyeXskcC5mb3JFYWNoKG49Pnt0LnNlbmRfdG89bi5rZXkscm0oYGV2ZW50YCxlLHQpLHZvKGBTbWFydHN1cHA6IEdBIGV2ZW50ICR7ZX0gLSAke0pTT04uc3RyaW5naWZ5KHQpfWApfSl9Y2F0Y2goZSl7dm8oYFNtYXJ0c3VwcDogR0EgZXJyb3I6YCxlIGluc3RhbmNlb2YgRXJyb3I/ZS5tZXNzYWdlOmUpfX0scG09YFZpc2l0b3Jfc3RhcnRlZF9jb252ZXJzYXRpb25gLG1tPWBWaXNpdG9yX2Nsb3NlZF9jb252ZXJzYXRpb25gLGhtPWBUcmlnZ2VyX21lc3NhZ2Vfc2VudGAsZ209YFRyaWdnZXJfbWVzc2FnZV92aWV3ZWRgLF9tPWBUcmlnZ2VyX3Zpc2l0b3JfcmVhY3Rpb25gLHZtPWBBdXRvX21lc3NhZ2Vfc2VudGAseW09YEF1dG9fbWVzc2FnZV92aWV3ZWRgLGJtPWBBdXRvX21lc3NhZ2VfdmlzaXRvcl9yZWFjdGlvbmAseG09YENoYXRib3Rfc2VudGAsU209YENoYXRib3Rfdmlld2VkYCxDbT1gQ2hhdGJvdF9pbnRlcmFjdGlvbmAsd209YENoYXRib3RfYnV0dG9uX2ludGVyYWN0aW9uYCxUbT1gQ2hhdGJvdF92aXNpdG9yX3JlYWN0aW9uYCxFbT1gQWlfY2hhdGJvdF9zZW50YCxEbT1gQWlfY2hhdGJvdF9pbnRlcmFjdGlvbmAsT209YEFpX2NoYXRib3RfdmlzaXRvcl9yZWFjdGlvbmAsa209YEFnZW50X3NlcnZlZF9jb252ZXJzYXRpb25gLEFtPWBBZ2VudF9jbG9zZWRfY29udmVyc2F0aW9uYCxqbT1gQ29udGFjdF9hY3F1aXJlZGAsTW09YEF1dGhfZm9ybV9maWxsZWRgLE5tPWBPZmZsaW5lX21lc3NhZ2Vfc2VudGAsUG09YEZlZWRiYWNrX3NlbnRgLEZtPWBGZWVkYmFja190ZXh0X3NlbnRgLEltPWBVcmxfY2FyZF9vcGVuZWRgLExtPWBDaGF0Ym94X29wZW5lZGAsUm09e2V2ZW50X2NhdGVnb3J5OmBTbWFydHN1cHBfdjNgLG5vbl9pbnRlcmFjdGlvbjohMH0sWT0oZSx0KT0+e2ZtKGUsey4uLlJtLC4uLnR9KX0sem09KGU9YGApPT5ZKGhtLHtldmVudF9sYWJlbDplfSksQm09ZT0+WShnbSx7ZXZlbnRfbGFiZWw6ZX0pLFZtPShlPWBgKT0+WShfbSx7ZXZlbnRfbGFiZWw6ZX0pLEhtPShlPWBgKT0+WSh2bSx7ZXZlbnRfbGFiZWw6ZX0pLFVtPWU9PlkoeW0se2V2ZW50X2xhYmVsOmV9KSxXbT0oZT1gYCk9PlkoYm0se2V2ZW50X2xhYmVsOmV9KSxHbT0oZT1gYCk9PlkoeG0se2V2ZW50X2xhYmVsOmV9KSxLbT1lPT5ZKFNtLHtldmVudF9sYWJlbDplfSkscW09KGU9YGApPT5ZKENtLHtldmVudF9sYWJlbDplfSksSm09KGU9YGApPT5ZKHdtLHtldmVudF9sYWJlbDplfSksWW09KGU9YGApPT5ZKFRtLHtldmVudF9sYWJlbDplfSksWG09KCk9PlkocG0pLFptPSgpPT5ZKG1tKSxRbT1lPT5ZKEFtLHtldmVudF9sYWJlbDplfSksJG09ZT0+WShrbSx7ZXZlbnRfbGFiZWw6ZX0pLGVoPSgpPT5ZKE1tKSx0aD0oKT0+WShObSksbmg9KGUsdCk9PntsZXQgbj17ZXZlbnRfbGFiZWw6dHx8dnNbZV18fGBgLHZhbHVlOmV9O1kodD9GbTpQbSxuKX0scmg9ZT0+WShqbSx7ZXZlbnRfbGFiZWw6ZX0pLGloPWU9PlkoSW0se2V2ZW50X2xhYmVsOmV9KSxhaD0oZT1gYCk9PlkoRW0se2V2ZW50X2xhYmVsOmV9KSxvaD0oZT1gYCk9PlkoRG0se2V2ZW50X2xhYmVsOmV9KSxzaD0oZT1gYCk9PlkoT20se2V2ZW50X2xhYmVsOmV9KSxjaD0oKT0+WShMbSksbGg9ITEsdWg9e30sZGg9KCk9PntsaD0hMX0sZmg9KCk9Pnt1aD13cChBKFJwKSl9LHBoPShlLHQpPT5saD8hMTpDcChlKS5sZW5ndGg9PT0xJiZ0PT09Ry5NZXNzYWdlU3ViVHlwZS5Db250YWN0PyhsaD0hMCwhMCk6ITEsbWg9KGUsdCk9PntsZXQgbj1lLnRyaWdnZXI/LmlkfHxgYDtyZXR1cm4gdC5zdWJUeXBlPT09Ry5NZXNzYWdlU3ViVHlwZS5Db250YWN0JiZlLnN1YlR5cGU9PT1HLk1lc3NhZ2VTdWJUeXBlLlRyaWdnZXImJiF1aFtuXT8udmlzaXRvclJlc3BvbmRlZD8odWhbbl0udmlzaXRvclJlc3BvbmRlZD0hMCwhMCk6ITF9LGhoPShlLHQpPT57bGV0IG49ZS50cmlnZ2VyPy5pZHx8YGA7cmV0dXJuIHQuc3ViVHlwZT09PUcuTWVzc2FnZVN1YlR5cGUuQ29udGFjdCYmISh0LmNvbnRlbnQucXVpY2tSZXBsaWVzfHx0LmNvbnRlbnQucXVpY2tSZXBseSkmJmUuc3ViVHlwZT09PUcuTWVzc2FnZVN1YlR5cGUuQm90JiYhdWhbbl0/LnZpc2l0b3JSZXNwb25kZWQmJm4/KHVoW25dLnZpc2l0b3JSZXNwb25kZWQ9ITAsITApOiExfSxnaD0oZSx0KT0+e2xldCBuPWUudHJpZ2dlcj8uaWR8fGBgO3JldHVybiB0LnN1YlR5cGU9PT1HLk1lc3NhZ2VTdWJUeXBlLkNvbnRhY3QmJmUudHJpZ2dlcj8uZ3JvdXBUeXBlPT09Ry5Hcm91cFR5cGUuY2hhdGJvdCYmIXVoW25dPy5yZWFjdGVkPyh1aFtuXS5yZWFjdGVkPSEwLCEwKTohMX0sX2g9ZT0+e2xldCB0PWUudHJpZ2dlcj8uaWR8fGBgO3JldHVybiBlLnRyaWdnZXI/Lmdyb3VwVHlwZT09PUcuR3JvdXBUeXBlLmFpJiYhdWhbdF0/LnJlYWN0ZWQ/KHVoW3RdLnJlYWN0ZWQ9ITAsITApOiExfSx2aD0oZSx0LG49ITEpPT57aWYoZS5sZW5ndGg+MCYmIW4pe2xldCB0PWUuc2xpY2UoLTIpLmZpbHRlcihlPT5lLnRyaWdnZXIpO3JldHVybiB0P3RbdC5sZW5ndGgtMV0udHJpZ2dlcj8ubmFtZTpgYH1lbHNlIHJldHVybiB0LnRyaWdnZXI/dC50cmlnZ2VyLm5hbWU6YGB9LHloPWU9PntsZXQgdD1BKFJwKTt4aCh0LGUpLFNoKHQsZSkscGgodCxlLnN1YlR5cGUpJiZYbSgpfSxiaD1lPT57bGV0IHQ9ZSxuPUEoUnApLmZpbHRlcihlPT5lLnRyaWdnZXIpO24mJm4ubGVuZ3RoPjAmJih0PW5bbi5sZW5ndGgtMV0udHJpZ2dlcj8ubmFtZT8/ZSkscmgodCl9LHhoPShlLHQpPT57bGV0IG49dC50cmlnZ2VyPy5pZHx8YGA7dC5zdWJUeXBlPT09Ry5NZXNzYWdlU3ViVHlwZS5Cb3QmJiF1aFtuXT8uc2VudCYmKHQudHJpZ2dlcj8uZ3JvdXBUeXBlPT09Ry5Hcm91cFR5cGUuY2hhdGJvdCYmKEdtKHZoKGUsdCwhMCkpLHVoW25dPXtzZW50OiEwfSksdC50cmlnZ2VyPy5ncm91cFR5cGU9PT1HLkdyb3VwVHlwZS5tZXNzYWdlJiYoSG0odmgoZSx0LCEwKSksdWhbbl09e3NlbnQ6ITB9KSx0LnRyaWdnZXI/Lmdyb3VwVHlwZT09PUcuR3JvdXBUeXBlLmFpJiYoYWgodmgoZSx0LCEwKSksdWhbbl09e3NlbnQ6ITB9KSk7bGV0IHI9ZS5sZW5ndGg+MT9lW2UubGVuZ3RoLTJdOnZvaWQgMDtyJiYoaGgocix0KT8oci50cmlnZ2VyPy5ncm91cFR5cGU9PT1HLkdyb3VwVHlwZS5jaGF0Ym90JiZZbSh2aChlLHQpKSxyLnRyaWdnZXI/Lmdyb3VwVHlwZT09PUcuR3JvdXBUeXBlLm1lc3NhZ2UmJldtKHZoKGUsdCkpLHIudHJpZ2dlcj8uZ3JvdXBUeXBlPT09Ry5Hcm91cFR5cGUuYWkmJnNoKHZoKGUsdCkpKTpnaChyLHQpP3FtKHZoKGUsdCkpOl9oKHQpJiZvaCh2aChlLHQpKSl9LFNoPShlLHQpPT57dC5zdWJUeXBlPT09Ry5NZXNzYWdlU3ViVHlwZS5UcmlnZ2VyJiYoem0odD8udHJpZ2dlcj8ubmFtZSksdWhbdC50cmlnZ2VyPy5pZHx8YGBdPXtzZW50OiEwfSk7bGV0IG49ZS5sZW5ndGg+MT9lW2UubGVuZ3RoLTJdOnZvaWQgMDtuJiZtaChuLHQpJiZWbSh2aChlLHQpKX0sQ2g9KCk9PntsZXQgZT1BKFBwKS5maWx0ZXIoZT0+ZS50cmlnZ2VyKSx0PWVbZS5sZW5ndGgtMV07dCYmdC50cmlnZ2VyJiYodC5zdWJUeXBlPT09Ry5NZXNzYWdlU3ViVHlwZS5Cb3QmJnQuY29udGVudC5xdWlja1JlcGxpZXM/S20odC50cmlnZ2VyLm5hbWUpOnQuc3ViVHlwZT09PUcuTWVzc2FnZVN1YlR5cGUuQm90P1VtKHQudHJpZ2dlci5uYW1lKTp0LnN1YlR5cGU9PT1HLk1lc3NhZ2VTdWJUeXBlLlRyaWdnZXImJkJtKHQudHJpZ2dlci5uYW1lKSl9LHdoPWU9PntlPT09Sy5BY2NvdW50U3RhdHVzLk9mZmxpbmUmJnRoKCl9O3oub24oYG1lc3NhZ2VSZWNlaXZlZGAseWgpLHoub24oYGFnZW50Sm9pbmVkYCxlPT57JG0oZS5mdWxsbmFtZSl9KSx6Lm9uKGBjaGF0UmF0ZWRgLGU9PntuaChlLnZhbHVlLGUudGV4dCl9KSx6Lm9uKGBjaGF0Q2xvc2VkYCwoKT0+e2RoKCl9KSx6Lm9uKGBjaGF0VmlzaXRvckNsb3NlZGAsKCk9PntkaCgpfSksei5vbihgY29udGFjdEFjcXVpcmVkYCwoe2FjcXVpcmVkQnk6ZX0pPT57YmgoZSl9KSxYbC5wdXNoKGZoKTt2YXIgVGg9e0Fycm93RG93bjpgQXJyb3dEb3duYCxBcnJvd1VwOmBBcnJvd1VwYCxFbnRlcjpgRW50ZXJgLEVzY2FwZTpgRXNjYXBlYCxUYWI6YFRhYmB9LEVoPTJlMyxEaD0yZTMsT2g9ZT0+ZS5maWx0ZXIoZT0+IWUuaXNIaWRkZW4pLnJlZHVjZSgoZSx0KT0+KGVbdC5uYW1lXT10LnZhbHVlLGUpLHt9KSxraD1lPT5lLnJlZHVjZSgoZSx0KT0+KGVbdC5uYW1lXT10LnZhbGlkYXRvcnMsZSkse30pLEFoPShlLHQsbik9PntlLnVwZGF0ZShlPT4oey4uLmUsW3RdOm59KSl9LGpoPShlLHQpPT57bGV0IG49e307Zm9yKGxldCByIGluIGUpbltyXT10O3JldHVybiBufSxNaD0oKT0+TWF0aC5yYW5kb20oKS50b1N0cmluZygzNiksTmg9ZT0+e2lmKCFlKXJldHVybiExO2xldCB0PWUuc3BsaXQoYEBgKTtpZih0Lmxlbmd0aCE9PTIpcmV0dXJuITE7bGV0IG49dFswXSxyPXRbMV07cmV0dXJuIG4ubGVuZ3RoPjY0fHxyLmxlbmd0aD4yNTV8fHIuc3BsaXQoYC5gKS5zb21lKGU9PmUubGVuZ3RoPjYzKT8hMTp5Zi50ZXN0KGUpfSxQaD1udWxsLEZoPWU9PntsZXQgdD1lLmluaXRpYWxWYWx1ZXN8fHt9LHt2YWxpZGF0b3JzOm4sb25DaGFuZ2U6cixvblN1Ym1pdDppfT1lLGE9KCk9Pih7Li4udH0pLG89amgodCxQaCkscz1PKGEoKSksYz1PKG8pLGw9TyhqaCh0LCExKSksdT1PKCExKSxkPWsoYyxlPT5PYmplY3QudmFsdWVzKGUpLmV2ZXJ5KGU9PmU9PT1QaCkpLGY9KCk9PntPYmplY3QuZW50cmllcyhBKHMpKS5mb3JFYWNoKChbZSx0XSk9PntlZShlLHQpfSl9LHA9ZT0+e2xldCB0PWUudGFyZ2V0O3QmJl8odC5uYW1lfHx0LmlkLHQudmFsdWUpfSxtPWFzeW5jIGU9PntpZihlJiZlLnByZXZlbnREZWZhdWx0JiZlLnByZXZlbnREZWZhdWx0KCksdS5zZXQoITApLGYoKSwhQShkKSl7dS5zZXQoITEpO3JldHVybn1jLnNldChvKSxhd2FpdCBpKEEocykpLHUuc2V0KCExKX0saD0oZSx7c2hvdWxkVmFsaWRhdGU6dD0hMX09e30pPT57cy51cGRhdGUodD0+KHsuLi50LC4uLmV9KSksdCYmZigpfSxnPShlLHQpPT57XyhlLHQpfSxfPShlLHQpPT57dihlLHQpLGVlKGUsdCksciYmcihlLHQpfSx2PShlLHQpPT57QWgocyxlLHQpfSx5PShlLHQpPT57QWgobCxlLHQpfSxlZT0oZSx0KT0+e3koZSx0KTtsZXQgcj1uW2VdO2lmKHIpZm9yKGxldCBuIG9mIHIpe2xldHt0eXBlOnIsaXNWYWxpZDppfT1uKHQpO2lmKEFoKGMsZSxpP1BoOnIpLCFpKXJldHVybn19O3JldHVybntmb3JtOnMsZXJyb3JzOmMsaXNWYWxpZDpkLGlzU3VibWl0dGluZzp1LGhhbmRsZUNoYW5nZTpwLGhhbmRsZVN1Ym1pdDptLHNldEZpZWxkVmFsdWU6ZyxzZXRWYWx1ZXM6aH19LEloPWZ1bmN0aW9uKGUpe3JldHVybiBlLlRleHQ9YHRleHRgLGUuQ2hlY2tib3g9YGNoZWNrYm94YCxlLlNlbGVjdD1gc2VsZWN0YCxlfSh7fSksTGg9KCk9PmU9PntsZXQgdD0hMDtyZXR1cm4gZT8/KHQ9ITEpLEx1KGUpJiYodD1lLnRyaW0oKS5sZW5ndGg+MCkse3R5cGU6YHJlcXVpcmVkYCxpc1ZhbGlkOnR9fSxSaD0oKT0+ZT0+KHt0eXBlOmBjaGVja2VkYCxpc1ZhbGlkOkx1KGUpP2U9PT1gdHJ1ZWA6ZT09PSEwfSksemg9KCk9PmU9Pih7dHlwZTpgZW1haWxgLGlzVmFsaWQ6TmgoU3RyaW5nKGUpKX0pLEJoPSgpPT5lPT4oe3R5cGU6YHBob25lYCxpc1ZhbGlkOi9eWytdKlsoXXswLDF9WzAtOV17MSw0fVspXXswLDF9Wy1zLi8wLTldKiQvLnRlc3QoU3RyaW5nKGUpKX0pLFZoPU8odm9pZCAwKSxIaD1lPT57bGV0e2VtYWlsQ29udHJvbDp0fT1WLmdldE9wdGlvbnMoKSxuPSEhZT8uZW1haWw7cmV0dXJuIHQmJiFufSxVaD1lPT57bGV0e25hbWVDb250cm9sOnR9PVYuZ2V0T3B0aW9ucygpLG49ISFlPy5uYW1lO3JldHVybiB0JiYhbn0sV2g9ZT0+e2xldHtudW1iZXJDb250cm9sOnR9PVYuZ2V0T3B0aW9ucygpLG49ISFlPy5waG9uZTtyZXR1cm4hIXQmJiFufSxHaD0oKT0+e2xldHtncm91cFNlbGVjdEVuYWJsZWQ6ZX09Vi5nZXRPcHRpb25zKCksdD1BKGFsKTtyZXR1cm4hIWUmJnQubGVuZ3RoPjB9LEtoPSgpPT57bGV0e3ByaXZhY3lOb3RpY2VFbmFibGVkOmUscHJpdmFjeU5vdGljZUNoZWNrUmVxdWlyZWQ6dH09Vi5nZXRPcHRpb25zKCksbj1jZygpO3JldHVybiEhZSYmdCYmIW59LHFoPWU9PntsZXR7cHJpdmFjeU5vdGljZUVuYWJsZWQ6dH09Vi5nZXRPcHRpb25zKCksbj0hIWU/LnZhcmlhYmxlcz8ucGVyc29uYWxEYXRhUHJvY2Vzc2luZ0NvbnNlbnQ7cmV0dXJuISF0JiYhbn0sSmg9KCk9Pih7dHlwZTpJaC5UZXh0LHN1YlR5cGU6YGVtYWlsYCxuYW1lOmBlbWFpbGAsbGFiZWw6YGF1dGhGb3JtLmxhYmVsLmVtYWlsYCxwbGFjZWhvbGRlcjpgYXV0aEZvcm0ueW91ckVtYWlsYCx2YWx1ZTpgYCx2YWxpZGF0b3JzOltMaCgpLHpoKCldLG1heExlbmd0aDoyNTV9KSxZaD0oKT0+KHt0eXBlOkloLlRleHQsc3ViVHlwZTpgdGV4dGAsbmFtZTpgbmFtZWAsbGFiZWw6YGF1dGhGb3JtLmxhYmVsLm5hbWVgLHBsYWNlaG9sZGVyOmBhdXRoRm9ybS55b3VyTmFtZWAsdmFsdWU6YGAsdmFsaWRhdG9yczpbTGgoKV0sbWF4TGVuZ3RoOjI1NX0pLFhoPSgpPT4oe3R5cGU6SWguVGV4dCxzdWJUeXBlOmB0ZWxgLG5hbWU6YHBob25lYCxsYWJlbDpgYXV0aEZvcm0ubGFiZWwucGhvbmVgLHBsYWNlaG9sZGVyOmBhdXRoRm9ybS55b3VyUGhvbmVgLHZhbHVlOmBgLHZhbGlkYXRvcnM6W0xoKCksQmgoKV0sbWF4TGVuZ3RoOjMyfSksWmg9ZT0+e2xldCB0PUEoYWwpO3JldHVybnt0eXBlOkloLlNlbGVjdCxuYW1lOmBncm91cGAsbGFiZWw6YGF1dGhGb3JtLmxhYmVsLmdyb3VwYCxwbGFjZWhvbGRlcjpgYXV0aEZvcm0uZ3JvdXBgLHZhbHVlOmU/Lmdyb3VwPz9gYCx2YWxpZGF0b3JzOltMaCgpXSxvcHRpb25zOnQubWFwKGU9Pih7dGV4dDplLm5hbWUsdmFsdWU6ZS5rZXl9KSl9fSxRaD0oKT0+KHt0eXBlOkloLkNoZWNrYm94LG5hbWU6YHBlcnNvbmFsRGF0YVByb2Nlc3NpbmdDb25zZW50YCxsYWJlbDpgYXV0aEZvcm0uYWNjZXB0VGVybXNgLHZhbHVlOiExLHZhbGlkYXRvcnM6W1JoKCldfSksJGg9KCk9Pih7dHlwZTpJaC5DaGVja2JveCxuYW1lOmBwZXJzb25hbERhdGFQcm9jZXNzaW5nQ29uc2VudGAsbGFiZWw6YHRvcEJhci5nZHByVGl0bGVgLHZhbHVlOiExLHZhbGlkYXRvcnM6W10saXNIaWRkZW46ITB9KSxlZz1lPT4oe3Nob3dFbWFpbDpIaChlKSxzaG93TmFtZTpVaChlKSxzaG93UGhvbmU6V2goZSksc2hvd0dyb3VwczpHaCgpLHNob3dDb25zZW50OktoKCl9KSx0Zz1lPT4oe3Nob3dFbWFpbDohIWUuZW1haWxDb250cm9sLHNob3dOYW1lOiEhZS5uYW1lQ29udHJvbCxzaG93UGhvbmU6ISFlLm51bWJlckNvbnRyb2wsc2hvd0dyb3VwczohIWUuZ3JvdXBTZWxlY3RFbmFibGVkLHNob3dDb25zZW50OiEhZS5wcml2YWN5Tm90aWNlRW5hYmxlZCYmZS5wcml2YWN5Tm90aWNlQ2hlY2tSZXF1aXJlZH0pLG5nPWU9Pk9iamVjdC52YWx1ZXMoZWcoZSkpLnNvbWUoZT0+ZSkscmc9KGUsdCk9PntsZXQgbj1bXSx7c2hvd0VtYWlsOnIsc2hvd05hbWU6aSxzaG93UGhvbmU6YSxzaG93R3JvdXBzOm8sc2hvd0NvbnNlbnQ6c309dD90Zyh0KTplZyhlKTtyZXR1cm4gaSYmbi5wdXNoKFloKCkpLHImJm4ucHVzaChKaCgpKSxhJiZuLnB1c2goWGgoKSksbyYmbi5wdXNoKFpoKGUpKSxzP24ucHVzaChRaCgpKTpuLmxlbmd0aD4wJiYodD90Py5wcml2YWN5Tm90aWNlRW5hYmxlZDpxaChlKSkmJm4ucHVzaCgkaCgpKSxufSxpZz0oKT0+e2xldCBlPXpvKFUuQXV0aEZvcm0pO2lmKCFlKXJldHVybiBudWxsO3RyeXtyZXR1cm4gSlNPTi5wYXJzZShlKX1jYXRjaHtyZXR1cm4gbnVsbH19LGFnPShlLHQpPT57bGV0IG49aWcoKSxyPXtbZV06dH0saT1uP3suLi5uLC4uLnJ9OnI7Qm8oe25hbWU6VS5BdXRoRm9ybSx2YWx1ZTpKU09OLnN0cmluZ2lmeShpKX0pfSxvZz0oKT0+e0xvKFUuQXV0aEZvcm0pfSxzZz0oKT0+ISFBKE11KT8udmFyaWFibGVzPy5hdXRoZW50aWNhdGVkLGNnPSgpPT5BKE11KT8uZ2RwckFwcHJvdmVkfHwhMSxsZz0oKT0+e2xldHtpc1ByZXZpZXdNb2RlOmV9PVYuZ2V0T3B0aW9ucygpO2lmKGV8fEEocGQpfHxzZygpfHwhbmcoQShNdSkpKXJldHVybiExO2xldHtyZXF1aXJlTG9naW46dH09Vi5nZXRPcHRpb25zKCksbj1BKCR1KT09PUsuQWNjb3VudFN0YXR1cy5PZmZsaW5lLHI9QShVdSkubGVuZ3RoPjA7cmV0dXJuISF0fHxufHwhbiYmIXJ9LHVnPWFzeW5jIGU9PntsZXR7cHJpdmFjeU5vdGljZUNoZWNrUmVxdWlyZWQ6dH09Vi5nZXRPcHRpb25zKCksbj1BKE11KSxyPW4/Lm5hbWU/P2UubmFtZSxpPW4/LmVtYWlsPz9lLmVtYWlsLGE9bj8ucGhvbmU/P2UucGhvbmUsbz1lLmdyb3VwPz9uPy5ncm91cCxzPWUucGVyc29uYWxEYXRhUHJvY2Vzc2luZ0NvbnNlbnQsYz17Li4uciYme25hbWU6cn0sLi4uaSYme2VtYWlsOml9LC4uLmEmJntwaG9uZTphfSwuLi5vJiZ7Z3JvdXA6b30sLi4ucyYmdCYme3BlcnNvbmFsRGF0YVByb2Nlc3NpbmdDb25zZW50OnN9fTthd2FpdCBxLmdldENsaWVudCgpLmF1dGhlbnRpY2F0ZShjKSxlaCgpLGF3YWl0IHVfKCksVmMoKX0sZGc9YGh0dHBzOi8vY2RuLmpzZGVsaXZyLm5ldC9ucG0vQGVtb2ppLW1hcnQvZGF0YWAsZmc9UmVnRXhwKGA6KFthLXpBLVowLTlfLV0rKTpgLGBnYCkscGc9bnVsbCxtZz1udWxsLGhnPW51bGwsZ2c9TyhbXSksX2c9YXN5bmMoKT0+cGd8fGhnfHwoaGc9ZmV0Y2goZGcpLnRoZW4oZT0+ZS5qc29uKCkpLnRoZW4oZT0+KHBnPWUsZSkpLmNhdGNoKGU9Pnt0aHJvdyB2byhgRmFpbGVkIHRvIGxvYWQgZW1vamkgZGF0YWAsZSksaGc9bnVsbCxlfSksaGcpLHZnPWU9Pk9iamVjdC52YWx1ZXMoZS5lbW9qaXMpLm1hcChlPT4oe2lkOmUuaWQsbmFtZTplLm5hbWUsbmF0aXZlOmUuc2tpbnNbMF0/Lm5hdGl2ZT8/YGAsa2V5d29yZHM6ZS5rZXl3b3Jkcz8/W119KSkseWc9e3N1YnNjcmliZTpnZy5zdWJzY3JpYmUsYXN5bmMgbG9hZFJhd0RhdGEoKXtyZXR1cm4gX2coKX0sYXN5bmMgbG9hZERhdGEoKXtyZXR1cm4gbWd8fChtZz12Zyhhd2FpdCBfZygpKSxnZy5zZXQobWcpLG1nKX0sZ2V0QnlJZChlKXtsZXQgdD1lLnRvTG93ZXJDYXNlKCk7cmV0dXJuIG1nPy5maW5kKGU9PmUuaWQudG9Mb3dlckNhc2UoKT09PXQpfSxpc0xvYWRlZCgpe3JldHVybiBtZyE9PW51bGx9fSxiZz1lPT55Zy5pc0xvYWRlZCgpP2UucmVwbGFjZShmZywoZSx0KT0+e2xldCBuPXlnLmdldEJ5SWQodCk7cmV0dXJuIG4/bi5uYXRpdmU6ZX0pOmUseGc9MjAsU2c9eyI6KSI6YPCfmYJgLCI6LSkiOmDwn5mCYCwiOkQiOmDwn5iAYCwiOi1EIjpg8J+YgGAsIjspIjpg8J+YiWAsIjstKSI6YPCfmIlgLCI8MyI6YOKdpO+4j2AsIjooIjpg8J+YnmAsIjotKCI6YPCfmJ5gLCI6UCI6YPCfmJtgLCI6LVAiOmDwn5ibYCwiOi1vIjpg8J+YrmAsIjpPIjpg8J+YrmAsIjovIjpg8J+YlWAsIjotLyI6YPCfmJVgfSxDZz1lPT57bGV0IHQ9YCgke2U/YCR8YDpgYH0gKWA7cmV0dXJuIG5ldyBSZWdFeHAoT2JqZWN0LmtleXMoU2cpLm1hcChlPT5gJHtlLnJlcGxhY2UoL1suKis/XiR7fSgpfFtcXVxcXS9nLGBcXCQmYCl9JHt0fWApLmpvaW4oYHxgKSxgZ2lgKX0sd2c9KGUsdD0hMSk9PntsZXQgbj1DZyh0KTtyZXR1cm4gZS5yZXBsYWNlKG4sZT0+e2xldCB0PU9iamVjdC5rZXlzKFNnKS5maW5kKHQ9PmUudG9VcHBlckNhc2UoKS5pbmNsdWRlcyh0KSk7aWYoIXQpcmV0dXJuIGU7bGV0IG49ZS5lbmRzV2l0aChgIGApP2AgYDpgYDtyZXR1cm5gJHtTZ1t0XX0ke259YH0pfSxUZz0oZSx0LG49eGcpPT57aWYoIWV8fGUubGVuZ3RoPDIpcmV0dXJuW107bGV0IHI9ZS50b0xvd2VyQ2FzZSgpLGk9W10sYT1bXSxvPVtdLHM9W107Zm9yKGxldCBlIG9mIHQpe2xldCB0PWUuaWQudG9Mb3dlckNhc2UoKSxuPWUubmFtZS50b0xvd2VyQ2FzZSgpO2lmKHQuc3RhcnRzV2l0aChyKSl7aS5wdXNoKGUpO2NvbnRpbnVlfWlmKHQuaW5jbHVkZXMocikpe2EucHVzaChlKTtjb250aW51ZX1pZihuLmluY2x1ZGVzKHIpKXtvLnB1c2goZSk7Y29udGludWV9ZS5rZXl3b3Jkcy5zb21lKGU9PmUudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhyKSkmJnMucHVzaChlKX1yZXR1cm5bLi4uaSwuLi5hLC4uLm8sLi4uc10uc2xpY2UoMCxuKX0sRWc9KGUsdCk9PntsZXQgbj1lLnNsaWNlKDAsdCkscj1uLmxhc3RJbmRleE9mKGA6YCk7aWYocj09PS0xKXJldHVybiBudWxsO2xldCBpPW4uc2xpY2UocisxKTtyZXR1cm4gUmVnRXhwKGBeW2EtekEtWjAtOV8tXSokYCkudGVzdChpKSYmaS5sZW5ndGg+PTI/aTpudWxsfSxEZz0oZSx0LG4pPT57bGV0IHI9ZS5zbGljZSgwLHQpLGk9ZS5zbGljZSh0KSxhPXIubGFzdEluZGV4T2YoYDpgKTtpZihhPT09LTEpcmV0dXJue25ld1RleHQ6ZSxuZXdDdXJzb3JQb3NpdGlvbjp0fTtsZXQgbz1lLnNsaWNlKDAsYSkscz1pLmxlbmd0aD09PTA/bitgIGA6bjtyZXR1cm57bmV3VGV4dDpvK3MraSxuZXdDdXJzb3JQb3NpdGlvbjphK3MubGVuZ3RofX0sT2c9KGUsdD0zMDApPT57bGV0IG47cmV0dXJuKC4uLnIpPT57Y2xlYXJUaW1lb3V0KG4pLG49c2V0VGltZW91dCgoKT0+ZSguLi5yKSx0KX19LGtnPTNlMyxBZz1bYHNtYXJ0c3VwcC5kZXZgLGBzbWFydHN1cHBjaGF0LmxvY2BdLGpnPWZ1bmN0aW9uKGUpe3JldHVybiBlLkRlZmF1bHQ9YGJsYWNrYmVycnkyLm1wM2AsZX0oe30pLE1nPWZ1bmN0aW9uKGUpe3JldHVybiBlLkNvbm5lY3Rpbmc9YGNvbm5lY3RpbmdgLGUuQ29ubmVjdGVkPWBjb25uZWN0ZWRgLGUuRGlzY29ubmVjdGVkPWBkaXNjb25uZWN0ZWRgLGV9KHt9KSxOZz1mdW5jdGlvbihlKXtyZXR1cm4gZS5JbWFnZT1gaW1hZ2VgLGUuVmlkZW89YHZpZGVvYCxlfSh7fSksUGc9TyghMSksRmc9TyghMSksSWc9TyghMSk7QigpLmFkZEV2ZW50TGlzdGVuZXIoYG9mZmxpbmVgLCgpPT5QZy5zZXQoITApKSxCKCkuYWRkRXZlbnRMaXN0ZW5lcihgb25saW5lYCwoKT0+UGcuc2V0KCExKSk7dmFyIExnPWsoW2RsLFBnLElnXSwoW2UsdCxuXSk9Pm4/TWcuQ29ubmVjdGVkOiFlfHx0P01nLkRpc2Nvbm5lY3RlZDpNZy5Db25uZWN0ZWQsTWcuQ29ubmVjdGluZyksUmcsemc9T2coZT0+e2UmJiFSZyYmKFJnPV9zKEEoVykoYGVycm9yLm5vSW50ZXJuZXRgKSwwKSksIWUmJlJnJiYoUmcoKSxSZz12b2lkIDApfSxrZyk7TGcuc3Vic2NyaWJlKGU9PntlPT09TWcuRGlzY29ubmVjdGVkJiYoRmcuc2V0KCEwKSx6ZyghMCkpLGU9PT1NZy5Db25uZWN0ZWQmJihGZy5zZXQoITEpLHpnKCExKSl9KTt2YXIgQmc9KGUsdCxuKT0+ZT09PU1nLkRpc2Nvbm5lY3RlZHx8IXR8fG4sVmc9KCk9PkJnKEEoTGcpLEEoSHApLEEoWHUpLmRpc2FibGVBdHRhY2htZW50cyksSGc9TyghMSksVWc9ZT0+e2lmKEEoSGcpKXtIKGBUaGVyZSBpcyBhbHJlYWR5IGZpbGUgdXBsb2FkIGluIHByb2dyZXNzYCk7cmV0dXJufWlmKGUubGVuZ3RoPT09MClyZXR1cm47bGV0IHQ9V2coZSk7dC5sZW5ndGg+MCYmWWwuYWRkKHQpfSxXZz1lPT5lLmxlbmd0aD41PyhncyhgJHtBKFcpKGBmaWxlVXBsb2FkLnRvb01hbnlGaWxlc2ApfSA1YCksW10pOmUuZmlsdGVyKGU9PkdnKGUpKSxHZz1lPT57bGV0e2FjY2VwdGVkRmlsZUV4dGVuc2lvbnM6dCxhY2NlcHRlZEZpbGVUeXBlczpuLG1heEZpbGVTaXplOnJ9PUEoYmwpO2lmKCFlKXJldHVybiExO2xldCBpPXQuaW5jbHVkZXMoQ2QoZS5uYW1lKSksYT1uLnNvbWUodD0+dD09PWUudHlwZSk7aWYoVmcoKSlyZXR1cm4gSChgRmlsZSB1cGxvYWQgaXMgZGlzYWJsZWRgKSwhMTtpZighQShIcCkpcmV0dXJuIGdzKEEoVykoYHdhcm5pbmdCYXIudXBsb2FkRmlsZU5vdEZpcnN0YCkpLCExO2lmKGUuc2l6ZT5yKXtsZXQgZT13ZChyKTtyZXR1cm4gZ3MoYCR7QShXKShgZmlsZVVwbG9hZC5maWxlVG9vQmlnYCl9ICR7ZS5zaXplfSAke2UudW5pdH1gKSwhMX1yZXR1cm4gaXx8YT8hMDooZ3MoQShXKShgZmlsZVVwbG9hZC5iYWRGaWxlVHlwZWApKSwhMSl9LEtnPSgpPT5ZbC5jb3VudCgpPT09MD9bXTooWWwuc2V0VXBsb2FkaW5nU3RhdHVzKCksRGQoQShZbCksZT0+WWwuc2V0RmlsZVVwbG9hZGVkKGUubmFtZSkpKSxxZz0xMCxKZz0xZTQsWWc9M2U0LFhnPTIwLFpnPWU9PntpZihlLmxlbmd0aD4wJiZlLmxlbmd0aCVxZz09PTApe2xldCB0PWUuc2xpY2UoLXFnKSxuPW5ldyBEYXRlKGVbZS5sZW5ndGgtMV0uY3JlYXRlZEF0KS5nZXRUaW1lKCk7aWYobmV3IERhdGUoKS5nZXRUaW1lKCktbj5ZZ3x8IXQuZXZlcnkoZT0+ZS5zdWJUeXBlPT09Ry5NZXNzYWdlU3ViVHlwZS5Db250YWN0KSlyZXR1cm4hMTtpZihuLW5ldyBEYXRlKHRbMF0uY3JlYXRlZEF0KS5nZXRUaW1lKCk8SmcpcmV0dXJuITB9cmV0dXJuITF9LFFnPWU9PntsZXQgdD1qZihlKTtyZXR1cm4gdD90Lmxlbmd0aD5YZzohMX0sJGc9TygpLGVfPU8oITEpLHRfPU8oKSxuXz0yMDAscl89TyghMSksaV89ayhbJGddLChbZV0pPT5lPT09dm9pZCAwP3pvKFUuTWVzc2FnZSk/P2BgOmUpLGFfPWsoW2lfXSwoW2VdKT0+ZS50cmltKCkubGVuZ3RoPT09MCksb189ZT0+eyRnLnNldChiZyh3ZyhlKSkpfSxzXz0oZSx0KT0+e2xldCBuPUEoaV8pPz9gYCxyPWAke24uc2xpY2UoMCx0KX0ke2V9JHtuLnNsaWNlKHQpfWA7JGcuc2V0KHIpfSxjXz0oKT0+e0EoZV8pfHwocS5nZXRDbGllbnQoKS5jaGF0VHlwaW5nKCEwKSxlXy5zZXQoITApKX0sbF89KCk9PntBKGVfKSYmKHEuZ2V0Q2xpZW50KCkuY2hhdFR5cGluZyghMSksZV8uc2V0KCExKSl9LHVfPWFzeW5jKGU9W10pPT57aWYoQShhXykmJmUubGVuZ3RoPT09MClyZXR1cm47bGV0IHQ9Ymcod2coQShpXyksITApKS50cmltKCk7YXdhaXQgSi5zZW5kTWVzc2FnZSh0LGUpLG9fKGBgKSxsXygpLHJfLnNldCghMCksZ2QoKX0sZF89T2coYXN5bmMoKT0+e2xldCBlPVlsLmNvdW50KCk+MDtpZihBKGFfKSYmIWUpcmV0dXJuO2lmKCFBKFgpJiZsZygpJiZVXygpLGZfKCkmJiFlKXtfcyhBKFcpKGB3YXJuaW5nQmFyLnNhbWVNZXNzYWdlVHdpY2VgKSk7cmV0dXJufWlmKFpnKEEoUnApKSl7X3MoQShXKShgd2FybmluZ0Jhci5zcGFtUHJvdGVjdGlvbmApKTtyZXR1cm59aWYoQShIZykpe2pvKEEoVykoYGNoYXQuZmlsZVVwbG9hZC5lcnJvci5zdGlsbFVwbG9hZGluZ2ApKTtyZXR1cm59aWYoQShVZikpe19zKEEoVykoYGNhcmQuc2VuZGluZ0luUHJvZ3Jlc3NgKSk7cmV0dXJufWlmKFFnKEEoaV8pKSl7X3MoQShXKShgY2FyZC5saW5rc0xpbWl0UmVhY2hlZGApKTtyZXR1cm59aWYobGcoKSl7QmMoSGMuQXV0aEZvcm0pO3JldHVybn1sZXQgdD1bXTtlJiYoSGcuc2V0KCEwKSx0PWF3YWl0IEtnKCksWWwuY2xlYXIoKSxIZy5zZXQoITEpKSxhd2FpdCB1Xyh0KX0sbl8pLGZfPSgpPT57bGV0IGU9QShHcCksdD1BKEtwKSxuPUEoaV8pLnRyaW0oKTtyZXR1cm4gZSYmbj09PWUuY29udGVudC50ZXh0fHx0JiZuPT09dH0scF89ZT0+e2xldCB0PSgpPT57X2QoKX07c28oKCk9PihlLmFkZEV2ZW50TGlzdGVuZXIoYHZpc2liaWxpdHljaGFuZ2VgLHQpLCgpPT5lLnJlbW92ZUV2ZW50TGlzdGVuZXIoYHZpc2liaWxpdHljaGFuZ2VgLHQpKSl9LG1fPWU9PntsZXQgdD0oKT0+e0EoWCkmJldfKCEwKX07c28oKCk9PihlLmFkZEV2ZW50TGlzdGVuZXIoYHBvcHN0YXRlYCx0KSwoKT0+ZS5yZW1vdmVFdmVudExpc3RlbmVyKGBwb3BzdGF0ZWAsdCkpKX0saF89KCk9PntsZXQgZT1CKCkuX3NtYXJ0c3VwcHx8e307ZS5hcHBWZXJzaW9uPWAwLjAuMWAsZS5jb21taXRIYXNoPWBlMDdjMjA4YTM4ZTZmNTA4NGM4ZWI0NjBiOTU4YTQyZjc3OGE1OTY1YCxlLmNvbW1pdEluZm89YGUwN2MyMDhhMzhlNmY1MDg0YzhlYjQ2MGI5NThhNDJmNzc4YTU5NjUgLSBNZXJnZSBwdWxsIHJlcXVlc3QgIzQ1NyBmcm9tIHNtYXJ0c3VwcC9kZXZlbG9wIC0gMjAyNi0wNy0yNyAwOToxOTozMiArMDIwMGAsQigpLl9zbWFydHN1cHA9ZX0sZ189KGU9amcuRGVmYXVsdCk9PntsZXR7d2lkZ2V0VjNVcmw6dH09Vi5nZXRPcHRpb25zKCksbj1uZXcgQXVkaW8oYCR7dH0vYXNzZXRzL3NvdW5kcy8ke2V9YCk7cmV0dXJuIG4uY3Jvc3NPcmlnaW49YGFub255bW91c2Asbi5sb2FkKCksbn0sX189ZT0+ZS5zdWJUeXBlIT09Ry5NZXNzYWdlU3ViVHlwZS5Db250YWN0JiYhW0cuTWVzc2FnZUNvbnRlbnRUeXBlLlJhdGVGb3JtLEcuTWVzc2FnZUNvbnRlbnRUeXBlLkFnZW50Sm9pbixHLk1lc3NhZ2VDb250ZW50VHlwZS5BZ2VudExlYXZlLEcuTWVzc2FnZUNvbnRlbnRUeXBlLkFnZW50QXNzaWduLEcuTWVzc2FnZUNvbnRlbnRUeXBlLkFnZW50VW5hc3NpZ25dLmluY2x1ZGVzKGUuY29udGVudC50eXBlKSx2Xz1lPT57cS5pc0luaXRpYWxpemVkKCkmJnEuZ2V0Q2xpZW50KCkubm90aWZ5KGUpfSx5Xz0oKT0+e1YuZ2V0T3B0aW9ucygpLmlzUHJldmlld01vZGV8fHZfKEsuV2Vic29ja2V0VmlzaXRvckNsaWVudC5FdmVudE5hbWUuV2lkZ2V0T3Blbil9LGJfPSgpPT52XyhLLldlYnNvY2tldFZpc2l0b3JDbGllbnQuRXZlbnROYW1lLldpZGdldFNob3cpLHhfPSgpPT5kb2N1bWVudC52aXNpYmlsaXR5U3RhdGU9PT1gdmlzaWJsZWAsU189KCk9PntpZihBKHNzKSl7VF8uc2V0KCEwKTtsZXQgZT1CKCk7ZS5oaXN0b3J5LnB1c2hTdGF0ZShudWxsLGBgLGUubG9jYXRpb24uaHJlZil9fSxDXz1PKCExKSx3Xz1PKCExKSxUXz1PKCExKSxFXz1lPT4hIUFnLmZpbmQodD0+ZS5pbmNsdWRlcyh0KSksRF89TyghMCk7Vi5hd2FpdE9wdGlvbnMoKS50aGVuKGU9PntsZXQgdD16byhVLlNvdW5kc0VuYWJsZWQpO3Q/RF8uc2V0KHQ9PT1gdHJ1ZWApOnR5cGVvZiBlLmVuYWJsZVNvdW5kcz09YGJvb2xlYW5gJiZEXy5zZXQoZS5lbmFibGVTb3VuZHMpLHdfLnNldChFXyhlLmJvb3RzdHJhcFVybCkpfSk7dmFyIE9fPWU9PntEXy5zZXQoZSksQm8oe25hbWU6VS5Tb3VuZHNFbmFibGVkLHZhbHVlOmUudG9TdHJpbmcoKX0pLGUmJmJwKCl9LGtfPU8oeF8oKSksQV89T2coKCk9PmtfLnNldCh4XygpKSw1MDApO0IoKS5hZGRFdmVudExpc3RlbmVyKGB2aXNpYmlsaXR5Y2hhbmdlYCwoKT0+e0FfKCl9KTt2YXIgal89TygwKSxNXz0oKT0+al8udXBkYXRlKGU9PmUrMSksTl89TyghMCksUF89KGUsdCk9Pih2byhgd2lkZ2V0IHZpc2libGU6ICR7U3RyaW5nKHQpfSA9PiByZWFzb246ICR7ZX1gKSx0JiZ0IT09QShSXykmJmJfKCksdCksRl89TygpLElfPSgpPT5GXy5zZXQoITApLExfPSgpPT5GXy5zZXQoITEpLFJfPWsoW011LHNzLEZfLGVkLG9kLGsoWyR1LFJwLGFfLG9kXSwoW2UsdCxuLHJdKT0+e2xldHtoaWRlT2ZmbGluZUNoYXQ6aSxpc1ByZXZpZXdNb2RlOmF9PVYuZ2V0T3B0aW9ucygpO3JldHVybiBlPT09Sy5BY2NvdW50U3RhdHVzLk9mZmxpbmUmJiEhaSYmU3AodCkubGVuZ3RoPT09MCYmbiYmIXImJiFhfSldLChbZSx0LG4scixpLGFdKT0+e2xldHtoaWRlTW9iaWxlV2lkZ2V0Om8saGlkZVdpZGdldDpzfT1WLmdldE9wdGlvbnMoKTtyZXR1cm4gZT8uYmFubmVkQXQ/UF8oYHZpc2l0b3IgaXMgYmFubmVkYCwhMSk6dCYmbz9QXyhgb3B0aW9uICdoaWRlTW9iaWxlV2lkZ2V0JyBpcyB0cnVlYCwhMSk6dHlwZW9mIG49PWBib29sZWFuYD9QXyhgc2V0IGJ5IEFQSSBjb21tYW5kYCxuKTpyJiYhaT9QXyhgY2hhdCBzdGF0dXMgaXMgbm90IHBlbmRpbmdgLCEwKTphP1BfKGBvcHRpb24gJ2hpZGVPZmZsaW5lQ2hhdCcgaXMgdHJ1ZWAsITEpOlBfKGBvcHRpb24gJ2hpZGVXaWRnZXQnIGlzICR7U3RyaW5nKHMpfWAsIXMpfSksel89ayhbc3NdLChbZV0pPT57bGV0e29wZW5PblRyaWdnZXI6dH09Vi5nZXRPcHRpb25zKCk7cmV0dXJuIHQmJiFlfSksQl89W10sVl89ZT0+KEJfLnB1c2goZSksKCk9PntsZXQgdD1CXy5pbmRleE9mKGUpO3QhPT0tMSYmQl8uc3BsaWNlKHQsMSl9KSxIXz0oKT0+Ql8ubGVuZ3RoPT09MD8hMTooQl8ucG9wKCkoKSwhMCksWD1ycyhVLklzTWVzc2VuZ2VyRnJhbWVPcGVuZWQsITEsZT0+IUEoc3MpJiZlPT09YHRydWVgKSxVXz0oZT0hMSk9PntsZXR7d2lkZ2V0QmxvY2tpbmdPcHRpb25zOnR9PVYuZ2V0T3B0aW9ucygpO3Q/LmRpc2FibGVPcGVuTWVzc2VuZ2VyJiYhZXx8KGNoKCksU18oKSxYLnNldCghMCksZXYoKSxDaCgpLHlfKCkpfSxXXz1lPT57aWYoQShzcykmJkEoVF8pJiYhZSlyZXR1cm4gVF8uc2V0KCExKSxCKCkuaGlzdG9yeS5iYWNrKCk7ei5lbWl0KGBtZXNzZW5nZXJDbG9zZWAsITApLFguc2V0KCExKX0sR189ZT0+e2lmKCFlKXJldHVybjtsZXR7d2lkZ2V0QmxvY2tpbmdPcHRpb25zOnR9PVYuZ2V0T3B0aW9ucygpLG49ZT0+e2lmKGUua2V5PT09VGguRXNjYXBlKXtpZihIXygpfHx0Py5kaXNhYmxlQ2xvc2VCdXR0b24pcmV0dXJuO1dfKCl9fSxyPWUub3duZXJEb2N1bWVudDtyZXR1cm4gci5hZGRFdmVudExpc3RlbmVyKGBrZXlkb3duYCxuLCEwKSx7ZGVzdHJveSgpe3IucmVtb3ZlRXZlbnRMaXN0ZW5lcihga2V5ZG93bmAsbiwhMCl9fX0sS189ayhbQ18sUl8sWF0sKFtlLHQsbl0pPT5lJiZ0JiZuKTtmdW5jdGlvbiBxXygpe2xldCBlPU8oITEpLHtzdWJzY3JpYmU6dH09ZSxuPW51bGw7cmV0dXJue3N1YnNjcmliZTp0LGhhbmRsZURyYWdPdmVyOih0LHI9ITApPT57ciYmdC5wcmV2ZW50RGVmYXVsdCgpLEEoZSl8fGUuc2V0KCEwKSxuJiZjbGVhclRpbWVvdXQobiksbj13aW5kb3cuc2V0VGltZW91dCgoKT0+e2Uuc2V0KCExKX0sMjAwKX0saGFuZGxlRHJvcDp0PT57dC5wcmV2ZW50RGVmYXVsdCgpLG4mJmNsZWFyVGltZW91dChuKSxlLnNldCghMSk7bGV0IHI9dC5kYXRhVHJhbnNmZXI/LmZpbGVzP1suLi50LmRhdGFUcmFuc2Zlci5maWxlc106W107cmV0dXJuIHIubGVuZ3RoPT09MCYmX3MoYERyb3BwZWQgaXRlbShzKSBhcmUgbm90IHByb2Nlc3NhYmxlIGZpbGVzYCkse2Ryb3BwZWRGaWxlczpyfX19fXZhciBKXz1xXygpLFlfPWsoW0NfLFJfLFhdLChbZSx0LG5dKT0+ZSYmdCYmIW4pLFhfPU8oITEpLFpfPU8oITEpLFFfPSgpPT57WF8uc2V0KCEwKSxaXy5zZXQoITEpfSwkXz0oKT0+e1pfLnNldCghMCksWF8uc2V0KCExKX0sZXY9KGU9ITEpPT57Wl8uc2V0KCExKSxlJiZCbyh7bmFtZTpVLlBvcHVwQ2xvc2VkQXQsdmFsdWU6bmV3IERhdGUoKS50b0lTT1N0cmluZygpfSl9LHR2PWsoW3NzXSwoW2VdKT0+e2xldHttb2JpbGVQb3B1cHNFbmFibGVkOnR9PVYuZ2V0T3B0aW9ucygpO3JldHVybiBlPyEhdDohMH0pLG52PWsoW05wXSwoW2VdKT0+e2xldCB0PXpvKFUuUG9wdXBDbG9zZWRBdCk/P251bGw7cmV0dXJuIXR8fCFlPyEwOm5ldyBEYXRlKGUuY3JlYXRlZEF0KS5nZXRUaW1lKCk+bmV3IERhdGUodCkuZ2V0VGltZSgpfSkscnY9ayhbQ18sUl8sWF8sWCx0dl0sKFtlLHQsbixyLGldKT0+ZSYmdCYmbiYmIXImJmkpLGl2PWsoW0NfLFJfLFpfLFgsTnAsbnYsdHYsV2ZdLChbZSx0LG4scixpLGEsbyxzXSk9PmUmJnQmJm4mJmkmJmEmJiFyJiZvJiYhcyksYXY9e3doaXRlOmAjZmZmZmZmYCxzbGF0ZTEwMDpgI2YxZjVmOWAsc2xhdGUyMDA6YCNlMmU4ZjBgLHNsYXRlMzAwOmAjY2JkNWUxYCxzbGF0ZTkwMDpgIzBmMTcyYWAsYmx1ZTcwMDpgIzFkNGVkOGAsc21hcnRzdXBwQmx1ZTpgIzEyMzNkZmB9O2Z1bmN0aW9uIFooZSx0KXtzdihlKSYmKGU9YDEwMCVgKTtsZXQgbj1jdihlKTtyZXR1cm4gZT10PT09MzYwP2U6TWF0aC5taW4odCxNYXRoLm1heCgwLHBhcnNlRmxvYXQoZSkpKSxuJiYoZT1wYXJzZUludChTdHJpbmcoZSp0KSwxMCkvMTAwKSxNYXRoLmFicyhlLXQpPDFlLTY/MTooZT10PT09MzYwPyhlPDA/ZSV0K3Q6ZSV0KS9wYXJzZUZsb2F0KFN0cmluZyh0KSk6ZSV0L3BhcnNlRmxvYXQoU3RyaW5nKHQpKSxlKX1mdW5jdGlvbiBvdihlKXtyZXR1cm4gTWF0aC5taW4oMSxNYXRoLm1heCgwLGUpKX1mdW5jdGlvbiBzdihlKXtyZXR1cm4gdHlwZW9mIGU9PWBzdHJpbmdgJiZlLmluZGV4T2YoYC5gKSE9PS0xJiZwYXJzZUZsb2F0KGUpPT09MX1mdW5jdGlvbiBjdihlKXtyZXR1cm4gdHlwZW9mIGU9PWBzdHJpbmdgJiZlLmluZGV4T2YoYCVgKSE9PS0xfWZ1bmN0aW9uIGx2KGUpe3JldHVybiBlPXBhcnNlRmxvYXQoZSksKGlzTmFOKGUpfHxlPDB8fGU+MSkmJihlPTEpLGV9ZnVuY3Rpb24gdXYoZSl7cmV0dXJuIE51bWJlcihlKTw9MT9gJHtOdW1iZXIoZSkqMTAwfSVgOmV9ZnVuY3Rpb24gZHYoZSl7cmV0dXJuIGUubGVuZ3RoPT09MT9gMGArZTpTdHJpbmcoZSl9ZnVuY3Rpb24gZnYoZSx0LG4pe3JldHVybntyOlooZSwyNTUpKjI1NSxnOloodCwyNTUpKjI1NSxiOloobiwyNTUpKjI1NX19ZnVuY3Rpb24gcHYoZSx0LG4pe2U9WihlLDI1NSksdD1aKHQsMjU1KSxuPVoobiwyNTUpO2xldCByPU1hdGgubWF4KGUsdCxuKSxpPU1hdGgubWluKGUsdCxuKSxhPTAsbz0wLHM9KHIraSkvMjtpZihyPT09aSlvPTAsYT0wO2Vsc2V7bGV0IGM9ci1pO3N3aXRjaChvPXM+LjU/Yy8oMi1yLWkpOmMvKHIraSkscil7Y2FzZSBlOmE9KHQtbikvYysodDxuPzY6MCk7YnJlYWs7Y2FzZSB0OmE9KG4tZSkvYysyO2JyZWFrO2Nhc2UgbjphPShlLXQpL2MrNDticmVhaztkZWZhdWx0OmJyZWFrfWEvPTZ9cmV0dXJue2g6YSxzOm8sbDpzfX1mdW5jdGlvbiBtdihlLHQsbil7cmV0dXJuIG48MCYmKG4rPTEpLG4+MSYmLS1uLG48MS82P2UrKHQtZSkqKDYqbik6bjwxLzI/dDpuPDIvMz9lKyh0LWUpKigyLzMtbikqNjplfWZ1bmN0aW9uIGh2KGUsdCxuKXtsZXQgcixpLGE7aWYoZT1aKGUsMzYwKSx0PVoodCwxMDApLG49WihuLDEwMCksdD09PTApaT1uLGE9bixyPW47ZWxzZXtsZXQgbz1uPC41P24qKDErdCk6bit0LW4qdCxzPTIqbi1vO3I9bXYocyxvLGUrMS8zKSxpPW12KHMsbyxlKSxhPW12KHMsbyxlLTEvMyl9cmV0dXJue3I6cioyNTUsZzppKjI1NSxiOmEqMjU1fX1mdW5jdGlvbiBndihlLHQsbil7ZT1aKGUsMjU1KSx0PVoodCwyNTUpLG49WihuLDI1NSk7bGV0IHI9TWF0aC5tYXgoZSx0LG4pLGk9TWF0aC5taW4oZSx0LG4pLGE9MCxvPXIscz1yLWksYz1yPT09MD8wOnMvcjtpZihyPT09aSlhPTA7ZWxzZXtzd2l0Y2gocil7Y2FzZSBlOmE9KHQtbikvcysodDxuPzY6MCk7YnJlYWs7Y2FzZSB0OmE9KG4tZSkvcysyO2JyZWFrO2Nhc2UgbjphPShlLXQpL3MrNDticmVhaztkZWZhdWx0OmJyZWFrfWEvPTZ9cmV0dXJue2g6YSxzOmMsdjpvfX1mdW5jdGlvbiBfdihlLHQsbil7ZT1aKGUsMzYwKSo2LHQ9Wih0LDEwMCksbj1aKG4sMTAwKTtsZXQgcj1NYXRoLmZsb29yKGUpLGk9ZS1yLGE9biooMS10KSxvPW4qKDEtaSp0KSxzPW4qKDEtKDEtaSkqdCksYz1yJTYsbD1bbixvLGEsYSxzLG5dW2NdLHU9W3MsbixuLG8sYSxhXVtjXSxkPVthLGEscyxuLG4sb11bY107cmV0dXJue3I6bCoyNTUsZzp1KjI1NSxiOmQqMjU1fX1mdW5jdGlvbiB2dihlLHQsbixyKXtsZXQgaT1bZHYoTWF0aC5yb3VuZChlKS50b1N0cmluZygxNikpLGR2KE1hdGgucm91bmQodCkudG9TdHJpbmcoMTYpKSxkdihNYXRoLnJvdW5kKG4pLnRvU3RyaW5nKDE2KSldO3JldHVybiByJiZpWzBdLnN0YXJ0c1dpdGgoaVswXS5jaGFyQXQoMSkpJiZpWzFdLnN0YXJ0c1dpdGgoaVsxXS5jaGFyQXQoMSkpJiZpWzJdLnN0YXJ0c1dpdGgoaVsyXS5jaGFyQXQoMSkpP2lbMF0uY2hhckF0KDApK2lbMV0uY2hhckF0KDApK2lbMl0uY2hhckF0KDApOmkuam9pbihgYCl9ZnVuY3Rpb24geXYoZSx0LG4scixpKXtsZXQgYT1bZHYoTWF0aC5yb3VuZChlKS50b1N0cmluZygxNikpLGR2KE1hdGgucm91bmQodCkudG9TdHJpbmcoMTYpKSxkdihNYXRoLnJvdW5kKG4pLnRvU3RyaW5nKDE2KSksZHYoU3YocikpXTtyZXR1cm4gaSYmYVswXS5zdGFydHNXaXRoKGFbMF0uY2hhckF0KDEpKSYmYVsxXS5zdGFydHNXaXRoKGFbMV0uY2hhckF0KDEpKSYmYVsyXS5zdGFydHNXaXRoKGFbMl0uY2hhckF0KDEpKSYmYVszXS5zdGFydHNXaXRoKGFbM10uY2hhckF0KDEpKT9hWzBdLmNoYXJBdCgwKSthWzFdLmNoYXJBdCgwKSthWzJdLmNoYXJBdCgwKSthWzNdLmNoYXJBdCgwKTphLmpvaW4oYGApfWZ1bmN0aW9uIGJ2KGUsdCxuLHIpe2xldCBpPWUvMTAwLGE9dC8xMDAsbz1uLzEwMCxzPXIvMTAwO3JldHVybntyOjI1NSooMS1pKSooMS1zKSxnOjI1NSooMS1hKSooMS1zKSxiOjI1NSooMS1vKSooMS1zKX19ZnVuY3Rpb24geHYoZSx0LG4pe2xldCByPTEtZS8yNTUsaT0xLXQvMjU1LGE9MS1uLzI1NSxvPU1hdGgubWluKHIsaSxhKTtyZXR1cm4gbz09PTE/KHI9MCxpPTAsYT0wKToocj0oci1vKS8oMS1vKSoxMDAsaT0oaS1vKS8oMS1vKSoxMDAsYT0oYS1vKS8oMS1vKSoxMDApLG8qPTEwMCx7YzpNYXRoLnJvdW5kKHIpLG06TWF0aC5yb3VuZChpKSx5Ok1hdGgucm91bmQoYSksazpNYXRoLnJvdW5kKG8pfX1mdW5jdGlvbiBTdihlKXtyZXR1cm4gTWF0aC5yb3VuZChwYXJzZUZsb2F0KGUpKjI1NSkudG9TdHJpbmcoMTYpfWZ1bmN0aW9uIEN2KGUpe3JldHVybiB3dihlKS8yNTV9ZnVuY3Rpb24gd3YoZSl7cmV0dXJuIHBhcnNlSW50KGUsMTYpfWZ1bmN0aW9uIFR2KGUpe3JldHVybntyOmU+PjE2LGc6KGUmNjUyODApPj44LGI6ZSYyNTV9fXZhciBFdj17YWxpY2VibHVlOmAjZjBmOGZmYCxhbnRpcXVld2hpdGU6YCNmYWViZDdgLGFxdWE6YCMwMGZmZmZgLGFxdWFtYXJpbmU6YCM3ZmZmZDRgLGF6dXJlOmAjZjBmZmZmYCxiZWlnZTpgI2Y1ZjVkY2AsYmlzcXVlOmAjZmZlNGM0YCxibGFjazpgIzAwMDAwMGAsYmxhbmNoZWRhbG1vbmQ6YCNmZmViY2RgLGJsdWU6YCMwMDAwZmZgLGJsdWV2aW9sZXQ6YCM4YTJiZTJgLGJyb3duOmAjYTUyYTJhYCxidXJseXdvb2Q6YCNkZWI4ODdgLGNhZGV0Ymx1ZTpgIzVmOWVhMGAsY2hhcnRyZXVzZTpgIzdmZmYwMGAsY2hvY29sYXRlOmAjZDI2OTFlYCxjb3JhbDpgI2ZmN2Y1MGAsY29ybmZsb3dlcmJsdWU6YCM2NDk1ZWRgLGNvcm5zaWxrOmAjZmZmOGRjYCxjcmltc29uOmAjZGMxNDNjYCxjeWFuOmAjMDBmZmZmYCxkYXJrYmx1ZTpgIzAwMDA4YmAsZGFya2N5YW46YCMwMDhiOGJgLGRhcmtnb2xkZW5yb2Q6YCNiODg2MGJgLGRhcmtncmF5OmAjYTlhOWE5YCxkYXJrZ3JlZW46YCMwMDY0MDBgLGRhcmtncmV5OmAjYTlhOWE5YCxkYXJra2hha2k6YCNiZGI3NmJgLGRhcmttYWdlbnRhOmAjOGIwMDhiYCxkYXJrb2xpdmVncmVlbjpgIzU1NmIyZmAsZGFya29yYW5nZTpgI2ZmOGMwMGAsZGFya29yY2hpZDpgIzk5MzJjY2AsZGFya3JlZDpgIzhiMDAwMGAsZGFya3NhbG1vbjpgI2U5OTY3YWAsZGFya3NlYWdyZWVuOmAjOGZiYzhmYCxkYXJrc2xhdGVibHVlOmAjNDgzZDhiYCxkYXJrc2xhdGVncmF5OmAjMmY0ZjRmYCxkYXJrc2xhdGVncmV5OmAjMmY0ZjRmYCxkYXJrdHVycXVvaXNlOmAjMDBjZWQxYCxkYXJrdmlvbGV0OmAjOTQwMGQzYCxkZWVwcGluazpgI2ZmMTQ5M2AsZGVlcHNreWJsdWU6YCMwMGJmZmZgLGRpbWdyYXk6YCM2OTY5NjlgLGRpbWdyZXk6YCM2OTY5NjlgLGRvZGdlcmJsdWU6YCMxZTkwZmZgLGZpcmVicmljazpgI2IyMjIyMmAsZmxvcmFsd2hpdGU6YCNmZmZhZjBgLGZvcmVzdGdyZWVuOmAjMjI4YjIyYCxmdWNoc2lhOmAjZmYwMGZmYCxnYWluc2Jvcm86YCNkY2RjZGNgLGdob3N0d2hpdGU6YCNmOGY4ZmZgLGdvbGRlbnJvZDpgI2RhYTUyMGAsZ29sZDpgI2ZmZDcwMGAsZ3JheTpgIzgwODA4MGAsZ3JlZW46YCMwMDgwMDBgLGdyZWVueWVsbG93OmAjYWRmZjJmYCxncmV5OmAjODA4MDgwYCxob25leWRldzpgI2YwZmZmMGAsaG90cGluazpgI2ZmNjliNGAsaW5kaWFucmVkOmAjY2Q1YzVjYCxpbmRpZ286YCM0YjAwODJgLGl2b3J5OmAjZmZmZmYwYCxraGFraTpgI2YwZTY4Y2AsbGF2ZW5kZXJibHVzaDpgI2ZmZjBmNWAsbGF2ZW5kZXI6YCNlNmU2ZmFgLGxhd25ncmVlbjpgIzdjZmMwMGAsbGVtb25jaGlmZm9uOmAjZmZmYWNkYCxsaWdodGJsdWU6YCNhZGQ4ZTZgLGxpZ2h0Y29yYWw6YCNmMDgwODBgLGxpZ2h0Y3lhbjpgI2UwZmZmZmAsbGlnaHRnb2xkZW5yb2R5ZWxsb3c6YCNmYWZhZDJgLGxpZ2h0Z3JheTpgI2QzZDNkM2AsbGlnaHRncmVlbjpgIzkwZWU5MGAsbGlnaHRncmV5OmAjZDNkM2QzYCxsaWdodHBpbms6YCNmZmI2YzFgLGxpZ2h0c2FsbW9uOmAjZmZhMDdhYCxsaWdodHNlYWdyZWVuOmAjMjBiMmFhYCxsaWdodHNreWJsdWU6YCM4N2NlZmFgLGxpZ2h0c2xhdGVncmF5OmAjNzc4ODk5YCxsaWdodHNsYXRlZ3JleTpgIzc3ODg5OWAsbGlnaHRzdGVlbGJsdWU6YCNiMGM0ZGVgLGxpZ2h0eWVsbG93OmAjZmZmZmUwYCxsaW1lOmAjMDBmZjAwYCxsaW1lZ3JlZW46YCMzMmNkMzJgLGxpbmVuOmAjZmFmMGU2YCxtYWdlbnRhOmAjZmYwMGZmYCxtYXJvb246YCM4MDAwMDBgLG1lZGl1bWFxdWFtYXJpbmU6YCM2NmNkYWFgLG1lZGl1bWJsdWU6YCMwMDAwY2RgLG1lZGl1bW9yY2hpZDpgI2JhNTVkM2AsbWVkaXVtcHVycGxlOmAjOTM3MGRiYCxtZWRpdW1zZWFncmVlbjpgIzNjYjM3MWAsbWVkaXVtc2xhdGVibHVlOmAjN2I2OGVlYCxtZWRpdW1zcHJpbmdncmVlbjpgIzAwZmE5YWAsbWVkaXVtdHVycXVvaXNlOmAjNDhkMWNjYCxtZWRpdW12aW9sZXRyZWQ6YCNjNzE1ODVgLG1pZG5pZ2h0Ymx1ZTpgIzE5MTk3MGAsbWludGNyZWFtOmAjZjVmZmZhYCxtaXN0eXJvc2U6YCNmZmU0ZTFgLG1vY2Nhc2luOmAjZmZlNGI1YCxuYXZham93aGl0ZTpgI2ZmZGVhZGAsbmF2eTpgIzAwMDA4MGAsb2xkbGFjZTpgI2ZkZjVlNmAsb2xpdmU6YCM4MDgwMDBgLG9saXZlZHJhYjpgIzZiOGUyM2Asb3JhbmdlOmAjZmZhNTAwYCxvcmFuZ2VyZWQ6YCNmZjQ1MDBgLG9yY2hpZDpgI2RhNzBkNmAscGFsZWdvbGRlbnJvZDpgI2VlZThhYWAscGFsZWdyZWVuOmAjOThmYjk4YCxwYWxldHVycXVvaXNlOmAjYWZlZWVlYCxwYWxldmlvbGV0cmVkOmAjZGI3MDkzYCxwYXBheWF3aGlwOmAjZmZlZmQ1YCxwZWFjaHB1ZmY6YCNmZmRhYjlgLHBlcnU6YCNjZDg1M2ZgLHBpbms6YCNmZmMwY2JgLHBsdW06YCNkZGEwZGRgLHBvd2RlcmJsdWU6YCNiMGUwZTZgLHB1cnBsZTpgIzgwMDA4MGAscmViZWNjYXB1cnBsZTpgIzY2MzM5OWAscmVkOmAjZmYwMDAwYCxyb3N5YnJvd246YCNiYzhmOGZgLHJveWFsYmx1ZTpgIzQxNjllMWAsc2FkZGxlYnJvd246YCM4YjQ1MTNgLHNhbG1vbjpgI2ZhODA3MmAsc2FuZHlicm93bjpgI2Y0YTQ2MGAsc2VhZ3JlZW46YCMyZThiNTdgLHNlYXNoZWxsOmAjZmZmNWVlYCxzaWVubmE6YCNhMDUyMmRgLHNpbHZlcjpgI2MwYzBjMGAsc2t5Ymx1ZTpgIzg3Y2VlYmAsc2xhdGVibHVlOmAjNmE1YWNkYCxzbGF0ZWdyYXk6YCM3MDgwOTBgLHNsYXRlZ3JleTpgIzcwODA5MGAsc25vdzpgI2ZmZmFmYWAsc3ByaW5nZ3JlZW46YCMwMGZmN2ZgLHN0ZWVsYmx1ZTpgIzQ2ODJiNGAsdGFuOmAjZDJiNDhjYCx0ZWFsOmAjMDA4MDgwYCx0aGlzdGxlOmAjZDhiZmQ4YCx0b21hdG86YCNmZjYzNDdgLHR1cnF1b2lzZTpgIzQwZTBkMGAsdmlvbGV0OmAjZWU4MmVlYCx3aGVhdDpgI2Y1ZGViM2Asd2hpdGU6YCNmZmZmZmZgLHdoaXRlc21va2U6YCNmNWY1ZjVgLHllbGxvdzpgI2ZmZmYwMGAseWVsbG93Z3JlZW46YCM5YWNkMzJgfTtmdW5jdGlvbiBEdihlKXtsZXQgdD17cjowLGc6MCxiOjB9LG49MSxyPW51bGwsaT1udWxsLGE9bnVsbCxvPSExLHM9ITE7cmV0dXJuIHR5cGVvZiBlPT1gc3RyaW5nYCYmKGU9TXYoZSkpLHR5cGVvZiBlPT1gb2JqZWN0YCYmKE52KGUucikmJk52KGUuZykmJk52KGUuYik/KHQ9ZnYoZS5yLGUuZyxlLmIpLG89ITAscz1TdHJpbmcoZS5yKS5zdWJzdHIoLTEpPT09YCVgP2BwcmdiYDpgcmdiYCk6TnYoZS5oKSYmTnYoZS5zKSYmTnYoZS52KT8ocj11dihlLnMpLGk9dXYoZS52KSx0PV92KGUuaCxyLGkpLG89ITAscz1gaHN2YCk6TnYoZS5oKSYmTnYoZS5zKSYmTnYoZS5sKT8ocj11dihlLnMpLGE9dXYoZS5sKSx0PWh2KGUuaCxyLGEpLG89ITAscz1gaHNsYCk6TnYoZS5jKSYmTnYoZS5tKSYmTnYoZS55KSYmTnYoZS5rKSYmKHQ9YnYoZS5jLGUubSxlLnksZS5rKSxvPSEwLHM9YGNteWtgKSxPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSxgYWApJiYobj1lLmEpKSxuPWx2KG4pLHtvazpvLGZvcm1hdDplLmZvcm1hdHx8cyxyOk1hdGgubWluKDI1NSxNYXRoLm1heCh0LnIsMCkpLGc6TWF0aC5taW4oMjU1LE1hdGgubWF4KHQuZywwKSksYjpNYXRoLm1pbigyNTUsTWF0aC5tYXgodC5iLDApKSxhOm59fXZhciBPdj1gKD86Wy1cXCtdP1xcZCpcXC5cXGQrJT8pfCg/OlstXFwrXT9cXGQrJT8pYCxrdj1gW1xcc3xcXChdKyhgK092K2ApWyx8XFxzXSsoKD86Wy1cXCtdP1xcZCpcXC5cXGQrJT8pfCg/OlstXFwrXT9cXGQrJT8pKVssfFxcc10rKCg/OlstXFwrXT9cXGQqXFwuXFxkKyU/KXwoPzpbLVxcK10/XFxkKyU/KSlcXHMqXFwpP2AsQXY9YFtcXHN8XFwoXSsoYCtPditgKVssfFxcc10rKCg/OlstXFwrXT9cXGQqXFwuXFxkKyU/KXwoPzpbLVxcK10/XFxkKyU/KSlbLHxcXHNdKygoPzpbLVxcK10/XFxkKlxcLlxcZCslPyl8KD86Wy1cXCtdP1xcZCslPykpWyx8XFxzXSsoKD86Wy1cXCtdP1xcZCpcXC5cXGQrJT8pfCg/OlstXFwrXT9cXGQrJT8pKVxccypcXCk/YCxqdj17Q1NTX1VOSVQ6bmV3IFJlZ0V4cChPdikscmdiOlJlZ0V4cChgcmdiYCtrdikscmdiYTpSZWdFeHAoYHJnYmFgK0F2KSxoc2w6UmVnRXhwKGBoc2xgK2t2KSxoc2xhOlJlZ0V4cChgaHNsYWArQXYpLGhzdjpSZWdFeHAoYGhzdmAra3YpLGhzdmE6UmVnRXhwKGBoc3ZhYCtBdiksY215azpSZWdFeHAoYGNteWtgK0F2KSxoZXgzOi9eIz8oWzAtOWEtZkEtRl17MX0pKFswLTlhLWZBLUZdezF9KShbMC05YS1mQS1GXXsxfSkkLyxoZXg2Oi9eIz8oWzAtOWEtZkEtRl17Mn0pKFswLTlhLWZBLUZdezJ9KShbMC05YS1mQS1GXXsyfSkkLyxoZXg0Oi9eIz8oWzAtOWEtZkEtRl17MX0pKFswLTlhLWZBLUZdezF9KShbMC05YS1mQS1GXXsxfSkoWzAtOWEtZkEtRl17MX0pJC8saGV4ODovXiM/KFswLTlhLWZBLUZdezJ9KShbMC05YS1mQS1GXXsyfSkoWzAtOWEtZkEtRl17Mn0pKFswLTlhLWZBLUZdezJ9KSQvfTtmdW5jdGlvbiBNdihlKXtpZihlPWUudHJpbSgpLnRvTG93ZXJDYXNlKCksZS5sZW5ndGg9PT0wKXJldHVybiExO2xldCB0PSExO2lmKEV2W2VdKWU9RXZbZV0sdD0hMDtlbHNlIGlmKGU9PT1gdHJhbnNwYXJlbnRgKXJldHVybntyOjAsZzowLGI6MCxhOjAsZm9ybWF0OmBuYW1lYH07bGV0IG49anYucmdiLmV4ZWMoZSk7cmV0dXJuIG4/e3I6blsxXSxnOm5bMl0sYjpuWzNdfToobj1qdi5yZ2JhLmV4ZWMoZSksbj97cjpuWzFdLGc6blsyXSxiOm5bM10sYTpuWzRdfToobj1qdi5oc2wuZXhlYyhlKSxuP3toOm5bMV0sczpuWzJdLGw6blszXX06KG49anYuaHNsYS5leGVjKGUpLG4/e2g6blsxXSxzOm5bMl0sbDpuWzNdLGE6bls0XX06KG49anYuaHN2LmV4ZWMoZSksbj97aDpuWzFdLHM6blsyXSx2Om5bM119OihuPWp2LmhzdmEuZXhlYyhlKSxuP3toOm5bMV0sczpuWzJdLHY6blszXSxhOm5bNF19OihuPWp2LmNteWsuZXhlYyhlKSxuP3tjOm5bMV0sbTpuWzJdLHk6blszXSxrOm5bNF19OihuPWp2LmhleDguZXhlYyhlKSxuP3tyOnd2KG5bMV0pLGc6d3YoblsyXSksYjp3dihuWzNdKSxhOkN2KG5bNF0pLGZvcm1hdDp0P2BuYW1lYDpgaGV4OGB9OihuPWp2LmhleDYuZXhlYyhlKSxuP3tyOnd2KG5bMV0pLGc6d3YoblsyXSksYjp3dihuWzNdKSxmb3JtYXQ6dD9gbmFtZWA6YGhleGB9OihuPWp2LmhleDQuZXhlYyhlKSxuP3tyOnd2KG5bMV0rblsxXSksZzp3dihuWzJdK25bMl0pLGI6d3YoblszXStuWzNdKSxhOkN2KG5bNF0rbls0XSksZm9ybWF0OnQ/YG5hbWVgOmBoZXg4YH06KG49anYuaGV4My5leGVjKGUpLG4/e3I6d3YoblsxXStuWzFdKSxnOnd2KG5bMl0rblsyXSksYjp3dihuWzNdK25bM10pLGZvcm1hdDp0P2BuYW1lYDpgaGV4YH06ITEpKSkpKSkpKSkpfWZ1bmN0aW9uIE52KGUpe3JldHVybiB0eXBlb2YgZT09YG51bWJlcmA/IU51bWJlci5pc05hTihlKTpqdi5DU1NfVU5JVC50ZXN0KGUpfXZhciBQdj1jbGFzcyBle2NvbnN0cnVjdG9yKHQ9YGAsbj17fSl7aWYodCBpbnN0YW5jZW9mIGUpcmV0dXJuIHQ7dHlwZW9mIHQ9PWBudW1iZXJgJiYodD1Udih0KSksdGhpcy5vcmlnaW5hbElucHV0PXQ7bGV0IHI9RHYodCk7dGhpcy5vcmlnaW5hbElucHV0PXQsdGhpcy5yPXIucix0aGlzLmc9ci5nLHRoaXMuYj1yLmIsdGhpcy5hPXIuYSx0aGlzLnJvdW5kQT1NYXRoLnJvdW5kKDEwMCp0aGlzLmEpLzEwMCx0aGlzLmZvcm1hdD1uLmZvcm1hdD8/ci5mb3JtYXQsdGhpcy5ncmFkaWVudFR5cGU9bi5ncmFkaWVudFR5cGUsdGhpcy5yPDEmJih0aGlzLnI9TWF0aC5yb3VuZCh0aGlzLnIpKSx0aGlzLmc8MSYmKHRoaXMuZz1NYXRoLnJvdW5kKHRoaXMuZykpLHRoaXMuYjwxJiYodGhpcy5iPU1hdGgucm91bmQodGhpcy5iKSksdGhpcy5pc1ZhbGlkPXIub2t9aXNEYXJrKCl7cmV0dXJuIHRoaXMuZ2V0QnJpZ2h0bmVzcygpPDEyOH1pc0xpZ2h0KCl7cmV0dXJuIXRoaXMuaXNEYXJrKCl9Z2V0QnJpZ2h0bmVzcygpe2xldCBlPXRoaXMudG9SZ2IoKTtyZXR1cm4oZS5yKjI5OStlLmcqNTg3K2UuYioxMTQpLzFlM31nZXRMdW1pbmFuY2UoKXtsZXQgZT10aGlzLnRvUmdiKCksdCxuLHIsaT1lLnIvMjU1LGE9ZS5nLzI1NSxvPWUuYi8yNTU7cmV0dXJuIHQ9aTw9LjAzOTI4P2kvMTIuOTI6KChpKy4wNTUpLzEuMDU1KSoqMi40LG49YTw9LjAzOTI4P2EvMTIuOTI6KChhKy4wNTUpLzEuMDU1KSoqMi40LHI9bzw9LjAzOTI4P28vMTIuOTI6KChvKy4wNTUpLzEuMDU1KSoqMi40LC4yMTI2KnQrLjcxNTIqbisuMDcyMipyfWdldEFscGhhKCl7cmV0dXJuIHRoaXMuYX1zZXRBbHBoYShlKXtyZXR1cm4gdGhpcy5hPWx2KGUpLHRoaXMucm91bmRBPU1hdGgucm91bmQoMTAwKnRoaXMuYSkvMTAwLHRoaXN9aXNNb25vY2hyb21lKCl7bGV0e3M6ZX09dGhpcy50b0hzbCgpO3JldHVybiBlPT09MH10b0hzdigpe2xldCBlPWd2KHRoaXMucix0aGlzLmcsdGhpcy5iKTtyZXR1cm57aDplLmgqMzYwLHM6ZS5zLHY6ZS52LGE6dGhpcy5hfX10b0hzdlN0cmluZygpe2xldCBlPWd2KHRoaXMucix0aGlzLmcsdGhpcy5iKSx0PU1hdGgucm91bmQoZS5oKjM2MCksbj1NYXRoLnJvdW5kKGUucyoxMDApLHI9TWF0aC5yb3VuZChlLnYqMTAwKTtyZXR1cm4gdGhpcy5hPT09MT9gaHN2KCR7dH0sICR7bn0lLCAke3J9JSlgOmBoc3ZhKCR7dH0sICR7bn0lLCAke3J9JSwgJHt0aGlzLnJvdW5kQX0pYH10b0hzbCgpe2xldCBlPXB2KHRoaXMucix0aGlzLmcsdGhpcy5iKTtyZXR1cm57aDplLmgqMzYwLHM6ZS5zLGw6ZS5sLGE6dGhpcy5hfX10b0hzbFN0cmluZygpe2xldCBlPXB2KHRoaXMucix0aGlzLmcsdGhpcy5iKSx0PU1hdGgucm91bmQoZS5oKjM2MCksbj1NYXRoLnJvdW5kKGUucyoxMDApLHI9TWF0aC5yb3VuZChlLmwqMTAwKTtyZXR1cm4gdGhpcy5hPT09MT9gaHNsKCR7dH0sICR7bn0lLCAke3J9JSlgOmBoc2xhKCR7dH0sICR7bn0lLCAke3J9JSwgJHt0aGlzLnJvdW5kQX0pYH10b0hleChlPSExKXtyZXR1cm4gdnYodGhpcy5yLHRoaXMuZyx0aGlzLmIsZSl9dG9IZXhTdHJpbmcoZT0hMSl7cmV0dXJuYCNgK3RoaXMudG9IZXgoZSl9dG9IZXg4KGU9ITEpe3JldHVybiB5dih0aGlzLnIsdGhpcy5nLHRoaXMuYix0aGlzLmEsZSl9dG9IZXg4U3RyaW5nKGU9ITEpe3JldHVybmAjYCt0aGlzLnRvSGV4OChlKX10b0hleFNob3J0U3RyaW5nKGU9ITEpe3JldHVybiB0aGlzLmE9PT0xP3RoaXMudG9IZXhTdHJpbmcoZSk6dGhpcy50b0hleDhTdHJpbmcoZSl9dG9SZ2IoKXtyZXR1cm57cjpNYXRoLnJvdW5kKHRoaXMuciksZzpNYXRoLnJvdW5kKHRoaXMuZyksYjpNYXRoLnJvdW5kKHRoaXMuYiksYTp0aGlzLmF9fXRvUmdiU3RyaW5nKCl7bGV0IGU9TWF0aC5yb3VuZCh0aGlzLnIpLHQ9TWF0aC5yb3VuZCh0aGlzLmcpLG49TWF0aC5yb3VuZCh0aGlzLmIpO3JldHVybiB0aGlzLmE9PT0xP2ByZ2IoJHtlfSwgJHt0fSwgJHtufSlgOmByZ2JhKCR7ZX0sICR7dH0sICR7bn0sICR7dGhpcy5yb3VuZEF9KWB9dG9QZXJjZW50YWdlUmdiKCl7bGV0IGU9ZT0+YCR7TWF0aC5yb3VuZChaKGUsMjU1KSoxMDApfSVgO3JldHVybntyOmUodGhpcy5yKSxnOmUodGhpcy5nKSxiOmUodGhpcy5iKSxhOnRoaXMuYX19dG9QZXJjZW50YWdlUmdiU3RyaW5nKCl7bGV0IGU9ZT0+TWF0aC5yb3VuZChaKGUsMjU1KSoxMDApO3JldHVybiB0aGlzLmE9PT0xP2ByZ2IoJHtlKHRoaXMucil9JSwgJHtlKHRoaXMuZyl9JSwgJHtlKHRoaXMuYil9JSlgOmByZ2JhKCR7ZSh0aGlzLnIpfSUsICR7ZSh0aGlzLmcpfSUsICR7ZSh0aGlzLmIpfSUsICR7dGhpcy5yb3VuZEF9KWB9dG9DbXlrKCl7cmV0dXJuey4uLnh2KHRoaXMucix0aGlzLmcsdGhpcy5iKX19dG9DbXlrU3RyaW5nKCl7bGV0e2M6ZSxtOnQseTpuLGs6cn09eHYodGhpcy5yLHRoaXMuZyx0aGlzLmIpO3JldHVybmBjbXlrKCR7ZX0sICR7dH0sICR7bn0sICR7cn0pYH10b05hbWUoKXtpZih0aGlzLmE9PT0wKXJldHVybmB0cmFuc3BhcmVudGA7aWYodGhpcy5hPDEpcmV0dXJuITE7bGV0IGU9YCNgK3Z2KHRoaXMucix0aGlzLmcsdGhpcy5iLCExKTtmb3IobGV0W3Qsbl1vZiBPYmplY3QuZW50cmllcyhFdikpaWYoZT09PW4pcmV0dXJuIHQ7cmV0dXJuITF9dG9TdHJpbmcoZSl7bGV0IHQ9ISFlO2U/Pz10aGlzLmZvcm1hdDtsZXQgbj0hMSxyPXRoaXMuYTwxJiZ0aGlzLmE+PTA7cmV0dXJuIXQmJnImJihlLnN0YXJ0c1dpdGgoYGhleGApfHxlPT09YG5hbWVgKT9lPT09YG5hbWVgJiZ0aGlzLmE9PT0wP3RoaXMudG9OYW1lKCk6dGhpcy50b1JnYlN0cmluZygpOihlPT09YHJnYmAmJihuPXRoaXMudG9SZ2JTdHJpbmcoKSksZT09PWBwcmdiYCYmKG49dGhpcy50b1BlcmNlbnRhZ2VSZ2JTdHJpbmcoKSksKGU9PT1gaGV4YHx8ZT09PWBoZXg2YCkmJihuPXRoaXMudG9IZXhTdHJpbmcoKSksZT09PWBoZXgzYCYmKG49dGhpcy50b0hleFN0cmluZyghMCkpLGU9PT1gaGV4NGAmJihuPXRoaXMudG9IZXg4U3RyaW5nKCEwKSksZT09PWBoZXg4YCYmKG49dGhpcy50b0hleDhTdHJpbmcoKSksZT09PWBuYW1lYCYmKG49dGhpcy50b05hbWUoKSksZT09PWBoc2xgJiYobj10aGlzLnRvSHNsU3RyaW5nKCkpLGU9PT1gaHN2YCYmKG49dGhpcy50b0hzdlN0cmluZygpKSxlPT09YGNteWtgJiYobj10aGlzLnRvQ215a1N0cmluZygpKSxufHx0aGlzLnRvSGV4U3RyaW5nKCkpfXRvTnVtYmVyKCl7cmV0dXJuKE1hdGgucm91bmQodGhpcy5yKTw8MTYpKyhNYXRoLnJvdW5kKHRoaXMuZyk8PDgpK01hdGgucm91bmQodGhpcy5iKX1jbG9uZSgpe3JldHVybiBuZXcgZSh0aGlzLnRvU3RyaW5nKCkpfWxpZ2h0ZW4odD0xMCl7bGV0IG49dGhpcy50b0hzbCgpO3JldHVybiBuLmwrPXQvMTAwLG4ubD1vdihuLmwpLG5ldyBlKG4pfWJyaWdodGVuKHQ9MTApe2xldCBuPXRoaXMudG9SZ2IoKTtyZXR1cm4gbi5yPU1hdGgubWF4KDAsTWF0aC5taW4oMjU1LG4uci1NYXRoLnJvdW5kKDI1NSotKHQvMTAwKSkpKSxuLmc9TWF0aC5tYXgoMCxNYXRoLm1pbigyNTUsbi5nLU1hdGgucm91bmQoMjU1Ki0odC8xMDApKSkpLG4uYj1NYXRoLm1heCgwLE1hdGgubWluKDI1NSxuLmItTWF0aC5yb3VuZCgyNTUqLSh0LzEwMCkpKSksbmV3IGUobil9ZGFya2VuKHQ9MTApe2xldCBuPXRoaXMudG9Ic2woKTtyZXR1cm4gbi5sLT10LzEwMCxuLmw9b3Yobi5sKSxuZXcgZShuKX10aW50KGU9MTApe3JldHVybiB0aGlzLm1peChgd2hpdGVgLGUpfXNoYWRlKGU9MTApe3JldHVybiB0aGlzLm1peChgYmxhY2tgLGUpfWRlc2F0dXJhdGUodD0xMCl7bGV0IG49dGhpcy50b0hzbCgpO3JldHVybiBuLnMtPXQvMTAwLG4ucz1vdihuLnMpLG5ldyBlKG4pfXNhdHVyYXRlKHQ9MTApe2xldCBuPXRoaXMudG9Ic2woKTtyZXR1cm4gbi5zKz10LzEwMCxuLnM9b3Yobi5zKSxuZXcgZShuKX1ncmV5c2NhbGUoKXtyZXR1cm4gdGhpcy5kZXNhdHVyYXRlKDEwMCl9c3Bpbih0KXtsZXQgbj10aGlzLnRvSHNsKCkscj0obi5oK3QpJTM2MDtyZXR1cm4gbi5oPXI8MD8zNjArcjpyLG5ldyBlKG4pfW1peCh0LG49NTApe2xldCByPXRoaXMudG9SZ2IoKSxpPW5ldyBlKHQpLnRvUmdiKCksYT1uLzEwMDtyZXR1cm4gbmV3IGUoe3I6KGkuci1yLnIpKmErci5yLGc6KGkuZy1yLmcpKmErci5nLGI6KGkuYi1yLmIpKmErci5iLGE6KGkuYS1yLmEpKmErci5hfSl9YW5hbG9nb3VzKHQ9NixuPTMwKXtsZXQgcj10aGlzLnRvSHNsKCksaT0zNjAvbixhPVt0aGlzXTtmb3Ioci5oPShyLmgtKGkqdD4+MSkrNzIwKSUzNjA7LS10OylyLmg9KHIuaCtpKSUzNjAsYS5wdXNoKG5ldyBlKHIpKTtyZXR1cm4gYX1jb21wbGVtZW50KCl7bGV0IHQ9dGhpcy50b0hzbCgpO3JldHVybiB0Lmg9KHQuaCsxODApJTM2MCxuZXcgZSh0KX1tb25vY2hyb21hdGljKHQ9Nil7bGV0IG49dGhpcy50b0hzdigpLHtoOnJ9PW4se3M6aX09bix7djphfT1uLG89W10scz0xL3Q7Zm9yKDt0LS07KW8ucHVzaChuZXcgZSh7aDpyLHM6aSx2OmF9KSksYT0oYStzKSUxO3JldHVybiBvfXNwbGl0Y29tcGxlbWVudCgpe2xldCB0PXRoaXMudG9Ic2woKSx7aDpufT10O3JldHVyblt0aGlzLG5ldyBlKHtoOihuKzcyKSUzNjAsczp0LnMsbDp0Lmx9KSxuZXcgZSh7aDoobisyMTYpJTM2MCxzOnQucyxsOnQubH0pXX1vbkJhY2tncm91bmQodCl7bGV0IG49dGhpcy50b1JnYigpLHI9bmV3IGUodCkudG9SZ2IoKSxpPW4uYStyLmEqKDEtbi5hKTtyZXR1cm4gbmV3IGUoe3I6KG4ucipuLmErci5yKnIuYSooMS1uLmEpKS9pLGc6KG4uZypuLmErci5nKnIuYSooMS1uLmEpKS9pLGI6KG4uYipuLmErci5iKnIuYSooMS1uLmEpKS9pLGE6aX0pfXRyaWFkKCl7cmV0dXJuIHRoaXMucG9seWFkKDMpfXRldHJhZCgpe3JldHVybiB0aGlzLnBvbHlhZCg0KX1wb2x5YWQodCl7bGV0IG49dGhpcy50b0hzbCgpLHtoOnJ9PW4saT1bdGhpc10sYT0zNjAvdDtmb3IobGV0IG89MTtvPHQ7bysrKWkucHVzaChuZXcgZSh7aDoocitvKmEpJTM2MCxzOm4ucyxsOm4ubH0pKTtyZXR1cm4gaX1lcXVhbHModCl7bGV0IG49bmV3IGUodCk7cmV0dXJuIHRoaXMuZm9ybWF0PT09YGNteWtgfHxuLmZvcm1hdD09PWBjbXlrYD90aGlzLnRvQ215a1N0cmluZygpPT09bi50b0NteWtTdHJpbmcoKTp0aGlzLnRvUmdiU3RyaW5nKCk9PT1uLnRvUmdiU3RyaW5nKCl9fTtmdW5jdGlvbiBGdihlLHQpe2xldCBuPW5ldyBQdihlKSxyPW5ldyBQdih0KTtyZXR1cm4oTWF0aC5tYXgobi5nZXRMdW1pbmFuY2UoKSxyLmdldEx1bWluYW5jZSgpKSsuMDUpLyhNYXRoLm1pbihuLmdldEx1bWluYW5jZSgpLHIuZ2V0THVtaW5hbmNlKCkpKy4wNSl9dmFyIEl2PS4yOTksTHY9LjU4NyxSdj0uMTE0LHp2PTE4MCxCdj0tMjAsVnY9LS4yNSxIdj0uMixVdj0tNSxXdj0uMDMsR3Y9LjUsS3Y9NSxxdj0oZSx0KT0+bmV3IFB2KGUpLmRhcmtlbih0KS50b0hleFN0cmluZygpLEp2PWU9PntsZXQgdD1uZXcgUHYoZSkudG9SZ2IoKTtyZXR1cm5gJHt0LnJ9LCAke3QuZ30sICR7dC5ifWB9LFl2PWU9Pi9eI1swLTlBLUZdezZ9JC9pLnRlc3QoZSksWHY9ZT0+e2xldHtyOnQsZzpuLGI6cn09bmV3IFB2KGUpLnRvUmdiKCk7cmV0dXJuIE1hdGguc3FydCh0KnQqSXYrbipuKkx2K3IqcipSdik+enZ9LFp2PWU9PntsZXQgdD1uZXcgUHYoZSkse3M6bixsOnJ9PXQudG9Ic2woKTtyZXR1cm4gdC5zcGluKEJ2KS5kZXNhdHVyYXRlKG4qVnYpLmxpZ2h0ZW4ocipIdikudG9IZXhTdHJpbmcoKX0sUXY9KGUsdD1Hdik9PntsZXQgbj1uZXcgUHYoZSkse3M6cixsOml9PW4udG9Ic2woKTtyZXR1cm4gbi5zcGluKFV2KS5zYXR1cmF0ZShyKld2KS5kYXJrZW4oaSp0KS50b0hleFN0cmluZygpfSwkdj1lPT57bGV0e2NvbG9yOnQsY29sb3IyOm4sY29sb3JHcmFkaWVudDpyfT1lO3JldHVybiByP24/e2Zyb206dCx0bzpufTpYdih0KT97ZnJvbTp0LHRvOlF2KHQpfTp7ZnJvbTpadih0KSx0bzp0fTp7ZnJvbTp0LHRvOnR9fSxleT1lPT5YdihlKT9hdi5zbGF0ZTkwMDphdi53aGl0ZSx0eT1lPT5YdihlKT8uMTouMixueT1lPT57aWYoWHYoZSkpe2xldCB0PW5ldyBQdihlKS5nZXRMdW1pbmFuY2UoKTtyZXR1cm4gdD4uOD9xdihlLCgxMCp0KSoqdCk6ZX1yZXR1cm4gZX0scnk9KGUsdCk9PntsZXQgbj10Py5iYWNrZ3JvdW5kQ29sb3I/P2Uscj0wLGk9bmV3IFB2KGUpLGE9RnYobixpKSxvPXQ/LmZvcmNlTGlnaHRCZz8/bmV3IFB2KG4pLmlzTGlnaHQoKTtmb3IoO2E8My43NSYmcjwyMDspaT1vP2kuZGFya2VuKDUpOmkubGlnaHRlbig1KSxhPUZ2KG4saSkscisrO3JldHVybiBpLnRvSGV4U3RyaW5nKCl9LGl5PShlLHQpPT57bGV0IG49cnkoZSx7YmFja2dyb3VuZENvbG9yOmF2LndoaXRlfSkscj1yeShlKSxpPW5ldyBQdihlKS5pc0xpZ2h0KCksYT1uZXcgUHYodCkuaXNMaWdodCgpO3JldHVybiBpJiZhP3I9cnkodCk6IWkmJiFhP3I9cnkoZSk6aSYmIWE/cj1yeSh0LHtmb3JjZUxpZ2h0Qmc6ITB9KTohaSYmYSYmKHI9cnkoZSx7Zm9yY2VMaWdodEJnOiExfSkpLHtwcmltYXJ5Om4sc2Vjb25kYXJ5OnJ9fSxRPShlLHQsbik9PntlLmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSh0LG4pfSxheT0oZSx0KT0+e2xldHtjb2xvcjpufT10LHI9JHYodCksaT1yLmZyb209PT1gI2ZmZmZmZmAmJnIuZnJvbT09PXIudG8/e2Zyb206YXYuc2xhdGUzMDAsdG86YXYuc2xhdGUzMDB9OnIsYT1leShuKTtRKGUsYC0tY29sb3ItcHJpbWFyeWAsbiksUShlLGAtLWNvbG9yLXByaW1hcnktY29udGVudGAsYSksUShlLGAtLWNvbG9yLXByaW1hcnktY29udGVudC1yZ2JgLEp2KGEpKSxRKGUsYC0tY29sb3ItcHJpbWFyeS1ncmFkaWVudC1mcm9tYCxyLmZyb20pLFEoZSxgLS1jb2xvci1wcmltYXJ5LWdyYWRpZW50LXRvYCxyLnRvKSxRKGUsYC0tY29sb3ItcHJpbWFyeS1ncmFkaWVudC1idXR0b24tZnJvbWAsaS5mcm9tKSxRKGUsYC0tY29sb3ItcHJpbWFyeS1ncmFkaWVudC1idXR0b24tdG9gLGkudG8pLFEoZSxgLS1jb2xvci1wcmltYXJ5LWdyYWRpZW50LWhvdmVyLWZyb21gLHF2KHIuZnJvbSxLdikpLFEoZSxgLS1jb2xvci1wcmltYXJ5LWdyYWRpZW50LWhvdmVyLXRvYCxxdihyLnRvLEt2KSk7bGV0IG89bnkobik7UShlLGAtLWNvbG9yLXByaW1hcnktYnV0dG9uYCxvKSxRKGUsYC0tY29sb3ItcHJpbWFyeS1idXR0b24taG92ZXJgLHF2KG8sMTApKSxRKGUsYC0tY29sb3ItcHJpbWFyeS1idXR0b24tY29udGVudGAsYSksUShlLGAtLW9wYWNpdHktcHJpbWFyeS1jb250ZW50YCxTdHJpbmcodHkobikpKTtsZXQgcz1peShyLmZyb20sci50byk7UShlLGAtLWNvbG9yLXByaW1hcnktZm9jdXNgLHMucHJpbWFyeSksUShlLGAtLWNvbG9yLXNlY29uZGFyeS1mb2N1c2Ascy5zZWNvbmRhcnkpfSxveT0oKCk9PntsZXR7c3Vic2NyaWJlOmUsc2V0OnR9PU8oe2NvbG9yOmF2LnNtYXJ0c3VwcEJsdWUsY29sb3IyOm51bGwsY29sb3JHcmFkaWVudDohMH0pO3JldHVybntzdWJzY3JpYmU6ZSxzZXRUaGVtZUNvbG9yOmU9PntsZXR7Y29sb3I6bixjb2xvcjI6cixjb2xvckdyYWRpZW50Oml9PWU7aWYoIVl2KG4pKXtIKGBQcm92aWRlZCBjb2xvciAnJHtufScgaXMgbm90IHZhbGlkLiBEZWZhdWx0IGNvbG9yIHdpbGwgYmUgdXNlZCBpbnN0ZWFkLmApO3JldHVybn1lbHNlIGlmKGkmJnImJiFZdihyKSl7SChgUHJvdmlkZWQgY29sb3IgJyR7cn0nIGlzIG5vdCB2YWxpZC4gRGVmYXVsdCBjb2xvciB3aWxsIGJlIHVzZWQgaW5zdGVhZC5gKTtyZXR1cm59dCh7Y29sb3I6bixjb2xvcjI6cixjb2xvckdyYWRpZW50Oml9KX19fSkoKSxzeT0yNCxjeT0xMixseT03Mix1eT0zODAsZHk9NjcyLGZ5PTU2MCxweT04NDAsbXk9ZT0+YCR7ZX1weGAsaHk9ZT0+e2lmKGUpcmV0dXJuIEx1KGUpP3BhcnNlSW50KGUsMTApOmV9LGd5PShlLHQpPT57bGV0e3dpZGdldEJsb2NraW5nT3B0aW9uczpufT1WLmdldE9wdGlvbnMoKTtyZXR1cm4gZXx8bj8uaGVhZGxlc3NNb2RlP3t3aWR0aDpgMTAwJWAsaGVpZ2h0OmAxMDAlYH06dD97d2lkdGg6ZnksaGVpZ2h0OnB5fTp7d2lkdGg6dXksaGVpZ2h0OmR5fX0sX3k9ZT0+e2xldHt3aWRnZXRCbG9ja2luZ09wdGlvbnM6dH09Vi5nZXRPcHRpb25zKCk7ZS5zdHlsZS5ib3JkZXJSYWRpdXM9bXkoMjApLHQ/LmhlYWRsZXNzTW9kZT9lLnN0eWxlLmJveFNoYWRvdz1gbm9uZWA6dD8ubGltaXRTaGFkb3c/ZS5zdHlsZS5ib3hTaGFkb3c9YHJnYmEoMCwgMCwgMCwgMC4yNSkgMHB4IDVweCAxMnB4YDplLnN0eWxlLmJveFNoYWRvdz1gcmdiYSgwLCAwLCAwLCAwLjE2KSAwcHggNXB4IDQwcHhgfSx2eT0oKT0+e2xldHtvZmZzZXRZOmV9PVYuZ2V0T3B0aW9ucygpO3JldHVybiBoeShlKT8/c3l9LHl5PSgpPT57bGV0e29mZnNldFg6ZX09Vi5nZXRPcHRpb25zKCk7cmV0dXJuIGh5KGUpPz9jeX0sYnk9ZT0+e2xldHt3aWRnZXRCbG9ja2luZ09wdGlvbnM6dH09Vi5nZXRPcHRpb25zKCk7cmV0dXJuIGV8fHQ/LmhlYWRsZXNzTW9kZT8wOnN5fSx4eT1lPT57bGV0e3dpZGdldEJsb2NraW5nT3B0aW9uczp0fT1WLmdldE9wdGlvbnMoKTtyZXR1cm4gZXx8dD8uaGVhZGxlc3NNb2RlPzA6Y3l9LFN5PSgpPT57bGV0e3Bvc2l0aW9uOmV9PVYuZ2V0T3B0aW9ucygpO3JldHVybiBlPT09YGZpeGVkYH0sQ3k9ZT0+e1N5KCkmJihlLnN0eWxlLnBvc2l0aW9uPWBmaXhlZGApfSx3eT0oZSx0KT0+e1N5KCkmJihlLnN0eWxlLmJvdHRvbT1teSh0KSl9LFR5PShlLHQpPT57aWYoU3koKSl7bGV0e29yaWVudGF0aW9uOm59PVYuZ2V0T3B0aW9ucygpO249PT1gcmlnaHRgPyhlLnN0eWxlLmxlZnQ9YGluaXRpYWxgLGUuc3R5bGUucmlnaHQ9bXkodCkpOihlLnN0eWxlLmxlZnQ9bXkodCksZS5zdHlsZS5yaWdodD1gaW5pdGlhbGApfX0sRXk9ZT0+e2xldHt6SW5kZXg6dH09Vi5nZXRPcHRpb25zKCk7ZS5zdHlsZS56SW5kZXg9U3RyaW5nKHQ/P2BhdXRvYCl9LER5PWU9PntsZXQgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KGBpZnJhbWVgKTtyZXR1cm4gdC5zdHlsZS5wb3NpdGlvbj1gYWJzb2x1dGVgLHQuc3R5bGUud2lkdGg9YDEwMCVgLHQuc3R5bGUuaGVpZ2h0PWAxMDAlYCx0LnN0eWxlLmJvcmRlcj1gbm9uZWAsdC5zdHlsZS5kaXNwbGF5PWBibG9ja2AsdC5zdHlsZS50ZXh0QWxpZ249YGxlZnRgLHQuc3R5bGUubWFyZ2luPWAwYCx0LnN0eWxlLnBhZGRpbmc9YDBgLHQuc3R5bGUudG9wPWAwYCx0LnN0eWxlLmxlZnQ9YDBgLHQuc3R5bGUub3BhY2l0eT1gMWAsZSYmZSh0KSx0LmdldEF0dHJpYnV0ZShgc3R5bGVgKT8/YGB9LE95PWU9PntDeShlKSx3eShlLHZ5KCkpLFR5KGUseXkoKSksRXkoZSl9LGt5PShlLHQpPT57Q3koZSksd3koZSxieSh0KSksVHkoZSx4eSh0KSksRXkoZSksdHx8X3koZSl9LEF5PWU9PntDeShlKSx3eShlLHZ5KCkrbHkpLFR5KGUseXkoKSksRXkoZSl9LGp5PWU9PntlLnN0eWxlLnBvc2l0aW9uPWBmaXhlZGAsZS5zdHlsZS53aWR0aD1gMTAwJWAsZS5zdHlsZS5oZWlnaHQ9YDEwMCVgLHd5KGUsMCksVHkoZSwwKSxFeShlKX0sTXk9ZT0+e095KGUpfSxOeT0oZSx0KT0+e2t5KGUsdCl9LFB5PWU9PntBeShlKX0sRnk9ZT0+e0F5KGUpfSxJeT1lPT57ankoZSl9LEx5PU8oMzAwKSxSeT1PKDE2Niksenk9TyghMSksQnk9Tyh2b2lkIDApLFZ5PWsoW3NzLEJ5XSwoW2UsdF0pPT57bGV0e2J1dHRvblN0eWxlOm59PVYuZ2V0T3B0aW9ucygpO3JldHVybiB0P3Q9PT1gYnViYmxlYDplfHxuPT09YGJ1YmJsZWB9KSxIeT1rKFtWeSxMeV0sKFtlLHRdKT0+ZT81Njp0KSxVeT1PKHZvaWQgMCksV3k9ayhbY3MsVXldLChbZSx0XSk9PmU/ITA6KHQ/P1YuZ2V0T3B0aW9ucygpLmhlYWRlclN0eWxlKT09PWBjb21wYWN0YCksR3k9ayhbV3ldLChbZV0pPT5lPzc2OjExNCksS3k9TygpLHF5PWsoW0t5XSwoW2VdKT0+ZT09PXZvaWQgMD96byhVLklzTWVzc2VuZ2VyRnJhbWVFeHBhbmRlZCk9PT1gdHJ1ZWA6ZSksSnk9ZT0+e0JvKHtuYW1lOlUuSXNNZXNzZW5nZXJGcmFtZUV4cGFuZGVkLHZhbHVlOmUudG9TdHJpbmcoKX0pLEt5LnNldChlKX0sJD1mdW5jdGlvbihlKXtyZXR1cm4gZS5OYW1lPWBuYW1lYCxlLkdyb3VwPWBncm91cGAsZS5FbWFpbD1gZW1haWxgLGUuUGhvbmU9YHBob25lYCxlLlZhcmlhYmxlcz1gdmFyaWFibGVzYCxlLkNvbnRhY3REYXRhPWBjb250YWN0RGF0YWAsZS5MYW5ndWFnZT1gbGFuZ3VhZ2VgLGUuQ2hhdENsb3NlPWBjaGF0OmNsb3NlYCxlLkNoYXRPcGVuPWBjaGF0Om9wZW5gLGUuQ2hhdFNob3c9YGNoYXQ6c2hvd2AsZS5DaGF0SGlkZT1gY2hhdDpoaWRlYCxlLlRoZW1lQ29sb3I9YHRoZW1lOmNvbG9yYCxlLkNoYXRNZXNzYWdlPWBjaGF0Om1lc3NhZ2VgLGUuQ2hhdFNlbmQ9YGNoYXQ6c2VuZGAsZS5IdG1sQXBwbHk9YGh0bWw6YXBwbHlgLGUuT249YG9uYCxlLkFuYWx5dGljc0NvbnNlbnQ9YGFuYWx5dGljc0NvbnNlbnRgLGUuTWFya2V0aW5nQ29uc2VudD1gbWFya2V0aW5nQ29uc2VudGAsZS5PcGVuUmF0ZUZvcm09YG9wZW5SYXRlRm9ybWAsZS5PcGVuQXV0aEZvcm09YG9wZW5BdXRoRm9ybWAsZS5XaWRnZXRTdGF0dXM9YHdpZGdldFN0YXR1c2AsZS5UcmFuc2xhdGlvbnM9YHRyYW5zbGF0aW9uc2AsZS5BdXRoRm9ybUZpZWxkcz1gYXV0aEZvcm1GaWVsZHNgLGUuQnV0dG9uU3R5bGU9YGJ1dHRvblN0eWxlYCxlLkhlYWRlclN0eWxlPWBoZWFkZXJTdHlsZWAsZS5QcmV2aWV3VHJhbnNsYXRlPWBwcmV2aWV3VHJhbnNsYXRlYCxlLkRpc2FibGVDb25uZWN0aW9uU3RhdHVzPWBkaXNhYmxlQ29ubmVjdGlvblN0YXR1c2AsZS5SZWxvYWRXaXRoTW9ja0RhdGE9YHJlbG9hZFdpdGhNb2NrRGF0YWAsZS5SZWxvYWQ9YHJlbG9hZGAsZS5Cb3RJZGVudGl0eVVwZGF0ZT1gYm90SWRlbnRpdHk6dXBkYXRlYCxlfSh7fSksWXk9ZnVuY3Rpb24oZSl7cmV0dXJuIGUuTWVzc2FnZVNlbnQ9YG1lc3NhZ2Vfc2VudGAsZS5NZXNzYWdlUmVjZWl2ZWQ9YG1lc3NhZ2VfcmVjZWl2ZWRgLGUuTWVzc2VuZ2VyQ2xvc2U9YG1lc3Nlbmdlcl9jbG9zZWAsZS5XaWRnZXRJbml0PWB3aWRnZXRfaW5pdGAsZX0oe30pLFh5PWU9Pnt6Lm9uKGBtZXNzYWdlU2VudGAsZSl9LFp5PWU9Pnt6Lm9uKGBtZXNzYWdlUmVjZWl2ZWRgLGUpfSxReT1lPT57ei5vbihgbWVzc2VuZ2VyQ2xvc2VgLGUpfSwkeT1lPT57ei5vbihgd2lkZ2V0SW5pdGAsZSl9LGViPXtbWXkuTWVzc2FnZVNlbnRdOlh5LFtZeS5NZXNzYWdlUmVjZWl2ZWRdOlp5LFtZeS5NZXNzZW5nZXJDbG9zZV06UXksW1l5LldpZGdldEluaXRdOiR5fSx0Yj0oZSx0KT0+e2xldCBuPWViW2VdO24mJm4odCl9LG5iPWBodHRwczovL2RvY3Muc21hcnRzdXBwLmNvbS9jaGF0LWJveC9gLHJiPWAke25ifWxvY2FsaXphdGlvbi8jc3VwcG9ydGVkLWxhbmd1YWdlc2AsaWI9YCR7bmJ9dmlzaXRvci1pZGVudGlmaWNhdGlvbi8jY3VzdG9tLXZpc2l0b3ItZGF0YWAsYWI9YCR7bmJ9dmlzaXRvci1pZGVudGlmaWNhdGlvbi8jY3VzdG9tLWNvbnRhY3QtZGF0YWAsb2I9YCR7bmJ9amF2YXNjcmlwdC1hcGkvZXZlbnRzL2Asc2I9YGh0dHBzOi8vd3d3LnNtYXJ0c3VwcC5jb20vaGVscC9jb29raWUtY29uc2VudC8jd2hlcmUtdG8tZW5hYmxlLWNvb2tpZS1jb25zZW50LWluLXNtYXJ0c3VwcGAsY2I9YGh0dHBzOi8vd3d3LnNtYXJ0c3VwcC5jb20vcHJpY2luZ2AsbGI9Tyh7fSksdWI9KGUsdCk9PntsYi51cGRhdGUobj0+KHsuLi5uLFtlXTp0fSkpfSxkYj1lPT5PYmplY3QudmFsdWVzKCQpLnNvbWUodD0+dD09PWUpLGZiPShlLHQpPT5MdSh0KT8hMDooSChgUGFyYW1ldGVyIG9mICcke2V9JyBBUEkgY29tbWFuZCBtdXN0IGJlIHR5cGUgc3RyaW5nLiBTZWUgJHtuYn0gZm9yIG1vcmUgaW5mb3JtYXRpb24uYCksITEpLHBiPShlLHQpPT5QdSh0KT8hMDooSChgUGFyYW1ldGVyIG9mICcke2V9JyBBUEkgY29tbWFuZCBtdXN0IGJlIHR5cGUgYm9vbGVhbi4gU2VlICR7bmJ9IGZvciBtb3JlIGluZm9ybWF0aW9uLmApLCExKSxtYj0oZSx0KT0+dHlwZW9mIHQ9PWBmdW5jdGlvbmA/ITA6KEgoYFBhcmFtZXRlciBvZiAnJHtlfScgQVBJIGNvbW1hbmQgbXVzdCBiZSB0eXBlIGZ1bmN0aW9uLiBTZWUgJHtuYn0gZm9yIG1vcmUgaW5mb3JtYXRpb24uYCksITEpLGhiPShlLHQpPT5JdSh0KT8hMDooSChgUGFyYW1ldGVyIG9mICcke2V9JyBBUEkgY29tbWFuZCBtdXN0IGJlIHR5cGUgb2JqZWN0LiBTZWUgJHtpYn0gZm9yIG1vcmUgaW5mb3JtYXRpb24uYCksITEpLGdiPShlLHQpPT5JdSh0KT8hMDooSChgUGFyYW1ldGVyIG9mICcke2V9JyBBUEkgY29tbWFuZCBtdXN0IGJlIHR5cGUgb2JqZWN0LiBTZWUgJHthYn0gZm9yIG1vcmUgaW5mb3JtYXRpb24uYCksITEpLF9iPShlLHQpPT5JdSh0KT8hMDooSChgUGFyYW1ldGVyIG9mICcke2V9JyBBUEkgY29tbWFuZCBtdXN0IGJlIHR5cGUgb2JqZWN0LmApLCExKSx2Yj0oZSx0KT0+IUl1KHQpfHwhKGBpZGBpbiB0KXx8IUx1KHQuaWQpPyhIKGBQYXJhbWV0ZXIgb2YgJyR7ZX0nIEFQSSBjb21tYW5kIG11c3QgYmUgdHlwZSBvYmplY3QgYW5kIGhhcyBhIHZhbGlkICdpZCcgcHJvcGVydHkuYCksITEpOmBuYW1lYGluIHQmJiFMdSh0Lm5hbWUpPyhIKGBQYXJhbWV0ZXIgb2YgJyR7ZX0nIEFQSSBjb21tYW5kIG11c3QgaGF2ZSBhIHZhbGlkICduYW1lJyBwcm9wZXJ0eS5gKSwhMSk6YGF2YXRhclVybGBpbiB0JiYhTHUodC5hdmF0YXJVcmwpPyhIKGBQYXJhbWV0ZXIgb2YgJyR7ZX0nIEFQSSBjb21tYW5kIG11c3QgaGF2ZSBhIHZhbGlkICdhdmF0YXJVcmwnIHByb3BlcnR5LmApLCExKTohMCx5Yj0oZSx0KT0+e2xldCBuPU9iamVjdC52YWx1ZXMoWXkpO3JldHVybiBuLmluY2x1ZGVzKHQpPyEwOihIKGBVbmtub3duIGV2ZW50OiAnJHt0fScuIEF2YWlsYWJsZSBldmVudCBuYW1lcyBhcmU6ICR7bi5qb2luKGAsIGApfS4gU2VlICR7b2J9IGZvciBtb3JlIGluZm9ybWF0aW9uLmApLCExKX0sYmI9ZT0+e0goYFVua25vd24gQVBJIGNvbW1hbmQ6ICcke2V9Jy4gU2VlICR7bmJ9IHRvIGNoZWNrIGF2YWlsYWJsZSBBUEkgY29tbWFuZHMuYCl9LHhiPSgpPT4hIVYuZ2V0T3B0aW9ucygpLmZlYXR1cmVzPy5hcGksU2I9KCk9PiEhVi5nZXRPcHRpb25zKCkuZmVhdHVyZXM/Lmdyb3VwcyxDYj0oKT0+Vi5nZXRPcHRpb25zKCkuaXNQcmV2aWV3TW9kZSx3Yj0oKT0+IXhiKCkmJiFDYigpPyhIKGBDaGF0IGJveCBBUEkgZmVhdHVyZSBpcyBub3QgZW5hYmxlZC4gU2VlICR7Y2J9IHRvIHVwZ3JhZGUgeW91ciBwYWNrYWdlLmApLCExKTohMCxUYj0oKT0+IXhiKCl8fCFTYigpPyhIKGBDaGF0IGJveCBHcm91cHMgZmVhdHVyZSBpcyBub3QgZW5hYmxlZC4gU2VlICR7Y2J9IHRvIHVwZ3JhZGUgeW91ciBwYWNrYWdlLmApLCExKTohMCxFYj0oKT0+e0hvKCl8fEgoYEVuYWJsZSBtYW5hZ2luZyBjb29raWUgY29uc2VudCBpbiB3aWRnZXQgc2V0dGluZ3MgdG8gYWxsb3cgdGhpcyBjb21tYW5kLiBTZWUgJHtzYn0gZm9yIG1vcmUgaW5mb3JtYXRpb24uYCl9LERiPSgpPT57bGV0IGU9KCk9PntVXyghMCksSV8oKX07aWYoIUEoQ18pKXtYbC5wdXNoKGUpO3JldHVybn1lKCl9LE9iPSgpPT57aWYod2IoKSl7aWYoIUEoQ18pKXtYbC5wdXNoKFdfKTtyZXR1cm59V18oKX19LGtiPSgpPT57d2IoKSYmSV8oKX0sQWI9KCk9Pnt3YigpJiZMXygpfSxqYj0oZSx0KT0+e2lmKHdiKCkmJmU9PT0kLkxhbmd1YWdlJiZmYihlLHQpKXtpZighSWwodCkpe0goYFByb3ZpZGVkIGxhbmd1YWdlICcke3R9JyBpcyBub3Qgc3VwcG9ydGVkLiBTZWUgJHtyYn0gdG8gY2hlY2sgc3VwcG9ydGVkIGxhbmd1YWdlcy5gKTtyZXR1cm59aWYoIUEoQ18pKXt1YihgbGFuZ2AsdCk7cmV0dXJufUdsKHQpfX0sTWI9KGUsdCk9PntsZXQgbixyPW51bGwsaT0hMDtpZih3YigpKXtpZih0eXBlb2YgdD09YHN0cmluZ2AmJmZiKGUsdCkpbj10O2Vsc2UgaWYoaGIoZSx0KSl7aWYobj10LmNvbG9yLHI9dC5jb2xvcjIsaT10LmNvbG9yR3JhZGllbnQsIXBiKGUsaSkpcmV0dXJufWVsc2UgcmV0dXJuO2lmKCFZdihuKSl7SChgUHJvdmlkZWQgY29sb3IgJyR7bn0nIGlzIG5vdCB2YWxpZC4gUGxlYXNlIHVzZSBoZXggY29sb3IgY29kZS5gKTtyZXR1cm59ZWxzZSBpZihpJiZyJiYhWXYocikpe0goYFByb3ZpZGVkIGNvbG9yICcke3J9JyBpcyBub3QgdmFsaWQuIERlZmF1bHQgY29sb3Igd2lsbCBiZSB1c2VkIGluc3RlYWQuYCk7cmV0dXJufW95LnNldFRoZW1lQ29sb3Ioe2NvbG9yOm4sY29sb3IyOnIsY29sb3JHcmFkaWVudDppfSl9fSxOYj0oZSx0KT0+e3diKCkmJmZiKGUsdCkmJm9fKHQpfSxQYj0oZSx0KT0+e3diKCkmJmZiKGUsdCkmJihvXyh0KSxkXygpKX0sRmI9KGUsdCxuKT0+e2ZiKGUsdCkmJnliKGUsdCkmJm1iKGUsbikmJnRiKHQsbil9LEliPShlLHQpPT57aGIoZSx0KSYmTXUudXBkYXRlVmlzaXRvclZhcmlhYmxlcyh6dSh0KSl9LExiPShlLHQpPT57ZSE9PSQuTmFtZSYmZSE9PSQuRW1haWwmJmUhPT0kLlBob25lJiZlIT09JC5Hcm91cHx8ZmIoZSx0KSYmTXUudXBkYXRlVmlzaXRvclByb3BlcnR5KGUsdCl9LFJiPShlLHQpPT57aWYoIVRiKCl8fCFmYihlLHQpKXJldHVybjtsZXQgbj1BKGlsKVt0XTtpZihBKENfKSYmIW4pe0goYEdyb3VwIHdpdGgga2V5ICcke3R9JyBkb2VzIG5vdCBleGlzdC4gUGxlYXNlIHByb3ZpZGUgY29ycmVjdCBncm91cCBrZXkgZnJvbSB5b3VyIGdyb3VwIHNldHRpbmdzLmApO3JldHVybn1MYihlLHQpfSx6Yj0oZSx0KT0+e2diKGUsdCkmJk11LnVwZGF0ZVZpc2l0b3JDb250YWN0RGF0YSh0KX0sQmI9KGUsdCk9PntwYihlLHQpJiYoRWIoKSx6LmVtaXQoYGFuYWx5dGljc0NvbnNlbnRDaGFuZ2VkYCwhIXQpKX0sVmI9KGUsdCk9PntwYihlLHQpJiYoRWIoKSx6LmVtaXQoYG1hcmtldGluZ0NvbnNlbnRDaGFuZ2VkYCwhIXQpKX0sSGI9KCk9PntZcChBKEJwKXx8YGApfSxVYj0oKT0+e0JjKEhjLkF1dGhGb3JtKX0sV2I9KGUsdCk9PntmYihlLHQpJiYodCE9PUsuQWNjb3VudFN0YXR1cy5PbmxpbmUmJnQhPT1LLkFjY291bnRTdGF0dXMuT2ZmbGluZXx8JHUuc2V0KHQpKX0sR2I9KGUsdCk9PntoYihlLHQpJiZxbCh0KX0sS2I9KGUsdCk9PntoYihlLHQpJiYoQShWaCl8fFZoLnNldChWLmdldE9wdGlvbnMoKSksVmgudXBkYXRlKGU9Pih7Li4uZSwuLi50fSkpKX0scWI9KGUsdCk9PntmYihlLHQpJiZCeS5zZXQodCl9LEpiPShlLHQpPT57aWYoZT09PSQuSGVhZGVyU3R5bGUmJmZiKGUsdCkpe2lmKHQhPT1gY29tcGFjdGAmJnQhPT1gc3RhbmRhcmRgKXtIKGBQcm92aWRlZCBoZWFkZXIgc3R5bGUgJyR7dH0nIGlzIG5vdCB2YWxpZC4gVXNlICdjb21wYWN0JyBvciAnc3RhbmRhcmQnLmApO3JldHVybn1VeS5zZXQodCl9fSxZYj0oKT0+e2xldCBlPSgpPT57fTtlPUhsLnN1YnNjcmliZSgoKT0+e0EoUnApLmZvckVhY2goZT0+e2xldCB0PWUuY29udGVudD8uZGF0YXx8YGA7dHlwZW9mIHQ9PWBzdHJpbmdgJiZ0Lm1hdGNoKC93aWRnZXRQcmV2aWV3XC4uKi8pJiYoZS5jb250ZW50LnRleHQ9QShXKSh0KSxKLnJlcGxhY2VNZXNzYWdlKGUpKX0pLGUoKX0pfSxYYj0oZSx0KT0+e3BiKGUsdCkmJklnLnNldCh0KX0sWmI9KGUsdCk9PntfYihlLHQpJiZxLnJlbG9hZENsaWVudCh0KX0sUWI9KGUsdCk9PntwYihlLHQpJiZxLnJlbG9hZENsaWVudCh2b2lkIDAsdCl9LCRiPShlLHQpPT57aWYoIXZiKGUsdCkpcmV0dXJuO2xldHtpZDpuLC4uLnJ9PXQ7JGwudXBkYXRlSWRlbnRpdHkobixyKX0sZXg9e3ZlcnNpb246YGUwN2MyMDhhMzhlNmY1MDg0YzhlYjQ2MGI5NThhNDJmNzc4YTU5NjVgLGV4ZWN1dGU6ZT0+e2xldCB0PWVbMF07aWYodHlwZW9mIHQ9PWBmdW5jdGlvbmApe3J4KHQpO3JldHVybn1pZighZGIodCkpe2JiKFN0cmluZyh0KSk7cmV0dXJufW54KHQsZVsxXSwuLi5lLnNsaWNlKDIpKX0sZXhlYzpmdW5jdGlvbiguLi5lKXt0aGlzLmV4ZWN1dGUoZSl9fSx0eD17WyQuQ2hhdE9wZW5dOkRiLFskLkNoYXRDbG9zZV06T2IsWyQuQ2hhdFNob3ddOmtiLFskLkNoYXRIaWRlXTpBYixbJC5DaGF0TWVzc2FnZV06TmIsWyQuQ2hhdFNlbmRdOlBiLFskLkxhbmd1YWdlXTpqYixbJC5UaGVtZUNvbG9yXTpNYixbJC5IZWFkZXJTdHlsZV06SmIsWyQuT25dOkZiLFskLlZhcmlhYmxlc106SWIsWyQuQ29udGFjdERhdGFdOnpiLFskLk5hbWVdOkxiLFskLkdyb3VwXTpSYixbJC5FbWFpbF06TGIsWyQuUGhvbmVdOkxiLFskLkFuYWx5dGljc0NvbnNlbnRdOkJiLFskLk1hcmtldGluZ0NvbnNlbnRdOlZiLFskLkh0bWxBcHBseV06bnVsbCxbJC5PcGVuUmF0ZUZvcm1dOkhiLFskLk9wZW5BdXRoRm9ybV06VWIsWyQuV2lkZ2V0U3RhdHVzXTpXYixbJC5UcmFuc2xhdGlvbnNdOkdiLFskLkF1dGhGb3JtRmllbGRzXTpLYixbJC5CdXR0b25TdHlsZV06cWIsWyQuUHJldmlld1RyYW5zbGF0ZV06WWIsWyQuRGlzYWJsZUNvbm5lY3Rpb25TdGF0dXNdOlhiLFskLlJlbG9hZFdpdGhNb2NrRGF0YV06WmIsWyQuUmVsb2FkXTpRYixbJC5Cb3RJZGVudGl0eVVwZGF0ZV06JGJ9LG54PShlLHQsLi4ubik9PntsZXQgcj10eFtlXTtpZihyPT09dm9pZCAwKXtiYihlKTtyZXR1cm59ciE9PW51bGwmJihyKGUsdCwuLi5uKSx2byhg8J+nmeKAjeKZgu+4j1tBUEldICR7ZX0ke3Q/YDpgOmBgfWAsdD8/YGApKX0scng9ZT0+e0EoQ18pP2UoKTpYbC5wdXNoKGUpfTt0eXBlb2Ygd2luZG93PGB1YCYmKCh3aW5kb3cuX19zdmVsdGU/Pz17fSkudj8/PW5ldyBTZXQpLmFkZChgNWApO3ZhciBpeD1lPT5lO2Z1bmN0aW9uIGF4KGUpe2xldCB0PWUtMTtyZXR1cm4gdCp0KnQrMX1mdW5jdGlvbiBveChlKXtsZXQgdD10eXBlb2YgZT09YHN0cmluZ2AmJmUubWF0Y2goL15ccyooLT9bXGQuXSspKFteXHNdKilccyokLyk7cmV0dXJuIHQ/W3BhcnNlRmxvYXQodFsxXSksdFsyXXx8YHB4YF06W2UsYHB4YF19ZnVuY3Rpb24gc3goZSx7ZGVsYXk6dD0wLGR1cmF0aW9uOm49NDAwLGVhc2luZzpyPWl4fT17fSl7bGV0IGk9K2dldENvbXB1dGVkU3R5bGUoZSkub3BhY2l0eTtyZXR1cm57ZGVsYXk6dCxkdXJhdGlvbjpuLGVhc2luZzpyLGNzczplPT5gb3BhY2l0eTogJHtlKml9YH19ZnVuY3Rpb24gY3goZSx7ZGVsYXk6dD0wLGR1cmF0aW9uOm49NDAwLGVhc2luZzpyPWF4LHg6aT0wLHk6YT0wLG9wYWNpdHk6bz0wfT17fSl7bGV0IHM9Z2V0Q29tcHV0ZWRTdHlsZShlKSxjPStzLm9wYWNpdHksbD1zLnRyYW5zZm9ybT09PWBub25lYD9gYDpzLnRyYW5zZm9ybSx1PWMqKDEtbyksW2QsZl09b3goaSksW3AsbV09b3goYSk7cmV0dXJue2RlbGF5OnQsZHVyYXRpb246bixlYXNpbmc6cixjc3M6KGUsdCk9PmAKCQkJdHJhbnNmb3JtOiAke2x9IHRyYW5zbGF0ZSgkeygxLWUpKmR9JHtmfSwgJHsoMS1lKSpwfSR7bX0pOwoJCQlvcGFjaXR5OiAke2MtdSp0fWB9fWZ1bmN0aW9uIGx4KGUse2RlbGF5OnQ9MCxkdXJhdGlvbjpuPTQwMCxlYXNpbmc6cj1heCxheGlzOmk9YHlgfT17fSl7bGV0IGE9Z2V0Q29tcHV0ZWRTdHlsZShlKSxvPSthLm9wYWNpdHkscz1pPT09YHlgP2BoZWlnaHRgOmB3aWR0aGAsYz1wYXJzZUZsb2F0KGFbc10pLGw9aT09PWB5YD9bYHRvcGAsYGJvdHRvbWBdOltgbGVmdGAsYHJpZ2h0YF0sdT1sLm1hcChlPT5gJHtlWzBdLnRvVXBwZXJDYXNlKCl9JHtlLnNsaWNlKDEpfWApLGQ9cGFyc2VGbG9hdChhW2BwYWRkaW5nJHt1WzBdfWBdKSxmPXBhcnNlRmxvYXQoYVtgcGFkZGluZyR7dVsxXX1gXSkscD1wYXJzZUZsb2F0KGFbYG1hcmdpbiR7dVswXX1gXSksbT1wYXJzZUZsb2F0KGFbYG1hcmdpbiR7dVsxXX1gXSksaD1wYXJzZUZsb2F0KGFbYGJvcmRlciR7dVswXX1XaWR0aGBdKSxnPXBhcnNlRmxvYXQoYVtgYm9yZGVyJHt1WzFdfVdpZHRoYF0pO3JldHVybntkZWxheTp0LGR1cmF0aW9uOm4sZWFzaW5nOnIsY3NzOmU9PmBvdmVyZmxvdzogaGlkZGVuO29wYWNpdHk6ICR7TWF0aC5taW4oZSoyMCwxKSpvfTske3N9OiAke2UqY31weDtwYWRkaW5nLSR7bFswXX06ICR7ZSpkfXB4O3BhZGRpbmctJHtsWzFdfTogJHtlKmZ9cHg7bWFyZ2luLSR7bFswXX06ICR7ZSpwfXB4O21hcmdpbi0ke2xbMV19OiAke2UqbX1weDtib3JkZXItJHtsWzBdfS13aWR0aDogJHtlKmh9cHg7Ym9yZGVyLSR7bFsxXX0td2lkdGg6ICR7ZSpnfXB4O21pbi0ke3N9OiAwYH19ZnVuY3Rpb24gdXgoZSx7ZGVsYXk6dD0wLGR1cmF0aW9uOm49NDAwLGVhc2luZzpyPWF4LHN0YXJ0Omk9MCxvcGFjaXR5OmE9MH09e30pe2xldCBvPWdldENvbXB1dGVkU3R5bGUoZSkscz0rby5vcGFjaXR5LGM9by50cmFuc2Zvcm09PT1gbm9uZWA/YGA6by50cmFuc2Zvcm0sbD0xLWksdT1zKigxLWEpO3JldHVybntkZWxheTp0LGR1cmF0aW9uOm4sZWFzaW5nOnIsY3NzOihlLHQpPT5gCgkJCXRyYW5zZm9ybTogJHtjfSBzY2FsZSgkezEtbCp0fSk7CgkJCW9wYWNpdHk6ICR7cy11KnR9CgkJYH19YXQoKTt2YXIgZHg9d2koYDxkaXY+PC9kaXY+YCk7ZnVuY3Rpb24gZngoZSx0KXtsdCh0LCEwKTtsZXQgbj1vbyh0LGBoZWlnaHRgLDMsMjApLHI9b28odCxgd2lkdGhgLDMsYDEwMCVgKSxpPW9vKHQsYGNvbG9yU2NoZW1lYCwzLGBncmF5YCksYT1vbyh0LGByb3VuZGVkU3R5bGVgLDMsYHJvdW5kZWQtZnVsbGApLG89Zm4oKCk9PmAke2EoKX0gYW5pbWF0ZS1wdWxzZWApO3ZhciBzPWR4KCk7bGV0IGM7cHIoZT0+e2JhKHMsMSxtYShbUihvKSxpKCk9PT1gZ3JheWAmJmBiZy1ncmF5LTIwMGAsaSgpPT09YGRhcmtHcmF5YCYmYGJnLWdyYXktMzAwYF0pKSxjPVNhKHMsYGAsYyxlKX0sWygpPT4oe2hlaWdodDpteShuKCkpLHdpZHRoOkZ1KHIoKSk/bXkocigpKTpyKCl9KV0pLGtpKGUscyksdXQoKX1mdW5jdGlvbiBweChlLHQpe2xldCBuPW9vKHQsYHNpemVgLDMsMjApO2Z4KGUse2NvbG9yU2NoZW1lOmBkYXJrR3JheWAsZ2V0IHdpZHRoKCl7cmV0dXJuIG4oKX0sZ2V0IGhlaWdodCgpe3JldHVybiBuKCl9fSl9dmFyIG14PUVpKGA8c3ZnPjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHN0cm9rZS13aWR0aD0iMiIgZD0iTTE4IDZMNiAxOE02IDZsMTIgMTIiPjwvcGF0aD48L3N2Zz5gKTtmdW5jdGlvbiBoeChlLHQpe2xldCBuPXJvKHQsW2AkJHNsb3RzYCxgJCRldmVudHNgLGAkJGxlZ2FjeWBdKTt2YXIgcj1teCgpO1ZhKHIsKCk9Pih7dmlld0JveDpgMCAwIDI0IDI0YCx3aWR0aDpgMS4yZW1gLGhlaWdodDpgMS4yZW1gLC4uLm59KSksa2koZSxyKX12YXIgZ3g9d2koYDxidXR0b24gdHlwZT0iYnV0dG9uIiB0YWJpbmRleD0iMCI+PGRpdj48IT48L2Rpdj48L2J1dHRvbj5gKTtmdW5jdGlvbiBfeChlLHQpe2x0KHQsITApO2xldCBuPW9vKHQsYGljb25PcmllbnRhdGlvbmAsMyxgcmlnaHRgKSxyPW9vKHQsYGljb25BbmltYXRpb25gLDMsYG5vbmVgKSxpPW9vKHQsYGljb25TY2FsZWAsMywhMSksYT1vbyh0LGBzaXplYCwzLGBtZGApLG89b28odCxgdmFyaWFudGAsMyxgZ2hvc3RgKSxzPW9vKHQsYGZvY3VzYCwzLGBwcmltYXJ5YCksYz1mbigoKT0+bigpPT09YHJpZ2h0YD8xOi0xKSxsPWZuKCgpPT5pKCk/MS40OjEuMiksdT1mbigoKT0+dC5pY29uKSxkPWU9PntlLnN0b3BQcm9wYWdhdGlvbigpLHQub25DbGljayYmdC5vbkNsaWNrKGUpfTt2YXIgZj1neCgpLHA9Vm4oZik7JGkoVm4ocCksKCk9PlIodSksKGUsdCk9Pnt0KGUse3dpZHRoOmAxZW1gLGhlaWdodDpgMWVtYH0pfSksWGUocCksWGUoZikscHIoZT0+e2JhKGYsMSxlLGBzdmVsdGUteXdvZm1sYCksZi5kaXNhYmxlZD10LmRpc2FibGVkLHphKGYsYGRhdGEtdGVzdGlkYCx0LnRlc3RJZCksemEoZixgYXJpYS1sYWJlbGAsdC5pY29uRGVzY3JpcHRpb24pLHphKGYsYGFyaWEtZGlzYWJsZWRgLHQuZGlzYWJsZWQpLGJhKHAsMSxtYShbYHctZnVsbCBoLWZ1bGwgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXJgLHIoKT09PWBzcGluYCYmYGFuaW1hdGUtc3BpbmBdKSksU2EocCxgdHJhbnNmb3JtOiBzY2FsZSgke1IobCl9KSBzY2FsZVgoJHtSKGMpfSk7YCl9LFsoKT0+bWEoW2BidG4gYnRuLSR7bygpfSBidG4tJHthKCl9YCwhIXQuZGlzYWJsZWQmJmBidG4tZGlzYWJsZWRgLGlzKCk/YGN1cnNvci1hdXRvYDpgY3Vyc29yLXBvaW50ZXJgLHMoKT09PWBwcmltYXJ5YCYmYGJ1dHRvbi1mb2N1c2AscygpPT09YHNlY29uZGFyeWAmJmBidXR0b24tZm9jdXMtc2Vjb25kYXJ5YF0pXSksZ2koYGNsaWNrYCxmLGQpLGtpKGUsZiksdXQoKX1faShbYGNsaWNrYF0pO2V4cG9ydHtkXyBhcyAkLGp0IGFzICRpLFNsIGFzICRuLGFvIGFzICRyLCRmIGFzICR0LCRfIGFzIEEsZ2kgYXMgQWksc2QgYXMgQW4sc3MgYXMgQXIsVGggYXMgQXQsS18gYXMgQixWbiBhcyBCaSxVdSBhcyBCbixqbyBhcyBCcixIcCBhcyBCdCxGeSBhcyBDLElpIGFzIENpLF9kIGFzIENuLGJzIGFzIENyLHpoIGFzIEN0LG95IGFzIEQsRWkgYXMgRGksbmQgYXMgRG4sX3MgYXMgRHIsTWggYXMgRHQsbXkgYXMgRSx3aSBhcyBFaSxlZCBhcyBFbixocyBhcyBFcixGaCBhcyBFdCxKXyBhcyBGLCRyIGFzIEZpLEt1IGFzIEZuLHpvIGFzIEZyLFpwIGFzIEZ0LE9fIGFzIEcsVG4gYXMgR2ksJGwgYXMgR24scG8gYXMgR3IsenAgYXMgR3QsTl8gYXMgSCxVbiBhcyBIaSxMdSBhcyBIbix5byBhcyBIcixNcCBhcyBIdCxYIGFzIEkscHIgYXMgSWksWXUgYXMgSW4sVm8gYXMgSXIsWXAgYXMgSXQsbV8gYXMgSixwbiBhcyBKaSxIbCBhcyBKbix6IGFzIEpyLFJwIGFzIEp0LGdfIGFzIEssQ24gYXMgS2ksWWwgYXMgS24sQiBhcyBLcixKIGFzIEt0LEdfIGFzIEwsb3IgYXMgTGkscXUgYXMgTG4sQm8gYXMgTHIsWHAgYXMgTHQscnYgYXMgTSxwaSBhcyBNaSxpZCBhcyBNbixhcyBhcyBNcixFaCBhcyBNdCxZXyBhcyBOLFIgYXMgTmksWnUgYXMgTm4saXMgYXMgTnIsaWggYXMgTnQsYXkgYXMgTyxEaSBhcyBPaSxsZCBhcyBPbixscyBhcyBPcixraCBhcyBPdCxXXyBhcyBQLFhyIGFzIFBpLEd1IGFzIFBuLEpvIGFzIFByLGFtIGFzIFB0LGlfIGFzIFEsUHQgYXMgUWksd2wgYXMgUW4scm8gYXMgUXIsT3AgYXMgUXQsVV8gYXMgUixjciBhcyBSaSxXdSBhcyBSbixVIGFzIFJyLFdwIGFzIFJ0LFB5IGFzIFMsamkgYXMgU2ksZ2QgYXMgU24seXMgYXMgU3IsYWcgYXMgU3QsZ3kgYXMgVCxPaSBhcyBUaSx1ZCBhcyBUbixmcyBhcyBUcixJaCBhcyBUdCxqXyBhcyBVLGpuIGFzIFVpLE11IGFzIFVuLFYgYXMgVXIsQnAgYXMgVXQsTV8gYXMgVixIbiBhcyBWaSxWdSBhcyBWbixIIGFzIFZyLFZwIGFzIFZ0LERfIGFzIFcsd24gYXMgV2kscSBhcyBXbix2byBhcyBXcixGcCBhcyBXdCxzXyBhcyBYLE10IGFzIFhpLFJsIGFzIFhuLHNvIGFzIFhyLElwIGFzIFh0LHBfIGFzIFksZm4gYXMgWWksVyBhcyBZbixjbyBhcyBZcixQcCBhcyBZdCxhXyBhcyBaLEF0IGFzIFppLENsIGFzIFpuLG9vIGFzIFpyLGtwIGFzIFp0LFJ5IGFzIF8sR2kgYXMgX2ksVGQgYXMgX24sTmMgYXMgX3IsdWcgYXMgX3Qsc3ggYXMgYSxsdCBhcyBhYSxWYSBhcyBhaSxCZiBhcyBhbixsbCBhcyBhcixVZyBhcyBhdCxOeSBhcyBiLFJpIGFzIGJpLHlkIGFzIGJuLENzIGFzIGJyLGlnIGFzIGJ0LGx4IGFzIGMsWGUgYXMgY2EsVGEgYXMgY2ksU2YgYXMgY24sUWMgYXMgY3IsVmcgYXMgY3QsSHkgYXMgZCxtYSBhcyBkaSxHZCBhcyBkbixXYyBhcyBkcixOZyBhcyBkdCxrIGFzIGVhLGVvIGFzIGVpLGVwIGFzIGVuLGJsIGFzIGVyLG9fIGFzIGV0LHp5IGFzIGYsdWEgYXMgZmksVmQgYXMgZm4sR2MgYXMgZnIsT2cgYXMgZnQsR3kgYXMgZyxaaSBhcyBnaSx3ZCBhcyBnbixCYyBhcyBncix5ZyBhcyBndCxWeSBhcyBoLFFpIGFzIGhpLEVkIGFzIGhuLHpjIGFzIGhyLFRnIGFzIGh0LGZ4IGFzIGksdXQgYXMgaWEscWEgYXMgaWksRmYgYXMgaW4sc2wgYXMgaXIsdF8gYXMgaXQsaXYgYXMgaixoaSBhcyBqaSxmZCBhcyBqbix1cyBhcyBqcixEaCBhcyBqdCxldiBhcyBrLF9pIGFzIGtpLGNkIGFzIGtuLGNzIGFzIGtyLE9oIGFzIGt0LGV4IGFzIGwseCBhcyBsYSxTYSBhcyBsaSxiZiBhcyBsbixVYyBhcyBscixMZyBhcyBsdCxxeSBhcyBtLCRpIGFzIG1pLHpkIGFzIG1uLFZjIGFzIG1yLERnIGFzIG10LGh4IGFzIG4sTyBhcyBuYSxZYSBhcyBuaSxxZiBhcyBubix1bCBhcyBucixjXyBhcyBudCxjeCBhcyBvLGN0IGFzIG9hLHphIGFzIG9pLHpmIGFzIG9uLG9sIGFzIG9yLEhnIGFzIG90LFd5IGFzIHAsY2EgYXMgcGksSGQgYXMgcG4sSGMgYXMgcHIsRWcgYXMgcHQsaF8gYXMgcSxPbiBhcyBxaSxLbCBhcyBxbixtbyBhcyBxcixOcCBhcyBxdCxweCBhcyByLHN0IGFzIHJhLEphIGFzIHJpLFVmIGFzIHJuLGNsIGFzIHJyLGxfIGFzIHJ0LHV4IGFzIHMsWmUgYXMgc2EsTGEgYXMgc2ksRGYgYXMgc24sbmwgYXMgc3IsQmcgYXMgc3QsX3ggYXMgdCxBIGFzIHRhLCRhIGFzIHRpLFRwIGFzIHRuLGRsIGFzIHRyLHJfIGFzIHR0LEx5IGFzIHUsdSBhcyB1YSxiYSBhcyB1aSxSZCBhcyB1bixLYyBhcyB1cixGZyBhcyB1dCxKeSBhcyB2LFZpIGFzIHZpLFNkIGFzIHZuLFBjIGFzIHZyLHJnIGFzIHZ0LER5IGFzIHcsa2kgYXMgd2ksJHUgYXMgd24sZ3MgYXMgd3IsTGggYXMgd3QsSXkgYXMgeCxNaSBhcyB4aSx4ZCBhcyB4bix4cyBhcyB4cixvZyBhcyB4dCxNeSBhcyB5LEJpIGFzIHlpLGJkIGFzIHluLE1jIGFzIHlyLFZoIGFzIHl0LFZfIGFzIHosWG4gYXMgemksSHUgYXMgem4sTG8gYXMgenIsVXAgYXMgenR9OwovLyMgc291cmNlTWFwcGluZ1VSTD1zaGFyZWQta2IxeXFIYUEuanMubWFw"}},"time_used":16,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":16,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/72512.6193102e3152806b8b0f.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:13.963Z","timestamp":1785148033963,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/72512.6193102e3152806b8b0f.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:13 GMT\r\ncontent-type: text/css; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a58ab11-960\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Thu, 16 Jul 2026 09:57:37 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/16/2026 11:03:21\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: ab865e01c29cf6aaaa742a08b8d42fe0\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":2400,"size_decoded":1442,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with very long lines (2400), with no line terminators","md5":"3a3939e3aa144594584f8ef2bfacd03e","sha1":"60f23f2501747d3d97cbff6f3683dc7e6f9374e1","sha256":"33f399d21b28081ae24569e69403a1aa51e8464cb13d8c6d5e1a3fe6e44ff992","sha512":"bb575248fe0999c8bd6ce31c8a6b01ba5b72b2a388b462c6c4224c88389d94bbf5bf990264f9671498d90cb696bba3e632a59819877bdb52b2a82db3db200912","ssdeep":"","tlshash":"29414bc9f061b23f3b0f60384319d1dc139beaa1cb521fabfb62d1e001c57e562a9426","first_seen":"2026-07-17T14:15:58.435225Z","last_seen":"2026-07-27T12:48:39.678484Z","times_seen":118,"resource_available":false,"data":"W2RhdGEtdGhlbWU9ZGFya10sW2RhdGEtdGhlbWU9bGlnaHRdey0tXzAtYm9zYTojMDAwMH0uYnV0dG9uLVdNcEtLVUNxe2FsaWduLWl0ZW1zOmNlbnRlcjtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXR2LWxpc3QtaXRlbS1idXR0b24tYmFja2dyb3VuZC1jb2xvcik7Ym9yZGVyLXJhZGl1czo0cHg7Y29sb3I6dmFyKC0tdHYtY29sb3ItcG9wdXAtZWxlbWVudC10b29sYm94LXRleHQsdmFyKC0tY29sb3ItcG9wdXAtZWxlbWVudC10b29sYm94LXRleHQpKTtkaXNwbGF5OmlubGluZS1mbGV4O2ZvbnQtc2l6ZTowO2hlaWdodDoyMnB4O2p1c3RpZnktY29udGVudDpjZW50ZXI7bWluLXdpZHRoOjIycHg7d2lkdGg6MjJweH0uYnV0dG9uLVdNcEtLVUNxLmhvdmVyZWQtV01wS0tVQ3EsLmJ1dHRvbi1XTXBLS1VDcTphY3RpdmV7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS10di1jb2xvci1wb3B1cC1lbGVtZW50LXRvb2xib3gtYmFja2dyb3VuZC1ob3Zlcix2YXIoLS10di1saXN0LWl0ZW0tYnV0dG9uLWJhY2tncm91bmQtaG92ZXItY29sb3IsdmFyKC0tY29sb3ItY29udGFpbmVyLWZpbGwtcHJpbWFyeS1uZXV0cmFsLW5vcm1hbCkpKTtjb2xvcjp2YXIoLS10di1jb2xvci1wb3B1cC1lbGVtZW50LXRvb2xib3gtdGV4dC1ob3Zlcix2YXIoLS1jb2xvci1wb3B1cC1lbGVtZW50LXRvb2xib3gtdGV4dC1ob3ZlcikpfUBtZWRpYSAoYW55LWhvdmVyOmhvdmVyKXsuYnV0dG9uLVdNcEtLVUNxOmhvdmVye2JhY2tncm91bmQtY29sb3I6dmFyKC0tdHYtY29sb3ItcG9wdXAtZWxlbWVudC10b29sYm94LWJhY2tncm91bmQtaG92ZXIsdmFyKC0tdHYtbGlzdC1pdGVtLWJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyLWNvbG9yLHZhcigtLWNvbG9yLWNvbnRhaW5lci1maWxsLXByaW1hcnktbmV1dHJhbC1ub3JtYWwpKSk7Y29sb3I6dmFyKC0tdHYtY29sb3ItcG9wdXAtZWxlbWVudC10b29sYm94LXRleHQtaG92ZXIsdmFyKC0tY29sb3ItcG9wdXAtZWxlbWVudC10b29sYm94LXRleHQtaG92ZXIpKX19LmJ1dHRvbi1XTXBLS1VDcS5kaXNhYmxlZC1XTXBLS1VDcSwuYnV0dG9uLVdNcEtLVUNxLmRpc2FibGVkLVdNcEtLVUNxOmFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXR2LWxpc3QtaXRlbS1idXR0b24tZGlzYWJsZWQtYmFja2dyb3VuZC1jb2xvcix2YXIoLS1fMC1ib3NhKSl9QG1lZGlhIChhbnktaG92ZXI6aG92ZXIpey5idXR0b24tV01wS0tVQ3EuZGlzYWJsZWQtV01wS0tVQ3E6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS10di1saXN0LWl0ZW0tYnV0dG9uLWRpc2FibGVkLWJhY2tncm91bmQtY29sb3IsdmFyKC0tXzAtYm9zYSkpfX0uYnV0dG9uLVdNcEtLVUNxe291dGxpbmU6bm9uZTtvdmVyZmxvdzp2aXNpYmxlO3Bvc2l0aW9uOnJlbGF0aXZlfS5idXR0b24tV01wS0tVQ3E6Zm9jdXN7b3V0bGluZTpub25lfS5idXR0b24tV01wS0tVQ3E6Zm9jdXMtdmlzaWJsZXtvdXRsaW5lOm5vbmV9LmJ1dHRvbi1XTXBLS1VDcTphZnRlcntib3JkZXItY29sb3I6dmFyKC0tY29sb3ItZm9jdXMtb3V0bGluZS1jb2xvci1ibHVlKTtib3JkZXItcmFkaXVzOjRweDtib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLXdpZHRoOjJweDtib3gtc2l6aW5nOmJvcmRlci1ib3g7Y29udGVudDoiIjtkaXNwbGF5Om5vbmU7aGVpZ2h0OmNhbGMoMTAwJSArIDRweCk7aW5zZXQtaW5saW5lLXN0YXJ0Oi0ycHg7cG9pbnRlci1ldmVudHM6bm9uZTtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6LTJweDt3aWR0aDpjYWxjKDEwMCUgKyA0cHgpO3otaW5kZXg6MX0uYnV0dG9uLVdNcEtLVUNxLmZvY3VzZWQtV01wS0tVQ3E6YWZ0ZXJ7ZGlzcGxheTpibG9ja30uYnV0dG9uLVdNcEtLVUNxLmFjdGl2ZS1XTXBLS1VDcXtjb2xvcjp2YXIoLS10di1jb2xvci1wb3B1cC1lbGVtZW50LXRvb2xib3gtdGV4dC1hY3RpdmUtaG92ZXIsdmFyKC0tY29sb3ItY29udGVudC1zZWNvbmRhcnktaW52ZXJzZSkpfS5idXR0b24tV01wS0tVQ3EuYWN0aXZlLVdNcEtLVUNxLmhvdmVyZWQtV01wS0tVQ3EsLmJ1dHRvbi1XTXBLS1VDcS5hY3RpdmUtV01wS0tVQ3E6YWN0aXZle2JhY2tncm91bmQtY29sb3I6dmFyKC0tdHYtY29sb3ItcG9wdXAtZWxlbWVudC10b29sYm94LWJhY2tncm91bmQtYWN0aXZlLWhvdmVyLHZhcigtLWNvbG9yLWNvbnRhaW5lci1maWxsLXByaW1hcnktbmV1dHJhbC1ib2xkKSl9QG1lZGlhIChhbnktaG92ZXI6aG92ZXIpey5idXR0b24tV01wS0tVQ3EuYWN0aXZlLVdNcEtLVUNxOmhvdmVye2JhY2tncm91bmQtY29sb3I6dmFyKC0tdHYtY29sb3ItcG9wdXAtZWxlbWVudC10b29sYm94LWJhY2tncm91bmQtYWN0aXZlLWhvdmVyLHZhcigtLWNvbG9yLWNvbnRhaW5lci1maWxsLXByaW1hcnktbmV1dHJhbC1ib2xkKSl9fS5oaWRkZW4tV01wS0tVQ3F7dmlzaWJpbGl0eTpoaWRkZW59"}},"time_used":5,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":5,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/en.71709.ee05866730b168abd135.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:13.729Z","timestamp":1785148033729,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/en.71709.ee05866730b168abd135.js HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:13 GMT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a5482e4-9c9\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Mon, 13 Jul 2026 06:17:08 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/13/2026 11:12:54\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 819ee191fd3a72cf219b20427bc4f116\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":2505,"size_decoded":1636,"mime_type":"application/javascript; charset=utf-8","magic":"ASCII text, with very long lines (2505), with no line terminators","md5":"b041c9cfb403e761e1474599c5cc992c","sha1":"1cf476944ece7d96d89351e5df8aed4c9a17d062","sha256":"9525b415ae001d37b76581cbd078e24a350b7871d62c9f3443e27b9d33dc37e2","sha512":"62ccfe5bf54ea59afdf4c12059b5552f888a84e448eca969ad2ae96f1adc7e638081e150333d3191fbc66b6e6048cf95b4e09685b881d259fb4e015e7f2a6076","ssdeep":"","tlshash":"83519e07f60166e9bff9a6347216ac313e14b0d610e3d0c503b676669b57e2c943aadc","first_seen":"2026-07-10T15:18:12.448704Z","last_seen":"2026-07-27T11:47:31.138492Z","times_seen":145,"resource_available":true,"data":"KHNlbGYud2VicGFja0NodW5rdHJhZGluZ3ZpZXc9c2VsZi53ZWJwYWNrQ2h1bmt0cmFkaW5ndmlld3x8W10pLnB1c2goW1syNzgyMCw3MTcwOV0sezEyNzgyMCh0KXt0LmV4cG9ydHM9WyJDbG9zZSJdfSwxMDA3MTIodCl7dC5leHBvcnRzPVsiYXV0byJdfSwyMzg0NjQodCl7dC5leHBvcnRzPVsibG9nIl19LDg0ODY0Mih0KXt0LmV4cG9ydHM9WyJBbGwgZGF0YSJdfSwzOTcyMTkodCl7dC5leHBvcnRzPVsiWWVhciB0byBkYXkiXX0sODUwODQ3KHQpe3QuZXhwb3J0cz1bInt0aW1lUGVyaW9kfSBpbiB7dGltZUludGVydmFsfSJdfSw0OTcxNTUodCl7dC5leHBvcnRzPVsiQWRqdXN0IGRhdGEgZm9yIGRpdmlkZW5kcyJdfSw2MDQ4MTUodCl7dC5leHBvcnRzPVsiQWRqdXN0IGZvciBjb250cmFjdCBjaGFuZ2VzIl19LDcxNTM5OSh0KXt0LmV4cG9ydHM9WyJHbyB0byJdfSw5OTc0MCh0KXt0LmV4cG9ydHM9WyJEYXRlIFJhbmdlIl19LDE3NDE0OCh0KXt0LmV4cG9ydHM9WyJFeHRlbmRlZCBIb3VycyBpcyBhdmFpbGFibGUgb25seSBmb3IgaW50cmFkYXkgY2hhcnRzIl19LDUyMjkxMSh0KXt0LmV4cG9ydHM9WyJGdWxsc2NyZWVuIG1vZGUiXX0sNTUxMzMyKHQpe3QuZXhwb3J0cz1bIk1heGltaXplIGNoYXJ0Il19LDE1Mjk4NCh0KXt0LmV4cG9ydHM9WyJNYWluIHN5bWJvbCBkYXRhIGlzIGFkanVzdGVkIGZvciBkaXZpZGVuZHMgb25seSJdfSw0ODI0ODIodCl7dC5leHBvcnRzPVsiTWFpbiBzeW1ib2wgZGF0YSBpcyBhZGp1c3RlZCBmb3Igc3BsaXRzIG9ubHkiXX0sMTc2NDE2KHQpe3QuZXhwb3J0cz1bIlNlbGVjdCBDaGFydCJdfSw2NzE4MDkodCl7dC5leHBvcnRzPVsiUmVzdG9yZSBjaGFydCJdfSwyODQwMjModCl7dC5leHBvcnRzPVsiVG9nZ2xlIEF1dG8gU2NhbGUiXX0sOTUzNTE5KHQpe3QuZXhwb3J0cz1bIlRvZ2dsZSBMb2cgU2NhbGUiXX0sNDM0ODMxKHQpe3QuZXhwb3J0cz1bIlRvZ2dsZSBQZXJjZW50YWdlIl19LDE2OTEwOCh0KXt0LmV4cG9ydHM9WyJUaW1lem9uZSJdfSwyMTgxMzIodCl7dC5leHBvcnRzPVsiVXNlIHNldHRsZW1lbnQgYXMgY2xvc2Ugb24gZGFpbHkgaW50ZXJ2YWwiXX0sNzg3MzA3KHQpe3QuZXhwb3J0cz1bImFkanVzdCBkYXRhIGZvciBkaXZpZGVuZHMiXX0sNDQzNDMxKHQpe3QuZXhwb3J0cz1bImFkanVzdCBmb3IgY29udHJhY3QgY2hhbmdlcyJdfSwyMDc0MTEodCl7dC5leHBvcnRzPVsiZXh0Il19LDQ0NTUwNyh0KXt0LmV4cG9ydHM9WyJ0b2dnbGUgcGVyY2VudGFnZSBzY2FsZSJdfSwxNTc5MCh0KXt0LmV4cG9ydHM9WyJ1c2Ugc2V0dGxlbWVudCBhcyBjbG9zZSBvbiBkYWlseSBpbnRlcnZhbCJdfSwxODgyNjYodCl7dC5leHBvcnRzPVsie3N0cn0gZGF5Iiwie3N0cn0gZGF5cyJdfSwxMDMwMzAodCl7dC5leHBvcnRzPVsie3N0cn0gZGF5Iiwie3N0cn0gZGF5cyJdfSw5NzI5MTUodCl7dC5leHBvcnRzPVsie3N0cn0gZGF5IGludGVydmFscyIsIntzdHJ9IGRheXMgaW50ZXJ2YWxzIl19LDQzMzkzNCh0KXt0LmV4cG9ydHM9WyJ7c3RyfSBob3VyIiwie3N0cn0gaG91cnMiXX0sMjEwNTc0KHQpe3QuZXhwb3J0cz1bIntzdHJ9IGhvdXIiLCJ7c3RyfSBob3VycyJdfSw4NDQ3MDQodCl7dC5leHBvcnRzPVsie3N0cn0gaG91ciBpbnRlcnZhbHMiLCJ7c3RyfSBob3VycyBpbnRlcnZhbHMiXX0sNjIxOTc3KHQpe3QuZXhwb3J0cz1bIntzdHJ9IG1vbnRoIiwie3N0cn0gbW9udGhzIl19LDY5NDYxNyh0KXt0LmV4cG9ydHM9WyJ7c3RyfSBtb250aCIsIntzdHJ9IG1vbnRocyJdfSw0MDQ3NTAodCl7dC5leHBvcnRzPVsie3N0cn0gbW9udGggaW50ZXJ2YWxzIiwie3N0cn0gbW9udGhzIGludGVydmFscyJdfSw3NDExNjIodCl7dC5leHBvcnRzPVsie3N0cn0gbWludXRlIiwie3N0cn0gbWludXRlcyJdfSw0MzkwKHQpe3QuZXhwb3J0cz1bIntzdHJ9IG1pbnV0ZSIsIntzdHJ9IG1pbnV0ZXMiXX0sNTE3Njk5KHQpe3QuZXhwb3J0cz1bIntzdHJ9IG1pbnV0ZSBpbnRlcnZhbHMiLCJ7c3RyfSBtaW51dGVzIGludGVydmFscyJdfSw1MDQxMTEodCl7dC5leHBvcnRzPVsie3N0cn0gc2Vjb25kIGludGVydmFscyIsIntzdHJ9IHNlY29uZHMgaW50ZXJ2YWxzIl19LDM5NDE1MSh0KXt0LmV4cG9ydHM9WyJ7c3RyfSB3ZWVrIiwie3N0cn0gd2Vla3MiXX0sNjQ0NjI1KHQpe3QuZXhwb3J0cz1bIntzdHJ9IHdlZWsiLCJ7c3RyfSB3ZWVrcyJdfSwzMDU0NjEodCl7dC5leHBvcnRzPVsie3N0cn0gd2VlayBpbnRlcnZhbHMiLCJ7c3RyfSB3ZWVrcyBpbnRlcnZhbHMiXX0sNjQyMjQ3KHQpe3QuZXhwb3J0cz1bIntzdHJ9IHRpY2sgaW50ZXJ2YWxzIiwie3N0cn0gdGlja3MgaW50ZXJ2YWxzIl19LDY4Nzg1OCh0KXt0LmV4cG9ydHM9WyJ7c3RyfSB5ZWFyIiwie3N0cn0geWVhcnMiXX0sMjE2NDAyKHQpe3QuZXhwb3J0cz1bIntzdHJ9IHllYXIiLCJ7c3RyfSB5ZWFycyJdfSwzMTA4MjgodCl7dC5leHBvcnRzPVsie3N0cn0geWVhciBpbnRlcnZhbHMiLCJ7c3RyfSB5ZWFycyBpbnRlcnZhbHMiXX19XSk7"}},"time_used":2,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/98696.e10ceecfd44535d6ea1a.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:13.918Z","timestamp":1785148033918,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/98696.e10ceecfd44535d6ea1a.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:13 GMT\r\ncontent-type: text/css; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a323ca6-140a\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Wed, 17 Jun 2026 06:20:22 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.57\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 06/17/2026 11:15:48\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 2c8aa536134621171a79b31e3795baa9\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":5130,"size_decoded":2055,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with very long lines (5130), with no line terminators","md5":"14ba6ef799217e3cf6c0f723627f96dc","sha1":"56a2abca6a545fb6f28a7e66508fea511db30c47","sha256":"6db5f60c32ec213410cd578b53e2878efcddc6fc01da1bc3a11fa465d4702c63","sha512":"df91da3cdf87cd7cf1cfc3abd0b1101ac8328f973e85853b5eb5d12caddcd8bce1f4e2eb279848a377f5126ff637ac6131f20b60dcc3a6d247bca2145fe32ac2","ssdeep":"96:ONadZaAWAo8APlUdGRzg0oszVpO79JSjpHzbfKaMvPd92bCJIdWJak:ON8Zfro1PlUdGRzg0osz+79JalzbVulr","tlshash":"43b1329ceb94a27b7c2ba43c1318e32d4e45be42dd621bf6bd3d610149c3be261e6744","first_seen":"2026-06-18T02:55:32.293865Z","last_seen":"2026-07-27T12:48:39.792958Z","times_seen":302,"resource_available":false,"data":"LmhhbGFsU3RhdHVzLW5QVTM5cndVe2NvbG9yOnZhcigtLWNvbG9yLWNvbnRlbnQtdGVydGlhcnktc3VjY2Vzcy1leHRyYS1ib2xkKX0uaGFsYWxTdGF0dXMtblBVMzlyd1U6YWZ0ZXJ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1vdmVybGF5LXBvc2l0aXZlLTMtbGlnaHQpfUBtZWRpYSAoYW55LWhvdmVyOmhvdmVyKXtbZGF0YS1yb2xlPXN0YXR1c2VzLXBpbGxdOmhvdmVyIC5oYWxhbFN0YXR1cy1uUFUzOXJ3VTphZnRlcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLW92ZXJsYXktcG9zaXRpdmUtMy1ub3JtYWwpfX1bZGF0YS1yb2xlPXN0YXR1c2VzLXBpbGxdOmFjdGl2ZSAuaGFsYWxTdGF0dXMtblBVMzlyd1U6YWZ0ZXJ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1vdmVybGF5LXBvc2l0aXZlLTMtYm9sZCl9LnR2Q2FsY3VsYXRlZFBhaXItUzN6Y2NJX1B7Y29sb3I6dmFyKC0tY29sb3ItY29udGVudC1zZWNvbmRhcnktYWNjZW50LW90aGVyLXNlbWktYm9sZCl9LnR2Q2FsY3VsYXRlZFBhaXItUzN6Y2NJX1A6YWZ0ZXJ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1vdmVybGF5LWFjY2VudC0zLWxpZ2h0KX1AbWVkaWEgKGFueS1ob3Zlcjpob3Zlcil7W2RhdGEtcm9sZT1zdGF0dXNlcy1waWxsXTpob3ZlciAudHZDYWxjdWxhdGVkUGFpci1TM3pjY0lfUDphZnRlcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLW92ZXJsYXktYWNjZW50LTMtbm9ybWFsKX19W2RhdGEtcm9sZT1zdGF0dXNlcy1waWxsXTphY3RpdmUgLnR2Q2FsY3VsYXRlZFBhaXItUzN6Y2NJX1A6YWZ0ZXJ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1vdmVybGF5LWFjY2VudC0zLWJvbGQpfS5oa2V4Q29tbWVudC1lYnVOU3Zvd3tjb2xvcjp2YXIoLS1jb2xvci1jb250ZW50LXByaW1hcnktZGFuZ2VyLWV4dHJhLWJvbGQpfS5oa2V4Q29tbWVudC1lYnVOU3ZvdzphZnRlcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLW92ZXJsYXktbmVnYXRpdmUtMS1saWdodCl9QG1lZGlhIChhbnktaG92ZXI6aG92ZXIpe1tkYXRhLXJvbGU9c3RhdHVzZXMtcGlsbF06aG92ZXIgLmhrZXhDb21tZW50LWVidU5Tdm93OmFmdGVye2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3Itb3ZlcmxheS1uZWdhdGl2ZS0xLW5vcm1hbCl9fVtkYXRhLXJvbGU9c3RhdHVzZXMtcGlsbF06YWN0aXZlIC5oa2V4Q29tbWVudC1lYnVOU3ZvdzphZnRlcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLW92ZXJsYXktbmVnYXRpdmUtMS1ib2xkKX0uZGVmYXVsdGVkU3RhdHVzLUp1eFJURG1fe2NvbG9yOnZhcigtLWNvbG9yLWNvbnRlbnQtcHJpbWFyeS1kYW5nZXItc2VtaS1ib2xkKX0uZGVmYXVsdGVkU3RhdHVzLUp1eFJURG1fOmFmdGVye2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3Itb3ZlcmxheS1uZWdhdGl2ZS0xLWxpZ2h0KX1AbWVkaWEgKGFueS1ob3Zlcjpob3Zlcil7W2RhdGEtcm9sZT1zdGF0dXNlcy1waWxsXTpob3ZlciAuZGVmYXVsdGVkU3RhdHVzLUp1eFJURG1fOmFmdGVye2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3Itb3ZlcmxheS1uZWdhdGl2ZS0xLW5vcm1hbCl9fVtkYXRhLXJvbGU9c3RhdHVzZXMtcGlsbF06YWN0aXZlIC5kZWZhdWx0ZWRTdGF0dXMtSnV4UlREbV86YWZ0ZXJ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1vdmVybGF5LW5lZ2F0aXZlLTEtYm9sZCl9LmxldEl0U25vd1N0YXR1cy1EdDMwYnZVQXtjb2xvcjp2YXIoLS1jb2xvci1za3ktYmx1ZS1hNzAwKX0ubGV0SXRTbm93U3RhdHVzLUR0MzBidlVBOmFmdGVye2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3Itb3ZlcmxheS1hY2NlbnQtMS1saWdodCl9QG1lZGlhIChhbnktaG92ZXI6aG92ZXIpe1tkYXRhLXJvbGU9c3RhdHVzZXMtcGlsbF06aG92ZXIgLmxldEl0U25vd1N0YXR1cy1EdDMwYnZVQTphZnRlcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLW92ZXJsYXktYWNjZW50LTEtbm9ybWFsKX19W2RhdGEtcm9sZT1zdGF0dXNlcy1waWxsXTphY3RpdmUgLmxldEl0U25vd1N0YXR1cy1EdDMwYnZVQTphZnRlcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLW92ZXJsYXktYWNjZW50LTEtYm9sZCl9LnVwY29taW5nSXBvU3RhdHVzLXRLWlJtSUs1e2NvbG9yOnZhcigtLWNvbG9yLWNvbnRlbnQtcHJpbWFyeS1hY2NlbnQtb3RoZXItZXh0cmEtYm9sZCl9LnVwY29taW5nSXBvU3RhdHVzLXRLWlJtSUs1OmFmdGVye2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3Itb3ZlcmxheS1hY2NlbnQtMy1saWdodCl9QG1lZGlhIChhbnktaG92ZXI6aG92ZXIpe1tkYXRhLXJvbGU9c3RhdHVzZXMtcGlsbF06aG92ZXIgLnVwY29taW5nSXBvU3RhdHVzLXRLWlJtSUs1OmFmdGVye2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3Itb3ZlcmxheS1hY2NlbnQtMy1ub3JtYWwpfX1bZGF0YS1yb2xlPXN0YXR1c2VzLXBpbGxdOmFjdGl2ZSAudXBjb21pbmdJcG9TdGF0dXMtdEtaUm1JSzU6YWZ0ZXJ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1vdmVybGF5LWFjY2VudC0zLWJvbGQpfVtkYXRhLXRoZW1lPWxpZ2h0XXstLV8wLU9ZaFg6dmFyKC0tY29sb3ItY29sZC1ncmF5LTU1MCk7LS1fMS1PWWhYOnZhcigtLWNvbG9yLXJpcGUtcmVkLTUwMCl9W2RhdGEtdGhlbWU9ZGFya117LS1fMC1PWWhYOnZhcigtLWNvbG9yLWNvbGQtZ3JheS00NTApOy0tXzEtT1loWDp2YXIoLS1jb2xvci1yaXBlLXJlZC01MDApfS53cmFwU3RhY2tUcmFjZS1xcTJqU3I5T3tkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2ZvbnQtZmFtaWx5Ok1lbmxvLFVidW50dSBNb25vLENvbnNvbGFzLHNvdXJjZS1jb2RlLXBybyxtb25vc3BhY2U7b3ZlcmZsb3cteDphdXRvO3BhZGRpbmctYm90dG9tOjRweDtyb3ctZ2FwOjEycHh9QHN1cHBvcnRzICgtbW96LWFwcGVhcmFuY2U6bm9uZSl7LndyYXBTdGFja1RyYWNlLXFxMmpTcjlPe3Njcm9sbGJhci1jb2xvcjp2YXIoLS10di1jb2xvci1zY3JvbGxiYXItdGh1bWItYmFja2dyb3VuZCx2YXIoLS1jb2xvci1zY3JvbGwtYmcpKSAjMDAwMDtzY3JvbGxiYXItd2lkdGg6dGhpbn19LndyYXBTdGFja1RyYWNlLXFxMmpTcjlPOjotd2Via2l0LXNjcm9sbGJhcntoZWlnaHQ6NXB4O3dpZHRoOjVweH0ud3JhcFN0YWNrVHJhY2UtcXEyalNyOU86Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1ie2JhY2tncm91bmQtY2xpcDpjb250ZW50LWJveDtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXR2LWNvbG9yLXNjcm9sbGJhci10aHVtYi1iYWNrZ3JvdW5kLHZhcigtLWNvbG9yLXNjcm9sbC1iZykpO2JvcmRlcjoxcHggc29saWQgIzAwMDA7Ym9yZGVyLXJhZGl1czozcHh9LndyYXBTdGFja1RyYWNlLXFxMmpTcjlPOjotd2Via2l0LXNjcm9sbGJhci10cmFja3tiYWNrZ3JvdW5kLWNvbG9yOmluaXRpYWw7Ym9yZGVyLXJhZGl1czozcHh9LndyYXBTdGFja1RyYWNlLXFxMmpTcjlPOjotd2Via2l0LXNjcm9sbGJhci1jb3JuZXJ7ZGlzcGxheTpub25lfS5zdGFja1RyYWNlTGluZS1xcTJqU3I5T3tjb2xvcjp2YXIoLS1fMC1PWWhYKTt3aGl0ZS1zcGFjZTpub3dyYXB9LmZ1bmN0aW9uTmFtZS1xcTJqU3I5T3tjb2xvcjp2YXIoLS1fMS1PWWhYKX0uYmFySW5kZXgtcXEyalNyOU97Y29sb3I6dmFyKC0tY29sb3ItY29udGVudC1wcmltYXJ5LW5ldXRyYWwtYm9sZCl9LmluZm8tcXEyalNyOU97Y29sb3I6dmFyKC0tY29sb3ItY29udGVudC1wcmltYXJ5LW5ldXRyYWwpfS5oaWRlRW1wdHktcXEyalNyOU86ZW1wdHl7ZGlzcGxheTpub25lfS5lZGl0b3JFcnJvckJ1dHRvbnMtenVrOWVJTTN7Y29sdW1uLWdhcDo4cHg7ZGlzcGxheTpmbGV4fVtkYXRhLXRoZW1lPWxpZ2h0XXstLV8wLXl6SzY6dmFyKC0tY29sb3ItY29sZC1ncmF5LTEwMCl9W2RhdGEtdGhlbWU9ZGFya117LS1fMC15eks2OnZhcigtLWNvbG9yLWNvbGQtZ3JheS04MDApfS53cmFwcGVyLVBndUFyTEZme2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47Zm9udC1zaXplOjEzcHg7bGluZS1oZWlnaHQ6MThweDttYXgtd2lkdGg6MTAwJTtyb3ctZ2FwOjhweH0ud3JhcEVycm9yLVBndUFyTEZme2JhY2tncm91bmQtY29sb3I6aW5oZXJpdDtib3JkZXItcmFkaXVzOjRweDt0cmFuc2l0aW9uOmJhY2tncm91bmQtY29sb3IgLjRzIGVhc2V9LndyYXBFcnJvci1QZ3VBckxGZi5jbGlja2VkQW5pbS1QZ3VBckxGZntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLV8wLXl6SzYpfS5lcnJvclRleHQtUGd1QXJMRmZ7Zm9udC1zaXplOjE0cHg7bGluZS1oZWlnaHQ6MjFweH0ud3JhcFN0YWNrVHJhY2UtUGd1QXJMRmZ7bWFyZ2luLXRvcDoxMnB4fS5kZXNjcmlwdGlvbi1qZW5OVnNfQ3ttYXJnaW4tYm90dG9tOjhweDttYXJnaW4tdG9wOjRweH0ubW9kZS1qZW5OVnNfQ3thbGlnbi1pdGVtczpjZW50ZXI7Y29sdW1uLWdhcDo4cHg7ZGlzcGxheTpmbGV4O2hlaWdodDozMHB4fS5hY3Rpb25zLWplbk5Wc19De2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpyb3d9LmFjdGlvbnMtamVuTlZzX0MgYnV0dG9ue21hcmdpbi1pbmxpbmUtZW5kOjhweDttYXJnaW4tYm90dG9tOjB9LmxpbmstamVuTlZzX0MsLmxpbmstamVuTlZzX0M6dmlzaXRlZHtjb2xvcjp2YXIoLS1jb2xvci1saW5rLXByaW1hcnktZGVmYXVsdCk7ZmlsbDp2YXIoLS1jb2xvci1saW5rLXByaW1hcnktZGVmYXVsdCl9QG1lZGlhIChhbnktaG92ZXI6aG92ZXIpey5saW5rLWplbk5Wc19DOmhvdmVye2NvbG9yOnZhcigtLWNvbG9yLWxpbmstcHJpbWFyeS1ob3Zlcik7ZmlsbDp2YXIoLS1jb2xvci1saW5rLXByaW1hcnktaG92ZXIpfX0ubGluay1qZW5OVnNfQzphY3RpdmV7Y29sb3I6dmFyKC0tY29sb3ItbGluay1wcmltYXJ5LWFjdGl2ZSk7ZmlsbDp2YXIoLS1jb2xvci1saW5rLXByaW1hcnktYWN0aXZlKX0ubGluay1qZW5OVnNfQzpmb2N1c3tvdXRsaW5lOmF1dG87b3V0bGluZS1vZmZzZXQ6MnB4fS5saW5rLWplbk5Wc19DOmZvY3VzLXZpc2libGV7b3V0bGluZTphdXRvO291dGxpbmUtb2Zmc2V0OjJweH0ubGluay1qZW5OVnNfQzpmb2N1czpub3QoOmZvY3VzLXZpc2libGUpe291dGxpbmU6bm9uZX1AbWVkaWEgKGFueS1ob3Zlcjpob3Zlcil7LmxpbmstamVuTlZzX0M6aG92ZXJ7dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZX19"}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/56258.282e6141fc02ac85d0d5.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:12.987Z","timestamp":1785148032987,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/56258.282e6141fc02ac85d0d5.js HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:12 GMT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a0c2e6a-174e\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Tue, 19 May 2026 09:33:30 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/23/2026 10:17:22\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: f3bbf64f20bcb2f5b43f86de21a9854f\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":5966,"size_decoded":3195,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (3055)","md5":"a9563eafb41c9e6b519a29f0206f6b89","sha1":"43a8b417d99fe60c3d65ddae1e66d8cabd277000","sha256":"ba67ff82446ee411a3ef96ebe6abe55cf6cc1abfd78c841cd5d9a0a70804725a","sha512":"1e31a74cb24aeb33cac85e854608a21314f1416f3db595d14b0577305da06f72bf42b9dea2c36f570fcea9dbd7d88793bd8bc291d498ab58b1e2413f173b781d","ssdeep":"96:AaPctCCkctcSycQOchchctDOAXtC4C2GM0/CnXkMHsU3KEu9pJfmJuuImRBYkqMy:NcUrctcXc3chchc1OotC4ChMUCX1HFRM","tlshash":"d5c1118471c1f09513db9a82a4370606f27d5c5c704b79ece3d0d4d6aabba4db42bb36","first_seen":"2026-05-19T10:58:17.796011Z","last_seen":"2026-07-27T12:57:37.094006Z","times_seen":975,"resource_available":true,"data":"InVzZSBzdHJpY3QiOyhzZWxmLndlYnBhY2tDaHVua3RyYWRpbmd2aWV3PXNlbGYud2VicGFja0NodW5rdHJhZGluZ3ZpZXd8fFtdKS5wdXNoKFtbNTYyNThdLHs3NDM0NTEodCxlLG4pe24uZChlLHtjcmVhdGVPYnNlcnZhYmxlOigpPT5pfSk7dmFyIHI9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQpe3ZhciBlPXRoaXM7dGhpcy5fcmVzb2x1dGlvbkxpc3RlbmVyPWZ1bmN0aW9uKCl7cmV0dXJuIGUuX29uUmVzb2x1dGlvbkNoYW5nZWQoKX0sdGhpcy5fcmVzb2x1dGlvbk1lZGlhUXVlcnlMaXN0PW51bGwsdGhpcy5fb2JzZXJ2ZXJzPVtdLHRoaXMuX3dpbmRvdz10LHRoaXMuX2luc3RhbGxSZXNvbHV0aW9uTGlzdGVuZXIoKX1yZXR1cm4gdC5wcm90b3R5cGUuZGlzcG9zZT1mdW5jdGlvbigpe3RoaXMuX3VuaW5zdGFsbFJlc29sdXRpb25MaXN0ZW5lcigpLHRoaXMuX3dpbmRvdz1udWxsfSxPYmplY3QuZGVmaW5lUHJvcGVydHkodC5wcm90b3R5cGUsInZhbHVlIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3dpbmRvdy5kZXZpY2VQaXhlbFJhdGlvfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLHQucHJvdG90eXBlLnN1YnNjcmliZT1mdW5jdGlvbih0KXt2YXIgZT10aGlzLG49e25leHQ6dH07cmV0dXJuIHRoaXMuX29ic2VydmVycy5wdXNoKG4pLHt1bnN1YnNjcmliZTpmdW5jdGlvbigpe2UuX29ic2VydmVycz1lLl9vYnNlcnZlcnMuZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4gdCE9PW59KSl9fX0sdC5wcm90b3R5cGUuX2luc3RhbGxSZXNvbHV0aW9uTGlzdGVuZXI9ZnVuY3Rpb24oKXtpZihudWxsIT09dGhpcy5fcmVzb2x1dGlvbk1lZGlhUXVlcnlMaXN0KXRocm93IG5ldyBFcnJvcigiUmVzb2x1dGlvbiBsaXN0ZW5lciBpcyBhbHJlYWR5IGluc3RhbGxlZCIpO3ZhciB0PXRoaXMuX3dpbmRvdy5kZXZpY2VQaXhlbFJhdGlvO3RoaXMuX3Jlc29sdXRpb25NZWRpYVF1ZXJ5TGlzdD10aGlzLl93aW5kb3cubWF0Y2hNZWRpYSgiYWxsIGFuZCAocmVzb2x1dGlvbjogIi5jb25jYXQodCwiZHBweCkiKSksdGhpcy5fcmVzb2x1dGlvbk1lZGlhUXVlcnlMaXN0LmFkZExpc3RlbmVyKHRoaXMuX3Jlc29sdXRpb25MaXN0ZW5lcil9LHQucHJvdG90eXBlLl91bmluc3RhbGxSZXNvbHV0aW9uTGlzdGVuZXI9ZnVuY3Rpb24oKXtudWxsIT09dGhpcy5fcmVzb2x1dGlvbk1lZGlhUXVlcnlMaXN0JiYodGhpcy5fcmVzb2x1dGlvbk1lZGlhUXVlcnlMaXN0LnJlbW92ZUxpc3RlbmVyKHRoaXMuX3Jlc29sdXRpb25MaXN0ZW5lciksdGhpcy5fcmVzb2x1dGlvbk1lZGlhUXVlcnlMaXN0PW51bGwpfSx0LnByb3RvdHlwZS5fcmVpbnN0YWxsUmVzb2x1dGlvbkxpc3RlbmVyPWZ1bmN0aW9uKCl7dGhpcy5fdW5pbnN0YWxsUmVzb2x1dGlvbkxpc3RlbmVyKCksdGhpcy5faW5zdGFsbFJlc29sdXRpb25MaXN0ZW5lcigpfSx0LnByb3RvdHlwZS5fb25SZXNvbHV0aW9uQ2hhbmdlZD1mdW5jdGlvbigpe3ZhciB0PXRoaXM7dGhpcy5fb2JzZXJ2ZXJzLmZvckVhY2goKGZ1bmN0aW9uKGUpe3JldHVybiBlLm5leHQodC5fd2luZG93LmRldmljZVBpeGVsUmF0aW8pfSkpLHRoaXMuX3JlaW5zdGFsbFJlc29sdXRpb25MaXN0ZW5lcigpfSx0fSgpO2Z1bmN0aW9uIGkodCl7cmV0dXJuIG5ldyByKHQpfX0sNzQyNzkodCxlLG4pe2Z1bmN0aW9uIHIodCl7dmFyIGU9dC53aWR0aCxuPXQuaGVpZ2h0O2lmKGU8MCl0aHJvdyBuZXcgRXJyb3IoIk5lZ2F0aXZlIHdpZHRoIGlzIG5vdCBhbGxvd2VkIGZvciBTaXplIik7aWYobjwwKXRocm93IG5ldyBFcnJvcigiTmVnYXRpdmUgaGVpZ2h0IGlzIG5vdCBhbGxvd2VkIGZvciBTaXplIik7cmV0dXJue3dpZHRoOmUsaGVpZ2h0Om59fWZ1bmN0aW9uIGkodCxlKXtyZXR1cm4gdC53aWR0aD09PWUud2lkdGgmJnQuaGVpZ2h0PT09ZS5oZWlnaHR9bi5kKGUse2VxdWFsU2l6ZXM6KCk9Pmksc2l6ZTooKT0+cn0pfSw3ODkyODcodCxlLG4pe24uZChlLHtkZWZhdWx0OigpPT5yfSk7Y29uc3Qgcj1mdW5jdGlvbih0LGUsbil7c3dpdGNoKG4ubGVuZ3RoKXtjYXNlIDA6cmV0dXJuIHQuY2FsbChlKTtjYXNlIDE6cmV0dXJuIHQuY2FsbChlLG5bMF0pO2Nhc2UgMjpyZXR1cm4gdC5jYWxsKGUsblswXSxuWzFdKTtjYXNlIDM6cmV0dXJuIHQuY2FsbChlLG5bMF0sblsxXSxuWzJdKX1yZXR1cm4gdC5hcHBseShlLG4pfX0sMjU4MjYodCxlLG4pe24uZChlLHtkZWZhdWx0OigpPT5yfSk7Y29uc3Qgcj1mdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oZSxuLHIpe2Zvcih2YXIgaT0tMSx1PU9iamVjdChlKSxvPXIoZSksYT1vLmxlbmd0aDthLS07KXt2YXIgbD1vW3Q/YTorK2ldO2lmKCExPT09bih1W2xdLGwsdSkpYnJlYWt9cmV0dXJuIGV9fSgpfSw0ODI2Mih0LGUsbil7bi5kKGUse2RlZmF1bHQ6KCk9Pmp9KTt2YXIgcj1uKDg4NjUxNCksaT1uKDI1NDczOCksdT1uKDkxMDc3OCk7Y29uc3Qgbz1mdW5jdGlvbih0LGUsbil7KHZvaWQgMCE9PW4mJiEoMCx1LmRlZmF1bHQpKHRbZV0sbil8fHZvaWQgMD09PW4mJiEoZSBpbiB0KSkmJigwLGkuZGVmYXVsdCkodCxlLG4pfTt2YXIgYT1uKDI1ODI2KSxsPW4oNDg3MDYwKSxzPW4oMTM5MDcpLGY9big3MDU3NDkpLGQ9big4MDc1NzUpLGM9big1MzE1NTcpLGg9bigyOTU2MzUpLHY9bigyMzk2MykscD1uKDY1OTAxOCksdz1uKDkyODEzMiksXz1uKDg4MDExNSksYj1uKDkzMTQzMykseT1uKDE2NTI2Nyk7Y29uc3QgZz1mdW5jdGlvbih0LGUpe2lmKCgiY29uc3RydWN0b3IiIT09ZXx8ImZ1bmN0aW9uIiE9dHlwZW9mIHRbZV0pJiYiX19wcm90b19fIiE9ZSlyZXR1cm4gdFtlXX07dmFyIEw9big2MTg1NyksUj1uKDIxNzQ1Nyk7Y29uc3QgTT1mdW5jdGlvbih0KXtyZXR1cm4oMCxMLmRlZmF1bHQpKHQsKDAsUi5kZWZhdWx0KSh0KSl9O2NvbnN0IE89ZnVuY3Rpb24odCxlLG4scixpLHUsYSl7dmFyIEw9Zyh0LG4pLFI9ZyhlLG4pLE89YS5nZXQoUik7aWYoTylvKHQsbixPKTtlbHNle3ZhciBqPXU/dShMLFIsbisiIix0LGUsYSk6dm9pZCAwLHg9dm9pZCAwPT09ajtpZih4KXt2YXIgUT0oMCxoLmRlZmF1bHQpKFIpLG09IVEmJigwLApwLmRlZmF1bHQpKFIpLGs9IVEmJiFtJiYoMCx5LmRlZmF1bHQpKFIpO2o9UixRfHxtfHxrPygwLGguZGVmYXVsdCkoTCk/aj1MOigwLHYuZGVmYXVsdCkoTCk/aj0oMCxmLmRlZmF1bHQpKEwpOm0/KHg9ITEsaj0oMCxsLmRlZmF1bHQpKFIsITApKTprPyh4PSExLGo9KDAscy5kZWZhdWx0KShSLCEwKSk6aj1bXTooMCxiLmRlZmF1bHQpKFIpfHwoMCxjLmRlZmF1bHQpKFIpPyhqPUwsKDAsYy5kZWZhdWx0KShMKT9qPU0oTCk6KDAsXy5kZWZhdWx0KShMKSYmISgwLHcuZGVmYXVsdCkoTCl8fChqPSgwLGQuZGVmYXVsdCkoUikpKTp4PSExfXgmJihhLnNldChSLGopLGkoaixSLHIsdSxhKSxhLmRlbGV0ZShSKSksbyh0LG4sail9fTtjb25zdCBqPWZ1bmN0aW9uIHQoZSxuLGksdSxsKXtlIT09biYmKDAsYS5kZWZhdWx0KShuLChmdW5jdGlvbihhLHMpe2lmKGx8fChsPW5ldyByLmRlZmF1bHQpLCgwLF8uZGVmYXVsdCkoYSkpTyhlLG4scyxpLHQsdSxsKTtlbHNle3ZhciBmPXU/dShnKGUscyksYSxzKyIiLGUsbixsKTp2b2lkIDA7dm9pZCAwPT09ZiYmKGY9YSksbyhlLHMsZil9fSksUi5kZWZhdWx0KX19LDY0NTM3Nih0LGUsbil7bi5kKGUse2RlZmF1bHQ6KCk9Pm99KTt2YXIgcj1uKDIzMjg1NCksaT1uKDM3MjAzNSksdT1uKDcwOTA1MSk7Y29uc3Qgbz1mdW5jdGlvbih0LGUpe3JldHVybigwLHUuZGVmYXVsdCkoKDAsaS5kZWZhdWx0KSh0LGUsci5kZWZhdWx0KSx0KyIiKX19LDU3NDY2OSh0LGUsbil7bi5kKGUse2RlZmF1bHQ6KCk9PnV9KTt2YXIgcj1uKDY0NTM3NiksaT1uKDg1NDg5NCk7Y29uc3QgdT1mdW5jdGlvbih0KXtyZXR1cm4oMCxyLmRlZmF1bHQpKChmdW5jdGlvbihlLG4pe3ZhciByPS0xLHU9bi5sZW5ndGgsbz11PjE/blt1LTFdOnZvaWQgMCxhPXU+Mj9uWzJdOnZvaWQgMDtmb3Iobz10Lmxlbmd0aD4zJiYiZnVuY3Rpb24iPT10eXBlb2Ygbz8odS0tLG8pOnZvaWQgMCxhJiYoMCxpLmRlZmF1bHQpKG5bMF0sblsxXSxhKSYmKG89dTwzP3ZvaWQgMDpvLHU9MSksZT1PYmplY3QoZSk7KytyPHU7KXt2YXIgbD1uW3JdO2wmJnQoZSxsLHIsbyl9cmV0dXJuIGV9KSl9fSw4NTQ4OTQodCxlLG4pe24uZChlLHtkZWZhdWx0OigpPT5hfSk7dmFyIHI9big5MTA3NzgpLGk9bigzOTI5MDgpLHU9big5MjExNDMpLG89big4ODAxMTUpO2NvbnN0IGE9ZnVuY3Rpb24odCxlLG4pe2lmKCEoMCxvLmRlZmF1bHQpKG4pKXJldHVybiExO3ZhciBhPXR5cGVvZiBlO3JldHVybiEhKCJudW1iZXIiPT1hPygwLGkuZGVmYXVsdCkobikmJigwLHUuZGVmYXVsdCkoZSxuLmxlbmd0aCk6InN0cmluZyI9PWEmJmUgaW4gbikmJigwLHIuZGVmYXVsdCkobltlXSx0KX19LDM3MjAzNSh0LGUsbil7bi5kKGUse2RlZmF1bHQ6KCk9PnV9KTt2YXIgcj1uKDc4OTI4NyksaT1NYXRoLm1heDtjb25zdCB1PWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gZT1pKHZvaWQgMD09PWU/dC5sZW5ndGgtMTplLDApLGZ1bmN0aW9uKCl7Zm9yKHZhciB1PWFyZ3VtZW50cyxvPS0xLGE9aSh1Lmxlbmd0aC1lLDApLGw9QXJyYXkoYSk7KytvPGE7KWxbb109dVtlK29dO289LTE7Zm9yKHZhciBzPUFycmF5KGUrMSk7KytvPGU7KXNbb109dVtvXTtyZXR1cm4gc1tlXT1uKGwpLCgwLHIuZGVmYXVsdCkodCx0aGlzLHMpfX19LDcwOTA1MSh0LGUsbil7bi5kKGUse2RlZmF1bHQ6KCk9PmF9KTt2YXIgcj1uKDEyODA3NiksaT1uKDM2MDQ5KSx1PW4oMjMyODU0KTtjb25zdCBvPWkuZGVmYXVsdD9mdW5jdGlvbih0LGUpe3JldHVybigwLGkuZGVmYXVsdCkodCwidG9TdHJpbmciLHtjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMSx2YWx1ZTooMCxyLmRlZmF1bHQpKGUpLHdyaXRhYmxlOiEwfSl9OnUuZGVmYXVsdDtjb25zdCBhPSgwLG4oOTQ4NTczKS5kZWZhdWx0KShvKX0sOTQ4NTczKHQsZSxuKXtuLmQoZSx7ZGVmYXVsdDooKT0+aX0pO3ZhciByPURhdGUubm93O2NvbnN0IGk9ZnVuY3Rpb24odCl7dmFyIGU9MCxuPTA7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGk9cigpLHU9MTYtKGktbik7aWYobj1pLHU+MCl7aWYoKytlPj04MDApcmV0dXJuIGFyZ3VtZW50c1swXX1lbHNlIGU9MDtyZXR1cm4gdC5hcHBseSh2b2lkIDAsYXJndW1lbnRzKX19fSwxMjgwNzYodCxlLG4pe24uZChlLHtkZWZhdWx0OigpPT5yfSk7Y29uc3Qgcj1mdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdH19fSwyMzI4NTQodCxlLG4pe24uZChlLHtkZWZhdWx0OigpPT5yfSk7Y29uc3Qgcj1mdW5jdGlvbih0KXtyZXR1cm4gdH19LDIzOTYzKHQsZSxuKXtuLmQoZSx7ZGVmYXVsdDooKT0+dX0pO3ZhciByPW4oMzkyOTA4KSxpPW4oMzYwNjIwKTtjb25zdCB1PWZ1bmN0aW9uKHQpe3JldHVybigwLGkuZGVmYXVsdCkodCkmJigwLHIuZGVmYXVsdCkodCl9fSw5MzE0MzModCxlLG4pe24uZChlLHtkZWZhdWx0OigpPT5kfSk7dmFyIHI9bigxNzg0OTcpLGk9bigzOTI1NDUpLHU9bigzNjA2MjApLG89RnVuY3Rpb24ucHJvdG90eXBlLGE9T2JqZWN0LnByb3RvdHlwZSxsPW8udG9TdHJpbmcscz1hLmhhc093blByb3BlcnR5LGY9bC5jYWxsKE9iamVjdCk7Y29uc3QgZD1mdW5jdGlvbih0KXtpZighKDAsdS5kZWZhdWx0KSh0KXx8IltvYmplY3QgT2JqZWN0XSIhPSgwLHIuZGVmYXVsdCkodCkpcmV0dXJuITE7dmFyIGU9KDAsaS5kZWZhdWx0KSh0KTtpZihudWxsPT09ZSlyZXR1cm4hMDt2YXIgbj1zLmNhbGwoZSwiY29uc3RydWN0b3IiKSYmZS5jb25zdHJ1Y3RvcjtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgbiYmbiBpbnN0YW5jZW9mIG4mJmwuY2FsbChuKT09Zn19LDc0MDE2Mih0LGUsbil7bi5kKGUse2RlZmF1bHQ6KCk9Pml9KTt2YXIgcj1uKDQ4MjYyKTtjb25zdCBpPSgwLG4oNTc0NjY5KS5kZWZhdWx0KSgoZnVuY3Rpb24odCxlLG4peygwLHIuZGVmYXVsdCkodCxlLG4pfSkpfX1dKTs="}},"time_used":13,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":13,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/55011.f9c0a3c09f7b8779aa37.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:13.783Z","timestamp":1785148033783,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/55011.f9c0a3c09f7b8779aa37.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:13 GMT\r\ncontent-type: text/css; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a4360b8-1f54\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Tue, 30 Jun 2026 06:22:48 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.57\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 06/30/2026 11:55:10\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 7d07ba36d1ab337355d8dc883f5a5da8\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":8020,"size_decoded":1910,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with very long lines (8020), with no line terminators","md5":"f0f2a6df78408bf96f6481a8d4c0f601","sha1":"c631397e79937484494158e38839d6e7e61fc647","sha256":"16ea95403cf2493fe63636ef9bccca8bc96aad6127f3d089ae7374caad43768f","sha512":"a5b165d61175f74d80f88c391c3c65e8bd9a1c6ea9d95bc184c93b61cda87117860c156c65aefd877fdb93c465bb755928d2f7872aa5ba05a1f9af74abcfe58d","ssdeep":"96:14pXCl+y3XsOna+yTRehcZOdBXysBKeYyeY+xRkkxRkfyVa+yTRehcv99BDB1PAq:K6aZV5OdB1BMTkkTkfsaZVP99BDB1PAq","tlshash":"8ef14c8df1e2957a170b312d4281c254572ba8c0ea56e7e97c7e72c840cebd502be92f","first_seen":"2026-06-30T21:57:43.329237Z","last_seen":"2026-07-27T12:48:39.615526Z","times_seen":257,"resource_available":false,"data":"LmJ1dHRvbi1IZEtoY1R5ZXthbGw6dW5zZXQ7YWxpZ24taXRlbXM6Y2VudGVyO2JveC1zaXppbmc6Ym9yZGVyLWJveDtjdXJzb3I6ZGVmYXVsdDtkaXNwbGF5OmZsZXg7aGVpZ2h0OjEwMCU7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kLWNvbG9yIDYwbXMgZWFzZSxvcGFjaXR5IDYwbXMgZWFzZSxjb2xvciA2MG1zIGVhc2U7LS10di10b29sYmFyLWV4cGxpY2l0LWhvdmVyLWJvcmRlci1yYWRpdXM6NnB4Oy0tdHYtdG9vbC13aWRnZXQtYnV0dG9uLWludGVyYWN0aXZlLWJhY2tncm91bmQtY29sb3I6dmFyKC0tdHYtY29sb3ItdG9vbGJhci1idXR0b24tYmFja2dyb3VuZC1hY3RpdmUsdmFyKC0tY29sb3ItY29udGFpbmVyLWZpbGwtcHJpbWFyeS1uZXV0cmFsLWxpZ2h0KSk7LS10di10b29sLXdpZGdldC1idXR0b24taW50ZXJhY3RpdmUtYmFja2dyb3VuZC1ob3Zlci1jb2xvcjp2YXIoLS10di1jb2xvci10b29sYmFyLWJ1dHRvbi1iYWNrZ3JvdW5kLWFjdGl2ZS1ob3Zlcix2YXIoLS1jb2xvci1jb250YWluZXItZmlsbC1wcmltYXJ5LW5ldXRyYWwtbm9ybWFsKSk7Y29sb3I6dmFyKC0tdHYtY29sb3ItdG9vbGJhci1idXR0b24tdGV4dCx2YXIoLS1jb2xvci10b29sYmFyLWJ1dHRvbi10ZXh0KSl9LmJ1dHRvbi1IZEtoY1R5ZS5wcmVzc2VkLUhkS2hjVHlley0tdHYtdG9vbC13aWRnZXQtYnV0dG9uLWludGVyYWN0aXZlLWNvbG9yOnZhcigtLXR2LWNvbG9yLWl0ZW0tYWN0aXZlLXRleHQsdmFyKC0tY29sb3ItY29udGVudC1zZWNvbmRhcnktaW52ZXJzZSkpOy0tdHYtdG9vbC13aWRnZXQtYnV0dG9uLWludGVyYWN0aXZlLWJhY2tncm91bmQtY29sb3I6dmFyKC0tdHYtY29sb3ItdG9vbGJhci10b2dnbGUtYnV0dG9uLWJhY2tncm91bmQtYWN0aXZlLHZhcigtLWNvbG9yLWNvbnRhaW5lci1maWxsLXByaW1hcnktbmV1dHJhbC1leHRyYS1ib2xkKSk7LS10di10b29sLXdpZGdldC1idXR0b24taW50ZXJhY3RpdmUtYmFja2dyb3VuZC1ob3Zlci1jb2xvcjp2YXIoLS10di1jb2xvci10b29sYmFyLXRvZ2dsZS1idXR0b24tYmFja2dyb3VuZC1hY3RpdmUtaG92ZXIsdmFyKC0tY29sb3ItY29udGFpbmVyLWZpbGwtcHJpbWFyeS1uZXV0cmFsLWJvbGQpKX0uYnV0dG9uLUhkS2hjVHllLmhvdmVyLUhkS2hjVHllLC5idXR0b24tSGRLaGNUeWU6YWN0aXZle2NvbG9yOnZhcigtLXR2LWNvbG9yLXRvb2xiYXItYnV0dG9uLXRleHQtaG92ZXIsdmFyKC0tY29sb3ItdG9vbGJhci1idXR0b24tdGV4dC1ob3ZlcikpfUBtZWRpYSAoYW55LWhvdmVyOmhvdmVyKXsuYnV0dG9uLUhkS2hjVHllOmhvdmVye2NvbG9yOnZhcigtLXR2LWNvbG9yLXRvb2xiYXItYnV0dG9uLXRleHQtaG92ZXIsdmFyKC0tY29sb3ItdG9vbGJhci1idXR0b24tdGV4dC1ob3ZlcikpfX0uYnV0dG9uLUhkS2hjVHllLmNsaWNrZWQtSGRLaGNUeWUsLmJ1dHRvbi1IZEtoY1R5ZTphY3RpdmV7Y29sb3I6dmFyKC0tdHYtY29sb3ItdG9vbGJhci1idXR0b24tdGV4dC1jbGlja2VkLHZhcigtLXR2LWNvbG9yLXRvb2xiYXItYnV0dG9uLXRleHQtaG92ZXIsdmFyKC0tY29sb3ItdG9vbGJhci1idXR0b24tdGV4dC1ob3ZlcikpKX0uYnV0dG9uLUhkS2hjVHllIHN2Z3tkaXNwbGF5OmJsb2NrOy1tb3otdHJhbnNmb3JtOnRyYW5zbGF0ZVgoMCl9LmJ1dHRvbi1IZEtoY1R5ZS5pc0ludGVyYWN0aXZlLUhkS2hjVHlle3Bvc2l0aW9uOnJlbGF0aXZlO3otaW5kZXg6MH0uYnV0dG9uLUhkS2hjVHllLmlzSW50ZXJhY3RpdmUtSGRLaGNUeWU6YmVmb3Jle2JvcmRlci1yYWRpdXM6dmFyKC0tdHYtdG9vbGJhci1leHBsaWNpdC1ob3Zlci1ib3JkZXItcmFkaXVzLDJweCk7Ym90dG9tOnZhcigtLXR2LXRvb2xiYXItZXhwbGljaXQtaG92ZXItbWFyZ2luLWJvdHRvbSx2YXIoLS10di10b29sYmFyLWV4cGxpY2l0LWhvdmVyLW1hcmdpbiwycHgpKTtkaXNwbGF5OmJsb2NrO2luc2V0LWlubGluZS1lbmQ6dmFyKC0tdHYtdG9vbGJhci1leHBsaWNpdC1ob3Zlci1tYXJnaW4tcmlnaHQsdmFyKC0tdHYtdG9vbGJhci1leHBsaWNpdC1ob3Zlci1tYXJnaW4sMnB4KSk7aW5zZXQtaW5saW5lLXN0YXJ0OnZhcigtLXR2LXRvb2xiYXItZXhwbGljaXQtaG92ZXItbWFyZ2luLWxlZnQsdmFyKC0tdHYtdG9vbGJhci1leHBsaWNpdC1ob3Zlci1tYXJnaW4sMnB4KSk7b3V0bGluZTp2YXIoLS1jb2xvci10di1ibHVlLTUwMCkgbm9uZSAycHg7cG9zaXRpb246YWJzb2x1dGU7dG9wOnZhcigtLXR2LXRvb2xiYXItZXhwbGljaXQtaG92ZXItbWFyZ2luLXRvcCx2YXIoLS10di10b29sYmFyLWV4cGxpY2l0LWhvdmVyLW1hcmdpbiwycHgpKTt6LWluZGV4Oi0xfS5idXR0b24tSGRLaGNUeWUuaXNJbnRlcmFjdGl2ZS1IZEtoY1R5ZS5ob3Zlci1IZEtoY1R5ZTpiZWZvcmUsLmJ1dHRvbi1IZEtoY1R5ZS5pc0ludGVyYWN0aXZlLUhkS2hjVHllOmFjdGl2ZTpiZWZvcmV7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS10di1jb2xvci10b29sYmFyLWJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyLHZhcigtLWNvbG9yLXRvb2xiYXItYnV0dG9uLWJhY2tncm91bmQtaG92ZXIpKTtjb250ZW50OiIifUBtZWRpYSAoYW55LWhvdmVyOmhvdmVyKXsuYnV0dG9uLUhkS2hjVHllLmlzSW50ZXJhY3RpdmUtSGRLaGNUeWU6aG92ZXI6YmVmb3Jle2JhY2tncm91bmQtY29sb3I6dmFyKC0tdHYtY29sb3ItdG9vbGJhci1idXR0b24tYmFja2dyb3VuZC1ob3Zlcix2YXIoLS1jb2xvci10b29sYmFyLWJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyKSk7Y29udGVudDoiIn19LmJ1dHRvbi1IZEtoY1R5ZS5pc0ludGVyYWN0aXZlLUhkS2hjVHllLmNsaWNrZWQtSGRLaGNUeWU6YmVmb3JlLC5idXR0b24tSGRLaGNUeWUuaXNJbnRlcmFjdGl2ZS1IZEtoY1R5ZTphY3RpdmU6YmVmb3Jle2JhY2tncm91bmQtY29sb3I6dmFyKC0tdHYtY29sb3ItdG9vbGJhci1idXR0b24tYmFja2dyb3VuZC1jbGlja2VkLHZhcigtLXR2LWNvbG9yLXRvb2xiYXItYnV0dG9uLWJhY2tncm91bmQtaG92ZXIsdmFyKC0tY29sb3ItdG9vbGJhci1idXR0b24tYmFja2dyb3VuZC1ob3ZlcikpKTtjb250ZW50OiIifS5idXR0b24tSGRLaGNUeWUuaXNJbnRlcmFjdGl2ZS1IZEtoY1R5ZS5hY2Nlc3NpYmxlLUhkS2hjVHllOmZvY3VzLXZpc2libGU6YmVmb3Jle2NvbnRlbnQ6IiI7b3V0bGluZS1zdHlsZTpzb2xpZH0uYnV0dG9uLUhkS2hjVHllLmlzSW50ZXJhY3RpdmUtSGRLaGNUeWUuaXNBY3RpdmUtSGRLaGNUeWV7Y29sb3I6dmFyKC0tdHYtdG9vbC13aWRnZXQtYnV0dG9uLWludGVyYWN0aXZlLWNvbG9yLHZhcigtLXR2LWNvbG9yLXRvb2xiYXItYnV0dG9uLXRleHQtYWN0aXZlKSk7LS10di1jb2xvci10b29sYmFyLWJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyOnZhcigtLXR2LXRvb2wtd2lkZ2V0LWJ1dHRvbi1pbnRlcmFjdGl2ZS1iYWNrZ3JvdW5kLWNvbG9yKX0uYnV0dG9uLUhkS2hjVHllLmlzSW50ZXJhY3RpdmUtSGRLaGNUeWUuaXNBY3RpdmUtSGRLaGNUeWU6YmVmb3Jle2JhY2tncm91bmQtY29sb3I6dmFyKC0tdHYtY29sb3ItdG9vbGJhci1idXR0b24tYmFja2dyb3VuZC1ob3Zlcik7Y29udGVudDoiIn0uYnV0dG9uLUhkS2hjVHllLmlzSW50ZXJhY3RpdmUtSGRLaGNUeWUuaXNBY3RpdmUtSGRLaGNUeWUuaG92ZXItSGRLaGNUeWUsLmJ1dHRvbi1IZEtoY1R5ZS5pc0ludGVyYWN0aXZlLUhkS2hjVHllLmlzQWN0aXZlLUhkS2hjVHllOmFjdGl2ZXtjb2xvcjp2YXIoLS10di10b29sLXdpZGdldC1idXR0b24taW50ZXJhY3RpdmUtaG92ZXItY29sb3IsdmFyKC0tdHYtdG9vbC13aWRnZXQtYnV0dG9uLWludGVyYWN0aXZlLWNvbG9yLHZhcigtLXR2LWNvbG9yLXRvb2xiYXItYnV0dG9uLXRleHQtYWN0aXZlLWhvdmVyKSkpOy0tdHYtY29sb3ItdG9vbGJhci1idXR0b24tYmFja2dyb3VuZC1ob3Zlcjp2YXIoLS10di10b29sLXdpZGdldC1idXR0b24taW50ZXJhY3RpdmUtYmFja2dyb3VuZC1ob3Zlci1jb2xvcil9QG1lZGlhIChhbnktaG92ZXI6aG92ZXIpey5idXR0b24tSGRLaGNUeWUuaXNJbnRlcmFjdGl2ZS1IZEtoY1R5ZS5pc0FjdGl2ZS1IZEtoY1R5ZTpob3Zlcntjb2xvcjp2YXIoLS10di10b29sLXdpZGdldC1idXR0b24taW50ZXJhY3RpdmUtaG92ZXItY29sb3IsdmFyKC0tdHYtdG9vbC13aWRnZXQtYnV0dG9uLWludGVyYWN0aXZlLWNvbG9yLHZhcigtLXR2LWNvbG9yLXRvb2xiYXItYnV0dG9uLXRleHQtYWN0aXZlLWhvdmVyKSkpOy0tdHYtY29sb3ItdG9vbGJhci1idXR0b24tYmFja2dyb3VuZC1ob3Zlcjp2YXIoLS10di10b29sLXdpZGdldC1idXR0b24taW50ZXJhY3RpdmUtYmFja2dyb3VuZC1ob3Zlci1jb2xvcil9fS5idXR0b24tSGRLaGNUeWUuaXNJbnRlcmFjdGl2ZS1IZEtoY1R5ZS5pc09wZW5lZC1IZEtoY1R5ZS5ob3Zlci1IZEtoY1R5ZTpiZWZvcmUsLmJ1dHRvbi1IZEtoY1R5ZS5pc0ludGVyYWN0aXZlLUhkS2hjVHllLmlzT3BlbmVkLUhkS2hjVHllOmFjdGl2ZTpiZWZvcmUsLmJ1dHRvbi1IZEtoY1R5ZS5pc0ludGVyYWN0aXZlLUhkS2hjVHllLmlzT3BlbmVkLUhkS2hjVHllOmJlZm9yZXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXR2LWNvbG9yLXRvb2xiYXItYnV0dG9uLWJhY2tncm91bmQtZXhwYW5kZWQsdmFyKC0tY29sb3ItdG9vbGJhci1vcGVuZWQtZWxlbWVudC1iZykpO2JvcmRlci1yYWRpdXM6dmFyKC0tdHYtdG9vbGJhci1vcGVuZWQtZWxlbWVudC1ob3Zlci1ib3JkZXItcmFkaXVzLDApO2JvdHRvbTp2YXIoLS10di10b29sYmFyLW9wZW5lZC1lbGVtZW50LWhvdmVyLW1hcmdpbiwwKTtjb250ZW50OiIiO2Rpc3BsYXk6YmxvY2s7aW5zZXQtaW5saW5lLWVuZDp2YXIoLS10di10b29sYmFyLW9wZW5lZC1lbGVtZW50LWhvdmVyLW1hcmdpbiwwKTtpbnNldC1pbmxpbmUtc3RhcnQ6dmFyKC0tdHYtdG9vbGJhci1vcGVuZWQtZWxlbWVudC1ob3Zlci1tYXJnaW4sMCk7cG9zaXRpb246YWJzb2x1dGU7dG9wOnZhcigtLXR2LXRvb2xiYXItb3BlbmVkLWVsZW1lbnQtaG92ZXItbWFyZ2luLDApO3otaW5kZXg6LTF9QG1lZGlhIChhbnktaG92ZXI6aG92ZXIpey5idXR0b24tSGRLaGNUeWUuaXNJbnRlcmFjdGl2ZS1IZEtoY1R5ZS5pc09wZW5lZC1IZEtoY1R5ZTpob3ZlcjpiZWZvcmV7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS10di1jb2xvci10b29sYmFyLWJ1dHRvbi1iYWNrZ3JvdW5kLWV4cGFuZGVkLHZhcigtLWNvbG9yLXRvb2xiYXItb3BlbmVkLWVsZW1lbnQtYmcpKTtib3JkZXItcmFkaXVzOnZhcigtLXR2LXRvb2xiYXItb3BlbmVkLWVsZW1lbnQtaG92ZXItYm9yZGVyLXJhZGl1cywwKTtib3R0b206dmFyKC0tdHYtdG9vbGJhci1vcGVuZWQtZWxlbWVudC1ob3Zlci1tYXJnaW4sMCk7Y29udGVudDoiIjtkaXNwbGF5OmJsb2NrO2luc2V0LWlubGluZS1lbmQ6dmFyKC0tdHYtdG9vbGJhci1vcGVuZWQtZWxlbWVudC1ob3Zlci1tYXJnaW4sMCk7aW5zZXQtaW5saW5lLXN0YXJ0OnZhcigtLXR2LXRvb2xiYXItb3BlbmVkLWVsZW1lbnQtaG92ZXItbWFyZ2luLDApO3Bvc2l0aW9uOmFic29sdXRlO3RvcDp2YXIoLS10di10b29sYmFyLW9wZW5lZC1lbGVtZW50LWhvdmVyLW1hcmdpbiwwKTt6LWluZGV4Oi0xfX0uYnV0dG9uLUhkS2hjVHllLmlzSW50ZXJhY3RpdmUtSGRLaGNUeWUuaXNPcGVuZWQtSGRLaGNUeWUuY2xpY2tlZC1IZEtoY1R5ZTpiZWZvcmUsLmJ1dHRvbi1IZEtoY1R5ZS5pc0ludGVyYWN0aXZlLUhkS2hjVHllLmlzT3BlbmVkLUhkS2hjVHllOmFjdGl2ZTpiZWZvcmV7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS10di1jb2xvci10b29sYmFyLWJ1dHRvbi1iYWNrZ3JvdW5kLWNsaWNrZWQsdmFyKC0tdHYtY29sb3ItdG9vbGJhci1idXR0b24tYmFja2dyb3VuZC1leHBhbmRlZCx2YXIoLS1jb2xvci10b29sYmFyLW9wZW5lZC1lbGVtZW50LWJnKSkpO2NvbnRlbnQ6IiI7ZGlzcGxheTpibG9ja30uYnV0dG9uLUhkS2hjVHllLmlzRGlzYWJsZWQtSGRLaGNUeWV7b3BhY2l0eTouNX0uYnV0dG9uLUhkS2hjVHllLmlzRGlzYWJsZWQtSGRLaGNUeWUuaXNBY3RpdmUtSGRLaGNUeWV7Y29sb3I6dmFyKC0tdHYtdG9vbC13aWRnZXQtYnV0dG9uLWludGVyYWN0aXZlLWNvbG9yLHZhcigtLXR2LWNvbG9yLXRvb2xiYXItYnV0dG9uLXRleHQtYWN0aXZlKSk7cG9zaXRpb246cmVsYXRpdmU7ei1pbmRleDowOy0tdHYtY29sb3ItdG9vbGJhci1idXR0b24tYmFja2dyb3VuZC1ob3Zlcjp2YXIoLS10di10b29sLXdpZGdldC1idXR0b24taW50ZXJhY3RpdmUtYmFja2dyb3VuZC1jb2xvcil9LmJ1dHRvbi1IZEtoY1R5ZS5pc0Rpc2FibGVkLUhkS2hjVHllLmlzQWN0aXZlLUhkS2hjVHllOmJlZm9yZXtib3JkZXItcmFkaXVzOnZhcigtLXR2LXRvb2xiYXItZXhwbGljaXQtaG92ZXItYm9yZGVyLXJhZGl1cywycHgpO2JvdHRvbTp2YXIoLS10di10b29sYmFyLWV4cGxpY2l0LWhvdmVyLW1hcmdpbi1ib3R0b20sdmFyKC0tdHYtdG9vbGJhci1leHBsaWNpdC1ob3Zlci1tYXJnaW4sMnB4KSk7ZGlzcGxheTpibG9jaztpbnNldC1pbmxpbmUtZW5kOnZhcigtLXR2LXRvb2xiYXItZXhwbGljaXQtaG92ZXItbWFyZ2luLXJpZ2h0LHZhcigtLXR2LXRvb2xiYXItZXhwbGljaXQtaG92ZXItbWFyZ2luLDJweCkpO2luc2V0LWlubGluZS1zdGFydDp2YXIoLS10di10b29sYmFyLWV4cGxpY2l0LWhvdmVyLW1hcmdpbi1sZWZ0LHZhcigtLXR2LXRvb2xiYXItZXhwbGljaXQtaG92ZXItbWFyZ2luLDJweCkpO291dGxpbmU6dmFyKC0tY29sb3ItdHYtYmx1ZS01MDApIG5vbmUgMnB4O3Bvc2l0aW9uOmFic29sdXRlO3RvcDp2YXIoLS10di10b29sYmFyLWV4cGxpY2l0LWhvdmVyLW1hcmdpbi10b3AsdmFyKC0tdHYtdG9vbGJhci1leHBsaWNpdC1ob3Zlci1tYXJnaW4sMnB4KSk7ei1pbmRleDotMX0uYnV0dG9uLUhkS2hjVHllLmlzRGlzYWJsZWQtSGRLaGNUeWUuaXNBY3RpdmUtSGRLaGNUeWUuaG92ZXItSGRLaGNUeWU6YmVmb3JlLC5idXR0b24tSGRLaGNUeWUuaXNEaXNhYmxlZC1IZEtoY1R5ZS5pc0FjdGl2ZS1IZEtoY1R5ZTphY3RpdmU6YmVmb3Jle2JhY2tncm91bmQtY29sb3I6dmFyKC0tdHYtY29sb3ItdG9vbGJhci1idXR0b24tYmFja2dyb3VuZC1ob3Zlcix2YXIoLS1jb2xvci10b29sYmFyLWJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyKSk7Y29udGVudDoiIn1AbWVkaWEgKGFueS1ob3Zlcjpob3Zlcil7LmJ1dHRvbi1IZEtoY1R5ZS5pc0Rpc2FibGVkLUhkS2hjVHllLmlzQWN0aXZlLUhkS2hjVHllOmhvdmVyOmJlZm9yZXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXR2LWNvbG9yLXRvb2xiYXItYnV0dG9uLWJhY2tncm91bmQtaG92ZXIsdmFyKC0tY29sb3ItdG9vbGJhci1idXR0b24tYmFja2dyb3VuZC1ob3ZlcikpO2NvbnRlbnQ6IiJ9fS5idXR0b24tSGRLaGNUeWUuaXNEaXNhYmxlZC1IZEtoY1R5ZS5pc0FjdGl2ZS1IZEtoY1R5ZS5jbGlja2VkLUhkS2hjVHllOmJlZm9yZSwuYnV0dG9uLUhkS2hjVHllLmlzRGlzYWJsZWQtSGRLaGNUeWUuaXNBY3RpdmUtSGRLaGNUeWU6YWN0aXZlOmJlZm9yZXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXR2LWNvbG9yLXRvb2xiYXItYnV0dG9uLWJhY2tncm91bmQtY2xpY2tlZCx2YXIoLS10di1jb2xvci10b29sYmFyLWJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyLHZhcigtLWNvbG9yLXRvb2xiYXItYnV0dG9uLWJhY2tncm91bmQtaG92ZXIpKSk7Y29udGVudDoiIn0uYnV0dG9uLUhkS2hjVHllLmlzRGlzYWJsZWQtSGRLaGNUeWUuaXNBY3RpdmUtSGRLaGNUeWUuYWNjZXNzaWJsZS1IZEtoY1R5ZTpmb2N1cy12aXNpYmxlOmJlZm9yZXtjb250ZW50OiIiO291dGxpbmUtc3R5bGU6c29saWR9LmJ1dHRvbi1IZEtoY1R5ZS5pc0Rpc2FibGVkLUhkS2hjVHllLmlzQWN0aXZlLUhkS2hjVHllOmJlZm9yZXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXR2LWNvbG9yLXRvb2xiYXItYnV0dG9uLWJhY2tncm91bmQtaG92ZXIpO2NvbnRlbnQ6IiJ9LmVuZEljb24tSGRLaGNUeWUsLmljb24tSGRLaGNUeWUrLnRleHQtSGRLaGNUeWUsLnRleHQtSGRLaGNUeWUrLmljb24tSGRLaGNUeWV7bWFyZ2luLWlubGluZS1zdGFydDo0cHh9LmVuZEljb24tSGRLaGNUeWV7ZGlzcGxheTpmbGV4fQ=="}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/75304.174496dbf62bc90db59a.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:13.968Z","timestamp":1785148033968,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/75304.174496dbf62bc90db59a.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:13 GMT\r\ncontent-type: text/css; charset=utf-8\r\ncontent-length: 32\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\netag: \"6a58ab11-20\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Thu, 16 Jul 2026 09:57:37 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/16/2026 11:03:40\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 556323610eecf7517052d3ec1f20a1af\r\ncdn-cache: HIT\r\naccept-ranges: bytes\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":32,"size_decoded":816,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with no line terminators","md5":"10831c7be3a76a74645935347043e2b5","sha1":"b94e8e987207e65fcaacb92d7fe9b6abae350446","sha256":"02392cb348576ae4401ed04ea67dc7a708f88cf080b321001192ee8fdfbee047","sha512":"41692d9ad3993dc97c90842a9f189a9a277965aef5fd1d867477557e363ee994e2b1b5d574c54d283206deedf65ad81600a071f6be8114830168dcbfb724f32b","ssdeep":"","tlshash":"bb8004d170053c3c00077000053340c7dc5140c1cd731451500453415f140750103510","first_seen":"2023-06-28T13:47:54Z","last_seen":"2026-07-27T12:53:42.578536Z","times_seen":1516,"resource_available":false,"data":"LnVpLWRyYWdnYWJsZXt0b3VjaC1hY3Rpb246bm9uZX0="}},"time_used":3,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":3,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/1331.54fd2a5952c88f3555c1.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.565Z","timestamp":1785148034565,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/1331.54fd2a5952c88f3555c1.js HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a632877-2d2b1\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Fri, 24 Jul 2026 08:55:19 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/24/2026 10:31:24\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 2bb6815ee01d67963267bb7afb6e4dea\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":185009,"size_decoded":63168,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, Unicode text, UTF-8 text, with very long lines (3070)","md5":"0501ef2557ab73aa0e242f1410552693","sha1":"e569c953f6e6c95a9d3cbba1ae1b93120b4e136d","sha256":"c76b72cbdcf6fee1dc0fd1903df2e2e2c90f846b942f16951116443d4f041177","sha512":"27a42e4490c90aff8af7a9c0804160d4efd88924878164391ac4442baa4c5faebd5f55f7f730976feb526d62386ba9a31ac50a3b568cac3216b0f60ecfee827b","ssdeep":"3072:COeUpW3gc3TJqv4ub7HlfzVV3Mze+wyQlmcnbmfH48J24NnUxsLIymKS:COeUpB42HlfzwAyEPbUH48Y4uxsLIyw","tlshash":"52045a61b440b67e92f304db94be1489e73d2b49e4044474f26dcc9e2ae9c88f17af79","first_seen":"2026-07-24T15:28:44.734426Z","last_seen":"2026-07-27T12:48:39.745493Z","times_seen":54,"resource_available":true,"data":"KHNlbGYud2VicGFja0NodW5rdHJhZGluZ3ZpZXc9c2VsZi53ZWJwYWNrQ2h1bmt0cmFkaW5ndmlld3x8W10pLnB1c2goW1sxMzMxXSx7ODUzMzM2KGUsdCl7dmFyIG4scixvO3I9W3RdLG49ZnVuY3Rpb24oZSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHQoZSl7aWYoQXJyYXkuaXNBcnJheShlKSl7Zm9yKHZhciB0PTAsbj1BcnJheShlLmxlbmd0aCk7dDxlLmxlbmd0aDt0Kyspblt0XT1lW3RdO3JldHVybiBufXJldHVybiBBcnJheS5mcm9tKGUpfU9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgbj0hMTtpZigidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdyl7dmFyIHI9e2dldCBwYXNzaXZlKCl7bj0hMH19O3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJ0ZXN0UGFzc2l2ZSIsbnVsbCxyKSx3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigidGVzdFBhc3NpdmUiLG51bGwscil9dmFyIG89InVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3cmJndpbmRvdy5uYXZpZ2F0b3ImJndpbmRvdy5uYXZpZ2F0b3IucGxhdGZvcm0mJi9pUChhZHxob25lfG9kKS8udGVzdCh3aW5kb3cubmF2aWdhdG9yLnBsYXRmb3JtKSxsPVtdLGE9ITEscz0tMSxpPXZvaWQgMCxjPXZvaWQgMCx1PWZ1bmN0aW9uKGUpe3JldHVybiBsLnNvbWUoKGZ1bmN0aW9uKHQpe3JldHVybiEoIXQub3B0aW9ucy5hbGxvd1RvdWNoTW92ZXx8IXQub3B0aW9ucy5hbGxvd1RvdWNoTW92ZShlKSl9KSl9LGQ9ZnVuY3Rpb24oZSl7dmFyIHQ9ZXx8d2luZG93LmV2ZW50O3JldHVybiEhdSh0LnRhcmdldCl8fDE8dC50b3VjaGVzLmxlbmd0aHx8KHQucHJldmVudERlZmF1bHQmJnQucHJldmVudERlZmF1bHQoKSwhMSl9LG09ZnVuY3Rpb24oKXtzZXRUaW1lb3V0KChmdW5jdGlvbigpe3ZvaWQgMCE9PWMmJihkb2N1bWVudC5ib2R5LnN0eWxlLnBhZGRpbmdSaWdodD1jLGM9dm9pZCAwKSx2b2lkIDAhPT1pJiYoZG9jdW1lbnQuYm9keS5zdHlsZS5vdmVyZmxvdz1pLGk9dm9pZCAwKX0pKX07ZS5kaXNhYmxlQm9keVNjcm9sbD1mdW5jdGlvbihlLHIpe2lmKG8pe2lmKCFlKXJldHVybiB2b2lkIGNvbnNvbGUuZXJyb3IoImRpc2FibGVCb2R5U2Nyb2xsIHVuc3VjY2Vzc2Z1bCAtIHRhcmdldEVsZW1lbnQgbXVzdCBiZSBwcm92aWRlZCB3aGVuIGNhbGxpbmcgZGlzYWJsZUJvZHlTY3JvbGwgb24gSU9TIGRldmljZXMuIik7aWYoZSYmIWwuc29tZSgoZnVuY3Rpb24odCl7cmV0dXJuIHQudGFyZ2V0RWxlbWVudD09PWV9KSkpe3ZhciBtPXt0YXJnZXRFbGVtZW50OmUsb3B0aW9uczpyfHx7fX07bD1bXS5jb25jYXQodChsKSxbbV0pLGUub250b3VjaHN0YXJ0PWZ1bmN0aW9uKGUpezE9PT1lLnRhcmdldFRvdWNoZXMubGVuZ3RoJiYocz1lLnRhcmdldFRvdWNoZXNbMF0uY2xpZW50WSl9LGUub250b3VjaG1vdmU9ZnVuY3Rpb24odCl7dmFyIG4scixvLGw7MT09PXQudGFyZ2V0VG91Y2hlcy5sZW5ndGgmJihyPWUsbD0obj10KS50YXJnZXRUb3VjaGVzWzBdLmNsaWVudFktcywhdShuLnRhcmdldCkmJihyJiYwPT09ci5zY3JvbGxUb3AmJjA8bHx8KG89cikmJm8uc2Nyb2xsSGVpZ2h0LW8uc2Nyb2xsVG9wPD1vLmNsaWVudEhlaWdodCYmbDwwP2Qobik6bi5zdG9wUHJvcGFnYXRpb24oKSkpfSxhfHwoZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2htb3ZlIixkLG4/e3Bhc3NpdmU6ITF9OnZvaWQgMCksYT0hMCl9fWVsc2V7aD1yLHNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7aWYodm9pZCAwPT09Yyl7dmFyIGU9ISFoJiYhMD09PWgucmVzZXJ2ZVNjcm9sbEJhckdhcCx0PXdpbmRvdy5pbm5lcldpZHRoLWRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aDtlJiYwPHQmJihjPWRvY3VtZW50LmJvZHkuc3R5bGUucGFkZGluZ1JpZ2h0LGRvY3VtZW50LmJvZHkuc3R5bGUucGFkZGluZ1JpZ2h0PXQrInB4Iil9dm9pZCAwPT09aSYmKGk9ZG9jdW1lbnQuYm9keS5zdHlsZS5vdmVyZmxvdyxkb2N1bWVudC5ib2R5LnN0eWxlLm92ZXJmbG93PSJoaWRkZW4iKX0pKTt2YXIgcD17dGFyZ2V0RWxlbWVudDplLG9wdGlvbnM6cnx8e319O2w9W10uY29uY2F0KHQobCksW3BdKX12YXIgaH0sZS5jbGVhckFsbEJvZHlTY3JvbGxMb2Nrcz1mdW5jdGlvbigpe28/KGwuZm9yRWFjaCgoZnVuY3Rpb24oZSl7ZS50YXJnZXRFbGVtZW50Lm9udG91Y2hzdGFydD1udWxsLGUudGFyZ2V0RWxlbWVudC5vbnRvdWNobW92ZT1udWxsfSkpLGEmJihkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJ0b3VjaG1vdmUiLGQsbj97cGFzc2l2ZTohMX06dm9pZCAwKSxhPSExKSxsPVtdLHM9LTEpOihtKCksbD1bXSl9LGUuZW5hYmxlQm9keVNjcm9sbD1mdW5jdGlvbihlKXtpZihvKXtpZighZSlyZXR1cm4gdm9pZCBjb25zb2xlLmVycm9yKCJlbmFibGVCb2R5U2Nyb2xsIHVuc3VjY2Vzc2Z1bCAtIHRhcmdldEVsZW1lbnQgbXVzdCBiZSBwcm92aWRlZCB3aGVuIGNhbGxpbmcgZW5hYmxlQm9keVNjcm9sbCBvbiBJT1MgZGV2aWNlcy4iKTtlLm9udG91Y2hzdGFydD1udWxsLGUub250b3VjaG1vdmU9bnVsbCxsPWwuZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4gdC50YXJnZXRFbGVtZW50IT09ZX0pKSxhJiYwPT09bC5sZW5ndGgmJihkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJ0b3VjaG1vdmUiLGQsbj97cGFzc2l2ZTohMX06dm9pZCAwKSxhPSExKX1lbHNlIDE9PT1sLmxlbmd0aCYmbFswXS50YXJnZXRFbGVtZW50PT09ZT8obSgpLGw9W10pOmw9bC5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiB0LnRhcmdldEVsZW1lbnQhPT1lfSkpfX0sdm9pZCAwPT09KG89ImZ1bmN0aW9uIj09dHlwZW9mIG4/bi5hcHBseSh0LHIpOm4pfHwoZS5leHBvcnRzPW8pfSw2MzIyMjAoZSl7InVzZSBzdHJpY3QiO3ZhciB0PU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7ZnVuY3Rpb24gbihlLHQpe3JldHVybiBlPT09dD8wIT09ZXx8MCE9PXR8fDEvZT09MS90OmUhPWUmJnQhPXR9ZS5leHBvcnRzPWZ1bmN0aW9uKGUscil7aWYobihlLHIpKXJldHVybiEwCjtpZigib2JqZWN0IiE9dHlwZW9mIGV8fG51bGw9PT1lfHwib2JqZWN0IiE9dHlwZW9mIHJ8fG51bGw9PT1yKXJldHVybiExO3ZhciBvPU9iamVjdC5rZXlzKGUpLGw9T2JqZWN0LmtleXMocik7aWYoby5sZW5ndGghPT1sLmxlbmd0aClyZXR1cm4hMTtmb3IodmFyIGE9MDthPG8ubGVuZ3RoO2ErKylpZighdC5jYWxsKHIsb1thXSl8fCFuKGVbb1thXV0scltvW2FdXSkpcmV0dXJuITE7cmV0dXJuITB9fSwzNTM3NDcoZSl7ZS5leHBvcnRzPXtjb250YWluZXI6ImNvbnRhaW5lci1ENl9uaE9NRiIsdGl0bGU6InRpdGxlLUQ2X25oT01GIix0aXRsZV9sYXJnZToidGl0bGVfbGFyZ2UtRDZfbmhPTUYiLGljb246Imljb24tRDZfbmhPTUYiLHRleHQ6InRleHQtRDZfbmhPTUYiLHRleHRfbm9ybWFsOiJ0ZXh0X25vcm1hbC1ENl9uaE9NRiIsYWN0aW9uOiJhY3Rpb24tRDZfbmhPTUYifX0sNTM2MjE5KGUpe2UuZXhwb3J0cz17aGlnaGxpZ2h0ZWQ6ImhpZ2hsaWdodGVkLVVzVHFua0wwIn19LDk5Mzk5NShlKXtlLmV4cG9ydHM9e2ljb25CdXR0b246Imljb25CdXR0b24tSEREVVlPQkkiLHNxdWFyZToic3F1YXJlLUhERFVZT0JJIixyb3VuZDoicm91bmQtSEREVVlPQkkiLHByaW1hcnk6InByaW1hcnktSEREVVlPQkkiLGljb246Imljb24tSEREVVlPQkkiLHNlY29uZGFyeToic2Vjb25kYXJ5LUhERFVZT0JJIix0ZXJ0aWFyeToidGVydGlhcnktSEREVVlPQkkiLCJwcmltYXJ5LXNwZWNpYWwiOiJwcmltYXJ5LXNwZWNpYWwtSEREVVlPQkkifX0sNDAyMjUzKGUpe2UuZXhwb3J0cz17bmF2QnV0dG9uOiJuYXZCdXR0b24taGJTSlZ4a1EiLGxpbms6ImxpbmstaGJTSlZ4a1EiLGJhY2tncm91bmQ6ImJhY2tncm91bmQtaGJTSlZ4a1EiLGljb246Imljb24taGJTSlZ4a1EiLGZsaXBJY29uOiJmbGlwSWNvbi1oYlNKVnhrUSIsbGFyZ2U6ImxhcmdlLWhiU0pWeGtRIixwcmVzZXJ2ZVBhZGRpbmdzOiJwcmVzZXJ2ZVBhZGRpbmdzLWhiU0pWeGtRIixtZWRpdW06Im1lZGl1bS1oYlNKVnhrUSIsc21hbGw6InNtYWxsLWhiU0pWeGtRIix4c21hbGw6InhzbWFsbC1oYlNKVnhrUSIseHhzbWFsbDoieHhzbWFsbC1oYlNKVnhrUSIsYmxlbmRNb2RlOiJibGVuZE1vZGUtaGJTSlZ4a1EiLHZpc3VhbGx5SGlkZGVuOiJ2aXN1YWxseUhpZGRlbi1oYlNKVnhrUSJ9fSwyMDMyNzMoZSl7ZS5leHBvcnRzPXtzY2FsYWJsZUljb246InNjYWxhYmxlSWNvbi1jajFiQVNmNyJ9fSw0MTM2OTEoZSl7ZS5leHBvcnRzPXt3cmFwcGVyOiJ3cmFwcGVyLUVpU0lCdjRkIn19LDc1MjI5NShlKXtlLmV4cG9ydHM9e3dyYXBwZXI6IndyYXBwZXItYm9IeW5lMTMifX0sNDYxNTE1KGUpe2UuZXhwb3J0cz17d3JhcHBlcjoid3JhcHBlci1hRGNTNGxlRyJ9fSwzMzA2NzEoZSl7ZS5leHBvcnRzPXt3cmFwcGVyOiJ3cmFwcGVyLWhUemZhdDk1In19LDY5Mjk1NihlKXtlLmV4cG9ydHM9e2NvbnRhaW5lcjoiY29udGFpbmVyLVRhRl9hWUVGIixmbGFnOiJmbGFnLVRhRl9hWUVGIixjb250ZW50OiJjb250ZW50LVRhRl9hWUVGIn19LDU0MDMwKGUpe2UuZXhwb3J0cz17cm9vdDoicm9vdC1Od0ZVWmNuUiIsY2hhaW46ImNoYWluLU53RlVaY25SIixzZWxlY3Rvcjoic2VsZWN0b3ItTndGVVpjblIiLGVtcHR5U3RhdGVJY29uOiJlbXB0eVN0YXRlSWNvbi1Od0ZVWmNuUiIsZW1wdHk6ImVtcHR5LU53RlVaY25SIn19LDg0Njc3OShlKXtlLmV4cG9ydHM9e3VuZGVybHlpbmdDZWxsOiJ1bmRlcmx5aW5nQ2VsbC1VY2NkSGxoZyIsdW5kZXJseWluZ0JhZGdlOiJ1bmRlcmx5aW5nQmFkZ2UtVWNjZEhsaGcifX0sMjA5NjAoZSl7ZS5leHBvcnRzPXtyb290OiJyb290LVh3Sm9faVA2IixzZWxlY3Rvcjoic2VsZWN0b3ItWHdKb19pUDYiLGNoYWluOiJjaGFpbi1Yd0pvX2lQNiIsZW1wdHk6ImVtcHR5LVh3Sm9faVA2In19LDUzNzczMChlKXtlLmV4cG9ydHM9e2J1dHRvbkNvbG9yczoiYnV0dG9uQ29sb3JzLXBlTWpRYnV6In19LDM4NDQ1OChlKXtlLmV4cG9ydHM9eyJ0YWJsZXQtc21hbGwtYnJlYWtwb2ludCI6IihtYXgtd2lkdGg6IDQ0MHB4KSIsaXRlbVJvdzoiaXRlbVJvdy1yX2Y1UWFuVyIsbXVsdGlMaW5lOiJtdWx0aUxpbmUtcl9mNVFhblciLGNvbXBvc2l0ZURlc2NyaXB0aW9uOiJjb21wb3NpdGVEZXNjcmlwdGlvbi1yX2Y1UWFuVyIsY2VsbDoiY2VsbC1yX2Y1UWFuVyIsaXRlbUluZm9DZWxsOiJpdGVtSW5mb0NlbGwtcl9mNVFhblciLGRlc2NyaXB0aW9uOiJkZXNjcmlwdGlvbi1yX2Y1UWFuVyIsc3ltYm9sRGVzY3JpcHRpb246InN5bWJvbERlc2NyaXB0aW9uLXJfZjVRYW5XIixmbGFnOiJmbGFnLXJfZjVRYW5XIixleGNoYW5nZURlc2NyaXB0aW9uOiJleGNoYW5nZURlc2NyaXB0aW9uLXJfZjVRYW5XIixtYXJrZXRUeXBlOiJtYXJrZXRUeXBlLXJfZjVRYW5XIixleGNoYW5nZU5hbWU6ImV4Y2hhbmdlTmFtZS1yX2Y1UWFuVyIsYWN0aW9uSGFuZGxlV3JhcDoiYWN0aW9uSGFuZGxlV3JhcC1yX2Y1UWFuVyIsc291cmNlOiJzb3VyY2Utcl9mNVFhblciLGFjdGl2ZToiYWN0aXZlLXJfZjVRYW5XIixzZWxlY3RlZDoic2VsZWN0ZWQtcl9mNVFhblciLG5lc3RlZEJvcmRlck92ZXJsYXA6Im5lc3RlZEJvcmRlck92ZXJsYXAtcl9mNVFhblciLGV4cGFuZGVkOiJleHBhbmRlZC1yX2Y1UWFuVyIsbmVzdGVkOiJuZXN0ZWQtcl9mNVFhblciLGhvdmVyOiJob3Zlci1yX2Y1UWFuVyIsaGlnaGxpZ2h0ZWQ6ImhpZ2hsaWdodGVkLXJfZjVRYW5XIixsaWdodDoibGlnaHQtcl9mNVFhblciLCJoaWdobGlnaHQtYW5pbWF0aW9uLXRoZW1lLWxpZ2h0IjoiaGlnaGxpZ2h0LWFuaW1hdGlvbi10aGVtZS1saWdodC1yX2Y1UWFuVyIsZGFyazoiZGFyay1yX2Y1UWFuVyIsImhpZ2hsaWdodC1hbmltYXRpb24tdGhlbWUtZGFyayI6ImhpZ2hsaWdodC1hbmltYXRpb24tdGhlbWUtZGFyay1yX2Y1UWFuVyIsbWFya2VkRmxhZzoibWFya2VkRmxhZy1yX2Y1UWFuVyIsb2Zmc2V0OiJvZmZzZXQtcl9mNVFhblciLGRlc2NyaXB0aW9uQ2VsbDoiZGVzY3JpcHRpb25DZWxsLXJfZjVRYW5XIixhZGRpdGlvbjoiYWRkaXRpb24tcl9mNVFhblciLApleGNoYW5nZUNlbGw6ImV4Y2hhbmdlQ2VsbC1yX2Y1UWFuVyIsbXVsdGlwbGVGbGFnczoibXVsdGlwbGVGbGFncy1yX2Y1UWFuVyIsaGlkZGVuOiJoaWRkZW4tcl9mNVFhblciLGhvdmVyQ2VsbDoiaG92ZXJDZWxsLXJfZjVRYW5XIixmaXhlZFdpZHRoOiJmaXhlZFdpZHRoLXJfZjVRYW5XIixleHBhbmRUb2dnbGU6ImV4cGFuZFRvZ2dsZS1yX2Y1UWFuVyIsc3ltYm9sVGl0bGU6InN5bWJvbFRpdGxlLXJfZjVRYW5XIixpbnZhbGlkOiJpbnZhbGlkLXJfZjVRYW5XIixub0Rlc2NyaXB0aW9uOiJub0Rlc2NyaXB0aW9uLXJfZjVRYW5XIixoaWdobGlnaHRlZFRleHQ6ImhpZ2hsaWdodGVkVGV4dC1yX2Y1UWFuVyIsc3ltYm9sRGVzY3JpcHRpb25NYWluOiJzeW1ib2xEZXNjcmlwdGlvbk1haW4tcl9mNVFhblciLHN5bWJvbERlc2NyaXB0aW9uRGV0YWlsczoic3ltYm9sRGVzY3JpcHRpb25EZXRhaWxzLXJfZjVRYW5XIixuYXJyb3c6Im5hcnJvdy1yX2Y1UWFuVyIsd2lkZToid2lkZS1yX2Y1UWFuVyIsZGF0YU1vZGU6ImRhdGFNb2RlLXJfZjVRYW5XIixhY3Rpb25zQ2VsbDoiYWN0aW9uc0NlbGwtcl9mNVFhblciLGFjdGlvbjoiYWN0aW9uLXJfZjVRYW5XIix0YXJnZXRBY3Rpb246InRhcmdldEFjdGlvbi1yX2Y1UWFuVyIscmVtb3ZlQWN0aW9uOiJyZW1vdmVBY3Rpb24tcl9mNVFhblciLGFkZEFjdGlvbjoiYWRkQWN0aW9uLXJfZjVRYW5XIixlbXB0eUFjdGlvbnM6ImVtcHR5QWN0aW9ucy1yX2Y1UWFuVyIsbWFya2VkRmxhZ1dyYXA6Im1hcmtlZEZsYWdXcmFwLXJfZjVRYW5XIixtYXJrZWRGbGFnTW9iaWxlOiJtYXJrZWRGbGFnTW9iaWxlLXJfZjVRYW5XIixsb2dvOiJsb2dvLXJfZjVRYW5XIixwcmltYXJ5SWNvbjoicHJpbWFyeUljb24tcl9mNVFhblciLHByb21vQmFkZ2U6InByb21vQmFkZ2Utcl9mNVFhblciLHByb21vSWNvbjoicHJvbW9JY29uLXJfZjVRYW5XIn19LDUyMzI4NihlKXtlLmV4cG9ydHM9e2ZsYWc6ImZsYWctTm0xNzR6cVMiLGZsYWdzOiJmbGFncy1ObTE3NHpxUyIsZmxhZ0NvbnRhaW5lcjoiZmxhZ0NvbnRhaW5lci1ObTE3NHpxUyIsY291bnRlcjoiY291bnRlci1ObTE3NHpxUyIsY29udGFpbmVyOiJjb250YWluZXItTm0xNzR6cVMifX0sNDA5NjQwKGUpe2UuZXhwb3J0cz17dGl0bGU6InRpdGxlLWMxMmxhNWlNIixpY29uOiJpY29uLWMxMmxhNWlNIn19LDk4NzUyKGUpe2UuZXhwb3J0cz17b3RoZXJTeW1ib2xzOiJvdGhlclN5bWJvbHMtUjFvV21vcE0iLG5ld1N0eWxlczoibmV3U3R5bGVzLVIxb1dtb3BNIixzbWFsbEZvbnQ6InNtYWxsRm9udC1SMW9XbW9wTSIscmVzZXRGaWx0ZXJzOiJyZXNldEZpbHRlcnMtUjFvV21vcE0iLGJvbGQ6ImJvbGQtUjFvV21vcE0iLGV4Y2hhbmdlV3JhcDoiZXhjaGFuZ2VXcmFwLVIxb1dtb3BNIixpY29uOiJpY29uLVIxb1dtb3BNIixub1Jlc3VsdHNEZXNrdG9wOiJub1Jlc3VsdHNEZXNrdG9wLVIxb1dtb3BNIix0b2tlbjoidG9rZW4tUjFvV21vcE0iLHNob3dNZToic2hvd01lLVIxb1dtb3BNIn19LDQwNzk0NyhlKXtlLmV4cG9ydHM9e3dyYXA6IndyYXAtSEVpSVFlYkIiLGxpYkFsbFNlbGVjdGVkOiJsaWJBbGxTZWxlY3RlZC1IRWlJUWViQiIsY29udGFpbmVyOiJjb250YWluZXItSEVpSVFlYkIiLGljb25XcmFwOiJpY29uV3JhcC1IRWlJUWViQiIsaWNvbjoiaWNvbi1IRWlJUWViQiIsdGl0bGU6InRpdGxlLUhFaUlRZWJCIixoaWdobGlnaHRlZDoiaGlnaGxpZ2h0ZWQtSEVpSVFlYkIiLGRlc2NyaXB0aW9uOiJkZXNjcmlwdGlvbi1IRWlJUWViQiIsbW9iaWxlOiJtb2JpbGUtSEVpSVFlYkIiLGFsbFNlbGVjdGVkOiJhbGxTZWxlY3RlZC1IRWlJUWViQiIsZGVza3RvcDoiZGVza3RvcC1IRWlJUWViQiIsYWxsU2VsZWN0ZWRJY29uOiJhbGxTZWxlY3RlZEljb24tSEVpSVFlYkIiLHNlbGVjdGVkOiJzZWxlY3RlZC1IRWlJUWViQiIsZm9jdXNlZDoiZm9jdXNlZC1IRWlJUWViQiIsdGl0bGVXaXRob3V0RGVzYzoidGl0bGVXaXRob3V0RGVzYy1IRWlJUWViQiIsdGV4dEJsb2NrOiJ0ZXh0QmxvY2stSEVpSVFlYkIiLGJvcmRlcmVkOiJib3JkZXJlZC1IRWlJUWViQiJ9fSw2NTk4ODQoZSl7ZS5leHBvcnRzPXtjb250YWluZXI6ImNvbnRhaW5lci10c2ptUXRYUSIsY29udGVudExpc3Q6ImNvbnRlbnRMaXN0LXRzam1RdFhRIixjb250ZW50TGlzdERlc2t0b3A6ImNvbnRlbnRMaXN0RGVza3RvcC10c2ptUXRYUSIsc2VhcmNoU291cmNlSXRlbXNDb250YWluZXI6InNlYXJjaFNvdXJjZUl0ZW1zQ29udGFpbmVyLXRzam1RdFhRIixvbmVDb2x1bW46Im9uZUNvbHVtbi10c2ptUXRYUSIsc2VhcmNoU291cmNlSXRlbXNDb250YWluZXJEZXNrdG9wOiJzZWFyY2hTb3VyY2VJdGVtc0NvbnRhaW5lckRlc2t0b3AtdHNqbVF0WFEiLGdyb3VwVGl0bGVEZXNrdG9wOiJncm91cFRpdGxlRGVza3RvcC10c2ptUXRYUSIsY29sdW1uOiJjb2x1bW4tdHNqbVF0WFEiLGVtcHR5VGV4dDoiZW1wdHlUZXh0LXRzam1RdFhRIixlbXB0eUljb246ImVtcHR5SWNvbi10c2ptUXRYUSIsbm9SZXN1bHRzRGVza3RvcDoibm9SZXN1bHRzRGVza3RvcC10c2ptUXRYUSJ9fSw5Nzc2OTkoZSl7ZS5leHBvcnRzPXt0aXRsZToidGl0bGUtTmQzd3NrbEsifX0sNDA4NjIwKGUpe2UuZXhwb3J0cz17YWN0aW9uczoiYWN0aW9ucy1vQXRvWGxSNCIsYWN0aW9uOiJhY3Rpb24tb0F0b1hsUjQiLGRpc2FibGVkOiJkaXNhYmxlZC1vQXRvWGxSNCJ9fSw1OTQ3ODAoZSl7ZS5leHBvcnRzPXt3cmFwOiJ3cmFwLUJkMDVCalVhIixpdGVtOiJpdGVtLUJkMDVCalVhIixzbWFsbDoic21hbGwtQmQwNUJqVWEiLG5ld1N0eWxlczoibmV3U3R5bGVzLUJkMDVCalVhIixtb2JpbGU6Im1vYmlsZS1CZDA1QmpVYSIsdGV4dDoidGV4dC1CZDA1QmpVYSIsZXhjaGFuZ2U6ImV4Y2hhbmdlLUJkMDVCalVhIixmaWx0ZXJJdGVtOiJmaWx0ZXJJdGVtLUJkMDVCalVhIix0cmFkaW5nRmlsdGVyQnV0dG9uV3JhcDoidHJhZGluZ0ZpbHRlckJ1dHRvbldyYXAtQmQwNUJqVWEiLGVtcHR5U3BhY2U6ImVtcHR5U3BhY2UtQmQwNUJqVWEifX0sNTk2ODk4KGUpe2UuZXhwb3J0cz17d3JhcDoid3JhcC1GU1g2QWF0WCIsCndhdGNobGlzdDoid2F0Y2hsaXN0LUZTWDZBYXRYIixub0ZlZWQ6Im5vRmVlZC1GU1g2QWF0WCIsbmV3U3R5bGVzOiJuZXdTdHlsZXMtRlNYNkFhdFgiLHNjcm9sbENvbnRhaW5lcjoic2Nyb2xsQ29udGFpbmVyLUZTWDZBYXRYIix3YXRjaGxpc3RDb250YWluZXI6IndhdGNobGlzdENvbnRhaW5lci1GU1g2QWF0WCIsbGlzdENvbnRhaW5lcjoibGlzdENvbnRhaW5lci1GU1g2QWF0WCIsbXVsdGlMaW5lSXRlbXNDb250YWluZXI6Im11bHRpTGluZUl0ZW1zQ29udGFpbmVyLUZTWDZBYXRYIix3aXRoU3Bpbm5lcjoid2l0aFNwaW5uZXItRlNYNkFhdFgiLHNwaW5uZXJDb250YWluZXI6InNwaW5uZXJDb250YWluZXItRlNYNkFhdFgiLGxhcmdlU3Bpbm5lcjoibGFyZ2VTcGlubmVyLUZTWDZBYXRYIn19LDIzODkwNChlKXtlLmV4cG9ydHM9e3NlYXJjaDoic2VhcmNoLWsyUkJ2TFZNIix1cHBlckNhc2U6InVwcGVyQ2FzZS1rMlJCdkxWTSIsaW5wdXRDb250YWluZXI6ImlucHV0Q29udGFpbmVyLWsyUkJ2TFZNIixzcHJlYWRzOiJzcHJlYWRzLWsyUkJ2TFZNIixidWJibGVzQ29udGFpbmVyOiJidWJibGVzQ29udGFpbmVyLWsyUkJ2TFZNIixidWJibGVzOiJidWJibGVzLWsyUkJ2TFZNIixzcGlubmVyV3JhcDoic3Bpbm5lcldyYXAtazJSQnZMVk0iLGVtcHR5VGV4dDoiZW1wdHlUZXh0LWsyUkJ2TFZNIixlbXB0eUljb246ImVtcHR5SWNvbi1rMlJCdkxWTSIsbm9SZXN1bHRzRGVza3RvcDoibm9SZXN1bHRzRGVza3RvcC1rMlJCdkxWTSIsdHJhZGluZ0ZpbHRlckJ1dHRvbldyYXA6InRyYWRpbmdGaWx0ZXJCdXR0b25XcmFwLWsyUkJ2TFZNIn19LDMwMTcwOChlKXtlLmV4cG9ydHM9e2ZsYWdXcmFwOiJmbGFnV3JhcC1FQk5aZENIMSIsaWNvbjoiaWNvbi1FQk5aZENIMSIsY2FyZXQ6ImNhcmV0LUVCTlpkQ0gxIix0aXRsZToidGl0bGUtRUJOWmRDSDEifX0sMzE4MjU0KGUpe2UuZXhwb3J0cz17ZGlhbG9nOiJkaWFsb2ctc2FiaDFmaDQiLHRhYmxldERpYWxvZzoidGFibGV0RGlhbG9nLXNhYmgxZmg0IixkZXNrdG9wRGlhbG9nOiJkZXNrdG9wRGlhbG9nLXNhYmgxZmg0IixiYWNrQnV0dG9uOiJiYWNrQnV0dG9uLXNhYmgxZmg0In19LDkwNzY4OChlKXtlLmV4cG9ydHM9e2NoaWxkcmVuV3JhcHBlcjoiY2hpbGRyZW5XcmFwcGVyLU1ncEQ5dVRPIixjb250YWluZXI6ImNvbnRhaW5lci1NZ3BEOXVUTyJ9fSwxMjk2ODAoZSl7ZS5leHBvcnRzPXtkaWFsb2c6ImRpYWxvZy1iOFN4TW56WCIsd3JhcHBlcjoid3JhcHBlci1iOFN4TW56WCIsc2VwYXJhdG9yOiJzZXBhcmF0b3ItYjhTeE1uelgiLGJvdW5kZWQ6ImJvdW5kZWQtYjhTeE1uelgifX0sNDcxODgoZSl7ZS5leHBvcnRzPXsic21hbGwtaGVpZ2h0LWJyZWFrcG9pbnQiOiIobWF4LWhlaWdodDogMzYwcHgpIixjb250YWluZXI6ImNvbnRhaW5lci1CWktFTmtoVCIsdW5zZXRBbGlnbjoidW5zZXRBbGlnbi1CWktFTmtoVCIsdGl0bGU6InRpdGxlLUJaS0VOa2hUIixzdWJ0aXRsZToic3VidGl0bGUtQlpLRU5raFQiLHRleHRXcmFwOiJ0ZXh0V3JhcC1CWktFTmtoVCIsZWxsaXBzaXM6ImVsbGlwc2lzLUJaS0VOa2hUIixjbG9zZToiY2xvc2UtQlpLRU5raFQiLGljb246Imljb24tQlpLRU5raFQifX0sNTMwMDYwKGUpe2UuZXhwb3J0cz17Y29udGFpbmVyOiJjb250YWluZXItcW03Umc1TUIiLG1vYmlsZToibW9iaWxlLXFtN1JnNU1CIixpbnB1dENvbnRhaW5lcjoiaW5wdXRDb250YWluZXItcW03Umc1TUIiLHdpdGhDYW5jZWw6IndpdGhDYW5jZWwtcW03Umc1TUIiLGlucHV0OiJpbnB1dC1xbTdSZzVNQiIsaWNvbjoiaWNvbi1xbTdSZzVNQiIsY2FuY2VsOiJjYW5jZWwtcW03Umc1TUIifX0sMzQzMDY2KGUpe2UuZXhwb3J0cz17Y29udGFpbmVyOiJjb250YWluZXItVHY3TFNqVXoiLG92ZXJsYXlTY3JvbGxXcmFwOiJvdmVybGF5U2Nyb2xsV3JhcC1UdjdMU2pVeiIsd3JhcHBlcjoid3JhcHBlci1UdjdMU2pVeiJ9fSw4NjkzMjAoZSl7ZS5leHBvcnRzPXtzZWFyY2g6InNlYXJjaC1sQU51YlNjMiIsaW5wdXRDb250YWluZXI6ImlucHV0Q29udGFpbmVyLWxBTnViU2MyIixzZWFyY2hJbnB1dEljb246InNlYXJjaElucHV0SWNvbi1sQU51YlNjMiIsYWN0aW9uczoiYWN0aW9ucy1sQU51YlNjMiIsZGl2aWRlcjoiZGl2aWRlci1sQU51YlNjMiJ9fSwyNDQ4MjAoZSl7ZS5leHBvcnRzPXtsb2dvOiJsb2dvLWQwdlZtR3ZUIn19LDQyMTY1MChlKXtlLmV4cG9ydHM9e2ljb246Imljb24tT0pwa19DQVEifX0sNTIwOTc3KGUpe2UuZXhwb3J0cz17cGxhY2VIb2xkZXI6InBsYWNlSG9sZGVyLXlsd2FlX0d0IixoaWRkZW46ImhpZGRlbi15bHdhZV9HdCJ9fSw0MzUxMDEoZSl7ZS5leHBvcnRzPXt3cmFwcGVyOiJ3cmFwcGVyLUs0dTROZzNaIix0aXRsZToidGl0bGUtSzR1NE5nM1oiLGFkZGl0aW9uYWxCdXR0b246ImFkZGl0aW9uYWxCdXR0b24tSzR1NE5nM1oiLGJ1dHRvbnM6ImJ1dHRvbnMtSzR1NE5nM1oiLHRleHQ6InRleHQtSzR1NE5nM1oiLGJ1dHRvbjoiYnV0dG9uLUs0dTROZzNaIn19LDE5ODIwOShlKXtlLmV4cG9ydHM9eyJpY29uLXdyYXBwZXIiOiJpY29uLXdyYXBwZXItZGlrZGV3d3giLCJ3aXRoLWxpbmsiOiJ3aXRoLWxpbmstZGlrZGV3d3giLCJ3aXRoLXRvb2x0aXAiOiJ3aXRoLXRvb2x0aXAtZGlrZGV3d3giLCJuby1hY3RpdmUtc3RhdGUiOiJuby1hY3RpdmUtc3RhdGUtZGlrZGV3d3gifX0sODA2MDc4KGUpe2UuZXhwb3J0cz17c2VwYXJhdG9yOiJzZXBhcmF0b3ItUGY0ckl6RXQifX0sNzk3MzU3KGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse0VtcHR5U3RhdGVCbG9ja1RpdGxlOigpPT5zfSk7dmFyIHI9big5MTQ0ODcpLG89bi5uKHIpLGw9big3Nzk0NzQpLGE9bigzNTM3NDcpO2Z1bmN0aW9uIHMoZSl7Y29uc3R7dGl0bGU6dCx0YWdOYW1lOm4sdGl0bGVTaXplOnIsY2xhc3NOYW1lOnN9PWUsaT1ufHwic3Ryb25nIjtyZXR1cm4gbC5jcmVhdGVFbGVtZW50KGkse2NsYXNzTmFtZTpvKCkoYS50aXRsZSxhW2B0aXRsZV8ke3J9YF0scyl9LHQpfX0sNzY1OTE0KGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse0VtcHR5U3RhdGVCbG9jazooKT0+aX0pCjt2YXIgcj1uKDc3OTQ3NCksbz1uKDkxNDQ4NyksbD1uLm4obyksYT1uKDc5NzM1Nykscz1uKDM1Mzc0Nyk7Y29uc3QgaT0oMCxyLmZvcndhcmRSZWYpKChmdW5jdGlvbihlLHQpe3JldHVybiByLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpsKCkocy5jb250YWluZXIsZS5jbGFzc05hbWUpLHJlZjp0LCJkYXRhLXFhLWlkIjplLmRhdGFRYUlkfSxyLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpsKCkocy5pY29uLGUuaWNvbkNsYXNzKX0sZS5pY29uKSxlLnRpdGxlJiZyLmNyZWF0ZUVsZW1lbnQoYS5FbXB0eVN0YXRlQmxvY2tUaXRsZSx7dGl0bGU6ZS50aXRsZSx0aXRsZVNpemU6ZS50aXRsZVNpemUsdGFnTmFtZTplLnRpdGxlVGFnTmFtZSxjbGFzc05hbWU6ZS50aXRsZUNsYXNzfSksZS50ZXh0JiZyLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpsKCkocy50ZXh0LCJub3JtYWwiPT09ZS50ZXh0U2l6ZSYmcy50ZXh0X25vcm1hbCxlLnRleHRDbGFzcyl9LGUudGV4dCksZS5hY3Rpb24mJnIuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOmwoKShzLmFjdGlvbixlLmFjdGlvbkNsYXNzKX0sZS5hY3Rpb24pKX0pKX0sMjAxNDQ0KGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse2NyZWF0ZVJlZ0V4cExpc3Q6KCk9PnMsZ2V0SGlnaGxpZ2h0ZWRDaGFyczooKT0+aSxyYW5rZWRTZWFyY2g6KCk9PmF9KTt2YXIgcixvPW4oNjAxODQxKSxsPW4oODM4OTAyKTtmdW5jdGlvbiBhKGUpe2NvbnN0e2RhdGE6dCxydWxlczpuLHF1ZXJ5U3RyaW5nOnIsaXNQcmV2ZW50ZWRGcm9tRmlsdGVyaW5nOmwscHJpbWFyeUtleTphLHNlY29uZGFyeUtleTpzPWEsb3B0aW9uYWxQcmltYXJ5S2V5OmksdGVydGlhcnlLZXk6Y309ZTtyZXR1cm4gdC5tYXAoKGU9Pntjb25zdCB0PWkmJmVbaV0/ZVtpXTplW2FdLGw9ZVtzXSx1PWMmJmVbY107bGV0IGQsbT0wO3JldHVybiBuLmZvckVhY2goKGU9Pntjb25zdHtyZTpuLGZ1bGxNYXRjaDphfT1lO2lmKG4ubGFzdEluZGV4PTAsKDAsby5pc1N0cmluZykodCkmJnQmJnQudG9Mb3dlckNhc2UoKT09PXIudG9Mb3dlckNhc2UoKSlyZXR1cm4gbT00LHZvaWQoZD10Lm1hdGNoKGEpPy5pbmRleCk7aWYoKDAsby5pc1N0cmluZykodCkmJmEudGVzdCh0KSlyZXR1cm4gbT0zLHZvaWQoZD10Lm1hdGNoKGEpPy5pbmRleCk7aWYoKDAsby5pc1N0cmluZykobCkmJmEudGVzdChsKSlyZXR1cm4gbT0yLHZvaWQoZD1sLm1hdGNoKGEpPy5pbmRleCk7aWYoKDAsby5pc1N0cmluZykobCkmJm4udGVzdChsKSlyZXR1cm4gbT0yLHZvaWQoZD1sLm1hdGNoKG4pPy5pbmRleCk7aWYoQXJyYXkuaXNBcnJheSh1KSlmb3IoY29uc3QgZSBvZiB1KWlmKGEudGVzdChlKSlyZXR1cm4gbT0xLHZvaWQoZD1lLm1hdGNoKGEpPy5pbmRleCl9KSkse21hdGNoUHJpb3JpdHk6bSxtYXRjaEluZGV4OmQsaXRlbTplfX0pKS5maWx0ZXIoKGU9Pmx8fGUubWF0Y2hQcmlvcml0eSkpLnNvcnQoKChlLHQpPT57aWYoZS5tYXRjaFByaW9yaXR5PHQubWF0Y2hQcmlvcml0eSlyZXR1cm4gMTtpZihlLm1hdGNoUHJpb3JpdHk+dC5tYXRjaFByaW9yaXR5KXJldHVybi0xO2lmKGUubWF0Y2hQcmlvcml0eT09PXQubWF0Y2hQcmlvcml0eSl7aWYodm9pZCAwPT09ZS5tYXRjaEluZGV4fHx2b2lkIDA9PT10Lm1hdGNoSW5kZXgpcmV0dXJuIDA7aWYoZS5tYXRjaEluZGV4PnQubWF0Y2hJbmRleClyZXR1cm4gMTtpZihlLm1hdGNoSW5kZXg8dC5tYXRjaEluZGV4KXJldHVybi0xfXJldHVybiAwfSkpLm1hcCgoKHtpdGVtOmV9KT0+ZSkpfWZ1bmN0aW9uIHMoZSx0KXtjb25zdCBuPVtdLHI9ZS50b0xvd2VyQ2FzZSgpLG89ZS5zcGxpdCgiIikubWFwKCgoZSx0KT0+YCgkezAhPT10P2BbL1xccy1dJHsoMCxsLnJlZ2V4cEVzY2FwZSkoZSl9YDooMCxsLnJlZ2V4cEVzY2FwZSkoZSl9KWApKS5qb2luKCIoLio/KSIpKyIoLiopIjtyZXR1cm4gbi5wdXNoKHtmdWxsTWF0Y2g6bmV3IFJlZ0V4cChgKCR7KDAsbC5yZWdleHBFc2NhcGUpKGUpfSlgLCJpIikscmU6bmV3IFJlZ0V4cChgXiR7b31gLCJpIikscmVzZXJ2ZVJlOm5ldyBSZWdFeHAobywiaSIpLGZ1enp5SGlnaGxpZ2h0OiEwfSksdCYmdC5oYXNPd25Qcm9wZXJ0eShyKSYmbi5wdXNoKHtmdWxsTWF0Y2g6dFtyXSxyZTp0W3JdLGZ1enp5SGlnaGxpZ2h0OiExfSksbn1mdW5jdGlvbiBpKGUsdCxuKXtjb25zdCByPVtdO3JldHVybiBlJiZuPyhuLmZvckVhY2goKGU9Pntjb25zdHtmdWxsTWF0Y2g6bixyZTpvLHJlc2VydmVSZTpsfT1lO24ubGFzdEluZGV4PTAsby5sYXN0SW5kZXg9MDtjb25zdCBhPW4uZXhlYyh0KSxzPWF8fG8uZXhlYyh0KXx8bCYmbC5leGVjKHQpO2lmKGUuZnV6enlIaWdobGlnaHQ9IWEscylpZihlLmZ1enp5SGlnaGxpZ2h0KXtsZXQgZT1zLmluZGV4O2ZvcihsZXQgdD0xO3Q8cy5sZW5ndGg7dCsrKXtjb25zdCBuPXNbdF0sbz1zW3RdLmxlbmd0aDtpZih0JTIpe2NvbnN0IHQ9bi5zdGFydHNXaXRoKCIgIil8fG4uc3RhcnRzV2l0aCgiLyIpfHxuLnN0YXJ0c1dpdGgoIi0iKTtyW3Q/ZSsxOmVdPSEwfWUrPW99fWVsc2UgZm9yKGxldCBlPTA7ZTxzWzBdLmxlbmd0aDtlKyspcltzLmluZGV4K2VdPSEwfSkpLHIpOnJ9IWZ1bmN0aW9uKGUpe2VbZS5Mb3c9MF09IkxvdyIsZVtlLk1lZGl1bUxvdz0xXT0iTWVkaXVtTG93IixlW2UuTWVkaXVtPTJdPSJNZWRpdW0iLGVbZS5IaWdoPTNdPSJIaWdoIixlW2UuSGlnaGVzdD00XT0iSGlnaGVzdCJ9KHJ8fChyPXt9KSl9LDk0OTM3NChlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtIaWdobGlnaHRlZFRleHQ6KCk9Pml9KTt2YXIgcj1uKDc3OTQ3NCksbz1uKDkxNDQ4NyksbD1uLm4obyksYT1uKDIwMTQ0NCkscz1uKDUzNjIxOSk7ZnVuY3Rpb24gaShlKXtjb25zdHtxdWVyeVN0cmluZzp0LHJ1bGVzOm4sdGV4dDpvLGNsYXNzTmFtZTppfT1lLGM9KDAsci51c2VNZW1vKSgoKCk9PigwLGEuZ2V0SGlnaGxpZ2h0ZWRDaGFycykodCxvLG4pKSxbdCxuLG9dKQo7cmV0dXJuIHIuY3JlYXRlRWxlbWVudChyLkZyYWdtZW50LG51bGwsYy5sZW5ndGg/by5zcGxpdCgiIikubWFwKCgoZSx0KT0+ci5jcmVhdGVFbGVtZW50KHIuRnJhZ21lbnQse2tleTp0fSxjW3RdP3IuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZTpsKCkocy5oaWdobGlnaHRlZCxpKX0sZSk6ci5jcmVhdGVFbGVtZW50KCJzcGFuIixudWxsLGUpKSkpOm8pfX0sNzM0NjQxKGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse01hdGNoTWVkaWFNYXA6KCk9PmF9KTt2YXIgcj1uKDc3OTQ3NCksbz1uKDYzMjIyMCksbD1uLm4obyk7Y2xhc3MgYSBleHRlbmRzIHIuQ29tcG9uZW50e2NvbnN0cnVjdG9yKGUpe3N1cGVyKGUpLHRoaXMuX2hhbmRsZU1lZGlhQ2hhbmdlPSgpPT57Y29uc3QgZT1pKHRoaXMuc3RhdGUucXVlcmllcywoKGUsdCk9PnQubWF0Y2hlcykpO2xldCB0PSExO2Zvcihjb25zdCBuIGluIGUpaWYoZS5oYXNPd25Qcm9wZXJ0eShuKSYmdGhpcy5zdGF0ZS5tYXRjaGVzW25dIT09ZVtuXSl7dD0hMDticmVha310JiZ0aGlzLnNldFN0YXRlKHttYXRjaGVzOmV9KX07Y29uc3R7cnVsZXM6dH09dGhpcy5wcm9wczt0aGlzLnN0YXRlPXModCl9c2hvdWxkQ29tcG9uZW50VXBkYXRlKGUsdCl7cmV0dXJuIWwoKShlLHRoaXMucHJvcHMpfHwoIWwoKSh0LnJ1bGVzLHRoaXMuc3RhdGUucnVsZXMpfHwhbCgpKHQubWF0Y2hlcyx0aGlzLnN0YXRlLm1hdGNoZXMpKX1jb21wb25lbnREaWRNb3VudCgpe3RoaXMuX21pZ3JhdGUobnVsbCx0aGlzLnN0YXRlLnF1ZXJpZXMpfWNvbXBvbmVudERpZFVwZGF0ZShlLHQpe2woKShlLnJ1bGVzLHRoaXMucHJvcHMucnVsZXMpfHx0aGlzLl9taWdyYXRlKHQucXVlcmllcyx0aGlzLnN0YXRlLnF1ZXJpZXMpfWNvbXBvbmVudFdpbGxVbm1vdW50KCl7dGhpcy5fbWlncmF0ZSh0aGlzLnN0YXRlLnF1ZXJpZXMsbnVsbCl9cmVuZGVyKCl7cmV0dXJuIHRoaXMucHJvcHMuY2hpbGRyZW4odGhpcy5zdGF0ZS5tYXRjaGVzKX1zdGF0aWMgZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzKGUsdCl7aWYobCgpKGUucnVsZXMsdC5ydWxlcykpcmV0dXJuIG51bGw7Y29uc3R7cnVsZXM6bn09ZTtyZXR1cm4gcyhuKX1fbWlncmF0ZShlLHQpe251bGwhPT1lJiZpKGUsKChlLHQpPT57dC5yZW1vdmVFdmVudExpc3RlbmVyKCJjaGFuZ2UiLHRoaXMuX2hhbmRsZU1lZGlhQ2hhbmdlKX0pKSxudWxsIT09dCYmaSh0LCgoZSx0KT0+e3QuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIix0aGlzLl9oYW5kbGVNZWRpYUNoYW5nZSl9KSl9fWZ1bmN0aW9uIHMoZSl7Y29uc3QgdD1pKGUsKChlLHQpPT53aW5kb3cubWF0Y2hNZWRpYSh0KSkpO3JldHVybntxdWVyaWVzOnQsbWF0Y2hlczppKHQsKChlLHQpPT50Lm1hdGNoZXMpKSxydWxlczp7Li4uZX19fWZ1bmN0aW9uIGkoZSx0KXtjb25zdCBuPXt9O2Zvcihjb25zdCByIGluIGUpZS5oYXNPd25Qcm9wZXJ0eShyKSYmKG5bcl09dChyLGVbcl0pKTtyZXR1cm4gbn19LDM0NDg3MChlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtSb3VuZEJ1dHRvblRhYnM6KCk9Pmx9KTt2YXIgcj1uKDc3OTQ3NCksbz1uKDUwOTQ4OSk7ZnVuY3Rpb24gbChlKXtjb25zdHsiZGF0YS1uYW1lIjp0PSJyb3VuZC10YWJzLWJ1dHRvbnMiLC4uLm59PWU7cmV0dXJuIHIuY3JlYXRlRWxlbWVudChvLlJvdW5kQnV0dG9uVGFic0ltcGwsey4uLm4sImRhdGEtbmFtZSI6dH0pfX0sOTcxNTEyKGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse2NvbnRhaW5UYWJOYXZpZ2F0aW9uOigpPT5vfSk7dmFyIHI9bigyMzU3MjQpO2Z1bmN0aW9uIG8oZSl7Wzksci5Nb2RpZmllcnMuU2hpZnQrOV0uaW5jbHVkZXMoKDAsci5oYXNoRnJvbUV2ZW50KShlKSkmJmUuc3RvcFByb3BhZ2F0aW9uKCl9fSwyNzM2ODQoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7QmFja0J1dHRvbjooKT0+aX0pO3ZhciByLG89big3Nzk0NzQpLGw9big4ODA4ODYpLGE9big1OTQyMzApLHM9bi5uKGEpOyFmdW5jdGlvbihlKXtlLlRoaW49IjEuMiIsZS5NZWRpdW09IjEuNSJ9KHJ8fChyPXt9KSk7Y29uc3QgaT1vLmZvcndhcmRSZWYoKChlLHQpPT57Y29uc3R7YXJpYUxhYmVsOm4sZmxpcEljb25PblJ0bDpyLGljb25TdHJva2VXaWR0aDphLC4uLml9PWU7cmV0dXJuIG8uY3JlYXRlRWxlbWVudChsLk5hdkJ1dHRvbix7Li4uaSxhcmlhTGFiZWw6bixyZWY6dCxpY29uOnMoKSxmbGlwSWNvbk9uUnRsOnJ9KX0pKX0sMzEyOTMyKGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse0Nsb3NlQnV0dG9uOigpPT5zfSk7dmFyIHI9big3Nzk0NzQpLG89big4ODA4ODYpLGw9big5MTUwOTApLGE9bi5uKGwpO2NvbnN0IHM9ci5mb3J3YXJkUmVmKCgoZSx0KT0+ci5jcmVhdGVFbGVtZW50KG8uTmF2QnV0dG9uLHsuLi5lLHJlZjp0LGljb246YSgpfSkpKX0sMjY0MzE4KGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse0NsaWNrYWJsZUljb25CdXR0b246KCk9PmR9KTt2YXIgcj1uKDc3OTQ3NCksbz1uKDkxNDQ4NyksbD1uLm4obyksYT1uKDMzMjY4Nykscz1uKDIxNzI3NCksaT1uKDM0NTExNiksYz1uKDk5Mzk5NSksdT1uLm4oYyk7Y29uc3QgZD0oMCxyLmZvcndhcmRSZWYpKCgoZSx0KT0+e2NvbnN0IG49KDAsci51c2VDb250ZXh0KShhLkljb25CdXR0b25WYXJpYW50Q29udGV4dCkudmFyaWFudCx7dGl0bGU6byxvbkNsaWNrOmMsY29sb3JDbGFzc05hbWU6ZCxpY29uOm0sdmFyaWFudDpwPW4/P2EuREVGQVVMVF9JQ09OX0JVVFRPTl9WQVJJQU5ULHNoYXBlOmg9InNxdWFyZSIsdGFiSW5kZXg6Zixyb2xlOlMsZGF0YVFhSWQ6ZywuLi55fT1lLGI9KDAsaS5maWx0ZXJDaGVja2VkRGF0YVByb3BzKSh5LGcpO3JldHVybiByLmNyZWF0ZUVsZW1lbnQoImJ1dHRvbiIse3JlZjp0LHRpdGxlOm8sdHlwZToiYnV0dG9uIixyb2xlOlMsImFyaWEtbGFiZWwiOm8sb25DbGljazpjLHRhYkluZGV4OmYsY2xhc3NOYW1lOmwoKSh1KCkuaWNvbkJ1dHRvbix1KClbcF0sdSgpW2hdLGQsImFwcGx5LWNvbW1vbi10b29sdGlwIiksLi4uYn0sci5jcmVhdGVFbGVtZW50KHMuQmxvY2tJY29uLHtpY29uOm0sY2xhc3NOYW1lOnUoKS5pY29uLAoiYXJpYS1oaWRkZW4iOiJ0cnVlIn0pKX0pKX0sMzEyMjk1KGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse0ljb25CdXR0b246KCk9PmF9KTt2YXIgcj1uKDc3OTQ3NCksbz1uKDI2NDMxOCksbD1uKDcyOTI1MCk7Y29uc3QgYT0oMCxyLmZvcndhcmRSZWYpKCgoZSx0KT0+Im9uQ2xpY2siaW4gZT9yLmNyZWF0ZUVsZW1lbnQoby5DbGlja2FibGVJY29uQnV0dG9uLHsuLi5lLHJlZjp0fSk6ci5jcmVhdGVFbGVtZW50KGwuVG9nZ2xlYWJsZUljb25CdXR0b24sey4uLmUscmVmOnR9KSkpfSw3MjkyNTAoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7VG9nZ2xlYWJsZUljb25CdXR0b246KCk9PmF9KTt2YXIgcj1uKDc3OTQ3NCksbz1uKDI2NDMxOCksbD1uKDM0NTExNik7Y29uc3QgYT0oMCxyLmZvcndhcmRSZWYpKCgoZSx0KT0+e2NvbnN0e29uVG9nZ2xlOm4saXNUb2dnbGVkOmEsdG9nZ2xlZFRpdGxlOnMsdG9nZ2xlZEljb246aSx0b2dnbGVkQ29sb3JDbGFzc05hbWU6Yyx1bnRvZ2dsZWRUaXRsZTp1LHVudG9nZ2xlZEljb246ZCx1bnRvZ2dsZWRDb2xvckNsYXNzTmFtZTptLHZhcmlhbnQ6cCxzaGFwZTpoLGRhdGFRYUlkOmYsdGFiSW5kZXg6Uyxyb2xlOmcsLi4ueX09ZSxiPSgwLGwuZmlsdGVyQ2hlY2tlZERhdGFQcm9wcykoeSk7bGV0IHYsXyxFO3JldHVybiBhPyhFPXMsdj1pLF89Yyk6KEU9dSx2PWQsXz1tKSxyLmNyZWF0ZUVsZW1lbnQoby5DbGlja2FibGVJY29uQnV0dG9uLHt0aXRsZTpFLGljb246dixvbkNsaWNrOigpPT5uKCFhKSxjb2xvckNsYXNzTmFtZTpfLHZhcmlhbnQ6cCxzaGFwZTpoLHJlZjp0LGRhdGFRYUlkOmYsdGFiSW5kZXg6Uyxyb2xlOmcsLi4uYn0pfSkpfSw5ODY2MDkoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7TmF2QnV0dG9uQ29udGVudDooKT0+ZCxnZXROYXZCdXR0b25DbGFzc2VzOigpPT51fSk7dmFyIHI9big3Nzk0NzQpLG89big5MTQ0ODcpLGw9bi5uKG8pLGE9big0ODA5NzIpLHM9big0MDIyNTMpLGk9bi5uKHMpO2NvbnN0IGM9eyItLXVpLWxpYi1wcml2YXRlLW5hdkJ1dHRvbi1ibGVuZE1peExpZ2h0IjoiY29sb3ItYnVybiIsIi0tdWktbGliLXByaXZhdGUtbmF2QnV0dG9uLWJsZW5kTWl4RGFyayI6ImNvbG9yLWRvZGdlIn07ZnVuY3Rpb24gdShlKXtjb25zdHtzaXplOnQ9ImxhcmdlIixwcmVzZXJ2ZVBhZGRpbmdzOm4saXNMaW5rOnIsZmxpcEljb25PblJ0bDpvLGJsZW5kTW9kZTphLGNsYXNzTmFtZTpzfT1lO3JldHVybiBsKCkoaSgpLm5hdkJ1dHRvbixpKClbdF0sbiYmaSgpLnByZXNlcnZlUGFkZGluZ3MsbyYmaSgpLmZsaXBJY29uLGEmJmkoKS5ibGVuZE1vZGUsciYmaSgpLmxpbmsscyl9ZnVuY3Rpb24gZChlKXtjb25zdHtjaGlsZHJlbjp0LGljb246bixibGVuZE1vZGU6b309ZTtyZXR1cm4gci5jcmVhdGVFbGVtZW50KHIuRnJhZ21lbnQsbnVsbCxyLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6aSgpLmJhY2tncm91bmQsc3R5bGU6bz9jOnZvaWQgMH0pLHIuY3JlYXRlRWxlbWVudChhLlNjYWxhYmxlSWNvbix7aWNvbjpuLGNsYXNzTmFtZTppKCkuaWNvbn0pLHQmJnIuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZTppKCkudmlzdWFsbHlIaWRkZW59LHQpKX19LDg4MDg4NihlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtOYXZCdXR0b246KCk9Pmx9KTt2YXIgcj1uKDc3OTQ3NCksbz1uKDk4NjYwOSk7Y29uc3QgbD0oMCxyLmZvcndhcmRSZWYpKCgoZSx0KT0+e2NvbnN0e2ljb246bix0eXBlOmw9ImJ1dHRvbiIscHJlc2VydmVQYWRkaW5nczphLGZsaXBJY29uT25SdGw6cyxzaXplOmksYmxlbmRNb2RlOmMsYXJpYUxhYmVsOnUsLi4uZH09ZTtyZXR1cm4gci5jcmVhdGVFbGVtZW50KCJidXR0b24iLHsuLi5kLGNsYXNzTmFtZTooMCxvLmdldE5hdkJ1dHRvbkNsYXNzZXMpKHsuLi5lLGNoaWxkcmVuOnV9KSxyZWY6dCx0eXBlOmx9LHIuY3JlYXRlRWxlbWVudChvLk5hdkJ1dHRvbkNvbnRlbnQse2ljb246bixibGVuZE1vZGU6Y30sdSkpfSkpO2wuZGlzcGxheU5hbWU9Ik5hdkJ1dHRvbiJ9LDcxOTQyNShlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHt1c2VSZXNpemVPYnNlcnZlcjooKT0+YX0pO3ZhciByPW4oNzc5NDc0KSxvPW4oNjE2MzExKSxsPW4oNzg3ODk1KTtmdW5jdGlvbiBhKGUsdD1bXSl7Y29uc3R7Y2FsbGJhY2s6bixyZWY6YT1udWxsfT1mdW5jdGlvbihlKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgZT97Y2FsbGJhY2s6ZX06ZX0oZSkscz0oMCxyLnVzZVJlZikobnVsbCksaT0oMCxyLnVzZVJlZikobik7aS5jdXJyZW50PW47Y29uc3QgYz0oMCxsLnVzZUZ1bmN0aW9uYWxSZWZPYmplY3QpKGEpLHU9KDAsci51c2VDYWxsYmFjaykoKGU9PntjKGUpLG51bGwhPT1zLmN1cnJlbnQmJihzLmN1cnJlbnQuZGlzY29ubmVjdCgpLG51bGwhPT1lJiZzLmN1cnJlbnQub2JzZXJ2ZShlKSl9KSxbYyxzXSk7cmV0dXJuKDAsby51c2VJc29tb3JwaGljTGF5b3V0RWZmZWN0KSgoKCk9PihzLmN1cnJlbnQ9bmV3IFJlc2l6ZU9ic2VydmVyKCgoZSx0KT0+e2kuY3VycmVudChlLHQpfSkpLGMuY3VycmVudCYmdShjLmN1cnJlbnQpLCgpPT57cy5jdXJyZW50Py5kaXNjb25uZWN0KCl9KSksW2MsLi4udF0pLHV9fSw0ODA5NzIoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7U2NhbGFibGVJY29uOigpPT5jfSk7dmFyIHI9big5MTQ0ODcpLG89bi5uKHIpLGw9big3Nzk0NzQpLGE9big5NDg0NTApLHM9bigyMDMyNzMpLGk9bi5uKHMpO2NvbnN0IGM9bC5mb3J3YXJkUmVmKCgoZSx0KT0+e2NvbnN0e2NsYXNzTmFtZTpuLC4uLnJ9PWU7cmV0dXJuIGwuY3JlYXRlRWxlbWVudChhLkNvbW1vbkljb24sey4uLnIsY2xhc3NOYW1lOm8oKShuLGkoKS5zY2FsYWJsZUljb24pLHJlZjp0fSl9KSl9LDEyNDYyNShlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHt1c2VNZW51QW5jaG9yUHJvcHM6KCk9PmF9KTt2YXIgcj1uKDczMzYxNyksbz1uKDc4Mjk1NSksbD1uKDM5MTE1Mik7ZnVuY3Rpb24gYShlKXtyZXR1cm4gZnVuY3Rpb24oZSl7CmNvbnN0e2lzT3Blbjp0LG9uQ2xvc2U6bixjb250ZW50SWQ6YSxhbmNob3JCdXR0b25SZWY6cyxhbmNob3JJZDppLGhhbmRsZUFuY2hvckNsaWNrOmMsaGFuZGxlQW5jaG9yS2V5RG93bjp1fT0oMCxyLnVzZURlZmF1bHRCdXR0b25BbmNob3JQcm9wcykoe2FuY2hvcklkOmUuYW5jaG9ySWQsb3Blbk9uRW50ZXI6ZS5vcGVuT25FbnRlcn0pO3JldHVybntpc09wZW46dCxhbmNob3JQcm9wczp7aWQ6aSxyb2xlOiJidXR0b24iLG9uQ2xpY2s6YyxvbktleURvd246dSwuLi4oMCxsLmNyZWF0ZVJlZlByb3ApKGUucmVmU3R5bGUscyksLi4uKDAsby5jcmVhdGVBcmlhQXR0cmlidXRlc1Byb3BzKShlLmFyaWFTdHlsZSx7ZXhwYW5kZWQ6dCxjb250cm9sczphLGhhc3BvcHVwOiJtZW51In0pfSxwb3BvdmVyUHJvcHM6e2lzT3Blbjp0LGFuY2hvcklkOmksYW5jaG9yQnV0dG9uUmVmOnMsY29udGVudElkOmEsb25DbG9zZTpufX19KHtvcGVuT25FbnRlcjplPy5vcGVuT25FbnRlcixyZWZTdHlsZTplPy5yZWZTdHlsZT8/InJlZmVyZW5jZSIsYXJpYVN0eWxlOmU/LmFyaWFTdHlsZT8/ImtlYmFiLWNhc2UiLGFuY2hvcklkOmU/LmFuY2hvcklkfSl9fSw3MjQ0NDIoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7U2tlbGV0b25DaXJjbGU6KCk9PmN9KTt2YXIgcj1uKDc3OTQ3NCksbz1uKDkxNDQ4NyksbD1uLm4obyksYT1uKDQxMzY5MSkscz1uLm4oYSk7Y29uc3QgaT0yNDtmdW5jdGlvbiBjKGUpe2NvbnN0e2NsYXNzTmFtZTp0LHN0eWxlOm4sc2l6ZTpvPWl9PWU7cmV0dXJuIHIuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOmwoKShzKCkud3JhcHBlcix0KSxzdHlsZTp7aGVpZ2h0Om8sd2lkdGg6bywuLi5ufX0pfX0sMjMyNzk4KGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse1NrZWxldG9uQ29udGFpbmVyOigpPT5pfSk7dmFyIHI9big3Nzk0NzQpLG89big5MTQ0ODcpLGw9bi5uKG8pLGE9big3NTIyOTUpLHM9bi5uKGEpO2Z1bmN0aW9uIGkoZSl7Y29uc3R7Y2xhc3NOYW1lOnQsc3R5bGU6bixjaGlsZHJlbjpvfT1lO3JldHVybiByLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpsKCkocygpLndyYXBwZXIsdCksc3R5bGU6bn0sbyl9fSw0OTczMTAoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7U2tlbGV0b25SZWN0YW5nbGU6KCk9Pml9KTt2YXIgcj1uKDc3OTQ3NCksbz1uKDkxNDQ4NyksbD1uLm4obyksYT1uKDQ2MTUxNSkscz1uLm4oYSk7ZnVuY3Rpb24gaShlKXtjb25zdHtjbGFzc05hbWU6dCxzdHlsZTpuLHdpZHRoOm8saGVpZ2h0OmF9PWU7cmV0dXJuIHIuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOmwoKShzKCkud3JhcHBlcix0KSxzdHlsZTp7d2lkdGg6byxoZWlnaHQ6YSwuLi5ufX0pfX0sNTE5MDk0KGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse1NrZWxldG9uU3F1YXJlOigpPT5jfSk7dmFyIHI9big3Nzk0NzQpLG89big5MTQ0ODcpLGw9bi5uKG8pLGE9bigzMzA2NzEpLHM9bi5uKGEpO2NvbnN0IGk9NDI7ZnVuY3Rpb24gYyhlKXtjb25zdHtjbGFzc05hbWU6dCxzdHlsZTpuLHNpemU6bz1pfT1lO3JldHVybiByLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpsKCkocygpLndyYXBwZXIsdCksc3R5bGU6e3dpZHRoOm8saGVpZ2h0Om8sLi4ubn19KX19LDQwMTg2MihlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtTa2VsZXRvbjooKT0+bX0pO3ZhciByPW4oNzc5NDc0KSxvPW4oOTE0NDg3KSxsPW4ubihvKSxhPW4oMjMyNzk4KSxzPW4oNzI0NDQyKSxpPW4oNTE5MDk0KSxjPW4oNDk3MzEwKSx1PW4oOTc1Mjg1KSxkPW4ubih1KTtjbGFzcyBtIGV4dGVuZHMgci5QdXJlQ29tcG9uZW50e3JlbmRlcigpe2NvbnN0e2NoaWxkcmVuOmUsY2xhc3NOYW1lOnQsYW5pbWF0ZWQ6bj0hMCxpbnB1dFJlZjpvfT10aGlzLnByb3BzO3JldHVybiByLmNyZWF0ZUVsZW1lbnQoImRpdiIse3JlZjpvLGNsYXNzTmFtZTpsKCkoZCgpLndyYXBwZXIsbiYmZCgpLmFuaW1hdGVkLHQpfSxlKX19bS5Db250YWluZXI9YS5Ta2VsZXRvbkNvbnRhaW5lcixtLkNpcmNsZT1zLlNrZWxldG9uQ2lyY2xlLG0uU3F1YXJlPWkuU2tlbGV0b25TcXVhcmUsbS5SZWN0YW5nbGU9Yy5Ta2VsZXRvblJlY3RhbmdsZX0sOTA2MTM0KGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse1Rvb2x0aXA6KCk9PmMsVHJpZ2dlcjooKT0+cn0pO3ZhciByLG89big3Nzk0NzQpLGw9bigxNTM3MjgpLGE9big5NjQ1OTQpLHM9big1MjUyNCksaT1uKDE1MzE1NCk7ZnVuY3Rpb24gYyh7Y2hpbGRyZW46ZSxpZDp0LHRyaWdnZXI6bj1yLkhvdmVyLGRlbGF5OmM9WzUwMCwwXSxjb250ZW50OnUsaXNSdGw6ZD0hMSxlbmRTbG90Om0scGxhY2VtZW50OnAsaGFzQXJyb3c6aD0hMCxjbG9zZU9uU2Nyb2xsT3V0c2lkZTpmLG9mZnNldDpTLGRpc2FibGVJbnRlcmFjdGl2ZTpnfSl7Y29uc3QgeT0oMCxvLnVzZUlkKSgpLGI9QXJyYXkuaXNBcnJheShuKT9uOltuXSxbdixfXT1BcnJheS5pc0FycmF5KGMpP2M6W2MsY10se3Zpc2libGU6RSxvcGVuOkMsY2xvc2U6VCx0b2dnbGU6eH09KDAsbC51c2VUb29sdGlwU3RhdGUpKHtvcGVuRGVsYXk6dixjbG9zZURlbGF5Ol99KSxJPSgwLG8udXNlUmVmKShudWxsKSx3PW8uQ2hpbGRyZW4ub25seShlKSxOPWIucmVkdWNlKCgoZSx0KT0+e3N3aXRjaCh0KXtjYXNlIHIuQ2xpY2s6ZS5vbkNsaWNrPSgwLHMuZm9ya0ZuKSh3LnByb3BzLm9uQ2xpY2sseCk7YnJlYWs7Y2FzZSByLkZvY3VzOmUub25Gb2N1cz0oMCxzLmZvcmtGbikody5wcm9wcy5vbkZvY3VzLChlPT57ZS5jdXJyZW50VGFyZ2V0Lm1hdGNoZXMoIjpmb2N1cy12aXNpYmxlIikmJkMoKX0pKSxlLm9uQmx1cj0oMCxzLmZvcmtGbikody5wcm9wcy5vbkJsdXIsKGU9PntlLmN1cnJlbnRUYXJnZXQubWF0Y2hlcygiOmhvdmVyIil8fFQoKX0pKTticmVhaztjYXNlIHIuSG92ZXI6ZS5vbk1vdXNlRW50ZXI9KDAscy5mb3JrRm4pKHcucHJvcHMub25Nb3VzZUVudGVyLEMpLGUub25Nb3VzZUxlYXZlPSgwLHMuZm9ya0ZuKSh3LnByb3BzLm9uTW91c2VMZWF2ZSwoZT0+ewpJLmN1cnJlbnQ/LmNvbnRhaW5zKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQpJiZlLmN1cnJlbnRUYXJnZXQubWF0Y2hlcygiOmZvY3VzLXZpc2libGUiKXx8VCgpfSkpfXJldHVybiBlfSkse30pLFI9InN0cmluZyI9PXR5cGVvZiB3LnR5cGU/InJlZiI6InJlZmVyZW5jZSIsQT0icmVmImluIHcmJm51bGwhPXcucmVmP3cucmVmOncucHJvcHNbUl0sTD0oMCxhLm1lcmdlUmVmcykoW0EsSV0pO3JldHVybiBvLmNyZWF0ZUVsZW1lbnQoby5GcmFnbWVudCxudWxsLCgwLG8uY2xvbmVFbGVtZW50KSh3LHsuLi5OLFtSXTpMLCJhcmlhLWRlc2NyaWJlZGJ5Ijp0fSksby5jcmVhdGVFbGVtZW50KGkuVG9vbHRpcFN0YXRlbGVzcyx7aWQ6dHx8eSxwbGFjZW1lbnQ6cCxjb250ZW50OnUsZW5kU2xvdDptLG9wZW46RSYmISF1LGFuY2hvcjpJLG9uQ2xvc2U6VCxpc1J0bDpkLGhhc0Fycm93OmgsY2xvc2VPblNjcm9sbE91dHNpZGU6ZixvZmZzZXQ6UyxkaXNhYmxlSW50ZXJhY3RpdmU6Z30pKX0hZnVuY3Rpb24oZSl7ZS5Ib3Zlcj0iaG92ZXIiLGUuQ2xpY2s9ImNsaWNrIixlLkZvY3VzPSJmb2N1cyJ9KHJ8fChyPXt9KSl9LDcyNjYwMihlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHt0cmllc1RyYW5zbGF0ZU1hcmtldFR5cGU6KCk9Pm99KTt2YXIgcj1uKDE4NTI3MSk7ZnVuY3Rpb24gbyhlKXtyZXR1cm4gbC5nZXQoZSk/LigpfHxlfWNvbnN0IGw9bmV3IE1hcChbWyJjZmQiLCgpPT5yLnQobnVsbCx2b2lkIDAsbigyMDgwMTcpKV0sWyJkciIsKCk9PnIudChudWxsLHZvaWQgMCxuKDk3NDI2NCkpXSxbImluZGV4IiwoKT0+ci50KG51bGwsdm9pZCAwLG4oNjU4OTI2KSldLFsiZm9yZXgiLCgpPT5yLnQobnVsbCx2b2lkIDAsbig4NzM1OTcpKV0sWyJyaWdodCIsKCk9PnIudChudWxsLHtjb250ZXh0OiJzeW1ib2xfdHlwZSJ9LG4oMjg3MDM4KSldLFsiYm9uZCIsKCk9PnIudChudWxsLHZvaWQgMCxuKDkwOTA1NCkpXSxbImJpdGNvaW4iLCgpPT5yLnQobnVsbCx2b2lkIDAsbig5OTEwNTkpKV0sWyJjcnlwdG8iLCgpPT5yLnQobnVsbCx2b2lkIDAsbig5OTEwNTkpKV0sWyJlY29ub21pYyIsKCk9PnIudChudWxsLHZvaWQgMCxuKDk5Njg4MikpXSxbImluZGljZXMiLCgpPT5yLnQobnVsbCx2b2lkIDAsbigxNTE2MSkpXSxbImZ1dHVyZXMiLCgpPT5yLnQobnVsbCx2b2lkIDAsbig4MDY3MjcpKV0sWyJzdG9jayIsKCk9PnIudChudWxsLHZvaWQgMCxuKDM2NDYyNSkpXSxbImNvbW1vZGl0eSIsKCk9PnIudChudWxsLHZvaWQgMCxuKDc2MjkyMikpXV0pfSw0ODAyODQoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7T3B0aW9uc1NvdXJjZVRyYWNrRXZlbnRQcm92aWRlcjooKT0+YSx1c2VPcHRpb25zU291cmNlVHJhY2tFdmVudDooKT0+bH0pO3ZhciByPW4oNzc5NDc0KTtjb25zdCBvPSgwLHIuY3JlYXRlQ29udGV4dCkobnVsbCk7ZnVuY3Rpb24gbCgpe2NvbnN0IGU9KDAsci51c2VDb250ZXh0KShvKTtpZihudWxsPT09ZSl0aHJvdyBuZXcgRXJyb3IoIk9wdGlvbnNTb3VyY2VUcmFja0V2ZW50Q29udGV4dCBpcyBub3QgaW5pdGlhbGl6ZWQuIEFsbCBvcHRpb25zIGZlYXR1cmVzIG11c3QgaGF2ZSBhIHNvdXJjZSB0byB0cmFjayBldmVudHMuIE1ha2Ugc3VyZSB0byB3cmFwIHlvdXIgY29tcG9uZW50cyBpbiA8T3B0aW9uc1NvdXJjZVRyYWNrRXZlbnRQcm92aWRlcj4gcHJvdmlkZXIuIik7cmV0dXJuIGV9ZnVuY3Rpb24gYShlKXtjb25zdHtjaGlsZHJlbjp0LHNvdXJjZTpufT1lO3JldHVybiByLmNyZWF0ZUVsZW1lbnQoby5Qcm92aWRlcix7dmFsdWU6bn0sdCl9fSw3Nzc2ODAoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7dXNlR2V0U2VyaWVzOigpPT5sfSk7dmFyIHI9big3Nzk0NzQpLG89bigzNjM5NTgpO2Z1bmN0aW9uIGwoZSl7cmV0dXJuKDAsci51c2VNZW1vKSgoKCk9PigwLG8uYnVpbGRTZXJpZXMpKGUpKSxbZV0pfX0sMjUyODY2KGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse0VNUFRZX1ZBTFVFOigpPT5yfSk7Y29uc3Qgcj0i4oCUIn0sNTUxNTA1KGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse2ZpbmRNYXhQcmVjaXNpb246KCk9PmksZmluZFByZWNpc2lvbkJ5TWF4VmFsdWU6KCk9PnMsZmluZFByZWNpc2lvbkJ5TWluVmFsdWU6KCk9PmEsZ2V0Um91bmROdW1iZXI6KCk9PnV9KTt2YXIgcj1uKDcxMjc0NSk7Y29uc3Qgbz1NYXRoLnBvdygxMCwtMTIpO2Z1bmN0aW9uIGwoZSx0LG4scj0yKXtsZXQgbD1lLGE9MDtmb3IobGV0IGU9MDtlPG4ubGVuZ3RoO2UrKylNYXRoLmFicyhuW2VdKTxvfHwobD10KGwsTWF0aC5hYnMobltlXSkpLGE9TWF0aC5tYXgoYSxjKG5bZV0pLmxlbmd0aCkpO2lmKGw+PTEpcmV0dXJuIHI7Y29uc3Qgcz1jKGwpO2lmKGE9PT1zLmxlbmd0aCYmMT09PXMucmVwbGFjZSgvXjAqLywiIikubGVuZ3RoKXJldHVybiBzLmxlbmd0aDtmb3IobGV0IGU9MDtlPHMubGVuZ3RoO2UrKylpZigiMCIhPT1zW2VdKXJldHVybiBlK3I7cmV0dXJuIHJ9ZnVuY3Rpb24gYShlLHQ9Mil7cmV0dXJuIE1hdGgubWluKDEyLGwoMSxNYXRoLm1pbixlLHQpKX1mdW5jdGlvbiBzKGUsdD0yKXtyZXR1cm4gTWF0aC5taW4oMTIsbCgwLE1hdGgubWF4LGUsdCkpfWZ1bmN0aW9uIGkoZSl7bGV0IHQ9MDtmb3IobGV0IG49MDtuPGUubGVuZ3RoO24rKyl7Y29uc3Qgcj1jKGVbbl0pO3Q9TWF0aC5tYXgodCxyLmxlbmd0aCl9cmV0dXJuIE1hdGgubWluKDEyLHQpfWZ1bmN0aW9uIGMoZSl7cmV0dXJuIG5ldyByLkJpZyhlKS50b0ZpeGVkKCkuc3BsaXQoIi4iKVsxXXx8IiJ9ZnVuY3Rpb24gdShlLHQpe2NvbnN0IG49TWF0aC5wb3coMTAsdCk7cmV0dXJuIE1hdGgucm91bmQoKGUrTnVtYmVyLkVQU0lMT04pKm4pL259fSwzNjM5NTgoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7YnVpbGRTZXJpZXM6KCk9Pm0sYnVpbGRTZXJpZXNQaWNrZXJHcm91cHM6KCk9PmMsZm9ybWF0RXhwaXJhdGlvbkRhdGU6KCk9PnMsZm9ybWF0RXhwaXJhdGlvbkRhdGVMb25nOigpPT5pLGdldERheXNVbnRpbEV4cGlyYXRpb246KCk9PmQsZ2V0U2VyaWVzU3RyaWtlczooKT0+aCxnZXRTZXJpZXNVbmRlcmx5aW5nczooKT0+cCwKaXNDb250aW51b3VzU2VyaWVzOigpPT5mfSk7dmFyIHI9big1ODMwMzgpLG89big0MDIzOSksbD1uKDE2ODgyNCksYT1uKDg5MzExNSk7ZnVuY3Rpb24gcyhlLHQ9KDAsYS5nZXRMb2NhbGVJc28pKCkpe3JldHVybiBuZXcgSW50bC5EYXRlVGltZUZvcm1hdCh0LHt5ZWFyOiJudW1lcmljIixkYXk6Im51bWVyaWMiLG1vbnRoOiJzaG9ydCJ9KS5mb3JtYXQoZSl9ZnVuY3Rpb24gaShlLHQ9ImxvbmciLG49KDAsYS5nZXRMb2NhbGVJc28pKCkpe3JldHVybiBlLmdldEZ1bGxZZWFyKCk9PT0obmV3IERhdGUpLmdldEZ1bGxZZWFyKCk/bmV3IEludGwuRGF0ZVRpbWVGb3JtYXQobix7ZGF5OiJudW1lcmljIixtb250aDp0fSkuZm9ybWF0KGUpOm5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KG4se3llYXI6Im51bWVyaWMiLGRheToibnVtZXJpYyIsbW9udGg6dH0pLmZvcm1hdChlKX1mdW5jdGlvbiBjKGUpe2NvbnN0IHQ9W10sbj1mdW5jdGlvbihlPSgwLGEuZ2V0TG9jYWxlSXNvKSgpKXtjb25zdCB0PW5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KGUse2RheToibnVtZXJpYyJ9KTtyZXR1cm4gZT0+dC5mb3JtYXQoZSl9KCkscj1mdW5jdGlvbihlPSgwLGEuZ2V0TG9jYWxlSXNvKSgpKXtjb25zdCB0PW5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KGUse3llYXI6IjItZGlnaXQifSksbj1uZXcgSW50bC5EYXRlVGltZUZvcm1hdChlLHttb250aDoic2hvcnQifSk7cmV0dXJuKGUscj0hMSk9PnI/YCR7bi5mb3JtYXQoZSl9ICcke3QuZm9ybWF0KGUpfWA6bi5mb3JtYXQoZSl9KCk7Zm9yKGxldCBsPTA7bDxlLmxlbmd0aDtsKyspe2NvbnN0IGE9ZVtsXSxzPWVbbCsxXSxpPWVbbC0xXSxjPXRbdC5sZW5ndGgtMV0sdT1uKGEuZXhwRGF0ZSksZD0obz1hLmV4cERhdGUsbmV3IERhdGUoby5nZXRGdWxsWWVhcigpLG8uZ2V0TW9udGgoKSwxKSksbT1hLmV4cD09PXM/LmV4cHx8YS5leHA9PT1pPy5leHAscD0hIWkmJmkuZXhwRGF0ZS5nZXRGdWxsWWVhcigpIT09YS5leHBEYXRlLmdldEZ1bGxZZWFyKCksaD17dGl0bGU6bT9gJHt1fSAke2EuZmFtaWx5TmFtZX1gOnUsdmFsdWU6YS5pZCx0b29sdGlwOmEubGFiZWx9O2M/LmlkPT09ZC50b0lTT1N0cmluZygpP2MuaXRlbXMucHVzaChoKTp0LnB1c2goe2lkOmQudG9JU09TdHJpbmcoKSxpdGVtczpbaF0sdGl0bGU6cihkLHApLHN1Ymdyb3VwOnB9KX12YXIgbztyZXR1cm4gdH1mdW5jdGlvbiB1KGUsdCxuKXtjb25zdCBvPXMobiksbD1kKG4pLGE9KDAsci5zcGxpdFN5bWJvbE5hbWUpKGUpWzFdLnJlcGxhY2UoLzIwKFxkXGQpLywiJDEiKTtyZXR1cm5gJHtvfSAoJHtsfSkgJHthPT09dD90OmAke2F9ICR7dH1gfWB9ZnVuY3Rpb24gZChlKXtyZXR1cm4gTWF0aC5tYXgoMCwoMCxvLmdldENhbGVuZGFyRGF5c0RpZmYpKGUsbmV3IERhdGUpKX1mdW5jdGlvbiBtKGUpe2NvbnN0IHQ9W107Zm9yKGNvbnN0IG4gb2YgZSlmb3IoY29uc3QgZSBvZiBuLnNlcmllcyl7Y29uc3Qgcj0oMCxsLmdldERhdGVGcm9tWVlZWU1NREQpKGUuZXhwKSxvPXsuLi5lLGV4cERhdGU6cixmYW1pbHlEZXNjcmlwdGlvbjpuLmRlc2NyaXB0aW9uLGZhbWlseU5hbWU6bi5uYW1lLGxhYmVsOnUoZS51bmRlcmx5aW5nLG4ubmFtZSxyKSxzaG9ydElkOmAke2UuZXhwfWB9O3QucHVzaChvKX1yZXR1cm4gdC5zb3J0KCgoZSx0KT0+ZS5leHAtdC5leHApKS5tYXAoKChlLHQsbik9Pih7Li4uZSxzaG9ydElkOmUuZXhwPT09blt0LTFdPy5leHB8fGUuZXhwPT09blt0KzFdPy5leHA/YCR7ZS5leHB9JHtlLnJvb3R9YDpgJHtlLmV4cH1gfSkpKX1mdW5jdGlvbiBwKGUpe2NvbnN0IHQ9bmV3IFNldDtmb3IoY29uc3QgbiBvZiBlKXQuYWRkKG4udW5kZXJseWluZyk7cmV0dXJuIEFycmF5LmZyb20odCl9ZnVuY3Rpb24gaChlKXtjb25zdCB0PW5ldyBTZXQsbj17fTtmb3IoY29uc3QgciBvZiBlKWZvcihjb25zdCBlIG9mIHIuc3RyaWtlcyl0LmFkZChlKSxuW2VdPShuW2VdPz8wKSsxO3JldHVybntzdHJpa2VzQ291bnQ6bixzdHJpa2VzOkFycmF5LmZyb20odCkuc29ydCgoKGUsdCk9PmUtdCkpLHN0cmlrZXNNYXA6dH19ZnVuY3Rpb24gZihlKXtyZXR1cm4oMCxyLnNwbGl0U3ltYm9sTmFtZSkoZS51bmRlcmx5aW5nKVsxXSE9PWUucm9vdH19LDMyNjA0OChlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtCYWRSZXF1ZXN0RXJyb3JSZXNwb25zZTooKT0+b30pO3ZhciByPW4oMTMzODc0KTtjbGFzcyBvIGV4dGVuZHMgci5FcnJvclJlc3BvbnNle2NvbnN0cnVjdG9yKGUpe3N1cGVyKGUpLHRoaXMubmFtZT0iQmFkUmVxdWVzdEVycm9yIixlLmVycm9yP3RoaXMubWVzc2FnZT1lLmVycm9yOnRoaXMubWVzc2FnZT0idW5rbm93biBlcnJvciJ9fX0sMTMzODc0KGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse0Vycm9yUmVzcG9uc2U6KCk9PnJ9KTtjbGFzcyBye2NvbnN0cnVjdG9yKGUpe3RoaXMuX3N0YXR1cz1lLnN0YXR1cyx0aGlzLl9zdGF0dXNUZXh0PWUuc3RhdHVzVGV4dHx8IiJ9Z2V0SW5mbygpe3JldHVybntuYW1lOnRoaXMubmFtZSxzdGF0dXM6dGhpcy5fc3RhdHVzLHN0YXR1c1RleHQ6dGhpcy5fc3RhdHVzVGV4dCxtZXNzYWdlOnRoaXMubWVzc2FnZX19fX0sMTU4NzYzKGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse0h0dHBFcnJvclJlc3BvbnNlOigpPT5vfSk7dmFyIHI9bigxMzM4NzQpO2NsYXNzIG8gZXh0ZW5kcyByLkVycm9yUmVzcG9uc2V7Y29uc3RydWN0b3IoZSl7c3VwZXIoZSksdGhpcy5uYW1lPSJIdHRwRXJyb3JSZXNwb25zZSIsdGhpcy5fc3RhdHVzPj0yMDAmJnRoaXMuX3N0YXR1czwzMDA/dGhpcy5tZXNzYWdlPWBIdHRwIGZhaWx1cmUgZHVyaW5nIHBhcnNpbmcgZm9yICR7ZS51cmx8fCIodW5rbm93biB1cmwpIn1gOnRoaXMubWVzc2FnZT1gSHR0cCBmYWlsdXJlIHJlc3BvbnNlIGZvciAke2UudXJsfHwiKHVua25vd24gdXJsKSJ9OiAke2Uuc3RhdHVzfSAke2Uuc3RhdHVzVGV4dH1gfX19LDIxNjA3OShlLHQsbil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHIoKXtyZXR1cm4gd2luZG93LlNDUkVFTkVSX0hPU1R8fCJodHRwczovL3NjYW5uZXIudHJhZGluZ3ZpZXcuY29tIn1mdW5jdGlvbiBvKGUsdCl7CmNvbnN0IG49cigpO3JldHVybiB0P2Ake259LyR7dH0vYDoxPT09ZS5sZW5ndGg/YCR7bn0vJHtlWzBdfS9gOmAke259L2dsb2JhbC9gfWZ1bmN0aW9uIGwoZSx0LG4sbyxsKXtjb25zdCBhPXIoKSxzPXtzeW1ib2w6ZSxmaWVsZHM6dH07byYmKHMubm9fNDA0PSJ0cnVlIiksbCYmKHMucHJpY2VfY29udmVyc2lvbj0iZGlzYWJsZWQiKSxuJiYoc1sibGFiZWwtcHJvZHVjdCJdPW4pO2NvbnN0IGk9bmV3IFVSTChgJHthfS9zeW1ib2xgKTtyZXR1cm4gT2JqZWN0LmtleXMocykuZm9yRWFjaCgoZT0+e2kuc2VhcmNoUGFyYW1zLmFwcGVuZChlLHNbZV0pfSkpLGkudG9TdHJpbmcoKX1mdW5jdGlvbiBhKGUsdCl7cmV0dXJuYCR7cigpfS9lbnVtP2lkPSR7ZX0mbGFuZz0ke3R8fHdpbmRvdy5sYW5ndWFnZXx8ImVuIn1gfWZ1bmN0aW9uIHMoZSx0KXtyZXR1cm5gJHtyKCl9L2VudW0vb3JkZXJlZD9pZD0ke2V9Jmxhbmc9JHt0fHx3aW5kb3cubGFuZ3VhZ2V8fCJlbiJ9YH1uLmQodCx7Z2V0QmFja2VuZFVybDooKT0+byxnZXRFbnVtT3JkZXJlZFJlZ2lzdHJ5VXJsOigpPT5zLGdldEVudW1SZWdpc3RyeVVybDooKT0+YSxnZXRTeW1ib2xEYXRhVXJsOigpPT5sfSl9LDc5MDA0MShlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtjaGFuZ2VEZXNjcmlwdGlvbjooKT0+Yyxjb252ZXJ0VG9DdXN0b21TeW1ib2xMaXN0OigpPT5zLGNvbnZlcnRUb01hcmtlZFN5bWJvbExpc3Q6KCk9Pml9KTt2YXIgcj1uKDEzODYzOCksbz1uKDM4NDAxNyksbD1uKDU4MDUyNiksYT0obig2MjEyMCksbig5NjIwODEpLG4oMzA0Mzk5KSk7bigxNTU5MDApLG4oNTY5Mzk4KSxuKDc4ODAxKTtmdW5jdGlvbiBzKGUpe2NvbnN0IHQ9ZS5pZCxuPWUubmFtZSx7c3ltYm9sczpyLGNvbGxhcHNlZFNlcGFyYXRvcnM6b309KDAsbC5sb2NhbENvbGxhcHNlU3RhdGVGcm9tUmVtb3RlU3ltYm9scykoZS5zeW1ib2xzPz9bXSk7cmV0dXJue3R5cGU6ImN1c3RvbSIsaWQ6dCxuYW1lOm4sZGVzY3JpcHRpb246ZS5kZXNjcmlwdGlvbixhY3RpdmU6ZS5hY3RpdmUsc3ltYm9sczpyLHNoYXJlZDplLnNoYXJlZCxjb2xsYXBzZWRTZXBhcmF0b3JzOm8scGVyc2lzdGVkU3RhdGU6ZSxtZXRhOntzZXJ2ZXJfaWQ6K3R9fX1mdW5jdGlvbiBpKGUpe2NvbnN0IHQ9KDAsci5lbnN1cmVOb3ROdWxsKShlLmNvbG9yKSx7c3ltYm9sczpuLGNvbGxhcHNlZFNlcGFyYXRvcnM6b309KDAsbC5sb2NhbENvbGxhcHNlU3RhdGVGcm9tUmVtb3RlU3ltYm9scykoZS5zeW1ib2xzPz9bXSk7cmV0dXJue3R5cGU6ImNvbG9yZWQiLGlkOnQsY29sb3I6dCxuYW1lOmUubmFtZT8/bnVsbCxkZXNjcmlwdGlvbjplLmRlc2NyaXB0aW9uLGFjdGl2ZTplLmFjdGl2ZSxzeW1ib2xzOm4sc2hhcmVkOmUuc2hhcmVkLGNvbGxhcHNlZFNlcGFyYXRvcnM6byxwZXJzaXN0ZWRTdGF0ZTplLG1ldGE6e3NlcnZlcl9pZDorZS5pZH19fWZ1bmN0aW9uIGMoZSx0KXtyZXR1cm4oMCxvLmZldGNoKSgoMCxhLndhdGNobGlzdFVybCkoYC9hcGkvdjEvc3ltYm9sc19saXN0L2N1c3RvbS8ke2V9L3VwZGF0ZV9tZXRhL2ApLHttZXRob2Q6IlBPU1QiLGJvZHk6SlNPTi5zdHJpbmdpZnkoe2Rlc2NyaXB0aW9uOnR9KSxjcmVkZW50aWFsczoiaW5jbHVkZSIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifX0pLnRoZW4oYS5oYW5kbGVKU09OKS50aGVuKHMpfX0sNTgwNTI2KGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse2dldExvY2FsTGlzdFN5bWJvbHM6KCk9Pm0sbG9jYWxDb2xsYXBzZVN0YXRlRnJvbVJlbW90ZVN5bWJvbHM6KCk9PmkscmVtb3RlUmVuYW1lU2VwYXJhdG9yczooKT0+dSxyZW1vdGVTeW1ib2xzRm9ybUxvY2FsU3RhdGU6KCk9PmMsc2VwYXJhdG9yUmVtb3RlUmVwcmVzZW50YXRpb246KCk9PmR9KTt2YXIgcj1uKDEzODYzOCksbz1uKDkwMTAyMiksbD1uKDcwNTAxMiksYT1uKDkyMjI0OCk7Y29uc3Qgcz1uZXcgUmVnRXhwKGBeJHtvLlNFUEFSQVRPUl9QUkVGSVh9KOKBpCk/KC4rKSRgKTtmdW5jdGlvbiBpKGUpe2NvbnN0IHQ9W10sbj1bXTtyZXR1cm4gZS5mb3JFYWNoKChlPT57Y29uc3RbLHIsbF09ZS5tYXRjaChzKXx8W107aWYobCl7Y29uc3QgZT1gJHtvLlNFUEFSQVRPUl9QUkVGSVh9JHtsfWA7ciYmbi5wdXNoKGUpLHQucHVzaChlKX1lbHNlIHQucHVzaChlKX0pKSx7c3ltYm9sczp0LGNvbGxhcHNlZFNlcGFyYXRvcnM6bn19ZnVuY3Rpb24gYyhlLHQpe2NvbnN0IG49aChlKTtyZXR1cm4gdC5tYXAoKGU9Pm4/Lmhhc093blByb3BlcnR5KGUpP2QoZSxuW2VdKTplKSl9ZnVuY3Rpb24gdShlLHQsbil7Y29uc3Qgcj1oKGUpO2lmKHI/Lmhhc093blByb3BlcnR5KG4pKXtjb25zdCBlPXJbbl07cmV0dXJue29sZFNlcGFyYXRvcjpkKHQsZSksbmV3U2VwYXJhdG9yOmQobixlKX19cmV0dXJue29sZFNlcGFyYXRvcjp0LG5ld1NlcGFyYXRvcjpufX1mdW5jdGlvbiBkKGUsdCl7Y29uc3Qgbj1lLnJlcGxhY2Uoby5TRVBBUkFUT1JfUFJFRklYLCIiKS5yZXBsYWNlKCLigaQiLCIiKTtyZXR1cm5gJHtvLlNFUEFSQVRPUl9QUkVGSVh9JHt0PyLigaQiOiIifSR7bn1gfWZ1bmN0aW9uIG0oZSl7Y29uc3QgdD1wKCk7cmV0dXJuKDAsci5lbnN1cmVEZWZpbmVkKSh0Lm1hcmtlZExpc3RzPy5saXN0cy5ieUNvbG9yW2VdPy5zeW1ib2xzfHx0LmN1c3RvbUxpc3RzLmxpc3RzLmJ5SWRbZV0/LnN5bWJvbHMpfWZ1bmN0aW9uIHAoKXtyZXR1cm4oMCxsLnNlcnZpY2UpKGEuU1lNQk9MX0xJU1RfU0VSVklDRSkuc3RvcmUuZ2V0U3RhdGUoKX1mdW5jdGlvbiBoKGUpe3JldHVybiBwKCkuY29sbGFwc2VkU2VwYXJhdG9yc1tlXX19LDYyMTIwKGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse3BlbmRpbmdPcGVuU2VwYXJhdG9yczooKT0+cn0pO2NvbnN0IHI9bmV3IFNldH0sODc3NDQyKGUsdCxuKXsidXNlIHN0cmljdCI7dmFyIHIsbyxsO24uZCh0LHtUaWNrZXJUeXBlOigpPT5yfSksZnVuY3Rpb24oZSl7ZS5UaWNrZXI9InRpY2tlciIsZS5EZXNjcmlwdGlvbj0iZGVzY3JpcHRpb24ifShyfHwocj17fSkpLGZ1bmN0aW9uKGUpe2UuU3ltYm9sTmFtZT0ic2hvcnRfbmFtZSIsCmUuTGFzdD0ibGFzdF9wcmljZSIsZS5DaGFuZ2U9ImNoYW5nZSIsZS5DaGFuZ2VJblBlcmNlbnRzPSJjaGFuZ2VfcGVyY2VudCIsZS5Wb2x1bWU9InZvbHVtZSIsZS5QcmVQb3N0TWFya2V0PSJyY2hwIixlLkZsYWc9ImZsYWcifShvfHwobz17fSkpLGZ1bmN0aW9uKGUpe2VbZS5ERVNDPS0xXT0iREVTQyIsZVtlLkFTQz0xXT0iQVNDIn0obHx8KGw9e30pKX0sNjY0Mzg2KGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse1N5bWJvbFNlYXJjaERpYWxvZ0NvbnRlbnRJdGVtOigpPT5VLGlzR3JvdXBlZFN5bWJvbEV4dGVuZGVkOigpPT5IfSk7dmFyIHI9big3Nzk0NzQpLG89big5MTQ0ODcpLGw9bi5uKG8pLGE9big3ODMyNTQpLHM9bigxMzg2MzgpLGk9bigyNzMzMTApLGM9bigyNzgyNjMpLHU9big5MzAyMzEpLGQ9big1NjEyMDUpLG09big4MTA0MSkscD1uKDEwNjkwMCksaD1uKDIwMDY2NiksZj1uKDczODQ1OCksUz1uKDY0MTU5MyksZz1uKDU3NzEwOSkseT1uKDkyMzIzOSksYj1uKDUyMzI4Niksdj1uLm4oYik7ZnVuY3Rpb24gXyhlKXtjb25zdHtmbGFnczp0LGxpbWl0Om4sY2xhc3NOYW1lOm99PWUsYT10LnNsaWNlKDAsbikscz10Lmxlbmd0aC1uO3JldHVybiByLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpsKCkodigpLmNvbnRhaW5lcixvKX0sci5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6digpLmZsYWdzfSxhLm1hcCgoKGUsdCk9PnIuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOnYoKS5mbGFnQ29udGFpbmVyLHN0eWxlOnt6SW5kZXg6YS5sZW5ndGgtdH0sa2V5OnR9LHIuY3JlYXRlRWxlbWVudCh5LlN5bWJvbFNlYXJjaEZsYWcsey4uLmUsY2xhc3NOYW1lOnYoKS5mbGFnfSkpKSkpLHM+MCYmci5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOnYoKS5jb3VudGVyfSxgKyR7c31gKSl9dmFyIEU9bigyNjQzMTgpLEM9bigxNjM1NzYpLFQ9bi5uKEMpLHg9big5MzUxKSxJPW4ubih4KSx3PW4oNTM3NzMwKTtmdW5jdGlvbiBOKGUpe2NvbnN0e2NsYXNzTmFtZTp0LGlzRXhwYW5kZWQ6byxvbkNsaWNrOmx9PWU7cmV0dXJuIHIuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOnR9LHIuY3JlYXRlRWxlbWVudChFLkNsaWNrYWJsZUljb25CdXR0b24se2NvbG9yQ2xhc3NOYW1lOncuYnV0dG9uQ29sb3JzLHRpdGxlOm8/YS50KG51bGwse2NvbnRleHQ6InN5bWJvbF9zZWFyY2hfZXhwYW5kX3RvZ2dsZSJ9LG4oMjM5MTk4KSk6YS50KG51bGwse2NvbnRleHQ6InN5bWJvbF9zZWFyY2hfZXhwYW5kX3RvZ2dsZSJ9LG4oMzg2MjQ2KSksdGFiSW5kZXg6LTEsaWNvbjpvP1QoKTpJKCksb25DbGljazpsfSkpfXZhciBSPW4oMTE3MzEzKSxBPW4oODkzMTE1KSxMPW4oNzY5OSksaz1uKDU5NTE4OSksTz1uKDU5MDQ4NiksTT1uKDIzNDYzNiksRD1uKDQ4MDk3MiksUD1uKDE3ODQwNyksRj1uKDE0MDM0MCksQj1uKDM4NDQ1OCk7ZnVuY3Rpb24gSChlKXtyZXR1cm4gQm9vbGVhbigicGFyZW50ImluIGUmJmUucGFyZW50Lmdyb3VwZWRfc3ltYm9scyl9ZnVuY3Rpb24gVShlKXtjb25zdHtkYW5nZXJvdXNUaXRsZUhUTUw6dCx0aXRsZTpvLGRhbmdlcm91c0Rlc2NyaXB0aW9uSFRNTDp5LGRlc2NyaXB0aW9uOmIsc2VhcmNoVG9rZW46dixleGNoYW5nZU5hbWU6RSxtYXJrZXRUeXBlOkMsb25DbGljazpULGlzU2VsZWN0ZWQ6eCxpc0VvZDpJPSExLGlzQWN0aXZlOnc9ITEsaXNPZmZzZXQ6VT0hMSxpbnZhbGlkOlc9ITEsaXNIaWdobGlnaHRlZDpWPSExLGhpZGVFeGNoYW5nZTpHPSExLGhpZGVNYXJrZWRMaXN0RmxhZzpRPSExLG9uRXhwYW5kQ2xpY2s6eixpc0V4cGFuZGVkOiQsaG92ZXJDb21wb25lbnQ6cSxzb3VyY2U6Syxzb3VyY2UyOlksc291cmNlTG9nb3M6WD1bXSx0eXBlOmosaXRlbVJlZjpaLG9uTW91c2VPdXQ6Sixvbk1vdXNlT3ZlcjplZSxjbGFzc05hbWU6dGUsYWN0aW9uczpuZSxyZWZlcmVuY2U6cmUsaXRlbTpvZSxmdWxsU3ltYm9sTmFtZTpsZSxsb2dvRGF0YTphZSxzaG9ydE5hbWU6c2UsaGlkZUxvZ286aWU9ITEsZXhjaGFuZ2VUb29sdGlwOmNlLGhpZGVNYXJrZXRUeXBlOnVlLGlzUHJpbWFyeTpkZSxpc1Byb21vOm1lLGZvdW5kX2J5X2N1c2lwOnBlLGN1c2lwOmhlLGZvdW5kX2J5X2lzaW46ZmUsaXNpbjpTZSxpcG9EYXRlOmdlfT1lLHtjb3VudHJ5OnllLHByb3ZpZGVySWQ6YmV9PVhbMF18fHt9LHtpc1NtYWxsV2lkdGg6dmUsaXNNb2JpbGU6X2V9PSgwLHMuZW5zdXJlTm90TnVsbCkoKDAsci51c2VDb250ZXh0KShkLlN5bWJvbFNlYXJjaEl0ZW1zRGlhbG9nQ29udGV4dCkpLEVlPUJvb2xlYW4ocSksQ2U9IVcmJiFHJiYoX2V8fCFFZSksVGU9KDAscC51c2VXYXRjaGVkVmFsdWVSZWFkb25seSkoe3dhdGNoZWRWYWx1ZTpoLndhdGNoZWRUaGVtZX0pPT09bS5TdGRUaGVtZS5EYXJrP0IuZGFyazpCLmxpZ2h0LHhlPXEsSWU9Qm9vbGVhbihvZSYmImdyb3VwZWRfc3ltYm9scyJpbiBvZSYmb2UuZ3JvdXBlZF9zeW1ib2xzKSx3ZT0hKDAsUi5pc09uTW9iaWxlQXBwUGFnZSkoImFueSIpJiYhKDAsdS5pc0ZlYXR1cmVzZXRFbmFibGVkKSgid2lkZ2V0IikmJiFXJiYhUSYmKCF6fHxJZSkmJmxlLE5lPSgwLHUuaXNGZWF0dXJlc2V0RW5hYmxlZCkoInNob3dfc3ltYm9sX2xvZ29zIiksUmU9KDAsdS5pc0ZlYXR1cmVzZXRFbmFibGVkKSgic2hvd19leGNoYW5nZV9sb2dvcyIpLEFlPU5lfHwhKDAsdS5pc0ZlYXR1cmVzZXRFbmFibGVkKSgid2lkZ2V0IikmJiFpZSxMZT1ZPy5kZXNjcmlwdGlvbj8/SyxrZT1ZPy5uYW1lPz9LLE9lPW9lJiYoZnVuY3Rpb24oZSl7cmV0dXJuIEJvb2xlYW4oInBhcmVudCJpbiBlJiZlLnBhcmVudC5jb250cmFjdHMpfShvZSl8fEgob2UpKSxNZT14ZT9yLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpsKCkoQi5jZWxsLEIuaG92ZXJDZWxsKX0sci5jcmVhdGVFbGVtZW50KHhlLHsuLi5lLG9uTW91c2VPdmVyOnZvaWQgMCxvbk1vdXNlT3V0OnZvaWQgMH0pLHomJnIuY3JlYXRlRWxlbWVudChOLHtjbGFzc05hbWU6Qi5leHBhbmRUb2dnbGUsaXNFeHBhbmRlZDokLG9uQ2xpY2s6UGV9KSk6dm9pZCAwCjtyZXR1cm4gci5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6bCgpKEIuaXRlbVJvdyx2ZSYmQi5tdWx0aUxpbmUsViYmQi5oaWdobGlnaHRlZCxWJiZUZSx4JiZCLnNlbGVjdGVkLHcmJkIuYWN0aXZlLFcmJkIuaW52YWxpZCwkJiZCLmV4cGFuZGVkLE9lJiZCLm5lc3RlZCwhX2UmJmYubW9iaWxldG91Y2gmJkVlJiZCLmhvdmVyLHRlKSxvbkNsaWNrOmZ1bmN0aW9uKGUpe2lmKCFUfHxlLmRlZmF1bHRQcmV2ZW50ZWQpcmV0dXJuO2UucHJldmVudERlZmF1bHQoKSxUKGUpfSwiZGF0YS1yb2xlIjplWyJkYXRhLXJvbGUiXXx8Imxpc3QtaXRlbSIsImRhdGEtcWEtaWQiOmVbImRhdGEtcWEtaWQiXSwiZGF0YS1hY3RpdmUiOncsImRhdGEtc3MtaXRlbSI6bWU/ImZlYXR1cmVkIjp2b2lkIDAsImRhdGEtc3ltYm9sLW5hbWUiOmxlLCJkYXRhLXR5cGUiOkMsImRhdGEtbmFtZSI6InN5bWJvbC1zZWFyY2gtZGlhbG9nLWNvbnRlbnQtaXRlbSIsb25Nb3VzZU91dDpKLG9uTW91c2VPdmVyOmVlLHJlZjpyZX0sci5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6Qi5uZXN0ZWRCb3JkZXJPdmVybGFwfSksci5jcmVhdGVFbGVtZW50KCJkaXYiLHtyZWY6WixjbGFzc05hbWU6bCgpKEIuaXRlbUluZm9DZWxsLEIuY2VsbCxVJiZCLm9mZnNldCl9LHIuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOmwoKShCLmFjdGlvbkhhbmRsZVdyYXAsIUFlJiZCLmZpeGVkV2lkdGgpfSxyLmNyZWF0ZUVsZW1lbnQoci5GcmFnbWVudCxudWxsLHdlJiZyLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpsKCkoQi5tYXJrZWRGbGFnV3JhcCxVJiZCLm9mZnNldCl9LHIuY3JlYXRlRWxlbWVudChrLkZsYWcse2NsYXNzTmFtZTpmLm1vYmlsZXRvdWNoP0IubWFya2VkRmxhZ01vYmlsZTpCLm1hcmtlZEZsYWcsc3ltYm9sOmxlfSkpLEFlJiYhVSYmci5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6Qi5sb2dvfSxyLmNyZWF0ZUVsZW1lbnQoZy5TeW1ib2xMb2dvLHtrZXk6bGUsbG9nbzphZSxwbGFjZWhvbGRlcjpzZT9zZVswXTp2b2lkIDB9KSkpKSxyLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpsKCkoQi5kZXNjcmlwdGlvbixBZSYmVSYmQi5vZmZzZXQpfSxvJiZyLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpsKCkoQi5zeW1ib2xUaXRsZSxXJiZCLmludmFsaWQsIUJvb2xlYW4oeSkmJkIubm9EZXNjcmlwdGlvbiwhZi5tb2JpbGV0b3VjaCYmImFwcGx5LW92ZXJmbG93LXRvb2x0aXAiKSwiZGF0YS1vdmVyZmxvdy10b29sdGlwLXRleHQiOm8sImRhdGEtbmFtZSI6Imxpc3QtaXRlbS10aXRsZSJ9LG8sSSYmci5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOkIuZGF0YU1vZGV9LCJFIikpLCFvJiZ0JiZyLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpsKCkoQi5zeW1ib2xUaXRsZSxXJiZCLmludmFsaWQsIWYubW9iaWxldG91Y2gmJiJhcHBseS1vdmVyZmxvdy10b29sdGlwIiksImRhdGEtbmFtZSI6Imxpc3QtaXRlbS10aXRsZSIsImRhdGEtb3ZlcmZsb3ctdG9vbHRpcC10ZXh0IjooMCxTLnJlbW92ZVRhZ3MpKHQpfSxyLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtkYW5nZXJvdXNseVNldElubmVySFRNTDp7X19odG1sOnR9fSksSSYmci5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOkIuZGF0YU1vZGV9LCJFIikpLHZlJiZEZSgpKSksdmU/TWU6ci5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6bCgpKEIuY2VsbCxCLmRlc2NyaXB0aW9uQ2VsbCxFZSYmQi5hZGRpdGlvbil9LERlKCksTWUpLHIuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOmwoKShCLmV4Y2hhbmdlQ2VsbCxCLmNlbGwsIUNlJiZCLmhpZGRlbil9LHIuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOmwoKShCLmV4Y2hhbmdlRGVzY3JpcHRpb24pfSwhdmUmJm1lJiZyLmNyZWF0ZUVsZW1lbnQoTy5CYWRnZSx7Y2xhc3NOYW1lOkIucHJvbW9CYWRnZSxzaXplOk0uQmFkZ2VTaXplLlNtYWxsLGNoaWxkcmVuOmEudChudWxsLHZvaWQgMCxuKDk2NjQ3NSkpfSksIXVlJiZyLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpCLm1hcmtldFR5cGV9LEMpLHIuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOkIuc291cmNlfSx2ZSYmbWUmJnIuY3JlYXRlRWxlbWVudChPLkJhZGdlLHtjbGFzc05hbWU6bCgpKEIucHJvbW9CYWRnZSxCLnByb21vSWNvbiwiYXBwbHktY29tbW9uLXRvb2x0aXAiKSxzaXplOk0uQmFkZ2VTaXplLlNtYWxsLHRpdGxlOmEudChudWxsLHZvaWQgMCxuKDk2NjQ3NSkpLGxlZnRTbG90OnIuY3JlYXRlRWxlbWVudChELlNjYWxhYmxlSWNvbix7aWNvbjpGfSl9KSxkZSYmdiYmci5jcmVhdGVFbGVtZW50KGkuSWNvbix7Y2xhc3NOYW1lOmwoKSgiYXBwbHktY29tbW9uLXRvb2x0aXAiLEIucHJpbWFyeUljb24pLHRpdGxlOmEudChudWxsLHZvaWQgMCxuKDU1MjA5NSkpLGljb246UH0pLCJlY29ub21pYyI9PT1qJiZMZSYma2U/ci5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6bCgpKEIuZXhjaGFuZ2VOYW1lLCJhcHBseS1jb21tb24tdG9vbHRpcCIsQi5uYXJyb3csdWUmJkIud2lkZSksdGl0bGU6TGV9LGtlKTpyLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpsKCkoQi5leGNoYW5nZU5hbWUsY2UmJiJhcHBseS1jb21tb24tdG9vbHRpcCIpLHRpdGxlOmNlfSwoMCxMLnJlZGVmaW5lRXhjaGFuZ2VOYW1lKShFKSkpKSxyLmNyZWF0ZUVsZW1lbnQoXyx7a2V5OlJlP2Ake2xlfV9leGNoYW5nZWA6YCR7eWV9XyR7YmV9XyR7WT8uaWR9XyR7an1gLGNsYXNzTmFtZTpsKCkoQi5mbGFnLFgubGVuZ3RoPjE/Qi5tdWx0aXBsZUZsYWdzOnZvaWQgMCksbGltaXQ6dmU/Mzo1LGZsYWdzOlh9KSx6JiZyLmNyZWF0ZUVsZW1lbnQoTix7Y2xhc3NOYW1lOkIuZXhwYW5kVG9nZ2xlLGlzRXhwYW5kZWQ6JCxvbkNsaWNrOlBlfSkpLHIuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOmwoKShCLmNlbGwsQm9vbGVhbihuZSk/Qi5hY3Rpb25zQ2VsbDpCLmVtcHR5QWN0aW9ucyl9LG5lKSk7ZnVuY3Rpb24gRGUoKXsKaWYoVylyZXR1cm4gbnVsbDtjb25zdCBlPWwoKShCLnN5bWJvbERlc2NyaXB0aW9uLCFmLm1vYmlsZXRvdWNoJiYiYXBwbHktb3ZlcmZsb3ctdG9vbHRpcCBhcHBseS1vdmVyZmxvdy10b29sdGlwLS1hbGxvdy10ZXh0Iik7aWYoeSl7Y29uc3QgdD1mdW5jdGlvbigpezA7aWYocGUmJmhlKXJldHVybmBDVVNJUDogJHtoZX1gO2lmKGZlJiZTZSlyZXR1cm5gSVNJTjogJHtTZX1gO2lmKGdlKXJldHVybigwLGMuZm9ybWF0VGltZSkoMWUzKmdlLCgwLEEuZ2V0TG9jYWxlSXNvKSgpLCJ5ZWFyIiwiZGF5Iik7cmV0dXJuIG51bGx9KCk7cmV0dXJuIHQ/ci5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6bCgpKEIuc3ltYm9sRGVzY3JpcHRpb24sQi5jb21wb3NpdGVEZXNjcmlwdGlvbil9LHIuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZTpsKCkoQi5zeW1ib2xEZXNjcmlwdGlvbk1haW4sIWYubW9iaWxldG91Y2gmJiJhcHBseS1vdmVyZmxvdy10b29sdGlwIGFwcGx5LW92ZXJmbG93LXRvb2x0aXAtLWFsbG93LXRleHQiKSwiZGF0YS1vdmVyZmxvdy10b29sdGlwLXRleHQiOigwLFMucmVtb3ZlVGFncykoeSksZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUw6e19faHRtbDp5fX0pLHIuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZTpCLnN5bWJvbERlc2NyaXB0aW9uRGV0YWlscyxkYW5nZXJvdXNseVNldElubmVySFRNTDp7X19odG1sOnR9fSkpOnIuY3JlYXRlRWxlbWVudCgiZGl2Iix7ImRhdGEtb3ZlcmZsb3ctdG9vbHRpcC10ZXh0IjooMCxTLnJlbW92ZVRhZ3MpKHkpLGNsYXNzTmFtZTplLGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MOntfX2h0bWw6eX19KX1yZXR1cm4gbnVsbH1mdW5jdGlvbiBQZShlKXt6JiYhZS5kZWZhdWx0UHJldmVudGVkJiYoZS5wcmV2ZW50RGVmYXVsdCgpLHooZSkpfX19LDczMjUzMyhlLHQsbil7InVzZSBzdHJpY3QiO3ZhciByLG87bi5kKHQse1JPV19IRUlHSFQ6KCk9PmEsdGFic1dpdGhIaWRkZW5NYXJrZXRUeXBlOigpPT5sfSksZnVuY3Rpb24oZSl7ZS5TdG9ja3M9InN0b2NrcyIsZS5GdXR1cmVzPSJmdXR1cmVzIixlLkZ1bmRzPSJmdW5kcyIsZS5Gb3JleD0iZm9yZXgiLGUuQ3J5cHRvPSJiaXRjb2luLGNyeXB0byIsZS5JbmRleD0iaW5kZXgiLGUuQm9uZD0iYm9uZCIsZS5FY29ub21pYz0iZWNvbm9taWMiLGUuT3B0aW9ucz0ib3B0aW9ucyJ9KHJ8fChyPXt9KSksZnVuY3Rpb24oZSl7ZS5FY29ub21pY0NvdW50cnlTZWxlY3Q9ImVjb25vbWljLWNvdW50cnktc2VsZWN0IixlLkVjb25vbWljU291cmNlU2VsZWN0PSJlY29ub21pYy1zb3VyY2Utc2VsZWN0IixlLkVjb25vbWljQ2F0ZWdvcnlTZWxlY3Q9ImVjb25vbWljLWNhdGVnb3J5LXNlbGVjdCIsZS5TdG9ja3NDb3VudHJ5U2VsZWN0PSJzdG9ja3MtY291bnRyeS1zZWxlY3QiLGUuU3RvY2tUeXBlU2VsZWN0PSJzdG9jay10eXBlLXNlbGVjdCIsZS5TdG9ja1NlY3RvclNlbGVjdD0ic3RvY2stc2VjdG9yLXNlbGVjdCIsZS5GdXR1cmVzQ291bnRyeVNlbGVjdD0iZnV0dXJlcy1jb3VudHJ5LXNlbGVjdCIsZS5GdXR1cmVzQ2F0ZWdvcnlTZWxlY3Q9ImZ1dHVyZXMtY2F0ZWdvcnktc2VsZWN0IixlLkZ1bmRzQ291bnRyeVNlbGVjdD0iZnVuZHMtY291bnRyeS1zZWxlY3QiLGUuRnVuZHNUeXBlU2VsZWN0PSJmdW5kcy10eXBlLXNlbGVjdCIsZS5DcnlwdG9FeGNoYW5nZVNlbGVjdD0iY3J5cHRvLWV4Y2hhbmdlLXNlbGVjdCIsZS5DcnlwdG9UeXBlU2VsZWN0PSJjcnlwdG8tdHlwZS1zZWxlY3QiLGUuQ3J5cHRvRXhjaGFuZ2VUeXBlU2VsZWN0PSJjcnlwdG8tZXhjaGFuZ2UtdHlwZS1zZWxlY3QiLGUuRm9yZXhFeGNoYW5nZVNlbGVjdD0iZm9yZXgtZXhjaGFuZ2Utc2VsZWN0IixlLkluZGV4RXhjaGFuZ2VTZWxlY3Q9ImluZGV4LWV4Y2hhbmdlLXNlbGVjdCIsZS5Cb25kQ291bnRyeVNlbGVjdD0iYm9uZC1jb3VudHJ5LXNlbGVjdCIsZS5Cb25kVHlwZVNlbGVjdD0iYm9uZC10eXBlLXNlbGVjdCJ9KG98fChvPXt9KSk7Y29uc3QgbD1bImZ1dHVyZXMiLCJmb3JleCIsImJvbmQiLCJlY29ub21pYyIsIm9wdGlvbnMiXSxhPTUyfSw3ODMxMTYoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7RklMVEVSX0RFRkFVTFRfVkFMVUU6KCk9PmEsVEFCX1NFTEVDVF9GSUxURVJfTUFQOigpPT5tLFRBQl9TT1VSQ0VfRklMVEVSX01BUDooKT0+ZH0pO3ZhciByPW4oMTg1MjcxKTtjb25zdCBvPSgpPT5be25hbWU6ci50KG51bGwse2NvbnRleHQ6InN5bWJvbHNfdHlwZSJ9LG4oMzUwMTQ2KSksdmFsdWU6IiIsc2VhcmNoX3R5cGU6InVuZGVmaW5lZCJ9LHtuYW1lOnIudChudWxsLHtjb250ZXh0OiJzeW1ib2xzX3R5cGUifSxuKDU1NTUxMCkpLHZhbHVlOiJzdG9ja3MiLHNlYXJjaF90eXBlOiJzdG9ja3MifSx7bmFtZTpyLnQobnVsbCx7Y29udGV4dDoic3ltYm9sc190eXBlIn0sbig1NjQ5MTcpKSx2YWx1ZToiZnVuZHMiLHNlYXJjaF90eXBlOiJmdW5kcyJ9LHtuYW1lOnIudChudWxsLHtjb250ZXh0OiJzeW1ib2xzX3R5cGUifSxuKDUwNTA3OSkpLHZhbHVlOiJmdXR1cmVzIixzZWFyY2hfdHlwZToiZnV0dXJlcyJ9LHtuYW1lOnIudChudWxsLHtjb250ZXh0OiJzeW1ib2xzX3R5cGUifSxuKDk3OTk3KSksdmFsdWU6ImZvcmV4IixzZWFyY2hfdHlwZToiZm9yZXgifSx7bmFtZTpyLnQobnVsbCx7Y29udGV4dDoic3ltYm9sc190eXBlIn0sbigzODQ1OTcpKSx2YWx1ZToiY2ZkIixzZWFyY2hfdHlwZToiY2ZkIn0se25hbWU6ci50KG51bGwse2NvbnRleHQ6InN5bWJvbHNfdHlwZSJ9LG4oNjU1MjM1KSksdmFsdWU6ImJpdGNvaW4sY3J5cHRvIixzZWFyY2hfdHlwZToiY3J5cHRvIn0se25hbWU6ci50KG51bGwse2NvbnRleHQ6InN5bWJvbHNfdHlwZSJ9LG4oOTI3NDExKSksdmFsdWU6ImluZGV4IixzZWFyY2hfdHlwZToiaW5kZXgifSx7bmFtZTpyLnQobnVsbCx7Y29udGV4dDoic3ltYm9sc190eXBlIn0sbig3NjU0NDApKSx2YWx1ZToiYm9uZCIsc2VhcmNoX3R5cGU6ImJvbmQifSx7bmFtZTpyLnQobnVsbCx7Y29udGV4dDoic3ltYm9sc190eXBlIn0sbig1NDgzMjIpKSx2YWx1ZToiZWNvbm9taWMiLApzZWFyY2hfdHlwZToiZWNvbm9taWMifSx7bmFtZTpyLnQobnVsbCx7Y29udGV4dDoic3ltYm9sc190eXBlIn0sbig3OTYwMCkpLHZhbHVlOiJvcHRpb25zIixzZWFyY2hfdHlwZToib3B0aW9ucyJ9XTsoT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihvLCJuYW1lIil8fHt9KS53cml0YWJsZXx8T2JqZWN0LmRlZmluZVByb3BlcnR5KG8sIm5hbWUiLHt2YWx1ZToiZGVmYXVsdCIsY29uZmlndXJhYmxlOiEwfSk7Y29uc3QgbD0oKT0+W3t0eXBlOiJ0YWJzIix1cmxQYXJhbToic2VhcmNoX3R5cGUiLHRhYnM6W3t2YWx1ZToidW5kZWZpbmVkIix0aXRsZTpyLnQobnVsbCx2b2lkIDAsbigyMzM2OTApKSxmaWx0ZXJzOltdfSx7dmFsdWU6ImVjb25vbWljIix0aXRsZTpyLnQobnVsbCx2b2lkIDAsbigxNzYzNzgpKSxmaWx0ZXJzOlt7dHlwZToic291cmNlLXNlbGVjdCIsdXJsUGFyYW06e2J5Q291bnRyeToiY291bnRyeSIsYnlFeGNoYW5nZToiZXhjaGFuZ2UifSxpZDoiZWNvbm9taWMtY291bnRyeS1zZWxlY3QiLGFsbFNlYXJjaFNvdXJjZXNUaXRsZTpyLnQobnVsbCx2b2lkIDAsbig1MTMzMDgpKSxncm91cHM6WyJOb3J0aCBBbWVyaWNhIiwiRXVyb3BlIiwiTWlkZGxlIEVhc3QgLyBBZnJpY2EiLCJNZXhpY28gYW5kIFNvdXRoIEFtZXJpY2EiLCJBc2lhIC8gUGFjaWZpYyJdfSx7dHlwZToic2VsZWN0IixpZDoiZWNvbm9taWMtc291cmNlLXNlbGVjdCIsdXJsUGFyYW06InNvdXJjZV9pZCIsbGFiZWw6ci50KG51bGwse2NvbnRleHQ6InN5bWJvbF9zZWFyY2hfZmlsdGVyX2xhYmVsIn0sbigzMjEwODkpKSxvcHRpb25zOlt7dmFsdWU6bnVsbCx0aXRsZTpyLnQobnVsbCx7Y29udGV4dDoic3ltYm9sX3NlYXJjaF9maWx0ZXIifSxuKDI4OTI4MCkpLGFuYWx5dGljc0xhYmVsOiJBbGwgc291cmNlcyJ9LHt2YWx1ZToiX19XQiIsdGl0bGU6ci50KG51bGwse2NvbnRleHQ6InN5bWJvbF9zZWFyY2hfZmlsdGVyIn0sbigzMzYxMTIpKSxzaG9ydFRpdGxlOnIudChudWxsLHtjb250ZXh0OiJzeW1ib2xfc2VhcmNoX2ZpbHRlciJ9LG4oMjU4NzYwKSl9LHt2YWx1ZToiX19FVVJPU1RBVCIsdGl0bGU6ci50KG51bGwse2NvbnRleHQ6InN5bWJvbF9zZWFyY2hfZmlsdGVyIn0sbig2Mjg0NzIpKX0se3ZhbHVlOiJfX0FLQU1BSSIsdGl0bGU6ci50KG51bGwse2NvbnRleHQ6InN5bWJvbF9zZWFyY2hfZmlsdGVyIn0sbig5OTMxNjgpKX0se3ZhbHVlOiJfX1RJIix0aXRsZTpyLnQobnVsbCx7Y29udGV4dDoic3ltYm9sX3NlYXJjaF9maWx0ZXIifSxuKDc3MDEyKSl9LHt2YWx1ZToiX19PRUNEIix0aXRsZTpyLnQobnVsbCx7Y29udGV4dDoic3ltYm9sX3NlYXJjaF9maWx0ZXIifSxuKDExNzgxMCkpLHNob3J0VGl0bGU6ci50KG51bGwse2NvbnRleHQ6InN5bWJvbF9zZWFyY2hfZmlsdGVyIn0sbig1MjAwNDApKX0se3ZhbHVlOiJfX1dFRiIsdGl0bGU6ci50KG51bGwse2NvbnRleHQ6InN5bWJvbF9zZWFyY2hfZmlsdGVyIn0sbig4NTk5NTUpKSxzaG9ydFRpdGxlOnIudChudWxsLHtjb250ZXh0OiJzeW1ib2xfc2VhcmNoX2ZpbHRlciJ9LG4oNzkwNDY2KSl9LHt2YWx1ZToiX19XSUYiLHRpdGxlOnIudChudWxsLHtjb250ZXh0OiJzeW1ib2xfc2VhcmNoX2ZpbHRlciJ9LG4oMzQ1NjA5KSksc2hvcnRUaXRsZTpyLnQobnVsbCx7Y29udGV4dDoic3ltYm9sX3NlYXJjaF9maWx0ZXIifSxuKDcxNDE0NSkpfSx7dmFsdWU6IlVTQkxTIix0aXRsZTpyLnQobnVsbCx7Y29udGV4dDoic3ltYm9sX3NlYXJjaF9maWx0ZXIifSxuKDkwMzA4MykpLHNob3J0VGl0bGU6ci50KG51bGwse2NvbnRleHQ6InN5bWJvbF9zZWFyY2hfZmlsdGVyIn0sbig5Njk2MTMpKX0se3ZhbHVlOiJVU0ZSIix0aXRsZTpyLnQobnVsbCx7Y29udGV4dDoic3ltYm9sX3NlYXJjaF9maWx0ZXIifSxuKDExMDYyKSl9LHt2YWx1ZToiX19TSVBSSSIsdGl0bGU6ci50KG51bGwse2NvbnRleHQ6InN5bWJvbF9zZWFyY2hfZmlsdGVyIn0sbig4NzE3MjcpKSxzaG9ydFRpdGxlOnIudChudWxsLHtjb250ZXh0OiJzeW1ib2xfc2VhcmNoX2ZpbHRlciJ9LG4oNzcwOTgyKSl9LHt2YWx1ZToiX19JRVAiLHRpdGxlOnIudChudWxsLHtjb250ZXh0OiJzeW1ib2xfc2VhcmNoX2ZpbHRlciJ9LG4oODMyODY2KSksc2hvcnRUaXRsZTpyLnQobnVsbCx7Y29udGV4dDoic3ltYm9sX3NlYXJjaF9maWx0ZXIifSxuKDM3Nzc0MikpfSx7dmFsdWU6IlVTQkVBIix0aXRsZTpyLnQobnVsbCx7Y29udGV4dDoic3ltYm9sX3NlYXJjaF9maWx0ZXIifSxuKDU0MzU1MCkpLHNob3J0VGl0bGU6ci50KG51bGwse2NvbnRleHQ6InN5bWJvbF9zZWFyY2hfZmlsdGVyIn0sbig4OTcwMjkpKX0se3ZhbHVlOiJfX1dHQyIsdGl0bGU6ci50KG51bGwse2NvbnRleHQ6InN5bWJvbF9zZWFyY2hfZmlsdGVyIn0sbig0ODM5NjYpKSxzaG9ydFRpdGxlOnIudChudWxsLHtjb250ZXh0OiJzeW1ib2xfc2VhcmNoX2ZpbHRlciJ9LG4oODMyOTQ3KSl9LHt2YWx1ZToiVVNDQiIsdGl0bGU6ci50KG51bGwse2NvbnRleHQ6InN5bWJvbF9zZWFyY2hfZmlsdGVyIn0sbig3ODkzMTkpKSxzaG9ydFRpdGxlOnIudChudWxsLHtjb250ZXh0OiJzeW1ib2xfc2VhcmNoX2ZpbHRlciJ9LG4oMzk5NDUxKSl9LHt2YWx1ZToiX19CQ0VBTyIsdGl0bGU6ci50KG51bGwse2NvbnRleHQ6InN5bWJvbF9zZWFyY2hfZmlsdGVyIn0sbig4NTQ2NjEpKSxzaG9ydFRpdGxlOnIudChudWxsLHtjb250ZXh0OiJzeW1ib2xfc2VhcmNoX2ZpbHRlciJ9LG4oNTQ2NDkpKX0se3ZhbHVlOiJfX0lNRiIsdGl0bGU6ci50KG51bGwse2NvbnRleHQ6InN5bWJvbF9zZWFyY2hfZmlsdGVyIn0sbig4NDAxODcpKSxzaG9ydFRpdGxlOnIudChudWxsLHtjb250ZXh0OiJzeW1ib2xfc2VhcmNoX2ZpbHRlciJ9LG4oNjY1Njg5KSl9LHt2YWx1ZToiX19VRUlBIix0aXRsZTpyLnQobnVsbCx7Y29udGV4dDoic3ltYm9sX3NlYXJjaF9maWx0ZXIifSxuKDU5OTgwNykpLHNob3J0VGl0bGU6ci50KG51bGwse2NvbnRleHQ6InN5bWJvbF9zZWFyY2hfZmlsdGVyIn0sbig2Mjc1MDQpKX0se3ZhbHVlOiJDQVNDIix0aXRsZTpyLnQobnVsbCx7CmNvbnRleHQ6InN5bWJvbF9zZWFyY2hfZmlsdGVyIn0sbig2NTQ0NDApKSxzaG9ydFRpdGxlOnIudChudWxsLHtjb250ZXh0OiJzeW1ib2xfc2VhcmNoX2ZpbHRlciJ9LG4oOTE3ODA1KSl9LHt2YWx1ZToiR0JPTlMiLHRpdGxlOnIudChudWxsLHtjb250ZXh0OiJzeW1ib2xfc2VhcmNoX2ZpbHRlciJ9LG4oOTc4Mjk0KSksc2hvcnRUaXRsZTpyLnQobnVsbCx7Y29udGV4dDoic3ltYm9sX3NlYXJjaF9maWx0ZXIifSxuKDQ1MDU1MCkpfSx7dmFsdWU6Ik5PU04iLHRpdGxlOnIudChudWxsLHtjb250ZXh0OiJzeW1ib2xfc2VhcmNoX2ZpbHRlciJ9LG4oODYzMjM2KSl9XX0se3R5cGU6InNlbGVjdCIsaWQ6ImVjb25vbWljLWNhdGVnb3J5LXNlbGVjdCIsdXJsUGFyYW06ImVjb25vbWljX2NhdGVnb3J5IixsYWJlbDpyLnQobnVsbCx7Y29udGV4dDoic3ltYm9sX3NlYXJjaF9maWx0ZXJfbGFiZWwifSxuKDU4MDU2OCkpLG9wdGlvbnM6W3t2YWx1ZTpudWxsLHRpdGxlOnIudChudWxsLHtjb250ZXh0OiJzeW1ib2xfc2VhcmNoX2ZpbHRlciJ9LG4oOTc3NzY3KSksYW5hbHl0aWNzTGFiZWw6IkFsbCBjYXRlZ29yaWVzIn0se3ZhbHVlOiJnZHAiLHRpdGxlOnIudChudWxsLHtjb250ZXh0OiJzeW1ib2xfc2VhcmNoX2ZpbHRlciJ9LG4oNDE1NDApKX0se3ZhbHVlOiJsYnIiLHRpdGxlOnIudChudWxsLHtjb250ZXh0OiJzeW1ib2xfc2VhcmNoX2ZpbHRlciJ9LG4oODE1NzQxKSl9LHt2YWx1ZToicHJjZSIsdGl0bGU6ci50KG51bGwse2NvbnRleHQ6InN5bWJvbF9zZWFyY2hfZmlsdGVyIn0sbig1MzYzMzMpKX0se3ZhbHVlOiJobHRoIix0aXRsZTpyLnQobnVsbCx7Y29udGV4dDoic3ltYm9sX3NlYXJjaF9maWx0ZXIifSxuKDIyMjAwMikpfSx7dmFsdWU6Im1ueSIsdGl0bGU6ci50KG51bGwse2NvbnRleHQ6InN5bWJvbF9zZWFyY2hfZmlsdGVyIn0sbig3NTQ0OTApKX0se3ZhbHVlOiJ0cmQiLHRpdGxlOnIudChudWxsLHtjb250ZXh0OiJzeW1ib2xfc2VhcmNoX2ZpbHRlciJ9LG4oMjM5OTI5KSl9LHt2YWx1ZToiZ292Iix0aXRsZTpyLnQobnVsbCx7Y29udGV4dDoic3ltYm9sX3NlYXJjaF9maWx0ZXIifSxuKDgzNDYzNCkpfSx7dmFsdWU6ImJzbnNzIix0aXRsZTpyLnQobnVsbCx7Y29udGV4dDoic3ltYm9sX3NlYXJjaF9maWx0ZXIifSxuKDM4NTE2MikpfSx7dmFsdWU6ImNuc20iLHRpdGxlOnIudChudWxsLHtjb250ZXh0OiJzeW1ib2xfc2VhcmNoX2ZpbHRlciJ9LG4oNjg1MTMpKX0se3ZhbHVlOiJoc2UiLHRpdGxlOnIudChudWxsLHtjb250ZXh0OiJzeW1ib2xfc2VhcmNoX2ZpbHRlciJ9LG4oMjAxNTc0KSl9LHt2YWx1ZToidHhzIix0aXRsZTpyLnQobnVsbCx7Y29udGV4dDoic3ltYm9sX3NlYXJjaF9maWx0ZXIifSxuKDI3NjgzMykpfV19XX0se3ZhbHVlOiJzdG9ja3MiLHRpdGxlOnIudChudWxsLHZvaWQgMCxuKDUyMjAxNCkpLGZpbHRlcnM6W3t0eXBlOiJzb3VyY2Utc2VsZWN0Iix1cmxQYXJhbTp7YnlDb3VudHJ5OiJjb3VudHJ5IixieUV4Y2hhbmdlOiJleGNoYW5nZSJ9LGlkOiJzdG9ja3MtY291bnRyeS1zZWxlY3QiLGFsbFNlYXJjaFNvdXJjZXNUaXRsZTpyLnQobnVsbCx2b2lkIDAsbig1MTMzMDgpKSxncm91cHM6WyJOb3J0aCBBbWVyaWNhIiwiRXVyb3BlIiwiTWlkZGxlIEVhc3QgLyBBZnJpY2EiLCJNZXhpY28gYW5kIFNvdXRoIEFtZXJpY2EiLCJBc2lhIC8gUGFjaWZpYyJdfSx7dHlwZToic2VsZWN0IixpZDoic3RvY2stdHlwZS1zZWxlY3QiLHVybFBhcmFtOiJzZWFyY2hfdHlwZSIsbGFiZWw6ci50KG51bGwse2NvbnRleHQ6InN5bWJvbF9zZWFyY2hfZmlsdGVyX2xhYmVsIn0sbig2NjI4MzQpKSxvcHRpb25zOlt7dmFsdWU6bnVsbCx0aXRsZTpyLnQobnVsbCx7Y29udGV4dDoic3ltYm9sX3NlYXJjaF9maWx0ZXIifSxuKDc2MTM2NCkpLGFuYWx5dGljc0xhYmVsOiJBbGwgdHlwZXMifSx7dmFsdWU6ImNvbW1vbl9zdG9jayIsdGl0bGU6ci50KG51bGwse2NvbnRleHQ6InN5bWJvbF9zZWFyY2hfZmlsdGVyIn0sbig0NTAyNzMpKX0se3ZhbHVlOiJwcmVmZXJyZWRfc3RvY2siLHRpdGxlOnIudChudWxsLHtjb250ZXh0OiJzeW1ib2xfc2VhcmNoX2ZpbHRlciJ9LG4oNDg3NDA0KSl9LHt2YWx1ZToiZGVwb3NpdG9yeV9yZWNlaXB0Iix0aXRsZTpyLnQobnVsbCx7Y29udGV4dDoic3ltYm9sX3NlYXJjaF9maWx0ZXIifSxuKDI5MjAyMCkpfSx7dmFsdWU6IndhcnJhbnQiLHRpdGxlOnIudChudWxsLHtjb250ZXh0OiJzeW1ib2xfc2VhcmNoX2ZpbHRlciJ9LG4oNDU1NDA0KSl9LHt2YWx1ZToiaXBvX3N0b2NrIix0aXRsZTpyLnQobnVsbCx7Y29udGV4dDoic3ltYm9sX3NlYXJjaF9maWx0ZXIifSxuKDY3ODM1KSl9XX0se3R5cGU6InNlbGVjdCIsaWQ6InN0b2NrLXNlY3Rvci1zZWxlY3QiLHVybFBhcmFtOiJzZWN0b3IiLGxhYmVsOnIudChudWxsLHtjb250ZXh0OiJzeW1ib2xfc2VhcmNoX2ZpbHRlcl9sYWJlbCJ9LG4oODk1MTc2KSksb3B0aW9uczpbe3ZhbHVlOm51bGwsdGl0bGU6ci50KG51bGwse2NvbnRleHQ6InN5bWJvbF9zZWFyY2hfZmlsdGVyIn0sbig1MDI1NTMpKSxhbmFseXRpY3NMYWJlbDoiQWxsIHNlY3RvcnMifSx7dmFsdWU6IkNvbW1lcmNpYWwgU2VydmljZXMiLHRpdGxlOnIudChudWxsLHtjb250ZXh0OiJzeW1ib2xfc2VhcmNoX2ZpbHRlciJ9LG4oMzAxNTkzKSl9LHt2YWx1ZToiQ29tbXVuaWNhdGlvbnMiLHRpdGxlOnIudChudWxsLHtjb250ZXh0OiJzeW1ib2xfc2VhcmNoX2ZpbHRlciJ9LG4oOTM0MjQ2KSl9LHt2YWx1ZToiQ29uc3VtZXIgRHVyYWJsZXMiLHRpdGxlOnIudChudWxsLHtjb250ZXh0OiJzeW1ib2xfc2VhcmNoX2ZpbHRlciJ9LG4oMjczOTQzKSl9LHt2YWx1ZToiQ29uc3VtZXIgTm9uLUR1cmFibGVzIix0aXRsZTpyLnQobnVsbCx7Y29udGV4dDoic3ltYm9sX3NlYXJjaF9maWx0ZXIifSxuKDI0NjU1KSl9LHt2YWx1ZToiQ29uc3VtZXIgU2VydmljZXMiLHRpdGxlOnIudChudWxsLHtjb250ZXh0OiJzeW1ib2xfc2VhcmNoX2ZpbHRlciJ9LG4oMjQ0OTIpKX0se3ZhbHVlOiJEaXN0cmlidXRpb24gU2VydmljZXMiLHRpdGxlOnIudChudWxsLHsKY29udGV4dDoic3ltYm9sX3NlYXJjaF9maWx0ZXIifSxuKDI5NDgxMCkpfSx7dmFsdWU6IkVsZWN0cm9uaWMgVGVjaG5vbG9neSIsdGl0bGU6ci50KG51bGwse2NvbnRleHQ6InN5bWJvbF9zZWFyY2hfZmlsdGVyIn0sbig2MTIwNzUpKX0se3ZhbHVlOiJFbmVyZ3kgTWluZXJhbHMiLHRpdGxlOnIudChudWxsLHtjb250ZXh0OiJzeW1ib2xfc2VhcmNoX2ZpbHRlciJ9LG4oNjYyNDgxKSl9LHt2YWx1ZToiRmluYW5jZSIsdGl0bGU6ci50KG51bGwse2NvbnRleHQ6InN5bWJvbF9zZWFyY2hfZmlsdGVyIn0sbig2OTExODkpKX0se3ZhbHVlOiJHb3Zlcm5tZW50Iix0aXRsZTpyLnQobnVsbCx7Y29udGV4dDoic3ltYm9sX3NlYXJjaF9maWx0ZXIifSxuKDUzNTU5KSl9LHt2YWx1ZToiSGVhbHRoIFNlcnZpY2VzIix0aXRsZTpyLnQobnVsbCx7Y29udGV4dDoic3ltYm9sX3NlYXJjaF9maWx0ZXIifSxuKDYwMTM0OSkpfSx7dmFsdWU6IkhlYWx0aCBUZWNobm9sb2d5Iix0aXRsZTpyLnQobnVsbCx7Y29udGV4dDoic3ltYm9sX3NlYXJjaF9maWx0ZXIifSxuKDE1MjgwNSkpfSx7dmFsdWU6IkluZHVzdHJpYWwgU2VydmljZXMiLHRpdGxlOnIudChudWxsLHtjb250ZXh0OiJzeW1ib2xfc2VhcmNoX2ZpbHRlciJ9LG4oMzgyMTQwKSl9LHt2YWx1ZToiTWlzY2VsbGFuZW91cyIsdGl0bGU6ci50KG51bGwse2NvbnRleHQ6InN5bWJvbF9zZWFyY2hfZmlsdGVyIn0sbigzNjc3NjMpKX0se3ZhbHVlOiJOb24tRW5lcmd5IE1pbmVyYWxzIix0aXRsZTpyLnQobnVsbCx7Y29udGV4dDoic3ltYm9sX3NlYXJjaF9maWx0ZXIifSxuKDE5MTQyKSl9LHt2YWx1ZToiUHJvY2VzcyBJbmR1c3RyaWVzIix0aXRsZTpyLnQobnVsbCx7Y29udGV4dDoic3ltYm9sX3NlYXJjaF9maWx0ZXIifSxuKDcxMjE5OCkpfSx7dmFsdWU6IlByb2R1Y2VyIE1hbnVmYWN0dXJpbmciLHRpdGxlOnIudChudWxsLHtjb250ZXh0OiJzeW1ib2xfc2VhcmNoX2ZpbHRlciJ9LG4oOTk2NDIwKSl9LHt2YWx1ZToiUmV0YWlsIFRyYWRlIix0aXRsZTpyLnQobnVsbCx7Y29udGV4dDoic3ltYm9sX3NlYXJjaF9maWx0ZXIifSxuKDM2NzU4MikpfSx7dmFsdWU6IlRlY2hub2xvZ3kgU2VydmljZXMiLHRpdGxlOnIudChudWxsLHtjb250ZXh0OiJzeW1ib2xfc2VhcmNoX2ZpbHRlciJ9LG4oMjg0Njc3KSl9LHt2YWx1ZToiVHJhbnNwb3J0YXRpb24iLHRpdGxlOnIudChudWxsLHtjb250ZXh0OiJzeW1ib2xfc2VhcmNoX2ZpbHRlciJ9LG4oNDMyNzM4KSl9LHt2YWx1ZToiVXRpbGl0aWVzIix0aXRsZTpyLnQobnVsbCx7Y29udGV4dDoic3ltYm9sX3NlYXJjaF9maWx0ZXIifSxuKDM0MzI4NCkpfV19XX0se3ZhbHVlOiJmdXR1cmVzIix0aXRsZTpyLnQobnVsbCx2b2lkIDAsbig5NDM5MDMpKSxmaWx0ZXJzOlt7dHlwZToic291cmNlLXNlbGVjdCIsdXJsUGFyYW06e2J5Q291bnRyeToiY291bnRyeSIsYnlFeGNoYW5nZToiZXhjaGFuZ2UifSxpZDoiZnV0dXJlcy1jb3VudHJ5LXNlbGVjdCIsYWxsU2VhcmNoU291cmNlc1RpdGxlOnIudChudWxsLHZvaWQgMCxuKDUxMzMwOCkpLGdyb3VwczpbIk5vcnRoIEFtZXJpY2EiLCJFdXJvcGUiLCJNaWRkbGUgRWFzdCAvIEFmcmljYSIsIk1leGljbyBhbmQgU291dGggQW1lcmljYSIsIkFzaWEgLyBQYWNpZmljIl19LHt0eXBlOiJzZWxlY3QiLGlkOiJmdXR1cmVzLWNhdGVnb3J5LXNlbGVjdCIsdXJsUGFyYW06InByb2R1Y3QiLGxhYmVsOnIudChudWxsLHtjb250ZXh0OiJzeW1ib2xfc2VhcmNoX2ZpbHRlcl9sYWJlbCJ9LG4oNTgwNTY4KSksb3B0aW9uczpbe3ZhbHVlOm51bGwsdGl0bGU6ci50KG51bGwse2NvbnRleHQ6InN5bWJvbF9zZWFyY2hfZmlsdGVyIn0sbig5Nzc3NjcpKSxhbmFseXRpY3NMYWJlbDoiQWxsIGNhdGVnb3JpZXMifSx7dmFsdWU6IkZpbmFuY2lhbC9FcXVpdHkiLHRpdGxlOnIudChudWxsLHtjb250ZXh0OiJzeW1ib2xfc2VhcmNoX2ZpbHRlciJ9LG4oNzQ2NzkyKSl9LHt2YWx1ZToiRmluYW5jaWFsL0luZGV4Iix0aXRsZTpyLnQobnVsbCx7Y29udGV4dDoic3ltYm9sX3NlYXJjaF9maWx0ZXIifSxuKDcyMTc2MikpfSx7dmFsdWU6IkZpbmFuY2lhbC9DdXJyZW5jeSIsdGl0bGU6ci50KG51bGwse2NvbnRleHQ6InN5bWJvbF9zZWFyY2hfZmlsdGVyIn0sbig1OTg1OCkpfSx7dmFsdWU6IkZpbmFuY2lhbC9JbnRlcmVzdFJhdGUiLHRpdGxlOnIudChudWxsLHtjb250ZXh0OiJzeW1ib2xfc2VhcmNoX2ZpbHRlciJ9LG4oNjAxNTUxKSl9LHt2YWx1ZToiQ29tbW9kaXR5L0VuZXJneSIsdGl0bGU6ci50KG51bGwse2NvbnRleHQ6InN5bWJvbF9zZWFyY2hfZmlsdGVyIn0sbigyMzM4OTApKX0se3ZhbHVlOiJDb21tb2RpdHkvQWdyaWN1bHR1cmUiLHRpdGxlOnIudChudWxsLHtjb250ZXh0OiJzeW1ib2xfc2VhcmNoX2ZpbHRlciJ9LG4oNDQ2NzY3KSl9LHt2YWx1ZToiQ29tbW9kaXR5L01ldGFscyIsdGl0bGU6ci50KG51bGwse2NvbnRleHQ6InN5bWJvbF9zZWFyY2hfZmlsdGVyIn0sbig3NjExMjIpKX0se3ZhbHVlOiJDb21tb2RpdHkvV2VhdGhlciIsdGl0bGU6ci50KG51bGwse2NvbnRleHQ6InN5bWJvbF9zZWFyY2hfZmlsdGVyIn0sbig5MTE4NjIpKX0se3ZhbHVlOiJDb21tb2RpdHkvQnVpbGRpbmdNYXRlcmlhbHMiLHRpdGxlOnIudChudWxsLHtjb250ZXh0OiJzeW1ib2xfc2VhcmNoX2ZpbHRlciJ9LG4oMTM3MzUzKSl9LHt2YWx1ZToiQ29tbW9kaXR5L0NoZW1pY2FscyIsdGl0bGU6ci50KG51bGwse2NvbnRleHQ6InN5bWJvbF9zZWFyY2hfZmlsdGVyIn0sbigzMzgxOTcpKX1dfV19LHt2YWx1ZToiZnVuZHMiLHRpdGxlOnIudChudWxsLHZvaWQgMCxuKDQ4MDQ2MSkpLGZpbHRlcnM6W3t0eXBlOiJzb3VyY2Utc2VsZWN0Iix1cmxQYXJhbTp7YnlDb3VudHJ5OiJjb3VudHJ5IixieUV4Y2hhbmdlOiJleGNoYW5nZSJ9LGlkOiJmdW5kcy1jb3VudHJ5LXNlbGVjdCIsYWxsU2VhcmNoU291cmNlc1RpdGxlOnIudChudWxsLHZvaWQgMCxuKDUxMzMwOCkpLApncm91cHM6WyJOb3J0aCBBbWVyaWNhIiwiRXVyb3BlIiwiTWlkZGxlIEVhc3QgLyBBZnJpY2EiLCJNZXhpY28gYW5kIFNvdXRoIEFtZXJpY2EiLCJBc2lhIC8gUGFjaWZpYyJdfSx7dHlwZToic2VsZWN0IixpZDoiZnVuZHMtdHlwZS1zZWxlY3QiLHVybFBhcmFtOiJzZWFyY2hfdHlwZSIsbGFiZWw6ci50KG51bGwse2NvbnRleHQ6InN5bWJvbF9zZWFyY2hfZmlsdGVyX2xhYmVsIn0sbig2NjI4MzQpKSxvcHRpb25zOlt7dmFsdWU6bnVsbCx0aXRsZTpyLnQobnVsbCx7Y29udGV4dDoic3ltYm9sX3NlYXJjaF9maWx0ZXIifSxuKDc2MTM2NCkpLGFuYWx5dGljc0xhYmVsOiJBbGwgdHlwZXMifSx7dmFsdWU6ImV0ZiIsdGl0bGU6ci50KG51bGwse2NvbnRleHQ6InN5bWJvbF9zZWFyY2hfZmlsdGVyIn0sbigyMjc4NjApKX0se3ZhbHVlOiJtdXR1YWxfZnVuZCIsdGl0bGU6ci50KG51bGwse2NvbnRleHQ6InN5bWJvbF9zZWFyY2hfZmlsdGVyIn0sbig5NTc3OTgpKX0se3ZhbHVlOiJ0cnVzdF9mdW5kIix0aXRsZTpyLnQobnVsbCx7Y29udGV4dDoic3ltYm9sX3NlYXJjaF9maWx0ZXIifSxuKDkzNzkzNSkpfSx7dmFsdWU6InJlaXQiLHRpdGxlOnIudChudWxsLHtjb250ZXh0OiJzeW1ib2xfc2VhcmNoX2ZpbHRlciJ9LG4oOTUwMTc0KSl9XX1dfSx7dmFsdWU6ImNyeXB0byIsdGl0bGU6ci50KG51bGwsdm9pZCAwLG4oODgyNDExKSksZmlsdGVyczpbe3R5cGU6InNvdXJjZS1zZWxlY3QiLHVybFBhcmFtOntieUNvdW50cnk6ImNvdW50cnkiLGJ5RXhjaGFuZ2U6ImV4Y2hhbmdlIn0saWQ6ImNyeXB0by1leGNoYW5nZS1zZWxlY3QiLGdyb3VwczpbIkNyeXB0b2N1cnJlbmN5IiwiRm9yZXgiXX0se3R5cGU6InNlbGVjdCIsaWQ6ImNyeXB0by10eXBlLXNlbGVjdCIsdXJsUGFyYW06InNlYXJjaF90eXBlIixsYWJlbDpyLnQobnVsbCx7Y29udGV4dDoic3ltYm9sX3NlYXJjaF9maWx0ZXJfbGFiZWwifSxuKDY2MjgzNCkpLG9wdGlvbnM6W3t2YWx1ZTpudWxsLHRpdGxlOnIudChudWxsLHtjb250ZXh0OiJzeW1ib2xfc2VhcmNoX2ZpbHRlciJ9LG4oNzYxMzY0KSksYW5hbHl0aWNzTGFiZWw6IkFsbCB0eXBlcyJ9LHt2YWx1ZToiY3J5cHRvX3Nwb3QiLHRpdGxlOnIudChudWxsLHtjb250ZXh0OiJzeW1ib2xfc2VhcmNoX2ZpbHRlciJ9LG4oNDM3MzU2KSl9LHt2YWx1ZToiY3J5cHRvX3N3YXAiLHRpdGxlOnIudChudWxsLHtjb250ZXh0OiJzeW1ib2xfc2VhcmNoX2ZpbHRlciJ9LG4oMTY5MTQ1KSl9LHt2YWx1ZToiY3J5cHRvX2Z1dHVyZXMiLHRpdGxlOnIudChudWxsLHtjb250ZXh0OiJzeW1ib2xfc2VhcmNoX2ZpbHRlciJ9LG4oMjA2MTEpKX0se3ZhbHVlOiJjcnlwdG9faW5kZXgiLHRpdGxlOnIudChudWxsLHtjb250ZXh0OiJzeW1ib2xfc2VhcmNoX2ZpbHRlciJ9LG4oNTk3MjAwKSl9LHt2YWx1ZToiY3J5cHRvX2Z1bmRhbWVudGFsIix0aXRsZTpyLnQobnVsbCx7Y29udGV4dDoic3ltYm9sX3NlYXJjaF9maWx0ZXIifSxuKDk4NzQzNCkpfV19LHt0eXBlOiJzZWxlY3QiLGlkOiJjcnlwdG8tZXhjaGFuZ2UtdHlwZS1zZWxlY3QiLHVybFBhcmFtOiJjZW50cmFsaXphdGlvbiIsbGFiZWw6ci50KG51bGwse2NvbnRleHQ6InN5bWJvbF9zZWFyY2hfZmlsdGVyX2xhYmVsIn0sbigzNDQ3ODEpKSxvcHRpb25zOlt7dmFsdWU6bnVsbCx0aXRsZTpyLnQobnVsbCx7Y29udGV4dDoic3ltYm9sX3NlYXJjaF9maWx0ZXIifSxuKDM2NTM0MCkpLGFuYWx5dGljc0xhYmVsOiJBbGwgZXhjaGFuZ2UgdHlwZXMifSx7dmFsdWU6ImNleCIsdGl0bGU6ci50KG51bGwse2NvbnRleHQ6InN5bWJvbF9zZWFyY2hfZmlsdGVyIn0sbigxODEzMDUpKX0se3ZhbHVlOiJkZXgiLHRpdGxlOnIudChudWxsLHtjb250ZXh0OiJzeW1ib2xfc2VhcmNoX2ZpbHRlciJ9LG4oMzI4NTQ1KSl9XX1dfSx7dmFsdWU6ImZvcmV4Iix0aXRsZTpyLnQobnVsbCx2b2lkIDAsbigyNTUwOTMpKSxmaWx0ZXJzOlt7dHlwZToic291cmNlLXNlbGVjdCIsdXJsUGFyYW06ImV4Y2hhbmdlIixpZDoiZm9yZXgtZXhjaGFuZ2Utc2VsZWN0Iixncm91cHM6WyJGb3JleCJdfV19LHt2YWx1ZToiaW5kZXgiLHRpdGxlOnIudChudWxsLHZvaWQgMCxuKDU2MjY2NykpLGZpbHRlcnM6W3t0eXBlOiJzb3VyY2Utc2VsZWN0Iix1cmxQYXJhbTp7YnlDb3VudHJ5OiJjb3VudHJ5IixieUV4Y2hhbmdlOiJleGNoYW5nZSJ9LGlkOiJpbmRleC1leGNoYW5nZS1zZWxlY3QiLGdyb3VwczpbIk5vcnRoIEFtZXJpY2EiLCJFdXJvcGUiLCJNaWRkbGUgRWFzdCAvIEFmcmljYSIsIk1leGljbyBhbmQgU291dGggQW1lcmljYSIsIkFzaWEgLyBQYWNpZmljIiwiRm9yZXgiXX1dfSx7dmFsdWU6ImJvbmQiLHRpdGxlOnIudChudWxsLHZvaWQgMCxuKDI0MzQ2NCkpLGZpbHRlcnM6W3t0eXBlOiJzb3VyY2Utc2VsZWN0Iix1cmxQYXJhbTp7YnlDb3VudHJ5OiJjb3VudHJ5IixieUV4Y2hhbmdlOiJleGNoYW5nZSJ9LGlkOiJib25kLWNvdW50cnktc2VsZWN0IixhbGxTZWFyY2hTb3VyY2VzVGl0bGU6ci50KG51bGwsdm9pZCAwLG4oNTEzMzA4KSksZ3JvdXBzOlsiTm9ydGggQW1lcmljYSIsIkV1cm9wZSIsIk1pZGRsZSBFYXN0IC8gQWZyaWNhIiwiTWV4aWNvIGFuZCBTb3V0aCBBbWVyaWNhIiwiQXNpYSAvIFBhY2lmaWMiXX0se3R5cGU6InNlbGVjdCIsdXJsUGFyYW06InNlYXJjaF90eXBlIixpZDoiYm9uZC10eXBlLXNlbGVjdCIsbGFiZWw6ci50KG51bGwse2NvbnRleHQ6InN5bWJvbF9zZWFyY2hfZmlsdGVyX2xhYmVsIn0sbig2NjI4MzQpKSxvcHRpb25zOlt7dmFsdWU6bnVsbCx0aXRsZTpyLnQobnVsbCx7Y29udGV4dDoic3ltYm9sX3NlYXJjaF9maWx0ZXIifSxuKDc2MTM2NCkpLGFuYWx5dGljc0xhYmVsOiJBbGwgdHlwZXMifSx7dmFsdWU6ImJvbmRfZ292Iix0aXRsZTpyLnQobnVsbCx7Y29udGV4dDoic3ltYm9sX3NlYXJjaF9maWx0ZXIifSxuKDgzNDYzNCkpfSx7dmFsdWU6ImJvbmRfY29ycCIsdGl0bGU6ci50KG51bGwse2NvbnRleHQ6InN5bWJvbF9zZWFyY2hfZmlsdGVyIn0sbig2NzU0NDMpKX1dfV19LHt2YWx1ZToib3B0aW9ucyIsdGl0bGU6ci50KG51bGwsdm9pZCAwLG4oNTg3NDY0KSksCmZpbHRlcnM6W119XX1dOyhPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGwsIm5hbWUiKXx8e30pLndyaXRhYmxlfHxPYmplY3QuZGVmaW5lUHJvcGVydHkobCwibmFtZSIse3ZhbHVlOiJkZWZhdWx0Iixjb25maWd1cmFibGU6ITB9KTtjb25zdCBhPW51bGw7ZnVuY3Rpb24gcyhlKXtyZXR1cm4ic291cmNlLXNlbGVjdCI9PT1lLnR5cGV9ZnVuY3Rpb24gaShlKXtyZXR1cm4ic2VsZWN0Ij09PWUudHlwZX1jb25zdCBjPW5ldyBNYXAobCgpWzBdLnRhYnMubWFwKChlPT5bZS52YWx1ZSxlLmZpbHRlcnMuZmlsdGVyKGkpXSkpKSx1PW5ldyBNYXAobCgpWzBdLnRhYnMubWFwKChlPT5bZS52YWx1ZSxlLmZpbHRlcnMuZmlsdGVyKHMpWzBdXSkpKSxkPXt9LG09e307bygpLmZvckVhY2goKCh7dmFsdWU6ZSxzZWFyY2hfdHlwZTp0fSk9Pntjb25zdCBuPXUuZ2V0KHQpO24mJihkW2VdPXthbGxTZWFyY2hTb3VyY2VzVGl0bGU6bi5hbGxTZWFyY2hTb3VyY2VzVGl0bGUsdmFsdWU6bi5ncm91cHN9KTtjb25zdCByPWMuZ2V0KHQpO3ImJnIubGVuZ3RoPjAmJihtW2VdPXIpfSkpfSwyNDgzMShlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtRdWFsaWZpZWRTb3VyY2VzOigpPT5yLHF1YWxpZnlQcm9OYW1lOigpPT5sfSk7big5MzAyMzEpO3ZhciByLG89big3Mjc1NjkpO2Z1bmN0aW9uIGwoZSl7cmV0dXJuIGV9IWZ1bmN0aW9uKGUpe2Z1bmN0aW9uIHQoZSl7cmV0dXJuIGUucHJvX25hbWV9ZnVuY3Rpb24gbihlKXtyZXR1cm4gZS5wcm9fbmFtZX1lLmZyb21RdW90ZXNTbmFwc2hvdD1mdW5jdGlvbihlKXtyZXR1cm4iZXJyb3IiPT09ZS5zdGF0dXM/ZS5zeW1ib2xuYW1lOmUudmFsdWVzLnByb19uYW1lfSxlLmZyb21RdW90ZXNSZXNwb25zZT1mdW5jdGlvbihlKXtjb25zdHt2YWx1ZXM6bixzeW1ib2xuYW1lOnIsc3RhdHVzOm99PWU7cmV0dXJuImVycm9yIj09PW8mJnI/cjp0KG4pfSxlLmZyb21RdW90ZXM9dCxlLmZyb21TeW1ib2xTZWFyY2hSZXN1bHQ9ZnVuY3Rpb24oZSx0KXt7Y29uc3R7ZXhjaGFuZ2U6bn09ZSx7c3ltYm9sOnIscHJlZml4Omx9PXQ/P2U7cmV0dXJuKDAsby5nZXRTeW1ib2xGdWxsTmFtZSkoe25hbWU6cixleGNoYW5nZTpuLHByZWZpeDpsfSl9fSxlLmZyb21TeW1ib2xJbmZvPW4sZS5mcm9tU3ltYm9sTWVzc2FnZT1mdW5jdGlvbihlLHQpe3JldHVybiJzeW1ib2xfcmVzb2x2ZWQiPT09dC5tZXRob2Q/bih0LnBhcmFtc1sxXSk6ZX19KHJ8fChyPXt9KSl9LDE4NzMzOShlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtjcmVhdGVTZWFyY2hTb3VyY2VzOigpPT5pLGZpbHRlclNlYXJjaFNvdXJjZXM6KCk9PmEsaXNBbGxTZWFyY2hTb3VyY2VzU2VsZWN0ZWQ6KCk9Pmwsc3BsaXRTZWFyY2hTb3VyY2VzQnlHcm91cDooKT0+c30pO3ZhciByPW4oMzk4MTMyKTtjb25zdCBvPVtyLkV4Y2hhbmdlR3JvdXAuTm9ydGhBbWVyaWNhLHIuRXhjaGFuZ2VHcm91cC5FdXJvcGUsci5FeGNoYW5nZUdyb3VwLk1pZGRsZUVhc3RBZnJpY2Esci5FeGNoYW5nZUdyb3VwLk1leGljb1NvdXRoQW1lcmljYSxyLkV4Y2hhbmdlR3JvdXAuQXNpYVBhY2lmaWMsci5FeGNoYW5nZUdyb3VwLkNyeXB0b2N1cnJlbmN5LHIuRXhjaGFuZ2VHcm91cC5Gb3JleCxyLkV4Y2hhbmdlR3JvdXAuRWNvbm9teV07ZnVuY3Rpb24gbChlKXtyZXR1cm4gZS5ncm91cCgpPT09ci5FeGNoYW5nZUdyb3VwLkFsbEV4Y2hhbmdlc31mdW5jdGlvbiBhKGUsdCl7cmV0dXJuIGUuZmlsdGVyKChlPT5lLmluY2x1ZGVzKHQpKSl9ZnVuY3Rpb24gcyhlKXtjb25zdCB0PW5ldyBNYXA7ZS5mb3JFYWNoKChlPT57dC5oYXMoZS5ncm91cCgpKT90LmdldChlLmdyb3VwKCkpLnB1c2goZSk6dC5zZXQoZS5ncm91cCgpLFtlXSl9KSk7Zm9yKGNvbnN0IGUgb2YgdC52YWx1ZXMoKSl7ZVswXS5ncm91cCgpIT09ci5FeGNoYW5nZUdyb3VwLk5vcnRoQW1lcmljYSYmZS5zb3J0KCgoZSx0KT0+ZS5uYW1lKCkudG9Mb3dlckNhc2UoKT50Lm5hbWUoKS50b0xvd2VyQ2FzZSgpPzE6LTEpKX1yZXR1cm4gbmV3IE1hcChbLi4udC5lbnRyaWVzKCldLnNvcnQoKChbZV0sW3RdKT0+by5pbmRleE9mKGUpLW8uaW5kZXhPZih0KSkpKX1mdW5jdGlvbiBpKGUsdCl7cmV0dXJuIHQubWFwKCh0PT5uZXcgZSh0KSkpfX0sNTA0MDcoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7U3ltYm9sU2VhcmNoRGlhbG9nQm9keUNvbnRleHQ6KCk9PnJ9KTtjb25zdCByPW4oNzc5NDc0KS5jcmVhdGVDb250ZXh0KG51bGwpfSw0OTA1ODAoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7U3ltYm9sU2VhcmNoRmVlZEhlYWRlcjooKT0+RH0pO3ZhciByPW4oNzc5NDc0KSxvPW4oOTE0NDg3KSxsPW4ubihvKSxhPW4oNzgzMjU0KSxzPW4oMTM2NjMpLGk9big1NjEyMDUpLGM9bigxMzg2MzgpLHU9bigyNzMzMTApLGQ9bigyMzI2NzYpLG09big0Njc2NTIpLHA9big4NjU5NzIpLGg9big4OTY4MzEpLGY9big2MjY3MDQpLFM9bigyNDYzNTApLGc9bigyMTA5ODApLHk9big0OTE2NDApLGI9bigyMDcyNDEpLHY9big3MDg4NDIpLF89big3Mjc1NjkpLEU9big5MjMyMzkpLEM9bigxODYzODQpLFQ9big5MjE3MDgpLHg9bigzMDE3MDgpO2NvbnN0IEk9KDAsXy5nZXREZWZhdWx0U2VhcmNoU291cmNlKSgpO2Z1bmN0aW9uIHcoZSl7Y29uc3R7bW9kZTp0LHNldE1vZGU6byxzZWFyY2hSZWY6dyxjYWNoZWRJbnB1dFZhbHVlOk4sc2V0U2VsZWN0ZWRJbmRleDpSLHNldFNlbGVjdGVkU2VhcmNoU291cmNlOkEsaXNBbGxTZWFyY2hTb3VyY2VzU2VsZWN0ZWQ6TCxhbGxTZWFyY2hTb3VyY2VzVGl0bGU6ayx1cHBlckNhc2VFbmFibGVkOk8sc3ltYm9sU2VhcmNoQ29udGVudDpNfT0oMCxzLnVzZUVuc3VyZWRDb250ZXh0KShpLlN5bWJvbFNlYXJjaEl0ZW1zRGlhbG9nQ29udGV4dCksRD1NLmN1cnJlbnRTZWxlY3RlZFNlYXJjaFNvdXJjZSxQPSgwLGMuZW5zdXJlTm90TnVsbCkoRCksRj0ic3ltYm9sU2VhcmNoIj09PXQsQj1MKFApLEg9Xy5pc1NlcGFyYXRlU3ltYm9sU2VhcmNoVGFicyYmQiYmaz9rOlAubmFtZSgpLFU9KDAsci51c2VDYWxsYmFjaykoKCgpPT57SSYmKEEoSSksUigtMSksCncuY3VycmVudD8uZm9jdXMoKSl9KSxbdyxBXSksVz0oMCxyLnVzZUNhbGxiYWNrKSgoKCk9Pnt3LmN1cnJlbnQmJihOLmN1cnJlbnQ9Tz93LmN1cnJlbnQudmFsdWUudG9VcHBlckNhc2UoKTp3LmN1cnJlbnQudmFsdWUpLG8oImV4Y2hhbmdlIil9KSxbdyxPLG9dKSxWPSgwLHIudXNlQ2FsbGJhY2spKCgoKT0+e18uaXNTZXBhcmF0ZVN5bWJvbFNlYXJjaFRhYnMmJiFCP1UoKTpXKCl9KSxbQix3LE8sbyxVXSksRz1CP251bGw6ci5jcmVhdGVFbGVtZW50KEUuU3ltYm9sU2VhcmNoRmxhZyx7a2V5OlAudmFsdWUoKSxjbGFzc05hbWU6eC5pY29uLGNvdW50cnk6UC5jb3VudHJ5KCkscHJvdmlkZXJJZDpQLnByb3ZpZGVySWQoKSxzb3VyY2VJZDpQLnNvdXJjZUlkKCl9KTtyZXR1cm4gXy5pc1NlcGFyYXRlU3ltYm9sU2VhcmNoVGFicz9GP3IuY3JlYXRlRWxlbWVudChwLlBpbGxDb250ZXh0LlByb3ZpZGVyLHt2YWx1ZTp7c2l6ZToieHNtYWxsIn19LHIuY3JlYXRlRWxlbWVudCgiZGl2Iix7ImRhdGEtcWEtaWQiOiJzb3VyY2VzLWJ1dHRvbiJ9LHIuY3JlYXRlRWxlbWVudChkLlBpbGwse3R5cGU6Qj8iZ2hvc3QiOiJ0ZXJ0aWFyeSJ9LHIuY3JlYXRlRWxlbWVudChtLlBpbGxBY3RpdmVBcmVhLHtvbkNsaWNrOlcsImRhdGEtcWEtaWQiOiJzcy1maWx0ZXItc2VsZWN0LWJ1dHRvbiJ9LHIuY3JlYXRlRWxlbWVudChiLlBpbGxMYXlvdXRVbml2ZXJzYWwse3N0YXJ0SWNvblNsb3Q6ci5jcmVhdGVFbGVtZW50KGguUGlsbExheW91dEVxdWlsYXRlcmFsLG51bGwsRyksc3RhcnRUZXh0U2xvdDpCP3IuY3JlYXRlRWxlbWVudChTLlBpbGxQcmltYXJ5VGV4dCxudWxsLEgpOnIuY3JlYXRlRWxlbWVudChnLlBpbGxBY3RpdmVUZXh0LG51bGwsSCksZW5kSWNvblNsb3Q6Qj9yLmNyZWF0ZUVsZW1lbnQoeS5BcnJvd0ljb25QaWxsUGFydCx7b3BlbjohMX0pOnZvaWQgMH0pKSwhQiYmci5jcmVhdGVFbGVtZW50KG0uUGlsbEFjdGl2ZUFyZWEseyJkYXRhLXFhLWlkIjoic3MtZmlsdGVyLXJlc2V0LWJ1dHRvbiIsb25DbGljazpVfSxyLmNyZWF0ZUVsZW1lbnQoaC5QaWxsTGF5b3V0RXF1aWxhdGVyYWwsbnVsbCxyLmNyZWF0ZUVsZW1lbnQoZi5TdmdJY29uUGlsbFBhcnQse2ljb25Tdmc6Q30pKSkpKSk6bnVsbDpGP3IuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOmwoKSh4LmZsYWdXcmFwLCJhcHBseS1jb21tb24tdG9vbHRpcCIsIUImJngud2l0aEZsYWcpLHRpdGxlOmEudChudWxsLHZvaWQgMCxuKDQ3OTI0NikpLG9uQ2xpY2s6ViwiZGF0YS1xYS1pZCI6InNvdXJjZXMtYnV0dG9uIn0sQiYmci5jcmVhdGVFbGVtZW50KHUuSWNvbix7Y2xhc3NOYW1lOnguaWNvbixpY29uOlR9KSxHLHIuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOmwoKSh4LnRpdGxlKX0sSCksci5jcmVhdGVFbGVtZW50KHYuVG9vbFdpZGdldENhcmV0LHtjbGFzc05hbWU6eC5jYXJldCxkcm9wcGVkOiExfSkpOm51bGx9dmFyIE49big3ODMxMTYpLFI9bigxMjQ2MjUpLEE9big4MDg5NDYpO2Z1bmN0aW9uIEwoZSl7Y29uc3R7c2VsZWN0ZWRPcHRpb246dCxkZWZhdWx0T3B0aW9uOm4sb3B0aW9uczpvLG9uU2VsZWN0OmwsbGFiZWw6YSwuLi5zfT1lLHthbmNob3JQcm9wczppLHBvcG92ZXJQcm9wczpjfT0oMCxSLnVzZU1lbnVBbmNob3JQcm9wcykoKSx1PSgwLHIudXNlTWVtbykoKCgpPT5be3R5cGU6InRpdGxlIix0aXRsZTphLHZpc2libGU6Im1vYmlsZU9ubHkifSx7dHlwZToiZGl2aWRlciIsdmlzaWJsZToibW9iaWxlT25seSJ9LC4uLm8ubWFwKChlPT4oe3RpdGxlOmUudGl0bGUsb25DbGljazooKT0+bChlKSxzZWxlY3RlZDp0LnZhbHVlPT09ZS52YWx1ZX0pKSldKSxbbyxsLGMsYV0pLHY9KDAsci51c2VDYWxsYmFjaykoKCgpPT5sKG4pKSxbbCxuXSksXz10LnNob3J0VGl0bGU/P3QudGl0bGUsRT10LnNob3J0VGl0bGUmJnQuc2hvcnRUaXRsZSE9PXQudGl0bGU/dC50aXRsZTp2b2lkIDAsVD10LnZhbHVlIT09bi52YWx1ZTtyZXR1cm4gci5jcmVhdGVFbGVtZW50KHIuRnJhZ21lbnQsbnVsbCxyLmNyZWF0ZUVsZW1lbnQocC5QaWxsQ29udGV4dC5Qcm92aWRlcix7dmFsdWU6e3NpemU6InhzbWFsbCJ9fSxyLmNyZWF0ZUVsZW1lbnQoImRpdiIsey4uLnN9LHIuY3JlYXRlRWxlbWVudChkLlBpbGwse3R5cGU6VD8idGVydGlhcnkiOiJnaG9zdCJ9LHIuY3JlYXRlRWxlbWVudChtLlBpbGxBY3RpdmVBcmVhLHsuLi5pLHRvb2x0aXA6RSwiZGF0YS1xYS1pZCI6InNzLWZpbHRlci1zZWxlY3QtYnV0dG9uIn0sci5jcmVhdGVFbGVtZW50KGIuUGlsbExheW91dFVuaXZlcnNhbCx7c3RhcnRUZXh0U2xvdDpUP3IuY3JlYXRlRWxlbWVudChnLlBpbGxBY3RpdmVUZXh0LG51bGwsXyk6ci5jcmVhdGVFbGVtZW50KFMuUGlsbFByaW1hcnlUZXh0LG51bGwsXyksZW5kSWNvblNsb3Q6VD92b2lkIDA6ci5jcmVhdGVFbGVtZW50KHkuQXJyb3dJY29uUGlsbFBhcnQse29wZW46Yy5pc09wZW59KX0pKSxUJiZyLmNyZWF0ZUVsZW1lbnQobS5QaWxsQWN0aXZlQXJlYSx7b25DbGljazp2LCJkYXRhLXFhLWlkIjoic3MtZmlsdGVyLXJlc2V0LWJ1dHRvbiJ9LHIuY3JlYXRlRWxlbWVudChoLlBpbGxMYXlvdXRFcXVpbGF0ZXJhbCxudWxsLHIuY3JlYXRlRWxlbWVudChmLlN2Z0ljb25QaWxsUGFydCx7aWNvblN2ZzpDfSkpKSkpKSxyLmNyZWF0ZUVsZW1lbnQoQS5NZW51UG9wb3Zlcix7Li4uYyxpdGVtczp1fSkpfXZhciBrPW4oMzg2OTMxKSxPPW4oNzM4NDU4KSxNPW4oNTk0NzgwKTtmdW5jdGlvbiBEKGUpe2NvbnN0e3RyYWRpbmdGaWx0ZXJCdXR0b246dD1udWxsfT1lLHtpc1NtYWxsV2lkdGg6byxzZWxlY3RlZEZpbHRlclZhbHVlczpjLHNldFNlbGVjdGVkRmlsdGVyVmFsdWVzOnUsc2V0U2VsZWN0ZWRJbmRleDpkLHNlYXJjaFJlZjptLHN5bWJvbFNlYXJjaENvbnRlbnQ6cH09KDAscy51c2VFbnN1cmVkQ29udGV4dCkoaS5TeW1ib2xTZWFyY2hJdGVtc0RpYWxvZ0NvbnRleHQpLGg9cC50YWJTZWxlY3RGaWx0ZXJzO2lmKF8uaXNTZXBhcmF0ZVN5bWJvbFNlYXJjaFRhYnMpewpyZXR1cm4gdHx8cC5jYW5DaGFuZ2VFeGNoYW5nZXx8aCYmaC5sZW5ndGg+MD9yLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpsKCkoTS53cmFwLE0uc21hbGwsTS5uZXdTdHlsZXMsTy5tb2JpbGV0b3VjaCYmTS5tb2JpbGUpfSx0JiZyLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpNLnRyYWRpbmdGaWx0ZXJCdXR0b25XcmFwfSx0KSxwLmNhbkNoYW5nZUV4Y2hhbmdlJiZyLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpNLmZpbHRlckl0ZW19LHIuY3JlYXRlRWxlbWVudCh3LG51bGwpKSxoJiZoLm1hcCgoZT0+e2NvbnN0e2lkOnQsb3B0aW9uczpuLGxhYmVsOm99PWUsbD1uLmZpbmQoKGU9PmUudmFsdWU9PT1OLkZJTFRFUl9ERUZBVUxUX1ZBTFVFKSk7aWYoIWwpdGhyb3cgbmV3IEVycm9yKCJUaGVyZSBtdXN0IGJlIGRlZmF1bHQgZmlsdGVyIHZhbHVlIGluIGZpbHRlciBkZWZpbml0aW9uIik7Y29uc3QgYT1uLmZpbmQoKGU9PmUudmFsdWU9PT1jW3AuY3VycmVudFN5bWJvbFR5cGVdPy5bdF0pKXx8bDtyZXR1cm4gci5jcmVhdGVFbGVtZW50KCJkaXYiLHtrZXk6dCxjbGFzc05hbWU6TS5maWx0ZXJJdGVtfSxyLmNyZWF0ZUVsZW1lbnQoTCx7c2VsZWN0ZWRPcHRpb246YSxkZWZhdWx0T3B0aW9uOmwsb3B0aW9uczpuLG9uU2VsZWN0OmU9Pnt1KHAuY3VycmVudFN5bWJvbFR5cGUse1t0XTplLnZhbHVlfSksKDAsay50cmFja0V2ZW50KSgiTmV3IFNTIixwLmN1cnJlbnRTeW1ib2xUeXBlLG51bGw9PT1lLnZhbHVlP2UuYW5hbHl0aWNzTGFiZWw6ZS52YWx1ZSksZCgtMSksbS5jdXJyZW50Py5mb2N1cygpfSxsYWJlbDpvLCJkYXRhLXFhLWlkIjp0fSkpfSkpKTpyLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpNLmVtcHR5U3BhY2V9KX1yZXR1cm4gci5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6bCgpKE0ud3JhcCxvJiZNLnNtYWxsKX0sci5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6TS5pdGVtfSxyLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpNLnRleHR9LG8/YS50KG51bGwsdm9pZCAwLG4oMTAwMzczKSk6YS50KG51bGwsdm9pZCAwLG4oNjEzMTYzKSkpKSxyLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpNLml0ZW19LCFvJiZyLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpNLnRleHR9LGEudChudWxsLHZvaWQgMCxuKDM5Nzk4NykpKSxwLmNhbkNoYW5nZUV4Y2hhbmdlJiZyLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpNLmV4Y2hhbmdlfSxyLmNyZWF0ZUVsZW1lbnQodyxudWxsKSkpKX19LDIwMTk2MShlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtTeW1ib2xTZWFyY2hGZWVkOigpPT5nfSk7dmFyIHI9big3Nzk0NzQpLG89big2ODA5MTUpLGw9big5MTQ0ODcpLGE9bi5uKGwpLHM9bigxMzg2MzgpLGk9big3MTk0MjUpLGM9big1NjEyMDUpLHU9big0OTA1ODApLGQ9big5NjkxNjgpLG09bigxMzY2MykscD1uKDcyNzU2OSksaD1uKDI4NDU4KSxmPW4oNjQxOTApLFM9big1OTY4OTgpO2Z1bmN0aW9uIGcoZSl7Y29uc3R7b25Ub3VjaE1vdmU6dCxsaXN0UmVmOm4sY2xhc3NOYW1lOmwsbGlzdFdyYXBSZWY6Zyx2aXJ0dWFsTGlzdEtleTp5LGl0ZW1zOmIsZ2V0SXRlbVNpemU6dixoaWRlRmVlZDpfLGNhbkxvYWRNb3JlOkUsb25Mb2FkTW9yZVN5bWJvbHM6Q309ZSx7bW9kZTpULGlzU21hbGxXaWR0aDp4LGhhbmRsZUxpc3RXaWR0aDpJfT0oMCxtLnVzZUVuc3VyZWRDb250ZXh0KShjLlN5bWJvbFNlYXJjaEl0ZW1zRGlhbG9nQ29udGV4dCksW3csTl09KDAsci51c2VTdGF0ZSkobnVsbCksUj0oMCxpLnVzZVJlc2l6ZU9ic2VydmVyKSgoZnVuY3Rpb24oW2VdKXtOKGUuY29udGVudFJlY3QuaGVpZ2h0KSxJKGUuY29udGVudFJlY3Qud2lkdGgpfSkpLEE9KDAsci51c2VDYWxsYmFjaykoKGU9Pntjb25zdHtpbmRleDp0LHN0eWxlOm59PWU7cmV0dXJuIHIuY3JlYXRlRWxlbWVudCgiZGl2Iix7c3R5bGU6bn0sYlt0XSl9KSxbYl0pLEw9KDAsci51c2VDYWxsYmFjaykoKGU9PigwLHMuZW5zdXJlKShiW2VdLmtleSkpLFtiXSksaz0id2F0Y2hsaXN0Ij09PVQmJm51bGwhPT13LE89KDAsaC51c2VJbnRlcnNlY3Rpb25PYnNlcnZlcikoKGU9Pntjb25zdCB0PWUucG9wKCk7dm9pZCAwIT09dCYmdC5pc0ludGVyc2VjdGluZyYmQyYmQygpfSkse3RocmVzaG9sZDowLHJvb3RNYXJnaW46IjBweCAwcHggMjBweCAwcHgiLHJvb3Q6Z30pO3JldHVybiByLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTphKCkoUy53cmFwLGsmJlMud2F0Y2hsaXN0LF8mJlMubm9GZWVkLF8mJnAuaXNTZXBhcmF0ZVN5bWJvbFNlYXJjaFRhYnMmJlMubmV3U3R5bGVzLGwpLG9uVG91Y2hNb3ZlOnQscmVmOlJ9LHIuY3JlYXRlRWxlbWVudCgiZGl2Iix7cmVmOmcsY2xhc3NOYW1lOmEoKShTLnNjcm9sbENvbnRhaW5lcixfJiZTLm5vRmVlZCl9LGs/ci5jcmVhdGVFbGVtZW50KG8uVmFyaWFibGVTaXplTGlzdCx7a2V5OnkscmVmOm4sY2xhc3NOYW1lOlMud2F0Y2hsaXN0Q29udGFpbmVyLHdpZHRoOiIxMDAlIixoZWlnaHQ6KDAscy5lbnN1cmVOb3ROdWxsKSh3KSxpdGVtQ291bnQ6Yi5sZW5ndGgsaXRlbVNpemU6dixjaGlsZHJlbjpBLGl0ZW1LZXk6TCxvdmVyc2NhbkNvdW50OjIwLGRpcmVjdGlvbjooMCxkLmlzUnRsKSgpPyJydGwiOiJsdHIifSk6ci5jcmVhdGVFbGVtZW50KHIuRnJhZ21lbnQsbnVsbCxyLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTphKCkoUy5saXN0Q29udGFpbmVyLHgmJlMubXVsdGlMaW5lSXRlbXNDb250YWluZXIpfSwhcC5pc1NlcGFyYXRlU3ltYm9sU2VhcmNoVGFicyYmci5jcmVhdGVFbGVtZW50KHUuU3ltYm9sU2VhcmNoRmVlZEhlYWRlcixudWxsKSwuLi5iLEUmJnIuY3JlYXRlRWxlbWVudCgiZGl2Iix7a2V5OmBvYnNlcnZlci0ke2IubGVuZ3RofWAsY2xhc3NOYW1lOmEoKShTLnNwaW5uZXJDb250YWluZXIseCYmUy5sYXJnZVNwaW5uZXIpLHJlZjpPfSxyLmNyZWF0ZUVsZW1lbnQoZi5TcGlubmVyLHtzaXplOng/InNtYWxsIjoibWluaSJ9KSkpKSkpfX0sNTk3NjU0KGUsdCxuKXsKInVzZSBzdHJpY3QiO24uZCh0LHtTeW1ib2xTZWFyY2hJdGVtc0RpYWxvZzooKT0+Z259KTt2YXIgcixvLGw9big3Nzk0NzQpLGE9big5MTQ0ODcpLHM9bi5uKGEpLGk9big5MzAyMzEpLGM9big3ODMyNTQpLHU9bigyMjUyOTgpLGQ9big4NTE0NTgpLG09big3Mjc1NjkpO2Z1bmN0aW9uIHAoZSl7Y29uc3QgdD1mdW5jdGlvbihlKXtsZXQgdCxuPTAscj0wO2ZvcihsZXQgbz0wO288ZS5sZW5ndGg7bysrKXtjb25zdCBsPWVbb107aWYoIndoaXRlc3BhY2UiIT09bC50eXBlKXN3aXRjaChuKXtjYXNlIDA6aWYoIm51bWJlciIhPT1sLnR5cGV8fDEhPStsLnZhbHVlKXJldHVybltdO249MTticmVhaztjYXNlIDE6aWYoMSE9PW58fCJkaXZpZGUiIT09bC50eXBlKXJldHVybltdO249Mix0PW8rMTticmVhaztjYXNlIDI6aWYoIm9wZW5CcmFjZSI9PT1sLnR5cGUpbj0zLHI9MTtlbHNlIGlmKCgwLGQuaXNCaW5hcnlPcGVyYXRvcikobC50eXBlKSlyZXR1cm5bXTticmVhaztjYXNlIDM6Im9wZW5CcmFjZSI9PT1sLnR5cGU/cisrOiJjbG9zZUJyYWNlIj09PWwudHlwZSYmKHItLSxyPD0wJiYobj0yKSl9fXJldHVybiBlLnNsaWNlKHQpfShlKTtyZXR1cm4gdC5sZW5ndGg/KDAsZC5mYWN0b3JPdXRCcmFjZXMpKHQpOigwLGQuZmFjdG9yT3V0QnJhY2VzKSgoMCxkLnRva2VuaXplKSgiMS8oIitoKGUpKyIpIikpfWZ1bmN0aW9uIGgoZSl7cmV0dXJuIGUucmVkdWNlKCgoZSx0KT0+InN5bWJvbCI9PT10LnR5cGUmJmQuc3ltYm9sVG9rZW5Fc2NhcGVSZS50ZXN0KHQudmFsdWUpP2UrYCcke3QudmFsdWV9J2A6ZSt0LnZhbHVlKSwiIil9ZnVuY3Rpb24gZihlKXtjb25zdCB0PWZ1bmN0aW9uKGUpe2NvbnN0IHQ9KDAsZC50b2tlbml6ZSkoZSksbj1bXTtyZXR1cm4gdC5mb3JFYWNoKChlPT57aWYoInN5bWJvbCIhPT1lLnR5cGUpcmV0dXJuO2NvbnN0W3RdPSgwLGQucGFyc2VUb2tlbikoZSk7dCYmbi5wdXNoKHQpfSkpLG59KGUpO2lmKDE9PT10Lmxlbmd0aClyZXR1cm4gdFswXX1mdW5jdGlvbiBTKGUsdCxuKXtjb25zdCByPWUudmFsdWUsW28sbF09ZyhlLG4pLGE9KDAsbS5nZXRTeW1ib2xGdWxsTmFtZSkodCkscz1kLnN5bWJvbFRva2VuRXNjYXBlUmUudGVzdChhKT9gJyR7YX0nYDphO3JldHVybltyLnN1YnN0cmluZygwLGwpK3Mrci5zdWJzdHJpbmcobCtvLmxlbmd0aCksbCtzLmxlbmd0aF19ZnVuY3Rpb24gZyhlLHQpe2NvbnN0e3ZhbHVlOm4sc2VsZWN0aW9uU3RhcnQ6cn09ZSxvPSgwLGQudG9rZW5pemUpKHQ/bi50b1VwcGVyQ2FzZSgpOm4pLGw9KDAsZC5nZXRUb2tlbkF0UG9zKShvLHJ8fDApO3JldHVybltsPy52YWx1ZXx8IiIsbD9sLm9mZnNldDpuLmxlbmd0aCxvXX0hZnVuY3Rpb24oZSl7ZS5Jbml0PSJpbml0IixlLlZhcj0idmFyIixlLk9wZXJhdG9yPSJvcGVyYXRvciJ9KHJ8fChyPXt9KSksZnVuY3Rpb24oZSl7ZVtlLkluaXQ9MF09IkluaXQiLGVbZS5EaXY9MV09IkRpdiIsZVtlLkV4cHJlc3Npb249Ml09IkV4cHJlc3Npb24iLGVbZS5CcmFjZWRFeHByZXNzaW9uPTNdPSJCcmFjZWRFeHByZXNzaW9uIn0ob3x8KG89e30pKTt2YXIgeT1uKDU2OTM5OCksYj1uKDkzMDU2Niksdj1uKDgzOTQyNiksXz1uKDQxMTQwNyk7ZnVuY3Rpb24gRSgpe2NvbnN0IGU9ZnVuY3Rpb24oKXtjb25zdCBlPSgwLF8udHJhZGluZ1NlcnZpY2UpKCk7cmV0dXJuIGUmJjE9PT1lLmNvbm5lY3RTdGF0dXMoKT9lLmFjdGl2ZUJyb2tlcigpOm51bGx9KCk7cmV0dXJuIGU/e2Jyb2tlcjplLGFjY291bnRNZXRhaW5mbzooMCx2LmRlZmF1bHQpKCgoKT0+ZS5hY2NvdW50TWV0YWluZm8oKSkpfTpudWxsfWZ1bmN0aW9uIEMoKXtjb25zdCBlPWZ1bmN0aW9uKCl7Y29uc3RbZSx0XT0oMCxsLnVzZVN0YXRlKShFKTtyZXR1cm4oMCxsLnVzZUVmZmVjdCkoKCgpPT57Y29uc3QgZT0oMCxfLnRyYWRpbmdTZXJ2aWNlKSgpLG49KCk9Pnt0KEUoKSl9O3JldHVybiBlJiYoZS5vbkJyb2tlckNoYW5nZS5zdWJzY3JpYmUobnVsbCxuKSxlLm9uQ29ubmVjdGlvblN0YXR1c0NoYW5nZS5zdWJzY3JpYmUobnVsbCxuKSksKCk9PntlJiYoZS5vbkJyb2tlckNoYW5nZS51bnN1YnNjcmliZShudWxsLG4pLGUub25Db25uZWN0aW9uU3RhdHVzQ2hhbmdlLnVuc3Vic2NyaWJlKG51bGwsbikpfX0pLFtdKSxlfSgpLHQ9ZT8uYnJva2VyPz9udWxsLG49KDAsbC51c2VNZW1vKSgoKCk9PmZ1bmN0aW9uKGUpe2lmKGUmJmUubWV0YWluZm8oKS5jb25maWdGbGFncy5zdXBwb3J0U3ltYm9sU2VhcmNoKXJldHVybiBlLm1ldGFpbmZvKCkuYmFja2VuZEJyb2tlck5hbWV8fGUubWV0YWluZm8oKS5pZC50b0xvd2VyQ2FzZSgpO3JldHVybn0odCkpLFt0XSkscj0oMCxsLnVzZU1lbW8pKCgoKT0+ZnVuY3Rpb24oZSx0KXtpZih0KXJldHVybiBlPy5tZXRhaW5mbygpLnRpdGxlO3JldHVybn0odCxuKSksW3Qsbl0pLG89KDAsbC51c2VNZW1vKSgoKCk9PmZ1bmN0aW9uKGUpe2lmKGUpcmV0dXJue2xvZ29NaW5pVXJsOmUubWV0YWluZm8oKS5sb2dvTWluaVVybCxsb2dvTWluaUJsYWNrVXJsOmUubWV0YWluZm8oKS5sb2dvTWluaUJsYWNrVXJsfTtyZXR1cm59KHQpKSxbdF0pLGE9KDAsbC51c2VNZW1vKSgoKCk9PmZ1bmN0aW9uKGUpe2lmKGUpe2NvbnN0IHQ9ZS5tZXRhaW5mbygpLmNvbmZpZ0ZsYWdzLnN1cHBvcnRVbmhpZGVTeW1ib2xTZWFyY2hHcm91cHM7aWYoMT09PWUuY29ubmVjdGlvblN0YXR1cygpJiZ0JiZlLnVuaGlkZVN5bWJvbFNlYXJjaEdyb3VwcylyZXR1cm4gZS51bmhpZGVTeW1ib2xTZWFyY2hHcm91cHMoKS5qb2luKCIsIil9cmV0dXJufSh0KSksW3RdKSxzPSgwLGwudXNlTWVtbykoKCgpPT5mdW5jdGlvbihlKXtyZXR1cm4gQm9vbGVhbihlPy5tZXRhaW5mbygpLmNvbmZpZ0ZsYWdzLnN1cHBvcnREaXNwbGF5QnJva2VyTmFtZUluU3ltYm9sU2VhcmNoKX0odCkpLFt0XSksW2ksY109KDAsbC51c2VTdGF0ZSkoKCgpPT5iLmdldEJvb2woInN5bWJvbGVkaXQudHJhZGFibGUiLCEwKSkpO3JldHVybigwLGwudXNlRWZmZWN0KSgoKCk9PntiLnNldFZhbHVlKCJzeW1ib2xlZGl0LnRyYWRhYmxlIixpKX0pLFtpXSkse2Jyb2tlcldyYXBwZXI6ZSwKYnJva2VySWQ6bixicm9rZXJUaXRsZTpyLGJyb2tlckxvZ29JbmZvOm8saXNCcm9rZXJDaGVja2VkOmksc2V0SXNCcm9rZXJDaGVja2VkOmMsZGlzcGxheUJyb2tlclN5bWJvbDpzLHVuaGlkZVN5bWJvbFNlYXJjaEdyb3VwczphfX12YXIgVD1uKDY5NzQ3MikseD1uKDM5ODEzMik7ZnVuY3Rpb24gSShlKXtjb25zdFt0LG5dPSgwLGwudXNlU3RhdGUpKCgoKT0+e2NvbnN0e3NlYXJjaFNvdXJjZXM6dH09ZSxuPWIuZ2V0SlNPTigic3ltYm9sZWRpdC5zZWxlY3RlZFNlYXJjaFNvdXJjZXMiLHt9KSxyPXt9O3JldHVybiBPYmplY3Qua2V5cyhuKS5mb3JFYWNoKChlPT57Y29uc3Qgbz10LmZpbmQoKHQ9PnQudmFsdWUoKT09PW5bZV0pKTtvJiYocltlXT1vKX0pKSxyfSkpO3JldHVyblt0LCgwLGwudXNlQ2FsbGJhY2spKCgoZSx0KT0+e24oKG49Pntjb25zdCByPXsuLi5uLFtlXTp0fTtyZXR1cm4gZnVuY3Rpb24oZSl7Y29uc3QgdD17fTtPYmplY3Qua2V5cyhlKS5mb3JFYWNoKChuPT57dFtuXT1lW25dLnZhbHVlKCl9KSksYi5zZXRKU09OKCJzeW1ib2xlZGl0LnNlbGVjdGVkU2VhcmNoU291cmNlcyIsdCl9KHIpLHJ9KSl9KSxbXSldfXZhciB3PW4oMTM4NjM4KTt2YXIgTj1uKDc4MzExNiksUj1uKDM0NDEwMyksQT1uKDMyMDU1KTtjb25zdCBMPW5ldyBTZXQoWyJwcm9fbmFtZSIsInNob3J0X25hbWUiLCJkZXNjcmlwdGlvbiIsImV4Y2hhbmdlIiwidHlwZSIsImNvdW50cnlfY29kZSIsInByb3ZpZGVyX2lkIiwibG9nbyIsInNvdXJjZS1sb2dvaWQiLCJ1cGRhdGVfbW9kZSIsInR5cGVzcGVjcyIsInNvdXJjZSIsInNvdXJjZTIiXSk7YXN5bmMgZnVuY3Rpb24gaygpe3JldHVybiBhc3luYyBmdW5jdGlvbihlKXtjb25zdCB0PVtdLG49YXdhaXQoMCxBLnNuYXBzaG90ZXIpKCkuZ2V0U25hcHNob3RzRm9yQWxsKGUsTCk7cmV0dXJuIG4uZmlsdGVyKEQpLmZvckVhY2goKGU9Pntjb25zdHt2YWx1ZXM6e3Nob3J0X25hbWU6bixwcm9fbmFtZTpyLGRlc2NyaXB0aW9uOm8sdHlwZTpsLGxvZ286YSwic291cmNlLWxvZ29pZCI6cyxjb3VudHJ5X2NvZGU6aSxwcm92aWRlcl9pZDpjLHVwZGF0ZV9tb2RlOnUsdHlwZXNwZWNzOmQsc291cmNlOm0sc291cmNlMjpwfX09ZTtvJiZsJiZ0LnB1c2goe2Z1bGxfbmFtZTpyLHN5bWJvbDoic3ByZWFkIj09PWw/cjpuLGV4Y2hhbmdlOiJzcHJlYWQiPT09bD9udWxsOigwLFIuZ2V0RXhjaGFuZ2UpKHIpLGRlc2NyaXB0aW9uOm8sdHlwZTpsLHR5cGVzcGVjczpkLGxvZ286YSxzb3VyY2VfbG9nb2lkOnMsY291bnRyeTppPy50b0xvd2VyQ2FzZSgpLHByb3ZpZGVyX2lkOmM/LnRvTG93ZXJDYXNlKCkscGFyYW1zOiJlbmRvZmRheSI9PT11P1siZW9kIl06dm9pZCAwLHNvdXJjZTptLHNvdXJjZTI6cH0pfSkpLHR9KGIuZ2V0SlNPTigiU3ltYm9sU2VhcmNoLnJlY2VudCIsW10pLmZpbHRlcigoZT0+InN0cmluZyI9PXR5cGVvZiBlKSkpfWFzeW5jIGZ1bmN0aW9uIE8oZSl7Y29uc3QgdD1hd2FpdCBhc3luYyBmdW5jdGlvbihlKXtjb25zdCB0PWF3YWl0KDAsQS5zbmFwc2hvdGVyKSgpLmdldFNuYXBzaG90KGUsTCk7cmV0dXJuIEQodCk/dC52YWx1ZXMucHJvX25hbWU6bnVsbH0oZSk7bnVsbCE9PXQmJk0odCl9ZnVuY3Rpb24gTShlKXtpZigic3RyaW5nIiE9dHlwZW9mIGUpcmV0dXJuO2NvbnN0IHQ9bmV3IFNldChiLmdldEpTT04oIlN5bWJvbFNlYXJjaC5yZWNlbnQiLFtdKSk7dC5oYXMoZSkmJnQuZGVsZXRlKGUpLHQuaGFzKG51bGwpJiZ0LmRlbGV0ZShudWxsKSxiLnNldEpTT04oIlN5bWJvbFNlYXJjaC5yZWNlbnQiLFtlLC4uLnRdLnNsaWNlKDAsMzApKX1mdW5jdGlvbiBEKGUpe3JldHVybiJlcnJvciIhPT1lLnN0YXR1c312YXIgUD1uKDM4NjkzMSksRj1uKDU4OTkxNSksQj1uKDQwMTA3OCksSD1uKDkzMTc1NyksVT1uKDM0OTM0MSksVz1uKDc2NTU5KSxWPW4oNDgwMjg0KSxHPW4oNzc3NjgwKSxRPW4oMjE0OTg3KSx6PW4oNjE2MzExKSwkPW4oMTg1MjcxKSxxPW4oMTQ5MjAwKSxLPW4oMzE1MzIwKSxZPW4oNDg4NzgyKSxYPW4oMTIzNjMxKSxqPW4oODY2NzEpLFo9bigxMzY3NTEpLEo9big1NDY1NTkpLGVlPW4oMzcwNjQyKSx0ZT1uKDYwNzM0NSksbmU9big3OTExNDApLHJlPW4oMzYzOTU4KSxvZT1uKDc2NTkxNCksbGU9big2MDE4NDEpLGFlPW4oNzU1NjI3KSxzZT1uKDgxMDA1OSksaWU9big3MDYwNTApLGNlPW4oNTUxNTA1KSx1ZT1uKDUxODc1KSxkZT1uKDU5NTE4OSksbWU9big3MjY4MjYpLHBlPW4oNjkyOTU2KTtmdW5jdGlvbiBoZShlKXtjb25zdHtzeW1ib2w6dCxjaGlsZHJlbjpyLHNob3dIaW50Om99PWUsYT0oMCxsLnVzZVJlZikobnVsbCkscz0oMCxsLnVzZUNhbGxiYWNrKSgoZT0+e2U/KGEuY3VycmVudD1lLGUuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLHVlLnByZXZlbnREZWZhdWx0KSk6YS5jdXJyZW50JiYoYS5jdXJyZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoImNsaWNrIix1ZS5wcmV2ZW50RGVmYXVsdCksYS5jdXJyZW50PW51bGwpfSksW10pO3JldHVybiB0P2wuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOnBlLmNvbnRhaW5lcn0sbC5jcmVhdGVFbGVtZW50KGRlLkZsYWcse2NsYXNzTmFtZTpwZS5mbGFnLHN5bWJvbDp0fSksbC5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOnBlLmNvbnRlbnR9LHIpLG8mJmwuY3JlYXRlRWxlbWVudChtZS5IaW50UmVmZXJlbmNlYWJsZSx7YnV0dG9uVGV4dDokLnQobnVsbCx2b2lkIDAsbigxNDUzNDgpKSxoaWRlV2l0aFJlZmVyZW5jZTohMCxwbGFjZW1lbnQ6InRvcCIscmVmZXJlbmNlOnMsc2V0dGluZ3NIaW50S2V5OiJoaW50Lm9wdGlvbnNTeW1ib2xTZWFyY2giLHRleHQ6JC50KG51bGwsdm9pZCAwLG4oNTQyNjA5KSl9KSk6bC5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOnBlLmNvbnRlbnR9LHIpfXZhciBmZT1uKDU4MzAzOCksU2U9big4NDY3NzkpO2NvbnN0IGdlPWwubWVtbygoZnVuY3Rpb24oZSl7Y29uc3R7Y29sU3Bhbjp0LHByaWNlOm4scHJpY2VzY2FsZTpyLHN5bWJvbDpvfT1lLGE9KDAsbC51c2VNZW1vKSgoKCk9Pm5ldyBhZS5QcmljZUZvcm1hdHRlcih7CnByaWNlU2NhbGU6cj8/dm9pZCAwfSkpLFtyXSk7cmV0dXJuIGwuY3JlYXRlRWxlbWVudCgidHIiLHsiZGF0YS1xYS1pZCI6Im9wdGlvbi1jaGFpbi11bmRlcmx5aW5nLXJvdyJ9LGwuY3JlYXRlRWxlbWVudCgidGQiLHtjbGFzc05hbWU6U2UudW5kZXJseWluZ0NlbGwsY29sU3Bhbjp0LCJkYXRhLWNlbGwtaWQiOm99LGwuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOlNlLnVuZGVybHlpbmdCYWRnZX0sKDAsZmUuc3BsaXRTeW1ib2xOYW1lKShvKVsxXSwiICIsYS5mb3JtYXQobikpKSl9KSkseWU9WyJzeW1ib2wiXSxiZT1bInN0cmlrZSJdO2Z1bmN0aW9uIHZlKGUpe2NvbnN0e2N1cnJlbnRQcmljZTp0LGluaXRpYWxPcHRpb246cixvbkNoYW5nZVNvcnQ6byxvcHRpb25zOmEscHJpY2VzY2FsZTpzLHNlcmllOmksc29ydERlc2M6Y309ZSx7c3RyaWtlczp1LHVuZGVybHlpbmc6ZH09aSxtPWZ1bmN0aW9uKGUpe2NvbnN0IHQ9e29wdGlvblR5cGU6W10sc3RyaWtlOltdLHN5bWJvbDpbXX07Zm9yKGNvbnN0IG4gb2YgT2JqZWN0LnZhbHVlcyhlKSlmb3IoY29uc3QgZSBvZiBPYmplY3QudmFsdWVzKG4pKSgwLGxlLmlzTnVtYmVyKShlLnN0cmlrZSkmJnQuc3RyaWtlLnB1c2goZS5zdHJpa2UpO2NvbnN0IG49bmV3IGFlLlByaWNlRm9ybWF0dGVyKHtwcmljZVNjYWxlOjJ9KTtyZXR1cm57b3B0aW9uVHlwZTpuLHN0cmlrZTpuZXcgYWUuUHJpY2VGb3JtYXR0ZXIoe3ByaWNlU2NhbGU6MTAqKigwLGNlLmZpbmRNYXhQcmVjaXNpb24pKHQuc3RyaWtlKX0pLHN5bWJvbDpufX0oYSkscD1bXTtsZXQgaCxmLFMsZz1udWxsLHk9bnVsbDtmdW5jdGlvbiBiKGUpe3JldHVybiBlP3tzeW1ib2w6YCR7ZS5vcHRpb25UeXBlfSAkeygwLGllLmNoYWluRm9ybWF0TnVtYmVyKShlLnN0cmlrZSxtLnN0cmlrZSl9YH06e3N5bWJvbDoi4oCTIn19Zm9yKGxldCBlPTA7ZTx1Lmxlbmd0aDtlKyspe2NvbnN0IG49dVtlXSxvPWFbbl07aWYoIW8pY29udGludWU7Y29uc3QgYz17dHlwZToib3B0aW9uIixjYWxsOmIoby5jYWxsKSxjYWxsUGFydENvbG9yOnQ+PW4/Im91dC1vZi10aGUtbW9uZXkiOiJpbi10aGUtbW9uZXkiLGNhbGxJZDpvLmNhbGw/LnN5bWJvbCxjZW50cmFsOntzdHJpa2U6KDAsaWUuY2hhaW5Gb3JtYXROdW1iZXIpKG4sbS5zdHJpa2UpfSxwdXQ6YihvLnB1dCkscHV0UGFydENvbG9yOnQ8bj8ib3V0LW9mLXRoZS1tb25leSI6ImluLXRoZS1tb25leSIscHV0SWQ6by5wdXQ/LnN5bWJvbCx1bmRlcmx5aW5nOmkudW5kZXJseWluZyxzdHJpa2U6bn07IXJ8fHIhPT1vLmNhbGw/LnN5bWJvbCYmciE9PW8ucHV0Py5zeW1ib2x8fChmPXIsaD1yLFM9cikscC5wdXNoKGMpLHQ+PXVbZV0mJnQ8dVtlKzFdJiYoZz1lLHk9bC5jcmVhdGVFbGVtZW50KGdlLHtrZXk6ZCxjb2xTcGFuOjIqeWUubGVuZ3RoK2JlLmxlbmd0aCxwcmljZTp0LHByaWNlc2NhbGU6cyxzeW1ib2w6ZH0pLGh8fChoPWMuY2FsbElkKSxTfHwoUz1kLGY9Yy5jYWxsSWQ/P2MucHV0SWQ/P3ZvaWQgMCkpfWMmJihwLnJldmVyc2UoKSxudWxsIT09ZyYmKGc9cC5sZW5ndGgtZy0yKSk7cmV0dXJue3Nlcmllc0lkOmkuaWQscm93czpwLGNvbHNEYXRhOntjZW50cmFsQ29sczpiZSxjZW50cmFsQ29sc0RhdGE6e3N0cmlrZTp7YWxpZ246ImNlbnRlciIsc29ydDpjPyJkZXNjZW5kaW5nIjoiYXNjZW5kaW5nIix0aXRsZTpsLmNyZWF0ZUVsZW1lbnQoc2UuT3B0aW9uc0NoYWluU29ydGFibGVDZWxsLHtvbkNsaWNrOigpPT5vKCFjKSxzb3J0RGVzYzpjLHNvcnRBY3RpdmU6ITB9LCQudChudWxsLHtjb250ZXh0OiJwcmljZSJ9LG4oNDQ1MzMzKSkpfX0sc2lkZUNvbHM6eWUsc2lkZUNvbHNEYXRhOntzeW1ib2w6e2FsaWduOiJjZW50ZXIiLHRpdGxlOiQudChudWxsLHtjb250ZXh0OiJpbnN0cnVtZW50X3N5bWJvbF9uYW1lIn0sbigxNjM5ODApKSxjdXN0b21Db250ZW50UmVuZGVyOih7Y2VsbElkOmUsY2hpbGRyZW46dH0pPT5sLmNyZWF0ZUVsZW1lbnQoaGUse3Nob3dIaW50Omg9PT1lLHN5bWJvbDplfSx0KX19fSxpbml0aWFsU2Nyb2xsUG9zaXRpb25DZWxsSWQ6Uyxpbml0aWFsTmF2aWdhdGVkQ2VsbElkOmYsdW5kZXJseWluZ0luZGV4OmcsdW5kZXJseWluZ1Jvdzp5LHNlbGVjdGVkQ2VsbElkOnJ9fXZhciBfZT1uKDU5NTUxNyksRWU9big4ODQ2MzQpLENlPW4oODI3MDI5KSxUZT1uKDYzMjA2MCkseGU9big3MDEyNTkpO2NvbnN0IEllPW5ldyBjbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMuX2NvbHVtbnM9WyJvcHRpb24tdHlwZSIsInN0cmlrZSJdfWFzeW5jIGdldFNlcmllc09wdGlvbnMoZSx0LG4pe2NvbnN0e2V4cDpyLHVuZGVybHlpbmc6byxyb290Omx9PWUsYT0oMCx4ZS5jcmVhdGVTY2FuUGFyYW1NYW5hZ2VyKSh7Y29sdW1uczp0aGlzLl9jb2x1bW5zLGluZGV4X2ZpbHRlcnM6W3tuYW1lOiJ1bmRlcmx5aW5nX3N5bWJvbCIsdmFsdWVzOltvXX1dLGZpbHRlcjpbe2xlZnQ6InR5cGUiLG9wZXJhdGlvbjpFZS5GaWx0ZXJPcGVyYXRpb24uRXF1YWwscmlnaHQ6Im9wdGlvbiJ9LHtsZWZ0OiJleHBpcmF0aW9uIixvcGVyYXRpb246RWUuRmlsdGVyT3BlcmF0aW9uLkVxdWFsLHJpZ2h0OnJ9LHtsZWZ0OiJyb290IixvcGVyYXRpb246RWUuRmlsdGVyT3BlcmF0aW9uLkVxdWFsLHJpZ2h0Omx9XSxzb3J0Ontzb3J0Qnk6Im5hbWUiLHNvcnRPcmRlcjoiYXNjIn19KSx7c3ltYm9sczpzLGZpZWxkczppfT1hd2FpdCgwLF9lLmdldFNjYW4yRGF0YSkobixhLENlLk5vblN0b2NrTWFya2V0Lk9wdGlvbnMsdCk7aWYoIXMpcmV0dXJuW107Y29uc3QgYz17fTtmb3IoY29uc3QgZSBvZiBzKXtjb25zdCB0PVRlLlNjYW5uZXJVdGlscy5tYXBTY2FubmVyU3ltYm9sKGksZSkseyJvcHRpb24tdHlwZSI6bixzdHJpa2U6cn09dDtUZS5TY2FubmVyVXRpbHMuaXNPcHRpb25UeXBlKG4pJiZUZS5TY2FubmVyVXRpbHMuaXNTdHJpa2UocikmJihjW3JdfHwoY1tyXT17fSksY1tyXVtuXT17b3B0aW9uVHlwZTpuLHN0cmlrZTpyLHN5bWJvbDp0Lm5hbWV9KX1yZXR1cm4gY319LHdlPS9eXHcrOihbXHcmXSspKD88ZGF0ZT5bMC05XXs2fSkoUHxDKS0/WzAtOS5dKyQvCjt2YXIgTmU9big1NDAzMCk7ZnVuY3Rpb24gUmUoZSl7Y29uc3R7Y3VycmVudFByaWNlOnQsaW5pdGlhbE9wdGlvbjpyLG9uU2VsZWN0Om8scHJpY2VzY2FsZTphLHNjYW5uZXJMYWJlbDppLHNlcmllczpjfT1lLHU9KDAsdGUudXNlT3B0aW9uc0V2ZW50VHJhY2tlcikoKTsoMCxlZS51c2VPcGVuVHJhY2tpbmcpKEYuT3B0aW9uc1RyYWNrZXIuRWxlbWVudC5PcHRpb25zQ2hhaW5PcGVuKSwoMCxKLnVzZUFjdGl2aXR5VGltZVRyYWNraW5nKShGLk9wdGlvbnNUcmFja2VyLkVsZW1lbnQuT3B0aW9uc0NoYWluVGltZVNwZW50KTtjb25zdCBkPSgwLGwudXNlUmVmKSh0KTtkLmN1cnJlbnQ9dDtjb25zdFttLHBdPSgwLGwudXNlU3RhdGUpKCgoKT0+ZnVuY3Rpb24oZSx0KXtpZighZSlyZXR1cm4gbnVsbDtjb25zdCBuPWUubWF0Y2god2UpO2lmKCFuKXJldHVybiBudWxsO2NvbnN0IHI9TnVtYmVyKDIwK25bMl0pLG89blsxXTtyZXR1cm4gTnVtYmVyLmlzTmFOKHIpP251bGw6dC5maW5kKChlPT5lLmV4cD09PXImJmUucm9vdD09PW8pKT8/bnVsbH0ocixjKT8uaWQ/PygwLHcuZW5zdXJlRGVmaW5lZCkoY1swXSkuaWQpKSxbaCxmXT0oMCxsLnVzZVN0YXRlKSh7c3RhdGU6ImxvYWRpbmcifSksW1MsZ109bmUudXNlVFZTZXR0aW5ncy5ib29sZWFuKCJvcHRpb25zQ2hhaW4uc29ydERlc2MiLCExKSx5PSgwLGwudXNlTWVtbykoKCgpPT5bbV0pLFttXSksYj0oMCxsLnVzZU1lbW8pKCgoKT0+KDAscmUuYnVpbGRTZXJpZXNQaWNrZXJHcm91cHMpKGMpKSxbY10pLHY9KDAsbC51c2VNZW1vKSgoKCk9PiJzdWNjZXNzIj09PWguc3RhdGU/e3N0YXRlOiJzdWNjZXNzIixkYXRhOnZlKHtjdXJyZW50UHJpY2U6ZC5jdXJyZW50LGluaXRpYWxPcHRpb246cixvbkNoYW5nZVNvcnQ6ZyxvcHRpb25zOmgub3B0aW9ucyxwcmljZXNjYWxlOmEsc2VyaWU6aC5zZXJpZSxzb3J0RGVzYzpTfSl9OmgpLFtoLHIsYSxTLGddKSxfPSgwLGwudXNlQ2FsbGJhY2spKChlPT57Y29uc3QgdD0oMCx3LmVuc3VyZURlZmluZWQpKGMuZmluZCgodD0+dC5pZD09PWUpKSk7cChlKSx1KEYuT3B0aW9uc1RyYWNrZXIuRWxlbWVudC5PcHRpb25zQ2hhaW5TZWxlY3RTZXJpZXMsKDAscmUuZ2V0RGF5c1VudGlsRXhwaXJhdGlvbikodC5leHBEYXRlKS50b1N0cmluZygpKX0pLFt1LGNdKTtyZXR1cm4oMCxsLnVzZUVmZmVjdCkoKCgpPT57Y29uc3QgZT1uZXcgQWJvcnRDb250cm9sbGVyLHQ9KDAsdy5lbnN1cmVEZWZpbmVkKShjLmZpbmQoKGU9PmUuaWQ9PT1tKSkpO3JldHVybiBmKHtzdGF0ZToibG9hZGluZyJ9KSxJZS5nZXRTZXJpZXNPcHRpb25zKHQsaSxlLnNpZ25hbCkudGhlbigoZT0+e2Yoe3N0YXRlOiJzdWNjZXNzIixvcHRpb25zOmUsc2VyaWU6dH0pfSkpLmNhdGNoKChlPT57KDAsUS5pc0Fib3J0RXJyb3IpKGUpfHxmKHtzdGF0ZToiZXJyb3IifSl9KSksKCk9PntlLmFib3J0KCl9fSksW2ksbSxjXSksbC5jcmVhdGVFbGVtZW50KFguT3B0aW9uc0NoYWluV3JhcHBlcix7Y2xhc3NOYW1lOk5lLnJvb3R9LGwuY3JlYXRlRWxlbWVudChaLlBpY2tlcix7Y2xhc3NOYW1lOk5lLnNlbGVjdG9yLCJkYXRhLXFhLWlkIjoib3B0aW9uLWNoYWluLXBpY2tlciIsZ3JvdXBzOmIsbW9kZToic2luZ2xlLXNlbGVjdCIsb25TZWxlY3Q6Xyx2YWx1ZXM6eX0pLCJsb2FkaW5nIj09PXYuc3RhdGU/bC5jcmVhdGVFbGVtZW50KEguT3B0aW9uc0NoYWluU2tlbGV0b24se2NlbnRyYWxDb2xzQ291bnQ6MSxjbGFzc05hbWU6TmUuY2hhaW4sc2lkZUNvbHNDb3VudDoxfSk6ImVycm9yIj09PXYuc3RhdGU/bC5jcmVhdGVFbGVtZW50KG9lLkVtcHR5U3RhdGVCbG9jayx7Y2xhc3NOYW1lOnMoKShOZS5lbXB0eSxOZS5jaGFpbiksaWNvbkNsYXNzOk5lLmVtcHR5U3RhdGVJY29uLHRleHQ6JC50KG51bGwsdm9pZCAwLG4oMzM1NjczKSksdGl0bGU6JC50KG51bGwsdm9pZCAwLG4oMjg1MTMxKSl9KTpsLmNyZWF0ZUVsZW1lbnQoQWUse2RhdGE6di5kYXRhLG9uU2VsZWN0Om99KSl9ZnVuY3Rpb24gQWUoZSl7Y29uc3R7ZGF0YTp0LG9uU2VsZWN0Om59PWUscj0oMCxsLnVzZVJlZikobnVsbCksbz0oMCxsLnVzZVJlZikobnVsbCksYT0oMCxsLnVzZUNhbGxiYWNrKSgoZT0+eygwLGouc2Nyb2xsVG9Sb3cpKGUsci5jdXJyZW50KX0pLFtyXSk7KDAsei51c2VJc29tb3JwaGljTGF5b3V0RWZmZWN0KSgoKCk9Pnt0LmluaXRpYWxTY3JvbGxQb3NpdGlvbkNlbGxJZCYmYSh0LmluaXRpYWxTY3JvbGxQb3NpdGlvbkNlbGxJZCl9KSxbdCxhXSk7Y29uc3Qgcz0oMCxsLnVzZU1lbW8pKCgoKT0+W3tncm91cElkOnQuc2VyaWVzSWQscm93czp0LnJvd3MubWFwKChlPT4oe2NhbGxJZDplLmNhbGxJZCxwdXRJZDplLnB1dElkfSkpKX1dKSxbdF0pLHtoYW5kbGVUYWJsZUtleURvd246aSxuYXZpZ2F0ZWRJZDpjLHRhYmxlVGFiSW5kZXg6dX09KDAsSy51c2VLZXlib2FyZE5hdmlnYXRpb24pKG8sdC5pbml0aWFsTmF2aWdhdGVkQ2VsbElkLHMsYSxudWxsKTsoMCxsLnVzZUVmZmVjdCkoKCgpPT5vLmN1cnJlbnQ/LmZvY3VzKCkpLFtdKTtjb25zdCBkPSgwLGwudXNlQ2FsbGJhY2spKChlPT57aWYoZS5kZWZhdWx0UHJldmVudGVkKXJldHVybjtjb25zdCB0PWUuY3VycmVudFRhcmdldC5kYXRhc2V0LmNlbGxJZDt0JiZuKHQpfSksW25dKTtyZXR1cm4gbC5jcmVhdGVFbGVtZW50KHEuT3B0aW9uc0NoYWluLHtjbGFzc05hbWU6TmUuY2hhaW4sY29sc0RhdGE6dC5jb2xzRGF0YSxvblRhYmxlS2V5RG93bjppLHNjcm9sbENvbnRhaW5lclJlZjpyLHRhYmxlUmVmOm8sdGFibGVUYWJJbmRleDp1fSxsLmNyZWF0ZUVsZW1lbnQoInRib2R5IixudWxsLHQucm93cy5mbGF0TWFwKCgoZSxuKT0+W2wuY3JlYXRlRWxlbWVudChZLk9wdGlvbnNDaGFpbk9wdGlvblJvdyx7Y2FsbENvbG9yOmUuY2FsbFBhcnRDb2xvcixjYWxsTmF2aWdhdGVkOmUuY2FsbElkPT09YyxjYWxsU2VsZWN0ZWQ6ZS5jYWxsSWQ9PT10LnNlbGVjdGVkQ2VsbElkLGNvbHNEYXRhOnQuY29sc0RhdGEsa2V5OmUuc3RyaWtlLG9uQ2VsbENsaWNrOmQscHV0Q29sb3I6ZS5wdXRQYXJ0Q29sb3IscHV0TmF2aWdhdGVkOmUucHV0SWQ9PT1jLApwdXRTZWxlY3RlZDplLnB1dElkPT09dC5zZWxlY3RlZENlbGxJZCxyb3dEYXRhOmV9KSxuPT09dC51bmRlcmx5aW5nSW5kZXgmJnQudW5kZXJseWluZ1Jvd10pKSkpfXZhciBMZT1uKDIwOTYwKTtmdW5jdGlvbiBrZShlKXtjb25zdHtzeW1ib2w6dCxvblNlbGVjdDpuLGluaXRpYWxPcHRpb246cn09ZSx7cXVvdGVzOm8sY29tcGxldGVkOmF9PSgwLEIudXNlU3ltYm9sUXVvdGVzKSh0LCEwKSxzPSgwLEcudXNlR2V0U2VyaWVzKShvPy5bIm9wdGlvbnMtaW5mbyJdPy5mYW1pbGllcz8/W10pLGk9bz8ubGFzdF9wcmljZT8/MCxjPW8/LnByaWNlc2NhbGU/P251bGw7cmV0dXJuIGE/MD09PXMubGVuZ3RoP2wuY3JlYXRlRWxlbWVudChVLkVtcHR5U3ltYm9sUXVvdGVzLHtjbGFzc05hbWU6TGUuZW1wdHksc3ltYm9sOnR9KTpsLmNyZWF0ZUVsZW1lbnQoVi5PcHRpb25zU291cmNlVHJhY2tFdmVudFByb3ZpZGVyLHtzb3VyY2U6Ri5PcHRpb25zVHJhY2tlci5Tb3VyY2UuU3ltYm9sU2VhcmNofSxsLmNyZWF0ZUVsZW1lbnQoUmUse2N1cnJlbnRQcmljZTppLGluaXRpYWxPcHRpb246cixvblNlbGVjdDpuLHByaWNlc2NhbGU6YyxzY2FubmVyTGFiZWw6Im9wdGlvbnMtc3ltYm9sLXNlYXJjaCIsc2VyaWVzOnN9KSk6bC5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6TGUucm9vdH0sbC5jcmVhdGVFbGVtZW50KFcuUGlja2VyU2tlbGV0b24se2NsYXNzTmFtZTpMZS5zZWxlY3Rvcn0pLGwuY3JlYXRlRWxlbWVudChILk9wdGlvbnNDaGFpblNrZWxldG9uLHtjbGFzc05hbWU6TGUuY2hhaW4sc2lkZUNvbHNDb3VudDoxLGNlbnRyYWxDb2xzQ291bnQ6MX0pKX1uKDEzODk5NCksbig5MjY5OTUpO3ZhciBPZT1uKDQwOTY0MCk7ZnVuY3Rpb24gTWUoZSl7Y29uc3QgdD0oMCxmZS5zcGxpdFN5bWJvbE5hbWUpKGUuc3ltYm9sKVsxXTtyZXR1cm4gbC5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOk9lLnRpdGxlfSxjLnQobnVsbCx7cmVwbGFjZTp7c3ltYm9sTmFtZTp0fX0sbig5MDE1MjcpKSwhMSl9dmFyIERlPW4oNzMyNTMzKSxQZT1uKDczNDY0MSksRmU9big2MDk1MjgpLEJlPW4oOTY0MzYxKSxIZT1uKDI3MzMxMCksVWU9big4MDk0MzYpLFdlPW4oNzE3OTMyKSxWZT1uKDU2MTIwNSksR2U9bigzNjY1OTcpLFFlPW4oOTI2MTUzKSx6ZT1uKDE4NzMzOSksJGU9big3MTcyNjMpLHFlPW4oOTc3Njk5KTtmdW5jdGlvbiBLZShlKXtjb25zdHtjbGFzc05hbWU6dCxjaGlsZHJlbjpuLC4uLnJ9PWU7cmV0dXJuIGwuY3JlYXRlRWxlbWVudCgiZGl2Iix7Li4ucixjbGFzc05hbWU6cygpKHFlLnRpdGxlLHQpfSxuKX12YXIgWWU9bigxMzY2MyksWGU9big5NDkzNzQpLGplPW4oMjAxNDQ0KSxaZT1uKDkyMzIzOSksSmU9big5MjE3MDgpLGV0PW4oNDA3OTQ3KTtmdW5jdGlvbiB0dChlKXtjb25zdHtzZWFyY2hTb3VyY2U6dCxvbkNsaWNrOm4scXVlcnlTdHJpbmc6cixpc0ZvY3VzZWQ6byxpZDphfT1lLHtzeW1ib2xTZWFyY2hDb250ZW50OmksaXNBbGxTZWFyY2hTb3VyY2VzU2VsZWN0ZWQ6YyxhbGxTZWFyY2hTb3VyY2VzVGl0bGU6dSxpc01vYmlsZTpkfT0oMCxZZS51c2VFbnN1cmVkQ29udGV4dCkoVmUuU3ltYm9sU2VhcmNoSXRlbXNEaWFsb2dDb250ZXh0KSxwPWkuY3VycmVudFNlbGVjdGVkU2VhcmNoU291cmNlLGg9KDAsdy5lbnN1cmVOb3ROdWxsKShwKS52YWx1ZSgpLGY9Yyh0KSxTPWg/dC52YWx1ZSgpPT09aDpmLGc9KDAsbC51c2VNZW1vKSgoKCk9PigwLGplLmNyZWF0ZVJlZ0V4cExpc3QpKHIpKSxbcl0pLHk9dC5kZXNjcmlwdGlvbigpLGI9eSYmIWYsdj1tLmlzU2VwYXJhdGVTeW1ib2xTZWFyY2hUYWJzJiZmJiZ1P3U6dC5uYW1lKCksXz1zKCkoZXQuY29udGFpbmVyLGQ/ZXQubW9iaWxlOmV0LmRlc2t0b3AsUyYmZXQuc2VsZWN0ZWQsbyYmZXQuZm9jdXNlZCxmJiZldC5hbGxTZWxlY3RlZCxmJiYhMSwhZiYmZCYmZXQuYm9yZGVyZWQpO3JldHVybiBsLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpzKCkoIWQmJmV0LndyYXAsZiYmITEpLG9uQ2xpY2s6bixpZDphfSxsLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpffSxsLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpldC5pY29uV3JhcH0sZj9sLmNyZWF0ZUVsZW1lbnQoSGUuSWNvbix7Y2xhc3NOYW1lOnMoKShldC5pY29uLGV0LmFsbFNlbGVjdGVkSWNvbiksaWNvbjpKZX0pOmwuY3JlYXRlRWxlbWVudChaZS5TeW1ib2xTZWFyY2hGbGFnLHtjbGFzc05hbWU6ZXQuaWNvbixjb3VudHJ5OnQuY291bnRyeSgpLHByb3ZpZGVySWQ6dC5wcm92aWRlcklkKCksc291cmNlSWQ6dC5zb3VyY2VJZCgpfSkpLGwuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOmV0LnRleHRCbG9ja30sbC5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6cygpKGV0LnRpdGxlLCFiJiYhZCYmZXQudGl0bGVXaXRob3V0RGVzYyl9LGwuY3JlYXRlRWxlbWVudChYZS5IaWdobGlnaHRlZFRleHQse2NsYXNzTmFtZTpzKCkoUyYmZXQuaGlnaGxpZ2h0ZWQpLHF1ZXJ5U3RyaW5nOnIsdGV4dDp2LHJ1bGVzOmd9KSksYiYmbC5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6cygpKGV0LmRlc2NyaXB0aW9uLCJhcHBseS1vdmVyZmxvdy10b29sdGlwIil9LGwuY3JlYXRlRWxlbWVudChYZS5IaWdobGlnaHRlZFRleHQse2NsYXNzTmFtZTpldC5oaWdobGlnaHRlZCxxdWVyeVN0cmluZzpyLHJ1bGVzOmcsdGV4dDp5fSkpKSkpfXZhciBudD1uKDEwNjkwMCkscnQ9bigyMDA2NjYpLG90PW4oODEwNDEpLGx0PW4oNTA0MDcpLGF0PW4oMTQwODk1KSxzdD1uKDQ4Nzc1MCksaXQ9big2NTk4ODQpO2NvbnN0IGN0PXtlbXB0eVRleHRDbGFzc05hbWU6aXQuZW1wdHlUZXh0fTtmdW5jdGlvbiB1dChlKXtjb25zdHtzZWFyY2hTb3VyY2VzOnR9PWUse3NldFNlbGVjdGVkSW5kZXg6cixzZXRTZWxlY3RlZFNlYXJjaFNvdXJjZTpvLHNldE1vZGU6YSxpc01vYmlsZTppLGVtcHR5U3RhdGU6dSxhdXRvZm9jdXM6ZH09KDAsWWUudXNlRW5zdXJlZENvbnRleHQpKFZlLlN5bWJvbFNlYXJjaEl0ZW1zRGlhbG9nQ29udGV4dCkscD0oMCwKbnQudXNlV2F0Y2hlZFZhbHVlUmVhZG9ubHkpKHt3YXRjaGVkVmFsdWU6cnQud2F0Y2hlZFRoZW1lfSk9PT1vdC5TdGRUaGVtZS5EYXJrP2F0OnN0LGg9KDAsV2UudXNlTWF0Y2hNZWRpYSkoVWVbIm1lZGlhLXBob25lLXZlcnRpY2FsIl0pLFtmLFNdPSgwLGwudXNlU3RhdGUpKCIiKSxnPSgwLGwudXNlTWVtbykoKCgpPT57cmV0dXJuWy4uLigwLHplLnNwbGl0U2VhcmNoU291cmNlc0J5R3JvdXApKHQpLmVudHJpZXMoKV0ubWFwKCgoW2UsdF0pPT4oe2dyb3VwOmUsc291cmNlczooMCxtLmNyZWF0ZUdyb3VwQ29sdW1ucykoKDAsemUuZmlsdGVyU2VhcmNoU291cmNlcykodCxmKSxoPzE6Mil9KSkpfSksW3QsZixoXSkseT0oMCxsLnVzZU1lbW8pKCgoKT0+KDAseC5nZXRFeGNoYW5nZXNHcm91cE5hbWUpKCkpLFtdKSxiPSgwLGwudXNlUmVmKShudWxsKSx2PSgwLGwudXNlUmVmKShudWxsKSx7Zm9jdXNlZEl0ZW06XyxhY3RpdmVEZXNjZW5kYW50OkUsaGFuZGxlS2V5RG93bjpDLHJlc2V0Rm9jdXNlZEl0ZW06VH09KDAsUWUudXNlU291cmNlc0tleWJvYXJkTmF2aWdhdGlvbikoZyxoLHYpOygwLGwudXNlTGF5b3V0RWZmZWN0KSgoKCk9PntkJiZiPy5jdXJyZW50Py5mb2N1cygpfSksW10pO2NvbnN0IEk9dT9sLmNyZWF0ZUVsZW1lbnQodSxudWxsKTpsLmNyZWF0ZUVsZW1lbnQoJGUuU3ltYm9sU2VhcmNoTm9SZXN1bHQse2NsYXNzTmFtZTppdC5ub1Jlc3VsdHNEZXNrdG9wfSxsLmNyZWF0ZUVsZW1lbnQoSGUuSWNvbix7aWNvbjpwLGNsYXNzTmFtZTppdC5lbXB0eUljb259KSxsLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTppdC5lbXB0eVRleHR9LGMudChudWxsLHZvaWQgMCxuKDQ3MjI5OSkpKSksdz0hKGcubGVuZ3RoJiZnLmV2ZXJ5KChlPT4wPT09ZS5zb3VyY2VzLmxlbmd0aCkpKTtyZXR1cm4gbC5jcmVhdGVFbGVtZW50KGx0LlN5bWJvbFNlYXJjaERpYWxvZ0JvZHlDb250ZXh0LlByb3ZpZGVyLHt2YWx1ZTpjdH0sbC5jcmVhdGVFbGVtZW50KEdlLkRpYWxvZ1NlYXJjaCx7cGxhY2Vob2xkZXI6Yy50KG51bGwsdm9pZCAwLG4oMzUyMTI3KSksb25DaGFuZ2U6ZnVuY3Rpb24oZSl7VCgpLFMoZS50YXJnZXQudmFsdWUpLHYmJnYuY3VycmVudCYmKHYuY3VycmVudC5zY3JvbGxUb3A9MCl9LHJlZmVyZW5jZTpiLG9uS2V5RG93bjpDLG9uQmx1cjpULCJhcmlhLWFjdGl2ZWRlc2NlbmRhbnQiOkV9KSx3P2wuY3JlYXRlRWxlbWVudCgiZGl2Iix7cmVmOnYsY2xhc3NOYW1lOnMoKShpdC5jb250ZW50TGlzdCwhaSYmaXQuY29udGVudExpc3REZXNrdG9wKSxvblRvdWNoU3RhcnQ6ZnVuY3Rpb24oKXtiLmN1cnJlbnQ/LmJsdXIoKX19LGcubWFwKCgoZSx0KT0+e2NvbnN0e2dyb3VwOm4sc291cmNlczpyfT1lO3JldHVybiAwPT09ci5sZW5ndGg/bC5jcmVhdGVFbGVtZW50KGwuRnJhZ21lbnQse2tleTpufSk6bC5jcmVhdGVFbGVtZW50KGwuRnJhZ21lbnQse2tleTpufSxuJiZuIT09eC5FeGNoYW5nZUdyb3VwLkFsbEV4Y2hhbmdlcyYmbC5jcmVhdGVFbGVtZW50KEtlLHtjbGFzc05hbWU6cygpKCFpJiZpdC5ncm91cFRpdGxlRGVza3RvcCl9LHlbbl0pLGwuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOnMoKShpdC5zZWFyY2hTb3VyY2VJdGVtc0NvbnRhaW5lciwhaSYmaXQuc2VhcmNoU291cmNlSXRlbXNDb250YWluZXJEZXNrdG9wLGgmJml0Lm9uZUNvbHVtbil9LHIubWFwKCgoZSxuKT0+bC5jcmVhdGVFbGVtZW50KCJkaXYiLHtrZXk6YCR7dH0tJHtufWAsY2xhc3NOYW1lOml0LmNvbHVtbn0sZS5tYXAoKChlLHIpPT5sLmNyZWF0ZUVsZW1lbnQodHQse2lkOigwLFFlLmNyZWF0ZUl0ZW1JZCkodCxuLHIpLGlzRm9jdXNlZDohIV8mJihfLmdyb3VwSW5kZXg9PT10JiZfLmNvbD09PW4mJl8ucm93PT09ciksa2V5OmUudmFsdWUoKSxzZWFyY2hTb3VyY2U6ZSxxdWVyeVN0cmluZzpmLG9uQ2xpY2s6Ti5iaW5kKG51bGwsZSl9KSkpKSkpKSl9KSkpOkkpO2Z1bmN0aW9uIE4oZSl7byhlKSxhKCJzeW1ib2xTZWFyY2giKSxyKC0xKX19dmFyIGR0PW4oMTI5MzY1KSxtdD1uKDMxMjI5NSkscHQ9big0NzUxNjQpO2xldCBodDt2YXIgZnQ9bigyMzU3MjQpLFN0PW4oODA5NDQ0KSxndD1uKDc0OTY5NykseXQ9big5ODc2ODMpLGJ0PW4oMTU3NjgxKSx2dD1uKDMwMzIzOCksX3Q9big5ODk4OTQpLEV0PW4oNDA4NjIwKTtmdW5jdGlvbiBDdChlKXtjb25zdHtzdGF0ZTp0LHVwZGF0ZTpyLGNsYXNzTmFtZTpvfT1lLHtzZWFyY2hSZWY6YSxmb3JjZVVwZGF0ZTp1LHVwcGVyQ2FzZUVuYWJsZWQ6bX09KDAsdy5lbnN1cmVOb3ROdWxsKSgoMCxsLnVzZUNvbnRleHQpKFZlLlN5bWJvbFNlYXJjaEl0ZW1zRGlhbG9nQ29udGV4dCkpLGY9KDAsZC50b2tlbml6ZSkoYS5jdXJyZW50Py52YWx1ZSksUz1mdW5jdGlvbihlKXtjb25zdCB0PXticmFjZUJhbGFuY2U6MCxjdXJyZW50U3RhdGU6InZhciIsd2FybmluZ3M6W10sZXJyb3JzOltdfTtsZXQgbj0iaW5pdCI7Y29uc3Qgcj1bXTtmb3IobGV0IG89MDtvPGUubGVuZ3RoO28rKyl7Y29uc3QgbD1lW29dO2lmKCJ3aGl0ZXNwYWNlIiE9PWwudHlwZSl7aWYoImluY29tcGxldGVTeW1ib2wiPT09bC50eXBlfHwiaW5jb21wbGV0ZU51bWJlciI9PT1sLnR5cGUpe2NvbnN0IG49byE9PWUubGVuZ3RoLTEscj17c3RhdHVzOm4/ImVycm9yIjoiaW5jb21wbGV0ZSIscmVhc29uOiJpbmNvbXBsZXRlX3Rva2VuIixvZmZzZXQ6bC5vZmZzZXQsdG9rZW46bH07aWYobj90LmVycm9ycy5wdXNoKHIpOnQud2FybmluZ3MucHVzaChyKSxuKWNvbnRpbnVlfXN3aXRjaChsLnR5cGUpe2Nhc2Uic3ltYm9sIjpjYXNlIm51bWJlciI6aWYoInZhciI9PT1uKXt0LmVycm9ycy5wdXNoKHtzdGF0dXM6ImVycm9yIixyZWFzb246InVuZXhwZWN0ZWRfdG9rZW4iLG9mZnNldDpsLm9mZnNldCx0b2tlbjpsfSk7Y29udGludWV9bj0idmFyIjticmVhaztjYXNlInBsdXMiOmNhc2UibWludXMiOmNhc2UibXVsdGlwbHkiOmNhc2UiZGl2aWRlIjpjYXNlInBvd2VyIjppZigidmFyIiE9PW4pe3QuZXJyb3JzLnB1c2goe3N0YXR1czoiZXJyb3IiLHJlYXNvbjoidW5leHBlY3RlZF90b2tlbiIsCm9mZnNldDpsLm9mZnNldCx0b2tlbjpsfSk7Y29udGludWV9bj0ib3BlcmF0b3IiO2JyZWFrO2Nhc2Uib3BlbkJyYWNlIjppZigidmFyIj09PW4pe3QuZXJyb3JzLnB1c2goe3N0YXR1czoiZXJyb3IiLHJlYXNvbjoidW5leHBlY3RlZF90b2tlbiIsb2Zmc2V0Omwub2Zmc2V0LHRva2VuOmx9KTtjb250aW51ZX1yLnB1c2gobCksbj0iaW5pdCI7YnJlYWs7Y2FzZSJjbG9zZUJyYWNlIjppZigidmFyIiE9PW4pe3QuZXJyb3JzLnB1c2goe3N0YXR1czoiZXJyb3IiLHJlYXNvbjoidW5leHBlY3RlZF90b2tlbiIsb2Zmc2V0Omwub2Zmc2V0LHRva2VuOmx9KTtjb250aW51ZX1yLnBvcCgpfHx0LmVycm9ycy5wdXNoKHtzdGF0dXM6ImVycm9yIixyZWFzb246InVuYmFsYW5jZWRfYnJhY2UiLG9mZnNldDpsLm9mZnNldCx0b2tlbjpsfSksbj0idmFyIjticmVhaztjYXNlInVucGFyc2VkIjp0LmVycm9ycy5wdXNoKHtzdGF0dXM6ImVycm9yIixyZWFzb246InVucGFyc2VkX2VudGl0eSIsb2Zmc2V0Omwub2Zmc2V0LHRva2VuOmx9KX19fWZvcih0LmJyYWNlQmFsYW5jZT1yLmxlbmd0aCwidmFyIiE9PW4mJnQud2FybmluZ3MucHVzaCh7c3RhdHVzOiJpbmNvbXBsZXRlIix0b2tlbjplW2UubGVuZ3RoLTFdfSk7ci5sZW5ndGg7KXtjb25zdCBlPXIucG9wKCk7ZSYmdC53YXJuaW5ncy5wdXNoKHtzdGF0dXM6ImluY29tcGxldGUiLHJlYXNvbjoidW5iYWxhbmNlZF9icmFjZSIsb2Zmc2V0OmUub2Zmc2V0LHRva2VuOmV9KX1yZXR1cm4gdC5jdXJyZW50U3RhdGU9bix0fShmKTtsZXQgeT1be2ljb246U3QsaW5zZXJ0OiIvIix0eXBlOiJiaW5hcnlPcCIsbmFtZToiZGl2aXNpb24iLHRpdGxlOmMudChudWxsLHtjb250ZXh0OiJzcHJlYWRzX2FjdGlvbnMifSxuKDMzODAwKSl9LHtpY29uOmd0LGluc2VydDoiLSIsdHlwZToiYmluYXJ5T3AiLG5hbWU6InN1YnRyYWN0aW9uIix0aXRsZTpjLnQobnVsbCx7Y29udGV4dDoic3ByZWFkc19hY3Rpb25zIn0sbig5MDUyOTkpKX0se2ljb246eXQsaW5zZXJ0OiIrIix0eXBlOiJiaW5hcnlPcCIsbmFtZToiYWRkaXRpb24iLHRpdGxlOmMudChudWxsLHtjb250ZXh0OiJzcHJlYWRzX2FjdGlvbnMifSxuKDk2MjMxOCkpfSx7aWNvbjpidCxpbnNlcnQ6IioiLHR5cGU6ImJpbmFyeU9wIixuYW1lOiJtdWx0aXBsaWNhdGlvbiIsdGl0bGU6Yy50KG51bGwse2NvbnRleHQ6InNwcmVhZHNfYWN0aW9ucyJ9LG4oNDg0ODc1KSl9XTtyZXR1cm4oMCxpLmlzRmVhdHVyZXNldEVuYWJsZWQpKCJoaWRlX2V4cG9uZW50aWF0aW9uX3NwcmVhZF9vcGVyYXRvciIpfHwoeT15LmNvbmNhdChbe2ljb246dnQsaW5zZXJ0OiJeIix0eXBlOiJiaW5hcnlPcCIsbmFtZToiZXhwb25lbnRpYXRpb24iLHRpdGxlOmMudChudWxsLHtjb250ZXh0OiJzcHJlYWRzX2FjdGlvbnMifSxuKDkyMzAyMSkpfV0pKSwoMCxpLmlzRmVhdHVyZXNldEVuYWJsZWQpKCJoaWRlX3JlY2lwcm9jYWxfc3ByZWFkX29wZXJhdG9yIil8fCh5PXkuY29uY2F0KFt7aWNvbjpfdCx0eXBlOiJjb21wbGV0ZSIsbmFtZToicmVjaXByb2NhbCIsdGl0bGU6Yy50KG51bGwse2NvbnRleHQ6InNwcmVhZHNfYWN0aW9ucyJ9LG4oODUzMzQ5KSksY2FsbGJhY2s6KCk9PnshYS5jdXJyZW50fHxTLmVycm9ycy5sZW5ndGh8fFMud2FybmluZ3MubGVuZ3RofHwoYS5jdXJyZW50LnZhbHVlPWgocChmKSksdSgpKX19XSkpLGwuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOnMoKShFdC5hY3Rpb25zLG8pfSx5Lm1hcCgoZT0+bC5jcmVhdGVFbGVtZW50KG10Lkljb25CdXR0b24se2tleTplLm5hbWUsY29sb3JDbGFzc05hbWU6cygpKEV0LmFjdGlvbixUdChlLFMpJiZFdC5kaXNhYmxlZCksdGl0bGU6ZS50aXRsZSxpY29uOmUuaWNvbixvbkNsaWNrOigpPT5mdW5jdGlvbihlKXtpZighVHQoZSxTKSl7aWYoZS5pbnNlcnQmJmEuY3VycmVudCl7Y29uc3Qgbj1hLmN1cnJlbnQudmFsdWUrZS5pbnNlcnQ7YS5jdXJyZW50LnZhbHVlPW4sYS5jdXJyZW50LnNldFNlbGVjdGlvblJhbmdlKG4ubGVuZ3RoLG4ubGVuZ3RoKTtjb25zdFtvLCxsXT1nKGEuY3VycmVudCxtKTt0LmN1cnJlbnQmJih0LmN1cnJlbnQuc2VsZWN0ZWRJbmRleFZhbHVlPS0xLHQuY3VycmVudC5zZWFyY2hTcHJlYWRzVmFsdWU9KDAsZC5pc1NwcmVhZCkobCksdC5jdXJyZW50LnNlYXJjaFRva2VuVmFsdWU9byksdSgpLHIoKX1lLmNhbGxiYWNrJiZlLmNhbGxiYWNrKCksYS5jdXJyZW50Py5mb2N1cygpLCgwLFAudHJhY2tFdmVudCkoIkdVSSIsIlNTIixlLm5hbWUpfX0oZSl9KSkpKX1mdW5jdGlvbiBUdChlLHQpe2xldCBuPSExO2lmKCF0LmVycm9ycy5sZW5ndGgpc3dpdGNoKGUudHlwZSl7Y2FzZSJiaW5hcnlPcCI6bj0idmFyIj09PXQuY3VycmVudFN0YXRlO2JyZWFrO2Nhc2Uib3BlbkJyYWNlIjpuPSJ2YXIiIT09dC5jdXJyZW50U3RhdGU7YnJlYWs7Y2FzZSJjbG9zZUJyYWNlIjpuPSJ2YXIiPT09dC5jdXJyZW50U3RhdGUmJnQuYnJhY2VCYWxhbmNlPjA7YnJlYWs7Y2FzZSJjb21wbGV0ZSI6bj0hdC5lcnJvcnMubGVuZ3RoJiYhdC53YXJuaW5ncy5sZW5ndGh9cmV0dXJuIW59ZnVuY3Rpb24geHQoZSl7Y29uc3QgdD1lPy5icm9rZXI/P251bGwsbj1lPy5hY2NvdW50TWV0YWluZm8sW3Isb109KDAsbC51c2VTdGF0ZSkobnVsbCksW2Esc109KDAsbC51c2VTdGF0ZSkoKCgpPT5iLmdldEJvb2woInN5bWJvbGVkaXQuYWNjb3VudFRyYWRhYmxlIiwhMCkpKSxpPWZ1bmN0aW9uKGUpe3JldHVybiBCb29sZWFuKGU/Lm1ldGFpbmZvKCkuY29uZmlnRmxhZ3Muc3VwcG9ydEN1c3RvbVN5bWJvbFNlYXJjaEZpbHRlcil9KHQpLGM9cj8uc3ltYm9sU2VhcmNoRmlsdGVyUGFyYW1zPy50aXRsZSx1PXI/LnN5bWJvbFNlYXJjaEZpbHRlclBhcmFtcz8udG9vbHRpcFRleHQsZD0oMCxsLnVzZU1lbW8pKCgoKT0+ZnVuY3Rpb24oZSl7aWYoZSlyZXR1cm57bG9nb01pbmlVcmw6ZS5tZXRhaW5mbygpLmxvZ29NaW5pVXJsLGxvZ29NaW5pQmxhY2tVcmw6ZS5tZXRhaW5mbygpLmxvZ29NaW5pQmxhY2tVcmx9O3JldHVybn0odCkpLFt0XSk7cmV0dXJuKDAsbC51c2VFZmZlY3QpKCgoKT0+ewpiLnNldFZhbHVlKCJzeW1ib2xlZGl0LmFjY291bnRUcmFkYWJsZSIsYSl9KSxbYV0pLCgwLGwudXNlRWZmZWN0KSgoKCk9PntpZighbnx8IWkpcmV0dXJuIHZvaWQgbyhudWxsKTtjb25zdCBlPW5ldyBBYm9ydENvbnRyb2xsZXI7cmV0dXJuKDAsUS5yZXNwZWN0QWJvcnQpKGUuc2lnbmFsLG4oKSkudGhlbigodD0+ZS5zaWduYWwuYWJvcnRlZD9udWxsOihvKHQpLHQpKSkuY2F0Y2goKHQ9PigoMCxRLmlzQWJvcnRFcnJvcikodCl8fGUuc2lnbmFsLmFib3J0ZWR8fG8obnVsbCksbnVsbCkpKSwoKT0+ZS5hYm9ydCgpfSksW24saV0pLHthY2NvdW50RmlsdGVyVGl0bGU6YyxhY2NvdW50RmlsdGVyVG9vbHRpcFRleHQ6dSxhY2NvdW50RmlsdGVyTG9nb0luZm86ZCxpc0FjY291bnRGaWx0ZXJDaGVja2VkOmEsc2V0SXNBY2NvdW50RmlsdGVyQ2hlY2tlZDpzLGlzU3VwcG9ydEFjY291bnRGaWx0ZXI6aX19dmFyIEl0PW4oNjE2NjQzKSx3dD1uKDg1NDgyMCk7ZnVuY3Rpb24gTnQoZSl7Y29uc3QgdD0oMCxmdC5oYXNoRnJvbUV2ZW50KShlKTt0IT09OStmdC5Nb2RpZmllcnMuU2hpZnQmJjkhPT10JiZlLnN0b3BQcm9wYWdhdGlvbigpfWZ1bmN0aW9uIFJ0KGUpe2NvbnN0IHQ9KDAsSXQudXNlVGhlbWUpKCkse3RleHQ6bix0b29sdGlwVGV4dDpyLGlzQWN0aXZlOm8sb25Ub2dnbGU6YSxsb2dvSW5mbzpzfT1lO3JldHVybiBsLmNyZWF0ZUVsZW1lbnQod3QuTGlnaHRCdXR0b24se2NsYXNzTmFtZToiYXBwbHktY29tbW9uLXRvb2x0aXAiLHZhcmlhbnQ6bz8icHJpbWFyeSI6InNlY29uZGFyeSIsc2l6ZToieHNtYWxsIixpc1BpbGxzOm8sb25DbGljazooKT0+YSghbyksb25LZXlEb3duOk50LHRpdGxlOnIsc3RhcnRTbG90OmwuY3JlYXRlRWxlbWVudChIZS5JY29uLHtpY29uOnM/YDxpbWcgd2lkdGg9IjE4IiBoZWlnaHQ9IjE4IiBzcmM9IiR7dD09PW90LlN0ZFRoZW1lLkRhcmsmJnMubG9nb01pbmlCbGFja1VybD9zLmxvZ29NaW5pQmxhY2tVcmw6cy5sb2dvTWluaVVybH0iIGFsdD0iIi8+YDp2b2lkIDB9KSwiYXJpYS1jaGVja2VkIjpvfSxuKX12YXIgQXQ9bigxNTM1ODIpLEx0PW4oNzIwNjc3KSxrdD1uKDY0MTkwKSxPdD1uKDIwMTk2MSksTXQ9big2NjQzODYpLER0PW4oNDkwNTgwKSxQdD1uKDczODQ1OCksRnQ9bigzNDQ4NzApLEJ0PW4oNjc0NzQ5KSxIdD1uKDk4NzUyKTtjb25zdCBVdD0oMCxtLmdldERlZmF1bHRTZWFyY2hTb3VyY2UpKCksV3Q9Yy50KG51bGwse2NvbnRleHQ6InB1bmN0dWF0aW9uRnVsbFN0b3AifSxuKDE2MTcwOCkpO2Z1bmN0aW9uIFZ0KGUpe2NvbnN0e290aGVyU3ltYm9sc0NvdW50OnQsb25DbGljazpyLHRva2VuOm99PWUse2lzQWxsU2VhcmNoU291cmNlc1NlbGVjdGVkOmEsc3ltYm9sU2VhcmNoQ29udGVudDppLHN5bWJvbFR5cGVzOnUsZW1wdHlTdGF0ZTpkLHNldFNlbGVjdGVkU2VhcmNoU291cmNlOnAsc2V0U2VsZWN0ZWRGaWx0ZXJWYWx1ZXM6aCxzZWxlY3RlZEZpbHRlclZhbHVlczpmfT0oMCxZZS51c2VFbnN1cmVkQ29udGV4dCkoVmUuU3ltYm9sU2VhcmNoSXRlbXNEaWFsb2dDb250ZXh0KSxTPWkuY3VycmVudFNlbGVjdGVkU2VhcmNoU291cmNlLHtzeW1ib2xTZWFyY2hTdGF0ZTpnfT0oMCxZZS51c2VFbnN1cmVkQ29udGV4dCkobHQuU3ltYm9sU2VhcmNoRGlhbG9nQm9keUNvbnRleHQpLHk9dS5maW5kKChlPT5lLnZhbHVlPT09aS5jdXJyZW50U3ltYm9sVHlwZSkpPy5uYW1lLGI9ZD8/JGUuU3ltYm9sU2VhcmNoTm9SZXN1bHQsdj1TJiYhYShTKSxfPWZ1bmN0aW9uKCl7aWYoIW0uaXNTZXBhcmF0ZVN5bWJvbFNlYXJjaFRhYnMpcmV0dXJuIGMudChudWxsLHtwbHVyYWw6InttYXRjaGluZ0NvdW50fSBtYXRjaGluZyBzeW1ib2xzIGZvdW5kIHdpdGggb3RoZXIgZmlsdGVycyIsY291bnQ6dH0sbigxMDEyMjgpKS5mb3JtYXQoe21hdGNoaW5nQ291bnQ6YDxzcGFuIGNsYXNzPSIke0h0LmJvbGR9Ij4ke3QudG9TdHJpbmcoKX08L3NwYW4+YH0pO2lmKCJyZXNldEZpbHRlciI9PT1nKXJldHVybiBjLnQobnVsbCx7cGx1cmFsOiJUaGVyZSBhcmUgYWxzbyB7Y291bnR9IHN5bWJvbHMgaW4gb3RoZXIgbWFya2V0cyIsY291bnQ6dCxyZXBsYWNlOntjb3VudDp0LnRvU3RyaW5nKCl9fSxuKDQzODc3NSkpO3JldHVybiBjLnQobnVsbCx2b2lkIDAsbig5NzIxNzMpKS5mb3JtYXQoe3N5bWJvbFR5cGU6YDxzcGFuIGNsYXNzPSIke0h0LmJvbGR9Ij4ke3l8fCIifTwvc3Bhbj5gfSl9KCk7cmV0dXJuIGwuY3JlYXRlRWxlbWVudChiLHtjbGFzc05hbWU6SHQubm9SZXN1bHRzRGVza3RvcH0sbC5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6cygpKEh0Lm90aGVyU3ltYm9scyxtLmlzU2VwYXJhdGVTeW1ib2xTZWFyY2hUYWJzJiZIdC5uZXdTdHlsZXMpfSxmdW5jdGlvbigpe2lmKGkuY3VycmVudFN5bWJvbFR5cGUhPT0oMCxtLmdldEFsbFN5bWJvbFR5cGVzVmFsdWUpKCkpe2NvbnN0IGU9YDxzcGFuIGNsYXNzPSIke0h0LmJvbGR9Ij4ke3l8fCIifTwvc3Bhbj5gO2lmKG0uaXNTZXBhcmF0ZVN5bWJvbFNlYXJjaFRhYnMpe2NvbnN0IHQ9ZltpLmN1cnJlbnRTeW1ib2xUeXBlXSxyPXQmJk9iamVjdC52YWx1ZXModCkuc29tZSgoZT0+ZSE9PU4uRklMVEVSX0RFRkFVTFRfVkFMVUUpKTtpZigicmVzZXRUYWJGaWx0ZXIiPT09Z3x8dnx8cil7Y29uc3QgdD0iIj09PW8/Yy50KG51bGwsdm9pZCAwLG4oNDY1NjA2KSkuZm9ybWF0KHtzeW1ib2xUeXBlOmV9KTpjLnQobnVsbCx2b2lkIDAsbigyMDMwODUpKS5mb3JtYXQoe3N5bWJvbFR5cGU6ZSxzeW1ib2w6YDxzcGFuIGNsYXNzPSIke0h0LnRva2VufSI+JHtvfTwvc3Bhbj5gfSk7cmV0dXJuIGwuY3JlYXRlRWxlbWVudCgic3BhbiIse2Rhbmdlcm91c2x5U2V0SW5uZXJIVE1MOntfX2h0bWw6dH19KX19aWYodil7Y29uc3QgdD1gJHtjLnQobnVsbCx2b2lkIDAsbig0ODg1OTkpKS5mb3JtYXQoe3N5bWJvbFR5cGU6ZSxleGNoYW5nZU5hbWU6YDxzcGFuIGNsYXNzPSIke0h0LmJvbGR9Ij4ke1MubmFtZSgpfTwvc3Bhbj5gfSl9JHtXdH1gO3JldHVybiBsLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtkYW5nZXJvdXNseVNldElubmVySFRNTDp7Cl9faHRtbDp0fX0pfWNvbnN0IHQ9Yy50KG51bGwsdm9pZCAwLG4oMjcxODQwKSkuZm9ybWF0KHtzeW1ib2xUeXBlOmV9KSxyPW8/Yy50KG51bGwsdm9pZCAwLG4oNTM0MTMyKSkuZm9ybWF0KHtzeW1ib2xUeXBlOmUsc3ltYm9sOmA8c3BhbiBjbGFzcz0iJHtIdC50b2tlbn0iPiR7b308L3NwYW4+YH0pOnQsYT1gJHt0fSR7V3R9YDtyZXR1cm4gbC5jcmVhdGVFbGVtZW50KCJzcGFuIix7ZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUw6e19faHRtbDptLmlzU2VwYXJhdGVTeW1ib2xTZWFyY2hUYWJzP3I6YX19KX1pZih2KXtjb25zdCBlPWAke2MudChudWxsLHZvaWQgMCxuKDQwNjAxMykpLmZvcm1hdCh7ZXhjaGFuZ2VOYW1lOmA8c3BhbiBjbGFzcz0iJHtIdC5ib2xkfSI+JHtTLm5hbWUoKX08L3NwYW4+YH0pfSR7V3R9YDtyZXR1cm4gbC5jcmVhdGVFbGVtZW50KCJzcGFuIix7ZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUw6e19faHRtbDplfX0pfXJldHVybiIifSgpKSxsLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpzKCkoSHQub3RoZXJTeW1ib2xzLG0uaXNTZXBhcmF0ZVN5bWJvbFNlYXJjaFRhYnMmJkh0LnNtYWxsRm9udCl9LGwuY3JlYXRlRWxlbWVudCgic3BhbiIse2Rhbmdlcm91c2x5U2V0SW5uZXJIVE1MOntfX2h0bWw6X319KSksbS5pc1NlcGFyYXRlU3ltYm9sU2VhcmNoVGFicz9sLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpIdC5yZXNldEZpbHRlcnN9LGZ1bmN0aW9uKCl7aWYoInJlc2V0RmlsdGVyIj09PWcpcmV0dXJuIGwuY3JlYXRlRWxlbWVudCh3dC5MaWdodEJ1dHRvbix7Y2xhc3NOYW1lOkh0LnNob3dNZSxzaXplOiJzbWFsbCIsb25DbGljazpyfSxjLnQobnVsbCx2b2lkIDAsbig2MjE0MzApKSk7cmV0dXJuIGwuY3JlYXRlRWxlbWVudCh3dC5MaWdodEJ1dHRvbix7Y2xhc3NOYW1lOkh0LnNob3dNZSxzaXplOiJzbWFsbCIsb25DbGljazpFfSxjLnQobnVsbCx2b2lkIDAsbig5MjQzMjgpKSl9KCkpOmwuY3JlYXRlRWxlbWVudChCdC5CdXR0b24se2NsYXNzTmFtZTpIdC5yZXNldEZpbHRlcnMsc2l6ZToibSIsYXBwZWFyYW5jZToic3Ryb2tlIixvbkNsaWNrOnJ9LGMudChudWxsLHZvaWQgMCxuKDYyMTQzMCkpKSk7ZnVuY3Rpb24gRSgpe3YmJmZ1bmN0aW9uKCl7aWYobnVsbD09PVV0KXJldHVybjtwKFV0KX0oKTtjb25zdCBlPWkudGFiU2VsZWN0RmlsdGVycztpZighZSlyZXR1cm47Y29uc3QgdD1lLnJlZHVjZSgoKGUsdCk9PihlW3QuaWRdPU4uRklMVEVSX0RFRkFVTFRfVkFMVUUsZSkpLHt9KTtoKGkuY3VycmVudFN5bWJvbFR5cGUsdCl9fXZhciBHdD1uKDMxMjE0NyksUXQ9bigzNjU0NiksenQ9bigyMzg5MDQpO2NvbnN0ICR0PSgwLGkuaXNGZWF0dXJlc2V0RW5hYmxlZCkoImhpZGVfaW1hZ2VfaW52YWxpZF9zeW1ib2wiKTtmdW5jdGlvbiBxdChlKXtjb25zdHtvdGhlclN5bWJvbHNDb3VudDp0LG9uQ2hhbmdlU3ltYm9sVHlwZUZpbHRlcjpuLG9uUmVzZXRGaWx0ZXJzOnIsb25MaXN0VG91Y2hNb3ZlOm8sbGlzdFJlZjphLGxpc3RXcmFwUmVmOnMsb25Mb2FkTW9yZVN5bWJvbHM6aSxjYW5Mb2FkTW9yZTpjLHRyYWRpbmdGaWx0ZXJCdXR0b246dX09ZSx7bW9kZTpkLHNlbGVjdGVkU3ltYm9sVHlwZTpwLHN5bWJvbFR5cGVzOmgsZmVlZEl0ZW1zOmYsY29udGVudEl0ZW06UyxlbXB0eVN0YXRlOmc9S3Qsc3ltYm9sU2VhcmNoQ29udGVudDp5LHN5bWJvbFNlYXJjaFN0YXRlOmJ9PSgwLFllLnVzZUVuc3VyZWRDb250ZXh0KShWZS5TeW1ib2xTZWFyY2hJdGVtc0RpYWxvZ0NvbnRleHQpLHY9aC5tYXAoKGU9Pih7aWQ6ZS52YWx1ZSxjaGlsZHJlbjplLm5hbWV9KSkpLF89InN5bWJvbFNlYXJjaCI9PT1kJiZbImdvb2QiLCJsb2FkaW5nV2l0aFBhZ2luYXRlZCJdLmluY2x1ZGVzKGIpLEU9Uz8/TXQuU3ltYm9sU2VhcmNoRGlhbG9nQ29udGVudEl0ZW0sQz0oMCxsLnVzZU1lbW8pKCgoKT0+Zi5tYXAoKGU9PmwuY3JlYXRlRWxlbWVudChFLHsuLi5lLHNlYXJjaFRva2VuOnkudG9rZW59KSkpKSxbZl0pO3JldHVybiBsLmNyZWF0ZUVsZW1lbnQobC5GcmFnbWVudCxudWxsLCJzeW1ib2xTZWFyY2giPT09ZCYmbC5jcmVhdGVFbGVtZW50KGwuRnJhZ21lbnQsbnVsbCxsLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTp6dC5idWJibGVzQ29udGFpbmVyfSxoLmxlbmd0aD4wJiZsLmNyZWF0ZUVsZW1lbnQoRnQuUm91bmRCdXR0b25UYWJzLHtpZDoic3ltYm9sLXNlYXJjaC10YWJzIixpc0FjdGl2ZTplPT5lLmlkPT09cCxvbkFjdGl2YXRlOm4sb3ZlcmZsb3dCZWhhdmlvdXI6UHQubW9iaWxldG91Y2g/InNjcm9sbCI6IndyYXAiLGNsYXNzTmFtZTp6dC5idWJibGVzLGl0ZW1zOnZ9LFB0Lm1vYmlsZXRvdWNoP251bGw6bC5jcmVhdGVFbGVtZW50KCJkaXYiLG51bGwsdSkpLCFtLmlzU2VwYXJhdGVTeW1ib2xTZWFyY2hUYWJzJiZQdC5tb2JpbGV0b3VjaCYmaC5sZW5ndGg+MCYmdSYmbC5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6enQudHJhZGluZ0ZpbHRlckJ1dHRvbldyYXB9LHUpKSxtLmlzU2VwYXJhdGVTeW1ib2xTZWFyY2hUYWJzJiZsLmNyZWF0ZUVsZW1lbnQoRHQuU3ltYm9sU2VhcmNoRmVlZEhlYWRlcix7dHJhZGluZ0ZpbHRlckJ1dHRvbjpQdC5tb2JpbGV0b3VjaD91OnZvaWQgMH0pKSxsLmNyZWF0ZUVsZW1lbnQoT3QuU3ltYm9sU2VhcmNoRmVlZCx7bGlzdFJlZjphLGxpc3RXcmFwUmVmOnMsb25Ub3VjaE1vdmU6byxpdGVtczpDLGdldEl0ZW1TaXplOigpPT5EZS5ST1dfSEVJR0hULG9uTG9hZE1vcmVTeW1ib2xzOmksY2FuTG9hZE1vcmU6YyxoaWRlRmVlZDohX30pLCJsb2FkaW5nIj09PWImJmwuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOnp0LnNwaW5uZXJXcmFwfSxsLmNyZWF0ZUVsZW1lbnQoa3QuU3Bpbm5lcixudWxsKSksInN5bWJvbFNlYXJjaCI9PT1kJiZsLmNyZWF0ZUVsZW1lbnQobC5GcmFnbWVudCxudWxsLCgicmVzZXRGaWx0ZXIiPT09Ynx8InJlc2V0VGFiRmlsdGVyIj09PWIpJiZsLmNyZWF0ZUVsZW1lbnQoVnQse3Rva2VuOnkudG9rZW4sb3RoZXJTeW1ib2xzQ291bnQ6dCxvbkNsaWNrOnIKfSksImVtcHR5Ij09PWImJmwuY3JlYXRlRWxlbWVudChnLG51bGwpKSl9ZnVuY3Rpb24gS3QoZSl7Y29uc3QgdD0oMCxJdC51c2VUaGVtZSkoKT09PW90LlN0ZFRoZW1lLkRhcms/R3Q6UXQ7cmV0dXJuIGwuY3JlYXRlRWxlbWVudCgkZS5TeW1ib2xTZWFyY2hOb1Jlc3VsdCx7Y2xhc3NOYW1lOnp0Lm5vUmVzdWx0c0Rlc2t0b3B9LCEkdCYmbC5jcmVhdGVFbGVtZW50KEhlLkljb24se2ljb246dCxjbGFzc05hbWU6enQuZW1wdHlJY29ufSksbC5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6enQuZW1wdHlUZXh0fSxjLnQobnVsbCx2b2lkIDAsbig0MTc3NykpKSl9dmFyIFl0PW4oODM0MzgpLFh0PW4oNDIxMDY3KTtjb25zdCBqdD0oMCxtLmdldERlZmF1bHRTZWFyY2hTb3VyY2UpKCk7ZnVuY3Rpb24gWnQoZSl7Y29uc3R7bW9kZTp0LHNldE1vZGU6cixzZXRTZWxlY3RlZEluZGV4Om8saXNNb2JpbGU6YSxzZWxlY3RlZFNlYXJjaFNvdXJjZTp1LHNldFNlbGVjdGVkU2VhcmNoU291cmNlOnAsaXNBbGxTZWFyY2hTb3VyY2VzU2VsZWN0ZWQ6aCxzZWxlY3RlZFN5bWJvbFR5cGU6YixzZXRTZWxlY3RlZFN5bWJvbFR5cGU6dixzeW1ib2xTZWFyY2hDb250ZW50Ol8sc2V0U3ltYm9sU2VhcmNoQ29udGVudDpFLHNlYXJjaFJlZjpULGxpc3RXcmFwUmVmOngsc2V0U2VhcmNoU3ByZWFkczpJLHNob3dTcHJlYWRBY3Rpb25zOncsc2VsZWN0ZWRJdGVtOk4sZm9yY2VVcGRhdGU6UixwbGFjZWhvbGRlcjpBLGluaXRpYWxTY3JlZW46TCxmb290ZXI6TyxzZWFyY2hJbnB1dDpNLHVwcGVyQ2FzZUVuYWJsZWQ6RCxleHRlcm5hbElucHV0OkYsaGFuZGxlS2V5RG93bjpCLGN1c3RvbVNlYXJjaFN5bWJvbHM6SCxmaWx0ZXJRdWVyeVBhcmFtczpVLHNlYXJjaFNvdXJjZXM6VyxzeW1ib2xTZWFyY2hTdGF0ZTpWLHNldFN5bWJvbFNlYXJjaFN0YXRlOkcsb25FbXB0eVJlc3VsdHM6eixvdmVycmlkZVF1ZXJ5UGFyYW1zOiQsZ2V0RmlsdGVyc0J5U3ltYm9sVHlwZTpxLHNob3dSZWNlbnRzOkssc2VhcmNoSW5pdGlhdGlvblBvaW50Oll9PSgwLFllLnVzZUVuc3VyZWRDb250ZXh0KShWZS5TeW1ib2xTZWFyY2hJdGVtc0RpYWxvZ0NvbnRleHQpLFtYLGpdPSgwLGwudXNlU3RhdGUpKCExKSxaPXZvaWQgMCE9PUgsSj1IPz9wdC5zZWFyY2hTeW1ib2xzUGFnaW5hdGVkLGVlPSgwLGwudXNlUmVmKSh0KTtlZS5jdXJyZW50PXQ7Y29uc3QgdGU9KDAsbC51c2VSZWYpKG5ldyBBYm9ydENvbnRyb2xsZXIpLFtuZSxyZV09KDAsbC51c2VTdGF0ZSkoMCksb2U9KDAsbC51c2VSZWYpKDApLFtsZSxhZV09KDAsbC51c2VTdGF0ZSkoXy50b2tlbiksc2U9KDAsbC51c2VSZWYpKG51bGwpLGllPSgwLGwudXNlUmVmKSh7c2VsZWN0ZWRJbmRleFZhbHVlOi0xLHNlYXJjaFRva2VuVmFsdWU6IiIsc2VhcmNoU3ByZWFkc1ZhbHVlOiEwfSksY2U9KDAsbC51c2VSZWYpKG51bGwpLHVlPSgwLGwudXNlUmVmKShudWxsKSxkZT0oMCxsLnVzZVJlZikobnVsbCkse2Jyb2tlcldyYXBwZXI6bWU9bnVsbCxicm9rZXJJZDpwZSxicm9rZXJUaXRsZTpoZSxicm9rZXJMb2dvSW5mbzpmZSxpc0Jyb2tlckNoZWNrZWQ6U2U9ITEsc2V0SXNCcm9rZXJDaGVja2VkOmdlPSgpPT57fSx1bmhpZGVTeW1ib2xTZWFyY2hHcm91cHM6eWU9IiJ9PUMoKSx7aXNTdXBwb3J0QWNjb3VudEZpbHRlcjpiZT0hMSxhY2NvdW50RmlsdGVyVGl0bGU6dmUsYWNjb3VudEZpbHRlclRvb2x0aXBUZXh0Ol9lLGFjY291bnRGaWx0ZXJMb2dvSW5mbzpFZSxpc0FjY291bnRGaWx0ZXJDaGVja2VkOkNlPSExLHNldElzQWNjb3VudEZpbHRlckNoZWNrZWQ6VGU9KCk9Pnt9fT14dChtZSk7KDAsbC51c2VFZmZlY3QpKCgoKT0+KCk9Pnt0ZS5jdXJyZW50LmFib3J0KCksR2UoKSxRZSgpfSksW10pLCgwLGwudXNlRWZmZWN0KSgoKCk9Pntjb25zdCBlPVQuY3VycmVudDtpZihlKXJldHVybiBlLmFkZEV2ZW50TGlzdGVuZXIoImlucHV0IixNZSksZS5hZGRFdmVudExpc3RlbmVyKCJzZWFyY2gtaW5wdXQtY2xlYXIiLE1lKSxlLmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIixVZSksZS5hZGRFdmVudExpc3RlbmVyKCJzZWxlY3QiLE9lKSxlLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixPZSksZS5hZGRFdmVudExpc3RlbmVyKCJrZXl1cCIsV2UpLCgpPT57ZSYmKGUucmVtb3ZlRXZlbnRMaXN0ZW5lcigiaW5wdXQiLE1lKSxlLnJlbW92ZUV2ZW50TGlzdGVuZXIoInNlYXJjaC1pbnB1dC1jbGVhciIsTWUpLGUucmVtb3ZlRXZlbnRMaXN0ZW5lcigiZm9jdXMiLFVlKSxlLnJlbW92ZUV2ZW50TGlzdGVuZXIoInNlbGVjdCIsT2UpLGUucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY2xpY2siLE9lKSxlLnJlbW92ZUV2ZW50TGlzdGVuZXIoImtleXVwIixXZSkpfX0pLFtCXSksKDAsbC51c2VFZmZlY3QpKCgoKT0+e0Jvb2xlYW4oTCkmJiIiPT09bGUudHJpbSgpP0UoKGU9Pntjb25zdCB0PUJvb2xlYW4odSYmVy5sZW5ndGg+MSYmISgwLG0uZXhjaGFuZ2VTZWxlY3REaXNhYmxlZCkoYikpLG49cShiKTtyZXR1cm57Li4uZSx0YWJTZWxlY3RGaWx0ZXJzOm4sY3VycmVudFN5bWJvbFR5cGU6YixjYW5DaGFuZ2VFeGNoYW5nZTp0LHdpdGhGaWx0ZXJzOkJvb2xlYW4odHx8bj8ubGVuZ3RoKSx0b2tlbjpsZSxjdXJyZW50VGFiQXZhaWxhYmxlU2VhcmNoU291cmNlczpXLGN1cnJlbnRTZWxlY3RlZFNlYXJjaFNvdXJjZTp1fX0pKTooRSgoZT0+KHsuLi5lLHN5bWJvbFN0YXJ0SW5kZXg6MH0pKSksUGUobGUsYix1KS50aGVuKCgoKT0+e3guY3VycmVudCYmKHguY3VycmVudC5zY3JvbGxUb3A9MCl9KSkpfSksW2xlLGIsdSxTZSxDZSxMLFVdKSwoMCxsLnVzZUVmZmVjdCkoKCgpPT57aWYoIU58fCFULmN1cnJlbnQpcmV0dXJuO2NvbnN0IGU9KDAscHQuaXNTeW1ib2xTZWFyY2hSZXN1bHQpKE4pP04uZXhjaGFuZ2U6Ti5wYXJlbnQuZXhjaGFuZ2U7bGV0IHQ7dD0iY29udHJhY3RzImluIE4mJk4uY29udHJhY3RzPy5sZW5ndGg/Ti5jb250cmFjdHNbMF06Tjtjb25zdCBuPXtuYW1lOnQuc3ltYm9sLGV4Y2hhbmdlOmUscHJlZml4OnQucHJlZml4LGZ1bGxOYW1lOnQuZnVsbF9uYW1lfSxbcixvXT1TKFQuY3VycmVudCxuLEQpCjtULmN1cnJlbnQudmFsdWU9cixULmN1cnJlbnQuc2V0U2VsZWN0aW9uUmFuZ2UobyxvKSxSKCl9KSxbTl0pO2NvbnN0IHhlPUw/PyJkaXYiLEllPUJvb2xlYW4oTCkmJiJzeW1ib2xTZWFyY2giIT09dCx3ZT1NPz9MdC5TZWFyY2hJbnB1dCxOZT1BfHxjLnQobnVsbCx2b2lkIDAsbigyMTMyOTkpKSxSZT0oMCxsLnVzZU1lbW8pKCgoKT0+KHtsaXN0UmVmOnNlLHJlc2V0UmVjb21tZW5kczpIZSx1cGRhdGVSZWNvbW1lbmRzOlBlLHNlYXJjaFRva2VuOmxlLGVtcHR5VGV4dENsYXNzTmFtZTp6dC5lbXB0eVRleHQsaXNCcm9rZXJDaGVja2VkOlNlLGlzQWNjb3VudEZpbHRlckNoZWNrZWQ6Q2Usc3ltYm9sU2VhcmNoU3RhdGU6VixjdXJyZW50TW9kZTplZX0pKSxbc2UsbGUsU2UsQ2UsVixlZSxVXSksQWU9ZnVuY3Rpb24oKXswO2lmKGhlKXJldHVybiBsLmNyZWF0ZUVsZW1lbnQoUnQse3RleHQ6aGUsdG9vbHRpcFRleHQ6Yy50KG51bGwse3JlcGxhY2U6e2Jyb2tlck5hbWU6aGV9fSxuKDU4OTA3MikpLGlzQWN0aXZlOlNlLG9uVG9nZ2xlOmdlLGxvZ29JbmZvOmZlfSk7aWYodmUpcmV0dXJuIGwuY3JlYXRlRWxlbWVudChSdCx7dGV4dDp2ZSx0b29sdGlwVGV4dDpfZSxpc0FjdGl2ZTpDZSxvblRvZ2dsZTpUZSxsb2dvSW5mbzpFZX0pO3JldHVybiBudWxsfSgpO3JldHVybiBsLmNyZWF0ZUVsZW1lbnQobHQuU3ltYm9sU2VhcmNoRGlhbG9nQm9keUNvbnRleHQuUHJvdmlkZXIse3ZhbHVlOlJlfSwhKEYmJiJzeW1ib2xTZWFyY2giPT09dCkmJmwuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOnMoKSh6dC5pbnB1dENvbnRhaW5lcil9LGwuY3JlYXRlRWxlbWVudCh3ZSx7ImRhdGEtcWEtaWQiOiJzeW1ib2wtc2VhcmNoLWlucHV0IixpbnB1dENsYXNzTmFtZTpzKCkoenQuc2VhcmNoLEQmJnp0LnVwcGVyQ2FzZSksb25SZXNldDpmdW5jdGlvbigpe2lmKCFULmN1cnJlbnQpcmV0dXJuO1QuY3VycmVudC52YWx1ZT0iIixULmN1cnJlbnQuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInNlYXJjaC1pbnB1dC1jbGVhciIpKSxMZSh7c2VsZWN0ZWRJbmRleFZhbHVlOi0xLHNlYXJjaFNwcmVhZHNWYWx1ZTohMSxzZWFyY2hUb2tlblZhbHVlOiIifSksYXx8VC5jdXJyZW50LmZvY3VzKCl9LHJlZmVyZW5jZTpULGlzTW9iaWxlOmEscGxhY2Vob2xkZXI6TmUsZW5kU2xvdDp3JiZsLmNyZWF0ZUVsZW1lbnQobC5GcmFnbWVudCxudWxsLFgmJmwuY3JlYXRlRWxlbWVudChDdCx7c3RhdGU6aWUsdXBkYXRlOkRlfSksbC5jcmVhdGVFbGVtZW50KG10Lkljb25CdXR0b24se3RvZ2dsZWRUaXRsZTpjLnQobnVsbCx7Y29udGV4dDoic2VhcmNoX2lucHV0X3NwcmVhZHMifSxuKDg5MjUpKSx1bnRvZ2dsZWRUaXRsZTpjLnQobnVsbCx7Y29udGV4dDoic2VhcmNoX2lucHV0X3NwcmVhZHMifSxuKDMyMzM2MykpLG9uVG9nZ2xlOmosaXNUb2dnbGVkOlgsdW50b2dnbGVkSWNvbjpZdCx0b2dnbGVkSWNvbjpYdH0pKX0pKSxJZT9sLmNyZWF0ZUVsZW1lbnQoeGUsbnVsbCk6bC5jcmVhdGVFbGVtZW50KHF0LHtvdGhlclN5bWJvbHNDb3VudDpuZSxvbkxpc3RUb3VjaE1vdmU6ZnVuY3Rpb24oKXtULmN1cnJlbnQ/LmJsdXIoKX0sb25DaGFuZ2VTeW1ib2xUeXBlRmlsdGVyOmZ1bmN0aW9uKGUpe2NvbnN0e2lkOnR9PWU7dih0KSxvKC0xKX0sb25SZXNldEZpbHRlcnM6ZnVuY3Rpb24oKXttLmlzU2VwYXJhdGVTeW1ib2xTZWFyY2hUYWJzPyJyZXNldEZpbHRlciI9PT1WP3YoKDAsbS5nZXRBbGxTeW1ib2xUeXBlc1ZhbHVlKSgpKTpqdCYmcChqdCk6KHYoKDAsbS5nZXRBbGxTeW1ib2xUeXBlc1ZhbHVlKSgpKSxqdCYmcChqdCkpO2dlKCExKSxUZSghMSksYXx8VC5jdXJyZW50Py5mb2N1cygpfSx0cmFkaW5nRmlsdGVyQnV0dG9uOkFlLGxpc3RSZWY6c2UsbGlzdFdyYXBSZWY6eCxvbkxvYWRNb3JlU3ltYm9sczpmdW5jdGlvbigpeyJsb2FkaW5nV2l0aFBhZ2luYXRlZCIhPT1WJiZQZShsZSxfLmN1cnJlbnRTeW1ib2xUeXBlLHUsXy5zeW1ib2xTdGFydEluZGV4KX0sY2FuTG9hZE1vcmU6MCE9PV8uc3ltYm9sc1JlbWFpbmluZ30pLE8pO2Z1bmN0aW9uIExlKGUpe2llLmN1cnJlbnQ9ey4uLmV9LGNlLmN1cnJlbnR8fChjZS5jdXJyZW50PXNldFRpbWVvdXQoRGUsMCkpfWZ1bmN0aW9uIGtlKCl7aWYoIVQuY3VycmVudClyZXR1cm47Y29uc3RbZSx0LG5dPWcoVC5jdXJyZW50LEQpO29lLmN1cnJlbnQ9dCxMZSh7c2VsZWN0ZWRJbmRleFZhbHVlOi0xLHNlYXJjaFNwcmVhZHNWYWx1ZTooMCxkLmlzU3ByZWFkKShuKSxzZWFyY2hUb2tlblZhbHVlOmV9KX1mdW5jdGlvbiBPZSgpe2lmKCFULmN1cnJlbnQpcmV0dXJuO2NvbnN0WyxlXT1nKFQuY3VycmVudCxEKTtlIT09b2UuY3VycmVudCYma2UoKX1mdW5jdGlvbiBNZSgpe1IoKSxrZSgpfWZ1bmN0aW9uIERlKCl7Y29uc3R7c2VsZWN0ZWRJbmRleFZhbHVlOmUsc2VhcmNoVG9rZW5WYWx1ZTp0LHNlYXJjaFNwcmVhZHNWYWx1ZTpufT1pZS5jdXJyZW50O2NlLmN1cnJlbnQ9bnVsbCwoMCxkdC51bnN0YWJsZV9iYXRjaGVkVXBkYXRlcykoKCgpPT57SShuKSxvKGUpLGFlKEQ/dC50b1VwcGVyQ2FzZSgpOnQpfSkpfWFzeW5jIGZ1bmN0aW9uIFBlKGUsdCxuLHIpe3plKCk7Y29uc3Qgbz10ZS5jdXJyZW50LnNpZ25hbDt0cnl7bGV0IGE7Im5vb3AiPT09Vj9HKCJsb2FkaW5nIik6cj9HKCJsb2FkaW5nV2l0aFBhZ2luYXRlZCIpOihHZSgpLFFlKCksdWUuY3VycmVudD1zZXRUaW1lb3V0KCgoKT0+e2lmKG8uYWJvcnRlZClyZXR1cm47Y29uc3Qgbj1Cb29sZWFuKHUmJlcubGVuZ3RoPjEmJiEoMCxtLmV4Y2hhbmdlU2VsZWN0RGlzYWJsZWQpKHQpKSxyPXEodCk7RSh7dG9rZW46ZSxjYW5DaGFuZ2VFeGNoYW5nZTpuLHRhYlNlbGVjdEZpbHRlcnM6cix3aXRoRmlsdGVyczpCb29sZWFuKG58fHI/Lmxlbmd0aCksY3VycmVudFN5bWJvbFR5cGU6dCxjdXJyZW50U2VsZWN0ZWRTZWFyY2hTb3VyY2U6dSxjdXJyZW50VGFiQXZhaWxhYmxlU2VhcmNoU291cmNlczpXLHJlbmRlclN5bWJvbFNlYXJjaExpc3Q6W10sc3ltYm9sc1JlbWFpbmluZzowLHN5bWJvbFN0YXJ0SW5kZXg6MH0pLEcoImxvYWRpbmciKQp9KSw1MDApKTtsZXQgcz0hMTtpZihtZSYmQ2UmJmJlKXtjb25zdCBlPWF3YWl0KDAsUS5yZXNwZWN0QWJvcnQpKG8sbWUuYWNjb3VudE1ldGFpbmZvKCkpO3M9Qm9vbGVhbihlLnN5bWJvbFNlYXJjaEZpbHRlclBhcmFtcz8uaXNFeHRlcm5hbCksYT1lLnN5bWJvbFNlYXJjaEZpbHRlclBhcmFtcz8uaWR9Y29uc3QgYz1TZSYmbWUscD10PT09KDAsbS5nZXRBbGxTeW1ib2xUeXBlc1ZhbHVlKSgpLFM9IiI9PT1lLnRyaW0oKSYmIVomJiFjJiYhYSYmcCYmSztsZXQgZztpZihTZSYmbWUpe2c9KGF3YWl0KDAsUS5yZXNwZWN0QWJvcnQpKG8sbWUuYWNjb3VudE1ldGFpbmZvKCkpKS5wcmVmaXh9Y29uc3QgYj1mKGUpPz9nPz9uPy5nZXRSZXF1ZXN0RXhjaGFuZ2VWYWx1ZSgpLHY9ZihlKT92b2lkIDA6KG58fHUpPy5nZXRSZXF1ZXN0Q291bnRyeVZhbHVlKCksW0MsVF09YXdhaXQgUHJvbWlzZS5hbGwoW0JlKG8sZSx0LG4sYix2LHIsYSxzKSxTJiYhcj9rKCk6UHJvbWlzZS5yZXNvbHZlKFtdKV0pO2lmKG8uYWJvcnRlZClyZXR1cm47Y29uc3QgeD1ULmZpbHRlcigoZT0+Yj9lLmV4Y2hhbmdlPy50b0xvd2VyQ2FzZSgpPT09Yi50b0xvd2VyQ2FzZSgpOiF2fHxlLmNvdW50cnk/LnRvTG93ZXJDYXNlKCk9PT12LnRvTG93ZXJDYXNlKCkpKSxJPW5ldyBTZXQoeC5tYXAoKGU9PmAke2UuZXhjaGFuZ2V9XyR7ZS5zeW1ib2x9YCkpKSx3PUMuc3ltYm9scy5maWx0ZXIoKGU9PiFJLmhhcyhgJHtlLmV4Y2hhbmdlfV8ke2Uuc3ltYm9sfWApKSk7bGV0IE49ZnVuY3Rpb24oZSx0PXdpbmRvdy5DaGFydEFwaUluc3RhbmNlLnN5bWJvbHNHcm91cGluZygpKXtjb25zdCBuPXt9LHI9W107Zm9yKGxldCBvPTA7bzxlLmxlbmd0aDsrK28pe2NvbnN0IGw9ZVtvXTtpZihsLnByZWZpeHx8QXJyYXkuaXNBcnJheShsLmNvbnRyYWN0cykpcmV0dXJuIGU7Y29uc3QgYT10W2wudHlwZV07aWYodm9pZCAwPT09YSl7ci5wdXNoKGwpO2NvbnRpbnVlfWNvbnN0IHM9YS5leGVjKGwuc3ltYm9sKTtpZihzKXtjb25zdCBlPXNbMV07bGV0IHQ7bi5oYXNPd25Qcm9wZXJ0eShlKT90PW5bZV06KHQ9ci5sZW5ndGgsbltlXT10LHIucHVzaCh7dHlwZTpsLnR5cGUsc3ltYm9sOmUsZXhjaGFuZ2U6bC5leGNoYW5nZSxkZXNjcmlwdGlvbjpsLmRlc2NyaXB0aW9uLGZ1bGxfbmFtZTpsLmV4Y2hhbmdlKyI6IitlLGNvbnRyYWN0czpbXX0pKSxyW3RdLmNvbnRyYWN0cz8ucHVzaChsKX1lbHNlIHIucHVzaChsKX1yZXR1cm4gcn0oWy4uLngsLi4ud10pO2lmKGw9TixOPSgwLGkuaXNGZWF0dXJlc2V0RW5hYmxlZCkoIndpZGdldCIpP2wuZmlsdGVyKChlPT4hZS5wYXJhbXN8fC0xPT09ZS5wYXJhbXMuaW5kZXhPZigicHJvIikpKTpsLHImJihOPVsuLi5fLnJlbmRlclN5bWJvbFNlYXJjaExpc3QsLi4uTl0pLE4ubGVuZ3RoKUdlKCksRSgobj0+e2NvbnN0IHI9Qm9vbGVhbih1JiZXLmxlbmd0aD4xJiYhKDAsbS5leGNoYW5nZVNlbGVjdERpc2FibGVkKSh0KSksbz1xKHQpO3JldHVybnsuLi5uLGNhbkNoYW5nZUV4Y2hhbmdlOnIsdGFiU2VsZWN0RmlsdGVyczpvLHJlbmRlclN5bWJvbFNlYXJjaExpc3Q6Tix0b2tlbjplLHN5bWJvbHNSZW1haW5pbmc6Qy5zeW1ib2xzX3JlbWFpbmluZyx3aXRoRmlsdGVyczpCb29sZWFuKHJ8fG8/Lmxlbmd0aCksY3VycmVudFN5bWJvbFR5cGU6dCxjdXJyZW50U2VsZWN0ZWRTZWFyY2hTb3VyY2U6dSxjdXJyZW50VGFiQXZhaWxhYmxlU2VhcmNoU291cmNlczpXLHN5bWJvbFN0YXJ0SW5kZXg6bi5zeW1ib2xTdGFydEluZGV4K0Muc3ltYm9scy5sZW5ndGh9fSkpLEcoImdvb2QiKTtlbHNle2lmKEUoKG49Pntjb25zdCByPUJvb2xlYW4odSYmVy5sZW5ndGg+MSYmISgwLG0uZXhjaGFuZ2VTZWxlY3REaXNhYmxlZCkodCkpLG89cSh0KTtyZXR1cm57Li4ubixjYW5DaGFuZ2VFeGNoYW5nZTpyLHRhYlNlbGVjdEZpbHRlcnM6byx0b2tlbjplLHN5bWJvbHNSZW1haW5pbmc6MCx3aXRoRmlsdGVyczpCb29sZWFuKHJ8fG8/Lmxlbmd0aCksY3VycmVudFN5bWJvbFR5cGU6dCxjdXJyZW50U2VsZWN0ZWRTZWFyY2hTb3VyY2U6dSxjdXJyZW50VGFiQXZhaWxhYmxlU2VhcmNoU291cmNlczpXfX0pKSxwJiZ1JiZoKHUpKXJldHVybiBHZSgpLEcoImVtcHR5Iiksdm9pZCBGZSgpO2NvbnN0IG49dD0+YXN5bmMgZnVuY3Rpb24oZSx0LG4scil7Y29uc3Qgbz17c2VydmVySGlnaGxpZ2h0OiEwLHRleHQ6KDAsZC5zaG9ydE5hbWUpKHQpLGV4Y2hhbmdlOmYodCl8fCIiLHR5cGU6bS5pc1NlcGFyYXRlU3ltYm9sU2VhcmNoVGFicz9uOigwLG0uZ2V0QWxsU3ltYm9sVHlwZXNWYWx1ZSkoKSxsYW5nOndpbmRvdy5sYW5ndWFnZXx8IiIsc29ydEJ5Q291bnRyeTooMCxBdC5nZXRDdXJyZW50TG9jYWxlSW5mb0NvdW50cnkpKCksYnJva2VySWQ6cGUsZW5hYmxlR3JvdXBpbmc6KDAseS5pc0ZlYXR1cmVFbmFibGVkKSgic3ltYm9sX3NlYXJjaF9ncm91cGluZyIpJiYhcGUmJiFyLGFjY291bnRGaWx0ZXJJZDpyLG9ubHlUcmFkYWJsZTpCb29sZWFuKHBlKSYmU2Usb25seUFjY291bnRUcmFkYWJsZTpCb29sZWFuKHIpJiZDZSx1bmhpZGVTeW1ib2xTZWFyY2hHcm91cHM6eWUsc2lnbmFsOmV9O3JldHVybiBKKG8pfShvLGUsdCxhKSxyPWF3YWl0IFByb21pc2UuYWxsKFtuKCgwLG0uZ2V0QWxsU3ltYm9sVHlwZXNWYWx1ZSkoKSksbS5pc1NlcGFyYXRlU3ltYm9sU2VhcmNoVGFicz9uKHQpOlByb21pc2UucmVzb2x2ZShudWxsKV0pO2lmKG8uYWJvcnRlZClyZXR1cm47R2UoKTtjb25zdFtsLHNdPXIubWFwKChlPT5udWxsPT09ZT8wOmUuc3ltYm9scy5sZW5ndGgpKTtzPyhHKCJyZXNldFRhYkZpbHRlciIpLHJlKHMpKTpsPyhHKCJyZXNldEZpbHRlciIpLHJlKGwpKTpHKCJlbXB0eSIpLEZlKCl9fWNhdGNoKGUpeygwLFEuc2tpcEFib3J0RXJyb3IpKGUpfXZhciBsfWZ1bmN0aW9uIEZlKCl7eiYmKGRlLmN1cnJlbnQ9c2V0VGltZW91dCgoKCk9PnooKSksMWUzKSl9YXN5bmMgZnVuY3Rpb24gQmUoZSx0LG4scixvLGwsYSxzLGkpe2NvbnN0IGM9e3NlcnZlckhpZ2hsaWdodDohMCx0ZXh0OigwLGQuc2hvcnROYW1lKSh0KSxleGNoYW5nZTpvLGNvdW50cnk6bCwKdHlwZTpuLGxhbmc6d2luZG93Lmxhbmd1YWdlfHwiIixlbmFibGVHcm91cGluZzooMCx5LmlzRmVhdHVyZUVuYWJsZWQpKCJzeW1ib2xfc2VhcmNoX2dyb3VwaW5nIikmJiFwZSYmIXMsc29ydEJ5Q291bnRyeTooMCxBdC5nZXRDdXJyZW50TG9jYWxlSW5mb0NvdW50cnkpKCksYnJva2VySWQ6cGUsYWNjb3VudEZpbHRlcklkOnMsaXNFeHRlcm5hbDppLG9ubHlUcmFkYWJsZTpCb29sZWFuKHBlKSYmU2Usb25seUFjY291bnRUcmFkYWJsZTpCb29sZWFuKHMpJiZDZSx1bmhpZGVTeW1ib2xTZWFyY2hHcm91cHM6eWUsc2lnbmFsOmUsc3RhcnQ6YSxmaWx0ZXJRdWVyeVBhcmFtczpVLG92ZXJyaWRlUXVlcnlQYXJhbXM6JCxzZWFyY2hJbml0aWF0aW9uUG9pbnQ6dm9pZCAwfSx1PWh0O3JldHVybiB2b2lkIDAhPT11JiZhd2FpdCgwLFEuZGVsYXkpKGUsdSksSihjKX1mdW5jdGlvbiBIZSgpe3plKCksRygiZW1wdHkiKSxhZSgiIiksSSghMSksRSgoZT0+KHsuLi5lLHN5bWJvbFN0YXJ0SW5kZXg6MH0pKSksR2UoKX1mdW5jdGlvbiBVZSgpeyJ3YXRjaGxpc3QiPT09ZWUuY3VycmVudCYmKHIoInN5bWJvbFNlYXJjaCIpLCgwLFAudHJhY2tFdmVudCkoIldhdGNobGlzdCIsIk1vYmlsZSBTUyIsIkdvIHRvIFNTIHBhZ2UiKSl9ZnVuY3Rpb24gV2UoZSl7c3dpdGNoKCgwLGZ0Lmhhc2hGcm9tRXZlbnQpKGUpKXtjYXNlIDM3OmNhc2UgMzk6T2UoKX19ZnVuY3Rpb24gR2UoKXt1ZS5jdXJyZW50JiZjbGVhclRpbWVvdXQodWUuY3VycmVudCl9ZnVuY3Rpb24gUWUoKXtkZS5jdXJyZW50JiZjbGVhclRpbWVvdXQoZGUuY3VycmVudCl9ZnVuY3Rpb24gemUoKXt0ZS5jdXJyZW50LmFib3J0KCksdGUuY3VycmVudD1uZXcgQWJvcnRDb250cm9sbGVyfX12YXIgSnQ9bigyNzM2ODQpLGVuPW4oODI0MzUpLHRuPW4oMjQ4MzEpO2Z1bmN0aW9uIG5uKGUpe2NvbnN0IHQ9KDAsbC51c2VNZW1vKShULmdldFdpZGdldFN5bWJvbFNlYXJjaENvbmZpZyxbXSksbj12b2lkIDA9PT10LFtyLG9dPSgwLGwudXNlU3RhdGUpKCgoKT0+ZnVuY3Rpb24oZSl7Y29uc3R7Y29uZmlndXJlZERlZmF1bHRFeGNoYW5nZTp0LGRlZmF1bHRTZWFyY2hTb3VyY2U6bixzYXZlZFNlYXJjaFNvdXJjZU5hbWU6cixzZWFyY2hTb3VyY2VzOm99PWU7aWYodm9pZCAwIT09dCl7Y29uc3QgZT1vLmZpbmQoKGU9PmUudmFsdWUoKT09PXQudG9VcHBlckNhc2UoKSkpO2lmKHZvaWQgMCE9PWUpcmV0dXJuIGV9aWYodm9pZCAwIT09cil7Y29uc3QgZT1vLmZpbmQoKGU9PmUudmFsdWUoKT09PXIpKTtpZih2b2lkIDAhPT1lKXJldHVybiBlfXJldHVybiBufSh7Li4uZSxjb25maWd1cmVkRGVmYXVsdEV4Y2hhbmdlOnQ/LmRlZmF1bHRFeGNoYW5nZSxzYXZlZFNlYXJjaFNvdXJjZU5hbWU6bj9iLmdldFZhbHVlKCJzeW1ib2xlZGl0LmV4Y2hhbmdlZmlsdGVyIiwiIik6dm9pZCAwfSkpKTtyZXR1cm5bciwoMCxsLnVzZUNhbGxiYWNrKSgoZT0+e3ZhciB0O28oZSksbiYmKHQ9ZSxiLnNldFZhbHVlKCJzeW1ib2xlZGl0LmV4Y2hhbmdlZmlsdGVyIix0LnZhbHVlKCkpKX0pLFtuXSldfWZ1bmN0aW9uIHJuKGUpe2NvbnN0e3NlbGVjdGVkU3ltYm9sU2V0dGluZ3NLZXk6dD0ic3ltYm9sZWRpdC5maWx0ZXIifT1lLFtuLHJdPSgwLGwudXNlU3RhdGUpKCgoKT0+e2lmKDE9PT1lLnR5cGVzLmxlbmd0aClyZXR1cm4gZS50eXBlc1swXS52YWx1ZTtjb25zdCBuPWIuZ2V0VmFsdWUodCwoMCxtLmdldEFsbFN5bWJvbFR5cGVzVmFsdWUpKCkpO3JldHVybiBlLnR5cGVzLmZpbmQoKGU9PmUudmFsdWU9PT1uKSk/bjooMCxtLmdldEFsbFN5bWJvbFR5cGVzVmFsdWUpKCl9KSk7cmV0dXJuW24sKDAsbC51c2VDYWxsYmFjaykoKGU9PntyKGUpLGZ1bmN0aW9uKGUsdD0ic3ltYm9sZWRpdC5maWx0ZXIiKXtiLnNldFZhbHVlKHQsZSl9KGUsdCl9KSxbdF0pXX12YXIgb249bigzNDIyNjEpLGxuPW4oNjQzOTAzKSxhbj1uKDE1NjgyOSksc249big4NDg5ODgpLGNuPW4oOTY5MTY4KSx1bj1uKDk4MzYxNiksZG49bigzMTgyNTQpO2NvbnN0IG1uPSgwLHkuaXNGZWF0dXJlRW5hYmxlZCkoImJyb2tlcl9pZF9zZXNzaW9uIikscG49KDAsbS5nZXRBdmFpbGFibGVTZWFyY2hTb3VyY2VzKSgpLGhuPSgwLG0uZ2V0RGVmYXVsdFNlYXJjaFNvdXJjZSkoKSxmbj0oMCxpLmlzRmVhdHVyZXNldEVuYWJsZWQpKCJ1cHBlcmNhc2VfaW5zdHJ1bWVudF9uYW1lcyIpLFNuPSgwLGkuaXNGZWF0dXJlc2V0RW5hYmxlZCkoInN5bWJvbF9zZWFyY2hfaGlnaGxpZ2h0X2FjdGl2ZV9zeW1ib2wiKSYmKCEhKDAsaS5pc0ZlYXR1cmVzZXRFbmFibGVkKSgid2lkZ2V0Iil8fHdpbmRvdy5UcmFkaW5nVmlldy5vbkNoYXJ0UGFnZSk7ZnVuY3Rpb24gZ24oZSl7Y29uc3R7b25DbG9zZTp0LGluaXRpYWxNb2RlOnIsZGVmYXVsdFZhbHVlOm89IiIsc2hvd1NwcmVhZEFjdGlvbnM6YSxoaWRlTWFya2VkTGlzdEZsYWc6cyxzZWxlY3RTZWFyY2hPbkluaXQ6aT0hMCxvblNlYXJjaENvbXBsZXRlOmQsZGlhbG9nVGl0bGU6cD1jLnQobnVsbCx7Y29udGV4dDoic3ltYm9sX3NlYXJjaF9kaWFsb2dfdGl0bGUifSxuKDg0NTIyOCkpLHBsYWNlaG9sZGVyOmgsZnVsbHNjcmVlbjpmLGluaXRpYWxTY3JlZW46Zyx3cmFwcGVyOnYsZGlhbG9nOl8sY29udGVudEl0ZW06RSxmb290ZXI6UixzZWFyY2hJbnB1dDpBLGVtcHR5U3RhdGU6TCxhdXRvZm9jdXM6ayxkaWFsb2dXaWR0aDpELG9uS2V5RG93bjpGLHNlYXJjaFNvdXJjZXNTY3JlZW46QixjdXN0b21TZWFyY2hTeW1ib2xzOkgsaXNEaXNhYmxlRmlsdGVyaW5nOlUsZGlzYWJsZVJlY2VudHM6VyxzaG91bGRSZXR1cm5Gb2N1czpWLG9uU3ltYm9sRmlsdGVyc1BhcmFtc0NoYW5nZTpHLG9uRW1wdHlSZXN1bHRzOlEsZW5hYmxlT3B0aW9uc0NoYWluOnosb3ZlcnJpZGVRdWVyeVBhcmFtczokLGhpZGRlbkZpbHRlcklkczpxLHNob3dSZWNlbnRzOks9ITAsc2VhcmNoSW5pdGlhdGlvblBvaW50Olk9InN5bWJvbFNlYXJjaCIsc2VsZWN0ZWRTeW1ib2xTZXR0aW5nc0tleTpYLGZpbHRlclZhbHVlc1NldHRpbmdzS2V5Omp9PWUsWj0oMCxsLnVzZU1lbW8pKCgoKT0+VT9bXTplLnN5bWJvbFR5cGVzPz8oMCwKbS5nZXRBdmFpbGFibGVTeW1ib2xUeXBlcykoKSksW10pLEo9dm9pZCAwIT09ZS5pbnB1dCxlZT1VP1tdOnBuLFt0ZSxuZV09KDAsbC51c2VTdGF0ZSkoKCgpPT5DbihvLHopPyJvcHRpb25zIjpyKSksW3JlLG9lXT0oMCxsLnVzZVN0YXRlKSgoKCk9PkNuKG8seikpKSxbbGUsYWVdPSgwLGwudXNlU3RhdGUpKCgoKT0+eiYmKDAsbS5pc09wdGlvbkRlZmF1bHRWYWx1ZSkobyk/by52YWx1ZTpudWxsKSksc2U9KDAsbC51c2VSZWYpKGZ1bmN0aW9uKGUsdCl7Y29uc3Qgbj1DbihlLHQpO3JldHVybigwLG0uaXNPcHRpb25EZWZhdWx0VmFsdWUpKGUpP24/P2UudmFsdWU6ZX0obyx6KSksW2llLGNlXT1ubih7c2VhcmNoU291cmNlczplZSxkZWZhdWx0U2VhcmNoU291cmNlOmhufSksW3VlLGRlXT1JKHtzZWFyY2hTb3VyY2VzOmVlfSksW21lLHBlXT1ybih7dHlwZXM6WixzZWxlY3RlZFN5bWJvbFNldHRpbmdzS2V5Olh9KSxbaGUsZmVdPWZ1bmN0aW9uKGUsdD0ic2VsZWN0ZWRTeW1ib2xTZWFyY2hGaWx0ZXJWYWx1ZXMiKXtjb25zdFtuLHJdPSgwLGwudXNlU3RhdGUpKCgoKT0+e2NvbnN0IG49Yi5nZXRKU09OKHQse30pLHI9e307Zm9yKGNvbnN0W3Qsb11vZiBPYmplY3QuZW50cmllcyhuKSl7aWYoIWUuaGFzT3duUHJvcGVydHkodCkpY29udGludWU7Y29uc3Qgbj1uZXcgU2V0KCgwLHcuZW5zdXJlRGVmaW5lZCkoZVt0XSkubWFwKChlPT5lLmlkKSkpO2Zvcihjb25zdFtlLGxdb2YgT2JqZWN0LmVudHJpZXMobykpbi5oYXMoZSkmJihyW3RdfHwoclt0XT17fSksclt0XVtlXT1sKX1yZXR1cm4gcn0pKTtyZXR1cm5bbiwoMCxsLnVzZUNhbGxiYWNrKSgoKGUsbik9PntyKChyPT57Y29uc3Qgbz1yW2VdP3suLi5yW2VdfTp7fSxsPU9iamVjdC5rZXlzKG4pO2Zvcihjb25zdCBlIG9mIGwpe2NvbnN0IHQ9bltlXTt2b2lkIDA9PT10P28uaGFzT3duUHJvcGVydHkoZSkmJmRlbGV0ZSBvW2VdOm9bZV09dH1jb25zdCBhPXsuLi5yLFtlXTpvfTtyZXR1cm4gYi5zZXRKU09OKHQsYSksYX0pKX0pLFt0XSldfShOLlRBQl9TRUxFQ1RfRklMVEVSX01BUCxqKSxbU2UsZ2VdPSgwLGwudXNlU3RhdGUpKCExKSxbeWUsYmVdPSgwLGwudXNlU3RhdGUpKC0xKSxbdmUsX2VdPSgwLGwudXNlU3RhdGUpKCJub29wIiksW0VlLENlXT0oMCxsLnVzZVN0YXRlKShTbj91LmxpbmtpbmcucHJvU3ltYm9sLnZhbHVlKCk6bnVsbCksVGU9bS5pc1NlcGFyYXRlU3ltYm9sU2VhcmNoVGFicz91ZT8uW21lXXx8aG46aWUseGU9KDAsbC51c2VNZW1vKSgoKCk9PntpZighbS5pc1NlcGFyYXRlU3ltYm9sU2VhcmNoVGFicylyZXR1cm4gZWU7cmV0dXJuKCJlY29ub21pYyI9PT1tZT9lZS5tYXAobS5tYXBFY29ub215U291cmNlKTplZSkuZmlsdGVyKChlPT57Y29uc3QgdD1OLlRBQl9TT1VSQ0VfRklMVEVSX01BUFttZV07aWYoIXQpcmV0dXJuITE7aWYoIW1lKXJldHVybiEwO2NvbnN0IG49ZS5ncm91cCgpO3JldHVybiBuPT09eC5FeGNoYW5nZUdyb3VwLkFsbEV4Y2hhbmdlc3x8biYmdC52YWx1ZS5pbmNsdWRlcyhuKX0pKX0pLFtlZSxtZV0pLEllPSgwLGwudXNlQ2FsbGJhY2spKChlPT57Y29uc3QgdD1tLmlzU2VwYXJhdGVTeW1ib2xTZWFyY2hUYWJzP04uVEFCX1NFTEVDVF9GSUxURVJfTUFQOnZvaWQgMDtpZih0KXJldHVybiBxPy5sZW5ndGg/dFtlXT8uZmlsdGVyKChlPT4hcS5pbmNsdWRlcyhlLmlkKSkpOnRbZV19KSxbcV0pLFt3ZSxOZV09KDAsbC51c2VTdGF0ZSkoKCgpPT57Y29uc3QgZT1Cb29sZWFuKGllJiZwbi5sZW5ndGg+MSYmISgwLG0uZXhjaGFuZ2VTZWxlY3REaXNhYmxlZCkobWUpKSx0PUllKG1lKTtyZXR1cm57Y2FuQ2hhbmdlRXhjaGFuZ2U6ZSx0YWJTZWxlY3RGaWx0ZXJzOnQsd2l0aEZpbHRlcnM6Qm9vbGVhbihlfHx0Py5sZW5ndGgpLHJlbmRlclN5bWJvbFNlYXJjaExpc3Q6W10sdG9rZW46c2UuY3VycmVudCxzeW1ib2xzUmVtYWluaW5nOjAsY3VycmVudFN5bWJvbFR5cGU6bWUsY3VycmVudFNlbGVjdGVkU2VhcmNoU291cmNlOlRlLGN1cnJlbnRUYWJBdmFpbGFibGVTZWFyY2hTb3VyY2VzOnhlLHN5bWJvbFN0YXJ0SW5kZXg6MH19KSksUmU9KDAsbC51c2VDYWxsYmFjaykoKGU9PnsoMCxQLnRyYWNrRXZlbnQpKCJOZXcgU1MiLG1lLCJDaGFuZ2Ugc291cmNlcyIpLGRlPy4obWUsZSksTmUoKHQ9Pih7Li4udCxjdXJyZW50U2VsZWN0ZWRTZWFyY2hTb3VyY2U6ZX0pKSl9KSxbbWUsTmVdKSxBZT0oMCxsLnVzZVJlZikoZS5pbnB1dD8/bnVsbCksTGU9KDAsbC51c2VSZWYpKG51bGwpLFtPZSxCZV09KDAsbC51c2VTdGF0ZSkoITEpLEhlPSgwLG9uLnVzZUZvcmNlVXBkYXRlKSgpLFtVZSxXZV09KDAsbC51c2VTdGF0ZSkobmV3IFNldCkse2Jyb2tlcldyYXBwZXI6R2U9bnVsbCxicm9rZXJJZDpRZSx1bmhpZGVTeW1ib2xTZWFyY2hHcm91cHM6JGU9IiIsZGlzcGxheUJyb2tlclN5bWJvbDpxZT0hMX09QygpOygwLGwudXNlTGF5b3V0RWZmZWN0KSgoKCk9PnshQWU/LmN1cnJlbnR8fCFKJiZCb29sZWFuKEFlLmN1cnJlbnQ/LnZhbHVlKXx8KEp8fCJjb21wYXJlIj09PXRlfHwoQWUuY3VycmVudC52YWx1ZT1zZS5jdXJyZW50KSwha3x8SiYmInN5bWJvbFNlYXJjaCIhPT10ZXx8QWUuY3VycmVudC5mb2N1cygpKX0pLFt0ZV0pLCgwLGwudXNlRWZmZWN0KSgoKCk9PntBZT8uY3VycmVudCYmaSYmayYmQWUuY3VycmVudC5zZWxlY3QoKX0pLFtdKSwoMCxsLnVzZUVmZmVjdCkoKCgpPT57aWYoIVNuKXJldHVybjtjb25zdCBlPWU9PntDZShlKX07cmV0dXJuIHUubGlua2luZy5wcm9TeW1ib2wuc3Vic2NyaWJlKGUpLCgpPT57dS5saW5raW5nLnByb1N5bWJvbC51bnN1YnNjcmliZShlKX19KSxbXSksKDAsbC51c2VFZmZlY3QpKCgoKT0+e2lmKCFFZSlyZXR1cm47bGV0IGU7Zm9yKGNvbnN0IHQgb2Ygd2UucmVuZGVyU3ltYm9sU2VhcmNoTGlzdCl7aWYodC5ncm91cGVkX3N5bWJvbHMpe2lmKHRuLlF1YWxpZmllZFNvdXJjZXMuZnJvbVN5bWJvbFNlYXJjaFJlc3VsdCh0KT09PUVlKWJyZWFrCjt0Lmdyb3VwZWRfc3ltYm9scy5maW5kKChlPT50bi5RdWFsaWZpZWRTb3VyY2VzLmZyb21TeW1ib2xTZWFyY2hSZXN1bHQoZSk9PT1FZSkpJiYoZT10KX1lbHNleyh0LmNvbnRyYWN0cz90bi5RdWFsaWZpZWRTb3VyY2VzLmZyb21TeW1ib2xTZWFyY2hSZXN1bHQodCx0LmNvbnRyYWN0c1swXSk6dG4uUXVhbGlmaWVkU291cmNlcy5mcm9tU3ltYm9sU2VhcmNoUmVzdWx0KHQpKT09PUVlJiYoZT10KX1pZihlKWJyZWFrfWlmKGUmJigwLHB0LmlzRXhwYW5kYWJsZVJlc3VsdCkoZSkpe2NvbnN0IHQ9dm4oZSk7V2UoKGU9Pntjb25zdCBuPW5ldyBTZXQoZSk7cmV0dXJuIG4uYWRkKHQpLG59KSl9fSksW0VlLHdlLnJlbmRlclN5bWJvbFNlYXJjaExpc3RdKTtjb25zdCBLZT0oMCxsLnVzZU1lbW8pKCgoKT0+d2UucmVuZGVyU3ltYm9sU2VhcmNoTGlzdC5yZWR1Y2UoKChlLHQpPT57Y29uc3Qgbj12bih0KSxyPVVlLmhhcyhuKTtyZXR1cm4gZS5wdXNoKHQpLHImJnQuZ3JvdXBlZF9zeW1ib2xzJiZlLnB1c2goLi4udC5ncm91cGVkX3N5bWJvbHMubWFwKChlPT4oey4uLmUscGFyZW50OnR9KSkpKSxyJiZ0LmNvbnRyYWN0cyYmZS5wdXNoKC4uLnQuY29udHJhY3RzLm1hcCgoZT0+KHsuLi5lLHBhcmVudDp0fSkpKSksZX0pLFtdKSksW3dlLnJlbmRlclN5bWJvbFNlYXJjaExpc3QsVWVdKSxZZT0oMCxsLnVzZVJlZikobnVsbCk7KDAsbC51c2VFZmZlY3QpKCgoKT0+ey0xIT09eWUmJlllLmN1cnJlbnQ/LnNjcm9sbEludG9WaWV3KHtibG9jazoibmVhcmVzdCJ9KX0pLFt5ZSxZZV0pO2NvbnN0IFhlPURlLnRhYnNXaXRoSGlkZGVuTWFya2V0VHlwZS5pbmNsdWRlcyhtZSksamU9KDAsbC51c2VNZW1vKSgoKCk9Pntjb25zdCBlPWU9Pntjb25zdCB0PVQuZ2V0RXhjaGFuZ2VzPygwLFQuZ2V0RXhjaGFuZ2VzKSgpLmZpbHRlcigodD0+dC52YWx1ZT09PShlLnByZWZpeHx8ZS5leGNoYW5nZSkpKVswXTpudWxsO3JldHVybiB0Py5kZXNjfHwiIn07cmV0dXJuIEtlLm1hcCgoKHQsbik9PntpZigoMCxwdC5pc1N5bWJvbFNlYXJjaFJlc3VsdCkodCkpe2NvbnN0IHI9dm4odCksbz0oMCxwdC5pc0V4cGFuZGFibGVSZXN1bHQpKHQpLGw9KDAsTXQuaXNHcm91cGVkU3ltYm9sRXh0ZW5kZWQpKHQpLGE9bz9VZS5oYXMocik6dm9pZCAwLGk9bj09PXllLGM9d2UucmVuZGVyU3ltYm9sU2VhcmNoTGlzdC5maW5kSW5kZXgoKGU9PmUuc3ltYm9sPT09dC5zeW1ib2wmJmUuZXhjaGFuZ2U9PT10LmV4Y2hhbmdlKSkrMSx1PXQuY29udHJhY3RzP3RuLlF1YWxpZmllZFNvdXJjZXMuZnJvbVN5bWJvbFNlYXJjaFJlc3VsdCh0LHQuY29udHJhY3RzWzBdKTp0bi5RdWFsaWZpZWRTb3VyY2VzLmZyb21TeW1ib2xTZWFyY2hSZXN1bHQodCk7cmV0dXJue2tleTpuLG51bWJlckluTGlzdDpjLGlkOnIsZGFuZ2Vyb3VzVGl0bGVIVE1MOmJuKHQscWUpLGRhbmdlcm91c0Rlc2NyaXB0aW9uSFRNTDp0LmRlc2NyaXB0aW9uLGlzT2Zmc2V0Omwsb25DbGljazpkdC5iaW5kKG51bGwsdCxjKSxzb3VyY2U6dC5zb3VyY2Usc291cmNlMjp0LnNvdXJjZTIsdHlwZTp0LnR5cGUsdHlwZXNwZWNzOnQudHlwZXNwZWNzLGV4Y2hhbmdlTmFtZTpudWxsPT09dC5leGNoYW5nZT92b2lkIDA6dC5leGNoYW5nZSxleGNoYW5nZVRvb2x0aXA6ZSh0KSxwcmVmaXg6dC5wcmVmaXh8fHZvaWQgMCxtYXJrZXRUeXBlOigwLGVuLm1hcmtldFR5cGUpKHQudHlwZSx0LnR5cGVzcGVjcywhMSksaGlkZU1hcmtldFR5cGU6WGUsaXNFb2Q6dC5wYXJhbXM/LmluY2x1ZGVzKCJlb2QiKSYmImVjb25vbWljIiE9PXQudHlwZSxpc1lpZWxkOigwLGFuLmlzWWllbGQpKHQpLGlzRXhwYW5kZWQ6YSxpc0FjdGl2ZTpFZSYmIXQuY29udHJhY3RzP0VlPT09dTp2b2lkIDAsb25FeHBhbmRDbGljazpvP210LmJpbmQobnVsbCxyKTp2b2lkIDAsZnVsbFN5bWJvbE5hbWU6dSxpdGVtUmVmOmk/WWU6dm9pZCAwLGlzU2VsZWN0ZWQ6bj09PXllLGhpZGVNYXJrZWRMaXN0RmxhZzpzLGl0ZW06dCxsb2dvRGF0YTp0LmxvZ28/P3ZvaWQgMCxzb3VyY2VMb2dvczpbdCwuLi4hYSYmdC5ncm91cGVkX3N5bWJvbHM/dC5ncm91cGVkX3N5bWJvbHM6W11dLm1hcCgoZT0+aXQoZSkpKSxzaG9ydE5hbWU6KDAsbG4uc2FmZVNob3J0TmFtZSkodG4uUXVhbGlmaWVkU291cmNlcy5mcm9tU3ltYm9sU2VhcmNoUmVzdWx0KHQpKSxjdXJyZW5jeUNvZGU6dC5jdXJyZW5jeV9jb2RlLGlzUHJpbWFyeTohdC5ncm91cGVkX3N5bWJvbHMmJiFsJiZ0LmlzX3ByaW1hcnlfbGlzdGluZyxpc1Byb21vOnQuaXNfcHJvbW8sZm91bmRfYnlfY3VzaXA6dC5mb3VuZF9ieV9jdXNpcCxjdXNpcDp0LmN1c2lwLGZvdW5kX2J5X2lzaW46Qm9vbGVhbihhJiZ0Lmdyb3VwZWRfc3ltYm9sc3x8bCl8fHQuZm91bmRfYnlfaXNpbixpc2luOnQuaXNpbixpcG9EYXRlOigwLGFuLmlzUHJlSXBvKSh0LnR5cGUsdC50eXBlc3BlY3MpP3QuaXBvX29mZmVyX3RpbWU/P3QuaXBvX29mZmVyX2RhdGU6dm9pZCAwfX17Y29uc3R7cGFyZW50OnJ9PXQsbz10bi5RdWFsaWZpZWRTb3VyY2VzLmZyb21TeW1ib2xTZWFyY2hSZXN1bHQodC5wYXJlbnQsdCksbD12bihyKSxhPW49PT15ZSxpPXdlLnJlbmRlclN5bWJvbFNlYXJjaExpc3QuZmluZEluZGV4KChlPT5lLnN5bWJvbD09PXIuc3ltYm9sJiZlLmV4Y2hhbmdlPT09ci5leGNoYW5nZSkpKzE7cmV0dXJue2tleTpuLG51bWJlckluTGlzdDppLGlkOmwrdC5zeW1ib2wsZGFuZ2Vyb3VzVGl0bGVIVE1MOmJuKHQscWUpLGRhbmdlcm91c0Rlc2NyaXB0aW9uSFRNTDpgJHtyLmRlc2NyaXB0aW9ufWArKHQuZGVzY3JpcHRpb24/YCAoJHt0LmRlc2NyaXB0aW9ufSlgOiIiKSxpc09mZnNldDohMCxpc0VvZDp0LnBhcmFtcz8uaW5jbHVkZXMoImVvZCIpLGlzWWllbGQ6KDAsYW4uaXNZaWVsZCkodCksb25DbGljazpodC5iaW5kKG51bGwsdC5wYXJlbnQsdCxpKSxzb3VyY2VMb2dvczpbaXQocildLHR5cGU6ci50eXBlLGV4Y2hhbmdlTmFtZTpudWxsPT09ci5leGNoYW5nZT92b2lkIDA6ci5leGNoYW5nZSxleGNoYW5nZVRvb2x0aXA6ZShyKSxtYXJrZXRUeXBlOigwLAplbi5tYXJrZXRUeXBlKShyLnR5cGUsdC50eXBlc3BlY3MsITEpLGhpZGVNYXJrZXRUeXBlOlhlLGZ1bGxTeW1ib2xOYW1lOm8saXRlbVJlZjphP1llOnZvaWQgMCxpc0FjdGl2ZTpFZT9FZT09PW86dm9pZCAwLGlzU2VsZWN0ZWQ6YSxoaWRlTWFya2VkTGlzdEZsYWc6cyxpdGVtOnR9fX0pKX0pLFt3ZS5yZW5kZXJTeW1ib2xTZWFyY2hMaXN0LGQsVWUsdGUseWUsRixFZV0pLFplPSgwLGwudXNlTWVtbykoKCgpPT5mdW5jdGlvbihlLHQsbil7Y29uc3Qgcj1uZXcgTWFwKHQ/Lm1hcCgoZT0+W2UuaWQsZS51cmxQYXJhbV0pKSksbz1uW2VdO2xldCBsO2lmKG8pe2w9e307Zm9yKGNvbnN0W2UsdF1vZiBPYmplY3QuZW50cmllcyhvKSl7Y29uc3Qgbj1yLmdldChlKTtuJiYobFtuXT10KX19cmV0dXJuIGx9KG1lLEllKG1lKSxoZSkpLFttZSxJZSxoZV0pLEplPSgwLGwudXNlTWVtbykoKCgpPT53ZS5yZW5kZXJTeW1ib2xTZWFyY2hMaXN0LnNsaWNlKDAsMjApLm1hcCgoZT0+ZS5jb250cmFjdHM/dG4uUXVhbGlmaWVkU291cmNlcy5mcm9tU3ltYm9sU2VhcmNoUmVzdWx0KGUsZS5jb250cmFjdHNbMF0pOnRuLlF1YWxpZmllZFNvdXJjZXMuZnJvbVN5bWJvbFNlYXJjaFJlc3VsdChlKSkpKSxbd2UucmVuZGVyU3ltYm9sU2VhcmNoTGlzdF0pOygwLGwudXNlRWZmZWN0KSgoKCk9PntpZighRylyZXR1cm47Y29uc3QgZT1bInJlc2V0RmlsdGVyIiwicmVzZXRUYWJGaWx0ZXIiLCJlbXB0eSJdLmluY2x1ZGVzKHZlKT9bXTpKZSx0PXsuLi5aZSxyZXN1bHRfbGlzdDplfTtpZih0LnNlYXJjaF90eXBlfHwodC5zZWFyY2hfdHlwZT0iYml0Y29pbixjcnlwdG8iPT09bWU/ImNyeXB0byI6bWUpLCFtLmlzU2VwYXJhdGVTeW1ib2xTZWFyY2hUYWJzKXJldHVybiB0LmV4Y2hhbmdlPVRlPy5nZXRSZXF1ZXN0Q291bnRyeVZhbHVlKCk/P251bGwsdm9pZCBHKHQpO2lmKG1lKXtjb25zdCBlPVRlPy5nZXRSZXF1ZXN0Q291bnRyeVZhbHVlKCk/P251bGw7ZSYmKHQuY291bnRyeT1lKTtjb25zdCBuPVRlPy5nZXRSZXF1ZXN0RXhjaGFuZ2VWYWx1ZSgpPz9udWxsO24mJih0LmV4Y2hhbmdlPW4pfUcodCl9KSxbbWUsWmUsSmUsVGUsdmVdKTtjb25zdCBldD0oMCxsLnVzZU1lbW8pKCgoKT0+SHx8KHomJiJvcHRpb25zIj09PW1lP2U9PntsZXQgdD1lLmV4Y2hhbmdlO2lmKCgwLHkuaXNGZWF0dXJlRW5hYmxlZCkoInVzZV9zeW1ib2xfc2VhcmNoX29wdGlvbnNfZXhjaGFuZ2VzX2xpc3QiKSl7Y29uc3QgZT1bIkFNRVgiLCJCU0UiLCJDQk9FIiwiTkFTREFRIiwiTlNFIiwiTllTRSIsIlRWQyIsIlhFVFIiLCJFVVJFWCJdO2lmKCgwLHkuaXNGZWF0dXJlRW5hYmxlZCkoInVzZV9pbl9zeW1ib2xfc2VhcmNoX29wdGlvbnNfbWN4X2V4Y2hhbmdlIikmJmUucHVzaCgiTUNYIiksdCYmIWUuaW5jbHVkZXModCkpcmV0dXJuKDAscHQuZ2V0RW1wdHlTZWFyY2gpKCk7dHx8KHQ9ZS5qb2luKCIsIikpfXJldHVybigwLHB0LnNlYXJjaFN5bWJvbHNQYWdpbmF0ZWQpKHsuLi5lLGZpbHRlclF1ZXJ5UGFyYW1zOnsuLi5lLmZpbHRlclF1ZXJ5UGFyYW1zLG9ubHlfaGFzX29wdGlvbnM6InRydWUiLHNlYXJjaF90eXBlOnZvaWQgMH0sZXhjaGFuZ2U6dCx0eXBlOnZvaWQgMH0pfTp2b2lkIDApKSxbbWUsSCxaZSx6XSksdHQ9Xz8/RW4sbnQ9dHQhPT1FbixydD0oZSxuKT0+KHttb2RlOnRlLHNldE1vZGU6bmUsc2VsZWN0ZWRTZWFyY2hTb3VyY2U6VGUsc2V0U2VsZWN0ZWRTZWFyY2hTb3VyY2U6bS5pc1NlcGFyYXRlU3ltYm9sU2VhcmNoVGFicz9SZTpjZSxpc0FsbFNlYXJjaFNvdXJjZXNTZWxlY3RlZDp6ZS5pc0FsbFNlYXJjaFNvdXJjZXNTZWxlY3RlZCxhbGxTZWFyY2hTb3VyY2VzVGl0bGU6bS5pc1NlcGFyYXRlU3ltYm9sU2VhcmNoVGFicz9OLlRBQl9TT1VSQ0VfRklMVEVSX01BUFt3ZS5jdXJyZW50U3ltYm9sVHlwZV0/LmFsbFNlYXJjaFNvdXJjZXNUaXRsZTp2b2lkIDAsc2VsZWN0ZWRTeW1ib2xUeXBlOm1lLHNldFNlbGVjdGVkU3ltYm9sVHlwZTpwZSxzZWxlY3RlZEluZGV4OnllLHNldFNlbGVjdGVkSW5kZXg6YmUsb25DbG9zZTp0LHNldFN5bWJvbFNlYXJjaENvbnRlbnQ6TmUsc3ltYm9sU2VhcmNoQ29udGVudDp3ZSxzZWFyY2hSZWY6QWUsbGlzdFdyYXBSZWY6TGUsY2FjaGVkSW5wdXRWYWx1ZTpzZSxzZWFyY2hTcHJlYWRzOlNlLHNldFNlYXJjaFNwcmVhZHM6Z2UsaGFuZGxlTGlzdFdpZHRoOlN0LGlzU21hbGxXaWR0aDpPZSxmZWVkSXRlbXM6amUsaXNNb2JpbGU6ZSxzaG93U3ByZWFkQWN0aW9uczphLHNlbGVjdFNlYXJjaE9uSW5pdDppLGlzVGFibGV0Om4sc2VsZWN0ZWRJdGVtOktlW3llXSxmb3JjZVVwZGF0ZTpIZSxwbGFjZWhvbGRlcjpoLGluaXRpYWxTY3JlZW46Zyx0b2dnbGVFeHBhbmQ6bXQsb3BlbmVkSXRlbXM6VWUsb25TdWJtaXQ6YnQsb25TZWFyY2hDb21wbGV0ZTpkLGZvb3RlcjpSLHN5bWJvbFR5cGVzOlosY29udGVudEl0ZW06RSxzZWFyY2hJbnB1dDpBLGVtcHR5U3RhdGU6TCxhdXRvZm9jdXM6ayx1cHBlckNhc2VFbmFibGVkOmZuLGV4dGVybmFsSW5wdXQ6SixoYW5kbGVLZXlEb3duOm50P3ZvaWQgMDp5dCxjdXN0b21TZWFyY2hTeW1ib2xzOmV0LHNlYXJjaFNvdXJjZXM6eGUsc2VsZWN0ZWRGaWx0ZXJWYWx1ZXM6aGUsc2V0U2VsZWN0ZWRGaWx0ZXJWYWx1ZXM6ZmUsZmlsdGVyUXVlcnlQYXJhbXM6WmUsc3ltYm9sU2VhcmNoU3RhdGU6dmUsc2V0U3ltYm9sU2VhcmNoU3RhdGU6X2Usb25FbXB0eVJlc3VsdHM6UT9jdDp2b2lkIDAsb3ZlcnJpZGVRdWVyeVBhcmFtczokLGdldEZpbHRlcnNCeVN5bWJvbFR5cGU6SWUsc2hvd1JlY2VudHM6SyxzZWFyY2hJbml0aWF0aW9uUG9pbnQ6WSxhY3RpdmVTeW1ib2w6RWUsaGFuZGxlT3B0aW9uc0JhY2s6YXR9KSxvdD1CPz91dCxsdD12Pz8iZGl2IjtyZXR1cm4gbC5jcmVhdGVFbGVtZW50KGx0LG51bGwsbC5jcmVhdGVFbGVtZW50KFBlLk1hdGNoTWVkaWFNYXAse3J1bGVzOkZlLkRpYWxvZ0JyZWFrcG9pbnRzfSwoKHtUYWJsZXRTbWFsbDplLFRhYmxldE5vcm1hbDpyfSk9PmwuY3JlYXRlRWxlbWVudChWZS5TeW1ib2xTZWFyY2hJdGVtc0RpYWxvZ0NvbnRleHQuUHJvdmlkZXIsewp2YWx1ZTpydChlLHIpfSxsLmNyZWF0ZUVsZW1lbnQodHQsey4uLiJleGNoYW5nZSI9PT10ZT97dGl0bGU6Yy50KG51bGwsdm9pZCAwLG4oNDg2NzE0KSksZGF0YU5hbWU6ImV4Y2hhbmdlcy1zZWFyY2giLHJlbmRlcjooKT0+bC5jcmVhdGVFbGVtZW50KG90LHtzZWFyY2hTb3VyY2VzOndlLmN1cnJlbnRUYWJBdmFpbGFibGVTZWFyY2hTb3VyY2VzfSksYWRkaXRpb25hbEhlYWRlckVsZW1lbnQ6bC5jcmVhdGVFbGVtZW50KEp0LkJhY2tCdXR0b24se29uQ2xpY2s6KCk9Pm5lKCJzeW1ib2xTZWFyY2giKSxjbGFzc05hbWU6ZG4uYmFja0J1dHRvbixzaXplOiJtZWRpdW0iLGFyaWFMYWJlbDpjLnQobnVsbCx7Y29udGV4dDoiaW5wdXQifSxuKDMwNjYyNikpLHByZXNlcnZlUGFkZGluZ3M6ITAsZmxpcEljb25PblJ0bDooMCxjbi5pc1J0bCkoKX0pLGFkZGl0aW9uYWxFbGVtZW50UG9zOiJiZWZvcmUifTpyZSYmIm9wdGlvbnMiPT09dGU/e3RpdGxlOmwuY3JlYXRlRWxlbWVudChNZSx7c3ltYm9sOnJlfSksZGF0YU5hbWU6Im9wdGlvbnMtc2VhcmNoIixyZW5kZXI6KCk9PmwuY3JlYXRlRWxlbWVudChrZSx7c3ltYm9sOnJlLG9uU2VsZWN0OnN0LGluaXRpYWxPcHRpb246bGU/P3ZvaWQgMH0pLGFkZGl0aW9uYWxIZWFkZXJFbGVtZW50OmwuY3JlYXRlRWxlbWVudChKdC5CYWNrQnV0dG9uLHtvbkNsaWNrOmF0LGNsYXNzTmFtZTpkbi5iYWNrQnV0dG9uLHNpemU6Im1lZGl1bSIsYXJpYUxhYmVsOmMudChudWxsLHtjb250ZXh0OiJpbnB1dCJ9LG4oMzA2NjI2KSkscHJlc2VydmVQYWRkaW5nczohMCxmbGlwSWNvbk9uUnRsOigwLGNuLmlzUnRsKSgpfSksYWRkaXRpb25hbEVsZW1lbnRQb3M6ImJlZm9yZSJ9Ont0aXRsZTpwLGRhdGFOYW1lOiJzeW1ib2wtc2VhcmNoLWl0ZW1zLWRpYWxvZyIscmVuZGVyOigpPT5sLmNyZWF0ZUVsZW1lbnQoWnQsbnVsbCksYWRkaXRpb25hbEVsZW1lbnRQb3M6ImFmdGVyIn0sc2hvdWxkUmV0dXJuRm9jdXM6VixmdWxsU2NyZWVuOmYsb25DbG9zZTp0LG9uQ2xpY2tPdXRzaWRlOnQsb25LZXlEb3duOm50P3ZvaWQgMDp5dCxpc09wZW5lZDohMH0pKSkpKTtmdW5jdGlvbiBhdCgpe25lKCJzeW1ib2xTZWFyY2giKSxvZShudWxsKSxhZShudWxsKX1mdW5jdGlvbiBzdChlKXtkKFt7c3ltYm9sOmUscmVzb2x2ZWQ6ITF9XSx7c3ltYm9sVHlwZTptZX0pLHQoKX1mdW5jdGlvbiBpdChlKXtyZXR1cm57Y291bnRyeTplLmNvdW50cnk/LnRvTG9jYWxlTG93ZXJDYXNlKCkscHJvdmlkZXJJZDplLnByb3ZpZGVyX2lkLHNvdXJjZUxvZ29JZDplLnNvdXJjZV9sb2dvaWQ/P3ZvaWQgMH19ZnVuY3Rpb24gY3QoKXtTZXx8UT8uKEFlLmN1cnJlbnQ/LnZhbHVlfHwiIil9ZnVuY3Rpb24gZHQoZSx0LG4pe2h0KGUsZS5jb250cmFjdHM/LlswXSx0LG4pfWZ1bmN0aW9uIG10KGUpe2NvbnN0IHQ9bmV3IFNldChVZSk7dC5oYXMoZSk/dC5kZWxldGUoZSk6dC5hZGQoZSksV2UodCl9ZnVuY3Rpb24gaHQoZSxuLHIsbyl7Y29uc3QgbD1ufHxlLHtleGNoYW5nZTphfT1lO3tjb25zdCBlPXtuYW1lOmwuc3ltYm9sLGV4Y2hhbmdlOmEscHJlZml4OmwucHJlZml4LGZ1bGxOYW1lOmwuZnVsbF9uYW1lfTtpZihTZSlyZXR1cm4gZ3QoZSksdm9pZCBIZSgpO2lmKEFlLmN1cnJlbnQmJkFlLmN1cnJlbnQudmFsdWUuaW5jbHVkZXMoIiwiKSlyZXR1cm4gdm9pZCBndChlKX1pZih6JiYib3B0aW9ucyI9PT1tZSl7bmUoIm9wdGlvbnMiKTtjb25zdCBlPSgwLG0uZ2V0U3ltYm9sRnVsbE5hbWUpKHtuYW1lOmwuc3ltYm9sLGV4Y2hhbmdlOmEscHJlZml4OmwucHJlZml4LGZ1bGxOYW1lOmwuZnVsbF9uYW1lfSk7cmV0dXJuIGFlKG51bGwpLG9lKGUpLHZvaWQoQWUuY3VycmVudCYmKHNlLmN1cnJlbnQ9Zm4/QWUuY3VycmVudC52YWx1ZS50b1VwcGVyQ2FzZSgpOkFlLmN1cnJlbnQudmFsdWUpKX12dChbe3Jlc29sdmVkOiEwLHN5bWJvbDp0bi5RdWFsaWZpZWRTb3VyY2VzLmZyb21TeW1ib2xTZWFyY2hSZXN1bHQoZSxuKSxyZXN1bHQ6bH1dLHIsbyksdCgpfWZ1bmN0aW9uIFN0KGUpe0JlKCJmaXhlZCI9PT1EfHxlPD02NDApfWZ1bmN0aW9uIGd0KGUpe2lmKCFBZS5jdXJyZW50KXJldHVybjtjb25zdFt0LG5dPVMoQWUuY3VycmVudCxlLGZuKTtBZS5jdXJyZW50LnZhbHVlPXQsQWUuY3VycmVudC5zZXRTZWxlY3Rpb25SYW5nZShuLG4pLEFlLmN1cnJlbnQuZm9jdXMoKX1mdW5jdGlvbiB5dChlKXtpZihlLnRhcmdldCYmZS50YXJnZXQhPT1BZS5jdXJyZW50KXJldHVybjtjb25zdCBuPSgwLGZ0Lmhhc2hGcm9tRXZlbnQpKGUpO3N3aXRjaChuKXtjYXNlIDEzOmUucHJldmVudERlZmF1bHQoKSxidCghMCk7YnJlYWs7Y2FzZSAyNzppZihlLnByZXZlbnREZWZhdWx0KCksImV4Y2hhbmdlIj09PXRlKXJldHVybiB2b2lkIG5lKCJzeW1ib2xTZWFyY2giKTtpZigib3B0aW9ucyI9PT10ZSlyZXR1cm4gdm9pZCBhdCgpO3QoKX1zd2l0Y2goKDAsdW4ubWFwS2V5Q29kZVRvRGlyZWN0aW9uKShuKSl7Y2FzZSJibG9ja1ByZXYiOmlmKGUucHJldmVudERlZmF1bHQoKSwwPT09eWV8fCJnb29kIiE9PXZlKXJldHVybjtpZigtMT09PXllKXJldHVybiB2b2lkIGJlKDApO2JlKHllLTEpO2JyZWFrO2Nhc2UiYmxvY2tOZXh0IjppZihlLnByZXZlbnREZWZhdWx0KCkseWU9PT1qZS5sZW5ndGgtMXx8Imdvb2QiIT09dmUpcmV0dXJuO2JlKHllKzEpO2JyZWFrO2Nhc2UiaW5saW5lUHJldiI6e2lmKC0xPT09eWUpcmV0dXJuO2NvbnN0IHQ9amVbeWVdLHtpZDpuLGlzT2Zmc2V0OnIsb25FeHBhbmRDbGljazpvfT10O2lmKCFyJiZuJiZVZS5oYXMobikmJkJvb2xlYW4obykmJiFCb29sZWFuKEYpJiYoZS5wcmV2ZW50RGVmYXVsdCgpLG10KG4pKSxvKXJldHVybiB2b2lkIEY/LihlLCEwKTticmVha31jYXNlImlubGluZU5leHQiOntpZigtMT09PXllKXJldHVybjtjb25zdCB0PWplW3llXSx7aWQ6bixpc09mZnNldDpyLG9uRXhwYW5kQ2xpY2s6b309dDtpZihyfHwhbnx8VWUuaGFzKG4pfHwhQm9vbGVhbihvKXx8Qm9vbGVhbihGKXx8KGUucHJldmVudERlZmF1bHQoKSxtdChuKSksbylyZXR1cm4gdm9pZCBGPy4oZSwhMCk7YnJlYWt9fUY/LihlKX0KZnVuY3Rpb24gYnQoZSl7aWYoIUFlLmN1cnJlbnQpcmV0dXJuO2xldCBuPUFlLmN1cnJlbnQudmFsdWU7aWYoU2UmJm4pe2NvbnN0IHI9amVbeWVdO2lmKHImJnZvaWQgMCE9PXIuaXNFeHBhbmRlZCYmKHIub25DbGljaygpLG49QWUuY3VycmVudC52YWx1ZSksbi5pbmNsdWRlcygiLCIpKXtyZXR1cm4gdnQoX24obikubWFwKHluKSxudWxsKSx2b2lkKGUmJnQoKSl9cmV0dXJuIHZ0KFt7c3ltYm9sOmZuP24udG9VcHBlckNhc2UoKTpuLHJlc29sdmVkOiExfV0sbnVsbCksdm9pZChlJiZ0KCkpfWlmKG4uaW5jbHVkZXMoIiwiKSlyZXR1cm4gdnQoX24obikubWFwKHluKSxudWxsKSx2b2lkKGUmJnQoKSk7aWYoLTEhPT15ZSl7amVbeWVdLm9uQ2xpY2soKX1lbHNle3tjb25zdCByPWZuP24udG9VcHBlckNhc2UoKTpuO2lmKHImJiIiIT09ci50cmltKCkpe2NvbnN0IGU9X24ocik7aWYobW58fHZvaWQgMD09PVFlfHwtMSE9PXIuaW5kZXhPZigiOiIpKXt2dChlLm1hcCh5biksbnVsbCl9ZWxzZShmdW5jdGlvbihlKXtsZXQgdD0hMTtyZXR1cm4gUHJvbWlzZS5hbGwoZS5tYXAoKGU9Pi0xIT09ZS5pbmRleE9mKCI6Iil8fHQ/UHJvbWlzZS5yZXNvbHZlKHtzeW1ib2w6ZSxyZXNvbHZlZDohMX0pOih0PSEwLGFzeW5jIGZ1bmN0aW9uKGUpe2NvbnN0IHQ9KGF3YWl0KEdlPy5hY2NvdW50TWV0YWluZm8oKSkpPy5wcmVmaXgsbj10fHx2b2lkIDAscj1hd2FpdCgwLHB0LnNlYXJjaFN5bWJvbHNQYWdpbmF0ZWQpKHtzdHJpY3RNYXRjaDohMCxzZXJ2ZXJIaWdobGlnaHQ6ITEsdGV4dDplLGxhbmc6d2luZG93Lmxhbmd1YWdlfHwiIixicm9rZXJJZDpRZSxvbmx5VHJhZGFibGU6ITAsdW5oaWRlU3ltYm9sU2VhcmNoR3JvdXBzOiRlLGV4Y2hhbmdlOm59KTtpZigwIT09ci5zeW1ib2xzLmxlbmd0aCl7Y29uc3QgZT1yLnN5bWJvbHNbMF0se2NvbnRyYWN0czp0fT1lLG49dCYmdC5sZW5ndGg+MD90WzBdOnZvaWQgMCxvPWUucHJlZml4fHxlLmV4Y2hhbmdlLGw9bj9uLnN5bWJvbDplLnN5bWJvbDtpZihvJiZsKXJldHVybntzeW1ib2w6dG4uUXVhbGlmaWVkU291cmNlcy5mcm9tU3ltYm9sU2VhcmNoUmVzdWx0KGUsbikscmVzb2x2ZWQ6ITAscmVzdWx0OmV9fXJldHVybntzeW1ib2w6ZSxyZXNvbHZlZDohMX19KGUpKSkpKX0pKGUpLnRoZW4oKGU9PnZ0KGUsbnVsbCkpKX1lJiZ0KCl9fX1hc3luYyBmdW5jdGlvbiB2dChlLHQsbil7Y29uc3Rbe3Jlc3VsdDpyLHN5bWJvbDpvLHJlc29sdmVkOmx9XT1lLGE9QWUuY3VycmVudD8udmFsdWUscz1MZS5jdXJyZW50PygwLG0uZ2V0RmVhdHVyZWRTeW1ib2xOYW1lKShMZS5jdXJyZW50KTpudWxsLGk9IW58fCgwLHNuLmlzS2V5Ym9hcmRDbGljaykobik7bGV0IGM9U2U7dm9pZCAwIT09ciYmKDAscHQuaXNTeW1ib2xTZWFyY2hSZXN1bHQpKHIpJiYoYz0ic3ByZWFkIj09PXIudHlwZSksV3x8KGw/TShvKTphd2FpdCBPKG8pKSxkKGUse3N5bWJvbFR5cGU6bWUsZmVhdHVyZWRTeW1ib2xOYW1lOnMsaXNLZXlib2FyZEV2ZW50OmksbnVtYmVySW5MaXN0OnQsaW5wdXRWYWx1ZTphLGlzU3ByZWFkOmN9KX19ZnVuY3Rpb24geW4oZSl7cmV0dXJue3N5bWJvbDpmbj9lLnRvVXBwZXJDYXNlKCk6ZSxyZXNvbHZlZDohMX19ZnVuY3Rpb24gYm4oZSx0KXtjb25zdHticm9rZXJfc3ltYm9sOm4sc3ltYm9sOnIsZGVzY3JpcHRpb246b309ZTtyZXR1cm5gJHsic3ByZWFkIj09PWUudHlwZT9vOnJ9JHt0JiZuP2AgKCR7bn0pYDoiIn1gfWZ1bmN0aW9uIHZuKGUpe3JldHVybiBlLnN5bWJvbCtlLmV4Y2hhbmdlK2UuZGVzY3JpcHRpb259ZnVuY3Rpb24gX24oZSl7cmV0dXJuIGUuc3BsaXQoIiwiKS5tYXAoKGU9PmUudHJpbSgpKSkuZmlsdGVyKChlPT4iIiE9PWUpKX1mdW5jdGlvbiBFbihlKXtjb25zdHtpc01vYmlsZTp0LGlzVGFibGV0Om59PSgwLFllLnVzZUVuc3VyZWRDb250ZXh0KShWZS5TeW1ib2xTZWFyY2hJdGVtc0RpYWxvZ0NvbnRleHQpO3JldHVybiBsLmNyZWF0ZUVsZW1lbnQoQmUuQWRhcHRpdmVQb3B1cERpYWxvZyx7Li4uZSxjbGFzc05hbWU6cygpKGRuLmRpYWxvZywhdCYmKG4/ZG4udGFibGV0RGlhbG9nOmRuLmRlc2t0b3BEaWFsb2cpKSxiYWNrZHJvcDohMCxkcmFnZ2FibGU6ITF9KX1mdW5jdGlvbiBDbihlLHQpe3JldHVybigwLG0uaXNPcHRpb25EZWZhdWx0VmFsdWUpKGUpJiZ0P2UudW5kZXJseWluZzpudWxsfX0sNzE3MjYzKGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse1N5bWJvbFNlYXJjaE5vUmVzdWx0OigpPT5zfSk7dmFyIHI9big3Nzk0NzQpLG89big5MTQ0ODcpLGw9bi5uKG8pLGE9big5MDc2ODgpO2Z1bmN0aW9uIHMoZSl7Y29uc3R7Y2hpbGRyZW46dCxjbGFzc05hbWU6bn09ZTtyZXR1cm4gci5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6bCgpKGEuY29udGFpbmVyLG4pfSxyLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTphLmNoaWxkcmVuV3JhcHBlcn0sdCkpfX0sNzI3NTY5KGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse2NyZWF0ZUdyb3VwQ29sdW1uczooKT0+TixleGNoYW5nZVNlbGVjdERpc2FibGVkOigpPT54LGdldEFsbFN5bWJvbFR5cGVzVmFsdWU6KCk9PlQsZ2V0QXZhaWxhYmxlU2VhcmNoU291cmNlczooKT0+RSxnZXRBdmFpbGFibGVTeW1ib2xUeXBlczooKT0+QyxnZXREZWZhdWx0U2VhcmNoU291cmNlOigpPT5fLGdldEZlYXR1cmVkU3ltYm9sTmFtZTooKT0+dyxnZXRTeW1ib2xGdWxsTmFtZTooKT0+dixpc09wdGlvbkRlZmF1bHRWYWx1ZTooKT0+QSxpc1NlcGFyYXRlU3ltYm9sU2VhcmNoVGFiczooKT0+UixtYXBFY29ub215U291cmNlOigpPT5JfSk7dmFyIHI9big3ODMyNTQpLG89bigxODczMzkpO2NsYXNzIGx7Y29uc3RydWN0b3IoZSl7dGhpcy5fZXhjaGFuZ2U9ZX12YWx1ZSgpe3JldHVybiB0aGlzLl9leGNoYW5nZS52YWx1ZX1uYW1lKCl7cmV0dXJuKDAsby5pc0FsbFNlYXJjaFNvdXJjZXNTZWxlY3RlZCkodGhpcyk/ci50KG51bGwsdm9pZCAwLG4oMzg0MDIwKSk6dGhpcy5fZXhjaGFuZ2UubmFtZX1kZXNjcmlwdGlvbigpe3JldHVybiB0aGlzLl9leGNoYW5nZS5kZXNjfWNvdW50cnkoKXsKcmV0dXJuIHRoaXMuX2V4Y2hhbmdlLmNvdW50cnl9cHJvdmlkZXJJZCgpe3JldHVybiB0aGlzLl9leGNoYW5nZS5wcm92aWRlcklkfXNvdXJjZUlkKCl7cmV0dXJuIHRoaXMuX2V4Y2hhbmdlLnNvdXJjZUlkfWdyb3VwKCl7cmV0dXJuIHRoaXMuX2V4Y2hhbmdlLmdyb3VwfWluY2x1ZGVzKGUpe3JldHVybiBhKHRoaXMuX2V4Y2hhbmdlLGUpfWdldFJlcXVlc3RFeGNoYW5nZVZhbHVlKCl7cmV0dXJuIHRoaXMuX2V4Y2hhbmdlLnZhbHVlfWdldFJlcXVlc3RDb3VudHJ5VmFsdWUoKXt9fWZ1bmN0aW9uIGEoZSx0KXtjb25zdCBuPXQudG9Mb3dlckNhc2UoKSx7bmFtZTpyLGRlc2M6byxzZWFyY2hUZXJtczpsfT1lO3JldHVybiByLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMobil8fG8udG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhuKXx8dm9pZCAwIT09bCYmbC5zb21lKChlPT5lLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMobikpKX12YXIgcz1uKDY5NzQ3MiksaT1uKDkzMDIzMSksYz1uKDM5ODEzMik7dmFyIHU9big2NjE4NTgpO2NvbnN0IGQ9dVswXS52YWx1ZTt2YXIgbT1uKDU2OTM5OCkscD1uKDEzODYzOCksaD1uKDI1NTUxNiksZj1uKDk3MzA0MSk7Y2xhc3MgU3tjb25zdHJ1Y3RvcihlKXt0aGlzLl9kYXRhPWV9cmF3KCl7cmV0dXJuIHRoaXMuX2RhdGF9dmFsdWUoKXtyZXR1cm4gdGhpcy5fZGF0YS5jb3VudHJ5fW5hbWUoKXtjb25zdCBlPSJ1ayI9PT10aGlzLl9kYXRhLmNvdW50cnk/ImdiIjp0aGlzLl9kYXRhLmNvdW50cnk7cmV0dXJuIGhbZV0/KDAsZi50cmllc1RyYW5zbGF0ZUNvdW50cmllTmFtZSkoaFtlXS50aXRsZSk6ZX1kZXNjcmlwdGlvbigpe3JldHVybiB0aGlzLl9kYXRhLmV4Y2hhbmdlcy5tYXAoKGU9PmUubmFtZSkpLmpvaW4oIiwgIil9Y291bnRyeSgpe3JldHVybiB0aGlzLl9kYXRhLmNvdW50cnl9cHJvdmlkZXJJZCgpe3JldHVybiIifXNvdXJjZUlkKCl7fWdyb3VwKCl7cmV0dXJuIHRoaXMuX2RhdGEuZ3JvdXB9aW5jbHVkZXMoZSl7Y29uc3QgdD0idWsiPT09dGhpcy5fZGF0YS5jb3VudHJ5PyJnYiI6dGhpcy5fZGF0YS5jb3VudHJ5LG49ZS50b0xvd2VyQ2FzZSgpO3JldHVybiB0aGlzLm5hbWUoKS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKG4pfHx0aGlzLmNvdW50cnkoKS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKG4pfHxoW3RdLnRpdGxlPy50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKG4pfHx0aGlzLmRlc2NyaXB0aW9uKCkudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhuKXx8dGhpcy5fZGF0YS5leGNoYW5nZXMuc29tZSgodD0+YSh0LGUpKSl9Z2V0UmVxdWVzdEV4Y2hhbmdlVmFsdWUoKXt9Z2V0UmVxdWVzdENvdW50cnlWYWx1ZSgpe2NvbnN0e2NvdW50cnk6ZX09dGhpcy5fZGF0YTtyZXR1cm4oInVrIj09PWU/ImdiIjplKS50b1VwcGVyQ2FzZSgpfX1jbGFzcyBnIGV4dGVuZHMgU3tjb25zdHJ1Y3RvcihlKXtzdXBlcih7Li4uZS5yYXcoKSxleGNoYW5nZXM6W119KX19dmFyIHk9big3ODMxMTYpO2NvbnN0IGI9ISgwLGkuaXNGZWF0dXJlc2V0RW5hYmxlZCkoIndpZGdldCIpJiYoMCxtLmlzRmVhdHVyZUVuYWJsZWQpKCJzeW1ib2xfc2VhcmNoX2NvdW50cnlfc291cmNlcyIpO2Z1bmN0aW9uIHYoZSl7aWYoZS5mdWxsTmFtZSlyZXR1cm4gZS5mdWxsTmFtZTtsZXQgdDtyZXR1cm4gdD1lLnByZWZpeHx8ZS5leGNoYW5nZT8oZS5wcmVmaXh8fGUuZXhjaGFuZ2UpKyI6IitlLm5hbWU6ZS5uYW1lLHQucmVwbGFjZSgvPFwvP1tePl0rKD58JCkvZywiIil9ZnVuY3Rpb24gXygpe3JldHVybiBFKClbMF19ZnVuY3Rpb24gRSgpe2NvbnN0IGU9ZnVuY3Rpb24oZSl7cmV0dXJuIGUuZmlsdGVyKChlPT4hZS5oaWRlSW5TeW1ib2xTZWFyY2gpKX0oZnVuY3Rpb24oZSl7MDtyZXR1cm4oMCxzLmdldFdpZGdldENvbmZpZ3VyZWRFeGNoYW5nZXMpKGUsKDAscy5nZXRXaWRnZXRTeW1ib2xTZWFyY2hDb25maWcpKCkpfSgoMCxzLmdldEV4Y2hhbmdlcykoKSkpO2lmKCFiKXJldHVybigwLG8uY3JlYXRlU2VhcmNoU291cmNlcykobCxlKTtjb25zdCB0PWZ1bmN0aW9uKGUpe2NvbnN0IHQ9bmV3IE1hcDtyZXR1cm4gZS5mb3JFYWNoKChlPT57Y29uc3R7Y291bnRyeTpuLGZsYWc6cixncm91cDpvfT1lO3QuaGFzKG4pPygwLHAuZW5zdXJlRGVmaW5lZCkodC5nZXQobikpLmV4Y2hhbmdlcy5wdXNoKGUpOnQuc2V0KG4se2NvdW50cnk6bixncm91cDooMCxwLmVuc3VyZURlZmluZWQpKG8pLGZsYWc6cixleGNoYW5nZXM6W2VdfSl9KSksdH0oZS5maWx0ZXIoKGU9PmUuZ3JvdXAhPT1jLkV4Y2hhbmdlR3JvdXAuRWNvbm9teSkpKSxuPVtdLHI9dC5nZXQoIiIpO3JldHVybiByJiYodC5kZWxldGUoIiIpLG4ucHVzaCguLi4oMCxvLmNyZWF0ZVNlYXJjaFNvdXJjZXMpKGwsci5leGNoYW5nZXMpKSksbi5wdXNoKC4uLigwLG8uY3JlYXRlU2VhcmNoU291cmNlcykoUyxbLi4udC52YWx1ZXMoKV0pKSxufWZ1bmN0aW9uIEMoKXtyZXR1cm4iY21lIj09PXdpbmRvdy5UcmFkaW5nVmlldy53aWRnZXRDdXN0b21lcj9bXTooMCxpLmlzRmVhdHVyZXNldEVuYWJsZWQpKCJ3aWRnZXQiKT93aW5kb3cuQ2hhcnRBcGlJbnN0YW5jZS5zdXBwb3J0ZWRTeW1ib2xzVHlwZXMoKTp1LmZpbHRlcigoZT0+ImNmZCIhPT1lLnZhbHVlKSl9ZnVuY3Rpb24gVCgpe3JldHVybiBkfWZ1bmN0aW9uIHgoZSl7cmV0dXJuIFI/IXkuVEFCX1NPVVJDRV9GSUxURVJfTUFQW2VdOiJib3Zlc3BhIj09PXdpbmRvdy5UcmFkaW5nVmlldy53aWRnZXRDdXN0b21lcnx8ImNtZSI9PT13aW5kb3cuVHJhZGluZ1ZpZXcud2lkZ2V0Q3VzdG9tZXJ9ZnVuY3Rpb24gSShlKXtyZXR1cm4gZSBpbnN0YW5jZW9mIFM/bmV3IGcoZSk6ZX1mdW5jdGlvbiB3KGUpe3JldHVybiBlLnF1ZXJ5U2VsZWN0b3IoJ1tkYXRhLXNzLWl0ZW09ImZlYXR1cmVkIl0nKT8uZ2V0QXR0cmlidXRlKCJkYXRhLXN5bWJvbC1uYW1lIik/P251bGx9ZnVuY3Rpb24gTihlLHQ9Mil7aWYoMD09PWUubGVuZ3RoKXJldHVybltdO2lmKDE9PT10KXJldHVybltlXTtjb25zdCBuPU1hdGguZmxvb3IoZS5sZW5ndGgvMikrZS5sZW5ndGglMgo7cmV0dXJuW2Uuc2xpY2UoMCxuKSxlLnNsaWNlKG4pXS5maWx0ZXIoKGU9PmUubGVuZ3RoPjApKX1jb25zdCBSPSEoMCxpLmlzRmVhdHVyZXNldEVuYWJsZWQpKCJ3aWRnZXQiKTtmdW5jdGlvbiBBKGUpe3JldHVybiJzdHJpbmciIT10eXBlb2YgZX19LDk2NjM2NyhlLHQsbil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHIoZSl7Y29uc3QgdD1uZXcgVVJMU2VhcmNoUGFyYW1zO2Zvcihjb25zdFtuLHJdb2YgT2JqZWN0LmVudHJpZXMoZSkpdm9pZCAwIT09ciYmdC5zZXQobixTdHJpbmcocikpO3JldHVybiB0fW4uZCh0LHtjcmVhdGVTZWFyY2hQYXJhbXM6KCk9PnJ9KX0sOTAxMDIyKGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse1NFUEFSQVRPUl9QUkVGSVg6KCk9PnIsaXNTZXBhcmF0b3JJdGVtOigpPT5vfSk7Y29uc3Qgcj0iIyMjIjtmdW5jdGlvbiBvKGUpe3JldHVybiBlLnN0YXJ0c1dpdGgocil9fSwxMjg4MTQoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7UXVvdGVTZXNzaW9uU25hcHNob3RlcjooKT0+ZH0pO3ZhciByPW4oOTQ4MzgwKSxvPW4oMTUwMTUwKSxsPW4oMjE0OTg3KSxhPW4oMTM4NjM4KSxzPW4oMzY3OTQ2KSxpPW4oOTcwNzc0KSxjPW4oMzA5MDUyKTtjb25zdCB1PW5ldyBNYXAoW1siY2hhbmdlIiwiY2giXSxbImxhc3RfcHJpY2UiLCJscCJdLFsiY2hhbmdlX3BlcmNlbnQiLCJjaHAiXSxbInVwZGF0ZV9tb2RlX3NlY29uZHMiLG51bGxdXSk7bmV3IE1hcChbWyJjaCIsImNoYW5nZSJdLFsibHAiLCJsYXN0X3ByaWNlIl0sWyJjaHAiLCJjaGFuZ2VfcGVyY2VudCJdXSk7Y2xhc3MgZHtjb25zdHJ1Y3RvcihlKXtpZih0aGlzLl9vblN5bWJvbERhdGE9bmV3IHIuRGVsZWdhdGUsdGhpcy5faW5jb21wbGV0ZT1uZXcgU2V0LHRoaXMuX3VwZGF0ZWRGaWVsZHM9bmV3IE1hcCx0aGlzLl9jb25uZWN0ZWQ9ITEsdGhpcy5fYmF0Y2hlcj1udWxsLHRoaXMuX2hhbmRsZXI9ZT0+e3N3aXRjaChlLm1ldGhvZCl7Y2FzZSJjb25uZWN0ZWQiOnRoaXMuX2Nvbm5lY3RlZHx8KHRoaXMuX2Nvbm5lY3RlZD0hMCx0aGlzLl9oYW5kbGVDb25uZWN0ZWQoKSk7YnJlYWs7Y2FzZSJxdW90ZV9zeW1ib2xfZGF0YSI6dGhpcy5fY29ubmVjdGVkJiZ0aGlzLl9oYW5kbGVTeW1ib2xEYXRhKGUucGFyYW1zWzBdKTticmVhaztjYXNlInF1b3RlX2NvbXBsZXRlZCI6dGhpcy5fY29ubmVjdGVkJiZ0aGlzLl9oYW5kbGVDb21wbGV0ZURhdGEoZS5wYXJhbXNbMF0pO2JyZWFrO2Nhc2UiZGlzY29ubmVjdGVkIjp0aGlzLl9jb25uZWN0ZWQmJih0aGlzLl9jb25uZWN0ZWQ9ITEsdGhpcy5fYmF0Y2hlcj1udWxsKX19LDA9PT1lLmZpZWxkcy5sZW5ndGgpdGhyb3cgbmV3IEVycm9yKCdTdXBwb3J0IGZvciBlbXB0eSAiZmllbGRzIiBhcnJheSBpcyBub3QgaW1wbGVtZW50ZWQnKTtjb25zdHtwcm92aWRlcjp0PWkuUXVvdGVTZXNzaW9ufT1lO3RoaXMuX2ZpZWxkcz1uZXcgU2V0KGUuZmllbGRzKSx0aGlzLl9zZXNzaW9uPW5ldyB0KGUuYXBpLFsic25hcHNob3RlciIsZS5uYW1lLCgwLG8ucmFuZG9tSGFzaCkoKV0uZmlsdGVyKEJvb2xlYW4pLmpvaW4oIl8iKSksdGhpcy5fc2Vzc2lvbi5jb25uZWN0KHRoaXMuX2hhbmRsZXIpfWdldFNuYXBzaG90U3luYyhlLHQpe2NvbnN0IG49ZC5jYWNoZS5nZXQoZSk7cmV0dXJuIG4mJnRoaXMuX2lzU25hcHNob3RSZWFkeShuLHtmaWVsZHM6dCx0aW1lc3RhbXA6bnVsbH0pP246bnVsbH1nZXRTbmFwc2hvdHNGb3JBbGxTeW5jKGUsdCl7cmV0dXJuIGUubWFwKChlPT50aGlzLmdldFNuYXBzaG90U3luYyhlLHQpKSl9Z2V0U25hcHNob3QoZSx0LG4pe2NvbnN0IHI9bj8uc2lnbmFsPz9udWxsLG89bj8uZnJlc2huZXNzLHM9dm9pZCAwIT09bz9EYXRlLm5vdygpLW86bnVsbDtyZXR1cm4gbmV3IFByb21pc2UoKChuLG8pPT57aWYociYmci5hYm9ydGVkKXRocm93KDAsbC5jcmVhdGVBYm9ydEVycm9yKSgpO2NvbnN0IGk9KCk9Pnt0aGlzLl9vblN5bWJvbERhdGEudW5zdWJzY3JpYmUodGhpcyxjKSxvKCgwLGwuY3JlYXRlQWJvcnRFcnJvcikoKSl9LGM9KG89ZSk9PntpZihvIT09ZSlyZXR1cm47Y29uc3QgbD1kLmNhY2hlLmdldChlKTtsJiZ0aGlzLl9pc1NuYXBzaG90UmVhZHkobCx7dGltZXN0YW1wOnMsc3ltYm9sOmUsZmllbGRzOnR9KSYmKHRoaXMuX29uU3ltYm9sRGF0YS51bnN1YnNjcmliZSh0aGlzLGMpLHI/LnJlbW92ZUV2ZW50TGlzdGVuZXIoImFib3J0IixpKSxuKGwpKX07aWYoISgoKT0+e2NvbnN0IHI9ZC5jYWNoZS5nZXQoZSk7aWYoIXIpcmV0dXJuITE7Y29uc3Qgbz0oMCxhLmVuc3VyZU5vdE51bGwpKGQuY2FjaGUuZ2V0VGltZXMoZSkpO3JldHVybiEhdGhpcy5faXNTbmFwc2hvdFJlYWR5KHIse2ZpZWxkczp0LHN5bWJvbDplLHRpbWVzdGFtcDpzLHRpbWVzOm99KSYmKG4ociksITApfSkoKSYmKHI/LmFkZEV2ZW50TGlzdGVuZXIoImFib3J0IixpLHtvbmNlOiEwfSksdGhpcy5fb25TeW1ib2xEYXRhLnN1YnNjcmliZSh0aGlzLGMpLCF0aGlzLl9pbmNvbXBsZXRlLmhhcyhlKSkpe2lmKHRoaXMuX3VwZGF0ZWRGaWVsZHMuc2V0KGUsbmV3IFNldCksdGhpcy5faW5jb21wbGV0ZS5hZGQoZSksIXRoaXMuX2Nvbm5lY3RlZClyZXR1cm47aWYobnVsbD09PXRoaXMuX2JhdGNoZXIpe2NvbnN0IHQ9dGhpcy5fYmF0Y2hlcj17c3ltYm9sczpuZXcgU2V0KFtlXSkscHJvbWlzZTpQcm9taXNlLnJlc29sdmUoKS50aGVuKCgoKT0+e3RoaXMuX2JhdGNoZXI9PT10JiYodGhpcy5fc2Vzc2lvbi5xdW90ZUFkZFN5bWJvbHMoWy4uLnQuc3ltYm9sc10pLHRoaXMuX2JhdGNoZXI9bnVsbCl9KSl9fWVsc2UgdGhpcy5fYmF0Y2hlci5zeW1ib2xzLmFkZChlKX19KSl9Z2V0U25hcHNob3RzRm9yQWxsKGUsdCxuKXtyZXR1cm4gUHJvbWlzZS5hbGwoZS5tYXAoKGU9PnRoaXMuZ2V0U25hcHNob3QoZSx0LG4pKSkpfXN0YXRpYyByZWxheChlKXtyZXR1cm4gZX1zdGF0aWMgaXNTdWNjZXNzKGUpe3JldHVybiJlcnJvciIhPT1lLnN0YXR1c31zdGF0aWMgaGFzQWxsRmllbGRzKGUsdCl7Zm9yKGNvbnN0IG4gb2YgQXJyYXkuZnJvbSh0KSlpZighZS5oYXNPd25Qcm9wZXJ0eShuKSlyZXR1cm4hMTtyZXR1cm4hMH0KX2lzU25hcHNob3RSZWFkeShlLHQpe2NvbnN0e2ZpZWxkczpuLHRpbWVzdGFtcDpyLHRpbWVzOm8sc3ltYm9sOmx9PXQ7cmV0dXJuImVycm9yIj09PWUuc3RhdHVzfHwobnVsbCE9PXImJm8/dGhpcy5faXNBbGxGaWVsZHNVcFRvRGF0ZShlLG8sbixyKTpudWxsIT09ciYmbD90aGlzLl9pc0FsbEZpZWxkc1VwZGF0ZWQoZSxsLG4pOnRoaXMuX2hhc0FsbEZpZWxkcyhlLG4pKX1faXNBbGxGaWVsZHNVcGRhdGVkKGUsdCxuKXtpZigiZXJyb3IiPT09ZS5zdGF0dXMpcmV0dXJuITA7Y29uc3Qgcj10aGlzLl91cGRhdGVkRmllbGRzLmdldCh0KTtpZighcnx8IXIuc2l6ZSlyZXR1cm4hMTtmb3IoY29uc3QgZSBvZiBBcnJheS5mcm9tKG4pKWlmKCFyLmhhcyhlKSlyZXR1cm4hMTtyZXR1cm4hMH1faGFzQWxsRmllbGRzKGUsdCl7cmV0dXJuIGQuaGFzQWxsRmllbGRzKGUudmFsdWVzLEFycmF5LmZyb20odCkpfV9pc0FsbEZpZWxkc1VwVG9EYXRlKGUsdCxuLHIpe2lmKCJlcnJvciI9PT1lLnN0YXR1cylyZXR1cm4hMDtpZighdClyZXR1cm4hMTtmb3IoY29uc3QgZSBvZiBBcnJheS5mcm9tKG4pKXtjb25zdCBuPXQuZ2V0KGUpO2lmKCF0LmhhcyhlKXx8dm9pZCAwPT09bilyZXR1cm4hMTtpZihuPHIpcmV0dXJuITF9cmV0dXJuITB9X2hhbmRsZUNvbm5lY3RlZCgpe2lmKHRoaXMuX2ZpZWxkcy5zaXplPjApe2NvbnN0IGU9Wy4uLnRoaXMuX2ZpZWxkc10uZmxhdE1hcCgoZT0+e2NvbnN0IHQ9dS5nZXQoZSk7cmV0dXJuIG51bGwhPT10P3Q/P2U6W119KSk7dGhpcy5fc2Vzc2lvbi5xdW90ZVNldEZpZWxkcyhlKX10aGlzLl9pbmNvbXBsZXRlLnNpemU+MCYmdGhpcy5fc2Vzc2lvbi5xdW90ZUFkZFN5bWJvbHMoWy4uLnRoaXMuX2luY29tcGxldGVdKX1faGFuZGxlQ29tcGxldGVEYXRhKGUpe2NvbnN0IHQ9ZC5jYWNoZS5nZXQoZSk/P3tzeW1ib2xuYW1lOmUsc3RhdHVzOiJvayIsdmFsdWVzOnt9fTtkLmNhY2hlLnVwZGF0ZSh0LHRoaXMuX2ZpZWxkcywhMCksdGhpcy5fdXBkYXRlZEZpZWxkcy5zZXQoZSx0aGlzLl9maWVsZHMpLHRoaXMuX3Nlc3Npb24ucXVvdGVSZW1vdmVTeW1ib2xzKFtlXSksdGhpcy5faW5jb21wbGV0ZS5kZWxldGUoZSksdGhpcy5fb25TeW1ib2xEYXRhLmZpcmUoZSl9X2hhbmRsZVN5bWJvbERhdGEoZSl7KDAscy5ub3JtYWxpemVVcGRhdGVNb2RlKShlLnZhbHVlcyksZC5jYWNoZS51cGRhdGUoZSx0aGlzLl9maWVsZHMsITEpO2NvbnN0IHQ9ZS5zeW1ib2xuYW1lLG49KDAsYS5lbnN1cmVEZWZpbmVkKSh0aGlzLl91cGRhdGVkRmllbGRzLmdldCh0KSkscj1uZXcgU2V0KG4pO2Zvcihjb25zdCB0IG9mIHRoaXMuX2ZpZWxkcyllLnZhbHVlcy5oYXNPd25Qcm9wZXJ0eSh0KSYmci5hZGQodCk7dGhpcy5fdXBkYXRlZEZpZWxkcy5zZXQodCxyKSwiZXJyb3IiPT09ZS5zdGF0dXM/dGhpcy5faGFuZGxlQ29tcGxldGVEYXRhKHQpOnRoaXMuX29uU3ltYm9sRGF0YS5maXJlKHQpfX1kLmNhY2hlPWMuUVVPVEVfRklFTERTX0NBQ0hFfSw2NDc2MTQoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7ZmxhZ1VybDooKT0+aSxnZXRNb2NrZWRGbGFnOigpPT5jfSk7dmFyIHI9big4MTA0MSksbz1uKDg2MjIxMyksbD1uKDcxNzE0MSksYT1uKDQ1ODA1OSk7Y29uc3Qgcz17ZXJsOiJFVSIsdWs6IkdCIixiaXRjb2luOiJCVEMifTtmdW5jdGlvbiBpKGUsdCxuPW8uTG9nb1NpemUuTWVkaXVtKXtyZXR1cm4gZT8oZS50b0xvd2VyQ2FzZSgpaW4gcyYmKGU9c1tlXSksKDAsby5nZXRMb2dvVXJsUmVzb2x2ZXIpKCkuZ2V0Q291bnRyeUZsYWdVcmwoZS50b1VwcGVyQ2FzZSgpLG4pKTpjKHQpfWZ1bmN0aW9uIGMoZSl7cmV0dXJuIGU9PT1yLlN0ZFRoZW1lLkRhcms/bDphfX0sMzk4MTMyKGUsdCxuKXsidXNlIHN0cmljdCI7dmFyIHIsbztuLmQodCx7RXhjaGFuZ2VHcm91cDooKT0+cixnZXRFeGNoYW5nZXNHcm91cE5hbWU6KCk9PmF9KSxmdW5jdGlvbihlKXtlLk5vcnRoQW1lcmljYT0iTm9ydGggQW1lcmljYSIsZS5FdXJvcGU9IkV1cm9wZSIsZS5NaWRkbGVFYXN0QWZyaWNhPSJNaWRkbGUgRWFzdCAvIEFmcmljYSIsZS5NZXhpY29Tb3V0aEFtZXJpY2E9Ik1leGljbyBhbmQgU291dGggQW1lcmljYSIsZS5Bc2lhUGFjaWZpYz0iQXNpYSAvIFBhY2lmaWMiLGUuV29ybGR3aWRlPSJXb3JsZHdpZGUiLGUuQ3J5cHRvY3VycmVuY3k9IkNyeXB0b2N1cnJlbmN5IixlLkZvcmV4PSJGb3JleCIsZS5BbGxFeGNoYW5nZXM9IkFsbEV4Y2hhbmdlcyIsZS5PdGhlcnM9Ik90aGVycyIsZS5FY29ub215PSJFY29ub215In0ocnx8KHI9e30pKSxmdW5jdGlvbihlKXtlLlVTQT0iVW5pdGVkIFN0YXRlcyIsZS5DYW5hZGE9IkNhbmFkYSIsZS5FVT0iRXVyb3BlYW4gVW5pb24iLGUuR2VybWFueT0iR2VybWFueSIsZS5JdGFseT0iSXRhbHkiLGUuUG9sYW5kPSJQb2xhbmQiLGUuUnVzc2lhPSJSdXNzaWFuIEZlZGVyYXRpb24iLGUuU2VyYmlhPSJTZXJiaWEiLGUuU3BhaW49IlNwYWluIixlLlN3aXR6ZXJsYW5kPSJTd2l0emVybGFuZCIsZS5UdXJrZXk9IlR1cmtleSIsZS5VSz0iVW5pdGVkIEtpbmdkb20iLGUuQmFocmFpbj0iQmFocmFpbiIsZS5FZ3lwdD0iRWd5cHQiLGUuSXNyYWVsPSJJc3JhZWwiLGUuTmlnZXJpYT0iTmlnZXJpYSIsZS5TYXVkaUFyYWJpYT0iU2F1ZGkgQXJhYmlhIixlLlVBRT0iVW5pdGVkIEFyYWIgRW1pcmF0ZXMiLGUuQXJnZW50aW5hPSJBcmdlbnRpbmEiLGUuQnJhemlsPSJCcmF6aWwiLGUuQ2hpbGU9IkNoaWxlIixlLkN6ZWNoPSJDemVjaCIsZS5NZXhpY289Ik1leGljbyIsZS5BdXN0cmFsaWE9IkF1c3RyYWxpYSIsZS5DaGluYT0iTWFpbmxhbmQgQ2hpbmEiLGUuSW5kaWE9IkluZGlhIixlLkluZG9uZXNpYT0iSW5kb25lc2lhIixlLkhvbmdLb25nPSJIb25nIEtvbmcsIENoaW5hIixlLkphcGFuPSJKYXBhbiIsZS5NYWxheXNpYT0iTWFsYXlzaWEiLGUuTmV3WmVhbGFuZD0iTmV3IFplYWxhbmQiLGUuU2luZ2Fwb3JlPSJTaW5nYXBvcmUiLGUuVGFpd2FuPSJUYWl3YW4sIENoaW5hIixlLlRoYWlsYW5kPSJUaGFpbGFuZCIsZS5Tb3V0aEtvcmVhPSJTb3V0aCBLb3JlYSIsZS5QZXJ1PSJQZXJ1IiwKZS5Db2xvbWJpYT0iQ29sb21iaWEiLGUuU3dlZGVuPSJTd2VkZW4iLGUuSXJlbGFuZD0iSXJlbGFuZCIsZS5BdXN0cmlhPSJBdXN0cmlhIixlLk5vcndheT0iTm9yd2F5IixlLlFhdGFyPSJRYXRhciIsZS5EZW5tYXJrPSJEZW5tYXJrIixlLkljZWxhbmQ9IkljZWxhbmQiLGUuRmlubGFuZD0iRmlubGFuZCIsZS5MaXRodWFuaWE9IkxpdGh1YW5pYSIsZS5Fc3RvbmlhPSJFc3RvbmlhIixlLkxhdHZpYT0iTGF0dmlhIixlLlZpZXRuYW09IlZpZXRuYW0iLGUuU291dGhBZnJpY2E9IlNvdXRoIEFmcmljYSIsZS5OZXRoZXJsYW5kcz0iTmV0aGVybGFuZHMiLGUuQmVsZ2l1bT0iQmVsZ2l1bSIsZS5Qb3J0dWdhbD0iUG9ydHVnYWwiLGUuRnJhbmNlPSJGcmFuY2UiLGUuQmFuZ2xhZGVzaD0iQmFuZ2xhZGVzaCJ9KG98fChvPXt9KSk7dmFyIGw9bigxODUyNzEpO2Z1bmN0aW9uIGEoKXtyZXR1cm57W3IuTm9ydGhBbWVyaWNhXTpsLnQobnVsbCx2b2lkIDAsbig2ODk3MTYpKSxbci5FdXJvcGVdOmwudChudWxsLHZvaWQgMCxuKDk1MjM2NykpLFtyLk1pZGRsZUVhc3RBZnJpY2FdOmwudChudWxsLHZvaWQgMCxuKDYwMzA2NSkpLFtyLk1leGljb1NvdXRoQW1lcmljYV06bC50KG51bGwsdm9pZCAwLG4oNTk4MjQ3KSksW3IuQXNpYVBhY2lmaWNdOmwudChudWxsLHZvaWQgMCxuKDc2NDE3MSkpLFtyLldvcmxkd2lkZV06bC50KG51bGwsdm9pZCAwLG4oNTEzOTUzKSksW3IuQ3J5cHRvY3VycmVuY3ldOmwudChudWxsLHZvaWQgMCxuKDI5OTk2NikpLFtyLkZvcmV4XTpsLnQobnVsbCx2b2lkIDAsbig0OTc1NjkpKSxbci5PdGhlcnNdOmwudChudWxsLHZvaWQgMCxuKDk3MDkwOSkpLFtyLkVjb25vbXldOmwudChudWxsLHZvaWQgMCxuKDE3NjM3OCkpfX19LDYyMzUxMShlLHQsbil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHIoZSl7bGV0IHQ9bnVsbDtyZXR1cm4oKT0+KG51bGw9PT10JiYodD1lKCkpLHQpfW4uZCh0LHtsYXp5VmFsdWU6KCk9PnJ9KX0sNzg4MDEoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7c2Vzc2lvblRoZW5Mb2NhbDooKT0+cixzZXNzaW9uVGhlblR2U2V0dGluZ3M6KCk9Pm99KTt2YXIgcj17fTtuLnIociksbi5kKHIse2dldDooKT0+Zyxsb2dnZXI6KCk9PmYsc2V0OigpPT5TfSk7dmFyIG89e307bi5yKG8pLG4uZChvLHtnZXQ6KCk9Pl8sbG9nZ2VyOigpPT5iLHNldDooKT0+dn0pO3ZhciBsPW4oMjIxMDYxKSxhPW4oOTMyMzY1KTtpZig3OTc5NT09bi5qKXZhciBzPW4oMjM3MzY5KTtpZig3OTc5NT09bi5qKXZhciBpPW4oNzc2MTczKTt2YXIgYz1uKDgzOTQyNiksdT1uKDU2OTM5OCk7Y29uc3QgZD0oMCxsLmdldExvZ2dlcikoIkxpYi5TZXNzaW9uU2NvcGVkU2V0dGluZ3MiKTtjb25zdCBtPSgwLGMuZGVmYXVsdCkoKCgpPT57cmV0dXJuIHZvaWQgMCE9PXdpbmRvdy5UVkQ/bnVsbCE9KGU9d2luZG93LlRWRC5zZXNzaW9uU3RvcmFnZSkmJiJvYmplY3QiPT10eXBlb2YgZSYmImdldEl0ZW0iaW4gZSYmImZ1bmN0aW9uIj09dHlwZW9mIGUuZ2V0SXRlbSYmInNldEl0ZW0iaW4gZSYmImZ1bmN0aW9uIj09dHlwZW9mIGUuc2V0SXRlbSYmKDAsdS5pc0ZlYXR1cmVFbmFibGVkKSgidXNlX2Rlc2t0b3Bfc2Vzc2lvbl9zdG9yYWdlIik/d2luZG93LlRWRC5zZXNzaW9uU3RvcmFnZTpudWxsOigwLHUuaXNGZWF0dXJlRW5hYmxlZCkoInVzZV9icm93c2VyX3Nlc3Npb25fc3RvcmFnZSIpP3dpbmRvdy5zZXNzaW9uU3RvcmFnZTpudWxsO3ZhciBlfSkpO2Z1bmN0aW9uIHAoZSx0KXtjb25zdCBuPW0oKTtpZihudWxsIT09bil0cnl7bi5zZXRJdGVtKGUsdCl9Y2F0Y2goZSl7ZD8ubG9nV2Fybihgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSBmYWlsZWQsIGJlY2F1c2Ugb2YgZXhjZXB0aW9uOiAkeygwLHMuZ2V0RXJyb3JNZXNzYWdlKShlKX1gKX19ZnVuY3Rpb24gaChlKXtjb25zdCB0PW0oKTtyZXR1cm4gbnVsbD09PXQ/bnVsbDp0LmdldEl0ZW0oZSl9Y29uc3QgZj0oMCxsLmdldExvZ2dlcikoIkxpYi5TZXNzaW9uU2NvcGVkU2V0dGluZ3MiKTtmdW5jdGlvbiBTKGUsdCl7dHJ5e2NvbnN0IG49KDAsaS5zZXR0aW5nVmFsdWVUb1N0cmluZykodCk7cChlLG4pLGEuVFZMb2NhbFN0b3JhZ2Uuc2V0SXRlbShlLG4pfWNhdGNoKGUpe2Y/LmxvZ1dhcm4oYHNlc3Npb25UaGVuTG9jYWwuc2V0IGZhaWxlZDogJHsoMCxzLmdldEVycm9yTWVzc2FnZSkoZSl9YCl9fWZ1bmN0aW9uIGcoZSx0LG4pe3RyeXtyZXR1cm4oMCxpLnBhcnNlU2V0dGluZ1ZhbHVlKShmdW5jdGlvbihlLHQpe2xldCBuPWgoZSk7bnVsbD09PW4mJihuPWEuVFZMb2NhbFN0b3JhZ2UuZ2V0SXRlbShlKT8/dCxwKGUsbikpO3JldHVybiBufShlLCgwLGkuc2V0dGluZ1ZhbHVlVG9TdHJpbmcpKHQpKSxuKX1jYXRjaChlKXtyZXR1cm4gZj8ubG9nV2Fybihgc2Vzc2lvblRoZW5Mb2NhbC5nZXQgaXMgYWJvdXQgdG8gcmV0dXJuIHRoZSBkZWZhdWx0IHZhbHVlIGR1ZSB0byBlcnJvcjogJHsoMCxzLmdldEVycm9yTWVzc2FnZSkoZSl9YCksdH19dmFyIHk9big5MzA1NjYpO2NvbnN0IGI9KDAsbC5nZXRMb2dnZXIpKCJMaWIuU2Vzc2lvblNjb3BlZFNldHRpbmdzIik7ZnVuY3Rpb24gdihlLHQpe3RyeXtjb25zdCBuPSgwLGkuc2V0dGluZ1ZhbHVlVG9TdHJpbmcpKHQpO3AoZSxuKSx5LnNldFZhbHVlKGUsbil9Y2F0Y2goZSl7Yj8ubG9nV2Fybihgc2Vzc2lvblRoZW5UdlNldHRpbmdzLnNldCBmYWlsZWQ6ICR7KDAscy5nZXRFcnJvck1lc3NhZ2UpKGUpfWApfX1mdW5jdGlvbiBfKGUsdCxuKXt0cnl7cmV0dXJuKDAsaS5wYXJzZVNldHRpbmdWYWx1ZSkoZnVuY3Rpb24oZSx0KXtsZXQgbj1oKGUpO251bGw9PT1uJiYobj15LmdldFZhbHVlKGUpPz90LHAoZSxuKSk7cmV0dXJuIG59KGUsKDAsaS5zZXR0aW5nVmFsdWVUb1N0cmluZykodCkpLG4pfWNhdGNoKGUpe3JldHVybiBiPy5sb2dXYXJuKGBzZXNzaW9uVGhlblR2U2V0dGluZ3MuZ2V0IGlzIGFib3V0IHRvIHJldHVybiB0aGUgZGVmYXVsdCB2YWx1ZSBkdWUgdG8gZXJyb3I6ICR7KDAscy5nZXRFcnJvck1lc3NhZ2UpKGUpfWApLHR9fX0sNzc2MTczKGUsdCxuKXsidXNlIHN0cmljdCIKO2Z1bmN0aW9uIHIoZSx0KXtjb25zdCBuPUpTT04ucGFyc2UoZSk7aWYodm9pZCAwPT09dClyZXR1cm4gbjtpZih0KG4pKXJldHVybiBuO3Rocm93IG5ldyBUeXBlRXJyb3IoIlBhcnNlZCB2YWx1ZSBkb2VzIG5vdCBzYXRpc2Z5IHRoZSBwcm92aWRlZCB2YWxpZGF0aW9uIHByZWRpY2F0ZSIpfWZ1bmN0aW9uIG8oZSl7cmV0dXJuIEpTT04uc3RyaW5naWZ5KGUpfW4uZCh0LHtwYXJzZVNldHRpbmdWYWx1ZTooKT0+cixzZXR0aW5nVmFsdWVUb1N0cmluZzooKT0+b30pfSw1ODk5MTUoZSx0LG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcixvLGwsYSxzLGksYyx1O24uZCh0LHtPcHRpb25zVHJhY2tlcjooKT0+aX0pLGZ1bmN0aW9uKGUpe2UuVG9wVG9vbGJhcj0idG9wIHRvb2xiYXIiLGUuTGVmdFRvb2xiYXI9ImxlZnQgdG9vbGJhciIsZS5Cb3R0b21Ub29sYmFyPSJib3R0b20gdG9vbGJhciIsZS5Cb3R0b21QYW5lbD0iYm90dG9tIHBhbmVsIixlLlJpZ2h0UGFuZWw9InJpZ2h0IHBhbmVsIixlLldhdGNobGlzdD0id2F0Y2hsaXN0IixlLk1hbmFnZUxheW91dD0ibWFuYWdlIGxheW91dCIsZS5Ib3RrZXk9ImhvdGtleSJ9KHJ8fChyPXt9KSksZnVuY3Rpb24oZSl7ZS5TeW1ib2xTZWFyY2g9InN5bWJvbCBzZWFyY2giLGUuSW50ZXJ2YWw9ImludGVydmFsIixlLkNoYXJ0U3R5bGU9ImNoYXJ0IHN0eWxlIixlLkNvbXBhcmU9ImNvbXBhcmUiLGUuSW5kaWNhdG9ycz0iaW5kaWNhdG9ycyIsZS5GaW5hbmNpYWxzPSJmaW5hbmNpYWxzIixlLkluZGljYXRvclRlbXBsYXRlcz0iaW5kaWNhdG9yIHRlbXBsYXRlcyIsZS5BbGVydD0iYWxlcnQiLGUuQmFyUmVwbGF5PSJiYXIgcmVwbGF5IixlLlVuZG89InVuZG8iLGUuUmVkbz0icmVkbyIsZS5MYXlvdXRUeXBlPSJsYXlvdXQgdHlwZSIsZS5NYW5hZ2VMYXlvdXRzPSJtYW5hZ2UgbGF5b3V0cyIsZS5DaGFydFNldHRpbmdzPSJjaGFydCBzZXR0aW5ncyIsZS5GdWxsc2NyZWVuTW9kZT0iZnVsbHNjcmVlbiBtb2RlIixlLlNuYXBzaG90PSJzbmFwc2hvdCIsZS5UZWxlZ3JhbVNoYXJlPSJ0ZWxlZ3JhbSBzaGFyZSIsZS5QdWJsaXNoPSJwdWJsaXNoIixlLkNvcHk9ImNvcHkiLGUuVG9wVG9vbGJhclRyYWRlQnV0dG9uPSJ0b3BfdG9vbGJhcl90cmFkZV9idXR0b24iLGUuQ3Vyc29ycz0iY3Vyc29ycyIsZS5UcmVuZExpbmVUb29scz0idHJlbmQgbGluZSB0b29scyIsZS5HYW5BbmRGaWJUb29scz0iZ2FuIGFuZCBmaWIgdG9vbHMiLGUuR2VvbWV0cmljU2hhcGVzPSJnZW9tZXRyaWMgc2hhcGVzIixlLkFubm90YXRpb25Ub29scz0iYW5ub3RhdGlvbiB0b29scyIsZS5QYXR0ZXJucz0icGF0dGVybnMiLGUuUHJlZGljdGlvblRvb2xzPSJwcmVkaWN0aW9uIHRvb2xzIixlLkljb25zPSJpY29ucyIsZS5NZWFzdXJlPSJtZWFzdXJlIixlLlpvb21Jbj0iem9vbSBpbiIsZS5ab29tT3V0PSJ6b29tIG91dCIsZS5NYWduZXRNb2RlPSJtYWduZXQgbW9kZSIsZS5NYWduZXRTbmFwcz0ibWFnbmV0IHNuYXBzIixlLkRyYXdpbmdNb2RlPSJkcmF3aW5nIG1vZGUiLGUuTG9jaz0ibG9jayIsZS5IaWRlRHJhd2luZ3M9ImhpZGUiLGUuU3luYz0ic3luYyIsZS5SZW1vdmU9InJlbW92ZSIsZS5GYXZvcml0ZVRvb2xiYXI9ImZhdm9yaXRlIHRvb2xiYXIiLGUuT2JqZWN0VHJlZT0ib2JqZWN0IHRyZWUiLGUuRGF5PSIxZCIsZS5GaXZlRGF5cz0iNWQiLGUuTW9udGg9IjFtIixlLlRocmVlTW9udGhzPSIzbSIsZS5TaXhNb250aHM9IjZtIixlLllURD0ieXRkIixlLlllYXI9IjF5IixlLkZpdmVZZWFycz0iNXkiLGUuQWxsPSJhbGwiLGUuR29Ubz0iZ28gdG8iLGUuRGF0ZVJhbmdlPSJkYXRlIHJhbmdlIixlLlRpbWV6b25lPSJ0aW1lem9uZSIsZS5TZXNzaW9uPSJzZXNzaW9uIixlLkFkaj0iYWRqIixlLlBlcmNlbnQ9InBlcmNlbnQiLGUuTG9nPSJsb2ciLGUuQXV0bz0iYXV0byIsZS5NYXhpbWl6ZUNoYXJ0PSJtYXhpbWl6ZSBjaGFydCIsZS5XYXRjaGxpc3Q9IndhdGNobGlzdCIsZS5BbGVydHM9ImFsZXJ0cyIsZS5EYXRhV2luZG93PSJkYXRhIHdpbmRvdyIsZS5Ib3RsaXN0PSJob3RsaXN0IixlLkNhbGVuZGFyPSJjYWxlbmRhciIsZS5DYWxlbmRhckRpYWxvZz0iY2FsZW5kYXIgZGlhbG9nIixlLlVuaW9uQ2hhdHM9ImNoYXRzIixlLk9yZGVyUGFuZWw9Im9yZGVyIHBhbmVsIixlLkRPTT0iZG9tIixlLkhlbHBDZW50ZXI9ImhlbHAgY2VudGVyIixlLkV4cG9ydD0iZXhwb3J0IixlLk1ha2VBQ29weT0ibWFrZSBhIGNvcHkifShvfHwobz17fSkpLGZ1bmN0aW9uKGUpe2UuTWVudT0ibWVudSIsZS5Pbj0ib24iLGUuT2ZmPSJvZmYifShsfHwobD17fSkpLGZ1bmN0aW9uKGUpe2UuQ29weT0iY29weSIsZS5TaGFyZT0ic2hhcmUifShhfHwoYT17fSkpLGZ1bmN0aW9uKGUpe2xldCB0LG47IWZ1bmN0aW9uKGUpe2UuRmlsdGVyUGlsbD0iRklMVEVSX1BJTEwiLGUuRmlsdGVyUGlsbFJlc2V0PSJGSUxURVJfUElMTF9SRVNFVCIsZS5GaWx0ZXJSZXNldEFsbD0iRklMVEVSX1JFU0VUX0FMTCIsZS5GaWx0ZXJSZW1vdmVBbGw9IkZJTFRFUl9SRU1PVkVfQUxMIixlLkZpbHRlclJlbW92ZUluYWN0aXZlPSJGSUxURVJfUkVNT1ZFX0lOQUNUSVZFIixlLkFkZEZpbHRlcj0iQUREX0ZJTFRFUiIsZS5FZGl0RmlsdGVyPSJFRElUX0ZJTFRFUiIsZS5GaWx0ZXJQb3BvdmVyUmVzZXQ9IkZJTFRFUl9QT1BPVkVSX1JFU0VUIixlLkZpbHRlclBvcG92ZXJQcmVzZXQ9IkZJTFRFUl9QT1BPVkVSX1BSRVNFVCIsZS5GaWx0ZXJQb3BvdmVyRGVsZXRlPSJGSUxURVJfUE9QT1ZFUl9ERUxFVEUiLGUuRmlsdGVyUG9wb3ZlckN1c3RvbT0iRklMVEVSX1BPUE9WRVJfQ1VTVE9NIixlLkZpbHRlclBvcG92ZXJBcHBseT0iRklMVEVSX1BPUE9WRVJfQVBQTFkiLGUuU2VhcmNoRmlsdGVyRGlhbG9nT3BlbkZyb21QaWxsPSJTRUFSQ0hfRklMVEVSX0RJQUxPR19PUEVOX0ZST01fUElMTCIsZS5TZWFyY2hGaWx0ZXJEaWFsb2dDbGlja0ZpbHRlcj0iU0VBUkNIX0ZJTFRFUl9ESUFMT0dfQ0xJQ0tfRklMVEVSIixlLlNlYXJjaEZpbHRlckRpYWxvZ0NoYW5nZUdyb3VwPSJTRUFSQ0hfRklMVEVSX0RJQUxPR19DSEFOR0VfR1JPVVAiLAplLlNlYXJjaEZpbHRlckRpYWxvZ0ZpbHRlck9wdGlvbj0iU0VBUkNIX0ZJTFRFUl9ESUFMT0dfRklMVEVSX09QVElPTiIsZS5TZWFyY2hGaWx0ZXJEaWFsb2dGaWx0ZXJTb2x1dGlvbj0iU0VBUkNIX0ZJTFRFUl9ESUFMT0dfRklMVEVSX1NPTFVUSU9OIixlLlNlYXJjaEZpbHRlckRpYWxvZ0ZpbHRlck91dHNpZGU9IlNFQVJDSF9GSUxURVJfRElBTE9HX0ZJTFRFUl9PVVRTSURFIixlLlNlYXJjaEZpbHRlckRpYWxvZ0ZpbHRlckNsb3NlPSJTRUFSQ0hfRklMVEVSX0RJQUxPR19GSUxURVJfQ0xPU0UiLGUuU2VhcmNoRmlsdGVyRGlhbG9nRmlsdGVyTWVudUFwcGx5PSJTRUFSQ0hfRklMVEVSX0RJQUxPR19GSUxURVJfTUVOVV9BUFBMWSIsZS5DcmVhdGVFZGl0RmlsdGVyRGlhbG9nUmVzZXQ9IkNSRUFURV9FRElUX0ZJTFRFUl9ESUFMT0dfUkVTRVQiLGUuQ3JlYXRlRWRpdEZpbHRlckRpYWxvZ1NlbGVjdEFsbD0iQ1JFQVRFX0VESVRfRklMVEVSX0RJQUxPR19TRUxFQ1RfQUxMIixlLkNyZWF0ZUVkaXRGaWx0ZXJEaWFsb2dVbnNlbGVjdEFsbD0iQ1JFQVRFX0VESVRfRklMVEVSX0RJQUxPR19VTlNFTEVDVF9BTEwiLGUuQ3JlYXRlRWRpdEZpbHRlckRpYWxvZ0NhbmNlbD0iQ1JFQVRFX0VESVRfRklMVEVSX0RJQUxPR19DQU5DRUwiLGUuQ3JlYXRlRWRpdEZpbHRlckRpYWxvZ0FwcGx5PSJDUkVBVEVfRURJVF9GSUxURVJfRElBTE9HX0FQUExZIixlLkNyZWF0ZUVkaXRGaWx0ZXJEaWFsb2dGaWx0ZXJTb2x1dGlvbj0iQ1JFQVRFX0VESVRfRklMVEVSX0RJQUxPR19GSUxURVJfU09MVVRJT04iLGUuQ3JlYXRlRWRpdEZpbHRlckRpYWxvZ091dHNpZGU9IkNSRUFURV9FRElUX0ZJTFRFUl9ESUFMT0dfT1VUU0lERSIsZS5DcmVhdGVFZGl0RmlsdGVyRGlhbG9nQ2xvc2U9IkNSRUFURV9FRElUX0ZJTFRFUl9ESUFMT0dfQ0xPU0UiLGUuU2NyZWVuZXJWaWV3VHlwZT0iU0NSRUVORVJfVklFV19UWVBFIixlLlNlYXJjaENvbHVtbkRpYWxvZ09wZW5Gcm9tVGFibGVIZWFkZXI9IlNFQVJDSF9DT0xVTU5fRElBTE9HX09QRU5fRlJPTV9UQUJMRV9IRUFERVIiLGUuU2VhcmNoQ29sdW1uRGlhbG9nQ2xpY2tDb2x1bW49IlNFQVJDSF9DT0xVTU5fRElBTE9HX0NMSUNLX0NPTFVNTiIsZS5TZWFyY2hDb2x1bW5EaWFsb2dDbGVhckFsbD0iU0VBUkNIX0NPTFVNTl9ESUFMT0dfQ0xFQVJfQUxMIixlLlNlYXJjaENvbHVtbkRpYWxvZ1JlbW92ZUNvbHVtbj0iU0VBUkNIX0NPTFVNTl9ESUFMT0dfUkVNT1ZFX0NPTFVNTiIsZS5TZWFyY2hDb2x1bW5EaWFsb2dBcHBseT0iU0VBUkNIX0NPTFVNTl9ESUFMT0dfQVBQTFkiLGUuU2VhcmNoQ29sdW1uRGlhbG9nQ2FuY2VsPSJTRUFSQ0hfQ09MVU1OX0RJQUxPR19DQU5DRUwiLGUuU2VhcmNoQ29sdW1uRGlhbG9nT3V0c2lkZT0iU0VBUkNIX0NPTFVNTl9ESUFMT0dfT1VUU0lERSIsZS5TZWFyY2hDb2x1bW5EaWFsb2dDbG9zZT0iU0VBUkNIX0NPTFVNTl9ESUFMT0dfQ0xPU0UiLGUuU2VhcmNoQ29sdW1uRGlhbG9nQ2hhbmdlR3JvdXA9IlNFQVJDSF9DT0xVTU5fRElBTE9HX0NIQU5HRV9HUk9VUCIsZS5DcmVhdGVFZGl0Q29sdW1uRGlhbG9nQXBwbHk9IkNSRUFURV9FRElUX0NPTFVNTl9ESUFMT0dfQVBQTFkiLGUuQ3JlYXRlRWRpdENvbHVtbkRpYWxvZ0NhbmNlbD0iQ1JFQVRFX0VESVRfQ09MVU1OX0RJQUxPR19DQU5DRUwiLGUuQ3JlYXRlRWRpdENvbHVtbkRpYWxvZ091dHNpZGU9IkNSRUFURV9FRElUX0NPTFVNTl9ESUFMT0dfT1VUU0lERSIsZS5DcmVhdGVFZGl0Q29sdW1uRGlhbG9nQ2xvc2U9IkNSRUFURV9FRElUX0NPTFVNTl9ESUFMT0dfQ0xPU0UiLGUuQ3JlYXRlRWRpdENvbHVtblBvcG92ZXJNZW51QXBwbHk9IkNSRUFURV9FRElUX0NPTFVNTl9QT1BPVkVSX01FTlVfQVBQTFkiLGUuQ3JlYXRlRWRpdENvbHVtblBvcG92ZXJNZW51Q2FuY2VsPSJDUkVBVEVfRURJVF9DT0xVTU5fUE9QT1ZFUl9NRU5VX0NBTkNFTCIsZS5TY3JlZW5DYXJkUG9wdWxhclNlbGVjdD0iU0NSRUVOX0NBUkRfUE9QVUxBUl9TRUxFQ1QiLGUuQ29sdW1uU2V0U2VsZWN0PSJDT0xVTU5fU0VUX1NFTEVDVCIsZS5IZWFkZXJDb2xsYXBzZT0iSEVBREVSX0NPTExBUFNFIixlLkZ1bGxzY3JlZW49IkZVTExTQ1JFRU4iLGUuRXhwb3J0Q1NWPSJFWFBPUlRfQ1NWIixlLlNjcmVlbmVyU2V0dGluZ3NPcGVuRnJvbUJ1dHRvbj0iU0NSRUVORVJfU0VUVElOR1NfT1BFTl9GUk9NX0JVVFRPTiIsZS5TY3JlZW5lclNldHRpbmdzQ2xpY2tBdXRvUmVmcmVzaE9wdGlvbj0iU0NSRUVORVJfU0VUVElOR1NfQ0xJQ0tfQVVUT19SRUZSRVNIX09QVElPTiIsZS5TY3JlZW5lclNldHRpbmdzQ2xpY2tDb252ZXJ0Q3VycmVuY3lPcHRpb249IlNDUkVFTkVSX1NFVFRJTkdTX0NMSUNLX0NPTlZFUlRfQ1VSUkVOQ1lfT1BUSU9OIixlLlNjcmVlbmVyU2V0dGluZ3NHcm91cEJ5SXNpblRvZ2dsZVJlZ3dhbGxPcGVuPSJTRVRUSU5HU19HUk9VUF9CWV9JU0lOX1RPR0dMRV9SRUdXQUxMX09QRU4iLGUuQ29sdW1uU2VhcmNoU3ltYm9sUmVnd2FsbE9wZW49IkNPTFVNTl9TRUFSQ0hfU1lNQk9MX1JFR1dBTExfT1BFTiIsZS5Db2x1bW5Db250ZXh0TWVudVNvcnRBc2M9IkNPTFVNTl9DT05URVhUX01FTlVfU09SVF9BU0MiLGUuQ29sdW1uQ29udGV4dE1lbnVTb3J0RGVzYz0iQ09MVU1OX0NPTlRFWFRfTUVOVV9TT1JUX0RFU0MiLGUuQ29sdW1uQ29udGV4dE1lbnVTb3J0UmVnd2FsbE9wZW49IkNPTFVNTl9DT05URVhUX01FTlVfU09SVF9SRUdXQUxMX09QRU4iLGUuQ29sdW1uQ29udGV4dE1lbnVNb3ZlTGVmdD0iQ09MVU1OX0NPTlRFWFRfTUVOVV9NT1ZFX0xFRlQiLGUuQ29sdW1uQ29udGV4dE1lbnVNb3ZlUmlnaHQ9IkNPTFVNTl9DT05URVhUX01FTlVfTU9WRV9SSUdIVCIsZS5Db2x1bW5Db250ZXh0TWVudU1vdmVUb1RoZUVuZD0iQ09MVU1OX0NPTlRFWFRfTUVOVV9NT1ZFX1RPX1RIRV9FTkQiLGUuQ29sdW1uQ29udGV4dE1lbnVNb3ZlVG9UaGVTdGFydD0iQ09MVU1OX0NPTlRFWFRfTUVOVV9NT1ZFX1RPX1RIRV9TVEFSVCIsZS5Db2x1bW5Db250ZXh0TWVudVJlbW92ZUNvbHVtbj0iQ09MVU1OX0NPTlRFWFRfTUVOVV9SRU1PVkVfQ09MVU1OIiwKZS5Db2x1bW5Db250ZXh0TWVudUNoYW5nZVBhcmFtPSJDT0xVTU5fQ09OVEVYVF9NRU5VX0NIQU5HRV9QQVJBTSIsZS5Tb3J0U2VsZWN0T3BlbkZyb21CdXR0b249IlNPUlRfU0VMRUNUX09QRU5fRlJPTV9CVVRUT04iLGUuU29ydFNlbGVjdENsaWNrQ29sdW1uPSJTT1JUX1NFTEVDVF9DTElDS19DT0xVTU4iLGUuU2NyZWVuZXJNYW51YWxSZWZyZXNoT3B0aW9uPSJTQ1JFRU5FUl9NQU5VQUxfUkVGUkVTSF9PUFRJT04iLGUuTWFya2V0UHJpbWFyeUxpc3RpbmdUb2dnbGU9Ik1BUktFVF9QUklNQVJZX0xJU1RJTkdfVE9HR0xFIixlLk1hcmtldENoYW5nZU9wdGlvbj0iTUFSS0VUX0NIQU5HRV9PUFRJT04iLGUuTWFya2V0U2VsZWN0TXVsdGlwbGU9Ik1BUktFVF9TRUxFQ1RfTVVMVElQTEUiLGUuT3BlblNjcmVlbmVyPSJPUEVOX1NDUkVFTkVSIixlLkNoYW5nZVN0YW5kYWxvbmVUeXBlPSJDSEFOR0VfU1RBTkRBTE9ORV9UWVBFIixlLlRhYmxlQ29udGV4dE1lbnVBZGRTeW1ib2xUb1dhdGNobGlzdD0iVEFCTEVfQ09OVEVYVF9NRU5VX0FERF9TWU1CT0xfVE9fV0FUQ0hMSVNUIixlLlRhYmxlUm93QWRkU3ltYm9sVG9XYXRjaGxpc3Q9IlRBQkxFX1JPV19BRERfU1lNQk9MX1RPX1dBVENITElTVCIsZS5XYXRjaGxpc3RBcHBsaWVkU2Nhbj0iV0FUQ0hMSVNUX0FQUExJRURfU0NBTiIsZS5XYXRjaGxpc3RQb3BvdmVyT3Blbj0iV0FUQ0hMSVNUX1BPUE9WRVJfT1BFTiIsZS5TY3JlZW5BY3Rpb25zRHJvcGRvd25Jc09wZW49IlNDUkVFTkVSX01FTlVfT1BFTiIsZS5TY3JlZW5BY3Rpb25zRHJvcGRvd25SZWNlbnRTY3JlZW49Ik9QRU5fUkVDRU5UTFlfVVNFRCIsZS5TYXZlZFNjcmVlblNoYXJlPSJTQVZFRF9TQ1JFRU5fU0hBUkUiLGUuU2hhcmVkU2NyZWVuT3Blbj0iU0hBUkVEX1NDUkVFTl9PUEVOIixlLlNoYXJlZFNjcmVlbkNvcHk9IlNIQVJFRF9TQ1JFRU5fQ09QWSIsZS5TYXZlZFNjcmVlbkF1dG9zYXZlPSJTQVZFRF9TQ1JFRU5fQVVUT1NBVkUiLGUuU2F2ZWRTY3JlZW5NYWtlQ29weT0iU0FWRURfU0NSRUVOX01BS0VfQ09QWSIsZS5TYXZlU2NyZWVuPSJTQVZFX1NDUkVFTiIsZS5DcmVhdGVTY3JlZW49IkNSRUFURV9TQ1JFRU4iLGUuRmlsdGVyQ3VzdG9tUGFyYW1BcHBseT0iRklMVEVSX0NVU1RPTV9QQVJBTV9BUFBMWSIsZS5Db2x1bW5DdXN0b21QYXJhbUFwcGx5PSJDT0xVTU5fQ1VTVE9NX1BBUkFNX0FQUExZIixlLlNjcmVlblVuZG89IlNDUkVFTl9VTkRPIixlLlNjcmVlblJlZG89IlNDUkVFTl9SRURPIixlLlNjcmVlbkNvbHVtbkFycm93U29ydD0iU0NSRUVOX0NPTFVNTl9BUlJPV19TT1JUIixlLlNjcmVlbkNvbHVtblNvcnRSZWd3YWxsT3Blbj0iU0NSRUVOX0NPTFVNTl9TT1JUX1JFR1dBTExfT1BFTiIsZS5SZWdpc3RyYXRpb25Cb3R0b21CYXJDbGlja1JlZ2lzdGVyPSJSRUdJU1RSQVRJT05fQk9UVE9NX0JBUl9DTElDS19SRUdJU1RFUiIsZS5TY3JlZW5lclNhdmVBcz0iU0NSRUVORVJfU0FWRV9BUyIsZS5QaW5lU2NyZWVuZXJTZWxlY3RXYXRjaGxpc3Q9IlBJTkVfU0NSRUVORVJfU0VMRUNUX1dBVENITElTVCIsZS5QaW5lU2NyZWVuZXJTZWxlY3RJbmRpY2F0b3I9IlBJTkVfU0NSRUVORVJfU0VMRUNUX0lORElDQVRPUiIsZS5QaW5lU2NyZWVuZXJDbGlja1NjYW49IlBJTkVfU0NSRUVORVJfQ0xJQ0tfU0NBTiIsZS5QaW5lU2NyZWVuZXJDbGlja1N0b3BTY2FuPSJQSU5FX1NDUkVFTkVSX0NMSUNLX1NUT1BfU0NBTiIsZS5QaW5lU2NyZWVuZXJEb3dubG9hZFJlc3VsdHNBc0NTVj0iUElORV9TQ1JFRU5FUl9ET1dOTE9BRF9SRVNVTFRTX0FTX0NTViIsZS5QaW5lU2NyZWVuZXJTYXZlUmVzdWx0c0FzV2F0Y2hsaXN0PSJQSU5FX1NDUkVFTkVSX1NBVkVfUkVTVUxUU19BU19XQVRDSExJU1QiLGUuUGluZVNjcmVlbmVyUmVzdWx0c0FzV2F0Y2hsaXN0U3VjY2Vzc2Z1bGx5U2F2ZWQ9IlBJTkVfU0NSRUVORVJfUkVTVUxUU19BU19XQVRDSExJU1RfU1VDQ0VTU0ZVTExZX1NBVkVEIixlLlBpbmVTY3JlZW5lckFib3V0PSJQSU5FX1NDUkVFTkVSX0FCT1VUIixlLlNjcmVlbmVyQWlTdGFydD0iU0NSRUVORVJfQUlfU1RBUlQiLGUuU2NyZWVuZXJBaUV4cGxhbmF0aW9uPSJTQ1JFRU5FUl9BSV9FWFBMQU5BVElPTiIsZS5TY3JlZW5lckFpR2VuZXJhdGVGaWx0ZXJzPSJTQ1JFRU5FUl9BSV9HRU5FUkFURV9GSUxURVJTIixlLlNjcmVlbmVyQWlTdG9wPSJTQ1JFRU5FUl9BSV9TVE9QIixlLlNjcmVlbmVyQWlQb3B1bGFyU2VsZWN0PSJTQ1JFRU5FUl9BSV9QT1BVTEFSX1NFTEVDVCJ9KHQ9ZS5CdXR0b258fChlLkJ1dHRvbj17fSkpLGZ1bmN0aW9uKGUpe2UuU2Nyb2xsRGVwdGg9IlNDUk9MTF9ERVBUSCJ9KG49ZS5TY3JvbGx8fChlLlNjcm9sbD17fSkpfShzfHwocz17fSkpLGZ1bmN0aW9uKGUpe2xldCB0LG47IWZ1bmN0aW9uKGUpe2UuRGV0YWlsc1dpZGdldD0iREVUQUlMU19XSURHRVQiLGUuTW9yZURpYWxvZz0iTU9SRV9ESUFMT0ciLGUuUHJvZHVjdERpYWxvZz0iUFJPRFVDVF9ESUFMT0ciLGUuUHJvZHVjdFBhZ2U9IlBST0RVQ1RfUEFHRSIsZS5TeW1ib2xQYWdlVGFiPSJTWU1CT0xfUEFHRV9UQUIiLGUuU3ltYm9sU2VhcmNoPSJTWU1CT0xfU0VBUkNIIixlLk9wdGlvbnNXZWJ2aWV3PSJPUFRJT05TX1dFQlZJRVcifSh0PWUuU291cmNlfHwoZS5Tb3VyY2U9e30pKSxmdW5jdGlvbihlKXtlLkJyb2tlckNvbm5lY3Q9IkJST0tFUl9DT05ORUNUIixlLkJyb2tlclNlbGVjdD0iQlJPS0VSX1NFTEVDVCIsZS5CdWlsZGVyRnVsbHNjcmVlbk1vZGU9IkJVSUxERVJfRlVMTFNDUkVFTl9NT0RFIixlLkJ1aWxkZXJUYWJzPSJCVUlMREVSX1RBQlMiLGUuQ29ubmVjdEJyb2tlckJ1dHRvbj0iQ09OTkVDVF9CUk9LRVJfQlVUVE9OIixlLkNvcHlTaGFyZWRTdHJhdGVneT0iQ09QWV9TSEFSRURfU1RSQVRFR1kiLGUuQ3JlYXRlU3RyYXRlZ3lUZW1wbGF0ZUJ1dHRvbj0iQ1JFQVRFX1NUUkFURUdZX1RFTVBMQVRFX0JVVFRPTiIsZS5EcmFnU3RyYXRlZ3lDaGFydFBvc2l0aW9uUG9pbnQ9IkRSQUdfU1RSQVRFR1lfQ0hBUlRfUE9TSVRJT05fUE9JTlQiLGUuR3JlZWtTZWxlY3Q9IkdSRUVLX1NFTEVDVCIsCmUuTmV0U3RyYXRlZ3lDaGFydD0iTkVUX1NUUkFURUdZX0NIQVJUIixlLk9wZW5GdWxsc2NyZWVuVGFibGVCdXR0b249Ik9QRU5fRlVMTFNDUkVFTl9UQUJMRV9CVVRUT04iLGUuT3B0aW9uc0NoYWluQWRkQ29sdW1uPSJPUFRJT05TX0NIQUlOX0FERF9DT0xVTU4iLGUuT3B0aW9uc0NoYWluRXhwYW5kUm93PSJPUFRJT05TX0NIQUlOX0VYUEFORF9ST1ciLGUuT3B0aW9uc0NoYWluSW52b2tlT3JkZXI9Ik9QVElPTlNfQ0hBSU5fSU5WT0tFX09SREVSIixlLk9wdGlvbnNDaGFpbk1hbnVhbERhdGVSYW5nZVNlbGVjdD0iT1BUSU9OU19DSEFJTl9NQU5VQUxfREFURV9SQU5HRV9TRUxFQ1QiLGUuT3B0aW9uc0NoYWluTWFudWFsU3RyaWtlUmFuZ2VTZWxlY3Q9Ik9QVElPTlNfQ0hBSU5fTUFOVUFMX1NUUklLRV9SQU5HRV9TRUxFQ1QiLGUuT3B0aW9uc0NoYWluT3Blbj0iT1BUSU9OU19DSEFJTl9PUEVOIixlLk9wdGlvbnNDaGFpblJlbW92ZUNvbHVtbj0iT1BUSU9OU19DSEFJTl9SRU1PVkVfQ09MVU1OIixlLk9wdGlvbnNDaGFpblNlbGVjdFNlcmllcz0iT1BUSU9OU19DSEFJTl9TRUxFQ1RfU0VSSUVTIixlLk9wdGlvbnNDaGFpblNlbGVjdFN0cmlrZXM9Ik9QVElPTlNfQ0hBSU5fU0VMRUNUX1NUUklLRVMiLGUuT3B0aW9uc0NoYWluU3BlY2lmaWNEYXRlc1NlbGVjdD0iT1BUSU9OU19DSEFJTl9TUEVDSUZJQ19EQVRFU19TRUxFQ1QiLGUuT3B0aW9uc0NoYWluU3BlY2lmaWNTdHJpa2VzU2VsZWN0PSJPUFRJT05TX0NIQUlOX1NQRUNJRklDX1NUUklLRVNfU0VMRUNUIixlLk9wdGlvbnNDaGFpblRpbWVTcGVudD0iT1BUSU9OU19DSEFJTl9USU1FX1NQRU5UIixlLlBvc2l0aW9uVmlzaWJpbGl0eUJ1dHRvbj0iUE9TSVRJT05fVklTSUJJTElUWV9CVVRUT04iLGUuU2lnbmluV2l0aEZlYXR1cmU9IlNJR05JTl9XSVRIX0ZFQVRVUkUiLGUuU3ByZWFkZXhGaWx0ZXJDaGFuZ2U9IlNQUkVBREVYX0ZJTFRFUl9DSEFOR0UiLGUuU3RyYXRlZ2llc0dyb3VwPSJTVFJBVEVHSUVTX0dST1VQIixlLlN0cmF0ZWd5QWRkUG9zaXRpb25CdXR0b249IlNUUkFURUdZX0FERF9QT1NJVElPTl9CVVRUT04iLGUuU3RyYXRlZ3lBZGp1c3REaXNjbG9zdXJlPSJTVFJBVEVHWV9BREpVU1RfRElTQ0xPU1VSRSIsZS5TdHJhdGVneUNoYXJ0RXJyb3I9IlNUUkFURUdZX0NIQVJUX0VSUk9SIixlLlN0cmF0ZWd5Q2hhcnRTaGFyaW5nPSJTVFJBVEVHWV9DSEFSVF9TSEFSSU5HIixlLlN0cmF0ZWd5RmluZGVyQ3JlYXRlU3RyYXRlZ3k9IlNUUkFURUdZX0ZJTkRFUl9DUkVBVEVfU1RSQVRFR1kiLGUuU3RyYXRlZ3lMaXN0U2V0dGluZ3NCdXR0b249IlNUUkFURUdZX0xJU1RfU0VUVElOR1NfQlVUVE9OIixlLlN0cmF0ZWd5TW9kUG9zaXRpb25DaGFpbj0iU1RSQVRFR1lfTU9EX1BPU0lUSU9OX0NIQUlOIixlLlN0cmF0ZWd5TW9kUG9zaXRpb25FeHA9IlNUUkFURUdZX01PRF9QT1NJVElPTl9FWFAiLGUuU3RyYXRlZ3lOYW1lRGlzY2xvc3VyZT0iU1RSQVRFR1lfTkFNRV9ESVNDTE9TVVJFIixlLlN0cmF0ZWd5U2V0dGluZ3NEaXNjbG9zdXJlPSJTVFJBVEVHWV9TRVRUSU5HU19ESVNDTE9TVVJFIixlLlN0cmF0ZWd5U2hhcmU9IlNUUkFURUdZX1NIQVJFIixlLlN0cmF0ZWd5VmlzaWJpbGl0eUJ1dHRvbj0iU1RSQVRFR1lfVklTSUJJTElUWV9CVVRUT04iLGUuU3ltYm9sU2VhcmNoRGlhbG9nPSJTWU1CT0xfU0VBUkNIX0RJQUxPRyIsZS5TeW5jT3ZlcmxheUNoYXJ0PSJTWU5DX09WRVJMQVlfQ0hBUlQiLGUuVmlzaXRTaGFyZWRTdHJhdGVneT0iVklTSVRfU0hBUkVEX1NUUkFURUdZIixlLlZvbGF0aWxpdHlTZWxlY3RTZXJpZXM9IlZPTEFUSUxJVFlfU0VMRUNUX1NFUklFUyIsZS5XaGF0SWZTY2VuYXJpb0FkZD0iV0hBVF9JRl9TQ0VOQVJJT19BREQiLGUuV2hhdElmU2NlbmFyaW9EZWxldGU9IldIQVRfSUZfU0NFTkFSSU9fREVMRVRFIixlLldoYXRJZlNjZW5hcmlvRWRpdD0iV0hBVF9JRl9TQ0VOQVJJT19FRElUIixlLldoYXRJZlNjZW5hcmlvU2VsZWN0PSJXSEFUX0lGX1NDRU5BUklPX1NFTEVDVCJ9KG49ZS5FbGVtZW50fHwoZS5FbGVtZW50PXt9KSl9KGl8fChpPXt9KSksZnVuY3Rpb24oZSl7bGV0IHQ7IWZ1bmN0aW9uKGUpe2UuRmF2b3JpdGVTdGF0ZT0iZmF2b3JpdGUgc3RhdGUiLGUuUmVtb3ZlRnJvbUZhdm9yaXRlcz0icmVtb3ZlIGZyb20gZmF2b3JpdGVzIixlLkFkZFRvRmF2b3JpdGVzPSJhZGQgdG8gZmF2b3JpdGVzIixlLk9wZW5EcmF3ZXI9Im9wZW4gZHJhd2VyIixlLkNsb3NlRHJhd2VyPSJjbG9zZSBkcmF3ZXIiLGUuT3BlblNwbGl0Vmlldz0ib3BlbiBzcGxpdCB2aWV3IixlLkNsb3NlU3BsaXRWaWV3PSJjbG9zZSBzcGxpdCB2aWV3IixlLk1vdmVTcGxpdFYxPSJtb3ZlX3NwbGl0X3YxIixlLk1vdmVTcGxpdFYyPSJtb3ZlX3NwbGl0X3YyIixlLk1vdmVPdmVybGF5VjE9Im1vdmVfb3ZlcmxheV92MSIsZS5Nb3ZlT3ZlcmxheVYyPSJtb3ZlX292ZXJsYXlfdjIifSh0PWUuQWN0aW9uVHlwZXx8KGUuQWN0aW9uVHlwZT17fSkpfShjfHwoYz17fSkpLGZ1bmN0aW9uKGUpe2xldCB0OyFmdW5jdGlvbihlKXtlLkNsaWNrPSJjbGljayIsZS5TaG93PSJzaG93In0odD1lLlR5cGV8fChlLlR5cGU9e30pKX0odXx8KHU9e30pKX0sOTY0MzYxKGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse0FkYXB0aXZlUG9wdXBEaWFsb2c6KCk9Pnd9KTt2YXIgcj1uKDc3OTQ3NCksbz1uKDEzODYzOCksbD1uKDkxNDQ4NyksYT1uLm4obCkscz1uKDkzMDIzMSksaT1uKDIzNTcyNCksYz1uKDk2OTE2OCksdT1uKDMzNzM2MiksZD1uKDcyMTM2OSksbT1uKDU4NTgyMSkscD1uKDIzMTEzMyksaD1uKDYwOTUyOCksZj1uKDQwNjExMCksUz1uKDQ5MDg5MyksZz1uKDk3MTUxMikseT1uKDYwMzYxMiksYj1uKDE3OTc3MSksdj1uKDExMzc1NyksXz1uKDk2NDU5NCksRT1uKDM0NTExNiksQz1uKDE1MDE1MCksVD1uKDEyOTY4MCk7Y29uc3QgeD17dmVydGljYWw6MjB9LEk9e3ZlcnRpY2FsOjB9O2NsYXNzIHcgZXh0ZW5kcyByLlB1cmVDb21wb25lbnR7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMuX2NvbnRyb2xsZXI9bnVsbCwKdGhpcy5fcmVmZXJlbmNlPW51bGwsdGhpcy5fb3JpZW50YXRpb25NZWRpYVF1ZXJ5PW51bGwsdGhpcy5fZW1iZWRSZXNpemVyT3ZlcnJpZGVzRW5hYmxlZD0oMCxzLmlzRmVhdHVyZXNldEVuYWJsZWQpKCJlbWJlZF9yZXNpemVyX292ZXJyaWRlcyIpLHRoaXMuX3RpdGxlSWQ9YHRpdGxlXyR7KDAsQy5yYW5kb21IYXNoKSgpfWAsdGhpcy5fcmVuZGVyQ2hpbGRyZW49KGUsdCk9Pih0aGlzLl9jb250cm9sbGVyPWUsdGhpcy5wcm9wcy5yZW5kZXIoe3JlcXVlc3RSZXNpemU6dGhpcy5fcmVxdWVzdFJlc2l6ZSxjZW50ZXJBbmRGaXQ6dGhpcy5fY2VudGVyQW5kRml0LGlzU21hbGxXaWR0aDp0fSkpLHRoaXMuX2hhbmRsZVJlZmVyZW5jZT1lPT50aGlzLl9yZWZlcmVuY2U9ZSx0aGlzLl9oYW5kbGVDbG9zZUJ0bkNsaWNrPSgpPT57dGhpcy5wcm9wcy5vbktleWJvYXJkQ2xvc2UmJnRoaXMucHJvcHMub25LZXlib2FyZENsb3NlKCksdGhpcy5faGFuZGxlQ2xvc2UoKX0sdGhpcy5faGFuZGxlQ2xvc2U9KCk9Pnt0aGlzLnByb3BzLm9uQ2xvc2UoKX0sdGhpcy5faGFuZGxlT3Blbj0oKT0+e3ZvaWQgMCE9PXRoaXMucHJvcHMub25PcGVuJiZ0aGlzLnByb3BzLmlzT3BlbmVkJiZ0aGlzLnByb3BzLm9uT3Blbih0aGlzLnByb3BzLmZ1bGxTY3JlZW58fHdpbmRvdy5tYXRjaE1lZGlhKGguRGlhbG9nQnJlYWtwb2ludHMuVGFibGV0U21hbGwpLm1hdGNoZXMpfSx0aGlzLl9oYW5kbGVLZXlEb3duPWU9PntpZighZS5kZWZhdWx0UHJldmVudGVkKXtpZih0aGlzLnByb3BzLm9uS2V5RG93biYmdGhpcy5wcm9wcy5vbktleURvd24oZSksMjc9PT0oMCxpLmhhc2hGcm9tRXZlbnQpKGUpKXtpZihlLmRlZmF1bHRQcmV2ZW50ZWQpcmV0dXJuO2lmKHRoaXMucHJvcHMuZm9yY2VDbG9zZU9uRXNjJiZ0aGlzLnByb3BzLmZvcmNlQ2xvc2VPbkVzYygpKXJldHVybiB0aGlzLnByb3BzLm9uS2V5Ym9hcmRDbG9zZSYmdGhpcy5wcm9wcy5vbktleWJvYXJkQ2xvc2UoKSx2b2lkIHRoaXMuX2hhbmRsZUNsb3NlKCk7Y29uc3R7YWN0aXZlRWxlbWVudDpufT1kb2N1bWVudDtpZihudWxsIT09bil7aWYoZS5wcmV2ZW50RGVmYXVsdCgpLCJ0cnVlIj09PSh0PW4pLmdldEF0dHJpYnV0ZSgiZGF0YS1oYXNwb3B1cCIpJiYidHJ1ZSIhPT10LmdldEF0dHJpYnV0ZSgiZGF0YS1leHBhbmRlZCIpKXJldHVybiB2b2lkIHRoaXMuX2hhbmRsZUNsb3NlKCk7Y29uc3Qgcj10aGlzLl9yZWZlcmVuY2U7aWYobnVsbCE9PXImJigwLGQuaXNUZXh0RWRpdGluZ0ZpZWxkKShuKSlyZXR1cm4gdm9pZCByLmZvY3VzKCk7aWYocj8uY29udGFpbnMobikpcmV0dXJuIHRoaXMucHJvcHMub25LZXlib2FyZENsb3NlJiZ0aGlzLnByb3BzLm9uS2V5Ym9hcmRDbG9zZSgpLHZvaWQgdGhpcy5faGFuZGxlQ2xvc2UoKX19dmFyIHQ7KGZ1bmN0aW9uKGUpe2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBlKXJldHVybiBlKCk7cmV0dXJuIEJvb2xlYW4oZSl9KSh0aGlzLnByb3BzLmRpc2FibGVUYWJOYXZpZ2F0aW9uQ29udGFpbm1lbnQpfHwoMCxnLmNvbnRhaW5UYWJOYXZpZ2F0aW9uKShlKX19LHRoaXMuX3JlcXVlc3RSZXNpemU9KCk9PntudWxsIT09dGhpcy5fY29udHJvbGxlciYmdGhpcy5fY29udHJvbGxlci5yZWNhbGN1bGF0ZUJvdW5kcygpfSx0aGlzLl9jZW50ZXJBbmRGaXQ9KCk9PntudWxsIT09dGhpcy5fY29udHJvbGxlciYmdGhpcy5fY29udHJvbGxlci5jZW50ZXJBbmRGaXQoKX0sdGhpcy5fY2FsY3VsYXRlUG9zaXRpb25XaXRoT2Zmc2V0cz0oZSx0KT0+e2NvbnN0IG49KDAsby5lbnN1cmVEZWZpbmVkKSh0aGlzLnByb3BzLmZ1bGxTY3JlZW5WaWV3T2Zmc2V0cykudmFsdWUoKTtpZih0aGlzLl9lbWJlZFJlc2l6ZXJPdmVycmlkZXNFbmFibGVkKXtjb25zdCBlPXUuRW1iZWRWaWV3cG9ydERpbWVuc2lvbnNQcm92aWRlci5nZXRJbnN0YW5jZSgpLmRhdGEoKTtlJiYobi50b3A9ZS50b3Asbi5ib3R0b209dC5jbGllbnRIZWlnaHQtZS5oZWlnaHQpfXJldHVybnt0b3A6bi50b3AsbGVmdDooMCxjLmlzUnRsKSgpPy1uLnJpZ2h0Om4ubGVmdCx3aWR0aDp0LmNsaWVudFdpZHRoLW4ubGVmdC1uLnJpZ2h0LGhlaWdodDp0LmNsaWVudEhlaWdodC1uLnRvcC1uLmJvdHRvbX19fWNvbXBvbmVudERpZE1vdW50KCl7dGhpcy5wcm9wcy5pZ25vcmVDbG9zZVBvcHVwc0FuZERpYWxvZ3x8Yi5zdWJzY3JpYmUoeS5DTE9TRV9QT1BVUFNfQU5EX0RJQUxPR1NfQ09NTUFORCx0aGlzLl9oYW5kbGVDbG9zZSxudWxsKSx0aGlzLl9oYW5kbGVPcGVuKCksdm9pZCAwIT09dGhpcy5wcm9wcy5vbk9wZW4mJih0aGlzLl9vcmllbnRhdGlvbk1lZGlhUXVlcnk9d2luZG93Lm1hdGNoTWVkaWEoIihvcmllbnRhdGlvbjogcG9ydHJhaXQpIiksdGhpcy5fb3JpZW50YXRpb25NZWRpYVF1ZXJ5LmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsdGhpcy5faGFuZGxlT3BlbikpLHRoaXMucHJvcHMuZnVsbFNjcmVlblZpZXdPZmZzZXRzJiZ0aGlzLnByb3BzLmZ1bGxTY3JlZW4mJnRoaXMucHJvcHMuZnVsbFNjcmVlblZpZXdPZmZzZXRzLnN1YnNjcmliZSh0aGlzLl9yZXF1ZXN0UmVzaXplKTtjb25zdHtiYWNrZHJvcDplLGRyYWdnYWJsZTp0PSFlLGNlbnRlck9uUmVzaXplOm49IXR9PXRoaXMucHJvcHM7biYmd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsdGhpcy5fY2VudGVyQW5kRml0KX1jb21wb25lbnRXaWxsVW5tb3VudCgpe3RoaXMucHJvcHMuaWdub3JlQ2xvc2VQb3B1cHNBbmREaWFsb2d8fGIudW5zdWJzY3JpYmUoeS5DTE9TRV9QT1BVUFNfQU5EX0RJQUxPR1NfQ09NTUFORCx0aGlzLl9oYW5kbGVDbG9zZSxudWxsKSxudWxsIT09dGhpcy5fb3JpZW50YXRpb25NZWRpYVF1ZXJ5JiZ0aGlzLl9vcmllbnRhdGlvbk1lZGlhUXVlcnkucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY2hhbmdlIix0aGlzLl9oYW5kbGVPcGVuKSx0aGlzLnByb3BzLmZ1bGxTY3JlZW5WaWV3T2Zmc2V0cyYmdGhpcy5wcm9wcy5mdWxsU2NyZWVuJiZ0aGlzLnByb3BzLmZ1bGxTY3JlZW5WaWV3T2Zmc2V0cy51bnN1YnNjcmliZSh0aGlzLl9yZXF1ZXN0UmVzaXplKSwKd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsdGhpcy5fY2VudGVyQW5kRml0KX1mb2N1cygpeygwLG8uZW5zdXJlTm90TnVsbCkodGhpcy5fcmVmZXJlbmNlKS5mb2N1cygpfWdldEVsZW1lbnQoKXtyZXR1cm4gdGhpcy5fcmVmZXJlbmNlfWNvbnRhaW5zKGUpe3JldHVybiB0aGlzLl9yZWZlcmVuY2U/LmNvbnRhaW5zKGUpPz8hMX1yZW5kZXIoKXtjb25zdHtjbGFzc05hbWU6ZSx3cmFwcGVyQ2xhc3NOYW1lOnQsaGVhZGVyQ2xhc3NOYW1lOm4saXNPcGVuZWQ6byx0aXRsZTpsLHRpdGxlVGV4dFdyYXA6cyx0aXRsZUNsYXNzTmFtZTppLGRhdGFOYW1lOmMsZGF0YVFhSWQ6dSxvbkNsaWNrT3V0c2lkZTpkLG9uQ2xpY2tCYWNrZHJvcDpnLGFkZGl0aW9uYWxFbGVtZW50UG9zOnksYWRkaXRpb25hbEhlYWRlckVsZW1lbnQ6YixiYWNrZHJvcDpDLHNob3VsZEZvcmNlRm9jdXM6dz0hMCxzaG91bGRSZXR1cm5Gb2N1czpOLG9uRm9yY2VGb2N1czpSLHNob3dTZXBhcmF0b3I6QSxzdWJ0aXRsZTpMLGRyYWdnYWJsZTprPSFDLGZ1bGxTY3JlZW46Tz0hMSxzaG93Q2xvc2VJY29uOk09ITAscm91bmRlZDpEPSEwLGlzQW5pbWF0aW9uRW5hYmxlZDpQLGdyb3dQb2ludDpGLGRpYWxvZ1Rvb2x0aXA6Qix1bnNldEhlYWRlckFsaWduOkgsb25EcmFnU3RhcnQ6VSxkYXRhRGlhbG9nTmFtZTpXLGNsb3NlQXJpYUxhYmVsOlYsY29udGFpbmVyQXJpYUxhYmVsOkcscmVmZXJlbmNlOlEsY29udGFpbmVyVGFiSW5kZXg6eixjbG9zZUJ1dHRvblJlZmVyZW5jZTokLG9uQ2xvc2VCdXR0b25LZXlEb3duOnEsc2hhZG93ZWQ6SyxmdWxsU2NyZWVuVmlld09mZnNldHM6WSxvbkNsaWNrOlgscmVuZGVyQ2xvc2VCdXR0b246aix0aXRsZVdyYXBDbGFzc05hbWU6WixhZGRSaWdodFNoYWRvdzpKPSEwfT10aGlzLnByb3BzLGVlPXRoaXMucHJvcHMuZml4ZWRCb2R5Pz8oISFDfHx2b2lkIDApLHRlPSJhZnRlciIhPT15P2I6dm9pZCAwLG5lPSJhZnRlciI9PT15P2I6dm9pZCAwLHJlPSJzdHJpbmciPT10eXBlb2YgbD9sOld8fCIiLG9lPSgwLEUuZmlsdGVyRGF0YVByb3BzKSh0aGlzLnByb3BzKSxsZT0oMCxfLm1lcmdlUmVmcykoW3RoaXMuX2hhbmRsZVJlZmVyZW5jZSxRXSk7cmV0dXJuIHIuY3JlYXRlRWxlbWVudChmLk1hdGNoTWVkaWEse3J1bGU6aC5EaWFsb2dCcmVha3BvaW50cy5TbWFsbEhlaWdodH0sKHk9PnIuY3JlYXRlRWxlbWVudChmLk1hdGNoTWVkaWEse3J1bGU6aC5EaWFsb2dCcmVha3BvaW50cy5UYWJsZXRTbWFsbH0sKGg9PnIuY3JlYXRlRWxlbWVudChtLlBvcHVwRGlhbG9nLHtyb3VuZGVkOiEoaHx8TykmJkQsY2xhc3NOYW1lOmEoKShULmRpYWxvZyxPJiZZJiZKJiZULmJvdW5kZWQsZSksaXNPcGVuZWQ6byxyZWZlcmVuY2U6bGUsb25LZXlEb3duOnRoaXMuX2hhbmRsZUtleURvd24sb25DbGlja091dHNpZGU6ZCxvbkNsaWNrQmFja2Ryb3A6Zz8/ZCxmdWxsc2NyZWVuOmh8fE8sZ3VhcmQ6eT9JOngsYm91bmRCeVNjcmVlbjpofHxPLHNob3VsZEZvcmNlRm9jdXM6dyxvbkZvcmNlRm9jdXM6UixzaG91bGRSZXR1cm5Gb2N1czpOLGJhY2tkcm9wOkMsZHJhZ2dhYmxlOmssaXNBbmltYXRpb25FbmFibGVkOlAsZ3Jvd1BvaW50OkYsbmFtZTp0aGlzLnByb3BzLmRhdGFOYW1lLGRpYWxvZ1Rvb2x0aXA6QixvbkRyYWdTdGFydDpVLGNvbnRhaW5lckFyaWFMYWJlbDpHLGNvbnRhaW5lclRhYkluZGV4OnosY2FsY3VsYXRlRGlhbG9nUG9zaXRpb246TyYmWT90aGlzLl9jYWxjdWxhdGVQb3NpdGlvbldpdGhPZmZzZXRzOnZvaWQgMCxzaGFkb3dlZDpLLGZpeGVkQm9keTplZSxvbkNsaWNrOlgsLi4ub2V9LHIuY3JlYXRlRWxlbWVudCgiZGl2Iix7cm9sZToiZGlhbG9nIiwiYXJpYS1sYWJlbGxlZGJ5Ijp2b2lkIDAhPT1sP3RoaXMuX3RpdGxlSWQ6dm9pZCAwLGNsYXNzTmFtZTphKCkoVC53cmFwcGVyLHQpLCJkYXRhLW5hbWUiOmMsImRhdGEtcWEtaWQiOnUsImRhdGEtZGlhbG9nLW5hbWUiOnJlfSx2b2lkIDAhPT1sJiZyLmNyZWF0ZUVsZW1lbnQodi5EaWFsb2dIZWFkZXIse2RyYWdnYWJsZTprJiYhKGh8fE8pLG9uQ2xvc2U6dGhpcy5faGFuZGxlQ2xvc2VCdG5DbGljayxyZW5kZXJBZnRlcjpuZSxyZW5kZXJCZWZvcmU6dGUsc3VidGl0bGU6TCx0aXRsZTpsLHRpdGxlSWQ6dGhpcy5fdGl0bGVJZCx0aXRsZVRleHRXcmFwOnMsc2hvd0Nsb3NlSWNvbjpNLGNsYXNzTmFtZTpuLHRpdGxlQ2xhc3NOYW1lOmksdW5zZXRBbGlnbjpILGNsb3NlQXJpYUxhYmVsOlYsY2xvc2VCdXR0b25SZWZlcmVuY2U6JCxvbkNsb3NlQnV0dG9uS2V5RG93bjpxLHJlbmRlckNsb3NlQnV0dG9uOmosdGl0bGVXcmFwQ2xhc3NOYW1lOlp9KSxBJiZyLmNyZWF0ZUVsZW1lbnQocC5TZXBhcmF0b3Ise2NsYXNzTmFtZTpULnNlcGFyYXRvcn0pLHIuY3JlYXRlRWxlbWVudChTLlBvcHVwQ29udGV4dC5Db25zdW1lcixudWxsLChlPT50aGlzLl9yZW5kZXJDaGlsZHJlbihlLGh8fE8pKSkpKSkpKSl9fX0sODY0MTQ3KGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse0RpYWxvZ0hlYWRlckNvbnRleHQ6KCk9PnJ9KTtjb25zdCByPW4oNzc5NDc0KS5jcmVhdGVDb250ZXh0KHtzZXRIaWRlQ2xvc2U6KCk9Pnt9fSl9LDExMzc1NyhlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtEaWFsb2dIZWFkZXI6KCk9PnV9KTt2YXIgcj1uKDE4NTI3MSksbz1uKDc3OTQ3NCksbD1uKDkxNDQ4NyksYT1uLm4obCkscz1uKDMxMjkzMiksaT1uKDg2NDE0NyksYz1uKDQ3MTg4KTtmdW5jdGlvbiB1KGUpewpjb25zdHt0aXRsZUlkOnQsdGl0bGU6bCx0aXRsZVRleHRXcmFwOnU9ITEsdGl0bGVDbGFzc05hbWU6ZCxzdWJ0aXRsZTptLHNob3dDbG9zZUljb246cD0hMCxvbkNsb3NlOmgsb25DbG9zZUJ1dHRvbktleURvd246ZixyZW5kZXJCZWZvcmU6UyxyZW5kZXJBZnRlcjpnLGRyYWdnYWJsZTp5LGNsYXNzTmFtZTpiLHVuc2V0QWxpZ246dixjbG9zZUFyaWFMYWJlbDpfPXIudChudWxsLHZvaWQgMCxuKDU0OTEwKSksY2xvc2VCdXR0b25SZWZlcmVuY2U6RSxkaXNhYmxlRHJhZ09uQ2xvc2VCdXR0b246QyxyZW5kZXJDbG9zZUJ1dHRvbjpULHRpdGxlV3JhcENsYXNzTmFtZTp4LC4uLkl9PWUsW3csTl09KDAsby51c2VTdGF0ZSkoITEpO3JldHVybiBvLmNyZWF0ZUVsZW1lbnQoaS5EaWFsb2dIZWFkZXJDb250ZXh0LlByb3ZpZGVyLHt2YWx1ZTp7c2V0SGlkZUNsb3NlOk59fSxvLmNyZWF0ZUVsZW1lbnQoImRpdiIsey4uLkksY2xhc3NOYW1lOmEoKShjLmNvbnRhaW5lcixiLChtfHx2KSYmYy51bnNldEFsaWduKX0sUyxvLmNyZWF0ZUVsZW1lbnQoImRpdiIse2lkOnQsY2xhc3NOYW1lOmEoKShjLnRpdGxlLHgpLCJkYXRhLWRyYWdnLWFyZWEiOnl9LG8uY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOmEoKSh1P2MudGV4dFdyYXA6Yy5lbGxpcHNpcyxkKX0sbCksbSYmby5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6YSgpKGMuZWxsaXBzaXMsYy5zdWJ0aXRsZSl9LG0pKSxnLHAmJiF3JiYoVD9UKHtjbG9zZUFyaWFMYWJlbDpfLG9uQ2xvc2U6aCxvbkNsb3NlQnV0dG9uS2V5RG93bjpmLGRpc2FibGVEcmFnT25DbG9zZUJ1dHRvbjpDfSk6by5jcmVhdGVFbGVtZW50KHMuQ2xvc2VCdXR0b24seyJkYXRhLWRpc2FibGUtZHJhZyI6QyxjbGFzc05hbWU6Yy5jbG9zZSwiZGF0YS1xYS1pZCI6ImNsb3NlIixhcmlhTGFiZWw6XyxvbkNsaWNrOmgsb25LZXlEb3duOmYscmVmOkUsc2l6ZToibWVkaXVtIixwcmVzZXJ2ZVBhZGRpbmdzOiEwfSkpKSl9fSwzNjY1OTcoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7RGlhbG9nU2VhcmNoOigpPT5kfSk7dmFyIHI9big3Nzk0NzQpLG89big5MTQ0ODcpLGw9bi5uKG8pLGE9bigxODUyNzEpLHM9bigyNzMzMTApLGk9big5MjAwMyksYz1uKDc3ODI3NSksdT1uKDUzMDA2MCk7ZnVuY3Rpb24gZChlKXtjb25zdHtjaGlsZHJlbjp0LGlzTW9iaWxlOm8scmVuZGVySW5wdXQ6ZCxvbkNhbmNlbDpwLGNvbnRhaW5lckNsYXNzTmFtZTpoLGlucHV0Q29udGFpbmVyQ2xhc3NOYW1lOmYsaWNvbkNsYXNzTmFtZTpTLGNhbmNlbFRpdGxlOmc9YS50KG51bGwsdm9pZCAwLG4oNzQzNTYzKSksLi4ueX09ZTtyZXR1cm4gci5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6bCgpKHUuY29udGFpbmVyLG8mJnUubW9iaWxlLGgpfSxyLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpsKCkodS5pbnB1dENvbnRhaW5lcixvJiZ1Lm1vYmlsZSxmLHAmJnUud2l0aENhbmNlbCl9LGR8fHIuY3JlYXRlRWxlbWVudChtLHtpc01vYmlsZTpvLC4uLnl9KSksdCxyLmNyZWF0ZUVsZW1lbnQocy5JY29uLHtjbGFzc05hbWU6bCgpKHUuaWNvbixvJiZ1Lm1vYmlsZSxTKSxpY29uOm8/YzppfSkscCYmKCFvfHwiIiE9PXkudmFsdWUpJiZyLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpsKCkodS5jYW5jZWwsbyYmdS5tb2JpbGUpLG9uQ2xpY2s6cH0sZykpfWZ1bmN0aW9uIG0oZSl7Y29uc3R7Y2xhc3NOYW1lOnQscmVmZXJlbmNlOm4saXNNb2JpbGU6byx2YWx1ZTphLG9uQ2hhbmdlOnMsb25Gb2N1czppLG9uQmx1cjpjLG9uS2V5RG93bjpkLG9uU2VsZWN0Om0scGxhY2Vob2xkZXI6cCxhY3RpdmVEZXNjZW5kYW50OmgsLi4uZn09ZTtyZXR1cm4gci5jcmVhdGVFbGVtZW50KCJpbnB1dCIsey4uLmYscmVmOm4sdHlwZToidGV4dCIsY2xhc3NOYW1lOmwoKSh0LHUuaW5wdXQsbyYmdS5tb2JpbGUpLGF1dG9Db21wbGV0ZToib2ZmIixyb2xlOiJzZWFyY2hib3giLCJkYXRhLXJvbGUiOiJzZWFyY2giLCJkYXRhLXFhLWlkIjoiZGlhbG9nLXNlYXJjaC1pbnB1dCIscGxhY2Vob2xkZXI6cCx2YWx1ZTphLG9uQ2hhbmdlOnMsb25Gb2N1czppLG9uQmx1cjpjLG9uU2VsZWN0Om0sb25LZXlEb3duOmQsImFyaWEtYWN0aXZlZGVzY2VuZGFudCI6aH0pfX0sMTc3NShlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtPdmVybGF5U2Nyb2xsV3JhcHBlcjooKT0+dX0pO3ZhciByPW4oNzc5NDc0KSxvPW4oOTE0NDg3KSxsPW4ubihvKSxhPW4oNTk4MjMpLHM9bigyMTA3NjQpLGk9bigzMDU0NzQpLGM9bigzNDMwNjYpO2Z1bmN0aW9uIHUoZSl7Y29uc3R7Y2hpbGRyZW46dCxjbGFzc05hbWU6bix3cmFwcGVyQ2xhc3NOYW1lOm8scmVmZXJlbmNlOnUsaGFzQ3VzdG9tVG91Y2hTY3JvbGxBbmltYXRpb246ZCxzY3JvbGxDb250YWluZXJSZWY6bSxpc0ZvcmNlVmlzaWJsZTpwLHRhYkluZGV4OmgsLi4uZn09ZSxbUyxnLHksYl09KDAscy51c2VPdmVybGF5U2Nyb2xsKShtLGQpO3JldHVybigwLGkudXNlQ3VzdG9tVG91Y2hTY3JvbGxBbmltYXRpb24pKHtzY3JvbGxDb250YWluZXJSZWY6ZD95OnZvaWQgMH0pLCgwLHIudXNlSW1wZXJhdGl2ZUhhbmRsZSkodSwoKCk9Pih7dXBkYXRlU2Nyb2xsU3RhdGU6Yn0pKSksci5jcmVhdGVFbGVtZW50KCJkaXYiLHsuLi5mLC4uLmcsY2xhc3NOYW1lOmwoKShjLmNvbnRhaW5lcixuKX0sci5jcmVhdGVFbGVtZW50KGEuT3ZlcmxheVNjcm9sbENvbnRhaW5lcix7Li4uUyx2aXNpYmxlOnA/P1MudmlzaWJsZSxjbGFzc05hbWU6Yy5vdmVybGF5U2Nyb2xsV3JhcH0pLHIuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOmwoKShjLndyYXBwZXIsbyksdGFiSW5kZXg6aCxyZWY6eSxvblNjcm9sbDpifSx0KSl9fSw3MjA2NzcoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7U2VhcmNoSW5wdXQ6KCk9PnB9KTt2YXIgcj1uKDE4NTI3MSksbz1uKDc3OTQ3NCksbD1uKDkxNDQ4NyksYT1uLm4obCkscz1uKDI3MzMxMCksaT1uKDMxMjI5NSksYz1uKDQ1Mzc4MiksdT1uKDUyNjcxKSxkPW4oNTc2NDkzKSxtPW4oODY5MzIwKTtmdW5jdGlvbiBwKGUpewpjb25zdHtjbGFzc05hbWU6dCxyZWZlcmVuY2U6bCxvblJlc2V0OnAsaW5wdXRDbGFzc05hbWU6aCxlbmRTbG90OmYsaXNNb2JpbGU6UyxzaG93Q2xlYXJBbHdheXM6ZywuLi55fT1lLGI9Z3x8Qm9vbGVhbihsLmN1cnJlbnQ/LnZhbHVlKTtyZXR1cm4gby5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6YSgpKG0uaW5wdXRDb250YWluZXIsdCl9LG8uY3JlYXRlRWxlbWVudChzLkljb24se2NsYXNzTmFtZTptLnNlYXJjaElucHV0SWNvbixpY29uOnV9KSxvLmNyZWF0ZUVsZW1lbnQoImlucHV0Iix7Li4ueSxjbGFzc05hbWU6YSgpKG0uc2VhcmNoLGgpLHJlZjpsLHJvbGU6InNlYXJjaGJveCIsdHlwZToidGV4dCIsYXV0b0NvbXBsZXRlOiJvZmYifSksby5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6bS5hY3Rpb25zfSxiJiZwJiZvLmNyZWF0ZUVsZW1lbnQoby5GcmFnbWVudCxudWxsLG8uY3JlYXRlRWxlbWVudChpLkljb25CdXR0b24se29uQ2xpY2s6cCx0aXRsZTpyLnQobnVsbCx7Y29udGV4dDoiY2xlYXJfc2VhcmNoIn0sbigyMDY5NDgpKSxpY29uOmR9KSksIVMmJmYmJmImJm8uY3JlYXRlRWxlbWVudChjLkRpdmlkZXIse2NsYXNzTmFtZTptLmRpdmlkZXIsc2l6ZToieHNtYWxsIixvcmllbnRhdGlvbjoidmVydGljYWwifSksIVMmJmYpKX19LDU3NzEwOShlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtTeW1ib2xMb2dvOigpPT51fSk7dmFyIHI9big3Nzk0NzQpLG89big5MTQ0ODcpLGw9bi5uKG8pO3ZhciBhPW4oOTg2Mjc1KSxzPW4oNjIwMzU0KSxpPW4oNDQ4NjQ1KSxjPW4oMjQ0ODIwKTtmdW5jdGlvbiB1KGUpe2NvbnN0e3BsYWNlaG9sZGVyOnQsY2xhc3NOYW1lOm4sc2l6ZTpvPSJ4c21hbGwifT1lLHU9ZnVuY3Rpb24oZSl7cmV0dXJuImxvZ28iaW4gZX0oZSk/ZS5sb2dvOmZ1bmN0aW9uKGUpe2NvbnN0IHQ9ZS5sb2dvPz9udWxsO2lmKCF0KXtpZigibG9nb2lkImluIGUmJmUubG9nb2lkKXJldHVybntzdHlsZToic2luZ2xlIixsb2dvaWQ6ZS5sb2dvaWR9O2NvbnN0IHQ9ImN1cnJlbmN5LWxvZ29pZCJpbiBlP2VbImN1cnJlbmN5LWxvZ29pZCJdOm51bGwsbj0iYmFzZS1jdXJyZW5jeS1sb2dvaWQiaW4gZT9lWyJiYXNlLWN1cnJlbmN5LWxvZ29pZCJdOm51bGw7aWYodCYmbilyZXR1cm57c3R5bGU6InBhaXIiLGxvZ29pZDpuLGxvZ29pZDI6dH07aWYodHx8bilyZXR1cm57c3R5bGU6InNpbmdsZSIsbG9nb2lkOnQ/P259fXJldHVybiB0fSh7bG9nb2lkOmUubG9nb0lkLCJjdXJyZW5jeS1sb2dvaWQiOmUuY3VycmVuY3lMb2dvSWQsImJhc2UtY3VycmVuY3ktbG9nb2lkIjplLmJhc2VDdXJyZW5jeUxvZ29JZH0pLGQ9KDAsci51c2VNZW1vKSgoKCk9PnU/KDAsYS5yZW1vdmVVc2RGcm9tQ3J5cHRvUGFpckxvZ29zKSgoMCxhLnJlc29sdmVMb2dvVXJsc0Zyb21Mb2dvRGF0YSkodSxzLkxvZ29TaXplLk1lZGl1bSkpOltdKSxbdV0pO3JldHVybiByLmNyZWF0ZUVsZW1lbnQoaS5DYWNoZWRMb2dvLHtrZXk6byxjbGFzc05hbWU6bCgpKGMubG9nbyxuKSx1cmwxOmRbMF0sdXJsMjpkWzFdLHBsYWNlaG9sZGVyTGV0dGVyOnQsc2l6ZTpvfSl9fSwzNzc3ODkoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7Z2V0RmxhZ1NyYzooKT0+c30pO3ZhciByPW4oMTM4NjM4KSxvPW4oODYyMjEzKSxsPW4oNjQ3NjE0KTtjb25zdCBhPW8uTG9nb1NpemUuTWVkaXVtO2Z1bmN0aW9uIHMoe2NvdW50cnk6ZSxwcm92aWRlcklkOnQsc291cmNlSWQ6bixzb3VyY2VMb2dvSWQ6c30pe2NvbnN0IGk9KDAsby5nZXRMb2dvVXJsUmVzb2x2ZXIpKCk7cmV0dXJuIG89Pntjb25zdCBjPVt7dmFsdWU6cyxyZXNvbHZlOmU9PmkuZ2V0U3ltYm9sTG9nb1VybChlLGEpfSx7dmFsdWU6bixyZXNvbHZlOmU9PmkuZ2V0U291cmNlTG9nb1VybChlLGEpfSx7dmFsdWU6ZSxyZXNvbHZlOmU9PmkuZ2V0Q291bnRyeUZsYWdVcmwoZS50b1VwcGVyQ2FzZSgpLGEpfSx7dmFsdWU6dCxyZXNvbHZlOmU9PmkuZ2V0UHJvdmlkZXJMb2dvVXJsKGUsYSl9XS5maW5kKCgoe3ZhbHVlOmV9KT0+dm9pZCAwIT09ZSYmZS5sZW5ndGg+MCkpO3JldHVybiB2b2lkIDAhPT1jP2MucmVzb2x2ZSgoMCxyLmVuc3VyZURlZmluZWQpKGMudmFsdWUpKTooMCxsLmdldE1vY2tlZEZsYWcpKG8pfX19LDkyMzIzOShlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtTeW1ib2xTZWFyY2hGbGFnOigpPT5kfSk7dmFyIHI9big3Nzk0NzQpLG89big5MTQ0ODcpLGw9bi5uKG8pLGE9big2NDc2MTQpLHM9bigxMDY5MDApLGk9bigyMDA2NjYpLGM9bigzNzc3ODkpLHU9big0MjE2NTApO2Z1bmN0aW9uIGQoZSl7Y29uc3R7Y291bnRyeTp0LHRvb2x0aXA6bixwcm92aWRlcklkOm8sc291cmNlSWQ6ZCxzb3VyY2VMb2dvSWQ6bSxjbGFzc05hbWU6cH09ZSxoPSgwLHMudXNlV2F0Y2hlZFZhbHVlUmVhZG9ubHkpKHt3YXRjaGVkVmFsdWU6aS53YXRjaGVkVGhlbWV9KSxbZixTXT0oMCxyLnVzZVN0YXRlKSgoMCxjLmdldEZsYWdTcmMpKHtjb3VudHJ5OnQscHJvdmlkZXJJZDpvLHNvdXJjZUlkOmQsc291cmNlTG9nb0lkOm19KShoKSk7cmV0dXJuIHIuY3JlYXRlRWxlbWVudCgiaW1nIix7Y2xhc3NOYW1lOmwoKShwLCJhcHBseS1jb21tb24tdG9vbHRpcCIsdS5pY29uKSxjcm9zc09yaWdpbjoiIiwiZGF0YS10b29sdGlwIjpuLHNyYzpmLG9uRXJyb3I6ZnVuY3Rpb24oKXtTKCgwLGEuZ2V0TW9ja2VkRmxhZykoaCkpfX0pfX0sNjAzNjEyKGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse0NMT1NFX1BPUFVQU19BTkRfRElBTE9HU19DT01NQU5EOigpPT5yLGJyZWFrcG9pbnRMaXN0OigpPT5sfSk7Y29uc3Qgcj0iQ0xPU0VfUE9QVVBTX0FORF9ESUFMT0dTX0NPTU1BTkQiO3ZhciBvOyFmdW5jdGlvbihlKXtlW2UuTW9iaWxlPTBdPSJNb2JpbGUiLGVbZS5UYWJsZXRTbWFsbD00ODBdPSJUYWJsZXRTbWFsbCIsZVtlLlRhYmxldD03NjhdPSJUYWJsZXQiLGVbZS5UYWJsZXRMYXJnZT0xMDI0XT0iVGFibGV0TGFyZ2UiLGVbZS5EZXNrdG9wU21hbGw9MTI4MF09IkRlc2t0b3BTbWFsbCIsZVtlLkRlc2t0b3A9MTQ0MF09IkRlc2t0b3AiLAplW2UuRGVza3RvcExhcmdlPTE5MjBdPSJEZXNrdG9wTGFyZ2UifShvfHwobz17fSkpO2NvbnN0IGw9Nzk3OTU9PW4uaj9bMTkyMCwxNDQwLDEyODAsMTAyNCw3NjgsNDgwLDBdOm51bGx9LDkyNjE1MyhlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtjcmVhdGVJdGVtSWQ6KCk9PnMsdXNlU291cmNlc0tleWJvYXJkTmF2aWdhdGlvbjooKT0+YX0pO3ZhciByPW4oNzc5NDc0KSxvPW4oMjM1NzI0KSxsPW4oOTgzNjE2KTtmdW5jdGlvbiBhKGUsdCxuKXtjb25zdFthLGldPSgwLHIudXNlU3RhdGUpKG51bGwpLFtjLHVdPSgwLHIudXNlU3RhdGUpKCIiKTtmdW5jdGlvbiBkKHQpe2NvbnN0IG49ZVt0Lmdyb3VwSW5kZXhdLnNvdXJjZXNbdC5jb2xdLmxlbmd0aC0xO2lmKHQucm93PT09bil7Y29uc3QgZT1oKHQuZ3JvdXBJbmRleCsxKTtpZihudWxsPT09ZSlyZXR1cm47cmV0dXJuIHQuY29sPjAmJiFwKHsuLi50LGdyb3VwSW5kZXg6ZSxyb3c6MH0pP3ZvaWQgaSh7Z3JvdXBJbmRleDplLGNvbDowLHJvdzowfSk6dm9pZCBpKHsuLi50LGdyb3VwSW5kZXg6ZSxyb3c6MH0pfWkoey4uLnQscm93OnQucm93KzF9KX1mdW5jdGlvbiBtKHQpe2lmKDA9PT10LnJvdyl7Y29uc3Qgbj1oKHQuZ3JvdXBJbmRleC0xLC0xKTtpZihudWxsPT09bilyZXR1cm47Y29uc3Qgcj1lW25dLnNvdXJjZXNbdC5jb2xdPy5sZW5ndGg/PzA7cmV0dXJuIDA9PT1yP3ZvaWQgaSh7Z3JvdXBJbmRleDpuLGNvbDowLHJvdzowfSk6dm9pZCBpKHsuLi50LGdyb3VwSW5kZXg6bixyb3c6ci0xfSl9aSh7Li4udCxyb3c6dC5yb3ctMX0pfWZ1bmN0aW9uIHAodCl7cmV0dXJuIEJvb2xlYW4oZVt0Lmdyb3VwSW5kZXhdPy5zb3VyY2VzW3QuY29sXT8uW3Qucm93XSl9ZnVuY3Rpb24gaCh0PTAsbj0xKXtjb25zdCByPWUubGVuZ3RoO2xldCBvPSh0K3IpJXI7Zm9yKDshcCh7Z3JvdXBJbmRleDpvLGNvbDowLHJvdzowfSk7KWlmKG89KG8rbityKSVyLG89PT10KXJldHVybiBudWxsO3JldHVybiBvfXJldHVybigwLHIudXNlRWZmZWN0KSgoKCk9PntpZighbi5jdXJyZW50KXJldHVybjtpZighYSlyZXR1cm4gdm9pZCB1KCIiKTtjb25zdCBlPXMoYS5ncm91cEluZGV4LGEuY29sLGEucm93KSx0PW4uY3VycmVudC5xdWVyeVNlbGVjdG9yKGAjJHtlfWApO3Q/LnNjcm9sbEludG9WaWV3KHtibG9jazoibmVhcmVzdCJ9KSx1KGUpfSksW2FdKSwoMCxyLnVzZUVmZmVjdCkoKCgpPT57aShudWxsKX0pLFt0XSkse2ZvY3VzZWRJdGVtOmEsYWN0aXZlRGVzY2VuZGFudDpjLGhhbmRsZUtleURvd246ZnVuY3Rpb24ocil7aWYoIW4uY3VycmVudClyZXR1cm47Y29uc3QgYz0oMCxvLmhhc2hGcm9tRXZlbnQpKHIpO2lmKDMyPT09Y3x8MTM9PT1jKXtpZighYSlyZXR1cm47ci5wcmV2ZW50RGVmYXVsdCgpO2NvbnN0IGU9bi5jdXJyZW50LnF1ZXJ5U2VsZWN0b3IoYCMke3MoYS5ncm91cEluZGV4LGEuY29sLGEucm93KX1gKTtyZXR1cm4gdm9pZChlIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQmJmUuY2xpY2soKSl9c3dpdGNoKCgwLGwubWFwS2V5Q29kZVRvRGlyZWN0aW9uKShjKSl7Y2FzZSJibG9ja05leHQiOmlmKHIucHJldmVudERlZmF1bHQoKSwhYSl7Y29uc3QgZT1oKCk7aWYobnVsbD09PWUpYnJlYWs7aSh7Z3JvdXBJbmRleDplLGNvbDowLHJvdzowfSk7YnJlYWt9ZChhKTticmVhaztjYXNlImJsb2NrUHJldiI6aWYoci5wcmV2ZW50RGVmYXVsdCgpLCFhKWJyZWFrO20oYSk7YnJlYWs7Y2FzZSJpbmxpbmVOZXh0Ijp7aWYoIWF8fHQpYnJlYWs7ci5wcmV2ZW50RGVmYXVsdCgpO2NvbnN0IG49ZVthLmdyb3VwSW5kZXhdLnNvdXJjZXMubGVuZ3RoO2lmKGEuY29sPT09bi0xfHwhcCh7Li4uYSxjb2w6YS5jb2wrMX0pKXtkKHsuLi5hLGNvbDowfSk7YnJlYWt9aSh7Li4uYSxjb2w6YS5jb2wrMX0pO2JyZWFrfWNhc2UiaW5saW5lUHJldiI6e2lmKCFhfHx0KWJyZWFrO3IucHJldmVudERlZmF1bHQoKTtjb25zdCBuPWVbYS5ncm91cEluZGV4XS5zb3VyY2VzLmxlbmd0aDtpZigwPT09YS5jb2wpe2lmKDAhPT1hLnJvdyl7bSh7Li4uYSxjb2w6bi0xfSk7YnJlYWt9Y29uc3QgdD1oKGEuZ3JvdXBJbmRleC0xLC0xKTtpZihudWxsPT09dClicmVhaztjb25zdCByPWVbdF0uc291cmNlcy5sZW5ndGgsbz1lW3RdLnNvdXJjZXNbMF0ubGVuZ3RoO2lmKCFwKHtncm91cEluZGV4OnQsY29sOnItMSxyb3c6by0xfSkpe20oYSk7YnJlYWt9aSh7Z3JvdXBJbmRleDp0LGNvbDpyLTEscm93Om8tMX0pO2JyZWFrfWkoey4uLmEsY29sOmEuY29sLTF9KTticmVha319fSxyZXNldEZvY3VzZWRJdGVtOigpPT5pKG51bGwpfX1mdW5jdGlvbiBzKGUsdCxuKXtyZXR1cm5gc291cmNlLWl0ZW0tJHtlfS0ke3R9LSR7bn1gfX0sNzI2ODI2KGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse0hpbnRSZWZlcmVuY2VhYmxlOigpPT51fSk7dmFyIHI9big3Nzk0NzQpLG89big5MTQ0ODcpLGw9bi5uKG8pLGE9big5NjQ1OTQpLHM9big0Nzk5MjApLGk9big1MDI3MTEpLGM9big1MjA5NzcpO2NvbnN0IHU9ci5mb3J3YXJkUmVmKCgoZSx0KT0+ewpjb25zdHt0aGVtZTpvLHBsYWNlSG9sZGVyQ2xhc3NOYW1lOnMsc21hbGxQbGFjZUhvbGRlckNsYXNzTmFtZTp1LHNldHRpbmdzSGludEtleTptLHBsYWNlbWVudDpwLG9uQ2xpY2s6aCxyZWZlcmVuY2U6ZixidXR0b25UZXh0OlMsY2xvc2VCdXR0b246ZyxoaWRlQnV0dG9uOnksb25DbG9zZTpiLHRleHQ6dix0aXRsZTpfLG9uQWRkaXRpb25hbENsaWNrOkUsYWRkaXRpb25hbEJ1dHRvblRleHQ6QyxhZGRpdGlvbmFsQnV0dG9uQ2xhc3NOYW1lOlQsZXNjYXBlV2l0aFJlZmVyZW5jZTp4LG92ZXJmbG93UGFkZGluZzpJLGJvdW5kYXJpZXNFbGVtZW50OncsaGludFN0YXRlSGFuZGxlcjpOPWkuZGVmYXVsdEhpbnRTdGF0ZUhhbmRsZXIsY29udGFpbmVyQ2xhc3NOYW1lOlIsaGlkZVdpdGhSZWZlcmVuY2U6QT0hMSxlbmFibGVGbGlwOkw9ITAsZm9yY2VTaG93T25Jbml0Omssb25PcGVuZWRTdGF0ZUNoYW5nZWQ6Tyxmb3JjZUhpZGU6TSxwbGFjZUhvbGRlclN0eWxlOkQsYnV0dG9uU2l6ZTpQLHNhdmVIaW50U3RhdGVCeUNsaWNrOkY9ITAsc2F2ZUhpbnRTdGF0ZUJ5QWRkaXRpb25hbENsaWNrOkI9ITAsb25CdXR0b25Gb2N1czpILGJ1dHRvbkRhdGFOYW1lOlUsaXNBcnJvd0hpZGRlbjpXPSExfT1lLFY9KDAsci51c2VSZWYpKG51bGwpLFtHLFFdPSgwLHIudXNlU3RhdGUpKG51bGwpLFt6LCRdPSgwLHIudXNlU3RhdGUpKCgoKT0+Ti5nZXRIaW50U3RhdGUobSxrKSkpLFtxLEtdPSgwLHIudXNlU3RhdGUpKCExKSxbWSxYXT0oMCxyLnVzZVN0YXRlKShCb29sZWFuKE0pKSxqPSgwLHIudXNlUmVmKShudWxsKSxaPSgwLHIudXNlUmVmKShudWxsKSxKPSgwLHIudXNlUmVmKShudWxsKSxlZT0oMCxyLnVzZVJlZikobnVsbCksdGU9KDAsci51c2VNZW1vKSgoKCk9Pih7Y2xvc2UoZT0hMSl7JCghMSksZSYmTi5zZXRIaW50U3RhdGUobSl9LGdldFBvcHBlclJlZjooKT0+aixnZXRQbGFjZWhvbGRlclJlZjooKT0+SixnZXRCdXR0b25SZWY6KCk9PmVlLHVwZGF0ZTooKT0+Wi5jdXJyZW50Py51cGRhdGUoKX0pKSxbTl0pO2lmKCgwLHIudXNlSW1wZXJhdGl2ZUhhbmRsZSkodCwoKCk9PnRlKSxbdGVdKSwoMCxyLnVzZUVmZmVjdCkoKCgpPT4oeiYmKFYuY3VycmVudD1uLmUoNjI5NDMpLnRoZW4obi5iaW5kKG4sNjg0NzQwKSksVi5jdXJyZW50LnRoZW4oKGU9PntWLmN1cnJlbnQmJlEoZSl9KSkpLCgpPT57Vi5jdXJyZW50PW51bGx9KSksW10pLCgwLHIudXNlRWZmZWN0KSgoKCk9PntudWxsIT09ai5jdXJyZW50JiYoai5jdXJyZW50LnN0eWxlLnBvaW50ZXJFdmVudHM9WT8ibm9uZSI6IiIpfSksW1ldKSwoMCxyLnVzZUVmZmVjdCkoKCgpPT5YKEJvb2xlYW4oTSkpKSxbTV0pLCgwLHIudXNlRWZmZWN0KSgoKCk9Pk8/LihCb29sZWFuKHopKSksW3pdKSx6JiZHKXtjb25zdHtNYW5hZ2VyOmUsUmVmZXJlbmNlOnQsUG9wcGVyOm59PUc7cmV0dXJuIHIuY3JlYXRlRWxlbWVudChlLG51bGwsci5jcmVhdGVFbGVtZW50KHQsbnVsbCwoZT0+ci5jcmVhdGVFbGVtZW50KCJkaXYiLHtzdHlsZTpELHJlZjooMCxhLm1lcmdlUmVmcykoW2UucmVmLEpdKSxjbGFzc05hbWU6bCgpKGMucGxhY2VIb2xkZXIscyxxJiZ1KX0pKSksci5jcmVhdGVFbGVtZW50KG4se2lubmVyUmVmOmoscGxhY2VtZW50OnAsc3RyYXRlZ3k6ImZpeGVkIixtb2RpZmllcnM6W3tuYW1lOiJvZmZzZXQiLG9wdGlvbnM6e29mZnNldDpbMCw1XX19LHtuYW1lOiJwcmV2ZW50T3ZlcmZsb3ciLG9wdGlvbnM6e3Jvb3RCb3VuZGFyeTp3fHwidmlld3BvcnQiLGFsdEJvdW5kYXJ5Onh8fCExLHBhZGRpbmc6SX19LHtuYW1lOiJmbGlwIixlbmFibGVkOkwsb3B0aW9uczp7ZmFsbGJhY2tQbGFjZW1lbnRzOlsibGVmdCIsImJvdHRvbSJdfX0se25hbWU6ImhpZGVXaXRoUmVmZXJlbmNlIixlbmFibGVkOkEscGhhc2U6Im1haW4iLGZuOmU9Pntjb25zdHtzdGF0ZTp0fT1lLG49Qm9vbGVhbih0Lm1vZGlmaWVyc0RhdGEuaGlkZT8uaXNSZWZlcmVuY2VIaWRkZW4pO1khPT1uJiZYKG4pfX1dfSwoZT0+KFouY3VycmVudD1lLHIuY3JlYXRlRWxlbWVudChkLHtzZXRTbWFsbFNpemU6Syx0ZXh0OnYsYnV0dG9uVGV4dDpTLHJlZmVyZW5jZTpmLHBvcHBlckNoaWxkcmVuUHJvcHM6ZSx0aXRsZTpfLHRoZW1lOm8sYXJyb3dDbGFzc05hbWU6bCgpKChXfHxZKSYmYy5oaWRkZW4pLGNvbnRhaW5lckNsYXNzTmFtZTpsKCkoUixZJiZjLmhpZGRlbiksb25DbGljazp5P3ZvaWQgMDpuZSxidXR0b25TaXplOlAsb25BZGRpdGlvbmFsQ2xpY2s6cmUsYWRkaXRpb25hbEJ1dHRvblRleHQ6QyxhZGRpdGlvbmFsQnV0dG9uQ2xhc3NOYW1lOlQsYnV0dG9uUmVmZXJlbmNlOmVlLG9uQnV0dG9uRm9jdXM6SCxidXR0b25EYXRhTmFtZTpVLG9uQ2xvc2U6eT9uZTpnP29lOnZvaWQgMH0pKSkpKX1yZXR1cm4gbnVsbDtmdW5jdGlvbiBuZSgpe3RlLmNsb3NlKEYpLGgmJmgoKX1mdW5jdGlvbiByZSgpe3RlLmNsb3NlKEIpLEUmJkUoKX1mdW5jdGlvbiBvZSgpe2NvbnN0e3NhdmVIaW50U3RhdGVCeU9uQ2xvc2U6dD0hMX09ZTt0ZS5jbG9zZSh0KSxiJiZiKCl9fSkpO2Z1bmN0aW9uIGQoZSl7Y29uc3R7c2V0U21hbGxTaXplOnQscG9wcGVyQ2hpbGRyZW5Qcm9wczpuLC4uLm99PWU7cmV0dXJuKDAsci51c2VMYXlvdXRFZmZlY3QpKCgoKT0+e3Qobi5wbGFjZW1lbnQmJm4ucGxhY2VtZW50LnN0YXJ0c1dpdGgoImJvdHRvbSIpKX0pLFt0LG5dKSxyLmNyZWF0ZUVsZW1lbnQocy5IaW50V2l6YXJkLHsuLi5vLHBvcHBlckNoaWxkcmVuUHJvcHM6bn0pfX0sNTAyNzExKGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse2RlZmF1bHRIaW50U3RhdGVIYW5kbGVyOigpPT5vfSk7dmFyIHI9big5MzA1NjYpO2NvbnN0IG89e2dldEhpbnRTdGF0ZTooZSx0KT0+e2lmKCFlfHx0KXJldHVybiEwO2NvbnN0IG49ci5nZXRCb29sKGUpO3JldHVybiB3aW5kb3cuaXNfYXV0aGVudGljYXRlZCYmKG58fHZvaWQgMD09PW4pfSxzZXRIaW50U3RhdGU6ZT0+e2UmJnIuc2V0VmFsdWUoZSwhMSx7Zm9yY2VGbHVzaDohMH0pfX19LDQ3OTkyMChlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtERUZBVUxUX0hJTlRfVEhFTUU6KCk9PnUsCkhpbnRXaXphcmQ6KCk9PmR9KTt2YXIgcj1uKDc3OTQ3NCksbz1uKDE4NTI3MSksbD1uKDkxNDQ4NyksYT1uLm4obCkscz1uKDY5MjI2NiksaT1uKDg1NDgyMCksYz1uKDQzNTEwMSk7Y29uc3QgdT03OTc5NT09bi5qP2M6bnVsbDtmdW5jdGlvbiBkKGUpe2NvbnN0e3BvcHBlckNoaWxkcmVuUHJvcHM6dCxvbkNsaWNrOmwscmVmZXJlbmNlOnUsdGV4dDpkLGJ1dHRvblRleHQ6bSxhZGRpdGlvbmFsQnV0dG9uVGV4dDpwLG9uQWRkaXRpb25hbENsaWNrOmgsdGl0bGU6Zix0aGVtZTpTPWMsY29udGFpbmVyQ2xhc3NOYW1lOmcsYXJyb3dDbGFzc05hbWU6eSxhZGRpdGlvbmFsQnV0dG9uQ2xhc3NOYW1lOmIsb25DbG9zZTp2LGJ1dHRvblNpemU6Xz0ieHNtYWxsIixidXR0b25SZWZlcmVuY2U6RSxvbkJ1dHRvbkZvY3VzOkMsYnV0dG9uRGF0YU5hbWU6VH09ZTtyZXR1cm4gci5jcmVhdGVFbGVtZW50KHMuVG9vbHRpcFdpemFyZCx7cmVmZXJlbmNlOnUscG9wcGVyQ2hpbGRyZW5Qcm9wczp0LGNvbnRhaW5lckNsYXNzTmFtZTpnLGFycm93Q2xhc3NOYW1lOnksb25DbG9zZTp2LHJvbGU6ImhpbnQifSxyLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpTLndyYXBwZXJ9LGYmJnIuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOlMudGl0bGV9LGYpLHIuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOlMudGV4dH0sZCksci5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6Uy5idXR0b25zfSxoJiZwJiZyLmNyZWF0ZUVsZW1lbnQoaS5MaWdodEJ1dHRvbix7dmFyaWFudDoiZ2hvc3QiLGNvbG9yOiJncmF5IixjbGFzc05hbWU6YSgpKFMuYWRkaXRpb25hbEJ1dHRvbixiKSxzaXplOl8sb25DbGljazpofSxwKSxsJiZyLmNyZWF0ZUVsZW1lbnQoaS5MaWdodEJ1dHRvbix7ZGF0YVFhSWQ6VCxvbkZvY3VzOkMscmVmZXJlbmNlOkUsdmFyaWFudDoicHJpbWFyeSIsY29sb3I6ImdyYXkiLGNsYXNzTmFtZTpTLmJ1dHRvbixzaXplOl8sb25DbGljazpsfSxtfHxvLnQobnVsbCx2b2lkIDAsbig0MDIzMjQpKSkpKSl9fSwzMDU0NzQoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7dXNlQ3VzdG9tVG91Y2hTY3JvbGxBbmltYXRpb246KCk9Pml9KTt2YXIgcixvLGw9big3Nzk0NzQpLGE9bigxMzg2MzgpLHM9big5MjU5ODUpO2Z1bmN0aW9uIGkoZSl7Y29uc3R7c2Nyb2xsQ29udGFpbmVyUmVmOnR9PWU7Yyh7c2Nyb2xsQ29udGFpbmVyUmVmOnQsZGlyZWN0aW9uOjB9KSxjKHtzY3JvbGxDb250YWluZXJSZWY6dCxkaXJlY3Rpb246MX0pfWZ1bmN0aW9uIGMoZSl7Y29uc3R7c2Nyb2xsQ29udGFpbmVyUmVmOnQsZGlyZWN0aW9uOm59PWUscj0oMCxsLnVzZVJlZikobnVsbCksbz0oMCxsLnVzZVJlZikobnVsbCkscz0oMCxsLnVzZVJlZikodSgpKSxpPSgwLGwudXNlUmVmKSghMSksYz0oMCxsLnVzZVJlZikoe3g6MCx5OjB9KTtmdW5jdGlvbiBkKGUpe3JldHVybiAwPT09bj9lLnRvdWNoZXNbMF0uY2xpZW50WTplLnRvdWNoZXNbMF0uY2xpZW50WH1mdW5jdGlvbiBtKGUpe3JldHVybiAwPT09bj9lLnNjcm9sbFRvcDplLnNjcm9sbExlZnR9ZnVuY3Rpb24gcChlLHQpezA9PT1uP2Uuc2Nyb2xsVG9wPXQ6ZS5zY3JvbGxMZWZ0PXR9ZnVuY3Rpb24gaChlKXtyZXR1cm4gMD09PW4/ZS5zY3JvbGxIZWlnaHQtZS5jbGllbnRIZWlnaHQ6ZS5zY3JvbGxXaWR0aC1lLmNsaWVudFdpZHRofWZ1bmN0aW9uIGYoZSl7Y29uc3Qgbj0oMCxhLmVuc3VyZU5vdE51bGwpKCgwLGEuZW5zdXJlRGVmaW5lZCkodCkuY3VycmVudCk7aS5jdXJyZW50PTA9PT1oKG4pLGkuY3VycmVudHx8KHIuY3VycmVudD1kKGUpLGMuY3VycmVudD17eDplLnRvdWNoZXNbMF0uY2xpZW50WCx5OmUudG91Y2hlc1swXS5jbGllbnRZfSxzLmN1cnJlbnQ9dSgpKX1mdW5jdGlvbiBTKGUpe2lmKGkuY3VycmVudClyZXR1cm47aWYoZnVuY3Rpb24oZSl7Y29uc3QgdD1NYXRoLmF0YW4yKGUudG91Y2hlc1swXS5jbGllbnRZLWMuY3VycmVudC55LGUudG91Y2hlc1swXS5jbGllbnRYLWMuY3VycmVudC54KSxuPU1hdGguYWJzKHQpO3JldHVybiBuPk1hdGguUEkvNCYmbjwzKk1hdGguUEkvND8wOjF9KGUpIT09bilyZXR1cm4gdm9pZChpLmN1cnJlbnQ9ITApO2UucHJldmVudERlZmF1bHQoKTtjb25zdCBvPSgwLGEuZW5zdXJlTm90TnVsbCkoKDAsYS5lbnN1cmVEZWZpbmVkKSh0KS5jdXJyZW50KSxsPWQoZSksdT1sLSgwLGEuZW5zdXJlTm90TnVsbCkoci5jdXJyZW50KTtwKG8sbShvKS11KSxyLmN1cnJlbnQ9bDtjb25zdCBoPXBlcmZvcm1hbmNlLm5vdygpOygwLGEuZW5zdXJlTm90TnVsbCkocy5jdXJyZW50KS5hZGRQb3NpdGlvbihtKG8pLGgpfWZ1bmN0aW9uIGcoKXtpZihpLmN1cnJlbnQpcmV0dXJuO2NvbnN0IGU9cGVyZm9ybWFuY2Uubm93KCksbj0oMCxhLmVuc3VyZU5vdE51bGwpKCgwLGEuZW5zdXJlRGVmaW5lZCkodCkuY3VycmVudCk7cy5jdXJyZW50LnN0YXJ0KG0obiksZSkscy5jdXJyZW50LmZpbmlzaGVkKGUpfHwoby5jdXJyZW50PXJlcXVlc3RBbmltYXRpb25GcmFtZSh5KSksci5jdXJyZW50PW51bGx9ZnVuY3Rpb24geShlKXtpZihzLmN1cnJlbnQuZmluaXNoZWQoZSkpcmV0dXJuIHZvaWQgYigpO2NvbnN0IG49KDAsYS5lbnN1cmVOb3ROdWxsKSgoMCxhLmVuc3VyZURlZmluZWQpKHQpLmN1cnJlbnQpLHI9cy5jdXJyZW50LmdldFBvc2l0aW9uKGUpO3AobixyKSxyPD0wfHxoKG4pPD1yP2IoKTpvLmN1cnJlbnQ9cmVxdWVzdEFuaW1hdGlvbkZyYW1lKHkpfWZ1bmN0aW9uIGIoKXtvLmN1cnJlbnQmJmNhbmNlbEFuaW1hdGlvbkZyYW1lKG8uY3VycmVudCl9KDAsbC51c2VFZmZlY3QpKCgoKT0+e2NvbnN0IGU9dD8uY3VycmVudDtyZXR1cm4gZT8uYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hzdGFydCIsZiksZT8uYWRkRXZlbnRMaXN0ZW5lcigidG91Y2htb3ZlIixTKSxlPy5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaGVuZCIsZyksZT8uYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hjYW5jZWwiLGcpLCgpPT57ZT8ucmVtb3ZlRXZlbnRMaXN0ZW5lcigidG91Y2hzdGFydCIsZiksZT8ucmVtb3ZlRXZlbnRMaXN0ZW5lcigidG91Y2htb3ZlIixTKSwKZT8ucmVtb3ZlRXZlbnRMaXN0ZW5lcigidG91Y2hlbmQiLGcpLGU/LnJlbW92ZUV2ZW50TGlzdGVuZXIoInRvdWNoY2FuY2VsIixnKX19KSxbdCxuXSksKDAsbC51c2VFZmZlY3QpKCgoKT0+KCk9PmIoKSksW10pfWZ1bmN0aW9uIHUoKXtyZXR1cm4gbmV3IHMuS2luZXRpY0FuaW1hdGlvbiguMiw3LC45OTcsMTUpfSFmdW5jdGlvbihlKXtlW2UuVmVydGljYWw9MF09IlZlcnRpY2FsIixlW2UuSG9yaXpvbnRhbD0xXT0iSG9yaXpvbnRhbCJ9KHJ8fChyPXt9KSksZnVuY3Rpb24oZSl7ZVtlLk1pblNjcm9sbFNwZWVkPS4yXT0iTWluU2Nyb2xsU3BlZWQiLGVbZS5NYXhTY3JvbGxTcGVlZD03XT0iTWF4U2Nyb2xsU3BlZWQiLGVbZS5EdW1waW5nQ29lZmY9Ljk5N109IkR1bXBpbmdDb2VmZiIsZVtlLlNjcm9sbE1pbk1vdmU9MTVdPSJTY3JvbGxNaW5Nb3ZlIn0ob3x8KG89e30pKX0sMTM4OTk0KGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse0ljb25RdWVzdGlvbkluZm9ybWF0aW9uOigpPT5wLEljb25RdWVzdGlvbkluZm9ybWF0aW9uQnV0dG9uOigpPT5mLEljb25RdWVzdGlvbkluZm9ybWF0aW9uTGluazooKT0+aH0pO3ZhciByPW4oNzc5NDc0KSxvPW4oOTE0NDg3KSxsPW4ubihvKSxhPW4oMTE5NzUwKSxzPW4oODY1MDkyKSxpPW4oMzQ0Nzg1KSxjPW4oMTk4MjA5KSx1PW4ubihjKTtmdW5jdGlvbiBkKCl7ZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigic2Nyb2xsIixkKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJ0b3VjaHN0YXJ0IixkKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZW91dCIsZCksKDAsaS5oaWRlKSgpfWNvbnN0IG09ZT0+eygwLGkuc2hvd09uRWxlbWVudCkoZS5jdXJyZW50VGFyZ2V0LHt0b29sdGlwRGVsYXk6MH0pLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoInNjcm9sbCIsZCksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hzdGFydCIsZCksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2VvdXQiLGQpfSxwPSgwLHIuZm9yd2FyZFJlZikoKChlLHQpPT57Y29uc3R7Y2xhc3NOYW1lOm4sb25DbGljazpvPW0sZG9Ob3RTaG93VG9vbHRpcE9uVG91Y2g6YyxzaXplOmQsLi4ucH09ZSx7dG9vbHRpcDpoLGNsYXNzTmFtZTpmLC4uLlN9PSgwLHMudXNlVG9vbHRpcCkoe3Rvb2x0aXA6ZS50b29sdGlwLGRvTm90U2hvd1Rvb2x0aXBPblRvdWNoOiExLHNob3dUb29sdGlwOmkuc2hvd09uRWxlbWVudCxoaWRlVG9vbHRpcDppLmhpZGUsb25DbGljazpvfSx0KTtyZXR1cm4gci5jcmVhdGVFbGVtZW50KGEuSWNvblF1ZXN0aW9uSW5mb3JtYXRpb24se2NsYXNzTmFtZTpsKCkobix1KClbImljb24td3JhcHBlciJdLGgmJnUoKVsid2l0aC10b29sdGlwIl0sZiksdG9vbHRpcDpoLHNpemU6ZCwuLi5wLC4uLlN9KX0pKSxoPSgwLHIuZm9yd2FyZFJlZikoKChlLHQpPT57Y29uc3R7Y2xhc3NOYW1lOm4saHJlZjpvLHJlbDphLHRhcmdldDpzLC4uLml9PWUsYz0oMCxyLnVzZU1lbW8pKCgoKT0+KDAsci5mb3J3YXJkUmVmKSgoKGUsdCk9PnIuY3JlYXRlRWxlbWVudCgiYSIse2hyZWY6byxyZWw6YSx0YXJnZXQ6cyxyZWY6dCwuLi5lfSkpKSksW28sYSxzXSk7cmV0dXJuIHIuY3JlYXRlRWxlbWVudChwLHsuLi5pLGNsYXNzTmFtZTpsKCkobix1KClbIndpdGgtbGluayJdKSxyZW5kZXJDb21wb25lbnQ6YyxyZWY6dCxkb05vdFNob3dUb29sdGlwT25Ub3VjaDohMH0pfSkpLGY9KDAsci5mb3J3YXJkUmVmKSgoKGUsdCk9Pntjb25zdHtjbGFzc05hbWU6bix3aXRoQWN0aXZlU3RhdGU6bywuLi5hfT1lLHM9KDAsci51c2VNZW1vKSgoKCk9PigwLHIuZm9yd2FyZFJlZikoKChlLHQpPT5yLmNyZWF0ZUVsZW1lbnQoImJ1dHRvbiIsey4uLmUscmVmOnQsdHlwZToiYnV0dG9uIn0pKSkpLFtdKTtyZXR1cm4gci5jcmVhdGVFbGVtZW50KHAsey4uLmEsY2xhc3NOYW1lOmwoKShuLCFvJiZ1KClbIm5vLWFjdGl2ZS1zdGF0ZSJdKSxyZW5kZXJDb21wb25lbnQ6cyxyZWY6dH0pfSkpfSwyMzExMzMoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7U2VwYXJhdG9yOigpPT5zfSk7dmFyIHI9big3Nzk0NzQpLG89big5MTQ0ODcpLGw9bi5uKG8pLGE9big4MDYwNzgpO2Z1bmN0aW9uIHMoZSl7cmV0dXJuIHIuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOmwoKShhLnNlcGFyYXRvcixlLmNsYXNzTmFtZSl9KX19LDM2NDM1MChlLHQsbil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHIoZSx0KXtyZXR1cm4gZT09PXR9bi5kKHQse2NyZWF0ZVNlbGVjdG9yOigpPT5vfSk7dmFyIG89ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PWFyZ3VtZW50cy5sZW5ndGgsbj1BcnJheSh0PjE/dC0xOjApLHI9MTtyPHQ7cisrKW5bci0xXT1hcmd1bWVudHNbcl07cmV0dXJuIGZ1bmN0aW9uKCl7Zm9yKHZhciB0PWFyZ3VtZW50cy5sZW5ndGgscj1BcnJheSh0KSxvPTA7bzx0O28rKylyW29dPWFyZ3VtZW50c1tvXTt2YXIgbD0wLGE9ci5wb3AoKSxzPWZ1bmN0aW9uKGUpe3ZhciB0PUFycmF5LmlzQXJyYXkoZVswXSk/ZVswXTplO2lmKCF0LmV2ZXJ5KChmdW5jdGlvbihlKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgZX0pKSl7dmFyIG49dC5tYXAoKGZ1bmN0aW9uKGUpe3JldHVybiB0eXBlb2YgZX0pKS5qb2luKCIsICIpO3Rocm93IG5ldyBFcnJvcigiU2VsZWN0b3IgY3JlYXRvcnMgZXhwZWN0IGFsbCBpbnB1dC1zZWxlY3RvcnMgdG8gYmUgZnVuY3Rpb25zLCBpbnN0ZWFkIHJlY2VpdmVkIHRoZSBmb2xsb3dpbmcgdHlwZXM6IFsiK24rIl0iKX1yZXR1cm4gdH0ociksaT1lLmFwcGx5KHZvaWQgMCxbZnVuY3Rpb24oKXtyZXR1cm4gbCsrLGEuYXBwbHkobnVsbCxhcmd1bWVudHMpfV0uY29uY2F0KG4pKSxjPWUoKGZ1bmN0aW9uKCl7Zm9yKHZhciBlPVtdLHQ9cy5sZW5ndGgsbj0wO248dDtuKyspZS5wdXNoKHNbbl0uYXBwbHkobnVsbCxhcmd1bWVudHMpKTtyZXR1cm4gaS5hcHBseShudWxsLGUpfSkpO3JldHVybiBjLnJlc3VsdEZ1bmM9YSxjLmRlcGVuZGVuY2llcz1zLGMucmVjb21wdXRhdGlvbnM9ZnVuY3Rpb24oKXtyZXR1cm4gbH0sCmMucmVzZXRSZWNvbXB1dGF0aW9ucz1mdW5jdGlvbigpe3JldHVybiBsPTB9LGN9fSgoZnVuY3Rpb24oZSl7dmFyIHQ9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOnIsbj1udWxsLG89bnVsbDtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24oZSx0LG4pe2lmKG51bGw9PT10fHxudWxsPT09bnx8dC5sZW5ndGghPT1uLmxlbmd0aClyZXR1cm4hMTtmb3IodmFyIHI9dC5sZW5ndGgsbz0wO288cjtvKyspaWYoIWUodFtvXSxuW29dKSlyZXR1cm4hMTtyZXR1cm4hMH0odCxuLGFyZ3VtZW50cyl8fChvPWUuYXBwbHkobnVsbCxhcmd1bWVudHMpKSxuPWFyZ3VtZW50cyxvfX0pKX0sNzY5OShlLHQsbil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHIoZSl7aWYoIWUpcmV0dXJuIiI7aWYoWyJOWVNFIEFSQ0EgJiBNS1QiLCJBTUVYIl0uaW5jbHVkZXMoZSkpcmV0dXJuIk5ZU0UgQXJjYSI7aWYoWyJDYm9lIEJaWCJdLmluY2x1ZGVzKGUpKXJldHVybiJDYm9lIE9uZSI7aWYoWyJGVFNFU1QiXS5pbmNsdWRlcyhlKSlyZXR1cm4iRlRTRSBTVCI7Y29uc3QgdD0vXihDTUV8Q09NRVh8Q0JPVHxOWU1FWClfTUlOSSQvLmV4ZWMoZSk7cmV0dXJuIG51bGwhPT10P3RbMV06ZX1uLmQodCx7cmVkZWZpbmVFeGNoYW5nZU5hbWU6KCk9PnJ9KX0sNDc1MTY0KGUsdCxuKXsidXNlIHN0cmljdCI7dmFyIHIsbztuLnIodCksbi5kKHQse0ZpbHRlclF1ZXJ5UGFyYW06KCk9PnIsU2VhcmNoSW5pdGlhdGlvblBvaW50OigpPT5vLGdldEVtcHR5U2VhcmNoOigpPT5TLGlzRXhwYW5kYWJsZVJlc3VsdDooKT0+Zixpc1N5bWJvbFNlYXJjaFJlc3VsdDooKT0+aCxzZWFyY2hTeW1ib2xzOigpPT5nLHNlYXJjaFN5bWJvbHNQYWdpbmF0ZWQ6KCk9Pnl9KSxmdW5jdGlvbihlKXtlLlNvdXJjZUlkPSJzb3VyY2VfaWQiLGUuRWNvbm9taWNDYXRlZ29yeT0iZWNvbm9taWNfY2F0ZWdvcnkiLGUuU2VhcmNoVHlwZT0ic2VhcmNoX3R5cGUiLGUuU2VjdG9yPSJzZWN0b3IiLGUuUHJvZHVjdD0icHJvZHVjdCIsZS5DZW50cmFsaXphdGlvbj0iY2VudHJhbGl6YXRpb24iLGUuT25seUhhc09wdGlvbnM9Im9ubHlfaGFzX29wdGlvbnMifShyfHwocj17fSkpLGZ1bmN0aW9uKGUpe2UuU3ltYm9sU2VhcmNoPSJzeW1ib2xTZWFyY2giLGUuV2F0Y2hsaXN0PSJ3YXRjaGxpc3QiLGUuQ29tcGFyZT0iY29tcGFyZSIsZS5JbmRpY2F0b3JJbnB1dHM9ImluZGljYXRvcklucHV0cyJ9KG98fChvPXt9KSk7dmFyIGwsYSxzPW4oMTM4NjM4KSxpPW4oMTU2ODUwKSxjPW4oOTY2MzY3KSx1PW4oMjM3MzY5KSxkPW4oNjYxODU4KSxtPW4oMTYwMjk2KSxwPW4oMzg0MDE3KTtmdW5jdGlvbiBoKGUpe3JldHVybiBlLmhhc093blByb3BlcnR5KCJleGNoYW5nZSIpfWZ1bmN0aW9uIGYoZSl7cmV0dXJuIHZvaWQgMCE9PWUuZ3JvdXBlZF9zeW1ib2xzfHx2b2lkIDAhPT1lLmNvbnRyYWN0c31hc3luYyBmdW5jdGlvbiBTKCl7cmV0dXJue3N5bWJvbHM6W10sc3ltYm9sc19yZW1haW5pbmc6MH19YXN5bmMgZnVuY3Rpb24gZyhlKXtjb25zdCB0PUUoKSxuPWIoZSkscj1gJHt0fT8keygwLGMuY3JlYXRlU2VhcmNoUGFyYW1zKShuKS50b1N0cmluZygpfWAsbz0obmV3IERhdGUpLmdldFRpbWUoKTt0cnl7Y29uc3QgdD1hd2FpdCgwLHAuZmV0Y2gpKHIse3NpZ25hbDplLnNpZ25hbH0pO2lmKCF0Lm9rKXRocm93IGUuc2VydmVyTG9nZ2VyPy5sb2coe2FjdGlvbjoic3ltYm9sLXNlYXJjaC5lcnJvci1yZXNwb25zZSIsbGV2ZWw6ImVycm9yIixwYXlsb2FkOntyZXF1ZXN0Ont1cmw6cixtZXRob2Q6IkdFVCJ9LHN0YXR1c0NvZGU6dC5zdGF0dXMsbWVzc2FnZTooYXdhaXQgdC50ZXh0KCkpLnNsaWNlKDAsMjUwKX19KSxuZXcgRXJyb3IoYCR7dC5zdGF0dXN9OiAke3Quc3RhdHVzVGV4dH1gKTtjb25zdCBuPWF3YWl0IHQuanNvbigpO3JldHVybiBpLnRlbGVtZXRyeS5zZW5kQ2hhcnRSZXBvcnQoInN5bWJvbF9zZWFyY2hfaHR0cF9zdGF0dXMiLHt2YWx1ZTp0LnN0YXR1c30pLDA9PT1uLmxlbmd0aD9lLnNlcnZlckxvZ2dlcj8ubG9nKHthY3Rpb246InN5bWJvbC1zZWFyY2guZW1wdHktcmVzcG9uc2UiLGxldmVsOiJlcnJvciIscGF5bG9hZDp7cmVxdWVzdDp7dXJsOnIsbWV0aG9kOiJHRVQifX19KTplLnNlcnZlckxvZ2dlcj8ubG9nKHthY3Rpb246InN5bWJvbC1zZWFyY2guc3VjY2Vzcy1yZXNwb25zZSIsbGV2ZWw6ImluZm8iLHBheWxvYWQ6e3JlcXVlc3Q6e3VybDpyLG1ldGhvZDoiR0VUIn0sc3ltYm9sc0NvdW50Om4ubGVuZ3RofX0pLG59Y2F0Y2godCl7dGhyb3cgaS50ZWxlbWV0cnkuc2VuZENoYXJ0UmVwb3J0KCJzeW1ib2xfc2VhcmNoX2h0dHBfZXJyb3IiKSxlLnNlcnZlckxvZ2dlcj8ubG9nKHthY3Rpb246InN5bWJvbC1zZWFyY2gubmV0d29yay1lcnJvciIsbGV2ZWw6ImVycm9yIixwYXlsb2FkOntyZXF1ZXN0Ont1cmw6cixtZXRob2Q6IkdFVCJ9LG1lc3NhZ2U6KDAsdS5nZXRMb2dnZXJNZXNzYWdlKSh0KX19KSx0fWZpbmFsbHl7dihvKX19YXN5bmMgZnVuY3Rpb24geShlKXtjb25zdCB0PUUoITApLG49YihlKSxyPWAke3R9PyR7KDAsYy5jcmVhdGVTZWFyY2hQYXJhbXMpKGUub3ZlcnJpZGVRdWVyeVBhcmFtcz9lLm92ZXJyaWRlUXVlcnlQYXJhbXMobixlLnR5cGUpOm4pLnRvU3RyaW5nKCl9YCxvPShuZXcgRGF0ZSkuZ2V0VGltZSgpO3RyeXtjb25zdCB0PWF3YWl0KDAscC5mZXRjaCkocix7c2lnbmFsOmUuc2lnbmFsfSk7aWYoIXQub2spdGhyb3cgZS5zZXJ2ZXJMb2dnZXI/LmxvZyh7YWN0aW9uOiJzeW1ib2wtc2VhcmNoLmVycm9yLXJlc3BvbnNlIixsZXZlbDoiZXJyb3IiLHBheWxvYWQ6e3JlcXVlc3Q6e3VybDpyLG1ldGhvZDoiR0VUIn0sc3RhdHVzQ29kZTp0LnN0YXR1cyxtZXNzYWdlOihhd2FpdCB0LnRleHQoKSkuc2xpY2UoMCwyNTApfX0pLG5ldyBFcnJvcihgJHt0LnN0YXR1c306ICR7dC5zdGF0dXNUZXh0fWApO2NvbnN0IG49YXdhaXQgdC5qc29uKCk7cmV0dXJuIGkudGVsZW1ldHJ5LnNlbmRDaGFydFJlcG9ydCgic3ltYm9sX3NlYXJjaF9odHRwX3N0YXR1cyIse3ZhbHVlOnQuc3RhdHVzfSksCjA9PT1uLnN5bWJvbHMubGVuZ3RoP2Uuc2VydmVyTG9nZ2VyPy5sb2coe2FjdGlvbjoic3ltYm9sLXNlYXJjaC5lbXB0eS1yZXNwb25zZSIsbGV2ZWw6ImVycm9yIixwYXlsb2FkOntyZXF1ZXN0Ont1cmw6cixtZXRob2Q6IkdFVCJ9fX0pOmUuc2VydmVyTG9nZ2VyPy5sb2coe2FjdGlvbjoic3ltYm9sLXNlYXJjaC5zdWNjZXNzLXJlc3BvbnNlIixsZXZlbDoiaW5mbyIscGF5bG9hZDp7cmVxdWVzdDp7dXJsOnIsbWV0aG9kOiJHRVQifSxzeW1ib2xzQ291bnQ6bi5zeW1ib2xzLmxlbmd0aH19KSxufWNhdGNoKHQpe3Rocm93IGkudGVsZW1ldHJ5LnNlbmRDaGFydFJlcG9ydCgic3ltYm9sX3NlYXJjaF9odHRwX2Vycm9yIiksZS5zZXJ2ZXJMb2dnZXI/LmxvZyh7YWN0aW9uOiJzeW1ib2wtc2VhcmNoLm5ldHdvcmstZXJyb3IiLGxldmVsOiJlcnJvciIscGF5bG9hZDp7cmVxdWVzdDp7dXJsOnIsbWV0aG9kOiJHRVQifSxtZXNzYWdlOigwLHUuZ2V0TG9nZ2VyTWVzc2FnZSkodCl9fSksdH1maW5hbGx5e3Yobyl9fWZ1bmN0aW9uIGIoZSl7Y29uc3QgdD17fTt2b2lkIDAhPT1lLnRleHQmJih0LnRleHQ9ZS50ZXh0KSx2b2lkIDAhPT1lLmJyb2tlclN5bWJvbHMmJih0LmJyb2tlcl9zeW1ib2xzPWUuYnJva2VyU3ltYm9scy5zb3J0KCkuam9pbigiLCIpKSx2b2lkIDAhPT1lLnNlcnZlckhpZ2hsaWdodCYmKHQuaGw9ZS5zZXJ2ZXJIaWdobGlnaHQ/IjEiOiIwIiksdm9pZCAwIT09ZS5leGNoYW5nZSYmKHQuZXhjaGFuZ2U9ZS5leGNoYW5nZSksdm9pZCAwIT09ZS5jb3VudHJ5JiYodC5jb3VudHJ5PWUuY291bnRyeSksZS5zdHJpY3RNYXRjaCYmKHQuc3RyaWN0PSIxIiksZS5ub0xpbWl0cyYmKHQubm9fbGltaXRzPSIxIiksdm9pZCAwIT09ZS5sYW5nJiYodC5sYW5nPWUubGFuZyk7Y29uc3R7dHlwZTpufT1lO3ZhciByO3ZvaWQgMCE9PW4mJih0LnNlYXJjaF90eXBlPShyPW4sKDAscy5lbnN1cmVEZWZpbmVkKShDLmdldChyKSkpKSx2b2lkIDAhPT1lLnN0YXJ0JiYodC5zdGFydD1lLnN0YXJ0KTtjb25zdHtmaWx0ZXJRdWVyeVBhcmFtczpvfT1lO3JldHVybiB2b2lkIDAhPT1vJiZPYmplY3Qua2V5cyhvKS5mb3JFYWNoKChlPT57Y29uc3Qgbj1vW2VdO24mJih0W2VdPW4pfSkpLHdpbmRvdy5TU19ET01BSU5fUEFSQU1FVEVSJiYodC5kb21haW49d2luZG93LlNTX0RPTUFJTl9QQVJBTUVURVIpLGUuYWNjb3VudEZpbHRlcklkJiZlLmlzRXh0ZXJuYWw/dC5hZGRpdGlvbmFsX2ZpbHRlcj1gdHJhZGluZy8ke2UuYWNjb3VudEZpbHRlcklkfWA6KGUuYnJva2VySWR8fGUuYWNjb3VudEZpbHRlcklkKSYmKHQuYnJva2VyPWUuYnJva2VySWQ/LnRvTG93ZXJDYXNlKCl8fGUuYWNjb3VudEZpbHRlcklkPy50b0xvd2VyQ2FzZSgpLChlLmJyb2tlcklkJiZlLm9ubHlUcmFkYWJsZXx8ZS5hY2NvdW50RmlsdGVySWQmJmUub25seUFjY291bnRUcmFkYWJsZSkmJih0LnRyYWRhYmxlPSIxIiksZS51bmhpZGVTeW1ib2xTZWFyY2hHcm91cHMmJih0LnVuaGlkZT1lLnVuaGlkZVN5bWJvbFNlYXJjaEdyb3VwcykpLGUuZW5hYmxlR3JvdXBpbmcmJih0LmVuYWJsZV9ncm91cGluZz1lLmVuYWJsZUdyb3VwaW5nKSxlLnNvcnRCeUNvdW50cnkmJih0LnNvcnRfYnlfY291bnRyeT1lLnNvcnRCeUNvdW50cnkpLHQucHJvbW89ITAsdH1mdW5jdGlvbiB2KGUpe2NvbnN0IHQ9KG5ldyBEYXRlKS5nZXRUaW1lKCktZTtpLnRlbGVtZXRyeS5zZW5kQ2hhcnRSZXBvcnQoInN5bWJvbF9zZWFyY2hfdGltZV9mcmFtZSIse3ZhbHVlOnR9KX0hZnVuY3Rpb24oZSl7ZVtlLlByb2Q9MF09IlByb2QiLGVbZS5Mb2NhbD0xXT0iTG9jYWwifShsfHwobD17fSkpLGZ1bmN0aW9uKGUpe2VbZS5QYWdpbmF0ZWQ9MF09IlBhZ2luYXRlZCIsZVtlLk5vTGltaXQ9MV09Ik5vTGltaXQifShhfHwoYT17fSkpO2NvbnN0IF89ezA6ezA6Ii9zeW1ib2xfc2VhcmNoL3YzLyIsMToiL3N5bWJvbF9zZWFyY2gvIn0sMTp7MDoiL2xvY2FsX3NlYXJjaC92My8iLDE6Ii9sb2NhbF9zZWFyY2gvIn19O2Z1bmN0aW9uIEUoZSl7bGV0IHQ9Imh0dHBzOi8vIit3aW5kb3cuU1NfSE9TVDtjb25zdCBuPSgwLG0uaXNQcm9kKSgpPzA6MTtyZXR1cm4gdCs9X1tuXVtlPzA6MV0sd2luZG93LlNTX1VSTCYmKHQ9d2luZG93LlNTX1VSTCksdH1jb25zdCBDPW5ldyBNYXAoZC5tYXAoKCh7dmFsdWU6ZSxzZWFyY2hfdHlwZTp0fSk9PltlLHRdKSkpfSw4MjQzNShlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtWSVNJQkxFX1RZUEVTUEVDUzooKT0+YSxtYXJrZXRUeXBlOigpPT5zfSk7dmFyIHI9bigxNTY4MjkpLG89big3MjY2MDIpO24oODI5MTgwKTtjb25zdCBsPW5ldyBNYXAsYT1uZXcgU2V0KFsiY2ZkIiwic3ByZWFkYmV0IiwiZGVmaSIsInlpZWxkIiwiZ292ZXJubWVudCIsImNvcnBvcmF0ZSIsIm11dHVhbCIsIm1vbmV5IiwiZXRmIiwidW5pdCIsInRydXN0IiwicmVpdCIsImV0biIsImNvbnZlcnRpYmxlIiwiY2xvc2VkZW5kIiwiY3J5cHRvIiwib3JhY2xlIiwibmRmIiwiYWxnb3JpdGhtaWMiXSk7ZnVuY3Rpb24gcyhlLHQ9W10sbj0hMCl7aWYoKDAsci5pc1ByZUlwbykoZSx0KSlyZXR1cm4icHJlLUlQTyI7Y29uc3Qgcz10LmZpbHRlcigoZT0+YS5oYXMoZSkpKSxpPWAke2V9XyR7cy5zb3J0KCkuam9pbigiXyIpfWAsYz1sLmdldChpKTtpZih2b2lkIDAhPT1jKXJldHVybiBjO2NvbnN0IHU9bj8oMCxvLnRyaWVzVHJhbnNsYXRlTWFya2V0VHlwZSkoZSk6ZSxkPUJvb2xlYW4odC5sZW5ndGgpP1t1LC4uLnNdLmpvaW4oIiAiKTp1O3JldHVybiBsLnNldChpLGQpLGR9fSw0MDIzOShlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtmb3JtYXRDYWxlbmRhckRheXNEaWZmOigpPT5hLGdldENhbGVuZGFyRGF5c0RpZmY6KCk9Pm99KTt2YXIgcj1uKDE4NTI3MSk7ZnVuY3Rpb24gbyhlLHQsbil7Y29uc3Qgcj1uZXcgRGF0ZSh0KSxvPW5ldyBEYXRlKGUpLGE9bj8wOjYwKihsKHIpLWwobykpKjFlMztyZXR1cm4gbj8oci5zZXRVVENIb3VycygxMiwwLDAsMCksby5zZXRVVENIb3VycygxMiwwLDAsMCkpOihyLnNldEhvdXJzKDEyLDAsMCwwKSxvLnNldEhvdXJzKDEyLDAsMCwwKSksCihzPShvLmdldFRpbWUoKS1yLmdldFRpbWUoKS1hKS84NjRlNSk8MD9NYXRoLmNlaWwocyk6TWF0aC5mbG9vcihzKTt2YXIgc31mdW5jdGlvbiBsKGUpe3JldHVybiAxNSotTWF0aC5yb3VuZChlLmdldFRpbWV6b25lT2Zmc2V0KCkvMTUpfWZ1bmN0aW9uIGEoZSl7aWYoMD09PWUpcmV0dXJuIHIudChudWxsLHZvaWQgMCxuKDYxNDQ1MCkpO2lmKDE9PT1lKXJldHVybiByLnQobnVsbCx2b2lkIDAsbig5NDA0ODMpKTtpZigtMT09PWUpcmV0dXJuIHIudChudWxsLHZvaWQgMCxuKDk2NTU3MykpO2NvbnN0IHQ9TWF0aC5hYnMoZSksbz1yLnQobnVsbCx7cGx1cmFsOiIlZCBkYXlzIixjb3VudDp0fSxuKDU1MDI2KSkucmVwbGFjZSgiJWQiLFN0cmluZyh0KSk7cmV0dXJuIGU+MT9yLnQobnVsbCx7Y29udGV4dDoidGltZV9yYW5nZSJ9LG4oNDkwNzQwKSkucmVwbGFjZSgiJXMiLG8pOnIudChudWxsLHtjb250ZXh0OiJ0aW1lX3JhbmdlIn0sbig1MDI2OTIpKS5yZXBsYWNlKCIlcyIsbyl9fSwzMDk4MzYoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7YWRkVXRtVG9Vcmw6KCk9Pm99KTt2YXIgcj1uKDYwMTU4Nyk7ZnVuY3Rpb24gbyhlLHQpe2lmKCEvKFthLXpBLVowLTkuLV0qdHJhZGluZ3ZpZXcuY29tKXxsb2NhbGhvc3QvLnRlc3QoZSkpcmV0dXJuIGU7Y29uc3Qgbj0oMCxyLmJ1aWxkVXRtUXVlcnlTdHJpbmcpKHQpO2lmKCIiPT09bilyZXR1cm4gZTtjb25zdCBvPWUuaW5kZXhPZigiPyIpLGw9ZS5pbmRleE9mKCIjIiksYT0tMSE9PWw7aWYoLTEhPT1vJiYoIWF8fG88bCkpe3JldHVybmAke2Uuc2xpY2UoMCxvKX0/JHthP2Uuc2xpY2UobysxLGwpOmUuc2xpY2UobysxKX0mJHtufSR7YT9lLnNsaWNlKGwpOiIifWB9aWYoYSl7cmV0dXJuYCR7ZS5zbGljZSgwLGwpfT8ke259JHtlLnNsaWNlKGwpfWB9cmV0dXJuYCR7ZX0/JHtufWB9fSw2MDE1ODcoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7YnVpbGRVdG1RdWVyeVN0cmluZzooKT0+cyxidWlsZFV0bVF1ZXJ5U3RyaW5nRnJvbVVybFBhcmFtczooKT0+aSxmaWx0ZXJVdG1JbmZvOigpPT5hfSk7dmFyIHI9big0OTI2NzcpLG89big2NDE1OTMpO2NvbnN0IGw9WyJ1dG1fc291cmNlIiwidXRtX21lZGl1bSIsInV0bV9jYW1wYWlnbiJdO2Z1bmN0aW9uIGEoZSl7Y29uc3QgdD17fTtyZXR1cm4gbC5mb3JFYWNoKChuPT57Y29uc3Qgcj1lW25dOyJzdHJpbmciPT10eXBlb2YgciYmIiIhPT1yJiYodFtuXT0oMCxvLmh0bWxFc2NhcGUpKHIpKX0pKSx0fWZ1bmN0aW9uIHMoZSx0PSExKXtjb25zdCBuPSgwLHIuY3JlYXRlVXJsUGFyYW1zKShlKTtyZXR1cm4gbiYmdD8iPyIrbjpufWZ1bmN0aW9uIGkoZSl7cmV0dXJuIHMoYSgoMCxyLmdldFVybFBhcmFtcykoKSksZSl9fSwxNjM1NzYoZSl7ZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDE4IDE4IiB3aWR0aD0iMTgiIGhlaWdodD0iMTgiPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZD0iTTMuOTIgMTAuMTcgOSA1LjcxbDUuMDggNC40Ni0xIDEuMTNMOSA3LjcxIDQuOTEgMTEuM2wtLjk5LTEuMTNaIi8+PC9zdmc+J30sMTg2Mzg0KGUpe2UuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxOCAxOCIgd2lkdGg9IjE4IiBoZWlnaHQ9IjE4Ij48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGQ9Ik0xMy4zNSA1LjM1YS41LjUgMCAwIDAtLjctLjdMOSA4LjI5IDUuMzUgNC42NWEuNS41IDAgMSAwLS43LjdMOC4yOSA5bC0zLjY0IDMuNjVhLjUuNSAwIDAgMCAuNy43TDkgOS43MWwzLjY1IDMuNjRhLjUuNSAwIDAgMCAuNy0uN0w5LjcxIDlsMy42NC0zLjY1eiIvPjwvc3ZnPid9LDU3NjQ5MyhlKXtlLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMTggMTgiIHdpZHRoPSIxOCIgaGVpZ2h0PSIxOCI+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik05IDE3QTggOCAwIDEgMCA5IDFhOCA4IDAgMCAwIDAgMTZabTAtOS4wNEw2LjA0IDUgNSA2LjA0IDcuOTYgOSA1IDExLjk2IDYuMDQgMTMgOSAxMC4wNCAxMS45NiAxMyAxMyAxMS45NiAxMC4wNCA5IDEzIDYuMDQgMTEuOTYgNSA5IDcuOTZaIi8+PC9zdmc+J30sNTI2NzEoZSl7ZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDI4IDI4IiB3aWR0aD0iMjgiIGhlaWdodD0iMjgiIGZpbGw9Im5vbmUiPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZD0iTTEyLjE4MiA0YTguMTggOC4xOCAwIDAgMSA2LjI5IDEzLjQxMmw1LjUyNiA1LjUyNS0xLjA2IDEuMDYtNS41MjctNS41MjVBOC4xODIgOC4xODIgMCAxIDEgMTIuMTgxIDRtMCAxLjVhNi42ODEgNi42ODEgMCAxIDAgMCAxMy4zNjMgNi42ODEgNi42ODEgMCAwIDAgMC0xMy4zNjMiLz48L3N2Zz4nfSwxNzg0MDcoZSl7ZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDE4IDE4IiB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIGZpbGw9Im5vbmUiPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZD0iTTE1IDExLjVWMTRIM3YtMi41em0tMi4yNS0zLjc1TDE1IDZ2NEgzVjZsMi4yNSAxLjc1TDkgNHoiLz48L3N2Zz4nfSw5MTUwOTAoZSl7ZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDE0IDE0Ij48cGF0aCBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIxLjIiIGQ9Im0xLjUgMS41IDExIDExbTAtMTEtMTEgMTEiIHZlY3Rvci1lZmZlY3Q9Im5vbi1zY2FsaW5nLXN0cm9rZSIvPjwvc3ZnPid9LDU5NDIzMChlKXsKZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDE4IDE4Ij48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGQ9Ik0xMi45MiAxLjkyIDUuODUgOWw3LjA3IDcuMDgtLjg0Ljg0LTcuNS03LjVMNC4xNSA5bC40My0uNDIgNy41LTcuNXoiLz48L3N2Zz4nfSwxNDAzNDAoZSl7ZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNMSAxMC4wNyAxMS40MyAyMWgxLjE0TDIzIDEwLjA3bC01LjIyLTUuODMtLjU2LS4yNEg2Ljc4bC0uNTYuMjRMMSAxMC4wN1ptMTAuOTYgOC41OC4wNC4wNSA4LjI4LTguNjdMMTYuNjggNmgtNC43MnYxMi42NVoiLz48L3N2Zz4nfSw0MjEwNjcoZSl7ZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDE4IDE4IiB3aWR0aD0iMTgiIGhlaWdodD0iMTgiPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZD0iTTE1IDJhMiAyIDAgMCAxIDIgMnYxMGEyIDIgMCAwIDEtMS44IDEuOTlMMTUgMTZINWwtLjItLjAxQTIgMiAwIDAgMSAzIDE0LjJMMyAxNGgxYTEgMSAwIDAgMCAxIDFoMTBhMSAxIDAgMCAwIDEtMVY0YTEgMSAwIDAgMC0xLTFINWExIDEgMCAwIDAtMSAxSDNjMC0xLjEuOS0yIDItMnptLTcgOWgxdjFIOHYxSDd2LTFINnYtMWgxdi0xaDF6bTYgMmgtM3YtMWgzek00LjQyIDlsLTIuNjggMy0uNzQtLjY2TDMuMDggOSAxIDYuNjZsLjc1LS42N3pNMTQgMTFoLTN2LTFoM3ptLTEuNS01LjIuOC0uOC43LjctLjguOC44LjgtLjcuNy0uOC0uNzktLjguNzktLjctLjcuNzktLjgtLjc5LS44LjctLjd6TTkgN0g2VjZoM3oiLz48L3N2Zz4nfSw4MzQzOChlKXtlLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMTggMTgiIHdpZHRoPSIxOCIgaGVpZ2h0PSIxOCI+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBkPSJNMTUgMmEyIDIgMCAwIDEgMiAydjEwYTIgMiAwIDAgMS0xLjggMS45OUwxNSAxNkg1bC0uMi0uMDFBMiAyIDAgMCAxIDMgMTQuMkwzIDE0aDFhMSAxIDAgMCAwIDEgMWgxMGExIDEgMCAwIDAgMS0xVjRhMSAxIDAgMCAwLTEtMUg1YTEgMSAwIDAgMC0xIDFIM2MwLTEuMS45LTIgMi0yem0tNyA5aDF2MUg4djFIN3YtMUg2di0xaDF2LTFoMXptNiAyaC0zdi0xaDN6TTQuMjcgNi42NCAyLjMgOWwxLjk3IDIuMzYtLjc3LjY0TDEgOWwyLjUtM3pNMTQgMTFoLTN2LTFoM3ptLTEuNS01LjIuOC0uOC43LjctLjguOC44LjgtLjcuNy0uOC0uNzktLjguNzktLjctLjcuNzktLjgtLjc5LS44LjctLjd6TTkgN0g2VjZoM3oiLz48L3N2Zz4nfSw4MDk0NDQoZSl7ZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDEzIDEzIiB3aWR0aD0iMTMiIGhlaWdodD0iMTMiPjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2UtbGluZWNhcD0ic3F1YXJlIiBkPSJNMi41IDYuNWg5Ii8+PGNpcmNsZSBmaWxsPSJjdXJyZW50Q29sb3IiIGN4PSI3IiBjeT0iMyIgcj0iMSIvPjxjaXJjbGUgZmlsbD0iY3VycmVudENvbG9yIiBjeD0iNyIgY3k9IjEwIiByPSIxIi8+PC9zdmc+J30sOTg5ODk0KGUpe2UuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMyAxMyIgd2lkdGg9IjEzIiBoZWlnaHQ9IjEzIj48ZyBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIHN0cm9rZT0iY3VycmVudENvbG9yIj48cGF0aCBzdHJva2UtbGluZWNhcD0ic3F1YXJlIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBkPSJNMy41IDEwVjIuNUwxIDUiLz48cGF0aCBzdHJva2UtbGluZWNhcD0ic3F1YXJlIiBkPSJNMS41IDEwLjVoNCIvPjxwYXRoIGQ9Ik04IDEybDMtMTEiLz48L2c+PC9zdmc+J30sNzQ5Njk3KGUpe2UuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMyAxMyIgd2lkdGg9IjEzIiBoZWlnaHQ9IjEzIj48cGF0aCBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLWxpbmVjYXA9InNxdWFyZSIgZD0iTTIuNSA2LjVoOCIvPjwvc3ZnPid9LDE1NzY4MShlKXtlLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMTMgMTMiIHdpZHRoPSIxMyIgaGVpZ2h0PSIxMyI+PHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS1saW5lY2FwPSJzcXVhcmUiIGQ9Ik0zIDEwbDctN00zIDNsNyA3Ii8+PC9zdmc+J30sOTg3NjgzKGUpe2UuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMyAxMyIgd2lkdGg9IjEzIiBoZWlnaHQ9IjEzIj48cGF0aCBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLWxpbmVjYXA9InNxdWFyZSIgZD0iTTIuNSA2LjVoOG0tNC00djgiLz48L3N2Zz4nfSwzMDMyMzgoZSl7ZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDEzIDEzIiB3aWR0aD0iMTMiIGhlaWdodD0iMTMiPjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2UtbGluZWNhcD0ic3F1YXJlIiBkPSJNMyA3bDMuNS0zLjVMMTAgNyIvPjwvc3ZnPid9LDkyMTcwOChlKXsKZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDE4IDE4IiB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIGZpbGw9Im5vbmUiPjxwYXRoIHN0cm9rZT0iY3VycmVudENvbG9yIiBkPSJNMi41IDE0LjVjMS42OC0xLjI2IDMuNy0yIDYuNS0yczQuOTEuNzQgNi41IDJtLTEzLTExYzEuNjggMS4yNiAzLjcgMiA2LjUgMnM0LjkxLS43NCA2LjUtMiIvPjxjaXJjbGUgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIGN4PSI5IiBjeT0iOSIgcj0iOC41Ii8+PHBhdGggc3Ryb2tlPSJjdXJyZW50Q29sb3IiIGQ9Ik0xMy41IDljMCAyLjQyLS41NSA0LjU4LTEuNCA2LjEyLS44NyAxLjU2LTEuOTggMi4zOC0zLjEgMi4zOHMtMi4yMy0uODItMy4xLTIuMzhjLS44NS0xLjU0LTEuNC0zLjctMS40LTYuMTJzLjU1LTQuNTggMS40LTYuMTJDNi43NyAxLjMyIDcuODguNSA5IC41czIuMjMuODIgMy4xIDIuMzhjLjg1IDEuNTQgMS40IDMuNyAxLjQgNi4xMnoiLz48L3N2Zz4nfSwxNDA4OTUoZSl7ZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDEyMCAxMjAiIHdpZHRoPSIxMjAiIGhlaWdodD0iMTIwIj48cGF0aCBmaWxsPSIjQjJCNUJFIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0yMyAzOWEzNiAzNiAwIDAgMSA3MiAwdjEzLjE1bDE1LjEgOC40NCAyLjE2IDEuMi0xLjY0IDEuODYtMTIuODUgMTQuNTkgMy43MyA0LjAzTDk4LjU3IDg1IDk1IDgxLjEzVjExN0g3N3YtMTJINjd2OUg1MFY5NUg0MHYyMkgyM1Y4MS4yOGwtMy44IDMuNjEtMi43Ni0yLjkgNC4wNS0zLjg0LTEyLjc3LTE0LjUtMS42NC0xLjg2IDIuMTYtMS4yTDIzIDUyLjM0VjM5Wm03MiAzNi4zMyAxMC45OC0xMi40Nkw5NSA1Ni43M3YxOC42Wk0yMyA1Ni45MnYxOC4wM0wxMi4zNSA2Mi44NyAyMyA1Ni45MlpNNTkgN2EzMiAzMiAwIDAgMC0zMiAzMnY3NGg5VjkxaDE4djE5aDl2LTloMTh2MTJoMTBWMzlBMzIgMzIgMCAwIDAgNTkgN1ptLTcgMzZhMyAzIDAgMSAxLTYgMCAzIDMgMCAwIDEgNiAwWm0xOSAzYTMgMyAwIDEgMCAwLTYgMyAzIDAgMCAwIDAgNloiLz48L3N2Zz4nfSw0ODc3NTAoZSl7ZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDEyMCAxMjAiIHdpZHRoPSIxMjAiIGhlaWdodD0iMTIwIj48cGF0aCBmaWxsPSIjMTMxNzIyIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0yMyAzOWEzNiAzNiAwIDAgMSA3MiAwdjEzLjE1bDE1LjEgOC40NCAyLjE2IDEuMi0xLjY0IDEuODYtMTIuODUgMTQuNTkgMy43MyA0LjAzTDk4LjU3IDg1IDk1IDgxLjEzVjExN0g3N3YtMTJINjd2OUg1MFY5NUg0MHYyMkgyM1Y4MS4yOGwtMy44IDMuNjEtMi43Ni0yLjkgNC4wNS0zLjg0LTEyLjc3LTE0LjUtMS42NC0xLjg2IDIuMTYtMS4yTDIzIDUyLjM0VjM5Wm03MiAzNi4zMyAxMC45OC0xMi40Nkw5NSA1Ni43M3YxOC42Wk0yMyA1Ni45MnYxOC4wM0wxMi4zNSA2Mi44NyAyMyA1Ni45MlpNNTkgN2EzMiAzMiAwIDAgMC0zMiAzMnY3NGg5VjkxaDE4djE5aDl2LTloMTh2MTJoMTBWMzlBMzIgMzIgMCAwIDAgNTkgN1ptLTcgMzZhMyAzIDAgMSAxLTYgMCAzIDMgMCAwIDEgNiAwWm0xOSAzYTMgMyAwIDEgMCAwLTYgMyAzIDAgMCAwIDAgNloiLz48L3N2Zz4nfSwzMTIxNDcoZSl7CmUuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMjAgMTIwIiB3aWR0aD0iMTIwIiBoZWlnaHQ9IjEyMCI+PHBhdGggZD0iTTYwLjkgNi42OGM2LjMuMjggMTEuNjQgMy42NyAxNC4xNyA4LjQ1IDEwLjgzIDIuNzUgMTguMjYgOC4zOSAxOC4yNiAxNC44OXYuNDNjLS4yNiA0Ljg4LTQuNzEgOS4yMy0xMS42MyAxMi4ybDMzLjMgNzAuNjhoLTMuNjdsLTMyLjc4LTY5LjVBNjAgNjAgMCAwIDEgNjAgNDYuNjdhNTggNTggMCAwIDEtMTkuOTMtMy4zbC0zMS40IDY5Ljk2SDVsMzItNzEuMjZjLTYuMTctMi45NC0xMC4wNy03LjA1LTEwLjMtMTEuNjJsLS4wMy0uNDVjMC02LjUgNy40My0xMi4xMyAxOC4yOC0xNC44OCAyLjY3LTUgOC40My04LjQ3IDE1LjEtOC40N1ptNy42IDQ5Ljk5Yy40NiAwIDEgMi4wNi45MiA0LjE2IDEuOC0uMjMgMy42My4yOCA1LjA0IDEuNDJsLjkuNy44Ny4wN2E1LjkgNS45IDAgMCAxIDUuNDQgNS44OHYuNDJhNS44IDUuOCAwIDAgMS0zLjU3IDUuMDFsLTMuNCAxLjQ0di4wNmEzMCAzMCAwIDAgMS0zLjE2IDEwLjk0bDMuMDYgOS04LjkzIDQuMjMtNS40Ni02LjQ2LTQuMTMgMi4xcS0uMzQgMS40Ni0uODggMi44NGwxLjQ3IDUuMy05LjYgNC41NUwzNC45NSA4Ni4zYTMuMzQgMy4zNCAwIDAgMC0xLjA1IDQuMDJsMy43IDguMzMtMy4wNSAxLjM1LTMuNy04LjMzYTYuNjcgNi42NyAwIDAgMSAyLjk4LTguNiAzLjEgMy4xIDAgMCAxIDEuNzQtMi40NGwyMy42Ni0xMS4zLTIuNTYtNS4wNCA2LS43NWExMi43IDEyLjcgMCAwIDAgNS40OC02LjM0cS4xNS0uNTUuMzUtLjUzbTMuODggOC4xOGEzLjMgMy4zIDAgMCAwLTMuODEtLjI1bC0yLjk1IDEuNzgtLjMuMTctLjM0LjA1LTMuMi40IDEuMTcgMi4zMy43OCAxLjU0LTEuNTMuNzMtMjQuOTcgMTEuOTQgMTEuMjMgMjAuNDggNC4yNS0yLjA0LTEuMDQtMy42Ni4zNy0uODljLjg1LTIuMTUgMS4zLTQuNDUgMS4zLTYuNzZ2LTRoMy4zM3Y0bC0uMDIuOTUgNC40Mi0yLjI1IDUuNSA2LjUxIDMuOTEtMS44Ni0yLjU2LTcuNTQuNDEtLjhhMjcgMjcgMCAwIDAgMy4wNS0xMC4xNmwuMS0xLjA2LjA5LTEgLjkxLS4zOCA0LjMyLTEuODFhMi41NiAyLjU2IDAgMCAwLS44Mi00LjkybC0xLjQtLjEyLS41LS4wMy0uNDEtLjMzWm0tMjguOC00NS44OWE0MCA0MCAwIDAgMC01LjY2IDIuMjRDMzIuMjUgMjQuMDQgMzAgMjcuMzcgMzAgMzAuMDJzMi4yNSA1Ljk2IDcuOTIgOC44QzQzLjQgNDEuNTUgNTEuMiA0My4zMyA2MCA0My4zM3MxNi42LTEuNzggMjIuMDgtNC41MUM4Ny43NSAzNS45OCA5MCAzMi42NyA5MCAzMHMtMi4yNS01Ljk2LTcuOTItOC44MmEzNyAzNyAwIDAgMC01LjY2LTIuMjJxLjI1IDEuMjMuMjUgMi41YzAgMy41NC00LjQgOC41NC0xNi42MiA4LjU0LTUtLjA3LTE2LjcyLTEuMzctMTYuNzItOC41cTAtMS4zLjI1LTIuNTRNNjAgMzVhMS42NyAxLjY3IDAgMSAxIDAgMy4zM0ExLjY3IDEuNjcgMCAwIDEgNjAgMzVtLTIxLjY3LTYuNjdhMS42NyAxLjY3IDAgMSAxIDAgMy4zNCAxLjY3IDEuNjcgMCAwIDEgMC0zLjM0bTQzLjM0IDBhMS42NyAxLjY3IDAgMSAxIDAgMy4zMyAxLjY3IDEuNjcgMCAwIDEgMC0zLjMzTTYwLjA1IDEwYy03Ljc4IDAtMTMuMzggNS41LTEzLjM4IDExLjUgMCAuMy4zMyAxLjU0IDIuNjYgMi44NyAyLjIgMS4yNiA1Ljc3IDIuMyAxMC43MiAyLjMgNS42OCAwIDkuMTYtMS4xNyAxMS4wOC0yLjQyIDEuOTUtMS4yNSAyLjItMi40MiAyLjItMi43NSAwLTYtNS41My0xMS41LTEzLjI4LTExLjUiIHN0eWxlPSJmaWxsOiNkYmRiZGIiLz48L3N2Zz4nfSwzNjU0NihlKXsKZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDEyMCAxMjAiIHdpZHRoPSIxMjAiIGhlaWdodD0iMTIwIj48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGQ9Ik02MC4wNSA4YzcuMTIgMCAxMy4xNyAzLjU5IDE1LjcgOC42OEM4Ni4wMiAxOS4zMiA5MyAyNC40OCA5MyAzMC40YzAgNC43My00LjQ0IDguOTYtMTEuNDYgMTEuODFMMTE2IDExMmgtNC40NEw3Ny43NSA0My41NkE2MiA2MiAwIDAgMSA2MCA0NmE2MSA2MSAwIDAgMS0xOS4xNi0yLjlMOS40IDExMkg1bDMyLjExLTcwLjM2QzMwLjg4IDM4LjgxIDI3IDM0LjgzIDI3IDMwLjQxYzAtNS45MyA2Ljk4LTExLjEgMTcuMjctMTMuNzRDNDYuODIgMTEuNTggNTIuOTIgOCA2MC4wNSA4bTcuODMgNDljLjQ0IDAgLjk3IDIuMDUuODggNC4xMnEuNTEtLjExIDEuMDItLjEyYy45NyAwIDEuOTQuMzIgMi43Ny44OWwxLjEyLjc2IDMuMzQuOTZhNS41MiA1LjUyIDAgMCAxIC43NiAxMC4zMmwtMy4xNCAxLjQ0LS4xOCAyLjAxYTE5IDE5IDAgMCAxLTIuMTcgNy4yNGwtLjcgMS4yOSAyLjQ4IDcuNTMuNTYgMS42OC03LjMyIDMuNDQtLjk4LTEuMjQtNC4zNS01LjQ3LTggMy43NmExNCAxNCAwIDAgMS0uNzIgMS41bC0uMTguMzMgMS45MyA2Ljk4LTcuOCAzLjU4LTExLjcyLTIxLjg4YTUuMSA1LjEgMCAwIDAtLjk0IDUuNzJsMy4wNiA2LjUtMy42MiAxLjY2LTMuMDYtNi40NkE5LjEgOS4xIDAgMCAxIDM0LjEgODIuMWEzLjQgMy40IDAgMCAxIDEuOS0yLjU0bDIzLjItMTAuODktMi4yLTQuODhjMi4xLS4zIDQuMjEtLjYgNi4zNC0uNzZhMTMgMTMgMCAwIDAgNC4yLTUuNXEuMTUtLjUzLjM0LS41Mm0yLjQyIDguMmExIDEgMCAwIDAtMS4wNi0uMDVsLTIuNjMgMS41LS40Ni4yN2gtLjU0Yy0uNzcgMC0xLjc4LjA2LTIuNzQuMTVsMS42NSAzLjUxTDM4LjMgODIuOWwxMC42NSAxOS44NiAxLjItLjU3TDQ5IDk3LjY1bC0uMTktLjc3LjM4LS42OS41Ni0xLjAyQTEwIDEwIDAgMCAwIDUxIDkwLjM0Vjg2aDR2NC43MUw2My4xMyA4N2wuOTkgMS4xMiA0LjM1IDUuNDcgMS4yNC0uNTgtMi4xOS02LjY3LS4yNy0uODEuNC0uNzYgMS4xLTIuMDRhMTUgMTUgMCAwIDAgMS43MS01LjcxbC4zLTMuMTcuMS0xLjE1IDEuMDYtLjQ5IDQuMTktMS45MWExLjUyIDEuNTIgMCAwIDAtLjIxLTIuODRsLTMuNjUtMS4wNi0uMy0uMDktLjI3LS4xOHpNNDMuMDMgMjEuMTdxLTIuNTUuOC00LjY1IDEuOEMzMi43NCAyNS42NCAzMSAyOC41NCAzMSAzMC40YzAgMS44NiAxLjc0IDQuNzUgNy4zNyA3LjQxQzQzLjcgNDAuMzQgNTEuMzQgNDIgNjAgNDJzMTYuMy0xLjY2IDIxLjYzLTQuMThjNS42My0yLjY2IDcuMzctNS41NSA3LjM3LTcuNDFzLTEuNzQtNC43Ny03LjM4LTcuNDNhMzYgMzYgMCAwIDAtNC42NS0xLjhxLjAzLjQuMDMuOGwtLjAxLjNDNzYuNyAyNS41NyA3Mi4xMiAzMCA2MC4wNSAzMCA0OS4yNSAzMCA0My4yIDI1LjkgNDMgMjIuMTV2LS4xOHEwLS40LjAzLS43OU02MCAzNGEyIDIgMCAxIDEgMCA0IDIgMiAwIDAgMSAwLTRtLTIyLTZhMiAyIDAgMSAxIDAgNCAyIDIgMCAwIDEgMC00bTQ0IDBhMiAyIDAgMSAxIDAgNCAyIDIgMCAwIDEgMC00TTYwLjA1IDEyYy03Ljk2IDAtMTMgNS4xMy0xMy4wNSA5LjkyIDAtLjA1LjE2LjgzIDIuMjkgMS45NUM1MS40NiAyNS4wNCA1NS4wNCAyNiA2MC4wNSAyNmM1Ljc4IDAgOS4yNC0xLjEgMTEuMS0yLjIxIDEuNjctMSAxLjgzLTEuOCAxLjg1LTEuODVsLS4wMS0uNDJjLS4zLTQuNjktNS4yNC05LjUyLTEyLjk0LTkuNTIiLz48L3N2Zz4nfSw3NzgyNzUoZSl7ZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDI4IDI4IiB3aWR0aD0iMjgiIGhlaWdodD0iMjgiPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNMTguNSAxMi41YTYgNiAwIDEgMS0xMiAwIDYgNiAwIDAgMSAxMiAwWm0tMS4yNSA1LjhhNy41IDcuNSAwIDEgMSAxLjA2LTEuMDZsNC4yMiA0LjIzLjUzLjUzTDIyIDIzLjA2bC0uNTMtLjUzLTQuMjItNC4yMloiLz48L3N2Zz4nfSw5MjAwMyhlKXtlLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMjggMjgiIHdpZHRoPSIyOCIgaGVpZ2h0PSIyOCIgZmlsbD0ibm9uZSI+PHBhdGggc3Ryb2tlPSJjdXJyZW50Q29sb3IiIGQ9Ik0xNy40IDE3LjVhNyA3IDAgMSAwLTQuOSAyYzEuOSAwIDMuNjQtLjc2IDQuOS0yem0wIDBsNS4xIDUiLz48L3N2Zz4nfSw3MTcxNDEoZSx0LG4peyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9bi5wKyJtb2NrLWRhcmsuMTZiNWYzYTQzMWY1MDJiMDNhZTMuc3ZnIn0sNDU4MDU5KGUsdCxuKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPW4ucCsibW9jay1saWdodC5kMjAxMzEzMDE3ZWIyYzFiOTg5Zi5zdmcifX1dKTs="}},"time_used":4,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":4,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/25809.8df4ea7b099adc15d066.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.788Z","timestamp":1785148034788,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/25809.8df4ea7b099adc15d066.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\ncontent-type: text/css; charset=utf-8\r\ncontent-length: 79\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\netag: \"69f98b77-4f\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Tue, 05 May 2026 06:17:27 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.51\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 05/05/2026 10:18:38\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 7674a78050e3b50ab51ae93fdd09aeda\r\ncdn-cache: HIT\r\naccept-ranges: bytes\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":79,"size_decoded":863,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with no line terminators","md5":"7c7d94ea3629744afc48b5d44b546a28","sha1":"f014604b1a12e092b9cb7395e56fdf7929a7cd5a","sha256":"a5a1f3871d96fa0cc01ddac6e16c91edeadcf090b690c328b8340fb83b60c906","sha512":"7a998a6a1bdb38b0eaa4f4f0499d7685c0d5fb2affcff597aef1845818e97ff07300b41a11826f8318037faf31b66795166b2da091779c327d84dc34ed48b5bf","ssdeep":"","tlshash":"bda01215342909b234118a18a885478241d429209658160ce0d0101e80230a0001000c","first_seen":"2026-03-24T10:46:27.312551Z","last_seen":"2026-07-27T12:54:15.321542Z","times_seen":346,"resource_available":false,"data":"LnByZXZpZXdXcmFwcGVyLXZpUE9HMmM2ey0tdWktbGliLWltYWdlLWNhcmQtcHJldmlldy1ib3JkZXItcmFkaXVzOjhweDtvcmRlcjowfQ=="}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"scanner.tradingview.com/symbol?symbol=BITSTAMP%3ABTCUSD\u0026fields=price_52_week_high%2Cprice_52_week_low%2Csector%2Ccountry%2Cmarket%2CLow.1M%2CHigh.1M%2CPerf.W%2CPerf.1M%2CPerf.3M%2CPerf.6M%2CPerf.Y%2CPerf.YTD%2CRecommend.All%2Caverage_volume_10d_calc%2Caverage_volume_30d_calc%2Cnav_discount_premium%2Copen_interest%2Ccountry_code_fund%2Civ%2Cunderlying_symbol%2Cdelta%2Cgamma%2Crho%2Ctheta%2Cvega%2CtheoPrice\u0026no_404=true\u0026label-product=right-details","fqdn":"scanner.tradingview.com","domain":"tradingview.com","tld":"com"},"ip":{"addr":"143.204.238.100","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"fetch","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:15.184Z","timestamp":1785148035184,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.tradingview.com","organization":""},"issuer":{"commonName":"Amazon RSA 2048 M04","organization":"Amazon"},"validity":{"start":"Thu, 09 Oct 2025 00:00:00 GMT","end":"Fri, 06 Nov 2026 23:59:59 GMT"},"fingerprint":{"sha1":"02:47:4D:AC:A6:12:65:AD:C2:19:CD:7E:61:B8:BF:E1:D8:36:CF:00","sha256":"12:7C:86:50:31:B1:3E:03:76:8B:F1:84:D4:AD:BC:95:0E:C1:60:40:F5:CE:75:F0:11:AF:91:BC:55:C1:D7:36"}}},"request":{"raw":"GET /symbol?symbol=BITSTAMP%3ABTCUSD\u0026fields=price_52_week_high%2Cprice_52_week_low%2Csector%2Ccountry%2Cmarket%2CLow.1M%2CHigh.1M%2CPerf.W%2CPerf.1M%2CPerf.3M%2CPerf.6M%2CPerf.Y%2CPerf.YTD%2CRecommend.All%2Caverage_volume_10d_calc%2Caverage_volume_30d_calc%2Cnav_discount_premium%2Copen_interest%2Ccountry_code_fund%2Civ%2Cunderlying_symbol%2Cdelta%2Cgamma%2Crho%2Ctheta%2Cvega%2CtheoPrice\u0026no_404=true\u0026label-product=right-details HTTP/1.1\r\nHost: scanner.tradingview.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: application/json\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nReferer: https://s.tradingview.com/\r\nOrigin: https://s.tradingview.com\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: empty\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-site\r\nPriority: u=4\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\ncontent-type: application/json\r\ndate: Mon, 27 Jul 2026 10:27:15 GMT\r\ncontent-encoding: gzip\r\nx-cache-level: hit1\r\nserver: tv\r\nvia: 216.250.139.74:443, 1.1 b4cf31e054e1e158a1bbb0df99815e30.cloudfront.net (CloudFront)\r\nstrict-transport-security: max-age=63072000; includeSubDomains; preload\r\naccess-control-allow-origin: https://s.tradingview.com\r\naccess-control-allow-headers: Referer\r\naccess-control-allow-methods: GET\r\naccess-control-allow-credentials: true\r\naccess-control-max-age: 86400\r\nvary: Origin\r\nx-cache: Miss from cloudfront\r\nx-amz-cf-pop: ARN53-P4\r\nx-amz-cf-id: 7OpCFfapZDnHxYSNeJckbDGHhKQky8N8CljtOprFjNOVtw5zrKeepg==\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Amazon CloudFront","description":"Amazon CloudFront is a fast content delivery network (CDN) service that securely delivers data, videos, applications, and APIs to customers globally with low latency, high transfer speeds.","website":"https://aws.amazon.com/cloudfront/","common_platform_enumeration":"","icon":"Amazon Cloudfront.svg","categories":["CDN"]},{"name":"Amazon Web Services","description":"Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.","website":"https://aws.amazon.com/","common_platform_enumeration":"","icon":"Amazon Web Services.svg","categories":["PaaS"]},{"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":612,"size_decoded":1046,"mime_type":"application/json","magic":"JSON text data","md5":"7be2bbc77d210c5fe1b8f6de516f7153","sha1":"32a6169cb280f6da072cd8ecfc523fb9280ef3e6","sha256":"1a9d5553e16f5139ef4cb8d72bd4e0544f55ce537d729dd11d205a69af0eaa02","sha512":"98b71e32e3de8ecc57ca4b6bbec3530b859df77a16d04c35d91c54c02daa687b8d656b352a57e057cced2ab8637ffc06f1228907e8620a1b84d728a8bd5791ba","ssdeep":"","tlshash":"fef0e11148d18e7eed654ab2bcf4bf4516bc131b41314d7a6666cf9203f12b9d001d1a","first_seen":"2026-07-27T10:28:06.15246Z","last_seen":"2026-07-27T10:28:13.7973Z","times_seen":2,"resource_available":false,"data":"eyJIaWdoLjFNIjo2NjkyMC43NCwiTG93LjFNIjo1NzczNC42MywiUGVyZi4xTSI6OC43OTc4ODU5NDAyNzMyMzgsIlBlcmYuM00iOi0xNS42MDI2NzAxNDc1OTQ4MDYsIlBlcmYuNk0iOi0yNi43Mzg1NTM4Nzg5NDc2NywiUGVyZi5XIjowLjk0NzQ0NTIyNjEzNjg2NywiUGVyZi5ZIjotNDQuNjUxNjk1NTgzMjYyLCJQZXJmLllURCI6LTI1LjM2NjE5OTU5NzY5NTksIlJlY29tbWVuZC5BbGwiOjAuMiwiYXZlcmFnZV92b2x1bWVfMTBkX2NhbGMiOjc2NS43NDAxODE2OTM5OTk4LCJhdmVyYWdlX3ZvbHVtZV8zMGRfY2FsYyI6OTUyLjIyOTQzNTg1MTk5OTgsImNvdW50cnkiOm51bGwsImNvdW50cnlfY29kZV9mdW5kIjpudWxsLCJkZWx0YSI6bnVsbCwiZ2FtbWEiOm51bGwsIml2IjpudWxsLCJtYXJrZXQiOiJjcnlwdG8iLCJuYXZfZGlzY291bnRfcHJlbWl1bSI6bnVsbCwib3Blbl9pbnRlcmVzdCI6bnVsbCwicHJpY2VfNTJfd2Vla19oaWdoIjoxMjYyNzIsInByaWNlXzUyX3dlZWtfbG93Ijo1NzczNC42MywicmhvIjpudWxsLCJzZWN0b3IiOiJCaXRjb2luIiwidGhlb1ByaWNlIjpudWxsLCJ0aGV0YSI6bnVsbCwidW5kZXJseWluZ19zeW1ib2wiOm51bGwsInZlZ2EiOm51bGx9"}},"time_used":181,"timings":{"blocked":-1,"dns":4,"connect":8,"send":0,"wait":152,"receive":0,"ssl":16},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"digital-assettrade.com/assets/global/css/iziToast.min.css","fqdn":"digital-assettrade.com","domain":"digital-assettrade.com","tld":"com"},"ip":{"addr":"5.182.208.207","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://digital-assettrade.com/","date":"2026-07-27T10:27:12.038Z","timestamp":1785148032038,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"digital-assettrade.com","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Sat, 20 Jun 2026 16:59:16 GMT","end":"Fri, 18 Sep 2026 16:59:15 GMT"},"fingerprint":{"sha1":"01:E1:B4:F9:5D:C1:12:F0:96:4A:57:43:D3:BB:2D:2B:F2:BE:B0:FC","sha256":"A8:D5:A6:4E:32:4D:7C:DD:DA:A5:73:54:3A:4A:4B:A5:0E:50:6F:09:0E:F5:B9:74:AC:9A:03:38:4D:A3:42:85"}}},"request":{"raw":"GET /assets/global/css/iziToast.min.css HTTP/1.1\r\nHost: digital-assettrade.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://digital-assettrade.com/\r\nCookie: XSRF-TOKEN=eyJpdiI6IlBJZ3lRZTB2d214bVhnZk5JbmtvaWc9PSIsInZhbHVlIjoiOWllUUw0S1NpMERaV0d2c2FYTDF0YndkRm5iSHg5RGJOMTVmNEltV2lONmQ5RlhjdjhvR0syQVZyZGdYanU1OEMwUkhQVVdndjRJelQzdWxmQldFejlZc2c4K1RKbktYZ2NySWpkQkdLTEV3czBrQyt5RE9TTHRSQk5BYkRvZEMiLCJtYWMiOiJkZDhhNjRlM2IzMGU1NTc4NDFkOGUyNGM0M2IyYTFkYjk3MDUxYTIwOGM5OTUwNDM2MmNhNjYzNjUwMTliN2EyIiwidGFnIjoiIn0%3D; digitalassettrade_session=eyJpdiI6InppdHd5OXFTcGhzM0xrUzhKN0NmQ2c9PSIsInZhbHVlIjoiNytzaTJ2ekZZSE9MTU9oYTdHZWwxeWl5YUl6ZDJSZ2UxSDhBZ0FCUmoxbFlrYU5kNXpTZnRqMTNTNERMaEpGM0srWk1KZ2YrcFNUalloQVkrTGEvSXBCVFU2blExUlgyTDFhckFkdlg0bHNjSVYrQWltRENjeDJ5QWNnQUk3RGciLCJtYWMiOiJhZDEzNWUwOGYyMzcwOGNkYjRlMGY4NmJhMDBlY2Y5OTdjYmUyMjRkNWY1N2NmODMwNWE1MDUxNjg1ZDMxOWE2IiwidGFnIjoiIn0%3D\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=2\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncache-control: public, max-age=604800\r\nexpires: Mon, 03 Aug 2026 10:27:12 GMT\r\ncontent-type: text/css\r\nlast-modified: Sat, 19 Apr 2025 09:13:56 GMT\r\naccept-ranges: bytes\r\ncontent-encoding: br\r\nvary: Accept-Encoding\r\ncontent-length: 9933\r\ndate: Mon, 27 Jul 2026 10:27:12 GMT\r\nserver: LiteSpeed\r\nalt-svc: h3=\":443\"; ma=2592000, h3-29=\":443\"; ma=2592000, h3-Q050=\":443\"; ma=2592000, h3-Q046=\":443\"; ma=2592000, h3-Q043=\":443\"; ma=2592000, quic=\":443\"; ma=2592000; v=\"43,46\"\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"LiteSpeed","description":"LiteSpeed is a high-scalability web server.","website":"https://litespeedtech.com","common_platform_enumeration":"cpe:2.3:a:litespeedtech:litespeed_web_server:*:*:*:*:*:*:*:*","icon":"LiteSpeed.svg","categories":["Web servers"]}],"data":{"size":41500,"size_decoded":10420,"mime_type":"text/css","magic":"ASCII text, with very long lines (41419)","md5":"ca2f839e9a41207ce4d486b75b0dc926","sha1":"398acaa4eca2baa749a90175fe24d3c2a35f19ca","sha256":"20b2776eaee552defc7c9b25bfef14a891f0dd4a12ac7320d689d749e1ca0fa7","sha512":"d9feb978fe3c1c26cbb2efb380a70eeb7501f5631343a998abfc84766f9a6d2f1e521cee40bcff6b381515a7a1d8fb4726af583502ee23549934757766257f5c","ssdeep":"384:pV5zpPVWahj8Ik/4kYip7pHRiJhkgL6LlG1oLzlRCPoA50UhLoMPFPsR4lweGbzi:zPVNhlHgppGf1oWQA1","tlshash":"711345fd15f0124454c6ab4296da6a980e3fcd9770ea1cef32cd344b8b46b9e136532b","first_seen":"2023-04-10T01:39:17Z","last_seen":"2026-07-27T13:07:58.21181Z","times_seen":2324,"resource_available":false,"data":"LyoKKiBpemlUb2FzdCB8IHYxLjQuMAoqIGh0dHA6Ly9peml0b2FzdC5tYXJjZWxvZG9sY2UuY29tCiogYnkgTWFyY2VsbyBEb2xjZS4KKi8KLml6aVRvYXN0LWNhcHN1bGV7Zm9udC1zaXplOjA7aGVpZ2h0OjA7d2lkdGg6MTAwJTt0cmFuc2Zvcm06dHJhbnNsYXRlWigwKTtiYWNrZmFjZS12aXNpYmlsaXR5OmhpZGRlbjt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuNXMgY3ViaWMtYmV6aWVyKC4yNSwuOCwuMjUsMSksaGVpZ2h0IC41cyBjdWJpYy1iZXppZXIoLjI1LC44LC4yNSwxKX0uaXppVG9hc3QtY2Fwc3VsZSwuaXppVG9hc3QtY2Fwc3VsZSAqe2JveC1zaXppbmc6Ym9yZGVyLWJveH0uaXppVG9hc3Qtb3ZlcmxheXtkaXNwbGF5OmJsb2NrO3Bvc2l0aW9uOmZpeGVkO3RvcDotMTAwcHg7bGVmdDowO3JpZ2h0OjA7Ym90dG9tOi0xMDBweDt6LWluZGV4Ojk5N30uaXppVG9hc3R7ZGlzcGxheTppbmxpbmUtYmxvY2s7Y2xlYXI6Ym90aDtwb3NpdGlvbjpyZWxhdGl2ZTtmb250LWZhbWlseTonTGF0bycsVGFob21hLEFyaWFsO2ZvbnQtc2l6ZToxNHB4O3BhZGRpbmc6OHB4IDQ1cHggOXB4IDA7YmFja2dyb3VuZDpyZ2JhKDIzOCwyMzgsMjM4LC45KTtib3JkZXItY29sb3I6cmdiYSgyMzgsMjM4LDIzOCwuOSk7d2lkdGg6MTAwJTtwb2ludGVyLWV2ZW50czphbGw7Y3Vyc29yOmRlZmF1bHQ7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoMCk7LXdlYmtpdC10b3VjaC1jYWxsb3V0Om5vbmU7LXdlYmtpdC11c2VyLXNlbGVjdDpub25lOy1raHRtbC11c2VyLXNlbGVjdDpub25lOy1tb3otdXNlci1zZWxlY3Q6bm9uZTstbXMtdXNlci1zZWxlY3Q6bm9uZTt1c2VyLXNlbGVjdDpub25lO21pbi1oZWlnaHQ6NTRweH0uaXppVG9hc3Q+Lml6aVRvYXN0LXByb2dyZXNzYmFye3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MDtib3R0b206MDt3aWR0aDoxMDAlO3otaW5kZXg6MTtiYWNrZ3JvdW5kOnJnYmEoMjU1LDI1NSwyNTUsLjIpfS5pemlUb2FzdD4uaXppVG9hc3QtcHJvZ3Jlc3NiYXI+ZGl2e2hlaWdodDoycHg7d2lkdGg6MTAwJTtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsLjMpO2JvcmRlci1yYWRpdXM6MCAwIDNweCAzcHh9Lml6aVRvYXN0Lml6aVRvYXN0LWJhbGxvb246YmVmb3Jle2NvbnRlbnQ6Jyc7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6OHB4O2xlZnQ6YXV0bzt3aWR0aDowO2hlaWdodDowO3RvcDoxMDAlO2JvcmRlci1yaWdodDowIHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1sZWZ0OjE1cHggc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLXRvcDoxMHB4IHNvbGlkICMwMDA7Ym9yZGVyLXRvcC1jb2xvcjppbmhlcml0O2JvcmRlci1yYWRpdXM6MH0uaXppVG9hc3QuaXppVG9hc3QtYmFsbG9vbiAuaXppVG9hc3QtcHJvZ3Jlc3NiYXJ7dG9wOjA7Ym90dG9tOmF1dG99Lml6aVRvYXN0Lml6aVRvYXN0LWJhbGxvb24+ZGl2e2JvcmRlci1yYWRpdXM6MCAwIDAgM3B4fS5pemlUb2FzdD4uaXppVG9hc3QtY292ZXJ7cG9zaXRpb246YWJzb2x1dGU7bGVmdDowO3RvcDowO2JvdHRvbTowO2hlaWdodDoxMDAlO21hcmdpbjowO2JhY2tncm91bmQtc2l6ZToxMDAlO2JhY2tncm91bmQtcG9zaXRpb246NTAlIDUwJTtiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLC4xKX0uaXppVG9hc3Q+Lml6aVRvYXN0LWNsb3Nle3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjA7dG9wOjA7Ym9yZGVyOjA7cGFkZGluZzowO29wYWNpdHk6LjY7d2lkdGg6NDJweDtoZWlnaHQ6MTAwJTtiYWNrZ3JvdW5kOnVybChkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUNBQUFBQWdDQVlBQUFCemVucjBBQUFBQkhOQ1NWUUlDQWdJZkFoa2lBQUFBQWx3U0ZsekFBQUpQQUFBQ1R3QmNHZlcwUUFBQUJsMFJWaDBVMjltZEhkaGNtVUFkM2QzTG1sdWEzTmpZWEJsTG05eVo1dnVQQm9BQUFEM1NVUkJWRmlGMVpkdERvTWdERUJmZGk0UHdBWDh2TEZuMHFUN3d4YW50b2pLdXBtUW1DaThSNHRTQUNwZ2pDMklDQ1ViRUJhOGluZ2pzVTFBWFJCZVI4YUxONjRGaWtuc3dOOENZZWZCQkRRM3dodUZFU3k3V3lRTWVDMGlwRUkwQSswRmVCdkhVRk44eFBhVWhBSC9pS29Xc25YSEdlZ3k0SjB5eGlhbE9mYUhKQXo0YmhSelF6Z0R2ZEduejRHYkFvblpiQ1FNdUJtMUsva2NGdThNcDFOMmNGRnBzeHNNdUpxcWJJR0V4R2w0bG9BUmFqVTF0d3NrSkxMaElzSUQ3K3R2VW9EbklqVGc1VDlEUEg5RUJyejhyeGpQemNpQWw5K084U3hJOEN6SjhDeEtGZmgzeW5LOER5Yjh3TkhNL1hEcWVqeC9BdE55UE84N3ROeWJBQUFBQUVsRlRrU3VRbUNDKSBuby1yZXBlYXQgNTAlIDUwJTtiYWNrZ3JvdW5kLXNpemU6OHB4O2N1cnNvcjpwb2ludGVyO291dGxpbmU6MH0uaXppVG9hc3Q+Lml6aVRvYXN0LWNsb3NlOmhvdmVye29wYWNpdHk6MX0uaXppVG9hc3Q+Lml6aVRvYXN0LWJvZHl7cG9zaXRpb246cmVsYXRpdmU7cGFkZGluZzowIDAgMCAxMHB4O2hlaWdodDphdXRvO21pbi1oZWlnaHQ6MzZweDttYXJnaW46MCAwIDAgMTVweDt0ZXh0LWFsaWduOmxlZnR9Lml6aVRvYXN0Pi5pemlUb2FzdC1ib2R5OmFmdGVye2NvbnRlbnQ6IiI7ZGlzcGxheTp0YWJsZTtjbGVhcjpib3RofS5pemlUb2FzdD4uaXppVG9hc3QtYm9keSAuaXppVG9hc3QtdGV4dHN7bWFyZ2luOjEwcHggMCAwO3BhZGRpbmctcmlnaHQ6MnB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrO2Zsb2F0OmxlZnR9Lml6aVRvYXN0Pi5pemlUb2FzdC1ib2R5IC5pemlUb2FzdC1pbnB1dHN7bWluLWhlaWdodDoxOXB4O2Zsb2F0OmxlZnQ7bWFyZ2luOjNweCAtMnB4fS5pemlUb2FzdD4uaXppVG9hc3QtYm9keSAuaXppVG9hc3QtaW5wdXRzPmlucHV0Om5vdChbdHlwZT1jaGVja2JveF0pOm5vdChbdHlwZT1yYWRpb10pLC5pemlUb2FzdD4uaXppVG9hc3QtYm9keSAuaXppVG9hc3QtaW5wdXRzPnNlbGVjdHtwb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5OmlubGluZS1ibG9jazttYXJnaW46MnB4O2JvcmRlci1yYWRpdXM6MnB4O2JvcmRlcjowO3BhZGRpbmc6NHB4IDdweDtmb250LXNpemU6MTNweDtsZXR0ZXItc3BhY2luZzouMDJlbTtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsLjEpO2NvbG9yOiMwMDA7Ym94LXNoYWRvdzowIDAgMCAxcHggcmdiYSgwLDAsMCwuMik7bWluLWhlaWdodDoyNnB4fS5pemlUb2FzdD4uaXppVG9hc3QtYm9keSAuaXppVG9hc3QtaW5wdXRzPmlucHV0Om5vdChbdHlwZT1jaGVja2JveF0pOm5vdChbdHlwZT1yYWRpb10pOmZvY3VzLC5pemlUb2FzdD4uaXppVG9hc3QtYm9keSAuaXppVG9hc3QtaW5wdXRzPnNlbGVjdDpmb2N1c3tib3gtc2hhZG93OjAgMCAwIDFweCByZ2JhKDAsMCwwLC42KX0uaXppVG9hc3Q+Lml6aVRvYXN0LWJvZHkgLml6aVRvYXN0LWJ1dHRvbnN7bWluLWhlaWdodDoxN3B4O2Zsb2F0OmxlZnQ7bWFyZ2luOjRweCAtMnB4fS5pemlUb2FzdD4uaXppVG9hc3QtYm9keSAuaXppVG9hc3QtYnV0dG9ucz5hLC5pemlUb2FzdD4uaXppVG9hc3QtYm9keSAuaXppVG9hc3QtYnV0dG9ucz5idXR0b24sLml6aVRvYXN0Pi5pemlUb2FzdC1ib2R5IC5pemlUb2FzdC1idXR0b25zPmlucHV0Om5vdChbdHlwZT1jaGVja2JveF0pOm5vdChbdHlwZT1yYWRpb10pe3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6aW5saW5lLWJsb2NrO21hcmdpbjoycHg7Ym9yZGVyLXJhZGl1czoycHg7Ym9yZGVyOjA7cGFkZGluZzo1cHggMTBweDtmb250LXNpemU6MTJweDtsZXR0ZXItc3BhY2luZzouMDJlbTtjdXJzb3I6cG9pbnRlcjtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsLjEpO2NvbG9yOiMwMDB9Lml6aVRvYXN0Pi5pemlUb2FzdC1ib2R5IC5pemlUb2FzdC1idXR0b25zPmE6aG92ZXIsLml6aVRvYXN0Pi5pemlUb2FzdC1ib2R5IC5pemlUb2FzdC1idXR0b25zPmJ1dHRvbjpob3ZlciwuaXppVG9hc3Q+Lml6aVRvYXN0LWJvZHkgLml6aVRvYXN0LWJ1dHRvbnM+aW5wdXQ6bm90KFt0eXBlPWNoZWNrYm94XSk6bm90KFt0eXBlPXJhZGlvXSk6aG92ZXJ7YmFja2dyb3VuZDpyZ2JhKDAsMCwwLC4yKX0uaXppVG9hc3Q+Lml6aVRvYXN0LWJvZHkgLml6aVRvYXN0LWJ1dHRvbnM+YTpmb2N1cywuaXppVG9hc3Q+Lml6aVRvYXN0LWJvZHkgLml6aVRvYXN0LWJ1dHRvbnM+YnV0dG9uOmZvY3VzLC5pemlUb2FzdD4uaXppVG9hc3QtYm9keSAuaXppVG9hc3QtYnV0dG9ucz5pbnB1dDpub3QoW3R5cGU9Y2hlY2tib3hdKTpub3QoW3R5cGU9cmFkaW9dKTpmb2N1c3tib3gtc2hhZG93OjAgMCAwIDFweCByZ2JhKDAsMCwwLC42KX0uaXppVG9hc3Q+Lml6aVRvYXN0LWJvZHkgLml6aVRvYXN0LWJ1dHRvbnM+YTphY3RpdmUsLml6aVRvYXN0Pi5pemlUb2FzdC1ib2R5IC5pemlUb2FzdC1idXR0b25zPmJ1dHRvbjphY3RpdmUsLml6aVRvYXN0Pi5pemlUb2FzdC1ib2R5IC5pemlUb2FzdC1idXR0b25zPmlucHV0Om5vdChbdHlwZT1jaGVja2JveF0pOm5vdChbdHlwZT1yYWRpb10pOmFjdGl2ZXt0b3A6MXB4fS5pemlUb2FzdD4uaXppVG9hc3QtYm9keSAuaXppVG9hc3QtaWNvbntwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjA7dG9wOjUwJTtkaXNwbGF5OnRhYmxlO2ZvbnQtc2l6ZToyM3B4O2xpbmUtaGVpZ2h0OjI0cHg7bWFyZ2luLXRvcDotMTJweDtjb2xvcjojMDAwO3dpZHRoOjI0cHg7aGVpZ2h0OjI0cHh9Lml6aVRvYXN0Pi5pemlUb2FzdC1ib2R5IC5pemlUb2FzdC1pY29uLmljby1pbmZve2JhY2tncm91bmQ6dXJsKGRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBRUFBQUFCQUNBTUFBQUNkdDRIc0FBQUFmbEJNVkVVQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFDQ3RvUHNBQUFBS1hSU1RsTUE2UHNJdkRvYitPYXBhdlZoV1JZUHJJcnkyTXhHUTk3Y3pzT3pwSmFNY0UwcUpRT3dWdEtqZnhDVkZlSUFBQUkzU1VSQlZGakRsSlBac29Jd0VFVG5DaUd5YjhxK3FtamwvMy93Rm1HS3dqQlJPUzlRV2J0bk9xRERHUHE0TWRNa1NjMG03Z2NERGhGNE5SZHY4Tm9MNEVjTXB6b0pnbFBsL0tURHo0V1czSWR2WEV2eGtmSUtuN0JNWmIxYkZLNHlaRnFnaFowM2prMG5HOE41TkJ3eng5eFU1Y3hBZzhmWGkyMC9oRGRDMzE2bGNBOG83dDE2ZVJ1UXZXMVhHZDJkMlA4UVNIUUREYmRJSUkvOUNSM2xVRitsYnVjZkp5NFdmTVM2NEVKUE9SbnJaeHRmYzJwakpkbmJ1YWdzM2wwNFRUdEpNWHJkVHBoNFB5ZzRYQWp1Z0FKcU1EZjVSZitvWHgyL3FpNHU2bmlwYWtJaTdDc2dpdU1TRUY5SUdLZzhoZVFKS2t4SWZGU1VVL2VnV1N3TnJTMWZQRHRMZm9uOHNaT2NZVVFtbDFRdjlhM2tmd3NFVXlKRU1nRkJLemRWOG8zSXc5eUFqZzFqZExRQ1Y0cWJkM25vOHlEMkd1Z2FDM29NYkYwTllIQ3BKWVNEaE5JNU4yREFXQjRGNHo5QWovMDRDbmEveDdlVkFRMTd2UmpRWlBoK0cva2RkWXYwaDQ5eVk0TldORFdNTU9NVUlSWXZsVEVDbXJOOHBVQWpvNVJDTW44S29QbWJKLytBcHBnbmsvL1N5OTBHWUJDR2dtN0lBc2tRN0Q5aEZLVzRBcEIxZWkzRlNZRDlQakdBS3lnQVYrQVJGWUJINUJzVmdHOWtrQlNBUVdLVUZZQlJacGtVZ0dWaW5SV0FkVVpRREFCQlFkSWNBRWxEVkJVQVVVWFdIUUJaeDFnTUFHTXByTTBBc0xiVlhIc0E1dHJaZTkzL3dwM3N2UTBZTmIvaldWM0FJT0xzTXRsem5TTk9IN0pxak9wRFZoN3o4cUNaUjEwZnR2TzRueGVPdlBMa3BTdXZmWG54ekt0dlhyN2ordjhDNWlpMGU3MUF0N2NBQUFBQVNVVk9SSzVDWUlJPSkgbm8tcmVwZWF0IDUwJSA1MCU7YmFja2dyb3VuZC1zaXplOjg1JX0uaXppVG9hc3Q+Lml6aVRvYXN0LWJvZHkgLml6aVRvYXN0LWljb24uaWNvLXdhcm5pbmd7YmFja2dyb3VuZDp1cmwoZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFFUUFBQUJFQ0FNQUFBQVB6V09BQUFBQWtGQk1WRVVBQUFBQUFBQUJBQUlBQUFBQkFBSUFBQU1BQUFBQkFBSUJBQUlCQUFJQUFBSUFBQUFCQUFJQUFBQUJBQUlDQUFJQ0FBSUFBQUlBQUFBQUFBQUFBQUFCQUFJQkFBSUFBQU1BQUFBQkFBSUJBQU1CQUFFQ0FBSUFBQUlBQUFJQUFBQUJBQUlCQUFJQkFBTUJBQUlCQUFFQUFBSUFBQU1BQUFBQUFBQUJBQUVDQUFJQ0FBSUFBQUlBQUFNQUFBUUFBQUUwNXlOQUFBQUFMM1JTVGxNQUIra0Q3VjhRK1BYaWN3djdJOWlZaGtBekp4bngwMUlWNWNtbmsyeG1IZnpleHNLNGVFdzVMN0dlaTM5YVJ3NjQwYXdBQUFIUVNVUkJWRmpEN1pmSmRvSkFFRVdKZ0NpSTRvRGlQTThtNy8vL0xpZEVyUk83c0hyWTV1N1lYTHI3dktxdTlrVEMwSFBtbzluOGNKYkVRT3pxcUFkQVVIZVVaQUNRdVRrR0RRQm9ESndrSFpSMFhCejlGa3BhZlh1SFAwU0owOW1HZUpMWjV3d2xUbWNiQTBUSFBtZEVLN1hQR1RHMXp4bUlubjNPaUoxOXprQjBqU1ZUS0V4TUhUMHdqQXdsV3pDMGZTUEhGMWdXUnBJaFdNWW03ZllURmNRR2xiZW1mNGRGZmRUR2cwQi9LWE04cUJVLzN3bnRicTdyU0dxdko5a2xhNklwdWVGSmV0OGZ4ZmVtNXloeWtqeU9nTmFXRjFxU0dkNUpNTk54cE5GN1NaUWFWaDVKekxyVENaSUVKMUd5RXlWeWQrcENsTWpkYVNKSzVPNDBnaVNSdTVQZkZpVnlkMXBBa3NqZEtSbnJTc2JWZGJpSHJnVDd5c3MzMTVma1ZRUExGUXJMKzRGSGVPWEtPNVlSRkVLdjVBaUZhTWxLTGxCcEp1VkNKbEM1c0pmdkNnenRydS8zTm1CWWNjUGdHVHhSQXp4bjFYR0VNVWY1OHBYWnZqb09zT0NnakwwOCtiNTNtdGZBTS9TVnNaY2pLTHR5c1FaUHFJeTlIUFAzbS8zektJdFJ3VDBMeVFvOHNUcjI2dGNPODNESVVNV0lKamllckhMc0pkYS90Yk5CRlkwQlAvYkt0Y004SE5JV0NLM2FZUjRPTXpneG81dzVFRkxPTEtERXhYQW05Z0k0RTNpQU85NC9DdC9sS1d1TTJMTUdiZ0FBQUFCSlJVNUVya0pnZ2c9PSkgbm8tcmVwZWF0IDUwJSA1MCU7YmFja2dyb3VuZC1zaXplOjg1JX0uaXppVG9hc3Q+Lml6aVRvYXN0LWJvZHkgLml6aVRvYXN0LWljb24uaWNvLWVycm9ye2JhY2tncm91bmQ6dXJsKGRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBRUFBQUFCQUNBTUFBQUNkdDRIc0FBQUFlRkJNVkVVQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVZ5RWlJQUFBQUozUlNUbE1BM0JzQjk4UVY4dVN5V1ZVRno3K2tjV01NMkx1WmlvQnBUVVZCTmNxMnFhaWJqNGQxYXpMWlpZQUJBQUFDWkVsRVFWUll3N1dYMjVLQ01BeUdBeFVvRkRrcGlvaG5WOTcvRFhlR0J0b09VcHJaMmR5bzFLODJmeEtid0pKVnArS1FaN3NvMm1YNW9UaFZRTEt3akRlOVladTRERjNwdEFuNnJ4WTBxUVBPRXE5Zk5DOWhhM3k3N2EyMmJhMjR2KzlYYmU4djh4MDNkUE9DMi9OZHZCNnhlU3JlTGZHSnBueDBUeW90S3FMbTJzN0pkL1dPNml2WE5wMHRDeTAyUi9hRno1VlE1d1VQbFVMNWZJZmo1S0lsVkdVMG5XSG0vNVF0b1RWTVdZOG16SVZ1MUs5TzdYSDJKaVUveG5PT1QzOWduVWZqK2xGSGRkeDR0RmpMMy9IOGpqemFGQ3kyUmYwYy9mZFF5UXN6SThCRFI5NzNJeU1TS2E0a3JqeEFpVy9sa1J2TVArYktLOVdiWVMxQVNRZzhkS2phVUdsWVB3UmUvV29Ja3o4dGlRY2hINVFBRU12NlQwazhNRDRtVXlXcjRFN2pBV3FaK3hXY01JWWtYdmx3Z2dKM0l2Rksrd0lPY3BYQW84bjhQMENPQWFYeUtINE9zakJ1WkI0ZXcwSUd1K0gxU2ViaE5henNRQmJXbTh5aitoRnVVSkI1ZU1zTjBJVVhtWWVuZEFGRmZKQjV1RWtSTVl3eG1jZDZ6REdSdG1RZVBFeWtBZ3VieW1NUkZtTXhDU0lQQ1JiVHVGTk41T0dPUlRqbU5HYzBQbzBtOFV2MGdjQ3J5NnhVaFIyUWVMaWk5dG9mYkVmaHovcXZOdGkrT2ZQcU5tMk1xNjEwNUZVTXZkVDRHUG11Zk1pVjhQcUJNa2MrRGRUMWJqWVlianpVL2V3MjNWUDRuM21MQXo0bjhKdHYvVWkzY2VUVDJteno1bzFtWnQwZ25CcG1zZGpxUnFWbG1wbGNQZHFhN1gyM2tMOWJyZG0ydC91QllEUG4yK3R5dTQ4bXRJR0QxMEpUdVVydWtWcmJDRml3RHpjSHJQanhLdDdQVytBWlF5VC9XRVNPKzFXTDdmM28rV0xITDJkWU1TWnNnNmRnL3ozNjBvZnZQNC8vdjFOUHpnczI4V2xXQUFBQUFFbEZUa1N1UW1DQykgbm8tcmVwZWF0IDUwJSA1MCU7YmFja2dyb3VuZC1zaXplOjgwJX0uaXppVG9hc3Q+Lml6aVRvYXN0LWJvZHkgLml6aVRvYXN0LWljb24uaWNvLXN1Y2Nlc3N7YmFja2dyb3VuZDp1cmwoZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFFQUFBQUJBQkFNQUFBQllSMnp0QUFBQUlWQk1WRVVBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQnQwVWpCQUFBQUNuUlNUbE1BcEFQaElGbjgyd2dHdjhtVnR3QUFBS1ZKUkVGVVNNZnQwTEVKQWtFQVJORkZGRXcxTkZKYjhDS2pBeTFBRU96QXhOdytiRUVFZzZueUZqYlk0TE96Y0J3WDdTL2d3VXhvVGRJbitKYnY0THY4Yng0NDYra0I2VnNCdEswQit3Yk1DS3hyd0wzM3dPclZlZUNoWDI4bjdLVE9UamdvRXU2RFJTWUFnQUFBQWtBbUFJQUFBQUlBQ1FJa01rQUNBQWdBSUFDQXlFQ0JLQU9KdUNhZ1RKd1NVQ2FVQUVNQUFCRUJSd0FBRVFGTGJDSmdPNGJXK0FaS0dua3RSK2pBRkFBQUFBQkpSVTVFcmtKZ2dnPT0pIG5vLXJlcGVhdCA1MCUgNTAlO2JhY2tncm91bmQtc2l6ZTo4NSV9Lml6aVRvYXN0Pi5pemlUb2FzdC1ib2R5IC5pemlUb2FzdC1pY29uLmljby1xdWVzdGlvbntiYWNrZ3JvdW5kOnVybChkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUVBQUFBQkFDQVFBQUFBQVlMbFZBQUFBQkdkQlRVRUFBTEdQQy94aEJRQUFBQ0JqU0ZKTkFBQjZKZ0FBZ0lRQUFQb0FBQUNBNkFBQWRUQUFBT3BnQUFBNm1BQUFGM0NjdWxFOEFBQUFBbUpMUjBRQUFLcU5JeklBQUFBSmNFaFpjd0FBRGRjQUFBM1hBVUlvbTNnQUFBQUhkRWxOUlFmaENRa1VFaEZvdnhUeEFBQUVEa2xFUVZSbzNzMlpUV2dUUVJUSGYwM2lwVFJVcWdoTlNnc1JqSGdRckZVUUM2SmdEMUthazNnUVVVb1BxUmRCZ2xmMW9CZWhCd3M5Q240Y0drKzFTT21oMnVwQnhBWVZvZUpIclI5dGdxMGkxQ3EwbHFZZWtzN01icFBkbVUwMC9jOGhtOW4zM3YvdDdOdDVNMitxTUVXUUkwUUlpYlpLUnJRcEh2TEwyS0kyd25RenpCS3JEbTJSSWVLRXkwMWRUWUtVSTdHMVpSa25RWFY1eVAxMGtUWWdseTFORi81UzZkdVo4RVMrMWlab2R5YW9jcmpYeEUwT0ZlaWZZWWdwMG1SSWt3RkNoQWtSSnNJeEdncklQK0kwbjgyZnZaVzVkYy96a3NzME8ybzFjNW1YNi9UbWFEV2w3N1JGZTVZa1VXM3RLRW15RnYwbE92WEovZlRZbm1DRUZ1TVJiR0hFWnFWSEx5VDlERmpVSm1rekpsOURHNU1XV3dNNkxsaWYvZ0YxbnVrQjZuaGdHd1VYZEZyRSt3aVVSQThRb005aTB6RVdXcFhRVytac3llUnJPTXV5RW81RnY0Z215NGRYUHZxY0MrcEgyVlJZYU13eStPV0craUxHQ2dtMFcwS3Y5SGR2UjhBU2ptS0NYcHVLL2J4aVYvNzZBL3Y1VWRESVp1S2NKR2pybmVjNUtaN3d3c1dGT3A2eFBYLzltdDJzcURlN0ZPK0tmL2ZYSEJQUERXcGRYR2hUcEx2VUc5Vkt3aDF4TUREamt2dStjTkRGQlRrN3B0WDFRa0taODUwbTNkdXU2ZmNyV3h3ZGFGRnlSRUoyajR2T3BLUDZEdTZ6NHVKQ3Y4c1lKSVZrQ25KQkdHWmFCT05PM3JvWTJFcU5yU2ZJUGk3U0tQNGZkWHlOVWQ2STZ3YlNBSEVsMzN0RkxlK0ZsU3N1c25LOTBBMCtvRVBjdXVmWmdYbk9pK3U5THJLU0pRWlF3Nkx3cUJudjJDS3NmSE9SYkZieVFoQTZ4Ti9wRXVpaFNkajU2Q283TFdSalBpS2llNmdrQjJMaUt1VXFLNWtpUGtMaXoxUUo5SzFjTlhCQU1vVUNpZ05wUTlJcUR0TUkxSEtBNC9qeXZVc2FvU3laTEE1a2pPakRQRlplbjhRbDVUc3ZCc2tVZ2pjaUlQU1gzUUFYQzg2RFQ3Vld2bEVoL3haK2lqOUJEVldKMFFMMFNiWnE2UWFGeG9MUGNYUG1CTHZlTENjNHdYZERLNnMrNi92d2hDU25pRkxQWFcwTkplNVVCOHpLQ3N2aXFwYzd2R1BWUUZjeVpieVB3R0QrZDVabnhtTldsaEc0eFNCWlpqaXZqSVdIRVFnb0RrU01qTXdUbzU0NTY5SlNFNUlwQTdFeUpTTVR5R1RVQVVGbE8xWktPdGFIVE1lTDFQaFlZRlRjaWhtWTJjUTUrdWxsajdFRGtpVmZWZXoyc0NUejh5aXY4NGRqaGc3SUpWazgxeEZXSmxQZGZIQkcwZmxrUkMvelFGWitEU2xsTnRmRGRVc09NQ2xpeUdYNXVPelUzWmhJWEZEb2Y0bTFnRHVLYkV4MHQyWVMyNWdWR3BjTW5yL0kxa3gzYzZwaUI4UDhab3FFd2ZNWDNaeUNYeW5KVG1xL1U3TlVYcWZVekNiV0wxd3FWS0JRVWVFU3pRWW9VbFc4VEFjVkwxUkN4VXUxRzZCWVhmRnlmUTRWUGJESTRUOGQyV3pnUTZzYy92bXhuVHNxZkhDWlF6VUp4bTFoNWR4UzVUdTZsUWdUWjBpcHFSVnFTd3pUYmJMSE10K2MxOWlPNzZ0c3gvY0xadWIrQWxpK3RZQzkzb2xFQUFBQUpYUkZXSFJrWVhSbE9tTnlaV0YwWlFBeU1ERTNMVEE1TFRBNVZESXdPakU0T2pFM0t6QXlPakF3akt0ZmpnQUFBQ1YwUlZoMFpHRjBaVHB0YjJScFpua0FNakF4Tnkwd09TMHdPVlF5TURveE9Eb3hOeXN3TWpvd01QMzI1eklBQUFBWmRFVllkRk52Wm5SM1lYSmxBSGQzZHk1cGJtdHpZMkZ3WlM1dmNtZWI3andhQUFBQUFFbEZUa1N1UW1DQykgbm8tcmVwZWF0IDUwJSA1MCU7YmFja2dyb3VuZC1zaXplOjg1JX0uaXppVG9hc3Q+Lml6aVRvYXN0LWJvZHkgLml6aVRvYXN0LW1lc3NhZ2UsLml6aVRvYXN0Pi5pemlUb2FzdC1ib2R5IC5pemlUb2FzdC10aXRsZXtwYWRkaW5nOjA7Zm9udC1zaXplOjE0cHg7bGluZS1oZWlnaHQ6MTZweDt0ZXh0LWFsaWduOmxlZnQ7ZmxvYXQ6bGVmdDt3aGl0ZS1zcGFjZTpub3JtYWx9Lml6aVRvYXN0Pi5pemlUb2FzdC1ib2R5IC5pemlUb2FzdC10aXRsZXtjb2xvcjojMDAwO21hcmdpbjowfS5pemlUb2FzdD4uaXppVG9hc3QtYm9keSAuaXppVG9hc3QtbWVzc2FnZXttYXJnaW46MCAwIDEwcHg7Y29sb3I6cmdiYSgwLDAsMCwuNil9Lml6aVRvYXN0Lml6aVRvYXN0LWFuaW1hdGVJbnNpZGUgLml6aVRvYXN0LWJ1dHRvbnMtY2hpbGQsLml6aVRvYXN0Lml6aVRvYXN0LWFuaW1hdGVJbnNpZGUgLml6aVRvYXN0LWljb24sLml6aVRvYXN0Lml6aVRvYXN0LWFuaW1hdGVJbnNpZGUgLml6aVRvYXN0LWlucHV0cy1jaGlsZCwuaXppVG9hc3QuaXppVG9hc3QtYW5pbWF0ZUluc2lkZSAuaXppVG9hc3QtbWVzc2FnZSwuaXppVG9hc3QuaXppVG9hc3QtYW5pbWF0ZUluc2lkZSAuaXppVG9hc3QtdGl0bGV7b3BhY2l0eTowfS5pemlUb2FzdC10YXJnZXR7cG9zaXRpb246cmVsYXRpdmU7d2lkdGg6MTAwJTttYXJnaW46MCBhdXRvfS5pemlUb2FzdC10YXJnZXQgLml6aVRvYXN0LWNhcHN1bGV7b3ZlcmZsb3c6aGlkZGVufS5pemlUb2FzdC10YXJnZXQgLml6aVRvYXN0LWNhcHN1bGU6YWZ0ZXJ7dmlzaWJpbGl0eTpoaWRkZW47ZGlzcGxheTpibG9jaztmb250LXNpemU6MDtjb250ZW50OiIgIjtjbGVhcjpib3RoO2hlaWdodDowfS5pemlUb2FzdC10YXJnZXQgLml6aVRvYXN0LWNhcHN1bGUgLml6aVRvYXN0e3dpZHRoOjEwMCU7ZmxvYXQ6bGVmdH0uaXppVG9hc3Qtd3JhcHBlcnt6LWluZGV4Ojk5OTk5O3Bvc2l0aW9uOmZpeGVkO3dpZHRoOjEwMCU7cG9pbnRlci1ldmVudHM6bm9uZTtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1ufS5pemlUb2FzdC13cmFwcGVyIC5pemlUb2FzdC5pemlUb2FzdC1iYWxsb29uOmJlZm9yZXtib3JkZXItcmlnaHQ6MCBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItbGVmdDoxNXB4IHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci10b3A6MTBweCBzb2xpZCAjMDAwO2JvcmRlci10b3AtY29sb3I6aW5oZXJpdDtyaWdodDo4cHg7bGVmdDphdXRvfS5pemlUb2FzdC13cmFwcGVyLWJvdHRvbUxlZnR7bGVmdDowO2JvdHRvbTowO3RleHQtYWxpZ246bGVmdH0uaXppVG9hc3Qtd3JhcHBlci1ib3R0b21MZWZ0IC5pemlUb2FzdC5pemlUb2FzdC1iYWxsb29uOmJlZm9yZSwuaXppVG9hc3Qtd3JhcHBlci10b3BMZWZ0IC5pemlUb2FzdC5pemlUb2FzdC1iYWxsb29uOmJlZm9yZXtib3JkZXItcmlnaHQ6MTVweCBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItbGVmdDowIHNvbGlkIHRyYW5zcGFyZW50O3JpZ2h0OmF1dG87bGVmdDo4cHh9Lml6aVRvYXN0LXdyYXBwZXItYm90dG9tUmlnaHR7cmlnaHQ6MDtib3R0b206MDt0ZXh0LWFsaWduOnJpZ2h0fS5pemlUb2FzdC13cmFwcGVyLXRvcExlZnR7bGVmdDowO3RvcDowO3RleHQtYWxpZ246bGVmdH0uaXppVG9hc3Qtd3JhcHBlci10b3BSaWdodHt0b3A6MDtyaWdodDowO3RleHQtYWxpZ246cmlnaHR9Lml6aVRvYXN0LXdyYXBwZXItdG9wQ2VudGVye3RvcDowO2xlZnQ6MDtyaWdodDowO3RleHQtYWxpZ246Y2VudGVyfS5pemlUb2FzdC13cmFwcGVyLWJvdHRvbUNlbnRlciwuaXppVG9hc3Qtd3JhcHBlci1jZW50ZXJ7Ym90dG9tOjA7bGVmdDowO3JpZ2h0OjA7dGV4dC1hbGlnbjpjZW50ZXJ9Lml6aVRvYXN0LXdyYXBwZXItY2VudGVye3RvcDowO2p1c3RpZnktY29udGVudDpjZW50ZXI7ZmxleC1mbG93OmNvbHVtbjthbGlnbi1pdGVtczpjZW50ZXJ9Lml6aVRvYXN0LXJ0bHtkaXJlY3Rpb246cnRsO3BhZGRpbmc6OHB4IDAgOXB4IDQ1cHg7Zm9udC1mYW1pbHk6VGFob21hLCdMYXRvJyxBcmlhbH0uaXppVG9hc3QtcnRsIC5pemlUb2FzdC1jb3ZlcntsZWZ0OmF1dG87cmlnaHQ6MH0uaXppVG9hc3QtcnRsIC5pemlUb2FzdC1jbG9zZXtyaWdodDphdXRvO2xlZnQ6MH0uaXppVG9hc3QtcnRsIC5pemlUb2FzdC1ib2R5e3BhZGRpbmc6MCAxMHB4IDAgMDttYXJnaW46MCAxNnB4IDAgMDt0ZXh0LWFsaWduOnJpZ2h0fS5pemlUb2FzdC1ydGwgLml6aVRvYXN0LWJvZHkgLml6aVRvYXN0LWJ1dHRvbnMsLml6aVRvYXN0LXJ0bCAuaXppVG9hc3QtYm9keSAuaXppVG9hc3QtaW5wdXRzLC5pemlUb2FzdC1ydGwgLml6aVRvYXN0LWJvZHkgLml6aVRvYXN0LW1lc3NhZ2UsLml6aVRvYXN0LXJ0bCAuaXppVG9hc3QtYm9keSAuaXppVG9hc3QtdGV4dHMsLml6aVRvYXN0LXJ0bCAuaXppVG9hc3QtYm9keSAuaXppVG9hc3QtdGl0bGV7ZmxvYXQ6cmlnaHQ7dGV4dC1hbGlnbjpyaWdodH0uaXppVG9hc3QtcnRsIC5pemlUb2FzdC1ib2R5IC5pemlUb2FzdC1pY29ue2xlZnQ6YXV0bztyaWdodDowfUBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDo1NjhweCl7Lml6aVRvYXN0LXdyYXBwZXJ7cGFkZGluZzoxMHB4IDE1cHh9Lml6aVRvYXN0e21hcmdpbjo1cHggMDtib3JkZXItcmFkaXVzOjNweDt3aWR0aDphdXRvfS5pemlUb2FzdDphZnRlcntjb250ZW50OicnO3otaW5kZXg6LTE7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7Ym9yZGVyLXJhZGl1czozcHg7Ym94LXNoYWRvdzppbnNldCAwIC0xMHB4IDIwcHggLTEwcHggcmdiYSgwLDAsMCwuMiksaW5zZXQgMCAwIDVweCByZ2JhKDAsMCwwLC4xKSwwIDhweCA4cHggLTVweCByZ2JhKDAsMCwwLC4yNSl9Lml6aVRvYXN0Om5vdCguaXppVG9hc3QtcnRsKSAuaXppVG9hc3QtY292ZXJ7Ym9yZGVyLXJhZGl1czozcHggMCAwIDNweH0uaXppVG9hc3QuaXppVG9hc3QtcnRsIC5pemlUb2FzdC1jb3Zlcntib3JkZXItcmFkaXVzOjAgM3B4IDNweCAwfS5pemlUb2FzdC5pemlUb2FzdC1jb2xvci1kYXJrOmFmdGVye2JveC1zaGFkb3c6aW5zZXQgMCAtMTBweCAyMHB4IC0xMHB4IHJnYmEoMjU1LDI1NSwyNTUsLjMpLDAgMTBweCAxMHB4IC01cHggcmdiYSgwLDAsMCwuMjUpfS5pemlUb2FzdC5pemlUb2FzdC1iYWxsb29uIC5pemlUb2FzdC1wcm9ncmVzc2JhcntiYWNrZ3JvdW5kOjAgMH0uaXppVG9hc3QuaXppVG9hc3QtYmFsbG9vbjphZnRlcntib3gtc2hhZG93OjAgMTBweCAxMHB4IC01cHggcmdiYSgwLDAsMCwuMjUpLGluc2V0IDAgMTBweCAyMHB4IC01cHggcmdiYSgwLDAsMCwuMjUpfS5pemlUb2FzdC10YXJnZXQgLml6aVRvYXN0OmFmdGVye2JveC1zaGFkb3c6aW5zZXQgMCAtMTBweCAyMHB4IC0xMHB4IHJnYmEoMCwwLDAsLjIpLGluc2V0IDAgMCA1cHggcmdiYSgwLDAsMCwuMSl9fS5pemlUb2FzdC5pemlUb2FzdC10aGVtZS1kYXJre2JhY2tncm91bmQ6IzU2NWM3MDtib3JkZXItY29sb3I6IzU2NWM3MH0uaXppVG9hc3QuaXppVG9hc3QtdGhlbWUtZGFyayAuaXppVG9hc3QtdGl0bGV7Y29sb3I6I2ZmZn0uaXppVG9hc3QuaXppVG9hc3QtdGhlbWUtZGFyayAuaXppVG9hc3QtbWVzc2FnZXtjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC43KTtmb250LXdlaWdodDozMDB9Lml6aVRvYXN0Lml6aVRvYXN0LXRoZW1lLWRhcmsgLml6aVRvYXN0LWNsb3Nle2JhY2tncm91bmQ6dXJsKGRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQ0FBQUFBZ0NBUUFBQURaYzdKL0FBQUFCR2RCVFVFQUFMR1BDL3hoQlFBQUFDQmpTRkpOQUFCNkpnQUFnSVFBQVBvQUFBQ0E2QUFBZFRBQUFPcGdBQUE2bUFBQUYzQ2N1bEU4QUFBQUFtSkxSMFFBQUtxTkl6SUFBQUFKY0VoWmN3QUFEZGNBQUEzWEFVSW9tM2dBQUFBSGRFbE5SUWZnQ1I0T0lRSVBTYW82QUFBQXdFbEVRVlJJeDcyVlVRNkVJQXdGbXoyWEIrQUNvbmhqenFUSjdKZUdLaExZbHl4L0JHZG9CVnBqSXBNSk5qZ0laREtUa1FIWW1ZZndtUjJBZkFxR0ZCY08yUWpYWkNkMjRiRWdndmQxS0J4K3hsd29EcFltdm5CVVV5NjhEWVhENzdFU3I4V0R0WXF2eFJleDdhOG9IUDRXbzFNa3Q1STY4TWMrcVlxdjFoNU9zWm1ac1EzZ2ovMDJoNmNPL0tFWXgyOWh1M1IrVlRUd3o2RDNUeW1JUDFFOFJ2RWlpVmRaZkV6aWN4WUxpbGpTeEtJcWxuVzVzZWl0VFc2dVludi9BcWg0d2hYM21FVXJBQUFBSlhSRldIUmtZWFJsT21OeVpXRjBaUUF5TURFMkxUQTVMVE13VkRFME9qTXpPakF5S3pBeU9qQXdsNlJNVmdBQUFDVjBSVmgwWkdGMFpUcHRiMlJwWm5rQU1qQXhOaTB3T1Mwek1GUXhORG96TXpvd01pc3dNam93TU9iNTlPb0FBQUFaZEVWWWRGTnZablIzWVhKbEFIZDNkeTVwYm10elkyRndaUzV2Y21lYjdqd2FBQUFBQUVsRlRrU3VRbUNDKSBuby1yZXBlYXQgNTAlIDUwJTtiYWNrZ3JvdW5kLXNpemU6OHB4fS5pemlUb2FzdC5pemlUb2FzdC10aGVtZS1kYXJrIC5pemlUb2FzdC1pY29ue2NvbG9yOiNmZmZ9Lml6aVRvYXN0Lml6aVRvYXN0LXRoZW1lLWRhcmsgLml6aVRvYXN0LWljb24uaWNvLWluZm97YmFja2dyb3VuZDp1cmwoZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFFQUFBQUJBQ0FNQUFBQ2R0NEhzQUFBQWZsQk1WRVVBQUFELy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy92cm9hU0FBQUFLWFJTVGxNQTZQc0l2RG9iK09hcGF2VmhXUllQcklyeTJNeEdROTdjenNPenBKYU1jRTBxSlFPd1Z0S2pmeENWRmVJQUFBSTNTVVJCVkZqRGxKUFpzb0l3RUVUbkNpR3liOHErcW1qbC8zL3dGbUdLd2pCUk9TOVFXYnRuT3FEREdQcTRNZE1rU2MwbTdnY0REaEY0TlJkdjhOb0w0RWNNcHpvSmdsUGwvS1REejRXVzNJZHZYRXZ4a2ZJS243Qk1aYjFiRks0eVpGcWdoWjAzamswbkc4TjVOQnd6eDl4VTVjeEFnOGZYaTIwL2hEZEMzMTZsY0E4bzd0MTZlUnVRdlcxWEdkMmQyUDhRU0hRRERiZElJSS85Q1IzbFVGK2xidWNmSnk0V2ZNUzY0RUpQT1Juclp4dGZjMnBqSmRuYnVhZ3MzbDA0VFR0Sk1YcmRUcGg0UHlnNFhBanVnQUpxTURmNVJmK29YeDIvcWk0dTZuaXBha0lpN0NzZ2l1TVNFRjlJR0tnOGhlUUpLa3hJZkZTVVUvZWdXU3dOclMxZlBEdExmb244c1pPY1lVUW1sMVF2OWEza2Z3c0VVeUpFTWdGQkt6ZFY4bzNJdzl5QWpnMWpkTFFDVjRxYmQzbm84eUQyR3VnYUMzb01iRjBOWUhDcEpZU0RoTkk1TjJEQVdCNEY0ejlBai8wNENuYS94N2VWQVExN3ZSalFaUGgrRy9rZGRZdjBoNDl5WTROV05EV01NT01VSVJZdmxURUNtck44cFVBam81UkNNbjhLb1BtYkovK0FwcGduay8vU3k5MEdZQkNHZ203SUFza1E3RDloRktXNEFwQjFlaTNGU1lEOVBqR0FLeWdBVitBUkZZQkg1QnNWZ0c5a2tCU0FRV0tVRllCUlpwa1VnR1ZpblJXQWRVWlFEQUJCUWRJY0FFbERWQlVBVVVYV0hRQlp4MWdNQUdNcHJNMEFzTGJWWEhzQTV0clplOTMvd3Azc3ZRMFlOYi9qV1YzQUlPTHNNdGx6blNOT0g3SnFqT3BEVmg3ejhxQ1pSMTBmdHZPNG54ZU92UExrcFN1dmZYbnh6S3R2WHI3ait2OEM1aWkwZTcxQXQ3Y0FBQUFBU1VWT1JLNUNZSUk9KSBuby1yZXBlYXQgNTAlIDUwJTtiYWNrZ3JvdW5kLXNpemU6ODUlfS5pemlUb2FzdC5pemlUb2FzdC10aGVtZS1kYXJrIC5pemlUb2FzdC1pY29uLmljby13YXJuaW5ne2JhY2tncm91bmQ6dXJsKGRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBRVFBQUFCRUNBTUFBQUFQeldPQUFBQUFsbEJNVkVVQUFBRC8vLy8rLy8zKy8vMysvLzMvLy8vLy8veisvLzMrLy8zKy8vMy8vLy8vLy8vLy8vLzkvLzMvLy8vKy8vMzkvLzMvLy8zLy8vLy8vLy8vLy8vKy8vMysvLzM5Ly8zLy8veisvL3orLy83Ly8vMy8vLzMvLy8zLy8vMy8vLy8vLy8vKy8vMysvLzMrLy8zKy8veisvLzMrLy83Ly8vMy8vL3ovLy8vLy8vLysvLzc5Ly8zLy8vMy8vL3ovLy92Ky8vMy8vLyt0clhvdUFBQUFNSFJTVGxNQUIrajg3UkJmK1BYaUN3UUNsU1BZaGtBekp4bngwNXRTeWFkemNteG1IUmJwNWQ3R3dyaDRURGt2c1l0L1drZFF6Q0lUQUFBQjFVbEVRVlJZdyszWGFYS0NRQkNHWVNJSWlnaG94Q1ZxTkpyRVBmbHkvOHZGSW1LWGR1TnNmL01jNEsxeTdGbndsTUxRYy9iVWJqODVSNmJBMUxYUkRJQ2c2UmpKY1phN05RWXRuTFVHVHBFUlNpT1h4ck9Qa3Y5czMwaUdLRG10YllpcjNIN09VSEphMnlsQXV2WnpSdnpVZnM3SWkvMmNnZlR0NTR4ODJzOFpTTTg0OGdKbVl0cm9RekEyakh3QStMa0JJRXVNR3QrUUluZzFpZ3pseU1ya3VQMkN5T2k0N2F4UmFZVEw1amhESmVob1IrYW92QzI5czNpSXlseTNFYitoUkN2Wm8ycXNHVG5oS3IyY0xEUytKNzNHc3FCSTlXODBVQ21XV3BFdWhJamg2WlJHanlOUmFyanpLR0oyT3UyaGltQ3ZqSHdxSStyVHFRZGxSSDA2VFpRUjllazBoaXFpUHAwNm1WNGtlN1FQWDZFUlVaeE84VW8zc3FyZmh4dm9SckNwdlh3TC9ValI5R1JITUl2TGdrZTRkNVFiaXdoTTZKVjJZS0tGNHZJbDdYSUJrd200a2VyeUpWbXZrL1Rmd2NtUHdRTmtVUXV5QTIvc1lHd25YTDdHUHU0YlcxallzbWV2ck5qMDkvTUdaTU9FUFhzbFFWcU84aHF5a0QxN0pmUEhQL2JtbzJ5R0dwZFppSDNJWnZ6WmE3QjMrSWREampwamVzSEpjdmJzNWRaL2UrY2RkVm9EZHZscTd4MTJOYWMraU43ZTRSOE9YVGpwMHB3NUNHbk9MTkRFemVCczVnVndGbmlBTys4Zjh3dmZlWFAyaHlxbm13QUFBQUJKUlU1RXJrSmdnZz09KSBuby1yZXBlYXQgNTAlIDUwJTtiYWNrZ3JvdW5kLXNpemU6ODUlfS5pemlUb2FzdC5pemlUb2FzdC10aGVtZS1kYXJrIC5pemlUb2FzdC1pY29uLmljby1lcnJvcntiYWNrZ3JvdW5kOnVybChkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUVBQUFBQkFDQU1BQUFDZHQ0SHNBQUFBZUZCTVZFVUFBQUQvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9HcU9Tc0FBQUFKM1JTVGxNQTNCc0I5OFFWOHVTeVdWVUZ6NlJ4WXd6WXZidXBtWXFBYVUxRlFUWEt2N2FiajRkMWF6S05VaXQzQUFBQ1pFbEVRVlJZdzdXWGFaT0NNQXlHdzMwVU9SUlFCTHhYL3Y4LzNCa2FXanJZMnN6TzVvdEtmR3J6SnJFcDZLdzZGOGY4c0kraS9TRS9GdWNLU0JhV2lUOHA1aWRsYUV0blhUQjl0S0RMTEhBdmRTYXRPYW4zamU5M2s5RjJ2UkYzNittcjFhNmVIMk5GTnlkb0hxL2llVS9VWGNXamprOVh5a2ROV3EyeXd0cDR0WEw2V2IyVC9NcXR6elp1dHNyTnlmdkE1MUtvUVJPaFZDamZybkFTSVJwU1ZVWmlENXY0UmJXRXhqUmRKelNtT3NaRnZ6WXo1OWtSU3I2VjV6RSsvUUVMSGtOZGIzVlJ4NDVIUzFiMXUremZra2NiUkFaM3FKOWwvQTRxZWZIVURNU2hKZSs2a1pLSkREMnBMUTlRNGx1KzVRN3J6N1BscGVyZDdBdFFFZ0lQSTZvMmR4cjJENEdYdnhxQ2lLY244Y0Q0Z3hJQUV0Ny9HWWtITDE2S3FlSmQwTkI0Z0piWGZnVm56Q0dKbHpHY29jQ1ZTTHpVdm9Bajl4SjRORjcvUjhneG9WUWV4Yy9oZ0JwU2VialBqZ1BzNTljSG1ZZm43TmtEYjZ3WG1VZjFJMXlnSVBQdzRndGdDRTh5RHc4ZUFvcDRKL1BRY0JFeGpRbVp4MzdNc1pCMlpCNGNMS1FDRzV2S1l4TVdTek14SWc4cE50T3lVa3Zrb2NFbVhHbzY5bWg4RmdueFM0eUJ3TXZEckpTTkhaQjR1QzNheXovWWtjSVA0bGZsd1ZJVCtPVTA3WlNqcmJUa1pRNmRUUGtZdWJaOEdDL0NxeHU2V3ZKWklJOTNkY0N3NDZHZE5xZHBUZUYvdGlNT3VER0I5ei9OSTZOdnlXZXRHUE0wZytiVk5lb3ZCbWFtSFhXajBuQ2JFYUdlVE1OMlBXcnFkNmNNMjZaeFAyRGVKdmorcGgvMzBaaS9HbVJidGxLNVNwdEkrbndHR252SDZnVXJ1VCtMMTZNSkhGKzU4cndOSWlmVFYwdk04K2h3TWVPWEFiNll4MHdYVCtiOTk5V1hmdm4rOC9YL0Y3Zld6amRUb3JkNUFBQUFBRWxGVGtTdVFtQ0MpIG5vLXJlcGVhdCA1MCUgNTAlO2JhY2tncm91bmQtc2l6ZTo4MCV9Lml6aVRvYXN0Lml6aVRvYXN0LXRoZW1lLWRhcmsgLml6aVRvYXN0LWljb24uaWNvLXN1Y2Nlc3N7YmFja2dyb3VuZDp1cmwoZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFFQUFBQUJBQkFNQUFBQllSMnp0QUFBQUlWQk1WRVVBQUFELy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1BJZXY1QUFBQUNuUlNUbE1BcEFQaElGbjgyd2dHdjhtVnR3QUFBS1ZKUkVGVVNNZnQwTEVKQWtFQVJORkZGRXcxTkZKYjhDS2pBeTFBRU96QXhOdytiRUVFZzZueUZqYlk0TE96Y0J3WDdTL2d3VXhvVGRJbitKYnY0THY4Yng0NDYra0I2VnNCdEswQit3Yk1DS3hyd0wzM3dPclZlZUNoWDI4bjdLVE9UamdvRXU2RFJTWUFnQUFBQWtBbUFJQUFBQUlBQ1FJa01rQUNBQWdBSUFDQXlFQ0JLQU9KdUNhZ1RKd1NVQ2FVQUVNQUFCRUJSd0FBRVFGTGJDSmdPNGJXK0FaS0dua3RSK2pBRkFBQUFBQkpSVTVFcmtKZ2dnPT0pIG5vLXJlcGVhdCA1MCUgNTAlO2JhY2tncm91bmQtc2l6ZTo4NSV9Lml6aVRvYXN0Lml6aVRvYXN0LXRoZW1lLWRhcmsgLml6aVRvYXN0LWljb24uaWNvLXF1ZXN0aW9ue2JhY2tncm91bmQ6dXJsKGRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBRUFBQUFCQUNBUUFBQUFBWUxsVkFBQUFCR2RCVFVFQUFMR1BDL3hoQlFBQUFDQmpTRkpOQUFCNkpnQUFnSVFBQVBvQUFBQ0E2QUFBZFRBQUFPcGdBQUE2bUFBQUYzQ2N1bEU4QUFBQUFtSkxSMFFBQUtxTkl6SUFBQUFKY0VoWmN3QUFEZGNBQUEzWEFVSW9tM2dBQUFBSGRFbE5SUWZoQ1FrVUVnMTh2a2krQUFBRVRVbEVRVlJvM3MxWlRXaGJSeEQrVmxJdXhzTEZDWVZJSVFZVm9wQkRvSzViS0RXVUJ1cERNTmJKNUZCS2cvRkJ6aVVRZEU5eWFDK0ZIQnJ3c2RDZlE5UlRHb0x4d1dsK0RxSEVvalVGRnlkeG5COWJJblpEcU9zRXJCcnI2eUd2cy91ZVg5N2JsZFRLbzRQZTdwdVpiM1ozM3M3c3JJSWpNWTFqeUNFalA2SW12eVg4cEY2NGFyU0h6bktDMDZ3emlqWTV4U0t6N1lidVlva1YybE9Ec3l5eHF6M2dTWTZ6NmdDdXFjcHhKbHVGSCtaOFUrRC8wanlIb3hGVUJIZ2Z2c0dISVM5V01JVWxWRkZERlRVQUdXU1JRUlk1SE1lQkVQNmIrRXc5ZGgvN0lOZDJqR2VPNTlrZktkWFA4NXpiSWJmR1FWZjRzWUMzTjFobTNsbzZ6ekliUHZrNngrekJrN3dRR01FTUI1eG5jSUF6QVMwWHJGeVNTVjcyaVMxeXlCVmNkQTF4MGFmcnNvVUpnZEZmWTIrejhBREFYbDd6ejBLY3dKaVBmWktwVnVBQmdDbE8rblJHK1FJSERkZmI0cWxXd1VYdktXNFo3dmk2TDRKOXZnK3ZiZkNlQ2VaSDJSZk9kTU9jL0hiQ0E0QnZJVzZFTVF6N1hLL2x0ZCtoUCtWelI5bWd2YTJZU2Z5R0kxN2ZBN3lubm9jcWVRTkZmSUowb0hzZHY2Q0MyK3JYR0JONmNRZHZlWTNmY1ZSdG15L0hEZXRlKzkzenk4akE4elY3WWt3WU1yakh6UmRkUnNDZGlWQ3d3bWg2d2c5aVROQzdZOVhJRjFpUzdrYlVwc3Z2R0VkUHVUZlNnQUVqUnBSMDk2eDBsaVBGRC9FcXQyTk11QlF6QjJYaHJBQ0FBcGpGc3VRRmg5WGRHQVg3MEIzb1N1TmRuTVZCYVgrc29wWXhqd1ZwSEZCVkFDeUtUWE5va3RqRCs2TGw4eGhlblM5TUFBa0FJL0x1eDJZTlVPczRJNDEzWXBnMVNnRUF1N2twRnZXamFlSmUwZkpIREdlL2NOYVpCa2VrdWR3OFBNQSswZk13bG5kWmVBc0o1S1IvcWhVRFVKQ25TaXl2UnNvbGtKSEdVZ3ZqSDhRWERnWm9wRXpLTUtEcUNLcndFUTRDNk1IN0dFWEM2NjVidUxKRzhobFFjNExQNHBheGZKck9xWVZZWVkyVUFSZkVJYXpUYmdEZzJkQjk4R2ViekpkNTRiOEwvaVdOZEx5b29lUjZDSHlaKzZ4azB5S3hrWWc2bkVWU1VHNFZKOVFKOWN4UkN4Tys5V2lPeXZnVWVleFhQMWhMR0g1bkd1QldWdGlTcDR2cWUzVlAwVUZXSTlXYW40RXIzdjhxN2pqUFdWdG00RnRjUVFNck9LTzJuT1FDTTVBeURNaTU2RkRyS0hBLzFueXBwUzFwcEJwWWFFOHdjaUVqR0kyQWFlTTQxa0k0ZG9EWDRYaVQzUW0xZ2V2eXJ1Q2daZzlQOHhJdjhtMW5DelRLcTZvaUo5eFRNaVo1MDVQNW04Y2RaMENuWk1WWEhWbGpNN1dNQnp4cHlEeHlndGR4b0NFRlRhTUlXYlpVODVVdkJqZ1VNWXkwZkJhQUY4VjFMajlxV1ExYU1aNWY0azlyK0FHTVNrTVAxdlpvWmloNms2c2ljYzVoL09GSE05dkRxVS9WSVU3ekpaZFlZc0tHSDRnNG5BSk1HaVhaUmRzMXBWTW9aNjlSTTV2ZmtiaDBxa0Joc25TMlJMTUxpbFFkTDlNQkhTOVVBaDB2MWU2Q1luWEh5L1dlZUNjdkxEd2wvOU9WemU2OXRQS00rTSt2N2VKTjZPekZwV2RFRjB1Y0RiaFZORlhhZG5Wcm1KRmxrVk5HVFMyTTZwem1oTXZsdGZQaG5OMkI2M3NWdUw3ZmNOUDNEMVRTazJpaG9zUHJBQUFBSlhSRldIUmtZWFJsT21OeVpXRjBaUUF5TURFM0xUQTVMVEE1VkRJd09qRTRPakV6S3pBeU9qQXdlT1I3blFBQUFDVjBSVmgwWkdGMFpUcHRiMlJwWm5rQU1qQXhOeTB3T1Mwd09WUXlNRG94T0RveE15c3dNam93TUFtNXd5RUFBQUFaZEVWWWRGTnZablIzWVhKbEFIZDNkeTVwYm10elkyRndaUzV2Y21lYjdqd2FBQUFBQUVsRlRrU3VRbUNDKSBuby1yZXBlYXQgNTAlIDUwJTtiYWNrZ3JvdW5kLXNpemU6ODUlfS5pemlUb2FzdC5pemlUb2FzdC10aGVtZS1kYXJrIC5pemlUb2FzdC1idXR0b25zPmEsLml6aVRvYXN0Lml6aVRvYXN0LXRoZW1lLWRhcmsgLml6aVRvYXN0LWJ1dHRvbnM+YnV0dG9uLC5pemlUb2FzdC5pemlUb2FzdC10aGVtZS1kYXJrIC5pemlUb2FzdC1idXR0b25zPmlucHV0e2NvbG9yOiNmZmY7YmFja2dyb3VuZDpyZ2JhKDI1NSwyNTUsMjU1LC4xKX0uaXppVG9hc3QuaXppVG9hc3QtdGhlbWUtZGFyayAuaXppVG9hc3QtYnV0dG9ucz5hOmhvdmVyLC5pemlUb2FzdC5pemlUb2FzdC10aGVtZS1kYXJrIC5pemlUb2FzdC1idXR0b25zPmJ1dHRvbjpob3ZlciwuaXppVG9hc3QuaXppVG9hc3QtdGhlbWUtZGFyayAuaXppVG9hc3QtYnV0dG9ucz5pbnB1dDpob3ZlcntiYWNrZ3JvdW5kOnJnYmEoMjU1LDI1NSwyNTUsLjIpfS5pemlUb2FzdC5pemlUb2FzdC10aGVtZS1kYXJrIC5pemlUb2FzdC1idXR0b25zPmE6Zm9jdXMsLml6aVRvYXN0Lml6aVRvYXN0LXRoZW1lLWRhcmsgLml6aVRvYXN0LWJ1dHRvbnM+YnV0dG9uOmZvY3VzLC5pemlUb2FzdC5pemlUb2FzdC10aGVtZS1kYXJrIC5pemlUb2FzdC1idXR0b25zPmlucHV0OmZvY3Vze2JveC1zaGFkb3c6MCAwIDAgMXB4IHJnYmEoMjU1LDI1NSwyNTUsLjYpfS5pemlUb2FzdC5pemlUb2FzdC1jb2xvci1yZWR7YmFja2dyb3VuZDpyZ2JhKDI1NSwxNzUsMTgwLC45KTtib3JkZXItY29sb3I6cmdiYSgyNTUsMTc1LDE4MCwuOSl9Lml6aVRvYXN0Lml6aVRvYXN0LWNvbG9yLW9yYW5nZXtiYWNrZ3JvdW5kOnJnYmEoMjU1LDIwNywxNjUsLjkpO2JvcmRlci1jb2xvcjpyZ2JhKDI1NSwyMDcsMTY1LC45KX0uaXppVG9hc3QuaXppVG9hc3QtY29sb3IteWVsbG93e2JhY2tncm91bmQ6cmdiYSgyNTUsMjQ5LDE3OCwuOSk7Ym9yZGVyLWNvbG9yOnJnYmEoMjU1LDI0OSwxNzgsLjkpfS5pemlUb2FzdC5pemlUb2FzdC1jb2xvci1ibHVle2JhY2tncm91bmQ6cmdiYSgxNTcsMjIyLDI1NSwuOSk7Ym9yZGVyLWNvbG9yOnJnYmEoMTU3LDIyMiwyNTUsLjkpfS5pemlUb2FzdC5pemlUb2FzdC1jb2xvci1ncmVlbntiYWNrZ3JvdW5kOnJnYmEoMTY2LDIzOSwxODQsLjkpO2JvcmRlci1jb2xvcjpyZ2JhKDE2NiwyMzksMTg0LC45KX0uaXppVG9hc3QuaXppVG9hc3QtbGF5b3V0MiAuaXppVG9hc3QtYm9keSAuaXppVG9hc3QtbWVzc2FnZSwuaXppVG9hc3QuaXppVG9hc3QtbGF5b3V0MiAuaXppVG9hc3QtYm9keSAuaXppVG9hc3QtdGV4dHN7d2lkdGg6MTAwJX0uaXppVG9hc3QuaXppVG9hc3QtbGF5b3V0M3tib3JkZXItcmFkaXVzOjJweH0uaXppVG9hc3QuaXppVG9hc3QtbGF5b3V0Mzo6YWZ0ZXJ7ZGlzcGxheTpub25lfS5pemlUb2FzdCAucmV2ZWFsSW4sLml6aVRvYXN0LnJldmVhbEluey13ZWJraXQtYW5pbWF0aW9uOml6aVQtcmV2ZWFsSW4gMXMgY3ViaWMtYmV6aWVyKC4yNSwxLjYsLjI1LDEpIGJvdGg7LW1vei1hbmltYXRpb246aXppVC1yZXZlYWxJbiAxcyBjdWJpYy1iZXppZXIoLjI1LDEuNiwuMjUsMSkgYm90aDthbmltYXRpb246aXppVC1yZXZlYWxJbiAxcyBjdWJpYy1iZXppZXIoLjI1LDEuNiwuMjUsMSkgYm90aH0uaXppVG9hc3QgLnNsaWRlSW4sLml6aVRvYXN0LnNsaWRlSW57LXdlYmtpdC1hbmltYXRpb246aXppVC1zbGlkZUluIDFzIGN1YmljLWJlemllciguMTYsLjgxLC4zMiwxKSBib3RoOy1tb3otYW5pbWF0aW9uOml6aVQtc2xpZGVJbiAxcyBjdWJpYy1iZXppZXIoLjE2LC44MSwuMzIsMSkgYm90aDthbmltYXRpb246aXppVC1zbGlkZUluIDFzIGN1YmljLWJlemllciguMTYsLjgxLC4zMiwxKSBib3RofS5pemlUb2FzdC5ib3VuY2VJbkxlZnR7LXdlYmtpdC1hbmltYXRpb246aXppVC1ib3VuY2VJbkxlZnQgLjdzIGVhc2UtaW4tb3V0IGJvdGg7YW5pbWF0aW9uOml6aVQtYm91bmNlSW5MZWZ0IC43cyBlYXNlLWluLW91dCBib3RofS5pemlUb2FzdC5ib3VuY2VJblJpZ2h0ey13ZWJraXQtYW5pbWF0aW9uOml6aVQtYm91bmNlSW5SaWdodCAuODVzIGVhc2UtaW4tb3V0IGJvdGg7YW5pbWF0aW9uOml6aVQtYm91bmNlSW5SaWdodCAuODVzIGVhc2UtaW4tb3V0IGJvdGh9Lml6aVRvYXN0LmJvdW5jZUluRG93bnstd2Via2l0LWFuaW1hdGlvbjppemlULWJvdW5jZUluRG93biAuN3MgZWFzZS1pbi1vdXQgYm90aDthbmltYXRpb246aXppVC1ib3VuY2VJbkRvd24gLjdzIGVhc2UtaW4tb3V0IGJvdGh9Lml6aVRvYXN0LmJvdW5jZUluVXB7LXdlYmtpdC1hbmltYXRpb246aXppVC1ib3VuY2VJblVwIC43cyBlYXNlLWluLW91dCBib3RoO2FuaW1hdGlvbjppemlULWJvdW5jZUluVXAgLjdzIGVhc2UtaW4tb3V0IGJvdGh9Lml6aVRvYXN0IC5mYWRlSW4sLml6aVRvYXN0LmZhZGVJbnstd2Via2l0LWFuaW1hdGlvbjppemlULWZhZGVJbiAuNXMgZWFzZSBib3RoO2FuaW1hdGlvbjppemlULWZhZGVJbiAuNXMgZWFzZSBib3RofS5pemlUb2FzdC5mYWRlSW5VcHstd2Via2l0LWFuaW1hdGlvbjppemlULWZhZGVJblVwIC43cyBlYXNlIGJvdGg7YW5pbWF0aW9uOml6aVQtZmFkZUluVXAgLjdzIGVhc2UgYm90aH0uaXppVG9hc3QuZmFkZUluRG93bnstd2Via2l0LWFuaW1hdGlvbjppemlULWZhZGVJbkRvd24gLjdzIGVhc2UgYm90aDthbmltYXRpb246aXppVC1mYWRlSW5Eb3duIC43cyBlYXNlIGJvdGh9Lml6aVRvYXN0LmZhZGVJbkxlZnR7LXdlYmtpdC1hbmltYXRpb246aXppVC1mYWRlSW5MZWZ0IC44NXMgY3ViaWMtYmV6aWVyKC4yNSwuOCwuMjUsMSkgYm90aDthbmltYXRpb246aXppVC1mYWRlSW5MZWZ0IC44NXMgY3ViaWMtYmV6aWVyKC4yNSwuOCwuMjUsMSkgYm90aH0uaXppVG9hc3QuZmFkZUluUmlnaHR7LXdlYmtpdC1hbmltYXRpb246aXppVC1mYWRlSW5SaWdodCAuODVzIGN1YmljLWJlemllciguMjUsLjgsLjI1LDEpIGJvdGg7YW5pbWF0aW9uOml6aVQtZmFkZUluUmlnaHQgLjg1cyBjdWJpYy1iZXppZXIoLjI1LC44LC4yNSwxKSBib3RofS5pemlUb2FzdC5mbGlwSW5Yey13ZWJraXQtYW5pbWF0aW9uOml6aVQtZmxpcEluWCAuODVzIGN1YmljLWJlemllciguMzUsMCwuMjUsMSkgYm90aDthbmltYXRpb246aXppVC1mbGlwSW5YIC44NXMgY3ViaWMtYmV6aWVyKC4zNSwwLC4yNSwxKSBib3RofS5pemlUb2FzdC5mYWRlT3V0ey13ZWJraXQtYW5pbWF0aW9uOml6aVQtZmFkZU91dCAuN3MgZWFzZSBib3RoO2FuaW1hdGlvbjppemlULWZhZGVPdXQgLjdzIGVhc2UgYm90aH0uaXppVG9hc3QuZmFkZU91dERvd257LXdlYmtpdC1hbmltYXRpb246aXppVC1mYWRlT3V0RG93biAuN3MgY3ViaWMtYmV6aWVyKC40LC40NSwuMTUsLjkxKSBib3RoO2FuaW1hdGlvbjppemlULWZhZGVPdXREb3duIC43cyBjdWJpYy1iZXppZXIoLjQsLjQ1LC4xNSwuOTEpIGJvdGh9Lml6aVRvYXN0LmZhZGVPdXRVcHstd2Via2l0LWFuaW1hdGlvbjppemlULWZhZGVPdXRVcCAuN3MgY3ViaWMtYmV6aWVyKC40LC40NSwuMTUsLjkxKSBib3RoO2FuaW1hdGlvbjppemlULWZhZGVPdXRVcCAuN3MgY3ViaWMtYmV6aWVyKC40LC40NSwuMTUsLjkxKSBib3RofS5pemlUb2FzdC5mYWRlT3V0TGVmdHstd2Via2l0LWFuaW1hdGlvbjppemlULWZhZGVPdXRMZWZ0IC41cyBlYXNlIGJvdGg7YW5pbWF0aW9uOml6aVQtZmFkZU91dExlZnQgLjVzIGVhc2UgYm90aH0uaXppVG9hc3QuZmFkZU91dFJpZ2h0ey13ZWJraXQtYW5pbWF0aW9uOml6aVQtZmFkZU91dFJpZ2h0IC41cyBlYXNlIGJvdGg7YW5pbWF0aW9uOml6aVQtZmFkZU91dFJpZ2h0IC41cyBlYXNlIGJvdGh9Lml6aVRvYXN0LmZsaXBPdXRYey13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTp2aXNpYmxlIWltcG9ydGFudDtiYWNrZmFjZS12aXNpYmlsaXR5OnZpc2libGUhaW1wb3J0YW50Oy13ZWJraXQtYW5pbWF0aW9uOml6aVQtZmxpcE91dFggLjdzIGN1YmljLWJlemllciguNCwuNDUsLjE1LC45MSkgYm90aDthbmltYXRpb246aXppVC1mbGlwT3V0WCAuN3MgY3ViaWMtYmV6aWVyKC40LC40NSwuMTUsLjkxKSBib3RofS5pemlUb2FzdC1vdmVybGF5LmZhZGVJbnstd2Via2l0LWFuaW1hdGlvbjppemlULWZhZGVJbiAuNXMgZWFzZSBib3RoO2FuaW1hdGlvbjppemlULWZhZGVJbiAuNXMgZWFzZSBib3RofS5pemlUb2FzdC1vdmVybGF5LmZhZGVPdXR7LXdlYmtpdC1hbmltYXRpb246aXppVC1mYWRlT3V0IC43cyBlYXNlIGJvdGg7YW5pbWF0aW9uOml6aVQtZmFkZU91dCAuN3MgZWFzZSBib3RofUAtd2Via2l0LWtleWZyYW1lcyBpemlULXJldmVhbEluezAle29wYWNpdHk6MDstd2Via2l0LXRyYW5zZm9ybTpzY2FsZTNkKC4zLC4zLDEpfXRve29wYWNpdHk6MX19QC1tb3ota2V5ZnJhbWVzIGl6aVQtcmV2ZWFsSW57MCV7b3BhY2l0eTowOy1tb3otdHJhbnNmb3JtOnNjYWxlM2QoLjMsLjMsMSl9dG97b3BhY2l0eToxfX1ALXdlYmtpdC1rZXlmcmFtZXMgaXppVC1zbGlkZUluezAle29wYWNpdHk6MDstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVYKDUwcHgpfXRve29wYWNpdHk6MTstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVYKDApfX1ALW1vei1rZXlmcmFtZXMgaXppVC1zbGlkZUluezAle29wYWNpdHk6MDstbW96LXRyYW5zZm9ybTp0cmFuc2xhdGVYKDUwcHgpfXRve29wYWNpdHk6MTstbW96LXRyYW5zZm9ybTp0cmFuc2xhdGVYKDApfX1ALXdlYmtpdC1rZXlmcmFtZXMgaXppVC1ib3VuY2VJbkxlZnR7MCV7b3BhY2l0eTowOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVgoMjgwcHgpfTUwJXtvcGFjaXR5OjE7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWCgtMjBweCl9NzAley13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVgoMTBweCl9dG97LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWCgwKX19QC13ZWJraXQta2V5ZnJhbWVzIGl6aVQtYm91bmNlSW5SaWdodHswJXtvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWCgtMjgwcHgpfTUwJXtvcGFjaXR5OjE7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWCgyMHB4KX03MCV7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWCgtMTBweCl9dG97LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWCgwKX19QC13ZWJraXQta2V5ZnJhbWVzIGl6aVQtYm91bmNlSW5Eb3duezAle29wYWNpdHk6MDstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0yMDBweCl9NTAle29wYWNpdHk6MTstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVZKDEwcHgpfTcwJXstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVZKC01cHgpfXRvey13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoMCl9fUAtd2Via2l0LWtleWZyYW1lcyBpemlULWJvdW5jZUluVXB7MCV7b3BhY2l0eTowOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoMjAwcHgpfTUwJXtvcGFjaXR5OjE7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMTBweCl9NzAley13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoNXB4KX10b3std2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVZKDApfX1ALXdlYmtpdC1rZXlmcmFtZXMgaXppVC1mYWRlSW57MCV7b3BhY2l0eTowfXRve29wYWNpdHk6MX19QC13ZWJraXQta2V5ZnJhbWVzIGl6aVQtZmFkZUluVXB7MCV7b3BhY2l0eTowOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsMTAwJSwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwxMDAlLDApfXRve29wYWNpdHk6MTstd2Via2l0LXRyYW5zZm9ybTpub25lO3RyYW5zZm9ybTpub25lfX1ALXdlYmtpdC1rZXlmcmFtZXMgaXppVC1mYWRlSW5Eb3duezAle29wYWNpdHk6MDstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLC0xMDAlLDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLC0xMDAlLDApfXRve29wYWNpdHk6MTstd2Via2l0LXRyYW5zZm9ybTpub25lO3RyYW5zZm9ybTpub25lfX1ALXdlYmtpdC1rZXlmcmFtZXMgaXppVC1mYWRlSW5MZWZ0ezAle29wYWNpdHk6MDstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgzMDBweCwwLDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgzMDBweCwwLDApfXRve29wYWNpdHk6MTstd2Via2l0LXRyYW5zZm9ybTpub25lO3RyYW5zZm9ybTpub25lfX1ALXdlYmtpdC1rZXlmcmFtZXMgaXppVC1mYWRlSW5SaWdodHswJXtvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoLTMwMHB4LDAsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKC0zMDBweCwwLDApfXRve29wYWNpdHk6MTstd2Via2l0LXRyYW5zZm9ybTpub25lO3RyYW5zZm9ybTpub25lfX1ALXdlYmtpdC1rZXlmcmFtZXMgaXppVC1mbGlwSW5YezAley13ZWJraXQtdHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgxLDAsMCw5MGRlZyk7dHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgxLDAsMCw5MGRlZyk7b3BhY2l0eTowfTQwJXstd2Via2l0LXRyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMSwwLDAsLTIwZGVnKTt0cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDEsMCwwLC0yMGRlZyl9NjAley13ZWJraXQtdHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgxLDAsMCwxMGRlZyk7dHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgxLDAsMCwxMGRlZyk7b3BhY2l0eToxfTgwJXstd2Via2l0LXRyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMSwwLDAsLTVkZWcpO3RyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMSwwLDAsLTVkZWcpfXRvey13ZWJraXQtdHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KTt0cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpfX1ALXdlYmtpdC1rZXlmcmFtZXMgaXppVC1mYWRlT3V0ezAle29wYWNpdHk6MX10b3tvcGFjaXR5OjB9fUAtd2Via2l0LWtleWZyYW1lcyBpemlULWZhZGVPdXREb3duezAle29wYWNpdHk6MX10b3tvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwxMDAlLDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLDEwMCUsMCl9fUAtd2Via2l0LWtleWZyYW1lcyBpemlULWZhZGVPdXRVcHswJXtvcGFjaXR5OjF9dG97b3BhY2l0eTowOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsLTEwMCUsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsLTEwMCUsMCl9fUAtd2Via2l0LWtleWZyYW1lcyBpemlULWZhZGVPdXRMZWZ0ezAle29wYWNpdHk6MX10b3tvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoLTIwMHB4LDAsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKC0yMDBweCwwLDApfX1ALXdlYmtpdC1rZXlmcmFtZXMgaXppVC1mYWRlT3V0UmlnaHR7MCV7b3BhY2l0eToxfXRve29wYWNpdHk6MDstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgyMDBweCwwLDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgyMDBweCwwLDApfX1ALXdlYmtpdC1rZXlmcmFtZXMgaXppVC1mbGlwT3V0WHswJXstd2Via2l0LXRyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCk7dHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KX0zMCV7LXdlYmtpdC10cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDEsMCwwLC0yMGRlZyk7dHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgxLDAsMCwtMjBkZWcpO29wYWNpdHk6MX10b3std2Via2l0LXRyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMSwwLDAsOTBkZWcpO3RyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMSwwLDAsOTBkZWcpO29wYWNpdHk6MH19QC1tb3ota2V5ZnJhbWVzIGl6aVQtcmV2ZWFsSW57MCV7b3BhY2l0eTowO3RyYW5zZm9ybTpzY2FsZTNkKC4zLC4zLDEpfXRve29wYWNpdHk6MX19QC13ZWJraXQta2V5ZnJhbWVzIGl6aVQtcmV2ZWFsSW57MCV7b3BhY2l0eTowO3RyYW5zZm9ybTpzY2FsZTNkKC4zLC4zLDEpfXRve29wYWNpdHk6MX19QC1vLWtleWZyYW1lcyBpemlULXJldmVhbEluezAle29wYWNpdHk6MDt0cmFuc2Zvcm06c2NhbGUzZCguMywuMywxKX10b3tvcGFjaXR5OjF9fUBrZXlmcmFtZXMgaXppVC1yZXZlYWxJbnswJXtvcGFjaXR5OjA7dHJhbnNmb3JtOnNjYWxlM2QoLjMsLjMsMSl9dG97b3BhY2l0eToxfX1ALW1vei1rZXlmcmFtZXMgaXppVC1zbGlkZUluezAle29wYWNpdHk6MDt0cmFuc2Zvcm06dHJhbnNsYXRlWCg1MHB4KX10b3tvcGFjaXR5OjE7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoMCl9fUAtd2Via2l0LWtleWZyYW1lcyBpemlULXNsaWRlSW57MCV7b3BhY2l0eTowO3RyYW5zZm9ybTp0cmFuc2xhdGVYKDUwcHgpfXRve29wYWNpdHk6MTt0cmFuc2Zvcm06dHJhbnNsYXRlWCgwKX19QC1vLWtleWZyYW1lcyBpemlULXNsaWRlSW57MCV7b3BhY2l0eTowO3RyYW5zZm9ybTp0cmFuc2xhdGVYKDUwcHgpfXRve29wYWNpdHk6MTt0cmFuc2Zvcm06dHJhbnNsYXRlWCgwKX19QGtleWZyYW1lcyBpemlULXNsaWRlSW57MCV7b3BhY2l0eTowO3RyYW5zZm9ybTp0cmFuc2xhdGVYKDUwcHgpfXRve29wYWNpdHk6MTt0cmFuc2Zvcm06dHJhbnNsYXRlWCgwKX19QC1tb3ota2V5ZnJhbWVzIGl6aVQtYm91bmNlSW5MZWZ0ezAle29wYWNpdHk6MDt0cmFuc2Zvcm06dHJhbnNsYXRlWCgyODBweCl9NTAle29wYWNpdHk6MTt0cmFuc2Zvcm06dHJhbnNsYXRlWCgtMjBweCl9NzAle3RyYW5zZm9ybTp0cmFuc2xhdGVYKDEwcHgpfXRve3RyYW5zZm9ybTp0cmFuc2xhdGVYKDApfX1ALXdlYmtpdC1rZXlmcmFtZXMgaXppVC1ib3VuY2VJbkxlZnR7MCV7b3BhY2l0eTowO3RyYW5zZm9ybTp0cmFuc2xhdGVYKDI4MHB4KX01MCV7b3BhY2l0eToxO3RyYW5zZm9ybTp0cmFuc2xhdGVYKC0yMHB4KX03MCV7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoMTBweCl9dG97dHJhbnNmb3JtOnRyYW5zbGF0ZVgoMCl9fUAtby1rZXlmcmFtZXMgaXppVC1ib3VuY2VJbkxlZnR7MCV7b3BhY2l0eTowO3RyYW5zZm9ybTp0cmFuc2xhdGVYKDI4MHB4KX01MCV7b3BhY2l0eToxO3RyYW5zZm9ybTp0cmFuc2xhdGVYKC0yMHB4KX03MCV7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoMTBweCl9dG97dHJhbnNmb3JtOnRyYW5zbGF0ZVgoMCl9fUBrZXlmcmFtZXMgaXppVC1ib3VuY2VJbkxlZnR7MCV7b3BhY2l0eTowO3RyYW5zZm9ybTp0cmFuc2xhdGVYKDI4MHB4KX01MCV7b3BhY2l0eToxO3RyYW5zZm9ybTp0cmFuc2xhdGVYKC0yMHB4KX03MCV7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoMTBweCl9dG97dHJhbnNmb3JtOnRyYW5zbGF0ZVgoMCl9fUAtbW96LWtleWZyYW1lcyBpemlULWJvdW5jZUluUmlnaHR7MCV7b3BhY2l0eTowO3RyYW5zZm9ybTp0cmFuc2xhdGVYKC0yODBweCl9NTAle29wYWNpdHk6MTt0cmFuc2Zvcm06dHJhbnNsYXRlWCgyMHB4KX03MCV7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTEwcHgpfXRve3RyYW5zZm9ybTp0cmFuc2xhdGVYKDApfX1ALXdlYmtpdC1rZXlmcmFtZXMgaXppVC1ib3VuY2VJblJpZ2h0ezAle29wYWNpdHk6MDt0cmFuc2Zvcm06dHJhbnNsYXRlWCgtMjgwcHgpfTUwJXtvcGFjaXR5OjE7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoMjBweCl9NzAle3RyYW5zZm9ybTp0cmFuc2xhdGVYKC0xMHB4KX10b3t0cmFuc2Zvcm06dHJhbnNsYXRlWCgwKX19QC1vLWtleWZyYW1lcyBpemlULWJvdW5jZUluUmlnaHR7MCV7b3BhY2l0eTowO3RyYW5zZm9ybTp0cmFuc2xhdGVYKC0yODBweCl9NTAle29wYWNpdHk6MTt0cmFuc2Zvcm06dHJhbnNsYXRlWCgyMHB4KX03MCV7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTEwcHgpfXRve3RyYW5zZm9ybTp0cmFuc2xhdGVYKDApfX1Aa2V5ZnJhbWVzIGl6aVQtYm91bmNlSW5SaWdodHswJXtvcGFjaXR5OjA7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTI4MHB4KX01MCV7b3BhY2l0eToxO3RyYW5zZm9ybTp0cmFuc2xhdGVYKDIwcHgpfTcwJXt0cmFuc2Zvcm06dHJhbnNsYXRlWCgtMTBweCl9dG97dHJhbnNmb3JtOnRyYW5zbGF0ZVgoMCl9fUAtbW96LWtleWZyYW1lcyBpemlULWJvdW5jZUluRG93bnswJXtvcGFjaXR5OjA7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTIwMHB4KX01MCV7b3BhY2l0eToxO3RyYW5zZm9ybTp0cmFuc2xhdGVZKDEwcHgpfTcwJXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtNXB4KX10b3t0cmFuc2Zvcm06dHJhbnNsYXRlWSgwKX19QC13ZWJraXQta2V5ZnJhbWVzIGl6aVQtYm91bmNlSW5Eb3duezAle29wYWNpdHk6MDt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMjAwcHgpfTUwJXtvcGFjaXR5OjE7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMTBweCl9NzAle3RyYW5zZm9ybTp0cmFuc2xhdGVZKC01cHgpfXRve3RyYW5zZm9ybTp0cmFuc2xhdGVZKDApfX1ALW8ta2V5ZnJhbWVzIGl6aVQtYm91bmNlSW5Eb3duezAle29wYWNpdHk6MDt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMjAwcHgpfTUwJXtvcGFjaXR5OjE7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMTBweCl9NzAle3RyYW5zZm9ybTp0cmFuc2xhdGVZKC01cHgpfXRve3RyYW5zZm9ybTp0cmFuc2xhdGVZKDApfX1Aa2V5ZnJhbWVzIGl6aVQtYm91bmNlSW5Eb3duezAle29wYWNpdHk6MDt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMjAwcHgpfTUwJXtvcGFjaXR5OjE7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMTBweCl9NzAle3RyYW5zZm9ybTp0cmFuc2xhdGVZKC01cHgpfXRve3RyYW5zZm9ybTp0cmFuc2xhdGVZKDApfX1ALW1vei1rZXlmcmFtZXMgaXppVC1ib3VuY2VJblVwezAle29wYWNpdHk6MDt0cmFuc2Zvcm06dHJhbnNsYXRlWSgyMDBweCl9NTAle29wYWNpdHk6MTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMTBweCl9NzAle3RyYW5zZm9ybTp0cmFuc2xhdGVZKDVweCl9dG97dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMCl9fUAtd2Via2l0LWtleWZyYW1lcyBpemlULWJvdW5jZUluVXB7MCV7b3BhY2l0eTowO3RyYW5zZm9ybTp0cmFuc2xhdGVZKDIwMHB4KX01MCV7b3BhY2l0eToxO3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xMHB4KX03MCV7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoNXB4KX10b3t0cmFuc2Zvcm06dHJhbnNsYXRlWSgwKX19QC1vLWtleWZyYW1lcyBpemlULWJvdW5jZUluVXB7MCV7b3BhY2l0eTowO3RyYW5zZm9ybTp0cmFuc2xhdGVZKDIwMHB4KX01MCV7b3BhY2l0eToxO3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xMHB4KX03MCV7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoNXB4KX10b3t0cmFuc2Zvcm06dHJhbnNsYXRlWSgwKX19QGtleWZyYW1lcyBpemlULWJvdW5jZUluVXB7MCV7b3BhY2l0eTowO3RyYW5zZm9ybTp0cmFuc2xhdGVZKDIwMHB4KX01MCV7b3BhY2l0eToxO3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xMHB4KX03MCV7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoNXB4KX10b3t0cmFuc2Zvcm06dHJhbnNsYXRlWSgwKX19QC1tb3ota2V5ZnJhbWVzIGl6aVQtZmFkZUluezAle29wYWNpdHk6MH10b3tvcGFjaXR5OjF9fUAtd2Via2l0LWtleWZyYW1lcyBpemlULWZhZGVJbnswJXtvcGFjaXR5OjB9dG97b3BhY2l0eToxfX1ALW8ta2V5ZnJhbWVzIGl6aVQtZmFkZUluezAle29wYWNpdHk6MH10b3tvcGFjaXR5OjF9fUBrZXlmcmFtZXMgaXppVC1mYWRlSW57MCV7b3BhY2l0eTowfXRve29wYWNpdHk6MX19QC1tb3ota2V5ZnJhbWVzIGl6aVQtZmFkZUluVXB7MCV7b3BhY2l0eTowOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsMTAwJSwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwxMDAlLDApfXRve29wYWNpdHk6MTstd2Via2l0LXRyYW5zZm9ybTpub25lO3RyYW5zZm9ybTpub25lfX1ALXdlYmtpdC1rZXlmcmFtZXMgaXppVC1mYWRlSW5VcHswJXtvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwxMDAlLDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLDEwMCUsMCl9dG97b3BhY2l0eToxOy13ZWJraXQtdHJhbnNmb3JtOm5vbmU7dHJhbnNmb3JtOm5vbmV9fUAtby1rZXlmcmFtZXMgaXppVC1mYWRlSW5VcHswJXtvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwxMDAlLDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLDEwMCUsMCl9dG97b3BhY2l0eToxOy13ZWJraXQtdHJhbnNmb3JtOm5vbmU7dHJhbnNmb3JtOm5vbmV9fUBrZXlmcmFtZXMgaXppVC1mYWRlSW5VcHswJXtvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwxMDAlLDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLDEwMCUsMCl9dG97b3BhY2l0eToxOy13ZWJraXQtdHJhbnNmb3JtOm5vbmU7dHJhbnNmb3JtOm5vbmV9fUAtbW96LWtleWZyYW1lcyBpemlULWZhZGVJbkRvd257MCV7b3BhY2l0eTowOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsLTEwMCUsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsLTEwMCUsMCl9dG97b3BhY2l0eToxOy13ZWJraXQtdHJhbnNmb3JtOm5vbmU7dHJhbnNmb3JtOm5vbmV9fUAtd2Via2l0LWtleWZyYW1lcyBpemlULWZhZGVJbkRvd257MCV7b3BhY2l0eTowOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsLTEwMCUsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsLTEwMCUsMCl9dG97b3BhY2l0eToxOy13ZWJraXQtdHJhbnNmb3JtOm5vbmU7dHJhbnNmb3JtOm5vbmV9fUAtby1rZXlmcmFtZXMgaXppVC1mYWRlSW5Eb3duezAle29wYWNpdHk6MDstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLC0xMDAlLDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLC0xMDAlLDApfXRve29wYWNpdHk6MTstd2Via2l0LXRyYW5zZm9ybTpub25lO3RyYW5zZm9ybTpub25lfX1Aa2V5ZnJhbWVzIGl6aVQtZmFkZUluRG93bnswJXtvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwtMTAwJSwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwtMTAwJSwwKX10b3tvcGFjaXR5OjE7LXdlYmtpdC10cmFuc2Zvcm06bm9uZTt0cmFuc2Zvcm06bm9uZX19QC1tb3ota2V5ZnJhbWVzIGl6aVQtZmFkZUluTGVmdHswJXtvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMzAwcHgsMCwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMzAwcHgsMCwwKX10b3tvcGFjaXR5OjE7LXdlYmtpdC10cmFuc2Zvcm06bm9uZTt0cmFuc2Zvcm06bm9uZX19QC13ZWJraXQta2V5ZnJhbWVzIGl6aVQtZmFkZUluTGVmdHswJXtvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMzAwcHgsMCwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMzAwcHgsMCwwKX10b3tvcGFjaXR5OjE7LXdlYmtpdC10cmFuc2Zvcm06bm9uZTt0cmFuc2Zvcm06bm9uZX19QC1vLWtleWZyYW1lcyBpemlULWZhZGVJbkxlZnR7MCV7b3BhY2l0eTowOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDMwMHB4LDAsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDMwMHB4LDAsMCl9dG97b3BhY2l0eToxOy13ZWJraXQtdHJhbnNmb3JtOm5vbmU7dHJhbnNmb3JtOm5vbmV9fUBrZXlmcmFtZXMgaXppVC1mYWRlSW5MZWZ0ezAle29wYWNpdHk6MDstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgzMDBweCwwLDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgzMDBweCwwLDApfXRve29wYWNpdHk6MTstd2Via2l0LXRyYW5zZm9ybTpub25lO3RyYW5zZm9ybTpub25lfX1ALW1vei1rZXlmcmFtZXMgaXppVC1mYWRlSW5SaWdodHswJXtvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoLTMwMHB4LDAsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKC0zMDBweCwwLDApfXRve29wYWNpdHk6MTstd2Via2l0LXRyYW5zZm9ybTpub25lO3RyYW5zZm9ybTpub25lfX1ALXdlYmtpdC1rZXlmcmFtZXMgaXppVC1mYWRlSW5SaWdodHswJXtvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoLTMwMHB4LDAsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKC0zMDBweCwwLDApfXRve29wYWNpdHk6MTstd2Via2l0LXRyYW5zZm9ybTpub25lO3RyYW5zZm9ybTpub25lfX1ALW8ta2V5ZnJhbWVzIGl6aVQtZmFkZUluUmlnaHR7MCV7b3BhY2l0eTowOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKC0zMDBweCwwLDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgtMzAwcHgsMCwwKX10b3tvcGFjaXR5OjE7LXdlYmtpdC10cmFuc2Zvcm06bm9uZTt0cmFuc2Zvcm06bm9uZX19QGtleWZyYW1lcyBpemlULWZhZGVJblJpZ2h0ezAle29wYWNpdHk6MDstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgtMzAwcHgsMCwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoLTMwMHB4LDAsMCl9dG97b3BhY2l0eToxOy13ZWJraXQtdHJhbnNmb3JtOm5vbmU7dHJhbnNmb3JtOm5vbmV9fUAtbW96LWtleWZyYW1lcyBpemlULWZsaXBJblh7MCV7LXdlYmtpdC10cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDEsMCwwLDkwZGVnKTt0cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDEsMCwwLDkwZGVnKTtvcGFjaXR5OjB9NDAley13ZWJraXQtdHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgxLDAsMCwtMjBkZWcpO3RyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMSwwLDAsLTIwZGVnKX02MCV7LXdlYmtpdC10cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDEsMCwwLDEwZGVnKTt0cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDEsMCwwLDEwZGVnKTtvcGFjaXR5OjF9ODAley13ZWJraXQtdHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgxLDAsMCwtNWRlZyk7dHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgxLDAsMCwtNWRlZyl9dG97LXdlYmtpdC10cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpO3RyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCl9fUAtd2Via2l0LWtleWZyYW1lcyBpemlULWZsaXBJblh7MCV7LXdlYmtpdC10cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDEsMCwwLDkwZGVnKTt0cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDEsMCwwLDkwZGVnKTtvcGFjaXR5OjB9NDAley13ZWJraXQtdHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgxLDAsMCwtMjBkZWcpO3RyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMSwwLDAsLTIwZGVnKX02MCV7LXdlYmtpdC10cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDEsMCwwLDEwZGVnKTt0cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDEsMCwwLDEwZGVnKTtvcGFjaXR5OjF9ODAley13ZWJraXQtdHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgxLDAsMCwtNWRlZyk7dHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgxLDAsMCwtNWRlZyl9dG97LXdlYmtpdC10cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpO3RyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCl9fUAtby1rZXlmcmFtZXMgaXppVC1mbGlwSW5YezAley13ZWJraXQtdHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgxLDAsMCw5MGRlZyk7dHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgxLDAsMCw5MGRlZyk7b3BhY2l0eTowfTQwJXstd2Via2l0LXRyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMSwwLDAsLTIwZGVnKTt0cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDEsMCwwLC0yMGRlZyl9NjAley13ZWJraXQtdHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgxLDAsMCwxMGRlZyk7dHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgxLDAsMCwxMGRlZyk7b3BhY2l0eToxfTgwJXstd2Via2l0LXRyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMSwwLDAsLTVkZWcpO3RyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMSwwLDAsLTVkZWcpfXRvey13ZWJraXQtdHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KTt0cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpfX1Aa2V5ZnJhbWVzIGl6aVQtZmxpcEluWHswJXstd2Via2l0LXRyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMSwwLDAsOTBkZWcpO3RyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMSwwLDAsOTBkZWcpO29wYWNpdHk6MH00MCV7LXdlYmtpdC10cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDEsMCwwLC0yMGRlZyk7dHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgxLDAsMCwtMjBkZWcpfTYwJXstd2Via2l0LXRyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMSwwLDAsMTBkZWcpO3RyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMSwwLDAsMTBkZWcpO29wYWNpdHk6MX04MCV7LXdlYmtpdC10cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDEsMCwwLC01ZGVnKTt0cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDEsMCwwLC01ZGVnKX10b3std2Via2l0LXRyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCk7dHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KX19QC1tb3ota2V5ZnJhbWVzIGl6aVQtZmFkZU91dHswJXtvcGFjaXR5OjF9dG97b3BhY2l0eTowfX1ALXdlYmtpdC1rZXlmcmFtZXMgaXppVC1mYWRlT3V0ezAle29wYWNpdHk6MX10b3tvcGFjaXR5OjB9fUAtby1rZXlmcmFtZXMgaXppVC1mYWRlT3V0ezAle29wYWNpdHk6MX10b3tvcGFjaXR5OjB9fUBrZXlmcmFtZXMgaXppVC1mYWRlT3V0ezAle29wYWNpdHk6MX10b3tvcGFjaXR5OjB9fUAtbW96LWtleWZyYW1lcyBpemlULWZhZGVPdXREb3duezAle29wYWNpdHk6MX10b3tvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwxMDAlLDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLDEwMCUsMCl9fUAtd2Via2l0LWtleWZyYW1lcyBpemlULWZhZGVPdXREb3duezAle29wYWNpdHk6MX10b3tvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwxMDAlLDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLDEwMCUsMCl9fUAtby1rZXlmcmFtZXMgaXppVC1mYWRlT3V0RG93bnswJXtvcGFjaXR5OjF9dG97b3BhY2l0eTowOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsMTAwJSwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwxMDAlLDApfX1Aa2V5ZnJhbWVzIGl6aVQtZmFkZU91dERvd257MCV7b3BhY2l0eToxfXRve29wYWNpdHk6MDstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLDEwMCUsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsMTAwJSwwKX19QC1tb3ota2V5ZnJhbWVzIGl6aVQtZmFkZU91dFVwezAle29wYWNpdHk6MX10b3tvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwtMTAwJSwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwtMTAwJSwwKX19QC13ZWJraXQta2V5ZnJhbWVzIGl6aVQtZmFkZU91dFVwezAle29wYWNpdHk6MX10b3tvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwtMTAwJSwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwtMTAwJSwwKX19QC1vLWtleWZyYW1lcyBpemlULWZhZGVPdXRVcHswJXtvcGFjaXR5OjF9dG97b3BhY2l0eTowOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsLTEwMCUsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsLTEwMCUsMCl9fUBrZXlmcmFtZXMgaXppVC1mYWRlT3V0VXB7MCV7b3BhY2l0eToxfXRve29wYWNpdHk6MDstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLC0xMDAlLDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLC0xMDAlLDApfX1ALW1vei1rZXlmcmFtZXMgaXppVC1mYWRlT3V0TGVmdHswJXtvcGFjaXR5OjF9dG97b3BhY2l0eTowOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKC0yMDBweCwwLDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgtMjAwcHgsMCwwKX19QC13ZWJraXQta2V5ZnJhbWVzIGl6aVQtZmFkZU91dExlZnR7MCV7b3BhY2l0eToxfXRve29wYWNpdHk6MDstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgtMjAwcHgsMCwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoLTIwMHB4LDAsMCl9fUAtby1rZXlmcmFtZXMgaXppVC1mYWRlT3V0TGVmdHswJXtvcGFjaXR5OjF9dG97b3BhY2l0eTowOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKC0yMDBweCwwLDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgtMjAwcHgsMCwwKX19QGtleWZyYW1lcyBpemlULWZhZGVPdXRMZWZ0ezAle29wYWNpdHk6MX10b3tvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoLTIwMHB4LDAsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKC0yMDBweCwwLDApfX1ALW1vei1rZXlmcmFtZXMgaXppVC1mYWRlT3V0UmlnaHR7MCV7b3BhY2l0eToxfXRve29wYWNpdHk6MDstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgyMDBweCwwLDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgyMDBweCwwLDApfX1ALXdlYmtpdC1rZXlmcmFtZXMgaXppVC1mYWRlT3V0UmlnaHR7MCV7b3BhY2l0eToxfXRve29wYWNpdHk6MDstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgyMDBweCwwLDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgyMDBweCwwLDApfX1ALW8ta2V5ZnJhbWVzIGl6aVQtZmFkZU91dFJpZ2h0ezAle29wYWNpdHk6MX10b3tvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMjAwcHgsMCwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMjAwcHgsMCwwKX19QGtleWZyYW1lcyBpemlULWZhZGVPdXRSaWdodHswJXtvcGFjaXR5OjF9dG97b3BhY2l0eTowOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDIwMHB4LDAsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDIwMHB4LDAsMCl9fUAtbW96LWtleWZyYW1lcyBpemlULWZsaXBPdXRYezAley13ZWJraXQtdHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KTt0cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpfTMwJXstd2Via2l0LXRyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMSwwLDAsLTIwZGVnKTt0cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDEsMCwwLC0yMGRlZyk7b3BhY2l0eToxfXRvey13ZWJraXQtdHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgxLDAsMCw5MGRlZyk7dHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgxLDAsMCw5MGRlZyk7b3BhY2l0eTowfX1ALXdlYmtpdC1rZXlmcmFtZXMgaXppVC1mbGlwT3V0WHswJXstd2Via2l0LXRyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCk7dHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KX0zMCV7LXdlYmtpdC10cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDEsMCwwLC0yMGRlZyk7dHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgxLDAsMCwtMjBkZWcpO29wYWNpdHk6MX10b3std2Via2l0LXRyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMSwwLDAsOTBkZWcpO3RyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMSwwLDAsOTBkZWcpO29wYWNpdHk6MH19QC1vLWtleWZyYW1lcyBpemlULWZsaXBPdXRYezAley13ZWJraXQtdHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KTt0cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpfTMwJXstd2Via2l0LXRyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMSwwLDAsLTIwZGVnKTt0cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDEsMCwwLC0yMGRlZyk7b3BhY2l0eToxfXRvey13ZWJraXQtdHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgxLDAsMCw5MGRlZyk7dHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgxLDAsMCw5MGRlZyk7b3BhY2l0eTowfX1Aa2V5ZnJhbWVzIGl6aVQtZmxpcE91dFh7MCV7LXdlYmtpdC10cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpO3RyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCl9MzAley13ZWJraXQtdHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgxLDAsMCwtMjBkZWcpO3RyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMSwwLDAsLTIwZGVnKTtvcGFjaXR5OjF9dG97LXdlYmtpdC10cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDEsMCwwLDkwZGVnKTt0cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDEsMCwwLDkwZGVnKTtvcGFjaXR5OjB9fQ=="}},"time_used":40,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":40,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":[{"sensor_name":"dns4eu","sensor_type":"DNS","title":"DNS4EU","description":"DNS4EU","scan_date":"2026-07-27","alert":"Sinkholed","trigger":"digital-assettrade.com","verdict":"malicious","severity":"medium","comment":"","link":"https://www.joindns4.eu/","meta":null}],"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/99527.15c5c25d27a56a0df772.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:12.963Z","timestamp":1785148032963,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/99527.15c5c25d27a56a0df772.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:12 GMT\r\ncontent-type: text/css; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a58aaad-19360\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Thu, 16 Jul 2026 09:55:57 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/16/2026 11:03:20\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 28e578b921b6b661b812b2392610f3c5\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":103264,"size_decoded":14015,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with very long lines (65536), with no line terminators","md5":"3ae28448cb02ee3491028f82c9e212b5","sha1":"840f868063e33818424634685f83f5dc9c54fd85","sha256":"6d8af262e85da3952f96074c40841361fe81de28292a6654a4b6a5c8c0d9a1b6","sha512":"615657ad93d0166da77c83a566e60f1d4002b7a4a1c811227c935f2a4ea91b16e01893aba5c708e2a1b40c39c6e773c08d99e62560bcc1c8df301a3b9f1b3821","ssdeep":"768:ywlwokCcAfM0x/2bcVtmUK6ogvY0FGhgiU4vWQs/WQ2das9:oIVtmUK6ouY0FGhgi1vjs/WQ2day","tlshash":"dea335bcf95192bb5e9b587f4398f6697648f943fd066f86bf00c00020c6ee710e5a5a","first_seen":"2026-04-20T12:30:34.890238Z","last_seen":"2026-07-27T13:00:41.366028Z","times_seen":5529,"resource_available":false,"data":"aHRtbHstd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6MTAwJX1ib2R5e2NvbG9yOnZhcigtLWNvbG9yLXRleHQtcHJpbWFyeSk7Zm9udC1zaXplOjE0cHg7LXdlYmtpdC1mb250LXNtb290aGluZzphbnRpYWxpYXNlZDstbW96LW9zeC1mb250LXNtb290aGluZzpncmF5c2NhbGU7Zm9udC1mYW1pbHk6LWFwcGxlLXN5c3RlbSxCbGlua01hY1N5c3RlbUZvbnQsVHJlYnVjaGV0IE1TLFJvYm90byxVYnVudHUsc2Fucy1zZXJpZjtmb250LWZlYXR1cmUtc2V0dGluZ3M6InRudW0iIG9uLCJsbnVtIiBvbn1odG1sW2xhbmc9dmldIGJvZHl7Zm9udC1mYW1pbHk6QXJpYWwsc2Fucy1zZXJpZn1ib2R5LGh0bWx7Ym94LXNpemluZzpib3JkZXItYm94O2hlaWdodDoxMDAlfWJvZHksZGlyLGgxLGgyLGgzLGg0LGg1LGg2LGh0bWwsbGksbWVudSxvbCxwLHVse21hcmdpbjowO3BhZGRpbmc6MH1he3RleHQtZGVjb3JhdGlvbjpub25lfWE6YWN0aXZle291dGxpbmU6MH1AbWVkaWEgKGFueS1ob3Zlcjpob3Zlcil7YTpob3ZlcntvdXRsaW5lOjB9fWgxe2ZvbnQtc2l6ZToyZW19c3ViLHN1cHtmb250LXNpemU6NzUlO2xpbmUtaGVpZ2h0OjA7cG9zaXRpb246cmVsYXRpdmU7dmVydGljYWwtYWxpZ246aW5pdGlhbH1zdXB7dG9wOi0uMjVlbX1zdWJ7Ym90dG9tOi0uMjVlbX1maWd1cmV7bWFyZ2luOjB9cHJle292ZXJmbG93OmF1dG99Y29kZSxrYmQscHJlLHNhbXB7Zm9udC1mYW1pbHk6bW9ub3NwYWNlLG1vbm9zcGFjZTtmb250LXNpemU6MWVtfWJ1dHRvbixpbnB1dCxvcHRncm91cCxzZWxlY3QsdGV4dGFyZWF7Y29sb3I6aW5oZXJpdDtmb250OmluaGVyaXQ7bWFyZ2luOjB9YnV0dG9uLHNlbGVjdHt0ZXh0LXRyYW5zZm9ybTpub25lfWJ1dHRvbixpbnB1dFt0eXBlPWJ1dHRvbl0saW5wdXRbdHlwZT1yZXNldF0saW5wdXRbdHlwZT1zdWJtaXRdey13ZWJraXQtYXBwZWFyYW5jZTpidXR0b247Y3Vyc29yOmRlZmF1bHR9aW5wdXRbZGlzYWJsZWRde2N1cnNvcjpkZWZhdWx0fWJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcixpbnB1dDo6LW1vei1mb2N1cy1pbm5lcntib3JkZXI6MDtwYWRkaW5nOjB9aW5wdXRbdHlwZT1udW1iZXJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLGlucHV0W3R5cGU9bnVtYmVyXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbntoZWlnaHQ6YXV0b31pbnB1dFt0eXBlPXNlYXJjaF17LXdlYmtpdC1hcHBlYXJhbmNlOnRleHRmaWVsZDtib3gtc2l6aW5nOmluaXRpYWx9aW5wdXRbdHlwZT1zZWFyY2hdOjotd2Via2l0LXNlYXJjaC1jYW5jZWwtYnV0dG9uLGlucHV0W3R5cGU9c2VhcmNoXTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbnstd2Via2l0LWFwcGVhcmFuY2U6bm9uZX1maWVsZHNldHtib3JkZXI6bm9uZTttYXJnaW46MDtwYWRkaW5nOjB9dGFibGV7Ym9yZGVyLWNvbGxhcHNlOmNvbGxhcHNlO2JvcmRlci1zcGFjaW5nOjB9dGQsdGh7cGFkZGluZzowfTpyb290ey0tY29sb3Itd2hpdGU6I2ZmZjstLWNvbG9yLWJsYWNrOiMwMDA7LS1jb2xvci10cmFuc3BhcmVudDojMDAwMDstLWNvbG9yLWNvbGQtZ3JheS01MDojZjlmOWY5Oy0tY29sb3ItY29sZC1ncmF5LTEwMDojZjJmMmYyOy0tY29sb3ItY29sZC1ncmF5LTE1MDojZWJlYmViOy0tY29sb3ItY29sZC1ncmF5LTIwMDojZGJkYmRiOy0tY29sb3ItY29sZC1ncmF5LTI1MDojYzljOWM5Oy0tY29sb3ItY29sZC1ncmF5LTMwMDojYjhiOGI4Oy0tY29sb3ItY29sZC1ncmF5LTM1MDojYThhOGE4Oy0tY29sb3ItY29sZC1ncmF5LTQwMDojOWM5YzljOy0tY29sb3ItY29sZC1ncmF5LTQ1MDojOGM4YzhjOy0tY29sb3ItY29sZC1ncmF5LTUwMDpncmV5Oy0tY29sb3ItY29sZC1ncmF5LTU1MDojNzA3MDcwOy0tY29sb3ItY29sZC1ncmF5LTYwMDojNjM2MzYzOy0tY29sb3ItY29sZC1ncmF5LTY1MDojNTc1NzU3Oy0tY29sb3ItY29sZC1ncmF5LTcwMDojNGE0YTRhOy0tY29sb3ItY29sZC1ncmF5LTc1MDojM2QzZDNkOy0tY29sb3ItY29sZC1ncmF5LTgwMDojMmUyZTJlOy0tY29sb3ItY29sZC1ncmF5LTg1MDojMWYxZjFmOy0tY29sb3ItY29sZC1ncmF5LTkwMDojMGYwZjBmOy0tY29sb3ItY29sZC1ncmF5LTk1MDojMDAwOy0tY29sb3ItcmlwZS1yZWQtNTA6I2ZmZWJlYzstLWNvbG9yLXJpcGUtcmVkLTEwMDojZmNjYmNkOy0tY29sb3ItcmlwZS1yZWQtMjAwOiNmYWExYTQ7LS1jb2xvci1yaXBlLXJlZC0zMDA6I2Y3N2M4MDstLWNvbG9yLXJpcGUtcmVkLTQwMDojZjc1MjVmOy0tY29sb3ItcmlwZS1yZWQtNTAwOiNmMjM2NDU7LS1jb2xvci1yaXBlLXJlZC02MDA6I2NjMmYzYzstLWNvbG9yLXJpcGUtcmVkLTcwMDojYjIyODMzOy0tY29sb3ItcmlwZS1yZWQtODAwOiM5OTFmMjk7LS1jb2xvci1yaXBlLXJlZC05MDA6IzgwMTkyMjstLWNvbG9yLXJpcGUtcmVkLWExMDA6I2ZmODA4MDstLWNvbG9yLXJpcGUtcmVkLWEyMDA6I2ZmNTI1MjstLWNvbG9yLXJpcGUtcmVkLWE0MDA6I2YzMzstLWNvbG9yLXJpcGUtcmVkLWE2MDA6I2NjMjkyOTstLWNvbG9yLXJpcGUtcmVkLWE3MDA6IzgwMjAyODstLWNvbG9yLXJpcGUtcmVkLWE4MDA6IzRkMTkxZDstLWNvbG9yLXJpcGUtcmVkLWE5MDA6IzMzMWYyMDstLWNvbG9yLXRhbi1vcmFuZ2UtNTA6I2ZmZjNlMDstLWNvbG9yLXRhbi1vcmFuZ2UtMTAwOiNmZmUwYjI7LS1jb2xvci10YW4tb3JhbmdlLTIwMDojZmZjYzgwOy0tY29sb3ItdGFuLW9yYW5nZS0zMDA6I2ZmYjc0ZDstLWNvbG9yLXRhbi1vcmFuZ2UtNDAwOiNmZmE3MjY7LS1jb2xvci10YW4tb3JhbmdlLTUwMDojZmY5ODAwOy0tY29sb3ItdGFuLW9yYW5nZS02MDA6I2ZiOGMwMDstLWNvbG9yLXRhbi1vcmFuZ2UtNzAwOiNmNTdjMDA7LS1jb2xvci10YW4tb3JhbmdlLTgwMDojZWY2YzAwOy0tY29sb3ItdGFuLW9yYW5nZS05MDA6I2U2NTEwMDstLWNvbG9yLXRhbi1vcmFuZ2UtYTEwMDojZmZkMTgwOy0tY29sb3ItdGFuLW9yYW5nZS1hMjAwOiNmZmFiNDA7LS1jb2xvci10YW4tb3JhbmdlLWE0MDA6I2ZmOTEwMDstLWNvbG9yLXRhbi1vcmFuZ2UtYTUwMDojZTU3ZTE3Oy0tY29sb3ItdGFuLW9yYW5nZS1hNjAwOiNjYzcwMTQ7LS1jb2xvci10YW4tb3JhbmdlLWE3MDA6IzhjNTQxYzstLWNvbG9yLXRhbi1vcmFuZ2UtYTgwMDojNTkzYTFiOy0tY29sb3ItdGFuLW9yYW5nZS1hOTAwOiMzMzI2MWE7LS1jb2xvci1pZ3VhbmEtZ3JlZW4tNTA6I2U4ZjVlOTstLWNvbG9yLWlndWFuYS1ncmVlbi0xMDA6I2M4ZTZjOTstLWNvbG9yLWlndWFuYS1ncmVlbi0yMDA6I2E1ZDZhNzstLWNvbG9yLWlndWFuYS1ncmVlbi0zMDA6IzgxYzc4NDstLWNvbG9yLWlndWFuYS1ncmVlbi00MDA6IzY2YmI2YTstLWNvbG9yLWlndWFuYS1ncmVlbi01MDA6IzRjYWY1MDstLWNvbG9yLWlndWFuYS1ncmVlbi02MDA6IzQzYTA0NzstLWNvbG9yLWlndWFuYS1ncmVlbi03MDA6IzM4OGUzYzstLWNvbG9yLWlndWFuYS1ncmVlbi04MDA6IzJlN2QzMjstLWNvbG9yLWlndWFuYS1ncmVlbi05MDA6IzFiNWUyMDstLWNvbG9yLWlndWFuYS1ncmVlbi1hMTAwOiNiOWY2Y2E7LS1jb2xvci1pZ3VhbmEtZ3JlZW4tYTIwMDojNjlmMGFlOy0tY29sb3ItaWd1YW5hLWdyZWVuLWE0MDA6IzAwZTY3NjstLWNvbG9yLWlndWFuYS1ncmVlbi1hNzAwOiMwMGM4NTM7LS1jb2xvci1iYW5hbmEteWVsbG93LTUwOiNmZmZkZTc7LS1jb2xvci1iYW5hbmEteWVsbG93LTEwMDojZmZmOWM0Oy0tY29sb3ItYmFuYW5hLXllbGxvdy0yMDA6I2ZmZjU5ZDstLWNvbG9yLWJhbmFuYS15ZWxsb3ctMzAwOiNmZmYxNzY7LS1jb2xvci1iYW5hbmEteWVsbG93LTQwMDojZmZlZTU4Oy0tY29sb3ItYmFuYW5hLXllbGxvdy01MDA6I2ZmZWIzYjstLWNvbG9yLWJhbmFuYS15ZWxsb3ctNjAwOiNmZGQ4MzU7LS1jb2xvci1iYW5hbmEteWVsbG93LTcwMDojZmJjMDJkOy0tY29sb3ItYmFuYW5hLXllbGxvdy04MDA6I2Y5YTgyNTstLWNvbG9yLWJhbmFuYS15ZWxsb3ctOTAwOiNmNTdmMTc7LS1jb2xvci1iYW5hbmEteWVsbG93LWExMDA6I2ZmZmY4ZDstLWNvbG9yLWJhbmFuYS15ZWxsb3ctYTIwMDojZmYwOy0tY29sb3ItYmFuYW5hLXllbGxvdy1hNDAwOiNmZmVhMDA7LS1jb2xvci1iYW5hbmEteWVsbG93LWE3MDA6I2VlZGEwMTstLWNvbG9yLXR2LWJsdWUtNTA6I2UzZWZmZDstLWNvbG9yLXR2LWJsdWUtMTAwOiNiYmQ5ZmI7LS1jb2xvci10di1ibHVlLTIwMDojOTBiZmY5Oy0tY29sb3ItdHYtYmx1ZS0zMDA6IzViOWNmNjstLWNvbG9yLXR2LWJsdWUtNDAwOiMzMTc5ZjU7LS1jb2xvci10di1ibHVlLTUwMDojMjk2MmZmOy0tY29sb3ItdHYtYmx1ZS02MDA6IzFlNTNlNTstLWNvbG9yLXR2LWJsdWUtNzAwOiMxODQ4Y2M7LS1jb2xvci10di1ibHVlLTgwMDojMTQzZWIyOy0tY29sb3ItdHYtYmx1ZS05MDA6IzBjMzI5OTstLWNvbG9yLXR2LWJsdWUtYTEwMDojODJiMWZmOy0tY29sb3ItdHYtYmx1ZS1hMjAwOiM0NDhhZmY7LS1jb2xvci10di1ibHVlLWE0MDA6IzI5NzlmZjstLWNvbG9yLXR2LWJsdWUtYTYwMDojMjk2MmZmOy0tY29sb3ItdHYtYmx1ZS1hNzAwOiMxNDNhODc7LS1jb2xvci10di1ibHVlLWE4MDA6IzE0MmU2MTstLWNvbG9yLXR2LWJsdWUtYTkwMDojMTMyMDQyOy0tY29sb3ItZGVlcC1ibHVlLTUwOiNlZGU3ZjY7LS1jb2xvci1kZWVwLWJsdWUtMTAwOiNkMWM0ZTk7LS1jb2xvci1kZWVwLWJsdWUtMjAwOiNiMzlkZGI7LS1jb2xvci1kZWVwLWJsdWUtMzAwOiM5NTc1Y2Q7LS1jb2xvci1kZWVwLWJsdWUtNDAwOiM3ZTU3YzI7LS1jb2xvci1kZWVwLWJsdWUtNTAwOiM2NzNhYjc7LS1jb2xvci1kZWVwLWJsdWUtNjAwOiM1ZTM1YjE7LS1jb2xvci1kZWVwLWJsdWUtNzAwOiM1MTJkYTg7LS1jb2xvci1kZWVwLWJsdWUtODAwOiM0NTI3YTA7LS1jb2xvci1kZWVwLWJsdWUtOTAwOiMzMTFiOTI7LS1jb2xvci1kZWVwLWJsdWUtYTEwMDojYjM4OGZmOy0tY29sb3ItZGVlcC1ibHVlLWEyMDA6IzdjNGRmZjstLWNvbG9yLWRlZXAtYmx1ZS1hNDAwOiM2NTFmZmY7LS1jb2xvci1kZWVwLWJsdWUtYTcwMDojNjIwMGVhOy0tY29sb3ItbWludHktZ3JlZW4tNTA6I2RhZjJlZTstLWNvbG9yLW1pbnR5LWdyZWVuLTEwMDojYWNlNWRjOy0tY29sb3ItbWludHktZ3JlZW4tMjAwOiM3MGNjYmQ7LS1jb2xvci1taW50eS1ncmVlbi0zMDA6IzQyYmRhODstLWNvbG9yLW1pbnR5LWdyZWVuLTQwMDojMjJhYjk0Oy0tY29sb3ItbWludHktZ3JlZW4tNTAwOiMwODk5ODE7LS1jb2xvci1taW50eS1ncmVlbi02MDA6IzA2ODA2YjstLWNvbG9yLW1pbnR5LWdyZWVuLTcwMDojMDU2NjU2Oy0tY29sb3ItbWludHktZ3JlZW4tODAwOiMwMDRkNDA7LS1jb2xvci1taW50eS1ncmVlbi05MDA6IzAwMzMyYTstLWNvbG9yLW1pbnR5LWdyZWVuLWExMDA6I2E3ZmZmMDstLWNvbG9yLW1pbnR5LWdyZWVuLWEyMDA6IzQ1ZTVjYjstLWNvbG9yLW1pbnR5LWdyZWVuLWE0MDA6IzJiZDliYzstLWNvbG9yLW1pbnR5LWdyZWVuLWE2MDA6IzI0YjI5YjstLWNvbG9yLW1pbnR5LWdyZWVuLWE3MDA6IzFiNzY2NzstLWNvbG9yLW1pbnR5LWdyZWVuLWE4MDA6IzEwNDQzYjstLWNvbG9yLW1pbnR5LWdyZWVuLWE5MDA6IzA4MjYyMTstLWNvbG9yLWdyYXBlcy1wdXJwbGUtNTA6I2YzZTVmNTstLWNvbG9yLWdyYXBlcy1wdXJwbGUtMTAwOiNlMWJlZTc7LS1jb2xvci1ncmFwZXMtcHVycGxlLTIwMDojY2U5M2Q4Oy0tY29sb3ItZ3JhcGVzLXB1cnBsZS0zMDA6I2JhNjhjODstLWNvbG9yLWdyYXBlcy1wdXJwbGUtNDAwOiNhYjQ3YmM7LS1jb2xvci1ncmFwZXMtcHVycGxlLTUwMDojOWMyN2IwOy0tY29sb3ItZ3JhcGVzLXB1cnBsZS02MDA6IzhlMjRhYTstLWNvbG9yLWdyYXBlcy1wdXJwbGUtNzAwOiM3YjFmYTI7LS1jb2xvci1ncmFwZXMtcHVycGxlLTgwMDojNmExYjlhOy0tY29sb3ItZ3JhcGVzLXB1cnBsZS05MDA6IzRhMTQ4YzstLWNvbG9yLWdyYXBlcy1wdXJwbGUtYTEwMDojZWE4MGZjOy0tY29sb3ItZ3JhcGVzLXB1cnBsZS1hMjAwOiNlMDQwZmI7LS1jb2xvci1ncmFwZXMtcHVycGxlLWE0MDA6I2Q1MDBmOTstLWNvbG9yLWdyYXBlcy1wdXJwbGUtYTcwMDojYTBmOy0tY29sb3ItYmVycnktcGluay01MDojZmNlNGVjOy0tY29sb3ItYmVycnktcGluay0xMDA6I2Y4YmJkMDstLWNvbG9yLWJlcnJ5LXBpbmstMjAwOiNmNDhmYjE7LS1jb2xvci1iZXJyeS1waW5rLTMwMDojZjA2MjkyOy0tY29sb3ItYmVycnktcGluay00MDA6I2VjNDA3YTstLWNvbG9yLWJlcnJ5LXBpbmstNTAwOiNlOTFlNjM7LS1jb2xvci1iZXJyeS1waW5rLTYwMDojZDgxYjYwOy0tY29sb3ItYmVycnktcGluay03MDA6I2MyMTg1YjstLWNvbG9yLWJlcnJ5LXBpbmstODAwOiNhZDE0NTc7LS1jb2xvci1iZXJyeS1waW5rLTkwMDojODgwZTRmOy0tY29sb3ItYmVycnktcGluay1hMTAwOiNmZjgwYWI7LS1jb2xvci1iZXJyeS1waW5rLWEyMDA6I2ZmNDA4MTstLWNvbG9yLWJlcnJ5LXBpbmstYTQwMDojZjUwMDU3Oy0tY29sb3ItYmVycnktcGluay1hNzAwOiNjNTExNjI7LS1jb2xvci1za3ktYmx1ZS01MDojZTBmN2ZhOy0tY29sb3Itc2t5LWJsdWUtMTAwOiNiMmViZjI7LS1jb2xvci1za3ktYmx1ZS0yMDA6IzgwZGVlYTstLWNvbG9yLXNreS1ibHVlLTMwMDojNGRkMGUxOy0tY29sb3Itc2t5LWJsdWUtNDAwOiMyNmM2ZGE7LS1jb2xvci1za3ktYmx1ZS01MDA6IzAwYmNkNDstLWNvbG9yLXNreS1ibHVlLTYwMDojMDBhY2MxOy0tY29sb3Itc2t5LWJsdWUtNzAwOiMwMDk3YTc7LS1jb2xvci1za3ktYmx1ZS04MDA6IzAwODM4ZjstLWNvbG9yLXNreS1ibHVlLTkwMDojMDA2MDY0Oy0tY29sb3Itc2t5LWJsdWUtYTEwMDojODRmZmZmOy0tY29sb3Itc2t5LWJsdWUtYTIwMDojMThmZmZmOy0tY29sb3Itc2t5LWJsdWUtYTQwMDojMDBlNWZmOy0tY29sb3Itc2t5LWJsdWUtYTcwMDojMDBiOGQ0Oy0tY29sb3ItZm9yZXN0LWdyZWVuLTUwOiNkYWYyZTY7LS1jb2xvci1mb3Jlc3QtZ3JlZW4tMTAwOiNhY2U1Yzk7LS1jb2xvci1mb3Jlc3QtZ3JlZW4tMjAwOiM3MGNjOWU7LS1jb2xvci1mb3Jlc3QtZ3JlZW4tMzAwOiM0MmJkN2Y7LS1jb2xvci1mb3Jlc3QtZ3JlZW4tNDAwOiMyMmFiNjc7LS1jb2xvci1mb3Jlc3QtZ3JlZW4tNTAwOiMwODk5NTA7LS1jb2xvci1mb3Jlc3QtZ3JlZW4tNjAwOiMwNjgwNDM7LS1jb2xvci1mb3Jlc3QtZ3JlZW4tNzAwOiMwNTY2MzY7LS1jb2xvci1mb3Jlc3QtZ3JlZW4tODAwOiMwMDRkMjc7LS1jb2xvci1mb3Jlc3QtZ3JlZW4tOTAwOiMxYTMzMjY7LS1jb2xvci1mYWNlYm9vazojMTg3N2YyOy0tY29sb3ItZGVlcC1mYWNlYm9vazojMTU2NGNhOy0tY29sb3ItdHdpdHRlcjojMWRhMWYyOy0tY29sb3ItZGVlcC10d2l0dGVyOiMxODhjZDM7LS1jb2xvci15b3V0dWJlOnJlZDstLWNvbG9yLWxpbmtlZGluOiMwMDdiYjU7LS1jb2xvci1zZWVraW5nLWFscGhhLWJyYW5kOiNmZjcyMDB9W2RhdGEtdGhlbWU9bGlnaHRdey0tY29sb3ItaGVhZGVyLWJnOnZhcigtLWNvbG9yLXdoaXRlKTstLWNvbG9yLWJvZHktYmc6dmFyKC0tY29sb3Itd2hpdGUpOy0tY29sb3ItYm9keS1zZWNvbmRhcnktYmc6dmFyKC0tY29sb3ItY29sZC1ncmF5LTEwMCk7LS1jb2xvci1iZy1wcmltYXJ5OnZhcigtLWNvbG9yLXdoaXRlKTstLWNvbG9yLWJnLXByaW1hcnktaG92ZXI6dmFyKC0tY29sb3ItY29sZC1ncmF5LTEwMCk7LS1jb2xvci1iZy1zZWNvbmRhcnk6dmFyKC0tY29sb3Itd2hpdGUpOy0tY29sb3ItYmctaGlnaGxpZ2h0OnZhcigtLWNvbG9yLWNvbGQtZ3JheS01MCk7LS1jb2xvci1iZy1zY3JvbGwtYnV0dG9uczp2YXIoLS1jb2xvci1jb2xkLWdyYXktMTAwKTstLWNvbG9yLWxlZ2FjeS1iZy1zY3JvbGwtYnV0dG9uczp2YXIoLS1jb2xvci1jb2xkLWdyYXktODUwKTstLWNvbG9yLWxlZ2FjeS1iZy13aWRnZXQ6dmFyKC0tY29sb3Itd2hpdGUpOy0tY29sb3ItdGV4dC1wcmltYXJ5OnZhcigtLWNvbG9yLWNvbGQtZ3JheS05MDApOy0tY29sb3ItdGV4dC1zZWNvbmRhcnk6dmFyKC0tY29sb3ItY29sZC1ncmF5LTU1MCk7LS1jb2xvci10ZXh0LXRlcnRpYXJ5OnZhcigtLWNvbG9yLWNvbGQtZ3JheS00MDApOy0tY29sb3ItdGV4dC1kaXNhYmxlZDp2YXIoLS1jb2xvci1jb2xkLWdyYXktMzAwKTstLWNvbG9yLWFjY2VudC1jb250ZW50OnZhcigtLWNvbG9yLWNvbGQtZ3JheS05MDApOy0tY29sb3ItYm94LXNoYWRvdzp2YXIoLS1jb2xvci1jb2xkLWdyYXktMzAwKTstLWNvbG9yLWRpdmlkZXI6dmFyKC0tY29sb3ItY29sZC1ncmF5LTE1MCk7LS1jb2xvci1kaXZpZGVyLWhvdmVyOnZhcigtLWNvbG9yLWNvbGQtZ3JheS0xMDApOy0tY29sb3ItZGl2aWRlci1zZWNvbmRhcnk6dmFyKC0tY29sb3ItY29sZC1ncmF5LTEwMCk7LS1jb2xvci1hY3RpdmUtaG92ZXItdGV4dDp2YXIoLS1jb2xvci1jb2xkLWdyYXktOTAwKTstLWNvbG9yLWFsZXJ0LXRleHQ6dmFyKC0tY29sb3ItY29sZC1ncmF5LTkwMCk7LS1jb2xvci1ib3JkZXItdGFibGU6dmFyKC0tY29sb3ItY29sZC1ncmF5LTEwMCk7LS1jb2xvci1icmFuZDp2YXIoLS1jb2xvci10di1ibHVlLTUwMCk7LS1jb2xvci1icmFuZC1hY3RpdmU6dmFyKC0tY29sb3ItdHYtYmx1ZS03MDApOy0tY29sb3ItYnJhbmQtaG92ZXI6dmFyKC0tY29sb3ItdHYtYmx1ZS02MDApOy0tY29sb3ItY2hhcnQtcGFnZS1iZzp2YXIoLS1jb2xvci1jb2xkLWdyYXktMTUwKTstLWNvbG9yLWNvbW1vbi10b29sdGlwLWJnOnZhcigtLWNvbG9yLWNvbGQtZ3JheS04MDApOy0tY29sb3ItZGFuZ2VyOnZhcigtLWNvbG9yLXJpcGUtcmVkLTQwMCk7LS1jb2xvci1kYW5nZXItaG92ZXI6dmFyKC0tY29sb3ItcmlwZS1yZWQtNTAwKTstLWNvbG9yLWRhbmdlci1hY3RpdmU6dmFyKC0tY29sb3ItcmlwZS1yZWQtNjAwKTstLWNvbG9yLWRlcHRocmVuZGVyZXItc3Ryb2tlLXN0eWxlOnZhcigtLWNvbG9yLWNvbGQtZ3JheS0xMDApOy0tY29sb3ItaGlnaGxpZ2h0LW5ldzp2YXIoLS1jb2xvci10YW4tb3JhbmdlLTUwKTstLWNvbG9yLWlucHV0LWJnOnZhcigtLWNvbG9yLXdoaXRlKTstLWNvbG9yLWlucHV0LXB1Ymxpc2gtYmc6dmFyKC0tY29sb3Itd2hpdGUpOy0tY29sb3ItbGluazp2YXIoLS1jb2xvci10di1ibHVlLTUwMCk7LS1jb2xvci1saW5rLWhvdmVyOnZhcigtLWNvbG9yLXR2LWJsdWUtNjAwKTstLWNvbG9yLWxpbmstYWN0aXZlOnZhcigtLWNvbG9yLXR2LWJsdWUtNzAwKTstLWNvbG9yLWxpc3QtbnRoLWNoaWxkLWJnOnZhcigtLWNvbG9yLWNvbGQtZ3JheS01MCk7LS1jb2xvci1wYW5lLWJnOnZhcigtLWNvbG9yLXdoaXRlKTstLWNvbG9yLXBhbmUtc2Vjb25kYXJ5LWJnOnZhcigtLWNvbG9yLWNvbGQtZ3JheS0xMDApOy0tY29sb3ItcG9wdXAtbWVudS1pdGVtLWhvdmVyLWJnOnZhcigtLWNvbG9yLWNvbGQtZ3JheS0xMDApOy0tY29sb3ItcG9wdXAtbWVudS1zZXBhcmF0b3I6dmFyKC0tY29sb3ItY29sZC1ncmF5LTE1MCk7LS1jb2xvci1wcmltYXJ5LXN5bWJvbDp2YXIoLS1jb2xvci1za3ktYmx1ZS01MDApOy0tY29sb3Itc2NyZWVuZXItZGVzY3JpcHRpb246dmFyKC0tY29sb3ItY29sZC1ncmF5LTY1MCk7LS1jb2xvci1zdWNjZXNzOnZhcigtLWNvbG9yLW1pbnR5LWdyZWVuLTUwMCk7LS1jb2xvci1zdWNjZXNzLWhvdmVyOnZhcigtLWNvbG9yLW1pbnR5LWdyZWVuLTYwMCk7LS1jb2xvci1zdWNjZXNzLWFjdGl2ZTp2YXIoLS1jb2xvci1taW50eS1ncmVlbi03MDApOy0tY29sb3ItdG9vbGJhci1idXR0b24tdGV4dDp2YXIoLS1jb2xvci1jb2xkLWdyYXktOTAwKTstLWNvbG9yLXRvb2xiYXItYnV0dG9uLXRleHQtaG92ZXI6dmFyKC0tY29sb3ItY29sZC1ncmF5LTkwMCk7LS1jb2xvci10b29sYmFyLWJ1dHRvbi10ZXh0LWFjdGl2ZTp2YXIoLS1jb2xvci10di1ibHVlLTUwMCk7LS1jb2xvci10b29sYmFyLWJ1dHRvbi10ZXh0LWFjdGl2ZS1ob3Zlcjp2YXIoLS1jb2xvci10di1ibHVlLTYwMCk7LS1jb2xvci10b29sYmFyLWJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyOnZhcigtLWNvbG9yLWNvbGQtZ3JheS0xMDApOy0tY29sb3ItdG9vbGJhci1idXR0b24tYmFja2dyb3VuZC1zZWNvbmRhcnktaG92ZXI6dmFyKC0tY29sb3ItY29sZC1ncmF5LTE1MCk7LS1jb2xvci10b29sYmFyLWJ1dHRvbi1iYWNrZ3JvdW5kLWFjdGl2ZTp2YXIoLS1jb2xvci10di1ibHVlLTUwKTstLWNvbG9yLXRvb2xiYXItYnV0dG9uLWJhY2tncm91bmQtYWN0aXZlLWhvdmVyOnZhcigtLWNvbG9yLXR2LWJsdWUtMTAwKTstLWNvbG9yLXRvb2xiYXItdG9nZ2xlLWJ1dHRvbi1iYWNrZ3JvdW5kLWFjdGl2ZTp2YXIoLS1jb2xvci10di1ibHVlLTUwMCk7LS1jb2xvci10b29sYmFyLXRvZ2dsZS1idXR0b24tYmFja2dyb3VuZC1hY3RpdmUtaG92ZXI6dmFyKC0tY29sb3ItdHYtYmx1ZS02MDApOy0tY29sb3ItdG9vbGJhci10b2dnbGUtYnV0dG9uLWljb246dmFyKC0tY29sb3ItY29sZC1ncmF5LTIwMCk7LS1jb2xvci10b29sYmFyLWludGVyYWN0aXZlLWVsZW1lbnQtdGV4dC1ub3JtYWw6dmFyKC0tY29sb3ItY29sZC1ncmF5LTkwMCk7LS1jb2xvci10b29sYmFyLW9wZW5lZC1lbGVtZW50LWJnOnZhcigtLWNvbG9yLWNvbGQtZ3JheS0xMDApOy0tY29sb3ItdG9vbGJhci1kaXZpZGVyLWJhY2tncm91bmQ6dmFyKC0tY29sb3ItY29sZC1ncmF5LTE1MCk7LS1jb2xvci1wb3B1cC1iYWNrZ3JvdW5kOnZhcigtLWNvbG9yLXdoaXRlKTstLWNvbG9yLXBvcHVwLWVsZW1lbnQtdGV4dDp2YXIoLS1jb2xvci1jb2xkLWdyYXktOTAwKTstLWNvbG9yLXBvcHVwLWVsZW1lbnQtdGV4dC1ob3Zlcjp2YXIoLS1jb2xvci1jb2xkLWdyYXktOTAwKTstLWNvbG9yLXBvcHVwLWVsZW1lbnQtYmFja2dyb3VuZC1ob3Zlcjp2YXIoLS1jb2xvci1jb2xkLWdyYXktMTAwKTstLWNvbG9yLXBvcHVwLWVsZW1lbnQtc2Vjb25kYXJ5LXRleHQ6dmFyKC0tY29sb3ItY29sZC1ncmF5LTUwMCk7LS1jb2xvci1wb3B1cC1lbGVtZW50LWhpbnQtdGV4dDp2YXIoLS1jb2xvci1jb2xkLWdyYXktNDAwKTstLWNvbG9yLXBvcHVwLWVsZW1lbnQtdGV4dC1hY3RpdmU6dmFyKC0tY29sb3Itd2hpdGUpOy0tY29sb3ItcG9wdXAtZWxlbWVudC1iYWNrZ3JvdW5kLWFjdGl2ZTp2YXIoLS1jb2xvci10di1ibHVlLTUwMCk7LS1jb2xvci1wb3B1cC1lbGVtZW50LXRvb2xib3gtdGV4dDp2YXIoLS1jb2xvci1jb2xkLWdyYXktNTAwKTstLWNvbG9yLXBvcHVwLWVsZW1lbnQtdG9vbGJveC10ZXh0LWhvdmVyOnZhcigtLWNvbG9yLWNvbGQtZ3JheS05MDApOy0tY29sb3ItcG9wdXAtZWxlbWVudC10b29sYm94LXRleHQtYWN0aXZlLWhvdmVyOnZhcigtLWNvbG9yLXR2LWJsdWUtMjAwKTstLWNvbG9yLXBvcHVwLWVsZW1lbnQtdG9vbGJveC1iYWNrZ3JvdW5kLWhvdmVyOnZhcigtLWNvbG9yLWNvbGQtZ3JheS0xNTApOy0tY29sb3ItcG9wdXAtZWxlbWVudC10b29sYm94LWJhY2tncm91bmQtYWN0aXZlLWhvdmVyOnZhcigtLWNvbG9yLXR2LWJsdWUtNzAwKTstLWNvbG9yLXRvb2x0aXAtYmc6dmFyKC0tY29sb3ItY29sZC1ncmF5LTgwMCk7LS1jb2xvci10di1kaWFsb2ctY2FwdGlvbjp2YXIoLS1jb2xvci1jb2xkLWdyYXktNjUwKTstLWNvbG9yLXR2LWRyb3Bkb3duLWl0ZW0taG92ZXItYmc6dmFyKC0tY29sb3ItY29sZC1ncmF5LTEwMCk7LS1jb2xvci11bmRlcmxpbmVkLXRleHQ6dmFyKC0tY29sb3ItY29sZC1ncmF5LTU1MCk7LS1jb2xvci13aWRnZXQtcGFnZXMtYmc6dmFyKC0tY29sb3Itd2hpdGUpOy0tY29sb3Itd2FybmluZzp2YXIoLS1jb2xvci10YW4tb3JhbmdlLTUwMCk7LS1jb2xvci1ncm93aW5nOnZhcigtLWNvbG9yLW1pbnR5LWdyZWVuLTUwMCk7LS1jb2xvci1mYWxsaW5nOnZhcigtLWNvbG9yLXJpcGUtcmVkLTUwMCk7LS1jb2xvci1mb3JleC1pY29uOnZhcigtLWNvbG9yLWNvbGQtZ3JheS03NTApOy0tY29sb3ItbGlzdC1pdGVtLWFjdGl2ZS1iZzp2YXIoLS1jb2xvci10di1ibHVlLTQwMCk7LS1jb2xvci1saXN0LWl0ZW0taG92ZXItYmc6dmFyKC0tY29sb3ItdHYtYmx1ZS01MCk7LS1jb2xvci1saXN0LWl0ZW0tdGV4dDp2YXIoLS1jb2xvci1jb2xkLWdyYXktODAwKTstLWNvbG9yLXByaWNlLWF4aXMtbGFiZWwtYmFjazp2YXIoLS1jb2xvci1jb2xkLWdyYXktMTUwKTstLWNvbG9yLXByaWNlLWF4aXMtbGFiZWwtdGV4dDp2YXIoLS1jb2xvci1jb2xkLWdyYXktNjUwKTstLWNvbG9yLXByaWNlLWF4aXMtZ2Vhcjp2YXIoLS1jb2xvci1jb2xkLWdyYXktOTAwKTstLWNvbG9yLXByaWNlLWF4aXMtZ2Vhci1ob3Zlcjp2YXIoLS1jb2xvci1ibGFjayk7LS1jb2xvci1wcmljZS1heGlzLWhpZ2hsaWdodDp2YXIoLS1jb2xvci1jb2xkLWdyYXktMTUwKTstLWNvbG9yLWJpZDp2YXIoLS1jb2xvci10di1ibHVlLTUwMCk7LS1jb2xvci1ib3JkZXI6dmFyKC0tY29sb3ItY29sZC1ncmF5LTE1MCk7LS1jb2xvci1ib3JkZXItY2hhdC1maWVsZHM6dmFyKC0tY29sb3ItY29sZC1ncmF5LTI1MCk7LS1jb2xvci1ib3JkZXItaG92ZXI6dmFyKC0tY29sb3ItY29sZC1ncmF5LTI1MCk7LS1jb2xvci1idXR0b24taG92ZXItYmc6dmFyKC0tY29sb3ItY29sZC1ncmF5LTE1MCk7LS1jb2xvci1kZXB0aHJlbmRlcmVyLWZpbGwtc3R5bGU6dmFyKC0tY29sb3ItY29sZC1ncmF5LTY1MCk7LS1jb2xvci1kaXNhYmxlZC1ib3JkZXItYW5kLWNvbG9yOnZhcigtLWNvbG9yLWNvbGQtZ3JheS0xNTApOy0tY29sb3ItZGlzYWJsZWQtaW5wdXQ6dmFyKC0tY29sb3ItY29sZC1ncmF5LTE1MCk7LS1jb2xvci1lbXB0eS1jb250YWluZXItbWVzc2FnZTp2YXIoLS1jb2xvci1jb2xkLWdyYXktNTUwKTstLWNvbG9yLWljb25zOnZhcigtLWNvbG9yLWNvbGQtZ3JheS01NTApOy0tY29sb3ItaW5wdXQtdGV4dGFyZWEtcmVhZG9ubHk6dmFyKC0tY29sb3ItY29sZC1ncmF5LTY1MCk7LS1jb2xvci1pbnB1dC1wbGFjZWhvbGRlci10ZXh0OnZhcigtLWNvbG9yLWNvbGQtZ3JheS0zNTApOy0tY29sb3ItaXRlbS1hY3RpdmUtYmx1ZTp2YXIoLS1jb2xvci10di1ibHVlLTUwKTstLWNvbG9yLWl0ZW0taG92ZXItYWN0aXZlLWJnOnZhcigtLWNvbG9yLXR2LWJsdWUtMTAwKTstLWNvbG9yLWl0ZW0taG92ZXItYmc6dmFyKC0tY29sb3ItdHYtYmx1ZS0xMDApOy0tY29sb3ItaXRlbS1ob3Zlci1ibHVlOnZhcigtLWNvbG9yLXR2LWJsdWUtMTAwKTstLWNvbG9yLWl0ZW0tc2VsZWN0ZWQtYmx1ZTp2YXIoLS1jb2xvci10di1ibHVlLTUwKTstLWNvbG9yLWl0ZW0tYWN0aXZlLXRleHQ6dmFyKC0tY29sb3Itd2hpdGUpOy0tY29sb3ItaXRlbS1hY3RpdmUtYmc6dmFyKC0tY29sb3ItdHYtYmx1ZS01MDApOy0tY29sb3ItbGlzdC1pdGVtOnZhcigtLWNvbG9yLWNvbGQtZ3JheS01NTApOy0tY29sb3ItbmV3cy1oaWdobGlnaHQ6dmFyKC0tY29sb3ItdHYtYmx1ZS0xMDApOy0tY29sb3ItcGxhY2Vob2xkZXI6dmFyKC0tY29sb3ItY29sZC1ncmF5LTM1MCk7LS1jb2xvci1yb3ctaG92ZXItYWN0aXZlLWJnOnZhcigtLWNvbG9yLWNvbGQtZ3JheS0xMDApOy0tY29sb3Itc2Itc2Nyb2xsYmFyLWJvZHktYmc6dmFyKC0tY29sb3ItY29sZC1ncmF5LTIwMCk7LS1jb2xvci1zZWN0aW9uLXNlcGFyYXRvci1ib3JkZXI6dmFyKC0tY29sb3ItY29sZC1ncmF5LTMwMCk7LS1jb2xvci1zZXBhcmF0b3ItdGFibGUtY2hhdDp2YXIoLS1jb2xvci1jb2xkLWdyYXktMTUwKTstLWNvbG9yLXRhZy1hY3RpdmUtYmc6dmFyKC0tY29sb3ItY29sZC1ncmF5LTIwMCk7LS1jb2xvci10YWctaG92ZXItYmc6dmFyKC0tY29sb3ItY29sZC1ncmF5LTE1MCk7LS1jb2xvci10ZXh0LXJlZ3VsYXI6dmFyKC0tY29sb3ItY29sZC1ncmF5LTcwMCk7LS1jb2xvci10di1idXR0b24tY2hlY2tlZDp2YXIoLS1jb2xvci1jb2xkLWdyYXktNTUwKTstLWNvbG9yLXNjcm9sbC1iZzp2YXIoLS1jb2xvci1jb2xkLWdyYXktNDAwKTstLWNvbG9yLXNjcm9sbC1ib3JkZXI6dmFyKC0tY29sb3ItY29sZC1ncmF5LTEwMCk7LS1jb2xvci13aWRnZXQtYm9yZGVyOnZhcigtLWNvbG9yLWNvbGQtZ3JheS0xMDApOy0tY29sb3Itc2Nyb2xsLWJ1dHRvbnMtYXJyb3c6dmFyKC0tY29sb3Itd2hpdGUpOy0tY29sb3ItY29udHJvbC1pbnRlbnQtZGVmYXVsdDp2YXIoLS1jb2xvci1jb2xkLWdyYXktMjAwKTstLWNvbG9yLWNvbnRyb2wtaW50ZW50LXN1Y2Nlc3M6dmFyKC0tY29sb3ItbWludHktZ3JlZW4tNTAwKTstLWNvbG9yLWNvbnRyb2wtaW50ZW50LXByaW1hcnk6dmFyKC0tY29sb3ItdHYtYmx1ZS01MDApOy0tY29sb3ItY29udHJvbC1pbnRlbnQtd2FybmluZzp2YXIoLS1jb2xvci10YW4tb3JhbmdlLTUwMCk7LS1jb2xvci1jb250cm9sLWludGVudC1kYW5nZXI6dmFyKC0tY29sb3ItcmlwZS1yZWQtNTAwKTstLWNvbG9yLWdvdG8tbGFiZWwtYmFja2dyb3VuZDp2YXIoLS1jb2xvci1jb2xkLWdyYXktODAwKTstLWNvbG9yLXByZS1tYXJrZXQ6dmFyKC0tY29sb3ItdGFuLW9yYW5nZS02MDApOy0tY29sb3ItcG9zdC1tYXJrZXQ6dmFyKC0tY29sb3ItdHYtYmx1ZS01MDApOy0tY29sb3Itbm90YWNjdXJhdGUtbW9kZTp2YXIoLS1jb2xvci1iZXJyeS1waW5rLTYwMCk7LS1jb2xvci1kZWxheS1tb2RlOnZhcigtLWNvbG9yLXRhbi1vcmFuZ2UtNzAwKTstLWNvbG9yLWRlbGF5LW1vZGUtYmc6dmFyKC0tY29sb3ItdGFuLW9yYW5nZS00MDApOy0tY29sb3ItbGlzdC1pdGVtLWJnLWhpZ2hsaWdodGVkOnZhcigtLWNvbG9yLXR2LWJsdWUtNTApOy0tY29sb3ItbGlzdC1pdGVtLWJnLXNlbGVjdGVkOnZhcigtLWNvbG9yLXR2LWJsdWUtMTAwKTstLWNvbG9yLWxpc3QtaXRlbS1iZy1oaWdobGlnaHRlZC1ob3Zlcjp2YXIoLS1jb2xvci10di1ibHVlLTEwMCk7LS1jb2xvci1saXN0LWl0ZW0tYmctc2VsZWN0ZWQtaG92ZXI6dmFyKC0tY29sb3ItdHYtYmx1ZS0yMDApOy0tY29sb3Itc2NyZWVuZXItaGVhZGVyLWJnOnZhcigtLWNvbG9yLXdoaXRlKTstLWNvbG9yLXNjcmVlbmVyLWhlYWRlci1iZy1ob3Zlcjp2YXIoLS1jb2xvci1jb2xkLWdyYXktMTAwKTstLWNvbG9yLW1hcmtlci1mbGFnZ2VkOnZhcigtLWNvbG9yLXJpcGUtcmVkLTQwMCk7LS1jb2xvci1tYXJrZXItZmxhZ2dlZC1ob3ZlcmVkOnZhcigtLWNvbG9yLXJpcGUtcmVkLTYwMCk7LS1jb2xvci1hc2s6dmFyKC0tY29sb3ItcmlwZS1yZWQtNDAwKTstLWNvbG9yLXNlbGw6dmFyKC0tY29sb3ItcmlwZS1yZWQtNDAwKTstLWNvbG9yLWJ1eTp2YXIoLS1jb2xvci10di1ibHVlLTUwMCk7LS1jb2xvci1uZXV0cmFsOnZhcigtLWNvbG9yLWNvbGQtZ3JheS01NTApOy0tY29sb3ItcHJvOnZhcigtLWNvbG9yLW1pbnR5LWdyZWVuLTQwMCk7LS1jb2xvci1wcm8taG92ZXI6dmFyKC0tY29sb3ItbWludHktZ3JlZW4tNjAwKTstLWNvbG9yLXByby1wbHVzOnZhcigtLWNvbG9yLXR2LWJsdWUtNTAwKTstLWNvbG9yLXByby1wbHVzLWhvdmVyOnZhcigtLWNvbG9yLXR2LWJsdWUtNjAwKTstLWNvbG9yLXByby1wcmVtaXVtOnZhcigtLWNvbG9yLXRhbi1vcmFuZ2UtNTAwKTstLWNvbG9yLXByby1wcmVtaXVtLWhvdmVyOnZhcigtLWNvbG9yLXRhbi1vcmFuZ2UtNzAwKTstLWNvbG9yLXRyaWFsOnZhcigtLWNvbG9yLWNvbGQtZ3JheS01NTApOy0tY29sb3ItdHJpYWwtaG92ZXI6dmFyKC0tY29sb3ItY29sZC1ncmF5LTU1MCk7LS1jb2xvci1tb2Q6dmFyKC0tY29sb3ItcmlwZS1yZWQtNDAwKTstLWNvbG9yLW1vZC1ob3Zlcjp2YXIoLS1jb2xvci1yaXBlLXJlZC02MDApOy0tY29sb3ItYWQ6dmFyKC0tY29sb3ItdGFuLW9yYW5nZS01MDApOy0tY29sb3ItYnJva2VyLWZlYXR1cmVkOnZhcigtLWNvbG9yLW1pbnR5LWdyZWVuLTQwMCk7LS1jb2xvci1icm9rZXItZmVhdHVyZWQtaG92ZXI6dmFyKC0tY29sb3ItbWludHktZ3JlZW4tNjAwKTstLWNvbG9yLWFsZXJ0LXN0YXR1cy1hY3RpdmU6dmFyKC0tY29sb3ItbWludHktZ3JlZW4tNTAwKTstLWNvbG9yLWFsZXJ0LXN0YXR1cy1zdG9wcGVkOnZhcigtLWNvbG9yLXJpcGUtcmVkLTUwMCk7LS1jb2xvci1hbGVydC1zdGF0dXMtdHJpZ2dlcmVkOnZhcigtLWNvbG9yLXRhbi1vcmFuZ2UtNTAwKTstLWNvbG9yLW92ZXJsYXk6dmFyKC0tY29sb3ItY29sZC1ncmF5LTQwMCk7LS1jb2xvci1zZWFyY2gtYnV0dG9uLWhvdmVyOnZhcigtLWNvbG9yLWNvbGQtZ3JheS0xNTApOy0tY29sb3ItYm9vc3QtYnV0dG9uLWNvbnRlbnQtc2VsZWN0ZWQ6dmFyKC0tY29sb3ItdHYtYmx1ZS02MDApOy0tY29sb3ItYm9vc3QtYnV0dG9uLWNvbnRlbnQtaG92ZXI6dmFyKC0tY29sb3ItY29sZC1ncmF5LTkwMCk7LS1jb2xvci1ib29zdC1idXR0b24tYmctaG92ZXI6dmFyKC0tY29sb3ItY29sZC1ncmF5LTE1MCk7LS1jb2xvci1ib29zdC1idXR0b24tYm9yZGVyLWhvdmVyOnZhcigtLWNvbG9yLWNvbGQtZ3JheS0xNTApOy0tY29sb3ItYm9vc3QtYnV0dG9uLWJvcmRlci1kZWZhdWx0OnZhcigtLWNvbG9yLWNvbGQtZ3JheS0xNTApOy0tY29sb3ItY29tbW9uLXRvb2x0aXAtdGV4dDp2YXIoLS1jb2xvci1jb2xkLWdyYXktMTAwKTstLWNvbG9yLXJlcGxheS1kYXRhLW1vZGU6dmFyKC0tY29sb3ItcmlwZS1yZWQtNDAwKTstLWNvbG9yLWxlZ2FjeS1zdWNjZXNzOnZhcigtLWNvbG9yLW1pbnR5LWdyZWVuLTMwMCk7LS1jb2xvci1jb2xsYXBzZS10YWJzLWJvcmRlcjp2YXIoLS1jb2xvci1jb2xkLWdyYXktMTAwKTstLWNvbG9yLXNpdGUtd2lkZ2V0LWhvdmVyOnZhcigtLWNvbG9yLWNvbGQtZ3JheS01MCk7LS1jb2xvci1hdHRlbnRpb246dmFyKC0tY29sb3ItYmFuYW5hLXllbGxvdy03MDApOy0tY29sb3IteC10d2l0dGVyLWNvbnRlbnQ6dmFyKC0tY29sb3ItY29sZC1ncmF5LTkwMCk7LS1jb2xvci1jYXJkLWJvcmRlcjp2YXIoLS1jb2xvci1jb2xkLWdyYXktMTUwKTstLWNvbG9yLWNhcmQtYm9yZGVyLWhvdmVyOnZhcigtLWNvbG9yLWNvbGQtZ3JheS0zMDApOy0tY29sb3ItYmFja2dyb3VuZC1zcGVjaWFsLXByaW1hcnk6dmFyKC0tY29sb3Itd2hpdGUpOy0tY29sb3Itc3Ryb2tlLXNwZWNpYWwtcHJpbWFyeTp2YXIoLS1jb2xvci1jb2xkLWdyYXktMTUwKTstLWNvbG9yLXNlbGVjdGlvbi1iZzp2YXIoLS1jb2xvci10di1ibHVlLTEwMCk7LS1jb2xvci1kZWZhdWx0LWdyYXk6dmFyKC0tY29sb3ItY29sZC1ncmF5LTU1MCk7LS1jb2xvci1mZWF0dXJlZC1icm9rZXItYmFkZ2UtYmc6dmFyKC0tY29sb3ItY29sZC1ncmF5LTkwMCk7LS1jb2xvci1mZWF0dXJlZC1icm9rZXItYmFkZ2UtYmctaG92ZXI6dmFyKC0tY29sb3ItY29sZC1ncmF5LTgwMCk7LS1jb2xvci1mZWF0dXJlZC1icm9rZXItYmFkZ2UtdGV4dDp2YXIoLS1jb2xvci13aGl0ZSk7LS1jb2xvci1iYWNrZ3JvdW5kLXByaW1hcnk6dmFyKC0tY29sb3Itd2hpdGUpOy0tY29sb3ItYmFja2dyb3VuZC1zZWNvbmRhcnk6dmFyKC0tY29sb3ItY29sZC1ncmF5LTUwKTstLWNvbG9yLWJhY2tncm91bmQtdGVydGlhcnk6dmFyKC0tY29sb3ItY29sZC1ncmF5LTEwMCk7LS1jb2xvci1iYWNrZ3JvdW5kLWRhcmstcHJpbWFyeTp2YXIoLS1jb2xvci1jb2xkLWdyYXktODAwKTstLWNvbG9yLWJhY2tncm91bmQtZGFyay1zZWNvbmRhcnk6dmFyKC0tY29sb3Itd2hpdGUpOy0tY29sb3ItYmFja2dyb3VuZC1kaXNhYmxlZDp2YXIoLS1jb2xvci1jb2xkLWdyYXktMTUwKTstLWNvbG9yLWJhY2tncm91bmQtc3BlY2lhbC1zZWNvbmRhcnk6dmFyKC0tY29sb3ItdHYtYmx1ZS01MCk7LS1jb2xvci1iYWNrZ3JvdW5kLXNwZWNpYWwtdGVydGlhcnk6dmFyKC0tY29sb3ItdHYtYmx1ZS0xMDApOy0tY29sb3ItYmFja2dyb3VuZC1wYWdlLXBsYXRmb3JtOnZhcigtLWNvbG9yLXdoaXRlKTstLWNvbG9yLWJhY2tncm91bmQtcGFnZS1wcm9tbzp2YXIoLS1jb2xvci1ibGFjayk7LS1jb2xvci1iYWNrZ3JvdW5kLXBhZ2Utc29jaWFsOnZhcigtLWNvbG9yLXdoaXRlKTstLWNvbG9yLWJhY2tncm91bmQtZGlhbG9nLXNpbXBsZTp2YXIoLS1jb2xvci13aGl0ZSk7LS1jb2xvci1iYWNrZ3JvdW5kLWRpYWxvZy1jb21wbGljYXRlZDp2YXIoLS1jb2xvci13aGl0ZSk7LS1jb2xvci1iYWNrZ3JvdW5kLWRpYWxvZy1wcm9tbzp2YXIoLS1jb2xvci13aGl0ZSk7LS1jb2xvci1iYWNrZ3JvdW5kLWRpYWxvZy1mdWxsc2NyZWVuOnZhcigtLWNvbG9yLXdoaXRlKTstLWNvbG9yLWNvbnRlbnQtaWNvbnMtcHJpbWFyeTp2YXIoLS1jb2xvci1jb2xkLWdyYXktOTAwKTstLWNvbG9yLWNvbnRlbnQtaWNvbnMtc2Vjb25kYXJ5OnZhcigtLWNvbG9yLWNvbGQtZ3JheS01NTApOy0tY29sb3ItY29udGVudC1pY29ucy10ZXJ0aWFyeTp2YXIoLS1jb2xvci1jb2xkLWdyYXktMzAwKTstLWNvbG9yLWNvbnRlbnQtdGV4dC1wcm9tby1wcmltYXJ5OnZhcigtLWNvbG9yLXdoaXRlKTstLWNvbG9yLWNvbnRlbnQtdGV4dC1wcm9tby1zZWNvbmRhcnk6dmFyKC0tY29sb3ItY29sZC1ncmF5LTIwMCk7LS1jb2xvci1jb250ZW50LXRleHQtcHJvbW8tdGVydGlhcnk6dmFyKC0tY29sb3ItY29sZC1ncmF5LTQ1MCk7LS1jb2xvci1jb250ZW50LXRleHQtc29jaWFsLXByaW1hcnk6dmFyKC0tY29sb3ItY29sZC1ncmF5LTkwMCk7LS1jb2xvci1jb250ZW50LXRleHQtc29jaWFsLXNlY29uZGFyeTp2YXIoLS1jb2xvci1jb2xkLWdyYXktNTUwKTstLWNvbG9yLWNvbnRlbnQtdGV4dC1zb2NpYWwtdGVydGlhcnk6dmFyKC0tY29sb3ItY29sZC1ncmF5LTMwMCk7LS1jb2xvci1kaXZpZGVyLWxpbmUtcHJpbWFyeS1zcGVjaWFsOnZhcigtLWNvbG9yLWNvbGQtZ3JheS05MDApOy0tY29sb3ItZGl2aWRlci1saW5lLXNlY29uZGFyeS1zcGVjaWFsOnZhcigtLWNvbG9yLXR2LWJsdWUtMTAwKTstLWNvbG9yLWRpdmlkZXItbGluZS1wcmltYXJ5OnZhcigtLWNvbG9yLWNvbGQtZ3JheS0xNTApOy0tY29sb3ItZGl2aWRlci1saW5lLXNlY29uZGFyeTp2YXIoLS1jb2xvci1jb2xkLWdyYXktMTAwKTstLWNvbG9yLWxpbmstcHJpbWFyeS1kZWZhdWx0OnZhcigtLWNvbG9yLXR2LWJsdWUtNTAwKTstLWNvbG9yLWxpbmstcHJpbWFyeS1ob3Zlcjp2YXIoLS1jb2xvci10di1ibHVlLTYwMCk7LS1jb2xvci1saW5rLXByaW1hcnktYWN0aXZlOnZhcigtLWNvbG9yLXR2LWJsdWUtNzAwKTstLWNvbG9yLWxpbmstc2Vjb25kYXJ5LWRlZmF1bHQ6dmFyKC0tY29sb3ItdHYtYmx1ZS0zMDApOy0tY29sb3ItbGluay1zZWNvbmRhcnktaG92ZXI6dmFyKC0tY29sb3ItdHYtYmx1ZS00MDApOy0tY29sb3ItbGluay1zZWNvbmRhcnktYWN0aXZlOnZhcigtLWNvbG9yLXR2LWJsdWUtNTAwKTstLWNvbG9yLXN0YXRpYy10cmFuc3BhcmVudDp2YXIoLS1jb2xvci10cmFuc3BhcmVudCk7LS1jb2xvci1zdGF0aWMtd2FybmluZzp2YXIoLS1jb2xvci10YW4tb3JhbmdlLTUwMCk7LS1jb2xvci1zdGF0aWMtZGFuZ2VyOnZhcigtLWNvbG9yLXJpcGUtcmVkLTUwMCk7LS1jb2xvci1zdGF0aWMtaGlnaGxpZ2h0OnZhcigtLWNvbG9yLXR2LWJsdWUtNTApOy0tY29sb3Itc3RhdGljLW5ldXRyYWw6dmFyKC0tY29sb3ItY29sZC1ncmF5LTU1MCk7LS1jb2xvci1zdGF0aWMtc3VjY2Vzczp2YXIoLS1jb2xvci1taW50eS1ncmVlbi01MDApOy0tY29sb3ItYnV0dG9uLWNvbnRlbnQtZGlzYWJsZWQ6dmFyKC0tY29sb3ItY29sZC1ncmF5LTMwMCk7LS1jb2xvci1idXR0b24tY29udGVudC1naG9zdC1uZXV0cmFsLWJvbGQtZGVmYXVsdDp2YXIoLS1jb2xvci1jb2xkLWdyYXktOTAwKTstLWNvbG9yLWJ1dHRvbi1jb250ZW50LWdob3N0LW5ldXRyYWwtYm9sZC1ob3Zlcjp2YXIoLS1jb2xvci1jb2xkLWdyYXktOTAwKTstLWNvbG9yLWJ1dHRvbi1jb250ZW50LWdob3N0LW5ldXRyYWwtYm9sZC1hY3RpdmU6dmFyKC0tY29sb3Itd2hpdGUpOy0tY29sb3ItYnV0dG9uLWNvbnRlbnQtZ2hvc3QtYWNjZW50LWRlZmF1bHQ6dmFyKC0tY29sb3ItdHYtYmx1ZS01MDApOy0tY29sb3ItYnV0dG9uLWNvbnRlbnQtZ2hvc3QtYWNjZW50LWhvdmVyOnZhcigtLWNvbG9yLXR2LWJsdWUtNTAwKTstLWNvbG9yLWJ1dHRvbi1jb250ZW50LWdob3N0LWFjY2VudC1hY3RpdmU6dmFyKC0tY29sb3Itd2hpdGUpOy0tY29sb3ItYnV0dG9uLWNvbnRlbnQtZ2hvc3QtbmV1dHJhbC1kZWZhdWx0OnZhcigtLWNvbG9yLWNvbGQtZ3JheS05MDApOy0tY29sb3ItYnV0dG9uLWNvbnRlbnQtZ2hvc3QtbmV1dHJhbC1ob3Zlcjp2YXIoLS1jb2xvci1jb2xkLWdyYXktOTAwKTstLWNvbG9yLWJ1dHRvbi1jb250ZW50LWdob3N0LW5ldXRyYWwtYWN0aXZlOnZhcigtLWNvbG9yLWNvbGQtZ3JheS05MDApOy0tY29sb3ItYnV0dG9uLWNvbnRlbnQtZ2hvc3QtbmV1dHJhbC1pcy1zZWxlY3RlZDp2YXIoLS1jb2xvci1jb2xkLWdyYXktOTAwKTstLWNvbG9yLWJ1dHRvbi1jb250ZW50LXByaW1hcnktbmV1dHJhbC1ib2xkLWRlZmF1bHQ6dmFyKC0tY29sb3Itd2hpdGUpOy0tY29sb3ItYnV0dG9uLWNvbnRlbnQtcHJpbWFyeS1uZXV0cmFsLWJvbGQtaG92ZXI6dmFyKC0tY29sb3Itd2hpdGUpOy0tY29sb3ItYnV0dG9uLWNvbnRlbnQtcHJpbWFyeS1uZXV0cmFsLWJvbGQtYWN0aXZlOnZhcigtLWNvbG9yLXdoaXRlKTstLWNvbG9yLWJ1dHRvbi1jb250ZW50LXByaW1hcnktYWNjZW50LWRlZmF1bHQ6dmFyKC0tY29sb3Itd2hpdGUpOy0tY29sb3ItYnV0dG9uLWNvbnRlbnQtcHJpbWFyeS1hY2NlbnQtaG92ZXI6dmFyKC0tY29sb3Itd2hpdGUpOy0tY29sb3ItYnV0dG9uLWNvbnRlbnQtcHJpbWFyeS1hY2NlbnQtYWN0aXZlOnZhcigtLWNvbG9yLXdoaXRlKTstLWNvbG9yLWJ1dHRvbi1jb250ZW50LXByaW1hcnktbmV1dHJhbC1kZWZhdWx0OnZhcigtLWNvbG9yLWNvbGQtZ3JheS05MDApOy0tY29sb3ItYnV0dG9uLWNvbnRlbnQtcHJpbWFyeS1uZXV0cmFsLWhvdmVyOnZhcigtLWNvbG9yLWNvbGQtZ3JheS05MDApOy0tY29sb3ItYnV0dG9uLWNvbnRlbnQtcHJpbWFyeS1uZXV0cmFsLWFjdGl2ZTp2YXIoLS1jb2xvci1jb2xkLWdyYXktOTAwKTstLWNvbG9yLWJ1dHRvbi1jb250ZW50LXByaW1hcnktbmV1dHJhbC1pcy1zZWxlY3RlZDp2YXIoLS1jb2xvci1jb2xkLWdyYXktOTAwKTstLWNvbG9yLWJ1dHRvbi1jb250ZW50LXByaW1hcnktc3VjY2Vzcy1kZWZhdWx0OnZhcigtLWNvbG9yLXdoaXRlKTstLWNvbG9yLWJ1dHRvbi1jb250ZW50LXByaW1hcnktc3VjY2Vzcy1ob3Zlcjp2YXIoLS1jb2xvci13aGl0ZSk7LS1jb2xvci1idXR0b24tY29udGVudC1wcmltYXJ5LXN1Y2Nlc3MtYWN0aXZlOnZhcigtLWNvbG9yLXdoaXRlKTstLWNvbG9yLWJ1dHRvbi1jb250ZW50LXByaW1hcnktYWNjZW50LWxpZ2h0LWRlZmF1bHQ6dmFyKC0tY29sb3ItdHYtYmx1ZS02MDApOy0tY29sb3ItYnV0dG9uLWNvbnRlbnQtcHJpbWFyeS1hY2NlbnQtbGlnaHQtaG92ZXI6dmFyKC0tY29sb3ItdHYtYmx1ZS02MDApOy0tY29sb3ItYnV0dG9uLWNvbnRlbnQtcHJpbWFyeS1hY2NlbnQtbGlnaHQtYWN0aXZlOnZhcigtLWNvbG9yLXR2LWJsdWUtNjAwKTstLWNvbG9yLWJ1dHRvbi1jb250ZW50LXByaW1hcnktYWNjZW50LWxpZ2h0LWlzLXNlbGVjdGVkOnZhcigtLWNvbG9yLXR2LWJsdWUtNjAwKTstLWNvbG9yLWJ1dHRvbi1jb250ZW50LXByaW1hcnktZGFuZ2VyLWRlZmF1bHQ6dmFyKC0tY29sb3Itd2hpdGUpOy0tY29sb3ItYnV0dG9uLWNvbnRlbnQtcHJpbWFyeS1kYW5nZXItaG92ZXI6dmFyKC0tY29sb3Itd2hpdGUpOy0tY29sb3ItYnV0dG9uLWNvbnRlbnQtcHJpbWFyeS1kYW5nZXItYWN0aXZlOnZhcigtLWNvbG9yLXdoaXRlKTstLWNvbG9yLWJ1dHRvbi1jb250ZW50LXF1aWV0LXByaW1hcnktbmV1dHJhbC1ib2xkLWRlZmF1bHQ6dmFyKC0tY29sb3ItY29sZC1ncmF5LTkwMCk7LS1jb2xvci1idXR0b24tY29udGVudC1xdWlldC1wcmltYXJ5LW5ldXRyYWwtYm9sZC1ob3Zlcjp2YXIoLS1jb2xvci13aGl0ZSk7LS1jb2xvci1idXR0b24tY29udGVudC1xdWlldC1wcmltYXJ5LW5ldXRyYWwtYm9sZC1hY3RpdmU6dmFyKC0tY29sb3Itd2hpdGUpOy0tY29sb3ItYnV0dG9uLWNvbnRlbnQtcXVpZXQtcHJpbWFyeS1uZXV0cmFsLWRlZmF1bHQ6dmFyKC0tY29sb3ItY29sZC1ncmF5LTkwMCk7LS1jb2xvci1idXR0b24tY29udGVudC1xdWlldC1wcmltYXJ5LW5ldXRyYWwtaG92ZXI6dmFyKC0tY29sb3ItY29sZC1ncmF5LTkwMCk7LS1jb2xvci1idXR0b24tY29udGVudC1xdWlldC1wcmltYXJ5LW5ldXRyYWwtYWN0aXZlOnZhcigtLWNvbG9yLWNvbGQtZ3JheS05MDApOy0tY29sb3ItYnV0dG9uLWNvbnRlbnQtcXVpZXQtcHJpbWFyeS1uZXV0cmFsLWlzLXNlbGVjdGVkOnZhcigtLWNvbG9yLWNvbGQtZ3JheS05MDApOy0tY29sb3ItYnV0dG9uLWNvbnRlbnQtcXVpZXQtcHJpbWFyeS1hY2NlbnQtbGlnaHQtZGVmYXVsdDp2YXIoLS1jb2xvci10di1ibHVlLTUwMCk7LS1jb2xvci1idXR0b24tY29udGVudC1xdWlldC1wcmltYXJ5LWFjY2VudC1saWdodC1ob3Zlcjp2YXIoLS1jb2xvci10di1ibHVlLTUwMCk7LS1jb2xvci1idXR0b24tY29udGVudC1xdWlldC1wcmltYXJ5LWFjY2VudC1saWdodC1hY3RpdmU6dmFyKC0tY29sb3ItdHYtYmx1ZS01MDApOy0tY29sb3ItYnV0dG9uLWNvbnRlbnQtc2Vjb25kYXJ5LW5ldXRyYWwtYm9sZC1kZWZhdWx0OnZhcigtLWNvbG9yLWNvbGQtZ3JheS05MDApOy0tY29sb3ItYnV0dG9uLWNvbnRlbnQtc2Vjb25kYXJ5LW5ldXRyYWwtYm9sZC1ob3Zlcjp2YXIoLS1jb2xvci13aGl0ZSk7LS1jb2xvci1idXR0b24tY29udGVudC1zZWNvbmRhcnktbmV1dHJhbC1ib2xkLWFjdGl2ZTp2YXIoLS1jb2xvci13aGl0ZSk7LS1jb2xvci1idXR0b24tY29udGVudC1zZWNvbmRhcnktYWNjZW50LWRlZmF1bHQ6dmFyKC0tY29sb3ItdHYtYmx1ZS01MDApOy0tY29sb3ItYnV0dG9uLWNvbnRlbnQtc2Vjb25kYXJ5LWFjY2VudC1ob3Zlcjp2YXIoLS1jb2xvci13aGl0ZSk7LS1jb2xvci1idXR0b24tY29udGVudC1zZWNvbmRhcnktYWNjZW50LWFjdGl2ZTp2YXIoLS1jb2xvci13aGl0ZSk7LS1jb2xvci1idXR0b24tY29udGVudC1zZWNvbmRhcnktbmV1dHJhbC1kZWZhdWx0OnZhcigtLWNvbG9yLWNvbGQtZ3JheS05MDApOy0tY29sb3ItYnV0dG9uLWNvbnRlbnQtc2Vjb25kYXJ5LW5ldXRyYWwtaG92ZXI6dmFyKC0tY29sb3ItY29sZC1ncmF5LTkwMCk7LS1jb2xvci1idXR0b24tY29udGVudC1zZWNvbmRhcnktbmV1dHJhbC1hY3RpdmU6dmFyKC0tY29sb3ItY29sZC1ncmF5LTkwMCk7LS1jb2xvci1idXR0b24tY29udGVudC1zZWNvbmRhcnktbmV1dHJhbC1pcy1zZWxlY3RlZDp2YXIoLS1jb2xvci1jb2xkLWdyYXktOTAwKTstLWNvbG9yLWJ1dHRvbi1jb250ZW50LXNlY29uZGFyeS1zdWNjZXNzLWRlZmF1bHQ6dmFyKC0tY29sb3ItbWludHktZ3JlZW4tNTAwKTstLWNvbG9yLWJ1dHRvbi1jb250ZW50LXNlY29uZGFyeS1zdWNjZXNzLWhvdmVyOnZhcigtLWNvbG9yLXdoaXRlKTstLWNvbG9yLWJ1dHRvbi1jb250ZW50LXNlY29uZGFyeS1zdWNjZXNzLWFjdGl2ZTp2YXIoLS1jb2xvci13aGl0ZSk7LS1jb2xvci1idXR0b24tY29udGVudC1zZWNvbmRhcnktYWNjZW50LWxpZ2h0LWRlZmF1bHQ6dmFyKC0tY29sb3ItdHYtYmx1ZS02MDApOy0tY29sb3ItYnV0dG9uLWNvbnRlbnQtc2Vjb25kYXJ5LWFjY2VudC1saWdodC1ob3Zlcjp2YXIoLS1jb2xvci10di1ibHVlLTYwMCk7LS1jb2xvci1idXR0b24tY29udGVudC1zZWNvbmRhcnktYWNjZW50LWxpZ2h0LWFjdGl2ZTp2YXIoLS1jb2xvci10di1ibHVlLTYwMCk7LS1jb2xvci1idXR0b24tY29udGVudC1zZWNvbmRhcnktYWNjZW50LWxpZ2h0LWlzLXNlbGVjdGVkOnZhcigtLWNvbG9yLXR2LWJsdWUtNjAwKTstLWNvbG9yLWJ1dHRvbi1jb250ZW50LXNlY29uZGFyeS1kYW5nZXItZGVmYXVsdDp2YXIoLS1jb2xvci1yaXBlLXJlZC01MDApOy0tY29sb3ItYnV0dG9uLWNvbnRlbnQtc2Vjb25kYXJ5LWRhbmdlci1ob3Zlcjp2YXIoLS1jb2xvci13aGl0ZSk7LS1jb2xvci1idXR0b24tY29udGVudC1zZWNvbmRhcnktZGFuZ2VyLWFjdGl2ZTp2YXIoLS1jb2xvci13aGl0ZSk7LS1jb2xvci1idXR0b24tZmlsbF9ib3JkZXItZGlzYWJsZWQ6dmFyKC0tY29sb3ItY29sZC1ncmF5LTE1MCk7LS1jb2xvci1idXR0b24tZmlsbF9ib3JkZXItZ2hvc3QtbmV1dHJhbC1ib2xkLWRlZmF1bHQ6dmFyKC0tY29sb3Itc3RhdGljLXRyYW5zcGFyZW50KTstLWNvbG9yLWJ1dHRvbi1maWxsX2JvcmRlci1naG9zdC1uZXV0cmFsLWJvbGQtaG92ZXI6dmFyKC0tY29sb3ItY29sZC1ncmF5LTgwMCk7LS1jb2xvci1idXR0b24tZmlsbF9ib3JkZXItZ2hvc3QtbmV1dHJhbC1ib2xkLWFjdGl2ZTp2YXIoLS1jb2xvci1jb2xkLWdyYXktNzAwKTstLWNvbG9yLWJ1dHRvbi1maWxsX2JvcmRlci1naG9zdC1hY2NlbnQtZGVmYXVsdDp2YXIoLS1jb2xvci1zdGF0aWMtdHJhbnNwYXJlbnQpOy0tY29sb3ItYnV0dG9uLWZpbGxfYm9yZGVyLWdob3N0LWFjY2VudC1ob3Zlcjp2YXIoLS1jb2xvci10di1ibHVlLTUwMCk7LS1jb2xvci1idXR0b24tZmlsbF9ib3JkZXItZ2hvc3QtYWNjZW50LWFjdGl2ZTp2YXIoLS1jb2xvci10di1ibHVlLTcwMCk7LS1jb2xvci1idXR0b24tZmlsbF9ib3JkZXItZ2hvc3QtbmV1dHJhbC1kZWZhdWx0OnZhcigtLWNvbG9yLXN0YXRpYy10cmFuc3BhcmVudCk7LS1jb2xvci1idXR0b24tZmlsbF9ib3JkZXItZ2hvc3QtbmV1dHJhbC1ob3Zlcjp2YXIoLS1jb2xvci1jb2xkLWdyYXktMTAwKTstLWNvbG9yLWJ1dHRvbi1maWxsX2JvcmRlci1naG9zdC1uZXV0cmFsLWFjdGl2ZTp2YXIoLS1jb2xvci1jb2xkLWdyYXktMTUwKTstLWNvbG9yLWJ1dHRvbi1maWxsX2JvcmRlci1naG9zdC1uZXV0cmFsLWlzLXNlbGVjdGVkOnZhcigtLWNvbG9yLXN0YXRpYy10cmFuc3BhcmVudCk7LS1jb2xvci1idXR0b24tZmlsbF9ib3JkZXItZ2hvc3QtYWNjZW50LWxpZ2h0LWRlZmF1bHQ6dmFyKC0tY29sb3Itc3RhdGljLXRyYW5zcGFyZW50KTstLWNvbG9yLWJ1dHRvbi1maWxsX2JvcmRlci1naG9zdC1hY2NlbnQtbGlnaHQtaG92ZXI6dmFyKC0tY29sb3ItdHYtYmx1ZS0xMDApOy0tY29sb3ItYnV0dG9uLWZpbGxfYm9yZGVyLWdob3N0LWFjY2VudC1saWdodC1hY3RpdmU6dmFyKC0tY29sb3ItdHYtYmx1ZS0yMDApOy0tY29sb3ItYnV0dG9uLWZpbGxfYm9yZGVyLWdob3N0LWFjY2VudC1saWdodC1pcy1zZWxlY3RlZDp2YXIoLS1jb2xvci10di1ibHVlLTEwMCk7LS1jb2xvci1idXR0b24tZmlsbF9ib3JkZXItcHJpbWFyeS1uZXV0cmFsLWJvbGQtZGVmYXVsdDp2YXIoLS1jb2xvci1jb2xkLWdyYXktOTAwKTstLWNvbG9yLWJ1dHRvbi1maWxsX2JvcmRlci1wcmltYXJ5LW5ldXRyYWwtYm9sZC1ob3Zlcjp2YXIoLS1jb2xvci1jb2xkLWdyYXktODAwKTstLWNvbG9yLWJ1dHRvbi1maWxsX2JvcmRlci1wcmltYXJ5LW5ldXRyYWwtYm9sZC1hY3RpdmU6dmFyKC0tY29sb3ItY29sZC1ncmF5LTcwMCk7LS1jb2xvci1idXR0b24tZmlsbF9ib3JkZXItcHJpbWFyeS1hY2NlbnQtZGVmYXVsdDp2YXIoLS1jb2xvci10di1ibHVlLTUwMCk7LS1jb2xvci1idXR0b24tZmlsbF9ib3JkZXItcHJpbWFyeS1hY2NlbnQtaG92ZXI6dmFyKC0tY29sb3ItdHYtYmx1ZS02MDApOy0tY29sb3ItYnV0dG9uLWZpbGxfYm9yZGVyLXByaW1hcnktYWNjZW50LWFjdGl2ZTp2YXIoLS1jb2xvci10di1ibHVlLTcwMCk7LS1jb2xvci1idXR0b24tZmlsbF9ib3JkZXItcHJpbWFyeS1uZXV0cmFsLWRlZmF1bHQ6dmFyKC0tY29sb3ItY29sZC1ncmF5LTEwMCk7LS1jb2xvci1idXR0b24tZmlsbF9ib3JkZXItcHJpbWFyeS1uZXV0cmFsLWhvdmVyOnZhcigtLWNvbG9yLWNvbGQtZ3JheS0xNTApOy0tY29sb3ItYnV0dG9uLWZpbGxfYm9yZGVyLXByaW1hcnktbmV1dHJhbC1hY3RpdmU6dmFyKC0tY29sb3ItY29sZC1ncmF5LTIwMCk7LS1jb2xvci1idXR0b24tZmlsbF9ib3JkZXItcHJpbWFyeS1uZXV0cmFsLWlzLXNlbGVjdGVkOnZhcigtLWNvbG9yLWNvbGQtZ3JheS0xMDApOy0tY29sb3ItYnV0dG9uLWZpbGxfYm9yZGVyLXByaW1hcnktc3VjY2Vzcy1kZWZhdWx0OnZhcigtLWNvbG9yLW1pbnR5LWdyZWVuLTUwMCk7LS1jb2xvci1idXR0b24tZmlsbF9ib3JkZXItcHJpbWFyeS1zdWNjZXNzLWhvdmVyOnZhcigtLWNvbG9yLW1pbnR5LWdyZWVuLTYwMCk7LS1jb2xvci1idXR0b24tZmlsbF9ib3JkZXItcHJpbWFyeS1zdWNjZXNzLWFjdGl2ZTp2YXIoLS1jb2xvci1taW50eS1ncmVlbi03MDApOy0tY29sb3ItYnV0dG9uLWZpbGxfYm9yZGVyLXByaW1hcnktYWNjZW50LWxpZ2h0LWRlZmF1bHQ6dmFyKC0tY29sb3ItdHYtYmx1ZS01MCk7LS1jb2xvci1idXR0b24tZmlsbF9ib3JkZXItcHJpbWFyeS1hY2NlbnQtbGlnaHQtaG92ZXI6dmFyKC0tY29sb3ItdHYtYmx1ZS0xMDApOy0tY29sb3ItYnV0dG9uLWZpbGxfYm9yZGVyLXByaW1hcnktYWNjZW50LWxpZ2h0LWFjdGl2ZTp2YXIoLS1jb2xvci10di1ibHVlLTIwMCk7LS1jb2xvci1idXR0b24tZmlsbF9ib3JkZXItcHJpbWFyeS1hY2NlbnQtbGlnaHQtaXMtc2VsZWN0ZWQ6dmFyKC0tY29sb3ItdHYtYmx1ZS0xMDApOy0tY29sb3ItYnV0dG9uLWZpbGxfYm9yZGVyLXByaW1hcnktZGFuZ2VyLWRlZmF1bHQ6dmFyKC0tY29sb3ItcmlwZS1yZWQtNTAwKTstLWNvbG9yLWJ1dHRvbi1maWxsX2JvcmRlci1wcmltYXJ5LWRhbmdlci1ob3Zlcjp2YXIoLS1jb2xvci1yaXBlLXJlZC02MDApOy0tY29sb3ItYnV0dG9uLWZpbGxfYm9yZGVyLXByaW1hcnktZGFuZ2VyLWFjdGl2ZTp2YXIoLS1jb2xvci1yaXBlLXJlZC03MDApOy0tY29sb3ItYnV0dG9uLWZpbGxfYm9yZGVyLXF1aWV0LXByaW1hcnktbmV1dHJhbC1ib2xkLWRlZmF1bHQ6dmFyKC0tY29sb3Itd2hpdGUpOy0tY29sb3ItYnV0dG9uLWZpbGxfYm9yZGVyLXF1aWV0LXByaW1hcnktbmV1dHJhbC1ib2xkLWhvdmVyOnZhcigtLWNvbG9yLWNvbGQtZ3JheS05MDApOy0tY29sb3ItYnV0dG9uLWZpbGxfYm9yZGVyLXF1aWV0LXByaW1hcnktbmV1dHJhbC1ib2xkLWFjdGl2ZTp2YXIoLS1jb2xvci1jb2xkLWdyYXktODAwKTstLWNvbG9yLWJ1dHRvbi1maWxsX2JvcmRlci1xdWlldC1wcmltYXJ5LWFjY2VudC1kZWZhdWx0OnZhcigtLWNvbG9yLXdoaXRlKTstLWNvbG9yLWJ1dHRvbi1maWxsX2JvcmRlci1xdWlldC1wcmltYXJ5LWFjY2VudC1ob3Zlcjp2YXIoLS1jb2xvci10di1ibHVlLTUwMCk7LS1jb2xvci1idXR0b24tZmlsbF9ib3JkZXItcXVpZXQtcHJpbWFyeS1hY2NlbnQtYWN0aXZlOnZhcigtLWNvbG9yLXR2LWJsdWUtNjAwKTstLWNvbG9yLWJ1dHRvbi1maWxsX2JvcmRlci1xdWlldC1wcmltYXJ5LW5ldXRyYWwtZGVmYXVsdDp2YXIoLS1jb2xvci13aGl0ZSk7LS1jb2xvci1idXR0b24tZmlsbF9ib3JkZXItcXVpZXQtcHJpbWFyeS1uZXV0cmFsLWhvdmVyOnZhcigtLWNvbG9yLWNvbGQtZ3JheS0xMDApOy0tY29sb3ItYnV0dG9uLWZpbGxfYm9yZGVyLXF1aWV0LXByaW1hcnktbmV1dHJhbC1hY3RpdmU6dmFyKC0tY29sb3ItY29sZC1ncmF5LTE1MCk7LS1jb2xvci1idXR0b24tZmlsbF9ib3JkZXItcXVpZXQtcHJpbWFyeS1uZXV0cmFsLWlzLXNlbGVjdGVkOnZhcigtLWNvbG9yLWNvbGQtZ3JheS0xMDApOy0tY29sb3ItYnV0dG9uLWZpbGxfYm9yZGVyLXF1aWV0LXByaW1hcnktc3VjY2Vzcy1kZWZhdWx0OnZhcigtLWNvbG9yLXdoaXRlKTstLWNvbG9yLWJ1dHRvbi1maWxsX2JvcmRlci1xdWlldC1wcmltYXJ5LXN1Y2Nlc3MtaG92ZXI6dmFyKC0tY29sb3ItbWludHktZ3JlZW4tNTAwKTstLWNvbG9yLWJ1dHRvbi1maWxsX2JvcmRlci1xdWlldC1wcmltYXJ5LXN1Y2Nlc3MtYWN0aXZlOnZhcigtLWNvbG9yLW1pbnR5LWdyZWVuLTYwMCk7LS1jb2xvci1idXR0b24tZmlsbF9ib3JkZXItcXVpZXQtcHJpbWFyeS1hY2NlbnQtbGlnaHQtZGVmYXVsdDp2YXIoLS1jb2xvci13aGl0ZSk7LS1jb2xvci1idXR0b24tZmlsbF9ib3JkZXItcXVpZXQtcHJpbWFyeS1hY2NlbnQtbGlnaHQtaG92ZXI6dmFyKC0tY29sb3ItdHYtYmx1ZS01MCk7LS1jb2xvci1idXR0b24tZmlsbF9ib3JkZXItcXVpZXQtcHJpbWFyeS1hY2NlbnQtbGlnaHQtYWN0aXZlOnZhcigtLWNvbG9yLXR2LWJsdWUtMTAwKTstLWNvbG9yLWJ1dHRvbi1maWxsX2JvcmRlci1xdWlldC1wcmltYXJ5LWFjY2VudC1saWdodC1pcy1zZWxlY3RlZDp2YXIoLS1jb2xvci10di1ibHVlLTEwMCk7LS1jb2xvci1idXR0b24tZmlsbF9ib3JkZXItcXVpZXQtcHJpbWFyeS1kYW5nZXItZGVmYXVsdDp2YXIoLS1jb2xvci13aGl0ZSk7LS1jb2xvci1idXR0b24tZmlsbF9ib3JkZXItcXVpZXQtcHJpbWFyeS1kYW5nZXItaG92ZXI6dmFyKC0tY29sb3ItcmlwZS1yZWQtNTAwKTstLWNvbG9yLWJ1dHRvbi1maWxsX2JvcmRlci1xdWlldC1wcmltYXJ5LWRhbmdlci1hY3RpdmU6dmFyKC0tY29sb3ItcmlwZS1yZWQtNjAwKTstLWNvbG9yLWJ1dHRvbi1maWxsX2JvcmRlci1zZWNvbmRhcnktbmV1dHJhbC1ib2xkLWRlZmF1bHQ6dmFyKC0tY29sb3ItY29sZC1ncmF5LTkwMCk7LS1jb2xvci1idXR0b24tZmlsbF9ib3JkZXItc2Vjb25kYXJ5LW5ldXRyYWwtYm9sZC1ob3Zlcjp2YXIoLS1jb2xvci1jb2xkLWdyYXktODAwKTstLWNvbG9yLWJ1dHRvbi1maWxsX2JvcmRlci1zZWNvbmRhcnktbmV1dHJhbC1ib2xkLWFjdGl2ZTp2YXIoLS1jb2xvci1jb2xkLWdyYXktNzAwKTstLWNvbG9yLWJ1dHRvbi1maWxsX2JvcmRlci1zZWNvbmRhcnktYWNjZW50LWRlZmF1bHQ6dmFyKC0tY29sb3ItdHYtYmx1ZS01MDApOy0tY29sb3ItYnV0dG9uLWZpbGxfYm9yZGVyLXNlY29uZGFyeS1hY2NlbnQtaG92ZXI6dmFyKC0tY29sb3ItdHYtYmx1ZS02MDApOy0tY29sb3ItYnV0dG9uLWZpbGxfYm9yZGVyLXNlY29uZGFyeS1hY2NlbnQtYWN0aXZlOnZhcigtLWNvbG9yLXR2LWJsdWUtNzAwKTstLWNvbG9yLWJ1dHRvbi1maWxsX2JvcmRlci1zZWNvbmRhcnktbmV1dHJhbC1kZWZhdWx0OnZhcigtLWNvbG9yLWNvbGQtZ3JheS0xNTApOy0tY29sb3ItYnV0dG9uLWZpbGxfYm9yZGVyLXNlY29uZGFyeS1uZXV0cmFsLWhvdmVyOnZhcigtLWNvbG9yLWNvbGQtZ3JheS0xMDApOy0tY29sb3ItYnV0dG9uLWZpbGxfYm9yZGVyLXNlY29uZGFyeS1uZXV0cmFsLWFjdGl2ZTp2YXIoLS1jb2xvci1jb2xkLWdyYXktMTUwKTstLWNvbG9yLWJ1dHRvbi1maWxsX2JvcmRlci1zZWNvbmRhcnktbmV1dHJhbC1pcy1zZWxlY3RlZDp2YXIoLS1jb2xvci1jb2xkLWdyYXktMTAwKTstLWNvbG9yLWJ1dHRvbi1maWxsX2JvcmRlci1zZWNvbmRhcnktc3VjY2Vzcy1kZWZhdWx0OnZhcigtLWNvbG9yLW1pbnR5LWdyZWVuLTUwMCk7LS1jb2xvci1idXR0b24tZmlsbF9ib3JkZXItc2Vjb25kYXJ5LXN1Y2Nlc3MtaG92ZXI6dmFyKC0tY29sb3ItbWludHktZ3JlZW4tNjAwKTstLWNvbG9yLWJ1dHRvbi1maWxsX2JvcmRlci1zZWNvbmRhcnktc3VjY2Vzcy1hY3RpdmU6dmFyKC0tY29sb3ItbWludHktZ3JlZW4tNzAwKTstLWNvbG9yLWJ1dHRvbi1maWxsX2JvcmRlci1zZWNvbmRhcnktYWNjZW50LWxpZ2h0LWRlZmF1bHQ6dmFyKC0tY29sb3ItdHYtYmx1ZS01MCk7LS1jb2xvci1idXR0b24tZmlsbF9ib3JkZXItc2Vjb25kYXJ5LWFjY2VudC1saWdodC1ob3Zlcjp2YXIoLS1jb2xvci10di1ibHVlLTEwMCk7LS1jb2xvci1idXR0b24tZmlsbF9ib3JkZXItc2Vjb25kYXJ5LWFjY2VudC1saWdodC1hY3RpdmU6dmFyKC0tY29sb3ItdHYtYmx1ZS0yMDApOy0tY29sb3ItYnV0dG9uLWZpbGxfYm9yZGVyLXNlY29uZGFyeS1hY2NlbnQtbGlnaHQtaXMtc2VsZWN0ZWQ6dmFyKC0tY29sb3ItdHYtYmx1ZS0xMDApOy0tY29sb3ItYnV0dG9uLWZpbGxfYm9yZGVyLXNlY29uZGFyeS1kYW5nZXItZGVmYXVsdDp2YXIoLS1jb2xvci1yaXBlLXJlZC01MDApOy0tY29sb3ItYnV0dG9uLWZpbGxfYm9yZGVyLXNlY29uZGFyeS1kYW5nZXItaG92ZXI6dmFyKC0tY29sb3ItcmlwZS1yZWQtNjAwKTstLWNvbG9yLWJ1dHRvbi1maWxsX2JvcmRlci1zZWNvbmRhcnktZGFuZ2VyLWFjdGl2ZTp2YXIoLS1jb2xvci1yaXBlLXJlZC03MDApOy0tY29sb3ItdGV4dC1maWVsZC1ib3JkZXItZGVmYXVsdDp2YXIoLS1jb2xvci1jb2xkLWdyYXktMjAwKTstLWNvbG9yLXRleHQtZmllbGQtYm9yZGVyLWhvdmVyOnZhcigtLWNvbG9yLWNvbGQtZ3JheS0zNTApOy0tY29sb3ItdGV4dC1maWVsZC1ib3JkZXItYWN0aXZlOnZhcigtLWNvbG9yLXR2LWJsdWUtNTAwKTstLWNvbG9yLXRleHQtZmllbGQtYm9yZGVyLWRpc2FibGVkOnZhcigtLWNvbG9yLWNvbGQtZ3JheS0yMDApOy0tY29sb3ItdGV4dC1maWVsZC1ib3JkZXItZXJyb3I6dmFyKC0tY29sb3ItcmlwZS1yZWQtNTAwKTstLWNvbG9yLXRleHQtZmllbGQtYm9yZGVyLWZvY3VzLW5vdC1hY3RpdmU6dmFyKC0tY29sb3ItdHYtYmx1ZS01MDApOy0tY29sb3ItdGV4dC1maWVsZC1ib3JkZXItZm9jdXMtcmVhZC1vbmx5OnZhcigtLWNvbG9yLXR2LWJsdWUtNTAwKTstLWNvbG9yLXRleHQtZmllbGQtYm9yZGVyLXJlYWQtb25seTp2YXIoLS1jb2xvci1jb2xkLWdyYXktMjAwKTstLWNvbG9yLXRleHQtZmllbGQtYm9yZGVyLXN1Y2Nlc3M6dmFyKC0tY29sb3ItbWludHktZ3JlZW4tNTAwKTstLWNvbG9yLXRleHQtZmllbGQtYm9yZGVyLXdhcm5pbmc6dmFyKC0tY29sb3ItdGFuLW9yYW5nZS01MDApOy0tY29sb3ItdGV4dC1maWVsZC1ib3JkZXItd2l0aC12YWx1ZTp2YXIoLS1jb2xvci1jb2xkLWdyYXktMjAwKTstLWNvbG9yLXRleHQtZmllbGQtZGVzY3JpcHRpb24tZGVmYXVsdDp2YXIoLS1jb2xvci1jb2xkLWdyYXktNTUwKTstLWNvbG9yLXRleHQtZmllbGQtZGVzY3JpcHRpb24tZXJyb3I6dmFyKC0tY29sb3ItcmlwZS1yZWQtNTAwKTstLWNvbG9yLXRleHQtZmllbGQtZGVzY3JpcHRpb24tc3VjY2Vzczp2YXIoLS1jb2xvci1taW50eS1ncmVlbi01MDApOy0tY29sb3ItdGV4dC1maWVsZC1kZXNjcmlwdGlvbi13YXJuaW5nOnZhcigtLWNvbG9yLXRhbi1vcmFuZ2UtNTAwKTstLWNvbG9yLXRleHQtZmllbGQtZmlsbC1kZWZhdWx0OnZhcigtLWNvbG9yLXN0YXRpYy10cmFuc3BhcmVudCk7LS1jb2xvci10ZXh0LWZpZWxkLWZpbGwtZGlzYWJsZWQ6dmFyKC0tY29sb3ItY29sZC1ncmF5LTEwMCk7LS1jb2xvci10ZXh0LWZpZWxkLWZpbGwtZm9jdXMtcmVhZC1vbmx5OnZhcigtLWNvbG9yLWNvbGQtZ3JheS01MCk7LS1jb2xvci10ZXh0LWZpZWxkLWZpbGwtcmVhZC1vbmx5OnZhcigtLWNvbG9yLWNvbGQtZ3JheS01MCk7LS1jb2xvci10ZXh0LWZpZWxkLWxhYmVsLWRlZmF1bHQ6dmFyKC0tY29sb3ItY29sZC1ncmF5LTU1MCk7LS1jb2xvci10ZXh0LWZpZWxkLWxhYmVsLWVycm9yOnZhcigtLWNvbG9yLXJpcGUtcmVkLTUwMCk7LS1jb2xvci10ZXh0LWZpZWxkLWxhYmVsLWxpbms6dmFyKC0tY29sb3ItdHYtYmx1ZS01MDApOy0tY29sb3ItdGV4dC1maWVsZC1sYWJlbC1zdWNjZXNzOnZhcigtLWNvbG9yLW1pbnR5LWdyZWVuLTUwMCk7LS1jb2xvci10ZXh0LWZpZWxkLWxhYmVsLXdhcm5pbmc6dmFyKC0tY29sb3ItdGFuLW9yYW5nZS01MDApOy0tY29sb3ItdGV4dC1maWVsZC1sZWZ0LXNsb3QtaWNvbi1kZWZhdWx0OnZhcigtLWNvbG9yLWNvbGQtZ3JheS01NTApOy0tY29sb3ItdGV4dC1maWVsZC1sZWZ0LXNsb3QtaWNvbi1kaXNhYmxlZDp2YXIoLS1jb2xvci1jb2xkLWdyYXktMzUwKTstLWNvbG9yLXRleHQtZmllbGQtcGxhY2Vob2xkZXItZGVmYXVsdDp2YXIoLS1jb2xvci1jb2xkLWdyYXktNTUwKTstLWNvbG9yLXRleHQtZmllbGQtcGxhY2Vob2xkZXItZGlzYWJsZWQ6dmFyKC0tY29sb3ItY29sZC1ncmF5LTM1MCk7LS1jb2xvci10ZXh0LWZpZWxkLXJpZ2h0LXNsb3QtYXJyb3dzLWJnLWRlZmF1bHQ6dmFyKC0tY29sb3Itc3RhdGljLXRyYW5zcGFyZW50KTstLWNvbG9yLXRleHQtZmllbGQtcmlnaHQtc2xvdC1hcnJvd3MtYmctaG92ZXI6dmFyKC0tY29sb3ItY29sZC1ncmF5LTEwMCk7LS1jb2xvci10ZXh0LWZpZWxkLXJpZ2h0LXNsb3QtYXJyb3dzLWJnLWFjdGl2ZTp2YXIoLS1jb2xvci1jb2xkLWdyYXktMTUwKTstLWNvbG9yLXRleHQtZmllbGQtcmlnaHQtc2xvdC1pY29ucy1hbmQtdGV4dC1kZWZhdWx0OnZhcigtLWNvbG9yLWNvbGQtZ3JheS01NTApOy0tY29sb3ItdGV4dC1maWVsZC1yaWdodC1zbG90LWljb25zLWFuZC10ZXh0LWRpc2FibGVkOnZhcigtLWNvbG9yLWNvbGQtZ3JheS0zNTApOy0tY29sb3ItdGV4dC1maWVsZC1yaWdodC1zbG90LWljb25zLWFuZC10ZXh0LWFjdGl2ZTp2YXIoLS1jb2xvci1jb2xkLWdyYXktOTAwKTstLWNvbG9yLXRleHQtZmllbGQtcmlnaHQtc2xvdC1pY29ucy1hbmQtdGV4dC1lcnJvcjp2YXIoLS1jb2xvci1yaXBlLXJlZC01MDApOy0tY29sb3ItdGV4dC1maWVsZC1yaWdodC1zbG90LWljb25zLWFuZC10ZXh0LWhvdmVyOnZhcigtLWNvbG9yLWNvbGQtZ3JheS05MDApOy0tY29sb3ItdGV4dC1maWVsZC12YWx1ZS1kZWZhdWx0OnZhcigtLWNvbG9yLWNvbGQtZ3JheS05MDApOy0tY29sb3ItdGV4dC1maWVsZC12YWx1ZS1kaXNhYmxlZDp2YXIoLS1jb2xvci1jb2xkLWdyYXktNTUwKTstLWNvbG9yLWNvdW50ZXItZmlsbC1kYW5nZXI6dmFyKC0tY29sb3ItcmlwZS1yZWQtNTAwKTstLWNvbG9yLWNvdW50ZXItY29udGVudC1kYW5nZXI6dmFyKC0tY29sb3Itd2hpdGUpOy0tY29sb3ItY291bnRlci1maWxsLWFjY2VudDp2YXIoLS1jb2xvci10di1ibHVlLTUwMCk7LS1jb2xvci1jb3VudGVyLWNvbnRlbnQtYWNjZW50OnZhcigtLWNvbG9yLXdoaXRlKTstLWNvbG9yLWNvdW50ZXItZmlsbC1hY2NlbnQtbGlnaHQ6dmFyKC0tY29sb3ItdHYtYmx1ZS01MCk7LS1jb2xvci1jb3VudGVyLWNvbnRlbnQtYWNjZW50LWxpZ2h0OnZhcigtLWNvbG9yLXR2LWJsdWUtNjAwKTstLWNvbG9yLWNvdW50ZXItZmlsbC1uZXV0cmFsLWJvbGQ6dmFyKC0tY29sb3ItYmxhY2spOy0tY29sb3ItY291bnRlci1jb250ZW50LW5ldXRyYWwtYm9sZDp2YXIoLS1jb2xvci13aGl0ZSk7LS1jb2xvci1jb3VudGVyLWZpbGwtbmV1dHJhbDp2YXIoLS1jb2xvci1jb2xkLWdyYXktMTAwKTstLWNvbG9yLWNvdW50ZXItY29udGVudC1uZXV0cmFsOnZhcigtLWNvbG9yLWNvbGQtZ3JheS05MDApOy0tY29sb3ItY291bnRlci1ib3JkZXItcHJpbWFyeTp2YXIoLS1jb2xvci13aGl0ZSk7LS1jb2xvci1jb3VudGVyLWJvcmRlci1zZWNvbmRhcnk6dmFyKC0tY29sb3Itd2hpdGUpOy0tY29sb3ItY291bnRlci1ib3JkZXItdGVydGlhcnk6dmFyKC0tY29sb3Itd2hpdGUpOy0tY29sb3ItZmlsdGVyLXNlbGVjdC1maWxsX2JvcmRlci1jaGVja2VkLWRlZmF1bHQ6dmFyKC0tY29sb3ItdHYtYmx1ZS01MCk7LS1jb2xvci1maWx0ZXItc2VsZWN0LWZpbGxfYm9yZGVyLWNoZWNrZWQtaG92ZXI6dmFyKC0tY29sb3ItdHYtYmx1ZS0xMDApOy0tY29sb3ItZmlsdGVyLXNlbGVjdC1maWxsX2JvcmRlci1jaGVja2VkLWFjdGl2ZTp2YXIoLS1jb2xvci10di1ibHVlLTIwMCk7LS1jb2xvci1maWx0ZXItc2VsZWN0LWZpbGxfYm9yZGVyLWNoZWNrZWQtaXNPcGVuZWQ6dmFyKC0tY29sb3ItdHYtYmx1ZS0xMDApOy0tY29sb3ItZmlsdGVyLXNlbGVjdC1jb250ZW50LWNoZWNrZWQtYWNjZW50LWRlZmF1bHQ6dmFyKC0tY29sb3ItdHYtYmx1ZS02MDApOy0tY29sb3ItZmlsdGVyLXNlbGVjdC1jb250ZW50LWNoZWNrZWQtYWNjZW50LWhvdmVyOnZhcigtLWNvbG9yLXR2LWJsdWUtNjAwKTstLWNvbG9yLWZpbHRlci1zZWxlY3QtY29udGVudC1jaGVja2VkLWFjY2VudC1hY3RpdmU6dmFyKC0tY29sb3ItdHYtYmx1ZS02MDApOy0tY29sb3ItZmlsdGVyLXNlbGVjdC1jb250ZW50LWNoZWNrZWQtbmV1dHJhbC1kZWZhdWx0OnZhcigtLWNvbG9yLWNvbGQtZ3JheS05MDApOy0tY29sb3ItZmlsdGVyLXNlbGVjdC1jb250ZW50LWNoZWNrZWQtbmV1dHJhbC1ob3Zlcjp2YXIoLS1jb2xvci1jb2xkLWdyYXktOTAwKTstLWNvbG9yLWZpbHRlci1zZWxlY3QtY29udGVudC1jaGVja2VkLW5ldXRyYWwtYWN0aXZlOnZhcigtLWNvbG9yLWNvbGQtZ3JheS05MDApOy0tY29sb3ItZmlsdGVyLXNlbGVjdC1maWxsX2JvcmRlci1ub3QtY2hlY2tlZC1kZWZhdWx0OnZhcigtLWNvbG9yLWNvbGQtZ3JheS0xNTApOy0tY29sb3ItZmlsdGVyLXNlbGVjdC1maWxsX2JvcmRlci1ub3QtY2hlY2tlZC1ob3Zlcjp2YXIoLS1jb2xvci1jb2xkLWdyYXktMTAwKTstLWNvbG9yLWZpbHRlci1zZWxlY3QtZmlsbF9ib3JkZXItbm90LWNoZWNrZWQtYWN0aXZlOnZhcigtLWNvbG9yLWNvbGQtZ3JheS0xNTApOy0tY29sb3ItZmlsdGVyLXNlbGVjdC1maWxsX2JvcmRlci1ub3QtY2hlY2tlZC1pc09wZW5lZDp2YXIoLS1jb2xvci1jb2xkLWdyYXktMTAwKTstLWNvbG9yLWZpbHRlci1zZWxlY3QtY29udGVudC1ub3QtY2hlY2tlZC1kZWZhdWx0OnZhcigtLWNvbG9yLWNvbGQtZ3JheS01NTApOy0tY29sb3ItZmlsdGVyLXNlbGVjdC1jb250ZW50LW5vdC1jaGVja2VkLWhvdmVyOnZhcigtLWNvbG9yLWNvbGQtZ3JheS01NTApOy0tY29sb3ItZmlsdGVyLXNlbGVjdC1jb250ZW50LW5vdC1jaGVja2VkLWFjdGl2ZTp2YXIoLS1jb2xvci1jb2xkLWdyYXktNTUwKTstLWNvbG9yLXN5bWJvbC1jaGFuZ2UtcG9zaXRpdmU6dmFyKC0tY29sb3ItbWludHktZ3JlZW4tNjAwKTstLWNvbG9yLXN5bWJvbC1jaGFuZ2UtbmV1dHJhbDp2YXIoLS1jb2xvci1jb2xkLWdyYXktOTAwKTstLWNvbG9yLXN5bWJvbC1jaGFuZ2UtbmVnYXRpdmU6dmFyKC0tY29sb3ItcmlwZS1yZWQtNjAwKTstLWNvbG9yLXN5bWJvbC1yYXRpbmctcG9zaXRpdmU6dmFyKC0tY29sb3ItbWludHktZ3JlZW4tNjAwKTstLWNvbG9yLXN5bWJvbC1yYXRpbmctbmV1dHJhbDp2YXIoLS1jb2xvci1jb2xkLWdyYXktNTUwKTstLWNvbG9yLXN5bWJvbC1yYXRpbmctbmVnYXRpdmU6dmFyKC0tY29sb3ItcmlwZS1yZWQtNjAwKTstLWNvbG9yLW90aGVyLXRyYW5zcGFyZW50OiNmZmYwOy0tY29sb3Itb3RoZXItdHJhbnNwYXJlbnQtNjA6I2ZmZjk7LS1jb2xvci1zaGFkb3ctcHJpbWFyeS1uZXV0cmFsLWV4dHJhLWhlYXZ5OiMwMDAzOy0tY29sb3Itc2hhZG93LXByaW1hcnktbmV1dHJhbC1saWdodDp2YXIoLS1jb2xvci1jb2xkLWdyYXktMTUwKTstLWNvbG9yLXNoYWRvdy1zZWNvbmRhcnktbmV1dHJhbC1saWdodDp2YXIoLS1jb2xvci1jb2xkLWdyYXktMTUwKTstLWNvbG9yLW90aGVyLW1vZGFsLWJhY2tncm91bmQ6I2QxZDFkMTRkOy0tY29sb3Itb3RoZXItc2hhZG93LXByaW1hcnktbmV1dHJhbC1leHRyYS1oZWF2eTojMDAwMzstLWNvbG9yLW90aGVyLXNoYWRvdy1wcmltYXJ5LW5ldXRyYWwtbGlnaHQ6dmFyKC0tY29sb3ItY29sZC1ncmF5LTE1MCk7LS1jb2xvci1vdGhlci1zaGFkb3ctc2Vjb25kYXJ5LW5ldXRyYWwtbGlnaHQ6dmFyKC0tY29sb3ItY29sZC1ncmF5LTE1MCk7LS1jb2xvci1vdGhlci1ibGFjay1mcmlkYXktcHJpbWFyeTp2YXIoLS1jb2xvci1yaXBlLXJlZC01MDApOy0tY29sb3Itb3RoZXItYmxhY2stZnJpZGF5LXNlY29uZGFyeTp2YXIoLS1jb2xvci1yaXBlLXJlZC00MDApOy0tY29sb3Itb3RoZXItYmxhY2stZnJpZGF5LXRlcnRpYXJ5OnZhcigtLWNvbG9yLXJpcGUtcmVkLTMwMCk7LS1jb2xvci1vdGhlci1jeWJlci1tb25kYXktcHJpbWFyeTp2YXIoLS1jb2xvci1za3ktYmx1ZS1hNDAwKTstLWNvbG9yLW90aGVyLWN5YmVyLW1vbmRheS1zZWNvbmRhcnk6dmFyKC0tY29sb3Itc2t5LWJsdWUtYTIwMCk7LS1jb2xvci1vdGhlci1jeWJlci1tb25kYXktdGVydGlhcnk6dmFyKC0tY29sb3Itc2t5LWJsdWUtYTEwMCk7LS1jb2xvci1zZWFyY2gtaGlnaGxpZ2h0LXByaW1hcnktbm9ybWFsOnZhcigtLWNvbG9yLXR2LWJsdWUtNjAwKTstLWNvbG9yLXNlYXJjaC1oaWdobGlnaHQtcHJpbWFyeS1pbnZlcnNlOnZhcigtLWNvbG9yLXR2LWJsdWUtMjAwKTstLWNvbG9yLWZvY3VzLW91dGxpbmUtY29sb3ItYmx1ZTp2YXIoLS1jb2xvci10di1ibHVlLTUwMCk7LS1jb2xvci1mb2N1cy1vdXRsaW5lLWNvbG9yLWJsYWNrOnZhcigtLWNvbG9yLWJsYWNrKTstLWNvbG9yLWZvY3VzLW91dGxpbmUtY29sb3Itd2hpdGU6dmFyKC0tY29sb3Itd2hpdGUpOy0tY29sb3ItYmFja2dyb3VuZC1wcmltYXJ5LWFjY2VudC1leHRyYS1saWdodDp2YXIoLS1jb2xvci10di1ibHVlLTUwKTstLWNvbG9yLWJhY2tncm91bmQtcHJpbWFyeS1hY2NlbnQtbGlnaHQ6dmFyKC0tY29sb3ItdHYtYmx1ZS0xMDApOy0tY29sb3ItYmFja2dyb3VuZC1wcmltYXJ5LWludmVyc2U6dmFyKC0tY29sb3Itd2hpdGUpOy0tY29sb3ItYmFja2dyb3VuZC1wcmltYXJ5LW5ldXRyYWwtYm9sZDp2YXIoLS1jb2xvci1jb2xkLWdyYXktODAwKTstLWNvbG9yLWJhY2tncm91bmQtcHJpbWFyeS1uZXV0cmFsLWV4dHJhLWhlYXZ5OnZhcigtLWNvbG9yLWJsYWNrKTstLWNvbG9yLWJhY2tncm91bmQtcHJpbWFyeS1uZXV0cmFsLWV4dHJhLWxpZ2h0OnZhcigtLWNvbG9yLWNvbGQtZ3JheS01MCk7LS1jb2xvci1iYWNrZ3JvdW5kLXByaW1hcnktbmV1dHJhbC1saWdodDp2YXIoLS1jb2xvci1jb2xkLWdyYXktMTAwKTstLWNvbG9yLWJhY2tncm91bmQtcHJpbWFyeS1uZXV0cmFsLW5vcm1hbDp2YXIoLS1jb2xvci1jb2xkLWdyYXktMTUwKTstLWNvbG9yLWJhY2tncm91bmQtc2Vjb25kYXJ5LWludmVyc2U6dmFyKC0tY29sb3Itd2hpdGUpOy0tY29sb3ItYmFja2dyb3VuZC10ZXJ0aWFyeS1pbnZlcnNlOnZhcigtLWNvbG9yLXdoaXRlKTstLWNvbG9yLWNvbnRhaW5lci1maWxsLXByaW1hcnktYWNjZW50OnZhcigtLWNvbG9yLXR2LWJsdWUtNTAwKTstLWNvbG9yLWNvbnRhaW5lci1maWxsLXByaW1hcnktYWNjZW50LWJvbGQ6dmFyKC0tY29sb3ItdHYtYmx1ZS03MDApOy0tY29sb3ItY29udGFpbmVyLWZpbGwtcHJpbWFyeS1hY2NlbnQtZXh0cmEtbGlnaHQ6dmFyKC0tY29sb3ItdHYtYmx1ZS01MCk7LS1jb2xvci1jb250YWluZXItZmlsbC1wcmltYXJ5LWFjY2VudC1saWdodDp2YXIoLS1jb2xvci10di1ibHVlLTEwMCk7LS1jb2xvci1jb250YWluZXItZmlsbC1wcmltYXJ5LWFjY2VudC1ub3JtYWw6dmFyKC0tY29sb3ItdHYtYmx1ZS0yMDApOy0tY29sb3ItY29udGFpbmVyLWZpbGwtcHJpbWFyeS1hY2NlbnQtc2VtaS1ib2xkOnZhcigtLWNvbG9yLXR2LWJsdWUtNjAwKTstLWNvbG9yLWNvbnRhaW5lci1maWxsLXByaW1hcnktYWNjZW50LWFsdDEtbm9ybWFsOnZhcigtLWNvbG9yLWRlZXAtYmx1ZS1hNDAwKTstLWNvbG9yLWNvbnRhaW5lci1maWxsLXByaW1hcnktYWNjZW50LWFsdDItYm9sZDp2YXIoLS1jb2xvci1za3ktYmx1ZS03MDApOy0tY29sb3ItY29udGFpbmVyLWZpbGwtcHJpbWFyeS1kYW5nZXI6dmFyKC0tY29sb3ItcmlwZS1yZWQtNTAwKTstLWNvbG9yLWNvbnRhaW5lci1maWxsLXByaW1hcnktZGFuZ2VyLWJvbGQ6dmFyKC0tY29sb3ItcmlwZS1yZWQtNzAwKTstLWNvbG9yLWNvbnRhaW5lci1maWxsLXByaW1hcnktZGFuZ2VyLWV4dHJhLWxpZ2h0OnZhcigtLWNvbG9yLXJpcGUtcmVkLTUwKTstLWNvbG9yLWNvbnRhaW5lci1maWxsLXByaW1hcnktZGFuZ2VyLWxpZ2h0OnZhcigtLWNvbG9yLXJpcGUtcmVkLTEwMCk7LS1jb2xvci1jb250YWluZXItZmlsbC1wcmltYXJ5LWRhbmdlci1ub3JtYWw6dmFyKC0tY29sb3ItcmlwZS1yZWQtMjAwKTstLWNvbG9yLWNvbnRhaW5lci1maWxsLXByaW1hcnktZGFuZ2VyLXNlbWktYm9sZDp2YXIoLS1jb2xvci1yaXBlLXJlZC02MDApOy0tY29sb3ItY29udGFpbmVyLWZpbGwtcHJpbWFyeS1pbnZlcnNlOnZhcigtLWNvbG9yLXdoaXRlKTstLWNvbG9yLWNvbnRhaW5lci1maWxsLXByaW1hcnktbmV1dHJhbDp2YXIoLS1jb2xvci1jb2xkLWdyYXktNDAwKTstLWNvbG9yLWNvbnRhaW5lci1maWxsLXByaW1hcnktbmV1dHJhbC1ib2xkOnZhcigtLWNvbG9yLWNvbGQtZ3JheS03MDApOy0tY29sb3ItY29udGFpbmVyLWZpbGwtcHJpbWFyeS1uZXV0cmFsLWV4dHJhLWJvbGQ6dmFyKC0tY29sb3ItY29sZC1ncmF5LTgwMCk7LS1jb2xvci1jb250YWluZXItZmlsbC1wcmltYXJ5LW5ldXRyYWwtZXh0cmEtaGVhdnk6dmFyKC0tY29sb3ItYmxhY2spOy0tY29sb3ItY29udGFpbmVyLWZpbGwtcHJpbWFyeS1uZXV0cmFsLWV4dHJhLWxpZ2h0OnZhcigtLWNvbG9yLWNvbGQtZ3JheS0xMDApOy0tY29sb3ItY29udGFpbmVyLWZpbGwtcHJpbWFyeS1uZXV0cmFsLWhlYXZ5OnZhcigtLWNvbG9yLWNvbGQtZ3JheS05MDApOy0tY29sb3ItY29udGFpbmVyLWZpbGwtcHJpbWFyeS1uZXV0cmFsLWxpZ2h0OnZhcigtLWNvbG9yLWNvbGQtZ3JheS0xNTApOy0tY29sb3ItY29udGFpbmVyLWZpbGwtcHJpbWFyeS1uZXV0cmFsLW5vcm1hbDp2YXIoLS1jb2xvci1jb2xkLWdyYXktMjAwKTstLWNvbG9yLWNvbnRhaW5lci1maWxsLXByaW1hcnktbmV1dHJhbC10aGluOnZhcigtLWNvbG9yLWNvbGQtZ3JheS01MCk7LS1jb2xvci1jb250YWluZXItZmlsbC1wcmltYXJ5LW5ldXRyYWwtbWVkaXVtOnZhcigtLWNvbG9yLWNvbGQtZ3JheS01NTApOy0tY29sb3ItY29udGFpbmVyLWZpbGwtcHJpbWFyeS1zdWNjZXNzOnZhcigtLWNvbG9yLW1pbnR5LWdyZWVuLTUwMCk7LS1jb2xvci1jb250YWluZXItZmlsbC1wcmltYXJ5LXN1Y2Nlc3MtYm9sZDp2YXIoLS1jb2xvci1taW50eS1ncmVlbi03MDApOy0tY29sb3ItY29udGFpbmVyLWZpbGwtcHJpbWFyeS1zdWNjZXNzLWV4dHJhLWxpZ2h0OnZhcigtLWNvbG9yLW1pbnR5LWdyZWVuLTUwKTstLWNvbG9yLWNvbnRhaW5lci1maWxsLXByaW1hcnktc3VjY2Vzcy1saWdodDp2YXIoLS1jb2xvci1taW50eS1ncmVlbi0xMDApOy0tY29sb3ItY29udGFpbmVyLWZpbGwtcHJpbWFyeS1zdWNjZXNzLW5vcm1hbDp2YXIoLS1jb2xvci1taW50eS1ncmVlbi0yMDApOy0tY29sb3ItY29udGFpbmVyLWZpbGwtcHJpbWFyeS1zdWNjZXNzLXNlbWktYm9sZDp2YXIoLS1jb2xvci1taW50eS1ncmVlbi02MDApOy0tY29sb3ItY29udGFpbmVyLWZpbGwtcHJpbWFyeS13YXJuaW5nOnZhcigtLWNvbG9yLXRhbi1vcmFuZ2UtNTAwKTstLWNvbG9yLWNvbnRhaW5lci1maWxsLXByaW1hcnktd2FybmluZy1ib2xkOnZhcigtLWNvbG9yLXRhbi1vcmFuZ2UtNzAwKTstLWNvbG9yLWNvbnRhaW5lci1maWxsLXByaW1hcnktd2FybmluZy1leHRyYS1saWdodDp2YXIoLS1jb2xvci10YW4tb3JhbmdlLTUwKTstLWNvbG9yLWNvbnRhaW5lci1maWxsLXByaW1hcnktd2FybmluZy1saWdodDp2YXIoLS1jb2xvci10YW4tb3JhbmdlLTEwMCk7LS1jb2xvci1jb250YWluZXItZmlsbC1wcmltYXJ5LXdhcm5pbmctbm9ybWFsOnZhcigtLWNvbG9yLXRhbi1vcmFuZ2UtMjAwKTstLWNvbG9yLWNvbnRhaW5lci1maWxsLXByaW1hcnktd2FybmluZy1zZW1pLWJvbGQ6dmFyKC0tY29sb3ItdGFuLW9yYW5nZS02MDApOy0tY29sb3ItY29udGFpbmVyLWZpbGwtcXVhdGVybmFyeS1pbnZlcnNlOnZhcigtLWNvbG9yLXdoaXRlKTstLWNvbG9yLWNvbnRhaW5lci1maWxsLXNlY29uZGFyeS1hY2NlbnQtZXh0cmEtbGlnaHQ6dmFyKC0tY29sb3ItdHYtYmx1ZS01MCk7LS1jb2xvci1jb250YWluZXItZmlsbC1zZWNvbmRhcnktYWNjZW50LWxpZ2h0OnZhcigtLWNvbG9yLXR2LWJsdWUtMTAwKTstLWNvbG9yLWNvbnRhaW5lci1maWxsLXNlY29uZGFyeS1hY2NlbnQtbm9ybWFsOnZhcigtLWNvbG9yLXR2LWJsdWUtMjAwKTstLWNvbG9yLWNvbnRhaW5lci1maWxsLXNlY29uZGFyeS1hY2NlbnQ6dmFyKC0tY29sb3ItdHYtYmx1ZS1hNDAwKTstLWNvbG9yLWNvbnRhaW5lci1maWxsLXNlY29uZGFyeS1hY2NlbnQtc2VtaS1ib2xkOnZhcigtLWNvbG9yLXR2LWJsdWUtNjAwKTstLWNvbG9yLWNvbnRhaW5lci1maWxsLXNlY29uZGFyeS1pbnZlcnNlOnZhcigtLWNvbG9yLXdoaXRlKTstLWNvbG9yLWNvbnRhaW5lci1maWxsLXNlY29uZGFyeS1uZXV0cmFsLXRoaW46dmFyKC0tY29sb3ItY29sZC1ncmF5LTUwKTstLWNvbG9yLWNvbnRhaW5lci1maWxsLXNlY29uZGFyeS1uZXV0cmFsOnZhcigtLWNvbG9yLWNvbGQtZ3JheS01NTApOy0tY29sb3ItY29udGFpbmVyLWZpbGwtc2Vjb25kYXJ5LW5ldXRyYWwtZXh0cmEtaGVhdnk6dmFyKC0tY29sb3ItYmxhY2spOy0tY29sb3ItY29udGFpbmVyLWZpbGwtc2Vjb25kYXJ5LW5ldXRyYWwtZXh0cmEtbGlnaHQ6dmFyKC0tY29sb3ItY29sZC1ncmF5LTEwMCk7LS1jb2xvci1jb250YWluZXItZmlsbC1zZWNvbmRhcnktbmV1dHJhbC1oZWF2eTp2YXIoLS1jb2xvci1jb2xkLWdyYXktOTAwKTstLWNvbG9yLWNvbnRhaW5lci1maWxsLXNlY29uZGFyeS1uZXV0cmFsLWxpZ2h0OnZhcigtLWNvbG9yLWNvbGQtZ3JheS0xNTApOy0tY29sb3ItY29udGFpbmVyLWZpbGwtc2Vjb25kYXJ5LW5ldXRyYWwtbm9ybWFsOnZhcigtLWNvbG9yLWNvbGQtZ3JheS0zMDApOy0tY29sb3ItY29udGFpbmVyLWZpbGwtc2Vjb25kYXJ5LW5ldXRyYWwtc2VtaS1ib2xkOnZhcigtLWNvbG9yLWNvbGQtZ3JheS02MDApOy0tY29sb3ItY29udGFpbmVyLWZpbGwtc2Vjb25kYXJ5LW5ldXRyYWwtYm9sZDp2YXIoLS1jb2xvci1jb2xkLWdyYXktODAwKTstLWNvbG9yLWNvbnRhaW5lci1maWxsLXNlY29uZGFyeS1uZXV0cmFsLWV4dHJhLWJvbGQ6dmFyKC0tY29sb3ItY29sZC1ncmF5LTgwMCk7LS1jb2xvci1jb250YWluZXItZmlsbC1zZWNvbmRhcnktZGFuZ2VyLWJvbGQ6dmFyKC0tY29sb3ItcmlwZS1yZWQtNzAwKTstLWNvbG9yLWNvbnRhaW5lci1maWxsLXNlY29uZGFyeS1zdWNjZXNzLXNlbWktYm9sZDp2YXIoLS1jb2xvci1taW50eS1ncmVlbi02MDApOy0tY29sb3ItY29udGFpbmVyLWZpbGwtc2Vjb25kYXJ5LXdhcm5pbmctc2VtaS1ib2xkOnZhcigtLWNvbG9yLXRhbi1vcmFuZ2UtNjAwKTstLWNvbG9yLWNvbnRhaW5lci1maWxsLXRlcnRpYXJ5LWFjY2VudDp2YXIoLS1jb2xvci10di1ibHVlLWE2MDApOy0tY29sb3ItY29udGFpbmVyLWZpbGwtdGVydGlhcnktYWNjZW50LWJvbGQ6dmFyKC0tY29sb3ItdHYtYmx1ZS1hOTAwKTstLWNvbG9yLWNvbnRhaW5lci1maWxsLXRlcnRpYXJ5LWFjY2VudC1saWdodDp2YXIoLS1jb2xvci10di1ibHVlLTEwMCk7LS1jb2xvci1jb250YWluZXItZmlsbC10ZXJ0aWFyeS1pbnZlcnNlOnZhcigtLWNvbG9yLXdoaXRlKTstLWNvbG9yLWNvbnRhaW5lci1maWxsLXRlcnRpYXJ5LW5ldXRyYWw6dmFyKC0tY29sb3ItY29sZC1ncmF5LTQ1MCk7LS1jb2xvci1jb250YWluZXItZmlsbC10ZXJ0aWFyeS1uZXV0cmFsLWxpZ2h0OnZhcigtLWNvbG9yLWNvbGQtZ3JheS0xNTApOy0tY29sb3ItY29udGFpbmVyLWZpbGwtdGVydGlhcnktbmV1dHJhbC1oZWF2eTp2YXIoLS1jb2xvci1jb2xkLWdyYXktOTAwKTstLWNvbG9yLWNvbnRhaW5lci1maWxsLXF1aW5hcnktaW52ZXJzZTp2YXIoLS1jb2xvci13aGl0ZSk7LS1jb2xvci1jb250YWluZXItZmlsbC1zZW5hcnktaW52ZXJzZTp2YXIoLS1jb2xvci13aGl0ZSk7LS1jb2xvci1jb250ZW50LXByaW1hcnktYWNjZW50OnZhcigtLWNvbG9yLXR2LWJsdWUtNTAwKTstLWNvbG9yLWNvbnRlbnQtcHJpbWFyeS1hY2NlbnQtYm9sZDp2YXIoLS1jb2xvci10di1ibHVlLTcwMCk7LS1jb2xvci1jb250ZW50LXByaW1hcnktYWNjZW50LWV4dHJhLWJvbGQ6dmFyKC0tY29sb3ItdHYtYmx1ZS04MDApOy0tY29sb3ItY29udGVudC1wcmltYXJ5LWFjY2VudC1oZWF2eTp2YXIoLS1jb2xvci1za3ktYmx1ZS05MDApOy0tY29sb3ItY29udGVudC1wcmltYXJ5LWFjY2VudC1saWdodDp2YXIoLS1jb2xvci10di1ibHVlLTMwMCk7LS1jb2xvci1jb250ZW50LXByaW1hcnktYWNjZW50LW5vcm1hbDp2YXIoLS1jb2xvci10di1ibHVlLTQwMCk7LS1jb2xvci1jb250ZW50LXByaW1hcnktYWNjZW50LXNlbWktYm9sZDp2YXIoLS1jb2xvci10di1ibHVlLTYwMCk7LS1jb2xvci1jb250ZW50LXByaW1hcnktYWNjZW50LW90aGVyLW5vcm1hbDp2YXIoLS1jb2xvci1kZWVwLWJsdWUtYTQwMCk7LS1jb2xvci1jb250ZW50LXByaW1hcnktYWNjZW50LW90aGVyLWJvbGQ6dmFyKC0tY29sb3Itc2t5LWJsdWUtNzAwKTstLWNvbG9yLWNvbnRlbnQtcHJpbWFyeS1hY2NlbnQtb3RoZXItZXh0cmEtYm9sZDp2YXIoLS1jb2xvci1kZWVwLWJsdWUtODAwKTstLWNvbG9yLWNvbnRlbnQtcHJpbWFyeS1hdHRlbnRpb246dmFyKC0tY29sb3ItYmFuYW5hLXllbGxvdy03MDApOy0tY29sb3ItY29udGVudC1wcmltYXJ5LWRhbmdlcjp2YXIoLS1jb2xvci1yaXBlLXJlZC01MDApOy0tY29sb3ItY29udGVudC1wcmltYXJ5LWRhbmdlci1ib2xkOnZhcigtLWNvbG9yLXJpcGUtcmVkLTcwMCk7LS1jb2xvci1jb250ZW50LXByaW1hcnktZGFuZ2VyLXNlbWktYm9sZDp2YXIoLS1jb2xvci1yaXBlLXJlZC02MDApOy0tY29sb3ItY29udGVudC1wcmltYXJ5LWRhbmdlci1leHRyYS1ib2xkOnZhcigtLWNvbG9yLXJpcGUtcmVkLTgwMCk7LS1jb2xvci1jb250ZW50LXByaW1hcnktaW52ZXJzZTp2YXIoLS1jb2xvci13aGl0ZSk7LS1jb2xvci1jb250ZW50LXByaW1hcnktbmVnYXRpdmU6dmFyKC0tY29sb3ItcmlwZS1yZWQtNjAwKTstLWNvbG9yLWNvbnRlbnQtcHJpbWFyeS1uZXV0cmFsOnZhcigtLWNvbG9yLWNvbGQtZ3JheS01NTApOy0tY29sb3ItY29udGVudC1wcmltYXJ5LW5ldXRyYWwtYm9sZDp2YXIoLS1jb2xvci1jb2xkLWdyYXktOTAwKTstLWNvbG9yLWNvbnRlbnQtcHJpbWFyeS1hY2NlbnQtZXh0cmEtbGlnaHQ6dmFyKC0tY29sb3ItdHYtYmx1ZS0xMDApOy0tY29sb3ItY29udGVudC1wcmltYXJ5LW5ldXRyYWwtZXh0cmEtbGlnaHQ6dmFyKC0tY29sb3ItY29sZC1ncmF5LTIwMCk7LS1jb2xvci1jb250ZW50LXByaW1hcnktbmV1dHJhbC1saWdodDp2YXIoLS1jb2xvci1jb2xkLWdyYXktMzAwKTstLWNvbG9yLWNvbnRlbnQtcHJpbWFyeS1uZXV0cmFsLW5vcm1hbDp2YXIoLS1jb2xvci1jb2xkLWdyYXktNDUwKTstLWNvbG9yLWNvbnRlbnQtcHJpbWFyeS1uZXV0cmFsLXNlbWktYm9sZDp2YXIoLS1jb2xvci1jb2xkLWdyYXktNzAwKTstLWNvbG9yLWNvbnRlbnQtcHJpbWFyeS1wb3NpdGl2ZTp2YXIoLS1jb2xvci1taW50eS1ncmVlbi02MDApOy0tY29sb3ItY29udGVudC1wcmltYXJ5LXN1Y2Nlc3M6dmFyKC0tY29sb3ItbWludHktZ3JlZW4tNTAwKTstLWNvbG9yLWNvbnRlbnQtcHJpbWFyeS1zdWNjZXNzLWJvbGQ6dmFyKC0tY29sb3ItbWludHktZ3JlZW4tNzAwKTstLWNvbG9yLWNvbnRlbnQtcHJpbWFyeS1zdWNjZXNzLWV4dHJhLWJvbGQ6dmFyKC0tY29sb3ItbWludHktZ3JlZW4tODAwKTstLWNvbG9yLWNvbnRlbnQtcHJpbWFyeS1zdWNjZXNzLXNlbWktYm9sZDp2YXIoLS1jb2xvci1taW50eS1ncmVlbi02MDApOy0tY29sb3ItY29udGVudC1wcmltYXJ5LXdhcm5pbmc6dmFyKC0tY29sb3ItdGFuLW9yYW5nZS01MDApOy0tY29sb3ItY29udGVudC1wcmltYXJ5LXdhcm5pbmctYm9sZDp2YXIoLS1jb2xvci10YW4tb3JhbmdlLTcwMCk7LS1jb2xvci1jb250ZW50LXByaW1hcnktd2FybmluZy1leHRyYS1ib2xkOnZhcigtLWNvbG9yLXRhbi1vcmFuZ2UtODAwKTstLWNvbG9yLWNvbnRlbnQtcHJpbWFyeS13YXJuaW5nLXNlbWktYm9sZDp2YXIoLS1jb2xvci10YW4tb3JhbmdlLTYwMCk7LS1jb2xvci1jb250ZW50LXNlY29uZGFyeS1hY2NlbnQ6dmFyKC0tY29sb3ItdHYtYmx1ZS01MDApOy0tY29sb3ItY29udGVudC1zZWNvbmRhcnktYWNjZW50LXNlbWktYm9sZDp2YXIoLS1jb2xvci10di1ibHVlLTYwMCk7LS1jb2xvci1jb250ZW50LXNlY29uZGFyeS1hY2NlbnQtYm9sZDp2YXIoLS1jb2xvci10di1ibHVlLWE3MDApOy0tY29sb3ItY29udGVudC1zZWNvbmRhcnktYWNjZW50LW90aGVyLXNlbWktYm9sZDp2YXIoLS1jb2xvci1ncmFwZXMtcHVycGxlLTYwMCk7LS1jb2xvci1jb250ZW50LXNlY29uZGFyeS1hY2NlbnQtb3RoZXItZXh0cmEtYm9sZDp2YXIoLS1jb2xvci1ncmFwZXMtcHVycGxlLTgwMCk7LS1jb2xvci1jb250ZW50LXNlY29uZGFyeS1pbnZlcnNlOnZhcigtLWNvbG9yLXdoaXRlKTstLWNvbG9yLWNvbnRlbnQtc2Vjb25kYXJ5LW5ldXRyYWw6dmFyKC0tY29sb3ItY29sZC1ncmF5LTY1MCk7LS1jb2xvci1jb250ZW50LXNlY29uZGFyeS1uZXV0cmFsLWJvbGQ6dmFyKC0tY29sb3ItY29sZC1ncmF5LTkwMCk7LS1jb2xvci1jb250ZW50LXNlY29uZGFyeS1hY2NlbnQtZXh0cmEtbGlnaHQ6dmFyKC0tY29sb3ItdHYtYmx1ZS0yMDApOy0tY29sb3ItY29udGVudC1zZWNvbmRhcnktbmV1dHJhbC1tZWRpdW06dmFyKC0tY29sb3ItY29sZC1ncmF5LTc1MCk7LS1jb2xvci1jb250ZW50LXNlY29uZGFyeS1uZXV0cmFsLXNlbWktYm9sZDp2YXIoLS1jb2xvci1jb2xkLWdyYXktODUwKTstLWNvbG9yLWNvbnRlbnQtc2Vjb25kYXJ5LXdhcm5pbmctc2VtaS1ib2xkOnZhcigtLWNvbG9yLXRhbi1vcmFuZ2UtNjAwKTstLWNvbG9yLWNvbnRlbnQtc2Vjb25kYXJ5LXdhcm5pbmctYm9sZDp2YXIoLS1jb2xvci10YW4tb3JhbmdlLWE3MDApOy0tY29sb3ItY29udGVudC1zZWNvbmRhcnktZGFuZ2VyLWV4dHJhLWJvbGQ6dmFyKC0tY29sb3ItYmVycnktcGluay04MDApOy0tY29sb3ItY29udGVudC1zZWNvbmRhcnktc3VjY2Vzczp2YXIoLS1jb2xvci1taW50eS1ncmVlbi01MDApOy0tY29sb3ItY29udGVudC1zZWNvbmRhcnktc3VjY2Vzcy1zZW1pLWJvbGQ6dmFyKC0tY29sb3ItbWludHktZ3JlZW4tNjAwKTstLWNvbG9yLWNvbnRlbnQtc2Vjb25kYXJ5LXN1Y2Nlc3MtZXh0cmEtYm9sZDp2YXIoLS1jb2xvci1mb3Jlc3QtZ3JlZW4tODAwKTstLWNvbG9yLWNvbnRlbnQtdGVydGlhcnktYWNjZW50OnZhcigtLWNvbG9yLXR2LWJsdWUtNTAwKTstLWNvbG9yLWNvbnRlbnQtdGVydGlhcnktYWNjZW50LWJvbGQ6dmFyKC0tY29sb3ItdHYtYmx1ZS03MDApOy0tY29sb3ItY29udGVudC10ZXJ0aWFyeS1uZXV0cmFsLWJvbGQ6dmFyKC0tY29sb3ItY29sZC1ncmF5LTkwMCk7LS1jb2xvci1jb250ZW50LXRlcnRpYXJ5LXN1Y2Nlc3MtZXh0cmEtYm9sZDp2YXIoLS1jb2xvci1pZ3VhbmEtZ3JlZW4tODAwKTstLWNvbG9yLWNvbnRlbnQtdGVydGlhcnktYWNjZW50LXNlbWktYm9sZDp2YXIoLS1jb2xvci10di1ibHVlLTYwMCk7LS1jb2xvci1jb250ZW50LXRlcnRpYXJ5LWludmVyc2U6dmFyKC0tY29sb3Itd2hpdGUpOy0tY29sb3ItY29udGVudC1xdWF0ZXJuYXJ5LWFjY2VudDp2YXIoLS1jb2xvci10di1ibHVlLWE0MDApOy0tY29sb3ItY29udGVudC1xdWF0ZXJuYXJ5LWFjY2VudC1zZW1pLWJvbGQ6dmFyKC0tY29sb3ItdHYtYmx1ZS02MDApOy0tY29sb3ItY29udGVudC1xdWluYXJ5LWFjY2VudDp2YXIoLS1jb2xvci10di1ibHVlLTUwMCk7LS1jb2xvci1jb250ZW50LXF1aW5hcnktYWNjZW50LXNlbWktYm9sZDp2YXIoLS1jb2xvci10di1ibHVlLTYwMCk7LS1jb2xvci1jb250ZW50LXF1aW5hcnktYWNjZW50LWJvbGQ6dmFyKC0tY29sb3ItdHYtYmx1ZS03MDApOy0tY29sb3ItYm9yZGVyLXByaW1hcnktYWNjZW50OnZhcigtLWNvbG9yLXR2LWJsdWUtNTAwKTstLWNvbG9yLWJvcmRlci1wcmltYXJ5LWFjY2VudC1leHRyYS1saWdodDp2YXIoLS1jb2xvci10di1ibHVlLTUwKTstLWNvbG9yLWJvcmRlci1wcmltYXJ5LWRhbmdlcjp2YXIoLS1jb2xvci1yaXBlLXJlZC01MDApOy0tY29sb3ItYm9yZGVyLXByaW1hcnktaW52ZXJzZTp2YXIoLS1jb2xvci13aGl0ZSk7LS1jb2xvci1ib3JkZXItcHJpbWFyeS1uZXV0cmFsOnZhcigtLWNvbG9yLWNvbGQtZ3JheS0zNTApOy0tY29sb3ItYm9yZGVyLXByaW1hcnktbmV1dHJhbC1ib2xkOnZhcigtLWNvbG9yLWNvbGQtZ3JheS02NTApOy0tY29sb3ItYm9yZGVyLXByaW1hcnktbmV1dHJhbC1leHRyYS1ib2xkOnZhcigtLWNvbG9yLWNvbGQtZ3JheS05MDApOy0tY29sb3ItYm9yZGVyLXByaW1hcnktbmV1dHJhbC1leHRyYS1oZWF2eTp2YXIoLS1jb2xvci1ibGFjayk7LS1jb2xvci1ib3JkZXItcHJpbWFyeS1uZXV0cmFsLWxpZ2h0OnZhcigtLWNvbG9yLWNvbGQtZ3JheS0xNTApOy0tY29sb3ItYm9yZGVyLXByaW1hcnktbmV1dHJhbC1ub3JtYWw6dmFyKC0tY29sb3ItY29sZC1ncmF5LTIwMCk7LS1jb2xvci1ib3JkZXItcHJpbWFyeS1uZXV0cmFsLXNlbWktYm9sZDp2YXIoLS1jb2xvci1jb2xkLWdyYXktNTUwKTstLWNvbG9yLWJvcmRlci1wcmltYXJ5LXN1Y2Nlc3M6dmFyKC0tY29sb3ItbWludHktZ3JlZW4tNTAwKTstLWNvbG9yLWJvcmRlci1wcmltYXJ5LXdhcm5pbmc6dmFyKC0tY29sb3ItdGFuLW9yYW5nZS01MDApOy0tY29sb3ItYm9yZGVyLXNlY29uZGFyeS1pbnZlcnNlOnZhcigtLWNvbG9yLXdoaXRlKTstLWNvbG9yLWJvcmRlci1zZWNvbmRhcnktbmV1dHJhbDp2YXIoLS1jb2xvci1jb2xkLWdyYXktMzAwKTstLWNvbG9yLWJvcmRlci1zZWNvbmRhcnktbmV1dHJhbC1ub3JtYWw6dmFyKC0tY29sb3ItY29sZC1ncmF5LTIwMCk7LS1jb2xvci1ib3JkZXItdGVydGlhcnktaW52ZXJzZTp2YXIoLS1jb2xvci13aGl0ZSk7LS1jb2xvci1ib3JkZXItcHJpbWFyeS1uZXV0cmFsLWV4dHJhLWxpZ2h0OnZhcigtLWNvbG9yLWNvbGQtZ3JheS0xMDApOy0tY29sb3Itb3ZlcmxheS1hY2NlbnQtMS1saWdodDojMjk2MmZmMjY7LS1jb2xvci1vdmVybGF5LWFjY2VudC0xLW5vcm1hbDojMjk2MmZmNGQ7LS1jb2xvci1vdmVybGF5LWFjY2VudC0xLWJvbGQ6IzI5NjJmZjY2Oy0tY29sb3Itb3ZlcmxheS1hY2NlbnQtMi1saWdodDojMDBhY2MxMjY7LS1jb2xvci1vdmVybGF5LWFjY2VudC0yLW5vcm1hbDojMDBhY2MxNGQ7LS1jb2xvci1vdmVybGF5LWFjY2VudC0yLWJvbGQ6IzAwYWNjMTY2Oy0tY29sb3Itb3ZlcmxheS1hY2NlbnQtMy1saWdodDojOWMyN2IwMjY7LS1jb2xvci1vdmVybGF5LWFjY2VudC0zLW5vcm1hbDojOWMyN2IwNGQ7LS1jb2xvci1vdmVybGF5LWFjY2VudC0zLWJvbGQ6IzljMjdiMDY2Oy0tY29sb3Itb3ZlcmxheS1hY2NlbnQtNC1saWdodDojNWUzNWIxMjY7LS1jb2xvci1vdmVybGF5LWFjY2VudC00LW5vcm1hbDojNWUzNWIxNGQ7LS1jb2xvci1vdmVybGF5LWFjY2VudC00LWJvbGQ6IzVlMzViMTY2Oy0tY29sb3Itb3ZlcmxheS1uZWdhdGl2ZS0xLWxpZ2h0OiNjYzJmM2MyNjstLWNvbG9yLW92ZXJsYXktbmVnYXRpdmUtMS1ub3JtYWw6I2NjMmYzYzRkOy0tY29sb3Itb3ZlcmxheS1uZWdhdGl2ZS0xLWJvbGQ6I2NjMmYzYzY2Oy0tY29sb3Itb3ZlcmxheS1uZWdhdGl2ZS0yLWxpZ2h0OiNlOTFlNjMyNjstLWNvbG9yLW92ZXJsYXktbmVnYXRpdmUtMi1ub3JtYWw6I2U5MWU2MzRkOy0tY29sb3Itb3ZlcmxheS1uZWdhdGl2ZS0yLWJvbGQ6I2U5MWU2MzY2Oy0tY29sb3Itb3ZlcmxheS1uZXV0cmFsLTEtbGlnaHQ6IzYzNjM2MzI2Oy0tY29sb3Itb3ZlcmxheS1uZXV0cmFsLTEtbm9ybWFsOiM2MzYzNjM0ZDstLWNvbG9yLW92ZXJsYXktbmV1dHJhbC0xLWJvbGQ6IzYzNjM2MzY2Oy0tY29sb3Itb3ZlcmxheS1uZXV0cmFsLTItbGlnaHQ6IzAwMDAwMDI2Oy0tY29sb3Itb3ZlcmxheS1uZXV0cmFsLTItbm9ybWFsOiMwMDAwMDA0ZDstLWNvbG9yLW92ZXJsYXktbmV1dHJhbC0yLWJvbGQ6IzAwMDY7LS1jb2xvci1vdmVybGF5LXBvc2l0aXZlLTEtbGlnaHQ6IzA4OTk4MTI2Oy0tY29sb3Itb3ZlcmxheS1wb3NpdGl2ZS0xLW5vcm1hbDojMDg5OTgxNGQ7LS1jb2xvci1vdmVybGF5LXBvc2l0aXZlLTEtYm9sZDojMDg5OTgxNjY7LS1jb2xvci1vdmVybGF5LXBvc2l0aXZlLTItbGlnaHQ6IzA4OTk1MDI2Oy0tY29sb3Itb3ZlcmxheS1wb3NpdGl2ZS0yLW5vcm1hbDojMDg5OTUwNGQ7LS1jb2xvci1vdmVybGF5LXBvc2l0aXZlLTItYm9sZDojMDg5OTUwNjY7LS1jb2xvci1vdmVybGF5LXBvc2l0aXZlLTMtbGlnaHQ6IzQzYTA0NzI2Oy0tY29sb3Itb3ZlcmxheS1wb3NpdGl2ZS0zLW5vcm1hbDojNDNhMDQ3NGQ7LS1jb2xvci1vdmVybGF5LXBvc2l0aXZlLTMtYm9sZDojNDNhMDQ3NjY7LS1jb2xvci1vdmVybGF5LXdhcm5pbmctMS1saWdodDojZmY5ODAwMjY7LS1jb2xvci1vdmVybGF5LXdhcm5pbmctMS1ub3JtYWw6I2ZmOTgwMDRkOy0tY29sb3Itb3ZlcmxheS13YXJuaW5nLTEtYm9sZDojZmY5ODAwNjY7LS1jb2xvci1vdmVybGF5LXdhcm5pbmctMi1saWdodDojZmRkODM1MjY7LS1jb2xvci1vdmVybGF5LXdhcm5pbmctMi1ub3JtYWw6I2ZkZDgzNTRkOy0tY29sb3Itb3ZlcmxheS13YXJuaW5nLTItYm9sZDojZmRkODM1NjY7LS1jb2xvci1vdmVybGF5LXdhcm5pbmctMy1saWdodDojZmY5ODAwMjY7LS1jb2xvci1vdmVybGF5LXdhcm5pbmctMy1ub3JtYWw6I2ZmOTgwMDRkOy0tY29sb3Itb3ZlcmxheS13YXJuaW5nLTMtYm9sZDojZmY5ODAwNjY7LS1jb2xvci1vdmVybGF5LW5ldXRyYWwtMy1saWdodDojNjM2MzYzMjY7LS1jb2xvci1vdmVybGF5LW5ldXRyYWwtMy1ub3JtYWw6IzYzNjM2MzRkOy0tY29sb3Itb3ZlcmxheS1uZXV0cmFsLTMtYm9sZDojNjM2MzYzNjY7LS1jb2xvci1oZWF0bWFwLWNsYXNzaWMtbWludXMzLWRlZmF1bHQ6dmFyKC0tY29sb3ItcmlwZS1yZWQtODAwKTstLWNvbG9yLWhlYXRtYXAtY2xhc3NpYy1taW51czItZGVmYXVsdDp2YXIoLS1jb2xvci1yaXBlLXJlZC01MDApOy0tY29sb3ItaGVhdG1hcC1jbGFzc2ljLW1pbnVzMS1kZWZhdWx0OnZhcigtLWNvbG9yLXJpcGUtcmVkLTMwMCk7LS1jb2xvci1oZWF0bWFwLWNsYXNzaWMtemVyby1kZWZhdWx0OnZhcigtLWNvbG9yLWNvbGQtZ3JheS0yNTApOy0tY29sb3ItaGVhdG1hcC1jbGFzc2ljLXBsdXMxLWRlZmF1bHQ6dmFyKC0tY29sb3ItZm9yZXN0LWdyZWVuLTMwMCk7LS1jb2xvci1oZWF0bWFwLWNsYXNzaWMtcGx1czItZGVmYXVsdDp2YXIoLS1jb2xvci1mb3Jlc3QtZ3JlZW4tNTAwKTstLWNvbG9yLWhlYXRtYXAtY2xhc3NpYy1wbHVzMy1kZWZhdWx0OnZhcigtLWNvbG9yLWZvcmVzdC1ncmVlbi03MDApOy0tY29sb3ItaGVhdG1hcC1jbGFzc2ljLWxpZ2h0LW5lZ2F0aXZlLXhsOnZhcigtLWNvbG9yLXJpcGUtcmVkLTcwMCk7LS1jb2xvci1oZWF0bWFwLWNsYXNzaWMtbGlnaHQtbmVnYXRpdmUtbDp2YXIoLS1jb2xvci1yaXBlLXJlZC01MDApOy0tY29sb3ItaGVhdG1hcC1jbGFzc2ljLWxpZ2h0LW5lZ2F0aXZlLW06dmFyKC0tY29sb3ItcmlwZS1yZWQtMzAwKTstLWNvbG9yLWhlYXRtYXAtY2xhc3NpYy1saWdodC1uZWdhdGl2ZS1zOnZhcigtLWNvbG9yLXJpcGUtcmVkLTEwMCk7LS1jb2xvci1oZWF0bWFwLWNsYXNzaWMtbGlnaHQtbmV1dHJhbDp2YXIoLS1jb2xvci13aGl0ZSk7LS1jb2xvci1oZWF0bWFwLWNsYXNzaWMtbGlnaHQtcG9zaXRpdmUteGw6dmFyKC0tY29sb3ItZm9yZXN0LWdyZWVuLTcwMCk7LS1jb2xvci1oZWF0bWFwLWNsYXNzaWMtbGlnaHQtcG9zaXRpdmUtbDp2YXIoLS1jb2xvci1mb3Jlc3QtZ3JlZW4tNTAwKTstLWNvbG9yLWhlYXRtYXAtY2xhc3NpYy1saWdodC1wb3NpdGl2ZS1tOnZhcigtLWNvbG9yLWZvcmVzdC1ncmVlbi0zMDApOy0tY29sb3ItaGVhdG1hcC1jbGFzc2ljLWxpZ2h0LXBvc2l0aXZlLXM6dmFyKC0tY29sb3ItZm9yZXN0LWdyZWVuLTEwMCk7LS1jb2xvci1oZWF0bWFwLWNsYXNzaWMtbGlnaHQtZW1wdHk6dmFyKC0tY29sb3ItY29sZC1ncmF5LTE1MCk7LS1jb2xvci1oZWF0bWFwLWNsYXNzaWMtbGlnaHQtaG92ZXI6dmFyKC0tY29sb3ItdHYtYmx1ZS01MCk7LS1jb2xvci1oZWF0bWFwLWNvbG9yYmxpbmQtbWludXMzLWRlZmF1bHQ6dmFyKC0tY29sb3ItdGFuLW9yYW5nZS1hNzAwKTstLWNvbG9yLWhlYXRtYXAtY29sb3JibGluZC1taW51czItZGVmYXVsdDojZGU4MTJmOy0tY29sb3ItaGVhdG1hcC1jb2xvcmJsaW5kLW1pbnVzMS1kZWZhdWx0OnZhcigtLWNvbG9yLXRhbi1vcmFuZ2UtNDAwKTstLWNvbG9yLWhlYXRtYXAtY29sb3JibGluZC16ZXJvLWRlZmF1bHQ6dmFyKC0tY29sb3ItY29sZC1ncmF5LTI1MCk7LS1jb2xvci1oZWF0bWFwLWNvbG9yYmxpbmQtcGx1czEtZGVmYXVsdDp2YXIoLS1jb2xvci10di1ibHVlLTIwMCk7LS1jb2xvci1oZWF0bWFwLWNvbG9yYmxpbmQtcGx1czItZGVmYXVsdDp2YXIoLS1jb2xvci10di1ibHVlLTMwMCk7LS1jb2xvci1oZWF0bWFwLWNvbG9yYmxpbmQtcGx1czMtZGVmYXVsdDp2YXIoLS1jb2xvci10di1ibHVlLTYwMCk7LS1jb2xvci1oZWF0bWFwLW1vbm9jaHJvbWUtbWludXMzLWRlZmF1bHQ6dmFyKC0tY29sb3ItY29sZC1ncmF5LTE1MCk7LS1jb2xvci1oZWF0bWFwLW1vbm9jaHJvbWUtbWludXMyLWRlZmF1bHQ6dmFyKC0tY29sb3ItY29sZC1ncmF5LTI1MCk7LS1jb2xvci1oZWF0bWFwLW1vbm9jaHJvbWUtbWludXMxLWRlZmF1bHQ6dmFyKC0tY29sb3ItY29sZC1ncmF5LTM1MCk7LS1jb2xvci1oZWF0bWFwLW1vbm9jaHJvbWUtemVyby1kZWZhdWx0OnZhcigtLWNvbG9yLWNvbGQtZ3JheS01MDApOy0tY29sb3ItaGVhdG1hcC1tb25vY2hyb21lLXBsdXMxLWRlZmF1bHQ6dmFyKC0tY29sb3ItY29sZC1ncmF5LTYwMCk7LS1jb2xvci1oZWF0bWFwLW1vbm9jaHJvbWUtcGx1czItZGVmYXVsdDp2YXIoLS1jb2xvci1jb2xkLWdyYXktNzUwKTstLWNvbG9yLWhlYXRtYXAtbW9ub2Nocm9tZS1wbHVzMy1kZWZhdWx0OnZhcigtLWNvbG9yLWNvbGQtZ3JheS05MDApOy0tY29sb3ItaGVhdG1hcC1wb3NpdGl2ZS1vbmx5LXYxLWRlZmF1bHQ6dmFyKC0tY29sb3ItY29sZC1ncmF5LTI1MCk7LS1jb2xvci1oZWF0bWFwLXBvc2l0aXZlLW9ubHktdjItZGVmYXVsdDp2YXIoLS1jb2xvci10di1ibHVlLTIwMCk7LS1jb2xvci1oZWF0bWFwLXBvc2l0aXZlLW9ubHktdjMtZGVmYXVsdDp2YXIoLS1jb2xvci10di1ibHVlLTMwMCk7LS1jb2xvci1oZWF0bWFwLXBvc2l0aXZlLW9ubHktdjQtZGVmYXVsdDp2YXIoLS1jb2xvci10di1ibHVlLTYwMCk7LS1jb2xvci1oZWF0bWFwLXBvc2l0aXZlLW9ubHktdjUtZGVmYXVsdDp2YXIoLS1jb2xvci10di1ibHVlLTgwMCk7LS1jb2xvci1oZWF0bWFwLXBvc2l0aXZlLW9ubHktdjYtZGVmYXVsdDp2YXIoLS1jb2xvci10di1ibHVlLWE3MDApOy0tY29sb3ItaGVhdG1hcC1wb3NpdGl2ZS1vbmx5LXY3LWRlZmF1bHQ6dmFyKC0tY29sb3ItdHYtYmx1ZS1hODAwKTstLWNvbG9yLWhlYXRtYXAtcmFuZ2UtbGlnaHQtbmVnYXRpdmUteGw6dmFyKC0tY29sb3ItdGFuLW9yYW5nZS02MDApOy0tY29sb3ItaGVhdG1hcC1yYW5nZS1saWdodC1uZWdhdGl2ZS1sOnZhcigtLWNvbG9yLXRhbi1vcmFuZ2UtNDAwKTstLWNvbG9yLWhlYXRtYXAtcmFuZ2UtbGlnaHQtbmVnYXRpdmUtbTp2YXIoLS1jb2xvci10YW4tb3JhbmdlLTIwMCk7LS1jb2xvci1oZWF0bWFwLXJhbmdlLWxpZ2h0LW5lZ2F0aXZlLXM6dmFyKC0tY29sb3ItdGFuLW9yYW5nZS0xMDApOy0tY29sb3ItaGVhdG1hcC1yYW5nZS1saWdodC1uZXV0cmFsOnZhcigtLWNvbG9yLXdoaXRlKTstLWNvbG9yLWhlYXRtYXAtcmFuZ2UtbGlnaHQtcG9zaXRpdmUteGw6dmFyKC0tY29sb3Itc2t5LWJsdWUtNjAwKTstLWNvbG9yLWhlYXRtYXAtcmFuZ2UtbGlnaHQtcG9zaXRpdmUtbDp2YXIoLS1jb2xvci1za3ktYmx1ZS00MDApOy0tY29sb3ItaGVhdG1hcC1yYW5nZS1saWdodC1wb3NpdGl2ZS1tOnZhcigtLWNvbG9yLXNreS1ibHVlLTIwMCk7LS1jb2xvci1oZWF0bWFwLXJhbmdlLWxpZ2h0LXBvc2l0aXZlLXM6dmFyKC0tY29sb3Itc2t5LWJsdWUtMTAwKTstLWNvbG9yLWhlYXRtYXAtcmFuZ2UtbGlnaHQtZW1wdHk6dmFyKC0tY29sb3ItY29sZC1ncmF5LTE1MCk7LS1jb2xvci1oZWF0bWFwLXJhbmdlLWxpZ2h0LWhvdmVyOnZhcigtLWNvbG9yLXR2LWJsdWUtNTApOy0tY29sb3ItaGVhdG1hcC10YW4tb3JhbmdlLXhzOnZhcigtLWNvbG9yLXRhbi1vcmFuZ2UtNTApOy0tY29sb3ItaGVhdG1hcC10YW4tb3JhbmdlLXM6dmFyKC0tY29sb3ItdGFuLW9yYW5nZS0xMDApOy0tY29sb3ItaGVhdG1hcC10YW4tb3JhbmdlLW06dmFyKC0tY29sb3ItdGFuLW9yYW5nZS0zMDApOy0tY29sb3ItaGVhdG1hcC10YW4tb3JhbmdlLWw6dmFyKC0tY29sb3ItdGFuLW9yYW5nZS01MDApOy0tY29sb3ItaGVhdG1hcC10YW4tb3JhbmdlLXhsOnZhcigtLWNvbG9yLXRhbi1vcmFuZ2UtNzAwKTstLWNvbG9yLWhlYXRtYXAtdGFuLW9yYW5nZS14eGw6dmFyKC0tY29sb3ItdGFuLW9yYW5nZS05MDApOy0tY29sb3ItaGVhdG1hcC10YW4tb3JhbmdlLWVtcHR5OnZhcigtLWNvbG9yLWNvbGQtZ3JheS0xMDApOy0tY29sb3ItaGVhdG1hcC10YW4tb3JhbmdlLWJvcmRlcjp2YXIoLS1jb2xvci10YW4tb3JhbmdlLTkwMCk7LS1jb2xvci1oZWF0bWFwLXNreS1ibHVlLXhzOnZhcigtLWNvbG9yLXNreS1ibHVlLTUwKTstLWNvbG9yLWhlYXRtYXAtc2t5LWJsdWUtczp2YXIoLS1jb2xvci1za3ktYmx1ZS0xMDApOy0tY29sb3ItaGVhdG1hcC1za3ktYmx1ZS1tOnZhcigtLWNvbG9yLXNreS1ibHVlLTMwMCk7LS1jb2xvci1oZWF0bWFwLXNreS1ibHVlLWw6dmFyKC0tY29sb3Itc2t5LWJsdWUtNTAwKTstLWNvbG9yLWhlYXRtYXAtc2t5LWJsdWUteGw6dmFyKC0tY29sb3Itc2t5LWJsdWUtNzAwKTstLWNvbG9yLWhlYXRtYXAtc2t5LWJsdWUteHhsOnZhcigtLWNvbG9yLXNreS1ibHVlLTkwMCk7LS1jb2xvci1oZWF0bWFwLXNreS1ibHVlLWVtcHR5OnZhcigtLWNvbG9yLWNvbGQtZ3JheS0xMDApOy0tY29sb3ItaGVhdG1hcC1za3ktYmx1ZS1ib3JkZXI6dmFyKC0tY29sb3Itc2t5LWJsdWUtOTAwKTstLWNvbG9yLWhlYXRtYXAtZGVlcC1ibHVlLXhzOnZhcigtLWNvbG9yLWRlZXAtYmx1ZS01MCk7LS1jb2xvci1oZWF0bWFwLWRlZXAtYmx1ZS1zOnZhcigtLWNvbG9yLWRlZXAtYmx1ZS0xMDApOy0tY29sb3ItaGVhdG1hcC1kZWVwLWJsdWUtbTp2YXIoLS1jb2xvci1kZWVwLWJsdWUtMzAwKTstLWNvbG9yLWhlYXRtYXAtZGVlcC1ibHVlLWw6dmFyKC0tY29sb3ItZGVlcC1ibHVlLTQwMCk7LS1jb2xvci1oZWF0bWFwLWRlZXAtYmx1ZS14bDp2YXIoLS1jb2xvci1kZWVwLWJsdWUtNjAwKTstLWNvbG9yLWhlYXRtYXAtZGVlcC1ibHVlLXh4bDp2YXIoLS1jb2xvci1kZWVwLWJsdWUtOTAwKTstLWNvbG9yLWhlYXRtYXAtZGVlcC1ibHVlLWVtcHR5OnZhcigtLWNvbG9yLWNvbGQtZ3JheS0xMDApOy0tY29sb3ItaGVhdG1hcC1kZWVwLWJsdWUtYm9yZGVyOnZhcigtLWNvbG9yLWRlZXAtYmx1ZS05MDApOy0tY29sb3ItaGVhdG1hcC10di1ibHVlLXhzOnZhcigtLWNvbG9yLXR2LWJsdWUtNTApOy0tY29sb3ItaGVhdG1hcC10di1ibHVlLXM6dmFyKC0tY29sb3ItdHYtYmx1ZS0xMDApOy0tY29sb3ItaGVhdG1hcC10di1ibHVlLW06dmFyKC0tY29sb3ItdHYtYmx1ZS0zMDApOy0tY29sb3ItaGVhdG1hcC10di1ibHVlLWw6dmFyKC0tY29sb3ItdHYtYmx1ZS01MDApOy0tY29sb3ItaGVhdG1hcC10di1ibHVlLXhsOnZhcigtLWNvbG9yLXR2LWJsdWUtNzAwKTstLWNvbG9yLWhlYXRtYXAtdHYtYmx1ZS14eGw6dmFyKC0tY29sb3ItdHYtYmx1ZS05MDApOy0tY29sb3ItaGVhdG1hcC10di1ibHVlLWVtcHR5OnZhcigtLWNvbG9yLWNvbGQtZ3JheS0xMDApOy0tY29sb3ItaGVhdG1hcC10di1ibHVlLWJvcmRlcjp2YXIoLS1jb2xvci10di1ibHVlLTkwMCk7LS1jb2xvci1oZWF0bWFwLWJlcnJ5LXBpbmsteHM6dmFyKC0tY29sb3ItYmVycnktcGluay01MCk7LS1jb2xvci1oZWF0bWFwLWJlcnJ5LXBpbmstczp2YXIoLS1jb2xvci1iZXJyeS1waW5rLTEwMCk7LS1jb2xvci1oZWF0bWFwLWJlcnJ5LXBpbmstbTp2YXIoLS1jb2xvci1iZXJyeS1waW5rLTMwMCk7LS1jb2xvci1oZWF0bWFwLWJlcnJ5LXBpbmstbDp2YXIoLS1jb2xvci1iZXJyeS1waW5rLTUwMCk7LS1jb2xvci1oZWF0bWFwLWJlcnJ5LXBpbmsteGw6dmFyKC0tY29sb3ItYmVycnktcGluay03MDApOy0tY29sb3ItaGVhdG1hcC1iZXJyeS1waW5rLXh4bDp2YXIoLS1jb2xvci1iZXJyeS1waW5rLTkwMCk7LS1jb2xvci1oZWF0bWFwLWJlcnJ5LXBpbmstZW1wdHk6dmFyKC0tY29sb3ItY29sZC1ncmF5LTEwMCk7LS1jb2xvci1oZWF0bWFwLWJlcnJ5LXBpbmstYm9yZGVyOnZhcigtLWNvbG9yLWJlcnJ5LXBpbmstOTAwKTstLWNvbG9yLWhlYXRtYXAtZm9yZXN0LWdyZWVuLXhzOnZhcigtLWNvbG9yLWZvcmVzdC1ncmVlbi01MCk7LS1jb2xvci1oZWF0bWFwLWZvcmVzdC1ncmVlbi1zOnZhcigtLWNvbG9yLWZvcmVzdC1ncmVlbi0xMDApOy0tY29sb3ItaGVhdG1hcC1mb3Jlc3QtZ3JlZW4tbTp2YXIoLS1jb2xvci1mb3Jlc3QtZ3JlZW4tMzAwKTstLWNvbG9yLWhlYXRtYXAtZm9yZXN0LWdyZWVuLWw6dmFyKC0tY29sb3ItZm9yZXN0LWdyZWVuLTUwMCk7LS1jb2xvci1oZWF0bWFwLWZvcmVzdC1ncmVlbi14bDp2YXIoLS1jb2xvci1mb3Jlc3QtZ3JlZW4tNzAwKTstLWNvbG9yLWhlYXRtYXAtZm9yZXN0LWdyZWVuLXh4bDp2YXIoLS1jb2xvci1mb3Jlc3QtZ3JlZW4tOTAwKTstLWNvbG9yLWhlYXRtYXAtZm9yZXN0LWdyZWVuLWVtcHR5OnZhcigtLWNvbG9yLWNvbGQtZ3JheS0xMDApOy0tY29sb3ItaGVhdG1hcC1mb3Jlc3QtZ3JlZW4tYm9yZGVyOnZhcigtLWNvbG9yLWZvcmVzdC1ncmVlbi05MDApOy0tY29sb3ItaGVhdG1hcC1taW50eS1ncmVlbi14czp2YXIoLS1jb2xvci1taW50eS1ncmVlbi01MCk7LS1jb2xvci1oZWF0bWFwLW1pbnR5LWdyZWVuLXM6dmFyKC0tY29sb3ItbWludHktZ3JlZW4tMTAwKTstLWNvbG9yLWhlYXRtYXAtbWludHktZ3JlZW4tbTp2YXIoLS1jb2xvci1taW50eS1ncmVlbi0zMDApOy0tY29sb3ItaGVhdG1hcC1taW50eS1ncmVlbi1sOnZhcigtLWNvbG9yLW1pbnR5LWdyZWVuLTUwMCk7LS1jb2xvci1oZWF0bWFwLW1pbnR5LWdyZWVuLXhsOnZhcigtLWNvbG9yLW1pbnR5LWdyZWVuLTcwMCk7LS1jb2xvci1oZWF0bWFwLW1pbnR5LWdyZWVuLXh4bDp2YXIoLS1jb2xvci1taW50eS1ncmVlbi05MDApOy0tY29sb3ItaGVhdG1hcC1taW50eS1ncmVlbi1lbXB0eTp2YXIoLS1jb2xvci1jb2xkLWdyYXktMTAwKTstLWNvbG9yLWhlYXRtYXAtbWludHktZ3JlZW4tYm9yZGVyOnZhcigtLWNvbG9yLW1pbnR5LWdyZWVuLTkwMCk7LS1jb2xvci1oZWF0bWFwLWdyYXBlcy1wdXJwbGUteHM6dmFyKC0tY29sb3ItZ3JhcGVzLXB1cnBsZS01MCk7LS1jb2xvci1oZWF0bWFwLWdyYXBlcy1wdXJwbGUtczp2YXIoLS1jb2xvci1ncmFwZXMtcHVycGxlLTEwMCk7LS1jb2xvci1oZWF0bWFwLWdyYXBlcy1wdXJwbGUtbTp2YXIoLS1jb2xvci1ncmFwZXMtcHVycGxlLTMwMCk7LS1jb2xvci1oZWF0bWFwLWdyYXBlcy1wdXJwbGUtbDp2YXIoLS1jb2xvci1ncmFwZXMtcHVycGxlLTUwMCk7LS1jb2xvci1oZWF0bWFwLWdyYXBlcy1wdXJwbGUteGw6dmFyKC0tY29sb3ItZ3JhcGVzLXB1cnBsZS03MDApOy0tY29sb3ItaGVhdG1hcC1ncmFwZXMtcHVycGxlLXh4bDp2YXIoLS1jb2xvci1ncmFwZXMtcHVycGxlLTkwMCk7LS1jb2xvci1oZWF0bWFwLWdyYXBlcy1wdXJwbGUtZW1wdHk6dmFyKC0tY29sb3ItY29sZC1ncmF5LTEwMCk7LS1jb2xvci1oZWF0bWFwLWdyYXBlcy1wdXJwbGUtYm9yZGVyOnZhcigtLWNvbG9yLWdyYXBlcy1wdXJwbGUtOTAwKX1bZGF0YS10aGVtZT1kYXJrXXstLWNvbG9yLWhlYWRlci1iZzp2YXIoLS1jb2xvci1ibGFjayk7LS1jb2xvci1ib2R5LWJnOnZhcigtLWNvbG9yLWJsYWNrKTstLWNvbG9yLWJvZHktc2Vjb25kYXJ5LWJnOnZhcigtLWNvbG9yLWNvbGQtZ3JheS05MDApOy0tY29sb3ItYmctcHJpbWFyeTp2YXIoLS1jb2xvci1jb2xkLWdyYXktODUwKTstLWNvbG9yLWJnLXByaW1hcnktaG92ZXI6dmFyKC0tY29sb3ItY29sZC1ncmF5LTgwMCk7LS1jb2xvci1iZy1zZWNvbmRhcnk6dmFyKC0tY29sb3ItY29sZC1ncmF5LTkwMCk7LS1jb2xvci1iZy1oaWdobGlnaHQ6dmFyKC0tY29sb3ItY29sZC1ncmF5LTkwMCk7LS1jb2xvci1iZy1zY3JvbGwtYnV0dG9uczp2YXIoLS1jb2xvci1jb2xkLWdyYXktODAwKTstLWNvbG9yLWxlZ2FjeS1iZy1zY3JvbGwtYnV0dG9uczp2YXIoLS1jb2xvci1jb2xkLWdyYXktNTUwKTstLWNvbG9yLWxlZ2FjeS1iZy13aWRnZXQ6dmFyKC0tY29sb3ItY29sZC1ncmF5LTkwMCk7LS1jb2xvci10ZXh0LXByaW1hcnk6dmFyKC0tY29sb3ItY29sZC1ncmF5LTIwMCk7LS1jb2xvci10ZXh0LXNlY29uZGFyeTp2YXIoLS1jb2xvci1jb2xkLWdyYXktNDUwKTstLWNvbG9yLXRleHQtdGVydGlhcnk6dmFyKC0tY29sb3ItY29sZC1ncmF5LTQwMCk7LS1jb2xvci10ZXh0LWRpc2FibGVkOnZhcigtLWNvbG9yLWNvbGQtZ3JheS02NTApOy0tY29sb3ItYWNjZW50LWNvbnRlbnQ6dmFyKC0tY29sb3Itd2hpdGUpOy0tY29sb3ItZGl2aWRlcjp2YXIoLS1jb2xvci1jb2xkLWdyYXktNzAwKTstLWNvbG9yLWRpdmlkZXItaG92ZXI6dmFyKC0tY29sb3ItY29sZC1ncmF5LTgwMCk7LS1jb2xvci1kaXZpZGVyLXNlY29uZGFyeTp2YXIoLS1jb2xvci1jb2xkLWdyYXktODAwKTstLWNvbG9yLWJveC1zaGFkb3c6dmFyKC0tY29sb3ItY29sZC1ncmF5LTkwMCk7LS1jb2xvci1hY3RpdmUtaG92ZXItdGV4dDp2YXIoLS1jb2xvci1jb2xkLWdyYXktMjAwKTstLWNvbG9yLWFsZXJ0LXRleHQ6dmFyKC0tY29sb3ItY29sZC1ncmF5LTIwMCk7LS1jb2xvci1ib3JkZXI6dmFyKC0tY29sb3ItY29sZC1ncmF5LTc1MCk7LS1jb2xvci1ib3JkZXItY2hhdC1maWVsZHM6dmFyKC0tY29sb3ItY29sZC1ncmF5LTc1MCk7LS1jb2xvci1ib3JkZXItaG92ZXI6dmFyKC0tY29sb3ItY29sZC1ncmF5LTY1MCk7LS1jb2xvci1ib3JkZXItdGFibGU6dmFyKC0tY29sb3ItY29sZC1ncmF5LTgwMCk7LS1jb2xvci1icmFuZDp2YXIoLS1jb2xvci10di1ibHVlLTUwMCk7LS1jb2xvci1icmFuZC1ob3Zlcjp2YXIoLS1jb2xvci10di1ibHVlLTYwMCk7LS1jb2xvci1icmFuZC1hY3RpdmU6dmFyKC0tY29sb3ItdHYtYmx1ZS03MDApOy0tY29sb3ItYnV0dG9uLWhvdmVyLWJnOnZhcigtLWNvbG9yLWNvbGQtZ3JheS04NTApOy0tY29sb3ItY2hhcnQtcGFnZS1iZzp2YXIoLS1jb2xvci1jb2xkLWdyYXktODAwKTstLWNvbG9yLWNvbW1vbi10b29sdGlwLWJnOnZhcigtLWNvbG9yLWNvbGQtZ3JheS03NTApOy0tY29sb3ItZGFuZ2VyOnZhcigtLWNvbG9yLXJpcGUtcmVkLTYwMCk7LS1jb2xvci1kYW5nZXItaG92ZXI6dmFyKC0tY29sb3ItcmlwZS1yZWQtNTAwKTstLWNvbG9yLWRhbmdlci1hY3RpdmU6dmFyKC0tY29sb3ItcmlwZS1yZWQtNDAwKTstLWNvbG9yLWRlcHRocmVuZGVyZXItZmlsbC1zdHlsZTp2YXIoLS1jb2xvci1jb2xkLWdyYXktMTUwKTstLWNvbG9yLWRlcHRocmVuZGVyZXItc3Ryb2tlLXN0eWxlOnZhcigtLWNvbG9yLWNvbGQtZ3JheS02NTApOy0tY29sb3ItZGlzYWJsZWQtYm9yZGVyLWFuZC1jb2xvcjp2YXIoLS1jb2xvci1jb2xkLWdyYXktODAwKTstLWNvbG9yLWRpc2FibGVkLWlucHV0OnZhcigtLWNvbG9yLWNvbGQtZ3JheS03NTApOy0tY29sb3ItZW1wdHktY29udGFpbmVyLW1lc3NhZ2U6dmFyKC0tY29sb3ItY29sZC1ncmF5LTQ1MCk7LS1jb2xvci1oaWdobGlnaHQtbmV3OnZhcigtLWNvbG9yLXR2LWJsdWUtYTgwMCk7LS1jb2xvci1pY29uczp2YXIoLS1jb2xvci1jb2xkLWdyYXktNDUwKTstLWNvbG9yLWlucHV0LWJnOnZhcigtLWNvbG9yLWNvbGQtZ3JheS04MDApOy0tY29sb3ItaW5wdXQtdGV4dGFyZWEtcmVhZG9ubHk6dmFyKC0tY29sb3ItY29sZC1ncmF5LTY1MCk7LS1jb2xvci1pbnB1dC1wbGFjZWhvbGRlci10ZXh0OnZhcigtLWNvbG9yLWNvbGQtZ3JheS03MDApOy0tY29sb3ItaW5wdXQtcHVibGlzaC1iZzp2YXIoLS1jb2xvci1jb2xkLWdyYXktOTAwKTstLWNvbG9yLWl0ZW0tYWN0aXZlLWJsdWU6dmFyKC0tY29sb3ItdHYtYmx1ZS1hOTAwKTstLWNvbG9yLWl0ZW0taG92ZXItYWN0aXZlLWJnOnZhcigtLWNvbG9yLWNvbGQtZ3JheS04MDApOy0tY29sb3ItaXRlbS1ob3Zlci1iZzp2YXIoLS1jb2xvci1jb2xkLWdyYXktODAwKTstLWNvbG9yLWl0ZW0taG92ZXItYmx1ZTp2YXIoLS1jb2xvci10di1ibHVlLWE4MDApOy0tY29sb3ItaXRlbS1zZWxlY3RlZC1ibHVlOnZhcigtLWNvbG9yLXR2LWJsdWUtYTgwMCk7LS1jb2xvci1pdGVtLWFjdGl2ZS10ZXh0OnZhcigtLWNvbG9yLWNvbGQtZ3JheS0yMDApOy0tY29sb3ItaXRlbS1hY3RpdmUtYmc6dmFyKC0tY29sb3ItdHYtYmx1ZS01MDApOy0tY29sb3ItbGluazp2YXIoLS1jb2xvci10di1ibHVlLTUwMCk7LS1jb2xvci1saW5rLWhvdmVyOnZhcigtLWNvbG9yLXR2LWJsdWUtNjAwKTstLWNvbG9yLWxpbmstYWN0aXZlOnZhcigtLWNvbG9yLXR2LWJsdWUtNzAwKTstLWNvbG9yLWxpc3QtaXRlbTp2YXIoLS1jb2xvci1jb2xkLWdyYXktNDUwKTstLWNvbG9yLWxpc3QtbnRoLWNoaWxkLWJnOnZhcigtLWNvbG9yLWNvbGQtZ3JheS04NTApOy0tY29sb3ItbmV3cy1oaWdobGlnaHQ6dmFyKC0tY29sb3ItY29sZC1ncmF5LTgwMCk7LS1jb2xvci1wYW5lLWJnOnZhcigtLWNvbG9yLWNvbGQtZ3JheS05MDApOy0tY29sb3ItcGFuZS1zZWNvbmRhcnktYmc6dmFyKC0tY29sb3ItY29sZC1ncmF5LTg1MCk7LS1jb2xvci1wbGFjZWhvbGRlcjp2YXIoLS1jb2xvci1jb2xkLWdyYXktNjUwKTstLWNvbG9yLXBvcHVwLW1lbnUtaXRlbS1ob3Zlci1iZzp2YXIoLS1jb2xvci1jb2xkLWdyYXktODAwKTstLWNvbG9yLXBvcHVwLW1lbnUtc2VwYXJhdG9yOnZhcigtLWNvbG9yLWNvbGQtZ3JheS03MDApOy0tY29sb3ItcHJpbWFyeS1zeW1ib2w6dmFyKC0tY29sb3Itc2t5LWJsdWUtNTAwKTstLWNvbG9yLXJvdy1ob3Zlci1hY3RpdmUtYmc6dmFyKC0tY29sb3ItY29sZC1ncmF5LTgwMCk7LS1jb2xvci1zYi1zY3JvbGxiYXItYm9keS1iZzp2YXIoLS1jb2xvci1jb2xkLWdyYXktNjUwKTstLWNvbG9yLXNjcmVlbmVyLWRlc2NyaXB0aW9uOnZhcigtLWNvbG9yLWNvbGQtZ3JheS0yMDApOy0tY29sb3Itc2VjdGlvbi1zZXBhcmF0b3ItYm9yZGVyOnZhcigtLWNvbG9yLWNvbGQtZ3JheS03NTApOy0tY29sb3Itc2VhcmNoLWJ1dHRvbi1ob3Zlcjp2YXIoLS1jb2xvci1jb2xkLWdyYXktNzAwKTstLWNvbG9yLXNlcGFyYXRvci10YWJsZS1jaGF0OnZhcigtLWNvbG9yLWNvbGQtZ3JheS03NTApOy0tY29sb3Itc3VjY2Vzczp2YXIoLS1jb2xvci1taW50eS1ncmVlbi03MDApOy0tY29sb3Itc3VjY2Vzcy1ob3Zlcjp2YXIoLS1jb2xvci1taW50eS1ncmVlbi02MDApOy0tY29sb3Itc3VjY2Vzcy1hY3RpdmU6dmFyKC0tY29sb3ItbWludHktZ3JlZW4tNTAwKTstLWNvbG9yLXRhZy1hY3RpdmUtYmc6dmFyKC0tY29sb3ItY29sZC1ncmF5LTc1MCk7LS1jb2xvci10YWctaG92ZXItYmc6dmFyKC0tY29sb3ItY29sZC1ncmF5LTgwMCk7LS1jb2xvci10ZXh0LXJlZ3VsYXI6dmFyKC0tY29sb3ItY29sZC1ncmF5LTIwMCk7LS1jb2xvci10b29sYmFyLWJ1dHRvbi10ZXh0OnZhcigtLWNvbG9yLWNvbGQtZ3JheS0yMDApOy0tY29sb3ItdG9vbGJhci1idXR0b24tdGV4dC1ob3Zlcjp2YXIoLS1jb2xvci1jb2xkLWdyYXktMjAwKTstLWNvbG9yLXRvb2xiYXItYnV0dG9uLXRleHQtYWN0aXZlOnZhcigtLWNvbG9yLXR2LWJsdWUtNTAwKTstLWNvbG9yLXRvb2xiYXItYnV0dG9uLXRleHQtYWN0aXZlLWhvdmVyOnZhcigtLWNvbG9yLXR2LWJsdWUtNjAwKTstLWNvbG9yLXRvb2xiYXItYnV0dG9uLWJhY2tncm91bmQtaG92ZXI6dmFyKC0tY29sb3ItY29sZC1ncmF5LTgwMCk7LS1jb2xvci10b29sYmFyLWJ1dHRvbi1iYWNrZ3JvdW5kLXNlY29uZGFyeS1ob3Zlcjp2YXIoLS1jb2xvci1jb2xkLWdyYXktNzUwKTstLWNvbG9yLXRvb2xiYXItYnV0dG9uLWJhY2tncm91bmQtYWN0aXZlOnZhcigtLWNvbG9yLXR2LWJsdWUtYTkwMCk7LS1jb2xvci10b29sYmFyLWJ1dHRvbi1iYWNrZ3JvdW5kLWFjdGl2ZS1ob3Zlcjp2YXIoLS1jb2xvci10di1ibHVlLWE4MDApOy0tY29sb3ItdG9vbGJhci10b2dnbGUtYnV0dG9uLWJhY2tncm91bmQtYWN0aXZlOnZhcigtLWNvbG9yLXR2LWJsdWUtNTAwKTstLWNvbG9yLXRvb2xiYXItdG9nZ2xlLWJ1dHRvbi1iYWNrZ3JvdW5kLWFjdGl2ZS1ob3Zlcjp2YXIoLS1jb2xvci10di1ibHVlLTYwMCk7LS1jb2xvci10b29sYmFyLXRvZ2dsZS1idXR0b24taWNvbjp2YXIoLS1jb2xvci1jb2xkLWdyYXktNjUwKTstLWNvbG9yLXRvb2xiYXItaW50ZXJhY3RpdmUtZWxlbWVudC10ZXh0LW5vcm1hbDp2YXIoLS1jb2xvci1jb2xkLWdyYXktMjAwKTstLWNvbG9yLXRvb2xiYXItb3BlbmVkLWVsZW1lbnQtYmc6dmFyKC0tY29sb3ItY29sZC1ncmF5LTgwMCk7LS1jb2xvci10b29sYmFyLWRpdmlkZXItYmFja2dyb3VuZDp2YXIoLS1jb2xvci1jb2xkLWdyYXktNzAwKTstLWNvbG9yLXBvcHVwLWJhY2tncm91bmQ6dmFyKC0tY29sb3ItY29sZC1ncmF5LTg1MCk7LS1jb2xvci1wb3B1cC1lbGVtZW50LXRleHQ6dmFyKC0tY29sb3ItY29sZC1ncmF5LTIwMCk7LS1jb2xvci1wb3B1cC1lbGVtZW50LXRleHQtaG92ZXI6dmFyKC0tY29sb3ItY29sZC1ncmF5LTI1MCk7LS1jb2xvci1wb3B1cC1lbGVtZW50LWJhY2tncm91bmQtaG92ZXI6dmFyKC0tY29sb3ItY29sZC1ncmF5LTgwMCk7LS1jb2xvci1wb3B1cC1lbGVtZW50LXNlY29uZGFyeS10ZXh0OnZhcigtLWNvbG9yLWNvbGQtZ3JheS01MDApOy0tY29sb3ItcG9wdXAtZWxlbWVudC1oaW50LXRleHQ6dmFyKC0tY29sb3ItY29sZC1ncmF5LTYwMCk7LS1jb2xvci1wb3B1cC1lbGVtZW50LXRleHQtYWN0aXZlOnZhcigtLWNvbG9yLWNvbGQtZ3JheS0yMDApOy0tY29sb3ItcG9wdXAtZWxlbWVudC1iYWNrZ3JvdW5kLWFjdGl2ZTp2YXIoLS1jb2xvci10di1ibHVlLTUwMCk7LS1jb2xvci1wb3B1cC1lbGVtZW50LXRvb2xib3gtdGV4dDp2YXIoLS1jb2xvci1jb2xkLWdyYXktNTAwKTstLWNvbG9yLXBvcHVwLWVsZW1lbnQtdG9vbGJveC10ZXh0LWhvdmVyOnZhcigtLWNvbG9yLWNvbGQtZ3JheS0yMDApOy0tY29sb3ItcG9wdXAtZWxlbWVudC10b29sYm94LXRleHQtYWN0aXZlLWhvdmVyOnZhcigtLWNvbG9yLXR2LWJsdWUtMjAwKTstLWNvbG9yLXBvcHVwLWVsZW1lbnQtdG9vbGJveC1iYWNrZ3JvdW5kLWhvdmVyOnZhcigtLWNvbG9yLWNvbGQtZ3JheS03NTApOy0tY29sb3ItcG9wdXAtZWxlbWVudC10b29sYm94LWJhY2tncm91bmQtYWN0aXZlLWhvdmVyOnZhcigtLWNvbG9yLXR2LWJsdWUtNzAwKTstLWNvbG9yLXRvb2x0aXAtYmc6dmFyKC0tY29sb3ItY29sZC1ncmF5LTc1MCk7LS1jb2xvci10di1idXR0b24tY2hlY2tlZDp2YXIoLS1jb2xvci1jb2xkLWdyYXktNDUwKTstLWNvbG9yLXR2LWRpYWxvZy1jYXB0aW9uOnZhcigtLWNvbG9yLWNvbGQtZ3JheS01MCk7LS1jb2xvci10di1kcm9wZG93bi1pdGVtLWhvdmVyLWJnOnZhcigtLWNvbG9yLWNvbGQtZ3JheS04MDApOy0tY29sb3ItdW5kZXJsaW5lZC10ZXh0OnZhcigtLWNvbG9yLWNvbGQtZ3JheS00NTApOy0tY29sb3Itd2lkZ2V0LXBhZ2VzLWJnOnZhcigtLWNvbG9yLWNvbGQtZ3JheS05MDApOy0tY29sb3Itd2FybmluZzp2YXIoLS1jb2xvci10YW4tb3JhbmdlLTcwMCk7LS1jb2xvci1mb3JleC1pY29uOnZhcigtLWNvbG9yLXdoaXRlKTstLWNvbG9yLWxpc3QtaXRlbS1hY3RpdmUtYmc6dmFyKC0tY29sb3ItdHYtYmx1ZS01MDApOy0tY29sb3ItbGlzdC1pdGVtLWhvdmVyLWJnOnZhcigtLWNvbG9yLWNvbGQtZ3JheS04MDApOy0tY29sb3ItbGlzdC1pdGVtLXRleHQ6dmFyKC0tY29sb3ItY29sZC1ncmF5LTIwMCk7LS1jb2xvci1wcmljZS1heGlzLWxhYmVsLWJhY2s6dmFyKC0tY29sb3ItY29sZC1ncmF5LTgwMCk7LS1jb2xvci1wcmljZS1heGlzLWxhYmVsLXRleHQ6dmFyKC0tY29sb3ItY29sZC1ncmF5LTUwMCk7LS1jb2xvci1wcmljZS1heGlzLWdlYXI6dmFyKC0tY29sb3ItY29sZC1ncmF5LTIwMCk7LS1jb2xvci1wcmljZS1heGlzLWdlYXItaG92ZXI6dmFyKC0tY29sb3ItY29sZC1ncmF5LTQwMCk7LS1jb2xvci1wcmljZS1heGlzLWhpZ2hsaWdodDp2YXIoLS1jb2xvci1jb2xkLWdyYXktODAwKTstLWNvbG9yLWJpZDp2YXIoLS1jb2xvci10di1ibHVlLTUwMCk7LS1jb2xvci1zY3JvbGwtYmc6dmFyKC0tY29sb3ItY29sZC1ncmF5LTc1MCk7LS1jb2xvci1zY3JvbGwtYm9yZGVyOnZhcigtLWNvbG9yLWNvbGQtZ3JheS04NTApOy0tY29sb3Itd2lkZ2V0LWJvcmRlcjp2YXIoLS1jb2xvci1jb2xkLWdyYXktODAwKTstLWNvbG9yLXNjcm9sbC1idXR0b25zLWFycm93OnZhcigtLWNvbG9yLXdoaXRlKTstLWNvbG9yLWNvbnRyb2wtaW50ZW50LWRlZmF1bHQ6dmFyKC0tY29sb3ItY29sZC1ncmF5LTY1MCk7LS1jb2xvci1jb250cm9sLWludGVudC1zdWNjZXNzOnZhcigtLWNvbG9yLW1pbnR5LWdyZWVuLTUwMCk7LS1jb2xvci1jb250cm9sLWludGVudC1wcmltYXJ5OnZhcigtLWNvbG9yLXR2LWJsdWUtNTAwKTstLWNvbG9yLWNvbnRyb2wtaW50ZW50LXdhcm5pbmc6dmFyKC0tY29sb3ItdGFuLW9yYW5nZS01MDApOy0tY29sb3ItY29udHJvbC1pbnRlbnQtZGFuZ2VyOnZhcigtLWNvbG9yLXJpcGUtcmVkLTUwMCk7LS1jb2xvci1ncm93aW5nOnZhcigtLWNvbG9yLW1pbnR5LWdyZWVuLTUwMCk7LS1jb2xvci1mYWxsaW5nOnZhcigtLWNvbG9yLXJpcGUtcmVkLTUwMCk7LS1jb2xvci1nb3RvLWxhYmVsLWJhY2tncm91bmQ6dmFyKC0tY29sb3ItY29sZC1ncmF5LTY1MCk7LS1jb2xvci1wcmUtbWFya2V0OnZhcigtLWNvbG9yLXRhbi1vcmFuZ2UtNjAwKTstLWNvbG9yLXBvc3QtbWFya2V0OnZhcigtLWNvbG9yLXR2LWJsdWUtNTAwKTstLWNvbG9yLW5vdGFjY3VyYXRlLW1vZGU6dmFyKC0tY29sb3ItYmVycnktcGluay1hMjAwKTstLWNvbG9yLWRlbGF5LW1vZGU6dmFyKC0tY29sb3ItdGFuLW9yYW5nZS03MDApOy0tY29sb3ItZGVsYXktbW9kZS1iZzp2YXIoLS1jb2xvci10YW4tb3JhbmdlLTQwMCk7LS1jb2xvci1saXN0LWl0ZW0tYmctaGlnaGxpZ2h0ZWQ6dmFyKC0tY29sb3ItdHYtYmx1ZS1hOTAwKTstLWNvbG9yLWxpc3QtaXRlbS1iZy1zZWxlY3RlZDp2YXIoLS1jb2xvci10di1ibHVlLWE4MDApOy0tY29sb3ItbGlzdC1pdGVtLWJnLWhpZ2hsaWdodGVkLWhvdmVyOnZhcigtLWNvbG9yLXR2LWJsdWUtYTgwMCk7LS1jb2xvci1saXN0LWl0ZW0tYmctc2VsZWN0ZWQtaG92ZXI6dmFyKC0tY29sb3ItdHYtYmx1ZS1hNzAwKTstLWNvbG9yLXNjcmVlbmVyLWhlYWRlci1iZzp2YXIoLS1jb2xvci1jb2xkLWdyYXktODUwKTstLWNvbG9yLXNjcmVlbmVyLWhlYWRlci1iZy1ob3Zlcjp2YXIoLS1jb2xvci1jb2xkLWdyYXktODAwKTstLWNvbG9yLW92ZXJsYXk6dmFyKC0tY29sb3ItY29sZC1ncmF5LTk1MCk7LS1jb2xvci1ib29zdC1idXR0b24tY29udGVudC1zZWxlY3RlZDp2YXIoLS1jb2xvci10di1ibHVlLTEwMCk7LS1jb2xvci1ib29zdC1idXR0b24tY29udGVudC1ob3Zlcjp2YXIoLS1jb2xvci13aGl0ZSk7LS1jb2xvci1ib29zdC1idXR0b24tYmctaG92ZXI6dmFyKC0tY29sb3ItY29sZC1ncmF5LTc1MCk7LS1jb2xvci1ib29zdC1idXR0b24tYm9yZGVyLWhvdmVyOnZhcigtLWNvbG9yLWNvbGQtZ3JheS03NTApOy0tY29sb3ItYm9vc3QtYnV0dG9uLWJvcmRlci1kZWZhdWx0OnZhcigtLWNvbG9yLWNvbGQtZ3JheS03MDApOy0tY29sb3IteC10d2l0dGVyLWNvbnRlbnQ6dmFyKC0tY29sb3Itd2hpdGUpOy0tY29sb3ItY2FyZC1ib3JkZXI6dmFyKC0tY29sb3ItY29sZC1ncmF5LTcwMCk7LS1jb2xvci1jYXJkLWJvcmRlci1ob3Zlcjp2YXIoLS1jb2xvci1jb2xkLWdyYXktNjAwKTstLWNvbG9yLWJhY2tncm91bmQtc3BlY2lhbC1wcmltYXJ5OnZhcigtLWNvbG9yLWJsYWNrKTstLWNvbG9yLXN0cm9rZS1zcGVjaWFsLXByaW1hcnk6dmFyKC0tY29sb3ItY29sZC1ncmF5LTgwMCk7LS1jb2xvci1zZWxlY3Rpb24tYmc6dmFyKC0tY29sb3ItdHYtYmx1ZS1hNzAwKTstLWNvbG9yLWRlZmF1bHQtZ3JheTp2YXIoLS1jb2xvci1jb2xkLWdyYXktNDUwKTstLWNvbG9yLWZlYXR1cmVkLWJyb2tlci1iYWRnZS1iZzp2YXIoLS1jb2xvci13aGl0ZSk7LS1jb2xvci1mZWF0dXJlZC1icm9rZXItYmFkZ2UtYmctaG92ZXI6dmFyKC0tY29sb3ItY29sZC1ncmF5LTEwMCk7LS1jb2xvci1mZWF0dXJlZC1icm9rZXItYmFkZ2UtdGV4dDp2YXIoLS1jb2xvci1jb2xkLWdyYXktOTAwKTstLWNvbG9yLWJhY2tncm91bmQtcHJpbWFyeTp2YXIoLS1jb2xvci1ibGFjayk7LS1jb2xvci1iYWNrZ3JvdW5kLXNlY29uZGFyeTp2YXIoLS1jb2xvci1jb2xkLWdyYXktODUwKTstLWNvbG9yLWJhY2tncm91bmQtdGVydGlhcnk6dmFyKC0tY29sb3ItY29sZC1ncmF5LTgwMCk7LS1jb2xvci1iYWNrZ3JvdW5kLWRhcmstcHJpbWFyeTp2YXIoLS1jb2xvci1jb2xkLWdyYXktNzAwKTstLWNvbG9yLWJhY2tncm91bmQtZGFyay1zZWNvbmRhcnk6dmFyKC0tY29sb3ItY29sZC1ncmF5LTg1MCk7LS1jb2xvci1iYWNrZ3JvdW5kLWRpc2FibGVkOnZhcigtLWNvbG9yLWNvbGQtZ3JheS03NTApOy0tY29sb3ItYmFja2dyb3VuZC1zcGVjaWFsLXNlY29uZGFyeTp2YXIoLS1jb2xvci10di1ibHVlLWE5MDApOy0tY29sb3ItYmFja2dyb3VuZC1zcGVjaWFsLXRlcnRpYXJ5OnZhcigtLWNvbG9yLXR2LWJsdWUtYTgwMCk7LS1jb2xvci1iYWNrZ3JvdW5kLXBhZ2UtcGxhdGZvcm06dmFyKC0tY29sb3ItY29sZC1ncmF5LTkwMCk7LS1jb2xvci1iYWNrZ3JvdW5kLXBhZ2UtcHJvbW86dmFyKC0tY29sb3ItYmxhY2spOy0tY29sb3ItYmFja2dyb3VuZC1wYWdlLXNvY2lhbDp2YXIoLS1jb2xvci1ibGFjayk7LS1jb2xvci1iYWNrZ3JvdW5kLWRpYWxvZy1zaW1wbGU6dmFyKC0tY29sb3ItY29sZC1ncmF5LTg1MCk7LS1jb2xvci1iYWNrZ3JvdW5kLWRpYWxvZy1jb21wbGljYXRlZDp2YXIoLS1jb2xvci1jb2xkLWdyYXktODUwKTstLWNvbG9yLWJhY2tncm91bmQtZGlhbG9nLXByb21vOnZhcigtLWNvbG9yLWNvbGQtZ3JheS04NTApOy0tY29sb3ItYmFja2dyb3VuZC1kaWFsb2ctZnVsbHNjcmVlbjp2YXIoLS1jb2xvci1ibGFjayk7LS1jb2xvci1jb250ZW50LWljb25zLXByaW1hcnk6dmFyKC0tY29sb3ItY29sZC1ncmF5LTIwMCk7LS1jb2xvci1jb250ZW50LWljb25zLXNlY29uZGFyeTp2YXIoLS1jb2xvci1jb2xkLWdyYXktNDUwKTstLWNvbG9yLWNvbnRlbnQtaWNvbnMtdGVydGlhcnk6dmFyKC0tY29sb3ItY29sZC1ncmF5LTY1MCk7LS1jb2xvci1jb250ZW50LXRleHQtcHJvbW8tcHJpbWFyeTp2YXIoLS1jb2xvci13aGl0ZSk7LS1jb2xvci1jb250ZW50LXRleHQtcHJvbW8tc2Vjb25kYXJ5OnZhcigtLWNvbG9yLWNvbGQtZ3JheS0yMDApOy0tY29sb3ItY29udGVudC10ZXh0LXByb21vLXRlcnRpYXJ5OnZhcigtLWNvbG9yLWNvbGQtZ3JheS00NTApOy0tY29sb3ItY29udGVudC10ZXh0LXNvY2lhbC1wcmltYXJ5OnZhcigtLWNvbG9yLWNvbGQtZ3JheS0yMDApOy0tY29sb3ItY29udGVudC10ZXh0LXNvY2lhbC1zZWNvbmRhcnk6dmFyKC0tY29sb3ItY29sZC1ncmF5LTQ1MCk7LS1jb2xvci1jb250ZW50LXRleHQtc29jaWFsLXRlcnRpYXJ5OnZhcigtLWNvbG9yLWNvbGQtZ3JheS02NTApOy0tY29sb3ItZGl2aWRlci1saW5lLXByaW1hcnktc3BlY2lhbDp2YXIoLS1jb2xvci10di1ibHVlLTIwMCk7LS1jb2xvci1kaXZpZGVyLWxpbmUtc2Vjb25kYXJ5LXNwZWNpYWw6dmFyKC0tY29sb3ItdHYtYmx1ZS1hODAwKTstLWNvbG9yLWRpdmlkZXItbGluZS1wcmltYXJ5OnZhcigtLWNvbG9yLWNvbGQtZ3JheS03NTApOy0tY29sb3ItZGl2aWRlci1saW5lLXNlY29uZGFyeTp2YXIoLS1jb2xvci1jb2xkLWdyYXktODAwKTstLWNvbG9yLWxpbmstcHJpbWFyeS1kZWZhdWx0OnZhcigtLWNvbG9yLXR2LWJsdWUtMzAwKTstLWNvbG9yLWxpbmstcHJpbWFyeS1ob3Zlcjp2YXIoLS1jb2xvci10di1ibHVlLTQwMCk7LS1jb2xvci1saW5rLXByaW1hcnktYWN0aXZlOnZhcigtLWNvbG9yLXR2LWJsdWUtNTAwKTstLWNvbG9yLWxpbmstc2Vjb25kYXJ5LWRlZmF1bHQ6dmFyKC0tY29sb3ItdHYtYmx1ZS1hMjAwKTstLWNvbG9yLWxpbmstc2Vjb25kYXJ5LWhvdmVyOnZhcigtLWNvbG9yLXR2LWJsdWUtNDAwKTstLWNvbG9yLWxpbmstc2Vjb25kYXJ5LWFjdGl2ZTp2YXIoLS1jb2xvci10di1ibHVlLTUwMCk7LS1jb2xvci1zdGF0aWMtd2FybmluZzp2YXIoLS1jb2xvci10YW4tb3JhbmdlLTUwMCk7LS1jb2xvci1zdGF0aWMtZGFuZ2VyOnZhcigtLWNvbG9yLXJpcGUtcmVkLTUwMCk7LS1jb2xvci1zdGF0aWMtaGlnaGxpZ2h0OnZhcigtLWNvbG9yLXR2LWJsdWUtYTkwMCk7LS1jb2xvci1zdGF0aWMtbmV1dHJhbDp2YXIoLS1jb2xvci1jb2xkLWdyYXktNDUwKTstLWNvbG9yLXN0YXRpYy1zdWNjZXNzOnZhcigtLWNvbG9yLW1pbnR5LWdyZWVuLTUwMCk7LS1jb2xvci1idXR0b24tY29udGVudC1kaXNhYmxlZDp2YXIoLS1jb2xvci1jb2xkLWdyYXktNjUwKTstLWNvbG9yLWJ1dHRvbi1jb250ZW50LWdob3N0LW5ldXRyYWwtYm9sZC1kZWZhdWx0OnZhcigtLWNvbG9yLWNvbGQtZ3JheS0yMDApOy0tY29sb3ItYnV0dG9uLWNvbnRlbnQtZ2hvc3QtbmV1dHJhbC1ib2xkLWhvdmVyOnZhcigtLWNvbG9yLXdoaXRlKTstLWNvbG9yLWJ1dHRvbi1jb250ZW50LWdob3N0LW5ldXRyYWwtYm9sZC1hY3RpdmU6dmFyKC0tY29sb3ItY29sZC1ncmF5LTkwMCk7LS1jb2xvci1idXR0b24tY29udGVudC1naG9zdC1hY2NlbnQtZGVmYXVsdDp2YXIoLS1jb2xvci10di1ibHVlLTUwMCk7LS1jb2xvci1idXR0b24tY29udGVudC1naG9zdC1hY2NlbnQtaG92ZXI6dmFyKC0tY29sb3ItdHYtYmx1ZS01MDApOy0tY29sb3ItYnV0dG9uLWNvbnRlbnQtZ2hvc3QtYWNjZW50LWFjdGl2ZTp2YXIoLS1jb2xvci13aGl0ZSk7LS1jb2xvci1idXR0b24tY29udGVudC1naG9zdC1uZXV0cmFsLWRlZmF1bHQ6dmFyKC0tY29sb3ItY29sZC1ncmF5LTIwMCk7LS1jb2xvci1idXR0b24tY29udGVudC1naG9zdC1uZXV0cmFsLWhvdmVyOnZhcigtLWNvbG9yLXdoaXRlKTstLWNvbG9yLWJ1dHRvbi1jb250ZW50LWdob3N0LW5ldXRyYWwtYWN0aXZlOnZhcigtLWNvbG9yLXdoaXRlKTstLWNvbG9yLWJ1dHRvbi1jb250ZW50LWdob3N0LW5ldXRyYWwtaXMtc2VsZWN0ZWQ6dmFyKC0tY29sb3ItY29sZC1ncmF5LTIwMCk7LS1jb2xvci1idXR0b24tY29udGVudC1wcmltYXJ5LW5ldXRyYWwtYm9sZC1kZWZhdWx0OnZhcigtLWNvbG9yLWNvbGQtZ3JheS05MDApOy0tY29sb3ItYnV0dG9uLWNvbnRlbnQtcHJpbWFyeS1uZXV0cmFsLWJvbGQtaG92ZXI6dmFyKC0tY29sb3ItY29sZC1ncmF5LTkwMCk7LS1jb2xvci1idXR0b24tY29udGVudC1wcmltYXJ5LW5ldXRyYWwtYm9sZC1hY3RpdmU6dmFyKC0tY29sb3ItY29sZC1ncmF5LTkwMCk7LS1jb2xvci1idXR0b24tY29udGVudC1wcmltYXJ5LWFjY2VudC1kZWZhdWx0OnZhcigtLWNvbG9yLXdoaXRlKTstLWNvbG9yLWJ1dHRvbi1jb250ZW50LXByaW1hcnktYWNjZW50LWhvdmVyOnZhcigtLWNvbG9yLXdoaXRlKTstLWNvbG9yLWJ1dHRvbi1jb250ZW50LXByaW1hcnktYWNjZW50LWFjdGl2ZTp2YXIoLS1jb2xvci13aGl0ZSk7LS1jb2xvci1idXR0b24tY29udGVudC1wcmltYXJ5LW5ldXRyYWwtZGVmYXVsdDp2YXIoLS1jb2xvci13aGl0ZSk7LS1jb2xvci1idXR0b24tY29udGVudC1wcmltYXJ5LW5ldXRyYWwtaG92ZXI6dmFyKC0tY29sb3Itd2hpdGUpOy0tY29sb3ItYnV0dG9uLWNvbnRlbnQtcHJpbWFyeS1uZXV0cmFsLWFjdGl2ZTp2YXIoLS1jb2xvci13aGl0ZSk7LS1jb2xvci1idXR0b24tY29udGVudC1wcmltYXJ5LW5ldXRyYWwtaXMtc2VsZWN0ZWQ6dmFyKC0tY29sb3Itd2hpdGUpOy0tY29sb3ItYnV0dG9uLWNvbnRlbnQtcHJpbWFyeS1zdWNjZXNzLWRlZmF1bHQ6dmFyKC0tY29sb3Itd2hpdGUpOy0tY29sb3ItYnV0dG9uLWNvbnRlbnQtcHJpbWFyeS1zdWNjZXNzLWhvdmVyOnZhcigtLWNvbG9yLXdoaXRlKTstLWNvbG9yLWJ1dHRvbi1jb250ZW50LXByaW1hcnktc3VjY2Vzcy1hY3RpdmU6dmFyKC0tY29sb3Itd2hpdGUpOy0tY29sb3ItYnV0dG9uLWNvbnRlbnQtcHJpbWFyeS1hY2NlbnQtbGlnaHQtZGVmYXVsdDp2YXIoLS1jb2xvci10di1ibHVlLTIwMCk7LS1jb2xvci1idXR0b24tY29udGVudC1wcmltYXJ5LWFjY2VudC1saWdodC1ob3Zlcjp2YXIoLS1jb2xvci10di1ibHVlLTIwMCk7LS1jb2xvci1idXR0b24tY29udGVudC1wcmltYXJ5LWFjY2VudC1saWdodC1hY3RpdmU6dmFyKC0tY29sb3ItdHYtYmx1ZS0yMDApOy0tY29sb3ItYnV0dG9uLWNvbnRlbnQtcHJpbWFyeS1hY2NlbnQtbGlnaHQtaXMtc2VsZWN0ZWQ6dmFyKC0tY29sb3ItdHYtYmx1ZS0yMDApOy0tY29sb3ItYnV0dG9uLWNvbnRlbnQtcHJpbWFyeS1kYW5nZXItZGVmYXVsdDp2YXIoLS1jb2xvci13aGl0ZSk7LS1jb2xvci1idXR0b24tY29udGVudC1wcmltYXJ5LWRhbmdlci1ob3Zlcjp2YXIoLS1jb2xvci13aGl0ZSk7LS1jb2xvci1idXR0b24tY29udGVudC1wcmltYXJ5LWRhbmdlci1hY3RpdmU6dmFyKC0tY29sb3Itd2hpdGUpOy0tY29sb3ItYnV0dG9uLWNvbnRlbnQtcXVpZXQtcHJpbWFyeS1uZXV0cmFsLWJvbGQtZGVmYXVsdDp2YXIoLS1jb2xvci1jb2xkLWdyYXktMjAwKTstLWNvbG9yLWJ1dHRvbi1jb250ZW50LXF1aWV0LXByaW1hcnktbmV1dHJhbC1ib2xkLWhvdmVyOnZhcigtLWNvbG9yLWNvbGQtZ3JheS05MDApOy0tY29sb3ItYnV0dG9uLWNvbnRlbnQtcXVpZXQtcHJpbWFyeS1uZXV0cmFsLWJvbGQtYWN0aXZlOnZhcigtLWNvbG9yLWNvbGQtZ3JheS05MDApOy0tY29sb3ItYnV0dG9uLWNvbnRlbnQtcXVpZXQtcHJpbWFyeS1uZXV0cmFsLWRlZmF1bHQ6dmFyKC0tY29sb3ItY29sZC1ncmF5LTIwMCk7LS1jb2xvci1idXR0b24tY29udGVudC1xdWlldC1wcmltYXJ5LW5ldXRyYWwtaG92ZXI6dmFyKC0tY29sb3Itd2hpdGUpOy0tY29sb3ItYnV0dG9uLWNvbnRlbnQtcXVpZXQtcHJpbWFyeS1uZXV0cmFsLWFjdGl2ZTp2YXIoLS1jb2xvci13aGl0ZSk7LS1jb2xvci1idXR0b24tY29udGVudC1xdWlldC1wcmltYXJ5LW5ldXRyYWwtaXMtc2VsZWN0ZWQ6dmFyKC0tY29sb3Itd2hpdGUpOy0tY29sb3ItYnV0dG9uLWNvbnRlbnQtcXVpZXQtcHJpbWFyeS1hY2NlbnQtbGlnaHQtZGVmYXVsdDp2YXIoLS1jb2xvci10di1ibHVlLTUwMCk7LS1jb2xvci1idXR0b24tY29udGVudC1xdWlldC1wcmltYXJ5LWFjY2VudC1saWdodC1ob3Zlcjp2YXIoLS1jb2xvci10di1ibHVlLTEwMCk7LS1jb2xvci1idXR0b24tY29udGVudC1xdWlldC1wcmltYXJ5LWFjY2VudC1saWdodC1hY3RpdmU6dmFyKC0tY29sb3ItdHYtYmx1ZS0xMDApOy0tY29sb3ItYnV0dG9uLWNvbnRlbnQtc2Vjb25kYXJ5LW5ldXRyYWwtYm9sZC1kZWZhdWx0OnZhcigtLWNvbG9yLXdoaXRlKTstLWNvbG9yLWJ1dHRvbi1jb250ZW50LXNlY29uZGFyeS1uZXV0cmFsLWJvbGQtaG92ZXI6dmFyKC0tY29sb3ItY29sZC1ncmF5LTkwMCk7LS1jb2xvci1idXR0b24tY29udGVudC1zZWNvbmRhcnktbmV1dHJhbC1ib2xkLWFjdGl2ZTp2YXIoLS1jb2xvci1jb2xkLWdyYXktOTAwKTstLWNvbG9yLWJ1dHRvbi1jb250ZW50LXNlY29uZGFyeS1hY2NlbnQtZGVmYXVsdDp2YXIoLS1jb2xvci10di1ibHVlLTUwMCk7LS1jb2xvci1idXR0b24tY29udGVudC1zZWNvbmRhcnktYWNjZW50LWhvdmVyOnZhcigtLWNvbG9yLXdoaXRlKTstLWNvbG9yLWJ1dHRvbi1jb250ZW50LXNlY29uZGFyeS1hY2NlbnQtYWN0aXZlOnZhcigtLWNvbG9yLXdoaXRlKTstLWNvbG9yLWJ1dHRvbi1jb250ZW50LXNlY29uZGFyeS1uZXV0cmFsLWRlZmF1bHQ6dmFyKC0tY29sb3ItY29sZC1ncmF5LTIwMCk7LS1jb2xvci1idXR0b24tY29udGVudC1zZWNvbmRhcnktbmV1dHJhbC1ob3Zlcjp2YXIoLS1jb2xvci13aGl0ZSk7LS1jb2xvci1idXR0b24tY29udGVudC1zZWNvbmRhcnktbmV1dHJhbC1hY3RpdmU6dmFyKC0tY29sb3Itd2hpdGUpOy0tY29sb3ItYnV0dG9uLWNvbnRlbnQtc2Vjb25kYXJ5LW5ldXRyYWwtaXMtc2VsZWN0ZWQ6dmFyKC0tY29sb3Itd2hpdGUpOy0tY29sb3ItYnV0dG9uLWNvbnRlbnQtc2Vjb25kYXJ5LXN1Y2Nlc3MtZGVmYXVsdDp2YXIoLS1jb2xvci1taW50eS1ncmVlbi01MDApOy0tY29sb3ItYnV0dG9uLWNvbnRlbnQtc2Vjb25kYXJ5LXN1Y2Nlc3MtaG92ZXI6dmFyKC0tY29sb3Itd2hpdGUpOy0tY29sb3ItYnV0dG9uLWNvbnRlbnQtc2Vjb25kYXJ5LXN1Y2Nlc3MtYWN0aXZlOnZhcigtLWNvbG9yLXdoaXRlKTstLWNvbG9yLWJ1dHRvbi1jb250ZW50LXNlY29uZGFyeS1hY2NlbnQtbGlnaHQtZGVmYXVsdDp2YXIoLS1jb2xvci10di1ibHVlLTIwMCk7LS1jb2xvci1idXR0b24tY29udGVudC1zZWNvbmRhcnktYWNjZW50LWxpZ2h0LWhvdmVyOnZhcigtLWNvbG9yLXR2LWJsdWUtMjAwKTstLWNvbG9yLWJ1dHRvbi1jb250ZW50LXNlY29uZGFyeS1hY2NlbnQtbGlnaHQtYWN0aXZlOnZhcigtLWNvbG9yLXR2LWJsdWUtMjAwKTstLWNvbG9yLWJ1dHRvbi1jb250ZW50LXNlY29uZGFyeS1hY2NlbnQtbGlnaHQtaXMtc2VsZWN0ZWQ6dmFyKC0tY29sb3ItdHYtYmx1ZS0yMDApOy0tY29sb3ItYnV0dG9uLWNvbnRlbnQtc2Vjb25kYXJ5LWRhbmdlci1kZWZhdWx0OnZhcigtLWNvbG9yLXJpcGUtcmVkLTUwMCk7LS1jb2xvci1idXR0b24tY29udGVudC1zZWNvbmRhcnktZGFuZ2VyLWhvdmVyOnZhcigtLWNvbG9yLXdoaXRlKTstLWNvbG9yLWJ1dHRvbi1jb250ZW50LXNlY29uZGFyeS1kYW5nZXItYWN0aXZlOnZhcigtLWNvbG9yLXdoaXRlKTstLWNvbG9yLWJ1dHRvbi1maWxsX2JvcmRlci1kaXNhYmxlZDp2YXIoLS1jb2xvci1jb2xkLWdyYXktNzUwKTstLWNvbG9yLXN0YXRpYy10cmFuc3BhcmVudDp2YXIoLS1jb2xvci10cmFuc3BhcmVudCk7LS1jb2xvci1idXR0b24tZmlsbF9ib3JkZXItZ2hvc3QtbmV1dHJhbC1ib2xkLWRlZmF1bHQ6dmFyKC0tY29sb3Itc3RhdGljLXRyYW5zcGFyZW50KTstLWNvbG9yLWJ1dHRvbi1maWxsX2JvcmRlci1naG9zdC1uZXV0cmFsLWJvbGQtaG92ZXI6dmFyKC0tY29sb3ItY29sZC1ncmF5LTEwMCk7LS1jb2xvci1idXR0b24tZmlsbF9ib3JkZXItZ2hvc3QtbmV1dHJhbC1ib2xkLWFjdGl2ZTp2YXIoLS1jb2xvci1jb2xkLWdyYXktMjAwKTstLWNvbG9yLWJ1dHRvbi1maWxsX2JvcmRlci1naG9zdC1hY2NlbnQtZGVmYXVsdDp2YXIoLS1jb2xvci1zdGF0aWMtdHJhbnNwYXJlbnQpOy0tY29sb3ItYnV0dG9uLWZpbGxfYm9yZGVyLWdob3N0LWFjY2VudC1ob3Zlcjp2YXIoLS1jb2xvci10di1ibHVlLTUwMCk7LS1jb2xvci1idXR0b24tZmlsbF9ib3JkZXItZ2hvc3QtYWNjZW50LWFjdGl2ZTp2YXIoLS1jb2xvci10di1ibHVlLTcwMCk7LS1jb2xvci1idXR0b24tZmlsbF9ib3JkZXItZ2hvc3QtbmV1dHJhbC1kZWZhdWx0OnZhcigtLWNvbG9yLXN0YXRpYy10cmFuc3BhcmVudCk7LS1jb2xvci1idXR0b24tZmlsbF9ib3JkZXItZ2hvc3QtbmV1dHJhbC1ob3Zlcjp2YXIoLS1jb2xvci1jb2xkLWdyYXktODAwKTstLWNvbG9yLWJ1dHRvbi1maWxsX2JvcmRlci1naG9zdC1uZXV0cmFsLWFjdGl2ZTp2YXIoLS1jb2xvci1jb2xkLWdyYXktNzUwKTstLWNvbG9yLWJ1dHRvbi1maWxsX2JvcmRlci1naG9zdC1uZXV0cmFsLWlzLXNlbGVjdGVkOnZhcigtLWNvbG9yLXN0YXRpYy10cmFuc3BhcmVudCk7LS1jb2xvci1idXR0b24tZmlsbF9ib3JkZXItZ2hvc3QtYWNjZW50LWxpZ2h0LWRlZmF1bHQ6dmFyKC0tY29sb3Itc3RhdGljLXRyYW5zcGFyZW50KTstLWNvbG9yLWJ1dHRvbi1maWxsX2JvcmRlci1naG9zdC1hY2NlbnQtbGlnaHQtaG92ZXI6dmFyKC0tY29sb3ItdHYtYmx1ZS1hNzAwKTstLWNvbG9yLWJ1dHRvbi1maWxsX2JvcmRlci1naG9zdC1hY2NlbnQtbGlnaHQtYWN0aXZlOnZhcigtLWNvbG9yLXR2LWJsdWUtOTAwKTstLWNvbG9yLWJ1dHRvbi1maWxsX2JvcmRlci1naG9zdC1hY2NlbnQtbGlnaHQtaXMtc2VsZWN0ZWQ6dmFyKC0tY29sb3ItdHYtYmx1ZS1hNzAwKTstLWNvbG9yLWJ1dHRvbi1maWxsX2JvcmRlci1wcmltYXJ5LW5ldXRyYWwtYm9sZC1kZWZhdWx0OnZhcigtLWNvbG9yLXdoaXRlKTstLWNvbG9yLWJ1dHRvbi1maWxsX2JvcmRlci1wcmltYXJ5LW5ldXRyYWwtYm9sZC1ob3Zlcjp2YXIoLS1jb2xvci1jb2xkLWdyYXktMTAwKTstLWNvbG9yLWJ1dHRvbi1maWxsX2JvcmRlci1wcmltYXJ5LW5ldXRyYWwtYm9sZC1hY3RpdmU6dmFyKC0tY29sb3ItY29sZC1ncmF5LTIwMCk7LS1jb2xvci1idXR0b24tZmlsbF9ib3JkZXItcHJpbWFyeS1hY2NlbnQtZGVmYXVsdDp2YXIoLS1jb2xvci10di1ibHVlLTUwMCk7LS1jb2xvci1idXR0b24tZmlsbF9ib3JkZXItcHJpbWFyeS1hY2NlbnQtaG92ZXI6dmFyKC0tY29sb3ItdHYtYmx1ZS02MDApOy0tY29sb3ItYnV0dG9uLWZpbGxfYm9yZGVyLXByaW1hcnktYWNjZW50LWFjdGl2ZTp2YXIoLS1jb2xvci10di1ibHVlLTcwMCk7LS1jb2xvci1idXR0b24tZmlsbF9ib3JkZXItcHJpbWFyeS1uZXV0cmFsLWRlZmF1bHQ6dmFyKC0tY29sb3ItY29sZC1ncmF5LTgwMCk7LS1jb2xvci1idXR0b24tZmlsbF9ib3JkZXItcHJpbWFyeS1uZXV0cmFsLWhvdmVyOnZhcigtLWNvbG9yLWNvbGQtZ3JheS03NTApOy0tY29sb3ItYnV0dG9uLWZpbGxfYm9yZGVyLXByaW1hcnktbmV1dHJhbC1hY3RpdmU6dmFyKC0tY29sb3ItY29sZC1ncmF5LTcwMCk7LS1jb2xvci1idXR0b24tZmlsbF9ib3JkZXItcHJpbWFyeS1uZXV0cmFsLWlzLXNlbGVjdGVkOnZhcigtLWNvbG9yLWNvbGQtZ3JheS04MDApOy0tY29sb3ItYnV0dG9uLWZpbGxfYm9yZGVyLXByaW1hcnktc3VjY2Vzcy1kZWZhdWx0OnZhcigtLWNvbG9yLW1pbnR5LWdyZWVuLTUwMCk7LS1jb2xvci1idXR0b24tZmlsbF9ib3JkZXItcHJpbWFyeS1zdWNjZXNzLWhvdmVyOnZhcigtLWNvbG9yLW1pbnR5LWdyZWVuLTYwMCk7LS1jb2xvci1idXR0b24tZmlsbF9ib3JkZXItcHJpbWFyeS1zdWNjZXNzLWFjdGl2ZTp2YXIoLS1jb2xvci1taW50eS1ncmVlbi03MDApOy0tY29sb3ItYnV0dG9uLWZpbGxfYm9yZGVyLXByaW1hcnktYWNjZW50LWxpZ2h0LWRlZmF1bHQ6dmFyKC0tY29sb3ItdHYtYmx1ZS1hODAwKTstLWNvbG9yLWJ1dHRvbi1maWxsX2JvcmRlci1wcmltYXJ5LWFjY2VudC1saWdodC1ob3Zlcjp2YXIoLS1jb2xvci10di1ibHVlLWE3MDApOy0tY29sb3ItYnV0dG9uLWZpbGxfYm9yZGVyLXByaW1hcnktYWNjZW50LWxpZ2h0LWFjdGl2ZTp2YXIoLS1jb2xvci10di1ibHVlLTkwMCk7LS1jb2xvci1idXR0b24tZmlsbF9ib3JkZXItcHJpbWFyeS1hY2NlbnQtbGlnaHQtaXMtc2VsZWN0ZWQ6dmFyKC0tY29sb3ItdHYtYmx1ZS1hNzAwKTstLWNvbG9yLWJ1dHRvbi1maWxsX2JvcmRlci1wcmltYXJ5LWRhbmdlci1kZWZhdWx0OnZhcigtLWNvbG9yLXJpcGUtcmVkLTUwMCk7LS1jb2xvci1idXR0b24tZmlsbF9ib3JkZXItcHJpbWFyeS1kYW5nZXItaG92ZXI6dmFyKC0tY29sb3ItcmlwZS1yZWQtNjAwKTstLWNvbG9yLWJ1dHRvbi1maWxsX2JvcmRlci1wcmltYXJ5LWRhbmdlci1hY3RpdmU6dmFyKC0tY29sb3ItcmlwZS1yZWQtNzAwKTstLWNvbG9yLWJ1dHRvbi1maWxsX2JvcmRlci1xdWlldC1wcmltYXJ5LW5ldXRyYWwtYm9sZC1kZWZhdWx0OnZhcigtLWNvbG9yLWJsYWNrKTstLWNvbG9yLWJ1dHRvbi1maWxsX2JvcmRlci1xdWlldC1wcmltYXJ5LW5ldXRyYWwtYm9sZC1ob3Zlcjp2YXIoLS1jb2xvci13aGl0ZSk7LS1jb2xvci1idXR0b24tZmlsbF9ib3JkZXItcXVpZXQtcHJpbWFyeS1uZXV0cmFsLWJvbGQtYWN0aXZlOnZhcigtLWNvbG9yLWNvbGQtZ3JheS0xMDApOy0tY29sb3ItYnV0dG9uLWZpbGxfYm9yZGVyLXF1aWV0LXByaW1hcnktYWNjZW50LWRlZmF1bHQ6dmFyKC0tY29sb3ItYmxhY2spOy0tY29sb3ItYnV0dG9uLWZpbGxfYm9yZGVyLXF1aWV0LXByaW1hcnktYWNjZW50LWhvdmVyOnZhcigtLWNvbG9yLXR2LWJsdWUtNTAwKTstLWNvbG9yLWJ1dHRvbi1maWxsX2JvcmRlci1xdWlldC1wcmltYXJ5LWFjY2VudC1hY3RpdmU6dmFyKC0tY29sb3ItdHYtYmx1ZS02MDApOy0tY29sb3ItYnV0dG9uLWZpbGxfYm9yZGVyLXF1aWV0LXByaW1hcnktbmV1dHJhbC1kZWZhdWx0OnZhcigtLWNvbG9yLWJsYWNrKTstLWNvbG9yLWJ1dHRvbi1maWxsX2JvcmRlci1xdWlldC1wcmltYXJ5LW5ldXRyYWwtaG92ZXI6dmFyKC0tY29sb3ItY29sZC1ncmF5LTgwMCk7LS1jb2xvci1idXR0b24tZmlsbF9ib3JkZXItcXVpZXQtcHJpbWFyeS1uZXV0cmFsLWFjdGl2ZTp2YXIoLS1jb2xvci1jb2xkLWdyYXktNzUwKTstLWNvbG9yLWJ1dHRvbi1maWxsX2JvcmRlci1xdWlldC1wcmltYXJ5LW5ldXRyYWwtaXMtc2VsZWN0ZWQ6dmFyKC0tY29sb3ItY29sZC1ncmF5LTgwMCk7LS1jb2xvci1idXR0b24tZmlsbF9ib3JkZXItcXVpZXQtcHJpbWFyeS1zdWNjZXNzLWRlZmF1bHQ6dmFyKC0tY29sb3ItYmxhY2spOy0tY29sb3ItYnV0dG9uLWZpbGxfYm9yZGVyLXF1aWV0LXByaW1hcnktc3VjY2Vzcy1ob3Zlcjp2YXIoLS1jb2xvci1taW50eS1ncmVlbi01MDApOy0tY29sb3ItYnV0dG9uLWZpbGxfYm9yZGVyLXF1aWV0LXByaW1hcnktc3VjY2Vzcy1hY3RpdmU6dmFyKC0tY29sb3ItbWludHktZ3JlZW4tNjAwKTstLWNvbG9yLWJ1dHRvbi1maWxsX2JvcmRlci1xdWlldC1wcmltYXJ5LWFjY2VudC1saWdodC1kZWZhdWx0OnZhcigtLWNvbG9yLWJsYWNrKTstLWNvbG9yLWJ1dHRvbi1maWxsX2JvcmRlci1xdWlldC1wcmltYXJ5LWFjY2VudC1saWdodC1ob3Zlcjp2YXIoLS1jb2xvci10di1ibHVlLWE4MDApOy0tY29sb3ItYnV0dG9uLWZpbGxfYm9yZGVyLXF1aWV0LXByaW1hcnktYWNjZW50LWxpZ2h0LWFjdGl2ZTp2YXIoLS1jb2xvci10di1ibHVlLWE3MDApOy0tY29sb3ItYnV0dG9uLWZpbGxfYm9yZGVyLXF1aWV0LXByaW1hcnktYWNjZW50LWxpZ2h0LWlzLXNlbGVjdGVkOnZhcigtLWNvbG9yLXR2LWJsdWUtYTcwMCk7LS1jb2xvci1idXR0b24tZmlsbF9ib3JkZXItcXVpZXQtcHJpbWFyeS1kYW5nZXItZGVmYXVsdDp2YXIoLS1jb2xvci1ibGFjayk7LS1jb2xvci1idXR0b24tZmlsbF9ib3JkZXItcXVpZXQtcHJpbWFyeS1kYW5nZXItaG92ZXI6dmFyKC0tY29sb3ItcmlwZS1yZWQtNTAwKTstLWNvbG9yLWJ1dHRvbi1maWxsX2JvcmRlci1xdWlldC1wcmltYXJ5LWRhbmdlci1hY3RpdmU6dmFyKC0tY29sb3ItcmlwZS1yZWQtNjAwKTstLWNvbG9yLWJ1dHRvbi1maWxsX2JvcmRlci1zZWNvbmRhcnktbmV1dHJhbC1ib2xkLWRlZmF1bHQ6dmFyKC0tY29sb3Itd2hpdGUpOy0tY29sb3ItYnV0dG9uLWZpbGxfYm9yZGVyLXNlY29uZGFyeS1uZXV0cmFsLWJvbGQtaG92ZXI6dmFyKC0tY29sb3ItY29sZC1ncmF5LTEwMCk7LS1jb2xvci1idXR0b24tZmlsbF9ib3JkZXItc2Vjb25kYXJ5LW5ldXRyYWwtYm9sZC1hY3RpdmU6dmFyKC0tY29sb3ItY29sZC1ncmF5LTIwMCk7LS1jb2xvci1idXR0b24tZmlsbF9ib3JkZXItc2Vjb25kYXJ5LWFjY2VudC1kZWZhdWx0OnZhcigtLWNvbG9yLXR2LWJsdWUtNTAwKTstLWNvbG9yLWJ1dHRvbi1maWxsX2JvcmRlci1zZWNvbmRhcnktYWNjZW50LWhvdmVyOnZhcigtLWNvbG9yLXR2LWJsdWUtNjAwKTstLWNvbG9yLWJ1dHRvbi1maWxsX2JvcmRlci1zZWNvbmRhcnktYWNjZW50LWFjdGl2ZTp2YXIoLS1jb2xvci10di1ibHVlLTcwMCk7LS1jb2xvci1idXR0b24tZmlsbF9ib3JkZXItc2Vjb25kYXJ5LW5ldXRyYWwtZGVmYXVsdDp2YXIoLS1jb2xvci1jb2xkLWdyYXktNzAwKTstLWNvbG9yLWJ1dHRvbi1maWxsX2JvcmRlci1zZWNvbmRhcnktbmV1dHJhbC1ob3Zlcjp2YXIoLS1jb2xvci1jb2xkLWdyYXktODAwKTstLWNvbG9yLWJ1dHRvbi1maWxsX2JvcmRlci1zZWNvbmRhcnktbmV1dHJhbC1hY3RpdmU6dmFyKC0tY29sb3ItY29sZC1ncmF5LTc1MCk7LS1jb2xvci1idXR0b24tZmlsbF9ib3JkZXItc2Vjb25kYXJ5LW5ldXRyYWwtaXMtc2VsZWN0ZWQ6dmFyKC0tY29sb3ItY29sZC1ncmF5LTgwMCk7LS1jb2xvci1idXR0b24tZmlsbF9ib3JkZXItc2Vjb25kYXJ5LXN1Y2Nlc3MtZGVmYXVsdDp2YXIoLS1jb2xvci1taW50eS1ncmVlbi01MDApOy0tY29sb3ItYnV0dG9uLWZpbGxfYm9yZGVyLXNlY29uZGFyeS1zdWNjZXNzLWhvdmVyOnZhcigtLWNvbG9yLW1pbnR5LWdyZWVuLTYwMCk7LS1jb2xvci1idXR0b24tZmlsbF9ib3JkZXItc2Vjb25kYXJ5LXN1Y2Nlc3MtYWN0aXZlOnZhcigtLWNvbG9yLW1pbnR5LWdyZWVuLTcwMCk7LS1jb2xvci1idXR0b24tZmlsbF9ib3JkZXItc2Vjb25kYXJ5LWFjY2VudC1saWdodC1kZWZhdWx0OnZhcigtLWNvbG9yLXR2LWJsdWUtYTgwMCk7LS1jb2xvci1idXR0b24tZmlsbF9ib3JkZXItc2Vjb25kYXJ5LWFjY2VudC1saWdodC1ob3Zlcjp2YXIoLS1jb2xvci10di1ibHVlLWE3MDApOy0tY29sb3ItYnV0dG9uLWZpbGxfYm9yZGVyLXNlY29uZGFyeS1hY2NlbnQtbGlnaHQtYWN0aXZlOnZhcigtLWNvbG9yLXR2LWJsdWUtOTAwKTstLWNvbG9yLWJ1dHRvbi1maWxsX2JvcmRlci1zZWNvbmRhcnktYWNjZW50LWxpZ2h0LWlzLXNlbGVjdGVkOnZhcigtLWNvbG9yLXR2LWJsdWUtYTcwMCk7LS1jb2xvci1idXR0b24tZmlsbF9ib3JkZXItc2Vjb25kYXJ5LWRhbmdlci1kZWZhdWx0OnZhcigtLWNvbG9yLXJpcGUtcmVkLTUwMCk7LS1jb2xvci1idXR0b24tZmlsbF9ib3JkZXItc2Vjb25kYXJ5LWRhbmdlci1ob3Zlcjp2YXIoLS1jb2xvci1yaXBlLXJlZC02MDApOy0tY29sb3ItYnV0dG9uLWZpbGxfYm9yZGVyLXNlY29uZGFyeS1kYW5nZXItYWN0aXZlOnZhcigtLWNvbG9yLXJpcGUtcmVkLTcwMCk7LS1jb2xvci10ZXh0LWZpZWxkLWJvcmRlci1kZWZhdWx0OnZhcigtLWNvbG9yLWNvbGQtZ3JheS02NTApOy0tY29sb3ItdGV4dC1maWVsZC1ib3JkZXItaG92ZXI6dmFyKC0tY29sb3ItY29sZC1ncmF5LTUwMCk7LS1jb2xvci10ZXh0LWZpZWxkLWJvcmRlci1hY3RpdmU6dmFyKC0tY29sb3ItdHYtYmx1ZS01MDApOy0tY29sb3ItdGV4dC1maWVsZC1ib3JkZXItZGlzYWJsZWQ6dmFyKC0tY29sb3ItY29sZC1ncmF5LTgwMCk7LS1jb2xvci10ZXh0LWZpZWxkLWJvcmRlci1lcnJvcjp2YXIoLS1jb2xvci1yaXBlLXJlZC01MDApOy0tY29sb3ItdGV4dC1maWVsZC1ib3JkZXItZm9jdXMtbm90LWFjdGl2ZTp2YXIoLS1jb2xvci10di1ibHVlLTUwMCk7LS1jb2xvci10ZXh0LWZpZWxkLWJvcmRlci1mb2N1cy1yZWFkLW9ubHk6dmFyKC0tY29sb3ItdHYtYmx1ZS01MDApOy0tY29sb3ItdGV4dC1maWVsZC1ib3JkZXItcmVhZC1vbmx5OnZhcigtLWNvbG9yLWNvbGQtZ3JheS04MDApOy0tY29sb3ItdGV4dC1maWVsZC1ib3JkZXItc3VjY2Vzczp2YXIoLS1jb2xvci1taW50eS1ncmVlbi01MDApOy0tY29sb3ItdGV4dC1maWVsZC1ib3JkZXItd2FybmluZzp2YXIoLS1jb2xvci10YW4tb3JhbmdlLTUwMCk7LS1jb2xvci10ZXh0LWZpZWxkLWJvcmRlci13aXRoLXZhbHVlOnZhcigtLWNvbG9yLWNvbGQtZ3JheS02NTApOy0tY29sb3ItdGV4dC1maWVsZC1kZXNjcmlwdGlvbi1kZWZhdWx0OnZhcigtLWNvbG9yLWNvbGQtZ3JheS00NTApOy0tY29sb3ItdGV4dC1maWVsZC1kZXNjcmlwdGlvbi1lcnJvcjp2YXIoLS1jb2xvci1yaXBlLXJlZC01MDApOy0tY29sb3ItdGV4dC1maWVsZC1kZXNjcmlwdGlvbi1zdWNjZXNzOnZhcigtLWNvbG9yLW1pbnR5LWdyZWVuLTUwMCk7LS1jb2xvci10ZXh0LWZpZWxkLWRlc2NyaXB0aW9uLXdhcm5pbmc6dmFyKC0tY29sb3ItdGFuLW9yYW5nZS01MDApOy0tY29sb3ItdGV4dC1maWVsZC1maWxsLWRlZmF1bHQ6dmFyKC0tY29sb3Itc3RhdGljLXRyYW5zcGFyZW50KTstLWNvbG9yLXRleHQtZmllbGQtZmlsbC1kaXNhYmxlZDp2YXIoLS1jb2xvci1jb2xkLWdyYXktODAwKTstLWNvbG9yLXRleHQtZmllbGQtZmlsbC1mb2N1cy1yZWFkLW9ubHk6dmFyKC0tY29sb3ItY29sZC1ncmF5LTg1MCk7LS1jb2xvci10ZXh0LWZpZWxkLWZpbGwtcmVhZC1vbmx5OnZhcigtLWNvbG9yLWNvbGQtZ3JheS04NTApOy0tY29sb3ItdGV4dC1maWVsZC1sYWJlbC1kZWZhdWx0OnZhcigtLWNvbG9yLWNvbGQtZ3JheS00NTApOy0tY29sb3ItdGV4dC1maWVsZC1sYWJlbC1lcnJvcjp2YXIoLS1jb2xvci1yaXBlLXJlZC01MDApOy0tY29sb3ItdGV4dC1maWVsZC1sYWJlbC1saW5rOnZhcigtLWNvbG9yLXR2LWJsdWUtNTAwKTstLWNvbG9yLXRleHQtZmllbGQtbGFiZWwtc3VjY2Vzczp2YXIoLS1jb2xvci1taW50eS1ncmVlbi01MDApOy0tY29sb3ItdGV4dC1maWVsZC1sYWJlbC13YXJuaW5nOnZhcigtLWNvbG9yLXRhbi1vcmFuZ2UtNTAwKTstLWNvbG9yLXRleHQtZmllbGQtbGVmdC1zbG90LWljb24tZGVmYXVsdDp2YXIoLS1jb2xvci1jb2xkLWdyYXktNDUwKTstLWNvbG9yLXRleHQtZmllbGQtbGVmdC1zbG90LWljb24tZGlzYWJsZWQ6dmFyKC0tY29sb3ItY29sZC1ncmF5LTY1MCk7LS1jb2xvci10ZXh0LWZpZWxkLXBsYWNlaG9sZGVyLWRlZmF1bHQ6dmFyKC0tY29sb3ItY29sZC1ncmF5LTQ1MCk7LS1jb2xvci10ZXh0LWZpZWxkLXBsYWNlaG9sZGVyLWRpc2FibGVkOnZhcigtLWNvbG9yLWNvbGQtZ3JheS02NTApOy0tY29sb3ItdGV4dC1maWVsZC1yaWdodC1zbG90LWFycm93cy1iZy1kZWZhdWx0OnZhcigtLWNvbG9yLXN0YXRpYy10cmFuc3BhcmVudCk7LS1jb2xvci10ZXh0LWZpZWxkLXJpZ2h0LXNsb3QtYXJyb3dzLWJnLWhvdmVyOnZhcigtLWNvbG9yLWNvbGQtZ3JheS04MDApOy0tY29sb3ItdGV4dC1maWVsZC1yaWdodC1zbG90LWFycm93cy1iZy1hY3RpdmU6dmFyKC0tY29sb3ItY29sZC1ncmF5LTc1MCk7LS1jb2xvci10ZXh0LWZpZWxkLXJpZ2h0LXNsb3QtaWNvbnMtYW5kLXRleHQtZGVmYXVsdDp2YXIoLS1jb2xvci1jb2xkLWdyYXktNDUwKTstLWNvbG9yLXRleHQtZmllbGQtcmlnaHQtc2xvdC1pY29ucy1hbmQtdGV4dC1kaXNhYmxlZDp2YXIoLS1jb2xvci1jb2xkLWdyYXktNjUwKTstLWNvbG9yLXRleHQtZmllbGQtcmlnaHQtc2xvdC1pY29ucy1hbmQtdGV4dC1hY3RpdmU6dmFyKC0tY29sb3ItY29sZC1ncmF5LTIwMCk7LS1jb2xvci10ZXh0LWZpZWxkLXJpZ2h0LXNsb3QtaWNvbnMtYW5kLXRleHQtZXJyb3I6dmFyKC0tY29sb3ItcmlwZS1yZWQtNTAwKTstLWNvbG9yLXRleHQtZmllbGQtcmlnaHQtc2xvdC1pY29ucy1hbmQtdGV4dC1ob3Zlcjp2YXIoLS1jb2xvci1jb2xkLWdyYXktMjAwKTstLWNvbG9yLXRleHQtZmllbGQtdmFsdWUtZGVmYXVsdDp2YXIoLS1jb2xvci1jb2xkLWdyYXktMjAwKTstLWNvbG9yLXRleHQtZmllbGQtdmFsdWUtZGlzYWJsZWQ6dmFyKC0tY29sb3ItY29sZC1ncmF5LTQ1MCk7LS1jb2xvci1jb3VudGVyLWZpbGwtZGFuZ2VyOnZhcigtLWNvbG9yLXJpcGUtcmVkLTUwMCk7LS1jb2xvci1jb3VudGVyLWNvbnRlbnQtZGFuZ2VyOnZhcigtLWNvbG9yLXdoaXRlKTstLWNvbG9yLWNvdW50ZXItZmlsbC1hY2NlbnQ6dmFyKC0tY29sb3ItdHYtYmx1ZS01MDApOy0tY29sb3ItY291bnRlci1jb250ZW50LWFjY2VudDp2YXIoLS1jb2xvci13aGl0ZSk7LS1jb2xvci1jb3VudGVyLWZpbGwtYWNjZW50LWxpZ2h0OnZhcigtLWNvbG9yLXR2LWJsdWUtYTgwMCk7LS1jb2xvci1jb3VudGVyLWNvbnRlbnQtYWNjZW50LWxpZ2h0OnZhcigtLWNvbG9yLXR2LWJsdWUtMTAwKTstLWNvbG9yLWNvdW50ZXItZmlsbC1uZXV0cmFsLWJvbGQ6dmFyKC0tY29sb3Itd2hpdGUpOy0tY29sb3ItY291bnRlci1jb250ZW50LW5ldXRyYWwtYm9sZDp2YXIoLS1jb2xvci1ibGFjayk7LS1jb2xvci1jb3VudGVyLWZpbGwtbmV1dHJhbDp2YXIoLS1jb2xvci1jb2xkLWdyYXktODAwKTstLWNvbG9yLWNvdW50ZXItY29udGVudC1uZXV0cmFsOnZhcigtLWNvbG9yLWNvbGQtZ3JheS0yMDApOy0tY29sb3ItY291bnRlci1ib3JkZXItcHJpbWFyeTp2YXIoLS1jb2xvci1ibGFjayk7LS1jb2xvci1jb3VudGVyLWJvcmRlci1zZWNvbmRhcnk6dmFyKC0tY29sb3ItY29sZC1ncmF5LTkwMCk7LS1jb2xvci1jb3VudGVyLWJvcmRlci10ZXJ0aWFyeTp2YXIoLS1jb2xvci1jb2xkLWdyYXktODUwKTstLWNvbG9yLWZpbHRlci1zZWxlY3QtZmlsbF9ib3JkZXItY2hlY2tlZC1kZWZhdWx0OnZhcigtLWNvbG9yLXR2LWJsdWUtYTgwMCk7LS1jb2xvci1maWx0ZXItc2VsZWN0LWZpbGxfYm9yZGVyLWNoZWNrZWQtaG92ZXI6dmFyKC0tY29sb3ItdHYtYmx1ZS1hNzAwKTstLWNvbG9yLWZpbHRlci1zZWxlY3QtZmlsbF9ib3JkZXItY2hlY2tlZC1hY3RpdmU6dmFyKC0tY29sb3ItdHYtYmx1ZS05MDApOy0tY29sb3ItZmlsdGVyLXNlbGVjdC1maWxsX2JvcmRlci1jaGVja2VkLWlzT3BlbmVkOnZhcigtLWNvbG9yLXR2LWJsdWUtYTcwMCk7LS1jb2xvci1maWx0ZXItc2VsZWN0LWNvbnRlbnQtY2hlY2tlZC1hY2NlbnQtZGVmYXVsdDp2YXIoLS1jb2xvci10di1ibHVlLTIwMCk7LS1jb2xvci1maWx0ZXItc2VsZWN0LWNvbnRlbnQtY2hlY2tlZC1hY2NlbnQtaG92ZXI6dmFyKC0tY29sb3ItdHYtYmx1ZS0yMDApOy0tY29sb3ItZmlsdGVyLXNlbGVjdC1jb250ZW50LWNoZWNrZWQtYWNjZW50LWFjdGl2ZTp2YXIoLS1jb2xvci10di1ibHVlLTIwMCk7LS1jb2xvci1maWx0ZXItc2VsZWN0LWNvbnRlbnQtY2hlY2tlZC1uZXV0cmFsLWRlZmF1bHQ6dmFyKC0tY29sb3Itd2hpdGUpOy0tY29sb3ItZmlsdGVyLXNlbGVjdC1jb250ZW50LWNoZWNrZWQtbmV1dHJhbC1ob3Zlcjp2YXIoLS1jb2xvci13aGl0ZSk7LS1jb2xvci1maWx0ZXItc2VsZWN0LWNvbnRlbnQtY2hlY2tlZC1uZXV0cmFsLWFjdGl2ZTp2YXIoLS1jb2xvci13aGl0ZSk7LS1jb2xvci1maWx0ZXItc2VsZWN0LWZpbGxfYm9yZGVyLW5vdC1jaGVja2VkLWRlZmF1bHQ6dmFyKC0tY29sb3ItY29sZC1ncmF5LTcwMCk7LS1jb2xvci1maWx0ZXItc2VsZWN0LWZpbGxfYm9yZGVyLW5vdC1jaGVja2VkLWhvdmVyOnZhcigtLWNvbG9yLWNvbGQtZ3JheS04MDApOy0tY29sb3ItZmlsdGVyLXNlbGVjdC1maWxsX2JvcmRlci1ub3QtY2hlY2tlZC1hY3RpdmU6dmFyKC0tY29sb3ItY29sZC1ncmF5LTc1MCk7LS1jb2xvci1maWx0ZXItc2VsZWN0LWZpbGxfYm9yZGVyLW5vdC1jaGVja2VkLWlzT3BlbmVkOnZhcigtLWNvbG9yLWNvbGQtZ3JheS04MDApOy0tY29sb3ItZmlsdGVyLXNlbGVjdC1jb250ZW50LW5vdC1jaGVja2VkLWRlZmF1bHQ6dmFyKC0tY29sb3ItY29sZC1ncmF5LTQ1MCk7LS1jb2xvci1maWx0ZXItc2VsZWN0LWNvbnRlbnQtbm90LWNoZWNrZWQtaG92ZXI6dmFyKC0tY29sb3ItY29sZC1ncmF5LTQ1MCk7LS1jb2xvci1maWx0ZXItc2VsZWN0LWNvbnRlbnQtbm90LWNoZWNrZWQtYWN0aXZlOnZhcigtLWNvbG9yLWNvbGQtZ3JheS00NTApOy0tY29sb3Itc3ltYm9sLWNoYW5nZS1wb3NpdGl2ZTp2YXIoLS1jb2xvci1taW50eS1ncmVlbi00MDApOy0tY29sb3Itc3ltYm9sLWNoYW5nZS1uZXV0cmFsOnZhcigtLWNvbG9yLWNvbGQtZ3JheS0yMDApOy0tY29sb3Itc3ltYm9sLWNoYW5nZS1uZWdhdGl2ZTp2YXIoLS1jb2xvci1yaXBlLXJlZC00MDApOy0tY29sb3Itc3ltYm9sLXJhdGluZy1wb3NpdGl2ZTp2YXIoLS1jb2xvci1taW50eS1ncmVlbi00MDApOy0tY29sb3Itc3ltYm9sLXJhdGluZy1uZXV0cmFsOnZhcigtLWNvbG9yLWNvbGQtZ3JheS00NTApOy0tY29sb3Itc3ltYm9sLXJhdGluZy1uZWdhdGl2ZTp2YXIoLS1jb2xvci1yaXBlLXJlZC00MDApOy0tY29sb3Itb3RoZXItdHJhbnNwYXJlbnQ6IzAwMDA7LS1jb2xvci1vdGhlci10cmFuc3BhcmVudC02MDojMDAwOTstLWNvbG9yLXNoYWRvdy1wcmltYXJ5LW5ldXRyYWwtZXh0cmEtaGVhdnk6IzAwMDY7LS1jb2xvci1zaGFkb3ctcHJpbWFyeS1uZXV0cmFsLWxpZ2h0OnZhcigtLWNvbG9yLWNvbGQtZ3JheS03NTApOy0tY29sb3Itc2hhZG93LXNlY29uZGFyeS1uZXV0cmFsLWxpZ2h0OnZhcigtLWNvbG9yLWNvbGQtZ3JheS03MDApOy0tY29sb3Itb3RoZXItbW9kYWwtYmFja2dyb3VuZDojMDAwMDAwNGQ7LS1jb2xvci1vdGhlci1zaGFkb3ctcHJpbWFyeS1uZXV0cmFsLWV4dHJhLWhlYXZ5OiMwMDA2Oy0tY29sb3Itb3RoZXItc2hhZG93LXByaW1hcnktbmV1dHJhbC1saWdodDp2YXIoLS1jb2xvci1jb2xkLWdyYXktNzUwKTstLWNvbG9yLW90aGVyLXNoYWRvdy1zZWNvbmRhcnktbmV1dHJhbC1saWdodDp2YXIoLS1jb2xvci1jb2xkLWdyYXktNzAwKTstLWNvbG9yLW90aGVyLWJsYWNrLWZyaWRheS1wcmltYXJ5OnZhcigtLWNvbG9yLXJpcGUtcmVkLTUwMCk7LS1jb2xvci1vdGhlci1ibGFjay1mcmlkYXktc2Vjb25kYXJ5OnZhcigtLWNvbG9yLXJpcGUtcmVkLTQwMCk7LS1jb2xvci1vdGhlci1ibGFjay1mcmlkYXktdGVydGlhcnk6dmFyKC0tY29sb3ItcmlwZS1yZWQtMzAwKTstLWNvbG9yLW90aGVyLWN5YmVyLW1vbmRheS1wcmltYXJ5OnZhcigtLWNvbG9yLXNreS1ibHVlLWE0MDApOy0tY29sb3Itb3RoZXItY3liZXItbW9uZGF5LXNlY29uZGFyeTp2YXIoLS1jb2xvci1za3ktYmx1ZS1hMjAwKTstLWNvbG9yLW90aGVyLWN5YmVyLW1vbmRheS10ZXJ0aWFyeTp2YXIoLS1jb2xvci1za3ktYmx1ZS1hMTAwKTstLWNvbG9yLXNlYXJjaC1oaWdobGlnaHQtcHJpbWFyeS1ub3JtYWw6dmFyKC0tY29sb3ItdHYtYmx1ZS0yMDApOy0tY29sb3Itc2VhcmNoLWhpZ2hsaWdodC1wcmltYXJ5LWludmVyc2U6dmFyKC0tY29sb3ItdHYtYmx1ZS02MDApOy0tY29sb3ItZm9jdXMtb3V0bGluZS1jb2xvci1ibHVlOnZhcigtLWNvbG9yLXR2LWJsdWUtNTAwKTstLWNvbG9yLWZvY3VzLW91dGxpbmUtY29sb3ItYmxhY2s6dmFyKC0tY29sb3Itd2hpdGUpOy0tY29sb3ItZm9jdXMtb3V0bGluZS1jb2xvci13aGl0ZTp2YXIoLS1jb2xvci1ibGFjayk7LS1jb2xvci1iYWNrZ3JvdW5kLXByaW1hcnktYWNjZW50LWV4dHJhLWxpZ2h0OnZhcigtLWNvbG9yLXR2LWJsdWUtYTkwMCk7LS1jb2xvci1iYWNrZ3JvdW5kLXByaW1hcnktYWNjZW50LWxpZ2h0OnZhcigtLWNvbG9yLXR2LWJsdWUtYTgwMCk7LS1jb2xvci1iYWNrZ3JvdW5kLXByaW1hcnktaW52ZXJzZTp2YXIoLS1jb2xvci1ibGFjayk7LS1jb2xvci1iYWNrZ3JvdW5kLXByaW1hcnktbmV1dHJhbC1ib2xkOnZhcigtLWNvbG9yLWNvbGQtZ3JheS03MDApOy0tY29sb3ItYmFja2dyb3VuZC1wcmltYXJ5LW5ldXRyYWwtZXh0cmEtaGVhdnk6dmFyKC0tY29sb3ItYmxhY2spOy0tY29sb3ItYmFja2dyb3VuZC1wcmltYXJ5LW5ldXRyYWwtZXh0cmEtbGlnaHQ6dmFyKC0tY29sb3ItY29sZC1ncmF5LTg1MCk7LS1jb2xvci1iYWNrZ3JvdW5kLXByaW1hcnktbmV1dHJhbC1saWdodDp2YXIoLS1jb2xvci1jb2xkLWdyYXktODAwKTstLWNvbG9yLWJhY2tncm91bmQtcHJpbWFyeS1uZXV0cmFsLW5vcm1hbDp2YXIoLS1jb2xvci1jb2xkLWdyYXktNzUwKTstLWNvbG9yLWJhY2tncm91bmQtc2Vjb25kYXJ5LWludmVyc2U6dmFyKC0tY29sb3ItY29sZC1ncmF5LTkwMCk7LS1jb2xvci1iYWNrZ3JvdW5kLXRlcnRpYXJ5LWludmVyc2U6dmFyKC0tY29sb3ItY29sZC1ncmF5LTg1MCk7LS1jb2xvci1jb250YWluZXItZmlsbC1wcmltYXJ5LWFjY2VudDp2YXIoLS1jb2xvci10di1ibHVlLTUwMCk7LS1jb2xvci1jb250YWluZXItZmlsbC1wcmltYXJ5LWFjY2VudC1ib2xkOnZhcigtLWNvbG9yLXR2LWJsdWUtNzAwKTstLWNvbG9yLWNvbnRhaW5lci1maWxsLXByaW1hcnktYWNjZW50LWV4dHJhLWxpZ2h0OnZhcigtLWNvbG9yLXR2LWJsdWUtYTkwMCk7LS1jb2xvci1jb250YWluZXItZmlsbC1wcmltYXJ5LWFjY2VudC1saWdodDp2YXIoLS1jb2xvci10di1ibHVlLWE4MDApOy0tY29sb3ItY29udGFpbmVyLWZpbGwtcHJpbWFyeS1hY2NlbnQtbm9ybWFsOnZhcigtLWNvbG9yLXR2LWJsdWUtYTcwMCk7LS1jb2xvci1jb250YWluZXItZmlsbC1wcmltYXJ5LWFjY2VudC1zZW1pLWJvbGQ6dmFyKC0tY29sb3ItdHYtYmx1ZS02MDApOy0tY29sb3ItY29udGFpbmVyLWZpbGwtcHJpbWFyeS1hY2NlbnQtYWx0MS1ub3JtYWw6dmFyKC0tY29sb3ItZGVlcC1ibHVlLWExMDApOy0tY29sb3ItY29udGFpbmVyLWZpbGwtcHJpbWFyeS1hY2NlbnQtYWx0Mi1ib2xkOnZhcigtLWNvbG9yLXNreS1ibHVlLTMwMCk7LS1jb2xvci1jb250YWluZXItZmlsbC1wcmltYXJ5LWRhbmdlcjp2YXIoLS1jb2xvci1yaXBlLXJlZC01MDApOy0tY29sb3ItY29udGFpbmVyLWZpbGwtcHJpbWFyeS1kYW5nZXItYm9sZDp2YXIoLS1jb2xvci1yaXBlLXJlZC03MDApOy0tY29sb3ItY29udGFpbmVyLWZpbGwtcHJpbWFyeS1kYW5nZXItZXh0cmEtbGlnaHQ6dmFyKC0tY29sb3ItcmlwZS1yZWQtYTkwMCk7LS1jb2xvci1jb250YWluZXItZmlsbC1wcmltYXJ5LWRhbmdlci1saWdodDp2YXIoLS1jb2xvci1yaXBlLXJlZC1hODAwKTstLWNvbG9yLWNvbnRhaW5lci1maWxsLXByaW1hcnktZGFuZ2VyLW5vcm1hbDp2YXIoLS1jb2xvci1yaXBlLXJlZC1hNzAwKTstLWNvbG9yLWNvbnRhaW5lci1maWxsLXByaW1hcnktZGFuZ2VyLXNlbWktYm9sZDp2YXIoLS1jb2xvci1yaXBlLXJlZC02MDApOy0tY29sb3ItY29udGFpbmVyLWZpbGwtcHJpbWFyeS1pbnZlcnNlOnZhcigtLWNvbG9yLWJsYWNrKTstLWNvbG9yLWNvbnRhaW5lci1maWxsLXByaW1hcnktbmV1dHJhbDp2YXIoLS1jb2xvci1jb2xkLWdyYXktNjAwKTstLWNvbG9yLWNvbnRhaW5lci1maWxsLXByaW1hcnktbmV1dHJhbC1ib2xkOnZhcigtLWNvbG9yLWNvbGQtZ3JheS0yMDApOy0tY29sb3ItY29udGFpbmVyLWZpbGwtcHJpbWFyeS1uZXV0cmFsLWV4dHJhLWJvbGQ6dmFyKC0tY29sb3ItY29sZC1ncmF5LTEwMCk7LS1jb2xvci1jb250YWluZXItZmlsbC1wcmltYXJ5LW5ldXRyYWwtZXh0cmEtaGVhdnk6dmFyKC0tY29sb3Itd2hpdGUpOy0tY29sb3ItY29udGFpbmVyLWZpbGwtcHJpbWFyeS1uZXV0cmFsLWV4dHJhLWxpZ2h0OnZhcigtLWNvbG9yLWNvbGQtZ3JheS04MDApOy0tY29sb3ItY29udGFpbmVyLWZpbGwtcHJpbWFyeS1uZXV0cmFsLWhlYXZ5OnZhcigtLWNvbG9yLXdoaXRlKTstLWNvbG9yLWNvbnRhaW5lci1maWxsLXByaW1hcnktbmV1dHJhbC1saWdodDp2YXIoLS1jb2xvci1jb2xkLWdyYXktNzUwKTstLWNvbG9yLWNvbnRhaW5lci1maWxsLXByaW1hcnktbmV1dHJhbC1ub3JtYWw6dmFyKC0tY29sb3ItY29sZC1ncmF5LTcwMCk7LS1jb2xvci1jb250YWluZXItZmlsbC1wcmltYXJ5LW5ldXRyYWwtdGhpbjp2YXIoLS1jb2xvci1jb2xkLWdyYXktODUwKTstLWNvbG9yLWNvbnRhaW5lci1maWxsLXByaW1hcnktbmV1dHJhbC1tZWRpdW06dmFyKC0tY29sb3ItY29sZC1ncmF5LTQ1MCk7LS1jb2xvci1jb250YWluZXItZmlsbC1wcmltYXJ5LXN1Y2Nlc3M6dmFyKC0tY29sb3ItbWludHktZ3JlZW4tNTAwKTstLWNvbG9yLWNvbnRhaW5lci1maWxsLXByaW1hcnktc3VjY2Vzcy1ib2xkOnZhcigtLWNvbG9yLW1pbnR5LWdyZWVuLTcwMCk7LS1jb2xvci1jb250YWluZXItZmlsbC1wcmltYXJ5LXN1Y2Nlc3MtZXh0cmEtbGlnaHQ6dmFyKC0tY29sb3ItbWludHktZ3JlZW4tYTkwMCk7LS1jb2xvci1jb250YWluZXItZmlsbC1wcmltYXJ5LXN1Y2Nlc3MtbGlnaHQ6dmFyKC0tY29sb3ItbWludHktZ3JlZW4tYTgwMCk7LS1jb2xvci1jb250YWluZXItZmlsbC1wcmltYXJ5LXN1Y2Nlc3Mtbm9ybWFsOnZhcigtLWNvbG9yLW1pbnR5LWdyZWVuLWE3MDApOy0tY29sb3ItY29udGFpbmVyLWZpbGwtcHJpbWFyeS1zdWNjZXNzLXNlbWktYm9sZDp2YXIoLS1jb2xvci1taW50eS1ncmVlbi02MDApOy0tY29sb3ItY29udGFpbmVyLWZpbGwtcHJpbWFyeS13YXJuaW5nOnZhcigtLWNvbG9yLXRhbi1vcmFuZ2UtNTAwKTstLWNvbG9yLWNvbnRhaW5lci1maWxsLXByaW1hcnktd2FybmluZy1ib2xkOnZhcigtLWNvbG9yLXRhbi1vcmFuZ2UtNzAwKTstLWNvbG9yLWNvbnRhaW5lci1maWxsLXByaW1hcnktd2FybmluZy1leHRyYS1saWdodDp2YXIoLS1jb2xvci10YW4tb3JhbmdlLWE5MDApOy0tY29sb3ItY29udGFpbmVyLWZpbGwtcHJpbWFyeS13YXJuaW5nLWxpZ2h0OnZhcigtLWNvbG9yLXRhbi1vcmFuZ2UtYTgwMCk7LS1jb2xvci1jb250YWluZXItZmlsbC1wcmltYXJ5LXdhcm5pbmctbm9ybWFsOnZhcigtLWNvbG9yLXRhbi1vcmFuZ2UtYTcwMCk7LS1jb2xvci1jb250YWluZXItZmlsbC1wcmltYXJ5LXdhcm5pbmctc2VtaS1ib2xkOnZhcigtLWNvbG9yLXRhbi1vcmFuZ2UtNjAwKTstLWNvbG9yLWNvbnRhaW5lci1maWxsLXF1YXRlcm5hcnktaW52ZXJzZTp2YXIoLS1jb2xvci13aGl0ZSk7LS1jb2xvci1jb250YWluZXItZmlsbC1zZWNvbmRhcnktYWNjZW50LWV4dHJhLWxpZ2h0OnZhcigtLWNvbG9yLXR2LWJsdWUtYTgwMCk7LS1jb2xvci1jb250YWluZXItZmlsbC1zZWNvbmRhcnktYWNjZW50LWxpZ2h0OnZhcigtLWNvbG9yLXR2LWJsdWUtYTcwMCk7LS1jb2xvci1jb250YWluZXItZmlsbC1zZWNvbmRhcnktYWNjZW50LW5vcm1hbDp2YXIoLS1jb2xvci10di1ibHVlLTkwMCk7LS1jb2xvci1jb250YWluZXItZmlsbC1zZWNvbmRhcnktYWNjZW50OnZhcigtLWNvbG9yLXR2LWJsdWUtYTEwMCk7LS1jb2xvci1jb250YWluZXItZmlsbC1zZWNvbmRhcnktYWNjZW50LXNlbWktYm9sZDp2YXIoLS1jb2xvci10di1ibHVlLTMwMCk7LS1jb2xvci1jb250YWluZXItZmlsbC1zZWNvbmRhcnktaW52ZXJzZTp2YXIoLS1jb2xvci1jb2xkLWdyYXktOTAwKTstLWNvbG9yLWNvbnRhaW5lci1maWxsLXNlY29uZGFyeS1uZXV0cmFsLXRoaW46dmFyKC0tY29sb3ItY29sZC1ncmF5LTgwMCk7LS1jb2xvci1jb250YWluZXItZmlsbC1zZWNvbmRhcnktbmV1dHJhbDp2YXIoLS1jb2xvci1jb2xkLWdyYXktNDUwKTstLWNvbG9yLWNvbnRhaW5lci1maWxsLXNlY29uZGFyeS1uZXV0cmFsLWV4dHJhLWhlYXZ5OnZhcigtLWNvbG9yLWJsYWNrKTstLWNvbG9yLWNvbnRhaW5lci1maWxsLXNlY29uZGFyeS1uZXV0cmFsLWV4dHJhLWxpZ2h0OnZhcigtLWNvbG9yLWNvbGQtZ3JheS03MDApOy0tY29sb3ItY29udGFpbmVyLWZpbGwtc2Vjb25kYXJ5LW5ldXRyYWwtaGVhdnk6dmFyKC0tY29sb3ItY29sZC1ncmF5LTIwMCk7LS1jb2xvci1jb250YWluZXItZmlsbC1zZWNvbmRhcnktbmV1dHJhbC1saWdodDp2YXIoLS1jb2xvci1jb2xkLWdyYXktODAwKTstLWNvbG9yLWNvbnRhaW5lci1maWxsLXNlY29uZGFyeS1uZXV0cmFsLW5vcm1hbDp2YXIoLS1jb2xvci1jb2xkLWdyYXktNjAwKTstLWNvbG9yLWNvbnRhaW5lci1maWxsLXNlY29uZGFyeS1uZXV0cmFsLXNlbWktYm9sZDp2YXIoLS1jb2xvci1jb2xkLWdyYXktNDAwKTstLWNvbG9yLWNvbnRhaW5lci1maWxsLXNlY29uZGFyeS1uZXV0cmFsLWJvbGQ6dmFyKC0tY29sb3ItY29sZC1ncmF5LTgwMCk7LS1jb2xvci1jb250YWluZXItZmlsbC1zZWNvbmRhcnktbmV1dHJhbC1leHRyYS1ib2xkOnZhcigtLWNvbG9yLWNvbGQtZ3JheS00NTApOy0tY29sb3ItY29udGFpbmVyLWZpbGwtc2Vjb25kYXJ5LWRhbmdlci1ib2xkOnZhcigtLWNvbG9yLXJpcGUtcmVkLTMwMCk7LS1jb2xvci1jb250YWluZXItZmlsbC1zZWNvbmRhcnktc3VjY2Vzcy1zZW1pLWJvbGQ6dmFyKC0tY29sb3ItbWludHktZ3JlZW4tMzAwKTstLWNvbG9yLWNvbnRhaW5lci1maWxsLXNlY29uZGFyeS13YXJuaW5nLXNlbWktYm9sZDp2YXIoLS1jb2xvci10YW4tb3JhbmdlLTMwMCk7LS1jb2xvci1jb250YWluZXItZmlsbC10ZXJ0aWFyeS1hY2NlbnQ6dmFyKC0tY29sb3ItdHYtYmx1ZS1hMTAwKTstLWNvbG9yLWNvbnRhaW5lci1maWxsLXRlcnRpYXJ5LWFjY2VudC1ib2xkOnZhcigtLWNvbG9yLXR2LWJsdWUtYTkwMCk7LS1jb2xvci1jb250YWluZXItZmlsbC10ZXJ0aWFyeS1hY2NlbnQtbGlnaHQ6dmFyKC0tY29sb3ItdHYtYmx1ZS04MDApOy0tY29sb3ItY29udGFpbmVyLWZpbGwtdGVydGlhcnktaW52ZXJzZTp2YXIoLS1jb2xvci1jb2xkLWdyYXktODUwKTstLWNvbG9yLWNvbnRhaW5lci1maWxsLXRlcnRpYXJ5LW5ldXRyYWw6dmFyKC0tY29sb3ItY29sZC1ncmF5LTU1MCk7LS1jb2xvci1jb250YWluZXItZmlsbC10ZXJ0aWFyeS1uZXV0cmFsLWxpZ2h0OnZhcigtLWNvbG9yLWNvbGQtZ3JheS05MDApOy0tY29sb3ItY29udGFpbmVyLWZpbGwtdGVydGlhcnktbmV1dHJhbC1oZWF2eTp2YXIoLS1jb2xvci10di1ibHVlLTIwMCk7LS1jb2xvci1jb250YWluZXItZmlsbC1xdWluYXJ5LWludmVyc2U6dmFyKC0tY29sb3ItY29sZC1ncmF5LTgwMCk7LS1jb2xvci1jb250YWluZXItZmlsbC1zZW5hcnktaW52ZXJzZTp2YXIoLS1jb2xvci1jb2xkLWdyYXktNzAwKTstLWNvbG9yLWNvbnRlbnQtcHJpbWFyeS1hY2NlbnQ6dmFyKC0tY29sb3ItdHYtYmx1ZS01MDApOy0tY29sb3ItY29udGVudC1wcmltYXJ5LWFjY2VudC1ib2xkOnZhcigtLWNvbG9yLXR2LWJsdWUtNjAwKTstLWNvbG9yLWNvbnRlbnQtcHJpbWFyeS1hY2NlbnQtZXh0cmEtYm9sZDp2YXIoLS1jb2xvci10di1ibHVlLWExMDApOy0tY29sb3ItY29udGVudC1wcmltYXJ5LWFjY2VudC1oZWF2eTp2YXIoLS1jb2xvci1za3ktYmx1ZS01MDApOy0tY29sb3ItY29udGVudC1wcmltYXJ5LWFjY2VudC1saWdodDp2YXIoLS1jb2xvci10di1ibHVlLTMwMCk7LS1jb2xvci1jb250ZW50LXByaW1hcnktYWNjZW50LW5vcm1hbDp2YXIoLS1jb2xvci10di1ibHVlLTQwMCk7LS1jb2xvci1jb250ZW50LXByaW1hcnktYWNjZW50LXNlbWktYm9sZDp2YXIoLS1jb2xvci10di1ibHVlLTUwMCk7LS1jb2xvci1jb250ZW50LXByaW1hcnktYWNjZW50LW90aGVyLW5vcm1hbDp2YXIoLS1jb2xvci1kZWVwLWJsdWUtYTEwMCk7LS1jb2xvci1jb250ZW50LXByaW1hcnktYWNjZW50LW90aGVyLWJvbGQ6dmFyKC0tY29sb3Itc2t5LWJsdWUtMzAwKTstLWNvbG9yLWNvbnRlbnQtcHJpbWFyeS1hY2NlbnQtb3RoZXItZXh0cmEtYm9sZDp2YXIoLS1jb2xvci1kZWVwLWJsdWUtYTEwMCk7LS1jb2xvci1jb250ZW50LXByaW1hcnktYXR0ZW50aW9uOnZhcigtLWNvbG9yLWJhbmFuYS15ZWxsb3ctODAwKTstLWNvbG9yLWNvbnRlbnQtcHJpbWFyeS1kYW5nZXI6dmFyKC0tY29sb3ItcmlwZS1yZWQtNTAwKTstLWNvbG9yLWNvbnRlbnQtcHJpbWFyeS1kYW5nZXItYm9sZDp2YXIoLS1jb2xvci1yaXBlLXJlZC0zMDApOy0tY29sb3ItY29udGVudC1wcmltYXJ5LWRhbmdlci1zZW1pLWJvbGQ6dmFyKC0tY29sb3ItcmlwZS1yZWQtNDAwKTstLWNvbG9yLWNvbnRlbnQtcHJpbWFyeS1kYW5nZXItZXh0cmEtYm9sZDp2YXIoLS1jb2xvci1yaXBlLXJlZC1hNDAwKTstLWNvbG9yLWNvbnRlbnQtcHJpbWFyeS1pbnZlcnNlOnZhcigtLWNvbG9yLWJsYWNrKTstLWNvbG9yLWNvbnRlbnQtcHJpbWFyeS1uZWdhdGl2ZTp2YXIoLS1jb2xvci1yaXBlLXJlZC00MDApOy0tY29sb3ItY29udGVudC1wcmltYXJ5LW5ldXRyYWw6dmFyKC0tY29sb3ItY29sZC1ncmF5LTQ1MCk7LS1jb2xvci1jb250ZW50LXByaW1hcnktbmV1dHJhbC1ib2xkOnZhcigtLWNvbG9yLWNvbGQtZ3JheS0yMDApOy0tY29sb3ItY29udGVudC1wcmltYXJ5LWFjY2VudC1leHRyYS1saWdodDp2YXIoLS1jb2xvci10di1ibHVlLTEwMCk7LS1jb2xvci1jb250ZW50LXByaW1hcnktbmV1dHJhbC1leHRyYS1saWdodDp2YXIoLS1jb2xvci1jb2xkLWdyYXktNjUwKTstLWNvbG9yLWNvbnRlbnQtcHJpbWFyeS1uZXV0cmFsLWxpZ2h0OnZhcigtLWNvbG9yLWNvbGQtZ3JheS02NTApOy0tY29sb3ItY29udGVudC1wcmltYXJ5LW5ldXRyYWwtbm9ybWFsOnZhcigtLWNvbG9yLWNvbGQtZ3JheS01NTApOy0tY29sb3ItY29udGVudC1wcmltYXJ5LW5ldXRyYWwtc2VtaS1ib2xkOnZhcigtLWNvbG9yLWNvbGQtZ3JheS0zMDApOy0tY29sb3ItY29udGVudC1wcmltYXJ5LXBvc2l0aXZlOnZhcigtLWNvbG9yLW1pbnR5LWdyZWVuLTQwMCk7LS1jb2xvci1jb250ZW50LXByaW1hcnktc3VjY2Vzczp2YXIoLS1jb2xvci1taW50eS1ncmVlbi01MDApOy0tY29sb3ItY29udGVudC1wcmltYXJ5LXN1Y2Nlc3MtYm9sZDp2YXIoLS1jb2xvci1taW50eS1ncmVlbi0zMDApOy0tY29sb3ItY29udGVudC1wcmltYXJ5LXN1Y2Nlc3MtZXh0cmEtYm9sZDp2YXIoLS1jb2xvci1taW50eS1ncmVlbi0zMDApOy0tY29sb3ItY29udGVudC1wcmltYXJ5LXN1Y2Nlc3Mtc2VtaS1ib2xkOnZhcigtLWNvbG9yLW1pbnR5LWdyZWVuLTQwMCk7LS1jb2xvci1jb250ZW50LXByaW1hcnktd2FybmluZzp2YXIoLS1jb2xvci10YW4tb3JhbmdlLTUwMCk7LS1jb2xvci1jb250ZW50LXByaW1hcnktd2FybmluZy1ib2xkOnZhcigtLWNvbG9yLXRhbi1vcmFuZ2UtMzAwKTstLWNvbG9yLWNvbnRlbnQtcHJpbWFyeS13YXJuaW5nLWV4dHJhLWJvbGQ6dmFyKC0tY29sb3ItdGFuLW9yYW5nZS1hNDAwKTstLWNvbG9yLWNvbnRlbnQtcHJpbWFyeS13YXJuaW5nLXNlbWktYm9sZDp2YXIoLS1jb2xvci10YW4tb3JhbmdlLTQwMCk7LS1jb2xvci1jb250ZW50LXNlY29uZGFyeS1hY2NlbnQ6dmFyKC0tY29sb3ItdHYtYmx1ZS00MDApOy0tY29sb3ItY29udGVudC1zZWNvbmRhcnktYWNjZW50LXNlbWktYm9sZDp2YXIoLS1jb2xvci10di1ibHVlLTIwMCk7LS1jb2xvci1jb250ZW50LXNlY29uZGFyeS1hY2NlbnQtYm9sZDp2YXIoLS1jb2xvci10di1ibHVlLWEyMDApOy0tY29sb3ItY29udGVudC1zZWNvbmRhcnktYWNjZW50LW90aGVyLXNlbWktYm9sZDp2YXIoLS1jb2xvci1ncmFwZXMtcHVycGxlLTMwMCk7LS1jb2xvci1jb250ZW50LXNlY29uZGFyeS1hY2NlbnQtb3RoZXItZXh0cmEtYm9sZDp2YXIoLS1jb2xvci1ncmFwZXMtcHVycGxlLWExMDApOy0tY29sb3ItY29udGVudC1zZWNvbmRhcnktaW52ZXJzZTp2YXIoLS1jb2xvci1jb2xkLWdyYXktOTAwKTstLWNvbG9yLWNvbnRlbnQtc2Vjb25kYXJ5LW5ldXRyYWw6dmFyKC0tY29sb3ItY29sZC1ncmF5LTQ1MCk7LS1jb2xvci1jb250ZW50LXNlY29uZGFyeS1uZXV0cmFsLWJvbGQ6dmFyKC0tY29sb3Itd2hpdGUpOy0tY29sb3ItY29udGVudC1zZWNvbmRhcnktYWNjZW50LWV4dHJhLWxpZ2h0OnZhcigtLWNvbG9yLXR2LWJsdWUtNjAwKTstLWNvbG9yLWNvbnRlbnQtc2Vjb25kYXJ5LW5ldXRyYWwtbWVkaXVtOnZhcigtLWNvbG9yLWNvbGQtZ3JheS0zMDApOy0tY29sb3ItY29udGVudC1zZWNvbmRhcnktbmV1dHJhbC1zZW1pLWJvbGQ6dmFyKC0tY29sb3ItY29sZC1ncmF5LTE1MCk7LS1jb2xvci1jb250ZW50LXNlY29uZGFyeS13YXJuaW5nLXNlbWktYm9sZDp2YXIoLS1jb2xvci10YW4tb3JhbmdlLTMwMCk7LS1jb2xvci1jb250ZW50LXNlY29uZGFyeS13YXJuaW5nLWJvbGQ6dmFyKC0tY29sb3ItYmFuYW5hLXllbGxvdy03MDApOy0tY29sb3ItY29udGVudC1zZWNvbmRhcnktZGFuZ2VyLWV4dHJhLWJvbGQ6dmFyKC0tY29sb3ItYmVycnktcGluay1hMjAwKTstLWNvbG9yLWNvbnRlbnQtc2Vjb25kYXJ5LXN1Y2Nlc3M6dmFyKC0tY29sb3ItbWludHktZ3JlZW4tMzAwKTstLWNvbG9yLWNvbnRlbnQtc2Vjb25kYXJ5LXN1Y2Nlc3Mtc2VtaS1ib2xkOnZhcigtLWNvbG9yLW1pbnR5LWdyZWVuLTMwMCk7LS1jb2xvci1jb250ZW50LXNlY29uZGFyeS1zdWNjZXNzLWV4dHJhLWJvbGQ6dmFyKC0tY29sb3ItZm9yZXN0LWdyZWVuLTQwMCk7LS1jb2xvci1jb250ZW50LXRlcnRpYXJ5LWFjY2VudDp2YXIoLS1jb2xvci10di1ibHVlLTEwMCk7LS1jb2xvci1jb250ZW50LXRlcnRpYXJ5LWFjY2VudC1ib2xkOnZhcigtLWNvbG9yLXR2LWJsdWUtMjAwKTstLWNvbG9yLWNvbnRlbnQtdGVydGlhcnktbmV1dHJhbC1ib2xkOnZhcigtLWNvbG9yLWNvbGQtZ3JheS0zMDApOy0tY29sb3ItY29udGVudC10ZXJ0aWFyeS1zdWNjZXNzLWV4dHJhLWJvbGQ6dmFyKC0tY29sb3ItaWd1YW5hLWdyZWVuLTQwMCk7LS1jb2xvci1jb250ZW50LXRlcnRpYXJ5LWFjY2VudC1zZW1pLWJvbGQ6dmFyKC0tY29sb3ItdHYtYmx1ZS0xMDApOy0tY29sb3ItY29udGVudC10ZXJ0aWFyeS1pbnZlcnNlOnZhcigtLWNvbG9yLXdoaXRlKTstLWNvbG9yLWNvbnRlbnQtcXVhdGVybmFyeS1hY2NlbnQ6dmFyKC0tY29sb3ItdHYtYmx1ZS1hMTAwKTstLWNvbG9yLWNvbnRlbnQtcXVhdGVybmFyeS1hY2NlbnQtc2VtaS1ib2xkOnZhcigtLWNvbG9yLXR2LWJsdWUtMzAwKTstLWNvbG9yLWNvbnRlbnQtcXVpbmFyeS1hY2NlbnQ6dmFyKC0tY29sb3ItdHYtYmx1ZS0zMDApOy0tY29sb3ItY29udGVudC1xdWluYXJ5LWFjY2VudC1zZW1pLWJvbGQ6dmFyKC0tY29sb3ItdHYtYmx1ZS00MDApOy0tY29sb3ItY29udGVudC1xdWluYXJ5LWFjY2VudC1ib2xkOnZhcigtLWNvbG9yLXR2LWJsdWUtNTAwKTstLWNvbG9yLWJvcmRlci1wcmltYXJ5LWFjY2VudDp2YXIoLS1jb2xvci10di1ibHVlLTUwMCk7LS1jb2xvci1ib3JkZXItcHJpbWFyeS1hY2NlbnQtZXh0cmEtbGlnaHQ6dmFyKC0tY29sb3ItdHYtYmx1ZS1hODAwKTstLWNvbG9yLWJvcmRlci1wcmltYXJ5LWRhbmdlcjp2YXIoLS1jb2xvci1yaXBlLXJlZC01MDApOy0tY29sb3ItYm9yZGVyLXByaW1hcnktaW52ZXJzZTp2YXIoLS1jb2xvci1ibGFjayk7LS1jb2xvci1ib3JkZXItcHJpbWFyeS1uZXV0cmFsOnZhcigtLWNvbG9yLWNvbGQtZ3JheS01MDApOy0tY29sb3ItYm9yZGVyLXByaW1hcnktbmV1dHJhbC1ib2xkOnZhcigtLWNvbG9yLWNvbGQtZ3JheS0zNTApOy0tY29sb3ItYm9yZGVyLXByaW1hcnktbmV1dHJhbC1leHRyYS1ib2xkOnZhcigtLWNvbG9yLXdoaXRlKTstLWNvbG9yLWJvcmRlci1wcmltYXJ5LW5ldXRyYWwtZXh0cmEtaGVhdnk6dmFyKC0tY29sb3Itd2hpdGUpOy0tY29sb3ItYm9yZGVyLXByaW1hcnktbmV1dHJhbC1saWdodDp2YXIoLS1jb2xvci1jb2xkLWdyYXktNzAwKTstLWNvbG9yLWJvcmRlci1wcmltYXJ5LW5ldXRyYWwtbm9ybWFsOnZhcigtLWNvbG9yLWNvbGQtZ3JheS02MDApOy0tY29sb3ItYm9yZGVyLXByaW1hcnktbmV1dHJhbC1zZW1pLWJvbGQ6dmFyKC0tY29sb3ItY29sZC1ncmF5LTQ1MCk7LS1jb2xvci1ib3JkZXItcHJpbWFyeS1zdWNjZXNzOnZhcigtLWNvbG9yLW1pbnR5LWdyZWVuLTUwMCk7LS1jb2xvci1ib3JkZXItcHJpbWFyeS13YXJuaW5nOnZhcigtLWNvbG9yLXRhbi1vcmFuZ2UtNTAwKTstLWNvbG9yLWJvcmRlci1zZWNvbmRhcnktaW52ZXJzZTp2YXIoLS1jb2xvci1jb2xkLWdyYXktOTAwKTstLWNvbG9yLWJvcmRlci1zZWNvbmRhcnktbmV1dHJhbDp2YXIoLS1jb2xvci1jb2xkLWdyYXktNzAwKTstLWNvbG9yLWJvcmRlci1zZWNvbmRhcnktbmV1dHJhbC1ub3JtYWw6dmFyKC0tY29sb3ItY29sZC1ncmF5LTY1MCk7LS1jb2xvci1ib3JkZXItdGVydGlhcnktaW52ZXJzZTp2YXIoLS1jb2xvci1jb2xkLWdyYXktODUwKTstLWNvbG9yLWJvcmRlci1wcmltYXJ5LW5ldXRyYWwtZXh0cmEtbGlnaHQ6dmFyKC0tY29sb3ItY29sZC1ncmF5LTgwMCk7LS1jb2xvci1vdmVybGF5LWFjY2VudC0xLWxpZ2h0OiM0NDhhZmYzMzstLWNvbG9yLW92ZXJsYXktYWNjZW50LTEtbm9ybWFsOiM0NDhhZmY0ZDstLWNvbG9yLW92ZXJsYXktYWNjZW50LTEtYm9sZDojNDQ4YWZmNjY7LS1jb2xvci1vdmVybGF5LWFjY2VudC0yLWxpZ2h0OiMwMGJjZDQzMzstLWNvbG9yLW92ZXJsYXktYWNjZW50LTItbm9ybWFsOiMwMGJjZDQ0ZDstLWNvbG9yLW92ZXJsYXktYWNjZW50LTItYm9sZDojMDBiY2Q0NjY7LS1jb2xvci1vdmVybGF5LWFjY2VudC0zLWxpZ2h0OiNlYTgwZmMzMzstLWNvbG9yLW92ZXJsYXktYWNjZW50LTMtbm9ybWFsOiNlYTgwZmM0ZDstLWNvbG9yLW92ZXJsYXktYWNjZW50LTMtYm9sZDojZWE4MGZjNjY7LS1jb2xvci1vdmVybGF5LWFjY2VudC00LWxpZ2h0OiNiMzg4ZmYzMzstLWNvbG9yLW92ZXJsYXktYWNjZW50LTQtbm9ybWFsOiNiMzg4ZmY0ZDstLWNvbG9yLW92ZXJsYXktYWNjZW50LTQtYm9sZDojYjM4OGZmNjY7LS1jb2xvci1vdmVybGF5LW5lZ2F0aXZlLTEtbGlnaHQ6I2YyMzY0NTMzOy0tY29sb3Itb3ZlcmxheS1uZWdhdGl2ZS0xLW5vcm1hbDojZjIzNjQ1NGQ7LS1jb2xvci1vdmVybGF5LW5lZ2F0aXZlLTEtYm9sZDojZjIzNjQ1NjY7LS1jb2xvci1vdmVybGF5LW5lZ2F0aXZlLTItbGlnaHQ6I2ZmNDA4MTMzOy0tY29sb3Itb3ZlcmxheS1uZWdhdGl2ZS0yLW5vcm1hbDojZmY0MDgxNGQ7LS1jb2xvci1vdmVybGF5LW5lZ2F0aXZlLTItYm9sZDojZmY0MDgxNjY7LS1jb2xvci1vdmVybGF5LW5ldXRyYWwtMS1saWdodDojYjhiOGI4MzM7LS1jb2xvci1vdmVybGF5LW5ldXRyYWwtMS1ub3JtYWw6I2I4YjhiODRkOy0tY29sb3Itb3ZlcmxheS1uZXV0cmFsLTEtYm9sZDojYjhiOGI4NjY7LS1jb2xvci1vdmVybGF5LW5ldXRyYWwtMi1saWdodDojZmZmMzstLWNvbG9yLW92ZXJsYXktbmV1dHJhbC0yLW5vcm1hbDojZmZmZmZmNGQ7LS1jb2xvci1vdmVybGF5LW5ldXRyYWwtMi1ib2xkOiNmZmY2Oy0tY29sb3Itb3ZlcmxheS1wb3NpdGl2ZS0xLWxpZ2h0OiMyMmFiOTQzMzstLWNvbG9yLW92ZXJsYXktcG9zaXRpdmUtMS1ub3JtYWw6IzIyYWI5NDRkOy0tY29sb3Itb3ZlcmxheS1wb3NpdGl2ZS0xLWJvbGQ6IzIyYWI5NDY2Oy0tY29sb3Itb3ZlcmxheS1wb3NpdGl2ZS0yLWxpZ2h0OiMyMmFiNjczMzstLWNvbG9yLW92ZXJsYXktcG9zaXRpdmUtMi1ub3JtYWw6IzIyYWI2NzRkOy0tY29sb3Itb3ZlcmxheS1wb3NpdGl2ZS0yLWJvbGQ6IzIyYWI2NzY2Oy0tY29sb3Itb3ZlcmxheS1wb3NpdGl2ZS0zLWxpZ2h0OiM0Y2FmNTAzMzstLWNvbG9yLW92ZXJsYXktcG9zaXRpdmUtMy1ub3JtYWw6IzRjYWY1MDRkOy0tY29sb3Itb3ZlcmxheS1wb3NpdGl2ZS0zLWJvbGQ6IzRjYWY1MDY2Oy0tY29sb3Itb3ZlcmxheS13YXJuaW5nLTEtbGlnaHQ6I2ZmOTgwMDMzOy0tY29sb3Itb3ZlcmxheS13YXJuaW5nLTEtbm9ybWFsOiNmZjk4MDA0ZDstLWNvbG9yLW92ZXJsYXktd2FybmluZy0xLWJvbGQ6I2ZmOTgwMDY2Oy0tY29sb3Itb3ZlcmxheS13YXJuaW5nLTItbGlnaHQ6I2ZkZDgzNTMzOy0tY29sb3Itb3ZlcmxheS13YXJuaW5nLTItbm9ybWFsOiNmZGQ4MzU0ZDstLWNvbG9yLW92ZXJsYXktd2FybmluZy0yLWJvbGQ6I2ZkZDgzNTY2Oy0tY29sb3Itb3ZlcmxheS13YXJuaW5nLTMtbGlnaHQ6I2ZmOTgwMDFhOy0tY29sb3Itb3ZlcmxheS13YXJuaW5nLTMtbm9ybWFsOiNmZjk4MDAzMzstLWNvbG9yLW92ZXJsYXktd2FybmluZy0zLWJvbGQ6I2ZmOTgwMDRkOy0tY29sb3Itb3ZlcmxheS1uZXV0cmFsLTMtbGlnaHQ6IzJlMmUyZTY2Oy0tY29sb3Itb3ZlcmxheS1uZXV0cmFsLTMtbm9ybWFsOiMyZTJlMmVjYzstLWNvbG9yLW92ZXJsYXktbmV1dHJhbC0zLWJvbGQ6IzJlMmUyZTstLWNvbG9yLWhlYXRtYXAtY2xhc3NpYy1taW51czMtZGVmYXVsdDp2YXIoLS1jb2xvci1yaXBlLXJlZC01MDApOy0tY29sb3ItaGVhdG1hcC1jbGFzc2ljLW1pbnVzMi1kZWZhdWx0OnZhcigtLWNvbG9yLXJpcGUtcmVkLTcwMCk7LS1jb2xvci1oZWF0bWFwLWNsYXNzaWMtbWludXMxLWRlZmF1bHQ6dmFyKC0tY29sb3ItcmlwZS1yZWQtOTAwKTstLWNvbG9yLWhlYXRtYXAtY2xhc3NpYy16ZXJvLWRlZmF1bHQ6dmFyKC0tY29sb3ItY29sZC1ncmF5LTc1MCk7LS1jb2xvci1oZWF0bWFwLWNsYXNzaWMtcGx1czEtZGVmYXVsdDp2YXIoLS1jb2xvci1mb3Jlc3QtZ3JlZW4tOTAwKTstLWNvbG9yLWhlYXRtYXAtY2xhc3NpYy1wbHVzMi1kZWZhdWx0OnZhcigtLWNvbG9yLWZvcmVzdC1ncmVlbi03MDApOy0tY29sb3ItaGVhdG1hcC1jbGFzc2ljLXBsdXMzLWRlZmF1bHQ6dmFyKC0tY29sb3ItZm9yZXN0LWdyZWVuLTUwMCk7LS1jb2xvci1oZWF0bWFwLWNsYXNzaWMtbGlnaHQtbmVnYXRpdmUteGw6dmFyKC0tY29sb3ItcmlwZS1yZWQtNDAwKTstLWNvbG9yLWhlYXRtYXAtY2xhc3NpYy1saWdodC1uZWdhdGl2ZS1sOnZhcigtLWNvbG9yLXJpcGUtcmVkLTUwMCk7LS1jb2xvci1oZWF0bWFwLWNsYXNzaWMtbGlnaHQtbmVnYXRpdmUtbTp2YXIoLS1jb2xvci1yaXBlLXJlZC03MDApOy0tY29sb3ItaGVhdG1hcC1jbGFzc2ljLWxpZ2h0LW5lZ2F0aXZlLXM6dmFyKC0tY29sb3ItcmlwZS1yZWQtOTAwKTstLWNvbG9yLWhlYXRtYXAtY2xhc3NpYy1saWdodC1uZXV0cmFsOnZhcigtLWNvbG9yLWJsYWNrKTstLWNvbG9yLWhlYXRtYXAtY2xhc3NpYy1saWdodC1wb3NpdGl2ZS1zOnZhcigtLWNvbG9yLWZvcmVzdC1ncmVlbi05MDApOy0tY29sb3ItaGVhdG1hcC1jbGFzc2ljLWxpZ2h0LXBvc2l0aXZlLW06dmFyKC0tY29sb3ItZm9yZXN0LWdyZWVuLTcwMCk7LS1jb2xvci1oZWF0bWFwLWNsYXNzaWMtbGlnaHQtcG9zaXRpdmUtbDp2YXIoLS1jb2xvci1mb3Jlc3QtZ3JlZW4tNTAwKTstLWNvbG9yLWhlYXRtYXAtY2xhc3NpYy1saWdodC1wb3NpdGl2ZS14bDp2YXIoLS1jb2xvci1mb3Jlc3QtZ3JlZW4tNDAwKTstLWNvbG9yLWhlYXRtYXAtY2xhc3NpYy1saWdodC1lbXB0eTp2YXIoLS1jb2xvci1jb2xkLWdyYXktNzUwKTstLWNvbG9yLWhlYXRtYXAtY2xhc3NpYy1saWdodC1ob3Zlcjp2YXIoLS1jb2xvci10di1ibHVlLTgwMCk7LS1jb2xvci1oZWF0bWFwLWNvbG9yYmxpbmQtbWludXMzLWRlZmF1bHQ6dmFyKC0tY29sb3ItdGFuLW9yYW5nZS03MDApOy0tY29sb3ItaGVhdG1hcC1jb2xvcmJsaW5kLW1pbnVzMi1kZWZhdWx0OiNhYTYzMjQ7LS1jb2xvci1oZWF0bWFwLWNvbG9yYmxpbmQtbWludXMxLWRlZmF1bHQ6dmFyKC0tY29sb3ItdGFuLW9yYW5nZS1hODAwKTstLWNvbG9yLWhlYXRtYXAtY29sb3JibGluZC16ZXJvLWRlZmF1bHQ6dmFyKC0tY29sb3ItY29sZC1ncmF5LTc1MCk7LS1jb2xvci1oZWF0bWFwLWNvbG9yYmxpbmQtcGx1czEtZGVmYXVsdDp2YXIoLS1jb2xvci10di1ibHVlLWE4MDApOy0tY29sb3ItaGVhdG1hcC1jb2xvcmJsaW5kLXBsdXMyLWRlZmF1bHQ6dmFyKC0tY29sb3ItdHYtYmx1ZS04MDApOy0tY29sb3ItaGVhdG1hcC1jb2xvcmJsaW5kLXBsdXMzLWRlZmF1bHQ6dmFyKC0tY29sb3ItdHYtYmx1ZS01MDApOy0tY29sb3ItaGVhdG1hcC1tb25vY2hyb21lLW1pbnVzMy1kZWZhdWx0OnZhcigtLWNvbG9yLWNvbGQtZ3JheS0xNTApOy0tY29sb3ItaGVhdG1hcC1tb25vY2hyb21lLW1pbnVzMi1kZWZhdWx0OnZhcigtLWNvbG9yLWNvbGQtZ3JheS0yNTApOy0tY29sb3ItaGVhdG1hcC1tb25vY2hyb21lLW1pbnVzMS1kZWZhdWx0OnZhcigtLWNvbG9yLWNvbGQtZ3JheS0zNTApOy0tY29sb3ItaGVhdG1hcC1tb25vY2hyb21lLXplcm8tZGVmYXVsdDp2YXIoLS1jb2xvci1jb2xkLWdyYXktNDUwKTstLWNvbG9yLWhlYXRtYXAtbW9ub2Nocm9tZS1wbHVzMS1kZWZhdWx0OnZhcigtLWNvbG9yLWNvbGQtZ3JheS01NTApOy0tY29sb3ItaGVhdG1hcC1tb25vY2hyb21lLXBsdXMyLWRlZmF1bHQ6dmFyKC0tY29sb3ItY29sZC1ncmF5LTY1MCk7LS1jb2xvci1oZWF0bWFwLW1vbm9jaHJvbWUtcGx1czMtZGVmYXVsdDp2YXIoLS1jb2xvci1jb2xkLWdyYXktODAwKTstLWNvbG9yLWhlYXRtYXAtcG9zaXRpdmUtb25seS12MS1kZWZhdWx0OnZhcigtLWNvbG9yLWNvbGQtZ3JheS03NTApOy0tY29sb3ItaGVhdG1hcC1wb3NpdGl2ZS1vbmx5LXYyLWRlZmF1bHQ6dmFyKC0tY29sb3ItdHYtYmx1ZS1hODAwKTstLWNvbG9yLWhlYXRtYXAtcG9zaXRpdmUtb25seS12My1kZWZhdWx0OnZhcigtLWNvbG9yLXR2LWJsdWUtYTcwMCk7LS1jb2xvci1oZWF0bWFwLXBvc2l0aXZlLW9ubHktdjQtZGVmYXVsdDp2YXIoLS1jb2xvci10di1ibHVlLTgwMCk7LS1jb2xvci1oZWF0bWFwLXBvc2l0aXZlLW9ubHktdjUtZGVmYXVsdDp2YXIoLS1jb2xvci10di1ibHVlLTYwMCk7LS1jb2xvci1oZWF0bWFwLXBvc2l0aXZlLW9ubHktdjYtZGVmYXVsdDp2YXIoLS1jb2xvci10di1ibHVlLTMwMCk7LS1jb2xvci1oZWF0bWFwLXBvc2l0aXZlLW9ubHktdjctZGVmYXVsdDp2YXIoLS1jb2xvci10di1ibHVlLTIwMCk7LS1jb2xvci1oZWF0bWFwLXJhbmdlLWxpZ2h0LW5lZ2F0aXZlLXhsOnZhcigtLWNvbG9yLXRhbi1vcmFuZ2UtYTYwMCk7LS1jb2xvci1oZWF0bWFwLXJhbmdlLWxpZ2h0LW5lZ2F0aXZlLWw6dmFyKC0tY29sb3ItdGFuLW9yYW5nZS1hNzAwKTstLWNvbG9yLWhlYXRtYXAtcmFuZ2UtbGlnaHQtbmVnYXRpdmUtbTp2YXIoLS1jb2xvci10YW4tb3JhbmdlLWE4MDApOy0tY29sb3ItaGVhdG1hcC1yYW5nZS1saWdodC1uZWdhdGl2ZS1zOnZhcigtLWNvbG9yLXRhbi1vcmFuZ2UtYTkwMCk7LS1jb2xvci1oZWF0bWFwLXJhbmdlLWxpZ2h0LW5ldXRyYWw6dmFyKC0tY29sb3ItYmxhY2spOy0tY29sb3ItaGVhdG1hcC1yYW5nZS1saWdodC1wb3NpdGl2ZS1zOnZhcigtLWNvbG9yLXNreS1ibHVlLTkwMCk7LS1jb2xvci1oZWF0bWFwLXJhbmdlLWxpZ2h0LXBvc2l0aXZlLW06dmFyKC0tY29sb3Itc2t5LWJsdWUtNzAwKTstLWNvbG9yLWhlYXRtYXAtcmFuZ2UtbGlnaHQtcG9zaXRpdmUtbDp2YXIoLS1jb2xvci1za3ktYmx1ZS02MDApOy0tY29sb3ItaGVhdG1hcC1yYW5nZS1saWdodC1wb3NpdGl2ZS14bDp2YXIoLS1jb2xvci1za3ktYmx1ZS01MDApOy0tY29sb3ItaGVhdG1hcC1yYW5nZS1saWdodC1lbXB0eTp2YXIoLS1jb2xvci1jb2xkLWdyYXktNzUwKTstLWNvbG9yLWhlYXRtYXAtcmFuZ2UtbGlnaHQtaG92ZXI6dmFyKC0tY29sb3ItdHYtYmx1ZS04MDApOy0tY29sb3ItaGVhdG1hcC10YW4tb3JhbmdlLXhzOnZhcigtLWNvbG9yLXRhbi1vcmFuZ2UtYTkwMCk7LS1jb2xvci1oZWF0bWFwLXRhbi1vcmFuZ2Utczp2YXIoLS1jb2xvci10YW4tb3JhbmdlLWE4MDApOy0tY29sb3ItaGVhdG1hcC10YW4tb3JhbmdlLW06dmFyKC0tY29sb3ItdGFuLW9yYW5nZS1hNzAwKTstLWNvbG9yLWhlYXRtYXAtdGFuLW9yYW5nZS1sOnZhcigtLWNvbG9yLXRhbi1vcmFuZ2UtNTAwKTstLWNvbG9yLWhlYXRtYXAtdGFuLW9yYW5nZS14bDp2YXIoLS1jb2xvci10YW4tb3JhbmdlLTMwMCk7LS1jb2xvci1oZWF0bWFwLXRhbi1vcmFuZ2UteHhsOnZhcigtLWNvbG9yLXRhbi1vcmFuZ2UtMjAwKTstLWNvbG9yLWhlYXRtYXAtdGFuLW9yYW5nZS1lbXB0eTp2YXIoLS1jb2xvci1jb2xkLWdyYXktODAwKTstLWNvbG9yLWhlYXRtYXAtdGFuLW9yYW5nZS1ib3JkZXI6dmFyKC0tY29sb3ItdGFuLW9yYW5nZS0xMDApOy0tY29sb3ItaGVhdG1hcC1za3ktYmx1ZS14czp2YXIoLS1jb2xvci1za3ktYmx1ZS05MDApOy0tY29sb3ItaGVhdG1hcC1za3ktYmx1ZS1zOnZhcigtLWNvbG9yLXNreS1ibHVlLTgwMCk7LS1jb2xvci1oZWF0bWFwLXNreS1ibHVlLW06dmFyKC0tY29sb3Itc2t5LWJsdWUtNzAwKTstLWNvbG9yLWhlYXRtYXAtc2t5LWJsdWUtbDp2YXIoLS1jb2xvci1za3ktYmx1ZS01MDApOy0tY29sb3ItaGVhdG1hcC1za3ktYmx1ZS14bDp2YXIoLS1jb2xvci1za3ktYmx1ZS0zMDApOy0tY29sb3ItaGVhdG1hcC1za3ktYmx1ZS14eGw6dmFyKC0tY29sb3Itc2t5LWJsdWUtMjAwKTstLWNvbG9yLWhlYXRtYXAtc2t5LWJsdWUtZW1wdHk6dmFyKC0tY29sb3ItY29sZC1ncmF5LTgwMCk7LS1jb2xvci1oZWF0bWFwLXNreS1ibHVlLWJvcmRlcjp2YXIoLS1jb2xvci1za3ktYmx1ZS0xMDApOy0tY29sb3ItaGVhdG1hcC1kZWVwLWJsdWUteHM6dmFyKC0tY29sb3ItZGVlcC1ibHVlLTkwMCk7LS1jb2xvci1oZWF0bWFwLWRlZXAtYmx1ZS1zOnZhcigtLWNvbG9yLWRlZXAtYmx1ZS03MDApOy0tY29sb3ItaGVhdG1hcC1kZWVwLWJsdWUtbTp2YXIoLS1jb2xvci1kZWVwLWJsdWUtNTAwKTstLWNvbG9yLWhlYXRtYXAtZGVlcC1ibHVlLWw6dmFyKC0tY29sb3ItZGVlcC1ibHVlLTQwMCk7LS1jb2xvci1oZWF0bWFwLWRlZXAtYmx1ZS14bDp2YXIoLS1jb2xvci1kZWVwLWJsdWUtMzAwKTstLWNvbG9yLWhlYXRtYXAtZGVlcC1ibHVlLXh4bDp2YXIoLS1jb2xvci1kZWVwLWJsdWUtMjAwKTstLWNvbG9yLWhlYXRtYXAtZGVlcC1ibHVlLWVtcHR5OnZhcigtLWNvbG9yLWNvbGQtZ3JheS04MDApOy0tY29sb3ItaGVhdG1hcC1kZWVwLWJsdWUtYm9yZGVyOnZhcigtLWNvbG9yLWRlZXAtYmx1ZS0xMDApOy0tY29sb3ItaGVhdG1hcC10di1ibHVlLXhzOnZhcigtLWNvbG9yLXR2LWJsdWUtYTkwMCk7LS1jb2xvci1oZWF0bWFwLXR2LWJsdWUtczp2YXIoLS1jb2xvci10di1ibHVlLWE4MDApOy0tY29sb3ItaGVhdG1hcC10di1ibHVlLW06dmFyKC0tY29sb3ItdHYtYmx1ZS1hNzAwKTstLWNvbG9yLWhlYXRtYXAtdHYtYmx1ZS1sOnZhcigtLWNvbG9yLXR2LWJsdWUtNTAwKTstLWNvbG9yLWhlYXRtYXAtdHYtYmx1ZS14bDp2YXIoLS1jb2xvci10di1ibHVlLTMwMCk7LS1jb2xvci1oZWF0bWFwLXR2LWJsdWUteHhsOnZhcigtLWNvbG9yLXR2LWJsdWUtMjAwKTstLWNvbG9yLWhlYXRtYXAtdHYtYmx1ZS1lbXB0eTp2YXIoLS1jb2xvci1jb2xkLWdyYXktODAwKTstLWNvbG9yLWhlYXRtYXAtdHYtYmx1ZS1ib3JkZXI6dmFyKC0tY29sb3ItdHYtYmx1ZS0xMDApOy0tY29sb3ItaGVhdG1hcC1iZXJyeS1waW5rLXhzOnZhcigtLWNvbG9yLWJlcnJ5LXBpbmstOTAwKTstLWNvbG9yLWhlYXRtYXAtYmVycnktcGluay1zOnZhcigtLWNvbG9yLWJlcnJ5LXBpbmstODAwKTstLWNvbG9yLWhlYXRtYXAtYmVycnktcGluay1tOnZhcigtLWNvbG9yLWJlcnJ5LXBpbmstNzAwKTstLWNvbG9yLWhlYXRtYXAtYmVycnktcGluay1sOnZhcigtLWNvbG9yLWJlcnJ5LXBpbmstNTAwKTstLWNvbG9yLWhlYXRtYXAtYmVycnktcGluay14bDp2YXIoLS1jb2xvci1iZXJyeS1waW5rLTMwMCk7LS1jb2xvci1oZWF0bWFwLWJlcnJ5LXBpbmsteHhsOnZhcigtLWNvbG9yLWJlcnJ5LXBpbmstMjAwKTstLWNvbG9yLWhlYXRtYXAtYmVycnktcGluay1lbXB0eTp2YXIoLS1jb2xvci1jb2xkLWdyYXktODAwKTstLWNvbG9yLWhlYXRtYXAtYmVycnktcGluay1ib3JkZXI6dmFyKC0tY29sb3ItYmVycnktcGluay0xMDApOy0tY29sb3ItaGVhdG1hcC1mb3Jlc3QtZ3JlZW4teHM6dmFyKC0tY29sb3ItZm9yZXN0LWdyZWVuLTkwMCk7LS1jb2xvci1oZWF0bWFwLWZvcmVzdC1ncmVlbi1zOnZhcigtLWNvbG9yLWZvcmVzdC1ncmVlbi04MDApOy0tY29sb3ItaGVhdG1hcC1mb3Jlc3QtZ3JlZW4tbTp2YXIoLS1jb2xvci1mb3Jlc3QtZ3JlZW4tNzAwKTstLWNvbG9yLWhlYXRtYXAtZm9yZXN0LWdyZWVuLWw6dmFyKC0tY29sb3ItZm9yZXN0LWdyZWVuLTUwMCk7LS1jb2xvci1oZWF0bWFwLWZvcmVzdC1ncmVlbi14bDp2YXIoLS1jb2xvci1mb3Jlc3QtZ3JlZW4tMzAwKTstLWNvbG9yLWhlYXRtYXAtZm9yZXN0LWdyZWVuLXh4bDp2YXIoLS1jb2xvci1mb3Jlc3QtZ3JlZW4tMjAwKTstLWNvbG9yLWhlYXRtYXAtZm9yZXN0LWdyZWVuLWVtcHR5OnZhcigtLWNvbG9yLWNvbGQtZ3JheS04MDApOy0tY29sb3ItaGVhdG1hcC1mb3Jlc3QtZ3JlZW4tYm9yZGVyOnZhcigtLWNvbG9yLWZvcmVzdC1ncmVlbi0xMDApOy0tY29sb3ItaGVhdG1hcC1taW50eS1ncmVlbi14czp2YXIoLS1jb2xvci1taW50eS1ncmVlbi1hOTAwKTstLWNvbG9yLWhlYXRtYXAtbWludHktZ3JlZW4tczp2YXIoLS1jb2xvci1taW50eS1ncmVlbi1hODAwKTstLWNvbG9yLWhlYXRtYXAtbWludHktZ3JlZW4tbTp2YXIoLS1jb2xvci1taW50eS1ncmVlbi1hNzAwKTstLWNvbG9yLWhlYXRtYXAtbWludHktZ3JlZW4tbDp2YXIoLS1jb2xvci1taW50eS1ncmVlbi01MDApOy0tY29sb3ItaGVhdG1hcC1taW50eS1ncmVlbi14bDp2YXIoLS1jb2xvci1taW50eS1ncmVlbi0zMDApOy0tY29sb3ItaGVhdG1hcC1taW50eS1ncmVlbi14eGw6dmFyKC0tY29sb3ItbWludHktZ3JlZW4tMjAwKTstLWNvbG9yLWhlYXRtYXAtbWludHktZ3JlZW4tZW1wdHk6dmFyKC0tY29sb3ItY29sZC1ncmF5LTgwMCk7LS1jb2xvci1oZWF0bWFwLW1pbnR5LWdyZWVuLWJvcmRlcjp2YXIoLS1jb2xvci1taW50eS1ncmVlbi0xMDApOy0tY29sb3ItaGVhdG1hcC1ncmFwZXMtcHVycGxlLXhzOnZhcigtLWNvbG9yLWdyYXBlcy1wdXJwbGUtOTAwKTstLWNvbG9yLWhlYXRtYXAtZ3JhcGVzLXB1cnBsZS1zOnZhcigtLWNvbG9yLWdyYXBlcy1wdXJwbGUtODAwKTstLWNvbG9yLWhlYXRtYXAtZ3JhcGVzLXB1cnBsZS1tOnZhcigtLWNvbG9yLWdyYXBlcy1wdXJwbGUtNzAwKTstLWNvbG9yLWhlYXRtYXAtZ3JhcGVzLXB1cnBsZS1sOnZhcigtLWNvbG9yLWdyYXBlcy1wdXJwbGUtNTAwKTstLWNvbG9yLWhlYXRtYXAtZ3JhcGVzLXB1cnBsZS14bDp2YXIoLS1jb2xvci1ncmFwZXMtcHVycGxlLTMwMCk7LS1jb2xvci1oZWF0bWFwLWdyYXBlcy1wdXJwbGUteHhsOnZhcigtLWNvbG9yLWdyYXBlcy1wdXJwbGUtMjAwKTstLWNvbG9yLWhlYXRtYXAtZ3JhcGVzLXB1cnBsZS1lbXB0eTp2YXIoLS1jb2xvci1jb2xkLWdyYXktODAwKTstLWNvbG9yLWhlYXRtYXAtZ3JhcGVzLXB1cnBsZS1ib3JkZXI6dmFyKC0tY29sb3ItZ3JhcGVzLXB1cnBsZS0xMDApOy0tY29sb3ItbWFya2VyLWZsYWdnZWQ6dmFyKC0tY29sb3ItcmlwZS1yZWQtNDAwKTstLWNvbG9yLW1hcmtlci1mbGFnZ2VkLWhvdmVyZWQ6dmFyKC0tY29sb3ItcmlwZS1yZWQtNjAwKTstLWNvbG9yLWFzazp2YXIoLS1jb2xvci1yaXBlLXJlZC00MDApOy0tY29sb3Itc2VsbDp2YXIoLS1jb2xvci1yaXBlLXJlZC00MDApOy0tY29sb3ItYnV5OnZhcigtLWNvbG9yLXR2LWJsdWUtNTAwKTstLWNvbG9yLW5ldXRyYWw6dmFyKC0tY29sb3ItY29sZC1ncmF5LTU1MCk7LS1jb2xvci1wcm86dmFyKC0tY29sb3ItbWludHktZ3JlZW4tNDAwKTstLWNvbG9yLXByby1ob3Zlcjp2YXIoLS1jb2xvci1taW50eS1ncmVlbi02MDApOy0tY29sb3ItcHJvLXBsdXM6dmFyKC0tY29sb3ItdHYtYmx1ZS01MDApOy0tY29sb3ItcHJvLXBsdXMtaG92ZXI6dmFyKC0tY29sb3ItdHYtYmx1ZS02MDApOy0tY29sb3ItcHJvLXByZW1pdW06dmFyKC0tY29sb3ItdGFuLW9yYW5nZS01MDApOy0tY29sb3ItcHJvLXByZW1pdW0taG92ZXI6dmFyKC0tY29sb3ItdGFuLW9yYW5nZS03MDApOy0tY29sb3ItdHJpYWw6dmFyKC0tY29sb3ItY29sZC1ncmF5LTU1MCk7LS1jb2xvci10cmlhbC1ob3Zlcjp2YXIoLS1jb2xvci1jb2xkLWdyYXktNTUwKTstLWNvbG9yLW1vZDp2YXIoLS1jb2xvci1yaXBlLXJlZC00MDApOy0tY29sb3ItbW9kLWhvdmVyOnZhcigtLWNvbG9yLXJpcGUtcmVkLTYwMCk7LS1jb2xvci1hZDp2YXIoLS1jb2xvci10YW4tb3JhbmdlLTUwMCk7LS1jb2xvci1icm9rZXItZmVhdHVyZWQ6dmFyKC0tY29sb3ItbWludHktZ3JlZW4tNDAwKTstLWNvbG9yLWJyb2tlci1mZWF0dXJlZC1ob3Zlcjp2YXIoLS1jb2xvci1taW50eS1ncmVlbi02MDApOy0tY29sb3ItYWxlcnQtc3RhdHVzLWFjdGl2ZTp2YXIoLS1jb2xvci1taW50eS1ncmVlbi01MDApOy0tY29sb3ItYWxlcnQtc3RhdHVzLXN0b3BwZWQ6dmFyKC0tY29sb3ItcmlwZS1yZWQtNTAwKTstLWNvbG9yLWFsZXJ0LXN0YXR1cy10cmlnZ2VyZWQ6dmFyKC0tY29sb3ItdGFuLW9yYW5nZS01MDApOy0tY29sb3ItY29tbW9uLXRvb2x0aXAtdGV4dDp2YXIoLS1jb2xvci1jb2xkLWdyYXktMTAwKTstLWNvbG9yLXJlcGxheS1kYXRhLW1vZGU6dmFyKC0tY29sb3ItcmlwZS1yZWQtNDAwKTstLWNvbG9yLWxlZ2FjeS1zdWNjZXNzOnZhcigtLWNvbG9yLW1pbnR5LWdyZWVuLTMwMCk7LS1jb2xvci1jb2xsYXBzZS10YWJzLWJvcmRlcjp2YXIoLS1jb2xvci1jb2xkLWdyYXktMTAwKTstLWNvbG9yLXNpdGUtd2lkZ2V0LWhvdmVyOnZhcigtLWNvbG9yLWNvbGQtZ3JheS01MCk7LS1jb2xvci1hdHRlbnRpb246dmFyKC0tY29sb3ItYmFuYW5hLXllbGxvdy03MDApfQ=="}},"time_used":7,"timings":{"blocked":-1,"dns":2,"connect":1,"send":0,"wait":5,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/11409.ff84ce4d523d3540c7b2.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:12.966Z","timestamp":1785148032966,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/11409.ff84ce4d523d3540c7b2.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:12 GMT\r\ncontent-type: text/css; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a323ca6-30a0\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Wed, 17 Jun 2026 06:20:22 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.57\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 06/17/2026 11:15:35\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 1b0475ad18447daa7d96b3bc654d49c6\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":12448,"size_decoded":2540,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with very long lines (12448), with no line terminators","md5":"9cbd709ec51e71339f9e69c3d1123c45","sha1":"18fc795afdbb481ad608bd860ac9b7bb46ee7e64","sha256":"16656563dbea106cf3921679f643ec67ec00cb3aa403ca62d51a28b02edc49cd","sha512":"26e5802457dc337b290fa5ffd9b5ab3134a9243bc599ee54d8bf8129ad1f8c76256660c9eb5ea4e260161ba1568a64085cfdb3496f618dab283564cf760fcb96","ssdeep":"192:kOE3SjlWLR0cFLonGDgTVoTRRCc0OE3R25jqBfm2GKctwCYzcbyVjEBRroRGR7lW:2Wc1z3lTlftwE+VjEkARZVsr","tlshash":"45428b8ce94142af6813903c1339eb38de46ff53dc524bab7769544a4bc3ae161ebb44","first_seen":"2026-06-17T17:32:05.658594Z","last_seen":"2026-07-27T12:57:37.102283Z","times_seen":907,"resource_available":false,"data":"LnN0YXR1c2VzV3JhcC1VUklqRUI5OHtjdXJzb3I6ZGVmYXVsdDtkaXNwbGF5OmZsZXg7cG9pbnRlci1ldmVudHM6YXV0bztwb3NpdGlvbjpyZWxhdGl2ZTt6LWluZGV4OjB9W2RhdGEtcm9sZT1zdGF0dXNlcy1waWxsXXthbGlnbi1zZWxmOmNlbnRlcjtiYWNrZ3JvdW5kOm5vbmU7Ym9yZGVyOm5vbmU7Ym9yZGVyLXJhZGl1czo5cHg7ZGlzcGxheTppbmxpbmUtZmxleDttaW4td2lkdGg6NnB4O292ZXJmbG93OmhpZGRlbjtwYWRkaW5nOjB9W2RhdGEtcm9sZT1zdGF0dXNlcy1waWxsXTpmb2N1cy12aXNpYmxle291dGxpbmU6MnB4IHNvbGlkIHZhcigtLWNvbG9yLWZvY3VzLW91dGxpbmUtY29sb3ItYmx1ZSk7b3V0bGluZS1vZmZzZXQ6MnB4fVtkYXRhLXJvbGU9c3RhdHVzZXMtcGlsbF06ZW1wdHksW2RhdGEtcm9sZT1zdGF0dXNlcy1waWxsXV9oaWRkZW57ZGlzcGxheTpub25lfVtkYXRhLXJvbGU9c3RhdHVzZXMtcGlsbF0uc21hbGwtVVJJakVCOTh7Ym9yZGVyLXJhZGl1czo5cHh9W2RhdGEtcm9sZT1zdGF0dXNlcy1waWxsXS5tZWRpdW0tVVJJakVCOTh7Ym9yZGVyLXJhZGl1czoxMXB4fVtkYXRhLXJvbGU9c3RhdHVzZXMtcGlsbF0ubGFyZ2UtVVJJakVCOTh7Ym9yZGVyLXJhZGl1czo4cHh9W2RhdGEtcm9sZT1zdGF0dXNlcy1waWxsXS5ibGlua2luZy1VUklqRUI5OHt3aWxsLWNoYW5nZTpvcGFjaXR5fVtkYXRhLXJvbGU9c3RhdHVzZXMtcGlsbF0gLnN0YXR1c0l0ZW0tVVJJakVCOTg6bm90KDpvbmx5LWNoaWxkKTpmaXJzdC1jaGlsZHtwYWRkaW5nLWxlZnQ6MnB4fVtkYXRhLXJvbGU9c3RhdHVzZXMtcGlsbF0gLnN0YXR1c0l0ZW0tVVJJakVCOTg6bm90KDpvbmx5LWNoaWxkKTpsYXN0LWNoaWxke3BhZGRpbmctcmlnaHQ6MnB4fS5zdGF0dXNJdGVtLVVSSWpFQjk4e2RpcmVjdGlvbjpsdHI7ZGlzcGxheTpmbGV4O3Bvc2l0aW9uOnJlbGF0aXZlOy13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTt1c2VyLXNlbGVjdDpub25lfS5zdGF0dXNJdGVtLVVSSWpFQjk4OmFmdGVye2NvbnRlbnQ6IiI7ZGlzcGxheTpibG9jaztoZWlnaHQ6MTAwJTtpbnNldC1pbmxpbmUtc3RhcnQ6MDtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDt3aWR0aDoxMDAlO3otaW5kZXg6LTF9LnN0YXR1c0l0ZW0tVVJJakVCOTggc3Zne2luc2V0LWlubGluZS1zdGFydDo1MCU7cG9zaXRpb246cmVsYXRpdmU7dG9wOjUwJTt0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUsLTUwJSk7ei1pbmRleDowfS5zdGF0dXNJdGVtLVVSSWpFQjk4IHN2ZzpkaXIocnRsKXt0cmFuc2Zvcm06dHJhbnNsYXRlKDUwJSwtNTAlKX0uc3RhdHVzSXRlbS1VUklqRUI5OC5zbWFsbC1VUklqRUI5OHtoZWlnaHQ6MThweDt3aWR0aDoxOHB4fS5zdGF0dXNJdGVtLVVSSWpFQjk4Lm1lZGl1bS1VUklqRUI5OHtoZWlnaHQ6MjJweDt3aWR0aDoyMnB4fS5zdGF0dXNJdGVtLVVSSWpFQjk4LmxhcmdlLVVSSWpFQjk4e2hlaWdodDoyOHB4O3dpZHRoOjI4cHh9LnN0YXR1c0l0ZW0tVVJJakVCOTguYmxpbmtpbmctVVJJakVCOTg6YWZ0ZXJ7YW5pbWF0aW9uOmJsaW5raW5nLWFuaW1hdGlvbi1VUklqRUI5OCAyLjVzIGN1YmljLWJlemllciguMjUsMCwuNzUsMSkgaW5maW5pdGV9QG1lZGlhIChhbnktaG92ZXI6aG92ZXIpey5zdGF0dXNJdGVtLVVSSWpFQjk4LmJsaW5raW5nLVVSSWpFQjk4OmFmdGVyOmhvdmVye29wYWNpdHk6aW5oZXJpdH19LnN0YXR1c0l0ZW0tVVJJakVCOTg6ZGlyKHJ0bCl7ZGlyZWN0aW9uOnJ0bH0ubWFya2V0U3RhdHVzT3Blbi1VUklqRUI5OHtjb2xvcjp2YXIoLS1jb2xvci1jb250ZW50LXByaW1hcnktc3VjY2Vzcy1ib2xkKX0ubWFya2V0U3RhdHVzT3Blbi1VUklqRUI5ODphZnRlcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLW92ZXJsYXktcG9zaXRpdmUtMS1saWdodCl9QG1lZGlhIChhbnktaG92ZXI6aG92ZXIpe1tkYXRhLXJvbGU9c3RhdHVzZXMtcGlsbF06aG92ZXIgLm1hcmtldFN0YXR1c09wZW4tVVJJakVCOTg6YWZ0ZXJ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1vdmVybGF5LXBvc2l0aXZlLTEtbm9ybWFsKX19W2RhdGEtcm9sZT1zdGF0dXNlcy1waWxsXTphY3RpdmUgLm1hcmtldFN0YXR1c09wZW4tVVJJakVCOTg6YWZ0ZXJ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1vdmVybGF5LXBvc2l0aXZlLTEtYm9sZCl9Lm1hcmtldFN0YXR1c0Nsb3NlLVVSSWpFQjk4e2NvbG9yOnZhcigtLWNvbG9yLWNvbnRlbnQtcHJpbWFyeS1uZXV0cmFsLXNlbWktYm9sZCl9Lm1hcmtldFN0YXR1c0Nsb3NlLVVSSWpFQjk4OmFmdGVye2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3Itb3ZlcmxheS1uZXV0cmFsLTEtbGlnaHQpfUBtZWRpYSAoYW55LWhvdmVyOmhvdmVyKXtbZGF0YS1yb2xlPXN0YXR1c2VzLXBpbGxdOmhvdmVyIC5tYXJrZXRTdGF0dXNDbG9zZS1VUklqRUI5ODphZnRlcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLW92ZXJsYXktbmV1dHJhbC0xLW5vcm1hbCl9fVtkYXRhLXJvbGU9c3RhdHVzZXMtcGlsbF06YWN0aXZlIC5tYXJrZXRTdGF0dXNDbG9zZS1VUklqRUI5ODphZnRlcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLW92ZXJsYXktbmV1dHJhbC0xLWJvbGQpfS5tYXJrZXRTdGF0dXNQcmUtVVJJakVCOTh7Y29sb3I6dmFyKC0tY29sb3ItY29udGVudC1wcmltYXJ5LXdhcm5pbmctZXh0cmEtYm9sZCl9Lm1hcmtldFN0YXR1c1ByZS1VUklqRUI5ODphZnRlcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLW92ZXJsYXktd2FybmluZy0xLWxpZ2h0KX1AbWVkaWEgKGFueS1ob3Zlcjpob3Zlcil7W2RhdGEtcm9sZT1zdGF0dXNlcy1waWxsXTpob3ZlciAubWFya2V0U3RhdHVzUHJlLVVSSWpFQjk4OmFmdGVye2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3Itb3ZlcmxheS13YXJuaW5nLTEtbm9ybWFsKX19W2RhdGEtcm9sZT1zdGF0dXNlcy1waWxsXTphY3RpdmUgLm1hcmtldFN0YXR1c1ByZS1VUklqRUI5ODphZnRlcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLW92ZXJsYXktd2FybmluZy0xLWJvbGQpfS5tYXJrZXRTdGF0dXNQb3N0LVVSSWpFQjk4e2NvbG9yOnZhcigtLWNvbG9yLWNvbnRlbnQtcHJpbWFyeS1hY2NlbnQtZXh0cmEtYm9sZCl9Lm1hcmtldFN0YXR1c1Bvc3QtVVJJakVCOTg6YWZ0ZXJ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1vdmVybGF5LWFjY2VudC0xLWxpZ2h0KX1AbWVkaWEgKGFueS1ob3Zlcjpob3Zlcil7W2RhdGEtcm9sZT1zdGF0dXNlcy1waWxsXTpob3ZlciAubWFya2V0U3RhdHVzUG9zdC1VUklqRUI5ODphZnRlcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLW92ZXJsYXktYWNjZW50LTEtbm9ybWFsKX19W2RhdGEtcm9sZT1zdGF0dXNlcy1waWxsXTphY3RpdmUgLm1hcmtldFN0YXR1c1Bvc3QtVVJJakVCOTg6YWZ0ZXJ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1vdmVybGF5LWFjY2VudC0xLWJvbGQpfS5tYXJrZXRTdGF0dXNPdmVybmlnaHQtVVJJakVCOTh7Y29sb3I6dmFyKC0tY29sb3ItY29udGVudC1zZWNvbmRhcnktYWNjZW50LW90aGVyLXNlbWktYm9sZCl9Lm1hcmtldFN0YXR1c092ZXJuaWdodC1VUklqRUI5ODphZnRlcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLW92ZXJsYXktYWNjZW50LTMtbGlnaHQpfUBtZWRpYSAoYW55LWhvdmVyOmhvdmVyKXtbZGF0YS1yb2xlPXN0YXR1c2VzLXBpbGxdOmhvdmVyIC5tYXJrZXRTdGF0dXNPdmVybmlnaHQtVVJJakVCOTg6YWZ0ZXJ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1vdmVybGF5LWFjY2VudC0zLW5vcm1hbCl9fVtkYXRhLXJvbGU9c3RhdHVzZXMtcGlsbF06YWN0aXZlIC5tYXJrZXRTdGF0dXNPdmVybmlnaHQtVVJJakVCOTg6YWZ0ZXJ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1vdmVybGF5LWFjY2VudC0zLWJvbGQpfS5tYXJrZXRTdGF0dXNIb2xpZGF5LVVSSWpFQjk4e2NvbG9yOnZhcigtLWNvbG9yLWNvbnRlbnQtcHJpbWFyeS1uZXV0cmFsLXNlbWktYm9sZCl9Lm1hcmtldFN0YXR1c0hvbGlkYXktVVJJakVCOTg6YWZ0ZXJ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1vdmVybGF5LW5ldXRyYWwtMS1saWdodCl9QG1lZGlhIChhbnktaG92ZXI6aG92ZXIpe1tkYXRhLXJvbGU9c3RhdHVzZXMtcGlsbF06aG92ZXIgLm1hcmtldFN0YXR1c0hvbGlkYXktVVJJakVCOTg6YWZ0ZXJ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1vdmVybGF5LW5ldXRyYWwtMS1ub3JtYWwpfX1bZGF0YS1yb2xlPXN0YXR1c2VzLXBpbGxdOmFjdGl2ZSAubWFya2V0U3RhdHVzSG9saWRheS1VUklqRUI5ODphZnRlcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLW92ZXJsYXktbmV1dHJhbC0xLWJvbGQpfS5tYXJrZXRTdGF0dXNEZWxpc3RlZC1VUklqRUI5OHtjb2xvcjp2YXIoLS1jb2xvci1jb250ZW50LXRlcnRpYXJ5LWludmVyc2UpfS5tYXJrZXRTdGF0dXNEZWxpc3RlZC1VUklqRUI5ODphZnRlcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLWNvbnRlbnQtcHJpbWFyeS1kYW5nZXItc2VtaS1ib2xkKX1AbWVkaWEgKGFueS1ob3Zlcjpob3Zlcil7W2RhdGEtcm9sZT1zdGF0dXNlcy1waWxsXTpob3ZlciAubWFya2V0U3RhdHVzRGVsaXN0ZWQtVVJJakVCOTg6YWZ0ZXJ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1jb250ZW50LXByaW1hcnktZGFuZ2VyLXNlbWktYm9sZCl9fVtkYXRhLXJvbGU9c3RhdHVzZXMtcGlsbF06YWN0aXZlIC5tYXJrZXRTdGF0dXNEZWxpc3RlZC1VUklqRUI5ODphZnRlcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLWNvbnRlbnQtcHJpbWFyeS1kYW5nZXItZXh0cmEtYm9sZCl9Lm1hcmtldFN0YXR1c0V4cGlyZWQtVVJJakVCOTh7Y29sb3I6dmFyKC0tY29sb3ItY29udGVudC1wcmltYXJ5LWRhbmdlcil9Lm1hcmtldFN0YXR1c0V4cGlyZWQtVVJJakVCOTg6YWZ0ZXJ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1vdmVybGF5LW5lZ2F0aXZlLTEtbGlnaHQpfUBtZWRpYSAoYW55LWhvdmVyOmhvdmVyKXtbZGF0YS1yb2xlPXN0YXR1c2VzLXBpbGxdOmhvdmVyIC5tYXJrZXRTdGF0dXNFeHBpcmVkLVVSSWpFQjk4OmFmdGVye2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3Itb3ZlcmxheS1uZWdhdGl2ZS0xLW5vcm1hbCl9fVtkYXRhLXJvbGU9c3RhdHVzZXMtcGlsbF06YWN0aXZlIC5tYXJrZXRTdGF0dXNFeHBpcmVkLVVSSWpFQjk4OmFmdGVye2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3Itb3ZlcmxheS1uZWdhdGl2ZS0xLWJvbGQpfS5tYXJrZXRTdGF0dXNDdXN0b20tVVJJakVCOTh7Y29sb3I6dmFyKC0tY3VzdG9tLXN0YXR1cy1jb2xvcix2YXIoLS1jb2xvci1jb250ZW50LXByaW1hcnktYWNjZW50LW90aGVyLWJvbGQpKX0ubWFya2V0U3RhdHVzQ3VzdG9tLVVSSWpFQjk4OmFmdGVye2JhY2tncm91bmQtY29sb3I6dmFyKC0tY3VzdG9tLXN0YXR1cy1jb2xvci1iYWNrZ3JvdW5kLHZhcigtLWNvbG9yLW92ZXJsYXktYWNjZW50LTItbGlnaHQpKX1AbWVkaWEgKGFueS1ob3Zlcjpob3Zlcil7W2RhdGEtcm9sZT1zdGF0dXNlcy1waWxsXTpob3ZlciAubWFya2V0U3RhdHVzQ3VzdG9tLVVSSWpFQjk4OmFmdGVye2JhY2tncm91bmQtY29sb3I6dmFyKC0tY3VzdG9tLXN0YXR1cy1jb2xvci1iYWNrZ3JvdW5kLWhvdmVyLHZhcigtLWNvbG9yLW92ZXJsYXktYWNjZW50LTItbm9ybWFsKSl9fVtkYXRhLXJvbGU9c3RhdHVzZXMtcGlsbF06YWN0aXZlIC5tYXJrZXRTdGF0dXNDdXN0b20tVVJJakVCOTg6YWZ0ZXJ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jdXN0b20tc3RhdHVzLWNvbG9yLWJhY2tncm91bmQtYWN0aXZlLHZhcigtLWNvbG9yLW92ZXJsYXktYWNjZW50LTItYm9sZCkpfS5pbnZhbGlkU3ltYm9sLVVSSWpFQjk4e2NvbG9yOnZhcigtLWNvbG9yLWNvbnRlbnQtdGVydGlhcnktaW52ZXJzZSl9LmludmFsaWRTeW1ib2wtVVJJakVCOTg6YWZ0ZXJ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1jb250ZW50LXByaW1hcnktZGFuZ2VyKX1AbWVkaWEgKGFueS1ob3Zlcjpob3Zlcil7W2RhdGEtcm9sZT1zdGF0dXNlcy1waWxsXTpob3ZlciAuaW52YWxpZFN5bWJvbC1VUklqRUI5ODphZnRlcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLWNvbnRlbnQtcHJpbWFyeS1kYW5nZXItc2VtaS1ib2xkKX19W2RhdGEtcm9sZT1zdGF0dXNlcy1waWxsXTphY3RpdmUgLmludmFsaWRTeW1ib2wtVVJJakVCOTg6YWZ0ZXJ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1jb250ZW50LXByaW1hcnktZGFuZ2VyLWV4dHJhLWJvbGQpfS5hY3RpdmVTdHJhdGVneS1VUklqRUI5OHtjb2xvcjp2YXIoLS1jb2xvci1jb250YWluZXItZmlsbC10ZXJ0aWFyeS1hY2NlbnQpfS5hY3RpdmVTdHJhdGVneS1VUklqRUI5ODphZnRlcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLW92ZXJsYXktYWNjZW50LTEtbGlnaHQpfUBtZWRpYSAoYW55LWhvdmVyOmhvdmVyKXtbZGF0YS1yb2xlPXN0YXR1c2VzLXBpbGxdOmhvdmVyIC5hY3RpdmVTdHJhdGVneS1VUklqRUI5ODphZnRlcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLW92ZXJsYXktYWNjZW50LTEtbm9ybWFsKX19W2RhdGEtcm9sZT1zdGF0dXNlcy1waWxsXTphY3RpdmUgLmFjdGl2ZVN0cmF0ZWd5LVVSSWpFQjk4OmFmdGVye2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3Itb3ZlcmxheS1hY2NlbnQtMS1ib2xkKX0uYWxlcnQtVVJJakVCOTh7Y29sb3I6dmFyKC0tY29sb3ItY29udGVudC1zZWNvbmRhcnktc3VjY2Vzcyl9LmFsZXJ0LVVSSWpFQjk4OmFmdGVye2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3Itb3ZlcmxheS1wb3NpdGl2ZS0xLWxpZ2h0KX1AbWVkaWEgKGFueS1ob3Zlcjpob3Zlcil7W2RhdGEtcm9sZT1zdGF0dXNlcy1waWxsXTpob3ZlciAuYWxlcnQtVVJJakVCOTg6YWZ0ZXJ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1vdmVybGF5LXBvc2l0aXZlLTEtbm9ybWFsKX19W2RhdGEtcm9sZT1zdGF0dXNlcy1waWxsXTphY3RpdmUgLmFsZXJ0LVVSSWpFQjk4OmFmdGVye2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3Itb3ZlcmxheS1wb3NpdGl2ZS0xLWJvbGQpfS5hbGVydEl0ZW1zQ29udGFpbmVyLVVSSWpFQjk4e2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47Z2FwOjEwcHh9LmFsZXJ0SXRlbS1VUklqRUI5OHtkaXNwbGF5OmZsZXh9LnJlcGxheU1vZGVBdXRvUGxheS1VUklqRUI5OCwucmVwbGF5TW9kZVBhdXNlLVVSSWpFQjk4e2NvbG9yOnZhcigtLWNvbG9yLWNvbnRlbnQtdGVydGlhcnktaW52ZXJzZSl9LnJlcGxheU1vZGVBdXRvUGxheS1VUklqRUI5ODphZnRlciwucmVwbGF5TW9kZVBhdXNlLVVSSWpFQjk4OmFmdGVye2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItY29udGVudC1zZWNvbmRhcnktYWNjZW50KX1AbWVkaWEgKGFueS1ob3Zlcjpob3Zlcil7W2RhdGEtcm9sZT1zdGF0dXNlcy1waWxsXTpob3ZlciAucmVwbGF5TW9kZUF1dG9QbGF5LVVSSWpFQjk4OmFmdGVyLFtkYXRhLXJvbGU9c3RhdHVzZXMtcGlsbF06aG92ZXIgLnJlcGxheU1vZGVQYXVzZS1VUklqRUI5ODphZnRlcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLWNvbnRlbnQtcHJpbWFyeS1hY2NlbnQtc2VtaS1ib2xkKX19W2RhdGEtcm9sZT1zdGF0dXNlcy1waWxsXTphY3RpdmUgLnJlcGxheU1vZGVBdXRvUGxheS1VUklqRUI5ODphZnRlcixbZGF0YS1yb2xlPXN0YXR1c2VzLXBpbGxdOmFjdGl2ZSAucmVwbGF5TW9kZVBhdXNlLVVSSWpFQjk4OmFmdGVye2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItY29udGVudC1wcmltYXJ5LWFjY2VudC1ib2xkKX0ucmVwbGF5TW9kZVBvaW50U2VsZWN0LVVSSWpFQjk4e2NvbG9yOnZhcigtLWNvbG9yLWNvbnRlbnQtdGVydGlhcnktaW52ZXJzZSl9LnJlcGxheU1vZGVQb2ludFNlbGVjdC1VUklqRUI5ODphZnRlcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLWNvbnRlbnQtcHJpbWFyeS1uZXV0cmFsLW5vcm1hbCl9QG1lZGlhIChhbnktaG92ZXI6aG92ZXIpe1tkYXRhLXJvbGU9c3RhdHVzZXMtcGlsbF06aG92ZXIgLnJlcGxheU1vZGVQb2ludFNlbGVjdC1VUklqRUI5ODphZnRlcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLWNvbnRlbnQtcHJpbWFyeS1uZXV0cmFsKX19W2RhdGEtcm9sZT1zdGF0dXNlcy1waWxsXTphY3RpdmUgLnJlcGxheU1vZGVQb2ludFNlbGVjdC1VUklqRUI5ODphZnRlcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLWNvbnRlbnQtcHJpbWFyeS1uZXV0cmFsLXNlbWktYm9sZCl9LnJlcGxheU1vZGVBdXRvUGxheS1VUklqRUI5OC5ibGlua2luZy1VUklqRUI5ODphZnRlcnthbmltYXRpb246YmxpbmtpbmctYW5pbWF0aW9uLWN1c3RvbS1VUklqRUI5OCAxcyBjdWJpYy1iZXppZXIoLjc3LC4yMSwuMSwuNzQpIGluZmluaXRlfUBtZWRpYSAoYW55LWhvdmVyOmhvdmVyKXsucmVwbGF5TW9kZUF1dG9QbGF5LVVSSWpFQjk4LmJsaW5raW5nLVVSSWpFQjk4OmFmdGVyOmhvdmVye29wYWNpdHk6aW5oZXJpdH19Lm5vdEFjY3VyYXRlLVVSSWpFQjk4e2NvbG9yOnZhcigtLWNvbG9yLWNvbnRlbnQtc2Vjb25kYXJ5LWRhbmdlci1leHRyYS1ib2xkKX0ubm90QWNjdXJhdGUtVVJJakVCOTg6YWZ0ZXJ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1vdmVybGF5LW5lZ2F0aXZlLTItbGlnaHQpfUBtZWRpYSAoYW55LWhvdmVyOmhvdmVyKXtbZGF0YS1yb2xlPXN0YXR1c2VzLXBpbGxdOmhvdmVyIC5ub3RBY2N1cmF0ZS1VUklqRUI5ODphZnRlcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLW92ZXJsYXktbmVnYXRpdmUtMi1ub3JtYWwpfX1bZGF0YS1yb2xlPXN0YXR1c2VzLXBpbGxdOmFjdGl2ZSAubm90QWNjdXJhdGUtVVJJakVCOTg6YWZ0ZXJ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1vdmVybGF5LW5lZ2F0aXZlLTItYm9sZCl9Lm9wZW5lZEluUGluZUVkaXRvci1VUklqRUI5OHtjb2xvcjp2YXIoLS1jb2xvci1jb250ZW50LXRlcnRpYXJ5LXN1Y2Nlc3MtZXh0cmEtYm9sZCl9Lm9wZW5lZEluUGluZUVkaXRvci1VUklqRUI5ODphZnRlcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLW92ZXJsYXktcG9zaXRpdmUtMy1saWdodCl9QG1lZGlhIChhbnktaG92ZXI6aG92ZXIpe1tkYXRhLXJvbGU9c3RhdHVzZXMtcGlsbF06aG92ZXIgLm9wZW5lZEluUGluZUVkaXRvci1VUklqRUI5ODphZnRlcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLW92ZXJsYXktcG9zaXRpdmUtMy1ub3JtYWwpfX1bZGF0YS1yb2xlPXN0YXR1c2VzLXBpbGxdOmFjdGl2ZSAub3BlbmVkSW5QaW5lRWRpdG9yLVVSSWpFQjk4OmFmdGVye2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3Itb3ZlcmxheS1wb3NpdGl2ZS0zLWJvbGQpfS5vcGVuZWRJbkRldGFjaGVkUGluZUVkaXRvci1VUklqRUI5OHtjb2xvcjp2YXIoLS1jb2xvci1jb250ZW50LXByaW1hcnktbmV1dHJhbCl9Lm9wZW5lZEluRGV0YWNoZWRQaW5lRWRpdG9yLVVSSWpFQjk4OmFmdGVye2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3Itb3ZlcmxheS1uZXV0cmFsLTEtbGlnaHQpfUBtZWRpYSAoYW55LWhvdmVyOmhvdmVyKXtbZGF0YS1yb2xlPXN0YXR1c2VzLXBpbGxdOmhvdmVyIC5vcGVuZWRJbkRldGFjaGVkUGluZUVkaXRvci1VUklqRUI5ODphZnRlcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLW92ZXJsYXktbmV1dHJhbC0xLW5vcm1hbCl9fVtkYXRhLXJvbGU9c3RhdHVzZXMtcGlsbF06YWN0aXZlIC5vcGVuZWRJbkRldGFjaGVkUGluZUVkaXRvci1VUklqRUI5ODphZnRlcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLW92ZXJsYXktbmV1dHJhbC0xLWJvbGQpfS5kZWxheS1VUklqRUI5OHtjb2xvcjp2YXIoLS1jb2xvci1jb250ZW50LXByaW1hcnktd2FybmluZy1ib2xkKX0uZGVsYXktVVJJakVCOTg6YWZ0ZXJ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1vdmVybGF5LXdhcm5pbmctMS1saWdodCl9QG1lZGlhIChhbnktaG92ZXI6aG92ZXIpe1tkYXRhLXJvbGU9c3RhdHVzZXMtcGlsbF06aG92ZXIgLmRlbGF5LVVSSWpFQjk4OmFmdGVye2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3Itb3ZlcmxheS13YXJuaW5nLTEtbm9ybWFsKX19W2RhdGEtcm9sZT1zdGF0dXNlcy1waWxsXTphY3RpdmUgLmRlbGF5LVVSSWpFQjk4OmFmdGVye2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3Itb3ZlcmxheS13YXJuaW5nLTEtYm9sZCl9LmVvZC1VUklqRUI5OHtjb2xvcjp2YXIoLS1jb2xvci1jb250ZW50LXNlY29uZGFyeS1hY2NlbnQtb3RoZXItc2VtaS1ib2xkKX0uZW9kLVVSSWpFQjk4OmFmdGVye2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3Itb3ZlcmxheS1hY2NlbnQtMy1saWdodCl9QG1lZGlhIChhbnktaG92ZXI6aG92ZXIpe1tkYXRhLXJvbGU9c3RhdHVzZXMtcGlsbF06aG92ZXIgLmVvZC1VUklqRUI5ODphZnRlcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLW92ZXJsYXktYWNjZW50LTMtbm9ybWFsKX19W2RhdGEtcm9sZT1zdGF0dXNlcy1waWxsXTphY3RpdmUgLmVvZC1VUklqRUI5ODphZnRlcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLW92ZXJsYXktYWNjZW50LTMtYm9sZCl9LmRhdGFQcm9ibGVtSGlnaC1VUklqRUI5OHtjb2xvcjp2YXIoLS1jb2xvci1jb250ZW50LXRlcnRpYXJ5LWludmVyc2UpfS5kYXRhUHJvYmxlbUhpZ2gtVVJJakVCOTg6YWZ0ZXJ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1jb250ZW50LXByaW1hcnktZGFuZ2VyKX1AbWVkaWEgKGFueS1ob3Zlcjpob3Zlcil7W2RhdGEtcm9sZT1zdGF0dXNlcy1waWxsXTpob3ZlciAuZGF0YVByb2JsZW1IaWdoLVVSSWpFQjk4OmFmdGVye2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItY29udGVudC1wcmltYXJ5LWRhbmdlci1zZW1pLWJvbGQpfX1bZGF0YS1yb2xlPXN0YXR1c2VzLXBpbGxdOmFjdGl2ZSAuZGF0YVByb2JsZW1IaWdoLVVSSWpFQjk4OmFmdGVye2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItY29udGVudC1wcmltYXJ5LWRhbmdlci1leHRyYS1ib2xkKX0uZGF0YVByb2JsZW1Mb3ctVVJJakVCOTh7Y29sb3I6dmFyKC0tY29sb3ItY29udGVudC1wcmltYXJ5LWRhbmdlci1leHRyYS1ib2xkKX0uZGF0YVByb2JsZW1Mb3ctVVJJakVCOTg6YWZ0ZXJ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1vdmVybGF5LW5lZ2F0aXZlLTEtbGlnaHQpfUBtZWRpYSAoYW55LWhvdmVyOmhvdmVyKXtbZGF0YS1yb2xlPXN0YXR1c2VzLXBpbGxdOmhvdmVyIC5kYXRhUHJvYmxlbUxvdy1VUklqRUI5ODphZnRlcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLW92ZXJsYXktbmVnYXRpdmUtMS1ub3JtYWwpfX1bZGF0YS1yb2xlPXN0YXR1c2VzLXBpbGxdOmFjdGl2ZSAuZGF0YVByb2JsZW1Mb3ctVVJJakVCOTg6YWZ0ZXJ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1vdmVybGF5LW5lZ2F0aXZlLTEtYm9sZCl9Lmhhc0Vycm9yLVVSSWpFQjk4e2NvbG9yOnZhcigtLWNvbG9yLWNvbnRlbnQtcHJpbWFyeS1kYW5nZXItZXh0cmEtYm9sZCl9Lmhhc0Vycm9yLVVSSWpFQjk4OmFmdGVye2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3Itb3ZlcmxheS1uZWdhdGl2ZS0xLWxpZ2h0KX1AbWVkaWEgKGFueS1ob3Zlcjpob3Zlcil7W2RhdGEtcm9sZT1zdGF0dXNlcy1waWxsXTpob3ZlciAuaGFzRXJyb3ItVVJJakVCOTg6YWZ0ZXJ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1vdmVybGF5LW5lZ2F0aXZlLTEtbm9ybWFsKX19W2RhdGEtcm9sZT1zdGF0dXNlcy1waWxsXTphY3RpdmUgLmhhc0Vycm9yLVVSSWpFQjk4OmFmdGVye2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3Itb3ZlcmxheS1uZWdhdGl2ZS0xLWJvbGQpfS51cGRhdGVBdmFpbGFibGUtVVJJakVCOTh7Y29sb3I6dmFyKC0tY29sb3ItY29udGVudC1wcmltYXJ5LWFjY2VudC1vdGhlci1ub3JtYWwpfS51cGRhdGVBdmFpbGFibGUtVVJJakVCOTg6YWZ0ZXJ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1vdmVybGF5LWFjY2VudC00LWxpZ2h0KX1AbWVkaWEgKGFueS1ob3Zlcjpob3Zlcil7W2RhdGEtcm9sZT1zdGF0dXNlcy1waWxsXTpob3ZlciAudXBkYXRlQXZhaWxhYmxlLVVSSWpFQjk4OmFmdGVye2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3Itb3ZlcmxheS1hY2NlbnQtNC1ub3JtYWwpfX1bZGF0YS1yb2xlPXN0YXR1c2VzLXBpbGxdOmFjdGl2ZSAudXBkYXRlQXZhaWxhYmxlLVVSSWpFQjk4OmFmdGVye2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3Itb3ZlcmxheS1hY2NlbnQtNC1ib2xkKX1Aa2V5ZnJhbWVzIGJsaW5raW5nLWFuaW1hdGlvbi1VUklqRUI5OHswJSx0b3tvcGFjaXR5Oi4zfTUwJXtvcGFjaXR5OjF9fUBrZXlmcmFtZXMgYmxpbmtpbmctYW5pbWF0aW9uLWN1c3RvbS1VUklqRUI5OHswJSx0b3tvcGFjaXR5Oi41fTUwJXtvcGFjaXR5OjF9fQ=="}},"time_used":4,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":4,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/84306.31d6cfe0d16ae931b73c.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:13.731Z","timestamp":1785148033731,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/84306.31d6cfe0d16ae931b73c.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:13 GMT\r\ncontent-type: text/css; charset=utf-8\r\ncontent-length: 0\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\netag: \"6a58abe8-0\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Thu, 16 Jul 2026 10:01:12 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/16/2026 11:03:21\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: b369465597b824a35caec005f0ab2bf6\r\ncdn-cache: HIT\r\naccept-ranges: bytes\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":0,"size_decoded":782,"mime_type":"text/css; charset=utf-8","magic":"","md5":"d41d8cd98f00b204e9800998ecf8427e","sha1":"da39a3ee5e6b4b0d3255bfef95601890afd80709","sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha512":"cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e","ssdeep":"","tlshash":"","first_seen":"0001-01-01T00:00:00Z","last_seen":"2026-07-27T13:01:10.036638Z","times_seen":17563461,"resource_available":true,"data":""}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/5184.0fb4574cacec16f6365d.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:13.892Z","timestamp":1785148033892,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/5184.0fb4574cacec16f6365d.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:13 GMT\r\ncontent-type: text/css; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a58ab11-15fc\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Thu, 16 Jul 2026 09:57:37 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/16/2026 11:03:26\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 08cd03e3aed2966cbda712563f7396da\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":5628,"size_decoded":2039,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with very long lines (5628), with no line terminators","md5":"d7588c0ef38ed29f77c4285858768089","sha1":"1b0f8982c149f743f7af67d6a43e5bbcb09a698d","sha256":"09e34aab9f0ab1c517da25dd9e6a703968584d31fa0d044e61e48e60b623b691","sha512":"b072070b0ef82141c4d509c12596a605d3a427c3846b30a521d776f92a143f39e56b0d8eb974dfb0d88ab28bdf7413ad92d069ef724fecfb75ef30963cd73953","ssdeep":"48:LKn0fdtTAnnRpxyy+QPoL39OYuNyFejYkdY9Ik9s+1eyv68oc94XcW3te8nnfBvr:LKiTAVyKP+uNyApXcapnnfB/D5F","tlshash":"bbc1c343b5d0bc347f1266d86bf821adb6c0adb1e80321dab475b83588c1bfb54a1e65","first_seen":"2026-07-16T13:40:49.878413Z","last_seen":"2026-07-27T12:57:37.041751Z","times_seen":197,"resource_available":false,"data":"LmJhZGdlLXg0VVZaYWJNey0tdWktbGliLXNpemUtZGVmOnZhcigtLXVpLWxpYi1pbi1iYWRnZS1zaXplLHZhcigtLXVpLWxpYi1wcml2YXRlLWJhZGdlLXNpemUsNCkpOy0tdWktbGliLXNpemUtZGVmLXhzbWFsbDpjYWxjKG1heCgwLCAxIC0gKHZhcigtLXVpLWxpYi1zaXplLWRlZikgLSAyKSAqICh2YXIoLS11aS1saWItc2l6ZS1kZWYpIC0gMikpKTstLXVpLWxpYi1zaXplLWRlZi1zbWFsbDpjYWxjKG1heCgwLCAxIC0gKHZhcigtLXVpLWxpYi1zaXplLWRlZikgLSAzKSAqICh2YXIoLS11aS1saWItc2l6ZS1kZWYpIC0gMykpKTstLXVpLWxpYi1zaXplLWRlZi1tZWRpdW06Y2FsYyhtYXgoMCwgMSAtICh2YXIoLS11aS1saWItc2l6ZS1kZWYpIC0gNCkgKiAodmFyKC0tdWktbGliLXNpemUtZGVmKSAtIDQpKSk7LS11aS1saWItc2l6ZS1kZWYtbGFyZ2U6Y2FsYyhtYXgoMCwgMSAtICh2YXIoLS11aS1saWItc2l6ZS1kZWYpIC0gNSkgKiAodmFyKC0tdWktbGliLXNpemUtZGVmKSAtIDUpKSk7LS11aS1saWItc2l6ZS1kZWYteGxhcmdlOmNhbGMobWF4KDAsIDEgLSAodmFyKC0tdWktbGliLXNpemUtZGVmKSAtIDYpICogKHZhcigtLXVpLWxpYi1zaXplLWRlZikgLSA2KSkpOy0tdWktbGliLWJhZGdlLWRlZmF1bHQtcGFkZGluZy1sZWZ0OnZhcigtLXVpLWxpYi1iYWRnZS1kZWZhdWx0LXBhZGRpbmctaG9yKTstLXVpLWxpYi1iYWRnZS1kZWZhdWx0LXBhZGRpbmctcmlnaHQ6dmFyKC0tdWktbGliLWJhZGdlLWRlZmF1bHQtcGFkZGluZy1ob3IpOy0tdWktbGliLWJhZGdlLWJvcmRlci1yYWRpdXM6Y2FsYyh2YXIoLS11aS1saWItc2l6ZS1kZWYteHNtYWxsKSozcHggKyB2YXIoLS11aS1saWItc2l6ZS1kZWYtc21hbGwpKjNweCArIHZhcigtLXVpLWxpYi1zaXplLWRlZi1tZWRpdW0pKjRweCArIHZhcigtLXVpLWxpYi1zaXplLWRlZi1sYXJnZSkqNnB4ICsgdmFyKC0tdWktbGliLXNpemUtZGVmLXhsYXJnZSkqOHB4KTstLXVpLWxpYi1iYWRnZS1kZWZhdWx0LWhlaWdodDpjYWxjKHZhcigtLXVpLWxpYi1zaXplLWRlZi14c21hbGwpKjEycHggKyB2YXIoLS11aS1saWItc2l6ZS1kZWYtc21hbGwpKjE2cHggKyB2YXIoLS11aS1saWItc2l6ZS1kZWYtbWVkaXVtKSoyMHB4ICsgdmFyKC0tdWktbGliLXNpemUtZGVmLWxhcmdlKSoyNHB4ICsgdmFyKC0tdWktbGliLXNpemUtZGVmLXhsYXJnZSkqMzJweCk7LS11aS1saWItYmFkZ2UtYWN0dWFsLWhlaWdodDp2YXIoLS11aS1saWItYmFkZ2UtaGVpZ2h0LHZhcigtLXVpLWxpYi1iYWRnZS1kZWZhdWx0LWhlaWdodCkpO2JvcmRlci1yYWRpdXM6dmFyKC0tdWktbGliLWJhZGdlLWJvcmRlci1yYWRpdXMpO2ZvbnQtc2l6ZTpjYWxjKHZhcigtLXVpLWxpYi1zaXplLWRlZi14c21hbGwpKjhweCArIHZhcigtLXVpLWxpYi1zaXplLWRlZi1zbWFsbCkqMTFweCArIHZhcigtLXVpLWxpYi1zaXplLWRlZi1tZWRpdW0pKjExcHggKyB2YXIoLS11aS1saWItc2l6ZS1kZWYtbGFyZ2UpKjE0cHggKyB2YXIoLS11aS1saWItc2l6ZS1kZWYteGxhcmdlKSoxN3B4KTtmb250LXdlaWdodDpjYWxjKHZhcigtLXVpLWxpYi1zaXplLWRlZi14c21hbGwpKjcwMCArIHZhcigtLXVpLWxpYi1zaXplLWRlZi1zbWFsbCkqNjAwICsgdmFyKC0tdWktbGliLXNpemUtZGVmLW1lZGl1bSkqNjAwICsgdmFyKC0tdWktbGliLXNpemUtZGVmLWxhcmdlKSo2MDAgKyB2YXIoLS11aS1saWItc2l6ZS1kZWYteGxhcmdlKSo3MDApO2hlaWdodDp2YXIoLS11aS1saWItYmFkZ2UtYWN0dWFsLWhlaWdodCk7bGV0dGVyLXNwYWNpbmc6Y2FsYyh2YXIoLS11aS1saWItc2l6ZS1kZWYteHNtYWxsKSouNXB4ICsgdmFyKC0tdWktbGliLXNpemUtZGVmLXNtYWxsKSouMDJlbSArIHZhcigtLXVpLWxpYi1zaXplLWRlZi1tZWRpdW0pKi4wNWVtICsgdmFyKC0tdWktbGliLXNpemUtZGVmLWxhcmdlKSowcHggKyB2YXIoLS11aS1saWItc2l6ZS1kZWYteGxhcmdlKSouMDJlbSk7cGFkZGluZy1ibG9jazowIDA7cGFkZGluZy1pbmxpbmU6dmFyKC0tdWktbGliLWJhZGdlLXBhZGRpbmctbGVmdCx2YXIoLS11aS1saWItYmFkZ2UtZGVmYXVsdC1wYWRkaW5nLWxlZnQpKSB2YXIoLS11aS1saWItYmFkZ2UtcGFkZGluZy1yaWdodCx2YXIoLS11aS1saWItYmFkZ2UtZGVmYXVsdC1wYWRkaW5nLXJpZ2h0KSk7LS11aS1saWItYmFkZ2UtZGVmYXVsdC1jb2xvci1iYWNrZ3JvdW5kOnZhcigtLWNvbG9yLW92ZXJsYXktbmV1dHJhbC0xLWxpZ2h0KTstLXVpLWxpYi1iYWRnZS1kZWZhdWx0LWNvbG9yLWNvbnRlbnQ6dmFyKC0tY29sb3ItY29udGVudC1wcmltYXJ5LW5ldXRyYWwtYm9sZCk7YWxpZ24taXRlbXM6Y2VudGVyO2JhY2tncm91bmQ6dmFyKC0tdWktbGliLWJhZGdlLWJhY2tncm91bmQsdmFyKC0tdWktbGliLWJhZGdlLWRlZmF1bHQtY29sb3ItYmFja2dyb3VuZCkpO2JvcmRlcjpub25lO2JveC1zaXppbmc6Ym9yZGVyLWJveDtjb2xvcjp2YXIoLS11aS1saWItYmFkZ2UtY29sb3ItY29udGVudCx2YXIoLS11aS1saWItYmFkZ2UtZGVmYXVsdC1jb2xvci1jb250ZW50KSk7ZGlzcGxheTppbmxpbmUtZmxleDtmbGV4LXdyYXA6bm93cmFwO2p1c3RpZnktY29udGVudDpjZW50ZXI7bGluZS1oZWlnaHQ6bm9ybWFsO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTstd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZX0uYmFkZ2UteDRVVlphYk0uaGFzQ2hpbGRyZW4teDRVVlphYk17LS11aS1saWItYmFkZ2UtZGVmYXVsdC1wYWRkaW5nLWhvcjpjYWxjKHZhcigtLXVpLWxpYi1zaXplLWRlZi14c21hbGwpKjRweCArIHZhcigtLXVpLWxpYi1zaXplLWRlZi1zbWFsbCkqNHB4ICsgdmFyKC0tdWktbGliLXNpemUtZGVmLW1lZGl1bSkqNnB4ICsgdmFyKC0tdWktbGliLXNpemUtZGVmLWxhcmdlKSo2cHggKyB2YXIoLS11aS1saWItc2l6ZS1kZWYteGxhcmdlKSo4cHgpfS5iYWRnZS14NFVWWmFiTTpub3QoLmhhc0NoaWxkcmVuLXg0VVZaYWJNKXstLXVpLWxpYi1iYWRnZS1kZWZhdWx0LXBhZGRpbmctaG9yOjA7d2lkdGg6dmFyKC0tdWktbGliLWJhZGdlLWFjdHVhbC1oZWlnaHQpfUBtZWRpYSAoYW55LWhvdmVyOmhvdmVyKXthLmJhZGdlLXg0VVZaYWJNOmhvdmVyLGJ1dHRvbi5iYWRnZS14NFVWWmFiTTpob3ZlcnstLXVpLWxpYi1iYWRnZS1kZWZhdWx0LWNvbG9yLWJhY2tncm91bmQtaG92ZXI6dmFyKC0tY29sb3Itb3ZlcmxheS1uZXV0cmFsLTEtbm9ybWFsKTstLXVpLWxpYi1iYWRnZS1kZWZhdWx0LWNvbG9yLWNvbnRlbnQtaG92ZXI6dmFyKC0tY29sb3ItY29udGVudC1wcmltYXJ5LW5ldXRyYWwtYm9sZCk7YmFja2dyb3VuZDp2YXIoLS11aS1saWItYmFkZ2UtYmFja2dyb3VuZC1ob3Zlcix2YXIoLS11aS1saWItYmFkZ2UtYmFja2dyb3VuZCx2YXIoLS11aS1saWItYmFkZ2UtZGVmYXVsdC1jb2xvci1iYWNrZ3JvdW5kKSkpO2NvbG9yOnZhcigtLXVpLWxpYi1iYWRnZS1jb2xvci1jb250ZW50LWhvdmVyLHZhcigtLXVpLWxpYi1iYWRnZS1jb2xvci1jb250ZW50LHZhcigtLXVpLWxpYi1iYWRnZS1kZWZhdWx0LWNvbG9yLWNvbnRlbnQpKSl9fWEuYmFkZ2UteDRVVlphYk06YWN0aXZlLGJ1dHRvbi5iYWRnZS14NFVWWmFiTTphY3RpdmV7LS11aS1saWItYmFkZ2UtZGVmYXVsdC1jb2xvci1iYWNrZ3JvdW5kLWFjdGl2ZTp2YXIoLS1jb2xvci1vdmVybGF5LW5ldXRyYWwtMS1ib2xkKTstLXVpLWxpYi1iYWRnZS1kZWZhdWx0LWNvbG9yLWNvbnRlbnQtYWN0aXZlOnZhcigtLWNvbG9yLWNvbnRlbnQtcHJpbWFyeS1uZXV0cmFsLWJvbGQpO2JhY2tncm91bmQ6dmFyKC0tdWktbGliLWJhZGdlLWJhY2tncm91bmQtYWN0aXZlLHZhcigtLXVpLWxpYi1iYWRnZS1iYWNrZ3JvdW5kLHZhcigtLXVpLWxpYi1iYWRnZS1kZWZhdWx0LWNvbG9yLWJhY2tncm91bmQtYWN0aXZlKSkpO2NvbG9yOnZhcigtLXVpLWxpYi1iYWRnZS1jb2xvci1jb250ZW50LWFjdGl2ZSx2YXIoLS11aS1saWItYmFkZ2UtY29sb3ItY29udGVudCx2YXIoLS11aS1saWItYmFkZ2UtZGVmYXVsdC1jb2xvci1jb250ZW50LWFjdGl2ZSkpKX0uYmFkZ2UteDRVVlphYk17b3V0bGluZTpub25lO292ZXJmbG93OnZpc2libGU7cG9zaXRpb246cmVsYXRpdmV9LmJhZGdlLXg0VVZaYWJNOmZvY3Vze291dGxpbmU6bm9uZX0uYmFkZ2UteDRVVlphYk06Zm9jdXMtdmlzaWJsZXtvdXRsaW5lOm5vbmV9LmJhZGdlLXg0VVZaYWJNOmFmdGVye2JvcmRlci1zdHlsZTpzb2xpZDtib3JkZXItd2lkdGg6MnB4O2JveC1zaXppbmc6Ym9yZGVyLWJveDtjb250ZW50OiIiO2Rpc3BsYXk6bm9uZTtoZWlnaHQ6Y2FsYygxMDAlICsgOHB4KTtpbnNldC1pbmxpbmUtc3RhcnQ6LTRweDtwb2ludGVyLWV2ZW50czpub25lO3Bvc2l0aW9uOmFic29sdXRlO3RvcDotNHB4O3dpZHRoOmNhbGMoMTAwJSArIDhweCk7ei1pbmRleDoxfS5iYWRnZS14NFVWWmFiTTpmb2N1czphZnRlcntkaXNwbGF5OmJsb2NrfS5iYWRnZS14NFVWWmFiTTpmb2N1cy12aXNpYmxlOmFmdGVye2Rpc3BsYXk6YmxvY2t9LmJhZGdlLXg0VVZaYWJNOmZvY3VzOm5vdCg6Zm9jdXMtdmlzaWJsZSk6YWZ0ZXJ7ZGlzcGxheTpub25lfS5iYWRnZS14NFVWWmFiTTphZnRlcntib3JkZXItY29sb3I6dmFyKC0tY29sb3ItZm9jdXMtb3V0bGluZS1jb2xvci1ibHVlKTtib3JkZXItcmFkaXVzOmNhbGModmFyKC0tdWktbGliLWJhZGdlLWZvY3VzLW91dGxpbmUtcmFkaXVzLCB2YXIoLS11aS1saWItYmFkZ2UtYm9yZGVyLXJhZGl1cykpICsgNHB4KX0uY29udGVudC14NFVWWmFiTXtvdmVyZmxvdzpoaWRkZW47cGFkZGluZzowIGNhbGModmFyKC0tdWktbGliLXNpemUtZGVmLXhzbWFsbCkqMnB4ICsgdmFyKC0tdWktbGliLXNpemUtZGVmLXNtYWxsKSoycHggKyB2YXIoLS11aS1saWItc2l6ZS1kZWYtbWVkaXVtKSoycHggKyB2YXIoLS11aS1saWItc2l6ZS1kZWYtbGFyZ2UpKjRweCArIHZhcigtLXVpLWxpYi1zaXplLWRlZi14bGFyZ2UpKjRweCk7dGV4dC1vdmVyZmxvdzplbGxpcHNpczt3aGl0ZS1zcGFjZTpub3dyYXB9LnNsb3QteDRVVlphYk17LS11aS1saWItYmFkZ2Utc2xvdC1zaXplOmNhbGModmFyKC0tdWktbGliLXNpemUtZGVmLXhzbWFsbCkqMTJweCArIHZhcigtLXVpLWxpYi1zaXplLWRlZi1zbWFsbCkqMTRweCArIHZhcigtLXVpLWxpYi1zaXplLWRlZi1tZWRpdW0pKjE4cHggKyB2YXIoLS11aS1saWItc2l6ZS1kZWYtbGFyZ2UpKjIwcHggKyB2YXIoLS11aS1saWItc2l6ZS1kZWYteGxhcmdlKSoyNHB4KTthbGlnbi1pdGVtczpjZW50ZXI7ZGlzcGxheTpmbGV4O2hlaWdodDp2YXIoLS11aS1saWItYmFkZ2Utc2xvdC1zaXplKTtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3dpZHRoOnZhcigtLXVpLWxpYi1iYWRnZS1zbG90LXNpemUpfS54c21hbGwteDRVVlphYk17LS11aS1saWItcHJpdmF0ZS1iYWRnZS1zaXplOjJ9LnNtYWxsLXg0VVZaYWJNey0tdWktbGliLXByaXZhdGUtYmFkZ2Utc2l6ZTozfS5tZWRpdW0teDRVVlphYk17LS11aS1saWItcHJpdmF0ZS1iYWRnZS1zaXplOjR9LmxhcmdlLXg0VVZaYWJNey0tdWktbGliLXByaXZhdGUtYmFkZ2Utc2l6ZTo1fS54bGFyZ2UteDRVVlphYk17LS11aS1saWItcHJpdmF0ZS1iYWRnZS1zaXplOjZ9Lnh4bGFyZ2UteDRVVlphYk17LS11aS1saWItcHJpdmF0ZS1iYWRnZS1zaXplOjd9"}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"wss","addr":"wss://pushstream.tradingview.com/message-pipe-ws/public","fqdn":"pushstream.tradingview.com","domain":"tradingview.com","tld":"com"},"ip":{"addr":"93.123.102.211","port":443,"asn":199524,"as":"G-Core Labs S.A.","country":"United Kingdom","country_code":"GB"},"is_navigation_request":false,"resource_type":"websocket","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.461Z","timestamp":1785148034461,"http_version":"HTTP/1.1","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_256_GCM_SHA384","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.tradingview.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 21 Oct 2025 00:00:00 GMT","end":"Wed, 18 Nov 2026 23:59:59 GMT"},"fingerprint":{"sha1":"96:06:76:35:9F:2C:2D:1C:89:55:E8:92:7C:4F:4B:FD:E9:F6:FF:1A","sha256":"BC:FA:33:CE:19:85:7A:43:44:BA:17:CE:87:15:42:E2:02:0C:7A:4E:83:42:1F:58:8F:59:B4:20:BF:4B:35:00"}}},"request":{"raw":"GET /message-pipe-ws/public HTTP/1.1\r\nHost: pushstream.tradingview.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-WebSocket-Version: 13\r\nOrigin: https://s.tradingview.com\r\nSec-WebSocket-Extensions: permessage-deflate\r\nSec-WebSocket-Key: XI0eOx62Y0W+fgzVaoH91A==\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: Upgrade\r\nSec-Fetch-Dest: empty\r\nSec-Fetch-Mode: websocket\r\nSec-Fetch-Site: same-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\nUpgrade: websocket\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/1.1 101 Switching Protocols\r\nExpires: Thu, 01 Jan 1970 00:00:01 GMT\r\nCache-Control: no-cache, no-store, must-revalidate\r\nUpgrade: WebSocket\r\nConnection: Upgrade\r\nSec-WebSocket-Accept: K70Bo8etsP4aHi10bUjYI6AQtso=\r\n\r\n","headers":null,"cookies":null,"status_code":"101","status_text":"Switching Protocols","fingerprints":null,"data":{"size":0,"size_decoded":221,"mime_type":"text/plain","magic":"","md5":"d41d8cd98f00b204e9800998ecf8427e","sha1":"da39a3ee5e6b4b0d3255bfef95601890afd80709","sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha512":"cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e","ssdeep":"","tlshash":"","first_seen":"0001-01-01T00:00:00Z","last_seen":"2026-07-27T13:01:10.036638Z","times_seen":17563461,"resource_available":true,"data":""}},"time_used":250,"timings":{"blocked":-1,"dns":90,"connect":110,"send":0,"wait":22,"receive":0,"ssl":28},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/en.42167.c6e351b4175cf2f8868a.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.761Z","timestamp":1785148034761,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/en.42167.c6e351b4175cf2f8868a.js HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a61b1a8-87b\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Thu, 23 Jul 2026 06:16:08 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/23/2026 10:21:31\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 5292ec246fc7baa33ca2e497aaae210f\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":2171,"size_decoded":1712,"mime_type":"application/javascript; charset=utf-8","magic":"ASCII text, with very long lines (2171), with no line terminators","md5":"5d18f68187ca431edc0cb80175647ebb","sha1":"4323245a8a25548ee968a6c9632eb1832651bf8b","sha256":"2aec8b1d1a51de2e0165ef92f9554a8b74d3c9b70345df554e6e8c34ee168cda","sha512":"44dab33ad3a493cb115b3c65ec6217a9a5150efc220ae982ed2c97be7e8329681295ccd7ca5956e36e1b2cdb3d3155744d6f45e00cbfdedbb9ab1e171090f3e1","ssdeep":"","tlshash":"8d41971bd000c4fa2f71db25b748eec079f8b26401f2e0d377951fa5c52bca85824a39","first_seen":"2026-07-27T03:26:08.781907Z","last_seen":"2026-07-27T10:28:13.822325Z","times_seen":7,"resource_available":true,"data":"KHNlbGYud2VicGFja0NodW5rdHJhZGluZ3ZpZXc9c2VsZi53ZWJwYWNrQ2h1bmt0cmFkaW5ndmlld3x8W10pLnB1c2goW1sxMTE1MSw0MjE2N10sezcxMzkwNShlKXtlLmV4cG9ydHM9WyJDb21tdW5pdHkiXX0sMjQ1MTQ3KGUpe2UuZXhwb3J0cz1bIkNvbnRyYWN0cyJdfSw2ODE5MjEoZSl7ZS5leHBvcnRzPVsiQ2hhcnQiXX0sMzM0NDE1KGUpe2UuZXhwb3J0cz1bIkFuYWx5c2lzIl19LDYxMjU1KGUpe2UuZXhwb3J0cz1bIkFzc2V0cyJdfSw2MDIxMTMoZSl7ZS5leHBvcnRzPVsiQm9uZHMiXX0sNzg3NDQyKGUpe2UuZXhwb3J0cz1bIkRvY3VtZW50cyJdfSw1NTgwNjcoZSl7ZS5leHBvcnRzPVsiRGVyaXZhdGl2ZXMiXX0sOTI3ODkoZSl7ZS5leHBvcnRzPVsiRVRGcyJdfSwzODg3ODYoZSl7ZS5leHBvcnRzPVsiRWNvbm9teSBpbmRpY2F0b3JzIl19LDUzNDAyNyhlKXtlLmV4cG9ydHM9WyJGb3JlY2FzdCJdfSw2Njg2ODAoZSl7ZS5leHBvcnRzPVsiRm9yd2FyZCBjdXJ2ZSJdfSwzODAxNTgoZSl7ZS5leHBvcnRzPVsiRmluYW5jaWFscyJdfSw5OTU2MDIoZSl7ZS5leHBvcnRzPVsiRnVuZGFtZW50YWxzIl19LDk1NDExMShlKXtlLmV4cG9ydHM9WyJPcHRpb25zIl19LDg0MzUyMChlKXtlLmV4cG9ydHM9WyJOZXdzIl19LDM3ODc1MChlKXtlLmV4cG9ydHM9WyJTZWFzb25hbHMiXX0sOTIxNjQyKGUpe2UuZXhwb3J0cz1bIlByb2ZpbGUiXX0sMTIxMjcwKGUpe2UuZXhwb3J0cz1bIlRlY2huaWNhbHMiXX0sNjE2MTgwKGUpe2UuZXhwb3J0cz1bIllpZWxkIGN1cnZlIl19LDY1NDkyMChlKXtlLmV4cG9ydHM9WyJNZXRyaWNzIl19LDY0OTQ1NChlKXtlLmV4cG9ydHM9WyJDb21tdW5pdHkiXX0sNjMyMzY5KGUpe2UuZXhwb3J0cz1bIk9wdGlvbnMiXX0sNzQ2Nzk3KGUpe2UuZXhwb3J0cz1bIkNoYXJ0IFNuYXBzaG90Il19LDU1Mjk2MihlKXtlLmV4cG9ydHM9WyJDaGFydCBwcmV2aWV3Il19LDk5NTgzNihlKXtlLmV4cG9ydHM9WyJAe3VzZXJuYW1lfSB3cm90ZSJdfSw4MTM0NzkoZSl7ZS5leHBvcnRzPVsiQW5hbHlzdHMiXX0sMzAzNjgoZSl7ZS5leHBvcnRzPVsiQWRkIl19LDUzNjIzOShlKXtlLmV4cG9ydHM9WyJBZGQgbm90ZSJdfSw4NzY2MDQoZSl7ZS5leHBvcnRzPVsiQWxsIG5vdGVzIl19LDkxMzgyOShlKXtlLmV4cG9ydHM9WyJBdHRhY2ggY2hhcnQgc25hcHNob3QiXX0sMjQzNDY0KGUpe2UuZXhwb3J0cz1bIkJvbmRzIl19LDQzMzIzOShlKXtlLmV4cG9ydHM9WyJCaWQgJiBBc2siXX0sNTQ1NzQ1KGUpe2UuZXhwb3J0cz1bIkVtcHR5IG5vdGUiXX0sODI2NzEoZSl7ZS5leHBvcnRzPVsiRWRpdCJdfSw4NDUzMDUoZSl7ZS5leHBvcnRzPVsiSG1tbSwgc2VlbXMgdGhhdCB5b3UgZG9uJ3QgaGF2ZSBhbnkgbm90ZXMgYXQgdGhlIG1vbWVudCJdfSw4NTMxMTMoZSl7ZS5leHBvcnRzPVsiTGF0ZXN0IG5ld3MiXX0sNDAyMTI4KGUpe2UuZXhwb3J0cz1bIkxhc3QgZWRpdGVkIl19LDMxMDE5OChlKXtlLmV4cG9ydHM9WyJOb3RlcyJdfSw0ODk2NDcoZSl7ZS5leHBvcnRzPVsiTm9uLXN5bWJvbCByZWxhdGVkIG5vdGVzIl19LDc4MzgzNShlKXtlLmV4cG9ydHM9WyJTbmFwc2hvdCBzZWVtcyB0byBjb250YWluIHByb2hpYml0ZWQgY29udGVudC4gUGxlYXNlIGNvbnRhY3Qge3N0YXJ0X2xpbmt9b3VyIHN1cHBvcnQgdGVhbXtlbmRfbGlua30gaWYgeW91IGhhdmUgcmVjZWl2ZWQgdGhpcyBieSBtaXN0YWtlLiJdfSw2MTI2NTUoZSl7ZS5leHBvcnRzPVsiU2F2ZSJdfSw1OTc3NjIoZSl7ZS5leHBvcnRzPVsiUHJpY2UgcmFuZ2VzIl19LDQ1MjQ4MChlKXtlLmV4cG9ydHM9WyJQcmljaW5nIG1vZGVsIl19LDM2MDg1MihlKXtlLmV4cG9ydHM9WyJQdWJsaXNoZWQgSWRlYSJdfSw0ODIzMzAoZSl7ZS5leHBvcnRzPVsiUmVtb3ZlIHNuYXBzaG90Il19LDIxNDEyMyhlKXtlLmV4cG9ydHM9WyJXcml0ZSB5b3VyIGZpcnN0IG5vdGUiXX0sMzA1MDE5KGUpe2UuZXhwb3J0cz1bIlRoZXJlIGFyZSBjdXJyZW50bHkgbm8gbWV0cmljcyBmb3IgdGhpcyBzeW1ib2wiXX0sNjEzNjk3KGUpe2UuZXhwb3J0cz1bIlR5cGUgc29tZXRoaW5nIl19LDQzNTI0MShlKXtlLmV4cG9ydHM9WyJZb3VyIHNuYXBzaG90IHdhcyBmbGFnZ2VkIGFzIHN1c3BpY2lvdXMiXX0sMzMxNjU3KGUpe2UuZXhwb3J0cz1bIntub3RlR3JvdXBOYW1lfSBub3RlcyJdfX1dKTs="}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/34929.404917e2512cfb8d127c.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:13.809Z","timestamp":1785148033809,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/34929.404917e2512cfb8d127c.js HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:13 GMT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a608293-394a\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Wed, 22 Jul 2026 08:42:59 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/22/2026 11:01:54\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 512812360f95778b27974be45632f673\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":14666,"size_decoded":6187,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (3054)","md5":"cbd8279b6402501424da9ee1a2a31a28","sha1":"ac2c985c2805817fed31985e5e7597f0b9ace39b","sha256":"f2e5f67594fb6e7721c74604a6e5feb4f825ea66df866dc8be5c56dfc567e67e","sha512":"eb2a80e52b780c02d020ef4abb7512d06f7f8d5d4ef3a4e92ed3790a426f76c616fdabbdc7c430de98cd6604f44d59b0784247798b01256b935bb1d52e102fb6","ssdeep":"384:NMcwWj0FyWybsmbqnxNvSxxOHlPMNRBb3wzI0Bg2wF1kNkhy1+:icwWj0FyWybHbqnxNvSxxOHxMN7b3w8T","tlshash":"2b620a80b0e0e46496fb105ac33b011df7f1190df8675c6db119addc29eeba93229e78","first_seen":"2026-07-23T05:21:04.176375Z","last_seen":"2026-07-27T11:47:31.116199Z","times_seen":71,"resource_available":true,"data":"KHNlbGYud2VicGFja0NodW5rdHJhZGluZ3ZpZXc9c2VsZi53ZWJwYWNrQ2h1bmt0cmFkaW5ndmlld3x8W10pLnB1c2goW1szNDkyOV0sezgwMzI4NyhlKXtlLmV4cG9ydHM9eyJkZWZhdWx0LWRyYXdlci1taW4tdG9wLWRpc3RhbmNlIjoiMTAwcHgiLHdyYXA6IndyYXAtaWlpMTE4b04iLHBvc2l0aW9uQm90dG9tOiJwb3NpdGlvbkJvdHRvbS1paWkxMThvTiIsYmFja2Ryb3A6ImJhY2tkcm9wLWlpaTExOG9OIixkcmF3ZXI6ImRyYXdlci1paWkxMThvTiIscG9zaXRpb25MZWZ0OiJwb3NpdGlvbkxlZnQtaWlpMTE4b04ifX0sNDI0MjYyKGUpe2UuZXhwb3J0cz17YnV0dG9uOiJidXR0b24tc1hzcFpObloiLGhvdmVyOiJob3Zlci1zWHNwWk5uWiIsY2xpY2tlZDoiY2xpY2tlZC1zWHNwWk5uWiIsYWNjZXNzaWJsZToiYWNjZXNzaWJsZS1zWHNwWk5uWiIsYXJyb3c6ImFycm93LXNYc3BaTm5aIixhcnJvd1dyYXA6ImFycm93V3JhcC1zWHNwWk5uWiIsaXNPcGVuZWQ6ImlzT3BlbmVkLXNYc3BaTm5aIn19LDgxMDI4MShlKXtlLmV4cG9ydHM9e2ljb246Imljb24tV0IyeTBFblAiLGRyb3BwZWQ6ImRyb3BwZWQtV0IyeTBFblAifX0sMzEzNzcyKGUsdCxvKXsidXNlIHN0cmljdCI7by5kKHQse0RyYXdlckNvbnRleHQ6KCk9PmksRHJhd2VyTWFuYWdlcjooKT0+c30pO3ZhciByPW8oNzc5NDc0KSxuPW8oOTk1Njc4KTtjbGFzcyBzIGV4dGVuZHMgci5QdXJlQ29tcG9uZW50e2NvbnN0cnVjdG9yKGUpe3N1cGVyKGUpLHRoaXMuX2lzQm9keUZpeGVkPSExLHRoaXMuX2FkZERyYXdlcj1lPT57dGhpcy5zZXRTdGF0ZSgodD0+KHtzdGFjazpbLi4udC5zdGFjayxlXX0pKSl9LHRoaXMuX3JlbW92ZURyYXdlcj1lPT57dGhpcy5zZXRTdGF0ZSgodD0+KHtzdGFjazp0LnN0YWNrLmZpbHRlcigodD0+dCE9PWUpKX0pKSl9LHRoaXMuc3RhdGU9e3N0YWNrOltdfX1jb21wb25lbnREaWRVcGRhdGUoZSx0KXshdC5zdGFjay5sZW5ndGgmJnRoaXMuc3RhdGUuc3RhY2subGVuZ3RoJiYoKDAsbi5yZXF1ZXN0TW9kYWxTY3JvbGxMb2NrKSh3aW5kb3cpLHRoaXMuX2lzQm9keUZpeGVkPSEwKSx0LnN0YWNrLmxlbmd0aCYmIXRoaXMuc3RhdGUuc3RhY2subGVuZ3RoJiZ0aGlzLl9pc0JvZHlGaXhlZCYmKCgwLG4ucmVsZWFzZU1vZGFsU2Nyb2xsTG9jaykod2luZG93KSx0aGlzLl9pc0JvZHlGaXhlZD0hMSl9Y29tcG9uZW50V2lsbFVubW91bnQoKXt0aGlzLnN0YXRlLnN0YWNrLmxlbmd0aCYmdGhpcy5faXNCb2R5Rml4ZWQmJigwLG4ucmVsZWFzZU1vZGFsU2Nyb2xsTG9jaykod2luZG93KX1yZW5kZXIoKXtyZXR1cm4gci5jcmVhdGVFbGVtZW50KGkuUHJvdmlkZXIse3ZhbHVlOnthZGREcmF3ZXI6dGhpcy5fYWRkRHJhd2VyLHJlbW92ZURyYXdlcjp0aGlzLl9yZW1vdmVEcmF3ZXIsY3VycmVudERyYXdlcjp0aGlzLnN0YXRlLnN0YWNrLmxlbmd0aD90aGlzLnN0YXRlLnN0YWNrW3RoaXMuc3RhdGUuc3RhY2subGVuZ3RoLTFdOm51bGx9fSx0aGlzLnByb3BzLmNoaWxkcmVuKX19Y29uc3QgaT1yLmNyZWF0ZUNvbnRleHQobnVsbCl9LDk2NDIxNChlLHQsbyl7InVzZSBzdHJpY3QiO28uZCh0LHtEcmF3ZXI6KCk9Pm19KTt2YXIgcj1vKDc3OTQ3NCksbj1vKDkxNDQ4Nykscz1vLm4obiksaT1vKDEzODYzOCksYT1vKDU4NTQ4KSxsPW8oMTUwMTUwKSxjPW8oMzEzNzcyKSxwPW8oNjMyOTkyKSxkPW8oNTU4MDMwKSxoPW8oODAzMjg3KTt2YXIgdTtmdW5jdGlvbiBtKGUpe2NvbnN0e3Bvc2l0aW9uOnQ9IkJvdHRvbSIsb25DbG9zZTpvLGNoaWxkcmVuOm4scmVmZXJlbmNlOmQsY2xhc3NOYW1lOnUsdGhlbWU6bT1ofT1lLHY9KDAsaS5lbnN1cmVOb3ROdWxsKSgoMCxyLnVzZUNvbnRleHQpKGMuRHJhd2VyQ29udGV4dCkpLFtnXT0oMCxyLnVzZVN0YXRlKSgoKCk9PigwLGwucmFuZG9tSGFzaCkoKSkpLGI9KDAsci51c2VSZWYpKG51bGwpLHc9KDAsci51c2VDb250ZXh0KShwLkNsb3NlRGVsZWdhdGVDb250ZXh0KTtyZXR1cm4oMCxyLnVzZUxheW91dEVmZmVjdCkoKCgpPT4oKDAsaS5lbnN1cmVOb3ROdWxsKShiLmN1cnJlbnQpLmZvY3VzKHtwcmV2ZW50U2Nyb2xsOiEwfSksdy5zdWJzY3JpYmUodixvKSx2LmFkZERyYXdlcihnKSwoKT0+e3YucmVtb3ZlRHJhd2VyKGcpLHcudW5zdWJzY3JpYmUodixvKX0pKSxbXSksci5jcmVhdGVFbGVtZW50KGEuUG9ydGFsLG51bGwsci5jcmVhdGVFbGVtZW50KCJkaXYiLHtyZWY6ZCxjbGFzc05hbWU6cygpKGgud3JhcCxoW2Bwb3NpdGlvbiR7dH1gXSl9LGc9PT12LmN1cnJlbnREcmF3ZXImJnIuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOmguYmFja2Ryb3Asb25DbGljazpvfSksci5jcmVhdGVFbGVtZW50KGYse2NsYXNzTmFtZTpzKCkobS5kcmF3ZXIsaFtgcG9zaXRpb24ke3R9YF0sdSkscmVmOmIsImRhdGEtbmFtZSI6ZVsiZGF0YS1uYW1lIl0sImRhdGEtcWEtaWQiOmVbImRhdGEtcWEtaWQiXX0sbikpKX0hZnVuY3Rpb24oZSl7ZS5MZWZ0PSJMZWZ0IixlLkJvdHRvbT0iQm90dG9tIn0odXx8KHU9e30pKTtjb25zdCBmPSgwLHIuZm9yd2FyZFJlZikoKChlLHQpPT57Y29uc3R7Y2xhc3NOYW1lOm8sLi4ubn09ZTtyZXR1cm4gci5jcmVhdGVFbGVtZW50KGQuVG91Y2hTY3JvbGxDb250YWluZXIse2NsYXNzTmFtZTpzKCkoaC5kcmF3ZXIsbyksdGFiSW5kZXg6LTEscmVmOnQsLi4ubn0pfSkpfSw1NTgwMzAoZSx0LG8peyJ1c2Ugc3RyaWN0IjtvLmQodCx7VG91Y2hTY3JvbGxDb250YWluZXI6KCk9PmN9KTt2YXIgcj1vKDc3OTQ3NCksbj1vKDg1MzMzNikscz1vKDEzODYzOCksaT1vKDczODQ1OCk7Y29uc3QgYT1DU1Muc3VwcG9ydHMoIm92ZXJzY3JvbGwtYmVoYXZpb3IiLCJub25lIik7bGV0IGw9MDtjb25zdCBjPSgwLHIuZm9yd2FyZFJlZikoKChlLHQpPT57Y29uc3R7Y2hpbGRyZW46bywuLi5zfT1lLGM9KDAsci51c2VSZWYpKG51bGwpO3JldHVybigwLHIudXNlSW1wZXJhdGl2ZUhhbmRsZSkodCwoKCk9PmMuY3VycmVudCkpLCgwLHIudXNlTGF5b3V0RWZmZWN0KSgoKCk9PntpZihpLmlzSU9TKXJldHVybiBsKyssCm51bGwhPT1jLmN1cnJlbnQmJihhPzE9PT1sJiYoZG9jdW1lbnQuYm9keS5zdHlsZS5vdmVyc2Nyb2xsQmVoYXZpb3I9Im5vbmUiKTooMCxuLmRpc2FibGVCb2R5U2Nyb2xsKShjLmN1cnJlbnQse2FsbG93VG91Y2hNb3ZlOnAoYyl9KSksKCk9PntsLS0sbnVsbCE9PWMuY3VycmVudCYmKGE/MD09PWwmJihkb2N1bWVudC5ib2R5LnN0eWxlLm92ZXJzY3JvbGxCZWhhdmlvcj0iIik6KDAsbi5lbmFibGVCb2R5U2Nyb2xsKShjLmN1cnJlbnQpKX19KSxbXSksci5jcmVhdGVFbGVtZW50KCJkaXYiLHtyZWY6YywuLi5zfSxvKX0pKTtmdW5jdGlvbiBwKGUpe3JldHVybiB0PT57Y29uc3Qgbz0oMCxzLmVuc3VyZU5vdE51bGwpKGUuY3VycmVudCkscj1kb2N1bWVudC5hY3RpdmVFbGVtZW50O3JldHVybiFvLmNvbnRhaW5zKHQpfHxudWxsIT09ciYmby5jb250YWlucyhyKSYmci5jb250YWlucyh0KX19fSw4NjExODgoZSx0LG8peyJ1c2Ugc3RyaWN0IjtvLmQodCx7Zm9jdXNGaXJzdE1lbnVJdGVtOigpPT5wLGhhbmRsZUFjY2Vzc2libGVNZW51Rm9jdXM6KCk9PmwsaGFuZGxlQWNjZXNzaWJsZU1lbnVLZXlEb3duOigpPT5jLHF1ZXJ5TWVudUVsZW1lbnRzOigpPT51fSk7dmFyIHI9byg5ODM2MTYpLG49bygzMjk2NjgpLHM9bygyMzU3MjQpLGk9byg2ODIzODEpO2NvbnN0IGE9WzM3LDM5LDM4LDQwXTtmdW5jdGlvbiBsKGUsdCl7aWYoIWUudGFyZ2V0KXJldHVybjtjb25zdCBvPWUucmVsYXRlZFRhcmdldD8uZ2V0QXR0cmlidXRlKCJhcmlhLWFjdGl2ZWRlc2NlbmRhbnQiKTtpZihlLnJlbGF0ZWRUYXJnZXQhPT10LmN1cnJlbnQpe2NvbnN0IGU9byYmZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQobyk7aWYoIWV8fGUhPT10LmN1cnJlbnQpcmV0dXJufXAoZS50YXJnZXQpfWZ1bmN0aW9uIGMoZSl7aWYoZS5kZWZhdWx0UHJldmVudGVkKXJldHVybjtjb25zdCB0PSgwLHMuaGFzaEZyb21FdmVudCkoZSk7aWYoIWEuaW5jbHVkZXModCkpcmV0dXJuO2NvbnN0IG89ZG9jdW1lbnQuYWN0aXZlRWxlbWVudDtpZighKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCkpcmV0dXJuO2NvbnN0IGk9dShlLmN1cnJlbnRUYXJnZXQpLnNvcnQoci5uYXZpZ2F0aW9uT3JkZXJDb21wYXJhdG9yKTtpZigwPT09aS5sZW5ndGgpcmV0dXJuO2NvbnN0IGw9ZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5jbG9zZXN0KCdbZGF0YS1yb2xlPSJtZW51aXRlbSJdJyl8fGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQucGFyZW50RWxlbWVudD8ucXVlcnlTZWxlY3RvcignW2RhdGEtcm9sZT0ibWVudWl0ZW0iXScpO2lmKCEobCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KSlyZXR1cm47Y29uc3QgYz1pLmluZGV4T2YobCk7aWYoLTE9PT1jKXJldHVybjtjb25zdCBwPW0obCksZj1wLmluZGV4T2YoZG9jdW1lbnQuYWN0aXZlRWxlbWVudCksdj0tMSE9PWYsZz1lPT57byYmKDAsbi5iZWNvbWVTZWNvbmRhcnlFbGVtZW50KShvKSwoMCxuLmJlY29tZU1haW5FbGVtZW50KShlKSxlLmZvY3VzKCl9O3N3aXRjaCgoMCxyLm1hcEtleUNvZGVUb0RpcmVjdGlvbikodCkpe2Nhc2UiaW5saW5lUHJldiI6aWYoIXAubGVuZ3RoKXJldHVybjtlLnByZXZlbnREZWZhdWx0KCksZygwPT09Zj9pW2NdOnY/ZChwLGYsLTEpOnBbcC5sZW5ndGgtMV0pO2JyZWFrO2Nhc2UiaW5saW5lTmV4dCI6aWYoIXAubGVuZ3RoKXJldHVybjtlLnByZXZlbnREZWZhdWx0KCksZj09PXAubGVuZ3RoLTE/ZyhpW2NdKTpnKHY/ZChwLGYsMSk6cFswXSk7YnJlYWs7Y2FzZSJibG9ja1ByZXYiOntlLnByZXZlbnREZWZhdWx0KCk7Y29uc3QgdD1kKGksYywtMSk7aWYodil7Y29uc3QgZT1oKHQsZik7ZyhlfHx0KTticmVha31nKHQpO2JyZWFrfWNhc2UiYmxvY2tOZXh0Ijp7ZS5wcmV2ZW50RGVmYXVsdCgpO2NvbnN0IHQ9ZChpLGMsMSk7aWYodil7Y29uc3QgZT1oKHQsZik7ZyhlfHx0KTticmVha31nKHQpfX19ZnVuY3Rpb24gcChlKXtjb25zdFt0XT11KGUpO3QmJigoMCxuLmJlY29tZU1haW5FbGVtZW50KSh0KSx0LmZvY3VzKCkpfWZ1bmN0aW9uIGQoZSx0LG8pe3JldHVybiBlWyh0K2UubGVuZ3RoK28pJWUubGVuZ3RoXX1mdW5jdGlvbiBoKGUsdCl7Y29uc3Qgbz1tKGUpO3JldHVybiBvLmxlbmd0aD9vWyh0K28ubGVuZ3RoKSVvLmxlbmd0aF06bnVsbH1mdW5jdGlvbiB1KGUpe3JldHVybiBBcnJheS5mcm9tKGUucXVlcnlTZWxlY3RvckFsbCgnW2RhdGEtcm9sZT0ibWVudWl0ZW0iXTpub3QoW2Rpc2FibGVkXSk6bm90KFthcmlhLWRpc2FibGVkPSJ0cnVlIiBpXSknKSkuZmlsdGVyKCgwLGkuY3JlYXRlU2NvcGVkVmlzaWJsZUVsZW1lbnRGaWx0ZXIpKGUpKX1mdW5jdGlvbiBtKGUpe3JldHVybiBBcnJheS5mcm9tKGUucXVlcnlTZWxlY3RvckFsbCgnW3RhYmluZGV4XTpub3QoW2Rpc2FibGVkXSk6bm90KFthcmlhLWRpc2FibGVkPSJ0cnVlIiBpXSknKSkuZmlsdGVyKCgwLGkuY3JlYXRlU2NvcGVkVmlzaWJsZUVsZW1lbnRGaWx0ZXIpKGUpKX19LDkzNDkyOShlLHQsbyl7InVzZSBzdHJpY3QiO28uZCh0LHtBY2Nlc3NpYmxlTWVudUJ1dHRvbjooKT0+YX0pO3ZhciByPW8oNzc5NDc0KSxuPW8oNzg3ODk1KSxzPW8oMjk2NDQ5KSxpPW8oODYxMTg4KTtjb25zdCBhPSgwLHIuZm9yd2FyZFJlZikoKGZ1bmN0aW9uKGUsdCl7Y29uc3R7dG9vbHRpcDpvLHRhZzphLGJ1dHRvblJlZjpsLHJlZmVyZW5jZTpjLC4uLnB9PWUsZD0oMCxuLnVzZUZ1bmN0aW9uYWxSZWZPYmplY3QpKGM/P251bGwpO3JldHVybiByLmNyZWF0ZUVsZW1lbnQocy5Ub29sV2lkZ2V0TWVudSx7ImFyaWEtbGFiZWwiOm8sLi4ucCxyZWY6dCx0YWc6YT8/ImJ1dHRvbiIscmVmZXJlbmNlOmw/P2QsImRhdGEtdG9vbHRpcCI6byxvbk1lbnVLZXlEb3duOmkuaGFuZGxlQWNjZXNzaWJsZU1lbnVLZXlEb3duLG9uTWVudUZvY3VzOmU9PigwLGkuaGFuZGxlQWNjZXNzaWJsZU1lbnVGb2N1cykoZSxsPz9kKX0pfSkpfSwxMzEzMjEoZSx0LG8peyJ1c2Ugc3RyaWN0IjtvLmQodCx7SG9yaXpvbnRhbEF0dGFjaEVkZ2U6KCk9Pm4sSG9yaXpvbnRhbERyb3BEaXJlY3Rpb246KCk9PmksClZlcnRpY2FsQXR0YWNoRWRnZTooKT0+cixWZXJ0aWNhbERyb3BEaXJlY3Rpb246KCk9PnMsZ2V0UG9wdXBQb3NpdGlvbmVyOigpPT5jfSk7dmFyIHIsbixzLGksYT1vKDEzODYzOCk7IWZ1bmN0aW9uKGUpe2VbZS5Ub3A9MF09IlRvcCIsZVtlLkJvdHRvbT0xXT0iQm90dG9tIixlW2UuQXV0b1N0cmljdD0yXT0iQXV0b1N0cmljdCJ9KHJ8fChyPXt9KSksZnVuY3Rpb24oZSl7ZVtlLkxlZnQ9MF09IkxlZnQiLGVbZS5SaWdodD0xXT0iUmlnaHQifShufHwobj17fSkpLGZ1bmN0aW9uKGUpe2VbZS5Gcm9tVG9wVG9Cb3R0b209MF09IkZyb21Ub3BUb0JvdHRvbSIsZVtlLkZyb21Cb3R0b21Ub1RvcD0xXT0iRnJvbUJvdHRvbVRvVG9wIn0oc3x8KHM9e30pKSxmdW5jdGlvbihlKXtlW2UuRnJvbUxlZnRUb1JpZ2h0PTBdPSJGcm9tTGVmdFRvUmlnaHQiLGVbZS5Gcm9tUmlnaHRUb0xlZnQ9MV09IkZyb21SaWdodFRvTGVmdCJ9KGl8fChpPXt9KSk7Y29uc3QgbD17dmVydGljYWxBdHRhY2hFZGdlOnIuQm90dG9tLGhvcml6b250YWxBdHRhY2hFZGdlOm4uTGVmdCx2ZXJ0aWNhbERyb3BEaXJlY3Rpb246cy5Gcm9tVG9wVG9Cb3R0b20saG9yaXpvbnRhbERyb3BEaXJlY3Rpb246aS5Gcm9tTGVmdFRvUmlnaHQsdmVydGljYWxNYXJnaW46MCxob3Jpem9udGFsTWFyZ2luOjAsbWF0Y2hCdXR0b25BbmRMaXN0Ym94V2lkdGhzOiExfTtmdW5jdGlvbiBjKGUsdCl7cmV0dXJuIG89Pntjb25zdHtjb250ZW50V2lkdGg6Yyxjb250ZW50SGVpZ2h0OnAsYXZhaWxhYmxlSGVpZ2h0OmR9PW8saD0oMCxhLmVuc3VyZU5vdE51bGwpKGUpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLHtob3Jpem9udGFsQXR0YWNoRWRnZTp1PWwuaG9yaXpvbnRhbEF0dGFjaEVkZ2UsaG9yaXpvbnRhbERyb3BEaXJlY3Rpb246bT1sLmhvcml6b250YWxEcm9wRGlyZWN0aW9uLGhvcml6b250YWxNYXJnaW46Zj1sLmhvcml6b250YWxNYXJnaW4sdmVydGljYWxNYXJnaW46dj1sLnZlcnRpY2FsTWFyZ2luLG1hdGNoQnV0dG9uQW5kTGlzdGJveFdpZHRoczpnPWwubWF0Y2hCdXR0b25BbmRMaXN0Ym94V2lkdGhzfT10O2xldCBiPXQudmVydGljYWxBdHRhY2hFZGdlPz9sLnZlcnRpY2FsQXR0YWNoRWRnZSx3PXQudmVydGljYWxEcm9wRGlyZWN0aW9uPz9sLnZlcnRpY2FsRHJvcERpcmVjdGlvbjtiPT09ci5BdXRvU3RyaWN0JiYoZDxoLnkraC5oZWlnaHQrditwPyhiPXIuVG9wLHc9cy5Gcm9tQm90dG9tVG9Ub3ApOihiPXIuQm90dG9tLHc9cy5Gcm9tVG9wVG9Cb3R0b20pKTtjb25zdCBDPWI9PT1yLlRvcD8tMSp2OnYsXz11PT09bi5SaWdodD9oLnJpZ2h0OmgubGVmdCxEPWI9PT1yLlRvcD9oLnRvcDpoLmJvdHRvbSxFPXt4Ol8tKG09PT1pLkZyb21SaWdodFRvTGVmdD9jOjApK2YseTpELSh3PT09cy5Gcm9tQm90dG9tVG9Ub3A/cDowKStDfTtyZXR1cm4gZyYmKEUub3ZlcnJpZGVXaWR0aD1oLndpZHRoKSxFfX19LDI5NjQ0OShlLHQsbyl7InVzZSBzdHJpY3QiO28uZCh0LHtERUZBVUxUX1RPT0xfV0lER0VUX01FTlVfVEhFTUU6KCk9PnYsVG9vbFdpZGdldE1lbnU6KCk9PmJ9KTt2YXIgcj1vKDc3OTQ3NCksbj1vKDkxNDQ4Nykscz1vLm4obiksaT1vKDIzNTcyNCksYT1vKDgzNTk2NCksbD1vKDcwODg0MiksYz1vKDM0NTExNikscD1vKDMxMzc3MiksZD1vKDk2NDIxNCksaD1vKDEzMTMyMSksdT1vKDQwNjExMCksbT1vKDg0ODk4OCksZj1vKDQyNDI2Mik7Y29uc3Qgdj1mO3ZhciBnOyFmdW5jdGlvbihlKXtlW2UuVmVydGljYWw9Ml09IlZlcnRpY2FsIixlW2UuSG9yaXpvbnRhbD0wXT0iSG9yaXpvbnRhbCJ9KGd8fChnPXt9KSk7Y2xhc3MgYiBleHRlbmRzIHIuUHVyZUNvbXBvbmVudHtjb25zdHJ1Y3RvcihlKXtzdXBlcihlKSx0aGlzLl93cmFwcGVyUmVmPW51bGwsdGhpcy5fc2Nyb2xsV3JhcFJlZj1udWxsLHRoaXMuX3Njcm9sbENvbXBlbnNhdGlvbk9ic2VydmVyPW51bGwsdGhpcy5fY29udHJvbGxlcj1yLmNyZWF0ZVJlZigpLHRoaXMuX29uUG9wdXBDbG9zZU9uQ2xpY2s9ZT0+eyJrZXlib2FyZCI9PT1lLmRldGFpbC5jbGlja1R5cGUmJnRoaXMuZm9jdXMoKX0sdGhpcy5faGFuZGxlTWVudUZvY3VzPWU9PntlLnJlbGF0ZWRUYXJnZXQ9PT10aGlzLl93cmFwcGVyUmVmJiZ0aGlzLnNldFN0YXRlKChlPT4oey4uLmUsaXNPcGVuZWRCeUJ1dHRvbjohMH0pKSksdGhpcy5wcm9wcy5vbk1lbnVGb2N1cz8uKGUpfSx0aGlzLl9oYW5kbGVXcmFwcGVyUmVmPWU9Pnt0aGlzLl93cmFwcGVyUmVmPWUsdGhpcy5wcm9wcy5yZWZlcmVuY2UmJnRoaXMucHJvcHMucmVmZXJlbmNlKGUpfSx0aGlzLl9oYW5kbGVTY3JvbGxXcmFwUmVmPWU9Pnt0aGlzLl9zY3JvbGxXcmFwUmVmPWUsdGhpcy5fc3luY1Njcm9sbENvbXBlbnNhdGlvbk9ic2VydmVyKCksdGhpcy5fdXBkYXRlU2Nyb2xsQ29tcGVuc2F0aW9uKCl9LHRoaXMuX3N5bmNTY3JvbGxDb21wZW5zYXRpb25PYnNlcnZlcj0oKT0+e3RoaXMuX2Rlc3Ryb3lTY3JvbGxDb21wZW5zYXRpb25PYnNlcnZlcigpLHRoaXMucHJvcHMuZW5hYmxlU2Nyb2xsQ29tcGVuc2F0aW9uJiZudWxsIT09dGhpcy5fc2Nyb2xsV3JhcFJlZiYmKHRoaXMuX3Njcm9sbENvbXBlbnNhdGlvbk9ic2VydmVyPW5ldyBSZXNpemVPYnNlcnZlcih0aGlzLl91cGRhdGVTY3JvbGxDb21wZW5zYXRpb24pLHRoaXMuX3Njcm9sbENvbXBlbnNhdGlvbk9ic2VydmVyLm9ic2VydmUodGhpcy5fc2Nyb2xsV3JhcFJlZikpfSx0aGlzLl9kZXN0cm95U2Nyb2xsQ29tcGVuc2F0aW9uT2JzZXJ2ZXI9KCk9PntudWxsIT09dGhpcy5fc2Nyb2xsQ29tcGVuc2F0aW9uT2JzZXJ2ZXImJih0aGlzLl9zY3JvbGxDb21wZW5zYXRpb25PYnNlcnZlci5kaXNjb25uZWN0KCksdGhpcy5fc2Nyb2xsQ29tcGVuc2F0aW9uT2JzZXJ2ZXI9bnVsbCl9LHRoaXMuX3VwZGF0ZVNjcm9sbENvbXBlbnNhdGlvbj0oKT0+e2lmKG51bGw9PT10aGlzLl9zY3JvbGxXcmFwUmVmKXJldHVybiB2b2lkIHRoaXMuc2V0U3RhdGUoe3Njcm9sbENvbXBlbnNhdGlvbjpudWxsfSkKO2NvbnN0IGU9dGhpcy5fc2Nyb2xsV3JhcFJlZi5vZmZzZXRXaWR0aC10aGlzLl9zY3JvbGxXcmFwUmVmLmNsaWVudFdpZHRoLHQ9ZT4wPy1lKyJweCI6bnVsbDt0aGlzLnNldFN0YXRlKHtzY3JvbGxDb21wZW5zYXRpb246dH0pfSx0aGlzLl9oYW5kbGVPcGVuPSgpPT57ImRpdiIhPT10aGlzLnByb3BzLnRhZyYmKHRoaXMuc2V0U3RhdGUoKGU9Pih7Li4uZSxpc09wZW5lZEJ5QnV0dG9uOiExfSkpKSx0aGlzLnByb3BzLm1lbnVSZWZlcmVuY2U/LmN1cnJlbnQ/LmFkZEV2ZW50TGlzdGVuZXIoInBvcHVwLW1lbnUtY2xvc2UtZXZlbnQiLHRoaXMuX29uUG9wdXBDbG9zZU9uQ2xpY2spLHRoaXMuX2NvbnRyb2xsZXIuY3VycmVudD8uZm9jdXMoKSl9LHRoaXMuX2hhbmRsZUNsaWNrPWU9PntlLnRhcmdldCBpbnN0YW5jZW9mIE5vZGUmJmUuY3VycmVudFRhcmdldC5jb250YWlucyhlLnRhcmdldCkmJih0aGlzLl9oYW5kbGVUb2dnbGVEcm9wZG93bih2b2lkIDAsKDAsbS5pc0tleWJvYXJkQ2xpY2spKGUpKSx0aGlzLnByb3BzLm9uQ2xpY2smJnRoaXMucHJvcHMub25DbGljayhlLCF0aGlzLnN0YXRlLmlzT3BlbmVkKSl9LHRoaXMuX2hhbmRsZVRvZ2dsZURyb3Bkb3duPShlLHQ9ITEpPT57Y29uc3R7b25DbG9zZTpvLG9uT3BlbjpyfT10aGlzLnByb3BzLHtpc09wZW5lZDpufT10aGlzLnN0YXRlLHM9ImJvb2xlYW4iPT10eXBlb2YgZT9lOiFuO3RoaXMuc2V0U3RhdGUoe2lzT3BlbmVkOnMsc2hvdWxkUmV0dXJuRm9jdXM6ISFzJiZ0fSkscyYmciYmcigpLCFzJiZvJiZvKCl9LHRoaXMuX2hhbmRsZUNsb3NlPSgpPT57dGhpcy5jbG9zZSgpfSx0aGlzLl9oYW5kbGVLZXlEb3duPWU9Pntjb25zdHtvcmllbnRhdGlvbjp0PSJob3Jpem9udGFsIn09dGhpcy5wcm9wcztpZihlLmRlZmF1bHRQcmV2ZW50ZWQpcmV0dXJuO2lmKCEoZS50YXJnZXQgaW5zdGFuY2VvZiBOb2RlKSlyZXR1cm47Y29uc3Qgbz0oMCxpLmhhc2hGcm9tRXZlbnQpKGUpO2lmKGUuY3VycmVudFRhcmdldC5jb250YWlucyhlLnRhcmdldCkpc3dpdGNoKG8pe2Nhc2UgNDA6aWYoImRpdiI9PT10aGlzLnByb3BzLnRhZ3x8Imhvcml6b250YWwiIT09dClyZXR1cm47aWYodGhpcy5zdGF0ZS5pc09wZW5lZClyZXR1cm47ZS5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuX2hhbmRsZVRvZ2dsZURyb3Bkb3duKCEwLCEwKTticmVhaztjYXNlIDI3OmlmKCF0aGlzLnN0YXRlLmlzT3BlbmVkfHwhdGhpcy5wcm9wcy5jbG9zZU9uRXNjKXJldHVybjtlLnByZXZlbnREZWZhdWx0KCksZS5zdG9wUHJvcGFnYXRpb24oKSx0aGlzLl9oYW5kbGVUb2dnbGVEcm9wZG93bighMSl9ZWxzZXtpZigiZGl2Ij09PXRoaXMucHJvcHMudGFnKXJldHVybjtzd2l0Y2gobyl7Y2FzZSAyNzp7ZS5wcmV2ZW50RGVmYXVsdCgpO2NvbnN0e3Nob3VsZFJldHVybkZvY3VzOnQsaXNPcGVuZWRCeUJ1dHRvbjpvfT10aGlzLnN0YXRlO3RoaXMuX2hhbmRsZVRvZ2dsZURyb3Bkb3duKCExKSx0JiZvJiZ0aGlzLl93cmFwcGVyUmVmPy5mb2N1cygpO2JyZWFrfX19fSx0aGlzLnN0YXRlPXtpc09wZW5lZDohMSxzaG91bGRSZXR1cm5Gb2N1czohMSxpc09wZW5lZEJ5QnV0dG9uOiExLHNjcm9sbENvbXBlbnNhdGlvbjpudWxsfX1yZW5kZXIoKXtjb25zdHt0YWc6ZT0iZGl2IixpZDp0LGFycm93Om8sY29udGVudDpuLGlzRGlzYWJsZWQ6aSxpc0RyYXdlcjphLGlzU2hvd1Rvb2x0aXA6cCx0aXRsZTpkLGNsYXNzTmFtZTpoLGhvdEtleTptLHRoZW1lOmYsZHJhd2VyQnJlYWtwb2ludDp2LHRhYkluZGV4OmcsaXNDbGlja2VkOmJ9PXRoaXMucHJvcHMse2lzT3BlbmVkOkN9PXRoaXMuc3RhdGUsXz1zKCkoaCxmLmJ1dHRvbix7ImFwcGx5LWNvbW1vbi10b29sdGlwIjpwfHwhaSxbZi5pc0Rpc2FibGVkXTppLFtmLmlzT3BlbmVkXTpDLFtmLmNsaWNrZWRdOmJ9KSxEPXcobik/bih7aXNPcGVuZWQ6Q30pOm47cmV0dXJuImJ1dHRvbiI9PT1lP3IuY3JlYXRlRWxlbWVudCgiYnV0dG9uIix7dHlwZToiYnV0dG9uIixpZDp0LGNsYXNzTmFtZTpzKCkoXyxmLmFjY2Vzc2libGUpLGRpc2FibGVkOmksb25DbGljazp0aGlzLl9oYW5kbGVDbGljayx0aXRsZTpkLCJkYXRhLXRvb2x0aXAtaG90a2V5IjptLHJlZjp0aGlzLl9oYW5kbGVXcmFwcGVyUmVmLG9uS2V5RG93bjp0aGlzLl9oYW5kbGVLZXlEb3duLHRhYkluZGV4OmcsLi4uKDAsYy5maWx0ZXJEYXRhUHJvcHMpKHRoaXMucHJvcHMpLC4uLigwLGMuZmlsdGVyQXJpYVByb3BzKSh0aGlzLnByb3BzKX0sRCxvJiZyLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpmLmFycm93fSxyLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpmLmFycm93V3JhcH0sci5jcmVhdGVFbGVtZW50KGwuVG9vbFdpZGdldENhcmV0LHtkcm9wcGVkOkN9KSkpLHRoaXMuc3RhdGUuaXNPcGVuZWQmJih2P3IuY3JlYXRlRWxlbWVudCh1Lk1hdGNoTWVkaWEse3J1bGU6dn0sKGU9PnRoaXMuX3JlbmRlckNvbnRlbnQoZSkpKTp0aGlzLl9yZW5kZXJDb250ZW50KGEpKSk6ci5jcmVhdGVFbGVtZW50KCJkaXYiLHtpZDp0LGNsYXNzTmFtZTpfLG9uQ2xpY2s6aT92b2lkIDA6dGhpcy5faGFuZGxlQ2xpY2ssdGl0bGU6ZCwiZGF0YS10b29sdGlwLWhvdGtleSI6bSxyZWY6dGhpcy5faGFuZGxlV3JhcHBlclJlZiwiZGF0YS1yb2xlIjoiYnV0dG9uIix0YWJJbmRleDpnLG9uS2V5RG93bjp0aGlzLl9oYW5kbGVLZXlEb3duLCJhcmlhLWhhc3BvcHVwIjp0aGlzLnByb3BzWyJhcmlhLWhhc3BvcHVwIl0sLi4uKDAsYy5maWx0ZXJEYXRhUHJvcHMpKHRoaXMucHJvcHMpfSxELG8mJnIuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOmYuYXJyb3d9LHIuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOmYuYXJyb3dXcmFwfSxyLmNyZWF0ZUVsZW1lbnQobC5Ub29sV2lkZ2V0Q2FyZXQse2Ryb3BwZWQ6Q30pKSksdGhpcy5zdGF0ZS5pc09wZW5lZCYmKHY/ci5jcmVhdGVFbGVtZW50KHUuTWF0Y2hNZWRpYSx7cnVsZTp2fSwoZT0+dGhpcy5fcmVuZGVyQ29udGVudChlKSkpOnRoaXMuX3JlbmRlckNvbnRlbnQoYSkpKX1jb21wb25lbnREaWRVcGRhdGUoZSl7CiF0aGlzLnByb3BzLmVuYWJsZVNjcm9sbENvbXBlbnNhdGlvbiYmZS5lbmFibGVTY3JvbGxDb21wZW5zYXRpb24mJih0aGlzLl9kZXN0cm95U2Nyb2xsQ29tcGVuc2F0aW9uT2JzZXJ2ZXIoKSx0aGlzLnNldFN0YXRlKHtzY3JvbGxDb21wZW5zYXRpb246bnVsbH0pKX1jb21wb25lbnRXaWxsVW5tb3VudCgpe3RoaXMuX2Rlc3Ryb3lTY3JvbGxDb21wZW5zYXRpb25PYnNlcnZlcigpfWNsb3NlKCl7dGhpcy5wcm9wcy5tZW51UmVmZXJlbmNlPy5jdXJyZW50Py5yZW1vdmVFdmVudExpc3RlbmVyKCJwb3B1cC1tZW51LWNsb3NlLWV2ZW50Iix0aGlzLl9vblBvcHVwQ2xvc2VPbkNsaWNrKSx0aGlzLl9oYW5kbGVUb2dnbGVEcm9wZG93bighMSl9Zm9jdXMoKXt0aGlzLl93cmFwcGVyUmVmPy5mb2N1cygpfXVwZGF0ZSgpe251bGwhPT10aGlzLl9jb250cm9sbGVyLmN1cnJlbnQmJnRoaXMuX2NvbnRyb2xsZXIuY3VycmVudC51cGRhdGUoKX1fcmVuZGVyQ29udGVudChlKXtjb25zdHttZW51RGF0YU5hbWU6dCxtaW5XaWR0aDpvLG1lbnVDbGFzc05hbWU6bixkcmF3ZXJDbGFzc05hbWU6cyxtZW51Um9sZTppLG1heEhlaWdodDpsLGRyYXdlclBvc2l0aW9uOmM9IkJvdHRvbSIsY2hpbGRyZW46dSxub01vbWVudHVtQmFzZWRTY3JvbGw6bSxlbmFibGVTY3JvbGxDb21wZW5zYXRpb246Zn09dGhpcy5wcm9wcyx7aXNPcGVuZWQ6dn09dGhpcy5zdGF0ZSxnPXtob3Jpem9udGFsTWFyZ2luOnRoaXMucHJvcHMuaG9yaXpvbnRhbE1hcmdpbnx8MCx2ZXJ0aWNhbE1hcmdpbjp0aGlzLnByb3BzLnZlcnRpY2FsTWFyZ2lufHwyLHZlcnRpY2FsQXR0YWNoRWRnZTp0aGlzLnByb3BzLnZlcnRpY2FsQXR0YWNoRWRnZSxob3Jpem9udGFsQXR0YWNoRWRnZTp0aGlzLnByb3BzLmhvcml6b250YWxBdHRhY2hFZGdlLHZlcnRpY2FsRHJvcERpcmVjdGlvbjp0aGlzLnByb3BzLnZlcnRpY2FsRHJvcERpcmVjdGlvbixob3Jpem9udGFsRHJvcERpcmVjdGlvbjp0aGlzLnByb3BzLmhvcml6b250YWxEcm9wRGlyZWN0aW9uLG1hdGNoQnV0dG9uQW5kTGlzdGJveFdpZHRoczp0aGlzLnByb3BzLm1hdGNoQnV0dG9uQW5kTGlzdGJveFdpZHRoc30sYj1Cb29sZWFuKHYmJmUmJmMpLEM9dyh1KT91KHtpc0RyYXdlcjpifSk6dTtyZXR1cm4gYj9yLmNyZWF0ZUVsZW1lbnQocC5EcmF3ZXJNYW5hZ2VyLG51bGwsci5jcmVhdGVFbGVtZW50KGQuRHJhd2VyLHtjbGFzc05hbWU6cyxyZWZlcmVuY2U6dGhpcy5wcm9wcy5kcmF3ZXJSZWZlcmVuY2Usb25DbG9zZTp0aGlzLl9oYW5kbGVDbG9zZSxwb3NpdGlvbjpjLCJkYXRhLW5hbWUiOnR9LEMpKTpyLmNyZWF0ZUVsZW1lbnQoYS5Qb3B1cE1lbnUse3JlZmVyZW5jZTp0aGlzLnByb3BzLm1lbnVSZWZlcmVuY2Usc2Nyb2xsV3JhcFJlZmVyZW5jZTpmP3RoaXMuX2hhbmRsZVNjcm9sbFdyYXBSZWY6dm9pZCAwLHJvbGU6aSxjb250cm9sbGVyOnRoaXMuX2NvbnRyb2xsZXIsY2xvc2VPbkNsaWNrT3V0c2lkZTp0aGlzLnByb3BzLmNsb3NlT25DbGlja091dHNpZGUsZG9Ob3RDbG9zZU9uOnRoaXMsaXNPcGVuZWQ6dixtaW5XaWR0aDpvLG9uQ2xvc2U6dGhpcy5faGFuZGxlQ2xvc2UscG9zaXRpb246KDAsaC5nZXRQb3B1cFBvc2l0aW9uZXIpKHRoaXMuX3dyYXBwZXJSZWYsZyksY2xhc3NOYW1lOm4sbWF4SGVpZ2h0OmwsZGF0YVFhSWQ6dCx0YWJJbmRleDoiZGl2IiE9PXRoaXMucHJvcHMudGFnPy0xOnZvaWQgMCxvbk9wZW46dGhpcy5faGFuZGxlT3BlbixvbktleURvd246dGhpcy5wcm9wcy5vbk1lbnVLZXlEb3duLG9uRm9jdXM6dGhpcy5faGFuZGxlTWVudUZvY3VzLG5vTW9tZW50dW1CYXNlZFNjcm9sbDptfSxmP3IuY3JlYXRlRWxlbWVudCgiZGl2Iix7c3R5bGU6dGhpcy5zdGF0ZS5zY3JvbGxDb21wZW5zYXRpb24/e21hcmdpbklubGluZUVuZDp0aGlzLnN0YXRlLnNjcm9sbENvbXBlbnNhdGlvbn06dm9pZCAwfSxDKTpDKX19ZnVuY3Rpb24gdyhlKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgZX1iLmRlZmF1bHRQcm9wcz17YXJyb3c6ITAsY2xvc2VPbkNsaWNrT3V0c2lkZTohMCx0aGVtZTpmfX0sNzA4ODQyKGUsdCxvKXsidXNlIHN0cmljdCI7by5kKHQse1Rvb2xXaWRnZXRDYXJldDooKT0+Y30pO3ZhciByPW8oNzc5NDc0KSxuPW8oOTE0NDg3KSxzPW8ubihuKSxpPW8oMjczMzEwKSxhPW8oODEwMjgxKSxsPW8oMzU2NzIxKTtmdW5jdGlvbiBjKGUpe2NvbnN0e2Ryb3BwZWQ6dCxjbGFzc05hbWU6b309ZTtyZXR1cm4gci5jcmVhdGVFbGVtZW50KGkuSWNvbix7Y2xhc3NOYW1lOnMoKShvLGEuaWNvbix7W2EuZHJvcHBlZF06dH0pLGljb246bH0pfX0sMzU2NzIxKGUpe2UuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNiA4IiB3aWR0aD0iMTYiIGhlaWdodD0iOCI+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBkPSJNMCAxLjQ3NWw3LjM5NiA2LjA0LjU5Ni40ODUuNTkzLS40OUwxNiAxLjM5IDE0LjgwNyAwIDcuMzkzIDYuMTIyIDguNTggNi4xMiAxLjE4Ni4wOHoiLz48L3N2Zz4nfX1dKTs="}},"time_used":3,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":3,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/94948.0fc88fa63c054a8d7684.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:13.886Z","timestamp":1785148033886,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/94948.0fc88fa63c054a8d7684.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:13 GMT\r\ncontent-type: text/css; charset=utf-8\r\ncontent-length: 58\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\netag: \"6a58ab11-3a\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Thu, 16 Jul 2026 09:57:37 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/16/2026 11:03:29\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: a96ba7d3311268f802457b22c29f549c\r\ncdn-cache: HIT\r\naccept-ranges: bytes\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":58,"size_decoded":842,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with no line terminators","md5":"5592fcacaacd1e8d44b8a3fbb380b590","sha1":"c1941ebad54702aac9c07152c40ea90c524ed011","sha256":"fe2e73df95dfdba476a9f13e9a0654010c8fbfe8266e38067621719d71bd179b","sha512":"87708aa11fe40f2364325f5d9f72a006dbfbfda851f696a21b2359441ee7c274d65722ab3df0dd59a66fcc87d7207404a4ba63b630689462beec57d1d7da5a3f","ssdeep":"","tlshash":"6aa002c61bf521e442796c0e8ec00307e4d144a100002dd78427c0700caef9f449031f","first_seen":"2026-07-17T03:30:51.219732Z","last_seen":"2026-07-27T12:53:06.18924Z","times_seen":167,"resource_available":false,"data":"LmJsb2NrSWNvbi1ndk9RVmlWNywuYmxvY2tJY29uLWd2T1FWaVY3IHN2Z3tkaXNwbGF5OmJsb2NrfQ=="}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/40835.76a1c7923a2c986be9ac.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:13.950Z","timestamp":1785148033950,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/40835.76a1c7923a2c986be9ac.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:13 GMT\r\ncontent-type: text/css; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a58ab11-100f\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Thu, 16 Jul 2026 09:57:37 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/16/2026 11:03:21\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 5904fc95920de678b5370c9b64635214\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":4111,"size_decoded":2063,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with very long lines (4111), with no line terminators","md5":"a6563141742b204a9593bab5b080de7e","sha1":"3f4c1b48e6a44190e1cc78662a5a045968b7f2c0","sha256":"953092909e4c16b8c1cf3e6aeb8c74f01719e08a67a32f223f4407bc30f28b48","sha512":"2093d4a5d1abb74ca9f78354930c29852daa55f3ed0089aba395758d6061f85d41310f06215e141e409b8e5533f6be5dc824ba5bcc72d9a84da0d022feda2f99","ssdeep":"96:ohOKQtBEBWcXTn0kPO+zjGHq41qiDis3nXi:ohOjkBWcXT0km+zjGD1qiDis3Xi","tlshash":"fe81df9772d06e75bd5259adbaac61ac7384dc35ed6300c7b120be3688c53fa0570c2d","first_seen":"2026-07-17T14:15:58.392302Z","last_seen":"2026-07-27T12:51:16.040903Z","times_seen":155,"resource_available":false,"data":"LmN1c3RvbUxpc3RJdGVtLTlROUZIeXJuey13ZWJraXQtYXBwZWFyYW5jZTpub25lO2FwcGVhcmFuY2U6bm9uZTtiYWNrZ3JvdW5kOnZhcigtLXVpLWxpYi1pbi1saXN0SXRlbS1iYWNrZ3JvdW5kQ29sb3IsdmFyKC0tY29sb3ItY29udGFpbmVyLWZpbGwtdGVydGlhcnktaW52ZXJzZSkpO2JhY2tncm91bmQ6bm9uZTtib3JkZXI6bm9uZTtib3JkZXItcmFkaXVzOjZweDtib3gtc2l6aW5nOmJvcmRlci1ib3g7Y29sb3I6aW5oZXJpdDtmb250LWZhbWlseTppbmhlcml0O3BhZGRpbmc6MDt0ZXh0LWFsaWduOnN0YXJ0O3dpZHRoOjEwMCV9LmN1c3RvbUxpc3RJdGVtLTlROUZIeXJuOmFmdGVye2hlaWdodDpjYWxjKDEwMCUgKyA4cHgpO2luc2V0LWlubGluZS1zdGFydDotNHB4O3RvcDotNHB4O3dpZHRoOmNhbGMoMTAwJSArIDhweCl9LmN1c3RvbUxpc3RJdGVtLTlROUZIeXJuOmZvY3VzOmFmdGVye2Rpc3BsYXk6YmxvY2t9LmN1c3RvbUxpc3RJdGVtLTlROUZIeXJuOmZvY3VzLXZpc2libGU6YWZ0ZXJ7ZGlzcGxheTpibG9ja30uY3VzdG9tTGlzdEl0ZW0tOVE5Rkh5cm46Zm9jdXM6bm90KDpmb2N1cy12aXNpYmxlKTphZnRlcntkaXNwbGF5Om5vbmV9LmN1c3RvbUxpc3RJdGVtLTlROUZIeXJuOmFmdGVye2JvcmRlci1jb2xvcjp2YXIoLS1jb2xvci1mb2N1cy1vdXRsaW5lLWNvbG9yLWJsdWUpO2JvcmRlci1yYWRpdXM6NHB4fS5jdXN0b21MaXN0SXRlbS05UTlGSHlybntvdXRsaW5lOm5vbmU7b3ZlcmZsb3c6dmlzaWJsZTtwb3NpdGlvbjpyZWxhdGl2ZX0uY3VzdG9tTGlzdEl0ZW0tOVE5Rkh5cm46Zm9jdXN7b3V0bGluZTpub25lfS5jdXN0b21MaXN0SXRlbS05UTlGSHlybjpmb2N1cy12aXNpYmxle291dGxpbmU6bm9uZX0uY3VzdG9tTGlzdEl0ZW0tOVE5Rkh5cm46YWZ0ZXJ7Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci13aWR0aDoycHg7Ym94LXNpemluZzpib3JkZXItYm94O2NvbnRlbnQ6IiI7ZGlzcGxheTpub25lO2hlaWdodDoxMDAlO2luc2V0LWlubGluZS1zdGFydDowO3BvaW50ZXItZXZlbnRzOm5vbmU7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7d2lkdGg6MTAwJTt6LWluZGV4OjF9QG1lZGlhIChhbnktaG92ZXI6aG92ZXIpey5jbGlja2FibGUtOVE5Rkh5cm46aG92ZXJ7YmFja2dyb3VuZDp2YXIoLS11aS1saWItaW4tbGlzdEl0ZW0tYmFja2dyb3VuZENvbG9ySG92ZXIsdmFyKC0tY29sb3ItY29udGFpbmVyLWZpbGwtcHJpbWFyeS1uZXV0cmFsLWV4dHJhLWxpZ2h0KSl9fS53cmFwcGVyLUtVaXRzdHBKe2FsaWduLWl0ZW1zOmNlbnRlcjtkaXNwbGF5OmZsZXg7ZmxleC13cmFwOndyYXB9LnByaW1hcnlUaXRsZVdyYXBwZXItS1VpdHN0cEp7Ym94LXNpemluZzpib3JkZXItYm94O2NvbG9yOnZhcigtLXVpLWxpYi1pbi1saXN0SXRlbS10aXRsZVRleHRDb2xvcix2YXIoLS1jb2xvci1jb250ZW50LXByaW1hcnktbmV1dHJhbC1ib2xkKSk7Y29sdW1uLWdhcDpjYWxjKHZhcigtLXVpLWxpYi1pbi1saXN0SXRlbS1zaXplSXNEZXNrdG9wLCAxKSo2cHggKyB2YXIoLS11aS1saWItaW4tbGlzdEl0ZW0tc2l6ZUlzTW9iaWxlLCAwKSo4cHgpO21pbi1oZWlnaHQ6NDBweDtwYWRkaW5nLWJsb2NrOjhweCA4cHg7cGFkZGluZy1pbmxpbmU6Y2FsYyh2YXIoLS11aS1saWItaW4tbGlzdEl0ZW0tc2l6ZUlzRGVza3RvcCwgMSkqMTBweCArIHZhcigtLXVpLWxpYi1pbi1saXN0SXRlbS1zaXplSXNNb2JpbGUsIDApKjE2cHgpIGNhbGModmFyKC0tdWktbGliLWluLWxpc3RJdGVtLXNpemVJc0Rlc2t0b3AsIDEpKjEycHggKyB2YXIoLS11aS1saWItaW4tbGlzdEl0ZW0tc2l6ZUlzTW9iaWxlLCAwKSoyMHB4KTtyb3ctZ2FwOjJweDstLXVpLWxpYi1wcml2YXRlLWxpc3RJdGVtLXNpemU6Y2FsYyh2YXIoLS11aS1saWItaW4tbGlzdEl0ZW0tc2l6ZUlzRGVza3RvcCwgMSkqMyArIHZhcigtLXVpLWxpYi1pbi1saXN0SXRlbS1zaXplSXNNb2JpbGUsIDApKjQpOy0tdWktbGliLXNpemUtZGVmOnZhcigtLXVpLWxpYi1pbi1saXN0SXRlbS1zaXplLHZhcigtLXVpLWxpYi1wcml2YXRlLWxpc3RJdGVtLXNpemUsMykpOy0tdWktbGliLXNpemUtZGVmLXNtYWxsOmNhbGMobWF4KDAsIDEgLSAodmFyKC0tdWktbGliLXNpemUtZGVmKSAtIDMpICogKHZhcigtLXVpLWxpYi1zaXplLWRlZikgLSAzKSkpOy0tdWktbGliLXNpemUtZGVmLW1lZGl1bTpjYWxjKG1heCgwLCAxIC0gKHZhcigtLXVpLWxpYi1zaXplLWRlZikgLSA0KSAqICh2YXIoLS11aS1saWItc2l6ZS1kZWYpIC0gNCkpKTtmb250LXNpemU6Y2FsYyh2YXIoLS11aS1saWItc2l6ZS1kZWYtc21hbGwpKjE0cHggKyB2YXIoLS11aS1saWItc2l6ZS1kZWYtbWVkaXVtKSoxNnB4KTtmb250LXN0eWxlOm5vcm1hbDtmb250LXdlaWdodDpjYWxjKHZhcigtLXVpLWxpYi1zaXplLWRlZi1zbWFsbCkqNjAwICsgdmFyKC0tdWktbGliLXNpemUtZGVmLW1lZGl1bSkqNjAwKTtsaW5lLWhlaWdodDpjYWxjKHZhcigtLXVpLWxpYi1zaXplLWRlZi1zbWFsbCkqMThweCArIHZhcigtLXVpLWxpYi1zaXplLWRlZi1tZWRpdW0pKjI0cHgpfS5zZWNvbmRhcnlUaXRsZVdyYXBwZXItS1VpdHN0cEp7Y29sb3I6dmFyKC0tdWktbGliLWluLWxpc3RJdGVtLXRpdGxlU2Vjb25kYXJ5VGV4dENvbG9yLHZhcigtLWNvbG9yLWNvbnRlbnQtcHJpbWFyeS1uZXV0cmFsKSk7Zm9udC1mYW1pbHk6LWFwcGxlLXN5c3RlbSxCbGlua01hY1N5c3RlbUZvbnQsVHJlYnVjaGV0IE1TLFJvYm90byxVYnVudHUsc2Fucy1zZXJpZjtmb250LWZlYXR1cmUtc2V0dGluZ3M6InRudW0iIG9uLCJsbnVtIiBvbjtyb3ctZ2FwOjA7dGV4dC1hbGlnbjpzdGFydDstLXVpLWxpYi10eXBvZ3JhcGh5LWxpbmUtaGVpZ2h0OjE2cHg7bGluZS1oZWlnaHQ6dmFyKC0tdWktbGliLXR5cG9ncmFwaHktbGluZS1oZWlnaHQpOy0tdWktbGliLXR5cG9ncmFwaHktZm9udC1zaXplOjExcHg7Y29sdW1uLWdhcDo2cHg7Zm9udC1zaXplOnZhcigtLXVpLWxpYi10eXBvZ3JhcGh5LWZvbnQtc2l6ZSk7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC13ZWlnaHQ6NDAwO2xldHRlci1zcGFjaW5nOi40cHg7bWluLWhlaWdodDpjYWxjKHZhcigtLXVpLWxpYi1pbi1saXN0SXRlbS1zaXplSXNEZXNrdG9wLCAxKSoyNHB4ICsgdmFyKC0tdWktbGliLWluLWxpc3RJdGVtLXNpemVJc01vYmlsZSwgMCkqMzJweCk7cGFkZGluZzowIGNhbGModmFyKC0tdWktbGliLWluLWxpc3RJdGVtLXNpemVJc0Rlc2t0b3AsIDEpKjhweCArIHZhcigtLXVpLWxpYi1pbi1saXN0SXRlbS1zaXplSXNNb2JpbGUsIDApKjE2cHgpO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZX0uc2Vjb25kYXJ5VGl0bGVXcmFwcGVyLUtVaXRzdHBKIC50aXRsZS1LVWl0c3RwSnttaW4taGVpZ2h0OmNhbGModmFyKC0tdWktbGliLWluLWxpc3RJdGVtLXNpemVJc01vYmlsZSwgMCkqMTZweCk7cGFkZGluZzpjYWxjKHZhcigtLXVpLWxpYi1pbi1saXN0SXRlbS1zaXplSXNNb2JpbGUsIDApKjRweCkgMH0uY29udGVudC1LVWl0c3RwSnthbGlnbi1pdGVtczpjZW50ZXI7ZGlzcGxheTpmbGV4O21heC13aWR0aDoxMDAlfS5sZWZ0LUtVaXRzdHBKe2FsaWduLWl0ZW1zOmNlbnRlcjtkaXNwbGF5OmZsZXg7aGVpZ2h0OjI4cHg7anVzdGlmeS1jb250ZW50OmNlbnRlcjtwYWRkaW5nLWlubGluZS1lbmQ6NHB4O3dpZHRoOjI4cHh9LndpdGhMZWZ0U2xvdC1LVWl0c3RwSntwYWRkaW5nLWJvdHRvbTo2cHg7cGFkZGluZy1pbmxpbmUtc3RhcnQ6Y2FsYyh2YXIoLS11aS1saWItaW4tbGlzdEl0ZW0tc2l6ZUlzRGVza3RvcCwgMSkqNHB4ICsgdmFyKC0tdWktbGliLWluLWxpc3RJdGVtLXNpemVJc01vYmlsZSwgMCkqMTJweCk7cGFkZGluZy10b3A6NnB4fS50aXRsZS1LVWl0c3RwSntvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpczt3aGl0ZS1zcGFjZTpub3dyYXB9LnNwYWNlLUtVaXRzdHBKe2ZsZXg6MX0uaWNvbi1LVWl0c3RwSntkaXNwbGF5OmJsb2NrO2hlaWdodDoxOHB4O21hcmdpbi1ib3R0b206Y2FsYyh2YXIoLS11aS1saWItaW4tbGlzdEl0ZW0tc2l6ZUlzRGVza3RvcCwgMSkqLTFweCk7bWFyZ2luLXRvcDpjYWxjKHZhcigtLXVpLWxpYi1pbi1saXN0SXRlbS1zaXplSXNEZXNrdG9wLCAxKSotMXB4KTt3aWR0aDoxOHB4fQ=="}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/32857.e4968cc906ac5769906a.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.067Z","timestamp":1785148034067,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/32857.e4968cc906ac5769906a.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\ncontent-type: text/css; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a4360b8-36c\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Tue, 30 Jun 2026 06:22:48 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.57\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 06/30/2026 11:55:10\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 0afd2e6d84cb37c1c5dcbb9497a1ea56\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":876,"size_decoded":1159,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with very long lines (876), with no line terminators","md5":"2300c14fa93a6ca1be5ffcb4cde75b7a","sha1":"72f13b32bf8fc0e3ab8b60346fefa2fca04e68bd","sha256":"d1c022b9f3d492df3952eec63edac14172bf0bef9d6fc6d4b74ec034fb3daf44","sha512":"f696e9482d69b33dd34f340bf9db4d17972f5e08b58b5bd428647093fced8bfa93ad0aa0ae0ddb380e127ec490ea2c07363d59641c264138a29601add8b7c743","ssdeep":"","tlshash":"0d119088b301e03e7d0f2a3e439ac1dc62149852e9012f7db172d17044c57d676f252c","first_seen":"2026-06-30T21:57:43.416866Z","last_seen":"2026-07-27T12:48:39.691159Z","times_seen":222,"resource_available":false,"data":"LnN1bW1hcnktRTZ0eklRa1J7YWxpZ24taXRlbXM6Y2VudGVyO2JveC1zaXppbmc6Ym9yZGVyLWJveDtjb2xvcjp2YXIoLS10di1jb2xvci1wb3B1cC1lbGVtZW50LXNlY29uZGFyeS10ZXh0LHZhcigtLWNvbG9yLXBvcHVwLWVsZW1lbnQtc2Vjb25kYXJ5LXRleHQpKTtjdXJzb3I6ZGVmYXVsdDtkaXNwbGF5OmZsZXg7ZmxleDpub25lO2ZvbnQtc2l6ZToxMXB4O2xldHRlci1zcGFjaW5nOi40cHg7bGluZS1oZWlnaHQ6MTZweDttaW4td2lkdGg6MDtwYWRkaW5nLWJsb2NrOjAgMDtwYWRkaW5nLWlubGluZToxMnB4IDhweDt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7d2lkdGg6MTAwJX0uc3VtbWFyeS1FNnR6SVFrUi5ob3ZlcmVkLUU2dHpJUWtSe2JhY2tncm91bmQtY29sb3I6dmFyKC0tdHYtY29sb3ItcG9wdXAtZWxlbWVudC1iYWNrZ3JvdW5kLWhvdmVyLHZhcigtLWNvbG9yLXBvcHVwLWVsZW1lbnQtYmFja2dyb3VuZC1ob3ZlcikpfUBtZWRpYSAoYW55LWhvdmVyOmhvdmVyKXsuc3VtbWFyeS1FNnR6SVFrUjpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXR2LWNvbG9yLXBvcHVwLWVsZW1lbnQtYmFja2dyb3VuZC1ob3Zlcix2YXIoLS1jb2xvci1wb3B1cC1lbGVtZW50LWJhY2tncm91bmQtaG92ZXIpKX19LnN1bW1hcnktRTZ0eklRa1I6YWN0aXZle2JhY2tncm91bmQtY29sb3I6dmFyKC0tdHYtY29sb3ItcG9wdXAtZWxlbWVudC1iYWNrZ3JvdW5kLWhvdmVyLHZhcigtLWNvbG9yLWNvbnRhaW5lci1maWxsLXByaW1hcnktbmV1dHJhbC1saWdodCkpfS5jYXJldC1FNnR6SVFrUntoZWlnaHQ6MThweDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO21hcmdpbi1ibG9jazoycHggMnB4O21hcmdpbi1pbmxpbmU6YXV0byAwO3dpZHRoOjE4cHh9"}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/42288.47ecaeca1012ee3e1d8c.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.553Z","timestamp":1785148034553,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/42288.47ecaeca1012ee3e1d8c.js HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a608293-4efd\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Wed, 22 Jul 2026 08:42:59 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/22/2026 11:01:41\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 69d19c1e12ae7a5172c538f39c2c20c4\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":20221,"size_decoded":8618,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (3070)","md5":"146c86b697d57edadedb79e577a2b819","sha1":"fac3ccefeac950dd75b09bf983e4db643acb17cf","sha256":"e7c1e85bb4c79e48526d268113263cbed1b8dc51caa0f7ece95022ce45c6426a","sha512":"0c8f76ba43c26ac96ac8ce77228656bc32000075828146c8e3f5f6c8d83aa1124958db4a287753456a136751fe65d9fc935c7e8efead69cb7bc5587e6f54cd75","ssdeep":"384:IPLZpvbUA+tmPj2DF4ciyLHBoIUEDHfKXqEVKtwAqXrNc2G/p5RuePAU32wDP7Fb:IT78mPj0FHLHevUfKa+EwBxnJePTr6Y","tlshash":"a29219c260053875dddf6eef405b45ade33e243538055499b238adec02a9a5873a7f2f","first_seen":"2026-07-22T11:33:41.962494Z","last_seen":"2026-07-27T12:54:15.402952Z","times_seen":250,"resource_available":true,"data":"KHNlbGYud2VicGFja0NodW5rdHJhZGluZ3ZpZXc9c2VsZi53ZWJwYWNrQ2h1bmt0cmFkaW5ndmlld3x8W10pLnB1c2goW1s0MjI4OF0sezIwMjA0MShlKXtlLmV4cG9ydHM9e2hpZGRlbjoiaGlkZGVuLW5NdHhYVFhfIixmYWRlSW5XcmFwcGVyOiJmYWRlSW5XcmFwcGVyLW5NdHhYVFhfIixpc0FuaW1hdGVkOiJpc0FuaW1hdGVkLW5NdHhYVFhfIn19LDU2NzI2KGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse3VzZUZhZGVJbkNvbnRleHQ6KCk9PnJ9KTt2YXIgaT1uKDc3OTQ3NCk7big5MTQ0ODcpLG4oMjAyMDQxKTtjb25zdCBvPWkuY3JlYXRlQ29udGV4dCh7Y2hpbGRyZW46e30sc2V0SXNSZWFkeTooKT0+e319KTtmdW5jdGlvbiByKCl7Y29uc3R7c2V0SXNSZWFkeTplLGNoaWxkcmVuOnR9PSgwLGkudXNlQ29udGV4dCkobyksbj0oMCxpLnVzZVJlZikoKDAsaS51c2VJZCkoKSk7dFtuLmN1cnJlbnRdfHwodFtuLmN1cnJlbnRdPXtpc1JlYWR5OiExfSk7cmV0dXJuKDAsaS51c2VDYWxsYmFjaykoKCgpPT57dFtuLmN1cnJlbnRdLmlzUmVhZHk9ITAsZShPYmplY3QudmFsdWVzKHQpLmV2ZXJ5KChlPT5lLmlzUmVhZHkpKSl9KSxbdCxlXSl9fSwxODM1NzIoZSx0LG4peyJ1c2Ugc3RyaWN0Ijt2YXIgaTtuLmQodCx7Q29sbGFwc2VEaXJlY3Rpb246KCk9Pml9KSxmdW5jdGlvbihlKXtlLlN0YXJ0Rmlyc3Q9InN0YXJ0LWZpcnN0IixlLkVuZEZpcnN0PSJlbmQtZmlyc3QifShpfHwoaT17fSkpfSwxMzc2NjkoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7dXNlQ29sbGFwc2libGVDb21tb246KCk9PmN9KTt2YXIgaT1uKDc3OTQ3NCksbz1uKDcxOTQyNSkscj1uKDMxNDcyMCkscz1uKDk5MTA5MSksbD1uKDYxNjMxMSksYT1uKDk2NDU5NCk7ZnVuY3Rpb24gYyhlKXtjb25zdHtpdGVtc0xpc3Q6dCxnZXRJdGVtSWQ6bixjYWxjVmlzaWJsZUFuZEhpZGRlbkl0ZW1zOmMsc2hvdWxkS2VlcEl0ZW1WaXNpYmxlOmQsb25NZWFzdXJlQ2FsbGJhY2s6Zixmb3JjZVVwZGF0ZTpiPSExfT1lLFtoLG1dPSgwLHMudXNlUmVmc01hcCkoKSxwPSgwLGkudXNlUmVmKShudWxsKSx2PSgwLGkudXNlUmVmKSh7d2lkdGhzTWFwOm5ldyBNYXAsY29udGFpbmVyV2lkdGg6MCxtb3JlQnV0dG9uV2lkdGg6MH0pLFtnLEldPSgwLGkudXNlU3RhdGUpKHt2aXNpYmxlOnQsaGlkZGVuOltdfSksQz0oMCxpLnVzZU1lbW8pKCgoKT0+dC5yZWR1Y2UoKChlLHQsbik9PihkKHQpJiZlLnB1c2gobiksZSkpLFtdKSksW3QsZF0pLFI9KDAsaS51c2VDYWxsYmFjaykoKCgpPT57aWYodi5jdXJyZW50LmNvbnRhaW5lcldpZHRoKXtjb25zdCBlPWModi5jdXJyZW50LEMpOyhmdW5jdGlvbihlLHQpe3JldHVybiF1KGUudmlzaWJsZSx0LnZpc2libGUpfHwhdShlLmhpZGRlbix0LmhpZGRlbil9KShnLGUpJiZJKGUpfX0pLFt2LEksZyxDLGNdKSxTPSgwLGkudXNlQ2FsbGJhY2spKCgoKT0+e3YuY3VycmVudC5tb3JlQnV0dG9uV2lkdGg9cC5jdXJyZW50PygwLHIub3V0ZXJXaWR0aCkocC5jdXJyZW50LCEwKTowO2NvbnN0IGU9bmV3IE1hcCh2LmN1cnJlbnQud2lkdGhzTWFwKTtmb3IoY29uc3QgaSBvZiB0KXtjb25zdCB0PW4oaSksbz1oLmN1cnJlbnQuZ2V0KHQpO2lmKG8pe2NvbnN0IG49KDAsci5vdXRlcldpZHRoKShvLCEwKTtlLnNldCh0LG4pfX12LmN1cnJlbnQud2lkdGhzTWFwPWUsZiYmZigpfSksW3YsdCxuLGgsZl0pLGs9KDAsaS51c2VSZWYpKG51bGwpLHk9KDAsaS51c2VDYWxsYmFjaykoKChbZV0pPT57ZS5jb250ZW50UmVjdC53aWR0aCE9PXYuY3VycmVudC5jb250YWluZXJXaWR0aCYmKGsuY3VycmVudCYmY2FuY2VsQW5pbWF0aW9uRnJhbWUoay5jdXJyZW50KSx2LmN1cnJlbnQuY29udGFpbmVyV2lkdGg9ZS5jb250ZW50UmVjdC53aWR0aCxrLmN1cnJlbnQ9cmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgoKT0+e1IoKX0pKSl9KSxbdixSXSksTT0oMCxpLnVzZVJlZikobnVsbCksSD0oMCxpLnVzZUNhbGxiYWNrKSgoKFtlXSk9PntNLmN1cnJlbnQmJmNhbmNlbEFuaW1hdGlvbkZyYW1lKE0uY3VycmVudCksUygpLE0uY3VycmVudD1yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCgpPT57UigpfSkpfSksW1MsUl0pLEE9KDAsby51c2VSZXNpemVPYnNlcnZlcikoSCksdz0oMCxvLnVzZVJlc2l6ZU9ic2VydmVyKSh5KSxUPSgwLGkudXNlUmVmKShudWxsKSxFPSgwLGEubWVyZ2VSZWZzKShbdyxUXSkseD0oMCxpLnVzZVJlZikodCksej0oMCxpLnVzZVJlZikoITApLEI9KDAsaS51c2VSZWYpKFtdKTtyZXR1cm4oMCxsLnVzZUlzb21vcnBoaWNMYXlvdXRFZmZlY3QpKCgoKT0+e2NvbnN0IGU9di5jdXJyZW50LndpZHRoc01hcC5zaXplPT09dC5sZW5ndGg7IWImJiF6LmN1cnJlbnQmJnUoeC5jdXJyZW50LHQpJiZ1KEIuY3VycmVudCxDKSYmZXx8KFMoKSxSKCksei5jdXJyZW50PSExLHguY3VycmVudD10LEIuY3VycmVudD1DKX0pLFt0LEMsYixTLFJdKSx7Y29udGFpbmVyUmVmQ2FsbGJhY2s6RSxtb3JlQnV0dG9uUmVmOnAsaW5uZXJDb250YWluZXJSZWZDYWxsYmFjazpBLGl0ZW1zUmVmczpoLHNldEl0ZW1SZWY6bSxoaWRkZW5JdGVtczpnLmhpZGRlbix2aXNpYmxlSXRlbXM6Zy52aXNpYmxlLGl0ZW1zTWVhc3VyZW1lbnRzOnZ9fWZ1bmN0aW9uIHUoZSx0KXtyZXR1cm4gZS5sZW5ndGg9PT10Lmxlbmd0aCYmZS5yZWR1Y2UoKChlLG4saSk9PmUmJm49PT10W2ldKSwhMCl9fSw4NjgzMzkoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7dXNlQ29sbGFwc2libGU6KCk9PnN9KTt2YXIgaT1uKDc3OTQ3NCksbz1uKDE4MzU3Mikscj1uKDEzNzY2OSk7ZnVuY3Rpb24gcyhlLHQsbixzPW8uQ29sbGFwc2VEaXJlY3Rpb24uRW5kRmlyc3Qpe2NvbnN0IGw9KDAsaS51c2VDYWxsYmFjaykoKChuLGkpPT57Y29uc3Qgcj1lLm1hcCgoZT0+bi53aWR0aHNNYXAuZ2V0KHQoZSkpPz8wKSk7cmV0dXJuIGZ1bmN0aW9uKHtpdGVtczplLGNvbnRhaW5lcldpZHRoOnQsZWxlbWVudHNXaWR0aHM6bixtZW51SXRlbVdpZHRoOmksa2VlcFZpc2libGU6cixkaXJlY3Rpb246c30pe2NvbnN0IGw9Wy4uLmVdLGE9W10sYz1bXTtsZXQgdT0wO2Zvcihjb25zdCBlIG9mIG4pdSs9ZQo7aWYodTw9dClyZXR1cm57dmlzaWJsZTpsLGhpZGRlbjpjfTtjb25zdCBkPVsuLi5uXTtpZih1PXIubWFwKChlPT5kW2VdKSkucmVkdWNlKCgoZSx0KT0+ZSt0KSwwKStpLHM9PT1vLkNvbGxhcHNlRGlyZWN0aW9uLkVuZEZpcnN0KWZvcihsZXQgZT0wO2U8bC5sZW5ndGg7ZSsrKXIuaW5jbHVkZXMoZSk/YS5wdXNoKGxbZV0pOih1Kz1kW2VdLHU8PXQ/YS5wdXNoKGxbZV0pOmMucHVzaChsW2VdKSk7ZWxzZSBmb3IobGV0IGU9bC5sZW5ndGgtMTtlPj0wO2UtLSlyLmluY2x1ZGVzKGUpP2EudW5zaGlmdChsW2VdKToodSs9ZFtlXSx1PD10P2EudW5zaGlmdChsW2VdKTpjLnVuc2hpZnQobFtlXSkpO3JldHVybnt2aXNpYmxlOmEsaGlkZGVuOmN9fSh7aXRlbXM6ZSxjb250YWluZXJXaWR0aDpuLmNvbnRhaW5lcldpZHRoLGVsZW1lbnRzV2lkdGhzOnIsbWVudUl0ZW1XaWR0aDpuLm1vcmVCdXR0b25XaWR0aCxrZWVwVmlzaWJsZTppLGRpcmVjdGlvbjpzfSl9KSxbZV0pO3JldHVybigwLHIudXNlQ29sbGFwc2libGVDb21tb24pKHtpdGVtc0xpc3Q6ZSxnZXRJdGVtSWQ6dCxjYWxjVmlzaWJsZUFuZEhpZGRlbkl0ZW1zOmwsc2hvdWxkS2VlcEl0ZW1WaXNpYmxlOm59KX19LDQ1NjQ4NyhlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHt1c2VEaXNjbG9zdXJlOigpPT5jfSk7dmFyIGk9big3Nzk0NzQpLG89bigxMzg2MzgpLHI9big3MjEzNjkpLHM9bigxNDU5ODQpLGw9big4MzM5MDMpLGE9big0MTkxODEpO2Z1bmN0aW9uIGMoZSl7Y29uc3R7aWQ6dCxsaXN0Ym94SWQ6bixkaXNhYmxlZDpjLGJ1dHRvblRhYkluZGV4OnU9MCxvbkZvY3VzOmQsb25CbHVyOmYsb25DbGljazpifT1lLFtoLG1dPSgwLGkudXNlU3RhdGUpKCExKSxbcCx2XT0oMCxzLnVzZUZvY3VzKSgpLGc9cHx8aCxJPW4/P3ZvaWQgMCE9PXQ/KDAsYS5jcmVhdGVEb21JZCkodCwibGlzdGJveCIpOnZvaWQgMCxDPSgwLGkudXNlUmVmKShudWxsKSxSPSgwLGkudXNlQ2FsbGJhY2spKChlPT5DLmN1cnJlbnQ/LmZvY3VzKGUpKSxbQ10pLFM9KDAsaS51c2VSZWYpKG51bGwpLGs9KDAsaS51c2VDYWxsYmFjaykoKCgpPT4oMCxvLmVuc3VyZU5vdE51bGwpKFMuY3VycmVudCkuZm9jdXMoKSksW1NdKSx5PSgwLGkudXNlQ2FsbGJhY2spKCgoKT0+bSghMCkpLFttXSksTT0oMCxpLnVzZUNhbGxiYWNrKSgoKGU9ITEsdD0hMSk9PnttKCExKTtjb25zdHthY3RpdmVFbGVtZW50Om59PWRvY3VtZW50O24mJigwLHIuaXNUZXh0RWRpdGluZ0ZpZWxkKShuKXx8dHx8Uih7cHJldmVudFNjcm9sbDplfSl9KSxbbSxSXSksSD0oMCxpLnVzZUNhbGxiYWNrKSgoKCk9PntoP00oKTp5KCl9KSxbaCxNLHldKSxBPWM/W106W2Qsdi5vbkZvY3VzXSx3PWM/W106W2Ysdi5vbkJsdXJdLFQ9Yz9bXTpbYixIXSxFPSgwLGwuY3JlYXRlU2FmZU11bHRpY2FzdEV2ZW50SGFuZGxlcikoLi4uQSkseD0oMCxsLmNyZWF0ZVNhZmVNdWx0aWNhc3RFdmVudEhhbmRsZXIpKC4uLncpLHo9KDAsbC5jcmVhdGVTYWZlTXVsdGljYXN0RXZlbnRIYW5kbGVyKSguLi5UKTtyZXR1cm57bGlzdGJveElkOkksaXNPcGVuZWQ6aCxpc0ZvY3VzZWQ6ZyxidXR0b25UYWJJbmRleDpjPy0xOnUsbGlzdGJveFRhYkluZGV4Oi0xLG9wZW46eSxjbG9zZTpNLHRvZ2dsZTpILG9uT3BlbjprLGJ1dHRvbkZvY3VzQmluZGluZ3M6e29uRm9jdXM6RSxvbkJsdXI6eH0sb25CdXR0b25DbGljazp6LGJ1dHRvblJlZjpDLGxpc3Rib3hSZWY6UyxidXR0b25BcmlhOnsiYXJpYS1jb250cm9scyI6aD9JOnZvaWQgMCwiYXJpYS1leHBhbmRlZCI6aCwiYXJpYS1kaXNhYmxlZCI6Y319fX0sNzA4MjA3KGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse3VzZUl0ZW1zS2V5Ym9hcmROYXZpZ2F0aW9uOigpPT5sfSk7dmFyIGksbz1uKDc3OTQ3NCkscj1uKDc2MzU0OSk7ZnVuY3Rpb24gcyhlLHQpe3JldHVybiBlPj0wP2UldDoodC1NYXRoLmFicyhlKSV0KSV0fSFmdW5jdGlvbihlKXtlLk5leHQ9Im5leHQiLGUuUHJldmlvdXM9InByZXZpb3VzIixlLkZpcnN0PSJmaXJzdCIsZS5MYXN0PSJsYXN0In0oaXx8KGk9e30pKTtmdW5jdGlvbiBsKGUsdCxuLGksbCxhLGM9e30sdSxkKXtjb25zdCBmPSgwLG8udXNlQ2FsbGJhY2spKChlPT57Y29uc3QgdD1uLmZpbmRJbmRleChpKTtpZih0PT09bi5sZW5ndGgtMSYmIWEpcmV0dXJuIHZvaWQodT8ub25GYWlsTmV4dCYmdS5vbkZhaWxOZXh0KGUpKTtjb25zdCBvPXModCsxLG4ubGVuZ3RoKTtsJiZsKG5bb10sIm5leHQiKX0pLFtuLGksbCxhXSksYj0oMCxvLnVzZUNhbGxiYWNrKSgoZT0+e2NvbnN0IHQ9bi5maW5kSW5kZXgoaSk7aWYoMD09PXQmJiFhKXJldHVybiB2b2lkKHU/Lm9uRmFpbFByZXYmJnUub25GYWlsUHJldihlKSk7Y29uc3Qgbz1zKHQtMSxuLmxlbmd0aCk7bCYmbChuW29dLCJwcmV2aW91cyIpfSksW24saSxsLGFdKSxoPSgwLG8udXNlQ2FsbGJhY2spKCgoKT0+e2wmJmwoblswXSwiZmlyc3QiKX0pLFtsLG5dKSxtPSgwLG8udXNlQ2FsbGJhY2spKCgoKT0+e2wmJmwobltuLmxlbmd0aC0xXSwibGFzdCIpfSksW2wsbl0pLHA9KDAsby51c2VNZW1vKSgoKCk9PihlPT4oe25leHQ6WzQwLCgpPT5lKCk/Mzc6MzldLHByZXZpb3VzOlszOCwoKT0+ZSgpPzM5OjM3XSxmaXJzdDpbMzMsKCk9PmUoKT8zNTozNl0sbGFzdDpbMzQsKCk9PmUoKT8zNjozNV19KSkodCkpLFt0XSkse25leHQ6dj1wLm5leHQscHJldmlvdXM6Zz1wLnByZXZpb3VzLGZpcnN0Okk9cC5maXJzdCxsYXN0OkM9cC5sYXN0fT1jO3JldHVybigwLHIudXNlQ29tcG9zZWRLZXlib2FyZEFjdGlvbkhhbmRsZXJzKSgoMCxyLnVzZUtleWJvYXJkQWN0aW9uSGFuZGxlcikodixmLGQ/Lm5leHQ/PygoKT0+ITApLGUpLCgwLHIudXNlS2V5Ym9hcmRBY3Rpb25IYW5kbGVyKShnLGIsZD8ucHJldmlvdXM/PygoKT0+ITApLGUpLCgwLHIudXNlS2V5Ym9hcmRBY3Rpb25IYW5kbGVyKShJLGgsKCgpPT4hMCksZSksKDAsci51c2VLZXlib2FyZEFjdGlvbkhhbmRsZXIpKEMsbSwoKCk9PiEwKSxlKSl9fSw2NjI3NjEoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7dXNlS2VlcEFjdGl2ZUl0ZW1JbnRvVmlldzooKT0+c30pCjt2YXIgaT1uKDc3OTQ3NCksbz1uKDEzODYzOCkscj1uKDk5MzgzOSk7ZnVuY3Rpb24gcyhlPXt9KXtjb25zdHthY3RpdmVJdGVtOnQsZ2V0S2V5Om4sLi4uc309ZSxsPSgwLGkudXNlUmVmKShudWxsKSxhPSgwLGkudXNlUmVmKShuZXcgTWFwKSxjPSgwLHIudXNlU2Nyb2xsSW50b1ZpZXdIZWxwZXIpKGwuY3VycmVudCksdT0oMCxpLnVzZUNhbGxiYWNrKSgoKCk9PntudWxsIT09Yy5jdXJyZW50JiZudWxsIT09bC5jdXJyZW50JiZjLmN1cnJlbnQuZ2V0Q29udGFpbmVyKCkhPT1sLmN1cnJlbnQmJmMuY3VycmVudC5zZXRDb250YWluZXIobC5jdXJyZW50KX0pLFtjLGxdKSxkPSgwLGkudXNlQ2FsbGJhY2spKChlPT57bC5jdXJyZW50PWV9KSxbbF0pLGY9KDAsaS51c2VDYWxsYmFjaykoKChlLHQpPT57Y29uc3QgaT1uP24oZSk6ZTt0P2EuY3VycmVudC5zZXQoaSx0KTphLmN1cnJlbnQuZGVsZXRlKGkpfSksW2Esbl0pLGI9KDAsaS51c2VDYWxsYmFjaykoKChlLHQpPT57aWYoIWUpcmV0dXJuO2NvbnN0IGk9bj9uKGUpOmUscj1hLmN1cnJlbnQuZ2V0KGkpO3ImJih1KCksKDAsby5lbnN1cmVOb3ROdWxsKShjLmN1cnJlbnQpLnNjcm9sbFRvKHIsdCkpfSksW2EsYyxuXSk7cmV0dXJuKDAsaS51c2VFZmZlY3QpKCgoKT0+Yih0LHMpKSxbYix0XSksW2QsZixiXX19LDQxODM4NihlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHt1c2VNb2JpbGVUb3VjaFN0YXRlOigpPT5yfSk7dmFyIGk9big3Nzk0NzQpLG89big3Mzg0NTgpO2Z1bmN0aW9uIHIoKXtjb25zdFtlLHRdPSgwLGkudXNlU3RhdGUpKCExKTtyZXR1cm4oMCxpLnVzZUVmZmVjdCkoKCgpPT57dChvLm1vYmlsZXRvdWNoKX0pLFtdKSxlfX0sNTg2MjIzKGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse3VzZVByZXZpb3VzOigpPT5vfSk7dmFyIGk9big3Nzk0NzQpO2Z1bmN0aW9uIG8oZSl7Y29uc3QgdD0oMCxpLnVzZVJlZikobnVsbCk7cmV0dXJuKDAsaS51c2VFZmZlY3QpKCgoKT0+e3QuY3VycmVudD1lfSksW2VdKSx0LmN1cnJlbnR9fSw5OTEwOTEoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7dXNlUmVmc01hcDooKT0+b30pO3ZhciBpPW4oNzc5NDc0KTtmdW5jdGlvbiBvKCl7Y29uc3QgZT0oMCxpLnVzZVJlZikobmV3IE1hcCksdD0oMCxpLnVzZUNhbGxiYWNrKSgodD0+bj0+e251bGwhPT1uP2UuY3VycmVudC5zZXQodCxuKTplLmN1cnJlbnQuZGVsZXRlKHQpfSksW2VdKTtyZXR1cm5bZSx0XX19LDk5MzgzOShlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHt1c2VTY3JvbGxJbnRvVmlld0hlbHBlcjooKT0+c30pO3ZhciBpPW4oNzc5NDc0KSxvPW4oMTM4NjM4KSxyPW4oODY2NzQzKTtmdW5jdGlvbiBzKGUpe2NvbnN0IHQ9KDAsaS51c2VSZWYpKG51bGwpO3JldHVybigwLGkudXNlRWZmZWN0KSgoKCk9Pih0LmN1cnJlbnQ9bmV3IHIuU2Nyb2xsSW50b1ZpZXdIZWxwZXIoZSksKCk9PigwLG8uZW5zdXJlTm90TnVsbCkodC5jdXJyZW50KS5kZXN0cm95KCkpKSxbXSksdH19LDU5MTU3MihlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHt1c2VUYWJzS2V5Ym9hcmROYXZpZ2F0aW9uOigpPT5jfSk7dmFyIGk9big3Nzk0NzQpLG89bigxMzg2MzgpLHI9big3NjM1NDkpLHM9big3MDgyMDcpO2Z1bmN0aW9uIGwoKXtyZXR1cm4hMX1mdW5jdGlvbiBhKGUsdCl7cmV0dXJue25leHQ6KCk9PnQhPT1lLmxlbmd0aC0xLHByZXZpb3VzOigpPT4wIT09dH19ZnVuY3Rpb24gYyhlKXtjb25zdHthY3RpdmF0aW9uVHlwZTp0PSJtYW51YWwifT1lLG49KDAsaS51c2VNZW1vKSgoKCk9PnQpLFtdKTtyZXR1cm4oMCxvLmFzc2VydCkodD09PW4sIkFjdGl2YXRpb24gdHlwZSBtdXN0IGJlIGludmFyaWFudC4iKSwiYXV0b21hdGljIj09PXQ/ZnVuY3Rpb24oZSl7Y29uc3R7aXNSdGw6dCxpdGVtczpuLHByZXZlbnREZWZhdWx0SWZIYW5kbGVkOm89ITAsc3RvcFByb3BhZ2F0aW9uSWZIYW5kbGVkOmM9ITEsbG9vcDp1PSEwLGlzSGlnaGxpZ2h0ZWQ6ZCxvbkhpZ2hsaWdodDpmLG9uQWN0aXZhdGU6Yixpc0NvbGxhcHNlZDpoPWwsb3JpZW50YXRpb246bX09ZSxwPSgwLGkudXNlQ2FsbGJhY2spKChlPT57ZihlKSxoKGUpfHxiKGUpfSksW2YsYixoXSksdj0hdSYmYz9hKG4sbi5maW5kSW5kZXgoZCkpOnZvaWQgMDtyZXR1cm4oMCxyLnVzZUtleWJvYXJkRXZlbnRIYW5kbGVyKShbKDAscy51c2VJdGVtc0tleWJvYXJkTmF2aWdhdGlvbikobSx0LG4sZCxwLHUse30sdm9pZCAwLHYpXSxvLGMpfShlKTpmdW5jdGlvbihlKXtjb25zdHtpc1J0bDp0LGl0ZW1zOm4scHJldmVudERlZmF1bHRJZkhhbmRsZWQ6bz0hMCxzdG9wUHJvcGFnYXRpb25JZkhhbmRsZWQ6bD0hMSxsb29wOmM9ITAsaXNIaWdobGlnaHRlZDp1LG9uSGlnaGxpZ2h0OmQsb25BY3RpdmF0ZTpmLG9yaWVudGF0aW9uOmJ9PWUsaD1uLmZpbmRJbmRleCh1KSxtPW5baF0scD0oMCxpLnVzZUNhbGxiYWNrKSgoKCk9Pnt2b2lkIDAhPT1tJiZmKG0pfSksW20sZl0pLHY9IWMmJmw/YShuLGgpOnZvaWQgMCxnPSgwLGkudXNlQ2FsbGJhY2spKChlPT5kKGUpKSxbZF0pLEk9KDAscy51c2VJdGVtc0tleWJvYXJkTmF2aWdhdGlvbikoYix0LG4sdSxnLGMse30sdm9pZCAwLHYpLEM9KDAsci51c2VLZXlib2FyZEFjdGlvbkhhbmRsZXIpKFsxMywzMl0scCk7cmV0dXJuKDAsci51c2VLZXlib2FyZEV2ZW50SGFuZGxlcikoW0ksQ10sbyxsKX0oZSl9fSw0NTQxNzQoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7dXNlVGFiczooKT0+ZH0pO3ZhciBpPW4oNzc5NDc0KTtmdW5jdGlvbiBvKGUsdD0iaG9yaXpvbnRhbCIsbixpLG8scil7cmV0dXJue2lkOmUscm9sZTpyPyJyYWRpb2dyb3VwIjoidGFibGlzdCIsImFyaWEtb3JpZW50YXRpb24iOnQsImFyaWEtbGFiZWwiOm8sImFyaWEtbGFiZWxsZWRieSI6aSwiYXJpYS1kaXNhYmxlZCI6bn19ZnVuY3Rpb24gcihlLHQsbixpLG8scixzLGwpe3JldHVybntpZDplLHJvbGU6cj8icmFkaW8iOiJ0YWIiLHRhYkluZGV4OnQ/bD8udGFiSW5kZXg/PzA6LTEsZGlzYWJsZWQ6bywiYXJpYS1zZWxlY3RlZCI6cj92b2lkIDA6biwiYXJpYS1jaGVja2VkIjpyP246dm9pZCAwLAoiYXJpYS1jb250cm9scyI6aSwiYXJpYS1kaXNhYmxlZCI6bywiYXJpYS1sYWJlbCI6cywiZGF0YS1mb2N1cy1tYW5hZ2VyIjp2b2lkIDAhPT1sP2xbImRhdGEtZm9jdXMtbWFuYWdlciJdOnZvaWQgMH19dmFyIHM9big4MzM5MDMpLGw9bigxNDU5ODQpLGE9big2NjI3NjEpLGM9big1OTE1NzIpLHU9big0MTgzODYpO2Z1bmN0aW9uIGQoZSl7Y29uc3R7aWQ6dCxpdGVtczpuLG9yaWVudGF0aW9uOmQsYWN0aXZhdGlvblR5cGU6Zj0ibWFudWFsIixkaXNhYmxlZDpiLHRhYmxpc3RMYWJlbElkOmgsdGFibGlzdExhYmVsOm0sZm9jdXNPbkhpZ2hsaWdodDpwPSEwLHByZXZlbnREZWZhdWx0SWZLZXlib2FyZEFjdGlvbkhhbmRsZWQ6dj0hMCxzdG9wUHJvcGFnYXRpb25JZktleWJvYXJkQWN0aW9uSGFuZGxlZDpnPSExLGtleWJvYXJkTmF2aWdhdGlvbkxvb3A6ST0hMCxzY3JvbGxJbnRvVmlld09wdGlvbnM6Qyxpc0FjdGl2ZTpSLG9uQWN0aXZhdGU6Uyxpc0NvbGxhcHNlZDprLGlzUnRsOnksaXNEaXNjbG9zdXJlT3BlbmVkOk0saXNSYWRpb0dyb3VwOkgsZGVmYXVsdEtleWJvYXJkRm9jdXM6QSxmb2N1c2FibGVJdGVtQXR0cmlidXRlczp3PXt9fT1lLFQ9KDAsdS51c2VNb2JpbGVUb3VjaFN0YXRlKSgpLEU9TT9udWxsOmR8fCJob3Jpem9udGFsIix4PSgwLGkudXNlUmVmKShlLml0ZW1zUmVmcz8uY3VycmVudD8/bmV3IE1hcCksW3osQl09KDAsaS51c2VTdGF0ZSkoKSxbXyxGXT0oMCxsLnVzZUZvY3VzKSgpLEs9bi5maW5kKFIpLFc9KDAsaS51c2VDYWxsYmFjaykoKGU9PmUuaWQ9PT16Py5pZCksW3pdKSxWPSgwLGkudXNlQ2FsbGJhY2spKChlPT57Y29uc3QgdD14LmN1cnJlbnQuZ2V0KGUuaWQpO3AmJnZvaWQgMCE9PXQmJnQhPT1kb2N1bWVudC5hY3RpdmVFbGVtZW50JiZ0LmZvY3VzKCl9KSxbcF0pLEQ9KDAsaS51c2VSZWYpKCksTz0oMCxpLnVzZUNhbGxiYWNrKSgoKGUsdCk9PntCKGUpLCJudW1iZXIiPT10eXBlb2YgdD8oY2xlYXJUaW1lb3V0KEQuY3VycmVudCksRC5jdXJyZW50PXNldFRpbWVvdXQoKCgpPT5WKGUpKSx0KSk6VihlKX0pLFtCLFZdKSxOPSgwLGkudXNlQ2FsbGJhY2spKChlPT57Ynx8ZS5kaXNhYmxlZHx8KFMoZSksVyhlKXx8TyhlKSl9KSxbYixTLFcsT10pLEw9KDAsYy51c2VUYWJzS2V5Ym9hcmROYXZpZ2F0aW9uKSh7aXNSdGw6eSxpdGVtczpuLGFjdGl2YXRpb25UeXBlOmYscHJldmVudERlZmF1bHRJZkhhbmRsZWQ6dixzdG9wUHJvcGFnYXRpb25JZkhhbmRsZWQ6Zyxsb29wOkksb25BY3RpdmF0ZTpOLGlzSGlnaGxpZ2h0ZWQ6VyxvbkhpZ2hsaWdodDpPLGlzQ29sbGFwc2VkOmssb3JpZW50YXRpb246RX0pOygwLGkudXNlRWZmZWN0KSgoKCk9PntUfHx2b2lkIDAhPT1LJiZCKEspfSksW0ssVF0pLCgwLGkudXNlRWZmZWN0KSgoKCk9PntffHxCKHZvaWQgMCl9KSxbX10pLCgwLGkudXNlRWZmZWN0KSgoKCk9PigpPT5jbGVhclRpbWVvdXQoRC5jdXJyZW50KSksW10pO2NvbnN0IFA9Qz8uYWRkaXRpb25hbFNjcm9sbD8/MCxbcSxYXT0oMCxhLnVzZUtlZXBBY3RpdmVJdGVtSW50b1ZpZXcpKHsuLi5DLHZpc2liaWxpdHlEZXRlY3Rpb25PZmZzZXRJbmxpbmU6UCsyNCxzbmFwVG9NaWRkbGU6ITAsYWN0aXZlSXRlbTp6Pz9LLGdldEtleTooMCxpLnVzZUNhbGxiYWNrKSgoZT0+ZS5pZCksW10pfSksVT0oMCxpLnVzZUNhbGxiYWNrKSgoKGUsdCk9PntudWxsIT09dD94LmN1cnJlbnQuc2V0KGUuaWQsdCk6eC5jdXJyZW50LmRlbGV0ZShlLmlkKSxYKGUsdCl9KSxbWF0pLHtmaXJzdEVkZ2VJdGVtSW5kZXg6RyxsYXN0RWRnZUl0ZW1JbmRleDpqfT1mdW5jdGlvbihlLHQpe2xldCBuLGk7Zm9yKGxldCBvPTA7bzxlLmxlbmd0aDtvKyspe2NvbnN0IHI9ZS5sZW5ndGgtKG8rMSkscz12b2lkIDAhPT10JiZ0KGVbcl0pO2lmKCFlW29dLmRpc2FibGVkJiZ2b2lkIDA9PT1uJiYobj1vKSwhZVtyXS5kaXNhYmxlZCYmIXMmJnZvaWQgMD09PWkmJihpPXIpLHZvaWQgMCE9PW4mJnZvaWQgMCE9PWkpYnJlYWt9cmV0dXJue2ZpcnN0RWRnZUl0ZW1JbmRleDpuLGxhc3RFZGdlSXRlbUluZGV4Oml9fShuLGspO3JldHVybnt0YWJzQmluZGluZ3M6bi5tYXAoKChlLHQpPT57Y29uc3Qgbj1XKGUpLGk9UihlKSxvPWUuZGlzYWJsZWQ/P2I/PyExLHM9MT09PUE/Xz9uOnQ9PT1HfHx0PT09ajpfP246aTtyZXR1cm57Li4ucihlLmlkLHMsaSxlLnRhYnBhbmVsSWQsbyxILGVbImFyaWEtbGFiZWwiXSx3KSxoaWdobGlnaHRlZDpuLGFjdGl2ZTppLGhhbmRsZUl0ZW1SZWY6VX19KSksdGFibGlzdEJpbmRpbmc6ey4uLm8odCxkLGIsaCxtLEgpLG9uQmx1cjpGLm9uQmx1cixvbkZvY3VzOigwLHMuY3JlYXRlU2FmZU11bHRpY2FzdEV2ZW50SGFuZGxlcikoRi5vbkZvY3VzLChlPT57bGV0IHQ9bnVsbDtmb3IoY29uc3RbaSxvXW9mIHguY3VycmVudC5lbnRyaWVzKCkpaWYoZS50YXJnZXQ9PT1vKXt0PW4uZmluZCgoZT0+ZS5pZD09PWkpKT8/bnVsbDticmVha310JiYhVyh0KSYmKCJhdXRvbWF0aWMiPT09ZiYmayYmIWsodCk/Tih0KTpPKHQpKX0pKSxvbktleURvd246TH0sc2Nyb2xsV3JhcEJpbmRpbmc6e3JlZjpxfSxvbkFjdGl2YXRlOk4sb25IaWdobGlnaHQ6Tyxpc0hpZ2hsaWdodGVkOld9fX0sODQ2ODU4KGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse3VzZVRhYnNNYWluSGFuZGxlcnM6KCk9Pmd9KTt2YXIgaT1uKDc3OTQ3NCksbz1uKDgzMzkwMykscj1uKDQxODM4Nikscz1uKDgwOTQzNiksbD1uKDcxNzkzMik7dmFyIGE9big4NjgzMzkpLGM9big0NTQxNzQpLHU9big0NTY0ODcpLGQ9bigzMTk2OSksZj1uKDc2MzU0OSksYj1uKDU2NzI2KSxoPW4oNTI5NDExKSxtPW4oNzE5NDI1KSxwPW4oNTg2MjIzKTt2YXIgdj1uKDM5NjQzMSk7ZnVuY3Rpb24gZyhlLHQsbil7CmNvbnN0e2lkOmcsaXRlbXM6SSxhY3RpdmF0aW9uVHlwZTpDLG9yaWVudGF0aW9uOlI9Imhvcml6b250YWwiLGRpc2FibGVkOlMsb25BY3RpdmF0ZTprLGlzQWN0aXZlOnksb3ZlcmZsb3dCZWhhdmlvdXI6TSxlbmFibGVBY3RpdmVTdGF0ZVN0eWxlczpILHRhYmxpc3RMYWJlbElkOkEsdGFibGlzdExhYmVsOncscHJldmVudERlZmF1bHRJZktleWJvYXJkQWN0aW9uSGFuZGxlZDpULHNpemU6RSxzdG9wUHJvcGFnYXRpb25JZktleWJvYXJkQWN0aW9uSGFuZGxlZDp4LGtleWJvYXJkTmF2aWdhdGlvbkxvb3A6eixkZWZhdWx0S2V5Ym9hcmRGb2N1czpCLGZvY3VzYWJsZUl0ZW1BdHRyaWJ1dGVzOl99PXQsRj0oMCxpLnVzZU1lbW8pKCgoKT0+KDAsdi50cmFuc2Zvcm1UYWJzV2l0aENvdW50ZXJzKShJLFMsRSkpLFtJLFMsRV0pLEs9KDAsci51c2VNb2JpbGVUb3VjaFN0YXRlKSgpLFc9ZnVuY3Rpb24oZSl7Y29uc3QgdD0oMCxsLnVzZVNhZmVNYXRjaE1lZGlhKShzWyJtZWRpYS1tZi1waG9uZS1sYW5kc2NhcGUiXSwhMCksbj0oMCxyLnVzZU1vYmlsZVRvdWNoU3RhdGUpKCk7cmV0dXJuIGU/PyhufHwhdD8ic2Nyb2xsIjoiY29sbGFwc2UiKX0oTSksVj0oMCxpLnVzZVJlZikoITEpLEQ9KDAsaS51c2VDYWxsYmFjaykoKGU9PmUuaWQpLFtdKSxPPUg/PyFLLE49KDAsYi51c2VGYWRlSW5Db250ZXh0KSgpLHt2aXNpYmxlSXRlbXM6TCxoaWRkZW5JdGVtczpQLGNvbnRhaW5lclJlZkNhbGxiYWNrOnEsaW5uZXJDb250YWluZXJSZWZDYWxsYmFjazpYLG1vcmVCdXR0b25SZWY6VSxzZXRJdGVtUmVmOkcsaXRlbXNNZWFzdXJlbWVudHM6an09KDAsYS51c2VDb2xsYXBzaWJsZSkoRixELHkpLEo9KDAscC51c2VQcmV2aW91cykoai5jdXJyZW50Py5jb250YWluZXJXaWR0aCk/PzAsUT0oMCxoLnVzZUlzTm9uRmlyc3RSZW5kZXIpKCksWT1qLmN1cnJlbnQ/LmNvbnRhaW5lcldpZHRoPz8wO2xldCBaPSExO2ouY3VycmVudCYmUSYmKFo9ZnVuY3Rpb24oZSx0LG4saSxvKXtpZigiY29sbGFwc2UiIT09aSlyZXR1cm4hMDtjb25zdCByPWZ1bmN0aW9uKGUsdCxuKXtjb25zdCBpPWUuZmlsdGVyKChlPT50LmZpbmQoKHQ9PnQuaWQ9PT1lWzBdKSkpKTtyZXR1cm4gdC5sZW5ndGg+MD9pWzBdWzFdK246MH0oQXJyYXkuZnJvbShlLndpZHRoc01hcC5lbnRyaWVzKCkpLHQsbykscz1lLm1vcmVCdXR0b25XaWR0aD8/MDtsZXQgbD1mdW5jdGlvbihlLHQpe3JldHVybiBlLnJlZHVjZSgoKGUsbik9PmUrKHQuZ2V0KG4uaWQpPz8wKSksMCl9KG4sZS53aWR0aHNNYXApO3JldHVybiBsKz10Lmxlbmd0aD4wP3M6MCxmdW5jdGlvbihlLHQsbixpKXtyZXR1cm4gMCE9PWU/dC1uPGUmJnQtbj5pOm48dH0ocixlLmNvbnRhaW5lcldpZHRoLGwsbyl9KGouY3VycmVudCxQLEwsVyxuLmdhcD8/MCl8fDA9PT1ZKTtjb25zdCAkPSgwLG0udXNlUmVzaXplT2JzZXJ2ZXIpKCgoW2VdKT0+e3JlcXVlc3RBbmltYXRpb25GcmFtZSgoKCk9PntRJiZaJiZlLmNvbnRlbnRSZWN0LndpZHRoPT09SiYmTigpfSkpfSkpLGVlPSJjb2xsYXBzZSI9PT1XP0w6Rix0ZT0oMCxpLnVzZU1lbW8pKCgoKT0+ImNvbGxhcHNlIj09PVc/UDpbXSksW1csUF0pLG5lPSgwLGkudXNlQ2FsbGJhY2spKChlPT50ZS5pbmNsdWRlcyhlKSksW3RlXSkse2lzT3BlbmVkOmllLG9wZW46b2UsY2xvc2U6cmUsb25CdXR0b25DbGljazpzZX09KDAsdS51c2VEaXNjbG9zdXJlKSh7aWQ6ZyxkaXNhYmxlZDpTfSkse3RhYnNCaW5kaW5nczpsZSx0YWJsaXN0QmluZGluZzphZSxzY3JvbGxXcmFwQmluZGluZzpjZSxvbkFjdGl2YXRlOnVlLG9uSGlnaGxpZ2h0OmRlLGlzSGlnaGxpZ2h0ZWQ6ZmV9PSgwLGMudXNlVGFicykoe2lkOmcsaXRlbXM6Wy4uLmVlLC4uLnRlXSxhY3RpdmF0aW9uVHlwZTpDLG9yaWVudGF0aW9uOlIsZGlzYWJsZWQ6Uyx0YWJsaXN0TGFiZWxJZDpBLHRhYmxpc3RMYWJlbDp3LHByZXZlbnREZWZhdWx0SWZLZXlib2FyZEFjdGlvbkhhbmRsZWQ6VCxzY3JvbGxJbnRvVmlld09wdGlvbnM6bi5zY3JvbGxJbnRvVmlld09wdGlvbnMsb25BY3RpdmF0ZTprLGlzQWN0aXZlOnksaXNDb2xsYXBzZWQ6bmUsaXNSdGw6bi5pc1J0bCxpc0Rpc2Nsb3N1cmVPcGVuZWQ6aWUsaXNSYWRpb0dyb3VwOm4uaXNSYWRpb0dyb3VwLHN0b3BQcm9wYWdhdGlvbklmS2V5Ym9hcmRBY3Rpb25IYW5kbGVkOngsa2V5Ym9hcmROYXZpZ2F0aW9uTG9vcDp6LGRlZmF1bHRLZXlib2FyZEZvY3VzOkIsZm9jdXNhYmxlSXRlbUF0dHJpYnV0ZXM6X30pLGJlPXRlLmZpbmQoZmUpLGhlPSgwLGkudXNlQ2FsbGJhY2spKCgoKT0+e2NvbnN0IGU9Ri5maW5kKHkpO2UmJmRlKGUpfSksW2RlLHksRl0pLG1lPSgwLGkudXNlQ2FsbGJhY2spKCgoKT0+e3JlKCksaGUoKSxWLmN1cnJlbnQ9ITB9KSxbcmUsaGVdKSxwZT0oMCxpLnVzZUNhbGxiYWNrKSgoKCk9PntiZSYmKHVlKGJlKSxkZShiZSwyNTApKX0pLFt1ZSxkZSxiZV0pO2NlLnJlZj0oMCxkLnVzZU1lcmdlZFJlZnMpKFskLGNlLnJlZixxXSksYWUucmVmPSgwLGQudXNlTWVyZ2VkUmVmcykoW2FlLnJlZixYXSksYWUub25LZXlEb3duPSgwLG8uY3JlYXRlU2FmZU11bHRpY2FzdEV2ZW50SGFuZGxlcikoKDAsZi51c2VLZXlib2FyZEV2ZW50SGFuZGxlcikoWygwLGYudXNlS2V5Ym9hcmRDbG9zZSkoaWUsbWUpLCgwLGYudXNlS2V5Ym9hcmRBY3Rpb25IYW5kbGVyKShbMTMsMzJdLHBlLCgwLGkudXNlQ2FsbGJhY2spKCgoKT0+Qm9vbGVhbihiZSkpLFtiZV0pKV0sVCksYWUub25LZXlEb3duKTtjb25zdCB2ZT0oMCxpLnVzZUNhbGxiYWNrKSgoZT0+e1YuY3VycmVudD0hMCxzZShlKX0pLFtWLHNlXSksZ2U9KDAsaS51c2VDYWxsYmFjaykoKGU9PntlJiZ1ZShlKX0pLFt1ZV0pO3JldHVybigwLGkudXNlRWZmZWN0KSgoKCk9PntWLmN1cnJlbnQ/Vi5jdXJyZW50PSExOmJlJiYhaWU/b2UoKTohYmUmJmllJiZyZSgpfSksW2JlLGllLG9lLHJlXSkse2VuYWJsZUFjdGl2ZVN0YXRlU3R5bGVzOk8sbW9yZUJ1dHRvblJlZjpVLHNldEl0ZW1SZWY6RyxnZXRCaW5kaW5nczplPT5sZS5maW5kKCh0PT50LmlkPT09ZS5pZCkpLGhhbmRsZU1vcmVCdXR0b25DbGljazp2ZSwKaGFuZGxlQ29sbGFwc2VkSXRlbUNsaWNrOmdlLHNjcm9sbFdyYXBCaW5kaW5nOmNlLG92ZXJmbG93QmVoYXZpb3VyOlcsdGFibGlzdEJpbmRpbmc6YWUsdmlzaWJsZVRhYnM6ZWUsaGlkZGVuVGFiczp0ZSxoYW5kbGVBY3RpdmF0ZTp1ZSxpc01vYmlsZVRvdWNoOkssZ2V0SXRlbUlkOkQsaXNEaXNjbG9zdXJlT3BlbmVkOmllLGlzSGlnaGxpZ2h0ZWQ6ZmUsY2xvc2VEaXNjbG9zdXJlOnJlfX19LDM5NjQzMShlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtjb3VudGVyU2l6ZUZyb21TcXVhcmVUYWJzU2l6ZTooKT0+cyxnZXRUYWJDb3VudGVyOigpPT5yLHRyYW5zZm9ybVRhYnNXaXRoQ291bnRlcnM6KCk9Pmx9KTt2YXIgaT1uKDc3OTQ3NCksbz1uKDcyMTkxMCk7ZnVuY3Rpb24gcih7Y291bnQ6ZSxjb2xvcjp0PSJkYW5nZXIiLHNpemU6bj0ieHNtYWxsIixkaXNhYmxlZDpyfSl7cmV0dXJuIGkuY3JlYXRlRWxlbWVudChvLkNvdW50ZXIseyJhcmlhLWxhYmVsIjoiVGFiIGNvdW50ZXIiLGNvdW50OmUsc2l6ZTpuLGNvbG9yOnQsYm9yZGVyQ29sb3I6InByaW1hcnkiLGRpc2FibGVkOnJ9KX1mdW5jdGlvbiBzKGUpe3JldHVybnt4c21hbGw6InhzbWFsbCIsc21hbGw6InNtYWxsIixtZWRpdW06Im1lZGl1bSIsbWVkaXVtV2l0aFNtYWxsRm9udDoibWVkaXVtIix4bGFyZ2U6ImxhcmdlIn1bZV19ZnVuY3Rpb24gbChlLHQsbil7cmV0dXJuIGUubWFwKChlPT57Y29uc3QgaT1lLmNvdW50ZXI7cmV0dXJuIGk/ey4uLmUsZW5kVXBwZXJTbG90OnIoe2NvdW50OmkuY291bnQsY29sb3I6aS5jb2xvcixzaXplOnMobiksZGlzYWJsZWQ6dH0pLGNvdW50ZXI6dm9pZCAwfTplfSkpfX0sMjEyMTI1KGUsdCxuKXsidXNlIHN0cmljdCI7dmFyIGksbyxyLHMsbDtuLmQodCx7VGFiTmFtZXM6KCk9Pmx9KSxmdW5jdGlvbihlKXtlW2UuQWN0aXZlPTBdPSJBY3RpdmUiLGVbZS5FZGdlcz0xXT0iRWRnZXMifShpfHwoaT17fSkpLGZ1bmN0aW9uKGUpe2UuSG9yaXpvbnRhbD0iaG9yaXpvbnRhbCIsZS5WZXJ0aWNhbD0idmVydGljYWwifShvfHwobz17fSkpLGZ1bmN0aW9uKGUpe2UuQXV0b21hdGljPSJhdXRvbWF0aWMiLGUuTWFudWFsPSJtYW51YWwifShyfHwocj17fSkpLGZ1bmN0aW9uKGUpe2UuQ29sbGFwc2U9ImNvbGxhcHNlIixlLlNjcm9sbD0ic2Nyb2xsIixlLldyYXA9IndyYXAiLGUuTm9uZT0ibm9uZSJ9KHN8fChzPXt9KSksZnVuY3Rpb24oZSl7ZS5TcXVhcmVCdXR0b25UYWJzPSJzcXVhcmUtYnV0dG9uLXRhYnMiLGUuVW5kZXJsaW5lQnV0dG9uVGFicz0idW5kZXJsaW5lLWJ1dHRvbi10YWJzIixlLlVuZGVybGluZUFuY2hvclRhYnM9InVuZGVybGluZS1hbmNob3ItdGFicyIsZS5Sb3VuZEFuY2hvclRhYnM9InJvdW5kLWFuY2hvci10YWJzIixlLlJvdW5kQnV0dG9uVGFicz0icm91bmQtYnV0dG9uLXRhYnMiLGUuTGlnaHRCdXR0b25UYWJzPSJsaWdodC1idXR0b24tdGFicyJ9KGx8fChsPXt9KSl9LDIzNDI5MihlLHQsbil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGkoZSx0LG49MCl7Y29uc3QgaT1lLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLG89dC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtyZXR1cm4gaS50b3Atby50b3A+PTAmJm8uYm90dG9tLWkuYm90dG9tPj0wJiZpLmxlZnQtby5sZWZ0Pj1uJiZvLnJpZ2h0LWkucmlnaHQ+PW59bi5kKHQse2lzRWxlbWVudEluVmlldzooKT0+aX0pfSw4NjY3NDMoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7U2Nyb2xsSW50b1ZpZXdIZWxwZXI6KCk9PmN9KTt2YXIgaT1uKDk1MDE5NCksbz1uKDIzNDI5Mik7Y29uc3Qgcj17ZHVyYXRpb246MjAwLGFkZGl0aW9uYWxTY3JvbGw6MH0scz17dmVydGljYWw6e3Njcm9sbFNpemU6InNjcm9sbEhlaWdodCIsY2xpZW50U2l6ZToiY2xpZW50SGVpZ2h0IixzdGFydDoidG9wIixlbmQ6ImJvdHRvbSIsc2l6ZToiaGVpZ2h0In0saG9yaXpvbnRhbDp7c2Nyb2xsU2l6ZToic2Nyb2xsV2lkdGgiLGNsaWVudFNpemU6ImNsaWVudFdpZHRoIixzdGFydDoibGVmdCIsZW5kOiJyaWdodCIsc2l6ZToid2lkdGgifX07ZnVuY3Rpb24gbChlLHQpe2NvbnN0IG49c1tlXTtyZXR1cm4gdFtuLnNjcm9sbFNpemVdPnRbbi5jbGllbnRTaXplXX1mdW5jdGlvbiBhKGUsdCxuLG8scixsKXtjb25zdCBhPWZ1bmN0aW9uKGUsdCxuLGk9MCl7Y29uc3Qgbz1zW2VdO3JldHVybntzdGFydDotMSppLG1pZGRsZTotMSooTWF0aC5mbG9vcihuW28uc2l6ZV0vMiktTWF0aC5mbG9vcih0W28uc2l6ZV0vMikpLGVuZDotMSoobltvLnNpemVdLXRbby5zaXplXSkraX19KGUsbyxyLGwuYWRkaXRpb25hbFNjcm9sbCk7bGV0IGM9MDtpZihsLnNuYXBUb01pZGRsZXx8ZnVuY3Rpb24oZSx0LG4pe2NvbnN0IGk9c1tlXTtyZXR1cm4gdFtpLnN0YXJ0XTxuW2kuc3RhcnRdLW5baS5zaXplXS8yfHx0W2kuZW5kXT5uW2kuZW5kXStuW2kuc2l6ZV0vMn0oZSxvLHIpKWM9YS5taWRkbGU7ZWxzZXtjb25zdCB0PWZ1bmN0aW9uKGUsdCxuLGk9MCl7Y29uc3Qgbz1zW2VdLHI9dFtvLnN0YXJ0XStNYXRoLmZsb29yKHRbby5zaXplXS8yKSxsPW5bby5zdGFydF0rTWF0aC5mbG9vcihuW28uc2l6ZV0vMik7cmV0dXJue3N0YXJ0OnRbby5zdGFydF0tbltvLnN0YXJ0XS1pLG1pZGRsZTpyLWwsZW5kOnRbby5lbmRdLW5bby5lbmRdK2l9fShlLG8scixsLmFkZGl0aW9uYWxTY3JvbGwpLG49ZnVuY3Rpb24oZSl7Y29uc3R7c3RhcnQ6dCxtaWRkbGU6bixlbmQ6aX09ZSxvPW5ldyBNYXAoW1tNYXRoLmFicyh0KSx7a2V5OiJzdGFydCIsdmFsdWU6TWF0aC5zaWduKHQpfV0sW01hdGguYWJzKG4pLHtrZXk6Im1pZGRsZSIsdmFsdWU6TWF0aC5zaWduKG4pfV0sW01hdGguYWJzKGkpLHtrZXk6ImVuZCIsdmFsdWU6TWF0aC5zaWduKGkpfV1dKSxyPU1hdGgubWluKC4uLm8ua2V5cygpKTtyZXR1cm4gby5nZXQocil9KHQpO2M9dm9pZCAwIT09bj9hW24ua2V5XTowfXJldHVybiBsLmFsaWduJiYoYz1hW2wuYWxpZ25dKSwoMCxpLnNjcm9sbFRvKSh7Li4ubCx0YXJnZXQ6dCx0YXJnZXRSZWN0Om8sd3JhcDpuLHdyYXBSZWN0OnIsYWRkaXRpb25hbFNjcm9sbDpjLGRpcmVjdGlvbjplfSl9Y2xhc3MgY3sKY29uc3RydWN0b3IoZT1udWxsKXt0aGlzLl9jb250YWluZXI9bnVsbCx0aGlzLl9sYXN0U2Nyb2xsZWRFbGVtZW50PW51bGwsdGhpcy5fc3RvcFZlcnRpY2FsU2Nyb2xsPW51bGwsdGhpcy5fc3RvcEhvcml6b250YWxTY3JvbGw9bnVsbCx0aGlzLl9jb250YWluZXI9ZX1zY3JvbGxUbyhlLHQ9cil7aWYobnVsbCE9PXRoaXMuX2NvbnRhaW5lciYmbnVsbCE9PWUmJiEoMCxvLmlzRWxlbWVudEluVmlldykoZSx0aGlzLl9jb250YWluZXIsdC52aXNpYmlsaXR5RGV0ZWN0aW9uT2Zmc2V0SW5saW5lKSl7Y29uc3Qgbj1lLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLGk9dGhpcy5fY29udGFpbmVyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3RoaXMuc3RvcFNjcm9sbCgpLGwoInZlcnRpY2FsIix0aGlzLl9jb250YWluZXIpJiYodGhpcy5fc3RvcFZlcnRpY2FsU2Nyb2xsPWEoInZlcnRpY2FsIixlLHRoaXMuX2NvbnRhaW5lcixuLGksdGhpcy5fbW9kaWZ5T3B0aW9ucygidmVydGljYWwiLHQpKSksbCgiaG9yaXpvbnRhbCIsdGhpcy5fY29udGFpbmVyKSYmKHRoaXMuX3N0b3BIb3Jpem9udGFsU2Nyb2xsPWEoImhvcml6b250YWwiLGUsdGhpcy5fY29udGFpbmVyLG4saSx0aGlzLl9tb2RpZnlPcHRpb25zKCJob3Jpem9udGFsIix0KSkpfXRoaXMuX2xhc3RTY3JvbGxlZEVsZW1lbnQ9ZX1zY3JvbGxUb0xhc3RFbGVtZW50KGUpe3RoaXMuc2Nyb2xsVG8odGhpcy5fbGFzdFNjcm9sbGVkRWxlbWVudCxlKX1zdG9wU2Nyb2xsKCl7bnVsbCE9PXRoaXMuX3N0b3BWZXJ0aWNhbFNjcm9sbCYmdGhpcy5fc3RvcFZlcnRpY2FsU2Nyb2xsKCksbnVsbCE9PXRoaXMuX3N0b3BIb3Jpem9udGFsU2Nyb2xsJiZ0aGlzLl9zdG9wSG9yaXpvbnRhbFNjcm9sbCgpfWdldENvbnRhaW5lcigpe3JldHVybiB0aGlzLl9jb250YWluZXJ9c2V0Q29udGFpbmVyKGUpe3RoaXMuX2NvbnRhaW5lcj1lLHRoaXMuX2NvbnRhaW5lcj8uY29udGFpbnModGhpcy5fbGFzdFNjcm9sbGVkRWxlbWVudCl8fCh0aGlzLl9sYXN0U2Nyb2xsZWRFbGVtZW50PW51bGwpfWRlc3Ryb3koKXt0aGlzLnN0b3BTY3JvbGwoKSx0aGlzLl9jb250YWluZXI9bnVsbCx0aGlzLl9sYXN0U2Nyb2xsZWRFbGVtZW50PW51bGx9X2hhbmRsZVNjcm9sbEVuZChlKXsidmVydGljYWwiPT09ZT90aGlzLl9zdG9wVmVydGljYWxTY3JvbGw9bnVsbDp0aGlzLl9zdG9wSG9yaXpvbnRhbFNjcm9sbD1udWxsfV9tb2RpZnlPcHRpb25zKGUsdCl7cmV0dXJuIE9iamVjdC5hc3NpZ24oe30sdCx7b25TY3JvbGxFbmQ6KCk9Pnt0aGlzLl9oYW5kbGVTY3JvbGxFbmQoZSksdm9pZCAwIT09dC5vblNjcm9sbEVuZCYmdC5vblNjcm9sbEVuZCgpfX0pfX19LDk1MDE5NChlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtzY3JvbGxUbzooKT0+b30pO3ZhciBpPW4oMjE4ODE0KTtmdW5jdGlvbiBvKGUpe2NvbnN0e2FkZGl0aW9uYWxTY3JvbGw6dD0wLGR1cmF0aW9uOm49aS5kdXIsZnVuYzpvPWkuZWFzaW5nRnVuYy5lYXNlSW5PdXRDdWJpYyxvblNjcm9sbEVuZDpyLHRhcmdldDpzLHdyYXA6bCxkaXJlY3Rpb246YT0idmVydGljYWwifT1lO2xldHt0YXJnZXRSZWN0OmMsd3JhcFJlY3Q6dX09ZTtjPWM/P3MuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksdT11Pz9sLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO2NvbnN0IGQ9KCJ2ZXJ0aWNhbCI9PT1hP2MudG9wLXUudG9wOmMubGVmdC11LmxlZnQpK3QsZj0idmVydGljYWwiPT09YT8ic2Nyb2xsVG9wIjoic2Nyb2xsTGVmdCIsYj1sP2xbZl06MDtsZXQgaCxtPTA7cmV0dXJuIG09d2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSgoZnVuY3Rpb24gZSh0KXtsZXQgaTtpZihoP2k9dC1oOihpPTAsaD10KSxpPj1uKXJldHVybiBsW2ZdPWIrZCx2b2lkKHImJnIoKSk7Y29uc3Qgcz1iK2QqbyhpL24pO2xbZl09TWF0aC5mbG9vcihzKSxtPXdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZSl9KSksZnVuY3Rpb24oKXt3aW5kb3cuY2FuY2VsQW5pbWF0aW9uRnJhbWUobSksciYmcigpfX19fV0pOw=="}},"time_used":3,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":3,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"translate.googleapis.com/element/log?format=json\u0026hasfast=true\u0026authuser=0","fqdn":"translate.googleapis.com","domain":"translate.googleapis.com","tld":"googleapis.com"},"ip":{"addr":"142.250.178.106","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"fetch","requested_by":"https://digital-assettrade.com/","date":"2026-07-27T10:27:23.660Z","timestamp":1785148043660,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_256_GCM_SHA384","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"upload.video.google.com","organization":""},"issuer":{"commonName":"WE2","organization":"Google Trust Services"},"validity":{"start":"Mon, 29 Jun 2026 08:39:27 GMT","end":"Mon, 21 Sep 2026 08:39:26 GMT"},"fingerprint":{"sha1":"50:37:CF:61:33:A1:EE:47:D9:3D:A6:5E:07:BA:4C:FF:F7:25:9F:76","sha256":"7D:4D:21:06:63:E2:5E:F0:8C:59:8E:EB:B7:94:2B:81:70:11:D3:F4:C0:A0:81:A6:1B:E7:27:FD:56:10:1A:11"}}},"request":{"raw":"OPTIONS /element/log?format=json\u0026hasfast=true\u0026authuser=0 HTTP/1.1\r\nHost: translate.googleapis.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\nAccess-Control-Request-Method: POST\r\nAccess-Control-Request-Headers: content-encoding,content-type,x-goog-authuser\r\nReferer: https://digital-assettrade.com/\r\nOrigin: https://digital-assettrade.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: empty\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=6\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"OPTIONS"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: https://digital-assettrade.com\r\naccess-control-allow-methods: GET, POST, OPTIONS\r\naccess-control-max-age: 86400\r\naccess-control-allow-credentials: true\r\naccess-control-allow-headers: X-Playlog-Web,authorization,content-encoding,content-type,x-goog-authuser,origin\r\ncontent-type: text/plain; charset=UTF-8\r\ndate: Mon, 27 Jul 2026 10:27:23 GMT\r\nserver: Playlog\r\ncontent-length: 0\r\nx-xss-protection: 0\r\nx-frame-options: SAMEORIGIN\r\nalt-svc: h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":null,"data":{"size":0,"size_decoded":530,"mime_type":"text/plain; charset=UTF-8","magic":"","md5":"d41d8cd98f00b204e9800998ecf8427e","sha1":"da39a3ee5e6b4b0d3255bfef95601890afd80709","sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha512":"cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e","ssdeep":"","tlshash":"","first_seen":"0001-01-01T00:00:00Z","last_seen":"2026-07-27T13:01:10.036638Z","times_seen":17563461,"resource_available":true,"data":""}},"time_used":31,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":31,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/89044.122886591db3fa6fdc03.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:13.908Z","timestamp":1785148033908,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/89044.122886591db3fa6fdc03.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:13 GMT\r\ncontent-type: text/css; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a608300-20da\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Wed, 22 Jul 2026 08:44:48 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/22/2026 11:01:21\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 9b99174f20a4356639717769b2d3aab9\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":8410,"size_decoded":1653,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with very long lines (8410), with no line terminators","md5":"d899c42dfb29ba1d8f8fc0f1e2b5cc00","sha1":"6ce7cc3eb3c8a94d03f0c12ff43b89ab13091bed","sha256":"5a3314d5c89727aff3426af5332b4c993aa516924153a2e614a7c9f48388e29c","sha512":"30c065a6fb6b82f89ea006b3367e4933eab1a6dbc5d5e2718058a7b0687755d5138f9e34c64646365a7b5d7503ec191016cd0ca012194d8ddfe911ab16a5ba75","ssdeep":"192:WMfEuIn0/i43AoFOMfEuIn0/i43AoFUaaQloN:WMQnA3AMQnA3maaQloN","tlshash":"f502e79de75851768ada97ae337d966c43166543ff008aa97f31c00210c6ff2ed8ba0d","first_seen":"2026-07-22T16:00:00.399176Z","last_seen":"2026-07-27T12:48:39.798673Z","times_seen":105,"resource_available":false,"data":"W2RhdGEtdGhlbWU9bGlnaHRdey0tXzAtWER2Ujp2YXIoLS1jb2xvci1jb2xkLWdyYXktMjUwKTstLV8xLVhEdlI6dmFyKC0tY29sb3ItY29sZC1ncmF5LTI1MCk7LS1fMi1YRHZSOnZhcigtLWNvbG9yLWNvbGQtZ3JheS02NTApOy0tXzMtWER2Ujp2YXIoLS1jb2xvci1jb2xkLWdyYXktMzAwKTstLV80LVhEdlI6dmFyKC0tY29sb3ItY29sZC1ncmF5LTMwMCk7LS1fNS1YRHZSOnZhcigtLWNvbG9yLWNvbGQtZ3JheS02MDApOy0tXzYtWER2Ujp2YXIoLS1jb2xvci1yaXBlLXJlZC1hMjAwKTstLV83LVhEdlI6dmFyKC0tY29sb3ItcmlwZS1yZWQtNTAwKTstLV84LVhEdlI6dmFyKC0tY29sb3ItdHYtYmx1ZS1hNDAwKTstLV85LVhEdlI6dmFyKC0tY29sb3ItdHYtYmx1ZS05MDApOy0tXzEwLVhEdlI6dmFyKC0tY29sb3ItaWd1YW5hLWdyZWVuLTMwMCk7LS1fMTEtWER2Ujp2YXIoLS1jb2xvci1pZ3VhbmEtZ3JlZW4tNjAwKTstLV8xMi1YRHZSOnZhcigtLWNvbG9yLWJhbmFuYS15ZWxsb3ctNzAwKTstLV8xMy1YRHZSOnZhcigtLWNvbG9yLWJhbmFuYS15ZWxsb3ctOTAwKTstLV8xNC1YRHZSOnZhcigtLWNvbG9yLWdyYXBlcy1wdXJwbGUtMzAwKTstLV8xNS1YRHZSOnZhcigtLWNvbG9yLWdyYXBlcy1wdXJwbGUtNzAwKTstLV8xNi1YRHZSOnZhcigtLWNvbG9yLXNreS1ibHVlLWE0MDApOy0tXzE3LVhEdlI6dmFyKC0tY29sb3Itc2t5LWJsdWUtYTcwMCk7LS1fMTgtWER2Ujp2YXIoLS1jb2xvci1iZXJyeS1waW5rLTIwMCk7LS1fMTktWER2Ujp2YXIoLS1jb2xvci1iZXJyeS1waW5rLTQwMCk7LS1fMjAtWER2Ujp2YXIoLS1jb2xvci1yaXBlLXJlZC1hMjAwKTstLV8yMS1YRHZSOnZhcigtLWNvbG9yLXJpcGUtcmVkLTUwMCk7LS1fMjItWER2Ujp2YXIoLS1jb2xvci10di1ibHVlLWE0MDApOy0tXzIzLVhEdlI6dmFyKC0tY29sb3ItdHYtYmx1ZS05MDApOy0tXzI0LVhEdlI6dmFyKC0tY29sb3ItaWd1YW5hLWdyZWVuLTMwMCk7LS1fMjUtWER2Ujp2YXIoLS1jb2xvci1pZ3VhbmEtZ3JlZW4tNjAwKTstLV8yNi1YRHZSOnZhcigtLWNvbG9yLWJhbmFuYS15ZWxsb3ctNzAwKTstLV8yNy1YRHZSOnZhcigtLWNvbG9yLWJhbmFuYS15ZWxsb3ctOTAwKTstLV8yOC1YRHZSOnZhcigtLWNvbG9yLWdyYXBlcy1wdXJwbGUtMzAwKTstLV8yOS1YRHZSOnZhcigtLWNvbG9yLWdyYXBlcy1wdXJwbGUtNzAwKTstLV8zMC1YRHZSOnZhcigtLWNvbG9yLXNreS1ibHVlLWE0MDApOy0tXzMxLVhEdlI6dmFyKC0tY29sb3Itc2t5LWJsdWUtYTcwMCk7LS1fMzItWER2Ujp2YXIoLS1jb2xvci1iZXJyeS1waW5rLTIwMCk7LS1fMzMtWER2Ujp2YXIoLS1jb2xvci1iZXJyeS1waW5rLTQwMCk7LS1fMzQtWER2Ujp2YXIoLS1jb2xvci1yaXBlLXJlZC1hMjAwKTstLV8zNS1YRHZSOnZhcigtLWNvbG9yLXJpcGUtcmVkLTUwMCk7LS1fMzYtWER2Ujp2YXIoLS1jb2xvci10di1ibHVlLWE0MDApOy0tXzM3LVhEdlI6dmFyKC0tY29sb3ItdHYtYmx1ZS05MDApOy0tXzM4LVhEdlI6dmFyKC0tY29sb3ItaWd1YW5hLWdyZWVuLTMwMCk7LS1fMzktWER2Ujp2YXIoLS1jb2xvci1pZ3VhbmEtZ3JlZW4tNjAwKTstLV80MC1YRHZSOnZhcigtLWNvbG9yLWJhbmFuYS15ZWxsb3ctNzAwKTstLV80MS1YRHZSOnZhcigtLWNvbG9yLWJhbmFuYS15ZWxsb3ctOTAwKTstLV80Mi1YRHZSOnZhcigtLWNvbG9yLWdyYXBlcy1wdXJwbGUtMzAwKTstLV80My1YRHZSOnZhcigtLWNvbG9yLWdyYXBlcy1wdXJwbGUtNzAwKTstLV80NC1YRHZSOnZhcigtLWNvbG9yLXNreS1ibHVlLWE0MDApOy0tXzQ1LVhEdlI6dmFyKC0tY29sb3Itc2t5LWJsdWUtYTcwMCk7LS1fNDYtWER2Ujp2YXIoLS1jb2xvci1iZXJyeS1waW5rLTIwMCk7LS1fNDctWER2Ujp2YXIoLS1jb2xvci1iZXJyeS1waW5rLTQwMCl9W2RhdGEtdGhlbWU9ZGFya117LS1fMC1YRHZSOnZhcigtLWNvbG9yLWNvbGQtZ3JheS02NTApOy0tXzEtWER2Ujp2YXIoLS1jb2xvci1jb2xkLWdyYXktMjUwKTstLV8yLVhEdlI6dmFyKC0tY29sb3ItY29sZC1ncmF5LTY1MCk7LS1fMy1YRHZSOnZhcigtLWNvbG9yLWNvbGQtZ3JheS02MDApOy0tXzQtWER2Ujp2YXIoLS1jb2xvci1jb2xkLWdyYXktMzAwKTstLV81LVhEdlI6dmFyKC0tY29sb3ItY29sZC1ncmF5LTYwMCk7LS1fNi1YRHZSOnZhcigtLWNvbG9yLXJpcGUtcmVkLWEyMDApOy0tXzctWER2Ujp2YXIoLS1jb2xvci1yaXBlLXJlZC01MDApOy0tXzgtWER2Ujp2YXIoLS1jb2xvci10di1ibHVlLWE0MDApOy0tXzktWER2Ujp2YXIoLS1jb2xvci10di1ibHVlLTkwMCk7LS1fMTAtWER2Ujp2YXIoLS1jb2xvci1pZ3VhbmEtZ3JlZW4tMzAwKTstLV8xMS1YRHZSOnZhcigtLWNvbG9yLWlndWFuYS1ncmVlbi02MDApOy0tXzEyLVhEdlI6dmFyKC0tY29sb3ItYmFuYW5hLXllbGxvdy03MDApOy0tXzEzLVhEdlI6dmFyKC0tY29sb3ItYmFuYW5hLXllbGxvdy05MDApOy0tXzE0LVhEdlI6dmFyKC0tY29sb3ItZ3JhcGVzLXB1cnBsZS0zMDApOy0tXzE1LVhEdlI6dmFyKC0tY29sb3ItZ3JhcGVzLXB1cnBsZS03MDApOy0tXzE2LVhEdlI6dmFyKC0tY29sb3Itc2t5LWJsdWUtYTQwMCk7LS1fMTctWER2Ujp2YXIoLS1jb2xvci1za3ktYmx1ZS1hNzAwKTstLV8xOC1YRHZSOnZhcigtLWNvbG9yLWJlcnJ5LXBpbmstMjAwKTstLV8xOS1YRHZSOnZhcigtLWNvbG9yLWJlcnJ5LXBpbmstNDAwKTstLV8yMC1YRHZSOnZhcigtLWNvbG9yLXJpcGUtcmVkLWEyMDApOy0tXzIxLVhEdlI6dmFyKC0tY29sb3ItcmlwZS1yZWQtNTAwKTstLV8yMi1YRHZSOnZhcigtLWNvbG9yLXR2LWJsdWUtYTQwMCk7LS1fMjMtWER2Ujp2YXIoLS1jb2xvci10di1ibHVlLTkwMCk7LS1fMjQtWER2Ujp2YXIoLS1jb2xvci1pZ3VhbmEtZ3JlZW4tMzAwKTstLV8yNS1YRHZSOnZhcigtLWNvbG9yLWlndWFuYS1ncmVlbi02MDApOy0tXzI2LVhEdlI6dmFyKC0tY29sb3ItYmFuYW5hLXllbGxvdy03MDApOy0tXzI3LVhEdlI6dmFyKC0tY29sb3ItYmFuYW5hLXllbGxvdy05MDApOy0tXzI4LVhEdlI6dmFyKC0tY29sb3ItZ3JhcGVzLXB1cnBsZS0zMDApOy0tXzI5LVhEdlI6dmFyKC0tY29sb3ItZ3JhcGVzLXB1cnBsZS03MDApOy0tXzMwLVhEdlI6dmFyKC0tY29sb3Itc2t5LWJsdWUtYTQwMCk7LS1fMzEtWER2Ujp2YXIoLS1jb2xvci1za3ktYmx1ZS1hNzAwKTstLV8zMi1YRHZSOnZhcigtLWNvbG9yLWJlcnJ5LXBpbmstMjAwKTstLV8zMy1YRHZSOnZhcigtLWNvbG9yLWJlcnJ5LXBpbmstNDAwKTstLV8zNC1YRHZSOnZhcigtLWNvbG9yLXJpcGUtcmVkLWEyMDApOy0tXzM1LVhEdlI6dmFyKC0tY29sb3ItcmlwZS1yZWQtNTAwKTstLV8zNi1YRHZSOnZhcigtLWNvbG9yLXR2LWJsdWUtYTQwMCk7LS1fMzctWER2Ujp2YXIoLS1jb2xvci10di1ibHVlLTkwMCk7LS1fMzgtWER2Ujp2YXIoLS1jb2xvci1pZ3VhbmEtZ3JlZW4tMzAwKTstLV8zOS1YRHZSOnZhcigtLWNvbG9yLWlndWFuYS1ncmVlbi02MDApOy0tXzQwLVhEdlI6dmFyKC0tY29sb3ItYmFuYW5hLXllbGxvdy03MDApOy0tXzQxLVhEdlI6dmFyKC0tY29sb3ItYmFuYW5hLXllbGxvdy05MDApOy0tXzQyLVhEdlI6dmFyKC0tY29sb3ItZ3JhcGVzLXB1cnBsZS0zMDApOy0tXzQzLVhEdlI6dmFyKC0tY29sb3ItZ3JhcGVzLXB1cnBsZS03MDApOy0tXzQ0LVhEdlI6dmFyKC0tY29sb3Itc2t5LWJsdWUtYTQwMCk7LS1fNDUtWER2Ujp2YXIoLS1jb2xvci1za3ktYmx1ZS1hNzAwKTstLV80Ni1YRHZSOnZhcigtLWNvbG9yLWJlcnJ5LXBpbmstMjAwKTstLV80Ny1YRHZSOnZhcigtLWNvbG9yLWJlcnJ5LXBpbmstNDAwKX0ud3JhcC1ZWnc4UlhlaXtkaXNwbGF5OmlubGluZS1ibG9jaztoZWlnaHQ6MTAwJTtwb3NpdGlvbjpyZWxhdGl2ZX0udWlNYXJrZXItWVp3OFJYZWl7YWxpZ24taXRlbXM6Y2VudGVyO2NvbG9yOnZhcigtLV8wLVhEdlIpO2Rpc3BsYXk6ZmxleDtoZWlnaHQ6MTAwJTtwb3NpdGlvbjpyZWxhdGl2ZTt3aWR0aDoxNXB4fS51aU1hcmtlci1ZWnc4UlhlaSBzdmd7aGVpZ2h0OjEzcHg7d2lkdGg6MTJweH0udWlNYXJrZXItWVp3OFJYZWkgc3ZnOmRpcihydGwpe3RyYW5zZm9ybTpyb3RhdGUoMTgwZGVnKX0udWlNYXJrZXItWVp3OFJYZWkucmVkLVladzhSWGVpe2NvbG9yOnZhcigtLV8zNC1YRHZSKX1AbWVkaWEgKGFueS1ob3Zlcjpob3Zlcil7LnVpTWFya2VyLVladzhSWGVpLnJlZC1ZWnc4UlhlaTpob3Zlcntjb2xvcjp2YXIoLS1fMzUtWER2Uil9fS51aU1hcmtlci1ZWnc4UlhlaS5ibHVlLVladzhSWGVpe2NvbG9yOnZhcigtLV8zNi1YRHZSKX1AbWVkaWEgKGFueS1ob3Zlcjpob3Zlcil7LnVpTWFya2VyLVladzhSWGVpLmJsdWUtWVp3OFJYZWk6aG92ZXJ7Y29sb3I6dmFyKC0tXzM3LVhEdlIpfX0udWlNYXJrZXItWVp3OFJYZWkuZ3JlZW4tWVp3OFJYZWl7Y29sb3I6dmFyKC0tXzM4LVhEdlIpfUBtZWRpYSAoYW55LWhvdmVyOmhvdmVyKXsudWlNYXJrZXItWVp3OFJYZWkuZ3JlZW4tWVp3OFJYZWk6aG92ZXJ7Y29sb3I6dmFyKC0tXzM5LVhEdlIpfX0udWlNYXJrZXItWVp3OFJYZWkub3JhbmdlLVladzhSWGVpe2NvbG9yOnZhcigtLV80MC1YRHZSKX1AbWVkaWEgKGFueS1ob3Zlcjpob3Zlcil7LnVpTWFya2VyLVladzhSWGVpLm9yYW5nZS1ZWnc4UlhlaTpob3Zlcntjb2xvcjp2YXIoLS1fNDEtWER2Uil9fS51aU1hcmtlci1ZWnc4UlhlaS5wdXJwbGUtWVp3OFJYZWl7Y29sb3I6dmFyKC0tXzQyLVhEdlIpfUBtZWRpYSAoYW55LWhvdmVyOmhvdmVyKXsudWlNYXJrZXItWVp3OFJYZWkucHVycGxlLVladzhSWGVpOmhvdmVye2NvbG9yOnZhcigtLV80My1YRHZSKX19LnVpTWFya2VyLVladzhSWGVpLmN5YW4tWVp3OFJYZWl7Y29sb3I6dmFyKC0tXzQ0LVhEdlIpfUBtZWRpYSAoYW55LWhvdmVyOmhvdmVyKXsudWlNYXJrZXItWVp3OFJYZWkuY3lhbi1ZWnc4UlhlaTpob3Zlcntjb2xvcjp2YXIoLS1fNDUtWER2Uil9fS51aU1hcmtlci1ZWnc4UlhlaS5waW5rLVladzhSWGVpe2NvbG9yOnZhcigtLV80Ni1YRHZSKX1AbWVkaWEgKGFueS1ob3Zlcjpob3Zlcil7LnVpTWFya2VyLVladzhSWGVpLnBpbmstWVp3OFJYZWk6aG92ZXJ7Y29sb3I6dmFyKC0tXzQ3LVhEdlIpfS51aU1hcmtlci1ZWnc4UlhlaTpob3Zlcntjb2xvcjp2YXIoLS1fMy1YRHZSKX19LnVpTWFya2VyX19zbWFsbC1ZWnc4UlhlaXt3aWR0aDoxMnB4fS51aU1hcmtlcl9fc21hbGwtWVp3OFJYZWkgc3Zne2hlaWdodDoxMnB4fS5jaGFydC13aWRnZXRfX3RvcC0tdGhlbWVkLWxpZ2h0IC51aU1hcmtlci1ZWnc4UlhlaXtjb2xvcjp2YXIoLS1fMS1YRHZSKX0uY2hhcnQtd2lkZ2V0X190b3AtLXRoZW1lZC1saWdodCAudWlNYXJrZXItWVp3OFJYZWkucmVkLVladzhSWGVpe2NvbG9yOnZhcigtLV8zNC1YRHZSKX1AbWVkaWEgKGFueS1ob3Zlcjpob3Zlcil7LmNoYXJ0LXdpZGdldF9fdG9wLS10aGVtZWQtbGlnaHQgLnVpTWFya2VyLVladzhSWGVpLnJlZC1ZWnc4UlhlaTpob3Zlcntjb2xvcjp2YXIoLS1fMzUtWER2Uil9fS5jaGFydC13aWRnZXRfX3RvcC0tdGhlbWVkLWxpZ2h0IC51aU1hcmtlci1ZWnc4UlhlaS5ibHVlLVladzhSWGVpe2NvbG9yOnZhcigtLV8zNi1YRHZSKX1AbWVkaWEgKGFueS1ob3Zlcjpob3Zlcil7LmNoYXJ0LXdpZGdldF9fdG9wLS10aGVtZWQtbGlnaHQgLnVpTWFya2VyLVladzhSWGVpLmJsdWUtWVp3OFJYZWk6aG92ZXJ7Y29sb3I6dmFyKC0tXzM3LVhEdlIpfX0uY2hhcnQtd2lkZ2V0X190b3AtLXRoZW1lZC1saWdodCAudWlNYXJrZXItWVp3OFJYZWkuZ3JlZW4tWVp3OFJYZWl7Y29sb3I6dmFyKC0tXzM4LVhEdlIpfUBtZWRpYSAoYW55LWhvdmVyOmhvdmVyKXsuY2hhcnQtd2lkZ2V0X190b3AtLXRoZW1lZC1saWdodCAudWlNYXJrZXItWVp3OFJYZWkuZ3JlZW4tWVp3OFJYZWk6aG92ZXJ7Y29sb3I6dmFyKC0tXzM5LVhEdlIpfX0uY2hhcnQtd2lkZ2V0X190b3AtLXRoZW1lZC1saWdodCAudWlNYXJrZXItWVp3OFJYZWkub3JhbmdlLVladzhSWGVpe2NvbG9yOnZhcigtLV80MC1YRHZSKX1AbWVkaWEgKGFueS1ob3Zlcjpob3Zlcil7LmNoYXJ0LXdpZGdldF9fdG9wLS10aGVtZWQtbGlnaHQgLnVpTWFya2VyLVladzhSWGVpLm9yYW5nZS1ZWnc4UlhlaTpob3Zlcntjb2xvcjp2YXIoLS1fNDEtWER2Uil9fS5jaGFydC13aWRnZXRfX3RvcC0tdGhlbWVkLWxpZ2h0IC51aU1hcmtlci1ZWnc4UlhlaS5wdXJwbGUtWVp3OFJYZWl7Y29sb3I6dmFyKC0tXzQyLVhEdlIpfUBtZWRpYSAoYW55LWhvdmVyOmhvdmVyKXsuY2hhcnQtd2lkZ2V0X190b3AtLXRoZW1lZC1saWdodCAudWlNYXJrZXItWVp3OFJYZWkucHVycGxlLVladzhSWGVpOmhvdmVye2NvbG9yOnZhcigtLV80My1YRHZSKX19LmNoYXJ0LXdpZGdldF9fdG9wLS10aGVtZWQtbGlnaHQgLnVpTWFya2VyLVladzhSWGVpLmN5YW4tWVp3OFJYZWl7Y29sb3I6dmFyKC0tXzQ0LVhEdlIpfUBtZWRpYSAoYW55LWhvdmVyOmhvdmVyKXsuY2hhcnQtd2lkZ2V0X190b3AtLXRoZW1lZC1saWdodCAudWlNYXJrZXItWVp3OFJYZWkuY3lhbi1ZWnc4UlhlaTpob3Zlcntjb2xvcjp2YXIoLS1fNDUtWER2Uil9fS5jaGFydC13aWRnZXRfX3RvcC0tdGhlbWVkLWxpZ2h0IC51aU1hcmtlci1ZWnc4UlhlaS5waW5rLVladzhSWGVpe2NvbG9yOnZhcigtLV80Ni1YRHZSKX1AbWVkaWEgKGFueS1ob3Zlcjpob3Zlcil7LmNoYXJ0LXdpZGdldF9fdG9wLS10aGVtZWQtbGlnaHQgLnVpTWFya2VyLVladzhSWGVpLnBpbmstWVp3OFJYZWk6aG92ZXJ7Y29sb3I6dmFyKC0tXzQ3LVhEdlIpfS5jaGFydC13aWRnZXRfX3RvcC0tdGhlbWVkLWxpZ2h0IC51aU1hcmtlci1ZWnc4UlhlaTpob3Zlcntjb2xvcjp2YXIoLS1fNC1YRHZSKX19LmNoYXJ0LXdpZGdldF9fdG9wLS10aGVtZWQtZGFyayAudWlNYXJrZXItWVp3OFJYZWl7Y29sb3I6dmFyKC0tXzItWER2Uil9LmNoYXJ0LXdpZGdldF9fdG9wLS10aGVtZWQtZGFyayAudWlNYXJrZXItWVp3OFJYZWkucmVkLVladzhSWGVpe2NvbG9yOnZhcigtLV8zNC1YRHZSKX1AbWVkaWEgKGFueS1ob3Zlcjpob3Zlcil7LmNoYXJ0LXdpZGdldF9fdG9wLS10aGVtZWQtZGFyayAudWlNYXJrZXItWVp3OFJYZWkucmVkLVladzhSWGVpOmhvdmVye2NvbG9yOnZhcigtLV8zNS1YRHZSKX19LmNoYXJ0LXdpZGdldF9fdG9wLS10aGVtZWQtZGFyayAudWlNYXJrZXItWVp3OFJYZWkuYmx1ZS1ZWnc4UlhlaXtjb2xvcjp2YXIoLS1fMzYtWER2Uil9QG1lZGlhIChhbnktaG92ZXI6aG92ZXIpey5jaGFydC13aWRnZXRfX3RvcC0tdGhlbWVkLWRhcmsgLnVpTWFya2VyLVladzhSWGVpLmJsdWUtWVp3OFJYZWk6aG92ZXJ7Y29sb3I6dmFyKC0tXzM3LVhEdlIpfX0uY2hhcnQtd2lkZ2V0X190b3AtLXRoZW1lZC1kYXJrIC51aU1hcmtlci1ZWnc4UlhlaS5ncmVlbi1ZWnc4UlhlaXtjb2xvcjp2YXIoLS1fMzgtWER2Uil9QG1lZGlhIChhbnktaG92ZXI6aG92ZXIpey5jaGFydC13aWRnZXRfX3RvcC0tdGhlbWVkLWRhcmsgLnVpTWFya2VyLVladzhSWGVpLmdyZWVuLVladzhSWGVpOmhvdmVye2NvbG9yOnZhcigtLV8zOS1YRHZSKX19LmNoYXJ0LXdpZGdldF9fdG9wLS10aGVtZWQtZGFyayAudWlNYXJrZXItWVp3OFJYZWkub3JhbmdlLVladzhSWGVpe2NvbG9yOnZhcigtLV80MC1YRHZSKX1AbWVkaWEgKGFueS1ob3Zlcjpob3Zlcil7LmNoYXJ0LXdpZGdldF9fdG9wLS10aGVtZWQtZGFyayAudWlNYXJrZXItWVp3OFJYZWkub3JhbmdlLVladzhSWGVpOmhvdmVye2NvbG9yOnZhcigtLV80MS1YRHZSKX19LmNoYXJ0LXdpZGdldF9fdG9wLS10aGVtZWQtZGFyayAudWlNYXJrZXItWVp3OFJYZWkucHVycGxlLVladzhSWGVpe2NvbG9yOnZhcigtLV80Mi1YRHZSKX1AbWVkaWEgKGFueS1ob3Zlcjpob3Zlcil7LmNoYXJ0LXdpZGdldF9fdG9wLS10aGVtZWQtZGFyayAudWlNYXJrZXItWVp3OFJYZWkucHVycGxlLVladzhSWGVpOmhvdmVye2NvbG9yOnZhcigtLV80My1YRHZSKX19LmNoYXJ0LXdpZGdldF9fdG9wLS10aGVtZWQtZGFyayAudWlNYXJrZXItWVp3OFJYZWkuY3lhbi1ZWnc4UlhlaXtjb2xvcjp2YXIoLS1fNDQtWER2Uil9QG1lZGlhIChhbnktaG92ZXI6aG92ZXIpey5jaGFydC13aWRnZXRfX3RvcC0tdGhlbWVkLWRhcmsgLnVpTWFya2VyLVladzhSWGVpLmN5YW4tWVp3OFJYZWk6aG92ZXJ7Y29sb3I6dmFyKC0tXzQ1LVhEdlIpfX0uY2hhcnQtd2lkZ2V0X190b3AtLXRoZW1lZC1kYXJrIC51aU1hcmtlci1ZWnc4UlhlaS5waW5rLVladzhSWGVpe2NvbG9yOnZhcigtLV80Ni1YRHZSKX1AbWVkaWEgKGFueS1ob3Zlcjpob3Zlcil7LmNoYXJ0LXdpZGdldF9fdG9wLS10aGVtZWQtZGFyayAudWlNYXJrZXItWVp3OFJYZWkucGluay1ZWnc4UlhlaTpob3Zlcntjb2xvcjp2YXIoLS1fNDctWER2Uil9LmNoYXJ0LXdpZGdldF9fdG9wLS10aGVtZWQtZGFyayAudWlNYXJrZXItWVp3OFJYZWk6aG92ZXJ7Y29sb3I6dmFyKC0tXzUtWER2Uil9fQ=="}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/79791.163c1bb07c60429443df.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.006Z","timestamp":1785148034006,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/79791.163c1bb07c60429443df.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\ncontent-type: text/css; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a4360b8-de9\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Tue, 30 Jun 2026 06:22:48 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.57\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 06/30/2026 11:56:13\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 63f08a312ef53b6885a404078a81d43d\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":3561,"size_decoded":1803,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with very long lines (3561), with no line terminators","md5":"74027ab04ab036dd45d20a239fdcf75a","sha1":"dccdb7464f35bda2b113bf227ae55abaddf64806","sha256":"b2edc76822bb4eaaff98d7800287903db4b2b1ed5543d1d36edb81dac016ac4f","sha512":"dc91a012d4caa5341d10afe4957c67ce446afc7570e11f0b4320408453ec44654f9db58b90200344a10b226c9ed918d1d9887c534c0817e51083fbffda5f4299","ssdeep":"","tlshash":"0a716c0dd590111921bb82abf9c1839dc13ce1d7ea0e67df72163e6a4a523bd0e3770a","first_seen":"2026-07-02T03:42:51.329961Z","last_seen":"2026-07-27T12:07:26.379167Z","times_seen":51,"resource_available":false,"data":"W2RhdGEtdGhlbWU9bGlnaHRdey0tXzAtVUNvQjojMWUyMjJkOTl9W2RhdGEtdGhlbWU9ZGFya117LS1fMC1VQ29COiM2YTZkNzg5OX0ud3JhcC1pN0hDS3NJQXtkaXJlY3Rpb246bHRyO2hlaWdodDoxMDAlO292ZXJmbG93OmhpZGRlbjtwb3NpdGlvbjpyZWxhdGl2ZTt3aWR0aDoxMDAlfS53cmFwLWk3SENLc0lBIHN2Z3tkaXNwbGF5OmJsb2NrfS53cmFwLWk3SENLc0lBOmRpcihydGwpe2RpcmVjdGlvbjpydGx9LnNjcm9sbFdyYXAtaTdIQ0tzSUF7ZGlzcGxheTpmbGV4O2ZsZXg6MCAwIGF1dG87ZmxleC1kaXJlY3Rpb246Y29sdW1uO2hlaWdodDoxMDAlO292ZXJmbG93LXg6aGlkZGVuO292ZXJmbG93LXk6YXV0bztwb3NpdGlvbjpyZWxhdGl2ZTt3aWR0aDoxMDAlOy13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOnRvdWNofS5zY3JvbGxXcmFwLWk3SENLc0lBOjotd2Via2l0LXNjcm9sbGJhcntoZWlnaHQ6NXB4O3dpZHRoOjVweH0uc2Nyb2xsV3JhcC1pN0hDS3NJQTo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWJ7YmFja2dyb3VuZC1jbGlwOmNvbnRlbnQtYm94O2JhY2tncm91bmQtY29sb3I6dmFyKC0tdHYtY29sb3Itc2Nyb2xsYmFyLXRodW1iLWJhY2tncm91bmQsdmFyKC0tY29sb3Itc2Nyb2xsLWJnKSk7Ym9yZGVyOjFweCBzb2xpZCAjMDAwMDtib3JkZXItcmFkaXVzOjNweH0uc2Nyb2xsV3JhcC1pN0hDS3NJQTo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2t7YmFja2dyb3VuZC1jb2xvcjppbml0aWFsO2JvcmRlci1yYWRpdXM6M3B4fS5zY3JvbGxXcmFwLWk3SENLc0lBOjotd2Via2l0LXNjcm9sbGJhci1jb3JuZXJ7ZGlzcGxheTpub25lfS5zY3JvbGxXcmFwLWk3SENLc0lBLm5vU2Nyb2xsQmFyLWk3SENLc0lBe3BhZGRpbmctaW5saW5lLWVuZDoxMDBweH0uc2Nyb2xsV3JhcC1pN0hDS3NJQS5ub1Njcm9sbEJhci1pN0hDS3NJQS5zYi1zY3JvbGxiYXItd3JhcHtkaXNwbGF5Om5vbmV9LnNjcm9sbFdyYXAtaTdIQ0tzSUEubm9TY3JvbGxCYXItaTdIQ0tzSUE6Oi13ZWJraXQtc2Nyb2xsYmFye2Rpc3BsYXk6bm9uZTtoZWlnaHQ6MDt3aWR0aDowfS5zY3JvbGxXcmFwLWk3SENLc0lBLm5vU2Nyb2xsQmFyLWk3SENLc0lBOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiwuc2Nyb2xsV3JhcC1pN0hDS3NJQS5ub1Njcm9sbEJhci1pN0hDS3NJQTo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2t7ZGlzcGxheTpub25lfS5zY3JvbGxXcmFwLWk3SENLc0lBLm5vU2Nyb2xsQmFyLWk3SENLc0lBOjotd2Via2l0LXNjcm9sbGJhci1jb3JuZXJ7ZGlzcGxheTpub25lfS5jb250ZW50LWk3SENLc0lBe2Rpc3BsYXk6ZmxleDtmbGV4OjEgMCBhdXRvO2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtwb3NpdGlvbjpyZWxhdGl2ZX0uaWNvbi1pN0hDS3NJQXtkaXNwbGF5OmJsb2NrO3RyYW5zaXRpb246dHJhbnNmb3JtIDYwbXMgZWFzZX0uc2Nyb2xsQm90LWk3SENLc0lBLC5zY3JvbGxUb3AtaTdIQ0tzSUF7YWxpZ24taXRlbXM6Y2VudGVyO2JhY2tncm91bmQtY29sb3I6cmdiKGZyb20gdmFyKC0tY29sb3ItbGVnYWN5LWJnLXNjcm9sbC1idXR0b25zKSByIGcgYi8uNik7Y29sb3I6dmFyKC0tY29sb3Itc2Nyb2xsLWJ1dHRvbnMtYXJyb3cpO2Rpc3BsYXk6ZmxleDtoZWlnaHQ6MjRweDtpbnNldC1pbmxpbmUtc3RhcnQ6MDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO292ZXJmbG93OmhpZGRlbjtwb3NpdGlvbjphYnNvbHV0ZTt0cmFuc2l0aW9uOmJhY2tncm91bmQtY29sb3IgLjM1cyBlYXNlLHRyYW5zZm9ybSAuMTE2NjY2NjdzIGN1YmljLWJlemllciguNTUsLjA1NSwuNjc1LC4xOSk7d2lkdGg6MTAwJX0uc2Nyb2xsQm90LWk3SENLc0lBOmFjdGl2ZSwuc2Nyb2xsVG9wLWk3SENLc0lBOmFjdGl2ZXt0cmFuc2l0aW9uOmJhY2tncm91bmQtY29sb3IgNTguMzMzMzNtcyBlYXNlLHRyYW5zZm9ybSAuMTE2NjY2NjdzIGN1YmljLWJlemllciguMjE1LC42MSwuMzU1LDEpfUBtZWRpYSAoYW55LWhvdmVyOmhvdmVyKXsuc2Nyb2xsQm90LWk3SENLc0lBOmhvdmVyLC5zY3JvbGxUb3AtaTdIQ0tzSUE6aG92ZXJ7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kLWNvbG9yIDU4LjMzMzMzbXMgZWFzZSx0cmFuc2Zvcm0gLjExNjY2NjY3cyBjdWJpYy1iZXppZXIoLjIxNSwuNjEsLjM1NSwxKX19LnNjcm9sbEJvdC1pN0hDS3NJQTphY3RpdmUgLmljb24taTdIQ0tzSUEsLnNjcm9sbFRvcC1pN0hDS3NJQTphY3RpdmUgLmljb24taTdIQ0tzSUF7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMXB4KX1AbWVkaWEgKGFueS1ob3Zlcjpob3Zlcil7LnNjcm9sbEJvdC1pN0hDS3NJQTpob3ZlciAuaWNvbi1pN0hDS3NJQSwuc2Nyb2xsVG9wLWk3SENLc0lBOmhvdmVyIC5pY29uLWk3SENLc0lBe3RyYW5zZm9ybTp0cmFuc2xhdGVZKDFweCl9fS5zY3JvbGxCb3QtaTdIQ0tzSUEuaXNWaXNpYmxlLWk3SENLc0lBLC5zY3JvbGxUb3AtaTdIQ0tzSUEuaXNWaXNpYmxlLWk3SENLc0lBe3RyYW5zZm9ybTp0cmFuc2xhdGVZKDApO3RyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllciguMjE1LC42MSwuMzU1LDEpfUBzdXBwb3J0cyBub3QgKGJhY2tncm91bmQ6cmdiKGZyb20gIzAwMCByIGcgYikpey5zY3JvbGxCb3QtaTdIQ0tzSUEsLnNjcm9sbFRvcC1pN0hDS3NJQXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLV8wLVVDb0IpfX0uc2Nyb2xsVG9wLWk3SENLc0lBe3RvcDowO3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xMDAlKX0uc2Nyb2xsVG9wLWk3SENLc0lBIC5pY29uV3JhcC1pN0hDS3NJQXt0cmFuc2Zvcm06cm90YXRlKDE4MGRlZyl9LnNjcm9sbFRvcC1pN0hDS3NJQSAuaWNvbldyYXAtaTdIQ0tzSUE6ZGlyKHJ0bCl7dHJhbnNmb3JtOnJvdGF0ZSgtMTgwZGVnKX0uc2Nyb2xsQm90LWk3SENLc0lBe2JvdHRvbTowO3RyYW5zZm9ybTp0cmFuc2xhdGVZKDEwMCUpfS5mYWRlQm90LWk3SENLc0lBLC5mYWRlVG9wLWk3SENLc0lBe2hlaWdodDoyNHB4O2luc2V0LWlubGluZS1zdGFydDowO3BvaW50ZXItZXZlbnRzOm5vbmU7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MTAwJX0uZmFkZUJvdC1pN0hDS3NJQS5pc1Zpc2libGUtaTdIQ0tzSUEsLmZhZGVUb3AtaTdIQ0tzSUEuaXNWaXNpYmxlLWk3SENLc0lBe3RyYW5zZm9ybTp0cmFuc2xhdGVZKDApO3RyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllciguMjE1LC42MSwuMzU1LDEpfS5mYWRlVG9wLWk3SENLc0lBe2JhY2tncm91bmQtaW1hZ2U6bGluZWFyLWdyYWRpZW50KDE4MGRlZywjZmZmLCNmZmYwKTt0b3A6MDt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMTAwJSl9aHRtbC50aGVtZS1kYXJrIC5mYWRlVG9wLWk3SENLc0lBe2JhY2tncm91bmQtaW1hZ2U6bGluZWFyLWdyYWRpZW50KDE4MGRlZywjMGYwZjBmLCMwZjBmMGYwMCl9LmZhZGVCb3QtaTdIQ0tzSUF7YmFja2dyb3VuZC1pbWFnZTpsaW5lYXItZ3JhZGllbnQoMGRlZywjZmZmLCNmZmYwKTtib3R0b206MDt0cmFuc2Zvcm06dHJhbnNsYXRlWSgxMDAlKX1odG1sLnRoZW1lLWRhcmsgLmZhZGVCb3QtaTdIQ0tzSUF7YmFja2dyb3VuZC1pbWFnZTpsaW5lYXItZ3JhZGllbnQoMGRlZywjMGYwZjBmLCMwZjBmMGYwMCl9"}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/widget-sidetoolbar.8d6ca30c57bc66272666.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.046Z","timestamp":1785148034046,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/widget-sidetoolbar.8d6ca30c57bc66272666.js HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a632877-38202\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Fri, 24 Jul 2026 08:55:19 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/24/2026 10:31:24\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 6267b0fb85094234f77a4d58a517dd8c\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":229890,"size_decoded":72307,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (3072)","md5":"3e30d83b50d80a715810f40afbad45da","sha1":"91234b5b0c63048708c83be9a6b40604924f0904","sha256":"2ca92d5ab5ac87c4d523857fb8a7f786ec8295623621ef985bb5e7dba03b75a3","sha512":"2097f0bf3435fe24dd779bb344723a7cc7b99685deb461820a5e200a91ab445ae00c20930eff58fff21c95b0e510f864e8ff76c0599a577945b53f63769ff005","ssdeep":"3072:Egw33UPq9pbU/iE0bMnsHA2T+oFRzySNKNy5slIg3ePp/4lCBuZhRYzX:Ej3E3iE0bMsgwgXyo3ePB4lCcfQX","tlshash":"d5245c51f160686c02e740da893f5107f35e298ce86508acf6bddeed26dc984b279b3d","first_seen":"2026-07-25T03:24:57.114278Z","last_seen":"2026-07-27T12:07:26.374591Z","times_seen":19,"resource_available":true,"data":"KHNlbGYud2VicGFja0NodW5rdHJhZGluZ3ZpZXc9c2VsZi53ZWJwYWNrQ2h1bmt0cmFkaW5ndmlld3x8W10pLnB1c2goW1s0MjkzNCw3NDM0MV0sezg0ODUyNyhlKXtlLmV4cG9ydHM9e319LDQ0MjY3NShlKXtlLmV4cG9ydHM9eyJkZWZhdWx0LWRyYXdlci1taW4tdG9wLWRpc3RhbmNlIjoiMTAwcHgifX0sNDcwMjk1KGUpe2UuZXhwb3J0cz17InRhYmxldC1zbWFsbC1icmVha3BvaW50IjoiKG1heC13aWR0aDogNDQwcHgpIixpdGVtOiJpdGVtLU1pMF90NXVOIixob3ZlcmVkOiJob3ZlcmVkLU1pMF90NXVOIixpc0Rpc2FibGVkOiJpc0Rpc2FibGVkLU1pMF90NXVOIixpc0FjdGl2ZToiaXNBY3RpdmUtTWkwX3Q1dU4iLHNob3J0Y3V0OiJzaG9ydGN1dC1NaTBfdDV1TiIsdG9vbGJveDoidG9vbGJveC1NaTBfdDV1TiIsd2l0aEljb246IndpdGhJY29uLU1pMF90NXVOIiwicm91bmQtaWNvbiI6InJvdW5kLWljb24tTWkwX3Q1dU4iLGljb246Imljb24tTWkwX3Q1dU4iLHN0YXJ0U2xvdDoic3RhcnRTbG90LU1pMF90NXVOIixsYWJlbFJvdzoibGFiZWxSb3ctTWkwX3Q1dU4iLGxhYmVsOiJsYWJlbC1NaTBfdDV1TiIsc2hvd09uSG92ZXI6InNob3dPbkhvdmVyLU1pMF90NXVOIiwiZGlzY2xvc3VyZS1pdGVtLWNpcmNsZS1sb2dvIjoiZGlzY2xvc3VyZS1pdGVtLWNpcmNsZS1sb2dvLU1pMF90NXVOIixzaG93T25Gb2N1czoic2hvd09uRm9jdXMtTWkwX3Q1dU4ifX0sNzYxMDkzKGUpe2UuZXhwb3J0cz17dGl0bGU6InRpdGxlLW5ma0dtN05HIn19LDk3Nzc3KGUpe2UuZXhwb3J0cz17YmFkZ2U6ImJhZGdlLXg0VVZaYWJNIixoYXNDaGlsZHJlbjoiaGFzQ2hpbGRyZW4teDRVVlphYk0iLGNvbnRlbnQ6ImNvbnRlbnQteDRVVlphYk0iLHNsb3Q6InNsb3QteDRVVlphYk0iLHhzbWFsbDoieHNtYWxsLXg0VVZaYWJNIixzbWFsbDoic21hbGwteDRVVlphYk0iLG1lZGl1bToibWVkaXVtLXg0VVZaYWJNIixsYXJnZToibGFyZ2UteDRVVlphYk0iLHhsYXJnZToieGxhcmdlLXg0VVZaYWJNIix4eGxhcmdlOiJ4eGxhcmdlLXg0VVZaYWJNIn19LDg1NDQ1KGUpe2UuZXhwb3J0cz17cGlsbHM6InBpbGxzLUllUXdQamNaIixwcmltYXJ5OiJwcmltYXJ5LUllUXdQamNaIixncmF5OiJncmF5LUllUXdQamNaIixzZWxlY3RlZDoic2VsZWN0ZWQtSWVRd1BqY1oiLGdyb3VwZWQ6Imdyb3VwZWQtSWVRd1BqY1oiLGFjdGl2ZToiYWN0aXZlLUllUXdQamNaIixkaXNhYmxlQWN0aXZlT25Ub3VjaDoiZGlzYWJsZUFjdGl2ZU9uVG91Y2gtSWVRd1BqY1oiLGRpc2FibGVBY3RpdmVTdGF0ZVN0eWxlczoiZGlzYWJsZUFjdGl2ZVN0YXRlU3R5bGVzLUllUXdQamNaIix3aXRoR3JvdXBlZDoid2l0aEdyb3VwZWQtSWVRd1BqY1oiLCJxdWlldC1wcmltYXJ5IjoicXVpZXQtcHJpbWFyeS1JZVF3UGpjWiIsZ3JlZW46ImdyZWVuLUllUXdQamNaIixyZWQ6InJlZC1JZVF3UGpjWiIsYmx1ZToiYmx1ZS1JZVF3UGpjWiIsc2Vjb25kYXJ5OiJzZWNvbmRhcnktSWVRd1BqY1oiLGdob3N0OiJnaG9zdC1JZVF3UGpjWiJ9fSwzNjQ4MTUoZSl7ZS5leHBvcnRzPXtsaWdodEJ1dHRvbjoibGlnaHRCdXR0b24ta2pSZlRsZngiLGxpbms6Imxpbmsta2pSZlRsZngiLGx0cjoibHRyLWtqUmZUbGZ4IixydGw6InJ0bC1ralJmVGxmeCIsInR5cG9ncmFwaHktcmVndWxhcjE2cHgiOiJ0eXBvZ3JhcGh5LXJlZ3VsYXIxNnB4LWtqUmZUbGZ4IiwidHlwb2dyYXBoeS1tZWRpdW0xNnB4IjoidHlwb2dyYXBoeS1tZWRpdW0xNnB4LWtqUmZUbGZ4IiwidHlwb2dyYXBoeS1yZWd1bGFyMTRweCI6InR5cG9ncmFwaHktcmVndWxhcjE0cHgta2pSZlRsZngiLCJ0eXBvZ3JhcGh5LXNlbWlib2xkMTRweCI6InR5cG9ncmFwaHktc2VtaWJvbGQxNHB4LWtqUmZUbGZ4IiwidHlwb2dyYXBoeS1zZW1pYm9sZDE2cHgiOiJ0eXBvZ3JhcGh5LXNlbWlib2xkMTZweC1ralJmVGxmeCIsY29udGVudDoiY29udGVudC1ralJmVGxmeCIsdmlzdWFsbHlIaWRkZW46InZpc3VhbGx5SGlkZGVuLWtqUmZUbGZ4Iixub3dyYXA6Im5vd3JhcC1ralJmVGxmeCIsZWxsaXBzaXNDb250YWluZXI6ImVsbGlwc2lzQ29udGFpbmVyLWtqUmZUbGZ4Iix0ZXh0V3JhcENvbnRhaW5lcjoidGV4dFdyYXBDb250YWluZXIta2pSZlRsZngiLHRleHRXcmFwV2l0aEVsbGlwc2lzOiJ0ZXh0V3JhcFdpdGhFbGxpcHNpcy1ralJmVGxmeCIsc2xvdDoic2xvdC1ralJmVGxmeCIsY2FyZXQ6ImNhcmV0LWtqUmZUbGZ4IixhY3RpdmVDYXJldDoiYWN0aXZlQ2FyZXQta2pSZlRsZngiLHhzbWFsbDoieHNtYWxsLWtqUmZUbGZ4Iix3aXRoU3RhcnRTbG90OiJ3aXRoU3RhcnRTbG90LWtqUmZUbGZ4Iix3aXRoRW5kU2xvdDoid2l0aEVuZFNsb3Qta2pSZlRsZngiLG5vQ29udGVudDoibm9Db250ZW50LWtqUmZUbGZ4Iix3cmFwOiJ3cmFwLWtqUmZUbGZ4IixzbWFsbDoic21hbGwta2pSZlRsZngiLG1lZGl1bToibWVkaXVtLWtqUmZUbGZ4In19LDQ3MzE1OShlKXtlLmV4cG9ydHM9e2J1dHRvbjoiYnV0dG9uLW1MRWhDclZ3IixpY29uT25seToiaWNvbk9ubHktbUxFaENyVnciLHdpdGhTdGFydFNsb3Q6IndpdGhTdGFydFNsb3QtbUxFaENyVnciLHdpdGhFbmRTbG90OiJ3aXRoRW5kU2xvdC1tTEVoQ3JWdyIsc3RhcnRTbG90V3JhcDoic3RhcnRTbG90V3JhcC1tTEVoQ3JWdyIsZW5kU2xvdFdyYXA6ImVuZFNsb3RXcmFwLW1MRWhDclZ3Iix4c21hbGw6InhzbWFsbC1tTEVoQ3JWdyIsc21hbGw6InNtYWxsLW1MRWhDclZ3IixtZWRpdW06Im1lZGl1bS1tTEVoQ3JWdyIsbGFyZ2U6ImxhcmdlLW1MRWhDclZ3Iix4bGFyZ2U6InhsYXJnZS1tTEVoQ3JWdyIsY29udGVudDoiY29udGVudC1tTEVoQ3JWdyIsbGluazoibGluay1tTEVoQ3JWdyIsYmx1ZToiYmx1ZS1tTEVoQ3JWdyIscHJpbWFyeToicHJpbWFyeS1tTEVoQ3JWdyIsc2Vjb25kYXJ5OiJzZWNvbmRhcnktbUxFaENyVnciLGdyYXk6ImdyYXktbUxFaENyVnciLGdyZWVuOiJncmVlbi1tTEVoQ3JWdyIscmVkOiJyZWQtbUxFaENyVnciLGJsYWNrOiJibGFjay1tTEVoQ3JWdyIsc2xvdDoic2xvdC1tTEVoQ3JWdyIsc3RyZXRjaDoic3RyZXRjaC1tTEVoQ3JWdyIsCmdyb3VwZWQ6Imdyb3VwZWQtbUxFaENyVnciLGFkanVzdFBvc2l0aW9uOiJhZGp1c3RQb3NpdGlvbi1tTEVoQ3JWdyIsZmlyc3RSb3c6ImZpcnN0Um93LW1MRWhDclZ3IixmaXJzdENvbDoiZmlyc3RDb2wtbUxFaENyVnciLCJuby1jb3JuZXItdG9wLWxlZnQiOiJuby1jb3JuZXItdG9wLWxlZnQtbUxFaENyVnciLCJuby1jb3JuZXItdG9wLXJpZ2h0Ijoibm8tY29ybmVyLXRvcC1yaWdodC1tTEVoQ3JWdyIsIm5vLWNvcm5lci1ib3R0b20tcmlnaHQiOiJuby1jb3JuZXItYm90dG9tLXJpZ2h0LW1MRWhDclZ3Iiwibm8tY29ybmVyLWJvdHRvbS1sZWZ0Ijoibm8tY29ybmVyLWJvdHRvbS1sZWZ0LW1MRWhDclZ3Iix0ZXh0V3JhcDoidGV4dFdyYXAtbUxFaENyVnciLG11bHRpbGluZUNvbnRlbnQ6Im11bHRpbGluZUNvbnRlbnQtbUxFaENyVnciLHByaW1hcnlUZXh0OiJwcmltYXJ5VGV4dC1tTEVoQ3JWdyIsc2Vjb25kYXJ5VGV4dDoic2Vjb25kYXJ5VGV4dC1tTEVoQ3JWdyJ9fSwxNDAwMTcoZSl7ZS5leHBvcnRzPXtsb2dvOiJsb2dvLVZDTkt1YldxIixoaWRkZW46ImhpZGRlbi1WQ05LdWJXcSIseHhjZXB0aW9uYWxseXNtYWxsZG9ub3R1c2VicnYxMDIzOiJ4eGNlcHRpb25hbGx5c21hbGxkb25vdHVzZWJydjEwMjMtVkNOS3ViV3EiLHh4eHNtYWxsOiJ4eHhzbWFsbC1WQ05LdWJXcSIseHhzbWFsbDoieHhzbWFsbC1WQ05LdWJXcSIseHNtYWxsOiJ4c21hbGwtVkNOS3ViV3EiLHNtYWxsOiJzbWFsbC1WQ05LdWJXcSIsbWVkaXVtOiJtZWRpdW0tVkNOS3ViV3EiLGxhcmdlOiJsYXJnZS1WQ05LdWJXcSIseGxhcmdlOiJ4bGFyZ2UtVkNOS3ViV3EiLHh4bGFyZ2U6Inh4bGFyZ2UtVkNOS3ViV3EiLHh4eGxhcmdlOiJ4eHhsYXJnZS1WQ05LdWJXcSIsc2tlbGV0b246InNrZWxldG9uLVZDTkt1YldxIixsZXR0ZXI6ImxldHRlci1WQ05LdWJXcSJ9fSw5OTQ1KGUpe2UuZXhwb3J0cz17ZGVmYXVsdDoiZGVmYXVsdC1HWkx5a05RUCIsZGFuZ2VyOiJkYW5nZXItR1pMeWtOUVAiLHdhcm5pbmc6Indhcm5pbmctR1pMeWtOUVAiLHN1Y2Nlc3M6InN1Y2Nlc3MtR1pMeWtOUVAiLG5ldXRyYWw6Im5ldXRyYWwtR1pMeWtOUVAiLCJuZXV0cmFsLWxpZ2h0IjoibmV1dHJhbC1saWdodC1HWkx5a05RUCIsc21hbGw6InNtYWxsLUdaTHlrTlFQIixtZWRpdW06Im1lZGl1bS1HWkx5a05RUCIsbGFyZ2U6ImxhcmdlLUdaTHlrTlFQIixpY29uV3JhcHBlcjoiaWNvbldyYXBwZXItR1pMeWtOUVAiLGljb246Imljb24tR1pMeWtOUVAifX0sNTYxMjUwKGUpe2UuZXhwb3J0cz17YmFja2dyb3VuZDoiYmFja2dyb3VuZC1OUW9tNUk4WiIsbWVkaXVtOiJtZWRpdW0tTlFvbTVJOFoiLGxhcmdlOiJsYXJnZS1OUW9tNUk4WiIsZGlzYWJsZWQ6ImRpc2FibGVkLU5Rb201SThaIixvcGVuOiJvcGVuLU5Rb201SThaIixzZWxlY3RlZDoic2VsZWN0ZWQtTlFvbTVJOFoiLG5ldXRyYWw6Im5ldXRyYWwtTlFvbTVJOFoiLGRhbmdlcjoiZGFuZ2VyLU5Rb201SThaIn19LDQ0MzYxOChlKXtlLmV4cG9ydHM9e2VsbGlwc2lzOiJlbGxpcHNpcy1EYXpSODVWQSIsd2l0aEdhcHM6IndpdGhHYXBzLURhelI4NVZBIn19LDQ0MDkyNihlKXtlLmV4cG9ydHM9e2hvdGtleToiaG90a2V5LVhjNlNocENxIn19LDIxMjQ4NihlKXtlLmV4cG9ydHM9e2J1dHRvbkNvbnRlbnQ6ImJ1dHRvbkNvbnRlbnQtVlg0a3BSOWkiLGxlZnQ6ImxlZnQtVlg0a3BSOWkifX0sMzU5MTE2KGUpe2UuZXhwb3J0cz17YnV0dG9uOiJidXR0b24tWE5VaXZUb3UifX0sOTQ4MzkwKGUpe2UuZXhwb3J0cz17bWlkZGxlOiJtaWRkbGUtRnR3d1JyN3UiLGhhc05vRW5kU2xvdDoiaGFzTm9FbmRTbG90LUZ0d3dScjd1Iix0aXRsZToidGl0bGUtRnR3d1JyN3UiLGRlc2NyaXB0aW9uOiJkZXNjcmlwdGlvbi1GdHd3UnI3dSIsaGFzVGl0bGU6Imhhc1RpdGxlLUZ0d3dScjd1IixoYXNEZXNjcmlwdGlvbjoiaGFzRGVzY3JpcHRpb24tRnR3d1JyN3UifX0sMjMyMDU0KGUpe2UuZXhwb3J0cz17cmlnaHQ6InJpZ2h0LUNHZGpLYTlZIixjaGlsZDoiY2hpbGQtQ0dkakthOVkifX0sOTc1Mjg1KGUpe2UuZXhwb3J0cz17d3JhcHBlcjoid3JhcHBlci1oY3QyeUp2SyIsYW5pbWF0ZWQ6ImFuaW1hdGVkLWhjdDJ5SnZLIixwdWxzYXRpb246InB1bHNhdGlvbi1oY3QyeUp2SyJ9fSwyNTIzNTcoZSl7ZS5leHBvcnRzPXt9fSwzNTI1NzIoZSl7ZS5leHBvcnRzPXtpY29uQ29udGFpbmVyOiJpY29uQ29udGFpbmVyLW1SUVA4RVBfIn19LDM5ODk2MShlKXtlLmV4cG9ydHM9e2l0ZW06Iml0ZW0tdkVzSjdONU8iLGxhYmVsOiJsYWJlbC12RXNKN041TyJ9fSwxOTM0ODEoZSl7ZS5leHBvcnRzPXtkcmF3aW5nVG9vbGJhcjoiZHJhd2luZ1Rvb2xiYXItY0R1akJUeDQiLGlzSGlkZGVuOiJpc0hpZGRlbi1jRHVqQlR4NCIsaW5uZXI6ImlubmVyLWNEdWpCVHg0Iixncm91cDoiZ3JvdXAtY0R1akJUeDQiLGxhc3RHcm91cDoibGFzdEdyb3VwLWNEdWpCVHg0IixmaWxsOiJmaWxsLWNEdWpCVHg0In19LDEzNTkzMShlKXtlLmV4cG9ydHM9e2l0ZW06Iml0ZW0tcjQ3TXZrbHUiLGhvdmVyZWQ6ImhvdmVyZWQtcjQ3TXZrbHUifX0sNzMyNTk0KGUpe2UuZXhwb3J0cz17ZGVza3RvcFNpemU6ImRlc2t0b3BTaXplLWJ1bXhXQ2N0IixzbWFsbFNpemU6InNtYWxsU2l6ZS1idW14V0NjdCIsdGFiczoidGFicy1idW14V0NjdCIsY2F0ZWdvcmllczoiY2F0ZWdvcmllcy1idW14V0NjdCJ9fSw5NjgzMDcoZSl7ZS5leHBvcnRzPXtzdGlja2VyOiJzdGlja2VyLUlhRUNrTVJvIn19LDEzMTI2MyhlKXtlLmV4cG9ydHM9eyJ0YWJsZXQtc21hbGwtYnJlYWtwb2ludCI6IihtYXgtd2lkdGg6IDQ0MHB4KSIsc3RpY2tlclJvdzoic3RpY2tlclJvdy1vb3N2SzF4MyJ9fSwzNjQwMyhlKXtlLmV4cG9ydHM9e3dyYXBwZXI6IndyYXBwZXItYWJTU0FjRWkifX0sNDcyMjMwKGUpe2UuZXhwb3J0cz17ZHJhd2VyOiJkcmF3ZXItWWd3WlgxMDEiLG1lbnVCb3g6Im1lbnVCb3gtWWd3WlgxMDEifX0sNzEzOTA3KGUpe2UuZXhwb3J0cz17d3JhcHBlcjoid3JhcHBlci1MWDFYblJXXyJ9fSwxNTY3NDgoZSl7ZS5leHBvcnRzPXsKdG9vbEJ1dHRvbk1hZ25ldDoidG9vbEJ1dHRvbk1hZ25ldC1mOE1HaTlzVyIsdG9vbEJ1dHRvbk1hZ25ldF9fbWVudUl0ZW06InRvb2xCdXR0b25NYWduZXRfX21lbnVJdGVtLWY4TUdpOXNXIix0b29sQnV0dG9uTWFnbmV0X19oaW50UGxhY2Vob2xkZXI6InRvb2xCdXR0b25NYWduZXRfX2hpbnRQbGFjZWhvbGRlci1mOE1HaTlzVyIsc3dpdGNoZXJMYWJlbDoic3dpdGNoZXJMYWJlbC1mOE1HaTlzVyJ9fSw2MjMwODYoZSl7ZS5leHBvcnRzPXtwb3B1cE1lbnVJdGVtOiJwb3B1cE1lbnVJdGVtLVROQ0dpMlc4In19LDk4ODkwNShlKXtlLmV4cG9ydHM9e3RpdGxlOiJ0aXRsZS1zenRBUVo1aSJ9fSw3ODI5ODMoZSl7ZS5leHBvcnRzPXtzd2l0Y2hlckxhYmVsOiJzd2l0Y2hlckxhYmVsLUR3cVVIUk52In19LDYyNzU0NChlKXtlLmV4cG9ydHM9e3NlY3Rpb25UaXRsZToic2VjdGlvblRpdGxlLVk2NXlabUtFIixuZXdCYWRnZToibmV3QmFkZ2UtWTY1eVptS0UiLGxhYmVsOiJsYWJlbC1ZNjV5Wm1LRSJ9fSwyMTc4NTQoZSl7ZS5leHBvcnRzPXt3cmFwcGVyOiJ3cmFwcGVyLVJSMlp6MGI0In19LDU1MDk1OChlKXtlLmV4cG9ydHM9e3dyYXA6IndyYXAtaTdIQ0tzSUEiLHNjcm9sbFdyYXA6InNjcm9sbFdyYXAtaTdIQ0tzSUEiLG5vU2Nyb2xsQmFyOiJub1Njcm9sbEJhci1pN0hDS3NJQSIsY29udGVudDoiY29udGVudC1pN0hDS3NJQSIsaWNvbjoiaWNvbi1pN0hDS3NJQSIsc2Nyb2xsQm90OiJzY3JvbGxCb3QtaTdIQ0tzSUEiLHNjcm9sbFRvcDoic2Nyb2xsVG9wLWk3SENLc0lBIixpc1Zpc2libGU6ImlzVmlzaWJsZS1pN0hDS3NJQSIsaWNvbldyYXA6Imljb25XcmFwLWk3SENLc0lBIixmYWRlQm90OiJmYWRlQm90LWk3SENLc0lBIixmYWRlVG9wOiJmYWRlVG9wLWk3SENLc0lBIn19LDU3NTEzNyhlKXtlLmV4cG9ydHM9eyJjc3MtdmFsdWUtaGVhZGVyLXRvb2xiYXItaGVpZ2h0IjoiMzhweCJ9fSw5NzcwODEoZSl7ZS5leHBvcnRzPXt3cmFwOiJ3cmFwLUc1aWVJMUlKIixpY29uOiJpY29uLUc1aWVJMUlKIixjb2xvckJnOiJjb2xvckJnLUc1aWVJMUlKIixjb2xvcjoiY29sb3ItRzVpZUkxSUoiLG11bHRpY29sb3I6Im11bHRpY29sb3ItRzVpZUkxSUoiLHdoaXRlOiJ3aGl0ZS1HNWllSTFJSiJ9fSw3MDM3OTkoZSl7ZS5leHBvcnRzPXtidXR0b246ImJ1dHRvbi1ieG5oSTFqOSJ9fSwzMDc3ODUoZSl7ZS5leHBvcnRzPXtpdGVtOiJpdGVtLVlUR1ZIMjQ1IixidXR0b25XcmFwOiJidXR0b25XcmFwLVlUR1ZIMjQ1IixzbWFsbDoic21hbGwtWVRHVkgyNDUiLGJ1dHRvbkxhYmVsOiJidXR0b25MYWJlbC1ZVEdWSDI0NSJ9fSw1MjI1NjEoZSl7ZS5leHBvcnRzPXtpdGVtOiJpdGVtLW1oZjU0VmNtIix3aXRoSWNvbjoid2l0aEljb24tbWhmNTRWY20iLGljb246Imljb24tbWhmNTRWY20iLGxhYmVsUm93OiJsYWJlbFJvdy1taGY1NFZjbSIsbXVsdGlXaWR0aDoibXVsdGlXaWR0aC1taGY1NFZjbSIsYnV0dG9uV3JhcDoiYnV0dG9uV3JhcC1taGY1NFZjbSIsYnV0dG9uTGFiZWw6ImJ1dHRvbkxhYmVsLW1oZjU0VmNtIn19LDUwNTM4KGUpe2UuZXhwb3J0cz17YnV0dG9uOiJidXR0b24tcDhmUzh4MlEifX0sMzkzMTk4KGUpe2UuZXhwb3J0cz17ZHJvcGRvd246ImRyb3Bkb3duLXZMeG1PZ1ozIixidXR0b25XcmFwOiJidXR0b25XcmFwLXZMeG1PZ1ozIixjb250cm9sOiJjb250cm9sLXZMeG1PZ1ozIixhcnJvdzoiYXJyb3ctdkx4bU9nWjMiLGFycm93SWNvbjoiYXJyb3dJY29uLXZMeG1PZ1ozIixpc09wZW5lZDoiaXNPcGVuZWQtdkx4bU9nWjMiLGhvdmVyOiJob3Zlci12THhtT2daMyIsaXNHcmF5ZWQ6ImlzR3JheWVkLXZMeG1PZ1ozIixuZXdWaWV3OiJuZXdWaWV3LXZMeG1PZ1ozIixkZXNrdG9wOiJkZXNrdG9wLXZMeG1PZ1ozIixhY2Nlc3NpYmxlOiJhY2Nlc3NpYmxlLXZMeG1PZ1ozIn19LDQyNDI2MihlKXtlLmV4cG9ydHM9e2J1dHRvbjoiYnV0dG9uLXNYc3BaTm5aIixob3ZlcjoiaG92ZXItc1hzcFpObloiLGNsaWNrZWQ6ImNsaWNrZWQtc1hzcFpObloiLGFjY2Vzc2libGU6ImFjY2Vzc2libGUtc1hzcFpObloiLGFycm93OiJhcnJvdy1zWHNwWk5uWiIsYXJyb3dXcmFwOiJhcnJvd1dyYXAtc1hzcFpObloiLGlzT3BlbmVkOiJpc09wZW5lZC1zWHNwWk5uWiJ9fSwzNzM1MjcoZSl7ZS5leHBvcnRzPXtjb250YWluZXI6ImNvbnRhaW5lci1tZGNPa3ZiaiIsc2VjdGlvblRpdGxlOiJzZWN0aW9uVGl0bGUtbWRjT2t2YmoiLHNlcGFyYXRvcjoic2VwYXJhdG9yLW1kY09rdmJqIixjdXN0b21CdXR0b246ImN1c3RvbUJ1dHRvbi1tZGNPa3ZiaiIsYWNjZXNzaWJsZToiYWNjZXNzaWJsZS1tZGNPa3ZiaiJ9fSw5OTEwMjEoZSl7ZS5leHBvcnRzPXtjb250YWluZXI6ImNvbnRhaW5lci1paUVZYXFQRCIsZm9ybToiZm9ybS1paUVZYXFQRCIsc3dhdGNoOiJzd2F0Y2gtaWlFWWFxUEQiLHdoaXRlOiJ3aGl0ZS1paUVZYXFQRCIsaW5wdXRXcmFwOiJpbnB1dFdyYXAtaWlFWWFxUEQiLGlucHV0SGFzaDoiaW5wdXRIYXNoLWlpRVlhcVBEIixpbnB1dDoiaW5wdXQtaWlFWWFxUEQiLGJ1dHRvbldyYXA6ImJ1dHRvbldyYXAtaWlFWWFxUEQiLGh1ZVNhdHVyYXRpb25XcmFwOiJodWVTYXR1cmF0aW9uV3JhcC1paUVZYXFQRCIsc2F0dXJhdGlvbjoic2F0dXJhdGlvbi1paUVZYXFQRCIsaHVlOiJodWUtaWlFWWFxUEQifX0sMzg5NTA1KGUpe2UuZXhwb3J0cz17aHVlOiJodWUtcjR1bzVXbjYiLHBvaW50ZXI6InBvaW50ZXItcjR1bzVXbjYiLGFjY2Vzc2libGU6ImFjY2Vzc2libGUtcjR1bzVXbjYiLHBvaW50ZXJDb250YWluZXI6InBvaW50ZXJDb250YWluZXItcjR1bzVXbjYifX0sNjIwMjcwKGUpe2UuZXhwb3J0cz17b3BhY2l0eToib3BhY2l0eS1Fbld0czdYdSIsb3BhY2l0eVNsaWRlcjoib3BhY2l0eVNsaWRlci1Fbld0czdYdSIsb3BhY2l0eVNsaWRlckdyYWRpZW50OiJvcGFjaXR5U2xpZGVyR3JhZGllbnQtRW5XdHM3WHUiLHBvaW50ZXI6InBvaW50ZXItRW5XdHM3WHUiLGRyYWdnZWQ6ImRyYWdnZWQtRW5XdHM3WHUiLG9wYWNpdHlQb2ludGVyV3JhcDoib3BhY2l0eVBvaW50ZXJXcmFwLUVuV3RzN1h1IiwKb3BhY2l0eUlucHV0V3JhcDoib3BhY2l0eUlucHV0V3JhcC1Fbld0czdYdSIsb3BhY2l0eUlucHV0OiJvcGFjaXR5SW5wdXQtRW5XdHM3WHUiLG9wYWNpdHlJbnB1dFBlcmNlbnQ6Im9wYWNpdHlJbnB1dFBlcmNlbnQtRW5XdHM3WHUiLGFjY2Vzc2libGU6ImFjY2Vzc2libGUtRW5XdHM3WHUifX0sMzE1MDcoZSl7ZS5leHBvcnRzPXtzYXR1cmF0aW9uOiJzYXR1cmF0aW9uLU5GTmZxUDJ3Iixwb2ludGVyOiJwb2ludGVyLU5GTmZxUDJ3IixhY2Nlc3NpYmxlOiJhY2Nlc3NpYmxlLU5GTmZxUDJ3In19LDM0MzMxKGUpe2UuZXhwb3J0cz17c3dhdGNoZXM6InN3YXRjaGVzLXNmbjdMZXp2Iixzd2F0Y2g6InN3YXRjaC1zZm43TGV6diIsaG92ZXI6ImhvdmVyLXNmbjdMZXp2IixlbXB0eToiZW1wdHktc2ZuN0xlenYiLHdoaXRlOiJ3aGl0ZS1zZm43TGV6diIsc2VsZWN0ZWQ6InNlbGVjdGVkLXNmbjdMZXp2Iixjb250ZXh0SXRlbToiY29udGV4dEl0ZW0tc2ZuN0xlenYiLHJvdzoicm93LXNmbjdMZXp2In19LDg3NTY3OShlKXtlLmV4cG9ydHM9e2xpc3Q6Imxpc3QtSlBvRkFSYUcifX0sNzMxNjMxKGUpe2UuZXhwb3J0cz17d3JhcHBlcjoid3JhcHBlci1WbUNveU1XRiJ9fSw3ODUzMDEoZSl7ZS5leHBvcnRzPXt3cmFwcGVyOiJ3cmFwcGVyLU0xNEtVVmRHIixlbW9qaUl0ZW06ImVtb2ppSXRlbS1NMTRLVVZkRyIsaG92ZXJlZDoiaG92ZXJlZC1NMTRLVVZkRyJ9fSw3MzgzNShlKXtlLmV4cG9ydHM9e3dyYXBwZXI6IndyYXBwZXItaG9XdHBOeWgiLGlzQWN0aXZlOiJpc0FjdGl2ZS1ob1d0cE55aCIsYnV0dG9uOiJidXR0b24taG9XdHBOeWgifX0sODM0NTEzKGUpe2UuZXhwb3J0cz17d3JhcHBlcjoid3JhcHBlci1SWEV0X05XeiJ9fSwzNDkxMjcoZSl7ZS5leHBvcnRzPXt3cmFwcGVyOiJ3cmFwcGVyLVFXbWRDWlNBIn19LDg4NTkwMyhlKXtlLmV4cG9ydHM9e3dyYXBwZXI6IndyYXBwZXItTWVRRDNrRkEiLGJ1dHRvbjoiYnV0dG9uLU1lUUQza0ZBIn19LDUyMDk3NyhlKXtlLmV4cG9ydHM9e3BsYWNlSG9sZGVyOiJwbGFjZUhvbGRlci15bHdhZV9HdCIsaGlkZGVuOiJoaWRkZW4teWx3YWVfR3QifX0sNDM1MTAxKGUpe2UuZXhwb3J0cz17d3JhcHBlcjoid3JhcHBlci1LNHU0TmczWiIsdGl0bGU6InRpdGxlLUs0dTROZzNaIixhZGRpdGlvbmFsQnV0dG9uOiJhZGRpdGlvbmFsQnV0dG9uLUs0dTROZzNaIixidXR0b25zOiJidXR0b25zLUs0dTROZzNaIix0ZXh0OiJ0ZXh0LUs0dTROZzNaIixidXR0b246ImJ1dHRvbi1LNHU0TmczWiJ9fSw4MTAyODEoZSl7ZS5leHBvcnRzPXtpY29uOiJpY29uLVdCMnkwRW5QIixkcm9wcGVkOiJkcm9wcGVkLVdCMnkwRW5QIn19LDkyMzUxMyhlKXtlLmV4cG9ydHM9e2NvbnRhaW5lcjoiY29udGFpbmVyLXpMVm02QjR0Iixjb250ZW50OiJjb250ZW50LXpMVm02QjR0IixhcnJvd0hvbGRlcjoiYXJyb3dIb2xkZXItekxWbTZCNHQiLCJhcnJvd0hvbGRlci0tYmVsb3ciOiJhcnJvd0hvbGRlci0tYmVsb3ctekxWbTZCNHQiLCJhcnJvd0hvbGRlci0tYWJvdmUiOiJhcnJvd0hvbGRlci0tYWJvdmUtekxWbTZCNHQiLCJhcnJvd0hvbGRlci0tYmVmb3JlIjoiYXJyb3dIb2xkZXItLWJlZm9yZS16TFZtNkI0dCIsImFycm93SG9sZGVyLS1hZnRlciI6ImFycm93SG9sZGVyLS1hZnRlci16TFZtNkI0dCIsImFycm93SG9sZGVyLS1hYm92ZS1maXgiOiJhcnJvd0hvbGRlci0tYWJvdmUtZml4LXpMVm02QjR0IiwiYXJyb3dIb2xkZXItLWJlZm9yZS1ydGwtZml4IjoiYXJyb3dIb2xkZXItLWJlZm9yZS1ydGwtZml4LXpMVm02QjR0IiwiYXJyb3dIb2xkZXItLWFmdGVyLWx0ci1maXgiOiJhcnJvd0hvbGRlci0tYWZ0ZXItbHRyLWZpeC16TFZtNkI0dCIsbGFiZWw6ImxhYmVsLXpMVm02QjR0IixjbG9zZUJ1dHRvbjoiY2xvc2VCdXR0b24tekxWbTZCNHQifX0sNzgwMzc0KGUsdCxvKXsidXNlIHN0cmljdCI7by5kKHQse0RyYWdnYWJsZTooKT0+cixQb2ludGVyQmFja2VuZDooKT0+c30pO3ZhciBuPW8oMTM4NjM4KSxpPW8oMzE0NzIwKTtvKDg0ODUyNyk7Y2xhc3Mgcntjb25zdHJ1Y3RvcihlKXt0aGlzLl9oZWxwZXI9bnVsbCx0aGlzLl9oYW5kbGVEcmFnU3RhcnQ9ZT0+e2lmKG51bGwhPT10aGlzLl9oZWxwZXIpcmV0dXJuO2NvbnN0IHQ9dGhpcy5fc291cmNlO3QuY2xhc3NMaXN0LmFkZCgidWktZHJhZ2dhYmxlLWRyYWdnaW5nIik7Y29uc3RbbyxuXT1bKDAsaS5vdXRlcldpZHRoKSh0KSwoMCxpLm91dGVySGVpZ2h0KSh0KV07dGhpcy5faGVscGVyPXtzdGFydFRvcDpwYXJzZUZsb2F0KHQuc3R5bGUudG9wKXx8MCxzdGFydExlZnQ6cGFyc2VGbG9hdCh0LnN0eWxlLmxlZnQpfHwwLG5leHRUb3A6bnVsbCxuZXh0TGVmdDpudWxsLHJhZjpudWxsLHNpemU6W28sbl0sCmNvbnRhaW5tZW50OnRoaXMuX2NvbnRhaW5tZW50IGluc3RhbmNlb2YgSFRNTEVsZW1lbnQ/W3BhcnNlSW50KGdldENvbXB1dGVkU3R5bGUodGhpcy5fY29udGFpbm1lbnQpLmJvcmRlckxlZnRXaWR0aCkrcGFyc2VJbnQoZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzLl9jb250YWlubWVudCkucGFkZGluZ0xlZnQpLHBhcnNlSW50KGdldENvbXB1dGVkU3R5bGUodGhpcy5fY29udGFpbm1lbnQpLmJvcmRlclRvcFdpZHRoKStwYXJzZUludChnZXRDb21wdXRlZFN0eWxlKHRoaXMuX2NvbnRhaW5tZW50KS5wYWRkaW5nVG9wKSx0aGlzLl9jb250YWlubWVudC5vZmZzZXRXaWR0aC1wYXJzZUludChnZXRDb21wdXRlZFN0eWxlKHRoaXMuX2NvbnRhaW5tZW50KS5ib3JkZXJSaWdodFdpZHRoKS1wYXJzZUludChnZXRDb21wdXRlZFN0eWxlKHRoaXMuX2NvbnRhaW5tZW50KS5wYWRkaW5nUmlnaHQpLXBhcnNlSW50KGdldENvbXB1dGVkU3R5bGUodCkubWFyZ2luTGVmdCktcGFyc2VJbnQoZ2V0Q29tcHV0ZWRTdHlsZSh0KS5tYXJnaW5SaWdodCktbyx0aGlzLl9jb250YWlubWVudC5vZmZzZXRIZWlnaHQtcGFyc2VJbnQoZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzLl9jb250YWlubWVudCkuYm9yZGVyQm90dG9tV2lkdGgpLXBhcnNlSW50KGdldENvbXB1dGVkU3R5bGUodGhpcy5fY29udGFpbm1lbnQpLnBhZGRpbmdCb3R0b20pLXBhcnNlSW50KGdldENvbXB1dGVkU3R5bGUodCkubWFyZ2luVG9wKS1wYXJzZUludChnZXRDb21wdXRlZFN0eWxlKHQpLm1hcmdpbkJvdHRvbSktbl06IndpbmRvdyI9PT10aGlzLl9jb250YWlubWVudD9bd2luZG93LnNjcm9sbFgsd2luZG93LnNjcm9sbFksd2luZG93LnNjcm9sbFgrZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50Lm9mZnNldFdpZHRoLW8sd2luZG93LnNjcm9sbFkrZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50Lm9mZnNldEhlaWdodC1uXTpudWxsfSx0aGlzLl9zdGFydD8uKCl9LHRoaXMuX2hhbmRsZURyYWdNb3ZlPWU9PntpZihudWxsPT09dGhpcy5faGVscGVyKXJldHVybjtjb25zdHtjdXJyZW50OnQsaW5pdGlhbDpvfT1lLmRldGFpbCxuPXRoaXMuX3NvdXJjZSxpPXRoaXMuX2hlbHBlci5uZXh0VG9wLHI9dGhpcy5faGVscGVyLm5leHRMZWZ0LHM9InkiPT09dGhpcy5fYXhpc3x8ITE9PT10aGlzLl9heGlzfHwwIT09dC5tb3ZlbWVudFk7aWYocyl7Y29uc3QgZT10aGlzLl9oZWxwZXIuc3RhcnRUb3A7aXNGaW5pdGUoZSkmJih0aGlzLl9oZWxwZXIubmV4dFRvcD10LmNsaWVudFktby5jbGllbnRZK2UpfWNvbnN0IGE9IngiPT09dGhpcy5fYXhpc3x8ITE9PT10aGlzLl9heGlzfHwwIT09dC5tb3ZlbWVudFk7aWYoYSl7Y29uc3QgZT10aGlzLl9oZWxwZXIuc3RhcnRMZWZ0O2lzRmluaXRlKGUpJiYodGhpcy5faGVscGVyLm5leHRMZWZ0PXQuY2xpZW50WC1vLmNsaWVudFgrZSl9aWYobnVsbCE9PXRoaXMuX2hlbHBlci5jb250YWlubWVudCl7Y29uc3RbZSx0LG8sbl09dGhpcy5faGVscGVyLmNvbnRhaW5tZW50O3MmJnRoaXMuX2hlbHBlci5uZXh0VG9wJiYodGhpcy5faGVscGVyLm5leHRUb3A9TWF0aC5taW4odGhpcy5faGVscGVyLm5leHRUb3AsbiksdGhpcy5faGVscGVyLm5leHRUb3A9TWF0aC5tYXgodGhpcy5faGVscGVyLm5leHRUb3AsdCkpLGEmJnRoaXMuX2hlbHBlci5uZXh0TGVmdCYmKHRoaXMuX2hlbHBlci5uZXh0TGVmdD1NYXRoLm1pbih0aGlzLl9oZWxwZXIubmV4dExlZnQsbyksdGhpcy5faGVscGVyLm5leHRMZWZ0PU1hdGgubWF4KHRoaXMuX2hlbHBlci5uZXh0TGVmdCxlKSl9bnVsbCE9PXRoaXMuX2hlbHBlci5yYWZ8fGk9PT10aGlzLl9oZWxwZXIubmV4dFRvcCYmcj09PXRoaXMuX2hlbHBlci5uZXh0TGVmdHx8KHRoaXMuX2hlbHBlci5yYWY9cmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgoKT0+e251bGwhPT10aGlzLl9oZWxwZXImJihudWxsIT09dGhpcy5faGVscGVyLm5leHRUb3AmJihuLnN0eWxlLnRvcD10aGlzLl9oZWxwZXIubmV4dFRvcCsicHgiLHRoaXMuX2hlbHBlci5uZXh0VG9wPW51bGwpLG51bGwhPT10aGlzLl9oZWxwZXIubmV4dExlZnQmJihuLnN0eWxlLmxlZnQ9dGhpcy5faGVscGVyLm5leHRMZWZ0KyJweCIsdGhpcy5faGVscGVyLm5leHRMZWZ0PW51bGwpLHRoaXMuX2hlbHBlci5yYWY9bnVsbCl9KSkpLHRoaXMuX2RyYWc/LigpfSx0aGlzLl9oYW5kbGVEcmFnU3RvcD1lPT57aWYobnVsbD09PXRoaXMuX2hlbHBlcilyZXR1cm47dGhpcy5fc291cmNlLmNsYXNzTGlzdC5yZW1vdmUoInVpLWRyYWdnYWJsZS1kcmFnZ2luZyIpLHRoaXMuX2hlbHBlcj1udWxsLHRoaXMuX3N0b3A/LigpfTtjb25zdCB0PXRoaXMuX3NvdXJjZT1lLnNvdXJjZTt0LmNsYXNzTGlzdC5hZGQoInVpLWRyYWdnYWJsZSIpO2NvbnN0IG89dGhpcy5faGFuZGxlPShlLmhhbmRsZT90LnF1ZXJ5U2VsZWN0b3IoZS5oYW5kbGUpOm51bGwpPz90O28uY2xhc3NMaXN0LmFkZCgidWktZHJhZ2dhYmxlLWhhbmRsZSIpLHRoaXMuX3N0YXJ0PWUuc3RhcnQsdGhpcy5fc3RvcD1lLnN0b3AsdGhpcy5fZHJhZz1lLmRyYWcsdGhpcy5fYmFja2VuZD1uZXcgcyh7aGFuZGxlOm8sb25EcmFnU3RhcnQ6dGhpcy5faGFuZGxlRHJhZ1N0YXJ0LG9uRHJhZ01vdmU6dGhpcy5faGFuZGxlRHJhZ01vdmUsb25EcmFnU3RvcDp0aGlzLl9oYW5kbGVEcmFnU3RvcH0pLHRoaXMuX2F4aXM9ZS5heGlzPz8hMSx0aGlzLl9jb250YWlubWVudD1lLmNvbnRhaW5tZW50fWRlc3Ryb3koKXtjb25zdCBlPXRoaXMuX3NvdXJjZTtlLmNsYXNzTGlzdC5yZW1vdmUoInVpLWRyYWdnYWJsZSIpLGUuY2xhc3NMaXN0LnJlbW92ZSgidWktZHJhZ2dhYmxlLWRyYWdnaW5nIik7dGhpcy5faGFuZGxlLmNsYXNzTGlzdC5yZW1vdmUoInVpLWRyYWdnYWJsZS1oYW5kbGUiKSx0aGlzLl9iYWNrZW5kLmRlc3Ryb3koKSxudWxsIT09dGhpcy5faGVscGVyJiYodGhpcy5faGVscGVyLnJhZiYmY2FuY2VsQW5pbWF0aW9uRnJhbWUodGhpcy5faGVscGVyLnJhZiksdGhpcy5faGVscGVyPW51bGwpfX1jbGFzcyBze2NvbnN0cnVjdG9yKGUpe3RoaXMuX3BvaW50ZXJTdGFydGVkPSExLHRoaXMuX2luaXRpYWw9bnVsbCwKdGhpcy5faGFuZGxlUG9pbnRlckRvd249ZT0+e2lmKG51bGwhPT10aGlzLl9pbml0aWFsfHwwIT09ZS5idXR0b24pcmV0dXJuO2lmKCEoZS50YXJnZXQgaW5zdGFuY2VvZiBFbGVtZW50JiZ0aGlzLl9oYW5kbGUuY29udGFpbnMoZS50YXJnZXQpKSlyZXR1cm47aWYodGhpcy5faW5pdGlhbD1lLCF0aGlzLl9kaXN0YW5jZSYmKHRoaXMuX3BvaW50ZXJTdGFydCgpLCF0aGlzLl9wb2ludGVyU3RhcnRlZCkpcmV0dXJuO2UucHJldmVudERlZmF1bHQoKTtjb25zdCB0PXRoaXMuX2dldEV2ZW50VGFyZ2V0KCk7dC5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVybW92ZSIsdGhpcy5faGFuZGxlUG9pbnRlck1vdmUpLHQuYWRkRXZlbnRMaXN0ZW5lcigicG9pbnRlcnVwIix0aGlzLl9oYW5kbGVQb2ludGVyVXApLHQuYWRkRXZlbnRMaXN0ZW5lcigicG9pbnRlcmNhbmNlbCIsdGhpcy5faGFuZGxlUG9pbnRlclVwKSx0LmFkZEV2ZW50TGlzdGVuZXIoImxvc3Rwb2ludGVyY2FwdHVyZSIsdGhpcy5faGFuZGxlTG9zdFBvaW50ZXJDYXB0dXJlKX0sdGhpcy5faGFuZGxlTG9zdFBvaW50ZXJDYXB0dXJlPWU9Pnt0aGlzLl9nZXRFdmVudFRhcmdldCgpPT09ZS50YXJnZXQmJnRoaXMuX2hhbmRsZVBvaW50ZXJVcChlKX0sdGhpcy5faGFuZGxlUG9pbnRlck1vdmU9ZT0+e2lmKG51bGwhPT10aGlzLl9pbml0aWFsJiZ0aGlzLl9pbml0aWFsLnBvaW50ZXJJZD09PWUucG9pbnRlcklkKWlmKHRoaXMuX3BvaW50ZXJTdGFydGVkKXRoaXMuX3BvaW50ZXJEcmFnKGUpO2Vsc2UgaWYodGhpcy5fcG9pbnRlckRpc3RhbmNlTWV0KGUpKXtpZih0aGlzLl9wb2ludGVyU3RhcnQoKSx0aGlzLl9wb2ludGVyU3RhcnRlZClyZXR1cm4gdm9pZCB0aGlzLl9wb2ludGVyRHJhZyhlKTt0aGlzLl9oYW5kbGVQb2ludGVyVXAoZSl9fSx0aGlzLl9oYW5kbGVQb2ludGVyVXA9ZT0+e2lmKG51bGw9PT10aGlzLl9pbml0aWFsfHx0aGlzLl9pbml0aWFsLnBvaW50ZXJJZCE9PWUucG9pbnRlcklkKXJldHVybjtlLnByZXZlbnREZWZhdWx0KCk7Y29uc3QgdD10aGlzLl9nZXRFdmVudFRhcmdldCgpO3QucmVtb3ZlRXZlbnRMaXN0ZW5lcigicG9pbnRlcm1vdmUiLHRoaXMuX2hhbmRsZVBvaW50ZXJNb3ZlKSx0LnJlbW92ZUV2ZW50TGlzdGVuZXIoInBvaW50ZXJ1cCIsdGhpcy5faGFuZGxlUG9pbnRlclVwKSx0LnJlbW92ZUV2ZW50TGlzdGVuZXIoInBvaW50ZXJjYW5jZWwiLHRoaXMuX2hhbmRsZVBvaW50ZXJVcCksdC5yZW1vdmVFdmVudExpc3RlbmVyKCJsb3N0cG9pbnRlcmNhcHR1cmUiLHRoaXMuX2hhbmRsZVBvaW50ZXJVcCksdGhpcy5fcG9pbnRlclN0YXJ0ZWQmJih0aGlzLl9wb2ludGVyU3RhcnRlZD0hMSx0LnJlbGVhc2VQb2ludGVyQ2FwdHVyZSh0aGlzLl9pbml0aWFsLnBvaW50ZXJJZCksdGhpcy5fZGlzcGF0Y2hFdmVudCh0aGlzLl9jcmVhdGVFdmVudCgicG9pbnRlci1kcmFnLXN0b3AiLGUpKSksdGhpcy5faW5pdGlhbD1udWxsfTtjb25zdCB0PXRoaXMuX2hhbmRsZT1lLmhhbmRsZTt0aGlzLl9vbkRyYWdTdGFydD1lLm9uRHJhZ1N0YXJ0LHRoaXMuX29uRHJhZ01vdmU9ZS5vbkRyYWdNb3ZlLHRoaXMuX29uRHJhZ1N0b3A9ZS5vbkRyYWdTdG9wLHRoaXMuX2Rpc3RhbmNlPWUuZGlzdGFuY2U/PzAsdGhpcy5fcm9vdEVsZW1lbnQ9ZS5yb290RWxlbWVudCx0LnN0eWxlLnRvdWNoQWN0aW9uPSJub25lIix0LmFkZEV2ZW50TGlzdGVuZXIoInBvaW50ZXJkb3duIix0aGlzLl9oYW5kbGVQb2ludGVyRG93bil9ZGVzdHJveSgpe2NvbnN0IGU9dGhpcy5faGFuZGxlO2Uuc3R5bGUudG91Y2hBY3Rpb249IiIsZS5yZW1vdmVFdmVudExpc3RlbmVyKCJwb2ludGVyZG93biIsdGhpcy5faGFuZGxlUG9pbnRlckRvd24pLGUucmVtb3ZlRXZlbnRMaXN0ZW5lcigicG9pbnRlcm1vdmUiLHRoaXMuX2hhbmRsZVBvaW50ZXJNb3ZlKSxlLnJlbW92ZUV2ZW50TGlzdGVuZXIoInBvaW50ZXJ1cCIsdGhpcy5faGFuZGxlUG9pbnRlclVwKSxlLnJlbW92ZUV2ZW50TGlzdGVuZXIoInBvaW50ZXJjYW5jZWwiLHRoaXMuX2hhbmRsZVBvaW50ZXJVcCksZS5yZW1vdmVFdmVudExpc3RlbmVyKCJsb3N0cG9pbnRlcmNhcHR1cmUiLHRoaXMuX2hhbmRsZVBvaW50ZXJVcCksbnVsbCE9PXRoaXMuX2luaXRpYWwmJihlLnJlbGVhc2VQb2ludGVyQ2FwdHVyZSh0aGlzLl9pbml0aWFsLnBvaW50ZXJJZCksdGhpcy5faW5pdGlhbD1udWxsKSx0aGlzLl9wb2ludGVyU3RhcnRlZD0hMX1fcG9pbnRlclN0YXJ0KCl7aWYoIXRoaXMuX2luaXRpYWwpcmV0dXJuO2NvbnN0IGU9dGhpcy5fZ2V0RXZlbnRUYXJnZXQoKTt0aGlzLl9kaXNwYXRjaEV2ZW50KHRoaXMuX2NyZWF0ZUV2ZW50KCJwb2ludGVyLWRyYWctc3RhcnQiLHRoaXMuX2luaXRpYWwpKT8odGhpcy5fcG9pbnRlclN0YXJ0ZWQ9ITAsZS5zZXRQb2ludGVyQ2FwdHVyZSh0aGlzLl9pbml0aWFsLnBvaW50ZXJJZCkpOnRoaXMuX2luaXRpYWw9bnVsbH1fcG9pbnRlckRyYWcoZSl7ZS5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuX2Rpc3BhdGNoRXZlbnQodGhpcy5fY3JlYXRlRXZlbnQoInBvaW50ZXItZHJhZy1tb3ZlIixlKSl9X3BvaW50ZXJEaXN0YW5jZU1ldChlKXtyZXR1cm4hdGhpcy5faW5pdGlhbHx8IXRoaXMuX2Rpc3RhbmNlfHxNYXRoLm1heChNYXRoLmFicyh0aGlzLl9pbml0aWFsLmNsaWVudFgtZS5jbGllbnRYKSxNYXRoLmFicyh0aGlzLl9pbml0aWFsLmNsaWVudFktZS5jbGllbnRZKSk+PXRoaXMuX2Rpc3RhbmNlfV9nZXRFdmVudFRhcmdldCgpe3JldHVybiB0aGlzLl9yb290RWxlbWVudD8/dGhpcy5faGFuZGxlfV9kaXNwYXRjaEV2ZW50KGUpe3N3aXRjaChlLnR5cGUpe2Nhc2UicG9pbnRlci1kcmFnLXN0YXJ0Ijp0aGlzLl9vbkRyYWdTdGFydChlKTticmVhaztjYXNlInBvaW50ZXItZHJhZy1tb3ZlIjp0aGlzLl9vbkRyYWdNb3ZlKGUpO2JyZWFrO2Nhc2UicG9pbnRlci1kcmFnLXN0b3AiOnRoaXMuX29uRHJhZ1N0b3AoZSl9cmV0dXJuIWUuZGVmYXVsdFByZXZlbnRlZH1fY3JlYXRlRXZlbnQoZSx0KXtyZXR1cm4oMCxuLmFzc2VydCkobnVsbCE9PXRoaXMuX2luaXRpYWwpLG5ldyBDdXN0b21FdmVudChlLHsKYnViYmxlczohMCxjYW5jZWxhYmxlOiEwLGRldGFpbDp7YmFja2VuZDp0aGlzLGluaXRpYWw6dGhpcy5faW5pdGlhbCxjdXJyZW50OnR9fSl9fX0sNzM0NjQxKGUsdCxvKXsidXNlIHN0cmljdCI7by5kKHQse01hdGNoTWVkaWFNYXA6KCk9PnN9KTt2YXIgbj1vKDc3OTQ3NCksaT1vKDYzMjIyMCkscj1vLm4oaSk7Y2xhc3MgcyBleHRlbmRzIG4uQ29tcG9uZW50e2NvbnN0cnVjdG9yKGUpe3N1cGVyKGUpLHRoaXMuX2hhbmRsZU1lZGlhQ2hhbmdlPSgpPT57Y29uc3QgZT1sKHRoaXMuc3RhdGUucXVlcmllcywoKGUsdCk9PnQubWF0Y2hlcykpO2xldCB0PSExO2Zvcihjb25zdCBvIGluIGUpaWYoZS5oYXNPd25Qcm9wZXJ0eShvKSYmdGhpcy5zdGF0ZS5tYXRjaGVzW29dIT09ZVtvXSl7dD0hMDticmVha310JiZ0aGlzLnNldFN0YXRlKHttYXRjaGVzOmV9KX07Y29uc3R7cnVsZXM6dH09dGhpcy5wcm9wczt0aGlzLnN0YXRlPWEodCl9c2hvdWxkQ29tcG9uZW50VXBkYXRlKGUsdCl7cmV0dXJuIXIoKShlLHRoaXMucHJvcHMpfHwoIXIoKSh0LnJ1bGVzLHRoaXMuc3RhdGUucnVsZXMpfHwhcigpKHQubWF0Y2hlcyx0aGlzLnN0YXRlLm1hdGNoZXMpKX1jb21wb25lbnREaWRNb3VudCgpe3RoaXMuX21pZ3JhdGUobnVsbCx0aGlzLnN0YXRlLnF1ZXJpZXMpfWNvbXBvbmVudERpZFVwZGF0ZShlLHQpe3IoKShlLnJ1bGVzLHRoaXMucHJvcHMucnVsZXMpfHx0aGlzLl9taWdyYXRlKHQucXVlcmllcyx0aGlzLnN0YXRlLnF1ZXJpZXMpfWNvbXBvbmVudFdpbGxVbm1vdW50KCl7dGhpcy5fbWlncmF0ZSh0aGlzLnN0YXRlLnF1ZXJpZXMsbnVsbCl9cmVuZGVyKCl7cmV0dXJuIHRoaXMucHJvcHMuY2hpbGRyZW4odGhpcy5zdGF0ZS5tYXRjaGVzKX1zdGF0aWMgZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzKGUsdCl7aWYocigpKGUucnVsZXMsdC5ydWxlcykpcmV0dXJuIG51bGw7Y29uc3R7cnVsZXM6b309ZTtyZXR1cm4gYShvKX1fbWlncmF0ZShlLHQpe251bGwhPT1lJiZsKGUsKChlLHQpPT57dC5yZW1vdmVFdmVudExpc3RlbmVyKCJjaGFuZ2UiLHRoaXMuX2hhbmRsZU1lZGlhQ2hhbmdlKX0pKSxudWxsIT09dCYmbCh0LCgoZSx0KT0+e3QuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIix0aGlzLl9oYW5kbGVNZWRpYUNoYW5nZSl9KSl9fWZ1bmN0aW9uIGEoZSl7Y29uc3QgdD1sKGUsKChlLHQpPT53aW5kb3cubWF0Y2hNZWRpYSh0KSkpO3JldHVybntxdWVyaWVzOnQsbWF0Y2hlczpsKHQsKChlLHQpPT50Lm1hdGNoZXMpKSxydWxlczp7Li4uZX19fWZ1bmN0aW9uIGwoZSx0KXtjb25zdCBvPXt9O2Zvcihjb25zdCBuIGluIGUpZS5oYXNPd25Qcm9wZXJ0eShuKSYmKG9bbl09dChuLGVbbl0pKTtyZXR1cm4gb319LDUwOTk5MChlLHQsbyl7InVzZSBzdHJpY3QiO28uZCh0LHtNZWFzdXJlOigpPT5pfSk7dmFyIG49byg3MTk0MjUpO2Z1bmN0aW9uIGkoZSl7Y29uc3R7Y2hpbGRyZW46dCxvblJlc2l6ZTpvfT1lO3JldHVybiB0KCgwLG4udXNlUmVzaXplT2JzZXJ2ZXIpKG98fCgoKT0+e30pLFtudWxsPT09b10pKX19LDE1MzczNChlLHQsbyl7InVzZSBzdHJpY3QiO28uZCh0LHtERUZBVUxUX1BPUFVQX01FTlVfSVRFTV9USEVNRTooKT0+dSxQb3B1cE1lbnVJdGVtOigpPT5ofSk7dmFyIG49byg3Nzk0NzQpLGk9byg5MTQ0ODcpLHI9by5uKGkpLHM9bygzODc3NzQpLGE9byg4NDg5ODgpLGw9bygyNzYwMTkpLGM9byg0NzAyOTUpO2NvbnN0IHU9YztmdW5jdGlvbiBkKGUpe2Uuc3RvcFByb3BhZ2F0aW9uKCl9ZnVuY3Rpb24gaChlKXtjb25zdHtpZDp0LHJvbGU6byxjbGFzc05hbWU6aSx0aXRsZTp1LGxhYmVsUm93Q2xhc3NOYW1lOmgsbGFiZWxDbGFzc05hbWU6cCx0b29sYm94Q2xhc3NOYW1lOm0sc2hvcnRjdXQ6Zyxmb3JjZVNob3dTaG9ydGN1dHM6dixpY29uOmYsaWNvbkNsYXNzbmFtZTpfLGlzQWN0aXZlOmIsaXNEaXNhYmxlZDp3LGlzSG92ZXJlZDpDLGFwcGVhckFzRGlzYWJsZWQ6eSxsYWJlbDpULGxpbms6RSxzaG93VG9vbGJveE9uSG92ZXI6eCxzaG93VG9vbGJveE9uRm9jdXM6Uyx0YXJnZXQ6TCxyZWw6ayx0b29sYm94OkEsdG9vbGJveFJvbGU6TSxyZWZlcmVuY2U6Tixvbk1vdXNlT3V0OkQsb25Nb3VzZU92ZXI6UCxvbktleURvd246QixzdXBwcmVzc1Rvb2xib3hDbGljazpJPSEwLHRoZW1lOkY9Yyx0YWJJbmRleDpXLHRhZ05hbWU6UixyZW5kZXJDb21wb25lbnQ6Vixyb3VuZGVkSWNvbjpPLGljb25BcmlhUHJvcHM6eixjaXJjbGVMb2dvOkgsZG9udENsb3NlUG9wdXA6aixvbkNsaWNrOlosb25DbGlja0FyZzpVLG9uQ29udGV4dE1lbnU6Ryxvbk1vdXNlVXA6SyxzdGFydFNsb3Q6cSxkYXRhUWFJZDokLC4uLlF9PWUsWD0oMCxuLnVzZVJlZikobnVsbCksWT0oMCxuLnVzZU1lbW8pKCgoKT0+ZnVuY3Rpb24oZSl7ZnVuY3Rpb24gdCh0KXtjb25zdHtyZWZlcmVuY2U6bywuLi5pfT10LHI9ZT8/KGkuaHJlZj8iYSI6ImRpdiIpLHM9ImEiPT09cj9pOmZ1bmN0aW9uKGUpe2NvbnN0e2Rvd25sb2FkOnQsaHJlZjpvLGhyZWZMYW5nOm4sbWVkaWE6aSxwaW5nOnIscmVsOnMsdGFyZ2V0OmEsdHlwZTpsLHJlZmVycmVyUG9saWN5OmMsLi4udX09ZTtyZXR1cm4gdX0oaSk7cmV0dXJuIG4uY3JlYXRlRWxlbWVudChyLHsuLi5zLHJlZjpvfSl9cmV0dXJuIHQuZGlzcGxheU5hbWU9YERlZmF1bHRDb21wb25lbnQoJHtlfSlgLHR9KFIpKSxbUl0pLEo9Vj8/WTtyZXR1cm4gbi5jcmVhdGVFbGVtZW50KEosey4uLlEsaWQ6dCxyb2xlOm8sY2xhc3NOYW1lOnIoKShpLEYuaXRlbSxmJiZGLndpdGhJY29uLHtbRi5pc0FjdGl2ZV06YixbRi5pc0Rpc2FibGVkXTp3fHx5LFtGLmhvdmVyZWRdOkN9KSx0aXRsZTp1LGhyZWY6RSx0YXJnZXQ6TCxyZWw6ayxyZWZlcmVuY2U6ZnVuY3Rpb24oZSl7WC5jdXJyZW50PWUsImZ1bmN0aW9uIj09dHlwZW9mIE4mJk4oZSk7Im9iamVjdCI9PXR5cGVvZiBOJiYoTi5jdXJyZW50PWUpfSxvbkNsaWNrOmZ1bmN0aW9uKGUpe2lmKHcpcmV0dXJuO1omJlooVSxlKTtqfHwoZS5jdXJyZW50VGFyZ2V0LmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJwb3B1cC1tZW51LWNsb3NlLWV2ZW50Iix7CmJ1YmJsZXM6ITAsZGV0YWlsOntjbGlja1R5cGU6KDAsYS5pc0tleWJvYXJkQ2xpY2spKGUpPyJrZXlib2FyZCI6Im1vdXNlIn19KSksKDAsbC5nbG9iYWxDbG9zZU1lbnUpKCkpfSxvbkNvbnRleHRNZW51Okcsb25Nb3VzZVVwOkssb25Nb3VzZU92ZXI6UCxvbk1vdXNlT3V0OkQsb25LZXlEb3duOkIsdGFiSW5kZXg6VywiZGF0YS1xYS1pZCI6JH0sSCYmbi5jcmVhdGVFbGVtZW50KHMuQ2lyY2xlTG9nbyx7Li4ueixjbGFzc05hbWU6Y1siZGlzY2xvc3VyZS1pdGVtLWNpcmNsZS1sb2dvIl0sc2l6ZToieHh4c21hbGwiLGxvZ29Vcmw6SC5sb2dvVXJsLHBsYWNlaG9sZGVyTGV0dGVyOiJwbGFjZWhvbGRlckxldHRlciJpbiBIP0gucGxhY2Vob2xkZXJMZXR0ZXI6dm9pZCAwfSkscSYmbi5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOkYuc3RhcnRTbG90fSxxKSxmJiZuLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHsiYXJpYS1sYWJlbCI6eiYmelsiYXJpYS1sYWJlbCJdLCJhcmlhLWhpZGRlbiI6eiYmQm9vbGVhbih6WyJhcmlhLWhpZGRlbiJdKSxjbGFzc05hbWU6cigpKEYuaWNvbixPJiZjWyJyb3VuZC1pY29uIl0sXyksZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUw6e19faHRtbDpmfX0pLG4uY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZTpyKCkoRi5sYWJlbFJvdyxoKX0sbi5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOnIoKShGLmxhYmVsLHApfSxUKSksKHZvaWQgMCE9PWd8fHYpJiZuLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6Ri5zaG9ydGN1dH0sKGVlPWcpJiZlZS5zcGxpdCgiKyIpLmpvaW4oIiArICIpKSx2b2lkIDAhPT1BJiZuLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtyb2xlOk0sb25DbGljazpJP2Q6dm9pZCAwLGNsYXNzTmFtZTpyKCkobSxGLnRvb2xib3gse1tGLnNob3dPbkhvdmVyXTp4LFtGLnNob3dPbkZvY3VzXTpTfSl9LEEpKTt2YXIgZWV9fSw4MzU5NjQoZSx0LG8peyJ1c2Ugc3RyaWN0IjtvLmQodCx7UG9wdXBNZW51OigpPT5ofSk7dmFyIG49byg3Nzk0NzQpLGk9bygxMjkzNjUpLHI9byg5MjgxMzIpLHM9byg1ODU0OCksYT1vKDIzNjc2NSksbD1vKDIyNzk0OSksYz1vKDE0NTE1MCksdT1vKDYzMjk5MiksZD1vKDMwMTkzNyk7ZnVuY3Rpb24gaChlKXtjb25zdHtjb250cm9sbGVyOnQsY2hpbGRyZW46byxpc09wZW5lZDpoLGNsb3NlT25DbGlja091dHNpZGU6cD0hMCxkb05vdENsb3NlT246bSxvbkNsaWNrT3V0c2lkZTpnLG9uQ2xvc2U6dixvbktleWJvYXJkQ2xvc2U6ZixkYXRhUWFJZDpfPSJwb3B1cC1tZW51LWNvbnRhaW5lciIsY2xvc2VPblNjcm9sbE91dHNpZGVPZmZzZXQ6YiwuLi53fT1lLEM9KDAsbi51c2VDb250ZXh0KSh1LkNsb3NlRGVsZWdhdGVDb250ZXh0KSx5PW4udXNlQ29udGV4dChsLk1lbnVXaWR0aENvbnRleHQpLFQ9KDAsbi51c2VDb250ZXh0KShkLlJlbWVhc3VyZURlbGVnYXRlQ29udGV4dCksRT0oMCxhLnVzZU91dHNpZGVFdmVudCkoe2hhbmRsZXI6ZnVuY3Rpb24oZSl7ZyYmZyhlKTtpZighcClyZXR1cm47Y29uc3QgdD0oMCxyLmRlZmF1bHQpKG0pP20oKTpudWxsPT1tP1tdOlttXTtpZih0Lmxlbmd0aD4wJiZlLnRhcmdldCBpbnN0YW5jZW9mIE5vZGUpZm9yKGNvbnN0IG8gb2YgdCl7Y29uc3QgdD1pLmZpbmRET01Ob2RlKG8pO2lmKHQgaW5zdGFuY2VvZiBOb2RlJiZ0LmNvbnRhaW5zKGUudGFyZ2V0KSlyZXR1cm59digpfSxtb3VzZURvd246ITAsdG91Y2hTdGFydDohMH0pO3JldHVybiBoP24uY3JlYXRlRWxlbWVudChzLlBvcnRhbCx7dG9wOiIwIixsZWZ0OiIwIixyaWdodDoiMCIsYm90dG9tOiIwIixwb2ludGVyRXZlbnRzOiJub25lIn0sbi5jcmVhdGVFbGVtZW50KCJzcGFuIix7cmVmOkUsc3R5bGU6e3BvaW50ZXJFdmVudHM6ImF1dG8ifX0sbi5jcmVhdGVFbGVtZW50KGMuTWVudSx7Li4udyxvbkNsb3NlOnYsb25LZXlib2FyZENsb3NlOmYsb25TY3JvbGw6ZnVuY3Rpb24odCl7Y29uc3R7b25TY3JvbGw6b309ZTtvJiZvKHQpfSxjdXN0b21DbG9zZURlbGVnYXRlOkMsY3VzdG9tUmVtZWFzdXJlRGVsZWdhdGU6VCxyZWY6dCxkYXRhUWFJZDpfLGxpbWl0TWF4V2lkdGg6eS5zZXRNZW51TWF4V2lkdGgsImRhdGEtdG9vbHRpcC1zaG93LW9uLWZvY3VzIjoidHJ1ZSIsY2xvc2VPblNjcm9sbE91dHNpZGVPZmZzZXQ6Yn0sbykpKTpudWxsfX0sMzAxOTM3KGUsdCxvKXsidXNlIHN0cmljdCI7by5kKHQse1JlbWVhc3VyZURlbGVnYXRlQ29udGV4dDooKT0+bn0pO2NvbnN0IG49byg3Nzk0NzQpLmNyZWF0ZUNvbnRleHQodm9pZCAwKX0sMTk5MTcyKGUsdCxvKXsidXNlIHN0cmljdCI7by5kKHQse1Rvb2xXaWRnZXRNZW51U3VtbWFyeTooKT0+YX0pO3ZhciBuPW8oNzc5NDc0KSxpPW8oOTE0NDg3KSxyPW8ubihpKSxzPW8oNzYxMDkzKTtmdW5jdGlvbiBhKGUpe3JldHVybiBuLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpyKCkoZS5jbGFzc05hbWUscy50aXRsZSl9LGUuY2hpbGRyZW4pfX0sMzg3MjMxKGUsdCxvKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbihlLHQsbz17fSl7cmV0dXJuIE9iamVjdC5hc3NpZ24oe30sZSxmdW5jdGlvbihlLHQsbz17fSl7Y29uc3Qgbj1PYmplY3QuYXNzaWduKHt9LHQpO2Zvcihjb25zdCBpIG9mIE9iamVjdC5rZXlzKHQpKXtjb25zdCByPW9baV18fGk7ciBpbiBlJiYobltpXT1bZVtyXSx0W2ldXS5qb2luKCIgIikpfXJldHVybiBufShlLHQsbykpfW8uZCh0LHttZXJnZVRoZW1lczooKT0+bn0pfSw1OTA0ODYoZSx0LG8peyJ1c2Ugc3RyaWN0IjtvLmQodCx7QmFkZ2U6KCk9PmN9KTt2YXIgbj1vKDc3OTQ3NCksaT1vKDkxNDQ4Nykscj1vLm4oaSkscz1vKDk3Nzc3KSxhPW8ubihzKTtmdW5jdGlvbiBsKHtocmVmOmUsb25DbGljazp0LHJlZmVyZW5jZTpvLC4uLml9KXtyZXR1cm4gZT9uLmNyZWF0ZUVsZW1lbnQoImEiLHtocmVmOmUsb25DbGljazp0LHRhcmdldDoiX2JsYW5rIixyZWY6bywuLi5pfSk6dD9uLmNyZWF0ZUVsZW1lbnQoImJ1dHRvbiIse29uQ2xpY2s6dCxyZWY6bywuLi5pfSk6bi5jcmVhdGVFbGVtZW50KCJzcGFuIix7cmVmOm8sLi4uaX0pfQpmdW5jdGlvbiBjKHtjbGFzc05hbWU6ZSxzaXplOnQsbGVmdFNsb3Q6byxyaWdodFNsb3Q6aSxjaGlsZHJlbjpzLC4uLmN9KXtjb25zdCB1PXIoKShlLGEoKS5iYWRnZSx0JiZhKClbdF0scyYmYSgpLmhhc0NoaWxkcmVuKTtyZXR1cm4gbi5jcmVhdGVFbGVtZW50KGwse2NsYXNzTmFtZTp1LC4uLmN9LG8mJm4uY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOmEoKS5zbG90fSxvKSxzJiZuLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6YSgpLmNvbnRlbnR9LHMpLGkmJm4uY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOmEoKS5zbG90fSxpKSl9fSw2NzQ3NDkoZSx0LG8peyJ1c2Ugc3RyaWN0IjtvLmQodCx7QnV0dG9uOigpPT5ofSk7dmFyIG4saSxyLHM9byg3Nzk0NzQpLGE9bygyOTU3NDQpO2Z1bmN0aW9uIGwoZT0iZGVmYXVsdCIpe3N3aXRjaChlKXtjYXNlImRlZmF1bHQiOnJldHVybiJwcmltYXJ5IjtjYXNlInN0cm9rZSI6cmV0dXJuInNlY29uZGFyeSJ9fWZ1bmN0aW9uIGMoZT0icHJpbWFyeSIpe3N3aXRjaChlKXtjYXNlInByaW1hcnkiOnJldHVybiJicmFuZCI7Y2FzZSJzdWNjZXNzIjpyZXR1cm4iZ3JlZW4iO2Nhc2UiZGVmYXVsdCI6cmV0dXJuImdyYXkiO2Nhc2UiZGFuZ2VyIjpyZXR1cm4icmVkIn19ZnVuY3Rpb24gdShlPSJtIil7c3dpdGNoKGUpe2Nhc2UicyI6cmV0dXJuInhzbWFsbCI7Y2FzZSJtIjpyZXR1cm4ic21hbGwiO2Nhc2UibCI6cmV0dXJuImxhcmdlIn19ZnVuY3Rpb24gZChlKXtjb25zdHtpbnRlbnQ6dCxzaXplOm8sYXBwZWFyYW5jZTpuLHVzZUZ1bGxXaWR0aDppLGljb246ciwuLi5zfT1lO3JldHVybnsuLi5zLGNvbG9yOmModCksc2l6ZTp1KG8pLHZhcmlhbnQ6bChuKSxzdHJldGNoOml9fWZ1bmN0aW9uIGgoZSl7cmV0dXJuIHMuY3JlYXRlRWxlbWVudChhLlNxdWFyZUJ1dHRvbix7Li4uZChlKX0pfSFmdW5jdGlvbihlKXtlLlByaW1hcnk9InByaW1hcnkiLGUuU3VjY2Vzcz0ic3VjY2VzcyIsZS5EZWZhdWx0PSJkZWZhdWx0IixlLkRhbmdlcj0iZGFuZ2VyIn0obnx8KG49e30pKSxmdW5jdGlvbihlKXtlLlNtYWxsPSJzIixlLk1lZGl1bT0ibSIsZS5MYXJnZT0ibCJ9KGl8fChpPXt9KSksZnVuY3Rpb24oZSl7ZS5EZWZhdWx0PSJkZWZhdWx0IixlLlN0cm9rZT0ic3Ryb2tlIn0ocnx8KHI9e30pKX0sMTA3NTg1KGUsdCxvKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbihlLHQpe3JldHVybiB0fHxudWxsPT1lfHwoInN0cmluZyI9PXR5cGVvZiBlfHxBcnJheS5pc0FycmF5KGUpKSYmMD09PWUubGVuZ3RofW8uZCh0LHtpc0ljb25Pbmx5OigpPT5ufSl9LDIyMDc2NChlLHQsbyl7InVzZSBzdHJpY3QiO28uZCh0LHtCdXR0b25Hcm91cENvbnRleHQ6KCk9Pm59KTtjb25zdCBuPW8oNzc5NDc0KS5jcmVhdGVDb250ZXh0KHtpc0luQnV0dG9uR3JvdXA6ITEsaXNHcm91cFByaW1hcnk6ITF9KX0sMzMyNjg3KGUsdCxvKXsidXNlIHN0cmljdCI7by5kKHQse0RFRkFVTFRfSUNPTl9CVVRUT05fVkFSSUFOVDooKT0+aSxJY29uQnV0dG9uVmFyaWFudENvbnRleHQ6KCk9PnIsSWNvbkJ1dHRvblZhcmlhbnRDb250ZXh0UHJvdmlkZXI6KCk9PnN9KTt2YXIgbj1vKDc3OTQ3NCk7Y29uc3QgaT0icHJpbWFyeSIscj0oMCxuLmNyZWF0ZUNvbnRleHQpKHt2YXJpYW50OnZvaWQgMH0pO2Z1bmN0aW9uIHMoZSl7cmV0dXJuIG4uY3JlYXRlRWxlbWVudChyLlByb3ZpZGVyLHt2YWx1ZTp7dmFyaWFudDplLnZhcmlhbnR9fSxlLmNoaWxkcmVuKX19LDMyODIxOShlLHQsbyl7InVzZSBzdHJpY3QiO28uZCh0LHt1c2VMaWdodEJ1dHRvbkNsYXNzZXM6KCk9PnV9KTt2YXIgbj1vKDc3OTQ3NCksaT1vKDkxNDQ4Nykscj1vLm4oaSkscz1vKDMwOTkyMCksYT1vKDEwNzU4NSksbD1vKDUzMjAxMSksYz1vKDIyMDc2NCk7Y29uc3QgdT0oZSx0LG8pPT57Y29uc3QgaT0oMCxuLnVzZUNvbnRleHQpKHMuQ3VzdG9tQmVoYXZpb3VyQ29udGV4dCkse2NsYXNzTmFtZTp1LGlzU2VsZWN0ZWQ6ZCxjaGlsZHJlbjpoLHNob3dDYXJldDpwLGZvcmNlRGlyZWN0aW9uOm0saWNvbk9ubHk6Zyxjb2xvcjp2PSJncmF5Iix2YXJpYW50OmY9InByaW1hcnkiLHNpemU6Xz0ibWVkaXVtIixlbmFibGVBY3RpdmVTdGF0ZVN0eWxlczpiPWkuZW5hYmxlQWN0aXZlU3RhdGVTdHlsZXMsdHlwb2dyYXBoeTp3LGlzTGluazpDPSExLHRleHRXcmFwOnksaXNQaWxsczpULGlzQWN0aXZlOkUsc3RhcnRTbG90OngsZW5kU2xvdDpTfT10LEw9ZVtgdHlwb2dyYXBoeS0keygoZSx0LG8pPT57aWYobyl7Y29uc3QgZT1vLnJlcGxhY2UoL15cRCsvZywiIik7cmV0dXJuIHQ/YHNlbWlib2xkJHtlfWA6b31zd2l0Y2goZSl7Y2FzZSJ4c21hbGwiOnJldHVybiB0PyJzZW1pYm9sZDE0cHgiOiJyZWd1bGFyMTRweCI7Y2FzZSJzbWFsbCI6Y2FzZSJtZWRpdW0iOnJldHVybiB0PyJzZW1pYm9sZDE2cHgiOiJyZWd1bGFyMTZweCI7ZGVmYXVsdDpyZXR1cm4iIn19KShfLGR8fFQsd3x8dm9pZCAwKX1gXSxrPSgwLG4udXNlQ29udGV4dCkobC5Db250cm9sR3JvdXBDb250ZXh0KSx7aXNJbkJ1dHRvbkdyb3VwOkEsaXNHcm91cFByaW1hcnk6TX09KDAsbi51c2VDb250ZXh0KShjLkJ1dHRvbkdyb3VwQ29udGV4dCk7cmV0dXJuIHIoKSh1LGUubGlnaHRCdXR0b24sQyYmZS5saW5rLEUmJmUuYWN0aXZlLGQmJmUuc2VsZWN0ZWQsKDAsYS5pc0ljb25Pbmx5KShoLGcpJiZlLm5vQ29udGVudCwhIXgmJmUud2l0aFN0YXJ0U2xvdCwocHx8ISFTKSYmZS53aXRoRW5kU2xvdCxvJiZlLndpdGhHcm91cGVkLG0mJmVbbV0sZVtNPyJwcmltYXJ5IjpmXSxlW00/ImdyYXkiOnZdLGVbX10sTCwhYiYmZS5kaXNhYmxlQWN0aXZlU3RhdGVTdHlsZXMsay5pc0dyb3VwZWQmJmUuZ3JvdXBlZCx5JiZlLndyYXAsQSYmZS5kaXNhYmxlQWN0aXZlT25Ub3VjaCxUJiZlLnBpbGxzKX19LDgzMDEyKGUsdCxvKXsidXNlIHN0cmljdCI7by5kKHQse0xpZ2h0QnV0dG9uQ29udGVudDooKT0+cH0pCjt2YXIgbj1vKDc3OTQ3NCksaT1vKDkxNDQ4Nykscj1vLm4oaSkscz1vKDc3MDE0MyksYT1vKDEwNzU4NSksbD1vKDI3MzMxMCksYz1vKDkzNTEpLHU9by5uKGMpLGQ9bygzNjQ4MTUpLGg9by5uKGQpO2Z1bmN0aW9uIHAoZSl7Y29uc3R7c2hvd0NhcmV0OnQsaWNvbk9ubHk6byxlbGxpcHNpczppPSEwLHRleHRXcmFwOmMsdG9vbHRpcFRleHQ6ZCxjaGlsZHJlbjpwLGVuZFNsb3Q6bSxzdGFydFNsb3Q6Zyxpc0FjdGl2ZUNhcmV0OnZ9PWU7W20sdF0uZmlsdGVyKChlPT4hIWUpKTtyZXR1cm4gbi5jcmVhdGVFbGVtZW50KG4uRnJhZ21lbnQsbnVsbCxnJiZuLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6cigpKGgoKS5zbG90LGgoKS5zdGFydFNsb3QpfSxnKSwhKDAsYS5pc0ljb25Pbmx5KShwLG8pJiZuLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6cigpKGgoKS5jb250ZW50LCFjJiZoKCkubm93cmFwLCJhcHBseS1vdmVyZmxvdy10b29sdGlwIiwiYXBwbHktb3ZlcmZsb3ctdG9vbHRpcC0tY2hlY2stY2hpbGRyZW4tcmVjdXJzaXZlbHkiLCJhcHBseS1vdmVyZmxvdy10b29sdGlwLS1hbGxvdy10ZXh0IiksImRhdGEtb3ZlcmZsb3ctdG9vbHRpcC10ZXh0IjpkPz8oMCxzLmdldFRleHRGb3JUb29sdGlwKShwKX0sY3x8aT9uLmNyZWF0ZUVsZW1lbnQobi5GcmFnbWVudCxudWxsLG4uY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZTpyKCkoIWMmJmkmJmgoKS5lbGxpcHNpc0NvbnRhaW5lcixjJiZoKCkudGV4dFdyYXBDb250YWluZXIsYyYmaSYmaCgpLnRleHRXcmFwV2l0aEVsbGlwc2lzKX0scCksbi5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOmgoKS52aXN1YWxseUhpZGRlbiwiYXJpYS1oaWRkZW4iOiEwfSxwKSk6bi5jcmVhdGVFbGVtZW50KG4uRnJhZ21lbnQsbnVsbCxwLG4uY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZTpoKCkudmlzdWFsbHlIaWRkZW4sImFyaWEtaGlkZGVuIjohMH0scCkpKSxtJiZuLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6cigpKGgoKS5zbG90LGgoKS5lbmRTbG90KX0sbSksdCYmKGU9Pm4uY3JlYXRlRWxlbWVudChsLkljb24se2NsYXNzTmFtZTpyKCkoaCgpLmNhcmV0LGUmJmgoKS5hY3RpdmVDYXJldCksaWNvbjp1KCl9KSkodikpfX0sODU0ODIwKGUsdCxvKXsidXNlIHN0cmljdCI7by5kKHQse0xpZ2h0QnV0dG9uOigpPT5ofSk7dmFyIG49byg3Nzk0NzQpLGk9byg1MzIwMTEpLHI9bygzMjgyMTkpLHM9byg4MzAxMiksYT1vKDM0NTExNiksbD1vKDM2NDgxNSksYz1vLm4obCksdT1vKDg1NDQ1KSxkPW8ubih1KTtmdW5jdGlvbiBoKGUpe2NvbnN0e2lzR3JvdXBlZDp0fT1uLnVzZUNvbnRleHQoaS5Db250cm9sR3JvdXBDb250ZXh0KSx7cmVmZXJlbmNlOm8sY2xhc3NOYW1lOmwsaXNTZWxlY3RlZDp1LGNoaWxkcmVuOmgsaWNvbk9ubHk6cCxlbGxpcHNpczptLHNob3dDYXJldDpnLGZvcmNlRGlyZWN0aW9uOnYsZW5kU2xvdDpmLHN0YXJ0U2xvdDpfLGNvbG9yOmIsdmFyaWFudDp3LHNpemU6QyxlbmFibGVBY3RpdmVTdGF0ZVN0eWxlczp5LHR5cG9ncmFwaHk6VCx0ZXh0V3JhcDpFPSExLG1heExpbmVzOngsc3R5bGU6Uz17fSxpc1BpbGxzOkwsaXNBY3RpdmU6ayx0b29sdGlwVGV4dDpBLHJvbGU6TSxkYXRhUWFJZDpOLGFyaWFMYWJlbDpELG5hbWU6UCxvbkZvY3VzOkIsb25CbHVyOkksb25Nb3VzZUVudGVyOkYsb25Nb3VzZUxlYXZlOlcsb25Nb3VzZU92ZXI6Uixvbk1vdXNlT3V0OlYsb25DbGljazpPLG9uQW5pbWF0aW9uRW5kOnosb25Qb2ludGVyT3ZlcjpILG9uUG9pbnRlck91dDpqLG9uS2V5RG93bjpaLGF1dG9Gb2N1czpVLGlzQWN0aXZlQ2FyZXQ6RyxpZDpLLGRpc2FibGVkOnEsdGFiSW5kZXg6JCx2YWx1ZTpRLHRpdGxlOlgsdHlwZTpZLC4uLkp9PWUsZWU9KDAsYS5maWx0ZXJEYXRhUHJvcHMpKEopLHRlPSgwLGEuZmlsdGVyQXJpYVByb3BzKShKKSxvZT1FP3g/PzI6MSxuZT1vZT4wP3suLi5TLCItLXVpLWxpYi1saWdodC1idXR0b24tY29udGVudC1tYXgtbGluZXMiOm9lfTpTO3JldHVybiBuLmNyZWF0ZUVsZW1lbnQoImJ1dHRvbiIse25hbWU6UCxvbkZvY3VzOkIsb25CbHVyOkksb25Nb3VzZUVudGVyOkYsb25Nb3VzZUxlYXZlOlcsb25Nb3VzZU92ZXI6Uixvbk1vdXNlT3V0OlYsb25DbGljazpPLG9uQW5pbWF0aW9uRW5kOnosb25Qb2ludGVyT3ZlcjpILG9uUG9pbnRlck91dDpqLG9uS2V5RG93bjpaLGF1dG9Gb2N1czpVLGlkOkssZGlzYWJsZWQ6cSx0YWJJbmRleDokLHZhbHVlOlEsdGl0bGU6WCx0eXBlOlksImRhdGEtcWEtaWQiOk4sImFyaWEtbGFiZWwiOkQsLi4uZWUsLi4udGUsY2xhc3NOYW1lOigwLHIudXNlTGlnaHRCdXR0b25DbGFzc2VzKSh7Li4uZCgpLC4uLmMoKX0se2NsYXNzTmFtZTpsLGlzU2VsZWN0ZWQ6dSxjaGlsZHJlbjpoLGljb25Pbmx5OnAsc2hvd0NhcmV0OmcsZm9yY2VEaXJlY3Rpb246dixlbmRTbG90OmYsc3RhcnRTbG90Ol8sY29sb3I6Yix2YXJpYW50Oncsc2l6ZTpDLGVuYWJsZUFjdGl2ZVN0YXRlU3R5bGVzOnksdHlwb2dyYXBoeTpULHRleHRXcmFwOkUsaXNQaWxsczpMLGlzQWN0aXZlOmt9LHQpLHJlZjpvLHN0eWxlOm5lLHJvbGU6TX0sbi5jcmVhdGVFbGVtZW50KHMuTGlnaHRCdXR0b25Db250ZW50LHtzaG93Q2FyZXQ6Zyxpc0FjdGl2ZUNhcmV0OmcmJihMfHxrfHx1fHxHKSxpY29uT25seTpwLGVsbGlwc2lzOm0sdGV4dFdyYXA6RSx0b29sdGlwVGV4dDpBLGVuZFNsb3Q6ZixzdGFydFNsb3Q6X30saCkpfX0sMjQzMjA3KGUsdCxvKXsidXNlIHN0cmljdCI7by5kKHQse1NxdWFyZUJ1dHRvbkNvbnRlbnQ6KCk9PmQsZ2V0U3F1YXJlQnV0dG9uQ2xhc3NlczooKT0+dX0pO3ZhciBuPW8oNzc5NDc0KSxpPW8oOTE0NDg3KSxyPW8ubihpKSxzPW8oNjA1MTQxKSxhPW8oNDczMTU5KSxsPW8ubihhKTtjb25zdCBjPSJhcHBseS1vdmVyZmxvdy10b29sdGlwIGFwcGx5LW92ZXJmbG93LXRvb2x0aXAtLWNoZWNrLWNoaWxkcmVuLXJlY3Vyc2l2ZWx5IGFwcGx5LW92ZXJmbG93LXRvb2x0aXAtLWFsbG93LXRleHQgYXBwbHktY29tbW9uLXRvb2x0aXAiCjtmdW5jdGlvbiB1KGUpe2NvbnN0e3NpemU6dD0ibWVkaXVtIix2YXJpYW50Om89InByaW1hcnkiLGNvbG9yOm49ImJyYW5kIixzdHJldGNoOmk9ITEsc3RhcnRTbG90OmEsZW5kU2xvdDp1LGljb25Pbmx5OmQ9ITEsY2xhc3NOYW1lOmgsaXNHcm91cGVkOnAsY2VsbFN0YXRlOm0sZGlzYWJsZVBvc2l0aW9uQWRqdXN0bWVudDpnPSExLHByaW1hcnlUZXh0OnYsc2Vjb25kYXJ5VGV4dDpmLGlzQW5jaG9yOl89ITF9PWUsYj0iYnJhbmQiPT09bj8iYmxhY2siOm4sdz1mdW5jdGlvbihlKXtsZXQgdD0iIjtyZXR1cm4gMCE9PWUmJigxJmUmJih0PXIoKSh0LGwoKVsibm8tY29ybmVyLXRvcC1sZWZ0Il0pKSwyJmUmJih0PXIoKSh0LGwoKVsibm8tY29ybmVyLXRvcC1yaWdodCJdKSksNCZlJiYodD1yKCkodCxsKClbIm5vLWNvcm5lci1ib3R0b20tcmlnaHQiXSkpLDgmZSYmKHQ9cigpKHQsbCgpWyJuby1jb3JuZXItYm90dG9tLWxlZnQiXSkpKSx0fSgoMCxzLmdldEdyb3VwQ2VsbFJlbW92ZVJvdW5kQm9yZGVycykobSkpLEM9ZCYmKGF8fHUpO3JldHVybiByKCkoaCxsKCkuYnV0dG9uLGwoKVt0XSxsKClbYl0sbCgpW29dLGkmJmwoKS5zdHJldGNoLGEmJmwoKS53aXRoU3RhcnRJY29uLHUmJmwoKS53aXRoRW5kSWNvbixDJiZsKCkuaWNvbk9ubHksdyxwJiZsKCkuZ3JvdXBlZCxwJiYhZyYmbCgpLmFkanVzdFBvc2l0aW9uLHAmJm0uaXNUb3AmJmwoKS5maXJzdFJvdyxwJiZtLmlzTGVmdCYmbCgpLmZpcnN0Q29sLHYmJmYmJmwoKS5tdWx0aWxpbmVDb250ZW50LF8mJmwoKS5saW5rLGMpfWZ1bmN0aW9uIGQoZSl7Y29uc3R7c3RhcnRTbG90OnQsaWNvbk9ubHk6byxjaGlsZHJlbjppLGVuZFNsb3Q6cyxwcmltYXJ5VGV4dDphLHNlY29uZGFyeVRleHQ6dX09ZTtpZih0JiZzJiZvKXJldHVybiBuLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6cigpKGwoKS5zbG90LGwoKS5zdGFydFNsb3RXcmFwKX0sdCk7Y29uc3QgZD1vJiYodD8/cyksaD0hdCYmIXMmJiFvJiYhaSYmYSYmdTtyZXR1cm4gbi5jcmVhdGVFbGVtZW50KG4uRnJhZ21lbnQsbnVsbCx0JiZuLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6cigpKGwoKS5zbG90LGwoKS5zdGFydFNsb3RXcmFwKX0sdCksaSYmIWQmJm4uY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZTpsKCkuY29udGVudH0saSkscyYmbi5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOnIoKShsKCkuc2xvdCxsKCkuZW5kU2xvdFdyYXApfSxzKSxoJiYhZCYmZnVuY3Rpb24oZSl7cmV0dXJuIGUucHJpbWFyeVRleHQmJmUuc2Vjb25kYXJ5VGV4dCYmbi5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6cigpKGwoKS50ZXh0V3JhcCxjKX0sbi5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOmwoKS5wcmltYXJ5VGV4dH0sIiAiLGUucHJpbWFyeVRleHQsIiAiKSwic3RyaW5nIj09dHlwZW9mIGUuc2Vjb25kYXJ5VGV4dD9uLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6bCgpLnNlY29uZGFyeVRleHR9LCIgIixlLnNlY29uZGFyeVRleHQsIiAiKTpuLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6bCgpLnNlY29uZGFyeVRleHR9LG4uY3JlYXRlRWxlbWVudCgic3BhbiIsbnVsbCxlLnNlY29uZGFyeVRleHQuZmlyc3RMaW5lKSxuLmNyZWF0ZUVsZW1lbnQoInNwYW4iLG51bGwsZS5zZWNvbmRhcnlUZXh0LnNlY29uZExpbmUpKSl9KGUpKX19LDI5NTc0NChlLHQsbyl7InVzZSBzdHJpY3QiO28uZCh0LHtTcXVhcmVCdXR0b246KCk9PnV9KTt2YXIgbj1vKDc3OTQ3NCksaT1vKDc3MDE0Mykscj1vKDUzMjAxMSkscz1vKDM0NTExNik7ZnVuY3Rpb24gYShlLHQpe3JldHVybiBvPT57aWYodClyZXR1cm4gby5wcmV2ZW50RGVmYXVsdCgpLHZvaWQgby5zdG9wUHJvcGFnYXRpb24oKTtlPy4obyl9fXZhciBsPW8oMjQzMjA3KTtmdW5jdGlvbiBjKGUpe2NvbnN0e2NsYXNzTmFtZTp0LGNvbG9yOm8sdmFyaWFudDpuLHNpemU6aSxzdHJldGNoOnIsaWNvbk9ubHk6YSxzdGFydFNsb3Q6bCxlbmRTbG90OmMscHJpbWFyeVRleHQ6dSxzZWNvbmRhcnlUZXh0OmQsLi4uaH09ZTtyZXR1cm57Li4uaCwuLi4oMCxzLmZpbHRlckRhdGFQcm9wcykoZSksLi4uKDAscy5maWx0ZXJBcmlhUHJvcHMpKGUpfX1mdW5jdGlvbiB1KGUpe2NvbnN0e3JlZmVyZW5jZTp0LHRvb2x0aXBUZXh0Om8sZGlzYWJsZWQ6cyxvbkNsaWNrOnUsb25Nb3VzZU92ZXI6ZCxvbk1vdXNlT3V0Omgsb25Nb3VzZURvd246cCxvbk1vdXNlRW50ZXI6bSxhcmlhRGlzYWJsZWQ6ZywuLi52fT1lLHtpc0dyb3VwZWQ6ZixjZWxsU3RhdGU6XyxkaXNhYmxlUG9zaXRpb25BZGp1c3RtZW50OmJ9PSgwLG4udXNlQ29udGV4dCkoci5Db250cm9sR3JvdXBDb250ZXh0KSx3PSgwLGwuZ2V0U3F1YXJlQnV0dG9uQ2xhc3Nlcykoey4uLnYsaXNHcm91cGVkOmYsY2VsbFN0YXRlOl8sZGlzYWJsZVBvc2l0aW9uQWRqdXN0bWVudDpifSksQz1vPz8oZS5wcmltYXJ5VGV4dD9bZS5wcmltYXJ5VGV4dCxlLnNlY29uZGFyeVRleHRdLmpvaW4oIiAiKTooMCxpLmdldFRleHRGb3JUb29sdGlwKShlLmNoaWxkcmVuKSk7cmV0dXJuIG4uY3JlYXRlRWxlbWVudCgiYnV0dG9uIix7Li4uYyh2KSwiYXJpYS1kaXNhYmxlZCI6c3x8Zyx0YWJJbmRleDplLnRhYkluZGV4Pz8ocz8tMTowKSxjbGFzc05hbWU6dyxyZWY6dCxvbkNsaWNrOmEodSxzKSxvbk1vdXNlRG93bjphKHAscyksb25Nb3VzZU92ZXI6YShkLHMpLG9uTW91c2VPdXQ6YShoLHMpLG9uTW91c2VFbnRlcjphKG0scyksImRhdGEtb3ZlcmZsb3ctdG9vbHRpcC10ZXh0IjpDfSxuLmNyZWF0ZUVsZW1lbnQobC5TcXVhcmVCdXR0b25Db250ZW50LHsuLi52fSkpfX0sMzg3Nzc0KGUsdCxvKXsidXNlIHN0cmljdCI7by5kKHQse0NpcmNsZUxvZ286KCk9PmEsaGlkZGVuQ2lyY2xlTG9nb0NsYXNzOigpPT5zfSk7dmFyIG49byg3Nzk0NzQpLGk9byg3OTQxODcpLHI9bygxNDAwMTcpO2NvbnN0IHM9by5uKHIpKCkuaGlkZGVuO2Z1bmN0aW9uIGEoZSl7Y29uc3QgdD0oMCxpLmlzQ2lyY2xlTG9nb1dpdGhVcmxQcm9wcykoZSksW28scl09KDAsCm4udXNlU3RhdGUpKDApLHM9KDAsbi51c2VSZWYpKG51bGwpLGE9KDAsaS5nZXRTdHlsZUNsYXNzZXMpKGUuc2l6ZSxvLGUuY2xhc3NOYW1lKSxsPWUuYWx0Pz9lLnRpdGxlPz8iIixjPXQ/bFswXTplLnBsYWNlaG9sZGVyTGV0dGVyO3JldHVybigwLG4udXNlRWZmZWN0KSgoKCk9PnIocy5jdXJyZW50Py5jb21wbGV0ZT8/IXQ/MjoxKSksW3RdKSx0JiYzIT09bz9uLmNyZWF0ZUVsZW1lbnQoImltZyIse3JlZjpzLGNsYXNzTmFtZTphLGNyb3NzT3JpZ2luOiIiLHNyYzplLmxvZ29VcmwsYWx0OmwsdGl0bGU6ZS50aXRsZSxsb2FkaW5nOmUubG9hZGluZyxvbkxvYWQ6KCk9PnIoMiksb25FcnJvcjooKT0+cigzKSwiYXJpYS1sYWJlbCI6ZVsiYXJpYS1sYWJlbCJdLCJhcmlhLWhpZGRlbiI6ZVsiYXJpYS1oaWRkZW4iXX0pOm4uY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZTphLHRpdGxlOmUudGl0bGUsImFyaWEtbGFiZWwiOmVbImFyaWEtbGFiZWwiXSwiYXJpYS1oaWRkZW4iOmVbImFyaWEtaGlkZGVuIl19LGMpfX0sNzk0MTg3KGUsdCxvKXsidXNlIHN0cmljdCI7by5kKHQse2dldFN0eWxlQ2xhc3NlczooKT0+bCxpc0NpcmNsZUxvZ29XaXRoVXJsUHJvcHM6KCk9PmN9KTt2YXIgbj1vKDkxNDQ4NyksaT1vLm4obikscj1vKDEzNjQpLHM9bygxNDAwMTcpLGE9by5uKHMpO2Z1bmN0aW9uIGwoZSx0PTIsbyl7cmV0dXJuIGkoKShhKCkubG9nbyxhKClbZV0sbywwPT09dHx8MT09PXQ/aSgpKHIuc2tlbGV0b25UaGVtZS53cmFwcGVyLGEoKS5za2VsZXRvbik6YSgpLmxldHRlciwxPT09dCYmci5za2VsZXRvblRoZW1lLmFuaW1hdGVkKX1mdW5jdGlvbiBjKGUpe3JldHVybiJsb2dvVXJsImluIGUmJm51bGwhPT1lLmxvZ29VcmwmJnZvaWQgMCE9PWUubG9nb1VybCYmMCE9PWUubG9nb1VybC5sZW5ndGh9fSw1MzIwMTEoZSx0LG8peyJ1c2Ugc3RyaWN0IjtvLmQodCx7Q29udHJvbEdyb3VwQ29udGV4dDooKT0+cixkZWZhdWx0Q2VsbFN0YXRlOigpPT5pfSk7dmFyIG49byg3Nzk0NzQpO2NvbnN0IGk9e2lzVG9wOiEwLGlzUmlnaHQ6ITAsaXNCb3R0b206ITAsaXNMZWZ0OiEwfSxyPW4uY3JlYXRlQ29udGV4dCh7aXNHcm91cGVkOiExLGNlbGxTdGF0ZTppfSl9LDYwNTE0MShlLHQsbyl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4oZSl7bGV0IHQ9MDtyZXR1cm4gZS5pc1RvcCYmZS5pc0xlZnR8fCh0Kz0xKSxlLmlzVG9wJiZlLmlzUmlnaHR8fCh0Kz0yKSxlLmlzQm90dG9tJiZlLmlzTGVmdHx8KHQrPTgpLGUuaXNCb3R0b20mJmUuaXNSaWdodHx8KHQrPTQpLHR9by5kKHQse2dldEdyb3VwQ2VsbFJlbW92ZVJvdW5kQm9yZGVyczooKT0+bn0pfSwzMDk5MjAoZSx0LG8peyJ1c2Ugc3RyaWN0IjtvLmQodCx7Q3VzdG9tQmVoYXZpb3VyQ29udGV4dDooKT0+bn0pO2NvbnN0IG49KDAsbyg3Nzk0NzQpLmNyZWF0ZUNvbnRleHQpKHtlbmFibGVBY3RpdmVTdGF0ZVN0eWxlczohMH0pO24uZGlzcGxheU5hbWU9IkN1c3RvbUJlaGF2aW91ckNvbnRleHQifSw2ODk4OTQoZSx0LG8peyJ1c2Ugc3RyaWN0IjtvLmQodCx7aG92ZXJNb3VzZUV2ZW50RmlsdGVyOigpPT5zLHVzZUFjY3VyYXRlSG92ZXI6KCk9PmEsdXNlSG92ZXI6KCk9PmksdXNlSG92ZXJEZXByZWNhdGVkOigpPT5yfSk7dmFyIG49byg3Nzk0NzQpO2Z1bmN0aW9uIGkoKXtjb25zdFtlLHRdPSgwLG4udXNlU3RhdGUpKCExKTtyZXR1cm5bZSx7b25Nb3VzZUVudGVyOmZ1bmN0aW9uKGUpe3QoITApfSxvbk1vdXNlTGVhdmU6ZnVuY3Rpb24oZSl7dCghMSl9fV19ZnVuY3Rpb24gcigpe2NvbnN0W2UsdF09KDAsbi51c2VTdGF0ZSkoITEpO3JldHVybltlLHtvbk1vdXNlT3ZlcjpmdW5jdGlvbihlKXtzKGUpJiZ0KCEwKX0sb25Nb3VzZU91dDpmdW5jdGlvbihlKXtzKGUpJiZ0KCExKX19XX1mdW5jdGlvbiBzKGUpe3JldHVybiFlLmN1cnJlbnRUYXJnZXQuY29udGFpbnMoZS5yZWxhdGVkVGFyZ2V0KX1mdW5jdGlvbiBhKGUpe2NvbnN0W3Qsb109KDAsbi51c2VTdGF0ZSkoITEpO3JldHVybigwLG4udXNlRWZmZWN0KSgoKCk9Pntjb25zdCB0PXQ9PntpZihudWxsPT09ZS5jdXJyZW50KXJldHVybjtjb25zdCBuPWUuY3VycmVudC5jb250YWlucyh0LnRhcmdldCk7byhuKX07cmV0dXJuIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlb3ZlciIsdCksKCk9PmRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlb3ZlciIsdCl9KSxbXSksdH19LDcxOTQyNShlLHQsbyl7InVzZSBzdHJpY3QiO28uZCh0LHt1c2VSZXNpemVPYnNlcnZlcjooKT0+c30pO3ZhciBuPW8oNzc5NDc0KSxpPW8oNjE2MzExKSxyPW8oNzg3ODk1KTtmdW5jdGlvbiBzKGUsdD1bXSl7Y29uc3R7Y2FsbGJhY2s6byxyZWY6cz1udWxsfT1mdW5jdGlvbihlKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgZT97Y2FsbGJhY2s6ZX06ZX0oZSksYT0oMCxuLnVzZVJlZikobnVsbCksbD0oMCxuLnVzZVJlZikobyk7bC5jdXJyZW50PW87Y29uc3QgYz0oMCxyLnVzZUZ1bmN0aW9uYWxSZWZPYmplY3QpKHMpLHU9KDAsbi51c2VDYWxsYmFjaykoKGU9PntjKGUpLG51bGwhPT1hLmN1cnJlbnQmJihhLmN1cnJlbnQuZGlzY29ubmVjdCgpLG51bGwhPT1lJiZhLmN1cnJlbnQub2JzZXJ2ZShlKSl9KSxbYyxhXSk7cmV0dXJuKDAsaS51c2VJc29tb3JwaGljTGF5b3V0RWZmZWN0KSgoKCk9PihhLmN1cnJlbnQ9bmV3IFJlc2l6ZU9ic2VydmVyKCgoZSx0KT0+e2wuY3VycmVudChlLHQpfSkpLGMuY3VycmVudCYmdShjLmN1cnJlbnQpLCgpPT57YS5jdXJyZW50Py5kaXNjb25uZWN0KCl9KSksW2MsLi4udF0pLHV9fSwxMTk3NTAoZSx0LG8peyJ1c2Ugc3RyaWN0IjtvLmQodCx7SWNvblF1ZXN0aW9uSW5mb3JtYXRpb246KCk9PkUsSWNvblF1ZXN0aW9uSW5mb3JtYXRpb25CdXR0b246KCk9Pnh9KTt2YXIgbixpPW8oNzc5NDc0KSxyPW8oOTE0NDg3KSxzPW8ubihyKSxhPW8oMzQ1MTE2KSxsPW8oMjczMzEwKSxjPW8oNzg1OTk1KSx1PW8ubihjKSxkPW8oNTI3MjE5KSxoPW8ubihkKSxwPW8oNjczMDY1KSxtPW8ubihwKSxnPW8oNDAwMDQ2KSx2PW8ubihnKSxmPW8oOTk0NSksXz1vLm4oZikKOyFmdW5jdGlvbihlKXtlLlNtYWxsPSJzbWFsbCIsZS5NZWRpdW09Im1lZGl1bSIsZS5MYXJnZT0ibGFyZ2UifShufHwobj17fSkpO2NvbnN0IGI9InNtYWxsIjt2YXIgdyxDOyFmdW5jdGlvbihlKXtlLkRlZmF1bHQ9ImRlZmF1bHQiLGUuRGFuZ2VyPSJkYW5nZXIiLGUuV2FybmluZz0id2FybmluZyIsZS5TdWNjZXNzPSJzdWNjZXNzIixlLk5ldXRyYWw9Im5ldXRyYWwiLGUuTmV1dHJhbExpZ2h0PSJuZXV0cmFsLWxpZ2h0In0od3x8KHc9e30pKSxmdW5jdGlvbihlKXtlLkluZm89ImluZm8iLGUuUXVlc3Rpb249InF1ZXN0aW9uIixlLkNoZWNrPSJjaGVjayIsZS5FeGNsYW1hdGlvbj0iZXhjbGFtYXRpb24ifShDfHwoQz17fSkpO2NvbnN0IHk9e2luZm86aCgpLHF1ZXN0aW9uOnUoKSxjaGVjazptKCksZXhjbGFtYXRpb246digpfSxUPWkuZm9yd2FyZFJlZigoKGUsdCk9PmkuY3JlYXRlRWxlbWVudCgic3BhbiIsey4uLmUscmVmOnQsY2xhc3NOYW1lOnMoKShlLmNsYXNzTmFtZSxfKClbIm5vLWFjdGl2ZS1zdGF0ZSJdKX0pKSksRT1pLmZvcndhcmRSZWYoKChlLHQpPT57Y29uc3R7aWNvbjpvPSJleGNsYW1hdGlvbiIsaW50ZW50Om49ImRlZmF1bHQiLGFyaWFMYWJlbDpyLHRvb2x0aXA6YyxjbGFzc05hbWU6dSxyZW5kZXJDb21wb25lbnQ6ZD1ULHRhYkluZGV4Omg9MCxzaXplOnA9YixvbkZvY3VzOm0sb25CbHVyOmcsb25DbGljazp2LC4uLmZ9PWUsdz15W29dPz9vO3JldHVybiBpLmNyZWF0ZUVsZW1lbnQoZCx7Y2xhc3NOYW1lOnMoKSh1LF8oKS5pY29uV3JhcHBlcixfKClbbl0sXygpW3BdKSx0aXRsZTpjLHJlZjp0LHRhYkluZGV4Omgsb25Gb2N1czptLG9uQmx1cjpnLG9uQ2xpY2s6diwuLi4oMCxhLmZpbHRlckRhdGFQcm9wcykoZil9LGkuY3JlYXRlRWxlbWVudChsLkljb24seyJhcmlhLWhpZGRlbiI6IXIsImFyaWEtbGFiZWwiOnIsaWNvbjp3LGNsYXNzTmFtZTpfKCkuaWNvbn0pKX0pKTtmdW5jdGlvbiB4KGUpe2NvbnN0e2ljb246dD0iZXhjbGFtYXRpb24iLGludGVudDpvPSJkZWZhdWx0IixzaXplOm49YixvbkNsaWNrOnIsb25Nb3VzZUVudGVyOmEsb25Nb3VzZUxlYXZlOmMsb25Gb2N1czp1LG9uQmx1cjpkLHJlZmVyZW5jZTpoLGFyaWFMYWJlbDpwfT1lLG09eVt0XT8/dDtyZXR1cm4gaS5jcmVhdGVFbGVtZW50KCJidXR0b24iLHtjbGFzc05hbWU6cygpKF8oKS5pY29uV3JhcHBlcixfKClbb10sXygpW25dKSxyZWY6aCxvbkNsaWNrOnIsb25Nb3VzZUVudGVyOmEsb25Nb3VzZUxlYXZlOmMsb25Gb2N1czp1LG9uQmx1cjpkLCJhcmlhLWxhYmVsIjpwfSxpLmNyZWF0ZUVsZW1lbnQobC5JY29uLHtpY29uOm0sY2xhc3NOYW1lOl8oKS5pY29ufSkpfX0sNzQxNDA1KGUsdCxvKXsidXNlIHN0cmljdCI7by5kKHQse0xpc3RJdGVtSGFzRGVzY3JpcHRpb25Db250ZXh0OigpPT5ufSk7Y29uc3Qgbj0oMCxvKDc3OTQ3NCkuY3JlYXRlQ29udGV4dCkoITEpfSw2Mjg4MjUoZSx0LG8peyJ1c2Ugc3RyaWN0IjtvLmQodCx7TGlzdEl0ZW06KCk9PkJ9KTt2YXIgbj1vKDc3OTQ3NCksaT1vKDkxNDQ4Nykscj1vLm4oaSkscz1vKDU2MTI1MCksYT1vLm4ocyk7ZnVuY3Rpb24gbChlKXtjb25zdCB0PSgwLG4udXNlUmVmKShudWxsKSx7Y2hpbGRyZW46byxsaXN0SXRlbVJlZjppPXQsaXNPcGVuOnMsc2VsZWN0ZWQ6bCxkaXNhYmxlZDpjLG9uTW91c2VFbnRlcjp1LHNpemU6ZD0ibWVkaXVtIixhcmlhQnVzeTpoLGludGVudDpwPSJuZXV0cmFsIixkYXRhUWFJZDptfT1lO3JldHVybiBuLmNyZWF0ZUVsZW1lbnQoImRpdiIseyJkYXRhLXFhLWlkIjptLGNsYXNzTmFtZTpyKCkoYSgpLmJhY2tncm91bmQsbCYmYSgpLnNlbGVjdGVkLHMmJmEoKS5vcGVuLGMmJmEoKS5kaXNhYmxlZCxhKClbZF0sYSgpW3BdKSxyZWY6aSxvbk1vdXNlRW50ZXI6dSwiYXJpYS1idXN5IjpofSxvKX12YXIgYz1vKDIzNTcyNCksdT1vKDc4Nzg5NSksZD1vKDM0NTExNiksaD1vKDM1OTExNikscD1vLm4oaCk7ZnVuY3Rpb24gbShlKXtjb25zdCB0PSgwLG4udXNlUmVmKShudWxsKSx7Y2hpbGRyZW46byxsaXN0SXRlbUJ1dHRvblJlZjppPXQsbGlzdEl0ZW1CdXR0b25JZDpzLG9uS2V5RG93bkxpc3RJdGVtQnV0dG9uOmEsaHJlZjpsLHRhcmdldDpoPSJfYmxhbmsiLGhvdGtleTptLGFyaWFDaGVja2VkOmcsYXJpYVNlbGVjdGVkOnYsYXJpYUhhc3BvcHVwOmYsYXJpYUNvbnRyb2xzOl8sYXJpYUV4cGFuZGVkOmIsYXJpYUxhYmVsOncsYXJpYUxldmVsOkMscm9sZTp5LGRpc2FibGVkOlQsaXNPcGVuOkUsc2VsZWN0ZWQ6eCxvbkNsaWNrOlMsdGFiSW5kZXg6TD0wLHJlbDprLGRhdGFRYUlkOkEsLi4uTX09ZSxOPSgwLGQuZmlsdGVyQ2hlY2tlZERhdGFQcm9wcykoTSksRD0oMCx1LnVzZUZ1bmN0aW9uYWxSZWZPYmplY3QpKGkpLFA9KDAsbi51c2VDYWxsYmFjaykoKGU9PntpZihELmN1cnJlbnQhPT1lLnRhcmdldClyZXR1cm47YT8uKGUpO2NvbnN0IHQ9KDAsYy5oYXNoRnJvbUV2ZW50KShlKTszMiE9PXQmJjEzIT09dHx8KHZvaWQgMCE9PWwmJndpbmRvdy5vcGVuKGwsaCksUz8uKGUpLGUucHJldmVudERlZmF1bHQoKSxlLnN0b3BQcm9wYWdhdGlvbigpKX0pLFtTLGwsaCxhLERdKSxCPXtyb2xlOnksImFyaWEta2V5c2hvcnRjdXRzIjptPyhJPW0sQXJyYXkuaXNBcnJheShJKT9JLm1hcChjLmhvdGtleUhhc2hUb0FyaWFLZXlzaG9ydGN1dHMpLmpvaW4oIiAiKTooMCxjLmhvdGtleUhhc2hUb0FyaWFLZXlzaG9ydGN1dHMpKEkpKTp2b2lkIDAsImFyaWEtZXhwYW5kZWQiOmIsImFyaWEtaGFzcG9wdXAiOmYsImFyaWEtY29udHJvbHMiOl8sImFyaWEtY2hlY2tlZCI6ZywiYXJpYS1zZWxlY3RlZCI6diwiYXJpYS1kaXNhYmxlZCI6VCwiYXJpYS1sYWJlbCI6dywiYXJpYS1sZXZlbCI6QyxjbGFzc05hbWU6cigpKHAoKS5idXR0b24seCYmcCgpLnNlbGVjdGVkKSx0YWJJbmRleDpMLHJlZjpELG9uS2V5RG93bjpUP3ZvaWQgMDpQLG9uQ2xpY2s6VD92b2lkIDA6UyxpZDpzLCJkYXRhLXFhLWlkIjpBLC4uLk59O3ZhciBJO3JldHVybiBuLmNyZWF0ZUVsZW1lbnQobi5GcmFnbWVudCxudWxsLCFsJiZuLmNyZWF0ZUVsZW1lbnQoImRpdiIsey4uLkIKfSwiICIsbywiICIpLGwmJm4uY3JlYXRlRWxlbWVudCgiYSIse2hyZWY6bCx0YXJnZXQ6aCxyZWw6aywuLi5CfSxvKSl9dmFyIGc9bygzMzI2ODcpLHY9byg0NDA5MjYpLGY9by5uKHYpO2Z1bmN0aW9uIF8oZSl7Y29uc3R7aG90a2V5OnR9PWU7cmV0dXJuIG4uY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOmYoKS5ob3RrZXl9LChvPXQsQXJyYXkuaXNBcnJheShvKT9vLm1hcChjLmh1bWFuUmVhZGFibGVIYXNoKS5qb2luKCIsICIpOigwLGMuaHVtYW5SZWFkYWJsZUhhc2gpKG8pKSk7dmFyIG99dmFyIGI9bygyMzIwNTQpLHc9by5uKGIpO2Z1bmN0aW9uIEMoZSl7Y29uc3R7cmlnaHRTbG90OnQsaG90a2V5Om8sc2VsZWN0ZWQ6aX09ZTtyZXR1cm4gbi5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6dygpLnJpZ2h0fSxuLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTp3KCkuY2hpbGR9LG4uY3JlYXRlRWxlbWVudChnLkljb25CdXR0b25WYXJpYW50Q29udGV4dFByb3ZpZGVyLHt2YXJpYW50Omk/InByaW1hcnktc3BlY2lhbCI6InByaW1hcnkifSxvJiZuLmNyZWF0ZUVsZW1lbnQoXyx7aG90a2V5Om99KSx0KSkpfXZhciB5PW8oNDQzNjE4KSxUPW8ubih5KTtmdW5jdGlvbiBFKGUpe2NvbnN0e2VsbGlwc2lzOnQsdGV4dDpvLGNsYXNzTmFtZTppfT1lO3JldHVybiBvP24uY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOnIoKShpLCJzdHJpbmciPT10eXBlb2YgbyYmdCYmVCgpLmVsbGlwc2lzLCJzdHJpbmciIT10eXBlb2YgbyYmVCgpLndpdGhHYXBzLHQmJiJhcHBseS1vdmVyZmxvdy10b29sdGlwIil9LG8pOm51bGx9dmFyIHg9byg5NDgzOTApLFM9by5uKHgpO2Z1bmN0aW9uIEwoZSl7Y29uc3R7ZWxsaXBzaXM6dD0hMCx0aXRsZTpvLGRlc2NyaXB0aW9uOmksaGFzRW5kU2xvdDpzfT1lO3JldHVybiBuLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpyKCkoUygpLm1pZGRsZSxvJiZTKCkuaGFzVGl0bGUsaSYmUygpLmhhc0Rlc2NyaXB0aW9uLCFzJiZTKCkuaGFzTm9FbmRTbG90KX0sbi5jcmVhdGVFbGVtZW50KEUse2tleToidGl0bGUiLGNsYXNzTmFtZTpTKCkudGl0bGUsdGV4dDpvLGVsbGlwc2lzOnR9KSxuLmNyZWF0ZUVsZW1lbnQoRSx7a2V5OiJkZXNjcmlwdGlvbiIsY2xhc3NOYW1lOlMoKS5kZXNjcmlwdGlvbix0ZXh0OmksZWxsaXBzaXM6dH0pKX12YXIgaz1vKDIxMjQ4NiksQT1vLm4oayk7ZnVuY3Rpb24gTShlKXtjb25zdHtsZWZ0U2xvdDp0LHJpZ2h0U2xvdDpvLGhvdGtleTppLHNlbGVjdGVkOnIsZWxsaXBzaXM6cyx0aXRsZTphLGRlc2NyaXB0aW9uOmx9PWUsYz12b2lkIDAhPT10JiZuLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpBKCkubGVmdCxzdHlsZTp7Ii0tdWktbGliLXByaXZhdGUtbGlzdEl0ZW0tbGVmdFNsb3RJdGVtc051bWJlciI6QXJyYXkuaXNBcnJheSh0KT90Lmxlbmd0aDoxfX0sdCksdT1vfHxpP24uY3JlYXRlRWxlbWVudChDLHtyaWdodFNsb3Q6byxob3RrZXk6aSxzZWxlY3RlZDpyfSk6bnVsbCxkPW4uY3JlYXRlRWxlbWVudChMLHtlbGxpcHNpczpzLHRpdGxlOmEsZGVzY3JpcHRpb246bCxoYXNFbmRTbG90OiEhdX0pO3JldHVybiBuLmNyZWF0ZUVsZW1lbnQobi5GcmFnbWVudCxudWxsLG4uY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOkEoKS5idXR0b25Db250ZW50fSxjLGQsdSkpfXZhciBOLEQsUD1vKDc0MTQwNSk7ZnVuY3Rpb24gQihlKXtjb25zdHt0aXRsZTp0LGRlc2NyaXB0aW9uOm8sbGlzdEl0ZW1SZWY6aSxsaXN0SXRlbUJ1dHRvblJlZjpyLGlzT3BlbjpzLHNlbGVjdGVkOmEsZGlzYWJsZWQ6YyxvbkNsaWNrOnUsaHJlZjpoLGxlZnRTbG90OnAscmlnaHRTbG90OmcsaG90a2V5OnYsaW50ZW50OmYsb25Nb3VzZUVudGVyOl8sb25LZXlEb3duTGlzdEl0ZW1CdXR0b246YixsaXN0SXRlbUJ1dHRvbklkOncsYXJpYUNoZWNrZWQ6QyxhcmlhU2VsZWN0ZWQ6eSxhcmlhSGFzcG9wdXA6VCxhcmlhQ29udHJvbHM6RSxhcmlhRXhwYW5kZWQ6eCxhcmlhQnVzeTpTLGFyaWFMYWJlbDpMLGFyaWFMZXZlbDprLHJvbGU6QSxzaXplOk4sZWxsaXBzaXM6RCx0YXJnZXQ6QixvdXRzaWRlT2ZCdXR0b25TbG90OkksdGFiSW5kZXg6RixyZWw6VyxkYXRhUWFJZDpSLC4uLlZ9PWUsTz0oMCxkLmZpbHRlckNoZWNrZWREYXRhUHJvcHMpKFYpO3JldHVybiBuLmNyZWF0ZUVsZW1lbnQoUC5MaXN0SXRlbUhhc0Rlc2NyaXB0aW9uQ29udGV4dC5Qcm92aWRlcix7dmFsdWU6ISFvfSxuLmNyZWF0ZUVsZW1lbnQobCx7c2l6ZTpOLHNlbGVjdGVkOmEsaXNPcGVuOnMsZGlzYWJsZWQ6YyxsaXN0SXRlbVJlZjppLG9uTW91c2VFbnRlcjpfLGFyaWFCdXN5OlMsaW50ZW50OmZ9LG4uY3JlYXRlRWxlbWVudChtLHtsaXN0SXRlbUJ1dHRvblJlZjpyLGxpc3RJdGVtQnV0dG9uSWQ6dyxvbktleURvd25MaXN0SXRlbUJ1dHRvbjpiLGhyZWY6aCx0YXJnZXQ6Qixob3RrZXk6dixhcmlhQ2hlY2tlZDpDLGFyaWFTZWxlY3RlZDp5LGFyaWFIYXNwb3B1cDpULGFyaWFDb250cm9sczpFLGFyaWFFeHBhbmRlZDp4LGFyaWFMYWJlbDpMLGFyaWFMZXZlbDprLHJvbGU6QSxkaXNhYmxlZDpjLGlzT3BlbjpzLHNlbGVjdGVkOmEsb25DbGljazp1LGRhdGFRYUlkOlIsdGFiSW5kZXg6RixyZWw6VywuLi5PfSxuLmNyZWF0ZUVsZW1lbnQoTSx7bGVmdFNsb3Q6cCxyaWdodFNsb3Q6Zyxob3RrZXk6dixzZWxlY3RlZDphLGVsbGlwc2lzOkQsdGl0bGU6dCxkZXNjcmlwdGlvbjpvfSkpLEkpKX0hZnVuY3Rpb24oZSl7ZS5NZWRpdW09Im1lZGl1bSIsZS5MYXJnZT0ibGFyZ2UifShOfHwoTj17fSkpLGZ1bmN0aW9uKGUpe2UuTmV1dHJhbD0ibmV1dHJhbCIsZS5EYW5nZXI9ImRhbmdlciJ9KER8fChEPXt9KSl9LDIyNzk0OShlLHQsbyl7InVzZSBzdHJpY3QiO28uZCh0LHtNZW51V2lkdGhDb250ZXh0OigpPT5ufSk7Y29uc3Qgbj1vKDc3OTQ3NCkuY3JlYXRlQ29udGV4dCh7c2V0TWVudU1heFdpZHRoOiExfSl9LDk4ODA2OChlLHQsbyl7InVzZSBzdHJpY3QiO28uZCh0LHtEQVRBX0lTX0NPTlRFWFRfQUNUSU9OOigpPT5yLApEQVRBX0lTX1BPUE9WRVJfSVRFTV9CVVRUT046KCk9PmksREFUQV9ORVNURURfUE9QT1ZFUl9PUEVOOigpPT5ufSk7Y29uc3Qgbj0iZGF0YS1uZXN0ZWQtcG9wb3Zlci1vcGVuIixpPSJkYXRhLWlzLXBvcG92ZXItaXRlbS1idXR0b24iLHI9ImRhdGEtaXMtcG9wb3Zlci1jb250ZXh0LWFjdGlvbiJ9LDEzNjQoZSx0LG8peyJ1c2Ugc3RyaWN0IjtvLmQodCx7c2tlbGV0b25UaGVtZTooKT0+aX0pO3ZhciBuPW8oOTc1Mjg1KTtjb25zdCBpPW8ubihuKSgpfSwzMTQ3MjAoZSx0LG8peyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKGUpe2NvbnN0e3BhZGRpbmdUb3A6dCxwYWRkaW5nQm90dG9tOm99PXdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGUpO3JldHVyblt0LG9dLnJlZHVjZSgoKGUsdCk9PmUtTnVtYmVyKCh0fHwiIikucmVwbGFjZSgicHgiLCIiKSkpLGUuY2xpZW50SGVpZ2h0KX1mdW5jdGlvbiBpKGUsdD0hMSl7Y29uc3Qgbz1nZXRDb21wdXRlZFN0eWxlKGUpLG49W28uaGVpZ2h0XTtyZXR1cm4iYm9yZGVyLWJveCIhPT1vLmJveFNpemluZyYmbi5wdXNoKG8ucGFkZGluZ1RvcCxvLnBhZGRpbmdCb3R0b20sby5ib3JkZXJUb3BXaWR0aCxvLmJvcmRlckJvdHRvbVdpZHRoKSx0JiZuLnB1c2goby5tYXJnaW5Ub3Asby5tYXJnaW5Cb3R0b20pLG4ucmVkdWNlKCgoZSx0KT0+ZSsocGFyc2VGbG9hdCh0KXx8MCkpLDApfWZ1bmN0aW9uIHIoZSx0PSExKXtjb25zdCBvPWdldENvbXB1dGVkU3R5bGUoZSksbj1bby53aWR0aF07cmV0dXJuImJvcmRlci1ib3giIT09by5ib3hTaXppbmcmJm4ucHVzaChvLnBhZGRpbmdMZWZ0LG8ucGFkZGluZ1JpZ2h0LG8uYm9yZGVyTGVmdFdpZHRoLG8uYm9yZGVyUmlnaHRXaWR0aCksdCYmbi5wdXNoKG8ubWFyZ2luTGVmdCxvLm1hcmdpblJpZ2h0KSxuLnJlZHVjZSgoKGUsdCk9PmUrKHBhcnNlRmxvYXQodCl8fDApKSwwKX1vLmQodCx7Y29udGVudEhlaWdodDooKT0+bixvdXRlckhlaWdodDooKT0+aSxvdXRlcldpZHRoOigpPT5yfSl9LDc3MDE0MyhlLHQsbyl7InVzZSBzdHJpY3QiO28uZCh0LHtnZXRUZXh0Rm9yVG9vbHRpcDooKT0+c30pO3ZhciBuPW8oNzc5NDc0KTtjb25zdCBpPWU9PigwLG4uaXNWYWxpZEVsZW1lbnQpKGUpJiZCb29sZWFuKGUucHJvcHMuY2hpbGRyZW4pLHI9KGUsdD0hMCk9Pm51bGw9PWV8fCJib29sZWFuIj09dHlwZW9mIGV8fCJ7fSI9PT1KU09OLnN0cmluZ2lmeShlKT8iIjplLnRvU3RyaW5nKCkrKHQ/IiAiOiIiKSxzPWU9PkFycmF5LmlzQXJyYXkoZSl8fCgwLG4uaXNWYWxpZEVsZW1lbnQpKGUpP24uQ2hpbGRyZW4udG9BcnJheShlKS5yZWR1Y2UoKChlLHQpPT57bGV0IG89IiI7cmV0dXJuIG89KDAsbi5pc1ZhbGlkRWxlbWVudCkodCkmJmkodCk/cyh0LnByb3BzLmNoaWxkcmVuKTooMCxuLmlzVmFsaWRFbGVtZW50KSh0KSYmIWkodCk/IiI6cih0KSxlLmNvbmNhdChvKX0pLCIiKS50cmltKCk6cihlLCExKX0sOTY0NTk0KGUsdCxvKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbihlKXtyZXR1cm4gdD0+e2UuZm9yRWFjaCgoZT0+eyJmdW5jdGlvbiI9PXR5cGVvZiBlP2UodCk6bnVsbCE9ZSYmKGUuY3VycmVudD10KX0pKX19ZnVuY3Rpb24gaShlKXtyZXR1cm4gbihbZV0pfW8uZCh0LHtpc29tb3JwaGljUmVmOigpPT5pLG1lcmdlUmVmczooKT0+bn0pfSw4MzM5MDMoZSx0LG8peyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKC4uLmUpe3JldHVybiB0PT57Zm9yKGNvbnN0IG8gb2YgZSl2b2lkIDAhPT1vJiZvKHQpfX1vLmQodCx7Y3JlYXRlU2FmZU11bHRpY2FzdEV2ZW50SGFuZGxlcjooKT0+bn0pfSwxMjg3MDEoZSx0LG8peyJ1c2Ugc3RyaWN0Ijt2YXIgbjtvLmQodCx7RHJhd2luZ1Rvb2xiYXJDb21wb25lbnRJZHM6KCk9Pm59KSxmdW5jdGlvbihlKXtlLlNjcmVlbnNob3Q9ImRyYXdpbmctdG9vbGJhci1zY3JlZW5zaG90IixlLkZhdm9yaXRlRHJhd2luZ3M9ImRyYXdpbmctdG9vbGJhci1mYXZvcml0ZS1kcmF3aW5ncyIsZS5PYmplY3RUcmVlPSJkcmF3aW5nLXRvb2xiYXItb2JqZWN0LXRyZWUifShufHwobj17fSkpfSw1OTM5MjcoZSx0LG8peyJ1c2Ugc3RyaWN0IjtvLnIodCksby5kKHQse0RyYXdpbmdUb29sYmFyOigpPT5Vb30pO3ZhciBuPW8oNzc5NDc0KSxpPW8oOTE0NDg3KSxyPW8ubihpKSxzPW8oMTc1Mzk1KSxhPW8oMzYzMjY5KSxsPW8oOTMwNTY2KSxjPW8oOTMwMjMxKSx1PW8oNjc4Mjg1KSxkPW8oMTc5NzcxKSxoPW8oOTQ4MzgwKSxwPW8oMzE4OTc0KSxtPW8oMTE3MzEzKSxnPW8oMzc2MDMzKTtjbGFzcyB2e2NvbnN0cnVjdG9yKGUpe3RoaXMuX2RyYXdpbmdzQWNjZXNzPWV8fHt0b29sczpbXSx0eXBlOiJibGFjayJ9fWlzVG9vbEVuYWJsZWQoZSl7Y29uc3QgdD10aGlzLl9maW5kVG9vbChlKTtyZXR1cm4hKCF0fHwhdC5ncmF5ZWQpfHwoImJsYWNrIj09PXRoaXMuX2RyYXdpbmdzQWNjZXNzLnR5cGU/IXQ6ISF0KX1pc1Rvb2xHcmF5ZWQoZSl7Y29uc3QgdD10aGlzLl9maW5kVG9vbChlKTtyZXR1cm4gQm9vbGVhbih0JiZ0LmdyYXllZCl9X2ZpbmRUb29sKGUpe3JldHVybiB0aGlzLl9kcmF3aW5nc0FjY2Vzcy50b29scy5maW5kKCh0PT50Lm5hbWU9PT1lKSl9fXZhciBmPW8oMjAzNzMzKSxfPW8oNzU5OTcwKSxiPW8oMzQ0OTQ3KSx3PW8oNzI3MDkpLEM9bygyNzYwMTkpLHk9byg0MDg2MzUpLFQ9bygxODIzMDgpO2Z1bmN0aW9uIEUoZSl7Y29uc3RbdCxvXT0oMCxULnVzZVJvdmluZ1RhYmluZGV4RWxlbWVudCkobnVsbCk7cmV0dXJuIG4uY3JlYXRlRWxlbWVudCh5LlRvb2xCdXR0b24sey4uLmUscmVmOnQsdGFnOiJidXR0b24iLHRhYkluZGV4Om99KX1mdW5jdGlvbiB4KGUpe2NvbnN0e2lkOnQsYWN0aW9uOm8saXNUcmFuc3BhcmVudDppLHRvb2xOYW1lOnJ9PWU7cmV0dXJuIG4uY3JlYXRlRWxlbWVudChFLHtpZDp0LGljb246Zy5saW5lVG9vbHNJbmZvW3JdLmljb24saXNUcmFuc3BhcmVudDppLG9uQ2xpY2s6byx0b29sdGlwOmcubGluZVRvb2xzSW5mb1tyXS5sb2NhbGl6ZWROYW1lLCJkYXRhLW5hbWUiOnJ9KX12YXIgUyxMPW8oMTg1MjcxKSxrPW8oMzQ1MTE2KSxBPW8oMjE2MDgzKSxNPW8oNTUyMzc4KSxOPW8oMjMyMzY0KQo7IWZ1bmN0aW9uKGUpe2UuSWNvbnM9Imljb25zIixlLkVtb2ppcz0iZW1vamlzIixlLlN0aWNrZXJzPSJzdGlja2VycyJ9KFN8fChTPXt9KSk7Y29uc3QgRD1sLmdldFZhbHVlKCJUb29sQnV0dG9uSWNvbnMuTGFzdENhdGVnb3J5IixTLkVtb2ppcyksUD1uZXcgTi5XYXRjaGVkVmFsdWUoRCk7ZnVuY3Rpb24gQigpe2NvbnN0W2UsdF09KDAsTS51c2VXYXRjaGVkVmFsdWUpKFApO3JldHVybltlLCgwLG4udXNlQ2FsbGJhY2spKChlPT57dChlKSxmdW5jdGlvbihlKXtsLnNldFZhbHVlKCJUb29sQnV0dG9uSWNvbnMuTGFzdENhdGVnb3J5IixlKX0oZSl9KSxbdF0pXX12YXIgST1vKDI3MzczMiksRj1vKDM2NDAzKTtmdW5jdGlvbiBXKGUpe3JldHVybiBuLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpGLndyYXBwZXJ9LGUudGV4dCl9dmFyIFI9bygyMTc4NDcpLFY9byg2MTU3NDYpLE89byg5Nzc5MjEpLHo9byg0MzcxNjEpLEg9byg5MjYxMDApLGo9byg3NTY1NjEpLFo9byg3NjI1OTYpLFU9byg2MzY5NTMpO2NvbnN0IEc9WyIweEYwODciLCIweEYwODgiLCIweEYxNjQiLCIweEYxNjUiLCIweEYwQTQiLCIweEYwQTUiLCIweEYwMDciLCIweEYwQTYiLCIweEYwQTciLCIweEYxMTgiLCIweEYxMUEiLCIweEYxMTkiLCIweEYxODMiXSxLPVsiMHhGMTUzIiwiMHhGMTU0IiwiMHhGMTU1IiwiMHhGMTU2IiwiMHhGMTU3IiwiMHhGMTU4IiwiMHhGMTU5IiwiMHhGMTk1IiwiMHhGMTVBIl0scT1bIjB4RjA2MCIsIjB4RjA2MSIsIjB4RjA2MiIsIjB4RjA2MyIsIjB4RjA1MyIsIjB4RjA1NCIsIjB4RjA3NyIsIjB4RjA3OCIsIjB4RjA3RCIsIjB4RjA3RSIsIjB4RjBBOSIsIjB4RjBBQSIsIjB4RjBBQiIsIjB4RjBEOSIsIjB4RjBEQSIsIjB4RjBENyIsIjB4RjBEOCIsIjB4RjEwMiIsIjB4RjEwMyIsIjB4RjEwNCIsIjB4RjEwNSIsIjB4RjEwNiIsIjB4RjEwNyIsIjB4RjEzNyIsIjB4RjEzOSIsIjB4RjEzQSIsIjB4RjExMiIsIjB4RjA2NCIsIjB4RjE0OCIsIjB4RjE0OSIsIjB4RjE3NyIsIjB4RjE3OCIsIjB4RjE3NSIsIjB4RjE3NiIsIjB4RjAxQSIsIjB4RjAxQiIsIjB4RjA2NSIsIjB4RjA2NiJdLCQ9WyIweEYxMUQiLCIweEYxMUUiLCIweEYwMjQiLCIweEYwMDQiLCIweEYwMDUiLCIweEYwMDYiLCIweEYwNDYiLCIweEYwMEMiLCIweEYwMEQiLCIweEYwMTEiLCIweEYwMTIiLCIweEYwMjEiLCIweEYwMUUiLCIweEYxOTIiLCIweEYwNDEiLCIweEYxNEEiLCIweEYwNTUiLCIweEYwNTYiLCIweEYwNTciLCIweEYwNTkiLCIweEYwNTgiLCIweEYwNUEiLCIweEYwNUIiLCIweEYwNUMiLCIweEYwNUQiLCIweEYwNUUiLCIweEYwNjciLCIweEYwNjgiLCIweEYwNjkiLCIweEYwNkEiLCIweEYwNzEiLCIweEYwNkUiLCIweEYwNzAiLCIweEYwNzUiLCIweEYwOEEiLCIweEYwQTMiLCIweEYwRTUiLCIweEYxMTAiLCIweEYxMTEiLCIweEYxMjMiLCIweEYxMjQiLCIweEYxMEMiLCIweEYxMjgiLCIweEYxMjkiLCIweEYxMkEiLCIweEYxNDAiLCIweEYxMTMiLCIweEYxN0MiLCIweEYxNzkiXSxRPVsiMHhGMDZDIiwiMHhGMTg1IiwiMHhGMTg2IiwiMHhGMTg4IiwiMHhGMEU3Il0sWD1bIjB4RjAwMCIsIjB4RjAwMiIsIjB4RjAwRSIsIjB4RjAxNSIsIjB4RjAxNyIsIjB4RjAzMCIsIjB4RjAxMyIsIjB4RjA0MyIsIjB4RjA2QiIsIjB4RjA3MiIsIjB4RjA3NiIsIjB4RjA4MCIsIjB4RjA4NCIsIjB4RjA0MCIsIjB4RjBBMSIsIjB4RjBBMiIsIjB4RjBENiIsIjB4RjBFMyIsIjB4RjBFQiIsIjB4RjBGMyIsIjB4RjEzNSIsIjB4RjEzRCIsIjB4RjJGRSJdLFk9Wy4uLkcsLi4uSywuLi5xLC4uLiQsLi4uUSwuLi5YXS5tYXAoKGU9PitlKSksSj1uZXcgU2V0KFkpO2NvbnN0IGVlPVt7dGl0bGU6TC50KG51bGwse2NvbnRleHQ6ImVtb2ppX2dyb3VwIn0sbyg0NjU0NTYpKSxlbW9qaXM6W10sY29udGVudDpuLmNyZWF0ZUVsZW1lbnQoSS5JY29uSXRlbSx7aWNvbjpqfSl9LHt0aXRsZTpMLnQobnVsbCx7Y29udGV4dDoiZW1vamlfZ3JvdXAifSxvKDIwNjQ0MykpLGVtb2ppczpHLGNvbnRlbnQ6bi5jcmVhdGVFbGVtZW50KEkuSWNvbkl0ZW0se2ljb246Wn0pfSx7dGl0bGU6TC50KG51bGwse2NvbnRleHQ6ImVtb2ppX2dyb3VwIn0sbyg1MTc1NDYpKSxlbW9qaXM6JCxjb250ZW50Om4uY3JlYXRlRWxlbWVudChJLkljb25JdGVtLHtpY29uOnp9KX0se3RpdGxlOkwudChudWxsLHtjb250ZXh0OiJlbW9qaV9ncm91cCJ9LG8oODg0NjApKSxlbW9qaXM6USxjb250ZW50Om4uY3JlYXRlRWxlbWVudChJLkljb25JdGVtLHtpY29uOlV9KX0se3RpdGxlOkwudChudWxsLHtjb250ZXh0OiJlbW9qaV9ncm91cCJ9LG8oNTY5MDQyKSksZW1vamlzOkssY29udGVudDpuLmNyZWF0ZUVsZW1lbnQoSS5JY29uSXRlbSx7aWNvbjpPfSl9LHt0aXRsZTpMLnQobnVsbCx7Y29udGV4dDoiZW1vamlfZ3JvdXAifSxvKDk0MzM5MykpLGVtb2ppczpYLGNvbnRlbnQ6bi5jcmVhdGVFbGVtZW50KEkuSWNvbkl0ZW0se2ljb246SH0pfSx7dGl0bGU6TC50KG51bGwse2NvbnRleHQ6ImVtb2ppX2dyb3VwIn0sbygzOTkxMDgpKSxlbW9qaXM6cSxjb250ZW50Om4uY3JlYXRlRWxlbWVudChJLkljb25JdGVtLHtpY29uOlZ9KX1dLHRlPXtbUy5JY29uc106Ui5kcmF3aW5nVG9vbHNJY29ucy5oZWFydCxbUy5FbW9qaXNdOlIuZHJhd2luZ1Rvb2xzSWNvbnMuc21pbGUsW1MuU3RpY2tlcnNdOlIuZHJhd2luZ1Rvb2xzSWNvbnMuc3RpY2tlcn0sb2U9W3t0aXRsZTpTLkVtb2ppcyxjb250ZW50Om4uY3JlYXRlRWxlbWVudChXLHt0ZXh0OkwudChudWxsLHZvaWQgMCxvKDkwODg2MSkpfSl9LHt0aXRsZTpTLlN0aWNrZXJzLGNvbnRlbnQ6bi5jcmVhdGVFbGVtZW50KFcse3RleHQ6TC50KG51bGwsdm9pZCAwLG8oOTIzMTE4KSl9KX0se3RpdGxlOlMuSWNvbnMsY29udGVudDpuLmNyZWF0ZUVsZW1lbnQoVyx7dGV4dDpMLnQobnVsbCx2b2lkIDAsbyg5MTE0NDQpKX0pfV07dmFyIG5lPW8oMjczMzEwKSxpZT1vKDIzNTcyNCkscmU9byg4MzU5NjQpCjt2YXIgc2U9bygxNDUxNTApLGFlPW8oODQ4OTg4KSxsZT1vKDk2NDIxNCksY2U9bygzODcyMzEpLHVlPW8oODYxMTg4KSxkZT1vKDE1MTg5NCksaGU9bygzOTMxOTgpO2NvbnN0IHBlPWhlLG1lPSgwLG4uZm9yd2FyZFJlZikoKChlLHQpPT57Y29uc3R7YnV0dG9uSWNvbjpvLGJ1dHRvblRpdGxlOmksYnV0dG9uSG90S2V5OnMsZHJvcGRvd25Ub29sdGlwOmwsY2hpbGRyZW46Yyxpc0FjdGl2ZTp1LGlzR3JheWVkOmQsb25DbGlja1doZW5HcmF5ZWQ6aCxjaGVja2FibGU6cCxpc1NtYWxsVGFibGV0Om0sdGhlbWU6Zz1wZSxvbkNsaWNrQnV0dG9uOnYsb25BcnJvd0NsaWNrOmYsb3BlbkRyb3Bkb3duQnlDbGljazpfLG9uTWVudUZvY3VzOmI9dWUuaGFuZGxlQWNjZXNzaWJsZU1lbnVGb2N1cyxvbk1lbnVLZXlEb3duOnc9dWUuaGFuZGxlQWNjZXNzaWJsZU1lbnVLZXlEb3duLGRhdGFNZW51UWFJZDpDLHZpZXdNb2RlOkU9ImxlZ2FjeSIsLi4ueH09ZSxTPSJuZXciPT09RSxMPSgwLGNlLm1lcmdlVGhlbWVzKShzZS5ERUZBVUxUX01FTlVfVEhFTUUse21lbnVCb3g6Zy5tZW51Qm94fSksW2ssQV09KDAsbi51c2VTdGF0ZSkoITEpLFtNLE5dPSgwLG4udXNlU3RhdGUpKCExKSxEPSgwLG4udXNlUmVmKShudWxsKSxQPSgwLG4udXNlUmVmKShudWxsKSxCPSgwLG4udXNlUmVmKShudWxsKSxJPSgwLG4udXNlUmVmKSgwKSxGPSgwLG4udXNlUmVmKSgwKSxbVyxSXT0oMCxULnVzZVJvdmluZ1RhYmluZGV4RWxlbWVudCkobnVsbCksW1YsT109KDAsVC51c2VSb3ZpbmdUYWJpbmRleEVsZW1lbnQpKG51bGwpLHo9KDAsbi51c2VSZWYpKG51bGwpLEg9ZnVuY3Rpb24oZSx0KXtjb25zdFtvLGldPSgwLG4udXNlU3RhdGUpKG51bGwpO3JldHVybigwLG4udXNlTGF5b3V0RWZmZWN0KSgoKCk9Pntjb25zdCB0PWUuY3VycmVudDtpZighdClyZXR1cm47Y29uc3Qgbz1uZXcgUmVzaXplT2JzZXJ2ZXIoKGZ1bmN0aW9uKGUpe2NvbnN0IHQ9ZVswXSxvPXQuY29udGVudEJveFNpemVbMF0uaW5saW5lU2l6ZSxuPXQuYm9yZGVyQm94U2l6ZVswXS5pbmxpbmVTaXplLW87aShuPjA/bjpudWxsKX0pKTtyZXR1cm4gby5vYnNlcnZlKHQpLCgpPT5vLmRpc2Nvbm5lY3QoKX0pLFt0XSksb30oeixrKTtyZXR1cm4oMCxuLnVzZUltcGVyYXRpdmVIYW5kbGUpKHQsKCgpPT4oe29wZW46KCk9PkEoITApfSkpLFtdKSxuLmNyZWF0ZUVsZW1lbnQoImRpdiIsey4uLngsY2xhc3NOYW1lOnIoKShnLmRyb3Bkb3duLHtbZy5pc0dyYXllZF06ZCxbZy5pc0FjdGl2ZV06dSxbZy5pc09wZW5lZF06a30pLG9uQ2xpY2s6ZD9oOnZvaWQgMCxvbktleURvd246ZnVuY3Rpb24oZSl7aWYoZS5kZWZhdWx0UHJldmVudGVkfHwhKGUudGFyZ2V0IGluc3RhbmNlb2YgTm9kZSkpcmV0dXJuO2NvbnN0IHQ9KDAsaWUuaGFzaEZyb21FdmVudCkoZSk7aWYoZS5jdXJyZW50VGFyZ2V0LmNvbnRhaW5zKGUudGFyZ2V0KXx8MjchPT10KXJldHVybjtlLnByZXZlbnREZWZhdWx0KCksaighMSksTSYmVj8uY3VycmVudD8uZm9jdXMoKX0scmVmOkR9LG4uY3JlYXRlRWxlbWVudCgiZGl2Iix7cmVmOlAsY2xhc3NOYW1lOmcuY29udHJvbH0sbi5jcmVhdGVFbGVtZW50KCJkaXYiLHsuLi5mdW5jdGlvbigpe2lmKCFkKXJldHVybiBhLm1vYmlsZXRvdWNoP3A/e29uVG91Y2hTdGFydDpHLG9uVG91Y2hFbmQ6cSxvblRvdWNoTW92ZTpLfTp7b25DbGljazpVfTp7b25Nb3VzZURvd246Ryxvbk1vdXNlVXA6JH07cmV0dXJue319KCksY2xhc3NOYW1lOnIoKShnLmJ1dHRvbldyYXAsZy5hY2Nlc3NpYmxlKX0sbi5jcmVhdGVFbGVtZW50KHkuVG9vbEJ1dHRvbix7aWNvbjpvLGlzQWN0aXZlOnUsaXNHcmF5ZWQ6ZCxpc1RyYW5zcGFyZW50OiFwLHJlZjpXLHRhZzoiYnV0dG9uIix0YWJJbmRleDpSLG9uQ2xpY2s6ZnVuY3Rpb24oZSl7aWYoISgwLGFlLmlzS2V5Ym9hcmRDbGljaykoZSkpcmV0dXJuO18/aighMCwhMCk6dj8uKCl9LHRvb2x0aXA6aSxidXR0b25Ib3RLZXk6cywiZGF0YS10b29sdGlwLWRlbGF5IjoxNTAwLHRvb2x0aXBQb3NpdGlvbjoidmVydGljYWwifSkpLCFkJiYhYS5tb2JpbGV0b3VjaCYmbi5jcmVhdGVFbGVtZW50KCJidXR0b24iLHtjbGFzc05hbWU6cigpKGcuYXJyb3csbCYmImFwcGx5LWNvbW1vbi10b29sdGlwIGNvbW1vbi10b29sdGlwLXZlcnRpY2FsIixnLmFjY2Vzc2libGUpLG9uQ2xpY2s6ZnVuY3Rpb24oZSl7Zj8uKCksaih2b2lkIDAsKDAsYWUuaXNLZXlib2FyZENsaWNrKShlKSl9LG9uS2V5RG93bjpmdW5jdGlvbihlKXtpZihlLmRlZmF1bHRQcmV2ZW50ZWR8fCEoZS50YXJnZXQgaW5zdGFuY2VvZiBOb2RlKSlyZXR1cm47Y29uc3QgdD0oMCxpZS5oYXNoRnJvbUV2ZW50KShlKTtpZihlLmN1cnJlbnRUYXJnZXQuY29udGFpbnMoZS50YXJnZXQpKXN3aXRjaCh0KXtjYXNlIDM5OmlmKGspcmV0dXJuO2UucHJldmVudERlZmF1bHQoKSxqKCEwLCEwKTticmVhaztjYXNlIDI3OmlmKCFrKXJldHVybjtlLnByZXZlbnREZWZhdWx0KCksaighMSl9fSx0eXBlOiJidXR0b24iLHJlZjpWLHRhYkluZGV4Ok8sImFyaWEtcHJlc3NlZCI6dSwiYXJpYS1sYWJlbCI6bCwiZGF0YS10b29sdGlwIjpsfSxuLmNyZWF0ZUVsZW1lbnQobmUuSWNvbix7Y2xhc3NOYW1lOmcuYXJyb3dJY29uLGljb246ZGV9KSkpLCFkJiYobT9rJiZuLmNyZWF0ZUVsZW1lbnQobGUuRHJhd2VyLHtjbGFzc05hbWU6Zy5kcmF3ZXIsb25DbG9zZTpaLHBvc2l0aW9uOiJCb3R0b20iLCJkYXRhLXFhLWlkIjpDfSxTP24uY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOmhlLm5ld1ZpZXd9LGMpOmMpOm4uY3JlYXRlRWxlbWVudChuLkZyYWdtZW50LG51bGwsbi5jcmVhdGVFbGVtZW50KHJlLlBvcHVwTWVudSx7dGhlbWU6TCxkb05vdENsb3NlT246ZnVuY3Rpb24oKXtpZihudWxsPT09RC5jdXJyZW50KXJldHVybltdO3JldHVybltELmN1cnJlbnRdfSxpc09wZW5lZDprLG9uQ2xvc2U6Wixwb3NpdGlvbjpmdW5jdGlvbigpe2lmKCFQfHwhUC5jdXJyZW50KXJldHVybnt4OjAseTowfTtjb25zdCBlPVAuY3VycmVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtyZXR1cm57eDplLmxlZnQrZS53aWR0aCsxLAp5OmUudG9wLTZ9fSxvbktleURvd246dyxvbkZvY3VzOmU9PmIoZSxWKSxjb250cm9sbGVyOkIsb25PcGVuOmZ1bmN0aW9uKCl7Qi5jdXJyZW50Py5mb2N1cygpfSx0YWJJbmRleDotMSxkYXRhUWFJZDpDLHJvbGU6Uz8idHJlZWdyaWQiOnZvaWQgMCxzY3JvbGxXcmFwUmVmZXJlbmNlOlM/ejp2b2lkIDB9LFM/bi5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6cigpKGhlLm5ld1ZpZXcsIW0mJmhlLmRlc2t0b3ApLHN0eWxlOm51bGwhPT1IP3ttYXJnaW5JbmxpbmVFbmQ6LUgrInB4In06dm9pZCAwfSxjKTpjKSkpKTtmdW5jdGlvbiBqKGUsdD0hMSl7Y29uc3Qgbz12b2lkIDAhPT1lP2U6IWs7QShvKSxOKCEhbyYmdCl9ZnVuY3Rpb24gWigpe2ooITEpfWZ1bmN0aW9uIFUoKXt2JiZ2KCksaigpfWZ1bmN0aW9uIEcoKXtpZihhLm1vYmlsZXRvdWNoJiYhcCkhRi5jdXJyZW50JiZ2JiZ2KCk7ZWxzZXtpZihJLmN1cnJlbnQpcmV0dXJuIGNsZWFyVGltZW91dChJLmN1cnJlbnQpLEkuY3VycmVudD0wLHZvaWQgaighMCk7SS5jdXJyZW50PXNldFRpbWVvdXQoKCgpPT57SS5jdXJyZW50PTAsIUYuY3VycmVudCYmdiYmdigpfSksMTc1KX1GLmN1cnJlbnQ9c2V0VGltZW91dCgoKCk9PntGLmN1cnJlbnQ9MCxqKCEwKX0pLDMwMCl9ZnVuY3Rpb24gSygpe2NsZWFyVGltZW91dChGLmN1cnJlbnQpLEYuY3VycmVudD0wLGNsZWFyVGltZW91dChJLmN1cnJlbnQpLEkuY3VycmVudD0wfWZ1bmN0aW9uIHEoZSl7ZS5jYW5jZWxhYmxlJiZlLnByZXZlbnREZWZhdWx0KCksJCgpfWZ1bmN0aW9uICQoKXtGLmN1cnJlbnQmJihjbGVhclRpbWVvdXQoRi5jdXJyZW50KSxGLmN1cnJlbnQ9MCxrP2ooITEpOnB8fGt8fGEubW9iaWxldG91Y2h8fCF1JiYhXz8hSS5jdXJyZW50JiZ2JiZ2KCk6aighMCkpfX0pKTt2YXIgZ2U9byg4MzMzMDApLHZlPW8oNDk5NTM5KSxmZT1vKDMyMzA3OSksX2U9bygzNzUyNjIpLGJlPW8oMTUyNjk5KTtjbGFzcyB3ZSBleHRlbmRzIF9lLkNvbW1vbkpzb25TdG9yZVNlcnZpY2V7Y29uc3RydWN0b3IoZSx0LG8sbixpPTE4KXtzdXBlcihiZS5UVlhXaW5kb3dFdmVudHMsbCxlLHQsW10pLHRoaXMuX29uQ2hhbmdlRHJhd2luZ1N0YXRlPSgpPT57Y29uc3QgZT11W3RoaXMuX2RyYXdpbmdUeXBlXS52YWx1ZSgpO3RoaXMuX3Byb21vdGUoZSl9LHRoaXMuX3Nhbml0aXplcj1vLHRoaXMuX2RyYXdpbmdUeXBlPW4sdGhpcy5fbWF4UmVjZW50Q291bnQ9aSx1W3RoaXMuX2RyYXdpbmdUeXBlXS5zdWJzY3JpYmUodGhpcy5fb25DaGFuZ2VEcmF3aW5nU3RhdGUpfWRlc3Ryb3koKXt1W3RoaXMuX2RyYXdpbmdUeXBlXS51bnN1YnNjcmliZSh0aGlzLl9vbkNoYW5nZURyYXdpbmdTdGF0ZSksc3VwZXIuZGVzdHJveSgpfV9kZXNlcmlhbGl6ZShlKXtjb25zdCB0PXRoaXMuX3Nhbml0aXplcihlKTtyZXR1cm4gdGhpcy5fcmVtb3ZlVW5hdmFpbGFibGVSZWNlbnRzKGUsdCl9X3JlbW92ZVVuYXZhaWxhYmxlUmVjZW50cyhlLHQpe3JldHVybiBBcnJheS5pc0FycmF5KGUpP2UubGVuZ3RoPnRoaXMuX21heFJlY2VudENvdW50JiYodD1lLnNsaWNlKDAsdGhpcy5fbWF4UmVjZW50Q291bnQpKTp0PVtdLHR9X3Byb21vdGUoZSl7bGV0IHQ9Wy4uLnRoaXMuZ2V0KCldO2NvbnN0IG89dC5pbmRleE9mKGUpOy0xIT09byYmdC5zcGxpY2UobywxKSx0PVtlLC4uLnQuc2xpY2UoMCx0aGlzLl9tYXhSZWNlbnRDb3VudC0xKV0sdGhpcy5zZXQodCl9fWNvbnN0IENlPW5ldyB3ZSgiUkVDRU5UX0lDT05TX0NIQU5HRUQiLCJsaW5ldG9vbGljb24ucmVjZW50aWNvbnMiLChmdW5jdGlvbihlKXtyZXR1cm4gZS5maWx0ZXIoKGU9PkouaGFzKGUpKSl9KSwiaWNvblRvb2wiKTt2YXIgeWU9byg0NDEyNjApLFRlPW8oMTM1OTMxKTt2YXIgRWU9bygzMTUxNTQpO2NvbnN0IHhlPW5ldyB3ZSgiUkVDRU5UX0VNT0pJU19DSEFOR0VEIiwibGluZXRvb2xlbW9qaS5yZWNlbnRzIixFZS5yZW1vdmVVbmF2YWlsYWJsZUVtb2ppLCJlbW9qaVRvb2wiKTt2YXIgU2U7IWZ1bmN0aW9uKGUpe2UuRWxvbj0iZWxvbiIsZS5TYXlsb3I9InNheWxvciIsZS5Eb2dlPSJkb2dlIixlLkRpc2xpa2U9ImRpc2xpa2UiLGUuWW9sbz0ieW9sbyIsZS5XaGFsZT0id2hhbGUiLGUuV2FnbWk9IndhZ21pIixlLlRlbmRpZXM9InRlbmRpZXMiLGUuU2hvcnQ9InNob3J0IixlLlJ1Z2dlZD0icnVnZ2VkIixlLlNoaWxsPSJzaGlsbCIsZS5SZWt0PSJyZWt0IixlLlNlbGw9InNlbGwiLGUuUGFwZXJIYW5kcz0icGFwZXItaGFuZHMiLGUuT2c9Im9nIixlLkZ1ZD0iZnVkIixlLkdtPSJnbSIsZS5OZ21pPSJuZ21pIixlLk1vb249Im1vb24iLGUuTG92ZT0ibG92ZSIsZS5MYW1ibz0ibGFtYm8iLGUuRXRoZXJldW09ImV0aGVyZXVtIixlLkxvb2s9Imxvb2siLGUuRGlhbW9uZEhhbmQ9ImRpYW1vbmQtaGFuZCIsZS5MZWFwPSJsZWFwIixlLkxpa2U9Imxpa2UiLGUuRmV3PSJmZXciLGUuQml0Y29pbj0iYml0Y29pbiIsZS5CYWdIb2xkZXI9ImJhZy1ob2xkZXIiLGUuQnV5VGhlRGlwPSJidXktdGhlLWRpcCIsZS5CdXk9ImJ1eSIsZS5Ib2RsPSJob2RsIn0oU2V8fChTZT17fSkpO2NvbnN0IExlPVsiZWxvbiIsInNheWxvciIsImRvZ2UiLCJkaXNsaWtlIiwieW9sbyIsIndoYWxlIiwid2FnbWkiLCJ0ZW5kaWVzIiwic2hvcnQiLCJydWdnZWQiLCJzaGlsbCIsInJla3QiLCJzZWxsIiwicGFwZXItaGFuZHMiLCJvZyIsImZ1ZCIsImdtIiwibmdtaSIsIm1vb24iLCJsb3ZlIiwibGFtYm8iLCJldGhlcmV1bSIsImxvb2siLCJkaWFtb25kLWhhbmQiLCJsZWFwIiwibGlrZSIsImZldyIsImJpdGNvaW4iLCJiYWctaG9sZGVyIiwiYnV5LXRoZS1kaXAiLCJidXkiLCJob2RsIl07dmFyIGtlPW8oODE0NjcwKSxBZT1vKDEyNjQ2NCk7Y29uc3QgTWU9bmV3IFNldChMZSk7Y29uc3QgTmU9W3t0aXRsZTpMLnQobnVsbCx7Y29udGV4dDoiZW1vamlfZ3JvdXAifSxvKDQ2NTQ1NikpLGVtb2ppczpbXSxjb250ZW50Om4uY3JlYXRlRWxlbWVudChJLkljb25JdGVtLHtpY29uOmtlfSl9LHt0aXRsZToiVHJhZGluZ1ZpZXciLGVtb2ppczpMZSxjb250ZW50Om4uY3JlYXRlRWxlbWVudChJLkljb25JdGVtLHsKaWNvbjpBZX0pfV0sRGU9bmV3IHdlKCJSRUNFTlRfU1RJQ0tFUlNfQ0hBTkdFRCIsImxpbmV0b29sc3RpY2tlci5yZWNlbnRzIiwoZnVuY3Rpb24oZSl7cmV0dXJuIGUuZmlsdGVyKChlPT5NZS5oYXMoZSkpKX0pLCJzdGlja2VyVG9vbCIsMyk7dmFyIFBlPW8oMTM2NjMpLEJlPW8oMjMxMzE2KSxJZT1vKDk2ODMwNyk7dmFyIEZlLFdlPW8oODc5NDc4KSxSZT1vKDEzMTI2Myk7IWZ1bmN0aW9uKGUpe2UuSWNvbj0iTGluZVRvb2xJY29uIixlLkVtb2ppPSJMaW5lVG9vbEVtb2ppIixlLlN0aWNrZXI9IkxpbmVUb29sU3RpY2tlciJ9KEZlfHwoRmU9e30pKTtjb25zdCBWZT17W1MuSWNvbnNdOntzZXJ2aWNlOkNlLHRvb2xOYW1lOiJMaW5lVG9vbEljb24iLEl0ZW1Db21wb25lbnQ6ZnVuY3Rpb24oZSl7Y29uc3R7ZW1vamk6dCxjbGFzc05hbWU6b309ZTtyZXR1cm4gbi5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6cigpKFRlLml0ZW0sbyl9LG4uY3JlYXRlRWxlbWVudCh5ZS5DaGFyQ29kZUljb24se2NoYXJDb2RlOk51bWJlcih0KX0pKX0saWNvbnM6ZWUsb25FbW9qaVNlbGVjdDplPT57dS5pY29uVG9vbC5zZXRWYWx1ZShOdW1iZXIoZSkpLHUudHJ5U2VsZWN0TGluZVRvb2woIkxpbmVUb29sSWNvbiIpJiYoMCxmZS50cmFja0RyYXdpbmdUb29sU2VsZWN0ZWQpKCJMaW5lVG9vbEljb24iLCJMZWZ0IHBhbmVsIil9fSxbUy5FbW9qaXNdOntzZXJ2aWNlOnhlLHRvb2xOYW1lOiJMaW5lVG9vbEVtb2ppIixpY29uczooMCxFZS5lbW9qaUdyb3VwcykoKSxvbkVtb2ppU2VsZWN0OmU9Pnt1LmVtb2ppVG9vbC5zZXRWYWx1ZShlKSx1LnRyeVNlbGVjdExpbmVUb29sKCJMaW5lVG9vbEVtb2ppIikmJigwLGZlLnRyYWNrRHJhd2luZ1Rvb2xTZWxlY3RlZCkoIkxpbmVUb29sRW1vamkiLCJMZWZ0IHBhbmVsIil9fSxbUy5TdGlja2Vyc106e3NlcnZpY2U6RGUsdG9vbE5hbWU6IkxpbmVUb29sU3RpY2tlciIsSXRlbUNvbXBvbmVudDpmdW5jdGlvbihlKXtjb25zdHtlbW9qaTp0fT1lLHtzaXplOml9PSgwLFBlLnVzZUVuc3VyZWRDb250ZXh0KShCZS5FbW9qaUxpc3RDb250ZW50Q29udGV4dCksW3Isc109KDAsbi51c2VTdGF0ZSkoKTtyZXR1cm4oMCxuLnVzZUVmZmVjdCkoKCgpPT57by5lKDc5OTAyKS50aGVuKG8uYmluZChvLDMzNDY4MikpLnRoZW4oKCh7Z2V0U3ZnQ29udGVudEZvclN0aWNrZXI6ZX0pPT57Y29uc3Qgbz1lKHQpO28mJnMobyl9KSl9KSxbXSksbi5jcmVhdGVFbGVtZW50KG5lLkljb24se2NsYXNzTmFtZTpJZS5zdGlja2VyLGljb246bnVsbCE9PXI/cjp2b2lkIDAsc3R5bGU6e3dpZHRoOmAke2l9cHhgLGhlaWdodDpgJHtpfXB4YH19KX0sUm93Q29tcG9uZW50OmZ1bmN0aW9uKGUpe3JldHVybiBuLmNyZWF0ZUVsZW1lbnQoV2UuRW1vamlzUm93LHsuLi5lLGNsYXNzTmFtZTpSZS5zdGlja2VyUm93fSl9LGljb25zOk5lLG9uRW1vamlTZWxlY3Q6ZT0+e3Uuc3RpY2tlclRvb2wuc2V0VmFsdWUoZSksdS50cnlTZWxlY3RMaW5lVG9vbCgiTGluZVRvb2xTdGlja2VyIikmJigwLGZlLnRyYWNrRHJhd2luZ1Rvb2xTZWxlY3RlZCkoIkxpbmVUb29sU3RpY2tlciIsIkxlZnQgcGFuZWwiKX0sZ2V0RW1vamlTaXplOmU9PmU/Nzg6MTEyfX07dmFyIE9lPW8oNzMyNTk0KTtmdW5jdGlvbiB6ZShlKXtjb25zdHtpc1NtYWxsVGFibGV0OnQsbWF4SGVpZ2h0Om8sYWN0aXZlVGFiOmksc2V0QWN0aXZlVGFiOnN9PWUsYT1WZVtpXSx7c2VydmljZTpsLEl0ZW1Db21wb25lbnQ6YyxSb3dDb21wb25lbnQ6dSxvbkVtb2ppU2VsZWN0OmQsZ2V0RW1vamlTaXplOmh9PWEscD1oJiZoKHQpLFttLGddPSgwLG4udXNlU3RhdGUpKEhlKGEpKTtyZXR1cm4oMCxuLnVzZUxheW91dEVmZmVjdCkoKCgpPT57Y29uc3QgZT17fSx0PSgpPT57Y29uc3QgZT1IZShhKTtnKGUpfTtyZXR1cm4gdCgpLGwuZ2V0T25DaGFuZ2UoKS5zdWJzY3JpYmUoZSx0KSwoKT0+e2wuZ2V0T25DaGFuZ2UoKS51bnN1YnNjcmliZUFsbChlKX19KSxbYV0pLG4uY3JlYXRlRWxlbWVudCgiZGl2Iix7c3R5bGU6e21heEhlaWdodDpvfX0sbi5jcmVhdGVFbGVtZW50KGdlLkVtb2ppTGlzdCx7Y2xhc3NOYW1lOnIoKShPZS5kZXNrdG9wU2l6ZSx0JiZPZS5zbWFsbFNpemUpLGVtb2ppczptLG9uU2VsZWN0OmZ1bmN0aW9uKGUpe2QoZSksKDAsQy5nbG9iYWxDbG9zZU1lbnUpKCl9LEl0ZW1Db21wb25lbnQ6YyxSb3dDb21wb25lbnQ6dSxoZWlnaHQ6byxjYXRlZ29yeTppLGVtb2ppU2l6ZTpwfSksbi5jcmVhdGVFbGVtZW50KHZlLkdyb3VwVGFicyx7Y2xhc3NOYW1lOk9lLnRhYnMsdGFiQ2xhc3NOYW1lOk9lLmNhdGVnb3JpZXMsdGFiczpvZSxhY3RpdmVUYWI6aSxvblRhYkNsaWNrOmZ1bmN0aW9uKGUpe3MoZSl9fSkpfWZ1bmN0aW9uIEhlKGUpe2NvbnN0e2ljb25zOnQsc2VydmljZTpvfT1lLG49Wy4uLnRdLGk9by5nZXQoKTtyZXR1cm4gblswXS5lbW9qaXM9aS5tYXAoKGU9PlN0cmluZyhlKSkpLG4uZmlsdGVyKChlPT5lLmVtb2ppcy5sZW5ndGgpKX12YXIgamU9byg5ODM2MTYpLFplPW8oNDQyNjc1KSxVZT1vKDQ3MjIzMCk7Y29uc3QgR2U9e2ljb246TC50KG51bGwsdm9pZCAwLG8oODAzMDY2KSksZHJvcGRvd25Ub29sdGlwOkwudChudWxsLHZvaWQgMCxvKDkxMTQ0NCkpfSxLZT0oMCxjZS5tZXJnZVRoZW1lcykocGUse21lbnVCb3g6VWUubWVudUJveCxkcmF3ZXI6VWUuZHJhd2VyfSkscWU9cGFyc2VJbnQoWmVbImRlZmF1bHQtZHJhd2VyLW1pbi10b3AtZGlzdGFuY2UiXSk7ZnVuY3Rpb24gJGUoZSl7Y29uc3R7aXNHcmF5ZWQ6dCxpc1NtYWxsVGFibGV0Om99PWUsaT0oMCxrLmZpbHRlckRhdGFQcm9wcykoZSksW3Isc109QigpLFthXT0oMCxNLnVzZVdhdGNoZWRWYWx1ZSkodS50b29sKSx7dG9vbE5hbWU6bH09VmVbcl07cmV0dXJuIG4uY3JlYXRlRWxlbWVudChtZSx7dGhlbWU6S2UsYnV0dG9uSWNvbjp0ZVtyXSxidXR0b25UaXRsZTpHZS5pY29uLGRyb3Bkb3duVG9vbHRpcDpHZS5kcm9wZG93blRvb2x0aXAsaXNBY3RpdmU6YT09PWwsaXNHcmF5ZWQ6dCxpc1NtYWxsVGFibGV0Om8sb25DbGlja0J1dHRvbjpmdW5jdGlvbigpe2MoKX0sCm9uQ2xpY2tXaGVuR3JheWVkOigpPT4oMCxkLmVtaXQpKCJvbkdyYXllZE9iamVjdENsaWNrZWQiLHt0eXBlOiJkcmF3aW5nIixuYW1lOmcubGluZVRvb2xzSW5mb1tsXS5sb2NhbGl6ZWROYW1lfSksb25BcnJvd0NsaWNrOmZ1bmN0aW9uKCl7YygibWVudSIpfSxvcGVuRHJvcGRvd25CeUNsaWNrOiEwLG9uTWVudUZvY3VzOlFlLG9uTWVudUtleURvd246ZnVuY3Rpb24oZSl7aWYoZS5kZWZhdWx0UHJldmVudGVkKXJldHVybjtjb25zdCB0PSgwLGllLmhhc2hGcm9tRXZlbnQpKGUpOzkhPT10JiZ0IT09aWUuTW9kaWZpZXJzLlNoaWZ0Kzl8fCgwLGplLnVwZGF0ZVRhYkluZGV4ZXMpKCl9LGRhdGFNZW51UWFJZDoiZW1vamlwaWNrZXItbWVudSIsLi4uaX0sbi5jcmVhdGVFbGVtZW50KHplLHtpc1NtYWxsVGFibGV0Om8sbWF4SGVpZ2h0Om8/TWF0aC5taW4oNjc5LHdpbmRvdy5pbm5lckhlaWdodC1xZSk6Njc5LGFjdGl2ZVRhYjpyLHNldEFjdGl2ZVRhYjpzfSkpO2Z1bmN0aW9uIGMoZSl7KDAsQS50cmFja0J1dHRvbkNsaWNrKSgibGVmdCB0b29sYmFyIiwiaWNvbnMiLGUpfX1mdW5jdGlvbiBRZShlKXtpZighZS50YXJnZXQpcmV0dXJuO2NvbnN0IHQ9ZS5jdXJyZW50VGFyZ2V0O2UudGFyZ2V0PT09dCYmKCgwLGplLnVwZGF0ZVRhYkluZGV4ZXMpKCksc2V0VGltZW91dCgoKCk9PntpZihkb2N1bWVudC5hY3RpdmVFbGVtZW50IT09dClyZXR1cm47Y29uc3RbZV09KDAsamUucXVlcnlUYWJiYWJsZUVsZW1lbnRzKSh0KS5zb3J0KGplLm5hdmlnYXRpb25PcmRlckNvbXBhcmF0b3IpO2UmJmUuZm9jdXMoKX0pKSl9dmFyIFhlPW8oOTc0NjYzKTtjbGFzcyBZZSBleHRlbmRzIG4uUHVyZUNvbXBvbmVudHtjb25zdHJ1Y3RvcihlKXtzdXBlcihlKSx0aGlzLl9oYW5kbGVDbGljaz0oKT0+e3RoaXMucHJvcHMuc2F2ZURlZmF1bHRPbkNoYW5nZSYmKDAsWGUuYWxsb3dTYXZpbmdEZWZhdWx0cykoITApO2NvbnN0IGU9IXRoaXMucHJvcHMucHJvcGVydHkudmFsdWUoKTt0aGlzLnByb3BzLnByb3BlcnR5LnNldFZhbHVlKGUpLHRoaXMucHJvcHMuc2F2ZURlZmF1bHRPbkNoYW5nZSYmKDAsWGUuYWxsb3dTYXZpbmdEZWZhdWx0cykoITEpLHRoaXMucHJvcHMub25DbGljayYmdGhpcy5wcm9wcy5vbkNsaWNrKGUpfSx0aGlzLnN0YXRlPXtpc0FjdGl2ZTp0aGlzLnByb3BzLnByb3BlcnR5LnZhbHVlKCl9fWNvbXBvbmVudERpZE1vdW50KCl7dGhpcy5wcm9wcy5wcm9wZXJ0eS5zdWJzY3JpYmUodGhpcyx0aGlzLl9vbkNoYW5nZSl9Y29tcG9uZW50V2lsbFVubW91bnQoKXt0aGlzLnByb3BzLnByb3BlcnR5LnVuc3Vic2NyaWJlKHRoaXMsdGhpcy5fb25DaGFuZ2UpfXJlbmRlcigpe2NvbnN0e3Rvb2xOYW1lOmV9PXRoaXMucHJvcHMse2lzQWN0aXZlOnR9PXRoaXMuc3RhdGUsbz1nLmxpbmVUb29sc0luZm9bZV07cmV0dXJuIG4uY3JlYXRlRWxlbWVudChFLHtpY29uOnQmJm8uaWNvbkFjdGl2ZT9vLmljb25BY3RpdmU6by5pY29uLGlzQWN0aXZlOnQsb25DbGljazp0aGlzLl9oYW5kbGVDbGljayx0b29sdGlwOm8ubG9jYWxpemVkTmFtZSxidXR0b25Ib3RLZXk6by5ob3RLZXksImRhdGEtbmFtZSI6ZX0pfV9vbkNoYW5nZShlKXt0aGlzLnNldFN0YXRlKHtpc0FjdGl2ZTplLnZhbHVlKCl9KX19Y2xhc3MgSmUgZXh0ZW5kcyBuLlB1cmVDb21wb25lbnR7Y29uc3RydWN0b3IoZSl7c3VwZXIoZSksdGhpcy5faGFuZGxlQ2xpY2s9KCk9Pnt1LnRyeVNlbGVjdExpbmVUb29sKHRoaXMucHJvcHMudG9vbE5hbWUpJiYoMCxmZS50cmFja0RyYXdpbmdUb29sU2VsZWN0ZWQpKHRoaXMucHJvcHMudG9vbE5hbWUsIkxlZnQgcGFuZWwiKSx0aGlzLnByb3BzLm9uQ2xpY2s/LigpfSx0aGlzLl9vbkNoYW5nZT0oKT0+e3RoaXMuc2V0U3RhdGUoe2lzQWN0aXZlOnUudG9vbC52YWx1ZSgpPT09dGhpcy5wcm9wcy50b29sTmFtZX0pfSx0aGlzLnN0YXRlPXtpc0FjdGl2ZTp1LnRvb2wudmFsdWUoKT09PXRoaXMucHJvcHMudG9vbE5hbWV9fWNvbXBvbmVudERpZE1vdW50KCl7dS50b29sLnN1YnNjcmliZSh0aGlzLl9vbkNoYW5nZSl9Y29tcG9uZW50V2lsbFVubW91bnQoKXt1LnRvb2wudW5zdWJzY3JpYmUodGhpcy5fb25DaGFuZ2UpfXJlbmRlcigpe2NvbnN0e3Rvb2xOYW1lOmV9PXRoaXMucHJvcHMse2lzQWN0aXZlOnR9PXRoaXMuc3RhdGUsbz1nLmxpbmVUb29sc0luZm9bZV07cmV0dXJuIG4uY3JlYXRlRWxlbWVudChFLHtpY29uOmcubGluZVRvb2xzSW5mb1tlXS5pY29uLGlzQWN0aXZlOnQsaXNUcmFuc3BhcmVudDohMCxvbkNsaWNrOnRoaXMuX2hhbmRsZUNsaWNrLHRvb2x0aXA6by5sb2NhbGl6ZWROYW1lLGJ1dHRvbkhvdEtleTpvLmhvdEtleSwiZGF0YS1uYW1lIjplfSl9fXZhciBldD1vKDM4NjkzMSk7Y2xhc3MgdHQgZXh0ZW5kcyBuLlB1cmVDb21wb25lbnR7Y29uc3RydWN0b3IoZSl7c3VwZXIoZSksdGhpcy5fYm91bmRVbmRvTW9kZWw9bnVsbCx0aGlzLl9oYW5kbGVDbGljaz0oKT0+e2NvbnN0IGU9dGhpcy5fYWN0aXZlQ2hhcnRXaWRnZXQoKTt2YXIgdCxvO2UuaGFzTW9kZWwoKSYmZS5tb2RlbCgpLnpvb21Gcm9tVmlld3BvcnQoKSx0PSJ6b29tIG91dCIsKDAsQS50cmFja0J1dHRvbkNsaWNrKSgibGVmdCB0b29sYmFyIix0LG8pLCgwLGV0LnRyYWNrRXZlbnQpKCJHVUkiLCJDaGFydCBMZWZ0IFRvb2xiYXIiLCgwLHMuY2FwaXRhbGl6ZUZpcnN0TGV0dGVyKSh0KSl9LHRoaXMuX3N5bmNVbnpvb21CdXR0b249KCk9Pntjb25zdCBlPXRoaXMuX2FjdGl2ZUNoYXJ0V2lkZ2V0KCk7bGV0IHQ9ITE7aWYoZS5oYXNNb2RlbCgpKXtjb25zdCBvPWUubW9kZWwoKTt0aGlzLl9ib3VuZFVuZG9Nb2RlbCE9PW8mJih0aGlzLl9ib3VuZFVuZG9Nb2RlbCYmdGhpcy5fYm91bmRVbmRvTW9kZWwuem9vbVN0YWNrKCkub25DaGFuZ2UoKS51bnN1YnNjcmliZShudWxsLHRoaXMuX3N5bmNVbnpvb21CdXR0b24pLG8uem9vbVN0YWNrKCkub25DaGFuZ2UoKS5zdWJzY3JpYmUobnVsbCx0aGlzLl9zeW5jVW56b29tQnV0dG9uKSx0aGlzLl9ib3VuZFVuZG9Nb2RlbD1vKSx0PSFvLnpvb21TdGFjaygpLmlzRW1wdHkoKQp9ZWxzZSBlLndpdGhNb2RlbChudWxsLHRoaXMuX3N5bmNVbnpvb21CdXR0b24pO3RoaXMuc2V0U3RhdGUoe2lzVmlzaWJsZTp0fSl9LHRoaXMuc3RhdGU9e2lzVmlzaWJsZTohMX19Y29tcG9uZW50RGlkTW91bnQoKXt0aGlzLnByb3BzLmNoYXJ0V2lkZ2V0Q29sbGVjdGlvbi5hY3RpdmVDaGFydFdpZGdldC5zdWJzY3JpYmUodGhpcy5fc3luY1Vuem9vbUJ1dHRvbix7Y2FsbFdpdGhMYXN0OiEwfSl9Y29tcG9uZW50V2lsbFVubW91bnQoKXt0aGlzLnByb3BzLmNoYXJ0V2lkZ2V0Q29sbGVjdGlvbi5hY3RpdmVDaGFydFdpZGdldC51bnN1YnNjcmliZSh0aGlzLl9zeW5jVW56b29tQnV0dG9uKX1yZW5kZXIoKXtyZXR1cm4gdGhpcy5zdGF0ZS5pc1Zpc2libGU/bi5jcmVhdGVFbGVtZW50KHgse2FjdGlvbjp0aGlzLl9oYW5kbGVDbGljayxpc1RyYW5zcGFyZW50OiEwLHRvb2xOYW1lOiJ6b29tLW91dCJ9KTpuLmNyZWF0ZUVsZW1lbnQoImRpdiIsbnVsbCl9X2FjdGl2ZUNoYXJ0V2lkZ2V0KCl7cmV0dXJuIHRoaXMucHJvcHMuY2hhcnRXaWRnZXRDb2xsZWN0aW9uLmFjdGl2ZUNoYXJ0V2lkZ2V0LnZhbHVlKCl9fXZhciBvdD1vKDkzNTUzNSksbnQ9byg3MzI3MzEpLGl0PW8oNjE4NjcyKSxydD1vKDM5MTUwNCksc3Q9byg1NzE3NjgpLGF0PW8oMzY4MTEwKSxsdD1vKDYxOTEwNSksY3Q9byg4NTAxMDgpLHV0PW8oMTk5MTcyKSxkdD1vKDcwMzgxNCksaHQ9bygyNTUzMjkpLHB0PW8oMzc0MzA0KSxtdD1vKDcyMzk4NiksZ3Q9bygxMDY5MDApLHZ0PW8oNzgyOTgzKTtjb25zdCBmdD0oMCxjZS5tZXJnZVRoZW1lcykocHQubWVudUl0ZW1Td2l0Y2hlck1vYmlsZVRoZW1lLHtsYWJlbDp2dC5zd2l0Y2hlckxhYmVsfSksX3Q9KDAsY2UubWVyZ2VUaGVtZXMpKGh0LkRFRkFVTFRfTUVOVV9JVEVNX1NXSVRDSEVSX1RIRU1FLHtsYWJlbDp2dC5zd2l0Y2hlckxhYmVsfSk7ZnVuY3Rpb24gYnQoZSl7Y29uc3R7d2F0Y2hlZFZhbHVlOnQscmVhY3RLZXk6byxsYWJlbDppLHZhbHVlOnIsaXNTbWFsbFRhYmxldDpzLHZpZXdNb2RlOmF9PWUsbD0oMCxndC51c2VXYXRjaGVkVmFsdWVSZWFkb25seSkoe3dhdGNoZWRWYWx1ZTp0fSk7cmV0dXJuIm5ldyI9PT1hP24uY3JlYXRlRWxlbWVudChtdC5NZW51U3dpdGNoZXJJdGVtLHtrZXk6byxyb2xlOiJyb3ciLHRpdGxlOm4uY3JlYXRlRWxlbWVudCgic3BhbiIse3JvbGU6ImdyaWRjZWxsIiwiYXJpYS1jb2xzcGFuIjoyfSxpKSxhcmlhTGFiZWw6InN0cmluZyI9PXR5cGVvZiBpP2k6dm9pZCAwLHZhbHVlOmwsb25DbGljazooKT0+YyghbCksImRhdGEtcm9sZSI6Im1lbnVpdGVtIn0pOm4uY3JlYXRlRWxlbWVudChodC5NZW51SXRlbVN3aXRjaGVyLHtrZXk6byxjaGVja2VkOmwsb25DaGFuZ2U6YyxsYWJlbDppLHZhbHVlOnIsdGhlbWU6cz9mdDpfdH0pO2Z1bmN0aW9uIGMoZSl7dC5zZXRWYWx1ZShlKX19dmFyIHd0PW8oMzEzMTEwKSxDdD1vKDk3OTc0MikseXQ9bygxMDMxNjApLFR0PW8oMTE5NzUwKSxFdD1vKDkyNjk5NSk7ZnVuY3Rpb24geHQoZSl7Y29uc3R7dG9vbHRpcDp0LHNvbHV0aW9uSWQ6b309ZSxbaSxyXT0oMCxULnVzZVJvdmluZ1RhYmluZGV4RWxlbWVudCkobnVsbCk7cmV0dXJuIG4uY3JlYXRlRWxlbWVudChUdC5JY29uUXVlc3Rpb25JbmZvcm1hdGlvbix7cmVmOmksaWNvbjoicXVlc3Rpb24iLGFyaWFMYWJlbDp0LHRvb2x0aXA6dCxvbkNsaWNrOigpPT4oMCxFdC5zaG93U3VwcG9ydERpYWxvZykoe3NvbHV0aW9uSWQ6b30pLHRhYkluZGV4OnIsY2xhc3NOYW1lOiJhcHBseS1jb21tb24tdG9vbHRpcCIscmVuZGVyQ29tcG9uZW50OiJidXR0b24ifSl9dmFyIFN0PW8oOTg4OTA1KTtmdW5jdGlvbiBMdChlKXtjb25zdHtuYW1lOnQsaWNvbjppLGxvY2FsaXplZE5hbWU6cixob3RrZXlIYXNoOnMsaXNTZWxlY3RlZDphLGlzRGlzYWJsZWQ6bCxpc0Zhdm9yaXRlOmMsc2hvd0Zhdm9yaXRlOnUsYmFkZ2VTbG90OmQsc29sdXRpb25JZDpoLGRvbnRDbG9zZVBvcHVwOnAsb25TZWxlY3Q6bSxvbkdyYXllZENsaWNrOmcsb25DbGlja0Zhdm9yaXRlOnZ9PWUsZj0oMCxuLnVzZUNhbGxiYWNrKSgoKCk9Pmw/Zyh0KTptKHQpKSxbbCxnLG0sdF0pLF89KDAsbi51c2VDYWxsYmFjaykoKCgpPT52KHQpKSxbdix0XSksYj0zLSh1PzE6MCksdz1oP24uY3JlYXRlRWxlbWVudCh5dC5Db250ZXh0QWN0aW9uLHtoaWRlSWZOb0hvdmVyOiEwfSxuLmNyZWF0ZUVsZW1lbnQoeHQse3Rvb2x0aXA6TC50KG51bGwsdm9pZCAwLG8oMzQ5NTAxKSksc29sdXRpb25JZDpofSkpOm51bGwsQz11P24uY3JlYXRlRWxlbWVudCh5dC5Db250ZXh0QWN0aW9uLHtoaWRlSWZOb0hvdmVyOiFjLHJvbGU6ImdyaWRjZWxsIn0sbi5jcmVhdGVFbGVtZW50KEN0LkZhdm9yaXRlSWNvbkJ1dHRvbix7aXNGYXZvcml0ZTpjLG9uQ2xpY2s6X30pKTpudWxsO3JldHVybiBuLmNyZWF0ZUVsZW1lbnQod3QuTWVudUl0ZW0se3JvbGU6InJvdyIsYXJpYVNlbGVjdGVkOmEsc2VsZWN0ZWQ6YSxkaXNhYmxlZDpsLGRvbnRDbG9zZVBvcHVwOnAsb25DbGljazpmLGxlZnRTbG90Om4uY3JlYXRlRWxlbWVudChuZS5JY29uLHtpY29uOml9KSxzaXplOiJsYXJnZSIsdGl0bGU6bi5jcmVhdGVFbGVtZW50KCJzcGFuIix7cm9sZToiZ3JpZGNlbGwiLCJhcmlhLWNvbHNwYW4iOmIsY2xhc3NOYW1lOlN0LnRpdGxlfSxyLGQsdyksYXJpYUxhYmVsOnIsaG90a2V5OnMscmlnaHRTbG90OkMsImRhdGEtbmFtZSI6dCwiZGF0YS1yb2xlIjoibWVudWl0ZW0ifSl9dmFyIGt0PW8oNjI3NTQ0KTtjb25zdCBBdD1uZXcgU2V0KFtdKTtjbGFzcyBNdCBleHRlbmRzIG4uUHVyZUNvbXBvbmVudHtjb25zdHJ1Y3RvcihlKXtzdXBlcihlKSx0aGlzLl9vbkNoYW5nZURyYXdpbmdTdGF0ZT0oKT0+e2NvbnN0IGU9dGhpcy5fZ2V0QWN0aXZlVG9vbE5hbWUoKTt0aGlzLnNldFN0YXRlKHtjdXJyZW50OmV8fHRoaXMuc3RhdGUuY3VycmVudCxpc0FjdGl2ZTohIWV9KX0sdGhpcy5faGFuZGxlQ2xpY2tCdXR0b249KCk9Pnt0aGlzLl90cmFja0NsaWNrKCk7Y29uc3R7Y3VycmVudDplfT10aGlzLnN0YXRlCjshcC5DaGVja01vYmlsZS5hbnkoKSYmZSYmdGhpcy5fc2VsZWN0VG9vbChlKX0sdGhpcy5faGFuZGxlQ2xpY2tJdGVtPWU9Pnt0aGlzLl9zZWxlY3RUb29sKGUpfSx0aGlzLl9oYW5kbGVHcmF5ZWRDbGljaz1lPT57KDAsZC5lbWl0KSgib25HcmF5ZWRPYmplY3RDbGlja2VkIix7dHlwZToiZHJhd2luZyIsbmFtZTpnLmxpbmVUb29sc0luZm9bZV0ubG9jYWxpemVkTmFtZX0pfSx0aGlzLl9oYW5kbGVDbGlja0Zhdm9yaXRlPWU9Pnt0aGlzLnN0YXRlLmZhdlN0YXRlJiZ0aGlzLnN0YXRlLmZhdlN0YXRlW2VdP3N0LkxpbmV0b29sc0Zhdm9yaXRlc1N0b3JlLnJlbW92ZUZhdm9yaXRlKGUpOnN0LkxpbmV0b29sc0Zhdm9yaXRlc1N0b3JlLmFkZEZhdm9yaXRlKGUpfSx0aGlzLl9vbkFkZEZhdm9yaXRlPWU9Pnt0aGlzLnNldFN0YXRlKHtmYXZTdGF0ZTp7Li4udGhpcy5zdGF0ZS5mYXZTdGF0ZSxbZV06ITB9fSl9LHRoaXMuX29uUmVtb3ZlRmF2b3JpdGU9ZT0+e3RoaXMuc2V0U3RhdGUoe2ZhdlN0YXRlOnsuLi50aGlzLnN0YXRlLmZhdlN0YXRlLFtlXTohMX19KX0sdGhpcy5fb25TeW5jRmF2b3JpdGVzPSgpPT57dGhpcy5zZXRTdGF0ZSh7ZmF2U3RhdGU6dGhpcy5fY29tcG9zZUZhdlN0YXRlKCl9KX0sdGhpcy5faGFuZGxlQXJyb3dDbGljaz0oKT0+e3RoaXMuX3RyYWNrQ2xpY2soIm1lbnUiKX0sdGhpcy5fdHJhY2tDbGljaz1lPT57Y29uc3R7dHJhY2tMYWJlbDp0fT10aGlzLnByb3BzO3QmJigwLEEudHJhY2tCdXR0b25DbGljaykoImxlZnQgdG9vbGJhciIsdCxlKX07Y29uc3QgdD10aGlzLl9nZXRBY3RpdmVUb29sTmFtZSgpO3RoaXMuc3RhdGU9e2N1cnJlbnQ6dHx8dGhpcy5fZmlyc3ROb25HcmF5ZWRUb29sKCksZmF2U3RhdGU6dGhpcy5fY29tcG9zZUZhdlN0YXRlKCksaXNBY3RpdmU6ISF0fX1jb21wb25lbnREaWRNb3VudCgpe3UudG9vbC5zdWJzY3JpYmUodGhpcy5fb25DaGFuZ2VEcmF3aW5nU3RhdGUpLHN0LkxpbmV0b29sc0Zhdm9yaXRlc1N0b3JlLmZhdm9yaXRlQWRkZWQuc3Vic2NyaWJlKG51bGwsdGhpcy5fb25BZGRGYXZvcml0ZSksc3QuTGluZXRvb2xzRmF2b3JpdGVzU3RvcmUuZmF2b3JpdGVSZW1vdmVkLnN1YnNjcmliZShudWxsLHRoaXMuX29uUmVtb3ZlRmF2b3JpdGUpLHN0LkxpbmV0b29sc0Zhdm9yaXRlc1N0b3JlLmZhdm9yaXRlc1N5bmNlZC5zdWJzY3JpYmUobnVsbCx0aGlzLl9vblN5bmNGYXZvcml0ZXMpfWNvbXBvbmVudFdpbGxVbm1vdW50KCl7dS50b29sLnVuc3Vic2NyaWJlKHRoaXMuX29uQ2hhbmdlRHJhd2luZ1N0YXRlKSxzdC5MaW5ldG9vbHNGYXZvcml0ZXNTdG9yZS5mYXZvcml0ZUFkZGVkLnVuc3Vic2NyaWJlKG51bGwsdGhpcy5fb25BZGRGYXZvcml0ZSksc3QuTGluZXRvb2xzRmF2b3JpdGVzU3RvcmUuZmF2b3JpdGVSZW1vdmVkLnVuc3Vic2NyaWJlKG51bGwsdGhpcy5fb25SZW1vdmVGYXZvcml0ZSksc3QuTGluZXRvb2xzRmF2b3JpdGVzU3RvcmUuZmF2b3JpdGVzU3luY2VkLnVuc3Vic2NyaWJlKG51bGwsdGhpcy5fb25TeW5jRmF2b3JpdGVzKX1jb21wb25lbnREaWRVcGRhdGUoZSx0KXtlLmxpbmVUb29scyE9PXRoaXMucHJvcHMubGluZVRvb2xzJiZ0aGlzLnNldFN0YXRlKHtmYXZTdGF0ZTp0aGlzLl9jb21wb3NlRmF2U3RhdGUoKX0pfXJlbmRlcigpe2NvbnN0e2N1cnJlbnQ6ZSxmYXZTdGF0ZTp0LGlzQWN0aXZlOm99PXRoaXMuc3RhdGU7aWYoIWUpcmV0dXJuIG4uY3JlYXRlRWxlbWVudChuLkZyYWdtZW50LG51bGwpO2NvbnN0e2Zhdm9yaXRpbmc6aSxncmF5ZWRUb29sczpyLGxpbmVUb29sczpzLGRyb3Bkb3duVG9vbHRpcDphLGlzU21hbGxUYWJsZXQ6bCx2aWV3TW9kZTpjfT10aGlzLnByb3BzLHU9dGhpcy5fc2hvd1Nob3J0Y3V0cygpLGQ9Zy5saW5lVG9vbHNJbmZvW2VdLGg9KDAsay5maWx0ZXJEYXRhUHJvcHMpKHRoaXMucHJvcHMpO3JldHVybiBuLmNyZWF0ZUVsZW1lbnQoInNwYW4iLG51bGwsbi5jcmVhdGVFbGVtZW50KG1lLHtidXR0b25JY29uOmQuaWNvbixidXR0b25UaXRsZTpkLmxvY2FsaXplZE5hbWUsYnV0dG9uSG90S2V5OmQuaG90S2V5LGRyb3Bkb3duVG9vbHRpcDphLGlzQWN0aXZlOm8sb25DbGlja0J1dHRvbjp0aGlzLl9oYW5kbGVDbGlja0J1dHRvbixvbkFycm93Q2xpY2s6dGhpcy5faGFuZGxlQXJyb3dDbGljayxpc1NtYWxsVGFibGV0Omwsdmlld01vZGU6YywuLi5ofSxzLm1hcCgoKHMsYSk9PntpZigidGl0bGUiaW4gcylyZXR1cm4ibmV3Ij09PWM/bi5jcmVhdGVFbGVtZW50KG4uRnJhZ21lbnQse2tleTpzLnRpdGxlPz9gc2VwYXJhdG9yJHthfWB9LGE+MD9uLmNyZWF0ZUVsZW1lbnQobnQuRGl2aWRlckxpc3RJdGVtLHtyb2xlOiJzZXBhcmF0b3IifSk6bnVsbCxzLnRpdGxlJiZuLmNyZWF0ZUVsZW1lbnQob3QuVGl0bGVMaXN0SXRlbSx7dGl0bGU6bi5jcmVhdGVFbGVtZW50KCJzcGFuIix7cm9sZToiZ3JpZGNlbGwiLCJhcmlhLWNvbHNwYW4iOjN9LHMudGl0bGUpLGFyaWFMYWJlbDpzLnRpdGxlLHJvbGU6InJvdyIsdmFyaWFudDoic2Vjb25kYXJ5In0pKTpuLmNyZWF0ZUVsZW1lbnQobi5GcmFnbWVudCx7a2V5OnMudGl0bGU/P2BzZXBhcmF0b3Ike2F9YH0sYT4wP24uY3JlYXRlRWxlbWVudChpdC5Qb3B1cE1lbnVTZXBhcmF0b3IsbnVsbCk6bnVsbCxzLnRpdGxlJiZuLmNyZWF0ZUVsZW1lbnQodXQuVG9vbFdpZGdldE1lbnVTdW1tYXJ5LHtjbGFzc05hbWU6a3Quc2VjdGlvblRpdGxlfSxzLnRpdGxlKSk7aWYoKDAsZi5pc0xpbmVUb29sT3B0aW9uKShzKSlyZXR1cm4gdGhpcy5fZ2V0TGluZVRvb2xPcHRpb24ocyk7Y29uc3R7bmFtZTpkfT1zLGg9Zy5saW5lVG9vbHNJbmZvW2RdPy5zZWxlY3RIb3RrZXk/Lmhhc2gse2ljb246cCxsb2NhbGl6ZWROYW1lOm0sc29sdXRpb25JZDp2fT1nLmxpbmVUb29sc0luZm9bZF0sXz1yW2RdO3JldHVybiJuZXciPT09Yz9uLmNyZWF0ZUVsZW1lbnQoTHQse2tleTpkLG5hbWU6ZCxpY29uOnAsbG9jYWxpemVkTmFtZTptLGhvdGtleUhhc2g6bD92b2lkIDA6aCxpc1NlbGVjdGVkOiEoIW98fGUhPT1kKSxpc0Rpc2FibGVkOiEhXyxpc0Zhdm9yaXRlOiEhdFtkXSwKc2hvd0Zhdm9yaXRlOmkmJiFfLGRvbnRDbG9zZVBvcHVwOiEhXyxiYWRnZVNsb3Q6QXQuaGFzKGQpP24uY3JlYXRlRWxlbWVudChkdC5CYWRnZU5ldyx7Y2xhc3NOYW1lOmt0Lm5ld0JhZGdlfSk6dm9pZCAwLHNvbHV0aW9uSWQ6dixvblNlbGVjdDp0aGlzLl9oYW5kbGVDbGlja0l0ZW0sb25HcmF5ZWRDbGljazp0aGlzLl9oYW5kbGVHcmF5ZWRDbGljayxvbkNsaWNrRmF2b3JpdGU6dGhpcy5faGFuZGxlQ2xpY2tGYXZvcml0ZX0pOm4uY3JlYXRlRWxlbWVudChjdC5BY2Nlc3NpYmxlTWVudUl0ZW0se2tleTpkLCJkYXRhLW5hbWUiOmQsdGhlbWU6bD9ydC5tdWx0aWxpbmVMYWJlbFdpdGhJY29uQW5kVG9vbGJveFRoZW1lOnZvaWQgMCxkb250Q2xvc2VQb3B1cDpfLGZvcmNlU2hvd1Nob3J0Y3V0czp1LHNob3J0Y3V0OiFsJiZoPygwLGllLmh1bWFuUmVhZGFibGVIYXNoKShoKTp2b2lkIDAsaWNvbjpwLGlzQWN0aXZlOm8mJmU9PT1kLGFwcGVhckFzRGlzYWJsZWQ6XyxsYWJlbDpuLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTprdC5sYWJlbH0sbSxBdC5oYXMoZCkmJm4uY3JlYXRlRWxlbWVudChkdC5CYWRnZU5ldyx7Y2xhc3NOYW1lOmt0Lm5ld0JhZGdlfSkpLHNob3dUb29sYm94T25Gb2N1czohMCxvbkNsaWNrOl8/dGhpcy5faGFuZGxlR3JheWVkQ2xpY2s6dGhpcy5faGFuZGxlQ2xpY2tJdGVtLG9uQ2xpY2tBcmc6ZCxzaG93VG9vbGJveE9uSG92ZXI6IXRbZF0sdG9vbGJveDppJiYhXz9uLmNyZWF0ZUVsZW1lbnQobHQuTWVudUZhdm9yaXRlQnV0dG9uLHtpc0FjdGl2ZTpvJiZlPT09ZCxpc0ZpbGxlZDp0W2RdLG9uQ2xpY2s6KCk9PnRoaXMuX2hhbmRsZUNsaWNrRmF2b3JpdGUoZCl9KTp2b2lkIDB9KX0pKSkpfV9maXJzdE5vbkdyYXllZFRvb2woKXtjb25zdHtncmF5ZWRUb29sczplLGxpbmVUb29sczp0fT10aGlzLnByb3BzO3JldHVybiB0LmZpbmQoKHQ9PigwLGYuaXNMaW5lVG9vbCkodCkmJiFlW3QubmFtZV0pKT8ubmFtZX1fc2hvd1Nob3J0Y3V0cygpe3JldHVybiB0aGlzLnByb3BzLmxpbmVUb29scy5zb21lKChlPT4iaG90a2V5SGFzaCJpbiBlKSl9X2dldExpbmVUb29sT3B0aW9uKGUpe3JldHVybigwLGYuaXNMaW5lVG9vbFN3aXRjaGVyT3B0aW9uKShlKT9uLmNyZWF0ZUVsZW1lbnQobi5GcmFnbWVudCx7a2V5OmAke2UudmFsdWV9LSR7ZS50eXBlfWB9LCJuZXciPT09dGhpcy5wcm9wcy52aWV3TW9kZT9uLmNyZWF0ZUVsZW1lbnQobnQuRGl2aWRlckxpc3RJdGVtLHtyb2xlOiJzZXBhcmF0b3IifSk6bi5jcmVhdGVFbGVtZW50KGl0LlBvcHVwTWVudVNlcGFyYXRvcixudWxsKSxuLmNyZWF0ZUVsZW1lbnQoYnQsey4uLmUsaXNTbWFsbFRhYmxldDp0aGlzLnByb3BzLmlzU21hbGxUYWJsZXQsdmlld01vZGU6dGhpcy5wcm9wcy52aWV3TW9kZX0pKTpudWxsfV9nZXRBY3RpdmVUb29sTmFtZSgpe3JldHVybiB0aGlzLnByb3BzLmxpbmVUb29scy5maW5kKChlPT4oMCxmLmlzTGluZVRvb2wpKGUpJiZlLm5hbWU9PT11LnRvb2wudmFsdWUoKSkpPy5uYW1lfWFzeW5jIF9zZWxlY3RUb29sKGUpe2F3YWl0KDAsYXQuaW5pdExpbmVUb29sKShlKSx1LnRyeVNlbGVjdExpbmVUb29sKGUpJiYoMCxmZS50cmFja0RyYXdpbmdUb29sU2VsZWN0ZWQpKGUsIkxlZnQgcGFuZWwiKX1fY29tcG9zZUZhdlN0YXRlKCl7Y29uc3QgZT17fTtyZXR1cm4gdGhpcy5wcm9wcy5saW5lVG9vbHMuZm9yRWFjaCgodD0+eygwLGYuaXNMaW5lVG9vbCkodCkmJihlW3QubmFtZV09c3QuTGluZXRvb2xzRmF2b3JpdGVzU3RvcmUuaXNGYXZvcml0ZSh0Lm5hbWUpKX0pKSxlfX12YXIgTnQ9bygxNTM3MzQpLER0PW8oMzk4OTYxKTtjb25zdCBQdD0oMCxjZS5tZXJnZVRoZW1lcykoTnQuREVGQVVMVF9QT1BVUF9NRU5VX0lURU1fVEhFTUUsRHQpO3ZhciBCdD1vKDM0ODQzOCksSXQ9byg2Mzk5NDMpLEZ0PW8oMjE3ODU0KTtjb25zdCBXdD0hMDtjbGFzcyBSdCBleHRlbmRzIG4uUHVyZUNvbXBvbmVudHtjb25zdHJ1Y3RvcihlKXtzdXBlcihlKSx0aGlzLl9oYW5kbGVSZW1vdmVUb29sQ2xpY2s9KCk9PnthLm1vYmlsZXRvdWNoLE90KCl9LHRoaXMuX2hhbmRsZVJlbW92ZURyYXdpbmdzPSgpPT57VnQoInJlbW92ZSBkcmF3aW5nIiksdGhpcy5wcm9wcy5jaGFydFdpZGdldENvbGxlY3Rpb24uYWN0aXZlQ2hhcnRXaWRnZXQudmFsdWUoKS5hY3Rpb25zKCkucGFuZVJlbW92ZUFsbERyYXdpbmdUb29scy5leGVjdXRlKCl9LHRoaXMuX2hhbmRsZVJlbW92ZVN0dWRpZXM9KCk9PntWdCgicmVtb3ZlIGluZGljYXRvciIpLHRoaXMucHJvcHMuY2hhcnRXaWRnZXRDb2xsZWN0aW9uLmFjdGl2ZUNoYXJ0V2lkZ2V0LnZhbHVlKCkuYWN0aW9ucygpLnBhbmVSZW1vdmVBbGxTdHVkaWVzLmV4ZWN1dGUoKX0sdGhpcy5faGFuZGxlUmVtb3ZlQWxsPSgpPT57VnQoInJlbW92ZSBhbGwiKSx0aGlzLnByb3BzLmNoYXJ0V2lkZ2V0Q29sbGVjdGlvbi5hY3RpdmVDaGFydFdpZGdldC52YWx1ZSgpLmFjdGlvbnMoKS5wYW5lUmVtb3ZlQWxsU3R1ZGllc0RyYXdpbmdUb29scy5leGVjdXRlKCl9LHRoaXMuX2hhbmRsZUFsd2F5c1JlbW92ZUxvY2tlZERyYXdpbmdzPSgpPT57Y29uc3QgZT0hQnQuZGVsZXRlTG9ja2VkTGluZVRvb2xzUHJvcGVydHkudmFsdWUoKTtCdC5kZWxldGVMb2NrZWRMaW5lVG9vbHNQcm9wZXJ0eS5zZXRWYWx1ZShlKSxlJiZJdC5kb05vdFNob3dEZWxldGVMb2NrZWRMaW5lQ29uZmlybVByb3BlcnR5LnNldFZhbHVlKCEwKSx0aGlzLnNldFN0YXRlKHRoaXMuX2dldEFjdHVhbFN0YXRlKCkpfSx0aGlzLl9oYW5kbGVDaGFydFdpZGdldEluaXRpYWxpemVkPSgpPT57dGhpcy5fYWN0aXZlQ2hhcnRXaWRnZXQmJih0aGlzLl91bnN1YnNjcmliZVRvTW9kZWxDaGFuZ2VzKHRoaXMuX2FjdGl2ZUNoYXJ0V2lkZ2V0KSx0aGlzLl9zdWJzY3JpYmVUb01vZGVsQ2hhbmdlcyh0aGlzLl9hY3RpdmVDaGFydFdpZGdldCkpfSx0aGlzLl9oYW5kbGVBY3RpdmVDaGFydFdpZGdldENoYW5nZWQ9ZT0+e3RoaXMuX2FjdGl2ZUNoYXJ0V2lkZ2V0JiYodGhpcy5fdW5zdWJzY3JpYmVUb01vZGVsQ2hhbmdlcyh0aGlzLl9hY3RpdmVDaGFydFdpZGdldCksCnRoaXMuX2FjdGl2ZUNoYXJ0V2lkZ2V0LmNoYXJ0V2lkZ2V0SW5pdGlhbGl6ZWQoKS51bnN1YnNjcmliZShudWxsLHRoaXMuX2hhbmRsZUNoYXJ0V2lkZ2V0SW5pdGlhbGl6ZWQpKSxlJiYodGhpcy5fc3Vic2NyaWJlVG9Nb2RlbENoYW5nZXMoZSksZS5jaGFydFdpZGdldEluaXRpYWxpemVkKCkuc3Vic2NyaWJlKG51bGwsdGhpcy5faGFuZGxlQ2hhcnRXaWRnZXRJbml0aWFsaXplZCkpLHRoaXMuX2FjdGl2ZUNoYXJ0V2lkZ2V0PWUsdGhpcy5faGFuZGxlQ29sbGVjdGlvbkNoYW5nZWQoKX0sdGhpcy5faGFuZGxlQ29sbGVjdGlvbkNoYW5nZWQ9KCk9Pnt0aGlzLnNldFN0YXRlKHRoaXMuX2dldEFjdHVhbFN0YXRlKCkpfSx0aGlzLl9nZXRBY3R1YWxTdGF0ZT0oKT0+e2lmKCF0aGlzLl9hY3RpdmVDaGFydFdpZGdldHx8IXRoaXMuX2FjdGl2ZUNoYXJ0V2lkZ2V0Lmhhc01vZGVsKCkpcmV0dXJue3JlbW92ZUFsbERyYXdpbmdzTGFiZWw6TC50KG51bGwsdm9pZCAwLG8oNDIyNDE1KSkscmVtb3ZlQWxsU3R1ZGllc0xhYmVsOkwudChudWxsLHZvaWQgMCxvKDI5MDQ1KSkscmVtb3ZlQWxsTGFiZWw6TC50KG51bGwsdm9pZCAwLG8oMTgxOTQ0KSksYWx3YXlzUmVtb3ZlTG9ja2VkRHJhd2luZ3M6QnQuZGVsZXRlTG9ja2VkTGluZVRvb2xzUHJvcGVydHkudmFsdWUoKX07Y29uc3QgZT10aGlzLl9hY3RpdmVDaGFydFdpZGdldC5hY3Rpb25zKCk7cmV0dXJue3JlbW92ZUFsbERyYXdpbmdzTGFiZWw6ZS5wYW5lUmVtb3ZlQWxsRHJhd2luZ1Rvb2xzLmdldFN0YXRlKCkubGFiZWwscmVtb3ZlQWxsU3R1ZGllc0xhYmVsOmUucGFuZVJlbW92ZUFsbFN0dWRpZXMuZ2V0U3RhdGUoKS5sYWJlbCxyZW1vdmVBbGxMYWJlbDplLnBhbmVSZW1vdmVBbGxTdHVkaWVzRHJhd2luZ1Rvb2xzLmdldFN0YXRlKCkubGFiZWwsYWx3YXlzUmVtb3ZlTG9ja2VkRHJhd2luZ3M6QnQuZGVsZXRlTG9ja2VkTGluZVRvb2xzUHJvcGVydHkudmFsdWUoKX19LHRoaXMuX2FjdGl2ZUNoYXJ0V2lkZ2V0PXRoaXMucHJvcHMuY2hhcnRXaWRnZXRDb2xsZWN0aW9uLmFjdGl2ZUNoYXJ0V2lkZ2V0LnZhbHVlKCksdGhpcy5zdGF0ZT10aGlzLl9nZXRBY3R1YWxTdGF0ZSgpfWNvbXBvbmVudERpZE1vdW50KCl7dGhpcy5wcm9wcy5jaGFydFdpZGdldENvbGxlY3Rpb24uYWN0aXZlQ2hhcnRXaWRnZXQuc3Vic2NyaWJlKHRoaXMuX2hhbmRsZUFjdGl2ZUNoYXJ0V2lkZ2V0Q2hhbmdlZCx7Y2FsbFdpdGhMYXN0OiEwfSl9Y29tcG9uZW50V2lsbFVubW91bnQoKXt0aGlzLl9hY3RpdmVDaGFydFdpZGdldCYmdGhpcy5fdW5zdWJzY3JpYmVUb01vZGVsQ2hhbmdlcyh0aGlzLl9hY3RpdmVDaGFydFdpZGdldCksdGhpcy5wcm9wcy5jaGFydFdpZGdldENvbGxlY3Rpb24uYWN0aXZlQ2hhcnRXaWRnZXQudW5zdWJzY3JpYmUodGhpcy5faGFuZGxlQWN0aXZlQ2hhcnRXaWRnZXRDaGFuZ2VkKX1yZW5kZXIoKXtjb25zdCBlPXRoaXMucHJvcHMuaXNTbWFsbFRhYmxldD9QdDp2b2lkIDAsdD10aGlzLnByb3BzLmlzU21hbGxUYWJsZXQ/cHQubWVudUl0ZW1Td2l0Y2hlck1vYmlsZVRoZW1lOmh0LkRFRkFVTFRfTUVOVV9JVEVNX1NXSVRDSEVSX1RIRU1FLGk9dGhpcy5wcm9wcy5pc1NtYWxsVGFibGV0JiYibGVnYWN5Ij09PXRoaXMucHJvcHMudmlld01vZGU/RnQud3JhcHBlcjp2b2lkIDAse3JlbW92ZUFsbERyYXdpbmdzTGFiZWw6cixyZW1vdmVBbGxTdHVkaWVzTGFiZWw6cyxyZW1vdmVBbGxMYWJlbDphLGFsd2F5c1JlbW92ZUxvY2tlZERyYXdpbmdzOmx9PXRoaXMuc3RhdGU7cmV0dXJuIG4uY3JlYXRlRWxlbWVudChtZSx7YnV0dG9uSWNvbjpnLmxpbmVUb29sc0luZm9bdGhpcy5wcm9wcy50b29sTmFtZV0uaWNvbixidXR0b25UaXRsZTpMLnQobnVsbCx2b2lkIDAsbyg2MzY1MDQpKSxvbkNsaWNrQnV0dG9uOnRoaXMuX2hhbmRsZVJlbW92ZVRvb2xDbGljayxkcm9wZG93blRvb2x0aXA6TC50KG51bGwsdm9pZCAwLG8oMjc5NDApKSxpc1NtYWxsVGFibGV0OnRoaXMucHJvcHMuaXNTbWFsbFRhYmxldCwiZGF0YS1uYW1lIjp0aGlzLnByb3BzLnRvb2xOYW1lLG9uQXJyb3dDbGljazp0aGlzLl9oYW5kbGVBcnJvd0NsaWNrLG9wZW5Ecm9wZG93bkJ5Q2xpY2s6V3Qsdmlld01vZGU6dGhpcy5wcm9wcy52aWV3TW9kZX0sIm5ldyI9PT10aGlzLnByb3BzLnZpZXdNb2RlP24uY3JlYXRlRWxlbWVudChuLkZyYWdtZW50LG51bGwsbi5jcmVhdGVFbGVtZW50KHd0Lk1lbnVJdGVtLHtyb2xlOiJyb3ciLCJkYXRhLW5hbWUiOiJyZW1vdmUtZHJhd2luZy10b29scyIsdGl0bGU6bi5jcmVhdGVFbGVtZW50KCJzcGFuIix7cm9sZToiZ3JpZGNlbGwiLCJhcmlhLWNvbHNwYW4iOjN9LHIpLGFyaWFMYWJlbDpyLG9uQ2xpY2s6dGhpcy5faGFuZGxlUmVtb3ZlRHJhd2luZ3MsImRhdGEtcm9sZSI6Im1lbnVpdGVtIn0pLG4uY3JlYXRlRWxlbWVudCh3dC5NZW51SXRlbSx7cm9sZToicm93IiwiZGF0YS1uYW1lIjoicmVtb3ZlLXN0dWRpZXMiLHRpdGxlOm4uY3JlYXRlRWxlbWVudCgic3BhbiIse3JvbGU6ImdyaWRjZWxsIiwiYXJpYS1jb2xzcGFuIjozfSxzKSxhcmlhTGFiZWw6cyxvbkNsaWNrOnRoaXMuX2hhbmRsZVJlbW92ZVN0dWRpZXMsImRhdGEtcm9sZSI6Im1lbnVpdGVtIn0pLG4uY3JlYXRlRWxlbWVudCh3dC5NZW51SXRlbSx7cm9sZToicm93IiwiZGF0YS1uYW1lIjoicmVtb3ZlLWFsbCIsdGl0bGU6bi5jcmVhdGVFbGVtZW50KCJzcGFuIix7cm9sZToiZ3JpZGNlbGwiLCJhcmlhLWNvbHNwYW4iOjN9LGEpLGFyaWFMYWJlbDphLG9uQ2xpY2s6dGhpcy5faGFuZGxlUmVtb3ZlQWxsLCJkYXRhLXJvbGUiOiJtZW51aXRlbSJ9KSxuLmNyZWF0ZUVsZW1lbnQobnQuRGl2aWRlckxpc3RJdGVtLHtyb2xlOiJzZXBhcmF0b3IifSksbi5jcmVhdGVFbGVtZW50KG10Lk1lbnVTd2l0Y2hlckl0ZW0se3JvbGU6InJvdyIsdGl0bGU6bi5jcmVhdGVFbGVtZW50KCJzcGFuIix7cm9sZToiZ3JpZGNlbGwiLCJhcmlhLWNvbHNwYW4iOjJ9LEwudChudWxsLHZvaWQgMCxvKDgxNDY2KSkpLGFyaWFMYWJlbDpMLnQobnVsbCx2b2lkIDAsbyg4MTQ2NikpLHZhbHVlOmwsCm9uQ2xpY2s6dGhpcy5faGFuZGxlQWx3YXlzUmVtb3ZlTG9ja2VkRHJhd2luZ3MsImRhdGEtcm9sZSI6Im1lbnVpdGVtIn0pKTpuLmNyZWF0ZUVsZW1lbnQobi5GcmFnbWVudCxudWxsLG4uY3JlYXRlRWxlbWVudChjdC5BY2Nlc3NpYmxlTWVudUl0ZW0seyJkYXRhLW5hbWUiOiJyZW1vdmUtZHJhd2luZy10b29scyIsbGFiZWw6cixvbkNsaWNrOnRoaXMuX2hhbmRsZVJlbW92ZURyYXdpbmdzLHRoZW1lOmV9KSxuLmNyZWF0ZUVsZW1lbnQoY3QuQWNjZXNzaWJsZU1lbnVJdGVtLHsiZGF0YS1uYW1lIjoicmVtb3ZlLXN0dWRpZXMiLGxhYmVsOnMsb25DbGljazp0aGlzLl9oYW5kbGVSZW1vdmVTdHVkaWVzLHRoZW1lOmV9KSxuLmNyZWF0ZUVsZW1lbnQoY3QuQWNjZXNzaWJsZU1lbnVJdGVtLHsiZGF0YS1uYW1lIjoicmVtb3ZlLWFsbCIsbGFiZWw6YSxvbkNsaWNrOnRoaXMuX2hhbmRsZVJlbW92ZUFsbCx0aGVtZTplfSksbi5jcmVhdGVFbGVtZW50KGl0LlBvcHVwTWVudVNlcGFyYXRvcixudWxsKSxuLmNyZWF0ZUVsZW1lbnQoaHQuTWVudUl0ZW1Td2l0Y2hlcix7Y2hlY2tlZDpsLG9uQ2hhbmdlOnRoaXMuX2hhbmRsZUFsd2F5c1JlbW92ZUxvY2tlZERyYXdpbmdzLGxhYmVsOkwudChudWxsLHZvaWQgMCxvKDgxNDY2KSksdmFsdWU6ImFsd2F5c1JlbW92ZUxvY2tlZERyYXdpbmdzU3dpdGNoZXIiLHRoZW1lOnQsY2xhc3NOYW1lOml9KSkpfV9oYW5kbGVBcnJvd0NsaWNrKCl7T3QoIm1lbnUiKX1fc3Vic2NyaWJlVG9Nb2RlbENoYW5nZXMoZSl7ZS53aXRoTW9kZWwodGhpcywoKCk9Pnt0aGlzLl9oYW5kbGVDb2xsZWN0aW9uQ2hhbmdlZCgpLGUubW9kZWwoKS5tb2RlbCgpLmRhdGFTb3VyY2VDb2xsZWN0aW9uQ2hhbmdlZCgpLnN1YnNjcmliZSh0aGlzLHRoaXMuX2hhbmRsZUNvbGxlY3Rpb25DaGFuZ2VkKX0pKX1fdW5zdWJzY3JpYmVUb01vZGVsQ2hhbmdlcyhlKXtlLmhhc01vZGVsKCkmJmUubW9kZWwoKS5tb2RlbCgpLmRhdGFTb3VyY2VDb2xsZWN0aW9uQ2hhbmdlZCgpLnVuc3Vic2NyaWJlKHRoaXMsdGhpcy5faGFuZGxlQ29sbGVjdGlvbkNoYW5nZWQpLGUubW9kZWxDcmVhdGVkKCkudW5zdWJzY3JpYmVBbGwodGhpcyl9fWZ1bmN0aW9uIFZ0KGUpeygwLGV0LnRyYWNrRXZlbnQpKCJHVUkiLCJDaGFydCBMZWZ0IFRvb2xiYXIiLGUpfWZ1bmN0aW9uIE90KGUpeygwLEEudHJhY2tCdXR0b25DbGljaykoImxlZnQgdG9vbGJhciIsInJlbW92ZSIsZSl9dmFyIHp0PW8oNzgzMjU0KSxIdD1vKDEzODYzOCksanQ9byg3NDQ1MzQpLFp0PW8oODQ0MzQ0KTtjb25zdCBVdD1uLmNyZWF0ZUNvbnRleHQoe2hpZGVNb2RlOiJkcmF3aW5ncyIsaXNBY3RpdmU6ITF9KTtmdW5jdGlvbiBHdChlKXtjb25zdHtoaWRlTW9kZTp0LG9wdGlvbjp7bGFiZWw6byxkYXRhTmFtZTppLGdldEJveGVkVmFsdWU6cn0saXNTbWFsbFRhYmxldDpzLHZpZXdNb2RlOmEsb25DbGljazpsfT1lLHtoaWRlTW9kZTpjLGlzQWN0aXZlOnV9PSgwLG4udXNlQ29udGV4dCkoVXQpLGQ9cj8uKCk7cmV0dXJuImFsbCI9PT10fHxkPyJuZXciPT09YT9uLmNyZWF0ZUVsZW1lbnQod3QuTWVudUl0ZW0se3JvbGU6InJvdyIsYXJpYVNlbGVjdGVkOmM9PT10JiZ1LHNlbGVjdGVkOmM9PT10JiZ1LG9uQ2xpY2s6aCx0aXRsZTpuLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtyb2xlOiJncmlkY2VsbCIsImFyaWEtY29sc3BhbiI6M30sbyksYXJpYUxhYmVsOm8sImRhdGEtbmFtZSI6aSwiZGF0YS1yb2xlIjoibWVudWl0ZW0ifSk6bi5jcmVhdGVFbGVtZW50KGN0LkFjY2Vzc2libGVNZW51SXRlbSx7bGFiZWw6byxpc0FjdGl2ZTpjPT09dCYmdSxvbkNsaWNrOmgsImRhdGEtbmFtZSI6aSx0aGVtZTpzP1B0OnZvaWQgMH0pOm4uY3JlYXRlRWxlbWVudChuLkZyYWdtZW50LG51bGwpO2Z1bmN0aW9uIGgoKXtsKHQsKDAsanQudG9nZ2xlSGlkZU1vZGUpKHQpKX19Y29uc3QgS3Q9e2RyYXdpbmdzOnthY3RpdmU6Ui5kcmF3aW5nVG9vbHNJY29ucy5oaWRlQWxsRHJhd2luZ1Rvb2xzQWN0aXZlLGluYWN0aXZlOlIuZHJhd2luZ1Rvb2xzSWNvbnMuaGlkZUFsbERyYXdpbmdUb29sc30saW5kaWNhdG9yczp7YWN0aXZlOlIuZHJhd2luZ1Rvb2xzSWNvbnMuaGlkZUFsbEluZGljYXRvcnNBY3RpdmUsaW5hY3RpdmU6Ui5kcmF3aW5nVG9vbHNJY29ucy5oaWRlQWxsSW5kaWNhdG9yc30scG9zaXRpb25zOnthY3RpdmU6Ui5kcmF3aW5nVG9vbHNJY29ucy5oaWRlQWxsUG9zaXRpb25zVG9vbHNBY3RpdmUsaW5hY3RpdmU6Ui5kcmF3aW5nVG9vbHNJY29ucy5oaWRlQWxsUG9zaXRpb25zVG9vbHN9LGFsbDp7YWN0aXZlOlIuZHJhd2luZ1Rvb2xzSWNvbnMuaGlkZUFsbERyYXdpbmdzQWN0aXZlLGluYWN0aXZlOlIuZHJhd2luZ1Rvb2xzSWNvbnMuaGlkZUFsbERyYXdpbmdzfX07ZnVuY3Rpb24gcXQoZSl7Y29uc3R7aXNTbWFsbFRhYmxldDp0LHZpZXdNb2RlOml9PWUsW3tpc0FjdGl2ZTpyLGhpZGVNb2RlOnN9LGFdPSgwLG4udXNlU3RhdGUpKCgoKT0+KHtpc0FjdGl2ZTohMSxoaWRlTW9kZTooMCxqdC5nZXRTYXZlZEhpZGVNb2RlKSgpfSkpKTsoMCxuLnVzZUVmZmVjdCkoKCgpPT4oWnQuaGlkZVN0YXRlQ2hhbmdlLnN1YnNjcmliZShudWxsLGEpLCgpPT57WnQuaGlkZVN0YXRlQ2hhbmdlLnVuc3Vic2NyaWJlKG51bGwsYSl9KSksW10pO2NvbnN0IGw9Zy5saW5lVG9vbHNJbmZvLmhpZGVBbGxEcmF3aW5ncyx7dHJhY2tMYWJlbDpjLHRvb2x0aXA6dSxkYXRhTmFtZTpkfT0oMCxIdC5lbnN1cmVEZWZpbmVkKSgoMCxqdC5nZXRIaWRlT3B0aW9ucykoKS5nZXQocykpLGg9S3Rbc11bcj8iYWN0aXZlIjoiaW5hY3RpdmUiXSxwPXI/dS5hY3RpdmU6dS5pbmFjdGl2ZTtyZXR1cm4gbi5jcmVhdGVFbGVtZW50KG1lLHtidXR0b25JY29uOmgsYnV0dG9uVGl0bGU6cCxidXR0b25Ib3RLZXk6bC5ob3RLZXksZHJvcGRvd25Ub29sdGlwOnp0LnQobnVsbCx2b2lkIDAsbygxODYwOTkpKSxvbkNsaWNrQnV0dG9uOmZ1bmN0aW9uKCl7KDAsanQudG9nZ2xlSGlkZU1vZGUpKHMpLCR0KGMsIXIpLFF0KHI/Im9uIjoib2ZmIil9LGlzU21hbGxUYWJsZXQ6dCxpc0FjdGl2ZTpyLGNoZWNrYWJsZTohMCwKImRhdGEtbmFtZSI6ImhpZGUtYWxsIiwiZGF0YS10eXBlIjpkLG9uQXJyb3dDbGljazpmdW5jdGlvbigpe1F0KCJtZW51Iil9LHZpZXdNb2RlOml9LG4uY3JlYXRlRWxlbWVudChVdC5Qcm92aWRlcix7dmFsdWU6e2lzQWN0aXZlOnIsaGlkZU1vZGU6c319LEFycmF5LmZyb20oKDAsanQuZ2V0SGlkZU9wdGlvbnMpKCkpLm1hcCgoKFtlLG9dKT0+bi5jcmVhdGVFbGVtZW50KEd0LHtrZXk6ZSxoaWRlTW9kZTplLG9wdGlvbjpvLGlzU21hbGxUYWJsZXQ6dCx2aWV3TW9kZTppLG9uQ2xpY2s6bX0pKSkpKTtmdW5jdGlvbiBtKGUsdCl7JHQoKDAsSHQuZW5zdXJlRGVmaW5lZCkoKDAsanQuZ2V0SGlkZU9wdGlvbnMpKCkuZ2V0KGUpKS50cmFja0xhYmVsLHQpfX1mdW5jdGlvbiAkdChlLHQpeygwLGV0LnRyYWNrRXZlbnQpKCJHVUkiLCJDaGFydCBMZWZ0IFRvb2xiYXIiLGAke2V9ICR7dD8ib24iOiJvZmYifWApfWZ1bmN0aW9uIFF0KGUpeygwLEEudHJhY2tCdXR0b25DbGljaykoImxlZnQgdG9vbGJhciIsImhpZGUiLGUpfW8oMzY1MjE3KTtsZXQgWHQ9bnVsbDt2YXIgWXQ9byg2MzUxNzkpO2NvbnN0IEp0PUwudChudWxsLHZvaWQgMCxvKDE4NjEzMikpO2NsYXNzIGVvIGV4dGVuZHMgbi5QdXJlQ29tcG9uZW50e2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLl9pbnN0YW5jZT1udWxsLHRoaXMuX3Byb21pc2U9bnVsbCx0aGlzLl9iaW5kZWRGb3JjZVVwZGF0ZT0oKT0+dGhpcy5mb3JjZVVwZGF0ZSgpLHRoaXMuX2hhbmRsZUNsaWNrPSgpPT57bnVsbCE9PXRoaXMuX2luc3RhbmNlJiYodGhpcy5faW5zdGFuY2UuaXNWaXNpYmxlKCk/KHRoaXMuX2luc3RhbmNlLmhpZGVBbmRTYXZlU2V0dGluZ3NWYWx1ZSgpLHRoaXMuX3RyYWNrQ2xpY2soITEpKToodGhpcy5faW5zdGFuY2Uuc2hvd0FuZFNhdmVTZXR0aW5nc1ZhbHVlKCksdGhpcy5fdHJhY2tDbGljayghMCkpKX19Y29tcG9uZW50RGlkTW91bnQoKXtjb25zdCBlPXRoaXMuX3Byb21pc2U9KDAsSHQuZW5zdXJlTm90TnVsbCkoWHQpO2UudGhlbigodD0+e3RoaXMuX3Byb21pc2U9PT1lJiYodGhpcy5faW5zdGFuY2U9dCx0aGlzLl9pbnN0YW5jZS5jYW5CZVNob3duKCkuc3Vic2NyaWJlKHRoaXMuX2JpbmRlZEZvcmNlVXBkYXRlKSx0aGlzLl9pbnN0YW5jZS52aXNpYmlsaXR5KCkuc3Vic2NyaWJlKHRoaXMuX2JpbmRlZEZvcmNlVXBkYXRlKSx0aGlzLmZvcmNlVXBkYXRlKCkpfSkpfWNvbXBvbmVudFdpbGxVbm1vdW50KCl7dGhpcy5fcHJvbWlzZT1udWxsLG51bGwhPT10aGlzLl9pbnN0YW5jZSYmKHRoaXMuX2luc3RhbmNlLmNhbkJlU2hvd24oKS51bnN1YnNjcmliZSh0aGlzLl9iaW5kZWRGb3JjZVVwZGF0ZSksdGhpcy5faW5zdGFuY2UudmlzaWJpbGl0eSgpLnVuc3Vic2NyaWJlKHRoaXMuX2JpbmRlZEZvcmNlVXBkYXRlKSx0aGlzLl9pbnN0YW5jZT1udWxsKX1yZW5kZXIoKXtyZXR1cm4gbnVsbCE9PXRoaXMuX2luc3RhbmNlJiZ0aGlzLl9pbnN0YW5jZS5jYW5CZVNob3duKCkudmFsdWUoKT9uLmNyZWF0ZUVsZW1lbnQoRSx7aWQ6dGhpcy5wcm9wcy5pZCxpY29uOll0LGlzQWN0aXZlOnRoaXMuX2luc3RhbmNlLmlzVmlzaWJsZSgpLG9uQ2xpY2s6dGhpcy5faGFuZGxlQ2xpY2ssdG9vbHRpcDpKdH0pOm51bGx9X3RyYWNrQ2xpY2soZSl7KDAsQS50cmFja0J1dHRvbkNsaWNrKSgibGVmdCB0b29sYmFyIiwiZmF2b3JpdGUgdG9vbGJhciIsZT8ib24iOiJvZmYiKX19dmFyIHRvPW8oNzI2ODI2KSxvbz1vKDUwMjcxMSksbm89byg0Nzk5MjApLGlvPW8oNzEzOTA3KTtjb25zdCBybz0oMCxjZS5tZXJnZVRoZW1lcykobm8uREVGQVVMVF9ISU5UX1RIRU1FLGlvKSxzbz17Li4ub28uZGVmYXVsdEhpbnRTdGF0ZUhhbmRsZXIsZ2V0SGludFN0YXRlOmU9PiFlfHxsLmdldEJvb2woZSwhMCl9O2Z1bmN0aW9uIGFvKGUpe3JldHVybiBuLmNyZWF0ZUVsZW1lbnQodG8uSGludFJlZmVyZW5jZWFibGUse3RoZW1lOnJvLHRleHQ6TC50KG51bGwsdm9pZCAwLG8oMjI5MDQ1KSkscGxhY2VtZW50OiJhdXRvIixzZXR0aW5nc0hpbnRLZXk6ImhpbnQubWFnbmV0IixidXR0b25UZXh0OkwudChudWxsLHZvaWQgMCxvKDQzODEyKSkscGxhY2VIb2xkZXJDbGFzc05hbWU6ZS5jbGFzc05hbWUsaGludFN0YXRlSGFuZGxlcjpzb30pfXZhciBsbz1vKDQ5MjM4MSksY289byg4Mjg4NTcpLHVvPW8oMTU2NzQ4KTtjb25zdCBobz17W2xvLk1hZ25ldE1vZGUuV2Vha01hZ25ldF06e2lkOmxvLk1hZ25ldE1vZGUuV2Vha01hZ25ldCxuYW1lOiJ3ZWFrTWFnbmV0IixpY29uOlIuZHJhd2luZ1Rvb2xzSWNvbnMubWFnbmV0LGxvY2FsaXplZE5hbWU6TC50KG51bGwse2NvbnRleHQ6Ik1hZ25ldCBtb2RlIG9wdGlvbiJ9LG8oMjkxNjk0KSl9LFtsby5NYWduZXRNb2RlLlN0cm9uZ01hZ25ldF06e2lkOmxvLk1hZ25ldE1vZGUuU3Ryb25nTWFnbmV0LG5hbWU6InN0cm9uZ01hZ25ldCIsaWNvbjpSLmRyYXdpbmdUb29sc0ljb25zLnN0cm9uZ01hZ25ldCxsb2NhbGl6ZWROYW1lOkwudChudWxsLHtjb250ZXh0OiJNYWduZXQgbW9kZSBvcHRpb24ifSxvKDkxOTg1NSkpfX0scG89KDAsY2UubWVyZ2VUaGVtZXMpKHB0Lm1lbnVJdGVtU3dpdGNoZXJNb2JpbGVUaGVtZSx7bGFiZWw6dW8uc3dpdGNoZXJMYWJlbH0pLG1vPSgwLGNlLm1lcmdlVGhlbWVzKShodC5ERUZBVUxUX01FTlVfSVRFTV9TV0lUQ0hFUl9USEVNRSx7bGFiZWw6dW8uc3dpdGNoZXJMYWJlbH0pO2Z1bmN0aW9uIGdvKGUpe2NvbnN0e2lzU21hbGxUYWJsZXQ6dCx2aWV3TW9kZTppfT1lLHI9KDAsZ3QudXNlV2F0Y2hlZFZhbHVlUmVhZG9ubHkpKHt3YXRjaGVkVmFsdWU6KDAsY28ubWFnbmV0RW5hYmxlZCkoKX0pLHM9KDAsZ3QudXNlV2F0Y2hlZFZhbHVlUmVhZG9ubHkpKHt3YXRjaGVkVmFsdWU6KDAsY28ubWFnbmV0TW9kZSkoKX0pLGE9KDAsZ3QudXNlV2F0Y2hlZFZhbHVlUmVhZG9ubHkpKHt3YXRjaGVkVmFsdWU6KDAsY28ubWFnbmV0U25hcHNUb0luZGljYXRvcnMpKCl9KTtyZXR1cm4gbi5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6dW8udG9vbEJ1dHRvbk1hZ25ldH0sbi5jcmVhdGVFbGVtZW50KG1lLHsKImRhdGEtbmFtZSI6Im1hZ25ldC1idXR0b24iLGJ1dHRvbkljb246aG9bc10uaWNvbixidXR0b25UaXRsZTpnLmxpbmVUb29sc0luZm8ubWFnbmV0LmxvY2FsaXplZE5hbWUsZHJvcGRvd25Ub29sdGlwOkwudChudWxsLHZvaWQgMCxvKDU1MTkzNykpLGlzQWN0aXZlOnIsb25DbGlja0J1dHRvbjpmdW5jdGlvbigpe2NvbnN0IGU9IXI7KDAsZXQudHJhY2tFdmVudCkoIkdVSSIsIkNoYXJ0IExlZnQgVG9vbGJhciIsIm1hZ25ldCBtb2RlICIrKGU/Im9uIjoib2ZmIikpLCgwLEEudHJhY2tCdXR0b25DbGljaykoImxlZnQgdG9vbGJhciIsIm1hZ25ldCBtb2RlIixlPyJvbiI6Im9mZiIpOygwLGNvLnNldElzTWFnbmV0RW5hYmxlZCkoZSl9LGJ1dHRvbkhvdEtleTpnLmxpbmVUb29sc0luZm8ubWFnbmV0LmhvdEtleSxjaGVja2FibGU6ITAsaXNTbWFsbFRhYmxldDp0LG9uQXJyb3dDbGljazpmdW5jdGlvbigpeygwLEEudHJhY2tCdXR0b25DbGljaykoImxlZnQgdG9vbGJhciIsIm1hZ25ldCBtb2RlIiwibWVudSIpfSx2aWV3TW9kZTppfSxPYmplY3QudmFsdWVzKGhvKS5tYXAoKCh7aWQ6ZSxuYW1lOm8sbG9jYWxpemVkTmFtZTphLGljb246bH0pPT4ibmV3Ij09PWk/bi5jcmVhdGVFbGVtZW50KHd0Lk1lbnVJdGVtLHtrZXk6ZSxyb2xlOiJyb3ciLGFyaWFTZWxlY3RlZDpyJiZzPT09ZSxzZWxlY3RlZDpyJiZzPT09ZSxzaXplOiJsYXJnZSIsbGVmdFNsb3Q6bi5jcmVhdGVFbGVtZW50KG5lLkljb24se2ljb246bH0pLHRpdGxlOm4uY3JlYXRlRWxlbWVudCgic3BhbiIse3JvbGU6ImdyaWRjZWxsIiwiYXJpYS1jb2xzcGFuIjozfSxhKSxhcmlhTGFiZWw6YSxvbkNsaWNrOigpPT5jKGUpLCJkYXRhLW5hbWUiOm8sImRhdGEtcm9sZSI6Im1lbnVpdGVtIn0pOm4uY3JlYXRlRWxlbWVudChjdC5BY2Nlc3NpYmxlTWVudUl0ZW0se2tleTplLGNsYXNzTmFtZTp0P3VvLnRvb2xCdXR0b25NYWduZXRfX21lbnVJdGVtOnZvaWQgMCwiZGF0YS1uYW1lIjpvLGljb246bCxpc0FjdGl2ZTpyJiZzPT09ZSxsYWJlbDphLG9uQ2xpY2s6YyxvbkNsaWNrQXJnOmV9KSkpLCJuZXciPT09aT9uLmNyZWF0ZUVsZW1lbnQobi5GcmFnbWVudCxudWxsLG4uY3JlYXRlRWxlbWVudChudC5EaXZpZGVyTGlzdEl0ZW0se3JvbGU6InNlcGFyYXRvciJ9KSxuLmNyZWF0ZUVsZW1lbnQobXQuTWVudVN3aXRjaGVySXRlbSx7cm9sZToicm93Iix0aXRsZTpuLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtyb2xlOiJncmlkY2VsbCIsImFyaWEtY29sc3BhbiI6Mn0sTC50KG51bGwsdm9pZCAwLG8oOTA1NzkzKSkpLGFyaWFMYWJlbDpMLnQobnVsbCx2b2lkIDAsbyg5MDU3OTMpKSx2YWx1ZTphLG9uQ2xpY2s6KCk9PmwoIWEpLGRvbnRDbG9zZVBvcHVwOiEwLGRpc2FibGVkOiFyLCJkYXRhLXJvbGUiOiJtZW51aXRlbSJ9KSk6bi5jcmVhdGVFbGVtZW50KG4uRnJhZ21lbnQsbnVsbCxuLmNyZWF0ZUVsZW1lbnQoaXQuUG9wdXBNZW51U2VwYXJhdG9yLG51bGwpLG4uY3JlYXRlRWxlbWVudChodC5NZW51SXRlbVN3aXRjaGVyLHtrZXk6InNuYXAtdG8taW5kaWNhdG9ycyIsY2hlY2tlZDphLG9uQ2hhbmdlOmwsbGFiZWw6TC50KG51bGwsdm9pZCAwLG8oOTA1NzkzKSksdmFsdWU6InNuYXBUb0luZGljYXRvcnNTd2l0Y2hlciIsdGhlbWU6dD9wbzptbyxkaXNhYmxlZDohcn0pKSksciYmbi5jcmVhdGVFbGVtZW50KGFvLHtjbGFzc05hbWU6dW8udG9vbEJ1dHRvbk1hZ25ldF9faGludFBsYWNlaG9sZGVyfSkpO2Z1bmN0aW9uIGwoZSl7KDAsZXQudHJhY2tFdmVudCkoIkdVSSIsIkNoYXJ0IExlZnQgVG9vbGJhciIsIm1hZ25ldCBzbmFwcyAiKyhlPyJvbiI6Im9mZiIpKSwoMCxBLnRyYWNrQnV0dG9uQ2xpY2spKCJsZWZ0IHRvb2xiYXIiLCJtYWduZXQgc25hcHMiLGU/Im9uIjoib2ZmIiksKDAsY28uc2V0TWFnbmV0U25hcHNUb0luZGljYXRvcnMpKGUpfWZ1bmN0aW9uIGMoZSl7dm9pZCAwIT09ZSYmKCgwLGV0LnRyYWNrRXZlbnQpKCJHVUkiLCJNYWduZXQgbW9kZSIsZT09PWxvLk1hZ25ldE1vZGUuV2Vha01hZ25ldD8iV2VhayI6IlN0cm9uZyIpLCgwLGNvLnNldE1hZ25ldE1vZGUpKGUpKX19dmFyIHZvPW8oMTI4NzAxKSxmbz1vKDY4OTg5NCksX289byg1MTg3NSk7dmFyIGJvPW8oNjMyOTkyKSx3bz1vKDczMDAwOSksQ289byg2NTkzNjUpLHlvPW8oMzMyMzcxKSxUbz1vKDYwOTUyOCksRW89byg0MDYxMTApLHhvPW8oNzk1OTg2KTtjb25zdCBTbz0oMCxDby5iaW5kU2NyZWVuc2hvdCkoKGZ1bmN0aW9uKGUpe3JldHVybiBuLmNyZWF0ZUVsZW1lbnQoRW8uTWF0Y2hNZWRpYSx7cnVsZTpUby5EaWFsb2dCcmVha3BvaW50cy5UYWJsZXRTbWFsbH0sKHQ9Pm4uY3JlYXRlRWxlbWVudChtZSx7ImRhdGEtbmFtZSI6ZS5pZCxidXR0b25UaXRsZTplLnRvb2x0aXAsYnV0dG9uSWNvbjp4byxpc1NtYWxsVGFibGV0OnQsb3BlbkRyb3Bkb3duQnlDbGljazohMH0sbi5jcmVhdGVFbGVtZW50KHlvLlRvb2xXaWRnZXRTY3JlZW5zaG90Q29udGVudCx7Li4uZX0pKSkpfSkpO3ZhciBMbz1vKDEzMzM3Miksa289byg4NjQzMDUpLEFvPW8oNjIzMDg2KTtjb25zdCBNbz17MTp7aWQ6MSxuYW1lOiJsYXlvdXREcmF3aW5nU3luYyIsaWNvbjpMbyxsb2NhbGl6ZWROYW1lOkwudChudWxsLHZvaWQgMCxvKDU2NjgyOSkpLHRvb2x0aXA6TC50KG51bGwsdm9pZCAwLG8oMzU1NTE5KSl9LDI6e2lkOjIsbmFtZToiZ2xvYmFsRHJhd2luZ1N5bmMiLGljb246a28sbG9jYWxpemVkTmFtZTpMLnQobnVsbCx2b2lkIDAsbyg5MDY4NzEpKSx0b29sdGlwOkwudChudWxsLHZvaWQgMCxvKDczNDQ3MikpfX07ZnVuY3Rpb24gTm8oKXtjb25zdHtkcmF3T25BbGxDaGFydHNNb2RlOmUsZHJhd09uQWxsQ2hhcnRzOnR9PSgwLHUucHJvcGVydGllcykoKS5jaGlsZHMoKSxbbyxpXT0oMCxuLnVzZVN0YXRlKShyKCkpO3JldHVybiBuLnVzZUVmZmVjdCgoKCk9Pntjb25zdCBvPXt9O2Z1bmN0aW9uIG4oKXtpKHIoKSl9cmV0dXJuIGUuc3Vic2NyaWJlKG8sbiksdC5zdWJzY3JpYmUobyxuKSwoKT0+e2UudW5zdWJzY3JpYmUobyxuKSx0LnVuc3Vic2NyaWJlKG8sbil9fSksW10pLG4udXNlTWVtbygoKCk9Pih7CnN0YXRlOm8sdG9nZ2xlRHJhd2luZ3NTeW5jTW9kZTpzLHNldERyYXdpbmdzU3luY01vZGU6YX0pKSxbb10pO2Z1bmN0aW9uIHIoKXtyZXR1cm57ZHJhd09uQWxsQ2hhcnRzTW9kZTplLnZhbHVlKCksZHJhd09uQWxsQ2hhcnRzOnQudmFsdWUoKX19ZnVuY3Rpb24gcygpeyFmdW5jdGlvbigpe2NvbnN0e2RyYXdPbkFsbENoYXJ0czplfT0oMCx1LnByb3BlcnRpZXMpKCkuY2hpbGRzKCk7KDAsWGUuYWxsb3dTYXZpbmdEZWZhdWx0cykoITApLGUuc2V0VmFsdWUoIWUudmFsdWUoKSksKDAsWGUuYWxsb3dTYXZpbmdEZWZhdWx0cykoITEpfSgpO3tjb25zdCBlPSgwLHUucHJvcGVydGllcykoKS5jaGlsZHMoKS5kcmF3T25BbGxDaGFydHMudmFsdWUoKTsoMCxldC50cmFja0V2ZW50KSgiR1VJIiwiQ2hhcnQgTGVmdCBUb29sYmFyIiwic3luYyAiKyhlPyJvbiI6Im9mZiIpKSwoMCxBLnRyYWNrQnV0dG9uQ2xpY2spKCJsZWZ0IHRvb2xiYXIiLCJzeW5jIixlPyJvbiI6Im9mZiIpfX1mdW5jdGlvbiBhKGUpe3ZvaWQgMCE9PWUmJighZnVuY3Rpb24oZSl7Y29uc3R7ZHJhd09uQWxsQ2hhcnRzOnQsZHJhd09uQWxsQ2hhcnRzTW9kZTpvfT0oMCx1LnByb3BlcnRpZXMpKCkuY2hpbGRzKCk7KDAsWGUuYWxsb3dTYXZpbmdEZWZhdWx0cykoITApLG8uc2V0VmFsdWUoZSksdC5zZXRWYWx1ZSghMCksKDAsWGUuYWxsb3dTYXZpbmdEZWZhdWx0cykoITEpfShlKSwoMCxldC50cmFja0V2ZW50KSgiR1VJIiwiQ2hhcnQgTGVmdCBUb29sYmFyIixgc3luYyBtb2RlICR7ZX1gKSl9fWZ1bmN0aW9uIERvKGUpe2NvbnN0e2lzU21hbGxUYWJsZXQ6dD0hMSx2aWV3TW9kZTppfT1lLHtzdGF0ZTp7ZHJhd09uQWxsQ2hhcnRzOnIsZHJhd09uQWxsQ2hhcnRzTW9kZTpzfSx0b2dnbGVEcmF3aW5nc1N5bmNNb2RlOmEsc2V0RHJhd2luZ3NTeW5jTW9kZTpsfT1ObygpLGM9TW9bc107cmV0dXJuIG4uY3JlYXRlRWxlbWVudChtZSx7ImRhdGEtbmFtZSI6ImRyYXdpbmdTeW5jTW9kZS1idXR0b24iLGJ1dHRvbkljb246Yy5pY29uLGJ1dHRvblRpdGxlOnI/Yy50b29sdGlwOkwudChudWxsLHZvaWQgMCxvKDE3MzEwOCkpLG9uQ2xpY2tCdXR0b246YSxkcm9wZG93blRvb2x0aXA6TC50KG51bGwsdm9pZCAwLG8oNDMyMjg1KSksaXNTbWFsbFRhYmxldDp0LGlzQWN0aXZlOnIsY2hlY2thYmxlOiEwLHZpZXdNb2RlOml9LE9iamVjdC52YWx1ZXMoTW8pLm1hcCgoKHtpZDplLG5hbWU6byxpY29uOmEsbG9jYWxpemVkTmFtZTpjfSk9PiJuZXciPT09aT9uLmNyZWF0ZUVsZW1lbnQod3QuTWVudUl0ZW0se2tleTplLHJvbGU6InJvdyIsYXJpYVNlbGVjdGVkOnImJmU9PT1zLHNlbGVjdGVkOnImJmU9PT1zLGxlZnRTbG90Om4uY3JlYXRlRWxlbWVudChuZS5JY29uLHtpY29uOmF9KSx0aXRsZTpuLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtyb2xlOiJncmlkY2VsbCIsImFyaWEtY29sc3BhbiI6M30sYyksYXJpYUxhYmVsOmMsb25DbGljazooKT0+bChlKSwiZGF0YS1uYW1lIjpvLCJkYXRhLXJvbGUiOiJtZW51aXRlbSJ9KTpuLmNyZWF0ZUVsZW1lbnQoY3QuQWNjZXNzaWJsZU1lbnVJdGVtLHtrZXk6ZSwiZGF0YS1uYW1lIjpvLGljb246YSxpc0FjdGl2ZTpyJiZlPT09cyxsYWJlbDpjLG9uQ2xpY2s6bCxvbkNsaWNrQXJnOmUsY2xhc3NOYW1lOnQ/QW8ucG9wdXBNZW51SXRlbTp2b2lkIDB9KSkpKX12YXIgUG89byg3MjAwNzIpO2NsYXNzIEJvIGV4dGVuZHMgbi5QdXJlQ29tcG9uZW50e2NvbnN0cnVjdG9yKGUpe3N1cGVyKGUpLHRoaXMuX3N5bmNWaXNpYmxlU3RhdGU9KCk9Pnt0aGlzLnNldFN0YXRlKHtpc1Zpc2libGU6dGhpcy5faXNNdWx0aXBsZUxheW91dCgpfSl9LHRoaXMuc3RhdGU9e2lzVmlzaWJsZTp0aGlzLl9pc011bHRpcGxlTGF5b3V0KCl9fWNvbXBvbmVudERpZE1vdW50KCl7dGhpcy5wcm9wcy5sYXlvdXQuc3Vic2NyaWJlKHRoaXMuX3N5bmNWaXNpYmxlU3RhdGUpfWNvbXBvbmVudFdpbGxVbm1vdW50KCl7dGhpcy5wcm9wcy5sYXlvdXQudW5zdWJzY3JpYmUodGhpcy5fc3luY1Zpc2libGVTdGF0ZSl9cmVuZGVyKCl7cmV0dXJuIHRoaXMuc3RhdGUuaXNWaXNpYmxlP3RoaXMucHJvcHMuY2hpbGRyZW46bi5jcmVhdGVFbGVtZW50KCJkaXYiLG51bGwpfV9pc011bHRpcGxlTGF5b3V0KCl7cmV0dXJuKDAsUG8uaXNNdWx0aXBsZUxheW91dCkodGhpcy5wcm9wcy5sYXlvdXQudmFsdWUoKSl9fXZhciBJbz1vKDMxMzc3Mik7Y29uc3QgRm89e2NoYXJ0V2lkZ2V0Q29sbGVjdGlvbjpvKDIyMTg5NikuYW55LmlzUmVxdWlyZWR9O3ZhciBXbz1vKDU2OTY1MiksUm89bygxOTM0ODEpO2NvbnN0IFZvPSEhd2luZG93LnVzZXIuaXNfcHJvfHwoMCxjLmlzRmVhdHVyZXNldEVuYWJsZWQpKCJzYXZlbG9hZF9zZXBhcmF0ZV9kcmF3aW5nc19zdG9yYWdlIiksT289KCgwLGMuaXNGZWF0dXJlc2V0RW5hYmxlZCkoInJpZ2h0X3Rvb2xiYXIiKSwoMCxjLmlzRmVhdHVyZXNldEVuYWJsZWQpKCJrZWVwX29iamVjdF90cmVlX3dpZGdldF9pbl9yaWdodF90b29sYmFyIiksKDAsYy5pc0ZlYXR1cmVzZXRFbmFibGVkKSgic2F2ZWxvYWRfc2VwYXJhdGVfZHJhd2luZ3Nfc3RvcmFnZSIpKSx6bz0oMCxwLm9uV2lkZ2V0KSgpLEhvPW5ldyBoLkRlbGVnYXRlLGpvPWV0LnRyYWNrRXZlbnQuYmluZChudWxsLCJHVUkiLCJDaGFydCBMZWZ0IFRvb2xiYXIiKSxabz0oZSx0KT0+am8oYCR7ZX0gJHt0PyJvbiI6Im9mZiJ9YCk7Y2xhc3MgVW8gZXh0ZW5kcyBuLlB1cmVDb21wb25lbnR7Y29uc3RydWN0b3IoZSl7c3VwZXIoZSksdGhpcy5fZ3JheWVkVG9vbHM9e30sdGhpcy5faGFuZGxlTWVhc3VyZUNsaWNrPSgpPT57R28oIm1lYXN1cmUiKX0sdGhpcy5faGFuZGxlWm9vbUluQ2xpY2s9KCk9PntHbygiem9vbSBpbiIpfSx0aGlzLl9oYW5kbGVEcmF3aW5nQ2xpY2s9ZT0+e1pvKCJkcmF3aW5nIG1vZGUiLGUpLEdvKCJkcmF3aW5nIG1vZGUiLGU/Im9uIjoib2ZmIil9LHRoaXMuX2hhbmRsZUxvY2tDbGljaz1lPT57Wm8oImxvY2sgYWxsIGRyYXdpbmciLGUpLEdvKCJsb2NrIixlPyJvbiI6Im9mZiIpfSx0aGlzLl9oYW5kbGVTeW5jQ2xpY2s9ZT0+e1pvKCJzeW5jIixlKSwKR28oInN5bmMiLGU/Im9uIjoib2ZmIil9LHRoaXMuX2hhbmRsZU9iamVjdHNUcmVlQ2xpY2s9KCk9Pnt0aGlzLl9hY3RpdmVDaGFydFdpZGdldCgpLnNob3dPYmplY3RzVHJlZURpYWxvZygpLEdvKCJvYmplY3QgdHJlZSIpfSx0aGlzLl9oYW5kbGVNb3VzZU92ZXI9ZT0+eygwLGZvLmhvdmVyTW91c2VFdmVudEZpbHRlcikoZSkmJnRoaXMuc2V0U3RhdGUoe2lzSG92ZXJlZDohMH0pfSx0aGlzLl9oYW5kbGVNb3VzZU91dD1lPT57KDAsZm8uaG92ZXJNb3VzZUV2ZW50RmlsdGVyKShlKSYmdGhpcy5zZXRTdGF0ZSh7aXNIb3ZlcmVkOiExfSl9LHRoaXMuX2hhbmRsZUNoYW5nZVZpc2liaWxpdHk9ZT0+e3RoaXMuc2V0U3RhdGUoe2lzVmlzaWJsZTplfSl9LHRoaXMuX2hhbmRsZUVzYz0oKT0+e3UucmVzZXRUb0N1cnNvcighMCl9LHRoaXMuX2hhbmRsZVdpZGdldGJhclNldHRsZWQ9ZT0+e3RoaXMuc2V0U3RhdGUoe2lzV2lkZ2V0YmFyVmlzaWJsZTpCb29sZWFuKHdpbmRvdy53aWRnZXRiYXI/LnZpc2libGUoKS52YWx1ZSgpKSx3aWRnZXRiYXJTZXR0bGVkOmV9KX0sdGhpcy5faGFuZGxlV2lkZ2V0YmFyVmlzaWJsZT1lPT57dGhpcy5zZXRTdGF0ZSh7aXNXaWRnZXRiYXJWaXNpYmxlOmV9KX0sdS5pbml0KCksdGhpcy5fdG9vbHNGaWx0ZXI9bmV3IHYodGhpcy5wcm9wcy5kcmF3aW5nc0FjY2VzcyksdGhpcy5fZmlsdGVyZWRMaW5lVG9vbHM9Zi5saW5lVG9vbHMucmVkdWNlKCgoZSx0KT0+e2NvbnN0e2lkOm8sdGl0bGU6bix0cmFja0xhYmVsOml9PXQscj1lPT4oMCxmLmlzTGluZVRvb2xPcHRpb24pKGUpfHx0aGlzLl90b29sc0ZpbHRlci5pc1Rvb2xFbmFibGVkKGcubGluZVRvb2xzSW5mb1tlLm5hbWVdLmxvY2FsaXplZE5hbWUpLHM9W107cmV0dXJuKDAsZi5pc0xpbmVUb29sc0dyb3VwV2l0aFNlY3Rpb25zKSh0KT90LnNlY3Rpb25zLmZvckVhY2goKGU9Pntjb25zdCB0PWUuaXRlbXMuZmlsdGVyKHIpO3QubGVuZ3RoJiZzLnB1c2goe3RpdGxlOmUudGl0bGV9LC4uLnQpfSkpOnMucHVzaCguLi50Lml0ZW1zLmZpbHRlcihyKSkscy5sZW5ndGgmJmUucHVzaCh7aWQ6byx0aXRsZTpuLHRyYWNrTGFiZWw6aSxpdGVtczpzfSksZX0pLFtdKSx0aGlzLl9maWx0ZXJlZExpbmVUb29scy5mb3JFYWNoKChlPT57ZS5pdGVtcy5mb3JFYWNoKChlPT57Im5hbWUiaW4gZSYmKHRoaXMuX2dyYXllZFRvb2xzW2UubmFtZV09dGhpcy5fdG9vbHNGaWx0ZXIuaXNUb29sR3JheWVkKGcubGluZVRvb2xzSW5mb1tlLm5hbWVdLmxvY2FsaXplZE5hbWUpKX0pKX0pKSx0aGlzLnN0YXRlPXtpc0hvdmVyZWQ6ITEsaXNWaXNpYmxlOl8uaXNEcmF3aW5nVG9vbGJhclZpc2libGUudmFsdWUoKSxpc1dpZGdldGJhclZpc2libGU6Qm9vbGVhbih3aW5kb3cud2lkZ2V0YmFyPy52aXNpYmxlKCkudmFsdWUoKSksd2lkZ2V0YmFyU2V0dGxlZDp2b2lkIDAhPT13aW5kb3cud2lkZ2V0YmFyfSx0aGlzLl9mZWF0dXJlcz17ZmF2b3JpdGluZzohdGhpcy5wcm9wcy5yZWFkT25seSYmIXpvJiYoMCxjLmlzRmVhdHVyZXNldEVuYWJsZWQpKCJpdGVtc19mYXZvcml0aW5nIiksbXVsdGljaGFydHM6KDAsYy5pc0ZlYXR1cmVzZXRFbmFibGVkKSgic3VwcG9ydF9tdWx0aWNoYXJ0cyIpLHRvb2xzOiF6b3x8ITF9LHRoaXMuX3JlZ2lzdHJ5PXtjaGFydFdpZGdldENvbGxlY3Rpb246dGhpcy5wcm9wcy5jaGFydFdpZGdldENvbGxlY3Rpb259LHRoaXMuX25lZ290aWF0ZVJlc2l6ZXIoKX1jb21wb25lbnREaWRNb3VudCgpe18uaXNEcmF3aW5nVG9vbGJhclZpc2libGUuc3Vic2NyaWJlKHRoaXMuX2hhbmRsZUNoYW5nZVZpc2liaWxpdHkpLEMuZ2xvYmFsQ2xvc2VEZWxlZ2F0ZS5zdWJzY3JpYmUodGhpcyx0aGlzLl9oYW5kbGVHbG9iYWxDbG9zZSksdGhpcy5fdG9vbD11LnRvb2wuc3Bhd24oKSx0aGlzLl90b29sLnN1YnNjcmliZSh0aGlzLl91cGRhdGVIb3RrZXlzLmJpbmQodGhpcykpLHRoaXMuX2luaXRIb3RrZXlzKCksdGhpcy5wcm9wcy53aWRnZXRiYXJTZXR0bGVkJiYodGhpcy5wcm9wcy53aWRnZXRiYXJTZXR0bGVkLnN1YnNjcmliZSh0aGlzLHRoaXMuX2hhbmRsZVdpZGdldGJhclNldHRsZWQpLHAuQ2hlY2tNb2JpbGUuYW55KCkmJndpbmRvdy53aWRnZXRiYXI/LnZpc2libGUoKS5zdWJzY3JpYmUodGhpcy5faGFuZGxlV2lkZ2V0YmFyVmlzaWJsZSkpfWNvbXBvbmVudFdpbGxVbm1vdW50KCl7d2luZG93LndpZGdldGJhcj8udmlzaWJsZSgpLnVuc3Vic2NyaWJlKHRoaXMuX2hhbmRsZVdpZGdldGJhclZpc2libGUpLF8uaXNEcmF3aW5nVG9vbGJhclZpc2libGUudW5zdWJzY3JpYmUodGhpcy5faGFuZGxlQ2hhbmdlVmlzaWJpbGl0eSksQy5nbG9iYWxDbG9zZURlbGVnYXRlLnVuc3Vic2NyaWJlKHRoaXMsdGhpcy5faGFuZGxlR2xvYmFsQ2xvc2UpLHRoaXMuX3Rvb2wuZGVzdHJveSgpLHRoaXMuX2hvdGtleXMuZGVzdHJveSgpfWNvbXBvbmVudERpZFVwZGF0ZShlLHQpe2NvbnN0e2lzVmlzaWJsZTpvLHdpZGdldGJhclNldHRsZWQ6bn09dGhpcy5zdGF0ZTtvIT09dC5pc1Zpc2libGUmJihkLmVtaXQoInRvZ2dsZV9zaWRlYmFyIiwhbyksbC5zZXRWYWx1ZSgiQ2hhcnREcmF3aW5nVG9vbGJhcldpZGdldC52aXNpYmxlIixvKSx0aGlzLl9uZWdvdGlhdGVSZXNpemVyKCkpLHQud2lkZ2V0YmFyU2V0dGxlZCE9PW4mJm4mJnAuQ2hlY2tNb2JpbGUuYW55KCkmJndpbmRvdy53aWRnZXRiYXI/LnZpc2libGUoKS5zdWJzY3JpYmUodGhpcy5faGFuZGxlV2lkZ2V0YmFyVmlzaWJsZSl9cmVuZGVyKCl7Y29uc3R7YmdDb2xvcjplLGNoYXJ0V2lkZ2V0Q29sbGVjdGlvbjp0LHJlYWRPbmx5Om99PXRoaXMucHJvcHMse2lzSG92ZXJlZDppLGlzVmlzaWJsZTpzfT10aGlzLnN0YXRlLGw9e2JhY2tncm91bmRDb2xvcjplJiZgIyR7ZX1gfTtjb25zdCBkPSgpPT4hIXRoaXMuX2ZlYXR1cmVzLnRvb2xzJiYoIXRoaXMuc3RhdGUuaXNXaWRnZXRiYXJWaXNpYmxlJiZwLkNoZWNrTW9iaWxlLmFueSgpfHwoMCxtLmlzT25Nb2JpbGVBcHBQYWdlKSgibmV3IikpLGg9KDAsCmMuaXNGZWF0dXJlc2V0RW5hYmxlZCkoInNob3dfbmV3X21lbnVfaXRlbXNfaW5fY2hhcnRfbWVudXMiKT8ibmV3IjoibGVnYWN5IjtyZXR1cm4gbi5jcmVhdGVFbGVtZW50KFdvLlJlZ2lzdHJ5UHJvdmlkZXIse3ZhbGlkYXRpb246Rm8sdmFsdWU6dGhpcy5fcmVnaXN0cnl9LG4uY3JlYXRlRWxlbWVudChiby5DbG9zZURlbGVnYXRlQ29udGV4dC5Qcm92aWRlcix7dmFsdWU6SG99LG4uY3JlYXRlRWxlbWVudChJby5EcmF3ZXJNYW5hZ2VyLG51bGwsbi5jcmVhdGVFbGVtZW50KEVvLk1hdGNoTWVkaWEse3J1bGU6VG8uRGlhbG9nQnJlYWtwb2ludHMuVGFibGV0U21hbGx9LChlPT5uLmNyZWF0ZUVsZW1lbnQod28uVG9vbGJhcix7aWQ6ImRyYXdpbmctdG9vbGJhciIsY2xhc3NOYW1lOnIoKShSby5kcmF3aW5nVG9vbGJhcix7W1JvLmlzSGlkZGVuXTohc30pLHN0eWxlOmwsb25DbGljazp0aGlzLnByb3BzLm9uQ2xpY2ssb25Db250ZXh0TWVudTpfby5wcmV2ZW50RGVmYXVsdEZvckNvbnRleHRNZW51LG9yaWVudGF0aW9uOiJ2ZXJ0aWNhbCJ9LG4uY3JlYXRlRWxlbWVudChiLlZlcnRpY2FsU2Nyb2xsLHtvblNjcm9sbDp0aGlzLl9oYW5kbGVHbG9iYWxDbG9zZSxpc1Zpc2libGVGYWRlOmEubW9iaWxldG91Y2gsaXNWaXNpYmxlQnV0dG9uczohYS5tb2JpbGV0b3VjaCYmaSxpc1Zpc2libGVTY3JvbGxiYXI6ITEsb25Nb3VzZU92ZXI6dGhpcy5faGFuZGxlTW91c2VPdmVyLG9uTW91c2VPdXQ6dGhpcy5faGFuZGxlTW91c2VPdXR9LG4uY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOlJvLmlubmVyfSwhbyYmbi5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6Um8uZ3JvdXAsc3R5bGU6bH0sdGhpcy5fZmlsdGVyZWRMaW5lVG9vbHMubWFwKChvPT5uLmNyZWF0ZUVsZW1lbnQoTXQse2tleTpvLmlkLCJkYXRhLW5hbWUiOm8uaWQsY2hhcnRXaWRnZXRDb2xsZWN0aW9uOnQsZmF2b3JpdGluZzp0aGlzLl9mZWF0dXJlcy5mYXZvcml0aW5nJiYhKCJsaW5ldG9vbC1ncm91cC1jdXJzb3JzIj09PW8uaWQmJigwLG0uaXNPbk1vYmlsZUFwcFBhZ2UpKCJhbnkiKSksZ3JheWVkVG9vbHM6dGhpcy5fZ3JheWVkVG9vbHMsZHJvcGRvd25Ub29sdGlwOm8udGl0bGUsbGluZVRvb2xzOm8uaXRlbXMsaXNTbWFsbFRhYmxldDplLHRyYWNrTGFiZWw6by50cmFja0xhYmVsLHZpZXdNb2RlOmh9KSkpLHRoaXMuX3Rvb2xzRmlsdGVyLmlzVG9vbEVuYWJsZWQoIkZvbnQgSWNvbnMiKSYmbi5jcmVhdGVFbGVtZW50KCRlLHsiZGF0YS1uYW1lIjoibGluZXRvb2wtZ3JvdXAtZm9udC1pY29ucyIsaXNHcmF5ZWQ6dGhpcy5fZ3JheWVkVG9vbHNbIkZvbnQgSWNvbnMiXSxpc1NtYWxsVGFibGV0OmV9KSksIW8mJm4uY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOlJvLmdyb3VwLHN0eWxlOmx9LG4uY3JlYXRlRWxlbWVudChKZSx7dG9vbE5hbWU6Im1lYXN1cmUiLG9uQ2xpY2s6dGhpcy5faGFuZGxlTWVhc3VyZUNsaWNrfSksbi5jcmVhdGVFbGVtZW50KEplLHt0b29sTmFtZToiem9vbSIsb25DbGljazp0aGlzLl9oYW5kbGVab29tSW5DbGlja30pLG4uY3JlYXRlRWxlbWVudCh0dCx7Y2hhcnRXaWRnZXRDb2xsZWN0aW9uOnR9KSksIW8mJm4uY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOlJvLmdyb3VwLHN0eWxlOmx9LG4uY3JlYXRlRWxlbWVudChnbyx7aXNTbWFsbFRhYmxldDplLHZpZXdNb2RlOmh9KSx0aGlzLl9mZWF0dXJlcy50b29scyYmbi5jcmVhdGVFbGVtZW50KFllLHtwcm9wZXJ0eTp1LnByb3BlcnRpZXMoKS5jaGlsZHMoKS5zdGF5SW5EcmF3aW5nTW9kZSxzYXZlRGVmYXVsdE9uQ2hhbmdlOiEwLHRvb2xOYW1lOiJkcmF3Z2lubW9kZSIsb25DbGljazp0aGlzLl9oYW5kbGVEcmF3aW5nQ2xpY2t9KSx0aGlzLl9mZWF0dXJlcy50b29scyYmbi5jcmVhdGVFbGVtZW50KFllLHtwcm9wZXJ0eTp1LmxvY2tEcmF3aW5ncygpLHRvb2xOYW1lOiJsb2NrQWxsRHJhd2luZ3MiLG9uQ2xpY2s6dGhpcy5faGFuZGxlTG9ja0NsaWNrfSksdGhpcy5fZmVhdHVyZXMudG9vbHMmJm4uY3JlYXRlRWxlbWVudChxdCx7aXNTbWFsbFRhYmxldDplLHZpZXdNb2RlOmh9KSx0aGlzLl9mZWF0dXJlcy50b29scyYmdGhpcy5fZmVhdHVyZXMubXVsdGljaGFydHMmJihWbz9uLmNyZWF0ZUVsZW1lbnQoRG8se2lzU21hbGxUYWJsZXQ6ZSx2aWV3TW9kZTpofSk6bi5jcmVhdGVFbGVtZW50KG4uRnJhZ21lbnQsbnVsbCxPbz9uLmNyZWF0ZUVsZW1lbnQoWWUse3Byb3BlcnR5OnUuZHJhd09uQWxsQ2hhcnRzKCksc2F2ZURlZmF1bHRPbkNoYW5nZTohMCx0b29sTmFtZToiU3luY0RyYXdpbmciLG9uQ2xpY2s6dGhpcy5faGFuZGxlU3luY0NsaWNrfSk6bi5jcmVhdGVFbGVtZW50KEJvLHtsYXlvdXQ6dC5sYXlvdXR9LG4uY3JlYXRlRWxlbWVudChZZSx7cHJvcGVydHk6dS5kcmF3T25BbGxDaGFydHMoKSxzYXZlRGVmYXVsdE9uQ2hhbmdlOiEwLHRvb2xOYW1lOiJTeW5jRHJhd2luZyIsb25DbGljazp0aGlzLl9oYW5kbGVTeW5jQ2xpY2t9KSkpKSksIW8mJnRoaXMuX2ZlYXR1cmVzLnRvb2xzJiZuLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpSby5ncm91cCxzdHlsZTpsfSxuLmNyZWF0ZUVsZW1lbnQoUnQse2NoYXJ0V2lkZ2V0Q29sbGVjdGlvbjp0LGlzU21hbGxUYWJsZXQ6ZSx0b29sTmFtZToicmVtb3ZlQWxsRHJhd2luZ1Rvb2xzIix2aWV3TW9kZTpofSkpLG4uY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOlJvLmZpbGwsc3R5bGU6bH0pLCFvJiYodGhpcy5fZmVhdHVyZXMudG9vbHN8fHRoaXMucHJvcHMuc2NyZWVuc2hvdEJ1dHRvbikmJm4uY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOnIoKShSby5ncm91cCxSby5sYXN0R3JvdXApLHN0eWxlOmx9LHRoaXMucHJvcHMuc2NyZWVuc2hvdEJ1dHRvbiYmbi5jcmVhdGVFbGVtZW50KFNvLHtpZDp2by5EcmF3aW5nVG9vbGJhckNvbXBvbmVudElkcy5TY3JlZW5zaG90fSksdGhpcy5fZmVhdHVyZXMudG9vbHMmJnRoaXMuX2ZlYXR1cmVzLmZhdm9yaXRpbmcmJm4uY3JlYXRlRWxlbWVudChlbyx7CmlkOnZvLkRyYXdpbmdUb29sYmFyQ29tcG9uZW50SWRzLkZhdm9yaXRlRHJhd2luZ3N9KSxkKCkmJm4uY3JlYXRlRWxlbWVudCh4LHtpZDp2by5EcmF3aW5nVG9vbGJhckNvbXBvbmVudElkcy5PYmplY3RUcmVlLGFjdGlvbjp0aGlzLl9oYW5kbGVPYmplY3RzVHJlZUNsaWNrLHRvb2xOYW1lOiJzaG93T2JqZWN0c1RyZWUifSkpKSkpKSksdW5kZWZpbmVkKSkpfV9hY3RpdmVDaGFydFdpZGdldCgpe3JldHVybiB0aGlzLnByb3BzLmNoYXJ0V2lkZ2V0Q29sbGVjdGlvbi5hY3RpdmVDaGFydFdpZGdldC52YWx1ZSgpfV9uZWdvdGlhdGVSZXNpemVyKCl7dGhpcy5wcm9wcy5yZXNpemVyQnJpZGdlLm5lZ290aWF0ZVdpZHRoKHRoaXMuc3RhdGUuaXNWaXNpYmxlPzUyOjApfV9oYW5kbGVHbG9iYWxDbG9zZSgpe0hvLmZpcmUoKX1fdXBkYXRlSG90a2V5cygpe3RoaXMuX2hvdGtleXMucHJvbW90ZSgpfV9pbml0SG90a2V5cygpe3RoaXMuX2hvdGtleXM9dy5jcmVhdGVHcm91cCh7ZGVzYzoiRHJhd2luZyBUb29sYmFyIn0pLHRoaXMuX2hvdGtleXMuYWRkKHtkZXNjOiJSZXNldCIsaG90a2V5OjI3LGhhbmRsZXI6KCk9PnRoaXMuX2hhbmRsZUVzYygpLGlzRGlzYWJsZWQ6KCk9PnUudG9vbElzQ3Vyc29yKHUudG9vbC52YWx1ZSgpKX0pfX1mdW5jdGlvbiBHbyhlLHQpeygwLEEudHJhY2tCdXR0b25DbGljaykoImxlZnQgdG9vbGJhciIsZSx0KSxqbygoMCxzLmNhcGl0YWxpemVGaXJzdExldHRlcikoZSkpfX0sMjAzNzMzKGUsdCxvKXsidXNlIHN0cmljdCI7by5kKHQse2lzTGluZVRvb2w6KCk9PnAsaXNMaW5lVG9vbE9wdGlvbjooKT0+bSxpc0xpbmVUb29sU3dpdGNoZXJPcHRpb246KCk9PmcsaXNMaW5lVG9vbHNHcm91cFdpdGhTZWN0aW9uczooKT0+aCxsaW5lVG9vbHM6KCk9PmQsbGluZVRvb2xzRmxhdDooKT0+dn0pO3ZhciBuPW8oMTg1MjcxKSxpPW8oMzE4OTc0KSxyPShvKDkzMDIzMSksbyg1NjkzOTgpKSxzPW8oODcwNTYyKSxhPW8oNTcwNjU0KSxsPW8oNjAxODQxKTtjb25zdCBjPSEoMCxpLm9uV2lkZ2V0KSgpLHU9IWkuQ2hlY2tNb2JpbGUuYW55KCkmJiEwLGQ9W3tpZDoibGluZXRvb2wtZ3JvdXAtY3Vyc29ycyIsdGl0bGU6bi50KG51bGwse2NvbnRleHQ6IkN1cnNvciB0b29scyBncm91cCBuYW1lIn0sbygxNTIwMDgpKSxzZWN0aW9uczpbe2l0ZW1zOlt7bmFtZToiY3Vyc29yIn0se25hbWU6ImRvdCJ9LHtuYW1lOiJhcnJvdyJ9LHtuYW1lOiJkZW1vbnN0cmF0aW9uIn0scy5wZXJmb3JtYW5jZVRlc3RNb2RlP3tuYW1lOiJwZXJmb3JtYW5jZSJ9Om51bGxdLmZpbHRlcihsLmlzRXhpc3RlbnQpfSx7aXRlbXM6W3tuYW1lOiJlcmFzZXIifSx1P3t0eXBlOiJzd2l0Y2hlciIscmVhY3RLZXk6InZhbHVlcy10b29sdGlwLW9uLWxvbmctcHJlc3MiLGxhYmVsOm4udChudWxsLHZvaWQgMCxvKDU1MjA4MCkpLHZhbHVlOiJ2YWx1ZXNUb29sdGlwT25Mb25nUHJlc3MiLHdhdGNoZWRWYWx1ZTphLmNoYXJ0RmxvYXRpbmdUb29sdGlwRW5hYmxlZFdWfTpudWxsXS5maWx0ZXIobC5pc0V4aXN0ZW50KX1dLHRyYWNrTGFiZWw6ImN1cnNvcnMifSx7aWQ6ImxpbmV0b29sLWdyb3VwLXRyZW5kLWxpbmUiLHRpdGxlOm4udChudWxsLHtjb250ZXh0OiJUcmVuZCB0b29scyBncm91cCBuYW1lIn0sbygxNjk0MjkpKSxzZWN0aW9uczpbe3RpdGxlOm4udChudWxsLHtjb250ZXh0OiJMaW5lcyB0b29scyBncm91cCBuYW1lIn0sbygxNjQyOSkpLGl0ZW1zOlt7bmFtZToiTGluZVRvb2xUcmVuZExpbmUifSx7bmFtZToiTGluZVRvb2xSYXkifSx7bmFtZToiTGluZVRvb2xJbmZvTGluZSJ9LHtuYW1lOiJMaW5lVG9vbEV4dGVuZGVkIn0se25hbWU6IkxpbmVUb29sVHJlbmRBbmdsZSJ9LHtuYW1lOiJMaW5lVG9vbEhvcnpMaW5lIn0se25hbWU6IkxpbmVUb29sSG9yelJheSJ9LHtuYW1lOiJMaW5lVG9vbFZlcnRMaW5lIn0se25hbWU6IkxpbmVUb29sQ3Jvc3NMaW5lIn1dfSx7dGl0bGU6bi50KG51bGwse2NvbnRleHQ6IkNoYW5uZWxzIHRvb2xzIGdyb3VwIG5hbWUifSxvKDY3MzczMykpLGl0ZW1zOlt7bmFtZToiTGluZVRvb2xQYXJhbGxlbENoYW5uZWwifSx7bmFtZToiTGluZVRvb2xSZWdyZXNzaW9uVHJlbmQifSx7bmFtZToiTGluZVRvb2xGbGF0Qm90dG9tIn0se25hbWU6IkxpbmVUb29sRGlzam9pbnRBbmdsZSJ9XX0se3RpdGxlOm4udChudWxsLHtjb250ZXh0OiJQaXRjaGZvcmtzIHRvb2xzIGdyb3VwIG5hbWUifSxvKDUwMjE4MykpLGl0ZW1zOlt7bmFtZToiTGluZVRvb2xQaXRjaGZvcmsifSx7bmFtZToiTGluZVRvb2xTY2hpZmZQaXRjaGZvcmsyIn0se25hbWU6IkxpbmVUb29sU2NoaWZmUGl0Y2hmb3JrIn0se25hbWU6IkxpbmVUb29sSW5zaWRlUGl0Y2hmb3JrIn1dfV0sdHJhY2tMYWJlbDoidHJlbmQgbGluZSB0b29scyJ9LHtpZDoibGluZXRvb2wtZ3JvdXAtZ2Fubi1hbmQtZmlib25hY2NpIix0aXRsZTpuLnQobnVsbCx7Y29udGV4dDoiR2FubiBhbmQgRmlib25hY2NpIHRvb2xzIGdyb3VwIG5hbWUifSxvKDk3MDYyOSkpLHNlY3Rpb25zOlt7dGl0bGU6bi50KG51bGwse2NvbnRleHQ6IkZpYm9uYWNjaSB0b29scyBncm91cCBuYW1lIn0sbygyMzkxNDYpKSxpdGVtczpbe25hbWU6IkxpbmVUb29sRmliUmV0cmFjZW1lbnQifSx7bmFtZToiTGluZVRvb2xUcmVuZEJhc2VkRmliRXh0ZW5zaW9uIn0se25hbWU6IkxpbmVUb29sRmliQ2hhbm5lbCJ9LHtuYW1lOiJMaW5lVG9vbEZpYlRpbWVab25lIn0se25hbWU6IkxpbmVUb29sRmliU3BlZWRSZXNpc3RhbmNlRmFuIn0se25hbWU6IkxpbmVUb29sVHJlbmRCYXNlZEZpYlRpbWUifSx7bmFtZToiTGluZVRvb2xGaWJDaXJjbGVzIn0se25hbWU6IkxpbmVUb29sRmliU3BpcmFsIn0se25hbWU6IkxpbmVUb29sRmliU3BlZWRSZXNpc3RhbmNlQXJjcyJ9LHtuYW1lOiJMaW5lVG9vbEZpYldlZGdlIn0se25hbWU6IkxpbmVUb29sUGl0Y2hmYW4ifV19LHt0aXRsZTpuLnQobnVsbCx7Y29udGV4dDoiR2FubiB0b29scyBncm91cCBuYW1lIn0sbygxNzY0OTkpKSxpdGVtczpbe25hbWU6IkxpbmVUb29sR2FublNxdWFyZSJ9LHtuYW1lOiJMaW5lVG9vbEdhbm5GaXhlZCJ9LHsKbmFtZToiTGluZVRvb2xHYW5uQ29tcGxleCJ9LHtuYW1lOiJMaW5lVG9vbEdhbm5GYW4ifV19XSx0cmFja0xhYmVsOiJnYW4gYW5kIGZpYiB0b29scyJ9LHtpZDoibGluZXRvb2wtZ3JvdXAtcGF0dGVybnMiLHRpdGxlOm4udChudWxsLHtjb250ZXh0OiJQYXR0ZXJucyB0b29scyBncm91cCBuYW1lIn0sbyg1NDc5MjUpKSxzZWN0aW9uczpbe3RpdGxlOm4udChudWxsLHtjb250ZXh0OiJDaGFydCBwYXR0ZXJucyB0b29scyBncm91cCBuYW1lIn0sbyg1Mjk2MzcpKSxpdGVtczpbe25hbWU6IkxpbmVUb29sNVBvaW50c1BhdHRlcm4ifSx7bmFtZToiTGluZVRvb2xDeXBoZXJQYXR0ZXJuIn0se25hbWU6IkxpbmVUb29sSGVhZEFuZFNob3VsZGVycyJ9LHtuYW1lOiJMaW5lVG9vbEFCQ0QifSx7bmFtZToiTGluZVRvb2xUcmlhbmdsZVBhdHRlcm4ifSx7bmFtZToiTGluZVRvb2xUaHJlZURyaXZlcnMifV19LHt0aXRsZTpuLnQobnVsbCx7Y29udGV4dDoiRWxsaW90dCB3YXZlcyB0b29scyBncm91cCBuYW1lIn0sbyg5NzEzMTkpKSxpdGVtczpbe25hbWU6IkxpbmVUb29sRWxsaW90dEltcHVsc2UifSx7bmFtZToiTGluZVRvb2xFbGxpb3R0Q29ycmVjdGlvbiJ9LHtuYW1lOiJMaW5lVG9vbEVsbGlvdHRUcmlhbmdsZSJ9LHtuYW1lOiJMaW5lVG9vbEVsbGlvdHREb3VibGVDb21ibyJ9LHtuYW1lOiJMaW5lVG9vbEVsbGlvdHRUcmlwbGVDb21ibyJ9XX0se3RpdGxlOm4udChudWxsLHtjb250ZXh0OiJDeWNsZXMgdG9vbHMgZ3JvdXAgbmFtZSJ9LG8oMTA0NDA4KSksaXRlbXM6W3tuYW1lOiJMaW5lVG9vbENpcmNsZUxpbmVzIn0se25hbWU6IkxpbmVUb29sVGltZUN5Y2xlcyJ9LHtuYW1lOiJMaW5lVG9vbFNpbmVMaW5lIn1dfV0sdHJhY2tMYWJlbDoicGF0dGVybnMifSx7aWQ6ImxpbmV0b29sLWdyb3VwLXByZWRpY3Rpb24tYW5kLW1lYXN1cmVtZW50Iix0aXRsZTpuLnQobnVsbCx7Y29udGV4dDoiRm9yZWNhc3RpbmcgYW5kIG1lYXN1cmVtZW50IHRvb2xzIGdyb3VwIG5hbWUifSxvKDg4MTQxMSkpLHNlY3Rpb25zOlt7dGl0bGU6bi50KG51bGwse2NvbnRleHQ6IkZvcmVjYXN0aW5nIHRvb2xzIGdyb3VwIG5hbWUifSxvKDE1MDY1MykpLGl0ZW1zOlt7bmFtZToiTGluZVRvb2xSaXNrUmV3YXJkTG9uZyJ9LHtuYW1lOiJMaW5lVG9vbFJpc2tSZXdhcmRTaG9ydCJ9LHtuYW1lOiJMaW5lVG9vbFByZWRpY3Rpb24ifSx7bmFtZToiTGluZVRvb2xCYXJzUGF0dGVybiJ9LHtuYW1lOiJMaW5lVG9vbEdob3N0RmVlZCJ9LHtuYW1lOiJMaW5lVG9vbFByb2plY3Rpb24ifV0uZmlsdGVyKGwuaXNFeGlzdGVudCl9LHt0aXRsZTpuLnQobnVsbCx7Y29udGV4dDoiVm9sdW1lLWJhc2VkIHRvb2xzIGdyb3VwIG5hbWUifSxvKDI4MTU1OCkpLGl0ZW1zOlt7bmFtZToiTGluZVRvb2xBbmNob3JlZFZXQVAifSx7bmFtZToiTGluZVRvb2xGaXhlZFJhbmdlVm9sdW1lUHJvZmlsZSJ9LHtuYW1lOiJMaW5lVG9vbEFuY2hvcmVkVm9sdW1lUHJvZmlsZSJ9XS5maWx0ZXIobC5pc0V4aXN0ZW50KX0se3RpdGxlOm4udChudWxsLHtjb250ZXh0OiJNZWFzdXJlcnMgdG9vbHMgZ3JvdXAgbmFtZSJ9LG8oMTc0NjIyKSksaXRlbXM6W3tuYW1lOiJMaW5lVG9vbFByaWNlUmFuZ2UifSx7bmFtZToiTGluZVRvb2xEYXRlUmFuZ2UifSx7bmFtZToiTGluZVRvb2xEYXRlQW5kUHJpY2VSYW5nZSJ9XX1dLHRyYWNrTGFiZWw6InByZWRpY3Rpb24gdG9vbHMifSx7aWQ6ImxpbmV0b29sLWdyb3VwLWdlb21ldHJpYy1zaGFwZXMiLHRpdGxlOm4udChudWxsLHtjb250ZXh0OiJHZW9tZXRyaWMgc2hhcGVzIHRvb2xzIGdyb3VwIG5hbWUifSxvKDI0NjA0NykpLHNlY3Rpb25zOlt7dGl0bGU6bi50KG51bGwse2NvbnRleHQ6IkJydXNoZXMgdG9vbHMgZ3JvdXAgbmFtZSJ9LG8oODUzNzgzKSksaXRlbXM6W3tuYW1lOiJMaW5lVG9vbEJydXNoIn0se25hbWU6IkxpbmVUb29sSGlnaGxpZ2h0ZXIifV19LHt0aXRsZTpuLnQobnVsbCx7Y29udGV4dDoiQXJyb3dzIHRvb2xzIGdyb3VwIG5hbWUifSxvKDk0ODM0NCkpLGl0ZW1zOlt7bmFtZToiTGluZVRvb2xBcnJvd01hcmtlciJ9LHtuYW1lOiJMaW5lVG9vbEFycm93In0se25hbWU6IkxpbmVUb29sQXJyb3dNYXJrVXAifSx7bmFtZToiTGluZVRvb2xBcnJvd01hcmtEb3duIn0sbnVsbCxudWxsXS5maWx0ZXIobC5pc0V4aXN0ZW50KX0se3RpdGxlOm4udChudWxsLHtjb250ZXh0OiJTaGFwZXMgdG9vbHMgZ3JvdXAgbmFtZSJ9LG8oNzc4MzcyKSksaXRlbXM6W3tuYW1lOiJMaW5lVG9vbFJlY3RhbmdsZSJ9LHtuYW1lOiJMaW5lVG9vbFJvdGF0ZWRSZWN0YW5nbGUifSx7bmFtZToiTGluZVRvb2xQYXRoIn0se25hbWU6IkxpbmVUb29sQ2lyY2xlIn0se25hbWU6IkxpbmVUb29sRWxsaXBzZSJ9LHtuYW1lOiJMaW5lVG9vbFBvbHlsaW5lIn0se25hbWU6IkxpbmVUb29sVHJpYW5nbGUifSx7bmFtZToiTGluZVRvb2xBcmMifSx7bmFtZToiTGluZVRvb2xCZXppZXJRdWFkcm8ifSx7bmFtZToiTGluZVRvb2xCZXppZXJDdWJpYyJ9XX1dLHRyYWNrTGFiZWw6Imdlb21ldHJpYyBzaGFwZXMifSx7aWQ6ImxpbmV0b29sLWdyb3VwLWFubm90YXRpb24iLHRpdGxlOm4udChudWxsLHtjb250ZXh0OiJBbm5vdGF0aW9uIHRvb2xzIGdyb3VwIG5hbWUifSxvKDUzNTU3NykpLHNlY3Rpb25zOlt7dGl0bGU6bi50KG51bGwse2NvbnRleHQ6IlRleHQgYW5kIG5vdGVzIHRvb2xzIGdyb3VwIG5hbWUifSxvKDY5NTk0OSkpLGl0ZW1zOlt7bmFtZToiTGluZVRvb2xUZXh0In0sKDAsci5pc0ZlYXR1cmVFbmFibGVkKSgicmVtb3ZlX2FuY2hvcmVkX3RleHQiKT9udWxsOntuYW1lOiJMaW5lVG9vbFRleHRBYnNvbHV0ZSJ9LHtuYW1lOiJMaW5lVG9vbFRleHROb3RlIn0se25hbWU6IkxpbmVUb29sUHJpY2VOb3RlIn0se25hbWU6IkxpbmVUb29sTm90ZSJ9LHtuYW1lOiJMaW5lVG9vbFRhYmxlIn0se25hbWU6IkxpbmVUb29sQ2FsbG91dCJ9LHtuYW1lOiJMaW5lVG9vbENvbW1lbnQifSx7bmFtZToiTGluZVRvb2xQcmljZUxhYmVsIn0se25hbWU6IkxpbmVUb29sU2lnbnBvc3QifSx7bmFtZToiTGluZVRvb2xGbGFnTWFyayIKfV0uZmlsdGVyKGwuaXNFeGlzdGVudCl9LHt0aXRsZTpuLnQobnVsbCx7Y29udGV4dDoiQ29udGVudCB0b29scyBncm91cCBuYW1lIn0sbygxNzM2NzkpKSxpdGVtczpbYz97bmFtZToiTGluZVRvb2xJbWFnZSJ9Om51bGwsIWN8fCgwLHIuaXNGZWF0dXJlRW5hYmxlZCkoImhpZGVfdHdlZXRfZHJhd2luZ3Rvb2wiKXx8KDAsaS5pc1N5bXBob255RW1iZWQpKCk/bnVsbDp7bmFtZToiTGluZVRvb2xUd2VldCJ9LGMmJiEoMCxpLmlzU3ltcGhvbnlFbWJlZCkoKT97bmFtZToiTGluZVRvb2xJZGVhIn06bnVsbF0uZmlsdGVyKGwuaXNFeGlzdGVudCl9XSx0cmFja0xhYmVsOiJhbm5vdGF0aW9uIHRvb2xzIn1dO2Z1bmN0aW9uIGgoZSl7cmV0dXJuInNlY3Rpb25zImluIGV9ZnVuY3Rpb24gcChlKXtyZXR1cm4ibmFtZSJpbiBlfWZ1bmN0aW9uIG0oZSl7cmV0dXJuInR5cGUiaW4gZX1mdW5jdGlvbiBnKGUpe3JldHVybiBtKGUpJiYic3dpdGNoZXIiPT09ZS50eXBlfWNvbnN0IHY9ZC5tYXAoKGZ1bmN0aW9uKGUpe3JldHVybiBoKGUpP2Uuc2VjdGlvbnMubWFwKChlPT5lLml0ZW1zLmZpbHRlcihwKSkpLmZsYXQoKTplLml0ZW1zLmZpbHRlcihwKX0pKS5mbGF0KCl9LDM0NDk0NyhlLHQsbyl7InVzZSBzdHJpY3QiO28uZCh0LHtWZXJ0aWNhbFNjcm9sbDooKT0+aH0pO3ZhciBuPW8oNzc5NDc0KSxpPW8oOTE0NDg3KSxyPW8ubihpKSxzPW8oMjczMzEwKSxhPW8oMzQyNzgpLGw9bygyMTg4MTQpLGM9byg1MDk5OTApLHU9byg1NTA5NTgpLGQ9bygxMDE2MzEpO2NsYXNzIGggZXh0ZW5kcyBuLlB1cmVDb21wb25lbnR7Y29uc3RydWN0b3IoZSl7c3VwZXIoZSksdGhpcy5fc2Nyb2xsPW51bGwsdGhpcy5faGFuZGxlU2Nyb2xsVG9wPSgpPT57dGhpcy5hbmltYXRlVG8oTWF0aC5tYXgoMCx0aGlzLmN1cnJlbnRQb3NpdGlvbigpLSh0aGlzLnN0YXRlLmhlaWdodFdyYXAtNTApKSl9LHRoaXMuX2hhbmRsZVNjcm9sbEJvdD0oKT0+e3RoaXMuYW5pbWF0ZVRvKE1hdGgubWluKCh0aGlzLnN0YXRlLmhlaWdodENvbnRlbnR8fDApLSh0aGlzLnN0YXRlLmhlaWdodFdyYXB8fDApLHRoaXMuY3VycmVudFBvc2l0aW9uKCkrKHRoaXMuc3RhdGUuaGVpZ2h0V3JhcC01MCkpKX0sdGhpcy5faGFuZGxlUmVzaXplV3JhcD0oW2VdKT0+e3RoaXMuc2V0U3RhdGUoe2hlaWdodFdyYXA6ZS5jb250ZW50UmVjdC5oZWlnaHR9KX0sdGhpcy5faGFuZGxlUmVzaXplQ29udGVudD0oW2VdKT0+e3RoaXMuc2V0U3RhdGUoe2hlaWdodENvbnRlbnQ6ZS5jb250ZW50UmVjdC5oZWlnaHR9KX0sdGhpcy5faGFuZGxlU2Nyb2xsPSgpPT57Y29uc3R7b25TY3JvbGw6ZX09dGhpcy5wcm9wcztlJiZlKHRoaXMuY3VycmVudFBvc2l0aW9uKCksdGhpcy5pc0F0VG9wKCksdGhpcy5pc0F0Qm90KCkpLHRoaXMuX2NoZWNrQnV0dG9uc1Zpc2liaWxpdHkoKX0sdGhpcy5fY2hlY2tCdXR0b25zVmlzaWJpbGl0eT0oKT0+e2NvbnN0e2lzVmlzaWJsZVRvcEJ1dHRvbjplLGlzVmlzaWJsZUJvdEJ1dHRvbjp0fT10aGlzLnN0YXRlLG89dGhpcy5pc0F0VG9wKCksbj10aGlzLmlzQXRCb3QoKTtvfHxlP28mJmUmJnRoaXMuc2V0U3RhdGUoe2lzVmlzaWJsZVRvcEJ1dHRvbjohMX0pOnRoaXMuc2V0U3RhdGUoe2lzVmlzaWJsZVRvcEJ1dHRvbjohMH0pLG58fHQ/biYmdCYmdGhpcy5zZXRTdGF0ZSh7aXNWaXNpYmxlQm90QnV0dG9uOiExfSk6dGhpcy5zZXRTdGF0ZSh7aXNWaXNpYmxlQm90QnV0dG9uOiEwfSl9LHRoaXMuc3RhdGU9e2hlaWdodENvbnRlbnQ6MCxoZWlnaHRXcmFwOjAsaXNWaXNpYmxlQm90QnV0dG9uOiExLGlzVmlzaWJsZVRvcEJ1dHRvbjohMX19Y29tcG9uZW50RGlkTW91bnQoKXt0aGlzLl9jaGVja0J1dHRvbnNWaXNpYmlsaXR5KCl9Y29tcG9uZW50RGlkVXBkYXRlKGUsdCl7dC5oZWlnaHRXcmFwPT09dGhpcy5zdGF0ZS5oZWlnaHRXcmFwJiZ0LmhlaWdodENvbnRlbnQ9PT10aGlzLnN0YXRlLmhlaWdodENvbnRlbnR8fHRoaXMuX2hhbmRsZVNjcm9sbCgpfWN1cnJlbnRQb3NpdGlvbigpe3JldHVybiB0aGlzLl9zY3JvbGw/dGhpcy5fc2Nyb2xsLnNjcm9sbFRvcDowfWlzQXRUb3AoKXtyZXR1cm4gdGhpcy5jdXJyZW50UG9zaXRpb24oKTw9MX1pc0F0Qm90KCl7cmV0dXJuIHRoaXMuY3VycmVudFBvc2l0aW9uKCkrdGhpcy5zdGF0ZS5oZWlnaHRXcmFwPj10aGlzLnN0YXRlLmhlaWdodENvbnRlbnQtMX1hbmltYXRlVG8oZSx0PWwuZHVyKXtjb25zdCBvPXRoaXMuX3Njcm9sbDtvJiYoMCxhLmRvQW5pbWF0ZSkoe29uU3RlcChlLHQpe28uc2Nyb2xsVG9wPXR9LGZyb206by5zY3JvbGxUb3AsdG86TWF0aC5yb3VuZChlKSxlYXNpbmc6bC5lYXNpbmdGdW5jLmVhc2VJbk91dEN1YmljLGR1cmF0aW9uOnR9KX1yZW5kZXIoKXtjb25zdHtjaGlsZHJlbjplLGlzVmlzaWJsZVNjcm9sbGJhcjp0LGlzVmlzaWJsZUZhZGU6byxpc1Zpc2libGVCdXR0b25zOmksb25Nb3VzZU92ZXI6YSxvbk1vdXNlT3V0Omx9PXRoaXMucHJvcHMse2hlaWdodENvbnRlbnQ6aCxoZWlnaHRXcmFwOnAsaXNWaXNpYmxlQm90QnV0dG9uOm0saXNWaXNpYmxlVG9wQnV0dG9uOmd9PXRoaXMuc3RhdGU7cmV0dXJuIG4uY3JlYXRlRWxlbWVudChjLk1lYXN1cmUse29uUmVzaXplOnRoaXMuX2hhbmRsZVJlc2l6ZVdyYXB9LCh2PT5uLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTp1LndyYXAsb25Nb3VzZU92ZXI6YSxvbk1vdXNlT3V0OmwscmVmOnZ9LG4uY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOnIoKSh1LnNjcm9sbFdyYXAse1t1Lm5vU2Nyb2xsQmFyXTohdH0pLG9uU2Nyb2xsOnRoaXMuX2hhbmRsZVNjcm9sbCxyZWY6ZT0+dGhpcy5fc2Nyb2xsPWV9LG4uY3JlYXRlRWxlbWVudChjLk1lYXN1cmUse29uUmVzaXplOnRoaXMuX2hhbmRsZVJlc2l6ZUNvbnRlbnR9LCh0PT5uLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTp1LmNvbnRlbnQscmVmOnR9LGUpKSkpLG8mJm4uY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOnIoKSh1LmZhZGVUb3Ase1t1LmlzVmlzaWJsZV06ZyYmaD5wfSl9KSxvJiZuLmNyZWF0ZUVsZW1lbnQoImRpdiIsewpjbGFzc05hbWU6cigpKHUuZmFkZUJvdCx7W3UuaXNWaXNpYmxlXTptJiZoPnB9KX0pLGkmJm4uY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOnIoKSh1LnNjcm9sbFRvcCx7W3UuaXNWaXNpYmxlXTpnJiZoPnB9KSxvbkNsaWNrOnRoaXMuX2hhbmRsZVNjcm9sbFRvcH0sbi5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6dS5pY29uV3JhcH0sbi5jcmVhdGVFbGVtZW50KHMuSWNvbix7aWNvbjpkLGNsYXNzTmFtZTp1Lmljb259KSkpLGkmJm4uY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOnIoKSh1LnNjcm9sbEJvdCx7W3UuaXNWaXNpYmxlXTptJiZoPnB9KSxvbkNsaWNrOnRoaXMuX2hhbmRsZVNjcm9sbEJvdH0sbi5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6dS5pY29uV3JhcH0sbi5jcmVhdGVFbGVtZW50KHMuSWNvbix7aWNvbjpkLGNsYXNzTmFtZTp1Lmljb259KSkpKSkpfX1oLmRlZmF1bHRQcm9wcz17aXNWaXNpYmxlU2Nyb2xsYmFyOiEwfX0sMzY1MjE3KGUsdCxvKXsidXNlIHN0cmljdCI7by5kKHQse0hFQURFUl9UT09MQkFSX0hFSUdIVF9DT0xMQVBTRUQ6KCk9PnIsSEVBREVSX1RPT0xCQVJfSEVJR0hUX0VYUEFOREVEOigpPT5pfSk7dmFyIG49byg1NzUxMzcpO2NvbnN0IGk9cGFyc2VJbnQoblsiY3NzLXZhbHVlLWhlYWRlci10b29sYmFyLWhlaWdodCJdKSxyPTN9LDEzMTMyMShlLHQsbyl7InVzZSBzdHJpY3QiO28uZCh0LHtIb3Jpem9udGFsQXR0YWNoRWRnZTooKT0+aSxIb3Jpem9udGFsRHJvcERpcmVjdGlvbjooKT0+cyxWZXJ0aWNhbEF0dGFjaEVkZ2U6KCk9Pm4sVmVydGljYWxEcm9wRGlyZWN0aW9uOigpPT5yLGdldFBvcHVwUG9zaXRpb25lcjooKT0+Y30pO3ZhciBuLGkscixzLGE9bygxMzg2MzgpOyFmdW5jdGlvbihlKXtlW2UuVG9wPTBdPSJUb3AiLGVbZS5Cb3R0b209MV09IkJvdHRvbSIsZVtlLkF1dG9TdHJpY3Q9Ml09IkF1dG9TdHJpY3QifShufHwobj17fSkpLGZ1bmN0aW9uKGUpe2VbZS5MZWZ0PTBdPSJMZWZ0IixlW2UuUmlnaHQ9MV09IlJpZ2h0In0oaXx8KGk9e30pKSxmdW5jdGlvbihlKXtlW2UuRnJvbVRvcFRvQm90dG9tPTBdPSJGcm9tVG9wVG9Cb3R0b20iLGVbZS5Gcm9tQm90dG9tVG9Ub3A9MV09IkZyb21Cb3R0b21Ub1RvcCJ9KHJ8fChyPXt9KSksZnVuY3Rpb24oZSl7ZVtlLkZyb21MZWZ0VG9SaWdodD0wXT0iRnJvbUxlZnRUb1JpZ2h0IixlW2UuRnJvbVJpZ2h0VG9MZWZ0PTFdPSJGcm9tUmlnaHRUb0xlZnQifShzfHwocz17fSkpO2NvbnN0IGw9e3ZlcnRpY2FsQXR0YWNoRWRnZTpuLkJvdHRvbSxob3Jpem9udGFsQXR0YWNoRWRnZTppLkxlZnQsdmVydGljYWxEcm9wRGlyZWN0aW9uOnIuRnJvbVRvcFRvQm90dG9tLGhvcml6b250YWxEcm9wRGlyZWN0aW9uOnMuRnJvbUxlZnRUb1JpZ2h0LHZlcnRpY2FsTWFyZ2luOjAsaG9yaXpvbnRhbE1hcmdpbjowLG1hdGNoQnV0dG9uQW5kTGlzdGJveFdpZHRoczohMX07ZnVuY3Rpb24gYyhlLHQpe3JldHVybiBvPT57Y29uc3R7Y29udGVudFdpZHRoOmMsY29udGVudEhlaWdodDp1LGF2YWlsYWJsZUhlaWdodDpkfT1vLGg9KDAsYS5lbnN1cmVOb3ROdWxsKShlKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSx7aG9yaXpvbnRhbEF0dGFjaEVkZ2U6cD1sLmhvcml6b250YWxBdHRhY2hFZGdlLGhvcml6b250YWxEcm9wRGlyZWN0aW9uOm09bC5ob3Jpem9udGFsRHJvcERpcmVjdGlvbixob3Jpem9udGFsTWFyZ2luOmc9bC5ob3Jpem9udGFsTWFyZ2luLHZlcnRpY2FsTWFyZ2luOnY9bC52ZXJ0aWNhbE1hcmdpbixtYXRjaEJ1dHRvbkFuZExpc3Rib3hXaWR0aHM6Zj1sLm1hdGNoQnV0dG9uQW5kTGlzdGJveFdpZHRoc309dDtsZXQgXz10LnZlcnRpY2FsQXR0YWNoRWRnZT8/bC52ZXJ0aWNhbEF0dGFjaEVkZ2UsYj10LnZlcnRpY2FsRHJvcERpcmVjdGlvbj8/bC52ZXJ0aWNhbERyb3BEaXJlY3Rpb247Xz09PW4uQXV0b1N0cmljdCYmKGQ8aC55K2guaGVpZ2h0K3YrdT8oXz1uLlRvcCxiPXIuRnJvbUJvdHRvbVRvVG9wKTooXz1uLkJvdHRvbSxiPXIuRnJvbVRvcFRvQm90dG9tKSk7Y29uc3Qgdz1fPT09bi5Ub3A/LTEqdjp2LEM9cD09PWkuUmlnaHQ/aC5yaWdodDpoLmxlZnQseT1fPT09bi5Ub3A/aC50b3A6aC5ib3R0b20sVD17eDpDLShtPT09cy5Gcm9tUmlnaHRUb0xlZnQ/YzowKStnLHk6eS0oYj09PXIuRnJvbUJvdHRvbVRvVG9wP3U6MCkrd307cmV0dXJuIGYmJihULm92ZXJyaWRlV2lkdGg9aC53aWR0aCksVH19fSw0MDg2MzUoZSx0LG8peyJ1c2Ugc3RyaWN0IjtvLmQodCx7VG9vbEJ1dHRvbjooKT0+Y30pO3ZhciBuPW8oNzc5NDc0KSxpPW8oOTE0NDg3KSxyPW8ubihpKSxzPW8oOTk1NzE5KTtjb25zdCBhPW4uZm9yd2FyZFJlZigoKGUsdCk9Pntjb25zdHtjbGFzc05hbWU6bywuLi5pfT1lO3JldHVybiBuLmNyZWF0ZUVsZW1lbnQocy5Ub29sV2lkZ2V0QnV0dG9uLHtyZWY6dCxjbGFzc05hbWU6bywiYXJpYS1wcmVzc2VkIjppLmlzQWN0aXZlLGlzUHJlc3NlZDppLmlzQWN0aXZlLC4uLml9KX0pKTt2YXIgbD1vKDUwNTM4KTtjb25zdCBjPSgwLG4uZm9yd2FyZFJlZikoKChlLHQpPT57Y29uc3R7aWQ6byxjbGFzc05hbWU6aSxpY29uOmMsaXNBY3RpdmU6dSxpc0dyYXllZDpkLGlzVHJhbnNwYXJlbnQ6aCxvbkNsaWNrOnAsYnV0dG9uSG90S2V5Om0sdG9vbHRpcFBvc2l0aW9uOmc9InZlcnRpY2FsIix0YWc6dix0YWJJbmRleDpmLHRvb2x0aXA6XywuLi5ifT1lLHc9ImJ1dHRvbiI9PT12LEM9aD9zLlRvb2xXaWRnZXRCdXR0b246YTtyZXR1cm4gbi5jcmVhdGVFbGVtZW50KEMseyJhcmlhLWxhYmVsIjp3P186dm9pZCAwLC4uLmIsaWQ6byxyZWY6dCxjbGFzc05hbWU6cigpKGwuYnV0dG9uLGkpLHRhZzp2LGlzQWN0aXZlOnUsaXNEaXNhYmxlZEFwcGVhcmFuY2U6ZCxpY29uOmMsb25DbGljazpwLGZvcmNlSW50ZXJhY3RpdmU6ITAsdGFiSW5kZXg6ZiwiZGF0YS10b29sdGlwIjpfLHRvb2x0aXBQb3NpdGlvbjpnLCJkYXRhLXRvb2x0aXAtaG90a2V5IjptfSl9KSl9LDI5NjQ0OShlLHQsbyl7InVzZSBzdHJpY3QiO28uZCh0LHsKREVGQVVMVF9UT09MX1dJREdFVF9NRU5VX1RIRU1FOigpPT52LFRvb2xXaWRnZXRNZW51OigpPT5ffSk7dmFyIG49byg3Nzk0NzQpLGk9byg5MTQ0ODcpLHI9by5uKGkpLHM9bygyMzU3MjQpLGE9byg4MzU5NjQpLGw9byg3MDg4NDIpLGM9bygzNDUxMTYpLHU9bygzMTM3NzIpLGQ9byg5NjQyMTQpLGg9bygxMzEzMjEpLHA9byg0MDYxMTApLG09byg4NDg5ODgpLGc9byg0MjQyNjIpO2NvbnN0IHY9Zzt2YXIgZjshZnVuY3Rpb24oZSl7ZVtlLlZlcnRpY2FsPTJdPSJWZXJ0aWNhbCIsZVtlLkhvcml6b250YWw9MF09Ikhvcml6b250YWwifShmfHwoZj17fSkpO2NsYXNzIF8gZXh0ZW5kcyBuLlB1cmVDb21wb25lbnR7Y29uc3RydWN0b3IoZSl7c3VwZXIoZSksdGhpcy5fd3JhcHBlclJlZj1udWxsLHRoaXMuX3Njcm9sbFdyYXBSZWY9bnVsbCx0aGlzLl9zY3JvbGxDb21wZW5zYXRpb25PYnNlcnZlcj1udWxsLHRoaXMuX2NvbnRyb2xsZXI9bi5jcmVhdGVSZWYoKSx0aGlzLl9vblBvcHVwQ2xvc2VPbkNsaWNrPWU9Pnsia2V5Ym9hcmQiPT09ZS5kZXRhaWwuY2xpY2tUeXBlJiZ0aGlzLmZvY3VzKCl9LHRoaXMuX2hhbmRsZU1lbnVGb2N1cz1lPT57ZS5yZWxhdGVkVGFyZ2V0PT09dGhpcy5fd3JhcHBlclJlZiYmdGhpcy5zZXRTdGF0ZSgoZT0+KHsuLi5lLGlzT3BlbmVkQnlCdXR0b246ITB9KSkpLHRoaXMucHJvcHMub25NZW51Rm9jdXM/LihlKX0sdGhpcy5faGFuZGxlV3JhcHBlclJlZj1lPT57dGhpcy5fd3JhcHBlclJlZj1lLHRoaXMucHJvcHMucmVmZXJlbmNlJiZ0aGlzLnByb3BzLnJlZmVyZW5jZShlKX0sdGhpcy5faGFuZGxlU2Nyb2xsV3JhcFJlZj1lPT57dGhpcy5fc2Nyb2xsV3JhcFJlZj1lLHRoaXMuX3N5bmNTY3JvbGxDb21wZW5zYXRpb25PYnNlcnZlcigpLHRoaXMuX3VwZGF0ZVNjcm9sbENvbXBlbnNhdGlvbigpfSx0aGlzLl9zeW5jU2Nyb2xsQ29tcGVuc2F0aW9uT2JzZXJ2ZXI9KCk9Pnt0aGlzLl9kZXN0cm95U2Nyb2xsQ29tcGVuc2F0aW9uT2JzZXJ2ZXIoKSx0aGlzLnByb3BzLmVuYWJsZVNjcm9sbENvbXBlbnNhdGlvbiYmbnVsbCE9PXRoaXMuX3Njcm9sbFdyYXBSZWYmJih0aGlzLl9zY3JvbGxDb21wZW5zYXRpb25PYnNlcnZlcj1uZXcgUmVzaXplT2JzZXJ2ZXIodGhpcy5fdXBkYXRlU2Nyb2xsQ29tcGVuc2F0aW9uKSx0aGlzLl9zY3JvbGxDb21wZW5zYXRpb25PYnNlcnZlci5vYnNlcnZlKHRoaXMuX3Njcm9sbFdyYXBSZWYpKX0sdGhpcy5fZGVzdHJveVNjcm9sbENvbXBlbnNhdGlvbk9ic2VydmVyPSgpPT57bnVsbCE9PXRoaXMuX3Njcm9sbENvbXBlbnNhdGlvbk9ic2VydmVyJiYodGhpcy5fc2Nyb2xsQ29tcGVuc2F0aW9uT2JzZXJ2ZXIuZGlzY29ubmVjdCgpLHRoaXMuX3Njcm9sbENvbXBlbnNhdGlvbk9ic2VydmVyPW51bGwpfSx0aGlzLl91cGRhdGVTY3JvbGxDb21wZW5zYXRpb249KCk9PntpZihudWxsPT09dGhpcy5fc2Nyb2xsV3JhcFJlZilyZXR1cm4gdm9pZCB0aGlzLnNldFN0YXRlKHtzY3JvbGxDb21wZW5zYXRpb246bnVsbH0pO2NvbnN0IGU9dGhpcy5fc2Nyb2xsV3JhcFJlZi5vZmZzZXRXaWR0aC10aGlzLl9zY3JvbGxXcmFwUmVmLmNsaWVudFdpZHRoLHQ9ZT4wPy1lKyJweCI6bnVsbDt0aGlzLnNldFN0YXRlKHtzY3JvbGxDb21wZW5zYXRpb246dH0pfSx0aGlzLl9oYW5kbGVPcGVuPSgpPT57ImRpdiIhPT10aGlzLnByb3BzLnRhZyYmKHRoaXMuc2V0U3RhdGUoKGU9Pih7Li4uZSxpc09wZW5lZEJ5QnV0dG9uOiExfSkpKSx0aGlzLnByb3BzLm1lbnVSZWZlcmVuY2U/LmN1cnJlbnQ/LmFkZEV2ZW50TGlzdGVuZXIoInBvcHVwLW1lbnUtY2xvc2UtZXZlbnQiLHRoaXMuX29uUG9wdXBDbG9zZU9uQ2xpY2spLHRoaXMuX2NvbnRyb2xsZXIuY3VycmVudD8uZm9jdXMoKSl9LHRoaXMuX2hhbmRsZUNsaWNrPWU9PntlLnRhcmdldCBpbnN0YW5jZW9mIE5vZGUmJmUuY3VycmVudFRhcmdldC5jb250YWlucyhlLnRhcmdldCkmJih0aGlzLl9oYW5kbGVUb2dnbGVEcm9wZG93bih2b2lkIDAsKDAsbS5pc0tleWJvYXJkQ2xpY2spKGUpKSx0aGlzLnByb3BzLm9uQ2xpY2smJnRoaXMucHJvcHMub25DbGljayhlLCF0aGlzLnN0YXRlLmlzT3BlbmVkKSl9LHRoaXMuX2hhbmRsZVRvZ2dsZURyb3Bkb3duPShlLHQ9ITEpPT57Y29uc3R7b25DbG9zZTpvLG9uT3BlbjpufT10aGlzLnByb3BzLHtpc09wZW5lZDppfT10aGlzLnN0YXRlLHI9ImJvb2xlYW4iPT10eXBlb2YgZT9lOiFpO3RoaXMuc2V0U3RhdGUoe2lzT3BlbmVkOnIsc2hvdWxkUmV0dXJuRm9jdXM6ISFyJiZ0fSksciYmbiYmbigpLCFyJiZvJiZvKCl9LHRoaXMuX2hhbmRsZUNsb3NlPSgpPT57dGhpcy5jbG9zZSgpfSx0aGlzLl9oYW5kbGVLZXlEb3duPWU9Pntjb25zdHtvcmllbnRhdGlvbjp0PSJob3Jpem9udGFsIn09dGhpcy5wcm9wcztpZihlLmRlZmF1bHRQcmV2ZW50ZWQpcmV0dXJuO2lmKCEoZS50YXJnZXQgaW5zdGFuY2VvZiBOb2RlKSlyZXR1cm47Y29uc3Qgbz0oMCxzLmhhc2hGcm9tRXZlbnQpKGUpO2lmKGUuY3VycmVudFRhcmdldC5jb250YWlucyhlLnRhcmdldCkpc3dpdGNoKG8pe2Nhc2UgNDA6aWYoImRpdiI9PT10aGlzLnByb3BzLnRhZ3x8Imhvcml6b250YWwiIT09dClyZXR1cm47aWYodGhpcy5zdGF0ZS5pc09wZW5lZClyZXR1cm47ZS5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuX2hhbmRsZVRvZ2dsZURyb3Bkb3duKCEwLCEwKTticmVhaztjYXNlIDI3OmlmKCF0aGlzLnN0YXRlLmlzT3BlbmVkfHwhdGhpcy5wcm9wcy5jbG9zZU9uRXNjKXJldHVybjtlLnByZXZlbnREZWZhdWx0KCksZS5zdG9wUHJvcGFnYXRpb24oKSx0aGlzLl9oYW5kbGVUb2dnbGVEcm9wZG93bighMSl9ZWxzZXtpZigiZGl2Ij09PXRoaXMucHJvcHMudGFnKXJldHVybjtzd2l0Y2gobyl7Y2FzZSAyNzp7ZS5wcmV2ZW50RGVmYXVsdCgpO2NvbnN0e3Nob3VsZFJldHVybkZvY3VzOnQsaXNPcGVuZWRCeUJ1dHRvbjpvfT10aGlzLnN0YXRlO3RoaXMuX2hhbmRsZVRvZ2dsZURyb3Bkb3duKCExKSx0JiZvJiZ0aGlzLl93cmFwcGVyUmVmPy5mb2N1cygpO2JyZWFrfX19fSx0aGlzLnN0YXRlPXtpc09wZW5lZDohMSwKc2hvdWxkUmV0dXJuRm9jdXM6ITEsaXNPcGVuZWRCeUJ1dHRvbjohMSxzY3JvbGxDb21wZW5zYXRpb246bnVsbH19cmVuZGVyKCl7Y29uc3R7dGFnOmU9ImRpdiIsaWQ6dCxhcnJvdzpvLGNvbnRlbnQ6aSxpc0Rpc2FibGVkOnMsaXNEcmF3ZXI6YSxpc1Nob3dUb29sdGlwOnUsdGl0bGU6ZCxjbGFzc05hbWU6aCxob3RLZXk6bSx0aGVtZTpnLGRyYXdlckJyZWFrcG9pbnQ6dix0YWJJbmRleDpmLGlzQ2xpY2tlZDpffT10aGlzLnByb3BzLHtpc09wZW5lZDp3fT10aGlzLnN0YXRlLEM9cigpKGgsZy5idXR0b24seyJhcHBseS1jb21tb24tdG9vbHRpcCI6dXx8IXMsW2cuaXNEaXNhYmxlZF06cyxbZy5pc09wZW5lZF06dyxbZy5jbGlja2VkXTpffSkseT1iKGkpP2koe2lzT3BlbmVkOnd9KTppO3JldHVybiJidXR0b24iPT09ZT9uLmNyZWF0ZUVsZW1lbnQoImJ1dHRvbiIse3R5cGU6ImJ1dHRvbiIsaWQ6dCxjbGFzc05hbWU6cigpKEMsZy5hY2Nlc3NpYmxlKSxkaXNhYmxlZDpzLG9uQ2xpY2s6dGhpcy5faGFuZGxlQ2xpY2ssdGl0bGU6ZCwiZGF0YS10b29sdGlwLWhvdGtleSI6bSxyZWY6dGhpcy5faGFuZGxlV3JhcHBlclJlZixvbktleURvd246dGhpcy5faGFuZGxlS2V5RG93bix0YWJJbmRleDpmLC4uLigwLGMuZmlsdGVyRGF0YVByb3BzKSh0aGlzLnByb3BzKSwuLi4oMCxjLmZpbHRlckFyaWFQcm9wcykodGhpcy5wcm9wcyl9LHksbyYmbi5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6Zy5hcnJvd30sbi5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6Zy5hcnJvd1dyYXB9LG4uY3JlYXRlRWxlbWVudChsLlRvb2xXaWRnZXRDYXJldCx7ZHJvcHBlZDp3fSkpKSx0aGlzLnN0YXRlLmlzT3BlbmVkJiYodj9uLmNyZWF0ZUVsZW1lbnQocC5NYXRjaE1lZGlhLHtydWxlOnZ9LChlPT50aGlzLl9yZW5kZXJDb250ZW50KGUpKSk6dGhpcy5fcmVuZGVyQ29udGVudChhKSkpOm4uY3JlYXRlRWxlbWVudCgiZGl2Iix7aWQ6dCxjbGFzc05hbWU6QyxvbkNsaWNrOnM/dm9pZCAwOnRoaXMuX2hhbmRsZUNsaWNrLHRpdGxlOmQsImRhdGEtdG9vbHRpcC1ob3RrZXkiOm0scmVmOnRoaXMuX2hhbmRsZVdyYXBwZXJSZWYsImRhdGEtcm9sZSI6ImJ1dHRvbiIsdGFiSW5kZXg6ZixvbktleURvd246dGhpcy5faGFuZGxlS2V5RG93biwiYXJpYS1oYXNwb3B1cCI6dGhpcy5wcm9wc1siYXJpYS1oYXNwb3B1cCJdLC4uLigwLGMuZmlsdGVyRGF0YVByb3BzKSh0aGlzLnByb3BzKX0seSxvJiZuLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpnLmFycm93fSxuLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpnLmFycm93V3JhcH0sbi5jcmVhdGVFbGVtZW50KGwuVG9vbFdpZGdldENhcmV0LHtkcm9wcGVkOnd9KSkpLHRoaXMuc3RhdGUuaXNPcGVuZWQmJih2P24uY3JlYXRlRWxlbWVudChwLk1hdGNoTWVkaWEse3J1bGU6dn0sKGU9PnRoaXMuX3JlbmRlckNvbnRlbnQoZSkpKTp0aGlzLl9yZW5kZXJDb250ZW50KGEpKSl9Y29tcG9uZW50RGlkVXBkYXRlKGUpeyF0aGlzLnByb3BzLmVuYWJsZVNjcm9sbENvbXBlbnNhdGlvbiYmZS5lbmFibGVTY3JvbGxDb21wZW5zYXRpb24mJih0aGlzLl9kZXN0cm95U2Nyb2xsQ29tcGVuc2F0aW9uT2JzZXJ2ZXIoKSx0aGlzLnNldFN0YXRlKHtzY3JvbGxDb21wZW5zYXRpb246bnVsbH0pKX1jb21wb25lbnRXaWxsVW5tb3VudCgpe3RoaXMuX2Rlc3Ryb3lTY3JvbGxDb21wZW5zYXRpb25PYnNlcnZlcigpfWNsb3NlKCl7dGhpcy5wcm9wcy5tZW51UmVmZXJlbmNlPy5jdXJyZW50Py5yZW1vdmVFdmVudExpc3RlbmVyKCJwb3B1cC1tZW51LWNsb3NlLWV2ZW50Iix0aGlzLl9vblBvcHVwQ2xvc2VPbkNsaWNrKSx0aGlzLl9oYW5kbGVUb2dnbGVEcm9wZG93bighMSl9Zm9jdXMoKXt0aGlzLl93cmFwcGVyUmVmPy5mb2N1cygpfXVwZGF0ZSgpe251bGwhPT10aGlzLl9jb250cm9sbGVyLmN1cnJlbnQmJnRoaXMuX2NvbnRyb2xsZXIuY3VycmVudC51cGRhdGUoKX1fcmVuZGVyQ29udGVudChlKXtjb25zdHttZW51RGF0YU5hbWU6dCxtaW5XaWR0aDpvLG1lbnVDbGFzc05hbWU6aSxkcmF3ZXJDbGFzc05hbWU6cixtZW51Um9sZTpzLG1heEhlaWdodDpsLGRyYXdlclBvc2l0aW9uOmM9IkJvdHRvbSIsY2hpbGRyZW46cCxub01vbWVudHVtQmFzZWRTY3JvbGw6bSxlbmFibGVTY3JvbGxDb21wZW5zYXRpb246Z309dGhpcy5wcm9wcyx7aXNPcGVuZWQ6dn09dGhpcy5zdGF0ZSxmPXtob3Jpem9udGFsTWFyZ2luOnRoaXMucHJvcHMuaG9yaXpvbnRhbE1hcmdpbnx8MCx2ZXJ0aWNhbE1hcmdpbjp0aGlzLnByb3BzLnZlcnRpY2FsTWFyZ2lufHwyLHZlcnRpY2FsQXR0YWNoRWRnZTp0aGlzLnByb3BzLnZlcnRpY2FsQXR0YWNoRWRnZSxob3Jpem9udGFsQXR0YWNoRWRnZTp0aGlzLnByb3BzLmhvcml6b250YWxBdHRhY2hFZGdlLHZlcnRpY2FsRHJvcERpcmVjdGlvbjp0aGlzLnByb3BzLnZlcnRpY2FsRHJvcERpcmVjdGlvbixob3Jpem9udGFsRHJvcERpcmVjdGlvbjp0aGlzLnByb3BzLmhvcml6b250YWxEcm9wRGlyZWN0aW9uLG1hdGNoQnV0dG9uQW5kTGlzdGJveFdpZHRoczp0aGlzLnByb3BzLm1hdGNoQnV0dG9uQW5kTGlzdGJveFdpZHRoc30sXz1Cb29sZWFuKHYmJmUmJmMpLHc9YihwKT9wKHtpc0RyYXdlcjpffSk6cDtyZXR1cm4gXz9uLmNyZWF0ZUVsZW1lbnQodS5EcmF3ZXJNYW5hZ2VyLG51bGwsbi5jcmVhdGVFbGVtZW50KGQuRHJhd2VyLHtjbGFzc05hbWU6cixyZWZlcmVuY2U6dGhpcy5wcm9wcy5kcmF3ZXJSZWZlcmVuY2Usb25DbG9zZTp0aGlzLl9oYW5kbGVDbG9zZSxwb3NpdGlvbjpjLCJkYXRhLW5hbWUiOnR9LHcpKTpuLmNyZWF0ZUVsZW1lbnQoYS5Qb3B1cE1lbnUse3JlZmVyZW5jZTp0aGlzLnByb3BzLm1lbnVSZWZlcmVuY2Usc2Nyb2xsV3JhcFJlZmVyZW5jZTpnP3RoaXMuX2hhbmRsZVNjcm9sbFdyYXBSZWY6dm9pZCAwLHJvbGU6cyxjb250cm9sbGVyOnRoaXMuX2NvbnRyb2xsZXIsY2xvc2VPbkNsaWNrT3V0c2lkZTp0aGlzLnByb3BzLmNsb3NlT25DbGlja091dHNpZGUsZG9Ob3RDbG9zZU9uOnRoaXMsaXNPcGVuZWQ6dixtaW5XaWR0aDpvLApvbkNsb3NlOnRoaXMuX2hhbmRsZUNsb3NlLHBvc2l0aW9uOigwLGguZ2V0UG9wdXBQb3NpdGlvbmVyKSh0aGlzLl93cmFwcGVyUmVmLGYpLGNsYXNzTmFtZTppLG1heEhlaWdodDpsLGRhdGFRYUlkOnQsdGFiSW5kZXg6ImRpdiIhPT10aGlzLnByb3BzLnRhZz8tMTp2b2lkIDAsb25PcGVuOnRoaXMuX2hhbmRsZU9wZW4sb25LZXlEb3duOnRoaXMucHJvcHMub25NZW51S2V5RG93bixvbkZvY3VzOnRoaXMuX2hhbmRsZU1lbnVGb2N1cyxub01vbWVudHVtQmFzZWRTY3JvbGw6bX0sZz9uLmNyZWF0ZUVsZW1lbnQoImRpdiIse3N0eWxlOnRoaXMuc3RhdGUuc2Nyb2xsQ29tcGVuc2F0aW9uP3ttYXJnaW5JbmxpbmVFbmQ6dGhpcy5zdGF0ZS5zY3JvbGxDb21wZW5zYXRpb259OnZvaWQgMH0sdyk6dyl9fWZ1bmN0aW9uIGIoZSl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIGV9Xy5kZWZhdWx0UHJvcHM9e2Fycm93OiEwLGNsb3NlT25DbGlja091dHNpZGU6ITAsdGhlbWU6Z319LDczMDAwOShlLHQsbyl7InVzZSBzdHJpY3QiO28uZCh0LHtUb29sYmFyOigpPT5kfSk7dmFyIG49byg3Nzk0NzQpLGk9bygxMzg2MzgpLHI9byg4MzM5MDMpLHM9bygyMzU3MjQpLGE9byg5ODM2MTYpLGw9bygzMjk2NjgpLGM9byg3ODc4OTUpLHU9byg0NTAxNDApO2NvbnN0IGQ9KDAsbi5mb3J3YXJkUmVmKSgoZnVuY3Rpb24oZSx0KXtjb25zdHtvbktleURvd246byxvcmllbnRhdGlvbjpkLGJsdXJPbkVzY0tleWRvd246aD0hMCxibHVyT25DbGljazpwPSEwLC4uLm19PWUsZz0oMCxjLnVzZUZ1bmN0aW9uYWxSZWZPYmplY3QpKHQpO3JldHVybigwLG4udXNlTGF5b3V0RWZmZWN0KSgoKCk9Pntjb25zdCBlPSgwLGkuZW5zdXJlTm90TnVsbCkoZy5jdXJyZW50KSx0PSgpPT57Y29uc3QgdD0oMCxhLnF1ZXJ5VGFiYmFibGVFbGVtZW50cykoZSkuc29ydChhLm5hdmlnYXRpb25PcmRlckNvbXBhcmF0b3IpO2lmKDA9PT10Lmxlbmd0aCl7Y29uc3RbdF09KDAsYS5xdWVyeUZvY3VzYWJsZUVsZW1lbnRzKShlKS5zb3J0KGEubmF2aWdhdGlvbk9yZGVyQ29tcGFyYXRvcik7aWYodm9pZCAwPT09dClyZXR1cm47KDAsbC5iZWNvbWVNYWluRWxlbWVudCkodCl9aWYodC5sZW5ndGg+MSl7Y29uc3RbLC4uLmVdPXQ7Zm9yKGNvbnN0IHQgb2YgZSkoMCxsLmJlY29tZVNlY29uZGFyeUVsZW1lbnQpKHQpfX07cmV0dXJuIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJrZXlib2FyZC1uYXZpZ2F0aW9uLWFjdGl2YXRpb24iLHQpLCgpPT53aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigia2V5Ym9hcmQtbmF2aWdhdGlvbi1hY3RpdmF0aW9uIix0KX0pLFtdKSxuLmNyZWF0ZUVsZW1lbnQoImRpdiIsey4uLnUuTW91c2VDbGlja0F1dG9CbHVySGFuZGxlci5hdHRyaWJ1dGVzKHApLC4uLm0scm9sZToidG9vbGJhciIsImFyaWEtb3JpZW50YXRpb24iOmQscmVmOmcsb25LZXlEb3duOigwLHIuY3JlYXRlU2FmZU11bHRpY2FzdEV2ZW50SGFuZGxlcikoKGZ1bmN0aW9uKGUpe2lmKGUuZGVmYXVsdFByZXZlbnRlZClyZXR1cm47aWYoIShkb2N1bWVudC5hY3RpdmVFbGVtZW50IGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpKXJldHVybjtjb25zdCB0PSgwLHMuaGFzaEZyb21FdmVudCkoZSk7aWYoaCYmMjc9PT10KXJldHVybiBlLnByZXZlbnREZWZhdWx0KCksdm9pZCBkb2N1bWVudC5hY3RpdmVFbGVtZW50LmJsdXIoKTtpZigidmVydGljYWwiIT09ZCYmMzchPT10JiYzOSE9PXQpcmV0dXJuO2lmKCJ2ZXJ0aWNhbCI9PT1kJiYzOCE9PXQmJjQwIT09dClyZXR1cm47Y29uc3Qgbz1lLmN1cnJlbnRUYXJnZXQsbj0oMCxhLnF1ZXJ5Rm9jdXNhYmxlRWxlbWVudHMpKG8pLnNvcnQoYS5uYXZpZ2F0aW9uT3JkZXJDb21wYXJhdG9yKTtpZigwPT09bi5sZW5ndGgpcmV0dXJuO2NvbnN0IGk9bi5pbmRleE9mKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQpO2lmKC0xPT09aSlyZXR1cm47ZS5wcmV2ZW50RGVmYXVsdCgpO2NvbnN0IHI9KCk9Pntjb25zdCBlPShpK24ubGVuZ3RoLTEpJW4ubGVuZ3RoOygwLGwuYmVjb21lU2Vjb25kYXJ5RWxlbWVudCkobltpXSksKDAsbC5iZWNvbWVNYWluRWxlbWVudCkobltlXSksbltlXS5mb2N1cygpfSxjPSgpPT57Y29uc3QgZT0oaStuLmxlbmd0aCsxKSVuLmxlbmd0aDsoMCxsLmJlY29tZVNlY29uZGFyeUVsZW1lbnQpKG5baV0pLCgwLGwuYmVjb21lTWFpbkVsZW1lbnQpKG5bZV0pLG5bZV0uZm9jdXMoKX07c3dpdGNoKCgwLGEubWFwS2V5Q29kZVRvRGlyZWN0aW9uKSh0KSl7Y2FzZSJpbmxpbmVQcmV2IjoidmVydGljYWwiIT09ZCYmcigpO2JyZWFrO2Nhc2UiaW5saW5lTmV4dCI6InZlcnRpY2FsIiE9PWQmJmMoKTticmVhaztjYXNlImJsb2NrUHJldiI6InZlcnRpY2FsIj09PWQmJnIoKTticmVhaztjYXNlImJsb2NrTmV4dCI6InZlcnRpY2FsIj09PWQmJmMoKX19KSxvKSwiZGF0YS10b29sdGlwLXNob3ctb24tZm9jdXMiOiJ0cnVlIn0pfSkpfSwxMzY2MyhlLHQsbyl7InVzZSBzdHJpY3QiO28uZCh0LHt1c2VFbnN1cmVkQ29udGV4dDooKT0+cn0pO3ZhciBuPW8oNzc5NDc0KSxpPW8oMTM4NjM4KTtmdW5jdGlvbiByKGUpe3JldHVybigwLGkuZW5zdXJlTm90TnVsbCkoKDAsbi51c2VDb250ZXh0KShlKSl9fSwxMDY5MDAoZSx0LG8peyJ1c2Ugc3RyaWN0IjtvLmQodCx7dXNlV2F0Y2hlZFZhbHVlUmVhZG9ubHk6KCk9PnJ9KTt2YXIgbj1vKDc3OTQ3NCksaT1vKDYxNjMxMSk7Y29uc3Qgcj0oZSx0PSExLG89W10pPT57Y29uc3Qgcj0id2F0Y2hlZFZhbHVlImluIGU/ZS53YXRjaGVkVmFsdWU6dm9pZCAwLHM9ImRlZmF1bHRWYWx1ZSJpbiBlP2UuZGVmYXVsdFZhbHVlOmUud2F0Y2hlZFZhbHVlLnZhbHVlKCksW2EsbF09KDAsbi51c2VTdGF0ZSkocj9yLnZhbHVlKCk6cyk7cmV0dXJuKHQ/aS51c2VJc29tb3JwaGljTGF5b3V0RWZmZWN0Om4udXNlRWZmZWN0KSgoKCk9PntpZihyKXtsKHIudmFsdWUoKSk7Y29uc3QgZT1lPT5sKGUpO3JldHVybiByLnN1YnNjcmliZShlKSwoKT0+ci51bnN1YnNjcmliZShlKX1yZXR1cm4oKT0+e319KSxbciwuLi5vXSksYX19LDEyODgxNChlLHQsbyl7InVzZSBzdHJpY3QiO28uZCh0LHsKUXVvdGVTZXNzaW9uU25hcHNob3RlcjooKT0+ZH0pO3ZhciBuPW8oOTQ4MzgwKSxpPW8oMTUwMTUwKSxyPW8oMjE0OTg3KSxzPW8oMTM4NjM4KSxhPW8oMzY3OTQ2KSxsPW8oOTcwNzc0KSxjPW8oMzA5MDUyKTtjb25zdCB1PW5ldyBNYXAoW1siY2hhbmdlIiwiY2giXSxbImxhc3RfcHJpY2UiLCJscCJdLFsiY2hhbmdlX3BlcmNlbnQiLCJjaHAiXSxbInVwZGF0ZV9tb2RlX3NlY29uZHMiLG51bGxdXSk7bmV3IE1hcChbWyJjaCIsImNoYW5nZSJdLFsibHAiLCJsYXN0X3ByaWNlIl0sWyJjaHAiLCJjaGFuZ2VfcGVyY2VudCJdXSk7Y2xhc3MgZHtjb25zdHJ1Y3RvcihlKXtpZih0aGlzLl9vblN5bWJvbERhdGE9bmV3IG4uRGVsZWdhdGUsdGhpcy5faW5jb21wbGV0ZT1uZXcgU2V0LHRoaXMuX3VwZGF0ZWRGaWVsZHM9bmV3IE1hcCx0aGlzLl9jb25uZWN0ZWQ9ITEsdGhpcy5fYmF0Y2hlcj1udWxsLHRoaXMuX2hhbmRsZXI9ZT0+e3N3aXRjaChlLm1ldGhvZCl7Y2FzZSJjb25uZWN0ZWQiOnRoaXMuX2Nvbm5lY3RlZHx8KHRoaXMuX2Nvbm5lY3RlZD0hMCx0aGlzLl9oYW5kbGVDb25uZWN0ZWQoKSk7YnJlYWs7Y2FzZSJxdW90ZV9zeW1ib2xfZGF0YSI6dGhpcy5fY29ubmVjdGVkJiZ0aGlzLl9oYW5kbGVTeW1ib2xEYXRhKGUucGFyYW1zWzBdKTticmVhaztjYXNlInF1b3RlX2NvbXBsZXRlZCI6dGhpcy5fY29ubmVjdGVkJiZ0aGlzLl9oYW5kbGVDb21wbGV0ZURhdGEoZS5wYXJhbXNbMF0pO2JyZWFrO2Nhc2UiZGlzY29ubmVjdGVkIjp0aGlzLl9jb25uZWN0ZWQmJih0aGlzLl9jb25uZWN0ZWQ9ITEsdGhpcy5fYmF0Y2hlcj1udWxsKX19LDA9PT1lLmZpZWxkcy5sZW5ndGgpdGhyb3cgbmV3IEVycm9yKCdTdXBwb3J0IGZvciBlbXB0eSAiZmllbGRzIiBhcnJheSBpcyBub3QgaW1wbGVtZW50ZWQnKTtjb25zdHtwcm92aWRlcjp0PWwuUXVvdGVTZXNzaW9ufT1lO3RoaXMuX2ZpZWxkcz1uZXcgU2V0KGUuZmllbGRzKSx0aGlzLl9zZXNzaW9uPW5ldyB0KGUuYXBpLFsic25hcHNob3RlciIsZS5uYW1lLCgwLGkucmFuZG9tSGFzaCkoKV0uZmlsdGVyKEJvb2xlYW4pLmpvaW4oIl8iKSksdGhpcy5fc2Vzc2lvbi5jb25uZWN0KHRoaXMuX2hhbmRsZXIpfWdldFNuYXBzaG90U3luYyhlLHQpe2NvbnN0IG89ZC5jYWNoZS5nZXQoZSk7cmV0dXJuIG8mJnRoaXMuX2lzU25hcHNob3RSZWFkeShvLHtmaWVsZHM6dCx0aW1lc3RhbXA6bnVsbH0pP286bnVsbH1nZXRTbmFwc2hvdHNGb3JBbGxTeW5jKGUsdCl7cmV0dXJuIGUubWFwKChlPT50aGlzLmdldFNuYXBzaG90U3luYyhlLHQpKSl9Z2V0U25hcHNob3QoZSx0LG8pe2NvbnN0IG49bz8uc2lnbmFsPz9udWxsLGk9bz8uZnJlc2huZXNzLGE9dm9pZCAwIT09aT9EYXRlLm5vdygpLWk6bnVsbDtyZXR1cm4gbmV3IFByb21pc2UoKChvLGkpPT57aWYobiYmbi5hYm9ydGVkKXRocm93KDAsci5jcmVhdGVBYm9ydEVycm9yKSgpO2NvbnN0IGw9KCk9Pnt0aGlzLl9vblN5bWJvbERhdGEudW5zdWJzY3JpYmUodGhpcyxjKSxpKCgwLHIuY3JlYXRlQWJvcnRFcnJvcikoKSl9LGM9KGk9ZSk9PntpZihpIT09ZSlyZXR1cm47Y29uc3Qgcj1kLmNhY2hlLmdldChlKTtyJiZ0aGlzLl9pc1NuYXBzaG90UmVhZHkocix7dGltZXN0YW1wOmEsc3ltYm9sOmUsZmllbGRzOnR9KSYmKHRoaXMuX29uU3ltYm9sRGF0YS51bnN1YnNjcmliZSh0aGlzLGMpLG4/LnJlbW92ZUV2ZW50TGlzdGVuZXIoImFib3J0IixsKSxvKHIpKX07aWYoISgoKT0+e2NvbnN0IG49ZC5jYWNoZS5nZXQoZSk7aWYoIW4pcmV0dXJuITE7Y29uc3QgaT0oMCxzLmVuc3VyZU5vdE51bGwpKGQuY2FjaGUuZ2V0VGltZXMoZSkpO3JldHVybiEhdGhpcy5faXNTbmFwc2hvdFJlYWR5KG4se2ZpZWxkczp0LHN5bWJvbDplLHRpbWVzdGFtcDphLHRpbWVzOml9KSYmKG8obiksITApfSkoKSYmKG4/LmFkZEV2ZW50TGlzdGVuZXIoImFib3J0IixsLHtvbmNlOiEwfSksdGhpcy5fb25TeW1ib2xEYXRhLnN1YnNjcmliZSh0aGlzLGMpLCF0aGlzLl9pbmNvbXBsZXRlLmhhcyhlKSkpe2lmKHRoaXMuX3VwZGF0ZWRGaWVsZHMuc2V0KGUsbmV3IFNldCksdGhpcy5faW5jb21wbGV0ZS5hZGQoZSksIXRoaXMuX2Nvbm5lY3RlZClyZXR1cm47aWYobnVsbD09PXRoaXMuX2JhdGNoZXIpe2NvbnN0IHQ9dGhpcy5fYmF0Y2hlcj17c3ltYm9sczpuZXcgU2V0KFtlXSkscHJvbWlzZTpQcm9taXNlLnJlc29sdmUoKS50aGVuKCgoKT0+e3RoaXMuX2JhdGNoZXI9PT10JiYodGhpcy5fc2Vzc2lvbi5xdW90ZUFkZFN5bWJvbHMoWy4uLnQuc3ltYm9sc10pLHRoaXMuX2JhdGNoZXI9bnVsbCl9KSl9fWVsc2UgdGhpcy5fYmF0Y2hlci5zeW1ib2xzLmFkZChlKX19KSl9Z2V0U25hcHNob3RzRm9yQWxsKGUsdCxvKXtyZXR1cm4gUHJvbWlzZS5hbGwoZS5tYXAoKGU9PnRoaXMuZ2V0U25hcHNob3QoZSx0LG8pKSkpfXN0YXRpYyByZWxheChlKXtyZXR1cm4gZX1zdGF0aWMgaXNTdWNjZXNzKGUpe3JldHVybiJlcnJvciIhPT1lLnN0YXR1c31zdGF0aWMgaGFzQWxsRmllbGRzKGUsdCl7Zm9yKGNvbnN0IG8gb2YgQXJyYXkuZnJvbSh0KSlpZighZS5oYXNPd25Qcm9wZXJ0eShvKSlyZXR1cm4hMTtyZXR1cm4hMH1faXNTbmFwc2hvdFJlYWR5KGUsdCl7Y29uc3R7ZmllbGRzOm8sdGltZXN0YW1wOm4sdGltZXM6aSxzeW1ib2w6cn09dDtyZXR1cm4iZXJyb3IiPT09ZS5zdGF0dXN8fChudWxsIT09biYmaT90aGlzLl9pc0FsbEZpZWxkc1VwVG9EYXRlKGUsaSxvLG4pOm51bGwhPT1uJiZyP3RoaXMuX2lzQWxsRmllbGRzVXBkYXRlZChlLHIsbyk6dGhpcy5faGFzQWxsRmllbGRzKGUsbykpfV9pc0FsbEZpZWxkc1VwZGF0ZWQoZSx0LG8pe2lmKCJlcnJvciI9PT1lLnN0YXR1cylyZXR1cm4hMDtjb25zdCBuPXRoaXMuX3VwZGF0ZWRGaWVsZHMuZ2V0KHQpO2lmKCFufHwhbi5zaXplKXJldHVybiExO2Zvcihjb25zdCBlIG9mIEFycmF5LmZyb20obykpaWYoIW4uaGFzKGUpKXJldHVybiExO3JldHVybiEwfV9oYXNBbGxGaWVsZHMoZSx0KXtyZXR1cm4gZC5oYXNBbGxGaWVsZHMoZS52YWx1ZXMsQXJyYXkuZnJvbSh0KSl9X2lzQWxsRmllbGRzVXBUb0RhdGUoZSx0LG8sbil7CmlmKCJlcnJvciI9PT1lLnN0YXR1cylyZXR1cm4hMDtpZighdClyZXR1cm4hMTtmb3IoY29uc3QgZSBvZiBBcnJheS5mcm9tKG8pKXtjb25zdCBvPXQuZ2V0KGUpO2lmKCF0LmhhcyhlKXx8dm9pZCAwPT09bylyZXR1cm4hMTtpZihvPG4pcmV0dXJuITF9cmV0dXJuITB9X2hhbmRsZUNvbm5lY3RlZCgpe2lmKHRoaXMuX2ZpZWxkcy5zaXplPjApe2NvbnN0IGU9Wy4uLnRoaXMuX2ZpZWxkc10uZmxhdE1hcCgoZT0+e2NvbnN0IHQ9dS5nZXQoZSk7cmV0dXJuIG51bGwhPT10P3Q/P2U6W119KSk7dGhpcy5fc2Vzc2lvbi5xdW90ZVNldEZpZWxkcyhlKX10aGlzLl9pbmNvbXBsZXRlLnNpemU+MCYmdGhpcy5fc2Vzc2lvbi5xdW90ZUFkZFN5bWJvbHMoWy4uLnRoaXMuX2luY29tcGxldGVdKX1faGFuZGxlQ29tcGxldGVEYXRhKGUpe2NvbnN0IHQ9ZC5jYWNoZS5nZXQoZSk/P3tzeW1ib2xuYW1lOmUsc3RhdHVzOiJvayIsdmFsdWVzOnt9fTtkLmNhY2hlLnVwZGF0ZSh0LHRoaXMuX2ZpZWxkcywhMCksdGhpcy5fdXBkYXRlZEZpZWxkcy5zZXQoZSx0aGlzLl9maWVsZHMpLHRoaXMuX3Nlc3Npb24ucXVvdGVSZW1vdmVTeW1ib2xzKFtlXSksdGhpcy5faW5jb21wbGV0ZS5kZWxldGUoZSksdGhpcy5fb25TeW1ib2xEYXRhLmZpcmUoZSl9X2hhbmRsZVN5bWJvbERhdGEoZSl7KDAsYS5ub3JtYWxpemVVcGRhdGVNb2RlKShlLnZhbHVlcyksZC5jYWNoZS51cGRhdGUoZSx0aGlzLl9maWVsZHMsITEpO2NvbnN0IHQ9ZS5zeW1ib2xuYW1lLG89KDAscy5lbnN1cmVEZWZpbmVkKSh0aGlzLl91cGRhdGVkRmllbGRzLmdldCh0KSksbj1uZXcgU2V0KG8pO2Zvcihjb25zdCB0IG9mIHRoaXMuX2ZpZWxkcyllLnZhbHVlcy5oYXNPd25Qcm9wZXJ0eSh0KSYmbi5hZGQodCk7dGhpcy5fdXBkYXRlZEZpZWxkcy5zZXQodCxuKSwiZXJyb3IiPT09ZS5zdGF0dXM/dGhpcy5faGFuZGxlQ29tcGxldGVEYXRhKHQpOnRoaXMuX29uU3ltYm9sRGF0YS5maXJlKHQpfX1kLmNhY2hlPWMuUVVPVEVfRklFTERTX0NBQ0hFfSw2MjM1MTEoZSx0LG8peyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKGUpe2xldCB0PW51bGw7cmV0dXJuKCk9PihudWxsPT09dCYmKHQ9ZSgpKSx0KX1vLmQodCx7bGF6eVZhbHVlOigpPT5ufSl9LDc4ODAxKGUsdCxvKXsidXNlIHN0cmljdCI7by5kKHQse3Nlc3Npb25UaGVuTG9jYWw6KCk9Pm4sc2Vzc2lvblRoZW5UdlNldHRpbmdzOigpPT5pfSk7dmFyIG49e307by5yKG4pLG8uZChuLHtnZXQ6KCk9PmYsbG9nZ2VyOigpPT5nLHNldDooKT0+dn0pO3ZhciBpPXt9O28ucihpKSxvLmQoaSx7Z2V0OigpPT5DLGxvZ2dlcjooKT0+YixzZXQ6KCk9Pnd9KTt2YXIgcj1vKDIyMTA2MSkscz1vKDkzMjM2NSksYT1vKDIzNzM2OSksbD1vKDc3NjE3MyksYz1vKDgzOTQyNiksdT1vKDU2OTM5OCk7Y29uc3QgZD0oMCxyLmdldExvZ2dlcikoIkxpYi5TZXNzaW9uU2NvcGVkU2V0dGluZ3MiKTtjb25zdCBoPSgwLGMuZGVmYXVsdCkoKCgpPT57cmV0dXJuIHZvaWQgMCE9PXdpbmRvdy5UVkQ/bnVsbCE9KGU9d2luZG93LlRWRC5zZXNzaW9uU3RvcmFnZSkmJiJvYmplY3QiPT10eXBlb2YgZSYmImdldEl0ZW0iaW4gZSYmImZ1bmN0aW9uIj09dHlwZW9mIGUuZ2V0SXRlbSYmInNldEl0ZW0iaW4gZSYmImZ1bmN0aW9uIj09dHlwZW9mIGUuc2V0SXRlbSYmKDAsdS5pc0ZlYXR1cmVFbmFibGVkKSgidXNlX2Rlc2t0b3Bfc2Vzc2lvbl9zdG9yYWdlIik/d2luZG93LlRWRC5zZXNzaW9uU3RvcmFnZTpudWxsOigwLHUuaXNGZWF0dXJlRW5hYmxlZCkoInVzZV9icm93c2VyX3Nlc3Npb25fc3RvcmFnZSIpP3dpbmRvdy5zZXNzaW9uU3RvcmFnZTpudWxsO3ZhciBlfSkpO2Z1bmN0aW9uIHAoZSx0KXtjb25zdCBvPWgoKTtpZihudWxsIT09byl0cnl7by5zZXRJdGVtKGUsdCl9Y2F0Y2goZSl7ZD8ubG9nV2Fybihgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSBmYWlsZWQsIGJlY2F1c2Ugb2YgZXhjZXB0aW9uOiAkeygwLGEuZ2V0RXJyb3JNZXNzYWdlKShlKX1gKX19ZnVuY3Rpb24gbShlKXtjb25zdCB0PWgoKTtyZXR1cm4gbnVsbD09PXQ/bnVsbDp0LmdldEl0ZW0oZSl9Y29uc3QgZz0oMCxyLmdldExvZ2dlcikoIkxpYi5TZXNzaW9uU2NvcGVkU2V0dGluZ3MiKTtmdW5jdGlvbiB2KGUsdCl7dHJ5e2NvbnN0IG89KDAsbC5zZXR0aW5nVmFsdWVUb1N0cmluZykodCk7cChlLG8pLHMuVFZMb2NhbFN0b3JhZ2Uuc2V0SXRlbShlLG8pfWNhdGNoKGUpe2c/LmxvZ1dhcm4oYHNlc3Npb25UaGVuTG9jYWwuc2V0IGZhaWxlZDogJHsoMCxhLmdldEVycm9yTWVzc2FnZSkoZSl9YCl9fWZ1bmN0aW9uIGYoZSx0LG8pe3RyeXtyZXR1cm4oMCxsLnBhcnNlU2V0dGluZ1ZhbHVlKShmdW5jdGlvbihlLHQpe2xldCBvPW0oZSk7bnVsbD09PW8mJihvPXMuVFZMb2NhbFN0b3JhZ2UuZ2V0SXRlbShlKT8/dCxwKGUsbykpO3JldHVybiBvfShlLCgwLGwuc2V0dGluZ1ZhbHVlVG9TdHJpbmcpKHQpKSxvKX1jYXRjaChlKXtyZXR1cm4gZz8ubG9nV2Fybihgc2Vzc2lvblRoZW5Mb2NhbC5nZXQgaXMgYWJvdXQgdG8gcmV0dXJuIHRoZSBkZWZhdWx0IHZhbHVlIGR1ZSB0byBlcnJvcjogJHsoMCxhLmdldEVycm9yTWVzc2FnZSkoZSl9YCksdH19dmFyIF89byg5MzA1NjYpO2NvbnN0IGI9KDAsci5nZXRMb2dnZXIpKCJMaWIuU2Vzc2lvblNjb3BlZFNldHRpbmdzIik7ZnVuY3Rpb24gdyhlLHQpe3RyeXtjb25zdCBvPSgwLGwuc2V0dGluZ1ZhbHVlVG9TdHJpbmcpKHQpO3AoZSxvKSxfLnNldFZhbHVlKGUsbyl9Y2F0Y2goZSl7Yj8ubG9nV2Fybihgc2Vzc2lvblRoZW5UdlNldHRpbmdzLnNldCBmYWlsZWQ6ICR7KDAsYS5nZXRFcnJvck1lc3NhZ2UpKGUpfWApfX1mdW5jdGlvbiBDKGUsdCxvKXt0cnl7cmV0dXJuKDAsbC5wYXJzZVNldHRpbmdWYWx1ZSkoZnVuY3Rpb24oZSx0KXtsZXQgbz1tKGUpO251bGw9PT1vJiYobz1fLmdldFZhbHVlKGUpPz90LHAoZSxvKSk7cmV0dXJuIG99KGUsKDAsbC5zZXR0aW5nVmFsdWVUb1N0cmluZykodCkpLG8pfWNhdGNoKGUpewpyZXR1cm4gYj8ubG9nV2Fybihgc2Vzc2lvblRoZW5UdlNldHRpbmdzLmdldCBpcyBhYm91dCB0byByZXR1cm4gdGhlIGRlZmF1bHQgdmFsdWUgZHVlIHRvIGVycm9yOiAkeygwLGEuZ2V0RXJyb3JNZXNzYWdlKShlKX1gKSx0fX19LDc3NjE3MyhlLHQsbyl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4oZSx0KXtjb25zdCBvPUpTT04ucGFyc2UoZSk7aWYodm9pZCAwPT09dClyZXR1cm4gbztpZih0KG8pKXJldHVybiBvO3Rocm93IG5ldyBUeXBlRXJyb3IoIlBhcnNlZCB2YWx1ZSBkb2VzIG5vdCBzYXRpc2Z5IHRoZSBwcm92aWRlZCB2YWxpZGF0aW9uIHByZWRpY2F0ZSIpfWZ1bmN0aW9uIGkoZSl7cmV0dXJuIEpTT04uc3RyaW5naWZ5KGUpfW8uZCh0LHtwYXJzZVNldHRpbmdWYWx1ZTooKT0+bixzZXR0aW5nVmFsdWVUb1N0cmluZzooKT0+aX0pfSw0Njg0OTMoZSx0LG8peyJ1c2Ugc3RyaWN0IjtvLmQodCx7dXNlUHJvbWlzZTooKT0+cn0pO3ZhciBuPW8oNzc5NDc0KSxpPW8oMjE0OTg3KTtmdW5jdGlvbiByKGUsdCxvKXtjb25zdFtyLHNdPSgwLG4udXNlU3RhdGUpKG51bGwpO3JldHVybigwLG4udXNlRWZmZWN0KSgoKCk9Pntjb25zdCBvPW5ldyBBYm9ydENvbnRyb2xsZXI7bGV0IG49bnVsbDtyZXR1cm4oMCxpLnJlc3BlY3RBYm9ydCkoby5zaWduYWwsZSgpKS50aGVuKChlPT5zKCgoKT0+bj1lKSkpKS5jYXRjaChpLnNraXBBYm9ydEVycm9yKSwoKT0+e28uYWJvcnQoKSxuJiZ0JiZ0KG4pfX0pLG8/Wy4uLm9dOnZvaWQgMCkscn19LDEwMjU2NyhlLHQsbyl7InVzZSBzdHJpY3QiO28uZCh0LHt1c2VQcm9wZXJ0eTooKT0+aX0pO3ZhciBuPW8oNzc5NDc0KTtjb25zdCBpPWU9Pntjb25zdFt0LG9dPSgwLG4udXNlU3RhdGUpKGUudmFsdWUoKSk7cmV0dXJuKDAsbi51c2VFZmZlY3QpKCgoKT0+e2NvbnN0IHQ9ZT0+e28oZS52YWx1ZSgpKX07dChlKTtjb25zdCBuPXt9O3JldHVybiBlLnN1YnNjcmliZShuLHQpLCgpPT5lLnVuc3Vic2NyaWJlKG4sdCl9KSxbZV0pLHR9fSw5Mjk0ODgoZSx0LG8peyJ1c2Ugc3RyaWN0IjtvLmQodCx7aXNTZXBhcmF0b3JJdGVtOigpPT5pfSk7dmFyIG49byg5MDEwMjIpO2Z1bmN0aW9uIGkoZSl7cmV0dXJuKDAsbi5pc1NlcGFyYXRvckl0ZW0pKGUpfX0sMzIwNTUoZSx0LG8peyJ1c2Ugc3RyaWN0IjtvLnIodCksby5kKHQse3Jlc29sdmVTeW1ib2xOYW1lOigpPT5jLHJlc29sdmVTeW1ib2xOYW1lRm9yQWxsOigpPT51LHJlc29sdmVTeW1ib2xOYW1lRm9yQWxsRGlzdGluY3Q6KCk9PmQsc25hcHNob3RlcjooKT0+YX0pO3ZhciBuPW8oMTI4ODE0KSxpPW8oNjIzNTExKSxyPW8oOTI5NDg4KTtjb25zdCBzPW5ldyBTZXQoWyJwcm9fbmFtZSIsImJhc2VfbmFtZSIsInNob3J0X25hbWUiLCJkZXNjcmlwdGlvbiIsInR5cGUiLCJleGNoYW5nZSIsInR5cGVzcGVjcyIsImxpc3RlZF9leGNoYW5nZSIsImxhc3RfcHJpY2UiLCJjb3VudHJ5X2NvZGUiLCJwcm92aWRlcl9pZCIsInN5bWJvbC1wcmltYXJ5bmFtZSIsImxvZ29pZCIsImxvZ28iLCJiYXNlLWN1cnJlbmN5LWxvZ29pZCIsImN1cnJlbmN5LWxvZ29pZCIsInNvdXJjZS1sb2dvaWQiLCJ1cGRhdGVfbW9kZSIsInVwZGF0ZV9tb2RlX3NlY29uZHMiLCJwcm9fcGVybSIsInNvdXJjZSIsInNvdXJjZTIiLCJwcmljZXNjYWxlIiwibWlubW92IiwiZnJhY3Rpb25hbCIsInZpc2libGUtcGxvdHMtc2V0IiwibG9jYWxfZGVzY3JpcHRpb24iLCJsYW5ndWFnZSIsInVuZGVybHlpbmctc3ltYm9sIl0pLGE9KDAsaS5sYXp5VmFsdWUpKCgoKT0+bmV3IG4uUXVvdGVTZXNzaW9uU25hcHNob3Rlcih7bmFtZToiYmFzaWMtc3ltYm9sLXF1b3RlcyIsZmllbGRzOlsuLi5zXSxhcGk6d2luZG93LkNoYXJ0QXBpSW5zdGFuY2V9KSkpLGw9bmV3IFNldChbInByb19uYW1lIl0pO2FzeW5jIGZ1bmN0aW9uIGMoZSl7cmV0dXJuKDAsci5pc1NlcGFyYXRvckl0ZW0pKGUpP2U6YSgpLmdldFNuYXBzaG90KGUsbCkudGhlbigoZT0+ImVycm9yIj09PWUuc3RhdHVzP2Uuc3ltYm9sbmFtZTplLnZhbHVlcy5wcm9fbmFtZSkpfWZ1bmN0aW9uIHUoZSl7cmV0dXJuIFByb21pc2UuYWxsKGUubWFwKGMpKX1mdW5jdGlvbiBkKGUpe3JldHVybiB1KGUpLnRoZW4oKGU9PlsuLi5uZXcgU2V0KGUpXSkpfX0sODUxNDU4KGUsdCxvKXsidXNlIHN0cmljdCI7by5kKHQse2ZhY3Rvck91dEJyYWNlczooKT0+cCxnZXRUb2tlbkF0UG9zOigpPT5oLGlzQmluYXJ5T3BlcmF0b3I6KCk9PnUsaXNTcHJlYWQ6KCk9PmQscGFyc2VUb2tlbjooKT0+ZyxzaG9ydE5hbWU6KCk9Pm0sc3ltYm9sVG9rZW5Fc2NhcGVSZTooKT0+YSx0b2tlbml6ZTooKT0+Y30pO3ZhciBuLGk9byg5MDEwMjIpLHI9byg1NjkzOTgpOyFmdW5jdGlvbihlKXtlLlN5bWJvbD0ic3ltYm9sIixlLkluY29tcGxldGVTeW1ib2w9ImluY29tcGxldGVTeW1ib2wiLGUuTnVtYmVyPSJudW1iZXIiLGUuSW5jb21wbGV0ZU51bWJlcj0iaW5jb21wbGV0ZU51bWJlciIsZS5TZXBhcmF0b3JQcmVmaXg9InNlcGFyYXRvclByZWZpeCIsZS5PcGVuQnJhY2U9Im9wZW5CcmFjZSIsZS5DbG9zZUJyYWNlPSJjbG9zZUJyYWNlIixlLlBsdXM9InBsdXMiLGUuTWludXM9Im1pbnVzIixlLk11bHRpcGx5PSJtdWx0aXBseSIsZS5EaXZpZGU9ImRpdmlkZSIsZS5Qb3dlcj0icG93ZXIiLGUuV2hpdGVzcGFjZT0id2hpdGVzcGFjZSIsZS5VbnBhcnNlZD0idW5wYXJzZWQifShufHwobj17fSkpO2NvbnN0IHM9Lyg/OlteLStcLypeXHNdJ3xbYS16QS1aMC05X1x1MDM3MC1cdTFGRkZfXHUyRTgwLVx1RkZGRl0pKD86W14tK1wvKl5cc10nfFthLXpBLVowLTlfXHUwMDIwXHUwMzcwLVx1MUZGRl9cdTJFODAtXHVGRkZGXyF8Oi4mXSkqfCcuKz8nLyxhPS9bK1wtLypdLyxsPShlPSgwLHIuaXNGZWF0dXJlRW5hYmxlZCkoImFsbG93X3RyYWlsaW5nX3doaXRlc3BhY2VfaW5fbnVtYmVyX3Rva2VuIikpPT4oe251bWJlcjplPy9cZCsoPzpcLlxkKnwoPyFbYS16QS1aMC05XyE6LiZdKSkoPzpccyooPz1ccyokKSk/fFwuXGQrKD86XHMqKD89XHMqJCkpPy86L1xkKyg/OlwuXGQqfCg/IVthLXpBLVowLTlfITouJl0pKXxcLlxkKy8sCmluY29tcGxldGVOdW1iZXI6L1wuLyxzeW1ib2w6cyxpbmNvbXBsZXRlU3ltYm9sOi8nW14nXSovLHNlcGFyYXRvclByZWZpeDppLlNFUEFSQVRPUl9QUkVGSVgsb3BlbkJyYWNlOiIoIixjbG9zZUJyYWNlOiIpIixwbHVzOiIrIixtaW51czoiLSIsbXVsdGlwbHk6IioiLGRpdmlkZToiLyIscG93ZXI6Il4iLHdoaXRlc3BhY2U6L1tcMC1ceDIwXHNdKy8sdW5wYXJzZWQ6bnVsbH0pO2Z1bmN0aW9uIGMoZSx0PWwoKSl7aWYoIWUpcmV0dXJuW107Y29uc3Qgbz1bXSxuPU9iamVjdC5rZXlzKHQpO2xldCBpO2NvbnN0IHI9KChlPWwoKSk9Pm5ldyBSZWdFeHAoT2JqZWN0LnZhbHVlcyhlKS5tYXAoKGU9PntyZXR1cm4gbnVsbD09PWU/IiI6YCgkeyJzdHJpbmciPT10eXBlb2YgZT8odD1lLHQucmVwbGFjZSgvW1xeJCgpW1xde30qKz98XFxdL2csIlxcJCYiKSk6ZS5zb3VyY2V9KWA7dmFyIHR9KSkuZmlsdGVyKChlPT4iIiE9PWUpKS5jb25jYXQoIi4iKS5qb2luKCJ8IiksImciKSkodCk7Zm9yKDtpPXIuZXhlYyhlKTspe2xldCBlPSExO2ZvcihsZXQgdD1uLmxlbmd0aDt0LS07KWlmKGlbdCsxXSl7blt0XSYmby5wdXNoKHt2YWx1ZTppW3QrMV0sdHlwZTpuW3RdLHByZWNlZGVuY2U6MCxvZmZzZXQ6aS5pbmRleH0pLGU9ITA7YnJlYWt9ZXx8by5wdXNoKHt2YWx1ZTppWzBdLHR5cGU6InVucGFyc2VkIixwcmVjZWRlbmNlOjAsb2Zmc2V0OmkuaW5kZXh9KX1yZXR1cm4gb31mdW5jdGlvbiB1KGUpe3JldHVybiJwbHVzIj09PWV8fCJtaW51cyI9PT1lfHwibXVsdGlwbHkiPT09ZXx8ImRpdmlkZSI9PT1lfHwicG93ZXIiPT09ZX1mdW5jdGlvbiBkKGUpe3JldHVybiBlLmxlbmd0aD4xJiZlLnNvbWUoKGU9PnUoZS50eXBlKSkpfWZ1bmN0aW9uIGgoZSx0KXtmb3IobGV0IG89MDtvPGUubGVuZ3RoO28rKyl7Y29uc3Qgbj1lW29dLGk9InN5bWJvbCI9PT1uLnR5cGV8fCJpbmNvbXBsZXRlU3ltYm9sIj09PW4udHlwZXx8Im51bWJlciI9PT1uLnR5cGU7aWYobi5vZmZzZXQ8PXQmJnQ8PW4ub2Zmc2V0K24udmFsdWUubGVuZ3RoJiZpKXJldHVybiBufXJldHVybiBudWxsfWZ1bmN0aW9uIHAoZSl7ZT1mdW5jdGlvbihlKXtjb25zdCB0PVtdO2Zvcihjb25zdCBvIG9mIGUpIndoaXRlc3BhY2UiIT09by50eXBlJiZ0LnB1c2gobyk7cmV0dXJuIHR9KGUpO2NvbnN0IHQ9W10sbz1bXTtsZXQgbjtmb3IobGV0IGk9MDtpPGUubGVuZ3RoO2krKyl7Y29uc3Qgcj1lW2ldO3N3aXRjaChyLnR5cGUpe2Nhc2UicGx1cyI6Y2FzZSJtaW51cyI6Y2FzZSJtdWx0aXBseSI6Y2FzZSJkaXZpZGUiOmNhc2UicG93ZXIiOm8ubGVuZ3RoJiZvW28ubGVuZ3RoLTFdLm1pblByZWNlZGVuY2U+ci5wcmVjZWRlbmNlJiYob1tvLmxlbmd0aC0xXS5taW5QcmVjZWRlbmNlPXIucHJlY2VkZW5jZSk7YnJlYWs7Y2FzZSJvcGVuQnJhY2UiOm49e21pblByZWNlZGVuY2U6MS8wLG9wZW5CcmFjZUluZGV4Oml9LG8ucHVzaChuKTticmVhaztjYXNlImNsb3NlQnJhY2UiOntpZihuPW8ucG9wKCksIW4pYnJlYWs7Y29uc3Qgcj1lW24ub3BlbkJyYWNlSW5kZXgtMV0scz1lW2krMV0sYT1yJiYoInBsdXMiPT09ci50eXBlfHwibXVsdGlwbHkiPT09ci50eXBlKTsoIXUocz8udHlwZSl8fHM/LnByZWNlZGVuY2U8PW4ubWluUHJlY2VkZW5jZSkmJighdShyPy50eXBlKXx8cj8ucHJlY2VkZW5jZTxuPy5taW5QcmVjZWRlbmNlfHxyPy5wcmVjZWRlbmNlPT09bj8ubWluUHJlY2VkZW5jZSYmYSkmJih0LnVuc2hpZnQobi5vcGVuQnJhY2VJbmRleCksdC5wdXNoKGkpLG8ubGVuZ3RoJiZvW28ubGVuZ3RoLTFdLm1pblByZWNlZGVuY2U+bi5taW5QcmVjZWRlbmNlJiYob1tvLmxlbmd0aC0xXS5taW5QcmVjZWRlbmNlPW4ubWluUHJlY2VkZW5jZSkpfX19Zm9yKGxldCBvPXQubGVuZ3RoO28tLTspZS5zcGxpY2UodFtvXSwxKTtyZXR1cm4gZX1mdW5jdGlvbiBtKGUpe3JldHVybiBwKGMoZSkpLnJlZHVjZSgoKGUsdCk9PntpZigic3ltYm9sIiE9PXQudHlwZSlyZXR1cm4gZSt0LnZhbHVlO2NvbnN0WyxvXT1nKHQpO3JldHVybiBvP2UrbzplfSksIiIpfWZ1bmN0aW9uIGcoZSl7Y29uc3QgdD0vXic/KD86KFtBLVowLTlfXSspOik/KC4qPyknPyQvaS5leGVjKGUudmFsdWUpO3JldHVybiBudWxsPT09dD9bdm9pZCAwLHZvaWQgMF06W3RbMV0sdFsyXV19fSw0ODMyNDcoZSx0LG8peyJ1c2Ugc3RyaWN0IjtvLmQodCx7Q29sb3JQaWNrZXI6KCk9Pk99KTt2YXIgbj1vKDc3OTQ3NCksaT1vKDkxNDQ4Nykscj1vLm4oaSkscz1vKDE4NTI3MSksYT1vKDkwODAzNCksbD1vKDI5NjAyMyksYz1vKDEzNDY3KSx1PW8oMTM4NjM4KSxkPW8oMzE4OTc0KSxoPW8oODM1OTY0KSxwPW8oMTUzNzM0KSxtPW8oMjQyNjU3KSxnPW8oMTgyMzA4KSx2PW8oNTU4OTc5KSxmPW8oMzQzMzEpO2Z1bmN0aW9uIF8oZSl7Y29uc3R7Y29sb3I6dCxzZWxlY3RlZDppLG9uU2VsZWN0OmEsb25Td2F0Y2hSZW1vdmU6bH09ZSxbYyxfXT0oMCxuLnVzZVN0YXRlKSghMSksW2Isd109KDAsZy51c2VSb3ZpbmdUYWJpbmRleEVsZW1lbnQpKG51bGwpLEM9Qm9vbGVhbihsKSYmIWQuQ2hlY2tNb2JpbGUuYW55KCk7cmV0dXJuIG4uY3JlYXRlRWxlbWVudChuLkZyYWdtZW50LG51bGwsbi5jcmVhdGVFbGVtZW50KCJidXR0b24iLHtyZWY6YixzdHlsZTp0P3tjb2xvcjp0fTp2b2lkIDAsY2xhc3NOYW1lOnIoKShmLnN3YXRjaCxjJiZmLmhvdmVyLGkmJmYuc2VsZWN0ZWQsIXQmJmYuZW1wdHksU3RyaW5nKHQpLnRvTG93ZXJDYXNlKCk9PT1tLndoaXRlJiZmLndoaXRlKSxvbkNsaWNrOmZ1bmN0aW9uKCl7YSh0KX0sb25Db250ZXh0TWVudTpDP3k6dm9pZCAwLHRhYkluZGV4OncsImRhdGEtcm9sZSI6InN3YXRjaCJ9KSxDJiZuLmNyZWF0ZUVsZW1lbnQoaC5Qb3B1cE1lbnUse2lzT3BlbmVkOmMsb25DbG9zZTp5LHBvc2l0aW9uOmZ1bmN0aW9uKCl7Y29uc3QgZT0oMCx1LmVuc3VyZU5vdE51bGwpKGIuY3VycmVudCkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7cmV0dXJue3g6ZS5sZWZ0LHk6ZS50b3ArZS5oZWlnaHQrNH19LG9uQ2xpY2tPdXRzaWRlOnl9LG4uY3JlYXRlRWxlbWVudChwLlBvcHVwTWVudUl0ZW0sewpjbGFzc05hbWU6Zi5jb250ZXh0SXRlbSxsYWJlbDpzLnQobnVsbCx2b2lkIDAsbyg4MjE1MykpLGljb246dixvbkNsaWNrOmZ1bmN0aW9uKCl7eSgpLCgwLHUuZW5zdXJlRGVmaW5lZCkobCkoKX0sZG9udENsb3NlUG9wdXA6ITB9KSkpO2Z1bmN0aW9uIHkoKXtfKCFjKX19ZnVuY3Rpb24gYihlKXtjb25zdHtjb2xvcnM6dCxjb2xvcjpvLGNoaWxkcmVuOmksb25TZWxlY3Q6cixvblJlbW92ZUN1c3RvbUNvbG9yOnN9PWU7aWYoIXQpcmV0dXJuIG51bGw7Y29uc3QgYT1vPygwLGMucGFyc2VSZ2IpKFN0cmluZyhvKSk6dm9pZCAwLHU9KDAsbC5kZWZhdWx0KSh0LDEwKTtyZXR1cm4gbi5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6Zi5zd2F0Y2hlc30sdS5tYXAoKChlLHQpPT5uLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpmLnJvdywiZGF0YS1yb2xlIjoicm93IixrZXk6dH0sZS5tYXAoKChlLG8pPT5uLmNyZWF0ZUVsZW1lbnQoXyx7a2V5OlN0cmluZyhlKStvLGNvbG9yOmUsc2VsZWN0ZWQ6YSYmKDAsYy5hcmVFcXVhbFJnYikoYSwoMCxjLnBhcnNlUmdiKShTdHJpbmcoZSkpKSxvblNlbGVjdDpkLG9uU3dhdGNoUmVtb3ZlOnM/KCk9PmZ1bmN0aW9uKGUsdCl7Y29uc3Qgbz0xMCplK3Q7cz8uKG8pfSh0LG8pOnZvaWQgMH0pKSkpKSksaSk7ZnVuY3Rpb24gZChlKXtyJiZyKGUpfX12YXIgdz1vKDQ4OTk4NyksQz1vKDY3NDc0OSk7ZnVuY3Rpb24geShlKXtjb25zdCB0PWBJbnZhbGlkIFJHQiBjb2xvcjogJHtlfWA7aWYobnVsbD09PWUpdGhyb3cgbmV3IEVycm9yKHQpO2NvbnN0IG89ZS5tYXRjaCgvXiM/KFthLWYwLTldezJ9KShbYS1mMC05XXsyfSkoW2EtZjAtOV17Mn0pJC9pKTtpZihudWxsPT09byl0aHJvdyBuZXcgRXJyb3IodCk7Y29uc3RbLG4saSxyXT1vO2lmKCFufHwhaXx8IXIpdGhyb3cgbmV3IEVycm9yKHQpO2NvbnN0IHM9cGFyc2VJbnQobiwxNikvMjU1LGE9cGFyc2VJbnQoaSwxNikvMjU1LGw9cGFyc2VJbnQociwxNikvMjU1LGM9TWF0aC5tYXgocyxhLGwpLHU9TWF0aC5taW4ocyxhLGwpO2xldCBkO2NvbnN0IGg9YyxwPWMtdSxtPTA9PT1jPzA6cC9jO2lmKGM9PT11KWQ9MDtlbHNle3N3aXRjaChjKXtjYXNlIHM6ZD0oYS1sKS9wKyhhPGw/NjowKTticmVhaztjYXNlIGE6ZD0obC1zKS9wKzI7YnJlYWs7Y2FzZSBsOmQ9KHMtYSkvcCs0O2JyZWFrO2RlZmF1bHQ6ZD0wfWQvPTZ9cmV0dXJue2g6ZCxzOm0sdjpofX12YXIgVD1vKDU4NzE2OCksRT1vKDIzNTcyNCkseD1vKDY0MDc0NCksUz1vKDMxNTA3KTtjb25zdCBMPVszNywzOSwzOCw0MF0saz0uMDE7Y2xhc3MgQSBleHRlbmRzIG4uUHVyZUNvbXBvbmVudHtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5fY29udGFpbmVyPW51bGwsdGhpcy5fcmVmQ29udGFpbmVyPWU9Pnt0aGlzLl9jb250YWluZXI9ZX0sdGhpcy5faGFuZGxlUG9zaXRpb249ZT0+e2NvbnN0e2hzdjp7aDp0fSxvbkNoYW5nZTpvfT10aGlzLnByb3BzO2lmKCFvKXJldHVybjtjb25zdCBuPSgwLHUuZW5zdXJlTm90TnVsbCkodGhpcy5fY29udGFpbmVyKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxpPWUuY2xpZW50WC1uLmxlZnQscj1lLmNsaWVudFktbi50b3A7byh7aDp0LHM6KDAseC5jbGFtcCkoaS9uLndpZHRoLDAsMSksdjooMCx4LmNsYW1wKSgxLXIvbi5oZWlnaHQsMCwxKX0pfSx0aGlzLl9oYW5kbGVLZXlEb3duPWU9Pntjb25zdHtoc3Y6e2g6dCxzOm8sdjpufSxvbkNoYW5nZTppfT10aGlzLnByb3BzLHI9KDAsRS5oYXNoRnJvbUV2ZW50KShlKTtpZighaXx8IUwuaW5jbHVkZXMocikpcmV0dXJuO2lmKDM3PT09cnx8Mzk9PT1yKXtyZXR1cm4gdm9pZCBpKHtoOnQsczooMCx4LmNsYW1wKSgzNz09PXI/by1rOm8raywwLDEpLHY6bn0pfWkoe2g6dCxzOm8sdjooMCx4LmNsYW1wKSg0MD09PXI/bi1rOm4raywwLDEpfSl9LHRoaXMuX21vdXNlRG93bj1lPT57d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLHRoaXMuX21vdXNlVXApLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLHRoaXMuX21vdXNlTW92ZSl9LHRoaXMuX21vdXNlVXA9ZT0+e3dpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLHRoaXMuX21vdXNlTW92ZSksd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLHRoaXMuX21vdXNlVXApLHRoaXMuX2hhbmRsZVBvc2l0aW9uKGUpfSx0aGlzLl9tb3VzZU1vdmU9KDAsVC5kZWZhdWx0KSh0aGlzLl9oYW5kbGVQb3NpdGlvbiwxMDApLHRoaXMuX2hhbmRsZVRvdWNoPWU9Pnt0aGlzLl9oYW5kbGVQb3NpdGlvbihlLm5hdGl2ZUV2ZW50LnRvdWNoZXNbMF0pfX1yZW5kZXIoKXtjb25zdHtjbGFzc05hbWU6ZSxoc3Y6e2g6dCxzOm8sdjppfX09dGhpcy5wcm9wcyxzPWBoc2woJHszNjAqdH0sIDEwMCUsIDUwJSlgO3JldHVybiBuLmNyZWF0ZUVsZW1lbnQoImRpdiIse3RhYkluZGV4OjAsY2xhc3NOYW1lOnIoKShTLmFjY2Vzc2libGUsZSksb25LZXlEb3duOnRoaXMuX2hhbmRsZUtleURvd259LG4uY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOlMuc2F0dXJhdGlvbixzdHlsZTp7YmFja2dyb3VuZENvbG9yOnN9LHJlZjp0aGlzLl9yZWZDb250YWluZXIsb25Nb3VzZURvd246dGhpcy5fbW91c2VEb3duLG9uVG91Y2hTdGFydDp0aGlzLl9oYW5kbGVUb3VjaCxvblRvdWNoTW92ZTp0aGlzLl9oYW5kbGVUb3VjaH0sbi5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6Uy5wb2ludGVyLHN0eWxlOntsZWZ0OjEwMCpvKyIlIix0b3A6MTAwKigxLWkpKyIlIn19KSkpfX12YXIgTT1vKDM4OTUwNSk7Y2xhc3MgTiBleHRlbmRzIG4uUHVyZUNvbXBvbmVudHtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5fY29udGFpbmVyPW51bGwsdGhpcy5fcmVmQ29udGFpbmVyPWU9Pnt0aGlzLl9jb250YWluZXI9ZX0sdGhpcy5faGFuZGxlUG9zaXRpb249ZT0+e2NvbnN0e2hzdjp7czp0LHY6b30sb25DaGFuZ2U6bn09dGhpcy5wcm9wcztpZighbilyZXR1cm47Y29uc3QgaT0oMCwKdS5lbnN1cmVOb3ROdWxsKSh0aGlzLl9jb250YWluZXIpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLHI9ZS5jbGllbnRZLWkudG9wO24oe2g6KDAseC5jbGFtcCkoci9pLmhlaWdodCwwLDEpLHM6dCx2Om99KX0sdGhpcy5faGFuZGxlS2V5RG93bj1lPT57Y29uc3R7aHN2OntoOnQsczpvLHY6bn0sb25DaGFuZ2U6aX09dGhpcy5wcm9wcyxyPSgwLEUuaGFzaEZyb21FdmVudCkoZSk7aWYoIWl8fDM4IT09ciYmNDAhPT1yKXJldHVybjtpKHtoOigwLHguY2xhbXApKDM4PT09cj90LS4wMTp0Ky4wMSwwLDEpLHM6byx2Om59KX0sdGhpcy5fbW91c2VEb3duPWU9Pnt3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsdGhpcy5fbW91c2VVcCksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIsdGhpcy5fbW91c2VNb3ZlKX0sdGhpcy5fbW91c2VVcD1lPT57d2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIsdGhpcy5fbW91c2VNb3ZlKSx3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsdGhpcy5fbW91c2VVcCksdGhpcy5faGFuZGxlUG9zaXRpb24oZSl9LHRoaXMuX21vdXNlTW92ZT0oMCxULmRlZmF1bHQpKHRoaXMuX2hhbmRsZVBvc2l0aW9uLDEwMCksdGhpcy5faGFuZGxlVG91Y2g9ZT0+e3RoaXMuX2hhbmRsZVBvc2l0aW9uKGUubmF0aXZlRXZlbnQudG91Y2hlc1swXSl9fXJlbmRlcigpe2NvbnN0e2NsYXNzTmFtZTplLGhzdjp7aDp0fX09dGhpcy5wcm9wcztyZXR1cm4gbi5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6cigpKE0uaHVlLE0uYWNjZXNzaWJsZSxlKSx0YWJJbmRleDowLG9uS2V5RG93bjp0aGlzLl9oYW5kbGVLZXlEb3dufSxuLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpNLnBvaW50ZXJDb250YWluZXIscmVmOnRoaXMuX3JlZkNvbnRhaW5lcixvbk1vdXNlRG93bjp0aGlzLl9tb3VzZURvd24sb25Ub3VjaFN0YXJ0OnRoaXMuX2hhbmRsZVRvdWNoLG9uVG91Y2hNb3ZlOnRoaXMuX2hhbmRsZVRvdWNofSxuLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpNLnBvaW50ZXIsc3R5bGU6e3RvcDoxMDAqdCsiJSJ9fSkpKX19dmFyIEQ9byg5OTEwMjEpO2NvbnN0IFA9IiMwMDAwMDAiLEI9cy50KG51bGwse2NvbnRleHQ6IkNvbG9yIFBpY2tlciJ9LG8oODAzNDc4KSk7Y2xhc3MgSSBleHRlbmRzIG4uUHVyZUNvbXBvbmVudHtjb25zdHJ1Y3RvcihlKXtzdXBlcihlKSx0aGlzLl9pbnB1dFJlZj1uLmNyZWF0ZVJlZigpLHRoaXMuX2hhbmRsZUhTVj1lPT57Y29uc3QgdD1mdW5jdGlvbihlKXtjb25zdHtoOnQsczpvLHY6bn09ZTtsZXQgaSxyLHM7Y29uc3QgYT1NYXRoLmZsb29yKDYqdCksbD02KnQtYSxjPW4qKDEtbyksdT1uKigxLWwqbyksZD1uKigxLSgxLWwpKm8pO3N3aXRjaChhJTYpe2Nhc2UgMDppPW4scj1kLHM9YzticmVhaztjYXNlIDE6aT11LHI9bixzPWM7YnJlYWs7Y2FzZSAyOmk9YyxyPW4scz1kO2JyZWFrO2Nhc2UgMzppPWMscj11LHM9bjticmVhaztjYXNlIDQ6aT1kLHI9YyxzPW47YnJlYWs7Y2FzZSA1Omk9bixyPWMscz11O2JyZWFrO2RlZmF1bHQ6aT0wLHI9MCxzPTB9cmV0dXJuIiMiK1syNTUqaSwyNTUqciwyNTUqc10ubWFwKChlPT4oIjAiK01hdGgucm91bmQoZSkudG9TdHJpbmcoMTYpKS5yZXBsYWNlKC8uKz8oW2EtZjAtOV17Mn0pJC9pLCIkMSIpKSkuam9pbigiIil9KGUpfHxQO3RoaXMuc2V0U3RhdGUoe2NvbG9yOnQsaW5wdXRDb2xvcjpGKHQpLGhzdjplfSksdGhpcy5wcm9wcy5vblNlbGVjdCh0KX0sdGhpcy5faGFuZGxlSW5wdXQ9ZT0+e2NvbnN0IHQ9RihlLmN1cnJlbnRUYXJnZXQudmFsdWUpO3RyeXtjb25zdCBlPXkodCksbz1gIyR7dH1gO3RoaXMuc2V0U3RhdGUoe2NvbG9yOm8saW5wdXRDb2xvcjp0LGhzdjplfSksdGhpcy5wcm9wcy5vblNlbGVjdChvKX1jYXRjaChlKXt0aGlzLnNldFN0YXRlKHtpbnB1dENvbG9yOnR9KX19LHRoaXMuX2hhbmRsZUFkZENvbG9yPSgpPT50aGlzLnByb3BzLm9uQWRkKHRoaXMuc3RhdGUuY29sb3IpO2NvbnN0IHQ9ZS5jb2xvcnx8UDt0aGlzLnN0YXRlPXtjb2xvcjp0LGlucHV0Q29sb3I6Rih0KSxoc3Y6eSh0KX19Y29tcG9uZW50RGlkTW91bnQoKXtkLkNoZWNrTW9iaWxlLmFueSgpfHx0aGlzLl9pbnB1dFJlZi5jdXJyZW50Py5mb2N1cygpfXJlbmRlcigpe2NvbnN0e2NvbG9yOmUsaHN2OnQsaW5wdXRDb2xvcjpvfT10aGlzLnN0YXRlO3JldHVybiBuLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpELmNvbnRhaW5lcn0sbi5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6RC5mb3JtfSxuLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpyKCkoRC5zd2F0Y2gsU3RyaW5nKGUpLnRvTG93ZXJDYXNlKCk9PT1tLndoaXRlJiZELndoaXRlKSxzdHlsZTp7YmFja2dyb3VuZENvbG9yOmV9fSksbi5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6RC5pbnB1dFdyYXB9LG4uY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZTpELmlucHV0SGFzaH0sIiMiKSxuLmNyZWF0ZUVsZW1lbnQoImlucHV0Iix7cmVmOnRoaXMuX2lucHV0UmVmLHR5cGU6InRleHQiLGNsYXNzTmFtZTpELmlucHV0LHZhbHVlOm8sb25DaGFuZ2U6dGhpcy5faGFuZGxlSW5wdXR9KSksbi5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6RC5idXR0b25XcmFwfSxuLmNyZWF0ZUVsZW1lbnQoQy5CdXR0b24se3NpemU6InMiLG9uQ2xpY2s6dGhpcy5faGFuZGxlQWRkQ29sb3J9LEIpKSksbi5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6RC5odWVTYXR1cmF0aW9uV3JhcH0sbi5jcmVhdGVFbGVtZW50KEEse2NsYXNzTmFtZTpELnNhdHVyYXRpb24saHN2OnQsb25DaGFuZ2U6dGhpcy5faGFuZGxlSFNWfSksbi5jcmVhdGVFbGVtZW50KE4se2NsYXNzTmFtZTpELmh1ZSxoc3Y6dCxvbkNoYW5nZTp0aGlzLl9oYW5kbGVIU1Z9KSkpfX1mdW5jdGlvbiBGKGUpe3JldHVybiBlLnJlcGxhY2UoL14jLywiIil9dmFyIFc9bygzNzM1MjcpO2NvbnN0IFI9cy50KG51bGwse2NvbnRleHQ6IkNvbG9yIFBpY2tlciIKfSxvKDIwNjExNCkpLFY9cy50KG51bGwse2NvbnRleHQ6IkNvbG9yIFBpY2tlciJ9LG8oNzczMDkpKTtmdW5jdGlvbiBPKGUpe2NvbnN0e2NvbG9yOnQsb3BhY2l0eTpvLHNlbGVjdEN1c3RvbTppLHNlbGVjdE9wYWNpdHk6cyxjdXN0b21Db2xvcnM6bCxvblJlbW92ZUN1c3RvbUNvbG9yOmMsb25Ub2dnbGVDdXN0b206dSxvbk9wYWNpdHlDaGFuZ2U6ZCxtZW51Omh9PWUsW3AsZ109KDAsbi51c2VTdGF0ZSkoITEpLHY9Im51bWJlciI9PXR5cGVvZiBvP286MSxbZixfXT0oMCxhLnVzZVJvd3NOYXZpZ2F0aW9uKSgpO3JldHVybigwLG4udXNlTGF5b3V0RWZmZWN0KSgoKCk9PntoJiZoLnVwZGF0ZSgpfSksW3MsaF0pLHA/bi5jcmVhdGVFbGVtZW50KEkse2NvbG9yOnQsb25TZWxlY3Q6QyxvbkFkZDpmdW5jdGlvbih0KXtnKCExKSx1Py4oITEpO2NvbnN0e29uQWRkQ29sb3I6b309ZTtvJiZvKHQpfX0pOm4uY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOlcuY29udGFpbmVyfSxuLmNyZWF0ZUVsZW1lbnQoImRpdiIse3JlZjpmLG9uS2V5RG93bjpffSxuLmNyZWF0ZUVsZW1lbnQoYix7Y29sb3JzOm0uYmFzaWMsY29sb3I6dCxvblNlbGVjdDpDfSksbi5jcmVhdGVFbGVtZW50KGIse2NvbG9yczptLmV4dGVuZGVkLGNvbG9yOnQsb25TZWxlY3Q6Q30pLG4uY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOlcuc2VwYXJhdG9yfSksbi5jcmVhdGVFbGVtZW50KGIse2NvbG9yczpsLGNvbG9yOnQsb25TZWxlY3Q6QyxvblJlbW92ZUN1c3RvbUNvbG9yOmN9LGkmJm4uY3JlYXRlRWxlbWVudChuLkZyYWdtZW50LG51bGwsbD8ubGVuZ3RoP24uY3JlYXRlRWxlbWVudCgiYnV0dG9uIix7dGl0bGU6UixvbkNsaWNrOnksY2xhc3NOYW1lOnIoKShXLmN1c3RvbUJ1dHRvbixXLmFjY2Vzc2libGUsImFwcGx5LWNvbW1vbi10b29sdGlwIiksdGFiSW5kZXg6LTF9KTpuLmNyZWF0ZUVsZW1lbnQoImRpdiIseyJkYXRhLXJvbGUiOiJyb3cifSxuLmNyZWF0ZUVsZW1lbnQoImJ1dHRvbiIse3RpdGxlOlIsb25DbGljazp5LGNsYXNzTmFtZTpyKCkoVy5jdXN0b21CdXR0b24sVy5hY2Nlc3NpYmxlLCJhcHBseS1jb21tb24tdG9vbHRpcCIpLHRhYkluZGV4Oi0xfSkpKSkpLHMmJm4uY3JlYXRlRWxlbWVudChuLkZyYWdtZW50LG51bGwsbi5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6Vy5zZWN0aW9uVGl0bGV9LFYpLG4uY3JlYXRlRWxlbWVudCh3Lk9wYWNpdHkse2NvbG9yOnQsb3BhY2l0eTp2LG9uQ2hhbmdlOmZ1bmN0aW9uKGUpe2QmJmQoZSl9fSkpKTtmdW5jdGlvbiBDKHQpe2NvbnN0e29uQ29sb3JDaGFuZ2U6b309ZTtvJiZvKHQscCl9ZnVuY3Rpb24geShlKXtnKCEwKSx1Py4oITApfX19LDQ4OTk4NyhlLHQsbyl7InVzZSBzdHJpY3QiO28uZCh0LHtPcGFjaXR5OigpPT51fSk7dmFyIG49byg3Nzk0NzQpLGk9byg5MTQ0ODcpLHI9by5uKGkpLHM9bygxMzg2MzgpLGE9byg2NDA3NDQpLGw9bygyMzU3MjQpLGM9byg2MjAyNzApO2NsYXNzIHUgZXh0ZW5kcyBuLlB1cmVDb21wb25lbnR7Y29uc3RydWN0b3IoZSl7c3VwZXIoZSksdGhpcy5fY29udGFpbmVyPW51bGwsdGhpcy5fcG9pbnRlcj1udWxsLHRoaXMuX3JhZj1udWxsLHRoaXMuX3JlZkNvbnRhaW5lcj1lPT57dGhpcy5fY29udGFpbmVyPWV9LHRoaXMuX3JlZlBvaW50ZXI9ZT0+e3RoaXMuX3BvaW50ZXI9ZX0sdGhpcy5faGFuZGxlUG9zaXRpb249ZT0+e251bGw9PT10aGlzLl9yYWYmJih0aGlzLl9yYWY9cmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgoKT0+e2NvbnN0IHQ9KDAscy5lbnN1cmVOb3ROdWxsKSh0aGlzLl9jb250YWluZXIpLG89KDAscy5lbnN1cmVOb3ROdWxsKSh0aGlzLl9wb2ludGVyKSxuPXQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksaT1vLm9mZnNldFdpZHRoLHI9ZS5jbGllbnRYLWkvMi1uLmxlZnQsbD0oMCxhLmNsYW1wKShyLyhuLndpZHRoLWkpLDAsMSk7dGhpcy5zZXRTdGF0ZSh7aW5wdXRPcGFjaXR5Ok1hdGgucm91bmQoMTAwKmwpLnRvU3RyaW5nKCl9KSx0aGlzLnByb3BzLm9uQ2hhbmdlKGwpLHRoaXMuX3JhZj1udWxsfSkpKX0sdGhpcy5fb25TbGlkZXJDbGljaz1lPT57dGhpcy5faGFuZGxlUG9zaXRpb24oZS5uYXRpdmVFdmVudCksdGhpcy5fZHJhZ1N1YnNjcmliZSgpfSx0aGlzLl9tb3VzZVVwPWU9Pnt0aGlzLnNldFN0YXRlKHtpc1BvaW50ZXJEcmFnZ2VkOiExfSksdGhpcy5fZHJhZ1Vuc3Vic2NyaWJlKCksdGhpcy5faGFuZGxlUG9zaXRpb24oZSl9LHRoaXMuX21vdXNlTW92ZT1lPT57dGhpcy5zZXRTdGF0ZSh7aXNQb2ludGVyRHJhZ2dlZDohMH0pLHRoaXMuX2hhbmRsZVBvc2l0aW9uKGUpfSx0aGlzLl9vblRvdWNoU3RhcnQ9ZT0+e3RoaXMuX2hhbmRsZVBvc2l0aW9uKGUubmF0aXZlRXZlbnQudG91Y2hlc1swXSl9LHRoaXMuX2hhbmRsZVRvdWNoPWU9Pnt0aGlzLnNldFN0YXRlKHtpc1BvaW50ZXJEcmFnZ2VkOiEwfSksdGhpcy5faGFuZGxlUG9zaXRpb24oZS5uYXRpdmVFdmVudC50b3VjaGVzWzBdKX0sdGhpcy5faGFuZGxlVG91Y2hFbmQ9KCk9Pnt0aGlzLnNldFN0YXRlKHtpc1BvaW50ZXJEcmFnZ2VkOiExfSl9LHRoaXMuX2hhbmRsZUlucHV0PWU9Pntjb25zdCB0PWUuY3VycmVudFRhcmdldC52YWx1ZSxvPU51bWJlcih0KS8xMDA7dGhpcy5zZXRTdGF0ZSh7aW5wdXRPcGFjaXR5OnR9KSxOdW1iZXIuaXNOYU4obyl8fG8+MXx8dGhpcy5wcm9wcy5vbkNoYW5nZShvKX0sdGhpcy5faGFuZGxlS2V5RG93bj1lPT57Y29uc3QgdD0oMCxsLmhhc2hGcm9tRXZlbnQpKGUpO2lmKDM3IT09dCYmMzkhPT10KXJldHVybjtlLnByZXZlbnREZWZhdWx0KCk7Y29uc3Qgbz1OdW1iZXIodGhpcy5zdGF0ZS5pbnB1dE9wYWNpdHkpOzM3PT09dCYmMCE9PW8mJnRoaXMuX2NoYW5nZU9wYWNpdHkoby0xKSwzOT09PXQmJjEwMCE9PW8mJnRoaXMuX2NoYW5nZU9wYWNpdHkobysxKX0sdGhpcy5zdGF0ZT17aW5wdXRPcGFjaXR5Ok1hdGgucm91bmQoMTAwKmUub3BhY2l0eSkudG9TdHJpbmcoKSxpc1BvaW50ZXJEcmFnZ2VkOiExfX1jb21wb25lbnRXaWxsVW5tb3VudCgpewpudWxsIT09dGhpcy5fcmFmJiYoY2FuY2VsQW5pbWF0aW9uRnJhbWUodGhpcy5fcmFmKSx0aGlzLl9yYWY9bnVsbCksdGhpcy5fZHJhZ1Vuc3Vic2NyaWJlKCl9cmVuZGVyKCl7Y29uc3R7Y29sb3I6ZSxvcGFjaXR5OnQsaGlkZUlucHV0Om8sZGlzYWJsZWQ6aX09dGhpcy5wcm9wcyx7aW5wdXRPcGFjaXR5OnMsaXNQb2ludGVyRHJhZ2dlZDphfT10aGlzLnN0YXRlLGw9e2NvbG9yOmV8fHZvaWQgMH07cmV0dXJuIG4uY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOmMub3BhY2l0eX0sbi5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6cigpKGMub3BhY2l0eVNsaWRlcixjLmFjY2Vzc2libGUpLHN0eWxlOmwsdGFiSW5kZXg6aT8tMTowLHJlZjp0aGlzLl9yZWZDb250YWluZXIsb25Nb3VzZURvd246dGhpcy5fb25TbGlkZXJDbGljayxvblRvdWNoU3RhcnQ6dGhpcy5fb25Ub3VjaFN0YXJ0LG9uVG91Y2hNb3ZlOnRoaXMuX2hhbmRsZVRvdWNoLG9uVG91Y2hFbmQ6dGhpcy5faGFuZGxlVG91Y2hFbmQsb25LZXlEb3duOnRoaXMuX2hhbmRsZUtleURvd24sImFyaWEtZGlzYWJsZWQiOml9LG4uY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOmMub3BhY2l0eVNsaWRlckdyYWRpZW50LHN0eWxlOntiYWNrZ3JvdW5kSW1hZ2U6YGxpbmVhci1ncmFkaWVudCg5MGRlZywgdHJhbnNwYXJlbnQsICR7ZX0pYH19KSxuLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpjLm9wYWNpdHlQb2ludGVyV3JhcH0sbi5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6cigpKGMucG9pbnRlcixhJiZjLmRyYWdnZWQpLHN0eWxlOntsZWZ0OjEwMCp0KyIlIn0scmVmOnRoaXMuX3JlZlBvaW50ZXJ9KSkpLCFvJiZuLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpjLm9wYWNpdHlJbnB1dFdyYXB9LG4uY3JlYXRlRWxlbWVudCgiaW5wdXQiLHt0eXBlOiJ0ZXh0IixjbGFzc05hbWU6Yy5vcGFjaXR5SW5wdXQsdmFsdWU6cyxvbkNoYW5nZTp0aGlzLl9oYW5kbGVJbnB1dH0pLG4uY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZTpjLm9wYWNpdHlJbnB1dFBlcmNlbnR9LCIlIikpKX1fZHJhZ1N1YnNjcmliZSgpe2NvbnN0IGU9KDAscy5lbnN1cmVOb3ROdWxsKSh0aGlzLl9jb250YWluZXIpLm93bmVyRG9jdW1lbnQ7ZSYmKGUuYWRkRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsdGhpcy5fbW91c2VVcCksZS5hZGRFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLHRoaXMuX21vdXNlTW92ZSkpfV9kcmFnVW5zdWJzY3JpYmUoKXtjb25zdCBlPSgwLHMuZW5zdXJlTm90TnVsbCkodGhpcy5fY29udGFpbmVyKS5vd25lckRvY3VtZW50O2UmJihlLnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIsdGhpcy5fbW91c2VNb3ZlKSxlLnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLHRoaXMuX21vdXNlVXApKX1fY2hhbmdlT3BhY2l0eShlKXt0aGlzLnNldFN0YXRlKHtpbnB1dE9wYWNpdHk6ZS50b1N0cmluZygpfSksdGhpcy5wcm9wcy5vbkNoYW5nZShlLzEwMCl9fX0sMjQyNjU3KGUsdCxvKXsidXNlIHN0cmljdCI7by5kKHQse2Jhc2ljOigpPT5hLGV4dGVuZGVkOigpPT5jLHdoaXRlOigpPT5pfSk7dmFyIG49byg1MDU1Nik7Y29uc3QgaT1uLmNvbG9yc1BhbGV0dGVbImNvbG9yLXdoaXRlIl0scj1bInJpcGUtcmVkIiwidGFuLW9yYW5nZSIsImJhbmFuYS15ZWxsb3ciLCJpZ3VhbmEtZ3JlZW4iLCJtaW50eS1ncmVlbiIsInNreS1ibHVlIiwidHYtYmx1ZSIsImRlZXAtYmx1ZSIsImdyYXBlcy1wdXJwbGUiLCJiZXJyeS1waW5rIl0scz1bMjAwLDMwMCw0MDAsNTAwLDYwMCw3MDAsODAwLDkwMF0ubWFwKChlPT5gY29sb3ItY29sZC1ncmF5LSR7ZX1gKSk7cy51bnNoaWZ0KCJjb2xvci13aGl0ZSIpLHMucHVzaCgiY29sb3ItYmxhY2siKSxyLmZvckVhY2goKGU9PntzLnB1c2goYGNvbG9yLSR7ZX0tNTAwYCl9KSk7Y29uc3QgYT1zLm1hcCgoZT0+bi5jb2xvcnNQYWxldHRlW2VdKSksbD1bXTtbMTAwLDIwMCwzMDAsNDAwLDcwMCw5MDBdLmZvckVhY2goKGU9PntyLmZvckVhY2goKHQ9PntsLnB1c2goYGNvbG9yLSR7dH0tJHtlfWApfSkpfSkpO2NvbnN0IGM9bC5tYXAoKGU9Pm4uY29sb3JzUGFsZXR0ZVtlXSkpfSwyMzEzMTYoZSx0LG8peyJ1c2Ugc3RyaWN0IjtvLmQodCx7RW1vamlMaXN0Q29udGVudDooKT0+bSxFbW9qaUxpc3RDb250ZW50Q29udGV4dDooKT0+cH0pO3ZhciBuPW8oNzc5NDc0KSxpPW8oNjgwOTE1KSxyPW8oOTE0NDg3KSxzPW8ubihyKSxhPW8oMzQ5MTI3KTtmdW5jdGlvbiBsKGUpe2NvbnN0e3RpdGxlOnQsY2xhc3NOYW1lOm99PWU7cmV0dXJuIG4uY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOnMoKShhLndyYXBwZXIsbyl9LHQpfXZhciBjPW8oODc5NDc4KSx1PW8oMTM2NjMpLGQ9byg5NjkxNjgpLGg9byg4NzU2NzkpO2NvbnN0IHA9bi5jcmVhdGVDb250ZXh0KG51bGwpO2Z1bmN0aW9uIG0oZSl7Y29uc3R7bGlzdFJlZjp0LG91dGVyUmVmOm8sZW1vamlHcm91cHM6cixlbW9qaVNpemU6cyxvblNlbGVjdDphLG9uQ29udGVudFJlbmRlcmVkOmwsSXRlbUNvbXBvbmVudDpjLFJvd0NvbXBvbmVudDp1LGhlaWdodDptfT1lOygwLG4udXNlRWZmZWN0KSgoKCk9PnQuY3VycmVudD8ucmVzZXRBZnRlckluZGV4KDAsITApKSxbcl0pO2NvbnN0IHY9KDAsbi51c2VDYWxsYmFjaykoKGU9PiJ0aXRsZSI9PT1yW2VdLnR5cGU/MzA6cyksW3Isc10pLGY9KDAsbi51c2VDYWxsYmFjaykoKCh7dmlzaWJsZVN0YXJ0SW5kZXg6ZX0pPT57Y29uc3R7cmVsYXRlZFRpdGxlOnR9PXJbZV07bCh0KX0pLFtyLGxdKSxfPU1hdGgubWluKG0tMTAyLHdpbmRvdy5pbm5lckhlaWdodC0xMDIpO3JldHVybiBuLmNyZWF0ZUVsZW1lbnQocC5Qcm92aWRlcix7dmFsdWU6KDAsbi51c2VNZW1vKSgoKCk9Pih7c2l6ZTpzLG9uU2VsZWN0OmEsSXRlbUNvbXBvbmVudDpjLFJvd0NvbXBvbmVudDp1fSkpLFtzLGEsYyx1XSl9LG4uY3JlYXRlRWxlbWVudChpLlZhcmlhYmxlU2l6ZUxpc3Qse2RpcmVjdGlvbjooMCxkLmlzUnRsKSgpPyJydGwiOiJsdHIiLGNsYXNzTmFtZTpoLmxpc3QscmVmOnQsCm91dGVyUmVmOm8sd2lkdGg6IjEwMCUiLGhlaWdodDpfLGl0ZW1EYXRhOnIsaXRlbUNvdW50OnIubGVuZ3RoLGNoaWxkcmVuOmcsb25JdGVtc1JlbmRlcmVkOmYsaXRlbVNpemU6dn0pKX1jb25zdCBnPW4ubWVtbygoZT0+e2NvbnN0e3N0eWxlOnQsaW5kZXg6byxkYXRhOml9PWUscj1pW29dLHtzaXplOnMsb25TZWxlY3Q6YSxJdGVtQ29tcG9uZW50OmQsUm93Q29tcG9uZW50Omg9Yy5FbW9qaXNSb3d9PSgwLHUudXNlRW5zdXJlZENvbnRleHQpKHApO3JldHVybiJ0aXRsZSI9PT1yLnR5cGU/bi5jcmVhdGVFbGVtZW50KCJkaXYiLHtzdHlsZTp0fSxuLmNyZWF0ZUVsZW1lbnQobCx7dGl0bGU6ci5yZWxhdGVkVGl0bGV9KSk6bi5jcmVhdGVFbGVtZW50KCJkaXYiLHtzdHlsZTp0fSxuLmNyZWF0ZUVsZW1lbnQoaCx7ZW1vamlzOnIuY29udGVudCxpdGVtU2l6ZTpzLG9uRW1vamlDbGljazphLEl0ZW1Db21wb25lbnQ6ZH0pKX0pKX0sODMzMzAwKGUsdCxvKXsidXNlIHN0cmljdCI7by5kKHQse0Vtb2ppTGlzdDooKT0+cH0pO3ZhciBuPW8oNzc5NDc0KSxpPW8oOTE0NDg3KSxyPW8ubihpKSxzPW8oNzE5NDI1KSxhPW8oNDk5NTM5KSxsPW8oMjMxMzE2KTt2YXIgYz1vKDMxODk3NCksdT1vKDkwODAzNCksZD1vKDczMTYzMSk7Y29uc3QgaD0zODtmdW5jdGlvbiBwKGUpe2NvbnN0e2NsYXNzTmFtZTp0LGVtb2ppczpvLG9uU2VsZWN0OmksSXRlbUNvbXBvbmVudDpwLFJvd0NvbXBvbmVudDptLGhlaWdodDpnLGNhdGVnb3J5OnYsZW1vamlTaXplOmY9aH09ZSxfPSgwLG4udXNlUmVmKShudWxsKSxiPSgwLG4udXNlUmVmKSghMSksW3csQ109KDAsdS51c2VSb3dzTmF2aWdhdGlvbikoKSxbeSxUXT0oMCxuLnVzZVN0YXRlKSgwKSxFPSgwLG4udXNlTWVtbykoKCgpPT5mdW5jdGlvbihlLHQpe2lmKDA9PT10KXJldHVybltdO2NvbnN0IG89W107cmV0dXJuIGUuZm9yRWFjaCgoKHt0aXRsZTplLGVtb2ppczpufSk9PntvLnB1c2goe3R5cGU6InRpdGxlIixyZWxhdGVkVGl0bGU6ZSxjb250ZW50OltlXX0pO2xldCBpPVtdO2Zvcihjb25zdCByIG9mIG4paS5sZW5ndGg8dD9pLnB1c2gocik6KG8ucHVzaCh7dHlwZToiZW1vamlSb3ciLHJlbGF0ZWRUaXRsZTplLGNvbnRlbnQ6aX0pLGk9W3JdKTtpLmxlbmd0aCYmby5wdXNoKHt0eXBlOiJlbW9qaVJvdyIscmVsYXRlZFRpdGxlOmUsY29udGVudDppfSl9KSksb30obyx5KSksW28seV0pLHg9KDAscy51c2VSZXNpemVPYnNlcnZlcikoKGZ1bmN0aW9uKGUpe2NvbnN0W3RdPWUse3dpZHRoOm99PXQuY29udGVudFJlY3Qsbj1NYXRoLmZsb29yKChvLTEyKS9mKTtUKG4pfSksW2ZdKTsoMCxuLnVzZUVmZmVjdCkoKCgpPT57RS5sZW5ndGgmJkEoMCl9KSxbdl0pO2NvbnN0W1MsTF09KDAsbi51c2VTdGF0ZSkoRVswXT8ucmVsYXRlZFRpdGxlfHwiIiksaz0oMCxuLnVzZUNhbGxiYWNrKSgoZT0+e2IuY3VycmVudHx8TChlKX0pLFtdKTtyZXR1cm4gbi5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6cigpKGQud3JhcHBlcix0KX0sbi5jcmVhdGVFbGVtZW50KGEuR3JvdXBUYWJzLHt0YWJzOm8sYWN0aXZlVGFiOlMsb25UYWJDbGljazpmdW5jdGlvbihlKXtMKGUpO0EoZnVuY3Rpb24oZSl7cmV0dXJuIEUuZmluZEluZGV4KCgoe3JlbGF0ZWRUaXRsZTp0LHR5cGU6b30pPT4idGl0bGUiPT09byYmdD09PWUpKX0oZSkpfX0pLG4uY3JlYXRlRWxlbWVudCgiZGl2Iix7cmVmOngsb25LZXlEb3duOkN9LG4uY3JlYXRlRWxlbWVudChsLkVtb2ppTGlzdENvbnRlbnQse2xpc3RSZWY6XyxvdXRlclJlZjp3LGVtb2ppR3JvdXBzOkUsZW1vamlTaXplOmYsb25TZWxlY3Q6aSxvbkNvbnRlbnRSZW5kZXJlZDprLEl0ZW1Db21wb25lbnQ6cCxSb3dDb21wb25lbnQ6bSxoZWlnaHQ6Z30pKSk7ZnVuY3Rpb24gQShlKXtjLkNoZWNrTW9iaWxlLmlPUygpJiZ3LmN1cnJlbnQmJih3LmN1cnJlbnQuc3R5bGUub3ZlcmZsb3c9ImhpZGRlbiIpLGIuY3VycmVudD0hMCxfLmN1cnJlbnQ/LnNjcm9sbFRvSXRlbShlLCJzdGFydCIpLHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKCk9PntfLmN1cnJlbnQ/LnNjcm9sbFRvSXRlbShlLCJzdGFydCIpLGMuQ2hlY2tNb2JpbGUuaU9TKCkmJncuY3VycmVudCYmKHcuY3VycmVudC5zdHlsZS5vdmVyZmxvdz0iYXV0byIpLGIuY3VycmVudD0hMX0pKX19fSw4Nzk0NzgoZSx0LG8peyJ1c2Ugc3RyaWN0IjtvLmQodCx7RW1vamlzUm93OigpPT5sfSk7dmFyIG49byg3Nzk0NzQpLGk9byg5MTQ0ODcpLHI9by5uKGkpLHM9byg3MTMxMjIpLGE9byg3ODUzMDEpO2NvbnN0IGw9bi5tZW1vKChlPT57Y29uc3R7ZW1vamlzOnQsaXRlbVNpemU6byxvbkVtb2ppQ2xpY2s6aSxJdGVtQ29tcG9uZW50OmwsY2xhc3NOYW1lOmN9PWU7cmV0dXJuIG4uY3JlYXRlRWxlbWVudCgiZGl2Iix7ImRhdGEtcm9sZSI6InJvdyIsY2xhc3NOYW1lOnIoKShhLndyYXBwZXIsYyl9LHQubWFwKChlPT5uLmNyZWF0ZUVsZW1lbnQocy5FbW9qaVdyYXAse2tleTplLGNsYXNzTmFtZTphLmVtb2ppSXRlbSxlbW9qaTplLHNpemU6byxvbkNsaWNrOmksSXRlbUNvbXBvbmVudDpsfSkpKSl9KSl9LDQ5OTUzOShlLHQsbyl7InVzZSBzdHJpY3QiO28uZCh0LHtHcm91cFRhYnM6KCk9PmR9KTt2YXIgbj1vKDc3OTQ3NCksaT1vKDkxNDQ4Nykscj1vLm4oaSkscz1vKDczMDAwOSksYT1vKDE4MjMwOCksbD1vKDczODM1KTtmdW5jdGlvbiBjKGUpe2NvbnN0e3RhYjp0LGlzQWN0aXZlOm8sb25UYWJDbGljazppLGNoaWxkcmVuOnMsY2xhc3NOYW1lOmN9PWUsW3UsZF09KDAsYS51c2VSb3ZpbmdUYWJpbmRleEVsZW1lbnQpKG51bGwpO3JldHVybiBuLmNyZWF0ZUVsZW1lbnQoImJ1dHRvbiIse3JlZjp1LHRhYkluZGV4OmQsb25DbGljazpmdW5jdGlvbigpe2kodCl9LGNsYXNzTmFtZTpyKCkobC53cmFwcGVyLG8mJmwuaXNBY3RpdmUsbC5idXR0b24sYyksdHlwZToiYnV0dG9uIiwiYXJpYS1wcmVzc2VkIjpvfSxzKX12YXIgdT1vKDgzNDUxMyk7ZnVuY3Rpb24gZChlKXtjb25zdHthY3RpdmVUYWI6dCx0YWJzOm8sb25UYWJDbGljazppLGNsYXNzTmFtZTphLHRhYkNsYXNzTmFtZTpsfT1lCjtyZXR1cm4gbi5jcmVhdGVFbGVtZW50KHMuVG9vbGJhcix7b3JpZW50YXRpb246Imhvcml6b250YWwiLGNsYXNzTmFtZTpyKCkodS53cmFwcGVyLGEpLGJsdXJPbkVzY0tleWRvd246ITF9LG8ubWFwKCgoe3RpdGxlOmUsY29udGVudDpvfSk9Pm4uY3JlYXRlRWxlbWVudChjLHtrZXk6ZSx0YWI6ZSxjbGFzc05hbWU6bCxpc0FjdGl2ZTp0PT09ZSxvblRhYkNsaWNrOml9LG8pKSkpfX0sNzEzMTIyKGUsdCxvKXsidXNlIHN0cmljdCI7by5kKHQse0Vtb2ppV3JhcDooKT0+dX0pO3ZhciBuPW8oNzc5NDc0KSxpPW8oOTE0NDg3KSxyPW8ubihpKSxzPW8oNDI4OTI0KSxhPW8oMTgyMzA4KSxsPW8oODg1OTAzKTtjb25zdCBjPTM0O2Z1bmN0aW9uIHUoZSl7Y29uc3R7Y2xhc3NOYW1lOnQsZW1vamk6byxzaXplOmk9YyxvbkNsaWNrOnUsSXRlbUNvbXBvbmVudDpkPXMuRW1vamlJdGVtfT1lLFtoLHBdPSgwLGEudXNlUm92aW5nVGFiaW5kZXhFbGVtZW50KShudWxsKTtyZXR1cm4gbi5jcmVhdGVFbGVtZW50KCJidXR0b24iLHtyZWY6aCx0YWJJbmRleDpwLG9uQ2xpY2s6ZnVuY3Rpb24oKXt1KG8pfSxzdHlsZTp7d2lkdGg6aSxoZWlnaHQ6aX0sY2xhc3NOYW1lOnIoKShsLmJ1dHRvbixsLndyYXBwZXIsdCksdHlwZToiYnV0dG9uIn0sbi5jcmVhdGVFbGVtZW50KGQse2Vtb2ppOm99KSl9fSw3MjY4MjYoZSx0LG8peyJ1c2Ugc3RyaWN0IjtvLmQodCx7SGludFJlZmVyZW5jZWFibGU6KCk9PnV9KTt2YXIgbj1vKDc3OTQ3NCksaT1vKDkxNDQ4Nykscj1vLm4oaSkscz1vKDk2NDU5NCksYT1vKDQ3OTkyMCksbD1vKDUwMjcxMSksYz1vKDUyMDk3Nyk7Y29uc3QgdT1uLmZvcndhcmRSZWYoKChlLHQpPT57Y29uc3R7dGhlbWU6aSxwbGFjZUhvbGRlckNsYXNzTmFtZTphLHNtYWxsUGxhY2VIb2xkZXJDbGFzc05hbWU6dSxzZXR0aW5nc0hpbnRLZXk6aCxwbGFjZW1lbnQ6cCxvbkNsaWNrOm0scmVmZXJlbmNlOmcsYnV0dG9uVGV4dDp2LGNsb3NlQnV0dG9uOmYsaGlkZUJ1dHRvbjpfLG9uQ2xvc2U6Yix0ZXh0OncsdGl0bGU6QyxvbkFkZGl0aW9uYWxDbGljazp5LGFkZGl0aW9uYWxCdXR0b25UZXh0OlQsYWRkaXRpb25hbEJ1dHRvbkNsYXNzTmFtZTpFLGVzY2FwZVdpdGhSZWZlcmVuY2U6eCxvdmVyZmxvd1BhZGRpbmc6Uyxib3VuZGFyaWVzRWxlbWVudDpMLGhpbnRTdGF0ZUhhbmRsZXI6az1sLmRlZmF1bHRIaW50U3RhdGVIYW5kbGVyLGNvbnRhaW5lckNsYXNzTmFtZTpBLGhpZGVXaXRoUmVmZXJlbmNlOk09ITEsZW5hYmxlRmxpcDpOPSEwLGZvcmNlU2hvd09uSW5pdDpELG9uT3BlbmVkU3RhdGVDaGFuZ2VkOlAsZm9yY2VIaWRlOkIscGxhY2VIb2xkZXJTdHlsZTpJLGJ1dHRvblNpemU6RixzYXZlSGludFN0YXRlQnlDbGljazpXPSEwLHNhdmVIaW50U3RhdGVCeUFkZGl0aW9uYWxDbGljazpSPSEwLG9uQnV0dG9uRm9jdXM6VixidXR0b25EYXRhTmFtZTpPLGlzQXJyb3dIaWRkZW46ej0hMX09ZSxIPSgwLG4udXNlUmVmKShudWxsKSxbaixaXT0oMCxuLnVzZVN0YXRlKShudWxsKSxbVSxHXT0oMCxuLnVzZVN0YXRlKSgoKCk9PmsuZ2V0SGludFN0YXRlKGgsRCkpKSxbSyxxXT0oMCxuLnVzZVN0YXRlKSghMSksWyQsUV09KDAsbi51c2VTdGF0ZSkoQm9vbGVhbihCKSksWD0oMCxuLnVzZVJlZikobnVsbCksWT0oMCxuLnVzZVJlZikobnVsbCksSj0oMCxuLnVzZVJlZikobnVsbCksZWU9KDAsbi51c2VSZWYpKG51bGwpLHRlPSgwLG4udXNlTWVtbykoKCgpPT4oe2Nsb3NlKGU9ITEpe0coITEpLGUmJmsuc2V0SGludFN0YXRlKGgpfSxnZXRQb3BwZXJSZWY6KCk9PlgsZ2V0UGxhY2Vob2xkZXJSZWY6KCk9PkosZ2V0QnV0dG9uUmVmOigpPT5lZSx1cGRhdGU6KCk9PlkuY3VycmVudD8udXBkYXRlKCl9KSksW2tdKTtpZigoMCxuLnVzZUltcGVyYXRpdmVIYW5kbGUpKHQsKCgpPT50ZSksW3RlXSksKDAsbi51c2VFZmZlY3QpKCgoKT0+KFUmJihILmN1cnJlbnQ9by5lKDYyOTQzKS50aGVuKG8uYmluZChvLDY4NDc0MCkpLEguY3VycmVudC50aGVuKChlPT57SC5jdXJyZW50JiZaKGUpfSkpKSwoKT0+e0guY3VycmVudD1udWxsfSkpLFtdKSwoMCxuLnVzZUVmZmVjdCkoKCgpPT57bnVsbCE9PVguY3VycmVudCYmKFguY3VycmVudC5zdHlsZS5wb2ludGVyRXZlbnRzPSQ/Im5vbmUiOiIiKX0pLFskXSksKDAsbi51c2VFZmZlY3QpKCgoKT0+UShCb29sZWFuKEIpKSksW0JdKSwoMCxuLnVzZUVmZmVjdCkoKCgpPT5QPy4oQm9vbGVhbihVKSkpLFtVXSksVSYmail7Y29uc3R7TWFuYWdlcjplLFJlZmVyZW5jZTp0LFBvcHBlcjpvfT1qO3JldHVybiBuLmNyZWF0ZUVsZW1lbnQoZSxudWxsLG4uY3JlYXRlRWxlbWVudCh0LG51bGwsKGU9Pm4uY3JlYXRlRWxlbWVudCgiZGl2Iix7c3R5bGU6SSxyZWY6KDAscy5tZXJnZVJlZnMpKFtlLnJlZixKXSksY2xhc3NOYW1lOnIoKShjLnBsYWNlSG9sZGVyLGEsSyYmdSl9KSkpLG4uY3JlYXRlRWxlbWVudChvLHtpbm5lclJlZjpYLHBsYWNlbWVudDpwLHN0cmF0ZWd5OiJmaXhlZCIsbW9kaWZpZXJzOlt7bmFtZToib2Zmc2V0IixvcHRpb25zOntvZmZzZXQ6WzAsNV19fSx7bmFtZToicHJldmVudE92ZXJmbG93IixvcHRpb25zOntyb290Qm91bmRhcnk6THx8InZpZXdwb3J0IixhbHRCb3VuZGFyeTp4fHwhMSxwYWRkaW5nOlN9fSx7bmFtZToiZmxpcCIsZW5hYmxlZDpOLG9wdGlvbnM6e2ZhbGxiYWNrUGxhY2VtZW50czpbImxlZnQiLCJib3R0b20iXX19LHtuYW1lOiJoaWRlV2l0aFJlZmVyZW5jZSIsZW5hYmxlZDpNLHBoYXNlOiJtYWluIixmbjplPT57Y29uc3R7c3RhdGU6dH09ZSxvPUJvb2xlYW4odC5tb2RpZmllcnNEYXRhLmhpZGU/LmlzUmVmZXJlbmNlSGlkZGVuKTskIT09byYmUShvKX19XX0sKGU9PihZLmN1cnJlbnQ9ZSxuLmNyZWF0ZUVsZW1lbnQoZCx7c2V0U21hbGxTaXplOnEsdGV4dDp3LGJ1dHRvblRleHQ6dixyZWZlcmVuY2U6Zyxwb3BwZXJDaGlsZHJlblByb3BzOmUsdGl0bGU6Qyx0aGVtZTppLGFycm93Q2xhc3NOYW1lOnIoKSgoenx8JCkmJmMuaGlkZGVuKSxjb250YWluZXJDbGFzc05hbWU6cigpKEEsJCYmYy5oaWRkZW4pLG9uQ2xpY2s6Xz92b2lkIDA6b2UsYnV0dG9uU2l6ZTpGLApvbkFkZGl0aW9uYWxDbGljazpuZSxhZGRpdGlvbmFsQnV0dG9uVGV4dDpULGFkZGl0aW9uYWxCdXR0b25DbGFzc05hbWU6RSxidXR0b25SZWZlcmVuY2U6ZWUsb25CdXR0b25Gb2N1czpWLGJ1dHRvbkRhdGFOYW1lOk8sb25DbG9zZTpfP29lOmY/aWU6dm9pZCAwfSkpKSkpfXJldHVybiBudWxsO2Z1bmN0aW9uIG9lKCl7dGUuY2xvc2UoVyksbSYmbSgpfWZ1bmN0aW9uIG5lKCl7dGUuY2xvc2UoUikseSYmeSgpfWZ1bmN0aW9uIGllKCl7Y29uc3R7c2F2ZUhpbnRTdGF0ZUJ5T25DbG9zZTp0PSExfT1lO3RlLmNsb3NlKHQpLGImJmIoKX19KSk7ZnVuY3Rpb24gZChlKXtjb25zdHtzZXRTbWFsbFNpemU6dCxwb3BwZXJDaGlsZHJlblByb3BzOm8sLi4uaX09ZTtyZXR1cm4oMCxuLnVzZUxheW91dEVmZmVjdCkoKCgpPT57dChvLnBsYWNlbWVudCYmby5wbGFjZW1lbnQuc3RhcnRzV2l0aCgiYm90dG9tIikpfSksW3Qsb10pLG4uY3JlYXRlRWxlbWVudChhLkhpbnRXaXphcmQsey4uLmkscG9wcGVyQ2hpbGRyZW5Qcm9wczpvfSl9fSw1MDI3MTEoZSx0LG8peyJ1c2Ugc3RyaWN0IjtvLmQodCx7ZGVmYXVsdEhpbnRTdGF0ZUhhbmRsZXI6KCk9Pml9KTt2YXIgbj1vKDkzMDU2Nik7Y29uc3QgaT17Z2V0SGludFN0YXRlOihlLHQpPT57aWYoIWV8fHQpcmV0dXJuITA7Y29uc3Qgbz1uLmdldEJvb2woZSk7cmV0dXJuIHdpbmRvdy5pc19hdXRoZW50aWNhdGVkJiYob3x8dm9pZCAwPT09byl9LHNldEhpbnRTdGF0ZTplPT57ZSYmbi5zZXRWYWx1ZShlLCExLHtmb3JjZUZsdXNoOiEwfSl9fX0sNDc5OTIwKGUsdCxvKXsidXNlIHN0cmljdCI7by5kKHQse0RFRkFVTFRfSElOVF9USEVNRTooKT0+dSxIaW50V2l6YXJkOigpPT5kfSk7dmFyIG49byg3Nzk0NzQpLGk9bygxODUyNzEpLHI9byg5MTQ0ODcpLHM9by5uKHIpLGE9byg2OTIyNjYpLGw9byg4NTQ4MjApLGM9byg0MzUxMDEpO2NvbnN0IHU9YztmdW5jdGlvbiBkKGUpe2NvbnN0e3BvcHBlckNoaWxkcmVuUHJvcHM6dCxvbkNsaWNrOnIscmVmZXJlbmNlOnUsdGV4dDpkLGJ1dHRvblRleHQ6aCxhZGRpdGlvbmFsQnV0dG9uVGV4dDpwLG9uQWRkaXRpb25hbENsaWNrOm0sdGl0bGU6Zyx0aGVtZTp2PWMsY29udGFpbmVyQ2xhc3NOYW1lOmYsYXJyb3dDbGFzc05hbWU6XyxhZGRpdGlvbmFsQnV0dG9uQ2xhc3NOYW1lOmIsb25DbG9zZTp3LGJ1dHRvblNpemU6Qz0ieHNtYWxsIixidXR0b25SZWZlcmVuY2U6eSxvbkJ1dHRvbkZvY3VzOlQsYnV0dG9uRGF0YU5hbWU6RX09ZTtyZXR1cm4gbi5jcmVhdGVFbGVtZW50KGEuVG9vbHRpcFdpemFyZCx7cmVmZXJlbmNlOnUscG9wcGVyQ2hpbGRyZW5Qcm9wczp0LGNvbnRhaW5lckNsYXNzTmFtZTpmLGFycm93Q2xhc3NOYW1lOl8sb25DbG9zZTp3LHJvbGU6ImhpbnQifSxuLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTp2LndyYXBwZXJ9LGcmJm4uY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOnYudGl0bGV9LGcpLG4uY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOnYudGV4dH0sZCksbi5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6di5idXR0b25zfSxtJiZwJiZuLmNyZWF0ZUVsZW1lbnQobC5MaWdodEJ1dHRvbix7dmFyaWFudDoiZ2hvc3QiLGNvbG9yOiJncmF5IixjbGFzc05hbWU6cygpKHYuYWRkaXRpb25hbEJ1dHRvbixiKSxzaXplOkMsb25DbGljazptfSxwKSxyJiZuLmNyZWF0ZUVsZW1lbnQobC5MaWdodEJ1dHRvbix7ZGF0YVFhSWQ6RSxvbkZvY3VzOlQscmVmZXJlbmNlOnksdmFyaWFudDoicHJpbWFyeSIsY29sb3I6ImdyYXkiLGNsYXNzTmFtZTp2LmJ1dHRvbixzaXplOkMsb25DbGljazpyfSxofHxpLnQobnVsbCx2b2lkIDAsbyg0MDIzMjQpKSkpKSl9fSw4MTc0MzMoZSx0LG8peyJ1c2Ugc3RyaWN0IjtvLmQodCx7dXNlQ3VzdG9tQ29sb3JzOigpPT5jfSk7dmFyIG49byg3Nzk0NzQpLGk9byg5MzA1NjYpLHI9bygxNzk3NzEpO2Z1bmN0aW9uIHMoZSx0KXsoMCxuLnVzZUVmZmVjdCkoKCgpPT4oci5zdWJzY3JpYmUoZSx0LG51bGwpLCgpPT57ci51bnN1YnNjcmliZShlLHQsbnVsbCl9KSksW2UsdF0pfXZhciBhLGw9bygxMzQ2Nyk7ZnVuY3Rpb24gYygpe2NvbnN0W2UsdF09KDAsbi51c2VTdGF0ZSkoKDAsaS5nZXRKU09OKSgicGlja2VyQ3VzdG9tQ29sb3JzIixbXSkpO3MoImFkZF9uZXdfY3VzdG9tX2NvbG9yIiwobz0+dCh1KG8sZSkpKSkscygicmVtb3ZlX2N1c3RvbV9jb2xvciIsKG89PnQoZChvLGUpKSkpO2NvbnN0IG89KDAsbi51c2VDYWxsYmFjaykoKHQ9Pntjb25zdCBvPXQ/KDAsbC5wYXJzZVJnYikodCk6bnVsbDtlLnNvbWUoKGU9Pm51bGwhPT1lJiZudWxsIT09byYmKDAsbC5hcmVFcXVhbFJnYikoKDAsbC5wYXJzZVJnYikoZSksbykpKXx8KHIuZW1pdCgiYWRkX25ld19jdXN0b21fY29sb3IiLHQpLCgwLGkuc2V0SlNPTikoInBpY2tlckN1c3RvbUNvbG9ycyIsdSh0LGUpKSl9KSxbZV0pLGE9KDAsbi51c2VDYWxsYmFjaykoKHQ9PnsodD49MHx8dDxlLmxlbmd0aCkmJihyLmVtaXQoInJlbW92ZV9jdXN0b21fY29sb3IiLHQpLCgwLGkuc2V0SlNPTikoInBpY2tlckN1c3RvbUNvbG9ycyIsZCh0LGUpKSl9KSxbZV0pO3JldHVybltlLG8sYV19ZnVuY3Rpb24gdShlLHQpe2NvbnN0IG89dC5zbGljZSgpO3JldHVybiBvLnB1c2goZSksby5sZW5ndGg+MjkmJm8uc2hpZnQoKSxvfWZ1bmN0aW9uIGQoZSx0KXtyZXR1cm4gdC5maWx0ZXIoKCh0LG8pPT5lIT09bykpfSFmdW5jdGlvbihlKXtlLlNldHRpbmdzS2V5PSJwaWNrZXJDdXN0b21Db2xvcnMiLGUuR2xvYmFsQWRkRXZlbnROYW1lPSJhZGRfbmV3X2N1c3RvbV9jb2xvciIsZS5HbG9iYWxSZW1vdmVFdmVudE5hbWU9InJlbW92ZV9jdXN0b21fY29sb3IiLGVbZS5NYXhDb2xvcnM9MjldPSJNYXhDb2xvcnMifShhfHwoYT17fSkpfSw1NTIzNzgoZSx0LG8peyJ1c2Ugc3RyaWN0IjtvLmQodCx7dXNlV2F0Y2hlZFZhbHVlOigpPT5pfSk7dmFyIG49byg3Nzk0NzQpO2NvbnN0IGk9KGUsdD1bXSk9Pntjb25zdFtvLGldPSgwLG4udXNlU3RhdGUpKGUudmFsdWUoKSk7cmV0dXJuKDAsbi51c2VFZmZlY3QpKCgoKT0+ewpjb25zdCB0PWU9PmkoZSk7cmV0dXJuIGUuc3Vic2NyaWJlKHQpLCgpPT5lLnVuc3Vic2NyaWJlKHQpfSksW2UsLi4udF0pLFtvLHQ9PmUuc2V0VmFsdWUodCldfX0sNzA4ODQyKGUsdCxvKXsidXNlIHN0cmljdCI7by5kKHQse1Rvb2xXaWRnZXRDYXJldDooKT0+Y30pO3ZhciBuPW8oNzc5NDc0KSxpPW8oOTE0NDg3KSxyPW8ubihpKSxzPW8oMjczMzEwKSxhPW8oODEwMjgxKSxsPW8oMzU2NzIxKTtmdW5jdGlvbiBjKGUpe2NvbnN0e2Ryb3BwZWQ6dCxjbGFzc05hbWU6b309ZTtyZXR1cm4gbi5jcmVhdGVFbGVtZW50KHMuSWNvbix7Y2xhc3NOYW1lOnIoKShvLGEuaWNvbix7W2EuZHJvcHBlZF06dH0pLGljb246bH0pfX0sNjkyMjY2KGUsdCxvKXsidXNlIHN0cmljdCI7by5kKHQse1Rvb2x0aXBXaWRnZXQ6KCk9PmQsVG9vbHRpcFdpemFyZDooKT0+dX0pO3ZhciBuPW8oNzc5NDc0KSxpPW8oOTE0NDg3KSxyPW8ubihpKSxzPW8oMjczMzEwKSxhPW8oNTg1NDgpLGw9byg4MDY2OTMpLGM9byg5MjM1MTMpO2NsYXNzIHUgZXh0ZW5kcyBuLlB1cmVDb21wb25lbnR7cmVuZGVyKCl7Y29uc3R7Y2hpbGRyZW46ZSxwb3BwZXJDaGlsZHJlblByb3BzOnQsb25DbG9zZTpvLHJlZmVyZW5jZTppLGNvbnRhaW5lckNsYXNzTmFtZTpzLGFycm93Q2xhc3NOYW1lOmwscm9sZTp1fT10aGlzLnByb3BzO3JldHVybiBuLmNyZWF0ZUVsZW1lbnQoYS5Qb3J0YWwsbnVsbCxuLmNyZWF0ZUVsZW1lbnQoImRpdiIse3JlZjppfSxuLmNyZWF0ZUVsZW1lbnQoZCx7cmVmZXJlbmNlOnQucmVmLHN0eWxlOnQuc3R5bGUsYXJyb3dDbGFzc05hbWU6cigpKGMuYXJyb3dIb2xkZXIsdGhpcy5fZ2V0QXJyb3dEaXJlY3Rpb25DbGFzcygpLGwpLGFycm93UmVmZXJlbmNlOnQuYXJyb3dQcm9wcy5yZWYsYXJyb3dTdHlsZTp0LmFycm93UHJvcHMuc3R5bGUsImRhdGEtcGxhY2VtZW50Ijp0LnBsYWNlbWVudCxvbkNsb3NlOm8sY29udGFpbmVyQ2xhc3NOYW1lOnMscm9sZTp1fSxlKSkpfV9nZXRBcnJvd0RpcmVjdGlvbkNsYXNzKCl7Y29uc3R7cG9wcGVyQ2hpbGRyZW5Qcm9wczplfT10aGlzLnByb3BzO3N3aXRjaChlLnBsYWNlbWVudCl7Y2FzZSJsZWZ0IjpjYXNlImxlZnQtc3RhcnQiOnJldHVybiByKCkoY1siYXJyb3dIb2xkZXItLWFmdGVyIl0sY1siYXJyb3dIb2xkZXItLWFmdGVyLWx0ci1maXgiXSk7Y2FzZSJ0b3AiOnJldHVybiByKCkoY1siYXJyb3dIb2xkZXItLWFib3ZlIl0sY1siYXJyb3dIb2xkZXItLWFib3ZlLWZpeCJdKTtjYXNlImJvdHRvbSI6Y2FzZSJib3R0b20tc3RhcnQiOmNhc2UiYm90dG9tLWVuZCI6cmV0dXJuIGNbImFycm93SG9sZGVyLS1iZWxvdyJdO2RlZmF1bHQ6cmV0dXJuIHIoKShjWyJhcnJvd0hvbGRlci0tYmVmb3JlIl0sY1siYXJyb3dIb2xkZXItLWJlZm9yZS1ydGwtZml4Il0pfX19ZnVuY3Rpb24gZChlKXtjb25zdHtjbGFzc05hbWU6dCxjb250YWluZXJDbGFzc05hbWU6byxjb250ZW50Q2xhc3NOYW1lOmkscmVmZXJlbmNlOmEsc3R5bGU6dSxhcnJvdzpkPSEwLGFycm93Q2xhc3NOYW1lOmgsYXJyb3dSZWZlcmVuY2U6cCxvbkNsb3NlOm0sYXJyb3dTdHlsZTpnLGNoaWxkcmVuOnYscm9sZTpmLC4uLl99PWU7cmV0dXJuIG4uY3JlYXRlRWxlbWVudCgiZGl2Iix7Li4uXyxjbGFzc05hbWU6dCxyZWY6YSxzdHlsZTp1LCJkYXRhLXJvbGUiOmZ9LGQmJm4uY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOmgscmVmOnAsc3R5bGU6Z30pLG4uY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOnIoKShjLmNvbnRhaW5lcixvKX0sbi5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6cigpKGMuY29udGVudCxpKX0sdiksbSYmbi5jcmVhdGVFbGVtZW50KHMuSWNvbix7Y2xhc3NOYW1lOmMuY2xvc2VCdXR0b24saWNvbjpsLG9uQ2xpY2s6bX0pKSl9fSw0NDEyNjAoZSx0LG8peyJ1c2Ugc3RyaWN0IjtvLmQodCx7Q2hhckNvZGVJY29uOigpPT5zfSk7dmFyIG49byg3Nzk0NzQpLGk9bygyNzMzMTApLHI9bygzNTI1NzIpO2Z1bmN0aW9uIHMoZSl7Y29uc3R7ZmFsbGJhY2s6dCwuLi5vfT1lO3JldHVybiBuLmNyZWF0ZUVsZW1lbnQobi5TdXNwZW5zZSx7ZmFsbGJhY2s6dD8/bnVsbH0sbi5jcmVhdGVFbGVtZW50KGEsey4uLm99KSl9Y29uc3QgYT1uLmxhenkoKGFzeW5jKCk9Pntjb25zdHtnZXRTdmdDb250ZW50Rm9yQ2hhckNvZGU6ZX09YXdhaXQgby5lKDE4MzA0KS50aGVuKG8uYmluZChvLDMxNjY5MikpO3JldHVybntkZWZhdWx0OnQ9Pntjb25zdHtjaGFyQ29kZTpvfT10LHM9ZShvKT8/dm9pZCAwO3JldHVybiBuLmNyZWF0ZUVsZW1lbnQoaS5JY29uLHtpY29uOnMsY2xhc3NOYW1lOnIuaWNvbkNvbnRhaW5lcn0pfX19KSl9LDM4MjQwOChlLHQsbyl7InVzZSBzdHJpY3QiO28uZCh0LHtGTE9BVElOR19UT09MQkFSX1JFQUNUX1dJREdFVFNfQ0xBU1M6KCk9PncsRmxvYXRpbmdUb29sYmFyOigpPT55fSk7dmFyIG49bygyNzYwMTkpLGk9bygzNjMyNjkpLHI9bygyMTg4MTQpLHM9byg3ODgwMSksYT1vKDIzMjM2NCksbD1vKDk0ODM4MCksYz1vKDIxNDk4Nyk7Y2xhc3MgdXtjb25zdHJ1Y3Rvcigpe3RoaXMuX3JldHJpZXM9NSx0aGlzLl9jYWNoZT1udWxsLHRoaXMuX3RyeUxvYWQ9KGUsdCk9Pnt0aGlzLl9yZXRyaWVzPXRoaXMuX3JldHJpZXMtMTt0aGlzLl9zdGFydExvYWRpbmcoZSkudGhlbih0LDAhPT10aGlzLl9yZXRyaWVzP289PnsoMCxjLmlzQWJvcnRFcnJvcikobyl8fHNldFRpbWVvdXQoKCgpPT50aGlzLl90cnlMb2FkKGUsdCkpLDNlMyl9OnZvaWQgMCl9fWxvYWQoZSl7cmV0dXJuIHRoaXMuX2NhY2hlfHwodGhpcy5fY2FjaGU9bmV3IFByb21pc2UodGhpcy5fdHJ5TG9hZC5iaW5kKHRoaXMsZT8/bnVsbCkpKSx0aGlzLl9jYWNoZX19Y2xhc3MgZCBleHRlbmRzIHV7X3N0YXJ0TG9hZGluZygpe3JldHVybiBQcm9taXNlLmFsbChbby5lKDcyMTQxKSxvLmUoODU2NTIpXSkudGhlbihvLmJpbmQobyw2MDA3NzkpKS50aGVuKChlPT5lLkhhbW1lckpTKSl9fXZhciBoPW8oNzgwMzc0KSxwPW8oNjQwNzQ0KSxtPW8oMTE1MjkzKSxnPW8oNzQwMTYyKTtjbGFzcyB2e2NvbnN0cnVjdG9yKGUpewp0aGlzLl9pdGVtcz1bXSx0aGlzLl9iYWNrZW5kcz1bXSx0aGlzLl9oZWxwZXI9bnVsbCx0aGlzLl9oYW5kbGVEcmFnU3RhcnQ9ZT0+e2NvbnN0IHQ9dGhpcy5fZ2V0QWxsSXRlbXMoKVtlXTtpZighKHQgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCl8fG51bGwhPT10aGlzLl9oZWxwZXIpcmV0dXJuO3Quc3R5bGUuekluZGV4PSIxMCI7Y29uc3Qgbz10aGlzLl9vcHRpb25zLnNvdXJjZSxuPXQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksaT1vLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3RoaXMuX2hlbHBlcj17bW92ZWRJbmRleGVzOm5ldyBTZXQsZHJhZ2dhYmxlSW5kZXg6ZSxsZWZ0Qm9yZGVyOmkubGVmdCtmKG8sInBhZGRpbmctbGVmdCIpK2YobywiYm9yZGVyLWxlZnQtd2lkdGgiKS1uLmxlZnQtMSxyaWdodEJvcmRlcjppLnJpZ2h0LWYobywicGFkZGluZy1yaWdodCIpLWYobywiYm9yZGVyLXJpZ2h0LXdpZHRoIiktbi5yaWdodCsxLHRvcEJvcmRlcjppLnRvcCtmKG8sInBhZGRpbmctdG9wIikrZihvLCJib3JkZXItdG9wLXdpZHRoIiktbi50b3AtMSxib3R0b21Cb3JkZXI6aS5ib3R0b20tZihvLCJwYWRkaW5nLWJvdHRvbSIpLWYobywiYm9yZGVyLWJvdHRvbS13aWR0aCIpLW4uYm90dG9tKzF9LHRoaXMuX29wdGlvbnMuc3RhcnQ/LihlKX0sdGhpcy5faGFuZGxlRHJhZ01vdmU9ZT0+e2lmKG51bGw9PT10aGlzLl9oZWxwZXIpcmV0dXJuO2NvbnN0e3RvcEJvcmRlcjp0LGJvdHRvbUJvcmRlcjpvLGxlZnRCb3JkZXI6bixyaWdodEJvcmRlcjppLGRyYWdnYWJsZUluZGV4OnJ9PXRoaXMuX2hlbHBlcixzPXRoaXMuX2dldEFsbEl0ZW1zKClbcl0se2N1cnJlbnQ6YSxpbml0aWFsOmx9PWUuZGV0YWlsLHtheGlzOmN9PXRoaXMuX29wdGlvbnMsdT1hLmNsaWVudFgtbC5jbGllbnRYLGQ9YS5jbGllbnRZLWwuY2xpZW50WTtpZigieSI9PT1jKXtjb25zdCBlPSgwLHAuY2xhbXApKGQsdCxvKTtzLnN0eWxlLnRyYW5zZm9ybT1gdHJhbnNsYXRlWSgke2V9cHgpYH1pZigieCI9PT1jKXtjb25zdCBlPSgwLHAuY2xhbXApKHUsbixpKTtzLnN0eWxlLnRyYW5zZm9ybT1gdHJhbnNsYXRlWCgke2V9cHgpYH10aGlzLl91cGRhdGVJZGxlSXRlbXNTdGF0ZUFuZFBvc2l0aW9uKCl9LHRoaXMuX2hhbmRsZURyYWdTdG9wPSgpPT57aWYobnVsbD09PXRoaXMuX2hlbHBlcilyZXR1cm47dGhpcy5fZ2V0QWxsSXRlbXMoKVt0aGlzLl9oZWxwZXIuZHJhZ2dhYmxlSW5kZXhdLnN0eWxlLnpJbmRleD0iIjtjb25zdCBlPXRoaXMuX2FwcGx5TmV3SXRlbXNPcmRlcigpO3RoaXMuX2NsZWFudXAoKSx0aGlzLl9pbml0QmFja2VuZHMoKSxudWxsIT09ZSYmdGhpcy5fb3B0aW9ucy5zdG9wPy4oZSl9LHRoaXMuX29wdGlvbnM9ZSx0aGlzLl9pbml0QmFja2VuZHMoKX1kZXN0cm95KCl7dGhpcy5fY2xlYW51cCgpO2Zvcihjb25zdCBlIG9mIHRoaXMuX2JhY2tlbmRzKWUuZGVzdHJveSgpfXVwZGF0ZU9wdGlvbnMoZSl7KDAsZy5kZWZhdWx0KSh0aGlzLl9vcHRpb25zLGUpfXVwZGF0ZUxpc3QoKXt0aGlzLl9jbGVhbnVwKCksdGhpcy5faW5pdEJhY2tlbmRzKCl9X2luaXRCYWNrZW5kcygpe2Zvcihjb25zdCBlIG9mIHRoaXMuX2JhY2tlbmRzKWUuZGVzdHJveSgpO2NvbnN0IGU9W107dGhpcy5fZ2V0QWxsSXRlbXMoKS5mb3JFYWNoKCgodCxvKT0+e2UucHVzaChuZXcgaC5Qb2ludGVyQmFja2VuZCh7aGFuZGxlOnQsb25EcmFnU3RhcnQ6KCk9PnRoaXMuX2hhbmRsZURyYWdTdGFydChvKSxvbkRyYWdNb3ZlOnRoaXMuX2hhbmRsZURyYWdNb3ZlLG9uRHJhZ1N0b3A6dGhpcy5faGFuZGxlRHJhZ1N0b3AsZGlzdGFuY2U6NSxyb290RWxlbWVudDp3aW5kb3cuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50fSkpfSkpLHRoaXMuX2JhY2tlbmRzPWV9X2NsZWFudXAoKXt0aGlzLl9nZXRBbGxJdGVtcygpLmZvckVhY2goKGU9PntlLnN0eWxlLnRyYW5zZm9ybT0iIn0pKSx0aGlzLl9oZWxwZXI9bnVsbCx0aGlzLl9pdGVtcz1bXX1fZ2V0QWxsSXRlbXMoKXtyZXR1cm4gdGhpcy5faXRlbXM/Lmxlbmd0aHx8KHRoaXMuX2l0ZW1zPUFycmF5LmZyb20odGhpcy5fb3B0aW9ucy5zb3VyY2UuY2hpbGRyZW4pKSx0aGlzLl9pdGVtc31fdXBkYXRlSWRsZUl0ZW1zU3RhdGVBbmRQb3NpdGlvbigpe2lmKG51bGw9PT10aGlzLl9oZWxwZXIpcmV0dXJuO2NvbnN0e2F4aXM6ZX09dGhpcy5fb3B0aW9ucyx7ZHJhZ2dhYmxlSW5kZXg6dH09dGhpcy5faGVscGVyLG89dGhpcy5fZ2V0QWxsSXRlbXMoKSxuPW9bdF0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksaT1uLnRvcCtuLmhlaWdodC8yLHI9bi5sZWZ0K24ud2lkdGgvMixzPSJ4Ij09PWU/cjppLGE9bmV3IFNldDtvLmZvckVhY2goKChvLGkpPT57aWYodD09PWkpcmV0dXJuO2NvbnN0IHI9by5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxsPXIubGVmdCtyLndpZHRoLzIsYz1yLnRvcCtyLmhlaWdodC8yLHU9IngiPT09ZT9sOmMsZD10PmksaD0oMCxtLmlzUnRsKSgpO2xldCBwO2lmKHA9ZD9oJiZzPj11fHwhaCYmczw9dTpoJiZzPD11fHwhaCYmcz49dSxwKXthLmFkZChpKTtjb25zdCB0PWQ/aD8tMToxOmg/MTotMTtzd2l0Y2goZSl7Y2FzZSJ4IjpvLnN0eWxlLnRyYW5zZm9ybT1gdHJhbnNsYXRlWCgke3Qqbi53aWR0aH1weClgO2JyZWFrO2Nhc2UieSI6by5zdHlsZS50cmFuc2Zvcm09YHRyYW5zbGF0ZVkoJHt0Km4uaGVpZ2h0fXB4KWB9fWVsc2Ugby5zdHlsZS50cmFuc2Zvcm09IiIsYS5kZWxldGUoaSl9KSksdGhpcy5faGVscGVyLm1vdmVkSW5kZXhlcz1hfV9hcHBseU5ld0l0ZW1zT3JkZXIoKXtpZihudWxsPT09dGhpcy5faGVscGVyKXJldHVybiBudWxsO2NvbnN0e2RyYWdnYWJsZUluZGV4OmUsbW92ZWRJbmRleGVzOnR9PXRoaXMuX2hlbHBlcixvPXRoaXMuX2dldEFsbEl0ZW1zKCksbj1vW2VdO2xldCBpPW51bGw7Y29uc3Qgcj1bXTtvLmZvckVhY2goKChvLG4pPT57aWYobj09PWUpcmV0dXJuO2NvbnN0IGk9ZT5uO2lmKCF0LmhhcyhuKSlyZXR1cm4gdm9pZChyW25dPW8pO3JbaT9uKzE6bi0xXT1vfSkpO2ZvcihsZXQgZT0wO2U8by5sZW5ndGg7ZSsrKXt2b2lkIDA9PT1yW2VdJiYoaT1lLHJbZV09bil9CnJldHVybiB0LnNpemUmJnIuZm9yRWFjaCgoZT0+e3RoaXMuX29wdGlvbnMuc291cmNlLmFwcGVuZENoaWxkKGUpfSkpLGl9fWZ1bmN0aW9uIGYoZSx0KXtyZXR1cm4gcGFyc2VJbnQoZnVuY3Rpb24oZSx0KXtyZXR1cm4gZ2V0Q29tcHV0ZWRTdHlsZShlLG51bGwpLmdldFByb3BlcnR5VmFsdWUodCl9KGUsdCkpfXZhciBfPW8oNDQzNTU3KSxiPW8oNjY0MzMpO28oMjUyMzU3KTtjb25zdCB3PSJmbG9hdGluZy10b29sYmFyLXJlYWN0LXdpZGdldHMiLEM9YDxkaXYgY2xhc3M9InR2LWZsb2F0aW5nLXRvb2xiYXIgaS1jbG9zZWQgaS1oaWRkZW4iPjxkaXYgY2xhc3M9InR2LWZsb2F0aW5nLXRvb2xiYXJfX3dpZGdldC13cmFwcGVyIj48ZGl2IGNsYXNzPSJ0di1mbG9hdGluZy10b29sYmFyX19kcmFnIGpzLWRyYWciPiR7Yn08L2Rpdj48ZGl2IGNsYXNzPSJ0di1mbG9hdGluZy10b29sYmFyX19jb250ZW50IGpzLWNvbnRlbnQiPjwvZGl2PjxkaXYgY2xhc3M9IiR7d30iPjwvZGl2PjwvZGl2PjwvZGl2PmA7Y2xhc3MgeXtjb25zdHJ1Y3RvcihlKXt0aGlzLl93aWRnZXQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksdGhpcy5faXNWZXJ0aWNhbD0hMSx0aGlzLl9oaWRkaW5nVGltZW91dElkPW51bGwsdGhpcy5fdmlzaWJpbGl0eT1uZXcgYS5XYXRjaGVkVmFsdWUoITEpLHRoaXMuX3dpbmRvd1Jlc2l6ZUxpc3RlbmVyPXRoaXMuX29uV2luZG93UmVzaXplLmJpbmQodGhpcyksdGhpcy5fcmVvcmRlcmVkRGVsZWdhdGU9bmV3IGwuRGVsZWdhdGUsdGhpcy5fc3RhcnRTb3J0YWJsZURlbGVnYXRlPW5ldyBsLkRlbGVnYXRlLHRoaXMuX3Jlc3BvbnNpdmVSZXNpemVGdW5jdGlvbj1udWxsLHRoaXMuX3Nob3dUaW1lU3RhbXA9bnVsbCx0aGlzLl9kcmFnZ2FibGU9bnVsbCx0aGlzLl9zb3J0YWJsZT1udWxsLHRoaXMuX3ByZXZlbnRDbGlja1VudGlsQW5pbWF0aW9uPWU9PntudWxsIT09dGhpcy5fc2hvd1RpbWVTdGFtcCYmcGVyZm9ybWFuY2Uubm93KCktdGhpcy5fc2hvd1RpbWVTdGFtcDx0aGlzLmhpZGVEdXJhdGlvbigpJiZlLnN0b3BQcm9wYWdhdGlvbigpfSx5Ll90b29sYmFycy5wdXNoKHRoaXMpLHRoaXMuX29wdGlvbnM9ZSx0aGlzLl93aWRnZXQ9KDAsXy5wYXJzZUh0bWxFbGVtZW50KShDKSx0aGlzLl9jb250ZW50PXRoaXMuX3dpZGdldC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJqcy1jb250ZW50IikuaXRlbSgwKSx0aGlzLl9yZWFjdFdpZGdldHNDb250YWluZXI9dGhpcy5fd2lkZ2V0LmdldEVsZW1lbnRzQnlDbGFzc05hbWUodykuaXRlbSgwKSx0aGlzLl9zZXRaSW5kZXgoeS5fc3RhcnRaSW5kZXgreS5fdG9vbGJhcnMubGVuZ3RoLTEpLHRoaXMuX29wdGlvbnMuYWRkQ2xhc3MmJih0aGlzLl93aWRnZXQuY2xhc3NOYW1lKz1gICR7dGhpcy5fb3B0aW9ucy5hZGRDbGFzc31gKSx0aGlzLl9vcHRpb25zWyJkYXRhLW5hbWUiXSYmKHRoaXMuX3dpZGdldC5kYXRhc2V0Lm5hbWU9dGhpcy5fb3B0aW9uc1siZGF0YS1uYW1lIl0pLHRoaXMuX29wdGlvbnMubGF5b3V0JiYiYXV0byIhPT10aGlzLl9vcHRpb25zLmxheW91dCYmKHRoaXMuX2lzVmVydGljYWw9InZlcnRpY2FsIj09PXRoaXMuX29wdGlvbnMubGF5b3V0LHRoaXMuX3VwZGF0ZUxheW91dFR5cGUoKSksdGhpcy5fd2lkZ2V0LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIix0aGlzLl9wcmV2ZW50Q2xpY2tVbnRpbEFuaW1hdGlvbiwhMCl9ZGVzdHJveSgpe3RoaXMuaGlkZSghMCkseS5fdG9vbGJhcnMuc3BsaWNlKHkuX3Rvb2xiYXJzLmluZGV4T2YodGhpcyksMSksdGhpcy5fd2lkZ2V0LnJlbW92ZUV2ZW50TGlzdGVuZXIoImNsaWNrIix0aGlzLl9wcmV2ZW50Q2xpY2tVbnRpbEFuaW1hdGlvbiwhMCksZG9jdW1lbnQuYm9keS5jb250YWlucyh0aGlzLl93aWRnZXQpJiZkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKHRoaXMuX3dpZGdldCksbnVsbCE9PXRoaXMuX2RyYWdnYWJsZSYmdGhpcy5fZHJhZ2dhYmxlLmRlc3Ryb3koKSxudWxsIT09dGhpcy5fc29ydGFibGUmJnRoaXMuX3NvcnRhYmxlLmRlc3Ryb3koKSx0aGlzLl93aWRnZXQuaW5uZXJIVE1MPSIiLHRoaXMuX3Jlc3BvbnNpdmVSZXNpemVGdW5jdGlvbj1udWxsfXNldFJlc3BvbnNpdmVSZXNpemVGdW5jKGUpe3RoaXMuX3Jlc3BvbnNpdmVSZXNpemVGdW5jdGlvbj1lfWlzVmlzaWJsZSgpe3JldHVybiB0aGlzLl92aXNpYmlsaXR5LnZhbHVlKCl9dmlzaWJpbGl0eSgpe3JldHVybiB0aGlzLl92aXNpYmlsaXR5LnJlYWRvbmx5KCl9aXNWZXJ0aWNhbCgpe3JldHVybiB0aGlzLl9pc1ZlcnRpY2FsfXNob3coZSl7dGhpcy5pc1Zpc2libGUoKXx8KGRvY3VtZW50LmJvZHkuY29udGFpbnModGhpcy5fd2lkZ2V0KXx8KHRoaXMuX2luaXQoKSxkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHRoaXMuX3dpZGdldCkpLHRoaXMuX3NldEhpZGRpbmdUaW1lb3V0KG51bGwpLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJyZXNpemUiLHRoaXMuX3dpbmRvd1Jlc2l6ZUxpc3RlbmVyKSx0aGlzLnJhaXNlKCksdGhpcy5fdmlzaWJpbGl0eS5zZXRWYWx1ZSghMCksdGhpcy5fc2hvd1RpbWVTdGFtcD1wZXJmb3JtYW5jZS5ub3coKSx0aGlzLl93aWRnZXQuY2xhc3NMaXN0LmNvbnRhaW5zKCJpLWhpZGRlbiIpPyh0aGlzLl93aWRnZXQuY2xhc3NMaXN0LnJlbW92ZSgiaS1oaWRkZW4iKSxzZXRUaW1lb3V0KCgoKT0+e3RoaXMuaXNWaXNpYmxlKCkmJihlPy4oKSx0aGlzLl93aWRnZXQuY2xhc3NMaXN0LnJlbW92ZSgiaS1jbG9zZWQiKSl9KSkpOihlPy4oKSx0aGlzLl93aWRnZXQuY2xhc3NMaXN0LnJlbW92ZSgiaS1jbG9zZWQiKSksdGhpcy5fb25XaW5kb3dSZXNpemUoKSl9aGlkZShlPSExKXtpZighdGhpcy5pc1Zpc2libGUoKSlyZXR1cm47Y29uc3QgdD10aGlzLl93aWRnZXQuY2xhc3NMaXN0LmNvbnRhaW5zKCJpLWNsb3NlZCIpO2lmKHRoaXMuX3dpZGdldC5jbGFzc0xpc3QuYWRkKCJpLWNsb3NlZCIpLHRoaXMuX3Zpc2liaWxpdHkuc2V0VmFsdWUoITEpLGV8fHQpdGhpcy5fc2V0SGlkZGluZ1RpbWVvdXQobnVsbCksdGhpcy5fd2lkZ2V0LmNsYXNzTGlzdC5hZGQoImktaGlkZGVuIik7ZWxzZXsKY29uc3QgZT1zZXRUaW1lb3V0KCgoKT0+e3RoaXMuX3NldEhpZGRpbmdUaW1lb3V0KG51bGwpLHRoaXMuX3dpZGdldC5jbGFzc0xpc3QuYWRkKCJpLWhpZGRlbiIpfSksdGhpcy5oaWRlRHVyYXRpb24oKSk7dGhpcy5fc2V0SGlkZGluZ1RpbWVvdXQoZSl9d2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsdGhpcy5fd2luZG93UmVzaXplTGlzdGVuZXIpfXJhaXNlKCl7eS5fdG9vbGJhcnMubGVuZ3RoK3kuX3N0YXJ0WkluZGV4IT09dGhpcy5fekluZGV4KCkmJih5Ll90b29sYmFycy5zcGxpY2UoeS5fdG9vbGJhcnMuaW5kZXhPZih0aGlzKSwxKSx5Ll90b29sYmFycy5wdXNoKHRoaXMpLHkuX3VwZGF0ZUFsbFpJbmRleGVzKCkpfWhpZGVEdXJhdGlvbigpe3JldHVybi43NSpyLmR1cn1hZGRXaWRnZXQoZSx0PXt9KXtjb25zdCBvPXRoaXMud2lkZ2V0c0NvdW50KCk7aWYodm9pZCAwPT09dC5pbmRleCYmKHQuaW5kZXg9byksdC5pbmRleDwwfHx0LmluZGV4Pm8pdGhyb3cgbmV3IEVycm9yKGBJbmRleCBtdXN0IGJlIGluIFswLCAke299XWApO2NvbnN0IG49ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7bi5jbGFzc05hbWU9InR2LWZsb2F0aW5nLXRvb2xiYXJfX3dpZGdldCBqcy13aWRnZXQiLG4uYXBwZW5kQ2hpbGQoZSk7Y29uc3QgaT10LmluZGV4PT09bz9udWxsOnRoaXMuX2NvbnRlbnQuY2hpbGROb2Rlcy5pdGVtKHQuaW5kZXgpO3RoaXMuX2NvbnRlbnQuaW5zZXJ0QmVmb3JlKG4saSksdGhpcy5fb25XaW5kb3dSZXNpemUoKSx0aGlzLl9zb3J0YWJsZT8udXBkYXRlTGlzdCgpfWdldFJlYWN0V2lkZ2V0Q29udGFpbmVyKCl7cmV0dXJuIHRoaXMuX3JlYWN0V2lkZ2V0c0NvbnRhaW5lcn1vbldpZGdldHNSZW9yZGVyZWQoKXtyZXR1cm4gdGhpcy5fcmVvcmRlcmVkRGVsZWdhdGV9b25Tb3J0YWJsZVN0YXJ0KCl7cmV0dXJuIHRoaXMuX3N0YXJ0U29ydGFibGVEZWxlZ2F0ZX1yZW1vdmVXaWRnZXQoZSl7Y29uc3QgdD10aGlzLl9maW5kV3JhcHBlckZvcldpZGdldChlKTt0JiYodGhpcy5fY29udGVudC5yZW1vdmVDaGlsZCh0KSx0aGlzLl9vbldpbmRvd1Jlc2l6ZSgpLHRoaXMuX3NvcnRhYmxlPy51cGRhdGVMaXN0KCkpfXdpZGdldHNDb3VudCgpe3JldHVybiB0aGlzLl9jb250ZW50LmNoaWxkTm9kZXMubGVuZ3RofXNob3dXaWRnZXQoZSl7Y29uc3QgdD10aGlzLl9maW5kV3JhcHBlckZvcldpZGdldChlKTt0JiZ0LmNsYXNzTGlzdC5yZW1vdmUoImktaGlkZGVuIil9aGlkZVdpZGdldChlKXtjb25zdCB0PXRoaXMuX2ZpbmRXcmFwcGVyRm9yV2lkZ2V0KGUpO3QmJnQuY2xhc3NMaXN0LmFkZCgiaS1oaWRkZW4iKX1yZW1vdmVXaWRnZXRzKCl7Zm9yKDt0aGlzLl9jb250ZW50LmZpcnN0Q2hpbGQ7KXRoaXMuX2NvbnRlbnQucmVtb3ZlQ2hpbGQodGhpcy5fY29udGVudC5maXJzdENoaWxkKTt0aGlzLl9vbldpbmRvd1Jlc2l6ZSgpfW9uQ29udGV4dE1lbnUoZSl7aWYoaS5tb2JpbGV0b3VjaCl7KG5ldyBkKS5sb2FkKCkudGhlbigodD0+e2NvbnN0IG89bmV3IHQodGhpcy5fd2lkZ2V0KTtvLmdldCgicHJlc3MiKS5zZXQoe3RpbWU6NTAwfSksby5vbigicHJlc3MiLCh0PT57dGhpcy5fcHJldmVudFdpZGdldFRvdWNoRW5kRXZlbnQoKSxlKHQuc3JjRXZlbnQpfSkpfSkpfWVsc2UgdGhpcy5fd2lkZ2V0LmFkZEV2ZW50TGlzdGVuZXIoImNvbnRleHRtZW51IixlKX1jaGVja1Bvc2l0aW9uKCl7Y29uc3QgZT10aGlzLl9nZXRDb3JyZWN0ZWRXaWRnZXRSZWN0KCksdD17bGVmdDplLmxlZnQsdG9wOmUudG9wfTt0aGlzLl9jb3JyZWN0UG9zaXRpb24odCksZS5sZWZ0PT09dC5sZWZ0JiZlLnRvcD09PXQudG9wfHwodGhpcy5fd2lkZ2V0LnN0eWxlLmxlZnQ9dC5sZWZ0KyJweCIsdGhpcy5fd2lkZ2V0LnN0eWxlLnRvcD10LnRvcCsicHgiKX1fZGV0ZXJtaW5lQ3VycmVudExheW91dFZlcnRpY2FsKGUpe2NvbnN0IHQ9dGhpcy5faXNWZXJ0aWNhbD9lLmhlaWdodDplLndpZHRoO3JldHVybiB3aW5kb3cuaW5uZXJXaWR0aDx0JiZ3aW5kb3cuaW5uZXJXaWR0aDx3aW5kb3cuaW5uZXJIZWlnaHR9X2dldFdpZGdldCgpe3JldHVybiB0aGlzLl93aWRnZXR9X2ZpbmRXcmFwcGVyRm9yV2lkZ2V0KGUpe2NvbnN0IHQ9dGhpcy5fY29udGVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJqcy13aWRnZXQiKTtmb3IobGV0IG89MDtvPHQubGVuZ3RoOysrbyl7Y29uc3Qgbj10Lml0ZW0obyk7aWYobi5jb250YWlucyhlKSlyZXR1cm4gbn1yZXR1cm4gbnVsbH1fb25WZXJ0aWNhbENoYW5nZWQoZSx0KXt9X2NvcnJlY3RQb3NpdGlvbihlKXtjb25zdCB0PXRoaXMuX2dldENvcnJlY3RlZFdpZGdldFJlY3QoKSxvPXRoaXMuX2dldFBvc2l0aW9uRnJvbVNldHRpbmdzKCksbj13aW5kb3cuaW5uZXJXaWR0aC10LnJpZ2h0LGk9d2luZG93LmlubmVySGVpZ2h0LXQuYm90dG9tO248MD9lLmxlZnQ9TWF0aC5tYXgoMCx3aW5kb3cuaW5uZXJXaWR0aC10LndpZHRoKTpvLmxlZnQ+ZS5sZWZ0JiYoZS5sZWZ0PU1hdGgubWluKGUubGVmdCtuLG8ubGVmdCkpLGk8MD9lLnRvcD1NYXRoLm1heCgwLHdpbmRvdy5pbm5lckhlaWdodC10LmhlaWdodCk6by50b3A+ZS50b3AmJihlLnRvcD1NYXRoLm1pbihlLnRvcCtpLG8udG9wKSl9X2dldENvcnJlY3RlZFdpZGdldFJlY3QoKXtjb25zdCBlPXRoaXMuX3dpZGdldC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtpZih0aGlzLl93aWRnZXQuY2xhc3NMaXN0LmNvbnRhaW5zKCJpLWNsb3NlZCIpKXtjb25zdCB0PTEvLjkyNS0xLG89ZS53aWR0aCp0LG49ZS5oZWlnaHQqdDtyZXR1cm57Ym90dG9tOmUuYm90dG9tK24vMixoZWlnaHQ6ZS5oZWlnaHQrbixsZWZ0OmUubGVmdC1vLzIscmlnaHQ6ZS5yaWdodCtvLzIsdG9wOmUudG9wLW4vMix3aWR0aDplLndpZHRoK299fXJldHVybiBlfV9nZXRQb3NpdGlvbkZyb21TZXR0aW5ncygpe3JldHVybiBzLnNlc3Npb25UaGVuTG9jYWwuZ2V0KHRoaXMuX29wdGlvbnMucG9zaXRpb25TZXR0aW5nc0tleSx0aGlzLl9vcHRpb25zLmRlZmF1bHRQb3NpdGlvbiwoZnVuY3Rpb24oZSl7CnJldHVybiBudWxsIT09ZSYmIm9iamVjdCI9PXR5cGVvZiBlJiYidG9wImluIGUmJiJsZWZ0ImluIGUmJiJudW1iZXIiPT10eXBlb2YgZS50b3AmJiJudW1iZXIiPT10eXBlb2YgZS5sZWZ0fSkpfV9zZXRIaWRkaW5nVGltZW91dChlKXtudWxsIT09dGhpcy5faGlkZGluZ1RpbWVvdXRJZCYmY2xlYXJUaW1lb3V0KHRoaXMuX2hpZGRpbmdUaW1lb3V0SWQpLHRoaXMuX2hpZGRpbmdUaW1lb3V0SWQ9ZX1fcHJldmVudFdpZGdldFRvdWNoRW5kRXZlbnQoKXtjb25zdCBlPXQ9Pnt0LnByZXZlbnREZWZhdWx0KCksdGhpcy5fd2lkZ2V0LnJlbW92ZUV2ZW50TGlzdGVuZXIoInRvdWNoZW5kIixlKX07dGhpcy5fd2lkZ2V0LmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoZW5kIixlKX1fdXBkYXRlTGF5b3V0VHlwZSgpe3RoaXMuX3dpZGdldC5jbGFzc0xpc3QudG9nZ2xlKCJpLXZlcnRpY2FsIix0aGlzLl9pc1ZlcnRpY2FsKX1fdXBkYXRlQXhpc09wdGlvbigpe3RoaXMuX3NvcnRhYmxlJiZ0aGlzLl9zb3J0YWJsZS51cGRhdGVPcHRpb25zKHtheGlzOnRoaXMuX2lzVmVydGljYWw/InkiOiJ4In0pfV9vbldpbmRvd1Jlc2l6ZSgpe2lmKCJhdXRvIj09PSh0aGlzLl9vcHRpb25zLmxheW91dHx8ImF1dG8iKSl7Y29uc3QgZT10aGlzLl9pc1ZlcnRpY2FsLHQ9dGhpcy5fZ2V0Q29ycmVjdGVkV2lkZ2V0UmVjdCgpO3RoaXMuX2lzVmVydGljYWw9dGhpcy5fZGV0ZXJtaW5lQ3VycmVudExheW91dFZlcnRpY2FsKHQpLHRoaXMuX3VwZGF0ZUxheW91dFR5cGUoKSxlIT09dGhpcy5faXNWZXJ0aWNhbCYmKHRoaXMuX29uVmVydGljYWxDaGFuZ2VkKHRoaXMuX2lzVmVydGljYWwsZSksdGhpcy5fdXBkYXRlQXhpc09wdGlvbigpKX10aGlzLmNoZWNrUG9zaXRpb24oKSx0aGlzLl9yZXNpemVSZXNwb25zaXZlKCl9X3Jlc2l6ZVJlc3BvbnNpdmUoKXtpZihudWxsPT09dGhpcy5fcmVzcG9uc2l2ZVJlc2l6ZUZ1bmN0aW9uKXJldHVybjtsZXQgZT10aGlzLl9vcHRpb25zLmxheW91dHx8ImF1dG8iOyJhdXRvIj09PWUmJihlPXRoaXMuX2lzVmVydGljYWw/InZlcnRpY2FsIjoiaG9yaXpvbnRhbCIpO2NvbnN0IHQ9InZlcnRpY2FsIj09PWU/dGhpcy5fd2lkZ2V0LmNsaWVudEhlaWdodDp0aGlzLl93aWRnZXQuY2xpZW50V2lkdGgsbz0oInZlcnRpY2FsIj09PWU/d2luZG93LmlubmVySGVpZ2h0OndpbmRvdy5pbm5lcldpZHRoKS10O3RoaXMuX3Jlc3BvbnNpdmVSZXNpemVGdW5jdGlvbih0LG8sZSl9X3NldFpJbmRleChlKXt0aGlzLl93aWRnZXQuc3R5bGUuekluZGV4PVN0cmluZyhlKX1fekluZGV4KCl7cmV0dXJuIE51bWJlcih0aGlzLl93aWRnZXQuc3R5bGUuekluZGV4KX1fbG9hZFBvc2l0aW9uKCl7Y29uc3QgZT10aGlzLl9nZXRQb3NpdGlvbkZyb21TZXR0aW5ncygpO3RoaXMuX3dpZGdldC5zdHlsZS5sZWZ0PU1hdGgucm91bmQoZS5sZWZ0KSsicHgiLHRoaXMuX3dpZGdldC5zdHlsZS50b3A9TWF0aC5yb3VuZChlLnRvcCkrInB4Iix0aGlzLl9vbldpbmRvd1Jlc2l6ZSgpfV9zYXZlUG9zaXRpb24oKXtjb25zdCBlPXRoaXMuX3dpZGdldC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtzLnNlc3Npb25UaGVuTG9jYWwuc2V0KHRoaXMuX29wdGlvbnMucG9zaXRpb25TZXR0aW5nc0tleSx7bGVmdDplLmxlZnQsdG9wOmUudG9wfSl9X2luaXQoKXt0aGlzLl9sb2FkUG9zaXRpb24oKSx0aGlzLl9kcmFnZ2FibGU9bmV3IGguRHJhZ2dhYmxlKHtzb3VyY2U6dGhpcy5fd2lkZ2V0LGNvbnRhaW5tZW50OiJ3aW5kb3ciLGhhbmRsZToiLmpzLWRyYWciLHN0YXJ0Om4uZ2xvYmFsQ2xvc2VNZW51LHN0b3A6dGhpcy5fc2F2ZVBvc2l0aW9uLmJpbmQodGhpcyl9KSx0aGlzLl9pbml0U29ydGFibGUoKSx0aGlzLl93aWRnZXQuYWRkRXZlbnRMaXN0ZW5lcigicG9pbnRlcmRvd24iLHRoaXMucmFpc2UuYmluZCh0aGlzKSl9X2luaXRTb3J0YWJsZSgpe2lmKCF0aGlzLl9vcHRpb25zLmFsbG93U29ydGFibGUpcmV0dXJuO2xldCBlPS0xO3RoaXMuX3NvcnRhYmxlPW5ldyB2KHtzb3VyY2U6dGhpcy5fY29udGVudCxheGlzOnRoaXMuX2lzVmVydGljYWw/InkiOiJ4IixzdGFydDp0PT57KDAsbi5nbG9iYWxDbG9zZU1lbnUpKCksZT10LHRoaXMuX3N0YXJ0U29ydGFibGVEZWxlZ2F0ZS5maXJlKGUpfSxzdG9wOnQ9Pnt0aGlzLl9yZW9yZGVyZWREZWxlZ2F0ZS5maXJlKGUsdCl9fSl9c3RhdGljIF91cGRhdGVBbGxaSW5kZXhlcygpe3kuX3Rvb2xiYXJzLmZvckVhY2goKChlLHQpPT57ZS5fc2V0WkluZGV4KHkuX3N0YXJ0WkluZGV4K3QpfSkpfX15Ll9zdGFydFpJbmRleD0yMCx5Ll90b29sYmFycz1bXX0sMjQ3MjEyKGUsdCxvKXsidXNlIHN0cmljdCI7by5yKHQpLG8uZCh0LHtMaW5lVG9vbFByb3BlcnRpZXNXaWRnZXQ6KCk9Pkd0fSk7dmFyIG49byg3Nzk0NzQpLGk9bygxMjkzNjUpLHI9bygxODUyNzEpLHM9byg5MzAyMzEpLGE9byg1NzA2MDMpLGw9byg5NTI5MDApLGM9byg2MDE4NDEpLHU9byg2NzgyODUpLGQ9bygyMjI5MTUpLGg9byg3MDc5NjMpLHA9byg5MTQ0ODcpLG09by5uKHApLGc9bygxMzg2MzgpLHY9bygyNzMzMTApLGY9bygyOTY0NDkpLF89bygxMDI1NjcpLGI9bygxNTM3MzQpLHc9bygzODcyMzEpLEM9bygxMzEzMjEpLHk9bygyNjY0ODYpLFQ9byg1Nzk0NDUpLEU9byg1MTgxNjQpLHg9bygyNDk3ODcpLFM9bygxNTA5OCksTD1vKDUyMjU2MSk7Y29uc3Qgaz0oMCx3Lm1lcmdlVGhlbWVzKShiLkRFRkFVTFRfUE9QVVBfTUVOVV9JVEVNX1RIRU1FLEwpLEE9W3t2YWx1ZToxLGljb246eX0se3ZhbHVlOjIsaWNvbjpUfSx7dmFsdWU6MyxpY29uOkV9LHt2YWx1ZTo0LGljb246eH1dO2Z1bmN0aW9uIE0oZSl7Y29uc3R7bXVsdGlwbGVQcm9wZXJ0eTp0LHRpdGxlOm8sdW5kb1RleHQ6aSxwcm9wZXJ0eUFwcGxpZXI6cixpc1Rvb2xiYXJGaXhlZDpzLGNsYXNzTmFtZTphLGlzU21hbGxTY3JlZW46bH09ZSxjPSgwLF8udXNlUHJvcGVydHkpKCgwLGcuZW5zdXJlRGVmaW5lZCkodCkpLHU9Im1peGVkIj09PWN8fCFjLGQ9ZnVuY3Rpb24oZSl7Y29uc3QgdD1BLmZpbmQoKHQ9PnQudmFsdWU9PT1lKSk7aWYoIXQpcmV0dXJuIFM7cmV0dXJuIHQuaWNvbgp9KGMpO3JldHVybiBuLmNyZWF0ZUVsZW1lbnQoZi5Ub29sV2lkZ2V0TWVudSx7Y2xhc3NOYW1lOmEsYXJyb3c6ITEsdGl0bGU6bywiZGF0YS1uYW1lIjplWyJkYXRhLW5hbWUiXSxtZW51RGF0YU5hbWU6YCR7ZVsiZGF0YS1uYW1lIl19LW1lbnVgLHZlcnRpY2FsRHJvcERpcmVjdGlvbjpzP0MuVmVydGljYWxEcm9wRGlyZWN0aW9uLkZyb21Cb3R0b21Ub1RvcDp2b2lkIDAsaG9yaXpvbnRhbERyb3BEaXJlY3Rpb246cz9DLkhvcml6b250YWxEcm9wRGlyZWN0aW9uLkZyb21SaWdodFRvTGVmdDp2b2lkIDAsaG9yaXpvbnRhbEF0dGFjaEVkZ2U6cz9DLkhvcml6b250YWxBdHRhY2hFZGdlLlJpZ2h0OnZvaWQgMCx2ZXJ0aWNhbEF0dGFjaEVkZ2U6cz9DLlZlcnRpY2FsQXR0YWNoRWRnZS5Ub3A6dm9pZCAwLGNvbnRlbnQ6bi5jcmVhdGVFbGVtZW50KCJkaXYiLG51bGwsdT9uLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpMLm11bHRpV2lkdGh9LG4uY3JlYXRlRWxlbWVudCh2Lkljb24se2ljb246U30pKTpuLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpMLmJ1dHRvbldyYXB9LCFsJiZuLmNyZWF0ZUVsZW1lbnQodi5JY29uLHtpY29uOmR9KSxuLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTptKCkoIWwmJkwuYnV0dG9uTGFiZWwpfSxgJHtjfXB4YCkpKX0sQS5tYXAoKCh7dmFsdWU6ZSxpY29uOnR9KT0+bi5jcmVhdGVFbGVtZW50KGIuUG9wdXBNZW51SXRlbSx7a2V5OmUsdGhlbWU6ayxsYWJlbDpgJHtlfXB4YCxpY29uOnQsaXNBY3RpdmU6ZT09PWMsb25DbGljazpoLG9uQ2xpY2tBcmc6ZX0pKSkpO2Z1bmN0aW9uIGgoZSl7ZSYmdCYmKHIuYmVnaW5VbmRvTWFjcm8oaSksdC5zZXRWYWx1ZShlLHZvaWQgMCx7YXBwbHlWYWx1ZTooZSx0KT0+e3Iuc2V0UHJvcGVydHkoZSx0LGkpfX0pLHIuZW5kVW5kb01hY3JvKCkpfX12YXIgTj1vKDEzNDY3KSxEPW8oODczNTczKSxQPW8oODE3NDMzKSxCPW8oNDgzMjQ3KSxJPW8oMjQyNjU3KSxGPW8oOTc3MDgxKTtmdW5jdGlvbiBXKGUpe2NvbnN0e3Byb3BlcnR5OnQsaWNvbjpvLHByb3BlcnR5QXBwbGllcjppLHRpdGxlOnIsdW5kb1RleHQ6cyxpc1Rvb2xiYXJGaXhlZDphLGNsYXNzTmFtZTpsfT1lLGM9KDAsXy51c2VQcm9wZXJ0eSkodCksdT0oMCxuLnVzZVJlZikobnVsbCksZD1jPygwLE4ucGFyc2VSZ2JhKShjKVszXTp2b2lkIDAsaD0iIj09PWMscD1TdHJpbmcoVCgpKS50b0xvd2VyQ2FzZSgpPT09SS53aGl0ZSxbYix3LHldPSgwLFAudXNlQ3VzdG9tQ29sb3JzKSgpO3JldHVybiBuLmNyZWF0ZUVsZW1lbnQoZi5Ub29sV2lkZ2V0TWVudSx7Y2xhc3NOYW1lOmwsdmVydGljYWxEcm9wRGlyZWN0aW9uOmE/Qy5WZXJ0aWNhbERyb3BEaXJlY3Rpb24uRnJvbUJvdHRvbVRvVG9wOnZvaWQgMCxob3Jpem9udGFsRHJvcERpcmVjdGlvbjphP0MuSG9yaXpvbnRhbERyb3BEaXJlY3Rpb24uRnJvbUxlZnRUb1JpZ2h0OnZvaWQgMCxob3Jpem9udGFsQXR0YWNoRWRnZTphP0MuSG9yaXpvbnRhbEF0dGFjaEVkZ2UuTGVmdDp2b2lkIDAsdmVydGljYWxBdHRhY2hFZGdlOmE/Qy5WZXJ0aWNhbEF0dGFjaEVkZ2UuVG9wOnZvaWQgMCxjb250ZW50Om4uY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOkYud3JhcH0sbi5jcmVhdGVFbGVtZW50KHYuSWNvbix7Y2xhc3NOYW1lOkYuaWNvbixpY29uOm99KSxuLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpGLmNvbG9yQmd9LG4uY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOm0oKShGLmNvbG9yLGgmJkYubXVsdGljb2xvcixwJiZGLndoaXRlKSxzdHlsZTpoP3ZvaWQgMDp7YmFja2dyb3VuZENvbG9yOmN9fSkpKSxhcnJvdzohMSx0aXRsZTpyLHJlZjp1LCJkYXRhLW5hbWUiOmVbImRhdGEtbmFtZSJdLG1lbnVEYXRhTmFtZTpgJHtlWyJkYXRhLW5hbWUiXX0tbWVudWB9LG4uY3JlYXRlRWxlbWVudChCLkNvbG9yUGlja2VyLHtjb2xvcjpUKCksb3BhY2l0eTpkLG9uQ29sb3JDaGFuZ2U6ZnVuY3Rpb24oZSx0KXtjb25zdCBvPWM/KDAsRC5hbHBoYVRvVHJhbnNwYXJlbmN5KSgoMCxOLnBhcnNlUmdiYSkoYylbM10pOjA7RSgoMCxELmdlbmVyYXRlQ29sb3IpKFN0cmluZyhlKSxvLHRydWUpKSx0fHwoMCxnLmVuc3VyZU5vdE51bGwpKHUuY3VycmVudCkuY2xvc2UoKX0sb25PcGFjaXR5Q2hhbmdlOmZ1bmN0aW9uKGUpe0UoKDAsRC5nZW5lcmF0ZUNvbG9yKShjLCgwLEQuYWxwaGFUb1RyYW5zcGFyZW5jeSkoZSksITApKX0sc2VsZWN0T3BhY2l0eTp2b2lkIDAhPT1kLHNlbGVjdEN1c3RvbTohMCxjdXN0b21Db2xvcnM6YixvbkFkZENvbG9yOmZ1bmN0aW9uKGUpe3coZSksKDAsZy5lbnN1cmVOb3ROdWxsKSh1LmN1cnJlbnQpLmNsb3NlKCl9LG9uUmVtb3ZlQ3VzdG9tQ29sb3I6eX0pKTtmdW5jdGlvbiBUKCl7cmV0dXJuIGM/KDAsTi5yZ2JUb0hleFN0cmluZykoKDAsTi5wYXJzZVJnYikoYykpOm51bGx9ZnVuY3Rpb24gRShlKXtpLnNldFByb3BlcnR5KHQsZSxzKX19dmFyIFI9byg4OTA4MzUpLFY9byg3NjgyOTIpO2NsYXNzIE8gZXh0ZW5kcyBWLlByb3BlcnR5e2NvbnN0cnVjdG9yKGUsdCxvKXtzdXBlcigpLHRoaXMuX2xpc3RlbmVyc01hcHBlcnM9W10sdGhpcy5faXNQcm9jZXNzPSExLHRoaXMuX2Jhc2VQcm9wZXJ0eT1lLHRoaXMuX3Byb3BlcnR5QXBwbGllcj10LHRoaXMuX3VuZG9UZXh0PW99ZGVzdHJveSgpe3RoaXMuX2Jhc2VQcm9wZXJ0eS5kZXN0cm95KCksc3VwZXIuZGVzdHJveSgpfXZhbHVlKCl7cmV0dXJuIHRoaXMuX2Jhc2VQcm9wZXJ0eS52YWx1ZSgpfXNldFZhbHVlKGUpe3RoaXMuX2lzUHJvY2Vzcz0hMCx0aGlzLl9iYXNlUHJvcGVydHkuc2V0VmFsdWUoZSx2b2lkIDAse2FwcGx5VmFsdWU6KGUsdCk9PnRoaXMuX3Byb3BlcnR5QXBwbGllci5zZXRQcm9wZXJ0eShlLHQsdGhpcy5fdW5kb1RleHQpfSksdGhpcy5faXNQcm9jZXNzPSExLHRoaXMuX2xpc3RlbmVyc01hcHBlcnMuZm9yRWFjaCgoZT0+e2UubWV0aG9kLmNhbGwoZS5vYmosdGhpcywiIil9KSl9c3Vic2NyaWJlKGUsdCl7Y29uc3Qgbz1vPT57dGhpcy5faXNQcm9jZXNzfHx0LmNhbGwoZSx0aGlzLCIiKX0sbj17Cm9iajplLG1ldGhvZDp0LGNhbGxiYWNrOm99O3RoaXMuX2xpc3RlbmVyc01hcHBlcnMucHVzaChuKSx0aGlzLl9iYXNlUHJvcGVydHkuc3Vic2NyaWJlKGUsbyl9dW5zdWJzY3JpYmUoZSx0KXtjb25zdCBvPSgwLGcuZW5zdXJlRGVmaW5lZCkodGhpcy5fbGlzdGVuZXJzTWFwcGVycy5maW5kKChvPT5vLm9iaj09PWUmJm8ubWV0aG9kPT09dCkpPy5jYWxsYmFjayk7dGhpcy5fYmFzZVByb3BlcnR5LnVuc3Vic2NyaWJlKGUsbyl9dW5zdWJzY3JpYmVBbGwoZSl7dGhpcy5fYmFzZVByb3BlcnR5LnVuc3Vic2NyaWJlQWxsKGUpfX12YXIgej1vKDIxNDc1MCksSD1vKDczNDY0MSksaj1vKDM4MjQwOCksWj1vKDYwOTUyOCk7Y29uc3QgVT1qLkZMT0FUSU5HX1RPT0xCQVJfUkVBQ1RfV0lER0VUU19DTEFTUysiX19idXR0b24iO2Z1bmN0aW9uIEcoZSl7Y29uc3R7dGVtcGxhdGVCdXR0b246dCxjYW5jZWxCdXR0b246byxwcm9wZXJ0eUJ1dHRvbnM6aSxjb21tb25CdXR0b25zOnIsYWN0aW9uQnV0dG9uczpzLGlzRHJhd2luZ0ZpbmlzaGVkOmEsaXNUb29sYmFyRml4ZWQ6bCxidXR0b25DbGFzc05hbWU6YyxhY3RpdmVDaGFydFdpZGdldDp1fT1lLGQ9dS5oYXNNb2RlbCgpJiZ1Lm1vZGVsKCkuc2VsZWN0aW9uKCkuZGF0YVNvdXJjZXMoKTtyZXR1cm4gZCYmZC5sZW5ndGg/bi5jcmVhdGVFbGVtZW50KEguTWF0Y2hNZWRpYU1hcCx7cnVsZXM6e2lzU21hbGxXaWR0aDpaLkRpYWxvZ0JyZWFrcG9pbnRzLlRhYmxldFNtYWxsLGlzU21hbGxIZWlnaHQ6IihtYXgtaGVpZ2h0OiA0NDBweCkifX0sKCh7aXNTbWFsbFdpZHRoOmUsaXNTbWFsbEhlaWdodDp0fSk9Pm4uY3JlYXRlRWxlbWVudChuLkZyYWdtZW50LG51bGwsaCgpLGEmJm4uY3JlYXRlRWxlbWVudChuLkZyYWdtZW50LG51bGwsQm9vbGVhbihzLmxlbmd0aCkmJnMubWFwKCgoZSx0KT0+bi5jcmVhdGVFbGVtZW50KGUuY29tcG9uZW50LHsuLi5lLnByb3BzLGtleTpgJHtlLnByb3BzLnRpdGxlfV8ke3R9YCxjbGFzc05hbWU6bSgpKFUsYyl9KSkpLEJvb2xlYW4oaS5sZW5ndGgpJiZpLm1hcCgoKG8saSk9Pm4uY3JlYXRlRWxlbWVudChvLmNvbXBvbmVudCx7Li4uby5wcm9wcyxrZXk6YCR7by5wcm9wcy50aXRsZX1fJHtpfWAsY2xhc3NOYW1lOm0oKShVLGMpLGlzU21hbGxTY3JlZW46ZXx8dCxpc1Rvb2xiYXJGaXhlZDpsfSkpKSxCb29sZWFuKHIubGVuZ3RoKSYmci5tYXAoKChvLGkpPT57Y29uc3Qgcj1lfHx0O3JldHVybiByP28uc2hvd0ZvclNtYWxsU2NyZWVuP24uY3JlYXRlRWxlbWVudChvLmNvbXBvbmVudCx7Li4uby5wcm9wcyxpc1NtYWxsU2NyZWVuOnIsa2V5OmAke28ucHJvcHMudGl0bGV9XyR7aX1gLGNsYXNzTmFtZTptKCkoVSxjKX0pOm51bGw6bi5jcmVhdGVFbGVtZW50KG8uY29tcG9uZW50LHsuLi5vLnByb3BzLGtleTpgJHtvLnByb3BzLnRpdGxlfV8ke2l9YCxjbGFzc05hbWU6bSgpKFUsYyl9KX0pKSksbnVsbCE9PW8mJm4uY3JlYXRlRWxlbWVudChvLmNvbXBvbmVudCx7Li4uby5wcm9wcyxrZXk6YCR7by5wcm9wcy50aXRsZX1gLGNsYXNzTmFtZTptKCkoVSxjKSxpc1NtYWxsU2NyZWVuOmV8fHQsaXNUb29sYmFyRml4ZWQ6bH0pKSkpOmgoKTtmdW5jdGlvbiBoKCl7cmV0dXJuIG51bGw9PT10P251bGw6bi5jcmVhdGVFbGVtZW50KHQuY29tcG9uZW50LHsuLi50LnByb3BzLGlzVG9vbGJhckZpeGVkOmwsaXNEcmF3aW5nRmluaXNoZWQ6YSxjbGFzc05hbWU6bSgpKFUsYyl9KX19dmFyIEs9bygzODY5MzEpLHE9byg0MDg0MSksJD1vKDk0Njk0Mik7ZnVuY3Rpb24gUShlKXtjb25zdHt0aXRsZTp0LGFjdGl2ZUNoYXJ0V2lkZ2V0Om8sY2xhc3NOYW1lOml9PWU7cmV0dXJuIG4uY3JlYXRlRWxlbWVudChxLlRvb2xXaWRnZXRJY29uQnV0dG9uLHtjbGFzc05hbWU6aSxpY29uOiQsdGl0bGU6dCxvbkNsaWNrOmFzeW5jIGZ1bmN0aW9uKCl7KDAsSy50cmFja0V2ZW50KSgiR1VJIiwiQ29udGV4dCBhY3Rpb24gb24gZHJhd2luZ3MiLCJTZXR0aW5ncyIpO2NvbnN0IGU9by5tb2RlbCgpLnNlbGVjdGlvbigpLmxpbmVEYXRhU291cmNlcygpLHQ9ZS5sZW5ndGg7MT09PXQ/YXdhaXQgby5zaG93Q2hhcnRQcm9wZXJ0aWVzRm9yU291cmNlKGVbMF0sdm9pZCAwLHtvbldpZGdldDpvLm9uV2lkZ2V0KCl9KTp0PjEmJmF3YWl0IG8uc2hvd0NoYXJ0UHJvcGVydGllc0ZvclNvdXJjZXMoe3NvdXJjZXM6ZX0pfSwiZGF0YS1uYW1lIjoic2V0dGluZ3MifSl9dmFyIFg9byg0MDg2MzUpLFk9byg3MDM3OTkpO2Z1bmN0aW9uIEooZSl7Y29uc3R7Y2xhc3NOYW1lOnQsLi4ub309ZTtyZXR1cm4gbi5jcmVhdGVFbGVtZW50KFguVG9vbEJ1dHRvbix7Y2xhc3NOYW1lOm0oKSh0LFkuYnV0dG9uKSx0b29sdGlwUG9zaXRpb246Imhvcml6b250YWwiLC4uLm99KX12YXIgZWU9bygyODY3NjYpLHRlPW8oNTk3OTQxKTtmdW5jdGlvbiBvZShlKXtjb25zdHthY3RpdmVDaGFydFdpZGdldDp0LGNsYXNzTmFtZTppfT1lLHM9dC5tb2RlbCgpLnNlbGVjdGlvbigpLmxpbmVEYXRhU291cmNlcygpO2lmKDA9PT1zLmxlbmd0aClyZXR1cm4gbnVsbDtjb25zdCBhPXNbMF0ucHJvcGVydGllcygpLmZyb3plbixsPSgwLF8udXNlUHJvcGVydHkpKGEpLGM9bD97dG9vbHRpcDpyLnQobnVsbCx2b2lkIDAsbyg5NzExNjApKSxpY29uOmVlfTp7dG9vbHRpcDpyLnQobnVsbCx2b2lkIDAsbyg4MjkzMDcpKSxpY29uOnRlfTtyZXR1cm4gbi5jcmVhdGVFbGVtZW50KEose2NsYXNzTmFtZTppLGlzQWN0aXZlOkJvb2xlYW4obCksb25DbGljazpmdW5jdGlvbigpeygwLEsudHJhY2tFdmVudCkoIkdVSSIsIkNvbnRleHQgYWN0aW9uIG9uIGRyYXdpbmdzIiwiTG9jayIpLHQudG9nZ2xlTG9ja1NlbGVjdGVkT2JqZWN0KCl9LCJkYXRhLW5hbWUiOkJvb2xlYW4obCk/InVubG9jayI6ImxvY2siLC4uLmN9KX12YXIgbmU9byg0Njg0OTMpLGllPW8oMzU2NDM0KSxyZT1vKDYxMzg4MSk7ZnVuY3Rpb24gc2UoZSl7Y29uc3R7YWN0aXZlQ2hhcnRXaWRnZXQ6dCxjbGFzc05hbWU6aX09ZSxzPXQubW9kZWwoKS5zZWxlY3Rpb24oKS5saW5lRGF0YVNvdXJjZXMoKSxhPXMuZmluZCgoZT0+ZS5hbmNob3JhYmxlKCkpKSxsPSgwLApfLnVzZVByb3BlcnR5KShhPy5wcm9wZXJ0aWVzKCkuYW5jaG9yZWQ/P25ldyBWLlByb3BlcnR5KCExKSksYz0oMCxuZS51c2VQcm9taXNlKSgoYXN5bmMoKT0+e2NvbnN0e0FjdGlvbnNQcm92aWRlcjplfT1hd2FpdCgwLGllLmFjdGlvbnNQcm92aWRlck1vZHVsZSkoKTtyZXR1cm4gbmV3IGUodCkuYWN0aW9uRm9yTGluZVRvb2xzKHMsIkNoYXJ0LlNlbGVjdGVkT2JqZWN0LlRvZ2dsZUFuY2hvcmVkIil9KSwoZT0+ZT8uZGVzdHJveSgpKSxbdCxsXSk7cmV0dXJuIGM/bi5jcmVhdGVFbGVtZW50KEose2NsYXNzTmFtZTppLGlzQWN0aXZlOkJvb2xlYW4obCksdG9vbHRpcDpyLnQobnVsbCx2b2lkIDAsbygxMDQwNTYpKSxpY29uOnJlLmljb25zLmdldCgiQ2hhcnQuQW5jaG9yTGluZVRvb2wiKSxvbkNsaWNrOigpPT5jLmV4ZWN1dGUoKSwiZGF0YS1uYW1lIjoidG9nZ2xlLWFuY2hvciJ9KTpudWxsfXZhciBhZT1vKDU1ODk3OSk7ZnVuY3Rpb24gbGUoZSl7Y29uc3R7dGl0bGU6dCxhY3RpdmVDaGFydFdpZGdldDpvLGNsYXNzTmFtZTppfT1lO3JldHVybiBuLmNyZWF0ZUVsZW1lbnQocS5Ub29sV2lkZ2V0SWNvbkJ1dHRvbix7Y2xhc3NOYW1lOmksaWNvbjphZSx0aXRsZTp0LCJkYXRhLW5hbWUiOiJyZW1vdmUiLG9uQ2xpY2s6ZnVuY3Rpb24oKXsoMCxLLnRyYWNrRXZlbnQpKCJHVUkiLCJDb250ZXh0IGFjdGlvbiBvbiBkcmF3aW5ncyIsIlJlbW92ZSIpLG8ucmVtb3ZlU2VsZWN0ZWRTb3VyY2VzKCl9fSl9dmFyIGNlPW8oMzE4OTc0KSx1ZT1vKDYxNzU3NCk7Y29uc3QgZGU9Y2UuQ2hlY2tNb2JpbGUuYW55KCk7ZnVuY3Rpb24gaGUoZSl7aWYoIWRlKXJldHVybiBudWxsO2NvbnN0e2FjdGl2ZUNoYXJ0V2lkZ2V0OnQsY2xhc3NOYW1lOml9PWUscz10Lm1vZGVsKCkuc2VsZWN0aW9uKCkubGluZURhdGFTb3VyY2VzKCk7aWYoMD09PXMubGVuZ3RoKXJldHVybiBudWxsO2NvbnN0IGE9c1swXTtpZighYS5zbmFwVG80NURlZ3JlZXNBdmFpbGFibGUoKSlyZXR1cm4gbnVsbDtjb25zdCBsPSgwLF8udXNlUHJvcGVydHkpKCgwLHUuYWxpZ25UbzQ1RGVncmVlcykoKSksYz1sP3t0b29sdGlwOnIudChudWxsLHZvaWQgMCxvKDk1NDIwOCkpLGljb246dWV9Ont0b29sdGlwOnIudChudWxsLHZvaWQgMCxvKDMzNjEzOCkpLGljb246dWV9O3JldHVybiBuLmNyZWF0ZUVsZW1lbnQoSix7Y2xhc3NOYW1lOmksaXNBY3RpdmU6Qm9vbGVhbihsKSxvbkNsaWNrOmZ1bmN0aW9uKCl7KDAsSy50cmFja0V2ZW50KSgiR1VJIiwiQ29udGV4dCBhY3Rpb24gb24gZHJhd2luZ3MiLCJBbGlnbiB0byA0NSBkZWdyZWVzIik7Y29uc3QgZT0oMCx1LmFsaWduVG80NURlZ3JlZXMpKCkudmFsdWUoKTsoMCx1LmFsaWduVG80NURlZ3JlZXMpKCkuc2V0VmFsdWUoIWUpLGV8fHQubW9kZWwoKS5hbGlnblRvb2xUbzQ1RGVncmVlcyhhLCgwLGcuZW5zdXJlTm90TnVsbCkoYS5vd25lclNvdXJjZSgpKSl9LCJkYXRhLW5hbWUiOkJvb2xlYW4obCk/ImRpc2FibGUtYWxpZ24tdG8tNDUtZGVncmVlcyI6ImVuYWJsZS1hbGlnbi10by00NS1kZWdyZWVzIiwuLi5jfSl9dmFyIHBlPW8oNzQ3MTgxKTtmdW5jdGlvbiBtZShlKXtjb25zdHt0aXRsZTp0LGFjdGl2ZUNoYXJ0V2lkZ2V0Om8sY2xhc3NOYW1lOml9PWU7cmV0dXJuIG4uY3JlYXRlRWxlbWVudChxLlRvb2xXaWRnZXRJY29uQnV0dG9uLHtjbGFzc05hbWU6aSxpY29uOnBlLHRpdGxlOnQsImRhdGEtbmFtZSI6ImNhbmNlbC1kcmF3aW5nIixvbkNsaWNrOmZ1bmN0aW9uKCl7KDAsSy50cmFja0V2ZW50KSgiR1VJIiwiQ29udGV4dCBhY3Rpb24gb24gZHJhd2luZ3MiLCJDYW5jZWwgRHJhd2luZyIpLG8ucmVzZXREcmF3aW5nU3RhdGUoKX19KX12YXIgZ2U9byg3Mzg0NTgpLHZlPW8oMzYzMjY5KSxmZT1vKDg1NTI3MiksX2U9bygyNTA0MzkpLGJlPW8oMjM1NzI0KSx3ZT1vKDUwOTA0KTthc3luYyBmdW5jdGlvbiBDZShlLHQpe2lmKDA9PT10Lmxlbmd0aClyZXR1cm5bXTtjb25zdHtjcmVhdGVWaXN1YWxPcmRlckFjdGlvbjpuLGNyZWF0ZUNoYW5nZUludGVydmFsc1Zpc2liaWxpdGllc0FjdGlvbjppLGNyZWF0ZUFjdGlvblRvZ2dsZVZpc2liaWxpdHlEYXRhU291cmNlczpzLGNyZWF0ZVN5bmNEcmF3aW5nQWN0aW9uczphfT1hd2FpdCgwLGllLmFjdGlvbnNQcm92aWRlck1vZHVsZSkoKSxsPVtuKGUsdCksaShlLHQpXSxjPWZ1bmN0aW9uKGUsdCl7Y29uc3Qgbj1bXSxpPWJlLmlzTWFjS2V5Ym9hcmQ/IiArIjoiIixzPXQuZmlsdGVyKChlPT5lLmNsb25lYWJsZSgpKSk7cy5sZW5ndGg+MCYmbi5wdXNoKG5ldyB3ZS5BY3Rpb24oe2FjdGlvbklkOiJDaGFydC5MaW5lVG9vbC5DbG9uZSIsb3B0aW9uczp7bmFtZToiY2xvbmUiLGljb246bygzNDc5NzMpLHNob3J0Y3V0SGludDpiZS5odW1hblJlYWRhYmxlTW9kaWZpZXJzKGJlLk1vZGlmaWVycy5Nb2QpK2krIiBEcmFnIixsYWJlbDpyLnQobnVsbCx2b2lkIDAsbygyMDU4MikpLG9uRXhlY3V0ZTooKT0+e2UubW9kZWwoKS5jbG9uZUxpbmVUb29scyhzLCExKSwoMCxLLnRyYWNrRXZlbnQpKCJHVUkiLCJDb250ZXh0IGFjdGlvbiBvbiBkcmF3aW5ncyIsIkNsb25lIil9fX0pKTtjb25zdCBhPXQuZmlsdGVyKChlPT5lLmNvcGlhYmxlKCkpKTtpZihhLmxlbmd0aD4wKXtjb25zdCB0PXtuYW1lOiJjb3B5IixsYWJlbDpyLnQobnVsbCx2b2lkIDAsbygxMjkyMTQpKSxzaG9ydGN1dEhpbnQ6YmUuaHVtYW5SZWFkYWJsZU1vZGlmaWVycyhiZS5Nb2RpZmllcnMuTW9kKStpKyIgQyIsb25FeGVjdXRlOigpPT57ZS5jaGFydFdpZGdldENvbGxlY3Rpb24oKS5jbGlwYm9hcmQudWlSZXF1ZXN0Q29weShhKX19O24ucHVzaChuZXcgd2UuQWN0aW9uKHthY3Rpb25JZDoiQ2hhcnQuQ2xpcGJvYXJkLkNvcHlMaW5lVG9vbHMiLG9wdGlvbnM6dCxpZDoiQ29weSJ9KSl9cmV0dXJuIG59KGUsdCk7aWYoYy5sZW5ndGgmJmwucHVzaChuZXcgd2UuU2VwYXJhdG9yLC4uLmMpLHQuc29tZSgoZT0+ZS5pc1N5bmNocm9uaXphYmxlKCkpKSl7Y29uc3Qgbz1hKGUsdCk7by5sZW5ndGgmJmwucHVzaChuZXcgd2UuU2VwYXJhdG9yLC4uLm8pfQppZigxPT09dC5sZW5ndGgmJnRbMF0uYWRkaXRpb25hbEFjdGlvbnMpe2NvbnN0IG89YXdhaXQgdFswXS5hZGRpdGlvbmFsQWN0aW9ucyhlLm1vZGVsKCksIkZsb2F0aW5nVG9vbGJhckJ1dHRvbiIpO28uYWN0aW9ucy5sZW5ndGgmJihsLnB1c2gobmV3IHdlLlNlcGFyYXRvciksbC5wdXNoKC4uLm8uYWN0aW9ucykpfXJldHVybiBsLnB1c2gobmV3IHdlLlNlcGFyYXRvcixzKGUsdCkpLGx9dmFyIHllPW8oNDAwNDA2KTtmdW5jdGlvbiBUZShlKXtjb25zdHt0aXRsZTp0LGFjdGl2ZUNoYXJ0V2lkZ2V0Om8saXNTbWFsbFNjcmVlbjppLGNsYXNzTmFtZTpyfT1lLHM9by5tb2RlbCgpLGE9cy5zZWxlY3Rpb24oKS5saW5lRGF0YVNvdXJjZXMoKSxbbCxjXT0oMCxuLnVzZVN0YXRlKShbXSksdT0oMCxuLnVzZVJlZikobnVsbCksZD0oMCxuZS51c2VQcm9taXNlKSgoYXN5bmMoKT0+e2NvbnN0e0FjdGlvbnNQcm92aWRlcjplfT1hd2FpdCgwLGllLmFjdGlvbnNQcm92aWRlck1vZHVsZSkoKSx0PW5ldyBlKG8pLG49YVswXSxpPW4mJnMucGFuZUZvclNvdXJjZShuKTtyZXR1cm4gaT90LmNvbnRleHRNZW51QWN0aW9uc0ZvclNvdXJjZXMoYSxpKTpbXX0pLHZvaWQgMCxbbyxhXSksaD0oMCxuLnVzZUNhbGxiYWNrKSgoYXN5bmMoKT0+e2lmKGkpcmV0dXJuO2NvbnN0IGU9YXdhaXQgQ2UobyxhKTtjKEVlKGUpKX0pLFtpLG8sYV0pLHA9KDAsbi51c2VDYWxsYmFjaykoKGU9PntpZighaXx8bnVsbD09PWQpcmV0dXJuO2NvbnN0IHQ9RWUoZCk7d2luZG93Lm1hdGNoTWVkaWEoWi5EaWFsb2dCcmVha3BvaW50cy5UYWJsZXRTbWFsbCkubWF0Y2hlc3x8IWdlLmlzQW55TW9iaWxlP19lLkNvbnRleHRNZW51TWFuYWdlci5zaG93TWVudSh0LGUse21vZGU6Z2UuaXNBbnlNb2JpbGU/ImRyYXdlciI6Im1lbnUiLCJkYXRhLW5hbWUiOiJtb3JlLW1lbnUifSx7bWVudU5hbWU6IkxpbmVUb29sRmxvYXRpbmdUb29sYmFyTW9yZU1lbnUifSk6Yyh0KX0pLFtpLGRdKTtyZXR1cm4oMCxuLnVzZUVmZmVjdCkoKCgpPT57bC5sZW5ndGgmJnUuY3VycmVudD8udXBkYXRlKCl9KSxbbF0pLG4uY3JlYXRlRWxlbWVudChmLlRvb2xXaWRnZXRNZW51LHtjbGFzc05hbWU6cixyZWY6dSxhcnJvdzohMSxvbk9wZW46aCxvbkNsaWNrOnAsdGl0bGU6dCxjb250ZW50Om4uY3JlYXRlRWxlbWVudCh2Lkljb24se2ljb246eWV9KSwiZGF0YS1uYW1lIjoibW9yZSIsbWVudURhdGFOYW1lOiJtb3JlLW1lbnUiLG5vTW9tZW50dW1CYXNlZFNjcm9sbDohMCxjbG9zZU9uRXNjOiEwfSxuLmNyZWF0ZUVsZW1lbnQoZmUuQWN0aW9uc1RhYmxlLHtwYXJlbnRJc09wZW5lZDohMCxpdGVtczpsfSkpfWZ1bmN0aW9uIEVlKGUpe2lmKHZlLnRvdWNoJiYhd2luZG93Lm1hdGNoTWVkaWEoIihwb2ludGVyOmZpbmUpIikubWF0Y2hlcyl7Y29uc3QgdD1lLmZpbHRlcigoZT0+IkNvcHkiIT09ZS5pZCkpO2lmKHQubGVuZ3RoPT09ZS5sZW5ndGgpcmV0dXJuIHQ7Y29uc3Qgbz1bXTtyZXR1cm4gdC5mb3JFYWNoKChlPT57KCJzZXBhcmF0b3IiIT09ZS50eXBlfHxvLmxlbmd0aD4wJiYic2VwYXJhdG9yIiE9PW9bby5sZW5ndGgtMV0udHlwZSkmJm8ucHVzaChlKX0pKSxvfXJldHVybiBlfXZhciB4ZT1vKDI4ODc4MiksU2U9bygyMDY0OTUpLExlPW8oMzkxNTg1KSxrZT1vKDk2ODkzMCksQWU9bygyNjE1NjEpO2Z1bmN0aW9uIE1lKGUpe2NvbnN0e3Byb3BlcnR5OnQscHJvcGVydHlBcHBsaWVyOmksdGl0bGU6cyx1bmRvVGV4dDphLGlzVG9vbGJhckZpeGVkOmwsY2xhc3NOYW1lOmN9PWUsdT0oMCxfLnVzZVByb3BlcnR5KSh0KSxkPSgwLG4udXNlTWVtbykoKCgpPT5bbmV3IHdlLkFjdGlvbih7YWN0aW9uSWQ6IkNoYXJ0LkxpbmVUb29sLlRvb2xiYXIuQ2hhbmdlTGluZVN0eWxlVG9Tb2xpZCIsb3B0aW9uczp7aWNvbjpTZSxsYWJlbDpyLnQobnVsbCx2b2lkIDAsbyg1Mjc5MTIpKSxhY3RpdmU6eGUuTGluZVN0eWxlLlNvbGlkPT09dSxvbkV4ZWN1dGU6KCk9Pmkuc2V0UHJvcGVydHkodCx4ZS5MaW5lU3R5bGUuU29saWQsYSl9fSksbmV3IHdlLkFjdGlvbih7YWN0aW9uSWQ6IkNoYXJ0LkxpbmVUb29sLlRvb2xiYXIuQ2hhbmdlTGluZVN0eWxlVG9EYXNoZWQiLG9wdGlvbnM6e2ljb246TGUsbGFiZWw6ci50KG51bGwsdm9pZCAwLG8oODk4ODQ3KSksYWN0aXZlOnhlLkxpbmVTdHlsZS5EYXNoZWQ9PT11LG9uRXhlY3V0ZTooKT0+aS5zZXRQcm9wZXJ0eSh0LHhlLkxpbmVTdHlsZS5EYXNoZWQsYSl9fSksbmV3IHdlLkFjdGlvbih7YWN0aW9uSWQ6IkNoYXJ0LkxpbmVUb29sLlRvb2xiYXIuQ2hhbmdlTGluZVN0eWxlVG9Eb3R0ZWQiLG9wdGlvbnM6e2ljb246a2UsbGFiZWw6ci50KG51bGwsdm9pZCAwLG8oNTMzOTg3KSksYWN0aXZlOnhlLkxpbmVTdHlsZS5Eb3R0ZWQ9PT11LG9uRXhlY3V0ZTooKT0+aS5zZXRQcm9wZXJ0eSh0LHhlLkxpbmVTdHlsZS5Eb3R0ZWQsYSl9fSldKSxbaSx0LHVdKTtyZXR1cm4gbi5jcmVhdGVFbGVtZW50KGYuVG9vbFdpZGdldE1lbnUse2NsYXNzTmFtZTpjLGFycm93OiExLGNvbnRlbnQ6bi5jcmVhdGVFbGVtZW50KHYuSWNvbix7aWNvbjpOZSh1KX0pLHRpdGxlOnMsImRhdGEtbmFtZSI6ZVsiZGF0YS1uYW1lIl0sbWVudURhdGFOYW1lOmAke2VbImRhdGEtbmFtZSJdfS1tZW51YCx2ZXJ0aWNhbERyb3BEaXJlY3Rpb246bD9DLlZlcnRpY2FsRHJvcERpcmVjdGlvbi5Gcm9tQm90dG9tVG9Ub3A6dm9pZCAwLGhvcml6b250YWxEcm9wRGlyZWN0aW9uOmw/Qy5Ib3Jpem9udGFsRHJvcERpcmVjdGlvbi5Gcm9tUmlnaHRUb0xlZnQ6dm9pZCAwLGhvcml6b250YWxBdHRhY2hFZGdlOmw/Qy5Ib3Jpem9udGFsQXR0YWNoRWRnZS5SaWdodDp2b2lkIDAsdmVydGljYWxBdHRhY2hFZGdlOmw/Qy5WZXJ0aWNhbEF0dGFjaEVkZ2UuVG9wOnZvaWQgMH0sbi5jcmVhdGVFbGVtZW50KGZlLkFjdGlvbnNUYWJsZSx7aXRlbXM6ZH0pKX1mdW5jdGlvbiBOZShlKXtzd2l0Y2goZSl7Y2FzZSB4ZS5MaW5lU3R5bGUuU29saWQ6cmV0dXJuIFNlO2Nhc2UgeGUuTGluZVN0eWxlLkRhc2hlZDpyZXR1cm4gTGU7Y2FzZSB4ZS5MaW5lU3R5bGUuRG90dGVkOnJldHVybiBrZQo7Y2FzZSJtaXhlZCI6cmV0dXJuIEFlO2RlZmF1bHQ6cmV0dXJuIiJ9fWNvbnN0IERlPVs4LDEwLDExLDEyLDE0LDE2LDE4LDIwLDIyLDI0LDI4LDMyLDQwXTtmdW5jdGlvbiBQZShlKXtjb25zdHtwcm9wZXJ0eTp0LHByb3BlcnR5QXBwbGllcjpvLHRpdGxlOmksdW5kb1RleHQ6cixpc1Rvb2xiYXJGaXhlZDpzLGNsYXNzTmFtZTphfT1lLGw9KDAsXy51c2VQcm9wZXJ0eSkodCksYz1EZS5tYXAoKGU9Pm5ldyB3ZS5BY3Rpb24oe2FjdGlvbklkOiJDaGFydC5MaW5lVG9vbC5Ub29sYmFyLkNoYW5nZUZvbnRTaXplUHJvcGVydHkiLG9wdGlvbnM6e2xhYmVsOmUudG9TdHJpbmcoKSxvbkV4ZWN1dGU6KCk9Pm8uc2V0UHJvcGVydHkodCxlLHIpLGFjdGl2ZTplPT09bH19KSkpO3JldHVybiBuLmNyZWF0ZUVsZW1lbnQoZi5Ub29sV2lkZ2V0TWVudSx7YXJyb3c6ITEsY29udGVudDpsLGNsYXNzTmFtZTphLHRpdGxlOmksdmVydGljYWxEcm9wRGlyZWN0aW9uOnM/Qy5WZXJ0aWNhbERyb3BEaXJlY3Rpb24uRnJvbUJvdHRvbVRvVG9wOnZvaWQgMCxob3Jpem9udGFsRHJvcERpcmVjdGlvbjpzP0MuSG9yaXpvbnRhbERyb3BEaXJlY3Rpb24uRnJvbVJpZ2h0VG9MZWZ0OnZvaWQgMCxob3Jpem9udGFsQXR0YWNoRWRnZTpzP0MuSG9yaXpvbnRhbEF0dGFjaEVkZ2UuUmlnaHQ6dm9pZCAwLHZlcnRpY2FsQXR0YWNoRWRnZTpzP0MuVmVydGljYWxBdHRhY2hFZGdlLlRvcDp2b2lkIDAsImRhdGEtbmFtZSI6ZVsiZGF0YS1uYW1lIl0sbWVudURhdGFOYW1lOmAke2VbImRhdGEtbmFtZSJdfS1tZW51YH0sbi5jcmVhdGVFbGVtZW50KGZlLkFjdGlvbnNUYWJsZSx7aXRlbXM6Y30pKX12YXIgQmU9bygzNjUyMTcpLEllPW8oMzY4MTEwKSxGZT1vKDEwNjkwMCksV2U9byg4MjI3OTUpLFJlPW8oNzIxMDQyKSxWZT1vKDYyMTkyNiksT2U9bygzMTIzMDYpLHplPW8oMzY5OTI0KTtmdW5jdGlvbiBIZShlKXtjb25zdHthY3RpdmVDaGFydFdpZGdldDp0LGNsYXNzTmFtZTppfT1lLHM9dC5tb2RlbCgpLFthXT1zLnNlbGVjdGlvbigpLmxpbmVEYXRhU291cmNlcygpLGw9KDAsRmUudXNlV2F0Y2hlZFZhbHVlUmVhZG9ubHkpKHt3YXRjaGVkVmFsdWU6YT8uaGFzQWxlcnQoKSxkZWZhdWx0VmFsdWU6ITF9KSxjPSgwLEZlLnVzZVdhdGNoZWRWYWx1ZVJlYWRvbmx5KSh7d2F0Y2hlZFZhbHVlOmE/LmFsZXJ0U3RhdHVzKCksZGVmYXVsdFZhbHVlOjB9KSx1PSgwLEZlLnVzZVdhdGNoZWRWYWx1ZVJlYWRvbmx5KSh7d2F0Y2hlZFZhbHVlOmE/LmFsZXJ0Q3JlYXRpb25BdmFpbGFibGUoKSxkZWZhdWx0VmFsdWU6ITF9KTtpZighYXx8IXUmJiFsKXJldHVybiBudWxsO2NvbnN0IGQ9dC5jaGFydFdpZGdldENvbGxlY3Rpb24oKSxoPXQuZ2V0U2F2ZUNoYXJ0U2VydmljZSgpLHA9bCYmMCE9PWM/e3Rvb2x0aXA6ci50KG51bGwsdm9pZCAwLG8oOTA4MDMwKSksaWNvbjp6ZSxvbkNsaWNrOmZ1bmN0aW9uKCl7d2luZG93LnJ1bk9yU2lnbkluKCgoKT0+e2EuZWRpdEFsZXJ0KCJsaW5ldG9vbF90b29sYmFyX2VkaXRfYWxlcnQiKX0pLHtzb3VyY2U6IkFsZXJ0IGVkaXQgZnJvbSBsaW5lIHByb3BlcnRpZXMifSl9LCJkYXRhLW5hbWUiOiJlZGl0LWFsZXJ0In06e3Rvb2x0aXA6ci50KG51bGwsdm9pZCAwLG8oNjI4OTE5KSksaWNvbjpPZSxvbkNsaWNrOmFzeW5jIGZ1bmN0aW9uKCl7Y29uc3QgZT1zLm1vZGVsKCksdD0ibGluZXRvb2xfdG9vbGJhciIsbz0iY2hhcnQiOygwLFJlLnRyYWNrQWxlcnRDcmVhdGlvbkF0dGVtcHQpKGUubWFpblNlcmllcygpLnN5bWJvbCgpLHQsbyksKDAsVmUucnVuT3JTaWduaW5XaXRoRmVhdHVyZSkoKCgpPT57KDAsV2UuaW52b2tlQWxlcnRFZGl0b3IpKHtkYXRhU291cmNlSHViOmUsZHJhd2luZzphLGFjdGlvblNvdXJjZToibGluZXRvb2xfdG9vbGJhcl9hZGRfYWxlcnQiLG1ldGhvZDp0LHNvdXJjZTpvLG9uQ3JlYXRlU3VjY2VzczptfSl9KSx7c291cmNlOiJBbGVydCBhZGQgZnJvbSBsaW5lIHByb3BlcnRpZXMiLGZlYXR1cmU6ImFsZXJ0In0pfSwiZGF0YS1uYW1lIjoiYWRkLWFsZXJ0In07cmV0dXJuIG4uY3JlYXRlRWxlbWVudChKLHtjbGFzc05hbWU6aSxpc0FjdGl2ZTpsLC4uLnB9KTtmdW5jdGlvbiBtKCl7aWYoIWgpcmV0dXJuO251bGw9PT1kLm1ldGFJbmZvLmlkLnZhbHVlKCkmJmguc2F2ZUNoYXJ0T3JTaG93VGl0bGVEaWFsb2coKX19dmFyIGplPW8oNTY5Mzk4KSxaZT1vKDI1NDY3MyksVWU9byg0OTAzOTkpLEdlPW8oMTU4ODAxKSxLZT1vKDc2Mjg1MSkscWU9bygzNzk3OTMpLCRlPW8oOTY1MzM0KTtmdW5jdGlvbiBRZShlKXtjb25zdHttb2RlbDp0LG9uUmVzdG9yZTppLG9uU2F2ZTphLGlzRHJhd2luZ0ZpbmlzaGVkOmwsaXNUb29sYmFyRml4ZWQ6YyxjbGFzc05hbWU6dSwuLi5kfT1lLFtoLHBdPSgwLG4udXNlU3RhdGUpKCExKSxbbSxnXT0oMCxuLnVzZVN0YXRlKShudWxsKSxfPSgwLG4udXNlUmVmKShudWxsKTsoMCxuLnVzZUVmZmVjdCkoKCgpPT57Xy5jdXJyZW50Py51cGRhdGUoKX0pLFtoXSk7Y29uc3QgYj0oMCxuLnVzZU1lbW8pKCgoKT0+e2lmKGEpcmV0dXJuKCk9Pnt0LnNob3dTYXZlRGlhbG9nKChlPT57dC5zYXZlVGVtcGxhdGUoZSxKU09OLnN0cmluZ2lmeShhKCkpKX0pKX19KSxbdCxhXSksdz0oMCxuLnVzZU1lbW8pKCgoKT0+e2NvbnN0IGU9W107cmV0dXJuIGwmJmImJmUucHVzaChuZXcgd2UuQWN0aW9uKHthY3Rpb25JZDoiQ2hhcnQuTGluZVRvb2wuVGVtcGxhdGVzLlNhdmVBcyIsb3B0aW9uczp7bGFiZWw6KDAsS2UuYXBwZW5kRWxsaXBzaXMpKHIudChudWxsLHZvaWQgMCxvKDM5MTkzNykpKSxvbkV4ZWN1dGU6Yn19KSksZS5wdXNoKG5ldyB3ZS5BY3Rpb24oe2FjdGlvbklkOiJDaGFydC5MaW5lVG9vbC5UZW1wbGF0ZXMuQXBwbHlEZWZhdWx0cyIsb3B0aW9uczp7bGFiZWw6ci50KG51bGwsdm9pZCAwLG8oNTM5MTgpKSxvbkV4ZWN1dGU6aX19KSksaD9lLnB1c2gobmV3IHdlLkxvYWRlcigiQ2hhcnQuTGluZVRvb2wuVGVtcGxhdGVzLkFwcGx5IikpOiFoJiZtPy5sZW5ndGgmJihlLnB1c2gobmV3IHdlLlNlcGFyYXRvciksZS5wdXNoKC4uLm0ubWFwKChlPT5uZXcgd2UuQWN0aW9uKHsKYWN0aW9uSWQ6IkNoYXJ0LkxpbmVUb29sLlRlbXBsYXRlcy5BcHBseSIsb3B0aW9uczp7bGFiZWw6ZSxvbkV4ZWN1dGU6KCk9PmZ1bmN0aW9uKGUpe3ZvaWQgMCE9PWUmJnQubG9hZFRlbXBsYXRlKGUpfShlKSxzaG93VG9vbGJveE9uSG92ZXI6ITAsdG9vbGJveDp7dHlwZTpxZS5Ub29sYm94VHlwZS5EZWxldGUsYWN0aW9uOigpPT50LmRlbGV0ZUFjdGlvbihlKX19fSkpKSkpLGV9KSxbYixpLG0sdCxsLGhdKTtyZXR1cm4gbi5jcmVhdGVFbGVtZW50KGYuVG9vbFdpZGdldE1lbnUse3RpdGxlOnIudChudWxsLHZvaWQgMCxvKDk0MDUzMSkpLGNvbnRlbnQ6bi5jcmVhdGVFbGVtZW50KHYuSWNvbix7aWNvbjokZX0pLG9uT3BlbjooMCxzLmlzRmVhdHVyZXNldEVuYWJsZWQpKCJkcmF3aW5nX3RlbXBsYXRlcyIpP2Z1bmN0aW9uKCl7cCghMCksdC50ZW1wbGF0ZXNMb2FkZWQoKS50aGVuKCgoKT0+e2NvbnN0IGU9dC5nZXREYXRhKCk7dm9pZCAwIT09ZSYmKGcoZSkscCghMSkpfSkpLCgwLEsudHJhY2tFdmVudCkoIkdVSSIsIkNvbnRleHQgYWN0aW9uIG9uIGRyYXdpbmdzIiwiVGVtcGxhdGVzIil9OnZvaWQgMCxhcnJvdzohMSxjbGFzc05hbWU6dSwiZGF0YS1uYW1lIjoidGVtcGxhdGVzIixtZW51RGF0YU5hbWU6InRlbXBsYXRlcy1tZW51Iix2ZXJ0aWNhbERyb3BEaXJlY3Rpb246Yz9DLlZlcnRpY2FsRHJvcERpcmVjdGlvbi5Gcm9tQm90dG9tVG9Ub3A6dm9pZCAwLGhvcml6b250YWxEcm9wRGlyZWN0aW9uOmM/Qy5Ib3Jpem9udGFsRHJvcERpcmVjdGlvbi5Gcm9tTGVmdFRvUmlnaHQ6dm9pZCAwLGhvcml6b250YWxBdHRhY2hFZGdlOmM/Qy5Ib3Jpem9udGFsQXR0YWNoRWRnZS5MZWZ0OnZvaWQgMCx2ZXJ0aWNhbEF0dGFjaEVkZ2U6Yz9DLlZlcnRpY2FsQXR0YWNoRWRnZS5Ub3A6dm9pZCAwLHJlZjpfLC4uLmR9LG4uY3JlYXRlRWxlbWVudChmZS5BY3Rpb25zVGFibGUse2l0ZW1zOnd9KSl9dmFyIFhlPW8oOTc0NjYzKSxZZT1vKDUxNDIxNik7ZnVuY3Rpb24gSmUoZSl7Y29uc3R7dGl0bGU6dCxhY3RpdmVDaGFydFdpZGdldDpvLGNsYXNzTmFtZTppfT1lO3JldHVybiBuLmNyZWF0ZUVsZW1lbnQocS5Ub29sV2lkZ2V0SWNvbkJ1dHRvbix7Y2xhc3NOYW1lOmksaWNvbjpZZSx0aXRsZTp0LCJkYXRhLW5hbWUiOiJjcmVhdGVMaW1pdE9yZGVyIixvbkNsaWNrOmFzeW5jIGZ1bmN0aW9uKCl7KDAsSy50cmFja0V2ZW50KSgiR1VJIiwiQ29udGV4dCBhY3Rpb24gb24gZHJhd2luZ3MiLCJDcmVhdGUgbGltaXQgb3JkZXIiKTtjb25zdHtjcmVhdGVDcmVhdGVPcmRlckFjdGlvbjplfT1hd2FpdCgwLGllLmFjdGlvbnNQcm92aWRlck1vZHVsZSkoKSxbdF09by5tb2RlbCgpLm1vZGVsKCkuc2VsZWN0aW9uKCkubGluZURhdGFTb3VyY2VzKCksbj1hd2FpdCBlKG8sdCxvLm9wdGlvbnMoKS5leHRlcm5hbFNlcnZpY2VzLnRyYWRpbmcpO24/LmV4ZWN1dGUoKX19KX12YXIgZXQ9bygzMjk2NjYpLHR0PW8oODYwNDQyKSxvdD1vKDE4NDYxNiksbnQ9byg4OTE3MDkpLGl0PW8oNzgyODQ0KSxydD1vKDMwNzc4NSk7Y29uc3Qgc3Q9KDAsdy5tZXJnZVRoZW1lcykoYi5ERUZBVUxUX1BPUFVQX01FTlVfSVRFTV9USEVNRSxydCksYXQ9WzgsMTIsMjAsMzIsNDgsNjQsODAsOTZdO2Z1bmN0aW9uIGx0KGUpe2NvbnN0e211bHRpcGxlUHJvcGVydHk6dCx0aXRsZTpvLHVuZG9UZXh0OmkscHJvcGVydHlBcHBsaWVyOnIsaXNUb29sYmFyRml4ZWQ6cyxjbGFzc05hbWU6YSxpc1NtYWxsU2NyZWVuOmx9PWUsYz0oMCxfLnVzZVByb3BlcnR5KSgoMCxnLmVuc3VyZURlZmluZWQpKHQpKTtyZXR1cm4gbi5jcmVhdGVFbGVtZW50KGYuVG9vbFdpZGdldE1lbnUse2NsYXNzTmFtZTphLGFycm93OiExLHRpdGxlOm8sImRhdGEtbmFtZSI6ZVsiZGF0YS1uYW1lIl0sbWVudURhdGFOYW1lOmAke2VbImRhdGEtbmFtZSJdfS1tZW51YCx2ZXJ0aWNhbERyb3BEaXJlY3Rpb246cz9DLlZlcnRpY2FsRHJvcERpcmVjdGlvbi5Gcm9tQm90dG9tVG9Ub3A6dm9pZCAwLGhvcml6b250YWxEcm9wRGlyZWN0aW9uOnM/Qy5Ib3Jpem9udGFsRHJvcERpcmVjdGlvbi5Gcm9tUmlnaHRUb0xlZnQ6dm9pZCAwLGhvcml6b250YWxBdHRhY2hFZGdlOnM/Qy5Ib3Jpem9udGFsQXR0YWNoRWRnZS5SaWdodDp2b2lkIDAsdmVydGljYWxBdHRhY2hFZGdlOnM/Qy5WZXJ0aWNhbEF0dGFjaEVkZ2UuVG9wOnZvaWQgMCxjb250ZW50Om4uY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOm0oKShydC5idXR0b25XcmFwLGwmJnJ0LnNtYWxsKX0sbi5jcmVhdGVFbGVtZW50KHYuSWNvbix7aWNvbjppdH0pLCFsJiYibWl4ZWQiIT09YyYmbi5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6cnQuYnV0dG9uTGFiZWx9LGAke2N9cHhgKSl9LGF0Lm1hcCgoZT0+bi5jcmVhdGVFbGVtZW50KGIuUG9wdXBNZW51SXRlbSx7a2V5OmUsdGhlbWU6c3QsbGFiZWw6YCR7ZX1weGAsaXNBY3RpdmU6ZT09PWMsb25DbGljazp1LG9uQ2xpY2tBcmc6ZX0pKSkpO2Z1bmN0aW9uIHUoZSl7ZSYmdCYmKHIuYmVnaW5VbmRvTWFjcm8oaSksdC5zZXRWYWx1ZShlLHZvaWQgMCx7YXBwbHlWYWx1ZTooZSx0KT0+e3Iuc2V0UHJvcGVydHkoZSx0LGkpfX0pLHIuZW5kVW5kb01hY3JvKCkpfX1mdW5jdGlvbiBjdChlKXtjb25zdHthY3RpdmVDaGFydFdpZGdldDp0LGNsYXNzTmFtZTpvLGFjdGlvbklkOml9PWUscj10Lm1vZGVsKCkuc2VsZWN0aW9uKCkubGluZURhdGFTb3VyY2VzKCkscz0oMCxuZS51c2VQcm9taXNlKSgoYXN5bmMoKT0+e2NvbnN0e0FjdGlvbnNQcm92aWRlcjplfT1hd2FpdCgwLGllLmFjdGlvbnNQcm92aWRlck1vZHVsZSkoKTtyZXR1cm4gbmV3IGUodCkuYWN0aW9uRm9yTGluZVRvb2xzKHQubW9kZWwoKS5zZWxlY3Rpb24oKS5saW5lRGF0YVNvdXJjZXMoKSxpKX0pLChlPT5lPy5kZXN0cm95KCkpLFt0LHJdKTtpZighcylyZXR1cm4gbnVsbDtjb25zdHtsYWJlbDphLGljb246bH09cy5vcHRpb25zKCk7cmV0dXJuIG4uY3JlYXRlRWxlbWVudChKLHtjbGFzc05hbWU6byx0b29sdGlwOmEsaWNvbjpsLG9uQ2xpY2s6KCk9PnMuZXhlY3V0ZSgpLAoiZGF0YS1uYW1lIjpgdG9nZ2xlLWluc2VydC1jZWxscy1idXR0b24tJHtpfWB9KX12YXIgdXQ9byg4MjEwOTkpLGR0PW8ubih1dCksaHQ9byg3NjM5NDEpLHB0PW8ubihodCksbXQ9byg4MDY1NTQpLGd0PW8ubihtdCk7Y29uc3QgdnQ9ISgwLHMuaXNGZWF0dXJlc2V0RW5hYmxlZCkoIndpZGdldCIpfHx3aW5kb3cuaXNfYXV0aGVudGljYXRlZCxmdD0oMCxqZS5pc0ZlYXR1cmVFbmFibGVkKSgiZW5hYmxlX3N0ZXBfYnlfc3RlcF9oaW50c19mb3JfZHJhd2luZ3MiKSxfdD1uZXcgYS5UcmFuc2xhdGVkU3RyaW5nKCJjaGFuZ2UgbGluZSB0b29sKHMpIGZvbnQgc2l6ZSIsci50KG51bGwsdm9pZCAwLG8oNjY5NDQ5KSkpLGJ0PW5ldyBhLlRyYW5zbGF0ZWRTdHJpbmcoImNoYW5nZSBsaW5lIHRvb2wocykgbGluZSBzdHlsZSIsci50KG51bGwsdm9pZCAwLG8oNjY4NjA4KSkpLHd0PW5ldyBhLlRyYW5zbGF0ZWRTdHJpbmcoImNoYW5nZSBsaW5lIHRvb2wocykgbGluZSB3aWR0aCIsci50KG51bGwsdm9pZCAwLG8oNjEzNDUzKSkpLEN0PW5ldyBhLlRyYW5zbGF0ZWRTdHJpbmcoImNoYW5nZSBsaW5lIHRvb2wocykgY29sb3IiLHIudChudWxsLHZvaWQgMCxvKDQ0MDM4MykpKSx5dD1uZXcgYS5UcmFuc2xhdGVkU3RyaW5nKCJjaGFuZ2UgbGluZSB0b29sKHMpIGJhY2tncm91bmQgY29sb3IiLHIudChudWxsLHZvaWQgMCxvKDM0MjE0OSkpKSxUdD1uZXcgYS5UcmFuc2xhdGVkU3RyaW5nKCJjaGFuZ2UgbGluZSB0b29sKHMpIHRleHQgY29sb3IiLHIudChudWxsLHZvaWQgMCxvKDkyMjQwMCkpKSxFdD1uZXcgYS5UcmFuc2xhdGVkU3RyaW5nKCJsaW5lIHRvb2wocykgbGluZSBzdHlsZSIsci50KG51bGwse2NvbnRleHQ6ImxpbmUgdG9vbCBwcm9wZXJ0eSBuYW1lIn0sbygzNzIxMjUpKSkseHQ9ci50KG51bGwsdm9pZCAwLG8oNzMwNTg2KSksU3Q9ci50KG51bGwsdm9pZCAwLG8oNTM4MzEpKSxMdD1yLnQobnVsbCx2b2lkIDAsbyg5MTEyNikpLGt0PXIudChudWxsLHZvaWQgMCxvKDc0MzU2MykpLEF0PXIudChudWxsLHZvaWQgMCxvKDM5NDk0NykpLE10PXIudChudWxsLHZvaWQgMCxvKDkzMTk5MikpLE50PXIudChudWxsLHZvaWQgMCxvKDE5NTQ4NCkpLER0PXIudChudWxsLHZvaWQgMCxvKDU5OTM4NCkpLFB0PXIudChudWxsLHZvaWQgMCxvKDI0ODMxMCkpLEJ0PXIudChudWxsLHZvaWQgMCxvKDI1OTg3NykpLEl0PXIudChudWxsLHZvaWQgMCxvKDEzMDU0OCkpLEZ0PXIudChudWxsLHZvaWQgMCxvKDEwMDMxOCkpLFd0PXIudChudWxsLHZvaWQgMCxvKDkyMTY2NikpLFJ0PXIudChudWxsLHZvaWQgMCxvKDU3NzcxNykpLFZ0PXIudChudWxsLHZvaWQgMCxvKDE4MDIxNikpLE90PXIudChudWxsLHZvaWQgMCxvKDYyNjU5NCkpLHp0PXIudChudWxsLHZvaWQgMCxvKDU5MzY2OSkpLEh0PXIudChudWxsLHZvaWQgMCxvKDUzMDAwOCkpLGp0PXIudChudWxsLHZvaWQgMCxvKDU0ODM5MykpLFp0PXIudChudWxsLHZvaWQgMCxvKDczNTU4NCkpLFV0PWNlLkNoZWNrTW9iaWxlLmFueSgpfHxjZS5DaGVja01vYmlsZS5pc0lQYWQoKTtjbGFzcyBHdHtjb25zdHJ1Y3RvcihlKXt0aGlzLl9jdXJyZW50VG9vbD1udWxsLHRoaXMuX3VwZGF0ZVZpc2liaWxpdHlUaW1lb3V0PW51bGwsdGhpcy5fbGluZVdpZHRoc1Byb3BlcnR5PW51bGwsdGhpcy5fbGluZUNvbG9yc1Byb3BlcnR5PW51bGwsdGhpcy5fdGV4dENvbG9yc1Byb3BlcnR5PW51bGwsdGhpcy5fYmFja2dyb3VuZHNQcm9wZXJ0eT1udWxsLHRoaXMuX2hpZ2hsaWdodGVyV2lkdGhzUHJvcGVydHk9bnVsbCx0aGlzLl9mbG9hdGluZ0NvbnRhaW5lcj1udWxsLHRoaXMuX2lzRHJhd2luZ0ZpbmlzaGVkPSEwLHRoaXMuX2Zsb2F0aW5nVG9vbGJhclJlbmRlcmVkPSExLHRoaXMuX3Rvb2xiYXJWaXNpYmxlPSExLHRoaXMuX3Byb3BlcnRpZXNWaXNpYmxlPSExLHRoaXMuX2NhblNob3dGbG9hdGluZ1Rvb2xiYXJzPSEwLHRoaXMuX3RlbXBsYXRlc0J1dHRvbj1udWxsLHRoaXMuX2NhbmNlbEJ1dHRvbj1udWxsLHRoaXMuX3Byb3BlcnR5QnV0dG9ucz1bXSx0aGlzLl9jb21tb25CdXR0b25zPVtdLHRoaXMuX2FjdGlvbkNvbW1vbkJ1dHRvbnM9W10sdGhpcy5fdG9vbEV4Y2VwdGlvbkNhc2VzPW51bGwsdGhpcy5fbGF5b3V0PW51bGwsdGhpcy5fY2hhcnRXaWRnZXRDb2xsZWN0aW9uPWUsdGhpcy5fZmxvYXRpbmdUb29sYmFyPW5ldyBqLkZsb2F0aW5nVG9vbGJhcih7ZGVmYXVsdFBvc2l0aW9uOnt0b3A6QmUuSEVBREVSX1RPT0xCQVJfSEVJR0hUX0VYUEFOREVEKzE1LGxlZnQ6d2luZG93LmlubmVyV2lkdGgvMn0scG9zaXRpb25TZXR0aW5nc0tleToicHJvcGVydGllc190b29sYmFyLnBvc2l0aW9uIixsYXlvdXQ6Imhvcml6b250YWwiLCJkYXRhLW5hbWUiOiJkcmF3aW5nLXRvb2xiYXIifSksdGhpcy5fbGF5b3V0PVIuY3VycmVudExheW91dC52YWx1ZSgpLHRoaXMuX2Zsb2F0aW5nQ29udGFpbmVyPXRoaXMuX2Zsb2F0aW5nVG9vbGJhci5nZXRSZWFjdFdpZGdldENvbnRhaW5lcigpLHRoaXMuX3NlbGVjdGVkTGluZVRvb2w9KDAsbC5jb21iaW5lKSgoKC4uLmUpPT57dGhpcy5fb25Ub29sQ2hhbmdlZCh1LnRvb2wudmFsdWUoKSl9KSx1LnRvb2wud2Vha1JlZmVyZW5jZSgpLHUuaWNvblRvb2wud2Vha1JlZmVyZW5jZSgpLHUuZW1vamlUb29sLndlYWtSZWZlcmVuY2UoKSksdGhpcy5fbGF5b3V0JiZ0aGlzLl9sYXlvdXQuY2FuU2hvd0Zsb2F0aW5nVG9vbGJhcnMoKS5zdWJzY3JpYmUoKGU9Pnt0aGlzLl9jYW5TaG93RmxvYXRpbmdUb29sYmFycz1lLHRoaXMuX3VwZGF0ZVZpc2liaWxpdHkoKX0pLHtjYWxsV2l0aExhc3Q6ITB9KSx0aGlzLl9zZWxlY3RlZExpbmVEYXRhU291cmNlc1NvdXJjZXNTcGF3bj0oMCxsLmNvbWJpbmUpKChlPT5lLmZpbHRlcihJZS5pc0xpbmVUb29sKSksdGhpcy5fY2hhcnRXaWRnZXRDb2xsZWN0aW9uLnNlbGVjdGVkU291cmNlcy53ZWFrUmVmZXJlbmNlKCkpLHRoaXMuX2lzVG9vbE1vdmluZ09yRWRpdGluZ05vdz0oMCxsLmNvbWJpbmUpKCgoZSx0KT0+e3RoaXMuX2hhbmRsZVNvdXJjZUVkaXQoZXx8dCkKfSksdS5pc1Rvb2xNb3ZpbmdOb3cud2Vha1JlZmVyZW5jZSgpLHUuaXNUb29sRWRpdGluZ05vdy53ZWFrUmVmZXJlbmNlKCkpLHRoaXMuX3NlbGVjdGVkTGluZURhdGFTb3VyY2VzU291cmNlc1NwYXduLnN1YnNjcmliZSh0aGlzLl9vblNvdXJjZUNoYW5nZWQuYmluZCh0aGlzKSksdGhpcy5fY2hhcnRXaWRnZXRDb2xsZWN0aW9uLm9uQWJvdXRUb0JlRGVzdHJveWVkLnN1YnNjcmliZSh0aGlzLHRoaXMuZGVzdHJveSwhMCl9ZGVzdHJveSgpe3RoaXMuX3NlbGVjdGVkTGluZVRvb2wuZGVzdHJveSgpLHRoaXMuX2lzVG9vbE1vdmluZ09yRWRpdGluZ05vdy5kZXN0cm95KCksdGhpcy5fc2VsZWN0ZWRMaW5lRGF0YVNvdXJjZXNTb3VyY2VzU3Bhd24uZGVzdHJveSgpfWFzeW5jIHJlZnJlc2goKXthd2FpdCB0aGlzLl9vblNvdXJjZUNoYW5nZWQoKX1oaWRlKCl7dGhpcy5fcHJvcGVydGllc1Zpc2libGU9ITEsdGhpcy5fdG9vbGJhclZpc2libGU9ITEsdGhpcy5fdXBkYXRlVmlzaWJpbGl0eSgpfV9jcmVhdGVXaWR0aHNCdXR0b24oZSx0KXtpZih0aGlzLl9saW5lV2lkdGhzUHJvcGVydHkmJih0aGlzLl9saW5lV2lkdGhzUHJvcGVydHkuZGVzdHJveSgpLHRoaXMuX2xpbmVXaWR0aHNQcm9wZXJ0eT1udWxsKSx0aGlzLl9saW5lV2lkdGhzUHJvcGVydHk9dGhpcy5fY3JlYXRlUHJvcGVydHkoZSx0LCJsaW5lc1dpZHRocyIsd3QpLCF0aGlzLl9saW5lV2lkdGhzUHJvcGVydHkpcmV0dXJuITA7bGV0IG89RHQ7aWYodCl7MSE9PXRoaXMuX3NlbGVjdGVkTGluZURhdGFTb3VyY2VzKCkuZmlsdGVyKChlPT5lLnByb3BlcnRpZXMoKS5saW5lc1dpZHRocykpLmxlbmd0aCYmKG89UHQpfXJldHVybiB0aGlzLl9hZGRQcm9wZXJ0eUJ1dHRvbih7Y29tcG9uZW50Ok0scHJvcHM6e3RpdGxlOm8scHJvcGVydHk6dGhpcy5fbGluZVdpZHRoc1Byb3BlcnR5LG11bHRpcGxlUHJvcGVydHk6dGhpcy5fbGluZVdpZHRoc1Byb3BlcnR5LHByb3BlcnR5QXBwbGllcjp0aGlzLl9wcm9wZXJ0eUFwcGxpZXJJbXBsKCksImRhdGEtbmFtZSI6ImxpbmUtdG9vbC13aWR0aCIsdW5kb1RleHQ6d3R9fSksITB9X2NyZWF0ZUNvbG9yc0J1dHRvbihlLHQpe3JldHVybiB0aGlzLl9saW5lQ29sb3JzUHJvcGVydHkmJih0aGlzLl9saW5lQ29sb3JzUHJvcGVydHkuZGVzdHJveSgpLHRoaXMuX2xpbmVDb2xvcnNQcm9wZXJ0eT1udWxsKSx0aGlzLl9saW5lQ29sb3JzUHJvcGVydHk9dGhpcy5fY3JlYXRlUHJvcGVydHkoZSx0LCJsaW5lc0NvbG9ycyIsQ3QpLCF0aGlzLl9saW5lQ29sb3JzUHJvcGVydHl8fCh0aGlzLl9hZGRQcm9wZXJ0eUJ1dHRvbih7Y29tcG9uZW50OlcscHJvcHM6e2ljb246ZHQoKSx0aXRsZTpCdCxwcm9wZXJ0eTp0aGlzLl9saW5lQ29sb3JzUHJvcGVydHkscHJvcGVydHlBcHBsaWVyOnRoaXMuX3Byb3BlcnR5QXBwbGllckltcGwoKSwiZGF0YS1uYW1lIjoibGluZS10b29sLWNvbG9yIix1bmRvVGV4dDpDdH19KSwhMCl9X2NyZWF0ZUJhY2tncm91bmRzQnV0dG9uKGUsdCl7cmV0dXJuIHRoaXMuX2JhY2tncm91bmRzUHJvcGVydHkmJih0aGlzLl9iYWNrZ3JvdW5kc1Byb3BlcnR5LmRlc3Ryb3koKSx0aGlzLl9iYWNrZ3JvdW5kc1Byb3BlcnR5PW51bGwpLHRoaXMuX2JhY2tncm91bmRzUHJvcGVydHk9dGhpcy5fY3JlYXRlUHJvcGVydHkoZSx0LCJiYWNrZ3JvdW5kc0NvbG9ycyIseXQpLCF0aGlzLl9iYWNrZ3JvdW5kc1Byb3BlcnR5fHwodGhpcy5fYWRkUHJvcGVydHlCdXR0b24oe2NvbXBvbmVudDpXLHByb3BzOntpY29uOnB0KCksdGl0bGU6SXQscHJvcGVydHk6dGhpcy5fYmFja2dyb3VuZHNQcm9wZXJ0eSxwcm9wZXJ0eUFwcGxpZXI6dGhpcy5fcHJvcGVydHlBcHBsaWVySW1wbCgpLCJkYXRhLW5hbWUiOiJiYWNrZ3JvdW5kLWNvbG9yIix1bmRvVGV4dDp5dH19KSwhMCl9X2NyZWF0ZVRleHRDb2xvcnNCdXR0b24oZSx0KXtyZXR1cm4gdGhpcy5fdGV4dENvbG9yc1Byb3BlcnR5JiYodGhpcy5fdGV4dENvbG9yc1Byb3BlcnR5LmRlc3Ryb3koKSx0aGlzLl90ZXh0Q29sb3JzUHJvcGVydHk9bnVsbCksdGhpcy5fdGV4dENvbG9yc1Byb3BlcnR5PXRoaXMuX2NyZWF0ZVByb3BlcnR5KGUsdCwidGV4dHNDb2xvcnMiLFR0KSwhdGhpcy5fdGV4dENvbG9yc1Byb3BlcnR5fHwodGhpcy5fYWRkUHJvcGVydHlCdXR0b24oe2NvbXBvbmVudDpXLHByb3BzOntpY29uOmd0KCksdGl0bGU6RnQscHJvcGVydHk6dGhpcy5fdGV4dENvbG9yc1Byb3BlcnR5LHByb3BlcnR5QXBwbGllcjp0aGlzLl9wcm9wZXJ0eUFwcGxpZXJJbXBsKCksImRhdGEtbmFtZSI6InRleHQtY29sb3IiLHVuZG9UZXh0OlR0fX0pLCEwKX1fY3JlYXRlTGluZVN0eWxlQnV0dG9uKGUsdCl7Y29uc3Qgbz10aGlzLl9zZWxlY3RlZExpbmVEYXRhU291cmNlcygpO2lmKCFvLmxlbmd0aClyZXR1cm4hMTtsZXQgbixpPXRoaXMuX3Byb3BlcnR5QXBwbGllckltcGwoKTtpZigxPT09by5sZW5ndGgpe2lmKG49b1swXS5wcm9wZXJ0aWVzKCkubGluZXNTdHlsZXN8fGUsIW4pcmV0dXJuITF9ZWxzZXtjb25zdCBlPW8ubWFwKChlPT5lLnByb3BlcnRpZXMoKS5saW5lc3R5bGV8fGUucHJvcGVydGllcygpLmxpbmVTdHlsZXx8ZS5wcm9wZXJ0aWVzKCkubGluZXNTdHlsZXMpKS5maWx0ZXIoYy5ub3RVbmRlZmluZWQpO2lmKCFlLmxlbmd0aClyZXR1cm4hMTtuPW5ldyBkLkNvbGxlY3RpYmxlUHJvcGVydHlVbmRvV3JhcHBlcihuZXcgaC5MaW5lVG9vbENvbGxlY3RlZFByb3BlcnR5KGUpLEV0LHRoaXMuX3Byb3BlcnR5QXBwbGllckltcGwoKSksaT17Li4uaSxzZXRQcm9wZXJ0eTooZSx0KT0+ZS5zZXRWYWx1ZSh0KX19cmV0dXJuIHRoaXMuX2FkZFByb3BlcnR5QnV0dG9uKHtjb21wb25lbnQ6TWUscHJvcHM6e3Byb3BlcnR5Om4sdGl0bGU6TXQscHJvcGVydHlBcHBsaWVyOmksImRhdGEtbmFtZSI6InN0eWxlIix1bmRvVGV4dDpidH19KSwhMH1fY3JlYXRlSGlnaGxpZ2h0ZXJXaWR0aHNCdXR0b24oZSx0KXtpZih0aGlzLl9oaWdobGlnaHRlcldpZHRoc1Byb3BlcnR5JiYodGhpcy5faGlnaGxpZ2h0ZXJXaWR0aHNQcm9wZXJ0eS5kZXN0cm95KCksCnRoaXMuX2hpZ2hsaWdodGVyV2lkdGhzUHJvcGVydHk9bnVsbCksdGhpcy5faGlnaGxpZ2h0ZXJXaWR0aHNQcm9wZXJ0eT10aGlzLl9jcmVhdGVQcm9wZXJ0eShlLHQsIndpZHRocyIsd3QpfHxudWxsLCF0aGlzLl9oaWdobGlnaHRlcldpZHRoc1Byb3BlcnR5KXJldHVybiEwO2NvbnN0IG89dCYmMSE9PXRoaXMuX3NlbGVjdGVkTGluZURhdGFTb3VyY2VzKCkuZmlsdGVyKChlPT5lLnByb3BlcnRpZXMoKS53aWR0aHMpKS5sZW5ndGg/UHQ6RHQ7cmV0dXJuIHRoaXMuX2FkZFByb3BlcnR5QnV0dG9uKHtjb21wb25lbnQ6bHQscHJvcHM6e3RpdGxlOm8sbXVsdGlwbGVQcm9wZXJ0eTp0aGlzLl9oaWdobGlnaHRlcldpZHRoc1Byb3BlcnR5LHByb3BlcnR5QXBwbGllcjp0aGlzLl9wcm9wZXJ0eUFwcGxpZXJJbXBsKCksImRhdGEtbmFtZSI6ImhpZ2hsaWdodGVyLXdpZHRoIix1bmRvVGV4dDp3dH19KSwhMH1fY3JlYXRlRm9udFNpemVCdXR0b24oZSx0KXtjb25zdFtvXT10aGlzLl9zZWxlY3RlZExpbmVEYXRhU291cmNlcygpO2lmKCFvKXJldHVybiExO2NvbnN0IG49e2NvbXBvbmVudDpQZSxwcm9wczp7cHJvcGVydHk6by5wcm9wZXJ0aWVzKCkuZm9udHNpemV8fGUsdGl0bGU6TnQscHJvcGVydHlBcHBsaWVyOnRoaXMuX3Byb3BlcnR5QXBwbGllckltcGwoKSwiZGF0YS1uYW1lIjoiZm9udC1zaXplIix1bmRvVGV4dDpfdH19O3JldHVybiB0aGlzLl9hZGRQcm9wZXJ0eUJ1dHRvbihuKSwhMH1hc3luYyBfb25Ub29sQ2hhbmdlZChlLHQpe2lmKHRoaXMuX2N1cnJlbnRUb29sPWUsYXdhaXQoMCxldC5lbnN1cmVMaW5lVG9vbExvYWRlZCkoZSksdGhpcy5fY3VycmVudFRvb2whPT1lKXJldHVybjtpZih0aGlzLl9pc0RyYXdpbmdUb29sRXhjbHVkaW5nQ3VzdG9tVXJsRXZlbnRUb29sKGUpKXtpZih0aGlzLl9pc0RyYXdpbmdGaW5pc2hlZD0hMSx2dCl7Y29uc3Qgbz10IGluc3RhbmNlb2YgWGUuRGVmYXVsdFByb3BlcnR5P3Q6KDAsSWUuc2V0TmV3VG9vbFByb3BlcnRpZXMpKGUsIkxpbmVUb29sSWNvbiI9PT1lP3UuaWNvblRvb2wudmFsdWUoKToiTGluZVRvb2xFbW9qaSI9PT1lP3UuZW1vamlUb29sLnZhbHVlKCk6dm9pZCAwLHRoaXMuX2NoYXJ0V2lkZ2V0Q29sbGVjdGlvbi5hY3RpdmVDaGFydFdpZGdldC52YWx1ZSgpLm1vZGVsKCkubW9kZWwoKSk7dGhpcy5fc2hvd1Byb3BlcnRpZXNPZihlLG8sdCBpbnN0YW5jZW9mIFhlLkRlZmF1bHRQcm9wZXJ0eSksdGhpcy5fc2hvd1RlbXBsYXRlc09mKHt0b29sOmUscHJvcGVydGllczpvfSksdGhpcy5fdG9vbGJhclZpc2libGU9ITB9cmV0dXJuIHRoaXMuX2NyZWF0ZUNhbmNlbEJ1dHRvbigpLHZvaWQgdGhpcy5fdXBkYXRlVmlzaWJpbGl0eSgpfWNvbnN0IG89dGhpcy5fc2VsZWN0ZWRMaW5lRGF0YVNvdXJjZXMoKTtvLmxlbmd0aD8oby5sZW5ndGg+MSYmKHRoaXMuX2lzRHJhd2luZ0ZpbmlzaGVkPSEwKSxhd2FpdCB0aGlzLl9vblNvdXJjZUNoYW5nZWQobykpOnRoaXMuaGlkZSgpfWFzeW5jIF9vblNvdXJjZUNoYW5nZWQoZT10aGlzLl9zZWxlY3RlZExpbmVEYXRhU291cmNlcygpKXt0cnl7aWYoIWUubGVuZ3RoKXJldHVybiB0aGlzLl9wcm9wZXJ0aWVzVmlzaWJsZT0hMSx0aGlzLl90b29sYmFyVmlzaWJsZT0hMSx2b2lkIHRoaXMuX2NsZWFyUHJvcGVydGllcygpO2NvbnN0IHQ9ZS5yZWR1Y2UoKChlLHQpPT5lLmFkZCh0LnRvb2xuYW1lKSksbmV3IFNldCk7aWYoYXdhaXQgUHJvbWlzZS5hbGwoWy4uLnRdLm1hcCgoYXN5bmMgZT0+KDAsZXQuZW5zdXJlTGluZVRvb2xMb2FkZWQpKGUpKSkpLGUhPT10aGlzLl9zZWxlY3RlZExpbmVEYXRhU291cmNlcygpKXJldHVybjtpZih0aGlzLl9jcmVhdGVBY3Rpb25Db21tb25CdXR0b25zKCksdGhpcy5fY3JlYXRlQ29tbW9uQnV0dG9ucygpLHRoaXMuX2NyZWF0ZUNhbmNlbEJ1dHRvbigpLDE9PT10LnNpemU/dGhpcy5fc2hvd1RlbXBsYXRlc09mKHtzb3VyY2VzOmV9KTp0aGlzLl90ZW1wbGF0ZXNCdXR0b24mJnRoaXMuX2NsZWFyVGVtcGxhdGVzQnV0dG9uKCksMT09PWUubGVuZ3RoKXtjb25zdFt0XT1lO3QuaXNBdmFpbGFibGVJbkZsb2F0aW5nV2lkZ2V0KCkmJnRoaXMuX2FjdGl2ZUNoYXJ0V2lkZ2V0KCkubW9kZWwoKS5tb2RlbCgpLmRhdGFTb3VyY2VGb3JJZCh0LmlkKCkpJiYoIXQudXNlckVkaXRFbmFibGVkKCl8fCEoMCx0dC5pc0xpbmVEcmF3bldpdGhQcmVzc2VkQnV0dG9uKSh0LnRvb2xuYW1lKSYmdGhpcy5fYWN0aXZlQ2hhcnRXaWRnZXQoKS5tb2RlbCgpLmxpbmVCZWluZ0NyZWF0ZWQoKXx8KHRoaXMuX2lzRHJhd2luZ0ZpbmlzaGVkPSEwKSx0aGlzLl9zaG93UHJvcGVydGllc09mKHQudG9vbG5hbWUsdC5wcm9wZXJ0aWVzKCksITApLHRoaXMuX3Rvb2xiYXJWaXNpYmxlPSEwKX1lbHNlIHRoaXMuX2NsZWFyUHJvcGVydGllcygpLHRoaXMuX2NyZWF0ZVdpZHRoc0J1dHRvbih2b2lkIDAsITApLHRoaXMuX2NyZWF0ZUhpZ2hsaWdodGVyV2lkdGhzQnV0dG9uKHZvaWQgMCwhMCksdGhpcy5fY3JlYXRlTGluZVN0eWxlQnV0dG9uKHZvaWQgMCwhMCksdGhpcy5fY3JlYXRlQ29sb3JzQnV0dG9uKHZvaWQgMCwhMCksdGhpcy5fY3JlYXRlQmFja2dyb3VuZHNCdXR0b24odm9pZCAwLCEwKSx0aGlzLl9jcmVhdGVUZXh0Q29sb3JzQnV0dG9uKHZvaWQgMCwhMCksdGhpcy5fcHJvcGVydGllc1Zpc2libGU9ITB9ZmluYWxseXt0aGlzLl91cGRhdGVWaXNpYmlsaXR5KCl9fV9wcm9wZXJ0eUFwcGxpZXJJbXBsKCl7cmV0dXJuIHRoaXMuX3Byb3BlcnR5QXBwbGllcnx8KHRoaXMuX3Byb3BlcnR5QXBwbGllcj1uZXcgbnQuUHJvcGVydHlBcHBsaWVyV2l0aG91dFNhdmluZ0NoYXJ0KCgoKT0+dGhpcy5fYWN0aXZlQ2hhcnRXaWRnZXQoKS5tb2RlbCgpKSkpLHRoaXMuX3Byb3BlcnR5QXBwbGllcn1fY2xlYXJQcm9wZXJ0aWVzKCl7dGhpcy5fY2xlYXJQcm9wZXJ0eUJ1dHRvbnMoKSx0aGlzLl9saW5lV2lkdGhzUHJvcGVydHkmJih0aGlzLl9saW5lV2lkdGhzUHJvcGVydHkuZGVzdHJveSgpLHRoaXMuX2xpbmVXaWR0aHNQcm9wZXJ0eT1udWxsKSwKdGhpcy5fbGluZUNvbG9yc1Byb3BlcnR5JiYodGhpcy5fbGluZUNvbG9yc1Byb3BlcnR5LmRlc3Ryb3koKSx0aGlzLl9saW5lQ29sb3JzUHJvcGVydHk9bnVsbCksdGhpcy5fdGV4dENvbG9yc1Byb3BlcnR5JiYodGhpcy5fdGV4dENvbG9yc1Byb3BlcnR5LmRlc3Ryb3koKSx0aGlzLl90ZXh0Q29sb3JzUHJvcGVydHk9bnVsbCksdGhpcy5fYmFja2dyb3VuZHNQcm9wZXJ0eSYmKHRoaXMuX2JhY2tncm91bmRzUHJvcGVydHkuZGVzdHJveSgpLHRoaXMuX2JhY2tncm91bmRzUHJvcGVydHk9bnVsbCksdGhpcy5faGlnaGxpZ2h0ZXJXaWR0aHNQcm9wZXJ0eSYmKHRoaXMuX2hpZ2hsaWdodGVyV2lkdGhzUHJvcGVydHkuZGVzdHJveSgpLHRoaXMuX2hpZ2hsaWdodGVyV2lkdGhzUHJvcGVydHk9bnVsbCl9X2FkZFByb3BlcnR5QnV0dG9uKGUpe3RoaXMuX3Byb3BlcnR5QnV0dG9ucy5wdXNoKGUpLHRoaXMuX3JlbmRlckZsb2F0aW5nVG9vbGJhcigpfV9hZGRDb21tb25CdXR0b24oZSl7dGhpcy5fY29tbW9uQnV0dG9ucy5wdXNoKGUpLHRoaXMuX3JlbmRlckZsb2F0aW5nVG9vbGJhcigpfV9hZGRBY3Rpb25Db21tb25CdXR0b24oZSl7dGhpcy5fYWN0aW9uQ29tbW9uQnV0dG9ucy5wdXNoKGUpLHRoaXMuX3JlbmRlckZsb2F0aW5nVG9vbGJhcigpfV9hZGRDYW5jZWxCdXR0b24oZSl7dGhpcy5fY2FuY2VsQnV0dG9uPWUsdGhpcy5fcmVuZGVyRmxvYXRpbmdUb29sYmFyKCl9X2FkZFRlbXBsYXRlc0J1dHRvbihlKXt0aGlzLl90ZW1wbGF0ZXNCdXR0b249ZX1fcmVuZGVyRmxvYXRpbmdUb29sYmFyKCl7bnVsbCE9PXRoaXMuX2Zsb2F0aW5nQ29udGFpbmVyJiZ0aGlzLl9hY3RpdmVDaGFydFdpZGdldCgpJiZ0aGlzLl9hY3RpdmVDaGFydFdpZGdldCgpLmhhc01vZGVsKCkmJihpLnJlbmRlcihuLmNyZWF0ZUVsZW1lbnQoRyx7dGVtcGxhdGVCdXR0b246dGhpcy5fdGVtcGxhdGVzQnV0dG9uLGNhbmNlbEJ1dHRvbjp0aGlzLl9jYW5jZWxCdXR0b24scHJvcGVydHlCdXR0b25zOnRoaXMuX3Byb3BlcnR5QnV0dG9ucyxjb21tb25CdXR0b25zOnRoaXMuX2NvbW1vbkJ1dHRvbnMsYWN0aW9uQnV0dG9uczp0aGlzLl9hY3Rpb25Db21tb25CdXR0b25zLGlzRHJhd2luZ0ZpbmlzaGVkOnRoaXMuX2lzRHJhd2luZ0ZpbmlzaGVkLGFjdGl2ZUNoYXJ0V2lkZ2V0OnRoaXMuX2FjdGl2ZUNoYXJ0V2lkZ2V0KCl9KSx0aGlzLl9mbG9hdGluZ0NvbnRhaW5lciksdGhpcy5fZmxvYXRpbmdUb29sYmFyUmVuZGVyZWQ9ITApfV91bm1vdW50RmxvYXRpbmdUb29sYmFyKCl7bnVsbCE9PXRoaXMuX2Zsb2F0aW5nQ29udGFpbmVyJiYoaS51bm1vdW50Q29tcG9uZW50QXROb2RlKHRoaXMuX2Zsb2F0aW5nQ29udGFpbmVyKSx0aGlzLl9mbG9hdGluZ1Rvb2xiYXJSZW5kZXJlZD0hMSl9X2NsZWFyVGVtcGxhdGVzQnV0dG9uKCl7dGhpcy5fdGVtcGxhdGVzQnV0dG9uPW51bGx9X2NsZWFyUHJvcGVydHlCdXR0b25zKCl7dGhpcy5fcHJvcGVydHlCdXR0b25zPVtdfV9jbGVhckNvbW1vbkJ1dHRvbnMoKXt0aGlzLl9jb21tb25CdXR0b25zPVtdfV9jbGVhckFjdGlvbkNvbW1vbkJ1dHRvbnMoKXt0aGlzLl9hY3Rpb25Db21tb25CdXR0b25zPVtdfV9jbGVhckNhbmNlbEJ1dHRvbnMoKXt0aGlzLl9jYW5jZWxCdXR0b249bnVsbH1faXNUb29sYmFyUmVuZGVyZWQoKXtyZXR1cm4gdGhpcy5fZmxvYXRpbmdUb29sYmFyUmVuZGVyZWR9X2NyZWF0ZVNldHRpbmdzQnV0dG9uKCl7Y29uc3QgZT17Y29tcG9uZW50OlEscHJvcHM6e3RpdGxlOnh0LGFjdGl2ZUNoYXJ0V2lkZ2V0OnRoaXMuX2FjdGl2ZUNoYXJ0V2lkZ2V0KCl9fTt0aGlzLl9hZGRDb21tb25CdXR0b24oZSl9X2NyZWF0ZUxvY2tCdXR0b24oKXtjb25zdCBlPXtjb21wb25lbnQ6b2UscHJvcHM6e3RpdGxlOiJMb2NrIixhY3RpdmVDaGFydFdpZGdldDp0aGlzLl9hY3RpdmVDaGFydFdpZGdldCgpfX07dGhpcy5fYWRkQ29tbW9uQnV0dG9uKGUpfV9jcmVhdGVBbmNob3JCdXR0b24oKXtjb25zdCBlPXtjb21wb25lbnQ6c2UscHJvcHM6e3RpdGxlOnIudChudWxsLHZvaWQgMCxvKDYyMDUzNCkpLGFjdGl2ZUNoYXJ0V2lkZ2V0OnRoaXMuX2FjdGl2ZUNoYXJ0V2lkZ2V0KCl9fTt0aGlzLl9hZGRDb21tb25CdXR0b24oZSl9X2NyZWF0ZUFsaWduVG80NURlZ3JlZXNCdXR0b24oKXtjb25zdCBlPXtjb21wb25lbnQ6aGUscHJvcHM6e3RpdGxlOlN0LGFjdGl2ZUNoYXJ0V2lkZ2V0OnRoaXMuX2FjdGl2ZUNoYXJ0V2lkZ2V0KCl9LHNob3dGb3JTbWFsbFNjcmVlbjohMH07dGhpcy5fYWRkQ29tbW9uQnV0dG9uKGUpfV9jcmVhdGVSZW1vdmVCdXR0b24oKXtpZihVdCYmbnVsbCE9PXRoaXMuX2N1cnJlbnRUb29sJiYoMCx0dC5pc0xpbmVEcmF3bldpdGhQcmVzc2VkQnV0dG9uKSh0aGlzLl9jdXJyZW50VG9vbCkpcmV0dXJuO2NvbnN0IGU9e2NvbXBvbmVudDpsZSxwcm9wczp7dGl0bGU6THQsYWN0aXZlQ2hhcnRXaWRnZXQ6dGhpcy5fYWN0aXZlQ2hhcnRXaWRnZXQoKX0sc2hvd0ZvclNtYWxsU2NyZWVuOiEwfTt0aGlzLl9hZGRDb21tb25CdXR0b24oZSl9X2NyZWF0ZUNhbmNlbEJ1dHRvbigpe2lmKG51bGwhPT10aGlzLl9jYW5jZWxCdXR0b24mJnRoaXMuX2NsZWFyQ2FuY2VsQnV0dG9ucygpLCFVdHx8bnVsbD09PXRoaXMuX2N1cnJlbnRUb29sKXJldHVybjtpZighKDAsdHQuaXNMaW5lRHJhd25XaXRoUHJlc3NlZEJ1dHRvbikodGhpcy5fY3VycmVudFRvb2wpKXJldHVybjtjb25zdCBlPXtjb21wb25lbnQ6bWUscHJvcHM6e3RpdGxlOmt0LGFjdGl2ZUNoYXJ0V2lkZ2V0OnRoaXMuX2FjdGl2ZUNoYXJ0V2lkZ2V0KCl9LHNob3dGb3JTbWFsbFNjcmVlbjohMH07dGhpcy5fYWRkQ2FuY2VsQnV0dG9uKGUpfV9jcmVhdGVEb3RzQnV0dG9uKCl7dGhpcy5fYWRkQ29tbW9uQnV0dG9uKHtjb21wb25lbnQ6VGUscHJvcHM6e3RpdGxlOkF0LGFjdGl2ZUNoYXJ0V2lkZ2V0OnRoaXMuX2FjdGl2ZUNoYXJ0V2lkZ2V0KCl9LHNob3dGb3JTbWFsbFNjcmVlbjohMH0pfV9jcmVhdGVBbGVydEJ1dHRvbigpe2lmKHRoaXMuX3NlbGVjdGVkTGluZURhdGFTb3VyY2VzKCkubGVuZ3RoPjEpcmV0dXJuCjtjb25zdFtlXT10aGlzLl9zZWxlY3RlZExpbmVEYXRhU291cmNlcygpLHQ9dGhpcy5fYWN0aXZlQ2hhcnRXaWRnZXQoKSxuPVplLkludGVydmFsLmlzVGlja3ModC5yZXNvbHV0aW9uV1YoKS52YWx1ZSgpKTtpZighZXx8ISgwLG90LmlzRGF0YVNvdXJjZSkoZSl8fCFlLmNhbkhhc0FsZXJ0KCl8fG4pcmV0dXJuO2NvbnN0IGk9ZS5vd25lclNvdXJjZSgpO2lmKCFpPy5hbGVydENyZWF0aW9uQXZhaWxhYmxlKCkudmFsdWUoKSlyZXR1cm47Y29uc3Qgcz17Y29tcG9uZW50OkhlLHByb3BzOnt0aXRsZTpyLnQobnVsbCx2b2lkIDAsbygxNjE3MzUpKSxhY3RpdmVDaGFydFdpZGdldDp0aGlzLl9hY3RpdmVDaGFydFdpZGdldCgpfX07dGhpcy5fYWRkQ29tbW9uQnV0dG9uKHMpfV9jcmVhdGVDcmVhdGVPcmRlckFjdGlvbigpe2NvbnN0W2VdPXRoaXMuX3NlbGVjdGVkTGluZURhdGFTb3VyY2VzKCk7aWYoIWUuZ2V0T3JkZXJUZW1wbGF0ZSgpKXJldHVybjtjb25zdCB0PXtjb21wb25lbnQ6SmUscHJvcHM6e3RpdGxlOnIudChudWxsLHtjb250ZXh0OiJDcmVhdGUgb3JkZXIgZnJvbSByaXNrIHJld2FyZCBsaW5lIHRvb2wifSxvKDU5MDU2KSksYWN0aXZlQ2hhcnRXaWRnZXQ6dGhpcy5fYWN0aXZlQ2hhcnRXaWRnZXQoKX19O3RoaXMuX2FkZENvbW1vbkJ1dHRvbih0KX1fY3JlYXRlU291cmNlQWN0aW9ucygpe1VlLmFsZXJ0c0F2YWlsYWJsZSYmdGhpcy5fY3JlYXRlQWxlcnRCdXR0b24oKSx0aGlzLl9jcmVhdGVMb2NrQnV0dG9uKCksdGhpcy5fY3JlYXRlQW5jaG9yQnV0dG9uKCl9X2NyZWF0ZUFjdGlvbkNvbW1vbkJ1dHRvbnMoKXt0aGlzLl9hY3Rpb25Db21tb25CdXR0b25zLmxlbmd0aCYmdGhpcy5fY2xlYXJBY3Rpb25Db21tb25CdXR0b25zKCk7Y29uc3QgZT17Y29tcG9uZW50OmN0LHByb3BzOnthY3Rpb25JZDoiQ2hhcnQuU2VsZWN0ZWRPYmplY3QuSW5zZXJ0Q29sdW1uVGFibGUiLGFjdGl2ZUNoYXJ0V2lkZ2V0OnRoaXMuX2FjdGl2ZUNoYXJ0V2lkZ2V0KCl9fTt0aGlzLl9hZGRBY3Rpb25Db21tb25CdXR0b24oZSk7Y29uc3QgdD17Y29tcG9uZW50OmN0LHByb3BzOnthY3Rpb25JZDoiQ2hhcnQuU2VsZWN0ZWRPYmplY3QuSW5zZXJ0Um93VGFibGUiLGFjdGl2ZUNoYXJ0V2lkZ2V0OnRoaXMuX2FjdGl2ZUNoYXJ0V2lkZ2V0KCl9fTt0aGlzLl9hZGRBY3Rpb25Db21tb25CdXR0b24odCl9X2NyZWF0ZUNvbW1vbkJ1dHRvbnMoKXt0aGlzLl9jb21tb25CdXR0b25zLmxlbmd0aCYmdGhpcy5fY2xlYXJDb21tb25CdXR0b25zKCksdGhpcy5fY3JlYXRlQ3JlYXRlT3JkZXJBY3Rpb24oKSwoMCxzLmlzRmVhdHVyZXNldEVuYWJsZWQpKCJwcm9wZXJ0eV9wYWdlcyIpJiZ0aGlzLl9jcmVhdGVTZXR0aW5nc0J1dHRvbigpLHRoaXMuX2NyZWF0ZVNvdXJjZUFjdGlvbnMoKSx0aGlzLl9jcmVhdGVBbGlnblRvNDVEZWdyZWVzQnV0dG9uKCksdGhpcy5fY3JlYXRlUmVtb3ZlQnV0dG9uKCksdGhpcy5fY3JlYXRlRG90c0J1dHRvbigpfV9wcmVwYXJlUHJvcGVydGllcyhlKXtjb25zdCB0PXRoaXMuX3NlbGVjdGVkTGluZURhdGFTb3VyY2VzKCkuZmlsdGVyKCh0PT50LnByb3BlcnRpZXMoKVtlXSkpO2lmKCEodC5maWx0ZXIoKHQ9PnQucHJvcGVydGllcygpW2VdLnZpc2libGUoKSkpLmxlbmd0aDwxKSlyZXR1cm4gdC5tYXAoKHQ9PnQucHJvcGVydGllcygpW2VdKSkuZmlsdGVyKGMubm90TnVsbCl9X2NyZWF0ZVByb3BlcnR5KGUsdCxvLG4pe2lmKHQpe2NvbnN0IGU9dGhpcy5fcHJlcGFyZVByb3BlcnRpZXMobyk7cmV0dXJuIGU/dGhpcy5faXNXaWR0aFByb3BlcnR5KGVbMF0pP25ldyBPKG5ldyBoLk11bHRpcGxlTGluZVdpZHRoc1Byb3BlcnR5KGUpLHRoaXMuX3Byb3BlcnR5QXBwbGllckltcGwoKSxuKTpuZXcgei5Db2xsZWN0aWJsZUNvbG9yUHJvcGVydHlVbmRvV3JhcHBlcihuZXcgaC5NdWx0aXBsZUxpbmVDb2xvcnNQcm9wZXJ0eShlKSx0aGlzLl9wcm9wZXJ0eUFwcGxpZXJJbXBsKCksbik6bnVsbH1yZXR1cm4gZSYmZS52aXNpYmxlKCk/dGhpcy5faXNXaWR0aFByb3BlcnR5KGUpP25ldyBoLk11bHRpcGxlTGluZVdpZHRoc1Byb3BlcnR5KFtlXSk6bmV3IHouQ29sbGVjdGlibGVDb2xvclByb3BlcnR5RGlyZWN0V3JhcHBlcihuZXcgaC5NdWx0aXBsZUxpbmVDb2xvcnNQcm9wZXJ0eShbZV0pKTpudWxsfV9zaG91bGRTaG93QmFja2dyb3VuZFByb3BlcnR5KGUpe3JldHVybiFlfHwhZS5maWxsQmFja2dyb3VuZHx8ISFlLmZpbGxCYWNrZ3JvdW5kLnZhbHVlKCl9X2lzRHJhd2luZ1Rvb2xFeGNsdWRpbmdDdXN0b21VcmxFdmVudFRvb2woZSl7cmV0dXJuIEJvb2xlYW4oZT8udG9Mb3dlckNhc2UoKS5pbmNsdWRlcygibGluZXRvb2wiKSkmJiJMaW5lVG9vbFR3ZWV0IiE9PWUmJiJMaW5lVG9vbElkZWEiIT09ZSYmIkxpbmVUb29sSW1hZ2UiIT09ZX1fdXBkYXRlVmlzaWJpbGl0eSgpe2lmKCF0aGlzLl9jYW5TaG93RmxvYXRpbmdUb29sYmFycylyZXR1cm4gdGhpcy5fdXBkYXRlVmlzaWJpbGl0eVRpbWVvdXQmJmNsZWFyVGltZW91dCh0aGlzLl91cGRhdGVWaXNpYmlsaXR5VGltZW91dCksdm9pZCB0aGlzLl9mbG9hdGluZ1Rvb2xiYXIuaGlkZSgpOyh0aGlzLl9pc0RyYXdpbmdGaW5pc2hlZHx8ISghdnR8fGZ0JiZjZS5DaGVja01vYmlsZS5hbnkoKSkpJiYodGhpcy5fdG9vbGJhclZpc2libGV8fHRoaXMuX3Byb3BlcnRpZXNWaXNpYmxlKT90aGlzLl9zaG93KCk6dGhpcy5faGlkZSgpfV9zaG93KCl7dGhpcy5fdXBkYXRlVmlzaWJpbGl0eVRpbWVvdXQmJmNsZWFyVGltZW91dCh0aGlzLl91cGRhdGVWaXNpYmlsaXR5VGltZW91dCksdGhpcy5fdXBkYXRlVmlzaWJpbGl0eVRpbWVvdXQ9c2V0VGltZW91dCgoKCk9Pnt0aGlzLl9yZW5kZXJGbG9hdGluZ1Rvb2xiYXIoKSx0aGlzLl9mbG9hdGluZ1Rvb2xiYXIuc2hvdygpLHRoaXMuX2Zsb2F0aW5nVG9vbGJhci5jaGVja1Bvc2l0aW9uKCl9KSwwKX1faGlkZSgpe3RoaXMuX3VwZGF0ZVZpc2liaWxpdHlUaW1lb3V0JiZjbGVhclRpbWVvdXQodGhpcy5fdXBkYXRlVmlzaWJpbGl0eVRpbWVvdXQpLHRoaXMuX3VwZGF0ZVZpc2liaWxpdHlUaW1lb3V0PXNldFRpbWVvdXQoKCgpPT57CigwLEllLnVuc2V0TmV3VG9vbFByb3BlcnRpZXMpKCEwKSx0aGlzLl9mbG9hdGluZ1Rvb2xiYXIuaGlkZSghMCksdGhpcy5faXNUb29sYmFyUmVuZGVyZWQoKSYmdGhpcy5fdW5tb3VudEZsb2F0aW5nVG9vbGJhcigpLHRoaXMuX2NsZWFyUHJvcGVydGllcygpLHRoaXMuX2NsZWFyQ29tbW9uQnV0dG9ucygpLHRoaXMuX2NsZWFyQWN0aW9uQ29tbW9uQnV0dG9ucygpLHRoaXMuX2NsZWFyQ2FuY2VsQnV0dG9ucygpLHRoaXMuX2NsZWFyVGVtcGxhdGVzQnV0dG9uKCksdGhpcy5fdGVtcGxhdGVzTGlzdD12b2lkIDB9KSwwKSxkZWxldGUgdGhpcy5fcHJvcGVydHlBcHBsaWVyfV9hY3RpdmVDaGFydFdpZGdldCgpe3JldHVybiB0aGlzLl9jaGFydFdpZGdldENvbGxlY3Rpb24uYWN0aXZlQ2hhcnRXaWRnZXQudmFsdWUoKX1fc2VsZWN0ZWRMaW5lRGF0YVNvdXJjZXMoKXtyZXR1cm4gdGhpcy5fc2VsZWN0ZWRMaW5lRGF0YVNvdXJjZXNTb3VyY2VzU3Bhd24udmFsdWUoKX1fc2hvd1RlbXBsYXRlc09mKGUpe2lmKHRoaXMuX3RlbXBsYXRlc0J1dHRvbiYmdGhpcy5fY2xlYXJUZW1wbGF0ZXNCdXR0b24oKSwhdnQpcmV0dXJuO2NvbnN0IHQ9InNvdXJjZXMiaW4gZTtpZih0JiYhZS5zb3VyY2VzLmxlbmd0aClyZXR1cm47Y29uc3Qgbz10P2Uuc291cmNlc1swXS50b29sbmFtZTplLnRvb2w7bGV0IG47aWYodGhpcy5fdGVtcGxhdGVzTGlzdD1uZXcgR2UuTGluZXRvb2xUZW1wbGF0ZXNMaXN0KG8sKGFzeW5jIG49Pnt0aGlzLl9hY3RpdmVDaGFydFdpZGdldCgpLm1vZGVsKCkuYXBwbHlMaW5lVG9vbHNUZW1wbGF0ZSh7Li4uZSxkYXRhOm59KSx0P2F3YWl0IHRoaXMuX29uU291cmNlQ2hhbmdlZChlLnNvdXJjZXMpOmF3YWl0IHRoaXMuX29uVG9vbENoYW5nZWQobyxlLnByb3BlcnRpZXMpfSkpLHQmJjE9PT1lLnNvdXJjZXMubGVuZ3RoKXtjb25zdHtzb3VyY2VzOlt0XX09ZTtuPSgpPT50LnRlbXBsYXRlKCl9dGhpcy5fYWRkVGVtcGxhdGVzQnV0dG9uKHtjb21wb25lbnQ6UWUscHJvcHM6e2tleToiVGVtcGxhdGVzIixtb2RlbDp0aGlzLl90ZW1wbGF0ZXNMaXN0LG9uU2F2ZTooMCxzLmlzRmVhdHVyZXNldEVuYWJsZWQpKCJkcmF3aW5nX3RlbXBsYXRlcyIpP246dm9pZCAwLG9uUmVzdG9yZTphc3luYygpPT57dD90aGlzLl9hY3RpdmVDaGFydFdpZGdldCgpLm1vZGVsKCkucmVzdG9yZUxpbmVUb29sc0ZhY3RvcnlEZWZhdWx0cyhlLnNvdXJjZXMpOmUucHJvcGVydGllcy5yZXN0b3JlRmFjdG9yeURlZmF1bHRzKCksYXdhaXQgdGhpcy5yZWZyZXNoKCl9fX0pfV9zaG93UHJvcGVydGllc09mKGUsdCxvKXt0aGlzLl90b29sRXhjZXB0aW9uQ2FzZXN8fCh0aGlzLl90b29sRXhjZXB0aW9uQ2FzZXM9dGhpcy5fY3JlYXRlVG9vbEV4Y2VwdGlvbkNhc2VzKCkpO2NvbnN0IG49dGhpcy5fdG9vbEV4Y2VwdGlvbkNhc2VzW2VdfHx0aGlzLl9nZXRQb3NzaWJsZVByb3BlcnR5KHQpO2lmKHRoaXMuX2NsZWFyUHJvcGVydGllcygpLHRoaXMuX3Byb3BlcnRpZXNWaXNpYmxlPSExLG4ubGVuZ3RoKWZvcihsZXQgZT0wO2U8bi5sZW5ndGg7ZSsrKXtjb25zdCBpPW5bZV07bGV0IHI9dDtjb25zdCBzPWkubmFtZS5zcGxpdCgiLiIpO2ZvcihsZXQgZT0wO2U8cy5sZW5ndGg7KytlKXI9ciYmci5jaGlsZChzW2VdKTtjb25zdCBhPWkuc2hvd0lmO2lmKHZvaWQgMD09PWF8fGEodCkpe2lmKCJmYWN0b3J5ImluIGkmJmkuZmFjdG9yeS5jYWxsKHRoaXMscixvKSljb250aW51ZTtpZighciljb250aW51ZTtjb25zdCBlPWk7dGhpcy5fcHJvcGVydGllc1Zpc2libGU9ITA7Y29uc3QgdD17Y29tcG9uZW50OlcscHJvcHM6e2ljb246ZS5pY29uLHRpdGxlOmUudGl0bGUsImRhdGEtbmFtZSI6ZVsiZGF0YS1uYW1lIl0scHJvcGVydHk6cixwcm9wZXJ0eUFwcGxpZXI6dGhpcy5fcHJvcGVydHlBcHBsaWVySW1wbCgpLHVuZG9UZXh0OmUudW5kb1RleHR9fTt0aGlzLl9hZGRQcm9wZXJ0eUJ1dHRvbih0KX19fV9nZXRQb3NzaWJsZVByb3BlcnR5KGUpe2NvbnN0IHQ9W10sbz10aGlzLl9kZWZhdWx0VG9vbFByb3BlcnRpZXMoKTtmb3IobGV0IG49MDtuPG8ubGVuZ3RoO24rKyl7Y29uc3QgaT1vW25dO2kubmFtZSBpbiBlJiZ0LnB1c2goaSl9cmV0dXJuIHR9X2RlZmF1bHRUb29sUHJvcGVydGllcygpe3JldHVyblt0aGlzLl9kZWZhdWx0TGluZXNDb2xvclByb3BlcnR5KCkse25hbWU6ImJhY2tncm91bmRzQ29sb3JzIixzaG93SWY6dGhpcy5fc2hvdWxkU2hvd0JhY2tncm91bmRQcm9wZXJ0eSxmYWN0b3J5OnRoaXMuX2NyZWF0ZUJhY2tncm91bmRzQnV0dG9ufSx7bmFtZToidGV4dHNDb2xvcnMiLGZhY3Rvcnk6dGhpcy5fY3JlYXRlVGV4dENvbG9yc0J1dHRvbn0se25hbWU6ImxpbmVzV2lkdGhzIixmYWN0b3J5OnRoaXMuX2NyZWF0ZVdpZHRoc0J1dHRvbn0se25hbWU6ImxpbmVzU3R5bGVzIixmYWN0b3J5OnRoaXMuX2NyZWF0ZUxpbmVTdHlsZUJ1dHRvbn1dfV9kZWZhdWx0TGluZXNDb2xvclByb3BlcnR5KCl7cmV0dXJue25hbWU6ImxpbmVzQ29sb3JzIixmYWN0b3J5OnRoaXMuX2NyZWF0ZUNvbG9yc0J1dHRvbn19X2NyZWF0ZVRvb2xFeGNlcHRpb25DYXNlcygpe3JldHVybntMaW5lVG9vbEJydXNoOnRoaXMuX2JydXNoUHJvcGVydGllc0V4Y2VwdGlvbkNhc2UoKSxMaW5lVG9vbEJlemllclF1YWRybzp0aGlzLl9iZXppZXJQcm9wZXJ0aWVzRXhjZXB0aW9uQ2FzZXMoKSxMaW5lVG9vbEJlemllckN1YmljOnRoaXMuX2JlemllclByb3BlcnRpZXNFeGNlcHRpb25DYXNlcygpLExpbmVUb29sVGV4dDp0aGlzLl90ZXh0UHJvcGVydGllc0V4Y2VwdGlvbkNhc2VzKCksTGluZVRvb2xUZXh0QWJzb2x1dGU6dGhpcy5fdGV4dFByb3BlcnRpZXNFeGNlcHRpb25DYXNlcygpLExpbmVUb29sQmFsbG9vbjp0aGlzLl90ZXh0UHJvcGVydGllc0V4Y2VwdGlvbkNhc2VzKCksTGluZVRvb2xDb21tZW50OnRoaXMuX3RleHRQcm9wZXJ0aWVzRXhjZXB0aW9uQ2FzZXMoKSxMaW5lVG9vbENhbGxvdXQ6dGhpcy5fdGV4dFByb3BlcnRpZXNFeGNlcHRpb25DYXNlcygpLExpbmVUb29sUHJpY2VMYWJlbDp0aGlzLl90ZXh0UHJvcGVydGllc0V4Y2VwdGlvbkNhc2VzKCksCkxpbmVUb29sRGF0ZVJhbmdlOnRoaXMuX3JhbmdlRXhjZXB0aW9uQ2FzZXMoKSxMaW5lVG9vbFByaWNlUmFuZ2U6dGhpcy5fcmFuZ2VFeGNlcHRpb25DYXNlcygpLExpbmVUb29sRGF0ZUFuZFByaWNlUmFuZ2U6dGhpcy5fcmFuZ2VFeGNlcHRpb25DYXNlcygpLExpbmVUb29sTm90ZTp0aGlzLl9ub3RlUHJvcGVydGllc0V4Y2VwdGlvbkNhc2VzKCksTGluZVRvb2xOb3RlQWJzb2x1dGU6dGhpcy5fbm90ZVByb3BlcnRpZXNFeGNlcHRpb25DYXNlcygpLExpbmVUb29sUmlza1Jld2FyZExvbmc6dGhpcy5fcmlza1Byb3BlcnRpZXNFeGNlcHRpb25DYXNlcygpLExpbmVUb29sUmlza1Jld2FyZFNob3J0OnRoaXMuX3Jpc2tQcm9wZXJ0aWVzRXhjZXB0aW9uQ2FzZXMoKSxMaW5lVG9vbFBhdGg6dGhpcy5fcGF0aEV4Y2VwdGlvbkNhc2VzKCksTGluZVRvb2xSZWdyZXNzaW9uVHJlbmQ6dGhpcy5fcmVncmVzc2lvblRvb2xFeGNlcHRpb25DYXNlcygpLExpbmVUb29sQmFyc1BhdHRlcm46W3tuYW1lOiJjb2xvciIsdGl0bGU6V3QsaWNvbjpwdCgpLCJkYXRhLW5hbWUiOiJiYWNrZ3JvdW5kLWNvbG9yIix1bmRvVGV4dDpDdH1dLExpbmVUb29sUHJvamVjdGlvbjpbe25hbWU6ImNvbG9yMSIsdGl0bGU6anQsaWNvbjpwdCgpLCJkYXRhLW5hbWUiOiJiYWNrZ3JvdW5kLWNvbG9yIix1bmRvVGV4dDp5dH0se25hbWU6ImNvbG9yMiIsdGl0bGU6WnQsaWNvbjpwdCgpLCJkYXRhLW5hbWUiOiJiYWNrZ3JvdW5kLWNvbG9yIix1bmRvVGV4dDp5dH0se25hbWU6ImxpbmVzV2lkdGhzIixmYWN0b3J5OnRoaXMuX2NyZWF0ZVdpZHRoc0J1dHRvbn1dLExpbmVUb29sU2lnbnBvc3Q6W3tuYW1lOiJsaW5lc0NvbG9ycyIsZmFjdG9yeTp0aGlzLl9jcmVhdGVCYWNrZ3JvdW5kc0J1dHRvbixzaG93SWY6ZT0+ZSYmZS5jaGlsZHMoKS5zaG93SW1hZ2UudmFsdWUoKX0se25hbWU6ImZvbnRTaXplIixmYWN0b3J5OnRoaXMuX2NyZWF0ZUZvbnRTaXplQnV0dG9ufV0sTGluZVRvb2xIaWdobGlnaHRlcjp0aGlzLl9oaWdobGlnaHRlclByb3BlcnRpZXNFeGNlcHRpb25DYXNlKCl9fV9icnVzaFByb3BlcnRpZXNFeGNlcHRpb25DYXNlKCl7cmV0dXJuW3RoaXMuX2RlZmF1bHRMaW5lc0NvbG9yUHJvcGVydHkoKSx7bmFtZToiYmFja2dyb3VuZHNDb2xvcnMiLGZhY3Rvcnk6dGhpcy5fY3JlYXRlQmFja2dyb3VuZHNCdXR0b259LHtuYW1lOiJsaW5lc1dpZHRocyIsZmFjdG9yeTp0aGlzLl9jcmVhdGVXaWR0aHNCdXR0b259XX1fYmV6aWVyUHJvcGVydGllc0V4Y2VwdGlvbkNhc2VzKCl7cmV0dXJuW3RoaXMuX2RlZmF1bHRMaW5lc0NvbG9yUHJvcGVydHkoKSx7bmFtZToiYmFja2dyb3VuZHNDb2xvcnMiLGZhY3Rvcnk6dGhpcy5fY3JlYXRlQmFja2dyb3VuZHNCdXR0b24sc2hvd0lmOnRoaXMuX3Nob3VsZFNob3dCYWNrZ3JvdW5kUHJvcGVydHl9LHtuYW1lOiJsaW5lc1dpZHRocyIsZmFjdG9yeTp0aGlzLl9jcmVhdGVXaWR0aHNCdXR0b259LHtuYW1lOiJsaW5lc1N0eWxlcyIsZmFjdG9yeTp0aGlzLl9jcmVhdGVMaW5lU3R5bGVCdXR0b259XX1fdGV4dFByb3BlcnRpZXNFeGNlcHRpb25DYXNlcygpe3JldHVyblt7bmFtZToiY29sb3IiLHRpdGxlOlJ0LGljb246Z3QoKSwiZGF0YS1uYW1lIjoidGV4dC1jb2xvciIsdW5kb1RleHQ6VHR9LHtuYW1lOiJiYWNrZ3JvdW5kQ29sb3IiLHRpdGxlOlZ0LGljb246cHQoKSwiZGF0YS1uYW1lIjoiYmFja2dyb3VuZC1jb2xvciIsdW5kb1RleHQ6eXQsc2hvd0lmOnRoaXMuX3Nob3VsZFNob3dCYWNrZ3JvdW5kUHJvcGVydHl9LHtuYW1lOiJmb250c2l6ZSIsZmFjdG9yeTp0aGlzLl9jcmVhdGVGb250U2l6ZUJ1dHRvbn1dfV9yYW5nZUV4Y2VwdGlvbkNhc2VzKCl7cmV0dXJuW3tuYW1lOiJsaW5lY29sb3IiLGljb246ZHQoKSx0aXRsZTpXdCwiZGF0YS1uYW1lIjoibGluZS10b29sLWNvbG9yIix1bmRvVGV4dDpDdH0se25hbWU6ImJhY2tncm91bmRDb2xvciIsaWNvbjpwdCgpLHRpdGxlOlZ0LCJkYXRhLW5hbWUiOiJiYWNrZ3JvdW5kLWNvbG9yIix1bmRvVGV4dDp5dCxzaG93SWY6dGhpcy5fc2hvdWxkU2hvd0JhY2tncm91bmRQcm9wZXJ0eX0se25hbWU6InRleHRzQ29sb3JzIixmYWN0b3J5OnRoaXMuX2NyZWF0ZVRleHRDb2xvcnNCdXR0b259LHtuYW1lOiJsaW5lc1dpZHRocyIsZmFjdG9yeTp0aGlzLl9jcmVhdGVXaWR0aHNCdXR0b259XX1fbm90ZVByb3BlcnRpZXNFeGNlcHRpb25DYXNlcygpe3JldHVyblt7bmFtZToibWFya2VyQ29sb3IiLHRpdGxlOkh0LGljb246ZHQoKSwiZGF0YS1uYW1lIjoibGluZS10b29sLWNvbG9yIix1bmRvVGV4dDpDdH0se25hbWU6InRleHRDb2xvciIsdGl0bGU6UnQsaWNvbjpndCgpLCJkYXRhLW5hbWUiOiJ0ZXh0LWNvbG9yIix1bmRvVGV4dDpUdH0se25hbWU6ImZvbnRTaXplIixmYWN0b3J5OnRoaXMuX2NyZWF0ZUZvbnRTaXplQnV0dG9ufV19X3Jpc2tQcm9wZXJ0aWVzRXhjZXB0aW9uQ2FzZXMoKXtyZXR1cm5be25hbWU6InRleHRjb2xvciIsdGl0bGU6UnQsaWNvbjpndCgpLCJkYXRhLW5hbWUiOiJ0ZXh0LWNvbG9yIix1bmRvVGV4dDpUdH0se25hbWU6InByb2ZpdEJhY2tncm91bmQiLHRpdGxlOk90LGljb246cHQoKSwiZGF0YS1uYW1lIjoiYmFja2dyb3VuZC1jb2xvciIsdW5kb1RleHQ6eXR9LHtuYW1lOiJzdG9wQmFja2dyb3VuZCIsdGl0bGU6enQsaWNvbjpwdCgpLCJkYXRhLW5hbWUiOiJiYWNrZ3JvdW5kLWNvbG9yIix1bmRvVGV4dDp5dH1dfV9wYXRoRXhjZXB0aW9uQ2FzZXMoKXtyZXR1cm5bdGhpcy5fZGVmYXVsdExpbmVzQ29sb3JQcm9wZXJ0eSgpLHtuYW1lOiJsaW5lc1dpZHRocyIsZmFjdG9yeTp0aGlzLl9jcmVhdGVXaWR0aHNCdXR0b259LHtuYW1lOiJsaW5lU3R5bGUiLGZhY3Rvcnk6dGhpcy5fY3JlYXRlTGluZVN0eWxlQnV0dG9ufV19X3JlZ3Jlc3Npb25Ub29sRXhjZXB0aW9uQ2FzZXMoKXtyZXR1cm5be25hbWU6ImxpbmVzV2lkdGhzIixmYWN0b3J5OnRoaXMuX2NyZWF0ZVdpZHRoc0J1dHRvbn1dfV9oaWdobGlnaHRlclByb3BlcnRpZXNFeGNlcHRpb25DYXNlKCl7cmV0dXJuW3RoaXMuX2RlZmF1bHRMaW5lc0NvbG9yUHJvcGVydHkoKSx7Cm5hbWU6IndpZHRocyIsZmFjdG9yeTp0aGlzLl9jcmVhdGVIaWdobGlnaHRlcldpZHRoc0J1dHRvbn1dfV9pc1dpZHRoUHJvcGVydHkoZSl7cmV0dXJuIGUgaW5zdGFuY2VvZiBoLkxpbmVUb29sV2lkdGhzUHJvcGVydHl9X2hhbmRsZVNvdXJjZUVkaXQoZSl7dS5pc0RpcmVjdGlvbmFsTW92ZW1lbnRBY3RpdmUudmFsdWUoKXx8KGU/dGhpcy5fZmxvYXRpbmdUb29sYmFyLmhpZGUoITApOnRoaXMuX2Zsb2F0aW5nVG9vbGJhclJlbmRlcmVkJiZ0aGlzLl9mbG9hdGluZ1Rvb2xiYXIuc2hvdygpKX19fSwxNTg4MDEoZSx0LG8peyJ1c2Ugc3RyaWN0IjtvLmQodCx7TGluZXRvb2xUZW1wbGF0ZXNMaXN0OigpPT5kfSk7dmFyIG49byg5MzAyMzEpLGk9bygxODUyNzEpLHI9byg2MTA2MjkpLHM9bygxNzk4MDIpLGE9byg2NTQ2MzYpLGw9bygyMzQ5NjQpLGM9byg0MjAwMDUpO2NvbnN0IHU9KDAsbi5pc0ZlYXR1cmVzZXRFbmFibGVkKSgiZHJhd2luZ190ZW1wbGF0ZXMiKTtjbGFzcyBke2NvbnN0cnVjdG9yKGUsdCl7dGhpcy5fdG9vbE5hbWU9ZSx0aGlzLl9hcHBseVRlbXBsYXRlPXQsdGhpcy5fdGVtcGxhdGVzRGVmZXJyZWQ9dT90aGlzLl9sb2FkRGF0YSgpOlByb21pc2UucmVzb2x2ZSgpfWdldERhdGEoKXtyZXR1cm4gci5zdG9yZS5nZXRTdGF0ZSgpLnRlbXBsYXRlc1t0aGlzLl90b29sTmFtZV19dGVtcGxhdGVzTG9hZGVkKCl7cmV0dXJuIHRoaXMuX3RlbXBsYXRlc0RlZmVycmVkfWxvYWRUZW1wbGF0ZShlLHQpe3Iuc3RvcmUuZGlzcGF0Y2goKDAscy5sb2FkVGVtcGxhdGUpKHRoaXMuX3Rvb2xOYW1lLGUsKGFzeW5jIGU9Pnthd2FpdCB0aGlzLl9hcHBseVRlbXBsYXRlKGUpLHQ/LigpfSkpKX1yZW1vdmVUZW1wbGF0ZShlKXtyLnN0b3JlLmRpc3BhdGNoKCgwLHMuc3RhcnRSZW1vdmVUZW1wbGF0ZSkodGhpcy5fdG9vbE5hbWUsZSkpfXNhdmVUZW1wbGF0ZShlLHQpe3Iuc3RvcmUuZGlzcGF0Y2goKDAscy5zYXZlVGVtcGxhdGUpKHRoaXMuX3Rvb2xOYW1lLGUsdCkpfWRlbGV0ZUFjdGlvbihlKXsoMCxhLnJ1bk9yU2lnbkluKSgoKCk9Pntjb25zdCB0PWkudChudWxsLHtyZXBsYWNlOntuYW1lOmV9fSxvKDg1MDI4NikpOygwLGwuc2hvd0NvbmZpcm0pKHt0aXRsZTppLnQobnVsbCx7Y29udGV4dDoiQ29uZmlybWF0aW9uIGRpYWxvZyB0aXRsZSJ9LG8oNzg5MzgyKSksdGV4dDp0LG1haW5CdXR0b25JbnRlbnQ6ImRhbmdlciIsbWFpbkJ1dHRvblRleHQ6aS50KG51bGwse2NvbnRleHQ6IkJ1dHRvbiBpbiBhIGNvbmZpcm1hdGlvbiBkaWFsb2cifSxvKDU3NzkyOSkpLGNhbmNlbEJ1dHRvblRleHQ6aS50KG51bGwse2NvbnRleHQ6IkJ1dHRvbiBpbiBhIGNvbmZpcm1hdGlvbiBkaWFsb2cifSxvKDI2NDczOSkpLG9uQ29uZmlybTp0PT57dGhpcy5yZW1vdmVUZW1wbGF0ZShlKSx0LmRpYWxvZ0Nsb3NlKCl9fSl9KSx7c291cmNlOiJEZWxldGUgbGluZSB0b29sIHRlbXBsYXRlIn0pfXNob3dTYXZlRGlhbG9nKGUpeygwLGEucnVuT3JTaWduSW4pKCgoKT0+eygwLGwuc2hvd1JlbmFtZSkoe3RpdGxlOmkudChudWxsLHtjb250ZXh0OiJkaWFsb2cgdGl0bGUifSxvKDMzODk2NikpLHRleHQ6aS50KG51bGwse2NvbnRleHQ6ImlucHV0IGxhYmVsIn0sbygxNzE4OTkpKSxtYXhMZW5ndGg6NjQsc291cmNlOnRoaXMuZ2V0RGF0YSgpfHxbXSxhdXRvY29tcGxldGVGaWx0ZXI6Yy5hdXRvY29tcGxldGVGaWx0ZXIsb25SZW5hbWU6dD0+e2lmKC0xIT09KHRoaXMuZ2V0RGF0YSgpfHxbXSkuaW5kZXhPZih0Lm5ld1ZhbHVlKSl7Y29uc3Qgbj1pLnQobnVsbCx7cmVwbGFjZTp7bmFtZTp0Lm5ld1ZhbHVlfX0sbyg3MzIyOTkpKTsoMCxsLnNob3dDb25maXJtKSh7dGV4dDpuLG9uQ29uZmlybTpvPT57ZSh0Lm5ld1ZhbHVlKSxvLmRpYWxvZ0Nsb3NlKCksdC5kaWFsb2dDbG9zZSgpfSxvbkNsb3NlOnQuZm9jdXNJbnB1dH0sdC5pbm5lck1hbmFnZXIpfWVsc2UgZSh0Lm5ld1ZhbHVlKSx0LmRpYWxvZ0Nsb3NlKCl9fSl9KSx7c291cmNlOiJTYXZlIGxpbmUgdG9vbCB0ZW1wbGF0ZSIsc291cmNlTWV0YToiQ2hhcnQifSl9YXN5bmMgX2xvYWREYXRhKCl7cmV0dXJuIG5ldyBQcm9taXNlKChlPT57dGhpcy5nZXREYXRhKCk/ZSgpOnIuc3RvcmUuZGlzcGF0Y2goKDAscy5nZXRUZW1wbGF0ZXMpKHRoaXMuX3Rvb2xOYW1lLGUpKX0pKX19fSwzNzUyNjIoZSx0LG8peyJ1c2Ugc3RyaWN0IjtvLmQodCx7QWJzdHJhY3RKc29uU3RvcmVTZXJ2aWNlOigpPT5yLENvbW1vbkpzb25TdG9yZVNlcnZpY2U6KCk9PnN9KTt2YXIgbj1vKDk0ODM4MCk7Y29uc3QgaT1TeW1ib2woIk5PX1ZBTFVFX1NFTlRJTkVMIik7Y2xhc3Mgcntjb25zdHJ1Y3RvcihlLHQsbyxpLHIpe3RoaXMuX29uQ2hhbmdlPW5ldyBuLkRlbGVnYXRlLHRoaXMuX2hhbmRsZUNoYW5nZT0oKT0+e3RoaXMuX29uQ2hhbmdlLmZpcmUodGhpcy5nZXQoKSl9LHRoaXMuX2Nyb3NzVGFiRXZlbnRzPWUsdGhpcy5fanNvbktleVZhbHVlU3RvcmU9dCx0aGlzLkNST1NTVEFCX0VWRU5UX05BTUU9byx0aGlzLkpTT05fU1RPUkVfS0VZPWksdGhpcy5kZWZhdWx0U3RvcmVWYWx1ZT10aGlzLl9zZXJpYWxpemUociksdGhpcy5fc3Vic2NyaWJlKCl9Z2V0KCl7Y29uc3QgZT10aGlzLl9qc29uS2V5VmFsdWVTdG9yZS5nZXRKU09OKHRoaXMuSlNPTl9TVE9SRV9LRVksdGhpcy5kZWZhdWx0U3RvcmVWYWx1ZSk7cmV0dXJuIHRoaXMuX2Rlc2VyaWFsaXplKGUpfXNldChlLHQpe2NvbnN0IG89dGhpcy5fc2VyaWFsaXplKGUpO3RoaXMuX2pzb25LZXlWYWx1ZVN0b3JlLnNldEpTT04odGhpcy5KU09OX1NUT1JFX0tFWSxvLHQpLHRoaXMuX2Nyb3NzVGFiRXZlbnRzLmVtaXQodGhpcy5DUk9TU1RBQl9FVkVOVF9OQU1FKSx0aGlzLl9vbkNoYW5nZS5maXJlKGUpfWhhc1ZhbHVlKCl7cmV0dXJuIHRoaXMuX2pzb25LZXlWYWx1ZVN0b3JlLmdldEpTT04odGhpcy5KU09OX1NUT1JFX0tFWSxpKSE9PWl9Z2V0T25DaGFuZ2UoKXtyZXR1cm4gdGhpcy5fb25DaGFuZ2V9ZGVzdHJveSgpe3RoaXMuX3Vuc3Vic2NyaWJlKCksdGhpcy5fb25DaGFuZ2UuZGVzdHJveSgpLGRlbGV0ZSB0aGlzLl9vbkNoYW5nZX0KX3N1YnNjcmliZSgpe3RoaXMuX2Nyb3NzVGFiRXZlbnRzLm9uKHRoaXMuQ1JPU1NUQUJfRVZFTlRfTkFNRSx0aGlzLl9oYW5kbGVDaGFuZ2UpLHRoaXMuX2pzb25LZXlWYWx1ZVN0b3JlLm9uU3luYy5zdWJzY3JpYmUodGhpcyx0aGlzLl9oYW5kbGVDaGFuZ2UpfV91bnN1YnNjcmliZSgpe3RoaXMuX2Nyb3NzVGFiRXZlbnRzLm9mZih0aGlzLkNST1NTVEFCX0VWRU5UX05BTUUsdGhpcy5faGFuZGxlQ2hhbmdlKSx0aGlzLl9qc29uS2V5VmFsdWVTdG9yZS5vblN5bmMudW5zdWJzY3JpYmUodGhpcyx0aGlzLl9oYW5kbGVDaGFuZ2UpfX1jbGFzcyBzIGV4dGVuZHMgcntfc2VyaWFsaXplKGUpe3JldHVybiBlfV9kZXNlcmlhbGl6ZShlKXtyZXR1cm4gZX19fSwxNzk4MDIoZSx0LG8peyJ1c2Ugc3RyaWN0IjtvLmQodCx7YWRkVGVtcGxhdGU6KCk9PnMsZ2V0VGVtcGxhdGVzOigpPT5pLGxvYWRUZW1wbGF0ZTooKT0+dSxyZW1vdmVUZW1wbGF0ZTooKT0+bCxzYXZlVGVtcGxhdGU6KCk9PmMsc2V0VGVtcGxhdGVzOigpPT5yLHN0YXJ0UmVtb3ZlVGVtcGxhdGU6KCk9PmF9KTt2YXIgbj1vKDMxMjUxMik7ZnVuY3Rpb24gaShlLHQpe3JldHVybnt0eXBlOm4uR0VUX1RFTVBMQVRFUyx0b29sTmFtZTplLGNhbGxiYWNrOnR9fWZ1bmN0aW9uIHIoZSx0KXtyZXR1cm57dHlwZTpuLlNFVF9URU1QTEFURVMsdGVtcGxhdGVzOnQsdG9vbE5hbWU6ZX19ZnVuY3Rpb24gcyhlLHQpe3JldHVybnt0eXBlOm4uQUREX1RFTVBMQVRFLHRlbXBsYXRlTmFtZTp0LHRvb2xOYW1lOmV9fWZ1bmN0aW9uIGEoZSx0KXtyZXR1cm57dHlwZTpuLlNUQVJUX1JFTU9WRV9URU1QTEFURSx0ZW1wbGF0ZU5hbWU6dCx0b29sTmFtZTplfX1mdW5jdGlvbiBsKGUsdCl7cmV0dXJue3R5cGU6bi5SRU1PVkVfVEVNUExBVEUsdGVtcGxhdGVOYW1lOnQsdG9vbE5hbWU6ZX19ZnVuY3Rpb24gYyhlLHQsbyl7cmV0dXJue3R5cGU6bi5TQVZFX1RFTVBMQVRFLHRlbXBsYXRlTmFtZTp0LHRvb2xOYW1lOmUsY29udGVudDpvfX1mdW5jdGlvbiB1KGUsdCxvKXtyZXR1cm57dHlwZTpuLkxPQURfVEVNUExBVEUsdG9vbE5hbWU6ZSx0ZW1wbGF0ZU5hbWU6dCxjYWxsYmFjazpvfX19LDMxMjUxMihlLHQsbyl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4oZSl7cmV0dXJuIkxJTkVfVE9PTF9URU1QTEFURV9fIitlfW8uZCh0LHtBRERfVEVNUExBVEU6KCk9PmMsR0VUX1RFTVBMQVRFUzooKT0+aSxMT0FEX1RFTVBMQVRFOigpPT51LFJFTU9WRV9URU1QTEFURTooKT0+YSxTQVZFX1RFTVBMQVRFOigpPT5sLFNFVF9URU1QTEFURVM6KCk9PnIsU1RBUlRfUkVNT1ZFX1RFTVBMQVRFOigpPT5zfSk7Y29uc3QgaT1uKCJHRVRfVEVNUExBVEVTIikscj1uKCJTRVRfVEVNUExBVEVTIikscz1uKCJTVEFSVF9SRU1PVkVfVEVNUExBVEUiKSxhPW4oIlJFTU9WRV9URU1QTEFURSIpLGw9bigiU0FWRV9URU1QTEFURSIpLGM9bigiQUREX1RFTVBMQVRFIiksdT1uKCJMT0FEX1RFTVBMQVRFIil9LDYxMDYyOShlLHQsbyl7InVzZSBzdHJpY3QiO28uZCh0LHtzdG9yZTooKT0+eX0pO3ZhciBuPW8oNzg3NzI0KSxpPW8oODk0NDgpLHI9byg2MTQ4MjUpLHM9bygxMzg2MzgpLGE9bygzMTI1MTIpLGw9bygyMjEwNjEpLGM9bygxNzk4MDIpLHU9byg0MzA4MTQpO2NvbnN0IGQ9KDAsbC5nZXRMb2dnZXIpKCJDaGFydC5MaW5lVG9vbFRlbXBsYXRlc0xpc3QiKTtmdW5jdGlvbiBoKGUsdCl7cmV0dXJuIHR9ZnVuY3Rpb24gcChlLHQpe3JldHVybiB0fWZ1bmN0aW9uKm0oKXtmb3IoOzspe2NvbnN0e3Rvb2xOYW1lOmUsdGVtcGxhdGVOYW1lOnQsY29udGVudDpvfT1oKGEuU0FWRV9URU1QTEFURSx5aWVsZCgwLHIudGFrZSkoYS5TQVZFX1RFTVBMQVRFKSk7dHJ5e3lpZWxkKDAsci5jYWxsKSh1LmJhY2tlbmQuc2F2ZURyYXdpbmdUZW1wbGF0ZSxlLHQsbykseWllbGQoMCxyLnB1dCkoKDAsYy5hZGRUZW1wbGF0ZSkoZSx0KSl9Y2F0Y2goZSl7ZC5sb2dXYXJuKGUpfX19ZnVuY3Rpb24qZygpe2Zvcig7Oyl7Y29uc3R7dG9vbE5hbWU6ZSx0ZW1wbGF0ZU5hbWU6dH09aChhLlNUQVJUX1JFTU9WRV9URU1QTEFURSx5aWVsZCgwLHIudGFrZSkoYS5TVEFSVF9SRU1PVkVfVEVNUExBVEUpKTt0cnl7eWllbGQoMCxyLmNhbGwpKHUuYmFja2VuZC5yZW1vdmVEcmF3aW5nVGVtcGxhdGUsZSx0KSx5aWVsZCgwLHIucHV0KSgoMCxjLnJlbW92ZVRlbXBsYXRlKShlLHQpKX1jYXRjaChlKXtkLmxvZ1dhcm4oZSl9fX1mdW5jdGlvbip2KCl7Y29uc3QgZT1uZXcgTWFwO2Zvcig7Oyl7Y29uc3R7dG9vbE5hbWU6byxjYWxsYmFjazpufT1oKGEuR0VUX1RFTVBMQVRFUyx5aWVsZCgwLHIudGFrZSkoYS5HRVRfVEVNUExBVEVTKSk7ZS5oYXMobyk/KDAscy5lbnN1cmVEZWZpbmVkKShlLmdldChvKSkucHVzaChuKTooZS5zZXQobyxbbl0pLHlpZWxkKDAsci5mb3JrKSh0LG8pKX1mdW5jdGlvbip0KHQpe3RyeXtjb25zdCBlPXAodS5iYWNrZW5kLmdldERyYXdpbmdUZW1wbGF0ZXMseWllbGQoMCxyLmNhbGwpKHUuYmFja2VuZC5nZXREcmF3aW5nVGVtcGxhdGVzLHQpKTt5aWVsZCgwLHIucHV0KSgoMCxjLnNldFRlbXBsYXRlcykodCxlKSl9Y2F0Y2goZSl7ZC5sb2dXYXJuKGUpfSgwLHMuZW5zdXJlRGVmaW5lZCkoZS5nZXQodCkpLmZvckVhY2goKGU9PmU/LigpKSksZS5kZWxldGUodCl9fWZ1bmN0aW9uKmYoKXtmb3IoOzspe2NvbnN0e3Rvb2xOYW1lOmUsdGVtcGxhdGVOYW1lOnQsY2FsbGJhY2s6b309aChhLkxPQURfVEVNUExBVEUseWllbGQoMCxyLnRha2UpKGEuTE9BRF9URU1QTEFURSkpO3RyeXtjb25zdCBuPXAodS5iYWNrZW5kLmxvYWREcmF3aW5nVGVtcGxhdGUseWllbGQoMCxyLmNhbGwpKHUuYmFja2VuZC5sb2FkRHJhd2luZ1RlbXBsYXRlLGUsdCkpO28mJm8obil9Y2F0Y2goZSl7ZC5sb2dXYXJuKGUpfX19ZnVuY3Rpb24qXygpe3lpZWxkKDAsci5hbGwpKFsoMCxyLmNhbGwpKHYpLCgwLHIuY2FsbCkobSksKDAsci5jYWxsKShnKSwoMCxyLmNhbGwpKGYpXSl9Y29uc3QgYj17dGVtcGxhdGVzOnt9fTtmdW5jdGlvbiB3KGUsdCl7cmV0dXJuIGUubG9jYWxlQ29tcGFyZSh0LHZvaWQgMCx7bnVtZXJpYzohMH0pfQpmdW5jdGlvbiBDKGU9Yix0KXtzd2l0Y2godC50eXBlKXtjYXNlIGEuQUREX1RFTVBMQVRFOntjb25zdHt0b29sTmFtZTpvLHRlbXBsYXRlTmFtZTpufT10O2lmKCFlLnRlbXBsYXRlc1tvXS5pbmNsdWRlcyhuKSl7Y29uc3QgdD1bLi4uZS50ZW1wbGF0ZXNbb10sbl0uc29ydCh3KTtyZXR1cm57Li4uZSx0ZW1wbGF0ZXM6ey4uLmUudGVtcGxhdGVzLFtvXTp0fX19cmV0dXJuIGV9Y2FzZSBhLlNFVF9URU1QTEFURVM6e2NvbnN0e3Rvb2xOYW1lOm8sdGVtcGxhdGVzOm59PXQ7cmV0dXJuey4uLmUsdGVtcGxhdGVzOnsuLi5lLnRlbXBsYXRlcyxbb106Wy4uLm5dLnNvcnQodyl9fX1jYXNlIGEuUkVNT1ZFX1RFTVBMQVRFOntjb25zdHt0b29sTmFtZTpvLHRlbXBsYXRlTmFtZTpufT10O3JldHVybnsuLi5lLHRlbXBsYXRlczp7Li4uZS50ZW1wbGF0ZXMsW29dOmUudGVtcGxhdGVzW29dLmZpbHRlcigoZT0+ZSE9PW4pKX19fWRlZmF1bHQ6cmV0dXJuIGV9fWNvbnN0IHk9ZnVuY3Rpb24oKXtjb25zdCBlPSgwLGkuZGVmYXVsdCkoKSx0PSgwLG4uY3JlYXRlU3RvcmUpKEMsKDAsbi5hcHBseU1pZGRsZXdhcmUpKGUpKTtyZXR1cm4gZS5ydW4oXyksdH0oKX0sNTcxNzY4KGUsdCxvKXsidXNlIHN0cmljdCI7by5kKHQse0xpbmV0b29sc0Zhdm9yaXRlc1N0b3JlOigpPT51fSk7dmFyIG49byg5NDgzODApLGk9byg2MDE4NDEpLHI9byg1NjkzOTgpLHM9byg5MzA1NjYpO2NvbnN0IGE9WyJMaW5lVG9vbEJhbGxvb24iLCJMaW5lVG9vbE5vdGVBYnNvbHV0ZSIsIkxpbmVUb29sQXJyb3dNYXJrTGVmdCIsIkxpbmVUb29sQXJyb3dNYXJrUmlnaHQiXS5maWx0ZXIoaS5pc0V4aXN0ZW50KSxsPVsoMCxyLmlzRmVhdHVyZUVuYWJsZWQpKCJoaWRlX3R3ZWV0X2RyYXdpbmd0b29sIik/IkxpbmVUb29sVHdlZXQiOm51bGwsKDAsci5pc0ZlYXR1cmVFbmFibGVkKSgicmVtb3ZlX2FuY2hvcmVkX3RleHQiKT8iTGluZVRvb2xUZXh0QWJzb2x1dGUiOm51bGxdLmZpbHRlcihpLmlzRXhpc3RlbnQpO3ZhciBjLHU7IWZ1bmN0aW9uKGUpe2Z1bmN0aW9uIHQoKXtlLmZhdm9yaXRlcz1bXTtsZXQgdD0hMTtCb29sZWFuKHZvaWQgMD09PSgwLHMuZ2V0VmFsdWUpKCJjaGFydC5mYXZvcml0ZURyYXdpbmdzIikpOygwLHMuZ2V0SlNPTikoImNoYXJ0LmZhdm9yaXRlRHJhd2luZ3MiLFtdKS5mb3JFYWNoKCgobixpKT0+e2NvbnN0IHI9bi50b29sfHxuO28ocik/YS5pbmNsdWRlcyhyKT90PSEwOmUuZmF2b3JpdGVzLnB1c2gocik6bCYmbC5pbmNsdWRlcyhyKSYmZS5oaWRkZW5Ub29sc1Bvc2l0aW9ucy5zZXQocixpKX0pKSx0JiZpKCksZS5mYXZvcml0ZXNTeW5jZWQuZmlyZSgpfWZ1bmN0aW9uIG8oZSl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiBlJiYiIiE9PWUmJiEobCYmbC5pbmNsdWRlcyhlKSl9ZnVuY3Rpb24gaSh0KXtjb25zdCBvPWUuZmF2b3JpdGVzLnNsaWNlKCk7ZS5oaWRkZW5Ub29sc1Bvc2l0aW9ucy5mb3JFYWNoKCgoZSx0KT0+e28uc3BsaWNlKGUsMCx0KX0pKSwoMCxzLnNldEpTT04pKCJjaGFydC5mYXZvcml0ZURyYXdpbmdzIixvLHQpfWUuZmF2b3JpdGVzPVtdLGUuZmF2b3JpdGVzU3luY2VkPW5ldyBuLkRlbGVnYXRlLGUuaGlkZGVuVG9vbHNQb3NpdGlvbnM9bmV3IE1hcCxlLmZhdm9yaXRlSW5kZXg9ZnVuY3Rpb24odCl7cmV0dXJuIGUuZmF2b3JpdGVzLmluZGV4T2YodCl9LGUuaXNWYWxpZExpbmVUb29sTmFtZT1vLGUuc2F2ZUZhdm9yaXRlcz1pLHQoKSxzLm9uU3luYy5zdWJzY3JpYmUobnVsbCx0KX0oY3x8KGM9e30pKSxmdW5jdGlvbihlKXtmdW5jdGlvbiB0KGUpe3JldHVybiBjLmlzVmFsaWRMaW5lVG9vbE5hbWUoZSl9ZnVuY3Rpb24gbygpe3JldHVybiBjLmZhdm9yaXRlcy5sZW5ndGh9ZnVuY3Rpb24gaShlKXtyZXR1cm4tMSE9PWMuZmF2b3JpdGVJbmRleChlKX1lLmZhdm9yaXRlQWRkZWQ9bmV3IG4uRGVsZWdhdGUsZS5mYXZvcml0ZVJlbW92ZWQ9bmV3IG4uRGVsZWdhdGUsZS5mYXZvcml0ZU1vdmVkPW5ldyBuLkRlbGVnYXRlLGUuZmF2b3JpdGVzU3luY2VkPWMuZmF2b3JpdGVzU3luY2VkLGUuZmF2b3JpdGVzPWZ1bmN0aW9uKCl7cmV0dXJuIGMuZmF2b3JpdGVzLnNsaWNlKCl9LGUuaXNWYWxpZExpbmVUb29sTmFtZT10LGUuZmF2b3JpdGVzQ291bnQ9byxlLmZhdm9yaXRlPWZ1bmN0aW9uKGUpe3JldHVybiBlPDB8fGU+PW8oKT8iIjpjLmZhdm9yaXRlc1tlXX0sZS5hZGRGYXZvcml0ZT1mdW5jdGlvbihvLG4pe3JldHVybiEoaShvKXx8IXQobykpJiYoYy5mYXZvcml0ZXMucHVzaChvKSxjLnNhdmVGYXZvcml0ZXMobiksZS5mYXZvcml0ZUFkZGVkLmZpcmUobyksITApfSxlLnJlbW92ZUZhdm9yaXRlPWZ1bmN0aW9uKHQsbyl7Y29uc3Qgbj1jLmZhdm9yaXRlSW5kZXgodCk7aWYoLTE9PT1uKXJldHVybiExO2MuZmF2b3JpdGVzLnNwbGljZShuLDEpO2NvbnN0IGk9Yy5oaWRkZW5Ub29sc1Bvc2l0aW9ucztyZXR1cm4gaS5mb3JFYWNoKCgoZSx0KT0+e2U+biYmaS5zZXQodCxlLTEpfSkpLGMuc2F2ZUZhdm9yaXRlcyhvKSxlLmZhdm9yaXRlUmVtb3ZlZC5maXJlKHQpLCEwfSxlLmlzRmF2b3JpdGU9aSxlLm1vdmVGYXZvcml0ZT1mdW5jdGlvbihuLGkscil7aWYoaTwwfHxpPj1vKCl8fCF0KG4pKXJldHVybiExO2NvbnN0IHM9Yy5mYXZvcml0ZUluZGV4KG4pO2lmKC0xPT09c3x8aT09PXMpcmV0dXJuITE7Y29uc3QgYT1jLmhpZGRlblRvb2xzUG9zaXRpb25zO3JldHVybiBhLmZvckVhY2goKChlLHQpPT57czxlJiZpPmU/ZS0tOmk8ZSYmcz5lJiZlKyssYS5zZXQodCxlKX0pKSxjLmZhdm9yaXRlcy5zcGxpY2UocywxKSxjLmZhdm9yaXRlcy5zcGxpY2UoaSwwLG4pLGMuc2F2ZUZhdm9yaXRlcyhyKSxlLmZhdm9yaXRlTW92ZWQuZmlyZShuLHMsaSksITB9fSh1fHwodT17fSkpfSw0MjAwMDUoZSx0LG8peyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKGUsdCl7cmV0dXJuIEJvb2xlYW4oIiI9PT1lfHxlJiYtMSE9PXQudG9Mb3dlckNhc2UoKS5pbmRleE9mKGUudG9Mb3dlckNhc2UoKSkpfW8uZCh0LHthdXRvY29tcGxldGVGaWx0ZXI6KCk9Pm59KX0sOTExMzI3KGUsdCxvKXsidXNlIHN0cmljdCI7by5kKHQsewpleHRyYWN0VGFiUGF0aDooKT0+ZixnZXRTeW1ib2xQYWdlUGF0aDooKT0+YyxtYWtlU3ltYm9sQ2hhcnRVcmw6KCk9PnYsbWFrZVN5bWJvbFBhZ2VVcmw6KCk9Pmd9KTtvKDk2MzkwMCk7dmFyIG49bygzMDk4MzYpLGk9bygyNDE5MzcpLHI9byg4NTE0NTgpLHM9bygxNTY4MjkpO2NvbnN0IGE9bmV3IFNldChbIlNQOlNQWCIsIkNCT0U6U1BYIl0pO2Z1bmN0aW9uIGwoZSl7Y29uc3QgdD17Li4uZX07aWYoInNwcmVhZCI9PT10LnR5cGV8fCJleHByZXNzaW9uIj09PXQudHlwZSl7Y29uc3QgZT10LnNob3J0TmFtZSYmdSh0LnNob3J0TmFtZSksbz10LnByb05hbWUmJnUodC5wcm9OYW1lKTt0LnR5cGU9dm9pZCAwLHQuc2hvcnROYW1lPWUsdC5wcm9OYW1lPW99cmV0dXJuIHR9ZnVuY3Rpb24gYyhlLHQpe2NvbnN0IG89bChlKTtyZXR1cm4gaChwKG8sdCksZChvKSl9ZnVuY3Rpb24gdShlKXtyZXR1cm4oMCxyLnRva2VuaXplKShlKS5maW5kKChlPT4ic3ltYm9sIj09PWUudHlwZSkpPy52YWx1ZX1mdW5jdGlvbiBkKGUpe2NvbnN0IHQ9e3Nob3J0TmFtZTplLnNob3J0TmFtZSxleGNoYW5nZTplLmV4Y2hhbmdlLHByb05hbWU6ZS5wcm9OYW1lLHR5cGU6ZS50eXBlLHR5cGVzcGVjczplLnR5cGVzcGVjcyxyb290OmUucm9vdH07cmV0dXJuIHQucHJvTmFtZSYmdC5wcm9OYW1lLmluY2x1ZGVzKCI6IikmJihbdC5leGNoYW5nZSx0LnNob3J0TmFtZV09dC5wcm9OYW1lLnNwbGl0KCI6IikpLHR9ZnVuY3Rpb24gaChlLHQpe2NvbnN0IG89ZW5jb2RlVVJJQ29tcG9uZW50KHQuc2hvcnROYW1lfHwiIiksbj1lbmNvZGVVUklDb21wb25lbnQodC5leGNoYW5nZXx8IiIpLGk9ZW5jb2RlVVJJQ29tcG9uZW50KHQucHJvTmFtZXx8IiIpLHI9ZW5jb2RlVVJJQ29tcG9uZW50KHQucm9vdHx8IiIpO3JldHVybiBlLnJlcGxhY2UoInt0dmV4Y2hhbmdlfSIsbikucmVwbGFjZSgie3R2c3ltYm9sfSIsbykucmVwbGFjZSgie3R2cHJvc3ltYm9sfSIsaSkucmVwbGFjZSgie3R2cm9vdH0iLHIpfWZ1bmN0aW9uIHAoZSx0PSIiKXtjb25zdCBvPWQoZSkse3R5cGU6bix0eXBlc3BlY3M6aSxzaG9ydE5hbWU6cixwcm9OYW1lOmwsZXhjaGFuZ2U6Yyxyb290OnV9PW87cmV0dXJuIHZvaWQgMD09PXImJnZvaWQgMD09PWw/KGNvbnNvbGUud2FybigiUGFyYW1zIG1pc3NlZCIpLCIvIik6bCYmYS5oYXMobCk/YC9zeW1ib2xzL3t0dnN5bWJvbH0vJHt0fWA6bnx8aT8iY29tbW9kaXR5Ij09PW4mJmkmJmkuaW5jbHVkZXMoImNmZCIpPyIvc3ltYm9scy97dHZzeW1ib2x9Lz9leGNoYW5nZT17dHZleGNoYW5nZX0iOiF1fHwhaXx8ImZ1dHVyZXMiIT09bnx8aS5pbmNsdWRlcygiY29udGludW91cyIpJiZyPy5lbmRzV2l0aCgiMSEiKXx8aS5pbmNsdWRlcygiZXhjaGFuZ2UtY29udGludW91cyIpP2MmJigiZm9yZXgiPT09bnx8aSYmKDAscy5oYXNDcnlwdG9UeXBlc3BlYykoaSkpPyIvc3ltYm9scy97dHZzeW1ib2x9Lz9leGNoYW5nZT17dHZleGNoYW5nZX0iOmM/YC9zeW1ib2xzL3t0dmV4Y2hhbmdlfS17dHZzeW1ib2x9LyR7dH1gOmAvc3ltYm9scy97dHZzeW1ib2x9LyR7dH1gOmAvc3ltYm9scy97dHZleGNoYW5nZX0te3R2cm9vdH0xIS8ke3R9P2NvbnRyYWN0PXt0dnN5bWJvbH1gOmM/YC9zeW1ib2xzL3t0dmV4Y2hhbmdlfS17dHZzeW1ib2x9LyR7dH1gOmAvc3ltYm9scy97dHZzeW1ib2x9LyR7dH1gfWZ1bmN0aW9uIG0oZSx0LG8scil7Y29uc3Qgcz0od2luZG93LmxvY2FsZV9kb21haW5zPygwLGkuZGV0ZXJtaW5lQmFzZVVybCkod2luZG93LmxvY2FsZV9kb21haW5zLHIpOndpbmRvdy5sb2NhdGlvbi5vcmlnaW4pK2goZSxkKGwodCkpKTtyZXR1cm4gbz8oMCxuLmFkZFV0bVRvVXJsKShzLG8pOnN9ZnVuY3Rpb24gZyhlLHQsbyxuKXtjb25zdCBpPWwoZSk7cmV0dXJuIG0ocChpLG4pLGksdCxvKX1mdW5jdGlvbiB2KGUsdCl7cmV0dXJuIG0oIi9jaGFydC8/c3ltYm9sPXt0dnByb3N5bWJvbH0iLGUsdCl9ZnVuY3Rpb24gZihlLHQpe2NvbnN0IG89Yyh7cHJvTmFtZTplfSk7cmV0dXJuIHQuc3RhcnRzV2l0aChvKT90LnJlcGxhY2Uoby5zbGljZSgwLG8ubGVuZ3RoLTEpLCIiKTpudWxsfX0sMzkxNTg1KGUpe2UuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyOCIgaGVpZ2h0PSIyOCI+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBkPSJNNCAxM2g1djFINHYtMXpNMTIgMTNoNXYxaC01di0xek0yMCAxM2g1djFoLTV2LTF6Ii8+PC9zdmc+J30sOTY4OTMwKGUpe2UuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyOCAyOCIgd2lkdGg9IjI4IiBoZWlnaHQ9IjI4Ij48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGQ9Ik0zIDEzaDJ2Mkgzdi0yWm01IDBoMnYySDh2LTJabTcgMGgtMnYyaDJ2LTJabTMgMGgydjJoLTJ2LTJabTcgMGgtMnYyaDJ2LTJaIi8+PC9zdmc+J30sMjYxNTYxKGUpe2UuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyOCAyOCIgd2lkdGg9IjI4IiBoZWlnaHQ9IjI4Ij48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGQ9Ik0yMyA4SDVWN2gxOHYxWk05IDE0SDV2LTFoNHYxWm0zIDBoNHYtMWgtNHYxWm0xMSAwaC00di0xaDR2MVpNNyAxOUg1djJoMnYtMlptMiAwaDJ2Mkg5di0yWm02IDBoLTJ2Mmgydi0yWm0yIDBoMnYyaC0ydi0yWm02IDBoLTJ2Mmgydi0yWiIvPjwvc3ZnPid9LDIwNjQ5NShlKXtlLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iMjgiIGhlaWdodD0iMjgiPjxwYXRoIHN0cm9rZT0iY3VycmVudENvbG9yIiBkPSJNNCAxMy41aDIwIi8+PC9zdmc+J30sODIxMDk5KGUpewplLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMTYgMTYiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiI+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBkPSJNMTAuNjIuNzJhMi40NyAyLjQ3IDAgMCAxIDMuNSAwbDEuMTYgMS4xNmMuOTYuOTcuOTYgMi41NCAwIDMuNWwtLjU4LjU4LTguOSA4LjktMSAxLS4xNC4xNEgwdi00LjY1bC4xNC0uMTUgMS0xIDguOS04LjkuNTgtLjU4Wm0yLjguN2ExLjQ4IDEuNDggMCAwIDAtMi4xIDBsLS4yMy4yMyAzLjI2IDMuMjYuMjMtLjIzYy41OC0uNTguNTgtMS41MiAwLTIuMWwtMS4xNi0xLjE2Wm0uMjMgNC4yLTMuMjYtMy4yNy04LjIgOC4yIDMuMjUgMy4yNyA4LjItOC4yWm0tOC45IDguOS0zLjI3LTMuMjYtLjUuNVYxNWgzLjI3bC41LS41WiIvPjwvc3ZnPid9LDkzNTEoZSl7ZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDE4IDE4IiB3aWR0aD0iMTgiIGhlaWdodD0iMTgiPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZD0iTTMuOTIgNy44MyA5IDEyLjI5bDUuMDgtNC40Ni0xLTEuMTNMOSAxMC4yOWwtNC4wOS0zLjYtLjk5IDEuMTRaIi8+PC9zdmc+J30sNjczMDY1KGUpe2UuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxOCAxOCIgd2lkdGg9IjE4IiBoZWlnaHQ9IjE4Ij48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTkgMTdBOCA4IDAgMSAwIDkgMWE4IDggMCAwIDAgMCAxNlptNC05Ljk3TDExLjkgNiA4LjMgOS44MiA2LjEgNy40NiA0Ljk5IDguNSA4LjMyIDEyIDEzIDcuMDNaIi8+PC9zdmc+J30sNDAwMDQ2KGUpe2UuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxOCAxOCIgd2lkdGg9IjE4IiBoZWlnaHQ9IjE4Ij48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTkgMTdBOCA4IDAgMSAwIDkgMWE4IDggMCAwIDAgMCAxNlpNOSA0Yy0uNzkgMC0xLjM4LjctMS4yNSAxLjQ4bC42NyA0LjAzYS41OS41OSAwIDAgMCAxLjE2IDBsLjY3LTQuMDNBMS4yNyAxLjI3IDAgMCAwIDkgNFptMCA4YTEgMSAwIDEgMCAwIDIgMSAxIDAgMCAwIDAtMloiLz48L3N2Zz4nfSw1MjcyMTkoZSl7ZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDE4IDE4IiB3aWR0aD0iMTgiIGhlaWdodD0iMTgiPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZD0iTTkgMTdBOCA4IDAgMSAwIDkgMWE4IDggMCAwIDAgMCAxNlptMS0xMmExIDEgMCAxIDEtMiAwIDEgMSAwIDAgMSAyIDBaTTguNSA5LjVIN1Y4aDN2Nkg4LjVWOS41WiIvPjwvc3ZnPid9LDc4NTk5NShlKXtlLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMTggMTgiIHdpZHRoPSIxOCIgaGVpZ2h0PSIxOCI+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik05IDE3QTggOCAwIDEgMCA5IDFhOCA4IDAgMCAwIDAgMTZabS0xLTRhMSAxIDAgMSAwIDIgMCAxIDEgMCAwIDAtMiAwWm0yLjgzLTMuNTJjLS40OS40My0uOTcuODUtMS4wNiAxLjUySDguMjZjLjA4LTEuMTguNzQtMS42OSAxLjMyLTIuMTMuNDktLjM4LjkyLS43MS45Mi0xLjM3QzEwLjUgNi42NyA5LjgyIDYgOSA2cy0xLjUuNjctMS41IDEuNVY4SDZ2LS41YTMgMyAwIDEgMSA2IDBjMCAuOTYtLjYgMS40OC0xLjE3IDEuOThaIi8+PC9zdmc+J30sNjE3NTc0KGUpe2UuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyOCAyOCIgd2lkdGg9IjI4IiBoZWlnaHQ9IjI4Ij48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTEyLjU2IDE2LjE1IDYuNzEgMjJoOC4yOGE5LjQ2IDkuNDYgMCAwIDAtMi40My01Ljg1Wm0uNzEtLjcxIDguMDgtOC4wOS0uNy0uNy0xNS41IDE1LjUtLjg2Ljg1SDI0di0xaC04LjAxYTEwLjQ2IDEwLjQ2IDAgMCAwLTIuNzItNi41NloiLz48L3N2Zz4nfSw3NDcxODEoZSl7ZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDI4IDI4IiB3aWR0aD0iMjgiIGhlaWdodD0iMjgiPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZD0iTTIxLjM1IDcuMzVhLjUuNSAwIDAgMC0uNy0uN0wxNCAxMy4yOSA3LjM1IDYuNjVhLjUuNSAwIDEgMC0uNy43TDEzLjI5IDE0bC02LjY0IDYuNjVhLjUuNSAwIDAgMCAuNy43TDE0IDE0LjcxbDYuNjUgNi42NGEuNS41IDAgMCAwIC43LS43TDE0LjcxIDE0bDYuNjQtNi42NXoiLz48L3N2Zz4nfSw3NjM5NDEoZSl7ZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDIwIDIwIiB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIGZpbGw9Im5vbmUiPjxwYXRoIHN0cm9rZT0iY3VycmVudENvbG9yIiBkPSJNMTMuNSA2LjVsLTMtMy03IDcgNy41OSA3LjU5YTIgMiAwIDAgMCAyLjgyIDBsNC4xOC00LjE4YTIgMiAwIDAgMCAwLTIuODJMMTMuNSA2LjV6bTAgMHYtNGEyIDIgMCAwIDAtMi0ydjBhMiAyIDAgMCAwLTIgMnY2Ii8+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBkPSJNMCAxNi41QzAgMTUgMi41IDEyIDIuNSAxMlM1IDE1IDUgMTYuNSA0IDE5IDIuNSAxOSAwIDE4IDAgMTYuNXoiLz48Y2lyY2xlIGZpbGw9ImN1cnJlbnRDb2xvciIgY3g9IjkuNSIgY3k9IjkuNSIgcj0iMS41Ii8+PC9zdmc+J30sNjY0MzMoZSl7CmUuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA4IDEyIiB3aWR0aD0iOCIgaGVpZ2h0PSIxMiIgZmlsbD0iY3VycmVudENvbG9yIj48cmVjdCB3aWR0aD0iMiIgaGVpZ2h0PSIyIiByeD0iMSIvPjxyZWN0IHdpZHRoPSIyIiBoZWlnaHQ9IjIiIHJ4PSIxIiB5PSI1Ii8+PHJlY3Qgd2lkdGg9IjIiIGhlaWdodD0iMiIgcng9IjEiIHk9IjEwIi8+PHJlY3Qgd2lkdGg9IjIiIGhlaWdodD0iMiIgcng9IjEiIHg9IjYiLz48cmVjdCB3aWR0aD0iMiIgaGVpZ2h0PSIyIiByeD0iMSIgeD0iNiIgeT0iNSIvPjxyZWN0IHdpZHRoPSIyIiBoZWlnaHQ9IjIiIHJ4PSIxIiB4PSI2IiB5PSIxMCIvPjwvc3ZnPid9LDgwNjU1NChlKXtlLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMTMgMTUiIHdpZHRoPSIxMyIgaGVpZ2h0PSIxNSIgZmlsbD0ibm9uZSI+PHBhdGggc3Ryb2tlPSJjdXJyZW50Q29sb3IiIGQ9Ik00IDE0LjVoMi41bTIuNSAwSDYuNW0wIDBWLjVtMCAwaC01YTEgMSAwIDAgMC0xIDFWNG02LTMuNWg1YTEgMSAwIDAgMSAxIDFWNCIvPjwvc3ZnPid9LDEyNjQ2NChlKXsKZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDcyIDcyIiB3aWR0aD0iMjgiIGhlaWdodD0iMjgiPjxwYXRoIGZpbGw9IiNmZmYiIGQ9Ik01OC42NiA2MC45NWEzMCAzMCAwIDAgMS00My41OC0xMS43MXEtMS4zLS42Ni0yLjU1LTEuNDNhNDEgNDEgMCAwIDEtNC42NS0zLjM4IDYwIDYwIDAgMCAxLTQuOTYtNC40MUEyMiAyMiAwIDAgMSAuMiAzNi4zN2MtLjQ2LS43LS4wNC0xLjI3LjQ3LTEuNzJsLjk1LS44cS45LS43OCAxLjgtMS41OGMuNC0uMzcuNjItLjYuOS0uOTJsLjQtLjQ1Yy40LS40My4zNC0uODMtLjA2LTEuMjQtLjUyLS41My0uODItLjktMS4xMy0xLjI1LS4zLS4zNi0uNjEtLjcyLTEuMTQtMS4yNi0uNDgtLjQ4LS42LS45LS4wNS0xLjQ2LjU5LS42MyAxLjM0LTEuMzkgMi4xMS0yLjE2Ljk3LS45NiAxLjk2LTEuOTUgMi42OC0yLjc1LjY0LS43LjcyLS42NyAxLjM2LjEuNi43MiAxIDEuMyAxLjQgMS44NWEyNSAyNSAwIDAgMCAxLjgxIDIuMzJjLjU4LjY3Ljg3IDEuMDIgMS44Mi42NGwuMzYtLjE1cS4zNC0uOS43My0xLjc4LS4xMS0uMzQtLjI0LS44MWEzMCAzMCAwIDAgMC0uNzYtMi40N2MtLjE4LS41Mi0uMzgtMS4wNy0uNjItMS44OGwtLjE5LS42MWMtLjI2LS45OS0uMjMtMS4wOS42NS0xLjM5Ljg2LS4zIDIuMDMtLjY2IDMuMTktMS4wMyAxLjA3LS4zNCAyLjEzLS42NyAyLjkyLS45NC41MS0uMTcuOC4wMi45OC40YTMwIDMwIDAgMSAxIDM4LjEyIDQ1LjkyTTEyLjAyIDM0LjkzbC0uNC4yMi0uNTMuM3EtLjguNDctLjEzIDEuMTQuNTEuNTIgMS4wOC45NmEzMCAzMCAwIDAgMS0uMDItMi42MiIvPjxwYXRoIGZpbGw9IiMyOTYyRkYiIGQ9Ik00MiA2NGM1LjUzIDAgMTAuOTUtMS42MSAxNS41NS00LjYzczguMi03LjMyIDEwLjMyLTEyLjM0YTI3IDI3IDAgMCAwIDEuNi0xNS45IDI3LjQgMjcuNCAwIDAgMC03LjY3LTE0LjA3IDI4IDI4IDAgMCAwLTE0LjM0LTcuNTMgMjguNSAyOC41IDAgMCAwLTE2LjE4IDEuNTYgMjggMjggMCAwIDAtMTIuNTYgMTAuMTMgMjcuMTUgMjcuMTUgMCAwIDAgMy40OCAzNC43MkEyOC4zIDI4LjMgMCAwIDAgNDIgNjQiLz48cGF0aCBmaWxsPSIjRkY1MjAwIiBkPSJNMjcuODMgMzAuOTFjLS41NC4wMy0xLjQ3IDAtMi4zOC4xNC0xLjc2LjI4LTMuNTQuNTgtNS4yNyAxLjAzLTEuMjUuMzItMi40Ni44NS0zLjY0IDEuMzctMS40Mi42MS0yLjggMS4zMS00LjE5IDJxLS43NC4zOC0uMTIuOTQuNi41NCAxLjI4Ljk4YzEuODEgMS4xIDMuNjcgMi4xNCA1LjQ3IDMuMyAyLjA3IDEuMzIgNC4zOCAyLjA1IDYuNyAyLjczIDIuNjEuNzggNS4zNS41OCA4LjAzLjI2IDMuMDMtLjM3IDYuMDYtLjg4IDguOTEtMi4wMSAxLjYyLS42NSAzLjE1LTEuNTEgNC42OS0yLjM0LjY2LS4zNC42NS0uNTguMDYtMS4wMS0xLjE5LS44OC0yLjM3LTEuNzgtMy42LTIuNTgtMi44LTEuOC01Ljc0LTMuMy05LjA0LTQuMDctMi4xNS0uNS00LjMtLjg1LTYuOS0uNzN6TTMyLjczIDE2djUuOThsLS4wMSAyLjIyYzAgLjU4LjI0Ljk0Ljg1IDFxLjQ0LjAzLjg3LjA4YzIuMDkuMjMgMi4zNS4wOCAyLjk5LTEuOTVxLjg0LTIuNzcgMS42Ni01LjUzYy4yMy0uNzcuMzctLjgxIDEuMTMtLjU0cTIuMjEuOCA0LjQ0IDEuNTdjLjU3LjIuNzcuNDEuNTIgMS4wNi0uNzMgMi0xLjM5IDQuMDMtMi4wNyA2LjA0bC0uMTYuNTljLS4zIDEuMzctLjI3IDEuNDMgMS4wMyAxLjlxLjI5LjEuNTYuMjNjLjM4LjIuNjguMTggMS4wMy0uMTMgMS43NS0xLjUgMy41NS0yLjk1IDUuMjgtNC40OC41NS0uNSAxLjE3LS40MiAxLjYxLS4wM3ExLjQgMS4yNSAyLjcyIDIuNi43Ljc2LS4wMyAxLjU3YTE5MiAxOTIgMCAwIDEtMy41MiAzLjgxYy0uMzQuMzctLjMzLjY3IDAgLjk4cTEuNjIgMS41OCAzLjMgMy4xNSAxLjIyIDEuMTUgMi40NiAyLjI4Yy43OC43NC44MyAxLjE0LjA0IDEuODktMS4wOCAxLjAxLTIuMTQgMi4wOS0zLjM4IDIuODdhNjcgNjcgMCAwIDEtNy40OCA0LjI3IDI2IDI2IDAgMCAxLTkuMiAyLjM5Yy0zLjQuMjMtNi44LjI4LTEwLjE3LS4xMWE0OCA0OCAwIDAgMS03LjI1LTEuNDEgMzAgMzAgMCAwIDEtNi4yNi0yLjYgMzkgMzkgMCAwIDEtNC4zNC0yLjgxIDU0IDU0IDAgMCAxLTQuNjMtMy42NWMtLjk3LS44OC0xLjc1LTEuOTgtMi41My0zLjAzLS40NC0uNTgtLjA0LTEuMDYuNDQtMS40My44NS0uNjYgMS43My0xLjI5IDIuNTYtMS45Ny41NC0uNDQgMS4wMi0uOTQgMS41My0xLjQzLjM3LS4zNi4zMS0uNjktLjA2LTEuMDNsLTIuOTMtMi42N2MtLjQ0LS40LS41NS0uNzQtLjA1LTEuMjEgMS4yNC0xLjE3IDIuNDQtMi40IDMuNjUtMy41OS42LS41OC42OC0uNTUgMS4yNy4wOXExLjc5IDEuOTYgMy42NCAzLjg2Yy42NS42NyAxLjQuODcgMi4zOC41MiAxLjc4LS42NCAxLjg1LS42IDEuMzEtMi4zOS0uNDgtMS42LTEuMDYtMy4xOC0xLjYtNC43OHEtLjEtLjI1LS4xOC0uNWMtLjI0LS44Mi0uMjItLjkuNi0xLjE1cTIuMzItLjY5IDQuNjQtMS4zNmMuNjEtLjE4Ljg3LjEyIDEuMDUuNjNxLjggMi42IDEuNjQgNS4yLjIyLjc0LjYzIDEuNGMuNTMuOCAxLjM5Ljc4IDIuMjQuNzUgMS40OC0uMDUgMS42OC0uMiAxLjY4LTEuNjZxMC0zLjE3LS4xLTYuMzNjLS4wMy0xLjA0LS4wNi0xLjEgMS0xLjEzIDEuNzMtLjA1IDMuNDYtLjAxIDUuMjEtLjAxIi8+PHBhdGggZmlsbD0iI0ZERDYwMCIgZD0ibTM0LjI1IDMzLjQzLjEzLS4yNmMtLjQtLjM5LS43NC0uOTItMS4yMi0xLjE1YTggOCAwIDAgMC01LjUzLS42NGMtMS41OC40LTIuNjEgMS41NC0zLjM0IDIuODUtLjggMS40NC0xLjA4IDMuMDUtLjA4IDQuNTMuNDQuNjQgMS4xMSAxLjE1IDEuNzQgMS42M2E1LjY3IDUuNjcgMCAwIDAgOC41OS0yLjE0Yy4zMi0uNy4yMS0uOTUtLjU0LTEuMTlxLTEuMi0uMzYtMi4zOS0uNzNjLS41Mi0uMTctMS4wNi0uMzQtMS4wNi0xLjA0IDAtLjY1LjQzLS45MiAxLTEuMDd6bS02LjMxLTMuNGEyNCAyNCAwIDAgMSA2Ljk0LjczYzMuMy43NyA2LjI1IDIuMjQgOS4wNiA0LjA1IDEuMjUuOCAyLjQzIDEuNyAzLjYyIDIuNTYuNTkuNDMuNi42Ny0uMDYgMS4wMi0xLjU1LjgyLTMuMDggMS42OC00LjcgMi4zMmEzNiAzNiAwIDAgMS04Ljk1IDJjLTIuNy4zMy01LjQ0LjUyLTguMDctLjI1LTIuMzItLjY4LTQuNjQtMS40LTYuNzMtMi43My0xLjgtMS4xNC0zLjY2LTIuMTctNS40OC0zLjI4YTEwIDEwIDAgMCAxLTEuMjktLjk3Yy0uNDEtLjM2LS4zNy0uNy4xMy0uOTRxMi4wOS0xLjA2IDQuMi0yYTI2IDI2IDAgMCAxIDMuNjYtMS4zNmMxLjc0LS40NCAzLjUxLS43NCA1LjI5LTEuMDIuOS0uMTUgMS44NC0uMTEgMi4zOC0uMTQiLz48cGF0aCBmaWxsPSIjMUQxRDFCIiBkPSJNMzMuNTUgMzQuMnEtMS4zMy4zOS0yLjY2Ljc1Yy0uNTcuMTUtMSAuNC0xIDEuMDQgMCAuNjYuNTQuODQgMS4wNSAxcTEuMTkuMzQgMi4zNi43Yy43NC4yMy44NS40Ni41MyAxLjEzYTUuNjUgNS42NSAwIDAgMS02LjIxIDMuMDZjLS44Mi0uMTYtMS42LS41LTIuMjYtMWE3IDcgMCAwIDEtMS43Mi0xLjU2Yy0xLTEuNDMtLjcyLTIuOTcuMDctNC4zNWE1LjMgNS4zIDAgMCAxIDMuMy0yLjc1IDggOCAwIDAgMSA1LjQ1LjYyYy40OC4yMi44Mi43MyAxLjIgMS4xMXoiLz48L3N2Zz4nCn0sNjE1NzQ2KGUpe2UuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyOCAyOCIgd2lkdGg9IjI4IiBoZWlnaHQ9IjI4Ij48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTQuMzEgMTQuNWExLjA3IDEuMDcgMCAwIDEgMC0xLjVMMTMgNC4zYy40Mi0uNDEgMS4xLS40MSAxLjUyIDBsLjk5IDFjLjQyLjQyLjQxIDEuMTEtLjAyIDEuNTNsLTUuMzggNS4xMmgxMi44M2MuNiAwIDEuMDcuNDggMS4wNyAxLjA3djEuNDNjMCAuNi0uNDggMS4wNy0xLjA3IDEuMDdIMTAuMWw1LjM4IDUuMTNjLjQ0LjQxLjQ1IDEuMS4wMiAxLjUzbC0xIC45OWMtLjQxLjQyLTEuMS40Mi0xLjUgMEw0LjMgMTQuNVptNy45NyA5LjM4LTguNjctOC42N2MtLjgxLS44LS44Mi0yLjEyIDAtMi45M2w4LjY4LTguNjdjLjgtLjgxIDIuMTItLjgyIDIuOTIgMGwxIC45OWMuODIuODIuOCAyLjE2LS4wNCAyLjk2bC0zLjU3IDMuNGgxMC4zM2MxLjE0IDAgMi4wNy45MyAyLjA3IDIuMDd2MS40M2MwIDEuMTUtLjkzIDIuMDctMi4wNyAyLjA3SDEyLjZsMy41NyAzLjRjLjg0LjguODYgMi4xNC4wMyAyLjk3bC0uOTkuOTljLS44LjgtMi4xMi44LTIuOTMgMFoiLz48L3N2Zz4nfSw5Nzc5MjEoZSl7ZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDI4IDI4IiB3aWR0aD0iMjgiIGhlaWdodD0iMjgiPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZD0iTTQuODcgNC41MmEuNS41IDAgMCAxIC42MS4zNUw2LjkxIDEwaDUuNDdsMS4wMy00LjY3Yy4xNC0uNjMgMS4wNC0uNjMgMS4xOCAwTDE1LjYyIDEwaDUuNDdsMS40My01LjEzYS41LjUgMCAwIDEgLjk2LjI2TDIyLjEzIDEwSDI1YS41LjUgMCAwIDEgMCAxaC0zLjE1bC0uODMgM0gyNWEuNS41IDAgMCAxIDAgMWgtNC4yNmwtMi4xNSA3Ljc1Yy0uMTcuNi0xLjAzLjU4LTEuMTYtLjAzTDE1LjcgMTVoLTMuNDJsLTEuNzIgNy43MmMtLjEzLjYtMSAuNjMtMS4xNi4wM0w3LjI2IDE1SDNhLjUuNSAwIDEgMSAwLTFoMy45OGwtLjgzLTNIM2EuNS41IDAgMSAxIDAtMWgyLjg3TDQuNTIgNS4xM2EuNS41IDAgMCAxIC4zNS0uNjFaTTcuMTkgMTFsLjgzIDNoMy40N2wuNjYtM0g3LjJabTUuOTkgMC0uNjcgM2gyLjk4bC0uNjctM2gtMS42NFptMS40Mi0xTDE0IDcuM2wtLjYgMi43aDEuMlptMS4yNSAxIC42NiAzaDMuNDdsLjgzLTNoLTQuOTZabTMuODUgNGgtMi45N2wxLjMyIDUuOTRMMTkuNyAxNVptLTguNDMgMEg4LjNsMS42NSA1Ljk0TDExLjI3IDE1WiIvPjwvc3ZnPid9LDQzNzE2MShlKXtlLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMjggMjgiIHdpZHRoPSIyOCIgaGVpZ2h0PSIyOCIgZmlsbD0ibm9uZSI+PHBhdGggc3Ryb2tlPSJjdXJyZW50Q29sb3IiIGQ9Ik03LjUgMjR2LTUuNW0wIDBzMi43LTEuMSA0LjUtMWMyLjEuMTIgMi45IDEuODggNSAyIDEuOC4xIDQuNS0xIDQuNS0xdi02bS0xNCA2di02bTAgMHYtNnMyLjctMS4xIDQuNS0xYzIuMS4xMiAyLjkgMS44OCA1IDIgMS44LjEgNC41LTEgNC41LTF2Nm0tMTQgMHMyLjctMS4xIDQuNS0xYzIuMS4xMiAyLjkgMS44OCA1IDIgMS44LjEgNC41LTEgNC41LTEiLz48L3N2Zz4nfSw2MzY5NTMoZSl7ZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDI4IDI4IiB3aWR0aD0iMjgiIGhlaWdodD0iMjgiPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZD0iTTE0LjA4IDMuNzNjLjEuMTYuMS4zNyAwIC41NGE5LjQgOS40IDAgMCAwIDMuMzUgMTMuMjYgOS45IDkuOSAwIDAgMCA2LjQ5IDEuMTguNS41IDAgMCAxIC41Ljc2IDEwLjY3IDEwLjY3IDAgMCAxLTMuODMgMy42NCAxMC45MSAxMC45MSAwIDAgMS0xNC4yOC0zLjNBMTAuNDQgMTAuNDQgMCAwIDEgOC42OSA1LjU2YTEwLjg2IDEwLjg2IDAgMCAxIDQuOS0yLjA2LjUuNSAwIDAgMSAuNDkuMjJabTguMyAxNS42MXYuNWMtMS45MSAwLTMuOC0uNS01LjQ1LTEuNDRhMTAuNjQgMTAuNjQgMCAwIDEtMy45NS0zLjk3IDEwLjQgMTAuNCAwIDAgMS0uMy05LjcyIDkuNiA5LjYgMCAwIDAtNi4zNyA1LjM5IDkuMzkgOS4zOSAwIDAgMCAuODMgOS4xNCA5LjcgOS43IDAgMCAwIDMuNiAzLjE3IDkuOTIgOS45MiAwIDAgMCAxMi4yMS0yLjU5Yy0uMTkuMDItLjM4LjAyLS41Ny4wMnYtLjVaIi8+PC9zdmc+J30sOTI2MTAwKGUpe2UuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyOCAyOCIgd2lkdGg9IjI4IiBoZWlnaHQ9IjI4Ij48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTYgMTEuNjlDNiA3LjQ2IDkuNTYgNCAxNCA0YzQuNDQgMCA4IDMuNDYgOCA3LjY5IDAgMi42My0xLjIgNC45My0zLjI1IDYuMzFIMTQuNXYtNUgxOHYtMWgtOHYxaDMuNXY1SDkuMTRBOC4wNiA4LjA2IDAgMCAxIDYgMTEuNjlabTIgNi42N2E5LjEgOS4xIDAgMCAxLTMtNi42N0M1IDYuODcgOS4wNSAzIDE0IDNzOSAzLjg3IDkgOC42OWE4LjUxIDguNTEgMCAwIDEtMyA2LjYyVjIyaC0ydjNoLTh2LTNIOHYtMy42NFpNMTEgMjJ2Mmg2di0yaC02Wm0tMi0xdi0yaDEwdjJIOVoiLz48L3N2Zz4nfSw3NTY1NjEoZSl7ZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDI4IDI4IiB3aWR0aD0iMjgiIGhlaWdodD0iMjgiPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZD0iTTYgMTQuNUM2IDkuNzggOS43OCA2IDE0LjUgNmM0LjcyIDAgOC41IDMuNzggOC41IDguNSAwIDQuNzItMy43OCA4LjUtOC41IDguNUE4LjQ2IDguNDYgMCAwIDEgNiAxNC41Wk0xNC41IDVBOS40NiA5LjQ2IDAgMCAwIDUgMTQuNWMwIDUuMjggNC4yMiA5LjUgOS41IDkuNXM5LjUtNC4yMiA5LjUtOS41UzE5Ljc4IDUgMTQuNSA1Wk0xNCAxNlY5aDF2Nmg0djFoLTVaIi8+PC9zdmc+J30sNzYyNTk2KGUpewplLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMjggMjgiIHdpZHRoPSIyOCIgaGVpZ2h0PSIyOCI+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBkPSJNNiAxNC41QzYgOS43OCA5Ljc4IDYgMTQuNSA2YzQuNzIgMCA4LjUgMy43OCA4LjUgOC41IDAgNC43Mi0zLjc4IDguNS04LjUgOC41QTguNDYgOC40NiAwIDAgMSA2IDE0LjVaTTE0LjUgNUE5LjQ2IDkuNDYgMCAwIDAgNSAxNC41YzAgNS4yOCA0LjIyIDkuNSA5LjUgOS41czkuNS00LjIyIDkuNS05LjVTMTkuNzggNSAxNC41IDVaTTEyIDEyYTEgMSAwIDEgMCAwIDIgMSAxIDAgMCAwIDAtMlptNCAxYTEgMSAwIDEgMSAyIDAgMSAxIDAgMCAxLTIgMFptLTYgNC0uNDMuMjZ2LjAxbC4wMy4wM2EzLjU1IDMuNTUgMCAwIDAgLjMuNCA1LjcgNS43IDAgMCAwIDkuMjIgMCA1LjQyIDUuNDIgMCAwIDAgLjI4LS40bC4wMi0uMDN2LS4wMUwxOSAxN2wtLjQzLS4yNnYuMDJhMi40NSAyLjQ1IDAgMCAxLS4yNC4zMmMtLjE3LjIxLS40My41LS43OC43OWE0LjcxIDQuNzEgMCAwIDEtNi44OC0uOCA0LjMyIDQuMzIgMCAwIDEtLjIzLS4zMWwtLjAxLS4wMkwxMCAxN1oiLz48L3N2Zz4nfSw3ODI4NDQoZSl7ZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDI4IDI4IiB3aWR0aD0iMjgiIGhlaWdodD0iMjgiPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZD0iTTExLjY4IDkuNzRhOTUuNiA5NS42IDAgMCAwLTUuNzYgNy41NmwtLjg0LS41NmMuNTEtLjc2IDMuMDUtNC40IDUuODQtNy42NWEzMy4yNSAzMy4yNSAwIDAgMSA0LjE2LTQuMjJjLjY2LS41MiAxLjMtLjk0IDEuODktMS4xNy41OS0uMjMgMS4yMi0uMyAxLjc2IDAgLjYuMzMuNzUuOTkuNzUgMS42MWE4LjcgOC43IDAgMCAxLS40MiAyLjMgNTYuMzggNTYuMzggMCAwIDEtMi4zMyA1Ljk4bC0uNDIuOTdjLS43OCAxLjc4LTEuNTIgMy40OC0yIDQuODYtLjMuODEtLjQ5IDEuNDgtLjU1IDEuOTZhMS41NyAxLjU3IDAgMCAwIC4wMS41N2MuMDYuMDIuMTcuMDQuNDItLjA4LjI4LS4xMy42Mi0uMzggMS4wMi0uNzUuOC0uNzMgMS43MS0xLjgyIDIuNjYtMi45NGwuMDctLjA4Yy45LTEuMDggMS44NC0yLjIgMi42Ny0yLjk4LjQzLS40Ljg1LS43NCAxLjI2LS45NS40LS4yLjktLjMzIDEuMzUtLjEuNDcuMjQuNjMuNjguNjUgMS4xLjAyLjQxLS4xLjg4LS4yNCAxLjM0LS4xNC40Ny0uMzQgMS0uNTUgMS41M2wtLjAyLjA1LS41OSAxLjU5Yy0uMzcgMS4xMi0uNTcgMi4xMi0uMzkgMi44OC4wOS4zNi4yNi42Ni41NS45LjMuMjQuNzYuNDUgMS40NS41N2wtLjE2Ljk4Yy0uODEtLjEzLTEuNDUtLjQtMS45Mi0uNzhhMi42IDIuNiAwIDAgMS0uOS0xLjQ0Yy0uMjUtMS4wNS4wNS0yLjMuNDMtMy40My4xOC0uNTUuNC0xLjEuNi0xLjYybC4wMi0uMDZjLjItLjU0LjQtMS4wMy41My0xLjQ2LjE0LS40NS4yLS43OC4yLTEtLjAyLS4yLS4wNy0uMjQtLjEtLjI1LS4wNC0uMDItLjE2LS4wNS0uNDUuMS0uMjkuMTQtLjYzLjQtMS4wMy43OC0uOC43NC0xLjcgMS44Mi0yLjYyIDIuOTJsLS4wNS4wNWEzNC43OSAzNC43OSAwIDAgMS0yLjc0IDMuMDRjLS40My4zOS0uODYuNzItMS4yNy45Mi0uNDEuMTktLjkuMjktMS4zNi4wMmExLjA0IDEuMDQgMCAwIDEtLjQ4LS43IDIuNTIgMi41MiAwIDAgMS0uMDEtLjg0Yy4wNy0uNi4zLTEuMzUuNTktMi4xOC41LTEuNCAxLjI2LTMuMTUgMi4wNC00LjkzbC40MS0uOTZjLjkyLTIuMTEgMS44LTQuMiAyLjI5LTUuODcuMjQtLjgzLjM3LTEuNTEuMzgtMi4wMSAwLS41Mi0uMTQtLjY4LS4yMy0uNzQtLjE3LS4xLS40NS0uMTItLjkyLjA2LS40Ni4xOC0xIC41My0xLjYzIDEuMDJhMzIuMzIgMzIuMzIgMCAwIDAtNC4wMiA0LjA5Wm0yLjEgMTIuMjFaIi8+PC9zdmc+J30sMjY2NDg2KGUpe2UuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxOCAxIiB3aWR0aD0iMTgiIGhlaWdodD0iMSI+PHJlY3Qgd2lkdGg9IjE4IiBoZWlnaHQ9IjEiIGZpbGw9ImN1cnJlbnRDb2xvciIgcng9Ii41Ii8+PC9zdmc+J30sNTc5NDQ1KGUpe2UuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxOCAyIiB3aWR0aD0iMTgiIGhlaWdodD0iMiI+PHJlY3Qgd2lkdGg9IjE4IiBoZWlnaHQ9IjIiIGZpbGw9ImN1cnJlbnRDb2xvciIgcng9IjEiLz48L3N2Zz4nfSw1MTgxNjQoZSl7ZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDE4IDMiIHdpZHRoPSIxOCIgaGVpZ2h0PSIzIj48cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMyIgZmlsbD0iY3VycmVudENvbG9yIiByeD0iMS41Ii8+PC9zdmc+J30sMjQ5Nzg3KGUpe2UuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxOCA0IiB3aWR0aD0iMTgiIGhlaWdodD0iNCI+PHJlY3Qgd2lkdGg9IjE4IiBoZWlnaHQ9IjQiIGZpbGw9ImN1cnJlbnRDb2xvciIgcng9IjIiLz48L3N2Zz4nfSwxNTA5OChlKXtlLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMjggMjgiIHdpZHRoPSIyOCIgaGVpZ2h0PSIyOCIgZmlsbD0iY3VycmVudENvbG9yIj48cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMiIgcng9IjEiIHg9IjUiIHk9IjE0Ii8+PHJlY3Qgd2lkdGg9IjE4IiBoZWlnaHQ9IjEiIHJ4PSIuNSIgeD0iNSIgeT0iMjAiLz48cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMyIgcng9IjEuNSIgeD0iNSIgeT0iNyIvPjwvc3ZnPid9LDk2NTMzNChlKXsKZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDI4IDI4IiB3aWR0aD0iMjgiIGhlaWdodD0iMjgiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIj48cGF0aCBzdHJva2UtbGluZWNhcD0icm91bmQiIGQ9Ik0xNS41IDE4LjVoNm0tMyAzdi02Ii8+PHJlY3Qgd2lkdGg9IjYiIGhlaWdodD0iNiIgcng9IjEuNSIgeD0iNi41IiB5PSI2LjUiLz48cmVjdCB3aWR0aD0iNiIgaGVpZ2h0PSI2IiByeD0iMS41IiB4PSIxNS41IiB5PSI2LjUiLz48cmVjdCB3aWR0aD0iNiIgaGVpZ2h0PSI2IiByeD0iMS41IiB4PSI2LjUiIHk9IjE1LjUiLz48L3N2Zz4nfSwxMDE2MzEoZSl7ZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDIwIDEwIiB3aWR0aD0iMjAiIGhlaWdodD0iMTAiPjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjEuNSIgZD0iTTIgMWw4IDggOC04Ii8+PC9zdmc+J30sMzU2NzIxKGUpe2UuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNiA4IiB3aWR0aD0iMTYiIGhlaWdodD0iOCI+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBkPSJNMCAxLjQ3NWw3LjM5NiA2LjA0LjU5Ni40ODUuNTkzLS40OUwxNiAxLjM5IDE0LjgwNyAwIDcuMzkzIDYuMTIyIDguNTggNi4xMiAxLjE4Ni4wOHoiLz48L3N2Zz4nfSw0MDA0MDYoZSl7ZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjI4IiBoZWlnaHQ9IjI4IiBmaWxsPSJub25lIj48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGZpbGxSdWxlPSJldmVub2RkIiBjbGlwUnVsZT0iZXZlbm9kZCIgZD0iTTcuNSAxM2ExLjUgMS41IDAgMSAwIDAgMyAxLjUgMS41IDAgMCAwIDAtM3pNNSAxNC41YTIuNSAyLjUgMCAxIDEgNSAwIDIuNSAyLjUgMCAwIDEtNSAwem05LjUtMS41YTEuNSAxLjUgMCAxIDAgMCAzIDEuNSAxLjUgMCAwIDAgMC0zek0xMiAxNC41YTIuNSAyLjUgMCAxIDEgNSAwIDIuNSAyLjUgMCAwIDEtNSAwem05LjUtMS41YTEuNSAxLjUgMCAxIDAgMCAzIDEuNSAxLjUgMCAwIDAgMC0zek0xOSAxNC41YTIuNSAyLjUgMCAxIDEgNSAwIDIuNSAyLjUgMCAwIDEtNSAweiIvPjwvc3ZnPid9LDg2NDMwNShlKXtlLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMjggMjgiIHdpZHRoPSIyOCIgaGVpZ2h0PSIyOCI+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xMi42NSA1LjFhOS4wNyA5LjA3IDAgMCAxIDIuNyAwIDEyLjQ0IDEyLjQ0IDAgMCAxIDIuMTMgNC42MWMtMS4wNi4yLTIuMjQuMjktMy40OC4yOWExOC42IDE4LjYgMCAwIDEtMy40OC0uMyAxMi40NCAxMi40NCAwIDAgMSAyLjEzLTQuNlptLS41My0uOTJhMTAgMTAgMCAwIDAgMCAxOS42NSAxMC4wNSAxMC4wNSAwIDAgMCAzLjc2IDAgMTAgMTAgMCAwIDAgMC0xOS42NSAxMC4wNSAxMC4wNSAwIDAgMC0zLjc2IDBabTQuNjggMS4yNmExNC40IDE0LjQgMCAwIDEgMS42NiA0LjA1IDcuMDYgNy4wNiAwIDAgMCAyLjUtMS4yIDkuMDEgOS4wMSAwIDAgMC00LjE2LTIuODVabTQuNzUgMy42NmE4LjEyIDguMTIgMCAwIDEtMi44OCAxLjM3IDE4LjkzIDE4LjkzIDAgMCAxIDAgNy4wNmMxLjEuMyAyLjA4Ljc0IDIuODggMS4zN2E4Ljk2IDguOTYgMCAwIDAgMC05LjhabS0uNTkgMTAuNmE3LjA1IDcuMDUgMCAwIDAtMi41LTEuMTkgMTQuMSAxNC4xIDAgMCAxLTEuNjUgNC4wNCA5LjAxIDkuMDEgMCAwIDAgNC4xNS0yLjg1Wm0tNS42MSAzLjJhMTIuMjcgMTIuMjcgMCAwIDAgMi4xNC00LjYxYy0xLjA3LS4yLTIuMjUtLjI5LTMuNDktLjI5LTEuMjUgMC0yLjQyLjA5LTMuNDkuM2ExMi4yNyAxMi4yNyAwIDAgMCAyLjE0IDQuNiA5LjA2IDkuMDYgMCAwIDAgMi43IDBabS00LjE2LS4zNWExNC4xIDE0LjEgMCAwIDEtMS42NS00LjAzYy0uOTYuMjctMS44LjY2LTIuNSAxLjE5YTkuMDEgOS4wMSAwIDAgMCA0LjE1IDIuODRaTTYuNDUgMTguOWE4LjU3IDguNTcgMCAwIDEgMi44Ny0xLjM1IDE5LjE5IDE5LjE5IDAgMCAxIC4wMS03LjFBOC41OCA4LjU4IDAgMCAxIDYuNDUgOS4xYTguOTYgOC45NiAwIDAgMCAwIDkuOFptLjYtMTAuNmE5LjAxIDkuMDEgMCAwIDEgNC4xNS0yLjg2IDE0LjM4IDE0LjM4IDAgMCAwLTEuNjUgNC4wNCA3LjU0IDcuNTQgMCAwIDEtMi41LTEuMTlaTTEwIDE0YzAtMS4xNS4xLTIuMjcuMy0zLjMyIDEuMTcuMjMgMi40Mi4zMiAzLjcuMzIgMS4yNyAwIDIuNTMtLjA5IDMuNy0uM2ExNy45MyAxNy45MyAwIDAgMSAwIDYuNjFBMjAgMjAgMCAwIDAgMTQgMTdjLTEuMjkgMC0yLjU0LjA5LTMuNy4zMkExOC4yIDE4LjIgMCAwIDEgMTAgMTRaIi8+PC9zdmc+J30sMTMzMzcyKGUpe2UuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyOCAyOCIgd2lkdGg9IjI4IiBoZWlnaHQ9IjI4Ij48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGQ9Ik0xNS4wOCA1Ljc1YTUuMDcgNS4wNyAwIDAgMSA3LjE3IDcuMTdsLTMuMjMgMy4yMy0uNy0uNyAzLjIyLTMuMjRhNC4wNyA0LjA3IDAgMSAwLTUuNzUtNS43NWwtMy4yMyAzLjIzLS43LS43MSAzLjIyLTMuMjNabS05LjMzIDkuMzNhNS4wNyA1LjA3IDAgMSAwIDcuMTcgNy4xN2wzLjIzLTMuMjMtLjctLjctMy4yNCAzLjIyYTQuMDcgNC4wNyAwIDEgMS01Ljc1LTUuNzVsMy4yMy0zLjIzLS43MS0uNy0zLjIzIDMuMjJabTEwLjc3LTQuMy01Ljc0IDUuNzQuNy43IDUuNzUtNS43NC0uNzEtLjdaIi8+PC9zdmc+J30sMjMwOTM0KGUpewplLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMjggMjgiIHdpZHRoPSIyOCIgaGVpZ2h0PSIyOCI+PGcgZmlsbD0iY3VycmVudENvbG9yIj48cGF0aCBmaWxsLXJ1bGU9Im5vbnplcm8iIGQ9Ik0xNS4wMzkgNS45NjlsLS4wMTktLjAxOS0yLjgyOCAyLjgyOC43MDcuNzA3IDIuNDc0LTIuNDc0YzEuMzY3LTEuMzY3IDMuNTgyLTEuMzY3IDQuOTQ5IDBzMS4zNjcgMy41ODIgMCA0Ljk0OWwtMi40NzQgMi40NzQuNzA3LjcwNyAyLjgyOC0yLjgyOC0uMDE5LS4wMTljMS40MTUtMS43NjcgMS4zMDQtNC4zNTItLjMzNC01Ljk5LTEuNjM4LTEuNjM4LTQuMjI0LTEuNzQ5LTUuOTktLjMzNHpNNS45NyAxNS4wMzhsLS4wMTktLjAxOSAyLjgyOC0yLjgyOC43MDcuNzA3LTIuNDc1IDIuNDc1Yy0xLjM2NyAxLjM2Ny0xLjM2NyAzLjU4MiAwIDQuOTQ5czMuNTgyIDEuMzY3IDQuOTQ5IDBsMi40NzQtMi40NzQuNzA3LjcwNy0yLjgyOCAyLjgyOC0uMDE5LS4wMTljLTEuNzY3IDEuNDE1LTQuMzUyIDEuMzA0LTUuOTktLjMzNC0xLjYzOC0xLjYzOC0xLjc0OS00LjIyNC0uMzM0LTUuOTl6Ii8+PHBhdGggZD0iTTEwLjQ4NSAxNi4xNDFsNS42NTYtNS42NTYuNzA3LjcwNy01LjY1NiA1LjY1NnoiLz48L2c+PC9zdmc+J30sODA2NjkzKGUpe2UuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxOCIgaGVpZ2h0PSIxOCI+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBkPSJNOS43MDcgOWw0LjY0Ny00LjY0Ni0uNzA3LS43MDhMOSA4LjI5MyA0LjM1NCAzLjY0NmwtLjcwOC43MDhMOC4yOTMgOWwtNC42NDcgNC42NDYuNzA4LjcwOEw5IDkuNzA3bDQuNjQ2IDQuNjQ3LjcwOC0uNzA3TDkuNzA3IDl6Ii8+PC9zdmc+J319XSk7"}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/en.99124.7129e057c7444df25994.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.050Z","timestamp":1785148034050,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/en.99124.7129e057c7444df25994.js HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a61b1a8-1544\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Thu, 23 Jul 2026 06:16:08 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/23/2026 10:17:28\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 1de56a8a66d36b833e3f66f0682ead07\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":5444,"size_decoded":2672,"mime_type":"application/javascript; charset=utf-8","magic":"ASCII text, with very long lines (3021)","md5":"d49ebbbc471ca07bc848bb880bb26d84","sha1":"20f220b0289d31bbccf6998d62734c26918d3d03","sha256":"fc21b6b03e6cd84b3deb28a311ba60e13595285aed15bc3a42f677c2d120e278","sha512":"181c814b0478736fdd60bf6d9ac6b02c54c72831c9e577659b4e9594ff60606ffef4a36c8cc5c951778a81751afb88afb907d9ec91a872f926ffa2219ec7ae79","ssdeep":"96:vl1zur72uG7PtLkKke9KRIKWOgIQHWokY/CIXni:tZur7fGjxgRIKQBrXi","tlshash":"7bb16513e140e1e61f72eb21b349edc4b8f4b19162f2e4c673596f65c11bc646838b75","first_seen":"2026-07-23T14:37:54.495318Z","last_seen":"2026-07-27T12:52:15.518881Z","times_seen":107,"resource_available":true,"data":"KHNlbGYud2VicGFja0NodW5rdHJhZGluZ3ZpZXc9c2VsZi53ZWJwYWNrQ2h1bmt0cmFkaW5ndmlld3x8W10pLnB1c2goW1sxMjA4MCw5OTEyNF0sezk5NDAxNihlKXtlLmV4cG9ydHM9WyJDb21tdW5pdHkgcG9zdHMgZm9yIHtzeW1ib2x9Il19LDcxMzkwNShlKXtlLmV4cG9ydHM9WyJDb21tdW5pdHkiXX0sMjQ1MTQ3KGUpe2UuZXhwb3J0cz1bIkNvbnRyYWN0cyJdfSw2ODE5MjEoZSl7ZS5leHBvcnRzPVsiQ2hhcnQiXX0sMzM0NDE1KGUpe2UuZXhwb3J0cz1bIkFuYWx5c2lzIl19LDYxMjU1KGUpe2UuZXhwb3J0cz1bIkFzc2V0cyJdfSw2MDIxMTMoZSl7ZS5leHBvcnRzPVsiQm9uZHMiXX0sNzg3NDQyKGUpe2UuZXhwb3J0cz1bIkRvY3VtZW50cyJdfSw1NTgwNjcoZSl7ZS5leHBvcnRzPVsiRGVyaXZhdGl2ZXMiXX0sOTI3ODkoZSl7ZS5leHBvcnRzPVsiRVRGcyJdfSwzODg3ODYoZSl7ZS5leHBvcnRzPVsiRWNvbm9teSBpbmRpY2F0b3JzIl19LDUzNDAyNyhlKXtlLmV4cG9ydHM9WyJGb3JlY2FzdCJdfSw2Njg2ODAoZSl7ZS5leHBvcnRzPVsiRm9yd2FyZCBjdXJ2ZSJdfSwzODAxNTgoZSl7ZS5leHBvcnRzPVsiRmluYW5jaWFscyJdfSw5OTU2MDIoZSl7ZS5leHBvcnRzPVsiRnVuZGFtZW50YWxzIl19LDk1NDExMShlKXtlLmV4cG9ydHM9WyJPcHRpb25zIl19LDg0MzUyMChlKXtlLmV4cG9ydHM9WyJOZXdzIl19LDM3ODc1MChlKXtlLmV4cG9ydHM9WyJTZWFzb25hbHMiXX0sOTIxNjQyKGUpe2UuZXhwb3J0cz1bIlByb2ZpbGUiXX0sMTIxMjcwKGUpe2UuZXhwb3J0cz1bIlRlY2huaWNhbHMiXX0sNjE2MTgwKGUpe2UuZXhwb3J0cz1bIllpZWxkIGN1cnZlIl19LDY2ODQ0OShlKXtlLmV4cG9ydHM9WyJhbmltYWxzICYgbmF0dXJlIl19LDU3NDcxNShlKXtlLmV4cG9ydHM9WyJhY3Rpdml0eSJdfSwxNDc1MDAoZSl7ZS5leHBvcnRzPVsiZm9vZCAmIGRyaW5rIl19LDE3NDE3OChlKXtlLmV4cG9ydHM9WyJmbGFncyJdfSw5NDMzOTMoZSl7ZS5leHBvcnRzPVsib2JqZWN0cyJdfSwzMDYwNzAoZSl7ZS5leHBvcnRzPVsic21pbGVzICYgcGVvcGxlIl19LDI3NjYwOShlKXtlLmV4cG9ydHM9WyJzeW1ib2xzIl19LDQ2NTQ1NihlKXtlLmV4cG9ydHM9WyJyZWNlbnRseSB1c2VkIl19LDEyMzEzOChlKXtlLmV4cG9ydHM9WyJ0cmF2ZWwgJiBwbGFjZXMiXX0sNTI3MShlKXtlLmV4cG9ydHM9WyJFVEZzIGZvciB7c3ltYm9sfSJdfSw3NjM5MzQoZSl7ZS5leHBvcnRzPVsiRG93bmxvYWQgY2hhcnQgZGF0YSJdfSw5MTA0NzYoZSl7ZS5leHBvcnRzPVsiRG90Il19LDU3MjIzOShlKXtlLmV4cG9ydHM9WyJBZGQgY3VzdG9tIGludGVydmFsIl19LDQ0MDI1MShlKXtlLmV4cG9ydHM9WyJSZW1vdmUiXX0sNDI3NDQyKGUpe2UuZXhwb3J0cz1bIkRlZmF1bHQgdGVtcGxhdGVzIl19LDMyNTkxMChlKXtlLmV4cG9ydHM9WyJNeSB0ZW1wbGF0ZXMiXX0sNTE4MjQ5KGUpe2UuZXhwb3J0cz1bIlJlY2VudGx5IHVzZWQiXX0sMzkzMjczKGUpe2UuZXhwb3J0cz1bIlJlbW92ZSJdfSwyMDI4OTEoZSl7ZS5leHBvcnRzPVsiRGF5cyJdfSwxMjY5MTcoZSl7ZS5leHBvcnRzPVsiSG91cnMiXX0sMzQ0NzQ3KGUpe2UuZXhwb3J0cz1bIk1vbnRocyJdfSwyMzA5MDkoZSl7ZS5leHBvcnRzPVsiTWludXRlcyJdfSw3NTI3MDAoZSl7ZS5leHBvcnRzPVsiU2Vjb25kcyJdfSwyODgwMzQoZSl7ZS5leHBvcnRzPVsiUmFuZ2VzIl19LDQzMzk5NChlKXtlLmV4cG9ydHM9WyJXZWVrcyJdfSw4NzAzMDEoZSl7ZS5leHBvcnRzPVsiVGlja3MiXX0sNjI5Mzg0KGUpe2UuZXhwb3J0cz1bIkZhdm9yaXRlIEluZGljYXRvcnMiXX0sNDM0MDc2KGUpe2UuZXhwb3J0cz1bIllvdSBoYXZlIG5vIEZhdm9yaXRlcyBJbmRpY2F0b3JzIHlldCJdfSw1OTA4ODQoZSl7ZS5leHBvcnRzPVsiQ29weSBsaW5rIl19LDkzODQ5NyhlKXtlLmV4cG9ydHM9WyJDcmVhdGUgbmV3IGxheW91dCJdfSw0Nzk3MShlKXtlLmV4cG9ydHM9WyJBdXRvc2F2ZSJdfSw2MTM1MTYoZSl7ZS5leHBvcnRzPVsiT3BlbiBsYXlvdXQiXX0sMjI0ODkoZSl7ZS5leHBvcnRzPVsiU2hhcmUgbGF5b3V0Il19LDc0NTY3NihlKXtlLmV4cG9ydHM9WyJTaGFyaW5nIl19LDYyMzI0NChlKXtlLmV4cG9ydHM9WyJSZWNlbnRseSB1c2VkIl19LDU2NTQ1MShlKXtlLmV4cG9ydHM9WyJSZW5hbWUiXX0sMTAxNDM1KGUpe2UuZXhwb3J0cz1bIk5ld3MgZm9yIHtzeW1ib2x9Il19LDEyNDc2NihlKXtlLmV4cG9ydHM9WyJDb3B5IGltYWdlIl19LDQyMjg3MChlKXtlLmV4cG9ydHM9WyJDb3B5IGxpbmsiXX0sNjY3OTgxKGUpe2UuZXhwb3J0cz1bIkNoYXJ0IHNuYXBzaG90Il19LDMzNjk5MyhlKXtlLmV4cG9ydHM9WyJEb3dubG9hZCBpbWFnZSJdfSw1ODUxMjgoZSl7ZS5leHBvcnRzPVsiU2hhcmUgdmlhIFN5bXBob255Il19LDU4MTg1MyhlKXtlLmV4cG9ydHM9WyJUd2VldCBpbWFnZSJdfSw0NzM3ODIoZSl7ZS5leHBvcnRzPVsiU2F2ZSJdfSw0NzUwMjgoZSl7ZS5leHBvcnRzPVsiU3dpdGNoIGRhdGEgdHlwZSJdfSw2MDQwMShlKXtlLmV4cG9ydHM9WyJTeW1ib2wgc2VhcmNoIl19LDY4NTU3NShlKXtlLmV4cG9ydHM9WyJQcm9maWxlIGZvciB7c3ltYm9sfSJdfSw0ODYzNjEoZSl7ZS5leHBvcnRzPVsiQ3JlYXRlIGFsZXJ0Il19LDg3MzgyMChlKXtlLmV4cG9ydHM9WyJDb21wYXJlIHN5bWJvbHMiXX0sMTMzOTcoZSl7ZS5leHBvcnRzPVsiRmF2b3JpdGUgaW5kaWNhdG9ycyJdfSwyNDQwODAoZSl7ZS5leHBvcnRzPVsiU2F2ZSBpbmRpY2F0b3IgdGVtcGxhdGUiXX0sOTA5ODQ3KGUpe2UuZXhwb3J0cz1bIlF1aWNrIHNlYXJjaCJdfSw0NTMyNjMoZSl7ZS5leHBvcnRzPVsicmVkbyB7aGludH0iXX0sNzMxNjQ5KGUpe2UuZXhwb3J0cz1bInVuZG8ge2hpbnR9Il19LDEyOTIxNChlKXtlLmV4cG9ydHM9WyJDb3B5Il19LDYwODk5MihlKXtlLmV4cG9ydHM9WyJDb3B5IGxpbmsiXX0sNjk0NjM3KGUpe2UuZXhwb3J0cz1bIkNoYXJ0IGludGVydmFsIl19LDczNzIxNShlKXtlLmV4cG9ydHM9WyJDcm9zc2hhaXIiXX0sMTI0NzgoZSl7CmUuZXhwb3J0cz1bIkNyb3NzaGFpciBpcyBzeW5jZWQgYWNyb3NzIGFsbCBjaGFydHMgd2l0aGluIHRoZSBsYXlvdXQiXX0sOTk1MjkoZSl7ZS5leHBvcnRzPVsiQWRkIHRvIGZhdm9yaXRlcyJdfSwxNjE3MzUoZSl7ZS5leHBvcnRzPVsiQWxlcnQiXX0sMzkzOShlKXtlLmV4cG9ydHM9WyJBbGwgY2hhbmdlcyBzYXZlZCJdfSw1NTYzOTkoZSl7ZS5leHBvcnRzPVsiQXV0b3NhdmUiXX0sODkzNTc2KGUpe2UuZXhwb3J0cz1bIkJvbmRzIGZvciB7c3ltYm9sfSJdfSw4MzM5MzQoZSl7ZS5leHBvcnRzPVsiQmFyJ3Mgc3R5bGUiXX0sNzUxMjgzKGUpe2UuZXhwb3J0cz1bIkRvY3VtZW50cyBmb3Ige3N5bWJvbH0iXX0sNDI3NDk0KGUpe2UuZXhwb3J0cz1bIkRhdGUgcmFuZ2UiXX0sMTA0NTU5KGUpe2UuZXhwb3J0cz1bIkRhdGUgcmFuZ2UgY2hhbmdlcyBvbiBhbGwgY2hhcnRzIHdpdGhpbiB0aGUgbGF5b3V0Il19LDQzNTgxMyhlKXtlLmV4cG9ydHM9WyJEZWZhdWx0IHRlbXBsYXRlcyJdfSwyNTM1MyhlKXtlLmV4cG9ydHM9WyJFY29ub215IGluZGljYXRvcnMiXX0sNjY2OTQ0KGUpe2UuZXhwb3J0cz1bIkV2ZXJ5b25lIHdpdGggdGhlIGxpbmsgY2FuIHZpZXcgYW5kIGNvcHkiXX0sNDUwMTY2KGUpe2UuZXhwb3J0cz1bIkZvcmVjYXN0IGZvciB7c3ltYm9sfSJdfSw1MjI5MTEoZSl7ZS5leHBvcnRzPVsiRnVsbHNjcmVlbiBtb2RlIl19LDEyNzU2OShlKXtlLmV4cG9ydHM9WyJJbnRlcnZhbCJdfSw0MDU5NDYoZSl7ZS5leHBvcnRzPVsiSW50ZXJ2YWwgY2hhbmdlcyBvbiBhbGwgY2hhcnRzIHdpdGhpbiB0aGUgbGF5b3V0Il19LDYxNjkoZSl7ZS5leHBvcnRzPVsiSW5kaWNhdG9yIHRlbXBsYXRlcyJdfSw4NDgzOTQoZSl7ZS5leHBvcnRzPVsiSW5kaWNhdG9ycyJdfSwxNzQ0ODIoZSl7ZS5leHBvcnRzPVsiSW5kaWNhdG9ycywgbWV0cmljcywgYW5kIHN0cmF0ZWdpZXMiXX0sNDEyNzc2KGUpe2UuZXhwb3J0cz1bIk9wdGlvbnMgZm9yIHtzeW1ib2x9Il19LDgwNjYzNihlKXtlLmV4cG9ydHM9WyJPcGVuIHRlbXBsYXRlIl19LDc1NjAwOShlKXtlLmV4cG9ydHM9WyJPcGVuIGNoYXJ0IGluIHBvcHVwIl19LDE0ODg4OShlKXtlLmV4cG9ydHM9WyJPcGVuIGluIG5ldyB0YWIiXX0sMjQyOTEzKGUpe2UuZXhwb3J0cz1bIkxvYWQgQ2hhcnQgTGF5b3V0Il19LDQzNjUwNChlKXtlLmV4cG9ydHM9WyJMb2FkaW5nLi4uIl19LDk3NDIxNChlKXtlLmV4cG9ydHM9WyJMYXlvdXQgc2V0dXAiXX0sOTI3NzA1KGUpe2UuZXhwb3J0cz1bIkxheW91dCB0eXBlIl19LDQ0NzE1MChlKXtlLmV4cG9ydHM9WyJMaW5rIGNvcGllZCB0byBjbGlwYm9hcmQiXX0sNjE4MDM5KGUpe2UuZXhwb3J0cz1bIk1ha2UgYSBjb3B5Il19LDIzNjY2MChlKXtlLmV4cG9ydHM9WyJNYW5hZ2UgbGF5b3V0cyJdfSwyODU0ODMoZSl7ZS5leHBvcnRzPVsiTXkgdGVtcGxhdGVzIl19LDU0ODY5MChlKXtlLmV4cG9ydHM9WyJOdW1iZXIgb3Ige2hvdEtleV8wfSJdfSw2MTI2NTUoZSl7ZS5leHBvcnRzPVsiU2F2ZSJdfSw4MjAzKGUpe2UuZXhwb3J0cz1bIlNhdmUgYWxsIGNoYXJ0cyBmb3IgYWxsIHN5bWJvbHMgYW5kIGludGVydmFscyBvbiB5b3VyIGxheW91dCJdfSw5MzkwNzQoZSl7ZS5leHBvcnRzPVsiU2F2ZSBsYXlvdXQiXX0sNjg1OTYzKGUpe2UuZXhwb3J0cz1bIlNlYXNvbmFscyBmb3Ige3N5bWJvbH0iXX0sOTY3MjU3KGUpe2UuZXhwb3J0cz1bIlNlYXJjaCB1c2luZyBJU0lOIGFuZCBDVVNJUCBjb2RlcyJdfSwyOTY0NTcoZSl7ZS5leHBvcnRzPVsiU2hhcmUiXX0sNTQwMDQyKGUpe2UuZXhwb3J0cz1bIlNoYXJlIGxhc3QgcHJpY2UiXX0sODcwNjc4KGUpe2UuZXhwb3J0cz1bIlNoYXJlIHNuYXBzaG90Il19LDM5MDE5OChlKXtlLmV4cG9ydHM9WyJTaW1wbHkgc3RhcnQgdHlwaW5nIHdoaWxlIG9uIHRoZSBjaGFydCB0byBwdWxsIHVwIHRoaXMgc2VhcmNoIGJveCJdfSw2MTMxNjMoZSl7ZS5leHBvcnRzPVsiU3ltYm9sIl19LDQ4MjIyNShlKXtlLmV4cG9ydHM9WyJTeW1ib2wgY2hhbmdlcyBvbiBhbGwgY2hhcnRzIHdpdGhpbiB0aGUgbGF5b3V0Il19LDczOTkzNihlKXtlLmV4cG9ydHM9WyJTeW5jIGluIGxheW91dCJdfSwzNTgyOTEoZSl7ZS5leHBvcnRzPVsiUmVjZW50bHkgdXNlZCJdfSw2OTQyMDkoZSl7ZS5leHBvcnRzPVsiUmVtb3ZlIGZyb20gZmF2b3JpdGVzIl19LDc1NDM4MihlKXtlLmV4cG9ydHM9WyJSZW1vdmUgc2VsZWN0ZWQgZW1vamkiXX0sNTIwMzg3KGUpe2UuZXhwb3J0cz1bIldoZW4gYSBjaGFydCBpcyBjbGlja2VkLCBhbGwgY2hhcnRzIHdpdGhpbiB0aGUgbGF5b3V0IGRpc3BsYXkgdGhlIHNhbWUgcG9pbnQgb2YgdGltZSJdfSwyMDczNzEoZSl7ZS5leHBvcnRzPVsiVGFrZSBhIHNuYXBzaG90Il19LDE4NjEyNShlKXtlLmV4cG9ydHM9WyJUaGUgTW90bGV5IEZvb2wgY29kZSJdfX1dKTs="}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/86178.e6fbec90af5ba6210368.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.148Z","timestamp":1785148034148,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/86178.e6fbec90af5ba6210368.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\ncontent-type: text/css; charset=utf-8\r\ncontent-length: 115\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\netag: \"6a476ed7-73\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Fri, 03 Jul 2026 08:12:07 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/03/2026 10:54:54\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 24585744d4ad702fa4cfdf19be3cb10f\r\ncdn-cache: HIT\r\naccept-ranges: bytes\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":115,"size_decoded":900,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with no line terminators","md5":"4b00738e1f848898dbd917e3aa80b190","sha1":"c2535efbabf6d725903e58f0696fdf8adbdc8279","sha256":"25731497d819094baf761b28529348e662eb9894ff5da4667f4164b2968604c1","sha512":"197696b9cdc9294feef121c1e6aa1f9e3f72dbccfa762b6e1b3d69b961a5843bdc3a1ee3c6ca753be4b766255fcc1395b98c4031846970f426aee7f57e48c8d3","ssdeep":"","tlshash":"0eb092aa719c8a614d13ea2ec394c90ea6503981ab10e784fa0ab1014cc3fe22142710","first_seen":"2026-07-03T16:22:04.423218Z","last_seen":"2026-07-27T12:47:44.649006Z","times_seen":168,"resource_available":false,"data":"W2RhdGEtdGhlbWU9ZGFya10sW2RhdGEtdGhlbWU9bGlnaHRdey0tXzAtdVN0eTp2YXIoLS1jb2xvci10YW4tb3JhbmdlLTUwMCl9Lm9wZXJhdG9yLUlITlFWQVFJe2NvbG9yOnZhcigtLV8wLXVTdHkpfQ=="}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/49588.15426b22279561d9880b.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.509Z","timestamp":1785148034509,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/49588.15426b22279561d9880b.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\ncontent-type: text/css; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a58aaad-9ba\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Thu, 16 Jul 2026 09:55:57 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/16/2026 11:03:22\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: fd617808e1b95fe5e89baf4964742147\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":2490,"size_decoded":1657,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with very long lines (2490), with no line terminators","md5":"b69ac6c5f50f6be0b66598710cd79bfa","sha1":"06e06ad04e9ed372adce0da403a670e156ecc407","sha256":"f88f6ab92a6609bff0df47d38410097a31ee5b168fb2fb09b25bea1a75f04506","sha512":"7b07fcb434379fefb26f9ab3742cc2c9b4af1c86b23e59c90a6bc7032dc0c479614578a20a1440b5c43c345f0288fb12f043ee60ce233842e1e8072147ad9743","ssdeep":"","tlshash":"50512156a2e02dba7f63b55256d8f64c91b1d870f80328ee7751aedd02c66fb0070b1d","first_seen":"2026-07-19T21:33:33.790193Z","last_seen":"2026-07-27T12:48:39.701824Z","times_seen":55,"resource_available":false,"data":"LmZsb2F0aW5nQXJyb3ctYzFPc0hQdFl7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS11aS1saWItdG9vbHRpcC1iYWNrZ3JvdW5kLWNvbG9yLHZhcigtLWNvbG9yLWNvbGQtZ3JheS03NTApKTtjbGlwLXBhdGg6cGF0aCgiTSAwLDIgTCAxMiwyIEwgMTIsNiBMIDYsMTAgTCAwLDYgTCAwLDIiKTtkaXNwbGF5OmJsb2NrO2hlaWdodDoxMnB4O3BvaW50ZXItZXZlbnRzOm5vbmU7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MTJweH0uYm90dG9tLWMxT3NIUHRZLC5ib3R0b20tbGVmdC1jMU9zSFB0WSwuYm90dG9tLXJpZ2h0LWMxT3NIUHRZLC50b3AtYzFPc0hQdFksLnRvcC1sZWZ0LWMxT3NIUHRZLC50b3AtcmlnaHQtYzFPc0hQdFl7bGVmdDp2YXIoLS11aS1saWItaW4tdG9vbHRpcC1sZWZ0T2Zmc2V0LGNhbGMoNTAlIC0gNnB4KSl9LmJvdHRvbS1jMU9zSFB0WSwuYm90dG9tLWxlZnQtYzFPc0hQdFksLmJvdHRvbS1yaWdodC1jMU9zSFB0WXtib3R0b206Y2FsYygxMDAlIC0gNnB4KTt0cmFuc2Zvcm06cm90YXRlKDE4MGRlZyl9LnRvcC1jMU9zSFB0WSwudG9wLWxlZnQtYzFPc0hQdFksLnRvcC1yaWdodC1jMU9zSFB0WXt0b3A6Y2FsYygxMDAlIC0gNnB4KX0ubGVmdC1ib3R0b20tYzFPc0hQdFksLmxlZnQtYzFPc0hQdFksLmxlZnQtdG9wLWMxT3NIUHRZLC5yaWdodC1ib3R0b20tYzFPc0hQdFksLnJpZ2h0LWMxT3NIUHRZLC5yaWdodC10b3AtYzFPc0hQdFl7dG9wOnZhcigtLXVpLWxpYi1pbi10b29sdGlwLXRvcE9mZnNldCxjYWxjKDUwJSAtIDZweCkpfS5sZWZ0LWJvdHRvbS1jMU9zSFB0WSwubGVmdC1jMU9zSFB0WSwubGVmdC10b3AtYzFPc0hQdFl7bGVmdDpjYWxjKDEwMCUgLSA2cHgpO3RyYW5zZm9ybTpyb3RhdGUoMjcwZGVnKX0ucmlnaHQtYm90dG9tLWMxT3NIUHRZLC5yaWdodC1jMU9zSFB0WSwucmlnaHQtdG9wLWMxT3NIUHRZe3JpZ2h0OmNhbGMoMTAwJSAtIDZweCk7dHJhbnNmb3JtOnJvdGF0ZSg5MGRlZyl9LmVuZFNsb3RXcmFwcGVyLUh5TmpIU0RXe2FsaWduLWl0ZW1zOmNlbnRlcjtjb2xvcjp2YXIoLS1jb2xvci1jb2xkLWdyYXktMzAwKTtkaXNwbGF5OmZsZXg7cGFkZGluZy1pbmxpbmUtc3RhcnQ6OHB4fS5kaXZpZGVyLUh5TmpIU0RXey0tdWktbGliLWRpdmlkZXItY29sb3I6dmFyKC0tY29sb3ItY29sZC1ncmF5LTYwMCl9LmVuZFNsb3RDb250ZW50LUh5TmpIU0RXe3BhZGRpbmctaW5saW5lLXN0YXJ0OjhweH0udG9vbHRpcEJhc2VXcmFwcGVyLUh5TmpIU0RXe2Rpc3BsYXk6YmxvY2s7bWF4LXdpZHRoOjEwMHZ3O21pbi13aWR0aDowO3Bvc2l0aW9uOnJlbGF0aXZlO3RyYW5zaXRpb246b3BhY2l0eSAuMTVzIGxpbmVhcjt3aGl0ZS1zcGFjZTpub3JtYWx9LnRyYW5zcGFyZW50LUh5TmpIU0RXe29wYWNpdHk6MH0ub3BhcXVlLUh5TmpIU0RXe29wYWNpdHk6MX0uZGlzYWJsZUludGVyYWN0aXZlLUh5TmpIU0RXe3BvaW50ZXItZXZlbnRzOm5vbmV9LnRvb2x0aXBCYXNlLUh5TmpIU0RXe2JhY2tncm91bmQtY29sb3I6dmFyKC0tdWktbGliLXRvb2x0aXAtYmFja2dyb3VuZC1jb2xvcix2YXIoLS1jb2xvci1jb2xkLWdyYXktNzUwKSk7Ym9yZGVyLXJhZGl1czp2YXIoLS11aS1saWItdG9vbHRpcC1ib3JkZXItcmFkaXVzLDRweCk7Y29sb3I6dmFyKC0tY29sb3Itd2hpdGUpO2ZvbnQtZmFtaWx5Oi1hcHBsZS1zeXN0ZW0sQmxpbmtNYWNTeXN0ZW1Gb250LFRyZWJ1Y2hldCBNUyxSb2JvdG8sVWJ1bnR1LHNhbnMtc2VyaWY7Zm9udC1mZWF0dXJlLXNldHRpbmdzOiJ0bnVtIiBvbiwibG51bSIgb247Zm9udC1zdHlsZTpub3JtYWw7cGFkZGluZzo2cHggOHB4Oy0tdWktbGliLXR5cG9ncmFwaHktZm9udC1zaXplOjEzcHg7Zm9udC1zaXplOnZhcigtLXVpLWxpYi10eXBvZ3JhcGh5LWZvbnQtc2l6ZSk7Zm9udC13ZWlnaHQ6NDAwOy0tdWktbGliLXR5cG9ncmFwaHktbGluZS1oZWlnaHQ6MThweDtsaW5lLWhlaWdodDp2YXIoLS11aS1saWItdHlwb2dyYXBoeS1saW5lLWhlaWdodCl9LmNvbnRlbnRXcmFwcGVyLUh5TmpIU0RXe2Rpc3BsYXk6ZmxleH0uY29udGVudC1IeU5qSFNEV3tib3gtc2l6aW5nOmJvcmRlci1ib3g7bWF4LXdpZHRoOjQwMHB4fS50b29sdGlwU3RhdGVsZXNzLWt3czVxZWRXey0tdWktbGliLWluLXRvb2x0aXAtbGVmdE9mZnNldDpjbGFtcCg4cHgsY2FsYyh2YXIoLS11aS1saWItb3V0LXBvc2l0aW9uZXItY29udGVudFBvaW50WCkqdmFyKC0tdWktbGliLW91dC1wb3NpdGlvbmVyLWNvbnRlbnRXaWR0aCkgLSA2cHgpLGNhbGModmFyKC0tdWktbGliLW91dC1wb3NpdGlvbmVyLWNvbnRlbnRXaWR0aCkgLSAyMHB4KSk7LS11aS1saWItaW4tdG9vbHRpcC10b3BPZmZzZXQ6Y2xhbXAoNnB4LGNhbGModmFyKC0tdWktbGliLW91dC1wb3NpdGlvbmVyLWNvbnRlbnRQb2ludFkpKnZhcigtLXVpLWxpYi1vdXQtcG9zaXRpb25lci1jb250ZW50SGVpZ2h0KSAtIDZweCksY2FsYyh2YXIoLS11aS1saWItb3V0LXBvc2l0aW9uZXItY29udGVudEhlaWdodCkgLSAxOHB4KSl9"}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"fonts.gstatic.com/s/playfairdisplay/v40/nuFiD-vYSZviVYUb_rj3ij__anPXDTzYgA.woff2","fqdn":"fonts.gstatic.com","domain":"gstatic.com","tld":"com"},"ip":{"addr":"142.250.178.67","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"font","requested_by":"https://digital-assettrade.com/","date":"2026-07-27T10:27:12.717Z","timestamp":1785148032717,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.gstatic.com","organization":""},"issuer":{"commonName":"WE2","organization":"Google Trust Services"},"validity":{"start":"Mon, 29 Jun 2026 08:39:25 GMT","end":"Mon, 21 Sep 2026 08:39:24 GMT"},"fingerprint":{"sha1":"4E:F2:73:C6:27:16:58:35:FE:55:D5:30:6B:E8:6D:2B:DA:B0:E8:7B","sha256":"82:EF:6A:61:96:A5:23:D6:2C:2C:9D:77:67:04:D8:7B:3B:6A:50:DA:3C:6C:6A:5F:4E:2D:55:F3:FC:DA:0B:EE"}}},"request":{"raw":"GET /s/playfairdisplay/v40/nuFiD-vYSZviVYUb_rj3ij__anPXDTzYgA.woff2 HTTP/1.1\r\nHost: fonts.gstatic.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: application/font-woff2;q=1.0,application/font-woff;q=0.9,*/*;q=0.8\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: identity\r\nOrigin: https://digital-assettrade.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://fonts.googleapis.com/\r\nSec-Fetch-Dest: font\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=5\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccept-ranges: bytes\r\naccess-control-allow-origin: *\r\ncontent-security-policy-report-only: require-trusted-types-for 'script'; report-uri https://csp.withgoogle.com/csp/apps-themes\r\ncross-origin-resource-policy: cross-origin\r\ncross-origin-opener-policy: same-origin; report-to=\"apps-themes\"\r\nreport-to: {\"group\":\"apps-themes\",\"max_age\":2592000,\"endpoints\":[{\"url\":\"https://csp.withgoogle.com/csp/report-to/apps-themes\"}]}\r\ntiming-allow-origin: *\r\ncontent-length: 38404\r\nx-content-type-options: nosniff\r\nserver: sffe\r\nx-xss-protection: 0\r\ndate: Wed, 22 Jul 2026 13:10:34 GMT\r\nexpires: Thu, 22 Jul 2027 13:10:34 GMT\r\ncache-control: public, max-age=31536000\r\nlast-modified: Wed, 10 Sep 2025 16:48:54 GMT\r\ncontent-type: font/woff2\r\nage: 422198\r\nalt-svc: h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":null,"data":{"size":38404,"size_decoded":39217,"mime_type":"font/woff2","magic":"Web Open Font Format (Version 2), TrueType, length 38404, version 1.0","md5":"ef05b30d6e5ca86ef9deda8c5bfa599a","sha1":"daeff530b773fd9ef9c50a803021a2cfba76083a","sha256":"e0c764a8e9e1cce92163c55bac4b2ad6cd4cf8c696ce2289ab5c41565e65b7e2","sha512":"0d5b2444bfe9e47a0665b6f25bf8bb161346888f8e5c49f2b8b4a6c4baacf3cde37a95aa8c3d5800d545fb5e684e3833df41582671073df12b60a42bf8ebb331","ssdeep":"768:FwI4wBedSjX1mVXUjvqnWIiYvffoRgF4vY7Ooy263B1kzEj9SSJxE:aIYdSjX+rWIiYXQRS4iTy2637ky0ExE","tlshash":"0603f1cb9b682138e95f513b0b8b13dd56ad112e9591d9a1821d8c0c96f033e5fff31a","first_seen":"2025-09-11T16:59:11.155785Z","last_seen":"2026-07-27T12:59:07.141746Z","times_seen":63362,"resource_available":false,"data":"d09GMgABAAAAAJYEABMAAAABUBgAAJWSAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGoJfG4G8JhyMBD9IVkFSjGwGYD9TVEFUgQ4AhSwvYBEICoHzJIHBKQuEfgAwgaJcATYCJAOJYAQgBYoGB41zDAdbVTNxI5pjxyviqnQbAhDJnaZr+UNnI2zQHeIK8uZVVQd62DjGzMPSyf//f2ZSkcM2SNttGwznP0Jg7i5OZcHkynJYiUrzaFXmRdaUlyZbn3Pu216Ykxz9zPWzbaSTIFOc2ZSFyeWrzvfyVUkoeYEdB2URE+OAWX6I+M+pLPDpYiATBlWnio1GIYnIYKJiY9DF/s4mj1QOcnUQuRkiCEXAAf1DVGEpqlVtiqDel8qfM91J14gS4trdZX+u7B1u64AjAZveoTjxb200TTHugPaaJqFpajOSY5WhSe4rrU1n/GKOds+pF/3OD7DhM76m8MoPcYR41DnGCdcBtsuBEqRnIiLrEZ48xNPe+WfubgQIJR+CeAqhiGvFsIrb+2pO1Szz87y59ee+N/OmZDItU5IpNZlMkkmblEkjpTRSS6MVJRRZRRTXRfzSLKACIshiYgz1J1Il0aVJz/A0p/8SIECQ2OUuYhcXiAC5KBBRPKhVHagZbWkn2rWbd13Nts7s79OZl5pQcboe4fX1XdXVSEeDzINWOFs/md39ALzSDZQJmidqDH5v976YTTeNFs2jCaZJNDNEQiRpJJqGTKKkf1M6q9q2bEu2ZIktaDFYJh7gY87usw8/Wnjk+JP4k+DrwwPkIYrh3UOEoQU6QNn8s+Wq2L2NFWP1LawzorCwsc8oLIzGaMzCuhUW1llYrFhh37vHu4cYjdE8jMb/Pzf/f1efaN/iVhVaxxtC5MSJGIQggVCoATW99r6ZjMSnqsM/ExupEQYneEnawlAnNJ2Y/NSchYrVA4B9hcK9AnLmatN5VwiVQ1RIuIRJeSE7PMCZjDm8tea1Ze8eURWEKunTAlV1mibsS/j1KTrgT+TD9ZHp7N31DqBmRjySRhppyN79+20CcykRkziXjn5uD/Mc99Nc/+/JBBfwExQYXOW3JaWblFGYyqoKzXwf0FI2NMQD4zQtt9UEgIcm3xMhgGO27jY/MBh/BmG50UZgGSDXIiVG2ZcPlS52+5ea9oV6K1AkTRDEY9wEt6sxDuVR8P/Ijb+1tQUWJX3nD/6A7VjffmUN9Az/2f17CAFUp8LG5MXp6gOUUQpQyFxr6WZBRwMVQRQvVqK5yOHRfv7/amviGXluYnrUlcKXfgs3Bhc+RMgZ5XKVM+veaKnHmyPNCJywR0F4HWD9r8qwrLCT0xHrY309X1OAjVpiBwg86JaF9WQTNU7qMiakTsV5c4btfzVTelUJyd+bapX+BmhAaQ0gjeGM1pC7hS1wLbnmLhV1zrhoL/r9fjd+d38AgiFEgKABBRmQ1M40iJFoxqGBJgQCpGjEcRznRJ2TtOulumsQmjmIGgONXWecdMaayPjUuiC8y0Jv0uiC6MLgKr/4/P7nqrdVufPOJK+WcjKU5Sz3abXkezmynUxz0pUeyiLwBwWoLIH8QqEiZb7/PM+/qWY7g+sAwImfcgAlx27X44TDovLZtgEHDYG3kaxAOElwAp1EjRNFV65SWUaS4yTJiYd2rkLlekv/n02znW878SooH054wn+Dc9wClnGZjppGlJNudaDIJB2ubOe91eHIDqx1QAoCf68P1vDu9lgOQ5V3vdMhlumKNFUXG8v8d1Bju5NaSqhB+k5/O62DbKgNI5tfjAoSV/TwbSmfzym2ShE+IovMSehvt+/LRvv4tSwiMoiIiIQQQghp7vlZX+VT1aN8tNuSm6BZmaEJQZMV4SP4vS+oEtl2P8XKjOhhiTGU0mXoqmH8mHib87h+xViRpjTydDihKLuqD54HmWTLZAHH9cdfOk4GfgfDgoRDIqVBMtRA6vRAevXCTJiEWbUKeewmnH/cgwtxiOEhDRk8lGEOD8dwgoch3OHhGV5wCA7MA6YB7RBmiEMaslCGKtThGPpwCkO4hfumMIIN3hndISjMIeDnMGAU0I4MQSDPzsX6TNqqEwjwoe9tP+p993T+/MWr/YPDo+PTxfLM84M4qY00y0FRVhBhQhmvhVSYUMaFVNpY50ME5CSkSofOxOhskd7IzFqzbMf1/CCM4iTN8qI/GI4n88Vytd7bP4nAJadmVLYAgsAyviCAnrQSYavWRCYC8/hDGqqAiQTIxHPwoOOOqKsCjf2iIHlp6roE8ICChAxUy8TlhwfNbWfbhr59lhzDRChSTYdBbdE69ToI9ZrFwDSiS4MyBdIkihbKnxs7WjI4qz7f+BBAcBmzcNvHpXXvvMaAuzBm/y0AYWXMQuJYmHCydyqfcF6nxtFv/pd9ni7mdQekAajEU+yviWzbHQ7+lj50WiUYISHxCHYgpPTzp2sPNP3osWbS/81AhZoO/0zBm+owdAKa9mfYC+sql1TOWv8p6MIQtK9/l9Ps1u8trp+rl8yivqvyho1z2Uv/VUnqP+jPgO/gS+v/CVyIE3F45Xbsgcs2zhoswozKcRix/h3ouTz8DaB6DmycRyrvohsWV5dVx82i+kPlzzbOd/AlfAIX4nQcmx1MsLkKvf4KYB6moGvtHeiJ7zi1lHe+7CVpEQxWvQfQGJgXblF5DGx+XqR6T8+Q0z8oCwbA2p+pN1/noGey979kW2y4qNND2evH0viCT/5BLUV38m0G+ki27T311a3XHhckmbbqeriNWTvk1BGw+W0s5IK1X2RewmU+47znmtZNQct5UizyJzU/OWUGJn2Ok2kzOFcDZbaClVtIUyz5FQt5zdl6OMVdWT9GB2XJVyS0e/13ZajB2jUwBtn6GYmKTWdAHcW+f/r5JV7ObAwcJ22xchVonaxaMvb9cHE8ecp6VGLn/FAWBrDxf5LpihplEQeavrCwPoP1ffpdprxLDVI/RtX5PoKOysovKVLm3NsTXj5pAGdRmq3vKbN/rrd8mLUvcPRkKxj5DCYcuvOenRFBqSySQfUSNUl9LLvpHdBuWXeSPXn/19XANIgGtk53uQTO6tl9PE7lgy17RGl78Ynnr6d/nVmP/L0dgEB6Kf5B83Bfw3ecfC6VLhPOW3D4+fQ58Gvssp2cmHmGng64f7C1rlk9Untre+1QayJJzSA5rI7hL6rV6mb1a72JLlTf1A53Htvh7dv2TeHLBtZQ9VZ1Vazymzd6VfpKW8kqXk0youOAvfFrPSpLZaFcKmfL8X7Wg93djR1pV5lZektzqSqh4i7WYhc/Z15EhV0I9CYex/24efHX/BoX4ps4lsPZl+2ZykDaYmp0Rn0koixKwjmsQxGCYAcBb6RFdPlk+bHh0esvCb4s6RdAoJSxlF+e7w2SZHp3IGFc0qVM395n7VsOkGDE+VjSryrf7gY3DHgkaYp2jQDs+4nr2aGY55LaDNHzVUMAUiGyUiKW7O5lU1M+H4v5V6U4YSd6tg7f2bEpyTn50Y6upFqQ6EDYsCRAubo8X3YfIMJiLkxi0LHDSa2VBbJ+J/Fkr94pA1nnZ765GWGhOxJ/yfQusIQIix+WWEBnDgVsSPx84SUrrE3ZiWEThva7Tk3cjJZhwjBYRZMys4smZOX5bABDJJiOp7HQeYm968iCQ0sVFcn/cxVt+iv0/0jFOh3Enm7Qin3qgpiy7lRGCFUzFqaBWaexOHLy9rjk5CGihLETyX9S0V3O2M9NM64lv3Fh3J56cBzuYI8XunDVntA/AXdlWk/gfWqS76TUEv9J6QCA0w5pLwOEzoqBznTdLXeufWO/FDGdPMVrT3M+kJDTlFOU/iLIICVXyERix0kr4CS7jB4MLli3obVtNNABOtKmUWLTqamIPiQ6KiXvjaU6nLnjsDOtf+c4vLXd7NiYE8RQkXWCAJVa1kBjFBCSXvxg0heuXIx51nC6PVSh9UVyy1lzTz9OKf7vjEfaSyK9GKxjSQdeFnFqK6aW4qVChwi/bjAvQt7Ceb6lhFBef6JLhZ7Xb7Xqt3nsL/DPX7kQE/gJ8C3gC8DHgPOBU4HjgSOBg4HtwD7ABmAVsOBN9gEs7itez6Y7SjG4S+PzCVhBHE7qKeuFg8X8N8flNfq/EGDP27QYxh0fF83x/i5xnem9MPpPcUy/w5sd9No/Zx2dH+FAtIXC0S+LF4eSszHHE3l4aAEYrHFD2f3r9VAyVGio8FkD4M7kdzIGtMIGdYJAMORl5DlTUyuf2bnedkvrs3IrT/e1noRFiBolp6l2IHoVTOCZvapW7mCd+Tnp0jkHkaI+usP6OjrbqZc+MqJ9VpYSitlMd33DI0kpMC+kmiQ5xWYWo9lV/t+MmL8Duy4v2XPJk6w41yehKFJp2l5puvu2zxGjosU9wAcNpzRn+z3QL9LD5DmnSmxTKZfxg84596bDbmUBYh5BjGPTCTDM8ZyTAUfAvQKrc3Y+lWSQ6kivmHRlaqI0ZabdZ+HP02HKa4VkOifglkRCHeYk+kYKvIH8f0JSdvEOsZIo0khkuZRWgmJoFsxB8NHSxU25FjP6FFgaoAZm2q1XQZufT/JooVhqKfbcbjNhpQh0jnK3NCMB3UHN7ohZPuyZ0QCqPVhDTU8Qk1aHkvEciOGYa6Wa9lbe6nLWaeU8rU7gG5z4qsLOOzgXaqTkaBU495WwAGsSz+CgGWVcXajmtGJPEPnb34DV7TOUaiCwBDBqAfCYziEUM0iSTLgWj5RbXWYdtu9e3kIrLffoOQsBvXFB+CmKeGoxlnFPTAkWkqzVIj/c/Av71mI9lzzavzT+OhOAE0TNU0R9mKE+C/YA7enOZP79unSXzuq0j2kD0ehZd7VPINfr9b07X2V8SmWvfGwQFPTEDUF3mSQXygONZszt23sN52Av7U02yp9/4voh8jz71qYfg89UN0kU+9oehpOONgDpgySyv7eQ2pckzK2pGe3tfqIwJqumY/r3z6HrjlOdIHqvW0bU0iNpmj7PHfEwM0b+fKcNGakAbGmrvWPmJ6pHX5m5gg5v1Y2TRstu3oOxgwg69ni8y5Ymrc/UaSSG7cwyJlYt1CQRnImHINaSFX+aAda5X5mymj4zSpP+BHeskv+yL1KMBO0EIFaZuQBPs8xx7Xr1XJyPJHYvWL2BCd6gB0tRY+lpc8zHsv8AqY/ybp1AjncaqXZM4BF6G0xtD4GTgeu2khVP0zyL9/K2ub76cNK/oJoRa5V9bqN73mgby32wg80eEbXw3F9aJVvRIdjksTjpujQIH6UCDxDchi/63sMD0uk5Oj0TkR3zTmGR2cd6ILaDlqYB5rlinteJ2LOyLV7GXmXpGfiS68TflHBSK3zQddVcyWw7Qe/5sb3FtS8RVkq0sufVxLHJ+Y1vyqy1kx3kwJTcCbdIS+2ArpaEnr3oA37DfZvrB8LtJVHxyIhpIp2K9Tk6PQUB9DPdI5rYEvT/dTOvsPG5NyVr4UbqEcs4q2xzsEZJjuP7RC8N9vduGgUKSb+3KyXJciZULl9PoZxSmcsjUi7gW76lb2LshkgY2sBnEe6ICf7e6bOu9D+RzOvMNcAE1FoqZ2pdbYd58hh0a7rlCZnP1ewhVCqveEeADfNOvox3n6r0PdGnu+sYm2M8x3TT3XRO6L8/W1FuZq+uoj9W0YjGZC3oOAXm17/iPa9LFcG603sL/Ul1rfUG0Y5/bbxEK5yaky9x8aV0NwHRVu6WnsdAbJ0/Q3LDG9c4f+WyJ5NYk+IDEdrfJln+y30bgfB1Iu6dZi5n1z6QHEk9L2Q7MBk1GddK5x5KH/RQSzPjtsEi9nzEqrJ7bJVKygkFw/cVUtsTWyaw17SkxnucA1zsOkVFJ36639MdvGV+IzlSt7b5BF1WlHg/HdMpmoX1qToyTvJXV9MRMA45wfne3PvLjR94svr9eGZ7JXcINcbV9iYSYqTfUh+X1U7BdwPuqfbPfifhyce6nLf0Ysxz+kfdtfaa1XYtmaMmeIkxZfBG8HK2+jNw9nd2AW2h9e+UlJYz+rW3ueQNcf4vYRupFnr1nuDYgVI7DQQXSexTqwRJB5iTnvr28kqvYM25VPrY708bwxmUv29zTSENMGwIDejFBA2fDS47rqy4caPnwYsTb+FcRcoWIFel9arVKFCnVZF206qc85N+N9w2bMmK8QhDZBvQowFoCSZsYeVEpznJ4fW2OwGCqdToDofmZGhShNp59YirCm8IFRntLSr0qxAjDDhjvF74+EVAspCylZCRcxMlNcScDZyOLcSOgrMviEMx5tjl0HNFHVPN23ri8qLwrSuI95NwPoIRQsXCxEUhiS8sCdNGEqWhSf9HKDJkEsuSw0iufHQFymEqo8hUFUx1oaspDLVFpu5mpuo1o2jRykS7TmxdUcx0F5qem2F6TSM55zyhC34idTEinFjN3C4T+oMicqcI3C0i94rA/SL3oCg8LHJ//jaFR1YoIwwzgoiissaEjx4KPvSa9VwmORaTOWr2VojCVNPmzEhQSIs52bQFOQUB5VmKUUIVNeq4tUZiQ8HZhTQTChymjJgRRjSNmrQNChPMiiZE02ShhcUV3tWKLDbalKjwzhPSy8xYFkUqO8z51MS2LLJyVjQVioSow59MGDNBRydjXJO3van0v4VpcJppqOEkRgphtBgbK1LjhTBVjE1HOknKWM6QCSUNMQ0xK9asWLMhfkXzicNdZN//GCKfA2/bgQSXbGa336D/NevEWrbwhXa8M09HnFOTPVC/5yo2tzu7sUs6t3THt2Hfdx5Lfy53H75+X/fPn6uo5eZena3bl4QWfrSQSTOvc+ALrU0jLnYHNJVX69/k3zXPji573LbONZTVgHJXfV2U9kijzZ7j6nkwHBv7IIB/xZN4DvVxfJ/0aULHo5g5G9G6tBK7RJG70lW42rWUo6ut/5XV7DzpeZ5e9CafaIveAg9adAhewZ4dGk4q/bsiIwCeTPb6AugYoNso+UbZjK81bFH9zbfV3x69bQt0t9iu3H12yfdyu7n9p1m73yv2MXsROyjB9zwswZGQESio/bRcfJsK5fbNwpJwESJFiRYjtop75p9DPPuIkhJl8jMKSimEIsVKlCpTrkpPegPTB/0GDBoybMSoMeMmTJoyvZ8Jpf5tCoMjISNQUP8RWlbvZQxAM4Ib0B3OPeVvZR5pg+frD9kKv2ug28Qe523hAGCrk0O3k90g76Hrde+rP/PtUR+7zQY2nfZTx3kHtBsOt5k7XLZgAVv99qM+Nzm79bAzsNvhPXL96n1tP9yj42NYUPWXSWB3XTs2d+00B77HABR0tCzxWroLjtihxaKJcm3bSx91IVvIFeZ3ml0rbi+96r3A4T3WUCZTMAZHQkagoBZahg87Jt4fMnDmncstUx52T/21ePTN2pQnmgnAuFuWbDn9dcx+RQu4F2lNaRvrYXtu1pk6SGdzc2D9IVu6W9G1oz34R2bJtbUPua/lUGBzjyOB3TonOG91h5pyL1eP7q4zrRwFgeMgGKRcwVhKALFtfJY9No5tl4ysNn3ondcU27bH2s5ptUury2edLNfNOdtkq8sZ//ZAGW5mYrIGAIDiAZwh3+xecQfWx2tDP18hhrTbZqR9WXir8G3Y7mqb/bmNhuVdoPvTFfaHo5JK+aXFyRtu+llHzEEHfYJ6ih2B8PROoH3Gblbtf6Behr5iDIFPAW9tgdH+NgX2824bW5061DZ6A/VO3gusvud9qvc//w0A3Iaavb88BHSzYHAkZAQKaj8df8o9jLJtiH05IDclT00+kJBRUNFAoTvBEAxMLGycLhfM0n4BeIQfFIREEcdGwkjJyCkoqaKmaBAtopPdQgDkk4GV2DlSbEiJOU6CcXHz8PLxN8uejM+TQbmAoJCwiKhYswIwtP8DlapUVzUbxWegltT1p57c3f9FUA+M+GXQgLSHpAM6denWo1efyZnacGYERpENpFGT5nRXTQ+dbkSnS2r5CfMpmxl/eI7mdk2sa2d2GezOrLQvB5DfYtcAjW+O9y/gALBIxsMalqbNswJHQkagoNa0Z61DJx/yH0ap4kaMFGM1TGBh4+AywQvfSUDIlBkR8UDSMnT4ZswzeZRERR3z2FgwGpa0rFiziY5ii9hhad+2DB1a3NHmFoaWU+bIOkO8zTMVE/E28+MvQKAgwedDAkWHUHyfMAgXIVKUaDFim4kpBrwnSbL1Vcpm/Nekym5a1LJD+oRanvpX/a92SQqZIsVKlCpTvqhk3axKdmvoiKtVUx+eBqZRk+aq5Z7Vd7TqSndj6aHpjUoA2MSd3Uz3l2zNbYHtyFTtOAKw4M0A2bXuX70b/9Q3i0bWvj5TDhjKb/TF38nIAWhdYevKi7gF0JkWL551nYvtDYeA1fkwBkdCRqAMqAf/7gIshRMFpawo28KSFpKnJh9IyCioaKDQnWAIBiZWxb7HxQCnywVDw+WAJ8MHlJAo4thIGCkZOQUlVdQUDaJFdLKpf3JrTRUoTgm6VN4nyZ3mm/nxFyBQkOBVqIKEQbgIkaJEixHbH8fGQRKTD99LUpJsfZWyGX+iVHmbtDijfyUduRfIyKOaJBPJnW/yID8F4SmEIsVKlCpTrirV/v4a7E6rI+Mg9fXSQBo1aS4tuNbzbdr7CV1Uprvh9OT0dpg+pt+AQUOGjRg1ZtyESVOm/10bre+UTUh02gx5w1aVb2m7OI61A46d7QS9w119/uRZpNNqD1n6Z8X3E/bSsaF9yAHz6gO0V799wT30+wepb9M2YMox6bKMPpulJSfGmQvXU0MGobFHPaDpkaBvyLPZor631tpsxxZWh87TLfAdctI99wC442zZ6B6qR3fvYVaOYmD3OAgGKT1iQhlOH2AJjoSMQEHtp+XB6SEjoOrGSPjMWdCwpGXFmg073k2fFLfDfPnxFyBQkOASigkTLkKkKNFixJY4vBuPLJgCpBCKFCtRqky5qm4Ncdusq+30UHpj05f1GzBoyLARo8aMmzBpyvTpRmD+6YeHqu4JeVs0QWbhNR/rcJsOdLh9urdgdk3PCmfLvuDqOf+8TQcgbwDy6oRf0iLf0XIprI0vSeOg9KqvIoHSW3gYgyMhI1BQT2n5MZHGPVT/bY7+OGahxetDrl6ZPug3YNCQYSNGjRk3YdKU6f1a9OTzfcaYWNg4uEzwCAiZMiMiJiEjp6SipmPL3rpmgqeNJku2nPOboLnAZrXX0ldbj+MFsoNtbkbh0VxaSCBONQDsfTrg9sDN9YE2tMQglVdy+nQXjRPjzIXrdYYUrcotm3EFMUOInaOZEUN4mfsRvAEAzOryJZo9vpx9t213ffpxLo2hYMw/d0zbMRTPaVMLz+V/BkDWQnFZRWfF4BNDUXeb5qj3qRlnkUMgba4fOqmhxmc/IsgJmy5LqKrVQHwoxCdoAQDzUQ+N9AlrH8KV830dChQP+Lj3tUVzDg+a88zF6+YC2QoL8nDTg8/fXPmKUectGbKcF+SnVGFu0arqZa23vGDtKq/ZhBVM218+EJzve90+XXznnFeBdT67ePsrVmGYXyVhtDmnYZkbfL/bzeSW21nyZBnTq0CgPJZMP4GHjp5h088Rgr0QnX+Jhu1eK6flm2PaUDEJRM/8hwPpVshCIN2AYj+ZvDFPVIoFtJIsan0tj1A73kqehJbsCOnu0bRiV03Zj42214F0ACIHl5sYVgOzl7zQTNu9DCQvcZWeGBRXyGm+2ecm3A22It1kbrndjoeYyoxFZ9rKxe9dkE09LKrnMSzAvLRcTk8IDcj3RzGvoq9+CSakoLHyB4X569GDkbYCM67NdKqKbAs7fPek42r66Ic6saacwFtQKaatElPgnBAAzmcXr7tCkWhOS8KCDXFuLLbcJLfczpIny3h0le0SkDEe0/wRTSkaoGiAyx21R3OFNXXN89ow2i+Y+rbdXKfD1dxQQy/pK68pwrxPAhi2EATbwfhPH9wJAOqMYuSnL7cD5VFu/Fcr7OHVQNjwcnmp/+01MjChZcXn0F1ZPcVfMg/46xYU3i+CkfeeSHb/faXhULnN8yfbYtYHd2z/+A2ukaRK0ZsFe660nmqfZhTbfz8oLQyFD+wFojdOmWex3rO7z0batloTrshL52X6vgW6P69+GUT/cION0N1kbrndfKTtc618+CtW1/f6OPoZ1lRbl2p7XB1W2N+FE8WQCeUd8VexZurJvPjV+f5Vsz6svxzJ5lsz7PRN8x9YMZabJWeewt2JJshR5DVkgJUxTh4vg8/ACzkJGYBbW+nx5iZoz1IOUwIUJQUmj5O/Qou8t4yX7Y0e3v2I9DZmts9EY7r53u2X3e9Cva7SI2hPleV/48uUmSoQ/gLpWxPAByjfq79D8skSIiZ4yAj97/JnnAQW+6wPIgX+hDD5k/w3vSeYCaqjkUKFl+W3gDMdQYZ4AfCWlZfc+spsoIG6G2q6njCGTJq5Fsh2Mz2jFI0Tg4lJ/K40ewAwl7EADUtaVqzZsGvqU7ZeTpy5cJ02JFTzuSVteqRW/XnG21+Hrv8Kg3ARIkWJFiNWgUJFipUoVaZc1aCnVcDR0Lb4LdOCW24372Ot38M/bZVtl6EypKkE7gn7/uZY9sqww6z9WnBdrE5fTou2bPpjyQMmDyHd/Rr3miuTGc7tJYiib7bOBSBiICUEeOtgDI6EjEBBrWj3TD6HXhndE56PEWM1TGBh4+AywQvfSUDIlBkRMUkl3fBOJyPyKEFFHfPYWDAalrSsWLOJjmKL2CH2snLc8Gr6qnHKnLlwrQw9WBc3YNLNXV14cKedZ7zGZV28w1OHqmWDjdCa67adQdrviYbp0JkuczUzYV9hw33jW1xWecLV9XXm1cUC67csVsofMnc8uQv38ghZYdXqxPiNxE2wvtH3gWinGAjHQSAlqH8LoGiAiLCmX08wpO8M7jnWtUxpVFddEGYUbf1rkx5YpKVyZ5+WuJ1CcACYY4zLAMZuxcgt+opz061+CiiOi9AVswJHQkagoNa0/begp7NLGGNiYePgMsEjIGTKjIiYpCs1cHnIZOSgpKKmY8u+65iDo+hf5ccJnLlwvY0hl1bmlqEbzSNfO4ZnanlT7ZhH5XK3h/P9/971thgYbWDEkHtVNvdMm+bayAbYwPByPwcm33MZr/aZx3SQBWWDWVRX+1zXlIcDp2ycSAwJVK4QoPZZ1Va9Q01VRaGZCdhrbAjA288BuLnM1KVvClYtW2j9x6i+fuLqS0oyqgvq6OsB4gfYDIC1YsGQdPYlAZR0VQclMQloX5oE/FN7A+5v3Alo57rHqkd3Ia+Vzx2UdF7L0iGUtHBAWw2YGwCJFev1A+pbmLcNeo5ZX3lLXjDoegssZklwQob4257WDjOcVW3QWHO7R5lBC9NP55VK9hdjazzg7u/68GuJ8z4IR98k81dgJ729ufOW3DZMBjnXCu5CamsmIw1DVFWV3ChPeV1N2PoJ87k0fclCgn7dYgoZXU/R8TFZjqgf6ndsPTYQgOQAcjtNHJOiSa2yunR/RCiVbQ2DIyEjUFC7tKw1h/5uTIyBiYWNg8sEj4CQKTMiYpKuNBu9nUxGDkoqajq27ItDjv2OqWwGfVKLcEqcuXA9NaRnO76fdZQ1V5seXcQj10VLntT1Sm1rWRfbbTFpTiv629Q2Q7vRVtWRdDbPcTYAzrvYCrDe42FTfLKg8VrtOui5TpayjIf/0Nla7hgbXeQuBvdadzvUbFsdBX4ax8DjIJCyRGG+tv4zg5ltPl3byRbS01vMic717Gj422taA+A0AAAz16wFbfvktbS4Z2dIbQG33WW/9bWlUaUL3C3O+KA5RUXf+6Yy+rbMjeMklpKWjLS+6gA+KLWUCjMRpdCPC1d9iwLvbzXaABBevzzTB3aUPLtHK6RohReh8IL07qLk/Bc1RuAW7x7q0JqxfaHXmhnPhreB1GP5YFvcd/VIL3LnI9lwR6qgvYDzla3Tna16j5QmLmWB7usP6bkAQgYwBsAZpEIPAAz+XgggyBEkFxJAcslGnaQCgNhq1fy5NvRkm1NCeKuy04dA7LqYZKefiU3Lv07P2w6Vaul+D0YJiwQMfOYsaFjSsmLNhh3vZqislIUJFyFSlGgxYrvp+E+5AplCKFKsRKky5d0KYympQrdOU4rqo9JAGjVpbrYIeKnWZjufZ+vQueyB1jzGzM4j+nYV7ikVN0Sl4GZ2y+3nPwjYf/Hnckd8nRTdkvcY35fYFEUC2x+cK6NSNcqpQiGwCIYXBt4lBbcDtTAE/dywBkibT9JJTB17sTmUj3IaxuBIyAgU1H5a/lR2MkqZncdI+MxZ0LCkZcWaDbuuQ44K5p27PvmUoXzBr+tvwRIEyASiG2TNHILRDTWXjDAIFyFSlGgxYvvj9DJNvA9UmIQGuolKOVsSWmzXadbLpJBUad10NYuQ5Uw25DRzlbkpT34K6qUQihQrUapMeX8FxIJUEvhXVU51VLfGc/yutpT6BtLANGrS3Gxh0dTa36bCd9odMlRH0tntEqOhu5/0UHoHkr6s34BBQ4aNGDVm3IRJU6ab5+wqxPnmBTU+9lMuqv1zQtTdsEbVTbjldpZsWUb3vj1Je9BbHkp/nq5K8PY3asaoj/BxnbEGyM+yRcmUJIi5SAkkBExr7VWEEFMepIKKnVq81fMbiafmNACoLa34gBAB1lTRbDxPc2AVForz25jwJCY1AOAM4P5EIQFtlgUuD0NieDL3zcClSLs3YlKo8lGAgAGOgxmK3nMGR0JGoKDOuF2RB4A0ByjJkDqBuSfK9MYf7eYyK0jrm6mFUaZcdKIjhNTwaanCkpFtgiMhI1BQZ9TLLj37833GwMTCxsFlgkdAyJQZETFJV5qjCCGTkYOSipqOLfumPqezxYkzF66HBt0gG8IttYjlnrvZTh5ZXuNJ8apq3SouMJLgTFaWLWfVEpBWrNq0pNeTPqQ/GzBoyLARo8aMmzBpynTzHJglOO/i6jJBPbc80FWMAQ6mLBmyzLarAeknqjUXK0K5xu0wwJGQESiohZb/bNIBbQBjTCxsHFwmeASETJkREZNU0g1xJlkmp6SKGnRs2VeG+6Qh3HjWCu5ZpA15AOxTPJF1tpVPDvDlx1+AQEGCSygrTLgIkaJEixFb4qj+eAYAEnTpKllJtpwUmFMIRYqVKFWmvFtpyGxV6NaY2FO1qp70Vk1f1m/AoCHDRowaM27CpCnT5ZyPnHfxdA7GjV5znNk9tFluEHmIm3DL7Sx5sozcN+chbrcKZXag1ByN3gA/GYDVSlsrlxS1GoNuzKxxOnacTp9lC2P29HmpC4Dd7UlCjGyKJCZtrYIEgDZ9Sr4Tu/NGmjYJIG8SQMZBlh+6UpK7uo5tXlYLe/jPrB6G5wRA4AUAmwMwaS/qzAgPXhMTQmdL75V7+AxzcQsr+miPDgsNrKnYCKuN+0kqWPxqIRXRO711y3UCdQFYNgD10hHAuzT6r6plQa+NS1zbYtO0uWjLJUVa7nnFOXrgfkvTHIpaVFt8BkD8DsERMM3oFvwVAF0DrA/laVIZxuBIyAgU1H5a/g5djNJxEyPhM2dBw5KWFWs27Hg3fVLjdr78+AsQKEhwMxRGWJhwESJFiRYjdhWH7PvjwSRCggHHyoJsOSmAQkWKUwKlypR3K038sSpZapjUqt2uANusJ6e3dvqYfgMGDRk2YtSYcRMmTZlunvMEIedd7J8DE4cbENfdTG65nSXbchlazzJGeMS/dy03APgvl5c83qEtCv8+rYDYQgJoqU2D6rtgUxDeXACBBeHtosA7LQTHBXFg3GvH4IvwR6m+5aHOCSo+mwrAtQGyQzngMliGIyEjUFDP0rJBBr2vZzMGJhY2Di4TPAJCpsyIiAeS1psMkZ5T5ERJRU3Hln3tuKbo/XECZy5cpw0pcDS3bFbumW/iocaTul454TDrArtxulyfJkpAEktJgmTrpUiVloxKyUSy/MmGnORCnvxUmFPZfKrV1MrUUbdl3mq0VrZqm5dUt69DdUBnujzp9qe3UvqyfgMGDRk2YtSYcRMmTdXTrbstrP67ukXLvjNklUWZS+ZZbKmZFlpmuRk/PHVRvjhZecus6f+toGcI4uYPin/j00sfoi7fHqSAX876JaocP2tNDpyj0yZTF5XASdPlyIijnOsDq/Dr8T3OP1j+TfonQkJmjFl4YcYbjT7Zqek/juVA+754YeoLU36Q+HH4P6yK/10m9v0xFQ3w3f38yho4/uCwuhKOPjrNzYdDL+4X58KBFw8bK+H9F4/yK2A7s9GEIT3aNCyq/nixDkperygthryaMSF0CMDRYKjISDg1b11hjLrt1UZfKfhMd6dc4gXcv69VT8/2821cXX04sFJXsope7pfvylFddbCaeBEZLtgcJZEbwY0q7wbzA8qP4Awg6jRK0OGyOe4P23cP2bGt9XHawOB0Eanx+26KJkmmZSFNoowfAsq8Kp++ViKaNWZ1Oxdi1zgQBvV4g3I1lw1oI00gw8F5dfHoQoRfAWDGmeo/564VAbTAiak/iLRJneJ/NUuXJlWKZEkWK1wgb270dDQUBmGyTcNkmYLJMAmTZgImxUBwNl78BL1+nKETIfrhfVe2sRxkGQ0y9AWJRoIEw/NDIOj+9lTWJ9N3kaRXrjdsqtJuqoUSf6oEIUsiDxoS3HEv6DpPTP3hORgGImiAuREjwIvn7YU8TNQg541vQwEsAFWowJsRDdAj6V9HmDPvhncBrd3CBybQlbqrai04aB4yd7QPHnQEEoD2Kfuf+Yrj+bPBu4h8Ua+c+xAPz1SQRfgb7XqMcfZ396+rNpOsXF7PrOArH4/Id/05w9kIpfeu3PBdctlmQP03oxebdci5RSHXqfLqtMR564nX5UML14s6tY3Y5bOAtA+AXJ8s7/L/i8OBJ410MiCQSRbZEMkhlzzyIUGGAhUaEHRgEBgwYcGGAxcefASgCBEhRoIUGXIUKFGhRoMWHXoMGDFhxkIBhVixYcdBEcWU4ATDhRsPXnz4KaWMcgIECREmQpQYcRIkqaCSKqqpoZY6UtTTQCNNNNNCK22000EnXXTTQy999DOJyUxhKtOYzgxmMovZzGEu84ogQICBAAUGHARIUKDBgAUHHgJESJChQIUGHQZMWLDhwIUHHwFCRIiRIEWGHAVKVKjRoEWHHgNGTJixYMWGHQdOXLjx4MWHnwBBQoSJECVGnARJUqTJkCVHngJFSpSpUKVGnQZNWjzwyBPPvPDKG+980KZDlx59BgwZMWbClBlzFiz55Itvfvjlj39WrNmwZceeA0dOnLlw5UbeEwlABKACqAJUA2oC1AyoBVAroB6AegLqBagNUG9AOwHqA6gd+gDUF+oHdUD9oQHQQGgQNBgaAg2FhkHDoRHQSKgT2hkaBY2GuqAx0C7QWGgcNB6aAE2EJkGToSnQVGgaNB2aAc2EZkGzoTnQXGgeNB9aAC2EFkGLIVC+AAFt4Q1BAEu2jR7iSLmUWqs+Sy5CjbXbrMV85dOwlEWUrZNb1sgUKFnYidGMmvoolc0lbKyLcUo0mUdSnPtJ8Of1kUJZU7GwOdB/UTxZ6yRJmB1y1uzZnJnWOdELk0Mxy/wkV/dSjtJl8OPPdxdO1Qi+mf2MFUxFEAi3jlvhT8t4gcJEMhTT4tOIoWfH92QSFT46ARwLkwBTF3bjSZDhHF6MSYZDy4SUjt2r8ZekqfB59cobb0xOy5EjHd0cHuDMQIIjSpQwHMZq1PLgqZlyTl+pP0fEypAkGXI5zeXxKw8e2eUXfyPFnB8B/T0V2hB/MEncZpvzl7Lsv1ELYxyA7+VmkErG50wrEZ82TsZdp/5iqhuuS0AMI4PyqaYAG/me40C8OCPWYKhpl2PBC2zN9VCAHWDUOsQjAaD+uNd7wNcBpWBngU44ZH+3BnSgAF2ws44qaUAA/Ed6IFeC/4vCmit/0dLgQAmEZkD5DxCAKOhpe2KFpeTWYyc24QpbMz7wHisIFkyAmAK2sI5nqG2ksh14yMgDL/ve7LnrctRaFOQYCeV4fyiL5XqFcBJOw9WdmKLDkA3NsAzP6BszYw8cRlXm39BNQu71HVvzsAoOPMw6dnx8OeYFnBkV7tvPEA34kZTGNJ7F/oDlh2rMyC4vwu6Hds7O2mPdC6A7t5/MDmbAQ19/8DvZm/ccduvvNLnVcPOextws2G4pdADiG9kJgvGlmn3uT8b0fz1f8LNHfvU0GDKGFb9ZcNULX7rhnDkX/OSdCY99FwYgdEaMsfDwCQhJycgpqZjTsWPPgSM9AzfuPHi5Zt71CPx/bPkIESpcpDjxEiTKkCVbrjwFKlSpVqNOvRat2rTr8nt4FgPwokseu+uWe+EHC+mCbcb9ILgZTtiFiTXfdDJWwYQrsXbcBg/84Hs/+gUBQ0JFRkHDYIKNg0vCjIgYk5qWBQ1rll5RcOXEmQtPtmoF8OUniL9AwcLEihItRppk66WIkK9EoSJlir3Wo1mDRk06VOpkozysMAtxqN11z5I/3LHsqwd4CHThoGF4EX4nCygA+k1bEAYQrw20IhxAxOEeiCS4/zTticgAVWekFyIWMCDtpzjKFAJiCaCcD+JkMOZTAFOXANSXgWodQIFlAbmAaASU7oavx6G7VGs1eMCRWma0X4HDUpzOAuADz/Tw6jPh/zFSHgfm1BbMmCEMbswocxN0T81CUWhAbH8cFqWJzKgXyuvMfjMyY+n2qUKsT3RGDDXtjQccTqvoXIkg5zWr+kI4DcrFjbtDyEg3x+Mw8JFY8T86/Yy9QZ2MQ8i8/4sbdiVEHkJPEZTx5aFOzlEmR5l9y0IsLbby7YCiFjTClKoVUFQf7pWzMFS0Lu9w8YxICA+yCacmCOKNEgpn5lIfxwUpkubWnMIp3JN0SVfFcnWn2vNFqAm8Cw1/dOqv/dP1FE59+IzvH6396NldXK7JoxmVOIVTHdEfsvU4deYJhcvDO1A7WwaLBYV3nYSpB6E5CrtOTUFKyKiPwWncWQMUcW1GHDudMERRxNT1sTS8LJkdE5s6QvhAufvIuMPhCJ4Romo05EYHzxLSVnSQjoI/F7dAoobwiubW3YeWWJZcxnEylU9SnHqGHRrXf6AZEfTBw0UipvYk8kAjV8qH2+fJs1VXV35HpPNgROvxhs76HISJxiCAU3V3v9F3ptyYk7hNLR3F7g5XpfsgEvWPj+rfQeHqkHl1h3fwDAAscKqin7SEzoA1ys2xpbotzEoHhM55RC8Z4i2PongeOyjO70cbXmLBk0DRntQ1ziCF+0IFWFlLdHWcpNTz5w23An34eHoICEgnvFMHqf9ENEZsBl0XXwcjNKJyxe/lGMMn/Kqsp5I0v0RVRV3NWADKueq4PT5itgJCPhBPj2A/05Jz3KHEFnFLNObDrAqkZpksw2TkYWkBWynKegHQTs+K33q9Bpvv4wq4KCAwf99v3HUUeqKIPxxC25F9IICsIQMlbMif5RlsRzHAL6eJzTUGJZzXvmd9Y6Zh4LgzgHKqSM7oSsnVUyVWmScMLb4mN7pot4PYA947eQNrHx2IC2vGDVwhQByPUmehPEvE9/Q3fInDMuKXUu1kqMw76Mbx1I1mKA6aO2fuIXLAEDXYlcf/Wn5I10xARqoafJCGtQG3hCbcaG24FY0HucZQTFR2+tp+Fma9M+CzBL22yCc2qpqRqaS8nhqjDWX91+l/2NNmy1iaRMkTaRDOWm7hAwXsB3bQeTwF5ERpwnAj0UykzzSRkFHFTsYZCUa6Jjr6TJeeHLZN0mF+29pYF3t9dyEnmJaEUvosHxbijRLnvMXYPSVM5oJ+KPMA3+e7z7e+e+Mv8t2eN3FW31BTo1yKyCtf8lzjOk1XzYP5LAsTZWQ8wedtAPtq1SNmlliEqqcmTWJqLW5d/GKJKxsGtLrJpjay82vuhFVDQiAVIyCXZUXHgRDwJ0aFvdLqcEAjLQLVLQG7OzDcp9lZKEdbB7NEEkHPc4H4QFi11co+c3CmOrvO9WtX1CombnUd/byv3Fmrb+Oghbr0VISsZJ1oyBJyjkwGadH+IVQczNqOYrg/yObxfrO8tK+2zWfryU2t0x6Uk0Q8oHHfqTVjl7Ce0Ev94wqZhJlPSLRK1qy9oL4F+v4fOB7J9fPoIoVa0ROXm/1+61FseYyyi4/IcIdt/EIFxvyx7ChSkYES2UDUDTXceufRBoRELXHRsDhvKAX1+/AvcKl1Gknv4ep7YDuRRZgWfH6/WXWvdh90WoirZ6HZrIYWNAaQX2aBcE+b8MZqyfZIIdqCclKH1U3Zny2J8GEFLSfVdSfP4AgMUiVbxMbBis6CKfCeWlD77H+Qn2+HJKNlsKxl2qyqGYjikGCOevXiyg4AxMn5MearZr6D8Ub496KYVtbdloFVbB94pWh3QkJ7woKOJGHrHpGd98dudlE2z1OsWwrC9XtmCQBUoLbMUmvpMukQm5AF+NOWkRh9AdoevC9xTgPqRzqolg75Jj8H9Zh/T9CZHypsmwfISMTwd6uwxP7EHmAfO/dGURnoWWdUzq3mrchva9luSwVsxufAMjIgNRJUmxLHQJm1PwJnVIsecZX4bk0PHsMHmNNkjjglFlZRAwr7K41eRfu6ESCROrig2sCIdu0g3Z6pEkeXtzfMRdbYOssUlL2N8SgKTpAmzohkKOB0YrglNZFqUi65vFjzNQE0vqVHIe9VmMre1QDM9OulL1kfgfdZM211RF1BwFDR/XGhicBDqjmmmy4napk5W5S8G6MHGLEZVOZNDc5Z5I6tNeO9j0CiQNZpzwqACFw4IS+TYGYUh4rqyGSDPwbUVAqiGgW5IPlPAOJGq7dSzHBHVHPj0jNGljC0jSKH9rOqpa3C9QY5TkEQBUgA2rKEE/Fdd3O1UGJDJqtq2rMZuFfzYn8RNYh6pVienyF5ILpfzHFjJVe3O3n+ouqu924C3/PEOR3TZgE1C1F+mDbL0C/LQOPACRtfTsWa67VlqXOMIHiOVoKytKI3S9DjXPHgVi47X8TMn2XXRmdiYlAOLa8WpKOfqPKuIKXSbBvUt7vzo2DbdnEMmFHdKIsEYbSGO9Jc5M0VYBsphQAInwBWD2Y5s+3noMF4SdNzfY8n1G89qefT8e7qlHfkzuJdi2Lt6HAplqbsjHgohWxzGTxppVMvCgou4KdQXM59PJF3JfnaFczL2Qh8DhSiJNohPu/s24YEqIMJ1PBYG1UwqRu8ZshL0aIIJ8ZF9fT6atTg16YvyQolPLGzL1y47I7bl2mPXNmzuXqubqJd2D6Is6HCiR6mn92C+juRzx0gzfWcL7AQCHoo6/cXWpJ/xwu2Y87X9+1mioubY8/AQb6a/4EnHeTjoDdq5sqZ8IEUMx2PdTq5NFX7yt9kKUG9Zt/nyhCW/z0Q46Jtnay/y+qd3V/7FHPQzFnqzdSu2gIwSx3veKZRDdn1mRi14sA9tZhrfGNuxfIHj+VWRk1RjovNRnBFNdtHtxmaaFWjZEYi9FOxCFMhlHWxle5X7HSLVwHe3UgZpkbZdcUqOG9xlSYqH4XgX58QzH6uosAAP0eIZ7zP/CCI2hsEJQ+5K0pn5Vmd0pBJ1qTQY75eYT5LJ6Y1ak95lLritbiTB5xVCrTQL/7lecbUgGd9BrtnAWjLtFa2d4GxFXpt/7soNIyYm4t5+552wSToRBmqKLqM9735ndfTSCalqp4wA73iVfMyQWWjqHQHoq4anpAVjkHai0TM9bztYoEfcTb0nCca5U1mg4jjTkTtuoIOApQgErrrWYaEY4wIxI8i1U3AUfHF6za3TLAW4O8NBJ4/VDV6OecpyjjBWNyDQgjhfpiTO/QHEfT49Ke8/np9wYp89/yUS5JxIT1lDpzMdkTEP0uicA/KrvBK27Mh2Fhi2oC6Bonp9/HqW4/ADMQkGAVWzVMY1edEtIaYw8bsiwDQhbxXt0Dxa/hJvkzWXa2HVWDaU+IZoWobrIwZJD/cP82NKe7eaPl5pcOaxFZdNBcvGxkUJQP5wZx6Cdjb3IxclmIMSbJmQaCJI+uDyqwt9jYK9Zt/wydjvJ+EHNkZK/u/Y8REuWAuN88iHAp0vRmypNeznDjQRsu+8dFLcZ8Ue8ZvkUF32yt+5c+izA80vqAf/Htu1bdoilI3xuaHCWeU4SLzxVLqIS8ZzbQ3vbU4kKbDlPxewE25ECqDPKC+JE0DaJS/mc7Pvx/VR2uz5jCub67uRmgegtjiDgKNZmjyF0f3SpSz0UO22LX8LlCpfqv+vkjdu8rynINLN9a9Ms8X4mfptJ8NOW7mKjqTccaAoSCepqtDK5WBICQCmJVxHFa3r+mNEAizP710gy2yCQ3CdWm46/BPw8cpc9ijxcq2Go9pnDSgloqyuQCkSpBqNs+TM7ezU/zbw3swWCnoOc6p7uqNCrSWGI378cbVzc4yjigwG2pYqGzr9AlNA0WjKKbk7fBQVdSRXi8N9Jm6ewOSO1jCO06ey06QzxkNIJ0tJovZBkUO7vOhzI06RoD/q4HKXFG9sTcVVjyeEb116JDVzNZJmgJnWP7IMJWjECmRwpBU2QhXFwtDQtXxgTp8vZ0+6/iCQZ2Uhgj+/aXwYTkettoE6L1BA1lFnCq6Tp31OHKjeKbOCbBBz4YKPfke/P8fafRVNRtDVMAWxpKwt7y0WY1k8VWC63DofMKVSjwcHNflkkBi7Ktp7tXg0rlWcW3CylB+WPsSyGC47yjj9HTRmU21ch1obfzs9ZdmbIlvn8a+Kg2kueXzd5/VwJwtmnyI0HV3cIH6tWdwWiEHu85CBXY3rj+HfbiDOlm/nKfmRpa5Ar3T0/j63XKzBNZv6g4P57Xe7l88N5KdaiKq8uSkWXPDwLti5jq/wecYxcLj3y6eEkSejyYdQYd6ZQOjAm4OEMh/dO7gVKSv70t5wICAkJDhuyk3kdoEExuF+GacTCs/TFHIa+RxQe5B2obuwQPbJw79s2304NZxnzRnaCRcMkNhghOOBqfUfXJSRv841TDkTqXr8dUfrj4dm5DnHKeS3t+937Gw/ul6mpsEX9aAbwEQ/vMWIP0tqr+Oqg3I4EsTSvMPqbAGPJxDMcjeQfT2A4g29zxGE2Dvh3xnQMkF0uHwolD8wg03cJoDVRiaMNY1jfEaUF/SQB6cICbwYXN2Bvd/2vtZfgJhaoEkCX/mSS7CdrSFhbiiUyXBp3ZB/I+3oPNRk+kDGKfgyNsDThcmgPDwT8kNL4r5d1B7FSQEpuiNJoR0TwG4BuEyCV1IK2DmT8J9vgj+c466iBGcNwaUu6G3tD8SKoLwtC3GH1Q0GrmYSyHlj63QU3SVfEBw6ZesAJcF0woLLSV/DPB4bacrCFVlU2hIPOTM/qB4SIJQ3Vx93W4UfwIXPdgIz3emEfPGkwmHiltXY2XAHYHZpOLCnq7dKFzsOevn4s0XpRpmNU/+Icbju3eIUtHR4Ql4Nx1w9zW02ChkIis+fHpg3pH/3cUfcLvy/uf6cELpn72eu6HqGlS6X+GGsuq5q68JwHs8zyS7rCPmBx1u0J47Fe6l1ddRBUDmUy0Qdc86j6bUTd7GkvWl9c5a/D8yqCkLUsxL9Sk+z+d8a22WYrnFO7EnSbGTp5R52jlXgc1bsvaw9dsghfnM0CBnAMxyIIR2cI5UzKOCnMBs+ga0XwKbkR8nhc8lGexe6m/LUBKENy2uGgmU/We+/aLRN6C2Fvu5VAbeIdSguX9dRd7oKyIOrDZacSoeN/hC+i8xuUhVJ2V0ENT5ZBhNv4u6BzRqd9tomTcFkb5O60dBWaQvVX5ADlL11HNhkutO8/jnH2X9PGWWope1ook/RU+7/nDxLn2dxuqgLGKW9/tQaTONdoF91dNAiKWr+zuu8hv8RrfwcuJoC8IeuaOGpdTrxwXHhZP91HOImFF0mcwdrZBwA8k0kJ7kpeJFkeVz5a5zKdE7A4s7AhiUFMb+tNVna54Oh0ton7VmN2veaE6ekHw6dGOV9qs6fUHXQ1XaKLp+y8ZmEDsOPwaRvkyr64AXmKV9fn3HHdu3GbJV9IiMfNMSinKAa1okc/leJo1/RuAf//C7OfEgKBMgsYKjdnWjKNXOu8TXVt3MiOY/cFYf1rTmyaf/h5VO/2I6cH9x69GzNeOQYZgr8wAXhL5vPDI+8Ysz9y4nrb8N7TnJYgr+hcwjuZca0rM63+AptwC+J33zrlP/UUL/AjYF+xAaf/TJl4+4OI14F4VKJiIBsnedlVOo3CsZF+9TCssNe0ihdBei1NDwfsvoTKBlxlOwqWPTc/3m45K9ajJ0sg1Xw1b0AHES+mPLswCBt0Dgsyl6PAxTDIhy6UkRxDr4sYUHFB9jng5UV4mj9vTkuRmO2x2fio9k1xSIyhU2a1XfRhCuxpeIJOmkqPZR+LXKfe0e87ho3yN+a00xq1p2dRcooMoxgQRUASwD00fdFfPZJX47AuF6qgd69+KjFzLFZkNEb03xBuMVUwNF1YllvaZFdKie7OkfSOEm0xG7pKHcmnc1vTYp8oG6qebHpjKB/eN9uz7/V2XFB/emzniGgsGMPJMQ5ukEgmocqt1jvm3+UDtpjrb21KSp0c1zy4DzsfI+nzq6NxRLbuPEUE6IAI8GXQKMsC8KcYAhLxaHKPDB2plgURLcoRfI90utOUwm24o43/GrIVT5oB4FnI8teD+NwSQhBB8S2+djolFjxzbxNkWBwviZEdf1N3BfvFe/HWTOqCs6r/gyk1avQMMeWrjvaw1yozGmt6WfqQPx/fWvtYm9F9XbaM2Ke7tmeORxDEZdZCiWqs99BoHP8whfPMwq5xi6NieG31c9y/7ETAb4hpVSzb4OocyDwyCyWi1HraJALg/IhD5wOPS7xw6ZyItrnhtt8YIovD9gVnVgLQTkH39YwIXjegDtGO3kl7Lm+PwH6yQSzE/1ZAWuiVA77Vlffxk6P4bGXvrk5PMLr0ezFpyHpvmBScH5Yznt7qZrJdeyB3jDGyyb5j0278UZnmBqcx9rjxbwQHkl9j9wuh1KSqlnQGsa6daLZDr1CRFDqfH2JvajVWzxF80t11LDLKYAB1EEh8XnkCwBUCb87/jGysx/6nKRXHTeFy4tBxg9JKkk5BD7N96CaePN/Hckn7c0B8jbmSwUTB+Nhyf4/vqpxsemMxtiY4maPldTIfpCdy/2fHtFepr4Ylcf9lxbxVyIcbAwsnfwwYoesCkMatFahCaQA4aUJ2CqdCVM6CZY7aHZcQl7mSceeAs6nkneTfsOTA2h0luV2pcjnzfnID+LROzujlCkOVBVmomxqk1NAa/0e0NXgBQBJm28N2KuLpROWz0dwTBAoH0/IM5KWWoD5dId8HIvqq4SR9hs+V8CvQyfPXzOIMDYJkursMdwu2Wfr/QQBD1DpBeI5tisHa3PnHpv3wJzFn0SSVaWCMEmWN2pQh803rtijhh4iOftQil8wGVWQBsNOHrYfW18MRL/WRvVTXzrBqPjueAYtJ28FH1SIVnwN71tTdVSbT94cqksKD54LpM4aIEALQg5EZ2o2puwWrxOs+aPkP5rZ6xEGyzAbMmmkN3yc33Dk4t/GoKyQMo/4BB3hQgMfatOp+j3RS9fiXPoI1aHOVQ5C6J5a0uBTX7+hFmimgiY9jLyxD25raDkYyTm6eBnM7zkYMOtuHaFoq2tA2xw5+8JGj+lq+MV2cYSfRWc/3VeTqoXSxy3J2jKruN571pCCTQ5K5CUZE4jO3exhR9DoldzLzXg07GHUCw79ds5mUmlEX545Mr4uYyPc2SYd3IPi0UB1r2fTB3/w58nH/bqzM/u/Q4ix5nX+X+F6+Dmi7/3vyhQP/1yc28DaNMU/Is7F1atPX1vJ30jm0OqQnQQ3PqYbqz4aZZDvTlOP3laJI/h9ZuOx35c4Fte2lz+5rSiFJ+ohKIQmH/QRXF3+PbM6DFRHvPkv7wzDYevJ6GxxsOzf4FaMO1NlyOzk9ILBAQ/hkQ1fd/eSLm42/xKDl2/nYkGwA06M/XBozc8s15MPWj0E48X8ufmzzzjiX/bACQfQxuePpuorttVDdUSxxAY7Nj09JkPRcv8RjBW3VEjtg0B8Faz4v3zEvXKG3749lphiXLtiyLm+gzRB0zmBJO7E2G9VDylrF+r2Iw+RfLqYeZZco7tt5ejFZPcpJT3TkD1Orq845P3fqrKv7Favhu80uyyYwXKFTf9jHvrEf4LYmW+T190+ot7t+/JNq86+95Plfnjq7R/tGndqbRuRtxbX1xHliQbmidM5xkyJdEyrnSmMtpEPBrVK2+5KWadWnCmcPhbtxT4yIm+l46mFc3tSBUZ661d9pXlUpnHff3QHOqrWNRGEo9GT9Armj33v79/dXDrNUKxmtSpeaim3+Rx/QAmCz5YMvlygP0HAmczkLVpmyy5TGQbs7HUXejClmWs5ESG9CUNVh4qKGlz2mcnLGxhDw88D3mHhqiin+ZzfdUfgn+1HPtHHVJ89OXvH8gdkXmwOD7e+4la6Snt9Z2gBGMmR9Q79HNSJWJuZwpk7WeWsgcT7afJZ9r7qFcXe1KujpR1Tm2Y3WyJxNcKQiG3t8HTVar0r5CIdqNTmopTfVMnRWOygRkzVp4Ld9TohZHSvM+aB9Pe6N0UkgdI7JrW5kmtE8+mJbartP5Ur7r+WlO1+MNSXuL39MKXuUGpsayTjs8MuYnFHSxQPPmcdx9dfgJ3/0TgXCa9RyRfR0fSBo6SE1XDfVDfSscBA7052akTuvGArtAoN8WgmCM7WjNX8Bv44Zilgb5BLJo20VT1DpG2Qu/VVMKz1OglX2DySBMqXByYPEyBmAL9IqUf2afUOeKzw4lhx6hA4yss1PiikwZjZIrl6yVF+nYs9imN5Fgs9tWj8/CoxyRhTXD5WRTSyLpbH71kBDn7WbOZnvqISSrCiR6ZcpQaBR348Ch6erwh/lOJ8rfoxIqrorjlb+WfYvr4aRT1sb3WbuzIR3l7Nm704kXCGbW2O5J7gnWquL2mMpT0EiITTvS37tH41Va9Qj7jiTj6QBA3fff2Tb5Ln1fLL39uLBTNGTvCqmT9lRuYtgEm4kIv2rgF5Oxn72P3rgJhjePnxmQPNHgwaN2ma0f+I1xM0F8+jfBvjj8B3dpV97r19ZO8W9Op5aE/yAZQaBjDw5TxPZBzhrxPvlpHWydZqvSKA9n2yf9OmDD9BWpsj42qyyGsNtGA42tr3ISvZ3lTYdBPttDcldeJgYWNo4BCxjoSRXOafXy2rMecnYW8luag+ZitbNZLh0JnbnIzR8yCLJahptDswB0T3htuLbRpnHEO7zN7XJjCUYubMGbMQmkkXWxEOdS3b59HPC6V6twN9Aas4cX1d+RY706VWkOPhTvV/I/GG+Jfxfd5/TnoAM2StOonxePM7oKKqnCxzqt6/4VrPrm12MeYWWoMdRikhmjs8fgJekWrB8R8Uhe22gfva89/dU9nlwTNIbvcI1U7XPMeGhN9P6iVvnhP9ARRUVMmbQ32grmpUnJuc4qEI7w0JLP4VzF9fK9CFcHH6Bq1CvnzubchSWYvb4WZZ1n0h0xa4POefL7ZRsM4P4S61jL/qrj/6bFt8B1ZPu8r4mSEjQu5Bio4voUronNSnn2EXj0aVGgfh/hauBMeCT+17W8rwselQgNdzOTiMDR4RK2+l19wtUehWeVhAWpbflWdghbEno4XhzzuL2X2UcpYEV/Ws6d1jDN2MZFfEWqgKvgXDfmD57EraUlZ2fl3ZtqyM89l0ZBM0RZY0YiRBq+e+nFuyYJqboz0z42G+qFmV52ht2YVnPjFvzbzRpba03m89x6Yn7FHi4XvkapIlmhzoPmZnjlwOu+VjP1oXw5idXF9pBOPpuAlDM7iIfTxjzt2kbLIXx5//k8OXf8Kk+/FjdKZnbvvLjRXTFs86RcZIPLwAAtxgV/xdGbVnoddiubNWwwH0ybr9x//57rJOCrNjYPQ3M+G8d3c7HbBdEIOsWt3Y+vydr8QCfq+Itqml+jLqCNq+vAQj+/Hjzegze9uWr2mU57czSYCH145AYrCINH3BtvZQggMH0xGsBsQumF/yxvidn40dfp7oagIhPsrXxxwhIZRBHGBq2JInMVRg+XSEzc5pjTHzbT5+vi0UI3pJfUDAa162u/ou6Nc2lUWjXGcSf8Zodx5lZ2GE4/cF9WDgy2C+5Plu0V+G4Lhqtl7GnE6Yxf+xpu4ejfPX451uCpw64D2rCVh+PvnA25jgc0SqIg8BT21KTPs4sGLhP6K8lXJSo/2vjpaVCkrRqWUY/lKH6nhAYvKTr7fo6nc8583QWafwjhwnIwZtss3/VCR/d/d7Zts/pDT9WV4qQT198rYZEf7d1ISo8wWU67+DS1VaYs9QiDml/TuWBEwp+HvwRrBj9+oF9G5rW8X5biljUsCS6h+exgITN75ZRBdwj8mpMMTQtqPHvx9Pgd5/hcNXBu/5IbLx0sbCPZJdBYJjQD4M8h/9F3fymoFZ49T8yEG+a052aUiJN8eBAOTdm71hcXcWjnlzLv32rtLEUxLie3Ay7oPfPsDbx+z4rnt26N52cEaQT72xi4r5wHWs1s+2m9Db/cgaa80NYW2xyX1oUm53TKlGQIl/SnbK/4lWQjG+qzzlj/DmJ8KT66tke+XAsr3+eLXVPw7Fq+coXdZ+RofJ57LFWdHO+8s9AScUkSIMNDHrhQGQj0+hSPA16+sk8k1X82zVbVLLtYaqfwPWKBvsnnuJ+28w2ljpzeJff+80bP/g8djOmA+5iof9vwZ52Ys3fSvdf+M+q0N2MH/II8B3s2jPMlh+qoDCuGrclW5euZRdxpVYxaQVxO/L6TR3qDAT0Pw+7ZeR2irofHPqJjFHmVKdeD0qC4mN0WLHKZYLKieNsQcRaaoao+0MFid727pv597QE8u7afSs2IGuXiqqHAHFDE7phOLpkmoD0u8rK0u1O/fULjiL//yF59vHUzkve6wx0zXh/AKbQW+mW6caripL9Zo4FJcEx3cIvtiVFou9jswD/6w4WtFlYNiYcCDN/7Pu0T5fzKgudHuEptbJ/doX7x/XR4SgdNkJcZyi2VKzLPa8E9SYHGZtcpQAG9SdtNNVEELL2LTVhY6rKG0s93ZWU2E7JcmC5uZUgekuktyhVfVn/nP/dOFoJJsY6wnGWn+RWKg0Vv+2aRFxPSKT1+MmZ09IGy28RnTPhzm9OacrEuEisMyiU9ttzU0o7MZB1Wd5LitsqTNifnTLHnpVq5i+4f50xRVDrD6FhPRiz4y1HNXNffMzKgf4cn5qYA4WpnBg03vP7uleDE/xNXFjcZmv5zqbosVNfW/eThdtbas0+XKQcAiyP637190t73POl+8AVSS2UgO/DwdicNe4aLC2e5jqvmm008UlUUUCx/kXNEEeN9oiqMNv1m0dfkPpUNfppPXGHUqv28zXOArUoVMtsLK5jWnJSUuDFjN2kSEuLPIqGi1qeBAZMkYcFMbynIPEbJ5ipVBg07vS8wDQG7qf0VXYmlJWcUlU+IVprVVqrLk8vpJrTM95aNcK78uKI5W0rmw6bvVW4sXc0M8bUKkpYBuNDA5l355xlTy9SkN4nT59uklmb5y/+cPHYl9JzjA/XszjH/bfi7vl4dvdf5GPLYs/kSkV2jo0ZxGARgftSTFBr/FYu6uPWm/yBD9R1BQiRD5+ZDa+bM73tECjQZrlX3qdGGuw8zztsyIXOiHbXIGMoGwttPJmbSbFRyQeyXaYnBha6Qi+vZgocIZLTHIg/5oI7vAgMHs8Agf+ZMBP2LRe0QbMFhqLdeLk8Zk0mN77sgs+kcE4SujbJNNf5gbi33WiFXsF/xL5HsGRGHg/5/igUmjfO/ZD44EXIb607tleq6cLR+C7a8TybkktcmSdX0skCwpbFdjKUFBe0dRv7jFcfJIR8kQPt6xFx+Uo8s3CxJFXmnijgQuJd+9u4yZmEdF9CDwjlKhCwdtPhb8BBEmYGqD7EQAQk/qEuyNUzr6l0j9OUzhPLQpekA0GagfvKkKL/4sETU2BIMqY7Xe0hrU8Z6OWMnk2Z/Y1+n5XEsL/PAxv6yw2T7ZOI83BLyMArKrvbXKVmOrIofCZ//0ENFwz4XodHkCGzmJS/IDqQ4gGDUmeWpNcV2DsLAoYwYHdTjKrAbMatQZ/NHNmoJokSFkshVX9q357B1iZ8BqtiRqiMpFPylotak4gWtGmZv7rNKgLw8T1bZwsT5o0Fl8qXlAHmXuu7rD8/nmFmOEqLD7mMh/CPwIoTbIjgclrXvE+sAaYycGguoKO2NgbPzwuFTr0+t1wcolmzkh1fm1RRt4WzeZsSCniKTBhIU4WSDBnpfuvjAmpv8/xhW8PE4XtXEH1ZCOTnbngV2vqGdK+ai927yMcWMKvqe/c1BB/ANKHO2PEHEZfN4Fzvl8jx68/qpmlkiIzZ8wZ3JFP4ekKUhDMdSK1opF88HO1ix2bs4mNjdFZkX5XCJx0+CbY4u/Gz/mIuJeZ42UWJfK5z/I3OzWKAKk5Rx8aR2xf8SsMx6IpXyGYu9YyC6FZQ00HUVfx12g4QeV7Pcv340+OI10Mm4A6o5uAcHHPSRO+VIc7LBQvLTE0SSmvKNd21r55RpE/Hi+UvNnUKAtT7omG2mJk3UiwL04KCBehR8/frOfm8TlW2bnKfPJt/NMsnpHpTPeuXmSMd6M76mDnKvtxlK5Qj5yMXWzlSuoEPOfY3HufRvyBn9TmGpLfFIPfR1qDDl8qfN5kXCbQTpdyPnyzGcbG+MTirAJfHjzrKSppE21cSwlmEkm+Fh7xAln4VcHGS0TFVOfL1nQyn4lhyH+b176s/ZXiG+OLPnK708N9+7Sxqxq8ZZWNVg0rU8+qMgbz77+PeuPJOUaDNGyFzz6XJorn6Cz4jxOEmQ55dPe5MmIM/LX0Z+NAdSo4NVeZsh4b1KfCym+bLGHuJQ5m9iK8p6BQhJKvHG5pQHZp4zD8+rznQ1Kc8zKP0Wr23E3eTP0nJvhcsA+WVPYJhjrM0Q9dOYEgvyJ0EfCYXQHqaOmOVe6YLf1GpXUhvXAQ60mibphVg78XTRU73CRjSWNcnPQUmBNtmPu/MVZoyd4rfn9OfndKXKZFLsjl2ESCSaTN2HzoHfme6l9ve97fzKUPBU/q6ZU0eW+9S/2tNf9/cVJ16cEn9CDOXnN+XnJfC699HMcdWbt/QvLe/eEKMULXcNX4p0h6roNPeUosjEpv5rHgcp+TpsczuHNAT/VNv8FeiR3RCJ3TOcj0si7RX1HBBKjpL9RhIFgVBiigLxU+keyhf7ttm0Lluqft6cu//bcLmwCuGWpxJRqqggobfm0qY+zCQmlTH/tHOLQIe85eDZ6Mr2VxIkpmjMg53fUV57sfPRvBjXj34deV6M70R4IAdx+JlYe4rfXjG1dxFHVaE5uUWN54ijKgxiNMUEkJAVOWZnQm8x+/CAgz0inxbfE0d4+AniTdKF8rHzvBHaNt/fYwRNF8KkcGA2o/IIcyBbRRIZLYTB0e9v5TIELKFv4KQYy2ASyNLTryratvyoxaYRMkKf6XxqjwkVV/St+SxEQzNJo92s09nJLC+I6IgTXSYZ10kuj8QM/41dyqlX/3brt6iwvEI74Vs5wmRscfi7XUW5uZWCVLypg5JP/eB80/koqhdG5uf7ZT7fl+edPwaXg5v7Tgvfpx48LjjM+efRk7X722DfWlFBYX3j0+Im+Yyof461v3pL1C4X91mP8o2/9p0LhwaVNGQqPQuZVKuQ+T1CucMtlPoVC5nOHwN1P635mwu0X9kPnO/SMsB2spsdf8hfpt5+eF39m2DwBnfsN9E13PzuYOaqofliyg/7huNsz2T9WGKxceGHS6+sPxHP9k2d66E/ot/AdJQ+rFbE5OfSBuoqFVf62rahhZJ8vtLRtRysEOv4W/PVo1xUmfJRG+QKiZN6ZnkTX18FlGSn9iHhB+oxH1jVMEQa76VLxTVh0ucp5+90ACWc6SSxzoxeIW/qZnDe7+oYzhyjETybW+ylw6Q6U0HuN8YqV6Cs8B2Rve2oBsiyhWdDMtvP0xyefPn3qChuuXJBduGx++aLs4hUonsa7wwMx2bvvHj6c9M7HUB3+5JOkXYc3jcCTjZAQBCAwEB0kOv8AIgH8pC+dSjF8t9eWOKjz/fr0asWfPh2B9CAu4dYh4ad+ybl3PxPyLn5H0i/+UnxoPKjm/fr3nfwV+Kd9X7x7lAcOveWJ59SwNOgOqcT3oOe/lUmC5dJSmUQmDpZlQmWGIz+wwJtth2JfoRjfLYf8tQ15mpJSNjV1iZKxEQyodXxUVVe2Sm5OCqX3xsvP4OiBEfYI6OWLMMJKSfiY3BCjUGKGG8eiOCsJn57elZBEcPOf2dGGi3DQZEnrNJa5ol4cxi04qR0XZlewInN101vF3V8Fx0cUYbC9wAdWLLDij09Cpfv5Y0nVhlz6WqJMNVVfkTzCHjn6oNsPvdmYaCUhzDl2I2agUA1R/jFOmLBy6dP/SkQ483HP7ETzOBFqkreEml6Ricm3AMA2nx2uJHNF+UhJ11eLu2HPekoQre0I+FcssDpaSlBYU1lq5XOykclAHxPOKzazRz46+qDrgRY+J4Kb9+xHrUNpw0TDOsqHD1/V6GIYujLzomHfao91d32ysld5wfygtQ2EYWRtmHCUIdD/0TmhMv+FL5Jqlgga7DgfWGCltI0Jd63+mJnyGfYIObLX1Q0w/ti+0FEDSjHEvtDzcG/uQPN97PmjeWABB7MfveRxw73QnsbQo3/9C8iA9lz1OkNy7lY2trKqqRHWy28YTiiLFMgdWXJybuRSPjeqDlWFlyQ9/ehF+mj5K5xmNjoP1rfGu9QHL3OvKuhk5PaXH0x6Gl7nE19eFl97umZZc/vr3VgnEFSKzmD9fQJClytrkB6LYTdTFps32LvkTsLU545opd8VCG2KmV7fTgHjCSl54st7T+QwVXToAQP+q6VoiG/Ciuyc8t/xxmxqKif7QR5teP9MSIjnhOp1OGhpZJTpFG4V7SHDeaSMXtxcVFQ66WWBLfT5VC0WSdkLFKHR38zzv2hmMOq3LG+llST91PSy1w+XBYYqmCHG3HBQwPp+Oy17Zyp88xyT8QhhfMvg+FtHOE8llKKzv176PQmpY2Owk8mdCPBzb0U//WpMz0FoDCZLowarLnN0pqeZ4N5THl7LhM++Ue25LzJPeQpvie2hlbHO7Hv2pDzrnJYXkzsEkfCDniABj0UQFqeHQSx3yDiUBlz9L+ir8AA5mc87erZkgAXvZsG5DEpxx+TVWSRFfhEiM2LBRO+4y5qvNBTWlc2uPtiBCue4IrWmpFMfMOqUvuiCTPj2/i4UnTuwGZPYVlqlP7JQEHryB0xkwtqwtjXhWhiW80OlQszKVxgtKcC+lZ/cuK6/P70xmUgPS6wxlNdroeFE0sbAOrl10fS/zUWVL2fJqyMeRvAe842nmLGCKllnu6eU7ck90VLSbhRpCLzAraU9sTQU6lhinS+gqQHdlG9vV5boYrvd3rHEOp9de3YRM1Qfnt47pi4/rPMQswzbUmV9rBneZ8tNaa/auW+7exE5xcuQUwnzsBYipnpYYgperMly2xtSqOpo3+dABhbLWY50TMb4A/oHWTtKIs4yyS9nk66sRX5nrPs/aUCUxxkHxdRPoBuoGIgpuPR0jT/FmDoKbfpXTBxKI6+vzxXfGOS5+RTBdghHOe6pfxmlwKPjT8onS3KQPGg7BdgEeQIRkuY6zS1QcZ69MPo5w89JdIACjV7YyVEVcE6nuxAmkWSssE3rBJmsAwBivtlQ5rRay7ANfRlGLx7nOPz5tyrRt58KkAN/ioR/HgJZTnVcORcsXZ0tz5bRfpP/BiBSV+suNbHoQA02+V4K++sija2vZbugeibzumEeWPEm35zU5z78PKN14jX/efFqzXuS4zlXNUd0269lX+xsfeO22LdlaQwHeWqhoab+3Z2J7djDNbGWzYueT6nfAFlOiGxYqRqWSYdVyuEKxj6RaC+DuVck2gc2pvi+i2kwvTvnp7t2pdJ2Sf4vo9yf7p2oBbHPmVYmmB9NbFRyubd4xAOtpyAKfRuNNptGm/TgtcMSHaaQysqMDi1o3W/KYyL/sNn/IkwNmJLBDH/0PZuTiXCwEgZnxfcGzPUktPIjKkeZdWoH2gFmzQi0QmDVzWN/dd0m3r52ZdSRQV3Vkl8A1pyxBpiSRenYGiXaganbtywD6oy5I6o4o/7FyKcO/LdfEeB469UH9+71gpwzLxYRbk/mA1VpiKO2/lM7n4K8MyMdrTzVHz5eLxHubZRMhAlbhtvA3Lf++MvK8IzJ1L8VVT74sqMuVFZWWgRZTi+cr8Nmn1nBufvXTyIoc+OSHrMqD1jo975buO4BZEuI2cwEG94v1JxFuOu4uRet/e9/7uOzJzWO0PcpCrRgdjozdI525jdA23+jHRD2H/z+95qpbzDTfrq5I+CffANkLht/fHfblo35e7+X7u5bvvVPgNcAHACQiZzARaB8gYBc6mTMuSvmuOhd+sUB1a7gkDWENacYeOCImpcjzZM7pemR6uJfkN7l3CRjjrNG9LMB6CKuWcBN8vhB+C6nbYg53xlzfN7qX1B5QHQuKTGgqgYCg1E1V6qdQlHt7P1qR0eH9b7Y1xzaXA/FgNGDZfSYNHrsN3ocyD28e93SdXeXPq+AsaRJiMVBmAee4QWfnixIfVp7l3yyjIlnxaTbYorTrHKYhoYFFnb0IqNxqi9S11ATuiua6J7a8E2SSQBrhiRA0rtkC3NMflkhvtaz1glW+hIyRySjAeTZ8wvd9SzPa9jZioJDMmcozTrPbZIx8d4x6dkxy7TKhb36MPzQV6+7owndjCac83rtLhxG+4h4EQBNmp2VLQwyIwlkkYoC38ujbstoJ7rPSXPcnDAnzWnztfnGfGu+c86cF2DpbDyJeMe3HHEiuYW+CGfN4OlI0Tbl5GZEnn8OJd5HUHdx2Z5fntjMJc0kMO2K2cRzsflswMMIi+ffit794kGIOZ1Y1uNo4Pwv1VgJgLDyB5Ze4v8awotR6cCh6MAKLU994ZSPAESMGaeDx9vtBx1e0lGq7ezzQzsP5vOpvyo+REnvffnJP0HFNADgOUOZt0zhDRCAb+qeNQ2AnT/eTma9GXnZXIt54ctWcMmf4JSeQkvRd1rOOp3ubZH5ynNnl2qRvD27aLt70EMnEuGh3QgsGl9HHYdywuxa2zWepRY3u59nSvy+CU2IxbytSWb3KENXHPb+gLKppfR16kRdaTmP+V/lij7V+5V7pZ4QTLQEmDKB8XHh2Fe5XLlWqXCU0mmlIPpgbwlbddmRFnsdcgliBrVUp/VN7yd+IA7u+MnYMChrKgBT5yrPksirVO3lXmlrm+n3okSQFaDdV3sIuUrFR0TaJi93alwjaAWjvUhqHMqNxdxnV7yogNdxa9XzFufwJpl65uGDmd8VGzqtmCaSKecxRbGPjkTLMVzI5y5xsZtoGmRHmzvMYrfMjd43uyE7Se6n4kHzpk/LFjZnm0uSt1W0f6kT6KKzifQ07SjEtc/mvdgFdVwzHxXlFNX57s565ld/d5ENKBNKFl025lk5C7W+6z0crnCYQM8RmrQkNk+VWB/zy3mOMD1o0iMpK1805ngyhP91PphdAwggIFC+FG9A+QrALuy48hYsWrIsn7kRFhKGS6yL7liZ6WzLntwqihJaGktXmVLmlCVlZQ/0j8oI51Wh1bxqcBu3c/t2aJ/vq31bW9ZR9cx69/NXk1NTcdPz74H38Hv0Pfn+0axtrm5+9fvkm2su3P9c33rj0OaxzVNVSFWoetWuPr9RVAV6JPqg3pX+evO/N7fdfPHmcJZir84/vPXLW5tv7b7Vm13MEeOZG0yXWVZ+cvs/t7feObJ9vzvbfaa+v368fr5+vX7/zs/vBt5Z3rL2rdZa9YmX90/3Lff23OuvLtf14NDOg8GRgaEJa+QR5IlhedgBX2JnkBvJO8h/UEyU3VQJdSMNofXTjkJpUBjaDV2G/qNz6EZ6E/1Z+mH6RZgJe+Cl8AH4S/g8giIzkQ3IN4w8hpUxj3GI8T7jU8Y3jO8ZvzH+ZVxgXGfcZTxmQkwRM8CcyxxhnmReZlFYQdZs1nLWO6zfWDfYeWwbu529hv0J+zr7LvsJB+VQOGKOmxPkVHLqOQOcnZxT3Gwu5d1UXfXnvtMP+q/Gl/jUU28JRZo1VVM1R3uYpsrn1E38a3wW38KP8Wv4k/mz+Av5S/lr+J8KMgRJwXrBWVSMqlEzWoT60ShajTahXehKdCO6C92F/oT+hD65qRMGL/bZIrbIK9oveih2ixeIl4nXi58Wvys+JP5A/IX4vPiBJEcikBRIgpJmySzJIslOySHJr5LTklvSTGm+FJbypPzkaqUFUqe0TFonnSpdIX1Oulf6ufSc9JoMkdlkEVk7KsZgIEAWeAAAqmC5iEjnUocc651PD1B2f78i98giQZR5ZkhqylXsFONvbjUcj82AXiW/yL5rjuPLxa4WzrX+ahxHCd8oi3x/8q80btfA+j4YnVcope96+H6LmUZMHmuWnWxp0hQ2PX+RtGpF8thubAvDrKzI6Nv3mJT9xo2L+UZYk0+Bs6slm4CXL5vJ+lACD5TZV8AmaXgCaeB5ePh2lFNBoHN040PZSGBrqRDaf9GhcEyzTWSfYAZAFfhKyY9w0EEgCk7lheCLv3rCye5s5sKK0n+wiae1tJo4/FcjFj9ylP8UVHbx0nIZCe9RLTYD+b1wlHZ+MErDKAv4inv0A6q1dZIeWVVGcgIpnomt0tVYfvMMULmZL1jHm5luo93U7BChmSQmNd/N3v/CbcQR/A0Y+vEnAJVz6shzdzQZp1bTyD16fyLNRzF7qVBbmSccL34Q1pVmvsd5AR7mW9zxFq5EUaE0U8EyAj/inp4hP+F+ALkkfRiubbhvdoig0XKfTDqOjYYvMvckpU358Xz9ZNfz7NiRhBVRk5zxkRSqt/99NI9c4zD6ZNOIs3zRD/BXGUGJLayr27IFzCrrGoraFCYq2Dxs6Zwz9GBafbIDvt2e2S37vou5WqP9CicPImqe7jJqsUUL9d5/UyAvmpgMWwCcrSWwG5phaxiYASWkYcS1brsuDNerxQrNcw7uFK184/j+sjNkpyvlqi9GprXgbkVRNS0YmpqSil1RQ7vFZ2nkxXNgiBKw7I/H8ojdnrfxza2HW9vEdo8J5q37kSnNFz1wCfZLTSDzDitYecTIWehAoudkghEOoN1KAC6WXGiiXKZndzsV3zFWdeT/XvrVxYGSdRR+3XGOPhCJuJ2UHh7qoSB3eKTTFyD+Yke0JwpuxBXMt7bN6NJYDlYa55Cg/1hyJXwIJg3VGxjuq6qZy6dbWyzmrRDYQEIJRfp3B8DQOri55hdX/dlnb3wtj2Cj13plx3Pn51uZZKlTlCor0BseZrNOi4LpqRcVhfBotD5y26dXimIMeArnDOWbzPCUel4UB5APNeRddPkYgNDLRwnTGut9iJPLD8WQVD61Q4FdoLjlh7a4JHXu9lFWl2ZXFCqtNPzWasoUAdLB5diVO+UXqZAOKyoqNKpIz0MgIpBJbjCV4a6pqDEROPv7j88v2XtxrE7TkDAVOQv1TCr14fD7j572SHdp5fENYR6+R39vPv/6S8zydgGjsgz2cnw7aBzcSr0xKAhrFzrSMlbhGRx50VoMPG3J6lpcjcoilSq1erqoMhLu1OGVZyPfD6JRJ5XKNXqNDLAGBymPXvzlLDmTQvZ90ozj20b2lj71vUtXX7+C147PAhbKW59Dx/DhmH/6xmIYPaXrf9ftsYbeB3NVa2rZVKAq6zYuY2JDDtxHIRgV5EG1/rrazsnFdZ4Uc62HEiyzymotrzLQktjktsazj5U7vzjerpXkqEwmRKkT15vD6xpqijTcRw2jPPajR4OWLMnAaum4KpYsomEF7tcvRjDkaX8bMHWwFz2xa3OcsjzF92cjeaLbEXMpA0e8lIJCMXWwgEyTKbyN/EUlFmtZ6RM56Xl3xKHcl9olt2UNg7sIIpnt2FRzSNHJZgEG3R1GkGjYwHDMRCxdeZVjMMOECyyOKOJ9PJ9pxs3NMmKyZzpFLiCTguMwpzuA7y56M4eTwGClonsmz5CL4Kae4HieY9n1Cer8dBObRyJByvQ4Fu6FEE0uPQAbrsuASUTP9mYHiG7nA02T1yGp2fV0IFEoKPnf6VcznO2c3bu9PD873H32SddR1mNy6NKGO+E44JgboQ17Kc3PB7A1UHbNKDWaqo6EaMBjU8YNGEq6b5db3uMYlNNEJecHhvRerWA9IS4kt0dE+MV0ThIBLPeQ6uAYw/nL1nP6yPNSOelxwciWhBnX0QJesSmqdlkGQosu5PCEKefSMGqAF0IseyboX0CwI501T7r4jb29atIgW0dIheLQ16z77fHrgmrQT1d3QjTUu+Yfffv783nUNa5wLtTdJBW7crR8k4a3d5s93v3Gj9hffEFOztwla5bDbbiODRE5nK44sIZkPmZNdoS+XJZjiet0EAWyDE3HVEA7Vs0jv/UZFdla4gsjk+br3Rd//ZruyNI7H75WZEPOOW4D/1dF6fVSMV11OK7kZ/23++rTgSjUrnB9f7/d2m82ypNKvd5odNjdRV7gHBw0evCfr8kECoVCkOHxGgoeA6P45Y+ujAOAxd2Bpkxp7dYu2zmJkHH5YqVMVtgw464Aa2xYe6+3wcvQuBkVlWrJ83a2D3aP8nm/fXzyV24YesnEtKJc/Oq15yNVaUvKK6Bnwxon/cDHOWgm1jJKfnKzBXrezpdQTZ7AAstbpmfUN6pVBMsM70M9liw5Q4tofjYN9RrOjN198OD5fmWR2jPBTKaTBuUKvEPpD8ZsGq49q4uqq7M0TTqLi1VaU6ENwhOSDQeazCMIwLDaZegVa8hQSXsLP7Iya6+w7vLyZhke2KdMGOa1FdxQAvKpaaFINCH5yXgjytVk9fy99V6ftouRakWGmuZ7WVCk4n5LOvuD29dgiAcYH1e/mYc8UbMBkiGdGefg6V3/60uXveotUT7uvmDokKjde37/ya/sCzrEtWdrEpDM/uz5URnZ7uHNIn9/bz2AH19qCpeWZRpY+KvSeAAgDb2kJV0J7UXXy1ePQBc32QQ2WeunK5N1ICewyCQxijhr9oZcpeq9VnTWnhC0yS4xSx7KOLChIl/bviwLYt8sfPaWUt3Mnx0d6ykFTHRfoZC9ddY699SlzMDOZMe6PtKTzpVtj/RD7RSqSg8ximYJBY1sdQLbcw6lPXZbvhvcxlvhM+VytjGZvDhLXMoXGyfbf3VfseqEXCw+FJ15g17PT2Szw1byI4nCeAJff1ahxqz2X1jnLhfny9V6yx99MlSphvaN5gNIaz1cI0ewfr949lplTaZNmCoi0IJpKMHNNDBrgntI/bKFIkZuQDnbrWWSoeWo+DpQ1iym6aFkmcXzp72sOF5v37ARxbR3Do3yXk6SYu09XKox+brUy9QMeAhRRaqmzePf/v0H2QUCVU05rPcLYe00Yn9fnCOAc2BrVfyLAJlqqoigCF05MX60kusLWJx3wtmJm0gnYijrqsK1yIoJN50BDidEKMXwGj8BB3TYd1spPq7hjen+zreIe5rexRLp8UpgkNj3VYwDxYmyqi81k/iu9oXa042rKz9mQQnR5bnwRJJwDRncWe8//Its2Y5lUDmT8LRM5M4lzpDp4YD/SYT0ohDW9P1f//vHHVFEKQkD1CrD/7nip3otPBbNKCG2xOBve6s0bJ4MktUZCHdEbOfy0GbDXz3lBHhYx1LbDHhTaW+fsLuInZ55Ekx7XVxYu7U59iWKA8MZ83/PVy0gRLxDuAffQDHMbPpGSjYrY18QJVk3tO7yDelqRTkxCvMU+CV4W1tqPF8iHb4WKKSZeSqXUFwcbSuvQb46thj5cDBv02K1xYpL8rwZ9xbLDQ5kLwhstkWpEB0g0AWWOVA6veAE20wmZJf7ew0vAb2keabLicmd4+5erxFqxBjF5JAdywFrRcokeIYG84J03c7/UFJ0F1SL7V52ZZFgv18HfZSpNNK9IJPRaj6N5bPY1ZL90oPNzi5Nbce0LTf7r59IQ8cJDd8GEV0bK0eMMI6QMc02js7Jnz9wVMtcKWpGkknJmw1Q46Rx5JDsIiOGgq3ZUvIiQLogZCipcENea4sJi+LTLUPhMzgWnmeLDDZirM2qA8VMWN0jUkWRWpCtleFpED4diMeGwKLYd/AIScAQWWm5XG2ZWi6f+DvFwvKxPRQwYAUznUUGODPCOUfoOjh+EEH+Ug1l2atV7v52r5+PkaNyFbgXfdYWPKzMpXwFvGetJbQX5Yh5yfOsQD45+bfl9v7Mpkd23w7IUHIJcqoZh9UXFZdnsEMPeVQGn27Xb9iBUAj8y9ODZOcEjuwNUMX/Ry9H1/nuV3+X9L+XieIGqkY8aytvS6cl/fpygMMwfeugBMdsVypexORTrmLX32HMxGVfknUMK/UTISy0JdRJniA5m41cJZ70vZYQEjfQN+aZrYLyYj0RQLb3u9nwjFvuMhumBHUDSl2PNcOZ3QWeoPzOPFB5z++f/CgCUPHy9RJq0sJZecnCgF+igJhAOias7fiRj5Ny8E8+MjOkSk7O7Zke/UYaXTHufc9gnbCzyTo/m08GxtEVBI70ZKbUOagOJNuoWOUXhqFLAlEoMgX08T6xyveq5unnDU2fIDIMlenEK+zcG5RZFgJI6NTl+j7rzfWvXe3ZWQdLyIfK6v3n04emmcS6T3m+nI18zeWdQZQ4e+Nxf3LDKPJh3aLYihFp+HYBAmP2bQAIXpaqmwuToBB22JNJUAjWnPBQp/v3SWYDhFJYuKbkHg2RgcJImGMlDZfCcrYxcUfWGJktj6DXWmsbUjdI4glLRqGjv/qYB4nBjQd3ZJpsye89/KlXbN7SK/tD3BKZtANhGKEiQqSiB1d2stkNpBB6hxJaGIKHE4Bh4pgTVlCRmI5aT9OTSQmp5oCQvneZs3EvU7UlGI3X49ESzs/e0m2LdC6vjnM1BeRYbugVMxleuRFJARt9ulPf5HvkBmg49Mn5YHyuWLlME55j22pVZJi0rzCVwiuafLZEc6t9hE/VzPGHOxk0Wmaj+zCVQhdb9zjrt/Ng3crsFAtnH6CIGn3eOfFydGfN6EQ7rtb6N6uXn/zzaEIq9xmaD4zIXpIE3Q7uhhBEuMgvugGXFdHBT7HzTdKcZ/+LDCJ8+snbf7bjld+MADgZeoWQOWt/qt7EpNjMjUd5cQXvnwdQehCXFvVXWhrdoW11rxLAZZMeAIcNomwUwb4b9lKxlTmfUu/UBfSqTtXMo0YwjtDZYm1XvCCKA+jjNB9MdvR6VaDCvvL4dolpz+i4PUgSZy095KfPxEmQUdnBtAJm7BK5QYQQn0Z1z0Ubq4ijWlo5XhCqJGg3cCDlX15ygTXaPo5zyLTk3CGBfSZ23MMXOly21LXnGJj0Rq0ufcHXyV4u3+heM1fPqOn+em41NVgxidMcUJbnUeyKdGBEuwNisSHSl366FOWeq7BW1OsrE5IqQ0AabbPFw7n8EBzxqO+wTF0ihVxbQHDhm2JjYGt9TPt6auKWTz7Mysig6bvTsWzKcPBWtN4K946XiiCWKXpOEE4xyqNvYGs6sxJc1PRam9pxbaY5fPfHvfC+AYbY2/fZmKsvotiNDcu3mT4F4vcnhHUuHZ/59j4gpJG4e3/kO4uPmCvkwwsS5ysuTmgrn4bERBCObKgz77JtOeNqRdW/86nJVT2LI5DAU77vTLqWGgCdJ8RLep5xVai04hDwjNLTSSj/+9/OHq9wIwaEq6pguNftcsVmMdQ5xr+6Wsm1zgZ3oeknU4cF/PreZWf+qIyPq54qUbXcOSb0AeSMSJZTZV+5dj4p0O04Vv/eFiEGa//9b8dl39xI+XVjMt5B+GBYliE66CGoI1p7SVlh3L58Mh+/WxVZ9i0lTE+GVNvDuGbMevMq29BUx/GC4CfUwozTw5pM7AFI/H0wxrBfX1mgIkXgmfhvmpfljzDl95tuHSfKuXpWFgXh/2fCSYNK8lcZKG3G38NSTSjobSmePEHL0Dz9f6XijiPqpiY5m+R0Op7NA/36EfWbnTs5TMiIYdafT6pHAInHIfB/85ODQMUCNVv2UzBeetOWIb01qGalM2OpLiOJcMEalaz2EXOYXittnO9IU3HWDtTN2zoXl1A6wX7Zo0YHs1SZdCFpsDc1eCIYLGik3DBxHhD6h6r16bjmMoa96mbgIefZhlV6riKWsX0GPtMPTNMtFwdlDQYHhnhZpo7GXAiBO3CHF4PNUhFkhljv9Hnlqk9pWMTSfInE4HCFVENRxkOVIZ20mkQsKJtAvOmAC5exiNIRA8PgUvp/pa7AWjZ9cVEO6yXCovWNcxho08cqrKJQ9fdSn48z0g0UDleZ5J3ftnwahrVljU1pexhZktGmQixmkWGFWM3GRccx6aQaJpNzTATwN9/VVF6xXKe11EUs1Ba0vewrTRaC1GCv5P4dfv736s82+e/t1bc2e4C1RIDkprunnpqExbC3eQ6IdJYUyTYCHO5aE3Uj5LC4Z6vRmzsBTsQGCFcdryl4hYqfWfAi9KL6GhND/CJ/mV0o7QRlbXivdKPqB6fZaiGU/0vyO9P6Lw6FmnjRsQ03M5MiozYNqhm64hKPV7M+zfnvUgsClWl1Vq+/ASCtNybJw0h6Q84nWTSGPYfVwOlwxsvlI3MvtVGnUgNs0Xqp/8tzCu0VhDqQMsfO3JUTCA6L3QWc/tQ+pRaWOD13yZ9ZpoW+RXVs0EMhVGttRVgIgHvPfGDXj024mEzcq0Wc7e3GfFYm3YjOB5qLSDzlHEtx/oyUwmwtL9c93zU0VqXn/FV3r4/qm4Lcu9x8eFLjbO27omBpmQqwwR6z2SPAxYFPZykbP0XkqGtoGeWcg3qvuEK0TNeSFy9uUtOoeN79QKsNzoa2aqVYJdYZUU/Eqtf3r4IqKtc6YsHFPzG+fWlFaP70Zsrv1f1jBFtttrrXoiQmJfOtg6Evrb3HwHKbvGBNA1I7+JHR6wmOm56ItUzdu85AV42NuHd8dvf+7eU5L9r0fc9SmLBWK2ZVjXJ7fMqDo7loNnfLjpq2WrUh4vzJklo/c+TS+t4c6Lh5iRx2KD4qTv80KSIhTV+LaEi0PugANOK1pgjVapjEVhNmU3mNpkm7XUUnkehkskMGidUZsSkcm6GsKl/2dq13YkhaC7kdKxVNr9o4pClt2EfN3dpQO8jcOjPvVCKLQwRT/p7n+bf67QSG+nkBxsJAABExJCZyvZWPUJYJ7JLAmCDsBuvWJQejLcHCcQc8b4sVIzZudVS8rNViTTa1799vlWynUHTsrrRbrJxTsLoBswYBdxA1iTpGqOVmZ5ECvVwUIO3tW06hVvfLRT4Cg+eZpFHBgCDiMp98QWFlezqakmGoCDeJeDxoeOJY/ZoR9NzATdTVODh5b/dZDncTaFFj0Gw6g6w97wt/4JUFx6IYTsJ7Yb0bNw1OmlCFsDWFG03FLk8m6efpDT6J19Xgx3Ae9++6e2XCqFy9u5b0R4fjxEnxYiSTim1Nxf93v/XXMfO+zGyLrx/UukhpYf714d0qtQj8+sbdO1KI1Q7iJTFfOdWTycPeIw86VXQuMRgknm0ZGtgy/ys6Po0Wr3MFYYzHnGUat6dze51EN+p44Ps69iW5UFbKmMZ6oNBojzf8ADG5XIqiqTlyDPkWZeMgU8EyyFTR+5+Ay3SMtctIRUx3qOzmuiVPu6Z3SUk3eMVzhkbP6/93VtwkLMtj82y+RL1u0ptFTqzI1u1rCeYtHkGqP31gw4cm47H2GqKcDlMyTpY5xISAElqtnEoAE3Apu6t73XtTOIwIRnKZqZDzyWk3TekQ5amZwWq3ZExGmwCCwaWke0jEdUI3HmyE4itVGDXSVwBRO1N3ZBhaeEhb0aQr34yVQ3ggAK+lvDNvIdLOh+nlO5M//Lt/+o+OTNVA6RneIzJICNQdwHDlw64Sq/Tg/Bv7v1App8+kIwJD6Isxp3Ni9ZmgCnffySAHEe3YPUjDnNZ1vbbLQADffdmbiDuLtUBQ3hrqFJ4Y9092MtAf8cAYd7aSSiliuBycsJhQKhTOZ+sD3Wh84WLrB5VasqmF3E8niFLLRZlRINke56DRr59cPU9tyBXNjgoTxjnpOfFJM1H0DshEGaMqocGSTgygEFqk1VWDdYHZHEx2ynBoqm2ctcrgiE5co9AkLhq6OFNJwG8GF8pJgXQ+38Y2J0lf5vWTjrQpk/m4yg4ANbPzwFJnguQKuT3/IWe81ZUdzZyfENPKqi86joXxps3bLrZNCKe07p/sVw1KN7II0yJ8cUbO2ZpuGCG7KqqzKf4k9GoAgLa62lJlWRXR6zJ29mO3kilSFwXCmkpYikoTeYQUlubfooCuD4LAYC/lSXlpNuaRJ3zmDUGWypRRCDJ0KeNC1A+4kXNbSdpDM+DnG33fKxYKxdalVWQoI0sgVKvMS9PHSUjEMiy8MflMvtxqFEnYQySWRYC//OPJt75n/vnLl+++BphtFaEFoUqRI8uYmMm5UkNQqLpp55AYFsMmANcYTRPGu1REjq2fCy05xV8mksAe6o6lLY0gcCy+JpNSD/IItjLpIiQVhbD4AADs5vVm6f1vtY6R4jyp8w2kmWl4/qCEnNAbuUsq1oEqyUq3ihta9zTCOusXLIFDgvekC47ZIkpHzZXWxlhrtNUhYxs4MLTO5+JoQiOIZVIjTpy9wC84EIe9OAAp516pwFO4Nb8z6V09fvYaV6ZPAWWZdjIsNpsGNvcdYz2TqV3FtX5qCcaw0rVgoXEAC425X/2DH1aWA0buaEejo8t04mHd0Ep+LzbLlmUSUYgphzsUX5Dxcf2OZ8gg2qs5G8S0y9fukndprrF+W/CMDjprlOAn85DQ/eMcl/JQCF/0bFFKtjCv7FivTRXSXmgdx4PB2MjTbryVVmzrvIUgx+crljS+m1MTGIxeNG2VKfP+unO83BVboyLnLMmZFnWlcsPQcxUSh+abkYskqhaYaWYtNLmk3GrTOAp4AYJjqWda2uF40bQQGPDF6aASdA1iksZEc8gAAFgsfK0qg9cTHPHlWvryfbZeD8LMvo+/4X47u/T7PfvmB1k9VjcDzONGumZ6YwznfX2isvwPreKZ5I9kkxIuRQ9CX4JmwlbxFSxxAx6sFKSNDx8/dgjHhRdpUyb7eYUG08EaXNrMD4NN9TmjerRoxgB/wz+02Fatwaaw067L1aTNye64vyMIkqJhAU89GS2zj9vhaMdUVZmneNNVyPEA7bmlFrgLnYac9rBaPQEvgcqaWDo6w7EBaDYL2TGfqIIDPCCaFnDOXI21sYWoRcIhPUXODU8lT2lIe8ieiakSXhdT0SHHw4UJKFFn4wJsZzTT1tlby7pGff3fh5/52PfRXq1Cl7JE22YtbeF8U0igqGUa4cFsdCIkDhFLNHCkTk7RgCG8fQAKVJH96aEoMZPqnoo1kPX3G65Zq6HOXGY3pZIyq5pwcYGcX56M5nIiqoSjCAHryE5GB+acVOJJBMcrymhlpV5SBdzFOWYRkk3wK6Icr8CpzF5oj0iO1ri4rtmQt1hal8cjr+q+hGvygHzfmyi+tIy4dMTGiGbEiRH5iOGIwYVPrDcEnDRJKIYMNpd8z4yVzbgooq+n/199KSAxFmowozSmcdFIJ1AfOr2Lj9RCt/ICBJmWMpzJCQzH4GX0FcE9wQ214vYCvlYaqA+gatBGzFodutj6bIM1htEx/tUGId5Mpe5sE62um9NSm6eUii7VuNmFUK0nQjbceBTAxApmEjl+ubuAkFikIsnWXiHWGetsfa22IecCg+nQahohF3Mb/PfP6WZLvjfmCQENQybxKFC/amxnU5fFKCDUeK67Eb7Xk8qEAvVKcniuFD8GB5W1FootB2J4rLXeo5A7yUVHCJFaU1y0bwQfSvvUryeaGhlpTjbdEpDU+cU6L9tT1qSJo/CyLA7FaUKXsQ6VrwArVmkj2CJCcrTJB2EmsKYjWcI0QipsfJl/ElhbFGq8SjMMp2rD4ShDxXKXioAgvtKkvRo/b5NvJ5M7TdUL2oVQg7rcxcotMFbXdafJEoc/mRJvZJwwtJ4zTJO9sjPMm3lN8y3KWTrUskW3UiBAHRtzUyFcH6mZgL2LTA19bLYtM9aFIK1uAgBHCzY2RdIGiDQjWaUbWRQoVPHRSISOsuYiFuXDniKjGBfyfxmYBDBjpTH1WS0JNngjdfiat1a03Rd9ZiOz62h8ziXvf7ykZ3izCgNw/gULo/YQIPPfbICKa2Y9/nWE2cOiSw8BSE0iXF6GO2TabXiABfy+iS/UEycm/OR24aqKSn9GVV1J27JU2Yx8tda/EnjLXyXSsR+qLSfxlk1Qe9/vTpgRCbTFakIwLfg7BwB9yRqkUIfs745AnnvbPNcW8DGhLbk3HK3IAmeu24BPT8ZTHgvg6992jX1R8ZePvvj9sGvq8Obx29/4yww7+CiaXcl2bfmGeHGD2czE3k1mPOlWesUkwA4KZ1G5oWZuzSs2ZKFhjER2iD1mxmI72Yd4qxfpnzhWZCKOn63meClxTjLd5WsyXuCqUzfc2RHHXBLpkMXxNeJVLO3AEY+bkwEAtjMObRQ0n8ll67urym+uMk8iw5dNDnOSxJK9TEdzXOlZlu9ZnF2TcG/T4D6CYGuZEraZIE0YzV/wrSOTRiUlHpVRPG5iZ+LQQMyvFjAFjbQj3hZMA/DVbdIH7RvcUGNcnGiV8c39VX53MXBFM2UBuac2wiQVyJSkfTdYbn7wsj5SOxsWFi3X6umhFtFZbCK8L5sXWQZkMe+zyV4cqZyBq5GcraCrdBPSsc4y1F1WQbMqlDEHJgOShY3gkhBVjaYbJRbHdJDt1b+e44zWiZFiE9RxPaIZIu13FRgZClNLpFIBcpmzlauBnrXrbSBpAz0Y6nfDt5BiCFUT7iGxbFwNdp22xwF0FaIqZP9brdbXfpkAXZ4JSeDpEwABwPjEs7EvPnhCzVZaidODOrqYC3G/Eem1V8V2nWifuk/cOwlkrALYcudM2fbwFYF9eVjznvTRM1T/L7uJqNEaMsw9tfGDy5OfzRJrlxs20nQ7JoCIR52/u/r77wCQxx97/j5aUFZX4aGyCkA+lZxCoRayWqkUHG+nXiB7PhdpODSM4rySWjBfQJ6aq2QqxFCkwlgYcuFuqwVg+QDFyjIikzQtR5kblGfFBi4ORPH6X1GcJ2wTNVknEtGBTBXktFOAPsUfUM9YTeEs8CcrOF8UEQENaDb+HScg5VvmJGsaEjaUd1DSc9zkcD4k7Yj8iDxxqvun+1UnQ+7MXQkRXvOzvVsWZnzE133E63o+fWcrzwgCk4caTqUzK7ezAL0TnUJL+4Usv5Zv0PehuMptr9FVC3ohkEXvYMDNnZ7c3p7Iqz1PptGyomWvV59OwjCR6npw7+X7P89cBWo5VbMKnl7ZNr/SsWrwqgpb/93W8JSVvtPggbSlfYAcdKPi7gzMmBGuUHPjvp5c7HO48KPDh2jxchFVjYNjUmxmiY1OfO2NbclQ1rECFez6hL6Xs2ZQm5TBWQbnMkU12g9/0QtYgtKepOB9LWlfJPWlJr1LtxZgufDReqisGRok4s3QDUsuN9sP5HFO6NC2yFBQWu2W09ikQqZWylGEkpv2lp/YggIUgwO43Q6e9IqeXC0PswngdsF2q+vF0/XygIZVXhnvUaht7qoy+uVjBeGWObHZkyrICNMovcn2XVDLYmOcPI8SC8DAig/qG5+c/+gfli1kPtl+9Owozie2r5kK2eDexXNrI4OuriIc/lOnbj1huSqtzyHMBbf/PtUP7iC5ncVb4wFyzAwd9+ENmXvKfs0bVllHqRmZ5Hep5EuqQFZcomsswkQUe3oulQNKqkDlvWOlgtTftjR/Kyoo8y9k5zJ+Nu/D0teK9WZ3kJm5t0ZZtQGXT5359J0fL/z5v9+l49CrFpuKE831hlxJiCGJpxDZXWVmHrMIFyt59L0k1nAHrglBM5r12CoYynD4MfSNhPrBXm5OBoXA/9lV+IllnEP5j8eEgsd/nfkTcAx+8+zHY2npj0OyC7ym6G1lAacpd+gQfUCpRWO1h1Jll+YW0m8vqWzarVpGRmO3wtaR7RgHwmt9xJBCzWkk19FJ+lhaiFhSFI+hRxJuQg9AwTv3Tj4q/JuYXzMiJ1ewCyxHmz05f1GPtjwQLE/2y1bzOOCRJHUPIANp9WJHC+Oyp5gK+33MJQ31A6o7XeQf0s9NKb/0UHhYRr49eNjc714cefF6XdVNMwp7cf8R8l1b16VVSzifLY8xj/5NxJxo7jlwA9R5kUHvwBj6bUbdddBFXXbrPNoAwQDhjOEJ3ufymIhqDRlJ4ODk8DucAqlYwVZaRBji0FofgSVmXksb7sWfwp8XWak13Hg6m/Z1opAXTOTX2YHMcUHEfOJBvt3/THwagI/dOmcmSor284YG/xIy0ZevC8WkGnHtYv1CwY/mufCOH59+Wh602OPLX+szj4aOTyB21UCfV+owbBeuP23EMZJJE2rgrTroO7YT3LFXnLr+ZC/f1bAXu1+n/RtVK6jRwj95AedtZCVbUJhcSTMr8VH4TizHJKZYun42ztXEheWYM2T1pvPpeLYs4MhmBAfrjbavA+5nb7QXYwP60BmKX/y0cWV7OshynDyV/QSXmMjz5FrJokEKZvT4no8wS24n4ykZLkQu/Z/1PSmt1hEXtaFoegttfrD7rV/QHcogdJAgNJzEAPTjgePHqzvleKxguKbwahKpmMOcIlqDlfElNtvDxZZPje3WD8hrBjZ708sGRs8BV0kzfP/KZfw4L7IZ6Fm2QrXVHV6a/cuRH5907KJg/YgAVRkRaRQIMfet5DK9twY5Qpifn03bT3HBU1b1jpAf8jpwaOw0j04OHiDYqK0e87t1QtdCDHRIw5nvT6qWI2LsMdgU+JwltTAfRG08nztKkqSMRUHdKR1S37Y1IpayXBB4zV9pXGpjZG5zVmKJ+FMm/rf7la98by2uupIyP7NgEz0Ul8oFX3thpRbuvsBW7soitSI0S7XEMAMHdDVUq4N5V/6NsC34mJ0qOUCFCywOQDKON6uE1IdNCvY/Y2Gjd3mLN9jQfjVaNav5yxJZoi5SSrKzDWz4nFLGsFdC+OV2+I2q+GR9Pw3LrBy8eFa4b5G6AexFWMwr+9t5tlrauUawVCuD++JmSiEyq3IejhJkhqkUzjjBG0c0DBgaNw+phony73Zdzs3k9qBMEQ4Vl8uE6Uiq5UOkszKkd+AXaDiWKnYvHnnYxJrQguRa10/Am/c1kWprpHiveFgmC59bL0cXoARcgFbqcy1yqi1MhnQ0+pOBlEjAi9TFpKWUZR/6gCimgj0zNydOAU4Iof0VfbGiqEGw0o3o21ARpgLhlzcHyrDlT2xVkaFpcpJbHC1wTGXcI4pVlre/XoUIivo3jx6tSrvlsfFcDfsu6k1ZrF4WoMpfBUILjqoyG0vmRR7wK4NQBI3Ks/Mou0Zk6OdeD/jWmKxlwiA02hE4lkOaVUTf1BIhHN9Lsxceqw7VOwBQtab9dSQQSgxNybnNeK5UxEUznBYTqCAxqJdBDa/wJCpQkd8wE+eIDHoeWhf6G6cPeEAucO0Bx/NkFugdY+oDlfnWoqCnpb1uzawOTLa1u+a3Kxci2Z6d/Bnnvt3QlPumm96WiwbZ5kiManWviDRG6wGon3zynwgcys1Eqv6UU/5MH2vgcAiXoP+C75zqBLowsoOwECP0anoF6Xj++I3v55w37kvNHmkgPvzWTD+hoK04nbUUMCkAZ1VU0JCxLqSQslXTibZr6HExxUkG4zaiCjisRU1HlVasvH924xKU5d2qAFeboWbSVH5vsYA3qvjOqqJ3q8CUvyXQ6PinRIWuxTIio+D0vrx8JKwMlTMOJjiG7ihdOVaYXLHDLkp0qEWfCVxn126j4fwbbW6D4zqchWyzaPulaYG/FmLwj3zhRHhcuw1MkGw5uTctAI+Ko6MfuuHMN7gRcZjJhZsjmQBy1hgSxIFIHbgtx7VonVbfWjDw1nkulQuB/cDHpPvxgKAq2mpw2wjpNAyyS6FJ5ehG3WRJzK+Wt4+0dl0vYoAkri3YizkIDSqkNU14GhHUTGKBth1LuUaUKrO360DYghFPEzArggAeNvjqUbuqaDrJzTbpKRdG4FugKIxbxb6Yx0uaU9d2NG/a6mZk58sKM5Gsrxxc3upYEQCzLSZsfFbGtB9WqLbLpFyIvgArBNVAphJLzDT1vIMTTdaDB6lal6YQ89ZwRU2ch4ouBlVMgMFytsoRCCqvBfffpAbg64TR378NJ8pkZdu0Gl8liZ2XDdpjXrx6cOPA5uBlj1HavfmaCWRZp1Rwho9E3mxOfugLC6NzGHjU5u0KVFRnY7lJG5kSkpKWMPWTrui3XhDiHqx4e0WK5nnzmsYj7PVFNjFtV6t1jK0VWmgfmV4IKmbuHZALmik3B4fT/aPDBXK5eHu4Lg36IJe1vbAW7zRdOKHXETUYEXUEowcMUHT3FbRywgm37Jk0zv5RYmqDw6NY3p9c7vhJ3kSRBM3UL8iYFQ1/wkGU5PutDl7wysJAOhrpSRNMsZ7VDTGe11MzudpOUu2hRLVg1JQLfMFGR2AkjkrjtdSR3+BpUx+cX3B2LK1f30sWxyfLtEIYoRR5XjfjyxeiO3FEn+dL/PKP+fOaArvt2Ge44/K3cilE2RqJWLwaw0rh7fi5ZSXhBQ5H6Dzw12c1KYmttkJEw7zVLhbgARCUpwC8okDMfCu6If530zNFr2scvw+4Y2cMAcD9p/Y9CDyG9YlnGGiGAQT4DbClaxyW8NIFIddfi2NG0fNqUz64K7nkvNtq1v2MS7JdZf2Z00oua8595Ndc+4wyCZoNcx6+PAdEjACxJq90euyKvLOM4rv2u4/WHS6+MQs5zOcOtMoj8lhL+LSStIeI7w7XlA83el9tw25MPk5yfMy1I+Iq5TEZ1fXB/TshxV12CQ3iUGtd6BWGRRKVjVbkLrxYkKIuO+6lNhoveuwYrT0BXzX+5jKCHCIYLcEm4aMyZ6/Y5Kd4BHBoEEHtQZnJPqdI8zW3huInD2mcl01F8iA3wwBKi6/nReZ41HWaOtTcMkk0PsVdWmkZPXULvpUvaG4XOmAZo8EW2bg0lP9bXnKZe36gbwrn1LHPLfY5wyKrONnDtmQwZCtxqeCctyTN5pZC6jymqpCuYpy8oqk991wjqZ6+9hzyDYtQQJV46gSSpBAz/EjSRRl37FSTp5fIqgH4dNER8nreRyc59Av63ufkjZKQ+0g6BIUrbGj0c4KAAC8V5yeKfE8eKgTmiOhc4dZODmmgQqMyGrpGdhyIG0XRymhU5gmfIygLeY6sWGME1ZGPYPg+huzh6oW0eObLc8Kw6RPChfRZ83Qqr3wJuGbgKYp7qCoU1RxwbShl06g7TNwINskxLP9xdBRrnmzNwsOyJo3lUbrhYfE9R51VXj3Mr2/yVI2ZAe0oMqo4jiCuHYw0f0Mxujj24NO0gCc4YbZuSndbRhlCU0CXd9S93F4yeAIjgdFAP6ADGJxzB0tu/JH0jDG8qul6R1jY9NF27ix3GJPNMbs5C/Qz8fdx8bBkRM2WcRwIRXGMYoldKIYRayCrtRsbGBEcqmkA0VXOSTui6Id2DLPstOP8W2MncajWTiYq006wy+0HYHLOYQ+CANpiNgfF+hA2qt5sx4GdATsJqNFhJwM3ZXYC6JFjp4BbtHYquHpsp4GH/7PTQW/IbgRewu0McCawGwMD/UiYQAf2Uq1SriphGqRjhVL5YvkcblUkGkvVCeyqV1NI8UVs+euXVL5yFAvSokGdXP75EqpQ4M+2K5ygUO/oUjcXxRVcUo0qnVx8pFhjMbduROk7pzxdk9ra8nqdXKpYiYY7vDTW8GCfWC9fnVJLbsg2O/XfNirYqVanmL0YwSJbT9+wnGywurBv7mpVFBzZ0XPgtMunwBoUqe6vnJ6CJQrl2Y5WGVsL4QDV1NOqbmBMQQ2ODBS8yRWOsRM5dpBcrUyh/JiIn8bhs+rR9ChoJ+Gu30eKlZrCjfKI5S+GiL38UGyz+k7cxaPNb3+xJtutregoNMcKg2X1AaxpYUQUgucD7cnRIVbZ2+RUe1mVA5jrzyq/E8/bfCwBupwPBj/K84l8n5phQaOApQe0Cp1zwU+sWLOhCw4X/eySy2zZsQ8JHDgqoveLK4pdtcERn3GywpkLVwZufjWnxDx3Hjx5+dO6kBHRtFy+nL5MlUqzgvpNDvFQqJoR/u1QK0y4CJF+06BJczKhMVkQlWyIFhMixIrTIl6rdh3a7NXp3xKsSpQk2aj1UnTp0atbqjTpMnxOXKCB2jrPT9aPAY3B4vAEXSKps15E+w373eZvqJ+8gkwB/yaWLp3xV7XcfofL4wuEIrFEKpMr/r6XRw0Mjf7KF2nW/hFsYWllbWPYJwrw1B13UbBIyXyMZD+Vfc4YZozA5cMIQ5Yc3nyx4+9z/+HvrO8d9YVjvvSRQ077GhkdHgHhDZ8Bp1Ai2KCtmP7yt8MUlOQ2yXUANUKiLMojEMEIRTgiEaVGM2LIuDET+mW7zy+xiEciklERlVEV1VETtVEXqaiPhmiMpmiOFpNuWjAlwKIbfk9etEV7dERndEV39ERv9EV/TIo/ddBcGQkqEHE6169WmI1PuplnSD2TXmh69+t2+DhIdgPP66UDYsnv+0KA08oDoFlOqnvuKqh1Wod9NVu1Gz2gwhtLi9f2G6QZO1L3ri1X+63mmF1PexM0vjxYgCLsRBZyA23IxTxoW7Pjae+ttAImMMizm2GAJv1ZuYS1nRAMpdLyTRiZDkCxzYoUKuKDMWiJQ8WgXRFAwDrHBJN8lLbIDAhgXRGxjsgcEdkWRCAisK6EFkQQBOb6AGQGIIiACGSOQCCQbQkEEWgJBPIeu+i1Ml3Nurjzx9I8Sk9B5ggEgDQiRAQCgcwJBFfbaRMtsbVfITbvumdhQy09uUnlbrIuxihSd5mSHE3sL5c74KcxMatSuj1kb1clggPIXE2/mrmaziUTvtLgejNtXh/P0XJA6nw22pCRsc4HC3Piejc7vZdVJwPP6s7ID35h6OpGuHesb4WZP8pSahUrLdMs8THkiTLR5WWwiXeRvmA7bWmeg5/KUjN3/3IhqGVrh5WwiFwwRdx8HNu1Es0rNryZtHua+dzpbWm3Wc5KOcuziv80WbXmiVKPnfLgv7x6T58FAA=="}},"time_used":96,"timings":{"blocked":21,"dns":0,"connect":0,"send":0,"wait":25,"receive":50,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.google.com/images/cleardot.gif","fqdn":"www.google.com","domain":"google.com","tld":"com"},"ip":{"addr":"142.251.151.119","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://digital-assettrade.com/","date":"2026-07-27T10:27:13.965Z","timestamp":1785148033965,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.google.com","organization":""},"issuer":{"commonName":"WR2","organization":"Google Trust Services"},"validity":{"start":"Mon, 29 Jun 2026 08:37:25 GMT","end":"Mon, 21 Sep 2026 08:37:24 GMT"},"fingerprint":{"sha1":"D9:DA:81:30:78:3E:9C:6B:5F:9D:18:52:0E:BE:6D:52:2F:FB:33:E0","sha256":"EA:E2:2D:87:EC:9C:D6:51:9D:59:E4:13:35:3B:97:14:E3:DA:58:2D:1C:69:19:41:54:94:25:C3:94:17:F3:0C"}}},"request":{"raw":"GET /images/cleardot.gif HTTP/1.1\r\nHost: www.google.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-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://digital-assettrade.com/\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=6, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccept-ranges: bytes\r\ncontent-type: image/gif\r\ncross-origin-resource-policy: cross-origin\r\ncross-origin-opener-policy-report-only: same-origin; report-to=\"static-on-bigtable\"\r\nreport-to: {\"group\":\"static-on-bigtable\",\"max_age\":2592000,\"endpoints\":[{\"url\":\"https://csp.withgoogle.com/csp/report-to/static-on-bigtable\"}]}\r\ncontent-length: 43\r\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\npragma: no-cache\r\nexpires: Fri, 01 Jan 1990 00:00:00 GMT\r\ncache-control: no-cache, no-store, must-revalidate\r\nlast-modified: Tue, 22 Oct 2019 18:30:00 GMT\r\nx-content-type-options: nosniff\r\nserver: sffe\r\nx-xss-protection: 0\r\nalt-svc: h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":null,"data":{"size":43,"size_decoded":717,"mime_type":"image/gif","magic":"GIF image data, version 89a, 1 x 1","md5":"fc94fb0c3ed8a8f909dbc7630a0987ff","sha1":"56d45f8a17f5078a20af9962c992ca4678450765","sha256":"2dfe28cbdb83f01c940de6a88ab86200154fd772d568035ac568664e52068363","sha512":"c87bf81fd70cf6434ca3a6c05ad6e9bd3f1d96f77dddad8d45ee043b126b2cb07a5cf23b4137b9d8462cd8a9adf2b463ab6de2b38c93db72d2d511ca60e3b57e","ssdeep":"","tlshash":"cb900003cac8c022c2a2c0300a0c03002bbaa8300228030ec0bc30fcec2a3a38c02000","first_seen":"2023-04-05T02:54:04Z","last_seen":"2026-07-27T13:00:41.358571Z","times_seen":80647,"resource_available":true,"data":"R0lGODlhAQABAID/AMDAwAAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw=="}},"time_used":46,"timings":{"blocked":-1,"dns":2,"connect":26,"send":0,"wait":18,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/30699.1386dfaa78e6e5f6c87c.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:13.922Z","timestamp":1785148033922,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/30699.1386dfaa78e6e5f6c87c.js HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:13 GMT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a61b1a8-67c0\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Thu, 23 Jul 2026 06:16:08 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/23/2026 10:17:28\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: e93046e22cd876b549ff5858355af2db\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":26560,"size_decoded":11050,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (3072)","md5":"4a29e78f7139204a8e4159e22b4457d8","sha1":"c9a58310328ae1ad0d2e0fcca742938bc1a98b9b","sha256":"6f44e98c09d8a5d97d1a874f53c5b793b1a574f733d209dad573911990ed412c","sha512":"6e07063f10462d08f62ed60257251c3083cbcf72fb69a4621dab4b090fe83d73e91ba23664e96011a1171b08aa2cd94984dbb7095b4d752d2da0f749f195715f","ssdeep":"384:DuiNnqiEZQep9G6Q+4DygstN2KZZL3Rj41wA1ggfJYXQWbyvItjIVnZKbVtO:DjheJQ+4DwN2YYpiXXuejQyo","tlshash":"3ec286c9b6d1f0a552a36561803f214bf13a3a65349ed090d722e5e0bcb95ae8137f3e","first_seen":"2026-07-23T14:00:31.735168Z","last_seen":"2026-07-27T12:52:15.437995Z","times_seen":114,"resource_available":true,"data":"InVzZSBzdHJpY3QiOyhzZWxmLndlYnBhY2tDaHVua3RyYWRpbmd2aWV3PXNlbGYud2VicGFja0NodW5rdHJhZGluZ3ZpZXd8fFtdKS5wdXNoKFtbMzA2OTldLHsxMzA2OTkodCxlLHIpe3IuZChlLHtjb25maWd1cmVTdG9yZTooKT0+QSxjcmVhdGVBY3Rpb246KCk9Pl8sY3JlYXRlQXN5bmNUaHVuazooKT0+VCxjcmVhdGVEcmFmdFNhZmVTZWxlY3RvcjooKT0+dyxjcmVhdGVTbGljZTooKT0+eCxpc0FueU9mOigpPT5xLGlzRnVsZmlsbGVkOigpPT5VLGlzUGVuZGluZzooKT0+Syxpc1JlamVjdGVkOigpPT5MfSk7dmFyIG49cigzMjcyMzkpLG89cigzNjQzNTApLGk9cig3ODc3MjQpO2lmKCEvXigxOTUwOHw5NDgxOSkkLy50ZXN0KHIuaikpdmFyIHU9cig5NTM3NDkpO3ZhciBmLGE9KGY9ZnVuY3Rpb24odCxlKXtyZXR1cm4gZj1PYmplY3Quc2V0UHJvdG90eXBlT2Z8fHtfX3Byb3RvX186W119aW5zdGFuY2VvZiBBcnJheSYmZnVuY3Rpb24odCxlKXt0Ll9fcHJvdG9fXz1lfXx8ZnVuY3Rpb24odCxlKXtmb3IodmFyIHIgaW4gZSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSxyKSYmKHRbcl09ZVtyXSl9LGYodCxlKX0sZnVuY3Rpb24odCxlKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgZSYmbnVsbCE9PWUpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2xhc3MgZXh0ZW5kcyB2YWx1ZSAiK1N0cmluZyhlKSsiIGlzIG5vdCBhIGNvbnN0cnVjdG9yIG9yIG51bGwiKTtmdW5jdGlvbiByKCl7dGhpcy5jb25zdHJ1Y3Rvcj10fWYodCxlKSx0LnByb3RvdHlwZT1udWxsPT09ZT9PYmplY3QuY3JlYXRlKGUpOihyLnByb3RvdHlwZT1lLnByb3RvdHlwZSxuZXcgcil9KSxjPWZ1bmN0aW9uKHQsZSl7dmFyIHIsbixvLGksdT17bGFiZWw6MCxzZW50OmZ1bmN0aW9uKCl7aWYoMSZvWzBdKXRocm93IG9bMV07cmV0dXJuIG9bMV19LHRyeXM6W10sb3BzOltdfTtyZXR1cm4gaT17bmV4dDpmKDApLHRocm93OmYoMSkscmV0dXJuOmYoMil9LCJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJihpW1N5bWJvbC5pdGVyYXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pLGk7ZnVuY3Rpb24gZihpKXtyZXR1cm4gZnVuY3Rpb24oZil7cmV0dXJuIGZ1bmN0aW9uKGkpe2lmKHIpdGhyb3cgbmV3IFR5cGVFcnJvcigiR2VuZXJhdG9yIGlzIGFscmVhZHkgZXhlY3V0aW5nLiIpO2Zvcig7dTspdHJ5e2lmKHI9MSxuJiYobz0yJmlbMF0/bi5yZXR1cm46aVswXT9uLnRocm93fHwoKG89bi5yZXR1cm4pJiZvLmNhbGwobiksMCk6bi5uZXh0KSYmIShvPW8uY2FsbChuLGlbMV0pKS5kb25lKXJldHVybiBvO3N3aXRjaChuPTAsbyYmKGk9WzImaVswXSxvLnZhbHVlXSksaVswXSl7Y2FzZSAwOmNhc2UgMTpvPWk7YnJlYWs7Y2FzZSA0OnJldHVybiB1LmxhYmVsKysse3ZhbHVlOmlbMV0sZG9uZTohMX07Y2FzZSA1OnUubGFiZWwrKyxuPWlbMV0saT1bMF07Y29udGludWU7Y2FzZSA3Omk9dS5vcHMucG9wKCksdS50cnlzLnBvcCgpO2NvbnRpbnVlO2RlZmF1bHQ6aWYoIShvPXUudHJ5cywobz1vLmxlbmd0aD4wJiZvW28ubGVuZ3RoLTFdKXx8NiE9PWlbMF0mJjIhPT1pWzBdKSl7dT0wO2NvbnRpbnVlfWlmKDM9PT1pWzBdJiYoIW98fGlbMV0+b1swXSYmaVsxXTxvWzNdKSl7dS5sYWJlbD1pWzFdO2JyZWFrfWlmKDY9PT1pWzBdJiZ1LmxhYmVsPG9bMV0pe3UubGFiZWw9b1sxXSxvPWk7YnJlYWt9aWYobyYmdS5sYWJlbDxvWzJdKXt1LmxhYmVsPW9bMl0sdS5vcHMucHVzaChpKTticmVha31vWzJdJiZ1Lm9wcy5wb3AoKSx1LnRyeXMucG9wKCk7Y29udGludWV9aT1lLmNhbGwodCx1KX1jYXRjaCh0KXtpPVs2LHRdLG49MH1maW5hbGx5e3I9bz0wfWlmKDUmaVswXSl0aHJvdyBpWzFdO3JldHVybnt2YWx1ZTppWzBdP2lbMV06dm9pZCAwLGRvbmU6ITB9fShbaSxmXSl9fX0sbD1mdW5jdGlvbih0LGUpe2Zvcih2YXIgcj0wLG49ZS5sZW5ndGgsbz10Lmxlbmd0aDtyPG47cisrLG8rKyl0W29dPWVbcl07cmV0dXJuIHR9LHM9T2JqZWN0LmRlZmluZVByb3BlcnR5LHA9T2JqZWN0LmRlZmluZVByb3BlcnRpZXMsZD1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyx2PU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMseT1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LGg9T2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZSxiPWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gZSBpbiB0P3ModCxlLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpyfSk6dFtlXT1yfSxnPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByIGluIGV8fChlPXt9KSl5LmNhbGwoZSxyKSYmYih0LHIsZVtyXSk7aWYodilmb3IodmFyIG49MCxvPXYoZSk7bjxvLmxlbmd0aDtuKyspe3I9b1tuXTtoLmNhbGwoZSxyKSYmYih0LHIsZVtyXSl9cmV0dXJuIHR9LG09ZnVuY3Rpb24odCxlKXtyZXR1cm4gcCh0LGQoZSkpfSx3PWZ1bmN0aW9uKCl7Zm9yKHZhciB0PVtdLGU9MDtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXRbZV09YXJndW1lbnRzW2VdO3ZhciByPW8uY3JlYXRlU2VsZWN0b3IuYXBwbHkodm9pZCAwLHQpO3JldHVybiBmdW5jdGlvbih0KXtmb3IodmFyIGU9W10sbz0xO288YXJndW1lbnRzLmxlbmd0aDtvKyspZVtvLTFdPWFyZ3VtZW50c1tvXTtyZXR1cm4gci5hcHBseSh2b2lkIDAsbChbKDAsbi5pc0RyYWZ0KSh0KT8oMCxuLmN1cnJlbnQpKHQpOnRdLGUpKX19LE89InVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3cmJndpbmRvdy5fX1JFRFVYX0RFVlRPT0xTX0VYVEVOU0lPTl9DT01QT1NFX18/d2luZG93Ll9fUkVEVVhfREVWVE9PTFNfRVhURU5TSU9OX0NPTVBPU0VfXzpmdW5jdGlvbigpe2lmKDAhPT1hcmd1bWVudHMubGVuZ3RoKXJldHVybiJvYmplY3QiPT10eXBlb2YgYXJndW1lbnRzWzBdP2kuY29tcG9zZTppLmNvbXBvc2UuYXBwbHkobnVsbCxhcmd1bWVudHMpfTsidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdyYmd2luZG93Ll9fUkVEVVhfREVWVE9PTFNfRVhURU5TSU9OX18mJndpbmRvdy5fX1JFRFVYX0RFVlRPT0xTX0VYVEVOU0lPTl9fO2Z1bmN0aW9uIGoodCl7CmlmKCJvYmplY3QiIT10eXBlb2YgdHx8bnVsbD09PXQpcmV0dXJuITE7Zm9yKHZhciBlPXQ7bnVsbCE9PU9iamVjdC5nZXRQcm90b3R5cGVPZihlKTspZT1PYmplY3QuZ2V0UHJvdG90eXBlT2YoZSk7cmV0dXJuIE9iamVjdC5nZXRQcm90b3R5cGVPZih0KT09PWV9dmFyIFA9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe2Zvcih2YXIgcj1bXSxuPTA7bjxhcmd1bWVudHMubGVuZ3RoO24rKylyW25dPWFyZ3VtZW50c1tuXTt2YXIgbz10LmFwcGx5KHRoaXMscil8fHRoaXM7cmV0dXJuIE9iamVjdC5zZXRQcm90b3R5cGVPZihvLGUucHJvdG90eXBlKSxvfXJldHVybiBhKGUsdCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsU3ltYm9sLnNwZWNpZXMse2dldDpmdW5jdGlvbigpe3JldHVybiBlfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLGUucHJvdG90eXBlLmNvbmNhdD1mdW5jdGlvbigpe2Zvcih2YXIgZT1bXSxyPTA7cjxhcmd1bWVudHMubGVuZ3RoO3IrKyllW3JdPWFyZ3VtZW50c1tyXTtyZXR1cm4gdC5wcm90b3R5cGUuY29uY2F0LmFwcGx5KHRoaXMsZSl9LGUucHJvdG90eXBlLnByZXBlbmQ9ZnVuY3Rpb24oKXtmb3IodmFyIHQ9W10scj0wO3I8YXJndW1lbnRzLmxlbmd0aDtyKyspdFtyXT1hcmd1bWVudHNbcl07cmV0dXJuIDE9PT10Lmxlbmd0aCYmQXJyYXkuaXNBcnJheSh0WzBdKT9uZXcoZS5iaW5kLmFwcGx5KGUsbChbdm9pZCAwXSx0WzBdLmNvbmNhdCh0aGlzKSkpKTpuZXcoZS5iaW5kLmFwcGx5KGUsbChbdm9pZCAwXSx0LmNvbmNhdCh0aGlzKSkpKX0sZX0oQXJyYXkpO2Z1bmN0aW9uIEUoKXtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKHQpe3ZvaWQgMD09PXQmJih0PXt9KTt2YXIgZT10LnRodW5rLHI9dm9pZCAwPT09ZXx8ZSxuPSh0LmltbXV0YWJsZUNoZWNrLHQuc2VyaWFsaXphYmxlQ2hlY2ssbmV3IFApO3ImJigiYm9vbGVhbiI9PXR5cGVvZiByP24ucHVzaCh1LmRlZmF1bHQpOm4ucHVzaCh1LmRlZmF1bHQud2l0aEV4dHJhQXJndW1lbnQoci5leHRyYUFyZ3VtZW50KSkpOzA7cmV0dXJuIG59KHQpfX12YXIgUz0hL14oMTk1MDh8OTQ4MTkpJC8udGVzdChyLmopfHxudWxsO2Z1bmN0aW9uIEEodCl7dmFyIGUscj1FKCksbj10fHx7fSxvPW4ucmVkdWNlcix1PXZvaWQgMD09PW8/dm9pZCAwOm8sZj1uLm1pZGRsZXdhcmUsYT12b2lkIDA9PT1mP3IoKTpmLGM9bi5kZXZUb29scyxzPXZvaWQgMD09PWN8fGMscD1uLnByZWxvYWRlZFN0YXRlLGQ9dm9pZCAwPT09cD92b2lkIDA6cCx2PW4uZW5oYW5jZXJzLHk9dm9pZCAwPT09dj92b2lkIDA6djtpZigiZnVuY3Rpb24iPT10eXBlb2YgdSllPXU7ZWxzZXtpZighaih1KSl0aHJvdyBuZXcgRXJyb3IoJyJyZWR1Y2VyIiBpcyBhIHJlcXVpcmVkIGFyZ3VtZW50LCBhbmQgbXVzdCBiZSBhIGZ1bmN0aW9uIG9yIGFuIG9iamVjdCBvZiBmdW5jdGlvbnMgdGhhdCBjYW4gYmUgcGFzc2VkIHRvIGNvbWJpbmVSZWR1Y2VycycpO2U9KDAsaS5jb21iaW5lUmVkdWNlcnMpKHUpfXZhciBoPWE7aWYoImZ1bmN0aW9uIj09dHlwZW9mIGgmJihoPWgociksIVMmJiFBcnJheS5pc0FycmF5KGgpKSl0aHJvdyBuZXcgRXJyb3IoIndoZW4gdXNpbmcgYSBtaWRkbGV3YXJlIGJ1aWxkZXIgZnVuY3Rpb24sIGFuIGFycmF5IG9mIG1pZGRsZXdhcmUgbXVzdCBiZSByZXR1cm5lZCIpO2lmKCFTJiZoLnNvbWUoKGZ1bmN0aW9uKHQpe3JldHVybiJmdW5jdGlvbiIhPXR5cGVvZiB0fSkpKXRocm93IG5ldyBFcnJvcigiZWFjaCBtaWRkbGV3YXJlIHByb3ZpZGVkIHRvIGNvbmZpZ3VyZVN0b3JlIG11c3QgYmUgYSBmdW5jdGlvbiIpO3ZhciBiPWkuYXBwbHlNaWRkbGV3YXJlLmFwcGx5KHZvaWQgMCxoKSxtPWkuY29tcG9zZTtzJiYobT1PKGcoe3RyYWNlOiFTfSwib2JqZWN0Ij09dHlwZW9mIHMmJnMpKSk7dmFyIHc9W2JdO0FycmF5LmlzQXJyYXkoeSk/dz1sKFtiXSx5KToiZnVuY3Rpb24iPT10eXBlb2YgeSYmKHc9eSh3KSk7dmFyIFA9bS5hcHBseSh2b2lkIDAsdyk7cmV0dXJuKDAsaS5jcmVhdGVTdG9yZSkoZSxkLFApfWZ1bmN0aW9uIF8odCxlKXtmdW5jdGlvbiByKCl7Zm9yKHZhciByPVtdLG49MDtuPGFyZ3VtZW50cy5sZW5ndGg7bisrKXJbbl09YXJndW1lbnRzW25dO2lmKGUpe3ZhciBvPWUuYXBwbHkodm9pZCAwLHIpO2lmKCFvKXRocm93IG5ldyBFcnJvcigicHJlcGFyZUFjdGlvbiBkaWQgbm90IHJldHVybiBhbiBvYmplY3QiKTtyZXR1cm4gZyhnKHt0eXBlOnQscGF5bG9hZDpvLnBheWxvYWR9LCJtZXRhImluIG8mJnttZXRhOm8ubWV0YX0pLCJlcnJvciJpbiBvJiZ7ZXJyb3I6by5lcnJvcn0pfXJldHVybnt0eXBlOnQscGF5bG9hZDpyWzBdfX1yZXR1cm4gci50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiIiK3R9LHIudHlwZT10LHIubWF0Y2g9ZnVuY3Rpb24oZSl7cmV0dXJuIGUudHlwZT09PXR9LHJ9ZnVuY3Rpb24gRCh0KXt2YXIgZSxyPXt9LG49W10sbz17YWRkQ2FzZTpmdW5jdGlvbih0LGUpe3ZhciBuPSJzdHJpbmciPT10eXBlb2YgdD90OnQudHlwZTtpZihuIGluIHIpdGhyb3cgbmV3IEVycm9yKCJhZGRDYXNlIGNhbm5vdCBiZSBjYWxsZWQgd2l0aCB0d28gcmVkdWNlcnMgZm9yIHRoZSBzYW1lIGFjdGlvbiB0eXBlIik7cmV0dXJuIHJbbl09ZSxvfSxhZGRNYXRjaGVyOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG4ucHVzaCh7bWF0Y2hlcjp0LHJlZHVjZXI6ZX0pLG99LGFkZERlZmF1bHRDYXNlOmZ1bmN0aW9uKHQpe3JldHVybiBlPXQsb319O3JldHVybiB0KG8pLFtyLG4sZV19ZnVuY3Rpb24geCh0KXt2YXIgZT10Lm5hbWUscj10LmluaXRpYWxTdGF0ZTtpZighZSl0aHJvdyBuZXcgRXJyb3IoImBuYW1lYCBpcyBhIHJlcXVpcmVkIG9wdGlvbiBmb3IgY3JlYXRlU2xpY2UiKQo7dmFyIG89dC5yZWR1Y2Vyc3x8e30saT0iZnVuY3Rpb24iPT10eXBlb2YgdC5leHRyYVJlZHVjZXJzP0QodC5leHRyYVJlZHVjZXJzKTpbdC5leHRyYVJlZHVjZXJzXSx1PWlbMF0sZj12b2lkIDA9PT11P3t9OnUsYT1pWzFdLGM9dm9pZCAwPT09YT9bXTphLHM9aVsyXSxwPXZvaWQgMD09PXM/dm9pZCAwOnMsZD1PYmplY3Qua2V5cyhvKSx2PXt9LHk9e30saD17fTtkLmZvckVhY2goKGZ1bmN0aW9uKHQpe3ZhciByLG4saT1vW3RdLHU9ZSsiLyIrdDsicmVkdWNlciJpbiBpPyhyPWkucmVkdWNlcixuPWkucHJlcGFyZSk6cj1pLHZbdF09cix5W3VdPXIsaFt0XT1uP18odSxuKTpfKHUpfSkpO3ZhciBiPWZ1bmN0aW9uKHQsZSxyLG8pe3ZvaWQgMD09PXImJihyPVtdKTt2YXIgaT0iZnVuY3Rpb24iPT10eXBlb2YgZT9EKGUpOltlLHIsb10sdT1pWzBdLGY9aVsxXSxhPWlbMl0sYz0oMCxuLmRlZmF1bHQpKHQsKGZ1bmN0aW9uKCl7fSkpO3JldHVybiBmdW5jdGlvbih0LGUpe3ZvaWQgMD09PXQmJih0PWMpO3ZhciByPWwoW3VbZS50eXBlXV0sZi5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybigwLHQubWF0Y2hlcikoZSl9KSkubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gdC5yZWR1Y2VyfSkpKTtyZXR1cm4gMD09PXIuZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4hIXR9KSkubGVuZ3RoJiYocj1bYV0pLHIucmVkdWNlKChmdW5jdGlvbih0LHIpe2lmKHIpe3ZhciBvO2lmKCgwLG4uaXNEcmFmdCkodCkpcmV0dXJuIHZvaWQgMD09PShvPXIodCxlKSk/dDpvO2lmKCgwLG4uaXNEcmFmdGFibGUpKHQpKXJldHVybigwLG4uZGVmYXVsdCkodCwoZnVuY3Rpb24odCl7cmV0dXJuIHIodCxlKX0pKTtpZih2b2lkIDA9PT0obz1yKHQsZSkpKXtpZihudWxsPT09dClyZXR1cm4gdDt0aHJvdyBFcnJvcigiQSBjYXNlIHJlZHVjZXIgb24gYSBub24tZHJhZnRhYmxlIHZhbHVlIG11c3Qgbm90IHJldHVybiB1bmRlZmluZWQiKX1yZXR1cm4gb31yZXR1cm4gdH0pLHQpfX0ocixnKGcoe30sZikseSksYyxwKTtyZXR1cm57bmFtZTplLHJlZHVjZXI6YixhY3Rpb25zOmgsY2FzZVJlZHVjZXJzOnZ9fXZhciBrPWZ1bmN0aW9uKHQpe3ZvaWQgMD09PXQmJih0PTIxKTtmb3IodmFyIGU9IiIscj10O3ItLTspZSs9Ik1vZHVsZVN5bWJoYXNPd25Qci0wMTIzNDU2Nzg5QUJDREVGR0hOUlZmZ2N0aVV2el9LcVlUSmtMeHBaWElqUVciWzY0Kk1hdGgucmFuZG9tKCl8MF07cmV0dXJuIGV9LEk9L14oMTk1MDh8OTQ4MTkpJC8udGVzdChyLmopP251bGw6WyJuYW1lIiwibWVzc2FnZSIsInN0YWNrIiwiY29kZSJdLFI9ZnVuY3Rpb24odCxlKXt0aGlzLnBheWxvYWQ9dCx0aGlzLm1ldGE9ZX0sTj1mdW5jdGlvbih0LGUpe3RoaXMucGF5bG9hZD10LHRoaXMubWV0YT1lfSxDPWZ1bmN0aW9uKHQpe2lmKCJvYmplY3QiPT10eXBlb2YgdCYmbnVsbCE9PXQpe2Zvcih2YXIgZT17fSxyPTAsbj1JO3I8bi5sZW5ndGg7cisrKXt2YXIgbz1uW3JdOyJzdHJpbmciPT10eXBlb2YgdFtvXSYmKGVbb109dFtvXSl9cmV0dXJuIGV9cmV0dXJue21lc3NhZ2U6U3RyaW5nKHQpfX07ZnVuY3Rpb24gVCh0LGUscil7dmFyIG49Xyh0KyIvZnVsZmlsbGVkIiwoZnVuY3Rpb24odCxlLHIsbil7cmV0dXJue3BheWxvYWQ6dCxtZXRhOm0oZyh7fSxufHx7fSkse2FyZzpyLHJlcXVlc3RJZDplLHJlcXVlc3RTdGF0dXM6ImZ1bGZpbGxlZCJ9KX19KSksbz1fKHQrIi9wZW5kaW5nIiwoZnVuY3Rpb24odCxlLHIpe3JldHVybntwYXlsb2FkOnZvaWQgMCxtZXRhOm0oZyh7fSxyfHx7fSkse2FyZzplLHJlcXVlc3RJZDp0LHJlcXVlc3RTdGF0dXM6InBlbmRpbmcifSl9fSkpLGk9Xyh0KyIvcmVqZWN0ZWQiLChmdW5jdGlvbih0LGUsbixvLGkpe3JldHVybntwYXlsb2FkOm8sZXJyb3I6KHImJnIuc2VyaWFsaXplRXJyb3J8fEMpKHR8fCJSZWplY3RlZCIpLG1ldGE6bShnKHt9LGl8fHt9KSx7YXJnOm4scmVxdWVzdElkOmUscmVqZWN0ZWRXaXRoVmFsdWU6ISFvLHJlcXVlc3RTdGF0dXM6InJlamVjdGVkIixhYm9ydGVkOiJBYm9ydEVycm9yIj09PShudWxsPT10P3ZvaWQgMDp0Lm5hbWUpLGNvbmRpdGlvbjoiQ29uZGl0aW9uRXJyb3IiPT09KG51bGw9PXQ/dm9pZCAwOnQubmFtZSl9KX19KSksdT0idW5kZWZpbmVkIiE9dHlwZW9mIEFib3J0Q29udHJvbGxlcj9BYm9ydENvbnRyb2xsZXI6ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KCl7dGhpcy5zaWduYWw9e2Fib3J0ZWQ6ITEsYWRkRXZlbnRMaXN0ZW5lcjpmdW5jdGlvbigpe30sZGlzcGF0Y2hFdmVudDpmdW5jdGlvbigpe3JldHVybiExfSxvbmFib3J0OmZ1bmN0aW9uKCl7fSxyZW1vdmVFdmVudExpc3RlbmVyOmZ1bmN0aW9uKCl7fX19cmV0dXJuIHQucHJvdG90eXBlLmFib3J0PWZ1bmN0aW9uKCl7MH0sdH0oKTtyZXR1cm4gT2JqZWN0LmFzc2lnbigoZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKGYsYSxsKXt2YXIgcyxwLGQ9KG51bGwhPShzPW51bGw9PXI/dm9pZCAwOnIuaWRHZW5lcmF0b3IpP3M6aykoKSx2PW5ldyB1LHk9bmV3IFByb21pc2UoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHYuc2lnbmFsLmFkZEV2ZW50TGlzdGVuZXIoImFib3J0IiwoZnVuY3Rpb24oKXtyZXR1cm4gZSh7bmFtZToiQWJvcnRFcnJvciIsbWVzc2FnZTpwfHwiQWJvcnRlZCJ9KX0pKX0pKSxoPSExO3ZhciBiPWZ1bmN0aW9uKCl7cmV0dXJuIHU9dGhpcyxzPW51bGwscD1mdW5jdGlvbigpe3ZhciB1LHMscDtyZXR1cm4gYyh0aGlzLChmdW5jdGlvbihjKXtzd2l0Y2goYy5sYWJlbCl7Y2FzZSAwOmlmKGMudHJ5cy5wdXNoKFswLDIsLDNdKSxyJiZyLmNvbmRpdGlvbiYmITE9PT1yLmNvbmRpdGlvbih0LHtnZXRTdGF0ZTphLGV4dHJhOmx9KSl0aHJvd3tuYW1lOiJDb25kaXRpb25FcnJvciIsbWVzc2FnZToiQWJvcnRlZCBkdWUgdG8gY29uZGl0aW9uIGNhbGxiYWNrIHJldHVybmluZyBmYWxzZS4ifTtyZXR1cm4gaD0hMCxmKG8oZCx0LG51bGw9PSh1PW51bGw9PXI/dm9pZCAwOnIuZ2V0UGVuZGluZ01ldGEpP3ZvaWQgMDp1LmNhbGwocix7cmVxdWVzdElkOmQsYXJnOnR9LHtnZXRTdGF0ZTphLGV4dHJhOmx9KSkpLApbNCxQcm9taXNlLnJhY2UoW3ksUHJvbWlzZS5yZXNvbHZlKGUodCx7ZGlzcGF0Y2g6ZixnZXRTdGF0ZTphLGV4dHJhOmwscmVxdWVzdElkOmQsc2lnbmFsOnYuc2lnbmFsLHJlamVjdFdpdGhWYWx1ZTpmdW5jdGlvbih0LGUpe3JldHVybiBuZXcgUih0LGUpfSxmdWxmaWxsV2l0aFZhbHVlOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBOKHQsZSl9fSkpLnRoZW4oKGZ1bmN0aW9uKGUpe2lmKGUgaW5zdGFuY2VvZiBSKXRocm93IGU7cmV0dXJuIGUgaW5zdGFuY2VvZiBOP24oZS5wYXlsb2FkLGQsdCxlLm1ldGEpOm4oZSxkLHQpfSkpXSldO2Nhc2UgMTpyZXR1cm4gcz1jLnNlbnQoKSxbMywzXTtjYXNlIDI6cmV0dXJuIHA9Yy5zZW50KCkscz1wIGluc3RhbmNlb2YgUj9pKG51bGwsZCx0LHAucGF5bG9hZCxwLm1ldGEpOmkocCxkLHQpLFszLDNdO2Nhc2UgMzpyZXR1cm4gciYmIXIuZGlzcGF0Y2hDb25kaXRpb25SZWplY3Rpb24mJmkubWF0Y2gocykmJnMubWV0YS5jb25kaXRpb258fGYocyksWzIsc119fSkpfSxuZXcgUHJvbWlzZSgoZnVuY3Rpb24odCxlKXt2YXIgcj1mdW5jdGlvbih0KXt0cnl7byhwLm5leHQodCkpfWNhdGNoKHQpe2UodCl9fSxuPWZ1bmN0aW9uKHQpe3RyeXtvKHAudGhyb3codCkpfWNhdGNoKHQpe2UodCl9fSxvPWZ1bmN0aW9uKGUpe3JldHVybiBlLmRvbmU/dChlLnZhbHVlKTpQcm9taXNlLnJlc29sdmUoZS52YWx1ZSkudGhlbihyLG4pfTtvKChwPXAuYXBwbHkodSxzKSkubmV4dCgpKX0pKTt2YXIgdSxzLHB9KCk7cmV0dXJuIE9iamVjdC5hc3NpZ24oYix7YWJvcnQ6ZnVuY3Rpb24odCl7aCYmKHA9dCx2LmFib3J0KCkpfSxyZXF1ZXN0SWQ6ZCxhcmc6dCx1bndyYXA6ZnVuY3Rpb24oKXtyZXR1cm4gYi50aGVuKE0pfX0pfX0pLHtwZW5kaW5nOm8scmVqZWN0ZWQ6aSxmdWxmaWxsZWQ6bix0eXBlUHJlZml4OnR9KX1mdW5jdGlvbiBNKHQpe2lmKHQubWV0YSYmdC5tZXRhLnJlamVjdGVkV2l0aFZhbHVlKXRocm93IHQucGF5bG9hZDtpZih0LmVycm9yKXRocm93IHQuZXJyb3I7cmV0dXJuIHQucGF5bG9hZH12YXIgRj1mdW5jdGlvbih0LGUpe3JldHVybihyPXQpJiYiZnVuY3Rpb24iPT10eXBlb2Ygci5tYXRjaD90Lm1hdGNoKGUpOnQoZSk7dmFyIHJ9O2Z1bmN0aW9uIHEoKXtmb3IodmFyIHQ9W10sZT0wO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspdFtlXT1hcmd1bWVudHNbZV07cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiB0LnNvbWUoKGZ1bmN0aW9uKHQpe3JldHVybiBGKHQsZSl9KSl9fWZ1bmN0aW9uICQodCxlKXtpZighdHx8IXQubWV0YSlyZXR1cm4hMTt2YXIgcj0ic3RyaW5nIj09dHlwZW9mIHQubWV0YS5yZXF1ZXN0SWQsbj1lLmluZGV4T2YodC5tZXRhLnJlcXVlc3RTdGF0dXMpPi0xO3JldHVybiByJiZufWZ1bmN0aW9uIFcodCl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIHRbMF0mJiJwZW5kaW5nImluIHRbMF0mJiJmdWxmaWxsZWQiaW4gdFswXSYmInJlamVjdGVkImluIHRbMF19ZnVuY3Rpb24gSygpe2Zvcih2YXIgdD1bXSxlPTA7ZTxhcmd1bWVudHMubGVuZ3RoO2UrKyl0W2VdPWFyZ3VtZW50c1tlXTtyZXR1cm4gMD09PXQubGVuZ3RoP2Z1bmN0aW9uKHQpe3JldHVybiAkKHQsWyJwZW5kaW5nIl0pfTpXKHQpP2Z1bmN0aW9uKGUpe3ZhciByPXQubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gdC5wZW5kaW5nfSkpO3JldHVybiBxLmFwcGx5KHZvaWQgMCxyKShlKX06SygpKHRbMF0pfWZ1bmN0aW9uIEwoKXtmb3IodmFyIHQ9W10sZT0wO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspdFtlXT1hcmd1bWVudHNbZV07cmV0dXJuIDA9PT10Lmxlbmd0aD9mdW5jdGlvbih0KXtyZXR1cm4gJCh0LFsicmVqZWN0ZWQiXSl9OlcodCk/ZnVuY3Rpb24oZSl7dmFyIHI9dC5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB0LnJlamVjdGVkfSkpO3JldHVybiBxLmFwcGx5KHZvaWQgMCxyKShlKX06TCgpKHRbMF0pfWZ1bmN0aW9uIFUoKXtmb3IodmFyIHQ9W10sZT0wO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspdFtlXT1hcmd1bWVudHNbZV07cmV0dXJuIDA9PT10Lmxlbmd0aD9mdW5jdGlvbih0KXtyZXR1cm4gJCh0LFsiZnVsZmlsbGVkIl0pfTpXKHQpP2Z1bmN0aW9uKGUpe3ZhciByPXQubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gdC5mdWxmaWxsZWR9KSk7cmV0dXJuIHEuYXBwbHkodm9pZCAwLHIpKGUpfTpVKCkodFswXSl9KDAsbi5lbmFibGVFUzUpKCl9LDMyNzIzOSh0LGUscil7ZnVuY3Rpb24gbih0KXtmb3IodmFyIGU9YXJndW1lbnRzLmxlbmd0aCxyPUFycmF5KGU+MT9lLTE6MCksbj0xO248ZTtuKyspcltuLTFdPWFyZ3VtZW50c1tuXTt0aHJvdyBFcnJvcigiW0ltbWVyXSBtaW5pZmllZCBlcnJvciBucjogIit0KyhyLmxlbmd0aD8iICIrci5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiInIit0KyInIn0pKS5qb2luKCIsIik6IiIpKyIuIEZpbmQgdGhlIGZ1bGwgZXJyb3IgYXQ6IGh0dHBzOi8vYml0Lmx5LzNjWEVLV2YiKX1mdW5jdGlvbiBvKHQpe3JldHVybiEhdCYmISF0W0ddfWZ1bmN0aW9uIGkodCl7cmV0dXJuISF0JiYoZnVuY3Rpb24odCl7aWYoIXR8fCJvYmplY3QiIT10eXBlb2YgdClyZXR1cm4hMTt2YXIgZT1PYmplY3QuZ2V0UHJvdG90eXBlT2YodCk7aWYobnVsbD09PWUpcmV0dXJuITA7dmFyIHI9T2JqZWN0Lmhhc093blByb3BlcnR5LmNhbGwoZSwiY29uc3RydWN0b3IiKSYmZS5jb25zdHJ1Y3RvcjtyZXR1cm4gcj09PU9iamVjdHx8ImZ1bmN0aW9uIj09dHlwZW9mIHImJkZ1bmN0aW9uLnRvU3RyaW5nLmNhbGwocik9PT1KfSh0KXx8QXJyYXkuaXNBcnJheSh0KXx8ISF0W0JdfHwhIXQuY29uc3RydWN0b3JbQl18fGQodCl8fHYodCkpfWZ1bmN0aW9uIHUodCl7cmV0dXJuIG8odCl8fG4oMjMsdCksdFtHXS50fWZ1bmN0aW9uIGYodCxlLHIpe3ZvaWQgMD09PXImJihyPSExKSwwPT09YSh0KT8ocj9PYmplY3Qua2V5czpIKSh0KS5mb3JFYWNoKChmdW5jdGlvbihuKXtyJiYic3ltYm9sIj09dHlwZW9mIG58fGUobix0W25dLHQpfSkpOnQuZm9yRWFjaCgoZnVuY3Rpb24ocixuKXtyZXR1cm4gZShuLHIsdCl9KSl9ZnVuY3Rpb24gYSh0KXt2YXIgZT10W0ddCjtyZXR1cm4gZT9lLmk+Mz9lLmktNDplLmk6QXJyYXkuaXNBcnJheSh0KT8xOmQodCk/Mjp2KHQpPzM6MH1mdW5jdGlvbiBjKHQsZSl7cmV0dXJuIDI9PT1hKHQpP3QuaGFzKGUpOk9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LGUpfWZ1bmN0aW9uIGwodCxlKXtyZXR1cm4gMj09PWEodCk/dC5nZXQoZSk6dFtlXX1mdW5jdGlvbiBzKHQsZSxyKXt2YXIgbj1hKHQpOzI9PT1uP3Quc2V0KGUscik6Mz09PW4/KHQuZGVsZXRlKGUpLHQuYWRkKHIpKTp0W2VdPXJ9ZnVuY3Rpb24gcCh0LGUpe3JldHVybiB0PT09ZT8wIT09dHx8MS90PT0xL2U6dCE9dCYmZSE9ZX1mdW5jdGlvbiBkKHQpe3JldHVybiBVJiZ0IGluc3RhbmNlb2YgTWFwfWZ1bmN0aW9uIHYodCl7cmV0dXJuIHomJnQgaW5zdGFuY2VvZiBTZXR9ZnVuY3Rpb24geSh0KXtyZXR1cm4gdC5vfHx0LnR9ZnVuY3Rpb24gaCh0KXtpZihBcnJheS5pc0FycmF5KHQpKXJldHVybiBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbCh0KTt2YXIgZT1RKHQpO2RlbGV0ZSBlW0ddO2Zvcih2YXIgcj1IKGUpLG49MDtuPHIubGVuZ3RoO24rKyl7dmFyIG89cltuXSxpPWVbb107ITE9PT1pLndyaXRhYmxlJiYoaS53cml0YWJsZT0hMCxpLmNvbmZpZ3VyYWJsZT0hMCksKGkuZ2V0fHxpLnNldCkmJihlW29dPXtjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsZW51bWVyYWJsZTppLmVudW1lcmFibGUsdmFsdWU6dFtvXX0pfXJldHVybiBPYmplY3QuY3JlYXRlKE9iamVjdC5nZXRQcm90b3R5cGVPZih0KSxlKX1mdW5jdGlvbiBiKHQsZSl7cmV0dXJuIHZvaWQgMD09PWUmJihlPSExKSxtKHQpfHxvKHQpfHwhaSh0KXx8KGEodCk+MSYmKHQuc2V0PXQuYWRkPXQuY2xlYXI9dC5kZWxldGU9ZyksT2JqZWN0LmZyZWV6ZSh0KSxlJiZmKHQsKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGIoZSwhMCl9KSwhMCkpLHR9ZnVuY3Rpb24gZygpe24oMil9ZnVuY3Rpb24gbSh0KXtyZXR1cm4gbnVsbD09dHx8Im9iamVjdCIhPXR5cGVvZiB0fHxPYmplY3QuaXNGcm96ZW4odCl9ZnVuY3Rpb24gdyh0KXt2YXIgZT1ZW3RdO3JldHVybiBlfHxuKDE4LHQpLGV9ZnVuY3Rpb24gTyh0LGUpe1lbdF18fChZW3RdPWUpfWZ1bmN0aW9uIGooKXtyZXR1cm4gS31mdW5jdGlvbiBQKHQsZSl7ZSYmKHcoIlBhdGNoZXMiKSx0LnU9W10sdC5zPVtdLHQudj1lKX1mdW5jdGlvbiBFKHQpe1ModCksdC5wLmZvckVhY2goXyksdC5wPW51bGx9ZnVuY3Rpb24gUyh0KXt0PT09SyYmKEs9dC5sKX1mdW5jdGlvbiBBKHQpe3JldHVybiBLPXtwOltdLGw6SyxoOnQsbTohMCxfOjB9fWZ1bmN0aW9uIF8odCl7dmFyIGU9dFtHXTswPT09ZS5pfHwxPT09ZS5pP2UuaigpOmUuTz0hMH1mdW5jdGlvbiBEKHQsZSl7ZS5fPWUucC5sZW5ndGg7dmFyIHI9ZS5wWzBdLG89dm9pZCAwIT09dCYmdCE9PXI7cmV0dXJuIGUuaC5nfHx3KCJFUzUiKS5TKGUsdCxvKSxvPyhyW0ddLlAmJihFKGUpLG4oNCkpLGkodCkmJih0PXgoZSx0KSxlLmx8fEkoZSx0KSksZS51JiZ3KCJQYXRjaGVzIikuTShyW0ddLHQsZS51LGUucykpOnQ9eChlLHIsW10pLEUoZSksZS51JiZlLnYoZS51LGUucyksdCE9PVY/dDp2b2lkIDB9ZnVuY3Rpb24geCh0LGUscil7aWYobShlKSlyZXR1cm4gZTt2YXIgbj1lW0ddO2lmKCFuKXJldHVybiBmKGUsKGZ1bmN0aW9uKG8saSl7cmV0dXJuIGsodCxuLGUsbyxpLHIpfSksITApLGU7aWYobi5BIT09dClyZXR1cm4gZTtpZighbi5QKXJldHVybiBJKHQsbi50LCEwKSxuLnQ7aWYoIW4uSSl7bi5JPSEwLG4uQS5fLS07dmFyIG89ND09PW4uaXx8NT09PW4uaT9uLm89aChuLmspOm4ubztmKDM9PT1uLmk/bmV3IFNldChvKTpvLChmdW5jdGlvbihlLGkpe3JldHVybiBrKHQsbixvLGUsaSxyKX0pKSxJKHQsbywhMSksciYmdC51JiZ3KCJQYXRjaGVzIikuUihuLHIsdC51LHQucyl9cmV0dXJuIG4ub31mdW5jdGlvbiBrKHQsZSxyLG4sdSxmKXtpZihvKHUpKXt2YXIgYT14KHQsdSxmJiZlJiYzIT09ZS5pJiYhYyhlLkQsbik/Zi5jb25jYXQobik6dm9pZCAwKTtpZihzKHIsbixhKSwhbyhhKSlyZXR1cm47dC5tPSExfWlmKGkodSkmJiFtKHUpKXtpZighdC5oLkYmJnQuXzwxKXJldHVybjt4KHQsdSksZSYmZS5BLmx8fEkodCx1KX19ZnVuY3Rpb24gSSh0LGUscil7dm9pZCAwPT09ciYmKHI9ITEpLHQuaC5GJiZ0Lm0mJmIoZSxyKX1mdW5jdGlvbiBSKHQsZSl7dmFyIHI9dFtHXTtyZXR1cm4ocj95KHIpOnQpW2VdfWZ1bmN0aW9uIE4odCxlKXtpZihlIGluIHQpZm9yKHZhciByPU9iamVjdC5nZXRQcm90b3R5cGVPZih0KTtyOyl7dmFyIG49T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihyLGUpO2lmKG4pcmV0dXJuIG47cj1PYmplY3QuZ2V0UHJvdG90eXBlT2Yocil9fWZ1bmN0aW9uIEModCl7dC5QfHwodC5QPSEwLHQubCYmQyh0LmwpKX1mdW5jdGlvbiBUKHQpe3Qub3x8KHQubz1oKHQudCkpfWZ1bmN0aW9uIE0odCxlLHIpe3ZhciBuPWQoZSk/dygiTWFwU2V0IikuTihlLHIpOnYoZSk/dygiTWFwU2V0IikuVChlLHIpOnQuZz9mdW5jdGlvbih0LGUpe3ZhciByPUFycmF5LmlzQXJyYXkodCksbj17aTpyPzE6MCxBOmU/ZS5BOmooKSxQOiExLEk6ITEsRDp7fSxsOmUsdCxrOm51bGwsbzpudWxsLGo6bnVsbCxDOiExfSxvPW4saT1aO3ImJihvPVtuXSxpPXR0KTt2YXIgdT1Qcm94eS5yZXZvY2FibGUobyxpKSxmPXUucmV2b2tlLGE9dS5wcm94eTtyZXR1cm4gbi5rPWEsbi5qPWYsYX0oZSxyKTp3KCJFUzUiKS5KKGUscik7cmV0dXJuKHI/ci5BOmooKSkucC5wdXNoKG4pLG59ZnVuY3Rpb24gRih0KXtyZXR1cm4gbyh0KXx8bigyMix0KSxmdW5jdGlvbiB0KGUpe2lmKCFpKGUpKXJldHVybiBlO3ZhciByLG49ZVtHXSxvPWEoZSk7aWYobil7aWYoIW4uUCYmKG4uaTw0fHwhdygiRVM1IikuSyhuKSkpcmV0dXJuIG4udDtuLkk9ITAscj1xKGUsbyksbi5JPSExfWVsc2Ugcj1xKGUsbyk7cmV0dXJuIGYociwoZnVuY3Rpb24oZSxvKXtuJiZsKG4udCxlKT09PW98fHMocixlLHQobykpfSkpLDM9PT1vP25ldyBTZXQocik6cn0odCl9ZnVuY3Rpb24gcSh0LGUpe3N3aXRjaChlKXtjYXNlIDI6CnJldHVybiBuZXcgTWFwKHQpO2Nhc2UgMzpyZXR1cm4gQXJyYXkuZnJvbSh0KX1yZXR1cm4gaCh0KX1mdW5jdGlvbiAkKCl7ZnVuY3Rpb24gdCh0LGUpe3ZhciByPWlbdF07cmV0dXJuIHI/ci5lbnVtZXJhYmxlPWU6aVt0XT1yPXtjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTplLGdldDpmdW5jdGlvbigpe3ZhciBlPXRoaXNbR107cmV0dXJuIFouZ2V0KGUsdCl9LHNldDpmdW5jdGlvbihlKXt2YXIgcj10aGlzW0ddO1ouc2V0KHIsdCxlKX19LHJ9ZnVuY3Rpb24gZSh0KXtmb3IodmFyIGU9dC5sZW5ndGgtMTtlPj0wO2UtLSl7dmFyIG89dFtlXVtHXTtpZighby5QKXN3aXRjaChvLmkpe2Nhc2UgNTpuKG8pJiZDKG8pO2JyZWFrO2Nhc2UgNDpyKG8pJiZDKG8pfX19ZnVuY3Rpb24gcih0KXtmb3IodmFyIGU9dC50LHI9dC5rLG49SChyKSxvPW4ubGVuZ3RoLTE7bz49MDtvLS0pe3ZhciBpPW5bb107aWYoaSE9PUcpe3ZhciB1PWVbaV07aWYodm9pZCAwPT09dSYmIWMoZSxpKSlyZXR1cm4hMDt2YXIgZj1yW2ldLGE9ZiYmZltHXTtpZihhP2EudCE9PXU6IXAoZix1KSlyZXR1cm4hMH19dmFyIGw9ISFlW0ddO3JldHVybiBuLmxlbmd0aCE9PUgoZSkubGVuZ3RoKyhsPzA6MSl9ZnVuY3Rpb24gbih0KXt2YXIgZT10Lms7aWYoZS5sZW5ndGghPT10LnQubGVuZ3RoKXJldHVybiEwO3ZhciByPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZSxlLmxlbmd0aC0xKTtyZXR1cm4hKCFyfHxyLmdldCl9dmFyIGk9e307TygiRVM1Iix7SjpmdW5jdGlvbihlLHIpe3ZhciBuPUFycmF5LmlzQXJyYXkoZSksbz1mdW5jdGlvbihlLHIpe2lmKGUpe2Zvcih2YXIgbj1BcnJheShyLmxlbmd0aCksbz0wO288ci5sZW5ndGg7bysrKU9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLCIiK28sdChvLCEwKSk7cmV0dXJuIG59dmFyIGk9UShyKTtkZWxldGUgaVtHXTtmb3IodmFyIHU9SChpKSxmPTA7Zjx1Lmxlbmd0aDtmKyspe3ZhciBhPXVbZl07aVthXT10KGEsZXx8ISFpW2FdLmVudW1lcmFibGUpfXJldHVybiBPYmplY3QuY3JlYXRlKE9iamVjdC5nZXRQcm90b3R5cGVPZihyKSxpKX0obixlKSxpPXtpOm4/NTo0LEE6cj9yLkE6aigpLFA6ITEsSTohMSxEOnt9LGw6cix0OmUsazpvLG86bnVsbCxPOiExLEM6ITF9O3JldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkobyxHLHt2YWx1ZTppLHdyaXRhYmxlOiEwfSksb30sUzpmdW5jdGlvbih0LHIsaSl7aT9vKHIpJiZyW0ddLkE9PT10JiZlKHQucCk6KHQudSYmZnVuY3Rpb24gdChlKXtpZihlJiYib2JqZWN0Ij09dHlwZW9mIGUpe3ZhciByPWVbR107aWYocil7dmFyIG89ci50LGk9ci5rLHU9ci5ELGE9ci5pO2lmKDQ9PT1hKWYoaSwoZnVuY3Rpb24oZSl7ZSE9PUcmJih2b2lkIDAhPT1vW2VdfHxjKG8sZSk/dVtlXXx8dChpW2VdKToodVtlXT0hMCxDKHIpKSl9KSksZihvLChmdW5jdGlvbih0KXt2b2lkIDAhPT1pW3RdfHxjKGksdCl8fCh1W3RdPSExLEMocikpfSkpO2Vsc2UgaWYoNT09PWEpe2lmKG4ocikmJihDKHIpLHUubGVuZ3RoPSEwKSxpLmxlbmd0aDxvLmxlbmd0aClmb3IodmFyIGw9aS5sZW5ndGg7bDxvLmxlbmd0aDtsKyspdVtsXT0hMTtlbHNlIGZvcih2YXIgcz1vLmxlbmd0aDtzPGkubGVuZ3RoO3MrKyl1W3NdPSEwO2Zvcih2YXIgcD1NYXRoLm1pbihpLmxlbmd0aCxvLmxlbmd0aCksZD0wO2Q8cDtkKyspdm9pZCAwPT09dVtkXSYmdChpW2RdKX19fX0odC5wWzBdKSxlKHQucCkpfSxLOmZ1bmN0aW9uKHQpe3JldHVybiA0PT09dC5pP3IodCk6bih0KX19KX1yLmQoZSx7Y3VycmVudDooKT0+RixkZWZhdWx0OigpPT5vdCxlbmFibGVFUzU6KCk9PiQsaXNEcmFmdDooKT0+byxpc0RyYWZ0YWJsZTooKT0+aSxvcmlnaW5hbDooKT0+dX0pO3ZhciBXLEssTD0idW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2woIngiKSxVPSJ1bmRlZmluZWQiIT10eXBlb2YgTWFwLHo9InVuZGVmaW5lZCIhPXR5cGVvZiBTZXQsWD0idW5kZWZpbmVkIiE9dHlwZW9mIFByb3h5JiZ2b2lkIDAhPT1Qcm94eS5yZXZvY2FibGUmJiJ1bmRlZmluZWQiIT10eXBlb2YgUmVmbGVjdCxWPUw/U3ltYm9sLmZvcigiaW1tZXItbm90aGluZyIpOigoVz17fSlbImltbWVyLW5vdGhpbmciXT0hMCxXKSxCPUw/U3ltYm9sLmZvcigiaW1tZXItZHJhZnRhYmxlIik6Il9fJGltbWVyX2RyYWZ0YWJsZSIsRz1MP1N5bWJvbC5mb3IoImltbWVyLXN0YXRlIik6Il9fJGltbWVyX3N0YXRlIixKPSgidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmU3ltYm9sLml0ZXJhdG9yLCIiK09iamVjdC5wcm90b3R5cGUuY29uc3RydWN0b3IpLEg9InVuZGVmaW5lZCIhPXR5cGVvZiBSZWZsZWN0JiZSZWZsZWN0Lm93bktleXM/UmVmbGVjdC5vd25LZXlzOnZvaWQgMCE9PU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM/ZnVuY3Rpb24odCl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHQpLmNvbmNhdChPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHQpKX06T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMsUT1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yc3x8ZnVuY3Rpb24odCl7dmFyIGU9e307cmV0dXJuIEgodCkuZm9yRWFjaCgoZnVuY3Rpb24ocil7ZVtyXT1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHQscil9KSksZX0sWT17fSxaPXtnZXQ6ZnVuY3Rpb24odCxlKXtpZihlPT09RylyZXR1cm4gdDt2YXIgcj15KHQpO2lmKCFjKHIsZSkpcmV0dXJuIGZ1bmN0aW9uKHQsZSxyKXt2YXIgbixvPU4oZSxyKTtyZXR1cm4gbz8idmFsdWUiaW4gbz9vLnZhbHVlOm51bGw9PT0obj1vLmdldCl8fHZvaWQgMD09PW4/dm9pZCAwOm4uY2FsbCh0LmspOnZvaWQgMH0odCxyLGUpO3ZhciBuPXJbZV07cmV0dXJuIHQuSXx8IWkobik/bjpuPT09Uih0LnQsZSk/KFQodCksdC5vW2VdPU0odC5BLmgsbix0KSk6bn0saGFzOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIGUgaW4geSh0KX0sb3duS2V5czpmdW5jdGlvbih0KXtyZXR1cm4gUmVmbGVjdC5vd25LZXlzKHkodCkpfSxzZXQ6ZnVuY3Rpb24odCxlLHIpe3ZhciBuPU4oeSh0KSxlKQo7aWYobnVsbD09bj92b2lkIDA6bi5zZXQpcmV0dXJuIG4uc2V0LmNhbGwodC5rLHIpLCEwO2lmKCF0LlApe3ZhciBvPVIoeSh0KSxlKSxpPW51bGw9PW8/dm9pZCAwOm9bR107aWYoaSYmaS50PT09cilyZXR1cm4gdC5vW2VdPXIsdC5EW2VdPSExLCEwO2lmKHAocixvKSYmKHZvaWQgMCE9PXJ8fGModC50LGUpKSlyZXR1cm4hMDtUKHQpLEModCl9cmV0dXJuIHQub1tlXT09PXImJiJudW1iZXIiIT10eXBlb2YgciYmKHZvaWQgMCE9PXJ8fGUgaW4gdC5vKXx8KHQub1tlXT1yLHQuRFtlXT0hMCwhMCl9LGRlbGV0ZVByb3BlcnR5OmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHZvaWQgMCE9PVIodC50LGUpfHxlIGluIHQudD8odC5EW2VdPSExLFQodCksQyh0KSk6ZGVsZXRlIHQuRFtlXSx0Lm8mJmRlbGV0ZSB0Lm9bZV0sITB9LGdldE93blByb3BlcnR5RGVzY3JpcHRvcjpmdW5jdGlvbih0LGUpe3ZhciByPXkodCksbj1SZWZsZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihyLGUpO3JldHVybiBuP3t3cml0YWJsZTohMCxjb25maWd1cmFibGU6MSE9PXQuaXx8Imxlbmd0aCIhPT1lLGVudW1lcmFibGU6bi5lbnVtZXJhYmxlLHZhbHVlOnJbZV19Om59LGRlZmluZVByb3BlcnR5OmZ1bmN0aW9uKCl7bigxMSl9LGdldFByb3RvdHlwZU9mOmZ1bmN0aW9uKHQpe3JldHVybiBPYmplY3QuZ2V0UHJvdG90eXBlT2YodC50KX0sc2V0UHJvdG90eXBlT2Y6ZnVuY3Rpb24oKXtuKDEyKX19LHR0PXt9O2YoWiwoZnVuY3Rpb24odCxlKXt0dFt0XT1mdW5jdGlvbigpe3JldHVybiBhcmd1bWVudHNbMF09YXJndW1lbnRzWzBdWzBdLGUuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0pKSx0dC5kZWxldGVQcm9wZXJ0eT1mdW5jdGlvbih0LGUpe3JldHVybiBaLmRlbGV0ZVByb3BlcnR5LmNhbGwodGhpcyx0WzBdLGUpfSx0dC5zZXQ9ZnVuY3Rpb24odCxlLHIpe3JldHVybiBaLnNldC5jYWxsKHRoaXMsdFswXSxlLHIsdFswXSl9O3ZhciBldD1mdW5jdGlvbigpe2Z1bmN0aW9uIHQodCl7dmFyIGU9dGhpczt0aGlzLmc9WCx0aGlzLkY9ITAsdGhpcy5wcm9kdWNlPWZ1bmN0aW9uKHQscixvKXtpZigiZnVuY3Rpb24iPT10eXBlb2YgdCYmImZ1bmN0aW9uIiE9dHlwZW9mIHIpe3ZhciB1PXI7cj10O3ZhciBmPWU7cmV0dXJuIGZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7dm9pZCAwPT09dCYmKHQ9dSk7Zm9yKHZhciBuPWFyZ3VtZW50cy5sZW5ndGgsbz1BcnJheShuPjE/bi0xOjApLGk9MTtpPG47aSsrKW9baS0xXT1hcmd1bWVudHNbaV07cmV0dXJuIGYucHJvZHVjZSh0LChmdW5jdGlvbih0KXt2YXIgbjtyZXR1cm4obj1yKS5jYWxsLmFwcGx5KG4sW2UsdF0uY29uY2F0KG8pKX0pKX19dmFyIGE7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIHImJm4oNiksdm9pZCAwIT09byYmImZ1bmN0aW9uIiE9dHlwZW9mIG8mJm4oNyksaSh0KSl7dmFyIGM9QShlKSxsPU0oZSx0LHZvaWQgMCkscz0hMDt0cnl7YT1yKGwpLHM9ITF9ZmluYWxseXtzP0UoYyk6UyhjKX1yZXR1cm4idW5kZWZpbmVkIiE9dHlwZW9mIFByb21pc2UmJmEgaW5zdGFuY2VvZiBQcm9taXNlP2EudGhlbigoZnVuY3Rpb24odCl7cmV0dXJuIFAoYyxvKSxEKHQsYyl9KSwoZnVuY3Rpb24odCl7dGhyb3cgRShjKSx0fSkpOihQKGMsbyksRChhLGMpKX1pZighdHx8Im9iamVjdCIhPXR5cGVvZiB0KXtpZigoYT1yKHQpKT09PVYpcmV0dXJuO3JldHVybiB2b2lkIDA9PT1hJiYoYT10KSxlLkYmJmIoYSwhMCksYX1uKDIxLHQpfSx0aGlzLnByb2R1Y2VXaXRoUGF0Y2hlcz1mdW5jdGlvbih0LHIpe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiB0P2Z1bmN0aW9uKHIpe2Zvcih2YXIgbj1hcmd1bWVudHMubGVuZ3RoLG89QXJyYXkobj4xP24tMTowKSxpPTE7aTxuO2krKylvW2ktMV09YXJndW1lbnRzW2ldO3JldHVybiBlLnByb2R1Y2VXaXRoUGF0Y2hlcyhyLChmdW5jdGlvbihlKXtyZXR1cm4gdC5hcHBseSh2b2lkIDAsW2VdLmNvbmNhdChvKSl9KSl9OltlLnByb2R1Y2UodCxyLChmdW5jdGlvbih0LGUpe249dCxvPWV9KSksbixvXTt2YXIgbixvfSwiYm9vbGVhbiI9PXR5cGVvZihudWxsPT10P3ZvaWQgMDp0LnVzZVByb3hpZXMpJiZ0aGlzLnNldFVzZVByb3hpZXModC51c2VQcm94aWVzKSwiYm9vbGVhbiI9PXR5cGVvZihudWxsPT10P3ZvaWQgMDp0LmF1dG9GcmVlemUpJiZ0aGlzLnNldEF1dG9GcmVlemUodC5hdXRvRnJlZXplKX12YXIgZT10LnByb3RvdHlwZTtyZXR1cm4gZS5jcmVhdGVEcmFmdD1mdW5jdGlvbih0KXtpKHQpfHxuKDgpLG8odCkmJih0PUYodCkpO3ZhciBlPUEodGhpcykscj1NKHRoaXMsdCx2b2lkIDApO3JldHVybiByW0ddLkM9ITAsUyhlKSxyfSxlLmZpbmlzaERyYWZ0PWZ1bmN0aW9uKHQsZSl7dmFyIHI9KHQmJnRbR10pLkE7cmV0dXJuIFAocixlKSxEKHZvaWQgMCxyKX0sZS5zZXRBdXRvRnJlZXplPWZ1bmN0aW9uKHQpe3RoaXMuRj10fSxlLnNldFVzZVByb3hpZXM9ZnVuY3Rpb24odCl7dCYmIVgmJm4oMjApLHRoaXMuZz10fSxlLmFwcGx5UGF0Y2hlcz1mdW5jdGlvbih0LGUpe3ZhciByO2ZvcihyPWUubGVuZ3RoLTE7cj49MDtyLS0pe3ZhciBuPWVbcl07aWYoMD09PW4ucGF0aC5sZW5ndGgmJiJyZXBsYWNlIj09PW4ub3Ape3Q9bi52YWx1ZTticmVha319cj4tMSYmKGU9ZS5zbGljZShyKzEpKTt2YXIgaT13KCJQYXRjaGVzIikuJDtyZXR1cm4gbyh0KT9pKHQsZSk6dGhpcy5wcm9kdWNlKHQsKGZ1bmN0aW9uKHQpe3JldHVybiBpKHQsZSl9KSl9LHR9KCkscnQ9bmV3IGV0LG50PXJ0LnByb2R1Y2U7cnQucHJvZHVjZVdpdGhQYXRjaGVzLmJpbmQocnQpLHJ0LnNldEF1dG9GcmVlemUuYmluZChydCkscnQuc2V0VXNlUHJveGllcy5iaW5kKHJ0KSxydC5hcHBseVBhdGNoZXMuYmluZChydCkscnQuY3JlYXRlRHJhZnQuYmluZChydCkscnQuZmluaXNoRHJhZnQuYmluZChydCk7Y29uc3Qgb3Q9bnR9LDk1Mzc0OSh0LGUscil7ZnVuY3Rpb24gbih0KXtyZXR1cm4gZnVuY3Rpb24oZSl7dmFyIHI9ZS5kaXNwYXRjaCxuPWUuZ2V0U3RhdGU7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbihvKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2Ygbz9vKHIsbix0KTplKG8pfX0KfX1yLmQoZSx7ZGVmYXVsdDooKT0+aX0pO3ZhciBvPW4oKTtvLndpdGhFeHRyYUFyZ3VtZW50PW47Y29uc3QgaT0vXigxOTUwOHw5NDgxOSkkLy50ZXN0KHIuaik/bnVsbDpvfSw3ODc3MjQodCxlLHIpe2lmKHIuZChlLHthcHBseU1pZGRsZXdhcmU6KCk9PnYsYmluZEFjdGlvbkNyZWF0b3JzOigpPT5wLGNvbWJpbmVSZWR1Y2VyczooKT0+bCxjb21wb3NlOigpPT5kLGNyZWF0ZVN0b3JlOigpPT5jfSksIS9eKDE5NTA4fDk0ODE5KSQvLnRlc3Qoci5qKSl2YXIgbj1yKDIyNDEwNyk7ZnVuY3Rpb24gbyh0KXtyZXR1cm4iTWluaWZpZWQgUmVkdXggZXJyb3IgIyIrdCsiOyB2aXNpdCBodHRwczovL3JlZHV4LmpzLm9yZy9FcnJvcnM/Y29kZT0iK3QrIiBmb3IgdGhlIGZ1bGwgbWVzc2FnZSBvciB1c2UgdGhlIG5vbi1taW5pZmllZCBkZXYgZW52aXJvbm1lbnQgZm9yIGZ1bGwgZXJyb3JzLiAifXZhciBpPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJlN5bWJvbC5vYnNlcnZhYmxlfHwiQEBvYnNlcnZhYmxlIix1PWZ1bmN0aW9uKCl7cmV0dXJuIE1hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZyg3KS5zcGxpdCgiIikuam9pbigiLiIpfSxmPXtJTklUOiJAQHJlZHV4L0lOSVQiK3UoKSxSRVBMQUNFOiJAQHJlZHV4L1JFUExBQ0UiK3UoKSxQUk9CRV9VTktOT1dOX0FDVElPTjpmdW5jdGlvbigpe3JldHVybiJAQHJlZHV4L1BST0JFX1VOS05PV05fQUNUSU9OIit1KCl9fTtmdW5jdGlvbiBhKHQpe2lmKCJvYmplY3QiIT10eXBlb2YgdHx8bnVsbD09PXQpcmV0dXJuITE7Zm9yKHZhciBlPXQ7bnVsbCE9PU9iamVjdC5nZXRQcm90b3R5cGVPZihlKTspZT1PYmplY3QuZ2V0UHJvdG90eXBlT2YoZSk7cmV0dXJuIE9iamVjdC5nZXRQcm90b3R5cGVPZih0KT09PWV9ZnVuY3Rpb24gYyh0LGUscil7dmFyIG47aWYoImZ1bmN0aW9uIj09dHlwZW9mIGUmJiJmdW5jdGlvbiI9PXR5cGVvZiByfHwiZnVuY3Rpb24iPT10eXBlb2YgciYmImZ1bmN0aW9uIj09dHlwZW9mIGFyZ3VtZW50c1szXSl0aHJvdyBuZXcgRXJyb3IobygwKSk7aWYoImZ1bmN0aW9uIj09dHlwZW9mIGUmJnZvaWQgMD09PXImJihyPWUsZT12b2lkIDApLHZvaWQgMCE9PXIpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiByKXRocm93IG5ldyBFcnJvcihvKDEpKTtyZXR1cm4gcihjKSh0LGUpfWlmKCJmdW5jdGlvbiIhPXR5cGVvZiB0KXRocm93IG5ldyBFcnJvcihvKDIpKTt2YXIgdT10LGw9ZSxzPVtdLHA9cyxkPSExO2Z1bmN0aW9uIHYoKXtwPT09cyYmKHA9cy5zbGljZSgpKX1mdW5jdGlvbiB5KCl7aWYoZCl0aHJvdyBuZXcgRXJyb3IobygzKSk7cmV0dXJuIGx9ZnVuY3Rpb24gaCh0KXtpZigiZnVuY3Rpb24iIT10eXBlb2YgdCl0aHJvdyBuZXcgRXJyb3Iobyg0KSk7aWYoZCl0aHJvdyBuZXcgRXJyb3Iobyg1KSk7dmFyIGU9ITA7cmV0dXJuIHYoKSxwLnB1c2godCksZnVuY3Rpb24oKXtpZihlKXtpZihkKXRocm93IG5ldyBFcnJvcihvKDYpKTtlPSExLHYoKTt2YXIgcj1wLmluZGV4T2YodCk7cC5zcGxpY2UociwxKSxzPW51bGx9fX1mdW5jdGlvbiBiKHQpe2lmKCFhKHQpKXRocm93IG5ldyBFcnJvcihvKDcpKTtpZih2b2lkIDA9PT10LnR5cGUpdGhyb3cgbmV3IEVycm9yKG8oOCkpO2lmKGQpdGhyb3cgbmV3IEVycm9yKG8oOSkpO3RyeXtkPSEwLGw9dShsLHQpfWZpbmFsbHl7ZD0hMX1mb3IodmFyIGU9cz1wLHI9MDtyPGUubGVuZ3RoO3IrKyl7KDAsZVtyXSkoKX1yZXR1cm4gdH1yZXR1cm4gYih7dHlwZTpmLklOSVR9KSwobj17ZGlzcGF0Y2g6YixzdWJzY3JpYmU6aCxnZXRTdGF0ZTp5LHJlcGxhY2VSZWR1Y2VyOmZ1bmN0aW9uKHQpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiB0KXRocm93IG5ldyBFcnJvcihvKDEwKSk7dT10LGIoe3R5cGU6Zi5SRVBMQUNFfSl9fSlbaV09ZnVuY3Rpb24oKXt2YXIgdCxlPWg7cmV0dXJuKHQ9e3N1YnNjcmliZTpmdW5jdGlvbih0KXtpZigib2JqZWN0IiE9dHlwZW9mIHR8fG51bGw9PT10KXRocm93IG5ldyBFcnJvcihvKDExKSk7ZnVuY3Rpb24gcigpe3QubmV4dCYmdC5uZXh0KHkoKSl9cmV0dXJuIHIoKSx7dW5zdWJzY3JpYmU6ZShyKX19fSlbaV09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30sdH0sbn1mdW5jdGlvbiBsKHQpe2Zvcih2YXIgZT1PYmplY3Qua2V5cyh0KSxyPXt9LG49MDtuPGUubGVuZ3RoO24rKyl7dmFyIGk9ZVtuXTswLCJmdW5jdGlvbiI9PXR5cGVvZiB0W2ldJiYocltpXT10W2ldKX12YXIgdSxhPU9iamVjdC5rZXlzKHIpO3RyeXshZnVuY3Rpb24odCl7T2JqZWN0LmtleXModCkuZm9yRWFjaCgoZnVuY3Rpb24oZSl7dmFyIHI9dFtlXTtpZih2b2lkIDA9PT1yKHZvaWQgMCx7dHlwZTpmLklOSVR9KSl0aHJvdyBuZXcgRXJyb3IobygxMikpO2lmKHZvaWQgMD09PXIodm9pZCAwLHt0eXBlOmYuUFJPQkVfVU5LTk9XTl9BQ1RJT04oKX0pKXRocm93IG5ldyBFcnJvcihvKDEzKSl9KSl9KHIpfWNhdGNoKHQpe3U9dH1yZXR1cm4gZnVuY3Rpb24odCxlKXtpZih2b2lkIDA9PT10JiYodD17fSksdSl0aHJvdyB1O2Zvcih2YXIgbj0hMSxpPXt9LGY9MDtmPGEubGVuZ3RoO2YrKyl7dmFyIGM9YVtmXSxsPXJbY10scz10W2NdLHA9bChzLGUpO2lmKHZvaWQgMD09PXApe2UmJmUudHlwZTt0aHJvdyBuZXcgRXJyb3IobygxNCkpfWlbY109cCxuPW58fHAhPT1zfXJldHVybihuPW58fGEubGVuZ3RoIT09T2JqZWN0LmtleXModCkubGVuZ3RoKT9pOnR9fWZ1bmN0aW9uIHModCxlKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gZSh0LmFwcGx5KHRoaXMsYXJndW1lbnRzKSl9fWZ1bmN0aW9uIHAodCxlKXtpZigiZnVuY3Rpb24iPT10eXBlb2YgdClyZXR1cm4gcyh0LGUpO2lmKCJvYmplY3QiIT10eXBlb2YgdHx8bnVsbD09PXQpdGhyb3cgbmV3IEVycm9yKG8oMTYpKTt2YXIgcj17fTtmb3IodmFyIG4gaW4gdCl7dmFyIGk9dFtuXTsiZnVuY3Rpb24iPT10eXBlb2YgaSYmKHJbbl09cyhpLGUpKX1yZXR1cm4gcn1mdW5jdGlvbiBkKCl7Zm9yKHZhciB0PWFyZ3VtZW50cy5sZW5ndGgsZT1uZXcgQXJyYXkodCkscj0wO3I8dDtyKyspZVtyXT1hcmd1bWVudHNbcl0KO3JldHVybiAwPT09ZS5sZW5ndGg/ZnVuY3Rpb24odCl7cmV0dXJuIHR9OjE9PT1lLmxlbmd0aD9lWzBdOmUucmVkdWNlKChmdW5jdGlvbih0LGUpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiB0KGUuYXBwbHkodm9pZCAwLGFyZ3VtZW50cykpfX0pKX1mdW5jdGlvbiB2KCl7Zm9yKHZhciB0PWFyZ3VtZW50cy5sZW5ndGgsZT1uZXcgQXJyYXkodCkscj0wO3I8dDtyKyspZVtyXT1hcmd1bWVudHNbcl07cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbigpe3ZhciByPXQuYXBwbHkodm9pZCAwLGFyZ3VtZW50cyksaT1mdW5jdGlvbigpe3Rocm93IG5ldyBFcnJvcihvKDE1KSl9LHU9e2dldFN0YXRlOnIuZ2V0U3RhdGUsZGlzcGF0Y2g6ZnVuY3Rpb24oKXtyZXR1cm4gaS5hcHBseSh2b2lkIDAsYXJndW1lbnRzKX19LGY9ZS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB0KHUpfSkpO3JldHVybiBpPWQuYXBwbHkodm9pZCAwLGYpKHIuZGlzcGF0Y2gpLCgwLG4uZGVmYXVsdCkoKDAsbi5kZWZhdWx0KSh7fSxyKSx7fSx7ZGlzcGF0Y2g6aX0pfX19fSwxOTM3MSh0LGUscil7aWYoci5kKGUse2RlZmF1bHQ6KCk9Pm99KSwhL14oMTk1MDh8OTQ4MTkpJC8udGVzdChyLmopKXZhciBuPXIoOTA4MTU0KTtmdW5jdGlvbiBvKHQsZSxyKXtyZXR1cm4oZT0oMCxuLmRlZmF1bHQpKGUpKWluIHQ/T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsZSx7dmFsdWU6cixlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOnRbZV09cix0fX0sMjI0MTA3KHQsZSxyKXtpZihyLmQoZSx7ZGVmYXVsdDooKT0+aX0pLCEvXigxOTUwOHw5NDgxOSkkLy50ZXN0KHIuaikpdmFyIG49cigxOTM3MSk7ZnVuY3Rpb24gbyh0LGUpe3ZhciByPU9iamVjdC5rZXlzKHQpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciBuPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHModCk7ZSYmKG49bi5maWx0ZXIoKGZ1bmN0aW9uKGUpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHQsZSkuZW51bWVyYWJsZX0pKSksci5wdXNoLmFwcGx5KHIsbil9cmV0dXJuIHJ9ZnVuY3Rpb24gaSh0KXtmb3IodmFyIGU9MTtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXt2YXIgcj1udWxsIT1hcmd1bWVudHNbZV0/YXJndW1lbnRzW2VdOnt9O2UlMj9vKE9iamVjdChyKSwhMCkuZm9yRWFjaCgoZnVuY3Rpb24oZSl7KDAsbi5kZWZhdWx0KSh0LGUscltlXSl9KSk6T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXModCxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhyKSk6byhPYmplY3QocikpLmZvckVhY2goKGZ1bmN0aW9uKGUpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LGUsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihyLGUpKX0pKX1yZXR1cm4gdH19LDg5MjYzOSh0LGUscil7aWYoci5kKGUse2RlZmF1bHQ6KCk9Pm99KSwhL14oMTk1MDh8OTQ4MTkpJC8udGVzdChyLmopKXZhciBuPXIoMTI5NDc2KTtmdW5jdGlvbiBvKHQsZSl7aWYoIm9iamVjdCIhPSgwLG4uZGVmYXVsdCkodCl8fCF0KXJldHVybiB0O3ZhciByPXRbU3ltYm9sLnRvUHJpbWl0aXZlXTtpZih2b2lkIDAhPT1yKXt2YXIgbz1yLmNhbGwodCxlfHwiZGVmYXVsdCIpO2lmKCJvYmplY3QiIT0oMCxuLmRlZmF1bHQpKG8pKXJldHVybiBvO3Rocm93IG5ldyBUeXBlRXJyb3IoIkBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuIil9cmV0dXJuKCJzdHJpbmciPT09ZT9TdHJpbmc6TnVtYmVyKSh0KX19LDkwODE1NCh0LGUscil7aWYoci5kKGUse2RlZmF1bHQ6KCk9Pml9KSwhL14oMTk1MDh8OTQ4MTkpJC8udGVzdChyLmopKXZhciBuPXIoMTI5NDc2KTtpZighL14oMTk1MDh8OTQ4MTkpJC8udGVzdChyLmopKXZhciBvPXIoODkyNjM5KTtmdW5jdGlvbiBpKHQpe3ZhciBlPSgwLG8uZGVmYXVsdCkodCwic3RyaW5nIik7cmV0dXJuInN5bWJvbCI9PSgwLG4uZGVmYXVsdCkoZSk/ZTplKyIifX0sMTI5NDc2KHQsZSxyKXtmdW5jdGlvbiBuKHQpe3JldHVybiBuPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKHQpe3JldHVybiB0eXBlb2YgdH06ZnVuY3Rpb24odCl7cmV0dXJuIHQmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJnQuY29uc3RydWN0b3I9PT1TeW1ib2wmJnQhPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiB0fSxuKHQpfXIuZChlLHtkZWZhdWx0OigpPT5ufSl9fV0pOw=="}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/67930.f0d77c1721dc8fa0d333.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:13.933Z","timestamp":1785148033933,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/67930.f0d77c1721dc8fa0d333.js HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:13 GMT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a61b1a9-1bb1d\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Thu, 23 Jul 2026 06:16:09 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/23/2026 10:17:28\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 56c01493054208195aed08f02a3fee3e\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":113437,"size_decoded":36882,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, Unicode text, UTF-8 text, with very long lines (3070)","md5":"990cf69851fde87b4493a4a244863db8","sha1":"ee7d5c61c67346c3d87c7e74c026bf4563383065","sha256":"6dfa7fc1e68a590ca27e08e6e6764259c28a0d7b39bb6971ab6383e8f246b6ac","sha512":"c819313da9003f50657bb1bc8de38b3e74208ac8407598c9755760b3b87d2ef157dbfebfaab0286f372c6586681bc19bca3e95ffcd2493326e2ae3b7c4947127","ssdeep":"3072:R0RDUtOcN3trUIjzAXK8ZrhLy6fXK6ZKubLBc4MO:ZZdTjsXK8ZVy0subLBcrO","tlshash":"66b33be3b1a0f0a9556601e984be0103971e6966bc47887cf6bc9cce155c9caf636f3c","first_seen":"2026-07-23T14:00:31.373835Z","last_seen":"2026-07-27T12:52:15.518079Z","times_seen":110,"resource_available":true,"data":"KHNlbGYud2VicGFja0NodW5rdHJhZGluZ3ZpZXc9c2VsZi53ZWJwYWNrQ2h1bmt0cmFkaW5ndmlld3x8W10pLnB1c2goW1s2NDY0NCw2NzkzMF0sezkxNDQ4NyhlLHQpe3ZhciBhOyFmdW5jdGlvbigpeyJ1c2Ugc3RyaWN0Ijt2YXIgcz17fS5oYXNPd25Qcm9wZXJ0eTtmdW5jdGlvbiBvKCl7Zm9yKHZhciBlPVtdLHQ9MDt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgYT1hcmd1bWVudHNbdF07aWYoYSl7dmFyIGk9dHlwZW9mIGE7aWYoInN0cmluZyI9PT1pfHwibnVtYmVyIj09PWkpZS5wdXNoKGEpO2Vsc2UgaWYoQXJyYXkuaXNBcnJheShhKSYmYS5sZW5ndGgpe3ZhciByPW8uYXBwbHkobnVsbCxhKTtyJiZlLnB1c2gocil9ZWxzZSBpZigib2JqZWN0Ij09PWkpZm9yKHZhciBuIGluIGEpcy5jYWxsKGEsbikmJmFbbl0mJmUucHVzaChuKX19cmV0dXJuIGUuam9pbigiICIpfWUuZXhwb3J0cz8oby5kZWZhdWx0PW8sZS5leHBvcnRzPW8pOnZvaWQgMD09PShhPWZ1bmN0aW9uKCl7cmV0dXJuIG99LmFwcGx5KHQsW10pKXx8KGUuZXhwb3J0cz1hKX0oKX0sNzE3NjAoZSl7ZS5leHBvcnRzPXsiY2hlY2tib3gtc2l6ZSI6IjE4cHgiLCJjaGVja2JveC1wcmltYXJ5LWRlZmF1bHQtYmciOiJ2YXIoLS1jb2xvci1jb250YWluZXItZmlsbC1wcmltYXJ5LW5ldXRyYWwtZXh0cmEtYm9sZCkiLCJjaGVja2JveC1wcmltYXJ5LWhvdmVyLWJnIjoidmFyKC0tY29sb3ItY29udGFpbmVyLWZpbGwtcHJpbWFyeS1uZXV0cmFsLWJvbGQpIiwiY2hlY2tib3gtcHJpbWFyeS1hY3RpdmUtYmciOiJ2YXIoLS1jb2xvci1jb250YWluZXItZmlsbC1wcmltYXJ5LW5ldXRyYWwtbWVkaXVtKSIsImNoZWNrYm94LXByaW1hcnktZmciOiJ2YXIoLS1jb2xvci1jb250YWluZXItZmlsbC1xdWluYXJ5LWludmVyc2UpIiwiY2hlY2tib3gtZGFuZ2VyLWRlZmF1bHQtYmciOiJ2YXIoLS1jb2xvci1jb250YWluZXItZmlsbC1wcmltYXJ5LWRhbmdlci1ib2xkKSIsImNoZWNrYm94LWRhbmdlci1ob3Zlci1iZyI6InZhcigtLWNvbG9yLWNvbnRhaW5lci1maWxsLXByaW1hcnktZGFuZ2VyLXNlbWktYm9sZCkiLCJjaGVja2JveC1kYW5nZXItYWN0aXZlLWJnIjoidmFyKC0tY29sb3ItY29udGFpbmVyLWZpbGwtcHJpbWFyeS1kYW5nZXIpIiwiY2hlY2tib3gtZGFuZ2VyLWZnIjoidmFyKC0tY29sb3ItY29udGFpbmVyLWZpbGwtcXVhdGVybmFyeS1pbnZlcnNlKSIsd3JhcHBlcjoid3JhcHBlci1zVzg3cFF6SyIsaW5wdXQ6ImlucHV0LXNXODdwUXpLIixmb2N1c091dGxpbmU6ImZvY3VzT3V0bGluZS1zVzg3cFF6SyIscHJpbWFyeToicHJpbWFyeS1zVzg3cFF6SyIsZGlzYWJsZWQ6ImRpc2FibGVkLXNXODdwUXpLIixkYW5nZXI6ImRhbmdlci1zVzg3cFF6SyIsdmlldzoidmlldy1zVzg3cFF6SyJ9fSw4MzI1MTgoZSl7ZS5leHBvcnRzPXsiY2hlY2tib3gtc2l6ZSI6IjE4cHgiLGJveDoiYm94LVhmR2tCQnFmIix1bmNoZWNrZWQ6InVuY2hlY2tlZC1YZkdrQkJxZiIsY2hlY2tlZDoiY2hlY2tlZC1YZkdrQkJxZiIsbWl4ZWQ6Im1peGVkLVhmR2tCQnFmIixkaXNhYmxlZDoiZGlzYWJsZWQtWGZHa0JCcWYiLGNoZWNrZWRNYXJrOiJjaGVja2VkTWFyay1YZkdrQkJxZiIsbWl4ZWRNYXJrOiJtaXhlZE1hcmstWGZHa0JCcWYifX0sMjgyNTkzKGUpe2UuZXhwb3J0cz17Y2hlY2tib3g6ImNoZWNrYm94LWhVc25uMlpfIixyZXZlcnNlOiJyZXZlcnNlLWhVc25uMlpfIixiYXNlbGluZToiYmFzZWxpbmUtaFVzbm4yWl8iLGxhYmVsOiJsYWJlbC1oVXNubjJaXyIsZGlzYWJsZWQ6ImRpc2FibGVkLWhVc25uMlpfIixwcmltYXJ5OiJwcmltYXJ5LWhVc25uMlpfIixkYW5nZXI6ImRhbmdlci1oVXNubjJaXyJ9fSw5OTQxNShlKXtlLmV4cG9ydHM9e2lubGluZUljb246ImlubGluZUljb24tdDZXWmxMUU8ifX0sODMwMTk3KGUpe2UuZXhwb3J0cz17ZWRpdG9yRXJyb3JCdXR0b25zOiJlZGl0b3JFcnJvckJ1dHRvbnMtenVrOWVJTTMifX0sODc3OTk5KGUpe2UuZXhwb3J0cz17d3JhcHBlcjoid3JhcHBlci1QZ3VBckxGZiIsd3JhcEVycm9yOiJ3cmFwRXJyb3ItUGd1QXJMRmYiLGNsaWNrZWRBbmltOiJjbGlja2VkQW5pbS1QZ3VBckxGZiIsZXJyb3JUZXh0OiJlcnJvclRleHQtUGd1QXJMRmYiLHdyYXBTdGFja1RyYWNlOiJ3cmFwU3RhY2tUcmFjZS1QZ3VBckxGZiJ9fSw3NTc5MjMoZSl7ZS5leHBvcnRzPXtkZXNjcmlwdGlvbjoiZGVzY3JpcHRpb24tamVuTlZzX0MiLG1vZGU6Im1vZGUtamVuTlZzX0MiLGFjdGlvbnM6ImFjdGlvbnMtamVuTlZzX0MiLGxpbms6ImxpbmstamVuTlZzX0MifX0sNjg1OTI2KGUpe2UuZXhwb3J0cz17ZGVmYXVsdGVkU3RhdHVzOiJkZWZhdWx0ZWRTdGF0dXMtSnV4UlREbV8ifX0sMTUyMDY5KGUpe2UuZXhwb3J0cz17aGFsYWxTdGF0dXM6ImhhbGFsU3RhdHVzLW5QVTM5cndVIn19LDkyNDAyMChlKXtlLmV4cG9ydHM9e2hrZXhDb21tZW50OiJoa2V4Q29tbWVudC1lYnVOU3ZvdyJ9fSwyODQ0NjcoZSl7ZS5leHBvcnRzPXtsZXRJdFNub3dTdGF0dXM6ImxldEl0U25vd1N0YXR1cy1EdDMwYnZVQSJ9fSw1NzE0NjQoZSl7ZS5leHBvcnRzPXt0dkNhbGN1bGF0ZWRQYWlyOiJ0dkNhbGN1bGF0ZWRQYWlyLVMzemNjSV9QIn19LDQ0NTEoZSl7ZS5leHBvcnRzPXt1cGNvbWluZ0lwb1N0YXR1czoidXBjb21pbmdJcG9TdGF0dXMtdEtaUm1JSzUifX0sMzgyNTkzKGUpe2UuZXhwb3J0cz17d3JhcFN0YWNrVHJhY2U6IndyYXBTdGFja1RyYWNlLXFxMmpTcjlPIixzdGFja1RyYWNlTGluZToic3RhY2tUcmFjZUxpbmUtcXEyalNyOU8iLGZ1bmN0aW9uTmFtZToiZnVuY3Rpb25OYW1lLXFxMmpTcjlPIixiYXJJbmRleDoiYmFySW5kZXgtcXEyalNyOU8iLGluZm86ImluZm8tcXEyalNyOU8iLGhpZGVFbXB0eToiaGlkZUVtcHR5LXFxMmpTcjlPIn19LDM4NzIzMShlLHQsYSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHMoZSx0LGE9e30pe3JldHVybiBPYmplY3QuYXNzaWduKHt9LGUsZnVuY3Rpb24oZSx0LGE9e30pe2NvbnN0IHM9T2JqZWN0LmFzc2lnbih7fSx0KTtmb3IoY29uc3QgbyBvZiBPYmplY3Qua2V5cyh0KSl7Y29uc3QgaT1hW29dfHxvCjtpIGluIGUmJihzW29dPVtlW2ldLHRbb11dLmpvaW4oIiAiKSl9cmV0dXJuIHN9KGUsdCxhKSl9YS5kKHQse21lcmdlVGhlbWVzOigpPT5zfSl9LDg2MDkwNyhlLHQsYSl7InVzZSBzdHJpY3QiO2EuZCh0LHtDaGVja2JveElucHV0OigpPT5wLEdyb3VwZWRDaGVja2JveElucHV0OigpPT5tfSk7dmFyIHM9YSg3Nzk0NzQpLG89YSg5MTQ0ODcpLGk9YS5uKG8pLHI9YSgzNDUxMTYpLG49YSg2NTg0NiksbD1hKDE0NzkwMSksdT1hKDUzNjEyNSksYz1hKDcxNzYwKSxkPWEubihjKTtjb25zdCBoPWAke2wuVUlfTElCX0RBVEFfUUFfSURfUFJFRklYfWNoZWNrYm94LWlucHV0YDtmdW5jdGlvbiBwKGUpe2NvbnN0e2ludGVudDp0LGRpc2FibGVkOmEsY2xhc3NOYW1lOm8sdGl0bGU6bixzdHlsZTpsLGNoZWNrZWQ6YyxpZDpwLHRhYkluZGV4Om0sbmFtZTpfLHZhbHVlOlMscm9sZTpmLG9uQ2hhbmdlOncscmVmZXJlbmNlOmIsYXJpYVJlcXVpcmVkOmcsYXJpYURlc2NyaWJlZGJ5OnYsYXJpYUludmFsaWQ6eSxkYXRhUWFJZDpNfT1lLEk9dD8/InByaW1hcnkiO3JldHVybiBzLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6aSgpKGQoKS53cmFwcGVyLGEmJmQoKS5kaXNhYmxlZCxvKSx0aXRsZTpuLHN0eWxlOmwsImRhdGEtcWEtaWQiOk19LHMuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZTppKCkoZCgpLnZpZXcsZCgpW0ldKX0scy5jcmVhdGVFbGVtZW50KHUuQ2hlY2tib3hWaWV3SW1wbCx7Y2hlY2tlZDpjLGRpc2FibGVkOmEsZGF0YVFhSWQ6YCR7aH0tdmlld2B9KSkscy5jcmVhdGVFbGVtZW50KCJpbnB1dCIse2lkOnAsdGFiSW5kZXg6bSxjbGFzc05hbWU6aSgpKGQoKVtJXSxkKCkuaW5wdXQpLHR5cGU6ImNoZWNrYm94IixuYW1lOl8sY2hlY2tlZDohMSE9PWMsZGlzYWJsZWQ6YSx2YWx1ZTpTLHJvbGU6ZixvbkNoYW5nZTp3LHJlZjpiLCJhcmlhLWNoZWNrZWQiOigoKT0+e3N3aXRjaChjKXtjYXNlITA6cmV0dXJuInRydWUiO2Nhc2UhMTpyZXR1cm4iZmFsc2UiO2Nhc2UibWl4ZWQiOnJldHVybiJtaXhlZCJ9fSkoKSwiYXJpYS1yZXF1aXJlZCI6ZywiYXJpYS1kZXNjcmliZWRieSI6diwiYXJpYS1pbnZhbGlkIjp5LCJkYXRhLXFhLWlkIjpgJHtofS1pbnB1dGAsLi4uKDAsci5maWx0ZXJEYXRhUHJvcHMpKGUpfSkscy5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6ZCgpLmZvY3VzT3V0bGluZX0pKX1jb25zdCBtPSgwLG4ubWFrZVN3aXRjaEdyb3VwSXRlbSkocCl9LDUzNjEyNShlLHQsYSl7InVzZSBzdHJpY3QiO2EuZCh0LHtDaGVja2JveFZpZXdJbXBsOigpPT5ofSk7dmFyIHM9YSg3Nzk0NzQpLG89YSg5MTQ0ODcpLGk9YS5uKG8pLHI9YSgyMTcyNzQpLG49YSgxNDc5MDEpLGw9YSgxMjU4OTcpLHU9YS5uKGwpLGM9YSg4MzI1MTgpLGQ9YS5uKGMpO2Z1bmN0aW9uIGgoZSl7Y29uc3R7Y2hlY2tlZDp0LGRpc2FibGVkOmEsZGF0YVFhSWQ6b309ZTtyZXR1cm4gcy5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6aSgpKGQoKS5ib3gsITA9PT10JiZkKCkuY2hlY2tlZCwhMT09PXQmJmQoKS51bmNoZWNrZWQsIm1peGVkIj09PXQmJmQoKS5taXhlZCxhJiZkKCkuZGlzYWJsZWQpLCJkYXRhLXFhLWlkIjooMCxuLmNvbmNhdElmTm90TnVsbCkoYCR7bi5VSV9MSUJfREFUQV9RQV9JRF9QUkVGSVh9Y2hlY2tib3gtdmlldy0ke3Q/ImNoZWNrZWQiOiJ1bmNoZWNrZWQifWAsbyl9LCEwPT09dCYmcy5jcmVhdGVFbGVtZW50KHIuQmxvY2tJY29uLHtpY29uOnUoKSxjbGFzc05hbWU6ZCgpLmNoZWNrZWRNYXJrfSksIm1peGVkIj09PXQmJnMuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOmQoKS5taXhlZE1hcmt9KSl9fSw5NzUxOTgoZSx0LGEpeyJ1c2Ugc3RyaWN0IjthLmQodCx7Q2hlY2tib3g6KCk9PmMsR3JvdXBlZENoZWNrYm94OigpPT5kfSk7dmFyIHM9YSg3Nzk0NzQpLG89YSg5MTQ0ODcpLGk9YS5uKG8pLHI9YSg2NTg0Niksbj1hKDg2MDkwNyksbD1hKDI4MjU5MyksdT1hLm4obCk7ZnVuY3Rpb24gYyhlKXtjb25zdHtjbGFzc05hbWU6dCxsYWJlbFBvc2l0aW9uUmV2ZXJzZTphLGxhYmVsQWxpZ25CYXNlbGluZTpvLGlucHV0Q2xhc3NOYW1lOnIsbGFiZWxDbGFzc05hbWU6bCxsYWJlbDpjLHRpdGxlOmQsZGlzYWJsZWQ6aCxpbnRlbnQ6cD0icHJpbWFyeSIsZGF0YVFhSWQ6bSx2YWx1ZTpfLG9uQ2hhbmdlOlMsbmFtZTpmLGNoZWNrZWQ6dyxpZDpiLHRhYkluZGV4Omcscm9sZTp2LHJlZmVyZW5jZTp5LHN0eWxlOk0sYXJpYVJlcXVpcmVkOkksYXJpYURlc2NyaWJlZGJ5OkUsYXJpYUludmFsaWQ6QyxhdXRvRm9jdXM6VCwuLi5rfT1lLHg9T2JqZWN0LmZyb21FbnRyaWVzKE9iamVjdC5lbnRyaWVzKGspLmZpbHRlcigoKFtlLHRdKT0+ZS5zdGFydHNXaXRoKCJkYXRhIikpKSksRD1pKCkodCx1KCkuY2hlY2tib3gsYSYmdSgpLnJldmVyc2UsbyYmdSgpLmJhc2VsaW5lKSxWPWkoKSh1KCkubGFiZWwsbCxoJiZ1KCkuZGlzYWJsZWQsdSgpW3BdKSxQPWM/cy5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOlYsdGl0bGU6ZH0sYyk6bnVsbDtyZXR1cm4gcy5jcmVhdGVFbGVtZW50KCJsYWJlbCIse2NsYXNzTmFtZTpELCJkYXRhLXFhLWlkIjptfSxzLmNyZWF0ZUVsZW1lbnQobi5DaGVja2JveElucHV0LHsuLi54LHZhbHVlOl8sb25DaGFuZ2U6UyxjbGFzc05hbWU6cixpbnRlbnQ6cCxuYW1lOmYsY2hlY2tlZDp3LGlkOmIsdGFiSW5kZXg6Zyxyb2xlOnYscmVmZXJlbmNlOnksc3R5bGU6TSxhcmlhUmVxdWlyZWQ6SSxhcmlhRGVzY3JpYmVkYnk6RSxhcmlhSW52YWxpZDpDLGRpc2FibGVkOmgsYXV0b0ZvY3VzOlR9KSxQKX1jb25zdCBkPSgwLHIubWFrZVN3aXRjaEdyb3VwSXRlbSkoYyl9LDUyOTQxMShlLHQsYSl7InVzZSBzdHJpY3QiO2EuZCh0LHt1c2VJc0ZpcnN0UmVuZGVyOigpPT5vLHVzZUlzTm9uRmlyc3RSZW5kZXI6KCk9Pml9KTt2YXIgcz1hKDc3OTQ3NCk7ZnVuY3Rpb24gbygpe2NvbnN0W2UsdF09KDAscy51c2VTdGF0ZSkoITApO3JldHVybigwLHMudXNlRWZmZWN0KSgoKCk9Pnt0KCExKX0pLFtdKSxlfWZ1bmN0aW9uIGkoKXtyZXR1cm4hbygpfX0sCjExOTc1MChlLHQsYSl7InVzZSBzdHJpY3QiO2EuZCh0LHtJY29uUXVlc3Rpb25JbmZvcm1hdGlvbjooKT0+SSxJY29uUXVlc3Rpb25JbmZvcm1hdGlvbkJ1dHRvbjooKT0+RX0pO3ZhciBzLG89YSg3Nzk0NzQpLGk9YSg5MTQ0ODcpLHI9YS5uKGkpLG49YSgzNDUxMTYpLGw9YSgyNzMzMTApLHU9YSg3ODU5OTUpLGM9YS5uKHUpLGQ9YSg1MjcyMTkpLGg9YS5uKGQpLHA9YSg2NzMwNjUpLG09YS5uKHApLF89YSg0MDAwNDYpLFM9YS5uKF8pLGY9YSg5OTQ1KSx3PWEubihmKTshZnVuY3Rpb24oZSl7ZS5TbWFsbD0ic21hbGwiLGUuTWVkaXVtPSJtZWRpdW0iLGUuTGFyZ2U9ImxhcmdlIn0oc3x8KHM9e30pKTtjb25zdCBiPSJzbWFsbCI7dmFyIGcsdjshZnVuY3Rpb24oZSl7ZS5EZWZhdWx0PSJkZWZhdWx0IixlLkRhbmdlcj0iZGFuZ2VyIixlLldhcm5pbmc9Indhcm5pbmciLGUuU3VjY2Vzcz0ic3VjY2VzcyIsZS5OZXV0cmFsPSJuZXV0cmFsIixlLk5ldXRyYWxMaWdodD0ibmV1dHJhbC1saWdodCJ9KGd8fChnPXt9KSksZnVuY3Rpb24oZSl7ZS5JbmZvPSJpbmZvIixlLlF1ZXN0aW9uPSJxdWVzdGlvbiIsZS5DaGVjaz0iY2hlY2siLGUuRXhjbGFtYXRpb249ImV4Y2xhbWF0aW9uIn0odnx8KHY9e30pKTtjb25zdCB5PXtpbmZvOmgoKSxxdWVzdGlvbjpjKCksY2hlY2s6bSgpLGV4Y2xhbWF0aW9uOlMoKX0sTT1vLmZvcndhcmRSZWYoKChlLHQpPT5vLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHsuLi5lLHJlZjp0LGNsYXNzTmFtZTpyKCkoZS5jbGFzc05hbWUsdygpWyJuby1hY3RpdmUtc3RhdGUiXSl9KSkpLEk9by5mb3J3YXJkUmVmKCgoZSx0KT0+e2NvbnN0e2ljb246YT0iZXhjbGFtYXRpb24iLGludGVudDpzPSJkZWZhdWx0IixhcmlhTGFiZWw6aSx0b29sdGlwOnUsY2xhc3NOYW1lOmMscmVuZGVyQ29tcG9uZW50OmQ9TSx0YWJJbmRleDpoPTAsc2l6ZTpwPWIsb25Gb2N1czptLG9uQmx1cjpfLG9uQ2xpY2s6UywuLi5mfT1lLGc9eVthXT8/YTtyZXR1cm4gby5jcmVhdGVFbGVtZW50KGQse2NsYXNzTmFtZTpyKCkoYyx3KCkuaWNvbldyYXBwZXIsdygpW3NdLHcoKVtwXSksdGl0bGU6dSxyZWY6dCx0YWJJbmRleDpoLG9uRm9jdXM6bSxvbkJsdXI6XyxvbkNsaWNrOlMsLi4uKDAsbi5maWx0ZXJEYXRhUHJvcHMpKGYpfSxvLmNyZWF0ZUVsZW1lbnQobC5JY29uLHsiYXJpYS1oaWRkZW4iOiFpLCJhcmlhLWxhYmVsIjppLGljb246ZyxjbGFzc05hbWU6dygpLmljb259KSl9KSk7ZnVuY3Rpb24gRShlKXtjb25zdHtpY29uOnQ9ImV4Y2xhbWF0aW9uIixpbnRlbnQ6YT0iZGVmYXVsdCIsc2l6ZTpzPWIsb25DbGljazppLG9uTW91c2VFbnRlcjpuLG9uTW91c2VMZWF2ZTp1LG9uRm9jdXM6YyxvbkJsdXI6ZCxyZWZlcmVuY2U6aCxhcmlhTGFiZWw6cH09ZSxtPXlbdF0/P3Q7cmV0dXJuIG8uY3JlYXRlRWxlbWVudCgiYnV0dG9uIix7Y2xhc3NOYW1lOnIoKSh3KCkuaWNvbldyYXBwZXIsdygpW2FdLHcoKVtzXSkscmVmOmgsb25DbGljazppLG9uTW91c2VFbnRlcjpuLG9uTW91c2VMZWF2ZTp1LG9uRm9jdXM6YyxvbkJsdXI6ZCwiYXJpYS1sYWJlbCI6cH0sby5jcmVhdGVFbGVtZW50KGwuSWNvbix7aWNvbjptLGNsYXNzTmFtZTp3KCkuaWNvbn0pKX19LDc1ODIzOChlLHQsYSl7InVzZSBzdHJpY3QiO2EuZCh0LHtJbmxpbmVJY29uOigpPT51fSk7dmFyIHM9YSg5MTQ0ODcpLG89YS5uKHMpLGk9YSg3Nzk0NzQpLHI9YSg5NDg0NTApLG49YSg5OTQxNSksbD1hLm4obik7Y29uc3QgdT1pLmZvcndhcmRSZWYoKChlLHQpPT57Y29uc3R7Y2xhc3NOYW1lOmEsLi4uc309ZTtyZXR1cm4gaS5jcmVhdGVFbGVtZW50KHIuQ29tbW9uSWNvbix7Li4ucyxjbGFzc05hbWU6bygpKGEsbCgpLmlubGluZUljb24pLHJlZjp0fSl9KSl9LDMwNjI4NyhlLHQsYSl7InVzZSBzdHJpY3QiO2EuZCh0LHt1c2VXaW5kb3dSZXNpemVUcmlnZ2VyOigpPT5uLHVzZVdpbmRvd1Njcm9sbFRyaWdnZXI6KCk9Pmx9KTt2YXIgcz1hKDc3OTQ3NCksbz1hKDcwNjk0MyksaT1hKDE1OTI1Nik7ZnVuY3Rpb24gcihlLHQsYSl7Y29uc3Qgcj0oMCxzLnVzZU1lbW8pKCgoKT0+KDAsby5jcmVhdGVTaWduYWwpKCkpLFtdKTtyZXR1cm4oMCxpLnVzZUNvbmRpdGlvbmFsRWZmZWN0KShlLCgoKT0+KHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKHQsci5maXJlLGEpLCgpPT57d2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIodCxyLmZpcmUsYSl9KSksW3JdKSxyfWNvbnN0IG49KGU9ITApPT5yKGUsInJlc2l6ZSIsITApLGw9KGU9ITApPT5yKGUsInNjcm9sbCIsITApfSw4Njk4NDIoZSx0LGEpeyJ1c2Ugc3RyaWN0IjthLmQodCx7U3dpdGNoR3JvdXBDb250ZXh0OigpPT5pfSk7dmFyIHM9YSg3Nzk0NzQpLG89YSg4NjIzODgpO2NvbnN0IGk9KDAscy5jcmVhdGVDb250ZXh0KSh7Z2V0TmFtZTooKT0+IiIsZ2V0VmFsdWVzOigpPT5bXSxnZXRPbkNoYW5nZTooKT0+by5kZWZhdWx0LHN1YnNjcmliZTpvLmRlZmF1bHQsdW5zdWJzY3JpYmU6by5kZWZhdWx0fSl9LDY1ODQ2KGUsdCxhKXsidXNlIHN0cmljdCI7YS5kKHQse21ha2VTd2l0Y2hHcm91cEl0ZW06KCk9Pml9KTt2YXIgcz1hKDc3OTQ3NCksbz1hKDg2OTg0Mik7ZnVuY3Rpb24gaShlKXt2YXIgdDtyZXR1cm4gdD1jbGFzcyBleHRlbmRzIHMuUHVyZUNvbXBvbmVudHtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5fb25DaGFuZ2U9ZT0+e3RoaXMuY29udGV4dC5nZXRPbkNoYW5nZSgpKGUudGFyZ2V0LnZhbHVlKX0sdGhpcy5fb25VcGRhdGU9ZT0+e2UuaW5jbHVkZXModGhpcy5wcm9wcy52YWx1ZSkmJnRoaXMuZm9yY2VVcGRhdGUoKX19Y29tcG9uZW50RGlkTW91bnQoKXt0aGlzLmNvbnRleHQuc3Vic2NyaWJlKHRoaXMuX29uVXBkYXRlKX1yZW5kZXIoKXtyZXR1cm4gcy5jcmVhdGVFbGVtZW50KGUsey4uLnRoaXMucHJvcHMsbmFtZTp0aGlzLl9nZXROYW1lKCksb25DaGFuZ2U6dGhpcy5fb25DaGFuZ2UsY2hlY2tlZDp0aGlzLl9pc0NoZWNrZWQoKX0pfWNvbXBvbmVudFdpbGxVbm1vdW50KCl7dGhpcy5jb250ZXh0LnVuc3Vic2NyaWJlKHRoaXMuX29uVXBkYXRlKX1fZ2V0TmFtZSgpewpyZXR1cm4gdGhpcy5jb250ZXh0LmdldE5hbWUoKX1faXNDaGVja2VkKCl7cmV0dXJuIHRoaXMuY29udGV4dC5nZXRWYWx1ZXMoKS5pbmNsdWRlcyh0aGlzLnByb3BzLnZhbHVlKX19LHQuY29udGV4dFR5cGU9by5Td2l0Y2hHcm91cENvbnRleHQsdH19LDIwNTYxMShlLHQsYSl7InVzZSBzdHJpY3QiO2EuZCh0LHtjcmVhdGVXVkZyb21HZXR0ZXJBbmRTdWJzY3JpcHRpb25zOigpPT5vfSk7dmFyIHM9YSgyMzIzNjQpO2Z1bmN0aW9uIG8oZSx0KXtjb25zdCBhPW5ldyBzLldhdGNoZWRWYWx1ZShlKCkpLG89e307dC5mb3JFYWNoKCh0PT50LnN1YnNjcmliZShvLCgoKT0+e2Euc2V0VmFsdWUoZSgpKX0pKSkpO3JldHVybiBhLnJlYWRvbmx5KCkuc3Bhd24oKCgpPT50LmZvckVhY2goKGU9PmUudW5zdWJzY3JpYmVBbGwobykpKSkpfX0sOTAxMDIyKGUsdCxhKXsidXNlIHN0cmljdCI7YS5kKHQse1NFUEFSQVRPUl9QUkVGSVg6KCk9PnMsaXNTZXBhcmF0b3JJdGVtOigpPT5vfSk7Y29uc3Qgcz0iIyMjIjtmdW5jdGlvbiBvKGUpe3JldHVybiBlLnN0YXJ0c1dpdGgocyl9fSw4MDI1MjgoZSx0LGEpeyJ1c2Ugc3RyaWN0IjthLmQodCx7ZmV0Y2hFZGl0b3JFcnJvcjooKT0+dSxmZXRjaExhc3RVcGRhdGVSZWxlYXNlTm90ZXNUaW1lOigpPT5jfSk7dmFyIHM9YSgzODQwMTcpO2NvbnN0IG89Ii9waW5lLXNjcmlwdC1kb2NzLyIsaT1gJHtvfWRvY3VtZW50ZWQtZXJyb3JzLmpzb25gLHI9YCR7b31lcnJvcnMvYDtsZXQgbj1udWxsLGw9bnVsbDthc3luYyBmdW5jdGlvbiB1KGUsdCl7aWYoIWUpcmV0dXJuIG51bGw7Y29uc3QgYT1hd2FpdChhc3luYyBlPT5sfHxufHwobD0oYXN5bmMoKT0+e2NvbnN0IHQ9YXdhaXQoMCxzLmZldGNoKShpLHtjYWNoZToiZGVmYXVsdCIsc2lnbmFsOmV9KTtpZighdC5vayl0aHJvdyBuZXcgRXJyb3IoYEZhaWxlZCB0byBmZXRjaCBlcnJvciBjb2RlczogJHt0LnN0YXR1c30gJHt0LnN0YXR1c1RleHR9YCk7Y29uc3QgYT1hd2FpdCB0Lmpzb24oKTtyZXR1cm4gbj1uZXcgU2V0KGEpLGw9bnVsbCxufSkoKSxsKSkodCk7cmV0dXJuIGEuaGFzKGUpP2Ake3dpbmRvdy5sb2NhdGlvbi5vcmlnaW59JHtyfSR7ZX1gOm51bGx9YXN5bmMgZnVuY3Rpb24gYygpe3JldHVybihhd2FpdCgwLHMuZmV0Y2gpKCIvcGluZS1zY3JpcHQtZG9jcy9sYXN0LXVwZGF0ZS10aW1lLmpzb24iKSkuanNvbigpfX0sMTA4MTgyKGUsdCxhKXsidXNlIHN0cmljdCI7YS5kKHQse2NvbG9yRGVmYXVsdGVkOigpPT5sLGNvbG9yRGVsYXlNb2RlOigpPT5zLGNvbG9yRW9kTW9kZTooKT0+byxjb2xvckhhbGFsTW9kZTooKT0+cixjb2xvck5vdEFjY3VyYXRlTW9kZTooKT0+aSxjb2xvclRWQ2FsY3VsYXRlZFBhaXJNb2RlOigpPT5uLGNvbG9yVXBjb21pbmdJcG86KCk9PnV9KTtjb25zdCBzPSJ2YXIoLS1jb2xvci1jb250ZW50LXByaW1hcnktd2FybmluZy1ib2xkKSIsbz0idmFyKC0tY29sb3ItY29udGVudC1zZWNvbmRhcnktYWNjZW50LW90aGVyLXNlbWktYm9sZCkiLGk9InZhcigtLWNvbG9yLWNvbnRlbnQtc2Vjb25kYXJ5LWRhbmdlci1leHRyYS1ib2xkKSIscj0idmFyKC0tY29sb3ItY29udGVudC10ZXJ0aWFyeS1zdWNjZXNzLWV4dHJhLWJvbGQpIixuPSJ2YXIoLS1jb2xvci1jb250ZW50LXNlY29uZGFyeS1hY2NlbnQtb3RoZXItc2VtaS1ib2xkKSIsbD0idmFyKC0tY29sb3ItY29udGVudC1wcmltYXJ5LWRhbmdlci1zZW1pLWJvbGQpIix1PSJ2YXIoLS1jb2xvci1jb250ZW50LXByaW1hcnktYWNjZW50LW90aGVyLWV4dHJhLWJvbGQpIn0sMTkzNTA4KGUsdCxhKXsidXNlIHN0cmljdCI7YS5kKHQse0hLRVhEYXRhQ29tbWVudDooKT0+UCxIS0VYRGF0YVRpdGxlOigpPT5WLGJhdHNUb1JlYWx0aW1lQ3J1Y2lhbEh0bWw6KCk9PnksYmF0c1RvUmVhbHRpbWVIdG1sMTooKT0+YixiYXRzVG9SZWFsdGltZUh0bWwyV2l0aEV4Y2hhbmdlOigpPT52LGJhdHNUb1JlYWx0aW1lSHRtbDJXaXRob3V0RXhjaGFuZ2U6KCk9PmcsZGVmYXVsdGVkSHRtbDooKT0+UixkZWZhdWx0ZWRUaXRsZTooKT0+QSxkZWxheVRvb2x0aXA6KCk9PnIsZW9kSHRtbDooKT0+bSxlb2RUb1JlYWx0aW1lSHRtbDooKT0+Xyxlb2RUb29sdGlwOigpPT5uLGV4Y2hhbmdlQnlPcmlnaW5hbEV4Y2hhbmdlVG9vbHRpcDooKT0+dSxoYWxhbEJvbmRIdG1sOigpPT5wLGhhbGFsSHRtbDooKT0+aCxoYWxhbFRpdGxlOigpPT5kLGxldEl0U25vd0h0bWw6KCk9PlcsbGV0SXRTbm93U3RhcnQ6KCk9Pk8sbGV0SXRTbm93U3RvcDooKT0+SCxsZXRJdFNub3dUaXRsZTooKT0+Rixub3RBY2N1cmF0ZTFQZXJTZWNvbmRUb29sdGlwOigpPT5sLG9wZW5JbkVkaXRvckFjdGlvblRleHQ6KCk9Pngsb3BlbmVkSW5Cb3R0b21QYW5lbFRleHQ6KCk9PlQsb3BlbmVkSW5Cb3R0b21QYW5lbFRpdGxlOigpPT5JLG9wZW5lZEluRGV0YWNoZWRFZGl0b3JUZXh0OigpPT5rLG9wZW5lZEluRGV0YWNoZWRFZGl0b3JUaXRsZTooKT0+RSxvcGVuZWRJbkVkaXRvclRleHQ6KCk9PkMsb3BlbmVkSW5FZGl0b3JUaXRsZTooKT0+TSxvdmVybmlnaHRRdW90ZXNUZXh0OigpPT5VLG92ZXJuaWdodFF1b3Rlc1RpdGxlOigpPT5MLHRpY2tCeVRpY2tIdG1sMTooKT0+Zix0aWNrQnlUaWNrSHRtbDFGdWxsSW5mbzooKT0+Uyx0aWNrQnlUaWNrSHRtbDI6KCk9PncsdHZDYWxjdWxhdGVkUGFpckh0bWw6KCk9PkQsdHZDYWxjdWxhdGVkUGFpclRvb2x0aXA6KCk9PmMsdXBjb21pbmdJcG9IdG1sOigpPT5OLHVwY29taW5nSXBvVGl0bGU6KCk9PkJ9KTt2YXIgcz1hKDE4NTI3MSksbz1hKDY0MTU5MyksaT1hKDE1NzQ0Nyk7Y29uc3Qgcj0oMCxpLmdldERlbGF5VG9vbHRpcCkoKSxuPXMudChudWxsLHZvaWQgMCxhKDc5NzQ2MCkpLGw9cy50KG51bGwsdm9pZCAwLGEoMzMwNzYwKSksdT0oKDAsaS5nZXROb3RBY2N1cmF0ZUNib2VUb29sdGlwKSgpLCgwLGkuZ2V0RXhjaGFuZ2VCeU9yaWdpbmFsRXhjaGFuZ2VUb29sdGlwKSgpKSxjPSgwLGkuZ2V0VHZDYWxjdWxhdGVkUGFpclRpdGxlKSgpLGQ9KCgwLGkuZ2V0RGVyaXZlZFRpdGxlKSgpLCgwLGkuZ2V0RGVyaXZlZEh0bWwpKCksKDAsCmkuZ2V0SGFsYWxUaXRsZSkoKSksaD0oMCxpLmdldEhhbGFsSHRtbCkoKSxwPSgwLGkuZ2V0SGFsYWxCb25kSHRtbCkoKSxtPSgwLG8uaHRtbEVzY2FwZSkocy50KG51bGwsdm9pZCAwLGEoMTg3MjcyKSkpLF89KDAsby5odG1sRXNjYXBlKShzLnQobnVsbCx2b2lkIDAsYSgyMjcwODgpKSksUz0oMCxvLmh0bWxFc2NhcGUpKHMudChudWxsLHZvaWQgMCxhKDg5NTMwMCkpKSxmPSgwLG8uaHRtbEVzY2FwZSkocy50KG51bGwsdm9pZCAwLGEoMjMzOTEyKSkpLHc9KDAsby5odG1sRXNjYXBlKShzLnQobnVsbCx2b2lkIDAsYSgxMTQ0NCkpKSxiPXMudChudWxsLHZvaWQgMCxhKDk2MTkyNikpLGc9KCgwLGkuZ2V0QmF0c1RvUmVhbHRpbWVIdG1sUGFydDEpKCksKDAsaS5nZXRCYXRzVG9SZWFsdGltZUh0bWxQYXJ0MikoKSwoMCxpLmdldEJhdHNUb1JlYWx0aW1lSHRtbDJXaXRob3V0RXhjaGFuZ2UpKCkpLHY9KDAsaS5nZXRCYXRzVG9SZWFsdGltZUh0bWwyV2l0aEV4Y2hhbmdlKSgpLHk9cy50KG51bGwsdm9pZCAwLGEoNzE5NzExKSksTT0oKDAsaS5nZXRDb250aW51b3VzVGl0bGUpKCksKDAsaS5nZXRDb250aW51b3VzSHRtbCkoKSxzLnQobnVsbCx7Y29udGV4dDoiUGluZSBlZGl0b3IifSxhKDI5NDYxOCkpKSxJPXMudChudWxsLHtjb250ZXh0OiJQaW5lIGVkaXRvciJ9LGEoNzc0MjgpKSxFPXMudChudWxsLHZvaWQgMCxhKDk1ODI3MSkpLEM9cy50KG51bGwsdm9pZCAwLGEoNTQ1ODQpKSxUPXMudChudWxsLHZvaWQgMCxhKDgzNzI1KSksaz1zLnQobnVsbCx2b2lkIDAsYSg4Mjk0NDgpKSx4PXMudChudWxsLHtjb250ZXh0OiJQaW5lIGVkaXRvciJ9LGEoOTAwNDI1KSksRD0oMCxpLmdldFR2Q2FsY3VsYXRlZFBhaXJIdG1sKSgpLFY9cy50KG51bGwse2NvbnRleHQ6IkhLRVggZGlzY2xhaW1lciJ9LGEoMTY3OTEyKSksUD1zLnQobnVsbCx2b2lkIDAsYSg0NTc3NTApKSxBPSgwLGkuZ2V0RGVmYXVsdGVkVGl0bGUpKCksUj0oMCxpLmdldERlZmF1bHRlZEh0bWwpKCksQj0oMCxpLmdldFVwY29taW5nSXBvVGl0bGUpKCksTj0oMCxpLmdldFVwY29taW5nSXBvSHRtbCkoKSxGPXMudChudWxsLHtjb250ZXh0OiJIb2xpZGF5IGJhbm5lciJ9LGEoMjQ0MTApKSxXPXMudChudWxsLHZvaWQgMCxhKDQwNDU0NCkpLE89cy50KG51bGwse2NvbnRleHQ6IkhvbGlkYXkgYmFubmVyIn0sYSg5ODE4NzIpKSxIPXMudChudWxsLHtjb250ZXh0OiJIb2xpZGF5IGJhbm5lciJ9LGEoNDg5MjAwKSksTD1zLnQobnVsbCx2b2lkIDAsYSg1OTc5NCkpLFU9cy50KG51bGwsdm9pZCAwLGEoNjg3OTU0KSl9LDE1NzQ0NyhlLHQsYSl7InVzZSBzdHJpY3QiO2EuZCh0LHtnZXRCYXRzVG9SZWFsdGltZUh0bWwyV2l0aEV4Y2hhbmdlOigpPT5FLGdldEJhdHNUb1JlYWx0aW1lSHRtbDJXaXRob3V0RXhjaGFuZ2U6KCk9PkMsZ2V0QmF0c1RvUmVhbHRpbWVIdG1sUGFydDE6KCk9Pk0sZ2V0QmF0c1RvUmVhbHRpbWVIdG1sUGFydDI6KCk9PkksZ2V0Q29udGludW91c0h0bWw6KCk9PmQsZ2V0Q29udGludW91c1RpdGxlOigpPT5jLGdldENyZWF0ZUZyZWVBY2NvdW50VGl0bGU6KCk9PncsZ2V0RGVmYXVsdGVkSHRtbDooKT0+RCxnZXREZWZhdWx0ZWRUaXRsZTooKT0+eCxnZXREZWxheUh0bWw6KCk9PnAsZ2V0RGVsYXlOb1JlYWx0aW1lSHRtbDooKT0+XyxnZXREZWxheVRvUmVhbHRpbWVKc3g6KCk9Pm0sZ2V0RGVsYXlUb29sdGlwOigpPT5oLGdldERlbGF5V2l0aG91dE1hcmtldEFncmVlbWVudEh0bWw6KCk9PlMsZ2V0RGVyaXZlZEh0bWw6KCk9PnIsZ2V0RGVyaXZlZFRpdGxlOigpPT5pLGdldEV4Y2hhbmdlQnlPcmlnaW5hbEV4Y2hhbmdlVG9vbHRpcDooKT0+eSxnZXRGaWxsRXhjaGFuZ2VBZ3JlZW1lbnRzVGl0bGU6KCk9PmIsZ2V0SGFsYWxCb25kSHRtbDooKT0+dSxnZXRIYWxhbEh0bWw6KCk9PmwsZ2V0SGFsYWxUaXRsZTooKT0+bixnZXRMZWFybk1vcmVUaXRsZTooKT0+ZyxnZXROb3RBY2N1cmF0ZUNib2VUb29sdGlwOigpPT52LGdldFJ0RnJlZUZvclJlZ2lzdGVyZWRVc2Vyc0h0bWw6KCk9PmYsZ2V0VHZDYWxjdWxhdGVkUGFpckh0bWw6KCk9PmssZ2V0VHZDYWxjdWxhdGVkUGFpclRpdGxlOigpPT5ULGdldFVwY29taW5nSXBvSHRtbDooKT0+UCxnZXRVcGNvbWluZ0lwb1RpdGxlOigpPT5WfSk7dmFyIHM9YSg3Nzk0NzQpLG89YSgxODUyNzEpO2NvbnN0IGk9KCk9Pm8udChudWxsLHtjb250ZXh0OiJTeW1ib2wgc3RhdHVzIn0sYSgxNjM4MDYpKSxyPSgpPT5vLnQobnVsbCx2b2lkIDAsYSg5NTI1MDApKSxuPSgpPT5vLnQobnVsbCx7Y29udGV4dDoiU3ltYm9sIHN0YXR1cyJ9LGEoNDE3OTEpKSxsPSgpPT5vLnQobnVsbCx2b2lkIDAsYSgyMzgwMDQpKSx1PSgpPT5vLnQobnVsbCx2b2lkIDAsYSg1NzM2ODIpKSxjPSgpPT5vLnQobnVsbCx7Y29udGV4dDoiU3ltYm9sIHN0YXR1cyJ9LGEoODk0MjIxKSksZD0oKT0+by50KG51bGwsdm9pZCAwLGEoOTc3Nzc2KSksaD0oKT0+by50KG51bGwse2NvbnRleHQ6IlF1b3RlIHRvb2x0aXAifSxhKDQ3MzQyNSkpLHA9KGUsdCk9Pm8udChudWxsLHtwbHVyYWw6IntzeW1ib2xOYW1lfSBkYXRhIGlzIGRlbGF5ZWQgYnkge3RpbWV9IG1pbnV0ZXMgYmVjYXVzZSBvZiBleGNoYW5nZSByZXF1aXJlbWVudHMuIixjb3VudDp0LHJlcGxhY2U6e3N5bWJvbE5hbWU6ZSx0aW1lOnQudG9TdHJpbmcoKX19LGEoODU3MDY3KSksbT1lPT57Y29uc3RbdCxpXT1vLnQobnVsbCx2b2lkIDAsYSgyMjA3MzgpKS5zcGxpdCgie2Rlc2NyaXB0aW9ufSIpO3JldHVybiBzLmNyZWF0ZUVsZW1lbnQocy5GcmFnbWVudCxudWxsLHQsZSxpKX0sXz0oKT0+by50KG51bGwsdm9pZCAwLGEoOTE1MTAwKSksUz1lPT5vLnQobnVsbCx2b2lkIDAsYSgxNjUwNTIpKS5yZXBsYWNlKCJ7bGlzdGVkRXhjaGFuZ2V9IixlKSxmPWU9Pm8udChudWxsLHZvaWQgMCxhKDkxNDU1KSkucmVwbGFjZSgie2xpc3RlZEV4Y2hhbmdlfSIsZSksdz0oKT0+by50KG51bGwsdm9pZCAwLGEoMjk5OTI2KSksYj0oKT0+by50KG51bGwsdm9pZCAwLGEoODYzODc3KSksZz0oKT0+by50KG51bGwse2NvbnRleHQ6IlN5bWJvbCBwYWdlIHN0YXR1c2VzIgp9LGEoMTA5NjAxKSksdj0oKT0+by50KG51bGwse2NvbnRleHQ6IkV4Y2hhbmdlIGRhdGEgdG9vbHRpcCJ9LGEoMjI5MDI1KSkseT0oKT0+by50KG51bGwse2NvbnRleHQ6IkV4Y2hhbmdlIGRhdGEgdG9vbHRpcCJ9LGEoMzAwMjcxKSksTT0oKT0+by50KG51bGwse2NvbnRleHQ6J1BhcnQgb2Y6ICJSZWFsLXRpbWUgZGF0YSBmb3Ige3N5bWJvbE5hbWV9IGlzIHByb3ZpZGVkIGJ5IHtleGNoYW5nZX0gZXhjaGFuZ2UuIid9LGEoMjMyMTQ5KSksST0oKT0+by50KG51bGwse2NvbnRleHQ6J1BhcnQgb2Y6ICJSZWFsLXRpbWUgZGF0YSBmb3Ige3N5bWJvbE5hbWV9IGlzIHByb3ZpZGVkIGJ5IHtleGNoYW5nZX0gZXhjaGFuZ2UuIid9LGEoNDA5MDE5KSksRT0oKT0+by50KG51bGwsdm9pZCAwLGEoMjgyMTMxKSksQz0oKT0+by50KG51bGwsdm9pZCAwLGEoNDYzODI1KSksVD0oKT0+by50KG51bGwse2NvbnRleHQ6IlN5bWJvbCBzdGF0dXMifSxhKDgzNjEyMykpLGs9KCk9Pm8udChudWxsLHZvaWQgMCxhKDYyODU1MykpLHg9KCk9Pm8udChudWxsLHtjb250ZXh0OiJTeW1ib2wgc3RhdHVzIn0sYSgzMzM4ODQpKSxEPSgpPT5vLnQobnVsbCx2b2lkIDAsYSgxNDI3NTUpKSxWPSgpPT5vLnQobnVsbCx7Y29udGV4dDoiU3ltYm9sIHN0YXR1cyJ9LGEoMTE5NSkpLFA9KCk9Pm8udChudWxsLHZvaWQgMCxhKDEzMjU2MSkpfSw3NzY1NzYoZSx0LGEpeyJ1c2Ugc3RyaWN0IjthLmQodCx7QkFUU19UT19SRUFMVElNRV9TT0xVVElPTl9JRDooKT0+byxIQUxBTF9TT0xVVElPTl9JRDooKT0+cyxUVl9DQUxDVUxBVEVEX1BBSVJfU09MVVRJT05fSUQ6KCk9Pml9KTtjb25zdCBzPTQzMDAwNzAwODUyLG89NDMwMDA0NzM5MjQsaT00MzAwMDcwMzE3M30sNjAzNjEyKGUsdCxhKXsidXNlIHN0cmljdCI7YS5kKHQse0NMT1NFX1BPUFVQU19BTkRfRElBTE9HU19DT01NQU5EOigpPT5zLGJyZWFrcG9pbnRMaXN0OigpPT5pfSk7Y29uc3Qgcz0iQ0xPU0VfUE9QVVBTX0FORF9ESUFMT0dTX0NPTU1BTkQiO3ZhciBvOyFmdW5jdGlvbihlKXtlW2UuTW9iaWxlPTBdPSJNb2JpbGUiLGVbZS5UYWJsZXRTbWFsbD00ODBdPSJUYWJsZXRTbWFsbCIsZVtlLlRhYmxldD03NjhdPSJUYWJsZXQiLGVbZS5UYWJsZXRMYXJnZT0xMDI0XT0iVGFibGV0TGFyZ2UiLGVbZS5EZXNrdG9wU21hbGw9MTI4MF09IkRlc2t0b3BTbWFsbCIsZVtlLkRlc2t0b3A9MTQ0MF09IkRlc2t0b3AiLGVbZS5EZXNrdG9wTGFyZ2U9MTkyMF09IkRlc2t0b3BMYXJnZSJ9KG98fChvPXt9KSk7Y29uc3QgaT03OTc5NT09YS5qP1sxOTIwLDE0NDAsMTI4MCwxMDI0LDc2OCw0ODAsMF06bnVsbH0sNDkwMjA0KGUsdCxhKXsidXNlIHN0cmljdCI7YS5kKHQse3Jlc29sdmVVbmRlcmx5aW5nU3ltYm9sOigpPT5vfSk7dmFyIHM9YSgzMjA1NSk7YXN5bmMgZnVuY3Rpb24gbyhlKXtjb25zdCB0PWF3YWl0KDAscy5zbmFwc2hvdGVyKSgpLmdldFNuYXBzaG90KGUsbmV3IFNldChbInVuZGVybHlpbmctc3ltYm9sIl0pKTtpZigiZXJyb3IiPT09dC5zdGF0dXMpcmV0dXJuIG51bGw7Y29uc3QgYT10LnZhbHVlc1sidW5kZXJseWluZy1zeW1ib2wiXTtyZXR1cm4gYXx8bnVsbH19LDEzODk5NChlLHQsYSl7InVzZSBzdHJpY3QiO2EuZCh0LHtJY29uUXVlc3Rpb25JbmZvcm1hdGlvbjooKT0+cCxJY29uUXVlc3Rpb25JbmZvcm1hdGlvbkJ1dHRvbjooKT0+XyxJY29uUXVlc3Rpb25JbmZvcm1hdGlvbkxpbms6KCk9Pm19KTt2YXIgcz1hKDc3OTQ3NCksbz1hKDkxNDQ4NyksaT1hLm4obykscj1hKDExOTc1MCksbj1hKDg2NTA5MiksbD1hKDM0NDc4NSksdT1hKDE5ODIwOSksYz1hLm4odSk7ZnVuY3Rpb24gZCgpe2RvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInNjcm9sbCIsZCksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigidG91Y2hzdGFydCIsZCksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2VvdXQiLGQpLCgwLGwuaGlkZSkoKX1jb25zdCBoPWU9PnsoMCxsLnNob3dPbkVsZW1lbnQpKGUuY3VycmVudFRhcmdldCx7dG9vbHRpcERlbGF5OjB9KSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJzY3JvbGwiLGQpLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoc3RhcnQiLGQpLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlb3V0IixkKX0scD0oMCxzLmZvcndhcmRSZWYpKCgoZSx0KT0+e2NvbnN0e2NsYXNzTmFtZTphLG9uQ2xpY2s6bz1oLGRvTm90U2hvd1Rvb2x0aXBPblRvdWNoOnUsc2l6ZTpkLC4uLnB9PWUse3Rvb2x0aXA6bSxjbGFzc05hbWU6XywuLi5TfT0oMCxuLnVzZVRvb2x0aXApKHt0b29sdGlwOmUudG9vbHRpcCxkb05vdFNob3dUb29sdGlwT25Ub3VjaDohMSxzaG93VG9vbHRpcDpsLnNob3dPbkVsZW1lbnQsaGlkZVRvb2x0aXA6bC5oaWRlLG9uQ2xpY2s6b30sdCk7cmV0dXJuIHMuY3JlYXRlRWxlbWVudChyLkljb25RdWVzdGlvbkluZm9ybWF0aW9uLHtjbGFzc05hbWU6aSgpKGEsYygpWyJpY29uLXdyYXBwZXIiXSxtJiZjKClbIndpdGgtdG9vbHRpcCJdLF8pLHRvb2x0aXA6bSxzaXplOmQsLi4ucCwuLi5TfSl9KSksbT0oMCxzLmZvcndhcmRSZWYpKCgoZSx0KT0+e2NvbnN0e2NsYXNzTmFtZTphLGhyZWY6byxyZWw6cix0YXJnZXQ6biwuLi5sfT1lLHU9KDAscy51c2VNZW1vKSgoKCk9PigwLHMuZm9yd2FyZFJlZikoKChlLHQpPT5zLmNyZWF0ZUVsZW1lbnQoImEiLHtocmVmOm8scmVsOnIsdGFyZ2V0Om4scmVmOnQsLi4uZX0pKSkpLFtvLHIsbl0pO3JldHVybiBzLmNyZWF0ZUVsZW1lbnQocCx7Li4ubCxjbGFzc05hbWU6aSgpKGEsYygpWyJ3aXRoLWxpbmsiXSkscmVuZGVyQ29tcG9uZW50OnUscmVmOnQsZG9Ob3RTaG93VG9vbHRpcE9uVG91Y2g6ITB9KX0pKSxfPSgwLHMuZm9yd2FyZFJlZikoKChlLHQpPT57Y29uc3R7Y2xhc3NOYW1lOmEsd2l0aEFjdGl2ZVN0YXRlOm8sLi4ucn09ZSxuPSgwLHMudXNlTWVtbykoKCgpPT4oMCxzLmZvcndhcmRSZWYpKCgoZSx0KT0+cy5jcmVhdGVFbGVtZW50KCJidXR0b24iLHsuLi5lLHJlZjp0LHR5cGU6ImJ1dHRvbiJ9KSkpKSxbXSk7cmV0dXJuIHMuY3JlYXRlRWxlbWVudChwLHsKLi4ucixjbGFzc05hbWU6aSgpKGEsIW8mJmMoKVsibm8tYWN0aXZlLXN0YXRlIl0pLHJlbmRlckNvbXBvbmVudDpuLHJlZjp0fSl9KSl9LDMzNjMzNChlLHQsYSl7InVzZSBzdHJpY3QiO3ZhciBzPWEoMTI5MzY1KTt0LmNyZWF0ZVJvb3Q9cy5jcmVhdGVSb290LHMuaHlkcmF0ZVJvb3R9LDEyOTM2NShlLHQsYSl7InVzZSBzdHJpY3QiOyFmdW5jdGlvbiBlKCl7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBfX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18mJiJmdW5jdGlvbiI9PXR5cGVvZiBfX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18uY2hlY2tEQ0UpdHJ5e19fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXy5jaGVja0RDRShlKX1jYXRjaChlKXtjb25zb2xlLmVycm9yKGUpfX0oKSxlLmV4cG9ydHM9YSg1MzIzODcpfSwxMjI3NDkoZSx0KXsidXNlIHN0cmljdCI7dmFyIGE9U3ltYm9sLmZvcigicmVhY3QuZWxlbWVudCIpLHM9U3ltYm9sLmZvcigicmVhY3QucG9ydGFsIiksbz1TeW1ib2wuZm9yKCJyZWFjdC5mcmFnbWVudCIpLGk9U3ltYm9sLmZvcigicmVhY3Quc3RyaWN0X21vZGUiKSxyPVN5bWJvbC5mb3IoInJlYWN0LnByb2ZpbGVyIiksbj1TeW1ib2wuZm9yKCJyZWFjdC5wcm92aWRlciIpLGw9U3ltYm9sLmZvcigicmVhY3QuY29udGV4dCIpLHU9U3ltYm9sLmZvcigicmVhY3QuZm9yd2FyZF9yZWYiKSxjPVN5bWJvbC5mb3IoInJlYWN0LnN1c3BlbnNlIiksZD1TeW1ib2wuZm9yKCJyZWFjdC5tZW1vIiksaD1TeW1ib2wuZm9yKCJyZWFjdC5sYXp5IikscD1TeW1ib2wuaXRlcmF0b3I7dmFyIG09e2lzTW91bnRlZDpmdW5jdGlvbigpe3JldHVybiExfSxlbnF1ZXVlRm9yY2VVcGRhdGU6ZnVuY3Rpb24oKXt9LGVucXVldWVSZXBsYWNlU3RhdGU6ZnVuY3Rpb24oKXt9LGVucXVldWVTZXRTdGF0ZTpmdW5jdGlvbigpe319LF89T2JqZWN0LmFzc2lnbixTPXt9O2Z1bmN0aW9uIGYoZSx0LGEpe3RoaXMucHJvcHM9ZSx0aGlzLmNvbnRleHQ9dCx0aGlzLnJlZnM9Uyx0aGlzLnVwZGF0ZXI9YXx8bX1mdW5jdGlvbiB3KCl7fWZ1bmN0aW9uIGIoZSx0LGEpe3RoaXMucHJvcHM9ZSx0aGlzLmNvbnRleHQ9dCx0aGlzLnJlZnM9Uyx0aGlzLnVwZGF0ZXI9YXx8bX1mLnByb3RvdHlwZS5pc1JlYWN0Q29tcG9uZW50PXt9LGYucHJvdG90eXBlLnNldFN0YXRlPWZ1bmN0aW9uKGUsdCl7aWYoIm9iamVjdCIhPXR5cGVvZiBlJiYiZnVuY3Rpb24iIT10eXBlb2YgZSYmbnVsbCE9ZSl0aHJvdyBFcnJvcigic2V0U3RhdGUoLi4uKTogdGFrZXMgYW4gb2JqZWN0IG9mIHN0YXRlIHZhcmlhYmxlcyB0byB1cGRhdGUgb3IgYSBmdW5jdGlvbiB3aGljaCByZXR1cm5zIGFuIG9iamVjdCBvZiBzdGF0ZSB2YXJpYWJsZXMuIik7dGhpcy51cGRhdGVyLmVucXVldWVTZXRTdGF0ZSh0aGlzLGUsdCwic2V0U3RhdGUiKX0sZi5wcm90b3R5cGUuZm9yY2VVcGRhdGU9ZnVuY3Rpb24oZSl7dGhpcy51cGRhdGVyLmVucXVldWVGb3JjZVVwZGF0ZSh0aGlzLGUsImZvcmNlVXBkYXRlIil9LHcucHJvdG90eXBlPWYucHJvdG90eXBlO3ZhciBnPWIucHJvdG90eXBlPW5ldyB3O2cuY29uc3RydWN0b3I9YixfKGcsZi5wcm90b3R5cGUpLGcuaXNQdXJlUmVhY3RDb21wb25lbnQ9ITA7dmFyIHY9QXJyYXkuaXNBcnJheSx5PU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHksTT17Y3VycmVudDpudWxsfSxJPXtrZXk6ITAscmVmOiEwLF9fc2VsZjohMCxfX3NvdXJjZTohMH07ZnVuY3Rpb24gRShlLHQscyl7dmFyIG8saT17fSxyPW51bGwsbj1udWxsO2lmKG51bGwhPXQpZm9yKG8gaW4gdm9pZCAwIT09dC5yZWYmJihuPXQucmVmKSx2b2lkIDAhPT10LmtleSYmKHI9IiIrdC5rZXkpLHQpeS5jYWxsKHQsbykmJiFJLmhhc093blByb3BlcnR5KG8pJiYoaVtvXT10W29dKTt2YXIgbD1hcmd1bWVudHMubGVuZ3RoLTI7aWYoMT09PWwpaS5jaGlsZHJlbj1zO2Vsc2UgaWYoMTxsKXtmb3IodmFyIHU9QXJyYXkobCksYz0wO2M8bDtjKyspdVtjXT1hcmd1bWVudHNbYysyXTtpLmNoaWxkcmVuPXV9aWYoZSYmZS5kZWZhdWx0UHJvcHMpZm9yKG8gaW4gbD1lLmRlZmF1bHRQcm9wcyl2b2lkIDA9PT1pW29dJiYoaVtvXT1sW29dKTtyZXR1cm57JCR0eXBlb2Y6YSx0eXBlOmUsa2V5OnIscmVmOm4scHJvcHM6aSxfb3duZXI6TS5jdXJyZW50fX1mdW5jdGlvbiBDKGUpe3JldHVybiJvYmplY3QiPT10eXBlb2YgZSYmbnVsbCE9PWUmJmUuJCR0eXBlb2Y9PT1hfXZhciBUPS9cLysvZztmdW5jdGlvbiBrKGUsdCl7cmV0dXJuIm9iamVjdCI9PXR5cGVvZiBlJiZudWxsIT09ZSYmbnVsbCE9ZS5rZXk/ZnVuY3Rpb24oZSl7dmFyIHQ9eyI9IjoiPTAiLCI6IjoiPTIifTtyZXR1cm4iJCIrZS5yZXBsYWNlKC9bPTpdL2csKGZ1bmN0aW9uKGUpe3JldHVybiB0W2VdfSkpfSgiIitlLmtleSk6dC50b1N0cmluZygzNil9ZnVuY3Rpb24geChlLHQsbyxpLHIpe3ZhciBuPXR5cGVvZiBlOyJ1bmRlZmluZWQiIT09biYmImJvb2xlYW4iIT09bnx8KGU9bnVsbCk7dmFyIGw9ITE7aWYobnVsbD09PWUpbD0hMDtlbHNlIHN3aXRjaChuKXtjYXNlInN0cmluZyI6Y2FzZSJudW1iZXIiOmw9ITA7YnJlYWs7Y2FzZSJvYmplY3QiOnN3aXRjaChlLiQkdHlwZW9mKXtjYXNlIGE6Y2FzZSBzOmw9ITB9fWlmKGwpcmV0dXJuIHI9cihsPWUpLGU9IiI9PT1pPyIuIitrKGwsMCk6aSx2KHIpPyhvPSIiLG51bGwhPWUmJihvPWUucmVwbGFjZShULCIkJi8iKSsiLyIpLHgocix0LG8sIiIsKGZ1bmN0aW9uKGUpe3JldHVybiBlfSkpKTpudWxsIT1yJiYoQyhyKSYmKHI9ZnVuY3Rpb24oZSx0KXtyZXR1cm57JCR0eXBlb2Y6YSx0eXBlOmUudHlwZSxrZXk6dCxyZWY6ZS5yZWYscHJvcHM6ZS5wcm9wcyxfb3duZXI6ZS5fb3duZXJ9fShyLG8rKCFyLmtleXx8bCYmbC5rZXk9PT1yLmtleT8iIjooIiIrci5rZXkpLnJlcGxhY2UoVCwiJCYvIikrIi8iKStlKSksdC5wdXNoKHIpKSwxO2lmKGw9MCxpPSIiPT09aT8iLiI6aSsiOiIsdihlKSlmb3IodmFyIHU9MDt1PGUubGVuZ3RoO3UrKyl7dmFyIGM9aStrKG49ZVt1XSx1KTtsKz14KG4sdCxvLGMscil9ZWxzZSBpZihjPWZ1bmN0aW9uKGUpewpyZXR1cm4gbnVsbD09PWV8fCJvYmplY3QiIT10eXBlb2YgZT9udWxsOiJmdW5jdGlvbiI9PXR5cGVvZihlPXAmJmVbcF18fGVbIkBAaXRlcmF0b3IiXSk/ZTpudWxsfShlKSwiZnVuY3Rpb24iPT10eXBlb2YgYylmb3IoZT1jLmNhbGwoZSksdT0wOyEobj1lLm5leHQoKSkuZG9uZTspbCs9eChuPW4udmFsdWUsdCxvLGM9aStrKG4sdSsrKSxyKTtlbHNlIGlmKCJvYmplY3QiPT09bil0aHJvdyB0PVN0cmluZyhlKSxFcnJvcigiT2JqZWN0cyBhcmUgbm90IHZhbGlkIGFzIGEgUmVhY3QgY2hpbGQgKGZvdW5kOiAiKygiW29iamVjdCBPYmplY3RdIj09PXQ/Im9iamVjdCB3aXRoIGtleXMgeyIrT2JqZWN0LmtleXMoZSkuam9pbigiLCAiKSsifSI6dCkrIikuIElmIHlvdSBtZWFudCB0byByZW5kZXIgYSBjb2xsZWN0aW9uIG9mIGNoaWxkcmVuLCB1c2UgYW4gYXJyYXkgaW5zdGVhZC4iKTtyZXR1cm4gbH1mdW5jdGlvbiBEKGUsdCxhKXtpZihudWxsPT1lKXJldHVybiBlO3ZhciBzPVtdLG89MDtyZXR1cm4geChlLHMsIiIsIiIsKGZ1bmN0aW9uKGUpe3JldHVybiB0LmNhbGwoYSxlLG8rKyl9KSksc31mdW5jdGlvbiBWKGUpe2lmKC0xPT09ZS5fc3RhdHVzKXt2YXIgdD1lLl9yZXN1bHQ7KHQ9dCgpKS50aGVuKChmdW5jdGlvbih0KXswIT09ZS5fc3RhdHVzJiYtMSE9PWUuX3N0YXR1c3x8KGUuX3N0YXR1cz0xLGUuX3Jlc3VsdD10KX0pLChmdW5jdGlvbih0KXswIT09ZS5fc3RhdHVzJiYtMSE9PWUuX3N0YXR1c3x8KGUuX3N0YXR1cz0yLGUuX3Jlc3VsdD10KX0pKSwtMT09PWUuX3N0YXR1cyYmKGUuX3N0YXR1cz0wLGUuX3Jlc3VsdD10KX1pZigxPT09ZS5fc3RhdHVzKXJldHVybiBlLl9yZXN1bHQuZGVmYXVsdDt0aHJvdyBlLl9yZXN1bHR9dmFyIFA9e2N1cnJlbnQ6bnVsbH0sQT17dHJhbnNpdGlvbjpudWxsfSxSPXtSZWFjdEN1cnJlbnREaXNwYXRjaGVyOlAsUmVhY3RDdXJyZW50QmF0Y2hDb25maWc6QSxSZWFjdEN1cnJlbnRPd25lcjpNfTt0LkNoaWxkcmVuPXttYXA6RCxmb3JFYWNoOmZ1bmN0aW9uKGUsdCxhKXtEKGUsKGZ1bmN0aW9uKCl7dC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9KSxhKX0sY291bnQ6ZnVuY3Rpb24oZSl7dmFyIHQ9MDtyZXR1cm4gRChlLChmdW5jdGlvbigpe3QrK30pKSx0fSx0b0FycmF5OmZ1bmN0aW9uKGUpe3JldHVybiBEKGUsKGZ1bmN0aW9uKGUpe3JldHVybiBlfSkpfHxbXX0sb25seTpmdW5jdGlvbihlKXtpZighQyhlKSl0aHJvdyBFcnJvcigiUmVhY3QuQ2hpbGRyZW4ub25seSBleHBlY3RlZCB0byByZWNlaXZlIGEgc2luZ2xlIFJlYWN0IGVsZW1lbnQgY2hpbGQuIik7cmV0dXJuIGV9fSx0LkNvbXBvbmVudD1mLHQuRnJhZ21lbnQ9byx0LlByb2ZpbGVyPXIsdC5QdXJlQ29tcG9uZW50PWIsdC5TdHJpY3RNb2RlPWksdC5TdXNwZW5zZT1jLHQuX19TRUNSRVRfSU5URVJOQUxTX0RPX05PVF9VU0VfT1JfWU9VX1dJTExfQkVfRklSRUQ9Uix0LmNsb25lRWxlbWVudD1mdW5jdGlvbihlLHQscyl7aWYobnVsbD09ZSl0aHJvdyBFcnJvcigiUmVhY3QuY2xvbmVFbGVtZW50KC4uLik6IFRoZSBhcmd1bWVudCBtdXN0IGJlIGEgUmVhY3QgZWxlbWVudCwgYnV0IHlvdSBwYXNzZWQgIitlKyIuIik7dmFyIG89Xyh7fSxlLnByb3BzKSxpPWUua2V5LHI9ZS5yZWYsbj1lLl9vd25lcjtpZihudWxsIT10KXtpZih2b2lkIDAhPT10LnJlZiYmKHI9dC5yZWYsbj1NLmN1cnJlbnQpLHZvaWQgMCE9PXQua2V5JiYoaT0iIit0LmtleSksZS50eXBlJiZlLnR5cGUuZGVmYXVsdFByb3BzKXZhciBsPWUudHlwZS5kZWZhdWx0UHJvcHM7Zm9yKHUgaW4gdCl5LmNhbGwodCx1KSYmIUkuaGFzT3duUHJvcGVydHkodSkmJihvW3VdPXZvaWQgMD09PXRbdV0mJnZvaWQgMCE9PWw/bFt1XTp0W3VdKX12YXIgdT1hcmd1bWVudHMubGVuZ3RoLTI7aWYoMT09PXUpby5jaGlsZHJlbj1zO2Vsc2UgaWYoMTx1KXtsPUFycmF5KHUpO2Zvcih2YXIgYz0wO2M8dTtjKyspbFtjXT1hcmd1bWVudHNbYysyXTtvLmNoaWxkcmVuPWx9cmV0dXJueyQkdHlwZW9mOmEsdHlwZTplLnR5cGUsa2V5OmkscmVmOnIscHJvcHM6byxfb3duZXI6bn19LHQuY3JlYXRlQ29udGV4dD1mdW5jdGlvbihlKXtyZXR1cm4oZT17JCR0eXBlb2Y6bCxfY3VycmVudFZhbHVlOmUsX2N1cnJlbnRWYWx1ZTI6ZSxfdGhyZWFkQ291bnQ6MCxQcm92aWRlcjpudWxsLENvbnN1bWVyOm51bGwsX2RlZmF1bHRWYWx1ZTpudWxsLF9nbG9iYWxOYW1lOm51bGx9KS5Qcm92aWRlcj17JCR0eXBlb2Y6bixfY29udGV4dDplfSxlLkNvbnN1bWVyPWV9LHQuY3JlYXRlRWxlbWVudD1FLHQuY3JlYXRlRmFjdG9yeT1mdW5jdGlvbihlKXt2YXIgdD1FLmJpbmQobnVsbCxlKTtyZXR1cm4gdC50eXBlPWUsdH0sdC5jcmVhdGVSZWY9ZnVuY3Rpb24oKXtyZXR1cm57Y3VycmVudDpudWxsfX0sdC5mb3J3YXJkUmVmPWZ1bmN0aW9uKGUpe3JldHVybnskJHR5cGVvZjp1LHJlbmRlcjplfX0sdC5pc1ZhbGlkRWxlbWVudD1DLHQubGF6eT1mdW5jdGlvbihlKXtyZXR1cm57JCR0eXBlb2Y6aCxfcGF5bG9hZDp7X3N0YXR1czotMSxfcmVzdWx0OmV9LF9pbml0OlZ9fSx0Lm1lbW89ZnVuY3Rpb24oZSx0KXtyZXR1cm57JCR0eXBlb2Y6ZCx0eXBlOmUsY29tcGFyZTp2b2lkIDA9PT10P251bGw6dH19LHQuc3RhcnRUcmFuc2l0aW9uPWZ1bmN0aW9uKGUpe3ZhciB0PUEudHJhbnNpdGlvbjtBLnRyYW5zaXRpb249e307dHJ5e2UoKX1maW5hbGx5e0EudHJhbnNpdGlvbj10fX0sdC51bnN0YWJsZV9hY3Q9ZnVuY3Rpb24oKXt0aHJvdyBFcnJvcigiYWN0KC4uLikgaXMgbm90IHN1cHBvcnRlZCBpbiBwcm9kdWN0aW9uIGJ1aWxkcyBvZiBSZWFjdC4iKX0sdC51c2VDYWxsYmFjaz1mdW5jdGlvbihlLHQpe3JldHVybiBQLmN1cnJlbnQudXNlQ2FsbGJhY2soZSx0KX0sdC51c2VDb250ZXh0PWZ1bmN0aW9uKGUpe3JldHVybiBQLmN1cnJlbnQudXNlQ29udGV4dChlKX0sdC51c2VEZWJ1Z1ZhbHVlPWZ1bmN0aW9uKCl7fSx0LnVzZURlZmVycmVkVmFsdWU9ZnVuY3Rpb24oZSl7cmV0dXJuIFAuY3VycmVudC51c2VEZWZlcnJlZFZhbHVlKGUpfSx0LnVzZUVmZmVjdD1mdW5jdGlvbihlLHQpewpyZXR1cm4gUC5jdXJyZW50LnVzZUVmZmVjdChlLHQpfSx0LnVzZUlkPWZ1bmN0aW9uKCl7cmV0dXJuIFAuY3VycmVudC51c2VJZCgpfSx0LnVzZUltcGVyYXRpdmVIYW5kbGU9ZnVuY3Rpb24oZSx0LGEpe3JldHVybiBQLmN1cnJlbnQudXNlSW1wZXJhdGl2ZUhhbmRsZShlLHQsYSl9LHQudXNlSW5zZXJ0aW9uRWZmZWN0PWZ1bmN0aW9uKGUsdCl7cmV0dXJuIFAuY3VycmVudC51c2VJbnNlcnRpb25FZmZlY3QoZSx0KX0sdC51c2VMYXlvdXRFZmZlY3Q9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gUC5jdXJyZW50LnVzZUxheW91dEVmZmVjdChlLHQpfSx0LnVzZU1lbW89ZnVuY3Rpb24oZSx0KXtyZXR1cm4gUC5jdXJyZW50LnVzZU1lbW8oZSx0KX0sdC51c2VSZWR1Y2VyPWZ1bmN0aW9uKGUsdCxhKXtyZXR1cm4gUC5jdXJyZW50LnVzZVJlZHVjZXIoZSx0LGEpfSx0LnVzZVJlZj1mdW5jdGlvbihlKXtyZXR1cm4gUC5jdXJyZW50LnVzZVJlZihlKX0sdC51c2VTdGF0ZT1mdW5jdGlvbihlKXtyZXR1cm4gUC5jdXJyZW50LnVzZVN0YXRlKGUpfSx0LnVzZVN5bmNFeHRlcm5hbFN0b3JlPWZ1bmN0aW9uKGUsdCxhKXtyZXR1cm4gUC5jdXJyZW50LnVzZVN5bmNFeHRlcm5hbFN0b3JlKGUsdCxhKX0sdC51c2VUcmFuc2l0aW9uPWZ1bmN0aW9uKCl7cmV0dXJuIFAuY3VycmVudC51c2VUcmFuc2l0aW9uKCl9LHQudmVyc2lvbj0iMTguMi4wIn0sNzc5NDc0KGUsdCxhKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWEoMTIyNzQ5KX0sNjMzNjQ0KGUsdCxhKXsidXNlIHN0cmljdCI7YS5kKHQse3Nob3dBYm91dFRoZVN0dWR5SGFuZGxlcjooKT0+Y30pO3ZhciBzPWEoOTI2OTk1KTthKDE4NTI3MSksYSgyNTYzMTQpO2NvbnN0IG89L15TVEQ7RnVuZF8oLio/KSg/Ol8oPzpmeXxmcXxmaHx0dG0pKT8kLzt2YXIgaT1hKDc5MTQyNykscj1hKDQxMzQxKSxuPWEoMTQ3ODA1KSxsPWEoMTAzOTk4KSx1PWEoMTQzODA4KTthc3luYyBmdW5jdGlvbiBjKGUpe2NvbnN0IHQ9ZS5tZXRhSW5mbygpO2lmKCF0KXJldHVybiBudWxsO2NvbnN0e3NjcmlwdElkUGFydDpjLGlkOmQscGluZTpofT10O2lmKCgwLHUuaXNGdW5kYW1lbnRhbFN0dWR5TWV0YUluZm8pKHQpKXtjb25zdCBlPWZ1bmN0aW9uKGUpe2NvbnN0IHQ9ZS5tYXRjaChvKTtyZXR1cm4gdD90WzFdOnR9KGMpO2lmKGUpe2NvbnN0e2RlZmF1bHQ6dH09YXdhaXQgYS5lKDYyMDY4KS50aGVuKGEudC5iaW5kKGEsNjMwNDc2LDE5KSk7aWYoZSBpbiB0KXJldHVybigpPT4oMCxzLnNob3dTdXBwb3J0RGlhbG9nKSh7c29sdXRpb25JZDp0W2VdfSl9fWVsc2UgaWYoIWh8fGkuU3R1ZHlNZXRhSW5mby5oYXNTdGRTdWZmaXgoYykpe2NvbnN0e2RlZmF1bHQ6ZX09YXdhaXQgYS5lKDQyNDQxKS50aGVuKGEudC5iaW5kKGEsNDQ1MDY3LDE5KSk7aWYoYyBpbiBlfHxkIGluIGUpcmV0dXJuKCk9PigwLHMuc2hvd1N1cHBvcnREaWFsb2cpKHtzb2x1dGlvbklkOmVbY118fGVbZF19KX1lbHNlIGlmKGkuU3R1ZHlNZXRhSW5mby5oYXNQdWJTdWZmaXgoYykpcmV0dXJuIGFzeW5jKCk9Pnt0cnl7Y29uc3R7Y2hhcnRJbWFnZVVybDplfT1hd2FpdCgwLHIucmVxdWVzdFNjcmlwdEluZm8pKGMpOygwLG4ub3BlblB1YmxpY2F0aW9uVmlld1BvcHVwKSh7dWlkOmUsdHlwZToic2NyaXB0In0pfWNhdGNoeygwLGwuc2hvd1NjcmlwdEluZm9FcnJvck5vdGljZURpYWxvZykoKX19O3JldHVybiBudWxsfX0sNjA0Mzg0KGUsdCxhKXsidXNlIHN0cmljdCI7YS5kKHQse0NoYXJ0TW9kZWxNYWluU2VyaWVzU3RhdHVzU291cmNlQWRhcHRlcjooKT0+aCxDaGFydE1vZGVsU3RhdHVzU291cmNlQWRhcHRlcjooKT0+ZH0pO3ZhciBzLG89YSgxMzg2MzgpLGk9YSgyMzIzNjQpLHI9YSg5NTI5MDApLG49YSgyNDE5NTYpLGw9YSgyMDU2MTEpLHU9YSg5NTY0MzcpLGM9YSgzMjI0MTkpOyFmdW5jdGlvbihlKXtlW2UuRm9yY2VEaXNhYmxlSGlkZGVuU3RhdGVUaW1lb3V0TXM9MzUwMF09IkZvcmNlRGlzYWJsZUhpZGRlblN0YXRlVGltZW91dE1zIn0oc3x8KHM9e30pKTtjbGFzcyBke2NvbnN0cnVjdG9yKGUsdCl7dGhpcy5faGlkZGVuPW5ldyBpLldhdGNoZWRWYWx1ZSghMSksdGhpcy5fc3ltYm9sPW51bGwsdGhpcy5faXNTeW1ib2xJbnZhbGlkPW51bGwsdGhpcy5fdmlzaWJpbGl0eUNvbWJpbmVyPW51bGwsdGhpcy5fc3ltYm9sSW5mbz1uZXcgaS5XYXRjaGVkVmFsdWUobnVsbCkuc3Bhd24oKSx0aGlzLl9zb3VyY2U9ZSxlLnByb3BlcnRpZXMoKS5oYXNDaGlsZCgic3ltYm9sIikmJih0aGlzLl9zeW1ib2w9KDAsbi5jcmVhdGVXVkZyb21HZXR0ZXJBbmRTdWJzY3JpcHRpb24pKCgoKT0+ZS5wcm9wZXJ0aWVzKCkuc3ltYm9sLnZhbHVlKCkpLGUucHJvcGVydGllcygpLnN5bWJvbC5saXN0ZW5lcnMoKSkpO2NvbnN0IGE9W107aWYoKDAsYy5pc1N0dWR5TGluZVRvb2wpKGUpKWEucHVzaChlLm9uU3RhdHVzQ2hhbmdlZCgpKTtlbHNlIGlmKCgwLHUuaXNTdHVkeSkoZSl8fCgwLHUuaXNTdHVkeVN0dWIpKGUpKWEucHVzaChlLm9uU3RhdHVzQ2hhbmdlZCgpLGUub25Jc0FjdHVhbEludGVydmFsQ2hhbmdlKCkpLHRoaXMuX2lzU3ltYm9sSW52YWxpZD0oMCxsLmNyZWF0ZVdWRnJvbUdldHRlckFuZFN1YnNjcmlwdGlvbnMpKCgoKT0+ZS5pc1N5bWJvbEludmFsaWQoKSYmZS5pc0FjdHVhbEludGVydmFsKCkpLGEpLCgwLHUuaXNTdHVkeSkoZSk/KHRoaXMuX3Zpc2liaWxpdHlDb21iaW5lcj0oMCxyLmNvbWJpbmUpKCgoZSx0KT0+IWV8fCF0KSwoMCxuLmNyZWF0ZVdWRnJvbUdldHRlckFuZFN1YnNjcmlwdGlvbikoKCgpPT5lLmlzVmlzaWJsZSgpKSxlLnByb3BlcnRpZXMoKS5jaGlsZHMoKS52aXNpYmxlKS5vd25lcnNoaXAoKSwoMCxuLmNyZWF0ZVdWRnJvbUdldHRlckFuZFN1YnNjcmlwdGlvbikoKCgpPT5lLmlzQWN0dWFsSW50ZXJ2YWwoKSksZS5vbklzQWN0dWFsSW50ZXJ2YWxDaGFuZ2UoKSkub3duZXJzaGlwKCkpLHRoaXMuX3Zpc2liaWxpdHlDb21iaW5lci5zdWJzY3JpYmUoKGU9PnRoaXMuX2hpZGRlbi5zZXRWYWx1ZShlKSkse2NhbGxXaXRoTGFzdDohMAp9KSk6dGhpcy5faGlkZGVuLnNldFZhbHVlKCFlLmlzVmlzaWJsZSgpfHwhZS5pc0FjdHVhbEludGVydmFsKCkpO2Vsc2V7KDAsby5hc3NlcnQpKGU9PT10Lm1haW5TZXJpZXMoKSk7Y29uc3Qgcz10Lm1haW5TZXJpZXMoKTthLnB1c2gocy5vblN0YXR1c0NoYW5nZWQoKSksdGhpcy5faXNTeW1ib2xJbnZhbGlkPSgwLGwuY3JlYXRlV1ZGcm9tR2V0dGVyQW5kU3Vic2NyaXB0aW9ucykoKCgpPT5zLmlzU3ltYm9sSW52YWxpZCgpKSxhKSx0aGlzLl9zeW1ib2xJbmZvPSgwLG4uY3JlYXRlV1ZGcm9tR2V0dGVyQW5kU3Vic2NyaXB0aW9uKShzLnN5bWJvbEluZm8uYmluZChzKSxzLmRhdGFFdmVudHMoKS5zeW1ib2xSZXNvbHZlZCgpKX10aGlzLl9kYXRhU291cmNlRXJyb3JTdGF0dXM9KDAsbC5jcmVhdGVXVkZyb21HZXR0ZXJBbmRTdWJzY3JpcHRpb25zKSgoKCk9PnRoaXMuX3NvdXJjZS5zdGF0dXNQcm92aWRlcih7fSkuZXJyb3JTdGF0dXMoKSksYSl9ZGVzdHJveSgpe3RoaXMuX3N5bWJvbD8uZGVzdHJveSgpLHRoaXMuX2lzU3ltYm9sSW52YWxpZD8uZGVzdHJveSgpLHRoaXMuX2RhdGFTb3VyY2VFcnJvclN0YXR1cy5kZXN0cm95KCksdGhpcy5fc3ltYm9sSW5mby5kZXN0cm95KCksdGhpcy5fdmlzaWJpbGl0eUNvbWJpbmVyPy5kZXN0cm95KCl9ZW50aXR5SWQoKXtyZXR1cm4gdGhpcy5fc291cmNlLmlkKCl9c3ltYm9sKCl7cmV0dXJuIHRoaXMuX3N5bWJvbH1pc1N5bWJvbEludmFsaWQoKXtyZXR1cm4gdGhpcy5faXNTeW1ib2xJbnZhbGlkfWVycm9yU3RhdHVzKCl7cmV0dXJuIHRoaXMuX2RhdGFTb3VyY2VFcnJvclN0YXR1c31zeW1ib2xJbmZvKCl7cmV0dXJuIHRoaXMuX3N5bWJvbEluZm99aGlkZGVuKCl7cmV0dXJuIHRoaXMuX2hpZGRlbi5yZWFkb25seSgpfW1hcmtldFN0YXR1c01vZGVsKCl7cmV0dXJuIHRoaXMuX3NvdXJjZS5tYXJrZXRTdGF0dXNNb2RlbCgpfWRhdGFQcm9ibGVtTW9kZWwoKXtyZXR1cm4gdGhpcy5fc291cmNlLmRhdGFQcm9ibGVtTW9kZWwoKX1kYXRhVXBkYXRlZE1vZGVNb2RlbCgpe3JldHVybiB0aGlzLl9zb3VyY2UuZGF0YVVwZGF0ZWRNb2RlTW9kZWwoKX1hc3luYyBwaW5lU291cmNlQ29kZU1vZGVsKCl7cmV0dXJuIHRoaXMuX3NvdXJjZS5waW5lU291cmNlQ29kZU1vZGVsPy4oKT8/UHJvbWlzZS5yZXNvbHZlKG51bGwpfWFsZXJ0U291cmNlTW9kZWwoKXtyZXR1cm4gdGhpcy5fc291cmNlLmFsZXJ0U291cmNlTW9kZWwoKX1pc01haW5TZXJpZXMoKXtyZXR1cm4gdGhpcy5fc291cmNlLmlzTWFpblNlcmllcz8uKCk/PyExfX1jbGFzcyBoIGV4dGVuZHMgZHtjb25zdHJ1Y3RvcihlLHQpe3N1cGVyKGUsdCksdGhpcy5fcXVvdGVzRGF0YT1uZXcgaS5XYXRjaGVkVmFsdWUobnVsbCksdGhpcy5fZm9yY2VEaXNhYmxlSGlkZGVuU3RhdGU9bmV3IGkuV2F0Y2hlZFZhbHVlKCEwKSx0aGlzLl9mb3JjZURpc2FibGVIaWRkZW5TdGF0ZVRpbWVvdXQ9bnVsbCx0aGlzLl9zZXJpZXM9ZSx0aGlzLl9tYXJrZXRTdGF0dXM9ZS5tYXJrZXRTdGF0dXNNb2RlbCgpLnN0YXR1cygpLnNwYXduKCksZS5xdW90ZXNQcm92aWRlcigpLnF1b3Rlc1VwZGF0ZSgpLnN1YnNjcmliZSh0aGlzLCgoKT0+e3RoaXMuX3F1b3Rlc0RhdGEuc2V0VmFsdWUoZS5xdW90ZXNQcm92aWRlcigpLnF1b3RlcygpLnZhbHVlKCksITApfSkpLGUucXVvdGVzUHJvdmlkZXIoKS5xdW90ZVN5bWJvbENoYW5nZWQoKS5zdWJzY3JpYmUodGhpcywoKCk9Pnt0aGlzLl9xdW90ZXNEYXRhLnNldFZhbHVlKG51bGwpfSkpLHRoaXMuX3F1b3Rlc0RhdGEuc2V0VmFsdWUoZS5xdW90ZXMoKSksdGhpcy5fbWFya2V0U3RhdHVzLnN1YnNjcmliZSgoZT0+e251bGw9PT1lJiYobnVsbCE9PXRoaXMuX2ZvcmNlRGlzYWJsZUhpZGRlblN0YXRlVGltZW91dCYmY2xlYXJUaW1lb3V0KHRoaXMuX2ZvcmNlRGlzYWJsZUhpZGRlblN0YXRlVGltZW91dCksdGhpcy5fZm9yY2VEaXNhYmxlSGlkZGVuU3RhdGUuc2V0VmFsdWUoITEpLHRoaXMuX2ZvcmNlRGlzYWJsZUhpZGRlblN0YXRlVGltZW91dD1zZXRUaW1lb3V0KCgoKT0+e3RoaXMuX2ZvcmNlRGlzYWJsZUhpZGRlblN0YXRlVGltZW91dD1udWxsLHRoaXMuX2ZvcmNlRGlzYWJsZUhpZGRlblN0YXRlLnNldFZhbHVlKCEwKX0pLDM1MDApKX0pLHtjYWxsV2l0aExhc3Q6ITB9KSx0aGlzLl9kYXRhUHJvYmxlbXM9dGhpcy5fc2VyaWVzLmRhdGFQcm9ibGVtTW9kZWwoKS5kYXRhUHJvYmxlbXMoKS5zcGF3bigpLHRoaXMuX21hcmtldFN0YXR1cy5zdWJzY3JpYmUodGhpcy5fdXBkYXRlSGlkZGVuVmFsdWUuYmluZCh0aGlzKSksdGhpcy5fZGF0YVByb2JsZW1zLnN1YnNjcmliZSh0aGlzLl91cGRhdGVIaWRkZW5WYWx1ZS5iaW5kKHRoaXMpKSx0aGlzLl9mb3JjZURpc2FibGVIaWRkZW5TdGF0ZS5zdWJzY3JpYmUodGhpcy5fdXBkYXRlSGlkZGVuVmFsdWUuYmluZCh0aGlzKSksZS5vbkluUmVwbGF5U3RhdGVDaGFuZ2VkPy4oKS5zdWJzY3JpYmUodGhpcyx0aGlzLl91cGRhdGVIaWRkZW5WYWx1ZSksZS5vblN0YXR1c0NoYW5nZWQoKS5zdWJzY3JpYmUodGhpcyx0aGlzLl91cGRhdGVIaWRkZW5WYWx1ZSksdGhpcy5fdXBkYXRlSGlkZGVuVmFsdWUoKX1xdW90ZXNEYXRhKCl7cmV0dXJuIHRoaXMuX3F1b3Rlc0RhdGEucmVhZG9ubHkoKS5zcGF3bigpfWRlc3Ryb3koKXt0aGlzLl9tYXJrZXRTdGF0dXMuZGVzdHJveSgpLHRoaXMuX2RhdGFQcm9ibGVtcy5kZXN0cm95KCksdGhpcy5fc2VyaWVzLm9uSW5SZXBsYXlTdGF0ZUNoYW5nZWQ/LigpLnVuc3Vic2NyaWJlQWxsKHRoaXMpLHRoaXMuX3Nlcmllcy5xdW90ZXNQcm92aWRlcigpLnF1b3Rlc1VwZGF0ZSgpLnVuc3Vic2NyaWJlQWxsKHRoaXMpLHRoaXMuX3Nlcmllcy5xdW90ZXNQcm92aWRlcigpLnF1b3RlU3ltYm9sQ2hhbmdlZCgpLnVuc3Vic2NyaWJlQWxsKHRoaXMpLHRoaXMuX3Nlcmllcy5vblN0YXR1c0NoYW5nZWQoKS51bnN1YnNjcmliZUFsbCh0aGlzKSxudWxsIT09dGhpcy5fZm9yY2VEaXNhYmxlSGlkZGVuU3RhdGVUaW1lb3V0JiZjbGVhclRpbWVvdXQodGhpcy5fZm9yY2VEaXNhYmxlSGlkZGVuU3RhdGVUaW1lb3V0KSxzdXBlci5kZXN0cm95KCl9Cl91cGRhdGVIaWRkZW5WYWx1ZSgpe2NvbnN0IGU9dGhpcy5fc2VyaWVzLnN0YXR1cygpLHQ9dGhpcy5fZm9yY2VEaXNhYmxlSGlkZGVuU3RhdGUudmFsdWUoKXx8dGhpcy5fc2VyaWVzLmlzSW5SZXBsYXkoKS52YWx1ZSgpfHwxMj09PWV8fDQ9PT1lfHxudWxsIT09dGhpcy5fbWFya2V0U3RhdHVzLnZhbHVlKCkmJjIhPT1lJiYxIT09ZXx8dGhpcy5fZGF0YVByb2JsZW1zLnZhbHVlKCkuc29tZSgoZT0+ImhpZ2giPT09ZS5zZXZlcml0eSkpO3RoaXMuX2hpZGRlbi5zZXRWYWx1ZSghdCl9fX0sNDQxNDQwKGUsdCxhKXsidXNlIHN0cmljdCI7YS5kKHQse0RhdGFTb3VyY2VTdGF0dXNlc1dpZGdldFN0YXRlOigpPT5adH0pO3ZhciBzPWEoMjMyMzY0KSxvPWEoOTUyOTAwKSxpPWEoMTI4OTk4KSxyPWEoODkxOTU0KSxuPWEoMTg1MjcxKSxsPWEoNjQxNTkzKSx1PWEoOTYyNzM3KSxjPWEoNzcwNzU1KSxkPWEoMTU3NDQ3KSxoPWEoNTY1MjA2KSxwPWEoNjQyNzgzKSxtPWEoMzUxMTgyKSxfPWEoODYwNTQ4KTtjb25zdCBTPW4udChudWxsLHZvaWQgMCxhKDMzMzQwNykpLGY9bmV3IE1hcChbWyEwLG5ldyBNYXAoW1sic21hbGwiLHBdLFsibWVkaXVtIixtXSxbImxhcmdlIixtXV0pXSxbITEsbmV3IE1hcChbWyJzbWFsbCIsIiJdLFsibWVkaXVtIiwiIl0sWyJsYXJnZSIsIiJdXSldXSksdz1uZXcgTWFwKFtbITAsXy5kYXRhUHJvYmxlbUxvd10sWyExLG51bGxdXSksYj1uZXcgTWFwKFtbITAsU10sWyExLG51bGxdXSksZz1uZXcgTWFwKFtbITAsU10sWyExLG51bGxdXSksdj1uZXcgTWFwKFtbITAsInZhcigtLWNvbG9yLWNvbnRlbnQtcHJpbWFyeS1kYW5nZXItZXh0cmEtYm9sZCkiXSxbITEsbnVsbF1dKTtjbGFzcyB5IGV4dGVuZHMgaC5TdGF0dXNWaWV3TW9kZWx7Y29uc3RydWN0b3IoZSx0LGEpe3N1cGVyKHtpY29uTWFwOmYsY2xhc3NOYW1lTWFwOncsdG9vbHRpcE1hcDpiLHRpdGxlTWFwOmcsdGl0bGVDb2xvck1hcDp2LHNpemU6dH0pLHRoaXMuX2RhdGFTb3VyY2VFcnJvclN0YXR1cz1uZXcgcy5XYXRjaGVkVmFsdWUobnVsbCkuc3Bhd24oKSx0aGlzLl9sYXN0RXJyb3I9bnVsbCx0aGlzLl9vcHRpb25zPWEsdGhpcy5zZXRTb3VyY2UoZSl9ZGVzdHJveSgpe3RoaXMuX2RhdGFTb3VyY2VFcnJvclN0YXR1cy5kZXN0cm95KCksc3VwZXIuZGVzdHJveSgpfXNldFNvdXJjZShlKXt0aGlzLl9kYXRhU291cmNlRXJyb3JTdGF0dXMuZGVzdHJveSgpLHRoaXMuX2RhdGFTb3VyY2VFcnJvclN0YXR1cz1lLmVycm9yU3RhdHVzKCkuc3Bhd24oKSx0aGlzLl9kYXRhU291cmNlRXJyb3JTdGF0dXMuc3Vic2NyaWJlKHRoaXMuX3VwZGF0ZVN0YXR1cy5iaW5kKHRoaXMpLHtjYWxsV2l0aExhc3Q6ITB9KX1fZ2V0VG9vbHRpcChlKXtyZXR1cm4oZT90aGlzLl9nZXREYXRhU291cmNlRXJyb3JTdGF0dXNDdXN0b21UaXRsZSgpOm51bGwpPz9zdXBlci5fZ2V0VG9vbHRpcChlKX1fZ2V0VGl0bGUoZSl7cmV0dXJuKGU/dGhpcy5fZ2V0RGF0YVNvdXJjZUVycm9yU3RhdHVzQ3VzdG9tVGl0bGUoKTpudWxsKT8/c3VwZXIuX2dldFRpdGxlKGUpfWFzeW5jIF91cGRhdGVGdWxsVG9vbHRpcCgpe2NvbnN0IGU9dGhpcy5fc3RhdHVzLnZhbHVlKCksdD10aGlzLl9kYXRhU291cmNlRXJyb3JTdGF0dXMudmFsdWUoKTtudWxsIT09ZSYmbnVsbCE9PXQ/dGhpcy5fZnVsbFRvb2x0aXAuc2V0VmFsdWUoW3tpY29uOnRoaXMuX2dldEljb24oZSksaWNvbkNsYXNzTmFtZTp0aGlzLl9nZXRGdWxsVG9vbHRpcEljb25DbGFzc05hbWVzKGUpLHRpdGxlOnRoaXMuX2dldFRpdGxlKGUpLHRpdGxlQ29sb3I6dGhpcy5fZ2V0VGl0bGVDb2xvcihlKSxodG1sOnZvaWQgMD09PXQuc3RhY2tUcmFjZT9bKDAsdS5mb3JtYXRTdHVkeUVycm9yKSgoMCxsLmh0bWxFc2NhcGUpKHQuZXJyb3IpKV06bnVsbCxzaXplOnRoaXMuX3NpemUsYWN0aW9uOnRoaXMuX2dldEFjdGlvbihlKSxzb2x1dGlvbklkOnRoaXMuX29wdGlvbnMuZXJyb3JTb2x1dGlvbj90aGlzLl9kYXRhU291cmNlRXJyb3JTdGF0dXMudmFsdWUoKT8uc29sdXRpb25JZDp2b2lkIDAsZGF0YVFhSWQ6dGhpcy5fZGF0YVFhSWQoKT8/dm9pZCAwfV0pOnRoaXMuX2Z1bGxUb29sdGlwLnNldFZhbHVlKG51bGwpfV9kYXRhUWFJZCgpe3JldHVybiJkYXRhLXNvdXJjZS1lcnJvci1zdGF0dXMifV9nZXRBY3Rpb24oZSl7Y29uc3QgdD10aGlzLl9kYXRhU291cmNlRXJyb3JTdGF0dXMudmFsdWUoKTtpZih0aGlzLl9vcHRpb25zLmVycm9yU29sdXRpb24mJm51bGwhPT10KXtjb25zdHtzdHVkeUZlYXR1cmU6ZX09dDtpZihlKXJldHVybnt0ZXh0OigwLGQuZ2V0TGVhcm5Nb3JlVGl0bGUpKCksb25DbGljazooKT0+KDAsYy5vcGVuUGF5d2FsbCkoZSl9fXJldHVybiBudWxsfV91cGRhdGVTdGF0dXMoZSl7Y29uc3QgdD10aGlzLl9zdGF0dXMudmFsdWUoKTtudWxsIT09ZT8odGhpcy5fc3RhdHVzLnNldFZhbHVlKCEwKSx0JiZ0aGlzLl9sYXN0RXJyb3IhPT1lLmVycm9yJiZ0aGlzLl91cGRhdGVCeVN0YXR1cyghMCksdGhpcy5fbGFzdEVycm9yPWUuZXJyb3IpOih0aGlzLl9zdGF0dXMuc2V0VmFsdWUobnVsbCksdGhpcy5fbGFzdEVycm9yPW51bGwpfV9nZXREYXRhU291cmNlRXJyb3JTdGF0dXNDdXN0b21UaXRsZSgpe3JldHVybiB0aGlzLl9kYXRhU291cmNlRXJyb3JTdGF0dXMudmFsdWUoKT8udGl0bGV8fG51bGx9fXZhciBNLEk9YSg3Nzk0NzQpLEU9YSgyMjEwNjEpLEM9YSg3MDA4NCksVD1hKDU2MjQ1NSksaz1hKDI4NTg2MSkseD1hKDQ2MDQ0OCksRD1hKDU1NDY0MSksVj1hKDgzNTk4MCksUD1hKDEwODE4MiksQT1hKDc3NjU3NiksUj1hKDE5MzUwOCk7IWZ1bmN0aW9uKGUpe2UuRGVsYXlUb1JlYWx0aW1lPSJEZWxheVRvUmVhbHRpbWUiLGUuRGVsYXlOb1JlYWx0aW1lPSJEZWxheU5vUmVhbHRpbWUiLGUuVEZFWERlbGF5Rm9yR3Vlc3Q9IlRGRVhEZWxheUZvckd1ZXN0IixlLk1JTERlbGF5Rm9yR3Vlc3Q9Ik1JTERlbGF5Rm9yR3Vlc3QiLGUuSUNFU0dEZWxheUZvckd1ZXN0PSJJQ0VTR0RlbGF5Rm9yR3Vlc3QiLGUuVFVSUVVPSVNFRGVsYXlGb3JHdWVzdD0iVFVSUVVPSVNFRGVsYXlGb3JHdWVzdCIsCmUuQURYRGVsYXlGb3JHdWVzdD0iQURYRGVsYXlGb3JHdWVzdCIsZS5UUkFERUdBVEVEZWxheUZvckd1ZXN0PSJUUkFERUdBVEVEZWxheUZvckd1ZXN0IixlLkxVWFNFRGVsYXlGb3JHdWVzdD0iTFVYU0VEZWxheUZvckd1ZXN0IixlLk5TRU5HRGVsYXlGb3JHdWVzdD0iTlNFTkdEZWxheUZvckd1ZXN0IixlLkZJTlJBRGVsYXlGb3JHdWVzdD0iRklOUkFEZWxheUZvckd1ZXN0IixlLkFRVUlTRGVsYXlGb3JHdWVzdD0iQVFVSVNEZWxheUZvckd1ZXN0IixlLkVFWERlbGF5Rm9yR3Vlc3Q9IkVFWERlbGF5Rm9yR3Vlc3QiLGUuREVGb3JHdWVzdD0iREVGb3JHdWVzdCIsZS5FT0Q9IkVPRCIsZS5FT0RUb1JlYWx0aW1lPSJFT0RUb1JlYWx0aW1lIixlLlRpY2tCeVRpY2s9IlRpY2tCeVRpY2siLGUuQkFUU1RvUmVhbHRpbWU9IkJBVFNUb1JlYWx0aW1lIixlLkRlbGF5V2l0aG91dE1hcmtldEFncmVlbWVudD0iRGVsYXlXaXRob3V0TWFya2V0QWdyZWVtZW50IixlLkRlbGF5V2l0aG91dFBhaWRGb3JQcm9mZmVzc2lvbmFsPSJEZWxheVdpdGhvdXRQYWlkRm9yUHJvZmZlc3Npb25hbCIsZS5PdmVybmlnaHRRdW90ZXM9Ik92ZXJuaWdodFF1b3RlcyJ9KE18fChNPXt9KSk7Y29uc3QgQj1bIlRGRVhEZWxheUZvckd1ZXN0IiwiTUlMRGVsYXlGb3JHdWVzdCIsIkRFRm9yR3Vlc3QiLCJJQ0VTR0RlbGF5Rm9yR3Vlc3QiLCJUVVJRVU9JU0VEZWxheUZvckd1ZXN0IiwiQURYRGVsYXlGb3JHdWVzdCIsIlRSQURFR0FURURlbGF5Rm9yR3Vlc3QiLCJMVVhTRURlbGF5Rm9yR3Vlc3QiLCJOU0VOR0RlbGF5Rm9yR3Vlc3QiLCJGSU5SQURlbGF5Rm9yR3Vlc3QiLCJBUVVJU0RlbGF5Rm9yR3Vlc3QiLCJFRVhEZWxheUZvckd1ZXN0Il07dmFyIE49YSg3Mzc1MjMpLEY9YSg5MzA1NjYpO2NvbnN0IFc9InR2LmFscmVhZHlCbGlua2VkU3RhdHVzZXMiLE89W107ZnVuY3Rpb24gSCgpe3JldHVybiBGLmdldEpTT04oVyxPKX1jb25zdCBMPW5ldyBzLldhdGNoZWRWYWx1ZShIKCkpO2Z1bmN0aW9uIFUoZSl7Y29uc3QgdD1GLmdldEpTT04oVyxPKTt0LmluY2x1ZGVzKGUpfHwodC5wdXNoKGUpLEYuc2V0SlNPTihXLHQpLEwuc2V0VmFsdWUoSCgpKSl9Ri5vblN5bmMuc3Vic2NyaWJlKG51bGwsKCgpPT5MLnNldFZhbHVlKEgoKSkpKTtjb25zdCBHPUw7dmFyIHo9YSgzNjIyMzkpO3ZhciBxPWEoMzg2OTMxKSwkPWEoNjEzODcwKSxqPWEoOTI2OTk1KSxRPWEoNzc0NTA3KTthc3luYyBmdW5jdGlvbiBYKGUpe3ZvaWQgMD09PWUuaXNFeHBlcnQmJihlPXsuLi5lLGlzRXhwZXJ0OndpbmRvdy51c2VyLmRlY2xhcmVkX3N0YXR1cz09PVEuVXNlclN0YXR1cy5Qcm99KTsoYXdhaXQgUHJvbWlzZS5hbGwoW2EuZSg0MzU3NiksYS5lKDg0MzA2KSxhLmUoNTIzOTYpLGEuZSgxMzQ5MiksYS5lKDM3NzQ2KSxhLmUoODEwNzIpLGEuZSgyMzYyNCksYS5lKDE5NTk1KSxhLmUoMTk3ODcpLGEuZSg2Nzc5OSksYS5lKDg2NDIzKSxhLmUoODU3OSksYS5lKDQwODM1KSxhLmUoNzI2NjYpLGEuZSg5MzQyMSksYS5lKDc4NjUyKSxhLmUoNzQzODEpLGEuZSgxNTUyNiksYS5lKDYxODIxKSxhLmUoNTczMDApLGEuZSg2NjI3MCksYS5lKDUxNjgyKSxhLmUoMzc3NjcpLGEuZSgzNTE5OCksYS5lKDQ2NTkxKSxhLmUoOTQwNTQpLGEuZSgzMzEyMCksYS5lKDQwODY3KSxhLmUoMTUwOSksYS5lKDUwODAwKSxhLmUoNzY2NSksYS5lKDMzMjIxKSxhLmUoMTI1NjUpLGEuZSgzMTI2MiksYS5lKDI1Njk4KSxhLmUoMjMzMSksYS5lKDc4OTkpLGEuZSg4MTkwMyksYS5lKDgxNTI5KSxhLmUoOTEyMDApLGEuZSg0NDc4MCksYS5lKDg0MzcxKSxhLmUoMjYxNDUpLGEuZSgzODM5OCksYS5lKDM3NzU2KV0pLnRoZW4oYS5iaW5kKGEsODcxMDUyKSkpLm9wZW5FeGNoYW5nZUFncmVlbWVudERpYWxvZyhlKX12YXIgSz1hKDU4OTc0OSk7Y29uc3QgWj0oMCwKRS5nZXRMb2dnZXIpKCJDaGFydC5MZWdlbmRXaWRnZXQiKSxKPW5ldyBNYXAoW1sic21hbGwiLENdLFsibWVkaXVtIixUXSxbImxhcmdlIixUXV0pLFk9bmV3IE1hcChbWyJzbWFsbCIsa10sWyJtZWRpdW0iLHhdLFsibGFyZ2UiLHhdXSksZWU9bmV3IE1hcChbWyJzbWFsbCIsRF0sWyJtZWRpdW0iLFZdLFsibGFyZ2UiLFZdXSksdGU9bmV3IE1hcChbWyJEZWxheVRvUmVhbHRpbWUiLEpdLFsiRGVsYXlOb1JlYWx0aW1lIixKXSxbIlRGRVhEZWxheUZvckd1ZXN0IixKXSxbIk1JTERlbGF5Rm9yR3Vlc3QiLEpdLFsiSUNFU0dEZWxheUZvckd1ZXN0IixKXSxbIlRVUlFVT0lTRURlbGF5Rm9yR3Vlc3QiLEpdLFsiQURYRGVsYXlGb3JHdWVzdCIsSl0sWyJUUkFERUdBVEVEZWxheUZvckd1ZXN0IixKXSxbIkxVWFNFRGVsYXlGb3JHdWVzdCIsSl0sWyJOU0VOR0RlbGF5Rm9yR3Vlc3QiLEpdLFsiRklOUkFEZWxheUZvckd1ZXN0IixKXSxbIkFRVUlTRGVsYXlGb3JHdWVzdCIsSl0sWyJFRVhEZWxheUZvckd1ZXN0IixKXSxbIkRFRm9yR3Vlc3QiLEpdLFsiRU9EIixZXSxbIkVPRFRvUmVhbHRpbWUiLFldLFsiVGlja0J5VGljayIsZWVdLFsiQkFUU1RvUmVhbHRpbWUiLGVlXSxbIk92ZXJuaWdodFF1b3RlcyIsZWVdLFsiRGVsYXlXaXRob3V0TWFya2V0QWdyZWVtZW50IixKXV0pLGFlPW5ldyBNYXAoW1siRGVsYXlUb1JlYWx0aW1lIixfLmRlbGF5XSxbIkRlbGF5Tm9SZWFsdGltZSIsXy5kZWxheV0sWyJURkVYRGVsYXlGb3JHdWVzdCIsXy5kZWxheV0sWyJNSUxEZWxheUZvckd1ZXN0IixfLmRlbGF5XSxbIklDRVNHRGVsYXlGb3JHdWVzdCIsXy5kZWxheV0sWyJUVVJRVU9JU0VEZWxheUZvckd1ZXN0IixfLmRlbGF5XSxbIkFEWERlbGF5Rm9yR3Vlc3QiLF8uZGVsYXldLFsiVFJBREVHQVRFRGVsYXlGb3JHdWVzdCIsXy5kZWxheV0sWyJMVVhTRURlbGF5Rm9yR3Vlc3QiLF8uZGVsYXldLFsiTlNFTkdEZWxheUZvckd1ZXN0IixfLmRlbGF5XSxbIkZJTlJBRGVsYXlGb3JHdWVzdCIsXy5kZWxheV0sWyJBUVVJU0RlbGF5Rm9yR3Vlc3QiLF8uZGVsYXldLFsiRUVYRGVsYXlGb3JHdWVzdCIsXy5kZWxheV0sWyJERUZvckd1ZXN0IixfLmRlbGF5XSxbIkVPRCIsXy5lb2RdLFsiRU9EVG9SZWFsdGltZSIsXy5lb2RdLFsiVGlja0J5VGljayIsXy5ub3RBY2N1cmF0ZV0sWyJCQVRTVG9SZWFsdGltZSIsXy5ub3RBY2N1cmF0ZV0sWyJPdmVybmlnaHRRdW90ZXMiLF8ubm90QWNjdXJhdGVdLFsiRGVsYXlXaXRob3V0TWFya2V0QWdyZWVtZW50IixfLmRlbGF5XV0pLHNlPW5ldyBNYXAoW1siRGVsYXlUb1JlYWx0aW1lIixQLmNvbG9yRGVsYXlNb2RlXSxbIkRlbGF5Tm9SZWFsdGltZSIsUC5jb2xvckRlbGF5TW9kZV0sWyJURkVYRGVsYXlGb3JHdWVzdCIsUC5jb2xvckRlbGF5TW9kZV0sWyJNSUxEZWxheUZvckd1ZXN0IixQLmNvbG9yRGVsYXlNb2RlXSxbIklDRVNHRGVsYXlGb3JHdWVzdCIsUC5jb2xvckRlbGF5TW9kZV0sWyJUVVJRVU9JU0VEZWxheUZvckd1ZXN0IixQLmNvbG9yRGVsYXlNb2RlXSxbIkFEWERlbGF5Rm9yR3Vlc3QiLFAuY29sb3JEZWxheU1vZGVdLFsiVFJBREVHQVRFRGVsYXlGb3JHdWVzdCIsUC5jb2xvckRlbGF5TW9kZV0sWyJMVVhTRURlbGF5Rm9yR3Vlc3QiLFAuY29sb3JEZWxheU1vZGVdLFsiTlNFTkdEZWxheUZvckd1ZXN0IixQLmNvbG9yRGVsYXlNb2RlXSxbIkZJTlJBRGVsYXlGb3JHdWVzdCIsUC5jb2xvckRlbGF5TW9kZV0sWyJBUVVJU0RlbGF5Rm9yR3Vlc3QiLFAuY29sb3JEZWxheU1vZGVdLFsiRUVYRGVsYXlGb3JHdWVzdCIsUC5jb2xvckRlbGF5TW9kZV0sWyJERUZvckd1ZXN0IixQLmNvbG9yRGVsYXlNb2RlXSxbIkVPRCIsUC5jb2xvckVvZE1vZGVdLFsiRU9EVG9SZWFsdGltZSIsUC5jb2xvckVvZE1vZGVdLFsiVGlja0J5VGljayIsUC5jb2xvck5vdEFjY3VyYXRlTW9kZV0sWyJCQVRTVG9SZWFsdGltZSIsUC5jb2xvck5vdEFjY3VyYXRlTW9kZV0sWyJPdmVybmlnaHRRdW90ZXMiLFAuY29sb3JOb3RBY2N1cmF0ZU1vZGVdLFsiRGVsYXlXaXRob3V0TWFya2V0QWdyZWVtZW50IixQLmNvbG9yRGVsYXlNb2RlXV0pO3ZhciBvZTshZnVuY3Rpb24oZSl7ZS5Ub29sdGlwU2VwYXJhdG9yPSIgwrcgIn0ob2V8fChvZT17fSkpO2NsYXNzIGllIGV4dGVuZHMgaC5TdGF0dXNWaWV3TW9kZWx7Y29uc3RydWN0b3IoZSx0LGEpe3N1cGVyKHtpY29uTWFwOnRlLGNsYXNzTmFtZU1hcDphZSx0aXRsZUNvbG9yTWFwOnNlLHNpemU6dH0pLHRoaXMuX2RhdGFVcGRhdGVkSW5mbz1uZXcgcy5XYXRjaGVkVmFsdWUobnVsbCkuc3Bhd24oKSx0aGlzLl9vbk1hcmtldFN0YXR1c0NoYW5nZWQ9KCk9Pnt0aGlzLl91cGRhdGVCeVN0YXR1cyh0aGlzLnN0YXR1cygpLnZhbHVlKCkpfSx0aGlzLl9vcHRpb25zPWEsdGhpcy5fbW9kZWw9ZSx0aGlzLl9kYXRhTW9kZUJsaW5raW5nU3RhdHVzZXM9Ry5zcGF3bigpLHRoaXMuX2RhdGFNb2RlQmxpbmtpbmdTdGF0dXNlcy5zdWJzY3JpYmUodGhpcy5fdXBkYXRlQmxpbmtpbmdNb2RlLmJpbmQodGhpcykpLHRoaXMuX29wdGlvbnMubWFya2V0U3RhdHVzPy5zdWJzY3JpYmUodGhpcy5fb25NYXJrZXRTdGF0dXNDaGFuZ2VkKSx0aGlzLnR1cm5PZmZCbGlua2luZ01vZGU9dGhpcy5fdHVybk9mZkJsaW5raW5nLmJpbmQodGhpcyksdGhpcy5zZXRNb2RlbChlKX1kZXN0cm95KCl7dGhpcy5fZGF0YVVwZGF0ZWRJbmZvLmRlc3Ryb3koKSx0aGlzLl9kYXRhTW9kZUJsaW5raW5nU3RhdHVzZXMuZGVzdHJveSgpLHRoaXMuX29wdGlvbnMubWFya2V0U3RhdHVzPy51bnN1YnNjcmliZSh0aGlzLl9vbk1hcmtldFN0YXR1c0NoYW5nZWQpLHRoaXMuX29wdGlvbnMubWFya2V0U3RhdHVzPy5yZWxlYXNlKCksc3VwZXIuZGVzdHJveSgpfXNldE1vZGVsKGUpe2lmKHRoaXMuX2RhdGFVcGRhdGVkSW5mby5kZXN0cm95KCksbnVsbD09PWUpcmV0dXJuIHRoaXMuX21vZGVsPWUsdm9pZCh0aGlzLl9kYXRhVXBkYXRlZEluZm89bmV3IHMuV2F0Y2hlZFZhbHVlKG51bGwpLnNwYXduKCkpO3RoaXMuX2RhdGFVcGRhdGVkSW5mbz1lLnN0YXR1cygpLnNwYXduKCksCnRoaXMuX2RhdGFVcGRhdGVkSW5mby5zdWJzY3JpYmUodGhpcy5fdXBkYXRlU3RhdHVzLmJpbmQodGhpcykse2NhbGxXaXRoTGFzdDohMH0pfW9uUGlsbENsaWNrKCl7dmFyIGUsdCxhO251bGwhPT10aGlzLl9tb2RlbCYmKGU9Im1kX3BpbGxfY2xpY2siLHQ9ImNoYXJ0IixhPXRoaXMuX21vZGVsLnByb05hbWUoKXx8dm9pZCAwLCgwLHouZ2V0VHJhY2tlcikoKS50aGVuKChzPT5zPy50cmFja01hcmtldERhdGFTdGF0dXNFdmVudChlLHQsYSkpKSl9X3Nob3VsZEJlSGlkZGVuQnlTdGF0dXMoZSl7Y29uc3QgdD10aGlzLl9vcHRpb25zLm1hcmtldFN0YXR1cz8udmFsdWUoKTtyZXR1cm4iZXhwaXJlZCI9PT10fHwiZGVsaXN0ZWQiPT09dHx8KCEoIkJBVFNUb1JlYWx0aW1lIiE9PWV8fCF0aGlzLl9tb2RlbD8uaXNTcHJlYWQoKSl8fHN1cGVyLl9zaG91bGRCZUhpZGRlbkJ5U3RhdHVzKGUpKX1fZ2V0VG9vbHRpcCgpe2NvbnN0IGU9dGhpcy5fZ2V0U2hvcnRUZXh0cygpO3JldHVybiBudWxsPT09ZT9udWxsOk9iamVjdC52YWx1ZXMoZSkuam9pbigiIMK3ICIpfWFzeW5jIF91cGRhdGVGdWxsVG9vbHRpcCgpe2NvbnN0IGU9dGhpcy5fZGF0YVVwZGF0ZWRJbmZvLnZhbHVlKCksdD10aGlzLl9zdGF0dXMudmFsdWUoKTtpZihudWxsPT09ZXx8bnVsbD09PXQpcmV0dXJuIHZvaWQgdGhpcy5fZnVsbFRvb2x0aXAuc2V0VmFsdWUobnVsbCk7Y29uc3QgYT10aGlzLl9nZXRTaG9ydFRleHRzKCksW3Msb109YXdhaXQgUHJvbWlzZS5hbGwoW3RoaXMuX2dldEh0bWxzKCksdGhpcy5fZ2V0QWN0aW9ucygpXSk7aWYoZSE9PXRoaXMuX2RhdGFVcGRhdGVkSW5mby52YWx1ZSgpKXJldHVybjtjb25zdCBpPVtdO2Zvcihjb25zdCB0IG9mIGUpe2NvbnN0IGU9dC5tb2RlOyJCQVRTVG9SZWFsdGltZSI9PT1lJiZ0aGlzLl9tb2RlbD8uaXNTcHJlYWQoKXx8aS5wdXNoKHtpY29uOnRoaXMuX2dldEljb24oZSksaWNvbkNsYXNzTmFtZTp0aGlzLl9nZXRGdWxsVG9vbHRpcEljb25DbGFzc05hbWVzKGUpLHRpdGxlOmEmJmFbZV0sdGl0bGVDb2xvcjp0aGlzLl9nZXRUaXRsZUNvbG9yKGUpLGh0bWw6cyYmc1tlXSxzaXplOnRoaXMuX3NpemUsYWN0aW9uOm8mJm9bZV19KX10aGlzLl9mdWxsVG9vbHRpcC5zZXRWYWx1ZShpKX1fdXBkYXRlU3RhdHVzKGUpe2NvbnN0IHQ9bnVsbCE9PWU/ZVswXS5tb2RlOm51bGw7dGhpcy5fc3RhdHVzLnNldFZhbHVlKHQ/P251bGwsITApLHRoaXMuX3VwZGF0ZUJsaW5raW5nTW9kZSgpfWFzeW5jIF9nZXRIdG1scygpe2NvbnN0IGU9dGhpcy5fZGF0YVVwZGF0ZWRJbmZvLnZhbHVlKCk7aWYobnVsbD09PWV8fG51bGw9PT10aGlzLl9tb2RlbClyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKG51bGwpO2NvbnN0IHQ9e30scz10aGlzLl9tb2RlbC5zeW1ib2xOYW1lKCk7bGV0IG89bnVsbDtjb25zdCBpPXRoaXMuX21vZGVsLmxpc3RlZEV4Y2hhbmdlKCkscj10aGlzLl9tb2RlbC50cmFkZWRFeGNoYW5nZSgpO3RyeXtvPWF3YWl0IHRoaXMuX21vZGVsLmRlc2NyaXB0aW9uKCl9Y2F0Y2goZSl7Wi5sb2dFcnJvcihgQ2FuJ3QgZ2V0IGV4Y2hhbmdlIGRlc2NyaXB0aW9uLCByZWFzb246ICR7KDAsSy5lcnJvclRvU3RyaW5nKShlKX1gKX1mb3IoY29uc3QgdSBvZiBlKXtjb25zdCBlPXUubW9kZTtpZih0W2VdPVtdLFsiRGVsYXlUb1JlYWx0aW1lIiwiRGVsYXlOb1JlYWx0aW1lIiwiRGVsYXlXaXRob3V0TWFya2V0QWdyZWVtZW50IiwuLi5CXS5pbmNsdWRlcyhlKSYmKHRbZV0ucHVzaCgoMCxkLmdldERlbGF5SHRtbCkocyx0aGlzLl9tb2RlbC50aW1lKCkpKSx0aGlzLl9vcHRpb25zLnN1YnNjcmlwdGlvbkZ1bGxJbmZvJiZudWxsIT09byYmIkRlbGF5VG9SZWFsdGltZSI9PT1lJiZ0W2VdLnB1c2goKDAsZC5nZXREZWxheVRvUmVhbHRpbWVKc3gpKEkuY3JlYXRlRWxlbWVudCgiYiIsbnVsbCxvKSkpLCJEZWxheU5vUmVhbHRpbWUiPT09ZSYmdFtlXS5wdXNoKCgwLGQuZ2V0RGVsYXlOb1JlYWx0aW1lSHRtbCkoKSksIkRlbGF5V2l0aG91dE1hcmtldEFncmVlbWVudCI9PT1lJiZ0W2VdLnB1c2goKDAsZC5nZXREZWxheVdpdGhvdXRNYXJrZXRBZ3JlZW1lbnRIdG1sKShpKSksdGhpcy5fb3B0aW9ucy5zdWJzY3JpcHRpb25GdWxsSW5mbyYmQi5pbmNsdWRlcyhlKSYmdFtlXS5wdXNoKCgwLGQuZ2V0UnRGcmVlRm9yUmVnaXN0ZXJlZFVzZXJzSHRtbCkoaSkpKSwiRU9EIj09PWUmJih0W2VdPVtSLmVvZEh0bWxdKSwiRU9EVG9SZWFsdGltZSI9PT1lJiYodFtlXT1bUi5lb2RUb1JlYWx0aW1lSHRtbC5mb3JtYXQoe2xpc3RlZEV4Y2hhbmdlOmA8Yj4ke2l9PC9iPmB9KV0pLCJUaWNrQnlUaWNrIj09PWUpe2NvbnN0IHM9dm9pZCAwPT09dS51cGRhdGVQZXJpb2Q/Ui50aWNrQnlUaWNrSHRtbDFGdWxsSW5mbzooMCxsLmh0bWxFc2NhcGUpKG4udChudWxsLHtjb3VudDp1LnVwZGF0ZVBlcmlvZCxyZXBsYWNlOnthbW91bnQ6KHUudXBkYXRlUGVyaW9kPz8xKS50b1N0cmluZygpfSxwbHVyYWw6IkRhdGEgb24gb3VyIEJhc2ljIHBsYW4gaXMgdXBkYXRlZCBvbmNlIGV2ZXJ5IHthbW91bnR9IHNlY29uZHMsIGV2ZW4gaWYgdGhlcmUgYXJlIG1vcmUgdXBkYXRlcyBvbiB0aGUgbWFya2V0LiJ9LGEoNzU1MTkyKSkpLG89dm9pZCAwPT09dS51cGRhdGVQZXJpb2Q/Ui50aWNrQnlUaWNrSHRtbDE6KDAsbC5odG1sRXNjYXBlKShuLnQobnVsbCx7Y291bnQ6dS51cGRhdGVQZXJpb2QscmVwbGFjZTp7YW1vdW50Oih1LnVwZGF0ZVBlcmlvZD8/MSkudG9TdHJpbmcoKX0scGx1cmFsOiJEYXRhIGlzIHVwZGF0ZWQgb25jZSBldmVyeSB7YW1vdW50fSBzZWNvbmRzLCBldmVuIGlmIHRoZXJlIGFyZSBtb3JlIHVwZGF0ZXMgb24gdGhlIG1hcmtldC4ifSxhKDc3MTM1NikpKTt0W2VdLnB1c2godGhpcy5fb3B0aW9ucy5zdWJzY3JpcHRpb25GdWxsSW5mbz9zOm8pLHRoaXMuX29wdGlvbnMuc3Vic2NyaXB0aW9uRnVsbEluZm8mJnRbZV0ucHVzaChSLnRpY2tCeVRpY2tIdG1sMil9aWYoaSE9PXImJiJCQVRTVG9SZWFsdGltZSI9PT1lKXtjb25zdCBhPSgwLE4uaXNBbWV4VG9DYm9lTWlncmF0ZWRTeW1ib2wpKGksdGhpcy5fbW9kZWwucHJvUGVybSgpKQo7Ti5jcnVjaWFsUmVhbHRpbWVCYXRzLmluY2x1ZGVzKHIpfHxhP3RbZV0ucHVzaChSLmJhdHNUb1JlYWx0aW1lQ3J1Y2lhbEh0bWwuZm9ybWF0KHtleGNoYW5nZTphPyJOWVNFIEFyY2EiOmksb3JpZ2luYWxFeGNoYW5nZTpyfSkpOnRbZV0ucHVzaChSLmJhdHNUb1JlYWx0aW1lSHRtbDEuZm9ybWF0KHtzeW1ib2xOYW1lOnMsZXhjaGFuZ2U6cn0pLCIiIT09aT8oMCxsLmh0bWxFc2NhcGUpKFIuYmF0c1RvUmVhbHRpbWVIdG1sMldpdGhFeGNoYW5nZSkuZm9ybWF0KHtleGNoYW5nZTppfSk6KDAsbC5odG1sRXNjYXBlKShSLmJhdHNUb1JlYWx0aW1lSHRtbDJXaXRob3V0RXhjaGFuZ2UpKX0iT3Zlcm5pZ2h0UXVvdGVzIj09PWUmJnRbZV0ucHVzaChSLm92ZXJuaWdodFF1b3Rlc1RleHQpfXJldHVybiBPYmplY3Qua2V5cyh0KS5sZW5ndGg+MD90Om51bGx9YXN5bmMgX2dldEFjdGlvbnMoKXtjb25zdCBlPXRoaXMuX2RhdGFVcGRhdGVkSW5mby52YWx1ZSgpO2lmKG51bGw9PT1lfHxudWxsPT09dGhpcy5fbW9kZWwpcmV0dXJuIG51bGw7Y29uc3QgdD17fTtpZih0aGlzLl9vcHRpb25zLnN1YnNjcmlwdGlvbkZ1bGxJbmZvKWZvcihjb25zdCBhIG9mIGUpe2NvbnN0IGU9YS5tb2RlO2lmKEIuaW5jbHVkZXMoYS5tb2RlKSYmKHRbZV09e3RleHQ6KDAsZC5nZXRDcmVhdGVGcmVlQWNjb3VudFRpdGxlKSgpLG9uQ2xpY2s6KCk9PnsoMCwkLnNob3dTaWduTW9kYWwpKHtzb3VyY2U6IkRhdGEgd2FybmluZyBpbmRpY2F0b3IifSl9fSksIkRlbGF5V2l0aG91dE1hcmtldEFncmVlbWVudCI9PT1lKXtjb25zdCBhPXRoaXMuX21vZGVsLnByb1Blcm0oKXx8dGhpcy5fbW9kZWwubGlzdGVkRXhjaGFuZ2UoKTt0W2VdPXt0ZXh0OigwLGQuZ2V0RmlsbEV4Y2hhbmdlQWdyZWVtZW50c1RpdGxlKSgpLG9uQ2xpY2s6KCk9PntYKHtleGNoYW5nZTphLnRvTG93ZXJDYXNlKCksaXNGcmVlRXhjaGFuZ2U6ITAsaGlkZUNsb3NlQnV0dG9uOiExfSl9fX1pZigiQkFUU1RvUmVhbHRpbWUiPT09ZSl7Y29uc3QgYT10aGlzLl9tb2RlbC5saXN0ZWRFeGNoYW5nZSgpLHM9KDAsTi5pc0FtZXhUb0Nib2VNaWdyYXRlZFN5bWJvbCkoYSx0aGlzLl9tb2RlbC5wcm9QZXJtKCkpO2lmKE4uY3J1Y2lhbFJlYWx0aW1lQmF0cy5pbmNsdWRlcyhhKXx8cyl7Y29uc3Qgbz10aGlzLl9tb2RlbC50cmFkZWRFeGNoYW5nZSgpO3RbZV09dGhpcy5fZ29Qcm9EaWFsb2dBY3Rpb24oe2ZlYXR1cmU6IkJBVFNUb1JlYWx0aW1lIixjb3VudHJ5OnRoaXMuX21vZGVsLmNvdW50cnkoKSxsaW5rOiJodHRwczovL3d3dy5jYm9lLmNvbS91cy9lcXVpdGllcy9tYXJrZXRfc3RhdGlzdGljcyIsb3JpZ2luYWxFeGNoYW5nZTpvLGxpc3RlZEV4Y2hhbmdlOnM/Ik5ZU0UgQXJjYSI6YSxleGNoYW5nZTp0aGlzLl9tb2RlbC5wcm9QZXJtKCl9KX1lbHNlIHRbZV09e3RleHQ6KDAsZC5nZXRMZWFybk1vcmVUaXRsZSkoKSxvbkNsaWNrOigpPT57dGhpcy5fc2hvd1N1cHBvcnREaWFsb2dGb3JVcGRhdGVNb2RlKEEuQkFUU19UT19SRUFMVElNRV9TT0xVVElPTl9JRCl9fX1pZigiVGlja0J5VGljayI9PT1lfHwiRGVsYXlUb1JlYWx0aW1lIj09PWUpe2xldCBhPW51bGw7Y29uc3Qgcz10aGlzLl9tb2RlbC50cmFkZWRFeGNoYW5nZSgpO3RyeXthPWF3YWl0IHRoaXMuX21vZGVsLmRlc2NyaXB0aW9uKCl9Y2F0Y2goZSl7Wi5sb2dFcnJvcihgQ2FuJ3QgZ2V0IGV4Y2hhbmdlIGRlc2NyaXB0aW9uLCByZWFzb246ICR7KDAsSy5lcnJvclRvU3RyaW5nKShlKX1gKX10W2VdPXRoaXMuX2dvUHJvRGlhbG9nQWN0aW9uKHtmZWF0dXJlOmUsdGltZTp0aGlzLl9tb2RlbC50aW1lKCksZGVzY3JpcHRpb246YSxleGNoYW5nZTp0aGlzLl9tb2RlbC5wcm9QZXJtKCl8fHMudG9Mb3dlckNhc2UoKX0pfSJPdmVybmlnaHRRdW90ZXMiPT09ZSYmKHRbZV09dGhpcy5fZ29Qcm9EaWFsb2dBY3Rpb24oe2ZlYXR1cmU6Ik92ZXJuaWdodFF1b3RlcyIsZXhjaGFuZ2U6dGhpcy5fbW9kZWwucHJvUGVybSgpfHx0aGlzLl9tb2RlbC50cmFkZWRFeGNoYW5nZSgpLnRvTG93ZXJDYXNlKCl9KSksIkVPRFRvUmVhbHRpbWUiPT09ZSYmKHRbZV09dGhpcy5fZ29Qcm9EaWFsb2dBY3Rpb24oe2ZlYXR1cmU6IkVPRFRvUmVhbHRpbWUiLGV4Y2hhbmdlOnRoaXMuX21vZGVsLnByb1Blcm0oKXx8dGhpcy5fbW9kZWwudHJhZGVkRXhjaGFuZ2UoKS50b0xvd2VyQ2FzZSgpfSkpfXJldHVybiBPYmplY3Qua2V5cyh0KS5sZW5ndGg+MD90Om51bGx9X3Nob3dTdXBwb3J0RGlhbG9nRm9yVXBkYXRlTW9kZShlKXtpZigoMCxqLnNob3dTdXBwb3J0RGlhbG9nKSh7c29sdXRpb25JZDplfSksbnVsbD09PXRoaXMuX21vZGVsKXJldHVybjtjb25zdCB0PXRoaXMuX21vZGVsLnByb05hbWUoKTsoMCx6LmdldFRyYWNrZXIpKCkudGhlbigoZT0+ZSYmdCYmZS50cmFja01hcmtldERhdGFTb2x1dGlvbkV2ZW50KHQpKSl9X2dldFNob3J0VGV4dHMoKXtjb25zdCBlPXRoaXMuX2RhdGFVcGRhdGVkSW5mby52YWx1ZSgpO2lmKG51bGw9PT1lfHxudWxsPT09dGhpcy5fbW9kZWwpcmV0dXJuIG51bGw7Y29uc3QgdD17fTtmb3IoY29uc3QgcyBvZiBlKXtjb25zdCBlPXMubW9kZTtpZihbIkRlbGF5VG9SZWFsdGltZSIsIkRlbGF5Tm9SZWFsdGltZSIsLi4uQiwiRGVsYXlXaXRob3V0TWFya2V0QWdyZWVtZW50Il0uaW5jbHVkZXMoZSkmJih0W2VdPVIuZGVsYXlUb29sdGlwKSxbIkVPRCIsIkVPRFRvUmVhbHRpbWUiXS5pbmNsdWRlcyhlKSYmKHRbZV09Ui5lb2RUb29sdGlwKSwiVGlja0J5VGljayI9PT1lKXtjb25zdCBvPXZvaWQgMD09PXMudXBkYXRlUGVyaW9kP1Iubm90QWNjdXJhdGUxUGVyU2Vjb25kVG9vbHRpcDooMCxsLmh0bWxFc2NhcGUpKG4udChudWxsLHtwbHVyYWw6Ik9uZSB1cGRhdGUgZXZlcnkge2Ftb3VudH0gc2Vjb25kcyIsY291bnQ6cy51cGRhdGVQZXJpb2QscmVwbGFjZTp7YW1vdW50OihzLnVwZGF0ZVBlcmlvZD8/MSkudG9TdHJpbmcoKX19LGEoMjU2ODE3KSkpO3RbZV09b31pZigiQkFUU1RvUmVhbHRpbWUiPT09ZSl7CmNvbnN0IGE9dGhpcy5fbW9kZWwudHJhZGVkRXhjaGFuZ2UoKSxzPXRoaXMuX21vZGVsLmxpc3RlZEV4Y2hhbmdlKCk7dFtlXT1hIT09cz9SLmV4Y2hhbmdlQnlPcmlnaW5hbEV4Y2hhbmdlVG9vbHRpcC5mb3JtYXQoe2V4Y2hhbmdlOnMsb3JpZ2luYWxFeGNoYW5nZTphfSk6YX0iT3Zlcm5pZ2h0UXVvdGVzIj09PWUmJih0W2VdPVIub3Zlcm5pZ2h0UXVvdGVzVGl0bGUpfXJldHVybiBPYmplY3Qua2V5cyh0KS5sZW5ndGg+MD90Om51bGx9X3VwZGF0ZUJsaW5raW5nTW9kZSgpe2NvbnN0IGU9dGhpcy5fZGF0YVVwZGF0ZWRJbmZvLnZhbHVlKCk7aWYobnVsbD09PWUpcmV0dXJuO2NvbnN0IHQ9dGhpcy5fZGF0YU1vZGVCbGlua2luZ1N0YXR1c2VzLnZhbHVlKCk7Zm9yKGNvbnN0IGEgb2YgZSlpZighdC5pbmNsdWRlcyhhLm1vZGUpKXJldHVybiB2b2lkIHRoaXMuaXNCbGlua2luZ01vZGUuc2V0VmFsdWUoITApO3RoaXMuaXNCbGlua2luZ01vZGUuc2V0VmFsdWUoITEpfV90dXJuT2ZmQmxpbmtpbmcoKXtjb25zdCBlPXRoaXMuX2RhdGFVcGRhdGVkSW5mby52YWx1ZSgpO2lmKG51bGwhPT1lKWZvcihjb25zdCB0IG9mIGUpVSh0Lm1vZGUpfV9nb1Byb0RpYWxvZ0FjdGlvbihlKXtyZXR1cm57dGV4dDooMCxkLmdldExlYXJuTW9yZVRpdGxlKSgpLG9uQ2xpY2s6KCk9PntudWxsIT09dGhpcy5fbW9kZWwmJihlLmdvcHJvU291cmNlPWUuZ29wcm9Tb3VyY2U/PyJjaGFydF9pbmZvX3BpbGxfcGF5d2FsbCIsKDAsYy5vcGVuUGF5d2FsbCkoZSx7YWZ0ZXJPcGVuOigpPT4oMCxxLnRyYWNrRXZlbnQpKCJEYXRhIFdhcm5pbmciLCJGdWxsIGRlc2NyaXB0aW9uIHZpc2libGUiLGUuZmVhdHVyZSl9KSl9fX19Y29uc3QgcmU9bi50KG51bGwsdm9pZCAwLGEoMjI4MDQxKSksbmU9bmV3IE1hcChbWyJoaWdoIixuZXcgTWFwKFtbInNtYWxsIixwXSxbIm1lZGl1bSIsbV0sWyJsYXJnZSIsbV1dKV0sWyJsb3ciLG5ldyBNYXAoW1sic21hbGwiLHBdLFsibWVkaXVtIixtXSxbImxhcmdlIixtXV0pXV0pLGxlPW5ldyBNYXAoW1siaGlnaCIsXy5kYXRhUHJvYmxlbUhpZ2hdLFsibG93IixfLmRhdGFQcm9ibGVtTG93XV0pLHVlPW5ldyBNYXAoW1siaGlnaCIscmVdLFsibG93IixyZV1dKSxjZT1uZXcgTWFwKFtbImhpZ2giLCJ2YXIoLS1jb2xvci1jb250ZW50LXByaW1hcnktZGFuZ2VyKSJdLFsibG93IiwidmFyKC0tY29sb3ItY29udGVudC1wcmltYXJ5LWRhbmdlci1leHRyYS1ib2xkKSJdXSk7Y2xhc3MgZGUgZXh0ZW5kcyBoLlN0YXR1c1ZpZXdNb2RlbHtjb25zdHJ1Y3RvcihlLHQpe3N1cGVyKHt0b29sdGlwTWFwOnVlLGljb25NYXA6bmUsY2xhc3NOYW1lTWFwOmxlLHRpdGxlTWFwOnVlLHRpdGxlQ29sb3JNYXA6Y2Usc2l6ZTp0fSksdGhpcy5fZGF0YVByb2JsZW1zPW5ldyBzLldhdGNoZWRWYWx1ZShbXSkuc3Bhd24oKSx0aGlzLl9pc0RhdGFQcm9ibGVtQ3JpdGljYWw9bmV3IHMuV2F0Y2hlZFZhbHVlKCExKSx0aGlzLnNldE1vZGVsKGUpfWRlc3Ryb3koKXt0aGlzLl9kYXRhUHJvYmxlbXMuZGVzdHJveSgpLHN1cGVyLmRlc3Ryb3koKX1pc0RhdGFQcm9ibGVtQ3JpdGljYWwoKXtyZXR1cm4gdGhpcy5faXNEYXRhUHJvYmxlbUNyaXRpY2FsfXNldE1vZGVsKGUpe3RoaXMuX2RhdGFQcm9ibGVtcy5kZXN0cm95KCksbnVsbCE9PWU/KHRoaXMuX2RhdGFQcm9ibGVtcz1lLmRhdGFQcm9ibGVtcygpLnNwYXduKCksdGhpcy5fZGF0YVByb2JsZW1zLnN1YnNjcmliZSh0aGlzLl91cGRhdGVTdGF0dXMuYmluZCh0aGlzKSx7Y2FsbFdpdGhMYXN0OiEwfSkpOnRoaXMuX2RhdGFQcm9ibGVtcz1uZXcgcy5XYXRjaGVkVmFsdWUoW10pLnNwYXduKCl9YXN5bmMgX3VwZGF0ZUZ1bGxUb29sdGlwKCl7Y29uc3QgZT10aGlzLnN0YXR1cygpLnZhbHVlKCksdD10aGlzLl9kYXRhUHJvYmxlbXMudmFsdWUoKTtpZihudWxsPT09ZXx8MD09PXQubGVuZ3RoKXJldHVybiB2b2lkIHRoaXMuX2Z1bGxUb29sdGlwLnNldFZhbHVlKG51bGwpO2NvbnN0IGE9dC5tYXAoKCh0LGEpPT4oe2ljb246dGhpcy5fZ2V0SWNvbihlKSxpY29uQ2xhc3NOYW1lOnRoaXMuX2dldEZ1bGxUb29sdGlwSWNvbkNsYXNzTmFtZXMoZSksdGl0bGU6dC50aXRsZT8/KDA9PT1hP3RoaXMuX2dldFRpdGxlKGUpOm51bGwpLHRpdGxlQ29sb3I6dGhpcy5fZ2V0VGl0bGVDb2xvcihlKSxodG1sOlsoMCxsLmh0bWxFc2NhcGUpKHQudGV4dCldLHNpemU6dGhpcy5fc2l6ZSxhY3Rpb246dGhpcy5fZ2V0QWN0aW9uKGUpfSkpKTt0aGlzLl9mdWxsVG9vbHRpcC5zZXRWYWx1ZShhKX1fZ2V0VG9vbHRpcChlKXtyZXR1cm4gdGhpcy5fZ2V0RGF0YVByb2JsZW1DdXN0b21UaXRsZSgpPz9zdXBlci5fZ2V0VG9vbHRpcChlKX1fZ2V0VGl0bGUoZSl7cmV0dXJuIHRoaXMuX2dldERhdGFQcm9ibGVtQ3VzdG9tVGl0bGUoKT8/c3VwZXIuX2dldFRpdGxlKGUpfV91cGRhdGVTdGF0dXMoZSl7Y29uc3QgdD1lWzBdPy5zZXZlcml0eT8/bnVsbCxhPXRoaXMuX3N0YXR1cy52YWx1ZSgpIT09dDt0aGlzLl9zdGF0dXMuc2V0VmFsdWUodCksdGhpcy5faXNEYXRhUHJvYmxlbUNyaXRpY2FsLnNldFZhbHVlKGZ1bmN0aW9uKGUpe3JldHVybiJoaWdoIj09PWV9KHQpKSxhfHx0aGlzLl91cGRhdGVGdWxsVG9vbHRpcCgpfV9nZXREYXRhUHJvYmxlbUN1c3RvbVRpdGxlKCl7cmV0dXJuIHRoaXMuX2RhdGFQcm9ibGVtcy52YWx1ZSgpPy5bMF0/LnRpdGxlfHxudWxsfX12YXIgaGU9YSg5NzA2MzUpLHBlPWEoNzg2NDIwKSxtZT1hKDM3ODU5OSkKO2NvbnN0IF9lPW4udChudWxsLHZvaWQgMCxhKDczMjc3NikpLFNlPW4udChudWxsLHZvaWQgMCxhKDY5MjYxNSkpLGZlPW5ldyBNYXAoW1shMCxuZXcgTWFwKFtbInNtYWxsIixwZV0sWyJtZWRpdW0iLG1lXSxbImxhcmdlIixtZV1dKV0sWyExLG5ldyBNYXAoW1sic21hbGwiLCIiXSxbIm1lZGl1bSIsIiJdLFsibGFyZ2UiLCIiXV0pXV0pLHdlPW5ldyBNYXAoW1shMCxfLmludmFsaWRTeW1ib2xdLFshMSxudWxsXV0pLGJlPW5ldyBNYXAoW1shMCxfZV0sWyExLG51bGxdXSksZ2U9bmV3IE1hcChbWyEwLF9lXSxbITEsbnVsbF1dKSx2ZT1uZXcgTWFwKFtbITAsInZhcigtLWNvbG9yLWNvbnRlbnQtcHJpbWFyeS1kYW5nZXIpIl0sWyExLG51bGxdXSkseWU9bmV3IE1hcChbWyEwLFtTZV1dLFshMSxudWxsXV0pLE1lPW5ldyBNYXAoW1shMCxudWxsXSxbITEsbnVsbF1dKTt2YXIgSWUsRWU9YSg1NjkzOTgpLENlPWEoMTc5NzcxKSxUZT1hKDkxNDQ4Nyksa2U9YS5uKFRlKSx4ZT1hKDM4MjU5Myk7ZnVuY3Rpb24gRGUoZSl7cmV0dXJuIHZvaWQgMCE9PWUudGV4dD9lLnRleHQ6YCR7ZS5saW5lTnVtYmVyfSR7ZS5mdW5jdGlvbk9yU2NvcGVOYW1lfWB9ZnVuY3Rpb24gVmUoZSl7Y29uc3R7Y2xhc3NOYW1lOnQsc3RhY2tUcmFjZTpzLGJhckluZGV4Om8saW5GdW5jdGlvbjppfT1lLHI9KDAsSS51c2VNZW1vKSgoKCk9PnMubGVuZ3RoPjEwP1suLi5zLnNsaWNlKDAsNSkse3RleHQ6Ii4uLiJ9LC4uLnMuc2xpY2UoLTUpXTpzKSxbc10pO3JldHVybiByLmxlbmd0aHx8dm9pZCAwIT09b3x8dm9pZCAwIT09aT9JLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTprZSgpKHhlLndyYXBTdGFja1RyYWNlLHQpfSxJLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTprZSgpKHhlLmluZm8seGUuaGlkZUVtcHR5KX0sdm9pZCAwIT09byYmSS5jcmVhdGVFbGVtZW50KCJkaXYiLG51bGwsSS5jcmVhdGVFbGVtZW50KCJzcGFuIixudWxsLGAke24udChudWxsLHtjb250ZXh0OiJwaW5lIHN0YWNrIHRyYWNlIn0sYSg4ODYxMzMpKX06IGApLEkuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZTp4ZS5iYXJJbmRleH0sbykpLGkmJkkuY3JlYXRlRWxlbWVudCgiZGl2IixudWxsLEkuY3JlYXRlRWxlbWVudCgic3BhbiIsbnVsbCxgJHtuLnQobnVsbCx7Y29udGV4dDoicGluZSBzdGFjayB0cmFjZSJ9LGEoODE5MTYzKSl9OiBgKSxJLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6eGUuZnVuY3Rpb25OYW1lfSxpKSkpLEkuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOnhlLmhpZGVFbXB0eX0sci5tYXAoKChlLHQpPT5JLmNyZWF0ZUVsZW1lbnQoUGUse2tleTpgJHtEZShlKX0ke3R9YCwuLi5lfSkpKSkpOm51bGx9ZnVuY3Rpb24gUGUoZSl7Y29uc3R7ZnVuY3Rpb25PclNjb3BlTmFtZTp0LGxpbmVOdW1iZXI6YSx0ZXh0OnN9PWU7cmV0dXJuIEkuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOnhlLnN0YWNrVHJhY2VMaW5lfSxzP0kuY3JlYXRlRWxlbWVudCgic3BhbiIsbnVsbCxzKTpJLmNyZWF0ZUVsZW1lbnQoInNwYW4iLG51bGwsImF0ICIsSS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOnhlLmZ1bmN0aW9uTmFtZX0sdCwiKCkiKSwiOiIsYSkpfSFmdW5jdGlvbihlKXtlW2UuTWF4U3RhY2tUcmFjZUNvdW50PTEwXT0iTWF4U3RhY2tUcmFjZUNvdW50In0oSWV8fChJZT17fSkpO3ZhciBBZT1hKDM0NDc4NSksUmU9YSg2MzI0NDQpLEJlPWEoNTU3MDY1KSxOZT1hKDg1NDgyMCksRmU9YSg0Njg0OTMpLFdlPWEoMjc2MDE5KTtmdW5jdGlvbiBPZShlKXtjb25zdHtjbGFzc05hbWU6dCxwaW5lU291cmNlQ29kZU1vZGVsOnMscGluZUVkaXRvck9wZW5QYXJhbXM6b309ZSxbaSxyXT0oMCxJLnVzZVN0YXRlKSghMSksbD0oMCxGZS51c2VQcm9taXNlKSgoKCk9PnMpKTsoMCxJLnVzZUVmZmVjdCkoKCgpPT57aWYobnVsbD09PWwpcmV0dXJuO2NvbnN0IGU9ZT0+e2NvbnN0IHQ9Qm9vbGVhbihvLmVycm9yPy5zdGFydD8/dm9pZCAwKTtyKGUmJnQpfTtyZXR1cm4gbC5pc0FibGVTaG93U291cmNlQ29kZSgpLnN1YnNjcmliZShlLHtjYWxsV2l0aExhc3Q6ITB9KSwoKT0+bC5pc0FibGVTaG93U291cmNlQ29kZSgpLnVuc3Vic2NyaWJlKGUpfSksW28sbF0pO2NvbnN0IHU9KDAsSS51c2VDYWxsYmFjaykoKCgpPT57KDAsV2UuZ2xvYmFsQ2xvc2VNZW51KSgpLG8mJmw/LnNob3dQaW5lU291cmNlQ29kZShvKX0pLFtsLG9dKTtyZXR1cm4gaT9JLmNyZWF0ZUVsZW1lbnQoTmUuTGlnaHRCdXR0b24se2NsYXNzTmFtZTp0LG9uQ2xpY2s6dSxzaXplOiJ4c21hbGwifSxuLnQobnVsbCx2b2lkIDAsYSg2NDExMDkpKSk6bnVsbH12YXIgSGU9YSg3NTgyMzgpLExlPWEoNzgzMjU0KSxVZT1hKDgwMjUyOCksR2U9YSgyMjMwODApO2Z1bmN0aW9uIHplKHtjb2RlOmV9KXtjb25zdCB0PSgwLEZlLnVzZVByb21pc2UpKChhc3luYygpPT57dHJ5e3JldHVybiBhd2FpdCgwLFVlLmZldGNoRWRpdG9yRXJyb3IpKGUpfWNhdGNoKGUpe3JldHVybiBudWxsfX0pLHZvaWQgMCxbZV0pO3JldHVybiB0P0kuY3JlYXRlRWxlbWVudChOZS5MaWdodEJ1dHRvbix7c2l6ZToieHNtYWxsIix2YXJpYW50OiJzZWNvbmRhcnkiLGVuZFNsb3Q6SS5jcmVhdGVFbGVtZW50KEhlLklubGluZUljb24se2ljb246R2V9KSxvbkNsaWNrOigpPT5vcGVuKHQsIl9ibGFuayIpfSxMZS50KG51bGwse2NvbnRleHQ6IlBpbmUncyBlcnJvciBjb2RlIn0sYSg5OTI2MzYpKSk6bnVsbH12YXIgcWU9YSg4MzAxOTcpO2Z1bmN0aW9uICRlKHtlZGl0b3JFcnJvcjplLHNob3dSZXBvcnRJdEJ1dHRvbjp0LGNvZGU6YSxjbGFzc05hbWU6c30pe3JldHVybiBJLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTprZSgpKHFlLmVkaXRvckVycm9yQnV0dG9ucyxzKX0sZSx0LGEpfXZhciBqZT1hKDg3Nzk5OSk7ZnVuY3Rpb24gUWUoZSl7cmV0dXJuIGUubWFwKChlPT5gYXQgJHtlLmZ1bmN0aW9uT3JTY29wZU5hbWV9KCk6JHtlLmxpbmVOdW1iZXJ9YCkpLmpvaW4oIlxuIil9ZnVuY3Rpb24gWGUoZSl7CmNvbnN0e3N0YWNrVHJhY2U6dCxlcnJvck1lc3NhZ2U6cyxwaW5lU291cmNlQ29kZU1vZGVsOm8sYmFySW5kZXg6aSxpbkZ1bmN0aW9uOnJ9PWUsW2wsdV09KDAsSS51c2VTdGF0ZSkoITEpLGM9KDAsSS51c2VSZWYpKG51bGwpLGQ9KDAsSS51c2VNZW1vKSgoKCk9Pntjb25zdCBlPXQuZmluZCgoZT0+IWUuaWR8fCEoMCxSZS5pc1B1Ymxpc2hlZFBpbmVJZCkoZS5pZCkpKTtyZXR1cm4gdm9pZCAwPT09ZT97fTp7c3RhY2tUcmFjZTp0LGVycm9yOnttZXNzYWdlOnMsc3RhcnQ6e2xpbmU6ZS5saW5lTnVtYmVyLGNvbHVtbjowfX19fSksW3MsdF0pLGg9a2UoKShqZS53cmFwRXJyb3IsbCYmamUuY2xpY2tlZEFuaW0pO3JldHVybiBJLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpqZS53cmFwcGVyfSxJLmNyZWF0ZUVsZW1lbnQoImRpdiIse3JlZjpjLGNsYXNzTmFtZTpoLG9uQ2xpY2s6ZnVuY3Rpb24oZSl7aWYobClyZXR1cm47aWYoKDAsQmUuY29weVRvQ2xpcGJvYXJkKSh7dGV4dDpRZSh0KX0pLG51bGw9PT1jLmN1cnJlbnQpcmV0dXJuOygwLEFlLnNob3dPbkVsZW1lbnQpKGMuY3VycmVudCx7dG9vbHRpcERlbGF5OjAsY29udGVudDp7dHlwZToidGV4dCIsZGF0YTpuLnQobnVsbCx2b2lkIDAsYSg0Njk4NDEpKX19KSx1KCEwKSxzZXRUaW1lb3V0KCgoKT0+eygwLEFlLmhpZGUpKCksdSghMSl9KSwyZTMpfX0scy5sZW5ndGgmJkkuY3JlYXRlRWxlbWVudChLZSx7ZXJyb3JNZXNzYWdlOnN9KSxJLmNyZWF0ZUVsZW1lbnQoVmUse3N0YWNrVHJhY2U6dCxiYXJJbmRleDppLGluRnVuY3Rpb246cixjbGFzc05hbWU6amUud3JhcFN0YWNrVHJhY2V9KSksSS5jcmVhdGVFbGVtZW50KCRlLHtlZGl0b3JFcnJvcjpJLmNyZWF0ZUVsZW1lbnQoT2Use2NsYXNzTmFtZToiZWRpdG9yQnV0dG9uIixwaW5lU291cmNlQ29kZU1vZGVsOm8scGluZUVkaXRvck9wZW5QYXJhbXM6ZH0pLGNvZGU6ZS5jb2RlJiZJLmNyZWF0ZUVsZW1lbnQoemUse2NvZGU6ZS5jb2RlfSl9KSl9ZnVuY3Rpb24gS2UoZSl7Y29uc3R7ZXJyb3JNZXNzYWdlOnR9PWU7cmV0dXJuIEkuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOmplLmVycm9yVGV4dH0sdCl9ZnVuY3Rpb24gWmUoZSl7Y29uc3R7Y2xhc3NOYW1lOnQsZWRpdG9yRXJyb3I6YSxwaW5lU291cmNlQ29kZU1vZGVsOnN9PWU7cmV0dXJuIGEuaWQuc3RhcnRzV2l0aCgiVVNFUiIpP0kuY3JlYXRlRWxlbWVudCgiZGl2IixudWxsLEkuY3JlYXRlRWxlbWVudChPZSx7Y2xhc3NOYW1lOnQscGluZVNvdXJjZUNvZGVNb2RlbDpzLHBpbmVFZGl0b3JPcGVuUGFyYW1zOntlcnJvcjphfX0pKTpudWxsfWZ1bmN0aW9uIEplKGUpe2NvbnN0e2NsYXNzTmFtZTp0fT1lO3JldHVybiBJLmNyZWF0ZUVsZW1lbnQoImRpdiIsbnVsbCxJLmNyZWF0ZUVsZW1lbnQoTmUuTGlnaHRCdXR0b24se2NsYXNzTmFtZTp0LG9uQ2xpY2s6ZnVuY3Rpb24oZSl7ZS5wcmV2ZW50RGVmYXVsdCgpLCgwLGouc2hvd1N1cHBvcnREaWFsb2cpKHtpbml0aWFsU3RhdGU6ImNoYXQtYXNzaXN0YW50In0pfSxzaXplOiJ4c21hbGwifSxuLnQobnVsbCx2b2lkIDAsYSg1MDg3NDkpKSkpfWNsYXNzIFlle2NvbnN0cnVjdG9yKGUpe3RoaXMuX2NsaWNrT25MaW5lQ2FsbGJhY2s9ZT0+e0NlLmVtaXQoInN0dWR5X3N0YWNrX3RyYWNlX29wZW5fb25fbGluZSIsdGhpcy5fc291cmNlLmVudGl0eUlkPy4oKT8/IiIsZSl9LHRoaXMuX3NvdXJjZT1lfWRlc3Ryb3koKXt9cmVuZGVyZXIoZSx0KXtjb25zdCBhPXRoaXMuX3NvdXJjZS5lcnJvclN0YXR1cygpLnZhbHVlKCk7cmV0dXJuIG51bGw9PT1hP251bGw6YS5zdGFja1RyYWNlPygwLEkuY3JlYXRlRWxlbWVudCkoWGUse2tleTplLHBpbmVTb3VyY2VDb2RlTW9kZWw6dGhpcy5fc291cmNlLnBpbmVTb3VyY2VDb2RlTW9kZWwoKSxlcnJvck1lc3NhZ2U6YS5lcnJvcj8/IiIsc3RhY2tUcmFjZTphLnN0YWNrVHJhY2UsY2xpY2tPbkxpbmVDYWxsYmFjazp0aGlzLl9jbGlja09uTGluZUNhbGxiYWNrLGNvZGU6YS5jb2RlLGJhckluZGV4OmEuYmFySW5kZXh9KTphLmVkaXRvckVycm9yfHxhLnNob3dSZXBvcnRJdEJ1dHRvbnx8YS5jb2RlPygwLEkuY3JlYXRlRWxlbWVudCkoJGUse2tleTplLGNsYXNzTmFtZTp0LGVkaXRvckVycm9yOmEuZWRpdG9yRXJyb3ImJigwLEkuY3JlYXRlRWxlbWVudCkoWmUse2VkaXRvckVycm9yOmEuZWRpdG9yRXJyb3IscGluZVNvdXJjZUNvZGVNb2RlbDp0aGlzLl9zb3VyY2UucGluZVNvdXJjZUNvZGVNb2RlbCgpfSksc2hvd1JlcG9ydEl0QnV0dG9uOmEuc2hvd1JlcG9ydEl0QnV0dG9uJiYoMCxJLmNyZWF0ZUVsZW1lbnQpKEplKSxjb2RlOmEuY29kZSYmKDAsSS5jcmVhdGVFbGVtZW50KSh6ZSx7Y29kZTphLmNvZGV9KX0pOm51bGx9dXBkYXRlU291cmNlKGUpe3RoaXMuX3NvdXJjZT1lfX12YXIgZXQ9YSg5MDExMDgpLHR0PWEoOTg5ODcyKSxhdD1hKDkxMzg0Myk7Y29uc3Qgc3Q9bi50KG51bGwsdm9pZCAwLGEoMTA3ODcwKSksb3Q9bmV3IE1hcChbWyEwLG5ldyBNYXAoW1sic21hbGwiLHR0XSxbIm1lZGl1bSIsYXRdLFsibGFyZ2UiLGF0XV0pXSxbITEsbmV3IE1hcChbWyJzbWFsbCIsIiJdLFsibWVkaXVtIiwiIl0sWyJsYXJnZSIsIiJdXSldXSksaXQ9bmV3IE1hcChbWyEwLF8udXBkYXRlQXZhaWxhYmxlXSxbITEsbnVsbF1dKSxydD1uZXcgTWFwKFtbITAsc3RdLFshMSxudWxsXV0pLG50PW5ldyBNYXAoW1shMCxzdF0sWyExLG51bGxdXSksbHQ9bmV3IE1hcChbWyEwLCJ2YXIoLS1jb2xvci1jb250ZW50LXByaW1hcnktYWNjZW50LW90aGVyLW5vcm1hbCkiXSxbITEsbnVsbF1dKTtjbGFzcyB1dCBleHRlbmRzIGguU3RhdHVzVmlld01vZGVse2NvbnN0cnVjdG9yKGUsdCl7c3VwZXIoe2ljb25NYXA6b3QsY2xhc3NOYW1lTWFwOml0LHRvb2x0aXBNYXA6cnQsdGl0bGVNYXA6bnQsdGl0bGVDb2xvck1hcDpsdCxzaXplOnR9KSx0aGlzLl9waW5lU291cmNlQ29kZU1vZGVsPW5ldyBzLldhdGNoZWRWYWx1ZShudWxsKSx0aGlzLl9wb3NzaWJsZVVwZGF0ZUluZm9ybWF0aW9uPW5ldyBzLldhdGNoZWRWYWx1ZShudWxsKSwKdGhpcy5fbGFzdFVwZGF0ZUFib3J0Q29udHJvbGxlcj1udWxsLHRoaXMuX2VudGl0eUlkPW5ldyBzLldhdGNoZWRWYWx1ZShlLmVudGl0eUlkPy4oKSksdGhpcy51cGRhdGVTb3VyY2UoZSksdGhpcy5fYXZhaWxhYmxlRm9yVXBkYXRlPSgwLG8uY29tYmluZSkoKChlLHQsYSk9PndpbmRvdy5pc19hdXRoZW50aWNhdGVkJiZ0JiYhIWEmJiEhZSYmKDAsZXQudXBkYXRlc0luZm9TdXBwb3J0ZWQpKGUuc2NyaXB0SWRQYXJ0KCk/PyIiKSksdGhpcy5fcGluZVNvdXJjZUNvZGVNb2RlbC53ZWFrUmVmZXJlbmNlKCksdGhpcy5fdmlzaWJsZS53ZWFrUmVmZXJlbmNlKCksdGhpcy5fcG9zc2libGVVcGRhdGVJbmZvcm1hdGlvbi53ZWFrUmVmZXJlbmNlKCkpfWRlc3Ryb3koKXt0aGlzLl9hdmFpbGFibGVGb3JVcGRhdGUuZGVzdHJveSgpLHRoaXMuX2xhc3RVcGRhdGVBYm9ydENvbnRyb2xsZXI/LmFib3J0KCksc3VwZXIuZGVzdHJveSgpfWVudGl0eUlkKCl7cmV0dXJuIHRoaXMuX2VudGl0eUlkLnJlYWRvbmx5KCl9dmlzaWJsZSgpe3JldHVybiB0aGlzLl9hdmFpbGFibGVGb3JVcGRhdGV9dXBkYXRlU291cmNlKGUpe3RoaXMuX2VudGl0eUlkLnNldFZhbHVlKGUuZW50aXR5SWQ/LigpKTtjb25zdCB0PWUucGluZVNvdXJjZUNvZGVNb2RlbCgpO3RoaXMuX2xhc3RVcGRhdGVBYm9ydENvbnRyb2xsZXI/LmFib3J0KCk7Y29uc3QgYT1uZXcgQWJvcnRDb250cm9sbGVyO3RoaXMuX2xhc3RVcGRhdGVBYm9ydENvbnRyb2xsZXI9YSx0LnRoZW4oKGU9PnthLnNpZ25hbC5hYm9ydGVkfHwodGhpcy5fcGluZVNvdXJjZUNvZGVNb2RlbC5zZXRWYWx1ZShlKSxlJiZlLnJlcXVlc3RVcGRhdGVJbmZvcm1hdGlvbigpLnRoZW4oKGU9PnthLnNpZ25hbC5hYm9ydGVkfHwodGhpcy5fcG9zc2libGVVcGRhdGVJbmZvcm1hdGlvbi5zZXRWYWx1ZShlKSx0aGlzLl9zdGF0dXMuc2V0VmFsdWUoZSYmZS5jdXJyZW50VmVyc2lvbi5pc0xlc3MoZS5sYXN0VmVyc2lvbikpKX0pKSl9KSl9X3Nob3VsZEJlSGlkZGVuQnlTdGF0dXMoZSl7cmV0dXJuIWV9X2RhdGFRYUlkKCl7cmV0dXJuInNjcmlwdC11cGRhdGUtc3RhdHVzIn19dmFyIGN0PWEoOTc1MTk4KSxkdD1hKDEzODk5NCksaHQ9YSg3OTE0MjcpLHB0PWEoNjMzNjQ0KSxtdD1hKDc1NzkyMyk7ZnVuY3Rpb24gX3QoZSl7Y29uc3R7Y2xhc3NOYW1lOnQscGluZVNvdXJjZUNvZGVNb2RlbDpzLG1vZGVsOm8sb25DbG9zZTppfT1lLHI9KDAsRmUudXNlUHJvbWlzZSkoKCgpPT5zKSksbD0oMCxGZS51c2VQcm9taXNlKSgoKCk9PnI/ci5yZXF1ZXN0VXBkYXRlSW5mb3JtYXRpb24oKTpQcm9taXNlLnJlc29sdmUobnVsbCkpLCgoKT0+e30pLFtyXSksdT1yPy5zY3JpcHRJZFBhcnQoKSxjPXUmJmh0LlN0dWR5TWV0YUluZm8uaGFzUHViU3VmZml4KHUpLGQ9KDAsRmUudXNlUHJvbWlzZSkoKCgpPT5jJiZyPygwLHB0LnNob3dBYm91dFRoZVN0dWR5SGFuZGxlcikocikudGhlbigoZT0+KHtoYW5kbGVyOmV9KSkpOlByb21pc2UucmVzb2x2ZShudWxsKSksKCgpPT57fSksW3IsY10pLFtoLHBdPSgwLEkudXNlU3RhdGUpKCgoKT0+Ri5nZXRCb29sKCJjaGFydC51cGRhdGVJbmRpY2F0b3JzT25BbGxDaGFydHMiLCEwKSkpO3JldHVybigwLEkudXNlRWZmZWN0KSgoKCk9PntGLnNldFZhbHVlKCJjaGFydC51cGRhdGVJbmRpY2F0b3JzT25BbGxDaGFydHMiLGgpfSksW2hdKSxJLmNyZWF0ZUVsZW1lbnQoImRpdiIsbnVsbCxJLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTptdC5kZXNjcmlwdGlvbn0sbi50KG51bGwsdm9pZCAwLGEoNTMzNzk5KSksZCYmSS5jcmVhdGVFbGVtZW50KCJhIix7Y2xhc3NOYW1lOm10Lmxpbmssb25DbGljazpmdW5jdGlvbihlKXtlLnByZXZlbnREZWZhdWx0KCksZD8uaGFuZGxlcj8uKCl9fSwiICIsbi50KG51bGwsdm9pZCAwLGEoMTgzMTMyKSkpKSxJLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTptdC5tb2RlfSxJLmNyZWF0ZUVsZW1lbnQoY3QuQ2hlY2tib3gse2NoZWNrZWQ6aCxvbkNoYW5nZTooKT0+cCgoZT0+IWUpKSxsYWJlbDpuLnQobnVsbCx2b2lkIDAsYSgzNDYzKSl9KSxJLmNyZWF0ZUVsZW1lbnQoZHQuSWNvblF1ZXN0aW9uSW5mb3JtYXRpb24se2ljb246ImluZm8iLGFyaWFMYWJlbDpuLnQobnVsbCx2b2lkIDAsYSgxOTQzMDQpKSx0b29sdGlwOm4udChudWxsLHZvaWQgMCxhKDE5NDMwNCkpfSkpLEkuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOm10LmFjdGlvbnN9LEkuY3JlYXRlRWxlbWVudChOZS5MaWdodEJ1dHRvbix7Y2xhc3NOYW1lOnQsc2l6ZToieHNtYWxsIixvbkNsaWNrOmZ1bmN0aW9uKCl7bCYmKHI/LnVwZGF0ZVRvVmVyc2lvbihvLGwubGFzdFZlcnNpb24saCksaSgpKX0sZGF0YVFhSWQ6InVwZGF0ZS10by1sYXRlc3QtdmVyc2lvbi1idXR0b24ifSxuLnQobnVsbCx2b2lkIDAsYSg1ODEzODgpKSkpKX1jbGFzcyBTdHtjb25zdHJ1Y3RvcihlLHQpe3RoaXMuX3NvdXJjZT1lLHRoaXMuX21vZGVsPXR9ZGVzdHJveSgpe31yZW5kZXJlcihlLHQsYSl7cmV0dXJuKDAsSS5jcmVhdGVFbGVtZW50KShfdCx7a2V5OmUscGluZVNvdXJjZUNvZGVNb2RlbDp0aGlzLl9zb3VyY2UucGluZVNvdXJjZUNvZGVNb2RlbCgpLG1vZGVsOnRoaXMuX21vZGVsLGNsYXNzTmFtZTp0LG9uQ2xvc2U6YX0pfXVwZGF0ZVNvdXJjZShlKXt0aGlzLl9zb3VyY2U9ZX19dmFyIGZ0PWEoNTA1NTYpLHd0PWEoMjI2OTM3KSxidD1hKDk5OTMwMikKO2NvbnN0IGd0PW5ldyBNYXAoW1syLG5ldyBNYXAoW1sic21hbGwiLGJ0XSxbIm1lZGl1bSIsYnRdLFsibGFyZ2UiLGJ0XV0pXSxbMSxuZXcgTWFwKFtbInNtYWxsIixidF0sWyJtZWRpdW0iLGJ0XSxbImxhcmdlIixidF1dKV0sWzMsbmV3IE1hcChbWyJzbWFsbCIsYnRdLFsibWVkaXVtIixidF0sWyJsYXJnZSIsYnRdXSldXSksdnQ9bmV3IE1hcChbWzIsXy5vcGVuZWRJbkRldGFjaGVkUGluZUVkaXRvcl0sWzEsXy5vcGVuZWRJblBpbmVFZGl0b3JdLFszLF8ub3BlbmVkSW5QaW5lRWRpdG9yXV0pLHl0PW5ldyBNYXAoW1syLFIub3BlbmVkSW5EZXRhY2hlZEVkaXRvclRpdGxlXSxbMSxSLm9wZW5lZEluRWRpdG9yVGl0bGVdLFszLFIub3BlbmVkSW5Cb3R0b21QYW5lbFRpdGxlXV0pLE10PW5ldyBNYXAoW1syLCgwLGZ0LmdldEhleENvbG9yQnlOYW1lKSgiY29sb3ItY29sZC1ncmF5LTU1MCIpXSxbMSwoMCxmdC5nZXRIZXhDb2xvckJ5TmFtZSkoImNvbG9yLWZvcmVzdC1ncmVlbi01MDAiKV0sWzMsKDAsZnQuZ2V0SGV4Q29sb3JCeU5hbWUpKCJjb2xvci1mb3Jlc3QtZ3JlZW4tNTAwIildXSksSXQ9bmV3IE1hcChbWzIsW1Iub3BlbmVkSW5EZXRhY2hlZEVkaXRvclRleHRdXSxbMSxbUi5vcGVuZWRJbkVkaXRvclRleHRdXSxbMyxbUi5vcGVuZWRJbkJvdHRvbVBhbmVsVGV4dF1dXSk7Y2xhc3MgRXQgZXh0ZW5kcyBoLlN0YXR1c1ZpZXdNb2RlbHtjb25zdHJ1Y3RvcihlLHQpe2NvbnN0IGE9KCk9PnRoaXMuX3Nob3dTb3VyY2VDb2RlKCkscz1uZXcgTWFwKFtbMix7dGV4dDpSLm9wZW5JbkVkaXRvckFjdGlvblRleHQsb25DbGljazphfV0sWzEse3RleHQ6Ui5vcGVuSW5FZGl0b3JBY3Rpb25UZXh0LG9uQ2xpY2s6YX1dLFszLHt0ZXh0OlIub3BlbkluRWRpdG9yQWN0aW9uVGV4dCxvbkNsaWNrOmF9XV0pO3N1cGVyKHtpY29uTWFwOmd0LGNsYXNzTmFtZU1hcDp2dCx0aXRsZU1hcDp5dCx0b29sdGlwTWFwOnl0LHRpdGxlQ29sb3JNYXA6TXQsaHRtbE1hcDpJdCxhY3Rpb25NYXA6cyxzaXplOnR9KSx0aGlzLl9waW5lTW9kZWxSZXNvdXJjZT1udWxsLHRoaXMuc2V0TW9kZWwoZSl9ZGVzdHJveSgpe3RoaXMuX3BpbmVTb3VyY2VFZGl0b3JTdGF0dXM/LmRlc3Ryb3koKSx0aGlzLl9waW5lTW9kZWxSZXNvdXJjZT8uZGVzdHJveSgpLHN1cGVyLmRlc3Ryb3koKX1zZXRNb2RlbChlKXt0aGlzLl9waW5lTW9kZWxSZXNvdXJjZT8uZGVzdHJveSgpLHRoaXMuX3BpbmVTb3VyY2VFZGl0b3JTdGF0dXM/LmRlc3Ryb3koKSx0aGlzLl91cGRhdGVTdGF0dXMoMCksdGhpcy5fcGluZU1vZGVsUmVzb3VyY2U9bmV3IHd0LkFzeW5jUmVzb3VyY2VXcmFwcGVyKGUpLHRoaXMuX3BpbmVNb2RlbFJlc291cmNlLmNhbGxGdW5jdGlvbigoZT0+e2UmJih0aGlzLl9waW5lU291cmNlRWRpdG9yU3RhdHVzPWUucGluZVNvdXJjZUVkaXRvclN0YXR1cygpLnNwYXduKCksdGhpcy5fcGluZVNvdXJjZUVkaXRvclN0YXR1cy5zdWJzY3JpYmUodGhpcy5fdXBkYXRlU3RhdHVzLmJpbmQodGhpcykse2NhbGxXaXRoTGFzdDohMH0pKX0pKX1fc2hvdWxkQmVIaWRkZW5CeVN0YXR1cyhlKXtyZXR1cm4gMD09PWV9X3VwZGF0ZVN0YXR1cyhlKXt0aGlzLl92aXNpYmxlLnNldFZhbHVlKDAhPT1lKSx0aGlzLl9zdGF0dXMuc2V0VmFsdWUoZSl9X3Nob3dTb3VyY2VDb2RlKCl7dGhpcy5fcGluZU1vZGVsUmVzb3VyY2U/LmNhbGxGdW5jdGlvbigoZT0+e2U/LnNob3dQaW5lU291cmNlQ29kZSgpfSkpfX12YXIgQ3Q9YSgzMTg5NzQpLFR0PWEoNDY1MTM0KSxrdD1hKDEwOTMyNSk7Y29uc3QgeHQ9TGUudChudWxsLHZvaWQgMCxhKDc1ODU0OSkpLER0PUxlLnQobnVsbCx2b2lkIDAsYSgzNDkzMzApKSxWdD1MZS50KG51bGwse2NvbnRleHQ6ImJ1dHRvbiB0aXRsZSJ9LGEoMzcxODE1KSksUHQ9bmV3IE1hcChbWyEwLG5ldyBNYXAoW1sic21hbGwiLFR0XSxbIm1lZGl1bSIsa3RdLFsibGFyZ2UiLGt0XV0pXSxbITEsbmV3IE1hcChbWyJzbWFsbCIsIiJdLFsibWVkaXVtIiwiIl0sWyJsYXJnZSIsIiJdXSldXSksQXQ9bmV3IE1hcChbWyEwLF8uYWN0aXZlU3RyYXRlZ3ldLFshMSxudWxsXV0pLFJ0PW5ldyBNYXAoW1shMCx4dF0sWyExLG51bGxdXSksQnQ9bmV3IE1hcChbWyEwLCJ2YXIoLS1jb2xvci1jb250YWluZXItZmlsbC10ZXJ0aWFyeS1hY2NlbnQpIl0sWyExLG51bGxdXSksTnQ9bmV3IE1hcChbWyEwLFtEdF1dLFshMSxudWxsXV0pO2NsYXNzIEZ0IGV4dGVuZHMgaGUuQm9vbGVhblN0YXR1c1ZpZXdNb2RlbHtjb25zdHJ1Y3RvcihlLHQsYSl7c3VwZXIodCx7aWNvbk1hcDpQdCxjbGFzc05hbWVNYXA6QXQsdGl0bGVNYXA6UnQsdG9vbHRpcE1hcDpSdCx0aXRsZUNvbG9yTWFwOkJ0LGh0bWxNYXA6TnQsc2l6ZTphfSksdGhpcy5fcGluZU1vZGVsUmVzb3VyY2U9bnVsbCx0aGlzLl9yZXNldFN0YXR1c0ZvcmNlPSgpPT57Y29uc3QgZT10aGlzLl9zdGF0dXMudmFsdWUoKT8/ITE7dGhpcy5fdmlzaWJsZS5zZXRWYWx1ZShlLCEwKSx0aGlzLl9zdGF0dXMuc2V0VmFsdWUoZSwhMCl9LHRoaXMudXBkYXRlU291cmNlKGUpfWRlc3Ryb3koKXt0aGlzLl9pc0FibGVTaG93QmFja3Rlc3Rpbmc/LmRlc3Ryb3koKSx0aGlzLl9waW5lTW9kZWxSZXNvdXJjZT8uZGVzdHJveSgpLHN1cGVyLmRlc3Ryb3koKX11cGRhdGVTb3VyY2UoZSl7dGhpcy5faXNBYmxlU2hvd0JhY2t0ZXN0aW5nPy5kZXN0cm95KCksdGhpcy5fcGluZU1vZGVsUmVzb3VyY2U/LmRlc3Ryb3koKSx0aGlzLl9waW5lTW9kZWxSZXNvdXJjZT1uZXcgd3QuQXN5bmNSZXNvdXJjZVdyYXBwZXIoZS5waW5lU291cmNlQ29kZU1vZGVsKCkpLHRoaXMuX3BpbmVNb2RlbFJlc291cmNlLmNhbGxGdW5jdGlvbigoZT0+e2UmJih0aGlzLl9pc0FibGVTaG93QmFja3Rlc3Rpbmc9ZS5pc0FibGVTaG93U291cmNlQ29kZSgpLnNwYXduKCksdGhpcy5faXNBYmxlU2hvd0JhY2t0ZXN0aW5nLnN1YnNjcmliZSh0aGlzLl9yZXNldFN0YXR1c0ZvcmNlLHtjYWxsV2l0aExhc3Q6ITB9KSl9KSl9X3Nob3VsZEJlSGlkZGVuQnlTdGF0dXMoZSl7cmV0dXJuIWV9X2dldEFjdGlvbihlKXsKcmV0dXJuIGUmJnRoaXMuX2lzQWJsZVNob3dCYWNrdGVzdGluZz8udmFsdWUoKT97dGV4dDpWdCxvbkNsaWNrOigpPT50aGlzLl9waW5lTW9kZWxSZXNvdXJjZT8uY2FsbEZ1bmN0aW9uKChlPT57ZT8uc2hvd0JhY2t0ZXN0aW5nPy4oKX0pKX06bnVsbH19dmFyIFd0PWEoOTEyODE1KSxPdD1hKDczMDExMCk7Y29uc3QgSHQ9bi50KG51bGwsdm9pZCAwLGEoMjQ1ODcwKSksTHQ9bi50KG51bGwsdm9pZCAwLGEoOTMzMTg0KSksVXQ9bmV3IE1hcChbWyEwLG5ldyBNYXAoW1sic21hbGwiLFd0XSxbIm1lZGl1bSIsT3RdLFsibGFyZ2UiLE90XV0pXV0pLEd0PW5ldyBNYXAoW1shMCxfLmFsZXJ0XV0pLHp0PW5ldyBNYXAoW1shMCxIdF1dKSxxdD1uZXcgTWFwKFtbITAsSHRdXSksJHQ9bmV3IE1hcChbWyEwLCgwLGZ0LmdldEhleENvbG9yQnlOYW1lKSgiY29sb3ItbWludHktZ3JlZW4tNTAwIildXSksanQ9bmV3IE1hcChbWyEwLFtdXV0pO2NsYXNzIFF0IGV4dGVuZHMgaC5TdGF0dXNWaWV3TW9kZWx7Y29uc3RydWN0b3IoZSx0KXtzdXBlcih7aWNvbk1hcDpVdCxjbGFzc05hbWVNYXA6R3QsdG9vbHRpcE1hcDpxdCx0aXRsZU1hcDp6dCx0aXRsZUNvbG9yTWFwOiR0LGh0bWxNYXA6anQsc2l6ZTp0fSksdGhpcy5fYWxlcnRzPW51bGwsdGhpcy5zZXRTb3VyY2UoZSl9ZGVzdHJveSgpe3RoaXMuX2FsZXJ0cz8uZGVzdHJveSgpLHN1cGVyLmRlc3Ryb3koKX1zZXRTb3VyY2UoZSl7dGhpcy5fYWxlcnRzPy5kZXN0cm95KCksdGhpcy5fYWxlcnRzPW51bGw7Y29uc3QgdD1lLmFsZXJ0U291cmNlTW9kZWwoKTt0aGlzLl9hbGVydHM9dD8uYWxlcnRzKCkuc3Bhd24oKT8/bnVsbCx0aGlzLl9hbGVydHM/LnN1YnNjcmliZSh0aGlzLl91cGRhdGVTdGF0dXMuYmluZCh0aGlzKSx7Y2FsbFdpdGhMYXN0OiEwfSl9X3Nob3VsZEJlSGlkZGVuQnlTdGF0dXMoZSl7cmV0dXJuIWV9X2dldFRpdGxlKGUpe3JldHVybmAke0h0fSDCtyAke3RoaXMuX2FsZXJ0cz8udmFsdWUoKS5sZW5ndGh9YH1fZ2V0VG9vbHRpcChlKXtyZXR1cm4gdGhpcy5fZ2V0VGl0bGUoZSl9X2dldEhUTUwoZSl7Y29uc3QgdD10aGlzLl9hbGVydHM/LnZhbHVlKCk7aWYodm9pZCAwPT09dHx8MD09PXQubGVuZ3RoKXJldHVybltdO2NvbnN0IGE9dC5zbGljZSgwLDUpLm1hcCgoZT0+YDxkaXYgY2xhc3M9IiR7Xy5hbGVydEl0ZW19Ij4ke2UudGl0bGV9PC9kaXY+YCkpO3JldHVybltgPGRpdiBjbGFzcz0iJHtfLmFsZXJ0SXRlbXNDb250YWluZXJ9Ij4ke2Euam9pbigiIil9PC9kaXY+YF19X2dldEFjdGlvbihlKXtjb25zdCB0PXRoaXMuX2FsZXJ0cz8udmFsdWUoKTtpZih2b2lkIDA9PT10fHx0Lmxlbmd0aDw9NSlyZXR1cm4gbnVsbDtjb25zdCBhPXdpbmRvdy53aWRnZXRiYXI7cmV0dXJuIGEmJmEuaXNWaXNpYmxlKCk/e3RleHQ6THQsY2xhc3NOYW1lOl8uYWxlcnRBY3Rpb24sdG9vbHRpcDpMdCxvbkNsaWNrOigpPT5hLnNldFBhZ2UoImFsZXJ0cyIpfTpudWxsfV91cGRhdGVTdGF0dXMoKXtjb25zdCBlPXRoaXMuX2FsZXJ0cz8udmFsdWUoKSx0PWU/LmZpbHRlcigoZT0+ZS5jYW5EaXNwbGF5T25TdGF0dXNWaWV3KCkpKSxhPXZvaWQgMCE9PXQmJnQubGVuZ3RoPjA7dGhpcy5fc3RhdHVzLnNldFZhbHVlKGEsITApfX12YXIgWHQ9YSgyMzIzNjEpLEt0PWEoNzgzOTc4KTtjbGFzcyBadCBleHRlbmRzIEt0LlN0YXR1c2VzV2lkZ2V0U3RhdGVCYXNle2NvbnN0cnVjdG9yKGUsdCxhKXtzdXBlcihhKSx0aGlzLmRhdGFTb3VyY2VFcnJvclN0YXR1c1Nob3duPW5ldyBzLldhdGNoZWRWYWx1ZSghMSksdGhpcy5kYXRhVXBkYXRlZE1vZGVTaG93bj1uZXcgcy5XYXRjaGVkVmFsdWUoITEpLHRoaXMuaXNTeW1ib2xJbnZhbGlkU3RhdHVzU2hvd249bmV3IHMuV2F0Y2hlZFZhbHVlKCExKSx0aGlzLl9tYXJrZXRTdGF0dXNDYW5CZVNob3duPW5ldyBzLldhdGNoZWRWYWx1ZSghMSksdGhpcy5fZGF0YVVwZGF0ZWRNb2RlQ2FuQmVTaG93bj1uZXcgcy5XYXRjaGVkVmFsdWUoITEpLHRoaXMuX3N5bWJvbEludmFsaWRWaWV3TW9kZWw9bnVsbCx0aGlzLl9kYXRhU291cmNlRXJyb3JTdGF0dXNWaWV3TW9kZWw9bnVsbCx0aGlzLl9tYXJrZXRTdGF0dXNWaWV3TW9kZWw9bnVsbCx0aGlzLl9kYXRhVXBkYXRlZE1vZGVWaWV3TW9kZWw9bnVsbCx0aGlzLl9kYXRhUHJvYmxlbVZpZXdNb2RlbD1udWxsLHRoaXMuX3VwZGF0ZUF2YWlsYWJsZVZpZXdNb2RlbD1udWxsLHRoaXMuX2FsZXJ0U3RhdHVzVmlld01vZGVsPW51bGwsdGhpcy5fcGluZUVkaXRvclN0YXRlVmlld01vZGVsPW51bGwsdGhpcy5fYWN0aXZlU3RyYXRlZ3lTb3VyY2VWaWV3TW9kZWw9bnVsbCx0aGlzLl9jdXN0b21TdGF0dXNWaWV3TW9kZWw9bnVsbCx0aGlzLl9zZXNzaW9uV2lkZ2V0PW51bGwsdGhpcy5fZXJyb3JXaWRnZXQ9bnVsbCx0aGlzLl91cGRhdGVBdmFpbGFibGVXaWRnZXQ9bnVsbCx0aGlzLl9kYXRhU291cmNlSGFzRXJyb3JWaXNpYmxlPW51bGwsdGhpcy5fZGF0YVNvdXJjZUVycm9yQ2FuQmVTaG93bj1uZXcgcy5XYXRjaGVkVmFsdWUoITEpLHRoaXMuX2RhdGFVcGRhdGVkQXZhaWxhYmxlVmlzaWJsZT1udWxsLHRoaXMuX2RhdGFQcm9ibGVtQ2FuQmVTaG93bj1uZXcgcy5XYXRjaGVkVmFsdWUoITEpLHRoaXMuX3VwZGF0ZUF2YWlsYWJsZUNhbkJlU2hvd249bmV3IHMuV2F0Y2hlZFZhbHVlKCExKSx0aGlzLl9pc0RhdGFQcm9ibGVtQ3JpdGljYWw9bnVsbCx0aGlzLl91cGRhdGVWaXNpYmlsaXR5PSgpPT57Y29uc3QgZT10aGlzLnZpc2libGVNb2RlbHMoKS52YWx1ZSgpLmxlbmd0aD4wO3RoaXMuX3Zpc2liaWxpdHkuc2V0VmFsdWUoZSl9LHRoaXMuX3NvdXJjZT1lLHRoaXMuX3N5bWJvbD1lLnN5bWJvbCgpPy5zcGF3bigpPz9udWxsLHRoaXMuX29wdGlvbnM9YSx0aGlzLl91bmRvTW9kZWw9dCx0aGlzLl9zdGF0dXNQcm92aWRlckhpZGRlbj0oMCxvLmNvbWJpbmUpKChlPT4odGhpcy5fZm9yY2VIaWRlVmlzaWJpbGl0eU1vZGVscy5zZXRWYWx1ZShlKSxlKSksZS5oaWRkZW4oKS53ZWFrUmVmZXJlbmNlKCkpLHRoaXMuX2NyZWF0ZVN0YXR1c2VzV2lkZ2V0U3RhdGVzKCksCnRoaXMuX2FkZFN1YnNjcmlwdGlvbkZvclN5bWJvbEludmFsaWQoKSxudWxsIT09dGhpcy5fZGF0YVNvdXJjZUhhc0Vycm9yVmlzaWJsZSYmKHRoaXMuX2RhdGFTb3VyY2VIYXNFcnJvclZpc2libGUuc3Vic2NyaWJlKHRoaXMuX3VwZGF0ZVN0YXR1c1dpZGdldHNWaXNpYmlsaXRpZXMuYmluZCh0aGlzKSksdGhpcy5fZGF0YVNvdXJjZUhhc0Vycm9yVmlzaWJsZS5zdWJzY3JpYmUodGhpcy5fdXBkYXRlRXJyb3JXaWRnZXRJc1Nob3duLmJpbmQodGhpcykpKSxudWxsIT09dGhpcy5fZGF0YVVwZGF0ZWRBdmFpbGFibGVWaXNpYmxlJiZ0aGlzLl9kYXRhVXBkYXRlZEF2YWlsYWJsZVZpc2libGUuc3Vic2NyaWJlKHRoaXMuX3VwZGF0ZURhdGFVcGRhdGVkV2lkZ2V0SXNTaG93bi5iaW5kKHRoaXMpKSx0aGlzLl9vcHRpb25zLmRhdGFQcm9ibGVtRW5hYmxlZCYmbnVsbCE9PXRoaXMuX2lzRGF0YVByb2JsZW1Dcml0aWNhbCYmdGhpcy5faXNEYXRhUHJvYmxlbUNyaXRpY2FsLnN1YnNjcmliZSh0aGlzLl91cGRhdGVTdGF0dXNXaWRnZXRzVmlzaWJpbGl0aWVzLmJpbmQodGhpcykpLHRoaXMuX3VwZGF0ZUVycm9yV2lkZ2V0SXNTaG93bigpLHRoaXMuX3VwZGF0ZUlzU3ltYm9sSW52YWxpZFN0YXR1c1Nob3duKCksdGhpcy5fdXBkYXRlU3RhdHVzV2lkZ2V0c1Zpc2liaWxpdGllcygpfWRlc3Ryb3koKXt0aGlzLl92aXNpYmlsaXR5LnVuc3Vic2NyaWJlKCksdGhpcy5fc3ltYm9sPy5kZXN0cm95KCksdGhpcy5fc3RhdHVzUHJvdmlkZXJIaWRkZW4uZGVzdHJveSgpLHRoaXMuX2lzRGF0YVByb2JsZW1Dcml0aWNhbD8uZGVzdHJveSgpLHN1cGVyLmRlc3Ryb3koKX1fdXBkYXRlU3RhdHVzV2lkZ2V0c1Zpc2liaWxpdGllcygpe2NvbnN0IGU9dGhpcy5faXNGb3JjZVN0YXR1c0FjdGl2ZSgpO3RoaXMuX2RhdGFTb3VyY2VFcnJvckNhbkJlU2hvd24uc2V0VmFsdWUoIWUpLHRoaXMuX21hcmtldFN0YXR1c0NhbkJlU2hvd24uc2V0VmFsdWUoIWUpLHRoaXMuX2RhdGFVcGRhdGVkTW9kZUNhbkJlU2hvd24uc2V0VmFsdWUoIWUpLHRoaXMuX3VwZGF0ZUF2YWlsYWJsZUNhbkJlU2hvd24uc2V0VmFsdWUoIWUpLHRoaXMuX2RhdGFQcm9ibGVtQ2FuQmVTaG93bi5zZXRWYWx1ZSghdGhpcy5faXNQcmltYXJ5V2lkZ2V0U2hvd24oKSl9X2lzUHJpbWFyeVdpZGdldFNob3duKCl7cmV0dXJuIHRoaXMuX3NvdXJjZS5pc1N5bWJvbEludmFsaWQoKT8udmFsdWUoKT8/ITF9X2lzRm9yY2VTdGF0dXNBY3RpdmUoKXtyZXR1cm4gdGhpcy5faXNQcmltYXJ5V2lkZ2V0U2hvd24oKXx8KHRoaXMuX2lzRGF0YVByb2JsZW1Dcml0aWNhbD8udmFsdWUoKT8/ITEpfV9jcmVhdGVTdGF0dXNlc1dpZGdldFN0YXRlcygpe3RoaXMuX29wdGlvbnMuc291cmNlU3RhdHVzZXNFbmFibGVkJiZ0aGlzLl9jcmVhdGVTeW1ib2xJbnZhbGlkU3RhdHVzKCksdGhpcy5fb3B0aW9ucy5tYXJrZXRTdGF0dXNFbmFibGVkJiZ0aGlzLl9jcmVhdGVNYXJrZXRTdGF0dXMoKSx0aGlzLl9vcHRpb25zLmRhdGFVcGRhdGVNb2RlRW5hYmxlZCYmdGhpcy5fY3JlYXRlRGF0YVVwZGF0ZWRNb2RlU3RhdHVzKCksdGhpcy5fb3B0aW9ucy5kYXRhUHJvYmxlbUVuYWJsZWQmJnRoaXMuX2NyZWF0ZURhdGFQcm9ibGVtU3RhdHVzKCksdGhpcy5fb3B0aW9ucy5zb3VyY2VTdGF0dXNlc0VuYWJsZWQmJnRoaXMuX2NyZWF0ZUVycm9yU3RhdHVzKCksdGhpcy5fb3B0aW9ucy5waW5lU291cmNlU3RhdHVzRW5hYmxlZCYmdGhpcy5fY3JlYXRlU2NyaXB0VXBkYXRlKCksdGhpcy5fb3B0aW9ucy5hbGVydFN0YXR1c0VuYWJsZWQmJnRoaXMuX2NyZWF0ZUFsZXJ0QWxlcnRTdGF0dXMoKSx0aGlzLl9vcHRpb25zLnBpbmVTb3VyY2VTdGF0dXNFbmFibGVkJiZ0aGlzLl9jcmVhdGVBY3RpdmVTdHJhdGVneVN0YXR1cygpLHRoaXMuX29wdGlvbnMucGluZVNvdXJjZVN0YXR1c0VuYWJsZWQmJnRoaXMuX2NyZWF0ZVBpbmVFZGl0b3JTdGF0dXMoKSx0aGlzLl9jcmVhdGVDdXN0b21NYXJrZXRTdGF0dXMoKX1fY3JlYXRlU3ltYm9sSW52YWxpZFN0YXR1cygpe2NvbnN0IGU9dGhpcy5fc291cmNlLmlzU3ltYm9sSW52YWxpZCgpO251bGwhPT1lJiYodGhpcy5fc3ltYm9sSW52YWxpZFZpZXdNb2RlbD1uZXcgaGUuQm9vbGVhblN0YXR1c1ZpZXdNb2RlbChlLHt0b29sdGlwTWFwOmJlLGljb25NYXA6ZmUsY2xhc3NOYW1lTWFwOndlLHRpdGxlTWFwOmdlLHRpdGxlQ29sb3JNYXA6dmUsaHRtbE1hcDp5ZSxhY3Rpb25NYXA6TWUsc2l6ZTp0aGlzLl9zaXplfSksdGhpcy5fYWRkU3RhdHVzVmlld01vZGVsc0luZm9zKHt2aXNpYmxlOnRoaXMuX3N5bWJvbEludmFsaWRWaWV3TW9kZWwudmlzaWJsZSgpLnNwYXduKCksbW9kZWw6dGhpcy5fc3ltYm9sSW52YWxpZFZpZXdNb2RlbH0pKX1fY3JlYXRlTWFya2V0U3RhdHVzKCl7Y29uc3QgZT10aGlzLl9zb3VyY2UubWFya2V0U3RhdHVzTW9kZWwoKTt0aGlzLl9tYXJrZXRTdGF0dXNWaWV3TW9kZWw9bmV3IFh0Lk1hcmtldFN0YXR1c1ZpZXdNb2RlbChlLHRoaXMuX3NpemUpO2NvbnN0IHQ9e3Zpc2libGU6KDAsby5jb21iaW5lKSgoKGUsdCxhKT0+ZSYmdCYmISgwLGkuaXNFY29ub21pY1N5bWJvbCkoYSkmJiEoMCxpLmlzU3ByZWFkU3ltYm9sV2l0aE1hbnlMZWdzKShhKSksdGhpcy5fbWFya2V0U3RhdHVzQ2FuQmVTaG93bi53ZWFrUmVmZXJlbmNlKCksdGhpcy5fbWFya2V0U3RhdHVzVmlld01vZGVsLnZpc2libGUoKS53ZWFrUmVmZXJlbmNlKCksdGhpcy5fc291cmNlLnN5bWJvbEluZm8oKS53ZWFrUmVmZXJlbmNlKCkpLG1vZGVsOnRoaXMuX21hcmtldFN0YXR1c1ZpZXdNb2RlbH07bnVsbCE9PWUmJih0aGlzLl9zZXNzaW9uV2lkZ2V0PW5ldyByLkZ1bGxTZXNzaW9uU2NoZWR1bGVXaWRnZXQodGhpcy5fc291cmNlKSx0LmFkZGl0aW9uYWxXaWRnZXRzPVt0aGlzLl9zZXNzaW9uV2lkZ2V0XSksdGhpcy5fYWRkU3RhdHVzVmlld01vZGVsc0luZm9zKHQpfV9jcmVhdGVEYXRhVXBkYXRlZE1vZGVTdGF0dXMoKXtjb25zdCBlPXRoaXMuX3NvdXJjZS5kYXRhVXBkYXRlZE1vZGVNb2RlbCgpLHQ9ey4uLnRoaXMuX29wdGlvbnMuZGF0YVVwZGF0ZU1vZGUsCm1hcmtldFN0YXR1czp0aGlzLl9zb3VyY2UubWFya2V0U3RhdHVzTW9kZWwoKT8uc3RhdHVzKCkuc3Bhd25Pd25lcnNoaXAoKX07dGhpcy5fZGF0YVVwZGF0ZWRNb2RlVmlld01vZGVsPW5ldyBpZShlLHRoaXMuX3NpemUsdCk7Y29uc3QgYT0oMCxvLmNvbWJpbmUpKCgoZSx0LGEpPT5lJiZ0JiYhKDAsaS5pc0Vjb25vbWljU3ltYm9sKShhKSksdGhpcy5fZGF0YVVwZGF0ZWRNb2RlQ2FuQmVTaG93bi53ZWFrUmVmZXJlbmNlKCksdGhpcy5fZGF0YVVwZGF0ZWRNb2RlVmlld01vZGVsLnZpc2libGUoKS53ZWFrUmVmZXJlbmNlKCksdGhpcy5fc291cmNlLnN5bWJvbEluZm8oKS53ZWFrUmVmZXJlbmNlKCkpO3RoaXMuX2FkZFN0YXR1c1ZpZXdNb2RlbHNJbmZvcyh7dmlzaWJsZTphLG1vZGVsOnRoaXMuX2RhdGFVcGRhdGVkTW9kZVZpZXdNb2RlbH0pfV9jcmVhdGVEYXRhUHJvYmxlbVN0YXR1cygpe2NvbnN0IGU9dGhpcy5fc291cmNlLmRhdGFQcm9ibGVtTW9kZWwoKTt0aGlzLl9kYXRhUHJvYmxlbVZpZXdNb2RlbD1uZXcgZGUoZSx0aGlzLl9zaXplKSx0aGlzLl9pc0RhdGFQcm9ibGVtQ3JpdGljYWw9dGhpcy5fZGF0YVByb2JsZW1WaWV3TW9kZWwuaXNEYXRhUHJvYmxlbUNyaXRpY2FsKCkuc3Bhd24oKTtjb25zdCB0PSgwLG8uY29tYmluZSkoKChlLHQpPT5lJiZ0KSx0aGlzLl9kYXRhUHJvYmxlbUNhbkJlU2hvd24ud2Vha1JlZmVyZW5jZSgpLHRoaXMuX2RhdGFQcm9ibGVtVmlld01vZGVsLnZpc2libGUoKS53ZWFrUmVmZXJlbmNlKCkpO3RoaXMuX2FkZFN0YXR1c1ZpZXdNb2RlbHNJbmZvcyh7dmlzaWJsZTp0LG1vZGVsOnRoaXMuX2RhdGFQcm9ibGVtVmlld01vZGVsfSl9X2NyZWF0ZVNjcmlwdFVwZGF0ZSgpe3RoaXMuX3VuZG9Nb2RlbC5tb2RlbCgpLmlzU25hcHNob3QoKXx8dGhpcy5fdW5kb01vZGVsLm1vZGVsKCkucmVhZE9ubHkoKXx8KDAsQ3Qub25XaWRnZXQpKCl8fCgwLEVlLmlzRmVhdHVyZUVuYWJsZWQpKCJkaXNhYmxlX3VwZGF0ZV9hdmFpbGFiaWxpdHlfc3RhdHVzIil8fCh0aGlzLl91cGRhdGVBdmFpbGFibGVWaWV3TW9kZWw9bmV3IHV0KHRoaXMuX3NvdXJjZSx0aGlzLl9zaXplKSx0aGlzLl91cGRhdGVBdmFpbGFibGVXaWRnZXQ9bmV3IFN0KHRoaXMuX3NvdXJjZSx0aGlzLl91bmRvTW9kZWwpLHRoaXMuX2RhdGFVcGRhdGVkQXZhaWxhYmxlVmlzaWJsZT0oMCxvLmNvbWJpbmUpKCgoZSx0LGEpPT5lJiZ0JiYhYSksdGhpcy5fdXBkYXRlQXZhaWxhYmxlQ2FuQmVTaG93bi53ZWFrUmVmZXJlbmNlKCksdGhpcy5fdXBkYXRlQXZhaWxhYmxlVmlld01vZGVsLnZpc2libGUoKS53ZWFrUmVmZXJlbmNlKCksdGhpcy5fc291cmNlLmhpZGRlbigpLndlYWtSZWZlcmVuY2UoKSksdGhpcy5fYWRkU3RhdHVzVmlld01vZGVsc0luZm9zKHt2aXNpYmxlOnRoaXMuX2RhdGFVcGRhdGVkQXZhaWxhYmxlVmlzaWJsZSxtb2RlbDp0aGlzLl91cGRhdGVBdmFpbGFibGVWaWV3TW9kZWwsYWRkaXRpb25hbFdpZGdldHM6W3RoaXMuX3VwZGF0ZUF2YWlsYWJsZVdpZGdldF0scHJlbGltaW5hcnlKb2I6dGhpcy5fc291cmNlLnBpbmVTb3VyY2VDb2RlTW9kZWwoKS50aGVuKChlPT5lP1Byb21pc2UuYWxsKFtlLnJlcXVlc3RTY3JpcHRJbmZvKCksKDAscHQuc2hvd0Fib3V0VGhlU3R1ZHlIYW5kbGVyKShlKV0pOlByb21pc2UucmVzb2x2ZSgpKSksZGF0YVFhSWQ6ImxlZ2VuZC1zb3VyY2UtaXRlbS1zdGF0dXMtaWNvbi11cGRhdGUiLGljb25EYXRhc2V0RW50aXR5SWQ6dGhpcy5fdXBkYXRlQXZhaWxhYmxlVmlld01vZGVsLmVudGl0eUlkKCl9KSl9X2NyZWF0ZUFsZXJ0QWxlcnRTdGF0dXMoKXt0aGlzLl9hbGVydFN0YXR1c1ZpZXdNb2RlbD1uZXcgUXQodGhpcy5fc291cmNlLHRoaXMuX3NpemUpO2NvbnN0IGU9dGhpcy5fYWxlcnRTdGF0dXNWaWV3TW9kZWwudmlzaWJsZSgpLnNwYXduKCk7dGhpcy5fYWRkU3RhdHVzVmlld01vZGVsc0luZm9zKHt2aXNpYmxlOmUsbW9kZWw6dGhpcy5fYWxlcnRTdGF0dXNWaWV3TW9kZWx9KX1fY3JlYXRlRXJyb3JTdGF0dXMoKXt0aGlzLl9kYXRhU291cmNlRXJyb3JTdGF0dXNWaWV3TW9kZWw9bmV3IHkodGhpcy5fc291cmNlLHRoaXMuX3NpemUsdGhpcy5fb3B0aW9ucy5zb3VyY2VTdGF0dXNlcyksdGhpcy5fZGF0YVNvdXJjZUhhc0Vycm9yVmlzaWJsZT0oMCxvLmNvbWJpbmUpKCgoZSx0LGEpPT5lJiZ0JiYhYSksdGhpcy5fZGF0YVNvdXJjZUVycm9yQ2FuQmVTaG93bi53ZWFrUmVmZXJlbmNlKCksdGhpcy5fZGF0YVNvdXJjZUVycm9yU3RhdHVzVmlld01vZGVsLnZpc2libGUoKS53ZWFrUmVmZXJlbmNlKCksdGhpcy5fc291cmNlLmhpZGRlbigpLndlYWtSZWZlcmVuY2UoKSk7Y29uc3QgZT1bXTt0aGlzLl9lcnJvcldpZGdldD1uZXcgWWUodGhpcy5fc291cmNlKSxlLnB1c2godGhpcy5fZXJyb3JXaWRnZXQpLHRoaXMuX2FkZFN0YXR1c1ZpZXdNb2RlbHNJbmZvcyh7dmlzaWJsZTp0aGlzLl9kYXRhU291cmNlSGFzRXJyb3JWaXNpYmxlLG1vZGVsOnRoaXMuX2RhdGFTb3VyY2VFcnJvclN0YXR1c1ZpZXdNb2RlbCxhZGRpdGlvbmFsV2lkZ2V0czplfSl9X2NyZWF0ZUFjdGl2ZVN0cmF0ZWd5U3RhdHVzKCl7Y29uc3QgZT0oMCxvLmNvbWJpbmUpKChlPT5udWxsIT09ZSYmdGhpcy5fc291cmNlLmVudGl0eUlkPy4oKT09PWUuaWQoKSksdGhpcy5fdW5kb01vZGVsLm1vZGVsKCkuYWN0aXZlU3RyYXRlZ3lTb3VyY2UoKS53ZWFrUmVmZXJlbmNlKCkpO3RoaXMuX2FjdGl2ZVN0cmF0ZWd5U291cmNlVmlld01vZGVsPW5ldyBGdCh0aGlzLl9zb3VyY2UsZSx0aGlzLl9zaXplKTtjb25zdCB0PXRoaXMuX2FjdGl2ZVN0cmF0ZWd5U291cmNlVmlld01vZGVsLnZpc2libGUoKS5zcGF3bigpO3RoaXMuX2FkZFN0YXR1c1ZpZXdNb2RlbHNJbmZvcyh7dmlzaWJsZTp0LG1vZGVsOnRoaXMuX2FjdGl2ZVN0cmF0ZWd5U291cmNlVmlld01vZGVsfSl9X2NyZWF0ZVBpbmVFZGl0b3JTdGF0dXMoKXtjb25zdCBlPXRoaXMuX3NvdXJjZS5waW5lU291cmNlQ29kZU1vZGVsKCk7dGhpcy5fcGluZUVkaXRvclN0YXRlVmlld01vZGVsPW5ldyBFdChlLHRoaXMuX3NpemUpCjtjb25zdCB0PXRoaXMuX3BpbmVFZGl0b3JTdGF0ZVZpZXdNb2RlbC52aXNpYmxlKCkuc3Bhd24oKTt0aGlzLl9hZGRTdGF0dXNWaWV3TW9kZWxzSW5mb3Moe3Zpc2libGU6dCxtb2RlbDp0aGlzLl9waW5lRWRpdG9yU3RhdGVWaWV3TW9kZWx9KX1fY3JlYXRlQ3VzdG9tTWFya2V0U3RhdHVzKCl7fV9hZGRTdWJzY3JpcHRpb25Gb3JTeW1ib2xJbnZhbGlkKCl7Y29uc3QgZT10aGlzLl9zb3VyY2UuaXNTeW1ib2xJbnZhbGlkKCk7dGhpcy5fb3B0aW9ucy5zb3VyY2VTdGF0dXNlc0VuYWJsZWQmJm51bGwhPT1lJiYoZS5zdWJzY3JpYmUodGhpcy5fdXBkYXRlU3RhdHVzV2lkZ2V0c1Zpc2liaWxpdGllcy5iaW5kKHRoaXMpKSxlLnN1YnNjcmliZSh0aGlzLl91cGRhdGVJc1N5bWJvbEludmFsaWRTdGF0dXNTaG93bi5iaW5kKHRoaXMpLHtjYWxsV2l0aExhc3Q6ITB9KSl9X3VwZGF0ZUVycm9yV2lkZ2V0SXNTaG93bigpe2NvbnN0IGU9dGhpcy5fZGF0YVNvdXJjZUhhc0Vycm9yVmlzaWJsZT8udmFsdWUoKT8/ITE7dGhpcy5kYXRhU291cmNlRXJyb3JTdGF0dXNTaG93bi5zZXRWYWx1ZShlKX1fdXBkYXRlRGF0YVVwZGF0ZWRXaWRnZXRJc1Nob3duKCl7Y29uc3QgZT10aGlzLl9kYXRhVXBkYXRlZEF2YWlsYWJsZVZpc2libGU/LnZhbHVlKCk/PyExO3RoaXMuZGF0YVVwZGF0ZWRNb2RlU2hvd24uc2V0VmFsdWUoZSl9X3VwZGF0ZUlzU3ltYm9sSW52YWxpZFN0YXR1c1Nob3duKCl7Y29uc3QgZT10aGlzLl9zb3VyY2UuaXNTeW1ib2xJbnZhbGlkKCk/LnZhbHVlKCk/PyExO3RoaXMuaXNTeW1ib2xJbnZhbGlkU3RhdHVzU2hvd24uc2V0VmFsdWUoZSl9fX0sNzk0OTUoZSx0LGEpeyJ1c2Ugc3RyaWN0IjthLmQodCx7TWFpbkRhdGFTb3VyY2VTdGF0dXNlc1dpZGdldFN0YXRlOigpPT5IZX0pO3ZhciBzPWEoMTM4NjM4KSxvPWEoMjMyMzY0KSxpPWEoOTUyOTAwKSxyPWEoMTU2ODI5KSxuPWEoMTg1MjcxKSxsPWEoNTY1MjA2KSx1PWEoNzczNDY2KSxjPWEoODYwNTQ4KTtjb25zdCBkPW4udChudWxsLHZvaWQgMCxhKDQzNTApKSxoPW4udChudWxsLHZvaWQgMCxhKDI4MTQ1MykpLHA9bi50KG51bGwsdm9pZCAwLGEoODgyODM5KSksbT1uLnQobnVsbCx2b2lkIDAsYSg3NjM0NTEpKSxfPW5ldyBNYXAoW1szLG5ldyBNYXAoW1sic21hbGwiLHVdLFsibWVkaXVtIix1XSxbImxhcmdlIix1XV0pXSxbMSxuZXcgTWFwKFtbInNtYWxsIix1XSxbIm1lZGl1bSIsdV0sWyJsYXJnZSIsdV1dKV0sWzIsbmV3IE1hcChbWyJzbWFsbCIsdV0sWyJtZWRpdW0iLHVdLFsibGFyZ2UiLHVdXSldXSksUz1uZXcgTWFwKFtbMixjLnJlcGxheU1vZGVBdXRvUGxheV0sWzMsYy5yZXBsYXlNb2RlUGF1c2VdLFsxLGMucmVwbGF5TW9kZVBvaW50U2VsZWN0XV0pLGY9bmV3IE1hcChbWzIsaF0sWzMsaF0sWzEsaF1dKSx3PW5ldyBNYXAoW1syLGhdLFszLGhdLFsxLGRdXSksYj1uZXcgTWFwKFtbMiwidmFyKC0tY29sb3ItY29udGVudC1zZWNvbmRhcnktYWNjZW50KSJdLFszLCJ2YXIoLS1jb2xvci1jb250ZW50LXNlY29uZGFyeS1hY2NlbnQpIl0sWzEsInZhcigtLWNvbG9yLWNvbnRlbnQtcHJpbWFyeS1uZXV0cmFsLW5vcm1hbCkiXV0pLGc9bmV3IE1hcChbWzIsW21dXSxbMyxbbV1dLFsxLFtwXV1dKTtjbGFzcyB2IGV4dGVuZHMgbC5TdGF0dXNWaWV3TW9kZWx7Y29uc3RydWN0b3IoZSx0KXtzdXBlcih7aWNvbk1hcDpfLGNsYXNzTmFtZU1hcDpTLHRvb2x0aXBNYXA6dyx0aXRsZU1hcDpmLHRpdGxlQ29sb3JNYXA6YixodG1sTWFwOmcsc2l6ZTp0fSksdGhpcy5fcmVwbGF5U3RhdHVzPWUsdGhpcy5fcmVwbGF5U3RhdHVzLnN1YnNjcmliZSh0aGlzLl91cGRhdGVTdGF0dXMuYmluZCh0aGlzKSx7Y2FsbFdpdGhMYXN0OiEwfSl9ZGVzdHJveSgpe3RoaXMuX3JlcGxheVN0YXR1cy5yZWxlYXNlKCksc3VwZXIuZGVzdHJveSgpfV91cGRhdGVTdGF0dXMoZSl7dGhpcy5fc3RhdHVzLnNldFZhbHVlKDAhPT1lP2U6bnVsbCksdGhpcy5pc0JsaW5raW5nTW9kZS5zZXRWYWx1ZSgyPT09ZSl9fXZhciB5OyFmdW5jdGlvbihlKXtlLlN0b2NrPSJIYWxhbFN0b2NrIixlLkJvbmQ9IkhhbGFsQm9uZCJ9KHl8fCh5PXt9KSk7dmFyIE09YSg5MjY5OTUpLEk9YSg3NzY1NzYpLEU9YSgxOTM1MDgpLEM9YSgxMDgxODIpLFQ9YSgzNDAxNTgpO2NsYXNzIGsgZXh0ZW5kcyBsLlN0YXR1c1ZpZXdNb2RlbHtjb25zdHJ1Y3RvcihlLHQpe3N1cGVyKHQpLHRoaXMuX3NpbXBsZVN0YXR1cz1lLHRoaXMuX3NpbXBsZVN0YXR1cy5zdWJzY3JpYmUodGhpcy5fdXBkYXRlU3RhdHVzLmJpbmQodGhpcykse2NhbGxXaXRoTGFzdDohMH0pfWRlc3Ryb3koKXt0aGlzLl9zaW1wbGVTdGF0dXMucmVsZWFzZSgpLHN1cGVyLmRlc3Ryb3koKX1fdXBkYXRlU3RhdHVzKGUpe3RoaXMuX3N0YXR1cy5zZXRWYWx1ZShlKX19dmFyIHg9YSgxNTIwNjkpO2NvbnN0IEQ9bmV3IE1hcChbW3kuQm9uZCxFLmhhbGFsVGl0bGVdLFt5LlN0b2NrLEUuaGFsYWxUaXRsZV1dKSxWPW5ldyBNYXAoW1t5LkJvbmQsQy5jb2xvckhhbGFsTW9kZV0sW3kuU3RvY2ssQy5jb2xvckhhbGFsTW9kZV1dKSxQPW5ldyBNYXAoW1t5LkJvbmQsbmV3IE1hcChbWyJzbWFsbCIsVF0sWyJtZWRpdW0iLFRdXSldLFt5LlN0b2NrLG5ldyBNYXAoW1sic21hbGwiLFRdLFsibWVkaXVtIixUXV0pXV0pLEE9bmV3IE1hcChbW3kuQm9uZCx4LmhhbGFsU3RhdHVzXSxbeS5TdG9jayx4LmhhbGFsU3RhdHVzXV0pLFI9bmV3IE1hcChbW3kuQm9uZCxbRS5oYWxhbEJvbmRIdG1sXV0sW3kuU3RvY2ssW0UuaGFsYWxIdG1sXV1dKSxCPW5ldyBNYXAoW1t5LkJvbmQse3RleHQ6bi50KG51bGwsdm9pZCAwLGEoMzI1MTU1KSksb25DbGljazooKT0+KDAsTS5zaG93U3VwcG9ydERpYWxvZykoe3NvbHV0aW9uSWQ6SS5IQUxBTF9TT0xVVElPTl9JRH0pfV0sW3kuU3RvY2sse3RleHQ6bi50KG51bGwsdm9pZCAwLGEoMzI1MTU1KSksb25DbGljazooKT0+KDAsTS5zaG93U3VwcG9ydERpYWxvZykoe3NvbHV0aW9uSWQ6SS5IQUxBTF9TT0xVVElPTl9JRH0pfV1dKTtjbGFzcyBOIGV4dGVuZHMga3tjb25zdHJ1Y3RvcihlLHQpe3N1cGVyKGUse2ljb25NYXA6UCwKdG9vbHRpcE1hcDpELHRpdGxlTWFwOkQsdGl0bGVDb2xvck1hcDpWLHNpemU6dCxjbGFzc05hbWVNYXA6QSxodG1sTWFwOlIsYWN0aW9uTWFwOkJ9KX19dmFyIEY9YSgzMTExMTUpLFc9YSg3ODc2MjYpLE89YSg1NzE0NjQpO2NvbnN0IEg9bmV3IE1hcChbWyEwLEUudHZDYWxjdWxhdGVkUGFpclRvb2x0aXBdXSksTD1uZXcgTWFwKFtbITAsQy5jb2xvclRWQ2FsY3VsYXRlZFBhaXJNb2RlXV0pLFU9bmV3IE1hcChbWyJzbWFsbCIsRl0sWyJtZWRpdW0iLFddLFsibGFyZ2UiLFddXSksRz1uZXcgTWFwKFtbITAsVV1dKSx6PW5ldyBNYXAoW1shMCxPLnR2Q2FsY3VsYXRlZFBhaXJdXSkscT1uZXcgTWFwKFtbITAsW0UudHZDYWxjdWxhdGVkUGFpckh0bWxdXV0pLCQ9bmV3IE1hcChbWyEwLHt0ZXh0Om4udChudWxsLHZvaWQgMCxhKDMyNTE1NSkpLG9uQ2xpY2s6KCk9PigwLE0uc2hvd1N1cHBvcnREaWFsb2cpKHtzb2x1dGlvbklkOkkuVFZfQ0FMQ1VMQVRFRF9QQUlSX1NPTFVUSU9OX0lEfSl9XV0pO2NsYXNzIGogZXh0ZW5kcyBre2NvbnN0cnVjdG9yKGUsdCl7c3VwZXIoZSx7aWNvbk1hcDpHLHRvb2x0aXBNYXA6SCx0aXRsZU1hcDpILHRpdGxlQ29sb3JNYXA6TCxzaXplOnQsY2xhc3NOYW1lTWFwOnosaHRtbE1hcDpxLGFjdGlvbk1hcDokfSl9fXZhciBRPWEoNjQyNzgzKSxYPWEoMzUxMTgyKSxLPWEoOTI0MDIwKTtjb25zdCBaPW5ldyBNYXAoW1shMCxFLkhLRVhEYXRhVGl0bGVdXSksSj1uZXcgTWFwKFtbITAsInZhcigtLWNvbG9yLWNvbnRlbnQtcHJpbWFyeS1kYW5nZXItZXh0cmEtYm9sZCkiXV0pLFk9bmV3IE1hcChbWyJzbWFsbCIsUV0sWyJtZWRpdW0iLFhdLFsibGFyZ2UiLFhdXSksZWU9bmV3IE1hcChbWyEwLFldXSksdGU9bmV3IE1hcChbWyEwLEsuaGtleENvbW1lbnRdXSksYWU9bmV3IE1hcChbWyEwLFtFLkhLRVhEYXRhQ29tbWVudF1dXSk7Y2xhc3Mgc2UgZXh0ZW5kcyBre2NvbnN0cnVjdG9yKGUsdCl7c3VwZXIoZSx7aWNvbk1hcDplZSx0b29sdGlwTWFwOlosdGl0bGVNYXA6Wix0aXRsZUNvbG9yTWFwOkosc2l6ZTp0LGNsYXNzTmFtZU1hcDp0ZSxodG1sTWFwOmFlfSl9fXZhciBvZT1hKDU5ODI1NyksaWU9YSg1NzUxNDgpLHJlPWEoNjg1OTI2KTtjb25zdCBuZT1uZXcgTWFwKFtbITAsRS5kZWZhdWx0ZWRUaXRsZV1dKSxsZT1uZXcgTWFwKFtbITAsQy5jb2xvckRlZmF1bHRlZF1dKSx1ZT1uZXcgTWFwKFtbInNtYWxsIixvZV0sWyJtZWRpdW0iLGllXSxbImxhcmdlIixpZV1dKSxjZT1uZXcgTWFwKFtbITAsdWVdXSksZGU9bmV3IE1hcChbWyEwLHJlLmRlZmF1bHRlZFN0YXR1c11dKSxoZT1uZXcgTWFwKFtbITAsW0UuZGVmYXVsdGVkSHRtbF1dXSk7Y2xhc3MgcGUgZXh0ZW5kcyBre2NvbnN0cnVjdG9yKGUsdCl7c3VwZXIoZSx7aWNvbk1hcDpjZSx0b29sdGlwTWFwOm5lLHRpdGxlTWFwOm5lLHRpdGxlQ29sb3JNYXA6bGUsc2l6ZTp0LGNsYXNzTmFtZU1hcDpkZSxodG1sTWFwOmhlfSl9fXZhciBtZT1hKDUwNTU2KSxfZT1hKDIyNjkzNyksU2U9YSg5MTM2MTApLGZlPWEoMjg0NDY3KTtjb25zdCB3ZT0oMCxtZS5nZXRIZXhDb2xvckJ5TmFtZSkoImNvbG9yLXNreS1ibHVlLWE3MDAiKSxiZT1uZXcgTWFwKFtbITEsRS5sZXRJdFNub3dUaXRsZV0sWyEwLEUubGV0SXRTbm93VGl0bGVdXSksZ2U9bmV3IE1hcChbWyExLHdlXSxbITAsd2VdXSksdmU9bmV3IE1hcChbWyEwLG5ldyBNYXAoW1sic21hbGwiLFNlXSxbIm1lZGl1bSIsU2VdXSldXSkseWU9bmV3IE1hcChbWyExLGZlLmxldEl0U25vd1N0YXR1c10sWyEwLGZlLmxldEl0U25vd1N0YXR1c11dKSxNZT1uZXcgTWFwKFtbITEsW0UubGV0SXRTbm93SHRtbF1dLFshMCxbRS5sZXRJdFNub3dIdG1sXV1dKSxJZT1uZXcgby5XYXRjaGVkVmFsdWUoITEpO2xldCBFZT1udWxsO0llLnN1YnNjcmliZSgoZT0+e251bGw9PT1FZSYmKEVlPW5ldyBfZS5Bc3luY1Jlc291cmNlV3JhcHBlcihhLmUoMzM0MTApLnRoZW4oYS5iaW5kKGEsMzM4Njc0KSkpKSxFZS5jYWxsRnVuY3Rpb24oKHQ9Pnt0LnNub3coZSl9KSl9KSk7Y29uc3QgQ2U9bmV3IFNldChbImVuIiwidWsiLCJkZV9ERSIsImZyIiwiZXMiLCJpdCIsInBsIiwiamEiLCJjYSIsInJ1Il0pO2NsYXNzIFRlIGV4dGVuZHMga3tjb25zdHJ1Y3RvcihlKXtzdXBlcihJZS5zcGF3bigpLm93bmVyc2hpcCgpLHtpY29uTWFwOnZlLHRvb2x0aXBNYXA6YmUsdGl0bGVNYXA6YmUsdGl0bGVDb2xvck1hcDpnZSxzaXplOmUsY2xhc3NOYW1lTWFwOnllLGh0bWxNYXA6TWUsYWN0aW9uTWFwOm5ldyBNYXAoW1shMSx7dGV4dDpFLmxldEl0U25vd1N0YXJ0LG9uQ2xpY2s6KCk9PkllLnNldFZhbHVlKCEwKX1dLFshMCx7dGV4dDpFLmxldEl0U25vd1N0b3Asb25DbGljazooKT0+SWUuc2V0VmFsdWUoITEpfV1dKX0pfWFzeW5jIF91cGRhdGVGdWxsVG9vbHRpcCgpe2F3YWl0IHN1cGVyLl91cGRhdGVGdWxsVG9vbHRpcCgpO2NvbnN0IGU9dGhpcy5fZnVsbFRvb2x0aXAudmFsdWUoKTtudWxsIT09ZSYmdGhpcy5fZnVsbFRvb2x0aXAuc2V0VmFsdWUoW3suLi5lWzBdLGljb246U2V9XSl9fXZhciBrZT1hKDkwODQwMCkseGU9YSgxOTI3NTUpLERlPWEoNDQ1MSk7Y29uc3QgVmU9bmV3IE1hcChbWyEwLEUudXBjb21pbmdJcG9UaXRsZV1dKSxQZT1uZXcgTWFwKFtbITAsQy5jb2xvclVwY29taW5nSXBvXV0pLEFlPW5ldyBNYXAoW1sic21hbGwiLGtlXSxbIm1lZGl1bSIseGVdLFsibGFyZ2UiLHhlXV0pLFJlPW5ldyBNYXAoW1shMCxBZV1dKSxCZT1uZXcgTWFwKFtbITAsRGUudXBjb21pbmdJcG9TdGF0dXNdXSksTmU9bmV3IE1hcChbWyEwLFtFLnVwY29taW5nSXBvSHRtbF1dXSk7Y2xhc3MgRmUgZXh0ZW5kcyBre2NvbnN0cnVjdG9yKGUsdCl7c3VwZXIoZSx7aWNvbk1hcDpSZSx0b29sdGlwTWFwOlZlLHRpdGxlTWFwOlZlLHRpdGxlQ29sb3JNYXA6UGUsc2l6ZTp0LGNsYXNzTmFtZU1hcDpCZSxodG1sTWFwOk5lfSl9fXZhciBXZT1hKDU2OTM5OCksT2U9YSg0NDE0NDApO2NsYXNzIEhlIGV4dGVuZHMgT2UuRGF0YVNvdXJjZVN0YXR1c2VzV2lkZ2V0U3RhdGV7Y29uc3RydWN0b3IoZSx0LGEpe3N1cGVyKGUsdCxhKSwKdGhpcy5faXNJblJlcGxheT1uZXcgby5XYXRjaGVkVmFsdWUoITEpLnJlYWRvbmx5KCkuc3Bhd24oKSx0aGlzLl9pc1VwY29taW5nSXBvQWN0aXZlPW5ldyBvLldhdGNoZWRWYWx1ZSghMSkucmVhZG9ubHkoKS5zcGF3bigpLHRoaXMuX2lzSW5SZXBsYXlDYW5CZVNob3duPW51bGwsdGhpcy5faW5pdGVkPSExLHRoaXMuX2hhbGFsQ2FuQmVTaG93bj1uZXcgby5XYXRjaGVkVmFsdWUoITEpLHRoaXMuX3R2Q2FsY3VsYXRlZFBhaXJDYW5CZVNob3duPW5ldyBvLldhdGNoZWRWYWx1ZSghMSksdGhpcy5faGtleENvbW1lbnRDYW5CZVNob3duPW5ldyBvLldhdGNoZWRWYWx1ZSghMSksdGhpcy5fZGVmYXVsdGVkQm9uZENhbkJlU2hvd249bmV3IG8uV2F0Y2hlZFZhbHVlKCExKSx0aGlzLl91cGNvbWluZ0lwb0NhbkJlU2hvd249bmV3IG8uV2F0Y2hlZFZhbHVlKCExKSx0aGlzLl91cGRhdGVTdGF0dXNXaWRnZXRzVmlzaWJpbGl0aWVzQm91bmQ9dGhpcy5fdXBkYXRlU3RhdHVzV2lkZ2V0c1Zpc2liaWxpdGllcy5iaW5kKHRoaXMpO2NvbnN0IHM9dC5tb2RlbCgpO2lmKHRoaXMuX29wdGlvbnMuc291cmNlU3RhdHVzZXNFbmFibGVkKXt0aGlzLl9jcmVhdGVIYWxhbFN0YXR1cygpLHRoaXMuX2NyZWF0ZVRWQ2FsY3VsYXRlZFBhaXJTdGF0dXMoKSx0aGlzLl9jcmVhdGVIS0VYQ29tbWVudFN0YXR1cygpLHRoaXMuX2NyZWF0ZURlZmF1bHRlZEJvbmRTdGF0dXMoKSx0aGlzLl9jcmVhdGVVcGNvbWluZ0lwb1N0YXR1cygpLHRoaXMuX2NyZWF0ZUxldEl0U25vd1N0YXR1cygpLHRoaXMuX2lzVXBjb21pbmdJcG9BY3RpdmU9dGhpcy5fY3JlYXRlSXNVcGNvbWluZ0lwb0FjdGl2ZSgpO3t0aGlzLl9pc0luUmVwbGF5Q2FuQmVTaG93bj1uZXcgby5XYXRjaGVkVmFsdWUoITEpO2NvbnN0IGU9KDAsaS5jb21iaW5lKSgoKGUsdCk9PnR8fDE9PT1lfHw0PT09ZT9lOjApLHMucmVwbGF5U3RhdHVzKCkud2Vha1JlZmVyZW5jZSgpLHMubWFpblNlcmllcygpLmlzSW5SZXBsYXkoKS53ZWFrUmVmZXJlbmNlKCkpO3RoaXMuX2lzSW5SZXBsYXk9KDAsaS5jb21iaW5lKSgoZT0+MCE9PWUmJjQhPT1lKSxlLndlYWtSZWZlcmVuY2UoKSk7Y29uc3QgdD1uZXcgdihlLm93bmVyc2hpcCgpLHRoaXMuX3NpemUpLGE9KDAsaS5jb21iaW5lKSgoKGUsdCk9PmUmJnQpLHRoaXMuX2lzSW5SZXBsYXlDYW5CZVNob3duLndlYWtSZWZlcmVuY2UoKSx0LnZpc2libGUoKS53ZWFrUmVmZXJlbmNlKCkpO3RoaXMuX2FkZFN0YXR1c1ZpZXdNb2RlbHNJbmZvcyh7dmlzaWJsZTphLG1vZGVsOnR9KSxhLnN1YnNjcmliZSh0aGlzLl91cGRhdGVTdGF0dXNXaWRnZXRzVmlzaWJpbGl0aWVzQm91bmQpLHRoaXMuX2lzSW5SZXBsYXkuc3Vic2NyaWJlKHRoaXMuX3VwZGF0ZVN0YXR1c1dpZGdldHNWaXNpYmlsaXRpZXNCb3VuZCx7Y2FsbFdpdGhMYXN0OiEwfSl9dGhpcy5faXNVcGNvbWluZ0lwb0FjdGl2ZS5zdWJzY3JpYmUodGhpcy5fdXBkYXRlU3RhdHVzV2lkZ2V0c1Zpc2liaWxpdGllc0JvdW5kLHtjYWxsV2l0aExhc3Q6ITB9KSx0aGlzLl9pbml0ZWQ9ITAsdGhpcy5fdXBkYXRlU3RhdHVzV2lkZ2V0c1Zpc2liaWxpdGllcygpfX1kZXN0cm95KCl7dGhpcy5fb3B0aW9ucy5zb3VyY2VTdGF0dXNlc0VuYWJsZWQmJih0aGlzLl9pc0luUmVwbGF5LmRlc3Ryb3koKSx0aGlzLl9pc1VwY29taW5nSXBvQWN0aXZlLmRlc3Ryb3koKSksc3VwZXIuZGVzdHJveSgpfV91cGRhdGVTdGF0dXNXaWRnZXRzVmlzaWJpbGl0aWVzKCl7aWYoc3VwZXIuX3VwZGF0ZVN0YXR1c1dpZGdldHNWaXNpYmlsaXRpZXMoKSx0aGlzLl9pbml0ZWQmJnRoaXMuX29wdGlvbnMuc291cmNlU3RhdHVzZXNFbmFibGVkKXtjb25zdCBlPXRoaXMuX2lzRm9yY2VTdGF0dXNBY3RpdmUoKSx0PXRoaXMuX2lzVXBjb21pbmdJcG9BY3RpdmUudmFsdWUoKTt0aGlzLl9oYWxhbENhbkJlU2hvd24uc2V0VmFsdWUoIWUpLHRoaXMuX3R2Q2FsY3VsYXRlZFBhaXJDYW5CZVNob3duLnNldFZhbHVlKCFlKSx0aGlzLl9oa2V4Q29tbWVudENhbkJlU2hvd24uc2V0VmFsdWUoIWUpLHRoaXMuX2RlZmF1bHRlZEJvbmRDYW5CZVNob3duLnNldFZhbHVlKCFlKSx0aGlzLl91cGNvbWluZ0lwb0NhbkJlU2hvd24uc2V0VmFsdWUoIWUpLHRoaXMuX21hcmtldFN0YXR1c0NhbkJlU2hvd24uc2V0VmFsdWUoIWUmJiF0KSx0aGlzLl9kYXRhVXBkYXRlZE1vZGVDYW5CZVNob3duLnNldFZhbHVlKCFlJiYhdCksKDAscy5lbnN1cmVOb3ROdWxsKSh0aGlzLl9pc0luUmVwbGF5Q2FuQmVTaG93bikuc2V0VmFsdWUoIXN1cGVyLl9pc1ByaW1hcnlXaWRnZXRTaG93bigpJiZ0aGlzLl9pc0luUmVwbGF5LnZhbHVlKCkpfX1faXNQcmltYXJ5V2lkZ2V0U2hvd24oKXtyZXR1cm4gc3VwZXIuX2lzUHJpbWFyeVdpZGdldFNob3duKCl8fHRoaXMuX2luaXRlZCYmdGhpcy5faXNJblJlcGxheS52YWx1ZSgpfV9jcmVhdGVIYWxhbFN0YXR1cygpe2NvbnN0IGU9bmV3IE4odGhpcy5fY3JlYXRlSGFsYWxUeXBlUmVsZWFzYWJsZSgpLHRoaXMuX3NpemUpLHQ9e3Zpc2libGU6ZS52aXNpYmxlKCkuc3Bhd24oKSxtb2RlbDplfTt0aGlzLl9hZGRTdGF0dXNWaWV3TW9kZWxzSW5mb3ModCl9X2NyZWF0ZURlZmF1bHRlZEJvbmRTdGF0dXMoKXtjb25zdCBlPW5ldyBwZSh0aGlzLl9jcmVhdGVEZWZhdWx0ZWRCb25kUmVsZWFzYWJsZSgpLHRoaXMuX3NpemUpLHQ9e3Zpc2libGU6ZS52aXNpYmxlKCkuc3Bhd24oKSxtb2RlbDplfTt0aGlzLl9hZGRTdGF0dXNWaWV3TW9kZWxzSW5mb3ModCl9X2NyZWF0ZVRWQ2FsY3VsYXRlZFBhaXJTdGF0dXMoKXtjb25zdCBlPW5ldyBqKHRoaXMuX2NyZWF0ZVR2Q2FsY3VsYXRlZFBhaXJSZWxlYXNhYmxlKCksdGhpcy5fc2l6ZSksdD17dmlzaWJsZTplLnZpc2libGUoKS5zcGF3bigpLG1vZGVsOmV9O3RoaXMuX2FkZFN0YXR1c1ZpZXdNb2RlbHNJbmZvcyh0KX1fY3JlYXRlSEtFWENvbW1lbnRTdGF0dXMoKXtjb25zdCBlPW5ldyBzZSh0aGlzLl9jcmVhdGVIa2V4Q29tbWVudFJlbGVhc2FibGUoKSx0aGlzLl9zaXplKSx0PXt2aXNpYmxlOmUudmlzaWJsZSgpLnNwYXduKCksbW9kZWw6ZX0KO3RoaXMuX2FkZFN0YXR1c1ZpZXdNb2RlbHNJbmZvcyh0KX1fY3JlYXRlVXBjb21pbmdJcG9TdGF0dXMoKXtjb25zdCBlPW5ldyBGZSh0aGlzLl9jcmVhdGVVcGNvbWluZ0lwb1JlbGVhc2FibGUoKSx0aGlzLl9zaXplKSx0PXt2aXNpYmxlOmUudmlzaWJsZSgpLnNwYXduKCksbW9kZWw6ZX07dGhpcy5fYWRkU3RhdHVzVmlld01vZGVsc0luZm9zKHQpfV9jcmVhdGVMZXRJdFNub3dTdGF0dXMoKXtpZighQ2UuaGFzKHdpbmRvdy5sb2NhbGUpfHwhKDAsV2UuaXNGZWF0dXJlRW5hYmxlZCkoInNwZWNpYWxfY2hhcnRfc2VyaWVzX3N0YXR1cyIpKXJldHVybjtjb25zdCBlPW5ldyBUZSh0aGlzLl9zaXplKSx0PXt2aXNpYmxlOmUudmlzaWJsZSgpLnNwYXduKCksbW9kZWw6ZX07dGhpcy5fYWRkU3RhdHVzVmlld01vZGVsc0luZm9zKHQpfV9jcmVhdGVJc1VwY29taW5nSXBvQWN0aXZlKCl7cmV0dXJuKDAsaS5jb21iaW5lKSgoKGUsdCxhKT0+e2NvbnN0IHM9YT8udHlwZXNwZWNzPy5pbmNsdWRlcygicHJlLWlwbyIpLG89IWU/Lmxhc3RfcHJpY2U7cmV0dXJuIG51bGwhPT1hJiYhdCYmQm9vbGVhbihzKSYmb30pLCh0aGlzLl9zb3VyY2UucXVvdGVzRGF0YT8uKCl8fG5ldyBvLldhdGNoZWRWYWx1ZShudWxsKS5yZWFkb25seSgpKS53ZWFrUmVmZXJlbmNlKCksKHRoaXMuX3NvdXJjZS5pc1N5bWJvbEludmFsaWQoKXx8bmV3IG8uV2F0Y2hlZFZhbHVlKCExKS5yZWFkb25seSgpKS53ZWFrUmVmZXJlbmNlKCksdGhpcy5fc291cmNlLnN5bWJvbEluZm8oKS53ZWFrUmVmZXJlbmNlKCkpfV9jcmVhdGVIYWxhbFR5cGVSZWxlYXNhYmxlKCl7cmV0dXJuKDAsaS5jb21iaW5lKSgoKGUsdCxhLHMpPT5udWxsIT09cyYmdCYmIWEmJmU/LlsiaXMtc2hhcmlhaC1jb21wbGlhbnQiXT8oMCxyLmlzQm9uZCkocy50eXBlKT95LkJvbmQ6eS5TdG9jazpudWxsKSwodGhpcy5fc291cmNlLnF1b3Rlc0RhdGE/LigpfHxuZXcgby5XYXRjaGVkVmFsdWUobnVsbCkucmVhZG9ubHkoKSkud2Vha1JlZmVyZW5jZSgpLHRoaXMuX2hhbGFsQ2FuQmVTaG93bi53ZWFrUmVmZXJlbmNlKCksKHRoaXMuX3NvdXJjZS5pc1N5bWJvbEludmFsaWQoKXx8bmV3IG8uV2F0Y2hlZFZhbHVlKCExKS5yZWFkb25seSgpKS53ZWFrUmVmZXJlbmNlKCksdGhpcy5fc291cmNlLnN5bWJvbEluZm8oKS53ZWFrUmVmZXJlbmNlKCkpLm93bmVyc2hpcCgpfV9jcmVhdGVEZWZhdWx0ZWRCb25kUmVsZWFzYWJsZSgpe3JldHVybigwLGkuY29tYmluZSkoKChlLHQsYSxzKT0+IShudWxsPT09c3x8IXR8fGF8fCJkZWZhdWx0ZWQiIT09ZT8uaXNzdWVfc3RhdHVzKXx8bnVsbCksKHRoaXMuX3NvdXJjZS5xdW90ZXNEYXRhPy4oKXx8bmV3IG8uV2F0Y2hlZFZhbHVlKG51bGwpLnJlYWRvbmx5KCkpLndlYWtSZWZlcmVuY2UoKSx0aGlzLl9kZWZhdWx0ZWRCb25kQ2FuQmVTaG93bi53ZWFrUmVmZXJlbmNlKCksKHRoaXMuX3NvdXJjZS5pc1N5bWJvbEludmFsaWQoKXx8bmV3IG8uV2F0Y2hlZFZhbHVlKCExKS5yZWFkb25seSgpKS53ZWFrUmVmZXJlbmNlKCksdGhpcy5fc291cmNlLnN5bWJvbEluZm8oKS53ZWFrUmVmZXJlbmNlKCkpLm93bmVyc2hpcCgpfV9jcmVhdGVUdkNhbGN1bGF0ZWRQYWlyUmVsZWFzYWJsZSgpe3JldHVybigwLGkuY29tYmluZSkoKChlLHQsYSk9PiEobnVsbD09PWF8fCFlfHx0fHwhYS50eXBlc3BlY3M/LmluY2x1ZGVzKCJ0di1jYWxjdWxhdGVkLXBhaXIiKSl8fG51bGwpLHRoaXMuX3R2Q2FsY3VsYXRlZFBhaXJDYW5CZVNob3duLndlYWtSZWZlcmVuY2UoKSwodGhpcy5fc291cmNlLmlzU3ltYm9sSW52YWxpZCgpfHxuZXcgby5XYXRjaGVkVmFsdWUoITEpLnJlYWRvbmx5KCkpLndlYWtSZWZlcmVuY2UoKSx0aGlzLl9zb3VyY2Uuc3ltYm9sSW5mbygpLndlYWtSZWZlcmVuY2UoKSkub3duZXJzaGlwKCl9X2NyZWF0ZUhrZXhDb21tZW50UmVsZWFzYWJsZSgpe3JldHVybigwLGkuY29tYmluZSkoKChlLHQsYSk9PiEobnVsbD09PWF8fCFlfHx0fHwiSEtFWCIhPT1hLmxpc3RlZF9leGNoYW5nZSl8fG51bGwpLHRoaXMuX3R2Q2FsY3VsYXRlZFBhaXJDYW5CZVNob3duLndlYWtSZWZlcmVuY2UoKSwodGhpcy5fc291cmNlLmlzU3ltYm9sSW52YWxpZCgpfHxuZXcgby5XYXRjaGVkVmFsdWUoITEpLnJlYWRvbmx5KCkpLndlYWtSZWZlcmVuY2UoKSx0aGlzLl9zb3VyY2Uuc3ltYm9sSW5mbygpLndlYWtSZWZlcmVuY2UoKSkub3duZXJzaGlwKCl9X2NyZWF0ZVVwY29taW5nSXBvUmVsZWFzYWJsZSgpe3JldHVybigwLGkuY29tYmluZSkoKChlLHQsYSxzKT0+e2NvbnN0IG89cz8udHlwZXNwZWNzPy5pbmNsdWRlcygicHJlLWlwbyIpO3JldHVybiEobnVsbD09PXN8fCF0fHxhfHwhb3x8ZT8ubGFzdF9wcmljZSl8fG51bGx9KSwodGhpcy5fc291cmNlLnF1b3Rlc0RhdGE/LigpfHxuZXcgby5XYXRjaGVkVmFsdWUobnVsbCkucmVhZG9ubHkoKSkud2Vha1JlZmVyZW5jZSgpLHRoaXMuX3VwY29taW5nSXBvQ2FuQmVTaG93bi53ZWFrUmVmZXJlbmNlKCksKHRoaXMuX3NvdXJjZS5pc1N5bWJvbEludmFsaWQoKXx8bmV3IG8uV2F0Y2hlZFZhbHVlKCExKS5yZWFkb25seSgpKS53ZWFrUmVmZXJlbmNlKCksdGhpcy5fc291cmNlLnN5bWJvbEluZm8oKS53ZWFrUmVmZXJlbmNlKCkpLm93bmVyc2hpcCgpfX19LDgwODAwMShlLHQsYSl7InVzZSBzdHJpY3QiO2EuZCh0LHtGdWxsVG9vbHRpcHNQb3B1cDooKT0+cH0pO3ZhciBzPWEoNzc5NDc0KSxvPWEoNzE3OTMyKSxpPWEoMjM3NjE2KSxyPWEoNTIwNDg2KSxuPWEoNjQwNTEzKSxsPWEoNzE4NzczKSx1PWEoMjc2MDE5KSxjPWEoMTA2OTAwKSxkPWEoMjIxMzAwKSxoPWEoNDQ3MjY4KTtmdW5jdGlvbiBwKGUpe2NvbnN0e2FuY2hvcmVkOnQsb2Zmc2V0UG9zaXRpb246YSxvdmVyZmxvd1ZlcnRpY2FsOnAsb3ZlcmZsb3dIb3Jpem9udGFsOm0sc3RhdHVzZXM6Xyxpc09wZW46UyxvbkNsb3NlOmYsbW9iaWxlQnJlYWtwb2ludDp3PSJhbGwgYW5kIChtYXgtd2lkdGg6IDQ0MHB4KSIscGxhY2VtZW50UnVsZXM6Yj1bey4uLm4uUExBQ0VNRU5UX0JPVFRPTV9BTElHTl9MRUZULG9mZnNldDphLApvdmVyZmxvd1ZlcnRpY2FsOnA/P24uUExBQ0VNRU5UX0JPVFRPTV9BTElHTl9MRUZULm92ZXJmbG93VmVydGljYWwsb3ZlcmZsb3dIb3Jpem9udGFsOm0/P24uUExBQ0VNRU5UX0JPVFRPTV9BTElHTl9MRUZULm92ZXJmbG93SG9yaXpvbnRhbH1dfT1lLGc9KDAsYy51c2VXYXRjaGVkVmFsdWVSZWFkb25seSkoe3dhdGNoZWRWYWx1ZTpffSksdj0oMCxzLnVzZUNhbGxiYWNrKSgoKCk9PmYoITEpKSxbZl0pOygwLHMudXNlRWZmZWN0KSgoKCk9Pih1Lmdsb2JhbENsb3NlRGVsZWdhdGUuc3Vic2NyaWJlKG51bGwsdiksKCk9Pnt1Lmdsb2JhbENsb3NlRGVsZWdhdGUudW5zdWJzY3JpYmUobnVsbCx2KX0pKSxbdl0pO2NvbnN0e3JlZlRvQ29udGVudFdyYXBwZXJFbGVtZW50OnkscmVwb3NpdGlvblRyaWdnZXJzOk19PSgwLGwudXNlUG9wb3ZlckNsb3NlQmVoYXZpb3IpKHtpc09wZW46UyxvbkNsb3NlOmYsZXhjbHVkZUFyZWE6dC5hdCxjbG9zZU9uRXNjYXBlOiEwLGNsb3NlT25DbGlja0F3YXk6ITAsY2xvc2VPblNjcm9sbE91dHNpZGU6ITAsY2xvc2VPblJlc2l6ZVdpbmRvdzohMCxjbG9zZU9uVGFiOiEwfSksST0oMCxvLnVzZU1hdGNoTWVkaWEpKHcpO3JldHVybiBzLmNyZWF0ZUVsZW1lbnQoaS5Qb3BvdmVyLHtpc09wZW46UyxvbkNsb3NlOmYsYW5jaG9yZWQ6dCx3aWR0aDp7Ynk6ImNvbnRlbnQifSxoZWlnaHQ6e2J5OiJjb250ZW50In0scGxhY2VtZW50UnVsZXM6Yixtb2JpbGVCcmVha3BvaW50OncsbW9iaWxlUG9zaXRpb25lclN0cmV0Y2g6ITEsYW5jaG9yUG9zaXRpb25lckNhcmRBcHBlYXJhbmNlQ2xhc3NuYW1lOmgucG9wdXBXaWRnZXRXcmFwcGVyLG1vYmlsZVBvc2l0aW9uZXJDYXJkQXBwZWFyYW5jZUNsYXNzbmFtZTpoLnBvcHVwV2lkZ2V0V3JhcHBlcixkYXRhUWFJZDoiY2hhcnQtc3RhdHVzZXMtcG9wdXAiLHJlZlRvQ29udGVudFdyYXBwZXJFbGVtZW50OnkscmVwb3NpdGlvblRyaWdnZXJzOk19LHMuY3JlYXRlRWxlbWVudChyLlBvcG92ZXJDb250ZW50VmVydGljYWwsbnVsbCxnLm1hcCgoKGUsdCk9PnMuY3JlYXRlRWxlbWVudChkLkZ1bGxUb29sdGlwV2lkZ2V0LHtrZXk6YEZ1bGxUb29sdGlwV2lkZ2V0JHt0fWAsaW5mbzplLm1vZGVsLmZ1bGxJbmZvKCksYWRkaXRpb25hbFdpZGdldHM6ZS5hZGRpdGlvbmFsV2lkZ2V0cyxwcmVsaW1pbmFyeUpvYjplLnByZWxpbWluYXJ5Sm9iLG9uQ2xvc2U6dixpc01vYmlsZTpJfSkpKSkpfX0sNTQ3ODY0KGUsdCxhKXsidXNlIHN0cmljdCI7YS5kKHQse1N0YXR1c0ljb246KCk9PnV9KTt2YXIgcz1hKDc3OTQ3NCksbz1hKDkxNDQ4NyksaT1hLm4obykscj1hKDI3MzMxMCksbj1hKDEwNjkwMCksbD1hKDg2MDU0OCk7ZnVuY3Rpb24gdShlKXtjb25zdHt2aXNpYmxlOnQsaWNvbjphLGNsYXNzTmFtZTpvLHNpemU6dT0ic21hbGwiLGlzQmxpbmtpbmc6Yyx0dXJuT2ZmQmxpbmtpbmc6ZCxjdXN0b21Db2xvcjpoLGRhdGFRYUlkOnAsZGF0YXNldEVudGl0eUlkOm19PWUsXz0oMCxuLnVzZVdhdGNoZWRWYWx1ZVJlYWRvbmx5KSh7d2F0Y2hlZFZhbHVlOnR9KSxTPSgwLG4udXNlV2F0Y2hlZFZhbHVlUmVhZG9ubHkpKHt3YXRjaGVkVmFsdWU6YX0pLGY9KDAsbi51c2VXYXRjaGVkVmFsdWVSZWFkb25seSkoe3dhdGNoZWRWYWx1ZTpvfSksdz0oKDAsbi51c2VXYXRjaGVkVmFsdWVSZWFkb25seSkoe3dhdGNoZWRWYWx1ZTpofSksISFjJiYoMCxuLnVzZVdhdGNoZWRWYWx1ZVJlYWRvbmx5KSh7d2F0Y2hlZFZhbHVlOmN9KSksYj1tPygwLG4udXNlV2F0Y2hlZFZhbHVlUmVhZG9ubHkpKHt3YXRjaGVkVmFsdWU6bX0pOnZvaWQgMDtpZighX3x8IVMpcmV0dXJuIG51bGw7Y29uc3QgZz17Li4ucD97ImRhdGEtcWEtaWQiOnB9Ont9LC4uLmI/eyJkYXRhLWVudGl0eS1pZCI6Yn06e319O3JldHVybiBzLmNyZWF0ZUVsZW1lbnQoci5JY29uLHtjbGFzc05hbWU6aSgpKGwuc3RhdHVzSXRlbSxsW3VdLGYse1tsLmJsaW5raW5nXTp3fSksb25DbGljazpkLHN0eWxlOnZvaWQgMCwuLi5nLGljb246U30pfX0sNzM0ODIoZSx0LGEpeyJ1c2Ugc3RyaWN0IjthLmQodCx7REVGQVVMVF9TVEFUVVNfUkVOREVSRVJfVEhFTUU6KCk9PmYsU3RhdHVzZXNQaWxsOigpPT5nfSk7dmFyIHM9YSg3Nzk0NzQpLG89YSg5MTQ0ODcpLGk9YS5uKG8pLHI9YSgyMzY3NjUpLG49YSgxNzk3NzEpLGw9YSg2MDM2MTIpLHU9YSgxMDY5MDApLGM9YSg4MDAyMjYpLGQ9YSgzODY5MzEpLGg9YSgxNTAxNTApLHA9YSgzODcyMzEpLG09YSg1NDc4NjQpLF89YSg4MDgwMDEpLFM9YSg4NjA1NDgpO2NvbnN0IGY9Uyx3PW5ldyBXZWFrTWFwLGI9Yy50cmFja2luZ01vZGVJc0F2YWlsYWJsZT8ibWVkaXVtIjoic21hbGwiO2Z1bmN0aW9uIGcoZSl7Y29uc3R7c3RhdHVzZXM6dCx0b29sdGlwOmEsdGhlbWU6bz1TLHNob3dUb29sdGlwT3ZlcnJpZGVDYWxsYmFjazpjfT1lLFtnLHZdPSgwLHMudXNlU3RhdGUpKCExKSx5PSgwLHUudXNlV2F0Y2hlZFZhbHVlUmVhZG9ubHkpKHt3YXRjaGVkVmFsdWU6dH0pLE09KDAsdS51c2VXYXRjaGVkVmFsdWVSZWFkb25seSkoe3dhdGNoZWRWYWx1ZTphfSksST0oMCxzLnVzZU1lbW8pKCgoKT0+KDAscC5tZXJnZVRoZW1lcykoZixvKSksW29dKTsoMCxzLnVzZUVmZmVjdCkoKCgpPT57Y29uc3QgZT17fTtyZXR1cm4gbi5zdWJzY3JpYmUobC5DTE9TRV9QT1BVUFNfQU5EX0RJQUxPR1NfQ09NTUFORCxrLGUpLCgpPT57bi51bnN1YnNjcmliZShsLkNMT1NFX1BPUFVQU19BTkRfRElBTE9HU19DT01NQU5ELGssZSl9fSksW10pO2NvbnN0IEU9KDAsci51c2VPdXRzaWRlRXZlbnQpKHtjbGljazohMCxoYW5kbGVyOigpPT57YyYmKGMoITApLHYoITEpKX19KTtpZigwPT09eS5sZW5ndGgpcmV0dXJuIG51bGw7Y29uc3QgQz0hIWM7cmV0dXJuIHMuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOkkuc3RhdHVzZXNXcmFwLHJlZjpFfSxzLmNyZWF0ZUVsZW1lbnQoImJ1dHRvbiIseyJkYXRhLXJvbGUiOiJzdGF0dXNlcy1waWxsIixjbGFzc05hbWU6aSgpKCJhcHBseS1jb21tb24tdG9vbHRpcCIsImNvbW1vbi10b29sdGlwLXdpZGUiLElbYl0pLHRhYkluZGV4OjAsCm9uQ2xpY2s6ZnVuY3Rpb24oZSl7aWYoZS5wcmV2ZW50RGVmYXVsdCgpLHkuZm9yRWFjaCgoZT0+e2UubW9kZWwudHVybk9mZkJsaW5raW5nTW9kZT8uKCl9KSksVCgpLCFnKXtjb25zdCBlPXkuZmluZCgoZT0+ZS5tb2RlbC5vblBpbGxDbGljaykpO2U/Lm1vZGVsPy5vblBpbGxDbGljaz8uKCl9YyYmKGUuc3RvcFByb3BhZ2F0aW9uKCksYyhnKSk7ZyYmKHQ9TSwoMCxkLnRyYWNrRXZlbnQpKCJHVUkiLCJTdGF0dXNlcyB3aWRnZXQncyBhY3Rpb24iLHQpKTt2YXIgdH0sdGl0bGU6TSwiZGF0YS1xYS1pZCI6ImxlZ2VuZC1zb3VyY2UtaXRlbS1zdGF0dXMifSx5Lm1hcCgoZT0+KHcuaGFzKGUpfHx3LnNldChlLCgwLGgucmFuZG9tSGFzaCkoKSkscy5jcmVhdGVFbGVtZW50KG0uU3RhdHVzSWNvbix7a2V5OncuZ2V0KGUpLHZpc2libGU6ZS52aXNpYmxlLGljb246ZS5tb2RlbC5pY29uKCksY2xhc3NOYW1lOmUubW9kZWwuY2xhc3NOYW1lKCksc2l6ZTplLm1vZGVsLnNpemUoKT8/InNtYWxsIixpc0JsaW5raW5nOmUubW9kZWwuaXNCbGlua2luZ01vZGUsdHVybk9mZkJsaW5raW5nOmUubW9kZWwudHVybk9mZkJsaW5raW5nTW9kZSxjdXN0b21Db2xvcjplLm1vZGVsLmN1c3RvbUNvbG9yKCksZGF0YVFhSWQ6ZS5kYXRhUWFJZCxkYXRhc2V0RW50aXR5SWQ6ZS5pY29uRGF0YXNldEVudGl0eUlkfSkpKSkpLHMuY3JlYXRlRWxlbWVudChfLkZ1bGxUb29sdGlwc1BvcHVwLHtzdGF0dXNlczp0LGFuY2hvcmVkOnt0eXBlOiJlbGVtZW50IixhdDpFfSxpc09wZW46ZyYmIUMsb25DbG9zZTprLG9mZnNldFBvc2l0aW9uOnt4Oi0xNSx5OjR9fSkpO2Z1bmN0aW9uIFQoKXt2KChlPT4hZSkpfWZ1bmN0aW9uIGsoKXt2KCExKX19fSw3ODM5NzgoZSx0LGEpeyJ1c2Ugc3RyaWN0IjthLmQodCx7U3RhdHVzZXNXaWRnZXRTdGF0ZUJhc2U6KCk9PmMsdXBkYXRlV2F0Y2hlZFZhbHVlRGVib3VuY2VkOigpPT51fSk7dmFyIHMsbz1hKDU0Nzg1MSksaT1hKDYwMTg0MSkscj1hKDIzMjM2NCksbj1hKDk1MjkwMCksbD1hKDgwMDIyNik7ZnVuY3Rpb24gdShlLHQsYSxzKXtjb25zdCBpPW5ldyByLldhdGNoZWRWYWx1ZSh0KSxuPSgwLG8uZGVmYXVsdCkoKGU9Pmkuc2V0VmFsdWUoZSkpLGEpO3JldHVybiBlLnN1YnNjcmliZSgoZT0+e24oZSkscz8uKGUpJiZuLmZsdXNoKCl9KSx7Y2FsbFdpdGhMYXN0OiEwfSksaS5yZWFkb25seSgpLnNwYXduKCgoKT0+e24uY2FuY2VsKCksZS5yZWxlYXNlKCl9KSl9IWZ1bmN0aW9uKGUpe2UuVG9vbHRpcFNlcGFyYXRvcj0iIMK3ICJ9KHN8fChzPXt9KSk7Y2xhc3MgY3tjb25zdHJ1Y3RvcihlKXt0aGlzLl9zaXplPWwudHJhY2tpbmdNb2RlSXNBdmFpbGFibGU/Im1lZGl1bSI6InNtYWxsIix0aGlzLl9zdGF0dXNWaWV3TW9kZWxzSW5mb3NXVj1uZXcgci5XYXRjaGVkVmFsdWUoW10pLHRoaXMuX3Zpc2liaWxpdHk9bmV3IHIuV2F0Y2hlZFZhbHVlKCExKSx0aGlzLl9mb3JjZUhpZGVWaXNpYmlsaXR5TW9kZWxzPW5ldyByLldhdGNoZWRWYWx1ZSghMSksdGhpcy5fb3B0aW9ucz1lO2NvbnN0IHQ9KDAsbi5jb21iaW5lKSgoZT0+ZS5tYXAoKGU9PigwLG4uY29tYmluZSkoKChlLHQpPT5lJiZ0KSxlLnZpc2libGUud2Vha1JlZmVyZW5jZSgpLGUubW9kZWwudmlzaWJsZSgpLndlYWtSZWZlcmVuY2UoKSkub3duZXJzaGlwKCkpKSksdGhpcy5fc3RhdHVzVmlld01vZGVsc0luZm9zV1Yud2Vha1JlZmVyZW5jZSgpKTt0aGlzLl92aXNpYmxlTW9kZWxzPXUoKDAsbi5hY2N1bXVsYXRlKSgoKGUsdCxhKT0+dD9bXTphLmZpbHRlcigoKHQsYSk9PmVbYV0mJnR8fG51bGwpKS5maWx0ZXIoaS5ub3ROdWxsKS5zbGljZSgwLDMpKSx0Lm93bmVyc2hpcCgpLHRoaXMuX2ZvcmNlSGlkZVZpc2liaWxpdHlNb2RlbHMud2Vha1JlZmVyZW5jZSgpLHRoaXMuX3N0YXR1c1ZpZXdNb2RlbHNJbmZvc1dWLndlYWtSZWZlcmVuY2UoKSkub3duZXJzaGlwKCksW10sMjUwLChlPT4wPT09ZS5sZW5ndGgpKSx0aGlzLl92aXNpYmxlTW9kZWxzLnN1YnNjcmliZSgoKCk9PnRoaXMuX3VwZGF0ZVZpc2liaWxpdHkoKSkpLHRoaXMuX3Rvb2x0aXA9KDAsbi5hY2N1bXVsYXRlKSgoZT0+ZS5maWx0ZXIoaS5ub3ROdWxsKS5qb2luKCIgwrcgIikpLCgwLG4uY29tYmluZSkoKGU9PmUubWFwKChlPT5lLm1vZGVsLnRvb2x0aXAoKS53ZWFrUmVmZXJlbmNlKCkpKSksdGhpcy5fdmlzaWJsZU1vZGVscy53ZWFrUmVmZXJlbmNlKCkpLm93bmVyc2hpcCgpKX1kZXN0cm95KCl7dGhpcy5fdmlzaWJpbGl0eS51bnN1YnNjcmliZSgpLHRoaXMuX2NsZWFyU3RhdHVzVmlld01vZGVscygpLHRoaXMuX3Zpc2libGVNb2RlbHMuZGVzdHJveSgpLHRoaXMuX3Rvb2x0aXAuZGVzdHJveSgpfXZpc2liaWxpdHkoKXtyZXR1cm4gdGhpcy5fdmlzaWJpbGl0eS5yZWFkb25seSgpfXZpc2libGVNb2RlbHMoKXtyZXR1cm4gdGhpcy5fdmlzaWJsZU1vZGVsc310b29sdGlwKCl7cmV0dXJuIHRoaXMuX3Rvb2x0aXB9X2FkZFN0YXR1c1ZpZXdNb2RlbHNJbmZvcyhlKXt0aGlzLl9zdGF0dXNWaWV3TW9kZWxzSW5mb3NXVi5zZXRWYWx1ZShbLi4udGhpcy5fc3RhdHVzVmlld01vZGVsc0luZm9zV1YudmFsdWUoKSxlXSl9X2NsZWFyU3RhdHVzVmlld01vZGVscygpe2Zvcihjb25zdCBlIG9mIHRoaXMuX3N0YXR1c1ZpZXdNb2RlbHNJbmZvc1dWLnZhbHVlKCkpe2lmKGUuYWRkaXRpb25hbFdpZGdldHMpZm9yKGNvbnN0IHQgb2YgZS5hZGRpdGlvbmFsV2lkZ2V0cyl0LmRlc3Ryb3koKTtlLm1vZGVsLmRlc3Ryb3koKSxlLnZpc2libGUuZGVzdHJveSgpfX19fSw5NzA2MzUoZSx0LGEpeyJ1c2Ugc3RyaWN0IjthLmQodCx7Qm9vbGVhblN0YXR1c1ZpZXdNb2RlbDooKT0+aX0pO3ZhciBzPWEoMjMyMzY0KSxvPWEoNTY1MjA2KTtjbGFzcyBpIGV4dGVuZHMgby5TdGF0dXNWaWV3TW9kZWx7Y29uc3RydWN0b3IoZSx0KXtzdXBlcih0KSx0aGlzLl9ib29sZWFuU3RhdHVzPW5ldyBzLldhdGNoZWRWYWx1ZSghMSkuc3Bhd24oKSx0aGlzLnVwZGF0ZVN0YXR1cyhlKX1kZXN0cm95KCl7dGhpcy5fYm9vbGVhblN0YXR1cy5kZXN0cm95KCksc3VwZXIuZGVzdHJveSgpfXVwZGF0ZVN0YXR1cyhlKXsKdGhpcy5fYm9vbGVhblN0YXR1cy5kZXN0cm95KCksdGhpcy5fYm9vbGVhblN0YXR1cz1lLnNwYXduKCksdGhpcy5fYm9vbGVhblN0YXR1cy5zdWJzY3JpYmUodGhpcy5fdXBkYXRlU3RhdHVzLmJpbmQodGhpcykse2NhbGxXaXRoTGFzdDohMH0pfV91cGRhdGVTdGF0dXMoZSl7ZT90aGlzLl9zdGF0dXMuc2V0VmFsdWUoITApOnRoaXMuX3N0YXR1cy5zZXRWYWx1ZShudWxsKX19fSw4MDAyMjYoZSx0LGEpeyJ1c2Ugc3RyaWN0IjthLmQodCx7dHJhY2tpbmdNb2RlSXNBdmFpbGFibGU6KCk9PnN9KTtjb25zdCBzPWEoMzE4OTc0KS5DaGVja01vYmlsZS5hbnkoKX0sOTAxMTA4KGUsdCxhKXsidXNlIHN0cmljdCI7YS5kKHQse1BpbmVTb3VyY2VDb2RlTW9kZWxCYXNlOigpPT5uZSxib3R0b21XaWRnZXRCYXI6KCk9PmllLHVwZGF0ZXNJbmZvU3VwcG9ydGVkOigpPT5yZX0pO3ZhciBzPWEoMTM4NjM4KSxvPWEoMTg1MjcxKSxpPWEoMzg2OTMxKSxyPWEoMjIxMDYxKSxuPWEoMzY4MzEyKSxsPWEoMjMyMzY0KSx1PWEoODc0MzA2KSxjPWEoNjA1MjU3KSxkPWEoNTcwNjAzKSxoPWEoOTIwNDc1KSxwPWEoMTY3NTAyKSxtPWEoNzY4NzYwKSxfPWEoNzkxNDI3KSxTPWEoNjgxNzk5KSxmPWEoNzY1MTczKSx3PWEoODQ4Nzg1KSxiPWEoNDEyMzg0KSxnPWEoNjI4MDYpLHY9YSg5NTY0MzcpLHk9YSg4ODU2MzApLE09YSg5NjQ1NzMpLEk9YSgxNjM2MDMpLEU9YSgxODU2MDgpLEM9YSg4MjAxODApLFQ9YSg5NDgzODApO2NsYXNzIGsgZXh0ZW5kcyBTLlN0dWR5U3R1Yntjb25zdHJ1Y3RvcihlLHQsYSxzKXtzdXBlcihlLHQsYSwhMSxzKSx0aGlzLmlzU3RyYXRlZ3lTdHViPSEwLHRoaXMud2F0Y2hlZERhdGE9bmV3IGwuV2F0Y2hlZFZhbHVlKHttZXRob2Q6IlRlc3QifSksdGhpcy5fcmVwb3J0RGF0YT1udWxsLHRoaXMuX2JhcnNJbmRleGVzPVtdLHRoaXMuX2JhcnNJbmRleGVzPXQuZGF0YS5iYXJzSW5kZXhlc3x8W10sdGhpcy5fcmVwb3J0RGF0YT10LmRhdGEucmVwb3J0RGF0YT8/bnVsbCx0aGlzLm1vZGVsKCkuYWRkU3RyYXRlZ3lTb3VyY2UodGhpcywwKX1kZXN0cm95KCl7dGhpcy5tb2RlbCgpLnJlbW92ZVN0cmF0ZWd5U291cmNlKHRoaXMsMCksc3VwZXIuZGVzdHJveSgpfW1ldGFJbmZvKCl7cmV0dXJuKDAscy5lbnN1cmVOb3ROdWxsKShzdXBlci5tZXRhSW5mbygpKX1yZXBvcnREYXRhKCl7cmV0dXJuIHRoaXMuX3JlcG9ydERhdGF9b3JkZXJzRGF0YSgpe3JldHVybiB0aGlzLl9yZXBvcnREYXRhPy5maWxsZWRPcmRlcnM/P251bGx9YmFyc0luZGV4ZXMoKXtyZXR1cm4gdGhpcy5fYmFyc0luZGV4ZXN9YWN0aXZlU3RhdGUoKXtyZXR1cm4gdGhpcy5tb2RlbCgpLmFjdGl2ZVN0cmF0ZWd5U291cmNlKCkudmFsdWUoKT09PXRoaXN9c3RyYXRlZ3lPcmRlcnNQYW5lVmlldygpe3JldHVybiBudWxsfXJlcG9ydENoYW5nZWQoKXtyZXR1cm4gbmV3IFQuRGVsZWdhdGV9c3R1ZHlOYW1lKCl7cmV0dXJuIG5ldyBsLldhdGNoZWRWYWx1ZSgiIikucmVhZG9ubHkoKX19dmFyIHg9YSg5NjY0MDQpO2NvbnN0IEQ9e2FzT2JqZWN0OiEwLG9ubHlBdG9tVmFsdWVzOiEwLHZhbHVlc0FzSXNGcm9tUHJvcGVydGllczohMCxza2lwSGlkZGVuSW5wdXRzOiEwLGRvTm90U2tpcEhpZGRlbldpdGhNaWdyYXRlOiEwLHNraXBCb29sZWFuSW5wdXRzOiExLHNraXBUZXh0YXJlYUlucHV0czohMSx1c2VOYW1lQW5kR3JvdXBBc0tleTohMH0sVj1uZXcgTWFwLFA9bmV3IFNldDtmdW5jdGlvbiBBKGUsdCxhLG8saSl7Y29uc3Qgcj1lLmlkKCksbj1QLmhhcyhyKTtsZXQgbD1uPygwLHMuZW5zdXJlRGVmaW5lZCkoVi5nZXQocikpOmZ1bmN0aW9uKGUpe2NvbnN0IHQ9ZS5tZXRhSW5mbygpO3JldHVybntpbnB1dHNJbmZvTGlzdDp0LmlucHV0cyxpbnB1dERlZmF1bHRzOnQuZGVmYXVsdHMuaW5wdXRzLGlucHV0VmFsdWVzOmUuaW5wdXRzKEQpfX0oZSk7MD09PU9iamVjdC5rZXlzKGwuaW5wdXRWYWx1ZXMpLmxlbmd0aCYmKGw9Vi5nZXQocik/P2wpLG58fFYuc2V0KHIsbCksaT8ubGVuZ3RoP1AuYWRkKHIpOlAuZGVsZXRlKHIpO2NvbnN0IHU9e3pvcmRlcjplLnpvcmRlcigpLHBhbmVJZDphLnBhbmUuaWQoKX07bGV0IGM7aWYoYS5wcmljZVNjYWxlJiZhLnByaWNlU2NhbGU9PT1lLnByaWNlU2NhbGUoKSl7Yz0oMCx2LmlzU3R1ZHlTdHJhdGVneSkoZSk/ZnVuY3Rpb24oZSl7Y29uc3QgdD1lLm1vZGVsKCksYT1lLnN0YXRlKCEwKSxzPW5ldyBrKHQsYSwiIixlLm1ldGFJbmZvKCkpLG89dC5jcmVhdGVQYW5lKCk7cmV0dXJuIG8uYWRkRGF0YVNvdXJjZShzLG51bGwsITEpLHMuc2V0Wm9yZGVyKG8ubmV3U3R1ZHlaT3JkZXIoKSksdC5yZWNhbGN1bGF0ZVBhbmUobywoMCx4LnNvdXJjZUNoYW5nZUV2ZW50KShzLmlkKCkpKSx0LmZ1bGxVcGRhdGUoKSxzfShlKTpvLm1vZGVsKCkuaW5zZXJ0U3R1ZHlTdHViKCIiKTtjb25zdCB0PSgwLHMuZW5zdXJlTm90TnVsbCkoby5wYW5lRm9yU291cmNlKGUpKSxhPW8ubW9kZWwoKS5wYW5lcygpLmluZGV4T2YodCk7bmV3IE0uTWVyZ2VUb1RhcmdldFBhbmUoby5tb2RlbCgpLGMsYSxudWxsLCEwKS5yZWRvKCk7bmV3IEkuTW92ZVRvRXhpc3RpbmdQcmljZVNjYWxlVW5kb0NvbW1hbmQoby5tb2RlbCgpLGMsdCwoMCxzLmVuc3VyZU5vdE51bGwpKGUucHJpY2VTY2FsZSgpKSxudWxsKS5yZWRvKCl9KDAsYi5yZW1vdmVBbGxTb3VyY2VzV2l0aERlcGVuZGVuY2llcykoby5tb2RlbCgpLFtlXSk7Y29uc3QgZD1mdW5jdGlvbihlLHQsYSxzLG8pe2NvbnN0IGk9KDAseS5yZW1hcFN0dWR5SW5wdXRzQnlOYW1lKSh0LmlucHV0cyx0LmRlZmF1bHRzLmlucHV0cyx7aW5wdXRzSW5mb0xpc3Q6YS5pbnB1dHNJbmZvTGlzdCxpbnB1dERlZmF1bHRzOmEuaW5wdXREZWZhdWx0cyx2YWx1ZXNCeU5hbWU6YS5pbnB1dFZhbHVlc30pLHI9bmV3IEUuSW5zZXJ0U3R1ZHlDb21tYW5kKHtjaGFydE1vZGVsOmUubW9kZWwoKSxzdHVkeU1ldGFJbmZvOnQsaW5wdXRzOmkscHJvcHM6e30sYWRkQXNPdmVybGF5OiExLHBhcmVudFNvdXJjZXM6W10sdGFyZ2V0Wk9yZGVyOnMsc3R1ZHlJZDpvfSk7ci5yZWRvKCkKO2NvbnN0IG49ci5pbnNlcnRlZFN0dWR5KCk7cmV0dXJuIG4uc3R1ZHkudGhlbigodD0+e0MuRGVmZXJyZWRTdHVkaWVzLmluc3RhbmNlKGUubW9kZWwoKSkuYWRkKG8sdCl9KSksbn0obyx0LGwsdSxlLmlkKCkpO3JldHVybiBkLnN0dWR5LnRoZW4oKGU9PntpZihlLnNldFpvcmRlcih1LnpvcmRlciksIXQubGlua2VkVG9TZXJpZXMpe2NvbnN0IHQ9by5tb2RlbCgpLnBhbmVzKCkuaW5kZXhPZihhLnBhbmUpO2lmKG5ldyBNLk1lcmdlVG9UYXJnZXRQYW5lKG8ubW9kZWwoKSxlLHQsbnVsbCwhMCkucmVkbygpLG51bGwhPT1hLnByaWNlU2NhbGUpe25ldyBJLk1vdmVUb0V4aXN0aW5nUHJpY2VTY2FsZVVuZG9Db21tYW5kKG8ubW9kZWwoKSxlLGEucGFuZSxhLnByaWNlU2NhbGUsbnVsbCkucmVkbygpfWVsc2V7bmV3IEkuTW92ZVRvTmV3UHJpY2VTY2FsZVVuZG9Db21tYW5kKG8ubW9kZWwoKSxlLGEucGFuZSwib3ZlcmxheSIsbnVsbCkucmVkbygpfX1lLnNldEVycm9yQ29tcGlsYXRpb24oaT8ubGVuZ3RoP2k6bnVsbCksYyYmby5tb2RlbCgpLnJlbW92ZVNvdXJjZShjKX0pKSxkfXZhciBSPWEoODgxOTIpLEI9YSgxOTg5MDEpO2NvbnN0IE49bmV3IGQuVHJhbnNsYXRlZFN0cmluZygidXBkYXRlIHt0aXRsZX0gc2NyaXB0IixvLnQobnVsbCx2b2lkIDAsYSg0MTAxNDgpKSk7ZnVuY3Rpb24gRihlLHQpe2lmKG51bGw9PT1lKXJldHVybiBudWxsO2NvbnN0IGE9dC5wcmljZVNjYWxlUG9zaXRpb24oZSk7cmV0dXJue2lkOmUuaWQoKSxwb3NpdGlvbjphLHByaWNlU2NhbGVJbmRleDp0LnByaWNlU2NhbGVJbmRleChlLGEpfX1jb25zdCBXPW5ldyBNYXAsTz0vXmRlc2NyaXB0aW9uJC8sSD0vXnNob3J0RGVzY3JpcHRpb24kLyxMPS9eYmFuZHNcLlxkK1wubmFtZSQvLFU9L15maWxsZWRBcmVhc1wuXGQrXC50aXRsZSQvLEc9L15zdHlsZXNcLnBsb3RfXGQrXC50aXRsZSQvLHo9L15vaGxjUGxvdHNcLnBsb3RiYXJfXGQrXC50aXRsZSQvLHE9L15vaGxjUGxvdHNcLnBsb3RjYW5kbGVfXGQrXC50aXRsZSQvO2Z1bmN0aW9uICQoZSl7cmV0dXJuW08sSCxMLFUsRyx6LHFdLnNvbWUoKHQ9PnQudGVzdChlKSkpfWZ1bmN0aW9uIGooZSx0KXtjb25zdCBhPSgwLGguZGVmYXVsdCkodCxlKTtkZWxldGUgYS5waW5lLGRlbGV0ZSBhLmRlZmF1bHRzPy5pbnB1dHMsZGVsZXRlIGEuaW5wdXRzLCgwLEIucmVtb3ZlRW1wdHlPYmplY3RzRnJvbVJlY29yZElucGxhY2UpKGEpO3JldHVybigwLEIuY29sbGVjdEFsbFBhdGhzKShhKS5ldmVyeSgkKX1mdW5jdGlvbiBRKGUsdCxhKXthLmZvckVhY2goKChhLHMpPT57Y29uc3Qgbz1wYXJzZUludChhLnNwbGl0KCIkIilbMV0/PyItMSIpO28+PTAmJm88ZS5wbG90cy5sZW5ndGgmJnQucHJvcGVydGllcygpLmNoaWxkcygpLmlucHV0cy5jaGlsZChzKT8uc2V0VmFsdWUoYSl9KSl9ZnVuY3Rpb24gWChlKXtjb25zdCB0PWUuaW5wdXRzKHthc09iamVjdDohMH0pLGE9T2JqZWN0LmtleXModCkuZmlsdGVyKChlPT4oMCxnLmlzRXh0ZW5kZWRJbnB1dFNvdXJjZSkodFtlXSkpKS5tYXAoKGU9PltlLCgwLGcuZ2V0SW5wdXRWYWx1ZSkodFtlXSldKSk7cmV0dXJuIG5ldyBNYXAoYSl9ZnVuY3Rpb24gSyhlKXtyZXR1cm4gZS5jaGlsZHJlbigpLm1hcCgoZT0+KHtlbnRpdHlJZDplLmlkKCksaW5wdXRzOlgoZSl9KSkpfWZ1bmN0aW9uIFooZSx0KXtjb25zdCBhPXt9LHM9ZS5zdHVkaWVzV1YoKS5zcGF3bigpLG89KCk9PntlLm9uRGVzdHJveWVkKCkudW5zdWJzY3JpYmVBbGwoYSkscy5kZXN0cm95KCl9O3JldHVybiBuZXcgUHJvbWlzZSgoKGkscik9PntlLm9uRGVzdHJveWVkKCkuc3Vic2NyaWJlKGEsKCgpPT57bygpLHIoKX0pKSxzLnN1YnNjcmliZSgoZT0+e2NvbnN0IGE9ZS5maW5kKChlPT5lLmlkKCk9PT10KSk7YSYmKG8oKSxpKGEpKX0pKX0pKX1jbGFzcyBKIGV4dGVuZHMgZi5VbmRvQ29tbWFuZHtjb25zdHJ1Y3RvcihlLHQsYSxzKXtjb25zdCBvPWEuc3RhdGUoKTtpZihzdXBlcihOLmZvcm1hdCh7dGl0bGU6by5zaG9ydERlc2NyaXB0aW9ufHxvLmRlc2NyaXB0aW9ufHwiIn0pKSx0aGlzLl9zdGFydFVuZG9Qcm9taXNlPSgwLG0uY3JlYXRlRGVmZXJyZWRQcm9taXNlKSgpLHRoaXMuX3N0YXJ0UmVkb1Byb21pc2U9KDAsbS5jcmVhdGVEZWZlcnJlZFByb21pc2UpKCksdGhpcy5fdXBkYXRlZFN0dWRpZXNJZHM9W10sdGhpcy5fcHJldlNjcmlwdHNTdGF0ZXM9W10sdGhpcy5fbmV3U2NyaXB0c1N0YXRlcz1bXSx0aGlzLl9jaGlsZFN0dWRlc1NvdXJjZXNJbnB1dHM9bmV3IE1hcCx0aGlzLl9jaGFydE1vZGVsPWUsdGhpcy5fY29tcGlsZUVycm9ycz1zLHRoaXMuX25ld01ldGFJbmZvPWEsInNjcmlwdElkUGFydCJpbiB0KXtjb25zdCBlPWZ1bmN0aW9uKGUsdCxhLHMpe2NvbnN0IG89W10saT10LmRhdGFTb3VyY2VzKCk7Zm9yKGxldCB0PWkubGVuZ3RoLTE7dD49MDt0LS0pe2NvbnN0IHI9aVt0XTtpZihzJiZyLmlkKCkhPT1zKWNvbnRpbnVlO2lmKCEoMCx2LmlzU3R1ZHkpKHIpKWNvbnRpbnVlO2NvbnN0IG49ci5tZXRhSW5mbygpO24ucGluZSYmbi5zY3JpcHRJZFBhcnQ9PT1lJiYoImFsbCI9PT1hfHxhJiZuLnBpbmUudmVyc2lvbj09PWEudG9TdHJpbmcoKSkmJm8ucHVzaChyKX1yZXR1cm4gb30odC5zY3JpcHRJZFBhcnQsdGhpcy5fY2hhcnRNb2RlbCx0LnNjcmlwdFZlcnNpb25Ub1VwZGF0ZSk7dGhpcy5fdXBkYXRlZFN0dWRpZXNJZHM9ZS5tYXAoKGU9PmUuaWQoKSkpLHRoaXMuX3NhdmVDaGlsZFN0dWRpZXNJbnB1dHMoZSl9ZWxzZSB0aGlzLl91cGRhdGVkU3R1ZGllc0lkcz1bdC5zdHVkeS5pZCgpXX11cGRhdGVTY3JpcHRzSWRzKCl7cmV0dXJuIHRoaXMuX3VwZGF0ZWRTdHVkaWVzSWRzfWFzeW5jIHJlZG8oKXt0aGlzLl9zdGFydFJlZG9Qcm9taXNlLnJlc29sdmUoKSx0aGlzLl9zdGFydFVuZG9Qcm9taXNlPSgwLG0uY3JlYXRlRGVmZXJyZWRQcm9taXNlKSgpO2NvbnN0IGU9dGhpcy5fZGV0YWNoTGluZVRvb2xzKCk7dHJ5e2lmKDA9PT10aGlzLl9uZXdTY3JpcHRzU3RhdGVzLmxlbmd0aCl7CmlmKCFhd2FpdCB0aGlzLl9yZXBsYWNlU291cmNlc0FuZFNhdmVTdGF0ZXMoKSlyZXR1cm59ZWxzZXtmb3IoY29uc3RbLGVdb2YgdGhpcy5fY2hpbGRTdHVkZXNTb3VyY2VzSW5wdXRzKXRoaXMuX3Jlc2V0Q2hpbGRJbnB1dHNTb3VyY2VUb0RlZmF1bHQoZSk7aWYoIWF3YWl0IFByb21pc2UucmFjZShbdGhpcy5fcmVzdG9yZVN0YXRlcyh0aGlzLl9uZXdTY3JpcHRzU3RhdGVzKSx0aGlzLl9zdGFydFVuZG9Qcm9taXNlLnByb21pc2VdKSlyZXR1cm59Zm9yKGNvbnN0W2UsdF1vZiB0aGlzLl9jaGlsZFN0dWRlc1NvdXJjZXNJbnB1dHMpe2NvbnN0IGE9KDAscy5lbnN1cmVOb3ROdWxsKSh0aGlzLl9jaGFydE1vZGVsLmRhdGFTb3VyY2VGb3JJZChlKSksbz1lPT57Y29uc3QgYT1lLm1ldGFJbmZvKCk7Zm9yKGNvbnN0e2VudGl0eUlkOmUsaW5wdXRzOnN9b2YgdCl7Y29uc3QgdD10aGlzLl9jaGFydE1vZGVsLmRhdGFTb3VyY2VGb3JJZChlKTt0JiYoYSYmUShhLHQscyksdC5zdGFydCghMCwhMSwyKSl9fTtpZigoMCx2LmlzU3R1ZHkpKGEpKW8oYSk7ZWxzZXtaKHRoaXMuX2NoYXJ0TW9kZWwsZSkudGhlbihvKX19fWZpbmFsbHl7dGhpcy5fYXR0YWNoTGluZVRvb2xzKGUpfX1hc3luYyB1bmRvKCl7dGhpcy5fc3RhcnRVbmRvUHJvbWlzZS5yZXNvbHZlKCksdGhpcy5fc3RhcnRSZWRvUHJvbWlzZT0oMCxtLmNyZWF0ZURlZmVycmVkUHJvbWlzZSkoKTtjb25zdCBlPXRoaXMuX2RldGFjaExpbmVUb29scygpO3RyeXtmb3IoY29uc3RbLGVdb2YgdGhpcy5fY2hpbGRTdHVkZXNTb3VyY2VzSW5wdXRzKXRoaXMuX3Jlc2V0Q2hpbGRJbnB1dHNTb3VyY2VUb0RlZmF1bHQoZSk7aWYoIWF3YWl0IFByb21pc2UucmFjZShbUHJvbWlzZS5hbGwodGhpcy5fcmVzdG9yZVN0YXRlcyh0aGlzLl9wcmV2U2NyaXB0c1N0YXRlcykpLHRoaXMuX3N0YXJ0UmVkb1Byb21pc2UucHJvbWlzZV0pKXJldHVybjtmb3IoY29uc3RbLGVdb2YgdGhpcy5fY2hpbGRTdHVkZXNTb3VyY2VzSW5wdXRzKWZvcihjb25zdCB0IG9mIGUpe2NvbnN0IGU9dGhpcy5fY2hhcnRNb2RlbC5kYXRhU291cmNlRm9ySWQodC5lbnRpdHlJZCk7aWYobnVsbCE9PWUpZm9yKGNvbnN0W2Esc11vZiB0LmlucHV0cyllLnByb3BlcnRpZXMoKS5jaGlsZHMoKS5pbnB1dHMuY2hpbGRzKClbYV0uc2V0VmFsdWUocyl9fWZpbmFsbHl7dGhpcy5fYXR0YWNoTGluZVRvb2xzKGUpfX1hc3luYyBfcmVwbGFjZVNvdXJjZXNBbmRTYXZlU3RhdGVzKCl7Y29uc3QgZT10aGlzLl91cGRhdGVkU3R1ZGllc0lkcy5tYXAoKGU9PnRoaXMuX2NoYXJ0TW9kZWwuZGF0YVNvdXJjZUZvcklkKGUpKSk7dGhpcy5fcHJldlNjcmlwdHNTdGF0ZXM9dGhpcy5fZ2V0U2NyaXB0c1N0YXRlcyhlKTtjb25zdCB0PVtdO2ZvcihsZXQgYT1lLmxlbmd0aC0xO2E+PTA7YS0tKXtjb25zdCBvPWVbYV0saT1vLmlkKCkscj0oMCxzLmVuc3VyZU5vdE51bGwpKHRoaXMuX2NoYXJ0TW9kZWwucGFuZUZvclNvdXJjZShvKSksbj1yLmlzT3ZlcmxheShvKT9udWxsOm8ucHJpY2VTY2FsZSgpLGw9by5vcmlnaW5hbE1ldGFJbmZvKCkuc3RhdGUoKSx1PXRoaXMuX25ld01ldGFJbmZvLnN0YXRlKCk7dGhpcy5fc2F2ZUNoaWxkU291cmNlSW5wdXRzQmVmb3JlUmVjb21waWxhdGUoaSxsLHUpO2NvbnN0IGM9dGhpcy5fY2hpbGRTdHVkZXNTb3VyY2VzSW5wdXRzLmdldChpKTtjJiZ0aGlzLl9yZXNldENoaWxkSW5wdXRzU291cmNlVG9EZWZhdWx0KGMpO2NvbnN0IGQ9QShvLHRoaXMuX25ld01ldGFJbmZvLHtwYW5lOnIscHJpY2VTY2FsZTpufSx0aGlzLl9jaGFydE1vZGVsLnVuZG9Nb2RlbCgpLHRoaXMuX2NvbXBpbGVFcnJvcnMpO2lmKHQucHVzaChkLnN0dWR5KSxqKGwsdSkpe2NvbnN0IGU9by5wcm9wZXJ0aWVzKCkuc3RhdGUoKTtkZWxldGUgZS5pbnB1dHMsZC5zdHVkeS50aGVuKCh0PT57dC5wcm9wZXJ0aWVzKCkubWVyZ2VBbmRGaXJlKGUpfSkpfX1Qcm9taXNlLmFsbCh0KS50aGVuKChlPT57dGhpcy5fbmV3U2NyaXB0c1N0YXRlcz10aGlzLl9nZXRTY3JpcHRzU3RhdGVzKGUpfSkpO2NvbnN0IGE9YXdhaXQgUHJvbWlzZS5yYWNlKFtQcm9taXNlLmFsbCh0KSx0aGlzLl9zdGFydFVuZG9Qcm9taXNlLnByb21pc2VdKTtyZXR1cm4gYXx8bnVsbH1fcmVzdG9yZVN0YXRlcyhlKXtjb25zdCB0PVtdO2Zvcihjb25zdCBhIG9mIGUpdGhpcy5fcmVzdG9yZVNjcmlwdEFmdGVyUmVjb21waWxhdGlvbihhKSx0LnB1c2godGhpcy5fY2hhcnRNb2RlbC53YWl0Rm9yU3R1ZHkoYS5lbnRpdHlJZCkpO3JldHVybiB0fV9nZXRTY3JpcHRzU3RhdGVzKGUpe2NvbnN0IHQ9W10sYT10aGlzLl9jaGFydE1vZGVsLnBhbmVzKCkubWFwKCgoZSx0KT0+KHtzdGF0ZTplLnN0YXRlKHtpbmNsdWRlU291cmNlczohMX0pLGluZGV4OnQsaWQ6ZS5pZCgpfSkpKTtmb3IobGV0IG89ZS5sZW5ndGgtMTtvPj0wO28tLSl7Y29uc3QgaT1lW29dLHI9KDAscy5lbnN1cmVOb3ROdWxsKSh0aGlzLl9jaGFydE1vZGVsLnBhbmVGb3JTb3VyY2UoaSkpLG49dGhpcy5fY2hhcnRNb2RlbC5wYW5lcygpLmluZGV4T2YociksbD1GKGkucHJpY2VTY2FsZSgpLHIpLHU9aS5zdGF0ZSghMSk7dC5wdXNoKHtlbnRpdHlJZDppLmlkKCksc3RhdGU6dSxwYW5lU3RhdGU6YVtuXSxwcmljZVNjYWxlUG9zaXRpb25JZHM6bH0pfXJldHVybiB0LnNvcnQoKChlLHQpPT5lLnBhbmVTdGF0ZS5pbmRleC10LnBhbmVTdGF0ZS5pbmRleCkpLHR9X3Jlc3RvcmVTY3JpcHRBZnRlclJlY29tcGlsYXRpb24oZSl7Y29uc3R7ZW50aXR5SWQ6dCxwYW5lU3RhdGU6YSxzdGF0ZTpvLHByaWNlU2NhbGVQb3NpdGlvbklkczppfT1lO2lmKG51bGw9PT1vfHwoMCxTLmlzU3R1ZHlTdHViRGVzY3JpcHRvcikobykpcmV0dXJuO2NvbnN0IHI9KDAscy5lbnN1cmVOb3ROdWxsKSh0aGlzLl9jaGFydE1vZGVsLmRhdGFTb3VyY2VGb3JJZCh0KSksbj0oMCxzLmVuc3VyZU5vdE51bGwpKHRoaXMuX2NoYXJ0TW9kZWwucGFuZUZvclNvdXJjZShyKSksbD1uZXcgdy5SZW1vdmVTb3VyY2VzVW5kb0NvbW1hbmQodGhpcy5fY2hhcnRNb2RlbCxbcl0sbmV3IGQuVHJhbnNsYXRlZFN0cmluZygiIiwiIikpO2wucmVkbygpLApsLnJlbW92ZWRJZHMoKS5mb3JFYWNoKChlPT50aGlzLl9jaGFydE1vZGVsLnJlc2V0V2FpdEZvclN0dWR5KGUpKSk7Y29uc3QgdT17em9yZGVyOnIuem9yZGVyKCkscGFuZUlkOm4uaWQoKX07bGV0IGM7aWYobnVsbD09PXRoaXMuX2NoYXJ0TW9kZWwucGFuZUZvcklkKGEuaWQpKXRoaXMuX2NoYXJ0TW9kZWwuY3JlYXRlUGFuZShhLmluZGV4LHZvaWQgMCxhLmlkKSx0aGlzLl9jaGFydE1vZGVsLnBhbmVGb3JJZChhLmlkKT8ucmVzdG9yZVN0YXRlKHtzdGF0ZTp7Li4uYS5zdGF0ZSxzb3VyY2VzOltvXX0sd2l0aERhdGE6ITEsdmVyc2lvbjp0aGlzLl9jaGFydE1vZGVsLnZlcnNpb24oKX0pLGM9KDAscy5lbnN1cmVOb3ROdWxsKSh0aGlzLl9jaGFydE1vZGVsLmRhdGFTb3VyY2VGb3JJZCh0KSk7ZWxzZXtjb25zdCBlPXRoaXMuX2NoYXJ0TW9kZWwucGFuZXMoKS5pbmRleE9mKCgwLHMuZW5zdXJlTm90TnVsbCkodGhpcy5fY2hhcnRNb2RlbC5wYW5lRm9ySWQoYS5pZCkpKTtjPSgwLHMuZW5zdXJlTm90TnVsbCkodGhpcy5fY2hhcnRNb2RlbC5yZXN0b3JlU291cmNlKCExLGUsbnVsbCxvLGkpKSxjLnNldFpvcmRlcih1LnpvcmRlcil9Vy5oYXModCkmJlcuc2V0KGMuaWQoKSwoMCxzLmVuc3VyZURlZmluZWQpKFcuZ2V0KHQpKSl9X3NhdmVDaGlsZFNvdXJjZUlucHV0c0JlZm9yZVJlY29tcGlsYXRlKGUsdCxhKXtjb25zdCBvPXQucGxvdHMuZmlsdGVyKChlPT5fLlN0dWR5TWV0YUluZm8uY2FuUGxvdEJlU291cmNlT2ZDaGlsZFN0dWR5KGUudHlwZSkpKSxpPWEucGxvdHMuZmlsdGVyKChlPT5fLlN0dWR5TWV0YUluZm8uY2FuUGxvdEJlU291cmNlT2ZDaGlsZFN0dWR5KGUudHlwZSkpKTtpZighKDAscC5kZWZhdWx0KShvLGkpKXtjb25zdCB0PSgwLHMuZW5zdXJlTm90TnVsbCkodGhpcy5fY2hhcnRNb2RlbC5kYXRhU291cmNlRm9ySWQoZSkpLGE9KDAsYi5jbG9zZVNvdXJjZXNTZXQpKHRoaXMuX2NoYXJ0TW9kZWwsW3RdLCEwKTtmb3IoY29uc3QgZSBvZiBvKWkuZmluZCgodD0+dD09PWUpKXx8YS5maWx0ZXIodi5pc1N0dWR5KS5mb3JFYWNoKChlPT57Y29uc3QgYT1lLmlucHV0cygpLHM9Xy5TdHVkeU1ldGFJbmZvLmdldFNvdXJjZUlucHV0SWRzKGUubWV0YUluZm8oKSksbz17ZW50aXR5SWQ6ZS5pZCgpLGlucHV0czpuZXcgTWFwfTtmb3IoY29uc3QgZSBvZiBzKXtjb25zdCBzPWFbZV07aWYoKDAsZy5pc0V4dGVuZGVkSW5wdXQpKHMpJiYoMCxnLmlzRXh0ZW5kZWRJbnB1dFNvdXJjZSkocykpe2NvbnN0IGE9KDAsZy5nZXRJbnB1dFZhbHVlKShzKTstMSE9PWEuaW5kZXhPZih0LmlkKCkpJiZvLmlucHV0cy5zZXQoZSxhKX19aWYoby5pbnB1dHMuc2l6ZSl7bGV0IGU9dGhpcy5fY2hpbGRTdHVkZXNTb3VyY2VzSW5wdXRzLmdldCh0LmlkKCkpO2V8fChlPVtdLHRoaXMuX2NoaWxkU3R1ZGVzU291cmNlc0lucHV0cy5zZXQodC5pZCgpLGUpKSxlLnB1c2gobyl9fSkpfX1fcmVzZXRDaGlsZElucHV0c1NvdXJjZVRvRGVmYXVsdChlKXtmb3IoY29uc3QgdCBvZiBlKXtjb25zdCBlPSgwLHMuZW5zdXJlTm90TnVsbCkodGhpcy5fY2hhcnRNb2RlbC5kYXRhU291cmNlRm9ySWQodC5lbnRpdHlJZCkpO2Uuc3RvcCghMSwyKTtmb3IoY29uc3RbYV1vZiB0LmlucHV0cyl7Y29uc3QgdD0oMCxzLmVuc3VyZURlZmluZWQpKGUubWV0YUluZm8oKS5kZWZhdWx0cy5pbnB1dHM/LlthXSk7ZS5wcm9wZXJ0aWVzKCkuY2hpbGRzKCkuaW5wdXRzLmNoaWxkcygpW2FdLnNldFZhbHVlKHQpfX19X2RldGFjaExpbmVUb29scygpe3JldHVybiB0aGlzLl91cGRhdGVkU3R1ZGllc0lkcy5yZWR1Y2UoKChlLHQpPT57Y29uc3QgYT0oMCxzLmVuc3VyZU5vdE51bGwpKHRoaXMuX2NoYXJ0TW9kZWwuZGF0YVNvdXJjZUZvcklkKHQpKSxvPSgwLHMuZW5zdXJlTm90TnVsbCkodGhpcy5fY2hhcnRNb2RlbC5wYW5lRm9yU291cmNlKGEpKSxpPW8uZGF0YVNvdXJjZXMoKS5maWx0ZXIoUi5pc0xpbmVUb29sKS5maWx0ZXIoKGU9PmUub3duZXJTb3VyY2UoKT8uaWQoKT09PWEuaWQoKSkpO3JldHVybiBlLnNldChhLmlkKCksaSksaS5mb3JFYWNoKChlPT5vLnJlbW92ZURhdGFTb3VyY2UoZSkpKSxlfSksbmV3IE1hcCl9X2F0dGFjaExpbmVUb29scyhlKXtjb25zdCB0PW5ldyBTZXQ7ZS5mb3JFYWNoKCgoZSxhKT0+e2NvbnN0IG89dGhpcy5fY2hhcnRNb2RlbC5kYXRhU291cmNlRm9ySWQoYSk7aWYobnVsbD09PW8pcmV0dXJuIHZvaWQgdC5hZGQoYSk7Y29uc3QgaT0oMCxzLmVuc3VyZU5vdE51bGwpKHRoaXMuX2NoYXJ0TW9kZWwucGFuZUZvclNvdXJjZShvKSk7ZS5mb3JFYWNoKChlPT57ZS5zZXRPd25lclNvdXJjZShvKSxpLmFkZERhdGFTb3VyY2UoZSxvLnByaWNlU2NhbGUoKSwhMCl9KSl9KSksdC5mb3JFYWNoKCh0PT57Y29uc3QgYT1lLmdldCh0KTthJiZhLmZvckVhY2goKGU9PntlLmRlc3Ryb3k/LigpfSkpfSkpfV9zYXZlQ2hpbGRTdHVkaWVzSW5wdXRzKGUpe3RoaXMuX2NoaWxkU3R1ZGVzU291cmNlc0lucHV0cz1uZXcgTWFwKGUubWFwKChlPT5bZS5pZCgpLEsoZSldKSkpfX12YXIgWT1hKDQxMzQxKSxlZT1hKDk0Mzk1KSx0ZT1hKDM0MjIwKSxhZT1hKDYwMjM4Nik7Y29uc3Qgc2U9bmV3IGQuVHJhbnNsYXRlZFN0cmluZygidXBkYXRlIGluZGljYXRvciB0byBsYXRlc3QgdmVyc2lvbiIsby50KG51bGwsdm9pZCAwLGEoNzE4NzU3KSkpLG9lPSgwLHIuZ2V0TG9nZ2VyKSgiQ2hhcnQuUGluZVNvdXJjZUNvZGUiKTtmdW5jdGlvbiBpZSgpe3JldHVybiB3aW5kb3cuVHJhZGluZ1ZpZXcuYm90dG9tV2lkZ2V0QmFyfWZ1bmN0aW9uIHJlKGUpe3JldHVybiBfLlN0dWR5TWV0YUluZm8uaGFzUHViU3VmZml4KGUpfHxfLlN0dWR5TWV0YUluZm8uaGFzU3RkU3VmZml4KGUpfWNsYXNzIG5le2NvbnN0cnVjdG9yKGUpe3RoaXMuX2lzQWJsZVNob3dTb3VyY2VDb2RlPW5ldyBsLldhdGNoZWRWYWx1ZSghMSksdGhpcy5fcGluZVNvdXJjZUVkaXRvclN0YXR1cz1uZXcgbC5XYXRjaGVkVmFsdWUoMCksdGhpcy5fZ2V0U2NyaXB0SW5mbz1udWxsLHRoaXMuX2Rlc3Ryb3llZD0hMSwKdGhpcy5fdXBkYXRlQWJpbGl0eVNob3dTb3VyY2VDb2RlPWFzeW5jKCk9PntpZighd2luZG93LndpZGdldGJhcilyZXR1cm47Y29uc3QgZT10aGlzLl9nZXRTb3VyY2VDb2RlRGF0YSgibGFzdCIpO2lmKG51bGw9PT1lKXJldHVybjtjb25zdHtzY3JpcHRJZFBhcnQ6dCxwaW5lVmVyc2lvbjphfT1lO3RyeXtjb25zdCBlPWF3YWl0KDAsbi5pc0F1dGhUb0dldFBpbmVTb3VyY2VDb2RlKSh0LGEpO2lmKHRoaXMuX2Rlc3Ryb3llZClyZXR1cm47dGhpcy5faXNBYmxlU2hvd1NvdXJjZUNvZGUuc2V0VmFsdWUoZSYmd2luZG93LndpZGdldGJhci5pc1Zpc2libGUoKSl9Y2F0Y2goZSl7b2UubG9nRXJyb3IoIkZhaWxlZCBpc0F1dGhUb0dldFBpbmVTb3VyY2VDb2RlLCByZWFzb246ICIrZSl9fSx0aGlzLl9waW5lU2NyaXB0PWUsd2luZG93LndpZGdldGJhcj8udmlzaWJsZSgpLnN1YnNjcmliZSh0aGlzLl91cGRhdGVBYmlsaXR5U2hvd1NvdXJjZUNvZGUse2NhbGxXaXRoTGFzdDohMH0pLHRoaXMuX2lzQWJsZVNob3dTb3VyY2VDb2RlLnN1YnNjcmliZSh0aGlzLl91cGRhdGVQaW5lU291cmNlRWRpdG9yU3RhdHVzLmJpbmQodGhpcykpLHRoaXMuX2luaXRPcGVuZWRTY3JpcHRzKCl9ZGVzdHJveSgpe3dpbmRvdy53aWRnZXRiYXI/LnZpc2libGUoKS51bnN1YnNjcmliZSh0aGlzLl91cGRhdGVBYmlsaXR5U2hvd1NvdXJjZUNvZGUpLHRoaXMuX3BpbmVTb3VyY2VFZGl0b3JTdGF0dXMuZGVzdHJveSgpLHRoaXMuX29wZW5lZFNjcmlwdHM/LmRlc3Ryb3koKSx0aGlzLl9kZXN0cm95ZWQ9ITB9aXNBYmxlU2hvd1NvdXJjZUNvZGUoKXtyZXR1cm4gdGhpcy5faXNBYmxlU2hvd1NvdXJjZUNvZGUucmVhZG9ubHkoKX1zY3JpcHQoKXtyZXR1cm4gdGhpcy5fcGluZVNjcmlwdH10aXRsZSgpe3JldHVybiB0aGlzLl9waW5lU2NyaXB0LnRpdGxlKGVlLlRpdGxlRGlzcGxheVRhcmdldC5TdGF0dXNMaW5lKX1tZXRhSW5mbygpe3JldHVybiB0aGlzLl9waW5lU2NyaXB0Lm1ldGFJbmZvKCl9c2NyaXB0SWRQYXJ0KCl7Y29uc3QgZT10aGlzLl9nZXRTb3VyY2VDb2RlRGF0YSgiIik7cmV0dXJuIGU/LnNjcmlwdElkUGFydD8/bnVsbH1hc3luYyBzaG93UGluZVNvdXJjZUNvZGUoZSl7aWYoKDAscy5hc3NlcnQpKHRoaXMuX2lzQWJsZVNob3dTb3VyY2VDb2RlLnZhbHVlKCksIlNvdXJjZSBjb2RlIG5vdCBhdmFpbGFibGUhIChDaGVjayBhYmlsaXR5IHNob3cgc291cmNlIGNvZGUgYmVmb3JlIC0gY2FsbCBjYW5TaG93U291cmNlQ29kZSgpKSIpLCF3aW5kb3cud2lkZ2V0YmFyKXJldHVybjtjb25zdCB0PXRoaXMuX2dldFNvdXJjZUNvZGVEYXRhKCIiKTtudWxsIT09dCYmYXdhaXQoMCx0ZS5hY3RpdmF0ZVBpbmVFZGl0b3JEaWFsb2cpKHtzY3JpcHRJbmZvOntzY3JpcHQ6e3NjcmlwdElkUGFydDp0LnNjcmlwdElkUGFydCx2ZXJzaW9uOnQucGluZVZlcnNpb259LHBhcmFtczplfSxvcGVuU291cmNlSWQ6ImNoYXJ0X2xlZ2VuZCJ9KX1hc3luYyByZXF1ZXN0VXBkYXRlSW5mb3JtYXRpb24oKXtpZighd2luZG93LmlzX2F1dGhlbnRpY2F0ZWQpcmV0dXJuIG51bGw7Y29uc3QgZT10aGlzLl9nZXRTb3VyY2VDb2RlRGF0YSgiIik7aWYoIWUpcmV0dXJuIG51bGw7dHJ5e2NvbnN0e3NjcmlwdElkUGFydDp0LHBpbmVWZXJzaW9uOmF9PWU7aWYoIXJlKHQpKXJldHVybiBudWxsO2NvbnN0IHM9YXdhaXQoMCxuLmdldExhc3RWZXJzaW9uKSh0KTtyZXR1cm4gcz97Y3VycmVudFZlcnNpb246dS5WZXJzaW9uLnBhcnNlKGEpLGxhc3RWZXJzaW9uOnUuVmVyc2lvbi5wYXJzZShzLnZlcnNpb24pfTpudWxsfWNhdGNoe3JldHVybiBudWxsfX1hc3luYyByZXF1ZXN0U2NyaXB0SW5mbygpe2lmKCF3aW5kb3cuaXNfYXV0aGVudGljYXRlZClyZXR1cm4gbnVsbDtjb25zdCBlPXRoaXMuc2NyaXB0SWRQYXJ0KCk7aWYoIWUpcmV0dXJuIG51bGw7aWYoIV8uU3R1ZHlNZXRhSW5mby5oYXNQdWJTdWZmaXgoZSkpcmV0dXJuIG51bGw7aWYobmUuX3BpbmVQdWJTY3JpcHRJbmZvQ2FjaGUuaGFzKGUpKXJldHVybiBuZS5fcGluZVB1YlNjcmlwdEluZm9DYWNoZS5nZXQoZSk/P251bGw7Y29uc3QgdD1hd2FpdCgwLFkucmVxdWVzdFNjcmlwdEluZm8pKGUpO3JldHVybiBuZS5fcGluZVB1YlNjcmlwdEluZm9DYWNoZS5zZXQoZSx0KSx0fWFzeW5jIHVwZGF0ZVRvVmVyc2lvbihlLHQsYSl7Y29uc3Qgcz10aGlzLl9nZXRTb3VyY2VDb2RlRGF0YSgiIik7aWYoIXMpcmV0dXJuOygwLGkudHJhY2tFdmVudCkoIkdVSSIsIlVwZGF0ZSBzdHVkeSB2ZXJzaW9uIik7Y29uc3Qgbz1hd2FpdCgwLGMuc3R1ZHlNZXRhSW5mb1JlcG9zaXRvcnkpKCkuZmluZEJ5SWQoe3R5cGU6InBpbmUiLHBpbmVJZDpzLnNjcmlwdElkUGFydCxwaW5lVmVyc2lvbjp0LnRvU3RyaW5nKCl9KTtpZighdGhpcy5fZGVzdHJveWVkKXtjb25zdCB0PWE/ZS5hbGxVbmRvTW9kZWxzKCk6W2VdLHM9YT97c2NyaXB0SWRQYXJ0Om8uc2NyaXB0SWRQYXJ0LHNjcmlwdFZlcnNpb25Ub1VwZGF0ZToiYWxsIn06e3N0dWR5OnRoaXMuX3BpbmVTY3JpcHR9LGk9dC5tYXAoKGU9Pm5ldyBKKGUubW9kZWwoKSxzLG8pKSkuZmlsdGVyKChlPT5lLnVwZGF0ZVNjcmlwdHNJZHMoKS5sZW5ndGg+MCkpLHI9dFswXS51bmRvSGlzdG9yeSgpO2lmKGkubGVuZ3RoKXtyLmJlZ2luVW5kb01hY3JvKHNlKTtmb3IoY29uc3QgZSBvZiBpKXIucHVzaFVuZG9Db21tYW5kKGUpO3IuZW5kVW5kb01hY3JvKCl9fX1waW5lU291cmNlRWRpdG9yU3RhdHVzKCl7cmV0dXJuIHRoaXMuX3BpbmVTb3VyY2VFZGl0b3JTdGF0dXN9YXN5bmMgX2luaXRPcGVuZWRTY3JpcHRzKCl7Y29uc3QgZT1hd2FpdCgwLGFlLmdldE9wZW5lZFBpbmVTY3JpcHRzKSgpO3RoaXMuX2Rlc3Ryb3llZHx8KHRoaXMuX2dldFNjcmlwdEluZm89ZS5nZXRTY3JpcHRJbmZvLmJpbmQoZSksdGhpcy5fb3BlbmVkU2NyaXB0cz1lLnNjcmlwdHMoKS5zcGF3bigpLHRoaXMuX29wZW5lZFNjcmlwdHM/LnN1YnNjcmliZSh0aGlzLl91cGRhdGVQaW5lU291cmNlRWRpdG9yU3RhdHVzLmJpbmQodGhpcykse2NhbGxXaXRoTGFzdDohMH0pKX0KX3VwZGF0ZVBpbmVTb3VyY2VFZGl0b3JTdGF0dXMoKXtjb25zdCBlPXRoaXMuX3BpbmVTY3JpcHQubWV0YUluZm8oKTtpZighdGhpcy5faXNBYmxlU2hvd1NvdXJjZUNvZGUudmFsdWUoKXx8bnVsbD09PWV8fG51bGw9PT10aGlzLl9nZXRTY3JpcHRJbmZvKXJldHVybiB2b2lkIHRoaXMuX3BpbmVTb3VyY2VFZGl0b3JTdGF0dXMuc2V0VmFsdWUoMCk7Y29uc3QgdD10aGlzLl9nZXRTY3JpcHRJbmZvKHtzY3JpcHRJZFBhcnQ6ZS5zY3JpcHRJZFBhcnQsc2NyaXB0VmVyc2lvbjplLnBpbmU/LnZlcnNpb259KTtsZXQgYT0wO251bGwhPT10JiYodC5kaWFsb2dDb3VudD4wP2E9MTp0LmRldGFjaENvdW50PjA/YT0yOnQuYm90dG9tQ291bnQ+MCYmKGE9MykpLHRoaXMuX3BpbmVTb3VyY2VFZGl0b3JTdGF0dXMuc2V0VmFsdWUoYSl9fW5lLl9waW5lUHViU2NyaXB0SW5mb0NhY2hlPW5ldyBNYXB9LDIyMzA4MChlKXtlLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMTggMTgiIHdpZHRoPSIxOCIgaGVpZ2h0PSIxOCIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBkPSJNOCA0SDVhMSAxIDAgMCAwLTEgMXY4YTEgMSAwIDAgMCAxIDFoOGExIDEgMCAwIDAgMS0xdi0zaDF2M2wtLjAxLjIwNGEyIDIgMCAwIDEtMS43ODYgMS43ODVMMTMgMTVINWEyIDIgMCAwIDEtMS45OS0xLjc5NkwzIDEzVjVhMiAyIDAgMCAxIDItMmgzem03IDNoLTFWNC42OUw5LjcxIDkuMDA1IDkuMDAxIDguMyAxMy4yNzcgNEgxMVYzaDR6Ii8+PC9zdmc+J30sMTI1ODk3KGUpe2UuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMSA5IiB3aWR0aD0iMTEiIGhlaWdodD0iOSIgZmlsbD0ibm9uZSI+PHBhdGggc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiIgZD0iTTAuOTk5ODc4IDRMMy45OTk4OCA3TDkuOTk5ODggMSIvPjwvc3ZnPid9LDkxMzYxMChlKXtlLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMTggMTgiIHdpZHRoPSIxOCIgaGVpZ2h0PSIxOCI+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBkPSJNOSAyLjA1Yy4zNyAwIC42Ny4zLjY3LjY3di44OGwuNjQtLjMzYS42Ny42NyAwIDAgMSAuNjEgMS4xOWwtMS4yNS42NHYxLjEyYy41OC4xNCAxLjEuNDYgMS40OC44OWwxLjE4LS42N1Y1YzAtLjM2LjMtLjY2LjY3LS42NS4zNyAwIC42Ny4zLjY3LjY2di42OGwuNzItLjRhLjY3LjY3IDAgMSAxIC42NSAxLjE1bC0uNzIuNDIuNi4zN2MuMy4yLjQuNi4yLjkyLS4yLjMtLjYxLjQtLjkyLjJMMTMgNy42bC0xLjIyLjdhMi44IDIuOCAwIDAgMS0uMDQgMS40OGwxLjI3LjcgMS4xOC0uNzdjLjMxLS4yLjczLS4xMi45My4xOS4yLjMuMTEuNzItLjIuOTJsLS42LjM5LjcyLjRhLjY3LjY3IDAgMCAxLS42NSAxLjE3bC0uNzItLjRWMTNhLjY3LjY3IDAgMCAxLTEuMzQgMHYtMS4zOGwtMS4yNi0uN2MtLjM4LjM4LS44Ni42Ni0xLjQuOHYxLjE4bDEuMjUuNjRhLjY3LjY3IDAgMSAxLS42IDEuMTlsLS42NS0uMzN2Ljg4YS42Ny42NyAwIDAgMS0xLjM0IDB2LS44OGwtLjY0LjMzYS42Ny42NyAwIDEgMS0uNjEtMS4xOWwxLjI1LS42NFYxMS43YTIuODYgMi44NiAwIDAgMS0xLjQtLjhsLTEuMjYuN3YxLjRjMCAuMzYtLjMuNjYtLjY3LjY1YS42Ny42NyAwIDAgMS0uNjctLjY2di0uNjRsLS43LjM5YS42OC42OCAwIDAgMS0uOTItLjI2LjY2LjY2IDAgMCAxIC4yNi0uOWwuNy0uNC0uNTktLjM4YS42Ni42NiAwIDAgMS0uMi0uOTJjLjItLjMuNjItLjQuOTMtLjJsMS4xOC43OCAxLjI3LS43YTIuOCAyLjggMCAwIDEtLjA0LTEuNDdMNC45NyA3LjZsLTEuMi43NWMtLjMuMi0uNzIuMS0uOTItLjItLjItLjMxLS4xLS43Mi4yMS0uOTJsLjYtLjM4LS43LS40YS42Ni42NiAwIDAgMS0uMjQtLjljLjE4LS4zMi42LS40My45MS0uMjVsLjcuNFY1YS42Ny42NyAwIDAgMSAxLjM0IDB2MS40NWwxLjE3LjY3Yy4zOC0uNDQuOS0uNzYgMS41LS45VjUuMWwtMS4yNi0uNjRhLjY3LjY3IDAgMCAxIC42MS0xLjE5bC42NC4zM3YtLjg4YzAtLjM3LjMtLjY3LjY3LS42N1ptMCA4LjRhMS41IDEuNSAwIDAgMCAxLjUyLTEuNDhjMC0uODEtLjY2LTEuNS0xLjUyLTEuNWExLjUgMS41IDAgMCAwLTEuNTIgMS41YzAgLjguNjYgMS40OSAxLjUyIDEuNDlaIi8+PC9zdmc+J30sNzMwMTEwKGUpe2UuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxOCAxOCIgd2lkdGg9IjE4IiBoZWlnaHQ9IjE4Ij48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGQ9Ik05IDQuOTNhNS43MSA1LjcxIDAgMSAxIDAgMTEuNDNBNS43MSA1LjcxIDAgMCAxIDkgNC45M004LjQzIDcuMnYyLjg2SDYuMTR2MS43Mmg0VjcuMnpNNi43IDIuODEgMi4wOSA2LjY2IDEgNS4zMyA1LjYxIDEuNXpNMTcgNS4zNGwtMS4xIDEuMzItNC42MS0zLjgzIDEuMDktMS4zMnoiLz48L3N2Zz4nfSw5MTI4MTUoZSl7ZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDE4IDE4IiB3aWR0aD0iMTgiIGhlaWdodD0iMTgiPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZD0iTTkgNWE1IDUgMCAxIDEgMCAxMEE1IDUgMCAwIDEgOSA1bS0uNSAydjIuNWgtMlYxMUgxMFY3ek03IDMuMTUgMi45NiA2LjUgMiA1LjM1IDYuMDQgMnptOSAyLjItLjk2IDEuMTVMMTEgMy4xNSAxMS45NiAyeiIvPjwvc3ZnPid9LDM1MTE4MihlKXsKZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDE4IDE4IiB3aWR0aD0iMTgiIGhlaWdodD0iMTgiPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZD0iTTkgMTIuNWExLjUgMS41IDAgMSAxIDAgMyAxLjUgMS41IDAgMCAxIDAtM20wLTEwYzEuMDYgMCAxLjg4LjkzIDEuNzUgMS45OGwtLjYyIDUuMDNhMS4xMyAxLjEzIDAgMCAxLTIuMjUgMGwtLjYzLTUuMDNBMS43NyAxLjc3IDAgMCAxIDkgMi41Ii8+PC9zdmc+J30sNjQyNzgzKGUpe2UuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxOCAxOCIgd2lkdGg9IjE4IiBoZWlnaHQ9IjE4Ij48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGQ9Ik05IDEyYTEgMSAwIDEgMSAwIDIgMSAxIDAgMCAxIDAtMm0wLThjLjc4IDAgMS4zOC43IDEuMjUgMS40OEw5LjU4IDkuNWEuNi42IDAgMCAxLTEuMTYgMGwtLjY3LTQuMDNBMS4yNyAxLjI3IDAgMCAxIDkgNCIvPjwvc3ZnPid9LDU3NTE0OChlKXtlLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMTggMTgiIHdpZHRoPSIxOCIgaGVpZ2h0PSIxOCI+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBkPSJNMTUgMTMuNWMwIC44My0uNjcgMS41LTEuNSAxLjVoLTlBMS41IDEuNSAwIDAgMSAzIDEzLjVWOGgxMnpNNi41IDRoNVYyLjVIMTNWNGguNWMuODMgMCAxLjUuNjcgMS41IDEuNXYxSDN2LTFDMyA0LjY3IDMuNjcgNCA0LjUgNEg1VjIuNWgxLjV6Ii8+PC9zdmc+J30sNTk4MjU3KGUpe2UuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxOCAxOCIgd2lkdGg9IjE4IiBoZWlnaHQ9IjE4Ij48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGQ9Ik0xNCAxMi41NWMwIC44LS41NiAxLjQ1LTEuMjUgMS40NWgtNy41QzQuNTYgMTQgNCAxMy4zNSA0IDEyLjU1VjhoMTB6TTYuOTIgNWg0LjE2VjRoMS4yNXYxaC40MmMuNjkgMCAxLjI1LjYzIDEuMjUgMS40di41NUg0VjYuNEM0IDUuNjMgNC41NiA1IDUuMjUgNWguNDJWNGgxLjI1eiIvPjwvc3ZnPid9LDU2MjQ1NShlKXtlLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMTggMTgiIHdpZHRoPSIxOCIgaGVpZ2h0PSIxOCI+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBkPSJNOS4yMiAzLjUzYTYgNiAwIDAgMSAyLjg2LjY1cTEuMi42NyAxLjgyIDEuOS42MyAxLjI2LjYzIDMuMDJ2LjAycTAgMS44LS42MyAzLjA4YTQuNCA0LjQgMCAwIDEtMS44IDEuOTRxLTEuMi42Ni0yLjg4LjY2SDVWMy41M3ptLTIuMiA5LjU3aDEuOTRxMS4xMSAwIDEuOS0uNDYuOC0uNDUgMS4yLTEuMzQuNDEtLjg4LjQxLTIuMTV2LS4wMXEwLTEuMjQtLjQyLTIuMTFhMyAzIDAgMCAwLTEuMi0xLjM1IDMuNyAzLjcgMCAwIDAtMS45LS40Nkg3LjAyeiIvPjwvc3ZnPid9LDcwMDg0KGUpe2UuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxOCAxOCIgd2lkdGg9IjE4IiBoZWlnaHQ9IjE4Ij48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGQ9Ik05LjE3IDQuNTVxMS4yNiAwIDIuMTQuNS45LjQ5IDEuMzYgMS40Mi40OC45NC40OCAyLjI2di4wMXEwIDEuMzYtLjQ3IDIuMzFhMy4zIDMuMyAwIDAgMS0xLjM2IDEuNDZxLS44OC41LTIuMTUuNUg2VjQuNTR6bS0xLjY2IDcuMThoMS40NnEuODQgMCAxLjQzLS4zNC42LS4zNS45LTEuMDF0LjMtMS42MXYtLjAxcTAtLjkzLS4zLTEuNTktLjMzLS42Ni0uOTEtMS0uNi0uMzUtMS40Mi0uMzVINy41MXoiLz48L3N2Zz4nfSw0NjA0NDgoZSl7ZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDE4IDE4IiB3aWR0aD0iMTgiIGhlaWdodD0iMTgiPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZD0iTTUuNjUgMTQuOFYzLjUzaDcuM3YxLjdINy42N3YzLjA1aDQuOTl2MS42aC01djMuMjJoNS4yOXYxLjd6Ii8+PC9zdmc+J30sMjg1ODYxKGUpe2UuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxOCAxOCIgd2lkdGg9IjE4IiBoZWlnaHQ9IjE4Ij48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGQ9Ik0xMiA1LjI2SDcuNTF2Mi41NWgzLjc0djEuMkg3LjUxdjIuNzJoNC41VjEzSDZWNGg2eiIvPjwvc3ZnPid9LDM0MDE1OChlKXtlLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMTggMTgiIHdpZHRoPSIxOCIgaGVpZ2h0PSIxOCI+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBkPSJNOS4wMiA0YTMuOTYgMy45NiAwIDAgMCAyLjA5IDcuMjljMS4xNSAwIDIuMTgtLjUgMi45LTEuM0MxMy41MiAxMi4zIDExLjUgMTQgOS4wNCAxNEE1LjAzIDUuMDMgMCAwIDEgNCA5YTUuMDMgNS4wMyAwIDAgMSA1LjAyLTVtMi42NSAyLjMzIDEuMzMuMi0uOTggMS4wMy4yMiAxLjQ0TDExIDguMzQgOS43NiA5bC4yMi0xLjQ0TDkgNi41M2wxLjMzLS4yTDExIDV6Ii8+PC9zdmc+J30sMzc4NTk5KGUpe2UuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxOCAxOCIgd2lkdGg9IjE4IiBoZWlnaHQ9IjE4Ij48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGQ9Im0xNSA0LjQxLTQuNTkgNC42TDE1IDEzLjU4bC0xLjQxIDEuNEw5IDEwLjQyIDQuNDIgMTUgMyAxMy41OSA3LjYgOSAzIDQuNDFsMS40MS0xLjRMOSA3LjU4IDEzLjU5IDN6Ii8+PC9zdmc+J30sNzg2NDIwKGUpewplLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMTggMTgiIHdpZHRoPSIxOCIgaGVpZ2h0PSIxOCI+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBkPSJtMTQgNS4wNy0zLjkzIDMuOTQgMy45MSAzLjlMMTIuOTEgMTRsLTMuOS0zLjlMNS4wNyAxNCA0IDEyLjkzbDMuOTItMy45Mkw0IDUuMDggNS4wOCA0IDkgNy45MyAxMi45MiA0eiIvPjwvc3ZnPid9LDEwOTMyNShlKXtlLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMTggMTgiIHdpZHRoPSIxOCIgaGVpZ2h0PSIxOCI+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBkPSJNMTcgMTNoLTMuNXY0aC0ydi00SDhsNC41LTR6TTYuNSA1SDEwTDUuNSA5IDEgNWgzLjVWMWgyeiIvPjwvc3ZnPid9LDQ2NTEzNChlKXtlLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMTggMTgiIHdpZHRoPSIxOCIgaGVpZ2h0PSIxOCI+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBkPSJNMTUgMTJoLTIuNzZ2M2gtMS41di0zSDhsMy41LTN6TTcuMjQgNkgxMEw2LjUgOSAzIDZoMi43NFYzaDEuNXoiLz48L3N2Zz4nfSw4MzU5ODAoZSl7ZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDE4IDE4IiB3aWR0aD0iMTgiIGhlaWdodD0iMTgiPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZD0iTTE1LjEzIDEwLjA1cS0uODIgMy4yMy0yLjkyIDMuNDRsLS4yOC4wMWgtLjNxLTEuMDUtLjA4LTIuODMtLjYzYTExIDExIDAgMCAwLTIuOC0uNjUgMS44IDEuOCAwIDAgMC0xLjEuMzZxLS40Mi4zMi0uNzEuOTJIMi42N2E1IDUgMCAwIDEgMS4wOC0yLjQ0IDIuNSAyLjUgMCAwIDEgMi0xLjAybC4zLjAxcTEuMTUuMDggMi45NC42NSAyLjAzLjYzIDIuODcuNjMgMS4zNSAwIDEuOC0xLjI4em0wLTUuNTJxLS44OSAzLjQ1LTMuMiAzLjQ2LS4yOSAwLS42MS0uMDQtMS0uMTItMi41Mi0uNkExMSAxMSAwIDAgMCA2IDYuN1E0LjggNi43IDQuMTggOEgyLjY3YTUgNSAwIDAgMSAxLjA4LTIuNDQgMi41IDIuNSAwIDAgMSAyLTEuMDJxMS4yIDAgMy4yNC42NSAyLjAzLjY0IDIuODcuNjQgMS4zNSAwIDEuOC0xLjI5eiIvPjwvc3ZnPid9LDU1NDY0MShlKXtlLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMTggMTgiIHdpZHRoPSIxOCIgaGVpZ2h0PSIxOCI+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBkPSJNMTQgOS43OHEtLjcgMi43Ny0yLjU3IDIuNzctLjkgMC0yLjUtLjVhOSA5IDAgMCAwLTIuMjYtLjUzcS0uOTUgMC0xLjQ1IDEuMDNINHEuMi0xLjE1Ljg4LTEuOTZ0MS41OS0uODFxLjk2IDAgMi42LjUyIDEuNjQuNSAyLjMuNTEgMS4xIDAgMS40NS0xLjAzem0wLTQuNDNxLS43IDIuNzgtMi41NyAyLjc4LS45IDAtMi41LS41MWE5IDkgMCAwIDAtMi4yNi0uNTJxLS45NSAwLTEuNDUgMS4wM0g0cS4yLTEuMTUuODgtMS45NnQxLjU5LS44MnEuOTYgMCAyLjYuNTNhOSA5IDAgMCAwIDIuMy41cTEuMSAwIDEuNDUtMS4wM3oiLz48L3N2Zz4nfSw3NzM0NjYoZSl7ZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDE4IDE4IiB3aWR0aD0iMTgiIGhlaWdodD0iMTgiPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZD0iTTggMTMgNCA5bDQtNHptNCAwTDggOWw0LTR6Ii8+PC9zdmc+J30sOTk5MzAyKGUpe2UuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxOCAxOCIgd2lkdGg9IjE4IiBoZWlnaHQ9IjE4Ij48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGQ9Ik04IDQuNzVINi42NmMtLjM3IDAtLjU4LjI3LS41OC41di45NkEzLjYgMy42IDAgMCAxIDQuNTMgOWEzLjYgMy42IDAgMCAxIDEuNTUgMi44di45NWMwIC4yMy4yMS41LjU4LjVIOHYxLjVINi42NmMtMS4xIDAtMi4wOC0uODUtMi4wOC0ydi0uOTZjMC0uNy0uNi0xLjUtMS41LTEuOTJsLS4yLS4xYS44NS44NSAwIDAgMSAwLTEuNTRsLjItLjFjLjktLjQyIDEuNS0xLjIxIDEuNS0xLjkydi0uOTZjMC0xLjE1Ljk4LTIgMi4wOC0ySDh6bTMuMzQtMS41YzEuMSAwIDIuMDkuODUgMi4wOSAydi45NmMwIC43LjYgMS41IDEuNDkgMS45MmwuMi4xYS44NS44NSAwIDAgMSAwIDEuNTRsLS4yLjFjLS45LjQyLTEuNSAxLjIxLTEuNSAxLjkydi45NmMwIDEuMTUtLjk4IDItMi4wOCAySDEwdi0xLjVoMS4zNGMuMzcgMCAuNTktLjI3LjU5LS41di0uOTZjMC0xLjE1LjY3LTIuMTQgMS41NC0yLjc5YTMuNiAzLjYgMCAwIDEtMS41NC0yLjh2LS45NWMwLS4yMy0uMjItLjUtLjYtLjVIMTB2LTEuNXoiLz48L3N2Zz4nfSw3ODc2MjYoZSl7ZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDE4IDE4IiB3aWR0aD0iMTgiIGhlaWdodD0iMTgiPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZD0iTTEwLjcyIDMuMzdhMi4zIDIuMyAwIDEgMSAyLjc0IDMuMzNsLS4wMiA0LjkzYTIuMyAyLjMgMCAwIDEgMS4yMyAzLjMzIDIuMyAyLjMgMCAwIDEtNC4yNS0xLjZMNi4yIDEwLjk1YTIuMyAyLjMgMCAxIDEtLjAxLTMuNDlsNC4yNi0yLjQ4YTIuMyAyLjMgMCAwIDEgLjI2LTEuNk02Ljk1IDguNzVxLjA5LjQ0IDAgLjg5bDQuMjIgMi40M3EuMzQtLjMuNzctLjQ0bC4wMi00Ljk0YTIgMiAwIDAgMS0uNzQtLjQzeiIvPjwvc3ZnPid9LDMxMTExNShlKXsKZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDE4IDE4IiB3aWR0aD0iMTgiIGhlaWdodD0iMTgiPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZD0iTTkuODcgNC4xM0EyIDIgMCAxIDEgMTIuMzQgN2wtLjAyIDQuMzUuMjQuMTJhMiAyIDAgMSAxLTIuOTggMS40NmwtMy43Mi0yLjE1YTIgMiAwIDEgMSAwLTMuMTZsMy43Ni0yLjJhMiAyIDAgMCAxIC4yNS0xLjI4TTYuNiA4LjkxYTIgMiAwIDAgMSAwIC41NmwzLjcyIDIuMTVhMiAyIDAgMCAxIC40OS0uMjhsLjAyLTQuMzZhMiAyIDAgMCAxLS40Ny0uMjd6Ii8+PC9zdmc+J30sMTkyNzU1KGUpe2UuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxOCAxOCIgd2lkdGg9IjE4IiBoZWlnaHQ9IjE4Ij48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGQ9Ik04LjYgMi4wMmE0LjU4IDQuNTggMCAwIDEgMi44NC43NmMuMzguMjYgMS4wMi44MyAxLjM1IDEuMjJhOS42IDkuNiAwIDAgMSAyLjAzIDQuMTVMMTMuNSA5LjYyIDExLjcgNy42IDkuODcgOS42MiA4LjY1IDguMjRsLTEuMTUuOSAyLjM4IDIuNjYgMS44MS0yLjAyIDEuOCAyLjAyTDE1IDEwLjEycS0uMDMgMS4wMS0uMyAxLjg2YTUuOCA1LjggMCAwIDEtNS4xNSA0IDYuMjYgNi4yNiAwIDAgMS00LjE4LTEuMSA4IDggMCAwIDEtLjk1LS44NiA2IDYgMCAwIDEtMS4zOS0zLjE1IDEzIDEzIDAgMCAxIC4wMi0yLjAyIDkuNiA5LjYgMCAwIDEgMi4yNy01Yy4yNi0uMy45LS44NSAxLjIyLTEuMDYuNjYtLjQzIDEuMzgtLjcgMi4wNi0uNzciLz48L3N2Zz4nfSw5MDg0MDAoZSl7ZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDE4IDE4IiB3aWR0aD0iMTgiIGhlaWdodD0iMTgiPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZD0iTTkuMjkgMy4wMnEuOS4wOCAxLjc0LjY1Yy4zMy4yMi44NS43IDEuMTMgMS4wNGE4IDggMCAwIDEgMS42OSAzLjU2bC0xLjEgMS4yNi0xLjUtMS43My0xLjUxIDEuNzNMOC43IDguMzVsLS45Ni43NyAxLjk5IDIuMjggMS41LTEuNzMgMS41MSAxLjczTDE0IDkuOTZhNiA2IDAgMCAxLS4yNCAxLjYgNC44IDQuOCAwIDAgMS00LjMgMy40MiA1LjE1IDUuMTUgMCAwIDEtMy40OC0uOTQgNyA3IDAgMCAxLS44LS43NCA1IDUgMCAwIDEtMS4xNS0yLjdDNCAxMC4zIDQgOS4xOSA0LjA0IDguODdjLjI0LTEuNjYuOS0zLjEzIDEuOS00LjI4LjIxLS4yNS43NS0uNzMgMS0uOTFxLjg2LS41NiAxLjczLS42NmMuMjUtLjAzLjM3LS4wMy42MiAwIi8+PC9zdmc+J30sOTEzODQzKGUpe2UuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxOCAxOCIgd2lkdGg9IjE4IiBoZWlnaHQ9IjE4Ij48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGQ9Im0zLjM5IDguNzkgMi41OC43LS4zNyAxLjM1LTEuNTItLjQxYTUuMTIgNS4xMiAwIDAgMCA5LjguMWwxLjM1LjRhNi41MiA2LjUyIDAgMCAxLTEyLjQuMmwtLjc3IDEuMDYtMS4xMy0uODMgMS43MS0yLjMxLjI4LS4zOXptMTEuOTUuMjMtLjMzLjQzLS41LS4yMS4yOC0uNjV6TTkgMi41YTYuNSA2LjUgMCAwIDEgNi4xNyA0LjQ3bC43Ny0uOTkgMS4xLjg3LTEuNyAyLjE3LS41NS0uNDMtLjI3LjY1LTIuNTktMS4xMS41Ni0xLjI5IDEuMzYuNTlBNS4xIDUuMSAwIDAgMCA5IDMuOSA1LjEgNS4xIDAgMCAwIDQuMSA3LjUzbC0xLjM0LS40MUE2LjUgNi41IDAgMCAxIDkgMi41Ii8+PC9zdmc+J30sOTg5ODcyKGUpe2UuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxOCAxOCIgd2lkdGg9IjE4IiBoZWlnaHQ9IjE4Ij48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGQ9Im00LjE2IDguNjUtLjE4LjY4emwyLjI0LjYxLS4zNyAxLjM1LTEuMTUtLjMxYTQuMzQgNC4zNCAwIDAgMCA4LjI3LS4wOGwxLjM0LjQxYTUuNzQgNS43NCAwIDAgMS0xMC44Ni4zNGwtLjU3Ljc3LTEuMTItLjgzIDEuNDgtMiAuMjgtLjM4ek05IDMuMmE1Ljc1IDUuNzUgMCAwIDEgNS4zOSAzLjc3bC41Ni0uNzIgMS4xLjg3TDE0LjU4IDlsLS4zNC40Mi0uNS0uMjEtMi4yMy0uOTYuNTUtMS4yOS45OS40MkE0LjM1IDQuMzUgMCAwIDAgOSA0LjZjLTEuOTQgMC0zLjYgMS4zLTQuMTQgMy4wOGwtMS4zNC0uNDFBNS43NSA1Ljc1IDAgMCAxIDkgMy4yIi8+PC9zdmc+J30sOTIwNDc1KGUsdCxhKXsidXNlIHN0cmljdCI7YS5kKHQse2RlZmF1bHQ6KCk9Pmx9KTtjb25zdCBzPWU9PmUgaW5zdGFuY2VvZiBEYXRlLG89ZT0+bnVsbCE9ZSYmIm9iamVjdCI9PXR5cGVvZiBlLGk9KGUsLi4udCk9Pk9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLC4uLnQpLHI9ZT0+byhlKSYmKGU9PjA9PT1PYmplY3Qua2V5cyhlKS5sZW5ndGgpKGUpLG49KGUsdCk9PntpZihlPT09dClyZXR1cm57fTtpZighbyhlKXx8IW8odCkpcmV0dXJuIHQ7Y29uc3QgYT1PYmplY3Qua2V5cyhlKS5yZWR1Y2UoKChlLGEpPT4oaSh0LGEpfHwoZVthXT12b2lkIDApLGUpKSxPYmplY3QuY3JlYXRlKG51bGwpKTtyZXR1cm4gcyhlKXx8cyh0KT9lLnZhbHVlT2YoKT09dC52YWx1ZU9mKCk/e306dDpPYmplY3Qua2V5cyh0KS5yZWR1Y2UoKChhLG8pPT57aWYoIWkoZSxvKSlyZXR1cm4gYVtvXT10W29dLGE7Y29uc3QgbD1uKGVbb10sdFtvXSk7cmV0dXJuIXIobCl8fHMobCl8fCFyKGVbb10pJiZyKHRbb10pPyhhW29dPWwsYSk6YX0pLGEpfSxsPW59fV0pOw=="}},"time_used":3,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":3,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/14625.ada612ccefdef779e295.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.519Z","timestamp":1785148034519,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/14625.ada612ccefdef779e295.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\ncontent-type: text/css; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"69f98b71-f8\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Tue, 05 May 2026 06:17:21 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.57\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 06/25/2026 11:16:17\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 1841b7614b3ca20121b2cf4ae3992cb7\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":248,"size_decoded":920,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with no line terminators","md5":"262d7c6d32fe176cad158bcf581392cf","sha1":"46ad9060cd3563ca4a028ea3ef2de8e4f2aa4cbf","sha256":"afec4eea93654c674622a8144d3721d9bd840022423552e2ad2c630463a7fbe1","sha512":"7950e146c863cb2f43396153f4068338f6514f7214983146822d7aa47777172d75340f6d86a723724a3f9e15b8363f5ba13b933024993d98520fc45be5524791","ssdeep":"","tlshash":"1fd05e7e9ec8372052138f271693679ac82786159f300e5edb00a2234fda40be8334a4","first_seen":"2023-04-17T07:26:31Z","last_seen":"2026-07-27T12:48:39.816225Z","times_seen":645,"resource_available":false,"data":"LmNvbnRhaW5lci1NMW16NHF1QXtkaXNwbGF5OmlubGluZS1mbGV4O3Bvc2l0aW9uOnJlbGF0aXZlfS5sb2dvLU0xbXo0cXVBLC5wYWlyQ29udGFpbmVyLU0xbXo0cXVBe2Rpc3BsYXk6aW5saW5lLWZsZXh9LmxvZ28tTTFtejRxdUF7Ym9yZGVyLXJhZGl1czo1MCU7ZmxleDpub25lO292ZXJmbG93OmhpZGRlbn0ubG9nby1NMW16NHF1QSBpbWd7aGVpZ2h0OjEwMCU7d2lkdGg6MTAwJX0uaGlkZGVuLU0xbXo0cXVBe2Rpc3BsYXk6bm9uZX0="}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/15526.c829c52fed259855bb96.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.521Z","timestamp":1785148034521,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/15526.c829c52fed259855bb96.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\ncontent-type: text/css; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a58ab11-316\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Thu, 16 Jul 2026 09:57:37 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/16/2026 11:03:22\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 7d1b1f51f9787c6c117479dd6416946b\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":790,"size_decoded":1140,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with very long lines (790), with no line terminators","md5":"d33cb76c4c4987a6e783fa779dffe4b2","sha1":"df35b6ae057220bf5ebd9bcff03be83d1f72420c","sha256":"6b3f21a89374d2e2deedce7defed807004e9519f2c8305cb071637eba3c64f6b","sha512":"ac2818012ca1b265c13981bf4dcf851de61298ab5db3e0dd96d5abff8d384444b94ad6dc7386fe0a889fc9d8bfd3a7f248e7e964e970478b90987b70168dbf62","ssdeep":"","tlshash":"0601ab3cd558e276f653e23c33eab2ed05205f5488533feaf686e02080d59971c52218","first_seen":"2026-07-19T21:33:33.695675Z","last_seen":"2026-07-27T12:48:39.612087Z","times_seen":56,"resource_available":false,"data":"LnJhZGlvQnV0dG9uVmlldy1PTFhaUXh1Yntib3JkZXItcmFkaXVzOjUwJTtib3gtc2l6aW5nOmJvcmRlci1ib3g7ZGlzcGxheTpibG9jaztoZWlnaHQ6MThweDtwb3NpdGlvbjpyZWxhdGl2ZTt0cmFuc2l0aW9uOmJhY2tncm91bmQtY29sb3IgLjM1cyBlYXNlLGJvcmRlci1jb2xvciAuMzVzIGVhc2U7d2lkdGg6MThweDstLWRlZmF1bHQtY29sb3I6dmFyKC0tY29sb3ItY29udGFpbmVyLWZpbGwtcHJpbWFyeS1uZXV0cmFsLWV4dHJhLWJvbGQpOy0tcmFkaW8tY29sb3I6dmFyKC0tdWktbGliLXJhZGlvQnV0dG9uVmlldy1jb2xvcix2YXIoLS1kZWZhdWx0LWNvbG9yKSk7YmFja2dyb3VuZC1jb2xvcjppbml0aWFsO2JvcmRlcjoxcHggc29saWQgdmFyKC0tcmFkaW8tY29sb3IpfS5yYWRpb0J1dHRvblZpZXctT0xYWlF4dWI6YmVmb3Jle2JhY2tncm91bmQ6dmFyKC0tY29sb3ItY29udGFpbmVyLWZpbGwtcXVpbmFyeS1pbnZlcnNlKTtib3JkZXItcmFkaXVzOjUwJTtib3gtc2l6aW5nOmJvcmRlci1ib3g7Y29udGVudDoiIjtkaXNwbGF5Om5vbmU7aGVpZ2h0OjZweDtpbnNldDowO21hcmdpbjphdXRvO3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjZweH0uY2hlY2tlZC1PTFhaUXh1YnstLWRlZmF1bHQtY29sb3I6dmFyKC0tY29sb3ItY29udGFpbmVyLWZpbGwtcHJpbWFyeS1uZXV0cmFsLWV4dHJhLWJvbGQpO2JhY2tncm91bmQtY29sb3I6dmFyKC0tcmFkaW8tY29sb3IpfS5jaGVja2VkLU9MWFpReHViOmJlZm9yZXtkaXNwbGF5OmJsb2NrfS5kaXNhYmxlZC1PTFhaUXh1YntvcGFjaXR5Oi4zfQ=="}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"widget-v3.smartsuppcdn.com/manifest.json","fqdn":"widget-v3.smartsuppcdn.com","domain":"smartsuppcdn.com","tld":"com"},"ip":{"addr":"185.76.9.12","port":443,"asn":60068,"as":"Datacamp Limited","country":"Sweden","country_code":"SE"},"is_navigation_request":false,"resource_type":"xhr","requested_by":"https://digital-assettrade.com/","date":"2026-07-27T10:27:16.428Z","timestamp":1785148036428,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_256_GCM_SHA384","key_group_name":"x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"1857279285.rsc.cdn77.org","organization":""},"issuer":{"commonName":"YE2","organization":"Let's Encrypt"},"validity":{"start":"Thu, 04 Jun 2026 14:34:45 GMT","end":"Wed, 02 Sep 2026 14:34:44 GMT"},"fingerprint":{"sha1":"92:5D:A0:17:13:91:72:7B:B6:8C:6A:7D:A9:55:7F:C8:A9:47:11:99","sha256":"0E:FC:E3:4D:AD:32:B2:11:05:DC:E3:CD:CC:9E:10:DC:C5:2D:9E:1C:D7:C1:9C:00:92:15:43:C5:B7:0B:3A:D6"}}},"request":{"raw":"GET /manifest.json HTTP/1.1\r\nHost: widget-v3.smartsuppcdn.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\nContent-Type: text/plain\r\nOrigin: https://digital-assettrade.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://digital-assettrade.com/\r\nSec-Fetch-Dest: empty\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:19 GMT\r\ncontent-type: application/json\r\naccess-control-allow-origin: *\r\ncache-control: max-age=300, public, s-maxage=60\r\netag: W/\"6a670743-891\"\r\nexpires: Mon, 27 Jul 2026 07:32:27 GMT\r\nlast-modified: Mon, 27 Jul 2026 07:22:43 GMT\r\nx-77-nzt: k26405E/0I4FY0wsQzkZwMEFmOnbJqE+ybGgQdp6LIh1Mjd7MYNi+W4XYqV1+ed8imspjGs\r\nx-77-nzt-ray: e2f7542072fcdf658732676ace48bb29\r\nx-77-cache: HIT\r\nx-77-age: 58\r\nvary: Accept-Encoding\r\ncontent-encoding: gzip\r\nserver: CDN77-Turbo\r\nx-77-pop: stockholmSE\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"CDN77","description":"CDN77 is a content delivery network (CDN).","website":"https://www.cdn77.com","common_platform_enumeration":"","icon":"CDN77.png","categories":["CDN"]}],"data":{"size":2193,"size_decoded":1029,"mime_type":"application/json","magic":"JSON text data","md5":"ac973fd16446a8bd414c2cfdbfbdd6ba","sha1":"6d802991373d8180ad7c4197d08c2e8d8e21d581","sha256":"8c973dd5712d4b0125d2be8cc65e3590298e054fb63560738ecf0f64b8e43277","sha512":"9748bc4696f6ec983d5dbd492e36472b1e083d2e61c3a60133b102a8370f7603b54bfe88360c24035fe882d5c30f0a52eb253ae2d0d460d384d72f9f3b188d79","ssdeep":"","tlshash":"c3417893c0f80d531b9c6627b8855a415d50c3c3a8993e0e72ad8a7f2f4ceb910e67bc","first_seen":"2026-07-27T07:28:16.144753Z","last_seen":"2026-07-27T13:00:53.940392Z","times_seen":648,"resource_available":false,"data":"ewogICJfV2lkZ2V0TWVzc2VuZ2VySW5wdXQtREhyNXVId2QuanMiOiB7CiAgICAiZmlsZSI6ICJhc3NldHMvV2lkZ2V0TWVzc2VuZ2VySW5wdXQtREhyNXVId2QuanMiLAogICAgIm5hbWUiOiAiV2lkZ2V0TWVzc2VuZ2VySW5wdXQiLAogICAgImltcG9ydHMiOiBbCiAgICAgICJfc2hhcmVkLWtiMXlxSGFBLmpzIgogICAgXSwKICAgICJkeW5hbWljSW1wb3J0cyI6IFsKICAgICAgIm5vZGVfbW9kdWxlcy8ucG5wbS9lbW9qaS1tYXJ0QDUuNi4wL25vZGVfbW9kdWxlcy9lbW9qaS1tYXJ0L2Rpc3QvbW9kdWxlLmpzIgogICAgXQogIH0sCiAgIl9zaGFyZWQta2IxeXFIYUEuanMiOiB7CiAgICAiZmlsZSI6ICJhc3NldHMvc2hhcmVkLWtiMXlxSGFBLmpzIiwKICAgICJuYW1lIjogIkljb25CdXR0b24iLAogICAgImR5bmFtaWNJbXBvcnRzIjogWwogICAgICAibm9kZV9tb2R1bGVzLy5wbnBtL0B0aHVtYm1hcmtqcyt0aHVtYm1hcmtqc0AxLjkuMC9ub2RlX21vZHVsZXMvQHRodW1ibWFya2pzL3RodW1ibWFya2pzL2Rpc3QvdGh1bWJtYXJrLmVzbS5qcyIKICAgIF0KICB9LAogICJub2RlX21vZHVsZXMvLnBucG0vQHRodW1ibWFya2pzK3RodW1ibWFya2pzQDEuOS4wL25vZGVfbW9kdWxlcy9AdGh1bWJtYXJranMvdGh1bWJtYXJranMvZGlzdC90aHVtYm1hcmsuZXNtLmpzIjogewogICAgImZpbGUiOiAiYXNzZXRzL3RodW1ibWFyay5lc20tQ1A0Q1UweUwuanMiLAogICAgIm5hbWUiOiAidGh1bWJtYXJrLmVzbSIsCiAgICAic3JjIjogIm5vZGVfbW9kdWxlcy8ucG5wbS9AdGh1bWJtYXJranMrdGh1bWJtYXJranNAMS45LjAvbm9kZV9tb2R1bGVzL0B0aHVtYm1hcmtqcy90aHVtYm1hcmtqcy9kaXN0L3RodW1ibWFyay5lc20uanMiLAogICAgImlzRHluYW1pY0VudHJ5IjogdHJ1ZQogIH0sCiAgIm5vZGVfbW9kdWxlcy8ucG5wbS9lbW9qaS1tYXJ0QDUuNi4wL25vZGVfbW9kdWxlcy9lbW9qaS1tYXJ0L2Rpc3QvbW9kdWxlLmpzIjogewogICAgImZpbGUiOiAiYXNzZXRzL21vZHVsZS1ERDVudlZEMy5qcyIsCiAgICAibmFtZSI6ICJtb2R1bGUiLAogICAgInNyYyI6ICJub2RlX21vZHVsZXMvLnBucG0vZW1vamktbWFydEA1LjYuMC9ub2RlX21vZHVsZXMvZW1vamktbWFydC9kaXN0L21vZHVsZS5qcyIsCiAgICAiaXNEeW5hbWljRW50cnkiOiB0cnVlCiAgfSwKICAic3JjL2ZyYW1lcy9tZXNzZW5nZXIvV2lkZ2V0TWVzc2VuZ2VyLnN2ZWx0ZSI6IHsKICAgICJmaWxlIjogImFzc2V0cy9XaWRnZXRNZXNzZW5nZXItRDFpVlkzTGouanMiLAogICAgIm5hbWUiOiAiV2lkZ2V0TWVzc2VuZ2VyIiwKICAgICJzcmMiOiAic3JjL2ZyYW1lcy9tZXNzZW5nZXIvV2lkZ2V0TWVzc2VuZ2VyLnN2ZWx0ZSIsCiAgICAiaXNEeW5hbWljRW50cnkiOiB0cnVlLAogICAgImltcG9ydHMiOiBbCiAgICAgICJfc2hhcmVkLWtiMXlxSGFBLmpzIiwKICAgICAgIl9XaWRnZXRNZXNzZW5nZXJJbnB1dC1ESHI1dUh3ZC5qcyIsCiAgICAgICJzcmMvbWFpbi50cyIKICAgIF0KICB9LAogICJzcmMvZnJhbWVzL3BvcHVwL1dpZGdldFBvcHVwLnN2ZWx0ZSI6IHsKICAgICJmaWxlIjogImFzc2V0cy9XaWRnZXRQb3B1cC1CQTFqY0hudS5qcyIsCiAgICAibmFtZSI6ICJXaWRnZXRQb3B1cCIsCiAgICAic3JjIjogInNyYy9mcmFtZXMvcG9wdXAvV2lkZ2V0UG9wdXAuc3ZlbHRlIiwKICAgICJpc0R5bmFtaWNFbnRyeSI6IHRydWUsCiAgICAiaW1wb3J0cyI6IFsKICAgICAgIl9zaGFyZWQta2IxeXFIYUEuanMiLAogICAgICAiX1dpZGdldE1lc3NlbmdlcklucHV0LURIcjV1SHdkLmpzIgogICAgXQogIH0sCiAgInNyYy9tYWluLnRzIjogewogICAgImZpbGUiOiAiYXNzZXRzL21haW4tQi1WSGMxSzQuanMiLAogICAgIm5hbWUiOiAibWFpbiIsCiAgICAic3JjIjogInNyYy9tYWluLnRzIiwKICAgICJpc0VudHJ5IjogdHJ1ZSwKICAgICJpbXBvcnRzIjogWwogICAgICAiX3NoYXJlZC1rYjF5cUhhQS5qcyIKICAgIF0sCiAgICAiZHluYW1pY0ltcG9ydHMiOiBbCiAgICAgICJzcmMvZnJhbWVzL21lc3Nlbmdlci9XaWRnZXRNZXNzZW5nZXIuc3ZlbHRlIiwKICAgICAgInNyYy9mcmFtZXMvcG9wdXAvV2lkZ2V0UG9wdXAuc3ZlbHRlIgogICAgXQogIH0sCiAgInN0eWxlLmNzcyI6IHsKICAgICJmaWxlIjogImFzc2V0cy9zdHlsZS1DbGlKd1VUUi5jc3MiLAogICAgInNyYyI6ICJzdHlsZS5jc3MiCiAgfQp9"}},"time_used":3277,"timings":{"blocked":0,"dns":4,"connect":8,"send":0,"wait":8,"receive":0,"ssl":3256},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/52095.e6eb530a13b2febd2cd3.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:13.784Z","timestamp":1785148033784,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/52095.e6eb530a13b2febd2cd3.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:13 GMT\r\ncontent-type: text/css; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a61b1ff-18c2\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Thu, 23 Jul 2026 06:17:35 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/23/2026 10:17:26\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 673665c1bd34b30ba85d8d46a0546392\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":6338,"size_decoded":2044,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with very long lines (6338), with no line terminators","md5":"caf4bfb0a92f81c0fb9d32b268c23f3c","sha1":"9157a7392cd2a99623089b8a8b0c46066c18c88b","sha256":"3fac059dd2a8faed0d0e54c7f4f74b33d35ee9572c353c6fde78c6cd96f168a1","sha512":"d6b7104f441ac900f2633fda4217d59f42503ae78aed48880181f69174c8e2422ec2a64e191f78c7760476881aa76db8007e9f911ebe2ff98ccab39b640ff4ef","ssdeep":"192:lnsu2uCTwTyQnjnvOJOdr45YERrzxD0VOnPn3nTuouzTmTogen9gqpnq:BI","tlshash":"0fd1794cf146b43e265f353a4319d1eca218b4c2e9c21ff7b971d2244ae1bc2e5f991a","first_seen":"2026-07-23T14:00:31.721517Z","last_seen":"2026-07-27T12:53:42.487837Z","times_seen":348,"resource_available":false,"data":"W2RhdGEtdGhlbWU9bGlnaHRdey0tXzAtemtrcjp2YXIoLS1jb2xvci1jb2xkLWdyYXktOTAwKX1bZGF0YS10aGVtZT1kYXJrXXstLV8wLXpra3I6dmFyKC0tY29sb3ItY29sZC1ncmF5LTQ1MCl9Lml0ZW0tdlRtOE8wTE17dmVydGljYWwtYWxpZ246bWlkZGxlO3doaXRlLXNwYWNlOm5vd3JhcH0uaXRlbS12VG04TzBMTS5pbnRlcmFjdGl2ZS12VG04TzBMTXtjb2xvcjp2YXIoLS10di1jb2xvci1wb3B1cC1lbGVtZW50LXRleHQsdmFyKC0tY29sb3ItcG9wdXAtZWxlbWVudC10ZXh0KSl9Lml0ZW0tdlRtOE8wTE0uaW50ZXJhY3RpdmUtdlRtOE8wTE0uaG92ZXJlZC12VG04TzBMTSwuaXRlbS12VG04TzBMTS5pbnRlcmFjdGl2ZS12VG04TzBMTTphY3RpdmV7Y29sb3I6dmFyKC0tdHYtY29sb3ItcG9wdXAtZWxlbWVudC10ZXh0LWhvdmVyLHZhcigtLWNvbG9yLXBvcHVwLWVsZW1lbnQtdGV4dC1ob3ZlcikpfUBtZWRpYSAoYW55LWhvdmVyOmhvdmVyKXsuaXRlbS12VG04TzBMTS5pbnRlcmFjdGl2ZS12VG04TzBMTTpob3Zlcntjb2xvcjp2YXIoLS10di1jb2xvci1wb3B1cC1lbGVtZW50LXRleHQtaG92ZXIsdmFyKC0tY29sb3ItcG9wdXAtZWxlbWVudC10ZXh0LWhvdmVyKSl9fS5pdGVtLXZUbThPMExNLmludGVyYWN0aXZlLXZUbThPMExNLmhvdmVyZWQtdlRtOE8wTE17YmFja2dyb3VuZC1jb2xvcjp2YXIoLS10di1jb2xvci1wb3B1cC1lbGVtZW50LWJhY2tncm91bmQtaG92ZXIsdmFyKC0tY29sb3ItcG9wdXAtZWxlbWVudC1iYWNrZ3JvdW5kLWhvdmVyKSl9QG1lZGlhIChhbnktaG92ZXI6aG92ZXIpey5pdGVtLXZUbThPMExNLmludGVyYWN0aXZlLXZUbThPMExNOmhvdmVye2JhY2tncm91bmQtY29sb3I6dmFyKC0tdHYtY29sb3ItcG9wdXAtZWxlbWVudC1iYWNrZ3JvdW5kLWhvdmVyLHZhcigtLWNvbG9yLXBvcHVwLWVsZW1lbnQtYmFja2dyb3VuZC1ob3ZlcikpfX0uaXRlbS12VG04TzBMTS5pbnRlcmFjdGl2ZS12VG04TzBMTTphY3RpdmV7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS10di1jb2xvci1wb3B1cC1lbGVtZW50LWJhY2tncm91bmQtaG92ZXIsdmFyKC0tY29sb3ItY29udGFpbmVyLWZpbGwtcHJpbWFyeS1uZXV0cmFsLWxpZ2h0KSl9Lml0ZW0tdlRtOE8wTE0uZGlzYWJsZWQtdlRtOE8wTE17Y3Vyc29yOmRlZmF1bHQ7b3BhY2l0eTouNX0uaXRlbS12VG04TzBMTS5kaXNhYmxlZC12VG04TzBMTSwuaXRlbS12VG04TzBMTS5kaXNhYmxlZC12VG04TzBMTTphY3RpdmV7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS10di1jb2xvci1wb3B1cC1iYWNrZ3JvdW5kLHZhcigtLWNvbG9yLXBvcHVwLWJhY2tncm91bmQpKTtjb2xvcjp2YXIoLS10di1jb2xvci1wb3B1cC1lbGVtZW50LXRleHQsdmFyKC0tY29sb3ItcG9wdXAtZWxlbWVudC10ZXh0KSl9QG1lZGlhIChhbnktaG92ZXI6aG92ZXIpey5pdGVtLXZUbThPMExNLmRpc2FibGVkLXZUbThPMExNOmhvdmVye2JhY2tncm91bmQtY29sb3I6dmFyKC0tdHYtY29sb3ItcG9wdXAtYmFja2dyb3VuZCx2YXIoLS1jb2xvci1wb3B1cC1iYWNrZ3JvdW5kKSk7Y29sb3I6dmFyKC0tdHYtY29sb3ItcG9wdXAtZWxlbWVudC10ZXh0LHZhcigtLWNvbG9yLXBvcHVwLWVsZW1lbnQtdGV4dCkpfX0uaXRlbS12VG04TzBMTS5hY3RpdmUtdlRtOE8wTE0sLml0ZW0tdlRtOE8wTE0uYWN0aXZlLXZUbThPMExNOmFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXR2LWNvbG9yLXBvcHVwLWVsZW1lbnQtYmFja2dyb3VuZC1hY3RpdmUsdmFyKC0tY29sb3ItY29udGFpbmVyLWZpbGwtcHJpbWFyeS1uZXV0cmFsLWV4dHJhLWJvbGQpKTtjb2xvcjp2YXIoLS10di1jb2xvci1wb3B1cC1lbGVtZW50LXRleHQtYWN0aXZlLHZhcigtLWNvbG9yLWNvbnRlbnQtcHJpbWFyeS1pbnZlcnNlKSl9QG1lZGlhIChhbnktaG92ZXI6aG92ZXIpey5pdGVtLXZUbThPMExNLmFjdGl2ZS12VG04TzBMTTpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXR2LWNvbG9yLXBvcHVwLWVsZW1lbnQtYmFja2dyb3VuZC1hY3RpdmUsdmFyKC0tY29sb3ItY29udGFpbmVyLWZpbGwtcHJpbWFyeS1uZXV0cmFsLWV4dHJhLWJvbGQpKTtjb2xvcjp2YXIoLS10di1jb2xvci1wb3B1cC1lbGVtZW50LXRleHQtYWN0aXZlLHZhcigtLWNvbG9yLWNvbnRlbnQtcHJpbWFyeS1pbnZlcnNlKSl9fS5pdGVtLXZUbThPMExNLmFjdGl2ZS12VG04TzBMTSAuc2hvcnRjdXQtdlRtOE8wTE0sLml0ZW0tdlRtOE8wTE0uYWN0aXZlLXZUbThPMExNOmFjdGl2ZSAuc2hvcnRjdXQtdlRtOE8wTE17Y29sb3I6dmFyKC0tY29sb3ItY29udGVudC1zZWNvbmRhcnktaW52ZXJzZSl9QG1lZGlhIChhbnktaG92ZXI6aG92ZXIpey5pdGVtLXZUbThPMExNLmFjdGl2ZS12VG04TzBMTTpob3ZlciAuc2hvcnRjdXQtdlRtOE8wTE17Y29sb3I6dmFyKC0tY29sb3ItY29udGVudC1zZWNvbmRhcnktaW52ZXJzZSl9fS5pdGVtLXZUbThPMExNLm5vcm1hbC12VG04TzBMTXtoZWlnaHQ6MzJweH0uaXRlbS12VG04TzBMTS5iaWctdlRtOE8wTE17aGVpZ2h0OjY4cHh9Lmljb25DZWxsLXZUbThPMExNe21pbi13aWR0aDo2cHh9Lmljb24tdlRtOE8wTE17YWxpZ24taXRlbXM6Y2VudGVyO2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3BhZGRpbmctaW5saW5lLXN0YXJ0OjhweDt3aWR0aDoyOHB4fS5pY29uLXZUbThPMExNIHN2Z3toZWlnaHQ6MjhweDt3aWR0aDoyOHB4fS5jb250ZW50LXZUbThPMExNe2FsaWduLWl0ZW1zOmNlbnRlcjtkaXNwbGF5OmZsZXg7bWF4LXdpZHRoOjM2NXB4O3BhZGRpbmctaW5saW5lLWVuZDoyMHB4O3BhZGRpbmctaW5saW5lLXN0YXJ0OjRweH0ubGFiZWwtdlRtOE8wTE17ZmxleDoxIDEgYXV0bztmb250LXNpemU6MTRweDtvdmVyZmxvdy14OmhpZGRlbjtwYWRkaW5nLWlubGluZS1zdGFydDoycHg7dGV4dC1hbGlnbjpzdGFydH0udG9vbGJveC12VG04TzBMTXtmbGV4OjAgMSBhdXRvO2xpbmUtaGVpZ2h0OjE0cHg7bWFyZ2luLWlubGluZS1zdGFydDoxMHB4fS5mZWF0dXJlLW5vLW1vYmlsZXRvdWNoIC50b29sYm94LXZUbThPMExNLnNob3dUb29sYm94T25Ib3Zlci12VG04TzBMTXtvcGFjaXR5OjB9QG1lZGlhIChhbnktaG92ZXI6aG92ZXIpey5mZWF0dXJlLW5vLW1vYmlsZXRvdWNoIC5pdGVtLXZUbThPMExNOmhvdmVyIC50b29sYm94LXZUbThPMExNLnNob3dUb29sYm94T25Ib3Zlci12VG04TzBMTXtvcGFjaXR5OjF9fS5hcnJvd0ljb24tdlRtOE8wTE17ZmxleDowIDEgYXV0bzttYXJnaW4taW5saW5lLXN0YXJ0OjEwcHh9LmFycm93SWNvbi12VG04TzBMTSBzdmd7aGVpZ2h0OjEwcHg7ZmlsbDpjdXJyZW50Q29sb3J9LmFycm93SWNvbi12VG04TzBMTSBzdmc6ZGlyKHJ0bCl7dHJhbnNmb3JtOnNjYWxlWCgtMSl9LnNob3J0Y3V0LXZUbThPMExNe2NvbG9yOnZhcigtLXR2LWNvbG9yLXBvcHVwLWVsZW1lbnQtaGludC10ZXh0LHZhcigtLWNvbG9yLXBvcHVwLWVsZW1lbnQtaGludC10ZXh0KSk7ZmxleDowIDEgYXV0bztmb250LXNpemU6MTJweDttYXJnaW4taW5saW5lLXN0YXJ0OjEwcHg7cGFkZGluZy10b3A6MnB4fS5zdWJNZW51LXZUbThPMExNe2hlaWdodDowfS5pbnZpc2libGVIb3RrZXktdlRtOE8wTE17dmlzaWJpbGl0eTpoaWRkZW59Lml0ZW0tZDlqTE9MclJ7YWxpZ24taXRlbXM6ZmxleC1zdGFydDtib3gtc2l6aW5nOmJvcmRlci1ib3g7ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpmbGV4LXN0YXJ0O3BhZGRpbmctYmxvY2s6OHB4IDhweDtwYWRkaW5nLWlubGluZTo0MnB4IDhweDtwb3NpdGlvbjpyZWxhdGl2ZX0uaXRlbS1kOWpMT0xyUi5lbXB0eUljb25zLWQ5akxPTHJSe3BhZGRpbmctaW5saW5lLXN0YXJ0OjIwcHh9Lml0ZW0tZDlqTE9MclIubG9hZGluZy1kOWpMT0xyUntqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3Bvc2l0aW9uOnJlbGF0aXZlfS5pdGVtLWQ5akxPTHJSLmRpc2FibGVkLWQ5akxPTHJSe2N1cnNvcjpkZWZhdWx0O29wYWNpdHk6LjV9Lml0ZW0tZDlqTE9MclIuZGlzYWJsZWQtZDlqTE9MclIsLml0ZW0tZDlqTE9MclIuZGlzYWJsZWQtZDlqTE9MclI6YWN0aXZle2JhY2tncm91bmQtY29sb3I6dmFyKC0tdHYtY29sb3ItcG9wdXAtYmFja2dyb3VuZCx2YXIoLS1jb2xvci1wb3B1cC1iYWNrZ3JvdW5kKSk7Y29sb3I6dmFyKC0tdHYtY29sb3ItcG9wdXAtZWxlbWVudC10ZXh0LHZhcigtLWNvbG9yLXBvcHVwLWVsZW1lbnQtdGV4dCkpfUBtZWRpYSAoYW55LWhvdmVyOmhvdmVyKXsuaXRlbS1kOWpMT0xyUi5kaXNhYmxlZC1kOWpMT0xyUjpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXR2LWNvbG9yLXBvcHVwLWJhY2tncm91bmQsdmFyKC0tY29sb3ItcG9wdXAtYmFja2dyb3VuZCkpO2NvbG9yOnZhcigtLXR2LWNvbG9yLXBvcHVwLWVsZW1lbnQtdGV4dCx2YXIoLS1jb2xvci1wb3B1cC1lbGVtZW50LXRleHQpKX19Lml0ZW0tZDlqTE9MclIuaW50ZXJhY3RpdmUtZDlqTE9MclJ7Y29sb3I6dmFyKC0tdHYtY29sb3ItcG9wdXAtZWxlbWVudC10ZXh0LHZhcigtLWNvbG9yLXBvcHVwLWVsZW1lbnQtdGV4dCkpfS5pdGVtLWQ5akxPTHJSLmludGVyYWN0aXZlLWQ5akxPTHJSLmhvdmVyZWQtZDlqTE9MclIsLml0ZW0tZDlqTE9MclIuaW50ZXJhY3RpdmUtZDlqTE9MclI6YWN0aXZle2NvbG9yOnZhcigtLXR2LWNvbG9yLXBvcHVwLWVsZW1lbnQtdGV4dC1ob3Zlcix2YXIoLS1jb2xvci1wb3B1cC1lbGVtZW50LXRleHQtaG92ZXIpKX1AbWVkaWEgKGFueS1ob3Zlcjpob3Zlcil7Lml0ZW0tZDlqTE9MclIuaW50ZXJhY3RpdmUtZDlqTE9MclI6aG92ZXJ7Y29sb3I6dmFyKC0tdHYtY29sb3ItcG9wdXAtZWxlbWVudC10ZXh0LWhvdmVyLHZhcigtLWNvbG9yLXBvcHVwLWVsZW1lbnQtdGV4dC1ob3ZlcikpfX0uaXRlbS1kOWpMT0xyUi5pbnRlcmFjdGl2ZS1kOWpMT0xyUi5ob3ZlcmVkLWQ5akxPTHJSe2JhY2tncm91bmQtY29sb3I6dmFyKC0tdHYtY29sb3ItcG9wdXAtZWxlbWVudC1iYWNrZ3JvdW5kLWhvdmVyLHZhcigtLWNvbG9yLXBvcHVwLWVsZW1lbnQtYmFja2dyb3VuZC1ob3ZlcikpfUBtZWRpYSAoYW55LWhvdmVyOmhvdmVyKXsuaXRlbS1kOWpMT0xyUi5pbnRlcmFjdGl2ZS1kOWpMT0xyUjpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXR2LWNvbG9yLXBvcHVwLWVsZW1lbnQtYmFja2dyb3VuZC1ob3Zlcix2YXIoLS1jb2xvci1wb3B1cC1lbGVtZW50LWJhY2tncm91bmQtaG92ZXIpKX19Lml0ZW0tZDlqTE9MclIuaW50ZXJhY3RpdmUtZDlqTE9MclI6YWN0aXZle2JhY2tncm91bmQtY29sb3I6dmFyKC0tdHYtY29sb3ItcG9wdXAtZWxlbWVudC1iYWNrZ3JvdW5kLWhvdmVyLHZhcigtLWNvbG9yLWNvbnRhaW5lci1maWxsLXByaW1hcnktbmV1dHJhbC1saWdodCkpfS5pdGVtLWQ5akxPTHJSLm5vcm1hbC1kOWpMT0xyUnttaW4taGVpZ2h0OjQwcHh9Lml0ZW0tZDlqTE9MclIuYmlnLWQ5akxPTHJSe21pbi1oZWlnaHQ6NjhweH0uaWNvbi1kOWpMT0xyUnthbGlnbi1pdGVtczpjZW50ZXI7ZGlzcGxheTpmbGV4O2hlaWdodDoyOHB4O2luc2V0LWlubGluZS1zdGFydDo4cHg7anVzdGlmeS1jb250ZW50OmNlbnRlcjtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6NnB4O3dpZHRoOjI4cHh9Lmljb24tZDlqTE9MclIsLmxhYmVsLWQ5akxPTHJSe2NvbG9yOnZhcigtLXR2LWNvbG9yLXBvcHVwLWVsZW1lbnQtdGV4dCx2YXIoLS1jb2xvci1wb3B1cC1lbGVtZW50LXRleHQpKX0ubGFiZWwtZDlqTE9MclJ7ZmxleC1ncm93OjE7Zm9udC1zaXplOjE2cHg7bGluZS1oZWlnaHQ6MjRweDttYXJnaW4taW5saW5lLWVuZDo4cHg7bWF4LXdpZHRoOjEwMCU7d29yZC1icmVhazpicmVhay13b3JkfS50aXRsZS1kOWpMT0xyUntmb250LXdlaWdodDo3MDB9LnRpdGxlLWQ5akxPTHJSIC5pY29uLWQ5akxPTHJSOmRpcihydGwpe3RyYW5zZm9ybTpzY2FsZVgoLTEpfS5uZXN0ZWQtZDlqTE9MclJ7YWxpZ24taXRlbXM6Y2VudGVyO2FsaWduLXNlbGY6Y2VudGVyO2Rpc3BsYXk6ZmxleDtoZWlnaHQ6MThweDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO21hcmdpbi1pbmxpbmUtc3RhcnQ6YXV0bzt3aWR0aDoxOHB4fS5uZXN0ZWQtZDlqTE9MclI6ZGlyKHJ0bCl7dHJhbnNmb3JtOnNjYWxlWCgtMSl9LnNob3J0Y3V0LWQ5akxPTHJSe2xpbmUtaGVpZ2h0OjI0cHg7cGFkZGluZzowfS5yZW1vdmUtZDlqTE9MclIsLnNob3J0Y3V0LWQ5akxPTHJSe21hcmdpbi1pbmxpbmUtZW5kOjhweDttYXJnaW4taW5saW5lLXN0YXJ0OmF1dG99LnJlbW92ZS1kOWpMT0xyUnthbGlnbi1pdGVtczpjZW50ZXI7Y29sb3I6dmFyKC0tdHYtY29sb3ItcG9wdXAtZWxlbWVudC10ZXh0LHZhcigtLWNvbG9yLXBvcHVwLWVsZW1lbnQtdGV4dCkpO2Rpc3BsYXk6ZmxleDtoZWlnaHQ6MjRweH0="}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/37746.345227bb16e0d8bc9bd5.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:13.880Z","timestamp":1785148033880,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/37746.345227bb16e0d8bc9bd5.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:13 GMT\r\ncontent-type: text/css; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding, Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\netag: W/\"69f98b74-4a3\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Tue, 05 May 2026 06:17:24 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.51\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 05/05/2026 10:16:42\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: bfdddfef40ee8eab2192c70727000485\r\ncdn-cache: HIT\r\ncontent-encoding: br\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":1187,"size_decoded":1308,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with very long lines (1187), with no line terminators","md5":"7c2aff82ece78ae66e4fd48a3d376d48","sha1":"a0455b0a01ddb45dbeb672c1c2b4acd05473f387","sha256":"b7b76e631e49ee552d2d39a236f96bdfaf0b9feeb6bfc0f463b53af9b083016a","sha512":"eb59cb697bda650cf008b5547eb750fad0e6fb3532027021fcdf3c855b246b1f377f29bdde84c93f8e6514afcba0b90d725b44f933da0dca4ece00bb5204704f","ssdeep":"","tlshash":"59219099c45b006d493f13259bdd264d453d980262277eef39d1b0ce0a86adf23ff229","first_seen":"2026-04-09T17:47:32.401827Z","last_seen":"2026-07-27T12:53:06.167434Z","times_seen":618,"resource_available":false,"data":"LmRpYWxvZy1xeUN3MFBhTnttYXgtd2lkdGg6MzgwcHg7bWluLXdpZHRoOjI4MHB4O3Bvc2l0aW9uOmZpeGVkO3dpZHRoOjEwMCV9LmRpYWxvZy1xeUN3MFBhTiBbZGF0YS1kcmFnZy1hcmVhPXRydWVde2N1cnNvcjpncmFifS5kaWFsb2ctcXlDdzBQYU4gW2RhdGEtZHJhZ2ctYXJlYT10cnVlXS5kcmFnZ2luZy1xeUN3MFBhTntjdXJzb3I6Z3JhYmJpbmd9aHRtbC50aGVtZS1kYXJrIC5kaWFsb2ctcXlDdzBQYU4ubW9iaWxlLXF5Q3cwUGFOe2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItYmxhY2spfWh0bWwudGhlbWUtZGFyayAuZGlhbG9nLXF5Q3cwUGFOLm1vYmlsZS1xeUN3MFBhTjpub3QoLmZ1bGxzY3JlZW4tcXlDdzBQYU4pe2JveC1zaGFkb3c6MCA0cHggMTZweCAwIHZhcigtLWNvbG9yLWNvbGQtZ3JheS03NTApLDAgMCAycHggMCB2YXIoLS1jb2xvci1jb2xkLWdyYXktNzUwKX0uZGlhbG9nQW5pbWF0ZWRBcHBlYXJhbmNlLXF5Q3cwUGFOe2FuaW1hdGlvbi1kdXJhdGlvbjouM3M7YW5pbWF0aW9uLW5hbWU6ZGlhbG9nQW5pbWF0aW9uLXF5Q3cwUGFOO3RyYW5zZm9ybS1vcmlnaW46MCAwfS5kaWFsb2dBbmltYXRlZEFwcGVhcmFuY2UtcXlDdzBQYU46ZGlyKHJ0bCl7dHJhbnNmb3JtLW9yaWdpbjoxMDAlIDB9QGtleWZyYW1lcyBkaWFsb2dBbmltYXRpb24tcXlDdzBQYU57MCV7b3BhY2l0eTowO3RyYW5zZm9ybTp0cmFuc2xhdGUodmFyKC0tYW5pbWF0aW9uVHJhbnNsYXRlU3RhcnRYKSx2YXIoLS1hbmltYXRpb25UcmFuc2xhdGVTdGFydFkpKSBzY2FsZSgwKX10b3tvcGFjaXR5OjE7dHJhbnNmb3JtOnRyYW5zbGF0ZSh2YXIoLS1hbmltYXRpb25UcmFuc2xhdGVFbmRYKSx2YXIoLS1hbmltYXRpb25UcmFuc2xhdGVFbmRZKSkgc2NhbGUoMSl9fS5kaWFsb2dUb29sdGlwLXF5Q3cwUGFOe2NvbG9yOiNmZmY7Zm9udC1zaXplOjE0cHg7aW5zZXQtaW5saW5lLXN0YXJ0OjUwJTtsaW5lLWhlaWdodDoyMXB4O21heC13aWR0aDo1NDBweDtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6LTIwcHg7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTUwJSk7d2lkdGg6bWF4LWNvbnRlbnR9QG1lZGlhIChtYXgtd2lkdGg6NzY4cHgpey5kaWFsb2dUb29sdGlwLXF5Q3cwUGFOe21heC13aWR0aDoyNDBweH19LmRpYWxvZ1Rvb2x0aXAtcXlDdzBQYU46ZGlyKHJ0bCl7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoNTAlKX0="}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/6647.ad458058dd5c882833b6.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:13.996Z","timestamp":1785148033996,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/6647.ad458058dd5c882833b6.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:13 GMT\r\ncontent-type: text/css; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding, Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\netag: W/\"69f98b73-51c\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Tue, 05 May 2026 06:17:23 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.51\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 05/05/2026 10:16:43\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: a2ba63dfde4284fbec4b8b77f42eea97\r\ncdn-cache: HIT\r\ncontent-encoding: br\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":1308,"size_decoded":1279,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with very long lines (1308), with no line terminators","md5":"be8b98c40e9ede92e385a54517be043e","sha1":"9e3083b2509f546980d31913c01ffa889404ba0f","sha256":"6be44896f44575a2b9af3ccc5d758e4ad7103345fdc2c4c263d1474601c04d51","sha512":"fcd367b79e0fa94f4c8a8cadac7e6adfd831dc2f527cea1c8ad76447347d772667190dc2522fe7d116c22fdc28f2ff4eb0ddaaf936573c5b57189bb3129d2b12","ssdeep":"","tlshash":"3e2136a6f052453a3fa3173f0315f218b3c4fc62fc172b42f960d84004c62f3259aa46","first_seen":"2026-04-01T05:38:53.862017Z","last_seen":"2026-07-27T12:48:39.744955Z","times_seen":218,"resource_available":false,"data":"W2RhdGEtdGhlbWU9ZGFya10sW2RhdGEtdGhlbWU9bGlnaHRdey0tXzAtUGdaUTp2YXIoLS1jb2xvci13aGl0ZSl9LndyYXBwZXItSzR1NE5nM1p7d2lkdGg6dmFyKC0taGludC13aXphcmQtd2lkdGgsMjIwcHgpfS50aXRsZS1LNHU0TmczWntjb2xvcjp2YXIoLS1fMC1QZ1pRKTtmb250LXNpemU6MTZweDtmb250LXdlaWdodDo3MDA7bGluZS1oZWlnaHQ6MjRweH0uYWRkaXRpb25hbEJ1dHRvbi1LNHU0TmczWnstLXVpLWxpYi1saWdodC1idXR0b24tY29sb3ItY29udGVudDp2YXIoLS1jb2xvci13aGl0ZSl9QG1lZGlhIChhbnktaG92ZXI6aG92ZXIpey5hZGRpdGlvbmFsQnV0dG9uLUs0dTROZzNaOmhvdmVyey0tdWktbGliLWxpZ2h0LWJ1dHRvbi1jb2xvci1iZzp2YXIoLS1jb2xvci1jb2xkLWdyYXktMTAwKTstLXVpLWxpYi1saWdodC1idXR0b24tY29sb3ItYm9yZGVyOnZhcigtLWNvbG9yLWNvbGQtZ3JheS0xMDApOy0tdWktbGliLWxpZ2h0LWJ1dHRvbi1jb2xvci1jb250ZW50OnZhcigtLWNvbG9yLWNvbGQtZ3JheS05MDApfX0uYnV0dG9ucy1LNHU0TmczWntkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OmZsZXgtZW5kfS50ZXh0LUs0dTROZzNae2NvbG9yOnZhcigtLV8wLVBnWlEpO2ZvbnQtc2l6ZToxNHB4O2xpbmUtaGVpZ2h0OjIxcHh9LmJ1dHRvbi1LNHU0TmczWntib3gtc2hhZG93Om5vbmU7Y3Vyc29yOmRlZmF1bHQ7ZmxvYXQ6aW5saW5lLWVuZDttYXJnaW4tdG9wOjE1cHg7LS11aS1saWItbGlnaHQtYnV0dG9uLWNvbG9yLWJnOnZhcigtLWNvbG9yLWNvbGQtZ3JheS0xMDApOy0tdWktbGliLWxpZ2h0LWJ1dHRvbi1jb2xvci1ib3JkZXI6dmFyKC0tY29sb3ItY29sZC1ncmF5LTEwMCk7LS11aS1saWItbGlnaHQtYnV0dG9uLWNvbG9yLWNvbnRlbnQ6dmFyKC0tY29sb3ItY29sZC1ncmF5LTkwMCl9QG1lZGlhIChhbnktaG92ZXI6aG92ZXIpey5idXR0b24tSzR1NE5nM1o6aG92ZXJ7LS11aS1saWItbGlnaHQtYnV0dG9uLWNvbG9yLWJnOnZhcigtLWNvbG9yLWNvbGQtZ3JheS0xNTApOy0tdWktbGliLWxpZ2h0LWJ1dHRvbi1jb2xvci1ib3JkZXI6dmFyKC0tY29sb3ItY29sZC1ncmF5LTE1MCl9fS5idXR0b24tSzR1NE5nM1o6Zm9jdXMtdmlzaWJsZXtib3gtc2hhZG93OjAgMCAwIDZweCB2YXIoLS11aS1saWItbGlnaHQtYnV0dG9uLWNvbG9yLWJnKX0ucGxhY2VIb2xkZXIteWx3YWVfR3R7aGVpZ2h0OjEwMCU7cG9pbnRlci1ldmVudHM6bm9uZTtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MH0uaGlkZGVuLXlsd2FlX0d0e3BvaW50ZXItZXZlbnRzOm5vbmU7dmlzaWJpbGl0eTpoaWRkZW59"}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/42301.2252d1cccb40351bd581.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.066Z","timestamp":1785148034066,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/42301.2252d1cccb40351bd581.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\ncontent-type: text/css; charset=utf-8\r\ncontent-length: 52\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\netag: \"6a4360b8-34\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Tue, 30 Jun 2026 06:22:48 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.57\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 06/30/2026 11:55:10\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: ac0a947000c72691a59d4f5f6678aa00\r\ncdn-cache: HIT\r\naccept-ranges: bytes\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":52,"size_decoded":836,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with no line terminators","md5":"a3f3974eb6489645604008e5c8dc9aec","sha1":"dda40c4a2b2001c0b04b64912fad682f3ad9f45a","sha256":"cc74f1cf1790e71081bd39cd986428e140164c232ebd1b0353c8da71bc484a7e","sha512":"96d6ddc62f46e0fd2299c1f3a56f7180b9d38b078a3da6cddecf77f35fd60664b3990e79485d964bfa98c68b2ee7c1619a826a84c2f582470ec3b21b4cf84963","ssdeep":"","tlshash":"d190023406a0a4a0985beed52560c88490eca01989a26e4e43fc76a525b28c4192a59d","first_seen":"2026-06-30T21:57:43.390072Z","last_seen":"2026-07-27T12:48:39.619537Z","times_seen":222,"resource_available":false,"data":"LnNwaW5uZXJXcmFwLVpadHVGSVBwe2hlaWdodDo2OHB4O3Bvc2l0aW9uOnJlbGF0aXZlfQ=="}},"time_used":1,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":1,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/8946.0be20cf5b56838bd1cdd.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.556Z","timestamp":1785148034556,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/8946.0be20cf5b56838bd1cdd.js HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a608293-80bb\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Wed, 22 Jul 2026 08:42:59 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/22/2026 11:01:58\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 26c35dde329fcc0f115a32fdd5de90bb\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":32955,"size_decoded":10982,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (3072)","md5":"db8665d50bbb7613ae4d5ff6618efb3c","sha1":"72a0474595ec30ff0f5b29570e7d187a4fa34bf9","sha256":"fb3be873ebdfbe3bb4183024dae7c56fffbf7bea33c01b1f7e13d8881b2d73b9","sha512":"a6a8b9b47236538cc2a9b1b522fad8d83f2d3dc7bfbe876ca6cce7a11cb9e780846d3701f295f97ada93ab31796dc3f2300f38706cefc2b939261da5325e75ca","ssdeep":"768:3iSitKD8BRCVEvoJvvI2TWRe3/E05YFa9dOJiGHE9E1RInrGhbnFT8hu7tOq+CKX:bitKDeSEAJHj3f8hbWBp","tlshash":"a5e2f7513531714852fba5eb99da062ce334732ce8248e25a8f1dc8c7ae5ae0e377d4c","first_seen":"2026-07-22T17:32:48.084118Z","last_seen":"2026-07-27T12:48:39.778144Z","times_seen":60,"resource_available":true,"data":"KHNlbGYud2VicGFja0NodW5rdHJhZGluZ3ZpZXc9c2VsZi53ZWJwYWNrQ2h1bmt0cmFkaW5ndmlld3x8W10pLnB1c2goW1s4OTQ2XSx7NzI3NjIzKGUpe2UuZXhwb3J0cz17ImNoZWNrYm94LXByaW1hcnktZGVmYXVsdC1iZyI6InZhcigtLWNvbG9yLWNvbnRhaW5lci1maWxsLXByaW1hcnktbmV1dHJhbC1leHRyYS1ib2xkKSIsImNoZWNrYm94LWRhbmdlci1kZWZhdWx0LWJnIjoidmFyKC0tY29sb3ItY29udGFpbmVyLWZpbGwtcHJpbWFyeS1kYW5nZXItYm9sZCkiLCJjaGVja2JveC1wcmltYXJ5LWZnIjoidmFyKC0tY29sb3ItY29udGFpbmVyLWZpbGwtcXVpbmFyeS1pbnZlcnNlKSIsImNoZWNrYm94LWRhbmdlci1mZyI6InZhcigtLWNvbG9yLWNvbnRhaW5lci1maWxsLXF1YXRlcm5hcnktaW52ZXJzZSkiLHByaW1hcnk6InByaW1hcnktWThvRlRfUFoiLGRhbmdlcjoiZGFuZ2VyLVk4b0ZUX1BaIn19LDM1NDMzMShlKXtlLmV4cG9ydHM9e3dyYXBwZXI6IndyYXBwZXItVHk1TzFXSlEiLGRpck1hdGNoaW5nOiJkaXJNYXRjaGluZy1UeTVPMVdKUSJ9fSw3OTYwMTAoZSl7ZS5leHBvcnRzPXt3cmFwOiJ3cmFwLWpQSWFPOEh1In19LDYzNjk4NihlKXtlLmV4cG9ydHM9e2N1c3RvbUxpc3RJdGVtOiJjdXN0b21MaXN0SXRlbS05UTlGSHlybiIsY2xpY2thYmxlOiJjbGlja2FibGUtOVE5Rkh5cm4ifX0sOTk0MjgoZSl7ZS5leHBvcnRzPXtkaXZpZGVyOiJkaXZpZGVyLVpkX3RxdWNEIixsaW5lOiJsaW5lLVpkX3RxdWNEIn19LDIxMjY3MihlKXtlLmV4cG9ydHM9e3dyYXBwZXI6IndyYXBwZXItS1VpdHN0cEoiLHByaW1hcnlUaXRsZVdyYXBwZXI6InByaW1hcnlUaXRsZVdyYXBwZXItS1VpdHN0cEoiLHNlY29uZGFyeVRpdGxlV3JhcHBlcjoic2Vjb25kYXJ5VGl0bGVXcmFwcGVyLUtVaXRzdHBKIix0aXRsZToidGl0bGUtS1VpdHN0cEoiLGNvbnRlbnQ6ImNvbnRlbnQtS1VpdHN0cEoiLGxlZnQ6ImxlZnQtS1VpdHN0cEoiLHdpdGhMZWZ0U2xvdDoid2l0aExlZnRTbG90LUtVaXRzdHBKIixzcGFjZToic3BhY2UtS1VpdHN0cEoiLGljb246Imljb24tS1VpdHN0cEoifX0sMjIxNDk2KGUpe2UuZXhwb3J0cz17YnV0dG9uOiJidXR0b24tT3diR1Z5YTMiLHRleHQ6InRleHQtT3diR1Z5YTMifX0sODY0NzM2KGUpe2UuZXhwb3J0cz17Y29udGV4dEFjdGlvbnM6ImNvbnRleHRBY3Rpb25zLXVCSmhqVVY4IixoaWRlSWZOb0hvdmVyOiJoaWRlSWZOb0hvdmVyLXVCSmhqVVY4Iixzb21lQ29udGV4dEFjdGlvbkZvY3VzZWQ6InNvbWVDb250ZXh0QWN0aW9uRm9jdXNlZC11QkpoalVWOCJ9fSw2OTE4MyhlKXtlLmV4cG9ydHM9e3JpZ2h0OiJyaWdodC1PSUJrazNnSyIsYXJyb3c6ImFycm93LU9JQmtrM2dLIn19LDYyNTcwOShlKXtlLmV4cG9ydHM9e3NtYWxsOiJzbWFsbC10V0RJQ1RheSIsbWVkaXVtOiJtZWRpdW0tdFdESUNUYXkiLGxhcmdlOiJsYXJnZS10V0RJQ1RheSIsc3dpdGNoVmlldzoic3dpdGNoVmlldy10V0RJQ1RheSIsY2hlY2tlZDoiY2hlY2tlZC10V0RJQ1RheSIsZGlzYWJsZWQ6ImRpc2FibGVkLXRXRElDVGF5Iix0cmFjazoidHJhY2stdFdESUNUYXkiLHRodW1iOiJ0aHVtYi10V0RJQ1RheSJ9fSw3OTgwMDIoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7Q2hlY2tib3hWaWV3OigpPT5zfSk7dmFyIG89big3Nzk0NzQpLGk9big5MTQ0ODcpLGE9bi5uKGkpLHI9big1MzYxMjUpLGw9big3Mjc2MjMpLGM9bi5uKGwpO2Z1bmN0aW9uIHMoZSl7Y29uc3R7Y2hlY2tlZDp0LGNsYXNzTmFtZTpuLGRpc2FibGVkOmksaW50ZW50Omw9InByaW1hcnkiLGRhdGFRYUlkOnMsLi4uZH09ZTtyZXR1cm4gby5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6YSgpKGMoKVtsXSxlLmNsYXNzTmFtZSksLi4uZH0sby5jcmVhdGVFbGVtZW50KHIuQ2hlY2tib3hWaWV3SW1wbCx7ZGlzYWJsZWQ6aSxjaGVja2VkOnQsZGF0YVFhSWQ6c30pKX19LDYzODg3MihlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtTdmdJY29uTGlzdEl0ZW1QYXJ0OigpPT5yfSk7dmFyIG89big3Nzk0NzQpLGk9big0NTA4MiksYT1uKDIxNzI3NCk7ZnVuY3Rpb24gcihlKXtjb25zdHtpY29uU3ZnOnQsZGlyTWF0Y2hpbmc6bn09ZTtyZXR1cm4gby5jcmVhdGVFbGVtZW50KGkuV3JhcHBlcix7ZGlyTWF0Y2hpbmc6bn0sby5jcmVhdGVFbGVtZW50KGEuQmxvY2tJY29uLHtpY29uOnR9KSl9fSw1OTQzMjMoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7VXJsSWNvbkxpc3RJdGVtUGFydDooKT0+bH0pO3ZhciBvPW4oNzc5NDc0KSxpPW4oNDUwODIpLGE9big3NDE0MDUpLHI9bigzODc3NzQpO2Z1bmN0aW9uIGwoZSl7Y29uc3QgdD0oMCxvLnVzZUNvbnRleHQpKGEuTGlzdEl0ZW1IYXNEZXNjcmlwdGlvbkNvbnRleHQpLHtpY29uVXJsOm4scGxhY2Vob2xkZXJMZXR0ZXI6bCxkaXJNYXRjaGluZzpjfT1lO3JldHVybiBvLmNyZWF0ZUVsZW1lbnQoaS5XcmFwcGVyLHtkaXJNYXRjaGluZzpjfSxvLmNyZWF0ZUVsZW1lbnQoci5DaXJjbGVMb2dvLHtzaXplOnQ/InhzbWFsbCI6Inh4eHNtYWxsIixsb2dvVXJsOm4scGxhY2Vob2xkZXJMZXR0ZXI6bH0pKX19LDQ1MDgyKGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse1dyYXBwZXI6KCk9PmN9KTt2YXIgbz1uKDc3OTQ3NCksaT1uKDkxNDQ4NyksYT1uLm4oaSkscj1uKDM1NDMzMSksbD1uLm4ocik7ZnVuY3Rpb24gYyhlKXtyZXR1cm4gby5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6YSgpKGwoKS53cmFwcGVyLGUuZGlyTWF0Y2hpbmcmJmwoKS5kaXJNYXRjaGluZyksaW5lcnQ6ZS5pbmVydD8idHJ1ZSI6dm9pZCAwfSxlLmNoaWxkcmVuKX19LDU3NDA3NyhlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtDaGVja2JveExpc3RJdGVtOigpPT5kfSk7dmFyIG89big3Nzk0NzQpLGk9big3OTgwMDIpLGE9big1NjU3NDUpLHI9big2Mjg4MjUpLGw9bigzNDUxMTYpLGM9big3OTYwMTApLHM9bi5uKGMpO2Z1bmN0aW9uIGQoZSl7CmNvbnN0e2xpc3RJdGVtUmVmOnQsbGlzdEl0ZW1CdXR0b25SZWY6bixsaXN0SXRlbUJ1dHRvbklkOmMscm9sZTpkLHRpdGxlOnUsZGVzY3JpcHRpb246cCxjaGVja2VkOm0sb25DbGljazpJLGFyaWFDaGVja2VkOnYsbGVmdFNsb3Q6QyxyaWdodFNsb3Q6YixkaXNhYmxlZDpmLHRhYkluZGV4OmgsZGF0YVFhSWQ6aywuLi5FfT1lLE89KDAsbC5maWx0ZXJDaGVja2VkRGF0YVByb3BzKShFKSxnPUFycmF5LmlzQXJyYXkoQyk/QzpbQ107cmV0dXJuIG8uY3JlYXRlRWxlbWVudChyLkxpc3RJdGVtLHtsaXN0SXRlbVJlZjp0LGxpc3RJdGVtQnV0dG9uUmVmOm4sbGlzdEl0ZW1CdXR0b25JZDpjLGFyaWFDaGVja2VkOnYscm9sZTpkLHRpdGxlOnUsZGVzY3JpcHRpb246cCxkaXNhYmxlZDpmLGxlZnRTbG90OltvLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpzKCkud3JhcCxrZXk6ImNoZWNrYm94In0sby5jcmVhdGVFbGVtZW50KGkuQ2hlY2tib3hWaWV3LHtjaGVja2VkOm19KSksLi4uZy5maWx0ZXIoYS5pc0V4aXN0ZW50KS5tYXAoKChlLHQpPT5vLmNyZWF0ZUVsZW1lbnQoby5GcmFnbWVudCx7a2V5OnR9LGUpKSldLHJpZ2h0U2xvdDpiLG9uQ2xpY2s6SSx0YWJJbmRleDpoLGRhdGFRYUlkOmssLi4uT30pfX0sODk2MjM3KGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse0N1c3RvbUxpc3RJdGVtOigpPT5zfSk7dmFyIG89big3Nzk0NzQpLGk9big5MTQ0ODcpLGE9bi5uKGkpLHI9bigzNDUxMTYpLGw9big2MzY5ODYpLGM9bi5uKGwpO2NvbnN0IHM9KDAsby5mb3J3YXJkUmVmKSgoKGUsdCk9Pntjb25zdHtpZDpuLGNoaWxkcmVuOmksb25DbGljazpsLGRpc2FibGVkOnMsZm9jdXNhYmxlOmQscm9sZTp1LGFyaWFMYWJlbDpwLGFyaWFFeHBhbmRlZDptLGFyaWFDb250cm9sczpJLGFyaWFIYXNwb3B1cDp2LGFyaWFMZXZlbDpDLGRhdGFRYUlkOmIsLi4uZn09ZSxoPSgwLHIuZmlsdGVyQ2hlY2tlZERhdGFQcm9wcykoZiksaz1sPyJidXR0b24iOiJkaXYiLEU9ZHx8bCxPPXM/dm9pZCAwOmw7cmV0dXJuIG8uY3JlYXRlRWxlbWVudChrLHtpZDpuLGNsYXNzTmFtZTphKCkoYygpLmN1c3RvbUxpc3RJdGVtLE8mJmMoKS5jbGlja2FibGUpLG9uQ2xpY2s6TywiYXJpYS1kaXNhYmxlZCI6cywiYXJpYS1sYWJlbCI6cCwiYXJpYS1leHBhbmRlZCI6bSwiYXJpYS1jb250cm9scyI6SSwiYXJpYS1oYXNwb3B1cCI6diwiYXJpYS1sZXZlbCI6Qyxyb2xlOnUsdGFiSW5kZXg6RT8wOnZvaWQgMCxyZWY6dCwuLi5oLCJkYXRhLXFhLWlkIjpifSxvLmNyZWF0ZUVsZW1lbnQoImRpdiIse2luZXJ0OnM/InRydWUiOnZvaWQgMH0saSkpfSkpfSw3MzI3MzEoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7RGl2aWRlckxpc3RJdGVtOigpPT5yfSk7dmFyIG89big3Nzk0NzQpLGk9big5OTQyOCksYT1uLm4oaSk7ZnVuY3Rpb24gcihlKXtjb25zdHtyb2xlOnR9PWU7cmV0dXJuIG8uY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOmEoKS5kaXZpZGVyLHJvbGU6dH0sby5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6YSgpLmxpbmV9KSl9fSw4NDQ4NzEoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7U2VjdGlvbkxpc3RJdGVtOigpPT5sfSk7dmFyIG89big3Nzk0NzQpLGk9big5MzU1MzUpLGE9bigxNDc5MDEpLHI9bigzNDUxMTYpO2Z1bmN0aW9uIGwoZSl7Y29uc3R7aWQ6dCx0aXRsZTpuLGNoaWxkcmVuOmwsaXRlbVJvbGU6YyxhcmlhTGFiZWw6cyxyaWdodFNsb3Q6ZCxyaWdodFNsb3RBcmlhTGFiZWxsZWRieTp1LGRhdGFRYUlkOnAsb25DbGljazptLG9uS2V5RG93bjpJLGlzV3JhcHBlZDp2LC4uLkN9PWUsYj0oMCxyLmZpbHRlckNoZWNrZWREYXRhUHJvcHMpKEMpLGY9KDAsby51c2VJZCkoKSxoPSgwLG8udXNlSWQpKCksaz12b2lkIDAhPT1uO3JldHVybiBvLmNyZWF0ZUVsZW1lbnQoby5GcmFnbWVudCxudWxsLGsmJm8uY3JlYXRlRWxlbWVudChpLlRpdGxlTGlzdEl0ZW0se2RhdGFRYUlkOigwLGEuY29uY2F0SWZOb3ROdWxsKShgJHthLlVJX0xJQl9EQVRBX1FBX0lEX1BSRUZJWH1saXN0LXNlY3Rpb24tdGl0bGVgLHApLGlkOnQsdGl0bGU6bixyb2xlOmMscmlnaHRTbG90OmQscmlnaHRTbG90QXJpYUxhYmVsbGVkYnk6dSxhcmlhTGFiZWw6cyx2YXJpYW50OiJzZWNvbmRhcnkiLGFyaWFDb250cm9sczp2b2lkIDAhPT12P2g6dm9pZCAwLHRpdGxlSWQ6Zix3cmFwcGVkOnYsb25DbGljazptLG9uS2V5RG93bjpJLC4uLmJ9KSxvLmNyZWF0ZUVsZW1lbnQoImRpdiIse3JvbGU6Imdyb3VwIiwiYXJpYS1sYWJlbGxlZGJ5IjpmLGlkOmgsImRhdGEtcWEtaWQiOigwLGEuY29uY2F0SWZOb3ROdWxsKShgJHthLlVJX0xJQl9EQVRBX1FBX0lEX1BSRUZJWH1saXN0LXNlY3Rpb24tY29udGVudGAscCl9LCF2JiZsKSl9fSw5MzU1MzUoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7VGl0bGVMaXN0SXRlbTooKT0+Q30pO3ZhciBvLGk9big3Nzk0NzQpLGE9big5MTQ0ODcpLHI9bi5uKGEpLGw9bigyNzMzMTApLGM9big4NTkwOTEpLHM9bigzNDUxMTYpLGQ9bigxOTQ2NDgpLHU9bi5uKGQpLHA9big1NDMzMzkpLG09bi5uKHApLEk9bigyMTI2NzIpLHY9bi5uKEkpO2Z1bmN0aW9uIEMoZSl7Y29uc3R7aWQ6dCxyb2xlOm4sbGVmdFNsb3Q6byx0aXRsZTphLG9uQ2xpY2s6ZCxhcmlhTGFiZWw6cCxyaWdodFNsb3Q6SSxyaWdodFNsb3RBcmlhTGFiZWxsZWRieTpDLGxpc3RJdGVtQnV0dG9uUmVmOmIsdmFyaWFudDpmPSJwcmltYXJ5IixhcmlhQ29udHJvbHM6aCxhcmlhTGV2ZWw6ayx0aXRsZUlkOkUsd3JhcHBlZDpPLGRhdGFRYUlkOmcsb25LZXlEb3duOngsbmVzdGVkTGlzdHNBcmlhT3duczpTLG5lc3RlZExpc3RBcmlhSGlkZGVuOnksLi4uTH09ZSxBPSgwLHMuZmlsdGVyQ2hlY2tlZERhdGFQcm9wcykoTCksdz12b2lkIDAhPT1PO3JldHVybiBpLmNyZWF0ZUVsZW1lbnQoYy5UaXRsZVNlY3Rpb25MaXN0SXRlbSx7ZGF0YVFhSWQ6ZyxpZDp0LHJvbGU6bixvbkNsaWNrOmQsb25LZXlEb3duOngscmlnaHRTbG90OkkscmlnaHRTbG90QXJpYUxhYmVsbGVkYnk6QyxhcmlhTGFiZWw6cCwKY2xhc3NOYW1lOnIoKSh2KCkud3JhcHBlcixvJiZ2KCkud2l0aExlZnRTbG90LHYoKVtgJHtmfVRpdGxlV3JhcHBlcmBdKSxsaXN0SXRlbUJ1dHRvblJlZjpiLGZvY3VzYWJsZTp3LGFyaWFFeHBhbmRlZDp3PyFPOnZvaWQgMCxhcmlhQ29udHJvbHM6aCxhcmlhTGV2ZWw6ayxuZXN0ZWRMaXN0c0FyaWFPd25zOlMsbmVzdGVkTGlzdEFyaWFIaWRkZW46eSwuLi5BfSxpLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTp2KCkuY29udGVudH0sbyYmaS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6digpLmxlZnR9LG8pLGkuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOnYoKS50aXRsZSxpZDpFfSxhKSksdyYmaS5jcmVhdGVFbGVtZW50KGkuRnJhZ21lbnQsbnVsbCxpLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTp2KCkuc3BhY2V9KSxpLmNyZWF0ZUVsZW1lbnQobC5JY29uLHtjbGFzc05hbWU6digpLmljb24saWNvbjpPP3UoKTptKCl9KSkpfSFmdW5jdGlvbihlKXtlLlByaW1hcnk9InByaW1hcnkiLGUuU2Vjb25kYXJ5PSJzZWNvbmRhcnkifShvfHwobz17fSkpfSw4NTkwOTEoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7VGl0bGVTZWN0aW9uTGlzdEl0ZW06KCk9Pmx9KTt2YXIgbz1uKDc3OTQ3NCksaT1uKDg5NjIzNyksYT1uKDE0NzkwMSkscj1uKDM0NTExNik7ZnVuY3Rpb24gbChlKXtjb25zdHtpZDp0LHJvbGU6bixvbkNsaWNrOmwscmlnaHRTbG90OmMscmlnaHRTbG90QXJpYUxhYmVsbGVkYnk6cyxmb2N1c2FibGU6ZCxhcmlhRXhwYW5kZWQ6dSxhcmlhQ29udHJvbHM6cCxhcmlhSGFzcG9wdXA6bSxhcmlhTGV2ZWw6SSxhcmlhTGFiZWw6dixjaGlsZHJlbjpDLGNsYXNzTmFtZTpiLGxpc3RJdGVtQnV0dG9uUmVmOmYsZGF0YVFhSWQ6aCxvbktleURvd246ayxuZXN0ZWRMaXN0c0FyaWFPd25zOkUsbmVzdGVkTGlzdEFyaWFIaWRkZW46TywuLi5nfT1lLHg9KDAsci5maWx0ZXJDaGVja2VkRGF0YVByb3BzKShnKSxTPSgwLG8udXNlSWQpKCk7cmV0dXJuIG8uY3JlYXRlRWxlbWVudCgiZGl2Iix7ImRhdGEtcWEtaWQiOmgsb25LZXlEb3duOmt9LG8uY3JlYXRlRWxlbWVudChpLkN1c3RvbUxpc3RJdGVtLHtpZDp0LHJvbGU6bixvbkNsaWNrOmwsZm9jdXNhYmxlOmR8fCEhYyxyZWY6ZixhcmlhRXhwYW5kZWQ6dT8/KCEhY3x8dm9pZCAwKSxhcmlhQ29udHJvbHM6cD8/KGM/Uzp2b2lkIDApLGFyaWFIYXNwb3B1cDptPz8oYz8ibWVudSI6dm9pZCAwKSxhcmlhTGV2ZWw6SSxhcmlhTGFiZWw6dixkYXRhUWFJZDpgJHthLlVJX0xJQl9EQVRBX1FBX0lEX1BSRUZJWH10aXRsZS1saXN0LWl0ZW1gLC4uLnh9LG8uY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOmJ9LEMsYykpLG8uY3JlYXRlRWxlbWVudCgiZGl2Iix7aWQ6Uyxyb2xlOiJtZW51IiwiYXJpYS1sYWJlbGxlZGJ5IjpzLCJhcmlhLW9yaWVudGF0aW9uIjoiaG9yaXpvbnRhbCIsImFyaWEtb3ducyI6RSwiYXJpYS1oaWRkZW4iOk99KSl9fSw4NjE2MihlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtNZW51Q29udGV4dFByb3ZpZGVyOigpPT5hLHVzZU1lbnVDb250ZXh0OigpPT5yfSk7dmFyIG89big3Nzk0NzQpO2NvbnN0IGk9KDAsby5jcmVhdGVDb250ZXh0KSh1bmRlZmluZWQpO2Z1bmN0aW9uIGEoZSl7Y29uc3R7ZGVmYXVsdENsb3NlT25DbGljazp0LGNoaWxkcmVuOm59PWU7cmV0dXJuIG8uY3JlYXRlRWxlbWVudChpLlByb3ZpZGVyLHt2YWx1ZTp0fSxuKX1mdW5jdGlvbiByKCl7cmV0dXJuKDAsby51c2VDb250ZXh0KShpKX19LDgwODk0NihlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtNZW51UG9wb3ZlcjooKT0+UWV9KTt2YXIgbz1uKDc3OTQ3NCksaT1uKDIwODA4MCksYT1uKDk3MjczNCkscj1uKDQ5Mzk2MCk7ZnVuY3Rpb24gbChlKXtyZXR1cm57dGl0bGU6ZS50aXRsZSxkZXNjcmlwdGlvbjplLmRlc2NyaXB0aW9uLGxlZnRTbG90OigwLHIuaWNvblBhcnQpKGUpfX12YXIgYz1uKDQ0NTQ5Myk7ZnVuY3Rpb24gcyhlKXtyZXR1cm4gdD0+e2NvbnN0e2lzQW5jaG9yUG9zaXRpb25lcjpuLGlzTW9iaWxlUG9zaXRpb25lcjppfT0oMCxjLnVzZVBvcG92ZXJDb250ZXh0KSgpLHt2aXNpYmxlOmE9ImFsd2F5cyIsLi4ucn09dDtyZXR1cm4iYWx3YXlzIj09PWF8fG4mJiJkZXNrdG9wT25seSI9PT1hfHxpJiYibW9iaWxlT25seSI9PT1hP28uY3JlYXRlRWxlbWVudChlLHsuLi5yfSk6bnVsbH19dmFyIGQ9big0MDgzNzApLHU9big4NjE2Mik7ZnVuY3Rpb24gcChlKXtjb25zdCB0PSgwLHUudXNlTWVudUNvbnRleHQpKCkse2Nsb3NlUG9wb3ZlcjpufT0oMCxjLnVzZVBvcG92ZXJDb250ZXh0KSgpLHtvbkNsaWNrOmksY2xvc2VPbkNsaWNrOmE9dD8/ZC5ERUZBVUxUX0NMT1NFX09OX0NMSUNLfT1lO3JldHVybigwLG8udXNlQ2FsbGJhY2spKCgoLi4uZSk9PntpPy4oLi4uZSksImRvTm90Q2xvc2UiIT09YSYmbighMCx7Y3VycmVudExldmVsOiJjdXJyZW50TGV2ZWwiLGFsbExldmVsczoiYWxsTGV2ZWxzIn1bYV0pfSksW2ksYSxuXSl9Y29uc3QgbT1zKChlPT57Y29uc3QgdD1wKGUpO3JldHVybiBvLmNyZWF0ZUVsZW1lbnQoYS5Qb3BvdmVySXRlbSx7Li4ubChlKSxkaXNhYmxlZDplLmRpc2FibGVkLGhvdGtleTplLmhvdGtleSxvbkNsaWNrOnQscm9sZTp2b2lkIDAhPT1lLnNlbGVjdGVkPyJtZW51aXRlbWNoZWNrYm94IjoibWVudWl0ZW0iLGFyaWFMYWJlbDplLnRpdGxlLGVsbGlwc2lzOmUuZWxsaXBzaXMsc2VsZWN0ZWQ6ZS5zZWxlY3RlZCxhcmlhQ2hlY2tlZDplLnNlbGVjdGVkPz92b2lkIDAscmlnaHRTbG90OmUucmlnaHRUZXh0LGludGVudDplLmludGVudCxkYXRhUWFJZDplLmRhdGFRYUlkfSl9KSk7dmFyIEk9bigyMTcyNzQpLHY9bigxMjI5NiksQz1uLm4odik7ZnVuY3Rpb24gYihlKXsKY29uc3R7cG9wb3Zlckl0ZW1SZWY6dCxwb3BvdmVySXRlbUJ1dHRvblJlZjpuLHBvcG92ZXJJdGVtQnV0dG9uSWQ6aSxyb2xlOnIsYXJpYUhhc3BvcHVwOmwsYXJpYUNvbnRyb2xzOmMsYXJpYUV4cGFuZGVkOnMsYXJpYUxhYmVsOmQsbGVmdFNsb3Q6dSx0aXRsZTpwLGRlc2NyaXB0aW9uOm0sc2VsZWN0ZWQ6dixocmVmOmIsb25DbGljazpmLHJlbDpoLHRhcmdldDprPSJfYmxhbmsiLGRhdGFRYUlkOkV9PWUsTz0iX2JsYW5rIj09PWs7cmV0dXJuIG8uY3JlYXRlRWxlbWVudChhLlBvcG92ZXJJdGVtLHtwb3BvdmVySXRlbVJlZjp0LHBvcG92ZXJJdGVtQnV0dG9uUmVmOm4scG9wb3Zlckl0ZW1CdXR0b25JZDppLHJvbGU6cixhcmlhSGFzcG9wdXA6bCxhcmlhQ29udHJvbHM6YyxhcmlhRXhwYW5kZWQ6cyxhcmlhTGFiZWw6ZCxsZWZ0U2xvdDp1LHRpdGxlOnAsZGVzY3JpcHRpb246bSxocmVmOmIscmlnaHRTbG90Ok8/by5jcmVhdGVFbGVtZW50KEkuQmxvY2tJY29uLHtpY29uOkMoKX0pOnZvaWQgMCxzZWxlY3RlZDp2LG9uQ2xpY2s6ZixyZWw6aCx0YXJnZXQ6ayxkYXRhUWFJZDpFfSl9Y29uc3QgZj1zKChlPT57Y29uc3QgdD1wKGUpO3JldHVybiBvLmNyZWF0ZUVsZW1lbnQoYix7Li4ubChlKSxvbkNsaWNrOnQsaHJlZjplLmhyZWYscm9sZToibWVudWl0ZW0iLGFyaWFMYWJlbDplLnRpdGxlLHNlbGVjdGVkOmUuc2VsZWN0ZWQscmVsOmUucmVsLHRhcmdldDplLnRhcmdldCxkYXRhUWFJZDplLmRhdGFRYUlkfSl9KSk7dmFyIGg9big3MjIzMjApLGs9big5MzgyNDIpLEU9bigxNDc5MDEpLE89bigyMjE0OTYpLGc9bi5uKE8pO2NvbnN0IHg9YCR7RS5VSV9MSUJfREFUQV9RQV9JRF9QUkVGSVh9aGVhZGVyLW5lc3RlZC1wb3BvdmVyYDtmdW5jdGlvbiBTKGUpe2NvbnN0e3RpdGxlOnQsY2hpbGRyZW46bixidXR0b25Sb2xlOmEsYnV0dG9uQXJpYUhhc3BvcHVwOnIscG9wb3ZlclJvbGU6bCxmaXhlZEZvb3RlcjpzLGZpeGVkSGVhZGVyOmQsY2xvc2VPblNjcm9sbE91dHNpZGU6dSxjbG9zZU9uUmVzaXplV2luZG93OnAsZGF0YVFhSWQ6bX09ZSxJPSgwLG8udXNlUmVmKShudWxsKSx2PSgwLG8udXNlUmVmKShudWxsKSxDPSgwLG8udXNlSWQpKCksYj0oMCxvLnVzZUlkKSgpLHtjbG9zZVBvcG92ZXI6Zn09KDAsYy51c2VQb3BvdmVyQ29udGV4dCkoKSx7aXNPcGVuOmgsb25PcGVuOk8sb25DbG9zZTpTfT0oMCxrLnVzZU5lc3RlZFBvcG92ZXJPcGVuU3RhdGUpKEksZikseT0oMCxvLnVzZUNhbGxiYWNrKSgoKCk9PntoP1MoITApOk8oKX0pLFtoLE8sU10pO3JldHVybiBvLmNyZWF0ZUVsZW1lbnQoby5GcmFnbWVudCxudWxsLG8uY3JlYXRlRWxlbWVudCgiYnV0dG9uIix7aWQ6QyxjbGFzc05hbWU6ZygpLmJ1dHRvbixvbkNsaWNrOnkscmVmOkkscm9sZTphLCJhcmlhLWhhc3BvcHVwIjpyLCJhcmlhLWNvbnRyb2xzIjpiLCJhcmlhLWxhYmVsIjp0LCJkYXRhLXFhLWlkIjooMCxFLmNvbmNhdElmTm90TnVsbCkoYCR7eH0tb3Blbi1idXR0b25gLG0pfSxvLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpnKCkudGV4dH0sdCkpLG8uY3JlYXRlRWxlbWVudChpLlBvcG92ZXJLZXlib2FyZE5hdmlnYXRvcix7cm9sZTpsLGlzT3BlbjpoLG9uQ2xvc2U6UyxhbmNob3JlZDp7YXQ6SSx0eXBlOiJlbGVtZW50In0scmVmVG9Db250ZW50V3JhcHBlckVsZW1lbnQ6dixpZE9mQ29udGVudFdyYXBwZXJFbGVtZW50OmIsYXJpYUxhYmVsbGVkYnk6QyxmaXhlZEZvb3RlcjpzLGZpeGVkSGVhZGVyOmQsY2xvc2VPblNjcm9sbE91dHNpZGU6dSxjbG9zZU9uUmVzaXplV2luZG93OnAsZGF0YVFhSWQ6KDAsRS5jb25jYXRJZk5vdE51bGwpKGAke3h9LXBvcG92ZXJgLG0pfSxuKSl9dmFyIHk9big4MDc4NzMpO2Z1bmN0aW9uIEwoZSl7cmV0dXJuIGUuc3VibWVudXM/by5jcmVhdGVFbGVtZW50KG8uRnJhZ21lbnQsbnVsbCxlLnN1Ym1lbnVzLm1hcCgoKHQsbik9Pm8uY3JlYXRlRWxlbWVudCh5LkNvbnRleHRBY3Rpb24se2tleTpgJHt0LnRpdGxlfToke259YCxkYXRhUWFJZDp0LmRhdGFRYUlkfSxvLmNyZWF0ZUVsZW1lbnQoUyx7dGl0bGU6dC50aXRsZSwuLi5lLnNwbGl0SXRlbXModC5pdGVtcyxlLnN1Ym1lbnVPcHRpb25zKSxjbG9zZU9uUmVzaXplV2luZG93OmUuc3VibWVudU9wdGlvbnMuY2xvc2VPblJlc2l6ZVdpbmRvdyxjbG9zZU9uU2Nyb2xsT3V0c2lkZTplLnN1Ym1lbnVPcHRpb25zLmNsb3NlT25TY3JvbGxPdXRzaWRlfSkpKSkpOm51bGx9Y29uc3QgQT1zKChlPT57Y29uc3QgdD0oMCxvLnVzZUlkKSgpO3JldHVybiBvLmNyZWF0ZUVsZW1lbnQoaC5UaXRsZVBvcG92ZXJJdGVtLHtpZDp0LHRpdGxlOmUudGl0bGUscm9sZTplLnN1Ym1lbnVzPy5sZW5ndGg/Im1lbnVpdGVtIjp2b2lkIDAsYXJpYUxhYmVsOmUudGl0bGUscmlnaHRTbG90Om8uY3JlYXRlRWxlbWVudChMLHtzdWJtZW51czplLnN1Ym1lbnVzLHN1Ym1lbnVPcHRpb25zOmUuc3VibWVudU9wdGlvbnMsc3BsaXRJdGVtczplLnNwbGl0SXRlbXN9KSxkYXRhUWFJZDplLmRhdGFRYUlkLHZhcmlhbnQ6ZS52YXJpYW50fSl9KSk7dmFyIHc9big3MzI3MzEpO2NvbnN0IFQ9cygoZT0+by5jcmVhdGVFbGVtZW50KHcuRGl2aWRlckxpc3RJdGVtLHtyb2xlOiJzZXBhcmF0b3IifSkpKTt2YXIgUD1uKDQ2NjIzMCk7Y29uc3QgUj1zKChlPT57Y29uc3QgdD1wKHtjbG9zZU9uQ2xpY2s6ZS5jbG9zZU9uQ2xpY2s/PyJkb05vdENsb3NlIixvbkNsaWNrOmUub25DbGlja30pO3JldHVybiBvLmNyZWF0ZUVsZW1lbnQoUC5DaGVja2JveFBvcG92ZXJJdGVtLHt0aXRsZTplLnRpdGxlLGRlc2NyaXB0aW9uOmUuZGVzY3JpcHRpb24sb25DbGljazp0LGNoZWNrZWQ6ZS5jaGVja2VkLGFyaWFDaGVja2VkOmUuY2hlY2tlZCxyb2xlOiJtZW51aXRlbWNoZWNrYm94IixkYXRhUWFJZDplLmRhdGFRYUlkfSl9KSk7dmFyIE49big1NjEyNTQpO2NvbnN0IFE9cygoZT0+e2NvbnN0IHQ9cCh7Y2xvc2VPbkNsaWNrOmUuY2xvc2VPbkNsaWNrPz8iZG9Ob3RDbG9zZSIsb25DbGljazplLm9uQ2xpY2t9KTtyZXR1cm4gby5jcmVhdGVFbGVtZW50KE4uU3dpdGNoUG9wb3Zlckl0ZW0sey4uLmwoZSksCm9uQ2xpY2s6dCxjaGVja2VkOmUuY2hlY2tlZCxhcmlhQ2hlY2tlZDplLmNoZWNrZWQscm9sZToibWVudWl0ZW1jaGVja2JveCIsZGF0YVFhSWQ6ZS5kYXRhUWFJZH0pfSkpO3ZhciBfPW4oNTU3NTM0KTtjb25zdCBCPXMoKGU9Pntjb25zdCB0PXAoe2Nsb3NlT25DbGljazplLmNsb3NlT25DbGljaz8/ImRvTm90Q2xvc2UiLG9uQ2xpY2s6KCk9PmUub25DbGljayghZS5jaGVja2VkKX0pO3JldHVybiBvLmNyZWF0ZUVsZW1lbnQoXy5SYWRpb2J1dHRvblBvcG92ZXJJdGVtLHt0aXRsZTplLnRpdGxlLGRlc2NyaXB0aW9uOmUuZGVzY3JpcHRpb24sb25DbGljazp0LGNoZWNrZWQ6ZS5jaGVja2VkLGFyaWFDaGVja2VkOmUuY2hlY2tlZCxyb2xlOiJtZW51aXRlbXJhZGlvIixkaXNhYmxlZDplLmRpc2FibGVkLGRhdGFRYUlkOmUuZGF0YVFhSWR9KX0pKTt2YXIgRD1uKDM5MTkxNCk7Y29uc3QgTT1zKChlPT57Y29uc3QgdD0oMCxvLnVzZUlkKSgpO3JldHVybiBvLmNyZWF0ZUVsZW1lbnQoRC5TZWN0aW9uUG9wb3Zlckl0ZW0se2lkOnQsdGl0bGU6ZS50aXRsZSxpdGVtUm9sZTplLndyYXBwYWJsZT8ibWVudWl0ZW1jaGVja2JveCI6ZS5zdWJtZW51cz8ubGVuZ3RoPyJtZW51aXRlbSI6dm9pZCAwLHdyYXBwYWJsZTplLndyYXBwYWJsZSxkZWZhdWx0V3JhcHBlZDplLmRlZmF1bHRXcmFwcGVkLGFyaWFMYWJlbDplLnRpdGxlLHJpZ2h0U2xvdEFyaWFMYWJlbGxlZGJ5OnQscmlnaHRTbG90OmUuc3VibWVudXM/Lmxlbmd0aD9vLmNyZWF0ZUVsZW1lbnQoTCx7c3VibWVudXM6ZS5zdWJtZW51cyxzdWJtZW51T3B0aW9uczplLnN1Ym1lbnVPcHRpb25zLHNwbGl0SXRlbXM6ZS5zcGxpdEl0ZW1zfSk6dm9pZCAwLGRhdGFRYUlkOmUuZGF0YVFhSWR9LGUuaXRlbXMubWFwKCgodCxuKT0+ZS5waWNrTWVudUl0ZW0odCxuLGUuc3VibWVudU9wdGlvbnMpKSkpfSkpO3ZhciBXPW4oOTIwOTM4KTtjb25zdCBGPXMoKGU9Pntjb25zdHtjaGlsZHJlbjp0LGxhYmVsOm4sZGF0YVFhSWQ6aX09ZTtyZXR1cm4gby5jcmVhdGVFbGVtZW50KFcuQ3VzdG9tUG9wb3Zlckl0ZW0se2Rpc2FibGVkOiEwLHJvbGU6Im1lbnVpdGVtIixhcmlhTGFiZWw6bixmb2N1c2FibGU6ITAsZGF0YVFhSWQ6aX0sdCl9KSksSD1zKChlPT57Y29uc3R7aXRlbXM6dCxzdWJtZW51T3B0aW9uczpuLHBpY2tNZW51SXRlbTppfT1lO3JldHVybiBvLmNyZWF0ZUVsZW1lbnQoby5GcmFnbWVudCxudWxsLG8uY3JlYXRlRWxlbWVudCh3LkRpdmlkZXJMaXN0SXRlbSx7cm9sZToic2VwYXJhdG9yIn0pLHQubWFwKCgoZSx0KT0+aShlLHQsbikpKSl9KSksVT1zKChlPT57Y29uc3R7aXRlbXM6dCxzdWJtZW51T3B0aW9uczpuLHBpY2tNZW51SXRlbTppfT1lO3JldHVybiBvLmNyZWF0ZUVsZW1lbnQoby5GcmFnbWVudCxudWxsLHQubWFwKCgoZSx0KT0+aShlLHQsbikpKSxvLmNyZWF0ZUVsZW1lbnQody5EaXZpZGVyTGlzdEl0ZW0se3JvbGU6InNlcGFyYXRvciJ9KSl9KSk7dmFyICQ9big2Mzg4NzIpLEs9bigyNzM2NzcpLEo9bi5uKEspO2Z1bmN0aW9uIFYoZSl7Y29uc3R7dGl0bGU6dCxvbkNsaWNrOm4scG9wb3Zlckl0ZW1CdXR0b25SZWY6aSxkYXRhUWFJZDphfT1lO3JldHVybiBvLmNyZWF0ZUVsZW1lbnQoaC5UaXRsZVBvcG92ZXJJdGVtLHt0aXRsZTp0LG9uQ2xpY2s6bixsZWZ0U2xvdDpvLmNyZWF0ZUVsZW1lbnQoJC5TdmdJY29uTGlzdEl0ZW1QYXJ0LHtpY29uU3ZnOkooKSxkaXJNYXRjaGluZzohMH0pLHBvcG92ZXJJdGVtQnV0dG9uUmVmOmksZGF0YVFhSWQ6YX0pfXZhciB6PW4oOTg4MDY4KSxxPW4oMjM1NzI0KSxqPW4oNzg3ODk1KSxHPW4oMjM2NDU0KSxYPW4oNjQwNTEzKSxaPW4oMjUwNTE4KSxZPW4oMjk4NzI4KSxlZT1uKDg1NDMzOCksdGU9big0NzkyOTcpLG5lPW4oNTc3ODMyKSxvZT1uKDE1OTI1Nik7Y29uc3QgaWU9KDAsdGUud2luZG93RXZlbnQpKCJtb3VzZW1vdmUiKTt2YXIgYWUscmU9big5NTY3MzApLGxlPW4oMjM2MTQ2KSxjZT1uLm4obGUpLHNlPW4oNjkxODMpLGRlPW4ubihzZSk7IWZ1bmN0aW9uKGUpe2UuQ2xpY2s9ImNsaWNrIixlLkhvdmVyPSJob3ZlciJ9KGFlfHwoYWU9e30pKTtjb25zdCB1ZT0iaG92ZXIiLHBlPTMwMCxtZT1gJHtFLlVJX0xJQl9EQVRBX1FBX0lEX1BSRUZJWH1uZXN0ZWQtcG9wb3ZlcmA7ZnVuY3Rpb24gSWUoZSl7Y29uc3QgdD0oMCxvLnVzZUlkKSgpLG49KDAsby51c2VSZWYpKG51bGwpLHI9KDAsby51c2VSZWYpKG51bGwpLGw9KDAsby51c2VJZCkoKSx7Y2hpbGRyZW46cyxwb3BvdmVySXRlbVJlZjpkPW4scG9wb3Zlckl0ZW1CdXR0b25JZDp1PWwscG9wb3Zlckl0ZW1CdXR0b25SZWY6cD1yLG5lc3RlZFBvcG92ZXJSb2xlOm0scm9sZTp2LGxlZnRTbG90OkMsb3Blbk9uOmI9dWUsY2xvc2VPbkhvdmVyQXdheURlbGF5TXM6Zj1wZSxjbG9zZU9uU2Nyb2xsT3V0c2lkZTpoLGNsb3NlT25SZXNpemVXaW5kb3c6TyxkaXNhYmxlZDpnLHRpdGxlOngsaWRPZkNvbnRlbnRXcmFwcGVyRWxlbWVudDpTPXQsc2VsZWN0ZWQ6eSxkZXNjcmlwdGlvbjpMLHJpZ2h0U2xvdDpBLGZpeGVkSGVhZGVyOncsZml4ZWRGb290ZXI6VCxkYXRhUWFJZDpQfT1lLFI9KDAsai51c2VGdW5jdGlvbmFsUmVmT2JqZWN0KShwKSxOPSgwLGoudXNlRnVuY3Rpb25hbFJlZk9iamVjdCkoZCkse2ZvY3VzRmlyc3Q6UX09KDAsby51c2VNZW1vKSgoKCk9PigwLFouZ2V0U2VsZWN0b3JLZXlib2FyZE5hdmlnYXRpb24pKGBbJHt6LkRBVEFfSVNfUE9QT1ZFUl9JVEVNX0JVVFRPTn1dYCkpLFtdKSx7aXNSdGw6XyxjbG9zZVBvcG92ZXI6Qn09KDAsYy51c2VQb3BvdmVyQ29udGV4dCkoKSx7aXNNb2JpbGVQb3NpdGlvbmVyOkR9PSgwLHJlLnVzZVBvc2l0aW9uZXJDb250ZXh0KSgpLE09RD8iY2xpY2siOmIsVz0oMCxZLmZsaXBBcnJvd3NPblJ0bCkoMzcsXyksRj0oMCxZLmZsaXBBcnJvd3NPblJ0bCkoMzksXykse2lzT3BlbjpILG9uT3BlbjpVLG9uQ2xvc2U6JH09KDAsay51c2VOZXN0ZWRQb3BvdmVyT3BlblN0YXRlKShSLEIpLEs9KDAsby51c2VSZWYpKG51bGwpLEo9KDAsby51c2VDYWxsYmFjaykoKCgpPT57aWYoSCkkKCEwKTtlbHNle1UoKQo7Y29uc3QgZT1LLmN1cnJlbnQ7ZSYmUShlKX19KSxbSCwkLFUsUV0pLFg9KDAsby51c2VDYWxsYmFjaykoKGU9PnsoMCxxLmhhc2hGcm9tRXZlbnQpKGUpIT09Rnx8SigpfSksW0YsSl0pOyFmdW5jdGlvbihlLHQsbj0wLG8saSl7KDAsb2UudXNlQ29uZGl0aW9uYWxFZmZlY3QpKGUsKCgpPT57bGV0IGU9ITEsYT0tMTtyZXR1cm4gaWUoKHI9Pntjb25zdCBsPXt4OnIuY2xpZW50WCx5OnIuY2xpZW50WX0sYz1vLmN1cnJlbnQscz0oMCxuZS5pc0luRXhjbHVkZWRBcmVhKShsLGkpfHxjJiYoMCxlZS5pc1hZSW5zaWRlRWxlbWVudFRocm91Z2hQb3J0YWxzKShjLGwueCxsLnkpfHwhMTtzIT09ZSYmKGNsZWFyVGltZW91dChhKSxlPXMsYT1zZXRUaW1lb3V0KCgoKT0+e2V8fHQoITEsImN1cnJlbnRMZXZlbCIpfSksbikpfSkpfSksW28sbixpLHRdKX0oImhvdmVyIj09PU0mJnZvaWQgMCE9PWYsJCxmLEssTik7Y29uc3QgdGU9ImhvdmVyIj09PU0mJnZvaWQgMCE9PWY/VTp2b2lkIDA7cmV0dXJuIG8uY3JlYXRlRWxlbWVudChvLkZyYWdtZW50LG51bGwsby5jcmVhdGVFbGVtZW50KGEuUG9wb3Zlckl0ZW0se2xlZnRTbG90OkMsdGl0bGU6eCxkZXNjcmlwdGlvbjpMLHJvbGU6dixwb3BvdmVySXRlbVJlZjpOLHBvcG92ZXJJdGVtQnV0dG9uUmVmOlIsb25DbGljazplPT57ImJ1dHRvbiJpbiBlJiYiY2xpY2siIT09TXx8SigpfSxvbktleURvd25Qb3BvdmVySXRlbUJ1dHRvbjpYLHJpZ2h0U2xvdDpvLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpkZSgpLnJpZ2h0fSxBLG8uY3JlYXRlRWxlbWVudChJLkJsb2NrSWNvbix7aWNvbjpjZSgpLGNsYXNzTmFtZTpkZSgpLmFycm93fSkpLGlzT3BlbjpILGFyaWFIYXNwb3B1cDptLGFyaWFFeHBhbmRlZDpILGFyaWFDb250cm9sczpTLHBvcG92ZXJJdGVtQnV0dG9uSWQ6dSxzZWxlY3RlZDp5LGRpc2FibGVkOmcsb25Nb3VzZUVudGVyOnRlLGRhdGFRYUlkOigwLEUuY29uY2F0SWZOb3ROdWxsKShgJHttZX0tb3Blbi1idXR0b25gLFApfSksby5jcmVhdGVFbGVtZW50KGkuUG9wb3ZlcktleWJvYXJkTmF2aWdhdG9yLHtpZE9mQ29udGVudFdyYXBwZXJFbGVtZW50OlMscm9sZTptLGFuY2hvcmVkOnt0eXBlOiJlbGVtZW50IixhdDpOfSxpc09wZW46SCxvbkNsb3NlOiQscGxhY2VtZW50UnVsZXM6Q2UucGxhY2VtZW50UnVsZXMsd2lkdGg6dmUsaGVpZ2h0OkcuUE9QT1ZFUl9ERUZBVUxUX0hFSUdIVCxpc1J0bDpfLHJlZlRvQ29udGVudFdyYXBwZXJFbGVtZW50OkssYXJpYUxhYmVsbGVkYnk6dSxmaXhlZEhlYWRlcjp3LGZpeGVkRm9vdGVyOlQsY2xvc2VPblNjcm9sbE91dHNpZGU6aCxjbG9zZU9uUmVzaXplV2luZG93Ok8sZGF0YVFhSWQ6KDAsRS5jb25jYXRJZk5vdE51bGwpKGAke21lfS1wb3BvdmVyYCxQKX0sRCYmby5jcmVhdGVFbGVtZW50KFYse3RpdGxlOngsb25DbGljazooKT0+JCghMCwiY3VycmVudExldmVsIiksZGF0YVFhSWQ6KDAsRS5jb25jYXRJZk5vdE51bGwpKGAke21lfS1jbG9zZS1idXR0b25gLFApfSksby5jcmVhdGVFbGVtZW50KCJkaXYiLHtvbktleURvd246ZT0+e2NvbnN0IHQ9ZS5jdXJyZW50VGFyZ2V0LG49ZG9jdW1lbnQuYWN0aXZlRWxlbWVudCxvPSgwLHEuaGFzaEZyb21FdmVudCkoZSksaT1uJiZ0LmNvbnRhaW5zKG4pJiYidHJ1ZSIhPT1uLmdldEF0dHJpYnV0ZSh6LkRBVEFfTkVTVEVEX1BPUE9WRVJfT1BFTik7aWYobz09PVcmJmkpcmV0dXJuICQoITAsImN1cnJlbnRMZXZlbCIpLHZvaWQgZS5zdG9wUHJvcGFnYXRpb24oKX19LHMpKSl9Y29uc3QgdmU9W3tieToiY29udGVudCJ9XSxDZT17cGxhY2VtZW50UnVsZXM6W3suLi5YLlBMQUNFTUVOVF9SSUdIVF9BTElHTl9UT1Asb2Zmc2V0Ont4OjAseTotNn19LHsuLi5YLlBMQUNFTUVOVF9MRUZUX0FMSUdOX1RPUCxvZmZzZXQ6e3g6MCx5Oi02fX0sey4uLlguUExBQ0VNRU5UX1JJR0hUX0FMSUdOX0JPVFRPTSxvZmZzZXQ6e3g6MCx5OjZ9fSx7Li4uWC5QTEFDRU1FTlRfTEVGVF9BTElHTl9CT1RUT00sb2Zmc2V0Ont4OjAseTo2fX1dfSxiZT1zKChlPT5vLmNyZWF0ZUVsZW1lbnQoSWUsey4uLmwoZSkscm9sZToibWVudWl0ZW0iLG5lc3RlZFBvcG92ZXJSb2xlOiJtZW51IixvcGVuT246ZS5vcGVuU3VibWVudU9uLGNsb3NlT25TY3JvbGxPdXRzaWRlOmUuY2xvc2VPblNjcm9sbE91dHNpZGUsY2xvc2VPblJlc2l6ZVdpbmRvdzplLmNsb3NlT25SZXNpemVXaW5kb3cscmlnaHRTbG90OmUucmlnaHRUZXh0LGRhdGFRYUlkOmUuZGF0YVFhSWQsLi4uZS5zcGxpdEl0ZW1zKGUuc3VibWVudSx7b3BlblN1Ym1lbnVPbjplLm9wZW5TdWJtZW51T24sY2xvc2VPblNjcm9sbE91dHNpZGU6ZS5jbG9zZU9uU2Nyb2xsT3V0c2lkZSxjbG9zZU9uUmVzaXplV2luZG93OmUuY2xvc2VPblJlc2l6ZVdpbmRvd30pfSkpKTt2YXIgZmU9big1OTA5MTQpLGhlPW4oMzEyMjk1KSxrZT1uKDExOTc1MCksRWU9big5MDYxMzQpLE9lPW4oNjM3NTY0KTtjb25zdCBnZT1zKChlPT57Y29uc3QgdD1wKGUpLG49KDAsby51c2VJZCkoKTtyZXR1cm4gby5jcmVhdGVFbGVtZW50KGZlLkNvbnRleHRBY3Rpb25zUG9wb3Zlckl0ZW0sey4uLmwoZSksdGl0bGU6by5jcmVhdGVFbGVtZW50KG8uRnJhZ21lbnQsbnVsbCxlLnRpdGxlLGUuaW5mb1RpdGxlJiZvLmNyZWF0ZUVsZW1lbnQoeWUse2FjdGlvbjp7a2luZDoiaXFpIixvbkNsaWNrOmUuaW5mb09uQ2xpY2ssaWNvbjplLmluZm9JY29uLGludGVudDplLmluZm9JbnRlbnQsdGl0bGU6ZS5pbmZvVGl0bGV9fSkpLHBvcG92ZXJJdGVtQnV0dG9uSWQ6bixob3RrZXk6ZS5ob3RrZXksYXJpYUhhc3BvcHVwOiJtZW51Iixyb2xlOiJtZW51aXRlbSIscmlnaHRTbG90Om8uY3JlYXRlRWxlbWVudChvLkZyYWdtZW50LG51bGwsZS5jb250ZXh0QWN0aW9ucz8ubWFwKCgoZSx0KT0+by5jcmVhdGVFbGVtZW50KHhlLHthY3Rpb246ZSxrZXk6dH0pKSkpLG9uQ2xpY2s6dCxzZWxlY3RlZDplLnNlbGVjdGVkLGRhdGFRYUlkOmUuZGF0YVFhSWR9KX0pKTtmdW5jdGlvbiB4ZShlKXtjb25zdCB0PWUuYWN0aW9uO3N3aXRjaCh0LmtpbmQpe2Nhc2UiaWNvbkJ1dHRvbiI6CnJldHVybiBvLmNyZWF0ZUVsZW1lbnQoU2Use2FjdGlvbjp0fSk7Y2FzZSJpcWkiOnJldHVybiBvLmNyZWF0ZUVsZW1lbnQoeWUse2FjdGlvbjp0fSk7Y2FzZSJjdXN0b20iOnJldHVybiBvLmNyZWF0ZUVsZW1lbnQoTGUse2FjdGlvbjp0fSl9fWZ1bmN0aW9uIFNlKGUpe2NvbnN0IHQ9ZS5hY3Rpb247cmV0dXJuIG8uY3JlYXRlRWxlbWVudCh5LkNvbnRleHRBY3Rpb24se2RhdGFRYUlkOnQuZGF0YVFhSWR9LG8uY3JlYXRlRWxlbWVudChoZS5JY29uQnV0dG9uLHtyb2xlOiJtZW51aXRlbSIsb25DbGljazp0Lm9uQ2xpY2ssdGl0bGU6dC50aXRsZSxpY29uOnQuaWNvblN2Z30pKX1mdW5jdGlvbiB5ZShlKXtjb25zdCB0PWUuYWN0aW9uLHtjbG9zZVBvcG92ZXI6bn09KDAsYy51c2VQb3BvdmVyQ29udGV4dCkoKSxpPWUuYWN0aW9uLm9uQ2xpY2s7cmV0dXJuIG8uY3JlYXRlRWxlbWVudCh5LkNvbnRleHRBY3Rpb24sbnVsbCxvLmNyZWF0ZUVsZW1lbnQoRWUuVG9vbHRpcCx7Y29udGVudDp0LnRpdGxlPz8iSGVsbG8iLHRyaWdnZXI6W0VlLlRyaWdnZXIuSG92ZXIsRWUuVHJpZ2dlci5Gb2N1cywuLi5pP1tdOltFZS5UcmlnZ2VyLkNsaWNrXV0scGxhY2VtZW50OltPZS5Ub29sdGlwUGxhY2VtZW50cy5Ub3AsT2UuVG9vbHRpcFBsYWNlbWVudHMuQm90dG9tXX0sby5jcmVhdGVFbGVtZW50KGtlLkljb25RdWVzdGlvbkluZm9ybWF0aW9uQnV0dG9uLHtpY29uOnQuaWNvbixpbnRlbnQ6dC5pbnRlbnQsYXJpYUxhYmVsOnQudGl0bGUsb25DbGljazppPygpPT57bighMSwiYWxsTGV2ZWxzIiksaSgpfTp2b2lkIDB9KSkpfWZ1bmN0aW9uIExlKGUpe2NvbnN0IHQ9ZS5hY3Rpb247cmV0dXJuIG8uY3JlYXRlRWxlbWVudCh5LkNvbnRleHRBY3Rpb24se3ByZXZlbnRDbGlja1Byb3BhZ2F0aW9uOnQucHJldmVudENsaWNrUHJvcGFnYXRpb259LHQuY2hpbGRyZW4pfXZhciBBZT1uKDkxMzg3NCksd2U9big1NjU3NDUpO2NvbnN0IFRlPShlLHQsbik9PntpZighZSlyZXR1cm4gbnVsbDtzd2l0Y2goZS50eXBlKXtjYXNlIHZvaWQgMDpjYXNlImJhc2ljIjpyZXR1cm4gby5jcmVhdGVFbGVtZW50KG0se2tleTpgYmFzaWMtJHtlLnRpdGxlfToke2UuZGVzY3JpcHRpb259OiR7ZS5pZH1gLGljb25Tdmc6ZS5pY29uU3ZnLGljb25Vcmw6ZS5pY29uVXJsLGljb25Kc3g6ZS5pY29uSnN4LGljb25TcGFjZTplLmljb25TcGFjZSx0aXRsZTplLnRpdGxlLGRlc2NyaXB0aW9uOmUuZGVzY3JpcHRpb24sb25DbGljazplLm9uQ2xpY2ssaG90a2V5OmUuaG90a2V5LGRpc2FibGVkOmUuZGlzYWJsZWQsZWxsaXBzaXM6ZS5lbGxpcHNpcyxjbG9zZU9uQ2xpY2s6ZS5jbG9zZU9uQ2xpY2ssc2VsZWN0ZWQ6ZS5zZWxlY3RlZCx2aXNpYmxlOmUudmlzaWJsZSxyaWdodFRleHQ6ZS5yaWdodFRleHQsZGF0YVFhSWQ6ZS5kYXRhUWFJZCxpbnRlbnQ6ZS5pbnRlbnR9KTtjYXNlImxpbmsiOnJldHVybiBvLmNyZWF0ZUVsZW1lbnQoZix7a2V5OmBsaW5rLSR7ZS50aXRsZX06JHtlLmRlc2NyaXB0aW9ufToke2UuaWR9YCxpY29uU3ZnOmUuaWNvblN2ZyxpY29uVXJsOmUuaWNvblVybCxpY29uSnN4OmUuaWNvbkpzeCxpY29uU3BhY2U6ZS5pY29uU3BhY2UsdGl0bGU6ZS50aXRsZSxkZXNjcmlwdGlvbjplLmRlc2NyaXB0aW9uLGhyZWY6ZS5ocmVmLHNlbGVjdGVkOmUuc2VsZWN0ZWQsY2xvc2VPbkNsaWNrOmUuY2xvc2VPbkNsaWNrLHZpc2libGU6ZS52aXNpYmxlLG9uQ2xpY2s6ZS5vbkNsaWNrLGRhdGFRYUlkOmUuZGF0YVFhSWQscmVsOmUucmVsLHRhcmdldDplLnRhcmdldH0pO2Nhc2UidGl0bGUiOnJldHVybiBvLmNyZWF0ZUVsZW1lbnQoQSx7a2V5OmB0aXRsZS0ke2UudGl0bGV9YCx0aXRsZTplLnRpdGxlLHZpc2libGU6ZS52aXNpYmxlLHN1Ym1lbnVzOmUuc3VibWVudXMsc3VibWVudU9wdGlvbnM6bixkYXRhUWFJZDplLmRhdGFRYUlkLHZhcmlhbnQ6ZS52YXJpYW50LHNwbGl0SXRlbXM6TmV9KTtjYXNlImNvbnRleHRBY3Rpb25zIjpyZXR1cm4gby5jcmVhdGVFbGVtZW50KGdlLHtrZXk6YGNvbnRleHRBY3Rpb25zLSR7ZS50aXRsZX06JHtlLmRlc2NyaXB0aW9ufToke2UuaWR9YCxpY29uU3ZnOmUuaWNvblN2ZyxpY29uVXJsOmUuaWNvblVybCxpY29uSnN4OmUuaWNvbkpzeCxpY29uU3BhY2U6ZS5pY29uU3BhY2UsdGl0bGU6ZS50aXRsZSxkZXNjcmlwdGlvbjplLmRlc2NyaXB0aW9uLGNvbnRleHRBY3Rpb25zOmUuY29udGV4dEFjdGlvbnMsb25DbGljazplLm9uQ2xpY2ssaG90a2V5OmUuaG90a2V5LHNlbGVjdGVkOmUuc2VsZWN0ZWQsY2xvc2VPbkNsaWNrOmUuY2xvc2VPbkNsaWNrLHZpc2libGU6ZS52aXNpYmxlLGRhdGFRYUlkOmUuZGF0YVFhSWQsaW5mb09uQ2xpY2s6ZS5pbmZvT25DbGljayxpbmZvSWNvbjplLmluZm9JY29uLGluZm9JbnRlbnQ6ZS5pbmZvSW50ZW50LGluZm9UaXRsZTplLmluZm9UaXRsZX0pO2Nhc2Uic3ViTWVudSI6cmV0dXJuIG8uY3JlYXRlRWxlbWVudChiZSx7a2V5OmBzdWJNZW51LSR7ZS50aXRsZX06JHtlLmRlc2NyaXB0aW9ufToke2UuaWR9YCxpY29uU3ZnOmUuaWNvblN2ZyxpY29uVXJsOmUuaWNvblVybCxpY29uSnN4OmUuaWNvbkpzeCxpY29uU3BhY2U6ZS5pY29uU3BhY2UsdGl0bGU6ZS50aXRsZSxkZXNjcmlwdGlvbjplLmRlc2NyaXB0aW9uLHN1Ym1lbnU6ZS5zdWJtZW51LC4uLm4sdmlzaWJsZTplLnZpc2libGUscmlnaHRUZXh0OmUucmlnaHRUZXh0LGRhdGFRYUlkOmUuZGF0YVFhSWQsc3BsaXRJdGVtczpOZX0pO2Nhc2UiZGl2aWRlciI6cmV0dXJuIG8uY3JlYXRlRWxlbWVudChULHtrZXk6YGRpdmlkZXItJHt0fToke2UuaWR9YCx2aXNpYmxlOmUudmlzaWJsZX0pO2Nhc2UiY2hlY2tib3giOnJldHVybiBvLmNyZWF0ZUVsZW1lbnQoUix7a2V5OmBjaGVja2JveC0ke3R9OiR7ZS5pZH1gLHRpdGxlOmUudGl0bGUsZGVzY3JpcHRpb246ZS5kZXNjcmlwdGlvbixvbkNsaWNrOmUub25DbGljayxjaGVja2VkOmUuY2hlY2tlZCx2aXNpYmxlOmUudmlzaWJsZSxjbG9zZU9uQ2xpY2s6ZS5jbG9zZU9uQ2xpY2ssZGF0YVFhSWQ6ZS5kYXRhUWFJZH0pO2Nhc2Uic3dpdGNoIjpyZXR1cm4gby5jcmVhdGVFbGVtZW50KFEsewprZXk6YGNoZWNrYm94LSR7dH06JHtlLmlkfWAsdGl0bGU6ZS50aXRsZSxkZXNjcmlwdGlvbjplLmRlc2NyaXB0aW9uLGljb25Tdmc6ZS5pY29uU3ZnLGljb25Vcmw6ZS5pY29uVXJsLGljb25Kc3g6ZS5pY29uSnN4LGljb25TcGFjZTplLmljb25TcGFjZSxvbkNsaWNrOmUub25DbGljayxjaGVja2VkOmUuY2hlY2tlZCx2aXNpYmxlOmUudmlzaWJsZSxjbG9zZU9uQ2xpY2s6ZS5jbG9zZU9uQ2xpY2ssZGF0YVFhSWQ6ZS5kYXRhUWFJZH0pO2Nhc2UicmFkaW8iOnJldHVybiBvLmNyZWF0ZUVsZW1lbnQoQix7a2V5OmBjaGVja2JveC0ke3R9OiR7ZS5pZH1gLHRpdGxlOmUudGl0bGUsZGVzY3JpcHRpb246ZS5kZXNjcmlwdGlvbixvbkNsaWNrOmUub25DbGljayxjaGVja2VkOmUuY2hlY2tlZCx2aXNpYmxlOmUudmlzaWJsZSxkaXNhYmxlZDplLmRpc2FibGVkLGNsb3NlT25DbGljazplLmNsb3NlT25DbGljayxkYXRhUWFJZDplLmRhdGFRYUlkfSk7Y2FzZSJzZWN0aW9uIjpyZXR1cm4gby5jcmVhdGVFbGVtZW50KE0se2tleTpgc2VjdGlvbi0ke2UudGl0bGV9OiR7ZS5pZH1gLHRpdGxlOmUudGl0bGUsaXRlbXM6ZS5pdGVtcyx3cmFwcGFibGU6ZS53cmFwcGFibGUsZGVmYXVsdFdyYXBwZWQ6ZS5kZWZhdWx0V3JhcHBlZCx2aXNpYmxlOmUudmlzaWJsZSxzdWJtZW51czplLnN1Ym1lbnVzLHN1Ym1lbnVPcHRpb25zOm4sZGF0YVFhSWQ6ZS5kYXRhUWFJZCxwaWNrTWVudUl0ZW06VGUsc3BsaXRJdGVtczpOZX0pO2Nhc2UiaGVhZGVyIjpyZXR1cm4gby5jcmVhdGVFbGVtZW50KFUse2tleToiaGVhZGVyIixpdGVtczplLml0ZW1zLHZpc2libGU6ZS52aXNpYmxlLHN1Ym1lbnVPcHRpb25zOm4scGlja01lbnVJdGVtOlRlfSk7Y2FzZSJmb290ZXIiOnJldHVybiBvLmNyZWF0ZUVsZW1lbnQoSCx7a2V5OiJmb290ZXIiLGl0ZW1zOmUuaXRlbXMsdmlzaWJsZTplLnZpc2libGUsc3VibWVudU9wdGlvbnM6bixwaWNrTWVudUl0ZW06VGV9KTtjYXNlIm5vbkludGVyYWN0aXZlIjpyZXR1cm4gby5jcmVhdGVFbGVtZW50KEYse2tleToibm9uSW50ZXJhY3RpdmUtIit0LGxhYmVsOmUubGFiZWwsY2hpbGRyZW46ZS5jaGlsZHJlbixkYXRhUWFJZDplLmRhdGFRYUlkfSl9fTtmdW5jdGlvbiBQZShlKXtyZXR1cm4hKCFlfHwiZm9vdGVyIiE9PWUudHlwZSl9ZnVuY3Rpb24gUmUoZSl7cmV0dXJuISghZXx8ImhlYWRlciIhPT1lLnR5cGUpfWNvbnN0IE5lPShlLHQpPT57Y29uc3Qgbj0oZSxuKT0+VGUoZSxuLHQpLFtvLGksYV09KDAsQWUuc3BsaXQpKGUsUmUsUGUpLHI9by5tYXAobikuZmlsdGVyKHdlLmlzRXhpc3RlbnQpLGw9aS5tYXAobikuZmlsdGVyKHdlLmlzRXhpc3RlbnQpLGM9YS5tYXAobikuZmlsdGVyKHdlLmlzRXhpc3RlbnQpO3JldHVybntmaXhlZEhlYWRlcjpyLmxlbmd0aD4wP3I6bnVsbCxjaGlsZHJlbjpjLmxlbmd0aD4wP2M6bnVsbCxmaXhlZEZvb3RlcjpsLmxlbmd0aD4wP2w6bnVsbH19O2Z1bmN0aW9uIFFlKGUpe2NvbnN0e2l0ZW1zOnQsYW5jaG9ySWQ6bixhbmNob3JCdXR0b25SZWY6YSxjb250ZW50SWQ6cixpc09wZW46bCxvbkNsb3NlOmMscGxhY2VtZW50UnVsZXM6cyx3aWR0aDpkLGhlaWdodDp1LHJlZlRvQ29udGVudFdyYXBwZXJFbGVtZW50OnAscmVwb3NpdGlvblRyaWdnZXJzOm0sb3BlblN1Ym1lbnVPbjpJPSJob3ZlciIsbW9iaWxlQnJlYWtwb2ludDp2LGNsb3NlT25TY3JvbGxPdXRzaWRlOkMsY2xvc2VPblJlc2l6ZVdpbmRvdzpiLGRhdGFRYUlkOmZ9PWUsaD0oMCxvLnVzZU1lbW8pKCgoKT0+ImZ1bmN0aW9uIiE9dHlwZW9mIHQ/dDpsP3QoKTpbXSksW3QsbF0pLGs9KDAsby51c2VNZW1vKSgoKCk9Pk5lKGgse29wZW5TdWJtZW51T246SSxjbG9zZU9uUmVzaXplV2luZG93OmIsY2xvc2VPblNjcm9sbE91dHNpZGU6Q30pKSxbYixDLEksaF0pO3JldHVybiBvLmNyZWF0ZUVsZW1lbnQoaS5Qb3BvdmVyS2V5Ym9hcmROYXZpZ2F0b3Ise3JvbGU6Im1lbnUiLGFyaWFMYWJlbGxlZGJ5Om4saXNPcGVuOmwsb25DbG9zZTpjLGFuY2hvcmVkOnt0eXBlOiJlbGVtZW50IixhdDphfSxpZE9mQ29udGVudFdyYXBwZXJFbGVtZW50OnIscGxhY2VtZW50UnVsZXM6cyx3aWR0aDpkLGhlaWdodDp1LHJlZlRvQ29udGVudFdyYXBwZXJFbGVtZW50OnAscmVwb3NpdGlvblRyaWdnZXJzOm0sbW9iaWxlQnJlYWtwb2ludDp2LGNsb3NlT25TY3JvbGxPdXRzaWRlOkMsY2xvc2VPblJlc2l6ZVdpbmRvdzpiLGRhdGFRYUlkOmYsLi4ua30pfX0sNDA4MzcwKGUsdCxuKXsidXNlIHN0cmljdCI7dmFyIG87bi5kKHQse0Nsb3NlT25DbGljazooKT0+byxERUZBVUxUX0NMT1NFX09OX0NMSUNLOigpPT5pLE1lbnVDb250ZXh0QWN0aW9uS2luZDooKT0+cixNZW51SXRlbVZpc2libGU6KCk9PmF9KSxmdW5jdGlvbihlKXtlLkFsbExldmVscz0iYWxsTGV2ZWxzIixlLkN1cnJlbnRMZXZlbD0iY3VycmVudExldmVsIixlLkRvTm90Q2xvc2U9ImRvTm90Q2xvc2UifShvfHwobz17fSkpO2NvbnN0IGk9ImN1cnJlbnRMZXZlbCI7dmFyIGEscjshZnVuY3Rpb24oZSl7ZS5EZXNrdG9wT25seT0iZGVza3RvcE9ubHkiLGUuTW9iaWxlT25seT0ibW9iaWxlT25seSIsZS5BbHdheXM9ImFsd2F5cyJ9KGF8fChhPXt9KSksZnVuY3Rpb24oZSl7ZS5pY29uQnV0dG9uPSJpY29uQnV0dG9uIixlLmlxaT0iaXFpIixlLmN1c3RvbT0iY3VzdG9tIn0ocnx8KHI9e30pKX0sNDIyNzc3KGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse3VzZUhvcml6b250YWxNZW51S2V5Ym9hcmROYXZpZ2F0aW9uOigpPT5zfSk7dmFyIG89big5ODgwNjgpLGk9big0NDU0OTMpLGE9big4MDc4NzMpLHI9bigyODQ2OTApO2NvbnN0IGw9YFske28uREFUQV9JU19DT05URVhUX0FDVElPTn1dYCxjPWEuQ09OVEVYVF9BQ1RJT05fRk9DVVNBQkxFX1RBR1MubWFwKChlPT5gJHtsfSAke2V9YCkpLmpvaW4oIiwiKSxzPSgpPT57Y29uc3R7aXNSdGw6ZX09KDAsaS51c2VQb3BvdmVyQ29udGV4dCkoKTtyZXR1cm4oMCxyLmdldExpbmVhcktleWJvYXJkTmF2aWdhdGlvbikoYytgLFske28uREFUQV9JU19QT1BPVkVSX0lURU1fQlVUVE9OfV1gLHtob3Jpem9udGFsOiEwLGlzUnRsOmUsCmFsbG93TmVzdGVkRm9jdXNhYmxlOiEwfSl9fSw0OTM5NjAoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7aWNvblBhcnQ6KCk9PnN9KTt2YXIgbz1uKDc3OTQ3NCksaT1uKDQ1MDgyKTtmdW5jdGlvbiBhKGUpe2NvbnN0e2NoaWxkcmVuOnR9PWU7cmV0dXJuIG8uY3JlYXRlRWxlbWVudChpLldyYXBwZXIse2luZXJ0OiEwfSx0KX12YXIgcj1uKDYzODg3MiksbD1uKDU5NDMyMyk7ZnVuY3Rpb24gYyhlKXtyZXR1cm4gby5jcmVhdGVFbGVtZW50KGkuV3JhcHBlcixudWxsKX1mdW5jdGlvbiBzKGUpe3JldHVybiBlLmljb25Kc3g/by5jcmVhdGVFbGVtZW50KGEsbnVsbCxlLmljb25Kc3gpOmUuaWNvblN2Zz9vLmNyZWF0ZUVsZW1lbnQoci5TdmdJY29uTGlzdEl0ZW1QYXJ0LHtpY29uU3ZnOmUuaWNvblN2Z30pOmUuaWNvblVybD9vLmNyZWF0ZUVsZW1lbnQobC5VcmxJY29uTGlzdEl0ZW1QYXJ0LHtpY29uVXJsOmUuaWNvblVybH0pOmUuaWNvblNwYWNlP28uY3JlYXRlRWxlbWVudChjLG51bGwpOnZvaWQgMH19LDQ2NjIzMChlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtDaGVja2JveFBvcG92ZXJJdGVtOigpPT5yfSk7dmFyIG89big3Nzk0NzQpLGk9big1NzQwNzcpLGE9big5ODgwNjgpO2Z1bmN0aW9uIHIoZSl7Y29uc3R7cG9wb3Zlckl0ZW1SZWY6dCxwb3BvdmVySXRlbUJ1dHRvblJlZjpuLHBvcG92ZXJJdGVtQnV0dG9uSWQ6cixyb2xlOmwsdGl0bGU6YyxkZXNjcmlwdGlvbjpzLGNoZWNrZWQ6ZCxvbkNsaWNrOnUsYXJpYUNoZWNrZWQ6cCxsZWZ0U2xvdDptLHJpZ2h0U2xvdDpJLGRpc2FibGVkOnYsdGFiSW5kZXg6QyxkYXRhUWFJZDpifT1lLGY9KDAsby51c2VDYWxsYmFjaykoKCgpPT57dT8uKCFkKX0pLFtkLHVdKTtyZXR1cm4gby5jcmVhdGVFbGVtZW50KGkuQ2hlY2tib3hMaXN0SXRlbSx7bGlzdEl0ZW1SZWY6dCxsaXN0SXRlbUJ1dHRvblJlZjpuLGxpc3RJdGVtQnV0dG9uSWQ6cixhcmlhQ2hlY2tlZDpwLHJvbGU6bCx0aXRsZTpjLGRlc2NyaXB0aW9uOnMsY2hlY2tlZDpkLG9uQ2xpY2s6ZixsZWZ0U2xvdDptLHJpZ2h0U2xvdDpJLGRpc2FibGVkOnYsdGFiSW5kZXg6QyxkYXRhUWFJZDpiLFthLkRBVEFfSVNfUE9QT1ZFUl9JVEVNX0JVVFRPTl06InRydWUifSl9fSw4MDc4NzMoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7Q09OVEVYVF9BQ1RJT05fRk9DVVNBQkxFX1RBR1M6KCk9PnUsQ29udGV4dEFjdGlvbjooKT0+bX0pO3ZhciBvPW4oNzc5NDc0KSxpPW4oOTE0NDg3KSxhPW4ubihpKSxyPW4oMjk2Nzg2KSxsPW4oOTg4MDY4KSxjPW4oODY0NzM2KSxzPW4ubihjKTtjb25zdCBkPXtbbC5EQVRBX0lTX0NPTlRFWFRfQUNUSU9OXTohMH0sdT1bImFbaHJlZl0iLCJidXR0b246bm90KDpkaXNhYmxlZCkiLCJpbnB1dDpub3QoOmRpc2FibGVkKSIsJ1tyb2xlPSJidXR0b24iXSddLHA9dS5qb2luKCIsIik7ZnVuY3Rpb24gbShlKXtjb25zdHtjaGlsZHJlbjp0LGRhdGFRYUlkOm4scHJldmVudENsaWNrUHJvcGFnYXRpb246aT0hMH09ZSx7aWQ6bCxoaWRlQ29udGV4dEFjdGlvbnNJZk5vSG92ZXI6Yyxmb2N1c2VkQ29udGV4dEFjdGlvbnNDb3VudGVyOnUsc2V0Rm9jdXNlZENvbnRleHRBY3Rpb25zQ291bnRlcjptfT0oMCxyLnVzZUNvbnRleHRBY3Rpb24pKCksST0oMCxvLnVzZVJlZikobnVsbCk7cmV0dXJuKDAsby51c2VFZmZlY3QpKCgoKT0+e2NvbnN0IGU9SS5jdXJyZW50O2lmKCFlKXJldHVybjtjb25zdCB0PWUucXVlcnlTZWxlY3RvcihwKTtyZXR1cm4gdD9mdW5jdGlvbihlLHQpe2NvbnN0IG49KCk9Pnt0KChlPT5lKzEpKX0sbz0oKT0+e3QoKGU9PmUtMSkpfTtyZXR1cm4gZS5hZGRFdmVudExpc3RlbmVyKCJmb2N1cyIsbiksZS5hZGRFdmVudExpc3RlbmVyKCJibHVyIixvKSwoKT0+e2UucmVtb3ZlRXZlbnRMaXN0ZW5lcigiZm9jdXMiLG4pLGUucmVtb3ZlRXZlbnRMaXN0ZW5lcigiYmx1ciIsbyl9fSh0LG0pOnZvaWQgMH0pLFt0LG1dKSxvLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHsuLi5kLGlkOmwscmVmOkksb25DbGljazplPT57aSYmZS5zdG9wUHJvcGFnYXRpb24oKX0sY2xhc3NOYW1lOmEoKShzKCkuY29udGV4dEFjdGlvbnMsYyYmcygpLmhpZGVJZk5vSG92ZXIsdT4wJiZzKCkuc29tZUNvbnRleHRBY3Rpb25Gb2N1c2VkKSwiZGF0YS1xYS1pZCI6bn0sdCl9fSwyOTY3ODYoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7dXNlQ29udGV4dEFjdGlvbjooKT0+cix1c2VXcmFwcGVkSW50b0NvbnRleHRBY3Rpb25zQ29udGV4dDooKT0+YX0pO3ZhciBvPW4oNzc5NDc0KTtjb25zdCBpPSgwLG8uY3JlYXRlQ29udGV4dCkoe3NldElkczooKT0+e30saGlkZUNvbnRleHRBY3Rpb25zSWZOb0hvdmVyOiExLGZvY3VzZWRDb250ZXh0QWN0aW9uc0NvdW50ZXI6MCxzZXRGb2N1c2VkQ29udGV4dEFjdGlvbnNDb3VudGVyOigpPT57fX0pO2Z1bmN0aW9uIGEoZSx0LG4pe2NvbnN0W2Escl09KDAsby51c2VTdGF0ZSkoMCksbD0oMCxvLnVzZU1lbW8pKCgoKT0+KHtmb2N1c2VkQ29udGV4dEFjdGlvbnNDb3VudGVyOmEsc2V0Rm9jdXNlZENvbnRleHRBY3Rpb25zQ291bnRlcjpyLHNldElkczp0LGhpZGVDb250ZXh0QWN0aW9uc0lmTm9Ib3ZlcjohIW59KSksW2Escix0LG5dKTtyZXR1cm4oMCxvLnVzZU1lbW8pKCgoKT0+ZT9vLmNyZWF0ZUVsZW1lbnQoaS5Qcm92aWRlcix7dmFsdWU6bH0sZSk6dm9pZCAwKSxbZSxsXSl9ZnVuY3Rpb24gcigpe2NvbnN0e3NldElkczplLGhpZGVDb250ZXh0QWN0aW9uc0lmTm9Ib3Zlcjp0LGZvY3VzZWRDb250ZXh0QWN0aW9uc0NvdW50ZXI6bixzZXRGb2N1c2VkQ29udGV4dEFjdGlvbnNDb3VudGVyOmF9PSgwLG8udXNlQ29udGV4dCkoaSkscj0oMCxvLnVzZUlkKSgpO3JldHVybigwLG8udXNlRWZmZWN0KSgoKCk9PihlKChlPT5bLi4uZSxyXSkpLCgpPT57ZSgoZT0+ZS5maWx0ZXIoKGU9PmUhPT1yKSkpKX0pKSxbZSxyXSkse2lkOnIsaGlkZUNvbnRleHRBY3Rpb25zSWZOb0hvdmVyOnQsZm9jdXNlZENvbnRleHRBY3Rpb25zQ291bnRlcjpuLHNldEZvY3VzZWRDb250ZXh0QWN0aW9uc0NvdW50ZXI6YX19fSw1OTA5MTQoZSx0LG4peyJ1c2Ugc3RyaWN0Igo7bi5kKHQse0NvbnRleHRBY3Rpb25zUG9wb3Zlckl0ZW06KCk9PmR9KTt2YXIgbz1uKDc3OTQ3NCksaT1uKDk3MjczNCksYT1uKDc4Nzg5NSkscj1uKDQyMjc3NyksbD1uKDI5Njc4NiksYz1uKDUyOTQxMSk7ZnVuY3Rpb24gcyhlKXtjb25zdHtpZDp0LGFyaWFMYWJlbGxlZGJ5Om4sYXJpYU93bnM6aX09ZTtyZXR1cm4gby5jcmVhdGVFbGVtZW50KCJkaXYiLHtpZDp0LHJvbGU6Im1lbnUiLCJhcmlhLWxhYmVsbGVkYnkiOm4sImFyaWEtb3JpZW50YXRpb24iOiJob3Jpem9udGFsIiwiYXJpYS1vd25zIjppLmpvaW4oIiAiKSwiYXJpYS1oaWRkZW4iOjA9PT1pLmxlbmd0aH0pfWZ1bmN0aW9uIGQoZSl7Y29uc3QgdD0oMCxvLnVzZVJlZikobnVsbCksbj0oMCxvLnVzZVJlZikobnVsbCkse3BvcG92ZXJJdGVtUmVmOmQ9dCxwb3BvdmVySXRlbUJ1dHRvblJlZjp1PW4scG9wb3Zlckl0ZW1CdXR0b25JZDpwLHJvbGU6bSxhcmlhQ29udHJvbHM6SSxhcmlhTGFiZWw6dixsZWZ0U2xvdDpDLHRpdGxlOmIsZGVzY3JpcHRpb246ZixyaWdodFNsb3Q6aCxpc09wZW46ayxzZWxlY3RlZDpFLGRpc2FibGVkOk8saG90a2V5Omcsb25DbGljazp4LGFyaWFIYXNwb3B1cDpTLGhpZGVDb250ZXh0QWN0aW9uc0lmTm9Ib3Zlcjp5LGRhdGFRYUlkOkwsZWxsaXBzaXM6QX09ZSx3PSgwLGEudXNlRnVuY3Rpb25hbFJlZk9iamVjdCkoZCksVD0oMCxhLnVzZUZ1bmN0aW9uYWxSZWZPYmplY3QpKHUpLHtvbkZvY3VzOlAsb25LZXlEb3duOlJ9PSgwLHIudXNlSG9yaXpvbnRhbE1lbnVLZXlib2FyZE5hdmlnYXRpb24pKCksW04sUV09KDAsby51c2VTdGF0ZSkoW10pLF89KDAsYy51c2VJc0ZpcnN0UmVuZGVyKSgpLEI9KDAsbC51c2VXcmFwcGVkSW50b0NvbnRleHRBY3Rpb25zQ29udGV4dCkoaCxRLHkpLEQ9KDAsbC51c2VXcmFwcGVkSW50b0NvbnRleHRBY3Rpb25zQ29udGV4dCkoYixRLHkpO3JldHVybiBvLmNyZWF0ZUVsZW1lbnQoImRpdiIse29uRm9jdXM6UCxvbktleURvd246Un0sby5jcmVhdGVFbGVtZW50KGkuUG9wb3Zlckl0ZW0se3BvcG92ZXJJdGVtQnV0dG9uSWQ6cCxsZWZ0U2xvdDpDLHRpdGxlOkQsZGVzY3JpcHRpb246ZixyaWdodFNsb3Q6Qixpc09wZW46ayxzZWxlY3RlZDpFLGRpc2FibGVkOk8saG90a2V5Omcsb25DbGljazp4LHBvcG92ZXJJdGVtUmVmOncscG9wb3Zlckl0ZW1CdXR0b25SZWY6VCxyb2xlOm0sYXJpYUhhc3BvcHVwOlMsYXJpYUNvbnRyb2xzOkksYXJpYUV4cGFuZGVkOiEwLGFyaWFMYWJlbDp2LGFyaWFCdXN5Ol8sb3V0c2lkZU9mQnV0dG9uU2xvdDpvLmNyZWF0ZUVsZW1lbnQocyx7aWQ6SSxhcmlhTGFiZWxsZWRieTpwLGFyaWFPd25zOk59KSxkYXRhUWFJZDpMLGVsbGlwc2lzOkF9KSl9fSw5MjA5MzgoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7Q3VzdG9tUG9wb3Zlckl0ZW06KCk9PnJ9KTt2YXIgbz1uKDc3OTQ3NCksaT1uKDk4ODA2OCksYT1uKDg5NjIzNyk7Y29uc3Qgcj0oMCxvLmZvcndhcmRSZWYpKCgoZSx0KT0+e2NvbnN0e2lkOm4sY2hpbGRyZW46cixvbkNsaWNrOmwsZGlzYWJsZWQ6Yyxmb2N1c2FibGU6cyxyb2xlOmQsYXJpYUxhYmVsOnUsYXJpYUV4cGFuZGVkOnAsYXJpYUNvbnRyb2xzOm0sYXJpYUhhc3BvcHVwOkksZGF0YVFhSWQ6dn09ZTtyZXR1cm4gby5jcmVhdGVFbGVtZW50KGEuQ3VzdG9tTGlzdEl0ZW0se2lkOm4sb25DbGljazpsLGZvY3VzYWJsZTpzLHJlZjp0LHJvbGU6ZCxhcmlhTGFiZWw6dSxhcmlhRXhwYW5kZWQ6cCxhcmlhQ29udHJvbHM6bSxhcmlhSGFzcG9wdXA6SSxkaXNhYmxlZDpjLGRhdGFRYUlkOnYsW2kuREFUQV9JU19QT1BPVkVSX0lURU1fQlVUVE9OXTpzfHxsPyJ0cnVlIjp2b2lkIDB9LHIpfSkpfSwzOTE5MTQoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7U2VjdGlvblBvcG92ZXJJdGVtOigpPT5jfSk7dmFyIG89big3Nzk0NzQpLGk9big0NDU0OTMpLGE9big4NDQ4NzEpLHI9big5ODgwNjgpLGw9big0MjI3NzcpO2Z1bmN0aW9uIGMoZSl7Y29uc3R7aWQ6dCx0aXRsZTpuLGNoaWxkcmVuOmMsaXRlbVJvbGU6cyx3cmFwcGFibGU6ZCxkZWZhdWx0V3JhcHBlZDp1LG9uV3JhcHBlZENoYW5nZWQ6cCxhcmlhTGFiZWw6bSxyaWdodFNsb3Q6SSxyaWdodFNsb3RBcmlhTGFiZWxsZWRieTp2LGRhdGFRYUlkOkN9PWUsW2IsZl09KDAsby51c2VTdGF0ZSkodT8/ITEpLHtvbktleURvd246aH09KDAsbC51c2VIb3Jpem9udGFsTWVudUtleWJvYXJkTmF2aWdhdGlvbikoKSxrPW58fHZvaWQgMCx7b25Qb3BvdmVyQ29udGVudFJlc2l6ZTpFfT0oMCxpLnVzZVBvcG92ZXJDb250ZXh0KSgpOygwLG8udXNlTGF5b3V0RWZmZWN0KSgoKCk9PntFPy4oKX0pLFtFLGJdKTtjb25zdCBPPSgwLG8udXNlQ2FsbGJhY2spKCgoKT0+e2YoKGU9Pntjb25zdCB0PSFlO3JldHVybiBwPy4odCksdH0pKX0pLFtwXSk7cmV0dXJuIG8uY3JlYXRlRWxlbWVudChvLkZyYWdtZW50LG51bGwsby5jcmVhdGVFbGVtZW50KGEuU2VjdGlvbkxpc3RJdGVtLHtpZDp0LHRpdGxlOmssY2hpbGRyZW46YyxpdGVtUm9sZTpzLGFyaWFMYWJlbDptLHJpZ2h0U2xvdDpJLHJpZ2h0U2xvdEFyaWFMYWJlbGxlZGJ5OnYsZGF0YVFhSWQ6Qyxpc1dyYXBwZWQ6ZD9iOnZvaWQgMCxvbkNsaWNrOmQ/Tzp2b2lkIDAsb25LZXlEb3duOmgsW3IuREFUQV9JU19QT1BPVkVSX0lURU1fQlVUVE9OXTpkfHxJPyJ0cnVlIjp2b2lkIDB9KSl9fSw1NjEyNTQoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7U3dpdGNoUG9wb3Zlckl0ZW06KCk9PnJ9KTt2YXIgbz1uKDc3OTQ3NCksaT1uKDk3MjczNCksYT1uKDMwODIxNik7ZnVuY3Rpb24gcihlKXtjb25zdHtwb3BvdmVySXRlbVJlZjp0LHBvcG92ZXJJdGVtQnV0dG9uUmVmOm4scG9wb3Zlckl0ZW1CdXR0b25JZDpyLHJvbGU6bCx0aXRsZTpjLGRlc2NyaXB0aW9uOnMsY2hlY2tlZDpkLG9uQ2xpY2s6dSxhcmlhQ2hlY2tlZDpwLGxlZnRTbG90Om0sZGF0YVFhSWQ6SX09ZSx2PSgwLG8udXNlQ2FsbGJhY2spKCgoKT0+e3U/LighZCl9KSxbdSxkXSk7cmV0dXJuIG8uY3JlYXRlRWxlbWVudChpLlBvcG92ZXJJdGVtLHtwb3BvdmVySXRlbVJlZjp0LApwb3BvdmVySXRlbUJ1dHRvblJlZjpuLHBvcG92ZXJJdGVtQnV0dG9uSWQ6cixhcmlhQ2hlY2tlZDpwLGxlZnRTbG90Om0scm9sZTpsLHRpdGxlOmMsZGVzY3JpcHRpb246cyxyaWdodFNsb3Q6by5jcmVhdGVFbGVtZW50KGEuU3dpdGNoVmlldyx7Y2hlY2tlZDpkfSksb25DbGljazp2LGRhdGFRYUlkOkl9KX19LDcyMjMyMChlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtUaXRsZVBvcG92ZXJJdGVtOigpPT5zfSk7dmFyIG8saT1uKDc3OTQ3NCksYT1uKDk4ODA2OCkscj1uKDkzNTUzNSksbD1uKDQyMjc3NyksYz1uKDI5Njc4Nik7ZnVuY3Rpb24gcyhlKXtjb25zdHtpZDp0LHJvbGU6bixsZWZ0U2xvdDpvLHRpdGxlOnMsb25DbGljazpkLGFyaWFMYWJlbDp1LHJpZ2h0U2xvdDpwLHJpZ2h0U2xvdEFyaWFMYWJlbGxlZGJ5Om0scG9wb3Zlckl0ZW1CdXR0b25SZWY6SSx2YXJpYW50OnYsYXJpYUNvbnRyb2xzOkMsdGl0bGVJZDpiLHdyYXBwYWJsZTpmLHdyYXBwZWQ6aCxkYXRhUWFJZDprfT1lLHtvbktleURvd246RX09KDAsbC51c2VIb3Jpem9udGFsTWVudUtleWJvYXJkTmF2aWdhdGlvbikoKSxbTyxnXT0oMCxpLnVzZVN0YXRlKShbXSkseD0oMCxjLnVzZVdyYXBwZWRJbnRvQ29udGV4dEFjdGlvbnNDb250ZXh0KShwLGcpO3JldHVybiBpLmNyZWF0ZUVsZW1lbnQoci5UaXRsZUxpc3RJdGVtLHtpZDp0LHJvbGU6bixsZWZ0U2xvdDpvLHRpdGxlOnMsb25DbGljazpkLGFyaWFMYWJlbDp1LHJpZ2h0U2xvdDp4LHJpZ2h0U2xvdEFyaWFMYWJlbGxlZGJ5Om0sbGlzdEl0ZW1CdXR0b25SZWY6SSx2YXJpYW50OnYsYXJpYUNvbnRyb2xzOkMsdGl0bGVJZDpiLHdyYXBwZWQ6Zj9oOnZvaWQgMCxkYXRhUWFJZDprLG9uS2V5RG93bjpFLG5lc3RlZExpc3RzQXJpYU93bnM6Ty5sZW5ndGg+MD9PLmpvaW4oIiAiKTp2b2lkIDAsbmVzdGVkTGlzdEFyaWFIaWRkZW46MD09PU8ubGVuZ3RoLFthLkRBVEFfSVNfUE9QT1ZFUl9JVEVNX0JVVFRPTl06Znx8ZHx8cD8idHJ1ZSI6dm9pZCAwfSl9IWZ1bmN0aW9uKGUpe2UuUHJpbWFyeT0icHJpbWFyeSIsZS5TZWNvbmRhcnk9InNlY29uZGFyeSJ9KG98fChvPXt9KSl9LDMwODIxNihlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtTd2l0Y2hWaWV3OigpPT5zfSk7dmFyIG8saT1uKDc3OTQ3NCksYT1uKDkxNDQ4Nykscj1uLm4oYSksbD1uKDYyNTcwOSksYz1uLm4obCk7ZnVuY3Rpb24gcyhlKXtjb25zdHtzaXplOnQ9InNtYWxsIixjaGVja2VkOm4sZGlzYWJsZWQ6b309ZTtyZXR1cm4gaS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOnIoKShjKCkuc3dpdGNoVmlldyxjKClbdF0sbyYmYygpLmRpc2FibGVkLG4mJmMoKS5jaGVja2VkKX0saS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOmMoKS50cmFja30pLGkuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZTpjKCkudGh1bWJ9KSl9IWZ1bmN0aW9uKGUpe2UuU21hbGw9InNtYWxsIixlLk1lZGl1bT0ibWVkaXVtIixlLkxhcmdlPSJsYXJnZSJ9KG98fChvPXt9KSl9LDkxMzg3NChlLHQsbil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG8oZSl7Y29uc3QgdD1uZXcgTWFwO3JldHVybiBBcnJheS5mcm9tKGUudmFsdWVzKCkpLmZvckVhY2goKChlLG4pPT57dC5zZXQoZS5pZCxuKX0pKSx0fWZ1bmN0aW9uIGkoZSwuLi50KXtjb25zdCBuPXQubWFwKCgoKT0+W10pKTtyZXR1cm4gbi5wdXNoKFtdKSxlLmZvckVhY2goKGU9Pntjb25zdCBvPXQuZmluZEluZGV4KCh0PT50KGUpKSksaT0obi5sZW5ndGgrbyklbi5sZW5ndGg7bltpXS5wdXNoKGUpfSkpLG59bi5kKHQse2dldElkVG9JbmRleE1hcDooKT0+byxzcGxpdDooKT0+aX0pfSwxOTQ2NDgoZSl7ZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDE4IDE4IiB3aWR0aD0iMTgiIGhlaWdodD0iMTgiPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZD0ibTQuNjcgNy4zOC42Ni0uNzZMOSA5Ljg0bDMuNjctMy4yMi42Ni43Nkw5IDExLjE2IDQuNjcgNy4zOFoiLz48L3N2Zz4nfSw1NDMzMzkoZSl7ZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDE4IDE4IiB3aWR0aD0iMTgiIGhlaWdodD0iMTgiPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZD0ibTQuNjcgMTAuNjIuNjYuNzZMOSA4LjE2bDMuNjcgMy4yMi42Ni0uNzZMOSA2Ljg0bC00LjMzIDMuNzhaIi8+PC9zdmc+J30sMTIyOTYoZSl7ZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDE4IDE4IiB3aWR0aD0iMTgiIGhlaWdodD0iMTgiPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZD0iTTQuNSAzQTEuNSAxLjUgMCAwIDAgMyA0LjV2OUExLjUgMS41IDAgMCAwIDQuNSAxNWg5YTEuNSAxLjUgMCAwIDAgMS41LTEuNVYxMGgtMXYzLjVhLjUuNSAwIDAgMS0uNS41aC05YS41LjUgMCAwIDEtLjUtLjV2LTlhLjUuNSAwIDAgMSAuNS0uNUg4VjNINC41ek0xMSA0aDIuM0w5LjE0IDguMTVsLjcuN0wxNCA0LjcxVjdoMVYzaC00djF6Ii8+PC9zdmc+J319XSk7"}},"time_used":3,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":3,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"translations.smartsuppcdn.com/api/v1/widget/translations/lang/en/defaults","fqdn":"translations.smartsuppcdn.com","domain":"smartsuppcdn.com","tld":"com"},"ip":{"addr":"185.76.9.27","port":443,"asn":60068,"as":"Datacamp Limited","country":"Sweden","country_code":"SE"},"is_navigation_request":false,"resource_type":"fetch","requested_by":"https://digital-assettrade.com/","date":"2026-07-27T10:27:19.882Z","timestamp":1785148039882,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_256_GCM_SHA384","key_group_name":"x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"1087630013.rsc.cdn77.org","organization":""},"issuer":{"commonName":"YE2","organization":"Let's Encrypt"},"validity":{"start":"Wed, 03 Jun 2026 14:33:02 GMT","end":"Tue, 01 Sep 2026 14:33:01 GMT"},"fingerprint":{"sha1":"CE:B9:32:81:E9:D2:46:C8:31:53:55:D3:41:19:F7:94:91:30:D1:93","sha256":"54:C9:41:2F:97:E8:14:28:D7:2C:4F:FA:E0:C3:3A:BC:85:F8:14:22:1C:98:23:82:53:4D:5D:58:C9:0B:C9:68"}}},"request":{"raw":"GET /api/v1/widget/translations/lang/en/defaults HTTP/1.1\r\nHost: translations.smartsuppcdn.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\nReferer: https://digital-assettrade.com/\r\nOrigin: https://digital-assettrade.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: empty\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=4\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\ndate: Mon, 27 Jul 2026 10:27:19 GMT\r\ncontent-type: application/json; charset=utf-8\r\naccess-control-allow-origin: *\r\ncache-control: max-age=600\r\nx-response-time: 0ms\r\nx-version: 0dd3c95f86cdb6b59a0dad25ffcd406aa7c7723b\r\nx-77-nzt: ky1zfT/C8YXXAlWwLHF7CMGzbUIU8A0bpyJSRq25eO7samCrYurLl/NyQF5gZQZ0j3s8nM8\r\nx-77-nzt-ray: fdb54123c443a5658732676a4b2a0e38\r\nx-77-cache: HIT\r\nvary: Origin, Accept-Encoding\r\ncontent-encoding: gzip\r\nserver: CDN77-Turbo\r\nx-77-pop: stockholmSE\r\nx-77-age: 269\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"CDN77","description":"CDN77 is a content delivery network (CDN).","website":"https://www.cdn77.com","common_platform_enumeration":"","icon":"CDN77.png","categories":["CDN"]}],"data":{"size":7216,"size_decoded":3346,"mime_type":"application/json; charset=utf-8","magic":"JSON text data","md5":"05d7604a60456ab25eb809557b353edc","sha1":"e32135b721636e7994e42748da35341e03dfd123","sha256":"5892aca834fe3f9f8fb66f68c8a3eb2295708a3b428cf355d7f3e3c1a0b7b62e","sha512":"db4124c008e22597192e1f07b44575ff191a03322f763bffb1efd129152e0f6f1546d98f5016967b32cc71a8252fefc0546aef0be258e8343fbba4ae2afe00da","ssdeep":"192:Ccdft/hc4l6WKHSY8pZcqq+jT0UHAfoW/Ymz8:CgF/hcbWbYKZcF+jhqoWQmw","tlshash":"48e1b54f9a144ea987c6438276cfb84675bc80734250993afd8cc8b842697cda3e3b94","first_seen":"2026-04-01T12:23:41.393805Z","last_seen":"2026-07-27T13:00:53.891272Z","times_seen":5195,"resource_available":false,"data":"eyJhZ2VudFJhdGluZy5hbGwucGxhY2Vob2xkZXIiOiJMZWF2ZSB1cyBmZWVkYmFjayIsImFnZW50UmF0aW5nLmJhZC5mb3JtVGV4dCI6IlNvIHNvcnJ5IPCfmJMgV2hhdCB3ZW50IHdyb25nPyIsImFnZW50UmF0aW5nLmdvb2QuZm9ybVRleHQiOiJUaGFua3Mg8J+kqSBXaGF0IHdhcyBzbyBncmVhdD8iLCJhZ2VudFJhdGluZy5ub3JtYWwuZm9ybVRleHQiOiJUaGFua3Mg8J+RjSBIb3cgY2FuIHdlIGltcHJvdmU/IiwiYWdlbnRUcmFuc2Zlci5kZWZhdWx0VGV4dCI6IkFnZW50IiwiYWdlbnRUcmFuc2Zlci5qb2luZWQiOiJqb2luZWQgdGhlIGNoYXQiLCJhZ2VudFRyYW5zZmVyLmxlZnQiOiJsZWZ0IiwiYWdlbnRUcmFuc2Zlci5yZWRpcmVjdGVkIjoiaXMgeW91ciBuZXcgYWdlbnQiLCJhcmlhTGFiZWwuYWdlbnRBdmF0YXIiOiJBZ2VudCBhdmF0YXIiLCJhcmlhTGFiZWwuY2FyZCI6IlByb2R1Y3QgY2FyZCIsImFyaWFMYWJlbC5jaGF0Q29udGVudCI6IkNoYXQgY29udGVudCIsImFyaWFMYWJlbC5jaGF0Ym90QXZhdGFyIjoiQ2hhdGJvdCBhdmF0YXIiLCJhcmlhTGFiZWwuZHJhd2VyLmNvbnRlbnQiOiJEcmF3ZXIgY29udGVudCIsImFyaWFMYWJlbC5kcmF3ZXIub3ZlcmxheSI6IkRyYXdlciBvdmVybGF5IiwiYXJpYUxhYmVsLmlubGluZUVtb2ppUGlja2VyLmRlc2NyaXB0aW9uIjoiU2hvd2luZyB7Y291bnR9IGVtb2ppcyIsImFyaWFMYWJlbC5pbmxpbmVFbW9qaVBpY2tlci5sYWJlbCI6IkVtb2ppIHN1Z2dlc3Rpb25zIiwiYXJpYUxhYmVsLmxlZnQiOiJMZWZ0IiwiYXJpYUxhYmVsLm9wZW5DaGF0IjoiT3BlbiBTbWFydHN1cHAgY2hhdCIsImFyaWFMYWJlbC5wb3B1cCI6IlNtYXJ0c3VwcCBjaGF0IHBvcHVwIiwiYXJpYUxhYmVsLnJhdGVDaGF0LmJhZCI6IlJhdGUgY2hhdCBuZWdhdGl2ZWxseSIsImFyaWFMYWJlbC5yYXRlQ2hhdC5nb29kIjoiUmF0ZSBjaGF0IHBvc2l0aXZlbHkiLCJhcmlhTGFiZWwucmF0ZUNoYXQubmV1dHJhbCI6IlJhdGUgY2hhdCBuZXV0cmFsbHkiLCJhcmlhTGFiZWwucmVtb3ZlQXR0YWNobWVudCI6IlJlbW92ZSBhdHRhY2htZW50IiwiYXJpYUxhYmVsLnJpZ2h0IjoiUmlnaHQiLCJhcmlhTGFiZWwuc2Nyb2xsRG93biI6IlNjcm9sbCBkb3duIiwiYXJpYUxhYmVsLnN1Y2Nlc3MiOiJTdWNjZXNzIiwiYXJpYUxhYmVsLnVwbG9hZGluZyI6IlVwbG9hZGluZy4uLiIsImFyaWFMYWJlbC53aWRnZXRCcmFuZGluZyI6IlNtYXJ0c3VwcCBicmFuZGluZyIsImF1dGhGb3JtLmFjY2VwdFRlcm1zIjoiSSBhZ3JlZSB3aXRoIHByaXZhY3kgcG9saWN5IiwiYXV0aEZvcm0uYnV0dG9uLnNlbmQiOiJTZW5kIG1lc3NhZ2UiLCJhdXRoRm9ybS5kZXNjcmlwdGlvbiI6Ildl4oCZbGwgdXNlIHlvdXIgY29udGFjdCBpbmZvIG9ubHkgaWYgYWxsIHRoZSBhZ2VudHMgYXJlIGJ1c3kgYXQgdGhlIG1vbWVudCBhbmQgY2Fubm90IGltbWVkaWF0ZWx5IHJlcGx5LiIsImF1dGhGb3JtLmdyZWV0aW5nIjoi8J+RiyBQbGVhc2UgaW50cm9kdWNlIHlvdXJzZWxmIiwiYXV0aEZvcm0uZ3JvdXAiOiJDaG9vc2UgYSBncm91cCIsImF1dGhGb3JtLmxhYmVsLmVtYWlsIjoiRS1tYWlsIiwiYXV0aEZvcm0ubGFiZWwuZ3JvdXAiOiJHcm91cCIsImF1dGhGb3JtLmxhYmVsLm5hbWUiOiJOYW1lIiwiYXV0aEZvcm0ubGFiZWwucGhvbmUiOiJQaG9uZSIsImF1dGhGb3JtLnN1Ym1pdC5lcnJvciI6IkF1dGhlbnRpY2F0aW9uIGZhaWxlZCIsImF1dGhGb3JtLnN1Ym1pdC5zdWNjZXNzIjoiQXV0aGVudGljYXRpb24gd2FzIHN1Y2Nlc3NmdWwiLCJhdXRoRm9ybS55b3VyRW1haWwiOiJZb3VyIGVtYWlsIiwiYXV0aEZvcm0ueW91ck5hbWUiOiJZb3VyIG5hbWUiLCJhdXRoRm9ybS55b3VyUGhvbmUiOiJQaG9uZSBudW1iZXIiLCJidXR0b24uZ3JlZXRpbmciOiJDaGF0IiwiY2FyZC5saW5rc0xpbWl0UmVhY2hlZCI6IlVuYWJsZSB0byBzZW5kIG1vcmUgdGhhbiAyMCBVUkwgbGlua3MuIiwiY2FyZC5ub1ByZXZpZXdUaXRsZSI6IlByZXZpZXcgbm90IGF2YWlsYWJsZSIsImNhcmQub3BlblVybFRpdGxlIjoiUmVhZCBtb3JlIiwiY2FyZC5zZW5kaW5nSW5Qcm9ncmVzcyI6IlNlbmRpbmcgaW4gcHJvZ3Jlc3MsIHBsZWFzZSB3YWl04oCmIiwiY2hhdElucHV0LnBsYWNlaG9sZGVyIjoiVHlwZSB5b3VyIG1lc3NhZ2UgaGVyZSIsImNoYXRQcmV2aWV3Lm1lc3NhZ2UxIjoiSGksIGlzIGFueWJvZHkgaGVyZT8iLCJjaGF0UHJldmlldy5tZXNzYWdlMiI6IkhlbGxvLCB5ZXMgd2UgYXJlIGhlcmUiLCJjaGF0UHJldmlldy5tZXNzYWdlMyI6Ik9rLCB0aGFua3MiLCJjaGF0Ym90LmdvQmFjayI6IkdvIGJhY2siLCJjbG9zZUNvbnZlcnNhdGlvbk1vZGFsLmJ1dHRvbiI6IlllcywgZW5kIGNoYXQiLCJjbG9zZUNvbnZlcnNhdGlvbk1vZGFsLnRleHQiOiJJcyB0aGF0IHJlYWxseSBhbGw/IElmIHNvbWV0aGluZyBlbHNlIGNvbWVzIHRvIG1pbmQsIHlvdSBjYW4gYWx3YXlzIHJldHVybiB0byB0aGUgY29udmVyc2F0aW9uLiIsImNsb3NlQ29udmVyc2F0aW9uTW9kYWwudGl0bGUiOiJFbmQgY2hhdCIsImRyYWdBbmREcm9wLmRyb3BIZXJlIjoiRHJvcCB5b3VyIGZpbGUocykgaGVyZSIsImVtYWlsVHJhbnNjcmlwdC5wb3NpdGl2ZUZlZWRiYWNrIjoiVHJhbnNjcmlwdCBoYXMgYmVlbiBzZW50IiwiZW1haWxUcmFuc2NyaXB0LnNlbmRDb3B5IjoiU2VuZCBjb252ZXJzYXRpb24gY29weSIsImVycm9yLmZpbGVVcGxvYWQiOiJGaWxlIHVwbG9hZCBmYWlsdXJlIiwiZXJyb3Iubm9JbnRlcm5ldCI6IkludGVybmV0IGNvbm5lY3Rpb24gbG9zdCIsImVycm9yLnNlcnZlckVycm9yIjoiU2VydmVyIGVycm9yIG9jY3VycmVkIiwiZmlsZVVwbG9hZC5iYWRGaWxlVHlwZSI6IlRoaXMgZmlsZSB0eXBlIGlzIG5vdCBzdXBwb3J0ZWQuIiwiZmlsZVVwbG9hZC5maWxlVG9vQmlnIjoiVGhlIGZpbGUgaXMgYmlnZ2VyIHRoYW4gdGhlIGFsbG93ZWQgbGltaXQiLCJmaWxlVXBsb2FkLmZpbGVzV2VyZW50UHJvY2Vzc2VkIjoiU29tZSBmaWxlcyBjb3VsZCBub3QgYmUgcHJvY2Vzc2VkIiwiZmlsZVVwbG9hZC5pbWFnZUVycm9yIjoiVGhpcyBpbWFnZSBpcyBub3QgdmFsaWQiLCJmaWxlVXBsb2FkLnRvb01hbnlGaWxlcyI6IkxpbWl0IGZvciB1cGxvYWRpbmcgZmlsZXMgaXMgIiwiZmlsZVVwbG9hZC51cGxvYWRGaWxlIjoiVXBsb2FkIGZpbGUiLCJmb3JtLnN1Ym1pdC5lcnJvciI6IlNvbWV0aGluZyB3ZW50IHdyb25nLiBQbGVhc2UgdHJ5IGFnYWluLiIsImZvcm0uc3VibWl0LnN1Y2Nlc3MiOiJTdWNjZXNzZnVsbHkgZG9uZSIsImdkcHIuZGF0YVByaXZhY3lIZWFkbGluZSI6IlBlcnNvbmFsIGRhdGEgcHJvY2Vzc2luZyIsImdkcHIuZGF0YVByaXZhY3lUZXh0IjoiU21hcnRzdXBwLmNvbSwgcy5yLm8sIHByb2Nlc3NlcyBwZXJzb25hbCBkYXRhLiwgVkFUIElEIENaMDM2Njg2ODEgKGZ1cnRoZXIgYXMgXCJTbWFydHN1cHBcIikgYXMgYSBkYXRhIHByb2Nlc3NvciB3aG8gYWN0cyBvbiBiZWhhbGYgb2YgdGhlIHdlYnNpdGUgb3duZXIgd2hvIGlzIHRoZSBkYXRhIGNvbnRyb2xsZXIuIFxuXG5TbWFydHN1cHAgaXMgR0RQUiBjb21wbGlhbnQuIFlvdSBjYW4gZmluZCBpbmZvcm1hdGlvbiBhYm91dCBTbWFydHN1cHAgcGVyc29uYWwgZGF0YSBwcml2YWN5IGFuZCBwcm9jZXNzaW5nIG9uIGhlbHAuc21hcnRzdXBwLmNvbS9lbl9VUy9wcml2YWN5LiBcblxuUHJvY2Vzc2luZyBvZiB5b3VyIHBlcnNvbmFsIGRhdGEgaXMgbmVjZXNzYXJ5IGluIG9yZGVyIHRvIHByb3ZpZGUgY3VzdG9tZXIgc2VydmljZS4gQWR2YW5jZWQgZmVhdHVyZXMgd2lsbCBvbmx5IGJlIHR1cm5lZCBvbiBpZiB5b3UgaGF2ZSBhZ3JlZWQgdG8gdGhlbS4gXG5cblBsZWFzZSBjb250YWN0IHRoZSB3ZWJzaXRlIG93bmVyIGlmIHlvdSBoYXZlIHF1ZXN0aW9ucyBhYm91dCB0aGUgcHJvY2Vzc2luZyBvZiBwZXJzb25hbCBkYXRhIG9yIGlmIHlvdSB3YW50IHRvIHJlcXVlc3Qgb3IgZXJhc2UgeW91ciBwZXJzb25hbCBkYXRhLiIsImdlbmVyYWwuYmFjayI6IkJhY2siLCJnZW5lcmFsLm5ld01lc3NhZ2VzIjoiTmV3IG1lc3NhZ2VzIiwiZ2VuZXJhbC5zZW5kIjoiU2VuZCIsIm9wdGlvbnMuYWNjZXNzaWJpbGl0eSI6IkFjY2Vzc2liaWxpdHkiLCJvcHRpb25zLmNvcHlyaWdodCI6IsKpIHt5ZWFyfSBTbWFydHN1cHAuY29tIiwib3B0aW9ucy5lbWFpbFRyYW5zY3JpcHQiOiJTZW5kIGVtYWlsIHRyYW5zY3JpcHQiLCJvcHRpb25zLmZlZWRiYWNrIjoiRGlkIHlvdSBmaW5kIGEgYnVnPyIsIm9wdGlvbnMuZ2RwciI6IkdEUFIgYW5kIHByaXZhY3kiLCJvcHRpb25zLnBkZlRyYW5zY3JpcHQiOiJEb3dubG9hZCB0cmFuc2NyaXB0Iiwib3B0aW9ucy5wbGF5U291bmRzIjoiUGxheSB0aGUgc291bmRzIiwib3B0aW9ucy50aXRsZSI6Ik9wdGlvbnMiLCJyYXRpbmcuYnV0dG9uLnJhdGUuYWdlbnQiOiJSYXRlIGNoYXQiLCJyYXRpbmcuYnV0dG9uLnJhdGUuYWkiOiJSYXRlIEFJIGNoYXRib3QiLCJyYXRpbmcuc3VibWl0LnN1Y2Nlc3MiOiJSYXRpbmcgc2VudCIsInJhdGluZy5zdWJtaXRGZWVkYmFjay5zdWNjZXNzIjoiVGhhbmsgeW91IGZvciB5b3VyIGZlZWRiYWNrIiwicmF0aW5nLndhc0l0SGVscGZ1bC5hZ2VudCI6IkhvdyB3b3VsZCB5b3UgcmF0ZSBvdXIgc3VwcG9ydD8iLCJyYXRpbmcud2FzSXRIZWxwZnVsLmFpIjoiSG93IHdvdWxkIHlvdSByYXRlIHRoZSBBSSBjaGF0Ym90IGV4cGVyaWVuY2U/Iiwic3RhdHVzQmFyLmJvdElkZW50aXR5IjoiQUkgYXNzaXN0YW50Iiwic3RhdHVzQmFyLm9mZmxpbmVUZXh0IjoiSGFwcHkgdG8gYW5zd2VyIHlvdSBsYXRlciIsInN0YXR1c0Jhci5vbmxpbmVUZXh0IjoiV2UgcmVwbHkgaW1tZWRpYXRlbHkiLCJzeXN0ZW1NZXNzYWdlLmNoYXRDbG9zZWQiOiJDaGF0IHdhcyBjbG9zZWQiLCJzeXN0ZW1NZXNzYWdlLmNoYXRSZXNvbHZlZCI6InJlc29sdmVkIGNvbnZlcnNhdGlvbiIsInRpY2tldEZvcm0ubGFiZWwubWVzc2FnZSI6IldoYXQgY2FuIHdlIGhlbHAgeW91IHdpdGg/IiwidGlja2V0Rm9ybS5tZXNzYWdlLnBsYWNlaG9sZGVyIjoiRGVzY3JpYmUgeW91ciBwcm9ibGVtIiwidGlja2V0Rm9ybS5zdWJtaXQuYnV0dG9uIjoi4pyJ77iPIENvbnRhY3QgdGhlIGFnZW50IGJ5IGVtYWlsIiwidGltZWFnby5YRGF5c0FnbyI6IiclcyBkYXlzIGFnbyIsInRpbWVhZ28uWEhvdXJzQWdvIjoiJXMgaG91cnMgYWdvIiwidGltZWFnby5YTWludXRlc0FnbyI6IiVzIG1pbnV0ZXMgYWdvIiwidGltZWFnby5YTW9udGhzQWdvIjoiJXMgbW9udGhzIGFnbyIsInRpbWVhZ28uWFNlY29uZHNBZ28iOiIlcyBzZWNvbmRzIGFnbyIsInRpbWVhZ28uWFdlZWtzQWdvIjoiJXMgd2Vla3MgYWdvIiwidGltZWFnby5YWWVhcnNBZ28iOiIlcyB5ZWFycyBhZ28iLCJ0aW1lYWdvLmp1c3ROb3ciOiJqdXN0IG5vdyIsInRpbWVhZ28ub25lRGF5QWdvIjoiMSBkYXkgYWdvIiwidGltZWFnby5vbmVIb3VyQWdvIjoiMSBob3VyIGFnbyIsInRpbWVhZ28ub25lTWludXRlQWdvIjoiMSBtaW51dGUgYWdvIiwidGltZWFnby5vbmVNb250aEFnbyI6IjEgbW9udGggYWdvIiwidGltZWFnby5vbmVXZWVrQWdvIjoiMSB3ZWVrIGFnbyIsInRpbWVhZ28ub25lWWVhckFnbyI6IjEgeWVhciBhZ28iLCJ0aW1lYWdvLnJpZ2h0Tm93IjoicmlnaHQgbm93IiwidGltZWFnby5zZWNvbmRzIjoiaW4gJXMgc2Vjb25kcyIsInRvb2x0aXAuYXR0YWNobWVudCI6IkF0dGFjaG1lbnQiLCJ0b29sdGlwLmNsb3NlIjoiQ2xvc2UiLCJ0b29sdGlwLmNvbGxhcHNlIjoiQ29sbGFwc2UgY2hhdCIsInRvb2x0aXAuZW1vamkiOiJFbW9qaSIsInRvb2x0aXAuZXhwYW5kIjoiRXhwYW5kIGNoYXQiLCJ0b29sdGlwLm1pbmltaXplIjoiTWluaW1pemUgY2hhdCIsInRvb2x0aXAubW9yZSI6IlNob3cgbW9yZSIsInRvb2x0aXAubW9yZUJ1dHRvbiI6IlNob3cgTW9yZSIsInRvb2x0aXAucmF0ZUNoYXQiOiJSYXRlIENoYXQiLCJ0b29sdGlwLnNlbmQiOiJTZW5kIiwidG9wQmFyLmVtYWlsVHJhbnNjcmlwdCI6IlNlbmQgZW1haWwgdHJhbnNjcmlwdCIsInRvcEJhci5nZHByVGl0bGUiOiJHRFBSIGFuZCBwcml2YWN5IiwidG9wQmFyLm9mZmxpbmUuaGVsbG8iOiJTZW5kIHVzIGEgbWVzc2FnZSIsInRvcEJhci5vbmxpbmUuaGVsbG8iOiJIb3cgY2FuIHdlIGhlbHA/IiwidG9wQmFyLnR1cm5PZmZTb3VuZHMiOiJUdXJuIG9mZiBzb3VuZHMiLCJ0b3BCYXIudHVybk9uU291bmRzIjoiVHVybiBvbiBzb3VuZHMiLCJ0cmlnZ2VyLm9wZW5DaGF0QnV0dG9uIjoiTGV0J3MgY2hhdCIsInRyaWdnZXIucmVwbHlCdXR0b24iOiJSZXBseSIsInZhbGlkYXRpb25zLmNoZWNrZWRUZXJtcyI6IllvdSBtdXN0IGFncmVlIHdpdGggdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIHRvIGNvbnRpbnVlIiwidmFsaWRhdGlvbnMuaXNFbWFpbCI6IlBsZWFzZSBlbnRlciB2YWxpZCBlbWFpbCIsInZhbGlkYXRpb25zLnBob25lIjoiUGxlYXNlIGVudGVyIGEgdmFsaWQgcGhvbmUgbnVtYmVyIiwidmFsaWRhdGlvbnMucmVxdWlyZWQiOiJQbGVhc2UgZmlsbCBvdXQgdGhpcyBmaWVsZCIsIndhcm5pbmdCYXIubWF4TGVuZ3RoIjoiWW91IGhhdmUgcmVhY2hlZCB0aGUgbWF4aW11bSBhbGxvd2VkIG51bWJlciBvZiBjaGFyYWN0ZXJzICgyMDAwKSIsIndhcm5pbmdCYXIuc2FtZU1lc3NhZ2VUd2ljZSI6IkNhbm5vdCBzZW5kIHRoZSBzYW1lIG1lc3NhZ2UgdHdpY2UgaW4gYSByb3cuIiwid2FybmluZ0Jhci5zcGFtUHJvdGVjdGlvbiI6IllvdXIgbWVzc2FnZXMgaGF2ZSBiZWVuIGlkZW50aWZpZWQgYXMgc3BhbS4gUGxlYXNlIHdhaXQgZm9yIDMwIHNlY29uZHMgYmVmb3JlIHNlbmRpbmcgYW5vdGhlciBtZXNzYWdlLiIsIndhcm5pbmdCYXIudXBsb2FkRmlsZU5vdEZpcnN0IjoiRmlyc3QgbWVzc2FnZSBjYW5ub3QgYmUgYSBmaWxlIiwid2lkZ2V0UHJldmlldy5jb250YWN0TWVzc2FnZSI6IvCfjokgTG9va3MgZmFudGFzdGljISDwn5Kq8J+PuyBMZXTCtHMgcm9jayB0aG9zZSBjb252ZXJzYXRpb25zIGFuZCBsZWF2ZSBhIGxhc3RpbmcgaW1wcmVzc2lvbiEg8J+agCIsIndpZGdldFByZXZpZXcud2VsY29tZU1lc3NhZ2UiOiLwn5GL8J+PuyBXZWxjb21lISBUaGlzIGlzIGEgc25lYWsgcGVlayBvZiB5b3VyIGNoYXQgYm94LiBHZXQgcmVhZHkgdG8gc2hpbmUg4pyoIGluIGN1c3RvbWVyIGludGVyYWN0aW9ucyEiLCJtZXNzYWdlLmRlbGV0ZWQiOiJUaGlzIG1lc3NhZ2Ugd2FzIHJlbW92ZWQifQ=="}},"time_used":64,"timings":{"blocked":0,"dns":33,"connect":8,"send":0,"wait":8,"receive":0,"ssl":14},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"s3.tradingview.com/tv.js","fqdn":"s3.tradingview.com","domain":"tradingview.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://digital-assettrade.com/","date":"2026-07-27T10:27:12.036Z","timestamp":1785148032036,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_256_GCM_SHA384","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.tradingview.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 21 Oct 2025 00:00:00 GMT","end":"Tue, 17 Nov 2026 23:59:59 GMT"},"fingerprint":{"sha1":"C4:FE:64:00:30:2A:CD:16:30:95:7E:E1:70:D1:31:3A:D6:33:3A:CC","sha256":"87:D2:67:7D:3E:02:F0:3B:58:BD:38:17:DA:FE:73:C0:CA:25:F9:58:CC:11:14:E0:3A:6E:C3:58:84:9E:BF:52"}}},"request":{"raw":"GET /tv.js HTTP/1.1\r\nHost: s3.tradingview.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-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://digital-assettrade.com/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:12 GMT\r\ncontent-type: text/javascript\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 1837468\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-methods: GET\r\naccess-control-allow-origin: *\r\naccess-control-max-age: 3000\r\ncache-control: public, max-age=300\r\ncontent-encoding: zstd\r\netag: \"fd560649121156073923ce51d3f04348\"\r\nlast-modified: Fri, 24 Jul 2026 10:30:09 GMT\r\nx-amz-id-2: rVi82EHTOtiBXmhecv4lVPjaa4euCv7I6Hy/VP4YJq/TW6en+8hec8Qava0ldDZRNVal/kvBHw/gS3XR//yCqod+j5FwhXqQ\r\nx-amz-request-id: BCWZ9DFHJHF6G7GM\r\nx-amz-server-side-encryption: AES256\r\nx-amz-version-id: 7TroqDUvH0VSiO5OBFo4gpyelwzMKfa9\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncontent-security-policy: default-src 'none'\r\ncdn-cachedat: 07/24/2026 10:31:00\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 43f623bd2c5bff2a20951d560716c394\r\ncdn-cache: REVALIDATED\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]},{"name":"Amazon Web Services","description":"Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.","website":"https://aws.amazon.com/","common_platform_enumeration":"","icon":"Amazon Web Services.svg","categories":["PaaS"]}],"data":{"size":21309,"size_decoded":8256,"mime_type":"text/javascript","magic":"data","md5":"fd560649121156073923ce51d3f04348","sha1":"bf3bf0105aa9e01a4f453898da7131486e2d583b","sha256":"e6d5c0aef4b2cfe736dd64b0761aa2807a25f6f84018c33f02c00cf654e110ac","sha512":"127a919f82388dd09f1042abf42efe6108ccf2f63ba3527bdc84ab7d9692ce3e83fa7db3dcbe6f538c9ec159031aa8ff2c4b5f119a5ac104abe8be23b85db550","ssdeep":"384:EqhCtUi8k0pwkp8EpXWpvS2rfVujtkl2okhIuWea1pYp4t6YJjlWm0yoVymbLP:EqZi8k0pwkp8EpXWpvS2rYj9okhfWeWa","tlshash":"48a2d76db5807a3c028700ee306f320c753765a4e10149a4fa78abe59558e8ea277fbd","first_seen":"2026-02-24T18:19:55.948124Z","last_seen":"2026-07-27T13:09:40.011591Z","times_seen":1173,"resource_available":true,"data":"InVzZSBzdHJpY3QiOyFmdW5jdGlvbigpe2lmKHdpbmRvdy5UcmFkaW5nVmlldyYmd2luZG93LlRyYWRpbmdWaWV3Lmhvc3QmJiF3aW5kb3cuVHJhZGluZ1ZpZXcucmVvbG9hZFR2anMpcmV0dXJuO3ZhciBlPXsiY29sb3ItY29sZC1ncmF5LTMwMCI6IiNCMkI1QkUiLCJjb2xvci1icmFuZCI6IiMyOTYyRkYiLCJjb2xvci1icmFuZC1ob3ZlciI6IiMxRTUzRTUiLCJjb2xvci1icmFuZC1hY3RpdmUiOiIjMTg0OENDIn07Y29uc3QgdD1uZXcgUmVnRXhwKCJeaHR0cChzKT86KC8vKT8iKTt2YXIgbyxpLHIsbixhLHMsZCxsPSItYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICdUcmVidWNoZXQgTVMnLCBSb2JvdG8sIFVidW50dSwgc2Fucy1zZXJpZiIsYz17aG9zdDpudWxsPT13aW5kb3cubG9jYXRpb24uaG9zdC5tYXRjaCgvdHJhZGluZ3ZpZXdcLmNvbXxweXJyb3NpbnZlc3RtZW50XC5jb20vaSk/Imh0dHBzOi8vcy50cmFkaW5ndmlldy5jb20iOiJodHRwczovL3d3dy50cmFkaW5ndmlldy5jb20iLGlkZWFzSG9zdDoiaHR0cHM6Ly93d3cudHJhZGluZ3ZpZXcuY29tIixjaGF0SG9zdDoiaHR0cHM6Ly93d3cudHJhZGluZ3ZpZXcuY29tIix3aWRnZXRIb3N0OiJodHRwczovL3d3dy50cmFkaW5ndmlldy13aWRnZXQuY29tIixnZXRIb3N0OmZ1bmN0aW9uKGUpe3JldHVybiBlLnVzZVdpZGdldEhvc3Q/Yy53aWRnZXRIb3N0OmMuaG9zdH0sZW1iZWRTdHlsZXNGb3JDb3B5cmlnaHQ6ZnVuY3Rpb24oKXt2YXIgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzdHlsZSIpO3JldHVybiB0LmlubmVySFRNTD0iLnRyYWRpbmd2aWV3LXdpZGdldC1jb3B5cmlnaHQge2ZvbnQtc2l6ZTogMTNweCAhaW1wb3J0YW50OyBsaW5lLWhlaWdodDogMzJweCAhaW1wb3J0YW50OyB0ZXh0LWFsaWduOiBjZW50ZXIgIWltcG9ydGFudDsgdmVydGljYWwtYWxpZ246IG1pZGRsZSAhaW1wb3J0YW50OyBmb250LWZhbWlseTogIitsKyIgIWltcG9ydGFudDsgY29sb3I6ICIrZVsiY29sb3ItY29sZC1ncmF5LTMwMCJdKyIgIWltcG9ydGFudDt9IC50cmFkaW5ndmlldy13aWRnZXQtY29weXJpZ2h0IC5ibHVlLXRleHQge2NvbG9yOiAiK2VbImNvbG9yLWJyYW5kIl0rIiAhaW1wb3J0YW50O30gLnRyYWRpbmd2aWV3LXdpZGdldC1jb3B5cmlnaHQgYSB7dGV4dC1kZWNvcmF0aW9uOiBub25lICFpbXBvcnRhbnQ7IGNvbG9yOiAiK2VbImNvbG9yLWNvbGQtZ3JheS0zMDAiXSsiICFpbXBvcnRhbnQ7fSAudHJhZGluZ3ZpZXctd2lkZ2V0LWNvcHlyaWdodCBhOnZpc2l0ZWQge2NvbG9yOiAiK2VbImNvbG9yLWNvbGQtZ3JheS0zMDAiXSsiICFpbXBvcnRhbnQ7fSAudHJhZGluZ3ZpZXctd2lkZ2V0LWNvcHlyaWdodCBhOmhvdmVyIC5ibHVlLXRleHQge2NvbG9yOiAiK2VbImNvbG9yLWJyYW5kLWhvdmVyIl0rIiAhaW1wb3J0YW50O30gLnRyYWRpbmd2aWV3LXdpZGdldC1jb3B5cmlnaHQgYTphY3RpdmUgLmJsdWUtdGV4dCB7Y29sb3I6ICIrZVsiY29sb3ItYnJhbmQtYWN0aXZlIl0rIiAhaW1wb3J0YW50O30gLnRyYWRpbmd2aWV3LXdpZGdldC1jb3B5cmlnaHQgYTp2aXNpdGVkIC5ibHVlLXRleHQge2NvbG9yOiAiK2VbImNvbG9yLWJyYW5kIl0rIiAhaW1wb3J0YW50O30iLHR9LGVtYmVkU3R5bGVzRm9yRnVsbEhlaWdodDpmdW5jdGlvbihlLHQsbyl7dmFyIGk9dD8iY2FsYygiK2UrIiAtIDMycHgpIjplLHI9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiIyIrbyk7ci5wYXJlbnRFbGVtZW50LnN0eWxlLmhlaWdodD1pLHIuc3R5bGUuaGVpZ2h0PSIxMDAlIn0sZ0lkOmZ1bmN0aW9uKCl7cmV0dXJuInRyYWRpbmd2aWV3XyIrKDEwNDg1NzYqKDErTWF0aC5yYW5kb20oKSl8MCkudG9TdHJpbmcoMTYpLnN1YnN0cmluZygxKX0saXNQZXJzZW50SGVpZ2h0OmZ1bmN0aW9uKGUpe3JldHVybiIlIj09PWV9LGdldFN1ZmZpeDpmdW5jdGlvbihlKXt2YXIgdD1lLnRvU3RyaW5nKCkubWF0Y2goLyglfHB4fGVtfGV4KS8pO3JldHVybiB0P3RbMF06InB4In0saGFzQ29weXJpZ2h0OmZ1bmN0aW9uKGUpe3ZhciB0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGUpLG89dCYmdC5wYXJlbnRFbGVtZW50O3JldHVybiEhbyYmISFvLnF1ZXJ5U2VsZWN0b3IoIi50cmFkaW5ndmlldy13aWRnZXQtY29weXJpZ2h0Iil9LGNhbGN1bGF0ZVdpZGdldEhlaWdodDpmdW5jdGlvbihlLHQpe3ZhciBvPXBhcnNlSW50KGUpLGk9dGhpcy5nZXRTdWZmaXgoZSkscj10aGlzLmlzUGVyc2VudEhlaWdodChpKSxuPXQmJnRoaXMuaGFzQ29weXJpZ2h0KHQpO3JldHVybiByJiZ0JiYodGhpcy5lbWJlZFN0eWxlc0ZvckZ1bGxIZWlnaHQobytpLG4sdCksbik/MTAwK2k6bj8iY2FsYygiK28raSsiIC0gMzJweCkiOm8raX0sb25yZWFkeTpmdW5jdGlvbihlKXt3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcj93aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigiRE9NQ29udGVudExvYWRlZCIsZSwhMSk6d2luZG93LmF0dGFjaEV2ZW50KCJvbmxvYWQiLGUpfSxiaW5kRXZlbnQ6ZnVuY3Rpb24oZSx0LG8pe2UuYWRkRXZlbnRMaXN0ZW5lcj9lLmFkZEV2ZW50TGlzdGVuZXIodCxvLCExKTplLmF0dGFjaEV2ZW50JiZlLmF0dGFjaEV2ZW50KCJvbiIrdCxvKX0sdW5iaW5kRXZlbnQ6ZnVuY3Rpb24oZSx0LG8pe2UucmVtb3ZlRXZlbnRMaXN0ZW5lcj9lLnJlbW92ZUV2ZW50TGlzdGVuZXIodCxvLCExKTplLmRldGFjaEV2ZW50JiZlLmRldGFjaEV2ZW50KCJvbiIrdCxvKX0sY2xvbmVTaW1wbGVPYmplY3Q6ZnVuY3Rpb24oZSl7aWYobnVsbD09ZXx8Im9iamVjdCIhPXR5cGVvZiBlKXJldHVybiBlO3ZhciB0PWUuY29uc3RydWN0b3IoKTtmb3IodmFyIG8gaW4gZSllLmhhc093blByb3BlcnR5KG8pJiYodFtvXT1lW29dKTtyZXR1cm4gdH0saXNBcnJheTpmdW5jdGlvbihlKXtyZXR1cm4iW29iamVjdCBBcnJheV0iPT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGUpfSxnZW5lcmF0ZVV0bUZvclVybFBhcmFtczpmdW5jdGlvbihlKXt2YXIgdD17dXRtX3NvdXJjZTp3aW5kb3cubG9jYXRpb24uaG9zdG5hbWUsdXRtX21lZGl1bTpjLmhhc0NvcHlyaWdodChlLmNvbnRhaW5lcik/IndpZGdldF9uZXciOiJ3aWRnZXQifTtyZXR1cm4gZS50eXBlJiYodC51dG1fY2FtcGFpZ249ZS50eXBlLCJjaGFydCI9PT1lLnR5cGUmJih0LnV0bV90ZXJtPWUuc3ltYm9sKSksdH0sZ2V0UGFnZVVyaVN0cmluZzpmdW5jdGlvbigpe2NvbnN0IGU9bG9jYXRpb24uaHJlZixvPXRoaXMuaW52YWxpZFVybChlKTtyZXR1cm4gb3x8ZS5yZXBsYWNlKHQsIiIpfSxpbnZhbGlkVXJsOmZ1bmN0aW9uKGUpe3RyeXtjb25zdCBvPW5ldyBVUkwoZSk7cmV0dXJuIHQudGVzdChvLnByb3RvY29sKT9udWxsOiJfX05IVFRQX18ifWNhdGNoKGUpe3JldHVybiJfX0ZBSUxfXyJ9fSxnZXRXaWRnZXRUaXRsZUF0dHJpYnV0ZTpmdW5jdGlvbihlLHQpe3JldHVybiBlfHxgJHt0LnJlcGxhY2UoIi0iLCIgIil9IFRyYWRpbmdWaWV3IHdpZGdldGB9LFdpZGdldEFic3RyYWN0OmZ1bmN0aW9uKCl7fSxNZWRpdW1XaWRnZXQ6ZnVuY3Rpb24oZSl7dGhpcy5pZD1jLmdJZCgpO2NvbnN0IHQ9Yy5jYWxjdWxhdGVXaWRnZXRIZWlnaHQoZS5oZWlnaHR8fDQwMCxlLmNvbnRhaW5lcl9pZCk7bGV0IG87c3dpdGNoKGUuY2hhcnRUeXBlKXtjYXNlImNhbmRsZXN0aWNrcyI6e2NvbnN0e2NoYXJ0VHlwZTp0LHVwQ29sb3I6aSxkb3duQ29sb3I6cixib3JkZXJVcENvbG9yOm4sYm9yZGVyRG93bkNvbG9yOmEsd2lja1VwQ29sb3I6cyx3aWNrRG93bkNvbG9yOmR9PWU7bz17Y2hhcnRUeXBlOnQsdXBDb2xvcjppLGRvd25Db2xvcjpyLGJvcmRlclVwQ29sb3I6bixib3JkZXJEb3duQ29sb3I6YSx3aWNrVXBDb2xvcjpzLHdpY2tEb3duQ29sb3I6ZH07YnJlYWt9Y2FzZSJiYXJzIjp7Y29uc3R7Y2hhcnRUeXBlOnQsdXBDb2xvcjppLGRvd25Db2xvcjpyfT1lO289e2NoYXJ0VHlwZTp0LHVwQ29sb3I6aSxkb3duQ29sb3I6cn07YnJlYWt9Y2FzZSJsaW5lIjp7Y29uc3R7Y2hhcnRUeXBlOnQsY29sb3I6aSxjb2xvckdyb3dpbmc6cixjb2xvckZhbGxpbmc6bixsaW5lV2lkdGg6YX09ZTtvPXtjaGFydFR5cGU6dCxjb2xvcjppLGNvbG9yR3Jvd2luZzpyLGNvbG9yRmFsbGluZzpuLGxpbmVXaWR0aDphfTticmVha31kZWZhdWx0Ontjb25zdHtjaGFydFR5cGU6dD0iYXJlYSIsbGluZUNvbG9yOmk9ZS50cmVuZExpbmVDb2xvcnx8IiIsbGluZUNvbG9yR3Jvd2luZzpyLGxpbmVDb2xvckZhbGxpbmc6bix0b3BDb2xvcjphPWUudW5kZXJMaW5lQ29sb3J8fCIiLGJvdHRvbUNvbG9yOnM9ZS51bmRlckxpbmVCb3R0b21Db2xvcnx8IiIsbGluZVdpZHRoOmR9PWU7bz17Y2hhcnRUeXBlOnQsbGluZUNvbG9yOmksbGluZUNvbG9yR3Jvd2luZzpyLGxpbmVDb2xvckZhbGxpbmc6bix0b3BDb2xvcjphLGJvdHRvbUNvbG9yOnMsbGluZVdpZHRoOmR9O2JyZWFrfX10aGlzLm9wdGlvbnM9e2NvbnRhaW5lcjplLmNvbnRhaW5lcl9pZHx8IiIsd2lkdGg6Yy5XaWRnZXRBYnN0cmFjdC5wcm90b3R5cGUuZml4U2l6ZShlLndpZHRoKXx8IiIsaGVpZ2h0OmMuV2lkZ2V0QWJzdHJhY3QucHJvdG90eXBlLmZpeFNpemUodCl8fCIiLHN5bWJvbHM6ZS5zeW1ib2xzLGdyZXlUZXh0OmUuZ3JleVRleHR8fCIiLHN5bWJvbHNfZGVzY3JpcHRpb246ZS5zeW1ib2xzX2Rlc2NyaXB0aW9ufHwiIixsYXJnZV9jaGFydF91cmw6ZS5sYXJnZV9jaGFydF91cmx8fCIiLGN1c3RvbWVyOmUuY3VzdG9tZXJ8fCIiLGJhY2tncm91bmRDb2xvcjplLmJhY2tncm91bmRDb2xvcnx8IiIsZ3JpZExpbmVDb2xvcjplLmdyaWRMaW5lQ29sb3J8fCIiLGZvbnRDb2xvcjplLmZvbnRDb2xvcnx8IiIsZm9udFNpemU6ZS5mb250U2l6ZXx8IiIsd2lkZ2V0Rm9udENvbG9yOmUud2lkZ2V0Rm9udENvbG9yfHwiIix0aW1lQXhpc0JhY2tncm91bmRDb2xvcjplLnRpbWVBeGlzQmFja2dyb3VuZENvbG9yfHwiIixjaGFydE9ubHk6ISFlLmNoYXJ0T25seSxsb2NhbGU6ZS5sb2NhbGUsY29sb3JUaGVtZTplLmNvbG9yVGhlbWUsaXNUcmFuc3BhcmVudDplLmlzVHJhbnNwYXJlbnQsdXNlV2lkZ2V0SG9zdDpCb29sZWFuKGUudXNlV2lkZ2V0SG9zdCksc2hvd0Zsb2F0aW5nVG9vbHRpcDplLnNob3dGbG9hdGluZ1Rvb2x0aXAsdmFsdWVzVHJhY2tpbmc6ZS52YWx1ZXNUcmFja2luZyxjaGFuZ2VNb2RlOmUuY2hhbmdlTW9kZSxkYXRlRm9ybWF0OmUuZGF0ZUZvcm1hdCx0aW1lSG91cnNGb3JtYXQ6ZS50aW1lSG91cnNGb3JtYXQsc2hvd1ZvbHVtZTplLnNob3dWb2x1bWUsc2hvd01BOmUuc2hvd01BLHZvbHVtZVVwQ29sb3I6ZS52b2x1bWVVcENvbG9yLHZvbHVtZURvd25Db2xvcjplLnZvbHVtZURvd25Db2xvcixtYUxpbmVDb2xvcjplLm1hTGluZUNvbG9yLG1hTGluZVdpZHRoOmUubWFMaW5lV2lkdGgsbWFMZW5ndGg6ZS5tYUxlbmd0aCxoaWRlRGF0ZVJhbmdlczplLmhpZGVEYXRlUmFuZ2VzLGhpZGVNYXJrZXRTdGF0dXM6ZS5oaWRlTWFya2V0U3RhdHVzLGhpZGVTeW1ib2xMb2dvOmUuaGlkZVN5bWJvbExvZ28sc2NhbGVQb3NpdGlvbjplLnNjYWxlUG9zaXRpb24sc2NhbGVNb2RlOmUuc2NhbGVNb2RlLGZvbnRGYW1pbHk6ZS5mb250RmFtaWx5LG5vVGltZVNjYWxlOmUubm9UaW1lU2NhbGUsLi4ub30sdGhpcy5jcmVhdGUoKX0sd2lkZ2V0OmZ1bmN0aW9uKGUpe3RoaXMuaWQ9ZS5pZHx8Yy5nSWQoKTt2YXIgdD1jLmdldFVybFBhcmFtcygpLG89ZS50dndpZGdldHN5bWJvbHx8dC50dndpZGdldHN5bWJvbHx8dC5zeW1ib2x8fGUuc3ltYm9sfHwiTkFTREFROkFBUEwiLGk9ZS5sb2dvfHwiIjtpLnNyYyYmKGk9aS5zcmMpLGkmJmkucmVwbGFjZSgiLnBuZyIsIiIpO3ZhciByPWMuY2FsY3VsYXRlV2lkZ2V0SGVpZ2h0KGUuaGVpZ2h0fHw1MDAsZS5jb250YWluZXJfaWQpO3RoaXMub3B0aW9ucz17d2lkdGg6ZS53aWR0aHx8ODAwLGhlaWdodDpyLHN5bWJvbDpvLGludGVydmFsOmUuaW50ZXJ2YWx8fCIxIixyYW5nZTplLnJhbmdlfHwiIix0aW1lem9uZTplLnRpbWV6b25lfHwiIixhdXRvc2l6ZTplLmF1dG9zaXplLGhpZGVfdG9wX3Rvb2xiYXI6ZS5oaWRlX3RvcF90b29sYmFyLGhpZGVfc2lkZV90b29sYmFyOmUuaGlkZV9zaWRlX3Rvb2xiYXIsaGlkZV9sZWdlbmQ6ZS5oaWRlX2xlZ2VuZCxoaWRlX3ZvbHVtZTplLmhpZGVfdm9sdW1lLGFsbG93X3N5bWJvbF9jaGFuZ2U6ZS5hbGxvd19zeW1ib2xfY2hhbmdlLHNhdmVfaW1hZ2U6dm9pZCAwPT09ZS5zYXZlX2ltYWdlfHxlLnNhdmVfaW1hZ2UsY29udGFpbmVyOmUuY29udGFpbmVyX2lkfHwiIix3YXRjaGxpc3Q6ZS53YXRjaGxpc3R8fFtdLGNvbXBhcmVTeW1ib2xzOmUuY29tcGFyZVN5bWJvbHN8fFtdLGVkaXRhYmxld2F0Y2hsaXN0OiEhZS5lZGl0YWJsZXdhdGNobGlzdCxzdHVkaWVzOmUuc3R1ZGllc3x8W10sdGhlbWU6ZS50aGVtZXx8IiIsc3R5bGU6ZS5zdHlsZXx8IiIsZXh0ZW5kZWRfaG91cnM6dm9pZCAwPT09ZS5leHRlbmRlZF9ob3Vycz92b2lkIDA6K2UuZXh0ZW5kZWRfaG91cnMsZGV0YWlsczohIWUuZGV0YWlscyxjYWxlbmRhcjohIWUuY2FsZW5kYXIsaG90bGlzdDohIWUuaG90bGlzdCxoaWRlaWRlYXNidXR0b246ISFlLmhpZGVpZGVhc2J1dHRvbix3aWRnZXRiYXJfd2lkdGg6K2Uud2lkZ2V0YmFyX3dpZHRofHx2b2lkIDAsd2l0aGRhdGVyYW5nZXM6ZS53aXRoZGF0ZXJhbmdlc3x8IiIsY3VzdG9tZXI6ZS5jdXN0b21lcnx8aXx8IiIsdmVudWU6ZS52ZW51ZSxzeW1ib2xvZ3k6ZS5zeW1ib2xvZ3ksbG9nbzppLHNob3dfcG9wdXBfYnV0dG9uOiEhZS5zaG93X3BvcHVwX2J1dHRvbixwb3B1cF9oZWlnaHQ6ZS5wb3B1cF9oZWlnaHR8fCIiLHBvcHVwX3dpZHRoOmUucG9wdXBfd2lkdGh8fCIiLHN0dWRpZXNfb3ZlcnJpZGVzOmUuc3R1ZGllc19vdmVycmlkZXMsb3ZlcnJpZGVzOmUub3ZlcnJpZGVzLGVuYWJsZWRfZmVhdHVyZXM6ZS5lbmFibGVkX2ZlYXR1cmVzLGRpc2FibGVkX2ZlYXR1cmVzOmUuZGlzYWJsZWRfZmVhdHVyZXMscHVibGlzaF9zb3VyY2U6ZS5wdWJsaXNoX3NvdXJjZXx8IiIsd2hvdHJhZGVzOmUud2hvdHJhZGVzfHx2b2lkIDAsbG9jYWxlOmUubG9jYWxlLHJlZmVycmFsX2lkOmUucmVmZXJyYWxfaWQsbm9fcmVmZXJyYWxfaWQ6ZS5ub19yZWZlcnJhbF9pZCxmdW5kYW1lbnRhbDplLmZ1bmRhbWVudGFsLHBlcmNlbnRhZ2U6ZS5wZXJjZW50YWdlLGhpZGV2b2x1bWU6ZS5oaWRldm9sdW1lLHBhZGRpbmc6ZS5wYWRkaW5nLGdyZXlUZXh0OmUuZ3JleVRleHR8fCIiLGhvcnp0b3VjaGRyYWc6ZS5ob3J6dG91Y2hkcmFnLHZlcnR0b3VjaGRyYWc6ZS52ZXJ0dG91Y2hkcmFnLHVzZVdpZGdldEhvc3Q6Qm9vbGVhbihlLnVzZVdpZGdldEhvc3QpLGJhY2tncm91bmRDb2xvcjplLmJhY2tncm91bmRDb2xvcixncmlkQ29sb3I6ZS5ncmlkQ29sb3IsZG9Ob3RTdG9yZVNldHRpbmdzOmUuZG9Ob3RTdG9yZVNldHRpbmdzfSxlLmNtZSYmKHRoaXMub3B0aW9ucy5jdXN0b21lcj0iY21lIiksaXNGaW5pdGUoZS53aWRnZXRiYXJfd2lkdGgpJiZlLndpZGdldGJhcl93aWR0aD4wJiYodGhpcy5vcHRpb25zLndpZGdldGJhcl93aWR0aD1lLndpZGdldGJhcl93aWR0aCksdGhpcy5fcmVhZHlfaGFuZGxlcnM9W10sdGhpcy5jcmVhdGUoKX0sY2hhcnQ6ZnVuY3Rpb24oZSl7dGhpcy5pZD1jLmdJZCgpLHRoaXMub3B0aW9ucz17d2lkdGg6ZS53aWR0aHx8NjQwLGhlaWdodDplLmhlaWdodHx8NTAwLGNvbnRhaW5lcjplLmNvbnRhaW5lcl9pZHx8IiIscmVhbHRpbWU6ZS5yZWFsdGltZSxjaGFydDplLmNoYXJ0LGxvY2FsZTplLmxvY2FsZSx0eXBlOiJjaGFydCIsYXV0b3NpemU6ZS5hdXRvc2l6ZSxtb2JpbGVTdGF0aWM6ZS5tb2JpbGVTdGF0aWN9LHRoaXMuX3JlYWR5X2hhbmRsZXJzPVtdLHRoaXMuY3JlYXRlKCl9LHN0cmVhbTpmdW5jdGlvbihlKXtjb25zb2xlLndhcm4oIldlJ3JlIHNvcnJ5LCB0aGUgU3RyZWFtIHdpZGdldCBpcyBkaXNjb250aW51ZWQiKX0sRXZlbnRzV2lkZ2V0OmZ1bmN0aW9uKGUpe3RoaXMuaWQ9Yy5nSWQoKSx0aGlzLm9wdGlvbnM9e2NvbnRhaW5lcjplLmNvbnRhaW5lcl9pZHx8IiIsd2lkdGg6ZS53aWR0aHx8NDg2LGhlaWdodDplLmhlaWdodHx8NjcwLGN1cnJlbmN5OmUuY3VycmVuY3lGaWx0ZXJ8fCIiLGltcG9ydGFuY2U6ZS5pbXBvcnRhbmNlRmlsdGVyfHwiIix0eXBlOiJlY29ub21pYy1jYWxlbmRhciJ9LHRoaXMuY3JlYXRlKGUpfSxJZGVhV2lkZ2V0OmZ1bmN0aW9uKCl7Y29uc29sZS53YXJuKCJXZSdyZSBzb3JyeSwgdGhlIElkZWEgUHJldmlldyB3aWRnZXQgaXMgZGlzY29udGludWVkIil9LENoYXRXaWRnZXRFbWJlZDpmdW5jdGlvbihlKXtjb25zb2xlLndhcm4oIldlJ3JlIHNvcnJ5LCB0aGUgQ2hhdCB3aWRnZXQgaXMgZGlzY29udGludWVkIil9fTtjLldpZGdldEFic3RyYWN0LnByb3RvdHlwZT17d2lkZ2V0SWQ6InVua25vd24iLGZpeFNpemU6ZnVuY3Rpb24oZSl7cmV0dXJuL15bMC05XSsoXC58LFswLTldKSokLy50ZXN0KGUpP2UrInB4IjplfSx3aWR0aDpmdW5jdGlvbigpe3JldHVybiB0aGlzLm9wdGlvbnMuYXV0b3NpemU/IjEwMCUiOmMuV2lkZ2V0QWJzdHJhY3QucHJvdG90eXBlLmZpeFNpemUodGhpcy5vcHRpb25zLndpZHRoKX0saGVpZ2h0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMub3B0aW9ucy5hdXRvc2l6ZT8iMTAwJSI6Yy5XaWRnZXRBYnN0cmFjdC5wcm90b3R5cGUuZml4U2l6ZSh0aGlzLm9wdGlvbnMuaGVpZ2h0KX0sYWRkV3JhcHBlckZyYW1lOmZ1bmN0aW9uKGUpe2NvbnN0IHQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7cmV0dXJuIHQuaWQ9dGhpcy5pZCsiLXdyYXBwZXIiLHQuc3R5bGUuY3NzVGV4dD0icG9zaXRpb246IHJlbGF0aXZlO2JveC1zaXppbmc6IGNvbnRlbnQtYm94O21hcmdpbjogMCBhdXRvICFpbXBvcnRhbnQ7cGFkZGluZzogMCAhaW1wb3J0YW50O2ZvbnQtZmFtaWx5OiAiK2wrIjsiLHQuc3R5bGUud2lkdGg9Yy5XaWRnZXRBYnN0cmFjdC5wcm90b3R5cGUud2lkdGguY2FsbCh0aGlzKSx0LnN0eWxlLmhlaWdodD1jLldpZGdldEFic3RyYWN0LnByb3RvdHlwZS5oZWlnaHQuY2FsbCh0aGlzKSx0LmFwcGVuZENoaWxkKGUpLHR9fSxjLkV2ZW50c1dpZGdldC5wcm90b3R5cGU9e3dpZGdldElkOiJldmVudHMiLGNyZWF0ZTpmdW5jdGlvbigpe3ZhciBlPXRoaXMucmVuZGVyKCk7aChlLHRoaXMub3B0aW9ucyl9LHJlbmRlcjpmdW5jdGlvbigpe3ZhciBlPW5ldyBVUkwoYy5nZXRIb3N0KHRoaXMub3B0aW9ucykpO2UucGF0aG5hbWU9Ii9ldmVudHN3aWRnZXRlbWJlZC8iLGMuYWRkVXJsUGFyYW1zKGUse2N1cnJlbmN5OnRoaXMub3B0aW9ucy5jdXJyZW5jeSxpbXBvcnRhbmNlOnRoaXMub3B0aW9ucy5pbXBvcnRhbmNlfSksdGhpcy5vcHRpb25zLnR5cGU9ImV2ZW50cyIsYy5hZGRVcmxQYXJhbXMoZSxjLmdlbmVyYXRlVXRtRm9yVXJsUGFyYW1zKHRoaXMub3B0aW9ucykpO2NvbnN0IHQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIik7cmV0dXJuIHQudGl0bGU9Yy5nZXRXaWRnZXRUaXRsZUF0dHJpYnV0ZSh0aGlzLm9wdGlvbnMuaWZyYW1lVGl0bGUsdGhpcy53aWRnZXRJZCksdC5sYW5nPXRoaXMub3B0aW9ucy5pZnJhbWVMYW5nfHwiZW4iLHQud2lkdGg9dGhpcy5vcHRpb25zLndpZHRoLHRoaXMub3B0aW9ucy5oZWlnaHQmJih0LmhlaWdodD10aGlzLm9wdGlvbnMuaGVpZ2h0KSx0LnNldEF0dHJpYnV0ZSgiZnJhbWVCb3JkZXIiLCIwIiksdC5zZXRBdHRyaWJ1dGUoInNjcm9sbGluZyIsIm5vIiksdC5zcmM9ZSx0fX0sYy5NZWRpdW1XaWRnZXQucHJvdG90eXBlPXt3aWRnZXRJZDoic3ltYm9sLW92ZXJ2aWV3IixjcmVhdGU6ZnVuY3Rpb24oKXtjb25zdCBlPXRoaXMucmVuZGVyKCk7aChlLHRoaXMub3B0aW9ucyl9LHJlbmRlcjpmdW5jdGlvbigpe2NvbnN0IGU9T2JqZWN0LmNyZWF0ZShudWxsKTtmb3IoY29uc3QgdCBvZlsic3ltYm9scyIsIndpZHRoIiwiaGVpZ2h0IiwiY29sb3JUaGVtZSIsImJhY2tncm91bmRDb2xvciIsImdyaWRMaW5lQ29sb3IiLCJmb250Q29sb3IiLCJ3aWRnZXRGb250Q29sb3IiLCJ1bmRlckxpbmVDb2xvciIsInVuZGVyTGluZUJvdHRvbUNvbG9yIiwidHJlbmRMaW5lQ29sb3IiLCJhY3RpdmVUaWNrZXJCYWNrZ3JvdW5kQ29sb3IiLCJ0aW1lQXhpc0JhY2tncm91bmRDb2xvciIsInNjYWxlUG9zaXRpb24iLCJzY2FsZU1vZGUiLCJjaGFydFR5cGUiLCJjb2xvciIsImNvbG9yR3Jvd2luZyIsImNvbG9yRmFsbGluZyIsImxpbmVDb2xvciIsImxpbmVDb2xvckdyb3dpbmciLCJsaW5lQ29sb3JGYWxsaW5nIiwidG9wQ29sb3IiLCJib3R0b21Db2xvciIsInVwQ29sb3IiLCJkb3duQ29sb3IiLCJib3JkZXJVcENvbG9yIiwiYm9yZGVyRG93bkNvbG9yIiwid2lja1VwQ29sb3IiLCJ3aWNrRG93bkNvbG9yIiwiZm9udEZhbWlseSIsImZvbnRTaXplIiwibm9UaW1lU2NhbGUiLCJ2YWx1ZXNUcmFja2luZyIsImNoYW5nZU1vZGUiLCJkYXRlRm9ybWF0IiwidGltZUhvdXJzRm9ybWF0IiwibGluZVdpZHRoIiwidm9sdW1lVXBDb2xvciIsInZvbHVtZURvd25Db2xvciIsImNoYXJ0T25seSIsImlzVHJhbnNwYXJlbnQiLCJzaG93RmxvYXRpbmdUb29sdGlwIiwic2hvd1ZvbHVtZSIsInNob3dNQSIsIm1hTGluZUNvbG9yIiwibWFMaW5lV2lkdGgiLCJtYUxlbmd0aCIsImhpZGVEYXRlUmFuZ2VzIiwiaGlkZU1hcmtldFN0YXR1cyIsImhpZGVTeW1ib2xMb2dvIl0pdGhpcy5vcHRpb25zW3RdJiYoZVt0XT10aGlzLm9wdGlvbnNbdF0pO2VbInBhZ2UtdXJpIl09Yy5nZXRQYWdlVXJpU3RyaW5nKCksdGhpcy5vcHRpb25zLnR5cGU9InN5bWJvbC1vdmVydmlldyI7Y29uc3QgdD1jLmdlbmVyYXRlVXRtRm9yVXJsUGFyYW1zKHRoaXMub3B0aW9ucyk7Zm9yKHZhciBvIG9mIE9iamVjdC5rZXlzKHQpKWVbb109dFtvXTtjb25zdCBpPW5ldyBVUkwoIi9lbWJlZC13aWRnZXQvc3ltYm9sLW92ZXJ2aWV3LyIsYy5nZXRIb3N0KHRoaXMub3B0aW9ucykpO3RoaXMub3B0aW9ucy5jdXN0b21lciYmKGkucGF0aG5hbWUrPXRoaXMub3B0aW9ucy5jdXN0b21lcisiLyIpLHRoaXMub3B0aW9ucy5sb2NhbGUmJmkuc2VhcmNoUGFyYW1zLmFwcGVuZCgibG9jYWxlIix0aGlzLm9wdGlvbnMubG9jYWxlKSxpLmhhc2g9ZW5jb2RlVVJJQ29tcG9uZW50KEpTT04uc3RyaW5naWZ5KGUpKTtjb25zdCByPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIpO3JldHVybiByLnRpdGxlPWMuZ2V0V2lkZ2V0VGl0bGVBdHRyaWJ1dGUodGhpcy5vcHRpb25zLmlmcmFtZVRpdGxlLHRoaXMud2lkZ2V0SWQpLHIubGFuZz10aGlzLm9wdGlvbnMuaWZyYW1lTGFuZ3x8ImVuIixyLmlkPXRoaXMuaWQsci5zdHlsZS5jc3NUZXh0PSJtYXJnaW46IDAgIWltcG9ydGFudDtwYWRkaW5nOiAwICFpbXBvcnRhbnQ7Iix0aGlzLm9wdGlvbnMud2lkdGgmJihyLnN0eWxlLndpZHRoPXRoaXMub3B0aW9ucy53aWR0aCksdGhpcy5vcHRpb25zLmhlaWdodCYmKHIuc3R5bGUuaGVpZ2h0PXRoaXMub3B0aW9ucy5oZWlnaHQpLHIuc2V0QXR0cmlidXRlKCJmcmFtZUJvcmRlciIsIjAiKSxyLnNldEF0dHJpYnV0ZSgiYWxsb3dUcmFuc3BhcmVuY3kiLCJ0cnVlIiksci5zZXRBdHRyaWJ1dGUoInNjcm9sbGluZyIsIm5vIiksci5zcmM9aS5ocmVmLHJ9LHJlbW92ZTpmdW5jdGlvbigpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0cmFkaW5ndmlld193aWRnZXQiKTtlLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoZSl9fSxjLndpZGdldC5wcm90b3R5cGU9e3dpZGdldElkOiJhZHZhbmNlZC1jaGFydCIsY3JlYXRlOmZ1bmN0aW9uKCl7dGhpcy5vcHRpb25zLnR5cGU9dGhpcy5vcHRpb25zLmZ1bmRhbWVudGFsPyJmdW5kYW1lbnRhbCI6ImNoYXJ0Iix0aGlzLmlmcmFtZT10aGlzLnJlbmRlcigpO3ZhciBlPXRoaXM7bGV0IHQ9dGhpcy5pZnJhbWU7dGhpcy5vcHRpb25zLm5vTG9nb092ZXJsYXl8fCh0PWMuV2lkZ2V0QWJzdHJhY3QucHJvdG90eXBlLmFkZFdyYXBwZXJGcmFtZS5jYWxsKHRoaXMsdCkpLGgodCx0aGlzLm9wdGlvbnMpO3ZhciBvPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0cmFkaW5ndmlldy1jb3B5cmlnaHQiKTtvJiZvLnBhcmVudEVsZW1lbnQmJm8ucGFyZW50RWxlbWVudC5yZW1vdmVDaGlsZChvKSx0aGlzLnBvc3RNZXNzYWdlPWMucG9zdE1lc3NhZ2VXcmFwcGVyKHRoaXMuaWZyYW1lLmNvbnRlbnRXaW5kb3csdGhpcy5pZCksYy5iaW5kRXZlbnQodGhpcy5pZnJhbWUsImxvYWQiLChmdW5jdGlvbigpe2UucG9zdE1lc3NhZ2UuZ2V0KCJ3aWRnZXRSZWFkeSIse30sKGZ1bmN0aW9uKCl7dmFyIHQ7Zm9yKGUuX3JlYWR5PSEwLHQ9ZS5fcmVhZHlfaGFuZGxlcnMubGVuZ3RoO3QtLTspZS5fcmVhZHlfaGFuZGxlcnNbdF0uY2FsbChlKX0pKX0pKSxlLnBvc3RNZXNzYWdlLm9uKCJvcGVuQ2hhcnRJblBvcHVwIiwoZnVuY3Rpb24odCl7Zm9yKHZhciBvPWMuY2xvbmVTaW1wbGVPYmplY3QoZS5vcHRpb25zKSxpPVsic3ltYm9sIiwiaW50ZXJ2YWwiXSxyPWkubGVuZ3RoLTE7cj49MDtyLS0pe3ZhciBuPWlbcl0sYT10W25dO2EmJihvW25dPWEpfW8uc2hvd19wb3B1cF9idXR0b249ITE7dmFyIHM9ZS5vcHRpb25zLnBvcHVwX3dpZHRofHw5MDAsZD1lLm9wdGlvbnMucG9wdXBfaGVpZ2h0fHw2MDAsbD0oc2NyZWVuLndpZHRoLXMpLzIsaD0oc2NyZWVuLmhlaWdodC1kKS8yLGc9d2luZG93Lm9wZW4oZS5nZW5lcmF0ZVVybChvKSwiX2JsYW5rIiwicmVzaXphYmxlPXllcywgdG9wPSIraCsiLCBsZWZ0PSIrbCsiLCB3aWR0aD0iK3MrIiwgaGVpZ2h0PSIrZCk7ZyYmKGcub3BlbmVyPW51bGwpfSkpfSxyZWFkeTpmdW5jdGlvbihlKXt0aGlzLl9yZWFkeT9lLmNhbGwodGhpcyk6dGhpcy5fcmVhZHlfaGFuZGxlcnMucHVzaChlKX0scmVuZGVyOmZ1bmN0aW9uKCl7Y29uc3QgZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKTtyZXR1cm4gZS50aXRsZT1jLmdldFdpZGdldFRpdGxlQXR0cmlidXRlKHRoaXMub3B0aW9ucy5pZnJhbWVUaXRsZSx0aGlzLndpZGdldElkKSxlLmxhbmc9dGhpcy5vcHRpb25zLmlmcmFtZUxhbmd8fCJlbiIsZS5pZD10aGlzLmlkLGUuc3R5bGUuY3NzVGV4dD0id2lkdGg6IDEwMCU7IGhlaWdodDogMTAwJTsgbWFyZ2luOiAwICFpbXBvcnRhbnQ7IHBhZGRpbmc6IDAgIWltcG9ydGFudDsiLGUuc2V0QXR0cmlidXRlKCJmcmFtZUJvcmRlciIsIjAiKSxlLnNldEF0dHJpYnV0ZSgiYWxsb3dUcmFuc3BhcmVuY3kiLCJ0cnVlIiksZS5zZXRBdHRyaWJ1dGUoInNjcm9sbGluZyIsIm5vIiksZS5zZXRBdHRyaWJ1dGUoImFsbG93ZnVsbHNjcmVlbiIsInRydWUiKSxlLnNyYz10aGlzLmdlbmVyYXRlVXJsKCksZX0sZ2VuZXJhdGVVcmw6ZnVuY3Rpb24oZSl7dmFyIHQ7ZnVuY3Rpb24gbyhlLHQsbyl7bGV0IGk9Zyh0LG8pOyJvYmplY3QiPT10eXBlb2YgaSYmKGk9SlNPTi5zdHJpbmdpZnkoaSkpLHZvaWQgMCE9PWkmJiIiIT09aSYmKGFbZV09aSl9ZnVuY3Rpb24gaShlLHQsaSl7byhlLHZvaWQgMD09PXQ/dm9pZCAwOnQ/IjEiOmkpfXQ9ImNtZSI9PT0oZT1lfHx0aGlzLm9wdGlvbnMpLmN1c3RvbWVyPyIvY21ld2lkZ2V0ZW1iZWQvIjplLmN1c3RvbWVyPyIvIitlLmN1c3RvbWVyKyIvd2lkZ2V0ZW1iZWQvIjoiL3dpZGdldGVtYmVkLyI7dmFyIHI9Yy5nZXRIb3N0KGUpO2NvbnN0IG49bmV3IFVSTChyK3QpO24uc2VhcmNoUGFyYW1zLmFwcGVuZCgiaGlkZWlkZWFzIiwiMSIpLG4uc2VhcmNoUGFyYW1zLmFwcGVuZCgib3ZlcnJpZGVzIixKU09OLnN0cmluZ2lmeShnKGUub3ZlcnJpZGVzLHt9KSkpLG4uc2VhcmNoUGFyYW1zLmFwcGVuZCgiZW5hYmxlZF9mZWF0dXJlcyIsSlNPTi5zdHJpbmdpZnkoZyhlLmVuYWJsZWRfZmVhdHVyZXMsW10pKSksbi5zZWFyY2hQYXJhbXMuYXBwZW5kKCJkaXNhYmxlZF9mZWF0dXJlcyIsSlNPTi5zdHJpbmdpZnkoZyhlLmRpc2FibGVkX2ZlYXR1cmVzLFtdKSkpLGUubG9jYWxlJiZuLnNlYXJjaFBhcmFtcy5hcHBlbmQoImxvY2FsZSIsZS5sb2NhbGUpO2NvbnN0IGE9T2JqZWN0LmNyZWF0ZShudWxsKTtyZXR1cm4gYS5zeW1ib2w9ZS5zeW1ib2wsYS5mcmFtZUVsZW1lbnRJZD10aGlzLmlkLGEuaW50ZXJ2YWw9ZS5pbnRlcnZhbCxvKCJyYW5nZSIsZS5yYW5nZSksaSgiaGlkZV90b3BfdG9vbGJhciIsZS5oaWRlX3RvcF90b29sYmFyKSxpKCJoaWRlX2xlZ2VuZCIsZS5oaWRlX2xlZ2VuZCksaSgiaGlkZV9zaWRlX3Rvb2xiYXIiLGUuaGlkZV9zaWRlX3Rvb2xiYXIsIjAiKSxpKCJhbGxvd19zeW1ib2xfY2hhbmdlIixlLmFsbG93X3N5bWJvbF9jaGFuZ2UsIjAiKSxpKCJzYXZlX2ltYWdlIixlLnNhdmVfaW1hZ2UsIjAiKSxpKCJkb05vdFN0b3JlU2V0dGluZ3MiLGUuZG9Ob3RTdG9yZVNldHRpbmdzKSxvKCJiYWNrZ3JvdW5kQ29sb3IiLGUuYmFja2dyb3VuZENvbG9yKSxvKCJncmlkQ29sb3IiLGUuZ3JpZENvbG9yKSxlLndhdGNobGlzdCYmZS53YXRjaGxpc3QubGVuZ3RoJiZlLndhdGNobGlzdC5qb2luJiZvKCJ3YXRjaGxpc3QiLGUud2F0Y2hsaXN0LmpvaW4oIh8iKSksZS5jb21wYXJlU3ltYm9scyYmZS5jb21wYXJlU3ltYm9scy5sZW5ndGgmJm8oImNvbXBhcmVTeW1ib2xzIixlLmNvbXBhcmVTeW1ib2xzKSxpKCJlZGl0YWJsZXdhdGNobGlzdCIsZS5lZGl0YWJsZXdhdGNobGlzdCksaSgiZGV0YWlscyIsZS5kZXRhaWxzKSxpKCJjYWxlbmRhciIsZS5jYWxlbmRhciksaSgiaG90bGlzdCIsZS5ob3RsaXN0KSxlLnN0dWRpZXMmJmMuaXNBcnJheShlLnN0dWRpZXMpJiYoInN0cmluZyI9PXR5cGVvZiBlLnN0dWRpZXNbMF0/bygic3R1ZGllcyIsZS5zdHVkaWVzLmpvaW4oIh8iKSk6bygic3R1ZGllcyIsZS5zdHVkaWVzKSksaSgiaG9yenRvdWNoZHJhZyIsZS5ob3J6dG91Y2hkcmFnLCIwIiksaSgidmVydHRvdWNoZHJhZyIsZS52ZXJ0dG91Y2hkcmFnLCIwIiksbygid2lkZ2V0YmFyX3dpZHRoIixlLndpZGdldGJhcl93aWR0aCksbygidGhlbWUiLGUudGhlbWUpLG8oInN0eWxlIixlLnN0eWxlKSxvKCJleHRlbmRlZF9ob3VycyIsZS5leHRlbmRlZF9ob3VycyksbygidGltZXpvbmUiLGUudGltZXpvbmUpLGkoImhpZGVpZGVhc2J1dHRvbiIsZS5oaWRlaWRlYXNidXR0b24pLGkoIndpdGhkYXRlcmFuZ2VzIixlLndpdGhkYXRlcmFuZ2VzKSxpKCJoaWRlX3ZvbHVtZSIsZS5oaWRlX3ZvbHVtZSksbygicGFkZGluZyIsZS5wYWRkaW5nKSxpKCJzaG93X3BvcHVwX2J1dHRvbiIsZS5zaG93X3BvcHVwX2J1dHRvbiksbygicGFkZGluZyIsZS5wYWRkaW5nKSxvKCJzdHVkaWVzX292ZXJyaWRlcyIsZS5zdHVkaWVzX292ZXJyaWRlcyx7fSksbygicHVibGlzaF9zb3VyY2UiLGUucHVibGlzaF9zb3VyY2UpLG8oInZlbnVlIixlLnZlbnVlKSxvKCJzeW1ib2xvZ3kiLGUuc3ltYm9sb2d5KSxvKCJ3aG90cmFkZXMiLGUud2hvdHJhZGVzKSxvKCJyZWZlcnJhbF9pZCIsZS5yZWZlcnJhbF9pZCksaSgibm9fcmVmZXJyYWxfaWQiLGUubm9fcmVmZXJyYWxfaWQpLG8oImZ1bmRhbWVudGFsIixlLmZ1bmRhbWVudGFsKSxvKCJwZXJjZW50YWdlIixlLnBlcmNlbnRhZ2UpLG8oInV0bV9zb3VyY2UiLHdpbmRvdy5sb2NhdGlvbi5ob3N0bmFtZSksbygidXRtX21lZGl1bSIsYy5oYXNDb3B5cmlnaHQoZS5jb250YWluZXIpPyJ3aWRnZXRfbmV3Ijoid2lkZ2V0IiksbygidXRtX2NhbXBhaWduIixlLnR5cGUpLHIhPT1jLmhvc3QmJm8oInN1cHBvcnRIb3N0IixjLmhvc3QpLGUudHlwZSYmImNoYXJ0Ij09PWUudHlwZSYmbygidXRtX3Rlcm0iLGUuc3ltYm9sKSxvKCJwYWdlLXVyaSIsYy5nZXRQYWdlVXJpU3RyaW5nKCkpLGAke259IyR7ZW5jb2RlVVJJQ29tcG9uZW50KEpTT04uc3RyaW5naWZ5KGEpKX1gfSxpbWFnZTpmdW5jdGlvbigpe2NvbnNvbGUuZXJyb3IoIlRyYWRpbmdWaWV3LndpZGdldCNpbWFnZSgpIGlzIGRlcHJlY2F0ZWQuIFVzZSB3aWRnZXQuaW1hZ2VDYW52YXMoKSBpbnN0ZWFkLiIpfSxpbWFnZUNhbnZhczphc3luYyBmdW5jdGlvbigpe2lmKCF0aGlzLnBvc3RNZXNzYWdlKXRocm93IG5ldyBFcnJvcigiQ2Fubm90IHRha2UgYSBzY3JlZW5zaG90IGJlZm9yZSB3aWRnZXQgaW5pdGlhbGl6YXRpb24gaXMgY29tcGxldGUuIik7cmV0dXJuIG5ldyBQcm9taXNlKCgoZSx0KT0+e3RoaXMucG9zdE1lc3NhZ2UuZ2V0KCJpbWFnZUNhbnZhcyIse30sKGZ1bmN0aW9uKG8pe2lmKG8mJiJvYmplY3QiPT10eXBlb2YgbyYmby5kYXRhVXJsKXt2YXIgaT1uZXcgSW1hZ2U7aS5vbmxvYWQ9ZnVuY3Rpb24oKXt2YXIgcj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKTtyLndpZHRoPW8ud2lkdGh8fGkubmF0dXJhbFdpZHRofHxpLndpZHRoLHIuaGVpZ2h0PW8uaGVpZ2h0fHxpLm5hdHVyYWxIZWlnaHR8fGkuaGVpZ2h0O3ZhciBuPXIuZ2V0Q29udGV4dCgiMmQiKTtuPyhuLmRyYXdJbWFnZShpLDAsMCksZShyKSk6dChuZXcgRXJyb3IoIkZhaWxlZCB0byBjcmVhdGUgMkQgY29udGV4dCBmb3Igc2NyZWVuc2hvdCBjYW52YXMuIikpfSxpLm9uZXJyb3I9ZnVuY3Rpb24oKXt0KG5ldyBFcnJvcigiRmFpbGVkIHRvIGRlc2VyaWFsaXplIHNjcmVlbnNob3QgcGF5bG9hZCBpbnRvIGFuIGltYWdlLiIpKX0saS5zcmM9by5kYXRhVXJsfWVsc2UgdChuZXcgRXJyb3IoIkZhaWxlZCB0byByZWNlaXZlIHNjcmVlbnNob3QgcGF5bG9hZCBmcm9tIHdpZGdldCBpZnJhbWUuIikpfSkpfSkpfSxzdWJzY3JpYmVUb1F1b3RlOmZ1bmN0aW9uKGUpe3ZhciB0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuaWQpO3RoaXMucG9zdE1lc3NhZ2UucG9zdCh0LmNvbnRlbnRXaW5kb3csInF1b3RlU3Vic2NyaWJlIiksdGhpcy5wb3N0TWVzc2FnZS5vbigicXVvdGVVcGRhdGUiLGUpfSxnZXRTeW1ib2xJbmZvOmZ1bmN0aW9uKGUpe3RoaXMucG9zdE1lc3NhZ2UuZ2V0KCJzeW1ib2xJbmZvIix7fSxlKX0scmVtb3ZlOmZ1bmN0aW9uKCl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5pZCk7ZS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGUpfSxyZWxvYWQ6ZnVuY3Rpb24oKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLmlkKTtlLnBhcmVudE5vZGUucmVwbGFjZUNoaWxkKHRoaXMucmVuZGVyKCksZSl9fSxjLmNoYXJ0LnByb3RvdHlwZT17d2lkZ2V0SWQ6InB1Ymxpc2hlZC1jaGFydCIsY3JlYXRlOmZ1bmN0aW9uKCl7Y29uc3QgZT10aGlzLnJlbmRlcigpLHQ9Yy5XaWRnZXRBYnN0cmFjdC5wcm90b3R5cGUuYWRkV3JhcHBlckZyYW1lLmNhbGwodGhpcyxlKTt2YXIgbyxpPXRoaXM7aCh0LHRoaXMub3B0aW9ucyksbz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLmlkKSxjLmJpbmRFdmVudChvLCJsb2FkIiwoZnVuY3Rpb24oKXt2YXIgZTtmb3IoaS5fcmVhZHk9ITAsZT1pLl9yZWFkeV9oYW5kbGVycy5sZW5ndGg7ZS0tOylpLl9yZWFkeV9oYW5kbGVyc1tlXS5jYWxsKGkpfSkpLGMub25yZWFkeSgoZnVuY3Rpb24oKXt2YXIgZT0hMTtpZihkb2N1bWVudC5xdWVyeVNlbGVjdG9yJiZkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdhW2hyZWYkPSIvdi8nK2kub3B0aW9ucy5jaGFydCsnLyJdJykmJihlPSEwKSwhZSlmb3IodmFyIHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImEiKSxyPW5ldyBSZWdFeHAoIi92LyIraS5vcHRpb25zLmNoYXJ0KyIvJCIpLG49bmV3IFJlZ0V4cCgiL2NoYXJ0LyhbMC05YS16QS1aOisqLS8oKV0rKS8iK2kub3B0aW9ucy5jaGFydCksYT0wO2E8dC5sZW5ndGg7YSsrKWlmKHIudGVzdCh0W2FdLmhyZWYpfHxuLnRlc3QodFthXS5ocmVmKSl7ZT0hMDticmVha31lJiYoby5zcmMrPSIjbm9saW5rcyIsby5uYW1lPSJub2xpbmtzIil9KSl9LHJlYWR5OmMud2lkZ2V0LnByb3RvdHlwZS5yZWFkeSxyZW5kZXI6ZnVuY3Rpb24oKXt2YXIgZT1uZXcgVVJMKGAke2MuaG9zdH0vZW1iZWQvJHt0aGlzLm9wdGlvbnMuY2hhcnR9YCk7Yy5hZGRVcmxQYXJhbXMoZSx7bWV0aG9kOiJzY3JpcHQiLGxvY2FsZTp0aGlzLm9wdGlvbnMubG9jYWxlfSwhMCksdGhpcy5vcHRpb25zLnR5cGU9ImNoYXJ0IixjLmFkZFVybFBhcmFtcyhlLGMuZ2VuZXJhdGVVdG1Gb3JVcmxQYXJhbXModGhpcy5vcHRpb25zKSk7Y29uc3QgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKTtyZXR1cm4gdC50aXRsZT1jLmdldFdpZGdldFRpdGxlQXR0cmlidXRlKHRoaXMub3B0aW9ucy5pZnJhbWVUaXRsZSx0aGlzLndpZGdldElkKSx0Lmxhbmc9dGhpcy5vcHRpb25zLmlmcmFtZUxhbmd8fCJlbiIsdC5pZD10aGlzLmlkLHQuc3R5bGUuY3NzVGV4dD0id2lkdGg6IDEwMCU7IGhlaWdodDogMTAwJTsgbWFyZ2luOiAwICFpbXBvcnRhbnQ7IHBhZGRpbmc6IDAgIWltcG9ydGFudDsiLHQuc2V0QXR0cmlidXRlKCJmcmFtZUJvcmRlciIsIjAiKSx0LnNldEF0dHJpYnV0ZSgiYWxsb3dUcmFuc3BhcmVuY3kiLCJ0cnVlIiksdC5zZXRBdHRyaWJ1dGUoInNjcm9sbGluZyIsIm5vIiksdC5zZXRBdHRyaWJ1dGUoImFsbG93ZnVsbHNjcmVlbiIsInRydWUiKSx0LnNyYz1lLmhyZWYsdH0sdG9nZ2xlRnVsbHNjcmVlbjpmdW5jdGlvbihlKXt2YXIgdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLmlkKTtkb2N1bWVudC5mdWxsc2NyZWVuRWxlbWVudD09PXQ/ZG9jdW1lbnQuZXhpdEZ1bGxzY3JlZW4oKTp0LnJlcXVlc3RGdWxsc2NyZWVuKCl9fSxjLnBvc3RNZXNzYWdlV3JhcHBlcj0oaT17fSxyPXt9LG49e30sYT0wLHM9MCxkPSJUcmFkaW5nVmlldyIsd2luZG93LmFkZEV2ZW50TGlzdGVuZXImJndpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwoZnVuY3Rpb24oZSl7dmFyIHQ7dHJ5e3Q9SlNPTi5wYXJzZShlLmRhdGEpfWNhdGNoKGUpe3JldHVybn1pZih0JiZ0LnByb3ZpZGVyJiZ0LnByb3ZpZGVyPT09ZClpZih0LnNvdXJjZT1lLnNvdXJjZSwiZ2V0Ij09PXQudHlwZSl7aWYoIXJbdC5uYW1lXSlyZXR1cm47clt0Lm5hbWVdLmZvckVhY2goKGZ1bmN0aW9uKGUpeyJmdW5jdGlvbiI9PXR5cGVvZiBlJiZlLmNhbGwodCx0LmRhdGEsKGZ1bmN0aW9uKGUpe3ZhciBpPXtpZDp0LmlkLHR5cGU6Im9uIixuYW1lOnQubmFtZSxjbGllbnRfaWQ6dC5jbGllbnRfaWQsZGF0YTplLHByb3ZpZGVyOmR9O28ucG9zdE1lc3NhZ2UoSlNPTi5zdHJpbmdpZnkoaSksIioiKX0pKX0pKX1lbHNlIGlmKCJvbiI9PT10LnR5cGUpaVt0LmNsaWVudF9pZF0mJmlbdC5jbGllbnRfaWRdW3QuaWRdJiYoaVt0LmNsaWVudF9pZF1bdC5pZF0uY2FsbCh0LHQuZGF0YSksZGVsZXRlIGlbdC5jbGllbnRfaWRdW3QuaWRdKTtlbHNlIGlmKCJwb3N0Ij09PXQudHlwZSl7aWYoIXJbdC5uYW1lXSlyZXR1cm47clt0Lm5hbWVdLmZvckVhY2goKGZ1bmN0aW9uKGUpeyJmdW5jdGlvbiI9PXR5cGVvZiBlJiZlLmNhbGwodCx0LmRhdGEsKGZ1bmN0aW9uKCl7fSkpfSkpfX0pKSxmdW5jdGlvbihlLHQpe3JldHVybiBpW3RdPXt9LG5bdF09ZSxvPWUse29uOmZ1bmN0aW9uKGUsdCxvKXtyW2VdJiZvfHwocltlXT1bXSkscltlXS5wdXNoKHQpfSxvZmY6ZnVuY3Rpb24oZSx0KXtpZighcltlXSlyZXR1cm4hMTt2YXIgbz1yW2VdLmluZGV4T2YodCk7bz4tMSYmcltlXS5zcGxpY2UobywxKX0sZ2V0OmZ1bmN0aW9uKGUsbyxyKXt2YXIgcz17aWQ6YSsrLHR5cGU6ImdldCIsbmFtZTplLGNsaWVudF9pZDp0LGRhdGE6byxwcm92aWRlcjpkfTtpW3RdW3MuaWRdPXIsblt0XS5wb3N0TWVzc2FnZShKU09OLnN0cmluZ2lmeShzKSwiKiIpfSxwb3N0OmZ1bmN0aW9uKGUsdCxvKXt2YXIgaT17aWQ6cysrLHR5cGU6InBvc3QiLG5hbWU6dCxkYXRhOm8scHJvdmlkZXI6ZH07ZSYmImZ1bmN0aW9uIj09dHlwZW9mIGUucG9zdE1lc3NhZ2UmJmUucG9zdE1lc3NhZ2UoSlNPTi5zdHJpbmdpZnkoaSksIioiKX19fSksYy5nZXRVcmxQYXJhbXM9ZnVuY3Rpb24oKXtmb3IodmFyIGU9L1wrL2csdD0vKFteJj1dKyk9PyhbXiZdKikvZyxvPXdpbmRvdy5sb2NhdGlvbi5zZWFyY2guc3Vic3RyaW5nKDEpLGk9dC5leGVjKG8pLHI9ZnVuY3Rpb24odCl7cmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudCh0LnJlcGxhY2UoZSwiICIpKX0sbj17fTtpOyluW3IoaVsxXSldPXIoaVsyXSksaT10LmV4ZWMobyk7cmV0dXJuIG59LGMuY3JlYXRlVXJsUGFyYW1zPWZ1bmN0aW9uKGUpe3ZhciB0PVtdO2Zvcih2YXIgbyBpbiBlKWUuaGFzT3duUHJvcGVydHkobykmJm51bGwhPWVbb10mJnQucHVzaChlbmNvZGVVUklDb21wb25lbnQobykrIj0iK2VuY29kZVVSSUNvbXBvbmVudChlW29dKSk7cmV0dXJuIHQuam9pbigiJiIpfSxjLmFkZFVybFBhcmFtcz1mdW5jdGlvbihlLHQsbyl7Zm9yKHZhciBpIGluIHQpdC5oYXNPd25Qcm9wZXJ0eShpKSYmKG8/dFtpXTpudWxsIT10W2ldKSYmZS5zZWFyY2hQYXJhbXMuc2V0KGksdFtpXSk7cmV0dXJuIGV9O3ZhciBoPWZ1bmN0aW9uKGUsdCl7dmFyIG89ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodC5jb250YWluZXIpO2lmKG8pe28uaW5uZXJIVE1MPSIiLG8uYXBwZW5kQ2hpbGQoZSk7dmFyIGk9by5wYXJlbnRFbGVtZW50JiZvLnBhcmVudEVsZW1lbnQucXVlcnlTZWxlY3RvcigiLnRyYWRpbmd2aWV3LXdpZGdldC1jb3B5cmlnaHQiKTtpZihpKXtpLnN0eWxlLndpZHRoPW8ucXVlcnlTZWxlY3RvcigiaWZyYW1lIikuc3R5bGUud2lkdGg7dmFyIHI9aS5xdWVyeVNlbGVjdG9yKCJhIik7aWYocil7dmFyIG49ci5nZXRBdHRyaWJ1dGUoImhyZWYiKTtpZihuKXRyeXtjb25zdCBlPW5ldyBVUkwobik7Yy5hZGRVcmxQYXJhbXMoZSxjLmdlbmVyYXRlVXRtRm9yVXJsUGFyYW1zKHQpKSxyLnNldEF0dHJpYnV0ZSgiaHJlZiIsZS50b1N0cmluZygpKX1jYXRjaChlKXtjb25zb2xlLmxvZyhgQ2Fubm90IHVwZGF0ZSBsaW5rIFVUTSBwYXJhbXMsIGhyZWY9IiR7bn0iYCl9fX19ZWxzZSBkb2N1bWVudC5jdXJyZW50U2NyaXB0LnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGUsZG9jdW1lbnQuY3VycmVudFNjcmlwdC5uZXh0U2libGluZyk7Y29uc3QgYT1jLmVtYmVkU3R5bGVzRm9yQ29weXJpZ2h0KCkscz1mdW5jdGlvbigpe2NvbnN0IGU9ZG9jdW1lbnQucXVlcnlTZWxlY3Rvcigic2NyaXB0W25vbmNlXSIpO3JldHVybiBlJiYoZS5ub25jZXx8ZS5nZXRBdHRyaWJ1dGUoIm5vbmNlIikpfSgpO3MmJmEuc2V0QXR0cmlidXRlKCJub25jZSIscyksZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChhKX07ZnVuY3Rpb24gZyhlLHQpe3JldHVybiBudWxsIT1lP2U6dH13aW5kb3cuVHJhZGluZ1ZpZXc/ZnVuY3Rpb24gZSh0LG8pe2Zvcih2YXIgaSBpbiBvKSJvYmplY3QiPT10eXBlb2Ygb1tpXSYmdC5oYXNPd25Qcm9wZXJ0eShpKT9lKHRbaV0sb1tpXSk6dFtpXT1vW2ldO3JldHVybiB0fSh3aW5kb3cuVHJhZGluZ1ZpZXcsYyk6d2luZG93LlRyYWRpbmdWaWV3PWN9KCk7"}},"time_used":213,"timings":{"blocked":-1,"dns":38,"connect":31,"send":0,"wait":130,"receive":-1,"ssl":10},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/12385.78561ebdef05ce648b5d.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:13.884Z","timestamp":1785148033884,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/12385.78561ebdef05ce648b5d.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:13 GMT\r\ncontent-type: text/css; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a58ab11-d425\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Thu, 16 Jul 2026 09:57:37 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/16/2026 11:03:21\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 46ae99b9112f7a5ecca742db04eedcbe\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":54309,"size_decoded":5303,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with very long lines (54309), with no line terminators","md5":"0c88f4a2822b7956fa6a494b66642d6b","sha1":"3d02fd6fb3670db4645274f9d9261007de2c2d4c","sha256":"34608d65050c9883ea16820ce35863032278a925ad8eb001a2b5fa65240fa0a6","sha512":"a3b3660c9b9d810cf9ca78bf392ecc0623bb244d94a7f4d7cabf1f8a56e4e640197527938f544c0d403050bd175789df4437808eec5503b5a7b07cc1a0b401b1","ssdeep":"768:DhiEt1AI8s3XbXbfLAP5xsxF6I00xXxrO/:Dhr8s3XbXbfLAP5xsxF6I00xXxrO/","tlshash":"063358abb6a1a7797b52637e5319f375b380ed7ae4733de3f050402410c69a704caa72","first_seen":"2026-07-16T13:40:49.677399Z","last_seen":"2026-07-27T12:57:37.096734Z","times_seen":447,"resource_available":false,"data":"LmxpZ2h0QnV0dG9uLWtqUmZUbGZ4e2FsaWduLWl0ZW1zOmNlbnRlcjtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXVpLWxpYi1saWdodC1idXR0b24tY29sb3ItYmcsdmFyKC0tdWktbGliLWxpZ2h0LWJ1dHRvbi1kZWZhdWx0LWNvbG9yLWJnKSk7Ym9yZGVyLWNvbG9yOnZhcigtLXVpLWxpYi1saWdodC1idXR0b24tY29sb3ItYm9yZGVyLHZhcigtLXVpLWxpYi1saWdodC1idXR0b24tZGVmYXVsdC1jb2xvci1ib3JkZXIpKTtib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLXdpZHRoOjFweDtib3gtc2l6aW5nOmJvcmRlci1ib3g7Y29sb3I6dmFyKC0tdWktbGliLWxpZ2h0LWJ1dHRvbi1jb2xvci1jb250ZW50LHZhcigtLXVpLWxpYi1saWdodC1idXR0b24tZGVmYXVsdC1jb2xvci1jb250ZW50KSk7Y3Vyc29yOmRlZmF1bHQ7ZGlzcGxheTppbmxpbmUtZmxleDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO21heC13aWR0aDoxMDAlO21pbi13aWR0aDo0MHB4O291dGxpbmU6bm9uZTtvdmVyZmxvdzp2aXNpYmxlO3Bvc2l0aW9uOnJlbGF0aXZlfS5saWdodEJ1dHRvbi1ralJmVGxmeDpmb2N1c3tvdXRsaW5lOm5vbmV9LmxpZ2h0QnV0dG9uLWtqUmZUbGZ4OmZvY3VzLXZpc2libGV7b3V0bGluZTpub25lfS5saWdodEJ1dHRvbi1ralJmVGxmeDphZnRlcntib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLXdpZHRoOjJweDtib3gtc2l6aW5nOmJvcmRlci1ib3g7Y29udGVudDoiIjtkaXNwbGF5Om5vbmU7aGVpZ2h0OmNhbGMoMTAwJSArIDEwcHgpO2luc2V0LWlubGluZS1zdGFydDotNXB4O3BvaW50ZXItZXZlbnRzOm5vbmU7cG9zaXRpb246YWJzb2x1dGU7dG9wOi01cHg7d2lkdGg6Y2FsYygxMDAlICsgMTBweCk7ei1pbmRleDoxfS5saWdodEJ1dHRvbi1ralJmVGxmeDpmb2N1czphZnRlcntkaXNwbGF5OmJsb2NrfS5saWdodEJ1dHRvbi1ralJmVGxmeDpmb2N1cy12aXNpYmxlOmFmdGVye2Rpc3BsYXk6YmxvY2t9LmxpZ2h0QnV0dG9uLWtqUmZUbGZ4OmZvY3VzOm5vdCg6Zm9jdXMtdmlzaWJsZSk6YWZ0ZXJ7ZGlzcGxheTpub25lfS5saWdodEJ1dHRvbi1ralJmVGxmeDphZnRlcntib3JkZXItY29sb3I6dmFyKC0tY29sb3ItZm9jdXMtb3V0bGluZS1jb2xvci1ibHVlKX0ubGlnaHRCdXR0b24ta2pSZlRsZngubGluay1ralJmVGxmeHtjdXJzb3I6cG9pbnRlcjstd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZX0ubGlnaHRCdXR0b24ta2pSZlRsZngubHRyLWtqUmZUbGZ4e2RpcmVjdGlvbjpsdHJ9LmxpZ2h0QnV0dG9uLWtqUmZUbGZ4LnJ0bC1ralJmVGxmeHtkaXJlY3Rpb246cnRsfS5saWdodEJ1dHRvbi1ralJmVGxmeC50eXBvZ3JhcGh5LXJlZ3VsYXIxNnB4LWtqUmZUbGZ4e2ZvbnQtZmVhdHVyZS1zZXR0aW5nczoidG51bSIgb24sImxudW0iIG9uO2ZvbnQtc2l6ZTp2YXIoLS11aS1saWItdHlwb2dyYXBoeS1mb250LXNpemUpO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtd2VpZ2h0OjQwMH0ubGlnaHRCdXR0b24ta2pSZlRsZngudHlwb2dyYXBoeS1tZWRpdW0xNnB4LWtqUmZUbGZ4LC5saWdodEJ1dHRvbi1ralJmVGxmeC50eXBvZ3JhcGh5LXJlZ3VsYXIxNnB4LWtqUmZUbGZ4e2ZvbnQtZmFtaWx5Oi1hcHBsZS1zeXN0ZW0sQmxpbmtNYWNTeXN0ZW1Gb250LFRyZWJ1Y2hldCBNUyxSb2JvdG8sVWJ1bnR1LHNhbnMtc2VyaWY7LS11aS1saWItdHlwb2dyYXBoeS1mb250LXNpemU6MTZweDstLXVpLWxpYi10eXBvZ3JhcGh5LWxpbmUtaGVpZ2h0OjI0cHg7bGluZS1oZWlnaHQ6dmFyKC0tdWktbGliLXR5cG9ncmFwaHktbGluZS1oZWlnaHQpfS5saWdodEJ1dHRvbi1ralJmVGxmeC50eXBvZ3JhcGh5LW1lZGl1bTE2cHgta2pSZlRsZnh7Zm9udC1mZWF0dXJlLXNldHRpbmdzOiJ0bnVtIiBvbiwibG51bSIgb247Zm9udC1zaXplOnZhcigtLXVpLWxpYi10eXBvZ3JhcGh5LWZvbnQtc2l6ZSk7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC13ZWlnaHQ6NTAwfS5saWdodEJ1dHRvbi1ralJmVGxmeC50eXBvZ3JhcGh5LXJlZ3VsYXIxNHB4LWtqUmZUbGZ4e2ZvbnQtZmVhdHVyZS1zZXR0aW5nczoidG51bSIgb24sImxudW0iIG9uO2ZvbnQtc2l6ZTp2YXIoLS11aS1saWItdHlwb2dyYXBoeS1mb250LXNpemUpO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtd2VpZ2h0OjQwMH0ubGlnaHRCdXR0b24ta2pSZlRsZngudHlwb2dyYXBoeS1yZWd1bGFyMTRweC1ralJmVGxmeCwubGlnaHRCdXR0b24ta2pSZlRsZngudHlwb2dyYXBoeS1zZW1pYm9sZDE0cHgta2pSZlRsZnh7Zm9udC1mYW1pbHk6LWFwcGxlLXN5c3RlbSxCbGlua01hY1N5c3RlbUZvbnQsVHJlYnVjaGV0IE1TLFJvYm90byxVYnVudHUsc2Fucy1zZXJpZjstLXVpLWxpYi10eXBvZ3JhcGh5LWZvbnQtc2l6ZToxNHB4Oy0tdWktbGliLXR5cG9ncmFwaHktbGluZS1oZWlnaHQ6MThweDtsaW5lLWhlaWdodDp2YXIoLS11aS1saWItdHlwb2dyYXBoeS1saW5lLWhlaWdodCl9LmxpZ2h0QnV0dG9uLWtqUmZUbGZ4LnR5cG9ncmFwaHktc2VtaWJvbGQxNHB4LWtqUmZUbGZ4e2ZvbnQtZmVhdHVyZS1zZXR0aW5nczoidG51bSIgb24sImxudW0iIG9uO2ZvbnQtc2l6ZTp2YXIoLS11aS1saWItdHlwb2dyYXBoeS1mb250LXNpemUpO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtd2VpZ2h0OjYwMH0ubGlnaHRCdXR0b24ta2pSZlRsZngudHlwb2dyYXBoeS1zZW1pYm9sZDE2cHgta2pSZlRsZnh7Zm9udC1mYW1pbHk6LWFwcGxlLXN5c3RlbSxCbGlua01hY1N5c3RlbUZvbnQsVHJlYnVjaGV0IE1TLFJvYm90byxVYnVudHUsc2Fucy1zZXJpZjtmb250LWZlYXR1cmUtc2V0dGluZ3M6InRudW0iIG9uLCJsbnVtIiBvbjtmb250LXN0eWxlOm5vcm1hbDstLXVpLWxpYi10eXBvZ3JhcGh5LWZvbnQtc2l6ZToxNnB4O2ZvbnQtc2l6ZTp2YXIoLS11aS1saWItdHlwb2dyYXBoeS1mb250LXNpemUpO2ZvbnQtd2VpZ2h0OjYwMDstLXVpLWxpYi10eXBvZ3JhcGh5LWxpbmUtaGVpZ2h0OjI0cHg7bGluZS1oZWlnaHQ6dmFyKC0tdWktbGliLXR5cG9ncmFwaHktbGluZS1oZWlnaHQpfS5jb250ZW50LWtqUmZUbGZ4e2Rpc3BsYXk6aW5saW5lLWJsb2NrO21pbi13aWR0aDowO3RleHQtYWxpZ246Y2VudGVyOy0tdWktbGliLWxpZ2h0YnV0dG9uLXNob3ctY2hpbGRyZW4td2l0aC1mYWxsYmFjazp2YXIoLS11aS1saWItbGlnaHRCdXR0b24tc2hvdy1jaGlsZHJlbiwxKTttYXgtd2lkdGg6Y2FsYyhtYXgoMCwgMSAtICh2YXIoLS11aS1saWItbGlnaHRidXR0b24tc2hvdy1jaGlsZHJlbi13aXRoLWZhbGxiYWNrKSAtIDEpICogKHZhcigtLXVpLWxpYi1saWdodGJ1dHRvbi1zaG93LWNoaWxkcmVuLXdpdGgtZmFsbGJhY2spIC0gMSkpICogOTk5OXB4ICsgbWF4KDAsIDEgLSAodmFyKC0tdWktbGliLWxpZ2h0YnV0dG9uLXNob3ctY2hpbGRyZW4td2l0aC1mYWxsYmFjaykgLSAwKSAqICh2YXIoLS11aS1saWItbGlnaHRidXR0b24tc2hvdy1jaGlsZHJlbi13aXRoLWZhbGxiYWNrKSAtIDApKSAqIDBweCl9LnZpc3VhbGx5SGlkZGVuLWtqUmZUbGZ4e2Rpc3BsYXk6YmxvY2s7Zm9udC13ZWlnaHQ6NjAwO2hlaWdodDowO292ZXJmbG93OmhpZGRlbjt2aXNpYmlsaXR5OmhpZGRlbn0ubm93cmFwLWtqUmZUbGZ4e2FsaWduLXNlbGY6YXV0bztvdmVyZmxvdzpoaWRkZW47d2hpdGUtc3BhY2U6bm93cmFwfS5lbGxpcHNpc0NvbnRhaW5lci1ralJmVGxmeHtkaXNwbGF5OmluaGVyaXQ7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7d2hpdGUtc3BhY2U6bm93cmFwfS50ZXh0V3JhcENvbnRhaW5lci1ralJmVGxmeHttYXgtaGVpZ2h0OmNhbGModmFyKC0tdWktbGliLWxpZ2h0LWJ1dHRvbi1jb250ZW50LW1heC1saW5lcykqdmFyKC0tdWktbGliLXR5cG9ncmFwaHktbGluZS1oZWlnaHQpKTtvdmVyZmxvdzpoaWRkZW47d29yZC13cmFwOmJyZWFrLXdvcmQ7dGV4dC1hbGlnbjpzdGFydDt3b3JkLWJyZWFrOmJyZWFrLXdvcmR9LnRleHRXcmFwV2l0aEVsbGlwc2lzLWtqUmZUbGZ4e2Rpc3BsYXk6LXdlYmtpdC1ib3g7b3ZlcmZsb3c6aGlkZGVuOy13ZWJraXQtbGluZS1jbGFtcDp2YXIoLS11aS1saWItbGlnaHQtYnV0dG9uLWNvbnRlbnQtbWF4LWxpbmVzKTstd2Via2l0LWJveC1vcmllbnQ6dmVydGljYWw7bGluZS1oZWlnaHQ6dmFyKC0tdWktbGliLXR5cG9ncmFwaHktbGluZS1oZWlnaHQpO21heC1oZWlnaHQ6Y2FsYyh2YXIoLS11aS1saWItdHlwb2dyYXBoeS1saW5lLWhlaWdodCkqdmFyKC0tdWktbGliLWxpZ2h0LWJ1dHRvbi1jb250ZW50LW1heC1saW5lcykpfS5zbG90LWtqUmZUbGZ4e2FsaWduLWl0ZW1zOmNlbnRlcjtkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OmNlbnRlcn0uY2FyZXQta2pSZlRsZngsLnNsb3Qta2pSZlRsZng+c3Bhbltyb2xlPWltZ117ZGlzcGxheTppbmxpbmUtZmxleDtmbGV4LXNocmluazowfS5jYXJldC1ralJmVGxmeHttYXgtaGVpZ2h0OjI4cHg7bWF4LXdpZHRoOjI4cHg7bWluLWhlaWdodDoxOHB4O21pbi13aWR0aDoxOHB4fS5hY3RpdmVDYXJldC1ralJmVGxmeHt0cmFuc2Zvcm06cm90YXRlKDE4MGRlZyl9LmFjdGl2ZUNhcmV0LWtqUmZUbGZ4OmRpcihydGwpe3RyYW5zZm9ybTpyb3RhdGUoLTE4MGRlZyl9LmNhcmV0LWtqUmZUbGZ4Om5vdCg6bGFzdC1jaGlsZCksLmNvbnRlbnQta2pSZlRsZng6bm90KDpsYXN0LWNoaWxkKSwuc2xvdC1ralJmVGxmeDpub3QoOmxhc3QtY2hpbGQpey0tdWktbGliLWxpZ2h0YnV0dG9uLXNob3ctY2hpbGRyZW4td2l0aC1mYWxsYmFjazp2YXIoLS11aS1saWItbGlnaHRCdXR0b24tc2hvdy1jaGlsZHJlbiwxKTttYXJnaW4taW5saW5lLWVuZDpjYWxjKG1heCgwLCAxIC0gKHZhcigtLXVpLWxpYi1saWdodGJ1dHRvbi1zaG93LWNoaWxkcmVuLXdpdGgtZmFsbGJhY2spIC0gMSkgKiAodmFyKC0tdWktbGliLWxpZ2h0YnV0dG9uLXNob3ctY2hpbGRyZW4td2l0aC1mYWxsYmFjaykgLSAxKSkgKiA0cHggKyBtYXgoMCwgMSAtICh2YXIoLS11aS1saWItbGlnaHRidXR0b24tc2hvdy1jaGlsZHJlbi13aXRoLWZhbGxiYWNrKSAtIDApICogKHZhcigtLXVpLWxpYi1saWdodGJ1dHRvbi1zaG93LWNoaWxkcmVuLXdpdGgtZmFsbGJhY2spIC0gMCkpICogMHB4KX0ueHNtYWxsLWtqUmZUbGZ4e2JvcmRlci1yYWRpdXM6NnB4O2hlaWdodDoyOHB4O21pbi13aWR0aDoyOHB4Oy0tdWktbGliLWxpZ2h0LWJ1dHRvbi1wYWRkaW5nLWlubGluZS1zdGFydC1kZWZhdWx0OjExcHg7LS11aS1saWItbGlnaHQtYnV0dG9uLXBhZGRpbmctaW5saW5lLWVuZC1kZWZhdWx0OjExcHg7LS11aS1saWItbGlnaHQtYnV0dG9uLXBhZGRpbmctYmxvY2stc3RhcnQtZGVmYXVsdDowOy0tdWktbGliLWxpZ2h0LWJ1dHRvbi1wYWRkaW5nLWJsb2NrLWVuZC1kZWZhdWx0OjA7LS11aS1saWItbGlnaHRidXR0b24tc2hvdy1jaGlsZHJlbi13aXRoLWZhbGxiYWNrOnZhcigtLXVpLWxpYi1saWdodEJ1dHRvbi1zaG93LWNoaWxkcmVuLDEpO3BhZGRpbmctYmxvY2stZW5kOjA7cGFkZGluZy1ibG9jay1zdGFydDowO3BhZGRpbmctaW5saW5lLWVuZDpjYWxjKG1heCgwLCAxIC0gKHZhcigtLXVpLWxpYi1saWdodGJ1dHRvbi1zaG93LWNoaWxkcmVuLXdpdGgtZmFsbGJhY2spIC0gMSkgKiAodmFyKC0tdWktbGliLWxpZ2h0YnV0dG9uLXNob3ctY2hpbGRyZW4td2l0aC1mYWxsYmFjaykgLSAxKSkgKiBtYXgodmFyKC0tdWktbGliLWxpZ2h0LWJ1dHRvbi1wYWRkaW5nLWlubGluZS1lbmQsIHZhcigtLXVpLWxpYi1saWdodC1idXR0b24tcGFkZGluZy1pbmxpbmUtZW5kLWRlZmF1bHQpKSwgM3B4KSArIG1heCgwLCAxIC0gKHZhcigtLXVpLWxpYi1saWdodGJ1dHRvbi1zaG93LWNoaWxkcmVuLXdpdGgtZmFsbGJhY2spIC0gMCkgKiAodmFyKC0tdWktbGliLWxpZ2h0YnV0dG9uLXNob3ctY2hpbGRyZW4td2l0aC1mYWxsYmFjaykgLSAwKSkgKiAwcHgpO3BhZGRpbmctaW5saW5lLXN0YXJ0OmNhbGMobWF4KDAsIDEgLSAodmFyKC0tdWktbGliLWxpZ2h0YnV0dG9uLXNob3ctY2hpbGRyZW4td2l0aC1mYWxsYmFjaykgLSAxKSAqICh2YXIoLS11aS1saWItbGlnaHRidXR0b24tc2hvdy1jaGlsZHJlbi13aXRoLWZhbGxiYWNrKSAtIDEpKSAqIG1heCh2YXIoLS11aS1saWItbGlnaHQtYnV0dG9uLXBhZGRpbmctaW5saW5lLXN0YXJ0LCB2YXIoLS11aS1saWItbGlnaHQtYnV0dG9uLXBhZGRpbmctaW5saW5lLXN0YXJ0LWRlZmF1bHQpKSwgM3B4KSArIG1heCgwLCAxIC0gKHZhcigtLXVpLWxpYi1saWdodGJ1dHRvbi1zaG93LWNoaWxkcmVuLXdpdGgtZmFsbGJhY2spIC0gMCkgKiAodmFyKC0tdWktbGliLWxpZ2h0YnV0dG9uLXNob3ctY2hpbGRyZW4td2l0aC1mYWxsYmFjaykgLSAwKSkgKiAwcHgpfS54c21hbGwta2pSZlRsZng6YWZ0ZXJ7Ym9yZGVyLXJhZGl1czoxMHB4fS54c21hbGwta2pSZlRsZngud2l0aFN0YXJ0U2xvdC1ralJmVGxmeHstLXVpLWxpYi1saWdodC1idXR0b24tcGFkZGluZy1pbmxpbmUtc3RhcnQtZGVmYXVsdDo3cHh9LnhzbWFsbC1ralJmVGxmeC53aXRoRW5kU2xvdC1ralJmVGxmeHstLXVpLWxpYi1saWdodC1idXR0b24tcGFkZGluZy1pbmxpbmUtZW5kLWRlZmF1bHQ6N3B4fS54c21hbGwta2pSZlRsZngubm9Db250ZW50LWtqUmZUbGZ4ey0tdWktbGliLWxpZ2h0LWJ1dHRvbi1wYWRkaW5nLWlubGluZS1zdGFydC1kZWZhdWx0OjRweDstLXVpLWxpYi1saWdodC1idXR0b24tcGFkZGluZy1pbmxpbmUtZW5kLWRlZmF1bHQ6NHB4O3BhZGRpbmctaW5saW5lLWVuZDptYXgodmFyKC0tdWktbGliLWxpZ2h0LWJ1dHRvbi1wYWRkaW5nLWlubGluZS1lbmQsdmFyKC0tdWktbGliLWxpZ2h0LWJ1dHRvbi1wYWRkaW5nLWlubGluZS1lbmQtZGVmYXVsdCkpLDJweCk7cGFkZGluZy1pbmxpbmUtc3RhcnQ6bWF4KHZhcigtLXVpLWxpYi1saWdodC1idXR0b24tcGFkZGluZy1pbmxpbmUtc3RhcnQsdmFyKC0tdWktbGliLWxpZ2h0LWJ1dHRvbi1wYWRkaW5nLWlubGluZS1zdGFydC1kZWZhdWx0KSksMnB4KX0ueHNtYWxsLWtqUmZUbGZ4LndyYXAta2pSZlRsZnh7aGVpZ2h0OmF1dG87bWluLWhlaWdodDoyOHB4fS54c21hbGwta2pSZlRsZnggLmNvbnRlbnQta2pSZlRsZnh7cGFkZGluZy1ib3R0b206Y2FsYygoMjhweCAtIHZhcigtLXVpLWxpYi10eXBvZ3JhcGh5LWxpbmUtaGVpZ2h0KSkvMiAtIDFweCk7cGFkZGluZy10b3A6Y2FsYygoMjhweCAtIHZhcigtLXVpLWxpYi10eXBvZ3JhcGh5LWxpbmUtaGVpZ2h0KSkvMiAtIDFweCl9LnNtYWxsLWtqUmZUbGZ4e2JvcmRlci1yYWRpdXM6NnB4O2hlaWdodDozNHB4O21pbi13aWR0aDozNHB4Oy0tdWktbGliLWxpZ2h0LWJ1dHRvbi1wYWRkaW5nLWlubGluZS1zdGFydC1kZWZhdWx0OjExcHg7LS11aS1saWItbGlnaHQtYnV0dG9uLXBhZGRpbmctaW5saW5lLWVuZC1kZWZhdWx0OjExcHg7LS11aS1saWItbGlnaHQtYnV0dG9uLXBhZGRpbmctYmxvY2stc3RhcnQtZGVmYXVsdDowOy0tdWktbGliLWxpZ2h0LWJ1dHRvbi1wYWRkaW5nLWJsb2NrLWVuZC1kZWZhdWx0OjA7LS11aS1saWItbGlnaHRidXR0b24tc2hvdy1jaGlsZHJlbi13aXRoLWZhbGxiYWNrOnZhcigtLXVpLWxpYi1saWdodEJ1dHRvbi1zaG93LWNoaWxkcmVuLDEpO3BhZGRpbmctYmxvY2stZW5kOjA7cGFkZGluZy1ibG9jay1zdGFydDowO3BhZGRpbmctaW5saW5lLWVuZDpjYWxjKG1heCgwLCAxIC0gKHZhcigtLXVpLWxpYi1saWdodGJ1dHRvbi1zaG93LWNoaWxkcmVuLXdpdGgtZmFsbGJhY2spIC0gMSkgKiAodmFyKC0tdWktbGliLWxpZ2h0YnV0dG9uLXNob3ctY2hpbGRyZW4td2l0aC1mYWxsYmFjaykgLSAxKSkgKiBtYXgodmFyKC0tdWktbGliLWxpZ2h0LWJ1dHRvbi1wYWRkaW5nLWlubGluZS1lbmQsIHZhcigtLXVpLWxpYi1saWdodC1idXR0b24tcGFkZGluZy1pbmxpbmUtZW5kLWRlZmF1bHQpKSwgM3B4KSArIG1heCgwLCAxIC0gKHZhcigtLXVpLWxpYi1saWdodGJ1dHRvbi1zaG93LWNoaWxkcmVuLXdpdGgtZmFsbGJhY2spIC0gMCkgKiAodmFyKC0tdWktbGliLWxpZ2h0YnV0dG9uLXNob3ctY2hpbGRyZW4td2l0aC1mYWxsYmFjaykgLSAwKSkgKiAwcHgpO3BhZGRpbmctaW5saW5lLXN0YXJ0OmNhbGMobWF4KDAsIDEgLSAodmFyKC0tdWktbGliLWxpZ2h0YnV0dG9uLXNob3ctY2hpbGRyZW4td2l0aC1mYWxsYmFjaykgLSAxKSAqICh2YXIoLS11aS1saWItbGlnaHRidXR0b24tc2hvdy1jaGlsZHJlbi13aXRoLWZhbGxiYWNrKSAtIDEpKSAqIG1heCh2YXIoLS11aS1saWItbGlnaHQtYnV0dG9uLXBhZGRpbmctaW5saW5lLXN0YXJ0LCB2YXIoLS11aS1saWItbGlnaHQtYnV0dG9uLXBhZGRpbmctaW5saW5lLXN0YXJ0LWRlZmF1bHQpKSwgM3B4KSArIG1heCgwLCAxIC0gKHZhcigtLXVpLWxpYi1saWdodGJ1dHRvbi1zaG93LWNoaWxkcmVuLXdpdGgtZmFsbGJhY2spIC0gMCkgKiAodmFyKC0tdWktbGliLWxpZ2h0YnV0dG9uLXNob3ctY2hpbGRyZW4td2l0aC1mYWxsYmFjaykgLSAwKSkgKiAwcHgpfS5zbWFsbC1ralJmVGxmeDphZnRlcntib3JkZXItcmFkaXVzOjEwcHh9LnNtYWxsLWtqUmZUbGZ4LndpdGhTdGFydFNsb3Qta2pSZlRsZnh7LS11aS1saWItbGlnaHQtYnV0dG9uLXBhZGRpbmctaW5saW5lLXN0YXJ0LWRlZmF1bHQ6N3B4fS5zbWFsbC1ralJmVGxmeC53aXRoRW5kU2xvdC1ralJmVGxmeHstLXVpLWxpYi1saWdodC1idXR0b24tcGFkZGluZy1pbmxpbmUtZW5kLWRlZmF1bHQ6N3B4fS5zbWFsbC1ralJmVGxmeC5ub0NvbnRlbnQta2pSZlRsZnh7LS11aS1saWItbGlnaHQtYnV0dG9uLXBhZGRpbmctaW5saW5lLXN0YXJ0LWRlZmF1bHQ6MnB4Oy0tdWktbGliLWxpZ2h0LWJ1dHRvbi1wYWRkaW5nLWlubGluZS1lbmQtZGVmYXVsdDoycHg7cGFkZGluZy1pbmxpbmUtZW5kOm1heCh2YXIoLS11aS1saWItbGlnaHQtYnV0dG9uLXBhZGRpbmctaW5saW5lLWVuZCx2YXIoLS11aS1saWItbGlnaHQtYnV0dG9uLXBhZGRpbmctaW5saW5lLWVuZC1kZWZhdWx0KSksMnB4KTtwYWRkaW5nLWlubGluZS1zdGFydDptYXgodmFyKC0tdWktbGliLWxpZ2h0LWJ1dHRvbi1wYWRkaW5nLWlubGluZS1zdGFydCx2YXIoLS11aS1saWItbGlnaHQtYnV0dG9uLXBhZGRpbmctaW5saW5lLXN0YXJ0LWRlZmF1bHQpKSwycHgpfS5zbWFsbC1ralJmVGxmeC53cmFwLWtqUmZUbGZ4e2hlaWdodDphdXRvO21pbi1oZWlnaHQ6MzRweH0uc21hbGwta2pSZlRsZnggLmNvbnRlbnQta2pSZlRsZnh7cGFkZGluZy1ib3R0b206Y2FsYygoMzRweCAtIHZhcigtLXVpLWxpYi10eXBvZ3JhcGh5LWxpbmUtaGVpZ2h0KSkvMiAtIDFweCk7cGFkZGluZy10b3A6Y2FsYygoMzRweCAtIHZhcigtLXVpLWxpYi10eXBvZ3JhcGh5LWxpbmUtaGVpZ2h0KSkvMiAtIDFweCl9Lm1lZGl1bS1ralJmVGxmeHtib3JkZXItcmFkaXVzOjhweDtoZWlnaHQ6NDBweDttaW4td2lkdGg6NDBweDstLXVpLWxpYi1saWdodC1idXR0b24tcGFkZGluZy1pbmxpbmUtc3RhcnQtZGVmYXVsdDoxNXB4Oy0tdWktbGliLWxpZ2h0LWJ1dHRvbi1wYWRkaW5nLWlubGluZS1lbmQtZGVmYXVsdDoxNXB4Oy0tdWktbGliLWxpZ2h0LWJ1dHRvbi1wYWRkaW5nLWJsb2NrLXN0YXJ0LWRlZmF1bHQ6MDstLXVpLWxpYi1saWdodC1idXR0b24tcGFkZGluZy1ibG9jay1lbmQtZGVmYXVsdDowOy0tdWktbGliLWxpZ2h0YnV0dG9uLXNob3ctY2hpbGRyZW4td2l0aC1mYWxsYmFjazp2YXIoLS11aS1saWItbGlnaHRCdXR0b24tc2hvdy1jaGlsZHJlbiwxKTtwYWRkaW5nLWJsb2NrLWVuZDowO3BhZGRpbmctYmxvY2stc3RhcnQ6MDtwYWRkaW5nLWlubGluZS1lbmQ6Y2FsYyhtYXgoMCwgMSAtICh2YXIoLS11aS1saWItbGlnaHRidXR0b24tc2hvdy1jaGlsZHJlbi13aXRoLWZhbGxiYWNrKSAtIDEpICogKHZhcigtLXVpLWxpYi1saWdodGJ1dHRvbi1zaG93LWNoaWxkcmVuLXdpdGgtZmFsbGJhY2spIC0gMSkpICogbWF4KHZhcigtLXVpLWxpYi1saWdodC1idXR0b24tcGFkZGluZy1pbmxpbmUtZW5kLCB2YXIoLS11aS1saWItbGlnaHQtYnV0dG9uLXBhZGRpbmctaW5saW5lLWVuZC1kZWZhdWx0KSksIDNweCkgKyBtYXgoMCwgMSAtICh2YXIoLS11aS1saWItbGlnaHRidXR0b24tc2hvdy1jaGlsZHJlbi13aXRoLWZhbGxiYWNrKSAtIDApICogKHZhcigtLXVpLWxpYi1saWdodGJ1dHRvbi1zaG93LWNoaWxkcmVuLXdpdGgtZmFsbGJhY2spIC0gMCkpICogMHB4KTtwYWRkaW5nLWlubGluZS1zdGFydDpjYWxjKG1heCgwLCAxIC0gKHZhcigtLXVpLWxpYi1saWdodGJ1dHRvbi1zaG93LWNoaWxkcmVuLXdpdGgtZmFsbGJhY2spIC0gMSkgKiAodmFyKC0tdWktbGliLWxpZ2h0YnV0dG9uLXNob3ctY2hpbGRyZW4td2l0aC1mYWxsYmFjaykgLSAxKSkgKiBtYXgodmFyKC0tdWktbGliLWxpZ2h0LWJ1dHRvbi1wYWRkaW5nLWlubGluZS1zdGFydCwgdmFyKC0tdWktbGliLWxpZ2h0LWJ1dHRvbi1wYWRkaW5nLWlubGluZS1zdGFydC1kZWZhdWx0KSksIDNweCkgKyBtYXgoMCwgMSAtICh2YXIoLS11aS1saWItbGlnaHRidXR0b24tc2hvdy1jaGlsZHJlbi13aXRoLWZhbGxiYWNrKSAtIDApICogKHZhcigtLXVpLWxpYi1saWdodGJ1dHRvbi1zaG93LWNoaWxkcmVuLXdpdGgtZmFsbGJhY2spIC0gMCkpICogMHB4KX0ubWVkaXVtLWtqUmZUbGZ4OmFmdGVye2JvcmRlci1yYWRpdXM6MTJweH0ubWVkaXVtLWtqUmZUbGZ4LndpdGhTdGFydFNsb3Qta2pSZlRsZnh7LS11aS1saWItbGlnaHQtYnV0dG9uLXBhZGRpbmctaW5saW5lLXN0YXJ0LWRlZmF1bHQ6MTFweH0ubWVkaXVtLWtqUmZUbGZ4LndpdGhFbmRTbG90LWtqUmZUbGZ4ey0tdWktbGliLWxpZ2h0LWJ1dHRvbi1wYWRkaW5nLWlubGluZS1lbmQtZGVmYXVsdDoxMXB4fS5tZWRpdW0ta2pSZlRsZngubm9Db250ZW50LWtqUmZUbGZ4ey0tdWktbGliLWxpZ2h0LWJ1dHRvbi1wYWRkaW5nLWlubGluZS1zdGFydC1kZWZhdWx0OjVweDstLXVpLWxpYi1saWdodC1idXR0b24tcGFkZGluZy1pbmxpbmUtZW5kLWRlZmF1bHQ6NXB4O3BhZGRpbmctaW5saW5lLWVuZDptYXgodmFyKC0tdWktbGliLWxpZ2h0LWJ1dHRvbi1wYWRkaW5nLWlubGluZS1lbmQsdmFyKC0tdWktbGliLWxpZ2h0LWJ1dHRvbi1wYWRkaW5nLWlubGluZS1lbmQtZGVmYXVsdCkpLDJweCk7cGFkZGluZy1pbmxpbmUtc3RhcnQ6bWF4KHZhcigtLXVpLWxpYi1saWdodC1idXR0b24tcGFkZGluZy1pbmxpbmUtc3RhcnQsdmFyKC0tdWktbGliLWxpZ2h0LWJ1dHRvbi1wYWRkaW5nLWlubGluZS1zdGFydC1kZWZhdWx0KSksMnB4KX0ubWVkaXVtLWtqUmZUbGZ4LndyYXAta2pSZlRsZnh7aGVpZ2h0OmF1dG87bWluLWhlaWdodDo0MHB4fS5tZWRpdW0ta2pSZlRsZnggLmNvbnRlbnQta2pSZlRsZnh7cGFkZGluZy1ib3R0b206Y2FsYygoNDBweCAtIHZhcigtLXVpLWxpYi10eXBvZ3JhcGh5LWxpbmUtaGVpZ2h0KSkvMiAtIDFweCk7cGFkZGluZy10b3A6Y2FsYygoNDBweCAtIHZhcigtLXVpLWxpYi10eXBvZ3JhcGh5LWxpbmUtaGVpZ2h0KSkvMiAtIDFweCl9LnBpbGxzLUllUXdQamNaLnBpbGxzLUllUXdQamNaLnBpbGxzLUllUXdQamNaLnBpbGxzLUllUXdQamNaLnBpbGxzLUllUXdQamNaLnBpbGxzLUllUXdQamNaey0tdWktbGliLWxpZ2h0LWJ1dHRvbi1kZWZhdWx0LWNvbG9yLWJnOnZhcigtLWNvbG9yLWNvbnRhaW5lci1maWxsLXByaW1hcnktbmV1dHJhbC1leHRyYS1ib2xkKTstLXVpLWxpYi1saWdodC1idXR0b24tZGVmYXVsdC1jb2xvci1ib3JkZXI6dmFyKC0tY29sb3ItY29udGFpbmVyLWZpbGwtcHJpbWFyeS1uZXV0cmFsLWV4dHJhLWJvbGQpOy0tdWktbGliLWxpZ2h0LWJ1dHRvbi1kZWZhdWx0LWNvbG9yLWNvbnRlbnQ6dmFyKC0tY29sb3ItY29udGVudC1wcmltYXJ5LWludmVyc2UpfUBtZWRpYSAoYW55LWhvdmVyOmhvdmVyKXsucGlsbHMtSWVRd1BqY1oucGlsbHMtSWVRd1BqY1oucGlsbHMtSWVRd1BqY1oucGlsbHMtSWVRd1BqY1oucGlsbHMtSWVRd1BqY1oucGlsbHMtSWVRd1BqY1o6aG92ZXJ7LS11aS1saWItbGlnaHQtYnV0dG9uLWRlZmF1bHQtY29sb3ItYmc6dmFyKC0tY29sb3ItY29udGFpbmVyLWZpbGwtcHJpbWFyeS1uZXV0cmFsLWJvbGQpOy0tdWktbGliLWxpZ2h0LWJ1dHRvbi1kZWZhdWx0LWNvbG9yLWJvcmRlcjp2YXIoLS1jb2xvci1jb250YWluZXItZmlsbC1wcmltYXJ5LW5ldXRyYWwtYm9sZCk7LS11aS1saWItbGlnaHQtYnV0dG9uLWRlZmF1bHQtY29sb3ItY29udGVudDp2YXIoLS1jb2xvci1jb250ZW50LXByaW1hcnktaW52ZXJzZSl9fS5waWxscy1JZVF3UGpjWi5waWxscy1JZVF3UGpjWi5waWxscy1JZVF3UGpjWi5waWxscy1JZVF3UGpjWi5waWxscy1JZVF3UGpjWi5waWxscy1JZVF3UGpjWjphY3RpdmV7LS11aS1saWItbGlnaHQtYnV0dG9uLWRlZmF1bHQtY29sb3ItYmc6dmFyKC0tY29sb3ItY29udGFpbmVyLWZpbGwtcHJpbWFyeS1uZXV0cmFsLWV4dHJhLWJvbGQpOy0tdWktbGliLWxpZ2h0LWJ1dHRvbi1kZWZhdWx0LWNvbG9yLWJvcmRlcjp2YXIoLS1jb2xvci1jb250YWluZXItZmlsbC1wcmltYXJ5LW5ldXRyYWwtZXh0cmEtYm9sZCk7LS11aS1saWItbGlnaHQtYnV0dG9uLWRlZmF1bHQtY29sb3ItY29udGVudDp2YXIoLS1jb2xvci1jb250ZW50LXByaW1hcnktaW52ZXJzZSl9LnByaW1hcnktSWVRd1BqY1ouZ3JheS1JZVF3UGpjWnstLXVpLWxpYi1saWdodC1idXR0b24tZGVmYXVsdC1jb2xvci1iZzp2YXIoLS1jb2xvci1idXR0b24tZmlsbF9ib3JkZXItcHJpbWFyeS1uZXV0cmFsLWRlZmF1bHQpOy0tdWktbGliLWxpZ2h0LWJ1dHRvbi1kZWZhdWx0LWNvbG9yLWNvbnRlbnQ6dmFyKC0tY29sb3ItYnV0dG9uLWNvbnRlbnQtcHJpbWFyeS1uZXV0cmFsLWRlZmF1bHQpOy0tdWktbGliLWxpZ2h0LWJ1dHRvbi1kZWZhdWx0LWNvbG9yLWJvcmRlcjp2YXIoLS1jb2xvci1idXR0b24tZmlsbF9ib3JkZXItcHJpbWFyeS1uZXV0cmFsLWRlZmF1bHQpfUBtZWRpYSBub3QgKHBvaW50ZXI6Y29hcnNlKXtAbWVkaWEgKGFueS1ob3Zlcjpob3Zlcil7LnByaW1hcnktSWVRd1BqY1ouZ3JheS1JZVF3UGpjWjpob3ZlcnstLXVpLWxpYi1saWdodC1idXR0b24tZGVmYXVsdC1jb2xvci1iZzp2YXIoLS1jb2xvci1idXR0b24tZmlsbF9ib3JkZXItcHJpbWFyeS1uZXV0cmFsLWhvdmVyKTstLXVpLWxpYi1saWdodC1idXR0b24tZGVmYXVsdC1jb2xvci1jb250ZW50OnZhcigtLWNvbG9yLWJ1dHRvbi1jb250ZW50LXByaW1hcnktbmV1dHJhbC1ob3Zlcik7LS11aS1saWItbGlnaHQtYnV0dG9uLWRlZmF1bHQtY29sb3ItYm9yZGVyOnZhcigtLWNvbG9yLWJ1dHRvbi1maWxsX2JvcmRlci1wcmltYXJ5LW5ldXRyYWwtaG92ZXIpfX19LnByaW1hcnktSWVRd1BqY1ouZ3JheS1JZVF3UGpjWi5zZWxlY3RlZC1JZVF3UGpjWnstLXVpLWxpYi1saWdodC1idXR0b24tZGVmYXVsdC1jb2xvci1iZzp2YXIoLS1jb2xvci1idXR0b24tZmlsbF9ib3JkZXItcHJpbWFyeS1uZXV0cmFsLWlzLXNlbGVjdGVkKTstLXVpLWxpYi1saWdodC1idXR0b24tZGVmYXVsdC1jb2xvci1ib3JkZXI6dmFyKC0tY29sb3ItYnV0dG9uLWZpbGxfYm9yZGVyLXByaW1hcnktbmV1dHJhbC1pcy1zZWxlY3RlZCk7LS11aS1saWItbGlnaHQtYnV0dG9uLWRlZmF1bHQtY29sb3ItY29udGVudDp2YXIoLS1jb2xvci1idXR0b24tY29udGVudC1wcmltYXJ5LW5ldXRyYWwtaG92ZXIpfUBtZWRpYSAoYW55LWhvdmVyOmhvdmVyKXsucHJpbWFyeS1JZVF3UGpjWi5ncmF5LUllUXdQamNaLnNlbGVjdGVkLUllUXdQamNaOm5vdCguZ3JvdXBlZC1JZVF3UGpjWik6bm90KDpkaXNhYmxlZCk6aG92ZXJ7LS11aS1saWItbGlnaHQtYnV0dG9uLWRlZmF1bHQtY29sb3ItYmc6dmFyKC0tY29sb3ItYnV0dG9uLWZpbGxfYm9yZGVyLXByaW1hcnktbmV1dHJhbC1ob3Zlcik7LS11aS1saWItbGlnaHQtYnV0dG9uLWRlZmF1bHQtY29sb3ItY29udGVudDp2YXIoLS1jb2xvci1idXR0b24tY29udGVudC1wcmltYXJ5LW5ldXRyYWwtaG92ZXIpOy0tdWktbGliLWxpZ2h0LWJ1dHRvbi1kZWZhdWx0LWNvbG9yLWJvcmRlcjp2YXIoLS1jb2xvci1idXR0b24tZmlsbF9ib3JkZXItcHJpbWFyeS1uZXV0cmFsLWhvdmVyKX19LnByaW1hcnktSWVRd1BqY1ouZ3JheS1JZVF3UGpjWi5hY3RpdmUtSWVRd1BqY1osLnByaW1hcnktSWVRd1BqY1ouZ3JheS1JZVF3UGpjWjpub3QoLmRpc2FibGVBY3RpdmVPblRvdWNoLUllUXdQamNaKTpub3QoLmRpc2FibGVBY3RpdmVTdGF0ZVN0eWxlcy1JZVF3UGpjWik6bm90KDpkaXNhYmxlZCk6YWN0aXZley0tdWktbGliLWxpZ2h0LWJ1dHRvbi1kZWZhdWx0LWNvbG9yLWJnOnZhcigtLWNvbG9yLWJ1dHRvbi1maWxsX2JvcmRlci1wcmltYXJ5LW5ldXRyYWwtYWN0aXZlKTstLXVpLWxpYi1saWdodC1idXR0b24tZGVmYXVsdC1jb2xvci1jb250ZW50OnZhcigtLWNvbG9yLWJ1dHRvbi1jb250ZW50LXByaW1hcnktbmV1dHJhbC1ob3Zlcik7LS11aS1saWItbGlnaHQtYnV0dG9uLWRlZmF1bHQtY29sb3ItYm9yZGVyOnZhcigtLWNvbG9yLWJ1dHRvbi1maWxsX2JvcmRlci1wcmltYXJ5LW5ldXRyYWwtYWN0aXZlKX0ucHJpbWFyeS1JZVF3UGpjWi5ncmF5LUllUXdQamNaLmFjdGl2ZS1JZVF3UGpjWi5ncm91cGVkLUllUXdQamNaLC5wcmltYXJ5LUllUXdQamNaLmdyYXktSWVRd1BqY1o6bm90KC5kaXNhYmxlQWN0aXZlT25Ub3VjaC1JZVF3UGpjWik6bm90KC5kaXNhYmxlQWN0aXZlU3RhdGVTdHlsZXMtSWVRd1BqY1opOm5vdCg6ZGlzYWJsZWQpOmFjdGl2ZS5ncm91cGVkLUllUXdQamNae3RyYW5zZm9ybTpub25lfUBtZWRpYSBub3QgKHBvaW50ZXI6Y29hcnNlKXsucHJpbWFyeS1JZVF3UGpjWi5ncmF5LUllUXdQamNaLmRpc2FibGVBY3RpdmVPblRvdWNoLUllUXdQamNaOm5vdCguZGlzYWJsZUFjdGl2ZVN0YXRlU3R5bGVzLUllUXdQamNaKTpub3QoOmRpc2FibGVkKTphY3RpdmV7LS11aS1saWItbGlnaHQtYnV0dG9uLWRlZmF1bHQtY29sb3ItYmc6dmFyKC0tY29sb3ItYnV0dG9uLWZpbGxfYm9yZGVyLXByaW1hcnktbmV1dHJhbC1hY3RpdmUpOy0tdWktbGliLWxpZ2h0LWJ1dHRvbi1kZWZhdWx0LWNvbG9yLWNvbnRlbnQ6dmFyKC0tY29sb3ItYnV0dG9uLWNvbnRlbnQtcHJpbWFyeS1uZXV0cmFsLWhvdmVyKTstLXVpLWxpYi1saWdodC1idXR0b24tZGVmYXVsdC1jb2xvci1ib3JkZXI6dmFyKC0tY29sb3ItYnV0dG9uLWZpbGxfYm9yZGVyLXByaW1hcnktbmV1dHJhbC1hY3RpdmUpfS5wcmltYXJ5LUllUXdQamNaLmdyYXktSWVRd1BqY1ouZGlzYWJsZUFjdGl2ZU9uVG91Y2gtSWVRd1BqY1o6bm90KC5kaXNhYmxlQWN0aXZlU3RhdGVTdHlsZXMtSWVRd1BqY1opOm5vdCg6ZGlzYWJsZWQpOmFjdGl2ZS5ncm91cGVkLUllUXdQamNae3RyYW5zZm9ybTpub25lfX1AbWVkaWEgKGFueS1ob3Zlcjpob3Zlcil7LnByaW1hcnktSWVRd1BqY1ouZ3JheS1JZVF3UGpjWi53aXRoR3JvdXBlZC1JZVF3UGpjWi5xdWlldC1wcmltYXJ5LUllUXdQamNaOm5vdCguc2VsZWN0ZWQtSWVRd1BqY1opOm5vdCg6aG92ZXIpOm5vdCg6ZGlzYWJsZWQpey0tdWktbGliLWxpZ2h0LWJ1dHRvbi1kZWZhdWx0LWNvbG9yLWJnOiMwMDAwOy0tdWktbGliLWxpZ2h0LWJ1dHRvbi1kZWZhdWx0LWNvbG9yLWJvcmRlcjojMDAwMH19LnByaW1hcnktSWVRd1BqY1ouZ3JheS1JZVF3UGpjWjpkaXNhYmxlZHstLXVpLWxpYi1saWdodC1idXR0b24tZGVmYXVsdC1jb2xvci1iZzp2YXIoLS1jb2xvci1idXR0b24tZmlsbF9ib3JkZXItZGlzYWJsZWQpOy0tdWktbGliLWxpZ2h0LWJ1dHRvbi1kZWZhdWx0LWNvbG9yLWNvbnRlbnQ6dmFyKC0tY29sb3ItYnV0dG9uLWNvbnRlbnQtZGlzYWJsZWQpOy0tdWktbGliLWxpZ2h0LWJ1dHRvbi1kZWZhdWx0LWNvbG9yLWJvcmRlcjp2YXIoLS1jb2xvci1idXR0b24tZmlsbF9ib3JkZXItZGlzYWJsZWQpO3RyYW5zZm9ybTp0cmFuc2xhdGVZKDApfS5xdWlldC1wcmltYXJ5LUllUXdQamNaLmdyYXktSWVRd1BqY1p7LS11aS1saWItbGlnaHQtYnV0dG9uLWRlZmF1bHQtY29sb3ItYmc6dmFyKC0tY29sb3Itc3RhdGljLXRyYW5zcGFyZW50KTstLXVpLWxpYi1saWdodC1idXR0b24tZGVmYXVsdC1jb2xvci1jb250ZW50OnZhcigtLWNvbG9yLWJ1dHRvbi1jb250ZW50LXF1aWV0LXByaW1hcnktbmV1dHJhbC1kZWZhdWx0KTstLXVpLWxpYi1saWdodC1idXR0b24tZGVmYXVsdC1jb2xvci1ib3JkZXI6dmFyKC0tY29sb3Itc3RhdGljLXRyYW5zcGFyZW50KX1AbWVkaWEgbm90IChwb2ludGVyOmNvYXJzZSl7QG1lZGlhIChhbnktaG92ZXI6aG92ZXIpey5xdWlldC1wcmltYXJ5LUllUXdQamNaLmdyYXktSWVRd1BqY1o6aG92ZXJ7LS11aS1saWItbGlnaHQtYnV0dG9uLWRlZmF1bHQtY29sb3ItYmc6dmFyKC0tY29sb3ItYnV0dG9uLWZpbGxfYm9yZGVyLXF1aWV0LXByaW1hcnktbmV1dHJhbC1ob3Zlcik7LS11aS1saWItbGlnaHQtYnV0dG9uLWRlZmF1bHQtY29sb3ItY29udGVudDp2YXIoLS1jb2xvci1idXR0b24tY29udGVudC1xdWlldC1wcmltYXJ5LW5ldXRyYWwtaG92ZXIpOy0tdWktbGliLWxpZ2h0LWJ1dHRvbi1kZWZhdWx0LWNvbG9yLWJvcmRlcjp2YXIoLS1jb2xvci1idXR0b24tZmlsbF9ib3JkZXItcXVpZXQtcHJpbWFyeS1uZXV0cmFsLWhvdmVyKX19fS5xdWlldC1wcmltYXJ5LUllUXdQamNaLmdyYXktSWVRd1BqY1ouc2VsZWN0ZWQtSWVRd1BqY1p7LS11aS1saWItbGlnaHQtYnV0dG9uLWRlZmF1bHQtY29sb3ItYmc6dmFyKC0tY29sb3ItYnV0dG9uLWZpbGxfYm9yZGVyLXF1aWV0LXByaW1hcnktbmV1dHJhbC1pcy1zZWxlY3RlZCk7LS11aS1saWItbGlnaHQtYnV0dG9uLWRlZmF1bHQtY29sb3ItYm9yZGVyOnZhcigtLWNvbG9yLWJ1dHRvbi1maWxsX2JvcmRlci1xdWlldC1wcmltYXJ5LW5ldXRyYWwtaXMtc2VsZWN0ZWQpOy0tdWktbGliLWxpZ2h0LWJ1dHRvbi1kZWZhdWx0LWNvbG9yLWNvbnRlbnQ6dmFyKC0tY29sb3ItYnV0dG9uLWNvbnRlbnQtcXVpZXQtcHJpbWFyeS1uZXV0cmFsLWFjdGl2ZSl9QG1lZGlhIChhbnktaG92ZXI6aG92ZXIpey5xdWlldC1wcmltYXJ5LUllUXdQamNaLmdyYXktSWVRd1BqY1ouc2VsZWN0ZWQtSWVRd1BqY1o6bm90KC5ncm91cGVkLUllUXdQamNaKTpub3QoOmRpc2FibGVkKTpob3ZlcnstLXVpLWxpYi1saWdodC1idXR0b24tZGVmYXVsdC1jb2xvci1iZzp2YXIoLS1jb2xvci1idXR0b24tZmlsbF9ib3JkZXItcXVpZXQtcHJpbWFyeS1uZXV0cmFsLWhvdmVyKTstLXVpLWxpYi1saWdodC1idXR0b24tZGVmYXVsdC1jb2xvci1jb250ZW50OnZhcigtLWNvbG9yLWJ1dHRvbi1jb250ZW50LXF1aWV0LXByaW1hcnktbmV1dHJhbC1ob3Zlcik7LS11aS1saWItbGlnaHQtYnV0dG9uLWRlZmF1bHQtY29sb3ItYm9yZGVyOnZhcigtLWNvbG9yLWJ1dHRvbi1maWxsX2JvcmRlci1xdWlldC1wcmltYXJ5LW5ldXRyYWwtaG92ZXIpfX0ucXVpZXQtcHJpbWFyeS1JZVF3UGpjWi5ncmF5LUllUXdQamNaLmFjdGl2ZS1JZVF3UGpjWiwucXVpZXQtcHJpbWFyeS1JZVF3UGpjWi5ncmF5LUllUXdQamNaOm5vdCguZGlzYWJsZUFjdGl2ZU9uVG91Y2gtSWVRd1BqY1opOm5vdCguZGlzYWJsZUFjdGl2ZVN0YXRlU3R5bGVzLUllUXdQamNaKTpub3QoOmRpc2FibGVkKTphY3RpdmV7LS11aS1saWItbGlnaHQtYnV0dG9uLWRlZmF1bHQtY29sb3ItYmc6dmFyKC0tY29sb3ItYnV0dG9uLWZpbGxfYm9yZGVyLXF1aWV0LXByaW1hcnktbmV1dHJhbC1hY3RpdmUpOy0tdWktbGliLWxpZ2h0LWJ1dHRvbi1kZWZhdWx0LWNvbG9yLWNvbnRlbnQ6dmFyKC0tY29sb3ItYnV0dG9uLWNvbnRlbnQtcXVpZXQtcHJpbWFyeS1uZXV0cmFsLWFjdGl2ZSk7LS11aS1saWItbGlnaHQtYnV0dG9uLWRlZmF1bHQtY29sb3ItYm9yZGVyOnZhcigtLWNvbG9yLWJ1dHRvbi1maWxsX2JvcmRlci1xdWlldC1wcmltYXJ5LW5ldXRyYWwtYWN0aXZlKX0ucXVpZXQtcHJpbWFyeS1JZVF3UGpjWi5ncmF5LUllUXdQamNaLmFjdGl2ZS1JZVF3UGpjWi5ncm91cGVkLUllUXdQamNaLC5xdWlldC1wcmltYXJ5LUllUXdQamNaLmdyYXktSWVRd1BqY1o6bm90KC5kaXNhYmxlQWN0aXZlT25Ub3VjaC1JZVF3UGpjWik6bm90KC5kaXNhYmxlQWN0aXZlU3RhdGVTdHlsZXMtSWVRd1BqY1opOm5vdCg6ZGlzYWJsZWQpOmFjdGl2ZS5ncm91cGVkLUllUXdQamNae3RyYW5zZm9ybTpub25lfUBtZWRpYSBub3QgKHBvaW50ZXI6Y29hcnNlKXsucXVpZXQtcHJpbWFyeS1JZVF3UGpjWi5ncmF5LUllUXdQamNaLmRpc2FibGVBY3RpdmVPblRvdWNoLUllUXdQamNaOm5vdCguZGlzYWJsZUFjdGl2ZVN0YXRlU3R5bGVzLUllUXdQamNaKTpub3QoOmRpc2FibGVkKTphY3RpdmV7LS11aS1saWItbGlnaHQtYnV0dG9uLWRlZmF1bHQtY29sb3ItYmc6dmFyKC0tY29sb3ItYnV0dG9uLWZpbGxfYm9yZGVyLXF1aWV0LXByaW1hcnktbmV1dHJhbC1hY3RpdmUpOy0tdWktbGliLWxpZ2h0LWJ1dHRvbi1kZWZhdWx0LWNvbG9yLWNvbnRlbnQ6dmFyKC0tY29sb3ItYnV0dG9uLWNvbnRlbnQtcXVpZXQtcHJpbWFyeS1uZXV0cmFsLWFjdGl2ZSk7LS11aS1saWItbGlnaHQtYnV0dG9uLWRlZmF1bHQtY29sb3ItYm9yZGVyOnZhcigtLWNvbG9yLWJ1dHRvbi1maWxsX2JvcmRlci1xdWlldC1wcmltYXJ5LW5ldXRyYWwtYWN0aXZlKX0ucXVpZXQtcHJpbWFyeS1JZVF3UGpjWi5ncmF5LUllUXdQamNaLmRpc2FibGVBY3RpdmVPblRvdWNoLUllUXdQamNaOm5vdCguZGlzYWJsZUFjdGl2ZVN0YXRlU3R5bGVzLUllUXdQamNaKTpub3QoOmRpc2FibGVkKTphY3RpdmUuZ3JvdXBlZC1JZVF3UGpjWnt0cmFuc2Zvcm06bm9uZX19QG1lZGlhIChhbnktaG92ZXI6aG92ZXIpey5xdWlldC1wcmltYXJ5LUllUXdQamNaLmdyYXktSWVRd1BqY1oud2l0aEdyb3VwZWQtSWVRd1BqY1oucXVpZXQtcHJpbWFyeS1JZVF3UGpjWjpub3QoLnNlbGVjdGVkLUllUXdQamNaKTpub3QoOmhvdmVyKTpub3QoOmRpc2FibGVkKXstLXVpLWxpYi1saWdodC1idXR0b24tZGVmYXVsdC1jb2xvci1iZzojMDAwMDstLXVpLWxpYi1saWdodC1idXR0b24tZGVmYXVsdC1jb2xvci1ib3JkZXI6IzAwMDB9fS5xdWlldC1wcmltYXJ5LUllUXdQamNaLmdyYXktSWVRd1BqY1o6ZGlzYWJsZWR7LS11aS1saWItbGlnaHQtYnV0dG9uLWRlZmF1bHQtY29sb3ItYmc6dmFyKC0tY29sb3ItYnV0dG9uLWZpbGxfYm9yZGVyLWRpc2FibGVkKTstLXVpLWxpYi1saWdodC1idXR0b24tZGVmYXVsdC1jb2xvci1jb250ZW50OnZhcigtLWNvbG9yLWJ1dHRvbi1jb250ZW50LWRpc2FibGVkKTstLXVpLWxpYi1saWdodC1idXR0b24tZGVmYXVsdC1jb2xvci1ib3JkZXI6dmFyKC0tY29sb3ItYnV0dG9uLWZpbGxfYm9yZGVyLWRpc2FibGVkKTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgwKX0ucXVpZXQtcHJpbWFyeS1JZVF3UGpjWi5ncmVlbi1JZVF3UGpjWnstLXVpLWxpYi1saWdodC1idXR0b24tZGVmYXVsdC1jb2xvci1iZzp2YXIoLS1jb2xvci1zdGF0aWMtdHJhbnNwYXJlbnQpOy0tdWktbGliLWxpZ2h0LWJ1dHRvbi1kZWZhdWx0LWNvbG9yLWNvbnRlbnQ6dmFyKC0tY29sb3ItY29udGVudC1wcmltYXJ5LXN1Y2Nlc3MpOy0tdWktbGliLWxpZ2h0LWJ1dHRvbi1kZWZhdWx0LWNvbG9yLWJvcmRlcjp2YXIoLS1jb2xvci1zdGF0aWMtdHJhbnNwYXJlbnQpfUBtZWRpYSBub3QgKHBvaW50ZXI6Y29hcnNlKXtAbWVkaWEgKGFueS1ob3Zlcjpob3Zlcil7LnF1aWV0LXByaW1hcnktSWVRd1BqY1ouZ3JlZW4tSWVRd1BqY1o6aG92ZXJ7LS11aS1saWItbGlnaHQtYnV0dG9uLWRlZmF1bHQtY29sb3ItYmc6dmFyKC0tY29sb3ItY29udGFpbmVyLWZpbGwtcHJpbWFyeS1zdWNjZXNzLWV4dHJhLWxpZ2h0KTstLXVpLWxpYi1saWdodC1idXR0b24tZGVmYXVsdC1jb2xvci1jb250ZW50OnZhcigtLWNvbG9yLWNvbnRlbnQtcHJpbWFyeS1wb3NpdGl2ZSk7LS11aS1saWItbGlnaHQtYnV0dG9uLWRlZmF1bHQtY29sb3ItYm9yZGVyOnZhcigtLWNvbG9yLWNvbnRhaW5lci1maWxsLXByaW1hcnktc3VjY2Vzcy1leHRyYS1saWdodCl9fX0ucXVpZXQtcHJpbWFyeS1JZVF3UGpjWi5ncmVlbi1JZVF3UGpjWi5zZWxlY3RlZC1JZVF3UGpjWnstLXVpLWxpYi1saWdodC1idXR0b24tZGVmYXVsdC1jb2xvci1iZzp2YXIoLS1jb2xvci1jb250YWluZXItZmlsbC1wcmltYXJ5LXN1Y2Nlc3MtZXh0cmEtbGlnaHQpOy0tdWktbGliLWxpZ2h0LWJ1dHRvbi1kZWZhdWx0LWNvbG9yLWJvcmRlcjp2YXIoLS1jb2xvci1jb250YWluZXItZmlsbC1wcmltYXJ5LXN1Y2Nlc3MtZXh0cmEtbGlnaHQpOy0tdWktbGliLWxpZ2h0LWJ1dHRvbi1kZWZhdWx0LWNvbG9yLWNvbnRlbnQ6dmFyKC0tY29sb3ItY29udGVudC1wcmltYXJ5LXN1Y2Nlc3MpfUBtZWRpYSAoYW55LWhvdmVyOmhvdmVyKXsucXVpZXQtcHJpbWFyeS1JZVF3UGpjWi5ncmVlbi1JZVF3UGpjWi5zZWxlY3RlZC1JZVF3UGpjWjpub3QoLmdyb3VwZWQtSWVRd1BqY1opOm5vdCg6ZGlzYWJsZWQpOmhvdmVyey0tdWktbGliLWxpZ2h0LWJ1dHRvbi1kZWZhdWx0LWNvbG9yLWJnOnZhcigtLWNvbG9yLWNvbnRhaW5lci1maWxsLXByaW1hcnktc3VjY2Vzcy1leHRyYS1saWdodCk7LS11aS1saWItbGlnaHQtYnV0dG9uLWRlZmF1bHQtY29sb3ItY29udGVudDp2YXIoLS1jb2xvci1jb250ZW50LXByaW1hcnktcG9zaXRpdmUpOy0tdWktbGliLWxpZ2h0LWJ1dHRvbi1kZWZhdWx0LWNvbG9yLWJvcmRlcjp2YXIoLS1jb2xvci1jb250YWluZXItZmlsbC1wcmltYXJ5LXN1Y2Nlc3MtZXh0cmEtbGlnaHQpfX0ucXVpZXQtcHJpbWFyeS1JZVF3UGpjWi5ncmVlbi1JZVF3UGpjWi5hY3RpdmUtSWVRd1BqY1osLnF1aWV0LXByaW1hcnktSWVRd1BqY1ouZ3JlZW4tSWVRd1BqY1o6bm90KC5kaXNhYmxlQWN0aXZlT25Ub3VjaC1JZVF3UGpjWik6bm90KC5kaXNhYmxlQWN0aXZlU3RhdGVTdHlsZXMtSWVRd1BqY1opOm5vdCg6ZGlzYWJsZWQpOmFjdGl2ZXstLXVpLWxpYi1saWdodC1idXR0b24tZGVmYXVsdC1jb2xvci1iZzp2YXIoLS1jb2xvci1jb250YWluZXItZmlsbC1wcmltYXJ5LXN1Y2Nlc3MtbGlnaHQpOy0tdWktbGliLWxpZ2h0LWJ1dHRvbi1kZWZhdWx0LWNvbG9yLWNvbnRlbnQ6dmFyKC0tY29sb3ItY29udGVudC1wcmltYXJ5LXN1Y2Nlc3MtYm9sZCk7LS11aS1saWItbGlnaHQtYnV0dG9uLWRlZmF1bHQtY29sb3ItYm9yZGVyOnZhcigtLWNvbG9yLWNvbnRhaW5lci1maWxsLXByaW1hcnktc3VjY2Vzcy1saWdodCl9LnF1aWV0LXByaW1hcnktSWVRd1BqY1ouZ3JlZW4tSWVRd1BqY1ouYWN0aXZlLUllUXdQamNaLmdyb3VwZWQtSWVRd1BqY1osLnF1aWV0LXByaW1hcnktSWVRd1BqY1ouZ3JlZW4tSWVRd1BqY1o6bm90KC5kaXNhYmxlQWN0aXZlT25Ub3VjaC1JZVF3UGpjWik6bm90KC5kaXNhYmxlQWN0aXZlU3RhdGVTdHlsZXMtSWVRd1BqY1opOm5vdCg6ZGlzYWJsZWQpOmFjdGl2ZS5ncm91cGVkLUllUXdQamNae3RyYW5zZm9ybTpub25lfUBtZWRpYSBub3QgKHBvaW50ZXI6Y29hcnNlKXsucXVpZXQtcHJpbWFyeS1JZVF3UGpjWi5ncmVlbi1JZVF3UGpjWi5kaXNhYmxlQWN0aXZlT25Ub3VjaC1JZVF3UGpjWjpub3QoLmRpc2FibGVBY3RpdmVTdGF0ZVN0eWxlcy1JZVF3UGpjWik6bm90KDpkaXNhYmxlZCk6YWN0aXZley0tdWktbGliLWxpZ2h0LWJ1dHRvbi1kZWZhdWx0LWNvbG9yLWJnOnZhcigtLWNvbG9yLWNvbnRhaW5lci1maWxsLXByaW1hcnktc3VjY2Vzcy1saWdodCk7LS11aS1saWItbGlnaHQtYnV0dG9uLWRlZmF1bHQtY29sb3ItY29udGVudDp2YXIoLS1jb2xvci1jb250ZW50LXByaW1hcnktc3VjY2Vzcy1ib2xkKTstLXVpLWxpYi1saWdodC1idXR0b24tZGVmYXVsdC1jb2xvci1ib3JkZXI6dmFyKC0tY29sb3ItY29udGFpbmVyLWZpbGwtcHJpbWFyeS1zdWNjZXNzLWxpZ2h0KX0ucXVpZXQtcHJpbWFyeS1JZVF3UGpjWi5ncmVlbi1JZVF3UGpjWi5kaXNhYmxlQWN0aXZlT25Ub3VjaC1JZVF3UGpjWjpub3QoLmRpc2FibGVBY3RpdmVTdGF0ZVN0eWxlcy1JZVF3UGpjWik6bm90KDpkaXNhYmxlZCk6YWN0aXZlLmdyb3VwZWQtSWVRd1BqY1p7dHJhbnNmb3JtOm5vbmV9fUBtZWRpYSAoYW55LWhvdmVyOmhvdmVyKXsucXVpZXQtcHJpbWFyeS1JZVF3UGpjWi5ncmVlbi1JZVF3UGpjWi53aXRoR3JvdXBlZC1JZVF3UGpjWi5xdWlldC1wcmltYXJ5LUllUXdQamNaOm5vdCguc2VsZWN0ZWQtSWVRd1BqY1opOm5vdCg6aG92ZXIpOm5vdCg6ZGlzYWJsZWQpey0tdWktbGliLWxpZ2h0LWJ1dHRvbi1kZWZhdWx0LWNvbG9yLWJnOiMwMDAwOy0tdWktbGliLWxpZ2h0LWJ1dHRvbi1kZWZhdWx0LWNvbG9yLWJvcmRlcjojMDAwMH19LnF1aWV0LXByaW1hcnktSWVRd1BqY1ouZ3JlZW4tSWVRd1BqY1o6ZGlzYWJsZWR7LS11aS1saWItbGlnaHQtYnV0dG9uLWRlZmF1bHQtY29sb3ItYmc6dmFyKC0tY29sb3ItYmFja2dyb3VuZC1kaXNhYmxlZCk7LS11aS1saWItbGlnaHQtYnV0dG9uLWRlZmF1bHQtY29sb3ItY29udGVudDp2YXIoLS1jb2xvci1idXR0b24tY29udGVudC1kaXNhYmxlZCk7LS11aS1saWItbGlnaHQtYnV0dG9uLWRlZmF1bHQtY29sb3ItYm9yZGVyOnZhcigtLWNvbG9yLWJ1dHRvbi1maWxsX2JvcmRlci1kaXNhYmxlZCk7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMCl9LnF1aWV0LXByaW1hcnktSWVRd1BqY1oucmVkLUllUXdQamNaey0tdWktbGliLWxpZ2h0LWJ1dHRvbi1kZWZhdWx0LWNvbG9yLWJnOnZhcigtLWNvbG9yLXN0YXRpYy10cmFuc3BhcmVudCk7LS11aS1saWItbGlnaHQtYnV0dG9uLWRlZmF1bHQtY29sb3ItY29udGVudDp2YXIoLS1jb2xvci1jb250ZW50LXByaW1hcnktZGFuZ2VyKTstLXVpLWxpYi1saWdodC1idXR0b24tZGVmYXVsdC1jb2xvci1ib3JkZXI6dmFyKC0tY29sb3Itc3RhdGljLXRyYW5zcGFyZW50KX1AbWVkaWEgbm90IChwb2ludGVyOmNvYXJzZSl7QG1lZGlhIChhbnktaG92ZXI6aG92ZXIpey5xdWlldC1wcmltYXJ5LUllUXdQamNaLnJlZC1JZVF3UGpjWjpob3ZlcnstLXVpLWxpYi1saWdodC1idXR0b24tZGVmYXVsdC1jb2xvci1iZzp2YXIoLS1jb2xvci1jb250YWluZXItZmlsbC1wcmltYXJ5LWRhbmdlci1leHRyYS1saWdodCk7LS11aS1saWItbGlnaHQtYnV0dG9uLWRlZmF1bHQtY29sb3ItY29udGVudDp2YXIoLS1jb2xvci1jb250ZW50LXByaW1hcnktbmVnYXRpdmUpOy0tdWktbGliLWxpZ2h0LWJ1dHRvbi1kZWZhdWx0LWNvbG9yLWJvcmRlcjp2YXIoLS1jb2xvci1jb250YWluZXItZmlsbC1wcmltYXJ5LWRhbmdlci1leHRyYS1saWdodCl9fX0ucXVpZXQtcHJpbWFyeS1JZVF3UGpjWi5yZWQtSWVRd1BqY1ouc2VsZWN0ZWQtSWVRd1BqY1p7LS11aS1saWItbGlnaHQtYnV0dG9uLWRlZmF1bHQtY29sb3ItYmc6dmFyKC0tY29sb3ItY29udGFpbmVyLWZpbGwtcHJpbWFyeS1kYW5nZXItZXh0cmEtbGlnaHQpOy0tdWktbGliLWxpZ2h0LWJ1dHRvbi1kZWZhdWx0LWNvbG9yLWJvcmRlcjp2YXIoLS1jb2xvci1jb250YWluZXItZmlsbC1wcmltYXJ5LWRhbmdlci1leHRyYS1saWdodCk7LS11aS1saWItbGlnaHQtYnV0dG9uLWRlZmF1bHQtY29sb3ItY29udGVudDp2YXIoLS1jb2xvci1jb250ZW50LXByaW1hcnktZGFuZ2VyKX1AbWVkaWEgKGFueS1ob3Zlcjpob3Zlcil7LnF1aWV0LXByaW1hcnktSWVRd1BqY1oucmVkLUllUXdQamNaLnNlbGVjdGVkLUllUXdQamNaOm5vdCguZ3JvdXBlZC1JZVF3UGpjWik6bm90KDpkaXNhYmxlZCk6aG92ZXJ7LS11aS1saWItbGlnaHQtYnV0dG9uLWRlZmF1bHQtY29sb3ItYmc6dmFyKC0tY29sb3ItY29udGFpbmVyLWZpbGwtcHJpbWFyeS1kYW5nZXItZXh0cmEtbGlnaHQpOy0tdWktbGliLWxpZ2h0LWJ1dHRvbi1kZWZhdWx0LWNvbG9yLWNvbnRlbnQ6dmFyKC0tY29sb3ItY29udGVudC1wcmltYXJ5LW5lZ2F0aXZlKTstLXVpLWxpYi1saWdodC1idXR0b24tZGVmYXVsdC1jb2xvci1ib3JkZXI6dmFyKC0tY29sb3ItY29udGFpbmVyLWZpbGwtcHJpbWFyeS1kYW5nZXItZXh0cmEtbGlnaHQpfX0ucXVpZXQtcHJpbWFyeS1JZVF3UGpjWi5yZWQtSWVRd1BqY1ouYWN0aXZlLUllUXdQamNaLC5xdWlldC1wcmltYXJ5LUllUXdQamNaLnJlZC1JZVF3UGpjWjpub3QoLmRpc2FibGVBY3RpdmVPblRvdWNoLUllUXdQamNaKTpub3QoLmRpc2FibGVBY3RpdmVTdGF0ZVN0eWxlcy1JZVF3UGpjWik6bm90KDpkaXNhYmxlZCk6YWN0aXZley0tdWktbGliLWxpZ2h0LWJ1dHRvbi1kZWZhdWx0LWNvbG9yLWJnOnZhcigtLWNvbG9yLWNvbnRhaW5lci1maWxsLXByaW1hcnktZGFuZ2VyLWxpZ2h0KTstLXVpLWxpYi1saWdodC1idXR0b24tZGVmYXVsdC1jb2xvci1jb250ZW50OnZhcigtLWNvbG9yLWNvbnRlbnQtcHJpbWFyeS1kYW5nZXItYm9sZCk7LS11aS1saWItbGlnaHQtYnV0dG9uLWRlZmF1bHQtY29sb3ItYm9yZGVyOnZhcigtLWNvbG9yLWNvbnRhaW5lci1maWxsLXByaW1hcnktZGFuZ2VyLWxpZ2h0KX0ucXVpZXQtcHJpbWFyeS1JZVF3UGpjWi5yZWQtSWVRd1BqY1ouYWN0aXZlLUllUXdQamNaLmdyb3VwZWQtSWVRd1BqY1osLnF1aWV0LXByaW1hcnktSWVRd1BqY1oucmVkLUllUXdQamNaOm5vdCguZGlzYWJsZUFjdGl2ZU9uVG91Y2gtSWVRd1BqY1opOm5vdCguZGlzYWJsZUFjdGl2ZVN0YXRlU3R5bGVzLUllUXdQamNaKTpub3QoOmRpc2FibGVkKTphY3RpdmUuZ3JvdXBlZC1JZVF3UGpjWnt0cmFuc2Zvcm06bm9uZX1AbWVkaWEgbm90IChwb2ludGVyOmNvYXJzZSl7LnF1aWV0LXByaW1hcnktSWVRd1BqY1oucmVkLUllUXdQamNaLmRpc2FibGVBY3RpdmVPblRvdWNoLUllUXdQamNaOm5vdCguZGlzYWJsZUFjdGl2ZVN0YXRlU3R5bGVzLUllUXdQamNaKTpub3QoOmRpc2FibGVkKTphY3RpdmV7LS11aS1saWItbGlnaHQtYnV0dG9uLWRlZmF1bHQtY29sb3ItYmc6dmFyKC0tY29sb3ItY29udGFpbmVyLWZpbGwtcHJpbWFyeS1kYW5nZXItbGlnaHQpOy0tdWktbGliLWxpZ2h0LWJ1dHRvbi1kZWZhdWx0LWNvbG9yLWNvbnRlbnQ6dmFyKC0tY29sb3ItY29udGVudC1wcmltYXJ5LWRhbmdlci1ib2xkKTstLXVpLWxpYi1saWdodC1idXR0b24tZGVmYXVsdC1jb2xvci1ib3JkZXI6dmFyKC0tY29sb3ItY29udGFpbmVyLWZpbGwtcHJpbWFyeS1kYW5nZXItbGlnaHQpfS5xdWlldC1wcmltYXJ5LUllUXdQamNaLnJlZC1JZVF3UGpjWi5kaXNhYmxlQWN0aXZlT25Ub3VjaC1JZVF3UGpjWjpub3QoLmRpc2FibGVBY3RpdmVTdGF0ZVN0eWxlcy1JZVF3UGpjWik6bm90KDpkaXNhYmxlZCk6YWN0aXZlLmdyb3VwZWQtSWVRd1BqY1p7dHJhbnNmb3JtOm5vbmV9fUBtZWRpYSAoYW55LWhvdmVyOmhvdmVyKXsucXVpZXQtcHJpbWFyeS1JZVF3UGpjWi5yZWQtSWVRd1BqY1oud2l0aEdyb3VwZWQtSWVRd1BqY1oucXVpZXQtcHJpbWFyeS1JZVF3UGpjWjpub3QoLnNlbGVjdGVkLUllUXdQamNaKTpub3QoOmhvdmVyKTpub3QoOmRpc2FibGVkKXstLXVpLWxpYi1saWdodC1idXR0b24tZGVmYXVsdC1jb2xvci1iZzojMDAwMDstLXVpLWxpYi1saWdodC1idXR0b24tZGVmYXVsdC1jb2xvci1ib3JkZXI6IzAwMDB9fS5xdWlldC1wcmltYXJ5LUllUXdQamNaLnJlZC1JZVF3UGpjWjpkaXNhYmxlZHstLXVpLWxpYi1saWdodC1idXR0b24tZGVmYXVsdC1jb2xvci1iZzp2YXIoLS1jb2xvci1idXR0b24tZmlsbF9ib3JkZXItZGlzYWJsZWQpOy0tdWktbGliLWxpZ2h0LWJ1dHRvbi1kZWZhdWx0LWNvbG9yLWNvbnRlbnQ6dmFyKC0tY29sb3ItYnV0dG9uLWNvbnRlbnQtZGlzYWJsZWQpOy0tdWktbGliLWxpZ2h0LWJ1dHRvbi1kZWZhdWx0LWNvbG9yLWJvcmRlcjp2YXIoLS1jb2xvci1idXR0b24tZmlsbF9ib3JkZXItZGlzYWJsZWQpO3RyYW5zZm9ybTp0cmFuc2xhdGVZKDApfS5xdWlldC1wcmltYXJ5LUllUXdQamNaLmJsdWUtSWVRd1BqY1p7LS11aS1saWItbGlnaHQtYnV0dG9uLWRlZmF1bHQtY29sb3ItYmc6dmFyKC0tY29sb3Itc3RhdGljLXRyYW5zcGFyZW50KTstLXVpLWxpYi1saWdodC1idXR0b24tZGVmYXVsdC1jb2xvci1jb250ZW50OnZhcigtLWNvbG9yLWNvbnRlbnQtcHJpbWFyeS1hY2NlbnQpOy0tdWktbGliLWxpZ2h0LWJ1dHRvbi1kZWZhdWx0LWNvbG9yLWJvcmRlcjp2YXIoLS1jb2xvci1zdGF0aWMtdHJhbnNwYXJlbnQpfUBtZWRpYSBub3QgKHBvaW50ZXI6Y29hcnNlKXtAbWVkaWEgKGFueS1ob3Zlcjpob3Zlcil7LnF1aWV0LXByaW1hcnktSWVRd1BqY1ouYmx1ZS1JZVF3UGpjWjpob3ZlcnstLXVpLWxpYi1saWdodC1idXR0b24tZGVmYXVsdC1jb2xvci1iZzp2YXIoLS1jb2xvci1jb250YWluZXItZmlsbC1wcmltYXJ5LWFjY2VudC1leHRyYS1saWdodCk7LS11aS1saWItbGlnaHQtYnV0dG9uLWRlZmF1bHQtY29sb3ItY29udGVudDp2YXIoLS1jb2xvci1jb250ZW50LXByaW1hcnktYWNjZW50LXNlbWktYm9sZCk7LS11aS1saWItbGlnaHQtYnV0dG9uLWRlZmF1bHQtY29sb3ItYm9yZGVyOnZhcigtLWNvbG9yLWNvbnRhaW5lci1maWxsLXByaW1hcnktYWNjZW50LWV4dHJhLWxpZ2h0KX19fS5xdWlldC1wcmltYXJ5LUllUXdQamNaLmJsdWUtSWVRd1BqY1ouc2VsZWN0ZWQtSWVRd1BqY1p7LS11aS1saWItbGlnaHQtYnV0dG9uLWRlZmF1bHQtY29sb3ItYmc6dmFyKC0tY29sb3ItY29udGFpbmVyLWZpbGwtcHJpbWFyeS1hY2NlbnQtZXh0cmEtbGlnaHQpOy0tdWktbGliLWxpZ2h0LWJ1dHRvbi1kZWZhdWx0LWNvbG9yLWJvcmRlcjp2YXIoLS1jb2xvci1jb250YWluZXItZmlsbC1wcmltYXJ5LWFjY2VudC1leHRyYS1saWdodCk7LS11aS1saWItbGlnaHQtYnV0dG9uLWRlZmF1bHQtY29sb3ItY29udGVudDp2YXIoLS1jb2xvci1jb250ZW50LXByaW1hcnktYWNjZW50KX1AbWVkaWEgKGFueS1ob3Zlcjpob3Zlcil7LnF1aWV0LXByaW1hcnktSWVRd1BqY1ouYmx1ZS1JZVF3UGpjWi5zZWxlY3RlZC1JZVF3UGpjWjpub3QoLmdyb3VwZWQtSWVRd1BqY1opOm5vdCg6ZGlzYWJsZWQpOmhvdmVyey0tdWktbGliLWxpZ2h0LWJ1dHRvbi1kZWZhdWx0LWNvbG9yLWJnOnZhcigtLWNvbG9yLWNvbnRhaW5lci1maWxsLXByaW1hcnktYWNjZW50LWV4dHJhLWxpZ2h0KTstLXVpLWxpYi1saWdodC1idXR0b24tZGVmYXVsdC1jb2xvci1jb250ZW50OnZhcigtLWNvbG9yLWNvbnRlbnQtcHJpbWFyeS1hY2NlbnQtc2VtaS1ib2xkKTstLXVpLWxpYi1saWdodC1idXR0b24tZGVmYXVsdC1jb2xvci1ib3JkZXI6dmFyKC0tY29sb3ItY29udGFpbmVyLWZpbGwtcHJpbWFyeS1hY2NlbnQtZXh0cmEtbGlnaHQpfX0ucXVpZXQtcHJpbWFyeS1JZVF3UGpjWi5ibHVlLUllUXdQamNaLmFjdGl2ZS1JZVF3UGpjWiwucXVpZXQtcHJpbWFyeS1JZVF3UGpjWi5ibHVlLUllUXdQamNaOm5vdCguZGlzYWJsZUFjdGl2ZU9uVG91Y2gtSWVRd1BqY1opOm5vdCguZGlzYWJsZUFjdGl2ZVN0YXRlU3R5bGVzLUllUXdQamNaKTpub3QoOmRpc2FibGVkKTphY3RpdmV7LS11aS1saWItbGlnaHQtYnV0dG9uLWRlZmF1bHQtY29sb3ItYmc6dmFyKC0tY29sb3ItY29udGFpbmVyLWZpbGwtcHJpbWFyeS1hY2NlbnQtbGlnaHQpOy0tdWktbGliLWxpZ2h0LWJ1dHRvbi1kZWZhdWx0LWNvbG9yLWNvbnRlbnQ6dmFyKC0tY29sb3ItY29udGVudC1wcmltYXJ5LWFjY2VudC1leHRyYS1ib2xkKTstLXVpLWxpYi1saWdodC1idXR0b24tZGVmYXVsdC1jb2xvci1ib3JkZXI6dmFyKC0tY29sb3ItY29udGFpbmVyLWZpbGwtcHJpbWFyeS1hY2NlbnQtbGlnaHQpfS5xdWlldC1wcmltYXJ5LUllUXdQamNaLmJsdWUtSWVRd1BqY1ouYWN0aXZlLUllUXdQamNaLmdyb3VwZWQtSWVRd1BqY1osLnF1aWV0LXByaW1hcnktSWVRd1BqY1ouYmx1ZS1JZVF3UGpjWjpub3QoLmRpc2FibGVBY3RpdmVPblRvdWNoLUllUXdQamNaKTpub3QoLmRpc2FibGVBY3RpdmVTdGF0ZVN0eWxlcy1JZVF3UGpjWik6bm90KDpkaXNhYmxlZCk6YWN0aXZlLmdyb3VwZWQtSWVRd1BqY1p7dHJhbnNmb3JtOm5vbmV9QG1lZGlhIG5vdCAocG9pbnRlcjpjb2Fyc2Upey5xdWlldC1wcmltYXJ5LUllUXdQamNaLmJsdWUtSWVRd1BqY1ouZGlzYWJsZUFjdGl2ZU9uVG91Y2gtSWVRd1BqY1o6bm90KC5kaXNhYmxlQWN0aXZlU3RhdGVTdHlsZXMtSWVRd1BqY1opOm5vdCg6ZGlzYWJsZWQpOmFjdGl2ZXstLXVpLWxpYi1saWdodC1idXR0b24tZGVmYXVsdC1jb2xvci1iZzp2YXIoLS1jb2xvci1jb250YWluZXItZmlsbC1wcmltYXJ5LWFjY2VudC1saWdodCk7LS11aS1saWItbGlnaHQtYnV0dG9uLWRlZmF1bHQtY29sb3ItY29udGVudDp2YXIoLS1jb2xvci1jb250ZW50LXByaW1hcnktYWNjZW50LWV4dHJhLWJvbGQpOy0tdWktbGliLWxpZ2h0LWJ1dHRvbi1kZWZhdWx0LWNvbG9yLWJvcmRlcjp2YXIoLS1jb2xvci1jb250YWluZXItZmlsbC1wcmltYXJ5LWFjY2VudC1saWdodCl9LnF1aWV0LXByaW1hcnktSWVRd1BqY1ouYmx1ZS1JZVF3UGpjWi5kaXNhYmxlQWN0aXZlT25Ub3VjaC1JZVF3UGpjWjpub3QoLmRpc2FibGVBY3RpdmVTdGF0ZVN0eWxlcy1JZVF3UGpjWik6bm90KDpkaXNhYmxlZCk6YWN0aXZlLmdyb3VwZWQtSWVRd1BqY1p7dHJhbnNmb3JtOm5vbmV9fUBtZWRpYSAoYW55LWhvdmVyOmhvdmVyKXsucXVpZXQtcHJpbWFyeS1JZVF3UGpjWi5ibHVlLUllUXdQamNaLndpdGhHcm91cGVkLUllUXdQamNaLnF1aWV0LXByaW1hcnktSWVRd1BqY1o6bm90KC5zZWxlY3RlZC1JZVF3UGpjWik6bm90KDpob3Zlcik6bm90KDpkaXNhYmxlZCl7LS11aS1saWItbGlnaHQtYnV0dG9uLWRlZmF1bHQtY29sb3ItYmc6IzAwMDA7LS11aS1saWItbGlnaHQtYnV0dG9uLWRlZmF1bHQtY29sb3ItYm9yZGVyOiMwMDAwfX0ucXVpZXQtcHJpbWFyeS1JZVF3UGpjWi5ibHVlLUllUXdQamNaOmRpc2FibGVkey0tdWktbGliLWxpZ2h0LWJ1dHRvbi1kZWZhdWx0LWNvbG9yLWJnOnZhcigtLWNvbG9yLWJ1dHRvbi1maWxsX2JvcmRlci1kaXNhYmxlZCk7LS11aS1saWItbGlnaHQtYnV0dG9uLWRlZmF1bHQtY29sb3ItY29udGVudDp2YXIoLS1jb2xvci1idXR0b24tY29udGVudC1kaXNhYmxlZCk7LS11aS1saWItbGlnaHQtYnV0dG9uLWRlZmF1bHQtY29sb3ItYm9yZGVyOnZhcigtLWNvbG9yLWJ1dHRvbi1maWxsX2JvcmRlci1kaXNhYmxlZCk7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMCl9LnNlY29uZGFyeS1JZVF3UGpjWi5ncmF5LUllUXdQamNaey0tdWktbGliLWxpZ2h0LWJ1dHRvbi1kZWZhdWx0LWNvbG9yLWJnOnZhcigtLWNvbG9yLXN0YXRpYy10cmFuc3BhcmVudCk7LS11aS1saWItbGlnaHQtYnV0dG9uLWRlZmF1bHQtY29sb3ItY29udGVudDp2YXIoLS1jb2xvci1idXR0b24tY29udGVudC1zZWNvbmRhcnktbmV1dHJhbC1kZWZhdWx0KTstLXVpLWxpYi1saWdodC1idXR0b24tZGVmYXVsdC1jb2xvci1ib3JkZXI6dmFyKC0tY29sb3ItYm9yZGVyLXByaW1hcnktbmV1dHJhbC1saWdodCl9QG1lZGlhIG5vdCAocG9pbnRlcjpjb2Fyc2Upe0BtZWRpYSAoYW55LWhvdmVyOmhvdmVyKXsuc2Vjb25kYXJ5LUllUXdQamNaLmdyYXktSWVRd1BqY1o6aG92ZXJ7LS11aS1saWItbGlnaHQtYnV0dG9uLWRlZmF1bHQtY29sb3ItYmc6dmFyKC0tY29sb3ItYnV0dG9uLWZpbGxfYm9yZGVyLXNlY29uZGFyeS1uZXV0cmFsLWhvdmVyKTstLXVpLWxpYi1saWdodC1idXR0b24tZGVmYXVsdC1jb2xvci1jb250ZW50OnZhcigtLWNvbG9yLWJ1dHRvbi1jb250ZW50LXNlY29uZGFyeS1uZXV0cmFsLWhvdmVyKTstLXVpLWxpYi1saWdodC1idXR0b24tZGVmYXVsdC1jb2xvci1ib3JkZXI6dmFyKC0tY29sb3ItY29udGFpbmVyLWZpbGwtcHJpbWFyeS1uZXV0cmFsLWV4dHJhLWxpZ2h0KX19fS5zZWNvbmRhcnktSWVRd1BqY1ouZ3JheS1JZVF3UGpjWi5zZWxlY3RlZC1JZVF3UGpjWnstLXVpLWxpYi1saWdodC1idXR0b24tZGVmYXVsdC1jb2xvci1iZzp2YXIoLS1jb2xvci1idXR0b24tZmlsbF9ib3JkZXItc2Vjb25kYXJ5LW5ldXRyYWwtaXMtc2VsZWN0ZWQpOy0tdWktbGliLWxpZ2h0LWJ1dHRvbi1kZWZhdWx0LWNvbG9yLWJvcmRlcjp2YXIoLS1jb2xvci1jb250YWluZXItZmlsbC1wcmltYXJ5LW5ldXRyYWwtZXh0cmEtbGlnaHQpOy0tdWktbGliLWxpZ2h0LWJ1dHRvbi1kZWZhdWx0LWNvbG9yLWNvbnRlbnQ6dmFyKC0tY29sb3ItYnV0dG9uLWNvbnRlbnQtc2Vjb25kYXJ5LW5ldXRyYWwtaXMtc2VsZWN0ZWQpfUBtZWRpYSAoYW55LWhvdmVyOmhvdmVyKXsuc2Vjb25kYXJ5LUllUXdQamNaLmdyYXktSWVRd1BqY1ouc2VsZWN0ZWQtSWVRd1BqY1o6bm90KC5ncm91cGVkLUllUXdQamNaKTpub3QoOmRpc2FibGVkKTpob3ZlcnstLXVpLWxpYi1saWdodC1idXR0b24tZGVmYXVsdC1jb2xvci1iZzp2YXIoLS1jb2xvci1idXR0b24tZmlsbF9ib3JkZXItc2Vjb25kYXJ5LW5ldXRyYWwtaG92ZXIpOy0tdWktbGliLWxpZ2h0LWJ1dHRvbi1kZWZhdWx0LWNvbG9yLWNvbnRlbnQ6dmFyKC0tY29sb3ItYnV0dG9uLWNvbnRlbnQtc2Vjb25kYXJ5LW5ldXRyYWwtaG92ZXIpOy0tdWktbGliLWxpZ2h0LWJ1dHRvbi1kZWZhdWx0LWNvbG9yLWJvcmRlcjp2YXIoLS1jb2xvci1jb250YWluZXItZmlsbC1wcmltYXJ5LW5ldXRyYWwtZXh0cmEtbGlnaHQpfX0uc2Vjb25kYXJ5LUllUXdQamNaLmdyYXktSWVRd1BqY1ouYWN0aXZlLUllUXdQamNaLC5zZWNvbmRhcnktSWVRd1BqY1ouZ3JheS1JZVF3UGpjWjpub3QoLmRpc2FibGVBY3RpdmVPblRvdWNoLUllUXdQamNaKTpub3QoLmRpc2FibGVBY3RpdmVTdGF0ZVN0eWxlcy1JZVF3UGpjWik6bm90KDpkaXNhYmxlZCk6YWN0aXZley0tdWktbGliLWxpZ2h0LWJ1dHRvbi1kZWZhdWx0LWNvbG9yLWJnOnZhcigtLWNvbG9yLWJ1dHRvbi1maWxsX2JvcmRlci1zZWNvbmRhcnktbmV1dHJhbC1hY3RpdmUpOy0tdWktbGliLWxpZ2h0LWJ1dHRvbi1kZWZhdWx0LWNvbG9yLWNvbnRlbnQ6dmFyKC0tY29sb3ItYnV0dG9uLWNvbnRlbnQtc2Vjb25kYXJ5LW5ldXRyYWwtYWN0aXZlKTstLXVpLWxpYi1saWdodC1idXR0b24tZGVmYXVsdC1jb2xvci1ib3JkZXI6dmFyKC0tY29sb3ItY29udGFpbmVyLWZpbGwtcHJpbWFyeS1uZXV0cmFsLWxpZ2h0KX0uc2Vjb25kYXJ5LUllUXdQamNaLmdyYXktSWVRd1BqY1ouYWN0aXZlLUllUXdQamNaLmdyb3VwZWQtSWVRd1BqY1osLnNlY29uZGFyeS1JZVF3UGpjWi5ncmF5LUllUXdQamNaOm5vdCguZGlzYWJsZUFjdGl2ZU9uVG91Y2gtSWVRd1BqY1opOm5vdCguZGlzYWJsZUFjdGl2ZVN0YXRlU3R5bGVzLUllUXdQamNaKTpub3QoOmRpc2FibGVkKTphY3RpdmUuZ3JvdXBlZC1JZVF3UGpjWnt0cmFuc2Zvcm06bm9uZX1AbWVkaWEgbm90IChwb2ludGVyOmNvYXJzZSl7LnNlY29uZGFyeS1JZVF3UGpjWi5ncmF5LUllUXdQamNaLmRpc2FibGVBY3RpdmVPblRvdWNoLUllUXdQamNaOm5vdCguZGlzYWJsZUFjdGl2ZVN0YXRlU3R5bGVzLUllUXdQamNaKTpub3QoOmRpc2FibGVkKTphY3RpdmV7LS11aS1saWItbGlnaHQtYnV0dG9uLWRlZmF1bHQtY29sb3ItYmc6dmFyKC0tY29sb3ItYnV0dG9uLWZpbGxfYm9yZGVyLXNlY29uZGFyeS1uZXV0cmFsLWFjdGl2ZSk7LS11aS1saWItbGlnaHQtYnV0dG9uLWRlZmF1bHQtY29sb3ItY29udGVudDp2YXIoLS1jb2xvci1idXR0b24tY29udGVudC1zZWNvbmRhcnktbmV1dHJhbC1hY3RpdmUpOy0tdWktbGliLWxpZ2h0LWJ1dHRvbi1kZWZhdWx0LWNvbG9yLWJvcmRlcjp2YXIoLS1jb2xvci1jb250YWluZXItZmlsbC1wcmltYXJ5LW5ldXRyYWwtbGlnaHQpfS5zZWNvbmRhcnktSWVRd1BqY1ouZ3JheS1JZVF3UGpjWi5kaXNhYmxlQWN0aXZlT25Ub3VjaC1JZVF3UGpjWjpub3QoLmRpc2FibGVBY3RpdmVTdGF0ZVN0eWxlcy1JZVF3UGpjWik6bm90KDpkaXNhYmxlZCk6YWN0aXZlLmdyb3VwZWQtSWVRd1BqY1p7dHJhbnNmb3JtOm5vbmV9fUBtZWRpYSAoYW55LWhvdmVyOmhvdmVyKXsuc2Vjb25kYXJ5LUllUXdQamNaLmdyYXktSWVRd1BqY1oud2l0aEdyb3VwZWQtSWVRd1BqY1oucXVpZXQtcHJpbWFyeS1JZVF3UGpjWjpub3QoLnNlbGVjdGVkLUllUXdQamNaKTpub3QoOmhvdmVyKTpub3QoOmRpc2FibGVkKXstLXVpLWxpYi1saWdodC1idXR0b24tZGVmYXVsdC1jb2xvci1iZzojMDAwMDstLXVpLWxpYi1saWdodC1idXR0b24tZGVmYXVsdC1jb2xvci1ib3JkZXI6IzAwMDB9fS5zZWNvbmRhcnktSWVRd1BqY1ouZ3JheS1JZVF3UGpjWjpkaXNhYmxlZHstLXVpLWxpYi1saWdodC1idXR0b24tZGVmYXVsdC1jb2xvci1iZzp2YXIoLS1jb2xvci1zdGF0aWMtdHJhbnNwYXJlbnQpOy0tdWktbGliLWxpZ2h0LWJ1dHRvbi1kZWZhdWx0LWNvbG9yLWNvbnRlbnQ6dmFyKC0tY29sb3ItYnV0dG9uLWNvbnRlbnQtZGlzYWJsZWQpOy0tdWktbGliLWxpZ2h0LWJ1dHRvbi1kZWZhdWx0LWNvbG9yLWJvcmRlcjp2YXIoLS1jb2xvci1ib3JkZXItcHJpbWFyeS1uZXV0cmFsLWxpZ2h0KTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgwKX0uc2Vjb25kYXJ5LUllUXdQamNaLmdyZWVuLUllUXdQamNaey0tdWktbGliLWxpZ2h0LWJ1dHRvbi1kZWZhdWx0LWNvbG9yLWJnOnZhcigtLWNvbG9yLXN0YXRpYy10cmFuc3BhcmVudCk7LS11aS1saWItbGlnaHQtYnV0dG9uLWRlZmF1bHQtY29sb3ItY29udGVudDp2YXIoLS1jb2xvci1idXR0b24tY29udGVudC1zZWNvbmRhcnktc3VjY2Vzcy1kZWZhdWx0KTstLXVpLWxpYi1saWdodC1idXR0b24tZGVmYXVsdC1jb2xvci1ib3JkZXI6dmFyKC0tY29sb3ItY29udGFpbmVyLWZpbGwtcHJpbWFyeS1zdWNjZXNzLWxpZ2h0KX1AbWVkaWEgbm90IChwb2ludGVyOmNvYXJzZSl7QG1lZGlhIChhbnktaG92ZXI6aG92ZXIpey5zZWNvbmRhcnktSWVRd1BqY1ouZ3JlZW4tSWVRd1BqY1o6aG92ZXJ7LS11aS1saWItbGlnaHQtYnV0dG9uLWRlZmF1bHQtY29sb3ItYmc6dmFyKC0tY29sb3ItY29udGFpbmVyLWZpbGwtcHJpbWFyeS1zdWNjZXNzLWV4dHJhLWxpZ2h0KTstLXVpLWxpYi1saWdodC1idXR0b24tZGVmYXVsdC1jb2xvci1jb250ZW50OnZhcigtLWNvbG9yLWNvbnRlbnQtcHJpbWFyeS1wb3NpdGl2ZSk7LS11aS1saWItbGlnaHQtYnV0dG9uLWRlZmF1bHQtY29sb3ItYm9yZGVyOnZhcigtLWNvbG9yLWNvbnRhaW5lci1maWxsLXByaW1hcnktc3VjY2Vzcy1leHRyYS1saWdodCl9fX0uc2Vjb25kYXJ5LUllUXdQamNaLmdyZWVuLUllUXdQamNaLnNlbGVjdGVkLUllUXdQamNaey0tdWktbGliLWxpZ2h0LWJ1dHRvbi1kZWZhdWx0LWNvbG9yLWJnOnZhcigtLWNvbG9yLWNvbnRhaW5lci1maWxsLXByaW1hcnktc3VjY2Vzcy1leHRyYS1saWdodCk7LS11aS1saWItbGlnaHQtYnV0dG9uLWRlZmF1bHQtY29sb3ItYm9yZGVyOnZhcigtLWNvbG9yLWNvbnRhaW5lci1maWxsLXByaW1hcnktc3VjY2Vzcy1leHRyYS1saWdodCk7LS11aS1saWItbGlnaHQtYnV0dG9uLWRlZmF1bHQtY29sb3ItY29udGVudDp2YXIoLS1jb2xvci1jb250ZW50LXByaW1hcnktc3VjY2Vzcyl9QG1lZGlhIChhbnktaG92ZXI6aG92ZXIpey5zZWNvbmRhcnktSWVRd1BqY1ouZ3JlZW4tSWVRd1BqY1ouc2VsZWN0ZWQtSWVRd1BqY1o6bm90KC5ncm91cGVkLUllUXdQamNaKTpub3QoOmRpc2FibGVkKTpob3ZlcnstLXVpLWxpYi1saWdodC1idXR0b24tZGVmYXVsdC1jb2xvci1iZzp2YXIoLS1jb2xvci1jb250YWluZXItZmlsbC1wcmltYXJ5LXN1Y2Nlc3MtZXh0cmEtbGlnaHQpOy0tdWktbGliLWxpZ2h0LWJ1dHRvbi1kZWZhdWx0LWNvbG9yLWNvbnRlbnQ6dmFyKC0tY29sb3ItY29udGVudC1wcmltYXJ5LXBvc2l0aXZlKTstLXVpLWxpYi1saWdodC1idXR0b24tZGVmYXVsdC1jb2xvci1ib3JkZXI6dmFyKC0tY29sb3ItY29udGFpbmVyLWZpbGwtcHJpbWFyeS1zdWNjZXNzLWV4dHJhLWxpZ2h0KX19LnNlY29uZGFyeS1JZVF3UGpjWi5ncmVlbi1JZVF3UGpjWi5hY3RpdmUtSWVRd1BqY1osLnNlY29uZGFyeS1JZVF3UGpjWi5ncmVlbi1JZVF3UGpjWjpub3QoLmRpc2FibGVBY3RpdmVPblRvdWNoLUllUXdQamNaKTpub3QoLmRpc2FibGVBY3RpdmVTdGF0ZVN0eWxlcy1JZVF3UGpjWik6bm90KDpkaXNhYmxlZCk6YWN0aXZley0tdWktbGliLWxpZ2h0LWJ1dHRvbi1kZWZhdWx0LWNvbG9yLWJnOnZhcigtLWNvbG9yLWNvbnRhaW5lci1maWxsLXByaW1hcnktc3VjY2Vzcy1saWdodCk7LS11aS1saWItbGlnaHQtYnV0dG9uLWRlZmF1bHQtY29sb3ItY29udGVudDp2YXIoLS1jb2xvci1jb250ZW50LXByaW1hcnktc3VjY2Vzcy1ib2xkKTstLXVpLWxpYi1saWdodC1idXR0b24tZGVmYXVsdC1jb2xvci1ib3JkZXI6dmFyKC0tY29sb3ItY29udGFpbmVyLWZpbGwtcHJpbWFyeS1zdWNjZXNzLWxpZ2h0KX0uc2Vjb25kYXJ5LUllUXdQamNaLmdyZWVuLUllUXdQamNaLmFjdGl2ZS1JZVF3UGpjWi5ncm91cGVkLUllUXdQamNaLC5zZWNvbmRhcnktSWVRd1BqY1ouZ3JlZW4tSWVRd1BqY1o6bm90KC5kaXNhYmxlQWN0aXZlT25Ub3VjaC1JZVF3UGpjWik6bm90KC5kaXNhYmxlQWN0aXZlU3RhdGVTdHlsZXMtSWVRd1BqY1opOm5vdCg6ZGlzYWJsZWQpOmFjdGl2ZS5ncm91cGVkLUllUXdQamNae3RyYW5zZm9ybTpub25lfUBtZWRpYSBub3QgKHBvaW50ZXI6Y29hcnNlKXsuc2Vjb25kYXJ5LUllUXdQamNaLmdyZWVuLUllUXdQamNaLmRpc2FibGVBY3RpdmVPblRvdWNoLUllUXdQamNaOm5vdCguZGlzYWJsZUFjdGl2ZVN0YXRlU3R5bGVzLUllUXdQamNaKTpub3QoOmRpc2FibGVkKTphY3RpdmV7LS11aS1saWItbGlnaHQtYnV0dG9uLWRlZmF1bHQtY29sb3ItYmc6dmFyKC0tY29sb3ItY29udGFpbmVyLWZpbGwtcHJpbWFyeS1zdWNjZXNzLWxpZ2h0KTstLXVpLWxpYi1saWdodC1idXR0b24tZGVmYXVsdC1jb2xvci1jb250ZW50OnZhcigtLWNvbG9yLWNvbnRlbnQtcHJpbWFyeS1zdWNjZXNzLWJvbGQpOy0tdWktbGliLWxpZ2h0LWJ1dHRvbi1kZWZhdWx0LWNvbG9yLWJvcmRlcjp2YXIoLS1jb2xvci1jb250YWluZXItZmlsbC1wcmltYXJ5LXN1Y2Nlc3MtbGlnaHQpfS5zZWNvbmRhcnktSWVRd1BqY1ouZ3JlZW4tSWVRd1BqY1ouZGlzYWJsZUFjdGl2ZU9uVG91Y2gtSWVRd1BqY1o6bm90KC5kaXNhYmxlQWN0aXZlU3RhdGVTdHlsZXMtSWVRd1BqY1opOm5vdCg6ZGlzYWJsZWQpOmFjdGl2ZS5ncm91cGVkLUllUXdQamNae3RyYW5zZm9ybTpub25lfX1AbWVkaWEgKGFueS1ob3Zlcjpob3Zlcil7LnNlY29uZGFyeS1JZVF3UGpjWi5ncmVlbi1JZVF3UGpjWi53aXRoR3JvdXBlZC1JZVF3UGpjWi5xdWlldC1wcmltYXJ5LUllUXdQamNaOm5vdCguc2VsZWN0ZWQtSWVRd1BqY1opOm5vdCg6aG92ZXIpOm5vdCg6ZGlzYWJsZWQpey0tdWktbGliLWxpZ2h0LWJ1dHRvbi1kZWZhdWx0LWNvbG9yLWJnOiMwMDAwOy0tdWktbGliLWxpZ2h0LWJ1dHRvbi1kZWZhdWx0LWNvbG9yLWJvcmRlcjojMDAwMH19LnNlY29uZGFyeS1JZVF3UGpjWi5ncmVlbi1JZVF3UGpjWjpkaXNhYmxlZHstLXVpLWxpYi1saWdodC1idXR0b24tZGVmYXVsdC1jb2xvci1iZzp2YXIoLS1jb2xvci1zdGF0aWMtdHJhbnNwYXJlbnQpOy0tdWktbGliLWxpZ2h0LWJ1dHRvbi1kZWZhdWx0LWNvbG9yLWNvbnRlbnQ6dmFyKC0tY29sb3ItYnV0dG9uLWNvbnRlbnQtZGlzYWJsZWQpOy0tdWktbGliLWxpZ2h0LWJ1dHRvbi1kZWZhdWx0LWNvbG9yLWJvcmRlcjp2YXIoLS1jb2xvci1ib3JkZXItcHJpbWFyeS1uZXV0cmFsLWxpZ2h0KTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgwKX0uc2Vjb25kYXJ5LUllUXdQamNaLnJlZC1JZVF3UGpjWnstLXVpLWxpYi1saWdodC1idXR0b24tZGVmYXVsdC1jb2xvci1iZzp2YXIoLS1jb2xvci1zdGF0aWMtdHJhbnNwYXJlbnQpOy0tdWktbGliLWxpZ2h0LWJ1dHRvbi1kZWZhdWx0LWNvbG9yLWNvbnRlbnQ6dmFyKC0tY29sb3ItYnV0dG9uLWNvbnRlbnQtc2Vjb25kYXJ5LWRhbmdlci1kZWZhdWx0KTstLXVpLWxpYi1saWdodC1idXR0b24tZGVmYXVsdC1jb2xvci1ib3JkZXI6dmFyKC0tY29sb3ItY29udGFpbmVyLWZpbGwtcHJpbWFyeS1kYW5nZXItbGlnaHQpfUBtZWRpYSBub3QgKHBvaW50ZXI6Y29hcnNlKXtAbWVkaWEgKGFueS1ob3Zlcjpob3Zlcil7LnNlY29uZGFyeS1JZVF3UGpjWi5yZWQtSWVRd1BqY1o6aG92ZXJ7LS11aS1saWItbGlnaHQtYnV0dG9uLWRlZmF1bHQtY29sb3ItYmc6dmFyKC0tY29sb3ItY29udGFpbmVyLWZpbGwtcHJpbWFyeS1kYW5nZXItZXh0cmEtbGlnaHQpOy0tdWktbGliLWxpZ2h0LWJ1dHRvbi1kZWZhdWx0LWNvbG9yLWNvbnRlbnQ6dmFyKC0tY29sb3ItY29udGVudC1wcmltYXJ5LW5lZ2F0aXZlKTstLXVpLWxpYi1saWdodC1idXR0b24tZGVmYXVsdC1jb2xvci1ib3JkZXI6dmFyKC0tY29sb3ItY29udGFpbmVyLWZpbGwtcHJpbWFyeS1kYW5nZXItZXh0cmEtbGlnaHQpfX19LnNlY29uZGFyeS1JZVF3UGpjWi5yZWQtSWVRd1BqY1ouc2VsZWN0ZWQtSWVRd1BqY1p7LS11aS1saWItbGlnaHQtYnV0dG9uLWRlZmF1bHQtY29sb3ItYmc6dmFyKC0tY29sb3ItY29udGFpbmVyLWZpbGwtcHJpbWFyeS1kYW5nZXItZXh0cmEtbGlnaHQpOy0tdWktbGliLWxpZ2h0LWJ1dHRvbi1kZWZhdWx0LWNvbG9yLWJvcmRlcjp2YXIoLS1jb2xvci1jb250YWluZXItZmlsbC1wcmltYXJ5LWRhbmdlci1leHRyYS1saWdodCk7LS11aS1saWItbGlnaHQtYnV0dG9uLWRlZmF1bHQtY29sb3ItY29udGVudDp2YXIoLS1jb2xvci1jb250ZW50LXByaW1hcnktZGFuZ2VyKX1AbWVkaWEgKGFueS1ob3Zlcjpob3Zlcil7LnNlY29uZGFyeS1JZVF3UGpjWi5yZWQtSWVRd1BqY1ouc2VsZWN0ZWQtSWVRd1BqY1o6bm90KC5ncm91cGVkLUllUXdQamNaKTpub3QoOmRpc2FibGVkKTpob3ZlcnstLXVpLWxpYi1saWdodC1idXR0b24tZGVmYXVsdC1jb2xvci1iZzp2YXIoLS1jb2xvci1jb250YWluZXItZmlsbC1wcmltYXJ5LWRhbmdlci1leHRyYS1saWdodCk7LS11aS1saWItbGlnaHQtYnV0dG9uLWRlZmF1bHQtY29sb3ItY29udGVudDp2YXIoLS1jb2xvci1jb250ZW50LXByaW1hcnktbmVnYXRpdmUpOy0tdWktbGliLWxpZ2h0LWJ1dHRvbi1kZWZhdWx0LWNvbG9yLWJvcmRlcjp2YXIoLS1jb2xvci1jb250YWluZXItZmlsbC1wcmltYXJ5LWRhbmdlci1leHRyYS1saWdodCl9fS5zZWNvbmRhcnktSWVRd1BqY1oucmVkLUllUXdQamNaLmFjdGl2ZS1JZVF3UGpjWiwuc2Vjb25kYXJ5LUllUXdQamNaLnJlZC1JZVF3UGpjWjpub3QoLmRpc2FibGVBY3RpdmVPblRvdWNoLUllUXdQamNaKTpub3QoLmRpc2FibGVBY3RpdmVTdGF0ZVN0eWxlcy1JZVF3UGpjWik6bm90KDpkaXNhYmxlZCk6YWN0aXZley0tdWktbGliLWxpZ2h0LWJ1dHRvbi1kZWZhdWx0LWNvbG9yLWJnOnZhcigtLWNvbG9yLWNvbnRhaW5lci1maWxsLXByaW1hcnktZGFuZ2VyLWxpZ2h0KTstLXVpLWxpYi1saWdodC1idXR0b24tZGVmYXVsdC1jb2xvci1jb250ZW50OnZhcigtLWNvbG9yLWNvbnRhaW5lci1maWxsLXNlY29uZGFyeS1kYW5nZXItYm9sZCk7LS11aS1saWItbGlnaHQtYnV0dG9uLWRlZmF1bHQtY29sb3ItYm9yZGVyOnZhcigtLWNvbG9yLWNvbnRhaW5lci1maWxsLXByaW1hcnktZGFuZ2VyLWxpZ2h0KX0uc2Vjb25kYXJ5LUllUXdQamNaLnJlZC1JZVF3UGpjWi5hY3RpdmUtSWVRd1BqY1ouZ3JvdXBlZC1JZVF3UGpjWiwuc2Vjb25kYXJ5LUllUXdQamNaLnJlZC1JZVF3UGpjWjpub3QoLmRpc2FibGVBY3RpdmVPblRvdWNoLUllUXdQamNaKTpub3QoLmRpc2FibGVBY3RpdmVTdGF0ZVN0eWxlcy1JZVF3UGpjWik6bm90KDpkaXNhYmxlZCk6YWN0aXZlLmdyb3VwZWQtSWVRd1BqY1p7dHJhbnNmb3JtOm5vbmV9QG1lZGlhIG5vdCAocG9pbnRlcjpjb2Fyc2Upey5zZWNvbmRhcnktSWVRd1BqY1oucmVkLUllUXdQamNaLmRpc2FibGVBY3RpdmVPblRvdWNoLUllUXdQamNaOm5vdCguZGlzYWJsZUFjdGl2ZVN0YXRlU3R5bGVzLUllUXdQamNaKTpub3QoOmRpc2FibGVkKTphY3RpdmV7LS11aS1saWItbGlnaHQtYnV0dG9uLWRlZmF1bHQtY29sb3ItYmc6dmFyKC0tY29sb3ItY29udGFpbmVyLWZpbGwtcHJpbWFyeS1kYW5nZXItbGlnaHQpOy0tdWktbGliLWxpZ2h0LWJ1dHRvbi1kZWZhdWx0LWNvbG9yLWNvbnRlbnQ6dmFyKC0tY29sb3ItY29udGFpbmVyLWZpbGwtc2Vjb25kYXJ5LWRhbmdlci1ib2xkKTstLXVpLWxpYi1saWdodC1idXR0b24tZGVmYXVsdC1jb2xvci1ib3JkZXI6dmFyKC0tY29sb3ItY29udGFpbmVyLWZpbGwtcHJpbWFyeS1kYW5nZXItbGlnaHQpfS5zZWNvbmRhcnktSWVRd1BqY1oucmVkLUllUXdQamNaLmRpc2FibGVBY3RpdmVPblRvdWNoLUllUXdQamNaOm5vdCguZGlzYWJsZUFjdGl2ZVN0YXRlU3R5bGVzLUllUXdQamNaKTpub3QoOmRpc2FibGVkKTphY3RpdmUuZ3JvdXBlZC1JZVF3UGpjWnt0cmFuc2Zvcm06bm9uZX19QG1lZGlhIChhbnktaG92ZXI6aG92ZXIpey5zZWNvbmRhcnktSWVRd1BqY1oucmVkLUllUXdQamNaLndpdGhHcm91cGVkLUllUXdQamNaLnF1aWV0LXByaW1hcnktSWVRd1BqY1o6bm90KC5zZWxlY3RlZC1JZVF3UGpjWik6bm90KDpob3Zlcik6bm90KDpkaXNhYmxlZCl7LS11aS1saWItbGlnaHQtYnV0dG9uLWRlZmF1bHQtY29sb3ItYmc6IzAwMDA7LS11aS1saWItbGlnaHQtYnV0dG9uLWRlZmF1bHQtY29sb3ItYm9yZGVyOiMwMDAwfX0uc2Vjb25kYXJ5LUllUXdQamNaLnJlZC1JZVF3UGpjWjpkaXNhYmxlZHstLXVpLWxpYi1saWdodC1idXR0b24tZGVmYXVsdC1jb2xvci1iZzp2YXIoLS1jb2xvci1zdGF0aWMtdHJhbnNwYXJlbnQpOy0tdWktbGliLWxpZ2h0LWJ1dHRvbi1kZWZhdWx0LWNvbG9yLWNvbnRlbnQ6dmFyKC0tY29sb3ItYnV0dG9uLWNvbnRlbnQtZGlzYWJsZWQpOy0tdWktbGliLWxpZ2h0LWJ1dHRvbi1kZWZhdWx0LWNvbG9yLWJvcmRlcjp2YXIoLS1jb2xvci1ib3JkZXItcHJpbWFyeS1uZXV0cmFsLWxpZ2h0KTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgwKX0uc2Vjb25kYXJ5LUllUXdQamNaLmJsdWUtSWVRd1BqY1p7LS11aS1saWItbGlnaHQtYnV0dG9uLWRlZmF1bHQtY29sb3ItYmc6dmFyKC0tY29sb3Itc3RhdGljLXRyYW5zcGFyZW50KTstLXVpLWxpYi1saWdodC1idXR0b24tZGVmYXVsdC1jb2xvci1jb250ZW50OnZhcigtLWNvbG9yLWJ1dHRvbi1jb250ZW50LXNlY29uZGFyeS1hY2NlbnQtZGVmYXVsdCk7LS11aS1saWItbGlnaHQtYnV0dG9uLWRlZmF1bHQtY29sb3ItYm9yZGVyOnZhcigtLWNvbG9yLWNvbnRhaW5lci1maWxsLXByaW1hcnktYWNjZW50LWxpZ2h0KX1AbWVkaWEgbm90IChwb2ludGVyOmNvYXJzZSl7QG1lZGlhIChhbnktaG92ZXI6aG92ZXIpey5zZWNvbmRhcnktSWVRd1BqY1ouYmx1ZS1JZVF3UGpjWjpob3ZlcnstLXVpLWxpYi1saWdodC1idXR0b24tZGVmYXVsdC1jb2xvci1iZzp2YXIoLS1jb2xvci1jb250YWluZXItZmlsbC1wcmltYXJ5LWFjY2VudC1leHRyYS1saWdodCk7LS11aS1saWItbGlnaHQtYnV0dG9uLWRlZmF1bHQtY29sb3ItY29udGVudDp2YXIoLS1jb2xvci1jb250ZW50LXByaW1hcnktYWNjZW50LXNlbWktYm9sZCk7LS11aS1saWItbGlnaHQtYnV0dG9uLWRlZmF1bHQtY29sb3ItYm9yZGVyOnZhcigtLWNvbG9yLWNvbnRhaW5lci1maWxsLXByaW1hcnktYWNjZW50LWV4dHJhLWxpZ2h0KX19fS5zZWNvbmRhcnktSWVRd1BqY1ouYmx1ZS1JZVF3UGpjWi5zZWxlY3RlZC1JZVF3UGpjWnstLXVpLWxpYi1saWdodC1idXR0b24tZGVmYXVsdC1jb2xvci1iZzp2YXIoLS1jb2xvci1jb250YWluZXItZmlsbC1wcmltYXJ5LWFjY2VudC1leHRyYS1saWdodCk7LS11aS1saWItbGlnaHQtYnV0dG9uLWRlZmF1bHQtY29sb3ItYm9yZGVyOnZhcigtLWNvbG9yLWNvbnRhaW5lci1maWxsLXByaW1hcnktYWNjZW50LWV4dHJhLWxpZ2h0KTstLXVpLWxpYi1saWdodC1idXR0b24tZGVmYXVsdC1jb2xvci1jb250ZW50OnZhcigtLWNvbG9yLWNvbnRlbnQtcHJpbWFyeS1hY2NlbnQpfUBtZWRpYSAoYW55LWhvdmVyOmhvdmVyKXsuc2Vjb25kYXJ5LUllUXdQamNaLmJsdWUtSWVRd1BqY1ouc2VsZWN0ZWQtSWVRd1BqY1o6bm90KC5ncm91cGVkLUllUXdQamNaKTpub3QoOmRpc2FibGVkKTpob3ZlcnstLXVpLWxpYi1saWdodC1idXR0b24tZGVmYXVsdC1jb2xvci1iZzp2YXIoLS1jb2xvci1jb250YWluZXItZmlsbC1wcmltYXJ5LWFjY2VudC1leHRyYS1saWdodCk7LS11aS1saWItbGlnaHQtYnV0dG9uLWRlZmF1bHQtY29sb3ItY29udGVudDp2YXIoLS1jb2xvci1jb250ZW50LXByaW1hcnktYWNjZW50LXNlbWktYm9sZCk7LS11aS1saWItbGlnaHQtYnV0dG9uLWRlZmF1bHQtY29sb3ItYm9yZGVyOnZhcigtLWNvbG9yLWNvbnRhaW5lci1maWxsLXByaW1hcnktYWNjZW50LWV4dHJhLWxpZ2h0KX19LnNlY29uZGFyeS1JZVF3UGpjWi5ibHVlLUllUXdQamNaLmFjdGl2ZS1JZVF3UGpjWiwuc2Vjb25kYXJ5LUllUXdQamNaLmJsdWUtSWVRd1BqY1o6bm90KC5kaXNhYmxlQWN0aXZlT25Ub3VjaC1JZVF3UGpjWik6bm90KC5kaXNhYmxlQWN0aXZlU3RhdGVTdHlsZXMtSWVRd1BqY1opOm5vdCg6ZGlzYWJsZWQpOmFjdGl2ZXstLXVpLWxpYi1saWdodC1idXR0b24tZGVmYXVsdC1jb2xvci1iZzp2YXIoLS1jb2xvci1jb250YWluZXItZmlsbC1wcmltYXJ5LWFjY2VudC1saWdodCk7LS11aS1saWItbGlnaHQtYnV0dG9uLWRlZmF1bHQtY29sb3ItY29udGVudDp2YXIoLS1jb2xvci1jb250ZW50LXByaW1hcnktYWNjZW50LWV4dHJhLWJvbGQpOy0tdWktbGliLWxpZ2h0LWJ1dHRvbi1kZWZhdWx0LWNvbG9yLWJvcmRlcjp2YXIoLS1jb2xvci1jb250YWluZXItZmlsbC1wcmltYXJ5LWFjY2VudC1saWdodCl9LnNlY29uZGFyeS1JZVF3UGpjWi5ibHVlLUllUXdQamNaLmFjdGl2ZS1JZVF3UGpjWi5ncm91cGVkLUllUXdQamNaLC5zZWNvbmRhcnktSWVRd1BqY1ouYmx1ZS1JZVF3UGpjWjpub3QoLmRpc2FibGVBY3RpdmVPblRvdWNoLUllUXdQamNaKTpub3QoLmRpc2FibGVBY3RpdmVTdGF0ZVN0eWxlcy1JZVF3UGpjWik6bm90KDpkaXNhYmxlZCk6YWN0aXZlLmdyb3VwZWQtSWVRd1BqY1p7dHJhbnNmb3JtOm5vbmV9QG1lZGlhIG5vdCAocG9pbnRlcjpjb2Fyc2Upey5zZWNvbmRhcnktSWVRd1BqY1ouYmx1ZS1JZVF3UGpjWi5kaXNhYmxlQWN0aXZlT25Ub3VjaC1JZVF3UGpjWjpub3QoLmRpc2FibGVBY3RpdmVTdGF0ZVN0eWxlcy1JZVF3UGpjWik6bm90KDpkaXNhYmxlZCk6YWN0aXZley0tdWktbGliLWxpZ2h0LWJ1dHRvbi1kZWZhdWx0LWNvbG9yLWJnOnZhcigtLWNvbG9yLWNvbnRhaW5lci1maWxsLXByaW1hcnktYWNjZW50LWxpZ2h0KTstLXVpLWxpYi1saWdodC1idXR0b24tZGVmYXVsdC1jb2xvci1jb250ZW50OnZhcigtLWNvbG9yLWNvbnRlbnQtcHJpbWFyeS1hY2NlbnQtZXh0cmEtYm9sZCk7LS11aS1saWItbGlnaHQtYnV0dG9uLWRlZmF1bHQtY29sb3ItYm9yZGVyOnZhcigtLWNvbG9yLWNvbnRhaW5lci1maWxsLXByaW1hcnktYWNjZW50LWxpZ2h0KX0uc2Vjb25kYXJ5LUllUXdQamNaLmJsdWUtSWVRd1BqY1ouZGlzYWJsZUFjdGl2ZU9uVG91Y2gtSWVRd1BqY1o6bm90KC5kaXNhYmxlQWN0aXZlU3RhdGVTdHlsZXMtSWVRd1BqY1opOm5vdCg6ZGlzYWJsZWQpOmFjdGl2ZS5ncm91cGVkLUllUXdQamNae3RyYW5zZm9ybTpub25lfX1AbWVkaWEgKGFueS1ob3Zlcjpob3Zlcil7LnNlY29uZGFyeS1JZVF3UGpjWi5ibHVlLUllUXdQamNaLndpdGhHcm91cGVkLUllUXdQamNaLnF1aWV0LXByaW1hcnktSWVRd1BqY1o6bm90KC5zZWxlY3RlZC1JZVF3UGpjWik6bm90KDpob3Zlcik6bm90KDpkaXNhYmxlZCl7LS11aS1saWItbGlnaHQtYnV0dG9uLWRlZmF1bHQtY29sb3ItYmc6IzAwMDA7LS11aS1saWItbGlnaHQtYnV0dG9uLWRlZmF1bHQtY29sb3ItYm9yZGVyOiMwMDAwfX0uc2Vjb25kYXJ5LUllUXdQamNaLmJsdWUtSWVRd1BqY1o6ZGlzYWJsZWR7LS11aS1saWItbGlnaHQtYnV0dG9uLWRlZmF1bHQtY29sb3ItYmc6dmFyKC0tY29sb3Itc3RhdGljLXRyYW5zcGFyZW50KTstLXVpLWxpYi1saWdodC1idXR0b24tZGVmYXVsdC1jb2xvci1jb250ZW50OnZhcigtLWNvbG9yLWJ1dHRvbi1jb250ZW50LWRpc2FibGVkKTstLXVpLWxpYi1saWdodC1idXR0b24tZGVmYXVsdC1jb2xvci1ib3JkZXI6dmFyKC0tY29sb3ItYm9yZGVyLXByaW1hcnktbmV1dHJhbC1saWdodCk7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMCl9Lmdob3N0LUllUXdQamNaLmdyYXktSWVRd1BqY1p7LS11aS1saWItbGlnaHQtYnV0dG9uLWRlZmF1bHQtY29sb3ItYmc6dmFyKC0tY29sb3Itc3RhdGljLXRyYW5zcGFyZW50KTstLXVpLWxpYi1saWdodC1idXR0b24tZGVmYXVsdC1jb2xvci1jb250ZW50OnZhcigtLWNvbG9yLWJ1dHRvbi1jb250ZW50LWdob3N0LW5ldXRyYWwtYm9sZC1kZWZhdWx0KTstLXVpLWxpYi1saWdodC1idXR0b24tZGVmYXVsdC1jb2xvci1ib3JkZXI6dmFyKC0tY29sb3Itc3RhdGljLXRyYW5zcGFyZW50KX1AbWVkaWEgbm90IChwb2ludGVyOmNvYXJzZSl7QG1lZGlhIChhbnktaG92ZXI6aG92ZXIpey5naG9zdC1JZVF3UGpjWi5ncmF5LUllUXdQamNaOmhvdmVyey0tdWktbGliLWxpZ2h0LWJ1dHRvbi1kZWZhdWx0LWNvbG9yLWJnOnZhcigtLWNvbG9yLWJ1dHRvbi1maWxsX2JvcmRlci1naG9zdC1uZXV0cmFsLWhvdmVyKTstLXVpLWxpYi1saWdodC1idXR0b24tZGVmYXVsdC1jb2xvci1jb250ZW50OnZhcigtLWNvbG9yLWJ1dHRvbi1jb250ZW50LWdob3N0LW5ldXRyYWwtYm9sZC1ob3Zlcik7LS11aS1saWItbGlnaHQtYnV0dG9uLWRlZmF1bHQtY29sb3ItYm9yZGVyOnZhcigtLWNvbG9yLWJ1dHRvbi1maWxsX2JvcmRlci1naG9zdC1uZXV0cmFsLWhvdmVyKX19fS5naG9zdC1JZVF3UGpjWi5ncmF5LUllUXdQamNaLnNlbGVjdGVkLUllUXdQamNaey0tdWktbGliLWxpZ2h0LWJ1dHRvbi1kZWZhdWx0LWNvbG9yLWJnOnZhcigtLWNvbG9yLXN0YXRpYy10cmFuc3BhcmVudCk7LS11aS1saWItbGlnaHQtYnV0dG9uLWRlZmF1bHQtY29sb3ItYm9yZGVyOnZhcigtLWNvbG9yLXN0YXRpYy10cmFuc3BhcmVudCk7LS11aS1saWItbGlnaHQtYnV0dG9uLWRlZmF1bHQtY29sb3ItY29udGVudDp2YXIoLS1jb2xvci1idXR0b24tY29udGVudC1naG9zdC1uZXV0cmFsLWlzLXNlbGVjdGVkKX1AbWVkaWEgKGFueS1ob3Zlcjpob3Zlcil7Lmdob3N0LUllUXdQamNaLmdyYXktSWVRd1BqY1ouc2VsZWN0ZWQtSWVRd1BqY1o6bm90KC5ncm91cGVkLUllUXdQamNaKTpub3QoOmRpc2FibGVkKTpob3ZlcnstLXVpLWxpYi1saWdodC1idXR0b24tZGVmYXVsdC1jb2xvci1iZzp2YXIoLS1jb2xvci1idXR0b24tZmlsbF9ib3JkZXItZ2hvc3QtbmV1dHJhbC1ob3Zlcik7LS11aS1saWItbGlnaHQtYnV0dG9uLWRlZmF1bHQtY29sb3ItY29udGVudDp2YXIoLS1jb2xvci1idXR0b24tY29udGVudC1naG9zdC1uZXV0cmFsLWJvbGQtaG92ZXIpOy0tdWktbGliLWxpZ2h0LWJ1dHRvbi1kZWZhdWx0LWNvbG9yLWJvcmRlcjp2YXIoLS1jb2xvci1idXR0b24tZmlsbF9ib3JkZXItZ2hvc3QtbmV1dHJhbC1ob3Zlcil9fS5naG9zdC1JZVF3UGpjWi5ncmF5LUllUXdQamNaLmFjdGl2ZS1JZVF3UGpjWiwuZ2hvc3QtSWVRd1BqY1ouZ3JheS1JZVF3UGpjWjpub3QoLmRpc2FibGVBY3RpdmVPblRvdWNoLUllUXdQamNaKTpub3QoLmRpc2FibGVBY3RpdmVTdGF0ZVN0eWxlcy1JZVF3UGpjWik6bm90KDpkaXNhYmxlZCk6YWN0aXZley0tdWktbGliLWxpZ2h0LWJ1dHRvbi1kZWZhdWx0LWNvbG9yLWJnOnZhcigtLWNvbG9yLWJ1dHRvbi1maWxsX2JvcmRlci1naG9zdC1uZXV0cmFsLWFjdGl2ZSk7LS11aS1saWItbGlnaHQtYnV0dG9uLWRlZmF1bHQtY29sb3ItY29udGVudDp2YXIoLS1jb2xvci1idXR0b24tY29udGVudC1naG9zdC1uZXV0cmFsLWFjdGl2ZSk7LS11aS1saWItbGlnaHQtYnV0dG9uLWRlZmF1bHQtY29sb3ItYm9yZGVyOnZhcigtLWNvbG9yLWJ1dHRvbi1maWxsX2JvcmRlci1naG9zdC1uZXV0cmFsLWFjdGl2ZSl9Lmdob3N0LUllUXdQamNaLmdyYXktSWVRd1BqY1ouYWN0aXZlLUllUXdQamNaLmdyb3VwZWQtSWVRd1BqY1osLmdob3N0LUllUXdQamNaLmdyYXktSWVRd1BqY1o6bm90KC5kaXNhYmxlQWN0aXZlT25Ub3VjaC1JZVF3UGpjWik6bm90KC5kaXNhYmxlQWN0aXZlU3RhdGVTdHlsZXMtSWVRd1BqY1opOm5vdCg6ZGlzYWJsZWQpOmFjdGl2ZS5ncm91cGVkLUllUXdQamNae3RyYW5zZm9ybTpub25lfUBtZWRpYSBub3QgKHBvaW50ZXI6Y29hcnNlKXsuZ2hvc3QtSWVRd1BqY1ouZ3JheS1JZVF3UGpjWi5kaXNhYmxlQWN0aXZlT25Ub3VjaC1JZVF3UGpjWjpub3QoLmRpc2FibGVBY3RpdmVTdGF0ZVN0eWxlcy1JZVF3UGpjWik6bm90KDpkaXNhYmxlZCk6YWN0aXZley0tdWktbGliLWxpZ2h0LWJ1dHRvbi1kZWZhdWx0LWNvbG9yLWJnOnZhcigtLWNvbG9yLWJ1dHRvbi1maWxsX2JvcmRlci1naG9zdC1uZXV0cmFsLWFjdGl2ZSk7LS11aS1saWItbGlnaHQtYnV0dG9uLWRlZmF1bHQtY29sb3ItY29udGVudDp2YXIoLS1jb2xvci1idXR0b24tY29udGVudC1naG9zdC1uZXV0cmFsLWFjdGl2ZSk7LS11aS1saWItbGlnaHQtYnV0dG9uLWRlZmF1bHQtY29sb3ItYm9yZGVyOnZhcigtLWNvbG9yLWJ1dHRvbi1maWxsX2JvcmRlci1naG9zdC1uZXV0cmFsLWFjdGl2ZSl9Lmdob3N0LUllUXdQamNaLmdyYXktSWVRd1BqY1ouZGlzYWJsZUFjdGl2ZU9uVG91Y2gtSWVRd1BqY1o6bm90KC5kaXNhYmxlQWN0aXZlU3RhdGVTdHlsZXMtSWVRd1BqY1opOm5vdCg6ZGlzYWJsZWQpOmFjdGl2ZS5ncm91cGVkLUllUXdQamNae3RyYW5zZm9ybTpub25lfX1AbWVkaWEgKGFueS1ob3Zlcjpob3Zlcil7Lmdob3N0LUllUXdQamNaLmdyYXktSWVRd1BqY1oud2l0aEdyb3VwZWQtSWVRd1BqY1oucXVpZXQtcHJpbWFyeS1JZVF3UGpjWjpub3QoLnNlbGVjdGVkLUllUXdQamNaKTpub3QoOmhvdmVyKTpub3QoOmRpc2FibGVkKXstLXVpLWxpYi1saWdodC1idXR0b24tZGVmYXVsdC1jb2xvci1iZzojMDAwMDstLXVpLWxpYi1saWdodC1idXR0b24tZGVmYXVsdC1jb2xvci1ib3JkZXI6IzAwMDB9fS5naG9zdC1JZVF3UGpjWi5ncmF5LUllUXdQamNaOmRpc2FibGVkey0tdWktbGliLWxpZ2h0LWJ1dHRvbi1kZWZhdWx0LWNvbG9yLWJnOnZhcigtLWNvbG9yLXN0YXRpYy10cmFuc3BhcmVudCk7LS11aS1saWItbGlnaHQtYnV0dG9uLWRlZmF1bHQtY29sb3ItY29udGVudDp2YXIoLS1jb2xvci1jb250ZW50LXByaW1hcnktbmV1dHJhbC1saWdodCk7LS11aS1saWItbGlnaHQtYnV0dG9uLWRlZmF1bHQtY29sb3ItYm9yZGVyOnZhcigtLWNvbG9yLXN0YXRpYy10cmFuc3BhcmVudCk7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMCl9Lmdob3N0LUllUXdQamNaLmdyZWVuLUllUXdQamNaey0tdWktbGliLWxpZ2h0LWJ1dHRvbi1kZWZhdWx0LWNvbG9yLWJnOnZhcigtLWNvbG9yLXN0YXRpYy10cmFuc3BhcmVudCk7LS11aS1saWItbGlnaHQtYnV0dG9uLWRlZmF1bHQtY29sb3ItY29udGVudDp2YXIoLS1jb2xvci1idXR0b24tY29udGVudC1zZWNvbmRhcnktc3VjY2Vzcy1kZWZhdWx0KTstLXVpLWxpYi1saWdodC1idXR0b24tZGVmYXVsdC1jb2xvci1ib3JkZXI6dmFyKC0tY29sb3Itc3RhdGljLXRyYW5zcGFyZW50KX1AbWVkaWEgbm90IChwb2ludGVyOmNvYXJzZSl7QG1lZGlhIChhbnktaG92ZXI6aG92ZXIpey5naG9zdC1JZVF3UGpjWi5ncmVlbi1JZVF3UGpjWjpob3ZlcnstLXVpLWxpYi1saWdodC1idXR0b24tZGVmYXVsdC1jb2xvci1iZzp2YXIoLS1jb2xvci1jb250YWluZXItZmlsbC1wcmltYXJ5LXN1Y2Nlc3MtZXh0cmEtbGlnaHQpOy0tdWktbGliLWxpZ2h0LWJ1dHRvbi1kZWZhdWx0LWNvbG9yLWNvbnRlbnQ6dmFyKC0tY29sb3ItY29udGVudC1wcmltYXJ5LXBvc2l0aXZlKTstLXVpLWxpYi1saWdodC1idXR0b24tZGVmYXVsdC1jb2xvci1ib3JkZXI6dmFyKC0tY29sb3ItY29udGFpbmVyLWZpbGwtcHJpbWFyeS1zdWNjZXNzLWV4dHJhLWxpZ2h0KX19fS5naG9zdC1JZVF3UGpjWi5ncmVlbi1JZVF3UGpjWi5zZWxlY3RlZC1JZVF3UGpjWnstLXVpLWxpYi1saWdodC1idXR0b24tZGVmYXVsdC1jb2xvci1iZzp2YXIoLS1jb2xvci1zdGF0aWMtdHJhbnNwYXJlbnQpOy0tdWktbGliLWxpZ2h0LWJ1dHRvbi1kZWZhdWx0LWNvbG9yLWJvcmRlcjp2YXIoLS1jb2xvci1zdGF0aWMtdHJhbnNwYXJlbnQpOy0tdWktbGliLWxpZ2h0LWJ1dHRvbi1kZWZhdWx0LWNvbG9yLWNvbnRlbnQ6dmFyKC0tY29sb3ItYnV0dG9uLWNvbnRlbnQtc2Vjb25kYXJ5LXN1Y2Nlc3MtZGVmYXVsdCl9QG1lZGlhIChhbnktaG92ZXI6aG92ZXIpey5naG9zdC1JZVF3UGpjWi5ncmVlbi1JZVF3UGpjWi5zZWxlY3RlZC1JZVF3UGpjWjpub3QoLmdyb3VwZWQtSWVRd1BqY1opOm5vdCg6ZGlzYWJsZWQpOmhvdmVyey0tdWktbGliLWxpZ2h0LWJ1dHRvbi1kZWZhdWx0LWNvbG9yLWJnOnZhcigtLWNvbG9yLWNvbnRhaW5lci1maWxsLXByaW1hcnktc3VjY2Vzcy1leHRyYS1saWdodCk7LS11aS1saWItbGlnaHQtYnV0dG9uLWRlZmF1bHQtY29sb3ItY29udGVudDp2YXIoLS1jb2xvci1jb250ZW50LXByaW1hcnktcG9zaXRpdmUpOy0tdWktbGliLWxpZ2h0LWJ1dHRvbi1kZWZhdWx0LWNvbG9yLWJvcmRlcjp2YXIoLS1jb2xvci1jb250YWluZXItZmlsbC1wcmltYXJ5LXN1Y2Nlc3MtZXh0cmEtbGlnaHQpfX0uZ2hvc3QtSWVRd1BqY1ouZ3JlZW4tSWVRd1BqY1ouYWN0aXZlLUllUXdQamNaLC5naG9zdC1JZVF3UGpjWi5ncmVlbi1JZVF3UGpjWjpub3QoLmRpc2FibGVBY3RpdmVPblRvdWNoLUllUXdQamNaKTpub3QoLmRpc2FibGVBY3RpdmVTdGF0ZVN0eWxlcy1JZVF3UGpjWik6bm90KDpkaXNhYmxlZCk6YWN0aXZley0tdWktbGliLWxpZ2h0LWJ1dHRvbi1kZWZhdWx0LWNvbG9yLWJnOnZhcigtLWNvbG9yLWNvbnRhaW5lci1maWxsLXByaW1hcnktc3VjY2Vzcy1saWdodCk7LS11aS1saWItbGlnaHQtYnV0dG9uLWRlZmF1bHQtY29sb3ItY29udGVudDp2YXIoLS1jb2xvci1jb250ZW50LXByaW1hcnktc3VjY2Vzcy1ib2xkKTstLXVpLWxpYi1saWdodC1idXR0b24tZGVmYXVsdC1jb2xvci1ib3JkZXI6dmFyKC0tY29sb3ItY29udGFpbmVyLWZpbGwtcHJpbWFyeS1zdWNjZXNzLWxpZ2h0KX0uZ2hvc3QtSWVRd1BqY1ouZ3JlZW4tSWVRd1BqY1ouYWN0aXZlLUllUXdQamNaLmdyb3VwZWQtSWVRd1BqY1osLmdob3N0LUllUXdQamNaLmdyZWVuLUllUXdQamNaOm5vdCguZGlzYWJsZUFjdGl2ZU9uVG91Y2gtSWVRd1BqY1opOm5vdCguZGlzYWJsZUFjdGl2ZVN0YXRlU3R5bGVzLUllUXdQamNaKTpub3QoOmRpc2FibGVkKTphY3RpdmUuZ3JvdXBlZC1JZVF3UGpjWnt0cmFuc2Zvcm06bm9uZX1AbWVkaWEgbm90IChwb2ludGVyOmNvYXJzZSl7Lmdob3N0LUllUXdQamNaLmdyZWVuLUllUXdQamNaLmRpc2FibGVBY3RpdmVPblRvdWNoLUllUXdQamNaOm5vdCguZGlzYWJsZUFjdGl2ZVN0YXRlU3R5bGVzLUllUXdQamNaKTpub3QoOmRpc2FibGVkKTphY3RpdmV7LS11aS1saWItbGlnaHQtYnV0dG9uLWRlZmF1bHQtY29sb3ItYmc6dmFyKC0tY29sb3ItY29udGFpbmVyLWZpbGwtcHJpbWFyeS1zdWNjZXNzLWxpZ2h0KTstLXVpLWxpYi1saWdodC1idXR0b24tZGVmYXVsdC1jb2xvci1jb250ZW50OnZhcigtLWNvbG9yLWNvbnRlbnQtcHJpbWFyeS1zdWNjZXNzLWJvbGQpOy0tdWktbGliLWxpZ2h0LWJ1dHRvbi1kZWZhdWx0LWNvbG9yLWJvcmRlcjp2YXIoLS1jb2xvci1jb250YWluZXItZmlsbC1wcmltYXJ5LXN1Y2Nlc3MtbGlnaHQpfS5naG9zdC1JZVF3UGpjWi5ncmVlbi1JZVF3UGpjWi5kaXNhYmxlQWN0aXZlT25Ub3VjaC1JZVF3UGpjWjpub3QoLmRpc2FibGVBY3RpdmVTdGF0ZVN0eWxlcy1JZVF3UGpjWik6bm90KDpkaXNhYmxlZCk6YWN0aXZlLmdyb3VwZWQtSWVRd1BqY1p7dHJhbnNmb3JtOm5vbmV9fUBtZWRpYSAoYW55LWhvdmVyOmhvdmVyKXsuZ2hvc3QtSWVRd1BqY1ouZ3JlZW4tSWVRd1BqY1oud2l0aEdyb3VwZWQtSWVRd1BqY1oucXVpZXQtcHJpbWFyeS1JZVF3UGpjWjpub3QoLnNlbGVjdGVkLUllUXdQamNaKTpub3QoOmhvdmVyKTpub3QoOmRpc2FibGVkKXstLXVpLWxpYi1saWdodC1idXR0b24tZGVmYXVsdC1jb2xvci1iZzojMDAwMDstLXVpLWxpYi1saWdodC1idXR0b24tZGVmYXVsdC1jb2xvci1ib3JkZXI6IzAwMDB9fS5naG9zdC1JZVF3UGpjWi5ncmVlbi1JZVF3UGpjWjpkaXNhYmxlZHstLXVpLWxpYi1saWdodC1idXR0b24tZGVmYXVsdC1jb2xvci1iZzp2YXIoLS1jb2xvci1zdGF0aWMtdHJhbnNwYXJlbnQpOy0tdWktbGliLWxpZ2h0LWJ1dHRvbi1kZWZhdWx0LWNvbG9yLWNvbnRlbnQ6dmFyKC0tY29sb3ItYnV0dG9uLWNvbnRlbnQtZGlzYWJsZWQpOy0tdWktbGliLWxpZ2h0LWJ1dHRvbi1kZWZhdWx0LWNvbG9yLWJvcmRlcjp2YXIoLS1jb2xvci1zdGF0aWMtdHJhbnNwYXJlbnQpO3RyYW5zZm9ybTp0cmFuc2xhdGVZKDApfS5naG9zdC1JZVF3UGpjWi5yZWQtSWVRd1BqY1p7LS11aS1saWItbGlnaHQtYnV0dG9uLWRlZmF1bHQtY29sb3ItYmc6dmFyKC0tY29sb3Itc3RhdGljLXRyYW5zcGFyZW50KTstLXVpLWxpYi1saWdodC1idXR0b24tZGVmYXVsdC1jb2xvci1jb250ZW50OnZhcigtLWNvbG9yLWJ1dHRvbi1jb250ZW50LXNlY29uZGFyeS1kYW5nZXItZGVmYXVsdCk7LS11aS1saWItbGlnaHQtYnV0dG9uLWRlZmF1bHQtY29sb3ItYm9yZGVyOnZhcigtLWNvbG9yLXN0YXRpYy10cmFuc3BhcmVudCl9QG1lZGlhIG5vdCAocG9pbnRlcjpjb2Fyc2Upe0BtZWRpYSAoYW55LWhvdmVyOmhvdmVyKXsuZ2hvc3QtSWVRd1BqY1oucmVkLUllUXdQamNaOmhvdmVyey0tdWktbGliLWxpZ2h0LWJ1dHRvbi1kZWZhdWx0LWNvbG9yLWJnOnZhcigtLWNvbG9yLWNvbnRhaW5lci1maWxsLXByaW1hcnktZGFuZ2VyLWV4dHJhLWxpZ2h0KTstLXVpLWxpYi1saWdodC1idXR0b24tZGVmYXVsdC1jb2xvci1jb250ZW50OnZhcigtLWNvbG9yLWNvbnRlbnQtcHJpbWFyeS1uZWdhdGl2ZSk7LS11aS1saWItbGlnaHQtYnV0dG9uLWRlZmF1bHQtY29sb3ItYm9yZGVyOnZhcigtLWNvbG9yLWNvbnRhaW5lci1maWxsLXByaW1hcnktZGFuZ2VyLWV4dHJhLWxpZ2h0KX19fS5naG9zdC1JZVF3UGpjWi5yZWQtSWVRd1BqY1ouc2VsZWN0ZWQtSWVRd1BqY1p7LS11aS1saWItbGlnaHQtYnV0dG9uLWRlZmF1bHQtY29sb3ItYmc6dmFyKC0tY29sb3Itc3RhdGljLXRyYW5zcGFyZW50KTstLXVpLWxpYi1saWdodC1idXR0b24tZGVmYXVsdC1jb2xvci1ib3JkZXI6dmFyKC0tY29sb3Itc3RhdGljLXRyYW5zcGFyZW50KTstLXVpLWxpYi1saWdodC1idXR0b24tZGVmYXVsdC1jb2xvci1jb250ZW50OnZhcigtLWNvbG9yLWJ1dHRvbi1jb250ZW50LXNlY29uZGFyeS1kYW5nZXItZGVmYXVsdCl9QG1lZGlhIChhbnktaG92ZXI6aG92ZXIpey5naG9zdC1JZVF3UGpjWi5yZWQtSWVRd1BqY1ouc2VsZWN0ZWQtSWVRd1BqY1o6bm90KC5ncm91cGVkLUllUXdQamNaKTpub3QoOmRpc2FibGVkKTpob3ZlcnstLXVpLWxpYi1saWdodC1idXR0b24tZGVmYXVsdC1jb2xvci1iZzp2YXIoLS1jb2xvci1jb250YWluZXItZmlsbC1wcmltYXJ5LWRhbmdlci1leHRyYS1saWdodCk7LS11aS1saWItbGlnaHQtYnV0dG9uLWRlZmF1bHQtY29sb3ItY29udGVudDp2YXIoLS1jb2xvci1jb250ZW50LXByaW1hcnktbmVnYXRpdmUpOy0tdWktbGliLWxpZ2h0LWJ1dHRvbi1kZWZhdWx0LWNvbG9yLWJvcmRlcjp2YXIoLS1jb2xvci1jb250YWluZXItZmlsbC1wcmltYXJ5LWRhbmdlci1leHRyYS1saWdodCl9fS5naG9zdC1JZVF3UGpjWi5yZWQtSWVRd1BqY1ouYWN0aXZlLUllUXdQamNaLC5naG9zdC1JZVF3UGpjWi5yZWQtSWVRd1BqY1o6bm90KC5kaXNhYmxlQWN0aXZlT25Ub3VjaC1JZVF3UGpjWik6bm90KC5kaXNhYmxlQWN0aXZlU3RhdGVTdHlsZXMtSWVRd1BqY1opOm5vdCg6ZGlzYWJsZWQpOmFjdGl2ZXstLXVpLWxpYi1saWdodC1idXR0b24tZGVmYXVsdC1jb2xvci1iZzp2YXIoLS1jb2xvci1jb250YWluZXItZmlsbC1wcmltYXJ5LWRhbmdlci1saWdodCk7LS11aS1saWItbGlnaHQtYnV0dG9uLWRlZmF1bHQtY29sb3ItY29udGVudDp2YXIoLS1jb2xvci1jb250YWluZXItZmlsbC1zZWNvbmRhcnktZGFuZ2VyLWJvbGQpOy0tdWktbGliLWxpZ2h0LWJ1dHRvbi1kZWZhdWx0LWNvbG9yLWJvcmRlcjp2YXIoLS1jb2xvci1jb250YWluZXItZmlsbC1wcmltYXJ5LWRhbmdlci1saWdodCl9Lmdob3N0LUllUXdQamNaLnJlZC1JZVF3UGpjWi5hY3RpdmUtSWVRd1BqY1ouZ3JvdXBlZC1JZVF3UGpjWiwuZ2hvc3QtSWVRd1BqY1oucmVkLUllUXdQamNaOm5vdCguZGlzYWJsZUFjdGl2ZU9uVG91Y2gtSWVRd1BqY1opOm5vdCguZGlzYWJsZUFjdGl2ZVN0YXRlU3R5bGVzLUllUXdQamNaKTpub3QoOmRpc2FibGVkKTphY3RpdmUuZ3JvdXBlZC1JZVF3UGpjWnt0cmFuc2Zvcm06bm9uZX1AbWVkaWEgbm90IChwb2ludGVyOmNvYXJzZSl7Lmdob3N0LUllUXdQamNaLnJlZC1JZVF3UGpjWi5kaXNhYmxlQWN0aXZlT25Ub3VjaC1JZVF3UGpjWjpub3QoLmRpc2FibGVBY3RpdmVTdGF0ZVN0eWxlcy1JZVF3UGpjWik6bm90KDpkaXNhYmxlZCk6YWN0aXZley0tdWktbGliLWxpZ2h0LWJ1dHRvbi1kZWZhdWx0LWNvbG9yLWJnOnZhcigtLWNvbG9yLWNvbnRhaW5lci1maWxsLXByaW1hcnktZGFuZ2VyLWxpZ2h0KTstLXVpLWxpYi1saWdodC1idXR0b24tZGVmYXVsdC1jb2xvci1jb250ZW50OnZhcigtLWNvbG9yLWNvbnRhaW5lci1maWxsLXNlY29uZGFyeS1kYW5nZXItYm9sZCk7LS11aS1saWItbGlnaHQtYnV0dG9uLWRlZmF1bHQtY29sb3ItYm9yZGVyOnZhcigtLWNvbG9yLWNvbnRhaW5lci1maWxsLXByaW1hcnktZGFuZ2VyLWxpZ2h0KX0uZ2hvc3QtSWVRd1BqY1oucmVkLUllUXdQamNaLmRpc2FibGVBY3RpdmVPblRvdWNoLUllUXdQamNaOm5vdCguZGlzYWJsZUFjdGl2ZVN0YXRlU3R5bGVzLUllUXdQamNaKTpub3QoOmRpc2FibGVkKTphY3RpdmUuZ3JvdXBlZC1JZVF3UGpjWnt0cmFuc2Zvcm06bm9uZX19QG1lZGlhIChhbnktaG92ZXI6aG92ZXIpey5naG9zdC1JZVF3UGpjWi5yZWQtSWVRd1BqY1oud2l0aEdyb3VwZWQtSWVRd1BqY1oucXVpZXQtcHJpbWFyeS1JZVF3UGpjWjpub3QoLnNlbGVjdGVkLUllUXdQamNaKTpub3QoOmhvdmVyKTpub3QoOmRpc2FibGVkKXstLXVpLWxpYi1saWdodC1idXR0b24tZGVmYXVsdC1jb2xvci1iZzojMDAwMDstLXVpLWxpYi1saWdodC1idXR0b24tZGVmYXVsdC1jb2xvci1ib3JkZXI6IzAwMDB9fS5naG9zdC1JZVF3UGpjWi5yZWQtSWVRd1BqY1o6ZGlzYWJsZWR7LS11aS1saWItbGlnaHQtYnV0dG9uLWRlZmF1bHQtY29sb3ItYmc6dmFyKC0tY29sb3Itc3RhdGljLXRyYW5zcGFyZW50KTstLXVpLWxpYi1saWdodC1idXR0b24tZGVmYXVsdC1jb2xvci1jb250ZW50OnZhcigtLWNvbG9yLWJ1dHRvbi1jb250ZW50LWRpc2FibGVkKTstLXVpLWxpYi1saWdodC1idXR0b24tZGVmYXVsdC1jb2xvci1ib3JkZXI6dmFyKC0tY29sb3Itc3RhdGljLXRyYW5zcGFyZW50KTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgwKX0uZ2hvc3QtSWVRd1BqY1ouYmx1ZS1JZVF3UGpjWnstLXVpLWxpYi1saWdodC1idXR0b24tZGVmYXVsdC1jb2xvci1iZzp2YXIoLS1jb2xvci1zdGF0aWMtdHJhbnNwYXJlbnQpOy0tdWktbGliLWxpZ2h0LWJ1dHRvbi1kZWZhdWx0LWNvbG9yLWNvbnRlbnQ6dmFyKC0tY29sb3ItYnV0dG9uLWNvbnRlbnQtZ2hvc3QtYWNjZW50LWRlZmF1bHQpOy0tdWktbGliLWxpZ2h0LWJ1dHRvbi1kZWZhdWx0LWNvbG9yLWJvcmRlcjp2YXIoLS1jb2xvci1zdGF0aWMtdHJhbnNwYXJlbnQpfUBtZWRpYSBub3QgKHBvaW50ZXI6Y29hcnNlKXtAbWVkaWEgKGFueS1ob3Zlcjpob3Zlcil7Lmdob3N0LUllUXdQamNaLmJsdWUtSWVRd1BqY1o6aG92ZXJ7LS11aS1saWItbGlnaHQtYnV0dG9uLWRlZmF1bHQtY29sb3ItYmc6dmFyKC0tY29sb3ItY29udGFpbmVyLWZpbGwtcHJpbWFyeS1hY2NlbnQtZXh0cmEtbGlnaHQpOy0tdWktbGliLWxpZ2h0LWJ1dHRvbi1kZWZhdWx0LWNvbG9yLWNvbnRlbnQ6dmFyKC0tY29sb3ItY29udGVudC1wcmltYXJ5LWFjY2VudC1zZW1pLWJvbGQpOy0tdWktbGliLWxpZ2h0LWJ1dHRvbi1kZWZhdWx0LWNvbG9yLWJvcmRlcjp2YXIoLS1jb2xvci1jb250YWluZXItZmlsbC1wcmltYXJ5LWFjY2VudC1leHRyYS1saWdodCl9fX0uZ2hvc3QtSWVRd1BqY1ouYmx1ZS1JZVF3UGpjWi5zZWxlY3RlZC1JZVF3UGpjWnstLXVpLWxpYi1saWdodC1idXR0b24tZGVmYXVsdC1jb2xvci1iZzp2YXIoLS1jb2xvci1zdGF0aWMtdHJhbnNwYXJlbnQpOy0tdWktbGliLWxpZ2h0LWJ1dHRvbi1kZWZhdWx0LWNvbG9yLWJvcmRlcjp2YXIoLS1jb2xvci1zdGF0aWMtdHJhbnNwYXJlbnQpOy0tdWktbGliLWxpZ2h0LWJ1dHRvbi1kZWZhdWx0LWNvbG9yLWNvbnRlbnQ6dmFyKC0tY29sb3ItYnV0dG9uLWNvbnRlbnQtc2Vjb25kYXJ5LWFjY2VudC1kZWZhdWx0KX1AbWVkaWEgKGFueS1ob3Zlcjpob3Zlcil7Lmdob3N0LUllUXdQamNaLmJsdWUtSWVRd1BqY1ouc2VsZWN0ZWQtSWVRd1BqY1o6bm90KC5ncm91cGVkLUllUXdQamNaKTpub3QoOmRpc2FibGVkKTpob3ZlcnstLXVpLWxpYi1saWdodC1idXR0b24tZGVmYXVsdC1jb2xvci1iZzp2YXIoLS1jb2xvci1jb250YWluZXItZmlsbC1wcmltYXJ5LWFjY2VudC1leHRyYS1saWdodCk7LS11aS1saWItbGlnaHQtYnV0dG9uLWRlZmF1bHQtY29sb3ItY29udGVudDp2YXIoLS1jb2xvci1jb250ZW50LXByaW1hcnktYWNjZW50LXNlbWktYm9sZCk7LS11aS1saWItbGlnaHQtYnV0dG9uLWRlZmF1bHQtY29sb3ItYm9yZGVyOnZhcigtLWNvbG9yLWNvbnRhaW5lci1maWxsLXByaW1hcnktYWNjZW50LWV4dHJhLWxpZ2h0KX19Lmdob3N0LUllUXdQamNaLmJsdWUtSWVRd1BqY1ouYWN0aXZlLUllUXdQamNaLC5naG9zdC1JZVF3UGpjWi5ibHVlLUllUXdQamNaOm5vdCguZGlzYWJsZUFjdGl2ZU9uVG91Y2gtSWVRd1BqY1opOm5vdCguZGlzYWJsZUFjdGl2ZVN0YXRlU3R5bGVzLUllUXdQamNaKTpub3QoOmRpc2FibGVkKTphY3RpdmV7LS11aS1saWItbGlnaHQtYnV0dG9uLWRlZmF1bHQtY29sb3ItYmc6dmFyKC0tY29sb3ItY29udGFpbmVyLWZpbGwtcHJpbWFyeS1hY2NlbnQtbGlnaHQpOy0tdWktbGliLWxpZ2h0LWJ1dHRvbi1kZWZhdWx0LWNvbG9yLWNvbnRlbnQ6dmFyKC0tY29sb3ItY29udGVudC1wcmltYXJ5LWFjY2VudC1leHRyYS1ib2xkKTstLXVpLWxpYi1saWdodC1idXR0b24tZGVmYXVsdC1jb2xvci1ib3JkZXI6dmFyKC0tY29sb3ItY29udGFpbmVyLWZpbGwtcHJpbWFyeS1hY2NlbnQtbGlnaHQpfS5naG9zdC1JZVF3UGpjWi5ibHVlLUllUXdQamNaLmFjdGl2ZS1JZVF3UGpjWi5ncm91cGVkLUllUXdQamNaLC5naG9zdC1JZVF3UGpjWi5ibHVlLUllUXdQamNaOm5vdCguZGlzYWJsZUFjdGl2ZU9uVG91Y2gtSWVRd1BqY1opOm5vdCguZGlzYWJsZUFjdGl2ZVN0YXRlU3R5bGVzLUllUXdQamNaKTpub3QoOmRpc2FibGVkKTphY3RpdmUuZ3JvdXBlZC1JZVF3UGpjWnt0cmFuc2Zvcm06bm9uZX1AbWVkaWEgbm90IChwb2ludGVyOmNvYXJzZSl7Lmdob3N0LUllUXdQamNaLmJsdWUtSWVRd1BqY1ouZGlzYWJsZUFjdGl2ZU9uVG91Y2gtSWVRd1BqY1o6bm90KC5kaXNhYmxlQWN0aXZlU3RhdGVTdHlsZXMtSWVRd1BqY1opOm5vdCg6ZGlzYWJsZWQpOmFjdGl2ZXstLXVpLWxpYi1saWdodC1idXR0b24tZGVmYXVsdC1jb2xvci1iZzp2YXIoLS1jb2xvci1jb250YWluZXItZmlsbC1wcmltYXJ5LWFjY2VudC1saWdodCk7LS11aS1saWItbGlnaHQtYnV0dG9uLWRlZmF1bHQtY29sb3ItY29udGVudDp2YXIoLS1jb2xvci1jb250ZW50LXByaW1hcnktYWNjZW50LWV4dHJhLWJvbGQpOy0tdWktbGliLWxpZ2h0LWJ1dHRvbi1kZWZhdWx0LWNvbG9yLWJvcmRlcjp2YXIoLS1jb2xvci1jb250YWluZXItZmlsbC1wcmltYXJ5LWFjY2VudC1saWdodCl9Lmdob3N0LUllUXdQamNaLmJsdWUtSWVRd1BqY1ouZGlzYWJsZUFjdGl2ZU9uVG91Y2gtSWVRd1BqY1o6bm90KC5kaXNhYmxlQWN0aXZlU3RhdGVTdHlsZXMtSWVRd1BqY1opOm5vdCg6ZGlzYWJsZWQpOmFjdGl2ZS5ncm91cGVkLUllUXdQamNae3RyYW5zZm9ybTpub25lfX1AbWVkaWEgKGFueS1ob3Zlcjpob3Zlcil7Lmdob3N0LUllUXdQamNaLmJsdWUtSWVRd1BqY1oud2l0aEdyb3VwZWQtSWVRd1BqY1oucXVpZXQtcHJpbWFyeS1JZVF3UGpjWjpub3QoLnNlbGVjdGVkLUllUXdQamNaKTpub3QoOmhvdmVyKTpub3QoOmRpc2FibGVkKXstLXVpLWxpYi1saWdodC1idXR0b24tZGVmYXVsdC1jb2xvci1iZzojMDAwMDstLXVpLWxpYi1saWdodC1idXR0b24tZGVmYXVsdC1jb2xvci1ib3JkZXI6IzAwMDB9fS5naG9zdC1JZVF3UGpjWi5ibHVlLUllUXdQamNaOmRpc2FibGVkey0tdWktbGliLWxpZ2h0LWJ1dHRvbi1kZWZhdWx0LWNvbG9yLWJnOnZhcigtLWNvbG9yLXN0YXRpYy10cmFuc3BhcmVudCk7LS11aS1saWItbGlnaHQtYnV0dG9uLWRlZmF1bHQtY29sb3ItY29udGVudDp2YXIoLS1jb2xvci1idXR0b24tY29udGVudC1kaXNhYmxlZCk7LS11aS1saWItbGlnaHQtYnV0dG9uLWRlZmF1bHQtY29sb3ItYm9yZGVyOnZhcigtLWNvbG9yLXN0YXRpYy10cmFuc3BhcmVudCk7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMCl9"}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/42212.4754c2804ab9a979776b.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:13.927Z","timestamp":1785148033927,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/42212.4754c2804ab9a979776b.js HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:13 GMT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a61b1a8-8f61\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Thu, 23 Jul 2026 06:16:08 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/23/2026 10:17:28\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: e068dcfa37fc86c3007dd213b3659836\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":36705,"size_decoded":14239,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, Unicode text, UTF-8 text, with very long lines (3071)","md5":"e76e3cc979825bc25c1aa111b75bd78b","sha1":"6113f71858e18e692dc20143a9c20e222a5cc559","sha256":"bddee1e8d256f7e1fad4922a61955b4edaf993c3c78d20ce8c5ebd04ad4a3c21","sha512":"0d629425dab529dffde41a65bf8dacd4d7bd38f868a631db502b2eac3cf58f53c08d489b94580f84b89263cda52fe48cb17f0d61d27f55132f6ee350a2b8d719","ssdeep":"768:XuCACOy5bi5yIx6nSiRUhAmhY1pQZ7U49dSH7Y9syV2zNRbMMUzGTvFr9t7bRkzm:vLbRIAS/AmY1pQakdSb0saNzkbPlgQHL","tlshash":"74f219e071d5b05163d740eb843f4402f1692e2578064961fa6d9cdebe6c889723bfbc","first_seen":"2026-07-23T14:00:31.440048Z","last_seen":"2026-07-27T12:52:15.473262Z","times_seen":113,"resource_available":true,"data":"KHNlbGYud2VicGFja0NodW5rdHJhZGluZ3ZpZXc9c2VsZi53ZWJwYWNrQ2h1bmt0cmFkaW5ndmlld3x8W10pLnB1c2goW1s0MjIxMl0sezkyNDUwNyhlKXtlLmV4cG9ydHM9eyJ0YWJsZXQtbm9ybWFsLWJyZWFrcG9pbnQiOiIobWF4LXdpZHRoOiA3NjhweCkiLCJzbWFsbC1oZWlnaHQtYnJlYWtwb2ludCI6IihtYXgtaGVpZ2h0OiAzNjBweCkiLCJ0YWJsZXQtc21hbGwtYnJlYWtwb2ludCI6IihtYXgtd2lkdGg6IDQ0MHB4KSJ9fSwyNDQ1MjUoZSl7ZS5leHBvcnRzPXtsb2FkZXI6ImxvYWRlci1NZ2Y4RUZ3SyIsc3RhdGljOiJzdGF0aWMtTWdmOEVGd0siLGl0ZW06Iml0ZW0tTWdmOEVGd0siLCJ0di1idXR0b24tbG9hZGVyIjoidHYtYnV0dG9uLWxvYWRlci1NZ2Y4RUZ3SyIsbWVkaXVtOiJtZWRpdW0tTWdmOEVGd0siLHNtYWxsOiJzbWFsbC1NZ2Y4RUZ3SyIsYmxhY2s6ImJsYWNrLU1nZjhFRndLIix3aGl0ZToid2hpdGUtTWdmOEVGd0siLGdyYXk6ImdyYXktTWdmOEVGd0siLHByaW1hcnk6InByaW1hcnktTWdmOEVGd0sifX0sNDA2MTEwKGUsdCxzKXsidXNlIHN0cmljdCI7cy5kKHQse01hdGNoTWVkaWE6KCk9Pm99KTt2YXIgbj1zKDc3OTQ3NCk7Y2xhc3MgbyBleHRlbmRzIG4uUHVyZUNvbXBvbmVudHtjb25zdHJ1Y3RvcihlKXtzdXBlcihlKSx0aGlzLl9oYW5kbGVDaGFuZ2U9KCk9Pnt0aGlzLmZvcmNlVXBkYXRlKCl9LHRoaXMuc3RhdGU9e3F1ZXJ5OndpbmRvdy5tYXRjaE1lZGlhKHRoaXMucHJvcHMucnVsZSl9fWNvbXBvbmVudERpZE1vdW50KCl7dGhpcy5fc3Vic2NyaWJlKHRoaXMuc3RhdGUucXVlcnkpfWNvbXBvbmVudERpZFVwZGF0ZShlLHQpe3RoaXMuc3RhdGUucXVlcnkhPT10LnF1ZXJ5JiYodGhpcy5fdW5zdWJzY3JpYmUodC5xdWVyeSksdGhpcy5fc3Vic2NyaWJlKHRoaXMuc3RhdGUucXVlcnkpKX1jb21wb25lbnRXaWxsVW5tb3VudCgpe3RoaXMuX3Vuc3Vic2NyaWJlKHRoaXMuc3RhdGUucXVlcnkpfXJlbmRlcigpe3JldHVybiB0aGlzLnByb3BzLmNoaWxkcmVuKHRoaXMuc3RhdGUucXVlcnkubWF0Y2hlcyl9c3RhdGljIGdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcyhlLHQpe3JldHVybiBlLnJ1bGUhPT10LnF1ZXJ5Lm1lZGlhP3txdWVyeTp3aW5kb3cubWF0Y2hNZWRpYShlLnJ1bGUpfTpudWxsfV9zdWJzY3JpYmUoZSl7ZS5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLHRoaXMuX2hhbmRsZUNoYW5nZSl9X3Vuc3Vic2NyaWJlKGUpe2UucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY2hhbmdlIix0aGlzLl9oYW5kbGVDaGFuZ2UpfX19LDYwOTUyOChlLHQscyl7InVzZSBzdHJpY3QiO3MuZCh0LHtEaWFsb2dCcmVha3BvaW50czooKT0+b30pO3ZhciBuPXMoOTI0NTA3KTtjb25zdCBvPXtTbWFsbEhlaWdodDpuWyJzbWFsbC1oZWlnaHQtYnJlYWtwb2ludCJdLFRhYmxldFNtYWxsOm5bInRhYmxldC1zbWFsbC1icmVha3BvaW50Il0sVGFibGV0Tm9ybWFsOm5bInRhYmxldC1ub3JtYWwtYnJlYWtwb2ludCJdfX0sNjU5ODc4KGUsdCxzKXsidXNlIHN0cmljdCI7cy5kKHQse21ha2VPdmVybGFwYWJsZTooKT0+cn0pO3ZhciBuPXMoNzc5NDc0KSxvPXMoNTg1NDgpO2Z1bmN0aW9uIHIoZSx0KXtyZXR1cm4gY2xhc3MgZXh0ZW5kcyBuLlB1cmVDb21wb25lbnR7cmVuZGVyKCl7Y29uc3R7aXNPcGVuZWQ6cyxyb290OnJ9PXRoaXMucHJvcHM7aWYoIXMpcmV0dXJuIG51bGw7Y29uc3QgaT1uLmNyZWF0ZUVsZW1lbnQoZSx7Li4udGhpcy5wcm9wcyxyZWY6dGhpcy5wcm9wcy5jb21wb25lbnRSZWYsekluZGV4OjE1MH0pO3JldHVybiJwYXJlbnQiPT09cj9pOm4uY3JlYXRlRWxlbWVudChvLlBvcnRhbCx7c2hvdWxkVHJhcEZvY3VzOnR9LGkpfX19fSw1NTgwMzAoZSx0LHMpeyJ1c2Ugc3RyaWN0IjtzLmQodCx7VG91Y2hTY3JvbGxDb250YWluZXI6KCk9PmN9KTt2YXIgbj1zKDc3OTQ3NCksbz1zKDg1MzMzNikscj1zKDEzODYzOCksaT1zKDczODQ1OCk7Y29uc3QgYT1DU1Muc3VwcG9ydHMoIm92ZXJzY3JvbGwtYmVoYXZpb3IiLCJub25lIik7bGV0IGw9MDtjb25zdCBjPSgwLG4uZm9yd2FyZFJlZikoKChlLHQpPT57Y29uc3R7Y2hpbGRyZW46cywuLi5yfT1lLGM9KDAsbi51c2VSZWYpKG51bGwpO3JldHVybigwLG4udXNlSW1wZXJhdGl2ZUhhbmRsZSkodCwoKCk9PmMuY3VycmVudCkpLCgwLG4udXNlTGF5b3V0RWZmZWN0KSgoKCk9PntpZihpLmlzSU9TKXJldHVybiBsKyssbnVsbCE9PWMuY3VycmVudCYmKGE/MT09PWwmJihkb2N1bWVudC5ib2R5LnN0eWxlLm92ZXJzY3JvbGxCZWhhdmlvcj0ibm9uZSIpOigwLG8uZGlzYWJsZUJvZHlTY3JvbGwpKGMuY3VycmVudCx7YWxsb3dUb3VjaE1vdmU6dShjKX0pKSwoKT0+e2wtLSxudWxsIT09Yy5jdXJyZW50JiYoYT8wPT09bCYmKGRvY3VtZW50LmJvZHkuc3R5bGUub3ZlcnNjcm9sbEJlaGF2aW9yPSIiKTooMCxvLmVuYWJsZUJvZHlTY3JvbGwpKGMuY3VycmVudCkpfX0pLFtdKSxuLmNyZWF0ZUVsZW1lbnQoImRpdiIse3JlZjpjLC4uLnJ9LHMpfSkpO2Z1bmN0aW9uIHUoZSl7cmV0dXJuIHQ9Pntjb25zdCBzPSgwLHIuZW5zdXJlTm90TnVsbCkoZS5jdXJyZW50KSxuPWRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ7cmV0dXJuIXMuY29udGFpbnModCl8fG51bGwhPT1uJiZzLmNvbnRhaW5zKG4pJiZuLmNvbnRhaW5zKHQpfX19LDY0OTE2NihlLHQscyl7InVzZSBzdHJpY3QiO3MuZCh0LHtMb2FkZXI6KCk9PmN9KTt2YXIgbixvPXMoNzc5NDc0KSxyPXMoOTE0NDg3KSxpPXMubihyKSxhPXMoMjQ0NTI1KSxsPXMubihhKTtmdW5jdGlvbiBjKGUpe2NvbnN0e2NsYXNzTmFtZTp0LHNpemU6cz0ibWVkaXVtIixzdGF0aWNQb3NpdGlvbjpuLGNvbG9yOnI9ImJsYWNrIn09ZSxhPWkoKShsKCkuaXRlbSxsKClbcl0sbCgpW3NdKTtyZXR1cm4gby5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOmkoKShsKCkubG9hZGVyLG4mJmwoKS5zdGF0aWMsdCl9LG8uY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZTphfSksby5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOmF9KSxvLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6YX0pKX0KIWZ1bmN0aW9uKGUpe2UuTWVkaXVtPSJtZWRpdW0iLGUuU21hbGw9InNtYWxsIn0obnx8KG49e30pKX0sNTg1NDgoZSx0LHMpeyJ1c2Ugc3RyaWN0IjtzLmQodCx7UG9ydGFsOigpPT5jLFBvcnRhbENvbnRleHQ6KCk9PnV9KTt2YXIgbj1zKDc3OTQ3NCksbz1zKDEyOTM2NSkscj1zKDg1Njc3MCksaT1zKDkwMzQyKSxhPXMoNTcwMTkzKSxsPXMoNjA3ODMyKTtjbGFzcyBjIGV4dGVuZHMgbi5QdXJlQ29tcG9uZW50e2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLl91dWlkPSgwLHIubmFub2lkKSgpfWNvbXBvbmVudFdpbGxVbm1vdW50KCl7dGhpcy5fbWFuYWdlcigpLnJlbW92ZVdpbmRvdyh0aGlzLl91dWlkKX1yZW5kZXIoKXtjb25zdCBlPXRoaXMuX21hbmFnZXIoKS5lbnN1cmVXaW5kb3codGhpcy5fdXVpZCx0aGlzLnByb3BzLmxheWVyT3B0aW9ucyk7ZS5zdHlsZS50b3A9dGhpcy5wcm9wcy50b3B8fCIiLGUuc3R5bGUuYm90dG9tPXRoaXMucHJvcHMuYm90dG9tfHwiIixlLnN0eWxlLmxlZnQ9dGhpcy5wcm9wcy5sZWZ0fHwiIixlLnN0eWxlLnJpZ2h0PXRoaXMucHJvcHMucmlnaHR8fCIiLGUuc3R5bGUucG9pbnRlckV2ZW50cz10aGlzLnByb3BzLnBvaW50ZXJFdmVudHN8fCIiO2NvbnN0IHQ9dGhpcy5wcm9wcy5jbGFzc05hbWU7cmV0dXJuIHQmJigic3RyaW5nIj09dHlwZW9mIHQ/ZS5jbGFzc0xpc3QuYWRkKHQpOmUuY2xhc3NMaXN0LmFkZCguLi50KSksdGhpcy5wcm9wcy5zaG91bGRUcmFwRm9jdXMmJiFlLmhhc0F0dHJpYnV0ZShhLkZPQ1VTX1RSQVBfREFUQV9BVFRSSUJVVEUpJiZlLnNldEF0dHJpYnV0ZShhLkZPQ1VTX1RSQVBfREFUQV9BVFRSSUJVVEUsInRydWUiKSx0aGlzLnByb3BzWyJhcmlhLWhpZGRlbiJdJiZlLnNldEF0dHJpYnV0ZSgiYXJpYS1oaWRkZW4iLCJ0cnVlIiksby5jcmVhdGVQb3J0YWwobi5jcmVhdGVFbGVtZW50KHUuUHJvdmlkZXIse3ZhbHVlOnRoaXN9LHRoaXMucHJvcHMuY2hpbGRyZW4pLGUpfW1vdmVUb1RvcCgpe3RoaXMuX21hbmFnZXIoKS5tb3ZlVG9Ub3AodGhpcy5fdXVpZCl9X21hbmFnZXIoKXtyZXR1cm4gbnVsbD09PXRoaXMuY29udGV4dD8oMCxpLmdldFJvb3RPdmVybGFwTWFuYWdlcikoKTp0aGlzLmNvbnRleHR9fWMuY29udGV4dFR5cGU9bC5TbG90Q29udGV4dDtjb25zdCB1PW4uY3JlYXRlQ29udGV4dChudWxsKX0sNjA3ODMyKGUsdCxzKXsidXNlIHN0cmljdCI7cy5kKHQse1Nsb3Q6KCk9Pm8sU2xvdENvbnRleHQ6KCk9PnJ9KTt2YXIgbj1zKDc3OTQ3NCk7Y2xhc3MgbyBleHRlbmRzIG4uQ29tcG9uZW50e3Nob3VsZENvbXBvbmVudFVwZGF0ZSgpe3JldHVybiExfXJlbmRlcigpe3JldHVybiBuLmNyZWF0ZUVsZW1lbnQoImRpdiIse3N0eWxlOntwb3NpdGlvbjoiZml4ZWQiLHpJbmRleDoxNTAsbGVmdDowLHRvcDowfSxyZWY6dGhpcy5wcm9wcy5yZWZlcmVuY2V9KX19Y29uc3Qgcj1uLmNyZWF0ZUNvbnRleHQobnVsbCl9LDcxODU1MyhlLHQscyl7InVzZSBzdHJpY3QiO3MuZCh0LHtPdXRzaWRlRXZlbnQ6KCk9Pm99KTt2YXIgbj1zKDIzNjc2NSk7ZnVuY3Rpb24gbyhlKXtjb25zdHtjaGlsZHJlbjp0LC4uLnN9PWU7cmV0dXJuIHQoKDAsbi51c2VPdXRzaWRlRXZlbnQpKHMpKX19LDkwMzQyKGUsdCxzKXsidXNlIHN0cmljdCI7cy5kKHQse092ZXJsYXBNYW5hZ2VyOigpPT5pLGdldFJvb3RPdmVybGFwTWFuYWdlcjooKT0+bH0pO3ZhciBuPXMoMTM4NjM4KSxvPXMoNTcwMTkzKTtjbGFzcyBye2NvbnN0cnVjdG9yKCl7dGhpcy5fc3RvcmFnZT1bXX1hZGQoZSl7dGhpcy5fc3RvcmFnZS5wdXNoKGUpfXJlbW92ZShlKXt0aGlzLl9zdG9yYWdlPXRoaXMuX3N0b3JhZ2UuZmlsdGVyKCh0PT5lIT09dCkpfWhhcyhlKXtyZXR1cm4gdGhpcy5fc3RvcmFnZS5pbmNsdWRlcyhlKX1nZXRJdGVtcygpe3JldHVybiB0aGlzLl9zdG9yYWdlfX1jbGFzcyBpe2NvbnN0cnVjdG9yKGU9ZG9jdW1lbnQpe3RoaXMuX3N0b3JhZ2U9bmV3IHIsdGhpcy5fd2luZG93cz1uZXcgTWFwLHRoaXMuX2luZGV4PTAsdGhpcy5fZG9jdW1lbnQ9ZSx0aGlzLl9jb250YWluZXI9ZS5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCl9c2V0Q29udGFpbmVyKGUpe2NvbnN0IHQ9dGhpcy5fY29udGFpbmVyLHM9bnVsbD09PWU/dGhpcy5fZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpOmU7IWZ1bmN0aW9uKGUsdCl7QXJyYXkuZnJvbShlLmNoaWxkTm9kZXMpLmZvckVhY2goKGU9PntlLm5vZGVUeXBlPT09Tm9kZS5FTEVNRU5UX05PREUmJnQuYXBwZW5kQ2hpbGQoZSl9KSl9KHQscyksdGhpcy5fY29udGFpbmVyPXN9cmVnaXN0ZXJXaW5kb3coZSl7dGhpcy5fc3RvcmFnZS5oYXMoZSl8fHRoaXMuX3N0b3JhZ2UuYWRkKGUpfWVuc3VyZVdpbmRvdyhlLHQ9e3Bvc2l0aW9uOiJmaXhlZCIsZGlyZWN0aW9uOiJub3JtYWwifSl7Y29uc3Qgcz10aGlzLl93aW5kb3dzLmdldChlKTtpZih2b2lkIDAhPT1zKXJldHVybiBzO3RoaXMucmVnaXN0ZXJXaW5kb3coZSk7Y29uc3Qgbj10aGlzLl9kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtpZihuLnN0eWxlLnBvc2l0aW9uPXQucG9zaXRpb24sbi5zdHlsZS56SW5kZXg9dGhpcy5faW5kZXgudG9TdHJpbmcoKSxuLmRhdGFzZXQuaWQ9ZSx2b2lkIDAhPT10LmluZGV4KXtjb25zdCBlPXRoaXMuX2NvbnRhaW5lci5jaGlsZE5vZGVzLmxlbmd0aDtpZih0LmluZGV4Pj1lKXRoaXMuX2NvbnRhaW5lci5hcHBlbmRDaGlsZChuKTtlbHNlIGlmKHQuaW5kZXg8PTApdGhpcy5fY29udGFpbmVyLmluc2VydEJlZm9yZShuLHRoaXMuX2NvbnRhaW5lci5maXJzdENoaWxkKTtlbHNle2NvbnN0IGU9dGhpcy5fY29udGFpbmVyLmNoaWxkTm9kZXNbdC5pbmRleF07dGhpcy5fY29udGFpbmVyLmluc2VydEJlZm9yZShuLGUpfX1lbHNlInJldmVyc2UiPT09dC5kaXJlY3Rpb24/dGhpcy5fY29udGFpbmVyLmluc2VydEJlZm9yZShuLHRoaXMuX2NvbnRhaW5lci5maXJzdENoaWxkKTp0aGlzLl9jb250YWluZXIuYXBwZW5kQ2hpbGQobik7cmV0dXJuIHRoaXMuX3dpbmRvd3Muc2V0KGUsbiksKyt0aGlzLl9pbmRleCxufQp1bnJlZ2lzdGVyV2luZG93KGUpe3RoaXMuX3N0b3JhZ2UucmVtb3ZlKGUpO2NvbnN0IHQ9dGhpcy5fd2luZG93cy5nZXQoZSk7dm9pZCAwIT09dCYmKG51bGwhPT10LnBhcmVudEVsZW1lbnQmJnQucGFyZW50RWxlbWVudC5yZW1vdmVDaGlsZCh0KSx0aGlzLl93aW5kb3dzLmRlbGV0ZShlKSl9Z2V0WmluZGV4KGUpe2NvbnN0IHQ9dGhpcy5lbnN1cmVXaW5kb3coZSk7cmV0dXJuIHBhcnNlSW50KHQuc3R5bGUuekluZGV4fHwiMCIpfW1vdmVMYXN0V2luZG93VG9Ub3AoKXtjb25zdCBlPXRoaXMuX3N0b3JhZ2UuZ2V0SXRlbXMoKSx0PWVbZS5sZW5ndGgtMV07dCYmdGhpcy5tb3ZlVG9Ub3AodCl9bW92ZVRvVG9wKGUpe2lmKHRoaXMuZ2V0WmluZGV4KGUpIT09dGhpcy5faW5kZXgpe2NvbnN0IHQ9dGhpcy5lbnN1cmVXaW5kb3coZSk7dGhpcy5fd2luZG93cy5mb3JFYWNoKCgoZSxzKT0+e2UuaGFzQXR0cmlidXRlKG8uRk9DVVNfVFJBUF9EQVRBX0FUVFJJQlVURSkmJmUuc2V0QXR0cmlidXRlKG8uRk9DVVNfVFJBUF9EQVRBX0FUVFJJQlVURSxlPT09dD8idHJ1ZSI6ImZhbHNlIil9KSksdC5zdHlsZS56SW5kZXg9KCsrdGhpcy5faW5kZXgpLnRvU3RyaW5nKCl9fXJlbW92ZVdpbmRvdyhlKXt0aGlzLnVucmVnaXN0ZXJXaW5kb3coZSl9fWNvbnN0IGE9bmV3IFdlYWtNYXA7ZnVuY3Rpb24gbChlPWRvY3VtZW50KXtjb25zdCB0PWUuZ2V0RWxlbWVudEJ5SWQoIm92ZXJsYXAtbWFuYWdlci1yb290Iik7aWYobnVsbCE9PXQpcmV0dXJuKDAsbi5lbnN1cmVEZWZpbmVkKShhLmdldCh0KSk7e2NvbnN0IHQ9bmV3IGkoZSkscz1mdW5jdGlvbihlKXtjb25zdCB0PWUuY3JlYXRlRWxlbWVudCgiZGl2Iik7cmV0dXJuIHQuc3R5bGUucG9zaXRpb249ImFic29sdXRlIix0LnN0eWxlLnpJbmRleD0xNTAuLnRvU3RyaW5nKCksdC5zdHlsZS50b3A9IjBweCIsdC5zdHlsZS5sZWZ0PSIwcHgiLHQuaWQ9Im92ZXJsYXAtbWFuYWdlci1yb290Iix0LmRhdGFzZXQucWFJZD0ib3ZlcmxhcC1tYW5hZ2VyLXJvb3QiLHR9KGUpO3JldHVybiBhLnNldChzLHQpLHQuc2V0Q29udGFpbmVyKHMpLGUuYm9keS5hcHBlbmRDaGlsZChzKSx0fX12YXIgYzshZnVuY3Rpb24oZSl7ZVtlLkJhc2VaaW5kZXg9MTUwXT0iQmFzZVppbmRleCJ9KGN8fChjPXt9KSl9LDQ5ODY1MShlLHQscyl7InVzZSBzdHJpY3QiO3MuZCh0LHtpc0lEQ0V4Y2hhbmdlOigpPT5vfSk7dmFyIG49cygyMzI5NDgpO2Z1bmN0aW9uIG8oZSx0PSExKXtpZihlJiZlLnN0YXJ0c1dpdGgoImV4Y2hhbmdlLSIpKXJldHVybiBmdW5jdGlvbihlLHQ9ITEpe2NvbnN0IHM9d2luZG93LnBybz8uZ2V0UHJvZHVjdChlKTtyZXR1cm4hKHZvaWQgMD09PXN8fCEoMCxuLmlzUHJvZHVjdERlZmluZWQpKHMpfHwodD8hcy5pZGNfc2VydmljZV9jb2Rlc19kZWxheTohcy5pZGNfc2VydmljZV9jb2RlcykpfShlLHQpO2NvbnN0IHM9KGV8fCIiKS50b0xvd2VyQ2FzZSgpO3JldHVybiB3aW5kb3cucHJvPy5nZXRJRENFeGNoYW5nZXModCk/LmluY2x1ZGVzKHMpPz8hMX19LDkzMTM1MihlLHQscyl7InVzZSBzdHJpY3QiO2lmKHMuZCh0LHtnZXRPd25TaGFyZWRMaXN0OigpPT5jLHNoYXJlQ3VzdG9tTGlzdDooKT0+bCxzaGFyZU1hcmtlZExpc3Q6KCk9PmF9KSwyMTE4IT1zLmopdmFyIG49cyg3MTIxMzQpO3ZhciBvPXMoMzg0MDE3KSxyPXMoMzA0Mzk5KSxpPXMoNzkwMDQxKTtmdW5jdGlvbiBhKGUsdCl7cmV0dXJuKDAsby5mZXRjaCkoKDAsci53YXRjaGxpc3RVcmwpKGAvYXBpL3YxL3N5bWJvbHNfbGlzdC9jb2xvcmVkLyR7ZX0vc2hhcmUvYCkse21ldGhvZDoiUE9TVCIsYm9keTpKU09OLnN0cmluZ2lmeSh7c2hhcmVkOnR9KSxjcmVkZW50aWFsczoiaW5jbHVkZSIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifX0pLnRoZW4oci5oYW5kbGVKU09OKS50aGVuKGkuY29udmVydFRvTWFya2VkU3ltYm9sTGlzdCl9ZnVuY3Rpb24gbChlLHQpe3JldHVybigwLG8uZmV0Y2gpKCgwLHIud2F0Y2hsaXN0VXJsKShgL2FwaS92MS9zeW1ib2xzX2xpc3QvY3VzdG9tLyR7ZX0vc2hhcmUvYCkse21ldGhvZDoiUE9TVCIsYm9keTpKU09OLnN0cmluZ2lmeSh7c2hhcmVkOnR9KSxjcmVkZW50aWFsczoiaW5jbHVkZSIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifX0pLnRoZW4oci5oYW5kbGVKU09OKS50aGVuKGkuY29udmVydFRvQ3VzdG9tU3ltYm9sTGlzdCl9ZnVuY3Rpb24gYyhlLHQpe3JldHVybigwLG4uaXNMaXN0Q29sb3IpKGUpPygwLG8uZmV0Y2gpKCgwLHIud2F0Y2hsaXN0VXJsKShgL2FwaS92MS9zeW1ib2xzX2xpc3QvY29sb3JlZC8ke2V9YCkse21ldGhvZDoiR0VUIixjcmVkZW50aWFsczoiaW5jbHVkZSIsc2lnbmFsOnR9KS50aGVuKHIuaGFuZGxlSlNPTik6KDAsby5mZXRjaCkoKDAsci53YXRjaGxpc3RVcmwpKGAvYXBpL3YxL3N5bWJvbHNfbGlzdC9jdXN0b20vJHtlfWApLHttZXRob2Q6IkdFVCIsY3JlZGVudGlhbHM6ImluY2x1ZGUiLHNpZ25hbDp0fSkudGhlbihyLmhhbmRsZUpTT04pfX0sOTE5OTg1KGUsdCxzKXsidXNlIHN0cmljdCI7cy5kKHQse2J1aWxkVW5pcXVlTmFtZTooKT0+UyxjYW5Vc2VNdWx0aXBsZUxpc3RzOigpPT5fLGNvbXBhcmVTeW1ib2xzOigpPT5QLGNvbnZlcnRUb1NlcGFyYXRvck5hbWU6KCk9PnYsY3JlYXRlU2F2ZVJlbmFtZURpYWxvZzooKT0+dyxmaW5kTmV4dEF2YWlsYWJsZVN5bWJvbDooKT0+RCxnZXRTeW1ib2xGcm9tTGlzdDooKT0+ayxnZXRUcmFuc2xhdGVkTGlzdFRpdGxlOigpPT5FLGhhc0R1cGxpY2F0ZXM6KCk9PkwsaXNFcXVhbFJlY29yZHM6KCk9Pk4saXNWYWxpZFNlcGFyYXRvckl0ZW06KCk9Pmcsc2VwYXJhdG9yVmFsVG9EaXNwbGF5VmFsOigpPT5iLHNob3dSZW1vdmVTZWxlY3RlZFN5bWJvbHNDb25maXJtOigpPT5SLHNob3dVbmZsYWdBbGxTeW1ib2xzQ29uZmlybTooKT0+QixzaG93VW5mbGFnU2VsZWN0ZWRTeW1ib2xzQ29uZmlybTooKT0+SSxzb3J0U3ltYm9sczooKT0+VCx0b1Bvc2l0aW9uUmVjb3JkOigpPT5PLHRyYWNrUmVtb3ZlRXZlbnQ6KCk9PkF9KQo7dmFyIG49cygxMzg2MzgpLG89cyg5MzAyMzEpLHI9cyg3ODMyNTQpLGk9cygyMzQ5NjQpLGE9cyg4Nzc0NDIpLGw9cyg3NDU2NTQpLGM9cyg1MjgzOTYpLHU9cyg2OTMyMTYpLGQ9cyg5Mjk0ODgpO2lmKDIxMTghPXMuail2YXIgbT1zKDkwMTAyMik7dmFyIGg9cygzODY5MzEpLHA9cyg2NDM5MDMpLHk9KHMoOTExMzI3KSxzKDQ0MzgyNykpLGY9cyg4MzE1MjcpO3MoMzIwNTUpO2Z1bmN0aW9uIGcoZSl7cmV0dXJuKDAsZC5pc1NlcGFyYXRvckl0ZW0pKGUpfWZ1bmN0aW9uIGIoZSl7cmV0dXJuIGUucmVwbGFjZShtLlNFUEFSQVRPUl9QUkVGSVgsIiIpfWZ1bmN0aW9uIHYoZSl7cmV0dXJuIG0uU0VQQVJBVE9SX1BSRUZJWCtlfWZ1bmN0aW9uIFMoZSx0LHM9ITApe2NvbnN0IG49bmV3IFNldChlKSxvPXM/IiAxIjoiIjtpZighbi5oYXModCtvKSlyZXR1cm4gdCtvO2xldCByPTIsaT0iIjtmb3IoO3I8PTJlMyYmKGk9YCR7dH0gJHtyfWAsbi5oYXMoaSkpOylyKz0xO3JldHVybiBpfWZ1bmN0aW9uIF8oKXtyZXR1cm4oMCxvLmlzRmVhdHVyZXNldEVuYWJsZWQpKCJtdWx0aXBsZV93YXRjaGxpc3RzIikmJndpbmRvdy51c2VyJiZCb29sZWFuKHdpbmRvdy51c2VyLmlzX3Bybyl9ZnVuY3Rpb24gdyhlLHQsbixvLGEpe3JldHVybigpPT5uZXcgUHJvbWlzZSgoKGwsYyk9PnsoMCxpLnNob3dSZW5hbWUpKHt0aXRsZTplLGluaXRWYWx1ZTp0LHRleHQ6ci50KG51bGwse2NvbnRleHQ6ImlucHV0IGxhYmVsIn0scyg2NTE2MzgpKSxtYXhMZW5ndGg6MTI4LGVtb2ppUGlja2VyOiEwLG1haW5CdXR0b25UZXh0OmEsb25SZW5hbWU6KHtuZXdWYWx1ZTplLGRpYWxvZ0Nsb3NlOnR9KT0+e2woZSksdCgpLG8/LigpfX0sbil9KSl9ZnVuY3Rpb24gQyhlKXtyZXR1cm4gZS5yZXBsYWNlKCLiiJIiLCItIil9ZnVuY3Rpb24gVChlLHQscyxvLHIpe2NvbnN0IGk9ZnVuY3Rpb24oZSl7Y29uc3QgdD1bXSxzPVtdO2UuZm9yRWFjaCgoKGUsdCk9PnsoMCxkLmlzU2VwYXJhdG9ySXRlbSkoZSkmJnMucHVzaCh0KX0pKTtsZXQgbj0wO3MuZm9yRWFjaCgocz0+e3QucHVzaCh7dmFsdWVzOmUuc2xpY2UobixzKSxzZXBhcmF0b3I6ZVtzXX0pLG49cysxfSkpO2NvbnN0IG89c1tzLmxlbmd0aC0xXSxyPWUuc2xpY2UobysxKTtyZXR1cm4gci5sZW5ndGg+MCYmdC5wdXNoKHt2YWx1ZXM6cixzZXBhcmF0b3I6bnVsbH0pLHR9KHQpO3JldHVybiBpLmZvckVhY2goKHQ9Pnt0LnZhbHVlcy5zb3J0KCgodCxpKT0+e2lmKCJmbGFnIj09PXMpe2NvbnN0IGU9KDAsZi5nZXRNYXJrZWRTeW1ib2xzTGlzdFNlcnZpY2VJbnN0YW5jZSkoKS5nZXRTeW1ib2xDb2xvcih0KSxzPSgwLGYuZ2V0TWFya2VkU3ltYm9sc0xpc3RTZXJ2aWNlSW5zdGFuY2UpKCkuZ2V0U3ltYm9sQ29sb3IoaSk7cmV0dXJuKDAseS5nZXRTb3J0QnlDb2xvckNvbXBhcmF0b3IpKG8pKGUscyl9Y29uc3QgZD1sLnF1b3RlU2Vzc2lvbkFkYXB0ZXJzLmdldChlKS5nZXRMYXN0U3ltYm9sRGF0YSh0KSxtPWwucXVvdGVTZXNzaW9uQWRhcHRlcnMuZ2V0KGUpLmdldExhc3RTeW1ib2xEYXRhKGkpLGg9KDAsdS5pc0V4dHJhSG91cnNTZXNzaW9uKShkPy52YWx1ZXMuY3VycmVudF9zZXNzaW9uKSxnPSgwLHUuaXNFeHRyYUhvdXJzU2Vzc2lvbikobT8udmFsdWVzLmN1cnJlbnRfc2Vzc2lvbiksYj0oZSx0KT0+e2lmKCFlfHwiZmxhZyI9PT1zKXJldHVybjt2YXIgbjtyZXR1cm4iZXJyb3IiPT09ZS5zdGF0dXM/dm9pZCAwOnI9PT1hLlRpY2tlclR5cGUuRGVzY3JpcHRpb24mJiJzaG9ydF9uYW1lIj09PXM/KG49ZS52YWx1ZXMsKDAsYy5nZXRUcmFuc2xhdGVkU3ltYm9sRGVzY3JpcHRpb24pKG4pfHwoMCxwLnNhZmVTaG9ydE5hbWUpKHQpKToicmNocCI9PT1zPygwLHUuZ2V0RXh0cmFIb3Vyc0NoYW5nZVBlcmNlbnQpKGUudmFsdWVzKT8/dm9pZCAwOmUudmFsdWVzW3NdfSx2PWIoZCx0KSxTPWIobSxpKTtyZXR1cm4gZnVuY3Rpb24oZSx0KXtjb25zdCBzPS0xPT09dD8tMS8wOjEvMDtyZXR1cm4obyxyLGksYSk9PntpZigicmNocCIhPT1lKXtpZih2b2lkIDA9PT1vJiZ2b2lkIDA9PT1yKXJldHVybiAwO2lmKHZvaWQgMD09PW8pcmV0dXJuLXQ7aWYodm9pZCAwPT09cilyZXR1cm4gdH1zd2l0Y2goZSl7Y2FzZSJzaG9ydF9uYW1lIjpyZXR1cm4gdCoobz09PXI/MDooMCxuLmVuc3VyZSkobyk8KDAsbi5lbnN1cmUpKHIpPy0xOjEpO2Nhc2UicmNocCI6cmV0dXJuIGkhPT1hP2k+YT8tMToxOihpfHwobz12b2lkIDApLGF8fChyPXZvaWQgMCkseChvLHIsdCxzKSk7Y2FzZSJsYXN0X3ByaWNlIjpjYXNlImNoYW5nZSI6Y2FzZSJjaGFuZ2VfcGVyY2VudCI6cmV0dXJuIHgobyxyLHQscyk7Y2FzZSJ2b2x1bWUiOntjb25zdCBlPSgwLG4uZW5zdXJlKShvKT49MWUxMDA/czpOdW1iZXIobyksaT0oMCxuLmVuc3VyZSkocik+PTFlMTAwP3M6TnVtYmVyKHIpO3JldHVybiB0KihlLWkpfWRlZmF1bHQ6cmV0dXJuKDAsbi5lbnN1cmUpKG8pPigwLG4uZW5zdXJlKShyKT8tMToxfX19KHMsbykodixTLGgsZyl9KSl9KSksZnVuY3Rpb24oZSl7Y29uc3QgdD1bXTtyZXR1cm4gZS5mb3JFYWNoKCgoe3ZhbHVlczplLHNlcGFyYXRvcjpzfSk9Pnt0LnB1c2goLi4uZSksbnVsbCE9PXMmJnQucHVzaChzKX0pKSx0fShpKX1mdW5jdGlvbiB4KGUsdCxzLG4pe2xldCBvPXBhcnNlRmxvYXQoQyhTdHJpbmcoZSkpKSxyPXBhcnNlRmxvYXQoQyhTdHJpbmcodCkpKTtyZXR1cm4gbz1pc05hTihvKT9uOm8scj1pc05hTihyKT9uOnIscyooby1yKX1mdW5jdGlvbiBFKGUpe3JldHVybiJjb2xvcmVkIj09PWUudHlwZT9lLm5hbWV8fCgwLHkuZ2V0Q29sb3JlZExpc3RUaXRsZSkoZS5jb2xvcik6ZS5uYW1lfWZ1bmN0aW9uIFAoZSx0KXtyZXR1cm4gZT09PXR8fCgwLHAuc2FmZVNob3J0TmFtZSkoZSk9PT10fWZ1bmN0aW9uIE8oZSl7cmV0dXJue3N5bWJvbDplLnN5bWJvbCxzaWRlOmUuc2lkZSxxdHk6ZS5xdHksYXZnUHJpY2U6ZS5hdmdQcmljZX19ZnVuY3Rpb24gTihlLHQpewpyZXR1cm4gZT09PXR8fHZvaWQgMCE9PWUmJnZvaWQgMCE9PXQmJihlLnNpZGU9PT10LnNpZGUmJmUucXR5PT09dC5xdHkmJmUuYXZnUHJpY2U9PT10LmF2Z1ByaWNlJiZlLnN5bWJvbD09PXQuc3ltYm9sKX1mdW5jdGlvbiBMKGUpe2NvbnN0IHQ9bmV3IE1hcDtmb3IobGV0IHM9MDtzPGUubGVuZ3RoO3MrKyl7Y29uc3Qgbz1lW3NdLnRvVXBwZXJDYXNlKCkscj0oMCxwLnNhZmVTaG9ydE5hbWUpKG8pO2lmKHQuaGFzKHIpKXtjb25zdCBlPSgwLG4uZW5zdXJlRGVmaW5lZCkodC5nZXQocikpO2lmKGUuaGFzKG8pfHxlLmhhcyhyKXx8bz09PXIpcmV0dXJuITA7ZS5hZGQobyksdC5zZXQocixlKX1lbHNlIHQuc2V0KHIsbmV3IFNldChbb10pKX1yZXR1cm4hMX1mdW5jdGlvbiBrKGUsdCl7aWYodC5pbmNsdWRlcyhlKSlyZXR1cm4gZX1mdW5jdGlvbiBEKGUsdCxzKXtjb25zdCBuPSJuZXh0Ij09PXM7Zm9yKGxldCBzPWU7bj9zPHQubGVuZ3RoOnM+PTA7bj9zKys6cy0tKWlmKCEoMCxkLmlzU2VwYXJhdG9ySXRlbSkodFtzXSkmJnMhPT1lKXJldHVybiB0W3NdO2ZvcihsZXQgcz1uPzA6dC5sZW5ndGgtMTtuP3M8ZTpzPmU7bj9zKys6cy0tKWlmKCEoMCxkLmlzU2VwYXJhdG9ySXRlbSkodFtzXSkpcmV0dXJuIHRbc119ZnVuY3Rpb24gQShlKXtlPygwLGgudHJhY2tFdmVudCkoIldhdGNobGlzdCIsIk11bHRpIHNlbGVjdCIsIlJlbW92ZSIpOigwLGgudHJhY2tFdmVudCkoIldhdGNobGlzdCIsIlJlbW92ZSIpfWZ1bmN0aW9uIE0oZSl7cmV0dXJuIHIudChudWxsLHtwbHVyYWw6IkRvaW5nIHRoaXMgd2lsbCByZW1vdmUge2NvdW50fSBzZWxlY3RlZCBzeW1ib2xzIGZyb20geW91ciB3YXRjaGxpc3QuIixjb250ZXh0OiJzeW1ib2xzX2FuZF9kcmF3aW5nc19jb3VudCIsY291bnQ6ZSxyZXBsYWNlOntjb3VudDplLnRvU3RyaW5nKCl9fSxzKDE2OTgzKSl9ZnVuY3Rpb24gUihlLHQpe2NvbnN0IG49ZG9jdW1lbnQuYWN0aXZlRWxlbWVudDsoMCxpLnNob3dDb25maXJtKSh7dGl0bGU6ci50KG51bGwse2NvbnRleHQ6ImNvbmZpcm1fZGlhbG9nX3RpdGxlIn0scyg0MzU3NTApKSx0ZXh0Ok0oZSksbWFpbkJ1dHRvblRleHQ6ci50KG51bGwse2NvbnRleHQ6ImFjdGlvbiJ9LHMoMTA4KSksbWFpbkJ1dHRvbkludGVudDoiZGFuZ2VyIixjYW5jZWxCdXR0b25UZXh0OnIudChudWxsLHtjb250ZXh0OiJhY3Rpb24ifSxzKDMwOTMzKSksb25Db25maXJtOih7ZGlhbG9nQ2xvc2U6ZX0pPT57dCgpLGUoKX0sb25DbG9zZTooKT0+e24/LmZvY3VzKCl9fSl9ZnVuY3Rpb24gSShlKXsoMCxpLnNob3dDb25maXJtKSh7dGl0bGU6ci50KG51bGwse2NvbnRleHQ6ImNvbmZpcm1fZGlhbG9nX3RpdGxlIn0scyg0MTcxOTEpKSx0ZXh0OnIudChudWxsLHZvaWQgMCxzKDQ5NTM2OSkpLG1haW5CdXR0b25UZXh0OnIudChudWxsLHtjb250ZXh0OiJhY3Rpb24ifSxzKDgzNTkzNykpLG1haW5CdXR0b25JbnRlbnQ6ImRhbmdlciIsY2FuY2VsQnV0dG9uVGV4dDpyLnQobnVsbCx7Y29udGV4dDoiYWN0aW9uIn0scygzMDkzMykpLG9uQ29uZmlybTooe2RpYWxvZ0Nsb3NlOnR9KT0+e2UoKSx0KCl9fSl9ZnVuY3Rpb24gQihlKXsoMCxpLnNob3dDb25maXJtKSh7dGl0bGU6ci50KG51bGwse2NvbnRleHQ6ImNvbmZpcm1fZGlhbG9nX3RpdGxlIn0scyg4MjY4NzMpKSx0ZXh0OnIudChudWxsLHZvaWQgMCxzKDk1ODk1MSkpLG1haW5CdXR0b25UZXh0OnIudChudWxsLHtjb250ZXh0OiJhY3Rpb24ifSxzKDgzNTkzNykpLG1haW5CdXR0b25JbnRlbnQ6ImRhbmdlciIsY2FuY2VsQnV0dG9uVGV4dDpyLnQobnVsbCx7Y29udGV4dDoiYWN0aW9uIn0scygzMDkzMykpLG9uQ29uZmlybTooe2RpYWxvZ0Nsb3NlOnR9KT0+e2UoKSx0KCl9fSl9fSw0MzIzNTAoZSx0LHMpeyJ1c2Ugc3RyaWN0IjtzLmQodCx7Uk9VVElORV9DQU5DRUxMRURfTUVTU0FHRTooKT0+YyxTeW1ib2xMaXN0U3luY2hyb25pemF0aW9uU2VydmljZTooKT0+dX0pO3ZhciBuPXMoNTA3Mjg1KSxvPXMoNjMyNjg2KSxyPXMoMjIxMDYxKTtzKDMwMDI4Nik7Y29uc3QgaT02ZTUsYT0zZTQsbD0zZTQsYz0iUk9VVElORV9DQU5DRUxMRUQiO2NsYXNzIHV7Y29uc3RydWN0b3IoZSl7dGhpcy5fZGVzdHJveWVkPSExLHRoaXMuX3N0YXRlPW51bGwsdGhpcy5fc3luYz1udWxsLHRoaXMuX2Rpc2Nvbm5lY3RUaW1lc3RhbXA9bnVsbCx0aGlzLl9wcmV2Q29ubmVjdGlvblN0YXR1cz1udWxsLHRoaXMuX29uUHVzaFN0cmVhbUNoYW5nZT1lPT57d2luZG93LnVzZXImJndpbmRvdy51c2VyLnNlc3Npb25faGFzaCE9PWUuc2Vzc2lvbl9oYXNoP24ucHVzaFN0cmVhbU11bHRpcGxleGVyLm93blB1c2hTdHJlYW0oKT8odGhpcy5fbG9nZ2VyLmxvZ05vcm1hbCgiQ3Jvc3MgYnJvd3NlciBzeW5jIiksdGhpcy5zeW5jU3ltYm9scyhlKSk6dGhpcy5fbG9nZ2VyLmxvZ0RlYnVnKCJTeW5jIHNraXBwZWQ6IG9uIHNlY29uZGFyeSB0YWIiKTp0aGlzLl9sb2dnZXIubG9nRGVidWcoIlN5bmMgc2tpcHBlZDogc2Vzc2lvbiBoYXNoIil9LHRoaXMuX29uUHVzaFN0cmVhbVN0YXR1cz1lPT57Y29uc3QgdD1EYXRlLm5vdygpO2lmKGU9PT1vLkNvbm5lY3Rpb25TdGF0dXMuT3BlbiYmdGhpcy5fcHJldkNvbm5lY3Rpb25TdGF0dXM9PT1vLkNvbm5lY3Rpb25TdGF0dXMuQ2xvc2VkKXt0aGlzLl9wcmV2Q29ubmVjdGlvblN0YXR1cz1lO2NvbnN0IHM9bnVsbD09PXRoaXMuX2Rpc2Nvbm5lY3RUaW1lc3RhbXA/MDp0LXRoaXMuX2Rpc2Nvbm5lY3RUaW1lc3RhbXA7aWYodGhpcy5fZGlzY29ubmVjdFRpbWVzdGFtcD1udWxsLCF3aW5kb3cuaXNfYXV0aGVudGljYXRlZClyZXR1cm4gdm9pZCB0aGlzLl9sb2dnZXIubG9nRGVidWcoIlN5bmMgc2tpcHBlZDogaXMgbm90IGF1dGhlbnRpY2F0ZWQiKTtpZighbi5wdXNoU3RyZWFtTXVsdGlwbGV4ZXIub3duUHVzaFN0cmVhbSgpKXJldHVybiB2b2lkIHRoaXMuX2xvZ2dlci5sb2dEZWJ1ZygiU3luYyBza2lwcGVkOiBvbiBzZWNvbmRhcnkgdGFiIik7aWYoczxpKXJldHVybiB2b2lkIHRoaXMuX2xvZ2dlci5sb2dEZWJ1ZygiU3luYyBza2lwcGVkOiBzaG9ydCBkaXNjb25uZWN0aW9uIikKO3RoaXMuX3JlY29ubmVjdFRpbWVvdXQ9c2V0VGltZW91dCgoKCk9Pntjb25zdCBlPW51bGwhPT10aGlzLl9zdGF0ZT90aGlzLl9nZXRUaW1lc3RhbXAodGhpcy5fc3RhdGUpOm51bGw7bnVsbD09PWV8fGU8dD8odGhpcy5fbG9nZ2VyLmxvZ05vcm1hbCgiUmVjb25uZWN0IHN5bmMiKSx0aGlzLnN5bmNTeW1ib2xzKCkpOnRoaXMuX2xvZ2dlci5sb2dOb3JtYWwoIlJlY29ubmVjdCBzeW5jIGhhbmRsZWQgYnkgYW5vdGhlciB0YWIiKX0pLE1hdGgucmFuZG9tKCkqbCthKX1lbHNlIGU9PT1vLkNvbm5lY3Rpb25TdGF0dXMuQ2xvc2VkJiYodGhpcy5fZGlzY29ubmVjdFRpbWVzdGFtcD1EYXRlLm5vdygpLHRoaXMuX3ByZXZDb25uZWN0aW9uU3RhdHVzPWUsY2xlYXJUaW1lb3V0KHRoaXMuX3JlY29ubmVjdFRpbWVvdXQpKX07Y29uc3R7ZXZlbnQ6dCxzdGF0ZTpzLHN5bmNocm9uaXplOmMsZ2V0VGltZXN0YW1wOnUsbG9nZ2VyTmFtZTpkfT1lO3RoaXMuX2V2ZW50PXQsdGhpcy5fc3luY2hyb25pemU9Yyx0aGlzLl9zdGF0ZT1zLHRoaXMuX2dldFRpbWVzdGFtcD11LHRoaXMuX2xvZ2dlcj0oMCxyLmdldExvZ2dlcikoYCR7ZH0uU3ltYm9sTGlzdFN5bmNocm9uaXphdGlvblNlcnZpY2VgKSx0aGlzLmNvbm5lY3QoKX1kZXN0cm95KCl7dGhpcy5fZGVzdHJveWVkPSEwLHRoaXMuX3N5bmM9bnVsbCx0aGlzLmNsb3NlQ29ubmVjdGlvbigpfXN5bmNTeW1ib2xzKGUpe2lmKG51bGw9PT10aGlzLl9zeW5jKXtjb25zdCB0PXRoaXMuX3N5bmM9dGhpcy5fc3luY2hyb25pemUoe2Fzc2VydDooKT0+e2lmKHRoaXMuX3N5bmMhPT10KXRocm93IG5ldyBFcnJvcihjKX0sY2FuY2VsOigpPT57dGhpcy5fc3luYz1udWxsfX0sZSkudGhlbigoKCk9Pnt0aGlzLl9zeW5jPW51bGx9KSwoZT0+e3Rocm93IHRoaXMuX3N5bmM9bnVsbCxlfSkpfXJldHVybiB0aGlzLl9zeW5jfWNvbm5lY3QoKXt0aGlzLl9zdWJzY3JpYmVPblB1c2hTdHJlYW0oKX1jbG9zZUNvbm5lY3Rpb24oKXt0aGlzLl91bnN1YnNjcmliZU9uUHVzaFN0cmVhbSgpfWlzRGVzdHJveWVkKCl7cmV0dXJuIHRoaXMuX2Rlc3Ryb3llZH1nZXRTdGF0ZSgpe3JldHVybiB0aGlzLl9zdGF0ZX1zZXRTdGF0ZShlKXt0aGlzLl9zdGF0ZT1lfV9zdWJzY3JpYmVPblB1c2hTdHJlYW0oKXtuLnB1c2hTdHJlYW1NdWx0aXBsZXhlci5vbih0aGlzLl9ldmVudCx0aGlzLl9vblB1c2hTdHJlYW1DaGFuZ2UpLG4ucHVzaFN0cmVhbU11bHRpcGxleGVyLm9uUHJpdmF0ZVN0YXR1cyh0aGlzLl9vblB1c2hTdHJlYW1TdGF0dXMpfV91bnN1YnNjcmliZU9uUHVzaFN0cmVhbSgpe24ucHVzaFN0cmVhbU11bHRpcGxleGVyLm9mZih0aGlzLl9ldmVudCx0aGlzLl9vblB1c2hTdHJlYW1DaGFuZ2UpLG4ucHVzaFN0cmVhbU11bHRpcGxleGVyLm9mZlN0YXR1cyh0aGlzLl9vblB1c2hTdHJlYW1TdGF0dXMpLGNsZWFyVGltZW91dCh0aGlzLl9yZWNvbm5lY3RUaW1lb3V0KSx0aGlzLl9wcmV2Q29ubmVjdGlvblN0YXR1cz1udWxsfX19LDMxMzMwMChlLHQscyl7InVzZSBzdHJpY3QiO3MuZCh0LHtNQVhfV0FUQ0hMSVNUX0xFTkdUSDooKT0+YSxnZXRXYXRjaGxpc3RTeW1ib2xzTGltaXQ6KCk9Pmwsc2hvd01heExpbWl0RXJyb3I6KCk9PmN9KTt2YXIgbj1zKDU2OTM5OCksbz1zKDQ3OTM0KSxyPXMoMjM0OTY0KSxpPXMoNzgzMjU0KTtzKDMwMDI4Nik7Y29uc3QgYT0xZTM7ZnVuY3Rpb24gbCgpe3JldHVybigwLG4uaXNGZWF0dXJlRW5hYmxlZCkoIndhdGNobGlzdF9zeW1ib2xzX3RpZXJlZF9saW1pdHMiKT8oMCxvLmdldENvbmZpZykoIldBVENITElTVF9TWU1CT0xTIik/LmxpbWl0Pz9hOmF9ZnVuY3Rpb24gYyhlKXsoMCxyLnNob3dXYXJuaW5nKSh7dGl0bGU6aS50KG51bGwsdm9pZCAwLHMoNTY2OTQ4KSksdGV4dDppLnQobnVsbCx7cmVwbGFjZTp7bnVtYmVyOmEudG9TdHJpbmcoKX19LHMoMzI4ODI4KSl9LGUpfX0sOTEzNDEzKGUsdCxzKXsidXNlIHN0cmljdCI7cy5kKHQse01hcmtlZFN5bWJvbHNMaXN0QXBpOigpPT5tfSk7dmFyIG49cygyMjEwNjEpLG89cygzODQwMTcpLHI9cyg1ODA1MjYpLGk9cyg2MjEyMCksYT1zKDk2MjA4MSksbD1zKDMwNDM5OSk7YXN5bmMgZnVuY3Rpb24gYyhlLHQpe2NvbnN0IHM9KDAsci5yZW1vdGVTeW1ib2xzRm9ybUxvY2FsU3RhdGUpKGUsdCk7cmV0dXJuIGkucGVuZGluZ09wZW5TZXBhcmF0b3JzLmRlbGV0ZShlKSwoMCxvLmZldGNoKSgoMCxsLndhdGNobGlzdFVybCkoYC9hcGkvdjEvc3ltYm9sc19saXN0L2NvbG9yZWQvJHtlfS9yZXBsYWNlLz91bnNhZmU9dHJ1ZWApLHttZXRob2Q6IlBPU1QiLGJvZHk6SlNPTi5zdHJpbmdpZnkocyksY3JlZGVudGlhbHM6ImluY2x1ZGUiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn19KS50aGVuKGwuaGFuZGxlSlNPTil9dmFyIHU9cyg5MzEzNTIpO2NvbnN0IGQ9KDAsbi5nZXRMb2dnZXIpKCJNYXJrZWRTeW1ib2xzLkFwaSIpO2NsYXNzIG17Z2V0TGlzdHMoKXtyZXR1cm4oMCxvLmZldGNoKSgoMCxsLndhdGNobGlzdFVybCkoIi9hcGkvdjEvc3ltYm9sc19saXN0L2NvbG9yZWQvIikse2NyZWRlbnRpYWxzOiJpbmNsdWRlIn0pLnRoZW4obC5oYW5kbGVKU09OKX1yZW1vdmVTeW1ib2xzKGUsdCl7cmV0dXJuIDA9PT10Lmxlbmd0aD9Qcm9taXNlLnJlc29sdmUobnVsbCk6KGQubG9nTm9ybWFsKGBTZW5kaW5nIHJlcXVlc3QgdG8gcmVtb3ZlIHN5bWJvbHMgZnJvbSAke2V9LWxpc3Q6ICR7dH1gKSxhc3luYyBmdW5jdGlvbihlLHQpe3JldHVybiBpLnBlbmRpbmdPcGVuU2VwYXJhdG9ycy5oYXMoZSk/YyhlLCgwLHIuZ2V0TG9jYWxMaXN0U3ltYm9scykoZSkpOigwLG8uZmV0Y2gpKCgwLGwud2F0Y2hsaXN0VXJsKShgL2FwaS92MS9zeW1ib2xzX2xpc3QvY29sb3JlZC8ke2V9L3JlbW92ZS9gKSx7bWV0aG9kOiJQT1NUIixib2R5OkpTT04uc3RyaW5naWZ5KHQpLGNyZWRlbnRpYWxzOiJpbmNsdWRlIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9fSkudGhlbihsLmhhbmRsZUpTT04pfShlLHQpKX1hcHBlbmRTeW1ib2xzKGUsdCl7CnJldHVybiAwPT09dC5sZW5ndGg/UHJvbWlzZS5yZXNvbHZlKG51bGwpOihkLmxvZ05vcm1hbChgU2VuZGluZyByZXF1ZXN0IHRvIGFwcGVuZCBzeW1ib2xzIHRvICR7ZX0tbGlzdDogJHt0fWApLGFzeW5jIGZ1bmN0aW9uKGUsdCl7cmV0dXJuIGkucGVuZGluZ09wZW5TZXBhcmF0b3JzLmhhcyhlKT9jKGUsKDAsci5nZXRMb2NhbExpc3RTeW1ib2xzKShlKSk6KDAsby5mZXRjaCkoKDAsbC53YXRjaGxpc3RVcmwpKGAvYXBpL3YxL3N5bWJvbHNfbGlzdC9jb2xvcmVkLyR7ZX0vYXBwZW5kL2ApLHttZXRob2Q6IlBPU1QiLGJvZHk6SlNPTi5zdHJpbmdpZnkodCksY3JlZGVudGlhbHM6ImluY2x1ZGUiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn19KS50aGVuKGwuaGFuZGxlSlNPTil9KGUsdCkpfXJlcGxhY2VTeW1ib2xzKGUsdCl7cmV0dXJuIDA9PT10Lmxlbmd0aD9Qcm9taXNlLnJlc29sdmUobnVsbCk6KGQubG9nTm9ybWFsKGBTZW5kaW5nIHJlcXVlc3QgdG8gcmVwbGFjZSBzeW1ib2xzIGluICR7ZX0tbGlzdDogJHt0fWApLGMoZSx0KSl9cmVzZXRTeW1ib2xzKGUpe3JldHVybiAwPT09ZS5sZW5ndGg/UHJvbWlzZS5yZXNvbHZlKCk6KGQubG9nTm9ybWFsKGBTZW5kaW5nIHJlcXVlc3QgdG8gcmVzZXQgc3ltYm9sczogJHtlfWApLGZ1bmN0aW9uKGUpe3JldHVybigwLG8uZmV0Y2gpKCgwLGwud2F0Y2hsaXN0VXJsKSgiL2FwaS92MS9zeW1ib2xzX2xpc3QvY29sb3JlZC9idWxrX3JlbW92ZS8iKSx7bWV0aG9kOiJQT1NUIixib2R5OkpTT04uc3RyaW5naWZ5KGUpLGNyZWRlbnRpYWxzOiJpbmNsdWRlIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9fSkudGhlbihsLmhhbmRsZUpTT04pfShlKSl9cmVzZXRBbGwoKXtyZXR1cm4gZC5sb2dOb3JtYWwoIlNlbmRpbmcgcmVxdWVzdCB0byByZXNldCBBTEwgc3ltYm9scyIpLCgwLG8uZmV0Y2gpKCgwLGwud2F0Y2hsaXN0VXJsKSgiL2FwaS92MS9zeW1ib2xzX2xpc3QvY29sb3JlZC8iKSx7bWV0aG9kOiJERUxFVEUiLGNyZWRlbnRpYWxzOiJpbmNsdWRlIn0pLnRoZW4obC5oYW5kbGVKU09OKX1yZW5hbWVMaXN0KGUsdCl7cmV0dXJuIGQubG9nTm9ybWFsKGBTZW5kaW5nIHJlcXVlc3QgdG8gcmVuYW1lICR7ZX0tbGlzdDogJHt0fWApLGZ1bmN0aW9uKGUsdCl7cmV0dXJuKDAsby5mZXRjaCkoKDAsbC53YXRjaGxpc3RVcmwpKGAvYXBpL3YxL3N5bWJvbHNfbGlzdC9jb2xvcmVkLyR7ZX0vcmVuYW1lL2ApLHttZXRob2Q6IlBPU1QiLGJvZHk6SlNPTi5zdHJpbmdpZnkoe25hbWU6dH0pLGNyZWRlbnRpYWxzOiJpbmNsdWRlIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9fSkudGhlbihsLmhhbmRsZUpTT04pfShlLHQpfXNoYXJlTGlzdChlLHQpe3JldHVybiBkLmxvZ05vcm1hbChgU2VuZGluZyByZXF1ZXN0IHRvIHNoYXJlICR7ZX0tbGlzdDogJHt0fWApLCgwLHUuc2hhcmVNYXJrZWRMaXN0KShlLHQpfWNoYW5nZURlc2NyaXB0aW9uKGUsdCl7cmV0dXJuIGQubG9nTm9ybWFsKGBTZW5kaW5nIHJlcXVlc3QgdG8gY2hhbmdlIGRlc2NyaXB0aW9uICR7ZX0tbGlzdDogJHt0fWApLGZ1bmN0aW9uKGUsdCl7cmV0dXJuKDAsby5mZXRjaCkoKDAsbC53YXRjaGxpc3RVcmwpKGAvYXBpL3YxL3N5bWJvbHNfbGlzdC9jb2xvcmVkLyR7ZX0vdXBkYXRlX21ldGEvYCkse21ldGhvZDoiUE9TVCIsYm9keTpKU09OLnN0cmluZ2lmeSh7ZGVzY3JpcHRpb246dH0pLGNyZWRlbnRpYWxzOiJpbmNsdWRlIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9fSkudGhlbihsLmhhbmRsZUpTT04pfShlLHQpfXJlbmFtZVNlcGFyYXRvcihlLHQscyl7cmV0dXJuIGQubG9nTm9ybWFsKGBTZW5kaW5nIHJlcXVlc3QgdG8gcmVuYW1lIHNlcGFyYXRvciAke2V9LWxpc3Q6ICR7dH0gdG8gJHtzfWApLGFzeW5jIGZ1bmN0aW9uKGUsdCxzKXtyZXR1cm4oMCxhLmNvbW1vblJlbmFtZVNlcGFyYXRvcikoZSwiY29sb3JlZCIsdCxzKX0oZSx0LHMpfX19LDcxMjEzNChlLHQscyl7InVzZSBzdHJpY3QiO3MuZCh0LHtMSVNUX0NPTE9SUzooKT0+bSxMaXN0Q29sb3I6KCk9Pm4sY2hhbmdlRGVzY3JpcHRpb246KCk9PkMsY3JlYXRlQ3Jvc3NUYWJTeW5jTWlkZGxld2FyZTooKT0+TixnZXRDb21tYW5kczooKT0+QSxnZXRMaXN0QnlDb2xvcjooKT0+ayxnZXRTeW1ib2xDb2xvcjooKT0+TCxnZXRTeW1ib2xzQnlDb2xvcjooKT0+RCxnZXRUaW1lc3RhbXA6KCk9Pk0saXNMaXN0Q29sb3I6KCk9PmgsbWFya01hbnk6KCk9PmIscmVkdWNlcjooKT0+TyxyZW1vdmU6KCk9Pl8scmVuYW1lOigpPT53LHJlbmFtZVNlcGFyYXRvcjooKT0+VCxyZXNldDooKT0+UyxzZXR1cDooKT0+dixzaGFyZTooKT0+RSxzaGlmdENvbW1hbmQ6KCk9PngsdXBkYXRlUGVyc2lzdGVkU3RhdGU6KCk9PlB9KTt2YXIgbixvPXMoMTMwNjk5KSxyPXMoMzI3MjM5KSxpPXMoMTM4NjM4KSxhPXMoNDMzMjApLGw9cygyOTUyMzUpLGM9cyg2MTI0NDYpLHU9cyg5MDEwMjIpLGQ9cyg5NzM1MjQpOyFmdW5jdGlvbihlKXtlLlJlZD0icmVkIixlLkJsdWU9ImJsdWUiLGUuR3JlZW49ImdyZWVuIixlLk9yYW5nZT0ib3JhbmdlIixlLlB1cnBsZT0icHVycGxlIixlLkN5YW49ImN5YW4iLGUuUGluaz0icGluayJ9KG58fChuPXt9KSk7Y29uc3QgbT1bbi5SZWQsbi5CbHVlLG4uR3JlZW4sbi5PcmFuZ2Usbi5QdXJwbGUsbi5DeWFuLG4uUGlua107ZnVuY3Rpb24gaChlKXtyZXR1cm4gbmV3IFNldChtKS5oYXMoZSl9Y29uc3QgcD17bGlzdHM6e2NvbG9yczpbXSxieUNvbG9yOnt9LGJ5U3ltYm9sOnt9fSxjb21tYW5kczpbXSx0aW1lc3RhbXA6bnVsbH07ZnVuY3Rpb24geShlLHQpe2NvbnN0e2xpc3RzOnN9PWUsbj1zLmJ5Q29sb3JbdF07biYmMD09PW4uc3ltYm9scy5sZW5ndGgmJihzLmNvbG9ycz1zLmNvbG9ycy5maWx0ZXIoKGU9PmUhPT10KSkpfWZ1bmN0aW9uIGYoZSl7cmV0dXJuKDAsdS5pc1NlcGFyYXRvckl0ZW0pKGUpfWNvbnN0IGc9KDAsby5jcmVhdGVTbGljZSkoe25hbWU6Im1hcmtlZC1saXN0cyIsaW5pdGlhbFN0YXRlOnAsCnJlZHVjZXJzOntzZXR1cDooZSx0KT0+e2NvbnN0e2xpc3RzOnMsdGltZXN0YW1wOm59PXQucGF5bG9hZCxvPXtsaXN0czp7Y29sb3JzOltdLGJ5Q29sb3I6e30sYnlTeW1ib2w6e319LGNvbW1hbmRzOltdLHRpbWVzdGFtcDpudWxsfTtvLnRpbWVzdGFtcD1uO2Zvcihjb25zdCBlIG9mIGZ1bmN0aW9uKGUsdCl7cmV0dXJuWy4uLmVdLnNvcnQoKChlLHMpPT50LmluZGV4T2YoZS5jb2xvciktdC5pbmRleE9mKHMuY29sb3IpKSl9KHMsbSkpe2NvbnN0IHQ9ZS5zeW1ib2xzLmZpbHRlcigodD0+dm9pZCAwPT09by5saXN0cy5ieVN5bWJvbFt0XSYmKGYodCl8fChvLmxpc3RzLmJ5U3ltYm9sW3RdPWUuY29sb3IpLCEwKSkpO28ubGlzdHMuYnlDb2xvcltlLmNvbG9yXT17Y29sb3I6ZS5jb2xvcixuYW1lOmUubmFtZSxkZXNjcmlwdGlvbjplLmRlc2NyaXB0aW9uLHNoYXJlZDplLnNoYXJlZCxzeW1ib2xzOnQscGVyc2lzdGVkU3RhdGU6ZS5wZXJzaXN0ZWRTdGF0ZX0sdC5sZW5ndGg+MCYmby5saXN0cy5jb2xvcnMucHVzaChlLmNvbG9yKX1yZXR1cm4gb30scmVtb3ZlOihlLHQpPT57Y29uc3R7Y29sb3I6cyxzeW1ib2xzOm4sc2lsZW50Om99PXQucGF5bG9hZCx7bGlzdHM6YSxjb21tYW5kczpsfT1lLHU9YS5ieUNvbG9yW3NdO2lmKHZvaWQgMD09PXV8fDA9PT11LnN5bWJvbHMubGVuZ3RoKXJldHVybjtjb25zdCBkPW5ldyBTZXQobiksbT11LnN5bWJvbHMuZmlsdGVyKChlPT4hZC5oYXMoZSkpKTtpZighKDAsYy5lcXVhbEFycmF5cykobSx1LnN5bWJvbHMpKXt1LnN5bWJvbHM9bTtmb3IoY29uc3QgZSBvZiBkKWRlbGV0ZSBhLmJ5U3ltYm9sW2VdO298fGwucHVzaCh7dHlwZToicmVtb3ZlIixjb2xvcjpzLHN5bWJvbHM6Wy4uLmRdLHByZXZMaXN0czooMCxpLmVuc3VyZURlZmluZWQpKCgwLHIub3JpZ2luYWwpKGUpKS5saXN0c30pLHkoZSxzKX19LG1hcmtNYW55OihlLHQpPT57Y29uc3R7Y29sb3I6cyxiZWZvcmU6bixzaWxlbnQ6b309dC5wYXlsb2FkLHtsaXN0czphLGNvbW1hbmRzOmx9PWUse3VuaXF1ZTp1LGV4Y2x1c2lvbnM6bX09ZnVuY3Rpb24oZSx0KXtjb25zdHtjb2xvcjpzLHN5bWJvbHM6bixzZXBhcmF0b3JzOm99PXQucGF5bG9hZCx7bGlzdHM6cn09ZSxhPXt9LGw9bmV3IFNldCxjPWU9PmYoZSk/KCgwLGkuYXNzZXJ0KShudWxsIT09cykscyk6ci5ieVN5bWJvbFtlXTtmb3IobGV0IGU9MDtlPG4ubGVuZ3RoOysrZSl7Y29uc3QgdD1uW2VdO2lmKGwuaGFzKHQpfHxmKHQpJiYhbyljb250aW51ZTtsLmFkZCh0KTtjb25zdCBzPWModCk7dm9pZCAwIT09cyYmKGFbc109YVtzXT8/bmV3IFNldCkuYWRkKHQpfXJldHVybntleGNsdXNpb25zOmEsdW5pcXVlOmx9fShlLHQpO2lmKDA9PT11LnNpemUpcmV0dXJuO2NvbnN0IGg9ZnVuY3Rpb24oZSx0LHMsbil7Y29uc3R7Y29sb3I6byxiZWZvcmU6cn09dC5wYXlsb2FkLHtsaXN0czppfT1lO2xldCBhO2lmKG51bGwhPT1vJiZ2b2lkIDAhPT1yJiZzLmhhcyhyKSl7Y29uc3QgZT1pLmJ5Q29sb3Jbb107aWYodm9pZCAwIT09ZSl7YT1uO2ZvcihsZXQgdD1lLnN5bWJvbHMuaW5kZXhPZihyKTt0Pj0wOy0tdClpZighcy5oYXMoZS5zeW1ib2xzW3RdKSl7YT1lLnN5bWJvbHNbdF07YnJlYWt9fX1yZXR1cm4gYX0oZSx0LHUsZC5MSVNUX1NUQVJUKTtpZihudWxsIT09cyYmdm9pZCAwIT09bVtzXSYmMT09PU9iamVjdC5rZXlzKG0pLmxlbmd0aCl7Y29uc3QgdD1hLmJ5Q29sb3Jbc107KDAsaS5hc3NlcnQpKHZvaWQgMCE9PXQpO2NvbnN0IHA9dC5zeW1ib2xzLmZpbHRlcigoZT0+IXUuaGFzKGUpKSksZz0oMCxkLmdldFRhcmdldEluZGV4KShwLG4saCk7aWYodm9pZCAwPT09Zz9wLnB1c2goLi4udSk6cC5zcGxpY2UoZywwLC4uLnUpLCgwLGMuZXF1YWxBcnJheXMpKHAsdC5zeW1ib2xzKSlyZXR1cm47e2NvbnN0IG49bVtzXTsoMCxpLmFzc2VydCkodm9pZCAwIT09biksdC5zeW1ib2xzPXA7Zm9yKGNvbnN0IGUgb2YgbilkZWxldGUgYS5ieVN5bWJvbFtlXTtmb3IoY29uc3QgZSBvZiB1KWYoZSl8fChhLmJ5U3ltYm9sW2VdPXMpO3JldHVybiB5KGUscyksdm9pZChvfHxsLnB1c2goe3R5cGU6InJlcGxhY2UiLGNvbG9yOnMsc3ltYm9sczpbLi4udC5zeW1ib2xzXSxwcmV2TGlzdHM6KDAsaS5lbnN1cmVEZWZpbmVkKSgoMCxyLm9yaWdpbmFsKShlKSkubGlzdHN9KSl9fWZvcihjb25zdCB0IGluIG0pe2lmKCFtLmhhc093blByb3BlcnR5KHQpKWNvbnRpbnVlO2NvbnN0IHM9bVt0XTsoMCxpLmFzc2VydCkodm9pZCAwIT09cyk7Y29uc3Qgbj1hLmJ5Q29sb3JbdF07KDAsaS5hc3NlcnQpKHZvaWQgMCE9PW4pLG4uc3ltYm9scz1uLnN5bWJvbHMuZmlsdGVyKChlPT4hcy5oYXMoZSl8fChkZWxldGUgYS5ieVN5bWJvbFtlXSwhMSkpKSx5KGUsdCl9aWYobnVsbD09PXMpcmV0dXJuIHZvaWQob3x8bC5wdXNoKHt0eXBlOiJyZXNldCIsc3ltYm9sczpbLi4udV0scHJldkxpc3RzOigwLGkuZW5zdXJlRGVmaW5lZCkoKDAsci5vcmlnaW5hbCkoZSkpLmxpc3RzfSkpO2NvbnN0IHA9YS5ieUNvbG9yW3NdO2lmKGEuY29sb3JzLmluY2x1ZGVzKHMpKXsoMCxpLmFzc2VydCkodm9pZCAwIT09cCk7Y29uc3QgdD0oMCxkLmdldFRhcmdldEluZGV4KShwLnN5bWJvbHMsbixoKTt2b2lkIDA9PT10PyhwLnN5bWJvbHMucHVzaCguLi51KSxvfHwodm9pZCAwPT09bVtzXT9sLnB1c2goe3R5cGU6ImFwcGVuZCIsY29sb3I6cyxzeW1ib2xzOlsuLi51XSxwcmV2TGlzdHM6KDAsaS5lbnN1cmVEZWZpbmVkKSgoMCxyLm9yaWdpbmFsKShlKSkubGlzdHN9KTpsLnB1c2goe3R5cGU6InJlcGxhY2UiLGNvbG9yOnMsc3ltYm9sczpbLi4ucC5zeW1ib2xzXSxwcmV2TGlzdHM6KDAsaS5lbnN1cmVEZWZpbmVkKSgoMCxyLm9yaWdpbmFsKShlKSkubGlzdHN9KSkpOihwLnN5bWJvbHMuc3BsaWNlKHQsMCwuLi51KSxvfHxsLnB1c2goe3R5cGU6InJlcGxhY2UiLGNvbG9yOnMsc3ltYm9sczpbLi4ucC5zeW1ib2xzXSxwcmV2TGlzdHM6KDAsaS5lbnN1cmVEZWZpbmVkKSgoMCxyLm9yaWdpbmFsKShlKSkubGlzdHN9KSl9ZWxzZSB2b2lkIDA9PT1wP2EuYnlDb2xvcltzXT17Y29sb3I6cywKc3ltYm9sczpbLi4udV0sbmFtZTpudWxsLGRlc2NyaXB0aW9uOm51bGwsc2hhcmVkOiExLHBlcnNpc3RlZFN0YXRlOm51bGx9OnAuc3ltYm9scz1bLi4udV0sYS5jb2xvcnMucHVzaChzKSxvfHxsLnB1c2goe3R5cGU6ImFwcGVuZCIsY29sb3I6cyxzeW1ib2xzOlsuLi51XSxwcmV2TGlzdHM6KDAsaS5lbnN1cmVEZWZpbmVkKSgoMCxyLm9yaWdpbmFsKShlKSkubGlzdHN9KTtmb3IoY29uc3QgZSBvZiB1KWYoZSl8fChhLmJ5U3ltYm9sW2VdPXMpfSxyZW5hbWVTZXBhcmF0b3I6KGUsdCk9Pntjb25zdHtjb2xvcjpzLHNlcGFyYXRvcjpuLG5hbWU6byxzaWxlbnQ6YX09dC5wYXlsb2FkO2lmKG49PT1vfHwhZihuKXx8IWYobykpcmV0dXJuO2NvbnN0IGw9ZS5saXN0cy5ieUNvbG9yW3NdOygwLGkuYXNzZXJ0KSh2b2lkIDAhPT1sKTtjb25zdCBjPWwuc3ltYm9scy5pbmRleE9mKG4pOy0xIT09YyYmLTE9PT1sLnN5bWJvbHMuaW5kZXhPZihvKSYmKGwuc3ltYm9scy5zcGxpY2UoYywxLG8pLGF8fGUuY29tbWFuZHMucHVzaCh7dHlwZToicmVuYW1lLXNlcGFyYXRvciIsY29sb3I6cyxzZXBhcmF0b3I6bixuYW1lOm8scHJldkxpc3RzOigwLGkuZW5zdXJlRGVmaW5lZCkoKDAsci5vcmlnaW5hbCkoZSkpLmxpc3RzfSkpfSxyZW5hbWU6KGUsdCk9Pntjb25zdHtuYW1lOnMsY29sb3I6bixzaWxlbnQ6b309dC5wYXlsb2FkLGE9ZS5saXN0cy5ieUNvbG9yW25dOygwLGkuYXNzZXJ0KSh2b2lkIDAhPT1hKSxhLm5hbWUhPT1zJiYoYS5uYW1lPXMsb3x8ZS5jb21tYW5kcy5wdXNoKHt0eXBlOiJyZW5hbWUiLGNvbG9yOm4sbmFtZTpzLHByZXZMaXN0czooMCxpLmVuc3VyZURlZmluZWQpKCgwLHIub3JpZ2luYWwpKGUpKS5saXN0c30pKX0sY2hhbmdlRGVzY3JpcHRpb246KGUsdCk9Pntjb25zdHtjb2xvcjpzLGRlc2NyaXB0aW9uOm4sc2lsZW50Om99PXQucGF5bG9hZCxhPWUubGlzdHMuYnlDb2xvcltzXTsoMCxpLmFzc2VydCkodm9pZCAwIT09YSksYS5kZXNjcmlwdGlvbiE9PW4mJihhLmRlc2NyaXB0aW9uPW4sb3x8ZS5jb21tYW5kcy5wdXNoKHt0eXBlOiJjaGFuZ2UtZGVzY3JpcHRpb24iLGNvbG9yOnMsZGVzY3JpcHRpb246bixwcmV2TGlzdHM6KDAsaS5lbnN1cmVEZWZpbmVkKSgoMCxyLm9yaWdpbmFsKShlKSkubGlzdHN9KSl9LHJlc2V0OihlLHQpPT57Y29uc3R7c2lsZW50OnN9PXQucGF5bG9hZCx7bGlzdHM6bn09ZTtmb3IoY29uc3QgZSBvZiBtKXtjb25zdCB0PW4uYnlDb2xvcltlXTt2b2lkIDAhPT10JiYodC5zeW1ib2xzPVtdKX1uLmNvbG9ycz1bXSxuLmJ5U3ltYm9sPXt9LHN8fGUuY29tbWFuZHMucHVzaCh7dHlwZToicmVzZXQtYWxsIixwcmV2TGlzdHM6KDAsaS5lbnN1cmVEZWZpbmVkKSgoMCxyLm9yaWdpbmFsKShlKSkubGlzdHN9KX0sc2hhcmU6KGUsdCk9Pntjb25zdHtsaXN0czpzLGNvbW1hbmRzOm59PWUse3NoYXJlZDpvLGNvbG9yOmEsc2lsZW50Omx9PXQucGF5bG9hZCxjPXMuYnlDb2xvclthXTt2b2lkIDAhPT1jJiZjLnNoYXJlZCE9PW8mJihjLnNoYXJlZD1vLGx8fG4ucHVzaCh7dHlwZToic2hhcmUiLGNvbG9yOmEsc2hhcmVkOm8scHJldkxpc3RzOigwLGkuZW5zdXJlRGVmaW5lZCkoKDAsci5vcmlnaW5hbCkoZSkpLmxpc3RzfSkpfSx1cGRhdGVQZXJzaXN0ZWRTdGF0ZTooZSx0KT0+e2NvbnN0e2xpc3RzOnN9PWU7Zm9yKGNvbnN0IGUgb2YgbSl7Y29uc3Qgbj1zLmJ5Q29sb3JbZV0sbz10LnBheWxvYWRbZV07dm9pZCAwIT09biYmbi5wZXJzaXN0ZWRTdGF0ZSYmbyYmKG4ucGVyc2lzdGVkU3RhdGU9ey4uLm4ucGVyc2lzdGVkU3RhdGUsLi4ub30pfX0sc2hpZnRDb21tYW5kOihlLHQpPT57Y29uc3R7Y291bnQ6c309dC5wYXlsb2FkO2UuY29tbWFuZHMuc3BsaWNlKDAscyl9fX0pLHttYXJrTWFueTpiLHNldHVwOnYscmVzZXQ6UyxyZW1vdmU6XyxyZW5hbWU6dyxjaGFuZ2VEZXNjcmlwdGlvbjpDLHJlbmFtZVNlcGFyYXRvcjpULHNoaWZ0Q29tbWFuZDp4LHNoYXJlOkUsdXBkYXRlUGVyc2lzdGVkU3RhdGU6UH09Zy5hY3Rpb25zLHtyZWR1Y2VyOk99PWc7ZnVuY3Rpb24gTihlLHQscz1nKXtyZXR1cm4oMCxhLmNyZWF0ZUNyb3NzVGFiU3luY01pZGRsZXdhcmUpKHtpZDplLGNoYW5uZWw6dCxldmVudDoibWFya2VkLWxpc3QtY3Jvc3MtdGFiLXN5bmMiLGZpbHRlcjplPT5mdW5jdGlvbihlLHQpe3JldHVybiB0LmFjdGlvbnMubWFya01hbnkubWF0Y2goZSl8fHQuYWN0aW9ucy5yZW5hbWUubWF0Y2goZSl8fHQuYWN0aW9ucy5jaGFuZ2VEZXNjcmlwdGlvbi5tYXRjaChlKXx8dC5hY3Rpb25zLnJlbW92ZS5tYXRjaChlKXx8dC5hY3Rpb25zLnNldHVwLm1hdGNoKGUpfHx0LmFjdGlvbnMucmVuYW1lU2VwYXJhdG9yLm1hdGNoKGUpfHx0LmFjdGlvbnMucmVzZXQubWF0Y2goZSl8fHQuYWN0aW9ucy5zaGFyZS5tYXRjaChlKXx8dC5hY3Rpb25zLnVwZGF0ZVBlcnNpc3RlZFN0YXRlLm1hdGNoKGUpfShlLHMpfSl9ZnVuY3Rpb24gTChlLHQpe3JldHVybiBlLmxpc3RzLmJ5U3ltYm9sW2wucXVhbGlmaWVkLmNhc3QodCldPz9udWxsfWZ1bmN0aW9uIGsoZSx0KXtyZXR1cm4gZS5saXN0cy5ieUNvbG9yW3RdPz9udWxsfWZ1bmN0aW9uIEQoZSx0KXtyZXR1cm4gayhlLHQpPy5zeW1ib2xzPz9udWxsfWZ1bmN0aW9uIEEoZSl7cmV0dXJuIGUuY29tbWFuZHN9ZnVuY3Rpb24gTShlKXtyZXR1cm4gZS50aW1lc3RhbXB9fSw0OTI2NzcoZSx0LHMpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKGUpe3JldHVybiBkZWNvZGVVUklDb21wb25lbnQoZS5yZXBsYWNlKC9cKy9nLCIgIikpLnJlcGxhY2UoLzxcLz9bXj5dKyg+fCQpL2csIiIpfWZ1bmN0aW9uIG8oZSl7Y29uc3QgdD0vKFteJj1dKyk9PyhbXiZdKikvZyxzPXt9O2lmKCFlKXJldHVybiBzO2xldCBvPXQuZXhlYyhlKTtmb3IoO287KXNbbihvWzFdKV09bihvWzJdKSxvPXQuZXhlYyhlKTtyZXR1cm4gc31mdW5jdGlvbiByKCl7cmV0dXJuIG8od2luZG93LmxvY2F0aW9uLnNlYXJjaC5zdWJzdHJpbmcoMSkpfWZ1bmN0aW9uIGkoKXtjb25zdCBlPXdpbmRvdy5sb2NhdGlvbi5ocmVmLnNwbGl0KCIjIilbMF0KO3dpbmRvdy5oaXN0b3J5LnJlcGxhY2VTdGF0ZSgiIixkb2N1bWVudC50aXRsZSxlKX1mdW5jdGlvbiBhKGUpe2NvbnN0IHQ9W107Zm9yKGNvbnN0IHMgaW4gZSlpZihlLmhhc093blByb3BlcnR5KHMpJiZudWxsIT1lW3NdKXtjb25zdCBuPWVbc10sbz0ib2JqZWN0Ij09dHlwZW9mIG4/SlNPTi5zdHJpbmdpZnkobik6U3RyaW5nKG4pO3QucHVzaCh7a2V5OnMscGFpcjplbmNvZGVVUklDb21wb25lbnQocykrIj0iK2VuY29kZVVSSUNvbXBvbmVudChvKX0pfXJldHVybiB0LnNvcnQoKChlLHQpPT5lLmtleT50LmtleT8xOmUua2V5PHQua2V5Py0xOjApKS5tYXAoKGU9PmUucGFpcikpLmpvaW4oIiYiKX1zLmQodCx7Y3JlYXRlVXJsUGFyYW1zOigpPT5hLGdldFVybFBhcmFtczooKT0+cixyZW1vdmVIYXNoRnJvbVVybDooKT0+aX0pfSw5NzM1MjQoZSx0LHMpeyJ1c2Ugc3RyaWN0IjtzLmQodCx7TElTVF9TVEFSVDooKT0+bixnZXRUYXJnZXRJbmRleDooKT0+b30pO2NvbnN0IG49U3ltYm9sKCk7ZnVuY3Rpb24gbyhlLHQscyl7Y29uc3Qgbz12b2lkIDA9PT1zP3ZvaWQgMCE9PXQ/ZS5pbmRleE9mKHQpOnZvaWQgMDpzPT09bj8wOmUuaW5kZXhPZihzKSsxO3JldHVybi0xIT09bz9vOnZvaWQgMH19LDQzMzIwKGUsdCxzKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbihlKXtjb25zdHtpZDp0LGV2ZW50OnMsY2hhbm5lbDpuLGZpbHRlcjpvfT1lO3JldHVybiBlPT4obi5vbihzLChzPT57Y29uc3R7YWN0aW9uOm4sZW1pdHRlcjpyfT1KU09OLnBhcnNlKHMpO3IhPT10JiZvKG4pJiZlLmRpc3BhdGNoKHsuLi5uLHBheWxvYWQ6ey4uLm4ucGF5bG9hZCxzaWxlbnQ6ITB9fSl9KSksZT0+cj0+e2NvbnN0IGk9ZShyKTtyZXR1cm4gbyhyKSYmKHIucGF5bG9hZC5zaWxlbnR8fG4uZW1pdChzLEpTT04uc3RyaW5naWZ5KHthY3Rpb246cixlbWl0dGVyOnR9KSkpLGl9KX1zLmQodCx7Y3JlYXRlQ3Jvc3NUYWJTeW5jTWlkZGxld2FyZTooKT0+bn0pfSwyOTUyMzUoZSx0LHMpeyJ1c2Ugc3RyaWN0IjtzLmQodCx7cXVhbGlmaWVkOigpPT5ufSk7Y29uc3Qgbj17Y2FzdDplPT5lLGNhc3RNYW55OmU9PmUubWFwKG4uY2FzdCl9fSw2MTI0NDYoZSx0LHMpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKGUsdCl7aWYoZS5sZW5ndGghPT10Lmxlbmd0aClyZXR1cm4hMTtmb3IobGV0IHM9MDtzPGUubGVuZ3RoOysrcylpZihlW3NdIT09dFtzXSlyZXR1cm4hMTtyZXR1cm4hMH1zLmQodCx7ZXF1YWxBcnJheXM6KCk9Pm59KX0sMzA0Mzk5KGUsdCxzKXsidXNlIHN0cmljdCI7cy5kKHQse2hhbmRsZUpTT046KCk9PnIsd2F0Y2hsaXN0VXJsOigpPT5pfSk7dmFyIG49cygzMTg5NzQpLG89cyg1NjkzOTgpO2Z1bmN0aW9uIHIoZSl7cmV0dXJuIGUub2s/MjA0PT09ZS5zdGF0dXM/UHJvbWlzZS5yZXNvbHZlKCk6ZS5qc29uKCk6ZS5qc29uKCkudGhlbigoZT0+e2NvbnN0IHQ9bmV3IEVycm9yKGUuZGV0YWlsfHwibm90IG9rIik7dGhyb3cgZS5jb2RlJiYodC5uYW1lPWBBcGlFcnJvcjoke2UuY29kZX1gKSx0fSkpfWZ1bmN0aW9uIGkoZSl7Y29uc3QgdD13aW5kb3cuVFZfV0FUQ0hMSVNUU19VUkwrZTtpZighKDAsby5pc0ZlYXR1cmVFbmFibGVkKSgid2F0Y2hsaXN0X2FkZF9zb3VyY2VfcGFyYW0iKSlyZXR1cm4gdDtjb25zdCBzPSgwLG4uaXNEZXNrdG9wQXBwKSgpPyJ3ZWItdHZkIjoid2ViIjtyZXR1cm4gdCsoZS5pbmNsdWRlcygiPyIpPyImIjoiPyIpKyJzb3VyY2U9IitzfX0sNDM2Mzk0KGUsdCxzKXsidXNlIHN0cmljdCI7cy5kKHQse1dhcm5pbmc6KCk9PmF9KTt2YXIgbj1zKDc3OTQ3NCksbz1zKDE4NTI3MSkscj1zKDcyNTg2MiksaT1zKDQ1OTg2Myk7ZnVuY3Rpb24gYShlKXtjb25zdHt0aXRsZTp0LGNsb3NlT25PdXRzaWRlQ2xpY2s6YSxvbkNsb3NlOmM9KCk9Pnt9LGJhY2tkcm9wOnUsc2hvd0Nsb3NlQnV0dG9uOmQsZGF0YVFhSWQ6bX09ZSxoPSgwLGkuZ2V0Q29udGVudCkoZSk7cmV0dXJuIG4uY3JlYXRlRWxlbWVudChyLlNpbXBsZURpYWxvZyx7Li4uaCx0aXRsZTp0fHxvLnQobnVsbCx2b2lkIDAscyg5MzcwMTcpKSxvbkNsb3NlOmMsYmFja2Ryb3A6dSxhY3Rpb25zOmwoZSksZGF0YU5hbWU6Indhcm5pbmctZGlhbG9nIixkYXRhUWFJZDptLGNsb3NlT25PdXRzaWRlQ2xpY2s6YSxzaG93Q2xvc2VCdXR0b246ZH0pfWZ1bmN0aW9uIGwoZSl7Y29uc3R7YnV0dG9uVGV4dDp0LGludGVudEJ1dHRvbjpuLGFjdGlvbnM6cixvbkNvbmZpcm06aX09ZSxhPVt7bmFtZToib2siLHRpdGxlOnR8fG8udChudWxsLHZvaWQgMCxzKDIwODA3OCkpLGludGVudDpuLGhhbmRsZXI6KHtkaWFsb2dDbG9zZTplfSk9PntpPy4oKSxlKCl9fV07cmV0dXJuIHImJnIuZm9yRWFjaCgoZT0+YS5wdXNoKGUpKSksYX19LDU5NjA1MChlLHQscyl7InVzZSBzdHJpY3QiO3MuZCh0LHtzaG93U2ltcGxlRGlhbG9nSW5zdGFuY2U6KCk9PmN9KTt2YXIgbj1zKDc3OTQ3NCksbz1zKDEzODYzOCkscj1zKDYwNzgzMiksaT1zKDg2MzQ0KSxhPXMoNTcxMzAwKTtjb25zdCBsPW5ldyBpLkRpYWxvZ3NPcGVuZXJNYW5hZ2VyO2Z1bmN0aW9uIGMoZSx0LHMpe2NvbnN0e3RpdGxlOml9PWU7bGV0IGM9YCR7aX1fYDtpZihjKz0idGV4dCJpbiBlP2UudGV4dDoiaHRtbCJpbiBlP2UuaHRtbDplLmlkLGwuaXNPcGVuZWQoYykpcmV0dXJuKDAsby5lbnN1cmVEZWZpbmVkKShsLmdldERpYWxvZ1BheWxvYWQoYykpLmNsb3NlSGFuZGxlcjtjb25zdCB1PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLGQ9KCk9PntlLm9uQ2xvc2U/LigpLG0udW5tb3VudCgpLGwuc2V0QXNDbG9zZWQoYyl9LG09KDAsYS5jcmVhdGVSZWFjdFJvb3QpKG4uY3JlYXRlRWxlbWVudChyLlNsb3RDb250ZXh0LlByb3ZpZGVyLHt2YWx1ZTpzfHxudWxsfSxuLmNyZWF0ZUVsZW1lbnQodCx7Li4uZSxvbkNsb3NlOmR9KSksdSk7cmV0dXJuIGwuc2V0QXNPcGVuZWQoYyx7Y2xvc2VIYW5kbGVyOmR9KSxkfX0sODYzNDQoZSx0LHMpeyJ1c2Ugc3RyaWN0IjtzLmQodCx7RGlhbG9nc09wZW5lck1hbmFnZXI6KCk9Pm4sZGlhbG9nc09wZW5lck1hbmFnZXI6KCk9Pm99KTtjbGFzcyBue2NvbnN0cnVjdG9yKCl7CnRoaXMuX3N0b3JhZ2U9bmV3IE1hcH1zZXRBc09wZW5lZChlLHQpe3RoaXMuX3N0b3JhZ2Uuc2V0KGUsdCl9c2V0QXNDbG9zZWQoZSl7dGhpcy5fc3RvcmFnZS5kZWxldGUoZSl9aXNPcGVuZWQoZSl7cmV0dXJuIHRoaXMuX3N0b3JhZ2UuaGFzKGUpfWdldERpYWxvZ1BheWxvYWQoZSl7cmV0dXJuIHRoaXMuX3N0b3JhZ2UuZ2V0KGUpfX1jb25zdCBvPW5ldyBufSw4NTE0NTgoZSx0LHMpeyJ1c2Ugc3RyaWN0IjtzLmQodCx7ZmFjdG9yT3V0QnJhY2VzOigpPT5oLGdldFRva2VuQXRQb3M6KCk9Pm0saXNCaW5hcnlPcGVyYXRvcjooKT0+dSxpc1NwcmVhZDooKT0+ZCxwYXJzZVRva2VuOigpPT55LHNob3J0TmFtZTooKT0+cCxzeW1ib2xUb2tlbkVzY2FwZVJlOigpPT5hLHRva2VuaXplOigpPT5jfSk7dmFyIG4sbz1zKDkwMTAyMikscj1zKDU2OTM5OCk7IWZ1bmN0aW9uKGUpe2UuU3ltYm9sPSJzeW1ib2wiLGUuSW5jb21wbGV0ZVN5bWJvbD0iaW5jb21wbGV0ZVN5bWJvbCIsZS5OdW1iZXI9Im51bWJlciIsZS5JbmNvbXBsZXRlTnVtYmVyPSJpbmNvbXBsZXRlTnVtYmVyIixlLlNlcGFyYXRvclByZWZpeD0ic2VwYXJhdG9yUHJlZml4IixlLk9wZW5CcmFjZT0ib3BlbkJyYWNlIixlLkNsb3NlQnJhY2U9ImNsb3NlQnJhY2UiLGUuUGx1cz0icGx1cyIsZS5NaW51cz0ibWludXMiLGUuTXVsdGlwbHk9Im11bHRpcGx5IixlLkRpdmlkZT0iZGl2aWRlIixlLlBvd2VyPSJwb3dlciIsZS5XaGl0ZXNwYWNlPSJ3aGl0ZXNwYWNlIixlLlVucGFyc2VkPSJ1bnBhcnNlZCJ9KG58fChuPXt9KSk7Y29uc3QgaT0vKD86W14tK1wvKl5cc10nfFthLXpBLVowLTlfXHUwMzcwLVx1MUZGRl9cdTJFODAtXHVGRkZGXSkoPzpbXi0rXC8qXlxzXSd8W2EtekEtWjAtOV9cdTAwMjBcdTAzNzAtXHUxRkZGX1x1MkU4MC1cdUZGRkZfIXw6LiZdKSp8Jy4rPycvLGE9L1srXC0vKl0vLGw9KGU9KDAsci5pc0ZlYXR1cmVFbmFibGVkKSgiYWxsb3dfdHJhaWxpbmdfd2hpdGVzcGFjZV9pbl9udW1iZXJfdG9rZW4iKSk9Pih7bnVtYmVyOmU/L1xkKyg/OlwuXGQqfCg/IVthLXpBLVowLTlfITouJl0pKSg/OlxzKig/PVxzKiQpKT98XC5cZCsoPzpccyooPz1ccyokKSk/LzovXGQrKD86XC5cZCp8KD8hW2EtekEtWjAtOV8hOi4mXSkpfFwuXGQrLyxpbmNvbXBsZXRlTnVtYmVyOi9cLi8sc3ltYm9sOmksaW5jb21wbGV0ZVN5bWJvbDovJ1teJ10qLyxzZXBhcmF0b3JQcmVmaXg6by5TRVBBUkFUT1JfUFJFRklYLG9wZW5CcmFjZToiKCIsY2xvc2VCcmFjZToiKSIscGx1czoiKyIsbWludXM6Ii0iLG11bHRpcGx5OiIqIixkaXZpZGU6Ii8iLHBvd2VyOiJeIix3aGl0ZXNwYWNlOi9bXDAtXHgyMFxzXSsvLHVucGFyc2VkOm51bGx9KTtmdW5jdGlvbiBjKGUsdD1sKCkpe2lmKCFlKXJldHVybltdO2NvbnN0IHM9W10sbj1PYmplY3Qua2V5cyh0KTtsZXQgbztjb25zdCByPSgoZT1sKCkpPT5uZXcgUmVnRXhwKE9iamVjdC52YWx1ZXMoZSkubWFwKChlPT57cmV0dXJuIG51bGw9PT1lPyIiOmAoJHsic3RyaW5nIj09dHlwZW9mIGU/KHQ9ZSx0LnJlcGxhY2UoL1tcXiQoKVtcXXt9Kis/fFxcXS9nLCJcXCQmIikpOmUuc291cmNlfSlgO3ZhciB0fSkpLmZpbHRlcigoZT0+IiIhPT1lKSkuY29uY2F0KCIuIikuam9pbigifCIpLCJnIikpKHQpO2Zvcig7bz1yLmV4ZWMoZSk7KXtsZXQgZT0hMTtmb3IobGV0IHQ9bi5sZW5ndGg7dC0tOylpZihvW3QrMV0pe25bdF0mJnMucHVzaCh7dmFsdWU6b1t0KzFdLHR5cGU6blt0XSxwcmVjZWRlbmNlOjAsb2Zmc2V0Om8uaW5kZXh9KSxlPSEwO2JyZWFrfWV8fHMucHVzaCh7dmFsdWU6b1swXSx0eXBlOiJ1bnBhcnNlZCIscHJlY2VkZW5jZTowLG9mZnNldDpvLmluZGV4fSl9cmV0dXJuIHN9ZnVuY3Rpb24gdShlKXtyZXR1cm4icGx1cyI9PT1lfHwibWludXMiPT09ZXx8Im11bHRpcGx5Ij09PWV8fCJkaXZpZGUiPT09ZXx8InBvd2VyIj09PWV9ZnVuY3Rpb24gZChlKXtyZXR1cm4gZS5sZW5ndGg+MSYmZS5zb21lKChlPT51KGUudHlwZSkpKX1mdW5jdGlvbiBtKGUsdCl7Zm9yKGxldCBzPTA7czxlLmxlbmd0aDtzKyspe2NvbnN0IG49ZVtzXSxvPSJzeW1ib2wiPT09bi50eXBlfHwiaW5jb21wbGV0ZVN5bWJvbCI9PT1uLnR5cGV8fCJudW1iZXIiPT09bi50eXBlO2lmKG4ub2Zmc2V0PD10JiZ0PD1uLm9mZnNldCtuLnZhbHVlLmxlbmd0aCYmbylyZXR1cm4gbn1yZXR1cm4gbnVsbH1mdW5jdGlvbiBoKGUpe2U9ZnVuY3Rpb24oZSl7Y29uc3QgdD1bXTtmb3IoY29uc3QgcyBvZiBlKSJ3aGl0ZXNwYWNlIiE9PXMudHlwZSYmdC5wdXNoKHMpO3JldHVybiB0fShlKTtjb25zdCB0PVtdLHM9W107bGV0IG47Zm9yKGxldCBvPTA7bzxlLmxlbmd0aDtvKyspe2NvbnN0IHI9ZVtvXTtzd2l0Y2goci50eXBlKXtjYXNlInBsdXMiOmNhc2UibWludXMiOmNhc2UibXVsdGlwbHkiOmNhc2UiZGl2aWRlIjpjYXNlInBvd2VyIjpzLmxlbmd0aCYmc1tzLmxlbmd0aC0xXS5taW5QcmVjZWRlbmNlPnIucHJlY2VkZW5jZSYmKHNbcy5sZW5ndGgtMV0ubWluUHJlY2VkZW5jZT1yLnByZWNlZGVuY2UpO2JyZWFrO2Nhc2Uib3BlbkJyYWNlIjpuPXttaW5QcmVjZWRlbmNlOjEvMCxvcGVuQnJhY2VJbmRleDpvfSxzLnB1c2gobik7YnJlYWs7Y2FzZSJjbG9zZUJyYWNlIjp7aWYobj1zLnBvcCgpLCFuKWJyZWFrO2NvbnN0IHI9ZVtuLm9wZW5CcmFjZUluZGV4LTFdLGk9ZVtvKzFdLGE9ciYmKCJwbHVzIj09PXIudHlwZXx8Im11bHRpcGx5Ij09PXIudHlwZSk7KCF1KGk/LnR5cGUpfHxpPy5wcmVjZWRlbmNlPD1uLm1pblByZWNlZGVuY2UpJiYoIXUocj8udHlwZSl8fHI/LnByZWNlZGVuY2U8bj8ubWluUHJlY2VkZW5jZXx8cj8ucHJlY2VkZW5jZT09PW4/Lm1pblByZWNlZGVuY2UmJmEpJiYodC51bnNoaWZ0KG4ub3BlbkJyYWNlSW5kZXgpLHQucHVzaChvKSxzLmxlbmd0aCYmc1tzLmxlbmd0aC0xXS5taW5QcmVjZWRlbmNlPm4ubWluUHJlY2VkZW5jZSYmKHNbcy5sZW5ndGgtMV0ubWluUHJlY2VkZW5jZT1uLm1pblByZWNlZGVuY2UpKX19fWZvcihsZXQgcz10Lmxlbmd0aDtzLS07KWUuc3BsaWNlKHRbc10sMSk7cmV0dXJuIGV9ZnVuY3Rpb24gcChlKXsKcmV0dXJuIGgoYyhlKSkucmVkdWNlKCgoZSx0KT0+e2lmKCJzeW1ib2wiIT09dC50eXBlKXJldHVybiBlK3QudmFsdWU7Y29uc3RbLHNdPXkodCk7cmV0dXJuIHM/ZStzOmV9KSwiIil9ZnVuY3Rpb24geShlKXtjb25zdCB0PS9eJz8oPzooW0EtWjAtOV9dKyk6KT8oLio/KSc/JC9pLmV4ZWMoZS52YWx1ZSk7cmV0dXJuIG51bGw9PT10P1t2b2lkIDAsdm9pZCAwXTpbdFsxXSx0WzJdXX19LDY5MjI2NihlLHQscyl7InVzZSBzdHJpY3QiO3MuZCh0LHtUb29sdGlwV2lkZ2V0OigpPT5kLFRvb2x0aXBXaXphcmQ6KCk9PnV9KTt2YXIgbj1zKDc3OTQ3NCksbz1zKDkxNDQ4Nykscj1zLm4obyksaT1zKDI3MzMxMCksYT1zKDU4NTQ4KSxsPXMoODA2NjkzKSxjPXMoOTIzNTEzKTtjbGFzcyB1IGV4dGVuZHMgbi5QdXJlQ29tcG9uZW50e3JlbmRlcigpe2NvbnN0e2NoaWxkcmVuOmUscG9wcGVyQ2hpbGRyZW5Qcm9wczp0LG9uQ2xvc2U6cyxyZWZlcmVuY2U6byxjb250YWluZXJDbGFzc05hbWU6aSxhcnJvd0NsYXNzTmFtZTpsLHJvbGU6dX09dGhpcy5wcm9wcztyZXR1cm4gbi5jcmVhdGVFbGVtZW50KGEuUG9ydGFsLG51bGwsbi5jcmVhdGVFbGVtZW50KCJkaXYiLHtyZWY6b30sbi5jcmVhdGVFbGVtZW50KGQse3JlZmVyZW5jZTp0LnJlZixzdHlsZTp0LnN0eWxlLGFycm93Q2xhc3NOYW1lOnIoKShjLmFycm93SG9sZGVyLHRoaXMuX2dldEFycm93RGlyZWN0aW9uQ2xhc3MoKSxsKSxhcnJvd1JlZmVyZW5jZTp0LmFycm93UHJvcHMucmVmLGFycm93U3R5bGU6dC5hcnJvd1Byb3BzLnN0eWxlLCJkYXRhLXBsYWNlbWVudCI6dC5wbGFjZW1lbnQsb25DbG9zZTpzLGNvbnRhaW5lckNsYXNzTmFtZTppLHJvbGU6dX0sZSkpKX1fZ2V0QXJyb3dEaXJlY3Rpb25DbGFzcygpe2NvbnN0e3BvcHBlckNoaWxkcmVuUHJvcHM6ZX09dGhpcy5wcm9wcztzd2l0Y2goZS5wbGFjZW1lbnQpe2Nhc2UibGVmdCI6Y2FzZSJsZWZ0LXN0YXJ0IjpyZXR1cm4gcigpKGNbImFycm93SG9sZGVyLS1hZnRlciJdLGNbImFycm93SG9sZGVyLS1hZnRlci1sdHItZml4Il0pO2Nhc2UidG9wIjpyZXR1cm4gcigpKGNbImFycm93SG9sZGVyLS1hYm92ZSJdLGNbImFycm93SG9sZGVyLS1hYm92ZS1maXgiXSk7Y2FzZSJib3R0b20iOmNhc2UiYm90dG9tLXN0YXJ0IjpjYXNlImJvdHRvbS1lbmQiOnJldHVybiBjWyJhcnJvd0hvbGRlci0tYmVsb3ciXTtkZWZhdWx0OnJldHVybiByKCkoY1siYXJyb3dIb2xkZXItLWJlZm9yZSJdLGNbImFycm93SG9sZGVyLS1iZWZvcmUtcnRsLWZpeCJdKX19fWZ1bmN0aW9uIGQoZSl7Y29uc3R7Y2xhc3NOYW1lOnQsY29udGFpbmVyQ2xhc3NOYW1lOnMsY29udGVudENsYXNzTmFtZTpvLHJlZmVyZW5jZTphLHN0eWxlOnUsYXJyb3c6ZD0hMCxhcnJvd0NsYXNzTmFtZTptLGFycm93UmVmZXJlbmNlOmgsb25DbG9zZTpwLGFycm93U3R5bGU6eSxjaGlsZHJlbjpmLHJvbGU6ZywuLi5ifT1lO3JldHVybiBuLmNyZWF0ZUVsZW1lbnQoImRpdiIsey4uLmIsY2xhc3NOYW1lOnQscmVmOmEsc3R5bGU6dSwiZGF0YS1yb2xlIjpnfSxkJiZuLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTptLHJlZjpoLHN0eWxlOnl9KSxuLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpyKCkoYy5jb250YWluZXIscyl9LG4uY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOnIoKShjLmNvbnRlbnQsbyl9LGYpLHAmJm4uY3JlYXRlRWxlbWVudChpLkljb24se2NsYXNzTmFtZTpjLmNsb3NlQnV0dG9uLGljb246bCxvbkNsaWNrOnB9KSkpfX0sMjQxOTM3KGUsdCxzKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbihlLHQpe2NvbnN0IHM9dHx8d2luZG93LmxvY2FsZXx8ImVuIjtsZXQgbj1lW3NdP2Vbc106ZS5lbjtyZXR1cm4gbj0idHJhZGluZ3ZpZXcuY29tIj09PW4/Ind3dy50cmFkaW5ndmlldy5jb20iOm4sbj9kb2N1bWVudC5sb2NhdGlvbi5wcm90b2NvbCsiLy8iK246IiJ9cy5kKHQse2RldGVybWluZUJhc2VVcmw6KCk9Pm59KX0sMzM3MzYyKGUsdCxzKXsidXNlIHN0cmljdCI7cy5kKHQse0VtYmVkVmlld3BvcnREaW1lbnNpb25zUHJvdmlkZXI6KCk9Pm99KTt2YXIgbj1zKDkzMDIzMSk7Y2xhc3Mgb3tjb25zdHJ1Y3Rvcigpe3RoaXMuX2RhdGE9bnVsbCx0aGlzLl9tZXNzYWdlUmVjZWl2ZXI9bnVsbH1zdGFydExpc3RlbmluZygpe3RoaXMuX21lc3NhZ2VSZWNlaXZlcnx8KHRoaXMuX21lc3NhZ2VSZWNlaXZlcj1lPT57aWYoZS5kYXRhKXRyeXtjb25zdCB0PUpTT04ucGFyc2UoZS5kYXRhKTsic2V0LWVtYmVkLXJlc2l6ZXItb3ZlcnJpZGVzIj09PXQuZXZlbnQmJih0aGlzLl9kYXRhPXQuZWRnZXMpfWNhdGNoe319LHRoaXMuX2FkZE1lc3NhZ2VMaXN0ZW5lcigpKX1kZXN0cm95KCl7dGhpcy5fcmVtb3ZlTWVzc2FnZUxpc3RlbmVyKCl9ZGF0YSgpe3JldHVybiB0aGlzLl9kYXRhfXN0YXRpYyBnZXRJbnN0YW5jZSgpe3JldHVybiB0aGlzLl9pbnN0YW5jZXx8KHRoaXMuX2luc3RhbmNlPW5ldyBvKSx0aGlzLl9pbnN0YW5jZX1fYWRkTWVzc2FnZUxpc3RlbmVyKCl7dGhpcy5fbWVzc2FnZVJlY2VpdmVyJiZ3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsdGhpcy5fbWVzc2FnZVJlY2VpdmVyKX1fcmVtb3ZlTWVzc2FnZUxpc3RlbmVyKCl7dGhpcy5fbWVzc2FnZVJlY2VpdmVyJiZ3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsdGhpcy5fbWVzc2FnZVJlY2VpdmVyKSx0aGlzLl9tZXNzYWdlUmVjZWl2ZXI9bnVsbH19KDAsbi5pc0ZlYXR1cmVzZXRFbmFibGVkKSgiZW1iZWRfcmVzaXplcl9vdmVycmlkZXMiKSYmby5nZXRJbnN0YW5jZSgpLnN0YXJ0TGlzdGVuaW5nKCl9LDk2MzkwMChlLHQscyl7InVzZSBzdHJpY3QiO3ZhciBuOyFmdW5jdGlvbihlKXtlLkVtcHR5PSIiLGUuVGVjaG5pY2Fsc1BhdGg9InRlY2huaWNhbHMvIixlLkZpbmFuY2lhbHNPdmVydmlld1BhdGg9ImZpbmFuY2lhbHMtb3ZlcnZpZXcvIixlLlRpbWVsaW5lUGF0aD0iaGlzdG9yeS10aW1lbGluZS8iLGUuTmV3c1BhdGg9Im5ld3MvIixlLk9wdGlvbnNQYXRoPSJvcHRpb25zLyIsZS5Qcm9maWxlUGF0aD0icHJvZmlsZS8iLAplLkhvbGRpbmdzUGF0aD0iaG9sZGluZ3MvIn0obnx8KG49e30pKX19XSk7"}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/19595.d962ab75bd3e1baa5aae.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.343Z","timestamp":1785148034343,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/19595.d962ab75bd3e1baa5aae.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\ncontent-type: text/css; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a58ab11-3aa\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Thu, 16 Jul 2026 09:57:37 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/16/2026 11:03:22\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: f91142fbb0de5d500a63ffbb61ed119b\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":938,"size_decoded":1141,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with very long lines (938), with no line terminators","md5":"ef14629eb0ed7a15e49e7c642aa484ef","sha1":"cfeaa9a767678d979a5fd7c738ef2545adf8282b","sha256":"99d133c91adb2471524428e7fc71f9734042eaad94a1abc097a500470c8a2856","sha512":"6f618b450da8775c62ec16e0a36ba0788e31206af19716abc78415d527b21e1d68c824eac3c7dd4ccf35567e42ecbca363d4bd8b077a19e1f49193783ecf3e4c","ssdeep":"","tlshash":"ff11262191110e79bcefa2352ba0990c6281cdb0cd17a4ebb468eb2504c67bb5c8326c","first_seen":"2026-07-17T03:30:51.205823Z","last_seen":"2026-07-27T12:47:44.562585Z","times_seen":91,"resource_available":false,"data":"LmlubmVyLXNsb3QtTmJHcHRENWp7LS11aS1saWItY29udHJvbC1pbm5lci1zbG90LWdhcDoycHg7YWxpZ24taXRlbXM6Y2VudGVyO2JveC1zaXppbmc6Ym9yZGVyLWJveDtkaXNwbGF5OmZsZXg7ZmxleC1zaHJpbms6MDtoZWlnaHQ6Y2FsYygxMDAlIC0gKDNweCAtIHZhcigtLXVpLWxpYi1jb250cm9sLWJvcmRlci13aWR0aCwgMXB4KSkqMik7anVzdGlmeS1jb250ZW50OmNlbnRlcjttYXJnaW4tYm90dG9tOmNhbGMoM3B4IC0gdmFyKC0tdWktbGliLWNvbnRyb2wtYm9yZGVyLXdpZHRoLCAxcHgpKTttYXJnaW4tdG9wOmNhbGMoM3B4IC0gdmFyKC0tdWktbGliLWNvbnRyb2wtYm9yZGVyLXdpZHRoLCAxcHgpKTttYXJnaW4taW5saW5lLWVuZDp2YXIoLS11aS1saWItY29udHJvbC1pbm5lci1zbG90LWdhcCwycHgpO292ZXJmbG93OmhpZGRlbn0uaW5uZXItc2xvdC1OYkdwdEQ1ajpmaXJzdC1jaGlsZHttYXJnaW4taW5saW5lLXN0YXJ0OmNhbGMoM3B4IC0gdmFyKC0tdWktbGliLWNvbnRyb2wtYm9yZGVyLXdpZHRoLCAxcHgpKX0uaW5uZXItc2xvdC1OYkdwdEQ1ajpudGgtbGFzdC1jaGlsZCgyKXttYXJnaW4taW5saW5lLWVuZDpjYWxjKDNweCAtIHZhcigtLXVpLWxpYi1jb250cm9sLWJvcmRlci13aWR0aCwgMXB4KSl9LmlubmVyLXNsb3QtTmJHcHRENWouaW50ZXJhY3RpdmUtTmJHcHRENWp7Y29sb3I6dmFyKC0tdWktbGliLWNvbnRyb2wtZGVmYXVsdC1zbG90LWNvbG9yLGN1cnJlbnRDb2xvcil9LmlubmVyLXNsb3QtTmJHcHRENWouaWNvbi1OYkdwdEQ1antmbGV4Om5vbmU7d2lkdGg6MjhweH0uaW5uZXItbWlkZGxlLXNsb3QtTmJHcHRENWp7ZmxleDoxIDEgYXV0b30uYmVmb3JlLXNsb3QtTmJHcHRENWp7ZGlzcGxheTpmbGV4O21hcmdpbi1ib3R0b206MnB4fS5hZnRlci1zbG90LU5iR3B0RDVqe2Rpc3BsYXk6ZmxleDttYXJnaW4tdG9wOjRweH0="}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/25562.861c44ac374dc278d2dd.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.814Z","timestamp":1785148034814,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/25562.861c44ac374dc278d2dd.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\ncontent-type: text/css; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a58ab11-295e\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Thu, 16 Jul 2026 09:57:37 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/16/2026 11:04:45\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 67d08b333431507fb83641f8a6741d95\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":10590,"size_decoded":3346,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with very long lines (10590), with no line terminators","md5":"88dc0852e40b2f58da35cadee6926b3f","sha1":"fce8eda19418176a8d10a5ee2e856baa8706e6d4","sha256":"0f2eb911f71764fbe6604365dcc4f05faf54b1759e3b4e352220ba71a7816a99","sha512":"fd21650e32970c766d9f6d87479d3f11360895d8393a74369035c5cd16568895eba8655329fc6e97b45cf09d689a713766d5491d53a94a4132d4c75b99164b37","ssdeep":"96:DcG8wyosyzwh/5cfQg2fL8DJpuwvJpuaNbCXfJOSteSiojjSJMCqP3mYJ0XJcUFh:PJfQgJD10PP3mXB8reE8VQQgC5uy","tlshash":"d4220e6acf0056bdec1317358bafdf4f22647800aeaa14d96a21e57405cfbf26c79c16","first_seen":"2026-07-22T10:21:05.045053Z","last_seen":"2026-07-27T10:28:13.862234Z","times_seen":8,"resource_available":false,"data":"W2RhdGEtdGhlbWU9bGlnaHRdey0tXzAtdzhSSzp2YXIoLS1jb2xvci1jb2xkLWdyYXktMTAwKX1bZGF0YS10aGVtZT1kYXJrXXstLV8wLXc4Uks6dmFyKC0tY29sb3ItY29sZC1ncmF5LTgwMCl9LnNoYWRlZExheWVyLXZVNVd0eGNTe2FsaWduLWl0ZW1zOmZsZXgtZW5kO2JhY2tncm91bmQtaW1hZ2U6cmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudCgtNDVkZWcsIzAwMDAsIzAwMDAgNnB4LHZhcigtLWNvbG9yLXNoYWRlZC1sYXllci1wYW5lLWxpbmUsdmFyKC0tXzAtdzhSSykpIDZweCx2YXIoLS1jb2xvci1zaGFkZWQtbGF5ZXItcGFuZS1saW5lLHZhcigtLV8wLXc4UkspKSA3cHgpO2JvdHRvbTowO2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3BhZGRpbmctYm90dG9tOjhweDtwb2ludGVyLWV2ZW50czpub25lO3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjA7dG9wOjB9LnNoYWRlZExheWVyLXZVNVd0eGNTOmRpcihydGwpe2JhY2tncm91bmQtaW1hZ2U6cmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudCg0NWRlZywjMDAwMCwjMDAwMCA2cHgsdmFyKC0tY29sb3Itc2hhZGVkLWxheWVyLXBhbmUtbGluZSx2YXIoLS1fMC13OFJLKSkgNnB4LHZhcigtLWNvbG9yLXNoYWRlZC1sYXllci1wYW5lLWxpbmUsdmFyKC0tXzAtdzhSSykpIDdweCl9LmxhYmVsLXZVNVd0eGNTey0tdWktbGliLWJhZGdlLWJhY2tncm91bmQ6dmFyKC0tY29sb3ItYmctc2Vjb25kYXJ5KTstLXVpLWxpYi1iYWRnZS1jb2xvci1jb250ZW50OnZhcigtLWNvbG9yLXRleHQtcHJpbWFyeSk7Ym94LXNoYWRvdzowIDRweCAxNnB4IDAgdmFyKC0tY29sb3ItYm9yZGVyKSwwIDAgMnB4IDAgdmFyKC0tY29sb3ItYm9yZGVyKTt6LWluZGV4OjF9LmxhYmVsQ29udGFpbmVyLXZVNVd0eGNTe29wYWNpdHk6MH1bZGF0YS10aGVtZT1saWdodF17LS1fMC1UMjgzOnZhcigtLWNvbG9yLWNvbGQtZ3JheS0xMDApOy0tXzEtVDI4MzojZjBmM2ZhODB9W2RhdGEtdGhlbWU9ZGFya117LS1fMC1UMjgzOnZhcigtLWNvbG9yLWNvbGQtZ3JheS04MDApOy0tXzEtVDI4MzojMmEyZTM5ODB9LmNvbHVtbi1mbnVhT2ExWXthbGlnbi1pdGVtczpmbGV4LWVuZDtkaXJlY3Rpb246bHRyO2Rpc3BsYXk6ZmxleDtmbGV4OjEgMSBhdXRvO2p1c3RpZnktY29udGVudDpjZW50ZXI7b3ZlcmZsb3c6aGlkZGVuOy0tY29sdW1ucy1nYXA6dmFyKC0tZGV0YWlscy1jaGFydC1jb2x1bW5zLWdhcCw0OHB4KTtwYWRkaW5nOjAgY2FsYyh2YXIoLS1jb2x1bW5zLWdhcCwgMHB4KS8yKTt3aWR0aDpjYWxjKHZhcigtLWRldGFpbHMtY2hhcnQtY29sdW1uLXdpZHRoLCBhdXRvKSAtIHZhcigtLWNvbHVtbnMtZ2FwLCAwcHgpKX1AbWVkaWEgKG1heC13aWR0aDo5NzlweCl7LmNvbHVtbi1mbnVhT2ExWXstLWNvbHVtbnMtZ2FwOnZhcigtLWRldGFpbHMtY2hhcnQtY29sdW1ucy1nYXAsMzJweCl9fUBtZWRpYSAobWF4LXdpZHRoOjc2N3B4KXsuY29sdW1uLWZudWFPYTFZey0tY29sdW1ucy1nYXA6dmFyKC0tZGV0YWlscy1jaGFydC1jb2x1bW5zLWdhcCwyNHB4KX19QG1lZGlhIChtYXgtd2lkdGg6NDc5cHgpey5jb2x1bW4tZm51YU9hMVl7LS1jb2x1bW5zLWdhcDp2YXIoLS1kZXRhaWxzLWNoYXJ0LWNvbHVtbnMtZ2FwLDE2cHgpfX0uY29sdW1uLWZudWFPYTFZLm1pbmktZm51YU9hMVl7LS1jb2x1bW5zLWdhcDp2YXIoLS1kZXRhaWxzLWNoYXJ0LWNvbHVtbnMtZ2FwLDhweCl9QG1lZGlhIChhbnktaG92ZXI6aG92ZXIpey5jb2x1bW4tZm51YU9hMVk6aG92ZXJ7YmFja2dyb3VuZDp2YXIoLS1kZXRhaWxzLWNoYXJ0LWNvbHVtbnMtaG92ZXItYmFja2dyb3VuZCxyZ2IoZnJvbSB2YXIoLS1fMC1UMjgzKSByIGcgYi8uNSkpfX1Ac3VwcG9ydHMgbm90IChiYWNrZ3JvdW5kOnJnYihmcm9tICMwMDAgciBnIGIpKXtAbWVkaWEgKGFueS1ob3Zlcjpob3Zlcil7LmNvbHVtbi1mbnVhT2ExWTpob3ZlcntiYWNrZ3JvdW5kOnZhcigtLWRldGFpbHMtY2hhcnQtY29sdW1ucy1ob3Zlci1iYWNrZ3JvdW5kLHZhcigtLV8xLVQyODMpKX19fS5jb2x1bW4tZm51YU9hMVkgLmNpcmNsZS1mbnVhT2ExWXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWRldGFpbHMtY2hhcnQtY2lyY2xlLWNvbG9yKTtib3JkZXItcmFkaXVzOjEwMCU7aGVpZ2h0OjE2cHg7bWFyZ2luLWJvdHRvbTotOHB4O3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjE2cHh9LmNvbHVtbi1mbnVhT2ExWSAuYmFyLWZudWFPYTFZe2JhY2tncm91bmQtY29sb3I6dmFyKC0tZGV0YWlscy1jaGFydC1iYXItY29sb3IsdmFyKC0taW5uZXItYmFyLWNvbG9yKSk7YmFja2dyb3VuZC1pbWFnZTpyZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KC00NWRlZywjMDAwMCwjMDAwMCAxMXB4LHZhcigtLWRldGFpbHMtY2hhcnQtYmFyLWhhdGNoLWNvbG9yLCMwMDAwKSAxMXB4LHZhcigtLWRldGFpbHMtY2hhcnQtYmFyLWhhdGNoLWNvbG9yLCMwMDAwKSAxMnB4KTtib3JkZXItc3RhcnQtZW5kLXJhZGl1czp2YXIoLS1kZXRhaWxzLWNoYXJ0LWJhci1yYWRpdXMsMnB4KTtib3JkZXItc3RhcnQtc3RhcnQtcmFkaXVzOnZhcigtLWRldGFpbHMtY2hhcnQtYmFyLXJhZGl1cywycHgpO21pbi13aWR0aDozcHg7cG9zaXRpb246dmFyKC0tZGV0YWlscy1jaGFydC1jb2x1bW4tYmFyLXBvc2l0aW9uLHJlbGF0aXZlKTt3aWR0aDp2YXIoLS1kZXRhaWxzLWNoYXJ0LWNvbHVtbi1iYXItd2lkdGgsODBweCl9LmNvbHVtbi1mbnVhT2ExWSAuYmFyLWZudWFPYTFZLm1pbmktZm51YU9hMVl7d2lkdGg6dmFyKC0tZGV0YWlscy1jaGFydC1jb2x1bW4tYmFyLXdpZHRoLDhweCl9LmNvbHVtbi1mbnVhT2ExWSAuYmFyLWZudWFPYTFZLm5lZ2F0aXZlLWZudWFPYTFZe2JvcmRlci1yYWRpdXM6MCAwIHZhcigtLWRldGFpbHMtY2hhcnQtYmFyLXJhZGl1cywycHgpIHZhcigtLWRldGFpbHMtY2hhcnQtYmFyLXJhZGl1cywycHgpfS5jb2x1bW4tZm51YU9hMVkgLmJhci1mbnVhT2ExWS5uZWdhdGl2ZS1mbnVhT2ExWTpkaXIocnRsKXtib3JkZXItcmFkaXVzOjAgMCB2YXIoLS1kZXRhaWxzLWNoYXJ0LWJhci1yYWRpdXMsMnB4KSB2YXIoLS1kZXRhaWxzLWNoYXJ0LWJhci1yYWRpdXMsMnB4KX0uY29sdW1uLWZudWFPYTFZIC5iYXItZm51YU9hMVk6ZGlyKHJ0bCl7YmFja2dyb3VuZC1pbWFnZTpyZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KDQ1ZGVnLCMwMDAwLCMwMDAwIDExcHgsdmFyKC0tZGV0YWlscy1jaGFydC1iYXItaGF0Y2gtY29sb3IsIzAwMDApIDExcHgsdmFyKC0tZGV0YWlscy1jaGFydC1iYXItaGF0Y2gtY29sb3IsIzAwMDApIDEycHgpfS5jb2x1bW4tZm51YU9hMVkgLmVtcHR5U3BhY2UtZm51YU9hMVl7aGVpZ2h0OjA7bWluLXdpZHRoOmNhbGModmFyKC0tZGV0YWlscy1jaGFydC1jb2x1bW4tYmFycy1taW4tZ2FwLCA0cHgpLzIpO3Bvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOmNhbGModmFyKC0tZGV0YWlscy1jaGFydC1jb2x1bW4tYmFycy1nYXAsIDhweCkvMil9QG1lZGlhIChtYXgtd2lkdGg6NzY3cHgpey5jb2x1bW4tZm51YU9hMVkgLmVtcHR5U3BhY2UtZm51YU9hMVl7bWluLXdpZHRoOmNhbGModmFyKC0tZGV0YWlscy1jaGFydC1jb2x1bW4tYmFycy1taW4tZ2FwLCAycHgpLzIpfX1AbWVkaWEgKG1heC13aWR0aDo0NzlweCl7LmNvbHVtbi1mbnVhT2ExWSAuZW1wdHlTcGFjZS1mbnVhT2ExWXttaW4td2lkdGg6dW5zZXR9fS5jb2x1bW4tZm51YU9hMVkgLmVtcHR5U3BhY2UtZm51YU9hMVkubWluaS1mbnVhT2ExWXt3aWR0aDpjYWxjKHZhcigtLWRldGFpbHMtY2hhcnQtY29sdW1uLWJhcnMtZ2FwLCA2cHgpLzIpfS5jb2x1bW4tZm51YU9hMVk6ZGlyKHJ0bCl7ZGlyZWN0aW9uOnJ0bH0uY2FudmFzUGFuZS1SbEdsZ0NfOXtmaWx0ZXI6dmFyKC0tZGV0YWlscy1jaGFydC1jYW52YXMtcGFuZS1maWx0ZXIsZHJvcC1zaGFkb3coMCAxcHggMXB4IHJnYihmcm9tIHZhcigtLWNvbG9yLWNvbGQtZ3JheS05MDApIHIgZyBiLy4yNSkpKTtoZWlnaHQ6Y2FsYygxMDAlICsgMTZweCk7aW5zZXQtaW5saW5lLXN0YXJ0OjA7b3ZlcmZsb3c6aGlkZGVuO3BvaW50ZXItZXZlbnRzOm5vbmU7cG9zaXRpb246YWJzb2x1dGU7dG9wOi04cHg7d2lkdGg6MTAwJX1Ac3VwcG9ydHMgbm90IChiYWNrZ3JvdW5kOnJnYihmcm9tICMwMDAgciBnIGIpKXsuY2FudmFzUGFuZS1SbEdsZ0NfOXtmaWx0ZXI6dmFyKC0tZGV0YWlscy1jaGFydC1jYW52YXMtcGFuZS1maWx0ZXIsZHJvcC1zaGFkb3coMCAxcHggMXB4ICMxMzE3MjI0MCkpfX0uY2FudmFzUGFuZS1SbEdsZ0NfOS5taW5pLVJsR2xnQ185e2ZpbHRlcjp2YXIoLS1kZXRhaWxzLWNoYXJ0LWNhbnZhcy1wYW5lLWZpbHRlcixub25lKX0uY2FudmFzLVJsR2xnQ185e2Rpc3BsYXk6YmxvY2s7aGVpZ2h0OjEwMCU7d2lkdGg6MTAwJX0ubGVnZW5kLWJzTm9rV2xOe2Rpc3BsYXk6ZmxleDtmbGV4LXdyYXA6d3JhcDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO21hcmdpbi10b3A6OHB4O21pbi1oZWlnaHQ6MTZweH0ubGVnZW5kLWJzTm9rV2xOIC5sYWJlbC1ic05va1dsTntjb2xvcjp2YXIoLS1kZXRhaWxzLWNoYXJ0LXNlcmllcy1sZWdlbmQtY29sb3IsdmFyKC0tY29sb3ItY29udGVudC10ZXh0LXNvY2lhbC1zZWNvbmRhcnkpKTtkaXNwbGF5OmlubGluZS1ibG9jaztmb250LWZhbWlseTotYXBwbGUtc3lzdGVtLEJsaW5rTWFjU3lzdGVtRm9udCxUcmVidWNoZXQgTVMsUm9ib3RvLFVidW50dSxzYW5zLXNlcmlmO2ZvbnQtZmVhdHVyZS1zZXR0aW5nczoidG51bSIgb24sImxudW0iIG9uO2ZvbnQtc3R5bGU6bm9ybWFsO21heC13aWR0aDoxMDAlO3BhZGRpbmc6MCA4cHg7dGV4dC1hbGlnbjpjZW50ZXI7LS11aS1saWItdHlwb2dyYXBoeS1mb250LXNpemU6MTJweDtmb250LXNpemU6dmFyKC0tdWktbGliLXR5cG9ncmFwaHktZm9udC1zaXplKTtmb250LXdlaWdodDo0MDA7LS11aS1saWItdHlwb2dyYXBoeS1saW5lLWhlaWdodDoxNnB4O2xpbmUtaGVpZ2h0OnZhcigtLXVpLWxpYi10eXBvZ3JhcGh5LWxpbmUtaGVpZ2h0KX0ubGVnZW5kLWJzTm9rV2xOIC5sYWJlbC1ic05va1dsTiAuc3dhdGNoLWJzTm9rV2xOe2JhY2tncm91bmQtY29sb3I6dmFyKC0tZGV0YWlscy1jaGFydC1zZXJpZXMtbGVnZW5kLWNvbG9yLCMwMDAwKTttYXJnaW4taW5saW5lLWVuZDo0cHh9LmxlZ2VuZC1ic05va1dsTiAubGFiZWwtYnNOb2tXbE4gLmxhYmVsVGV4dC1ic05va1dsTntjb2xvcjp2YXIoLS1jb2xvci1jb250ZW50LXRleHQtc29jaWFsLXNlY29uZGFyeSk7Y3Vyc29yOmRlZmF1bHR9W2RhdGEtdGhlbWU9bGlnaHRdey0tXzAtdDZvYzp2YXIoLS1jb2xvci1jb2xkLWdyYXktMTAwKTstLV8xLXQ2b2M6dmFyKC0tY29sb3ItY29sZC1ncmF5LTU1MCl9W2RhdGEtdGhlbWU9ZGFya117LS1fMC10Nm9jOnZhcigtLWNvbG9yLWNvbGQtZ3JheS04MDApOy0tXzEtdDZvYzp2YXIoLS1jb2xvci1jb2xkLWdyYXktNDUwKX0uZ3JpZC1YdVEybnpCM3tkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2hlaWdodDpjYWxjKDEwMCUgKyAycHgpO2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO3Bvc2l0aW9uOmFic29sdXRlO3RvcDotMXB4fS5ncmlkLVh1UTJuekIzLC5saW5lLVh1UTJuekIze3BvaW50ZXItZXZlbnRzOm5vbmU7d2lkdGg6MTAwJX0ubGluZS1YdVEybnpCM3tib3JkZXItYm90dG9tOjFweCBzb2xpZDtib3JkZXItYm90dG9tLWNvbG9yOnZhcigtLV8wLXQ2b2MpO2hlaWdodDowfS5ib2xkTGluZS1YdVEybnpCM3tib3JkZXItYm90dG9tLWNvbG9yOnZhcigtLV8xLXQ2b2MpfS5oaWRkZW5MaW5lLVh1UTJuekIze2JvcmRlci1ib3R0b206bm9uZX0uc3RhY2tTZXQtbEpDRkZMcGl7ZGlzcGxheTpmbGV4O2hlaWdodDoxMDAlO3BvaW50ZXItZXZlbnRzOm5vbmU7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MTAwJX0uY29sdW1uLWxKQ0ZGTHBpe2FsaWduLWl0ZW1zOmZsZXgtZW5kO2Rpc3BsYXk6ZmxleDtmbGV4OjEgMSBhdXRvO2p1c3RpZnktY29udGVudDpjZW50ZXI7b3ZlcmZsb3c6aGlkZGVuO3BhZGRpbmc6MCBjYWxjKHZhcigtLWRldGFpbHMtY2hhcnQtY29sdW1ucy1nYXAsIDQ4cHgpLzIpfUBtZWRpYSAobWF4LXdpZHRoOjk3OXB4KXsuY29sdW1uLWxKQ0ZGTHBpe3BhZGRpbmc6MCBjYWxjKHZhcigtLWRldGFpbHMtY2hhcnQtY29sdW1ucy1nYXAsIDMycHgpLzIpfX1AbWVkaWEgKG1heC13aWR0aDo3NjdweCl7LmNvbHVtbi1sSkNGRkxwaXtwYWRkaW5nOjAgY2FsYyh2YXIoLS1kZXRhaWxzLWNoYXJ0LWNvbHVtbnMtZ2FwLCAyNHB4KS8yKX19QG1lZGlhIChtYXgtd2lkdGg6NDc5cHgpey5jb2x1bW4tbEpDRkZMcGl7cGFkZGluZzowIGNhbGModmFyKC0tZGV0YWlscy1jaGFydC1jb2x1bW5zLWdhcCwgMTZweCkvMil9fS5jb2x1bW4tbEpDRkZMcGkubWluaS1sSkNGRkxwaXtwYWRkaW5nOjAgY2FsYyh2YXIoLS1kZXRhaWxzLWNoYXJ0LWNvbHVtbnMtZ2FwLCA4cHgpLzIpfS5zdGFja1dyYXAtbEpDRkZMcGl7Ym9yZGVyLXJhZGl1czoycHg7ZGlzcGxheTpmbGV4O2ZsZXg6MSAxIGF1dG87ZmxleC1kaXJlY3Rpb246Y29sdW1uLXJldmVyc2U7anVzdGlmeS1jb250ZW50OmZsZXgtZW5kO21heC13aWR0aDp2YXIoLS1kZXRhaWxzLWNoYXJ0LWNvbHVtbi1iYXItd2lkdGgsMTE2cHgpO292ZXJmbG93OmhpZGRlbjtwb3NpdGlvbjpyZWxhdGl2ZTt3aWR0aDp2YXIoLS1kZXRhaWxzLWNoYXJ0LWNvbHVtbi1iYXItd2lkdGgsODBweCl9LnN0YWNrV3JhcC1sSkNGRkxwaS5taW5pLWxKQ0ZGTHBpe2ZsZXgtZ3JvdzowO3dpZHRoOnZhcigtLWRldGFpbHMtY2hhcnQtY29sdW1uLWJhci13aWR0aCw4cHgpfS5zdGFja1dyYXAtbEpDRkZMcGkucG9zaXRpdmVPbmx5LWxKQ0ZGTHBpe2JvcmRlci1yYWRpdXM6MnB4IDJweCAwIDB9LnN0YWNrV3JhcC1sSkNGRkxwaS5uZWdhdGl2ZU9ubHktbEpDRkZMcGl7Ym9yZGVyLXJhZGl1czowIDAgMnB4IDJweH0uY29udGFpbmVyLWUzVF9MV3hhe2Rpc3BsYXk6ZmxleDttYXgtd2lkdGg6MTAwJTtvdmVyZmxvdzpoaWRkZW47cG9zaXRpb246cmVsYXRpdmU7d2lkdGg6MTAwJX0uY29udGFpbmVyLWUzVF9MV3hhLndpdGhPZmZzZXQtZTNUX0xXeGE6bm90KC53aXRoTGVmdFNsb3QtZTNUX0xXeGEpOm5vdCgud2l0aFJpZ2h0U2xvdC1lM1RfTFd4YSl7bWFyZ2luOjAgY2FsYyh2YXIoLS1kZXRhaWxzLWNoYXJ0LWZpbG1zdHJpcC1ob3Jpem9udGFsLW9mZnNldCwgMHB4KSotMSk7bWF4LXdpZHRoOmNhbGMoMTAwJSArIHZhcigtLWRldGFpbHMtY2hhcnQtZmlsbXN0cmlwLWhvcml6b250YWwtb2Zmc2V0LCAwcHgpKjIpO3dpZHRoOmNhbGMoMTAwJSArIHZhcigtLWRldGFpbHMtY2hhcnQtZmlsbXN0cmlwLWhvcml6b250YWwtb2Zmc2V0LCAwcHgpKjIpfUBtZWRpYSAocG9pbnRlcjpmaW5lKXsuY29udGFpbmVyLWUzVF9MV3hhLndpdGhPZmZzZXQtZTNUX0xXeGE6bm90KC53aXRoTGVmdFNsb3QtZTNUX0xXeGEpOm5vdCgud2l0aFJpZ2h0U2xvdC1lM1RfTFd4YSl7bWFyZ2luOjA7bWF4LXdpZHRoOjEwMCU7d2lkdGg6MTAwJX19LmNvbnRhaW5lci1lM1RfTFd4YS53aXRoT2Zmc2V0LWUzVF9MV3hhLndpdGhMZWZ0U2xvdC1lM1RfTFd4YTpub3QoLndpdGhSaWdodFNsb3QtZTNUX0xXeGEpe21hcmdpbi1pbmxpbmUtZW5kOmNhbGModmFyKC0tZGV0YWlscy1jaGFydC1maWxtc3RyaXAtaG9yaXpvbnRhbC1vZmZzZXQsIDBweCkqLTEpO21heC13aWR0aDpjYWxjKDEwMCUgKyB2YXIoLS1kZXRhaWxzLWNoYXJ0LWZpbG1zdHJpcC1ob3Jpem9udGFsLW9mZnNldCwgMHB4KSk7d2lkdGg6Y2FsYygxMDAlICsgdmFyKC0tZGV0YWlscy1jaGFydC1maWxtc3RyaXAtaG9yaXpvbnRhbC1vZmZzZXQsIDBweCkpfUBtZWRpYSAocG9pbnRlcjpmaW5lKXsuY29udGFpbmVyLWUzVF9MV3hhLndpdGhPZmZzZXQtZTNUX0xXeGEud2l0aExlZnRTbG90LWUzVF9MV3hhOm5vdCgud2l0aFJpZ2h0U2xvdC1lM1RfTFd4YSl7bWFyZ2luOjA7bWF4LXdpZHRoOjEwMCU7d2lkdGg6MTAwJX19LmNvbnRhaW5lci1lM1RfTFd4YS53aXRoT2Zmc2V0LWUzVF9MV3hhLndpdGhSaWdodFNsb3QtZTNUX0xXeGE6bm90KC53aXRoTGVmdFNsb3QtZTNUX0xXeGEpe21hcmdpbi1pbmxpbmUtc3RhcnQ6Y2FsYyh2YXIoLS1kZXRhaWxzLWNoYXJ0LWZpbG1zdHJpcC1ob3Jpem9udGFsLW9mZnNldCwgMHB4KSotMSk7bWF4LXdpZHRoOmNhbGMoMTAwJSArIHZhcigtLWRldGFpbHMtY2hhcnQtZmlsbXN0cmlwLWhvcml6b250YWwtb2Zmc2V0LCAwcHgpKTt3aWR0aDpjYWxjKDEwMCUgKyB2YXIoLS1kZXRhaWxzLWNoYXJ0LWZpbG1zdHJpcC1ob3Jpem9udGFsLW9mZnNldCwgMHB4KSl9QG1lZGlhIChwb2ludGVyOmZpbmUpey5jb250YWluZXItZTNUX0xXeGEud2l0aE9mZnNldC1lM1RfTFd4YS53aXRoUmlnaHRTbG90LWUzVF9MV3hhOm5vdCgud2l0aExlZnRTbG90LWUzVF9MV3hhKXttYXJnaW46MDttYXgtd2lkdGg6MTAwJTt3aWR0aDoxMDAlfX0uaXRlbXMtZTNUX0xXeGF7ZGlzcGxheTpmbGV4O292ZXJmbG93OnNjcm9sbDtvdmVyc2Nyb2xsLWJlaGF2aW9yLXg6Y29udGFpbjt3aWR0aDoxMDAlfUBzdXBwb3J0cyAoLW1vei1hcHBlYXJhbmNlOm5vbmUpey5pdGVtcy1lM1RfTFd4YXtzY3JvbGxiYXItd2lkdGg6bm9uZX19Lml0ZW1zLWUzVF9MV3hhLnNiLXNjcm9sbGJhci13cmFwe2Rpc3BsYXk6bm9uZX0uaXRlbXMtZTNUX0xXeGE6Oi13ZWJraXQtc2Nyb2xsYmFye2Rpc3BsYXk6bm9uZTtoZWlnaHQ6MDt3aWR0aDowfS5pdGVtcy1lM1RfTFd4YTo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIsLml0ZW1zLWUzVF9MV3hhOjotd2Via2l0LXNjcm9sbGJhci10cmFja3tkaXNwbGF5Om5vbmV9Lml0ZW1zLWUzVF9MV3hhOjotd2Via2l0LXNjcm9sbGJhci1jb3JuZXJ7ZGlzcGxheTpub25lfS5vZmZzZXRab25lLWUzVF9MV3hhe2ZsZXg6bm9uZTt3aWR0aDp2YXIoLS1kZXRhaWxzLWNoYXJ0LWZpbG1zdHJpcC1ob3Jpem9udGFsLW9mZnNldCwwKX1AbWVkaWEgKHBvaW50ZXI6ZmluZSl7Lm9mZnNldFpvbmUtZTNUX0xXeGF7ZGlzcGxheTpub25lfX0uc2Nyb2xsQnRuV3JhcHBlci1lM1RfTFd4YXtkaXNwbGF5Om5vbmV9QG1lZGlhIChwb2ludGVyOmZpbmUpey5zY3JvbGxCdG5XcmFwcGVyLWUzVF9MV3hhe2FsaWduLWl0ZW1zOmNlbnRlcjtkaXNwbGF5OmZsZXg7aGVpZ2h0OmNhbGModmFyKC0tZGV0YWlscy1jaGFydC1oZWlnaHQpICsgdmFyKC0tZGV0YWlscy1jaGFydC1wYW5lLXRvcC1tYXJnaW4pICsgdmFyKC0tZGV0YWlscy1jaGFydC1wYW5lLWJvdHRvbS1tYXJnaW4pKTttYXJnaW4taW5saW5lLXN0YXJ0OjhweH0uc2Nyb2xsQnRuV3JhcHBlci1lM1RfTFd4YTpmaXJzdC1jaGlsZHttYXJnaW4taW5saW5lLWVuZDo4cHg7bWFyZ2luLWlubGluZS1zdGFydDowfX0uc2Nyb2xsQnRuLWUzVF9MV3hhey0tdWktbGliLWxpZ2h0LWJ1dHRvbi1jb2xvci1iZzp2YXIoLS1jb2xvci1ib2R5LWJnKTtoZWlnaHQ6MjhweDt3aWR0aDoyOHB4fS5pY29uLWUzVF9MV3hhIHN2ZzpkaXIocnRsKXt0cmFuc2Zvcm06c2NhbGVYKC0xKX0ud3JhcC1zSmZkSWlEantkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uOy0tZGV0YWlscy1jaGFydC1oZWlnaHQ6dmFyKC0tY3VzdG9tLWRldGFpbHMtY2hhcnQtaGVpZ2h0LDEyOXB4KTstLWRldGFpbHMtY2hhcnQtcGFuZS10b3AtbWFyZ2luOnZhcigtLWN1c3RvbS1kZXRhaWxzLWNoYXJ0LXBhbmUtdG9wLW1hcmdpbiw4cHgpOy0tZGV0YWlscy1jaGFydC1wYW5lLWJvdHRvbS1tYXJnaW46dmFyKC0tY3VzdG9tLWRldGFpbHMtY2hhcnQtcGFuZS1ib3R0b20tbWFyZ2luLDhweCl9LndyYXAtc0pmZElpRGogLnBhbmVXcmFwLXNKZmRJaURqe2Rpc3BsYXk6ZmxleH0ucGFuZS1zSmZkSWlEantkaXNwbGF5OmZsZXg7ZmxleDoxIDEgYXV0bztmbGV4LWRpcmVjdGlvbjpjb2x1bW47b3ZlcmZsb3c6dmFyKC0tZGV0YWlscy1jaGFydC1wYW5lLW92ZXJmbG93KX0ucGFuZS1zSmZkSWlEai5vdmVyZmxvd0hpZGRlbi1zSmZkSWlEantvdmVyZmxvdzp2YXIoLS1kZXRhaWxzLWNoYXJ0LXBhbmUtb3ZlcmZsb3csaGlkZGVuKX0uY2hhcnQtc0pmZElpRGp7ZGlyZWN0aW9uOmx0cjtkaXNwbGF5OmZsZXg7aGVpZ2h0OnZhcigtLWRldGFpbHMtY2hhcnQtaGVpZ2h0KTttYXJnaW4tYm90dG9tOnZhcigtLWRldGFpbHMtY2hhcnQtcGFuZS1ib3R0b20tbWFyZ2luKTttYXJnaW4tdG9wOnZhcigtLWRldGFpbHMtY2hhcnQtcGFuZS10b3AtbWFyZ2luKTtwb3NpdGlvbjpyZWxhdGl2ZTt3aWR0aDoxMDAlfS5pbnZpc2libGUtc0pmZElpRGp7cG9zaXRpb246cmVsYXRpdmU7dG9wOjhweDt2aXNpYmlsaXR5OmhpZGRlbn0uaG9yaXpvbnRhbFNjYWxlLXNKZmRJaURqe2Rpc3BsYXk6dmFyKC0tZGV0YWlscy1jaGFydC1ib3R0b20tc2NhbGUtZGlzcGxheSxncmlkKTstLXNjYWxlLWxldHRlci1zcGFjaW5nOnZhcigtLWhvcml6b250YWwtc2NhbGUtbGV0dGVyLXNwYWNpbmcsMCl9Lmhvcml6b250YWxTY2FsZS1zSmZkSWlEai5leHRlbmRTY2FsZVZhbHVlLXNKZmRJaURqey0taG9yaXpvbnRhbC1zY2FsZS12YWx1ZXMtZ2FwOjVweH0ucmlnaHRTY2FsZS1zSmZkSWlEanttYXJnaW4tbGVmdDoxNnB4fS5sZWZ0U2NhbGUtc0pmZElpRGp7bWFyZ2luLXJpZ2h0OjE2cHh9"}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/28936.8c2f15575bb179f3b127.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.826Z","timestamp":1785148034826,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/28936.8c2f15575bb179f3b127.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\ncontent-type: text/css; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding, Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\netag: W/\"69f98b78-1ae\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Tue, 05 May 2026 06:17:28 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.51\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 05/05/2026 10:18:38\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 66da91b076dec8746cc44176543e8ed0\r\ncdn-cache: HIT\r\ncontent-encoding: br\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":430,"size_decoded":1008,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with very long lines (430), with no line terminators","md5":"9b33063692dacfb42a54863bd2563f5d","sha1":"e688ad0b03d1bd932849c03bc5a321101c049b51","sha256":"94a3182cd927892993f43e15708945e20b29e34d958213a73e076f0c0e1c715c","sha512":"8f397dfa258ce6f51d7424f20ba38f8369dc29572843a0bbfde1e6e5cc5203c54a0bf73a14bae7a9809638137b170b8ab5a0a02a566b09dc8b7124433ff03fc8","ssdeep":"","tlshash":"e2e05c98f193929f9913b13e1364c7982d55fe05cca12776ab0e92236dc17c320a0a48","first_seen":"2026-05-01T03:41:17.420999Z","last_seen":"2026-07-27T10:28:13.806939Z","times_seen":21,"resource_available":false,"data":"Lmljb24tU0hQamhnQmx7YWxpZ24taXRlbXM6Y2VudGVyO2JvcmRlci1yYWRpdXM6NTAlO2Rpc3BsYXk6ZmxleDtoZWlnaHQ6MThweDttYXJnaW4taW5saW5lLXN0YXJ0OjVweDttYXJnaW4tYm90dG9tOmF1dG87bWFyZ2luLXRvcDphdXRvO3dpZHRoOjE4cHh9Lmljb24tU0hQamhnQmwucHJlTWFya2V0LVNIUGpoZ0Jse2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3Itb3ZlcmxheS13YXJuaW5nLTEtbGlnaHQpO2NvbG9yOnZhcigtLWNvbG9yLWNvbnRlbnQtcHJpbWFyeS13YXJuaW5nLWV4dHJhLWJvbGQpfS5pY29uLVNIUGpoZ0JsLnBvc3RNYXJrZXQtU0hQamhnQmx7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1vdmVybGF5LWFjY2VudC0xLWxpZ2h0KTtjb2xvcjp2YXIoLS1jb2xvci1jb250ZW50LXByaW1hcnktYWNjZW50LWV4dHJhLWJvbGQpfQ=="}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/en.62351.b382da174f097a0d0e43.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:12.979Z","timestamp":1785148032979,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/en.62351.b382da174f097a0d0e43.js HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:12 GMT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a632877-20902\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Fri, 24 Jul 2026 08:55:19 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/24/2026 10:31:23\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: f7390a574a545910b6842ff2114b6f5f\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":133378,"size_decoded":33504,"mime_type":"application/javascript; charset=utf-8","magic":"Unicode text, UTF-8 text, with very long lines (3071)","md5":"592868958f083a645011c18526be50f6","sha1":"33a4aca0ed967d4c042777d21cfe064a9fe7621b","sha256":"9ac1b143f8bfa585ff4c79336d6e869e8236f9a663d1610bf4d1f2f452e5cf6c","sha512":"8a8bcd9d03298df1b5917f0bbe544ffe5779ee6ff2037cbab84cf0a15996a5208f3d75e6bb1d5f3a27bfd89ad8e3d452b3de058cdd314aeca07608d8c12a14b6","ssdeep":"1536:HcIavPJ0d2mzNQgTQ4yBoYSovc3fVfcD/WZz67dvUOPpguNd3mTdED:F2mzNhE4yFc3fVTudGu7D","tlshash":"e9d3cd07e140a4d66b71c15237cadcc9bdf4a88a43e0c685739adf38c52be2762b6d74","first_seen":"2026-07-24T15:28:44.72755Z","last_seen":"2026-07-27T12:53:06.218675Z","times_seen":188,"resource_available":true,"data":"KHNlbGYud2VicGFja0NodW5rdHJhZGluZ3ZpZXc9c2VsZi53ZWJwYWNrQ2h1bmt0cmFkaW5ndmlld3x8W10pLnB1c2goW1syNDkyOSwzNzg2NSw0NzAzMCw1MzI0OSw1NzE4NCw2MjM1MSw2ODg2MCw4NDY5Myw5Mjk2NF0sezYxNzM0MChlKXtlLmV4cG9ydHM9WyJDb2x1bW5zIl19LDExODQ5MShlKXtlLmV4cG9ydHM9WyJDYW5kbGVzIl19LDc5NjA5MyhlKXtlLmV4cG9ydHM9WyJBcmVhIl19LDk0MTYyOShlKXtlLmV4cG9ydHM9WyJCYXJzIl19LDUyNTMzMShlKXtlLmV4cG9ydHM9WyJCYXNlbGluZSJdfSw0MTM0MyhlKXtlLmV4cG9ydHM9WyJLYWdpIl19LDk2Nzg0MShlKXtlLmV4cG9ydHM9WyJITEMgYXJlYSJdfSw2ODMwMChlKXtlLmV4cG9ydHM9WyJITEMgYmFycyJdfSwzMzE4MjQoZSl7ZS5leHBvcnRzPVsiSG9sbG93IGNhbmRsZXMiXX0sODM1NTQzKGUpe2UuZXhwb3J0cz1bIkhlaWtpbiBBc2hpIl19LDk1MjgxMChlKXtlLmV4cG9ydHM9WyJIaWdoLWxvdyJdfSwyMTA0OTkoZSl7ZS5leHBvcnRzPVsiTGluZSJdfSwxODYxNDcoZSl7ZS5leHBvcnRzPVsiTGluZSB3aXRoIG1hcmtlcnMiXX0sMzA3NDM2KGUpe2UuZXhwb3J0cz1bIkxpbmUgYnJlYWsiXX0sNjg3OTUxKGUpe2UuZXhwb3J0cz1bIlNlc3Npb24gdm9sdW1lIHByb2ZpbGUiXX0sOTE2MTQ4KGUpe2UuZXhwb3J0cz1bIlN0ZXAgbGluZSJdfSw4NjcwMjEoZSl7ZS5leHBvcnRzPVsiUG9pbnQgJiBmaWd1cmUiXX0sMTg4MzUyKGUpe2UuZXhwb3J0cz1bIlJhbmdlIl19LDQ2MTczOChlKXtlLmV4cG9ydHM9WyJSZW5rbyJdfSwxMTc5ODQoZSl7ZS5leHBvcnRzPVsiVGltZSBwcmljZSBvcHBvcnR1bml0eSJdfSw4OTIzNzUoZSl7ZS5leHBvcnRzPVsiVm9sdW1lIGNhbmRsZXMiXX0sMjAxMDczKGUpe2UuZXhwb3J0cz1bIlZvbHVtZSBmb290cHJpbnQiXX0sNjQ2ODQ4KGUpe2UuZXhwb3J0cz1bIk9iamVjdCB0cmVlIl19LDExMzUyNChlKXtlLmV4cG9ydHM9WyJDb250aW51ZSJdfSwyNjQ3MzkoZSl7ZS5leHBvcnRzPVsiQ2FuY2VsIl19LDMxODczNChlKXtlLmV4cG9ydHM9WyJSZW1vdmUiXX0sNzcwOTQxKGUpe2UuZXhwb3J0cz1bIlVua25vd24gZXJyb3IiXX0sMTU3NDE3KGUpe2UuZXhwb3J0cz1bIlJlIl19LDU1ODQxMihlKXtlLmV4cG9ydHM9WyIlIG9mIEdEUCJdfSw0Njg0NjAoZSl7ZS5leHBvcnRzPVsiJSBvZiBwYXIiXX0sNDQ1MDUoZSl7ZS5leHBvcnRzPVsiRGlzYy4geWllbGQsICUiXX0sOTQ1MzYyKGUpe2UuZXhwb3J0cz1bIkRhcmsiXX0sMjQ3MTY3KGUpe2UuZXhwb3J0cz1bIkxpZ2h0Il19LDI0NzUyMShlKXtlLmV4cG9ydHM9WyJDb3VsZG4ndCBjb3B5Il19LDYyMzQwMChlKXtlLmV4cG9ydHM9WyJDb3VsZG4ndCBjdXQiXX0sMzk0MTI4KGUpe2UuZXhwb3J0cz1bIkNvdWxkbid0IHBhc3RlIl19LDIxMDkwMShlKXtlLmV4cG9ydHM9WyJQbGVhc2UgZ2l2ZSB1cyBhIGNsaXBib2FyZCB3cml0aW5nIHBlcm1pc3Npb24gaW4geW91ciBicm93c2VyIG9yIHByZXNzIHtrZXlzdHJva2V9Il19LDc4Njk3OChlKXtlLmV4cG9ydHM9WyJBREoiXX0sNzMwODQwKGUpe2UuZXhwb3J0cz1bIkItQURKIl19LDMzNzk1NyhlKXtlLmV4cG9ydHM9WyJTRVQiXX0sNjUzODU5KGUpe2UuZXhwb3J0cz1bIkV4cGlyZWQiXX0sMzY0ODQzKGUpe2UuZXhwb3J0cz1bIk1hbnVhbGx5Il19LDQ2MzIzMihlKXtlLmV4cG9ydHM9WyJTdG9wcGVkIl19LDM2NzU3MyhlKXtlLmV4cG9ydHM9WyJUcmlnZ2VyZWQiXX0sNTMxODM0KGUpe2UuZXhwb3J0cz1bIkRlbGV0ZSBzZWxlY3RlZCBhbGVydHM/Il19LDQ1NjE1MihlKXtlLmV4cG9ydHM9WyJEZWxldGUgdGhpcyBhbGVydD8iXX0sNjgzNjI3KGUpe2UuZXhwb3J0cz1bIlNvbWV0aGluZyB3ZW50IHdyb25nIl19LDg1OTk5NChlKXtlLmV4cG9ydHM9WyJDIl19LDg5MjM2MyhlKXtlLmV4cG9ydHM9WyJEIl19LDM5NDUwMShlKXtlLmV4cG9ydHM9WyJEIl19LDU3MDkzOShlKXtlLmV4cG9ydHM9WyJFIl19LDM5NDkyMShlKXtlLmV4cG9ydHM9WyJGIl19LDg2NjQ0KGUpe2UuZXhwb3J0cz1bIlIiXX0sNzU2NDU3KGUpe2UuZXhwb3J0cz1bIlIiXX0sMjU3MzI2KGUpe2UuZXhwb3J0cz1bIlMiXX0sMjMwNDkyKGUpe2UuZXhwb3J0cz1bImQiXX0sMTIyMDUzKGUpe2UuZXhwb3J0cz1bImgiXX0sMTY0NTE2KGUpe2UuZXhwb3J0cz1bIm0iXX0sMjYyMjA1KGUpe2UuZXhwb3J0cz1bInMiXX0sMzk4NDU5KGUpe2UuZXhwb3J0cz1bIkZyIl19LDM2NTUzNShlKXtlLmV4cG9ydHM9WyJNbyJdfSwyNjA0OTYoZSl7ZS5leHBvcnRzPVsiU2EiXX0sNjY5MTk5KGUpe2UuZXhwb3J0cz1bIlN1Il19LDQ1MTI3MShlKXtlLmV4cG9ydHM9WyJXZSJdfSw2Mjg1ODIoZSl7ZS5leHBvcnRzPVsiVGgiXX0sOTM5MzI5KGUpe2UuZXhwb3J0cz1bIlR1Il19LDc4NDkxMChlKXtlLmV4cG9ydHM9WyJBZ2ciXX0sMTkzNzI4KGUpe2UuZXhwb3J0cz1bIkFnZ3JlZ2F0ZWQiXX0sNzMwOTY2KGUpe2UuZXhwb3J0cz1bIk5vQWdnIl19LDM2MDgyMChlKXtlLmV4cG9ydHM9WyJOb24tYWdncmVnYXRlZCJdfSwzNDY0MjEoZSl7ZS5leHBvcnRzPVsiQW5udWFsIl19LDY3OTk5MShlKXtlLmV4cG9ydHM9WyJGSCJdfSwyOTUyODgoZSl7ZS5leHBvcnRzPVsiRlEiXX0sMzI0NjE0KGUpe2UuZXhwb3J0cz1bIkZZIl19LDkwMDU4MihlKXtlLmV4cG9ydHM9WyJONEZIIl19LDU3MTA0MChlKXtlLmV4cG9ydHM9WyJONEZRIl19LDE5NzkzMChlKXtlLmV4cG9ydHM9WyJONEZZIl19LDMzNDkyOShlKXtlLmV4cG9ydHM9WyJORkgiXX0sODY2MDUwKGUpe2UuZXhwb3J0cz1bIk5GUSJdfSw1ODc4ODIoZSl7ZS5leHBvcnRzPVsiTkZZIl19LDI4Nzk0OShlKXtlLmV4cG9ydHM9WyJOVE0iXX0sNDQyNTExKGUpe2UuZXhwb3J0cz1bIk5leHQgdHdlbHZlIG1vbnRocyJdfSw2MTE2NDAoZSl7ZS5leHBvcnRzPVsiU2VtaWFubnVhbCJdfSwyMzM4NTYoZSl7ZS5leHBvcnRzPVsiUXVhcnRlcmx5Il19LDU4ODIyMShlKXtlLmV4cG9ydHM9WyJUVE0iXX0sMTkxNDMyKGUpe2UuZXhwb3J0cz1bIkQiXX0sODg5MTAoZSl7ZS5leHBvcnRzPVsiTSJdfSwyODExMDcoZSl7CmUuZXhwb3J0cz1bIlIiXX0sMjE4MDM2KGUpe2UuZXhwb3J0cz1bIlQiXX0sMzIzNTcwKGUpe2UuZXhwb3J0cz1bIlciXX0sMjQwNzMoZSl7ZS5leHBvcnRzPVsiaCJdfSw2MTg0KGUpe2UuZXhwb3J0cz1bIm0iXX0sMzkwODA5KGUpe2UuZXhwb3J0cz1bInMiXX0sMjI5OTk0KGUpe2UuZXhwb3J0cz1bIkMiXX0sOTU0NjE0KGUpe2UuZXhwb3J0cz1bIkgiXX0sNjY2NzMwKGUpe2UuZXhwb3J0cz1bIkhMMiJdfSwxMDAzNChlKXtlLmV4cG9ydHM9WyJITEMzIl19LDE0MzgxNShlKXtlLmV4cG9ydHM9WyJPSExDNCJdfSw4Mzk0NjMoZSl7ZS5leHBvcnRzPVsiTCJdfSw5NjA1MTMoZSl7ZS5leHBvcnRzPVsiTyJdfSwzMjUxMTgoZSl7ZS5leHBvcnRzPU9iamVjdC5jcmVhdGUobnVsbCksZS5leHBvcnRzWyJFbnRlciB2YWx1ZV9pbnB1dCJdPVsiRW50ZXIgdmFsdWUiXSxlLmV4cG9ydHMuU2VhcmNoX2lucHV0PVsiU2VhcmNoIl0sZS5leHBvcnRzWyIlRCBMZW5ndGhfaW5wdXQiXT1bIiVEIExlbmd0aCJdLGUuZXhwb3J0c1siJUQgU21vb3RoaW5nX2lucHV0Il09WyIlRCBTbW9vdGhpbmciXSxlLmV4cG9ydHNbIiVEX2lucHV0Il09WyIlRCJdLGUuZXhwb3J0c1siJUsgTGVuZ3RoX2lucHV0Il09WyIlSyBMZW5ndGgiXSxlLmV4cG9ydHNbIiVLIFNtb290aGluZ19pbnB1dCJdPVsiJUsgU21vb3RoaW5nIl0sZS5leHBvcnRzWyIlS19pbnB1dCJdPVsiJUsiXSxlLmV4cG9ydHNbIiVSX2lucHV0Il09WyIlUiJdLGUuZXhwb3J0c1siK0RJX2lucHV0Il09WyIrREkiXSxlLmV4cG9ydHNbIi0wLjIzNiBMZXZlbCBDb2xvcl9pbnB1dCJdPVsiLTAuMjM2IExldmVsIENvbG9yIl0sZS5leHBvcnRzWyItMC4zODIgTGV2ZWwgQ29sb3JfaW5wdXQiXT1bIi0wLjM4MiBMZXZlbCBDb2xvciJdLGUuZXhwb3J0c1siLTAuNjE4IExldmVsIENvbG9yX2lucHV0Il09WyItMC42MTggTGV2ZWwgQ29sb3IiXSxlLmV4cG9ydHNbIi0wLjY1IExldmVsIENvbG9yX2lucHV0Il09WyItMC42NSBMZXZlbCBDb2xvciJdLGUuZXhwb3J0c1siLURJX2lucHV0Il09WyItREkiXSxlLmV4cG9ydHNbIjAgTGV2ZWwgQ29sb3JfaW5wdXQiXT1bIjAgTGV2ZWwgQ29sb3IiXSxlLmV4cG9ydHNbIjAuMjM2IExldmVsIENvbG9yX2lucHV0Il09WyIwLjIzNiBMZXZlbCBDb2xvciJdLGUuZXhwb3J0c1siMC4zODIgTGV2ZWwgQ29sb3JfaW5wdXQiXT1bIjAuMzgyIExldmVsIENvbG9yIl0sZS5leHBvcnRzWyIwLjUgTGV2ZWwgQ29sb3JfaW5wdXQiXT1bIjAuNSBMZXZlbCBDb2xvciJdLGUuZXhwb3J0c1siMC42MTggTGV2ZWwgQ29sb3JfaW5wdXQiXT1bIjAuNjE4IExldmVsIENvbG9yIl0sZS5leHBvcnRzWyIwLjY1IExldmVsIENvbG9yX2lucHV0Il09WyIwLjY1IExldmVsIENvbG9yIl0sZS5leHBvcnRzWyIwLjc4NiBMZXZlbCBDb2xvcl9pbnB1dCJdPVsiMC43ODYgTGV2ZWwgQ29sb3IiXSxlLmV4cG9ydHNbIjEgTGV2ZWwgQ29sb3JfaW5wdXQiXT1bIjEgTGV2ZWwgQ29sb3IiXSxlLmV4cG9ydHNbIjEuMjcyIExldmVsIENvbG9yX2lucHV0Il09WyIxLjI3MiBMZXZlbCBDb2xvciJdLGUuZXhwb3J0c1siMS40MTQgTGV2ZWwgQ29sb3JfaW5wdXQiXT1bIjEuNDE0IExldmVsIENvbG9yIl0sZS5leHBvcnRzWyIxLjYxOCBMZXZlbCBDb2xvcl9pbnB1dCJdPVsiMS42MTggTGV2ZWwgQ29sb3IiXSxlLmV4cG9ydHNbIjEuNjUgTGV2ZWwgQ29sb3JfaW5wdXQiXT1bIjEuNjUgTGV2ZWwgQ29sb3IiXSxlLmV4cG9ydHNbIjFzdCBQZXJpb2RfaW5wdXQiXT1bIjFzdCBQZXJpb2QiXSxlLmV4cG9ydHNbIjIuNjE4IExldmVsIENvbG9yX2lucHV0Il09WyIyLjYxOCBMZXZlbCBDb2xvciJdLGUuZXhwb3J0c1siMi42NSBMZXZlbCBDb2xvcl9pbnB1dCJdPVsiMi42NSBMZXZlbCBDb2xvciJdLGUuZXhwb3J0c1siMm5kIFBlcmlvZF9pbnB1dCJdPVsiMm5kIFBlcmlvZCJdLGUuZXhwb3J0c1siMy42MTggTGV2ZWwgQ29sb3JfaW5wdXQiXT1bIjMuNjE4IExldmVsIENvbG9yIl0sZS5leHBvcnRzWyIzLjY1IExldmVsIENvbG9yX2lucHV0Il09WyIzLjY1IExldmVsIENvbG9yIl0sZS5leHBvcnRzWyIzcmQgUGVyaW9kX2lucHV0Il09WyIzcmQgUGVyaW9kIl0sZS5leHBvcnRzWyI0LjIzNiBMZXZlbCBDb2xvcl9pbnB1dCJdPVsiNC4yMzYgTGV2ZWwgQ29sb3IiXSxlLmV4cG9ydHNbIjR0aCBQZXJpb2RfaW5wdXQiXT1bIjR0aCBQZXJpb2QiXSxlLmV4cG9ydHNbIjV0aCBQZXJpb2RfaW5wdXQiXT1bIjV0aCBQZXJpb2QiXSxlLmV4cG9ydHNbIjZ0aCBQZXJpb2RfaW5wdXQiXT1bIjZ0aCBQZXJpb2QiXSxlLmV4cG9ydHMuQURSX0JfaW5wdXQ9WyJBRFJfQiJdLGUuZXhwb3J0c1siQURYIFNtb290aGluZ19pbnB1dCJdPVsiQURYIFNtb290aGluZyJdLGUuZXhwb3J0c1siQURYIHNtb290aGluZ19pbnB1dCJdPVsiQURYIHNtb290aGluZyJdLGUuZXhwb3J0cy5BRFhfaW5wdXQ9WyJBRFgiXSxlLmV4cG9ydHNbIkFUUiBDb2VmZmljaWVudCAoeClfaW5wdXQiXT1bIkFUUiBDb2VmZmljaWVudCAoeCkiXSxlLmV4cG9ydHNbIkFUUiBMZW5ndGggKHApX2lucHV0Il09WyJBVFIgTGVuZ3RoIChwKSJdLGUuZXhwb3J0c1siQVRSIExlbmd0aF9pbnB1dCJdPVsiQVRSIExlbmd0aCJdLGUuZXhwb3J0c1siQVRSIE11bHRfaW5wdXQiXT1bIkFUUiBNdWx0Il0sZS5leHBvcnRzWyJBVFIgTXVsdGlwbGllcl9pbnB1dCJdPVsiQVRSIE11bHRpcGxpZXIiXSxlLmV4cG9ydHNbIkFUUiBsZW5ndGhfaW5wdXQiXT1bIkFUUiBsZW5ndGgiXSxlLmV4cG9ydHNbIkFUUih7YXRyVmFsdWV9KV9pbnB1dCJdPVsiQVRSKHthdHJWYWx1ZX0pIl0sZS5leHBvcnRzLkFUUl9pbnB1dD1bIkFUUiJdLGUuZXhwb3J0cy5BYnNvbHV0ZV9pbnB1dD1bIkFic29sdXRlIl0sZS5leHBvcnRzWyJBY2N1bXVsYXRpb24vRGlzdHJpYnV0aW9uX2lucHV0Il09WyJBY2N1bXVsYXRpb24vRGlzdHJpYnV0aW9uIl0sZS5leHBvcnRzWyJBZGRpdGlvbmFsIHNldHRpbmdzX2lucHV0Il09WyJBZGRpdGlvbmFsIHNldHRpbmdzIl0sZS5leHBvcnRzWyJBZGp1c3QgVW5jb25maXJtZWRfaW5wdXQiXT1bIkFkanVzdCBVbmNvbmZpcm1lZCJdLAplLmV4cG9ydHNbIkFsbCBpdGVtc19jb21ib2JveF9pbnB1dCJdPVsiQWxsIGl0ZW1zIl0sZS5leHBvcnRzLkFsbF9pbnB1dD1bIkFsbCJdLGUuZXhwb3J0c1siQW5jaG9yIFBlcmlvZF9pbnB1dCJdPVsiQW5jaG9yIFBlcmlvZCJdLGUuZXhwb3J0c1siQW5jaG9yIFRpbWVmcmFtZV9pbnB1dCJdPVsiQW5jaG9yIFRpbWVmcmFtZSJdLGUuZXhwb3J0c1siQW5jaG9yIHBlcmlvZF9pbnB1dCJdPVsiQW5jaG9yIHBlcmlvZCJdLGUuZXhwb3J0c1siQW5vdGhlciBzeW1ib2xfaW5wdXQiXT1bIkFub3RoZXIgc3ltYm9sIl0sZS5leHBvcnRzWyJBcm9vbiBEb3duX2lucHV0Il09WyJBcm9vbiBEb3duIl0sZS5leHBvcnRzWyJBcm9vbiBVcF9pbnB1dCJdPVsiQXJvb24gVXAiXSxlLmV4cG9ydHNbIkFycm93IChib3RoKV9pbnB1dCJdPVsiQXJyb3cgKGJvdGgpIl0sZS5leHBvcnRzWyJBcnJvdyAobGVmdClfaW5wdXQiXT1bIkFycm93IChsZWZ0KSJdLGUuZXhwb3J0c1siQXJyb3cgKHJpZ2h0KV9pbnB1dCJdPVsiQXJyb3cgKHJpZ2h0KSJdLGUuZXhwb3J0cy5BdXRvVGltZWZyYW1lX2lucHV0PVsiQXV0b1RpbWVmcmFtZSJdLGUuZXhwb3J0cy5BdXRvX2lucHV0PVsiQXV0byJdLGUuZXhwb3J0c1siQXZlcmFnZSBUcnVlIFJhbmdlX2lucHV0Il09WyJBdmVyYWdlIFRydWUgUmFuZ2UiXSxlLmV4cG9ydHMuQXZlcmFnZV9pbnB1dD1bIkF2ZXJhZ2UiXSxlLmV4cG9ydHNbIkF2ZXJhZ2luZyBQZXJpb2RzX2lucHV0Il09WyJBdmVyYWdpbmcgUGVyaW9kcyJdLGUuZXhwb3J0c1siQXdhaXRpbmcgYW5kIFJlYWNoZWRfaW5wdXQiXT1bIkF3YWl0aW5nIGFuZCBSZWFjaGVkIl0sZS5leHBvcnRzWyJCQiBTdGREZXZfaW5wdXQiXT1bIkJCIFN0ZERldiJdLGUuZXhwb3J0cy5CYWNrX2lucHV0PVsiQmFjayJdLGUuZXhwb3J0c1siQmFja2dyb3VuZCBUcmFuc3BhcmVuY3lfaW5wdXQiXT1bIkJhY2tncm91bmQgVHJhbnNwYXJlbmN5Il0sZS5leHBvcnRzLkJhY2tncm91bmRfaW5wdXQ9WyJCYWNrZ3JvdW5kIl0sZS5leHBvcnRzWyJCYW5kcyBDYWxjdWxhdGlvbiBNb2RlX2lucHV0Il09WyJCYW5kcyBDYWxjdWxhdGlvbiBNb2RlIl0sZS5leHBvcnRzWyJCYW5kcyBNdWx0aXBsaWVyICMxX2lucHV0Il09WyJCYW5kcyBNdWx0aXBsaWVyICMxIl0sZS5leHBvcnRzWyJCYW5kcyBNdWx0aXBsaWVyICMyX2lucHV0Il09WyJCYW5kcyBNdWx0aXBsaWVyICMyIl0sZS5leHBvcnRzWyJCYW5kcyBNdWx0aXBsaWVyICMzX2lucHV0Il09WyJCYW5kcyBNdWx0aXBsaWVyICMzIl0sZS5leHBvcnRzWyJCYW5kcyBTZXR0aW5nc19pbnB1dCJdPVsiQmFuZHMgU2V0dGluZ3MiXSxlLmV4cG9ydHNbIkJhbmRzIFN0eWxlX2lucHV0Il09WyJCYW5kcyBTdHlsZSJdLGUuZXhwb3J0c1siQmFuZHMgc3R5bGVfaW5wdXQiXT1bIkJhbmRzIHN0eWxlIl0sZS5leHBvcnRzLkJhcl9pbnB1dD1bIkJhciJdLGUuZXhwb3J0c1siQmFycyBCYWNrX2lucHV0Il09WyJCYXJzIEJhY2siXSxlLmV4cG9ydHNbIkJhcnMgdG8gQnJlYWtvdXRfaW5wdXQiXT1bIkJhcnMgdG8gQnJlYWtvdXQiXSxlLmV4cG9ydHNbIkJhc2UgTGluZSBMZW5ndGhfaW5wdXQiXT1bIkJhc2UgTGluZSBMZW5ndGgiXSxlLmV4cG9ydHNbIkJhc2UgTGluZSBQZXJpb2RzX2lucHV0Il09WyJCYXNlIExpbmUgUGVyaW9kcyJdLGUuZXhwb3J0c1siQmFzZSBMaW5lX2lucHV0Il09WyJCYXNlIExpbmUiXSxlLmV4cG9ydHNbIkJhc2lzIE1BIFR5cGVfaW5wdXQiXT1bIkJhc2lzIE1BIFR5cGUiXSxlLmV4cG9ydHMuQmFzaXNfaW5wdXQ9WyJCYXNpcyJdLGUuZXhwb3J0c1siQmVhcmlzaCBDb2xvcl9pbnB1dCJdPVsiQmVhcmlzaCBDb2xvciJdLGUuZXhwb3J0c1siQmVhcmlzaCBGbGFnX2lucHV0Il09WyJCZWFyaXNoIEZsYWciXSxlLmV4cG9ydHNbIkJlYXJpc2ggUGVubmFudF9pbnB1dCJdPVsiQmVhcmlzaCBQZW5uYW50Il0sZS5leHBvcnRzLkJpeWVhcmx5X2lucHV0PVsiQml5ZWFybHkiXSxlLmV4cG9ydHNbIkJsb2NrIFNpemVfaW5wdXQiXT1bIkJsb2NrIFNpemUiXSxlLmV4cG9ydHNbIkJvbGxpbmdlciBCYW5kcyAlQl9pbnB1dCJdPVsiQm9sbGluZ2VyIEJhbmRzICVCIl0sZS5leHBvcnRzWyJCb2xsaW5nZXIgQmFuZHMgV2lkdGhfaW5wdXQiXT1bIkJvbGxpbmdlciBCYW5kcyBXaWR0aCJdLGUuZXhwb3J0c1siQm9yZGVyIGFuZCBmaWxsIGNvbG9yc19pbnB1dCJdPVsiQm9yZGVyIGFuZCBmaWxsIGNvbG9ycyJdLGUuZXhwb3J0cy5Cb3JkZXJzX2lucHV0PVsiQm9yZGVycyJdLGUuZXhwb3J0cy5Cb3RoX2lucHV0PVsiQm90aCJdLGUuZXhwb3J0cy5Cb3R0b21zX2lucHV0PVsiQm90dG9tcyJdLGUuZXhwb3J0c1siQm94IHNpemUgYXNzaWdubWVudCBtZXRob2RfaW5wdXQiXT1bIkJveCBzaXplIGFzc2lnbm1lbnQgbWV0aG9kIl0sZS5leHBvcnRzWyJCb3ggc2l6ZV9pbnB1dCJdPVsiQm94IHNpemUiXSxlLmV4cG9ydHMuQm94ZXNfaW5wdXQ9WyJCb3hlcyJdLGUuZXhwb3J0c1siQnVsbGlzaCBDb2xvcl9pbnB1dCJdPVsiQnVsbGlzaCBDb2xvciJdLGUuZXhwb3J0c1siQnVsbGlzaCBGbGFnX2lucHV0Il09WyJCdWxsaXNoIEZsYWciXSxlLmV4cG9ydHNbIkJ1bGxpc2ggUGVubmFudF9pbnB1dCJdPVsiQnVsbGlzaCBQZW5uYW50Il0sZS5leHBvcnRzWyJDQ0kgMTQgTGVuZ3RoX2lucHV0Il09WyJDQ0kgMTQgTGVuZ3RoIl0sZS5leHBvcnRzWyJDQ0kgVHVyYm8gTGVuZ3RoX2lucHV0Il09WyJDQ0kgVHVyYm8gTGVuZ3RoIl0sZS5leHBvcnRzLkNDSV9pbnB1dD1bIkNDSSJdLGUuZXhwb3J0cy5DSE9QX2lucHV0PVsiQ0hPUCJdLGUuZXhwb3J0c1siQ2FsY3VsYXRlIERpdmVyZ2VuY2VfaW5wdXQiXT1bIkNhbGN1bGF0ZSBEaXZlcmdlbmNlIl0sZS5leHBvcnRzWyJDYWxjdWxhdGlvbiBNb2RlX2lucHV0Il09WyJDYWxjdWxhdGlvbiBNb2RlIl0sZS5leHBvcnRzLkNhbGN1bGF0aW9uX2lucHV0PVsiQ2FsY3VsYXRpb24iXSxlLmV4cG9ydHMuQ2FtYXJpbGxhX2lucHV0PVsiQ2FtYXJpbGxhIl0sZS5leHBvcnRzLkNhbmNlbF9pbnB1dD1bIkNhbmNlbCJdLGUuZXhwb3J0cy5DYW5kbGVzX2lucHV0PVsiQ2FuZGxlcyJdLAplLmV4cG9ydHMuQ2VudGVyX2lucHV0PVsiQ2VudGVyIl0sZS5leHBvcnRzLkNlbnRlcmVkX2lucHV0PVsiQ2VudGVyZWQiXSxlLmV4cG9ydHMuQ2VudHVyeV9pbnB1dD1bIkNlbnR1cnkiXSxlLmV4cG9ydHNbIkNoYWlraW4gT3NjaWxsYXRvcl9pbnB1dCJdPVsiQ2hhaWtpbiBPc2NpbGxhdG9yIl0sZS5leHBvcnRzWyJDaGFuZGUgTU9faW5wdXQiXT1bIkNoYW5kZSBNTyJdLGUuZXhwb3J0c1siQ2hhbm5lbCBTZXR0aW5nc19pbnB1dCJdPVsiQ2hhbm5lbCBTZXR0aW5ncyJdLGUuZXhwb3J0c1siQ2hhbm5lbCBXaWR0aCBSYXRpbyBTdGFydC9FbmRfaW5wdXQiXT1bIkNoYW5uZWwgV2lkdGggUmF0aW8gU3RhcnQvRW5kIl0sZS5leHBvcnRzLkNsYXNzaWNfaW5wdXQ9WyJDbGFzc2ljIl0sZS5leHBvcnRzWyJDbG9zZSBHYXBzIFBhcnRpYWxseV9pbnB1dCJdPVsiQ2xvc2UgR2FwcyBQYXJ0aWFsbHkiXSxlLmV4cG9ydHMuQ2xvc2VfaW5wdXQ9WyJDbG9zZSJdLGUuZXhwb3J0c1siQ29sb3IgMF9pbnB1dCJdPVsiQ29sb3IgMCJdLGUuZXhwb3J0c1siQ29sb3IgMV9pbnB1dCJdPVsiQ29sb3IgMSJdLGUuZXhwb3J0c1siQ29sb3IgMl9pbnB1dCJdPVsiQ29sb3IgMiJdLGUuZXhwb3J0c1siQ29sb3IgM19pbnB1dCJdPVsiQ29sb3IgMyJdLGUuZXhwb3J0c1siQ29sb3IgNF9pbnB1dCJdPVsiQ29sb3IgNCJdLGUuZXhwb3J0c1siQ29sb3IgNV9pbnB1dCJdPVsiQ29sb3IgNSJdLGUuZXhwb3J0c1siQ29sb3IgNl9pbnB1dCJdPVsiQ29sb3IgNiJdLGUuZXhwb3J0c1siQ29sb3IgN19pbnB1dCJdPVsiQ29sb3IgNyJdLGUuZXhwb3J0c1siQ29sb3IgOF9pbnB1dCJdPVsiQ29sb3IgOCJdLGUuZXhwb3J0c1siQ29sb3IgU2V0dGluZ3NfaW5wdXQiXT1bIkNvbG9yIFNldHRpbmdzIl0sZS5leHBvcnRzWyJDb2xvciBiYXJzIGJhc2VkIG9uIHByZXZpb3VzIGNsb3NlX2lucHV0Il09WyJDb2xvciBiYXJzIGJhc2VkIG9uIHByZXZpb3VzIGNsb3NlIl0sZS5leHBvcnRzWyJDb2xvciBiYXNlZCBvbiBwcmV2aW91cyBjbG9zZV9pbnB1dCJdPVsiQ29sb3IgYmFzZWQgb24gcHJldmlvdXMgY2xvc2UiXSxlLmV4cG9ydHNbIkNvbG9yIGludGVuc2l0eSBjdXRvZmYgKCUpX2lucHV0Il09WyJDb2xvciBpbnRlbnNpdHkgY3V0b2ZmICglKSJdLGUuZXhwb3J0c1siQ29sb3Igc2V0dGluZ3NfaW5wdXQiXT1bIkNvbG9yIHNldHRpbmdzIl0sZS5leHBvcnRzWyJDb25maXJtIGJhcnNfaW5wdXQiXT1bIkNvbmZpcm0gYmFycyJdLGUuZXhwb3J0c1siQ29uc2VjdXRpdmUgYmFycyBkb3duX2lucHV0Il09WyJDb25zZWN1dGl2ZSBiYXJzIGRvd24iXSxlLmV4cG9ydHNbIkNvbnNlY3V0aXZlIGJhcnMgdXBfaW5wdXQiXT1bIkNvbnNlY3V0aXZlIGJhcnMgdXAiXSxlLmV4cG9ydHNbIkNvbnZlcnNpb24gTGluZSBMZW5ndGhfaW5wdXQiXT1bIkNvbnZlcnNpb24gTGluZSBMZW5ndGgiXSxlLmV4cG9ydHNbIkNvbnZlcnNpb24gTGluZSBQZXJpb2RzX2lucHV0Il09WyJDb252ZXJzaW9uIExpbmUgUGVyaW9kcyJdLGUuZXhwb3J0c1siQ29udmVyc2lvbiBMaW5lX2lucHV0Il09WyJDb252ZXJzaW9uIExpbmUiXSxlLmV4cG9ydHMuQ29ycmVjdGl2ZV9pbnB1dD1bIkNvcnJlY3RpdmUiXSxlLmV4cG9ydHMuQ29ycmVsYXRpb25faW5wdXQ9WyJDb3JyZWxhdGlvbiJdLGUuZXhwb3J0cy5Db3VudF9pbnB1dD1bIkNvdW50Il0sZS5leHBvcnRzLkNyb3NzZXNfaW5wdXQ9WyJDcm9zc2VzIl0sZS5leHBvcnRzLkN1bXVsYXRpdmVfaW5wdXQ9WyJDdW11bGF0aXZlIl0sZS5leHBvcnRzWyJDdXAgTWF4IFJvbGxiYWNrX2lucHV0Il09WyJDdXAgTWF4IFJvbGxiYWNrIl0sZS5leHBvcnRzWyJDdXAgYW5kIEhhbmRsZV9pbnB1dCJdPVsiQ3VwIGFuZCBIYW5kbGUiXSxlLmV4cG9ydHNbIkN1c3RvbSBzZXNzaW9uX2lucHV0Il09WyJDdXN0b20gc2Vzc2lvbiJdLGUuZXhwb3J0cy5DdXN0b21faW5wdXQ9WyJDdXN0b20iXSxlLmV4cG9ydHMuREVNQV9pbnB1dD1bIkRFTUEiXSxlLmV4cG9ydHNbIkRJIExlbmd0aF9pbnB1dCJdPVsiREkgTGVuZ3RoIl0sZS5leHBvcnRzLkRNX2lucHV0PVsiRE0iXSxlLmV4cG9ydHMuRFBPX2lucHV0PVsiRFBPIl0sZS5leHBvcnRzLkRfaW5wdXQ9WyJEIl0sZS5leHBvcnRzLkRhaWx5X2lucHV0PVsiRGFpbHkiXSxlLmV4cG9ydHMuRGFzaGVkX2lucHV0PVsiRGFzaGVkIl0sZS5leHBvcnRzLkRheV9pbnB1dD1bIkRheSJdLGUuZXhwb3J0c1siRGF5cyBCYWNrX2lucHV0Il09WyJEYXlzIEJhY2siXSxlLmV4cG9ydHNbIkRheXMgUGVyIFllYXJfaW5wdXQiXT1bIkRheXMgUGVyIFllYXIiXSxlLmV4cG9ydHMuRGVjYWRlX2lucHV0PVsiRGVjYWRlIl0sZS5leHBvcnRzLkRlY2VubmlhbGx5X2lucHV0PVsiRGVjZW5uaWFsbHkiXSxlLmV4cG9ydHMuRGVmYXVsdF9pbnB1dD1bIkRlZmF1bHQiXSxlLmV4cG9ydHMuRGVsdGFfaW5wdXQ9WyJEZWx0YSJdLGUuZXhwb3J0cy5EZXB0aF9pbnB1dD1bIkRlcHRoIl0sZS5leHBvcnRzWyJEZXRyZW5kZWQgUHJpY2UgT3NjaWxsYXRvcl9pbnB1dCJdPVsiRGV0cmVuZGVkIFByaWNlIE9zY2lsbGF0b3IiXSxlLmV4cG9ydHNbIkRldmVsb3BpbmcgUG9jX2lucHV0Il09WyJEZXZlbG9waW5nIFBvYyJdLGUuZXhwb3J0c1siRGV2aWF0aW9uICglKV9pbnB1dCJdPVsiRGV2aWF0aW9uICglKSJdLGUuZXhwb3J0cy5EZXZpYXRpb25faW5wdXQ9WyJEZXZpYXRpb24iXSxlLmV4cG9ydHNbIkRpc3BsYXkgU2V0dGluZ3NfaW5wdXQiXT1bIkRpc3BsYXkgU2V0dGluZ3MiXSxlLmV4cG9ydHNbIkRpc3BsYXkgY3VtdWxhdGl2ZSB2b2x1bWVfaW5wdXQiXT1bIkRpc3BsYXkgY3VtdWxhdGl2ZSB2b2x1bWUiXSxlLmV4cG9ydHNbIkRpc3BsYXkgcmV2ZXJzYWwgcHJpY2UgY2hhbmdlX2lucHV0Il09WyJEaXNwbGF5IHJldmVyc2FsIHByaWNlIGNoYW5nZSJdLGUuZXhwb3J0c1siRGlzcGxheSByZXZlcnNhbCBwcmljZV9pbnB1dCJdPVsiRGlzcGxheSByZXZlcnNhbCBwcmljZSJdLGUuZXhwb3J0c1siRGlzcGxheWVkIG5hbWVfaW5wdXQiXT1bIkRpc3BsYXllZCBuYW1lIl0sCmUuZXhwb3J0cy5EaXZpZGVuZHNfaW5wdXQ9WyJEaXZpZGVuZHMiXSxlLmV4cG9ydHMuRGl2aXNvcl9pbnB1dD1bIkRpdmlzb3IiXSxlLmV4cG9ydHMuRG90dGVkX2lucHV0PVsiRG90dGVkIl0sZS5leHBvcnRzWyJEb3VibGUgQm90dG9tX2lucHV0Il09WyJEb3VibGUgQm90dG9tIl0sZS5leHBvcnRzWyJEb3VibGUgVG9wX2lucHV0Il09WyJEb3VibGUgVG9wIl0sZS5leHBvcnRzWyJEb3duIEdhcHNfaW5wdXQiXT1bIkRvd24gR2FwcyJdLGUuZXhwb3J0c1siRG93biBWb2x1bWVfaW5wdXQiXT1bIkRvd24gVm9sdW1lIl0sZS5leHBvcnRzWyJEb3duIGJhcnNfaW5wdXQiXT1bIkRvd24gYmFycyJdLGUuZXhwb3J0c1siRG93biBjb2xvcl9pbnB1dCJdPVsiRG93biBjb2xvciJdLGUuZXhwb3J0c1siRG93biBmcmFjdGFsc19pbnB1dCJdPVsiRG93biBmcmFjdGFscyJdLGUuZXhwb3J0c1siRHJhdyBzZXNzaW9uIG9wZW4gYW5kIGNsb3NlIGxpbmVzX2lucHV0Il09WyJEcmF3IHNlc3Npb24gb3BlbiBhbmQgY2xvc2UgbGluZXMiXSxlLmV4cG9ydHNbIkVNQSBMZW5ndGhfaW5wdXQiXT1bIkVNQSBMZW5ndGgiXSxlLmV4cG9ydHMuRU1BX2lucHV0PVsiRU1BIl0sZS5leHBvcnRzLkVPTV9pbnB1dD1bIkVPTSJdLGUuZXhwb3J0c1siRWFjaCAocHJlLW1hcmtldCwgbWFya2V0LCBwb3N0LW1hcmtldClfaW5wdXQiXT1bIkVhY2ggKHByZS1tYXJrZXQsIG1hcmtldCwgcG9zdC1tYXJrZXQpIl0sZS5leHBvcnRzLkVhcm5pbmdzX2lucHV0PVsiRWFybmluZ3MiXSxlLmV4cG9ydHNbIkVsZGVyJ3MgRm9yY2UgSW5kZXhfaW5wdXQiXT1bIkVsZGVyJ3MgRm9yY2UgSW5kZXgiXSxlLmV4cG9ydHNbIkVxdWFsaXR5IExpbmVfaW5wdXQiXT1bIkVxdWFsaXR5IExpbmUiXSxlLmV4cG9ydHMuRXhjaGFuZ2VfaW5wdXQ9WyJFeGNoYW5nZSJdLGUuZXhwb3J0cy5FeHBvbmVudGlhbF9pbnB1dD1bIkV4cG9uZW50aWFsIl0sZS5leHBvcnRzWyJFeHRlbmQgTGluZXMgTGVmdF9pbnB1dCJdPVsiRXh0ZW5kIExpbmVzIExlZnQiXSxlLmV4cG9ydHNbIkV4dGVuZCBMaW5lcyBSaWdodF9pbnB1dCJdPVsiRXh0ZW5kIExpbmVzIFJpZ2h0Il0sZS5leHBvcnRzWyJFeHRlbmQgUE9DIFJpZ2h0X2lucHV0Il09WyJFeHRlbmQgUE9DIFJpZ2h0Il0sZS5leHBvcnRzWyJFeHRlbmQgUmlnaHRfaW5wdXQiXT1bIkV4dGVuZCBSaWdodCJdLGUuZXhwb3J0c1siRXh0ZW5kIFZBSCBSaWdodF9pbnB1dCJdPVsiRXh0ZW5kIFZBSCBSaWdodCJdLGUuZXhwb3J0c1siRXh0ZW5kIFZBTCBSaWdodF9pbnB1dCJdPVsiRXh0ZW5kIFZBTCBSaWdodCJdLGUuZXhwb3J0c1siRXh0ZW5kIGxlZnRfaW5wdXQiXT1bIkV4dGVuZCBsZWZ0Il0sZS5leHBvcnRzWyJFeHRlbmQgdG8gbGFzdCBiYXJfaW5wdXQiXT1bIkV4dGVuZCB0byBsYXN0IGJhciJdLGUuZXhwb3J0cy5GYWN0b3JfaW5wdXQ9WyJGYWN0b3IiXSxlLmV4cG9ydHNbIkZhbGwgQm9keV9pbnB1dCJdPVsiRmFsbCBCb2R5Il0sZS5leHBvcnRzWyJGYWxsaW5nIFdlZGdlX2lucHV0Il09WyJGYWxsaW5nIFdlZGdlIl0sZS5leHBvcnRzLkZhbGxpbmdfaW5wdXQ9WyJGYWxsaW5nIl0sZS5leHBvcnRzWyJGYXN0IExlbmd0aF9pbnB1dCJdPVsiRmFzdCBMZW5ndGgiXSxlLmV4cG9ydHNbIkZhc3QgTUEgUGVyaW9kX2lucHV0Il09WyJGYXN0IE1BIFBlcmlvZCJdLGUuZXhwb3J0c1siRmFzdCBsZW5ndGhfaW5wdXQiXT1bIkZhc3QgbGVuZ3RoIl0sZS5leHBvcnRzLkZpYm9uYWNjaV9pbnB1dD1bIkZpYm9uYWNjaSJdLGUuZXhwb3J0cy5GaWxsX2lucHV0PVsiRmlsbCJdLGUuZXhwb3J0c1siRmlyc3QgU2Vzc2lvbl9pbnB1dCJdPVsiRmlyc3QgU2Vzc2lvbiJdLGUuZXhwb3J0cy5GaXNoZXJfaW5wdXQ9WyJGaXNoZXIiXSxlLmV4cG9ydHMuRmxhZ19pbnB1dD1bIkZsYWciXSxlLmV4cG9ydHMuRnJvbV9pbnB1dD1bIkZyb20iXSxlLmV4cG9ydHNbIkdyYXBoaWMgb2JqZWN0c19pbnB1dCJdPVsiR3JhcGhpYyBvYmplY3RzIl0sZS5leHBvcnRzLkdyb3dpbmdfaW5wdXQ9WyJHcm93aW5nIl0sZS5leHBvcnRzWyJHcm93dGggQm9keV9pbnB1dCJdPVsiR3Jvd3RoIEJvZHkiXSxlLmV4cG9ydHNbIkhMQyBiYXJzX2lucHV0Il09WyJITEMgYmFycyJdLGUuZXhwb3J0cy5IVl9pbnB1dD1bIkhWIl0sZS5leHBvcnRzWyJIYW5kbGUgTWF4IFJvbGxiYWNrX2lucHV0Il09WyJIYW5kbGUgTWF4IFJvbGxiYWNrIl0sZS5leHBvcnRzWyJIZWFkIGFuZCBTaG91bGRlcnNfaW5wdXQiXT1bIkhlYWQgYW5kIFNob3VsZGVycyJdLGUuZXhwb3J0cy5IZWFkZXJzX2lucHV0PVsiSGVhZGVycyJdLGUuZXhwb3J0c1siSGVhdG1hcCBzZXR0aW5nc19pbnB1dCJdPVsiSGVhdG1hcCBzZXR0aW5ncyJdLGUuZXhwb3J0c1siSGVpa2luIEFzaGkgUmFuZ2VfaW5wdXQiXT1bIkhlaWtpbiBBc2hpIFJhbmdlIl0sZS5leHBvcnRzWyJIaWRlIFZXQVAgb24gMUQgb3IgQWJvdmVfaW5wdXQiXT1bIkhpZGUgVldBUCBvbiAxRCBvciBBYm92ZSJdLGUuZXhwb3J0c1siSGlnaC9Mb3cgUmFuZ2VfaW5wdXQiXT1bIkhpZ2gvTG93IFJhbmdlIl0sZS5leHBvcnRzLkhpZ2hlcl9pbnB1dD1bIkhpZ2hlciJdLGUuZXhwb3J0c1siSGlnaGVzdCBFeHBhbnNpb24gTGVuZ3RoX2lucHV0Il09WyJIaWdoZXN0IEV4cGFuc2lvbiBMZW5ndGgiXSxlLmV4cG9ydHNbIkhpZ2hlc3QgSGlnaF9pbnB1dCJdPVsiSGlnaGVzdCBIaWdoIl0sZS5leHBvcnRzWyJIaWdoZXN0IFZvbHVtZV9pbnB1dCJdPVsiSGlnaGVzdCBWb2x1bWUiXSxlLmV4cG9ydHNbIkhpc3RvZ3JhbSBCb3hfaW5wdXQiXT1bIkhpc3RvZ3JhbSBCb3giXSxlLmV4cG9ydHMuSGlzdG9ncmFtX2lucHV0PVsiSGlzdG9ncmFtIl0sZS5leHBvcnRzLkhvdXJfaW5wdXQ9WyJIb3VyIl0sZS5leHBvcnRzWyJIdWxsIE1BX2lucHV0Il09WyJIdWxsIE1BIl0sZS5leHBvcnRzWyJJZ25vcmVkIG1vbnRoc19pbnB1dCJdPVsiSWdub3JlZCBtb250aHMiXSxlLmV4cG9ydHNbIkluIFByb2dyZXNzX2lucHV0Il09WyJJbiBQcm9ncmVzcyJdLAplLmV4cG9ydHNbIkluY2x1ZGUgQ2hhcnQgU3ltYm9sX2lucHV0Il09WyJJbmNsdWRlIENoYXJ0IFN5bWJvbCJdLGUuZXhwb3J0cy5JbmNyZW1lbnRfaW5wdXQ9WyJJbmNyZW1lbnQiXSxlLmV4cG9ydHNbIkluZGljYXRvciBUaW1lZnJhbWVfaW5wdXQiXT1bIkluZGljYXRvciBUaW1lZnJhbWUiXSxlLmV4cG9ydHMuSW5kaWNhdG9yX2lucHV0PVsiSW5kaWNhdG9yIl0sZS5leHBvcnRzWyJJbnB1dCB2YWx1ZXNfaW5wdXQiXT1bIklucHV0IHZhbHVlcyJdLGUuZXhwb3J0cy5JbnNpZGVfaW5wdXQ9WyJJbnNpZGUiXSxlLmV4cG9ydHNbIkluc3RydW1lbnQgMV9pbnB1dCJdPVsiSW5zdHJ1bWVudCAxIl0sZS5leHBvcnRzWyJJbnN0cnVtZW50IDJfaW5wdXQiXT1bIkluc3RydW1lbnQgMiJdLGUuZXhwb3J0c1siSW50ZXJtZWRpYXRlIE1heGltYV9pbnB1dCJdPVsiSW50ZXJtZWRpYXRlIE1heGltYSJdLGUuZXhwb3J0c1siSW50ZXJtZWRpYXRlIE1pbmltYV9pbnB1dCJdPVsiSW50ZXJtZWRpYXRlIE1pbmltYSJdLGUuZXhwb3J0c1siSW52ZXJ0IFBhdHRlcm5faW5wdXQiXT1bIkludmVydCBQYXR0ZXJuIl0sZS5leHBvcnRzWyJJbnZlcnRlZCBDdXAgYW5kIEhhbmRsZV9pbnB1dCJdPVsiSW52ZXJ0ZWQgQ3VwIGFuZCBIYW5kbGUiXSxlLmV4cG9ydHNbIkludmVydGVkIEhlYWQgYW5kIFNob3VsZGVyc19pbnB1dCJdPVsiSW52ZXJ0ZWQgSGVhZCBhbmQgU2hvdWxkZXJzIl0sZS5leHBvcnRzWyJJbnZlc3RvciBFTUEgMSBsZW5ndGhfaW5wdXQiXT1bIkludmVzdG9yIEVNQSAxIGxlbmd0aCJdLGUuZXhwb3J0c1siSW52ZXN0b3IgRU1BIDIgbGVuZ3RoX2lucHV0Il09WyJJbnZlc3RvciBFTUEgMiBsZW5ndGgiXSxlLmV4cG9ydHNbIkludmVzdG9yIEVNQSAzIGxlbmd0aF9pbnB1dCJdPVsiSW52ZXN0b3IgRU1BIDMgbGVuZ3RoIl0sZS5leHBvcnRzWyJJbnZlc3RvciBFTUEgNCBsZW5ndGhfaW5wdXQiXT1bIkludmVzdG9yIEVNQSA0IGxlbmd0aCJdLGUuZXhwb3J0c1siSW52ZXN0b3IgRU1BIDUgbGVuZ3RoX2lucHV0Il09WyJJbnZlc3RvciBFTUEgNSBsZW5ndGgiXSxlLmV4cG9ydHNbIkludmVzdG9yIEVNQSA2IGxlbmd0aF9pbnB1dCJdPVsiSW52ZXN0b3IgRU1BIDYgbGVuZ3RoIl0sZS5leHBvcnRzWyJKYXcgTGVuZ3RoX2lucHV0Il09WyJKYXcgTGVuZ3RoIl0sZS5leHBvcnRzWyJKYXcgT2Zmc2V0X2lucHV0Il09WyJKYXcgT2Zmc2V0Il0sZS5leHBvcnRzLkphd19pbnB1dD1bIkphdyJdLGUuZXhwb3J0cy5LUGVyaW9kX2lucHV0PVsiS1BlcmlvZCJdLGUuZXhwb3J0cy5LU1RfaW5wdXQ9WyJLU1QiXSxlLmV4cG9ydHMuS19pbnB1dD1bIksiXSxlLmV4cG9ydHNbIkxFTkdUSCBMRUZUIC8gUklHSFRfaW5wdXQiXT1bIkxFTkdUSCBMRUZUIC8gUklHSFQiXSxlLmV4cG9ydHNbIkxhYmVscyBQb3NpdGlvbl9pbnB1dCJdPVsiTGFiZWxzIFBvc2l0aW9uIl0sZS5leHBvcnRzWyJMYWJlbHMgb24gcHJpY2Ugc2NhbGVfaW5wdXQiXT1bIkxhYmVscyBvbiBwcmljZSBzY2FsZSJdLGUuZXhwb3J0cy5MYWJlbHNfaW5wdXQ9WyJMYWJlbHMiXSxlLmV4cG9ydHNbIkxhZ2dpbmcgU3BhbiBQZXJpb2RzX2lucHV0Il09WyJMYWdnaW5nIFNwYW4gUGVyaW9kcyJdLGUuZXhwb3J0c1siTGFnZ2luZyBTcGFuX2lucHV0Il09WyJMYWdnaW5nIFNwYW4iXSxlLmV4cG9ydHMuTGFyZ2VfaW5wdXQ9WyJMYXJnZSJdLGUuZXhwb3J0c1siTGFzdCBBd2FpdGluZ19pbnB1dCJdPVsiTGFzdCBBd2FpdGluZyJdLGUuZXhwb3J0c1siTGVhZGluZyBTaGlmdCBQZXJpb2RzX2lucHV0Il09WyJMZWFkaW5nIFNoaWZ0IFBlcmlvZHMiXSxlLmV4cG9ydHNbIkxlYWRpbmcgU3BhbiBBX2lucHV0Il09WyJMZWFkaW5nIFNwYW4gQSJdLGUuZXhwb3J0c1siTGVhZGluZyBTcGFuIEIgTGVuZ3RoX2lucHV0Il09WyJMZWFkaW5nIFNwYW4gQiBMZW5ndGgiXSxlLmV4cG9ydHNbIkxlYWRpbmcgU3BhbiBCX2lucHV0Il09WyJMZWFkaW5nIFNwYW4gQiJdLGUuZXhwb3J0c1siTGVhZGluZyBTcGFuIFBlcmlvZHNfaW5wdXQiXT1bIkxlYWRpbmcgU3BhbiBQZXJpb2RzIl0sZS5leHBvcnRzLkxlZnRfaW5wdXQ9WyJMZWZ0Il0sZS5leHBvcnRzWyJMZW5ndGggRU1BX2lucHV0Il09WyJMZW5ndGggRU1BIl0sZS5leHBvcnRzWyJMZW5ndGggTUFfaW5wdXQiXT1bIkxlbmd0aCBNQSJdLGUuZXhwb3J0c1siTGVuZ3RoIHR5cGVfaW5wdXQiXT1bIkxlbmd0aCB0eXBlIl0sZS5leHBvcnRzLkxlbmd0aDFfaW5wdXQ9WyJMZW5ndGgxIl0sZS5leHBvcnRzLkxlbmd0aDJfaW5wdXQ9WyJMZW5ndGgyIl0sZS5leHBvcnRzLkxlbmd0aDNfaW5wdXQ9WyJMZW5ndGgzIl0sZS5leHBvcnRzLkxlbmd0aF9pbnB1dD1bIkxlbmd0aCJdLGUuZXhwb3J0cy5MZXZlbF9pbnB1dD1bIkxldmVsIl0sZS5leHBvcnRzWyJMZXZlbHMgRm9ybWF0X2lucHV0Il09WyJMZXZlbHMgRm9ybWF0Il0sZS5leHBvcnRzWyJMaW1pdCBNYXggR2FwIFRyYWlsIExlbmd0aCAoYmFycylfaW5wdXQiXT1bIkxpbWl0IE1heCBHYXAgVHJhaWwgTGVuZ3RoIChiYXJzKSJdLGUuZXhwb3J0cy5MaW1pdF9pbnB1dD1bIkxpbWl0Il0sZS5leHBvcnRzWyJMaW5lIFNpemVfaW5wdXQiXT1bIkxpbmUgU2l6ZSJdLGUuZXhwb3J0c1siTGluZSBXaWR0aF9pbnB1dCJdPVsiTGluZSBXaWR0aCJdLGUuZXhwb3J0c1siTGluZSBjb2xvcl9pbnB1dCJdPVsiTGluZSBjb2xvciJdLGUuZXhwb3J0c1siTGluZSBmaWxsc19pbnB1dCJdPVsiTGluZSBmaWxscyJdLGUuZXhwb3J0cy5MaW5lX2lucHV0PVsiTGluZSJdLGUuZXhwb3J0cy5MaW5lc19pbnB1dD1bIkxpbmVzIl0sZS5leHBvcnRzWyJMaXBzIExlbmd0aF9pbnB1dCJdPVsiTGlwcyBMZW5ndGgiXSxlLmV4cG9ydHNbIkxpcHMgT2Zmc2V0X2lucHV0Il09WyJMaXBzIE9mZnNldCJdLGUuZXhwb3J0cy5MaXBzX2lucHV0PVsiTGlwcyJdLGUuZXhwb3J0c1siTG9uZyBCQiBMZW5ndGhfaW5wdXQiXT1bIkxvbmcgQkIgTGVuZ3RoIl0sZS5leHBvcnRzWyJMb25nIExlbmd0aF9pbnB1dCJdPVsiTG9uZyBMZW5ndGgiXSwKZS5leHBvcnRzWyJMb25nIE1BIExlbmd0aF9pbnB1dCJdPVsiTG9uZyBNQSBMZW5ndGgiXSxlLmV4cG9ydHNbIkxvbmcgUkNJIExlbmd0aF9pbnB1dCJdPVsiTG9uZyBSQ0kgTGVuZ3RoIl0sZS5leHBvcnRzWyJMb25nIFJvQyBMZW5ndGhfaW5wdXQiXT1bIkxvbmcgUm9DIExlbmd0aCJdLGUuZXhwb3J0c1siTG9uZyBsZW5ndGhfaW5wdXQiXT1bIkxvbmcgbGVuZ3RoIl0sZS5leHBvcnRzWyJMb25nIHBlcmlvZF9pbnB1dCJdPVsiTG9uZyBwZXJpb2QiXSxlLmV4cG9ydHMuTG9uZ19pbnB1dD1bIkxvbmciXSxlLmV4cG9ydHNbIkxvd2VyIEJhbmRfaW5wdXQiXT1bIkxvd2VyIEJhbmQiXSxlLmV4cG9ydHNbIkxvd2VyIERldmlhdGlvbl9pbnB1dCJdPVsiTG93ZXIgRGV2aWF0aW9uIl0sZS5leHBvcnRzWyJMb3dlciBQZXJjZW50YWdlX2lucHV0Il09WyJMb3dlciBQZXJjZW50YWdlIl0sZS5leHBvcnRzLkxvd2VyTGltaXRfaW5wdXQ9WyJMb3dlckxpbWl0Il0sZS5leHBvcnRzLkxvd2VyX2lucHV0PVsiTG93ZXIiXSxlLmV4cG9ydHNbIkxvd2VzdCBDb250cmFjdGlvbiBMZW5ndGhfaW5wdXQiXT1bIkxvd2VzdCBDb250cmFjdGlvbiBMZW5ndGgiXSxlLmV4cG9ydHNbIkxvd2VzdCBMb3dfaW5wdXQiXT1bIkxvd2VzdCBMb3ciXSxlLmV4cG9ydHNbIk1BICMxX2lucHV0Il09WyJNQSAjMSJdLGUuZXhwb3J0c1siTUEgIzJfaW5wdXQiXT1bIk1BICMyIl0sZS5leHBvcnRzWyJNQSAjM19pbnB1dCJdPVsiTUEgIzMiXSxlLmV4cG9ydHNbIk1BICM0X2lucHV0Il09WyJNQSAjNCJdLGUuZXhwb3J0c1siTUEgTGVuZ3RoX2lucHV0Il09WyJNQSBMZW5ndGgiXSxlLmV4cG9ydHMuTUFDRF9pbnB1dD1bIk1BQ0QiXSxlLmV4cG9ydHMuTUFfaW5wdXQ9WyJNQSJdLGUuZXhwb3J0cy5NQXNfaW5wdXQ9WyJNQXMiXSxlLmV4cG9ydHMuTUZfaW5wdXQ9WyJNRiJdLGUuZXhwb3J0cy5NTV9tb250aF9pbnB1dD1bIk1NIl0sZS5leHBvcnRzLk1PTV9pbnB1dD1bIk1PTSJdLGUuZXhwb3J0c1siTWFpbiBXYXZlc19pbnB1dCJdPVsiTWFpbiBXYXZlcyJdLGUuZXhwb3J0c1siTWFpbiBjaGFydCBzeW1ib2xfaW5wdXQiXT1bIk1haW4gY2hhcnQgc3ltYm9sIl0sZS5leHBvcnRzLk1hbnVhbF9pbnB1dD1bIk1hbnVhbCJdLGUuZXhwb3J0c1siTWFya2V0IENsb3NlZCBQZXJjZW50YWdlX2lucHV0Il09WyJNYXJrZXQgQ2xvc2VkIFBlcmNlbnRhZ2UiXSxlLmV4cG9ydHNbIk1hcmtldCBvbmx5X2lucHV0Il09WyJNYXJrZXQgb25seSJdLGUuZXhwb3J0c1siTWF4IE51bWJlciBvZiBHYXBzX2lucHV0Il09WyJNYXggTnVtYmVyIG9mIEdhcHMiXSxlLmV4cG9ydHNbIk1heCBSb2xsYmFja19pbnB1dCJdPVsiTWF4IFJvbGxiYWNrIl0sZS5leHBvcnRzWyJNYXggaW50cmFkYXkgZmlsbGVkIG9yZGVyc19pbnB1dCJdPVsiTWF4IGludHJhZGF5IGZpbGxlZCBvcmRlcnMiXSxlLmV4cG9ydHNbIk1heCBpbnRyYWRheSBsb3NzICglKV9pbnB1dCJdPVsiTWF4IGludHJhZGF5IGxvc3MgKCUpIl0sZS5leHBvcnRzWyJNYXggb2YgTG9va2JhY2sgUmFuZ2VfaW5wdXQiXT1bIk1heCBvZiBMb29rYmFjayBSYW5nZSJdLGUuZXhwb3J0c1siTWF4IHZhbHVlX2lucHV0Il09WyJNYXggdmFsdWUiXSxlLmV4cG9ydHNbIk1lZGlhbiBMZW5ndGhfaW5wdXQiXT1bIk1lZGlhbiBMZW5ndGgiXSxlLmV4cG9ydHNbIk1lZGlhbiBTb3VyY2VfaW5wdXQiXT1bIk1lZGlhbiBTb3VyY2UiXSxlLmV4cG9ydHMuTWVkaWFuX2lucHV0PVsiTWVkaWFuIl0sZS5leHBvcnRzLk1ldGhvZF9pbnB1dD1bIk1ldGhvZCJdLGUuZXhwb3J0c1siTWlkZGxlIExlbmd0aF9pbnB1dCJdPVsiTWlkZGxlIExlbmd0aCJdLGUuZXhwb3J0c1siTWlkZGxlIFJDSSBMZW5ndGhfaW5wdXQiXT1bIk1pZGRsZSBSQ0kgTGVuZ3RoIl0sZS5leHBvcnRzLk1pZGRsZV9pbnB1dD1bIk1pZGRsZSJdLGUuZXhwb3J0c1siTWluIG9mIExvb2tiYWNrIFJhbmdlX2lucHV0Il09WyJNaW4gb2YgTG9va2JhY2sgUmFuZ2UiXSxlLmV4cG9ydHNbIk1pbmltYWwgRGV2aWF0aW9uICglKV9pbnB1dCJdPVsiTWluaW1hbCBEZXZpYXRpb24gKCUpIl0sZS5leHBvcnRzLk1pbmltaXplX2lucHV0PVsiTWluaW1pemUiXSxlLmV4cG9ydHMuTWludXRlX2lucHV0PVsiTWludXRlIl0sZS5leHBvcnRzWyJNb2RpZmllZCBTY2hpZmZfaW5wdXQiXT1bIk1vZGlmaWVkIFNjaGlmZiJdLGUuZXhwb3J0c1siTW9tZW50dW0gUGVyaW9kX2lucHV0Il09WyJNb21lbnR1bSBQZXJpb2QiXSxlLmV4cG9ydHMuTW9udGhfaW5wdXQ9WyJNb250aCJdLGUuZXhwb3J0cy5Nb250aGx5X2lucHV0PVsiTW9udGhseSJdLGUuZXhwb3J0cy5Nb3RpdmVfaW5wdXQ9WyJNb3RpdmUiXSxlLmV4cG9ydHMuTW92ZV9pbnB1dD1bIk1vdmUiXSxlLmV4cG9ydHNbIk11bHRpIHRpbWVmcmFtZV9pbnB1dCJdPVsiTXVsdGkgdGltZWZyYW1lIl0sZS5leHBvcnRzLk11bHRpcGxpZXJfaW5wdXQ9WyJNdWx0aXBsaWVyIl0sZS5leHBvcnRzLk5WX2lucHV0PVsiTlYiXSxlLmV4cG9ydHNbIk5lY2sgbGluZV9pbnB1dCJdPVsiTmVjayBsaW5lIl0sZS5leHBvcnRzWyJOZWdhdGl2ZSBDb2xvcl9pbnB1dCJdPVsiTmVnYXRpdmUgQ29sb3IiXSxlLmV4cG9ydHMuTm9uZV9pbnB1dD1bIk5vbmUiXSxlLmV4cG9ydHNbIk5vdCBzZWxlY3RlZF9pbnB1dCJdPVsiTm90IHNlbGVjdGVkIl0sZS5leHBvcnRzWyJOb3RoaW5nIHNlbGVjdGVkX2NvbWJvYm94X2lucHV0Il09WyJOb3RoaW5nIHNlbGVjdGVkIl0sZS5leHBvcnRzWyJOdW1iZXIgT2YgUm93c19pbnB1dCJdPVsiTnVtYmVyIE9mIFJvd3MiXSxlLmV4cG9ydHNbIk51bWJlciBvZiBQaXZvdHMgQmFja19pbnB1dCJdPVsiTnVtYmVyIG9mIFBpdm90cyBCYWNrIl0sZS5leHBvcnRzWyJOdW1iZXIgb2YgbGluZV9pbnB1dCJdPVsiTnVtYmVyIG9mIGxpbmUiXSxlLmV4cG9ydHMuT1NDX2lucHV0PVsiT1NDIl0sZS5leHBvcnRzLk9mZnNldF9pbnB1dD1bIk9mZnNldCJdLGUuZXhwb3J0cy5PbkJhbGFuY2VWb2x1bWVfaW5wdXQ9WyJPbkJhbGFuY2VWb2x1bWUiXSwKZS5leHBvcnRzWyJPbmUgc3RlcCBiYWNrIGJ1aWxkaW5nX2lucHV0Il09WyJPbmUgc3RlcCBiYWNrIGJ1aWxkaW5nIl0sZS5leHBvcnRzWyJPbmx5IEF3YWl0aW5nX2lucHV0Il09WyJPbmx5IEF3YWl0aW5nIl0sZS5leHBvcnRzLk9yaWdpbmFsX2lucHV0PVsiT3JpZ2luYWwiXSxlLmV4cG9ydHNbIk9zY2lsbGF0b3IgTUEgVHlwZV9pbnB1dCJdPVsiT3NjaWxsYXRvciBNQSBUeXBlIl0sZS5leHBvcnRzLk9zY2lsbGF0b3JfaW5wdXQ9WyJPc2NpbGxhdG9yIl0sZS5leHBvcnRzLk9zY2lsbGF0b3JzX2lucHV0PVsiT3NjaWxsYXRvcnMiXSxlLmV4cG9ydHNbIk91dHB1dCB2YWx1ZXNfaW5wdXQiXT1bIk91dHB1dCB2YWx1ZXMiXSxlLmV4cG9ydHMuT3ZlcmJvdWdodF9pbnB1dD1bIk92ZXJib3VnaHQiXSxlLmV4cG9ydHMuT3ZlcnNvbGRfaW5wdXQ9WyJPdmVyc29sZCJdLGUuZXhwb3J0cy5QT0NfaW5wdXQ9WyJQT0MiXSxlLmV4cG9ydHMuUFZUX2lucHV0PVsiUFZUIl0sZS5leHBvcnRzLlBfaW5wdXQ9WyJQIl0sZS5leHBvcnRzWyJQYW5lIGxhYmVsc19pbnB1dCJdPVsiUGFuZSBsYWJlbHMiXSxlLmV4cG9ydHMuUGFyYWJvbGljU0FSX2lucHV0PVsiUGFyYWJvbGljU0FSIl0sZS5leHBvcnRzLlBhdHRlcm5zX2lucHV0PVsiUGF0dGVybnMiXSxlLmV4cG9ydHMuUGVubmFudF9pbnB1dD1bIlBlbm5hbnQiXSxlLmV4cG9ydHMuUGVyY2VudF9pbnB1dD1bIlBlcmNlbnQiXSxlLmV4cG9ydHNbIlBlcmNlbnRhZ2UgTFRQKHtwZXJjZW50YWdlTFRQVmFsdWV9JSlfaW5wdXQiXT1bIlBlcmNlbnRhZ2UgTFRQKHtwZXJjZW50YWdlTFRQVmFsdWV9JSkiXSxlLmV4cG9ydHNbIlBlcmNlbnRhZ2UgTFRQX2lucHV0Il09WyJQZXJjZW50YWdlIExUUCJdLGUuZXhwb3J0cy5QZXJjZW50YWdlX2lucHV0PVsiUGVyY2VudGFnZSJdLGUuZXhwb3J0cy5QZXJpb2RfaW5wdXQ9WyJQZXJpb2QiXSxlLmV4cG9ydHMuUGVyaW9kc19pbnB1dD1bIlBlcmlvZHMiXSxlLmV4cG9ydHNbIlBlcm1pc3NpYmxlIERldmlhdGlvbl9pbnB1dCJdPVsiUGVybWlzc2libGUgRGV2aWF0aW9uIl0sZS5leHBvcnRzWyJQaGFudG9tIGJhcnNfaW5wdXQiXT1bIlBoYW50b20gYmFycyJdLGUuZXhwb3J0c1siUGl2b3QgSGlnaF9pbnB1dCJdPVsiUGl2b3QgSGlnaCJdLGUuZXhwb3J0c1siUGl2b3QgTG9va2JhY2sgTGVmdF9pbnB1dCJdPVsiUGl2b3QgTG9va2JhY2sgTGVmdCJdLGUuZXhwb3J0c1siUGl2b3QgTG9va2JhY2sgUmlnaHRfaW5wdXQiXT1bIlBpdm90IExvb2tiYWNrIFJpZ2h0Il0sZS5leHBvcnRzWyJQaXZvdCBMb3dfaW5wdXQiXT1bIlBpdm90IExvdyJdLGUuZXhwb3J0c1siUGl2b3QgbGVnc19pbnB1dCJdPVsiUGl2b3QgbGVncyJdLGUuZXhwb3J0c1siUGl2b3RzIFRpbWVmcmFtZV9pbnB1dCJdPVsiUGl2b3RzIFRpbWVmcmFtZSJdLGUuZXhwb3J0cy5QbGFjZW1lbnRfaW5wdXQ9WyJQbGFjZW1lbnQiXSxlLmV4cG9ydHNbIlBsZWFzZSBlbnRlciB0aGUgcmlnaHQgdGltZV90aW1lX2lucHV0Il09WyJQbGVhc2UgZW50ZXIgdGhlIHJpZ2h0IHRpbWUiXSxlLmV4cG9ydHNbIlBsb3QgQmVhcmlzaF9pbnB1dCJdPVsiUGxvdCBCZWFyaXNoIl0sZS5leHBvcnRzWyJQbG90IEJ1bGxpc2hfaW5wdXQiXT1bIlBsb3QgQnVsbGlzaCJdLGUuZXhwb3J0c1siUGxvdCBIaWRkZW4gQmVhcmlzaF9pbnB1dCJdPVsiUGxvdCBIaWRkZW4gQmVhcmlzaCJdLGUuZXhwb3J0c1siUGxvdCBIaWRkZW4gQnVsbGlzaF9pbnB1dCJdPVsiUGxvdCBIaWRkZW4gQnVsbGlzaCJdLGUuZXhwb3J0cy5QbG90X2lucHV0PVsiUGxvdCJdLGUuZXhwb3J0c1siUGxvdHMgQmFja2dyb3VuZF9pbnB1dCJdPVsiUGxvdHMgQmFja2dyb3VuZCJdLGUuZXhwb3J0cy5Qb2x5bGluZXNfaW5wdXQ9WyJQb2x5bGluZXMiXSxlLmV4cG9ydHNbIlBvc2l0aXZlIENvbG9yX2lucHV0Il09WyJQb3NpdGl2ZSBDb2xvciJdLGUuZXhwb3J0c1siUG9zdC1tYXJrZXQgb25seV9pbnB1dCJdPVsiUG9zdC1tYXJrZXQgb25seSJdLGUuZXhwb3J0c1siUHJlLW1hcmtldCBvbmx5X2lucHV0Il09WyJQcmUtbWFya2V0IG9ubHkiXSxlLmV4cG9ydHNbIlByaWNlIExpbmVfaW5wdXQiXT1bIlByaWNlIExpbmUiXSxlLmV4cG9ydHNbIlByaWNlIFNvdXJjZV9pbnB1dCJdPVsiUHJpY2UgU291cmNlIl0sZS5leHBvcnRzWyJQcmljZSBUYXJnZXRzX2lucHV0Il09WyJQcmljZSBUYXJnZXRzIl0sZS5leHBvcnRzWyJQcmljZSBkZXZpYXRpb24gZm9yIHJldmVyc2FscyAoJSlfaW5wdXQiXT1bIlByaWNlIGRldmlhdGlvbiBmb3IgcmV2ZXJzYWxzICglKSJdLGUuZXhwb3J0c1siUHJpY2Ugc291cmNlX2lucHV0Il09WyJQcmljZSBzb3VyY2UiXSxlLmV4cG9ydHMuUHJpY2VfaW5wdXQ9WyJQcmljZSJdLGUuZXhwb3J0c1siUHJvamVjdGlvbiBkb3duIGJhcnNfaW5wdXQiXT1bIlByb2plY3Rpb24gZG93biBiYXJzIl0sZS5leHBvcnRzWyJQcm9qZWN0aW9uIGRvd24gY29sb3JfaW5wdXQiXT1bIlByb2plY3Rpb24gZG93biBjb2xvciJdLGUuZXhwb3J0c1siUHJvamVjdGlvbiB1cCBiYXJzX2lucHV0Il09WyJQcm9qZWN0aW9uIHVwIGJhcnMiXSxlLmV4cG9ydHNbIlByb2plY3Rpb24gdXAgY29sb3JfaW5wdXQiXT1bIlByb2plY3Rpb24gdXAgY29sb3IiXSxlLmV4cG9ydHMuUV9pbnB1dD1bIlEiXSxlLmV4cG9ydHMuUXVhcnRlcl9pbnB1dD1bIlF1YXJ0ZXIiXSxlLmV4cG9ydHMuUXVhcnRlcmx5X2lucHV0PVsiUXVhcnRlcmx5Il0sZS5leHBvcnRzLlF1aW5xdWVubmlhbGx5X2lucHV0PVsiUXVpbnF1ZW5uaWFsbHkiXSxlLmV4cG9ydHNbIlJDSSBMZW5ndGhfaW5wdXQiXT1bIlJDSSBMZW5ndGgiXSxlLmV4cG9ydHMuUk1BX2lucHV0PVsiUk1BIl0sZS5leHBvcnRzWyJST0MgTGVuZ3RoICMxX2lucHV0Il09WyJST0MgTGVuZ3RoICMxIl0sZS5leHBvcnRzWyJST0MgTGVuZ3RoICMyX2lucHV0Il09WyJST0MgTGVuZ3RoICMyIl0sZS5leHBvcnRzWyJST0MgTGVuZ3RoICMzX2lucHV0Il09WyJST0MgTGVuZ3RoICMzIl0sZS5leHBvcnRzWyJST0MgTGVuZ3RoICM0X2lucHV0Il09WyJST0MgTGVuZ3RoICM0Il0sCmUuZXhwb3J0c1siUk9DIExlbmd0aF9pbnB1dCJdPVsiUk9DIExlbmd0aCJdLGUuZXhwb3J0cy5ST0NMZW4xX2lucHV0PVsiUk9DTGVuMSJdLGUuZXhwb3J0cy5ST0NMZW4yX2lucHV0PVsiUk9DTGVuMiJdLGUuZXhwb3J0cy5ST0NMZW4zX2lucHV0PVsiUk9DTGVuMyJdLGUuZXhwb3J0cy5ST0NMZW40X2lucHV0PVsiUk9DTGVuNCJdLGUuZXhwb3J0cy5ST0NfaW5wdXQ9WyJST0MiXSxlLmV4cG9ydHNbIlJTSSBMZW5ndGhfaW5wdXQiXT1bIlJTSSBMZW5ndGgiXSxlLmV4cG9ydHNbIlJTSSBQZXJpb2RfaW5wdXQiXT1bIlJTSSBQZXJpb2QiXSxlLmV4cG9ydHNbIlJTSSBTZXR0aW5nc19pbnB1dCJdPVsiUlNJIFNldHRpbmdzIl0sZS5leHBvcnRzWyJSU0kgU291cmNlX2lucHV0Il09WyJSU0kgU291cmNlIl0sZS5leHBvcnRzLlJTSV9pbnB1dD1bIlJTSSJdLGUuZXhwb3J0cy5SVkdJX2lucHV0PVsiUlZHSSJdLGUuZXhwb3J0cy5SVklfaW5wdXQ9WyJSVkkiXSxlLmV4cG9ydHMuUmFuZ2VfaW5wdXQ9WyJSYW5nZSJdLGUuZXhwb3J0c1siUmF0ZSBvZiBDaGFuZ2UgTG9va2JhY2tfaW5wdXQiXT1bIlJhdGUgb2YgQ2hhbmdlIExvb2tiYWNrIl0sZS5leHBvcnRzWyJSYXRpbmcgaXMgYmFzZWQgb25faW5wdXQiXT1bIlJhdGluZyBpcyBiYXNlZCBvbiJdLGUuZXhwb3J0cy5SZWN0YW5nbGVfaW5wdXQ9WyJSZWN0YW5nbGUiXSxlLmV4cG9ydHMuUmVndWxhcl9pbnB1dD1bIlJlZ3VsYXIiXSxlLmV4cG9ydHMuUmVzaXN0YW5jZV9pbnB1dD1bIlJlc2lzdGFuY2UiXSxlLmV4cG9ydHNbIlJldmVyc2FsIGFtb3VudF9pbnB1dCJdPVsiUmV2ZXJzYWwgYW1vdW50Il0sZS5leHBvcnRzLlJldmVyc2VfaW5wdXQ9WyJSZXZlcnNlIl0sZS5leHBvcnRzLlJpZ2h0X2lucHV0PVsiUmlnaHQiXSxlLmV4cG9ydHNbIlJpc2luZyBXZWRnZV9pbnB1dCJdPVsiUmlzaW5nIFdlZGdlIl0sZS5leHBvcnRzWyJSb2xsaW5nIFBlcmlvZF9pbnB1dCJdPVsiUm9sbGluZyBQZXJpb2QiXSxlLmV4cG9ydHNbIlJvdyBTaXplX2lucHV0Il09WyJSb3cgU2l6ZSJdLGUuZXhwb3J0c1siUm93cyBMYXlvdXRfaW5wdXQiXT1bIlJvd3MgTGF5b3V0Il0sZS5leHBvcnRzWyJSb3dzIFNpemVfaW5wdXQiXT1bIlJvd3MgU2l6ZSJdLGUuZXhwb3J0c1siU01BICsgQm9sbGluZ2VyIEJhbmRzX2lucHV0Il09WyJTTUEgKyBCb2xsaW5nZXIgQmFuZHMiXSxlLmV4cG9ydHNbIlNNQSBMZW5ndGggIzFfaW5wdXQiXT1bIlNNQSBMZW5ndGggIzEiXSxlLmV4cG9ydHNbIlNNQSBMZW5ndGggIzJfaW5wdXQiXT1bIlNNQSBMZW5ndGggIzIiXSxlLmV4cG9ydHNbIlNNQSBMZW5ndGggIzNfaW5wdXQiXT1bIlNNQSBMZW5ndGggIzMiXSxlLmV4cG9ydHNbIlNNQSBMZW5ndGggIzRfaW5wdXQiXT1bIlNNQSBMZW5ndGggIzQiXSxlLmV4cG9ydHMuU01BTGVuMV9pbnB1dD1bIlNNQUxlbjEiXSxlLmV4cG9ydHMuU01BTGVuMl9pbnB1dD1bIlNNQUxlbjIiXSxlLmV4cG9ydHMuU01BTGVuM19pbnB1dD1bIlNNQUxlbjMiXSxlLmV4cG9ydHMuU01BTGVuNF9pbnB1dD1bIlNNQUxlbjQiXSxlLmV4cG9ydHMuU01BX2lucHV0PVsiU01BIl0sZS5leHBvcnRzWyJTTUkgRXJnb2RpYyBPc2NpbGxhdG9yX2lucHV0Il09WyJTTUkgRXJnb2RpYyBPc2NpbGxhdG9yIl0sZS5leHBvcnRzLlNNSV9pbnB1dD1bIlNNSSJdLGUuZXhwb3J0c1siU01NQSAoUk1BKV9pbnB1dCJdPVsiU01NQSAoUk1BKSJdLGUuZXhwb3J0cy5TY2hpZmZfaW5wdXQ9WyJTY2hpZmYiXSxlLmV4cG9ydHNbIlNlY29uZCBCb3R0b21faW5wdXQiXT1bIlNlY29uZCBCb3R0b20iXSxlLmV4cG9ydHNbIlNlY29uZCBUb3BfaW5wdXQiXT1bIlNlY29uZCBUb3AiXSxlLmV4cG9ydHNbIlNlY29uZCBzZXNzaW9uX2lucHV0Il09WyJTZWNvbmQgc2Vzc2lvbiJdLGUuZXhwb3J0c1siU2VuZCBtZXNzYWdlX2lucHV0Il09WyJTZW5kIG1lc3NhZ2UiXSxlLmV4cG9ydHNbIlNlc3Npb24gY29sb3JfaW5wdXQiXT1bIlNlc3Npb24gY29sb3IiXSxlLmV4cG9ydHNbIlNlc3Npb24gdGltZV9pbnB1dCJdPVsiU2Vzc2lvbiB0aW1lIl0sZS5leHBvcnRzWyJTZXNzaW9uIHRpbWV6b25lX2lucHV0Il09WyJTZXNzaW9uIHRpbWV6b25lIl0sZS5leHBvcnRzLlNlc3Npb25faW5wdXQ9WyJTZXNzaW9uIl0sZS5leHBvcnRzLlNlc3Npb25zX2lucHV0PVsiU2Vzc2lvbnMiXSxlLmV4cG9ydHMuU2V0dGluZ3NfaW5wdXQ9WyJTZXR0aW5ncyJdLGUuZXhwb3J0cy5TaGFwZXNfaW5wdXQ9WyJTaGFwZXMiXSxlLmV4cG9ydHNbIlNob3J0IEJCIExlbmd0aF9pbnB1dCJdPVsiU2hvcnQgQkIgTGVuZ3RoIl0sZS5leHBvcnRzWyJTaG9ydCBMZW5ndGhfaW5wdXQiXT1bIlNob3J0IExlbmd0aCJdLGUuZXhwb3J0c1siU2hvcnQgTUEgTGVuZ3RoX2lucHV0Il09WyJTaG9ydCBNQSBMZW5ndGgiXSxlLmV4cG9ydHNbIlNob3J0IFJDSSBMZW5ndGhfaW5wdXQiXT1bIlNob3J0IFJDSSBMZW5ndGgiXSxlLmV4cG9ydHNbIlNob3J0IFJvQyBMZW5ndGhfaW5wdXQiXT1bIlNob3J0IFJvQyBMZW5ndGgiXSxlLmV4cG9ydHNbIlNob3J0IGxlbmd0aF9pbnB1dCJdPVsiU2hvcnQgbGVuZ3RoIl0sZS5leHBvcnRzWyJTaG9ydCBwZXJpb2RfaW5wdXQiXT1bIlNob3J0IHBlcmlvZCJdLGUuZXhwb3J0cy5TaG9ydF9pbnB1dD1bIlNob3J0Il0sZS5leHBvcnRzWyJTaG93IEF2ZXJhZ2VzX2lucHV0Il09WyJTaG93IEF2ZXJhZ2VzIl0sZS5leHBvcnRzWyJTaG93IExhYmVsc19pbnB1dCJdPVsiU2hvdyBMYWJlbHMiXSxlLmV4cG9ydHNbIlNob3cgTGV2ZWxzX2lucHV0Il09WyJTaG93IExldmVscyJdLGUuZXhwb3J0c1siU2hvdyBNVEZfaW5wdXQiXT1bIlNob3cgTVRGIl0sZS5leHBvcnRzWyJTaG93IFBlYXJzb24ncyBSX2lucHV0Il09WyJTaG93IFBlYXJzb24ncyBSIl0sZS5leHBvcnRzWyJTaG93IFBlcmNlbnQgUG9zaXRpdmVfaW5wdXQiXT1bIlNob3cgUGVyY2VudCBQb3NpdGl2ZSJdLGUuZXhwb3J0c1siU2hvdyBQaXZvdHNfaW5wdXQiXT1bIlNob3cgUGl2b3RzIl0sZS5leHBvcnRzWyJTaG93IFByaWNlc19pbnB1dCJdPVsiU2hvdyBQcmljZXMiXSwKZS5leHBvcnRzWyJTaG93IFByb2plY3Rpb25zX2lucHV0Il09WyJTaG93IFByb2plY3Rpb25zIl0sZS5leHBvcnRzWyJTaG93IFN0YW5kYXJkIERldmlhdGlvbl9pbnB1dCJdPVsiU2hvdyBTdGFuZGFyZCBEZXZpYXRpb24iXSxlLmV4cG9ydHNbIlNob3cgVG91Y2hlZCBQaXZvdHNfaW5wdXQiXT1bIlNob3cgVG91Y2hlZCBQaXZvdHMiXSxlLmV4cG9ydHNbIlNob3cgYXZlcmFnZSBwcmljZSBwZXIgc2Vzc2lvbl9pbnB1dCJdPVsiU2hvdyBhdmVyYWdlIHByaWNlIHBlciBzZXNzaW9uIl0sZS5leHBvcnRzWyJTaG93IHJlYWwgcHJpY2VzIG9uIHByaWNlIHNjYWxlIChpbnN0ZWFkIG9mIEhlaWtpbi1Bc2hpIHByaWNlKV9pbnB1dCJdPVsiU2hvdyByZWFsIHByaWNlcyBvbiBwcmljZSBzY2FsZSAoaW5zdGVhZCBvZiBIZWlraW4tQXNoaSBwcmljZSkiXSxlLmV4cG9ydHNbIlNob3cgc2Vzc2lvbiBuYW1lc19pbnB1dCJdPVsiU2hvdyBzZXNzaW9uIG5hbWVzIl0sZS5leHBvcnRzWyJTaG93IHNlc3Npb25faW5wdXQiXT1bIlNob3cgc2Vzc2lvbiJdLGUuZXhwb3J0c1siU2hvdyB0aWNrIHJhbmdlIGZvciBlYWNoIHNlc3Npb25faW5wdXQiXT1bIlNob3cgdGljayByYW5nZSBmb3IgZWFjaCBzZXNzaW9uIl0sZS5leHBvcnRzLlNpZ0xlbl9pbnB1dD1bIlNpZ0xlbiJdLGUuZXhwb3J0cy5TaWdfaW5wdXQ9WyJTaWciXSxlLmV4cG9ydHMuU2lnbWFfaW5wdXQ9WyJTaWdtYSJdLGUuZXhwb3J0c1siU2lnbmFsIExlbmd0aF9pbnB1dCJdPVsiU2lnbmFsIExlbmd0aCJdLGUuZXhwb3J0c1siU2lnbmFsIExpbmUgTGVuZ3RoX2lucHV0Il09WyJTaWduYWwgTGluZSBMZW5ndGgiXSxlLmV4cG9ydHNbIlNpZ25hbCBMaW5lIE1BIFR5cGVfaW5wdXQiXT1bIlNpZ25hbCBMaW5lIE1BIFR5cGUiXSxlLmV4cG9ydHNbIlNpZ25hbCBTbW9vdGhpbmdfaW5wdXQiXT1bIlNpZ25hbCBTbW9vdGhpbmciXSxlLmV4cG9ydHNbIlNpZ25hbCBsaW5lIHBlcmlvZF9pbnB1dCJdPVsiU2lnbmFsIGxpbmUgcGVyaW9kIl0sZS5leHBvcnRzWyJTaWduYWwgc21vb3RoaW5nX2lucHV0Il09WyJTaWduYWwgc21vb3RoaW5nIl0sZS5leHBvcnRzLlNpZ25hbF9pbnB1dD1bIlNpZ25hbCJdLGUuZXhwb3J0c1siU2ltcGxlIG1hKG9zY2lsbGF0b3IpX2lucHV0Il09WyJTaW1wbGUgbWEob3NjaWxsYXRvcikiXSxlLmV4cG9ydHNbIlNpbXBsZSBtYShzaWduYWwgbGluZSlfaW5wdXQiXT1bIlNpbXBsZSBtYShzaWduYWwgbGluZSkiXSxlLmV4cG9ydHMuU2ltcGxlX2lucHV0PVsiU2ltcGxlIl0sZS5leHBvcnRzWyJTbG93IExlbmd0aF9pbnB1dCJdPVsiU2xvdyBMZW5ndGgiXSxlLmV4cG9ydHNbIlNsb3cgTUEgUGVyaW9kX2lucHV0Il09WyJTbG93IE1BIFBlcmlvZCJdLGUuZXhwb3J0c1siU2xvdyBsZW5ndGhfaW5wdXQiXT1bIlNsb3cgbGVuZ3RoIl0sZS5leHBvcnRzLlNsb3dpbmdfaW5wdXQ9WyJTbG93aW5nIl0sZS5leHBvcnRzLlNtYWxsX2lucHV0PVsiU21hbGwiXSxlLmV4cG9ydHNbIlNtb290aGluZyBMZW5ndGhfaW5wdXQiXT1bIlNtb290aGluZyBMZW5ndGgiXSxlLmV4cG9ydHNbIlNtb290aGluZyBMaW5lX2lucHV0Il09WyJTbW9vdGhpbmcgTGluZSJdLGUuZXhwb3J0cy5TbW9vdGhpbmdfaW5wdXQ9WyJTbW9vdGhpbmciXSxlLmV4cG9ydHMuU29saWRfaW5wdXQ9WyJTb2xpZCJdLGUuZXhwb3J0cy5Tb3VyY2VfaW5wdXQ9WyJTb3VyY2UiXSxlLmV4cG9ydHMuU3BsaXRzX2lucHV0PVsiU3BsaXRzIl0sZS5leHBvcnRzWyJTdGFuZGFyZCBEZXZpYXRpb25faW5wdXQiXT1bIlN0YW5kYXJkIERldmlhdGlvbiJdLGUuZXhwb3J0c1siU3RhbmRhcmQgRXJyb3JzX2lucHV0Il09WyJTdGFuZGFyZCBFcnJvcnMiXSxlLmV4cG9ydHMuU3RhcnRfaW5wdXQ9WyJTdGFydCJdLGUuZXhwb3J0c1siU3RhcnRpbmcgeWVhcl9pbnB1dCJdPVsiU3RhcnRpbmcgeWVhciJdLGUuZXhwb3J0cy5TdGREZXZfaW5wdXQ9WyJTdGREZXYiXSxlLmV4cG9ydHNbIlN0b2NoYXN0aWMgTGVuZ3RoX2lucHV0Il09WyJTdG9jaGFzdGljIExlbmd0aCJdLGUuZXhwb3J0c1siU3RvY2hhc3RpYyBMb3dlcl9pbnB1dCJdPVsiU3RvY2hhc3RpYyBMb3dlciJdLGUuZXhwb3J0c1siU3RvY2hhc3RpYyBVcHBlcl9pbnB1dCJdPVsiU3RvY2hhc3RpYyBVcHBlciJdLGUuZXhwb3J0c1siU3RvcCBMZW5ndGggKHEpX2lucHV0Il09WyJTdG9wIExlbmd0aCAocSkiXSxlLmV4cG9ydHNbIlN0b3AgbG9zc19pbnB1dCJdPVsiU3RvcCBsb3NzIl0sZS5leHBvcnRzWyJTdHJhdGVneSBEaXJlY3Rpb25faW5wdXQiXT1bIlN0cmF0ZWd5IERpcmVjdGlvbiJdLGUuZXhwb3J0cy5TdHlsZV9pbnB1dD1bIlN0eWxlIl0sZS5leHBvcnRzLlN1YldhdmVzX2lucHV0PVsiU3ViV2F2ZXMiXSxlLmV4cG9ydHMuU3VwcG9ydF9pbnB1dD1bIlN1cHBvcnQiXSxlLmV4cG9ydHNbIlN5bWJvbCBsaXN0X2lucHV0Il09WyJTeW1ib2wgbGlzdCJdLGUuZXhwb3J0cy5TeW1ib2xfaW5wdXQ9WyJTeW1ib2wiXSxlLmV4cG9ydHMuVEVNQV9pbnB1dD1bIlRFTUEiXSxlLmV4cG9ydHMuVFJJWF9pbnB1dD1bIlRSSVgiXSxlLmV4cG9ydHNbIlRhYmxlIEhlaWdodCAoJSlfaW5wdXQiXT1bIlRhYmxlIEhlaWdodCAoJSkiXSxlLmV4cG9ydHNbIlRhYmxlIFBvc2l0aW9uX2lucHV0Il09WyJUYWJsZSBQb3NpdGlvbiJdLGUuZXhwb3J0c1siVGFibGUgV2lkdGggKCUpX2lucHV0Il09WyJUYWJsZSBXaWR0aCAoJSkiXSxlLmV4cG9ydHNbIlRhYmxlIHNldHRpbmdzX2lucHV0Il09WyJUYWJsZSBzZXR0aW5ncyJdLGUuZXhwb3J0cy5UYWJsZXNfaW5wdXQ9WyJUYWJsZXMiXSxlLmV4cG9ydHNbIlRha2UgcHJvZml0X2lucHV0Il09WyJUYWtlIHByb2ZpdCJdLGUuZXhwb3J0c1siVGFyZ2V0IEN1cnJlbmN5X2lucHV0Il09WyJUYXJnZXQgQ3VycmVuY3kiXSxlLmV4cG9ydHMuVGFyZ2V0X2lucHV0PVsiVGFyZ2V0Il0sZS5leHBvcnRzWyJUZWV0aCBMZW5ndGhfaW5wdXQiXT1bIlRlZXRoIExlbmd0aCJdLGUuZXhwb3J0c1siVGVldGggT2Zmc2V0X2lucHV0Il09WyJUZWV0aCBPZmZzZXQiXSxlLmV4cG9ydHMuVGVldGhfaW5wdXQ9WyJUZWV0aCJdLAplLmV4cG9ydHNbIlRleHQgQ29sb3IgLyBMYWJlbCBDb2xvcl9pbnB1dCJdPVsiVGV4dCBDb2xvciAvIExhYmVsIENvbG9yIl0sZS5leHBvcnRzWyJUaGlyZCBzZXNzaW9uX2lucHV0Il09WyJUaGlyZCBzZXNzaW9uIl0sZS5leHBvcnRzWyJUaWNrcyBQZXIgUm93X2lucHV0Il09WyJUaWNrcyBQZXIgUm93Il0sZS5leHBvcnRzWyJUaW1lZnJhbWUgbGlzdF9pbnB1dCJdPVsiVGltZWZyYW1lIGxpc3QiXSxlLmV4cG9ydHMuVGltZWZyYW1lX2lucHV0PVsiVGltZWZyYW1lIl0sZS5leHBvcnRzLlRvX2lucHV0PVsiVG8iXSxlLmV4cG9ydHMuVG9wc19pbnB1dD1bIlRvcHMiXSxlLmV4cG9ydHMuVG90YWxfaW5wdXQ9WyJUb3RhbCJdLGUuZXhwb3J0c1siVHJhZGVyIEVNQSAxIGxlbmd0aF9pbnB1dCJdPVsiVHJhZGVyIEVNQSAxIGxlbmd0aCJdLGUuZXhwb3J0c1siVHJhZGVyIEVNQSAyIGxlbmd0aF9pbnB1dCJdPVsiVHJhZGVyIEVNQSAyIGxlbmd0aCJdLGUuZXhwb3J0c1siVHJhZGVyIEVNQSAzIGxlbmd0aF9pbnB1dCJdPVsiVHJhZGVyIEVNQSAzIGxlbmd0aCJdLGUuZXhwb3J0c1siVHJhZGVyIEVNQSA0IGxlbmd0aF9pbnB1dCJdPVsiVHJhZGVyIEVNQSA0IGxlbmd0aCJdLGUuZXhwb3J0c1siVHJhZGVyIEVNQSA1IGxlbmd0aF9pbnB1dCJdPVsiVHJhZGVyIEVNQSA1IGxlbmd0aCJdLGUuZXhwb3J0c1siVHJhZGVyIEVNQSA2IGxlbmd0aF9pbnB1dCJdPVsiVHJhZGVyIEVNQSA2IGxlbmd0aCJdLGUuZXhwb3J0cy5UcmFkaXRpb25hbF9pbnB1dD1bIlRyYWRpdGlvbmFsIl0sZS5leHBvcnRzWyJUcmVuZCBIZWlnaHRfaW5wdXQiXT1bIlRyZW5kIEhlaWdodCJdLGUuZXhwb3J0cy5UcmlhbmdsZV9pbnB1dD1bIlRyaWFuZ2xlIl0sZS5leHBvcnRzLlRyaWdnZXJfaW5wdXQ9WyJUcmlnZ2VyIl0sZS5leHBvcnRzWyJUcmlwbGUgQm90dG9tX2lucHV0Il09WyJUcmlwbGUgQm90dG9tIl0sZS5leHBvcnRzWyJUcmlwbGUgVG9wX2lucHV0Il09WyJUcmlwbGUgVG9wIl0sZS5leHBvcnRzLlRyaXllYXJseV9pbnB1dD1bIlRyaXllYXJseSJdLGUuZXhwb3J0c1siVHJ1ZSBSYW5nZV9pbnB1dCJdPVsiVHJ1ZSBSYW5nZSJdLGUuZXhwb3J0cy5UeXBlX2lucHV0PVsiVHlwZSJdLGUuZXhwb3J0cy5VT19pbnB1dD1bIlVPIl0sZS5leHBvcnRzWyJVcCBHYXBzX2lucHV0Il09WyJVcCBHYXBzIl0sZS5leHBvcnRzWyJVcCBWb2x1bWVfaW5wdXQiXT1bIlVwIFZvbHVtZSJdLGUuZXhwb3J0c1siVXAgYmFyc19pbnB1dCJdPVsiVXAgYmFycyJdLGUuZXhwb3J0c1siVXAgY29sb3JfaW5wdXQiXT1bIlVwIGNvbG9yIl0sZS5leHBvcnRzWyJVcCBmcmFjdGFsc19pbnB1dCJdPVsiVXAgZnJhY3RhbHMiXSxlLmV4cG9ydHNbIlVwL0Rvd25faW5wdXQiXT1bIlVwL0Rvd24iXSxlLmV4cG9ydHNbIlVwRG93biBMZW5ndGhfaW5wdXQiXT1bIlVwRG93biBMZW5ndGgiXSxlLmV4cG9ydHNbIlVwcGVyIEJhbmRfaW5wdXQiXT1bIlVwcGVyIEJhbmQiXSxlLmV4cG9ydHNbIlVwcGVyIERldmlhdGlvbl9pbnB1dCJdPVsiVXBwZXIgRGV2aWF0aW9uIl0sZS5leHBvcnRzWyJVcHBlciBQZXJjZW50YWdlX2lucHV0Il09WyJVcHBlciBQZXJjZW50YWdlIl0sZS5leHBvcnRzLlVwcGVyTGltaXRfaW5wdXQ9WyJVcHBlckxpbWl0Il0sZS5leHBvcnRzLlVwcGVyX2lucHV0PVsiVXBwZXIiXSxlLmV4cG9ydHNbIlVzZSBEYWlseS1iYXNlZCBWYWx1ZXNfaW5wdXQiXT1bIlVzZSBEYWlseS1iYXNlZCBWYWx1ZXMiXSxlLmV4cG9ydHNbIlVzZSBFeHBvbmVudGlhbCBNQV9pbnB1dCJdPVsiVXNlIEV4cG9uZW50aWFsIE1BIl0sZS5leHBvcnRzWyJVc2UgTG93ZXIgRGV2aWF0aW9uX2lucHV0Il09WyJVc2UgTG93ZXIgRGV2aWF0aW9uIl0sZS5leHBvcnRzWyJVc2UgVXBwZXIgRGV2aWF0aW9uX2lucHV0Il09WyJVc2UgVXBwZXIgRGV2aWF0aW9uIl0sZS5leHBvcnRzWyJVc2UgY3VzdG9tIHRpbWVmcmFtZV9pbnB1dCJdPVsiVXNlIGN1c3RvbSB0aW1lZnJhbWUiXSxlLmV4cG9ydHNbIlVzZSBleHBvbmVudGlhbCBNQV9pbnB1dCJdPVsiVXNlIGV4cG9uZW50aWFsIE1BIl0sZS5leHBvcnRzWyJWSSArX2lucHV0Il09WyJWSSArIl0sZS5leHBvcnRzWyJWSSAtX2lucHV0Il09WyJWSSAtIl0sZS5leHBvcnRzWyJWV0FQIFNldHRpbmdzX2lucHV0Il09WyJWV0FQIFNldHRpbmdzIl0sZS5leHBvcnRzLlZXQVBfaW5wdXQ9WyJWV0FQIl0sZS5leHBvcnRzLlZXTUFfaW5wdXQ9WyJWV01BIl0sZS5leHBvcnRzWyJWYWx1ZSBBcmVhIERvd25faW5wdXQiXT1bIlZhbHVlIEFyZWEgRG93biJdLGUuZXhwb3J0c1siVmFsdWUgQXJlYSBQZXJjZW50X2lucHV0Il09WyJWYWx1ZSBBcmVhIFBlcmNlbnQiXSxlLmV4cG9ydHNbIlZhbHVlIEFyZWEgVXBfaW5wdXQiXT1bIlZhbHVlIEFyZWEgVXAiXSxlLmV4cG9ydHNbIlZhbHVlIEFyZWEgVm9sdW1lX2lucHV0Il09WyJWYWx1ZSBBcmVhIFZvbHVtZSJdLGUuZXhwb3J0c1siVmFsdWUgQXJlYSB2b2x1bWVfaW5wdXQiXT1bIlZhbHVlIEFyZWEgdm9sdW1lIl0sZS5leHBvcnRzWyJWYWx1ZSBBcmVhX2lucHV0Il09WyJWYWx1ZSBBcmVhIl0sZS5leHBvcnRzLlZhbHVlX2lucHV0PVsiVmFsdWUiXSxlLmV4cG9ydHNbIlZhbHVlcyBpbiBzdGF0dXMgbGluZV9pbnB1dCJdPVsiVmFsdWVzIGluIHN0YXR1cyBsaW5lIl0sZS5leHBvcnRzLlZhbHVlc19pbnB1dD1bIlZhbHVlcyJdLGUuZXhwb3J0cy5WaXNpYmlsaXR5X2lucHV0PVsiVmlzaWJpbGl0eSJdLGUuZXhwb3J0cy5Wb2x1bWVfaW5wdXQ9WyJWb2x1bWUiXSxlLmV4cG9ydHNbIldNQSBMZW5ndGhfaW5wdXQiXT1bIldNQSBMZW5ndGgiXSxlLmV4cG9ydHMuV01BX2lucHV0PVsiV01BIl0sZS5leHBvcnRzWyJXYWl0IGZvciB0aW1lZnJhbWUgY2xvc2VzX2lucHV0Il09WyJXYWl0IGZvciB0aW1lZnJhbWUgY2xvc2VzIl0sZS5leHBvcnRzWyJXYW5pbmcgTW9vbl9pbnB1dCJdPVsiV2FuaW5nIE1vb24iXSxlLmV4cG9ydHNbIldheGluZyBNb29uX2lucHV0Il09WyJXYXhpbmcgTW9vbiJdLGUuZXhwb3J0cy5XZWRnZV9pbnB1dD1bIldlZGdlIl0sZS5leHBvcnRzLldlZWtfaW5wdXQ9WyJXZWVrIl0sCmUuZXhwb3J0cy5XZWVrbHlfaW5wdXQ9WyJXZWVrbHkiXSxlLmV4cG9ydHMuV2VpZ2h0ZWRfaW5wdXQ9WyJXZWlnaHRlZCJdLGUuZXhwb3J0cy5XaWNrX2lucHV0PVsiV2ljayJdLGUuZXhwb3J0cy5XaWNrc19pbnB1dD1bIldpY2tzIl0sZS5leHBvcnRzWyJXaWxkZXIncyBTbW9vdGhpbmdfaW5wdXQiXT1bIldpbGRlcidzIFNtb290aGluZyJdLGUuZXhwb3J0c1siV2luZG93IFNpemVfaW5wdXQiXT1bIldpbmRvdyBTaXplIl0sZS5leHBvcnRzLldvb2RpZV9pbnB1dD1bIldvb2RpZSJdLGUuZXhwb3J0cy5YX2lucHV0PVsiWCJdLGUuZXhwb3J0cy5ZWV95ZWFyX2lucHV0PVsiWVkiXSxlLmV4cG9ydHMuWWVhcl9pbnB1dD1bIlllYXIiXSxlLmV4cG9ydHMuWWVhcmx5X2lucHV0PVsiWWVhcmx5Il0sZS5leHBvcnRzWyJaZXJvIExpbmVfaW5wdXQiXT1bIlplcm8gTGluZSJdLGUuZXhwb3J0cy5aZXJvX2lucHV0PVsiWmVybyJdLGUuZXhwb3J0cy5mYXN0TGVuZ3RoX2lucHV0PVsiZmFzdExlbmd0aCJdLGUuZXhwb3J0cy5mcm9tX2lucHV0PVsiZnJvbSJdLGUuZXhwb3J0cy5pbmNyZW1lbnRfaW5wdXQ9WyJpbmNyZW1lbnQiXSxlLmV4cG9ydHMuaXNDZW50ZXJlZF9pbnB1dD1bImlzQ2VudGVyZWQiXSxlLmV4cG9ydHMubGFiZWxzX2lucHV0PVsibGFiZWxzIl0sZS5leHBvcnRzLmxlbl9pbnB1dD1bImxlbiJdLGUuZXhwb3J0cy5sZW5ndGgxNF9pbnB1dD1bImxlbmd0aDE0Il0sZS5leHBvcnRzLmxlbmd0aDI4X2lucHV0PVsibGVuZ3RoMjgiXSxlLmV4cG9ydHMubGVuZ3RoN19pbnB1dD1bImxlbmd0aDciXSxlLmV4cG9ydHMubGVuZ3RoUlNJX2lucHV0PVsibGVuZ3RoUlNJIl0sZS5leHBvcnRzLmxlbmd0aFN0b2NoX2lucHV0PVsibGVuZ3RoU3RvY2giXSxlLmV4cG9ydHMubGVuZ3RoX2lucHV0PVsibGVuZ3RoIl0sZS5leHBvcnRzLmxldmVsc19pbnB1dD1bImxldmVscyJdLGUuZXhwb3J0cy5sb25nX2lucHV0PVsibG9uZyJdLGUuZXhwb3J0cy5sb25nbGVuX2lucHV0PVsibG9uZ2xlbiJdLGUuZXhwb3J0cy5tYXhpbXVtX2lucHV0PVsibWF4aW11bSJdLGUuZXhwb3J0cy5tdWx0X2lucHV0PVsibXVsdCJdLGUuZXhwb3J0cy5wX2lucHV0PVsicCJdLGUuZXhwb3J0cy5xX2lucHV0PVsicSJdLGUuZXhwb3J0cy5yZXNvbHV0aW9uX2lucHV0PVsicmVzb2x1dGlvbiJdLGUuZXhwb3J0cy5yb2NsZW4xX2lucHV0PVsicm9jbGVuMSJdLGUuZXhwb3J0cy5yb2NsZW4yX2lucHV0PVsicm9jbGVuMiJdLGUuZXhwb3J0cy5yb2NsZW4zX2lucHV0PVsicm9jbGVuMyJdLGUuZXhwb3J0cy5yb2NsZW40X2lucHV0PVsicm9jbGVuNCJdLGUuZXhwb3J0cy5zaG9ydF9pbnB1dD1bInNob3J0Il0sZS5leHBvcnRzLnNob3J0bGVuX2lucHV0PVsic2hvcnRsZW4iXSxlLmV4cG9ydHNbInNob3cgTUFfaW5wdXQiXT1bInNob3cgTUEiXSxlLmV4cG9ydHMuc2lnbGVuX2lucHV0PVsic2lnbGVuIl0sZS5leHBvcnRzLnNpZ25hbExlbmd0aF9pbnB1dD1bInNpZ25hbExlbmd0aCJdLGUuZXhwb3J0cy5zbG93TGVuZ3RoX2lucHV0PVsic2xvd0xlbmd0aCJdLGUuZXhwb3J0cy5zbWFsZW4xX2lucHV0PVsic21hbGVuMSJdLGUuZXhwb3J0cy5zbWFsZW4yX2lucHV0PVsic21hbGVuMiJdLGUuZXhwb3J0cy5zbWFsZW4zX2lucHV0PVsic21hbGVuMyJdLGUuZXhwb3J0cy5zbWFsZW40X2lucHV0PVsic21hbGVuNCJdLGUuZXhwb3J0cy5zbW9vdGhEX2lucHV0PVsic21vb3RoRCJdLGUuZXhwb3J0cy5zbW9vdGhLX2lucHV0PVsic21vb3RoSyJdLGUuZXhwb3J0cy5zdGFydF9pbnB1dD1bInN0YXJ0Il0sZS5leHBvcnRzLnN5bV9pbnB1dD1bInN5bSJdLGUuZXhwb3J0cy50b19pbnB1dD1bInRvIl0sZS5leHBvcnRzLnVzZVRydWVSYW5nZV9pbnB1dD1bInVzZVRydWVSYW5nZSJdLGUuZXhwb3J0cy54X2lucHV0PVsieCJdLGUuZXhwb3J0c1sieWF5IENvbG9yIDBfaW5wdXQiXT1bInlheSBDb2xvciAwIl0sZS5leHBvcnRzWyJ5YXkgQ29sb3IgMV9pbnB1dCJdPVsieWF5IENvbG9yIDEiXSxlLmV4cG9ydHNbIntudW1iZXJ9IGl0ZW1fY29tYm9ib3hfaW5wdXQiXT1bIntudW1iZXJ9IGl0ZW0iLCJ7bnVtYmVyfSBpdGVtcyJdfSwzMTIyOTcoZSl7ZS5leHBvcnRzPVsiQ2xvc2UiXX0sODcwOTE1KGUpe2UuZXhwb3J0cz1bIkFUUih7YXRyVmFsdWV9KSJdfSw5OTUyMzUoZSl7ZS5leHBvcnRzPVsiUGVyY2VudGFnZSBMVFAoe3BlcmNlbnRhZ2VMVFBWYWx1ZX0lKSJdfSw0MTE5NzQoZSl7ZS5leHBvcnRzPVsiVHJhZGl0aW9uYWwiXX0sNzE4NTIzKGUpe2UuZXhwb3J0cz1bIkFCQ0QgcGF0dGVybiJdfSwxODc1MzIoZSl7ZS5leHBvcnRzPVsiR2FubiBib3giXX0sOTIzODQwKGUpe2UuZXhwb3J0cz1bIkdhbm4gZmFuIl19LDQxNTAwOShlKXtlLmV4cG9ydHM9WyJHYW5uIHNxdWFyZSJdfSw3NTk4ODcoZSl7ZS5leHBvcnRzPVsiR2FubiBzcXVhcmUgZml4ZWQiXX0sODUzMDE2KGUpe2UuZXhwb3J0cz1bIkVsbGlvdHQgdHJpYW5nbGUgd2F2ZSAoQcK3QsK3Q8K3RMK3RSkiXX0sOTc1ODUyKGUpe2UuZXhwb3J0cz1bIkVsbGlvdHQgdHJpcGxlIGNvbWJvIHdhdmUgKFfCt1jCt1nCt1jCt1opIl19LDI4MjA1OShlKXtlLmV4cG9ydHM9WyJFbGxpb3R0IGNvcnJlY3Rpb24gd2F2ZSAoQcK3QsK3QykiXX0sNDY1ODIyKGUpe2UuZXhwb3J0cz1bIkVsbGlvdHQgZG91YmxlIGNvbWJvIHdhdmUgKFfCt1jCt1kpIl19LDYwMjgxMChlKXtlLmV4cG9ydHM9WyJFbGxpb3R0IGltcHVsc2Ugd2F2ZSAoMcK3MsK3M8K3NMK3NSkiXX0sODMyMjU4KGUpe2UuZXhwb3J0cz1bIkZpYiBjaGFubmVsIl19LDY2NDM2MShlKXtlLmV4cG9ydHM9WyJGaWIgY2lyY2xlcyJdfSw4Njg0NTkoZSl7ZS5leHBvcnRzPVsiRmliIHJldHJhY2VtZW50Il19LDEyMTUxMShlKXtlLmV4cG9ydHM9WyJGaWIgc3BlZWQgcmVzaXN0YW5jZSBhcmNzIl19LDE5MDUyNihlKXtlLmV4cG9ydHM9WyJGaWIgc3BlZWQgcmVzaXN0YW5jZSBmYW4iXX0sOTkzNjAxKGUpe2UuZXhwb3J0cz1bIkZpYiBzcGlyYWwiXX0sMzAyMTY2KGUpe2UuZXhwb3J0cz1bIkZpYiB0aW1lIHpvbmUiXX0sNjcyODMxKGUpe2UuZXhwb3J0cz1bIkZpYiB3ZWRnZSJdfSwKOTYxMChlKXtlLmV4cG9ydHM9WyJTY2hpZmYgcGl0Y2hmb3JrIl19LDY2MTg5NihlKXtlLmV4cG9ydHM9WyJYQUJDRCBwYXR0ZXJuIl19LDQ4MzcxMChlKXtlLmV4cG9ydHM9WyJjb21tZW50Il19LDMyNDQ2MShlKXtlLmV4cG9ydHM9WyJjYWxsb3V0Il19LDk3Mjg0MihlKXtlLmV4cG9ydHM9WyJjaXJjbGUiXX0sNDc4MTIzKGUpe2UuZXhwb3J0cz1bImNyb3NzbGluZSJdfSwxNjY2MTAoZSl7ZS5leHBvcnRzPVsiY3VydmUiXX0sOTIyOTIxKGUpe2UuZXhwb3J0cz1bImN5Y2xpYyBsaW5lcyJdfSwzMjc2MTIoZSl7ZS5leHBvcnRzPVsiY3lwaGVyIHBhdHRlcm4iXX0sOTk1MTg3KGUpe2UuZXhwb3J0cz1bImFuY2hvcmVkIFZXQVAiXX0sOTkyOTM0KGUpe2UuZXhwb3J0cz1bImFuY2hvcmVkIG5vdGUiXX0sNjg4NDM3KGUpe2UuZXhwb3J0cz1bImFuY2hvcmVkIHRleHQiXX0sOTc1NjUyKGUpe2UuZXhwb3J0cz1bImFyYyJdfSwxNTA2ODEoZSl7ZS5leHBvcnRzPVsiYXJyb3ciXX0sMTMzMzA0KGUpe2UuZXhwb3J0cz1bImFycm93IG1hcmtlciJdfSw2MTcxOTkoZSl7ZS5leHBvcnRzPVsiYXJyb3cgbWFyayB1cCJdfSw5NjQ2NzMoZSl7ZS5leHBvcnRzPVsiYXJyb3cgbWFyayBkb3duIl19LDY4Mjk2MihlKXtlLmV4cG9ydHM9WyJhcnJvdyBtYXJrIGxlZnQiXX0sMTAwNjA5KGUpe2UuZXhwb3J0cz1bImFycm93IG1hcmsgcmlnaHQiXX0sNzQxOTI5KGUpe2UuZXhwb3J0cz1bImJhbGxvb24iXX0sMjcxNzUxKGUpe2UuZXhwb3J0cz1bImJhcnMgcGF0dGVybiJdfSw3NDY3MzcoZSl7ZS5leHBvcnRzPVsiYnJ1c2giXX0sODUxNDkzKGUpe2UuZXhwb3J0cz1bImdob3N0IGZlZWQiXX0sMzU3ODIwKGUpe2UuZXhwb3J0cz1bImRvdWJsZSBjdXJ2ZSJdfSw0MzU0NDYoZSl7ZS5leHBvcnRzPVsiZGF0ZSBhbmQgcHJpY2UgcmFuZ2UiXX0sNTI1MTI0KGUpe2UuZXhwb3J0cz1bImRhdGUgcmFuZ2UiXX0sMzQ2NzI3KGUpe2UuZXhwb3J0cz1bImRpc2pvaW50IGNoYW5uZWwiXX0sODk1NjQ4KGUpe2UuZXhwb3J0cz1bImVtb2ppIl19LDkzMDMzKGUpe2UuZXhwb3J0cz1bImVsbGlwc2UiXX0sNzY5MzM0KGUpe2UuZXhwb3J0cz1bImV4dGVuZGVkIGxpbmUiXX0sNjczMjc4KGUpe2UuZXhwb3J0cz1bImZsYWcgbWFyayJdfSw5NTg0MTYoZSl7ZS5leHBvcnRzPVsiZmxhdCB0b3AvYm90dG9tIl19LDc2NTIxKGUpe2UuZXhwb3J0cz1bImhvcml6b250YWwgbGluZSJdfSw0Mjk2MDYoZSl7ZS5leHBvcnRzPVsiaG9yaXpvbnRhbCByYXkiXX0sOTcxMTQoZSl7ZS5leHBvcnRzPVsiaGVhZCBhbmQgc2hvdWxkZXJzIl19LDk4MDA2MChlKXtlLmV4cG9ydHM9WyJoaWdobGlnaHRlciJdfSwzOTI0OTMoZSl7ZS5leHBvcnRzPVsiaW1hZ2UiXX0sNjU2MzQwKGUpe2UuZXhwb3J0cz1bImluZm8gbGluZSJdfSw0MTY5MChlKXtlLmV4cG9ydHM9WyJpbnNpZGUgcGl0Y2hmb3JrIl19LDY2NDE5NChlKXtlLmV4cG9ydHM9WyJpY29uIl19LDk0NjA0NyhlKXtlLmV4cG9ydHM9WyJpZGVhIl19LDU3NTAyMShlKXtlLmV4cG9ydHM9WyJsb25nIHBvc2l0aW9uIl19LDk5NjAwKGUpe2UuZXhwb3J0cz1bIm1vZGlmaWVkIFNjaGlmZiBwaXRjaGZvcmsiXX0sMjEzMjM2KGUpe2UuZXhwb3J0cz1bIm5vdGUiXX0sMTY3OTk3KGUpe2UuZXhwb3J0cz1bInNlY3RvciJdfSw0MjQxODEoZSl7ZS5leHBvcnRzPVsic2hvcnQgcG9zaXRpb24iXX0sOTk3OTI5KGUpe2UuZXhwb3J0cz1bInNpZ25wb3N0Il19LDYyMjU0KGUpe2UuZXhwb3J0cz1bInNpbmUgbGluZSJdfSwzNDI4OTIoZSl7ZS5leHBvcnRzPVsic3RpY2tlciJdfSw5MTUyODcoZSl7ZS5leHBvcnRzPVsicG9seWxpbmUiXX0sNDYzMTg3KGUpe2UuZXhwb3J0cz1bInBvc2l0aW9uIGZvcmVjYXN0Il19LDc2NjA5KGUpe2UuZXhwb3J0cz1bInBvc3QiXX0sODY2NjkoZSl7ZS5leHBvcnRzPVsicGF0aCJdfSwyOTM0ODAoZSl7ZS5leHBvcnRzPVsicGFyYWxsZWwgY2hhbm5lbCJdfSw5MjA1MzkoZSl7ZS5leHBvcnRzPVsicGl0Y2hmYW4iXX0sOTMwNzQ0KGUpe2UuZXhwb3J0cz1bInBpdGNoZm9yayJdfSw3MjM1NDQoZSl7ZS5leHBvcnRzPVsicGluIl19LDU0Njc0MShlKXtlLmV4cG9ydHM9WyJwcmljZSBsYWJlbCJdfSwzMzI5OTgoZSl7ZS5leHBvcnRzPVsicHJpY2Ugbm90ZSJdfSw3MDY1OTkoZSl7ZS5leHBvcnRzPVsicHJpY2UgcmFuZ2UiXX0sNTY5ODgxKGUpe2UuZXhwb3J0cz1bInJvdGF0ZWQgcmVjdGFuZ2xlIl19LDEwMDg5NihlKXtlLmV4cG9ydHM9WyJyYXkiXX0sNjE2NzM1KGUpe2UuZXhwb3J0cz1bInJlY3RhbmdsZSJdfSwyNDI4NjcoZSl7ZS5leHBvcnRzPVsicmVncmVzc2lvbiB0cmVuZCJdfSw5OTQ5MTEoZSl7ZS5leHBvcnRzPVsidGFibGUiXX0sNTgyMzM5KGUpe2UuZXhwb3J0cz1bInRleHQiXX0sNTk2ODYoZSl7ZS5leHBvcnRzPVsidGhyZWUgZHJpdmVzIHBhdHRlcm4iXX0sMjU0MTIzKGUpe2UuZXhwb3J0cz1bInRpbWUgY3ljbGVzIl19LDY1NTQ0NyhlKXtlLmV4cG9ydHM9WyJ0cmVuZCBhbmdsZSJdfSw2NDc4MjYoZSl7ZS5leHBvcnRzPVsidHJlbmQtYmFzZWQgZmliIGV4dGVuc2lvbiJdfSw3NDg2MzMoZSl7ZS5leHBvcnRzPVsidHJlbmQtYmFzZWQgZmliIHRpbWUiXX0sMjU3MjI4KGUpe2UuZXhwb3J0cz1bInRyZW5kbGluZSJdfSw0MDkyMzAoZSl7ZS5leHBvcnRzPVsidHJpYW5nbGUiXX0sODEwNDQ4KGUpe2UuZXhwb3J0cz1bInRyaWFuZ2xlIHBhdHRlcm4iXX0sMzI4NTMoZSl7ZS5leHBvcnRzPVsidm9sdW1lIHByb2ZpbGUgZml4ZWQgcmFuZ2UiXX0sNTI5NjQ1KGUpe2UuZXhwb3J0cz1bInZlcnRpY2FsIGxpbmUiXX0sMTU5NzEyKGUpe2UuZXhwb3J0cz1bIiN7Y291bnR9IChwcmljZSwgYmFyKSJdfSw1NTIxNShlKXtlLmV4cG9ydHM9WyJEZWxpc3RlZCJdfSw2ODUxMDQoZSl7ZS5leHBvcnRzPVsiSG9saWRheSJdfSw2Mzg0MDUoZSl7ZS5leHBvcnRzPVsiSW52YWxpZCBzeW1ib2wiXX0sODk3NTkxKGUpe2UuZXhwb3J0cz1bIk92ZXJuaWdodCB2aWEgQk9BVFMiXX0sMjc0NDE1KGUpe2UuZXhwb3J0cz1bIkxvYWRpbmciXX0sNzAyNzg4KGUpewplLmV4cG9ydHM9WyJNYXJrZXQgb3BlbiJdfSw5MTQ1NzIoZSl7ZS5leHBvcnRzPVsiTWFya2V0IGNsb3NlZCJdfSw4Njc0NTUoZSl7ZS5leHBvcnRzPVsiUG9zdC1tYXJrZXQiXX0sOTE4ODQyKGUpe2UuZXhwb3J0cz1bIlByZS1tYXJrZXQiXX0sNjk2ODc5KGUpe2UuZXhwb3J0cz1bIkhvbGlkYXkiXX0sODIwMjE5KGUpe2UuZXhwb3J0cz1bIk92ZXJuaWdodCJdfSw1NDUyMjQoZSl7ZS5leHBvcnRzPVsiT3Zlcm5pZ2h0IHZpYSBCT0FUUyJdfSw0OTM2MzcoZSl7ZS5leHBvcnRzPVsiTWFya2V0IG9wZW4iXX0sODQyMjAzKGUpe2UuZXhwb3J0cz1bIk1hcmtldCBjbG9zZWQiXX0sNjE5MjMzKGUpe2UuZXhwb3J0cz1bIlBvc3QiXX0sNTUxMzgyKGUpe2UuZXhwb3J0cz1bIlBvc3QtbWFya2V0Il19LDk2NjQxMihlKXtlLmV4cG9ydHM9WyJQcmUiXX0sNjM4NzE3KGUpe2UuZXhwb3J0cz1bIlByZS1tYXJrZXQiXX0sODQ2NzkoZSl7ZS5leHBvcnRzPVsiQ3VycmVuY2llcyJdfSw2NDI4NDMoZSl7ZS5leHBvcnRzPVsiQXV0byAoZml0cyBkYXRhIHRvIHNjcmVlbikiXX0sNDcxOTgwKGUpe2UuZXhwb3J0cz1bIkludmVydCBzY2FsZSJdfSwxOTcxMDUoZSl7ZS5leHBvcnRzPVsiSW5kZXhlZCB0byAxMDAiXX0sODg2MDEzKGUpe2UuZXhwb3J0cz1bIkxvZ2FyaXRobWljIl19LDkxMTcxMShlKXtlLmV4cG9ydHM9WyJMYWJlbHMiXX0sOTE2Mjc3KGUpe2UuZXhwb3J0cz1bIk1ldHJpY3MiXX0sMjc4NzUxKGUpe2UuZXhwb3J0cz1bIk1lcmdlIGFsbCBzY2FsZXMgaW50byBvbmUiXX0sODQ3ODM0KGUpe2UuZXhwb3J0cz1bIk5vIG92ZXJsYXBwaW5nIGxhYmVscyJdfSw2NDAwOTYoZSl7ZS5leHBvcnRzPVsiUGVyY2VudCJdfSw3NDkxNzkoZSl7ZS5leHBvcnRzPVsiUmVndWxhciJdfSwzNDI5MTUoZSl7ZS5leHBvcnRzPVsiUmVzZXQgcHJpY2Ugc2NhbGUiXX0sMjEzMDc1KGUpe2UuZXhwb3J0cz1bIlVuaXRzIl19LDQ5NjcwMyhlKXtlLmV4cG9ydHM9WyIyNCBob3VycyJdfSw4NzQyMDAoZSl7ZS5leHBvcnRzPVsiMjRIIl19LDY4OTk2NShlKXtlLmV4cG9ydHM9WyJFVEgiXX0sNDI3OTg1KGUpe2UuZXhwb3J0cz1bIkVsZWN0cm9uaWMgdHJhZGluZyBob3VycyJdfSwxOTgyODkoZSl7ZS5leHBvcnRzPVsiRXh0ZW5kZWQiXX0sNDIyMjUyKGUpe2UuZXhwb3J0cz1bIkV4dGVuZGVkIHRyYWRpbmcgaG91cnMiXX0sMjc5Mzc5KGUpe2UuZXhwb3J0cz1bIk5pZ2h0Il19LDkwMDUxNihlKXtlLmV4cG9ydHM9WyJQT1NUIl19LDg2NzU1NShlKXtlLmV4cG9ydHM9WyJQUkUiXX0sNjcxMjk0KGUpe2UuZXhwb3J0cz1bIlBvc3RtYXJrZXQiXX0sNTcyMDE0KGUpe2UuZXhwb3J0cz1bIlByZW1hcmtldCJdfSw5MjU1MjYoZSl7ZS5leHBvcnRzPVsiUlRIIl19LDQzOTg4MShlKXtlLmV4cG9ydHM9WyJSZWd1bGFyIl19LDg0NTA2NyhlKXtlLmV4cG9ydHM9WyJSZWd1bGFyIHRyYWRpbmcgaG91cnMiXX0sNzM0NzUwKGUpe2UuZXhwb3J0cz1bIk1heSJdfSw5NjA5NjgoZSl7ZS5leHBvcnRzPVsiU3ltYm9sIGRldGFpbHMiXX0sOTg2NDY4KGUpe2UuZXhwb3J0cz1bIlN5bWJvbCBpbmZvIl19LDg4NDY5MyhlKXtlLmV4cG9ydHM9T2JqZWN0LmNyZWF0ZShudWxsKSxlLmV4cG9ydHNbIkF2ZXJhZ2UgZGFpbHkgcmFuZ2Vfc3R1ZHkiXT1bIkF2ZXJhZ2UgZGFpbHkgcmFuZ2UiXSxlLmV4cG9ydHNbIkF2ZXJhZ2UgdHJ1ZSByYW5nZV9zdHVkeSJdPVsiQXZlcmFnZSB0cnVlIHJhbmdlIl0sZS5leHBvcnRzWyJhbmNob3JlZCB2b2x1bWUgcHJvZmlsZV9zdHVkeSJdPVsiYW5jaG9yZWQgdm9sdW1lIHByb2ZpbGUiXSxlLmV4cG9ydHNbIkJvb2sgdmFsdWUgcGVyIHNoYXJlIGVzdGltYXRlIChyb2xsaW5nIG11bHRpLXBlcmlvZClfc3R1ZHkiXT1bIkJvb2sgdmFsdWUgcGVyIHNoYXJlIGVzdGltYXRlIChyb2xsaW5nIG11bHRpLXBlcmlvZCkiXSxlLmV4cG9ydHNbIkJvb2sgdmFsdWUgcGVyIHNoYXJlIGVzdGltYXRlIChyb2xsaW5nKV9zdHVkeSJdPVsiQm9vayB2YWx1ZSBwZXIgc2hhcmUgZXN0aW1hdGUgKHJvbGxpbmcpIl0sZS5leHBvcnRzWyJCb29rIHZhbHVlIHBlciBzaGFyZSBlc3RpbWF0ZV9zdHVkeSJdPVsiQm9vayB2YWx1ZSBwZXIgc2hhcmUgZXN0aW1hdGUiXSxlLmV4cG9ydHNbIkJ1bGwgYmVhciBwb3dlcl9zdHVkeSJdPVsiQnVsbCBiZWFyIHBvd2VyIl0sZS5leHBvcnRzWyJEaXJlY3Rpb25hbCBtb3ZlbWVudCBpbmRleF9zdHVkeSJdPVsiRGlyZWN0aW9uYWwgbW92ZW1lbnQgaW5kZXgiXSxlLmV4cG9ydHNbIkRpdmlkZW5kcyBwZXIgc2hhcmVfc3R1ZHkiXT1bIkRpdmlkZW5kcyBwZXIgc2hhcmUiXSxlLmV4cG9ydHNbIkNhcGl0YWwgZXhwZW5kaXR1cmVzIGVzdGltYXRlIChyb2xsaW5nIG11bHRpLXBlcmlvZClfc3R1ZHkiXT1bIkNhcGl0YWwgZXhwZW5kaXR1cmVzIGVzdGltYXRlIChyb2xsaW5nIG11bHRpLXBlcmlvZCkiXSxlLmV4cG9ydHNbIkNhcGl0YWwgZXhwZW5kaXR1cmVzIGVzdGltYXRlIChyb2xsaW5nKV9zdHVkeSJdPVsiQ2FwaXRhbCBleHBlbmRpdHVyZXMgZXN0aW1hdGUgKHJvbGxpbmcpIl0sZS5leHBvcnRzWyJDYXBpdGFsIGV4cGVuZGl0dXJlcyBlc3RpbWF0ZV9zdHVkeSJdPVsiQ2FwaXRhbCBleHBlbmRpdHVyZXMgZXN0aW1hdGUiXSxlLmV4cG9ydHNbIkNhc2ggZmxvdyBmcm9tIGZpbmFuY2luZyBhY3Rpdml0aWVzX3N0dWR5Il09WyJDYXNoIGZsb3cgZnJvbSBmaW5hbmNpbmcgYWN0aXZpdGllcyJdLGUuZXhwb3J0c1siQ2FzaCBmbG93IGZyb20gaW52ZXN0aW5nIGFjdGl2aXRpZXNfc3R1ZHkiXT1bIkNhc2ggZmxvdyBmcm9tIGludmVzdGluZyBhY3Rpdml0aWVzIl0sZS5leHBvcnRzWyJDYXNoIGZsb3cgZnJvbSBvcGVyYXRpbmcgYWN0aXZpdGllcyBlc3RpbWF0ZSAocm9sbGluZyBtdWx0aS1wZXJpb2QpX3N0dWR5Il09WyJDYXNoIGZsb3cgZnJvbSBvcGVyYXRpbmcgYWN0aXZpdGllcyBlc3RpbWF0ZSAocm9sbGluZyBtdWx0aS1wZXJpb2QpIl0sCmUuZXhwb3J0c1siQ2FzaCBmbG93IGZyb20gb3BlcmF0aW5nIGFjdGl2aXRpZXMgZXN0aW1hdGUgKHJvbGxpbmcpX3N0dWR5Il09WyJDYXNoIGZsb3cgZnJvbSBvcGVyYXRpbmcgYWN0aXZpdGllcyBlc3RpbWF0ZSAocm9sbGluZykiXSxlLmV4cG9ydHNbIkNhc2ggZmxvdyBmcm9tIG9wZXJhdGluZyBhY3Rpdml0aWVzIGVzdGltYXRlX3N0dWR5Il09WyJDYXNoIGZsb3cgZnJvbSBvcGVyYXRpbmcgYWN0aXZpdGllcyBlc3RpbWF0ZSJdLGUuZXhwb3J0c1siQ2FzaCBmbG93IGZyb20gb3BlcmF0aW5nIGFjdGl2aXRpZXNfc3R1ZHkiXT1bIkNhc2ggZmxvdyBmcm9tIG9wZXJhdGluZyBhY3Rpdml0aWVzIl0sZS5leHBvcnRzWyJFQklUIGVzdGltYXRlIChyb2xsaW5nIG11bHRpLXBlcmlvZClfc3R1ZHkiXT1bIkVCSVQgZXN0aW1hdGUgKHJvbGxpbmcgbXVsdGktcGVyaW9kKSJdLGUuZXhwb3J0c1siRUJJVCBlc3RpbWF0ZSAocm9sbGluZylfc3R1ZHkiXT1bIkVCSVQgZXN0aW1hdGUgKHJvbGxpbmcpIl0sZS5leHBvcnRzWyJFQklUIGVzdGltYXRlX3N0dWR5Il09WyJFQklUIGVzdGltYXRlIl0sZS5leHBvcnRzWyJFQklUREEgZXN0aW1hdGUgKHJvbGxpbmcgbXVsdGktcGVyaW9kKV9zdHVkeSJdPVsiRUJJVERBIGVzdGltYXRlIChyb2xsaW5nIG11bHRpLXBlcmlvZCkiXSxlLmV4cG9ydHNbIkVCSVREQSBlc3RpbWF0ZSAocm9sbGluZylfc3R1ZHkiXT1bIkVCSVREQSBlc3RpbWF0ZSAocm9sbGluZykiXSxlLmV4cG9ydHNbIkVCSVREQSBlc3RpbWF0ZV9zdHVkeSJdPVsiRUJJVERBIGVzdGltYXRlIl0sZS5leHBvcnRzWyJFYXJuaW5ncyBwZXIgc2hhcmUgZXN0aW1hdGUgKHJvbGxpbmcgbXVsdGktcGVyaW9kKV9zdHVkeSJdPVsiRWFybmluZ3MgcGVyIHNoYXJlIGVzdGltYXRlIChyb2xsaW5nIG11bHRpLXBlcmlvZCkiXSxlLmV4cG9ydHNbIkVhcm5pbmdzIHBlciBzaGFyZSBlc3RpbWF0ZSAocm9sbGluZylfc3R1ZHkiXT1bIkVhcm5pbmdzIHBlciBzaGFyZSBlc3RpbWF0ZSAocm9sbGluZykiXSxlLmV4cG9ydHNbIkVhcm5pbmdzIHBlciBzaGFyZSBlc3RpbWF0ZV9zdHVkeSJdPVsiRWFybmluZ3MgcGVyIHNoYXJlIGVzdGltYXRlIl0sZS5leHBvcnRzWyJFYXJuaW5ncyBwZXIgc2hhcmVfc3R1ZHkiXT1bIkVhcm5pbmdzIHBlciBzaGFyZSJdLGUuZXhwb3J0c1siRnJlZSBjYXNoIGZsb3cgZXN0aW1hdGUgKHJvbGxpbmcgbXVsdGktcGVyaW9kKV9zdHVkeSJdPVsiRnJlZSBjYXNoIGZsb3cgZXN0aW1hdGUgKHJvbGxpbmcgbXVsdGktcGVyaW9kKSJdLGUuZXhwb3J0c1siRnJlZSBjYXNoIGZsb3cgZXN0aW1hdGUgKHJvbGxpbmcpX3N0dWR5Il09WyJGcmVlIGNhc2ggZmxvdyBlc3RpbWF0ZSAocm9sbGluZykiXSxlLmV4cG9ydHNbIkZyZWUgY2FzaCBmbG93IGVzdGltYXRlX3N0dWR5Il09WyJGcmVlIGNhc2ggZmxvdyBlc3RpbWF0ZSJdLGUuZXhwb3J0c1siZml4ZWQgcmFuZ2Ugdm9sdW1lIHByb2ZpbGVfc3R1ZHkiXT1bImZpeGVkIHJhbmdlIHZvbHVtZSBwcm9maWxlIl0sZS5leHBvcnRzWyJHb29kd2lsbCAobmV0KV9zdHVkeSJdPVsiR29vZHdpbGwgKG5ldCkiXSxlLmV4cG9ydHNbIkljaGltb2t1IGNsb3VkX3N0dWR5Il09WyJJY2hpbW9rdSBjbG91ZCJdLGUuZXhwb3J0c1siTW92aW5nIGF2ZXJhZ2UgY29udmVyZ2VuY2UgZGl2ZXJnZW5jZV9zdHVkeSJdPVsiTW92aW5nIGF2ZXJhZ2UgY29udmVyZ2VuY2UgZGl2ZXJnZW5jZSJdLGUuZXhwb3J0c1siTmV0IGluY29tZSBlc3RpbWF0ZSAocm9sbGluZyBtdWx0aS1wZXJpb2QpX3N0dWR5Il09WyJOZXQgaW5jb21lIGVzdGltYXRlIChyb2xsaW5nIG11bHRpLXBlcmlvZCkiXSxlLmV4cG9ydHNbIk5ldCBpbmNvbWUgZXN0aW1hdGUgKHJvbGxpbmcpX3N0dWR5Il09WyJOZXQgaW5jb21lIGVzdGltYXRlIChyb2xsaW5nKSJdLGUuZXhwb3J0c1siTmV0IGluY29tZSBlc3RpbWF0ZV9zdHVkeSJdPVsiTmV0IGluY29tZSBlc3RpbWF0ZSJdLGUuZXhwb3J0c1siT3AgaW5jb21lX3N0dWR5Il09WyJPcCBpbmNvbWUiXSxlLmV4cG9ydHNbIlNlbGxpbmcvZ2VuZXJhbC9hZG1pbiBleHBlbnNlcyAodG90YWwpX3N0dWR5Il09WyJTZWxsaW5nL2dlbmVyYWwvYWRtaW4gZXhwZW5zZXMgKHRvdGFsKSJdLGUuZXhwb3J0c1siVG90YWwgZGVidCBlc3RpbWF0ZSAocm9sbGluZyBtdWx0aS1wZXJpb2QpX3N0dWR5Il09WyJUb3RhbCBkZWJ0IGVzdGltYXRlIChyb2xsaW5nIG11bHRpLXBlcmlvZCkiXSxlLmV4cG9ydHNbIlRvdGFsIGRlYnQgZXN0aW1hdGUgKHJvbGxpbmcpX3N0dWR5Il09WyJUb3RhbCBkZWJ0IGVzdGltYXRlIChyb2xsaW5nKSJdLGUuZXhwb3J0c1siVG90YWwgZGVidCBlc3RpbWF0ZV9zdHVkeSJdPVsiVG90YWwgZGVidCBlc3RpbWF0ZSJdLGUuZXhwb3J0c1siVG90YWwgcmV2ZW51ZSBlc3RpbWF0ZSAocm9sbGluZyBtdWx0aS1wZXJpb2QpX3N0dWR5Il09WyJUb3RhbCByZXZlbnVlIGVzdGltYXRlIChyb2xsaW5nIG11bHRpLXBlcmlvZCkiXSxlLmV4cG9ydHNbIlRvdGFsIHJldmVudWUgZXN0aW1hdGUgKHJvbGxpbmcpX3N0dWR5Il09WyJUb3RhbCByZXZlbnVlIGVzdGltYXRlIChyb2xsaW5nKSJdLGUuZXhwb3J0c1siVG90YWwgcmV2ZW51ZSBlc3RpbWF0ZV9zdHVkeSJdPVsiVG90YWwgcmV2ZW51ZSBlc3RpbWF0ZSJdLGUuZXhwb3J0c1siVm9sdW1lLXdlaWdodGVkIGF2ZXJhZ2UgcHJpY2Vfc3R1ZHkiXT1bIlZvbHVtZS13ZWlnaHRlZCBhdmVyYWdlIHByaWNlIl0sZS5leHBvcnRzWyJWb2x1bWUtd2VpZ2h0ZWQgbW92aW5nIGF2ZXJhZ2Vfc3R1ZHkiXT1bIlZvbHVtZS13ZWlnaHRlZCBtb3ZpbmcgYXZlcmFnZSJdLGUuZXhwb3J0c1siV2lsbGlhbXMgcGVyY2VudCByYW5nZV9zdHVkeSJdPVsiV2lsbGlhbXMgcGVyY2VudCByYW5nZSJdLGUuZXhwb3J0cy5UZWNobmljYWxzX3N0dWR5PVsiVGVjaG5pY2FscyJdLGUuZXhwb3J0c1siKkFsbCBDYW5kbGVzdGljayBQYXR0ZXJucypfc3R1ZHkiXT1bIipBbGwgQ2FuZGxlc3RpY2sgUGF0dGVybnMqIl0sZS5leHBvcnRzWyIyNC1ob3VyIFZvbHVtZV9zdHVkeSJdPVsiMjQtaG91ciBWb2x1bWUiXSwKZS5leHBvcnRzWyI1MiBXZWVrIEhpZ2gvTG93X3N0dWR5Il09WyI1MiBXZWVrIEhpZ2gvTG93Il0sZS5leHBvcnRzLkFTSV9zdHVkeT1bIkFTSSJdLGUuZXhwb3J0c1siQWJhbmRvbmVkIEJhYnkgLSBCZWFyaXNoX3N0dWR5Il09WyJBYmFuZG9uZWQgQmFieSAtIEJlYXJpc2giXSxlLmV4cG9ydHNbIkFiYW5kb25lZCBCYWJ5IC0gQnVsbGlzaF9zdHVkeSJdPVsiQWJhbmRvbmVkIEJhYnkgLSBCdWxsaXNoIl0sZS5leHBvcnRzWyJBY2NlbGVyYXRvciBPc2NpbGxhdG9yX3N0dWR5Il09WyJBY2NlbGVyYXRvciBPc2NpbGxhdG9yIl0sZS5leHBvcnRzWyJBY2NvdW50cyBwYXlhYmxlX3N0dWR5Il09WyJBY2NvdW50cyBwYXlhYmxlIl0sZS5leHBvcnRzWyJBY2NvdW50cyByZWNlaXZhYmxlIC0gdHJhZGUsIG5ldF9zdHVkeSJdPVsiQWNjb3VudHMgcmVjZWl2YWJsZSAtIHRyYWRlLCBuZXQiXSxlLmV4cG9ydHNbIkFjY291bnRzIHJlY2VpdmFibGVzLCBncm9zc19zdHVkeSJdPVsiQWNjb3VudHMgcmVjZWl2YWJsZXMsIGdyb3NzIl0sZS5leHBvcnRzLkFjY3J1YWxzX3N0dWR5PVsiQWNjcnVhbHMiXSxlLmV4cG9ydHNbIkFjY3J1ZWQgcGF5cm9sbF9zdHVkeSJdPVsiQWNjcnVlZCBwYXlyb2xsIl0sZS5leHBvcnRzWyJBY2N1bXVsYXRlZCBkZXByZWNpYXRpb24sIHRvdGFsX3N0dWR5Il09WyJBY2N1bXVsYXRlZCBkZXByZWNpYXRpb24sIHRvdGFsIl0sZS5leHBvcnRzWyJBY2N1bXVsYXRpb24vRGlzdHJpYnV0aW9uX3N0dWR5Il09WyJBY2N1bXVsYXRpb24vRGlzdHJpYnV0aW9uIl0sZS5leHBvcnRzWyJBY2N1bXVsYXRpdmUgU3dpbmcgSW5kZXhfc3R1ZHkiXT1bIkFjY3VtdWxhdGl2ZSBTd2luZyBJbmRleCJdLGUuZXhwb3J0c1siQWRkaXRpb25hbCBwYWlkLWluIGNhcGl0YWwvQ2FwaXRhbCBzdXJwbHVzX3N0dWR5Il09WyJBZGRpdGlvbmFsIHBhaWQtaW4gY2FwaXRhbC9DYXBpdGFsIHN1cnBsdXMiXSxlLmV4cG9ydHNbIkFkdmFuY2UgRGVjbGluZSBMaW5lX3N0dWR5Il09WyJBZHZhbmNlIERlY2xpbmUgTGluZSJdLGUuZXhwb3J0c1siQWR2YW5jZSBEZWNsaW5lIFJhdGlvX3N0dWR5Il09WyJBZHZhbmNlIERlY2xpbmUgUmF0aW8iXSxlLmV4cG9ydHNbIkFkdmFuY2UvRGVjbGluZSBSYXRpbyAoQmFycylfc3R1ZHkiXT1bIkFkdmFuY2UvRGVjbGluZSBSYXRpbyAoQmFycykiXSxlLmV4cG9ydHNbIkFkdmFuY2UvRGVjbGluZV9zdHVkeSJdPVsiQWR2YW5jZS9EZWNsaW5lIl0sZS5leHBvcnRzWyJBZnRlciB0YXggb3RoZXIgaW5jb21lL2V4cGVuc2Vfc3R1ZHkiXT1bIkFmdGVyIHRheCBvdGhlciBpbmNvbWUvZXhwZW5zZSJdLGUuZXhwb3J0c1siQWxsIENoYXJ0IFBhdHRlcm5zX3N0dWR5Il09WyJBbGwgQ2hhcnQgUGF0dGVybnMiXSxlLmV4cG9ydHNbIkFsdG1hbiBaLXNjb3JlX3N0dWR5Il09WyJBbHRtYW4gWi1zY29yZSJdLGUuZXhwb3J0c1siQW1vcnRpemF0aW9uIG9mIGRlZmVycmVkIGNoYXJnZXNfc3R1ZHkiXT1bIkFtb3J0aXphdGlvbiBvZiBkZWZlcnJlZCBjaGFyZ2VzIl0sZS5leHBvcnRzWyJBbW9ydGl6YXRpb24gb2YgaW50YW5naWJsZXNfc3R1ZHkiXT1bIkFtb3J0aXphdGlvbiBvZiBpbnRhbmdpYmxlcyJdLGUuZXhwb3J0cy5BbW9ydGl6YXRpb25fc3R1ZHk9WyJBbW9ydGl6YXRpb24iXSxlLmV4cG9ydHNbIkFuY2hvcmVkIFZvbHVtZSBQcm9maWxlX3N0dWR5Il09WyJBbmNob3JlZCBWb2x1bWUgUHJvZmlsZSJdLGUuZXhwb3J0c1siQXJuYXVkIExlZ291eCBNb3ZpbmcgQXZlcmFnZV9zdHVkeSJdPVsiQXJuYXVkIExlZ291eCBNb3ZpbmcgQXZlcmFnZSJdLGUuZXhwb3J0cy5Bcm9vbl9zdHVkeT1bIkFyb29uIl0sZS5leHBvcnRzWyJBc3NldCB0dXJub3Zlcl9zdHVkeSJdPVsiQXNzZXQgdHVybm92ZXIiXSxlLmV4cG9ydHNbIkF1dG8gQW5jaG9yZWQgVm9sdW1lIFByb2ZpbGVfc3R1ZHkiXT1bIkF1dG8gQW5jaG9yZWQgVm9sdW1lIFByb2ZpbGUiXSxlLmV4cG9ydHNbIkF1dG8gRmliIEV4dGVuc2lvbl9zdHVkeSJdPVsiQXV0byBGaWIgRXh0ZW5zaW9uIl0sZS5leHBvcnRzWyJBdXRvIEZpYiBSZXRyYWNlbWVudF9zdHVkeSJdPVsiQXV0byBGaWIgUmV0cmFjZW1lbnQiXSxlLmV4cG9ydHNbIkF1dG8gUGl0Y2hmb3JrX3N0dWR5Il09WyJBdXRvIFBpdGNoZm9yayJdLGUuZXhwb3J0c1siQXV0byBUcmVuZGxpbmVzX3N0dWR5Il09WyJBdXRvIFRyZW5kbGluZXMiXSxlLmV4cG9ydHNbIkF2ZXJhZ2UgRGFpbHkgUmFuZ2Vfc3R1ZHkiXT1bIkF2ZXJhZ2UgRGFpbHkgUmFuZ2UiXSxlLmV4cG9ydHNbIkF2ZXJhZ2UgRGF5IFJhbmdlX3N0dWR5Il09WyJBdmVyYWdlIERheSBSYW5nZSJdLGUuZXhwb3J0c1siQXZlcmFnZSBEaXJlY3Rpb25hbCBJbmRleF9zdHVkeSJdPVsiQXZlcmFnZSBEaXJlY3Rpb25hbCBJbmRleCJdLGUuZXhwb3J0c1siQXZlcmFnZSBQcmljZV9zdHVkeSJdPVsiQXZlcmFnZSBQcmljZSJdLGUuZXhwb3J0c1siQXZlcmFnZSBUcnVlIFJhbmdlX3N0dWR5Il09WyJBdmVyYWdlIFRydWUgUmFuZ2UiXSxlLmV4cG9ydHNbIkF2ZXJhZ2UgYmFzaWMgc2hhcmVzIG91dHN0YW5kaW5nX3N0dWR5Il09WyJBdmVyYWdlIGJhc2ljIHNoYXJlcyBvdXRzdGFuZGluZyJdLGUuZXhwb3J0c1siQXdlc29tZSBPc2NpbGxhdG9yX3N0dWR5Il09WyJBd2Vzb21lIE9zY2lsbGF0b3IiXSxlLmV4cG9ydHMuQkJUcmVuZF9zdHVkeT1bIkJCVHJlbmQiXSxlLmV4cG9ydHNbIkJhZCBkZWJ0IC8gRG91YnRmdWwgYWNjb3VudHNfc3R1ZHkiXT1bIkJhZCBkZWJ0IC8gRG91YnRmdWwgYWNjb3VudHMiXSxlLmV4cG9ydHNbIkJhbGFuY2Ugb2YgUG93ZXJfc3R1ZHkiXT1bIkJhbGFuY2Ugb2YgUG93ZXIiXSxlLmV4cG9ydHNbIkJhclVwRG4gU3RyYXRlZ3lfc3R1ZHkiXT1bIkJhclVwRG4gU3RyYXRlZ3kiXSxlLmV4cG9ydHNbIkJhc2ljIEVQU19zdHVkeSJdPVsiQmFzaWMgRVBTIl0sZS5leHBvcnRzWyJCYXNpYyBlYXJuaW5ncyBwZXIgc2hhcmUgKEJhc2ljIEVQUylfc3R1ZHkiXT1bIkJhc2ljIGVhcm5pbmdzIHBlciBzaGFyZSAoQmFzaWMgRVBTKSJdLAplLmV4cG9ydHNbIkJlYXJpc2ggRmxhZyBDaGFydCBQYXR0ZXJuX3N0dWR5Il09WyJCZWFyaXNoIEZsYWcgQ2hhcnQgUGF0dGVybiJdLGUuZXhwb3J0c1siQmVhcmlzaCBQZW5uYW50IENoYXJ0IFBhdHRlcm5fc3R1ZHkiXT1bIkJlYXJpc2ggUGVubmFudCBDaGFydCBQYXR0ZXJuIl0sZS5leHBvcnRzWyJCZW5laXNoIE0tc2NvcmVfc3R1ZHkiXT1bIkJlbmVpc2ggTS1zY29yZSJdLGUuZXhwb3J0c1siQm9sbGluZ2VyIEJhbmRXaWR0aF9zdHVkeSJdPVsiQm9sbGluZ2VyIEJhbmRXaWR0aCJdLGUuZXhwb3J0c1siQm9sbGluZ2VyIEJhbmRzICViX3N0dWR5Il09WyJCb2xsaW5nZXIgQmFuZHMgJWIiXSxlLmV4cG9ydHNbIkJvbGxpbmdlciBCYW5kcyBTdHJhdGVneSBkaXJlY3RlZF9zdHVkeSJdPVsiQm9sbGluZ2VyIEJhbmRzIFN0cmF0ZWd5IGRpcmVjdGVkIl0sZS5leHBvcnRzWyJCb2xsaW5nZXIgQmFuZHMgU3RyYXRlZ3lfc3R1ZHkiXT1bIkJvbGxpbmdlciBCYW5kcyBTdHJhdGVneSJdLGUuZXhwb3J0c1siQm9sbGluZ2VyIEJhbmRzX3N0dWR5Il09WyJCb2xsaW5nZXIgQmFuZHMiXSxlLmV4cG9ydHNbIkJvbGxpbmdlciBCYXJzX3N0dWR5Il09WyJCb2xsaW5nZXIgQmFycyJdLGUuZXhwb3J0c1siQm9vayB2YWx1ZSBwZXIgc2hhcmVfc3R1ZHkiXT1bIkJvb2sgdmFsdWUgcGVyIHNoYXJlIl0sZS5leHBvcnRzWyJCdWxsIEJlYXIgUG93ZXJfc3R1ZHkiXT1bIkJ1bGwgQmVhciBQb3dlciJdLGUuZXhwb3J0c1siQnVsbGlzaCBGbGFnIENoYXJ0IFBhdHRlcm5fc3R1ZHkiXT1bIkJ1bGxpc2ggRmxhZyBDaGFydCBQYXR0ZXJuIl0sZS5leHBvcnRzWyJCdWxsaXNoIFBlbm5hbnQgQ2hhcnQgUGF0dGVybl9zdHVkeSJdPVsiQnVsbGlzaCBQZW5uYW50IENoYXJ0IFBhdHRlcm4iXSxlLmV4cG9ydHNbIkJ1eWJhY2sgeWllbGQgJV9zdHVkeSJdPVsiQnV5YmFjayB5aWVsZCAlIl0sZS5leHBvcnRzWyJDT0dTIHRvIHJldmVudWUgcmF0aW9fc3R1ZHkiXT1bIkNPR1MgdG8gcmV2ZW51ZSByYXRpbyJdLGUuZXhwb3J0cy5DUlNJX3N0dWR5PVsiQ1JTSSJdLGUuZXhwb3J0c1siQ2FwRXggcGVyIHNoYXJlX3N0dWR5Il09WyJDYXBFeCBwZXIgc2hhcmUiXSxlLmV4cG9ydHNbIkNhcGl0YWwgYW5kIG9wZXJhdGluZyBsZWFzZSBvYmxpZ2F0aW9uc19zdHVkeSJdPVsiQ2FwaXRhbCBhbmQgb3BlcmF0aW5nIGxlYXNlIG9ibGlnYXRpb25zIl0sZS5leHBvcnRzWyJDYXBpdGFsIGV4cGVuZGl0dXJlcyAtIGZpeGVkIGFzc2V0c19zdHVkeSJdPVsiQ2FwaXRhbCBleHBlbmRpdHVyZXMgLSBmaXhlZCBhc3NldHMiXSxlLmV4cG9ydHNbIkNhcGl0YWwgZXhwZW5kaXR1cmVzIC0gb3RoZXIgYXNzZXRzX3N0dWR5Il09WyJDYXBpdGFsIGV4cGVuZGl0dXJlcyAtIG90aGVyIGFzc2V0cyJdLGUuZXhwb3J0c1siQ2FwaXRhbCBleHBlbmRpdHVyZXNfc3R1ZHkiXT1bIkNhcGl0YWwgZXhwZW5kaXR1cmVzIl0sZS5leHBvcnRzWyJDYXBpdGFsaXplZCBsZWFzZSBvYmxpZ2F0aW9uc19zdHVkeSJdPVsiQ2FwaXRhbGl6ZWQgbGVhc2Ugb2JsaWdhdGlvbnMiXSxlLmV4cG9ydHNbIkNhc2ggJiBlcXVpdmFsZW50c19zdHVkeSJdPVsiQ2FzaCAmIGVxdWl2YWxlbnRzIl0sZS5leHBvcnRzWyJDYXNoIGFuZCBzaG9ydCB0ZXJtIGludmVzdG1lbnRzX3N0dWR5Il09WyJDYXNoIGFuZCBzaG9ydCB0ZXJtIGludmVzdG1lbnRzIl0sZS5leHBvcnRzWyJDYXNoIGNvbnZlcnNpb24gY3ljbGVfc3R1ZHkiXT1bIkNhc2ggY29udmVyc2lvbiBjeWNsZSJdLGUuZXhwb3J0c1siQ2FzaCBmcm9tIGZpbmFuY2luZyBhY3Rpdml0aWVzX3N0dWR5Il09WyJDYXNoIGZyb20gZmluYW5jaW5nIGFjdGl2aXRpZXMiXSxlLmV4cG9ydHNbIkNhc2ggZnJvbSBpbnZlc3RpbmcgYWN0aXZpdGllc19zdHVkeSJdPVsiQ2FzaCBmcm9tIGludmVzdGluZyBhY3Rpdml0aWVzIl0sZS5leHBvcnRzWyJDYXNoIGZyb20gb3BlcmF0aW5nIGFjdGl2aXRpZXNfc3R1ZHkiXT1bIkNhc2ggZnJvbSBvcGVyYXRpbmcgYWN0aXZpdGllcyJdLGUuZXhwb3J0c1siQ2FzaCBwZXIgc2hhcmVfc3R1ZHkiXT1bIkNhc2ggcGVyIHNoYXJlIl0sZS5leHBvcnRzWyJDYXNoIHRvIGRlYnQgcmF0aW9fc3R1ZHkiXT1bIkNhc2ggdG8gZGVidCByYXRpbyJdLGUuZXhwb3J0c1siQ2hhaWtpbiBNb25leSBGbG93X3N0dWR5Il09WyJDaGFpa2luIE1vbmV5IEZsb3ciXSxlLmV4cG9ydHNbIkNoYWlraW4gT3NjaWxsYXRvcl9zdHVkeSJdPVsiQ2hhaWtpbiBPc2NpbGxhdG9yIl0sZS5leHBvcnRzWyJDaGFpa2luIFZvbGF0aWxpdHlfc3R1ZHkiXT1bIkNoYWlraW4gVm9sYXRpbGl0eSJdLGUuZXhwb3J0c1siQ2hhbmRlIEtyb2xsIFN0b3Bfc3R1ZHkiXT1bIkNoYW5kZSBLcm9sbCBTdG9wIl0sZS5leHBvcnRzWyJDaGFuZGUgTW9tZW50dW0gT3NjaWxsYXRvcl9zdHVkeSJdPVsiQ2hhbmRlIE1vbWVudHVtIE9zY2lsbGF0b3IiXSxlLmV4cG9ydHNbIkNoYW5nZSBpbiBhY2NvdW50cyBwYXlhYmxlX3N0dWR5Il09WyJDaGFuZ2UgaW4gYWNjb3VudHMgcGF5YWJsZSJdLGUuZXhwb3J0c1siQ2hhbmdlIGluIGFjY291bnRzIHJlY2VpdmFibGVfc3R1ZHkiXT1bIkNoYW5nZSBpbiBhY2NvdW50cyByZWNlaXZhYmxlIl0sZS5leHBvcnRzWyJDaGFuZ2UgaW4gYWNjcnVlZCBleHBlbnNlc19zdHVkeSJdPVsiQ2hhbmdlIGluIGFjY3J1ZWQgZXhwZW5zZXMiXSxlLmV4cG9ydHNbIkNoYW5nZSBpbiBpbnZlbnRvcmllc19zdHVkeSJdPVsiQ2hhbmdlIGluIGludmVudG9yaWVzIl0sZS5leHBvcnRzWyJDaGFuZ2UgaW4gb3RoZXIgYXNzZXRzL2xpYWJpbGl0aWVzX3N0dWR5Il09WyJDaGFuZ2UgaW4gb3RoZXIgYXNzZXRzL2xpYWJpbGl0aWVzIl0sZS5leHBvcnRzWyJDaGFuZ2UgaW4gdGF4ZXMgcGF5YWJsZV9zdHVkeSJdPVsiQ2hhbmdlIGluIHRheGVzIHBheWFibGUiXSxlLmV4cG9ydHNbIkNoYW5nZXMgaW4gd29ya2luZyBjYXBpdGFsX3N0dWR5Il09WyJDaGFuZ2VzIGluIHdvcmtpbmcgY2FwaXRhbCJdLGUuZXhwb3J0cy5DaGFubmVsQnJlYWtPdXRTdHJhdGVneV9zdHVkeT1bIkNoYW5uZWxCcmVha091dFN0cmF0ZWd5Il0sCmUuZXhwb3J0c1siQ2hvcCBab25lX3N0dWR5Il09WyJDaG9wIFpvbmUiXSxlLmV4cG9ydHNbIkNob3BwaW5lc3MgSW5kZXhfc3R1ZHkiXT1bIkNob3BwaW5lc3MgSW5kZXgiXSxlLmV4cG9ydHNbIkNvbW1vZGl0eSBDaGFubmVsIEluZGV4X3N0dWR5Il09WyJDb21tb2RpdHkgQ2hhbm5lbCBJbmRleCJdLGUuZXhwb3J0c1siQ29tbW9uIGRpdmlkZW5kcyBwYWlkX3N0dWR5Il09WyJDb21tb24gZGl2aWRlbmRzIHBhaWQiXSxlLmV4cG9ydHNbIkNvbW1vbiBlcXVpdHksIHRvdGFsX3N0dWR5Il09WyJDb21tb24gZXF1aXR5LCB0b3RhbCJdLGUuZXhwb3J0c1siQ29tbW9uIHN0b2NrIHBhci9DYXJyeWluZyB2YWx1ZV9zdHVkeSJdPVsiQ29tbW9uIHN0b2NrIHBhci9DYXJyeWluZyB2YWx1ZSJdLGUuZXhwb3J0cy5Db21wYXJlX3N0dWR5PVsiQ29tcGFyZSJdLGUuZXhwb3J0c1siQ29uZGl0aW9uYWwgRXhwcmVzc2lvbnNfc3R1ZHkiXT1bIkNvbmRpdGlvbmFsIEV4cHJlc3Npb25zIl0sZS5leHBvcnRzWyJDb25ub3JzIFJTSV9zdHVkeSJdPVsiQ29ubm9ycyBSU0kiXSxlLmV4cG9ydHMuQ29ubm9yc1JTSV9zdHVkeT1bIkNvbm5vcnNSU0kiXSxlLmV4cG9ydHNbIkNvbnNlY3V0aXZlIFVwL0Rvd24gU3RyYXRlZ3lfc3R1ZHkiXT1bIkNvbnNlY3V0aXZlIFVwL0Rvd24gU3RyYXRlZ3kiXSxlLmV4cG9ydHNbIkNvcHBvY2sgQ3VydmVfc3R1ZHkiXT1bIkNvcHBvY2sgQ3VydmUiXSxlLmV4cG9ydHNbIkNvcnJlbGF0aW9uIC0gTG9nX3N0dWR5Il09WyJDb3JyZWxhdGlvbiAtIExvZyJdLGUuZXhwb3J0c1siQ29ycmVsYXRpb24gQ29lZmZpY2llbnRfc3R1ZHkiXT1bIkNvcnJlbGF0aW9uIENvZWZmaWNpZW50Il0sZS5leHBvcnRzWyJDb3N0IG9mIGdvb2RzIHNvbGRfc3R1ZHkiXT1bIkNvc3Qgb2YgZ29vZHMgc29sZCJdLGUuZXhwb3J0c1siQ29zdCBvZiBnb29kc19zdHVkeSJdPVsiQ29zdCBvZiBnb29kcyJdLGUuZXhwb3J0c1siQ3J5cHRvIE9wZW4gSW50ZXJlc3Rfc3R1ZHkiXT1bIkNyeXB0byBPcGVuIEludGVyZXN0Il0sZS5leHBvcnRzWyJDdW11bGF0aXZlIFZvbHVtZSBEZWx0YV9zdHVkeSJdPVsiQ3VtdWxhdGl2ZSBWb2x1bWUgRGVsdGEiXSxlLmV4cG9ydHNbIkN1bXVsYXRpdmUgVm9sdW1lIEluZGV4X3N0dWR5Il09WyJDdW11bGF0aXZlIFZvbHVtZSBJbmRleCJdLGUuZXhwb3J0c1siQ3VwIGFuZCBIYW5kbGUgQ2hhcnQgUGF0dGVybl9zdHVkeSJdPVsiQ3VwIGFuZCBIYW5kbGUgQ2hhcnQgUGF0dGVybiJdLGUuZXhwb3J0c1siQ3VycmVudCBwb3J0aW9uIG9mIExUIGRlYnQgYW5kIGNhcGl0YWwgbGVhc2VzX3N0dWR5Il09WyJDdXJyZW50IHBvcnRpb24gb2YgTFQgZGVidCBhbmQgY2FwaXRhbCBsZWFzZXMiXSxlLmV4cG9ydHNbIkN1cnJlbnQgcmF0aW9fc3R1ZHkiXT1bIkN1cnJlbnQgcmF0aW8iXSxlLmV4cG9ydHMuRE1JX3N0dWR5PVsiRE1JIl0sZS5leHBvcnRzWyJEYXJrIENsb3VkIENvdmVyIC0gQmVhcmlzaF9zdHVkeSJdPVsiRGFyayBDbG91ZCBDb3ZlciAtIEJlYXJpc2giXSxlLmV4cG9ydHNbIkRheXMgaW52ZW50b3J5X3N0dWR5Il09WyJEYXlzIGludmVudG9yeSJdLGUuZXhwb3J0c1siRGF5cyBwYXlhYmxlX3N0dWR5Il09WyJEYXlzIHBheWFibGUiXSxlLmV4cG9ydHNbIkRheXMgc2FsZXMgb3V0c3RhbmRpbmdfc3R1ZHkiXT1bIkRheXMgc2FsZXMgb3V0c3RhbmRpbmciXSxlLmV4cG9ydHNbIkRlYnQgdG8gRUJJVERBIHJhdGlvX3N0dWR5Il09WyJEZWJ0IHRvIEVCSVREQSByYXRpbyJdLGUuZXhwb3J0c1siRGVidCB0byBhc3NldHMgcmF0aW9fc3R1ZHkiXT1bIkRlYnQgdG8gYXNzZXRzIHJhdGlvIl0sZS5leHBvcnRzWyJEZWJ0IHRvIGVxdWl0eSByYXRpb19zdHVkeSJdPVsiRGVidCB0byBlcXVpdHkgcmF0aW8iXSxlLmV4cG9ydHNbIkRlYnQgdG8gcmV2ZW51ZSByYXRpb19zdHVkeSJdPVsiRGVidCB0byByZXZlbnVlIHJhdGlvIl0sZS5leHBvcnRzWyJEZWZlcnJlZCBpbmNvbWUsIGN1cnJlbnRfc3R1ZHkiXT1bIkRlZmVycmVkIGluY29tZSwgY3VycmVudCJdLGUuZXhwb3J0c1siRGVmZXJyZWQgaW5jb21lLCBub24tY3VycmVudF9zdHVkeSJdPVsiRGVmZXJyZWQgaW5jb21lLCBub24tY3VycmVudCJdLGUuZXhwb3J0c1siRGVmZXJyZWQgdGF4IGFzc2V0c19zdHVkeSJdPVsiRGVmZXJyZWQgdGF4IGFzc2V0cyJdLGUuZXhwb3J0c1siRGVmZXJyZWQgdGF4IGxpYWJpbGl0aWVzX3N0dWR5Il09WyJEZWZlcnJlZCB0YXggbGlhYmlsaXRpZXMiXSxlLmV4cG9ydHNbIkRlZmVycmVkIHRheGVzIChjYXNoIGZsb3cpX3N0dWR5Il09WyJEZWZlcnJlZCB0YXhlcyAoY2FzaCBmbG93KSJdLGUuZXhwb3J0c1siRGVwcmVjYXRpb24gYW5kIGFtb3J0aXphdGlvbl9zdHVkeSJdPVsiRGVwcmVjYXRpb24gYW5kIGFtb3J0aXphdGlvbiJdLGUuZXhwb3J0c1siRGVwcmVjaWF0aW9uICYgYW1vcnRpemF0aW9uIChjYXNoIGZsb3cpX3N0dWR5Il09WyJEZXByZWNpYXRpb24gJiBhbW9ydGl6YXRpb24gKGNhc2ggZmxvdykiXSxlLmV4cG9ydHNbIkRlcHJlY2lhdGlvbi9kZXBsZXRpb25fc3R1ZHkiXT1bIkRlcHJlY2lhdGlvbi9kZXBsZXRpb24iXSxlLmV4cG9ydHMuRGVwcmVjaWF0aW9uX3N0dWR5PVsiRGVwcmVjaWF0aW9uIl0sZS5leHBvcnRzWyJEZXRyZW5kZWQgUHJpY2UgT3NjaWxsYXRvcl9zdHVkeSJdPVsiRGV0cmVuZGVkIFByaWNlIE9zY2lsbGF0b3IiXSxlLmV4cG9ydHNbIkRpbHV0ZWQgRVBTX3N0dWR5Il09WyJEaWx1dGVkIEVQUyJdLGUuZXhwb3J0c1siRGlsdXRlZCBlYXJuaW5ncyBwZXIgc2hhcmUgKERpbHV0ZWQgRVBTKV9zdHVkeSJdPVsiRGlsdXRlZCBlYXJuaW5ncyBwZXIgc2hhcmUgKERpbHV0ZWQgRVBTKSJdLGUuZXhwb3J0c1siRGlsdXRlZCBuZXQgaW5jb21lIGF2YWlsYWJsZSB0byBjb21tb24gc3RvY2tob2xkZXJzX3N0dWR5Il09WyJEaWx1dGVkIG5ldCBpbmNvbWUgYXZhaWxhYmxlIHRvIGNvbW1vbiBzdG9ja2hvbGRlcnMiXSxlLmV4cG9ydHNbIkRpbHV0ZWQgc2hhcmVzIG91dHN0YW5kaW5nX3N0dWR5Il09WyJEaWx1dGVkIHNoYXJlcyBvdXRzdGFuZGluZyJdLAplLmV4cG9ydHNbIkRpbHV0aW9uIGFkanVzdG1lbnRfc3R1ZHkiXT1bIkRpbHV0aW9uIGFkanVzdG1lbnQiXSxlLmV4cG9ydHNbIkRpcmVjdGlvbmFsIE1vdmVtZW50IEluZGV4X3N0dWR5Il09WyJEaXJlY3Rpb25hbCBNb3ZlbWVudCBJbmRleCJdLGUuZXhwb3J0c1siRGlyZWN0aW9uYWwgTW92ZW1lbnRfc3R1ZHkiXT1bIkRpcmVjdGlvbmFsIE1vdmVtZW50Il0sZS5leHBvcnRzWyJEaXNjb250aW51ZWQgb3BlcmF0aW9uc19zdHVkeSJdPVsiRGlzY29udGludWVkIG9wZXJhdGlvbnMiXSxlLmV4cG9ydHNbIkRpdmVyZ2VuY2UgSW5kaWNhdG9yX3N0dWR5Il09WyJEaXZlcmdlbmNlIEluZGljYXRvciJdLGUuZXhwb3J0c1siRGl2aWRlbmQgcGF5b3V0IHJhdGlvICVfc3R1ZHkiXT1bIkRpdmlkZW5kIHBheW91dCByYXRpbyAlIl0sZS5leHBvcnRzWyJEaXZpZGVuZCB5aWVsZCAlX3N0dWR5Il09WyJEaXZpZGVuZCB5aWVsZCAlIl0sZS5leHBvcnRzWyJEaXZpZGVuZHMgcGF5YWJsZV9zdHVkeSJdPVsiRGl2aWRlbmRzIHBheWFibGUiXSxlLmV4cG9ydHNbIkRpdmlkZW5kcyBwZXIgc2hhcmUgLSBjb21tb24gc3RvY2sgcHJpbWFyeSBpc3N1ZV9zdHVkeSJdPVsiRGl2aWRlbmRzIHBlciBzaGFyZSAtIGNvbW1vbiBzdG9jayBwcmltYXJ5IGlzc3VlIl0sZS5leHBvcnRzWyJEb2ppIFN0YXIgLSBCZWFyaXNoX3N0dWR5Il09WyJEb2ppIFN0YXIgLSBCZWFyaXNoIl0sZS5leHBvcnRzWyJEb2ppIFN0YXIgLSBCdWxsaXNoX3N0dWR5Il09WyJEb2ppIFN0YXIgLSBCdWxsaXNoIl0sZS5leHBvcnRzLkRvamlfc3R1ZHk9WyJEb2ppIl0sZS5leHBvcnRzWyJEb25jaGlhbiBDaGFubmVsc19zdHVkeSJdPVsiRG9uY2hpYW4gQ2hhbm5lbHMiXSxlLmV4cG9ydHNbIkRvdWJsZSBCb3R0b20gQ2hhcnQgUGF0dGVybl9zdHVkeSJdPVsiRG91YmxlIEJvdHRvbSBDaGFydCBQYXR0ZXJuIl0sZS5leHBvcnRzWyJEb3VibGUgRU1BX3N0dWR5Il09WyJEb3VibGUgRU1BIl0sZS5leHBvcnRzWyJEb3VibGUgVG9wIENoYXJ0IFBhdHRlcm5fc3R1ZHkiXT1bIkRvdWJsZSBUb3AgQ2hhcnQgUGF0dGVybiJdLGUuZXhwb3J0c1siRG93bnNpZGUgVGFzdWtpIEdhcCAtIEJlYXJpc2hfc3R1ZHkiXT1bIkRvd25zaWRlIFRhc3VraSBHYXAgLSBCZWFyaXNoIl0sZS5leHBvcnRzWyJEcmFnb25mbHkgRG9qaSAtIEJ1bGxpc2hfc3R1ZHkiXT1bIkRyYWdvbmZseSBEb2ppIC0gQnVsbGlzaCJdLGUuZXhwb3J0c1siRUJJVCBwZXIgc2hhcmVfc3R1ZHkiXT1bIkVCSVQgcGVyIHNoYXJlIl0sZS5leHBvcnRzWyJFQklUREEgbWFyZ2luICVfc3R1ZHkiXT1bIkVCSVREQSBtYXJnaW4gJSJdLGUuZXhwb3J0c1siRUJJVERBIHBlciBzaGFyZV9zdHVkeSJdPVsiRUJJVERBIHBlciBzaGFyZSJdLGUuZXhwb3J0cy5FQklUREFfc3R1ZHk9WyJFQklUREEiXSxlLmV4cG9ydHMuRUJJVF9zdHVkeT1bIkVCSVQiXSxlLmV4cG9ydHNbIkVNQSBDcm9zc19zdHVkeSJdPVsiRU1BIENyb3NzIl0sZS5leHBvcnRzWyJFUFMgYmFzaWMgb25lIHllYXIgZ3Jvd3RoX3N0dWR5Il09WyJFUFMgYmFzaWMgb25lIHllYXIgZ3Jvd3RoIl0sZS5leHBvcnRzWyJFUFMgZGlsdXRlZCBvbmUgeWVhciBncm93dGhfc3R1ZHkiXT1bIkVQUyBkaWx1dGVkIG9uZSB5ZWFyIGdyb3d0aCJdLGUuZXhwb3J0c1siRVBTIGVzdGltYXRlc19zdHVkeSJdPVsiRVBTIGVzdGltYXRlcyJdLGUuZXhwb3J0c1siRWFybmluZ3MgeWllbGRfc3R1ZHkiXT1bIkVhcm5pbmdzIHlpZWxkIl0sZS5leHBvcnRzWyJFYXNlIE9mIE1vdmVtZW50X3N0dWR5Il09WyJFYXNlIE9mIE1vdmVtZW50Il0sZS5leHBvcnRzWyJFYXNlIG9mIE1vdmVtZW50X3N0dWR5Il09WyJFYXNlIG9mIE1vdmVtZW50Il0sZS5leHBvcnRzWyJFZmZlY3RpdmUgaW50ZXJlc3QgcmF0ZSBvbiBkZWJ0ICVfc3R1ZHkiXT1bIkVmZmVjdGl2ZSBpbnRlcmVzdCByYXRlIG9uIGRlYnQgJSJdLGUuZXhwb3J0c1siRWxkZXIgRm9yY2UgSW5kZXhfc3R1ZHkiXT1bIkVsZGVyIEZvcmNlIEluZGV4Il0sZS5leHBvcnRzWyJFbGRlcidzIEZvcmNlIEluZGV4X3N0dWR5Il09WyJFbGRlcidzIEZvcmNlIEluZGV4Il0sZS5leHBvcnRzWyJFbGRlcnMgRm9yY2UgSW5kZXhfc3R1ZHkiXT1bIkVsZGVycyBGb3JjZSBJbmRleCJdLGUuZXhwb3J0c1siRWxsaW90dCBXYXZlIENoYXJ0IFBhdHRlcm5fc3R1ZHkiXT1bIkVsbGlvdHQgV2F2ZSBDaGFydCBQYXR0ZXJuIl0sZS5leHBvcnRzWyJFbmd1bGZpbmcgLSBCZWFyaXNoX3N0dWR5Il09WyJFbmd1bGZpbmcgLSBCZWFyaXNoIl0sZS5leHBvcnRzWyJFbmd1bGZpbmcgLSBCdWxsaXNoX3N0dWR5Il09WyJFbmd1bGZpbmcgLSBCdWxsaXNoIl0sZS5leHBvcnRzWyJFbnRlcnByaXNlIHZhbHVlIHRvIEVCSVQgcmF0aW9fc3R1ZHkiXT1bIkVudGVycHJpc2UgdmFsdWUgdG8gRUJJVCByYXRpbyJdLGUuZXhwb3J0c1siRW50ZXJwcmlzZSB2YWx1ZSB0byBFQklUREEgcmF0aW9fc3R1ZHkiXT1bIkVudGVycHJpc2UgdmFsdWUgdG8gRUJJVERBIHJhdGlvIl0sZS5leHBvcnRzWyJFbnRlcnByaXNlIHZhbHVlIHRvIHJldmVudWUgcmF0aW9fc3R1ZHkiXT1bIkVudGVycHJpc2UgdmFsdWUgdG8gcmV2ZW51ZSByYXRpbyJdLGUuZXhwb3J0c1siRW50ZXJwcmlzZSB2YWx1ZV9zdHVkeSJdPVsiRW50ZXJwcmlzZSB2YWx1ZSJdLGUuZXhwb3J0cy5FbnZlbG9wZV9zdHVkeT1bIkVudmVsb3BlIl0sZS5leHBvcnRzLkVudmVsb3Blc19zdHVkeT1bIkVudmVsb3BlcyJdLGUuZXhwb3J0c1siRXF1aXR5IGluIGVhcm5pbmdzX3N0dWR5Il09WyJFcXVpdHkgaW4gZWFybmluZ3MiXSxlLmV4cG9ydHNbIkVxdWl0eSB0byBhc3NldHMgcmF0aW9fc3R1ZHkiXT1bIkVxdWl0eSB0byBhc3NldHMgcmF0aW8iXSxlLmV4cG9ydHNbIkV2ZW5pbmcgRG9qaSBTdGFyIC0gQmVhcmlzaF9zdHVkeSJdPVsiRXZlbmluZyBEb2ppIFN0YXIgLSBCZWFyaXNoIl0sZS5leHBvcnRzWyJFdmVuaW5nIFN0YXIgLSBCZWFyaXNoX3N0dWR5Il09WyJFdmVuaW5nIFN0YXIgLSBCZWFyaXNoIl0sCmUuZXhwb3J0c1siRmFsbGluZyBUaHJlZSBNZXRob2RzIC0gQmVhcmlzaF9zdHVkeSJdPVsiRmFsbGluZyBUaHJlZSBNZXRob2RzIC0gQmVhcmlzaCJdLGUuZXhwb3J0c1siRmFsbGluZyBXZWRnZSBDaGFydCBQYXR0ZXJuX3N0dWR5Il09WyJGYWxsaW5nIFdlZGdlIENoYXJ0IFBhdHRlcm4iXSxlLmV4cG9ydHNbIkZhbGxpbmcgV2luZG93IC0gQmVhcmlzaF9zdHVkeSJdPVsiRmFsbGluZyBXaW5kb3cgLSBCZWFyaXNoIl0sZS5leHBvcnRzWyJGaW5hbmNpbmcgYWN0aXZpdGllcyDigJMgb3RoZXIgc291cmNlc19zdHVkeSJdPVsiRmluYW5jaW5nIGFjdGl2aXRpZXMg4oCTIG90aGVyIHNvdXJjZXMiXSxlLmV4cG9ydHNbIkZpbmFuY2luZyBhY3Rpdml0aWVzIOKAkyBvdGhlciB1c2VzX3N0dWR5Il09WyJGaW5hbmNpbmcgYWN0aXZpdGllcyDigJMgb3RoZXIgdXNlcyJdLGUuZXhwb3J0c1siRmlzaGVyIFRyYW5zZm9ybV9zdHVkeSJdPVsiRmlzaGVyIFRyYW5zZm9ybSJdLGUuZXhwb3J0c1siRml4ZWQgUmFuZ2UgVm9sdW1lIFByb2ZpbGVfc3R1ZHkiXT1bIkZpeGVkIFJhbmdlIFZvbHVtZSBQcm9maWxlIl0sZS5leHBvcnRzWyJGaXhlZCBSYW5nZV9zdHVkeSJdPVsiRml4ZWQgUmFuZ2UiXSxlLmV4cG9ydHNbIkZsb2F0IHNoYXJlcyBvdXRzdGFuZGluZ19zdHVkeSJdPVsiRmxvYXQgc2hhcmVzIG91dHN0YW5kaW5nIl0sZS5leHBvcnRzWyJGcmVlIGNhc2ggZmxvdyBtYXJnaW4gJV9zdHVkeSJdPVsiRnJlZSBjYXNoIGZsb3cgbWFyZ2luICUiXSxlLmV4cG9ydHNbIkZyZWUgY2FzaCBmbG93IHBlciBzaGFyZV9zdHVkeSJdPVsiRnJlZSBjYXNoIGZsb3cgcGVyIHNoYXJlIl0sZS5leHBvcnRzWyJGcmVlIGNhc2ggZmxvd19zdHVkeSJdPVsiRnJlZSBjYXNoIGZsb3ciXSxlLmV4cG9ydHNbIkZyZWUgZmxvYXRfc3R1ZHkiXT1bIkZyZWUgZmxvYXQiXSxlLmV4cG9ydHNbIkZ1bG1lciBIIGZhY3Rvcl9zdHVkeSJdPVsiRnVsbWVyIEggZmFjdG9yIl0sZS5leHBvcnRzWyJGdW5kaW5nIFJhdGVfc3R1ZHkiXT1bIkZ1bmRpbmcgUmF0ZSJdLGUuZXhwb3J0c1siRnVuZHMgZnJvbSBvcGVyYXRpb25zX3N0dWR5Il09WyJGdW5kcyBmcm9tIG9wZXJhdGlvbnMiXSxlLmV4cG9ydHMuR2Fwc19zdHVkeT1bIkdhcHMiXSxlLmV4cG9ydHNbIkdvb2R3aWxsIHRvIGFzc2V0cyByYXRpb19zdHVkeSJdPVsiR29vZHdpbGwgdG8gYXNzZXRzIHJhdGlvIl0sZS5leHBvcnRzWyJHb29kd2lsbCwgbmV0X3N0dWR5Il09WyJHb29kd2lsbCwgbmV0Il0sZS5leHBvcnRzWyJHcmFoYW0ncyBudW1iZXJfc3R1ZHkiXT1bIkdyYWhhbSdzIG51bWJlciJdLGUuZXhwb3J0c1siR3JhdmVzdG9uZSBEb2ppIC0gQmVhcmlzaF9zdHVkeSJdPVsiR3JhdmVzdG9uZSBEb2ppIC0gQmVhcmlzaCJdLGUuZXhwb3J0c1siR3JlZWR5IFN0cmF0ZWd5X3N0dWR5Il09WyJHcmVlZHkgU3RyYXRlZ3kiXSxlLmV4cG9ydHNbIkdyb3NzIG1hcmdpbiAlX3N0dWR5Il09WyJHcm9zcyBtYXJnaW4gJSJdLGUuZXhwb3J0c1siR3Jvc3MgcHJvZml0IHRvIGFzc2V0cyByYXRpb19zdHVkeSJdPVsiR3Jvc3MgcHJvZml0IHRvIGFzc2V0cyByYXRpbyJdLGUuZXhwb3J0c1siR3Jvc3MgcHJvZml0X3N0dWR5Il09WyJHcm9zcyBwcm9maXQiXSxlLmV4cG9ydHNbIkdyb3NzIHByb3BlcnR5L3BsYW50L2VxdWlwbWVudF9zdHVkeSJdPVsiR3Jvc3MgcHJvcGVydHkvcGxhbnQvZXF1aXBtZW50Il0sZS5leHBvcnRzWyJHdXBweSBNdWx0aXBsZSBNb3ZpbmcgQXZlcmFnZV9zdHVkeSJdPVsiR3VwcHkgTXVsdGlwbGUgTW92aW5nIEF2ZXJhZ2UiXSxlLmV4cG9ydHNbIkhhbW1lciAtIEJ1bGxpc2hfc3R1ZHkiXT1bIkhhbW1lciAtIEJ1bGxpc2giXSxlLmV4cG9ydHNbIkhhbmdpbmcgTWFuIC0gQmVhcmlzaF9zdHVkeSJdPVsiSGFuZ2luZyBNYW4gLSBCZWFyaXNoIl0sZS5leHBvcnRzWyJIYXJhbWkgLSBCZWFyaXNoX3N0dWR5Il09WyJIYXJhbWkgLSBCZWFyaXNoIl0sZS5leHBvcnRzWyJIYXJhbWkgLSBCdWxsaXNoX3N0dWR5Il09WyJIYXJhbWkgLSBCdWxsaXNoIl0sZS5leHBvcnRzWyJIYXJhbWkgQ3Jvc3MgLSBCZWFyaXNoX3N0dWR5Il09WyJIYXJhbWkgQ3Jvc3MgLSBCZWFyaXNoIl0sZS5leHBvcnRzWyJIYXJhbWkgQ3Jvc3MgLSBCdWxsaXNoX3N0dWR5Il09WyJIYXJhbWkgQ3Jvc3MgLSBCdWxsaXNoIl0sZS5leHBvcnRzWyJIZWFkIGFuZCBTaG91bGRlcnMgQ2hhcnQgUGF0dGVybl9zdHVkeSJdPVsiSGVhZCBhbmQgU2hvdWxkZXJzIENoYXJ0IFBhdHRlcm4iXSxlLmV4cG9ydHNbIkhpc3RvcmljYWwgVm9sYXRpbGl0eV9zdHVkeSJdPVsiSGlzdG9yaWNhbCBWb2xhdGlsaXR5Il0sZS5leHBvcnRzWyJIdWxsIE1vdmluZyBBdmVyYWdlX3N0dWR5Il09WyJIdWxsIE1vdmluZyBBdmVyYWdlIl0sZS5leHBvcnRzWyJJY2hpbW9rdSBDbG91ZF9zdHVkeSJdPVsiSWNoaW1va3UgQ2xvdWQiXSxlLmV4cG9ydHMuSWNoaW1va3Vfc3R1ZHk9WyJJY2hpbW9rdSJdLGUuZXhwb3J0cy5JbXBhaXJtZW50c19zdHVkeT1bIkltcGFpcm1lbnRzIl0sZS5leHBvcnRzWyJJblNpZGUgQmFyIFN0cmF0ZWd5X3N0dWR5Il09WyJJblNpZGUgQmFyIFN0cmF0ZWd5Il0sZS5leHBvcnRzWyJJbmNvbWUgVGF4IENyZWRpdHNfc3R1ZHkiXT1bIkluY29tZSBUYXggQ3JlZGl0cyJdLGUuZXhwb3J0c1siSW5jb21lIFRheCwgY3VycmVudCAtIGZvcmVpZ25fc3R1ZHkiXT1bIkluY29tZSBUYXgsIGN1cnJlbnQgLSBmb3JlaWduIl0sZS5leHBvcnRzWyJJbmNvbWUgdGF4IHBheWFibGVfc3R1ZHkiXT1bIkluY29tZSB0YXggcGF5YWJsZSJdLGUuZXhwb3J0c1siSW5jb21lIHRheCwgY3VycmVudCAtIGRvbWVzdGljX3N0dWR5Il09WyJJbmNvbWUgdGF4LCBjdXJyZW50IC0gZG9tZXN0aWMiXSxlLmV4cG9ydHNbIkluY29tZSB0YXgsIGN1cnJlbnRfc3R1ZHkiXT1bIkluY29tZSB0YXgsIGN1cnJlbnQiXSxlLmV4cG9ydHNbIkluY29tZSB0YXgsIGRlZmVycmVkIC0gZG9tZXN0aWNfc3R1ZHkiXT1bIkluY29tZSB0YXgsIGRlZmVycmVkIC0gZG9tZXN0aWMiXSwKZS5leHBvcnRzWyJJbmNvbWUgdGF4LCBkZWZlcnJlZCAtIGZvcmVpZ25fc3R1ZHkiXT1bIkluY29tZSB0YXgsIGRlZmVycmVkIC0gZm9yZWlnbiJdLGUuZXhwb3J0c1siSW5jb21lIHRheCwgZGVmZXJyZWRfc3R1ZHkiXT1bIkluY29tZSB0YXgsIGRlZmVycmVkIl0sZS5leHBvcnRzWyJJbnRlcmVzdCBjYXBpdGFsaXplZF9zdHVkeSJdPVsiSW50ZXJlc3QgY2FwaXRhbGl6ZWQiXSxlLmV4cG9ydHNbIkludGVyZXN0IGNvdmVyYWdlX3N0dWR5Il09WyJJbnRlcmVzdCBjb3ZlcmFnZSJdLGUuZXhwb3J0c1siSW50ZXJlc3QgZXhwZW5zZSBvbiBkZWJ0X3N0dWR5Il09WyJJbnRlcmVzdCBleHBlbnNlIG9uIGRlYnQiXSxlLmV4cG9ydHNbIkludGVyZXN0IGV4cGVuc2UsIG5ldCBvZiBpbnRlcmVzdCBjYXBpdGFsaXplZF9zdHVkeSJdPVsiSW50ZXJlc3QgZXhwZW5zZSwgbmV0IG9mIGludGVyZXN0IGNhcGl0YWxpemVkIl0sZS5leHBvcnRzWyJJbnZlbnRvcmllcyAtIGZpbmlzaGVkIGdvb2RzX3N0dWR5Il09WyJJbnZlbnRvcmllcyAtIGZpbmlzaGVkIGdvb2RzIl0sZS5leHBvcnRzWyJJbnZlbnRvcmllcyAtIHByb2dyZXNzIHBheW1lbnRzICYgb3RoZXJfc3R1ZHkiXT1bIkludmVudG9yaWVzIC0gcHJvZ3Jlc3MgcGF5bWVudHMgJiBvdGhlciJdLGUuZXhwb3J0c1siSW52ZW50b3JpZXMgLSByYXcgbWF0ZXJpYWxzX3N0dWR5Il09WyJJbnZlbnRvcmllcyAtIHJhdyBtYXRlcmlhbHMiXSxlLmV4cG9ydHNbIkludmVudG9yaWVzIC0gd29yayBpbiBwcm9ncmVzc19zdHVkeSJdPVsiSW52ZW50b3JpZXMgLSB3b3JrIGluIHByb2dyZXNzIl0sZS5leHBvcnRzWyJJbnZlbnRvcnkgdG8gcmV2ZW51ZSByYXRpb19zdHVkeSJdPVsiSW52ZW50b3J5IHRvIHJldmVudWUgcmF0aW8iXSxlLmV4cG9ydHNbIkludmVudG9yeSB0dXJub3Zlcl9zdHVkeSJdPVsiSW52ZW50b3J5IHR1cm5vdmVyIl0sZS5leHBvcnRzWyJJbnZlcnRlZCBDdXAgYW5kIEhhbmRsZSBDaGFydCBQYXR0ZXJuX3N0dWR5Il09WyJJbnZlcnRlZCBDdXAgYW5kIEhhbmRsZSBDaGFydCBQYXR0ZXJuIl0sZS5leHBvcnRzWyJJbnZlcnRlZCBIYW1tZXIgLSBCdWxsaXNoX3N0dWR5Il09WyJJbnZlcnRlZCBIYW1tZXIgLSBCdWxsaXNoIl0sZS5leHBvcnRzWyJJbnZlcnRlZCBIZWFkIGFuZCBTaG91bGRlcnMgQ2hhcnQgUGF0dGVybl9zdHVkeSJdPVsiSW52ZXJ0ZWQgSGVhZCBhbmQgU2hvdWxkZXJzIENoYXJ0IFBhdHRlcm4iXSxlLmV4cG9ydHNbIkludmVzdGluZyBhY3Rpdml0aWVzIOKAkyBvdGhlciBzb3VyY2VzX3N0dWR5Il09WyJJbnZlc3RpbmcgYWN0aXZpdGllcyDigJMgb3RoZXIgc291cmNlcyJdLGUuZXhwb3J0c1siSW52ZXN0aW5nIGFjdGl2aXRpZXMg4oCTIG90aGVyIHVzZXNfc3R1ZHkiXT1bIkludmVzdGluZyBhY3Rpdml0aWVzIOKAkyBvdGhlciB1c2VzIl0sZS5leHBvcnRzWyJJbnZlc3RtZW50cyBpbiB1bmNvbnNvbGlkYXRlZCBzdWJzaWRpYXJpZXNfc3R1ZHkiXT1bIkludmVzdG1lbnRzIGluIHVuY29uc29saWRhdGVkIHN1YnNpZGlhcmllcyJdLGUuZXhwb3J0c1siSXNzdWFuY2Ugb2YgbG9uZyB0ZXJtIGRlYnRfc3R1ZHkiXT1bIklzc3VhbmNlIG9mIGxvbmcgdGVybSBkZWJ0Il0sZS5leHBvcnRzWyJJc3N1YW5jZS9yZXRpcmVtZW50IG9mIGRlYnQsIG5ldF9zdHVkeSJdPVsiSXNzdWFuY2UvcmV0aXJlbWVudCBvZiBkZWJ0LCBuZXQiXSxlLmV4cG9ydHNbIklzc3VhbmNlL3JldGlyZW1lbnQgb2YgbG9uZyB0ZXJtIGRlYnRfc3R1ZHkiXT1bIklzc3VhbmNlL3JldGlyZW1lbnQgb2YgbG9uZyB0ZXJtIGRlYnQiXSxlLmV4cG9ydHNbIklzc3VhbmNlL3JldGlyZW1lbnQgb2Ygb3RoZXIgZGVidF9zdHVkeSJdPVsiSXNzdWFuY2UvcmV0aXJlbWVudCBvZiBvdGhlciBkZWJ0Il0sZS5leHBvcnRzWyJJc3N1YW5jZS9yZXRpcmVtZW50IG9mIHNob3J0IHRlcm0gZGVidF9zdHVkeSJdPVsiSXNzdWFuY2UvcmV0aXJlbWVudCBvZiBzaG9ydCB0ZXJtIGRlYnQiXSxlLmV4cG9ydHNbIklzc3VhbmNlL3JldGlyZW1lbnQgb2Ygc3RvY2ssIG5ldF9zdHVkeSJdPVsiSXNzdWFuY2UvcmV0aXJlbWVudCBvZiBzdG9jaywgbmV0Il0sZS5leHBvcnRzWyJLWiBpbmRleF9zdHVkeSJdPVsiS1ogaW5kZXgiXSxlLmV4cG9ydHNbIktlbHRuZXIgQ2hhbm5lbCBTdHJhdGVneV9zdHVkeSJdPVsiS2VsdG5lciBDaGFubmVsIFN0cmF0ZWd5Il0sZS5leHBvcnRzWyJLZWx0bmVyIENoYW5uZWxzIFN0cmF0ZWd5X3N0dWR5Il09WyJLZWx0bmVyIENoYW5uZWxzIFN0cmF0ZWd5Il0sZS5leHBvcnRzWyJLZWx0bmVyIENoYW5uZWxzX3N0dWR5Il09WyJLZWx0bmVyIENoYW5uZWxzIl0sZS5leHBvcnRzWyJLZXkgc3RhdHNfc3R1ZHkiXT1bIktleSBzdGF0cyJdLGUuZXhwb3J0c1siS2lja2luZyAtIEJlYXJpc2hfc3R1ZHkiXT1bIktpY2tpbmcgLSBCZWFyaXNoIl0sZS5leHBvcnRzWyJLaWNraW5nIC0gQnVsbGlzaF9zdHVkeSJdPVsiS2lja2luZyAtIEJ1bGxpc2giXSxlLmV4cG9ydHNbIktsaW5nZXIgT3NjaWxsYXRvcl9zdHVkeSJdPVsiS2xpbmdlciBPc2NpbGxhdG9yIl0sZS5leHBvcnRzWyJLbm93IFN1cmUgVGhpbmdfc3R1ZHkiXT1bIktub3cgU3VyZSBUaGluZyJdLGUuZXhwb3J0c1siTGVhc3QgU3F1YXJlcyBNb3ZpbmcgQXZlcmFnZV9zdHVkeSJdPVsiTGVhc3QgU3F1YXJlcyBNb3ZpbmcgQXZlcmFnZSJdLGUuZXhwb3J0c1siTGVnYWwgY2xhaW0gZXhwZW5zZV9zdHVkeSJdPVsiTGVnYWwgY2xhaW0gZXhwZW5zZSJdLGUuZXhwb3J0c1siTGluZWFyIFJlZ3Jlc3Npb24gQ2hhbm5lbF9zdHVkeSJdPVsiTGluZWFyIFJlZ3Jlc3Npb24gQ2hhbm5lbCJdLGUuZXhwb3J0c1siTGluZWFyIFJlZ3Jlc3Npb24gQ3VydmVfc3R1ZHkiXT1bIkxpbmVhciBSZWdyZXNzaW9uIEN1cnZlIl0sZS5leHBvcnRzWyJMaW5lYXIgUmVncmVzc2lvbiBTbG9wZV9zdHVkeSJdPVsiTGluZWFyIFJlZ3Jlc3Npb24gU2xvcGUiXSxlLmV4cG9ydHNbIkxpbmVhciBSZWdyZXNzaW9uX3N0dWR5Il09WyJMaW5lYXIgUmVncmVzc2lvbiJdLGUuZXhwb3J0cy5MaXF1aWRhdGlvbnNfc3R1ZHk9WyJMaXF1aWRhdGlvbnMiXSwKZS5leHBvcnRzWyJMaXF1aWRpdHkgcmF0aW9zX3N0dWR5Il09WyJMaXF1aWRpdHkgcmF0aW9zIl0sZS5leHBvcnRzWyJMb25nIExvd2VyIFNoYWRvdyAtIEJ1bGxpc2hfc3R1ZHkiXT1bIkxvbmcgTG93ZXIgU2hhZG93IC0gQnVsbGlzaCJdLGUuZXhwb3J0c1siTG9uZyBTaG9ydCBBY2NvdW50cyAlX3N0dWR5Il09WyJMb25nIFNob3J0IEFjY291bnRzICUiXSxlLmV4cG9ydHNbIkxvbmcgVXBwZXIgU2hhZG93IC0gQmVhcmlzaF9zdHVkeSJdPVsiTG9uZyBVcHBlciBTaGFkb3cgLSBCZWFyaXNoIl0sZS5leHBvcnRzWyJMb25nIHRlcm0gZGVidCBleGNsLiBsZWFzZSBsaWFiaWxpdGllc19zdHVkeSJdPVsiTG9uZyB0ZXJtIGRlYnQgZXhjbC4gbGVhc2UgbGlhYmlsaXRpZXMiXSxlLmV4cG9ydHNbIkxvbmcgdGVybSBkZWJ0IHRvIHRvdGFsIGFzc2V0cyByYXRpb19zdHVkeSJdPVsiTG9uZyB0ZXJtIGRlYnQgdG8gdG90YWwgYXNzZXRzIHJhdGlvIl0sZS5leHBvcnRzWyJMb25nIHRlcm0gZGVidCB0byB0b3RhbCBlcXVpdHkgcmF0aW9fc3R1ZHkiXT1bIkxvbmcgdGVybSBkZWJ0IHRvIHRvdGFsIGVxdWl0eSByYXRpbyJdLGUuZXhwb3J0c1siTG9uZyB0ZXJtIGRlYnRfc3R1ZHkiXT1bIkxvbmcgdGVybSBkZWJ0Il0sZS5leHBvcnRzWyJMb25nIHRlcm0gaW52ZXN0bWVudHNfc3R1ZHkiXT1bIkxvbmcgdGVybSBpbnZlc3RtZW50cyJdLGUuZXhwb3J0c1siTG9uZy9TaG9ydCBSYXRpbyBBY2NvdW50c19zdHVkeSJdPVsiTG9uZy9TaG9ydCBSYXRpbyBBY2NvdW50cyJdLGUuZXhwb3J0c1siTUEgQ3Jvc3Nfc3R1ZHkiXT1bIk1BIENyb3NzIl0sZS5leHBvcnRzWyJNQSB3aXRoIEVNQSBDcm9zc19zdHVkeSJdPVsiTUEgd2l0aCBFTUEgQ3Jvc3MiXSxlLmV4cG9ydHNbIk1BL0VNQSBDcm9zc19zdHVkeSJdPVsiTUEvRU1BIENyb3NzIl0sZS5leHBvcnRzWyJNQUNEIFN0cmF0ZWd5X3N0dWR5Il09WyJNQUNEIFN0cmF0ZWd5Il0sZS5leHBvcnRzLk1BQ0Rfc3R1ZHk9WyJNQUNEIl0sZS5leHBvcnRzWyJNYWpvcml0eSBSdWxlX3N0dWR5Il09WyJNYWpvcml0eSBSdWxlIl0sZS5leHBvcnRzWyJNYXJrZXQgY2FwaXRhbGl6YXRpb25fc3R1ZHkiXT1bIk1hcmtldCBjYXBpdGFsaXphdGlvbiJdLGUuZXhwb3J0c1siTWFydWJvenUgQmxhY2sgLSBCZWFyaXNoX3N0dWR5Il09WyJNYXJ1Ym96dSBCbGFjayAtIEJlYXJpc2giXSxlLmV4cG9ydHNbIk1hcnVib3p1IFdoaXRlIC0gQnVsbGlzaF9zdHVkeSJdPVsiTWFydWJvenUgV2hpdGUgLSBCdWxsaXNoIl0sZS5leHBvcnRzWyJNYXNzIEluZGV4X3N0dWR5Il09WyJNYXNzIEluZGV4Il0sZS5leHBvcnRzWyJNY0dpbmxleSBEeW5hbWljX3N0dWR5Il09WyJNY0dpbmxleSBEeW5hbWljIl0sZS5leHBvcnRzWyJNZWRpYW4gUHJpY2Vfc3R1ZHkiXT1bIk1lZGlhbiBQcmljZSJdLGUuZXhwb3J0cy5NZWRpYW5fc3R1ZHk9WyJNZWRpYW4iXSxlLmV4cG9ydHNbIk1pbm9yaXR5IGludGVyZXN0X3N0dWR5Il09WyJNaW5vcml0eSBpbnRlcmVzdCJdLGUuZXhwb3J0c1siTWlzY2VsbGFuZW91cyBub24tb3BlcmF0aW5nIGV4cGVuc2Vfc3R1ZHkiXT1bIk1pc2NlbGxhbmVvdXMgbm9uLW9wZXJhdGluZyBleHBlbnNlIl0sZS5leHBvcnRzWyJNb21lbnR1bSBTdHJhdGVneV9zdHVkeSJdPVsiTW9tZW50dW0gU3RyYXRlZ3kiXSxlLmV4cG9ydHMuTW9tZW50dW1fc3R1ZHk9WyJNb21lbnR1bSJdLGUuZXhwb3J0c1siTW9uZXkgRmxvdyBJbmRleF9zdHVkeSJdPVsiTW9uZXkgRmxvdyBJbmRleCJdLGUuZXhwb3J0c1siTW9uZXkgRmxvd19zdHVkeSJdPVsiTW9uZXkgRmxvdyJdLGUuZXhwb3J0c1siTW9vbiBQaGFzZXNfc3R1ZHkiXT1bIk1vb24gUGhhc2VzIl0sZS5leHBvcnRzWyJNb3JuaW5nIERvamkgU3RhciAtIEJ1bGxpc2hfc3R1ZHkiXT1bIk1vcm5pbmcgRG9qaSBTdGFyIC0gQnVsbGlzaCJdLGUuZXhwb3J0c1siTW9ybmluZyBTdGFyIC0gQnVsbGlzaF9zdHVkeSJdPVsiTW9ybmluZyBTdGFyIC0gQnVsbGlzaCJdLGUuZXhwb3J0c1siTW92aW5nIEF2ZXJhZ2UgQWRhcHRpdmVfc3R1ZHkiXT1bIk1vdmluZyBBdmVyYWdlIEFkYXB0aXZlIl0sZS5leHBvcnRzWyJNb3ZpbmcgQXZlcmFnZSBDaGFubmVsX3N0dWR5Il09WyJNb3ZpbmcgQXZlcmFnZSBDaGFubmVsIl0sZS5leHBvcnRzWyJNb3ZpbmcgQXZlcmFnZSBDb252ZXJnZW5jZSBEaXZlcmdlbmNlX3N0dWR5Il09WyJNb3ZpbmcgQXZlcmFnZSBDb252ZXJnZW5jZSBEaXZlcmdlbmNlIl0sZS5leHBvcnRzWyJNb3ZpbmcgQXZlcmFnZSBDb252ZXJnZW5jZS9EaXZlcmdlbmNlX3N0dWR5Il09WyJNb3ZpbmcgQXZlcmFnZSBDb252ZXJnZW5jZS9EaXZlcmdlbmNlIl0sZS5leHBvcnRzWyJNb3ZpbmcgQXZlcmFnZSBEb3VibGVfc3R1ZHkiXT1bIk1vdmluZyBBdmVyYWdlIERvdWJsZSJdLGUuZXhwb3J0c1siTW92aW5nIEF2ZXJhZ2UgRXhwb25lbnRpYWxfc3R1ZHkiXT1bIk1vdmluZyBBdmVyYWdlIEV4cG9uZW50aWFsIl0sZS5leHBvcnRzWyJNb3ZpbmcgQXZlcmFnZSBIYW1taW5nX3N0dWR5Il09WyJNb3ZpbmcgQXZlcmFnZSBIYW1taW5nIl0sZS5leHBvcnRzWyJNb3ZpbmcgQXZlcmFnZSBNb2RpZmllZF9zdHVkeSJdPVsiTW92aW5nIEF2ZXJhZ2UgTW9kaWZpZWQiXSxlLmV4cG9ydHNbIk1vdmluZyBBdmVyYWdlIE11bHRpcGxlX3N0dWR5Il09WyJNb3ZpbmcgQXZlcmFnZSBNdWx0aXBsZSJdLGUuZXhwb3J0c1siTW92aW5nIEF2ZXJhZ2UgUmliYm9uX3N0dWR5Il09WyJNb3ZpbmcgQXZlcmFnZSBSaWJib24iXSxlLmV4cG9ydHNbIk1vdmluZyBBdmVyYWdlIFNpbXBsZV9zdHVkeSJdPVsiTW92aW5nIEF2ZXJhZ2UgU2ltcGxlIl0sZS5leHBvcnRzWyJNb3ZpbmcgQXZlcmFnZSBUcmlwbGVfc3R1ZHkiXT1bIk1vdmluZyBBdmVyYWdlIFRyaXBsZSJdLGUuZXhwb3J0c1siTW92aW5nIEF2ZXJhZ2UgV2VpZ2h0ZWRfc3R1ZHkiXT1bIk1vdmluZyBBdmVyYWdlIFdlaWdodGVkIl0sZS5leHBvcnRzWyJNb3ZpbmcgQXZlcmFnZV9zdHVkeSJdPVsiTW92aW5nIEF2ZXJhZ2UiXSxlLmV4cG9ydHNbIk1vdmluZ0F2ZyBDcm9zc19zdHVkeSJdPVsiTW92aW5nQXZnIENyb3NzIl0sCmUuZXhwb3J0c1siTW92aW5nQXZnMkxpbmUgQ3Jvc3Nfc3R1ZHkiXT1bIk1vdmluZ0F2ZzJMaW5lIENyb3NzIl0sZS5leHBvcnRzWyJNdWx0aS1UaW1lIFBlcmlvZCBDaGFydHNfc3R1ZHkiXT1bIk11bHRpLVRpbWUgUGVyaW9kIENoYXJ0cyJdLGUuZXhwb3J0c1siTmV0IFZvbHVtZV9zdHVkeSJdPVsiTmV0IFZvbHVtZSJdLGUuZXhwb3J0c1siTmV0IGN1cnJlbnQgYXNzZXQgdmFsdWUgcGVyIHNoYXJlX3N0dWR5Il09WyJOZXQgY3VycmVudCBhc3NldCB2YWx1ZSBwZXIgc2hhcmUiXSxlLmV4cG9ydHNbIk5ldCBkZWJ0X3N0dWR5Il09WyJOZXQgZGVidCJdLGUuZXhwb3J0c1siTmV0IGluY29tZSAoY2FzaCBmbG93KV9zdHVkeSJdPVsiTmV0IGluY29tZSAoY2FzaCBmbG93KSJdLGUuZXhwb3J0c1siTmV0IGluY29tZSBiZWZvcmUgZGlzY29udGludWVkIG9wZXJhdGlvbnNfc3R1ZHkiXT1bIk5ldCBpbmNvbWUgYmVmb3JlIGRpc2NvbnRpbnVlZCBvcGVyYXRpb25zIl0sZS5leHBvcnRzWyJOZXQgaW5jb21lIHBlciBlbXBsb3llZV9zdHVkeSJdPVsiTmV0IGluY29tZSBwZXIgZW1wbG95ZWUiXSxlLmV4cG9ydHNbIk5ldCBpbmNvbWVfc3R1ZHkiXT1bIk5ldCBpbmNvbWUiXSxlLmV4cG9ydHNbIk5ldCBpbnRhbmdpYmxlIGFzc2V0c19zdHVkeSJdPVsiTmV0IGludGFuZ2libGUgYXNzZXRzIl0sZS5leHBvcnRzWyJOZXQgbWFyZ2luICVfc3R1ZHkiXT1bIk5ldCBtYXJnaW4gJSJdLGUuZXhwb3J0c1siTmV0IHByb3BlcnR5L3BsYW50L2VxdWlwbWVudF9zdHVkeSJdPVsiTmV0IHByb3BlcnR5L3BsYW50L2VxdWlwbWVudCJdLGUuZXhwb3J0c1siTm9uLWNhc2ggaXRlbXNfc3R1ZHkiXT1bIk5vbi1jYXNoIGl0ZW1zIl0sZS5leHBvcnRzWyJOb24tY29udHJvbGxpbmcvbWlub3JpdHkgaW50ZXJlc3Rfc3R1ZHkiXT1bIk5vbi1jb250cm9sbGluZy9taW5vcml0eSBpbnRlcmVzdCJdLGUuZXhwb3J0c1siTm9uLW9wZXJhdGluZyBpbmNvbWUsIGV4Y2wuIGludGVyZXN0IGV4cGVuc2VzX3N0dWR5Il09WyJOb24tb3BlcmF0aW5nIGluY29tZSwgZXhjbC4gaW50ZXJlc3QgZXhwZW5zZXMiXSxlLmV4cG9ydHNbIk5vbi1vcGVyYXRpbmcgaW5jb21lLCB0b3RhbF9zdHVkeSJdPVsiTm9uLW9wZXJhdGluZyBpbmNvbWUsIHRvdGFsIl0sZS5leHBvcnRzWyJOb24tb3BlcmF0aW5nIGludGVyZXN0IGluY29tZV9zdHVkeSJdPVsiTm9uLW9wZXJhdGluZyBpbnRlcmVzdCBpbmNvbWUiXSxlLmV4cG9ydHNbIk5vdGUgcmVjZWl2YWJsZSAtIGxvbmcgdGVybV9zdHVkeSJdPVsiTm90ZSByZWNlaXZhYmxlIC0gbG9uZyB0ZXJtIl0sZS5leHBvcnRzWyJOb3RlcyBwYXlhYmxlX3N0dWR5Il09WyJOb3RlcyBwYXlhYmxlIl0sZS5leHBvcnRzWyJOdW1iZXIgb2YgZW1wbG95ZWVzX3N0dWR5Il09WyJOdW1iZXIgb2YgZW1wbG95ZWVzIl0sZS5leHBvcnRzWyJOdW1iZXIgb2Ygc2hhcmVob2xkZXJzX3N0dWR5Il09WyJOdW1iZXIgb2Ygc2hhcmVob2xkZXJzIl0sZS5leHBvcnRzWyJPbiBCYWxhbmNlIFZvbHVtZV9zdHVkeSJdPVsiT24gQmFsYW5jZSBWb2x1bWUiXSxlLmV4cG9ydHNbIk9uIE5lY2sgLSBCZWFyaXNoX3N0dWR5Il09WyJPbiBOZWNrIC0gQmVhcmlzaCJdLGUuZXhwb3J0c1siT3BlbiBJbnRlcmVzdF9zdHVkeSJdPVsiT3BlbiBJbnRlcmVzdCJdLGUuZXhwb3J0c1siT3BlcmF0aW5nIGNhc2ggZmxvdyBwZXIgc2hhcmVfc3R1ZHkiXT1bIk9wZXJhdGluZyBjYXNoIGZsb3cgcGVyIHNoYXJlIl0sZS5leHBvcnRzWyJPcGVyYXRpbmcgZWFybmluZ3MgeWllbGQgJV9zdHVkeSJdPVsiT3BlcmF0aW5nIGVhcm5pbmdzIHlpZWxkICUiXSxlLmV4cG9ydHNbIk9wZXJhdGluZyBleHBlbnNlcyAoZXhjbC4gQ09HUylfc3R1ZHkiXT1bIk9wZXJhdGluZyBleHBlbnNlcyAoZXhjbC4gQ09HUykiXSxlLmV4cG9ydHNbIk9wZXJhdGluZyBpbmNvbWVfc3R1ZHkiXT1bIk9wZXJhdGluZyBpbmNvbWUiXSxlLmV4cG9ydHNbIk9wZXJhdGluZyBsZWFzZSBsaWFiaWxpdGllc19zdHVkeSJdPVsiT3BlcmF0aW5nIGxlYXNlIGxpYWJpbGl0aWVzIl0sZS5leHBvcnRzWyJPcGVyYXRpbmcgbWFyZ2luICVfc3R1ZHkiXT1bIk9wZXJhdGluZyBtYXJnaW4gJSJdLGUuZXhwb3J0c1siT3RoZXIgQ09HU19zdHVkeSJdPVsiT3RoZXIgQ09HUyJdLGUuZXhwb3J0c1siT3RoZXIgY29tbW9uIGVxdWl0eV9zdHVkeSJdPVsiT3RoZXIgY29tbW9uIGVxdWl0eSJdLGUuZXhwb3J0c1siT3RoZXIgY29zdCBvZiBnb29kcyBzb2xkX3N0dWR5Il09WyJPdGhlciBjb3N0IG9mIGdvb2RzIHNvbGQiXSxlLmV4cG9ydHNbIk90aGVyIGN1cnJlbnQgYXNzZXRzLCB0b3RhbF9zdHVkeSJdPVsiT3RoZXIgY3VycmVudCBhc3NldHMsIHRvdGFsIl0sZS5leHBvcnRzWyJPdGhlciBjdXJyZW50IGxpYWJpbGl0aWVzX3N0dWR5Il09WyJPdGhlciBjdXJyZW50IGxpYWJpbGl0aWVzIl0sZS5leHBvcnRzWyJPdGhlciBleGNlcHRpb25hbCBjaGFyZ2VzX3N0dWR5Il09WyJPdGhlciBleGNlcHRpb25hbCBjaGFyZ2VzIl0sZS5leHBvcnRzWyJPdGhlciBmaW5hbmNpbmcgY2FzaCBmbG93IGl0ZW1zLCB0b3RhbF9zdHVkeSJdPVsiT3RoZXIgZmluYW5jaW5nIGNhc2ggZmxvdyBpdGVtcywgdG90YWwiXSxlLmV4cG9ydHNbIk90aGVyIGludGFuZ2libGVzLCBuZXRfc3R1ZHkiXT1bIk90aGVyIGludGFuZ2libGVzLCBuZXQiXSxlLmV4cG9ydHNbIk90aGVyIGludmVzdGluZyBjYXNoIGZsb3cgaXRlbXMsIHRvdGFsX3N0dWR5Il09WyJPdGhlciBpbnZlc3RpbmcgY2FzaCBmbG93IGl0ZW1zLCB0b3RhbCJdLGUuZXhwb3J0c1siT3RoZXIgaW52ZXN0bWVudHNfc3R1ZHkiXT1bIk90aGVyIGludmVzdG1lbnRzIl0sZS5leHBvcnRzWyJPdGhlciBsaWFiaWxpdGllcywgdG90YWxfc3R1ZHkiXT1bIk90aGVyIGxpYWJpbGl0aWVzLCB0b3RhbCJdLGUuZXhwb3J0c1siT3RoZXIgbG9uZyB0ZXJtIGFzc2V0cywgdG90YWxfc3R1ZHkiXT1bIk90aGVyIGxvbmcgdGVybSBhc3NldHMsIHRvdGFsIl0sCmUuZXhwb3J0c1siT3RoZXIgbm9uLWN1cnJlbnQgbGlhYmlsaXRpZXMsIHRvdGFsX3N0dWR5Il09WyJPdGhlciBub24tY3VycmVudCBsaWFiaWxpdGllcywgdG90YWwiXSxlLmV4cG9ydHNbIk90aGVyIG9wZXJhdGluZyBleHBlbnNlcywgdG90YWxfc3R1ZHkiXT1bIk90aGVyIG9wZXJhdGluZyBleHBlbnNlcywgdG90YWwiXSxlLmV4cG9ydHNbIk90aGVyIHJlY2VpdmFibGVzX3N0dWR5Il09WyJPdGhlciByZWNlaXZhYmxlcyJdLGUuZXhwb3J0c1siT3RoZXIgc2hvcnQgdGVybSBkZWJ0X3N0dWR5Il09WyJPdGhlciBzaG9ydCB0ZXJtIGRlYnQiXSxlLmV4cG9ydHNbIk91dFNpZGUgQmFyIFN0cmF0ZWd5X3N0dWR5Il09WyJPdXRTaWRlIEJhciBTdHJhdGVneSJdLGUuZXhwb3J0cy5PdmVybGF5X3N0dWR5PVsiT3ZlcmxheSJdLGUuZXhwb3J0c1siUEVHIHJhdGlvX3N0dWR5Il09WyJQRUcgcmF0aW8iXSxlLmV4cG9ydHNbIlBhaWQgaW4gY2FwaXRhbF9zdHVkeSJdPVsiUGFpZCBpbiBjYXBpdGFsIl0sZS5leHBvcnRzWyJQYXJhYm9saWMgU0FSIFN0cmF0ZWd5X3N0dWR5Il09WyJQYXJhYm9saWMgU0FSIFN0cmF0ZWd5Il0sZS5leHBvcnRzWyJQYXJhYm9saWMgU0FSX3N0dWR5Il09WyJQYXJhYm9saWMgU0FSIl0sZS5leHBvcnRzWyJQZXIgc2hhcmUgbWV0cmljc19zdHVkeSJdPVsiUGVyIHNoYXJlIG1ldHJpY3MiXSxlLmV4cG9ydHMuUGVyZm9ybWFuY2Vfc3R1ZHk9WyJQZXJmb3JtYW5jZSJdLGUuZXhwb3J0c1siUGVyaW9kaWMgVm9sdW1lIFByb2ZpbGVfc3R1ZHkiXT1bIlBlcmlvZGljIFZvbHVtZSBQcm9maWxlIl0sZS5leHBvcnRzWyJQaWVyY2luZyAtIEJ1bGxpc2hfc3R1ZHkiXT1bIlBpZXJjaW5nIC0gQnVsbGlzaCJdLGUuZXhwb3J0c1siUGlvdHJvc2tpIEYtc2NvcmVfc3R1ZHkiXT1bIlBpb3Ryb3NraSBGLXNjb3JlIl0sZS5leHBvcnRzWyJQaXZvdCBFeHRlbnNpb24gU3RyYXRlZ3lfc3R1ZHkiXT1bIlBpdm90IEV4dGVuc2lvbiBTdHJhdGVneSJdLGUuZXhwb3J0c1siUGl2b3QgUG9pbnRzIEhpZ2ggTG93X3N0dWR5Il09WyJQaXZvdCBQb2ludHMgSGlnaCBMb3ciXSxlLmV4cG9ydHNbIlBpdm90IFBvaW50cyBTdGFuZGFyZF9zdHVkeSJdPVsiUGl2b3QgUG9pbnRzIFN0YW5kYXJkIl0sZS5leHBvcnRzWyJQaXZvdCBSZXZlcnNhbCBTdHJhdGVneV9zdHVkeSJdPVsiUGl2b3QgUmV2ZXJzYWwgU3RyYXRlZ3kiXSxlLmV4cG9ydHNbIlByZWZlcnJlZCBkaXZpZGVuZHMgcGFpZF9zdHVkeSJdPVsiUHJlZmVycmVkIGRpdmlkZW5kcyBwYWlkIl0sZS5leHBvcnRzWyJQcmVmZXJyZWQgZGl2aWRlbmRzX3N0dWR5Il09WyJQcmVmZXJyZWQgZGl2aWRlbmRzIl0sZS5leHBvcnRzWyJQcmVmZXJyZWQgc3RvY2ssIGNhcnJ5aW5nIHZhbHVlX3N0dWR5Il09WyJQcmVmZXJyZWQgc3RvY2ssIGNhcnJ5aW5nIHZhbHVlIl0sZS5leHBvcnRzWyJQcmVwYWlkIGV4cGVuc2VzX3N0dWR5Il09WyJQcmVwYWlkIGV4cGVuc2VzIl0sZS5leHBvcnRzWyJQcmV0YXggZXF1aXR5IGluIGVhcm5pbmdzX3N0dWR5Il09WyJQcmV0YXggZXF1aXR5IGluIGVhcm5pbmdzIl0sZS5leHBvcnRzWyJQcmV0YXggaW5jb21lX3N0dWR5Il09WyJQcmV0YXggaW5jb21lIl0sZS5leHBvcnRzWyJQcmljZSBDaGFubmVsIFN0cmF0ZWd5X3N0dWR5Il09WyJQcmljZSBDaGFubmVsIFN0cmF0ZWd5Il0sZS5leHBvcnRzWyJQcmljZSBDaGFubmVsX3N0dWR5Il09WyJQcmljZSBDaGFubmVsIl0sZS5leHBvcnRzWyJQcmljZSBPc2NpbGxhdG9yX3N0dWR5Il09WyJQcmljZSBPc2NpbGxhdG9yIl0sZS5leHBvcnRzWyJQcmljZSBUYXJnZXRfc3R1ZHkiXT1bIlByaWNlIFRhcmdldCJdLGUuZXhwb3J0c1siUHJpY2UgVm9sdW1lIFRyZW5kX3N0dWR5Il09WyJQcmljZSBWb2x1bWUgVHJlbmQiXSxlLmV4cG9ydHNbIlByaWNlIGVhcm5pbmdzIHJhdGlvIGZvcndhcmRfc3R1ZHkiXT1bIlByaWNlIGVhcm5pbmdzIHJhdGlvIGZvcndhcmQiXSxlLmV4cG9ydHNbIlByaWNlIHNhbGVzIHJhdGlvIGZvcndhcmRfc3R1ZHkiXT1bIlByaWNlIHNhbGVzIHJhdGlvIGZvcndhcmQiXSxlLmV4cG9ydHNbIlByaWNlIHRvIGJvb2sgcmF0aW9fc3R1ZHkiXT1bIlByaWNlIHRvIGJvb2sgcmF0aW8iXSxlLmV4cG9ydHNbIlByaWNlIHRvIGNhc2ggZmxvdyByYXRpb19zdHVkeSJdPVsiUHJpY2UgdG8gY2FzaCBmbG93IHJhdGlvIl0sZS5leHBvcnRzWyJQcmljZSB0byBlYXJuaW5ncyByYXRpb19zdHVkeSJdPVsiUHJpY2UgdG8gZWFybmluZ3MgcmF0aW8iXSxlLmV4cG9ydHNbIlByaWNlIHRvIGZyZWUgY2FzaCBmbG93IHJhdGlvX3N0dWR5Il09WyJQcmljZSB0byBmcmVlIGNhc2ggZmxvdyByYXRpbyJdLGUuZXhwb3J0c1siUHJpY2UgdG8gc2FsZXMgcmF0aW9fc3R1ZHkiXT1bIlByaWNlIHRvIHNhbGVzIHJhdGlvIl0sZS5leHBvcnRzWyJQcmljZSB0byB0YW5naWJsZSBib29rIHJhdGlvX3N0dWR5Il09WyJQcmljZSB0byB0YW5naWJsZSBib29rIHJhdGlvIl0sZS5leHBvcnRzWyJQcm9maXRhYmlsaXR5IHJhdGlvc19zdHVkeSJdPVsiUHJvZml0YWJpbGl0eSByYXRpb3MiXSxlLmV4cG9ydHNbIlByb3Zpc2lvbiBmb3Igcmlza3MgJiBjaGFyZ2Vfc3R1ZHkiXT1bIlByb3Zpc2lvbiBmb3Igcmlza3MgJiBjaGFyZ2UiXSxlLmV4cG9ydHNbIlB1cmNoYXNlIG9mIGludmVzdG1lbnRzX3N0dWR5Il09WyJQdXJjaGFzZSBvZiBpbnZlc3RtZW50cyJdLGUuZXhwb3J0c1siUHVyY2hhc2UvYWNxdWlzaXRpb24gb2YgYnVzaW5lc3Nfc3R1ZHkiXT1bIlB1cmNoYXNlL2FjcXVpc2l0aW9uIG9mIGJ1c2luZXNzIl0sZS5leHBvcnRzWyJQdXJjaGFzZS9zYWxlIG9mIGJ1c2luZXNzLCBuZXRfc3R1ZHkiXT1bIlB1cmNoYXNlL3NhbGUgb2YgYnVzaW5lc3MsIG5ldCJdLGUuZXhwb3J0c1siUHVyY2hhc2Uvc2FsZSBvZiBpbnZlc3RtZW50cywgbmV0X3N0dWR5Il09WyJQdXJjaGFzZS9zYWxlIG9mIGludmVzdG1lbnRzLCBuZXQiXSxlLmV4cG9ydHNbIlF1YWxpdHkgcmF0aW9fc3R1ZHkiXT1bIlF1YWxpdHkgcmF0aW8iXSxlLmV4cG9ydHNbIlF1aWNrIHJhdGlvX3N0dWR5Il09WyJRdWljayByYXRpbyJdLAplLmV4cG9ydHNbIlJDSSBSaWJib25fc3R1ZHkiXT1bIlJDSSBSaWJib24iXSxlLmV4cG9ydHNbIlJTSSBEaXZlcmdlbmNlIEluZGljYXRvcl9zdHVkeSJdPVsiUlNJIERpdmVyZ2VuY2UgSW5kaWNhdG9yIl0sZS5leHBvcnRzWyJSU0kgU3RyYXRlZ3lfc3R1ZHkiXT1bIlJTSSBTdHJhdGVneSJdLGUuZXhwb3J0c1siUmFuayBDb3JyZWxhdGlvbiBJbmRleF9zdHVkeSJdPVsiUmFuayBDb3JyZWxhdGlvbiBJbmRleCJdLGUuZXhwb3J0c1siUmF0ZSBPZiBDaGFuZ2Vfc3R1ZHkiXT1bIlJhdGUgT2YgQ2hhbmdlIl0sZS5leHBvcnRzWyJSZWN0YW5nbGUgQ2hhcnQgUGF0dGVybl9zdHVkeSJdPVsiUmVjdGFuZ2xlIENoYXJ0IFBhdHRlcm4iXSxlLmV4cG9ydHNbIlJlZHVjdGlvbiBvZiBsb25nIHRlcm0gZGVidF9zdHVkeSJdPVsiUmVkdWN0aW9uIG9mIGxvbmcgdGVybSBkZWJ0Il0sZS5leHBvcnRzWyJSZWxhdGl2ZSBTdHJlbmd0aCBJbmRleF9zdHVkeSJdPVsiUmVsYXRpdmUgU3RyZW5ndGggSW5kZXgiXSxlLmV4cG9ydHNbIlJlbGF0aXZlIFZpZ29yIEluZGV4X3N0dWR5Il09WyJSZWxhdGl2ZSBWaWdvciBJbmRleCJdLGUuZXhwb3J0c1siUmVsYXRpdmUgVm9sYXRpbGl0eSBJbmRleF9zdHVkeSJdPVsiUmVsYXRpdmUgVm9sYXRpbGl0eSBJbmRleCJdLGUuZXhwb3J0c1siUmVsYXRpdmUgVm9sdW1lIGF0IFRpbWVfc3R1ZHkiXT1bIlJlbGF0aXZlIFZvbHVtZSBhdCBUaW1lIl0sZS5leHBvcnRzWyJSZXB1cmNoYXNlIG9mIGNvbW1vbiAmIHByZWZlcnJlZCBzdG9ja19zdHVkeSJdPVsiUmVwdXJjaGFzZSBvZiBjb21tb24gJiBwcmVmZXJyZWQgc3RvY2siXSxlLmV4cG9ydHNbIlJlc2VhcmNoICYgZGV2ZWxvcG1lbnQgdG8gcmV2ZW51ZSByYXRpb19zdHVkeSJdPVsiUmVzZWFyY2ggJiBkZXZlbG9wbWVudCB0byByZXZlbnVlIHJhdGlvIl0sZS5leHBvcnRzWyJSZXNlYXJjaCAmIGRldmVsb3BtZW50X3N0dWR5Il09WyJSZXNlYXJjaCAmIGRldmVsb3BtZW50Il0sZS5leHBvcnRzWyJSZXN0cnVjdHVyaW5nIGNoYXJnZV9zdHVkeSJdPVsiUmVzdHJ1Y3R1cmluZyBjaGFyZ2UiXSxlLmV4cG9ydHNbIlJldGFpbmVkIGVhcm5pbmdzX3N0dWR5Il09WyJSZXRhaW5lZCBlYXJuaW5ncyJdLGUuZXhwb3J0c1siUmV0dXJuIG9uIGFzc2V0cyAlX3N0dWR5Il09WyJSZXR1cm4gb24gYXNzZXRzICUiXSxlLmV4cG9ydHNbIlJldHVybiBvbiBlcXVpdHkgJV9zdHVkeSJdPVsiUmV0dXJuIG9uIGVxdWl0eSAlIl0sZS5leHBvcnRzWyJSZXR1cm4gb24gZXF1aXR5IGFkanVzdGVkIHRvIGJvb2sgdmFsdWUgJV9zdHVkeSJdPVsiUmV0dXJuIG9uIGVxdWl0eSBhZGp1c3RlZCB0byBib29rIHZhbHVlICUiXSxlLmV4cG9ydHNbIlJldHVybiBvbiBpbnZlc3RlZCBjYXBpdGFsICVfc3R1ZHkiXT1bIlJldHVybiBvbiBpbnZlc3RlZCBjYXBpdGFsICUiXSxlLmV4cG9ydHNbIlJldHVybiBvbiB0YW5naWJsZSBhc3NldHMgJV9zdHVkeSJdPVsiUmV0dXJuIG9uIHRhbmdpYmxlIGFzc2V0cyAlIl0sZS5leHBvcnRzWyJSZXR1cm4gb24gdGFuZ2libGUgZXF1aXR5ICVfc3R1ZHkiXT1bIlJldHVybiBvbiB0YW5naWJsZSBlcXVpdHkgJSJdLGUuZXhwb3J0c1siUmV2ZW51ZSBlc3RpbWF0ZXNfc3R1ZHkiXT1bIlJldmVudWUgZXN0aW1hdGVzIl0sZS5leHBvcnRzWyJSZXZlbnVlIG9uZSB5ZWFyIGdyb3d0aF9zdHVkeSJdPVsiUmV2ZW51ZSBvbmUgeWVhciBncm93dGgiXSxlLmV4cG9ydHNbIlJldmVudWUgcGVyIGVtcGxveWVlX3N0dWR5Il09WyJSZXZlbnVlIHBlciBlbXBsb3llZSJdLGUuZXhwb3J0c1siUmV2ZW51ZSBwZXIgc2hhcmVfc3R1ZHkiXT1bIlJldmVudWUgcGVyIHNoYXJlIl0sZS5leHBvcnRzWyJSaXNpbmcgVGhyZWUgTWV0aG9kcyAtIEJ1bGxpc2hfc3R1ZHkiXT1bIlJpc2luZyBUaHJlZSBNZXRob2RzIC0gQnVsbGlzaCJdLGUuZXhwb3J0c1siUmlzaW5nIFdlZGdlIENoYXJ0IFBhdHRlcm5fc3R1ZHkiXT1bIlJpc2luZyBXZWRnZSBDaGFydCBQYXR0ZXJuIl0sZS5leHBvcnRzWyJSaXNpbmcgV2luZG93IC0gQnVsbGlzaF9zdHVkeSJdPVsiUmlzaW5nIFdpbmRvdyAtIEJ1bGxpc2giXSxlLmV4cG9ydHNbIlJvYiBCb29rZXIgLSBBRFggQnJlYWtvdXRfc3R1ZHkiXT1bIlJvYiBCb29rZXIgLSBBRFggQnJlYWtvdXQiXSxlLmV4cG9ydHNbIlJvYiBCb29rZXIgLSBJbnRyYWRheSBQaXZvdCBQb2ludHNfc3R1ZHkiXT1bIlJvYiBCb29rZXIgLSBJbnRyYWRheSBQaXZvdCBQb2ludHMiXSxlLmV4cG9ydHNbIlJvYiBCb29rZXIgLSBLbm94dmlsbGUgRGl2ZXJnZW5jZV9zdHVkeSJdPVsiUm9iIEJvb2tlciAtIEtub3h2aWxsZSBEaXZlcmdlbmNlIl0sZS5leHBvcnRzWyJSb2IgQm9va2VyIC0gTWlzc2VkIFBpdm90IFBvaW50c19zdHVkeSJdPVsiUm9iIEJvb2tlciAtIE1pc3NlZCBQaXZvdCBQb2ludHMiXSxlLmV4cG9ydHNbIlJvYiBCb29rZXIgLSBSZXZlcnNhbF9zdHVkeSJdPVsiUm9iIEJvb2tlciAtIFJldmVyc2FsIl0sZS5leHBvcnRzWyJSb2IgQm9va2VyIC0gWml2IEdob3N0IFBpdm90c19zdHVkeSJdPVsiUm9iIEJvb2tlciAtIFppdiBHaG9zdCBQaXZvdHMiXSxlLmV4cG9ydHNbIlNNSSBFcmdvZGljIEluZGljYXRvci9Pc2NpbGxhdG9yX3N0dWR5Il09WyJTTUkgRXJnb2RpYyBJbmRpY2F0b3IvT3NjaWxsYXRvciJdLGUuZXhwb3J0c1siU01JIEVyZ29kaWMgSW5kaWNhdG9yX3N0dWR5Il09WyJTTUkgRXJnb2RpYyBJbmRpY2F0b3IiXSxlLmV4cG9ydHNbIlNNSSBFcmdvZGljIE9zY2lsbGF0b3Jfc3R1ZHkiXT1bIlNNSSBFcmdvZGljIE9zY2lsbGF0b3IiXSxlLmV4cG9ydHNbIlNhbGUgb2YgY29tbW9uICYgcHJlZmVycmVkIHN0b2NrX3N0dWR5Il09WyJTYWxlIG9mIGNvbW1vbiAmIHByZWZlcnJlZCBzdG9jayJdLGUuZXhwb3J0c1siU2FsZSBvZiBmaXhlZCBhc3NldHMgJiBidXNpbmVzc2VzX3N0dWR5Il09WyJTYWxlIG9mIGZpeGVkIGFzc2V0cyAmIGJ1c2luZXNzZXMiXSxlLmV4cG9ydHNbIlNhbGUvbWF0dXJpdHkgb2YgaW52ZXN0bWVudHNfc3R1ZHkiXT1bIlNhbGUvbWF0dXJpdHkgb2YgaW52ZXN0bWVudHMiXSwKZS5leHBvcnRzLlNlYXNvbmFsaXR5X3N0dWR5PVsiU2Vhc29uYWxpdHkiXSxlLmV4cG9ydHNbIlNlbGxpbmcvZ2VuZXJhbC9hZG1pbiBleHBlbnNlcywgb3RoZXJfc3R1ZHkiXT1bIlNlbGxpbmcvZ2VuZXJhbC9hZG1pbiBleHBlbnNlcywgb3RoZXIiXSxlLmV4cG9ydHNbIlNlbGxpbmcvZ2VuZXJhbC9hZG1pbiBleHBlbnNlcywgdG90YWxfc3R1ZHkiXT1bIlNlbGxpbmcvZ2VuZXJhbC9hZG1pbiBleHBlbnNlcywgdG90YWwiXSxlLmV4cG9ydHNbIlNlc3Npb24gVGltZSBQcmljZSBPcHBvcnR1bml0eV9zdHVkeSJdPVsiU2Vzc2lvbiBUaW1lIFByaWNlIE9wcG9ydHVuaXR5Il0sZS5leHBvcnRzWyJTZXNzaW9uIFZvbHVtZSBIRF9zdHVkeSJdPVsiU2Vzc2lvbiBWb2x1bWUgSEQiXSxlLmV4cG9ydHNbIlNlc3Npb24gVm9sdW1lIFByb2ZpbGUgSERfc3R1ZHkiXT1bIlNlc3Npb24gVm9sdW1lIFByb2ZpbGUgSEQiXSxlLmV4cG9ydHNbIlNlc3Npb24gVm9sdW1lIFByb2ZpbGVfc3R1ZHkiXT1bIlNlc3Npb24gVm9sdW1lIFByb2ZpbGUiXSxlLmV4cG9ydHNbIlNlc3Npb24gVm9sdW1lX3N0dWR5Il09WyJTZXNzaW9uIFZvbHVtZSJdLGUuZXhwb3J0c1siU2hhcmVob2xkZXJzJyBlcXVpdHlfc3R1ZHkiXT1bIlNoYXJlaG9sZGVycycgZXF1aXR5Il0sZS5leHBvcnRzWyJTaGFyZXMgYnV5YmFjayByYXRpbyAlX3N0dWR5Il09WyJTaGFyZXMgYnV5YmFjayByYXRpbyAlIl0sZS5leHBvcnRzWyJTaG9vdGluZyBTdGFyIC0gQmVhcmlzaF9zdHVkeSJdPVsiU2hvb3RpbmcgU3RhciAtIEJlYXJpc2giXSxlLmV4cG9ydHNbIlNob3J0IHRlcm0gZGVidCBleGNsLiBjdXJyZW50IHBvcnRpb24gb2YgTFQgZGVidF9zdHVkeSJdPVsiU2hvcnQgdGVybSBkZWJ0IGV4Y2wuIGN1cnJlbnQgcG9ydGlvbiBvZiBMVCBkZWJ0Il0sZS5leHBvcnRzWyJTaG9ydCB0ZXJtIGRlYnRfc3R1ZHkiXT1bIlNob3J0IHRlcm0gZGVidCJdLGUuZXhwb3J0c1siU2hvcnQgdGVybSBpbnZlc3RtZW50c19zdHVkeSJdPVsiU2hvcnQgdGVybSBpbnZlc3RtZW50cyJdLGUuZXhwb3J0c1siU2xvYW4gcmF0aW8gJV9zdHVkeSJdPVsiU2xvYW4gcmF0aW8gJSJdLGUuZXhwb3J0c1siU21vb3RoZWQgTW92aW5nIEF2ZXJhZ2Vfc3R1ZHkiXT1bIlNtb290aGVkIE1vdmluZyBBdmVyYWdlIl0sZS5leHBvcnRzWyJTb2x2ZW5jeSByYXRpb3Nfc3R1ZHkiXT1bIlNvbHZlbmN5IHJhdGlvcyJdLGUuZXhwb3J0c1siU3Bpbm5pbmcgVG9wIEJsYWNrX3N0dWR5Il09WyJTcGlubmluZyBUb3AgQmxhY2siXSxlLmV4cG9ydHNbIlNwaW5uaW5nIFRvcCBXaGl0ZV9zdHVkeSJdPVsiU3Bpbm5pbmcgVG9wIFdoaXRlIl0sZS5leHBvcnRzWyJTcHJpbmdhdGUgc2NvcmVfc3R1ZHkiXT1bIlNwcmluZ2F0ZSBzY29yZSJdLGUuZXhwb3J0c1siU3RhbmRhcmQgRGV2aWF0aW9uX3N0dWR5Il09WyJTdGFuZGFyZCBEZXZpYXRpb24iXSxlLmV4cG9ydHNbIlN0YW5kYXJkIEVycm9yIEJhbmRzX3N0dWR5Il09WyJTdGFuZGFyZCBFcnJvciBCYW5kcyJdLGUuZXhwb3J0c1siU3RhbmRhcmQgRXJyb3Jfc3R1ZHkiXT1bIlN0YW5kYXJkIEVycm9yIl0sZS5leHBvcnRzLlN0b2NoX3N0dWR5PVsiU3RvY2giXSxlLmV4cG9ydHNbIlN0b2NoYXN0aWMgTW9tZW50dW0gSW5kZXhfc3R1ZHkiXT1bIlN0b2NoYXN0aWMgTW9tZW50dW0gSW5kZXgiXSxlLmV4cG9ydHNbIlN0b2NoYXN0aWMgUlNJX3N0dWR5Il09WyJTdG9jaGFzdGljIFJTSSJdLGUuZXhwb3J0c1siU3RvY2hhc3RpYyBTbG93IFN0cmF0ZWd5X3N0dWR5Il09WyJTdG9jaGFzdGljIFNsb3cgU3RyYXRlZ3kiXSxlLmV4cG9ydHMuU3RvY2hhc3RpY19zdHVkeT1bIlN0b2NoYXN0aWMiXSxlLmV4cG9ydHMuU3VwZXJUcmVuZF9zdHVkeT1bIlN1cGVyVHJlbmQiXSxlLmV4cG9ydHNbIlN1cGVydHJlbmQgU3RyYXRlZ3lfc3R1ZHkiXT1bIlN1cGVydHJlbmQgU3RyYXRlZ3kiXSxlLmV4cG9ydHMuU3VwZXJ0cmVuZF9zdHVkeT1bIlN1cGVydHJlbmQiXSxlLmV4cG9ydHNbIlN1c3RhaW5hYmxlIGdyb3d0aCByYXRlX3N0dWR5Il09WyJTdXN0YWluYWJsZSBncm93dGggcmF0ZSJdLGUuZXhwb3J0cy5UUklYX3N0dWR5PVsiVFJJWCJdLGUuZXhwb3J0c1siVGFuZ2libGUgYm9vayB2YWx1ZSBwZXIgc2hhcmVfc3R1ZHkiXT1bIlRhbmdpYmxlIGJvb2sgdmFsdWUgcGVyIHNoYXJlIl0sZS5leHBvcnRzWyJUYW5naWJsZSBjb21tb24gZXF1aXR5IHJhdGlvX3N0dWR5Il09WyJUYW5naWJsZSBjb21tb24gZXF1aXR5IHJhdGlvIl0sZS5leHBvcnRzLlRheGVzX3N0dWR5PVsiVGF4ZXMiXSxlLmV4cG9ydHNbIlRlY2huaWNhbCBSYXRpbmdzIFN0cmF0ZWd5X3N0dWR5Il09WyJUZWNobmljYWwgUmF0aW5ncyBTdHJhdGVneSJdLGUuZXhwb3J0c1siVGVjaG5pY2FsIFJhdGluZ3Nfc3R1ZHkiXT1bIlRlY2huaWNhbCBSYXRpbmdzIl0sZS5leHBvcnRzWyJUaHJlZSBCbGFjayBDcm93cyAtIEJlYXJpc2hfc3R1ZHkiXT1bIlRocmVlIEJsYWNrIENyb3dzIC0gQmVhcmlzaCJdLGUuZXhwb3J0c1siVGhyZWUgV2hpdGUgU29sZGllcnMgLSBCdWxsaXNoX3N0dWR5Il09WyJUaHJlZSBXaGl0ZSBTb2xkaWVycyAtIEJ1bGxpc2giXSxlLmV4cG9ydHNbIlRpbWUgUHJpY2UgT3Bwb3J0dW5pdHlfc3R1ZHkiXT1bIlRpbWUgUHJpY2UgT3Bwb3J0dW5pdHkiXSxlLmV4cG9ydHNbIlRpbWUgV2VpZ2h0ZWQgQXZlcmFnZSBQcmljZV9zdHVkeSJdPVsiVGltZSBXZWlnaHRlZCBBdmVyYWdlIFByaWNlIl0sZS5leHBvcnRzWyJUb2JpbidzIFEgKGFwcHJveGltYXRlKV9zdHVkeSJdPVsiVG9iaW4ncyBRIChhcHByb3hpbWF0ZSkiXSxlLmV4cG9ydHNbIlRvdGFsIGFzc2V0c19zdHVkeSJdPVsiVG90YWwgYXNzZXRzIl0sZS5leHBvcnRzWyJUb3RhbCBjYXNoIGRpdmlkZW5kcyBwYWlkX3N0dWR5Il09WyJUb3RhbCBjYXNoIGRpdmlkZW5kcyBwYWlkIl0sZS5leHBvcnRzWyJUb3RhbCBjb21tb24gc2hhcmVzIG91dHN0YW5kaW5nX3N0dWR5Il09WyJUb3RhbCBjb21tb24gc2hhcmVzIG91dHN0YW5kaW5nIl0sCmUuZXhwb3J0c1siVG90YWwgY3VycmVudCBhc3NldHNfc3R1ZHkiXT1bIlRvdGFsIGN1cnJlbnQgYXNzZXRzIl0sZS5leHBvcnRzWyJUb3RhbCBjdXJyZW50IGxpYWJpbGl0aWVzX3N0dWR5Il09WyJUb3RhbCBjdXJyZW50IGxpYWJpbGl0aWVzIl0sZS5leHBvcnRzWyJUb3RhbCBkZWJ0IHBlciBzaGFyZV9zdHVkeSJdPVsiVG90YWwgZGVidCBwZXIgc2hhcmUiXSxlLmV4cG9ydHNbIlRvdGFsIGRlYnRfc3R1ZHkiXT1bIlRvdGFsIGRlYnQiXSxlLmV4cG9ydHNbIlRvdGFsIGVxdWl0eV9zdHVkeSJdPVsiVG90YWwgZXF1aXR5Il0sZS5leHBvcnRzWyJUb3RhbCBpbnZlbnRvcnlfc3R1ZHkiXT1bIlRvdGFsIGludmVudG9yeSJdLGUuZXhwb3J0c1siVG90YWwgbGlhYmlsaXRpZXMgJiBzaGFyZWhvbGRlcnMnIGVxdWl0aWVzX3N0dWR5Il09WyJUb3RhbCBsaWFiaWxpdGllcyAmIHNoYXJlaG9sZGVycycgZXF1aXRpZXMiXSxlLmV4cG9ydHNbIlRvdGFsIGxpYWJpbGl0aWVzX3N0dWR5Il09WyJUb3RhbCBsaWFiaWxpdGllcyJdLGUuZXhwb3J0c1siVG90YWwgbm9uLWN1cnJlbnQgYXNzZXRzX3N0dWR5Il09WyJUb3RhbCBub24tY3VycmVudCBhc3NldHMiXSxlLmV4cG9ydHNbIlRvdGFsIG5vbi1jdXJyZW50IGxpYWJpbGl0aWVzX3N0dWR5Il09WyJUb3RhbCBub24tY3VycmVudCBsaWFiaWxpdGllcyJdLGUuZXhwb3J0c1siVG90YWwgb3BlcmF0aW5nIGV4cGVuc2VzX3N0dWR5Il09WyJUb3RhbCBvcGVyYXRpbmcgZXhwZW5zZXMiXSxlLmV4cG9ydHNbIlRvdGFsIHJlY2VpdmFibGVzLCBuZXRfc3R1ZHkiXT1bIlRvdGFsIHJlY2VpdmFibGVzLCBuZXQiXSxlLmV4cG9ydHNbIlRvdGFsIHJldmVudWVfc3R1ZHkiXT1bIlRvdGFsIHJldmVudWUiXSxlLmV4cG9ydHNbIlRyYWRpbmcgU2Vzc2lvbnNfc3R1ZHkiXT1bIlRyYWRpbmcgU2Vzc2lvbnMiXSxlLmV4cG9ydHNbIlRyZWFzdXJ5IHN0b2NrIC0gY29tbW9uX3N0dWR5Il09WyJUcmVhc3VyeSBzdG9jayAtIGNvbW1vbiJdLGUuZXhwb3J0c1siVHJlbmQgU3RyZW5ndGggSW5kZXhfc3R1ZHkiXT1bIlRyZW5kIFN0cmVuZ3RoIEluZGV4Il0sZS5leHBvcnRzWyJUcmktU3RhciAtIEJlYXJpc2hfc3R1ZHkiXT1bIlRyaS1TdGFyIC0gQmVhcmlzaCJdLGUuZXhwb3J0c1siVHJpLVN0YXIgLSBCdWxsaXNoX3N0dWR5Il09WyJUcmktU3RhciAtIEJ1bGxpc2giXSxlLmV4cG9ydHNbIlRyaWFuZ2xlIENoYXJ0IFBhdHRlcm5fc3R1ZHkiXT1bIlRyaWFuZ2xlIENoYXJ0IFBhdHRlcm4iXSxlLmV4cG9ydHNbIlRyaXBsZSBCb3R0b20gQ2hhcnQgUGF0dGVybl9zdHVkeSJdPVsiVHJpcGxlIEJvdHRvbSBDaGFydCBQYXR0ZXJuIl0sZS5leHBvcnRzWyJUcmlwbGUgRU1BX3N0dWR5Il09WyJUcmlwbGUgRU1BIl0sZS5leHBvcnRzWyJUcmlwbGUgVG9wIENoYXJ0IFBhdHRlcm5fc3R1ZHkiXT1bIlRyaXBsZSBUb3AgQ2hhcnQgUGF0dGVybiJdLGUuZXhwb3J0c1siVHJ1ZSBTdHJlbmd0aCBJbmRleF9zdHVkeSJdPVsiVHJ1ZSBTdHJlbmd0aCBJbmRleCJdLGUuZXhwb3J0c1siVHJ1ZSBTdHJlbmd0aCBJbmRpY2F0b3Jfc3R1ZHkiXT1bIlRydWUgU3RyZW5ndGggSW5kaWNhdG9yIl0sZS5leHBvcnRzWyJUd2VlemVyIEJvdHRvbSAtIEJ1bGxpc2hfc3R1ZHkiXT1bIlR3ZWV6ZXIgQm90dG9tIC0gQnVsbGlzaCJdLGUuZXhwb3J0c1siVHdlZXplciBUb3AgLSBCZWFyaXNoX3N0dWR5Il09WyJUd2VlemVyIFRvcCAtIEJlYXJpc2giXSxlLmV4cG9ydHNbIlR5cGljYWwgUHJpY2Vfc3R1ZHkiXT1bIlR5cGljYWwgUHJpY2UiXSxlLmV4cG9ydHNbIlVsdGltYXRlIE9zY2lsbGF0b3Jfc3R1ZHkiXT1bIlVsdGltYXRlIE9zY2lsbGF0b3IiXSxlLmV4cG9ydHNbIlVucmVhbGl6ZWQgZ2Fpbi9sb3NzX3N0dWR5Il09WyJVbnJlYWxpemVkIGdhaW4vbG9zcyJdLGUuZXhwb3J0c1siVW51c3VhbCBpbmNvbWUvZXhwZW5zZV9zdHVkeSJdPVsiVW51c3VhbCBpbmNvbWUvZXhwZW5zZSJdLGUuZXhwb3J0c1siVXAvRG93biBWb2x1bWVfc3R1ZHkiXT1bIlVwL0Rvd24gVm9sdW1lIl0sZS5leHBvcnRzWyJVcHNpZGUgVGFzdWtpIEdhcCAtIEJ1bGxpc2hfc3R1ZHkiXT1bIlVwc2lkZSBUYXN1a2kgR2FwIC0gQnVsbGlzaCJdLGUuZXhwb3J0c1siVldBUCBBdXRvIEFuY2hvcmVkX3N0dWR5Il09WyJWV0FQIEF1dG8gQW5jaG9yZWQiXSxlLmV4cG9ydHMuVldBUF9zdHVkeT1bIlZXQVAiXSxlLmV4cG9ydHMuVldNQV9zdHVkeT1bIlZXTUEiXSxlLmV4cG9ydHNbIlZhbHVhdGlvbiByYXRpb3Nfc3R1ZHkiXT1bIlZhbHVhdGlvbiByYXRpb3MiXSxlLmV4cG9ydHNbIlZpc2libGUgQXZlcmFnZSBQcmljZV9zdHVkeSJdPVsiVmlzaWJsZSBBdmVyYWdlIFByaWNlIl0sZS5leHBvcnRzWyJWaXNpYmxlIFJhbmdlIFZvbHVtZSBQcm9maWxlX3N0dWR5Il09WyJWaXNpYmxlIFJhbmdlIFZvbHVtZSBQcm9maWxlIl0sZS5leHBvcnRzWyJWaXNpYmxlIFJhbmdlX3N0dWR5Il09WyJWaXNpYmxlIFJhbmdlIl0sZS5leHBvcnRzLlZvbF9zdHVkeT1bIlZvbCJdLGUuZXhwb3J0c1siVm9sYXRpbGl0eSBDbG9zZS10by1DbG9zZV9zdHVkeSJdPVsiVm9sYXRpbGl0eSBDbG9zZS10by1DbG9zZSJdLGUuZXhwb3J0c1siVm9sYXRpbGl0eSBJbmRleF9zdHVkeSJdPVsiVm9sYXRpbGl0eSBJbmRleCJdLGUuZXhwb3J0c1siVm9sYXRpbGl0eSBPLUgtTC1DX3N0dWR5Il09WyJWb2xhdGlsaXR5IE8tSC1MLUMiXSxlLmV4cG9ydHNbIlZvbGF0aWxpdHkgU3RvcF9zdHVkeSJdPVsiVm9sYXRpbGl0eSBTdG9wIl0sZS5leHBvcnRzWyJWb2xhdGlsaXR5IFplcm8gVHJlbmQgQ2xvc2UtdG8tQ2xvc2Vfc3R1ZHkiXT1bIlZvbGF0aWxpdHkgWmVybyBUcmVuZCBDbG9zZS10by1DbG9zZSJdLGUuZXhwb3J0c1siVm9sdHkgRXhwYW4gQ2xvc2UgU3RyYXRlZ3lfc3R1ZHkiXT1bIlZvbHR5IEV4cGFuIENsb3NlIFN0cmF0ZWd5Il0sZS5leHBvcnRzWyJWb2x1bWUgRGVsdGFfc3R1ZHkiXT1bIlZvbHVtZSBEZWx0YSJdLGUuZXhwb3J0c1siVm9sdW1lIE9zY2lsbGF0b3Jfc3R1ZHkiXT1bIlZvbHVtZSBPc2NpbGxhdG9yIl0sCmUuZXhwb3J0c1siVm9sdW1lIFdlaWdodGVkIEF2ZXJhZ2UgUHJpY2Vfc3R1ZHkiXT1bIlZvbHVtZSBXZWlnaHRlZCBBdmVyYWdlIFByaWNlIl0sZS5leHBvcnRzWyJWb2x1bWUgV2VpZ2h0ZWQgTW92aW5nIEF2ZXJhZ2Vfc3R1ZHkiXT1bIlZvbHVtZSBXZWlnaHRlZCBNb3ZpbmcgQXZlcmFnZSJdLGUuZXhwb3J0cy5Wb2x1bWVfc3R1ZHk9WyJWb2x1bWUiXSxlLmV4cG9ydHNbIlZvcnRleCBJbmRpY2F0b3Jfc3R1ZHkiXT1bIlZvcnRleCBJbmRpY2F0b3IiXSxlLmV4cG9ydHNbIldpbGxpYW1zICVSX3N0dWR5Il09WyJXaWxsaWFtcyAlUiJdLGUuZXhwb3J0c1siV2lsbGlhbXMgQWxsaWdhdG9yX3N0dWR5Il09WyJXaWxsaWFtcyBBbGxpZ2F0b3IiXSxlLmV4cG9ydHNbIldpbGxpYW1zIEZyYWN0YWxfc3R1ZHkiXT1bIldpbGxpYW1zIEZyYWN0YWwiXSxlLmV4cG9ydHNbIldpbGxpYW1zIEZyYWN0YWxzX3N0dWR5Il09WyJXaWxsaWFtcyBGcmFjdGFscyJdLGUuZXhwb3J0c1siV2lsbGlhbXMgUGVyY2VudCBSYW5nZV9zdHVkeSJdPVsiV2lsbGlhbXMgUGVyY2VudCBSYW5nZSJdLGUuZXhwb3J0c1siV29vZGllcyBDQ0lfc3R1ZHkiXT1bIldvb2RpZXMgQ0NJIl0sZS5leHBvcnRzWyJXb3JraW5nIGNhcGl0YWwgcGVyIHNoYXJlX3N0dWR5Il09WyJXb3JraW5nIGNhcGl0YWwgcGVyIHNoYXJlIl0sZS5leHBvcnRzWyJaaWcgWmFnX3N0dWR5Il09WyJaaWcgWmFnIl0sZS5leHBvcnRzWyJabWlqZXdza2kgc2NvcmVfc3R1ZHkiXT1bIlptaWpld3NraSBzY29yZSJdfSw1OTYxNjgoZSl7ZS5leHBvcnRzPVsiVm9sIl19LDMxOTA2MChlKXtlLmV4cG9ydHM9WyJhbmNob3JlZCB2b2x1bWUgcHJvZmlsZSJdfSwzMTM2MjUoZSl7ZS5leHBvcnRzPVsiZml4ZWQgcmFuZ2Ugdm9sdW1lIHByb2ZpbGUiXX0sMzg0NTk3KGUpe2UuZXhwb3J0cz1bIkNGRCJdfSw2NTUyMzUoZSl7ZS5leHBvcnRzPVsiQ3J5cHRvIl19LDM1MDE0NihlKXtlLmV4cG9ydHM9WyJBbGwiXX0sNzY1NDQwKGUpe2UuZXhwb3J0cz1bIkJvbmRzIl19LDU0ODMyMihlKXtlLmV4cG9ydHM9WyJFY29ub215Il19LDk3OTk3KGUpe2UuZXhwb3J0cz1bIkZvcmV4Il19LDUwNTA3OShlKXtlLmV4cG9ydHM9WyJGdXR1cmVzIl19LDU2NDkxNyhlKXtlLmV4cG9ydHM9WyJGdW5kcyJdfSw5Mjc0MTEoZSl7ZS5leHBvcnRzPVsiSW5kaWNlcyJdfSw3OTYwMChlKXtlLmV4cG9ydHM9WyJPcHRpb25zIl19LDU1NTUxMChlKXtlLmV4cG9ydHM9WyJTdG9ja3MiXX0sODMzNzQ2KGUpe2UuZXhwb3J0cz1bIkNoYW5nZSBzY2FsZSBtZXRyaWMiXX0sNzg5MDQ5KGUpe2UuZXhwb3J0cz1bIkNoYW5nZSBzY2FsZSBjdXJyZW5jeSJdfSw0MDUwMTMoZSl7ZS5leHBvcnRzPVsiQ2hhbmdlIHNjYWxlIHVuaXQiXX0sMjE3MTYxKGUpe2UuZXhwb3J0cz1bIk1peGVkIl19LDE5MTQ1NShlKXtlLmV4cG9ydHM9WyJTY2FsZSBjdXJyZW5jeSJdfSw5OTQ4NDUoZSl7ZS5leHBvcnRzPVsiU2NhbGUgbWV0cmljIl19LDU1Njc2NShlKXtlLmV4cG9ydHM9WyJTY2FsZSB1bml0Il19LDU4NzMwNihlKXtlLmV4cG9ydHM9WyIoTyArIEggKyBMICsgQykvNCJdfSw2OTExNzQoZSl7ZS5leHBvcnRzPVsiKEggKyBMICsgQyArIEMpLzQiXX0sNjU2ODkyKGUpe2UuZXhwb3J0cz1bIihIICsgTCArIEMpLzMiXX0sOTIyNjUyKGUpe2UuZXhwb3J0cz1bIihIICsgTCkvMiJdfSw5MjI5ODMoZSl7ZS5leHBvcnRzPVsiQ2xvc2UiXX0sOTUwMzM2KGUpe2UuZXhwb3J0cz1bIkhpZ2giXX0sNTA5MzgoZSl7ZS5leHBvcnRzPVsiT3BlbiJdfSw3NjUzNyhlKXtlLmV4cG9ydHM9WyJMb3ciXX0sNDAxOTI2KGUpe2UuZXhwb3J0cz1bImNoYW5nZSBwb2ludCJdfSw0MzIxMjQoZSl7ZS5leHBvcnRzPVsiY2hhbmdlIG1ldHJpYyJdfSwxODk2MDMoZSl7ZS5leHBvcnRzPVsiY2hhbmdlIGN1cnJlbmN5Il19LDg1NzIyMyhlKXtlLmV4cG9ydHM9WyJjaGFuZ2UgbGlua2luZyBncm91cCJdfSw5NTQ4OTEoZSl7ZS5leHBvcnRzPVsiY2hhbmdlIHVuaXQiXX0sMzU4KGUpe2UuZXhwb3J0cz1bImNsb25lIGxpbmUgdG9vbHMiXX0sNzQ5MDE2KGUpe2UuZXhwb3J0cz1bImNyZWF0ZSB7dG9vbH0iXX0sOTM5NzE3KGUpe2UuZXhwb3J0cz1bImN1dCBzb3VyY2VzIl19LDQxMTgxOChlKXtlLmV4cG9ydHM9WyJjdXQge3RpdGxlfSJdfSwyMzEyNjMoZSl7ZS5leHBvcnRzPVsiYWxpZ24gdG8gNDUgZGVncmVlcyJdfSw2MTgzODYoZSl7ZS5leHBvcnRzPVsiYXBwbHkgZHJhd2luZyB0ZW1wbGF0ZSJdfSwzNjU4NzQoZSl7ZS5leHBvcnRzPVsiYXBwbHkgZmFjdG9yeSBkZWZhdWx0cyB0byBzZWxlY3RlZCBzb3VyY2VzIl19LDM4NTUwNChlKXtlLmV4cG9ydHM9WyJicmluZyB7dGl0bGV9IGZvcndhcmQiXX0sNzc5NTE3KGUpe2UuZXhwb3J0cz1bImludmVydCBzY2FsZSJdfSw5NjU1MzkoZSl7ZS5leHBvcnRzPVsiaW5zZXJ0IHt0aXRsZX0iXX0sNjE3MDQwKGUpe2UuZXhwb3J0cz1bImluc2VydCB7dGl0bGV9IGFmdGVyIHt0YXJnZXR9Il19LDc0MDYxMyhlKXtlLmV4cG9ydHM9WyJpbnNlcnQge3RpdGxlfSBiZWZvcmUge3RhcmdldH0iXX0sOTQ2OTI5KGUpe2UuZXhwb3J0cz1bImxvYWQgZGVmYXVsdCBkcmF3aW5nIHRlbXBsYXRlIl19LDE1OTE0KGUpe2UuZXhwb3J0cz1bIm1vdmUge3RpdGxlfSB0byBuZXcgbGVmdCBzY2FsZSJdfSw5Njc5MzUoZSl7ZS5leHBvcnRzPVsibW92ZSB7dGl0bGV9IHRvIG5ldyByaWdodCBzY2FsZSJdfSw5NzAxMDUoZSl7ZS5leHBvcnRzPVsibW92ZSBkcmF3aW5nKHMpIl19LDI5NTIwNChlKXtlLmV4cG9ydHM9WyJtb3ZlIGxlZnQiXX0sNTI1NjQzKGUpe2UuZXhwb3J0cz1bIm1vdmUgcmlnaHQiXX0sNzc3NTc3KGUpe2UuZXhwb3J0cz1bIm1vdmUgc2NhbGUiXX0sNTAwODQzKGUpe2UuZXhwb3J0cz1bIm1ha2Uge3RpdGxlfSBubyBzY2FsZSAoRnVsbCBzY3JlZW4pIl19LDcyMTcwOShlKXtlLmV4cG9ydHM9WyJtZXJnZSBkb3duIl19LDk3NjgxNShlKXtlLmV4cG9ydHM9WyJtZXJnZSB0byBwYW5lIl19LDU1NTkxOChlKXtlLmV4cG9ydHM9WyJtZXJnZSB1cCJdfSw1NDc0NDUoZSl7CmUuZXhwb3J0cz1bInNldCBwcmljZSBzY2FsZSBzZWxlY3Rpb24gc3RyYXRlZ3kgdG8ge3RpdGxlfSJdfSw4MjgwOTIoZSl7ZS5leHBvcnRzPVsic2VuZCB7dGl0bGV9IGJhY2t3YXJkIl19LDEwMjE5NyhlKXtlLmV4cG9ydHM9WyJzaGFyZSBsaW5lIHRvb2xzIGdsb2JhbGx5Il19LDM1NTQwNyhlKXtlLmV4cG9ydHM9WyJzaGFyZSBsaW5lIHRvb2xzIGluIGxheW91dCJdfSw2OTM2NDkoZSl7ZS5leHBvcnRzPVsic3RvcCBzeW5jaW5nIGxpbmUgdG9vbChzKSJdfSw3MDg5MDgoZSl7ZS5leHBvcnRzPVsicGFzdGUge3RpdGxlfSJdfSw5MzE3MTkoZSl7ZS5leHBvcnRzPVsicmVtb3ZlIGFsbCBpbmRpY2F0b3JzIl19LDI1NjkoZSl7ZS5leHBvcnRzPVsicmVtb3ZlIGFsbCBpbmRpY2F0b3JzIGFuZCBkcmF3aW5nIHRvb2xzIl19LDkyNTk2MyhlKXtlLmV4cG9ydHM9WyJyZW1vdmUgZHJhd2luZ3MiXX0sMTIyNjA2KGUpe2UuZXhwb3J0cz1bInJlbW92ZSBkcmF3aW5ncyBncm91cCJdfSw4MjgyNTMoZSl7ZS5leHBvcnRzPVsicmVtb3ZlIHBhbmUiXX0sNDQ1NTM5KGUpe2UuZXhwb3J0cz1bInJlbW92ZSB7dGl0bGV9Il19LDYyOTU0MihlKXtlLmV4cG9ydHM9WyJyZXNldCBzY2FsZXMiXX0sMzg4ODg3KGUpe2UuZXhwb3J0cz1bInRvZ2dsZSBhdXRvIHNjYWxlIl19LDg3MTkxMChlKXtlLmV4cG9ydHM9WyJ0b2dnbGUgaW5kZXhlZCB0byAxMDAgc2NhbGUiXX0sNjAyNDk3KGUpe2UuZXhwb3J0cz1bInRvZ2dsZSBsb2NrIHNjYWxlIl19LDQ4Mzk5NShlKXtlLmV4cG9ydHM9WyJ0b2dnbGUgbG9nIHNjYWxlIl19LDMyOTg0MShlKXtlLmV4cG9ydHM9WyJ0b2dnbGUgcGVyY2VudGFnZSBzY2FsZSJdfSwxNzQ2NDAoZSl7ZS5leHBvcnRzPVsidG9nZ2xlIHJlZ3VsYXIgc2NhbGUiXX0sNjkyMjAxKGUpe2UuZXhwb3J0cz1bInR1cm4gbGluZSB0b29scyBzaGFyaW5nIG9mZiJdfSw2OTQyMihlKXtlLmV4cG9ydHM9WyJ1bm1lcmdlIHRvIG5ldyBib3R0b20gcGFuZSJdfSw5NTE4NDcoZSl7ZS5leHBvcnRzPVsidW5tZXJnZSB1cCJdfSwyMjk0MTcoZSl7ZS5leHBvcnRzPVsidW5tZXJnZSBkb3duIl19LDU3MDYyKGUpe2UuZXhwb3J0cz1bIk4vQSJdfSw4NTYyNihlKXtlLmV4cG9ydHM9WyIgR1BXIOKAlCBOZXdDb25uZWN0Il19LDExMTk3NihlKXtlLmV4cG9ydHM9WyIxIHllYXIiXX0sMzI4MDMwKGUpe2UuZXhwb3J0cz1bIjMgbW9udGhzIl19LDM5MDgxNChlKXtlLmV4cG9ydHM9WyI3OTYiXX0sNDk3MTEwKGUpe2UuZXhwb3J0cz1bIkNNQyBNYXJrZXRzIl19LDM3MTY2NShlKXtlLmV4cG9ydHM9WyJDTUUgR0xPQkVYIOKAlCBDaGljYWdvIE1lcmNhbnRpbGUgRXhjaGFuZ2UgR2xvYmV4Il19LDI5Mzk4NihlKXtlLmV4cG9ydHM9WyJDT01FWCDigJQgQ29tbW9kaXR5IEV4Y2hhbmdlIl19LDM4ODg1NihlKXtlLmV4cG9ydHM9WyJDQk9FIEVVIOKAlCBFdXJvcGVhbiBVbmlvbiBJbmRpY2VzIl19LDk5OTg3NyhlKXtlLmV4cG9ydHM9WyJDQk9FIOKAlCBDaGljYWdvIEJvYXJkIE9wdGlvbnMgRXhjaGFuZ2UiXX0sNTAyNzIxKGUpe2UuZXhwb3J0cz1bIkNCT1Qg4oCUIENoaWNhZ28gQm9hcmQgb2YgVHJhZGUiXX0sMzcwNjU4KGUpe2UuZXhwb3J0cz1bIkNGRkVYIOKAlCBDaGluYSBGaW5hbmNpYWwgRnV0dXJlcyBFeGNoYW5nZSJdfSw1MTU3MzgoZSl7ZS5leHBvcnRzPVsiQ0ZJIl19LDI5MzkzMyhlKXtlLmV4cG9ydHM9WyJDU0Ug4oCUIENhbmFkaWFuIFNlY3VyaXRpZXMgRXhjaGFuZ2UiXX0sMzM5MDk3KGUpe2UuZXhwb3J0cz1bIkNTRSDigJQgQ2FzYWJsYW5jYSBTdG9jayBFeGNoYW5nZSJdfSw1MzU2ODQoZSl7ZS5leHBvcnRzPVsiQ1NFIOKAlCBDb2xvbWJvIFN0b2NrIEV4Y2hhbmdlIl19LDk0Mzg4MyhlKXtlLmV4cG9ydHM9WyJDU0Ug4oCUIEN5cHJ1cyBTdG9jayBFeGNoYW5nZSJdfSw5NDIzMTcoZSl7ZS5leHBvcnRzPVsiQ1NFIOKAlCBOYXNkYXEgQ29wZW5oYWdlbiJdfSw0NTQ5NyhlKXtlLmV4cG9ydHM9WyJDWE0iXX0sOTg3NChlKXtlLmV4cG9ydHM9WyJDb3VsZG4ndCBjb3B5Il19LDI3MTY2MShlKXtlLmV4cG9ydHM9WyJDb3VudGRvd24gdG8gYmFyIGNsb3NlIl19LDc0MTA3KGUpe2UuZXhwb3J0cz1bIkNvZWZmcyBhcyBwZXJjZW50cyJdfSw5OTUwOTcoZSl7ZS5leHBvcnRzPVsiQ29pbiBNZXRyaWNzIl19LDQ1ODc4MyhlKXtlLmV4cG9ydHM9WyJDb2luRGVzayBJbmRpY2VzIl19LDg2OTE1MihlKXtlLmV4cG9ydHM9WyJDb2luRXgiXX0sNzAzNzQ4KGUpe2UuZXhwb3J0cz1bIkNvaW5KYXIiXX0sMzM4ODI5KGUpe2UuZXhwb3J0cz1bIkNvaW5Td2l0Y2giXX0sNzkzMDk2KGUpe2UuZXhwb3J0cz1bIkNvaW5XIl19LDE5NTg4NihlKXtlLmV4cG9ydHM9WyJDb2luYmFzZSJdfSwxMzU4NjcoZSl7ZS5leHBvcnRzPVsiQ29sb21iaWEiXX0sMjA1MDkxKGUpe2UuZXhwb3J0cz1bIkNvbG9tYm8iXX0sOTIyNDQoZSl7ZS5leHBvcnRzPVsiQ29tcGFyZSBvciBBZGQgU3ltYm9sIl19LDY5Nzg4MShlKXtlLmV4cG9ydHM9WyJDb21waWxhdGlvbiBlcnJvciJdfSwyMzI5MTkoZSl7ZS5leHBvcnRzPVsiQ29uZmlybSB0byByZW1vdmUgbG9ja2VkIGRyYXdpbmdzIl19LDc0NzI1OShlKXtlLmV4cG9ydHM9WyJDb25maXJtIElucHV0cyJdfSwxOTQxOTQoZSl7ZS5leHBvcnRzPVsiQ29ubmVjdGluZyJdfSw4OTkxOShlKXtlLmV4cG9ydHM9WyJDb250cmFjdCBleHBpcmVkIl19LDIxODgxNyhlKXtlLmV4cG9ydHM9WyJDb29yZGluYXRlcyJdfSwzNjY5NTIoZSl7ZS5leHBvcnRzPVsiQ29wZW5oYWdlbiJdfSwzNTE4NDIoZSl7ZS5leHBvcnRzPVsiQ2Fpcm8iXX0sODg0MTYzKGUpe2UuZXhwb3J0cz1bIkNhbWVsb3QgdjIgKEFyYml0cnVtKSJdfSw2Nzc2ODMoZSl7ZS5leHBvcnRzPVsiQ2FtZWxvdCB2MyAoQXJiaXRydW0pIl19LDYzMzkwNyhlKXtlLmV4cG9ydHM9WyJDYW4ndCBhcHBseSB0aGlzIGluZGljYXRvciJdfSwzNTU4MzYoZSl7ZS5leHBvcnRzPVsiQ2FuJ3QgZmluZCB0aGlzIHNjcmlwdCJdfSw3NDM1NjMoZSl7ZS5leHBvcnRzPVsiQ2FuY2VsIl19LDE1MTg5KGUpe2UuZXhwb3J0cz1bIkNhbmFkYSJdfSw4MDc3NihlKXtlLmV4cG9ydHM9WyJDYXBpdGFsLmNvbSJdfSwKNTcyNDI3KGUpe2UuZXhwb3J0cz1bIkNhcmFjYXMiXX0sMjUyNDIyKGUpe2UuZXhwb3J0cz1bIkNhc2FibGFuY2EiXX0sNzI4ODQ3KGUpe2UuZXhwb3J0cz1bIkNib2UgQXVzdHJhbGlhIl19LDk0NTAxOChlKXtlLmV4cG9ydHM9WyJDYm9lIENhbmFkYSJdfSw3NjQxNDUoZSl7ZS5leHBvcnRzPVsiQ2V0dXMgKFN1aSkiXX0sMTkzMjgzKGUpe2UuZXhwb3J0cz1bIkNlbnRlciJdfSw2NzM0ODcoZSl7ZS5leHBvcnRzPVsiQ2hhbmdlIl19LDY5Mjc2NyhlKXtlLmV4cG9ydHM9WyJDaGFuZ2UgU3ltYm9sIl19LDU5Nzc3MChlKXtlLmV4cG9ydHM9WyJDaGFuZ2UgaW50ZXJ2YWwiXX0sODQzMzY3KGUpe2UuZXhwb3J0cz1bIkNoYXJ0ICN7aW5kZXh9Il19LDYyNTc4OChlKXtlLmV4cG9ydHM9WyJDaGFydCBQcm9wZXJ0aWVzIl19LDYyODQzMChlKXtlLmV4cG9ydHM9WyJDaGFydCBmb3Ige3N5bWJvbH0sIHtpbnRlcnZhbH0iXX0sMzU0Njc2KGUpe2UuZXhwb3J0cz1bIkNoYXJ0IHRlbXBsYXRlIl19LDgxODg0NihlKXtlLmV4cG9ydHM9WyJDaGF0aGFtIElzbGFuZHMiXX0sODIxNDQ4KGUpe2UuZXhwb3J0cz1bIkNoaWNhZ28iXX0sOTA0MzM4KGUpe2UuZXhwb3J0cz1bIkNoaWxlIl19LDIwOTYzMihlKXtlLmV4cG9ydHM9WyJDaG9uZ3FpbmciXX0sMjUyOTUxKGUpe2UuZXhwb3J0cz1bIkNpdHkgSW5kZXgiXX0sMjI4NDQ5KGUpe2UuZXhwb3J0cz1bIkNyeXB0by5jb20iXX0sODc2MTYoZSl7ZS5leHBvcnRzPVsiQ3JlYXRlIG5ldyBsaXN0Il19LDkyNDAwNihlKXtlLmV4cG9ydHM9WyJDcmVhdGVkIHdpdGgge2N1c3RvbWVyfSwge2RhdGV9Il19LDQwNzQoZSl7ZS5leHBvcnRzPVsiQ3JvYXRpYSJdfSwxMDQzMzEoZSl7ZS5leHBvcnRzPVsiQ3VydmUgKEFyYml0cnVtKSJdfSw0MDkwMihlKXtlLmV4cG9ydHM9WyJDdXJ2ZSAoRXRoZXJldW0pIl19LDYzNDczNyhlKXtlLmV4cG9ydHM9WyJDeXBydXMiXX0sMTI5ODA4KGUpe2UuZXhwb3J0cz1bIkN6ZWNoIFJlcHVibGljIl19LDI5OTk3KGUpe2UuZXhwb3J0cz1bIkFOWCJdfSwxNzQxNTIoZSl7ZS5leHBvcnRzPVsiQURYIOKAlCBBYnUgRGhhYmkgU2VjdXJpdGllcyBFeGNoYW5nZSJdfSw3Njk4MjgoZSl7ZS5leHBvcnRzPVsiQVFVSVMg4oCUIEFxdWlzIFN0b2NrIEV4Y2hhbmdlIl19LDc0MTU3MyhlKXtlLmV4cG9ydHM9WyJBU1gg4oCUIEF1c3RyYWxpYW4gU2VjdXJpdGllcyBFeGNoYW5nZSJdfSw2NDExNzYoZSl7ZS5leHBvcnRzPVsiQVRIRVgg4oCUIEF0aGVucyBTdG9jayBFeGNoYW5nZSJdfSwyMTM0NyhlKXtlLmV4cG9ydHM9WyJBbXN0ZXJkYW0iXX0sNzQ2ODcyKGUpe2UuZXhwb3J0cz1bIkFudGFyY3RpYyJdfSw4Mjc5MDIoZSl7ZS5leHBvcnRzPVsiQW5jaG9yYWdlIl19LDgwMzIxMChlKXtlLmV4cG9ydHM9WyJBYmF4eCBFeGNoYW5nZSJdfSw0ODc2OShlKXtlLmV4cG9ydHM9WyJBY3RpdlRyYWRlcyJdfSw1NDIyKGUpe2UuZXhwb3J0cz1bIkFjY2VzcyBlcnJvciJdfSwzNDQzMjAoZSl7ZS5leHBvcnRzPVsiQWRkIFN5bWJvbCJdfSw5NzE4OChlKXtlLmV4cG9ydHM9WyJBZGQgYWxlcnQgb24ge3RpdGxlfSJdfSw3MTU4MzgoZSl7ZS5leHBvcnRzPVsiQWRkIGFsZXJ0IG9uIHt0aXRsZX0gYXQge3ByaWNlfSJdfSw5MDM0NDMoZSl7ZS5leHBvcnRzPVsiQWRkIHRleHQiXX0sMzQzMzMxKGUpe2UuZXhwb3J0cz1bIkFkZCB0ZXh0IG5vdGUgZm9yIHtzeW1ib2x9Il19LDIzMDIyNChlKXtlLmV4cG9ydHM9WyJBZGQgdG8gdGV4dCBub3RlcyJdfSw1Nzk5MzQoZSl7ZS5leHBvcnRzPVsiQWRkIHtzeW1ib2x9IHRvIHdhdGNobGlzdCJdfSw1MDE1MDIoZSl7ZS5leHBvcnRzPVsiQWRlbGFpZGUiXX0sMjE3ODY0KGUpe2UuZXhwb3J0cz1bIkFlcm9kcm9tZSAoQmFzZSkiXX0sOTI1MjEyKGUpe2UuZXhwb3J0cz1bIkFlcm9kcm9tZSBTbGlwU3RyZWFtIChCYXNlKSJdfSw2MTYzNzUoZSl7ZS5leHBvcnRzPVsiQWx3YXlzIGludmlzaWJsZSJdfSwzNTY4NDIoZSl7ZS5leHBvcnRzPVsiQWx3YXlzIHZpc2libGUiXX0sMzA1NjQyKGUpe2UuZXhwb3J0cz1bIkFsbCBFeGNoYW5nZXMiXX0sMjI1ODY5KGUpe2UuZXhwb3J0cz1bIkFsbCBnb29kIHRoaW5ncyBtdXN0IGNvbWUgdG8gYW4gZW5kIC0gdGhpcyBjb250cmFjdCBoYXMgcmVhY2hlZCBleHBpcnkhIl19LDc3NzkyMChlKXtlLmV4cG9ydHM9WyJBbGwncyB3ZWxsIOKAlCBtYXJrZXQgaXMgb3Blbi4iXX0sOTI0MTc2KGUpe2UuZXhwb3J0cz1bIkFwcGx5IHRoZXNlIGluZGljYXRvcnMgdG8gZW50aXJlIGxheW91dCJdfSw1MjY3ODUoZSl7ZS5leHBvcnRzPVsiQXByIl19LDE1NTg1MihlKXtlLmV4cG9ydHM9WyJBcHJpbCJdfSw2Njg0MDMoZSl7ZS5leHBvcnRzPVsiQXJjYSDigJQgTllTRSBBcmNhIl19LDg1NzU4NyhlKXtlLmV4cG9ydHM9WyJBcmdlbnRpbmEiXX0sNDk1NzAzKGUpe2UuZXhwb3J0cz1bIkFzdGFuYSJdfSwzMTkwNDQoZSl7ZS5leHBvcnRzPVsiQXNoZ2FiYXQiXX0sMTU5MDYzKGUpe2UuZXhwb3J0cz1bIkF0IGNsb3NlIl19LDk4NDE3MShlKXtlLmV4cG9ydHM9WyJBdGhlbnMiXX0sMjI4MDEzKGUpe2UuZXhwb3J0cz1bIkF1dG8iXX0sNjMzNzUyKGUpe2UuZXhwb3J0cz1bIkF1dG8gKGZpdHMgZGF0YSB0byBzY3JlZW4pIl19LDkzNzYyKGUpe2UuZXhwb3J0cz1bIkF1ZyJdfSw5NTk3NzIoZSl7ZS5leHBvcnRzPVsiQXVndXN0Il19LDI3OTIzMyhlKXtlLmV4cG9ydHM9WyJBdXN0cmFsaWEiXX0sMjM4Mjc4KGUpe2UuZXhwb3J0cz1bIkF1c3RyaWEiXX0sODE0MTQ2KGUpe2UuZXhwb3J0cz1bIkF2ZXJhZ2UgY2xvc2UgcHJpY2UgbGFiZWwiXX0sNjkzNDYwKGUpe2UuZXhwb3J0cz1bIkF2ZXJhZ2UgY2xvc2UgcHJpY2UgbGluZSJdfSwzODQ5NjQoZSl7ZS5leHBvcnRzPVsiQXpvcmVzIl19LDk0ODczNChlKXtlLmV4cG9ydHM9WyJCMlBSSU1FIl19LDQ3OTM0MShlKXtlLmV4cG9ydHM9WyJCMyDigJQgQnJhc2lsIEJvbHNhIEJhbGNhbyBTLkEuIl19LDkxMTQ1NihlKXtlLmV4cG9ydHM9WyJCTUUg4oCUIEJvbHNhIGRlIE1hZHJpZCJdfSwzMDk0MjcoZSl7ZS5leHBvcnRzPVsiQk1WIOKAlCBNZXhpY2FuIFN0b2NrIEV4Y2hhbmdlIl19LDI5NDQoZSl7CmUuZXhwb3J0cz1bIkJDSEFJTiAoTmFzZGFxIERhdGEgTGluaykiXX0sMTA0MjAwKGUpe2UuZXhwb3J0cz1bIkJFTEVYIOKAlCBCZWxncmFkZSBTdG9jayBFeGNoYW5nZSJdfSw3NDEzNDEoZSl7ZS5leHBvcnRzPVsiQkVUIOKAlCBCdWRhcGVzdCBTdG9jayBFeGNoYW5nZSJdfSwxNDQ2NShlKXtlLmV4cG9ydHM9WyJCSEIg4oCUIEJhaHJhaW4gU3RvY2sgRXhjaGFuZ2UiXX0sMjg5NjcwKGUpe2UuZXhwb3J0cz1bIkJJU1Qg4oCUIEJvcnNhIElzdGFuYnVsIl19LDU4MjI0OShlKXtlLmV4cG9ydHM9WyJCSVZBIOKAlCBCb2xzYSBJbnN0aXR1Y2lvbmFsIGRlIFZhbG9yZXMiXX0sOTQ1NzYwKGUpe2UuZXhwb3J0cz1bIkJTRSDigJQgQm9tYmF5IFN0b2NrIEV4Y2hhbmdlIl19LDE0NzU2OShlKXtlLmV4cG9ydHM9WyJCU1NFIOKAlCBCcmF0aXNsYXZhIFN0b2NrIEV4Y2hhbmdlIl19LDQ0NzIyNChlKXtlLmV4cG9ydHM9WyJCVEMgQ2hpbmEiXX0sODMyNTc0KGUpe2UuZXhwb3J0cz1bIkJUQy1FIl19LDY5NDMxNihlKXtlLmV4cG9ydHM9WyJCVENDIl19LDgxMTE3NShlKXtlLmV4cG9ydHM9WyJCVFNFIl19LDc2NTY5MyhlKXtlLmV4cG9ydHM9WyJCVkIg4oCUIEJ1Y2hhcmVzdCBTdG9jayBFeGNoYW5nZSJdfSwxODQ2MTkoZSl7ZS5leHBvcnRzPVsiQlZDIOKAlCBCb2xzYSBkZSBWYWxvcmVzIGRlIENvbG9tYmlhIl19LDcwNTk1MihlKXtlLmV4cG9ydHM9WyJCVkMg4oCUIENhcmFjYXMgU3RvY2sgRXhjaGFuZ2UiXX0sMzUxMDc2KGUpe2UuZXhwb3J0cz1bIkJWTCDigJQgQm9sc2EgZGUgVmFsb3JlcyBkZSBMaW1hIl19LDU3MzM2KGUpe2UuZXhwb3J0cz1bIkJWTVQg4oCUIFR1bmlzIFN0b2NrIEV4Y2hhbmdlIl19LDc2MjQ2MShlKXtlLmV4cG9ydHM9WyJCWCDigJQgQlggU3dpc3MiXX0sMTE0OTExKGUpe2UuZXhwb3J0cz1bIkJZREZpIl19LDIwNjkwOShlKXtlLmV4cG9ydHM9WyJCWU1BIOKAlCBBcmdlbnRpbmUgU3RvY2sgRXhjaGFuZ2VzIGFuZCBNYXJrZXRzIl19LDg2NTI0NChlKXtlLmV4cG9ydHM9WyJCb3R0b20iXX0sNTAzMzUzKGUpe2UuZXhwb3J0cz1bIkJvZ290YSJdfSwxNjk0MDcoZSl7ZS5leHBvcnRzPVsiQm9yZGVyIl19LDYzNjkyNihlKXtlLmV4cG9ydHM9WyJCYWNrZ3JvdW5kIl19LDUwMDE0NyhlKXtlLmV4cG9ydHM9WyJCYWNrIl19LDU3ODY2NShlKXtlLmV4cG9ydHM9WyJCYWhyYWluIl19LDk3MzU3NChlKXtlLmV4cG9ydHM9WyJCYW5na29rIl19LDQ1MjAxNShlKXtlLmV4cG9ydHM9WyJCYW5nbGFkZXNoIl19LDIyMTM1OShlKXtlLmV4cG9ydHM9WyJCYXNlU3dhcCAoQmFzZSkiXX0sODMzMjQoZSl7ZS5leHBvcnRzPVsiQmVsZ2l1bSJdfSw4MDgzNzcoZSl7ZS5leHBvcnRzPVsiQmVsZ3JhZGUiXX0sNTIzMTI0KGUpe2UuZXhwb3J0cz1bIkJlcmxpbiJdfSwxNTU3NjUoZSl7ZS5leHBvcnRzPVsiQml0TUVYIl19LDY2NDUwNihlKXtlLmV4cG9ydHM9WyJCaXRNYXJ0Il19LDg0NjAyNyhlKXtlLmV4cG9ydHM9WyJCaXRWQyJdfSwxMTU0MShlKXtlLmV4cG9ydHM9WyJCaXRZZXMiXX0sNTU4MDQ0KGUpe2UuZXhwb3J0cz1bIkJpdGF6emEiXX0sNTM2NjA5KGUpe2UuZXhwb3J0cz1bIkJpdGdldCJdfSw3NTgwMjIoZSl7ZS5leHBvcnRzPVsiQml0ZmluZXgiXX0sNzc5MzYoZSl7ZS5leHBvcnRzPVsiQml0a3ViIl19LDY1ODY1MChlKXtlLmV4cG9ydHM9WyJCaXRodW1iIl19LDExOTc5MihlKXtlLmV4cG9ydHM9WyJCaXRzbyJdfSw5NDY2NjYoZSl7ZS5leHBvcnRzPVsiQml0c3RhbXAiXX0sMTQ0MTE0KGUpe2UuZXhwb3J0cz1bIkJpdHJ1ZSJdfSw5MDg0NTUoZSl7ZS5leHBvcnRzPVsiQml0dHJleCJdfSw1Mjg1NzMoZSl7ZS5leHBvcnRzPVsiQml0dW5peCJdfSw3MjA4MzkoZSl7ZS5leHBvcnRzPVsiQml0dmF2byJdfSwyMzE1MDQoZSl7ZS5leHBvcnRzPVsiQmlkIGFuZCBhc2sgbGFiZWxzIl19LDkxOTM3NihlKXtlLmV4cG9ydHM9WyJCaWQgYW5kIGFzayBsaW5lcyJdfSw4Njg4MTAoZSl7ZS5leHBvcnRzPVsiQmlsbGVkIGV2ZXJ5IG1vbnRoLiJdfSw5MTM5NTUoZSl7ZS5leHBvcnRzPVsiQmlsbGVkIGV2ZXJ5IHllYXIuIl19LDYwNWUzKGUpe2UuZXhwb3J0cz1bIkJpbmFuY2UiXX0sMzExNjc5KGUpe2UuZXhwb3J0cz1bIkJpbmFuY2UuVVMiXX0sNDg3NTM2KGUpe2UuZXhwb3J0cz1bIkJpbmdYIl19LDM0NjA4NihlKXtlLmV4cG9ydHM9WyJCaXN3YXAgdjIgKEJOQiBjaGFpbikiXX0sOTAyNDMzKGUpe2UuZXhwb3J0cz1bIkJsdWViZXJyeSJdfSwzMTU0MjQoZSl7ZS5leHBvcnRzPVsiQmx1ZWZpbiAoU3VpKSJdfSw5MTI4NDEoZSl7ZS5leHBvcnRzPVsiQmxhY2tCdWxsIE1hcmtldHMiXX0sMjgzMjg3KGUpe2UuZXhwb3J0cz1bIkJsYWNraG9sZSB2MyAoQXZhbGFuY2hlKSJdfSw4NDI5ODcoZSl7ZS5leHBvcnRzPVsiQmxvRmluIl19LDM4NTkyNihlKXtlLmV4cG9ydHM9WyJCcnVzc2VscyJdfSw5NDg4MjQoZSl7ZS5leHBvcnRzPVsiQnJhdGlzbGF2YSJdfSw4MzkxNTkoZSl7ZS5leHBvcnRzPVsiQnJhdmUgTmV3IENvaW4iXX0sNjEyOTY3KGUpe2UuZXhwb3J0cz1bIkJyYXppbCJdfSw4OTA2ODkoZSl7ZS5leHBvcnRzPVsiQnJpc2JhbmUiXX0sMTM1NTIzKGUpe2UuZXhwb3J0cz1bIkJ1eSBhbmQgc2VsbCJdfSw2NjQ1MzEoZSl7ZS5leHBvcnRzPVsiQnVjaGFyZXN0Il19LDU5MDI0MyhlKXtlLmV4cG9ydHM9WyJCdWRhcGVzdCJdfSwyMTQxNDQoZSl7ZS5leHBvcnRzPVsiQnVlbm9zIEFpcmVzIl19LDcxNDAzMShlKXtlLmV4cG9ydHM9WyJCdWxnYXJpYSJdfSw4NDc0MjQoZSl7ZS5leHBvcnRzPVsiQnVsZ2FyaWFuIFN0b2NrIEV4Y2hhbmdlIl19LDcxODk2NyhlKXtlLmV4cG9ydHM9WyJCeWJpdCJdfSw1NDk3ODEoZSl7ZS5leHBvcnRzPVsiR08gTWFya2V0cyJdfSwyOTkxNzIoZSl7ZS5leHBvcnRzPVsiR0JFIGJyb2tlcnMiXX0sOTk0MzI0KGUpe2UuZXhwb3J0cz1bIkdQVyDigJQgV2Fyc2F3IFN0b2NrIEV4Y2hhbmdlIl19LDc0NTk5OChlKXtlLmV4cG9ydHM9WyJHbyB0byBkYXRlIl19LDExMTg5OChlKXtlLmV4cG9ydHM9WyJHb3QgaXQiXX0sNDg0MDYwKGUpe2UuZXhwb3J0cz1bIkdhdGUiXX0sMTc3ODU0KGUpewplLmV4cG9ydHM9WyJHZXQgYWNjZXNzIHRvIGZvcmVjYXN0IG1ldHJpY3Mgd2l0aCBhbiB1cGdyYWRlZCBwbGFuLiJdfSw3OTM2MDIoZSl7ZS5leHBvcnRzPVsiR2V0dGV4IC0gR2V0dGV4Il19LDUxODMxMihlKXtlLmV4cG9ydHM9WyJHZW1pbmkiXX0sNDY2Njk4KGUpe2UuZXhwb3J0cz1bIkdlcm1hbnkiXX0sMTA5ODQ2KGUpe2UuZXhwb3J0cz1bIkdsYXNzbm9kZSJdfSw4MDc0NDEoZSl7ZS5leHBvcnRzPVsiREZNIOKAlCBEdWJhaSBGaW5hbmNpYWwgTWFya2V0Il19LDMyMjQ3MShlKXtlLmV4cG9ydHM9WyJESiDigJQgRG93IEpvbmVzIEluZGV4ZXMiXX0sNzA3MTU4KGUpe2UuZXhwb3J0cz1bIkRKIOKAlCBEb3cgSm9uZXMgSW5kaWNlcyJdfSwxMTUyMjQoZSl7ZS5leHBvcnRzPVsiRFNFIOKAlCBEaGFrYSBTdG9jayBFeGNoYW5nZSJdfSw0NTMyMzQoZSl7ZS5leHBvcnRzPVsiRFVTIOKAlCBEdXNzZWxkb3JmIFN0b2NrIEV4Y2hhbmdlIl19LDUyMTc4MihlKXtlLmV4cG9ydHM9WydEb2luZyB0aGlzIHdpbGwgcGVybWFuZW50bHkgZGVsZXRlIHlvdXIgInthbGVydH0iIGFsZXJ0LiddfSwxODU3OTQoZSl7ZS5leHBvcnRzPVsiRG9pbmcgdGhpcyB3aWxsIHBlcm1hbmVudGx5IGRlbGV0ZSBhbGwgc2VsZWN0ZWQgYWxlcnRzLiJdfSw0MTIxMTcoZSl7ZS5leHBvcnRzPVsiRG9pbmcgdGhpcyB3aWxsIHJlbW92ZSB0aGlzIGluZGljYXRvciBhbmQgZXZlcnl0aGluZyBhdHRhY2hlZCB0byBpdCwgaW5jbHVkaW5nOiJdfSwzNjc1MzgoZSl7ZS5leHBvcnRzPVsiRGF0YSBQcm92aWRlZCBieSJdfSw1MDc3MjkoZSl7ZS5leHBvcnRzPVsiRGF0ZSJdfSw4MzA3MjEoZSl7ZS5leHBvcnRzPVsiRGF5cyJdfSwxMzU5NjUoZSl7ZS5leHBvcnRzPVsiRGFyd2luZXgiXX0sMzIwNjI3KGUpe2UuZXhwb3J0cz1bIkRlRHVzdC5pbyAoVE9OKSJdfSw3NjkwMzYoZSl7ZS5leHBvcnRzPVsiRGVjIl19LDMwOTY2NihlKXtlLmV4cG9ydHM9WyJEZWNlbWJlciJdfSw0Mzg3MTYoZSl7ZS5leHBvcnRzPVsiRGVlcGNvaW4iXX0sMTYwMjY1KGUpe2UuZXhwb3J0cz1bIkRlZmlMbGFtYSJdfSwyMjk1MjUoZSl7ZS5leHBvcnRzPVsiRGVsYXllZCJdfSw0MzE0NDEoZSl7ZS5leHBvcnRzPVsiRGVsZXRlIl19LDM0MTQ1OChlKXtlLmV4cG9ydHM9WyJEZWxpc3RlZCJdfSwzNzczMzUoZSl7ZS5leHBvcnRzPVsiRGVsaXN0ZWQgYWxlcnQiXX0sMzQwOTI3KGUpe2UuZXhwb3J0cz1bIkRlbHRhIl19LDU3NjU0OChlKXtlLmV4cG9ydHM9WyJEZWx0YSBFeGNoYW5nZSBJbmRpYSJdfSw4NTI1MDEoZSl7ZS5leHBvcnRzPVsiRGVubWFyayJdfSw4ODk1MjkoZSl7ZS5leHBvcnRzPVsiRGVudmVyIl19LDE1NDk0MChlKXtlLmV4cG9ydHM9WyJEZXJpYml0Il19LDMwMjg2OShlKXtlLmV4cG9ydHM9WyJEZXJpdiJdfSwzNjA2OTAoZSl7ZS5leHBvcnRzPVsiRGhha2EiXX0sMzcxNTQ5KGUpe2UuZXhwb3J0cz1bIkRpc3BsYWNlbWVudCJdfSw0MzY2NjYoZSl7ZS5leHBvcnRzPVsiRGlzcGxhY2VtZW50IChwcmljZSwgYmFyKSJdfSw2MjM3MTYoZSl7ZS5leHBvcnRzPVsiRHJhd2luZ3MgdG9vbGJhciJdfSw0NzMyNzUoZSl7ZS5leHBvcnRzPVsiRHViYWkiXX0sNDMwODY4KGUpe2UuZXhwb3J0cz1bIkR1YmxpbiJdfSwzNjc4MDAoZSl7ZS5leHBvcnRzPVsiRHVlIHRvIGV4Y2hhbmdlIHJlc3RyaWN0aW9ucywgeW91IGFyZSB1bmFibGUgdG8gc3dpdGNoIHRvIGFuIEFTWCBsaXN0ZWQgc3ltYm9sLiBZb3UgY2FuIHZpZXcgdGhlIFN5bWJvbCBvbiB7bGlua1N0YXJ0fVRyYWRpbmdWaWV3e2xpbmtFbmR9Il19LDk4OTI5OChlKXtlLmV4cG9ydHM9WyJFRVgg4oCUIEV1cm9wZWFuIEVuZXJneSBFeGNoYW5nZSJdfSwxOTcxMjUoZSl7ZS5leHBvcnRzPVsiRUdYIOKAlCBFZ3lwdGlhbiBFeGNoYW5nZSJdfSw5Njg1OTYoZSl7ZS5leHBvcnRzPVsiRVVSRVgg4oCUIEV1cmV4IEV4Y2hhbmdlIl19LDYwMTc2NChlKXtlLmV4cG9ydHM9WyJFbmQgb2YgRGF5Il19LDMzNzQzNyhlKXtlLmV4cG9ydHM9WyJFZ3lwdCJdfSw0NTk0NTkoZSl7ZS5leHBvcnRzPVsiRWlnaHRjYXAiXX0sMjM2ODgoZSl7ZS5leHBvcnRzPVsiRXJyYW50ZSJdfSw5NDEyMChlKXtlLmV4cG9ydHM9WyJFc3RvbmlhIl19LDUwODg0NihlKXtlLmV4cG9ydHM9WyJFc2FGWCJdfSw0OTI5ODUoZSl7ZS5leHBvcnRzPVsiRXVyb25leHQg4oCUIEV1cm9UTFgiXX0sOTI0NzY0KGUpe2UuZXhwb3J0cz1bIkV1cm9uZXh0IOKAlCBFdXJvbmV4dCBOViJdfSw5NzAxNjgoZSl7ZS5leHBvcnRzPVsiRXVyb25leHQg4oCUIEV1cm9uZXh0IE9zbG8iXX0sNDgyMDc5KGUpe2UuZXhwb3J0cz1bIkV1cm9uZXh0IOKAlCBFdXJvbmV4dCBBbXN0ZXJkYW0iXX0sMzM3MTU2KGUpe2UuZXhwb3J0cz1bIkV1cm9uZXh0IOKAlCBFdXJvbmV4dCBCcnVzc2VscyJdfSw1ODgzMzYoZSl7ZS5leHBvcnRzPVsiRXVyb25leHQg4oCUIEV1cm9uZXh0IER1YmxpbiJdfSw3OTgzMDIoZSl7ZS5leHBvcnRzPVsiRXVyb25leHQg4oCUIEV1cm9uZXh0IExpc2JvbiJdfSwzMjI4MzEoZSl7ZS5leHBvcnRzPVsiRXVyb25leHQg4oCUIEV1cm9uZXh0IFBhcmlzIl19LDQ0ODY3MShlKXtlLmV4cG9ydHM9WyJFdmVuaW5nLiBNYXJrZXQgaXMgb3BlbiBmb3IgcG9zdC1tYXJrZXQgdHJhZGluZy4iXX0sMTMyMzg5KGUpe2UuZXhwb3J0cz1bIkV4dGVuZCBsZWZ0IGxpbmUiXX0sMzc0NTczKGUpe2UuZXhwb3J0cz1bIkV4dGVuZCByaWdodCBsaW5lIl19LDgyNjYwNyhlKXtlLmV4cG9ydHM9WyJFeGNoYW5nZSJdfSwyNzI0NDIoZSl7ZS5leHBvcnRzPVsiRk9SRVguY29tIl19LDg5NTUxNihlKXtlLmV4cG9ydHM9WyJGSU5SQSDigJQgRklOUkEgQWdlbmN5IERlYnQgVHJhZGUgRGlzc2VtaW5hdGlvbiBTZXJ2aWNlIl19LDI0MjgyNihlKXtlLmV4cG9ydHM9WyJGSU5SQSBCVERTIOKAlCBGSU5SQSBCb25kIFRyYWRlIERpc3NlbWluYXRpb24gU2VydmljZSJdfSw2ODU2MDYoZSl7ZS5leHBvcnRzPVsiRlAgTWFya2V0cyJdfSw2NzcwODAoZSl7ZS5leHBvcnRzPVsiRlJBIOKAlCBGcmFua2Z1cnQgU3RvY2sgRXhjaGFuZ2UiXX0sOTI3MjMwKGUpe2UuZXhwb3J0cz1bIkZTRSDigJQgRnVrdW9rYSBTdG9jayBFeGNoYW5nZSJdfSwKMzkyMDY3KGUpe2UuZXhwb3J0cz1bIkZUU0UgU1QgSW5kZXggU2VyaWVzIl19LDE3OTI1NyhlKXtlLmV4cG9ydHM9WyJGVFNFIOKAlCBHcm91cCBJbmRpY2VzIl19LDg1NTQ3OShlKXtlLmV4cG9ydHM9WyJGVFNFIOKAlCBGVFNFIEluZGljZXMiXX0sOTEwNjAxKGUpe2UuZXhwb3J0cz1bIkZXQiDigJQgRnJhbmtmdXJ0IFN0b2NrIEV4Y2hhbmdlIl19LDk5MjcyNihlKXtlLmV4cG9ydHM9WyJGWENNIl19LDExNDExNShlKXtlLmV4cG9ydHM9WyJGWFRGIl19LDU5NTgzOChlKXtlLmV4cG9ydHM9WyJGb3J3YXJkIl19LDYxNzM0MShlKXtlLmV4cG9ydHM9WyJGZWIiXX0sMzM2MzAoZSl7ZS5leHBvcnRzPVsiRmVicnVhcnkiXX0sODAyODU1KGUpe2UuZXhwb3J0cz1bIkZlZGVyYWwgUmVzZXJ2ZSBCYW5rIG9mIE5ldyBZb3JrIl19LDIwNTExNyhlKXtlLmV4cG9ydHM9WyJGZWRlcmFsIFJlc2VydmUgQmFuayBvZiBQaGlsYWRlbHBoaWEiXX0sNTcxMDA2KGUpe2UuZXhwb3J0cz1bIkZlZGVyYWwgUmVzZXJ2ZSBFY29ub21pYyBEYXRhIl19LDk3NjQ1NChlKXtlLmV4cG9ydHM9WyJGaW5sYW5kIl19LDM0NzgzMyhlKXtlLmV4cG9ydHM9WyJGaXJzdCBiYXIgdGltZSJdfSw5Njg4MTUoZSl7ZS5leHBvcnRzPVsiRnJhY3Rpb24gcGFydCBpcyBpbnZhbGlkLiJdfSwxMzYyMzgoZSl7ZS5leHBvcnRzPVsiRnJhbmNlIl19LDQyOTk5MShlKXtlLmV4cG9ydHM9WyJGcmkiXX0sMzE4NTI1KGUpe2UuZXhwb3J0cz1bIkZyaWRheSJdfSwxMjAzMTkoZSl7ZS5leHBvcnRzPVsiRnVzaW9uIE1hcmtldHMiXX0sMzYxNDAwKGUpe2UuZXhwb3J0cz1bIkZ4UHJvIl19LDI1ODE5NChlKXtlLmV4cG9ydHM9WyJLQ0JUIEZ1dHVyZXMiXX0sNDk4ODk2KGUpe2UuZXhwb3J0cz1bIktDRVgiXX0sOTYxMjg5KGUpe2UuZXhwb3J0cz1bIktSWCDigJQgS29yZWEgU3RvY2sgRXhjaGFuZ2UiXX0sNzY2MDQwKGUpe2UuZXhwb3J0cz1bIktTRSDigJQgS3V3YWl0IFN0b2NrIEV4Y2hhbmdlIl19LDI4ODY1MShlKXtlLmV4cG9ydHM9WyJLb2xrYXRhIl19LDk4MDczOShlKXtlLmV4cG9ydHM9WyJLYXRhbmEgKFJvbmluKSJdfSwxNTc2MDUoZSl7ZS5leHBvcnRzPVsiS2F0YW5hIHYzIChSb25pbikiXX0sMjgyNDcoZSl7ZS5leHBvcnRzPVsiS2F0aG1hbmR1Il19LDQ4MDU1MyhlKXtlLmV4cG9ydHM9WyJLYWJ1bCJdfSw5MDkyMjQoZSl7ZS5leHBvcnRzPVsiS2FnaSJdfSw1ODU0NDIoZSl7ZS5leHBvcnRzPVsiS2FyYWNoaSJdfSw4NzY2NTkoZSl7ZS5leHBvcnRzPVsiS2VlcCBkcmF3aW5nIl19LDgxNDk2NihlKXtlLmV4cG9ydHM9WyJLZW55YSJdfSwxOTAxMjMoZSl7ZS5leHBvcnRzPVsiS3Jha2VuIl19LDM5NTEzMChlKXtlLmV4cG9ydHM9WyJLdXdhaXQiXX0sNDA4NDA4KGUpe2UuZXhwb3J0cz1bIkt1Q29pbiJdfSwzNDcwNjQoZSl7ZS5leHBvcnRzPVsiS3VhbGEgTHVtcHVyIl19LDEwNTg1NShlKXtlLmV4cG9ydHM9WyJITlgg4oCUIEhhbm9pIFN0b2NrIEV4Y2hhbmdlIl19LDk5MTQ1KGUpe2UuZXhwb3J0cz1bIkhOWCDigJQgSGFub2kgU3RvY2sgRXhjaGFuZ2UgKFVQQ29NKSJdfSwyODk1NjkoZSl7ZS5leHBvcnRzPVsiSE9TRSDigJQgSG8gQ2hpIE1pbmggQ2l0eSBTdG9jayBFeGNoYW5nZSJdfSw4ODU1NTAoZSl7ZS5leHBvcnRzPVsiSEFNIOKAlCBIYW1idXJnIFN0b2NrIEV4Y2hhbmdlIl19LDQ2NjQ4KGUpe2UuZXhwb3J0cz1bIkhBTiDigJQgSGFubm92ZXIgU3RvY2sgRXhjaGFuZ2UiXX0sMjk4MTgwKGUpe2UuZXhwb3J0cz1bIkhFWCDigJQgTmFzZGFxIEhlbHNpbmtpIl19LDY2OTgzNyhlKXtlLmV4cG9ydHM9WyJIS0VYIOKAlCBIb25nIEtvbmcgRXhjaGFuZ2UiXX0sMjk1NTU1KGUpe2UuZXhwb3J0cz1bIkhTSSDigJQgSGFuZyBTZW5nIEluZGljZXMiXX0sOTE1NjQxKGUpe2UuZXhwb3J0cz1bIkhUWCJdfSw0NjI3MDIoZSl7ZS5leHBvcnRzPVsiSG8gQ2hpIE1pbmgiXX0sOTI2NDAzKGUpe2UuZXhwb3J0cz1bIkhvdXJzIl19LDQwNjczKGUpe2UuZXhwb3J0cz1bIkhvbmV5c3dhcCB2MiAoR25vc2lzKSJdfSw5ODIxOTcoZSl7ZS5leHBvcnRzPVsiSG9uZyBLb25nIl19LDQ2Mzc3OShlKXtlLmV4cG9ydHM9WyJIb25nIEtvbmcsIENoaW5hIl19LDg5OTc5MShlKXtlLmV4cG9ydHM9WyJIb25vbHVsdSJdfSw3ODg4MzcoZSl7ZS5leHBvcnRzPVsiSG9yaXpvbnRhbCJdfSw1ODIzODYoZSl7ZS5leHBvcnRzPVsiSGFsaWZheCJdfSwzMzExMDUoZSl7ZS5leHBvcnRzPVsiSGV5IHRoZXJlLCBuaWdodCBvd2wuIE1hcmtldCBpcyBjdXJyZW50bHkgb3BlbiBmb3Igb3Zlcm5pZ2h0IHRyYWRpbmcuIFRoZSBkYXRhIGR1cmluZyB0aGlzIHNlc3Npb24gaXMgcHJvdmlkZWQgYnkgdGhlIEJPQVRTIGV4Y2hhbmdlLiJdfSw3NDgxODIoZSl7ZS5leHBvcnRzPVsiSGVpa2luIEFzaGkiXX0sNjE1MTQwKGUpe2UuZXhwb3J0cz1bIkhlbHNpbmtpIl19LDc2OTM5MShlKXtlLmV4cG9ydHM9WyJIaWRlIl19LDgyNDk5MyhlKXtlLmV4cG9ydHM9WyJIaWRlIGFsbCJdfSw4MDk5MzkoZSl7ZS5leHBvcnRzPVsiSGlkZSBhbGwgZHJhd2luZ3MiXX0sODAwMzQ5KGUpe2UuZXhwb3J0cz1bIkhpZGUgYWxsIGRyYXdpbmdzIGFuZCBpbmRpY2F0b3JzIl19LDg2NjMzMChlKXtlLmV4cG9ydHM9WyJIaWRlIGFsbCBkcmF3aW5ncywgaW5kaWNhdG9ycywgcG9zaXRpb25zLCBhbmQgb3JkZXJzIl19LDk4ODI2MChlKXtlLmV4cG9ydHM9WyJIaWRlIGFsbCBkcmF3aW5nIHRvb2xzIl19LDUzOTM0OShlKXtlLmV4cG9ydHM9WyJIaWRlIGFsbCBpbmRpY2F0b3JzIl19LDg0NjQxMyhlKXtlLmV4cG9ydHM9WyJIaWRlIGFsbCBwb3NpdGlvbnMgYW5kIG9yZGVycyJdfSwxNTcyMTAoZSl7ZS5leHBvcnRzPVsiSGlkZSBkcmF3aW5ncyJdfSw4MDc4ODAoZSl7ZS5leHBvcnRzPVsiSGlkZSBpbmRpY2F0b3JzIl19LDEzOTM1NShlKXtlLmV4cG9ydHM9WyJIaWRlIG1hcmtzIG9uIGJhcnMiXX0sNzYyOTg4KGUpe2UuZXhwb3J0cz1bIkhpZGUgcG9zaXRpb25zIGFuZCBvcmRlcnMiXX0sODQ1NTYzKGUpe2UuZXhwb3J0cz1bIkhpZ2giXX0sODIzNDMwKGUpe2UuZXhwb3J0cz1bIkhpZ2ggYW5kIGxvdyBwcmljZSBsYWJlbHMiXX0sMjU2MjIwKGUpewplLmV4cG9ydHM9WyJIaWdoIGFuZCBsb3cgcHJpY2UgbGluZXMiXX0sNjYwNjA5KGUpe2UuZXhwb3J0cz1bIkhpc3RvZ3JhbSBpcyB0b28gbGFyZ2UsIHBsZWFzZSBpbmNyZWFzZSB7Ym9sZEhpZ2hsaWdodFN0YXJ0fVJvdyBTaXple2JvbGRIaWdobGlnaHRFbmR9IGluIHRoZSBzZXR0aW5ncyB3aW5kb3cuIl19LDQ2OTIwKGUpe2UuZXhwb3J0cz1bIkhpc3RvZ3JhbSBpcyB0b28gbGFyZ2UsIHBsZWFzZSBpbmNyZWFzZSB7Ym9sZEhpZ2hsaWdodFN0YXJ0fVRpY2tzIFBlciBSb3d7Ym9sZEhpZ2hsaWdodEVuZH0gaW4gdGhlIHNldHRpbmdzIHdpbmRvdy4iXX0sMzMzMDkoZSl7ZS5leHBvcnRzPVsiSGlzdG9ncmFtIGlzIHRvbyBsYXJnZSwgcGxlYXNlIHJlZHVjZSB7Ym9sZEhpZ2hsaWdodFN0YXJ0fVJvdyBTaXple2JvbGRIaWdobGlnaHRFbmR9IGluIHRoZSBzZXR0aW5ncyB3aW5kb3cuIl19LDY2MTM2NihlKXtlLmV4cG9ydHM9WyJIdW5nYXJ5Il19LDIzMjMwMShlKXtlLmV4cG9ydHM9WyJIeXBlcmxpcXVpZCAoSHlwZXJsaXF1aWQpIl19LDYzNDE4NShlKXtlLmV4cG9ydHM9WyJIeXBlcmxpcXVpZCAoUEFSQSBISVAtMykiXX0sNjMyMzAzKGUpe2UuZXhwb3J0cz1bIkh5cGVybGlxdWlkIChYWVogSElQLTMpIl19LDcwOTIxMihlKXtlLmV4cG9ydHM9WyJJQyBNYXJrZXRzIl19LDQwMzQzMChlKXtlLmV4cG9ydHM9WyJJQ0UgRGF0YSBTZXJ2aWNlcyJdfSw3NDQzMShlKXtlLmV4cG9ydHM9WyJJQ0UgRnV0dXJlcyBTaW5nYXBvcmUiXX0sMzQ0MzQ1KGUpe2UuZXhwb3J0cz1bIklDRUFEIOKAlCBJQ0UgRnV0dXJlcyBBYnUgRGhhYmkiXX0sMjE5ODMzKGUpe2UuZXhwb3J0cz1bIklDRUVOREVYIOKAlCBJQ0UgRW5kZXgiXX0sNjU1NTI3KGUpe2UuZXhwb3J0cz1bIklDRUVVUiDigJQgSUNFIEZ1dHVyZXMgRXVyb3BlIENvbW1vZGl0aWVzIl19LDk3NTU1OChlKXtlLmV4cG9ydHM9WyJJQ0VFVVIg4oCUIElDRSBGdXR1cmVzIEV1cm9wZSBGaW5hbmNpYWxzIl19LDUyODgxMChlKXtlLmV4cG9ydHM9WyJJQ0VVUyDigJQgSUNFIEZ1dHVyZXMgVS5TLiJdfSw1NDU2MTYoZSl7ZS5leHBvcnRzPVsiSUNFVVNDQSDigJQgSUNFIEZ1dHVyZXMgVS5TLiBDb21tb2RpdGllcyAtIENhbmFkaWFuIEdyYWlucyJdfSwxODk1OTAoZSl7ZS5leHBvcnRzPVsiSUNFWCDigJQgTmFzZGFxIEljZWxhbmQiXX0sNzUxMDU4KGUpe2UuZXhwb3J0cz1bIklEWCDigJQgSW5kb25lc2lhIFN0b2NrIEV4Y2hhbmdlIl19LDE1Njk2NChlKXtlLmV4cG9ydHM9WyJJRyJdfSwzMzUxMjIoZSl7ZS5leHBvcnRzPVsiSVNUIOKAlCBJc3RhbmJ1bCBTdG9jayBFeGNoYW5nZSJdfSwyODg0MzIoZSl7ZS5leHBvcnRzPVsiSW50ZXJ2YWxzIGxlc3MgdGhhbiB7cmVzb2x1dGlvbn0gYXJlIG5vdCBzdXBwb3J0ZWQgZm9yIHt0aWNrZXJ9LiJdfSw5NDI0NihlKXtlLmV4cG9ydHM9WyJJbnRlcmFjdGl2ZSBCcm9rZXJzIl19LDE1OTI1KGUpe2UuZXhwb3J0cz1bIkludmVydCBzY2FsZSJdfSwxNTIwNTQoZSl7ZS5leHBvcnRzPVsiSW5kZXhlZCB0byAxMDAiXX0sMzcyNTIwKGUpe2UuZXhwb3J0cz1bIkluZGlhIl19LDM0MjQ2MyhlKXtlLmV4cG9ydHM9WyJJbmRpY2F0b3JzIGFuZCBmaW5hbmNpYWxzIHZhbHVlIGxhYmVscyJdfSwzOTQ0NzgoZSl7ZS5leHBvcnRzPVsiSW5kaWNhdG9ycyBhbmQgZmluYW5jaWFscyBuYW1lIGxhYmVscyJdfSw4MDI5NzUoZSl7ZS5leHBvcnRzPVsiSW5kb25lc2lhIl19LDMwMjkzMShlKXtlLmV4cG9ydHM9WyJJbnB1dHMiXX0sNzI0OTA5KGUpe2UuZXhwb3J0cz1bIkluc2VydCBpbmRpY2F0b3IiXX0sOTEzNjUxKGUpe2UuZXhwb3J0cz1bIkluc3RpdHV0ZSBmb3IgU3VwcGx5IE1hbmFnZW1lbnQiXX0sMzI4MzEzKGUpe2UuZXhwb3J0cz1bIkluc3RydW1lbnQgaXMgbm90IGFsbG93ZWQiXX0sNDQwMTg4KGUpe2UuZXhwb3J0cz1bIkljZWxhbmQiXX0sMTQyMzA4KGUpe2UuZXhwb3J0cz1bIklkZWFzIG9uIGNoYXJ0Il19LDExNjc2OChlKXtlLmV4cG9ydHM9WyJJZiB5b3UgcmVtb3ZlIHRoaXMgZHJhd2luZyBmcm9tIHRoZSBjaGFydCwgdGhlIGFsZXJ0IGJhc2VkIG9uIGl0IHdpbGwgYWxzbyBiZSBkZWxldGVkLiJdfSw3MTE1MjcoZSl7ZS5leHBvcnRzPVsiSXJlbGFuZCJdfSwyMDc3OTgoZSl7ZS5leHBvcnRzPVsiSXN0YW5idWwiXX0sODAzMzU0KGUpe2UuZXhwb3J0cz1bIklzcmFlbCJdfSwzODYzNzcoZSl7ZS5leHBvcnRzPVsiSXQgc2VlbXMgdGhlcmUncyBhbiBlcnJvciBpbiB0aGlzIHNjcmlwdC4gVHJ5IHJlYWNoaW5nIG91dCB0byB0aGUgc2NyaXB0J3MgYXV0aG9yIGZvciBoZWxwLiJdfSw2MzE0MzgoZSl7ZS5leHBvcnRzPVsiSXQnbGwgY2xvc2UgaW4ge3JlbWFpbmluZ1RpbWV9LiJdfSw0MDQ1NChlKXtlLmV4cG9ydHM9WyJJdCdsbCBnbyB0byBwb3N0LW1hcmtldCB0cmFkaW5nIGluIHtyZW1haW5pbmdUaW1lfS4iXX0sNzc5MzQwKGUpe2UuZXhwb3J0cz1bIkl0J2xsIG9wZW4gZm9yIHByZS1tYXJrZXQgdHJhZGluZyBpbiB7cmVtYWluaW5nVGltZX0uIl19LDI4MTM4NihlKXtlLmV4cG9ydHM9WyJJdCdsbCBvcGVuIGluIHtyZW1haW5pbmdUaW1lfS4iXX0sODk4MTYzKGUpe2UuZXhwb3J0cz1bIkl0YWx5Il19LDM2MTkyMChlKXtlLmV4cG9ydHM9WyJJdOKAmWxsIG9wZW4gZnVsbHkgaW4ge3JlbWFpbmluZ1RpbWV9LiJdfSw5MzEyMzIoZSl7ZS5leHBvcnRzPVsiSkZYIl19LDgxOTI4OShlKXtlLmV4cG9ydHM9WyJKU0Ug4oCUIEpvaGFubmVzYnVyZyBTdG9jayBFeGNoYW5nZSJdfSwyNzAzMzAoZSl7ZS5leHBvcnRzPVsiSm9oYW5uZXNidXJnIl19LDMzMTMwKGUpe2UuZXhwb3J0cz1bIkpha2FydGEiXX0sNjU3Mzc0KGUpe2UuZXhwb3J0cz1bIkphbiJdfSw5NDQ3ODQoZSl7ZS5leHBvcnRzPVsiSmFudWFyeSJdfSwyMDAwNjgoZSl7ZS5leHBvcnRzPVsiSmFwYW4iXX0sNzA0ODMxKGUpe2UuZXhwb3J0cz1bIkplcnVzYWxlbSJdfSwxODM5NTkoZSl7ZS5leHBvcnRzPVsiSnVsIl19LDkyNDY4OShlKXtlLmV4cG9ydHM9WyJKdWx5Il19LDg3NzQ1KGUpe2UuZXhwb3J0cz1bIkp1biJdfSw0MDI0ODIoZSl7ZS5leHBvcnRzPVsiSnVuZSJdfSwyMDI2MzEoZSl7CmUuZXhwb3J0cz1bIkp1bmVhdSJdfSwzMzMzNDkoZSl7ZS5leHBvcnRzPVsiT01YIOKAlCBOYXNkYXEgT01YIEdyb3VwIl19LDcyMDI4NyhlKXtlLmV4cG9ydHM9WyJPTVhCQUxUSUMiXX0sNTExMjcoZSl7ZS5leHBvcnRzPVsiT01YTk9SRElDIl19LDE4MTgxNShlKXtlLmV4cG9ydHM9WyJPTVhSIOKAlCBOYXNkYXEgUmlnYSJdfSw2OTUxODQoZSl7ZS5leHBvcnRzPVsiT0FOREEiXX0sODMxNTY4KGUpe2UuZXhwb3J0cz1bIk9LWCJdfSwxMjQwMzcoZSl7ZS5leHBvcnRzPVsiT1NFIOKAlCBPc2FrYSBFeGNoYW5nZSJdfSw5NDA0MTMoZSl7ZS5leHBvcnRzPVsiT1RDIOKAlCBPVEMgTWFya2V0cyJdfSw4NzI5ODAoZSl7ZS5leHBvcnRzPVsiT24gdGhlIGxlZnQiXX0sMzYzMzcwKGUpe2UuZXhwb3J0cz1bIk9uIHRoZSByaWdodCJdfSwzODI4MyhlKXtlLmV4cG9ydHM9WyJPbmx5IHthdmFpbGFibGVSZXNvbHV0aW9uc30gaW50ZXJ2YWxzIGFyZSBzdXBwb3J0ZWQgZm9yIHt0aWNrZXJ9LiJdfSw3MjgzMzcoZSl7ZS5leHBvcnRzPVsiT2N0Il19LDgxNDUwMShlKXtlLmV4cG9ydHM9WyJPY3RvYmVyIl19LDIwODA3OChlKXtlLmV4cG9ydHM9WyJPayJdfSw1OTQxNzAoZSl7ZS5leHBvcnRzPVsiT3B0aW9ucyBQcmljZSBSZXBvcnRpbmcgQXV0aG9yaXR5Il19LDk3NzgxKGUpe2UuZXhwb3J0cz1bIk9wZW4iXX0sMzMyMDcwKGUpe2UuZXhwb3J0cz1bIk9wb2ZpbmFuY2UiXX0sMTcwNDI4KGUpe2UuZXhwb3J0cz1bIk9yY2EgKFNvbGFuYSkiXX0sODQ5NzM4KGUpe2UuZXhwb3J0cz1bIk9zbG8iXX0sNDM5NTQ5KGUpe2UuZXhwb3J0cz1bIk9zbWFubGkgRlgiXX0sNzg5MjQzKGUpe2UuZXhwb3J0cz1bIkxNRSDigJQgTG9uZG9uIE1ldGFsIEV4Y2hhbmdlIl19LDE1OTYyOChlKXtlLmV4cG9ydHM9WyJMQmFuayJdfSw4NDM1MTQoZSl7ZS5leHBvcnRzPVsiTEZKIFYyLjIgKEF2YWxhbmNoZSkiXX0sMzEzOTY0KGUpe2UuZXhwb3J0cz1bIkxKU0Ug4oCUIExqdWJsamFuYSBTdG9jayBFeGNoYW5nZSJdfSwxNDM4MDMoZSl7ZS5leHBvcnRzPVsiTFNFIOKAlCBMb25kb24gU3RvY2sgRXhjaGFuZ2UgKFVLIENvbXBhbmllcykiXX0sMzQ3MzM3KGUpe2UuZXhwb3J0cz1bIkxTSU4g4oCUIExvbmRvbiBTdG9jayBFeGNoYW5nZSAoSW50ZXJuYXRpb25hbCBDb21wYW5pZXMpIl19LDg4ODY3OChlKXtlLmV4cG9ydHM9WyJMb3ciXX0sMzY1MDYxKGUpe2UuZXhwb3J0cz1bIkxvd2VyIERldmlhdGlvbiJdfSwzNzI3MzIoZSl7ZS5leHBvcnRzPVsiTG9hZGluZyJdfSw3NTQzMTAoZSl7ZS5leHBvcnRzPVsiTG9jay91bmxvY2siXX0sODgyNzYoZSl7ZS5leHBvcnRzPVsiTG9jayB2ZXJ0aWNhbCBjdXJzb3IgbGluZSBieSB0aW1lIl19LDQxMTc2OChlKXtlLmV4cG9ydHM9WyJMb2NrIHByaWNlIHRvIGJhciByYXRpbyJdfSw1MDM1NTgoZSl7ZS5leHBvcnRzPVsiTG9nYXJpdGhtaWMiXX0sMjQ2NTA3KGUpe2UuZXhwb3J0cz1bIkxvbmRvbiJdfSw0MDg0MjYoZSl7ZS5leHBvcnRzPVsiTG9zIEFuZ2VsZXMiXX0sMjgyNzczKGUpe2UuZXhwb3J0cz1bIkxhdHZpYSJdfSw4NzQ2MShlKXtlLmV4cG9ydHM9WyJMYWRkZXIiXX0sOTUwNTE2KGUpe2UuZXhwb3J0cz1bIkxhZ29zIl19LDg4MDQ3MShlKXtlLmV4cG9ydHM9WyJMYW5nICYgU2Nod2FyeiBUcmFkZUNlbnRlciBBRyAmIENvLiBLRyJdfSw3NDM5NyhlKXtlLmV4cG9ydHM9WyJMYXN0IGJhciB0aW1lIl19LDMxNDY3KGUpe2UuZXhwb3J0cz1bIkxhc3QgZGF5IGNoYW5nZSJdfSw1MDQzNjEoZSl7ZS5leHBvcnRzPVsiTGV2ZWxzIl19LDY0NDc4MChlKXtlLmV4cG9ydHM9WyJMZWFybiB3aHkiXX0sNjQ4ODE2KGUpe2UuZXhwb3J0cz1bIkxlZnQiXX0sODkyMTAwKGUpe2UuZXhwb3J0cz1bIkxpdGh1YW5pYSJdfSwxNTc1MDAoZSl7ZS5leHBvcnRzPVsiTGltYSJdfSw1Mjc5MTIoZSl7ZS5leHBvcnRzPVsiTGluZSJdfSwxMDM2MTcoZSl7ZS5leHBvcnRzPVsiTGluZSBCcmVhayJdfSw1MDcyKGUpe2UuZXhwb3J0cz1bIkxpc2JvbiJdfSw0MjIwMDcoZSl7ZS5leHBvcnRzPVsiTGp1YmxqYW5hIl19LDQzNjI1MyhlKXtlLmV4cG9ydHM9WyJMdXhTRSDigJQgTHV4ZW1ib3VyZyBTdG9jayBFeGNoYW5nZSJdfSw5NzU0NDcoZSl7ZS5leHBvcnRzPVsiTHV4ZW1ib3VyZyJdfSwzMjM4OTQoZSl7ZS5leHBvcnRzPVsiTHVuYXJDcnVzaCJdfSwxNTI1MTUoZSl7ZS5leHBvcnRzPVsiTU0gRmluYW5jZSAoQ3Jvbm9zKSJdfSw3NjAwNjkoZSl7ZS5leHBvcnRzPVsiTUFUU1VJIl19LDUwMjc4KGUpe2UuZXhwb3J0cz1bIk1DWCDigJQgTXVsdGkgQ29tbW9kaXR5IEV4Y2hhbmdlIl19LDI1MTU5MShlKXtlLmV4cG9ydHM9WyJNRVhDIl19LDc2MTU5NihlKXtlLmV4cG9ydHM9WyJNR0VYIOKAlCBGdXR1cmVzIl19LDM4NTgyNChlKXtlLmV4cG9ydHM9WyJNSUwg4oCUIE1pbGFuIFN0b2NrIEV4Y2hhbmdlIl19LDk0OTgyNihlKXtlLmV4cG9ydHM9WyJNSUxTRURFWCDigJQgTWlsYW4gU3RvY2sgRXhjaGFuZ2UiXX0sMzE5ODY0KGUpe2UuZXhwb3J0cz1bIk1TRSAtIE1ldHJvcG9saXRhbiBTdG9jayBFeGNoYW5nZSJdfSw1MTI3NChlKXtlLmV4cG9ydHM9WyJNU1RBUiDigJQgQ0JPRSBNb3JuaW5nU3RhciBJbmRpY2VzIl19LDY1NDQ4MyhlKXtlLmV4cG9ydHM9WyJNVU4g4oCUIE11bmljaCBTdG9jayBFeGNoYW5nZSJdfSw5NjUwNjgoZSl7ZS5leHBvcnRzPVsiTVlYIOKAlCBCdXJzYSBNYWxheXNpYSBCZXJoYWQiXX0sMjg4Mzk2KGUpe2UuZXhwb3J0cz1bIk1vdmUgY2hhcnQiXX0sNzA1MDE2KGUpe2UuZXhwb3J0cz1bIk1vdmUgc2NhbGUgdG8gbGVmdCJdfSw5MTg3OShlKXtlLmV4cG9ydHM9WyJNb3ZlIHNjYWxlIHRvIHJpZ2h0Il19LDk0NzkzNihlKXtlLmV4cG9ydHM9WyJNb24iXX0sODg5Mzk0KGUpe2UuZXhwb3J0cz1bIk1vbmRheSJdfSw2OTUzMzcoZSl7ZS5leHBvcnRzPVsiTW9udGhzIl19LDMxNjAxOChlKXtlLmV4cG9ydHM9WyJNb3JlIHNldHRpbmdzIl19LDcyMTQzMyhlKXtlLmV4cG9ydHM9WyJNb3JvY2NvIl19LDI5NTU4NihlKXtlLmV4cG9ydHM9WyJNb3JuaW5nLiBNYXJrZXQgaXMgb3BlbiBmb3IgcHJlLW1hcmtldCB0cmFkaW5nLiJdfSw0NDYwNzQoZSl7CmUuZXhwb3J0cz1bIk1vc2NvdyJdfSw4NDk5NzMoZSl7ZS5leHBvcnRzPVsiTWF5Il19LDQzMTg5MihlKXtlLmV4cG9ydHM9WyJNYWRyaWQiXX0sNjAyNTE5KGUpe2UuZXhwb3J0cz1bIk1haW5sYW5kIENoaW5hIl19LDYyNzk2NyhlKXtlLmV4cG9ydHM9WyJNYWxheXNpYSJdfSw1NjMyMzcoZSl7ZS5leHBvcnRzPVsiTWFsdGEiXX0sMzYxNDQ1KGUpe2UuZXhwb3J0cz1bIk1hbmlsYSJdfSwxMDMzMDUoZSl7ZS5leHBvcnRzPVsiTWFyIl19LDYzNTY0MyhlKXtlLmV4cG9ydHM9WyJNYXJjaCJdfSw3NDM2ODkoZSl7ZS5leHBvcnRzPVsiTWFya2V0IGlzIGN1cnJlbnRseSBvbiBob2xpZGF5LiBMdWNreSB0aGVtLiJdfSw5NDcwNDQoZSl7ZS5leHBvcnRzPVsiTWV0ZW9yYSBETE1NIChTb2xhbmEpIl19LDgzMTk3MyhlKXtlLmV4cG9ydHM9WyJNZXRlb3JhIERZTiAoU29sYW5hKSJdfSw3ODkyOTEoZSl7ZS5leHBvcnRzPVsiTWV0cmljIGVycm9yIl19LDg2NTcwMChlKXtlLmV4cG9ydHM9WyJNZXhpY28iXX0sODc0NjA3KGUpe2UuZXhwb3J0cz1bIk1leGljbyBDaXR5Il19LDg1NTYzNihlKXtlLmV4cG9ydHM9WyJNaWRkbGUiXX0sNDI2NjcxKGUpe2UuZXhwb3J0cz1bIk1pbnV0ZXMiXX0sNTMyODg4KGUpe2UuZXhwb3J0cz1bIk10LkdveCJdfSw4MjU0MTQoZSl7ZS5leHBvcnRzPVsiTXVzY2F0Il19LDkwMzY1MChlKXtlLmV4cG9ydHM9WyJOQVNEQVEgRHViYWkiXX0sNzQ4NjcwKGUpe2UuZXhwb3J0cz1bIk5BU0RBUSDigJQgTkFTREFRIFN0b2NrIE1hcmtldCJdfSw1NDEyNTUoZSl7ZS5leHBvcnRzPVsiTkNERVgg4oCUIE5hdGlvbmFsIENvbW1vZGl0eSAmIERlcml2YXRpdmVzIEV4Y2hhbmdlIl19LDIyMDU1NyhlKXtlLmV4cG9ydHM9WyJOR00g4oCUIE5vcmRpYyBHcm93dGggTWFya2V0Il19LDkyMjc3MChlKXtlLmV4cG9ydHM9WyJOU0Ug4oCUIE5hZ295YSBTdG9jayBFeGNoYW5nZSJdfSwyNDUyNDkoZSl7ZS5leHBvcnRzPVsiTlNFIOKAlCBOYWlyb2JpIFNlY3VyaXRpZXMgRXhjaGFuZ2UiXX0sNTgwNzEoZSl7ZS5leHBvcnRzPVsiTlNFIOKAlCBOYXRpb25hbCBTdG9jayBFeGNoYW5nZSBvZiBJbmRpYSJdfSw1NDQxMjEoZSl7ZS5leHBvcnRzPVsiTlNFIOKAlCBOaWdlcmlhbiBTdG9jayBFeGNoYW5nZSJdfSw2ODE2MTcoZSl7ZS5leHBvcnRzPVsiTllNRVgg4oCUIE5ldyBZb3JrIE1lcmNhbnRpbGUgRXhjaGFuZ2UiXX0sOTQyNDg0KGUpe2UuZXhwb3J0cz1bIk5ZU0Ug4oCUIE5ldyBZb3JrIFN0b2NrIEV4Y2hhbmdlIl19LDEyNzYyKGUpe2UuZXhwb3J0cz1bIk5aWCDigJQgTmV3IFplYWxhbmQgU3RvY2sgRXhjaGFuZ2UiXX0sMzAwNTU4KGUpe2UuZXhwb3J0cz1bIk5vIGFjY2VzcyB0byB0aGlzIHNjcmlwdCJdfSw5OTM0MTYoZSl7ZS5leHBvcnRzPVsiTm8gdm9sdW1lIGRhdGEiXX0sMjE5MDY5KGUpe2UuZXhwb3J0cz1bIk5vLCBrZWVwIHRoZW0iXX0sNTYxNjAwKGUpe2UuZXhwb3J0cz1bIk5vdGlmaWNhdGlvbiJdfSw2NDY1NDUoZSl7ZS5leHBvcnRzPVsiTm92Il19LDk3MTU2MShlKXtlLmV4cG9ydHM9WyJOb3ZlbWJlciJdfSw5Njc0MTIoZSl7ZS5leHBvcnRzPVsiTm9yZm9sayBJc2xhbmQiXX0sODQ1NTIzKGUpe2UuZXhwb3J0cz1bIk5vcndheSJdfSwxMjQ5MzQoZSl7ZS5leHBvcnRzPVsiTmFpcm9iaSJdfSw2MTY4NjIoZSl7ZS5leHBvcnRzPVsiTmV0aGVybGFuZHMiXX0sMjU4MTE3KGUpe2UuZXhwb3J0cz1bIk5ldyBZb3JrIl19LDQyMTYoZSl7ZS5leHBvcnRzPVsiTmV3IFplYWxhbmQiXX0sMjc2NTQ3KGUpe2UuZXhwb3J0cz1bIk5pY29zaWEiXX0sODQ5ODY4KGUpe2UuZXhwb3J0cz1bIk5pZ2VyaWEiXX0sNTc2MzQ2KGUpe2UuZXhwb3J0cz1bIlNFVCDigJQgU3RvY2sgRXhjaGFuZ2Ugb2YgVGhhaWxhbmQiXX0sMzkzMjUoZSl7ZS5leHBvcnRzPVsiU0dYIOKAlCBTaW5nYXBvcmUgU3RvY2sgRXhjaGFuZ2UiXX0sOTQ2NjM0KGUpe2UuZXhwb3J0cz1bIlNIRkUg4oCUIFNoYW5naGFpIEZ1dHVyZXMgRXhjaGFuZ2UiXX0sNDIzMjcoZSl7ZS5leHBvcnRzPVsiU0lYIOKAlCBTSVggU3dpc3MgRXhjaGFuZ2UiXX0sMTQxOTgoZSl7ZS5leHBvcnRzPVsiU1Ag4oCUIFMmUCBJbmRleGVzIl19LDI0ODI1NShlKXtlLmV4cG9ydHM9WyJTUCDigJQgUyZQIEluZGljZXMiXX0sMzIxMTc1KGUpe2UuZXhwb3J0cz1bIlNTRSDigJQgU2FudGlhZ28gU3RvY2sgRXhjaGFuZ2UiXX0sNTIzMjkwKGUpe2UuZXhwb3J0cz1bIlNTRSDigJQgU2FwcG9ybyBTZWN1cml0aWVzIEV4Y2hhbmdlIl19LDM2ODkyKGUpe2UuZXhwb3J0cz1bIlNTRSDigJQgU2hhbmdoYWkgU3RvY2sgRXhjaGFuZ2UiXX0sMTI1NTY4KGUpe2UuZXhwb3J0cz1bIlNUTyDigJQgTmFzZGFxIFN0b2NraG9sbSJdfSw1NzI5MDkoZSl7ZS5leHBvcnRzPVsiU1RPTi5maSAoVE9OKSJdfSw3ODQ0OTUoZSl7ZS5leHBvcnRzPVsiU1RPTi5maSB2MiAoVE9OKSJdfSw2MjcxMDQoZSl7ZS5leHBvcnRzPVsiU1ZQIl19LDMwNzk2KGUpe2UuZXhwb3J0cz1bIlNXQiDigJQgU3R1dHRnYXJ0IFN0b2NrIEV4Y2hhbmdlIl19LDgzNDk2MShlKXtlLmV4cG9ydHM9WyJTWlNFIOKAlCBTaGVuemhlbiBTdG9jayBFeGNoYW5nZSJdfSw1NjIzOTUoZSl7ZS5leHBvcnRzPVsiU25hcHNob3QiXX0sNTM4OTQ4KGUpe2UuZXhwb3J0cz1bIlNvdXJjZSJdfSw3OTM0MDIoZSl7ZS5leHBvcnRzPVsiU291cmNlIGNvZGUiXX0sMzEwMDgyKGUpe2UuZXhwb3J0cz1bIlNvdXRoIEFmcmljYSJdfSw1ODc3NTIoZSl7ZS5leHBvcnRzPVsiU291dGggS29yZWEiXX0sNTA0MzEoZSl7ZS5leHBvcnRzPVsiU29maWEiXX0sNDAwMzIwKGUpe2UuZXhwb3J0cz1bIlNvbWV0aGluZyB3ZW50IHdyb25nIHdoZW4gY3JlYXRpbmcgdGhlIGluZGljYXRvci4iXX0sMjg1ZTMoZSl7ZS5leHBvcnRzPVsiU29tZXRoaW5nIHdlbnQgd3JvbmcuIEhhbmcgdGlnaHQgYW5kIHRyeSBhZ2FpbiBsYXRlci4iXX0sNTkxNDE4KGUpe2UuZXhwb3J0cz1bIlNhdCJdfSwzODc5NShlKXtlLmV4cG9ydHM9WyJTYXR1cmRheSJdfSw3NjE1MjMoZSl7ZS5leHBvcnRzPVsiU2F1ZGkgQXJhYmlhIl19LDc4NDc0MShlKXtlLmV4cG9ydHM9WyJTYXZlIGFzIl19LDE3MzQ3OShlKXtlLmV4cG9ydHM9WyJTYXhvIl0KfSw0NTE0NDcoZSl7ZS5leHBvcnRzPVsiU2FuIFNhbHZhZG9yIl19LDUxNDE1NihlKXtlLmV4cG9ydHM9WyJTYW50aWFnbyJdfSw5NTU0MzAoZSl7ZS5leHBvcnRzPVsiU2FvIFBhdWxvIl19LDc2MjE0NShlKXtlLmV4cG9ydHM9WyJTY2FsZSBwcmljZSBjaGFydCBvbmx5Il19LDczMDU4NihlKXtlLmV4cG9ydHM9WyJTZXR0aW5ncyJdfSw4NTAyOTgoZSl7ZS5leHBvcnRzPVsiU2Vjb25kIGZyYWN0aW9uIHBhcnQgaXMgaW52YWxpZC4iXX0sMTU0ODE0KGUpe2UuZXhwb3J0cz1bIlNlY29uZHMiXX0sNDQ0NDE4KGUpe2UuZXhwb3J0cz1bIlNlb3VsIl19LDE3ODQ2OShlKXtlLmV4cG9ydHM9WyJTZXAiXX0sNDE1MjYxKGUpe2UuZXhwb3J0cz1bIlNlcHRlbWJlciJdfSw3MTg1MjkoZSl7ZS5leHBvcnRzPVsiU2VyYmlhIl19LDEwOTk1NihlKXtlLmV4cG9ydHM9WyJTZXNzaW9uIl19LDc5MjQ5NihlKXtlLmV4cG9ydHM9WyJTZXNzaW9uIGJyZWFrcyJdfSw1Nzg4MzEoZSl7ZS5leHBvcnRzPVsiU2hhbmdoYWkiXX0sNjQ5MzczKGUpe2UuZXhwb3J0cz1bIlNob3cgYWxsIGRyYXdpbmdzIl19LDgxODc2MyhlKXtlLmV4cG9ydHM9WyJTaG93IGFsbCBkcmF3aW5ncyBhbmQgaW5kaWNhdG9ycyJdfSw0MjA2MjQoZSl7ZS5leHBvcnRzPVsiU2hvdyBhbGwgZHJhd2luZ3MsIGluZGljYXRvcnMsIHBvc2l0aW9ucywgYW5kIG9yZGVycyJdfSwyMDYzNzkoZSl7ZS5leHBvcnRzPVsiU2hvdyBhbGwgaW5kaWNhdG9ycyJdfSw3NzYwNjMoZSl7ZS5leHBvcnRzPVsiU2hvdyBhbGwgcG9zaXRpb25zIGFuZCBvcmRlcnMiXX0sNjQzNzk1KGUpe2UuZXhwb3J0cz1bIlNpbmdhcG9yZSJdfSw4MDY5NzMoZSl7ZS5leHBvcnRzPVsiU2tpbGxpbmciXX0sMjYzNDMyKGUpe2UuZXhwb3J0cz1bIlNsb3Zha2lhIl19LDcyMTgyMShlKXtlLmV4cG9ydHM9WyJTbG92ZW5pYSJdfSw3ODgzMjEoZSl7ZS5leHBvcnRzPVsiU3BhaW4iXX0sNjkxMjc5KGUpe2UuZXhwb3J0cz1bIlNwcmVhZGV4Il19LDgwNDc2NihlKXtlLmV4cG9ydHM9WyJTcmkgTGFua2EiXX0sOTkyMzYyKGUpe2UuZXhwb3J0cz1bIlN0dWRpZXMgbGltaXQgZXhjZWVkZWQ6IHtudW1iZXJ9IHN0dWRpZXMgcGVyIGxheW91dC5cblBsZWFzZSwgcmVtb3ZlIHNvbWUgc3R1ZGllcy4iXX0sOTMxOTkyKGUpe2UuZXhwb3J0cz1bIlN0eWxlIl19LDM3OTA1KGUpe2UuZXhwb3J0cz1bIlN0YWNrIG9uIHRoZSBsZWZ0Il19LDI3OTk3NyhlKXtlLmV4cG9ydHM9WyJTdGFjayBvbiB0aGUgcmlnaHQiXX0sMjU1NTExKGUpe2UuZXhwb3J0cz1bIlN0b2NraG9sbSJdfSwxMjMyMTkoZSl7ZS5leHBvcnRzPVsiU3RyYXRlZ3kgY2FsY3VsYXRpb24gb24gZWFjaCBoaXN0b3JpY2FsIHRpY2sgaXMgYXZhaWxhYmxlIHRvIFByZW1pdW0gYW5kIFVsdGltYXRlIHBsYW5zIG9ubHkuIFVwZ3JhZGUgeW91ciBwbGFuIHRvIGFjY2VzcyB0aGlzIGZlYXR1cmUuIl19LDUwNzQ1OChlKXtlLmV4cG9ydHM9WyJTdW4iXX0sNDMxNTE2KGUpe2UuZXhwb3J0cz1bIlN1blN3YXAgdjIgKFRST04pIl19LDkwOTMwNChlKXtlLmV4cG9ydHM9WyJTdW5kYXkiXX0sMTAzNShlKXtlLmV4cG9ydHM9WyJTdXNoaVN3YXAgdjIgKEV0aGVyZXVtKSJdfSwzMjQ3MDkoZSl7ZS5leHBvcnRzPVsiU3VzaGlTd2FwIHYyIChQb2x5Z29uKSJdfSwzNjk5NjMoZSl7ZS5leHBvcnRzPVsiU3dlZGVuIl19LDY2MDUzNChlKXtlLmV4cG9ydHM9WyJTd2lzc3F1b3RlIl19LDczMzk3MShlKXtlLmV4cG9ydHM9WyJTd2l0emVybGFuZCJdfSwxNzk5MzQoZSl7ZS5leHBvcnRzPVsiU3lkbmV5Il19LDcyMDUyKGUpe2UuZXhwb3J0cz1bIlN5bWJvbCBFcnJvciJdfSw3NzA0MzcoZSl7ZS5leHBvcnRzPVsiU3ltYm9sIG5hbWUgbGFiZWwiXX0sOTU3MTk5KGUpe2UuZXhwb3J0cz1bIlN5bWJvbCBsYXN0IHByaWNlIGxhYmVsIl19LDg4MjE1KGUpe2UuZXhwb3J0cz1bIlN5bWJvbCBwcmV2aW91cyBkYXkgY2xvc2UgcHJpY2UgbGFiZWwiXX0sMzQ5OTgzKGUpe2UuZXhwb3J0cz1bIlN5bmNTd2FwICh6a1N5bmMpIl19LDE2MTEzKGUpe2UuZXhwb3J0cz1bIlN5bmNTd2FwIHYyICh6a1N5bmMpIl19LDg2MDIxMShlKXtlLmV4cG9ydHM9WyJQU0Ug4oCUIFBoaWxpcHBpbmUgU3RvY2sgRXhjaGFuZ2UiXX0sMTMzNDY0KGUpe2UuZXhwb3J0cz1bIlBTRSDigJQgUHJhZ3VlIFN0b2NrIEV4Y2hhbmdlIl19LDk2MTI0NShlKXtlLmV4cG9ydHM9WyJQU1gg4oCUIFBha2lzdGFuIFN0b2NrIEV4Y2hhbmdlIl19LDk1NDA0MShlKXtlLmV4cG9ydHM9WyJQbkYiXX0sOTY4NjA5KGUpe2UuZXhwb3J0cz1bIlBvbGFuZCJdfSw4NDMyMzUoZSl7ZS5leHBvcnRzPVsiUG9sb25pZXgiXX0sMzk4OTQoZSl7ZS5leHBvcnRzPVsiUG9ydHVnYWwiXX0sODQ0NDM2KGUpe2UuZXhwb3J0cz1bIlBha2lzdGFuIl19LDY4MTU2NChlKXtlLmV4cG9ydHM9WyJQYW5jYWtlU3dhcCB2MiAoQk5CIGNoYWluKSJdfSw1MDIyNChlKXtlLmV4cG9ydHM9WyJQYW5jYWtlU3dhcCB2MyAoQk5CIGNoYWluKSJdfSwyNjEzMTQoZSl7ZS5leHBvcnRzPVsiUGFuY2FrZVN3YXAgdjMgKEV0aGVyZXVtKSJdfSw3ODU2MjkoZSl7ZS5leHBvcnRzPVsiUGFuY2FrZXN3YXAgdjMgKEFyYml0cnVtKSJdfSw1MjA5MTUoZSl7ZS5leHBvcnRzPVsiUGFuY2FrZXN3YXAgdjMgKEJhc2UpIl19LDMwMDM0MChlKXtlLmV4cG9ydHM9WyJQYW5jYWtlc3dhcCB2MyAoemtTeW5jKSJdfSw1NjIyMTUoZSl7ZS5leHBvcnRzPVsiUGFuZ29saW4gdjIgKEF2YWxhbmNoZSkiXX0sNjE3ODc0KGUpe2UuZXhwb3J0cz1bIlBhcmlzIl19LDI4OTQ5MyhlKXtlLmV4cG9ydHM9WyJQZXBwZXJzdG9uZSJdfSwxNTU4MzMoZSl7ZS5leHBvcnRzPVsiUGVyY2VudCJdfSwzNTAxMDgoZSl7ZS5leHBvcnRzPVsiUGVydGgiXX0sODUxMTExKGUpe2UuZXhwb3J0cz1bIlBlcnUiXX0sNzMzNTM5KGUpe2UuZXhwb3J0cz1bIlBoYXJhb2ggKEF2YWxhbmNoZSkiXX0sNzA1MzIyKGUpe2UuZXhwb3J0cz1bIlBoZW1leCJdfSw2MTM2NDcoZSl7ZS5leHBvcnRzPVsiUGhpbGlwcGluZXMiXX0sODMyMDM2KGUpe2UuZXhwb3J0cz1bIlBoaWxsaXAgTm92YSJdfSwzMzE5NTkoZSl7CmUuZXhwb3J0cz1bIlBob2VuaXgiXX0sNjc0NjcwKGUpe2UuZXhwb3J0cz1bIlBpb25leCJdfSwyODg5MTUoZSl7ZS5leHBvcnRzPVsiUGx1cyBidXR0b24iXX0sNTQ0NDAzKGUpe2UuZXhwb3J0cz1bIlByYWd1ZSJdfSw1NjUxNjEoZSl7ZS5leHBvcnRzPVsiUHJlL3Bvc3QgbWFya2V0IHByaWNlIGxhYmVsIl19LDQyMTEwKGUpe2UuZXhwb3J0cz1bIlByZS9wb3N0IG1hcmtldCBwcmljZSBsaW5lIl19LDQ1ODI2MihlKXtlLmV4cG9ydHM9WyJQcmUvcG9zdC9uaWdodCBtYXJrZXQgcHJpY2UgbGFiZWwiXX0sNDY2ODU1KGUpe2UuZXhwb3J0cz1bIlByZS9wb3N0L25pZ2h0IG1hcmtldCBwcmljZSBsaW5lIl19LDc0NjMwNShlKXtlLmV4cG9ydHM9WyJQcmUtbWFya2V0IHdpbGwgc3RhcnQgaW4ge3JlbWFpbmluZ1RpbWV9LiJdfSw3OTQzMzEoZSl7ZS5leHBvcnRzPVsiUHJldmlvdXMgZGF5IGNsb3NlIHByaWNlIGxpbmUiXX0sNjE2MTgoZSl7ZS5leHBvcnRzPVsiUHJpY2UgZm9ybWF0IGlzIGludmFsaWQuIl19LDg4MDIyMihlKXtlLmV4cG9ydHM9WyJQcmljZSBsaW5lIl19LDkzOTMwNyhlKXtlLmV4cG9ydHM9WyJQdWxzZXggKFB1bHNlY2hhaW4pIl19LDk3OTc1OShlKXtlLmV4cG9ydHM9WyJQdWxzZVggdjIgKFB1bHNlY2hhaW4pIl19LDExNTc5MShlKXtlLmV4cG9ydHM9WyJQdXJwbGUgVHJhZGluZyJdfSw2MDgxNjAoZSl7ZS5leHBvcnRzPVsiUHl0aCJdfSw4OTc2NyhlKXtlLmV4cG9ydHM9WyJRMSJdfSw5NDg5MjMoZSl7ZS5leHBvcnRzPVsiUTIiXX0sMzY3OTM1KGUpe2UuZXhwb3J0cz1bIlEzIl19LDE3NTUwNyhlKXtlLmV4cG9ydHM9WyJRNCJdfSw1OTU1NTUoZSl7ZS5leHBvcnRzPVsiUVNFIOKAlCBRYXRhciBTdG9jayBFeGNoYW5nZSJdfSw5MzM3NTMoZSl7ZS5leHBvcnRzPVsiUWF0YXIiXX0sNDkyMjgxKGUpe2UuZXhwb3J0cz1bIlF1aWNrU3dhcCB2MiAoUG9seWdvbikiXX0sODczMzk1KGUpe2UuZXhwb3J0cz1bIlF1aWNrU3dhcCB2MyAoUG9seWdvbiB6a0VWTSkiXX0sNTk2NTQyKGUpe2UuZXhwb3J0cz1bIlF1aWNrU3dhcCB2MyAoUG9seWdvbikiXX0sODE0NjEoZSl7ZS5leHBvcnRzPVsiUXVvdGVzIGFyZSBkZWxheWVkIGJ5IHtudW1iZXJ9IG1pbiJdfSw3OTA1MjQoZSl7ZS5leHBvcnRzPVsiUXVvdGVzIGFyZSBkZWxheWVkIGJ5IHtudW1iZXJ9IG1pbiBhbmQgdXBkYXRlZCBldmVyeSAzMCBzZWNvbmRzIl19LDQyMzQwMShlKXtlLmV4cG9ydHM9WyJST0ZFWCDigJQgTUFUQkEgUk9GRVgiXX0sMTI3MzM2KGUpe2UuZXhwb3J0cz1bIlJVUyJdfSw5MDU5NDUoZSl7ZS5leHBvcnRzPVsiUm9tYW5pYSJdfSwyMjU5OTEoZSl7ZS5leHBvcnRzPVsiUm9tZSJdfSw1NjU2MTEoZSl7ZS5leHBvcnRzPVsiUmF5ZGl1bSAoU29sYW5hKSJdfSwzNDM3OTEoZSl7ZS5leHBvcnRzPVsiUmF5ZGl1bSBDTE1NIChTb2xhbmEpIl19LDgwODk3MihlKXtlLmV4cG9ydHM9WyJSYXlkaXVtIENQTU0gKFNvbGFuYSkiXX0sNTI4MDQ4KGUpe2UuZXhwb3J0cz1bIlJhbXNlcyB2MiAoQXJiaXRydW0pIl19LDk5MDIxMyhlKXtlLmV4cG9ydHM9WyJSYW5nZSJdfSw3NTM4NTgoZSl7ZS5leHBvcnRzPVsiUmV5a2phdmlrIl19LDg4MzkyOChlKXtlLmV4cG9ydHM9WyJSZWFsLXRpbWUiXX0sNzk4MzA3KGUpe2UuZXhwb3J0cz1bIlJlZG8iXX0sOTExMjYoZSl7ZS5leHBvcnRzPVsiUmVtb3ZlIl19LDE1MDg5NyhlKXtlLmV4cG9ydHM9WyJSZW1vdmUgdGhpcyBpbmRpY2F0b3IgYW5kIGl0cyBkZXBlbmRlbnQgaW5kaWNhdG9ycz8iXX0sMTQ1Mzk2KGUpe2UuZXhwb3J0cz1bIlJlbW92ZSB7ZHJhd2luZ3N9Il19LDY4MzIwOChlKXtlLmV4cG9ydHM9WyJSZW1vdmUge2RyYXdpbmdzfSAmIHtpbmRpY2F0b3JzfSJdfSwxMjgxMzMoZSl7ZS5leHBvcnRzPVsiUmVtb3ZlIHtpbmRpY2F0b3JzfSJdfSw4ODk5OShlKXtlLmV4cG9ydHM9WyJSZW5rbyJdfSw4OTMwMjgoZSl7ZS5leHBvcnRzPVsiUmVwbGF5Il19LDk3NzI3KGUpe2UuZXhwb3J0cz1bIlJlcGxheSBNb2RlIl19LDk2NzczNShlKXtlLmV4cG9ydHM9WyJSZXBsYXkgaXNuJ3QgYXZhaWxhYmxlIGZvciB0aGlzIGNoYXJ0IHR5cGUuIENvbnRpbnVlIGFueXdheT8iXX0sNzg0MTE2KGUpe2UuZXhwb3J0cz1bIlJlcGxheSBpc24ndCBhdmFpbGFibGUgZm9yIHRoaXMgc3ltYm9sLiBDb250aW51ZSBhbnl3YXk/Il19LDIwNzg0NShlKXtlLmV4cG9ydHM9WyJSZXNldCBjaGFydCB2aWV3Il19LDkwNjQzNihlKXtlLmV4cG9ydHM9WyJSZXNldCB0aW1lIHNjYWxlIl19LDc4MDk1KGUpe2UuZXhwb3J0cz1bIlJpeWFkaCJdfSwyMjk2NDMoZSl7ZS5leHBvcnRzPVsiUmlnYSJdfSw0OTg0MTUoZSl7ZS5leHBvcnRzPVsiUmlnaHQiXX0sNzMwNjM4KGUpe2UuZXhwb3J0cz1bIlJ1bnRpbWUgZXJyb3IiXX0sMzkwNTk4KGUpe2UuZXhwb3J0cz1bIlJ1c3NpYW4gRmVkZXJhdGlvbiJdfSw0NjUyNjAoZSl7ZS5leHBvcnRzPVsiV09PIFgiXX0sMjkwNzIyKGUpe2UuZXhwb3J0cz1bIldCIC0gVmllbm5hIFN0b2NrIEV4Y2hhbmdlIl19LDQzNjg3MShlKXtlLmV4cG9ydHM9WyJXRUVYIl19LDQyMDkwMShlKXtlLmV4cG9ydHM9WyJXSCBTZWxmSW52ZXN0Il19LDU1NDM0MihlKXtlLmV4cG9ydHM9WyJXb3JsZCBlY29ub21pYyBkYXRhIl19LDkzNzAxNyhlKXtlLmV4cG9ydHM9WyJXYXJuaW5nIl19LDE2NDczNihlKXtlLmV4cG9ydHM9WyJXYXJzYXciXX0sNDY1ODUxKGUpe2UuZXhwb3J0cz1bIldlYnVsbCBQYXkiXX0sNDcwNDgwKGUpe2UuZXhwb3J0cz1bIldlZCJdfSw3NzI3NjUoZSl7ZS5leHBvcnRzPVsiV2VkbmVzZGF5Il19LDI1MTcyOChlKXtlLmV4cG9ydHM9WyJXZWVrcyJdfSw3NDI2NDIoZSl7ZS5leHBvcnRzPVsiV2h5IG1pZ2h0IG15IFVTIHN0b2NrIGRhdGEgbG9vayBkaWZmZXJlbnQ/Il19LDczMjQ0NShlKXtlLmV4cG9ydHM9WyJXaGl0ZUJJVCJdfSwyODU0ODQoZSl7ZS5leHBvcnRzPVsiVE1YIOKAlCBNb250cmVhbCBFeGNoYW5nZSJdfSw3ODIxNjIoZSl7ZS5leHBvcnRzPVsiVE9DT00g4oCUIFRva3lvIENvbW1vZGl0eSBFeGNoYW5nZSJdfSw1MjI3MDcoZSl7CmUuZXhwb3J0cz1bIlRBSUZFWCDigJQgVGFpd2FuIEZ1dHVyZXMgRXhjaGFuZ2UiXX0sMTc3OTcoZSl7ZS5leHBvcnRzPVsiVEFMU0Ug4oCUIE5hc2RhcSBUYWxsaW5uIl19LDIzMzU1KGUpe2UuZXhwb3J0cz1bIlRBU0Ug4oCUIFRlbCBBdml2IFN0b2NrIEV4Y2hhbmdlIl19LDU1MTQ5MShlKXtlLmV4cG9ydHM9WyJURkVYIOKAlCBUaGFpbGFuZCBGdXR1cmVzIEV4Y2hhbmdlIl19LDk2MzI3OChlKXtlLmV4cG9ydHM9WyJURlgg4oCUIFRva3lvIEZpbmFuY2lhbCBFeGNoYW5nZSJdfSwxNzQ4MTgoZSl7ZS5leHBvcnRzPVsiVFBFeCDigJQgVGFpcGVpIEV4Y2hhbmdlIl19LDg3MzAzNShlKXtlLmV4cG9ydHM9WyJUUE8iXX0sNDI5NzMzKGUpe2UuZXhwb3J0cz1bIlRQTyBSZXNldCBhbGwgc3BsaXRzIGFuZCBtZXJnZXMiXX0sOTQxNzQoZSl7ZS5leHBvcnRzPVsiVFNFIOKAlCBUb2t5byBTdG9jayBFeGNoYW5nZSJdfSw4OTUyNDYoZSl7ZS5leHBvcnRzPVsiVFNYIOKAlCBUb3JvbnRvIFN0b2NrIEV4Y2hhbmdlIl19LDE4MzUyNChlKXtlLmV4cG9ydHM9WyJUU1hWIOKAlCBUU1ggVmVudHVyZSBFeGNoYW5nZSJdfSw4MTYyNTMoZSl7ZS5leHBvcnRzPVsiVFdTRSDigJQgVGFpd2FuIFN0b2NrIEV4Y2hhbmdlIl19LDc1MzAyNChlKXtlLmV4cG9ydHM9WyJUbyBjYWxjdWxhdGUgdGhlIFZXQVAgaW5kaWNhdG9yLCBtb3JlIGRhdGEgaXMgbmVlZGVkLiBab29tIG91dCBvciBzY3JvbGwgbGVmdCB0byBsb2FkIG1vcmUgaGlzdG9yaWNhbCBkYXRhLiJdfSw2MjM1NDYoZSl7ZS5leHBvcnRzPVsiVG90YWwiXX0sMTA0MTc3KGUpe2UuZXhwb3J0cz1bIlRva2VsYXUiXX0sNzk4MTk5KGUpe2UuZXhwb3J0cz1bIlRva3lvIl19LDQxNjE5KGUpe2UuZXhwb3J0cz1bIlRvb2JpdCJdfSw5NjUzODgoZSl7ZS5leHBvcnRzPVsiVG9wIl19LDE2MzY3MihlKXtlLmV4cG9ydHM9WyJUb3JvbnRvIl19LDIzODMzNihlKXtlLmV4cG9ydHM9WyJUYWJsZSB2aWV3Il19LDY5NzY0NyhlKXtlLmV4cG9ydHM9WyJUYWRhd3VsIOKAlCBTYXVkaSBFeGNoYW5nZSJdfSw0NzYwMjYoZSl7ZS5leHBvcnRzPVsiVGFpcGVpIl19LDI3MzE1NyhlKXtlLmV4cG9ydHM9WyJUYWl3YW4sIENoaW5hIl19LDY1MjE3NihlKXtlLmV4cG9ydHM9WyJUYWxsaW5uIl19LDc5MTE1KGUpe2UuZXhwb3J0cz1bIlRleHQiXX0sNzQxNjk3KGUpe2UuZXhwb3J0cz1bIlRleHQgd3JhcCJdfSwyNzQ5NTMoZSl7ZS5leHBvcnRzPVsiVGV4dCBhbGlnbm1lbnQiXX0sMzcyMjMoZSl7ZS5leHBvcnRzPVsiVGV4dCBvcmllbnRhdGlvbiJdfSw3NDI5OChlKXtlLmV4cG9ydHM9WyJUZWhyYW4iXX0sMjEyNTY0KGUpe2UuZXhwb3J0cz1bIlRlbXBvcmFyeSBnbGl0Y2giXX0sMzAxNDg5KGUpe2UuZXhwb3J0cz1bIlRodSJdfSw4MzQ2NzEoZSl7ZS5leHBvcnRzPVsiVGh1cnNkYXkiXX0sNTUzMDQ0KGUpe2UuZXhwb3J0cz1bIlRoYWlsYW5kIl19LDI3ODc4OChlKXtlLmV4cG9ydHM9WyJUaGUgVW5pdGVkIFN0YXRlcyBvZiBBbWVyaWNhIl19LDgyMzE2NihlKXtlLmV4cG9ydHM9WyJUaGUgZGF0YSB2ZW5kb3IgZG9lc24ndCBwcm92aWRlIHZvbHVtZSBkYXRhIGZvciB0aGlzIHN5bWJvbC4iXX0sNjAxNzAzKGUpe2UuZXhwb3J0cz1bIlRoZSBpbWFnZSBiZWluZyBwYXN0ZWQgaXMgd2F5IHRvbyBsYXJnZSJdfSwxODIwMjAoZSl7ZS5leHBvcnRzPVsiVGhlIHJlcXVlc3QgdG9vayB0b28gbG9uZyB0byBwcm9jZXNzLiBFbnN1cmUgeW91IGhhdmUgYSBzdGFibGUgaW50ZXJuZXQgY29ubmVjdGlvbi4gSWYgdGhlIGlzc3VlIHBlcnNpc3RzLCB0cnkgZGVjcmVhc2luZyB0aGUgbGVuZ3RoIG9mIHRoZSByZXF1ZXN0ZWQgdGltZSBpbnRlcnZhbC4iXX0sMjM4Njg0KGUpe2UuZXhwb3J0cz1bIlRoZSBzY3JpcHQgeW91J3JlIGxvb2tpbmcgZm9yIGhhcyB2YW5pc2hlZCDigJQgbWF5YmUgaXQncyBiZWVuIHJlbW92ZWQgb3IgdGhlcmUncyBhIGdsaXRjaC4gQ29udGFjdCB0aGUgYXV0aG9yIHRvIGxlYXJuIG1vcmUuIl19LDcxMjE4NihlKXtlLmV4cG9ydHM9WyJUaGVyZSdzIG5vIGRhdGEgZm9yIHlvdXIgc2VsZWN0ZWQgcGVyaW9kIGFuZCBjaGFydCB0aW1lZnJhbWUuIl19LDUxOTE5MihlKXtlLmV4cG9ydHM9WyJUaGlua01hcmtldHMiXX0sNDA5MjEoZSl7ZS5leHBvcnRzPVsiVGhpcyBkcmF3aW5nIGlzIGxvY2tlZCBhbmQgdXNlZCBpbiBhbiBhbGVydC4gUmVtb3ZlIGl0IGFueXdheT8iXX0sMTQwNDA3KGUpe2UuZXhwb3J0cz1bIlRoaXMgZHJhd2luZyBpcyB1c2VkIGluIGFuIGFsZXJ0LiBSZW1vdmUgaXQgYW55d2F5PyJdfSw5MDAwNDEoZSl7ZS5leHBvcnRzPVsiVGhpcyBpbmRpY2F0b3IgaGFzIG5vIHNvdXJjZS10eXBlIGlucHV0LCBzbyBpdCBjYW4ndCBiZSBhcHBsaWVkIHRvIGFub3RoZXIgaW5kaWNhdG9yLiJdfSw0ODc2OTUoZSl7ZS5leHBvcnRzPVsiVGhpcyBzY3JpcHQgaXMgaW52aXRlLW9ubHkuIFRvIHJlcXVlc3QgYWNjZXNzLCBwbGVhc2UgY29udGFjdCBpdHMgYXV0aG9yLiJdfSw1MzM5NTYoZSl7ZS5leHBvcnRzPVsiVGhpcyBzeW1ib2wgaXMgb25seSBhdmFpbGFibGUgb24ge2xpbmtTdGFydH1UcmFkaW5nVmlld3tsaW5rRW5kfS4iXX0sOTk4MDQ0KGUpe2UuZXhwb3J0cz1bIlRpY2ttaWxsIl19LDM3MDI0MyhlKXtlLmV4cG9ydHM9WyJUaWNrcyJdfSw0Nzk0MTYoZSl7ZS5leHBvcnRzPVsiVGljay1iYXNlZCBpbnRlcnZhbHMgYXJlIG5vdCBhdmFpbGFibGUgZm9yIHt0aWNrZXJ9LiJdfSw4NjIxMTkoZSl7ZS5leHBvcnRzPVsiVGltZSJdfSwyMjQxOTgoZSl7ZS5leHBvcnRzPVsiVGltZSB6b25lIl19LDIxNTk5OChlKXtlLmV4cG9ydHM9WyJUaW1lIGZvciBhIHdhbGsg4oCUIHRoaXMgbWFya2V0IGlzIGNsb3NlZC4iXX0sODAwMDA1KGUpe2UuZXhwb3J0cz1bIlRyYWRlIE5hdGlvbiJdfSwxMzc1NTEoZSl7ZS5leHBvcnRzPVsiVHJhZGVnYXRlIEV4Y2hhbmdlIl19LDE1MDI0MihlKXtlLmV4cG9ydHM9WyJUcmFkZXIgSm9lIHYyIChBdmFsYW5jaGUpIl19LDUzMjE0NShlKXtlLmV4cG9ydHM9WyJUcmVuZCBsaW5lIl19LDE2NTQ2NShlKXtlLmV4cG9ydHM9WyJUcml2ZSJdfSw0NzQ5MyhlKXtlLmV4cG9ydHM9WyJUdWUiXX0sCjQ1NjMzNChlKXtlLmV4cG9ydHM9WyJUdWVzZGF5Il19LDMwNzI0OChlKXtlLmV4cG9ydHM9WyJUdW5pcyJdfSw2Nzc1OShlKXtlLmV4cG9ydHM9WyJUdW5pc2lhIl19LDE0OTE4MShlKXtlLmV4cG9ydHM9WyJUdXJib3MgRmluYW5jZSAoU3VpKSJdfSw2MzE4MTAoZSl7ZS5leHBvcnRzPVsiVHVya2V5Il19LDM2MTYzMihlKXtlLmV4cG9ydHM9WyJUdXJxdW9pc2UiXX0sMTYzMTEwKGUpe2UuZXhwb3J0cz1bIlVBRSJdfSw1ODc1MzMoZSl7ZS5leHBvcnRzPVsiVUsiXX0sMzAxMTE3KGUpe2UuZXhwb3J0cz1bIlVTQSJdfSwxMzkxNDEoZSl7ZS5leHBvcnRzPVsiVVNJIl19LDkxMjI1NShlKXtlLmV4cG9ydHM9WyJVVEMiXX0sNzQxMzMoZSl7ZS5leHBvcnRzPVsiVW5kbyJdfSw5MzI4KGUpe2UuZXhwb3J0cz1bIlVuZXhwZWN0ZWQgZXJyb3IgaW4gRGVlcCBCYWNrdGVzdGluZyBtb2RlLiBDb250YWN0IHN1cHBvcnQgZm9yIG1vcmUgaW5mb3JtYXRpb24uIl19LDcwMzkyOShlKXtlLmV4cG9ydHM9WyJVbmlzd2FwIHYyIChCYXNlKSJdfSwzNjU5NDUoZSl7ZS5leHBvcnRzPVsiVW5pc3dhcCB2MiAoRXRoZXJldW0pIl19LDU5MTk3MChlKXtlLmV4cG9ydHM9WyJVbmlzd2FwIHYzIChBcmJpdHJ1bSkiXX0sNzgxNTEoZSl7ZS5leHBvcnRzPVsiVW5pc3dhcCB2MyAoQXZhbGFuY2hlKSJdfSw0MDA2OTcoZSl7ZS5leHBvcnRzPVsiVW5pc3dhcCB2MyAoQk5CIGNoYWluKSJdfSw5OTYyNjUoZSl7ZS5leHBvcnRzPVsiVW5pc3dhcCB2MyAoQmFzZSkiXX0sMjgyNTA1KGUpe2UuZXhwb3J0cz1bIlVuaXN3YXAgdjMgKEV0aGVyZXVtKSJdfSw4NDM3ODQoZSl7ZS5leHBvcnRzPVsiVW5pc3dhcCB2MyAoT3B0aW1pc20pIl19LDc4Mzc3NShlKXtlLmV4cG9ydHM9WyJVbmlzd2FwIHYzIChQb2x5Z29uKSJdfSw3NTc1OTMoZSl7ZS5leHBvcnRzPVsiVW5pc3dhcCB2NCAoQXJiaXRydW0pIl19LDExMTMwMChlKXtlLmV4cG9ydHM9WyJVbmlzd2FwIHY0IChBdmFsYW5jaGUpIl19LDI0NTE2MihlKXtlLmV4cG9ydHM9WyJVbmlzd2FwIHY0IChCTkIgY2hhaW4pIl19LDI3Mjg0KGUpe2UuZXhwb3J0cz1bIlVuaXN3YXAgdjQgKEJhc2UpIl19LDcwODY4MihlKXtlLmV4cG9ydHM9WyJVbmlzd2FwIHY0IChFdGhlcmV1bSkiXX0sNDcwNDgzKGUpe2UuZXhwb3J0cz1bIlVuaXN3YXAgdjQgKE9wdGltaXNtKSJdfSw3ODQxMjIoZSl7ZS5leHBvcnRzPVsiVW5pc3dhcCB2NCAoUG9seWdvbikiXX0sNjg5MzE3KGUpe2UuZXhwb3J0cz1bIlVuaXN3YXAgdjQgKFVuaWNoYWluKSJdfSwyNDkwOTEoZSl7ZS5leHBvcnRzPVsiVW5pdGVkIEFyYWIgRW1pcmF0ZXMiXX0sMjgyNzMoZSl7ZS5leHBvcnRzPVsiVW5pdGVkIEtpbmdkb20iXX0sOTkxMjU4KGUpe2UuZXhwb3J0cz1bIlVua25vd24gZXJyb3IiXX0sODQ2NTk4KGUpe2UuZXhwb3J0cz1bIlVuc3VwcG9ydGVkIGludGVydmFsIl19LDYyMTk4NChlKXtlLmV4cG9ydHM9WyJVaC1vaCEgU29tZXRoaW5nJ3Mgbm90IHdvcmtpbmcgcmlnaHQiXX0sMTkzODE4KGUpe2UuZXhwb3J0cz1bIlVwQml0Il19LDI4MDYyKGUpe2UuZXhwb3J0cz1bIlVwZ3JhZGUgdG8gdGhlIFByZW1pdW0gcGxhbiB0byBhY2Nlc3MgaGlnaGVyIGJhciBkZXRhbGl6YXRpb24gd2l0aCBtb3JlIHRpY2tzIHVzZWQgaW4gY2FsY3VsYXRpb25zLiJdfSw5MjM5MTIoZSl7ZS5leHBvcnRzPVsiVXBncmFkZSB0byB1bmxvY2sgZm9yZWNhc3QgbWV0cmljcyJdfSw1OTkwMDkoZSl7ZS5leHBvcnRzPVsiVXBwZXIgRGV2aWF0aW9uIl19LDU4MDgxKGUpe2UuZXhwb3J0cz1bIlVzZSBMb3dlciBEZXZpYXRpb24iXX0sMjA4NzQ1KGUpe2UuZXhwb3J0cz1bIlVzZSBVcHBlciBEZXZpYXRpb24iXX0sODY0ODQ2KGUpe2UuZXhwb3J0cz1bIlVzZSBvbmUgY29sb3IiXX0sNDIwNDQ5KGUpe2UuZXhwb3J0cz1bIlVzZXItZGVmaW5lZCBlcnJvciJdfSw5OTc1MDAoZSl7ZS5leHBvcnRzPVsiVlNFIOKAlCBOYXNkYXEgVmlsbml1cyJdfSwyMzEzMjUoZSl7ZS5leHBvcnRzPVsiVlZTIEZpbmFuY2UgKENyb25vcykiXX0sOTk0MTc2KGUpe2UuZXhwb3J0cz1bIlZWUyB2MyAoQ3Jvbm9zKSJdfSwzNjQ3MzYoZSl7ZS5leHBvcnRzPVsiVldBUCBpcyB3YWl0aW5nIGZvciBtb3JlIGRhdGEiXX0sNTMzMDc3KGUpe2UuZXhwb3J0cz1bIlZvbG1leCJdfSwzMzI1ODcoZSl7ZS5leHBvcnRzPVsiVm9sdW1lIFByb2ZpbGUgaW5kaWNhdG9yIGF2YWlsYWJsZSBvbmx5IG9uIG91ciB1cGdyYWRlZCBwbGFucy4iXX0sNDk3NjQyKGUpe2UuZXhwb3J0cz1bIlZvbHVtZSBkYXRhIGlzIG5vdCBwcm92aWRlZCBpbiBCSVNUIE1JWEVEIGRhdGEgcGxhbi4iXX0sNDg3MjQyKGUpe2UuZXhwb3J0cz1bIlZvbHVtZSBmb290cHJpbnQiXX0sNTkxMzIoZSl7ZS5leHBvcnRzPVsiVmFuY291dmVyIl19LDQ2MjUxNyhlKXtlLmV4cG9ydHM9WyJWYW50YWdlIl19LDY4MDc5KGUpe2UuZXhwb3J0cz1bIlZlbG9jaXR5IFRyYWRlIl19LDQ0NDgyNShlKXtlLmV4cG9ydHM9WyJWZWxvZHJvbWUgKE9wdGltaXNtKSJdfSw1MzMyNTAoZSl7ZS5leHBvcnRzPVsiVmVsb2Ryb21lIFNsaXBTdHJlYW0gKE9wdGltaXNtKSJdfSw5NTc3MzQoZSl7ZS5leHBvcnRzPVsiVmVsb2Ryb21lIHYyIChPcHRpbWlzbSkiXX0sNjQzNTAzKGUpe2UuZXhwb3J0cz1bIlZlbmV6dWVsYSJdfSw4MDA1MDMoZSl7ZS5leHBvcnRzPVsiVmVydGljYWwiXX0sNjE0NDIoZSl7ZS5leHBvcnRzPVsiVmllbm5hIl19LDg1MjIxKGUpe2UuZXhwb3J0cz1bIlZpZXRuYW0iXX0sMTAwMzAxKGUpe2UuZXhwb3J0cz1bIlZpbG5pdXMiXX0sOTg3NzMzKGUpe2UuZXhwb3J0cz1bIlZpc2liaWxpdHkiXX0sNTI0Nzk1KGUpe2UuZXhwb3J0cz1bIlZpc2libGUgb24gdGFwIl19LDIxNTY3MShlKXtlLmV4cG9ydHM9WyJWaXNpYmxlIG9uIG1vdXNlIG92ZXIiXX0sOTYxODQ3KGUpe2UuZXhwb3J0cz1bIlhFVFIg4oCUIFhldHJhIl19LDY4NjExNChlKXtlLmV4cG9ydHM9WyJYVC5jb20iXX0sNTU4NDQ0KGUpewplLmV4cG9ydHM9WyJZb3UgYXJlIGluIHRoZSBjaGFydCByZXBsYXkgbW9kZS4gQW4gb3JkZXIgd2lsbCBiZSBwbGFjZWQgaW4gcmVhbC10aW1lLiBEbyB5b3Ugc3RpbGwgd2FudCB0byBwbGFjZSB0aGUgb3JkZXI/Il19LDcyMzYzKGUpe2UuZXhwb3J0cz1bIllvdSBhcmUgbm90aWZpZWQiXX0sMTkxMDYoZSl7ZS5leHBvcnRzPVsiWW91IGNhbiBzdGF5IG9uIHRoZSBwcmV2aW91cyBjaGFydCB0eXBlIG9yIGNvbnRpbnVlIHRvIHVzZSBhIG5ldyBvbmUgd2l0aG91dCBiYXIgcmVwbGF5LiJdfSw0MTYxMTkoZSl7ZS5leHBvcnRzPVsiWW91IGNhbiBzdGF5IG9uIHRoZSBwcmV2aW91cyBzeW1ib2wgb3IgY29udGludWUgdG8gdXNlIGEgbmV3IG9uZSB3aXRob3V0IGJhciByZXBsYXkuIl19LDI5OTE4OChlKXtlLmV4cG9ydHM9WyJZb3UgY2Fubm90IHNlZSB0aGlzIHBpdm90IHRpbWVmcmFtZSBvbiB0aGlzIHJlc29sdXRpb24iXX0sNTA1OTg1KGUpe2UuZXhwb3J0cz1bIllvdSBoYXZlIGxvY2tlZCBkcmF3aW5ncyBvbiB0aGlzIHN5bWJvbC4gRG8geW91IHdhbnQgdG8gcmVtb3ZlIHRoZSBsb2NrZWQgZHJhd2luZ3MgdG9vPyJdfSwxNzczNTQoZSl7ZS5leHBvcnRzPVsiWWFuZ29uIl19LDk4NTgyNihlKXtlLmV4cG9ydHM9WyJZZXMsIHJlbW92ZSB0aGVtIl19LDgxODg1MChlKXtlLmV4cG9ydHM9WyJaQ0Ug4oCUIFpoZW5nemhvdSBDb21tb2RpdHkgRXhjaGFuZ2UiXX0sNTM3MTM3KGUpe2UuZXhwb3J0cz1bIlpTRSDigJQgWmFncmViIFN0b2NrIEV4Y2hhbmdlIl19LDU3MDQwMyhlKXtlLmV4cG9ydHM9WyJab29tZXgiXX0sNzkyMzg2KGUpe2UuZXhwb3J0cz1bIlphZ3JlYiJdfSw0NzM0OTYoZSl7ZS5leHBvcnRzPVsiWnVyaWNoIl19LDkxNzU5MChlKXtlLmV4cG9ydHM9WyJjaGFuZ2Ugbm8gb3ZlcmxhcHBpbmcgbGFiZWxzIl19LDUxNjQ2KGUpe2UuZXhwb3J0cz1bImNoYW5nZSBhdmVyYWdlIGNsb3NlIHByaWNlIGxhYmVsIHZpc2liaWxpdHkiXX0sNDA1MzUyKGUpe2UuZXhwb3J0cz1bImNoYW5nZSBhdmVyYWdlIGNsb3NlIHByaWNlIGxpbmUgdmlzaWJpbGl0eSJdfSw5ODc5NzEoZSl7ZS5leHBvcnRzPVsiY2hhbmdlIGJhciBYIGNvb3JkaW5hdGUiXX0sMTQxNTUzKGUpe2UuZXhwb3J0cz1bImNoYW5nZSBiaWQgYW5kIGFzayBsYWJlbHMgdmlzaWJpbGl0eSJdfSwzOTYwNDkoZSl7ZS5leHBvcnRzPVsiY2hhbmdlIGJpZCBhbmQgYXNrIGxpbmVzIHZpc2liaWxpdHkiXX0sOTkzOShlKXtlLmV4cG9ydHM9WyJjaGFuZ2UgY2hhcnQgbGF5b3V0IHRvIHt0aXRsZX0iXX0sMzk5MjU0KGUpe2UuZXhwb3J0cz1bImNoYW5nZSBjb3VudGRvd24gdG8gYmFyIGNsb3NlIHZpc2liaWxpdHkiXX0sMjQ3MDE0KGUpe2UuZXhwb3J0cz1bImNoYW5nZSBkYXRlIHJhbmdlIl19LDU2OTg3KGUpe2UuZXhwb3J0cz1bImNoYW5nZSBoaWdoIGFuZCBsb3cgcHJpY2UgbGFiZWxzIHZpc2liaWxpdHkiXX0sMTg0NjY2KGUpe2UuZXhwb3J0cz1bImNoYW5nZSBoaWdoIGFuZCBsb3cgcHJpY2UgbGluZXMgdmlzaWJpbGl0eSJdfSwzODYzMzUoZSl7ZS5leHBvcnRzPVsiY2hhbmdlIGluZGljYXRvcnMgYW5kIGZpbmFuY2lhbHMgbmFtZSBsYWJlbHMgdmlzaWJpbGl0eSJdfSw2MjQzNjAoZSl7ZS5leHBvcnRzPVsiY2hhbmdlIGluZGljYXRvcnMgYW5kIGZpbmFuY2lhbHMgdmFsdWUgbGFiZWxzIHZpc2liaWxpdHkiXX0sNzM5MDg3KGUpe2UuZXhwb3J0cz1bImNoYW5nZSBwbHVzIGJ1dHRvbiB2aXNpYmlsaXR5Il19LDU3NjcwMShlKXtlLmV4cG9ydHM9WyJjaGFuZ2UgcHJlL3Bvc3QgbWFya2V0IHByaWNlIGxhYmVsIHZpc2liaWxpdHkiXX0sMTc2NzQ1KGUpe2UuZXhwb3J0cz1bImNoYW5nZSBwcmUvcG9zdCBtYXJrZXQgcHJpY2UgbGluZSB2aXNpYmlsaXR5Il19LDg0NDk4NChlKXtlLmV4cG9ydHM9WyJjaGFuZ2UgcHJlL3Bvc3QvbmlnaHQgbWFya2V0IHByaWNlIGxhYmVsIHZpc2liaWxpdHkiXX0sMzk0MjgyKGUpe2UuZXhwb3J0cz1bImNoYW5nZSBwcmUvcG9zdC9uaWdodCBtYXJrZXQgcHJpY2UgbGluZSB2aXNpYmlsaXR5Il19LDg4NjkxMShlKXtlLmV4cG9ydHM9WyJjaGFuZ2UgcHJldmlvdXMgY2xvc2UgcHJpY2UgbGluZSB2aXNpYmlsaXR5Il19LDE5NTIxOChlKXtlLmV4cG9ydHM9WyJjaGFuZ2UgcHJpY2UgWSBjb29yZGluYXRlIl19LDMyMjkxMihlKXtlLmV4cG9ydHM9WyJjaGFuZ2UgcHJpY2UgbGluZSB2aXNpYmlsaXR5Il19LDc0MzM0MShlKXtlLmV4cG9ydHM9WyJjaGFuZ2UgcmVzb2x1dGlvbiJdfSwxODc2OShlKXtlLmV4cG9ydHM9WyJjaGFuZ2Ugc3ltYm9sIl19LDE1NjEwOChlKXtlLmV4cG9ydHM9WyJjaGFuZ2Ugc3ltYm9sIGxhYmVscyB2aXNpYmlsaXR5Il19LDIyNTkwMChlKXtlLmV4cG9ydHM9WyJjaGFuZ2Ugc3ltYm9sIGxhc3QgdmFsdWUgdmlzaWJpbGl0eSJdfSw1OTQyMDkoZSl7ZS5leHBvcnRzPVsiY2hhbmdlIHN5bWJvbCBwcmV2aW91cyBjbG9zZSB2YWx1ZSB2aXNpYmlsaXR5Il19LDcyMzQyNihlKXtlLmV4cG9ydHM9WyJjaGFuZ2Ugc2Vzc2lvbiJdfSwxNDYyMDIoZSl7ZS5leHBvcnRzPVsiY2hhbmdlIHNlc3Npb24gYnJlYWtzIHZpc2liaWxpdHkiXX0sNTg3MjQyKGUpe2UuZXhwb3J0cz1bImNoYW5nZSBzZXJpZXMgc3R5bGUiXX0sMTMxNDA4KGUpe2UuZXhwb3J0cz1bImNoYW5nZSB0aW1lem9uZSJdfSw1MzU0MzMoZSl7ZS5leHBvcnRzPVsiY2hhbmdlIHt0aXRsZX0gY29lZmZzIGFzIHBlcmNlbnRzIHZpc2liaWxpdHkiXX0sNjgwMjY0KGUpe2UuZXhwb3J0cz1bImNoYW5nZSB7dGl0bGV9IGFsbCBsaW5lcyBjb2xvciJdfSw5NDQyNjMoZSl7ZS5leHBvcnRzPVsiY2hhbmdlIHt0aXRsZX0gYmFja2dyb3VuZCB0cmFuc3BhcmVuY3kiXX0sMzE5NTE0KGUpe2UuZXhwb3J0cz1bImNoYW5nZSB7dGl0bGV9IGJhY2tncm91bmQgdmlzaWJpbGl0eSJdfSwyNzA3OTAoZSl7ZS5leHBvcnRzPVsiY2hhbmdlIHt0aXRsZX0gZGF5cyB0byJdfSwyMDM5MDEoZSl7ZS5leHBvcnRzPVsiY2hhbmdlIHt0aXRsZX0gZGF5cyBmcm9tIl19LDkzMTY1NyhlKXtlLmV4cG9ydHM9WyJjaGFuZ2Uge3RpdGxlfSBob3VycyBmcm9tIl19LAo2NTM4MzEoZSl7ZS5leHBvcnRzPVsiY2hhbmdlIHt0aXRsZX0gaG91cnMgdG8iXX0sMjQ0NDc1KGUpe2UuZXhwb3J0cz1bImNoYW5nZSB7dGl0bGV9IGxldmVsIHtpbmRleH0gbGluZSBjb2VmZiJdfSwxNTIyNihlKXtlLmV4cG9ydHM9WyJjaGFuZ2Uge3RpdGxlfSBsZXZlbCB7aW5kZXh9IGxpbmUgY29sb3IiXX0sMTc4NTIxKGUpe2UuZXhwb3J0cz1bImNoYW5nZSB7dGl0bGV9IGxldmVsIHtpbmRleH0gbGluZSB2aXNpYmlsaXR5Il19LDM1MzgyNShlKXtlLmV4cG9ydHM9WyJjaGFuZ2Uge3RpdGxlfSBsZXZlbCB7aW5kZXh9IGxpbmUgd2lkdGgiXX0sNDc1MDU3KGUpe2UuZXhwb3J0cz1bImNoYW5nZSB7dGl0bGV9IGxldmVscyB2aXNpYmlsaXR5Il19LDg3ODk5MChlKXtlLmV4cG9ydHM9WyJjaGFuZ2Uge3RpdGxlfSBtb250aHMgZnJvbSJdfSwyMzg4MihlKXtlLmV4cG9ydHM9WyJjaGFuZ2Uge3RpdGxlfSBtb250aHMgdG8iXX0sOTEyNTcwKGUpe2UuZXhwb3J0cz1bImNoYW5nZSB7dGl0bGV9IG1pbnV0ZXMgdG8iXX0sMzMxMjgxKGUpe2UuZXhwb3J0cz1bImNoYW5nZSB7dGl0bGV9IG1pbnV0ZXMgZnJvbSJdfSwzODI3MjMoZSl7ZS5leHBvcnRzPVsiY2hhbmdlIHt0aXRsZX0gc2Vjb25kcyB0byJdfSw5MzQ3MzYoZSl7ZS5leHBvcnRzPVsiY2hhbmdlIHt0aXRsZX0gc2Vjb25kcyBmcm9tIl19LDQ3NTIyMChlKXtlLmV4cG9ydHM9WyJjaGFuZ2Uge3RpdGxlfSB3ZWVrcyBmcm9tIl19LDIxNDIwNChlKXtlLmV4cG9ydHM9WyJjaGFuZ2Uge3RpdGxlfSB3ZWVrcyB0byJdfSw4NTg4OTkoZSl7ZS5leHBvcnRzPVsiY2hhbmdlIHt0aXRsZX0gdGV4dCJdfSw0NTE3MzIoZSl7ZS5leHBvcnRzPVsiY2hhbmdlIHt0aXRsZX0gdmlzaWJpbGl0eSBvbiB0aWNrcyJdfSw2MDc2NjIoZSl7ZS5leHBvcnRzPVsiY2hhbmdlIHt0aXRsZX0gdmlzaWJpbGl0eSBvbiB3ZWVrcyJdfSwzMTQwNjUoZSl7ZS5leHBvcnRzPVsiY2hhbmdlIHt0aXRsZX0gdmlzaWJpbGl0eSBvbiB7cmFuZ2VzfSJdfSw1OTIyODQoZSl7ZS5leHBvcnRzPVsiY2hhbmdlIHt0aXRsZX0gdmlzaWJpbGl0eSBvbiBkYXlzIl19LDI0MTM2OShlKXtlLmV4cG9ydHM9WyJjaGFuZ2Uge3RpdGxlfSB2aXNpYmlsaXR5IG9uIGhvdXJzIl19LDEwMzg3OShlKXtlLmV4cG9ydHM9WyJjaGFuZ2Uge3RpdGxlfSB2aXNpYmlsaXR5IG9uIG1pbnV0ZXMiXX0sODkxMzk1KGUpe2UuZXhwb3J0cz1bImNoYW5nZSB7dGl0bGV9IHZpc2liaWxpdHkgb24gbW9udGhzIl19LDQwNDkxMChlKXtlLmV4cG9ydHM9WyJjaGFuZ2Uge3RpdGxlfSB2aXNpYmlsaXR5IG9uIHNlY29uZHMiXX0sODI4NTc5KGUpe2UuZXhwb3J0cz1bImNoYW5nZSB7dG9vbE5hbWV9IGxhYmVscyBhbGlnbm1lbnQgdmVydGljYWwiXX0sODgxNzQ2KGUpe2UuZXhwb3J0cz1bImNoYW5nZSB7dG9vbE5hbWV9IGxhYmVscyBhbGlnbm1lbnQgaG9yaXpvbnRhbCJdfSw4MTAzNzcoZSl7ZS5leHBvcnRzPVsiY2hhbmdlIHt0b29sTmFtZX0gbGFiZWxzIGRpcmVjdGlvbiJdfSw2Njg5MTUoZSl7ZS5leHBvcnRzPVsiY2hhbmdlIHt0b29sTmFtZX0gbGluZSB2aXNpYmlsaXR5Il19LDcxNjM2MihlKXtlLmV4cG9ydHM9WyJjaGFuZ2Uge3Rvb2xOYW1lfSBsaW5lIHdpZHRoIl19LDg2NjcxMShlKXtlLmV4cG9ydHM9WyJjaGFuZ2Uge3Rvb2xOYW1lfSBsaW5lIGNvbG9yIl19LDIxODA2NyhlKXtlLmV4cG9ydHM9WyJjaGFuZ2Uge3Rvb2xOYW1lfSBsaW5lIGV4dGVuZGluZyBsZWZ0Il19LDgzODk1OChlKXtlLmV4cG9ydHM9WyJjaGFuZ2Uge3Rvb2xOYW1lfSBsaW5lIGV4dGVuZGluZyByaWdodCJdfSw4NzIxODUoZSl7ZS5leHBvcnRzPVsiY2hhbmdlIHt0b29sTmFtZX0gbGluZSBsZWZ0IGVuZCJdfSw1NTE0NzAoZSl7ZS5leHBvcnRzPVsiY2hhbmdlIHt0b29sTmFtZX0gbGluZSByaWdodCBlbmQiXX0sNDk5NTIzKGUpe2UuZXhwb3J0cz1bImNoYW5nZSB7dG9vbE5hbWV9IGxpbmUgc3R5bGUiXX0sMjQwMzgyKGUpe2UuZXhwb3J0cz1bImNoYW5nZSB7dG9vbE5hbWV9IHRleHQiXX0sNDY3Njg0KGUpe2UuZXhwb3J0cz1bImNoYW5nZSB7dG9vbE5hbWV9IHRleHQgdmlzaWJpbGl0eSJdfSwxNTUwNDQoZSl7ZS5leHBvcnRzPVsiY2hhbmdlIHt0b29sTmFtZX0gdGV4dCB3cmFwIl19LDYyODgzOChlKXtlLmV4cG9ydHM9WyJjaGFuZ2Uge3Rvb2xOYW1lfSB0ZXh0IGJhY2tncm91bmQgY29sb3IiXX0sNTMxMzk3KGUpe2UuZXhwb3J0cz1bImNoYW5nZSB7dG9vbE5hbWV9IHRleHQgYmFja2dyb3VuZCB2aXNpYmlsaXR5Il19LDIyMTc0KGUpe2UuZXhwb3J0cz1bImNoYW5nZSB7dG9vbE5hbWV9IHRleHQgYm9yZGVyIGNvbG9yIl19LDgxODAyKGUpe2UuZXhwb3J0cz1bImNoYW5nZSB7dG9vbE5hbWV9IHRleHQgYm9yZGVyIHdpZHRoIl19LDEyMzc5KGUpe2UuZXhwb3J0cz1bImNoYW5nZSB7dG9vbE5hbWV9IHRleHQgYm9yZGVyIHZpc2liaWxpdHkiXX0sMTY1MzA0KGUpe2UuZXhwb3J0cz1bImNoYW5nZSB7dG9vbE5hbWV9IHRleHQgY29sb3IiXX0sNjc1NDQ2KGUpe2UuZXhwb3J0cz1bImNoYW5nZSB7dG9vbE5hbWV9IHRleHQgZm9udCBib2xkIl19LDU2Mzk0NChlKXtlLmV4cG9ydHM9WyJjaGFuZ2Uge3Rvb2xOYW1lfSB0ZXh0IGZvbnQgaXRhbGljIl19LDI3MDA1MihlKXtlLmV4cG9ydHM9WyJjaGFuZ2Uge3Rvb2xOYW1lfSB0ZXh0IGZvbnQgc2l6ZSJdfSwxMDMzMjcoZSl7ZS5leHBvcnRzPVsiY2hhbmdlIHtwcm9wZXJ0eU5hbWV9IHByb3BlcnR5Il19LDI4ODc5NyhlKXtlLmV4cG9ydHM9WyJjcmVhdGUgbGluZSB0b29scyBncm91cCJdfSwxMzQ1NTgoZSl7ZS5leHBvcnRzPVsiY3JlYXRlIGxpbmUgdG9vbHMgZ3JvdXAgZnJvbSBzZWxlY3Rpb24iXX0sNTQ5OTg2KGUpe2UuZXhwb3J0cz1bImNyZWF0ZSB7dG9vbH0iXX0sNzIxMTE4KGUpe2UuZXhwb3J0cz1bImFubnVhbGx5Il19LDY4OTU4MChlKXtlLmV4cG9ydHM9WyJhZGQgbGluZSB0b29sIHtsaW5lVG9vbH0gdG8gZ3JvdXAge25hbWV9Il19LDQzOTU5MChlKXtlLmV4cG9ydHM9WyJhZGQgbGluZSB0b29sKHMpIHRvIGdyb3VwIHtncm91cH0iXX0sNjQ3NjU2KGUpewplLmV4cG9ydHM9WyJhcHBseSBjaGFydCB0aGVtZSJdfSwzNDc1ODUoZSl7ZS5leHBvcnRzPVsiYXBwbHkgYWxsIGNoYXJ0IHByb3BlcnRpZXMiXX0sODk3NDc2KGUpe2UuZXhwb3J0cz1bImFwcGx5IGluZGljYXRvcnMgdG8gZW50aXJlIGxheW91dCJdfSwzODE1MTMoZSl7ZS5leHBvcnRzPVsiYXBwbHkgc3R1ZHkgdGVtcGxhdGUge3RlbXBsYXRlfSJdfSw2NjMxMjgoZSl7ZS5leHBvcnRzPVsiYXBwbHkgdG9vbGJhcnMgdGhlbWUiXX0sMjUxOTQ4KGUpe2UuZXhwb3J0cz1bImJpdEZseWVyIl19LDY1MzY5KGUpe2UuZXhwb3J0cz1bImJpbGxlZCBtb250aGx5Il19LDI2MDE5MyhlKXtlLmV4cG9ydHM9WyJiaWxsZWQgYW5udWFsbHkiXX0sNjAyNDMxKGUpe2UuZXhwb3J0cz1bImJyaW5nIGdyb3VwIHt0aXRsZX0gZm9yd2FyZCJdfSwzODY1MjIoZSl7ZS5leHBvcnRzPVsiYnJpbmcge3RpdGxlfSB0byBmcm9udCJdfSw4ODcyODIoZSl7ZS5leHBvcnRzPVsiYnJpbmcge3RpdGxlfSBmb3J3YXJkIl19LDE2NDAxOChlKXtlLmV4cG9ydHM9WyJkWWRYIl19LDIzMDk1NyhlKXtlLmV4cG9ydHM9WyJkYXRlIHJhbmdlIGxvY2siXX0sMjc1MjkoZSl7ZS5leHBvcnRzPVsiZGF5cyJdfSw4MTMwOTYoZSl7ZS5leHBvcnRzPVsiZGF5cyB0byJdfSw0MDIwNTEoZSl7ZS5leHBvcnRzPVsiZGF5cyBmcm9tIl19LDQyNDMzNChlKXtlLmV4cG9ydHM9WyJlYXN5TWFya2V0cyJdfSwyNjY3NzUoZSl7ZS5leHBvcnRzPVsiZXJhc2UgbGV2ZWwgbGluZSJdfSwyODg1NzAoZSl7ZS5leHBvcnRzPVsiZXhjbHVkZSBsaW5lIHRvb2xzIGZyb20gZ3JvdXAge2dyb3VwfSJdfSw1OTIxMTMoZSl7ZS5leHBvcnRzPVsiaG91cnMiXX0sNTY0OTk1KGUpe2UuZXhwb3J0cz1bImhvdXJzIGZyb20iXX0sNDMwOTQ5KGUpe2UuZXhwb3J0cz1bImhvdXJzIHRvIl19LDU4OTgxNShlKXtlLmV4cG9ydHM9WyJoaWRlIHt0aXRsZX0iXX0sNDc3NjY1KGUpe2UuZXhwb3J0cz1bImhpZGUgbWFya3Mgb24gYmFycyJdfSw2NTM1NzAoZSl7ZS5leHBvcnRzPVsiaUJyb2tlciJdfSwyMjIyODYoZSl7ZS5leHBvcnRzPVsiaW50ZXJ2YWwgbG9jayJdfSwxMDg2MDIoZSl7ZS5leHBvcnRzPVsiaW5zZXJ0IHt0aXRsZX0gYWZ0ZXIge3RhcmdldFRpdGxlfSJdfSw3ODE3MjEoZSl7ZS5leHBvcnRzPVsiaW5zZXJ0IHt0aXRsZX0gYmVmb3JlIHt0YXJnZXRUaXRsZX0iXX0sOTIxNzM4KGUpe2UuZXhwb3J0cz1bImxvYWRpbmcuLi4iXX0sNjIwOTI3KGUpe2UuZXhwb3J0cz1bImxvY2sge3RpdGxlfSJdfSw3MDYzMDgoZSl7ZS5leHBvcnRzPVsibG9jayBncm91cCB7Z3JvdXB9Il19LDg0MjI3NihlKXtlLmV4cG9ydHM9WyJsZXNzIHRoYW4gMSBtaW51dGUiXX0sOTY1NzkwKGUpe2UuZXhwb3J0cz1bIm1vdmUiXX0sOTYzNTUxKGUpe2UuZXhwb3J0cz1bIm1vdmUgYWxsIHNjYWxlcyB0byBsZWZ0Il19LDc5MTM3MShlKXtlLmV4cG9ydHM9WyJtb3ZlIGFsbCBzY2FsZXMgdG8gcmlnaHQiXX0sMTcwODE5KGUpe2UuZXhwb3J0cz1bIm1vdmUgZHJhd2luZ3MiXX0sNTU2NTY4KGUpe2UuZXhwb3J0cz1bIm1vbnRobHkiXX0sMTk0MzU1KGUpe2UuZXhwb3J0cz1bIm1vbnRocyJdfSw3OTI2NTYoZSl7ZS5leHBvcnRzPVsibW9udGhzIGZyb20iXX0sNTM1NjAwKGUpe2UuZXhwb3J0cz1bIm1vbnRocyB0byJdfSw1NzIzMzQoZSl7ZS5leHBvcnRzPVsibWFrZSBncm91cCB7Z3JvdXB9IGludmlzaWJsZSJdfSwzNTY1NDEoZSl7ZS5leHBvcnRzPVsibWFrZSBncm91cCB7Z3JvdXB9IHZpc2libGUiXX0sNzQ1MTUzKGUpe2UuZXhwb3J0cz1bIm1lWEJUIl19LDY4MTcwMShlKXtlLmV4cG9ydHM9WyJtaW51dGVzIl19LDE3NDM1NihlKXtlLmV4cG9ydHM9WyJtaW51dGVzIHRvIl19LDc3MjM5OShlKXtlLmV4cG9ydHM9WyJtaW51dGVzIGZyb20iXX0sNjkyNTg5KGUpe2UuZXhwb3J0cz1bIm4vYSJdfSwzODYzNzMoZSl7ZS5leHBvcnRzPVsibm90IGF1dGhvcml6ZWQiXX0sMjU2OTY4KGUpe2UuZXhwb3J0cz1bInNjYWxlIHByaWNlIl19LDIzMTgzMShlKXtlLmV4cG9ydHM9WyJzY2FsZSBwcmljZSBjaGFydCBvbmx5Il19LDYxNDkwNihlKXtlLmV4cG9ydHM9WyJzY3JvbGwiXX0sNzc5MTg0KGUpe2UuZXhwb3J0cz1bInNldCBsYXlvdXQgc2l6ZXMiXX0sODMyNjYwKGUpe2UuZXhwb3J0cz1bInNlY29uZHMiXX0sMjQ5NTU3KGUpe2UuZXhwb3J0cz1bInNlY29uZHMgdG8iXX0sODEwNDcwKGUpe2UuZXhwb3J0cz1bInNlY29uZHMgZnJvbSJdfSw1NDAwMzgoZSl7ZS5leHBvcnRzPVsic2VuZCB7dGl0bGV9IGJhY2t3YXJkIl19LDUwMTUwNyhlKXtlLmV4cG9ydHM9WyJzZW5kIHt0aXRsZX0gdG8gYmFjayJdfSw1MTc2MjIoZSl7ZS5leHBvcnRzPVsic2VuZCBncm91cCB7dGl0bGV9IGJhY2t3YXJkIl19LDQ4MjExOChlKXtlLmV4cG9ydHM9WyJzdGF5IGluIGRyYXdpbmcgbW9kZSJdfSw0ODg4ODEoZSl7ZS5leHBvcnRzPVsic3RvcCBzeW5jaW5nIGRyYXdpbmciXX0sMjA5NTk5KGUpe2UuZXhwb3J0cz1bInN3YXAgY2hhcnRzIGluIHRoZSBMYXlvdXQiXX0sNzE5MjA5KGUpe2UuZXhwb3J0cz1bInN5bWJvbCBsb2NrIl19LDgxNTk5MyhlKXtlLmV4cG9ydHM9WyJzeW5jIHRpbWUiXX0sODM3MDY2KGUpe2UuZXhwb3J0cz1bInBhc3RlIGRyYXdpbmciXX0sNzYzMzM5KGUpe2UuZXhwb3J0cz1bInBhc3RlIGluZGljYXRvciJdfSw3OTc0OTEoZSl7ZS5leHBvcnRzPVsicmVhcnJhbmdlIHBhbmVzIl19LDYzNTQ5NihlKXtlLmV4cG9ydHM9WyJyZW1vdmUgZGVzZWxlY3RlZCBlbXB0eSBsaW5lIHRvb2xzIl19LDU0MTY1OShlKXtlLmV4cG9ydHM9WyJyZW1vdmUgbGluZSBkYXRhIHNvdXJjZXMiXX0sNjY2MTQwKGUpe2UuZXhwb3J0cz1bInJlbW92aW5nIGxpbmUgdG9vbHMgZ3JvdXAge25hbWV9Il19LDM4NTMxMChlKXtlLmV4cG9ydHM9WyJyZW5hbWUgZ3JvdXAge2dyb3VwfSB0byB7bmV3TmFtZX0iXX0sMTMzNDk3KGUpe2UuZXhwb3J0cz1bInJlc2V0IGxheW91dCBzaXplcyJdfSw4MzEwNDUoZSl7ZS5leHBvcnRzPVsicmVzaXplIGxheW91dCJdfSwxMjk1MTAoZSl7CmUuZXhwb3J0cz1bInJlc3RvcmUgZGVmYXVsdHMiXX0sNjYyOTAzKGUpe2UuZXhwb3J0cz1bInJlc3RvcmUgc3R1ZHkgZGVmYXVsdHMiXX0sMzU2Mzk4KGUpe2UuZXhwb3J0cz1bIndlZWtzIl19LDYzOTE0MihlKXtlLmV4cG9ydHM9WyJ3ZWVrcyBmcm9tIl19LDUyMDc4NihlKXtlLmV4cG9ydHM9WyJ3ZWVrcyB0byJdfSw3ODQxMjgoZSl7ZS5leHBvcnRzPVsidG9nZ2xlIG1heGltaXplZCBwYW5lIHN0YXRlIl19LDU5OTE0MShlKXtlLmV4cG9ydHM9WyJ0b2dnbGUgYXV0byBzY2FsZSJdfSwxNDUzNjYoZSl7ZS5leHBvcnRzPVsidG9nZ2xlIGNvbGxhcHNlZCBwYW5lIHN0YXRlIl19LDc3NzQ4NShlKXtlLmV4cG9ydHM9WyJ0b2dnbGUgbG9nIHNjYWxlIl19LDc2NDMyMShlKXtlLmV4cG9ydHM9WyJ0YXN0eWZ4Il19LDg2Mzg1MihlKXtlLmV4cG9ydHM9WyJ0aHJlZSBtb250aHMiXX0sNzU1NTY5KGUpe2UuZXhwb3J0cz1bInRpY2tzIl19LDQwMDQxMihlKXtlLmV4cG9ydHM9WyJ0cmFjayB0aW1lIl19LDgzNTgoZSl7ZS5leHBvcnRzPVsidHJpYWwiXX0sOTUyNTIzKGUpe2UuZXhwb3J0cz1bInVubG9jayBncm91cCB7Z3JvdXB9Il19LDc3MDYzOShlKXtlLmV4cG9ydHM9WyJ1bmxvY2sge3RpdGxlfSJdfSw1Mzc5NTMoZSl7ZS5leHBvcnRzPVsie2NoYXJ0U3R5bGV9IGNoYXJ0IHR5cGUgaXNuJ3QgY3VycmVudGx5IGF2YWlsYWJsZSBmb3IgdGljay1iYXNlZCBpbnRlcnZhbHMuIl19LDMzODA5MyhlKXtlLmV4cG9ydHM9WyJ7Y291bnR9IGJhcnMiXX0sNzAyNTEoZSl7ZS5leHBvcnRzPVsie2RheXN9IGFuZCB7aG91cnN9Il19LDc5NDg5NShlKXtlLmV4cG9ydHM9WyJ7aG91cnN9IGFuZCB7bWludXRlc30iXX0sMTUzNzY2KGUpe2UuZXhwb3J0cz1bIntwcm9QbGFuTmFtZX0gVHJpYWwiXX0sMzg2MDQ4KGUpe2UuZXhwb3J0cz1bInt1c2VyTmFtZX0gY3JlYXRlZCB3aXRoIHtjdXN0b21lcn0sIHtkYXRlfSJdfSw5NDM0OTkoZSl7ZS5leHBvcnRzPVsieEV4Y2hhbmdlIl19LDI3ODU2NShlKXtlLmV4cG9ydHM9WyJ6b29tIl19LDMxODIzKGUpe2UuZXhwb3J0cz1bInprU3dhcCAoemtTeW5jKSJdfSwyNTk3KGUpe2UuZXhwb3J0cz1bImFuZCB7bmFtZUNvdW50fSBtb3JlIGluZGljYXRvci4iLCJhbmQge25hbWVDb3VudH0gbW9yZSBpbmRpY2F0b3JzLiJdfSw3NDMwMDIoZSl7ZS5leHBvcnRzPVsiZGF5IiwiZGF5cyJdfSw0MTkxMTQoZSl7ZS5leHBvcnRzPVsiaG91ciIsImhvdXJzIl19LDMyMzQ4NShlKXtlLmV4cG9ydHM9WyJtb250aCIsIm1vbnRocyJdfSwxMTM2NDIoZSl7ZS5leHBvcnRzPVsibWludXRlIiwibWludXRlcyJdfSw2NjU1MzAoZSl7ZS5leHBvcnRzPVsic2Vjb25kIiwic2Vjb25kcyJdfSw2MTY0OShlKXtlLmV4cG9ydHM9WyJyYW5nZSIsInJhbmdlcyJdfSwzODgxMDUoZSl7ZS5leHBvcnRzPVsid2VlayIsIndlZWtzIl19LDUwNjQ0NyhlKXtlLmV4cG9ydHM9WyJ0aWNrIiwidGlja3MiXX0sMjY4MTY2KGUpe2UuZXhwb3J0cz1bIntudW1iZXJ9IGRheSIsIntudW1iZXJ9IGRheXMiXX0sMjk4MjM0KGUpe2UuZXhwb3J0cz1bIntudW1iZXJ9IGhvdXIiLCJ7bnVtYmVyfSBob3VycyJdfSwxNDIxMDEoZSl7ZS5leHBvcnRzPVsie251bWJlcn0gaG91ciIsIntudW1iZXJ9IGhvdXJzIl19LDMyMTQ1KGUpe2UuZXhwb3J0cz1bIntudW1iZXJ9IG1pbnV0ZSIsIntudW1iZXJ9IG1pbnV0ZXMiXX0sNzA0OTU4KGUpe2UuZXhwb3J0cz1bIntudW1iZXJ9IG1pbnV0ZSIsIntudW1iZXJ9IG1pbnV0ZXMiXX0sNDA2NDg1KGUpe2UuZXhwb3J0cz1bInthbW91bnR9IGRyYXdpbmciLCJ7YW1vdW50fSBkcmF3aW5ncyJdfSwxNDE2NjIoZSl7ZS5leHBvcnRzPVsie2Ftb3VudH0gaW5kaWNhdG9yIiwie2Ftb3VudH0gaW5kaWNhdG9ycyJdfSw0NDI2NjYoZSl7ZS5leHBvcnRzPVsieWVhciIsInllYXJzIl19fV0pOw=="}},"time_used":5,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":5,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/98084.76948764014ae1d4ccfb.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.507Z","timestamp":1785148034507,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/98084.76948764014ae1d4ccfb.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\ncontent-type: text/css; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a58ab11-5bd\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Thu, 16 Jul 2026 09:57:37 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/16/2026 11:03:22\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 4a0d4a324f5d09915d551407cb01eff1\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":1469,"size_decoded":1283,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with very long lines (1469), with no line terminators","md5":"42926374e3993d87871854153a9b3f3d","sha1":"8d35f66931a91c4b7dff7c4fb4582b1171f1c65e","sha256":"7c919d72e24d1abd7eb6597bab8be0b3c12227984b62546c4aea7f45fa74759f","sha512":"0d537ebd2b9b8f6e3dd1ae384bcde8b0b86861c84b0810f3c386fafb4394ba8456cb9e60753f2cf9be2c4c53de6bff8f09de764bd469802d154c9b45b250aa20","ssdeep":"","tlshash":"7e314c4a3354a874bb9318a676b7a5983544c87e6543c9ffcd619f5c95c22bb120c318","first_seen":"2026-07-19T21:33:34.13195Z","last_seen":"2026-07-27T12:48:39.787078Z","times_seen":58,"resource_available":false,"data":"LmNvbnRhaW5lci1ENl9uaE9NRntjdXJzb3I6ZGVmYXVsdDt0ZXh0LWFsaWduOmNlbnRlcjt3aWR0aDoxMDAlfS50aXRsZS1ENl9uaE9NRntkaXNwbGF5OmJsb2NrO2ZvbnQtZmVhdHVyZS1zZXR0aW5nczoidG51bSIgb24sImxudW0iIG9uO2ZvbnQtc3R5bGU6bm9ybWFsO21hcmdpbi1ib3R0b206MTJweDstLXVpLWxpYi10eXBvZ3JhcGh5LWZvbnQtc2l6ZToxOHB4O2ZvbnQtc2l6ZTp2YXIoLS11aS1saWItdHlwb2dyYXBoeS1mb250LXNpemUpO2ZvbnQtd2VpZ2h0OjYwMDstLXVpLWxpYi10eXBvZ3JhcGh5LWxpbmUtaGVpZ2h0OjI0cHg7Y29sb3I6dmFyKC0tY29sb3ItdGV4dC1wcmltYXJ5KX0udGl0bGUtRDZfbmhPTUYsLnRpdGxlX2xhcmdlLUQ2X25oT01Ge2ZvbnQtZmFtaWx5Oi1hcHBsZS1zeXN0ZW0sQmxpbmtNYWNTeXN0ZW1Gb250LFRyZWJ1Y2hldCBNUyxSb2JvdG8sVWJ1bnR1LHNhbnMtc2VyaWY7bGluZS1oZWlnaHQ6dmFyKC0tdWktbGliLXR5cG9ncmFwaHktbGluZS1oZWlnaHQpfS50aXRsZV9sYXJnZS1ENl9uaE9NRntmb250LWZlYXR1cmUtc2V0dGluZ3M6InRudW0iIG9uLCJsbnVtIiBvbjstLXVpLWxpYi10eXBvZ3JhcGh5LWxpbmUtaGVpZ2h0OjI4cHg7LS11aS1saWItdHlwb2dyYXBoeS1mb250LXNpemU6MjRweDtmb250LXNpemU6dmFyKC0tdWktbGliLXR5cG9ncmFwaHktZm9udC1zaXplKTtmb250LXN0eWxlOm5vcm1hbDtmb250LXdlaWdodDo3MDB9Lmljb24tRDZfbmhPTUZ7ZGlzcGxheTppbmxpbmUtYmxvY2s7bWFyZ2luLWJvdHRvbToxMnB4fUBtZWRpYSAobWF4LWhlaWdodDo0NDBweCkgYW5kIChvcmllbnRhdGlvbjpsYW5kc2NhcGUpey5pY29uLUQ2X25oT01Ge2Rpc3BsYXk6bm9uZX19LnRleHQtRDZfbmhPTUZ7LS11aS1saWItdHlwb2dyYXBoeS1mb250LXNpemU6MTZweDstLXVpLWxpYi10eXBvZ3JhcGh5LWxpbmUtaGVpZ2h0OjI0cHg7Y29sb3I6dmFyKC0tY29sb3ItdGV4dC1wcmltYXJ5KTtvdmVyZmxvdy13cmFwOmJyZWFrLXdvcmR9LnRleHQtRDZfbmhPTUYsLnRleHRfbm9ybWFsLUQ2X25oT01Ge2ZvbnQtZmFtaWx5Oi1hcHBsZS1zeXN0ZW0sQmxpbmtNYWNTeXN0ZW1Gb250LFRyZWJ1Y2hldCBNUyxSb2JvdG8sVWJ1bnR1LHNhbnMtc2VyaWY7Zm9udC1mZWF0dXJlLXNldHRpbmdzOiJ0bnVtIiBvbiwibG51bSIgb247Zm9udC1zaXplOnZhcigtLXVpLWxpYi10eXBvZ3JhcGh5LWZvbnQtc2l6ZSk7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC13ZWlnaHQ6NDAwO2xpbmUtaGVpZ2h0OnZhcigtLXVpLWxpYi10eXBvZ3JhcGh5LWxpbmUtaGVpZ2h0KX0udGV4dF9ub3JtYWwtRDZfbmhPTUZ7LS11aS1saWItdHlwb2dyYXBoeS1mb250LXNpemU6MTRweDstLXVpLWxpYi10eXBvZ3JhcGh5LWxpbmUtaGVpZ2h0OjE4cHh9LmFjdGlvbi1ENl9uaE9NRntkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OmNlbnRlcjttYXJnaW4tdG9wOjIwcHg7d2lkdGg6MTAwJX0="}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/47092.c57238934a2f7a36a0c0.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.538Z","timestamp":1785148034538,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/47092.c57238934a2f7a36a0c0.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\ncontent-type: text/css; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a58ab11-b9\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Thu, 16 Jul 2026 09:57:37 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/16/2026 11:03:22\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: e8472690435893c88d60951818d55e8f\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":185,"size_decoded":890,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with no line terminators","md5":"24e74681705029f86b9d87bedc027aa5","sha1":"fe1386df90ebe4f07b9dff456b94337a883095c2","sha256":"202296674a1e160a78b7c4b60243b3ee3e435038df80806234e5d0c7ba5a45de","sha512":"c796dea4f074dc6dc1ce415b6f58c1074ecef040f75963d77b501466b6c7d01c2df3dd3c2c6f8a0aafe54ae942c597af1ff7e5a4e44fb78d5a1cc675f07e3206","ssdeep":"","tlshash":"9dc0121255062d0ac4a756a27971259410705417ad336d3fe17c3b314daa6c9299e586","first_seen":"2026-07-19T21:33:33.838584Z","last_seen":"2026-07-27T12:48:39.620018Z","times_seen":57,"resource_available":false,"data":"LmludGVyc2VjdGlvblpvbmUtRUlWMl9SZDB7cG9zaXRpb246cmVsYXRpdmU7d2lkdGg6MH0uaW50ZXJzZWN0aW9uRGV0ZWN0b3ItRUlWMl9SZDB7aGVpZ2h0OjEwMCU7cG9zaXRpb246YWJzb2x1dGV9LmxlZnQtRUlWMl9SZDB7aW5zZXQtaW5saW5lLXN0YXJ0OjB9LnJpZ2h0LUVJVjJfUmQwe2luc2V0LWlubGluZS1lbmQ6MH0="}},"time_used":3,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":3,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/78312.090d8a002b943d28a826.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.849Z","timestamp":1785148034849,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/78312.090d8a002b943d28a826.js HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a102263-2bc5b\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Fri, 22 May 2026 09:31:15 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.57\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 1077\r\ncdn-cachedat: 07/02/2026 20:32:43\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: bb994ca1c0e3baf17381421fa7e7adc8\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":179291,"size_decoded":63982,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, Unicode text, UTF-8 text, with very long lines (3071)","md5":"9ce6eb5fe532e253e8c7b1e3a3c61873","sha1":"1684b85509eb858e647f29a3960f26d46398556e","sha256":"9ef91ec500f44b8288e5280834f8a50ddf643f19f2769f20e8a7e1b4ffddfe17","sha512":"c5dfa84a4002f079bf546d18258b0ea583d40412d64e4e2d1f2564a9e1cbf8fc3881b26162b567eb2e60bcb5a4696b1c4fcd73e673aba1a1f39bc87ed020e511","ssdeep":"3072:vG9QdcjXTxjT85QKGifNae363TC53xn4akHg7WXYNWKzEf:v+Qdijxjo5QVMae363TC53xn4akHg7WP","tlshash":"b404e7923296e02213f186fa08750442f31a7989394b856cf5bd9dd73c9ac4e72bdf78","first_seen":"2026-05-22T16:34:28.663227Z","last_seen":"2026-07-27T10:28:13.882864Z","times_seen":219,"resource_available":true,"data":"InVzZSBzdHJpY3QiOyhzZWxmLndlYnBhY2tDaHVua3RyYWRpbmd2aWV3PXNlbGYud2VicGFja0NodW5rdHJhZGluZ3ZpZXd8fFtdKS5wdXNoKFtbNzgzMTJdLHs2NzgzMTIodCxpLHMpe3MuZChpLHtBcmVhU2VyaWVzOigpPT5FaCxCYXJTZXJpZXM6KCk9PnFoLEJhc2VsaW5lU2VyaWVzOigpPT5DaCxDYW5kbGVzdGlja1NlcmllczooKT0+UmgsQ29sb3JUeXBlOigpPT5WaSxDcm9zc2hhaXJNb2RlOigpPT5HLEhpc3RvZ3JhbVNlcmllczooKT0+UWgsTGFzdFByaWNlQW5pbWF0aW9uTW9kZTooKT0+S2ksTGluZVNlcmllczooKT0+YmgsTGluZVN0eWxlOigpPT5yLExpbmVUeXBlOigpPT5uLE1pc21hdGNoRGlyZWN0aW9uOigpPT56dCxQcmljZUxpbmVTb3VyY2U6KCk9Pk9pLFByaWNlU2NhbGVNb2RlOigpPT5NaSxUaWNrTWFya1R5cGU6KCk9PiRpLGNyZWF0ZUNoYXJ0OigpPT5zaCxjcmVhdGVDaGFydEV4OigpPT5paCxjcmVhdGVTZXJpZXNNYXJrZXJzOigpPT5wbixjcmVhdGVUZXh0V2F0ZXJtYXJrOigpPT5HaCxjdXN0b21TZXJpZXNEZWZhdWx0T3B0aW9uczooKT0+Z24sZGVmYXVsdEhvcnpTY2FsZUJlaGF2aW9yOigpPT5laCxpc0J1c2luZXNzRGF5OigpPT5ZaX0pO3ZhciBlPXMoOTE4Nzc5KTtjb25zdCBoPXt0aXRsZToiIix2aXNpYmxlOiEwLGhpdFRlc3RUb2xlcmFuY2U6MyxsYXN0VmFsdWVWaXNpYmxlOiEwLHByaWNlTGluZVZpc2libGU6ITAscHJpY2VMaW5lU291cmNlOjAscHJpY2VMaW5lV2lkdGg6MSxwcmljZUxpbmVDb2xvcjoiIixwcmljZUxpbmVTdHlsZToyLGJhc2VMaW5lVmlzaWJsZTohMCxiYXNlTGluZVdpZHRoOjEsYmFzZUxpbmVDb2xvcjoiI0IyQjVCRSIsYmFzZUxpbmVTdHlsZTowLHByaWNlRm9ybWF0Ont0eXBlOiJwcmljZSIscHJlY2lzaW9uOjIsbWluTW92ZTouMDF9fTt2YXIgbixyLG87ZnVuY3Rpb24gbCh0LGkpe2NvbnN0IHM9ZnVuY3Rpb24odCxpKXtzd2l0Y2godCl7Y2FzZSAwOmRlZmF1bHQ6cmV0dXJuW107Y2FzZSAxOnJldHVybltpLGldO2Nhc2UgMjpyZXR1cm5bMippLDIqaV07Y2FzZSAzOnJldHVybls2KmksNippXTtjYXNlIDQ6cmV0dXJuW2ksNCppXX19KGksdC5saW5lV2lkdGgpO3JldHVybiB0LnNldExpbmVEYXNoKHMpLHN9ZnVuY3Rpb24gYSh0LGkscyxlKXt0LmJlZ2luUGF0aCgpO2NvbnN0IGg9dC5saW5lV2lkdGglMj8uNTowO3QubW92ZVRvKHMsaStoKSx0LmxpbmVUbyhlLGkraCksdC5zdHJva2UoKX1mdW5jdGlvbiB1KHQsaSl7aWYoIXQpdGhyb3cgbmV3IEVycm9yKCJBc3NlcnRpb24gZmFpbGVkIisoaT8iOiAiK2k6IiIpKX1mdW5jdGlvbiBjKHQpe2lmKHZvaWQgMD09PXQpdGhyb3cgbmV3IEVycm9yKCJWYWx1ZSBpcyB1bmRlZmluZWQiKTtyZXR1cm4gdH1mdW5jdGlvbiBkKHQpe2lmKG51bGw9PT10KXRocm93IG5ldyBFcnJvcigiVmFsdWUgaXMgbnVsbCIpO3JldHVybiB0fWZ1bmN0aW9uIGYodCl7cmV0dXJuIGQoYyh0KSl9KG89bnx8KG49e30pKVtvLlNpbXBsZT0wXT0iU2ltcGxlIixvW28uV2l0aFN0ZXBzPTFdPSJXaXRoU3RlcHMiLG9bby5DdXJ2ZWQ9Ml09IkN1cnZlZCIsZnVuY3Rpb24odCl7dFt0LlNvbGlkPTBdPSJTb2xpZCIsdFt0LkRvdHRlZD0xXT0iRG90dGVkIix0W3QuRGFzaGVkPTJdPSJEYXNoZWQiLHRbdC5MYXJnZURhc2hlZD0zXT0iTGFyZ2VEYXNoZWQiLHRbdC5TcGFyc2VEb3R0ZWQ9NF09IlNwYXJzZURvdHRlZCJ9KHJ8fChyPXt9KSk7Y2xhc3MgbXtjb25zdHJ1Y3Rvcigpe3RoaXMudD1bXX1pKHQsaSxzKXtjb25zdCBlPXtoOnQsbDppLG86ITA9PT1zfTt0aGlzLnQucHVzaChlKX1fKHQpe2NvbnN0IGk9dGhpcy50LmZpbmRJbmRleCgoaT0+dD09PWkuaCkpO2k+LTEmJnRoaXMudC5zcGxpY2UoaSwxKX11KHQpe3RoaXMudD10aGlzLnQuZmlsdGVyKChpPT5pLmwhPT10KSl9cCh0LGkscyl7Y29uc3QgZT1bLi4udGhpcy50XTt0aGlzLnQ9dGhpcy50LmZpbHRlcigodD0+IXQubykpLGUuZm9yRWFjaCgoZT0+ZS5oKHQsaSxzKSkpfXYoKXtyZXR1cm4gdGhpcy50Lmxlbmd0aD4wfW0oKXt0aGlzLnQ9W119fWZ1bmN0aW9uIHAodCwuLi5pKXtmb3IoY29uc3QgcyBvZiBpKWZvcihjb25zdCBpIGluIHMpdm9pZCAwIT09c1tpXSYmT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsaSkmJiFbIl9fcHJvdG9fXyIsImNvbnN0cnVjdG9yIiwicHJvdG90eXBlIl0uaW5jbHVkZXMoaSkmJigib2JqZWN0IiE9dHlwZW9mIHNbaV18fHZvaWQgMD09PXRbaV18fEFycmF5LmlzQXJyYXkoc1tpXSk/dFtpXT1zW2ldOnAodFtpXSxzW2ldKSk7cmV0dXJuIHR9ZnVuY3Rpb24gZyh0KXtyZXR1cm4ibnVtYmVyIj09dHlwZW9mIHQmJmlzRmluaXRlKHQpfWZ1bmN0aW9uIHYodCl7cmV0dXJuIm51bWJlciI9PXR5cGVvZiB0JiZ0JTE9PTB9ZnVuY3Rpb24gYih0KXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIHR9ZnVuY3Rpb24gdyh0KXtyZXR1cm4iYm9vbGVhbiI9PXR5cGVvZiB0fWZ1bmN0aW9uIE0odCl7Y29uc3QgaT10O2lmKCFpfHwib2JqZWN0IiE9dHlwZW9mIGkpcmV0dXJuIGk7bGV0IHMsZSxoO2ZvcihlIGluIHM9QXJyYXkuaXNBcnJheShpKT9bXTp7fSxpKWkuaGFzT3duUHJvcGVydHkoZSkmJihoPWlbZV0sc1tlXT1oJiYib2JqZWN0Ij09dHlwZW9mIGg/TShoKTpoKTtyZXR1cm4gc31mdW5jdGlvbiBTKHQpe3JldHVybiBudWxsIT09dH1mdW5jdGlvbiB5KHQpe3JldHVybiBudWxsPT09dD92b2lkIDA6dH1jb25zdCB4PSItYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICdUcmVidWNoZXQgTVMnLCBSb2JvdG8sIFVidW50dSwgc2Fucy1zZXJpZiI7ZnVuY3Rpb24gXyh0LGkscyl7cmV0dXJuIHZvaWQgMD09PWkmJihpPXgpLGAke3M9dm9pZCAwIT09cz9gJHtzfSBgOiIifSR7dH1weCAke2l9YH1jbGFzcyBDe2NvbnN0cnVjdG9yKHQpe3RoaXMuTT17UzoxLEM6NSxrOk5hTixQOiIiLFQ6IiIsUjoiIixEOiIiLEk6MCxWOjAsQjowLEE6MCxMOjB9LHRoaXMuTz10fU4oKXtjb25zdCB0PXRoaXMuTSxpPXRoaXMuRigpLHM9dGhpcy5XKCk7cmV0dXJuIHQuaz09PWkmJnQuVD09PXN8fCh0Lms9aSx0LlQ9cywKdC5QPV8oaSxzKSx0LkE9Mi41LzEyKmksdC5JPXQuQSx0LlY9aS8xMip0LkMsdC5CPWkvMTIqdC5DLHQuTD0wKSx0LlI9dGhpcy5IKCksdC5EPXRoaXMuVSgpLHRoaXMuTX1IKCl7cmV0dXJuIHRoaXMuTy5OKCkubGF5b3V0LnRleHRDb2xvcn1VKCl7cmV0dXJuIHRoaXMuTy4kKCl9Rigpe3JldHVybiB0aGlzLk8uTigpLmxheW91dC5mb250U2l6ZX1XKCl7cmV0dXJuIHRoaXMuTy5OKCkubGF5b3V0LmZvbnRGYW1pbHl9fWZ1bmN0aW9uIFQodCl7cmV0dXJuIHQ8MD8wOnQ+MjU1PzI1NTpNYXRoLnJvdW5kKHQpfHwwfWZ1bmN0aW9uIGsodCl7cmV0dXJuLjE5OSp0WzBdKy42ODcqdFsxXSsuMTE0KnRbMl19Y2xhc3MgRXtjb25zdHJ1Y3Rvcih0LGkpe3RoaXMuaj1uZXcgTWFwLHRoaXMucT10LGkmJih0aGlzLmo9aSl9WSh0LGkpe2lmKCJ0cmFuc3BhcmVudCI9PT10KXJldHVybiB0O2NvbnN0IHM9dGhpcy5LKHQpLGU9c1szXTtyZXR1cm5gcmdiYSgke3NbMF19LCAke3NbMV19LCAke3NbMl19LCAke2kqZX0pYH1aKHQpe2NvbnN0IGk9dGhpcy5LKHQpO3JldHVybntHOmByZ2IoJHtpWzBdfSwgJHtpWzFdfSwgJHtpWzJdfSlgLFg6ayhpKT4xNjA/ImJsYWNrIjoid2hpdGUifX1KKHQpe3JldHVybiBrKHRoaXMuSyh0KSl9dHQodCxpLHMpe2NvbnN0W2UsaCxuLHJdPXRoaXMuSyh0KSxbbyxsLGEsdV09dGhpcy5LKGkpLGM9W1QoZStzKihvLWUpKSxUKGgrcyoobC1oKSksVChuK3MqKGEtbikpLChkPXIrcyoodS1yKSxkPD0wfHxkPjE/TWF0aC5taW4oTWF0aC5tYXgoZCwwKSwxKTpNYXRoLnJvdW5kKDFlNCpkKS8xZTQpXTt2YXIgZDtyZXR1cm5gcmdiYSgke2NbMF19LCAke2NbMV19LCAke2NbMl19LCAke2NbM119KWB9Syh0KXtjb25zdCBpPXRoaXMuai5nZXQodCk7aWYoaSlyZXR1cm4gaTtjb25zdCBzPWZ1bmN0aW9uKHQpe2NvbnN0IGk9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7aS5zdHlsZS5kaXNwbGF5PSJub25lIixkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGkpLGkuc3R5bGUuY29sb3I9dDtjb25zdCBzPXdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGkpLmNvbG9yO3JldHVybiBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGkpLHN9KHQpLGU9cy5tYXRjaCgvXnJnYmE/XHMqXCgoXGQrKSxccyooXGQrKSxccyooXGQrKSg/OixccyooXGQqXC4/XGQrKSk/XCkkLyk7aWYoIWUpe2lmKHRoaXMucS5sZW5ndGgpZm9yKGNvbnN0IGkgb2YgdGhpcy5xKXtjb25zdCBzPWkodCk7aWYocylyZXR1cm4gdGhpcy5qLnNldCh0LHMpLHN9dGhyb3cgbmV3IEVycm9yKGBGYWlsZWQgdG8gcGFyc2UgY29sb3I6ICR7dH1gKX1jb25zdCBoPVtwYXJzZUludChlWzFdLDEwKSxwYXJzZUludChlWzJdLDEwKSxwYXJzZUludChlWzNdLDEwKSxlWzRdP3BhcnNlRmxvYXQoZVs0XSk6MV07cmV0dXJuIHRoaXMuai5zZXQodCxoKSxofX1jbGFzcyBOe2NvbnN0cnVjdG9yKCl7dGhpcy5pdD1bXX1udCh0KXt0aGlzLml0PXR9c3QodCxpLHMpe3RoaXMuaXQuZm9yRWFjaCgoZT0+e2Uuc3QodCxpLHMpfSkpfX1jbGFzcyB6e3N0KHQsaSxzKXt0LnVzZUJpdG1hcENvb3JkaW5hdGVTcGFjZSgodD0+dGhpcy5ldCh0LGkscykpKX19Y2xhc3MgUCBleHRlbmRzIHp7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMucnQ9bnVsbH1odCh0KXt0aGlzLnJ0PXR9ZXQoe2NvbnRleHQ6dCxob3Jpem9udGFsUGl4ZWxSYXRpbzppLHZlcnRpY2FsUGl4ZWxSYXRpbzpzfSl7aWYobnVsbD09PXRoaXMucnR8fG51bGw9PT10aGlzLnJ0Lmx0KXJldHVybjtjb25zdCBlPXRoaXMucnQubHQsaD10aGlzLnJ0LG49TWF0aC5tYXgoMSxNYXRoLmZsb29yKGkpKSUyLzIscj1yPT57dC5iZWdpblBhdGgoKTtmb3IobGV0IG89ZS50by0xO28+PWUuZnJvbTstLW8pe2NvbnN0IGU9aC5vdFtvXSxsPU1hdGgucm91bmQoZS5fdCppKStuLGE9ZS51dCpzLHU9cipzK247dC5tb3ZlVG8obCxhKSx0LmFyYyhsLGEsdSwwLDIqTWF0aC5QSSl9dC5maWxsKCl9O2guY3Q+MCYmKHQuZmlsbFN0eWxlPWguZHQscihoLmZ0K2guY3QpKSx0LmZpbGxTdHlsZT1oLnZ0LHIoaC5mdCl9fWZ1bmN0aW9uIHEoKXtyZXR1cm57b3Q6W3tfdDowLHV0OjAsd3Q6MCxNdDowfV0sdnQ6IiIsZHQ6IiIsZnQ6MCxjdDowLGx0Om51bGx9fWNvbnN0IEw9e2Zyb206MCx0bzoxfTtjbGFzcyBJe2NvbnN0cnVjdG9yKHQsaSxzKXt0aGlzLmd0PW5ldyBOLHRoaXMuYnQ9W10sdGhpcy5TdD1bXSx0aGlzLnh0PSEwLHRoaXMuTz10LHRoaXMuQ3Q9aSx0aGlzLnl0PXMsdGhpcy5ndC5udCh0aGlzLmJ0KX1rdCh0KXt0aGlzLlB0KCksdGhpcy54dD0hMH1UdCgpe3JldHVybiB0aGlzLnh0JiYodGhpcy5SdCgpLHRoaXMueHQ9ITEpLHRoaXMuZ3R9UHQoKXtjb25zdCB0PXRoaXMueXQuRHQoKTt0Lmxlbmd0aCE9PXRoaXMuYnQubGVuZ3RoJiYodGhpcy5TdD10Lm1hcChxKSx0aGlzLmJ0PXRoaXMuU3QubWFwKCh0PT57Y29uc3QgaT1uZXcgUDtyZXR1cm4gaS5odCh0KSxpfSkpLHRoaXMuZ3QubnQodGhpcy5idCkpfVJ0KCl7Y29uc3QgdD0yPT09dGhpcy5DdC5OKCkubW9kZXx8IXRoaXMuQ3QuSXQoKSxpPXRoaXMueXQuVnQoKSxzPXRoaXMuQ3QuQnQoKSxlPXRoaXMuTy5FdCgpO3RoaXMuUHQoKSxpLmZvckVhY2goKChpLGgpPT57Y29uc3Qgbj10aGlzLlN0W2hdLHI9aS5BdChzKSxvPWkuTHQoKTshdCYmbnVsbCE9PXImJmkuSXQoKSYmbnVsbCE9PW8/KG4udnQ9ci56dCxuLmZ0PXIuZnQsbi5jdD1yLk90LG4ub3RbMF0uTXQ9ci5NdCxuLm90WzBdLnV0PWkuRnQoKS5OdChyLk10LG8uV3QpLG4uZHQ9ci5IdD8/dGhpcy5PLlV0KG4ub3RbMF0udXQvaS5GdCgpLiR0KCkpLG4ub3RbMF0ud3Q9cyxuLm90WzBdLl90PWUuanQocyksbi5sdD1MKTpuLmx0PW51bGx9KSl9fWNsYXNzIFIgZXh0ZW5kcyB6e2NvbnN0cnVjdG9yKHQpe3N1cGVyKCksdGhpcy5xdD10fWV0KHtjb250ZXh0OnQsYml0bWFwU2l6ZTppLGhvcml6b250YWxQaXhlbFJhdGlvOnMsdmVydGljYWxQaXhlbFJhdGlvOmV9KXtpZihudWxsPT09dGhpcy5xdClyZXR1cm47Y29uc3QgaD10aGlzLnF0Lll0Lkl0LG49dGhpcy5xdC5LdC5JdAo7aWYoIWgmJiFuKXJldHVybjtjb25zdCByPU1hdGgucm91bmQodGhpcy5xdC5fdCpzKSxvPU1hdGgucm91bmQodGhpcy5xdC51dCplKTt0LmxpbmVDYXA9ImJ1dHQiLGgmJnI+PTAmJih0LmxpbmVXaWR0aD1NYXRoLmZsb29yKHRoaXMucXQuWXQuY3QqcyksdC5zdHJva2VTdHlsZT10aGlzLnF0Lll0LlIsdC5maWxsU3R5bGU9dGhpcy5xdC5ZdC5SLGwodCx0aGlzLnF0Lll0Llp0KSxmdW5jdGlvbih0LGkscyxlKXt0LmJlZ2luUGF0aCgpO2NvbnN0IGg9dC5saW5lV2lkdGglMj8uNTowO3QubW92ZVRvKGkraCwwKSx0LmxpbmVUbyhpK2gsZSksdC5zdHJva2UoKX0odCxyLDAsaS5oZWlnaHQpKSxuJiZvPj0wJiYodC5saW5lV2lkdGg9TWF0aC5mbG9vcih0aGlzLnF0Lkt0LmN0KmUpLHQuc3Ryb2tlU3R5bGU9dGhpcy5xdC5LdC5SLHQuZmlsbFN0eWxlPXRoaXMucXQuS3QuUixsKHQsdGhpcy5xdC5LdC5adCksYSh0LG8sMCxpLndpZHRoKSl9fWNsYXNzIEZ7Y29uc3RydWN0b3IodCxpKXt0aGlzLnh0PSEwLHRoaXMuR3Q9e1l0OntjdDoxLFp0OjAsUjoiIixJdDohMX0sS3Q6e2N0OjEsWnQ6MCxSOiIiLEl0OiExfSxfdDowLHV0OjB9LHRoaXMuWHQ9bmV3IFIodGhpcy5HdCksdGhpcy5KdD10LHRoaXMueXQ9aX1rdCgpe3RoaXMueHQ9ITB9VHQodCl7cmV0dXJuIHRoaXMueHQmJih0aGlzLlJ0KCksdGhpcy54dD0hMSksdGhpcy5YdH1SdCgpe2NvbnN0IHQ9dGhpcy5KdC5JdCgpLGk9dGhpcy55dC5RdCgpLk4oKS5jcm9zc2hhaXIscz10aGlzLkd0O2lmKDI9PT1pLm1vZGUpcmV0dXJuIHMuS3QuSXQ9ITEsdm9pZChzLll0Lkl0PSExKTtzLkt0Lkl0PXQmJnRoaXMuSnQudGkodGhpcy55dCkscy5ZdC5JdD10JiZ0aGlzLkp0LmlpKCkscy5LdC5jdD1pLmhvcnpMaW5lLndpZHRoLHMuS3QuWnQ9aS5ob3J6TGluZS5zdHlsZSxzLkt0LlI9aS5ob3J6TGluZS5jb2xvcixzLll0LmN0PWkudmVydExpbmUud2lkdGgscy5ZdC5adD1pLnZlcnRMaW5lLnN0eWxlLHMuWXQuUj1pLnZlcnRMaW5lLmNvbG9yLHMuX3Q9dGhpcy5KdC5uaSgpLHMudXQ9dGhpcy5KdC5zaSgpfX1mdW5jdGlvbiBXKHQsaSxzLGUsaCxuKXt0LmZpbGxSZWN0KGkrbixzLGUtMipuLG4pLHQuZmlsbFJlY3QoaStuLHMraC1uLGUtMipuLG4pLHQuZmlsbFJlY3QoaSxzLG4saCksdC5maWxsUmVjdChpK2UtbixzLG4saCl9ZnVuY3Rpb24gUSh0LGkscyxlLGgsbil7dC5zYXZlKCksdC5nbG9iYWxDb21wb3NpdGVPcGVyYXRpb249ImNvcHkiLHQuZmlsbFN0eWxlPW4sdC5maWxsUmVjdChpLHMsZSxoKSx0LnJlc3RvcmUoKX1mdW5jdGlvbiBEKHQsaSxzLGUsaCxuKXt0LmJlZ2luUGF0aCgpLHQucm91bmRSZWN0P3Qucm91bmRSZWN0KGkscyxlLGgsbik6KHQubGluZVRvKGkrZS1uWzFdLHMpLDAhPT1uWzFdJiZ0LmFyY1RvKGkrZSxzLGkrZSxzK25bMV0sblsxXSksdC5saW5lVG8oaStlLHMraC1uWzJdKSwwIT09blsyXSYmdC5hcmNUbyhpK2UscytoLGkrZS1uWzJdLHMraCxuWzJdKSx0LmxpbmVUbyhpK25bM10scytoKSwwIT09blszXSYmdC5hcmNUbyhpLHMraCxpLHMraC1uWzNdLG5bM10pLHQubGluZVRvKGkscytuWzBdKSwwIT09blswXSYmdC5hcmNUbyhpLHMsaStuWzBdLHMsblswXSkpfWZ1bmN0aW9uIEIodCxpLHMsZSxoLG4scj0wLG89WzAsMCwwLDBdLGw9IiIpe2lmKHQuc2F2ZSgpLCFyfHwhbHx8bD09PW4pcmV0dXJuIEQodCxpLHMsZSxoLG8pLHQuZmlsbFN0eWxlPW4sdC5maWxsKCksdm9pZCB0LnJlc3RvcmUoKTtjb25zdCBhPXIvMjt2YXIgdTtEKHQsaSthLHMrYSxlLXIsaC1yLCh1PS1hLG8ubWFwKCh0PT4wPT09dD90OnQrdSkpKSksInRyYW5zcGFyZW50IiE9PW4mJih0LmZpbGxTdHlsZT1uLHQuZmlsbCgpKSwidHJhbnNwYXJlbnQiIT09bCYmKHQubGluZVdpZHRoPXIsdC5zdHJva2VTdHlsZT1sLHQuY2xvc2VQYXRoKCksdC5zdHJva2UoKSksdC5yZXN0b3JlKCl9ZnVuY3Rpb24gSyh0LGkscyxlLGgsbixyKXt0LnNhdmUoKSx0Lmdsb2JhbENvbXBvc2l0ZU9wZXJhdGlvbj0iY29weSI7Y29uc3Qgbz10LmNyZWF0ZUxpbmVhckdyYWRpZW50KDAsMCwwLGgpO28uYWRkQ29sb3JTdG9wKDAsbiksby5hZGRDb2xvclN0b3AoMSxyKSx0LmZpbGxTdHlsZT1vLHQuZmlsbFJlY3QoaSxzLGUsaCksdC5yZXN0b3JlKCl9Y2xhc3MgT3tjb25zdHJ1Y3Rvcih0LGkpe3RoaXMuaHQodCxpKX1odCh0LGkpe3RoaXMucXQ9dCx0aGlzLmVpPWl9JHQodCxpKXtyZXR1cm4gdGhpcy5xdC5JdD90LmsrdC5BK3QuSTowfXN0KHQsaSxzLGUpe2lmKCF0aGlzLnF0Lkl0fHwwPT09dGhpcy5xdC5yaS5sZW5ndGgpcmV0dXJuO2NvbnN0IGg9dGhpcy5xdC5SLG49dGhpcy5laS5HLHI9dC51c2VCaXRtYXBDb29yZGluYXRlU3BhY2UoKHQ9Pntjb25zdCByPXQuY29udGV4dDtyLmZvbnQ9aS5QO2NvbnN0IG89dGhpcy5oaSh0LGkscyxlKSxsPW8uYWk7cmV0dXJuIG8ubGk/QihyLGwub2ksbC5faSxsLnVpLGwuY2ksbixsLmRpLFtsLmZ0LDAsMCxsLmZ0XSxuKTpCKHIsbC5maSxsLl9pLGwudWksbC5jaSxuLGwuZGksWzAsbC5mdCxsLmZ0LDBdLG4pLHRoaXMucXQucGkmJihyLmZpbGxTdHlsZT1oLHIuZmlsbFJlY3QobC5maSxsLm1pLGwud2ktbC5maSxsLk1pKSksdGhpcy5xdC5naSYmKHIuZmlsbFN0eWxlPWkuRCxyLmZpbGxSZWN0KG8ubGk/bC5iaS1sLmRpOjAsbC5faSxsLmRpLGwuU2ktbC5faSkpLG99KSk7dC51c2VNZWRpYUNvb3JkaW5hdGVTcGFjZSgoKHtjb250ZXh0OnR9KT0+e2NvbnN0IHM9ci54aTt0LmZvbnQ9aS5QLHQudGV4dEFsaWduPXIubGk/InJpZ2h0IjoibGVmdCIsdC50ZXh0QmFzZWxpbmU9Im1pZGRsZSIsdC5maWxsU3R5bGU9aCx0LmZpbGxUZXh0KHRoaXMucXQucmkscy5DaSwocy5faStzLlNpKS8yK3MueWkpfSkpfWhpKHQsaSxzLGUpewpjb25zdHtjb250ZXh0OmgsYml0bWFwU2l6ZTpuLG1lZGlhU2l6ZTpyLGhvcml6b250YWxQaXhlbFJhdGlvOm8sdmVydGljYWxQaXhlbFJhdGlvOmx9PXQsYT10aGlzLnF0LnBpfHwhdGhpcy5xdC5raT9pLkM6MCx1PXRoaXMucXQuUGk/aS5TOjAsYz1pLkErdGhpcy5laS5UaSxkPWkuSSt0aGlzLmVpLlJpLGY9aS5WLG09aS5CLHA9dGhpcy5xdC5yaSxnPWkuayx2PXMuRGkoaCxwKSxiPU1hdGguY2VpbChzLklpKGgscCkpLHc9ZytjK2QsTT1pLlMrZittK2IrYSxTPU1hdGgubWF4KDEsTWF0aC5mbG9vcihsKSk7bGV0IHk9TWF0aC5yb3VuZCh3KmwpO3klMiE9UyUyJiYoeSs9MSk7Y29uc3QgeD11PjA/TWF0aC5tYXgoMSxNYXRoLmZsb29yKHUqbykpOjAsXz1NYXRoLnJvdW5kKE0qbyksQz1NYXRoLnJvdW5kKGEqbyksVD10aGlzLmVpLlZpPz90aGlzLmVpLkJpPz90aGlzLmVpLkVpLGs9TWF0aC5yb3VuZChUKmwpLU1hdGguZmxvb3IoLjUqbCksRT1NYXRoLmZsb29yKGsrUy8yLXkvMiksTj1FK3ksej0icmlnaHQiPT09ZSxQPXo/ci53aWR0aC11OnUscT16P24ud2lkdGgteDp4O2xldCBMLEksUjtyZXR1cm4gej8oTD1xLV8sST1xLUMsUj1QLWEtZi11KTooTD1xK18sST1xK0MsUj1QK2ErZikse2xpOnosYWk6e19pOkUsbWk6ayxTaTpOLHVpOl8sY2k6eSxmdDoyKm8sZGk6eCxvaTpMLGZpOnEsd2k6SSxNaTpTLGJpOm4ud2lkdGh9LHhpOntfaTpFL2wsU2k6Ti9sLENpOlIseWk6dn19fX1jbGFzcyBWe2NvbnN0cnVjdG9yKHQpe3RoaXMuQWk9e0VpOjAsRzoiIzAwMCIsUmk6MCxUaTowfSx0aGlzLkxpPXtyaToiIixJdDohMSxwaTohMCxraTohMSxIdDoiIixSOiIjRkZGIixnaTohMSxQaTohMX0sdGhpcy56aT17cmk6IiIsSXQ6ITEscGk6ITEsa2k6ITAsSHQ6IiIsUjoiI0ZGRiIsZ2k6ITAsUGk6ITB9LHRoaXMueHQ9ITAsdGhpcy5PaT1uZXcodHx8TykodGhpcy5MaSx0aGlzLkFpKSx0aGlzLk5pPW5ldyh0fHxPKSh0aGlzLnppLHRoaXMuQWkpfXJpKCl7cmV0dXJuIHRoaXMuRmkoKSx0aGlzLkxpLnJpfUVpKCl7cmV0dXJuIHRoaXMuRmkoKSx0aGlzLkFpLkVpfWt0KCl7dGhpcy54dD0hMH0kdCh0LGk9ITEpe3JldHVybiBNYXRoLm1heCh0aGlzLk9pLiR0KHQsaSksdGhpcy5OaS4kdCh0LGkpKX1XaSgpe3JldHVybiB0aGlzLkFpLlZpPz9udWxsfUhpKCl7cmV0dXJuIHRoaXMuQWkuVmk/P3RoaXMuQWkuQmk/P3RoaXMuRWkoKX1VaSh0KXt0aGlzLkFpLkJpPXQ/P3ZvaWQgMH0kaSgpe3JldHVybiB0aGlzLkZpKCksdGhpcy5MaS5JdHx8dGhpcy56aS5JdH1qaSgpe3JldHVybiB0aGlzLkZpKCksdGhpcy5MaS5JdH1UdCh0KXtyZXR1cm4gdGhpcy5GaSgpLHRoaXMuTGkucGk9dGhpcy5MaS5waSYmdC5OKCkudGlja3NWaXNpYmxlLHRoaXMuemkucGk9dGhpcy56aS5waSYmdC5OKCkudGlja3NWaXNpYmxlLHRoaXMuT2kuaHQodGhpcy5MaSx0aGlzLkFpKSx0aGlzLk5pLmh0KHRoaXMuemksdGhpcy5BaSksdGhpcy5PaX1xaSgpe3JldHVybiB0aGlzLkZpKCksdGhpcy5PaS5odCh0aGlzLkxpLHRoaXMuQWkpLHRoaXMuTmkuaHQodGhpcy56aSx0aGlzLkFpKSx0aGlzLk5pfUZpKCl7dGhpcy54dCYmKHRoaXMuTGkucGk9ITAsdGhpcy56aS5waT0hMSx0aGlzLllpKHRoaXMuTGksdGhpcy56aSx0aGlzLkFpKSl9fWNsYXNzICQgZXh0ZW5kcyBWe2NvbnN0cnVjdG9yKHQsaSxzKXtzdXBlcigpLHRoaXMuSnQ9dCx0aGlzLktpPWksdGhpcy5aaT1zfVlpKHQsaSxzKXtpZih0Lkl0PSExLDI9PT10aGlzLkp0Lk4oKS5tb2RlKXJldHVybjtjb25zdCBlPXRoaXMuSnQuTigpLmhvcnpMaW5lO2lmKCFlLmxhYmVsVmlzaWJsZSlyZXR1cm47Y29uc3QgaD10aGlzLktpLkx0KCk7aWYoIXRoaXMuSnQuSXQoKXx8dGhpcy5LaS5HaSgpfHxudWxsPT09aClyZXR1cm47Y29uc3Qgbj10aGlzLktpLlhpKCkuWihlLmxhYmVsQmFja2dyb3VuZENvbG9yKTtzLkc9bi5HLHQuUj1uLlg7Y29uc3Qgcj0yLzEyKnRoaXMuS2kuaygpO3MuVGk9cixzLlJpPXI7Y29uc3Qgbz10aGlzLlppKHRoaXMuS2kpO3MuRWk9by5FaSx0LnJpPXRoaXMuS2kuSmkoby5NdCxoKSx0Lkl0PSEwfX1jb25zdCBBPS9bMS05XS9nO2NsYXNzIFp7Y29uc3RydWN0b3IoKXt0aGlzLnF0PW51bGx9aHQodCl7dGhpcy5xdD10fXN0KHQsaSl7aWYobnVsbD09PXRoaXMucXR8fCExPT09dGhpcy5xdC5JdHx8MD09PXRoaXMucXQucmkubGVuZ3RoKXJldHVybjtjb25zdCBzPXQudXNlTWVkaWFDb29yZGluYXRlU3BhY2UoKCh7Y29udGV4dDp0fSk9Pih0LmZvbnQ9aS5QLE1hdGgucm91bmQoaS5RaS5JaSh0LGQodGhpcy5xdCkucmksQSkpKSkpO2lmKHM8PTApcmV0dXJuO2NvbnN0IGU9aS50bixoPXMrMiplLG49aC8yLHI9dGhpcy5xdC5ubjtsZXQgbz10aGlzLnF0LkVpLGw9TWF0aC5mbG9vcihvLW4pKy41O2w8MD8obys9TWF0aC5hYnMoMC1sKSxsPU1hdGguZmxvb3Ioby1uKSsuNSk6bCtoPnImJihvLT1NYXRoLmFicyhyLShsK2gpKSxsPU1hdGguZmxvb3Ioby1uKSsuNSk7Y29uc3QgYT1sK2gsdT1NYXRoLmNlaWwoMCtpLlMraS5DK2kuQStpLmsraS5JKTt0LnVzZUJpdG1hcENvb3JkaW5hdGVTcGFjZSgoKHtjb250ZXh0OnQsaG9yaXpvbnRhbFBpeGVsUmF0aW86cyx2ZXJ0aWNhbFBpeGVsUmF0aW86ZX0pPT57Y29uc3QgaD1kKHRoaXMucXQpO3QuZmlsbFN0eWxlPWguRztjb25zdCBuPU1hdGgucm91bmQobCpzKSxyPU1hdGgucm91bmQoMCplKSxvPU1hdGgucm91bmQoYSpzKSxjPU1hdGgucm91bmQodSplKSxmPU1hdGgucm91bmQoMipzKTtpZih0LmJlZ2luUGF0aCgpLHQubW92ZVRvKG4sciksdC5saW5lVG8obixjLWYpLHQuYXJjVG8obixjLG4rZixjLGYpLHQubGluZVRvKG8tZixjKSx0LmFyY1RvKG8sYyxvLGMtZixmKSx0LmxpbmVUbyhvLHIpLHQuZmlsbCgpLGgucGkpe2NvbnN0IG49TWF0aC5yb3VuZChoLkVpKnMpLG89cixsPU1hdGgucm91bmQoKG8raS5DKSplKTt0LmZpbGxTdHlsZT1oLlI7Y29uc3QgYT1NYXRoLm1heCgxLE1hdGguZmxvb3IocykpLHU9TWF0aC5mbG9vciguNSpzKTt0LmZpbGxSZWN0KG4tdSxvLGEsbC1vKX19KSksCnQudXNlTWVkaWFDb29yZGluYXRlU3BhY2UoKCh7Y29udGV4dDp0fSk9Pntjb25zdCBzPWQodGhpcy5xdCksaD0wK2kuUytpLkMraS5BK2kuay8yO3QuZm9udD1pLlAsdC50ZXh0QWxpZ249ImxlZnQiLHQudGV4dEJhc2VsaW5lPSJtaWRkbGUiLHQuZmlsbFN0eWxlPXMuUjtjb25zdCBuPWkuUWkuRGkodCwiQXByMCIpO3QudHJhbnNsYXRlKGwrZSxoK24pLHQuZmlsbFRleHQocy5yaSwwLDApfSkpfX1jbGFzcyBZe2NvbnN0cnVjdG9yKHQsaSxzKXt0aGlzLnh0PSEwLHRoaXMuWHQ9bmV3IFosdGhpcy5HdD17SXQ6ITEsRzoiIzRjNTI1ZSIsUjoid2hpdGUiLHJpOiIiLG5uOjAsRWk6TmFOLHBpOiEwfSx0aGlzLkN0PXQsdGhpcy5zbj1pLHRoaXMuWmk9c31rdCgpe3RoaXMueHQ9ITB9VHQoKXtyZXR1cm4gdGhpcy54dCYmKHRoaXMuUnQoKSx0aGlzLnh0PSExKSx0aGlzLlh0Lmh0KHRoaXMuR3QpLHRoaXMuWHR9UnQoKXtjb25zdCB0PXRoaXMuR3Q7aWYodC5JdD0hMSwyPT09dGhpcy5DdC5OKCkubW9kZSlyZXR1cm47Y29uc3QgaT10aGlzLkN0Lk4oKS52ZXJ0TGluZTtpZighaS5sYWJlbFZpc2libGUpcmV0dXJuO2NvbnN0IHM9dGhpcy5zbi5FdCgpO2lmKHMuR2koKSlyZXR1cm47dC5ubj1zLm5uKCk7Y29uc3QgZT10aGlzLlppKCk7aWYobnVsbD09PWUpcmV0dXJuO3QuRWk9ZS5FaTtjb25zdCBoPXMuZW4odGhpcy5DdC5CdCgpKTt0LnJpPXMucm4oZChoKSksdC5JdD0hMDtjb25zdCBuPXRoaXMuc24uWGkoKS5aKGkubGFiZWxCYWNrZ3JvdW5kQ29sb3IpO3QuRz1uLkcsdC5SPW4uWCx0LnBpPXMuTigpLnRpY2tzVmlzaWJsZX19Y2xhc3MgSHtjb25zdHJ1Y3Rvcigpe3RoaXMuaG49bnVsbCx0aGlzLmFuPTB9bG4oKXtyZXR1cm4gdGhpcy5hbn1fbih0KXt0aGlzLmFuPXR9RnQoKXtyZXR1cm4gdGhpcy5obn11bih0KXt0aGlzLmhuPXR9Y24odCl7cmV0dXJuW119ZG4oKXtyZXR1cm5bXX1JdCgpe3JldHVybiEwfX12YXIgRzshZnVuY3Rpb24odCl7dFt0Lk5vcm1hbD0wXT0iTm9ybWFsIix0W3QuTWFnbmV0PTFdPSJNYWduZXQiLHRbdC5IaWRkZW49Ml09IkhpZGRlbiIsdFt0Lk1hZ25ldE9ITEM9M109Ik1hZ25ldE9ITEMifShHfHwoRz17fSkpO2NsYXNzIFUgZXh0ZW5kcyBIe2NvbnN0cnVjdG9yKHQsaSl7c3VwZXIoKSx0aGlzLnl0PW51bGwsdGhpcy5mbj1OYU4sdGhpcy5wbj0wLHRoaXMudm49ITEsdGhpcy5tbj1uZXcgTWFwLHRoaXMud249ITEsdGhpcy5Nbj1uZXcgV2Vha01hcCx0aGlzLmduPW5ldyBXZWFrTWFwLHRoaXMuYm49TmFOLHRoaXMuU249TmFOLHRoaXMueG49TmFOLHRoaXMuQ249TmFOLHRoaXMuc249dCx0aGlzLnluPWksdGhpcy5rbj0oKHQsaSk9PnM9Pntjb25zdCBlPWkoKSxoPXQoKTtpZihzPT09ZCh0aGlzLnl0KS5QbigpKXJldHVybntNdDpoLEVpOmV9O3tjb25zdCB0PWQocy5MdCgpKTtyZXR1cm57TXQ6cy5UbihlLHQpLEVpOmV9fX0pKCgoKT0+dGhpcy5mbiksKCgpPT50aGlzLlNuKSk7Y29uc3Qgcz0oKHQsaSk9PigpPT57Y29uc3Qgcz10aGlzLnNuLkV0KCkuUm4odCgpKSxlPWkoKTtyZXR1cm4gcyYmTnVtYmVyLmlzRmluaXRlKGUpP3t3dDpzLEVpOmV9Om51bGx9KSgoKCk9PnRoaXMucG4pLCgoKT0+dGhpcy5uaSgpKSk7dGhpcy5Ebj1uZXcgWSh0aGlzLHQscyl9Tigpe3JldHVybiB0aGlzLnlufUluKHQsaSl7dGhpcy54bj10LHRoaXMuQ249aX1Wbigpe3RoaXMueG49TmFOLHRoaXMuQ249TmFOfUJuKCl7cmV0dXJuIHRoaXMueG59RW4oKXtyZXR1cm4gdGhpcy5Dbn1Bbih0LGkscyl7dGhpcy53bnx8KHRoaXMud249ITApLHRoaXMudm49ITAsdGhpcy5Mbih0LGkscyl9QnQoKXtyZXR1cm4gdGhpcy5wbn1uaSgpe3JldHVybiB0aGlzLmJufXNpKCl7cmV0dXJuIHRoaXMuU259SXQoKXtyZXR1cm4gdGhpcy52bn16bigpe3RoaXMudm49ITEsdGhpcy5PbigpLHRoaXMuZm49TmFOLHRoaXMuYm49TmFOLHRoaXMuU249TmFOLHRoaXMueXQ9bnVsbCx0aGlzLlZuKCksdGhpcy5ObigpfUZuKHQpe2lmKCF0aGlzLnluLmRvTm90U25hcFRvSGlkZGVuU2VyaWVzSW5kaWNlcylyZXR1cm4gdDtjb25zdCBpPXRoaXMuc24scz1pLkV0KCk7bGV0IGU9bnVsbCxoPW51bGw7Zm9yKGNvbnN0IHMgb2YgaS5XbigpKXtjb25zdCBpPXMuVW4oKS5Ibih0LC0xKTtpZihpKXtpZihpLiRuPT09dClyZXR1cm4gdDsobnVsbD09PWV8fGkuJG4+ZSkmJihlPWkuJG4pfWNvbnN0IG49cy5VbigpLkhuKHQsMSk7aWYobil7aWYobi4kbj09PXQpcmV0dXJuIHQ7KG51bGw9PT1ofHxuLiRuPGgpJiYoaD1uLiRuKX19Y29uc3Qgbj1bZSxoXS5maWx0ZXIoUyk7aWYoMD09PW4ubGVuZ3RoKXJldHVybiB0O2NvbnN0IHI9cy5qdCh0KSxvPW4ubWFwKCh0PT5NYXRoLmFicyhyLXMuanQodCkpKSk7cmV0dXJuIG5bby5pbmRleE9mKE1hdGgubWluKC4uLm8pKV19am4odCl7bGV0IGk9dGhpcy5Nbi5nZXQodCk7aXx8KGk9bmV3IEYodGhpcyx0KSx0aGlzLk1uLnNldCh0LGkpKTtsZXQgcz10aGlzLmduLmdldCh0KTtyZXR1cm4gc3x8KHM9bmV3IEkodGhpcy5zbix0aGlzLHQpLHRoaXMuZ24uc2V0KHQscykpLFtpLHNdfXRpKHQpe3JldHVybiB0PT09dGhpcy55dCYmdGhpcy55bi5ob3J6TGluZS52aXNpYmxlfWlpKCl7cmV0dXJuIHRoaXMueW4udmVydExpbmUudmlzaWJsZX1xbih0LGkpe3RoaXMudm4mJnRoaXMueXQ9PT10fHx0aGlzLm1uLmNsZWFyKCk7Y29uc3Qgcz1bXTtyZXR1cm4gdGhpcy55dD09PXQmJnMucHVzaCh0aGlzLlluKHRoaXMubW4saSx0aGlzLmtuKSksc31kbigpe3JldHVybiB0aGlzLnZuP1t0aGlzLkRuXTpbXX1Lbigpe3JldHVybiB0aGlzLnl0fU5uKCl7dGhpcy5zbi5abigpLmZvckVhY2goKHQ9Pnt0aGlzLk1uLmdldCh0KT8ua3QoKSx0aGlzLmduLmdldCh0KT8ua3QoKX0pKSx0aGlzLm1uLmZvckVhY2goKHQ9PnQua3QoKSkpLHRoaXMuRG4ua3QoKX1Hbih0KXtyZXR1cm4gdCYmIXQuUG4oKS5HaSgpP3QuUG4oKTpudWxsfUxuKHQsaSxzKXt0aGlzLlhuKHQsaSxzKSYmdGhpcy5ObigpfVhuKHQsaSxzKXsKY29uc3QgZT10aGlzLmJuLGg9dGhpcy5TbixuPXRoaXMuZm4scj10aGlzLnBuLG89dGhpcy55dCxsPXRoaXMuR24ocyk7dGhpcy5wbj10LHRoaXMuYm49aXNOYU4odCk/TmFOOnRoaXMuc24uRXQoKS5qdCh0KSx0aGlzLnl0PXM7Y29uc3QgYT1udWxsIT09bD9sLkx0KCk6bnVsbDtyZXR1cm4gbnVsbCE9PWwmJm51bGwhPT1hPyh0aGlzLmZuPWksdGhpcy5Tbj1sLk50KGksYSkpOih0aGlzLmZuPU5hTix0aGlzLlNuPU5hTiksZSE9PXRoaXMuYm58fGghPT10aGlzLlNufHxyIT09dGhpcy5wbnx8biE9PXRoaXMuZm58fG8hPT10aGlzLnl0fU9uKCl7Y29uc3QgdD10aGlzLnNuLkpuKCkubWFwKCh0PT50LlVuKCkuUW4oKSkpLmZpbHRlcihTKSxpPTA9PT10Lmxlbmd0aD9udWxsOk1hdGgubWF4KC4uLnQpO3RoaXMucG49bnVsbCE9PWk/aTpOYU59WW4odCxpLHMpe2xldCBlPXQuZ2V0KGkpO3JldHVybiB2b2lkIDA9PT1lJiYoZT1uZXcgJCh0aGlzLGkscyksdC5zZXQoaSxlKSksZX19ZnVuY3Rpb24gaih0KXtyZXR1cm4ibGVmdCI9PT10fHwicmlnaHQiPT09dH1jbGFzcyBYe2NvbnN0cnVjdG9yKHQpe3RoaXMudHM9bmV3IE1hcCx0aGlzLm5zPVtdLHRoaXMuc3M9dH1lcyh0LGkpe2NvbnN0IHM9ZnVuY3Rpb24odCxpKXtyZXR1cm4gdm9pZCAwPT09dD9pOntyczpNYXRoLm1heCh0LnJzLGkucnMpLGhzOnQuaHN8fGkuaHN9fSh0aGlzLnRzLmdldCh0KSxpKTt0aGlzLnRzLnNldCh0LHMpfWxzKCl7cmV0dXJuIHRoaXMuc3N9X3ModCl7Y29uc3QgaT10aGlzLnRzLmdldCh0KTtyZXR1cm4gdm9pZCAwPT09aT97cnM6dGhpcy5zc306e3JzOk1hdGgubWF4KHRoaXMuc3MsaS5ycyksaHM6aS5oc319dXMoKXt0aGlzLmNzKCksdGhpcy5ucz1be2RzOjB9XX1mcyh0KXt0aGlzLmNzKCksdGhpcy5ucz1be2RzOjEsV3Q6dH1dfXBzKHQpe3RoaXMudnMoKSx0aGlzLm5zLnB1c2goe2RzOjUsV3Q6dH0pfWNzKCl7dGhpcy52cygpLHRoaXMubnMucHVzaCh7ZHM6Nn0pfXdzKCl7dGhpcy5jcygpLHRoaXMubnM9W3tkczo0fV19TXModCl7dGhpcy5jcygpLHRoaXMubnMucHVzaCh7ZHM6MixXdDp0fSl9Z3ModCl7dGhpcy5jcygpLHRoaXMubnMucHVzaCh7ZHM6MyxXdDp0fSl9YnMoKXtyZXR1cm4gdGhpcy5uc31Tcyh0KXtmb3IoY29uc3QgaSBvZiB0Lm5zKXRoaXMueHMoaSk7dGhpcy5zcz1NYXRoLm1heCh0aGlzLnNzLHQuc3MpLHQudHMuZm9yRWFjaCgoKHQsaSk9Pnt0aGlzLmVzKGksdCl9KSl9c3RhdGljIENzKCl7cmV0dXJuIG5ldyBYKDIpfXN0YXRpYyB5cygpe3JldHVybiBuZXcgWCgzKX14cyh0KXtzd2l0Y2godC5kcyl7Y2FzZSAwOnRoaXMudXMoKTticmVhaztjYXNlIDE6dGhpcy5mcyh0Lld0KTticmVhaztjYXNlIDI6dGhpcy5Ncyh0Lld0KTticmVhaztjYXNlIDM6dGhpcy5ncyh0Lld0KTticmVhaztjYXNlIDQ6dGhpcy53cygpO2JyZWFrO2Nhc2UgNTp0aGlzLnBzKHQuV3QpO2JyZWFrO2Nhc2UgNjp0aGlzLnZzKCl9fXZzKCl7Y29uc3QgdD10aGlzLm5zLmZpbmRJbmRleCgodD0+NT09PXQuZHMpKTstMSE9PXQmJnRoaXMubnMuc3BsaWNlKHQsMSl9fWNsYXNzIEp7Zm9ybWF0VGlja21hcmtzKHQpe3JldHVybiB0Lm1hcCgodD0+dGhpcy5mb3JtYXQodCkpKX19ZnVuY3Rpb24gdHQodCxpKXtpZighZyh0KSlyZXR1cm4ibi9hIjtpZighdihpKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJpbnZhbGlkIGxlbmd0aCIpO2lmKGk8MHx8aT4xNil0aHJvdyBuZXcgVHlwZUVycm9yKCJpbnZhbGlkIGxlbmd0aCIpO3JldHVybiAwPT09aT90LnRvU3RyaW5nKCk6KCIwMDAwMDAwMDAwMDAwMDAwIit0LnRvU3RyaW5nKCkpLnNsaWNlKC1pKX1jbGFzcyBpdCBleHRlbmRzIEp7Y29uc3RydWN0b3IodCxpKXtpZihzdXBlcigpLGl8fChpPTEpLGcodCkmJnYodCl8fCh0PTEwMCksdDwwKXRocm93IG5ldyBUeXBlRXJyb3IoImludmFsaWQgYmFzZSIpO3RoaXMuS2k9dCx0aGlzLmtzPWksdGhpcy5QcygpfWZvcm1hdCh0KXtjb25zdCBpPXQ8MD8i4oiSIjoiIjtyZXR1cm4gdD1NYXRoLmFicyh0KSxpK3RoaXMuVHModCl9UHMoKXtpZih0aGlzLlJzPTAsdGhpcy5LaT4wJiZ0aGlzLmtzPjApe2xldCB0PXRoaXMuS2k7Zm9yKDt0PjE7KXQvPTEwLHRoaXMuUnMrK319VHModCl7Y29uc3QgaT10aGlzLktpL3RoaXMua3M7bGV0IHM9TWF0aC5mbG9vcih0KSxlPSIiO2NvbnN0IGg9dm9pZCAwIT09dGhpcy5Scz90aGlzLlJzOk5hTjtpZihpPjEpe2xldCBuPSsoTWF0aC5yb3VuZCh0KmkpLXMqaSkudG9GaXhlZCh0aGlzLlJzKTtuPj1pJiYobi09aSxzKz0xKSxlPSIuIit0dCgrbi50b0ZpeGVkKHRoaXMuUnMpKnRoaXMua3MsaCl9ZWxzZSBzPU1hdGgucm91bmQocyppKS9pLGg+MCYmKGU9Ii4iK3R0KDAsaCkpO3JldHVybiBzLnRvRml4ZWQoMCkrZX19Y2xhc3Mgc3QgZXh0ZW5kcyBpdHtjb25zdHJ1Y3Rvcih0PTEwMCl7c3VwZXIodCl9Zm9ybWF0KHQpe3JldHVybmAke3N1cGVyLmZvcm1hdCh0KX0lYH19Y2xhc3MgZXQgZXh0ZW5kcyBKe2NvbnN0cnVjdG9yKHQpe3N1cGVyKCksdGhpcy5Ecz10fWZvcm1hdCh0KXtsZXQgaT0iIjtyZXR1cm4gdDwwJiYoaT0iLSIsdD0tdCksdDw5OTU/aSt0aGlzLklzKHQpOnQ8OTk5OTk1P2krdGhpcy5Jcyh0LzFlMykrIksiOnQ8OTk5OTk5OTk1Pyh0PTFlMypNYXRoLnJvdW5kKHQvMWUzKSxpK3RoaXMuSXModC8xZTYpKyJNIik6KHQ9MWU2Kk1hdGgucm91bmQodC8xZTYpLGkrdGhpcy5Jcyh0LzFlOSkrIkIiKX1Jcyh0KXtsZXQgaTtjb25zdCBzPU1hdGgucG93KDEwLHRoaXMuRHMpO3JldHVybiBpPSh0PU1hdGgucm91bmQodCpzKS9zKT49MWUtMTUmJnQ8MT90LnRvRml4ZWQodGhpcy5EcykucmVwbGFjZSgvXC4/MCskLywiIik6U3RyaW5nKHQpLGkucmVwbGFjZSgvKFwuWzEtOV0qKTArJC8sKCh0LGkpPT5pKSl9fWNvbnN0IGh0PS9bMi05XS9nO2NsYXNzIG50e2NvbnN0cnVjdG9yKHQ9NTApe3RoaXMuVnM9MCx0aGlzLkJzPTEsdGhpcy5Fcz0xLHRoaXMuQXM9e30sdGhpcy5Mcz1uZXcgTWFwLHRoaXMuenM9dH1Pcygpe3RoaXMuVnM9MCx0aGlzLkxzLmNsZWFyKCksdGhpcy5Ccz0xLHRoaXMuRXM9MSx0aGlzLkFzPXt9fQpJaSh0LGkscyl7cmV0dXJuIHRoaXMuTnModCxpLHMpLndpZHRofURpKHQsaSxzKXtjb25zdCBlPXRoaXMuTnModCxpLHMpO3JldHVybigoZS5hY3R1YWxCb3VuZGluZ0JveEFzY2VudHx8MCktKGUuYWN0dWFsQm91bmRpbmdCb3hEZXNjZW50fHwwKSkvMn1Ocyh0LGkscyl7Y29uc3QgZT1zfHxodCxoPVN0cmluZyhpKS5yZXBsYWNlKGUsIjAiKTtpZih0aGlzLkxzLmhhcyhoKSlyZXR1cm4gYyh0aGlzLkxzLmdldChoKSkuRnM7aWYodGhpcy5Wcz09PXRoaXMuenMpe2NvbnN0IHQ9dGhpcy5Bc1t0aGlzLkVzXTtkZWxldGUgdGhpcy5Bc1t0aGlzLkVzXSx0aGlzLkxzLmRlbGV0ZSh0KSx0aGlzLkVzKyssdGhpcy5Wcy0tfXQuc2F2ZSgpLHQudGV4dEJhc2VsaW5lPSJtaWRkbGUiO2NvbnN0IG49dC5tZWFzdXJlVGV4dChoKTtyZXR1cm4gdC5yZXN0b3JlKCksMD09PW4ud2lkdGgmJmkubGVuZ3RofHwodGhpcy5Mcy5zZXQoaCx7RnM6bixXczp0aGlzLkJzfSksdGhpcy5Bc1t0aGlzLkJzXT1oLHRoaXMuVnMrKyx0aGlzLkJzKyspLG59fWNsYXNzIHJ0e2NvbnN0cnVjdG9yKHQpe3RoaXMuSHM9bnVsbCx0aGlzLk09bnVsbCx0aGlzLlVzPSJyaWdodCIsdGhpcy4kcz10fWpzKHQsaSxzKXt0aGlzLkhzPXQsdGhpcy5NPWksdGhpcy5Vcz1zfXN0KHQpe251bGwhPT10aGlzLk0mJm51bGwhPT10aGlzLkhzJiZ0aGlzLkhzLnN0KHQsdGhpcy5NLHRoaXMuJHMsdGhpcy5Vcyl9fWNsYXNzIG90e2NvbnN0cnVjdG9yKHQsaSxzKXt0aGlzLnFzPXQsdGhpcy4kcz1uZXcgbnQoNTApLHRoaXMuWXM9aSx0aGlzLk89cyx0aGlzLkY9LTEsdGhpcy5YdD1uZXcgcnQodGhpcy4kcyl9VHQoKXtjb25zdCB0PXRoaXMuTy5Lcyh0aGlzLllzKTtpZihudWxsPT09dClyZXR1cm4gbnVsbDtjb25zdCBpPXQuWnModGhpcy5Zcyk/dC5HcygpOnRoaXMuWXMuRnQoKTtpZihudWxsPT09aSlyZXR1cm4gbnVsbDtjb25zdCBzPXQuWHMoaSk7aWYoIm92ZXJsYXkiPT09cylyZXR1cm4gbnVsbDtjb25zdCBlPXRoaXMuTy5KcygpO3JldHVybiBlLmshPT10aGlzLkYmJih0aGlzLkY9ZS5rLHRoaXMuJHMuT3MoKSksdGhpcy5YdC5qcyh0aGlzLnFzLnFpKCksZSxzKSx0aGlzLlh0fX1jbGFzcyBsdCBleHRlbmRzIHp7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMucXQ9bnVsbH1odCh0KXt0aGlzLnF0PXR9UXModCxpKXtpZighdGhpcy5xdD8uSXQpcmV0dXJuIG51bGw7Y29uc3R7dXQ6cyxjdDplLHRlOmh9PXRoaXMucXQ7cmV0dXJuIGk+PXMtZS03JiZpPD1zK2UrNz97aWU6dGhpcy5xdCxuZTpNYXRoLmFicyhpLXMpLHNlOjIsZWU6InByaWNlLWxpbmUiLHRlOmh9Om51bGx9ZXQoe2NvbnRleHQ6dCxiaXRtYXBTaXplOmksaG9yaXpvbnRhbFBpeGVsUmF0aW86cyx2ZXJ0aWNhbFBpeGVsUmF0aW86ZX0pe2lmKG51bGw9PT10aGlzLnF0KXJldHVybjtpZighMT09PXRoaXMucXQuSXQpcmV0dXJuO2NvbnN0IGg9TWF0aC5yb3VuZCh0aGlzLnF0LnV0KmUpO2g8MHx8aD5pLmhlaWdodHx8KHQubGluZUNhcD0iYnV0dCIsdC5zdHJva2VTdHlsZT10aGlzLnF0LlIsdC5saW5lV2lkdGg9TWF0aC5mbG9vcih0aGlzLnF0LmN0KnMpLGwodCx0aGlzLnF0Llp0KSxhKHQsaCwwLGkud2lkdGgpKX19Y2xhc3MgYXR7Y29uc3RydWN0b3IodCl7dGhpcy5yZT17dXQ6MCxSOiJyZ2JhKDAsIDAsIDAsIDApIixjdDoxLFp0OjAsSXQ6ITF9LHRoaXMuaGU9bmV3IGx0LHRoaXMueHQ9ITAsdGhpcy5hZT10LHRoaXMubGU9dC5RdCgpLHRoaXMuaGUuaHQodGhpcy5yZSl9a3QoKXt0aGlzLnh0PSEwfVR0KCl7cmV0dXJuIHRoaXMuYWUuSXQoKT8odGhpcy54dCYmKHRoaXMub2UoKSx0aGlzLnh0PSExKSx0aGlzLmhlKTpudWxsfX1jbGFzcyB1dCBleHRlbmRzIGF0e2NvbnN0cnVjdG9yKHQpe3N1cGVyKHQpfW9lKCl7dGhpcy5yZS5JdD0hMTtjb25zdCB0PXRoaXMuYWUuRnQoKSxpPXQuX2UoKS5fZTtpZigyIT09aSYmMyE9PWkpcmV0dXJuO2NvbnN0IHM9dGhpcy5hZS5OKCk7aWYoIXMuYmFzZUxpbmVWaXNpYmxlfHwhdGhpcy5hZS5JdCgpKXJldHVybjtjb25zdCBlPXRoaXMuYWUuTHQoKTtudWxsIT09ZSYmKHRoaXMucmUuSXQ9ITAsdGhpcy5yZS51dD10Lk50KGUuV3QsZS5XdCksdGhpcy5yZS5SPXMuYmFzZUxpbmVDb2xvcix0aGlzLnJlLmN0PXMuYmFzZUxpbmVXaWR0aCx0aGlzLnJlLlp0PXMuYmFzZUxpbmVTdHlsZSl9fWNsYXNzIGN0IGV4dGVuZHMgentjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5xdD1udWxsfWh0KHQpe3RoaXMucXQ9dH11ZSgpe3JldHVybiB0aGlzLnF0fWV0KHtjb250ZXh0OnQsaG9yaXpvbnRhbFBpeGVsUmF0aW86aSx2ZXJ0aWNhbFBpeGVsUmF0aW86c30pe2NvbnN0IGU9dGhpcy5xdDtpZihudWxsPT09ZSlyZXR1cm47Y29uc3QgaD1NYXRoLm1heCgxLE1hdGguZmxvb3IoaSkpLG49aCUyLzIscj1NYXRoLnJvdW5kKGUuY2UueCppKStuLG89ZS5jZS55KnM7dC5maWxsU3R5bGU9ZS5kZSx0LmJlZ2luUGF0aCgpO2NvbnN0IGw9TWF0aC5tYXgoMiwxLjUqZS5mZSkqaTt0LmFyYyhyLG8sbCwwLDIqTWF0aC5QSSwhMSksdC5maWxsKCksdC5maWxsU3R5bGU9ZS5wZSx0LmJlZ2luUGF0aCgpLHQuYXJjKHIsbyxlLmZ0KmksMCwyKk1hdGguUEksITEpLHQuZmlsbCgpLHQubGluZVdpZHRoPWgsdC5zdHJva2VTdHlsZT1lLnZlLHQuYmVnaW5QYXRoKCksdC5hcmMocixvLGUuZnQqaStoLzIsMCwyKk1hdGguUEksITEpLHQuc3Ryb2tlKCl9fWNvbnN0IGR0PVt7bWU6MCx3ZTouMjUsTWU6NCxnZToxMCxiZTouMjUsU2U6MCx4ZTouNCxDZTouOH0se21lOi4yNSx3ZTouNTI1LE1lOjEwLGdlOjE0LGJlOjAsU2U6MCx4ZTouOCxDZTowfSx7bWU6LjUyNSx3ZToxLE1lOjE0LGdlOjE0LGJlOjAsU2U6MCx4ZTowLENlOjB9XTtjbGFzcyBmdHtjb25zdHJ1Y3Rvcih0KXt0aGlzLlh0PW5ldyBjdCx0aGlzLnh0PSEwLHRoaXMueWU9ITAsdGhpcy5rZT1wZXJmb3JtYW5jZS5ub3coKSx0aGlzLlBlPXRoaXMua2UtMSx0aGlzLlRlPXR9UmUoKXt0aGlzLlBlPXRoaXMua2UtMSx0aGlzLmt0KCl9RGUoKXtpZih0aGlzLmt0KCksCjI9PT10aGlzLlRlLk4oKS5sYXN0UHJpY2VBbmltYXRpb24pe2NvbnN0IHQ9cGVyZm9ybWFuY2Uubm93KCksaT10aGlzLlBlLXQ7aWYoaT4wKXJldHVybiB2b2lkKGk8NjUwJiYodGhpcy5QZSs9MjYwMCkpO3RoaXMua2U9dCx0aGlzLlBlPXQrMjYwMH19a3QoKXt0aGlzLnh0PSEwfUllKCl7dGhpcy55ZT0hMH1JdCgpe3JldHVybiAwIT09dGhpcy5UZS5OKCkubGFzdFByaWNlQW5pbWF0aW9ufVZlKCl7c3dpdGNoKHRoaXMuVGUuTigpLmxhc3RQcmljZUFuaW1hdGlvbil7Y2FzZSAwOnJldHVybiExO2Nhc2UgMTpyZXR1cm4hMDtjYXNlIDI6cmV0dXJuIHBlcmZvcm1hbmNlLm5vdygpPD10aGlzLlBlfX1UdCgpe3JldHVybiB0aGlzLnh0Pyh0aGlzLlJ0KCksdGhpcy54dD0hMSx0aGlzLnllPSExKTp0aGlzLnllJiYodGhpcy5CZSgpLHRoaXMueWU9ITEpLHRoaXMuWHR9UnQoKXt0aGlzLlh0Lmh0KG51bGwpO2NvbnN0IHQ9dGhpcy5UZS5RdCgpLkV0KCksaT10LkVlKCkscz10aGlzLlRlLkx0KCk7aWYobnVsbD09PWl8fG51bGw9PT1zKXJldHVybjtjb25zdCBlPXRoaXMuVGUuQWUoITApO2lmKGUuTGV8fCFpLnplKGUuJG4pKXJldHVybjtjb25zdCBoPXt4OnQuanQoZS4kbikseTp0aGlzLlRlLkZ0KCkuTnQoZS5NdCxzLld0KX0sbj1lLlIscj10aGlzLlRlLk4oKS5saW5lV2lkdGgsbz10aGlzLk9lKHRoaXMuTmUoKSxuKTt0aGlzLlh0Lmh0KHtkZTpuLGZlOnIscGU6by5wZSx2ZTpvLnZlLGZ0Om8uZnQsY2U6aH0pfUJlKCl7Y29uc3QgdD10aGlzLlh0LnVlKCk7aWYobnVsbCE9PXQpe2NvbnN0IGk9dGhpcy5PZSh0aGlzLk5lKCksdC5kZSk7dC5wZT1pLnBlLHQudmU9aS52ZSx0LmZ0PWkuZnR9fU5lKCl7cmV0dXJuIHRoaXMuVmUoKT9wZXJmb3JtYW5jZS5ub3coKS10aGlzLmtlOjI1OTl9RmUodCxpLHMsZSl7Y29uc3QgaD1zKyhlLXMpKmk7cmV0dXJuIHRoaXMuVGUuUXQoKS5YaSgpLlkodCxoKX1PZSh0LGkpe2NvbnN0IHM9dCUyNjAwLzI2MDA7bGV0IGU7Zm9yKGNvbnN0IHQgb2YgZHQpaWYocz49dC5tZSYmczw9dC53ZSl7ZT10O2JyZWFrfXUodm9pZCAwIT09ZSwiTGFzdCBwcmljZSBhbmltYXRpb24gaW50ZXJuYWwgbG9naWMgZXJyb3IiKTtjb25zdCBoPShzLWUubWUpLyhlLndlLWUubWUpO3JldHVybntwZTp0aGlzLkZlKGksaCxlLmJlLGUuU2UpLHZlOnRoaXMuRmUoaSxoLGUueGUsZS5DZSksZnQ6KG49aCxyPWUuTWUsbz1lLmdlLHIrKG8tcikqbil9O3ZhciBuLHIsb319Y2xhc3MgbXQgZXh0ZW5kcyBhdHtjb25zdHJ1Y3Rvcih0KXtzdXBlcih0KX1vZSgpe2NvbnN0IHQ9dGhpcy5yZTt0Lkl0PSExO2NvbnN0IGk9dGhpcy5hZS5OKCk7aWYoIWkucHJpY2VMaW5lVmlzaWJsZXx8IXRoaXMuYWUuSXQoKSlyZXR1cm47Y29uc3Qgcz10aGlzLmFlLkFlKDA9PT1pLnByaWNlTGluZVNvdXJjZSk7cy5MZXx8KHQuSXQ9ITAsdC51dD1zLkVpLHQuUj10aGlzLmFlLldlKHMuUiksdC5jdD1pLnByaWNlTGluZVdpZHRoLHQuWnQ9aS5wcmljZUxpbmVTdHlsZSl9fWNsYXNzIHB0IGV4dGVuZHMgVntjb25zdHJ1Y3Rvcih0KXtzdXBlcigpLHRoaXMuSnQ9dH1ZaSh0LGkscyl7dC5JdD0hMSxpLkl0PSExO2NvbnN0IGU9dGhpcy5KdDtpZighZS5JdCgpKXJldHVybjtjb25zdCBoPWUuTigpLG49aC5sYXN0VmFsdWVWaXNpYmxlLHI9IiIhPT1lLkhlKCksbz0wPT09aC5zZXJpZXNMYXN0VmFsdWVNb2RlLGw9ZS5BZSghMSk7aWYobC5MZSlyZXR1cm47biYmKHQucmk9dGhpcy5VZShsLG4sbyksdC5JdD0wIT09dC5yaS5sZW5ndGgpLChyfHxvKSYmKGkucmk9dGhpcy4kZShsLG4scixvKSxpLkl0PWkucmkubGVuZ3RoPjApO2NvbnN0IGE9ZS5XZShsLlIpLHU9dGhpcy5KdC5RdCgpLlhpKCkuWihhKTtzLkc9dS5HLHMuRWk9bC5FaSxpLkh0PWUuUXQoKS5VdChsLkVpL2UuRnQoKS4kdCgpKSx0Lkh0PWEsdC5SPXUuWCxpLlI9dS5YfSRlKHQsaSxzLGUpe2xldCBoPSIiO2NvbnN0IG49dGhpcy5KdC5IZSgpO3JldHVybiBzJiYwIT09bi5sZW5ndGgmJihoKz1gJHtufSBgKSxpJiZlJiYoaCs9dGhpcy5KdC5GdCgpLmplKCk/dC5xZTp0LlllKSxoLnRyaW0oKX1VZSh0LGkscyl7cmV0dXJuIGk/cz90aGlzLkp0LkZ0KCkuamUoKT90LlllOnQucWU6dC5yaToiIn19ZnVuY3Rpb24gZ3QodCxpLHMsZSl7Y29uc3QgaD1OdW1iZXIuaXNGaW5pdGUoaSksbj1OdW1iZXIuaXNGaW5pdGUocyk7cmV0dXJuIGgmJm4/dChpLHMpOmh8fG4/aD9pOnM6ZX1jbGFzcyB2dHtjb25zdHJ1Y3Rvcih0LGkpe3RoaXMuS2U9dCx0aGlzLlplPWl9R2UodCl7cmV0dXJuIG51bGwhPT10JiZ0aGlzLktlPT09dC5LZSYmdGhpcy5aZT09PXQuWmV9WGUoKXtyZXR1cm4gbmV3IHZ0KHRoaXMuS2UsdGhpcy5aZSl9SmUoKXtyZXR1cm4gdGhpcy5LZX1RZSgpe3JldHVybiB0aGlzLlplfXRyKCl7cmV0dXJuIHRoaXMuWmUtdGhpcy5LZX1HaSgpe3JldHVybiB0aGlzLlplPT09dGhpcy5LZXx8TnVtYmVyLmlzTmFOKHRoaXMuWmUpfHxOdW1iZXIuaXNOYU4odGhpcy5LZSl9U3ModCl7cmV0dXJuIG51bGw9PT10P3RoaXM6bmV3IHZ0KGd0KE1hdGgubWluLHRoaXMuSmUoKSx0LkplKCksLTEvMCksZ3QoTWF0aC5tYXgsdGhpcy5RZSgpLHQuUWUoKSwxLzApKX1pcih0KXtpZighZyh0KSlyZXR1cm47aWYoMD09dGhpcy5aZS10aGlzLktlKXJldHVybjtjb25zdCBpPS41Kih0aGlzLlplK3RoaXMuS2UpO2xldCBzPXRoaXMuWmUtaSxlPXRoaXMuS2UtaTtzKj10LGUqPXQsdGhpcy5aZT1pK3MsdGhpcy5LZT1pK2V9bnIodCl7Zyh0KSYmKHRoaXMuWmUrPXQsdGhpcy5LZSs9dCl9c3IoKXtyZXR1cm57bWluVmFsdWU6dGhpcy5LZSxtYXhWYWx1ZTp0aGlzLlplfX1zdGF0aWMgZXIodCl7cmV0dXJuIG51bGw9PT10P251bGw6bmV3IHZ0KHQubWluVmFsdWUsdC5tYXhWYWx1ZSl9fWNsYXNzIGJ0e2NvbnN0cnVjdG9yKHQsaSl7dGhpcy5ycj10LHRoaXMuaHI9aXx8bnVsbH1hcigpe3JldHVybiB0aGlzLnJyfWxyKCl7cmV0dXJuIHRoaXMuaHJ9c3IoKXtyZXR1cm57cHJpY2VSYW5nZTpudWxsPT09dGhpcy5ycj9udWxsOnRoaXMucnIuc3IoKSxtYXJnaW5zOnRoaXMuaHJ8fHZvaWQgMH19CnN0YXRpYyBlcih0KXtyZXR1cm4gbnVsbD09PXQ/bnVsbDpuZXcgYnQodnQuZXIodC5wcmljZVJhbmdlKSx0Lm1hcmdpbnMpfX1jb25zdCB3dD1bMiw0LDgsMTYsMzIsNjQsMTI4LDI1Niw1MTJdO2NsYXNzIE10IGV4dGVuZHMgYXR7Y29uc3RydWN0b3IodCxpKXtzdXBlcih0KSx0aGlzLl9yPWl9b2UoKXtjb25zdCB0PXRoaXMucmU7dC5JdD0hMTtjb25zdCBpPXRoaXMuX3IuTigpO2lmKCF0aGlzLmFlLkl0KCl8fCFpLmxpbmVWaXNpYmxlKXJldHVybjtjb25zdCBzPXRoaXMuX3IudXIoKTtudWxsIT09cyYmKHQuSXQ9ITAsdC51dD1zLHQuUj1pLmNvbG9yLHQuY3Q9aS5saW5lV2lkdGgsdC5adD1pLmxpbmVTdHlsZSx0LnRlPXRoaXMuX3IuTigpLmlkKX19Y2xhc3MgU3QgZXh0ZW5kcyBWe2NvbnN0cnVjdG9yKHQsaSl7c3VwZXIoKSx0aGlzLlRlPXQsdGhpcy5fcj1pfVlpKHQsaSxzKXt0Lkl0PSExLGkuSXQ9ITE7Y29uc3QgZT10aGlzLl9yLk4oKSxoPWUuYXhpc0xhYmVsVmlzaWJsZSxuPSIiIT09ZS50aXRsZSxyPXRoaXMuVGU7aWYoIWh8fCFyLkl0KCkpcmV0dXJuO2NvbnN0IG89dGhpcy5fci51cigpO2lmKG51bGw9PT1vKXJldHVybjtuJiYoaS5yaT1lLnRpdGxlLGkuSXQ9ITApLGkuSHQ9ci5RdCgpLlV0KG8vci5GdCgpLiR0KCkpLHQucmk9dGhpcy5jcihlLnByaWNlKSx0Lkl0PSEwO2NvbnN0IGw9dGhpcy5UZS5RdCgpLlhpKCkuWihlLmF4aXNMYWJlbENvbG9yfHxlLmNvbG9yKTtzLkc9bC5HO2NvbnN0IGE9ZS5heGlzTGFiZWxUZXh0Q29sb3J8fGwuWDt0LlI9YSxpLlI9YSxzLkVpPW99Y3IodCl7Y29uc3QgaT10aGlzLlRlLkx0KCk7cmV0dXJuIG51bGw9PT1pPyIiOnRoaXMuVGUuRnQoKS5KaSh0LGkuV3QpfX1jbGFzcyB5dHtjb25zdHJ1Y3Rvcih0LGkpe3RoaXMuVGU9dCx0aGlzLnluPWksdGhpcy5kcj1uZXcgTXQodCx0aGlzKSx0aGlzLnFzPW5ldyBTdCh0LHRoaXMpLHRoaXMucHI9bmV3IG90KHRoaXMucXMsdCx0LlF0KCkpfXZyKHQpe3AodGhpcy55bix0KSx0aGlzLmt0KCksdGhpcy5UZS5RdCgpLm1yKCl9Tigpe3JldHVybiB0aGlzLnlufXdyKCl7cmV0dXJuIHRoaXMuZHJ9TXIoKXtyZXR1cm4gdGhpcy5wcn1ncigpe3JldHVybiB0aGlzLnFzfWt0KCl7dGhpcy5kci5rdCgpLHRoaXMucXMua3QoKX11cigpe2NvbnN0IHQ9dGhpcy5UZSxpPXQuRnQoKTtpZih0LlF0KCkuRXQoKS5HaSgpfHxpLkdpKCkpcmV0dXJuIG51bGw7Y29uc3Qgcz10Lkx0KCk7cmV0dXJuIG51bGw9PT1zP251bGw6aS5OdCh0aGlzLnluLnByaWNlLHMuV3QpfX1jbGFzcyB4dHtjb25zdHJ1Y3Rvcigpe3RoaXMuYnI9bmV3IFdlYWtNYXB9U3IodCxpLHMpe2NvbnN0IGU9MS9pKnM7aWYodD49ZSlyZXR1cm4gMTtjb25zdCBoPWUvdCxuPU1hdGgucG93KDIsTWF0aC5mbG9vcihNYXRoLmxvZzIoaCkpKTtyZXR1cm4gTWF0aC5taW4obiw1MTIpfUNyKHQsaSxzLGU9ITEsaCl7aWYoMD09PXQubGVuZ3RofHxpPD0xKXJldHVybiB0O2NvbnN0IG49dGhpcy55cihpKTtpZihuPD0xKXJldHVybiB0O2NvbnN0IHI9dGhpcy5rcih0KTtsZXQgbz1yLlByLmdldChuKTtyZXR1cm4gdm9pZCAwIT09b3x8KG89dGhpcy5Ucih0LG4scyxlLGgsci5Qciksci5Qci5zZXQobixvKSksb31Scih0LGkscyxlLGg9ITEsbil7aWYoczwxfHwwPT09dC5sZW5ndGgpcmV0dXJuIHQ7Y29uc3Qgcj10aGlzLmtyKHQpLG89ci5Qci5nZXQocyk7aWYoIW8pcmV0dXJuIHRoaXMuQ3IodCxzLGUsaCxuKTtjb25zdCBsPXRoaXMuRHIodCxpLHMsbyxoLGUsbik7cmV0dXJuIHIuUHIuc2V0KHMsbCksbH15cih0KXtpZih0PD0yKXJldHVybiAyO2Zvcihjb25zdCBpIG9mIHd0KWlmKHQ8PWkpcmV0dXJuIGk7cmV0dXJuIDUxMn1Jcih0KXtpZigwPT09dC5sZW5ndGgpcmV0dXJuIDA7Y29uc3QgaT10WzBdLHM9dFt0Lmxlbmd0aC0xXTtyZXR1cm4gMzEqdC5sZW5ndGgrMTcqaS4kbisxMypzLiRufVRyKHQsaSxzLGU9ITEsaCxuPW5ldyBNYXApe2lmKDI9PT1pKXJldHVybiB0aGlzLlZyKHQsMixzLGUsaCk7Y29uc3Qgcj1pLzI7bGV0IG89bi5nZXQocik7cmV0dXJuIG98fChvPXRoaXMuVHIodCxyLHMsZSxoLG4pLG4uc2V0KHIsbykpLHRoaXMuQnIobyxzLGUsaCl9VnIodCxpLHMsZT0hMSxoKXtjb25zdCBuPXRoaXMuRXIodCxpLHMsZSxoKTtyZXR1cm4gdGhpcy5BcihuLGUpfUJyKHQsaSxzPSExLGUpe2NvbnN0IGg9dGhpcy5Fcih0LDIsaSxzLGUpO3JldHVybiB0aGlzLkFyKGgscyl9RXIodCxpLHMsZT0hMSxoKXtjb25zdCBuPVtdO2ZvcihsZXQgcj0wO3I8dC5sZW5ndGg7cis9aSlpZih0Lmxlbmd0aC1yPj1pKXtjb25zdCBpPXRoaXMuTHIodFtyXSx0W3IrMV0scyxlLGgpO2kuenI9ITEsbi5wdXNoKGkpfWVsc2UgaWYoMD09PW4ubGVuZ3RoKW4ucHVzaCh0aGlzLk9yKHRbcl0sITApKTtlbHNle2NvbnN0IGk9bltuLmxlbmd0aC0xXTtuW24ubGVuZ3RoLTFdPXRoaXMuTnIoaSx0W3JdLHMsZSxoKX1yZXR1cm4gbn1Gcih0LGkpe3JldHVybih0Pz8xKSsoaT8/MSl9THIodCxpLHMsZT0hMSxoKXtpZighZXx8IXN8fCFoKXtjb25zdCBzPXQuV3RbMV0+aS5XdFsxXT90Lld0WzFdOmkuV3RbMV0sZT10Lld0WzJdPGkuV3RbMl0/dC5XdFsyXTppLld0WzJdO3JldHVybntXcjp0LiRuLEhyOmkuJG4sVXI6dC53dCwkcjppLnd0LGpyOnQuV3RbMF0scXI6cyxZcjplLEtyOmkuV3RbM10sWnI6dGhpcy5Gcih0LlpyLGkuWnIpLEdyOnZvaWQgMCx6cjohMX19Y29uc3Qgbj1zKHRoaXMuWHIodCxoKSx0aGlzLlhyKGksaCkpLHI9aChuKSxvPXIubGVuZ3RoP3Jbci5sZW5ndGgtMV06MDtyZXR1cm57V3I6dC4kbixIcjppLiRuLFVyOnQud3QsJHI6aS53dCxqcjp0Lld0WzBdLHFyOk1hdGgubWF4KHQuV3RbMV0sbyksWXI6TWF0aC5taW4odC5XdFsyXSxvKSxLcjpvLFpyOnRoaXMuRnIodC5acixpLlpyKSxHcjpuLHpyOiExfX1Ocih0LGkscyxlPSExLGgpe2lmKCFlfHwhc3x8IWgpcmV0dXJue1dyOnQuV3IsSHI6aS4kbixVcjp0LlVyLCRyOmkud3QsanI6dC5qcixxcjp0LnFyPmkuV3RbMV0/dC5xcjppLld0WzFdLFlyOnQuWXI8aS5XdFsyXT90LllyOmkuV3RbMl0sS3I6aS5XdFszXSwKWnI6dC5acisoaS5acj8/MSksR3I6dC5Hcix6cjohMX07Y29uc3Qgbj10LkdyLHI9dGhpcy5YcihpLGgpLG89bj97ZGF0YTpuLGluZGV4OnQuV3Isb3JpZ2luYWxUaW1lOnQuVXIsdGltZTp0LlVyLHByaWNlVmFsdWVzOmgobil9Om51bGwsbD1vP3MobyxyKTpyLmRhdGEsYT1vP2gobCk6ci5wcmljZVZhbHVlcyx1PWEubGVuZ3RoP2FbYS5sZW5ndGgtMV06MDtyZXR1cm57V3I6dC5XcixIcjppLiRuLFVyOnQuVXIsJHI6aS53dCxqcjp0LmpyLHFyOk1hdGgubWF4KHQucXIsdSksWXI6TWF0aC5taW4odC5Zcix1KSxLcjp1LFpyOnQuWnIrKGkuWnI/PzEpLEdyOmwsenI6ITF9fUpyKHQsaSxzLGUsaCxuLHI9ITEsbyl7Y29uc3QgbD1pPT09ZT9oOnRbaV07aWYocy1pPT0xKXJldHVybiB0aGlzLk9yKGwsITApO2NvbnN0IGE9aSsxPT09ZT9oOnRbaSsxXTtsZXQgdT10aGlzLkxyKGwsYSxuLHIsbyk7Zm9yKGxldCBsPWkrMjtsPHM7bCsrKXtjb25zdCBpPWw9PT1lP2g6dFtsXTt1PXRoaXMuTnIodSxpLG4scixvKX1yZXR1cm4gdX1Ycih0LGkpe2NvbnN0IHM9dC51ZT8/e307cmV0dXJue2RhdGE6dC51ZSxpbmRleDp0LiRuLG9yaWdpbmFsVGltZTp0LlFyLHRpbWU6dC53dCxwcmljZVZhbHVlczppKHMpfX10aCh0LGk9ITEpe2NvbnN0IHM9ITA9PT1pLGU9ISF0LkdyO3JldHVybnskbjp0LldyLHd0OnQuVXIsUXI6dC5VcixXdDpbcz90LktyOnQuanIsdC5xcix0LllyLHQuS3JdLFpyOnQuWnIsdWU6cz9lP3QuR3I6e3d0OnQuVXJ9OnZvaWQgMH19QXIodCxpPSExKXtyZXR1cm4gdC5tYXAoKHQ9PnRoaXMudGgodCxpKSkpfURyKHQsaSxzLGUsaD0hMSxuLHIpe2lmKDA9PT1lLmxlbmd0aClyZXR1cm4gZTtjb25zdCBvPXQubGVuZ3RoLTEsbD1NYXRoLmZsb29yKG8vcykqcztpZihNYXRoLm1pbihsK3MsdC5sZW5ndGgpLWw8cyYmdC5sZW5ndGg+cyl7Y29uc3QgZT10LnNsaWNlKCk7cmV0dXJuIGVbZS5sZW5ndGgtMV09aSx0aGlzLkNyKGUscyxuLGgscil9aWYoTWF0aC5mbG9vcigoby0xKS9zKT09PU1hdGguZmxvb3Ioby9zKXx8MT09PWUubGVuZ3RoKXtjb25zdCBhPU1hdGgubWluKGwrcyx0Lmxlbmd0aCksdT1hLWw7aWYodTw9MClyZXR1cm4gZTtjb25zdCBjPTE9PT11P3RoaXMuT3IobD09PW8/aTp0W2xdLCEwKTp0aGlzLkpyKHQsbCxhLG8saSxuLGgscik7cmV0dXJuIGVbZS5sZW5ndGgtMV09dGhpcy50aChjLGgpLGV9e2NvbnN0IGU9dC5zbGljZSgpO3JldHVybiBlW2UubGVuZ3RoLTFdPWksdGhpcy5DcihlLHMsbixoLHIpfX1Pcih0LGk9ITEpe3JldHVybntXcjp0LiRuLEhyOnQuJG4sVXI6dC53dCwkcjp0Lnd0LGpyOnQuV3RbMF0scXI6dC5XdFsxXSxZcjp0Lld0WzJdLEtyOnQuV3RbM10sWnI6dC5acj8/MSxHcjp0LnVlLHpyOml9fWtyKHQpe2NvbnN0IGk9dGhpcy5paCh0KSxzPXRoaXMuSXIodCk7cmV0dXJuIGkubmghPT1zJiYoaS5Qci5jbGVhcigpLGkubmg9cyksaX1paCh0KXtsZXQgaT10aGlzLmJyLmdldCh0KTtyZXR1cm4gdm9pZCAwPT09aSYmKGk9e25oOnRoaXMuSXIodCksUHI6bmV3IE1hcH0sdGhpcy5ici5zZXQodCxpKSksaX19Y2xhc3MgX3QgZXh0ZW5kcyBIe2NvbnN0cnVjdG9yKHQpe3N1cGVyKCksdGhpcy5zbj10fVF0KCl7cmV0dXJuIHRoaXMuc259fWNvbnN0IEN0PXtCYXI6KHQsaSxzLGUpPT57Y29uc3QgaD1pLnVwQ29sb3Isbj1pLmRvd25Db2xvcixyPWQodChzLGUpKSxvPWYoci5XdFswXSk8PWYoci5XdFszXSk7cmV0dXJue3NoOnIuUj8/KG8/aDpuKX19LENhbmRsZXN0aWNrOih0LGkscyxlKT0+e2NvbnN0IGg9aS51cENvbG9yLG49aS5kb3duQ29sb3Iscj1pLmJvcmRlclVwQ29sb3Isbz1pLmJvcmRlckRvd25Db2xvcixsPWkud2lja1VwQ29sb3IsYT1pLndpY2tEb3duQ29sb3IsdT1kKHQocyxlKSksYz1mKHUuV3RbMF0pPD1mKHUuV3RbM10pO3JldHVybntzaDp1LlI/PyhjP2g6biksZWg6dS5IdD8/KGM/cjpvKSxyaDp1LmhoPz8oYz9sOmEpfX0sQ3VzdG9tOih0LGkscyxlKT0+KHtzaDpkKHQocyxlKSkuUj8/aS5jb2xvcn0pLEFyZWE6KHQsaSxzLGUpPT57Y29uc3QgaD1kKHQocyxlKSk7cmV0dXJue3NoOmgudnQ/P2kubGluZUNvbG9yLHZ0OmgudnQ/P2kubGluZUNvbG9yLGFoOmguYWg/P2kudG9wQ29sb3Isb2g6aC5vaD8/aS5ib3R0b21Db2xvcn19LEJhc2VsaW5lOih0LGkscyxlKT0+e2NvbnN0IGg9ZCh0KHMsZSkpO3JldHVybntzaDpoLld0WzNdPj1pLmJhc2VWYWx1ZS5wcmljZT9pLnRvcExpbmVDb2xvcjppLmJvdHRvbUxpbmVDb2xvcixfaDpoLl9oPz9pLnRvcExpbmVDb2xvcix1aDpoLnVoPz9pLmJvdHRvbUxpbmVDb2xvcixkaDpoLmRoPz9pLnRvcEZpbGxDb2xvcjEsZmg6aC5maD8/aS50b3BGaWxsQ29sb3IyLHBoOmgucGg/P2kuYm90dG9tRmlsbENvbG9yMSxtaDpoLm1oPz9pLmJvdHRvbUZpbGxDb2xvcjJ9fSxMaW5lOih0LGkscyxlKT0+e2NvbnN0IGg9ZCh0KHMsZSkpO3JldHVybntzaDpoLlI/P2kuY29sb3IsdnQ6aC5SPz9pLmNvbG9yfX0sSGlzdG9ncmFtOih0LGkscyxlKT0+KHtzaDpkKHQocyxlKSkuUj8/aS5jb2xvcn0pfTtjbGFzcyBUdHtjb25zdHJ1Y3Rvcih0KXt0aGlzLndoPSh0LGkpPT52b2lkIDAhPT1pP2kuV3Q6dGhpcy5UZS5VbigpLk1oKHQpLHRoaXMuVGU9dCx0aGlzLmdoPUN0W3QuYmgoKV19U2godCxpKXtyZXR1cm4gdGhpcy5naCh0aGlzLndoLHRoaXMuVGUuTigpLHQsaSl9fWZ1bmN0aW9uIGt0KHQsaSxzLGUsaD0wLG49aS5sZW5ndGgpe2xldCByPW4taDtmb3IoOzA8cjspe2NvbnN0IG49cj4+MSxvPWgrbjtlKGlbb10scyk9PT10PyhoPW8rMSxyLT1uKzEpOnI9bn1yZXR1cm4gaH1jb25zdCBFdD1rdC5iaW5kKG51bGwsITApLE50PWt0LmJpbmQobnVsbCwhMSk7dmFyIHp0OyFmdW5jdGlvbih0KXt0W3QuTmVhcmVzdExlZnQ9LTFdPSJOZWFyZXN0TGVmdCIsdFt0Lk5vbmU9MF09Ik5vbmUiLHRbdC5OZWFyZXN0UmlnaHQ9MV09Ik5lYXJlc3RSaWdodCJ9KHp0fHwoenQ9e30pKTtjb25zdCBQdD0zMDtjbGFzcyBxdHtjb25zdHJ1Y3Rvcigpe3RoaXMueGg9W10sdGhpcy5DaD1uZXcgTWFwLHRoaXMueWg9bmV3IE1hcCx0aGlzLmtoPVtdfQpQaCgpe3JldHVybiB0aGlzLlRoKCk+MD90aGlzLnhoW3RoaXMueGgubGVuZ3RoLTFdOm51bGx9UmgoKXtyZXR1cm4gdGhpcy5UaCgpPjA/dGhpcy5EaCgwKTpudWxsfVFuKCl7cmV0dXJuIHRoaXMuVGgoKT4wP3RoaXMuRGgodGhpcy54aC5sZW5ndGgtMSk6bnVsbH1UaCgpe3JldHVybiB0aGlzLnhoLmxlbmd0aH1HaSgpe3JldHVybiAwPT09dGhpcy5UaCgpfXplKHQpe3JldHVybiBudWxsIT09dGhpcy5JaCh0LDApfU1oKHQpe3JldHVybiB0aGlzLkhuKHQpfUhuKHQsaT0wKXtjb25zdCBzPXRoaXMuSWgodCxpKTtyZXR1cm4gbnVsbD09PXM/bnVsbDp7Li4udGhpcy5WaChzKSwkbjp0aGlzLkRoKHMpfX1CaCgpe3JldHVybiB0aGlzLnhofUVoKHQsaSxzKXtpZih0aGlzLkdpKCkpcmV0dXJuIG51bGw7bGV0IGU9bnVsbDtmb3IoY29uc3QgaCBvZiBzKWU9THQoZSx0aGlzLkFoKHQsaSxoKSk7cmV0dXJuIGV9aHQodCl7dGhpcy55aC5jbGVhcigpLHRoaXMuQ2guY2xlYXIoKSx0aGlzLnhoPXQsdGhpcy5raD10Lm1hcCgodD0+dC4kbikpfUxoKCl7cmV0dXJuIHRoaXMua2h9RGgodCl7cmV0dXJuIHRoaXMueGhbdF0uJG59VmgodCl7cmV0dXJuIHRoaXMueGhbdF19SWgodCxpKXtjb25zdCBzPXRoaXMuemgodCk7aWYobnVsbD09PXMmJjAhPT1pKXN3aXRjaChpKXtjYXNlLTE6cmV0dXJuIHRoaXMuT2godCk7Y2FzZSAxOnJldHVybiB0aGlzLk5oKHQpO2RlZmF1bHQ6dGhyb3cgbmV3IFR5cGVFcnJvcigiVW5rbm93biBzZWFyY2ggbW9kZSIpfXJldHVybiBzfU9oKHQpe2xldCBpPXRoaXMuRmgodCk7cmV0dXJuIGk+MCYmKGktPTEpLGkhPT10aGlzLnhoLmxlbmd0aCYmdGhpcy5EaChpKTx0P2k6bnVsbH1OaCh0KXtjb25zdCBpPXRoaXMuV2godCk7cmV0dXJuIGkhPT10aGlzLnhoLmxlbmd0aCYmdDx0aGlzLkRoKGkpP2k6bnVsbH16aCh0KXtjb25zdCBpPXRoaXMuRmgodCk7cmV0dXJuIGk9PT10aGlzLnhoLmxlbmd0aHx8dDx0aGlzLnhoW2ldLiRuP251bGw6aX1GaCh0KXtyZXR1cm4gRXQodGhpcy54aCx0LCgodCxpKT0+dC4kbjxpKSl9V2godCl7cmV0dXJuIE50KHRoaXMueGgsdCwoKHQsaSk9PnQuJG4+aSkpfUhoKHQsaSxzKXtsZXQgZT1udWxsO2ZvcihsZXQgaD10O2g8aTtoKyspe2NvbnN0IHQ9dGhpcy54aFtoXS5XdFtzXTtOdW1iZXIuaXNOYU4odCl8fChudWxsPT09ZT9lPXtVaDp0LCRoOnR9Oih0PGUuVWgmJihlLlVoPXQpLHQ+ZS4kaCYmKGUuJGg9dCkpKX1yZXR1cm4gZX1BaCh0LGkscyl7aWYodGhpcy5HaSgpKXJldHVybiBudWxsO2xldCBlPW51bGw7Y29uc3QgaD1kKHRoaXMuUmgoKSksbj1kKHRoaXMuUW4oKSkscj1NYXRoLm1heCh0LGgpLG89TWF0aC5taW4oaSxuKSxsPU1hdGguY2VpbChyL1B0KSpQdCxhPU1hdGgubWF4KGwsTWF0aC5mbG9vcihvL1B0KSpQdCk7e2NvbnN0IHQ9dGhpcy5GaChyKSxoPXRoaXMuV2goTWF0aC5taW4obyxsLGkpKTtlPUx0KGUsdGhpcy5IaCh0LGgscykpfWxldCB1PXRoaXMuQ2guZ2V0KHMpO3ZvaWQgMD09PXUmJih1PW5ldyBNYXAsdGhpcy5DaC5zZXQocyx1KSk7Zm9yKGxldCB0PU1hdGgubWF4KGwrMSxyKTt0PGE7dCs9UHQpe2NvbnN0IGk9TWF0aC5mbG9vcih0L1B0KTtsZXQgaD11LmdldChpKTtpZih2b2lkIDA9PT1oKXtjb25zdCB0PXRoaXMuRmgoaSpQdCksZT10aGlzLldoKChpKzEpKlB0LTEpO2g9dGhpcy5IaCh0LGUscyksdS5zZXQoaSxoKX1lPUx0KGUsaCl9e2NvbnN0IHQ9dGhpcy5GaChhKSxpPXRoaXMuV2gobyk7ZT1MdChlLHRoaXMuSGgodCxpLHMpKX1yZXR1cm4gZX19ZnVuY3Rpb24gTHQodCxpKXtyZXR1cm4gbnVsbD09PXQ/aTpudWxsPT09aT90OntVaDpNYXRoLm1pbih0LlVoLGkuVWgpLCRoOk1hdGgubWF4KHQuJGgsaS4kaCl9fWZ1bmN0aW9uIEl0KCl7cmV0dXJuIG5ldyBxdH1jb25zdCBSdD17c2V0TGluZVN0eWxlOmx9O2NsYXNzIEZ0e2NvbnN0cnVjdG9yKHQpe3RoaXMuamg9dH1zdCh0LGkscyl7dGhpcy5qaC5kcmF3KHQsUnQpfXFoKHQsaSxzKXt0aGlzLmpoLmRyYXdCYWNrZ3JvdW5kPy4odCxSdCl9fWNsYXNzIFd0e2NvbnN0cnVjdG9yKHQpe3RoaXMuTHM9bnVsbCx0aGlzLlloPXR9VHQoKXtjb25zdCB0PXRoaXMuWWgucmVuZGVyZXIoKTtpZihudWxsPT09dClyZXR1cm4gbnVsbDtpZih0aGlzLkxzPy5LaD09PXQpcmV0dXJuIHRoaXMuTHMuWmg7Y29uc3QgaT1uZXcgRnQodCk7cmV0dXJuIHRoaXMuTHM9e0toOnQsWmg6aX0saX1HaCgpe3JldHVybiB0aGlzLlloLnpPcmRlcj8uKCk/PyJub3JtYWwifX1jbGFzcyBRdHtjb25zdHJ1Y3Rvcih0KXt0aGlzLlhoPW51bGwsdGhpcy5KaD10fVFoKCl7cmV0dXJuIHRoaXMuSmh9Tm4oKXt0aGlzLkpoLnVwZGF0ZUFsbFZpZXdzPy4oKX1qbigpe2NvbnN0IHQ9dGhpcy5KaC5wYW5lVmlld3M/LigpPz9bXTtpZih0aGlzLlhoPy5LaD09PXQpcmV0dXJuIHRoaXMuWGguWmg7Y29uc3QgaT10Lm1hcCgodD0+bmV3IFd0KHQpKSk7cmV0dXJuIHRoaXMuWGg9e0toOnQsWmg6aX0saX1Rcyh0LGkpe3JldHVybiB0aGlzLkpoLmhpdFRlc3Q/Lih0LGkpPz9udWxsfX1sZXQgRHQ9Y2xhc3MgZXh0ZW5kcyBRdHtjbigpe3JldHVybltdfX07Y2xhc3MgQnR7Y29uc3RydWN0b3IodCl7dGhpcy5qaD10fXN0KHQsaSxzKXt0aGlzLmpoLmRyYXcodCxSdCl9cWgodCxpLHMpe3RoaXMuamguZHJhd0JhY2tncm91bmQ/Lih0LFJ0KX19Y2xhc3MgS3R7Y29uc3RydWN0b3IodCl7dGhpcy5Mcz1udWxsLHRoaXMuWWg9dH1UdCgpe2NvbnN0IHQ9dGhpcy5ZaC5yZW5kZXJlcigpO2lmKG51bGw9PT10KXJldHVybiBudWxsO2lmKHRoaXMuTHM/LktoPT09dClyZXR1cm4gdGhpcy5Mcy5aaDtjb25zdCBpPW5ldyBCdCh0KTtyZXR1cm4gdGhpcy5Mcz17S2g6dCxaaDppfSxpfUdoKCl7cmV0dXJuIHRoaXMuWWguek9yZGVyPy4oKT8/Im5vcm1hbCJ9fWZ1bmN0aW9uIE90KHQpe3JldHVybntyaTp0LnRleHQoKSxFaTp0LmNvb3JkaW5hdGUoKSxWaTp0LmZpeGVkQ29vcmRpbmF0ZT8uKCksUjp0LnRleHRDb2xvcigpLEc6dC5iYWNrQ29sb3IoKSxJdDp0LnZpc2libGU/LigpPz8hMCxwaTp0LnRpY2tWaXNpYmxlPy4oKT8/ITB9fQpjbGFzcyBWdHtjb25zdHJ1Y3Rvcih0LGkpe3RoaXMuWHQ9bmV3IFosdGhpcy50YT10LHRoaXMuaWE9aX1UdCgpe3JldHVybiB0aGlzLlh0Lmh0KHtubjp0aGlzLmlhLm5uKCksLi4uT3QodGhpcy50YSl9KSx0aGlzLlh0fX1jbGFzcyAkdCBleHRlbmRzIFZ7Y29uc3RydWN0b3IodCxpKXtzdXBlcigpLHRoaXMudGE9dCx0aGlzLktpPWl9WWkodCxpLHMpe2NvbnN0IGU9T3QodGhpcy50YSk7cy5HPWUuRyx0LlI9ZS5SO2NvbnN0IGg9Mi8xMip0aGlzLktpLmsoKTtzLlRpPWgscy5SaT1oLHMuRWk9ZS5FaSxzLlZpPWUuVmksdC5yaT1lLnJpLHQuSXQ9ZS5JdCx0LnBpPWUucGl9fWNsYXNzIEF0IGV4dGVuZHMgUXR7Y29uc3RydWN0b3IodCxpKXtzdXBlcih0KSx0aGlzLm5hPW51bGwsdGhpcy5zYT1udWxsLHRoaXMuZWE9bnVsbCx0aGlzLnJhPW51bGwsdGhpcy5UZT1pfWRuKCl7Y29uc3QgdD10aGlzLkpoLnRpbWVBeGlzVmlld3M/LigpPz9bXTtpZih0aGlzLm5hPy5LaD09PXQpcmV0dXJuIHRoaXMubmEuWmg7Y29uc3QgaT10aGlzLlRlLlF0KCkuRXQoKSxzPXQubWFwKCh0PT5uZXcgVnQodCxpKSkpO3JldHVybiB0aGlzLm5hPXtLaDp0LFpoOnN9LHN9cW4oKXtjb25zdCB0PXRoaXMuSmgucHJpY2VBeGlzVmlld3M/LigpPz9bXTtpZih0aGlzLnNhPy5LaD09PXQpcmV0dXJuIHRoaXMuc2EuWmg7Y29uc3QgaT10aGlzLlRlLkZ0KCkscz10Lm1hcCgodD0+bmV3ICR0KHQsaSkpKTtyZXR1cm4gdGhpcy5zYT17S2g6dCxaaDpzfSxzfWhhKCl7Y29uc3QgdD10aGlzLkpoLnByaWNlQXhpc1BhbmVWaWV3cz8uKCk/P1tdO2lmKHRoaXMuZWE/LktoPT09dClyZXR1cm4gdGhpcy5lYS5aaDtjb25zdCBpPXQubWFwKCh0PT5uZXcgS3QodCkpKTtyZXR1cm4gdGhpcy5lYT17S2g6dCxaaDppfSxpfWFhKCl7Y29uc3QgdD10aGlzLkpoLnRpbWVBeGlzUGFuZVZpZXdzPy4oKT8/W107aWYodGhpcy5yYT8uS2g9PT10KXJldHVybiB0aGlzLnJhLlpoO2NvbnN0IGk9dC5tYXAoKHQ9Pm5ldyBLdCh0KSkpO3JldHVybiB0aGlzLnJhPXtLaDp0LFpoOml9LGl9bGEodCxpKXtyZXR1cm4gdGhpcy5KaC5hdXRvc2NhbGVJbmZvPy4odCxpKT8/bnVsbH19ZnVuY3Rpb24gWnQodCxpLHMsZSl7dC5mb3JFYWNoKCh0PT57aSh0KS5mb3JFYWNoKCh0PT57dC5HaCgpPT09cyYmZS5wdXNoKHQpfSkpfSkpfWZ1bmN0aW9uIFl0KHQpe3JldHVybiB0LmpuKCl9ZnVuY3Rpb24gSHQodCl7cmV0dXJuIHQuaGEoKX1mdW5jdGlvbiBHdCh0KXtyZXR1cm4gdC5hYSgpfWNvbnN0IFV0PVsiQXJlYSIsIkxpbmUiLCJCYXNlbGluZSJdO2NsYXNzIGp0IGV4dGVuZHMgX3R7Y29uc3RydWN0b3IodCxpLHMsZSxoKXtzdXBlcih0KSx0aGlzLnF0PUl0KCksdGhpcy5kcj1uZXcgbXQodGhpcyksdGhpcy5vYT1bXSx0aGlzLl9hPW5ldyB1dCh0aGlzKSx0aGlzLnVhPW51bGwsdGhpcy5jYT1udWxsLHRoaXMuZGE9bnVsbCx0aGlzLmZhPVtdLHRoaXMucGE9bmV3IHh0LHRoaXMudmE9bmV3IE1hcCx0aGlzLm1hPW51bGwsdGhpcy55bj1zLHRoaXMud2E9aTtjb25zdCBuPW5ldyBwdCh0aGlzKTtpZih0aGlzLm1uPVtuXSx0aGlzLnByPW5ldyBvdChuLHRoaXMsdCksVXQuaW5jbHVkZXModGhpcy53YSkmJih0aGlzLnVhPW5ldyBmdCh0aGlzKSksdGhpcy5NYSgpLHRoaXMuWWg9ZSh0aGlzLHRoaXMuUXQoKSxoKSwiQ3VzdG9tIj09PXRoaXMud2Epe2NvbnN0IHQ9dGhpcy5ZaDt0LmdhJiZ0aGlzLmJhKHQuZ2EpfX1tKCl7bnVsbCE9PXRoaXMuZGEmJmNsZWFyVGltZW91dCh0aGlzLmRhKX1XZSh0KXtyZXR1cm4gdGhpcy55bi5wcmljZUxpbmVDb2xvcnx8dH1BZSh0KXtjb25zdCBpPXtMZTohMH0scz10aGlzLkZ0KCk7aWYodGhpcy5RdCgpLkV0KCkuR2koKXx8cy5HaSgpfHx0aGlzLnF0LkdpKCkpcmV0dXJuIGk7Y29uc3QgZT10aGlzLlF0KCkuRXQoKS5FZSgpLGg9dGhpcy5MdCgpO2lmKG51bGw9PT1lfHxudWxsPT09aClyZXR1cm4gaTtsZXQgbixyO2lmKHQpe2NvbnN0IHQ9dGhpcy5xdC5QaCgpO2lmKG51bGw9PT10KXJldHVybiBpO249dCxyPXQuJG59ZWxzZXtjb25zdCB0PXRoaXMucXQuSG4oZS5iaSgpLC0xKTtpZihudWxsPT09dClyZXR1cm4gaTtpZihuPXRoaXMucXQuTWgodC4kbiksbnVsbD09PW4pcmV0dXJuIGk7cj10LiRufWNvbnN0IG89bi5XdFszXSxsPXRoaXMuU2EoKS5TaChyLHtXdDpufSksYT1zLk50KG8saC5XdCk7cmV0dXJue0xlOiExLE10Om8scmk6cy5KaShvLGguV3QpLHFlOnMueGEobyksWWU6cy5DYShvLGguV3QpLFI6bC5zaCxFaTphLCRuOnJ9fVNhKCl7cmV0dXJuIG51bGwhPT10aGlzLmNhfHwodGhpcy5jYT1uZXcgVHQodGhpcykpLHRoaXMuY2F9Tigpe3JldHVybiB0aGlzLnlufXZyKHQpe2NvbnN0IGk9dGhpcy5RdCgpLHtwcmljZVNjYWxlSWQ6cyx2aXNpYmxlOmUscHJpY2VGb3JtYXQ6aH09dDt2b2lkIDAhPT1zJiZzIT09dGhpcy55bi5wcmljZVNjYWxlSWQmJmkueWEodGhpcyxzKSx2b2lkIDAhPT1lJiZlIT09dGhpcy55bi52aXNpYmxlJiZpLmthKCk7Y29uc3Qgbj12b2lkIDAhPT10LmNvbmZsYXRpb25UaHJlc2hvbGRGYWN0b3I7cCh0aGlzLnluLHQpLG4mJih0aGlzLnZhLmNsZWFyKCksdGhpcy5RdCgpLm1yKCkpLHZvaWQgMCE9PWgmJih0aGlzLk1hKCksaS5QYSgpKSxpLlRhKHRoaXMpLGkuUmEoKSx0aGlzLlloLmt0KCJvcHRpb25zIil9aHQodCxpKXt0aGlzLnF0Lmh0KHQpLHRoaXMudmEuY2xlYXIoKTtjb25zdCBzPXRoaXMuUXQoKS5FdCgpLk4oKTtzLmVuYWJsZUNvbmZsYXRpb24mJnMucHJlY29tcHV0ZUNvbmZsYXRpb25PbkluaXQmJnRoaXMuRGEocy5wcmVjb21wdXRlQ29uZmxhdGlvblByaW9yaXR5KSx0aGlzLlloLmt0KCJkYXRhIiksbnVsbCE9PXRoaXMudWEmJihpJiZpLklhP3RoaXMudWEuRGUoKTowPT09dC5sZW5ndGgmJnRoaXMudWEuUmUoKSk7Y29uc3QgZT10aGlzLlF0KCkuS3ModGhpcyk7dGhpcy5RdCgpLlZhKGUpLHRoaXMuUXQoKS5UYSh0aGlzKSx0aGlzLlF0KCkuUmEoKSx0aGlzLlF0KCkubXIoKX1CYSh0KXtjb25zdCBpPW5ldyB5dCh0aGlzLHQpO3JldHVybiB0aGlzLm9hLnB1c2goaSksCnRoaXMuUXQoKS5UYSh0aGlzKSxpfUVhKHQpe2NvbnN0IGk9dGhpcy5vYS5pbmRleE9mKHQpOy0xIT09aSYmdGhpcy5vYS5zcGxpY2UoaSwxKSx0aGlzLlF0KCkuVGEodGhpcyl9QWEoKXtyZXR1cm4gdGhpcy5vYX1iaCgpe3JldHVybiB0aGlzLndhfUx0KCl7Y29uc3QgdD10aGlzLkxhKCk7cmV0dXJuIG51bGw9PT10P251bGw6e1d0OnQuV3RbM10semE6dC53dH19TGEoKXtjb25zdCB0PXRoaXMuUXQoKS5FdCgpLkVlKCk7aWYobnVsbD09PXQpcmV0dXJuIG51bGw7Y29uc3QgaT10Lk9hKCk7cmV0dXJuIHRoaXMucXQuSG4oaSwxKX1Vbigpe3JldHVybiB0aGlzLnF0fWJhKHQpe3RoaXMubWE9dCx0aGlzLnZhLmNsZWFyKCl9TmEoKXtyZXR1cm4hIXRoaXMuUXQoKS5FdCgpLk4oKS5lbmFibGVDb25mbGF0aW9uJiZ0aGlzLkZhKCk+MX1Scih0KXtpZighdGhpcy5OYSgpKXJldHVybjtjb25zdCBpPXRoaXMuRmEoKTtpZighdGhpcy52YS5oYXMoaSkpcmV0dXJuO2NvbnN0IHM9IkN1c3RvbSI9PT10aGlzLndhLGU9cyYmdGhpcy5tYXx8dm9pZCAwLGg9cyYmdGhpcy5ZaC5XYT90PT57Y29uc3QgaT10LHM9dGhpcy5ZaC5XYShpKTtyZXR1cm4gQXJyYXkuaXNBcnJheShzKT9zOlsibnVtYmVyIj09dHlwZW9mIHM/czowXX06dm9pZCAwLG49dGhpcy5wYS5Scih0aGlzLnF0LkJoKCksdCxpLGUscyxoKSxyPUl0KCk7ci5odChuKSx0aGlzLnZhLnNldChpLHIpfUhhKCl7Y29uc3QgdD10aGlzLlF0KCkuRXQoKS5OKCkuZW5hYmxlQ29uZmxhdGlvbjtpZigiQ3VzdG9tIj09PXRoaXMud2EmJm51bGw9PT10aGlzLm1hKXJldHVybiB0aGlzLnF0O2lmKCF0KXJldHVybiB0aGlzLnF0O2NvbnN0IGk9dGhpcy5GYSgpLHM9dGhpcy52YS5nZXQoaSk7cmV0dXJuIHN8fCh0aGlzLlVhKGkpLHRoaXMudmEuZ2V0KGkpPz90aGlzLnF0KX0kYSh0KXtjb25zdCBpPXRoaXMucXQuTWgodCk7cmV0dXJuIG51bGw9PT1pP251bGw6IkJhciI9PT10aGlzLndhfHwiQ2FuZGxlc3RpY2siPT09dGhpcy53YXx8IkN1c3RvbSI9PT10aGlzLndhP3tqcjppLld0WzBdLHFyOmkuV3RbMV0sWXI6aS5XdFsyXSxLcjppLld0WzNdfTppLld0WzNdfWphKHQpe2NvbnN0IGk9W107WnQodGhpcy5mYSxZdCwidG9wIixpKTtjb25zdCBzPXRoaXMudWE7cmV0dXJuIG51bGwhPT1zJiZzLkl0KCk/KG51bGw9PT10aGlzLmRhJiZzLlZlKCkmJih0aGlzLmRhPXNldFRpbWVvdXQoKCgpPT57dGhpcy5kYT1udWxsLHRoaXMuUXQoKS5xYSgpfSksMCkpLHMuSWUoKSxpLnVuc2hpZnQocyksaSk6aX1qbigpe2NvbnN0IHQ9W107dGhpcy5ZYSgpfHx0LnB1c2godGhpcy5fYSksdC5wdXNoKHRoaXMuWWgsdGhpcy5kcik7Y29uc3QgaT10aGlzLm9hLm1hcCgodD0+dC53cigpKSk7cmV0dXJuIHQucHVzaCguLi5pKSxadCh0aGlzLmZhLFl0LCJub3JtYWwiLHQpLHR9S2EoKXtyZXR1cm4gdGhpcy5aYShZdCwiYm90dG9tIil9R2EodCl7cmV0dXJuIHRoaXMuWmEoSHQsdCl9WGEodCl7cmV0dXJuIHRoaXMuWmEoR3QsdCl9SmEodCxpKXtyZXR1cm4gdGhpcy5mYS5tYXAoKHM9PnMuUXModCxpKSkpLmZpbHRlcigodD0+bnVsbCE9PXQpKX1jbigpe3JldHVyblt0aGlzLnByLC4uLnRoaXMub2EubWFwKCh0PT50Lk1yKCkpKV19cW4odCxpKXtpZihpIT09dGhpcy5obiYmIXRoaXMuWWEoKSlyZXR1cm5bXTtjb25zdCBzPVsuLi50aGlzLm1uXTtmb3IoY29uc3QgdCBvZiB0aGlzLm9hKXMucHVzaCh0LmdyKCkpO3JldHVybiB0aGlzLmZhLmZvckVhY2goKHQ9PntzLnB1c2goLi4udC5xbigpKX0pKSxzfWRuKCl7Y29uc3QgdD1bXTtyZXR1cm4gdGhpcy5mYS5mb3JFYWNoKChpPT57dC5wdXNoKC4uLmkuZG4oKSl9KSksdH1sYSh0LGkpe2lmKHZvaWQgMCE9PXRoaXMueW4uYXV0b3NjYWxlSW5mb1Byb3ZpZGVyKXtjb25zdCBzPXRoaXMueW4uYXV0b3NjYWxlSW5mb1Byb3ZpZGVyKCgoKT0+e2NvbnN0IHM9dGhpcy5RYSh0LGkpO3JldHVybiBudWxsPT09cz9udWxsOnMuc3IoKX0pKTtyZXR1cm4gYnQuZXIocyl9cmV0dXJuIHRoaXMuUWEodCxpKX1LaCgpe2NvbnN0IHQ9dGhpcy55bi5wcmljZUZvcm1hdDtyZXR1cm4gdC5iYXNlPz8xL3QubWluTW92ZX10bCgpe3JldHVybiB0aGlzLmlsfU5uKCl7dGhpcy5ZaC5rdCgpO2Zvcihjb25zdCB0IG9mIHRoaXMubW4pdC5rdCgpO2Zvcihjb25zdCB0IG9mIHRoaXMub2EpdC5rdCgpO3RoaXMuZHIua3QoKSx0aGlzLl9hLmt0KCksdGhpcy51YT8ua3QoKSx0aGlzLmZhLmZvckVhY2goKHQ9PnQuTm4oKSkpfUZ0KCl7cmV0dXJuIGQoc3VwZXIuRnQoKSl9QXQodCl7aWYoIkxpbmUiIT09dGhpcy53YSYmIkFyZWEiIT09dGhpcy53YSYmIkJhc2VsaW5lIiE9PXRoaXMud2F8fCF0aGlzLnluLmNyb3NzaGFpck1hcmtlclZpc2libGUpcmV0dXJuIG51bGw7Y29uc3QgaT10aGlzLnF0Lk1oKHQpO3JldHVybiBudWxsPT09aT9udWxsOntNdDppLld0WzNdLGZ0OnRoaXMubmwoKSxIdDp0aGlzLnNsKCksT3Q6dGhpcy5lbCgpLHp0OnRoaXMucmwodCl9fUhlKCl7cmV0dXJuIHRoaXMueW4udGl0bGV9SXQoKXtyZXR1cm4gdGhpcy55bi52aXNpYmxlfWhsKHQpe3RoaXMuZmEucHVzaChuZXcgQXQodCx0aGlzKSl9YWwodCl7dGhpcy5mYT10aGlzLmZhLmZpbHRlcigoaT0+aS5RaCgpIT09dCkpfWxsKCl7aWYoIkN1c3RvbSI9PT10aGlzLndhKXJldHVybiB0PT50aGlzLlloLldhKHQpfW9sKCl7aWYoIkN1c3RvbSI9PT10aGlzLndhKXJldHVybiB0PT50aGlzLlloLl9sKHQpfXVsKCl7cmV0dXJuIHRoaXMucXQuTGgoKX1ZYSgpe3JldHVybiFqKHRoaXMuRnQoKS5jbCgpKX1RYSh0LGkpe2lmKCF2KHQpfHwhdihpKXx8dGhpcy5xdC5HaSgpKXJldHVybiBudWxsO2NvbnN0IHM9IkxpbmUiPT09dGhpcy53YXx8IkFyZWEiPT09dGhpcy53YXx8IkJhc2VsaW5lIj09PXRoaXMud2F8fCJIaXN0b2dyYW0iPT09dGhpcy53YT9bM106WzIsMV0sZT10aGlzLnF0LkVoKHQsaSxzKTtsZXQgaD1udWxsIT09ZT9uZXcgdnQoZS5VaCxlLiRoKTpudWxsLG49bnVsbDtpZigiSGlzdG9ncmFtIj09PXRoaXMuYmgoKSl7Y29uc3QgdD10aGlzLnluLmJhc2UsaT1uZXcgdnQodCx0KQo7aD1udWxsIT09aD9oLlNzKGkpOml9cmV0dXJuIHRoaXMuZmEuZm9yRWFjaCgocz0+e2NvbnN0IGU9cy5sYSh0LGkpO2lmKGU/LnByaWNlUmFuZ2Upe2NvbnN0IHQ9bmV3IHZ0KGUucHJpY2VSYW5nZS5taW5WYWx1ZSxlLnByaWNlUmFuZ2UubWF4VmFsdWUpO2g9bnVsbCE9PWg/aC5Tcyh0KTp0fWU/Lm1hcmdpbnMmJihuPWUubWFyZ2lucyl9KSksbmV3IGJ0KGgsbil9bmwoKXtzd2l0Y2godGhpcy53YSl7Y2FzZSJMaW5lIjpjYXNlIkFyZWEiOmNhc2UiQmFzZWxpbmUiOnJldHVybiB0aGlzLnluLmNyb3NzaGFpck1hcmtlclJhZGl1c31yZXR1cm4gMH1zbCgpe3N3aXRjaCh0aGlzLndhKXtjYXNlIkxpbmUiOmNhc2UiQXJlYSI6Y2FzZSJCYXNlbGluZSI6e2NvbnN0IHQ9dGhpcy55bi5jcm9zc2hhaXJNYXJrZXJCb3JkZXJDb2xvcjtpZigwIT09dC5sZW5ndGgpcmV0dXJuIHR9fXJldHVybiBudWxsfWVsKCl7c3dpdGNoKHRoaXMud2Epe2Nhc2UiTGluZSI6Y2FzZSJBcmVhIjpjYXNlIkJhc2VsaW5lIjpyZXR1cm4gdGhpcy55bi5jcm9zc2hhaXJNYXJrZXJCb3JkZXJXaWR0aH1yZXR1cm4gMH1ybCh0KXtzd2l0Y2godGhpcy53YSl7Y2FzZSJMaW5lIjpjYXNlIkFyZWEiOmNhc2UiQmFzZWxpbmUiOntjb25zdCB0PXRoaXMueW4uY3Jvc3NoYWlyTWFya2VyQmFja2dyb3VuZENvbG9yO2lmKDAhPT10Lmxlbmd0aClyZXR1cm4gdH19cmV0dXJuIHRoaXMuU2EoKS5TaCh0KS5zaH1NYSgpe3N3aXRjaCh0aGlzLnluLnByaWNlRm9ybWF0LnR5cGUpe2Nhc2UiY3VzdG9tIjp7Y29uc3QgdD10aGlzLnluLnByaWNlRm9ybWF0LmZvcm1hdHRlcjt0aGlzLmlsPXtmb3JtYXQ6dCxmb3JtYXRUaWNrbWFya3M6dGhpcy55bi5wcmljZUZvcm1hdC50aWNrbWFya3NGb3JtYXR0ZXI/PyhpPT5pLm1hcCh0KSl9O2JyZWFrfWNhc2Uidm9sdW1lIjp0aGlzLmlsPW5ldyBldCh0aGlzLnluLnByaWNlRm9ybWF0LnByZWNpc2lvbik7YnJlYWs7Y2FzZSJwZXJjZW50Ijp0aGlzLmlsPW5ldyBzdCh0aGlzLnluLnByaWNlRm9ybWF0LnByZWNpc2lvbik7YnJlYWs7ZGVmYXVsdDp7Y29uc3QgdD1NYXRoLnBvdygxMCx0aGlzLnluLnByaWNlRm9ybWF0LnByZWNpc2lvbik7dGhpcy5pbD1uZXcgaXQodCx0aGlzLnluLnByaWNlRm9ybWF0Lm1pbk1vdmUqdCl9fW51bGwhPT10aGlzLmhuJiZ0aGlzLmhuLmRsKCl9WmEodCxpKXtjb25zdCBzPVtdO3JldHVybiBadCh0aGlzLmZhLHQsaSxzKSxzfUZhKCl7Y29uc3R7Zmw6dCxwbDppLHZsOnN9PXRoaXMubWwoKTtyZXR1cm4gdGhpcy5wYS5Tcih0LGkscyl9bWwoKXtjb25zdCB0PXRoaXMuUXQoKS5FdCgpLGk9dC5mbCgpLHM9d2luZG93LmRldmljZVBpeGVsUmF0aW98fDEsZT10Lk4oKS5jb25mbGF0aW9uVGhyZXNob2xkRmFjdG9yO3JldHVybntmbDppLHBsOnMsdmw6dGhpcy55bi5jb25mbGF0aW9uVGhyZXNob2xkRmFjdG9yPz9lPz8xfX13bCh0KXtjb25zdCBpPXRoaXMucXQuQmgoKTtsZXQgcztpZigiQ3VzdG9tIj09PXRoaXMud2EmJm51bGwhPT10aGlzLm1hKXtjb25zdCBlPXRoaXMubGwoKTtpZighZSl0aHJvdyBuZXcgRXJyb3IoIkN1c3RvbSBzZXJpZXMgd2l0aCBjb25mbGF0aW9uIHJlZHVjZXIgbXVzdCBoYXZlIGEgcHJpY2VWYWx1ZUJ1aWxkZXIgbWV0aG9kIik7cz10aGlzLnBhLkNyKGksdCx0aGlzLm1hLCEwLCh0PT5lKHQpKSl9ZWxzZSBzPXRoaXMucGEuQ3IoaSx0KTtjb25zdCBlPUl0KCk7cmV0dXJuIGUuaHQocyksZX1VYSh0KXtjb25zdCBpPXRoaXMud2wodCk7dGhpcy52YS5zZXQodCxpKX1EYSh0KXtpZigiQ3VzdG9tIj09PXRoaXMud2EmJihudWxsPT09dGhpcy5tYXx8IXRoaXMubGwoKSkpcmV0dXJuO3RoaXMudmEuY2xlYXIoKTtjb25zdCBpPXRoaXMuUXQoKS5FdCgpLk1sKCk7Zm9yKGNvbnN0IHMgb2YgaSl7Y29uc3QgaT0oKT0+e3RoaXMuZ2wocyl9LGU9Im9iamVjdCI9PXR5cGVvZiB3aW5kb3cmJndpbmRvd3x8Im9iamVjdCI9PXR5cGVvZiBzZWxmJiZzZWxmO2U/LlNsPy5ibD9lLlNsLmJsKCgoKT0+e2koKX0pLHtzZTp0fSk6UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKCk9PmkoKSkpfX1nbCh0KXtpZih0aGlzLnZhLmhhcyh0KSlyZXR1cm47aWYoMD09PXRoaXMucXQuQmgoKS5sZW5ndGgpcmV0dXJuO2NvbnN0IGk9dGhpcy53bCh0KTt0aGlzLnZhLnNldCh0LGkpfX1jb25zdCBYdD1bM10sSnQ9WzAsMSwyLDNdO2NsYXNzIHRpe2NvbnN0cnVjdG9yKHQpe3RoaXMueW49dH14bCh0LGkscyl7bGV0IGU9dDtpZigwPT09dGhpcy55bi5tb2RlKXJldHVybiBlO2NvbnN0IGg9cy5QbigpLG49aC5MdCgpO2lmKG51bGw9PT1uKXJldHVybiBlO2NvbnN0IHI9aC5OdCh0LG4pLG89cy5DbCgpLmZpbHRlcigodD0+dCBpbnN0YW5jZW9mIGp0KSkucmVkdWNlKCgodCxlKT0+e2lmKHMuWnMoZSl8fCFlLkl0KCkpcmV0dXJuIHQ7Y29uc3QgaD1lLkZ0KCksbj1lLlVuKCk7aWYoaC5HaSgpfHwhbi56ZShpKSlyZXR1cm4gdDtjb25zdCByPW4uTWgoaSk7aWYobnVsbD09PXIpcmV0dXJuIHQ7Y29uc3Qgbz1mKGUuTHQoKSksbD0zPT09dGhpcy55bi5tb2RlP0p0Olh0O3JldHVybiB0LmNvbmNhdChsLm1hcCgodD0+aC5OdChyLld0W3RdLG8uV3QpKSkpfSksW10pO2lmKDA9PT1vLmxlbmd0aClyZXR1cm4gZTtvLnNvcnQoKCh0LGkpPT5NYXRoLmFicyh0LXIpLU1hdGguYWJzKGktcikpKTtjb25zdCBsPW9bMF07cmV0dXJuIGU9aC5UbihsLG4pLGV9fWZ1bmN0aW9uIGlpKHQsaSxzKXtyZXR1cm4gTWF0aC5taW4oTWF0aC5tYXgodCxpKSxzKX1mdW5jdGlvbiBzaSh0LGkscyl7cmV0dXJuIGktdDw9c31mdW5jdGlvbiBlaSh0KXtjb25zdCBpPU1hdGguY2VpbCh0KTtyZXR1cm4gaSUyPT0wP2ktMTppfWNsYXNzIGhpIGV4dGVuZHMgentjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5xdD1udWxsfWh0KHQpe3RoaXMucXQ9dH1ldCh7Y29udGV4dDp0LGJpdG1hcFNpemU6aSxob3Jpem9udGFsUGl4ZWxSYXRpbzpzLHZlcnRpY2FsUGl4ZWxSYXRpbzplfSl7aWYobnVsbD09PXRoaXMucXQpcmV0dXJuO2NvbnN0IGg9TWF0aC5tYXgoMSxNYXRoLmZsb29yKHMpKTt0LmxpbmVXaWR0aD1oLApmdW5jdGlvbih0LGkpe3Quc2F2ZSgpLHQubGluZVdpZHRoJTImJnQudHJhbnNsYXRlKC41LC41KSxpKCksdC5yZXN0b3JlKCl9KHQsKCgpPT57Y29uc3Qgbj1kKHRoaXMucXQpO2lmKG4ueWwpe3Quc3Ryb2tlU3R5bGU9bi5rbCxsKHQsbi5QbCksdC5iZWdpblBhdGgoKTtmb3IoY29uc3QgZSBvZiBuLlRsKXtjb25zdCBuPU1hdGgucm91bmQoZS5SbCpzKTt0Lm1vdmVUbyhuLC1oKSx0LmxpbmVUbyhuLGkuaGVpZ2h0K2gpfXQuc3Ryb2tlKCl9aWYobi5EbCl7dC5zdHJva2VTdHlsZT1uLklsLGwodCxuLlZsKSx0LmJlZ2luUGF0aCgpO2Zvcihjb25zdCBzIG9mIG4uQmwpe2NvbnN0IG49TWF0aC5yb3VuZChzLlJsKmUpO3QubW92ZVRvKC1oLG4pLHQubGluZVRvKGkud2lkdGgraCxuKX10LnN0cm9rZSgpfX0pKX19Y2xhc3Mgbml7Y29uc3RydWN0b3IodCl7dGhpcy5YdD1uZXcgaGksdGhpcy54dD0hMCx0aGlzLnl0PXR9a3QoKXt0aGlzLnh0PSEwfVR0KCl7aWYodGhpcy54dCl7Y29uc3QgdD10aGlzLnl0LlF0KCkuTigpLmdyaWQsaT17RGw6dC5ob3J6TGluZXMudmlzaWJsZSx5bDp0LnZlcnRMaW5lcy52aXNpYmxlLElsOnQuaG9yekxpbmVzLmNvbG9yLGtsOnQudmVydExpbmVzLmNvbG9yLFZsOnQuaG9yekxpbmVzLnN0eWxlLFBsOnQudmVydExpbmVzLnN0eWxlLEJsOnRoaXMueXQuUG4oKS5FbCgpLFRsOih0aGlzLnl0LlF0KCkuRXQoKS5FbCgpfHxbXSkubWFwKCh0PT4oe1JsOnQuY29vcmR9KSkpfTt0aGlzLlh0Lmh0KGkpLHRoaXMueHQ9ITF9cmV0dXJuIHRoaXMuWHR9fWNsYXNzIHJpe2NvbnN0cnVjdG9yKHQpe3RoaXMuWWg9bmV3IG5pKHQpfXdyKCl7cmV0dXJuIHRoaXMuWWh9fWNvbnN0IG9pPXtBbDo0LExsOjFlLTR9O2Z1bmN0aW9uIGxpKHQsaSl7Y29uc3Qgcz0xMDAqKHQtaSkvaTtyZXR1cm4gaTwwPy1zOnN9ZnVuY3Rpb24gYWkodCxpKXtjb25zdCBzPWxpKHQuSmUoKSxpKSxlPWxpKHQuUWUoKSxpKTtyZXR1cm4gbmV3IHZ0KHMsZSl9ZnVuY3Rpb24gdWkodCxpKXtjb25zdCBzPTEwMCoodC1pKS9pKzEwMDtyZXR1cm4gaTwwPy1zOnN9ZnVuY3Rpb24gY2kodCxpKXtjb25zdCBzPXVpKHQuSmUoKSxpKSxlPXVpKHQuUWUoKSxpKTtyZXR1cm4gbmV3IHZ0KHMsZSl9ZnVuY3Rpb24gZGkodCxpKXtjb25zdCBzPU1hdGguYWJzKHQpO2lmKHM8MWUtMTUpcmV0dXJuIDA7Y29uc3QgZT1NYXRoLmxvZzEwKHMraS5MbCkraS5BbDtyZXR1cm4gdDwwPy1lOmV9ZnVuY3Rpb24gZmkodCxpKXtjb25zdCBzPU1hdGguYWJzKHQpO2lmKHM8MWUtMTUpcmV0dXJuIDA7Y29uc3QgZT1NYXRoLnBvdygxMCxzLWkuQWwpLWkuTGw7cmV0dXJuIHQ8MD8tZTplfWZ1bmN0aW9uIG1pKHQsaSl7aWYobnVsbD09PXQpcmV0dXJuIG51bGw7Y29uc3Qgcz1kaSh0LkplKCksaSksZT1kaSh0LlFlKCksaSk7cmV0dXJuIG5ldyB2dChzLGUpfWZ1bmN0aW9uIHBpKHQsaSl7aWYobnVsbD09PXQpcmV0dXJuIG51bGw7Y29uc3Qgcz1maSh0LkplKCksaSksZT1maSh0LlFlKCksaSk7cmV0dXJuIG5ldyB2dChzLGUpfWZ1bmN0aW9uIGdpKHQpe2lmKG51bGw9PT10KXJldHVybiBvaTtjb25zdCBpPU1hdGguYWJzKHQuUWUoKS10LkplKCkpO2lmKGk+PTF8fGk8MWUtMTUpcmV0dXJuIG9pO2NvbnN0IHM9TWF0aC5jZWlsKE1hdGguYWJzKE1hdGgubG9nMTAoaSkpKSxlPW9pLkFsK3M7cmV0dXJue0FsOmUsTGw6MS9NYXRoLnBvdygxMCxlKX19Y2xhc3Mgdml7Y29uc3RydWN0b3IodCxpKXtpZih0aGlzLnpsPXQsdGhpcy5PbD1pLGZ1bmN0aW9uKHQpe2lmKHQ8MClyZXR1cm4hMTtpZih0PjFlMTgpcmV0dXJuITA7Zm9yKGxldCBpPXQ7aT4xO2kvPTEwKWlmKGklMTAhPTApcmV0dXJuITE7cmV0dXJuITB9KHRoaXMuemwpKXRoaXMuTmw9WzIsMi41LDJdO2Vsc2V7dGhpcy5ObD1bXTtmb3IobGV0IHQ9dGhpcy56bDsxIT09dDspe2lmKHQlMj09MCl0aGlzLk5sLnB1c2goMiksdC89MjtlbHNle2lmKHQlNSE9MCl0aHJvdyBuZXcgRXJyb3IoInVuZXhwZWN0ZWQgYmFzZSIpO3RoaXMuTmwucHVzaCgyLDIuNSksdC89NX1pZih0aGlzLk5sLmxlbmd0aD4xMDApdGhyb3cgbmV3IEVycm9yKCJzb21ldGhpbmcgd3Jvbmcgd2l0aCBiYXNlIil9fX1GbCh0LGkscyl7Y29uc3QgZT0wPT09dGhpcy56bD8wOjEvdGhpcy56bDtsZXQgaD1NYXRoLnBvdygxMCxNYXRoLm1heCgwLE1hdGguY2VpbChNYXRoLmxvZzEwKHQtaSkpKSksbj0wLHI9dGhpcy5PbFswXTtmb3IoOzspe2NvbnN0IHQ9c2koaCxlLDFlLTE0KSYmaD5lKzFlLTE0LGk9c2koaCxzKnIsMWUtMTQpLG89c2koaCwxLDFlLTE0KTtpZighKHQmJmkmJm8pKWJyZWFrO2gvPXIscj10aGlzLk9sWysrbiV0aGlzLk9sLmxlbmd0aF19aWYoaDw9ZSsxZS0xNCYmKGg9ZSksaD1NYXRoLm1heCgxLGgpLHRoaXMuTmwubGVuZ3RoPjAmJihvPWgsTWF0aC5hYnMoby0xKTwxZS0xNCkpZm9yKG49MCxyPXRoaXMuTmxbMF07c2koaCxzKnIsMWUtMTQpJiZoPmUrMWUtMTQ7KWgvPXIscj10aGlzLk5sWysrbiV0aGlzLk5sLmxlbmd0aF07dmFyIG87cmV0dXJuIGh9fWNsYXNzIGJpe2NvbnN0cnVjdG9yKHQsaSxzLGUpe3RoaXMuV2w9W10sdGhpcy5LaT10LHRoaXMuemw9aSx0aGlzLkhsPXMsdGhpcy5VbD1lfUZsKHQsaSl7aWYodDxpKXRocm93IG5ldyBFcnJvcigiaGlnaCA8IGxvdyIpO2NvbnN0IHM9dGhpcy5LaS4kdCgpLGU9KHQtaSkqdGhpcy4kbCgpL3MsaD1uZXcgdmkodGhpcy56bCxbMiwyLjUsMl0pLG49bmV3IHZpKHRoaXMuemwsWzIsMiwyLjVdKSxyPW5ldyB2aSh0aGlzLnpsLFsyLjUsMiwyXSksbz1bXTtyZXR1cm4gby5wdXNoKGguRmwodCxpLGUpLG4uRmwodCxpLGUpLHIuRmwodCxpLGUpKSxmdW5jdGlvbih0KXtpZih0Lmxlbmd0aDwxKXRocm93IEVycm9yKCJhcnJheSBpcyBlbXB0eSIpO2xldCBpPXRbMF07Zm9yKGxldCBzPTE7czx0Lmxlbmd0aDsrK3MpdFtzXTxpJiYoaT10W3NdKTtyZXR1cm4gaX0obyl9amwoKXtjb25zdCB0PXRoaXMuS2ksaT10Lkx0KCk7aWYobnVsbD09PWkpcmV0dXJuIHZvaWQodGhpcy5XbD1bXSkKO2NvbnN0IHM9dC4kdCgpLGU9dGhpcy5IbChzLTEsaSksaD10aGlzLkhsKDAsaSksbj10aGlzLktpLk4oKS5lbnRpcmVUZXh0T25seT90aGlzLnFsKCkvMjowLHI9bixvPXMtMS1uLGw9TWF0aC5tYXgoZSxoKSxhPU1hdGgubWluKGUsaCk7aWYobD09PWEpcmV0dXJuIHZvaWQodGhpcy5XbD1bXSk7Y29uc3QgdT10aGlzLkZsKGwsYSk7aWYodGhpcy5ZbChpLHUsbCxhLHIsbyksdC5LbCgpJiZ0aGlzLlpsKHUsYSxsKSl7Y29uc3QgdD10aGlzLktpLkdsKCk7dGhpcy5YbChpLHUscixvLHQsMip0KX1jb25zdCBjPXRoaXMuV2wubWFwKCh0PT50LkpsKSksZD10aGlzLktpLlFsKGMpO2ZvcihsZXQgdD0wO3Q8dGhpcy5XbC5sZW5ndGg7dCsrKXRoaXMuV2xbdF0uaW89ZFt0XX1FbCgpe3JldHVybiB0aGlzLldsfXFsKCl7cmV0dXJuIHRoaXMuS2kuaygpfSRsKCl7cmV0dXJuIE1hdGguY2VpbCh0aGlzLnFsKCkqdGhpcy5LaS5OKCkudGlja01hcmtEZW5zaXR5KX1ZbCh0LGkscyxlLGgsbil7Y29uc3Qgcj10aGlzLldsLG89dGhpcy5LaTtsZXQgbD1zJWk7bCs9bDwwP2k6MDtjb25zdCBhPXM+PWU/MTotMTtsZXQgdT1udWxsLGM9MDtmb3IobGV0IGQ9cy1sO2Q+ZTtkLT1pKXtjb25zdCBzPXRoaXMuVWwoZCx0LCEwKTtudWxsIT09dSYmTWF0aC5hYnMocy11KTx0aGlzLiRsKCl8fHM8aHx8cz5ufHwoYzxyLmxlbmd0aD8ocltjXS5SbD1zLHJbY10uaW89by5ubyhkKSxyW2NdLkpsPWQpOnIucHVzaCh7Umw6cyxpbzpvLm5vKGQpLEpsOmR9KSxjKyssdT1zLG8uc28oKSYmKGk9dGhpcy5GbChkKmEsZSkpKX1yLmxlbmd0aD1jfVhsKHQsaSxzLGUsaCxuKXtjb25zdCByPXRoaXMuV2wsbz10aGlzLmVvKHQscyxoLG4pLGw9dGhpcy5lbyh0LGUsLW4sLWgpLGE9dGhpcy5VbCgwLHQsITApLXRoaXMuVWwoaSx0LCEwKTtyLmxlbmd0aD4wJiZyWzBdLlJsLW8uUmw8YS8yJiZyLnNoaWZ0KCksci5sZW5ndGg+MCYmbC5SbC1yW3IubGVuZ3RoLTFdLlJsPGEvMiYmci5wb3AoKSxyLnVuc2hpZnQobyksci5wdXNoKGwpfWVvKHQsaSxzLGUpe2NvbnN0IGg9KHMrZSkvMixuPXRoaXMuSGwoaStzLHQpLHI9dGhpcy5IbChpK2UsdCksbz1NYXRoLm1pbihuLHIpLGw9TWF0aC5tYXgobixyKSxhPU1hdGgubWF4KC4xLHRoaXMuRmwobCxvKSksdT10aGlzLkhsKGkraCx0KSxjPXUtdSVhLGQ9dGhpcy5VbChjLHQsITApO3JldHVybntpbzp0aGlzLktpLm5vKGMpLFJsOmQsSmw6Y319WmwodCxpLHMpe2xldCBlPWYodGhpcy5LaS5hcigpKTtyZXR1cm4gdGhpcy5LaS5zbygpJiYoZT1waShlLHRoaXMuS2kucm8oKSkpLGUuSmUoKS1pPHQmJnMtZS5RZSgpPHR9fWZ1bmN0aW9uIHdpKHQpe3JldHVybiB0LnNsaWNlKCkuc29ydCgoKHQsaSk9PmQodC5sbigpKS1kKGkubG4oKSkpKX12YXIgTWk7IWZ1bmN0aW9uKHQpe3RbdC5Ob3JtYWw9MF09Ik5vcm1hbCIsdFt0LkxvZ2FyaXRobWljPTFdPSJMb2dhcml0aG1pYyIsdFt0LlBlcmNlbnRhZ2U9Ml09IlBlcmNlbnRhZ2UiLHRbdC5JbmRleGVkVG8xMDA9M109IkluZGV4ZWRUbzEwMCJ9KE1pfHwoTWk9e30pKTtjb25zdCBTaT1uZXcgc3QseWk9bmV3IGl0KDEwMCwxKTtjbGFzcyB4aXtjb25zdHJ1Y3Rvcih0LGkscyxlLGgpe3RoaXMuaG89MCx0aGlzLmFvPW51bGwsdGhpcy5ycj1udWxsLHRoaXMubG89bnVsbCx0aGlzLm9vPXtfbzohMSx1bzpudWxsfSx0aGlzLmNvPSExLHRoaXMuZG89MCx0aGlzLmZvPTAsdGhpcy5wbz1uZXcgbSx0aGlzLnZvPW5ldyBtLHRoaXMubW89W10sdGhpcy53bz1udWxsLHRoaXMuTW89bnVsbCx0aGlzLmJvPW51bGwsdGhpcy5Tbz1udWxsLHRoaXMueG89bnVsbCx0aGlzLmlsPXlpLHRoaXMuQ289Z2kobnVsbCksdGhpcy55bz10LHRoaXMueW49aSx0aGlzLmtvPXMsdGhpcy5Qbz1lLHRoaXMuVG89aCx0aGlzLlJvPW5ldyBiaSh0aGlzLDEwMCx0aGlzLkRvLmJpbmQodGhpcyksdGhpcy5Jby5iaW5kKHRoaXMpKX1jbCgpe3JldHVybiB0aGlzLnlvfU4oKXtyZXR1cm4gdGhpcy55bn12cih0KXtpZihwKHRoaXMueW4sdCksdGhpcy5kbCgpLHZvaWQgMCE9PXQubW9kZSYmdGhpcy5Wbyh7X2U6dC5tb2RlfSksdm9pZCAwIT09dC5zY2FsZU1hcmdpbnMpe2NvbnN0IGk9Yyh0LnNjYWxlTWFyZ2lucy50b3ApLHM9Yyh0LnNjYWxlTWFyZ2lucy5ib3R0b20pO2lmKGk8MHx8aT4xKXRocm93IG5ldyBFcnJvcihgSW52YWxpZCB0b3AgbWFyZ2luIC0gZXhwZWN0IHZhbHVlIGJldHdlZW4gMCBhbmQgMSwgZ2l2ZW49JHtpfWApO2lmKHM8MHx8cz4xKXRocm93IG5ldyBFcnJvcihgSW52YWxpZCBib3R0b20gbWFyZ2luIC0gZXhwZWN0IHZhbHVlIGJldHdlZW4gMCBhbmQgMSwgZ2l2ZW49JHtzfWApO2lmKGkrcz4xKXRocm93IG5ldyBFcnJvcihgSW52YWxpZCBtYXJnaW5zIC0gc3VtIG9mIG1hcmdpbnMgbXVzdCBiZSBsZXNzIHRoYW4gMSwgZ2l2ZW49JHtpK3N9YCk7dGhpcy5CbygpLHRoaXMuYm89bnVsbH19RW8oKXtyZXR1cm4gdGhpcy55bi5hdXRvU2NhbGV9QW8oKXtyZXR1cm4gdGhpcy5jb31zbygpe3JldHVybiAxPT09dGhpcy55bi5tb2RlfWplKCl7cmV0dXJuIDI9PT10aGlzLnluLm1vZGV9TG8oKXtyZXR1cm4gMz09PXRoaXMueW4ubW9kZX1ybygpe3JldHVybiB0aGlzLkNvfV9lKCl7cmV0dXJue2hzOnRoaXMueW4uYXV0b1NjYWxlLHpvOnRoaXMueW4uaW52ZXJ0U2NhbGUsX2U6dGhpcy55bi5tb2RlfX1Wbyh0KXtjb25zdCBpPXRoaXMuX2UoKTtsZXQgcz1udWxsO3ZvaWQgMCE9PXQuaHMmJih0aGlzLnluLmF1dG9TY2FsZT10LmhzKSx2b2lkIDAhPT10Ll9lJiYodGhpcy55bi5tb2RlPXQuX2UsMiE9PXQuX2UmJjMhPT10Ll9lfHwodGhpcy55bi5hdXRvU2NhbGU9ITApLHRoaXMub28uX289ITEpLDE9PT1pLl9lJiZ0Ll9lIT09aS5fZSYmKGZ1bmN0aW9uKHQsaSl7aWYobnVsbD09PXQpcmV0dXJuITE7Y29uc3Qgcz1maSh0LkplKCksaSksZT1maSh0LlFlKCksaSk7cmV0dXJuIGlzRmluaXRlKHMpJiZpc0Zpbml0ZShlKX0odGhpcy5ycix0aGlzLkNvKT8ocz1waSh0aGlzLnJyLHRoaXMuQ28pLG51bGwhPT1zJiZ0aGlzLk9vKHMpKTp0aGlzLnluLmF1dG9TY2FsZT0hMCksCjE9PT10Ll9lJiZ0Ll9lIT09aS5fZSYmKHM9bWkodGhpcy5ycix0aGlzLkNvKSxudWxsIT09cyYmdGhpcy5PbyhzKSk7Y29uc3QgZT1pLl9lIT09dGhpcy55bi5tb2RlO2UmJigyPT09aS5fZXx8dGhpcy5qZSgpKSYmdGhpcy5kbCgpLGUmJigzPT09aS5fZXx8dGhpcy5MbygpKSYmdGhpcy5kbCgpLHZvaWQgMCE9PXQuem8mJmkuem8hPT10LnpvJiYodGhpcy55bi5pbnZlcnRTY2FsZT10LnpvLHRoaXMuTm8oKSksdGhpcy52by5wKGksdGhpcy5fZSgpKX1Gbygpe3JldHVybiB0aGlzLnZvfWsoKXtyZXR1cm4gdGhpcy5rby5mb250U2l6ZX0kdCgpe3JldHVybiB0aGlzLmhvfVdvKHQpe3RoaXMuaG8hPT10JiYodGhpcy5obz10LHRoaXMuQm8oKSx0aGlzLmJvPW51bGwpfUhvKCl7aWYodGhpcy5hbylyZXR1cm4gdGhpcy5hbztjb25zdCB0PXRoaXMuJHQoKS10aGlzLlVvKCktdGhpcy4kbygpO3JldHVybiB0aGlzLmFvPXQsdH1hcigpe3JldHVybiB0aGlzLmpvKCksdGhpcy5ycn1Pbyh0LGkpe2NvbnN0IHM9dGhpcy5ycjsoaXx8bnVsbD09PXMmJm51bGwhPT10fHxudWxsIT09cyYmIXMuR2UodCkpJiYodGhpcy5ibz1udWxsLHRoaXMucnI9dCl9cW8odCl7dGhpcy5Pbyh0KSx0aGlzLllvKG51bGwhPT10KX1HaSgpe3JldHVybiB0aGlzLmpvKCksMD09PXRoaXMuaG98fCF0aGlzLnJyfHx0aGlzLnJyLkdpKCl9S28odCl7cmV0dXJuIHRoaXMuem8oKT90OnRoaXMuJHQoKS0xLXR9TnQodCxpKXtyZXR1cm4gdGhpcy5qZSgpP3Q9bGkodCxpKTp0aGlzLkxvKCkmJih0PXVpKHQsaSkpLHRoaXMuSW8odCxpKX1abyh0LGkscyl7dGhpcy5qbygpO2NvbnN0IGU9dGhpcy4kbygpLGg9ZCh0aGlzLmFyKCkpLG49aC5KZSgpLHI9aC5RZSgpLG89dGhpcy5IbygpLTEsbD10aGlzLnpvKCksYT1vLyhyLW4pLHU9dm9pZCAwPT09cz8wOnMuZnJvbSxjPXZvaWQgMD09PXM/dC5sZW5ndGg6cy50byxmPXRoaXMuR28oKTtmb3IobGV0IHM9dTtzPGM7cysrKXtjb25zdCBoPXRbc10scj1oLk10O2lmKGlzTmFOKHIpKWNvbnRpbnVlO2xldCBvPXI7bnVsbCE9PWYmJihvPWYoaC5NdCxpKSk7Y29uc3QgdT1lK2EqKG8tbiksYz1sP3U6dGhpcy5oby0xLXU7aC51dD1jfX1Ybyh0LGkscyl7dGhpcy5qbygpO2NvbnN0IGU9dGhpcy4kbygpLGg9ZCh0aGlzLmFyKCkpLG49aC5KZSgpLHI9aC5RZSgpLG89dGhpcy5IbygpLTEsbD10aGlzLnpvKCksYT1vLyhyLW4pLHU9dm9pZCAwPT09cz8wOnMuZnJvbSxjPXZvaWQgMD09PXM/dC5sZW5ndGg6cy50byxmPXRoaXMuR28oKTtmb3IobGV0IHM9dTtzPGM7cysrKXtjb25zdCBoPXRbc107bGV0IHI9aC5qcixvPWgucXIsdT1oLllyLGM9aC5LcjtudWxsIT09ZiYmKHI9ZihoLmpyLGkpLG89ZihoLnFyLGkpLHU9ZihoLllyLGkpLGM9ZihoLktyLGkpKTtsZXQgZD1lK2EqKHItbiksbT1sP2Q6dGhpcy5oby0xLWQ7aC5Kbz1tLGQ9ZSthKihvLW4pLG09bD9kOnRoaXMuaG8tMS1kLGguUW89bSxkPWUrYSoodS1uKSxtPWw/ZDp0aGlzLmhvLTEtZCxoLnRfPW0sZD1lK2EqKGMtbiksbT1sP2Q6dGhpcy5oby0xLWQsaC5pXz1tfX1Ubih0LGkpe2NvbnN0IHM9dGhpcy5Ebyh0LGkpO3JldHVybiB0aGlzLm5fKHMsaSl9bl8odCxpKXtsZXQgcz10O3JldHVybiB0aGlzLmplKCk/cz1mdW5jdGlvbih0LGkpe3JldHVybiBpPDAmJih0PS10KSx0LzEwMCppK2l9KHMsaSk6dGhpcy5MbygpJiYocz1mdW5jdGlvbih0LGkpe3JldHVybiB0LT0xMDAsaTwwJiYodD0tdCksdC8xMDAqaStpfShzLGkpKSxzfUNsKCl7cmV0dXJuIHRoaXMubW99RHQoKXtyZXR1cm4gdGhpcy5Nb3x8KHRoaXMuTW89d2kodGhpcy5tbykpLHRoaXMuTW99c18odCl7LTE9PT10aGlzLm1vLmluZGV4T2YodCkmJih0aGlzLm1vLnB1c2godCksdGhpcy5kbCgpLHRoaXMuZV8oKSl9cl8odCl7Y29uc3QgaT10aGlzLm1vLmluZGV4T2YodCk7aWYoLTE9PT1pKXRocm93IG5ldyBFcnJvcigic291cmNlIGlzIG5vdCBhdHRhY2hlZCB0byBzY2FsZSIpO3RoaXMubW8uc3BsaWNlKGksMSksMD09PXRoaXMubW8ubGVuZ3RoJiYodGhpcy5Wbyh7aHM6ITB9KSx0aGlzLk9vKG51bGwpKSx0aGlzLmRsKCksdGhpcy5lXygpfUx0KCl7bGV0IHQ9bnVsbDtmb3IoY29uc3QgaSBvZiB0aGlzLm1vKXtjb25zdCBzPWkuTHQoKTtudWxsIT09cyYmKG51bGw9PT10fHxzLnphPHQuemEpJiYodD1zKX1yZXR1cm4gbnVsbD09PXQ/bnVsbDp0Lld0fXpvKCl7cmV0dXJuIHRoaXMueW4uaW52ZXJ0U2NhbGV9RWwoKXtjb25zdCB0PW51bGw9PT10aGlzLkx0KCk7aWYobnVsbCE9PXRoaXMuYm8mJih0fHx0aGlzLmJvLmhfPT09dCkpcmV0dXJuIHRoaXMuYm8uRWw7dGhpcy5Sby5qbCgpO2NvbnN0IGk9dGhpcy5Sby5FbCgpO3JldHVybiB0aGlzLmJvPXtFbDppLGhfOnR9LHRoaXMucG8ucCgpLGl9YV8oKXtyZXR1cm4gdGhpcy5wb31sXyh0KXt0aGlzLmplKCl8fHRoaXMuTG8oKXx8bnVsbD09PXRoaXMuU28mJm51bGw9PT10aGlzLmxvJiYodGhpcy5HaSgpfHwodGhpcy5Tbz10aGlzLmhvLXQsdGhpcy5sbz1kKHRoaXMuYXIoKSkuWGUoKSkpfW9fKHQpe2lmKHRoaXMuamUoKXx8dGhpcy5MbygpKXJldHVybjtpZihudWxsPT09dGhpcy5TbylyZXR1cm47dGhpcy5Wbyh7aHM6ITF9KSwodD10aGlzLmhvLXQpPDAmJih0PTApO2xldCBpPSh0aGlzLlNvKy4yKih0aGlzLmhvLTEpKS8odCsuMioodGhpcy5oby0xKSk7Y29uc3Qgcz1kKHRoaXMubG8pLlhlKCk7aT1NYXRoLm1heChpLC4xKSxzLmlyKGkpLHRoaXMuT28ocyl9X18oKXt0aGlzLmplKCl8fHRoaXMuTG8oKXx8KHRoaXMuU289bnVsbCx0aGlzLmxvPW51bGwpfXVfKHQpe3RoaXMuRW8oKXx8bnVsbD09PXRoaXMueG8mJm51bGw9PT10aGlzLmxvJiYodGhpcy5HaSgpfHwodGhpcy54bz10LHRoaXMubG89ZCh0aGlzLmFyKCkpLlhlKCkpKX1jXyh0KXtpZih0aGlzLkVvKCkpcmV0dXJuO2lmKG51bGw9PT10aGlzLnhvKXJldHVybjtjb25zdCBpPWQodGhpcy5hcigpKS50cigpLyh0aGlzLkhvKCktMSk7bGV0IHM9dC10aGlzLnhvO3RoaXMuem8oKSYmKHMqPS0xKTtjb25zdCBlPXMqaSxoPWQodGhpcy5sbykuWGUoKTtoLm5yKGUpLAp0aGlzLk9vKGgsITApLHRoaXMuYm89bnVsbH1kXygpe3RoaXMuRW8oKXx8bnVsbCE9PXRoaXMueG8mJih0aGlzLnhvPW51bGwsdGhpcy5sbz1udWxsKX10bCgpe3JldHVybiB0aGlzLmlsfHx0aGlzLmRsKCksdGhpcy5pbH1KaSh0LGkpe3N3aXRjaCh0aGlzLnluLm1vZGUpe2Nhc2UgMjpyZXR1cm4gdGhpcy5mXyhsaSh0LGkpKTtjYXNlIDM6cmV0dXJuIHRoaXMudGwoKS5mb3JtYXQodWkodCxpKSk7ZGVmYXVsdDpyZXR1cm4gdGhpcy5jcih0KX19bm8odCl7c3dpdGNoKHRoaXMueW4ubW9kZSl7Y2FzZSAyOnJldHVybiB0aGlzLmZfKHQpO2Nhc2UgMzpyZXR1cm4gdGhpcy50bCgpLmZvcm1hdCh0KTtkZWZhdWx0OnJldHVybiB0aGlzLmNyKHQpfX1RbCh0KXtzd2l0Y2godGhpcy55bi5tb2RlKXtjYXNlIDI6cmV0dXJuIHRoaXMucF8odCk7Y2FzZSAzOnJldHVybiB0aGlzLnRsKCkuZm9ybWF0VGlja21hcmtzKHQpO2RlZmF1bHQ6cmV0dXJuIHRoaXMudl8odCl9fXhhKHQpe3JldHVybiB0aGlzLmNyKHQsZCh0aGlzLndvKS50bCgpKX1DYSh0LGkpe3JldHVybiB0PWxpKHQsaSksdGhpcy5mXyh0LFNpKX1tXygpe3JldHVybiB0aGlzLm1vfXdfKHQpe3RoaXMub289e3VvOnQsX286ITF9fU5uKCl7dGhpcy5tby5mb3JFYWNoKCh0PT50Lk5uKCkpKX1LbCgpe3JldHVybiB0aGlzLnluLmVuc3VyZUVkZ2VUaWNrTWFya3NWaXNpYmxlJiZ0aGlzLkVvKCl9R2woKXtyZXR1cm4gdGhpcy5rKCkvMn1kbCgpe3RoaXMuYm89bnVsbDtsZXQgdD0xLzA7dGhpcy53bz1udWxsO2Zvcihjb25zdCBpIG9mIHRoaXMubW8paS5sbigpPHQmJih0PWkubG4oKSx0aGlzLndvPWkpO2xldCBpPTEwMDtudWxsIT09dGhpcy53byYmKGk9TWF0aC5yb3VuZCh0aGlzLndvLktoKCkpKSx0aGlzLmlsPXlpLHRoaXMuamUoKT8odGhpcy5pbD1TaSxpPTEwMCk6dGhpcy5MbygpPyh0aGlzLmlsPW5ldyBpdCgxMDAsMSksaT0xMDApOm51bGwhPT10aGlzLndvJiYodGhpcy5pbD10aGlzLndvLnRsKCkpLHRoaXMuUm89bmV3IGJpKHRoaXMsaSx0aGlzLkRvLmJpbmQodGhpcyksdGhpcy5Jby5iaW5kKHRoaXMpKSx0aGlzLlJvLmpsKCl9ZV8oKXt0aGlzLk1vPW51bGx9TV8oKXtyZXR1cm4gbnVsbD09PXRoaXMud298fHRoaXMuamUoKXx8dGhpcy5MbygpPzE6MS90aGlzLndvLktoKCl9WGkoKXtyZXR1cm4gdGhpcy5Ub31Zbyh0KXt0aGlzLmNvPXR9VW8oKXtyZXR1cm4gdGhpcy56bygpP3RoaXMueW4uc2NhbGVNYXJnaW5zLmJvdHRvbSp0aGlzLiR0KCkrdGhpcy5mbzp0aGlzLnluLnNjYWxlTWFyZ2lucy50b3AqdGhpcy4kdCgpK3RoaXMuZG99JG8oKXtyZXR1cm4gdGhpcy56bygpP3RoaXMueW4uc2NhbGVNYXJnaW5zLnRvcCp0aGlzLiR0KCkrdGhpcy5kbzp0aGlzLnluLnNjYWxlTWFyZ2lucy5ib3R0b20qdGhpcy4kdCgpK3RoaXMuZm99am8oKXt0aGlzLm9vLl9vfHwodGhpcy5vby5fbz0hMCx0aGlzLmdfKCkpfUJvKCl7dGhpcy5hbz1udWxsfUlvKHQsaSl7aWYodGhpcy5qbygpLHRoaXMuR2koKSlyZXR1cm4gMDt0PXRoaXMuc28oKSYmdD9kaSh0LHRoaXMuQ28pOnQ7Y29uc3Qgcz1kKHRoaXMuYXIoKSksZT10aGlzLiRvKCkrKHRoaXMuSG8oKS0xKSoodC1zLkplKCkpL3MudHIoKTtyZXR1cm4gdGhpcy5LbyhlKX1Ebyh0LGkpe2lmKHRoaXMuam8oKSx0aGlzLkdpKCkpcmV0dXJuIDA7Y29uc3Qgcz10aGlzLktvKHQpLGU9ZCh0aGlzLmFyKCkpLGg9ZS5KZSgpK2UudHIoKSooKHMtdGhpcy4kbygpKS8odGhpcy5IbygpLTEpKTtyZXR1cm4gdGhpcy5zbygpP2ZpKGgsdGhpcy5Dbyk6aH1Obygpe3RoaXMuYm89bnVsbCx0aGlzLlJvLmpsKCl9Z18oKXtpZih0aGlzLkFvKCkmJiF0aGlzLkVvKCkpcmV0dXJuO2NvbnN0IHQ9dGhpcy5vby51bztpZihudWxsPT09dClyZXR1cm47bGV0IGk9bnVsbDtjb25zdCBzPXRoaXMubV8oKTtsZXQgZT0wLGg9MDtmb3IoY29uc3QgbiBvZiBzKXtpZighbi5JdCgpKWNvbnRpbnVlO2NvbnN0IHM9bi5MdCgpO2lmKG51bGw9PT1zKWNvbnRpbnVlO2NvbnN0IHI9bi5sYSh0Lk9hKCksdC5iaSgpKTtsZXQgbz1yJiZyLmFyKCk7aWYobnVsbCE9PW8pe3N3aXRjaCh0aGlzLnluLm1vZGUpe2Nhc2UgMTpvPW1pKG8sdGhpcy5Dbyk7YnJlYWs7Y2FzZSAyOm89YWkobyxzLld0KTticmVhaztjYXNlIDM6bz1jaShvLHMuV3QpfWlmKGk9bnVsbD09PWk/bzppLlNzKGQobykpLG51bGwhPT1yKXtjb25zdCB0PXIubHIoKTtudWxsIT09dCYmKGU9TWF0aC5tYXgoZSx0LmFib3ZlKSxoPU1hdGgubWF4KGgsdC5iZWxvdykpfX19aWYodGhpcy5LbCgpJiYoZT1NYXRoLm1heChlLHRoaXMuR2woKSksaD1NYXRoLm1heChoLHRoaXMuR2woKSkpLGU9PT10aGlzLmRvJiZoPT09dGhpcy5mb3x8KHRoaXMuZG89ZSx0aGlzLmZvPWgsdGhpcy5ibz1udWxsLHRoaXMuQm8oKSksbnVsbCE9PWkpe2lmKGkuSmUoKT09PWkuUWUoKSl7Y29uc3QgdD01KnRoaXMuTV8oKTt0aGlzLnNvKCkmJihpPXBpKGksdGhpcy5DbykpLGk9bmV3IHZ0KGkuSmUoKS10LGkuUWUoKSt0KSx0aGlzLnNvKCkmJihpPW1pKGksdGhpcy5DbykpfWlmKHRoaXMuc28oKSl7Y29uc3QgdD1waShpLHRoaXMuQ28pLHM9Z2kodCk7aWYobj1zLHI9dGhpcy5DbyxuLkFsIT09ci5BbHx8bi5MbCE9PXIuTGwpe2NvbnN0IGU9bnVsbCE9PXRoaXMubG8/cGkodGhpcy5sbyx0aGlzLkNvKTpudWxsO3RoaXMuQ289cyxpPW1pKHQscyksbnVsbCE9PWUmJih0aGlzLmxvPW1pKGUscykpfX10aGlzLk9vKGkpfWVsc2UgbnVsbD09PXRoaXMucnImJih0aGlzLk9vKG5ldyB2dCgtLjUsLjUpKSx0aGlzLkNvPWdpKG51bGwpKTt2YXIgbixyfUdvKCl7cmV0dXJuIHRoaXMuamUoKT9saTp0aGlzLkxvKCk/dWk6dGhpcy5zbygpP3Q9PmRpKHQsdGhpcy5Dbyk6bnVsbH1iXyh0LGkscyl7cmV0dXJuIHZvaWQgMD09PWk/KHZvaWQgMD09PXMmJihzPXRoaXMudGwoKSkscy5mb3JtYXQodCkpOmkodCl9U18odCxpLHMpe3JldHVybiB2b2lkIDA9PT1pPyh2b2lkIDA9PT1zJiYocz10aGlzLnRsKCkpLHMuZm9ybWF0VGlja21hcmtzKHQpKTppKHQpfWNyKHQsaSl7CnJldHVybiB0aGlzLmJfKHQsdGhpcy5Qby5wcmljZUZvcm1hdHRlcixpKX12Xyh0LGkpe2NvbnN0IHM9dGhpcy5Qby5wcmljZUZvcm1hdHRlcjtyZXR1cm4gdGhpcy5TXyh0LHRoaXMuUG8udGlja21hcmtzUHJpY2VGb3JtYXR0ZXI/PyhzP3Q9PnQubWFwKHMpOnZvaWQgMCksaSl9Zl8odCxpKXtyZXR1cm4gdGhpcy5iXyh0LHRoaXMuUG8ucGVyY2VudGFnZUZvcm1hdHRlcixpKX1wXyh0LGkpe2NvbnN0IHM9dGhpcy5Qby5wZXJjZW50YWdlRm9ybWF0dGVyO3JldHVybiB0aGlzLlNfKHQsdGhpcy5Qby50aWNrbWFya3NQZXJjZW50YWdlRm9ybWF0dGVyPz8ocz90PT50Lm1hcChzKTp2b2lkIDApLGkpfX1mdW5jdGlvbiBfaSh0KXtyZXR1cm4gdCBpbnN0YW5jZW9mIGp0fWNsYXNzIENpe2NvbnN0cnVjdG9yKHQsaSl7dGhpcy5tbz1bXSx0aGlzLnhfPW5ldyBNYXAsdGhpcy5obz0wLHRoaXMuQ189MCx0aGlzLnlfPTEsdGhpcy5Nbz1udWxsLHRoaXMua189bnVsbCx0aGlzLlBfPSExLHRoaXMuVF89bmV3IG0sdGhpcy5mYT1bXSx0aGlzLmlhPXQsdGhpcy5zbj1pLHRoaXMuUl89bmV3IHJpKHRoaXMpO2NvbnN0IHM9aS5OKCk7dGhpcy5EXz10aGlzLklfKCJsZWZ0IixzLmxlZnRQcmljZVNjYWxlKSx0aGlzLlZfPXRoaXMuSV8oInJpZ2h0IixzLnJpZ2h0UHJpY2VTY2FsZSksdGhpcy5EXy5GbygpLmkodGhpcy5CXy5iaW5kKHRoaXMsdGhpcy5EXyksdGhpcyksdGhpcy5WXy5GbygpLmkodGhpcy5CXy5iaW5kKHRoaXMsdGhpcy5WXyksdGhpcyksdGhpcy5FXyhzKX1FXyh0KXtpZih0LmxlZnRQcmljZVNjYWxlJiZ0aGlzLkRfLnZyKHQubGVmdFByaWNlU2NhbGUpLHQucmlnaHRQcmljZVNjYWxlJiZ0aGlzLlZfLnZyKHQucmlnaHRQcmljZVNjYWxlKSx0LmxvY2FsaXphdGlvbiYmKHRoaXMuRF8uZGwoKSx0aGlzLlZfLmRsKCkpLHQub3ZlcmxheVByaWNlU2NhbGVzKXtjb25zdCBpPUFycmF5LmZyb20odGhpcy54Xy52YWx1ZXMoKSk7Zm9yKGNvbnN0IHMgb2YgaSl7Y29uc3QgaT1kKHNbMF0uRnQoKSk7aS52cih0Lm92ZXJsYXlQcmljZVNjYWxlcyksdC5sb2NhbGl6YXRpb24mJmkuZGwoKX19fUFfKHQpe3N3aXRjaCh0KXtjYXNlImxlZnQiOnJldHVybiB0aGlzLkRfO2Nhc2UicmlnaHQiOnJldHVybiB0aGlzLlZffXJldHVybiB0aGlzLnhfLmhhcyh0KT9jKHRoaXMueF8uZ2V0KHQpKVswXS5GdCgpOm51bGx9bSgpe3RoaXMuUXQoKS5MXygpLnUodGhpcyksdGhpcy5EXy5GbygpLnUodGhpcyksdGhpcy5WXy5GbygpLnUodGhpcyksdGhpcy5tby5mb3JFYWNoKCh0PT57dC5tJiZ0Lm0oKX0pKSx0aGlzLmZhPXRoaXMuZmEuZmlsdGVyKCh0PT57Y29uc3QgaT10LlFoKCk7cmV0dXJuIGkuZGV0YWNoZWQmJmkuZGV0YWNoZWQoKSwhMX0pKSx0aGlzLlRfLnAoKX16Xygpe3JldHVybiB0aGlzLnlffU9fKHQpe3RoaXMueV89dH1RdCgpe3JldHVybiB0aGlzLnNufW5uKCl7cmV0dXJuIHRoaXMuQ199JHQoKXtyZXR1cm4gdGhpcy5ob31OXyh0KXt0aGlzLkNfPXQsdGhpcy5GXygpfVdvKHQpe3RoaXMuaG89dCx0aGlzLkRfLldvKHQpLHRoaXMuVl8uV28odCksdGhpcy5tby5mb3JFYWNoKChpPT57aWYodGhpcy5acyhpKSl7Y29uc3Qgcz1pLkZ0KCk7bnVsbCE9PXMmJnMuV28odCl9fSkpLHRoaXMuRl8oKX1XXyh0KXt0aGlzLlBfPXR9SF8oKXtyZXR1cm4gdGhpcy5QX31VXygpe3JldHVybiB0aGlzLm1vLmZpbHRlcihfaSl9Q2woKXtyZXR1cm4gdGhpcy5tb31acyh0KXtjb25zdCBpPXQuRnQoKTtyZXR1cm4gbnVsbD09PWl8fHRoaXMuRF8hPT1pJiZ0aGlzLlZfIT09aX1zXyh0LGkscyl7dGhpcy5qXyh0LGkscz90LmxuKCk6dGhpcy5tby5sZW5ndGgpfXJfKHQsaSl7Y29uc3Qgcz10aGlzLm1vLmluZGV4T2YodCk7dSgtMSE9PXMsInJlbW92ZURhdGFTb3VyY2U6IGludmFsaWQgZGF0YSBzb3VyY2UiKSx0aGlzLm1vLnNwbGljZShzLDEpLGl8fHRoaXMubW8uZm9yRWFjaCgoKHQsaSk9PnQuX24oaSkpKTtjb25zdCBlPWQodC5GdCgpKS5jbCgpO2lmKHRoaXMueF8uaGFzKGUpKXtjb25zdCBpPWModGhpcy54Xy5nZXQoZSkpLHM9aS5pbmRleE9mKHQpOy0xIT09cyYmKGkuc3BsaWNlKHMsMSksMD09PWkubGVuZ3RoJiZ0aGlzLnhfLmRlbGV0ZShlKSl9Y29uc3QgaD10LkZ0KCk7aCYmaC5DbCgpLmluZGV4T2YodCk+PTAmJihoLnJfKHQpLHRoaXMucV8oaCkpLHRoaXMuWV8oKX1Ycyh0KXtyZXR1cm4gdD09PXRoaXMuRF8/ImxlZnQiOnQ9PT10aGlzLlZfPyJyaWdodCI6Im92ZXJsYXkifUtfKCl7cmV0dXJuIHRoaXMuRF99Wl8oKXtyZXR1cm4gdGhpcy5WX31HXyh0LGkpe3QubF8oaSl9WF8odCxpKXt0Lm9fKGkpLHRoaXMuRl8oKX1KXyh0KXt0Ll9fKCl9UV8odCxpKXt0LnVfKGkpfXR1KHQsaSl7dC5jXyhpKSx0aGlzLkZfKCl9aXUodCl7dC5kXygpfUZfKCl7dGhpcy5tby5mb3JFYWNoKCh0PT57dC5ObigpfSkpfVBuKCl7Y29uc3RbdCxpXT10aGlzLm51KCk7bGV0IHM9bnVsbDtyZXR1cm4gdC5OKCkudmlzaWJsZSYmMCE9PXQuQ2woKS5sZW5ndGg/cz10OmkuTigpLnZpc2libGUmJjAhPT1pLkNsKCkubGVuZ3RoP3M9aTowIT09dGhpcy5tby5sZW5ndGgmJihzPXRoaXMubW9bMF0uRnQoKSksbnVsbD09PXMmJihzPXRoaXMuR3MoKT8/dCksc31Hcygpe2NvbnN0W3QsaV09dGhpcy5udSgpO3JldHVybiB0Lk4oKS52aXNpYmxlP3Q6aS5OKCkudmlzaWJsZT9pOm51bGx9cV8odCl7bnVsbCE9PXQmJnQuRW8oKSYmdGhpcy5zdSh0KX1ldSh0KXtjb25zdCBpPXRoaXMuaWEuRWUoKTt0LlZvKHtoczohMH0pLG51bGwhPT1pJiZ0LndfKGkpLHRoaXMuRl8oKX1ydSgpe3RoaXMuc3UodGhpcy5EXyksdGhpcy5zdSh0aGlzLlZfKX1odSgpe3RoaXMucV8odGhpcy5EXyksdGhpcy5xXyh0aGlzLlZfKSx0aGlzLm1vLmZvckVhY2goKHQ9Pnt0aGlzLlpzKHQpJiZ0aGlzLnFfKHQuRnQoKSl9KSksdGhpcy5GXygpLHRoaXMuc24ubXIoKX1EdCgpe3JldHVybiBudWxsPT09dGhpcy5NbyYmKHRoaXMuTW89d2kodGhpcy5tbykpLHRoaXMuTW99YXUoKXsKY29uc3QgdD10aGlzLkR0KCksaT10aGlzLnNuLm91KCk/Lmx1LHM9dGhpcy5zbi5OKCkuaG92ZXJlZFNlcmllc09uVG9wLGU9dGhpcy5rXztpZihudWxsIT09ZSYmZS5LaD09PXQmJmUuX3U9PT1pJiZlLnV1PT09cylyZXR1cm4gZS5jdTtjb25zdCBoPWZ1bmN0aW9uKHQsaSxzKXtpZighcylyZXR1cm4gdDtjb25zdCBlPXQuaW5kZXhPZihpKTtpZigtMT09PWV8fGU9PT10Lmxlbmd0aC0xKXJldHVybiB0O2NvbnN0IGg9W107Zm9yKGxldCBpPTA7aTx0Lmxlbmd0aDtpKyspaSE9PWUmJmgucHVzaCh0W2ldKTtyZXR1cm4gaC5wdXNoKHRbZV0pLGh9KHQsaSxzKTtyZXR1cm4gdGhpcy5rXz17S2g6dCxfdTppLHV1OnMsY3U6aH0saH1kdSh0LGkpe2k9aWkoaSwwLHRoaXMubW8ubGVuZ3RoLTEpO2NvbnN0IHM9dGhpcy5tby5pbmRleE9mKHQpO3UoLTEhPT1zLCJzZXRTZXJpZXNPcmRlcjogaW52YWxpZCBkYXRhIHNvdXJjZSIpLHRoaXMubW8uc3BsaWNlKHMsMSksdGhpcy5tby5zcGxpY2UoaSwwLHQpLHRoaXMubW8uZm9yRWFjaCgoKHQsaSk9PnQuX24oaSkpKSx0aGlzLllfKCk7Zm9yKGNvbnN0IHQgb2ZbdGhpcy5EXyx0aGlzLlZfXSl0LmVfKCksdC5kbCgpO3RoaXMuc24ubXIoKX1WdCgpe3JldHVybiB0aGlzLkR0KCkuZmlsdGVyKF9pKX1mdSgpe3JldHVybiB0aGlzLlRffXB1KCl7cmV0dXJuIHRoaXMuUl99aGwodCl7dGhpcy5mYS5wdXNoKG5ldyBEdCh0KSl9YWwodCl7dGhpcy5mYT10aGlzLmZhLmZpbHRlcigoaT0+aS5RaCgpIT09dCkpLHQuZGV0YWNoZWQmJnQuZGV0YWNoZWQoKSx0aGlzLnNuLm1yKCl9dnUoKXtyZXR1cm4gdGhpcy5mYX1KYSh0LGkpe3JldHVybiB0aGlzLmZhLm1hcCgocz0+cy5Rcyh0LGkpKSkuZmlsdGVyKCh0PT5udWxsIT09dCkpfXN1KHQpe2NvbnN0IGk9dC5tXygpO2lmKGkmJmkubGVuZ3RoPjAmJiF0aGlzLmlhLkdpKCkpe2NvbnN0IGk9dGhpcy5pYS5FZSgpO251bGwhPT1pJiZ0LndfKGkpfXQuTm4oKX1qXyh0LGkscyl7bGV0IGU9dGhpcy5BXyhpKTtpZihudWxsPT09ZSYmKGU9dGhpcy5JXyhpLHRoaXMuc24uTigpLm92ZXJsYXlQcmljZVNjYWxlcykpLHRoaXMubW8uc3BsaWNlKHMsMCx0KSwhaihpKSl7Y29uc3Qgcz10aGlzLnhfLmdldChpKXx8W107cy5wdXNoKHQpLHRoaXMueF8uc2V0KGkscyl9dC5fbihzKSxlLnNfKHQpLHQudW4oZSksdGhpcy5xXyhlKSx0aGlzLllfKCl9WV8oKXt0aGlzLk1vPW51bGwsdGhpcy5rXz1udWxsfW51KCl7cmV0dXJuImxlZnQiPT09dGhpcy5zbi5OKCkuZGVmYXVsdFZpc2libGVQcmljZVNjYWxlSWQ/W3RoaXMuRF8sdGhpcy5WX106W3RoaXMuVl8sdGhpcy5EX119Ql8odCxpLHMpe2kuX2UhPT1zLl9lJiZ0aGlzLnN1KHQpfUlfKHQsaSl7Y29uc3Qgcz17dmlzaWJsZTohMCxhdXRvU2NhbGU6ITAsLi4uTShpKX0sZT1uZXcgeGkodCxzLHRoaXMuc24uTigpLmxheW91dCx0aGlzLnNuLk4oKS5sb2NhbGl6YXRpb24sdGhpcy5zbi5YaSgpKTtyZXR1cm4gZS5Xbyh0aGlzLiR0KCkpLGV9fWZ1bmN0aW9uIFRpKHQsaSl7cmV0dXJuIG51bGw9PT1pfHwyPT09dC5zZSYmMiE9PWkuc2V8fCgyIT09aS5zZXx8Mj09PXQuc2UpJiZ0Lm5lIT09aS5uZSYmdC5uZTxpLm5lfWZ1bmN0aW9uIGtpKHQpe3JldHVybnt0ZTp0LnRlLGllOnQuaWV9fWZ1bmN0aW9uIEVpKHQpe3JldHVybntuZTp0LmRpc3RhbmNlPz8wLHNlOnQuaGl0VGVzdFByaW9yaXR5Pz8oIm1hcmtlciI9PT10Lml0ZW1UeXBlPzI6MCksZWU6dC5pdGVtVHlwZT8/InByaW1pdGl2ZSIsbXU6dC5jdXJzb3JTdHlsZSx0ZTp0LmV4dGVybmFsSWR9fWZ1bmN0aW9uIE5pKHQpe3JldHVybntsdTp0Lmx1LHd1OmtpKHQuTXUpLG11OnQuTXUubXUsZWU6dC5NdS5lZT8/InByaW1pdGl2ZSJ9fWZ1bmN0aW9uIHppKHQsaSxzLGUpe2xldCBoPW51bGw7Zm9yKGNvbnN0IG4gb2YgdCl7bGV0IHQ9bi5Rcz8uKGkscyxlKT8/bnVsbDtpZihudWxsPT09dCl7Y29uc3QgaD1uLlR0KGUpO3Q9bnVsbCE9PWgmJmguUXM/aC5RcyhpLHMpOm51bGx9aWYobnVsbCE9PXQpe2NvbnN0IGk9e2d1Om4sTXU6dH07KG51bGw9PT1ofHxUaShpLk11LGguTXUpKSYmKGg9aSl9fXJldHVybiBofWZ1bmN0aW9uIFBpKHQpe3JldHVybiB2b2lkIDAhPT10LmpufWZ1bmN0aW9uIHFpKHQsaSxzKXtjb25zdCBlPVt0LC4uLnQuRHQoKV0ucmV2ZXJzZSgpLGg9ZnVuY3Rpb24odCxpLHMpe2xldCBlLGgsbjtmb3IoY29uc3QgbCBvZiB0KXtjb25zdCB0PWwuSmE/LihpLHMpPz9bXTtmb3IoY29uc3QgaSBvZiB0KXtjb25zdCB0PUVpKGkpO3I9aS56T3JkZXIsbz1lPy56T3JkZXIsKCFvfHwidG9wIj09PXImJiJ0b3AiIT09b3x8Im5vcm1hbCI9PT1yJiYiYm90dG9tIj09PW98fGkuek9yZGVyPT09ZT8uek9yZGVyJiZ2b2lkIDAhPT1oJiZUaSh0LGgpfHxpLnpPcmRlcj09PWU/LnpPcmRlciYmdm9pZCAwPT09aCkmJihlPWksaD10LG49bCl9fXZhciByLG87cmV0dXJuIGUmJm4mJmg/e011OmgsYnU6ZSxsdTpufTpudWxsfShlLGkscyk7aWYoInRvcCI9PT1oPy5idS56T3JkZXIpcmV0dXJuIE5pKGgpO2xldCBuPW51bGwscj1udWxsO2Zvcihjb25zdCBvIG9mIGUpe2lmKGgmJmgubHU9PT1vJiYiYm90dG9tIiE9PWguYnUuek9yZGVyJiYhaC5idS5pc0JhY2tncm91bmQpcmV0dXJuIG4/P05pKGgpO2lmKFBpKG8pKXtjb25zdCBlPXppKG8uam4odCksaSxzLHQpO2lmKG51bGwhPT1lKXtjb25zdCB0PXtsdTpvLGd1OmUuZ3Usd3U6a2koZS5NdSksbXU6ZS5NdS5tdSxlZTplLk11LmVlPz8icHJpbWl0aXZlIn07KG51bGw9PT1ufHxUaShlLk11LHIpKSYmKG49dCxyPWUuTXUpfX1pZihoJiZoLmx1PT09byYmImJvdHRvbSIhPT1oLmJ1LnpPcmRlciYmaC5idS5pc0JhY2tncm91bmQpcmV0dXJuIG4/P05pKGgpfXJldHVybiBudWxsIT09bj9uOmg/LmJ1P05pKGgpOm51bGx9Y2xhc3MgTGl7Y29uc3RydWN0b3IodCxpLHM9NTApe3RoaXMuVnM9MCx0aGlzLkJzPTEsdGhpcy5Fcz0xLHRoaXMuTHM9bmV3IE1hcCx0aGlzLkFzPW5ldyBNYXAsdGhpcy5TdT10LHRoaXMueHU9aSx0aGlzLnpzPXN9Q3UodCl7CmNvbnN0IGk9dC50aW1lLHM9dGhpcy54dS5jYWNoZUtleShpKSxlPXRoaXMuTHMuZ2V0KHMpO2lmKHZvaWQgMCE9PWUpcmV0dXJuIGUueXU7aWYodGhpcy5Wcz09PXRoaXMuenMpe2NvbnN0IHQ9dGhpcy5Bcy5nZXQodGhpcy5Fcyk7dGhpcy5Bcy5kZWxldGUodGhpcy5FcyksdGhpcy5Mcy5kZWxldGUoYyh0KSksdGhpcy5FcysrLHRoaXMuVnMtLX1jb25zdCBoPXRoaXMuU3UodCk7cmV0dXJuIHRoaXMuTHMuc2V0KHMse3l1OmgsV3M6dGhpcy5Cc30pLHRoaXMuQXMuc2V0KHRoaXMuQnMscyksdGhpcy5WcysrLHRoaXMuQnMrKyxofX1jbGFzcyBJaXtjb25zdHJ1Y3Rvcih0LGkpe3UodDw9aSwicmlnaHQgc2hvdWxkIGJlID49IGxlZnQiKSx0aGlzLmt1PXQsdGhpcy5QdT1pfU9hKCl7cmV0dXJuIHRoaXMua3V9YmkoKXtyZXR1cm4gdGhpcy5QdX1UdSgpe3JldHVybiB0aGlzLlB1LXRoaXMua3UrMX16ZSh0KXtyZXR1cm4gdGhpcy5rdTw9dCYmdDw9dGhpcy5QdX1HZSh0KXtyZXR1cm4gdGhpcy5rdT09PXQuT2EoKSYmdGhpcy5QdT09PXQuYmkoKX19ZnVuY3Rpb24gUmkodCxpKXtyZXR1cm4gbnVsbD09PXR8fG51bGw9PT1pP3Q9PT1pOnQuR2UoaSl9Y2xhc3MgRml7Y29uc3RydWN0b3IoKXt0aGlzLlJ1PW5ldyBNYXAsdGhpcy5Mcz1udWxsLHRoaXMuRHU9ITF9SXUodCl7dGhpcy5EdT10LHRoaXMuTHM9bnVsbH1WdSh0LGkpe3RoaXMuQnUoaSksdGhpcy5Mcz1udWxsO2ZvcihsZXQgcz1pO3M8dC5sZW5ndGg7KytzKXtjb25zdCBpPXRbc107bGV0IGU9dGhpcy5SdS5nZXQoaS50aW1lV2VpZ2h0KTt2b2lkIDA9PT1lJiYoZT1bXSx0aGlzLlJ1LnNldChpLnRpbWVXZWlnaHQsZSkpLGUucHVzaCh7aW5kZXg6cyx0aW1lOmkudGltZSx3ZWlnaHQ6aS50aW1lV2VpZ2h0LG9yaWdpbmFsVGltZTppLm9yaWdpbmFsVGltZX0pfX1FdSh0LGkscyxlLGgpe2NvbnN0IG49TWF0aC5jZWlsKGkvdCk7cmV0dXJuIG51bGwhPT10aGlzLkxzJiZ0aGlzLkxzLkF1PT09biYmaD09PXRoaXMuTHMuTHUmJnM9PT10aGlzLkxzLnp1fHwodGhpcy5Mcz17THU6aCx6dTpzLEVsOnRoaXMuT3UobixzLGUpLEF1Om59KSx0aGlzLkxzLkVsfUJ1KHQpe2lmKDA9PT10KXJldHVybiB2b2lkIHRoaXMuUnUuY2xlYXIoKTtjb25zdCBpPVtdO3RoaXMuUnUuZm9yRWFjaCgoKHMsZSk9Pnt0PD1zWzBdLmluZGV4P2kucHVzaChlKTpzLnNwbGljZShFdChzLHQsKGk9PmkuaW5kZXg8dCkpLDEvMCl9KSk7Zm9yKGNvbnN0IHQgb2YgaSl0aGlzLlJ1LmRlbGV0ZSh0KX1PdSh0LGkscyl7bGV0IGU9W107Y29uc3QgaD10PT4haXx8cy5oYXModC5pbmRleCk7Zm9yKGNvbnN0IGkgb2YgQXJyYXkuZnJvbSh0aGlzLlJ1LmtleXMoKSkuc29ydCgoKHQsaSk9PmktdCkpKXtpZighdGhpcy5SdS5nZXQoaSkpY29udGludWU7Y29uc3Qgcz1lO2U9W107Y29uc3Qgbj1zLmxlbmd0aDtsZXQgcj0wO2NvbnN0IG89Yyh0aGlzLlJ1LmdldChpKSksbD1vLmxlbmd0aDtsZXQgYT0xLzAsdT0tMS8wO2ZvcihsZXQgaT0wO2k8bDtpKyspe2NvbnN0IGw9b1tpXSxjPWwuaW5kZXg7Zm9yKDtyPG47KXtjb25zdCB0PXNbcl0saT10LmluZGV4O2lmKCEoaTxjJiZoKHQpKSl7YT1pO2JyZWFrfXIrKyxlLnB1c2godCksdT1pLGE9MS8wfWlmKGEtYz49dCYmYy11Pj10JiZoKGwpKWUucHVzaChsKSx1PWM7ZWxzZSBpZih0aGlzLkR1KXJldHVybiBzfWZvcig7cjxuO3IrKyloKHNbcl0pJiZlLnB1c2goc1tyXSl9cmV0dXJuIGV9fWNsYXNzIFdpe2NvbnN0cnVjdG9yKHQpe3RoaXMuTnU9dH1GdSgpe3JldHVybiBudWxsPT09dGhpcy5OdT9udWxsOm5ldyBJaShNYXRoLmZsb29yKHRoaXMuTnUuT2EoKSksTWF0aC5jZWlsKHRoaXMuTnUuYmkoKSkpfVd1KCl7cmV0dXJuIHRoaXMuTnV9c3RhdGljIEh1KCl7cmV0dXJuIG5ldyBXaShudWxsKX19ZnVuY3Rpb24gUWkodCxpKXtyZXR1cm4gdC53ZWlnaHQ+aS53ZWlnaHQ/dDppfWNsYXNzIERpe2NvbnN0cnVjdG9yKHQsaSxzLGUpe3RoaXMuQ189MCx0aGlzLlV1PW51bGwsdGhpcy4kdT1bXSx0aGlzLnhvPW51bGwsdGhpcy5Tbz1udWxsLHRoaXMuanU9bmV3IEZpLHRoaXMucXU9bmV3IE1hcCx0aGlzLll1PVdpLkh1KCksdGhpcy5LdT0hMCx0aGlzLlp1PW5ldyBtLHRoaXMuR3U9bmV3IG0sdGhpcy5YdT1uZXcgbSx0aGlzLkp1PW51bGwsdGhpcy5RdT1udWxsLHRoaXMudGM9bmV3IE1hcCx0aGlzLm5jPS0xLHRoaXMuc2M9W10sdGhpcy5lYz0xLHRoaXMueW49aSx0aGlzLlBvPXMsdGhpcy5yYz1pLnJpZ2h0T2Zmc2V0LHRoaXMuaGM9aS5iYXJTcGFjaW5nLHRoaXMuc249dCx0aGlzLmFjKGkpLHRoaXMueHU9ZSx0aGlzLmxjKCksdGhpcy5qdS5JdShpLnVuaWZvcm1EaXN0cmlidXRpb24pLHRoaXMub2MoKSx0aGlzLl9jKCl9Tigpe3JldHVybiB0aGlzLnlufXVjKHQpe3AodGhpcy5Qbyx0KSx0aGlzLmNjKCksdGhpcy5sYygpfXZyKHQsaSl7cCh0aGlzLnluLHQpLHRoaXMueW4uZml4TGVmdEVkZ2UmJnRoaXMuZGMoKSx0aGlzLnluLmZpeFJpZ2h0RWRnZSYmdGhpcy5mYygpLHZvaWQgMCE9PXQuYmFyU3BhY2luZyYmdGhpcy5zbi5Ncyh0LmJhclNwYWNpbmcpLHZvaWQgMCE9PXQucmlnaHRPZmZzZXQmJnRoaXMuc24uZ3ModC5yaWdodE9mZnNldCksdGhpcy5hYyh0KSx2b2lkIDA9PT10Lm1pbkJhclNwYWNpbmcmJnZvaWQgMD09PXQubWF4QmFyU3BhY2luZ3x8dGhpcy5zbi5Ncyh0LmJhclNwYWNpbmc/P3RoaXMuaGMpLHZvaWQgMCE9PXQuaWdub3JlV2hpdGVzcGFjZUluZGljZXMmJnQuaWdub3JlV2hpdGVzcGFjZUluZGljZXMhPT10aGlzLnluLmlnbm9yZVdoaXRlc3BhY2VJbmRpY2VzJiZ0aGlzLl9jKCksdGhpcy5jYygpLHRoaXMubGMoKSx2b2lkIDA9PT10LmVuYWJsZUNvbmZsYXRpb24mJnZvaWQgMD09PXQuY29uZmxhdGlvblRocmVzaG9sZEZhY3Rvcnx8dGhpcy5vYygpLHRoaXMuWHUucCgpfVJuKHQpe3JldHVybiB0aGlzLiR1W3RdPy50aW1lPz9udWxsfWVuKHQpe3JldHVybiB0aGlzLiR1W3RdPz9udWxsfXZjKHQsaSl7aWYodGhpcy4kdS5sZW5ndGg8MSlyZXR1cm4gbnVsbAo7aWYodGhpcy54dS5rZXkodCk+dGhpcy54dS5rZXkodGhpcy4kdVt0aGlzLiR1Lmxlbmd0aC0xXS50aW1lKSlyZXR1cm4gaT90aGlzLiR1Lmxlbmd0aC0xOm51bGw7Y29uc3Qgcz1FdCh0aGlzLiR1LHRoaXMueHUua2V5KHQpLCgodCxpKT0+dGhpcy54dS5rZXkodC50aW1lKTxpKSk7cmV0dXJuIHRoaXMueHUua2V5KHQpPHRoaXMueHUua2V5KHRoaXMuJHVbc10udGltZSk/aT9zOm51bGw6c31HaSgpe3JldHVybiAwPT09dGhpcy5DX3x8MD09PXRoaXMuJHUubGVuZ3RofHxudWxsPT09dGhpcy5VdX1tYygpe3JldHVybiB0aGlzLiR1Lmxlbmd0aD4wfUVlKCl7cmV0dXJuIHRoaXMud2MoKSx0aGlzLll1LkZ1KCl9TWMoKXtyZXR1cm4gdGhpcy53YygpLHRoaXMuWXUuV3UoKX1nYygpe2NvbnN0IHQ9dGhpcy5FZSgpO2lmKG51bGw9PT10KXJldHVybiBudWxsO2NvbnN0IGk9e2Zyb206dC5PYSgpLHRvOnQuYmkoKX07cmV0dXJuIHRoaXMuYmMoaSl9YmModCl7Y29uc3QgaT1NYXRoLnJvdW5kKHQuZnJvbSkscz1NYXRoLnJvdW5kKHQudG8pLGU9ZCh0aGlzLlNjKCkpLGg9ZCh0aGlzLnhjKCkpO3JldHVybntmcm9tOmQodGhpcy5lbihNYXRoLm1heChlLGkpKSksdG86ZCh0aGlzLmVuKE1hdGgubWluKGgscykpKX19Q2ModCl7cmV0dXJue2Zyb206ZCh0aGlzLnZjKHQuZnJvbSwhMCkpLHRvOmQodGhpcy52Yyh0LnRvLCEwKSl9fW5uKCl7cmV0dXJuIHRoaXMuQ199Tl8odCl7aWYoIWlzRmluaXRlKHQpfHx0PD0wKXJldHVybjtpZih0aGlzLkNfPT09dClyZXR1cm47Y29uc3QgaT10aGlzLk1jKCkscz10aGlzLkNfO2lmKHRoaXMuQ189dCx0aGlzLkt1PSEwLHRoaXMueW4ubG9ja1Zpc2libGVUaW1lUmFuZ2VPblJlc2l6ZSYmMCE9PXMpe2NvbnN0IGk9dGhpcy5oYyp0L3M7dGhpcy5oYz1pfWlmKHRoaXMueW4uZml4TGVmdEVkZ2UmJm51bGwhPT1pJiZpLk9hKCk8PTApe2NvbnN0IGk9cy10O3RoaXMucmMtPU1hdGgucm91bmQoaS90aGlzLmhjKSsxLHRoaXMuS3U9ITB9dGhpcy55YygpLHRoaXMua2MoKX1qdCh0KXtpZih0aGlzLkdpKCl8fCF2KHQpKXJldHVybiAwO2NvbnN0IGk9dGhpcy5QYygpK3RoaXMucmMtdDtyZXR1cm4gdGhpcy5DXy0oaSsuNSkqdGhpcy5oYy0xfVRjKHQsaSl7Y29uc3Qgcz10aGlzLlBjKCksZT12b2lkIDA9PT1pPzA6aS5mcm9tLGg9dm9pZCAwPT09aT90Lmxlbmd0aDppLnRvO2ZvcihsZXQgaT1lO2k8aDtpKyspe2NvbnN0IGU9dFtpXS53dCxoPXMrdGhpcy5yYy1lLG49dGhpcy5DXy0oaCsuNSkqdGhpcy5oYy0xO3RbaV0uX3Q9bn19UmModCxpKXtjb25zdCBzPU1hdGguY2VpbCh0aGlzLkRjKHQpKTtyZXR1cm4gaSYmdGhpcy55bi5pZ25vcmVXaGl0ZXNwYWNlSW5kaWNlcyYmIXRoaXMuSWMocyk/dGhpcy5WYyhzKTpzfWdzKHQpe3RoaXMuS3U9ITAsdGhpcy5yYz10LHRoaXMua2MoKSx0aGlzLnNuLkJjKCksdGhpcy5zbi5tcigpfWZsKCl7cmV0dXJuIHRoaXMuaGN9TXModCl7Y29uc3QgaT10aGlzLmhjO2lmKHRoaXMuRWModCksdm9pZCAwIT09dGhpcy55bi5yaWdodE9mZnNldFBpeGVscyYmMCE9PWkpe2NvbnN0IHQ9dGhpcy5yYyppL3RoaXMuaGM7dGhpcy5yYz10fXRoaXMua2MoKSx0aGlzLnNuLkJjKCksdGhpcy5zbi5tcigpfUFjKCl7cmV0dXJuIHRoaXMucmN9RWwoKXtpZih0aGlzLkdpKCkpcmV0dXJuIG51bGw7aWYobnVsbCE9PXRoaXMuUXUpcmV0dXJuIHRoaXMuUXU7Y29uc3QgdD10aGlzLmhjLGk9NSoodGhpcy5zbi5OKCkubGF5b3V0LmZvbnRTaXplKzQpLzgqKHRoaXMueW4udGlja01hcmtNYXhDaGFyYWN0ZXJMZW5ndGh8fDgpLHM9TWF0aC5yb3VuZChpL3QpLGU9ZCh0aGlzLkVlKCkpLGg9TWF0aC5tYXgoZS5PYSgpLGUuT2EoKS1zKSxuPU1hdGgubWF4KGUuYmkoKSxlLmJpKCktcykscj10aGlzLmp1LkV1KHQsaSx0aGlzLnluLmlnbm9yZVdoaXRlc3BhY2VJbmRpY2VzLHRoaXMudGMsdGhpcy5uYyksbz10aGlzLlNjKCkrcyxsPXRoaXMueGMoKS1zLGE9dGhpcy5MYygpLHU9dGhpcy55bi5maXhMZWZ0RWRnZXx8YSxjPXRoaXMueW4uZml4UmlnaHRFZGdlfHxhO2xldCBmPTA7Zm9yKGNvbnN0IHQgb2Ygcil7aWYoIShoPD10LmluZGV4JiZ0LmluZGV4PD1uKSljb250aW51ZTtsZXQgcztmPHRoaXMuc2MubGVuZ3RoPyhzPXRoaXMuc2NbZl0scy5jb29yZD10aGlzLmp0KHQuaW5kZXgpLHMubGFiZWw9dGhpcy56Yyh0KSxzLndlaWdodD10LndlaWdodCk6KHM9e25lZWRBbGlnbkNvb3JkaW5hdGU6ITEsY29vcmQ6dGhpcy5qdCh0LmluZGV4KSxsYWJlbDp0aGlzLnpjKHQpLHdlaWdodDp0LndlaWdodH0sdGhpcy5zYy5wdXNoKHMpKSx0aGlzLmhjPmkvMiYmIWE/cy5uZWVkQWxpZ25Db29yZGluYXRlPSExOnMubmVlZEFsaWduQ29vcmRpbmF0ZT11JiZ0LmluZGV4PD1vfHxjJiZ0LmluZGV4Pj1sLGYrK31yZXR1cm4gdGhpcy5zYy5sZW5ndGg9Zix0aGlzLlF1PXRoaXMuc2MsdGhpcy5zY31PYygpe2xldCB0O3RoaXMuS3U9ITAsdGhpcy5Ncyh0aGlzLnluLmJhclNwYWNpbmcpLHQ9dm9pZCAwIT09dGhpcy55bi5yaWdodE9mZnNldFBpeGVscz90aGlzLnluLnJpZ2h0T2Zmc2V0UGl4ZWxzL3RoaXMuZmwoKTp0aGlzLnluLnJpZ2h0T2Zmc2V0LHRoaXMuZ3ModCl9TmModCl7dGhpcy5LdT0hMCx0aGlzLlV1PXQsdGhpcy5rYygpLHRoaXMuZGMoKX1GYyh0LGkpe2NvbnN0IHM9dGhpcy5EYyh0KSxlPXRoaXMuZmwoKSxoPWUraSooZS8xMCk7dGhpcy5NcyhoKSx0aGlzLnluLnJpZ2h0QmFyU3RheXNPblNjcm9sbHx8dGhpcy5ncyh0aGlzLkFjKCkrKHMtdGhpcy5EYyh0KSkpfWxfKHQpe3RoaXMueG8mJnRoaXMuZF8oKSxudWxsPT09dGhpcy5TbyYmbnVsbD09PXRoaXMuSnUmJih0aGlzLkdpKCl8fCh0aGlzLlNvPXQsdGhpcy5XYygpKSl9b18odCl7aWYobnVsbD09PXRoaXMuSnUpcmV0dXJuO2NvbnN0IGk9aWkodGhpcy5DXy10LDAsdGhpcy5DXykscz1paSh0aGlzLkNfLWQodGhpcy5TbyksMCx0aGlzLkNfKTswIT09aSYmMCE9PXMmJnRoaXMuTXModGhpcy5KdS5mbCppL3MpfV9fKCl7bnVsbCE9PXRoaXMuU28mJih0aGlzLlNvPW51bGwsdGhpcy5IYygpKX11Xyh0KXsKbnVsbD09PXRoaXMueG8mJm51bGw9PT10aGlzLkp1JiYodGhpcy5HaSgpfHwodGhpcy54bz10LHRoaXMuV2MoKSkpfWNfKHQpe2lmKG51bGw9PT10aGlzLnhvKXJldHVybjtjb25zdCBpPSh0aGlzLnhvLXQpL3RoaXMuZmwoKTt0aGlzLnJjPWQodGhpcy5KdSkuQWMraSx0aGlzLkt1PSEwLHRoaXMua2MoKX1kXygpe251bGwhPT10aGlzLnhvJiYodGhpcy54bz1udWxsLHRoaXMuSGMoKSl9VWMoKXt0aGlzLiRjKHRoaXMueW4ucmlnaHRPZmZzZXQpfSRjKHQsaT00MDApe2lmKCFpc0Zpbml0ZSh0KSl0aHJvdyBuZXcgUmFuZ2VFcnJvcigib2Zmc2V0IGlzIHJlcXVpcmVkIGFuZCBtdXN0IGJlIGZpbml0ZSBudW1iZXIiKTtpZighaXNGaW5pdGUoaSl8fGk8PTApdGhyb3cgbmV3IFJhbmdlRXJyb3IoImFuaW1hdGlvbkR1cmF0aW9uIChvcHRpb25hbCkgbXVzdCBiZSBmaW5pdGUgcG9zaXRpdmUgbnVtYmVyIik7Y29uc3Qgcz10aGlzLnJjLGU9cGVyZm9ybWFuY2Uubm93KCk7dGhpcy5zbi5wcyh7amM6dD0+KHQtZSkvaT49MSxxYzpoPT57Y29uc3Qgbj0oaC1lKS9pO3JldHVybiBuPj0xP3Q6cysodC1zKSpufX0pfWt0KHQsaSl7dGhpcy5LdT0hMCx0aGlzLiR1PXQsdGhpcy5qdS5WdSh0LGkpLHRoaXMua2MoKX1ZYygpe3JldHVybiB0aGlzLlp1fUtjKCl7cmV0dXJuIHRoaXMuR3V9WmMoKXtyZXR1cm4gdGhpcy5YdX1QYygpe3JldHVybiB0aGlzLlV1fHwwfUdjKHQsaSl7Y29uc3Qgcz10LlR1KCksZT1pJiZ0aGlzLnluLnJpZ2h0T2Zmc2V0UGl4ZWxzfHwwO3RoaXMuRWMoKHRoaXMuQ18tZSkvcyksdGhpcy5yYz10LmJpKCktdGhpcy5QYygpLGkmJih0aGlzLnJjPWU/ZS90aGlzLmZsKCk6dGhpcy55bi5yaWdodE9mZnNldCksdGhpcy5rYygpLHRoaXMuS3U9ITAsdGhpcy5zbi5CYygpLHRoaXMuc24ubXIoKX1YYygpe2NvbnN0IHQ9dGhpcy5TYygpLGk9dGhpcy54YygpO2lmKG51bGw9PT10fHxudWxsPT09aSlyZXR1cm47Y29uc3Qgcz0hdGhpcy55bi5yaWdodE9mZnNldFBpeGVscyYmdGhpcy55bi5yaWdodE9mZnNldHx8MDt0aGlzLkdjKG5ldyBJaSh0LGkrcyksITApfUpjKHQpe2NvbnN0IGk9bmV3IElpKHQuZnJvbSx0LnRvKTt0aGlzLkdjKGkpfXJuKHQpe3JldHVybiB2b2lkIDAhPT10aGlzLlBvLnRpbWVGb3JtYXR0ZXI/dGhpcy5Qby50aW1lRm9ybWF0dGVyKHQub3JpZ2luYWxUaW1lKTp0aGlzLnh1LmZvcm1hdEhvcnpJdGVtKHQudGltZSl9X2MoKXtpZighdGhpcy55bi5pZ25vcmVXaGl0ZXNwYWNlSW5kaWNlcylyZXR1cm47dGhpcy50Yy5jbGVhcigpO2NvbnN0IHQ9dGhpcy5zbi5KbigpO2Zvcihjb25zdCBpIG9mIHQpZm9yKGNvbnN0IHQgb2YgaS51bCgpKXRoaXMudGMuc2V0KHQsITApO3RoaXMubmMrK31RYygpe3JldHVybiB0aGlzLmVjfU1sKCl7Y29uc3QgdD0xLyh3aW5kb3cuZGV2aWNlUGl4ZWxSYXRpb3x8MSksaT10aGlzLnluLm1pbkJhclNwYWNpbmc7aWYoaT49dClyZXR1cm5bMV07Y29uc3Qgcz1bMV07bGV0IGU9Mjtmb3IoO2U8PTUxMjspaTx0L2UmJnMucHVzaChlKSxlKj0yO3JldHVybiBzfUxjKCl7Y29uc3QgdD10aGlzLnNuLk4oKS5oYW5kbGVTY3JvbGwsaT10aGlzLnNuLk4oKS5oYW5kbGVTY2FsZTtyZXR1cm4hKHQuaG9yelRvdWNoRHJhZ3x8dC5tb3VzZVdoZWVsfHx0LnByZXNzZWRNb3VzZU1vdmV8fHQudmVydFRvdWNoRHJhZ3x8aS5heGlzRG91YmxlQ2xpY2tSZXNldC50aW1lfHxpLmF4aXNQcmVzc2VkTW91c2VNb3ZlLnRpbWV8fGkubW91c2VXaGVlbHx8aS5waW5jaCl9U2MoKXtyZXR1cm4gMD09PXRoaXMuJHUubGVuZ3RoP251bGw6MH14Yygpe3JldHVybiAwPT09dGhpcy4kdS5sZW5ndGg/bnVsbDp0aGlzLiR1Lmxlbmd0aC0xfXRkKHQpe3JldHVybih0aGlzLkNfLTEtdCkvdGhpcy5oY31EYyh0KXtjb25zdCBpPXRoaXMudGQodCkscz10aGlzLlBjKCkrdGhpcy5yYy1pO3JldHVybiBNYXRoLnJvdW5kKDFlNipzKS8xZTZ9RWModCl7Y29uc3QgaT10aGlzLmhjO3RoaXMuaGM9dCx0aGlzLnljKCksaSE9PXRoaXMuaGMmJih0aGlzLkt1PSEwLHRoaXMubmQoKSx0aGlzLm9jKCkpfXdjKCl7aWYoIXRoaXMuS3UpcmV0dXJuO2lmKHRoaXMuS3U9ITEsdGhpcy5HaSgpKXJldHVybiB2b2lkIHRoaXMuc2QoV2kuSHUoKSk7Y29uc3QgdD10aGlzLlBjKCksaT10aGlzLkNfL3RoaXMuaGMscz10aGlzLnJjK3QsZT1uZXcgSWkocy1pKzEscyk7dGhpcy5zZChuZXcgV2koZSkpfXljKCl7Y29uc3QgdD1paSh0aGlzLmhjLHRoaXMuZWQoKSx0aGlzLnJkKCkpO3RoaXMuaGMhPT10JiYodGhpcy5oYz10LHRoaXMuS3U9ITApfXJkKCl7cmV0dXJuIHRoaXMueW4ubWF4QmFyU3BhY2luZz4wP3RoaXMueW4ubWF4QmFyU3BhY2luZzouNSp0aGlzLkNffWVkKCl7cmV0dXJuIHRoaXMueW4uZml4TGVmdEVkZ2UmJnRoaXMueW4uZml4UmlnaHRFZGdlJiYwIT09dGhpcy4kdS5sZW5ndGg/dGhpcy5DXy90aGlzLiR1Lmxlbmd0aDp0aGlzLnluLm1pbkJhclNwYWNpbmd9b2MoKXtpZighdGhpcy55bi5lbmFibGVDb25mbGF0aW9uKXJldHVybiB2b2lkKHRoaXMuZWM9MSk7Y29uc3QgdD0xLyh3aW5kb3cuZGV2aWNlUGl4ZWxSYXRpb3x8MSkqKHRoaXMueW4uY29uZmxhdGlvblRocmVzaG9sZEZhY3Rvcj8/MSk7aWYodGhpcy5oYz49dClyZXR1cm4gdm9pZCh0aGlzLmVjPTEpO2NvbnN0IGk9dC90aGlzLmhjLHM9TWF0aC5wb3coMixNYXRoLmZsb29yKE1hdGgubG9nMihpKSkpO3RoaXMuZWM9TWF0aC5taW4ocyw1MTIpfWtjKCl7Y29uc3QgdD10aGlzLmhkKCk7bnVsbCE9PXQmJnRoaXMucmM8dCYmKHRoaXMucmM9dCx0aGlzLkt1PSEwKTtjb25zdCBpPXRoaXMuYWQoKTt0aGlzLnJjPmkmJih0aGlzLnJjPWksdGhpcy5LdT0hMCl9aGQoKXtjb25zdCB0PXRoaXMuU2MoKSxpPXRoaXMuVXU7cmV0dXJuIG51bGw9PT10fHxudWxsPT09aT9udWxsOnQtaS0xKyh0aGlzLnluLmZpeExlZnRFZGdlP3RoaXMuQ18vdGhpcy5oYzpNYXRoLm1pbigyLHRoaXMuJHUubGVuZ3RoKSl9YWQoKXtyZXR1cm4gdGhpcy55bi5maXhSaWdodEVkZ2U/MDp0aGlzLkNfL3RoaXMuaGMtTWF0aC5taW4oMix0aGlzLiR1Lmxlbmd0aCl9V2MoKXsKdGhpcy5KdT17Zmw6dGhpcy5mbCgpLEFjOnRoaXMuQWMoKX19SGMoKXt0aGlzLkp1PW51bGx9emModCl7bGV0IGk9dGhpcy5xdS5nZXQodC53ZWlnaHQpO3JldHVybiB2b2lkIDA9PT1pJiYoaT1uZXcgTGkoKHQ9PnRoaXMubGQodCkpLHRoaXMueHUpLHRoaXMucXUuc2V0KHQud2VpZ2h0LGkpKSxpLkN1KHQpfWxkKHQpe3JldHVybiB0aGlzLnh1LmZvcm1hdFRpY2ttYXJrKHQsdGhpcy5Qbyl9c2QodCl7Y29uc3QgaT10aGlzLll1O3RoaXMuWXU9dCxSaShpLkZ1KCksdGhpcy5ZdS5GdSgpKXx8dGhpcy5adS5wKCksUmkoaS5XdSgpLHRoaXMuWXUuV3UoKSl8fHRoaXMuR3UucCgpLHRoaXMubmQoKX1uZCgpe3RoaXMuUXU9bnVsbH1jYygpe3RoaXMubmQoKSx0aGlzLnF1LmNsZWFyKCl9bGMoKXt0aGlzLnh1LnVwZGF0ZUZvcm1hdHRlcih0aGlzLlBvKX1kYygpe2lmKCF0aGlzLnluLmZpeExlZnRFZGdlKXJldHVybjtjb25zdCB0PXRoaXMuU2MoKTtpZihudWxsPT09dClyZXR1cm47Y29uc3QgaT10aGlzLkVlKCk7aWYobnVsbD09PWkpcmV0dXJuO2NvbnN0IHM9aS5PYSgpLXQ7aWYoczwwKXtjb25zdCB0PXRoaXMucmMtcy0xO3RoaXMuZ3ModCl9dGhpcy55YygpfWZjKCl7dGhpcy5rYygpLHRoaXMueWMoKX1JYyh0KXtyZXR1cm4hdGhpcy55bi5pZ25vcmVXaGl0ZXNwYWNlSW5kaWNlc3x8dGhpcy50Yy5nZXQodCl8fCExfVZjKHQpe2NvbnN0IGk9ZnVuY3Rpb24qKHQpe2NvbnN0IGk9TWF0aC5yb3VuZCh0KSxzPWk8dDtsZXQgZT0xO2Zvcig7OylzPyh5aWVsZCBpK2UseWllbGQgaS1lKTooeWllbGQgaS1lLHlpZWxkIGkrZSksZSsrfSh0KSxzPXRoaXMueGMoKTtmb3IoO3M7KXtjb25zdCB0PWkubmV4dCgpLnZhbHVlO2lmKHRoaXMudGMuZ2V0KHQpKXJldHVybiB0O2lmKHQ8MHx8dD5zKWJyZWFrfXJldHVybiB0fWFjKHQpe2lmKHZvaWQgMCE9PXQucmlnaHRPZmZzZXRQaXhlbHMpe2NvbnN0IGk9dC5yaWdodE9mZnNldFBpeGVscy8odC5iYXJTcGFjaW5nfHx0aGlzLmhjKTt0aGlzLnNuLmdzKGkpfX19dmFyIEJpLEtpLE9pLFZpLCRpOyFmdW5jdGlvbih0KXt0W3QuT25Ub3VjaEVuZD0wXT0iT25Ub3VjaEVuZCIsdFt0Lk9uTmV4dFRhcD0xXT0iT25OZXh0VGFwIn0oQml8fChCaT17fSkpO2NsYXNzIEFpe2NvbnN0cnVjdG9yKHQsaSxzKXt0aGlzLm9kPVtdLHRoaXMuX2Q9W10sdGhpcy51ZD1udWxsLHRoaXMuQ189MCx0aGlzLmRkPW51bGwsdGhpcy5mZD1uZXcgbSx0aGlzLnBkPW5ldyBtLHRoaXMudmQ9bnVsbCx0aGlzLm1kPXQsdGhpcy55bj1pLHRoaXMueHU9cyx0aGlzLlRvPW5ldyBFKHRoaXMueW4ubGF5b3V0LmNvbG9yUGFyc2VycyksdGhpcy53ZD1uZXcgQyh0aGlzKSx0aGlzLmlhPW5ldyBEaSh0aGlzLGkudGltZVNjYWxlLHRoaXMueW4ubG9jYWxpemF0aW9uLHMpLHRoaXMuQ3Q9bmV3IFUodGhpcyxpLmNyb3NzaGFpciksdGhpcy5NZD1uZXcgdGkoaS5jcm9zc2hhaXIpLGkuYWRkRGVmYXVsdFBhbmUmJih0aGlzLmdkKDApLHRoaXMub2RbMF0uT18oMikpLHRoaXMuYmQ9dGhpcy5TZCgwKSx0aGlzLnhkPXRoaXMuU2QoMSl9UGEoKXt0aGlzLkNkKFgueXMoKSl9bXIoKXt0aGlzLkNkKFguQ3MoKSl9cWEoKXt0aGlzLkNkKG5ldyBYKDEpKX1UYSh0KXtjb25zdCBpPXRoaXMueWQodCk7dGhpcy5DZChpKX1vdSgpe3JldHVybiB0aGlzLmRkfWtkKHQpe2lmKHRoaXMuZGQ/Lmx1PT09dD8ubHUmJnRoaXMuZGQ/Lnd1Py50ZT09PXQ/Lnd1Py50ZSYmdGhpcy5kZD8ud3U/LmllPT09dD8ud3U/LmllJiZ0aGlzLmRkPy5tdT09PXQ/Lm11JiZ0aGlzLmRkPy5lZT09PXQ/LmVlKXJldHVybjtjb25zdCBpPXRoaXMuZGQ7dGhpcy5kZD10LG51bGwhPT1pJiZ0aGlzLlRhKGkubHUpLG51bGwhPT10JiZ0Lmx1IT09aT8ubHUmJnRoaXMuVGEodC5sdSl9Tigpe3JldHVybiB0aGlzLnlufXZyKHQpe3AodGhpcy55bix0KSx0aGlzLm9kLmZvckVhY2goKGk9PmkuRV8odCkpKSx2b2lkIDAhPT10LnRpbWVTY2FsZSYmdGhpcy5pYS52cih0LnRpbWVTY2FsZSksdm9pZCAwIT09dC5sb2NhbGl6YXRpb24mJnRoaXMuaWEudWModC5sb2NhbGl6YXRpb24pLCh0LmxlZnRQcmljZVNjYWxlfHx0LnJpZ2h0UHJpY2VTY2FsZSkmJnRoaXMuZmQucCgpLHRoaXMuYmQ9dGhpcy5TZCgwKSx0aGlzLnhkPXRoaXMuU2QoMSksdGhpcy5QYSgpfVBkKHQsaSxzPTApe2NvbnN0IGU9dGhpcy5vZFtzXTtpZih2b2lkIDA9PT1lKXJldHVybjtpZigibGVmdCI9PT10KXJldHVybiBwKHRoaXMueW4se2xlZnRQcmljZVNjYWxlOml9KSxlLkVfKHtsZWZ0UHJpY2VTY2FsZTppfSksdGhpcy5mZC5wKCksdm9pZCB0aGlzLlBhKCk7aWYoInJpZ2h0Ij09PXQpcmV0dXJuIHAodGhpcy55bix7cmlnaHRQcmljZVNjYWxlOml9KSxlLkVfKHtyaWdodFByaWNlU2NhbGU6aX0pLHRoaXMuZmQucCgpLHZvaWQgdGhpcy5QYSgpO2NvbnN0IGg9dGhpcy5UZCh0LHMpO251bGwhPT1oJiYoaC5GdC52cihpKSx0aGlzLmZkLnAoKSl9VGQodCxpKXtjb25zdCBzPXRoaXMub2RbaV07aWYodm9pZCAwPT09cylyZXR1cm4gbnVsbDtjb25zdCBlPXMuQV8odCk7cmV0dXJuIG51bGwhPT1lP3tLbjpzLEZ0OmV9Om51bGx9RXQoKXtyZXR1cm4gdGhpcy5pYX1abigpe3JldHVybiB0aGlzLm9kfVJkKCl7cmV0dXJuIHRoaXMuQ3R9RGQoKXtyZXR1cm4gdGhpcy5wZH1JZCh0LGkpe3QuV28oaSksdGhpcy5CYygpfU5fKHQpe3RoaXMuQ189dCx0aGlzLmlhLk5fKHRoaXMuQ18pLHRoaXMub2QuZm9yRWFjaCgoaT0+aS5OXyh0KSkpLHRoaXMuQmMoKX1WZCh0KXsxIT09dGhpcy5vZC5sZW5ndGgmJih1KHQ+PTAmJnQ8dGhpcy5vZC5sZW5ndGgsIkludmFsaWQgcGFuZSBpbmRleCIpLHRoaXMub2Quc3BsaWNlKHQsMSksdGhpcy5QYSgpKX1CZCh0LGkpe2lmKHRoaXMub2QubGVuZ3RoPDIpcmV0dXJuO3UodD49MCYmdDx0aGlzLm9kLmxlbmd0aCwiSW52YWxpZCBwYW5lIGluZGV4Iik7Y29uc3Qgcz10aGlzLm9kW3RdLGU9dGhpcy5vZC5yZWR1Y2UoKCh0LGkpPT50K2kuel8oKSksMCksaD10aGlzLm9kLnJlZHVjZSgoKHQsaSk9PnQraS4kdCgpKSwwKSxuPWgtMzAqKHRoaXMub2QubGVuZ3RoLTEpCjtpPU1hdGgubWluKG4sTWF0aC5tYXgoMzAsaSkpO2NvbnN0IHI9ZS9oLG89cy4kdCgpO3MuT18oaSpyKTtsZXQgbD1pLW8sYT10aGlzLm9kLmxlbmd0aC0xO2Zvcihjb25zdCB0IG9mIHRoaXMub2QpaWYodCE9PXMpe2NvbnN0IGk9TWF0aC5taW4obixNYXRoLm1heCgzMCx0LiR0KCktbC9hKSk7bC09dC4kdCgpLWksYS09MTtjb25zdCBzPWkqcjt0Lk9fKHMpfXRoaXMuUGEoKX1FZCh0LGkpe3UodD49MCYmdDx0aGlzLm9kLmxlbmd0aCYmaT49MCYmaTx0aGlzLm9kLmxlbmd0aCwiSW52YWxpZCBwYW5lIGluZGV4Iik7Y29uc3Qgcz10aGlzLm9kW3RdLGU9dGhpcy5vZFtpXTt0aGlzLm9kW3RdPWUsdGhpcy5vZFtpXT1zLHRoaXMuUGEoKX1BZCh0LGkpe2lmKHUodD49MCYmdDx0aGlzLm9kLmxlbmd0aCYmaT49MCYmaTx0aGlzLm9kLmxlbmd0aCwiSW52YWxpZCBwYW5lIGluZGV4IiksdD09PWkpcmV0dXJuO2NvbnN0W3NdPXRoaXMub2Quc3BsaWNlKHQsMSk7dGhpcy5vZC5zcGxpY2UoaSwwLHMpLHRoaXMuUGEoKX1HXyh0LGkscyl7dC5HXyhpLHMpfVhfKHQsaSxzKXt0LlhfKGkscyksdGhpcy5SYSgpLHRoaXMuQ2QodGhpcy5MZCh0LDIpKX1KXyh0LGkpe3QuSl8oaSksdGhpcy5DZCh0aGlzLkxkKHQsMikpfVFfKHQsaSxzKXtpLkVvKCl8fHQuUV8oaSxzKX10dSh0LGkscyl7aS5FbygpfHwodC50dShpLHMpLHRoaXMuUmEoKSx0aGlzLkNkKHRoaXMuTGQodCwyKSkpfWl1KHQsaSl7aS5FbygpfHwodC5pdShpKSx0aGlzLkNkKHRoaXMuTGQodCwyKSkpfWV1KHQsaSl7dC5ldShpKSx0aGlzLkNkKHRoaXMuTGQodCwyKSl9emQodCl7dGhpcy5pYS5sXyh0KX1PZCh0LGkpe2NvbnN0IHM9dGhpcy5FdCgpO2lmKHMuR2koKXx8MD09PWkpcmV0dXJuO2NvbnN0IGU9cy5ubigpO3Q9TWF0aC5tYXgoMSxNYXRoLm1pbih0LGUpKSxzLkZjKHQsaSksdGhpcy5CYygpfU5kKHQpe3RoaXMuRmQoMCksdGhpcy5XZCh0KSx0aGlzLkhkKCl9VWQodCl7dGhpcy5pYS5vXyh0KSx0aGlzLkJjKCl9JGQoKXt0aGlzLmlhLl9fKCksdGhpcy5tcigpfUZkKHQpe3RoaXMuaWEudV8odCl9V2QodCl7dGhpcy5pYS5jXyh0KSx0aGlzLkJjKCl9SGQoKXt0aGlzLmlhLmRfKCksdGhpcy5tcigpfUpuKCl7cmV0dXJuIHRoaXMuX2R9V24oKXtyZXR1cm4gbnVsbD09PXRoaXMudWQmJih0aGlzLnVkPXRoaXMuX2QuZmlsdGVyKCh0PT50Lkl0KCkpKSksdGhpcy51ZH1rYSgpe3RoaXMudWQ9bnVsbH1qZCh0LGkscyxlLGgpe3RoaXMuQ3QuSW4odCxpKTtsZXQgbj1OYU4scj10aGlzLmlhLlJjKHQsITApO2NvbnN0IG89dGhpcy5pYS5FZSgpO251bGwhPT1vJiYocj1NYXRoLm1pbihNYXRoLm1heChvLk9hKCksciksby5iaSgpKSkscj10aGlzLkN0LkZuKHIpO2NvbnN0IGw9ZS5QbigpLGE9bC5MdCgpO2lmKG51bGwhPT1hJiYobj1sLlRuKGksYSkpLG49dGhpcy5NZC54bChuLHIsZSksdGhpcy5DdC5BbihyLG4sZSksdGhpcy5xYSgpLCFoKXtjb25zdCBoPXFpKGUsdCxpKTt0aGlzLmtkKGgmJntsdTpoLmx1LHd1Omgud3UsbXU6aC5tdXx8bnVsbCxlZTpoLmVlfSksdGhpcy5wZC5wKHRoaXMuQ3QuQnQoKSx7eDp0LHk6aX0scyl9fXFkKHQsaSxzKXtjb25zdCBlPXMuUG4oKSxoPWUuTHQoKSxuPWUuTnQodCxkKGgpKSxyPXRoaXMuaWEudmMoaSwhMCksbz10aGlzLmlhLmp0KGQocikpO3RoaXMuamQobyxuLG51bGwscywhMCl9WWQodCl7dGhpcy5SZCgpLnpuKCksdGhpcy5xYSgpLHR8fHRoaXMucGQucChudWxsLG51bGwsbnVsbCl9UmEoKXtjb25zdCB0PXRoaXMuQ3QuS24oKTtpZihudWxsIT09dCl7Y29uc3QgaT10aGlzLkN0LkJuKCkscz10aGlzLkN0LkVuKCk7dGhpcy5qZChpLHMsbnVsbCx0KX10aGlzLkN0Lk5uKCl9S2QodCxpLHMpe2NvbnN0IGU9dGhpcy5pYS5SbigwKTt2b2lkIDAhPT1pJiZ2b2lkIDAhPT1zJiZ0aGlzLmlhLmt0KGkscyk7Y29uc3QgaD10aGlzLmlhLlJuKDApLG49dGhpcy5pYS5QYygpLHI9dGhpcy5pYS5FZSgpO2lmKG51bGwhPT1yJiZudWxsIT09ZSYmbnVsbCE9PWgpe2NvbnN0IGk9ci56ZShuKSxvPXRoaXMueHUua2V5KGUpPnRoaXMueHUua2V5KGgpLGw9bnVsbCE9PXQmJnQ+biYmIW8sYT10aGlzLmlhLk4oKS5hbGxvd1NoaWZ0VmlzaWJsZVJhbmdlT25XaGl0ZXNwYWNlUmVwbGFjZW1lbnQsdT1pJiYoISh2b2lkIDA9PT1zKXx8YSkmJnRoaXMuaWEuTigpLnNoaWZ0VmlzaWJsZVJhbmdlT25OZXdCYXI7aWYobCYmIXUpe2NvbnN0IGk9dC1uO3RoaXMuaWEuZ3ModGhpcy5pYS5BYygpLWkpfX10aGlzLmlhLk5jKHQpfVZhKHQpe251bGwhPT10JiZ0Lmh1KCl9S3ModCl7aWYoZnVuY3Rpb24odCl7cmV0dXJuIHQgaW5zdGFuY2VvZiBDaX0odCkpcmV0dXJuIHQ7Y29uc3QgaT10aGlzLm9kLmZpbmQoKGk9PmkuRHQoKS5pbmNsdWRlcyh0KSkpO3JldHVybiB2b2lkIDA9PT1pP251bGw6aX1CYygpe3RoaXMub2QuZm9yRWFjaCgodD0+dC5odSgpKSksdGhpcy5SYSgpfW0oKXt0aGlzLm9kLmZvckVhY2goKHQ9PnQubSgpKSksdGhpcy5vZC5sZW5ndGg9MCx0aGlzLnluLmxvY2FsaXphdGlvbi5wcmljZUZvcm1hdHRlcj12b2lkIDAsdGhpcy55bi5sb2NhbGl6YXRpb24ucGVyY2VudGFnZUZvcm1hdHRlcj12b2lkIDAsdGhpcy55bi5sb2NhbGl6YXRpb24udGltZUZvcm1hdHRlcj12b2lkIDB9WmQoKXtyZXR1cm4gdGhpcy53ZH1Kcygpe3JldHVybiB0aGlzLndkLk4oKX1MXygpe3JldHVybiB0aGlzLmZkfUdkKHQsaSl7Y29uc3Qgcz10aGlzLmdkKGkpO3RoaXMuWGQodCxzKSx0aGlzLl9kLnB1c2godCksdGhpcy5rYSgpLDE9PT10aGlzLl9kLmxlbmd0aD90aGlzLlBhKCk6dGhpcy5tcigpfUpkKHQpe2NvbnN0IGk9dGhpcy5Lcyh0KSxzPXRoaXMuX2QuaW5kZXhPZih0KTt1KC0xIT09cywiU2VyaWVzIG5vdCBmb3VuZCIpO2NvbnN0IGU9ZChpKTt0aGlzLl9kLnNwbGljZShzLDEpLGUucl8odCksdC5tJiZ0Lm0oKSx0aGlzLmthKCksdGhpcy5pYS5fYygpLHRoaXMuUWQoZSl9eWEodCxpKXtjb25zdCBzPWQodGhpcy5Lcyh0KSk7cy5yXyh0LCEwKSxzLnNfKHQsaSwhMCl9WGMoKXtjb25zdCB0PVguQ3MoKTt0LnVzKCksdGhpcy5DZCh0KX0KdGYodCl7Y29uc3QgaT1YLkNzKCk7aS5mcyh0KSx0aGlzLkNkKGkpfXdzKCl7Y29uc3QgdD1YLkNzKCk7dC53cygpLHRoaXMuQ2QodCl9TXModCl7Y29uc3QgaT1YLkNzKCk7aS5Ncyh0KSx0aGlzLkNkKGkpfWdzKHQpe2NvbnN0IGk9WC5DcygpO2kuZ3ModCksdGhpcy5DZChpKX1wcyh0KXtjb25zdCBpPVguQ3MoKTtpLnBzKHQpLHRoaXMuQ2QoaSl9Y3MoKXtjb25zdCB0PVguQ3MoKTt0LmNzKCksdGhpcy5DZCh0KX1pZigpe2NvbnN0IHQ9dGhpcy55bi5kZWZhdWx0VmlzaWJsZVByaWNlU2NhbGVJZCxpPXRoaXMueW4ubGVmdFByaWNlU2NhbGUudmlzaWJsZTtyZXR1cm4gaSE9PXRoaXMueW4ucmlnaHRQcmljZVNjYWxlLnZpc2libGU/aT8ibGVmdCI6InJpZ2h0Ijp0fW5mKHQsaSl7aWYodShpPj0wLCJJbmRleCBzaG91bGQgYmUgZ3JlYXRlciBvciBlcXVhbCB0byAwIiksaT09PXRoaXMuc2YodCkpcmV0dXJuO2NvbnN0IHM9ZCh0aGlzLktzKHQpKTtzLnJfKHQpO2NvbnN0IGU9dGhpcy5nZChpKTt0aGlzLlhkKHQsZSk7bGV0IGg9ITE7MD09PXMuQ2woKS5sZW5ndGgmJihoPXRoaXMuUWQocykpLGh8fHRoaXMuUGEoKX1lZigpe3JldHVybiB0aGlzLnhkfSQoKXtyZXR1cm4gdGhpcy5iZH1VdCh0KXtjb25zdCBpPXRoaXMueGQscz10aGlzLmJkO2lmKGk9PT1zKXJldHVybiBpO2lmKHQ9TWF0aC5tYXgoMCxNYXRoLm1pbigxMDAsTWF0aC5yb3VuZCgxMDAqdCkpKSxudWxsPT09dGhpcy52ZHx8dGhpcy52ZC5haCE9PXN8fHRoaXMudmQub2ghPT1pKXRoaXMudmQ9e2FoOnMsb2g6aSxyZjpuZXcgTWFwfTtlbHNle2NvbnN0IGk9dGhpcy52ZC5yZi5nZXQodCk7aWYodm9pZCAwIT09aSlyZXR1cm4gaX1jb25zdCBlPXRoaXMuVG8udHQocyxpLHQvMTAwKTtyZXR1cm4gdGhpcy52ZC5yZi5zZXQodCxlKSxlfWhmKHQpe3JldHVybiB0aGlzLm9kLmluZGV4T2YodCl9WGkoKXtyZXR1cm4gdGhpcy5Ub31hZigpe3JldHVybiB0aGlzLmxmKCl9bGYodCl7Y29uc3QgaT1uZXcgQ2kodGhpcy5pYSx0aGlzKTt0aGlzLm9kLnB1c2goaSk7Y29uc3Qgcz10Pz90aGlzLm9kLmxlbmd0aC0xLGU9WC55cygpO3JldHVybiBlLmVzKHMse3JzOjAsaHM6ITB9KSx0aGlzLkNkKGUpLGl9Z2QodCl7cmV0dXJuIHUodD49MCwiSW5kZXggc2hvdWxkIGJlIGdyZWF0ZXIgb3IgZXF1YWwgdG8gMCIpLCh0PU1hdGgubWluKHRoaXMub2QubGVuZ3RoLHQpKTx0aGlzLm9kLmxlbmd0aD90aGlzLm9kW3RdOnRoaXMubGYodCl9c2YodCl7cmV0dXJuIHRoaXMub2QuZmluZEluZGV4KChpPT5pLlVfKCkuaW5jbHVkZXModCkpKX1MZCh0LGkpe2NvbnN0IHM9bmV3IFgoaSk7aWYobnVsbCE9PXQpe2NvbnN0IGU9dGhpcy5vZC5pbmRleE9mKHQpO3MuZXMoZSx7cnM6aX0pfXJldHVybiBzfXlkKHQsaSl7cmV0dXJuIHZvaWQgMD09PWkmJihpPTIpLHRoaXMuTGQodGhpcy5Lcyh0KSxpKX1DZCh0KXt0aGlzLm1kJiZ0aGlzLm1kKHQpLHRoaXMub2QuZm9yRWFjaCgodD0+dC5wdSgpLndyKCkua3QoKSkpfVhkKHQsaSl7Y29uc3Qgcz10Lk4oKS5wcmljZVNjYWxlSWQsZT12b2lkIDAhPT1zP3M6dGhpcy5pZigpO2kuc18odCxlKSxqKGUpfHx0LnZyKHQuTigpKX1TZCh0KXtjb25zdCBpPXRoaXMueW4ubGF5b3V0O3JldHVybiJncmFkaWVudCI9PT1pLmJhY2tncm91bmQudHlwZT8wPT09dD9pLmJhY2tncm91bmQudG9wQ29sb3I6aS5iYWNrZ3JvdW5kLmJvdHRvbUNvbG9yOmkuYmFja2dyb3VuZC5jb2xvcn1RZCh0KXtyZXR1cm4hdC5IXygpJiYwPT09dC5DbCgpLmxlbmd0aCYmdGhpcy5vZC5sZW5ndGg+MSYmKHRoaXMub2Quc3BsaWNlKHRoaXMuaGYodCksMSksdGhpcy5QYSgpLCEwKX19ZnVuY3Rpb24gWmkodCl7aWYodD49MSlyZXR1cm4gMDtsZXQgaT0wO2Zvcig7aTw4O2krKyl7Y29uc3Qgcz1NYXRoLnJvdW5kKHQpO2lmKE1hdGguYWJzKHMtdCk8MWUtOClyZXR1cm4gaTt0Kj0xMH1yZXR1cm4gaX1mdW5jdGlvbiBZaSh0KXtyZXR1cm4hZyh0KSYmIWIodCl9ZnVuY3Rpb24gSGkodCl7cmV0dXJuIGcodCl9IWZ1bmN0aW9uKHQpe3RbdC5EaXNhYmxlZD0wXT0iRGlzYWJsZWQiLHRbdC5Db250aW51b3VzPTFdPSJDb250aW51b3VzIix0W3QuT25EYXRhVXBkYXRlPTJdPSJPbkRhdGFVcGRhdGUifShLaXx8KEtpPXt9KSksZnVuY3Rpb24odCl7dFt0Lkxhc3RCYXI9MF09Ikxhc3RCYXIiLHRbdC5MYXN0VmlzaWJsZT0xXT0iTGFzdFZpc2libGUifShPaXx8KE9pPXt9KSksZnVuY3Rpb24odCl7dC5Tb2xpZD0ic29saWQiLHQuVmVydGljYWxHcmFkaWVudD0iZ3JhZGllbnQifShWaXx8KFZpPXt9KSksZnVuY3Rpb24odCl7dFt0LlllYXI9MF09IlllYXIiLHRbdC5Nb250aD0xXT0iTW9udGgiLHRbdC5EYXlPZk1vbnRoPTJdPSJEYXlPZk1vbnRoIix0W3QuVGltZT0zXT0iVGltZSIsdFt0LlRpbWVXaXRoU2Vjb25kcz00XT0iVGltZVdpdGhTZWNvbmRzIn0oJGl8fCgkaT17fSkpO2NvbnN0IEdpPXQ9PnQuZ2V0VVRDRnVsbFllYXIoKTtjbGFzcyBVaXtjb25zdHJ1Y3Rvcih0PSJ5eXl5LU1NLWRkIixpPSJkZWZhdWx0Iil7dGhpcy5fZj10LHRoaXMudWY9aX1DdSh0KXtyZXR1cm4gZnVuY3Rpb24odCxpLHMpe3JldHVybiBpLnJlcGxhY2UoL3l5eXkvZywodD0+dHQoR2kodCksNCkpKHQpKS5yZXBsYWNlKC95eS9nLCh0PT50dChHaSh0KSUxMDAsMikpKHQpKS5yZXBsYWNlKC9NTU1NL2csKCh0LGkpPT5uZXcgRGF0ZSh0LmdldFVUQ0Z1bGxZZWFyKCksdC5nZXRVVENNb250aCgpLDEpLnRvTG9jYWxlU3RyaW5nKGkse21vbnRoOiJsb25nIn0pKSh0LHMpKS5yZXBsYWNlKC9NTU0vZywoKHQsaSk9Pm5ldyBEYXRlKHQuZ2V0VVRDRnVsbFllYXIoKSx0LmdldFVUQ01vbnRoKCksMSkudG9Mb2NhbGVTdHJpbmcoaSx7bW9udGg6InNob3J0In0pKSh0LHMpKS5yZXBsYWNlKC9NTS9nLCh0PT50dCgodD0+dC5nZXRVVENNb250aCgpKzEpKHQpLDIpKSh0KSkucmVwbGFjZSgvZGQvZywodD0+dHQoKHQ9PnQuZ2V0VVRDRGF0ZSgpKSh0KSwyKSkodCkpfSh0LHRoaXMuX2YsdGhpcy51Zil9fWNsYXNzIGppe2NvbnN0cnVjdG9yKHQpe3RoaXMuY2Y9dHx8IiVoOiVtOiVzIn1DdSh0KXsKcmV0dXJuIHRoaXMuY2YucmVwbGFjZSgiJWgiLHR0KHQuZ2V0VVRDSG91cnMoKSwyKSkucmVwbGFjZSgiJW0iLHR0KHQuZ2V0VVRDTWludXRlcygpLDIpKS5yZXBsYWNlKCIlcyIsdHQodC5nZXRVVENTZWNvbmRzKCksMikpfX1jb25zdCBYaT17ZGY6Inl5eXktTU0tZGQiLGZmOiIlaDolbTolcyIscGY6IiAiLHZmOiJkZWZhdWx0In07Y2xhc3MgSml7Y29uc3RydWN0b3IodD17fSl7Y29uc3QgaT17Li4uWGksLi4udH07dGhpcy5tZj1uZXcgVWkoaS5kZixpLnZmKSx0aGlzLndmPW5ldyBqaShpLmZmKSx0aGlzLk1mPWkucGZ9Q3UodCl7cmV0dXJuYCR7dGhpcy5tZi5DdSh0KX0ke3RoaXMuTWZ9JHt0aGlzLndmLkN1KHQpfWB9fWZ1bmN0aW9uIHRzKHQpe3JldHVybiA2MCp0KjYwKjFlM31mdW5jdGlvbiBpcyh0KXtyZXR1cm4gNjAqdCoxZTN9Y29uc3Qgc3M9W3tnZjoxZTMsYmY6MTB9LHtnZjppcygxKSxiZjoyMH0se2dmOmlzKDUpLGJmOjIxfSx7Z2Y6aXMoMzApLGJmOjIyfSx7Z2Y6dHMoMSksYmY6MzB9LHtnZjp0cygzKSxiZjozMX0se2dmOnRzKDYpLGJmOjMyfSx7Z2Y6dHMoMTIpLGJmOjMzfV07ZnVuY3Rpb24gZXModCxpKXtpZih0LmdldFVUQ0Z1bGxZZWFyKCkhPT1pLmdldFVUQ0Z1bGxZZWFyKCkpcmV0dXJuIDcwO2lmKHQuZ2V0VVRDTW9udGgoKSE9PWkuZ2V0VVRDTW9udGgoKSlyZXR1cm4gNjA7aWYodC5nZXRVVENEYXRlKCkhPT1pLmdldFVUQ0RhdGUoKSlyZXR1cm4gNTA7Zm9yKGxldCBzPXNzLmxlbmd0aC0xO3M+PTA7LS1zKWlmKE1hdGguZmxvb3IoaS5nZXRUaW1lKCkvc3Nbc10uZ2YpIT09TWF0aC5mbG9vcih0LmdldFRpbWUoKS9zc1tzXS5nZikpcmV0dXJuIHNzW3NdLmJmO3JldHVybiAwfWZ1bmN0aW9uIGhzKHQpe2xldCBpPXQ7aWYoYih0KSYmKGk9cnModCkpLCFZaShpKSl0aHJvdyBuZXcgRXJyb3IoInRpbWUgbXVzdCBiZSBvZiB0eXBlIEJ1c2luZXNzRGF5Iik7Y29uc3Qgcz1uZXcgRGF0ZShEYXRlLlVUQyhpLnllYXIsaS5tb250aC0xLGkuZGF5LDAsMCwwLDApKTtyZXR1cm57U2Y6TWF0aC5yb3VuZChzLmdldFRpbWUoKS8xZTMpLHhmOml9fWZ1bmN0aW9uIG5zKHQpe2lmKCFIaSh0KSl0aHJvdyBuZXcgRXJyb3IoInRpbWUgbXVzdCBiZSBvZiB0eXBlIGlzVVRDVGltZXN0YW1wIik7cmV0dXJue1NmOnR9fWZ1bmN0aW9uIHJzKHQpe2NvbnN0IGk9bmV3IERhdGUodCk7aWYoaXNOYU4oaS5nZXRUaW1lKCkpKXRocm93IG5ldyBFcnJvcihgSW52YWxpZCBkYXRlIHN0cmluZz0ke3R9LCBleHBlY3RlZCBmb3JtYXQ9eXl5eS1tbS1kZGApO3JldHVybntkYXk6aS5nZXRVVENEYXRlKCksbW9udGg6aS5nZXRVVENNb250aCgpKzEseWVhcjppLmdldFVUQ0Z1bGxZZWFyKCl9fWZ1bmN0aW9uIG9zKHQpe2IodC50aW1lKSYmKHQudGltZT1ycyh0LnRpbWUpKX1jbGFzcyBsc3tvcHRpb25zKCl7cmV0dXJuIHRoaXMueW59c2V0T3B0aW9ucyh0KXt0aGlzLnluPXQsdGhpcy51cGRhdGVGb3JtYXR0ZXIodC5sb2NhbGl6YXRpb24pfXByZXByb2Nlc3NEYXRhKHQpe0FycmF5LmlzQXJyYXkodCk/ZnVuY3Rpb24odCl7dC5mb3JFYWNoKG9zKX0odCk6b3ModCl9Y3JlYXRlQ29udmVydGVyVG9JbnRlcm5hbE9iaih0KXtyZXR1cm4gZChmdW5jdGlvbih0KXtyZXR1cm4gMD09PXQubGVuZ3RoP251bGw6WWkodFswXS50aW1lKXx8Yih0WzBdLnRpbWUpP2hzOm5zfSh0KSl9a2V5KHQpe3JldHVybiJvYmplY3QiPT10eXBlb2YgdCYmIlNmImluIHQ/dC5TZjp0aGlzLmtleSh0aGlzLmNvbnZlcnRIb3J6SXRlbVRvSW50ZXJuYWwodCkpfWNhY2hlS2V5KHQpe2NvbnN0IGk9dDtyZXR1cm4gdm9pZCAwPT09aS54Zj9uZXcgRGF0ZSgxZTMqaS5TZikuZ2V0VGltZSgpOm5ldyBEYXRlKERhdGUuVVRDKGkueGYueWVhcixpLnhmLm1vbnRoLTEsaS54Zi5kYXkpKS5nZXRUaW1lKCl9Y29udmVydEhvcnpJdGVtVG9JbnRlcm5hbCh0KXtyZXR1cm4gSGkoaT10KT9ucyhpKTpZaShpKT9ocyhpKTpocyhycyhpKSk7dmFyIGl9dXBkYXRlRm9ybWF0dGVyKHQpe2lmKCF0aGlzLnluKXJldHVybjtjb25zdCBpPXQuZGF0ZUZvcm1hdDt0aGlzLnluLnRpbWVTY2FsZS50aW1lVmlzaWJsZT90aGlzLkNmPW5ldyBKaSh7ZGY6aSxmZjp0aGlzLnluLnRpbWVTY2FsZS5zZWNvbmRzVmlzaWJsZT8iJWg6JW06JXMiOiIlaDolbSIscGY6IiAgICIsdmY6dC5sb2NhbGV9KTp0aGlzLkNmPW5ldyBVaShpLHQubG9jYWxlKX1mb3JtYXRIb3J6SXRlbSh0KXtjb25zdCBpPXQ7cmV0dXJuIHRoaXMuQ2YuQ3UobmV3IERhdGUoMWUzKmkuU2YpKX1mb3JtYXRUaWNrbWFyayh0LGkpe2NvbnN0IHM9ZnVuY3Rpb24odCxpLHMpe3N3aXRjaCh0KXtjYXNlIDA6Y2FzZSAxMDpyZXR1cm4gaT9zPzQ6MzoyO2Nhc2UgMjA6Y2FzZSAyMTpjYXNlIDIyOmNhc2UgMzA6Y2FzZSAzMTpjYXNlIDMyOmNhc2UgMzM6cmV0dXJuIGk/MzoyO2Nhc2UgNTA6cmV0dXJuIDI7Y2FzZSA2MDpyZXR1cm4gMTtjYXNlIDcwOnJldHVybiAwfX0odC53ZWlnaHQsdGhpcy55bi50aW1lU2NhbGUudGltZVZpc2libGUsdGhpcy55bi50aW1lU2NhbGUuc2Vjb25kc1Zpc2libGUpLGU9dGhpcy55bi50aW1lU2NhbGU7aWYodm9pZCAwIT09ZS50aWNrTWFya0Zvcm1hdHRlcil7Y29uc3QgaD1lLnRpY2tNYXJrRm9ybWF0dGVyKHQub3JpZ2luYWxUaW1lLHMsaS5sb2NhbGUpO2lmKG51bGwhPT1oKXJldHVybiBofXJldHVybiBmdW5jdGlvbih0LGkscyl7Y29uc3QgZT17fTtzd2l0Y2goaSl7Y2FzZSAwOmUueWVhcj0ibnVtZXJpYyI7YnJlYWs7Y2FzZSAxOmUubW9udGg9InNob3J0IjticmVhaztjYXNlIDI6ZS5kYXk9Im51bWVyaWMiO2JyZWFrO2Nhc2UgMzplLmhvdXIxMj0hMSxlLmhvdXI9IjItZGlnaXQiLGUubWludXRlPSIyLWRpZ2l0IjticmVhaztjYXNlIDQ6ZS5ob3VyMTI9ITEsZS5ob3VyPSIyLWRpZ2l0IixlLm1pbnV0ZT0iMi1kaWdpdCIsZS5zZWNvbmQ9IjItZGlnaXQifWNvbnN0IGg9dm9pZCAwPT09dC54Zj9uZXcgRGF0ZSgxZTMqdC5TZik6bmV3IERhdGUoRGF0ZS5VVEModC54Zi55ZWFyLHQueGYubW9udGgtMSx0LnhmLmRheSkpCjtyZXR1cm4gbmV3IERhdGUoaC5nZXRVVENGdWxsWWVhcigpLGguZ2V0VVRDTW9udGgoKSxoLmdldFVUQ0RhdGUoKSxoLmdldFVUQ0hvdXJzKCksaC5nZXRVVENNaW51dGVzKCksaC5nZXRVVENTZWNvbmRzKCksaC5nZXRVVENNaWxsaXNlY29uZHMoKSkudG9Mb2NhbGVTdHJpbmcocyxlKX0odC50aW1lLHMsaS5sb2NhbGUpfW1heFRpY2tNYXJrV2VpZ2h0KHQpe2xldCBpPXQucmVkdWNlKFFpLHRbMF0pLndlaWdodDtyZXR1cm4gaT4zMCYmaTw1MCYmKGk9MzApLGl9ZmlsbFdlaWdodHNGb3JQb2ludHModCxpKXshZnVuY3Rpb24odCxpPTApe2lmKDA9PT10Lmxlbmd0aClyZXR1cm47bGV0IHM9MD09PWk/bnVsbDp0W2ktMV0udGltZS5TZixlPW51bGwhPT1zP25ldyBEYXRlKDFlMypzKTpudWxsLGg9MDtmb3IobGV0IG49aTtuPHQubGVuZ3RoOysrbil7Y29uc3QgaT10W25dLHI9bmV3IERhdGUoMWUzKmkudGltZS5TZik7bnVsbCE9PWUmJihpLnRpbWVXZWlnaHQ9ZXMocixlKSksaCs9aS50aW1lLlNmLShzfHxpLnRpbWUuU2YpLHM9aS50aW1lLlNmLGU9cn1pZigwPT09aSYmdC5sZW5ndGg+MSl7Y29uc3QgaT1NYXRoLmNlaWwoaC8odC5sZW5ndGgtMSkpLHM9bmV3IERhdGUoMWUzKih0WzBdLnRpbWUuU2YtaSkpO3RbMF0udGltZVdlaWdodD1lcyhuZXcgRGF0ZSgxZTMqdFswXS50aW1lLlNmKSxzKX19KHQsaSl9c3RhdGljIHlmKHQpe3JldHVybiBwKHtsb2NhbGl6YXRpb246e2RhdGVGb3JtYXQ6ImRkIE1NTSAneXkifX0sdD8/e30pfX1jb25zdCBhcz0idW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdztmdW5jdGlvbiB1cygpe3JldHVybiEhYXMmJndpbmRvdy5uYXZpZ2F0b3IudXNlckFnZW50LnRvTG93ZXJDYXNlKCkuaW5kZXhPZigiZmlyZWZveCIpPi0xfWZ1bmN0aW9uIGNzKCl7cmV0dXJuISFhcyYmL2lQaG9uZXxpUGFkfGlQb2QvLnRlc3Qod2luZG93Lm5hdmlnYXRvci5wbGF0Zm9ybSl9ZnVuY3Rpb24gZHModCxpKXtzd2l0Y2godCl7Y2FzZSJjdXN0b20iOnJldHVybiB2b2lkIDAhPT1pPyJjdXN0b20tb2JqZWN0Ijoic2VyaWVzIjtjYXNlInByaWNlLWxpbmUiOnJldHVybiJjdXN0b20tcHJpY2UtbGluZSI7Y2FzZSJtYXJrZXIiOnJldHVybiJzZXJpZXMtbWFya2VyIjtjYXNlInByaW1pdGl2ZSI6cmV0dXJuInByaW1pdGl2ZSI7ZGVmYXVsdDpyZXR1cm4ic2VyaWVzIn19ZnVuY3Rpb24gZnModCl7cmV0dXJuIHQrdCUyfWNsYXNzIG1ze2NvbnN0cnVjdG9yKHQsaSxzKXt0aGlzLmtmPTAsdGhpcy5QZj1udWxsLHRoaXMuVGY9e190Ok51bWJlci5ORUdBVElWRV9JTkZJTklUWSx1dDpOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFl9LHRoaXMuUmY9MCx0aGlzLkRmPW51bGwsdGhpcy5JZj17X3Q6TnVtYmVyLk5FR0FUSVZFX0lORklOSVRZLHV0Ok51bWJlci5QT1NJVElWRV9JTkZJTklUWX0sdGhpcy5WZj1udWxsLHRoaXMuQmY9ITEsdGhpcy5FZj1udWxsLHRoaXMuQWY9bnVsbCx0aGlzLkxmPSExLHRoaXMuemY9ITEsdGhpcy5PZj0hMSx0aGlzLk5mPW51bGwsdGhpcy5GZj1udWxsLHRoaXMuV2Y9bnVsbCx0aGlzLkhmPW51bGwsdGhpcy5VZj1udWxsLHRoaXMuJGY9bnVsbCx0aGlzLmpmPW51bGwsdGhpcy5xZj0wLHRoaXMuWWY9ITEsdGhpcy5LZj0hMSx0aGlzLlpmPSExLHRoaXMuR2Y9MCx0aGlzLlhmPW51bGwsdGhpcy5KZj0hY3MoKSx0aGlzLlFmPXQ9Pnt0aGlzLnRwKHQpfSx0aGlzLmlwPXQ9PntpZih0aGlzLm5wKHQpKXtjb25zdCBpPXRoaXMuc3AodCk7aWYoKyt0aGlzLlJmLHRoaXMuRGYmJnRoaXMuUmY+MSl7Y29uc3R7ZXA6c309dGhpcy5ycCh2cyh0KSx0aGlzLklmKTtzPDMwJiYhdGhpcy5PZiYmdGhpcy5ocChpLHRoaXMubHAuYXApLHRoaXMub3AoKX19ZWxzZXtjb25zdCBpPXRoaXMuc3AodCk7aWYoKyt0aGlzLmtmLHRoaXMuUGYmJnRoaXMua2Y+MSl7Y29uc3R7ZXA6c309dGhpcy5ycCh2cyh0KSx0aGlzLlRmKTtzPDUmJiF0aGlzLnpmJiZ0aGlzLl9wKGksdGhpcy5scC51cCksdGhpcy5jcCgpfX19LHRoaXMuZHA9dCx0aGlzLmxwPWksdGhpcy55bj1zLHRoaXMuZnAoKX1tKCl7bnVsbCE9PXRoaXMuTmYmJih0aGlzLk5mKCksdGhpcy5OZj1udWxsKSxudWxsIT09dGhpcy5GZiYmKHRoaXMuRmYoKSx0aGlzLkZmPW51bGwpLG51bGwhPT10aGlzLkhmJiYodGhpcy5IZigpLHRoaXMuSGY9bnVsbCksbnVsbCE9PXRoaXMuVWYmJih0aGlzLlVmKCksdGhpcy5VZj1udWxsKSxudWxsIT09dGhpcy4kZiYmKHRoaXMuJGYoKSx0aGlzLiRmPW51bGwpLG51bGwhPT10aGlzLldmJiYodGhpcy5XZigpLHRoaXMuV2Y9bnVsbCksdGhpcy5wcCgpLHRoaXMuY3AoKX12cCh0KXt0aGlzLkhmJiZ0aGlzLkhmKCk7Y29uc3QgaT10aGlzLm1wLmJpbmQodGhpcyk7aWYodGhpcy5IZj0oKT0+e3RoaXMuZHAucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIixpKX0sdGhpcy5kcC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLGkpLHRoaXMubnAodCkpcmV0dXJuO2NvbnN0IHM9dGhpcy5zcCh0KTt0aGlzLl9wKHMsdGhpcy5scC53cCksdGhpcy5KZj0hMH1jcCgpe251bGwhPT10aGlzLlBmJiZjbGVhclRpbWVvdXQodGhpcy5QZiksdGhpcy5rZj0wLHRoaXMuUGY9bnVsbCx0aGlzLlRmPXtfdDpOdW1iZXIuTkVHQVRJVkVfSU5GSU5JVFksdXQ6TnVtYmVyLlBPU0lUSVZFX0lORklOSVRZfX1vcCgpe251bGwhPT10aGlzLkRmJiZjbGVhclRpbWVvdXQodGhpcy5EZiksdGhpcy5SZj0wLHRoaXMuRGY9bnVsbCx0aGlzLklmPXtfdDpOdW1iZXIuTkVHQVRJVkVfSU5GSU5JVFksdXQ6TnVtYmVyLlBPU0lUSVZFX0lORklOSVRZfX1tcCh0KXtpZih0aGlzLlpmfHxudWxsIT09dGhpcy5BZilyZXR1cm47aWYodGhpcy5ucCh0KSlyZXR1cm47Y29uc3QgaT10aGlzLnNwKHQpO3RoaXMuX3AoaSx0aGlzLmxwLk1wKSx0aGlzLkpmPSEwfWdwKHQpe2NvbnN0IGk9d3ModC5jaGFuZ2VkVG91Y2hlcyxkKHRoaXMuWGYpKTtpZihudWxsPT09aSlyZXR1cm47aWYodGhpcy5HZj1icyh0KSxudWxsIT09dGhpcy5qZilyZXR1cm47aWYodGhpcy5LZilyZXR1cm47dGhpcy5ZZj0hMAo7Y29uc3Qgcz10aGlzLnJwKHZzKGkpLGQodGhpcy5BZikpLHticDplLFNwOmgsZXA6bn09cztpZih0aGlzLkxmfHwhKG48NSkpe2lmKCF0aGlzLkxmKXtjb25zdCB0PS41KmUsaT1oPj10JiYhdGhpcy55bi54cCgpLHM9dD5oJiYhdGhpcy55bi5DcCgpO2l8fHN8fCh0aGlzLktmPSEwKSx0aGlzLkxmPSEwLHRoaXMuT2Y9ITAsdGhpcy5wcCgpLHRoaXMub3AoKX1pZighdGhpcy5LZil7Y29uc3Qgcz10aGlzLnNwKHQsaSk7dGhpcy5ocChzLHRoaXMubHAueXApLGdzKHQpfX19a3AodCl7aWYoMCE9PXQuYnV0dG9uKXJldHVybjtjb25zdCBpPXRoaXMucnAodnModCksZCh0aGlzLkVmKSkse2VwOnN9PWk7aWYocz49NSYmKHRoaXMuemY9ITAsdGhpcy5jcCgpKSx0aGlzLnpmKXtjb25zdCBpPXRoaXMuc3AodCk7dGhpcy5fcChpLHRoaXMubHAuUHApfX1ycCh0LGkpe2NvbnN0IHM9TWF0aC5hYnMoaS5fdC10Ll90KSxlPU1hdGguYWJzKGkudXQtdC51dCk7cmV0dXJue2JwOnMsU3A6ZSxlcDpzK2V9fVRwKHQpe2xldCBpPXdzKHQuY2hhbmdlZFRvdWNoZXMsZCh0aGlzLlhmKSk7aWYobnVsbD09PWkmJjA9PT10LnRvdWNoZXMubGVuZ3RoJiYoaT10LmNoYW5nZWRUb3VjaGVzWzBdKSxudWxsPT09aSlyZXR1cm47dGhpcy5YZj1udWxsLHRoaXMuR2Y9YnModCksdGhpcy5wcCgpLHRoaXMuQWY9bnVsbCx0aGlzLiRmJiYodGhpcy4kZigpLHRoaXMuJGY9bnVsbCk7Y29uc3Qgcz10aGlzLnNwKHQsaSk7aWYodGhpcy5ocChzLHRoaXMubHAuUnApLCsrdGhpcy5SZix0aGlzLkRmJiZ0aGlzLlJmPjEpe2NvbnN0e2VwOnR9PXRoaXMucnAodnMoaSksdGhpcy5JZik7dDwzMCYmIXRoaXMuT2YmJnRoaXMuaHAocyx0aGlzLmxwLmFwKSx0aGlzLm9wKCl9ZWxzZSB0aGlzLk9mfHwodGhpcy5ocChzLHRoaXMubHAuRHApLHRoaXMubHAuRHAmJmdzKHQpKTswPT09dGhpcy5SZiYmZ3ModCksMD09PXQudG91Y2hlcy5sZW5ndGgmJnRoaXMuQmYmJih0aGlzLkJmPSExLGdzKHQpKX10cCh0KXtpZigwIT09dC5idXR0b24pcmV0dXJuO2NvbnN0IGk9dGhpcy5zcCh0KTtpZih0aGlzLkVmPW51bGwsdGhpcy5aZj0hMSx0aGlzLlVmJiYodGhpcy5VZigpLHRoaXMuVWY9bnVsbCksdXMoKSYmdGhpcy5kcC5vd25lckRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZWxlYXZlIix0aGlzLlFmKSwhdGhpcy5ucCh0KSlpZih0aGlzLl9wKGksdGhpcy5scC5JcCksKyt0aGlzLmtmLHRoaXMuUGYmJnRoaXMua2Y+MSl7Y29uc3R7ZXA6c309dGhpcy5ycCh2cyh0KSx0aGlzLlRmKTtzPDUmJiF0aGlzLnpmJiZ0aGlzLl9wKGksdGhpcy5scC51cCksdGhpcy5jcCgpfWVsc2UgdGhpcy56Znx8dGhpcy5fcChpLHRoaXMubHAuVnApfXBwKCl7bnVsbCE9PXRoaXMuVmYmJihjbGVhclRpbWVvdXQodGhpcy5WZiksdGhpcy5WZj1udWxsKX1CcCh0KXtpZihudWxsIT09dGhpcy5YZilyZXR1cm47Y29uc3QgaT10LmNoYW5nZWRUb3VjaGVzWzBdO3RoaXMuWGY9aS5pZGVudGlmaWVyLHRoaXMuR2Y9YnModCk7Y29uc3Qgcz10aGlzLmRwLm93bmVyRG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50O3RoaXMuT2Y9ITEsdGhpcy5MZj0hMSx0aGlzLktmPSExLHRoaXMuQWY9dnMoaSksdGhpcy4kZiYmKHRoaXMuJGYoKSx0aGlzLiRmPW51bGwpO3tjb25zdCBpPXRoaXMuZ3AuYmluZCh0aGlzKSxlPXRoaXMuVHAuYmluZCh0aGlzKTt0aGlzLiRmPSgpPT57cy5yZW1vdmVFdmVudExpc3RlbmVyKCJ0b3VjaG1vdmUiLGkpLHMucmVtb3ZlRXZlbnRMaXN0ZW5lcigidG91Y2hlbmQiLGUpfSxzLmFkZEV2ZW50TGlzdGVuZXIoInRvdWNobW92ZSIsaSx7cGFzc2l2ZTohMX0pLHMuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hlbmQiLGUse3Bhc3NpdmU6ITF9KSx0aGlzLnBwKCksdGhpcy5WZj1zZXRUaW1lb3V0KHRoaXMuRXAuYmluZCh0aGlzLHQpLDI0MCl9Y29uc3QgZT10aGlzLnNwKHQsaSk7dGhpcy5ocChlLHRoaXMubHAuQXApLHRoaXMuRGZ8fCh0aGlzLlJmPTAsdGhpcy5EZj1zZXRUaW1lb3V0KHRoaXMub3AuYmluZCh0aGlzKSw1MDApLHRoaXMuSWY9dnMoaSkpfUxwKHQpe2lmKDAhPT10LmJ1dHRvbilyZXR1cm47Y29uc3QgaT10aGlzLmRwLm93bmVyRG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50O3VzKCkmJmkuYWRkRXZlbnRMaXN0ZW5lcigibW91c2VsZWF2ZSIsdGhpcy5RZiksdGhpcy56Zj0hMSx0aGlzLkVmPXZzKHQpLHRoaXMuVWYmJih0aGlzLlVmKCksdGhpcy5VZj1udWxsKTt7Y29uc3QgdD10aGlzLmtwLmJpbmQodGhpcykscz10aGlzLnRwLmJpbmQodGhpcyk7dGhpcy5VZj0oKT0+e2kucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIix0KSxpLnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLHMpfSxpLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIsdCksaS5hZGRFdmVudExpc3RlbmVyKCJtb3VzZXVwIixzKX1pZih0aGlzLlpmPSEwLHRoaXMubnAodCkpcmV0dXJuO2NvbnN0IHM9dGhpcy5zcCh0KTt0aGlzLl9wKHMsdGhpcy5scC56cCksdGhpcy5QZnx8KHRoaXMua2Y9MCx0aGlzLlBmPXNldFRpbWVvdXQodGhpcy5jcC5iaW5kKHRoaXMpLDUwMCksdGhpcy5UZj12cyh0KSl9ZnAoKXt0aGlzLmRwLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZW50ZXIiLHRoaXMudnAuYmluZCh0aGlzKSksdGhpcy5kcC5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaGNhbmNlbCIsdGhpcy5wcC5iaW5kKHRoaXMpKTt7Y29uc3QgdD10aGlzLmRwLm93bmVyRG9jdW1lbnQsaT10PT57dGhpcy5scC5PcCYmKHQuY29tcG9zZWQmJnRoaXMuZHAuY29udGFpbnModC5jb21wb3NlZFBhdGgoKVswXSl8fHQudGFyZ2V0JiZ0aGlzLmRwLmNvbnRhaW5zKHQudGFyZ2V0KXx8dGhpcy5scC5PcCgpKX07dGhpcy5GZj0oKT0+e3QucmVtb3ZlRXZlbnRMaXN0ZW5lcigidG91Y2hzdGFydCIsaSl9LHRoaXMuTmY9KCk9Pnt0LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsaSl9LHQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vkb3duIixpKSx0LmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoc3RhcnQiLGkse3Bhc3NpdmU6ITB9KX1jcygpJiYodGhpcy5XZj0oKT0+ewp0aGlzLmRwLnJlbW92ZUV2ZW50TGlzdGVuZXIoImRibGNsaWNrIix0aGlzLmlwKX0sdGhpcy5kcC5hZGRFdmVudExpc3RlbmVyKCJkYmxjbGljayIsdGhpcy5pcCkpLHRoaXMuZHAuYWRkRXZlbnRMaXN0ZW5lcigibW91c2VsZWF2ZSIsdGhpcy5OcC5iaW5kKHRoaXMpKSx0aGlzLmRwLmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoc3RhcnQiLHRoaXMuQnAuYmluZCh0aGlzKSx7cGFzc2l2ZTohMH0pLGZ1bmN0aW9uKHQpe2FzJiZ2b2lkIDAhPT13aW5kb3cuY2hyb21lJiZ0LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsKHQ9PntpZigxPT09dC5idXR0b24pcmV0dXJuIHQucHJldmVudERlZmF1bHQoKSwhMX0pKX0odGhpcy5kcCksdGhpcy5kcC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWRvd24iLHRoaXMuTHAuYmluZCh0aGlzKSksdGhpcy5GcCgpLHRoaXMuZHAuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2htb3ZlIiwoKCk9Pnt9KSx7cGFzc2l2ZTohMX0pfUZwKCl7dm9pZCAwPT09dGhpcy5scC5XcCYmdm9pZCAwPT09dGhpcy5scC5IcCYmdm9pZCAwPT09dGhpcy5scC5VcHx8KHRoaXMuZHAuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hzdGFydCIsKHQ9PnRoaXMuJHAodC50b3VjaGVzKSkse3Bhc3NpdmU6ITB9KSx0aGlzLmRwLmFkZEV2ZW50TGlzdGVuZXIoInRvdWNobW92ZSIsKHQ9PntpZigyPT09dC50b3VjaGVzLmxlbmd0aCYmbnVsbCE9PXRoaXMuamYmJnZvaWQgMCE9PXRoaXMubHAuSHApe2NvbnN0IGk9cHModC50b3VjaGVzWzBdLHQudG91Y2hlc1sxXSkvdGhpcy5xZjt0aGlzLmxwLkhwKHRoaXMuamYsaSksZ3ModCl9fSkse3Bhc3NpdmU6ITF9KSx0aGlzLmRwLmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoZW5kIiwodD0+e3RoaXMuJHAodC50b3VjaGVzKX0pKSl9JHAodCl7MT09PXQubGVuZ3RoJiYodGhpcy5ZZj0hMSksMiE9PXQubGVuZ3RofHx0aGlzLllmfHx0aGlzLkJmP3RoaXMuanAoKTp0aGlzLnFwKHQpfXFwKHQpe2NvbnN0IGk9dGhpcy5kcC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKXx8e2xlZnQ6MCx0b3A6MH07dGhpcy5qZj17X3Q6KHRbMF0uY2xpZW50WC1pLmxlZnQrKHRbMV0uY2xpZW50WC1pLmxlZnQpKS8yLHV0Oih0WzBdLmNsaWVudFktaS50b3ArKHRbMV0uY2xpZW50WS1pLnRvcCkpLzJ9LHRoaXMucWY9cHModFswXSx0WzFdKSx2b2lkIDAhPT10aGlzLmxwLldwJiZ0aGlzLmxwLldwKCksdGhpcy5wcCgpfWpwKCl7bnVsbCE9PXRoaXMuamYmJih0aGlzLmpmPW51bGwsdm9pZCAwIT09dGhpcy5scC5VcCYmdGhpcy5scC5VcCgpKX1OcCh0KXtpZih0aGlzLkhmJiZ0aGlzLkhmKCksdGhpcy5ucCh0KSlyZXR1cm47aWYoIXRoaXMuSmYpcmV0dXJuO2NvbnN0IGk9dGhpcy5zcCh0KTt0aGlzLl9wKGksdGhpcy5scC5ZcCksdGhpcy5KZj0hY3MoKX1FcCh0KXtjb25zdCBpPXdzKHQudG91Y2hlcyxkKHRoaXMuWGYpKTtpZihudWxsPT09aSlyZXR1cm47Y29uc3Qgcz10aGlzLnNwKHQsaSk7dGhpcy5ocChzLHRoaXMubHAuS3ApLHRoaXMuT2Y9ITAsdGhpcy5CZj0hMH1ucCh0KXtyZXR1cm4gdC5zb3VyY2VDYXBhYmlsaXRpZXMmJnZvaWQgMCE9PXQuc291cmNlQ2FwYWJpbGl0aWVzLmZpcmVzVG91Y2hFdmVudHM/dC5zb3VyY2VDYXBhYmlsaXRpZXMuZmlyZXNUb3VjaEV2ZW50czpicyh0KTx0aGlzLkdmKzUwMH1ocCh0LGkpe2kmJmkuY2FsbCh0aGlzLmxwLHQpfV9wKHQsaSl7aSYmaS5jYWxsKHRoaXMubHAsdCl9c3AodCxpKXtjb25zdCBzPWl8fHQsZT10aGlzLmRwLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpfHx7bGVmdDowLHRvcDowfTtyZXR1cm57Y2xpZW50WDpzLmNsaWVudFgsY2xpZW50WTpzLmNsaWVudFkscGFnZVg6cy5wYWdlWCxwYWdlWTpzLnBhZ2VZLHNjcmVlblg6cy5zY3JlZW5YLHNjcmVlblk6cy5zY3JlZW5ZLGxvY2FsWDpzLmNsaWVudFgtZS5sZWZ0LGxvY2FsWTpzLmNsaWVudFktZS50b3AsY3RybEtleTp0LmN0cmxLZXksYWx0S2V5OnQuYWx0S2V5LHNoaWZ0S2V5OnQuc2hpZnRLZXksbWV0YUtleTp0Lm1ldGFLZXksWnA6IXQudHlwZS5zdGFydHNXaXRoKCJtb3VzZSIpJiYiY29udGV4dG1lbnUiIT09dC50eXBlJiYiY2xpY2siIT09dC50eXBlLEdwOnQudHlwZSxYcDpzLnRhcmdldCxndTp0LnZpZXcsSnA6KCk9PnsidG91Y2hzdGFydCIhPT10LnR5cGUmJmdzKHQpfX19fWZ1bmN0aW9uIHBzKHQsaSl7Y29uc3Qgcz10LmNsaWVudFgtaS5jbGllbnRYLGU9dC5jbGllbnRZLWkuY2xpZW50WTtyZXR1cm4gTWF0aC5zcXJ0KHMqcytlKmUpfWZ1bmN0aW9uIGdzKHQpe3QuY2FuY2VsYWJsZSYmdC5wcmV2ZW50RGVmYXVsdCgpfWZ1bmN0aW9uIHZzKHQpe3JldHVybntfdDp0LnBhZ2VYLHV0OnQucGFnZVl9fWZ1bmN0aW9uIGJzKHQpe3JldHVybiB0LnRpbWVTdGFtcHx8cGVyZm9ybWFuY2Uubm93KCl9ZnVuY3Rpb24gd3ModCxpKXtmb3IobGV0IHM9MDtzPHQubGVuZ3RoOysrcylpZih0W3NdLmlkZW50aWZpZXI9PT1pKXJldHVybiB0W3NdO3JldHVybiBudWxsfWNsYXNzIE1ze2NvbnN0cnVjdG9yKHQsaSxzKXt0aGlzLlFwPW51bGwsdGhpcy50dj1udWxsLHRoaXMuaXY9ITAsdGhpcy5udj1udWxsLHRoaXMuc3Y9dCx0aGlzLmV2PXQucnYoKVtpXSx0aGlzLmh2PXQucnYoKVtzXSx0aGlzLmF2PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRyIiksdGhpcy5hdi5zdHlsZS5oZWlnaHQ9IjFweCIsdGhpcy5sdj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0ZCIpLHRoaXMubHYuc3R5bGUucG9zaXRpb249InJlbGF0aXZlIix0aGlzLmx2LnN0eWxlLnBhZGRpbmc9IjAiLHRoaXMubHYuc3R5bGUubWFyZ2luPSIwIix0aGlzLmx2LnNldEF0dHJpYnV0ZSgiY29sc3BhbiIsIjMiKSx0aGlzLm92KCksdGhpcy5hdi5hcHBlbmRDaGlsZCh0aGlzLmx2KSx0aGlzLml2PXRoaXMuc3YuTigpLmxheW91dC5wYW5lcy5lbmFibGVSZXNpemUsdGhpcy5pdj90aGlzLl92KCk6KHRoaXMuUXA9bnVsbCx0aGlzLnR2PW51bGwpfW0oKXtudWxsIT09dGhpcy50diYmdGhpcy50di5tKCl9dXYoKXtyZXR1cm4gdGhpcy5hdn1jdigpe3JldHVybiBlLnNpemUoe3dpZHRoOnRoaXMuZXYuY3YoKS53aWR0aCxoZWlnaHQ6MQp9KX1kdigpe3JldHVybiBlLnNpemUoe3dpZHRoOnRoaXMuZXYuZHYoKS53aWR0aCxoZWlnaHQ6MSp3aW5kb3cuZGV2aWNlUGl4ZWxSYXRpb30pfWZ2KHQsaSxzKXtjb25zdCBlPXRoaXMuZHYoKTt0LmZpbGxTdHlsZT10aGlzLnN2Lk4oKS5sYXlvdXQucGFuZXMuc2VwYXJhdG9yQ29sb3IsdC5maWxsUmVjdChpLHMsZS53aWR0aCxlLmhlaWdodCl9a3QoKXt0aGlzLm92KCksdGhpcy5zdi5OKCkubGF5b3V0LnBhbmVzLmVuYWJsZVJlc2l6ZSE9PXRoaXMuaXYmJih0aGlzLml2PXRoaXMuc3YuTigpLmxheW91dC5wYW5lcy5lbmFibGVSZXNpemUsdGhpcy5pdj90aGlzLl92KCk6KG51bGwhPT10aGlzLlFwJiYodGhpcy5sdi5yZW1vdmVDaGlsZCh0aGlzLlFwLnB2KSx0aGlzLmx2LnJlbW92ZUNoaWxkKHRoaXMuUXAudnYpLHRoaXMuUXA9bnVsbCksbnVsbCE9PXRoaXMudHYmJih0aGlzLnR2Lm0oKSx0aGlzLnR2PW51bGwpKSl9X3YoKXtjb25zdCB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLGk9dC5zdHlsZTtpLnBvc2l0aW9uPSJmaXhlZCIsaS5kaXNwbGF5PSJub25lIixpLnpJbmRleD0iNDkiLGkudG9wPSIwIixpLmxlZnQ9IjAiLGkud2lkdGg9IjEwMCUiLGkuaGVpZ2h0PSIxMDAlIixpLmN1cnNvcj0icm93LXJlc2l6ZSIsdGhpcy5sdi5hcHBlbmRDaGlsZCh0KTtjb25zdCBzPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLGU9cy5zdHlsZTtlLnBvc2l0aW9uPSJhYnNvbHV0ZSIsZS56SW5kZXg9IjUwIixlLnRvcD0iLTRweCIsZS5oZWlnaHQ9IjlweCIsZS53aWR0aD0iMTAwJSIsZS5iYWNrZ3JvdW5kQ29sb3I9IiIsZS5jdXJzb3I9InJvdy1yZXNpemUiLHRoaXMubHYuYXBwZW5kQ2hpbGQocyk7Y29uc3QgaD17d3A6dGhpcy5tdi5iaW5kKHRoaXMpLFlwOnRoaXMud3YuYmluZCh0aGlzKSx6cDp0aGlzLk12LmJpbmQodGhpcyksQXA6dGhpcy5Ndi5iaW5kKHRoaXMpLFBwOnRoaXMuZ3YuYmluZCh0aGlzKSx5cDp0aGlzLmd2LmJpbmQodGhpcyksSXA6dGhpcy5idi5iaW5kKHRoaXMpLFJwOnRoaXMuYnYuYmluZCh0aGlzKX07dGhpcy50dj1uZXcgbXMocyxoLHt4cDooKT0+ITEsQ3A6KCk9PiEwfSksdGhpcy5RcD17dnY6cyxwdjp0fX1vdigpe3RoaXMubHYuc3R5bGUuYmFja2dyb3VuZD10aGlzLnN2Lk4oKS5sYXlvdXQucGFuZXMuc2VwYXJhdG9yQ29sb3J9bXYodCl7bnVsbCE9PXRoaXMuUXAmJih0aGlzLlFwLnZ2LnN0eWxlLmJhY2tncm91bmRDb2xvcj10aGlzLnN2Lk4oKS5sYXlvdXQucGFuZXMuc2VwYXJhdG9ySG92ZXJDb2xvcil9d3YodCl7bnVsbCE9PXRoaXMuUXAmJm51bGw9PT10aGlzLm52JiYodGhpcy5RcC52di5zdHlsZS5iYWNrZ3JvdW5kQ29sb3I9IiIpfU12KHQpe2lmKG51bGw9PT10aGlzLlFwKXJldHVybjtjb25zdCBpPXRoaXMuZXYuU3YoKS56XygpK3RoaXMuaHYuU3YoKS56XygpLHM9aS8odGhpcy5ldi5jdigpLmhlaWdodCt0aGlzLmh2LmN2KCkuaGVpZ2h0KSxlPTMwKnM7aTw9MiplfHwodGhpcy5udj17eHY6dC5wYWdlWSxDdjp0aGlzLmV2LlN2KCkuel8oKSx5djppLWUsa3Y6aSxQdjpzLFR2OmV9LHRoaXMuUXAucHYuc3R5bGUuZGlzcGxheT0iYmxvY2siKX1ndih0KXtjb25zdCBpPXRoaXMubnY7aWYobnVsbD09PWkpcmV0dXJuO2NvbnN0IHM9KHQucGFnZVktaS54dikqaS5QdixlPWlpKGkuQ3YrcyxpLlR2LGkueXYpO3RoaXMuZXYuU3YoKS5PXyhlKSx0aGlzLmh2LlN2KCkuT18oaS5rdi1lKSx0aGlzLnN2LlF0KCkuUGEoKX1idih0KXtudWxsIT09dGhpcy5udiYmbnVsbCE9PXRoaXMuUXAmJih0aGlzLm52PW51bGwsdGhpcy5RcC5wdi5zdHlsZS5kaXNwbGF5PSJub25lIil9fWZ1bmN0aW9uIFNzKHQsaSl7cmV0dXJuIHQuUnYtaS5Sdn1mdW5jdGlvbiB5cyh0LGkscyl7Y29uc3QgZT0odC5Sdi1pLlJ2KS8odC53dC1pLnd0KTtyZXR1cm4gTWF0aC5zaWduKGUpKk1hdGgubWluKE1hdGguYWJzKGUpLHMpfWNsYXNzIHhze2NvbnN0cnVjdG9yKHQsaSxzLGUpe3RoaXMuRHY9bnVsbCx0aGlzLkl2PW51bGwsdGhpcy5Wdj1udWxsLHRoaXMuQnY9bnVsbCx0aGlzLkV2PW51bGwsdGhpcy5Bdj0wLHRoaXMuTHY9MCx0aGlzLnp2PXQsdGhpcy5Pdj1pLHRoaXMuTnY9cyx0aGlzLmtzPWV9RnYodCxpKXtpZihudWxsIT09dGhpcy5Edil7aWYodGhpcy5Edi53dD09PWkpcmV0dXJuIHZvaWQodGhpcy5Edi5Sdj10KTtpZihNYXRoLmFicyh0aGlzLkR2LlJ2LXQpPHRoaXMua3MpcmV0dXJufXRoaXMuQnY9dGhpcy5Wdix0aGlzLlZ2PXRoaXMuSXYsdGhpcy5Jdj10aGlzLkR2LHRoaXMuRHY9e3d0OmksUnY6dH19bWUodCxpKXtpZihudWxsPT09dGhpcy5Ednx8bnVsbD09PXRoaXMuSXYpcmV0dXJuO2lmKGktdGhpcy5Edi53dD41MClyZXR1cm47bGV0IHM9MDtjb25zdCBlPXlzKHRoaXMuRHYsdGhpcy5Jdix0aGlzLk92KSxoPVNzKHRoaXMuRHYsdGhpcy5Jdiksbj1bZV0scj1baF07aWYocys9aCxudWxsIT09dGhpcy5Wdil7Y29uc3QgdD15cyh0aGlzLkl2LHRoaXMuVnYsdGhpcy5Pdik7aWYoTWF0aC5zaWduKHQpPT09TWF0aC5zaWduKGUpKXtjb25zdCBpPVNzKHRoaXMuSXYsdGhpcy5Wdik7aWYobi5wdXNoKHQpLHIucHVzaChpKSxzKz1pLG51bGwhPT10aGlzLkJ2KXtjb25zdCB0PXlzKHRoaXMuVnYsdGhpcy5Cdix0aGlzLk92KTtpZihNYXRoLnNpZ24odCk9PT1NYXRoLnNpZ24oZSkpe2NvbnN0IGk9U3ModGhpcy5Wdix0aGlzLkJ2KTtuLnB1c2godCksci5wdXNoKGkpLHMrPWl9fX19bGV0IG89MDtmb3IobGV0IHQ9MDt0PG4ubGVuZ3RoOysrdClvKz1yW3RdL3Mqblt0XTtNYXRoLmFicyhvKTx0aGlzLnp2fHwodGhpcy5Fdj17UnY6dCx3dDppfSx0aGlzLkx2PW8sdGhpcy5Bdj1mdW5jdGlvbih0LGkpe2NvbnN0IHM9TWF0aC5sb2coaSk7cmV0dXJuIE1hdGgubG9nKDEqcy8tdCkvc30oTWF0aC5hYnMobyksdGhpcy5OdikpfXFjKHQpe2NvbnN0IGk9ZCh0aGlzLkV2KSxzPXQtaS53dDtyZXR1cm4gaS5Sdit0aGlzLkx2KihNYXRoLnBvdyh0aGlzLk52LHMpLTEpL01hdGgubG9nKHRoaXMuTnYpfWpjKHQpe3JldHVybiBudWxsPT09dGhpcy5Fdnx8dGhpcy5Xdih0KT09PXRoaXMuQXYKfVd2KHQpe2NvbnN0IGk9dC1kKHRoaXMuRXYpLnd0O3JldHVybiBNYXRoLm1pbihpLHRoaXMuQXYpfX1jbGFzcyBfc3tjb25zdHJ1Y3Rvcih0LGkpe3RoaXMuSHY9dm9pZCAwLHRoaXMuVXY9dm9pZCAwLHRoaXMuJHY9dm9pZCAwLHRoaXMudm49ITEsdGhpcy5qdj10LHRoaXMucXY9aSx0aGlzLll2KCl9a3QoKXt0aGlzLll2KCl9S3YoKXt0aGlzLkh2JiZ0aGlzLmp2LnJlbW92ZUNoaWxkKHRoaXMuSHYpLHRoaXMuVXYmJnRoaXMuanYucmVtb3ZlQ2hpbGQodGhpcy5VdiksdGhpcy5Idj12b2lkIDAsdGhpcy5Vdj12b2lkIDB9WnYoKXtyZXR1cm4gdGhpcy52biE9PXRoaXMuR3YoKXx8dGhpcy4kdiE9PXRoaXMuWHYoKX1Ydigpe3JldHVybiB0aGlzLnF2LlF0KCkuWGkoKS5KKHRoaXMucXYuTigpLmxheW91dC50ZXh0Q29sb3IpPjE2MD8iZGFyayI6ImxpZ2h0In1Hdigpe3JldHVybiB0aGlzLnF2Lk4oKS5sYXlvdXQuYXR0cmlidXRpb25Mb2dvfUp2KCl7Y29uc3QgdD1uZXcgVVJMKGxvY2F0aW9uLmhyZWYpO3JldHVybiB0Lmhvc3RuYW1lPyImdXRtX3NvdXJjZT0iK3QuaG9zdG5hbWUrdC5wYXRobmFtZToiIn1Zdigpe3RoaXMuWnYoKSYmKHRoaXMuS3YoKSx0aGlzLnZuPXRoaXMuR3YoKSx0aGlzLnZuJiYodGhpcy4kdj10aGlzLlh2KCksdGhpcy5Vdj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzdHlsZSIpLHRoaXMuVXYuaW5uZXJUZXh0PSJhI3R2LWF0dHItbG9nb3stLWZpbGw6IzEzMTcyMjstLXN0cm9rZTojZmZmO3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MTBweDtib3R0b206MTBweDtoZWlnaHQ6MTlweDt3aWR0aDozNXB4O21hcmdpbjowO3BhZGRpbmc6MDtib3JkZXI6MDt6LWluZGV4OjM7fWEjdHYtYXR0ci1sb2dvW2RhdGEtZGFya117LS1maWxsOiNEMUQ0REM7LS1zdHJva2U6IzEzMTcyMjt9Iix0aGlzLkh2PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImEiKSx0aGlzLkh2LmhyZWY9YGh0dHBzOi8vd3d3LnRyYWRpbmd2aWV3LmNvbS8/dXRtX21lZGl1bT1sd2MtbGluayZ1dG1fY2FtcGFpZ249bHdjLWNoYXJ0JHt0aGlzLkp2KCl9YCx0aGlzLkh2LnRpdGxlPSJDaGFydGluZyBieSBUcmFkaW5nVmlldyIsdGhpcy5Idi5pZD0idHYtYXR0ci1sb2dvIix0aGlzLkh2LnRhcmdldD0iX2JsYW5rIix0aGlzLkh2LmlubmVySFRNTD0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzNSIgaGVpZ2h0PSIxOSIgZmlsbD0ibm9uZSI+PGcgZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXBhdGg9InVybCgjYSkiIGNsaXAtcnVsZT0iZXZlbm9kZCI+PHBhdGggZmlsbD0idmFyKC0tc3Ryb2tlKSIgZD0iTTIgMEgwdjEwaDZ2OWgyMS40bC41LTEuMyA2LTE1IDEtMi43SDIzLjdsLS41IDEuMy0uMi42YTUgNSAwIDAgMC03LS45VjBIMlptMjAgMTdoNGw1LjItMTMgLjgtMmgtN2wtMSAyLjUtLjIuNS0xLjUgMy44LS4zLjdWMTdabS0uOC0xMGEzIDMgMCAwIDAgLjctMi43QTMgMyAwIDEgMCAxNi44IDdoNC40Wk0xNCA3VjJIMnY2aDZ2OWg0VjdoMloiLz48cGF0aCBmaWxsPSJ2YXIoLS1maWxsKSIgZD0iTTE0IDJIMnY2aDZ2OWg2VjJabTEyIDE1aC03bDYtMTVoN2wtNiAxNVptLTctOWEzIDMgMCAxIDAgMC02IDMgMyAwIDAgMCAwIDZaIi8+PC9nPjxkZWZzPjxjbGlwUGF0aCBpZD0iYSI+PHBhdGggZmlsbD0idmFyKC0tc3Ryb2tlKSIgZD0iTTAgMGgzNXYxOUgweiIvPjwvY2xpcFBhdGg+PC9kZWZzPjwvc3ZnPicsdGhpcy5Idi50b2dnbGVBdHRyaWJ1dGUoImRhdGEtZGFyayIsImRhcmsiPT09dGhpcy4kdiksdGhpcy5qdi5hcHBlbmRDaGlsZCh0aGlzLlV2KSx0aGlzLmp2LmFwcGVuZENoaWxkKHRoaXMuSHYpKSl9fWZ1bmN0aW9uIENzKHQsaSl7Y29uc3Qgcz1kKHQub3duZXJEb2N1bWVudCkuY3JlYXRlRWxlbWVudCgiY2FudmFzIik7dC5hcHBlbmRDaGlsZChzKTtjb25zdCBoPSgwLGUuYmluZENhbnZhc0VsZW1lbnRCaXRtYXBTaXplVG8pKHMse3R5cGU6ImRldmljZS1waXhlbC1jb250ZW50LWJveCIsb3B0aW9uczp7YWxsb3dSZXNpemVPYnNlcnZlcjohMH0sdHJhbnNmb3JtOih0LGkpPT4oe3dpZHRoOk1hdGgubWF4KHQud2lkdGgsaS53aWR0aCksaGVpZ2h0Ok1hdGgubWF4KHQuaGVpZ2h0LGkuaGVpZ2h0KX0pfSk7cmV0dXJuIGgucmVzaXplQ2FudmFzRWxlbWVudChpKSxofWZ1bmN0aW9uIFRzKHQpe3Qud2lkdGg9MSx0LmhlaWdodD0xLHQuZ2V0Q29udGV4dCgiMmQiKT8uY2xlYXJSZWN0KDAsMCwxLDEpfWZ1bmN0aW9uIGtzKHQsaSxzLGUpe3QucWgmJnQucWgoaSxzLGUpfWZ1bmN0aW9uIEVzKHQsaSxzLGUpe3Quc3QoaSxzLGUpfWZ1bmN0aW9uIE5zKHQsaSxzLGUpe2NvbnN0IGg9dChzLGUpO2Zvcihjb25zdCB0IG9mIGgpe2NvbnN0IHM9dC5UdChlKTtudWxsIT09cyYmaShzKX19ZnVuY3Rpb24genModCxpKXtyZXR1cm4gcz0+ZnVuY3Rpb24odCl7cmV0dXJuIHZvaWQgMCE9PXQuRnR9KHMpPyhzLkZ0KCk/LmNsKCk/PyIiKSE9PWk/W106cy5HYT8uKHQpPz9bXTpbXX1mdW5jdGlvbiBQcyh0LGkscyxlKXtpZighdC5sZW5ndGgpcmV0dXJuO2xldCBoPTA7Y29uc3Qgbj10WzBdLiR0KGUsITApO2xldCByPTE9PT1pP3MvMi0odFswXS5IaSgpLW4vMik6dFswXS5IaSgpLW4vMi1zLzI7cj1NYXRoLm1heCgwLHIpO2ZvcihsZXQgbj0xO248dC5sZW5ndGg7bisrKXtjb25zdCBvPXRbbl0sbD10W24tMV0sYT1sLiR0KGUsITEpLHU9by5IaSgpLGM9bC5IaSgpO2lmKDE9PT1pP3U+Yy1hOnU8YythKXtjb25zdCBlPWMtYSppO28uVWkoZSk7Y29uc3Qgbj1lLWkqYS8yO2lmKCgxPT09aT9uPDA6bj5zKSYmcj4wKXtjb25zdCBlPTE9PT1pPy0xLW46bi1zLG89TWF0aC5taW4oZSxyKTtmb3IobGV0IHM9aDtzPHQubGVuZ3RoO3MrKyl0W3NdLlVpKHRbc10uSGkoKStpKm8pO3ItPW99fWVsc2UgaD1uLHI9MT09PWk/Yy1hLXU6dS0oYythKX19Y2xhc3MgcXN7Y29uc3RydWN0b3IodCxpLHMsaCl7dGhpcy5LaT1udWxsLHRoaXMuUXY9bnVsbCx0aGlzLnRtPSExLHRoaXMuaW09bmV3IG50KDIwMCksdGhpcy5ubT1udWxsLHRoaXMuc209MCx0aGlzLnJtPSExLHRoaXMuaG09KCk9PnsKdGhpcy5ybXx8dGhpcy55dC5hbSgpLlF0KCkubXIoKX0sdGhpcy5sbT0oKT0+e3RoaXMucm18fHRoaXMueXQuYW0oKS5RdCgpLm1yKCl9LHRoaXMueXQ9dCx0aGlzLnluPWksdGhpcy5rbz1pLmxheW91dCx0aGlzLndkPXMsdGhpcy5vbT0ibGVmdCI9PT1oLHRoaXMuX209enMoIm5vcm1hbCIsaCksdGhpcy51bT16cygidG9wIixoKSx0aGlzLmRtPXpzKCJib3R0b20iLGgpLHRoaXMubHY9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksdGhpcy5sdi5zdHlsZS5oZWlnaHQ9IjEwMCUiLHRoaXMubHYuc3R5bGUub3ZlcmZsb3c9ImhpZGRlbiIsdGhpcy5sdi5zdHlsZS53aWR0aD0iMjVweCIsdGhpcy5sdi5zdHlsZS5sZWZ0PSIwIix0aGlzLmx2LnN0eWxlLnBvc2l0aW9uPSJyZWxhdGl2ZSIsdGhpcy5mbT1Dcyh0aGlzLmx2LGUuc2l6ZSh7d2lkdGg6MTYsaGVpZ2h0OjE2fSkpLHRoaXMuZm0uc3Vic2NyaWJlU3VnZ2VzdGVkQml0bWFwU2l6ZUNoYW5nZWQodGhpcy5obSk7Y29uc3Qgbj10aGlzLmZtLmNhbnZhc0VsZW1lbnQ7bi5zdHlsZS5wb3NpdGlvbj0iYWJzb2x1dGUiLG4uc3R5bGUuekluZGV4PSIxIixuLnN0eWxlLmxlZnQ9IjAiLG4uc3R5bGUudG9wPSIwIix0aGlzLnBtPUNzKHRoaXMubHYsZS5zaXplKHt3aWR0aDoxNixoZWlnaHQ6MTZ9KSksdGhpcy5wbS5zdWJzY3JpYmVTdWdnZXN0ZWRCaXRtYXBTaXplQ2hhbmdlZCh0aGlzLmxtKTtjb25zdCByPXRoaXMucG0uY2FudmFzRWxlbWVudDtyLnN0eWxlLnBvc2l0aW9uPSJhYnNvbHV0ZSIsci5zdHlsZS56SW5kZXg9IjIiLHIuc3R5bGUubGVmdD0iMCIsci5zdHlsZS50b3A9IjAiO2NvbnN0IG89e3pwOnRoaXMuTXYuYmluZCh0aGlzKSxBcDp0aGlzLk12LmJpbmQodGhpcyksUHA6dGhpcy5ndi5iaW5kKHRoaXMpLHlwOnRoaXMuZ3YuYmluZCh0aGlzKSxPcDp0aGlzLnZtLmJpbmQodGhpcyksSXA6dGhpcy5idi5iaW5kKHRoaXMpLFJwOnRoaXMuYnYuYmluZCh0aGlzKSx1cDp0aGlzLndtLmJpbmQodGhpcyksYXA6dGhpcy53bS5iaW5kKHRoaXMpLHdwOnRoaXMuTW0uYmluZCh0aGlzKSxZcDp0aGlzLnd2LmJpbmQodGhpcyl9O3RoaXMudHY9bmV3IG1zKHRoaXMucG0uY2FudmFzRWxlbWVudCxvLHt4cDooKT0+IXRoaXMueW4uaGFuZGxlU2Nyb2xsLnZlcnRUb3VjaERyYWcsQ3A6KCk9PiEwfSl9bSgpe3RoaXMudHYubSgpLHRoaXMucG0udW5zdWJzY3JpYmVTdWdnZXN0ZWRCaXRtYXBTaXplQ2hhbmdlZCh0aGlzLmxtKSxUcyh0aGlzLnBtLmNhbnZhc0VsZW1lbnQpLHRoaXMucG0uZGlzcG9zZSgpLHRoaXMuZm0udW5zdWJzY3JpYmVTdWdnZXN0ZWRCaXRtYXBTaXplQ2hhbmdlZCh0aGlzLmhtKSxUcyh0aGlzLmZtLmNhbnZhc0VsZW1lbnQpLHRoaXMuZm0uZGlzcG9zZSgpLG51bGwhPT10aGlzLktpJiZ0aGlzLktpLmFfKCkudSh0aGlzKSx0aGlzLktpPW51bGx9dXYoKXtyZXR1cm4gdGhpcy5sdn1rKCl7cmV0dXJuIHRoaXMua28uZm9udFNpemV9Z20oKXtjb25zdCB0PXRoaXMud2QuTigpO3JldHVybiB0aGlzLm5tIT09dC5QJiYodGhpcy5pbS5PcygpLHRoaXMubm09dC5QKSx0fWJtKCl7aWYobnVsbD09PXRoaXMuS2kpcmV0dXJuIDA7bGV0IHQ9MDtjb25zdCBpPXRoaXMuZ20oKSxzPWQodGhpcy5mbS5jYW52YXNFbGVtZW50LmdldENvbnRleHQoIjJkIix7Y29sb3JTcGFjZTp0aGlzLnl0LmFtKCkuTigpLmxheW91dC5jb2xvclNwYWNlfSkpO3Muc2F2ZSgpO2NvbnN0IGU9dGhpcy5LaS5FbCgpO3MuZm9udD10aGlzLlNtKCksZS5sZW5ndGg+MCYmKHQ9TWF0aC5tYXgodGhpcy5pbS5JaShzLGVbMF0uaW8pLHRoaXMuaW0uSWkocyxlW2UubGVuZ3RoLTFdLmlvKSkpO2NvbnN0IGg9dGhpcy54bSgpO2ZvcihsZXQgaT1oLmxlbmd0aDtpLS07KXtjb25zdCBlPXRoaXMuaW0uSWkocyxoW2ldLnJpKCkpO2U+dCYmKHQ9ZSl9Y29uc3Qgbj10aGlzLktpLkx0KCk7aWYobnVsbCE9PW4mJm51bGwhPT10aGlzLlF2JiYyIT09KHI9dGhpcy55bi5jcm9zc2hhaXIpLm1vZGUmJnIuaG9yekxpbmUudmlzaWJsZSYmci5ob3J6TGluZS5sYWJlbFZpc2libGUpe2NvbnN0IGk9dGhpcy5LaS5UbigxLG4pLGU9dGhpcy5LaS5Ubih0aGlzLlF2LmhlaWdodC0yLG4pO3Q9TWF0aC5tYXgodCx0aGlzLmltLklpKHMsdGhpcy5LaS5KaShNYXRoLmZsb29yKE1hdGgubWluKGksZSkpKy4xMTExMTExMTExMTExMSxuKSksdGhpcy5pbS5JaShzLHRoaXMuS2kuSmkoTWF0aC5jZWlsKE1hdGgubWF4KGksZSkpLS4xMTExMTExMTExMTExMSxuKSkpfXZhciByO3MucmVzdG9yZSgpO2NvbnN0IG89dHx8MzQ7cmV0dXJuIGZzKE1hdGguY2VpbChpLlMraS5DK2kuVitpLkIrNStvKSl9Q20odCl7bnVsbCE9PXRoaXMuUXYmJigwLGUuZXF1YWxTaXplcykodGhpcy5Rdix0KXx8KHRoaXMuUXY9dCx0aGlzLnJtPSEwLHRoaXMuZm0ucmVzaXplQ2FudmFzRWxlbWVudCh0KSx0aGlzLnBtLnJlc2l6ZUNhbnZhc0VsZW1lbnQodCksdGhpcy5ybT0hMSx0aGlzLmx2LnN0eWxlLndpZHRoPWAke3Qud2lkdGh9cHhgLHRoaXMubHYuc3R5bGUuaGVpZ2h0PWAke3QuaGVpZ2h0fXB4YCl9eW0oKXtyZXR1cm4gZCh0aGlzLlF2KS53aWR0aH11bih0KXt0aGlzLktpIT09dCYmKG51bGwhPT10aGlzLktpJiZ0aGlzLktpLmFfKCkudSh0aGlzKSx0aGlzLktpPXQsdC5hXygpLmkodGhpcy5wby5iaW5kKHRoaXMpLHRoaXMpKX1GdCgpe3JldHVybiB0aGlzLktpfU9zKCl7Y29uc3QgdD10aGlzLnl0LlN2KCk7dGhpcy55dC5hbSgpLlF0KCkuZXUodCxkKHRoaXMuRnQoKSkpfWttKHQpe2lmKG51bGw9PT10aGlzLlF2KXJldHVybjtjb25zdCBpPXtjb2xvclNwYWNlOnRoaXMueXQuYW0oKS5OKCkubGF5b3V0LmNvbG9yU3BhY2V9O2lmKDEhPT10KXt0aGlzLlBtKCksdGhpcy5mbS5hcHBseVN1Z2dlc3RlZEJpdG1hcFNpemUoKTtjb25zdCB0PSgwLGUudHJ5Q3JlYXRlQ2FudmFzUmVuZGVyaW5nVGFyZ2V0MkQpKHRoaXMuZm0saSk7bnVsbCE9PXQmJih0LnVzZUJpdG1hcENvb3JkaW5hdGVTcGFjZSgodD0+e3RoaXMuVG0odCksdGhpcy5SbSh0KX0pKSx0aGlzLnl0LkRtKHQsdGhpcy5kbSksdGhpcy5JbSh0KSwKdGhpcy55dC5EbSh0LHRoaXMuX20pLHRoaXMuVm0odCkpfXRoaXMucG0uYXBwbHlTdWdnZXN0ZWRCaXRtYXBTaXplKCk7Y29uc3Qgcz0oMCxlLnRyeUNyZWF0ZUNhbnZhc1JlbmRlcmluZ1RhcmdldDJEKSh0aGlzLnBtLGkpO251bGwhPT1zJiYocy51c2VCaXRtYXBDb29yZGluYXRlU3BhY2UoKCh7Y29udGV4dDp0LGJpdG1hcFNpemU6aX0pPT57dC5jbGVhclJlY3QoMCwwLGkud2lkdGgsaS5oZWlnaHQpfSkpLHRoaXMuQm0ocyksdGhpcy55dC5EbShzLHRoaXMudW0pKX1kdigpe3JldHVybiB0aGlzLmZtLmJpdG1hcFNpemV9ZnYodCxpLHMsZSl7Y29uc3QgaD10aGlzLmR2KCk7aWYoaC53aWR0aD4wJiZoLmhlaWdodD4wJiYodC5kcmF3SW1hZ2UodGhpcy5mbS5jYW52YXNFbGVtZW50LGkscyksZSkpe2NvbnN0IGU9dGhpcy5wbS5jYW52YXNFbGVtZW50O3QuZHJhd0ltYWdlKGUsaSxzKX19a3QoKXt0aGlzLktpPy5FbCgpfU12KHQpe2lmKG51bGw9PT10aGlzLktpfHx0aGlzLktpLkdpKCl8fCF0aGlzLnluLmhhbmRsZVNjYWxlLmF4aXNQcmVzc2VkTW91c2VNb3ZlLnByaWNlKXJldHVybjtjb25zdCBpPXRoaXMueXQuYW0oKS5RdCgpLHM9dGhpcy55dC5TdigpO3RoaXMudG09ITAsaS5HXyhzLHRoaXMuS2ksdC5sb2NhbFkpfWd2KHQpe2lmKG51bGw9PT10aGlzLktpfHwhdGhpcy55bi5oYW5kbGVTY2FsZS5heGlzUHJlc3NlZE1vdXNlTW92ZS5wcmljZSlyZXR1cm47Y29uc3QgaT10aGlzLnl0LmFtKCkuUXQoKSxzPXRoaXMueXQuU3YoKSxlPXRoaXMuS2k7aS5YXyhzLGUsdC5sb2NhbFkpfXZtKCl7aWYobnVsbD09PXRoaXMuS2l8fCF0aGlzLnluLmhhbmRsZVNjYWxlLmF4aXNQcmVzc2VkTW91c2VNb3ZlLnByaWNlKXJldHVybjtjb25zdCB0PXRoaXMueXQuYW0oKS5RdCgpLGk9dGhpcy55dC5TdigpLHM9dGhpcy5LaTt0aGlzLnRtJiYodGhpcy50bT0hMSx0LkpfKGkscykpfWJ2KHQpe2lmKG51bGw9PT10aGlzLktpfHwhdGhpcy55bi5oYW5kbGVTY2FsZS5heGlzUHJlc3NlZE1vdXNlTW92ZS5wcmljZSlyZXR1cm47Y29uc3QgaT10aGlzLnl0LmFtKCkuUXQoKSxzPXRoaXMueXQuU3YoKTt0aGlzLnRtPSExLGkuSl8ocyx0aGlzLktpKX13bSh0KXt0aGlzLnluLmhhbmRsZVNjYWxlLmF4aXNEb3VibGVDbGlja1Jlc2V0LnByaWNlJiZ0aGlzLk9zKCl9TW0odCl7bnVsbCE9PXRoaXMuS2kmJighdGhpcy55dC5hbSgpLlF0KCkuTigpLmhhbmRsZVNjYWxlLmF4aXNQcmVzc2VkTW91c2VNb3ZlLnByaWNlfHx0aGlzLktpLmplKCl8fHRoaXMuS2kuTG8oKXx8dGhpcy5FbSgxKSl9d3YodCl7dGhpcy5FbSgwKX14bSgpe2NvbnN0IHQ9W10saT1udWxsPT09dGhpcy5LaT92b2lkIDA6dGhpcy5LaTtyZXR1cm4ocz0+e2ZvcihsZXQgZT0wO2U8cy5sZW5ndGg7KytlKXtjb25zdCBoPXNbZV0ucW4odGhpcy55dC5TdigpLGkpO2ZvcihsZXQgaT0wO2k8aC5sZW5ndGg7aSsrKXQucHVzaChoW2ldKX19KSh0aGlzLnl0LlN2KCkuRHQoKSksdH1UbSh7Y29udGV4dDp0LGJpdG1hcFNpemU6aX0pe2NvbnN0e3dpZHRoOnMsaGVpZ2h0OmV9PWksaD10aGlzLnl0LlN2KCkuUXQoKSxuPWguJCgpLHI9aC5lZigpO249PT1yP1EodCwwLDAscyxlLG4pOksodCwwLDAscyxlLG4scil9Um0oe2NvbnRleHQ6dCxiaXRtYXBTaXplOmksaG9yaXpvbnRhbFBpeGVsUmF0aW86c30pe2lmKG51bGw9PT10aGlzLlF2fHxudWxsPT09dGhpcy5LaXx8IXRoaXMuS2kuTigpLmJvcmRlclZpc2libGUpcmV0dXJuO3QuZmlsbFN0eWxlPXRoaXMuS2kuTigpLmJvcmRlckNvbG9yO2NvbnN0IGU9TWF0aC5tYXgoMSxNYXRoLmZsb29yKHRoaXMuZ20oKS5TKnMpKTtsZXQgaDtoPXRoaXMub20/aS53aWR0aC1lOjAsdC5maWxsUmVjdChoLDAsZSxpLmhlaWdodCl9SW0odCl7aWYobnVsbD09PXRoaXMuUXZ8fG51bGw9PT10aGlzLktpKXJldHVybjtjb25zdCBpPXRoaXMuS2kuRWwoKSxzPXRoaXMuS2kuTigpLGU9dGhpcy5nbSgpLGg9dGhpcy5vbT90aGlzLlF2LndpZHRoLWUuQzowO3MuYm9yZGVyVmlzaWJsZSYmcy50aWNrc1Zpc2libGUmJnQudXNlQml0bWFwQ29vcmRpbmF0ZVNwYWNlKCgoe2NvbnRleHQ6dCxob3Jpem9udGFsUGl4ZWxSYXRpbzpuLHZlcnRpY2FsUGl4ZWxSYXRpbzpyfSk9Pnt0LmZpbGxTdHlsZT1zLmJvcmRlckNvbG9yO2NvbnN0IG89TWF0aC5tYXgoMSxNYXRoLmZsb29yKHIpKSxsPU1hdGguZmxvb3IoLjUqciksYT1NYXRoLnJvdW5kKGUuQypuKTt0LmJlZ2luUGF0aCgpO2Zvcihjb25zdCBzIG9mIGkpdC5yZWN0KE1hdGguZmxvb3IoaCpuKSxNYXRoLnJvdW5kKHMuUmwqciktbCxhLG8pO3QuZmlsbCgpfSkpLHQudXNlTWVkaWFDb29yZGluYXRlU3BhY2UoKCh7Y29udGV4dDp0fSk9Pnt0LmZvbnQ9dGhpcy5TbSgpLHQuZmlsbFN0eWxlPXMudGV4dENvbG9yPz90aGlzLmtvLnRleHRDb2xvcix0LnRleHRBbGlnbj10aGlzLm9tPyJyaWdodCI6ImxlZnQiLHQudGV4dEJhc2VsaW5lPSJtaWRkbGUiO2NvbnN0IG49dGhpcy5vbT9NYXRoLnJvdW5kKGgtZS5WKTpNYXRoLnJvdW5kKGgrZS5DK2UuVikscj1pLm1hcCgoaT0+dGhpcy5pbS5EaSh0LGkuaW8pKSk7Zm9yKGxldCBzPWkubGVuZ3RoO3MtLTspe2NvbnN0IGU9aVtzXTt0LmZpbGxUZXh0KGUuaW8sbixlLlJsK3Jbc10pfX0pKX1QbSgpe2lmKG51bGw9PT10aGlzLlF2fHxudWxsPT09dGhpcy5LaSlyZXR1cm47bGV0IHQ9dGhpcy5Rdi5oZWlnaHQvMjtjb25zdCBpPVtdLHM9dGhpcy5LaS5EdCgpLnNsaWNlKCksZT10aGlzLnl0LlN2KCksaD10aGlzLmdtKCk7dGhpcy5LaT09PWUuR3MoKSYmdGhpcy55dC5TdigpLkR0KCkuZm9yRWFjaCgodD0+e2UuWnModCkmJnMucHVzaCh0KX0pKTtjb25zdCBuPXRoaXMuS2kuQ2woKVswXSxyPXRoaXMuS2k7cy5mb3JFYWNoKChzPT57Y29uc3QgaD1zLnFuKGUscik7aC5mb3JFYWNoKCh0PT57dC4kaSgpJiZudWxsPT09dC5XaSgpJiYodC5VaShudWxsKSxpLnB1c2godCkpfSkpLG49PT1zJiZoLmxlbmd0aD4wJiYodD1oWzBdLkVpKCkpfSkpLHRoaXMuS2kuTigpLmFsaWduTGFiZWxzJiZ0aGlzLkFtKGksaCx0KX1BbSh0LGkscyl7CmlmKG51bGw9PT10aGlzLlF2KXJldHVybjtjb25zdCBlPXQuZmlsdGVyKCh0PT50LkVpKCk8PXMpKSxoPXQuZmlsdGVyKCh0PT50LkVpKCk+cykpO2Uuc29ydCgoKHQsaSk9PmkuRWkoKS10LkVpKCkpKSxlLmxlbmd0aCYmaC5sZW5ndGgmJmgucHVzaChlWzBdKSxoLnNvcnQoKCh0LGkpPT50LkVpKCktaS5FaSgpKSk7Zm9yKGNvbnN0IHMgb2YgdCl7Y29uc3QgdD1NYXRoLmZsb29yKHMuJHQoaSkvMiksZT1zLkVpKCk7ZT4tdCYmZTx0JiZzLlVpKHQpLGU+dGhpcy5Rdi5oZWlnaHQtdCYmZTx0aGlzLlF2LmhlaWdodCt0JiZzLlVpKHRoaXMuUXYuaGVpZ2h0LXQpfVBzKGUsMSx0aGlzLlF2LmhlaWdodCxpKSxQcyhoLC0xLHRoaXMuUXYuaGVpZ2h0LGkpfVZtKHQpe2lmKG51bGw9PT10aGlzLlF2KXJldHVybjtjb25zdCBpPXRoaXMueG0oKSxzPXRoaXMuZ20oKSxlPXRoaXMub20/InJpZ2h0IjoibGVmdCI7aS5mb3JFYWNoKChpPT57aS5qaSgpJiZpLlR0KGQodGhpcy5LaSkpLnN0KHQscyx0aGlzLmltLGUpfSkpfUJtKHQpe2lmKG51bGw9PT10aGlzLlF2fHxudWxsPT09dGhpcy5LaSlyZXR1cm47Y29uc3QgaT10aGlzLnl0LmFtKCkuUXQoKSxzPVtdLGU9dGhpcy55dC5TdigpLGg9aS5SZCgpLnFuKGUsdGhpcy5LaSk7aC5sZW5ndGgmJnMucHVzaChoKTtjb25zdCBuPXRoaXMuZ20oKSxyPXRoaXMub20/InJpZ2h0IjoibGVmdCI7cy5mb3JFYWNoKChpPT57aS5mb3JFYWNoKChpPT57aS5UdChkKHRoaXMuS2kpKS5zdCh0LG4sdGhpcy5pbSxyKX0pKX0pKX1FbSh0KXt0aGlzLmx2LnN0eWxlLmN1cnNvcj0xPT09dD8ibnMtcmVzaXplIjoiZGVmYXVsdCJ9cG8oKXtjb25zdCB0PXRoaXMuYm0oKTt0aGlzLnNtPHQmJnRoaXMueXQuYW0oKS5RdCgpLlBhKCksdGhpcy5zbT10fVNtKCl7cmV0dXJuIF8odGhpcy5rby5mb250U2l6ZSx0aGlzLmtvLmZvbnRGYW1pbHkpfX1mdW5jdGlvbiBMcyh0LGkpe3JldHVybiB0LkthPy4oaSk/P1tdfWZ1bmN0aW9uIElzKHQsaSl7cmV0dXJuIHQuam4/LihpKT8/W119ZnVuY3Rpb24gUnModCxpKXtyZXR1cm4gdC5jbj8uKGkpPz9bXX1mdW5jdGlvbiBGcyh0LGkpe3JldHVybiB0LmphPy4oaSk/P1tdfWNsYXNzIFdze2NvbnN0cnVjdG9yKHQsaSl7dGhpcy5Rdj1lLnNpemUoe3dpZHRoOjAsaGVpZ2h0OjB9KSx0aGlzLkxtPW51bGwsdGhpcy56bT1udWxsLHRoaXMuT209bnVsbCx0aGlzLk5tPW51bGwsdGhpcy5GbT0hMSx0aGlzLldtPW5ldyBtLHRoaXMuSG09bmV3IG0sdGhpcy5VbT0wLHRoaXMuJG09ITEsdGhpcy5qbT1udWxsLHRoaXMucW09ITEsdGhpcy5ZbT1udWxsLHRoaXMuS209bnVsbCx0aGlzLnJtPSExLHRoaXMuaG09KCk9Pnt0aGlzLnJtfHxudWxsPT09dGhpcy5abXx8dGhpcy5zbigpLm1yKCl9LHRoaXMubG09KCk9Pnt0aGlzLnJtfHxudWxsPT09dGhpcy5abXx8dGhpcy5zbigpLm1yKCl9LHRoaXMucXY9dCx0aGlzLlptPWksdGhpcy5abS5mdSgpLmkodGhpcy5HbS5iaW5kKHRoaXMpLHRoaXMsITApLHRoaXMuWG09ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidGQiKSx0aGlzLlhtLnN0eWxlLnBhZGRpbmc9IjAiLHRoaXMuWG0uc3R5bGUucG9zaXRpb249InJlbGF0aXZlIjtjb25zdCBzPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3Muc3R5bGUud2lkdGg9IjEwMCUiLHMuc3R5bGUuaGVpZ2h0PSIxMDAlIixzLnN0eWxlLnBvc2l0aW9uPSJyZWxhdGl2ZSIscy5zdHlsZS5vdmVyZmxvdz0iaGlkZGVuIix0aGlzLkptPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRkIiksdGhpcy5KbS5zdHlsZS5wYWRkaW5nPSIwIix0aGlzLlFtPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRkIiksdGhpcy5RbS5zdHlsZS5wYWRkaW5nPSIwIix0aGlzLlhtLmFwcGVuZENoaWxkKHMpLHRoaXMuZm09Q3MocyxlLnNpemUoe3dpZHRoOjE2LGhlaWdodDoxNn0pKSx0aGlzLmZtLnN1YnNjcmliZVN1Z2dlc3RlZEJpdG1hcFNpemVDaGFuZ2VkKHRoaXMuaG0pO2NvbnN0IGg9dGhpcy5mbS5jYW52YXNFbGVtZW50O2guc3R5bGUucG9zaXRpb249ImFic29sdXRlIixoLnN0eWxlLnpJbmRleD0iMSIsaC5zdHlsZS5sZWZ0PSIwIixoLnN0eWxlLnRvcD0iMCIsdGhpcy5wbT1DcyhzLGUuc2l6ZSh7d2lkdGg6MTYsaGVpZ2h0OjE2fSkpLHRoaXMucG0uc3Vic2NyaWJlU3VnZ2VzdGVkQml0bWFwU2l6ZUNoYW5nZWQodGhpcy5sbSk7Y29uc3Qgbj10aGlzLnBtLmNhbnZhc0VsZW1lbnQ7bi5zdHlsZS5wb3NpdGlvbj0iYWJzb2x1dGUiLG4uc3R5bGUuekluZGV4PSIyIixuLnN0eWxlLmxlZnQ9IjAiLG4uc3R5bGUudG9wPSIwIix0aGlzLmF2PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRyIiksdGhpcy5hdi5hcHBlbmRDaGlsZCh0aGlzLkptKSx0aGlzLmF2LmFwcGVuZENoaWxkKHRoaXMuWG0pLHRoaXMuYXYuYXBwZW5kQ2hpbGQodGhpcy5RbSksdGhpcy50dygpLHRoaXMudHY9bmV3IG1zKHRoaXMucG0uY2FudmFzRWxlbWVudCx0aGlzLHt4cDooKT0+bnVsbD09PXRoaXMuam0mJiF0aGlzLnF2Lk4oKS5oYW5kbGVTY3JvbGwudmVydFRvdWNoRHJhZyxDcDooKT0+bnVsbD09PXRoaXMuam0mJiF0aGlzLnF2Lk4oKS5oYW5kbGVTY3JvbGwuaG9yelRvdWNoRHJhZ30pfW0oKXtudWxsIT09dGhpcy5MbSYmdGhpcy5MbS5tKCksbnVsbCE9PXRoaXMuem0mJnRoaXMuem0ubSgpLHRoaXMuT209bnVsbCx0aGlzLnBtLnVuc3Vic2NyaWJlU3VnZ2VzdGVkQml0bWFwU2l6ZUNoYW5nZWQodGhpcy5sbSksVHModGhpcy5wbS5jYW52YXNFbGVtZW50KSx0aGlzLnBtLmRpc3Bvc2UoKSx0aGlzLmZtLnVuc3Vic2NyaWJlU3VnZ2VzdGVkQml0bWFwU2l6ZUNoYW5nZWQodGhpcy5obSksVHModGhpcy5mbS5jYW52YXNFbGVtZW50KSx0aGlzLmZtLmRpc3Bvc2UoKSxudWxsIT09dGhpcy5abSYmKHRoaXMuWm0uZnUoKS51KHRoaXMpLHRoaXMuWm0ubSgpKSx0aGlzLnR2Lm0oKX1Tdigpe3JldHVybiBkKHRoaXMuWm0pfWl3KHQpe251bGwhPT10aGlzLlptJiZ0aGlzLlptLmZ1KCkudSh0aGlzKSx0aGlzLlptPXQsbnVsbCE9PXRoaXMuWm0mJnRoaXMuWm0uZnUoKS5pKFdzLnByb3RvdHlwZS5HbS5iaW5kKHRoaXMpLHRoaXMsITApLAp0aGlzLnR3KCksdGhpcy5xdi5ydigpLmluZGV4T2YodGhpcyk9PT10aGlzLnF2LnJ2KCkubGVuZ3RoLTE/KHRoaXMuT209dGhpcy5PbT8/bmV3IF9zKHRoaXMuWG0sdGhpcy5xdiksdGhpcy5PbS5rdCgpKToodGhpcy5PbT8uS3YoKSx0aGlzLk9tPW51bGwpfWFtKCl7cmV0dXJuIHRoaXMucXZ9dXYoKXtyZXR1cm4gdGhpcy5hdn10dygpe2lmKG51bGwhPT10aGlzLlptJiYodGhpcy5udygpLDAhPT10aGlzLnNuKCkuSm4oKS5sZW5ndGgpKXtpZihudWxsIT09dGhpcy5MbSl7Y29uc3QgdD10aGlzLlptLktfKCk7dGhpcy5MbS51bihkKHQpKX1pZihudWxsIT09dGhpcy56bSl7Y29uc3QgdD10aGlzLlptLlpfKCk7dGhpcy56bS51bihkKHQpKX19fXN3KCl7bnVsbCE9PXRoaXMuTG0mJnRoaXMuTG0ua3QoKSxudWxsIT09dGhpcy56bSYmdGhpcy56bS5rdCgpfXpfKCl7cmV0dXJuIG51bGwhPT10aGlzLlptP3RoaXMuWm0uel8oKTowfU9fKHQpe3RoaXMuWm0mJnRoaXMuWm0uT18odCl9d3AodCl7aWYoIXRoaXMuWm0pcmV0dXJuO3RoaXMuZXcoKTtjb25zdCBpPXQubG9jYWxYLHM9dC5sb2NhbFk7dGhpcy5ydyhpLHMsdCl9enAodCl7dGhpcy5ldygpLHRoaXMuaHcoKSx0aGlzLnJ3KHQubG9jYWxYLHQubG9jYWxZLHQpfU1wKHQpe2lmKCF0aGlzLlptKXJldHVybjt0aGlzLmV3KCk7Y29uc3QgaT10LmxvY2FsWCxzPXQubG9jYWxZO3RoaXMucncoaSxzLHQpfVZwKHQpe251bGwhPT10aGlzLlptJiYodGhpcy5ldygpLHRoaXMucncodC5sb2NhbFgsdC5sb2NhbFksdCksdGhpcy5hdyh0KSl9dXAodCl7bnVsbCE9PXRoaXMuWm0mJnRoaXMubHcodGhpcy5IbSx0KX1hcCh0KXt0aGlzLnVwKHQpfVBwKHQpe3RoaXMuZXcoKSx0aGlzLm93KHQpLHRoaXMucncodC5sb2NhbFgsdC5sb2NhbFksdCl9SXAodCl7bnVsbCE9PXRoaXMuWm0mJih0aGlzLmV3KCksdGhpcy4kbT0hMSx0aGlzLl93KHQpKX1EcCh0KXtudWxsIT09dGhpcy5abSYmdGhpcy5hdyh0KX1LcCh0KXtpZih0aGlzLiRtPSEwLG51bGw9PT10aGlzLmptKXtjb25zdCBpPXt4OnQubG9jYWxYLHk6dC5sb2NhbFl9O3RoaXMudXcoaSxpLHQpfX1ZcCh0KXtudWxsIT09dGhpcy5abSYmKHRoaXMuZXcoKSx0aGlzLlptLlF0KCkua2QobnVsbCksdGhpcy5jdygpKX1kdygpe3JldHVybiB0aGlzLldtfWZ3KCl7cmV0dXJuIHRoaXMuSG19V3AoKXt0aGlzLlVtPTEsdGhpcy5zbigpLmNzKCl9SHAodCxpKXtpZighdGhpcy5xdi5OKCkuaGFuZGxlU2NhbGUucGluY2gpcmV0dXJuO2NvbnN0IHM9NSooaS10aGlzLlVtKTt0aGlzLlVtPWksdGhpcy5zbigpLk9kKHQuX3Qscyl9QXAodCl7dGhpcy4kbT0hMSx0aGlzLnFtPW51bGwhPT10aGlzLmptLHRoaXMuaHcoKTtjb25zdCBpPXRoaXMuc24oKS5SZCgpO251bGwhPT10aGlzLmptJiZpLkl0KCkmJih0aGlzLlltPXt4OmkubmkoKSx5Omkuc2koKX0sdGhpcy5qbT17eDp0LmxvY2FsWCx5OnQubG9jYWxZfSl9eXAodCl7aWYobnVsbD09PXRoaXMuWm0pcmV0dXJuO2NvbnN0IGk9dC5sb2NhbFgscz10LmxvY2FsWTtpZihudWxsPT09dGhpcy5qbSl0aGlzLm93KHQpO2Vsc2V7dGhpcy5xbT0hMTtjb25zdCBlPWQodGhpcy5ZbSksaD1lLngrKGktdGhpcy5qbS54KSxuPWUueSsocy10aGlzLmptLnkpO3RoaXMucncoaCxuLHQpfX1ScCh0KXswPT09dGhpcy5hbSgpLk4oKS50cmFja2luZ01vZGUuZXhpdE1vZGUmJih0aGlzLnFtPSEwKSx0aGlzLnB3KCksdGhpcy5fdyh0KX1Rcyh0LGkpe2NvbnN0IHM9dGhpcy5abTtyZXR1cm4gbnVsbD09PXM/bnVsbDpxaShzLHQsaSl9bXcodCxpKXtkKCJsZWZ0Ij09PWk/dGhpcy5MbTp0aGlzLnptKS5DbShlLnNpemUoe3dpZHRoOnQsaGVpZ2h0OnRoaXMuUXYuaGVpZ2h0fSkpfWN2KCl7cmV0dXJuIHRoaXMuUXZ9Q20odCl7KDAsZS5lcXVhbFNpemVzKSh0aGlzLlF2LHQpfHwodGhpcy5Rdj10LHRoaXMucm09ITAsdGhpcy5mbS5yZXNpemVDYW52YXNFbGVtZW50KHQpLHRoaXMucG0ucmVzaXplQ2FudmFzRWxlbWVudCh0KSx0aGlzLnJtPSExLHRoaXMuWG0uc3R5bGUud2lkdGg9dC53aWR0aCsicHgiLHRoaXMuWG0uc3R5bGUuaGVpZ2h0PXQuaGVpZ2h0KyJweCIpfXd3KCl7Y29uc3QgdD1kKHRoaXMuWm0pO3QucV8odC5LXygpKSx0LnFfKHQuWl8oKSk7Zm9yKGNvbnN0IGkgb2YgdC5DbCgpKWlmKHQuWnMoaSkpe2NvbnN0IHM9aS5GdCgpO251bGwhPT1zJiZ0LnFfKHMpLGkuTm4oKX1mb3IoY29uc3QgaSBvZiB0LnZ1KCkpaS5ObigpfWR2KCl7cmV0dXJuIHRoaXMuZm0uYml0bWFwU2l6ZX1mdih0LGkscyxlKXtjb25zdCBoPXRoaXMuZHYoKTtpZihoLndpZHRoPjAmJmguaGVpZ2h0PjAmJih0LmRyYXdJbWFnZSh0aGlzLmZtLmNhbnZhc0VsZW1lbnQsaSxzKSxlKSl7Y29uc3QgZT10aGlzLnBtLmNhbnZhc0VsZW1lbnQ7bnVsbCE9PXQmJnQuZHJhd0ltYWdlKGUsaSxzKX19a20odCl7aWYoMD09PXQpcmV0dXJuO2lmKG51bGw9PT10aGlzLlptKXJldHVybjt0PjEmJnRoaXMud3coKSxudWxsIT09dGhpcy5MbSYmdGhpcy5MbS5rbSh0KSxudWxsIT09dGhpcy56bSYmdGhpcy56bS5rbSh0KTtjb25zdCBpPXtjb2xvclNwYWNlOnRoaXMucXYuTigpLmxheW91dC5jb2xvclNwYWNlfTtpZigxIT09dCl7dGhpcy5mbS5hcHBseVN1Z2dlc3RlZEJpdG1hcFNpemUoKTtjb25zdCB0PSgwLGUudHJ5Q3JlYXRlQ2FudmFzUmVuZGVyaW5nVGFyZ2V0MkQpKHRoaXMuZm0saSk7bnVsbCE9PXQmJih0LnVzZUJpdG1hcENvb3JkaW5hdGVTcGFjZSgodD0+e3RoaXMuVG0odCl9KSksdGhpcy5abSYmKHRoaXMuTXcodCxMcyksdGhpcy5ndyh0KSx0aGlzLk13KHQsSXMpLHRoaXMuTXcodCxScykpKX10aGlzLnBtLmFwcGx5U3VnZ2VzdGVkQml0bWFwU2l6ZSgpO2NvbnN0IHM9KDAsZS50cnlDcmVhdGVDYW52YXNSZW5kZXJpbmdUYXJnZXQyRCkodGhpcy5wbSxpKTtudWxsIT09cyYmKHMudXNlQml0bWFwQ29vcmRpbmF0ZVNwYWNlKCgoe2NvbnRleHQ6dCxiaXRtYXBTaXplOml9KT0+e3QuY2xlYXJSZWN0KDAsMCxpLndpZHRoLGkuaGVpZ2h0KX0pKSx0aGlzLmJ3KHMpLHRoaXMuTXcocyxGcyksdGhpcy5NdyhzLFJzKSl9U3coKXsKcmV0dXJuIHRoaXMuTG19eHcoKXtyZXR1cm4gdGhpcy56bX1EbSh0LGkpe3RoaXMuTXcodCxpKX1HbSgpe251bGwhPT10aGlzLlptJiZ0aGlzLlptLmZ1KCkudSh0aGlzKSx0aGlzLlptPW51bGx9YXcodCl7dGhpcy5sdyh0aGlzLldtLHQpfWx3KHQsaSl7Y29uc3Qgcz1pLmxvY2FsWCxlPWkubG9jYWxZO3QudigpJiZ0LnAodGhpcy5zbigpLkV0KCkuUmMocykse3g6cyx5OmV9LGkpfVRtKHtjb250ZXh0OnQsYml0bWFwU2l6ZTppfSl7Y29uc3R7d2lkdGg6cyxoZWlnaHQ6ZX09aSxoPXRoaXMuc24oKSxuPWguJCgpLHI9aC5lZigpO249PT1yP1EodCwwLDAscyxlLHIpOksodCwwLDAscyxlLG4scil9Z3codCl7Y29uc3QgaT1kKHRoaXMuWm0pLHM9aS5wdSgpLndyKCkuVHQoaSk7bnVsbCE9PXMmJnMuc3QodCwhMSl9YncodCl7dGhpcy5Ddyh0LElzLEVzLHRoaXMuc24oKS5SZCgpKX1Ndyh0LGkpe2NvbnN0IHM9ZCh0aGlzLlptKSxlPXMuYXUoKSxoPXMudnUoKTtmb3IoY29uc3QgcyBvZiBoKXRoaXMuQ3codCxpLGtzLHMpO2Zvcihjb25zdCBzIG9mIGUpdGhpcy5Ddyh0LGksa3Mscyk7Zm9yKGNvbnN0IHMgb2YgaCl0aGlzLkN3KHQsaSxFcyxzKTtmb3IoY29uc3QgcyBvZiBlKXRoaXMuQ3codCxpLEVzLHMpfUN3KHQsaSxzLGUpe2NvbnN0IGg9ZCh0aGlzLlptKSxuPWguUXQoKS5vdSgpLHI9bnVsbCE9PW4mJm4ubHU9PT1lLG89bnVsbCE9PW4mJnImJnZvaWQgMCE9PW4ud3U/bi53dS5pZTp2b2lkIDA7TnMoaSwoaT0+cyhpLHQscixvKSksZSxoKX1udygpe2lmKG51bGw9PT10aGlzLlptKXJldHVybjtjb25zdCB0PXRoaXMucXYsaT10aGlzLlptLktfKCkuTigpLnZpc2libGUscz10aGlzLlptLlpfKCkuTigpLnZpc2libGU7aXx8bnVsbD09PXRoaXMuTG18fCh0aGlzLkptLnJlbW92ZUNoaWxkKHRoaXMuTG0udXYoKSksdGhpcy5MbS5tKCksdGhpcy5MbT1udWxsKSxzfHxudWxsPT09dGhpcy56bXx8KHRoaXMuUW0ucmVtb3ZlQ2hpbGQodGhpcy56bS51digpKSx0aGlzLnptLm0oKSx0aGlzLnptPW51bGwpO2NvbnN0IGU9dC5RdCgpLlpkKCk7aSYmbnVsbD09PXRoaXMuTG0mJih0aGlzLkxtPW5ldyBxcyh0aGlzLHQuTigpLGUsImxlZnQiKSx0aGlzLkptLmFwcGVuZENoaWxkKHRoaXMuTG0udXYoKSkpLHMmJm51bGw9PT10aGlzLnptJiYodGhpcy56bT1uZXcgcXModGhpcyx0Lk4oKSxlLCJyaWdodCIpLHRoaXMuUW0uYXBwZW5kQ2hpbGQodGhpcy56bS51digpKSl9eXcodCl7cmV0dXJuIHQuWnAmJnRoaXMuJG18fG51bGwhPT10aGlzLmptfXJ3KHQsaSxzKXt0PU1hdGgubWF4KDAsTWF0aC5taW4odCx0aGlzLlF2LndpZHRoLTEpKSxpPU1hdGgubWF4KDAsTWF0aC5taW4oaSx0aGlzLlF2LmhlaWdodC0xKSksdGhpcy5zbigpLmpkKHQsaSxzLGQodGhpcy5abSkpfWN3KCl7dGhpcy5zbigpLllkKCl9cHcoKXt0aGlzLnFtJiYodGhpcy5qbT1udWxsLHRoaXMuY3coKSl9dXcodCxpLHMpe3RoaXMuam09dCx0aGlzLnFtPSExLHRoaXMucncoaS54LGkueSxzKTtjb25zdCBlPXRoaXMuc24oKS5SZCgpO3RoaXMuWW09e3g6ZS5uaSgpLHk6ZS5zaSgpfX1zbigpe3JldHVybiB0aGlzLnF2LlF0KCl9X3codCl7aWYoIXRoaXMuRm0pcmV0dXJuO2NvbnN0IGk9dGhpcy5zbigpLHM9dGhpcy5TdigpO2lmKGkuaXUocyxzLlBuKCkpLHRoaXMuTm09bnVsbCx0aGlzLkZtPSExLGkuSGQoKSxudWxsIT09dGhpcy5LbSl7Y29uc3QgdD1wZXJmb3JtYW5jZS5ub3coKSxzPWkuRXQoKTt0aGlzLkttLm1lKHMuQWMoKSx0KSx0aGlzLkttLmpjKHQpfHxpLnBzKHRoaXMuS20pfX1ldygpe3RoaXMuam09bnVsbH1odygpe2lmKHRoaXMuWm0pe2lmKHRoaXMuc24oKS5jcygpLGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQhPT1kb2N1bWVudC5ib2R5JiZkb2N1bWVudC5hY3RpdmVFbGVtZW50IT09ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KWQoZG9jdW1lbnQuYWN0aXZlRWxlbWVudCkuYmx1cigpO2Vsc2V7Y29uc3QgdD1kb2N1bWVudC5nZXRTZWxlY3Rpb24oKTtudWxsIT09dCYmdC5yZW1vdmVBbGxSYW5nZXMoKX0hdGhpcy5abS5QbigpLkdpKCkmJnRoaXMuc24oKS5FdCgpLkdpKCl9fW93KHQpe2lmKG51bGw9PT10aGlzLlptKXJldHVybjtjb25zdCBpPXRoaXMuc24oKSxzPWkuRXQoKTtpZihzLkdpKCkpcmV0dXJuO2NvbnN0IGU9dGhpcy5xdi5OKCksaD1lLmhhbmRsZVNjcm9sbCxuPWUua2luZXRpY1Njcm9sbDtpZigoIWgucHJlc3NlZE1vdXNlTW92ZXx8dC5acCkmJighaC5ob3J6VG91Y2hEcmFnJiYhaC52ZXJ0VG91Y2hEcmFnfHwhdC5acCkpcmV0dXJuO2NvbnN0IHI9dGhpcy5abS5QbigpLG89cGVyZm9ybWFuY2Uubm93KCk7aWYobnVsbCE9PXRoaXMuTm18fHRoaXMueXcodCl8fCh0aGlzLk5tPXt4OnQuY2xpZW50WCx5OnQuY2xpZW50WSxTZjpvLGt3OnQubG9jYWxYLFB3OnQubG9jYWxZfSksbnVsbCE9PXRoaXMuTm0mJiF0aGlzLkZtJiYodGhpcy5ObS54IT09dC5jbGllbnRYfHx0aGlzLk5tLnkhPT10LmNsaWVudFkpKXtpZih0LlpwJiZuLnRvdWNofHwhdC5acCYmbi5tb3VzZSl7Y29uc3QgdD1zLmZsKCk7dGhpcy5LbT1uZXcgeHMoLjIvdCw3L3QsLjk5NywxNS90KSx0aGlzLkttLkZ2KHMuQWMoKSx0aGlzLk5tLlNmKX1lbHNlIHRoaXMuS209bnVsbDtyLkdpKCl8fGkuUV8odGhpcy5abSxyLHQubG9jYWxZKSxpLkZkKHQubG9jYWxYKSx0aGlzLkZtPSEwfXRoaXMuRm0mJihyLkdpKCl8fGkudHUodGhpcy5abSxyLHQubG9jYWxZKSxpLldkKHQubG9jYWxYKSxudWxsIT09dGhpcy5LbSYmdGhpcy5LbS5GdihzLkFjKCksbykpfX1jbGFzcyBRc3tjb25zdHJ1Y3Rvcih0LGkscyxoLG4pe3RoaXMueHQ9ITAsdGhpcy5Rdj1lLnNpemUoe3dpZHRoOjAsaGVpZ2h0OjB9KSx0aGlzLmhtPSgpPT50aGlzLmttKDMpLHRoaXMub209ImxlZnQiPT09dCx0aGlzLndkPXMuWmQsdGhpcy55bj1pLHRoaXMuVHc9aCx0aGlzLlJ3PW4sdGhpcy5sdj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSx0aGlzLmx2LnN0eWxlLndpZHRoPSIyNXB4Iix0aGlzLmx2LnN0eWxlLmhlaWdodD0iMTAwJSIsdGhpcy5sdi5zdHlsZS5vdmVyZmxvdz0iaGlkZGVuIiwKdGhpcy5mbT1Dcyh0aGlzLmx2LGUuc2l6ZSh7d2lkdGg6MTYsaGVpZ2h0OjE2fSkpLHRoaXMuZm0uc3Vic2NyaWJlU3VnZ2VzdGVkQml0bWFwU2l6ZUNoYW5nZWQodGhpcy5obSl9bSgpe3RoaXMuZm0udW5zdWJzY3JpYmVTdWdnZXN0ZWRCaXRtYXBTaXplQ2hhbmdlZCh0aGlzLmhtKSxUcyh0aGlzLmZtLmNhbnZhc0VsZW1lbnQpLHRoaXMuZm0uZGlzcG9zZSgpfXV2KCl7cmV0dXJuIHRoaXMubHZ9Y3YoKXtyZXR1cm4gdGhpcy5Rdn1DbSh0KXsoMCxlLmVxdWFsU2l6ZXMpKHRoaXMuUXYsdCl8fCh0aGlzLlF2PXQsdGhpcy5mbS5yZXNpemVDYW52YXNFbGVtZW50KHQpLHRoaXMubHYuc3R5bGUud2lkdGg9YCR7dC53aWR0aH1weGAsdGhpcy5sdi5zdHlsZS5oZWlnaHQ9YCR7dC5oZWlnaHR9cHhgLHRoaXMueHQ9ITApfWttKHQpe2lmKHQ8MyYmIXRoaXMueHQpcmV0dXJuO2lmKDA9PT10aGlzLlF2LndpZHRofHwwPT09dGhpcy5Rdi5oZWlnaHQpcmV0dXJuO3RoaXMueHQ9ITEsdGhpcy5mbS5hcHBseVN1Z2dlc3RlZEJpdG1hcFNpemUoKTtjb25zdCBpPSgwLGUudHJ5Q3JlYXRlQ2FudmFzUmVuZGVyaW5nVGFyZ2V0MkQpKHRoaXMuZm0se2NvbG9yU3BhY2U6dGhpcy55bi5sYXlvdXQuY29sb3JTcGFjZX0pO251bGwhPT1pJiZpLnVzZUJpdG1hcENvb3JkaW5hdGVTcGFjZSgodD0+e3RoaXMuVG0odCksdGhpcy5SbSh0KX0pKX1kdigpe3JldHVybiB0aGlzLmZtLmJpdG1hcFNpemV9ZnYodCxpLHMpe2NvbnN0IGU9dGhpcy5kdigpO2Uud2lkdGg+MCYmZS5oZWlnaHQ+MCYmdC5kcmF3SW1hZ2UodGhpcy5mbS5jYW52YXNFbGVtZW50LGkscyl9Um0oe2NvbnRleHQ6dCxiaXRtYXBTaXplOmksaG9yaXpvbnRhbFBpeGVsUmF0aW86cyx2ZXJ0aWNhbFBpeGVsUmF0aW86ZX0pe2lmKCF0aGlzLlR3KCkpcmV0dXJuO3QuZmlsbFN0eWxlPXRoaXMueW4udGltZVNjYWxlLmJvcmRlckNvbG9yO2NvbnN0IGg9TWF0aC5mbG9vcih0aGlzLndkLk4oKS5TKnMpLG49TWF0aC5mbG9vcih0aGlzLndkLk4oKS5TKmUpLHI9dGhpcy5vbT9pLndpZHRoLWg6MDt0LmZpbGxSZWN0KHIsMCxoLG4pfVRtKHtjb250ZXh0OnQsYml0bWFwU2l6ZTppfSl7USh0LDAsMCxpLndpZHRoLGkuaGVpZ2h0LHRoaXMuUncoKSl9fWZ1bmN0aW9uIERzKHQpe3JldHVybiBpPT5pLlhhPy4odCk/P1tdfWNvbnN0IEJzPURzKCJub3JtYWwiKSxLcz1EcygidG9wIiksT3M9RHMoImJvdHRvbSIpO2NsYXNzIFZze2NvbnN0cnVjdG9yKHQsaSl7dGhpcy5Edz1udWxsLHRoaXMuSXc9bnVsbCx0aGlzLk09bnVsbCx0aGlzLlZ3PSExLHRoaXMuUXY9ZS5zaXplKHt3aWR0aDowLGhlaWdodDowfSksdGhpcy5Cdz1uZXcgbSx0aGlzLmltPW5ldyBudCg1KSx0aGlzLnJtPSExLHRoaXMuaG09KCk9Pnt0aGlzLnJtfHx0aGlzLnF2LlF0KCkubXIoKX0sdGhpcy5sbT0oKT0+e3RoaXMucm18fHRoaXMucXYuUXQoKS5tcigpfSx0aGlzLnF2PXQsdGhpcy54dT1pLHRoaXMueW49dC5OKCkubGF5b3V0LHRoaXMuSHY9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidHIiKSx0aGlzLkV3PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRkIiksdGhpcy5Fdy5zdHlsZS5wYWRkaW5nPSIwIix0aGlzLkF3PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRkIiksdGhpcy5Bdy5zdHlsZS5wYWRkaW5nPSIwIix0aGlzLmx2PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRkIiksdGhpcy5sdi5zdHlsZS5oZWlnaHQ9IjI1cHgiLHRoaXMubHYuc3R5bGUucGFkZGluZz0iMCIsdGhpcy5Mdz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSx0aGlzLkx3LnN0eWxlLndpZHRoPSIxMDAlIix0aGlzLkx3LnN0eWxlLmhlaWdodD0iMTAwJSIsdGhpcy5Mdy5zdHlsZS5wb3NpdGlvbj0icmVsYXRpdmUiLHRoaXMuTHcuc3R5bGUub3ZlcmZsb3c9ImhpZGRlbiIsdGhpcy5sdi5hcHBlbmRDaGlsZCh0aGlzLkx3KSx0aGlzLmZtPUNzKHRoaXMuTHcsZS5zaXplKHt3aWR0aDoxNixoZWlnaHQ6MTZ9KSksdGhpcy5mbS5zdWJzY3JpYmVTdWdnZXN0ZWRCaXRtYXBTaXplQ2hhbmdlZCh0aGlzLmhtKTtjb25zdCBzPXRoaXMuZm0uY2FudmFzRWxlbWVudDtzLnN0eWxlLnBvc2l0aW9uPSJhYnNvbHV0ZSIscy5zdHlsZS56SW5kZXg9IjEiLHMuc3R5bGUubGVmdD0iMCIscy5zdHlsZS50b3A9IjAiLHRoaXMucG09Q3ModGhpcy5MdyxlLnNpemUoe3dpZHRoOjE2LGhlaWdodDoxNn0pKSx0aGlzLnBtLnN1YnNjcmliZVN1Z2dlc3RlZEJpdG1hcFNpemVDaGFuZ2VkKHRoaXMubG0pO2NvbnN0IGg9dGhpcy5wbS5jYW52YXNFbGVtZW50O2guc3R5bGUucG9zaXRpb249ImFic29sdXRlIixoLnN0eWxlLnpJbmRleD0iMiIsaC5zdHlsZS5sZWZ0PSIwIixoLnN0eWxlLnRvcD0iMCIsdGhpcy5Idi5hcHBlbmRDaGlsZCh0aGlzLkV3KSx0aGlzLkh2LmFwcGVuZENoaWxkKHRoaXMubHYpLHRoaXMuSHYuYXBwZW5kQ2hpbGQodGhpcy5BdyksdGhpcy56dygpLHRoaXMucXYuUXQoKS5MXygpLmkodGhpcy56dy5iaW5kKHRoaXMpLHRoaXMpLHRoaXMudHY9bmV3IG1zKHRoaXMucG0uY2FudmFzRWxlbWVudCx0aGlzLHt4cDooKT0+ITAsQ3A6KCk9PiF0aGlzLnF2Lk4oKS5oYW5kbGVTY3JvbGwuaG9yelRvdWNoRHJhZ30pfW0oKXt0aGlzLnR2Lm0oKSxudWxsIT09dGhpcy5EdyYmdGhpcy5Edy5tKCksbnVsbCE9PXRoaXMuSXcmJnRoaXMuSXcubSgpLHRoaXMucG0udW5zdWJzY3JpYmVTdWdnZXN0ZWRCaXRtYXBTaXplQ2hhbmdlZCh0aGlzLmxtKSxUcyh0aGlzLnBtLmNhbnZhc0VsZW1lbnQpLHRoaXMucG0uZGlzcG9zZSgpLHRoaXMuZm0udW5zdWJzY3JpYmVTdWdnZXN0ZWRCaXRtYXBTaXplQ2hhbmdlZCh0aGlzLmhtKSxUcyh0aGlzLmZtLmNhbnZhc0VsZW1lbnQpLHRoaXMuZm0uZGlzcG9zZSgpfXV2KCl7cmV0dXJuIHRoaXMuSHZ9T3coKXtyZXR1cm4gdGhpcy5Ed31Odygpe3JldHVybiB0aGlzLkl3fXpwKHQpe2lmKHRoaXMuVncpcmV0dXJuO3RoaXMuVnc9ITA7Y29uc3QgaT10aGlzLnF2LlF0KCk7IWkuRXQoKS5HaSgpJiZ0aGlzLnF2Lk4oKS5oYW5kbGVTY2FsZS5heGlzUHJlc3NlZE1vdXNlTW92ZS50aW1lJiZpLnpkKHQubG9jYWxYKX1BcCh0KXsKdGhpcy56cCh0KX1PcCgpe2NvbnN0IHQ9dGhpcy5xdi5RdCgpOyF0LkV0KCkuR2koKSYmdGhpcy5WdyYmKHRoaXMuVnc9ITEsdGhpcy5xdi5OKCkuaGFuZGxlU2NhbGUuYXhpc1ByZXNzZWRNb3VzZU1vdmUudGltZSYmdC4kZCgpKX1QcCh0KXtjb25zdCBpPXRoaXMucXYuUXQoKTshaS5FdCgpLkdpKCkmJnRoaXMucXYuTigpLmhhbmRsZVNjYWxlLmF4aXNQcmVzc2VkTW91c2VNb3ZlLnRpbWUmJmkuVWQodC5sb2NhbFgpfXlwKHQpe3RoaXMuUHAodCl9SXAoKXt0aGlzLlZ3PSExO2NvbnN0IHQ9dGhpcy5xdi5RdCgpO3QuRXQoKS5HaSgpJiYhdGhpcy5xdi5OKCkuaGFuZGxlU2NhbGUuYXhpc1ByZXNzZWRNb3VzZU1vdmUudGltZXx8dC4kZCgpfVJwKCl7dGhpcy5JcCgpfXVwKCl7dGhpcy5xdi5OKCkuaGFuZGxlU2NhbGUuYXhpc0RvdWJsZUNsaWNrUmVzZXQudGltZSYmdGhpcy5xdi5RdCgpLndzKCl9YXAoKXt0aGlzLnVwKCl9d3AoKXt0aGlzLnF2LlF0KCkuTigpLmhhbmRsZVNjYWxlLmF4aXNQcmVzc2VkTW91c2VNb3ZlLnRpbWUmJnRoaXMuRW0oMSl9WXAoKXt0aGlzLkVtKDApfWN2KCl7cmV0dXJuIHRoaXMuUXZ9RncoKXtyZXR1cm4gdGhpcy5Cd31Xdyh0LGkscyl7KDAsZS5lcXVhbFNpemVzKSh0aGlzLlF2LHQpfHwodGhpcy5Rdj10LHRoaXMucm09ITAsdGhpcy5mbS5yZXNpemVDYW52YXNFbGVtZW50KHQpLHRoaXMucG0ucmVzaXplQ2FudmFzRWxlbWVudCh0KSx0aGlzLnJtPSExLHRoaXMubHYuc3R5bGUud2lkdGg9YCR7dC53aWR0aH1weGAsdGhpcy5sdi5zdHlsZS5oZWlnaHQ9YCR7dC5oZWlnaHR9cHhgLHRoaXMuQncucCh0KSksbnVsbCE9PXRoaXMuRHcmJnRoaXMuRHcuQ20oZS5zaXplKHt3aWR0aDppLGhlaWdodDp0LmhlaWdodH0pKSxudWxsIT09dGhpcy5JdyYmdGhpcy5Jdy5DbShlLnNpemUoe3dpZHRoOnMsaGVpZ2h0OnQuaGVpZ2h0fSkpfUh3KCl7Y29uc3QgdD10aGlzLlV3KCk7cmV0dXJuIE1hdGguY2VpbCh0LlMrdC5DK3Quayt0LkErdC5JK3QuJHcpfWt0KCl7dGhpcy5xdi5RdCgpLkV0KCkuRWwoKX1kdigpe3JldHVybiB0aGlzLmZtLmJpdG1hcFNpemV9ZnYodCxpLHMsZSl7Y29uc3QgaD10aGlzLmR2KCk7aWYoaC53aWR0aD4wJiZoLmhlaWdodD4wJiYodC5kcmF3SW1hZ2UodGhpcy5mbS5jYW52YXNFbGVtZW50LGkscyksZSkpe2NvbnN0IGU9dGhpcy5wbS5jYW52YXNFbGVtZW50O3QuZHJhd0ltYWdlKGUsaSxzKX19a20odCl7aWYoMD09PXQpcmV0dXJuO2NvbnN0IGk9e2NvbG9yU3BhY2U6dGhpcy55bi5jb2xvclNwYWNlfTtpZigxIT09dCl7dGhpcy5mbS5hcHBseVN1Z2dlc3RlZEJpdG1hcFNpemUoKTtjb25zdCBzPSgwLGUudHJ5Q3JlYXRlQ2FudmFzUmVuZGVyaW5nVGFyZ2V0MkQpKHRoaXMuZm0saSk7bnVsbCE9PXMmJihzLnVzZUJpdG1hcENvb3JkaW5hdGVTcGFjZSgodD0+e3RoaXMuVG0odCksdGhpcy5SbSh0KSx0aGlzLmp3KHMsT3MpfSkpLHRoaXMuSW0ocyksdGhpcy5qdyhzLEJzKSksbnVsbCE9PXRoaXMuRHcmJnRoaXMuRHcua20odCksbnVsbCE9PXRoaXMuSXcmJnRoaXMuSXcua20odCl9dGhpcy5wbS5hcHBseVN1Z2dlc3RlZEJpdG1hcFNpemUoKTtjb25zdCBzPSgwLGUudHJ5Q3JlYXRlQ2FudmFzUmVuZGVyaW5nVGFyZ2V0MkQpKHRoaXMucG0saSk7bnVsbCE9PXMmJihzLnVzZUJpdG1hcENvb3JkaW5hdGVTcGFjZSgoKHtjb250ZXh0OnQsYml0bWFwU2l6ZTppfSk9Pnt0LmNsZWFyUmVjdCgwLDAsaS53aWR0aCxpLmhlaWdodCl9KSksdGhpcy5xdyhbLi4udGhpcy5xdi5RdCgpLkpuKCksdGhpcy5xdi5RdCgpLlJkKCldLHMpLHRoaXMuancocyxLcykpfWp3KHQsaSl7Y29uc3Qgcz10aGlzLnF2LlF0KCkuSm4oKTtmb3IoY29uc3QgZSBvZiBzKU5zKGksKGk9PmtzKGksdCwhMSx2b2lkIDApKSxlLHZvaWQgMCk7Zm9yKGNvbnN0IGUgb2YgcylOcyhpLChpPT5FcyhpLHQsITEsdm9pZCAwKSksZSx2b2lkIDApfVRtKHtjb250ZXh0OnQsYml0bWFwU2l6ZTppfSl7USh0LDAsMCxpLndpZHRoLGkuaGVpZ2h0LHRoaXMucXYuUXQoKS5lZigpKX1SbSh7Y29udGV4dDp0LGJpdG1hcFNpemU6aSx2ZXJ0aWNhbFBpeGVsUmF0aW86c30pe2lmKHRoaXMucXYuTigpLnRpbWVTY2FsZS5ib3JkZXJWaXNpYmxlKXt0LmZpbGxTdHlsZT10aGlzLll3KCk7Y29uc3QgZT1NYXRoLm1heCgxLE1hdGguZmxvb3IodGhpcy5VdygpLlMqcykpO3QuZmlsbFJlY3QoMCwwLGkud2lkdGgsZSl9fUltKHQpe2NvbnN0IGk9dGhpcy5xdi5RdCgpLkV0KCkscz1pLkVsKCk7aWYoIXN8fDA9PT1zLmxlbmd0aClyZXR1cm47Y29uc3QgZT10aGlzLnh1Lm1heFRpY2tNYXJrV2VpZ2h0KHMpLGg9dGhpcy5VdygpLG49aS5OKCk7bi5ib3JkZXJWaXNpYmxlJiZuLnRpY2tzVmlzaWJsZSYmdC51c2VCaXRtYXBDb29yZGluYXRlU3BhY2UoKCh7Y29udGV4dDp0LGhvcml6b250YWxQaXhlbFJhdGlvOmksdmVydGljYWxQaXhlbFJhdGlvOmV9KT0+e3Quc3Ryb2tlU3R5bGU9dGhpcy5ZdygpLHQuZmlsbFN0eWxlPXRoaXMuWXcoKTtjb25zdCBuPU1hdGgubWF4KDEsTWF0aC5mbG9vcihpKSkscj1NYXRoLmZsb29yKC41KmkpO3QuYmVnaW5QYXRoKCk7Y29uc3Qgbz1NYXRoLnJvdW5kKGguQyplKTtmb3IobGV0IGU9cy5sZW5ndGg7ZS0tOyl7Y29uc3QgaD1NYXRoLnJvdW5kKHNbZV0uY29vcmQqaSk7dC5yZWN0KGgtciwwLG4sbyl9dC5maWxsKCl9KSksdC51c2VNZWRpYUNvb3JkaW5hdGVTcGFjZSgoKHtjb250ZXh0OnR9KT0+e2NvbnN0IGk9aC5TK2guQytoLkEraC5rLzI7dC50ZXh0QWxpZ249ImNlbnRlciIsdC50ZXh0QmFzZWxpbmU9Im1pZGRsZSIsdC5maWxsU3R5bGU9dGhpcy5IKCksdC5mb250PXRoaXMuU20oKTtmb3IoY29uc3QgaCBvZiBzKWlmKGgud2VpZ2h0PGUpe2NvbnN0IHM9aC5uZWVkQWxpZ25Db29yZGluYXRlP3RoaXMuS3codCxoLmNvb3JkLGgubGFiZWwpOmguY29vcmQ7dC5maWxsVGV4dChoLmxhYmVsLHMsaSl9dGhpcy5xdi5OKCkudGltZVNjYWxlLmFsbG93Qm9sZExhYmVscyYmKHQuZm9udD10aGlzLlp3KCkpO2Zvcihjb25zdCBoIG9mIHMpaWYoaC53ZWlnaHQ+PWUpewpjb25zdCBzPWgubmVlZEFsaWduQ29vcmRpbmF0ZT90aGlzLkt3KHQsaC5jb29yZCxoLmxhYmVsKTpoLmNvb3JkO3QuZmlsbFRleHQoaC5sYWJlbCxzLGkpfX0pKX1Ldyh0LGkscyl7Y29uc3QgZT10aGlzLmltLklpKHQscyksaD1lLzIsbj1NYXRoLmZsb29yKGktaCkrLjU7cmV0dXJuIG48MD9pKz1NYXRoLmFicygwLW4pOm4rZT50aGlzLlF2LndpZHRoJiYoaS09TWF0aC5hYnModGhpcy5Rdi53aWR0aC0obitlKSkpLGl9cXcodCxpKXtjb25zdCBzPXRoaXMuVXcoKTtmb3IoY29uc3QgZSBvZiB0KWZvcihjb25zdCB0IG9mIGUuZG4oKSl0LlR0KCkuc3QoaSxzKX1Zdygpe3JldHVybiB0aGlzLnF2Lk4oKS50aW1lU2NhbGUuYm9yZGVyQ29sb3J9SCgpe3JldHVybiB0aGlzLnluLnRleHRDb2xvcn1GKCl7cmV0dXJuIHRoaXMueW4uZm9udFNpemV9U20oKXtyZXR1cm4gXyh0aGlzLkYoKSx0aGlzLnluLmZvbnRGYW1pbHkpfVp3KCl7cmV0dXJuIF8odGhpcy5GKCksdGhpcy55bi5mb250RmFtaWx5LCJib2xkIil9VXcoKXtudWxsPT09dGhpcy5NJiYodGhpcy5NPXtTOjEsTDpOYU4sQTpOYU4sSTpOYU4sdG46TmFOLEM6NSxrOk5hTixQOiIiLFFpOm5ldyBudCwkdzowfSk7Y29uc3QgdD10aGlzLk0saT10aGlzLlNtKCk7aWYodC5QIT09aSl7Y29uc3Qgcz10aGlzLkYoKTt0Lms9cyx0LlA9aSx0LkE9MypzLzEyLHQuST0zKnMvMTIsdC50bj05KnMvMTIsdC5MPTAsdC4kdz00KnMvMTIsdC5RaS5PcygpfXJldHVybiB0aGlzLk19RW0odCl7dGhpcy5sdi5zdHlsZS5jdXJzb3I9MT09PXQ/ImV3LXJlc2l6ZSI6ImRlZmF1bHQifXp3KCl7Y29uc3QgdD10aGlzLnF2LlF0KCksaT10Lk4oKTtpLmxlZnRQcmljZVNjYWxlLnZpc2libGV8fG51bGw9PT10aGlzLkR3fHwodGhpcy5Fdy5yZW1vdmVDaGlsZCh0aGlzLkR3LnV2KCkpLHRoaXMuRHcubSgpLHRoaXMuRHc9bnVsbCksaS5yaWdodFByaWNlU2NhbGUudmlzaWJsZXx8bnVsbD09PXRoaXMuSXd8fCh0aGlzLkF3LnJlbW92ZUNoaWxkKHRoaXMuSXcudXYoKSksdGhpcy5Jdy5tKCksdGhpcy5Jdz1udWxsKTtjb25zdCBzPXtaZDp0aGlzLnF2LlF0KCkuWmQoKX0sZT0oKT0+aS5sZWZ0UHJpY2VTY2FsZS5ib3JkZXJWaXNpYmxlJiZ0LkV0KCkuTigpLmJvcmRlclZpc2libGUsaD0oKT0+dC5lZigpO2kubGVmdFByaWNlU2NhbGUudmlzaWJsZSYmbnVsbD09PXRoaXMuRHcmJih0aGlzLkR3PW5ldyBRcygibGVmdCIsaSxzLGUsaCksdGhpcy5Fdy5hcHBlbmRDaGlsZCh0aGlzLkR3LnV2KCkpKSxpLnJpZ2h0UHJpY2VTY2FsZS52aXNpYmxlJiZudWxsPT09dGhpcy5JdyYmKHRoaXMuSXc9bmV3IFFzKCJyaWdodCIsaSxzLGUsaCksdGhpcy5Bdy5hcHBlbmRDaGlsZCh0aGlzLkl3LnV2KCkpKX19Y29uc3QgJHM9ISFhcyYmISFuYXZpZ2F0b3IudXNlckFnZW50RGF0YSYmbmF2aWdhdG9yLnVzZXJBZ2VudERhdGEuYnJhbmRzLnNvbWUoKHQ9PnQuYnJhbmQuaW5jbHVkZXMoIkNocm9taXVtIikpKSYmISFhcyYmKG5hdmlnYXRvcj8udXNlckFnZW50RGF0YT8ucGxhdGZvcm0/IldpbmRvd3MiPT09bmF2aWdhdG9yLnVzZXJBZ2VudERhdGEucGxhdGZvcm06bmF2aWdhdG9yLnVzZXJBZ2VudC50b0xvd2VyQ2FzZSgpLmluZGV4T2YoIndpbiIpPj0wKTtjbGFzcyBBc3tjb25zdHJ1Y3Rvcih0LGkscyl7dmFyIGU7dGhpcy5Hdz1bXSx0aGlzLlh3PVtdLHRoaXMuSnc9MCx0aGlzLmhvPTAsdGhpcy5DXz0wLHRoaXMuUXc9MCx0aGlzLnRNPTAsdGhpcy5pTT1udWxsLHRoaXMubk09ITEsdGhpcy5XbT1uZXcgbSx0aGlzLkhtPW5ldyBtLHRoaXMucGQ9bmV3IG0sdGhpcy5zTT1udWxsLHRoaXMuZU09bnVsbCx0aGlzLmp2PXQsdGhpcy55bj1pLHRoaXMueHU9cyx0aGlzLkh2PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLHRoaXMuSHYuY2xhc3NMaXN0LmFkZCgidHYtbGlnaHR3ZWlnaHQtY2hhcnRzIiksdGhpcy5Idi5zdHlsZS5vdmVyZmxvdz0iaGlkZGVuIix0aGlzLkh2LnN0eWxlLmRpcmVjdGlvbj0ibHRyIix0aGlzLkh2LnN0eWxlLndpZHRoPSIxMDAlIix0aGlzLkh2LnN0eWxlLmhlaWdodD0iMTAwJSIsKGU9dGhpcy5Idikuc3R5bGUudXNlclNlbGVjdD0ibm9uZSIsZS5zdHlsZS53ZWJraXRVc2VyU2VsZWN0PSJub25lIixlLnN0eWxlLm1zVXNlclNlbGVjdD0ibm9uZSIsZS5zdHlsZS5Nb3pVc2VyU2VsZWN0PSJub25lIixlLnN0eWxlLndlYmtpdFRhcEhpZ2hsaWdodENvbG9yPSJ0cmFuc3BhcmVudCIsdGhpcy5yTT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0YWJsZSIpLHRoaXMuck0uc2V0QXR0cmlidXRlKCJjZWxsc3BhY2luZyIsIjAiKSx0aGlzLkh2LmFwcGVuZENoaWxkKHRoaXMuck0pLHRoaXMuaE09dGhpcy5hTS5iaW5kKHRoaXMpLFpzKHRoaXMueW4pJiZ0aGlzLmxNKCEwKSx0aGlzLnNuPW5ldyBBaSh0aGlzLm1kLmJpbmQodGhpcyksdGhpcy55bixzKSx0aGlzLlF0KCkuRGQoKS5pKHRoaXMub00uYmluZCh0aGlzKSx0aGlzKSx0aGlzLl9NPW5ldyBWcyh0aGlzLHRoaXMueHUpLHRoaXMuck0uYXBwZW5kQ2hpbGQodGhpcy5fTS51digpKTtjb25zdCBoPWkuYXV0b1NpemUmJnRoaXMudU0oKTtsZXQgbj10aGlzLnluLndpZHRoLHI9dGhpcy55bi5oZWlnaHQ7aWYoaHx8MD09PW58fDA9PT1yKXtjb25zdCBpPXQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7bj1ufHxpLndpZHRoLHI9cnx8aS5oZWlnaHR9dGhpcy5jTShuLHIpLHRoaXMuZE0oKSx0LmFwcGVuZENoaWxkKHRoaXMuSHYpLHRoaXMuZk0oKSx0aGlzLnNuLkV0KCkuWmMoKS5pKHRoaXMuc24uUGEuYmluZCh0aGlzLnNuKSx0aGlzKSx0aGlzLnNuLkxfKCkuaSh0aGlzLnNuLlBhLmJpbmQodGhpcy5zbiksdGhpcyl9UXQoKXtyZXR1cm4gdGhpcy5zbn1OKCl7cmV0dXJuIHRoaXMueW59cnYoKXtyZXR1cm4gdGhpcy5Hd31wTSgpe3JldHVybiB0aGlzLl9NfW0oKXt0aGlzLmxNKCExKSwwIT09dGhpcy5KdyYmd2luZG93LmNhbmNlbEFuaW1hdGlvbkZyYW1lKHRoaXMuSncpLHRoaXMuc24uRGQoKS51KHRoaXMpLHRoaXMuc24uRXQoKS5aYygpLnUodGhpcyksdGhpcy5zbi5MXygpLnUodGhpcyksdGhpcy5zbi5tKCkKO2Zvcihjb25zdCB0IG9mIHRoaXMuR3cpdGhpcy5yTS5yZW1vdmVDaGlsZCh0LnV2KCkpLHQuZHcoKS51KHRoaXMpLHQuZncoKS51KHRoaXMpLHQubSgpO3RoaXMuR3c9W107Zm9yKGNvbnN0IHQgb2YgdGhpcy5Ydyl0aGlzLnZNKHQpO3RoaXMuWHc9W10sZCh0aGlzLl9NKS5tKCksbnVsbCE9PXRoaXMuSHYucGFyZW50RWxlbWVudCYmdGhpcy5Idi5wYXJlbnRFbGVtZW50LnJlbW92ZUNoaWxkKHRoaXMuSHYpLHRoaXMucGQubSgpLHRoaXMuV20ubSgpLHRoaXMuSG0ubSgpLHRoaXMubU0oKX1jTSh0LGkscz0hMSl7aWYodGhpcy5obz09PWkmJnRoaXMuQ189PT10KXJldHVybjtjb25zdCBoPWZ1bmN0aW9uKHQpe2NvbnN0IGk9TWF0aC5mbG9vcih0LndpZHRoKSxzPU1hdGguZmxvb3IodC5oZWlnaHQpO3JldHVybiBlLnNpemUoe3dpZHRoOmktaSUyLGhlaWdodDpzLXMlMn0pfShlLnNpemUoe3dpZHRoOnQsaGVpZ2h0Oml9KSk7dGhpcy5obz1oLmhlaWdodCx0aGlzLkNfPWgud2lkdGg7Y29uc3Qgbj10aGlzLmhvKyJweCIscj10aGlzLkNfKyJweCI7aWYodGhpcy53TSgpfHwoZCh0aGlzLkh2KS5zdHlsZS5oZWlnaHQ9bixkKHRoaXMuSHYpLnN0eWxlLndpZHRoPXIpLHRoaXMuck0uc3R5bGUuaGVpZ2h0PW4sdGhpcy5yTS5zdHlsZS53aWR0aD1yLHMpezAhPT10aGlzLkp3JiYod2luZG93LmNhbmNlbEFuaW1hdGlvbkZyYW1lKHRoaXMuSncpLHRoaXMuSnc9MCksdGhpcy5uTT0hMTtjb25zdCB0PVgueXMoKTtudWxsIT09dGhpcy5pTSYmKHQuU3ModGhpcy5pTSksdGhpcy5pTT1udWxsKSx0aGlzLk1NKHQscGVyZm9ybWFuY2Uubm93KCkpfWVsc2UgdGhpcy5zbi5QYSgpfWttKHQpe3ZvaWQgMD09PXQmJih0PVgueXMoKSk7Zm9yKGxldCBpPTA7aTx0aGlzLkd3Lmxlbmd0aDtpKyspdGhpcy5Hd1tpXS5rbSh0Ll9zKGkpLnJzKTt0aGlzLnluLnRpbWVTY2FsZS52aXNpYmxlJiZ0aGlzLl9NLmttKHQubHMoKSl9dnIodCl7Y29uc3QgaT1acyh0aGlzLnluKTt0aGlzLnNuLnZyKHQpO2NvbnN0IHM9WnModGhpcy55bik7cyE9PWkmJnRoaXMubE0ocyksdC5sYXlvdXQ/LnBhbmVzJiZ0aGlzLmdNKCksdGhpcy5mTSgpLHRoaXMuYk0odCl9ZHcoKXtyZXR1cm4gdGhpcy5XbX1mdygpe3JldHVybiB0aGlzLkhtfURkKCl7cmV0dXJuIHRoaXMucGR9U00odD0hMSl7bnVsbCE9PXRoaXMuaU0mJih0aGlzLk1NKHRoaXMuaU0scGVyZm9ybWFuY2Uubm93KCkpLHRoaXMuaU09bnVsbCk7Y29uc3QgaT10aGlzLnhNKG51bGwpLHM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIik7cy53aWR0aD1pLndpZHRoLHMuaGVpZ2h0PWkuaGVpZ2h0O2NvbnN0IGU9ZChzLmdldENvbnRleHQoIjJkIikpO3JldHVybiB0aGlzLnhNKGUsdCksc31DTSh0KXtyZXR1cm4oImxlZnQiIT09dHx8dGhpcy55TSgpKSYmKCJyaWdodCIhPT10fHx0aGlzLmtNKCkpPzA9PT10aGlzLkd3Lmxlbmd0aD8wOmQoImxlZnQiPT09dD90aGlzLkd3WzBdLlN3KCk6dGhpcy5Hd1swXS54dygpKS55bSgpOjB9d00oKXtyZXR1cm4gdGhpcy55bi5hdXRvU2l6ZSYmbnVsbCE9PXRoaXMuc019dnYoKXtyZXR1cm4gdGhpcy5Idn1QTSh0KXt0aGlzLmVNPXQsdGhpcy5lTT90aGlzLnZ2KCkuc3R5bGUuc2V0UHJvcGVydHkoImN1cnNvciIsdCk6dGhpcy52digpLnN0eWxlLnJlbW92ZVByb3BlcnR5KCJjdXJzb3IiKX1UTSgpe3JldHVybiB0aGlzLmVNfVJNKHQpe3JldHVybiBjKHRoaXMuR3dbdF0pLmN2KCl9Z00oKXt0aGlzLlh3LmZvckVhY2goKHQ9Pnt0Lmt0KCl9KSl9Yk0odCl7KHZvaWQgMCE9PXQuYXV0b1NpemV8fCF0aGlzLnNNfHx2b2lkIDA9PT10LndpZHRoJiZ2b2lkIDA9PT10LmhlaWdodCkmJih0LmF1dG9TaXplJiYhdGhpcy5zTSYmdGhpcy51TSgpLCExPT09dC5hdXRvU2l6ZSYmbnVsbCE9PXRoaXMuc00mJnRoaXMubU0oKSx0LmF1dG9TaXplfHx2b2lkIDA9PT10LndpZHRoJiZ2b2lkIDA9PT10LmhlaWdodHx8dGhpcy5jTSh0LndpZHRofHx0aGlzLkNfLHQuaGVpZ2h0fHx0aGlzLmhvKSl9eE0odCxpKXtsZXQgcz0wLGg9MDtjb25zdCBuPXRoaXMuR3dbMF0scj0ocyxlKT0+e2xldCBoPTA7Zm9yKGxldCBuPTA7bjx0aGlzLkd3Lmxlbmd0aDtuKyspe2NvbnN0IHI9dGhpcy5Hd1tuXSxvPWQoImxlZnQiPT09cz9yLlN3KCk6ci54dygpKSxsPW8uZHYoKTtpZihudWxsIT09dCYmby5mdih0LGUsaCxpKSxoKz1sLmhlaWdodCxuPHRoaXMuR3cubGVuZ3RoLTEpe2NvbnN0IGk9dGhpcy5Yd1tuXSxzPWkuZHYoKTtudWxsIT09dCYmaS5mdih0LGUsaCksaCs9cy5oZWlnaHR9fX07dGhpcy55TSgpJiYocigibGVmdCIsMCkscys9ZChuLlN3KCkpLmR2KCkud2lkdGgpO2ZvcihsZXQgZT0wO2U8dGhpcy5Hdy5sZW5ndGg7ZSsrKXtjb25zdCBuPXRoaXMuR3dbZV0scj1uLmR2KCk7aWYobnVsbCE9PXQmJm4uZnYodCxzLGgsaSksaCs9ci5oZWlnaHQsZTx0aGlzLkd3Lmxlbmd0aC0xKXtjb25zdCBpPXRoaXMuWHdbZV0sbj1pLmR2KCk7bnVsbCE9PXQmJmkuZnYodCxzLGgpLGgrPW4uaGVpZ2h0fX1zKz1uLmR2KCkud2lkdGgsdGhpcy5rTSgpJiYocigicmlnaHQiLHMpLHMrPWQobi54dygpKS5kdigpLndpZHRoKTtjb25zdCBvPShpLHMsZSk9PntkKCJsZWZ0Ij09PWk/dGhpcy5fTS5PdygpOnRoaXMuX00uTncoKSkuZnYoZCh0KSxzLGUpfTtpZih0aGlzLnluLnRpbWVTY2FsZS52aXNpYmxlKXtjb25zdCBzPXRoaXMuX00uZHYoKTtpZihudWxsIT09dCl7bGV0IGU9MDt0aGlzLnlNKCkmJihvKCJsZWZ0IixlLGgpLGU9ZChuLlN3KCkpLmR2KCkud2lkdGgpLHRoaXMuX00uZnYodCxlLGgsaSksZSs9cy53aWR0aCx0aGlzLmtNKCkmJm8oInJpZ2h0IixlLGgpfWgrPXMuaGVpZ2h0fXJldHVybiBlLnNpemUoe3dpZHRoOnMsaGVpZ2h0Omh9KX1ETSgpe2xldCB0PTAsaT0wLHM9MDtmb3IoY29uc3QgZSBvZiB0aGlzLkd3KXRoaXMueU0oKSYmKGk9TWF0aC5tYXgoaSxkKGUuU3coKSkuYm0oKSx0aGlzLnluLmxlZnRQcmljZVNjYWxlLm1pbmltdW1XaWR0aCkpLAp0aGlzLmtNKCkmJihzPU1hdGgubWF4KHMsZChlLnh3KCkpLmJtKCksdGhpcy55bi5yaWdodFByaWNlU2NhbGUubWluaW11bVdpZHRoKSksdCs9ZS56XygpO2k9ZnMoaSkscz1mcyhzKTtjb25zdCBoPXRoaXMuQ18sbj10aGlzLmhvLHI9TWF0aC5tYXgoaC1pLXMsMCksbz0xKnRoaXMuWHcubGVuZ3RoLGw9dGhpcy55bi50aW1lU2NhbGUudmlzaWJsZTtsZXQgYT1sP01hdGgubWF4KHRoaXMuX00uSHcoKSx0aGlzLnluLnRpbWVTY2FsZS5taW5pbXVtSGVpZ2h0KTowO3ZhciB1O2E9KHU9YSkrdSUyO2NvbnN0IGM9bythLGY9bjxjPzA6bi1jLG09Zi90O2xldCBwPTA7Y29uc3QgZz13aW5kb3cuZGV2aWNlUGl4ZWxSYXRpb3x8MTtmb3IobGV0IHQ9MDt0PHRoaXMuR3cubGVuZ3RoOysrdCl7Y29uc3QgaD10aGlzLkd3W3RdO2guaXcodGhpcy5zbi5abigpW3RdKTtsZXQgbj0wLG89MDtvPXQ9PT10aGlzLkd3Lmxlbmd0aC0xP01hdGguY2VpbCgoZi1wKSpnKS9nOk1hdGgucm91bmQoaC56XygpKm0qZykvZyxuPU1hdGgubWF4KG8sMikscCs9bixoLkNtKGUuc2l6ZSh7d2lkdGg6cixoZWlnaHQ6bn0pKSx0aGlzLnlNKCkmJmgubXcoaSwibGVmdCIpLHRoaXMua00oKSYmaC5tdyhzLCJyaWdodCIpLGguU3YoKSYmdGhpcy5zbi5JZChoLlN2KCksbil9dGhpcy5fTS5XdyhlLnNpemUoe3dpZHRoOmw/cjowLGhlaWdodDphfSksbD9pOjAsbD9zOjApLHRoaXMuc24uTl8ociksdGhpcy5RdyE9PWkmJih0aGlzLlF3PWkpLHRoaXMudE0hPT1zJiYodGhpcy50TT1zKX1sTSh0KXt0P3RoaXMuSHYuYWRkRXZlbnRMaXN0ZW5lcigid2hlZWwiLHRoaXMuaE0se3Bhc3NpdmU6ITF9KTp0aGlzLkh2LnJlbW92ZUV2ZW50TGlzdGVuZXIoIndoZWVsIix0aGlzLmhNKX1JTSh0KXtzd2l0Y2godC5kZWx0YU1vZGUpe2Nhc2UgdC5ET01fREVMVEFfUEFHRTpyZXR1cm4gMTIwO2Nhc2UgdC5ET01fREVMVEFfTElORTpyZXR1cm4gMzJ9cmV0dXJuICRzPzEvd2luZG93LmRldmljZVBpeGVsUmF0aW86MX1hTSh0KXtpZighKDAhPT10LmRlbHRhWCYmdGhpcy55bi5oYW5kbGVTY3JvbGwubW91c2VXaGVlbHx8MCE9PXQuZGVsdGFZJiZ0aGlzLnluLmhhbmRsZVNjYWxlLm1vdXNlV2hlZWwpKXJldHVybjtjb25zdCBpPXRoaXMuSU0odCkscz1pKnQuZGVsdGFYLzEwMCxlPS1pKnQuZGVsdGFZLzEwMDtpZih0LmNhbmNlbGFibGUmJnQucHJldmVudERlZmF1bHQoKSwwIT09ZSYmdGhpcy55bi5oYW5kbGVTY2FsZS5tb3VzZVdoZWVsKXtjb25zdCBpPU1hdGguc2lnbihlKSpNYXRoLm1pbigxLE1hdGguYWJzKGUpKSxzPXQuY2xpZW50WC10aGlzLkh2LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmxlZnQ7dGhpcy5RdCgpLk9kKHMsaSl9MCE9PXMmJnRoaXMueW4uaGFuZGxlU2Nyb2xsLm1vdXNlV2hlZWwmJnRoaXMuUXQoKS5OZCgtODAqcyl9TU0odCxpKXtjb25zdCBzPXQubHMoKTszPT09cyYmdGhpcy5WTSgpLDMhPT1zJiYyIT09c3x8KHRoaXMuQk0odCksdGhpcy5FTSh0LGkpLHRoaXMuX00ua3QoKSx0aGlzLkd3LmZvckVhY2goKHQ9Pnt0LnN3KCl9KSksMz09PXRoaXMuaU0/LmxzKCkmJih0aGlzLmlNLlNzKHQpLHRoaXMuVk0oKSx0aGlzLkJNKHRoaXMuaU0pLHRoaXMuRU0odGhpcy5pTSxpKSx0PXRoaXMuaU0sdGhpcy5pTT1udWxsKSksdGhpcy5rbSh0KX1FTSh0LGkpe2Zvcihjb25zdCBzIG9mIHQuYnMoKSl0aGlzLnhzKHMsaSl9Qk0odCl7Y29uc3QgaT10aGlzLnNuLlpuKCk7Zm9yKGxldCBzPTA7czxpLmxlbmd0aDtzKyspdC5fcyhzKS5ocyYmaVtzXS5ydSgpfXhzKHQsaSl7Y29uc3Qgcz10aGlzLnNuLkV0KCk7c3dpdGNoKHQuZHMpe2Nhc2UgMDpzLlhjKCk7YnJlYWs7Y2FzZSAxOnMuSmModC5XdCk7YnJlYWs7Y2FzZSAyOnMuTXModC5XdCk7YnJlYWs7Y2FzZSAzOnMuZ3ModC5XdCk7YnJlYWs7Y2FzZSA0OnMuT2MoKTticmVhaztjYXNlIDU6dC5XdC5qYyhpKXx8cy5ncyh0Lld0LnFjKGkpKX19bWQodCl7bnVsbCE9PXRoaXMuaU0/dGhpcy5pTS5Tcyh0KTp0aGlzLmlNPXQsdGhpcy5uTXx8KHRoaXMubk09ITAsdGhpcy5Kdz13aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKCh0PT57aWYodGhpcy5uTT0hMSx0aGlzLkp3PTAsbnVsbCE9PXRoaXMuaU0pe2NvbnN0IGk9dGhpcy5pTTt0aGlzLmlNPW51bGwsdGhpcy5NTShpLHQpO2Zvcihjb25zdCBzIG9mIGkuYnMoKSlpZig1PT09cy5kcyYmIXMuV3QuamModCkpe3RoaXMuUXQoKS5wcyhzLld0KTticmVha319fSkpKX1WTSgpe3RoaXMuZE0oKX12TSh0KXt0aGlzLnJNLnJlbW92ZUNoaWxkKHQudXYoKSksdC5tKCl9ZE0oKXtjb25zdCB0PXRoaXMuc24uWm4oKSxpPXQubGVuZ3RoLHM9dGhpcy5Hdy5sZW5ndGg7Zm9yKGxldCB0PWk7dDxzO3QrKyl7Y29uc3QgdD1jKHRoaXMuR3cucG9wKCkpO3RoaXMuck0ucmVtb3ZlQ2hpbGQodC51digpKSx0LmR3KCkudSh0aGlzKSx0LmZ3KCkudSh0aGlzKSx0Lm0oKTtjb25zdCBpPXRoaXMuWHcucG9wKCk7dm9pZCAwIT09aSYmdGhpcy52TShpKX1mb3IobGV0IGU9cztlPGk7ZSsrKXtjb25zdCBpPW5ldyBXcyh0aGlzLHRbZV0pO2lmKGkuZHcoKS5pKHRoaXMuQU0uYmluZCh0aGlzLGkpLHRoaXMpLGkuZncoKS5pKHRoaXMuTE0uYmluZCh0aGlzLGkpLHRoaXMpLHRoaXMuR3cucHVzaChpKSxlPjApe2NvbnN0IHQ9bmV3IE1zKHRoaXMsZS0xLGUpO3RoaXMuWHcucHVzaCh0KSx0aGlzLnJNLmluc2VydEJlZm9yZSh0LnV2KCksdGhpcy5fTS51digpKX10aGlzLnJNLmluc2VydEJlZm9yZShpLnV2KCksdGhpcy5fTS51digpKX1mb3IobGV0IHM9MDtzPGk7cysrKXtjb25zdCBpPXRbc10sZT10aGlzLkd3W3NdO2UuU3YoKSE9PWk/ZS5pdyhpKTplLnR3KCl9dGhpcy5mTSgpLHRoaXMuRE0oKX16TSh0LGkscyxlKXtjb25zdCBoPW5ldyBNYXA7bGV0IG47aWYobnVsbCE9PXQmJnRoaXMuc24uSm4oKS5mb3JFYWNoKChpPT57Y29uc3Qgcz1pLlVuKCkuSG4odCk7bnVsbCE9PXMmJmguc2V0KGkscyl9KSksbnVsbCE9PXQpe2NvbnN0IGk9dGhpcy5zbi5FdCgpLmVuKHQpPy5vcmlnaW5hbFRpbWU7dm9pZCAwIT09aSYmKG49aSl9CmNvbnN0IHI9dGhpcy5RdCgpLm91KCksbz10aGlzLk9NKGUpLGw9ZnVuY3Rpb24odCxpKXtjb25zdCBzPW51bGwhPT10JiZ0Lmx1IGluc3RhbmNlb2YganQ/dC5sdTp2b2lkIDAsZT10Py53dT8udGUsaD12b2lkIDAhPT1pJiYtMSE9PWk/aTp2b2lkIDA7cmV0dXJuIG51bGw9PT10fHx2b2lkIDA9PT10LmVlP3tOTTpzLEZNOmV9OntOTTpzLEZNOmUsV006e2RzOnQuZWUsSE06KG49dC5sdSxyPXQuZWUsbiBpbnN0YW5jZW9mIENpPyJwYW5lLXByaW1pdGl2ZSI6Im1hcmtlciI9PT1yfHwicHJpbWl0aXZlIj09PXI/InNlcmllcy1wcmltaXRpdmUiOiJzZXJpZXMiKSxVTTpkcyh0LmVlLGUpLFVfOnMsJE06ZSxqTTpofX07dmFyIG4scn0ocixvKTtyZXR1cm57UXI6biwkbjp0Pz92b2lkIDAscU06aT8/dm9pZCAwLGpNOi0xIT09bz9vOnZvaWQgMCxOTTpsLk5NLFlNOmgsRk06bC5GTSxXTTpsLldNLEtNOnM/P3ZvaWQgMH19T00odCl7bGV0IGk9LTE7aWYodClpPXRoaXMuR3cuaW5kZXhPZih0KTtlbHNle2NvbnN0IHQ9dGhpcy5RdCgpLlJkKCkuS24oKTtudWxsIT09dCYmKGk9dGhpcy5RdCgpLlpuKCkuaW5kZXhPZih0KSl9cmV0dXJuIGl9QU0odCxpLHMsZSl7dGhpcy5XbS5wKCgoKT0+dGhpcy56TShpLHMsZSx0KSkpfUxNKHQsaSxzLGUpe3RoaXMuSG0ucCgoKCk9PnRoaXMuek0oaSxzLGUsdCkpKX1vTSh0LGkscyl7dGhpcy5QTSh0aGlzLlF0KCkub3UoKT8ubXU/P251bGwpLHRoaXMucGQucCgoKCk9PnRoaXMuek0odCxpLHMpKSl9Zk0oKXtjb25zdCB0PXRoaXMueW4udGltZVNjYWxlLnZpc2libGU/IiI6Im5vbmUiO3RoaXMuX00udXYoKS5zdHlsZS5kaXNwbGF5PXR9eU0oKXtyZXR1cm4gdGhpcy5Hd1swXS5TdigpLktfKCkuTigpLnZpc2libGV9a00oKXtyZXR1cm4gdGhpcy5Hd1swXS5TdigpLlpfKCkuTigpLnZpc2libGV9dU0oKXtyZXR1cm4iUmVzaXplT2JzZXJ2ZXIiaW4gd2luZG93JiYodGhpcy5zTT1uZXcgUmVzaXplT2JzZXJ2ZXIoKHQ9Pntjb25zdCBpPXRbdC5sZW5ndGgtMV07aWYoIWkpcmV0dXJuO2NvbnN0IHM9aS5jb250ZW50UmVjdC53aWR0aCxlPWkuY29udGVudFJlY3QuaGVpZ2h0O3RoaXMuY00ocyxlLCEwKX0pKSx0aGlzLnNNLm9ic2VydmUodGhpcy5qdix7Ym94OiJib3JkZXItYm94In0pLCEwKX1tTSgpe251bGwhPT10aGlzLnNNJiZ0aGlzLnNNLmRpc2Nvbm5lY3QoKSx0aGlzLnNNPW51bGx9fWZ1bmN0aW9uIFpzKHQpe3JldHVybiBCb29sZWFuKHQuaGFuZGxlU2Nyb2xsLm1vdXNlV2hlZWx8fHQuaGFuZGxlU2NhbGUubW91c2VXaGVlbCl9ZnVuY3Rpb24gWXModCl7cmV0dXJuIHZvaWQgMD09PXQub3BlbiYmdm9pZCAwPT09dC52YWx1ZX1mdW5jdGlvbiBIcyh0KXtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIHZvaWQgMCE9PXQub3Blbn0odCl8fGZ1bmN0aW9uKHQpe3JldHVybiB2b2lkIDAhPT10LnZhbHVlfSh0KX1mdW5jdGlvbiBHcyh0LGkscyxlKXtjb25zdCBoPXMudmFsdWUsbj17JG46aSx3dDp0LFd0OltoLGgsaCxoXSxRcjplfTtyZXR1cm4gdm9pZCAwIT09cy5jb2xvciYmKG4uUj1zLmNvbG9yKSxufWZ1bmN0aW9uIFVzKHQsaSxzLGUpe2NvbnN0IGg9cy52YWx1ZSxuPXskbjppLHd0OnQsV3Q6W2gsaCxoLGhdLFFyOmV9O3JldHVybiB2b2lkIDAhPT1zLmxpbmVDb2xvciYmKG4udnQ9cy5saW5lQ29sb3IpLHZvaWQgMCE9PXMudG9wQ29sb3ImJihuLmFoPXMudG9wQ29sb3IpLHZvaWQgMCE9PXMuYm90dG9tQ29sb3ImJihuLm9oPXMuYm90dG9tQ29sb3IpLG59ZnVuY3Rpb24ganModCxpLHMsZSl7Y29uc3QgaD1zLnZhbHVlLG49eyRuOmksd3Q6dCxXdDpbaCxoLGgsaF0sUXI6ZX07cmV0dXJuIHZvaWQgMCE9PXMudG9wTGluZUNvbG9yJiYobi5faD1zLnRvcExpbmVDb2xvciksdm9pZCAwIT09cy5ib3R0b21MaW5lQ29sb3ImJihuLnVoPXMuYm90dG9tTGluZUNvbG9yKSx2b2lkIDAhPT1zLnRvcEZpbGxDb2xvcjEmJihuLmRoPXMudG9wRmlsbENvbG9yMSksdm9pZCAwIT09cy50b3BGaWxsQ29sb3IyJiYobi5maD1zLnRvcEZpbGxDb2xvcjIpLHZvaWQgMCE9PXMuYm90dG9tRmlsbENvbG9yMSYmKG4ucGg9cy5ib3R0b21GaWxsQ29sb3IxKSx2b2lkIDAhPT1zLmJvdHRvbUZpbGxDb2xvcjImJihuLm1oPXMuYm90dG9tRmlsbENvbG9yMiksbn1mdW5jdGlvbiBYcyh0LGkscyxlKXtjb25zdCBoPXskbjppLHd0OnQsV3Q6W3Mub3BlbixzLmhpZ2gscy5sb3cscy5jbG9zZV0sUXI6ZX07cmV0dXJuIHZvaWQgMCE9PXMuY29sb3ImJihoLlI9cy5jb2xvciksaH1mdW5jdGlvbiBKcyh0LGkscyxlKXtjb25zdCBoPXskbjppLHd0OnQsV3Q6W3Mub3BlbixzLmhpZ2gscy5sb3cscy5jbG9zZV0sUXI6ZX07cmV0dXJuIHZvaWQgMCE9PXMuY29sb3ImJihoLlI9cy5jb2xvciksdm9pZCAwIT09cy5ib3JkZXJDb2xvciYmKGguSHQ9cy5ib3JkZXJDb2xvciksdm9pZCAwIT09cy53aWNrQ29sb3ImJihoLmhoPXMud2lja0NvbG9yKSxofWZ1bmN0aW9uIHRlKHQsaSxzLGUsaCl7Y29uc3Qgbj1jKGgpKHMpLHI9TWF0aC5tYXgoLi4ubiksbz1NYXRoLm1pbiguLi5uKSxsPW5bbi5sZW5ndGgtMV0sYT1bbCxyLG8sbF0se3RpbWU6dSxjb2xvcjpkLC4uLmZ9PXM7cmV0dXJueyRuOmksd3Q6dCxXdDphLFFyOmUsdWU6ZixSOmR9fWZ1bmN0aW9uIGllKHQpe3JldHVybiB2b2lkIDAhPT10Lld0fWZ1bmN0aW9uIHNlKHQsaSl7cmV0dXJuIHZvaWQgMCE9PWkuY3VzdG9tVmFsdWVzJiYodC5aTT1pLmN1c3RvbVZhbHVlcyksdH1mdW5jdGlvbiBlZSh0KXtyZXR1cm4oaSxzLGUsaCxuLHIpPT5mdW5jdGlvbih0LGkpe3JldHVybiBpP2kodCk6WXModCl9KGUscik/c2Uoe3d0OmksJG46cyxRcjpofSxlKTpzZSh0KGkscyxlLGgsbiksZSl9ZnVuY3Rpb24gaGUodCl7cmV0dXJue0NhbmRsZXN0aWNrOmVlKEpzKSxCYXI6ZWUoWHMpLEFyZWE6ZWUoVXMpLEJhc2VsaW5lOmVlKGpzKSxIaXN0b2dyYW06ZWUoR3MpLExpbmU6ZWUoR3MpLEN1c3RvbTplZSh0ZSl9W3RdfWZ1bmN0aW9uIG5lKHQpe3JldHVybnskbjowLEdNOm5ldyBNYXAsemE6dH19ZnVuY3Rpb24gcmUodCxpKXsKaWYodm9pZCAwIT09dCYmMCE9PXQubGVuZ3RoKXJldHVybntYTTppLmtleSh0WzBdLnd0KSxKTTppLmtleSh0W3QubGVuZ3RoLTFdLnd0KX19ZnVuY3Rpb24gb2UodCl7bGV0IGk7cmV0dXJuIHQuZm9yRWFjaCgodD0+e3ZvaWQgMD09PWkmJihpPXQuUXIpfSkpLGMoaSl9Y2xhc3MgbGV7Y29uc3RydWN0b3IodCl7dGhpcy5RTT1uZXcgTWFwLHRoaXMudGc9bmV3IE1hcCx0aGlzLmlnPW5ldyBNYXAsdGhpcy5uZz1bXSx0aGlzLnh1PXR9bSgpe3RoaXMuUU0uY2xlYXIoKSx0aGlzLnRnLmNsZWFyKCksdGhpcy5pZy5jbGVhcigpLHRoaXMubmc9W119c2codCxpKXtsZXQgcz0wIT09dGhpcy5RTS5zaXplLGU9ITE7Y29uc3QgaD10aGlzLnRnLmdldCh0KTtpZih2b2lkIDAhPT1oKWlmKDE9PT10aGlzLnRnLnNpemUpcz0hMSxlPSEwLHRoaXMuUU0uY2xlYXIoKTtlbHNlIGZvcihjb25zdCBpIG9mIHRoaXMubmcpaS5wb2ludERhdGEuR00uZGVsZXRlKHQpJiYoZT0hMCk7bGV0IG49W107aWYoMCE9PWkubGVuZ3RoKXtjb25zdCBzPWkubWFwKCh0PT50LnRpbWUpKSxoPXRoaXMueHUuY3JlYXRlQ29udmVydGVyVG9JbnRlcm5hbE9iaihpKSxyPWhlKHQuYmgoKSksbz10LmxsKCksbD10Lm9sKCk7bj1pLm1hcCgoKGksbik9Pntjb25zdCBhPWgoaS50aW1lKSx1PXRoaXMueHUua2V5KGEpO2xldCBjPXRoaXMuUU0uZ2V0KHUpO3ZvaWQgMD09PWMmJihjPW5lKGEpLHRoaXMuUU0uc2V0KHUsYyksZT0hMCk7Y29uc3QgZD1yKGEsYy4kbixpLHNbbl0sbyxsKTtyZXR1cm4gYy5HTS5zZXQodCxkKSxkfSkpfXMmJnRoaXMuZWcoKSx0aGlzLnJnKHQsbik7bGV0IHI9LTE7aWYoZSl7Y29uc3QgdD1bXTt0aGlzLlFNLmZvckVhY2goKGk9Pnt0LnB1c2goe3RpbWVXZWlnaHQ6MCx0aW1lOmkuemEscG9pbnREYXRhOmksb3JpZ2luYWxUaW1lOm9lKGkuR00pfSl9KSksdC5zb3J0KCgodCxpKT0+dGhpcy54dS5rZXkodC50aW1lKS10aGlzLnh1LmtleShpLnRpbWUpKSkscj10aGlzLmhnKHQpfXJldHVybiB0aGlzLmFnKHQscixmdW5jdGlvbih0LGkscyl7Y29uc3QgZT1yZSh0LHMpLGg9cmUoaSxzKTtpZih2b2lkIDAhPT1lJiZ2b2lkIDAhPT1oKXJldHVybntsZzohMSxJYTplLkpNPj1oLkpNJiZlLlhNPj1oLlhNfX0odGhpcy50Zy5nZXQodCksaCx0aGlzLnh1KSl9SmQodCl7cmV0dXJuIHRoaXMuc2codCxbXSl9b2codCxpLHMpe2lmKHMmJnQuTmEoKSl0aHJvdyBuZXcgRXJyb3IoIkhpc3RvcmljYWwgdXBkYXRlcyBhcmUgbm90IHN1cHBvcnRlZCB3aGVuIGNvbmZsYXRpb24gaXMgZW5hYmxlZC4gQ29uZmxhdGlvbiByZXF1aXJlcyBkYXRhIHRvIGJlIHByb2Nlc3NlZCBpbiBvcmRlci4iKTtjb25zdCBlPWk7IWZ1bmN0aW9uKHQpe3ZvaWQgMD09PXQuUXImJih0LlFyPXQudGltZSl9KGUpLHRoaXMueHUucHJlcHJvY2Vzc0RhdGEoaSk7Y29uc3QgaD10aGlzLnh1LmNyZWF0ZUNvbnZlcnRlclRvSW50ZXJuYWxPYmooW2ldKShpLnRpbWUpLG49dGhpcy5pZy5nZXQodCk7aWYoIXMmJnZvaWQgMCE9PW4mJnRoaXMueHUua2V5KGgpPHRoaXMueHUua2V5KG4pKXRocm93IG5ldyBFcnJvcihgQ2Fubm90IHVwZGF0ZSBvbGRlc3QgZGF0YSwgbGFzdCB0aW1lPSR7bn0sIG5ldyB0aW1lPSR7aH1gKTtsZXQgcj10aGlzLlFNLmdldCh0aGlzLnh1LmtleShoKSk7aWYocyYmdm9pZCAwPT09cil0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCB1cGRhdGUgbm9uLWV4aXN0aW5nIGRhdGEgcG9pbnQgd2hlbiBoaXN0b3JpY2FsVXBkYXRlIGlzIHRydWUiKTtjb25zdCBvPXZvaWQgMD09PXI7dm9pZCAwPT09ciYmKHI9bmUoaCksdGhpcy5RTS5zZXQodGhpcy54dS5rZXkoaCkscikpO2NvbnN0IGw9aGUodC5iaCgpKSxhPXQubGwoKSx1PXQub2woKSxjPWwoaCxyLiRuLGksZS5RcixhLHUpLGQ9IXMmJiFvJiZ2b2lkIDAhPT1uJiZ0aGlzLnh1LmtleShoKT09PXRoaXMueHUua2V5KG4pO3IuR00uc2V0KHQsYykscz90aGlzLl9nKHQsYyxyLiRuKTpkJiZ0Lk5hKCkmJmllKGMpPyh0LlJyKGMpLHRoaXMudWcodCxjKSk6dGhpcy51Zyh0LGMpO2NvbnN0IGY9e0lhOmllKGMpLGxnOnN9O2lmKCFvKXJldHVybiB0aGlzLmFnKHQsLTEsZik7Y29uc3QgbT17dGltZVdlaWdodDowLHRpbWU6ci56YSxwb2ludERhdGE6cixvcmlnaW5hbFRpbWU6b2Uoci5HTSl9LHA9RXQodGhpcy5uZyx0aGlzLnh1LmtleShtLnRpbWUpLCgodCxpKT0+dGhpcy54dS5rZXkodC50aW1lKTxpKSk7dGhpcy5uZy5zcGxpY2UocCwwLG0pO2ZvcihsZXQgdD1wO3Q8dGhpcy5uZy5sZW5ndGg7Kyt0KWFlKHRoaXMubmdbdF0ucG9pbnREYXRhLHQpO3JldHVybiB0aGlzLnh1LmZpbGxXZWlnaHRzRm9yUG9pbnRzKHRoaXMubmcscCksdGhpcy5hZyh0LHAsZil9Y2codCxpKXtjb25zdCBzPXRoaXMudGcuZ2V0KHQpO2lmKHZvaWQgMD09PXN8fGk8PTApcmV0dXJuW1tdLHRoaXMuZGcoKV07aT1NYXRoLm1pbihpLHMubGVuZ3RoKTtjb25zdCBlPXMuc3BsaWNlKC1pKS5yZXZlcnNlKCk7MD09PXMubGVuZ3RoP3RoaXMuaWcuZGVsZXRlKHQpOnRoaXMuaWcuc2V0KHQsc1tzLmxlbmd0aC0xXS53dCk7Zm9yKGNvbnN0IGkgb2YgZSl7Y29uc3Qgcz10aGlzLlFNLmdldCh0aGlzLnh1LmtleShpLnd0KSk7aWYocyYmKHMuR00uZGVsZXRlKHQpLDA9PT1zLkdNLnNpemUpKXt0aGlzLlFNLmRlbGV0ZSh0aGlzLnh1LmtleShzLnphKSksdGhpcy5uZy5zcGxpY2Uocy4kbiwxKTtmb3IobGV0IHQ9cy4kbjt0PHRoaXMubmcubGVuZ3RoOysrdClhZSh0aGlzLm5nW3RdLnBvaW50RGF0YSx0KX19cmV0dXJuW2UsdGhpcy5hZyh0LHRoaXMubmcubGVuZ3RoLTEse2xnOiExLElhOiExfSldfXVnKHQsaSl7bGV0IHM9dGhpcy50Zy5nZXQodCk7dm9pZCAwPT09cyYmKHM9W10sdGhpcy50Zy5zZXQodCxzKSk7Y29uc3QgZT0wIT09cy5sZW5ndGg/c1tzLmxlbmd0aC0xXTpudWxsO251bGw9PT1lfHx0aGlzLnh1LmtleShpLnd0KT50aGlzLnh1LmtleShlLnd0KT9pZShpKSYmcy5wdXNoKGkpOmllKGkpP3Nbcy5sZW5ndGgtMV09aTpzLnNwbGljZSgtMSwxKSx0aGlzLmlnLnNldCh0LGkud3QpfV9nKHQsaSxzKXsKY29uc3QgZT10aGlzLnRnLmdldCh0KTtpZih2b2lkIDA9PT1lKXJldHVybjtjb25zdCBoPUV0KGUscywoKHQsaSk9PnQuJG48aSkpO2llKGkpP2VbaF09aTplLnNwbGljZShoLDEpfXJnKHQsaSl7MCE9PWkubGVuZ3RoPyh0aGlzLnRnLnNldCh0LGkuZmlsdGVyKGllKSksdGhpcy5pZy5zZXQodCxpW2kubGVuZ3RoLTFdLnd0KSk6KHRoaXMudGcuZGVsZXRlKHQpLHRoaXMuaWcuZGVsZXRlKHQpKX1lZygpe2Zvcihjb25zdCB0IG9mIHRoaXMubmcpMD09PXQucG9pbnREYXRhLkdNLnNpemUmJnRoaXMuUU0uZGVsZXRlKHRoaXMueHUua2V5KHQudGltZSkpfWhnKHQpe2xldCBpPS0xO2ZvcihsZXQgcz0wO3M8dGhpcy5uZy5sZW5ndGgmJnM8dC5sZW5ndGg7KytzKXtjb25zdCBlPXRoaXMubmdbc10saD10W3NdO2lmKHRoaXMueHUua2V5KGUudGltZSkhPT10aGlzLnh1LmtleShoLnRpbWUpKXtpPXM7YnJlYWt9aC50aW1lV2VpZ2h0PWUudGltZVdlaWdodCxhZShoLnBvaW50RGF0YSxzKX1pZigtMT09PWkmJnRoaXMubmcubGVuZ3RoIT09dC5sZW5ndGgmJihpPU1hdGgubWluKHRoaXMubmcubGVuZ3RoLHQubGVuZ3RoKSksLTE9PT1pKXJldHVybi0xO2ZvcihsZXQgcz1pO3M8dC5sZW5ndGg7KytzKWFlKHRbc10ucG9pbnREYXRhLHMpO3JldHVybiB0aGlzLnh1LmZpbGxXZWlnaHRzRm9yUG9pbnRzKHQsaSksdGhpcy5uZz10LGl9ZmcoKXtpZigwPT09dGhpcy50Zy5zaXplKXJldHVybiBudWxsO2xldCB0PTA7cmV0dXJuIHRoaXMudGcuZm9yRWFjaCgoaT0+ezAhPT1pLmxlbmd0aCYmKHQ9TWF0aC5tYXgodCxpW2kubGVuZ3RoLTFdLiRuKSl9KSksdH1hZyh0LGkscyl7Y29uc3QgZT10aGlzLmRnKCk7aWYoLTEhPT1pKXRoaXMudGcuZm9yRWFjaCgoKGksaCk9PntlLlVfLnNldChoLHt1ZTppLHBnOmg9PT10P3M6dm9pZCAwfSl9KSksdGhpcy50Zy5oYXModCl8fGUuVV8uc2V0KHQse3VlOltdLHBnOnN9KSxlLkV0LnZnPXRoaXMubmcsZS5FdC5tZz1pO2Vsc2V7Y29uc3QgaT10aGlzLnRnLmdldCh0KTtlLlVfLnNldCh0LHt1ZTppfHxbXSxwZzpzfSl9cmV0dXJuIGV9ZGcoKXtyZXR1cm57VV86bmV3IE1hcCxFdDp7UGM6dGhpcy5mZygpfX19fWZ1bmN0aW9uIGFlKHQsaSl7dC4kbj1pLHQuR00uZm9yRWFjaCgodD0+e3QuJG49aX0pKX1mdW5jdGlvbiB1ZSh0LGkpe3JldHVybiB0Ll90PGl9ZnVuY3Rpb24gY2UodCxpKXtyZXR1cm4gaTx0Ll90fWZ1bmN0aW9uIGRlKHQsaSxzLGUpe3JldHVybiBFdCh0LGksdWUscyxlKX1mdW5jdGlvbiBmZSh0LGkscyxlKXtyZXR1cm4gTnQodCxpLGNlLHMsZSl9ZnVuY3Rpb24gbWUodCxpLHMpe3JldHVybntuZTp0LHNlOmksZWU6c319ZnVuY3Rpb24gcGUodCxpLHMsZSl7cmV0dXJuIHQ+PWktZSYmdDw9cytlfWZ1bmN0aW9uIGdlKHQsaSxzLGUsaCxuKXtjb25zdCByPWgtcyxvPW4tZTtpZigwPT09ciYmMD09PW8pcmV0dXJuIE1hdGguaHlwb3QodC1zLGktZSk7Y29uc3QgbD0oKHQtcykqcisoaS1lKSpvKS8ocipyK28qbyksYT1NYXRoLm1heCgwLE1hdGgubWluKDEsbCkpLHU9cytyKmEsYz1lK28qYTtyZXR1cm4gTWF0aC5oeXBvdCh0LXUsaS1jKX1jb25zdCB2ZT1bMCwwXTtmdW5jdGlvbiBiZSh0LGkscyl7cmV0dXJuIHZvaWQgMD09PWl8fGkud3QhPT10Lnd0LTE/dC5fdC1zLzI6KGkuX3QrdC5fdCkvMn1mdW5jdGlvbiB3ZSh0LGkscyl7cmV0dXJuIHZvaWQgMD09PWl8fGkud3QhPT10Lnd0KzE/dC5fdCtzLzI6KHQuX3QraS5fdCkvMn1mdW5jdGlvbiBNZSh0LGkscyxlLGgsbixyKXtpZihudWxsPT09aXx8aS5mcm9tPj1pLnRvfHwwPT09dC5sZW5ndGgpcmV0dXJuIG51bGw7Y29uc3Qgbz1oLzIrbixsPWRlKHQscy1vLGkuZnJvbSxpLnRvKSxhPWZlKHQscytvLGwsaS50byk7aWYobD49YSlyZXR1cm4gbnVsbDtsZXQgdT1OdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFk7Zm9yKGxldCBvPWw7bzxhO28rKyl7Y29uc3QgbD10W29dLGE9bz5pLmZyb20/dFtvLTFdOnZvaWQgMCxjPW88aS50by0xP3RbbysxXTp2b2lkIDAsZD1iZShsLGEsaCktbixmPXdlKGwsYyxoKStuO2lmKHM8ZHx8cz5mKWNvbnRpbnVlO3IobCx2ZSk7Y29uc3QgbT12ZVswXSxwPXZlWzFdLGc9TWF0aC5taW4obSxwKSx2PU1hdGgubWF4KG0scCksYj1nLW4sdz12K247aWYoZT49ZyYmZTw9dil1PU1hdGgubWluKHUsMCk7ZWxzZSBpZihlPj1iJiZlPD13KXtjb25zdCB0PU1hdGgubWluKE1hdGguYWJzKGUtZyksTWF0aC5hYnModi1lKSk7dT1NYXRoLm1pbih1LHQpfX1yZXR1cm4gTnVtYmVyLmlzRmluaXRlKHUpP21lKHUsMCwic2VyaWVzLXJhbmdlIik6bnVsbH1mdW5jdGlvbiBTZSh0LGkpe3JldHVybiB0Lnd0PGl9ZnVuY3Rpb24geWUodCxpKXtyZXR1cm4gaTx0Lnd0fWZ1bmN0aW9uIHhlKHQsaSxzKXtjb25zdCBlPWkuT2EoKSxoPWkuYmkoKSxuPUV0KHQsZSxTZSkscj1OdCh0LGgseWUpO2lmKCFzKXJldHVybntmcm9tOm4sdG86cn07bGV0IG89bixsPXI7cmV0dXJuIG4+MCYmbjx0Lmxlbmd0aCYmdFtuXS53dD49ZSYmKG89bi0xKSxyPjAmJnI8dC5sZW5ndGgmJnRbci0xXS53dDw9aCYmKGw9cisxKSx7ZnJvbTpvLHRvOmx9fWNsYXNzIF9le2NvbnN0cnVjdG9yKHQsaSxzKXt0aGlzLndnPSEwLHRoaXMuTWc9ITAsdGhpcy5nZz0hMCx0aGlzLmJnPVtdLHRoaXMuU2c9bnVsbCx0aGlzLnhnPS0xLHRoaXMuYWU9dCx0aGlzLmxlPWksdGhpcy5DZz1zfWt0KHQpe3RoaXMud2c9ITAsImRhdGEiPT09dCYmKHRoaXMuTWc9ITApLCJvcHRpb25zIj09PXQmJih0aGlzLmdnPSEwKX1UdCgpe3JldHVybiB0aGlzLmFlLkl0KCk/KHRoaXMueWcoKSxudWxsPT09dGhpcy5TZz9udWxsOnRoaXMua2cpOm51bGx9UXModCxpKXtyZXR1cm4gdGhpcy5hZS5JdCgpPyh0aGlzLnlnKCksbnVsbD09PXRoaXMuU2c/bnVsbDp0aGlzLlBnKHQsaSkpOm51bGx9UGcodCxpKXtyZXR1cm4gbnVsbH1UZygpe3RoaXMuYmc9dGhpcy5iZy5tYXAoKHQ9Pih7Li4udCwuLi50aGlzLmFlLlNhKCkuU2godC53dCl9KSkpfVJnKCl7dGhpcy5TZz1udWxsfXlnKCl7Y29uc3QgdD10aGlzLmxlLkV0KCksaT10Lk4oKS5lbmFibGVDb25mbGF0aW9uP3QuUWMoKTowCjtpIT09dGhpcy54ZyYmKHRoaXMuTWc9ITAsdGhpcy54Zz1pKSx0aGlzLk1nJiYodGhpcy5EZygpLHRoaXMuTWc9ITEpLHRoaXMuZ2cmJih0aGlzLlRnKCksdGhpcy5nZz0hMSksdGhpcy53ZyYmKHRoaXMuSWcoKSx0aGlzLndnPSExKX1JZygpe2NvbnN0IHQ9dGhpcy5hZS5GdCgpLGk9dGhpcy5sZS5FdCgpO2lmKHRoaXMuUmcoKSxpLkdpKCl8fHQuR2koKSlyZXR1cm47Y29uc3Qgcz1pLkVlKCk7aWYobnVsbD09PXMpcmV0dXJuO2lmKDA9PT10aGlzLmFlLlVuKCkuVGgoKSlyZXR1cm47Y29uc3QgZT10aGlzLmFlLkx0KCk7bnVsbCE9PWUmJih0aGlzLlNnPXhlKHRoaXMuYmcscyx0aGlzLkNnKSx0aGlzLlZnKHQsaSxlLld0KSx0aGlzLkJnKCkpfX1jbGFzcyBDZXtjb25zdHJ1Y3Rvcih0LGkpe3RoaXMuRWc9dCx0aGlzLktpPWl9c3QodCxpLHMpe3RoaXMuRWcuZHJhdyh0LHRoaXMuS2ksaSxzKX19ZnVuY3Rpb24gVGUodCl7c3dpdGNoKHQpe2Nhc2UicG9pbnQiOnJldHVybiAyO2Nhc2UicmFuZ2UiOnJldHVybiAwO2RlZmF1bHQ6cmV0dXJuIDF9fWNsYXNzIGtlIGV4dGVuZHMgX2V7Y29uc3RydWN0b3IodCxpLHMpe3N1cGVyKHQsaSwhMSksdGhpcy5ZaD1zLHRoaXMuRWc9dGhpcy5ZaC5yZW5kZXJlcigpLHRoaXMua2c9bmV3IENlKHRoaXMuRWcsKHQ9PnRoaXMuQWcodCkpKX1nZXQgZ2EoKXtyZXR1cm4gdGhpcy5ZaC5jb25mbGF0aW9uUmVkdWNlcn1XYSh0KXtyZXR1cm4gdGhpcy5ZaC5wcmljZVZhbHVlQnVpbGRlcih0KX1fbCh0KXtyZXR1cm4gdGhpcy5ZaC5pc1doaXRlc3BhY2UodCl9UGcodCxpKXtjb25zdCBzPXRoaXMuRWcuaGl0VGVzdD8uKHQsaSwodD0+dGhpcy5BZyh0KSkpO2lmKG51bGwhPXMpcmV0dXJue25lOihlPXMpLmRpc3RhbmNlLHNlOlRlKGUudHlwZSksZWU6ImN1c3RvbSIsbXU6ZS5jdXJzb3JTdHlsZSx0ZTplLm9iamVjdElkLGllOmUuaGl0VGVzdERhdGF9O3ZhciBlO2NvbnN0IGg9TWUodGhpcy5iZyx0aGlzLlNnLHQsaSx0aGlzLmxlLkV0KCkuZmwoKSx0aGlzLmFlLk4oKS5oaXRUZXN0VG9sZXJhbmNlLCgodCxpKT0+e2NvbnN0IHM9dC5MZztsZXQgZT1OYU4saD1OYU47aWYodm9pZCAwIT09cyYmIXRoaXMuWWguaXNXaGl0ZXNwYWNlKHMpKWZvcihjb25zdCB0IG9mIHRoaXMuWWgucHJpY2VWYWx1ZUJ1aWxkZXIocykpe2NvbnN0IGk9dGhpcy5BZyh0KTtudWxsIT09aSYmKGU9TnVtYmVyLmlzTmFOKGUpP2k6TWF0aC5taW4oZSxpKSxoPU51bWJlci5pc05hTihoKT9pOk1hdGgubWF4KGgsaSkpfWlbMF09ZSxpWzFdPWh9KSk7cmV0dXJuIG51bGw9PT1oP251bGw6ey4uLmgsZWU6ImN1c3RvbSJ9fURnKCl7Y29uc3QgdD10aGlzLmFlLlNhKCk7dGhpcy5iZz10aGlzLmFlLkhhKCkuQmgoKS5tYXAoKGk9Pih7d3Q6aS4kbixfdDpOYU4sLi4udC5TaChpLiRuKSxMZzppLnVlfSkpKX1WZyh0LGkpe2kuVGModGhpcy5iZyx5KHRoaXMuU2cpKX1CZygpe3RoaXMuWWgudXBkYXRlKHtiYXJzOnRoaXMuYmcubWFwKEVlKSxiYXJTcGFjaW5nOnRoaXMubGUuRXQoKS5mbCgpLHZpc2libGVSYW5nZTp0aGlzLlNnLGNvbmZsYXRpb25GYWN0b3I6dGhpcy5sZS5FdCgpLlFjKCl9LHRoaXMuYWUuTigpKX1BZyh0KXtjb25zdCBpPXRoaXMuYWUuTHQoKTtyZXR1cm4gbnVsbD09PWk/bnVsbDp0aGlzLmFlLkZ0KCkuTnQodCxpLld0KX19ZnVuY3Rpb24gRWUodCl7cmV0dXJue3g6dC5fdCx0aW1lOnQud3Qsb3JpZ2luYWxEYXRhOnQuTGcsYmFyQ29sb3I6dC5zaH19Y29uc3QgTmU9e2NvbG9yOiIjMjE5NmYzIn0semU9KHQsaSxzKT0+e2NvbnN0IGU9ZihzKTtyZXR1cm4gbmV3IGtlKHQsaSxlKX07ZnVuY3Rpb24gUGUodCl7Y29uc3QgaT17dmFsdWU6dC5XdFszXSx0aW1lOnQuUXJ9O3JldHVybiB2b2lkIDAhPT10LlpNJiYoaS5jdXN0b21WYWx1ZXM9dC5aTSksaX1mdW5jdGlvbiBxZSh0KXtjb25zdCBpPVBlKHQpO3JldHVybiB2b2lkIDAhPT10LlImJihpLmNvbG9yPXQuUiksaX1mdW5jdGlvbiBMZSh0KXtjb25zdCBpPVBlKHQpO3JldHVybiB2b2lkIDAhPT10LnZ0JiYoaS5saW5lQ29sb3I9dC52dCksdm9pZCAwIT09dC5haCYmKGkudG9wQ29sb3I9dC5haCksdm9pZCAwIT09dC5vaCYmKGkuYm90dG9tQ29sb3I9dC5vaCksaX1mdW5jdGlvbiBJZSh0KXtjb25zdCBpPVBlKHQpO3JldHVybiB2b2lkIDAhPT10Ll9oJiYoaS50b3BMaW5lQ29sb3I9dC5faCksdm9pZCAwIT09dC51aCYmKGkuYm90dG9tTGluZUNvbG9yPXQudWgpLHZvaWQgMCE9PXQuZGgmJihpLnRvcEZpbGxDb2xvcjE9dC5kaCksdm9pZCAwIT09dC5maCYmKGkudG9wRmlsbENvbG9yMj10LmZoKSx2b2lkIDAhPT10LnBoJiYoaS5ib3R0b21GaWxsQ29sb3IxPXQucGgpLHZvaWQgMCE9PXQubWgmJihpLmJvdHRvbUZpbGxDb2xvcjI9dC5taCksaX1mdW5jdGlvbiBSZSh0KXtjb25zdCBpPXtvcGVuOnQuV3RbMF0saGlnaDp0Lld0WzFdLGxvdzp0Lld0WzJdLGNsb3NlOnQuV3RbM10sdGltZTp0LlFyfTtyZXR1cm4gdm9pZCAwIT09dC5aTSYmKGkuY3VzdG9tVmFsdWVzPXQuWk0pLGl9ZnVuY3Rpb24gRmUodCl7Y29uc3QgaT1SZSh0KTtyZXR1cm4gdm9pZCAwIT09dC5SJiYoaS5jb2xvcj10LlIpLGl9ZnVuY3Rpb24gV2UodCl7Y29uc3QgaT1SZSh0KSx7UjpzLEh0OmUsaGg6aH09dDtyZXR1cm4gdm9pZCAwIT09cyYmKGkuY29sb3I9cyksdm9pZCAwIT09ZSYmKGkuYm9yZGVyQ29sb3I9ZSksdm9pZCAwIT09aCYmKGkud2lja0NvbG9yPWgpLGl9ZnVuY3Rpb24gUWUodCl7cmV0dXJue0FyZWE6TGUsTGluZTpxZSxCYXNlbGluZTpJZSxIaXN0b2dyYW06cWUsQmFyOkZlLENhbmRsZXN0aWNrOldlLEN1c3RvbTpEZX1bdF19ZnVuY3Rpb24gRGUodCl7Y29uc3QgaT10LlFyO3JldHVybnsuLi50LnVlLHRpbWU6aX19Y29uc3QgQmU9e3ZlcnRMaW5lOntjb2xvcjoiIzk1OThBMSIsd2lkdGg6MSxzdHlsZTozLHZpc2libGU6ITAsbGFiZWxWaXNpYmxlOiEwLGxhYmVsQmFja2dyb3VuZENvbG9yOiIjMTMxNzIyIn0saG9yekxpbmU6e2NvbG9yOiIjOTU5OEExIix3aWR0aDoxLHN0eWxlOjMsdmlzaWJsZTohMCxsYWJlbFZpc2libGU6ITAsCmxhYmVsQmFja2dyb3VuZENvbG9yOiIjMTMxNzIyIn0sbW9kZToxLGRvTm90U25hcFRvSGlkZGVuU2VyaWVzSW5kaWNlczohMX0sS2U9e3ZlcnRMaW5lczp7Y29sb3I6IiNENkRDREUiLHN0eWxlOjAsdmlzaWJsZTohMH0saG9yekxpbmVzOntjb2xvcjoiI0Q2RENERSIsc3R5bGU6MCx2aXNpYmxlOiEwfX0sT2U9e2JhY2tncm91bmQ6e3R5cGU6InNvbGlkIixjb2xvcjoiI0ZGRkZGRiJ9LHRleHRDb2xvcjoiIzE5MTkxOSIsZm9udFNpemU6MTIsZm9udEZhbWlseTp4LHBhbmVzOntlbmFibGVSZXNpemU6ITAsc2VwYXJhdG9yQ29sb3I6IiNFMEUzRUIiLHNlcGFyYXRvckhvdmVyQ29sb3I6InJnYmEoMTc4LCAxODEsIDE4OSwgMC4yKSJ9LGF0dHJpYnV0aW9uTG9nbzohMCxjb2xvclNwYWNlOiJzcmdiIixjb2xvclBhcnNlcnM6W119LFZlPXthdXRvU2NhbGU6ITAsbW9kZTowLGludmVydFNjYWxlOiExLGFsaWduTGFiZWxzOiEwLGJvcmRlclZpc2libGU6ITAsYm9yZGVyQ29sb3I6IiMyQjJCNDMiLGVudGlyZVRleHRPbmx5OiExLHZpc2libGU6ITEsdGlja3NWaXNpYmxlOiExLHNjYWxlTWFyZ2luczp7Ym90dG9tOi4xLHRvcDouMn0sbWluaW11bVdpZHRoOjAsZW5zdXJlRWRnZVRpY2tNYXJrc1Zpc2libGU6ITEsdGlja01hcmtEZW5zaXR5OjIuNX0sJGU9e3JpZ2h0T2Zmc2V0OjAsYmFyU3BhY2luZzo2LG1pbkJhclNwYWNpbmc6LjUsbWF4QmFyU3BhY2luZzowLGZpeExlZnRFZGdlOiExLGZpeFJpZ2h0RWRnZTohMSxsb2NrVmlzaWJsZVRpbWVSYW5nZU9uUmVzaXplOiExLHJpZ2h0QmFyU3RheXNPblNjcm9sbDohMSxib3JkZXJWaXNpYmxlOiEwLGJvcmRlckNvbG9yOiIjMkIyQjQzIix2aXNpYmxlOiEwLHRpbWVWaXNpYmxlOiExLHNlY29uZHNWaXNpYmxlOiEwLHNoaWZ0VmlzaWJsZVJhbmdlT25OZXdCYXI6ITAsYWxsb3dTaGlmdFZpc2libGVSYW5nZU9uV2hpdGVzcGFjZVJlcGxhY2VtZW50OiExLHRpY2tzVmlzaWJsZTohMSx1bmlmb3JtRGlzdHJpYnV0aW9uOiExLG1pbmltdW1IZWlnaHQ6MCxhbGxvd0JvbGRMYWJlbHM6ITAsaWdub3JlV2hpdGVzcGFjZUluZGljZXM6ITEsZW5hYmxlQ29uZmxhdGlvbjohMSxjb25mbGF0aW9uVGhyZXNob2xkRmFjdG9yOjEscHJlY29tcHV0ZUNvbmZsYXRpb25PbkluaXQ6ITEscHJlY29tcHV0ZUNvbmZsYXRpb25Qcmlvcml0eToiYmFja2dyb3VuZCJ9O2Z1bmN0aW9uIEFlKCl7cmV0dXJue2FkZERlZmF1bHRQYW5lOiEwLGhvdmVyZWRTZXJpZXNPblRvcDohMCx3aWR0aDowLGhlaWdodDowLGF1dG9TaXplOiExLGxheW91dDpPZSxjcm9zc2hhaXI6QmUsZ3JpZDpLZSxvdmVybGF5UHJpY2VTY2FsZXM6ey4uLlZlfSxsZWZ0UHJpY2VTY2FsZTp7Li4uVmUsdmlzaWJsZTohMX0scmlnaHRQcmljZVNjYWxlOnsuLi5WZSx2aXNpYmxlOiEwfSxkZWZhdWx0VmlzaWJsZVByaWNlU2NhbGVJZDoicmlnaHQiLHRpbWVTY2FsZTokZSxsb2NhbGl6YXRpb246e2xvY2FsZTphcz9uYXZpZ2F0b3IubGFuZ3VhZ2U6IiIsZGF0ZUZvcm1hdDoiZGQgTU1NICd5eSJ9LGhhbmRsZVNjcm9sbDp7bW91c2VXaGVlbDohMCxwcmVzc2VkTW91c2VNb3ZlOiEwLGhvcnpUb3VjaERyYWc6ITAsdmVydFRvdWNoRHJhZzohMH0saGFuZGxlU2NhbGU6e2F4aXNQcmVzc2VkTW91c2VNb3ZlOnt0aW1lOiEwLHByaWNlOiEwfSxheGlzRG91YmxlQ2xpY2tSZXNldDp7dGltZTohMCxwcmljZTohMH0sbW91c2VXaGVlbDohMCxwaW5jaDohMH0sa2luZXRpY1Njcm9sbDp7bW91c2U6ITEsdG91Y2g6ITB9LHRyYWNraW5nTW9kZTp7ZXhpdE1vZGU6MX19fWNsYXNzIFple2NvbnN0cnVjdG9yKHQsaSxzKXt0aGlzLnN2PXQsdGhpcy56Zz1pLHRoaXMuT2c9cz8/MH1hcHBseU9wdGlvbnModCl7dGhpcy5zdi5RdCgpLlBkKHRoaXMuemcsdCx0aGlzLk9nKX1vcHRpb25zKCl7cmV0dXJuIHRoaXMuS2koKS5OKCl9d2lkdGgoKXtyZXR1cm4gaih0aGlzLnpnKT90aGlzLnN2LkNNKHRoaXMuemcpOjB9c2V0VmlzaWJsZVJhbmdlKHQpe3RoaXMuc2V0QXV0b1NjYWxlKCExKSx0aGlzLktpKCkucW8obmV3IHZ0KHQuZnJvbSx0LnRvKSl9Z2V0VmlzaWJsZVJhbmdlKCl7bGV0IHQsaSxzPXRoaXMuS2koKS5hcigpO2lmKG51bGw9PT1zKXJldHVybiBudWxsO2lmKHRoaXMuS2koKS5zbygpKXtjb25zdCBlPXRoaXMuS2koKS5NXygpLGg9WmkoZSk7cz1waShzLHRoaXMuS2koKS5ybygpKSx0PU51bWJlcigoTWF0aC5yb3VuZChzLkplKCkvZSkqZSkudG9GaXhlZChoKSksaT1OdW1iZXIoKE1hdGgucm91bmQocy5RZSgpL2UpKmUpLnRvRml4ZWQoaCkpfWVsc2UgdD1zLkplKCksaT1zLlFlKCk7cmV0dXJue2Zyb206dCx0bzppfX1zZXRBdXRvU2NhbGUodCl7dGhpcy5hcHBseU9wdGlvbnMoe2F1dG9TY2FsZTp0fSl9S2koKXtyZXR1cm4gZCh0aGlzLnN2LlF0KCkuVGQodGhpcy56Zyx0aGlzLk9nKSkuRnR9fWNsYXNzIFlle2NvbnN0cnVjdG9yKHQsaSxzLGUpe3RoaXMuc3Y9dCx0aGlzLnl0PXMsdGhpcy5OZz1pLHRoaXMuRmc9ZX1nZXRIZWlnaHQoKXtyZXR1cm4gdGhpcy55dC4kdCgpfXNldEhlaWdodCh0KXtjb25zdCBpPXRoaXMuc3YuUXQoKSxzPWkuaGYodGhpcy55dCk7aS5CZChzLHQpfWdldFN0cmV0Y2hGYWN0b3IoKXtyZXR1cm4gdGhpcy55dC56XygpfXNldFN0cmV0Y2hGYWN0b3IodCl7dGhpcy55dC5PXyh0KSx0aGlzLnN2LlF0KCkuUGEoKX1wYW5lSW5kZXgoKXtyZXR1cm4gdGhpcy5zdi5RdCgpLmhmKHRoaXMueXQpfW1vdmVUbyh0KXtjb25zdCBpPXRoaXMucGFuZUluZGV4KCk7aSE9PXQmJih1KHQ+PTAmJnQ8dGhpcy5zdi5ydigpLmxlbmd0aCwiSW52YWxpZCBwYW5lIGluZGV4IiksdGhpcy5zdi5RdCgpLkFkKGksdCkpfWdldFNlcmllcygpe3JldHVybiB0aGlzLnl0LlVfKCkubWFwKCh0PT50aGlzLk5nKHQpKSk/P1tdfWdldEhUTUxFbGVtZW50KCl7Y29uc3QgdD10aGlzLnN2LnJ2KCk7cmV0dXJuIHQmJjAhPT10Lmxlbmd0aCYmdFt0aGlzLnBhbmVJbmRleCgpXT90W3RoaXMucGFuZUluZGV4KCldLnV2KCk6bnVsbH1hdHRhY2hQcmltaXRpdmUodCl7dGhpcy55dC5obCh0KSx0LmF0dGFjaGVkJiZ0LmF0dGFjaGVkKHsKY2hhcnQ6dGhpcy5GZyxyZXF1ZXN0VXBkYXRlOigpPT50aGlzLnl0LlF0KCkuUGEoKX0pfWRldGFjaFByaW1pdGl2ZSh0KXt0aGlzLnl0LmFsKHQpfXByaWNlU2NhbGUodCl7aWYobnVsbD09PXRoaXMueXQuQV8odCkpdGhyb3cgbmV3IEVycm9yKGBDYW5ub3QgZmluZCBwcmljZSBzY2FsZSB3aXRoIGlkOiAke3R9YCk7cmV0dXJuIG5ldyBaZSh0aGlzLnN2LHQsdGhpcy5wYW5lSW5kZXgoKSl9c2V0UHJlc2VydmVFbXB0eVBhbmUodCl7dGhpcy55dC5XXyh0KX1wcmVzZXJ2ZUVtcHR5UGFuZSgpe3JldHVybiB0aGlzLnl0LkhfKCl9YWRkQ3VzdG9tU2VyaWVzKHQsaT17fSxzPTApe3JldHVybiB0aGlzLkZnLmFkZEN1c3RvbVNlcmllcyh0LGkscyl9YWRkU2VyaWVzKHQsaT17fSl7cmV0dXJuIHRoaXMuRmcuYWRkU2VyaWVzKHQsaSx0aGlzLnBhbmVJbmRleCgpKX19Y29uc3QgSGU9e2NvbG9yOiIjRkYwMDAwIixwcmljZTowLGxpbmVTdHlsZToyLGxpbmVXaWR0aDoxLGxpbmVWaXNpYmxlOiEwLGF4aXNMYWJlbFZpc2libGU6ITAsdGl0bGU6IiIsYXhpc0xhYmVsQ29sb3I6IiIsYXhpc0xhYmVsVGV4dENvbG9yOiIifTtjbGFzcyBHZXtjb25zdHJ1Y3Rvcih0KXt0aGlzLl9yPXR9YXBwbHlPcHRpb25zKHQpe3RoaXMuX3IudnIodCl9b3B0aW9ucygpe3JldHVybiB0aGlzLl9yLk4oKX1XZygpe3JldHVybiB0aGlzLl9yfX1jbGFzcyBVZXtjb25zdHJ1Y3Rvcih0LGkscyxlLGgsbil7dGhpcy5IZz1uZXcgbSx0aGlzLmFlPXQsdGhpcy5VZz1pLHRoaXMuJGc9cyx0aGlzLnh1PWgsdGhpcy5GZz1lLHRoaXMuamc9bn1tKCl7dGhpcy5IZy5tKCl9cHJpY2VGb3JtYXR0ZXIoKXtyZXR1cm4gdGhpcy5hZS50bCgpfXByaWNlVG9Db29yZGluYXRlKHQpe2NvbnN0IGk9dGhpcy5hZS5MdCgpO3JldHVybiBudWxsPT09aT9udWxsOnRoaXMuYWUuRnQoKS5OdCh0LGkuV3QpfWNvb3JkaW5hdGVUb1ByaWNlKHQpe2NvbnN0IGk9dGhpcy5hZS5MdCgpO3JldHVybiBudWxsPT09aT9udWxsOnRoaXMuYWUuRnQoKS5Ubih0LGkuV3QpfWJhcnNJbkxvZ2ljYWxSYW5nZSh0KXtpZihudWxsPT09dClyZXR1cm4gbnVsbDtjb25zdCBpPW5ldyBXaShuZXcgSWkodC5mcm9tLHQudG8pKS5GdSgpLHM9dGhpcy5hZS5VbigpO2lmKHMuR2koKSlyZXR1cm4gbnVsbDtjb25zdCBlPXMuSG4oaS5PYSgpLDEpLGg9cy5IbihpLmJpKCksLTEpLG49ZChzLlJoKCkpLHI9ZChzLlFuKCkpO2lmKG51bGwhPT1lJiZudWxsIT09aCYmZS4kbj5oLiRuKXJldHVybntiYXJzQmVmb3JlOnQuZnJvbS1uLGJhcnNBZnRlcjpyLXQudG99O2NvbnN0IG89e2JhcnNCZWZvcmU6bnVsbD09PWV8fGUuJG49PT1uP3QuZnJvbS1uOmUuJG4tbixiYXJzQWZ0ZXI6bnVsbD09PWh8fGguJG49PT1yP3ItdC50bzpyLWguJG59O3JldHVybiBudWxsIT09ZSYmbnVsbCE9PWgmJihvLmZyb209ZS5RcixvLnRvPWguUXIpLG99c2V0RGF0YSh0KXt0aGlzLnh1LHRoaXMuYWUuYmgoKSx0aGlzLlVnLnFnKHRoaXMuYWUsdCksdGhpcy5ZZygiZnVsbCIpfXVwZGF0ZSh0LGk9ITEpe3RoaXMuYWUuYmgoKSx0aGlzLlVnLktnKHRoaXMuYWUsdCxpKSx0aGlzLllnKCJ1cGRhdGUiKX1wb3AodD0xKXtjb25zdCBpPXRoaXMuVWcuWmcodGhpcy5hZSx0KTswIT09aS5sZW5ndGgmJnRoaXMuWWcoInVwZGF0ZSIpO2NvbnN0IHM9UWUodGhpcy5zZXJpZXNUeXBlKCkpO3JldHVybiBpLm1hcCgodD0+cyh0KSkpfWRhdGFCeUluZGV4KHQsaSl7Y29uc3Qgcz10aGlzLmFlLlVuKCkuSG4odCxpKTtyZXR1cm4gbnVsbD09PXM/bnVsbDpRZSh0aGlzLnNlcmllc1R5cGUoKSkocyl9ZGF0YSgpe2NvbnN0IHQ9UWUodGhpcy5zZXJpZXNUeXBlKCkpO3JldHVybiB0aGlzLmFlLlVuKCkuQmgoKS5tYXAoKGk9PnQoaSkpKX1zdWJzY3JpYmVEYXRhQ2hhbmdlZCh0KXt0aGlzLkhnLmkodCl9dW5zdWJzY3JpYmVEYXRhQ2hhbmdlZCh0KXt0aGlzLkhnLl8odCl9YXBwbHlPcHRpb25zKHQpe3RoaXMuYWUudnIodCl9b3B0aW9ucygpe3JldHVybiBNKHRoaXMuYWUuTigpKX1wcmljZVNjYWxlKCl7cmV0dXJuIHRoaXMuJGcucHJpY2VTY2FsZSh0aGlzLmFlLkZ0KCkuY2woKSx0aGlzLmdldFBhbmUoKS5wYW5lSW5kZXgoKSl9Y3JlYXRlUHJpY2VMaW5lKHQpe2NvbnN0IGk9cChNKEhlKSx0KSxzPXRoaXMuYWUuQmEoaSk7cmV0dXJuIG5ldyBHZShzKX1yZW1vdmVQcmljZUxpbmUodCl7dGhpcy5hZS5FYSh0LldnKCkpfXByaWNlTGluZXMoKXtyZXR1cm4gdGhpcy5hZS5BYSgpLm1hcCgodD0+bmV3IEdlKHQpKSl9c2VyaWVzVHlwZSgpe3JldHVybiB0aGlzLmFlLmJoKCl9bGFzdFZhbHVlRGF0YSh0KXtjb25zdCBpPXRoaXMuYWUuQWUodCk7cmV0dXJuIGkuTGU/e25vRGF0YTohMH06e25vRGF0YTohMSxwcmljZTppLk10LGNvbG9yOmkuUn19YXR0YWNoUHJpbWl0aXZlKHQpe3RoaXMuYWUuaGwodCksdC5hdHRhY2hlZCYmdC5hdHRhY2hlZCh7Y2hhcnQ6dGhpcy5GZyxzZXJpZXM6dGhpcyxyZXF1ZXN0VXBkYXRlOigpPT50aGlzLmFlLlF0KCkuUGEoKSxob3J6U2NhbGVCZWhhdmlvcjp0aGlzLnh1fSl9ZGV0YWNoUHJpbWl0aXZlKHQpe3RoaXMuYWUuYWwodCksdC5kZXRhY2hlZCYmdC5kZXRhY2hlZCgpLHRoaXMuYWUuUXQoKS5QYSgpfWdldFBhbmUoKXtjb25zdCB0PXRoaXMuYWUsaT1kKHRoaXMuYWUuUXQoKS5Lcyh0KSk7cmV0dXJuIHRoaXMuamcoaSl9bW92ZVRvUGFuZSh0KXt0aGlzLmFlLlF0KCkubmYodGhpcy5hZSx0KX1zZXJpZXNPcmRlcigpe2NvbnN0IHQ9dGhpcy5hZS5RdCgpLktzKHRoaXMuYWUpO3JldHVybiBudWxsPT09dD8tMTp0LlVfKCkuaW5kZXhPZih0aGlzLmFlKX1zZXRTZXJpZXNPcmRlcih0KXtjb25zdCBpPXRoaXMuYWUuUXQoKS5Lcyh0aGlzLmFlKTtudWxsIT09aSYmaS5kdSh0aGlzLmFlLHQpfVlnKHQpe3RoaXMuSGcudigpJiZ0aGlzLkhnLnAodCl9fWNsYXNzIGple2NvbnN0cnVjdG9yKHQsaSxzKXt0aGlzLkdnPW5ldyBtLHRoaXMuR3U9bmV3IG0sdGhpcy5Cdz1uZXcgbSx0aGlzLnNuPXQsdGhpcy5pYT10LkV0KCksdGhpcy5fTT1pLHRoaXMuaWEuWWMoKS5pKHRoaXMuWGcuYmluZCh0aGlzKSksCnRoaXMuaWEuS2MoKS5pKHRoaXMuSmcuYmluZCh0aGlzKSksdGhpcy5fTS5GdygpLmkodGhpcy5RZy5iaW5kKHRoaXMpKSx0aGlzLnh1PXN9bSgpe3RoaXMuaWEuWWMoKS51KHRoaXMpLHRoaXMuaWEuS2MoKS51KHRoaXMpLHRoaXMuX00uRncoKS51KHRoaXMpLHRoaXMuR2cubSgpLHRoaXMuR3UubSgpLHRoaXMuQncubSgpfXNjcm9sbFBvc2l0aW9uKCl7cmV0dXJuIHRoaXMuaWEuQWMoKX1zY3JvbGxUb1Bvc2l0aW9uKHQsaSl7aT90aGlzLmlhLiRjKHQsMWUzKTp0aGlzLnNuLmdzKHQpfXNjcm9sbFRvUmVhbFRpbWUoKXt0aGlzLmlhLlVjKCl9Z2V0VmlzaWJsZVJhbmdlKCl7Y29uc3QgdD10aGlzLmlhLmdjKCk7cmV0dXJuIG51bGw9PT10P251bGw6e2Zyb206dC5mcm9tLm9yaWdpbmFsVGltZSx0bzp0LnRvLm9yaWdpbmFsVGltZX19c2V0VmlzaWJsZVJhbmdlKHQpe2NvbnN0IGk9e2Zyb206dGhpcy54dS5jb252ZXJ0SG9yekl0ZW1Ub0ludGVybmFsKHQuZnJvbSksdG86dGhpcy54dS5jb252ZXJ0SG9yekl0ZW1Ub0ludGVybmFsKHQudG8pfSxzPXRoaXMuaWEuQ2MoaSk7dGhpcy5zbi50ZihzKX1nZXRWaXNpYmxlTG9naWNhbFJhbmdlKCl7Y29uc3QgdD10aGlzLmlhLk1jKCk7cmV0dXJuIG51bGw9PT10P251bGw6e2Zyb206dC5PYSgpLHRvOnQuYmkoKX19c2V0VmlzaWJsZUxvZ2ljYWxSYW5nZSh0KXt1KHQuZnJvbTw9dC50bywiVGhlIGZyb20gaW5kZXggY2Fubm90IGJlIGFmdGVyIHRoZSB0byBpbmRleC4iKSx0aGlzLnNuLnRmKHQpfXJlc2V0VGltZVNjYWxlKCl7dGhpcy5zbi53cygpfWZpdENvbnRlbnQoKXt0aGlzLnNuLlhjKCl9bG9naWNhbFRvQ29vcmRpbmF0ZSh0KXtjb25zdCBpPXRoaXMuc24uRXQoKTtyZXR1cm4gaS5HaSgpP251bGw6aS5qdCh0KX1jb29yZGluYXRlVG9Mb2dpY2FsKHQpe3JldHVybiB0aGlzLmlhLkdpKCk/bnVsbDp0aGlzLmlhLlJjKHQpfXRpbWVUb0luZGV4KHQsaSl7Y29uc3Qgcz10aGlzLnh1LmNvbnZlcnRIb3J6SXRlbVRvSW50ZXJuYWwodCk7cmV0dXJuIHRoaXMuaWEudmMocyxpKX10aW1lVG9Db29yZGluYXRlKHQpe2NvbnN0IGk9dGhpcy50aW1lVG9JbmRleCh0LCExKTtyZXR1cm4gbnVsbD09PWk/bnVsbDp0aGlzLmlhLmp0KGkpfWNvb3JkaW5hdGVUb1RpbWUodCl7Y29uc3QgaT10aGlzLnNuLkV0KCkscz1pLlJjKHQpLGU9aS5lbihzKTtyZXR1cm4gbnVsbD09PWU/bnVsbDplLm9yaWdpbmFsVGltZX13aWR0aCgpe3JldHVybiB0aGlzLl9NLmN2KCkud2lkdGh9aGVpZ2h0KCl7cmV0dXJuIHRoaXMuX00uY3YoKS5oZWlnaHR9c3Vic2NyaWJlVmlzaWJsZVRpbWVSYW5nZUNoYW5nZSh0KXt0aGlzLkdnLmkodCl9dW5zdWJzY3JpYmVWaXNpYmxlVGltZVJhbmdlQ2hhbmdlKHQpe3RoaXMuR2cuXyh0KX1zdWJzY3JpYmVWaXNpYmxlTG9naWNhbFJhbmdlQ2hhbmdlKHQpe3RoaXMuR3UuaSh0KX11bnN1YnNjcmliZVZpc2libGVMb2dpY2FsUmFuZ2VDaGFuZ2UodCl7dGhpcy5HdS5fKHQpfXN1YnNjcmliZVNpemVDaGFuZ2UodCl7dGhpcy5Cdy5pKHQpfXVuc3Vic2NyaWJlU2l6ZUNoYW5nZSh0KXt0aGlzLkJ3Ll8odCl9YXBwbHlPcHRpb25zKHQpe3RoaXMuaWEudnIodCl9b3B0aW9ucygpe3JldHVybnsuLi5NKHRoaXMuaWEuTigpKSxiYXJTcGFjaW5nOnRoaXMuaWEuZmwoKX19WGcoKXt0aGlzLkdnLnYoKSYmdGhpcy5HZy5wKHRoaXMuZ2V0VmlzaWJsZVJhbmdlKCkpfUpnKCl7dGhpcy5HdS52KCkmJnRoaXMuR3UucCh0aGlzLmdldFZpc2libGVMb2dpY2FsUmFuZ2UoKSl9UWcodCl7dGhpcy5Cdy5wKHQud2lkdGgsdC5oZWlnaHQpfX1mdW5jdGlvbiBYZSh0KXtyZXR1cm4gZnVuY3Rpb24odCl7aWYodyh0LmhhbmRsZVNjYWxlKSl7Y29uc3QgaT10LmhhbmRsZVNjYWxlO3QuaGFuZGxlU2NhbGU9e2F4aXNEb3VibGVDbGlja1Jlc2V0Ont0aW1lOmkscHJpY2U6aX0sYXhpc1ByZXNzZWRNb3VzZU1vdmU6e3RpbWU6aSxwcmljZTppfSxtb3VzZVdoZWVsOmkscGluY2g6aX19ZWxzZSBpZih2b2lkIDAhPT10LmhhbmRsZVNjYWxlKXtjb25zdHtheGlzUHJlc3NlZE1vdXNlTW92ZTppLGF4aXNEb3VibGVDbGlja1Jlc2V0OnN9PXQuaGFuZGxlU2NhbGU7dyhpKSYmKHQuaGFuZGxlU2NhbGUuYXhpc1ByZXNzZWRNb3VzZU1vdmU9e3RpbWU6aSxwcmljZTppfSksdyhzKSYmKHQuaGFuZGxlU2NhbGUuYXhpc0RvdWJsZUNsaWNrUmVzZXQ9e3RpbWU6cyxwcmljZTpzfSl9Y29uc3QgaT10LmhhbmRsZVNjcm9sbDt3KGkpJiYodC5oYW5kbGVTY3JvbGw9e2hvcnpUb3VjaERyYWc6aSx2ZXJ0VG91Y2hEcmFnOmksbW91c2VXaGVlbDppLHByZXNzZWRNb3VzZU1vdmU6aX0pfSh0KSx0fWNsYXNzIEple2NvbnN0cnVjdG9yKHQsaSxzKXt0aGlzLnRiPW5ldyBNYXAsdGhpcy5pYj1uZXcgTWFwLHRoaXMubmI9bmV3IG0sdGhpcy5zYj1uZXcgbSx0aGlzLmViPW5ldyBtLHRoaXMub2Q9bmV3IFdlYWtNYXAsdGhpcy5yYj1uZXcgbGUoaSk7Y29uc3QgZT12b2lkIDA9PT1zP00oQWUoKSk6cChNKEFlKCkpLFhlKHMpKTt0aGlzLmhiPWksdGhpcy5zdj1uZXcgQXModCxlLGkpLHRoaXMuc3YuZHcoKS5pKCh0PT57dGhpcy5uYi52KCkmJnRoaXMubmIucCh0aGlzLmFiKHQoKSkpfSksdGhpcyksdGhpcy5zdi5mdygpLmkoKHQ9Pnt0aGlzLnNiLnYoKSYmdGhpcy5zYi5wKHRoaXMuYWIodCgpKSl9KSx0aGlzKSx0aGlzLnN2LkRkKCkuaSgodD0+e3RoaXMuZWIudigpJiZ0aGlzLmViLnAodGhpcy5hYih0KCkpKX0pLHRoaXMpO2NvbnN0IGg9dGhpcy5zdi5RdCgpO3RoaXMubGI9bmV3IGplKGgsdGhpcy5zdi5wTSgpLHRoaXMuaGIpfXJlbW92ZSgpe3RoaXMuc3YuZHcoKS51KHRoaXMpLHRoaXMuc3YuZncoKS51KHRoaXMpLHRoaXMuc3YuRGQoKS51KHRoaXMpLHRoaXMubGIubSgpLHRoaXMuc3YubSgpLHRoaXMudGIuY2xlYXIoKSx0aGlzLmliLmNsZWFyKCksdGhpcy5uYi5tKCksdGhpcy5zYi5tKCksdGhpcy5lYi5tKCksdGhpcy5yYi5tKCl9cmVzaXplKHQsaSxzKXt0aGlzLmF1dG9TaXplQWN0aXZlKCl8fHRoaXMuc3YuY00odCxpLHMpfWFkZEN1c3RvbVNlcmllcyh0LGk9e30scz0wKXtjb25zdCBlPSh0PT4oewp0eXBlOiJDdXN0b20iLGlzQnVpbHRJbjohMSxkZWZhdWx0T3B0aW9uczp7Li4uTmUsLi4udC5kZWZhdWx0T3B0aW9ucygpfSxvYjp6ZSxfYjp0fSkpKGYodCkpO3JldHVybiB0aGlzLnViKGUsaSxzKX1hZGRTZXJpZXModCxpPXt9LHM9MCl7cmV0dXJuIHRoaXMudWIodCxpLHMpfXJlbW92ZVNlcmllcyh0KXtjb25zdCBpPWModGhpcy50Yi5nZXQodCkpLHM9dGhpcy5yYi5KZChpKTt0aGlzLnN2LlF0KCkuSmQoaSksdGhpcy5jYihzKSx0aGlzLnRiLmRlbGV0ZSh0KSx0aGlzLmliLmRlbGV0ZShpKX1xZyh0LGkpe3RoaXMuY2IodGhpcy5yYi5zZyh0LGkpKX1LZyh0LGkscyl7dGhpcy5jYih0aGlzLnJiLm9nKHQsaSxzKSl9WmcodCxpKXtjb25zdFtzLGVdPXRoaXMucmIuY2codCxpKTtyZXR1cm4gMCE9PXMubGVuZ3RoJiZ0aGlzLmNiKGUpLHN9c3Vic2NyaWJlQ2xpY2sodCl7dGhpcy5uYi5pKHQpfXVuc3Vic2NyaWJlQ2xpY2sodCl7dGhpcy5uYi5fKHQpfXN1YnNjcmliZUNyb3NzaGFpck1vdmUodCl7dGhpcy5lYi5pKHQpfXVuc3Vic2NyaWJlQ3Jvc3NoYWlyTW92ZSh0KXt0aGlzLmViLl8odCl9c3Vic2NyaWJlRGJsQ2xpY2sodCl7dGhpcy5zYi5pKHQpfXVuc3Vic2NyaWJlRGJsQ2xpY2sodCl7dGhpcy5zYi5fKHQpfXByaWNlU2NhbGUodCxpPTApe3JldHVybiBuZXcgWmUodGhpcy5zdix0LGkpfXRpbWVTY2FsZSgpe3JldHVybiB0aGlzLmxifWFwcGx5T3B0aW9ucyh0KXt0aGlzLnN2LnZyKFhlKHQpKX1vcHRpb25zKCl7cmV0dXJuIHRoaXMuc3YuTigpfXRha2VTY3JlZW5zaG90KHQ9ITEsaT0hMSl7bGV0IHMsZTt0cnl7aXx8KHM9dGhpcy5zdi5RdCgpLk4oKS5jcm9zc2hhaXIubW9kZSx0aGlzLnN2LnZyKHtjcm9zc2hhaXI6e21vZGU6Mn19KSksZT10aGlzLnN2LlNNKHQpfWZpbmFsbHl7aXx8dm9pZCAwPT09c3x8dGhpcy5zdi5RdCgpLnZyKHtjcm9zc2hhaXI6e21vZGU6c319KX1yZXR1cm4gZX1hZGRQYW5lKHQ9ITEpe2NvbnN0IGk9dGhpcy5zdi5RdCgpLmFmKCk7cmV0dXJuIGkuV18odCksdGhpcy5mYihpKX1yZW1vdmVQYW5lKHQpe3RoaXMuc3YuUXQoKS5WZCh0KX1zd2FwUGFuZXModCxpKXt0aGlzLnN2LlF0KCkuRWQodCxpKX1hdXRvU2l6ZUFjdGl2ZSgpe3JldHVybiB0aGlzLnN2LndNKCl9Y2hhcnRFbGVtZW50KCl7cmV0dXJuIHRoaXMuc3YudnYoKX1wYW5lcygpe3JldHVybiB0aGlzLnN2LlF0KCkuWm4oKS5tYXAoKHQ9PnRoaXMuZmIodCkpKX1wYW5lU2l6ZSh0PTApe2NvbnN0IGk9dGhpcy5zdi5STSh0KTtyZXR1cm57aGVpZ2h0OmkuaGVpZ2h0LHdpZHRoOmkud2lkdGh9fXNldENyb3NzaGFpclBvc2l0aW9uKHQsaSxzKXtjb25zdCBlPXRoaXMudGIuZ2V0KHMpO2lmKHZvaWQgMD09PWUpcmV0dXJuO2NvbnN0IGg9dGhpcy5zdi5RdCgpLktzKGUpO251bGwhPT1oJiZ0aGlzLnN2LlF0KCkucWQodCxpLGgpfWNsZWFyQ3Jvc3NoYWlyUG9zaXRpb24oKXt0aGlzLnN2LlF0KCkuWWQoITApfWhvcnpCZWhhdmlvdXIoKXtyZXR1cm4gdGhpcy5oYn11Yih0LGk9e30scz0wKXt1KHZvaWQgMCE9PXQub2IpLGZ1bmN0aW9uKHQpe2lmKHZvaWQgMD09PXR8fCJjdXN0b20iPT09dC50eXBlKXJldHVybjtjb25zdCBpPXQ7dm9pZCAwIT09aS5taW5Nb3ZlJiZ2b2lkIDA9PT1pLnByZWNpc2lvbiYmKGkucHJlY2lzaW9uPVppKGkubWluTW92ZSkpfShpLnByaWNlRm9ybWF0KSwiQ2FuZGxlc3RpY2siPT09dC50eXBlJiZmdW5jdGlvbih0KXt2b2lkIDAhPT10LmJvcmRlckNvbG9yJiYodC5ib3JkZXJVcENvbG9yPXQuYm9yZGVyQ29sb3IsdC5ib3JkZXJEb3duQ29sb3I9dC5ib3JkZXJDb2xvciksdm9pZCAwIT09dC53aWNrQ29sb3ImJih0LndpY2tVcENvbG9yPXQud2lja0NvbG9yLHQud2lja0Rvd25Db2xvcj10LndpY2tDb2xvcil9KGkpO2NvbnN0IGU9cChNKGgpLE0odC5kZWZhdWx0T3B0aW9ucyksaSksbj10Lm9iLHI9bmV3IGp0KHRoaXMuc3YuUXQoKSx0LnR5cGUsZSxuLHQuX2IpO3RoaXMuc3YuUXQoKS5HZChyLHMpO2NvbnN0IG89bmV3IFVlKHIsdGhpcyx0aGlzLHRoaXMsdGhpcy5oYiwodD0+dGhpcy5mYih0KSkpO3JldHVybiB0aGlzLnRiLnNldChvLHIpLHRoaXMuaWIuc2V0KHIsbyksb31jYih0KXtjb25zdCBpPXRoaXMuc3YuUXQoKTtpLktkKHQuRXQuUGMsdC5FdC52Zyx0LkV0Lm1nKSx0LlVfLmZvckVhY2goKCh0LGkpPT5pLmh0KHQudWUsdC5wZykpKSxpLkV0KCkuX2MoKSxpLkJjKCl9cGIodCl7cmV0dXJuIGModGhpcy5pYi5nZXQodCkpfW1iKHQpe3JldHVybiB2b2lkIDAhPT10JiZ0aGlzLmliLmhhcyh0KT90aGlzLnBiKHQpOnZvaWQgMH1hYih0KXtjb25zdCBpPW5ldyBNYXA7dC5ZTS5mb3JFYWNoKCgodCxzKT0+e2NvbnN0IGU9cy5iaCgpLGg9UWUoZSkodCk7aWYoIkN1c3RvbSIhPT1lKXUoSHMoaCkpO2Vsc2V7Y29uc3QgdD1zLm9sKCk7dSghdHx8ITE9PT10KGgpKX1pLnNldCh0aGlzLnBiKHMpLGgpfSkpO2NvbnN0IHM9dGhpcy5tYih0Lk5NKSxlPXZvaWQgMD09PXQuV00/dm9pZCAwOnt0eXBlOnQuV00uZHMsc291cmNlS2luZDp0LldNLkhNLG9iamVjdEtpbmQ6dC5XTS5VTSxzZXJpZXM6dGhpcy5tYih0LldNLlVfKSxvYmplY3RJZDp0LldNLiRNLHBhbmVJbmRleDp0LldNLmpNfTtyZXR1cm57dGltZTp0LlFyLGxvZ2ljYWw6dC4kbixwb2ludDp0LnFNLHBhbmVJbmRleDp0LmpNLGhvdmVyZWRJbmZvOmUsaG92ZXJlZFNlcmllczpzLGhvdmVyZWRPYmplY3RJZDp0LkZNLHNlcmllc0RhdGE6aSxzb3VyY2VFdmVudDp0LktNfX1mYih0KXtsZXQgaT10aGlzLm9kLmdldCh0KTtyZXR1cm4gaXx8KGk9bmV3IFllKHRoaXMuc3YsKHQ9PnRoaXMucGIodCkpLHQsdGhpcyksdGhpcy5vZC5zZXQodCxpKSksaX19ZnVuY3Rpb24gdGgodCl7aWYoYih0KSl7Y29uc3QgaT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0KTtyZXR1cm4gdShudWxsIT09aSxgQ2Fubm90IGZpbmQgZWxlbWVudCBpbiBET00gd2l0aCBpZD0ke3R9YCksaX1yZXR1cm4gdH1mdW5jdGlvbiBpaCh0LGkscyl7Y29uc3QgZT10aCh0KSxoPW5ldyBKZShlLGkscyk7cmV0dXJuIGkuc2V0T3B0aW9ucyhoLm9wdGlvbnMoKSksaH0KZnVuY3Rpb24gc2godCxpKXtyZXR1cm4gaWgodCxuZXcgbHMsbHMueWYoaSkpfWZ1bmN0aW9uIGVoKCl7cmV0dXJuIGxzfWZ1bmN0aW9uIGhoKHQsaSxzLGUpe3JldHVybiBNYXRoLmh5cG90KHMtdCxlLWkpfWZ1bmN0aW9uIG5oKHQsaSxzLGUsaCxuLHIsbz0wKXtpZigwPT09aS5sZW5ndGh8fGUuZnJvbT49aS5sZW5ndGh8fGUudG88PTApcmV0dXJuO2NvbnN0e2NvbnRleHQ6bCxob3Jpem9udGFsUGl4ZWxSYXRpbzphLHZlcnRpY2FsUGl4ZWxSYXRpbzp1fT10LGM9aVtlLmZyb21dO2xldCBkPW4odCxjKSxmPWM7aWYoZS50by1lLmZyb208Mil7Y29uc3QgaT1oLzI7bC5iZWdpblBhdGgoKTtjb25zdCBzPXtfdDpjLl90LWksdXQ6Yy51dH0sZT17X3Q6Yy5fdCtpLHV0OmMudXR9O2wubW92ZVRvKHMuX3QqYSxzLnV0KnUpLGwubGluZVRvKGUuX3QqYSxlLnV0KnUpLHIodCxkLHMsZSl9ZWxzZXtjb25zdCBoPW8+MDtsZXQgbT0wO2NvbnN0IHA9KGkscyk9PntpZihyKHQsZCxmLHMpLGwuYmVnaW5QYXRoKCksZD1pLGY9cyxoKXtjb25zdCB0PW0lbztsLmxpbmVEYXNoT2Zmc2V0PXQsbT10fX07bGV0IGc9ZjtsLmJlZ2luUGF0aCgpLGwubW92ZVRvKGMuX3QqYSxjLnV0KnUpO2ZvcihsZXQgcj1lLmZyb20rMTtyPGUudG87KytyKXtnPWlbcl07Y29uc3QgZT1nLl90KmEsbz1nLnV0KnUsYz1uKHQsZyk7c3dpdGNoKHMpe2Nhc2UgMDppZihsLmxpbmVUbyhlLG8pLGgpe2NvbnN0IHQ9aVtyLTFdLHM9dC5fdCphLGg9dC51dCp1O20rPWhoKHMsaCxlLG8pfWJyZWFrO2Nhc2UgMTp7Y29uc3QgdD1pW3ItMV0scz10LnV0KnU7bC5saW5lVG8oZSxzKSxoJiYobSs9TWF0aC5hYnMoZy5fdC10Ll90KSphKSxjIT09ZCYmKHAoYyxnKSxsLmxpbmVUbyhlLHMpKSxsLmxpbmVUbyhlLG8pLGgmJihtKz1NYXRoLmFicyhnLnV0LXQudXQpKnUpO2JyZWFrfWNhc2UgMjp7Y29uc3RbdCxzXT1saChpLHItMSxyKSxuPXQuX3QqYSxjPXQudXQqdSxkPXMuX3QqYSxmPXMudXQqdTtpZihsLmJlemllckN1cnZlVG8obixjLGQsZixlLG8pLGgpe2NvbnN0IHQ9aVtyLTFdLHM9dC5fdCphLGg9dC51dCp1LGw9aGgocyxoLGUsbykscD1oaChzLGgsbixjKStoaChuLGMsZCxmKStoaChkLGYsZSxvKTttKz0obCtwKS8yfWJyZWFrfX0xIT09cyYmYyE9PWQmJihwKGMsZyksbC5tb3ZlVG8oZSxvKSl9KGYhPT1nfHxmPT09ZyYmMT09PXMpJiZyKHQsZCxmLGcpLGgmJihsLmxpbmVEYXNoT2Zmc2V0PTApfX1mdW5jdGlvbiByaCh0LGkpe3JldHVybntfdDp0Ll90LWkuX3QsdXQ6dC51dC1pLnV0fX1mdW5jdGlvbiBvaCh0LGkpe3JldHVybntfdDp0Ll90L2ksdXQ6dC51dC9pfX1mdW5jdGlvbiBsaCh0LGkscyl7Y29uc3QgZT1NYXRoLm1heCgwLGktMSksaD1NYXRoLm1pbih0Lmxlbmd0aC0xLHMrMSk7dmFyIG4scjtyZXR1cm5bKG49dFtpXSxyPW9oKHJoKHRbc10sdFtlXSksNikse190Om4uX3Qrci5fdCx1dDpuLnV0K3IudXR9KSxyaCh0W3NdLG9oKHJoKHRbaF0sdFtpXSksNikpXX1mdW5jdGlvbiBhaCh0LGkpe2NvbnN0IHM9dC5jb250ZXh0O3Muc3Ryb2tlU3R5bGU9aSxzLnN0cm9rZSgpfWNsYXNzIHVoIGV4dGVuZHMgentjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5ydD1udWxsfWh0KHQpe3RoaXMucnQ9dH1ldCh0KXtpZihudWxsPT09dGhpcy5ydClyZXR1cm47Y29uc3R7b3Q6aSxsdDpzLHdiOmUsTWI6aCxjdDpuLFp0OnIsZ2I6b309dGhpcy5ydDtpZihudWxsPT09cylyZXR1cm47Y29uc3QgYT10LmNvbnRleHQ7YS5saW5lQ2FwPSJidXR0IixhLmxpbmVXaWR0aD1uKnQudmVydGljYWxQaXhlbFJhdGlvO2NvbnN0IHU9bChhLHIpO2EubGluZUpvaW49InJvdW5kIjtjb25zdCBjPXRoaXMuYmIuYmluZCh0aGlzKSxkPWZ1bmN0aW9uKHQpe3JldHVybiB0LnJlZHVjZSgoKHQsaSk9PnQraSksMCl9KHUpO3ZvaWQgMCE9PWgmJm5oKHQsaSxoLHMsZSxjLGFoLGQpLG8mJmZ1bmN0aW9uKHQsaSxzLGUsaCl7aWYoZS50by1lLmZyb208PTApcmV0dXJuO2NvbnN0e2hvcml6b250YWxQaXhlbFJhdGlvOm4sdmVydGljYWxQaXhlbFJhdGlvOnIsY29udGV4dDpvfT10O2xldCBsPW51bGw7Y29uc3QgYT1NYXRoLm1heCgxLE1hdGguZmxvb3IobikpJTIvMix1PXMqcithO2ZvcihsZXQgcz1lLnRvLTE7cz49ZS5mcm9tOy0tcyl7Y29uc3QgZT1pW3NdO2lmKGUpe2NvbnN0IGk9aCh0LGUpO2khPT1sJiYobnVsbCE9PWwmJm8uZmlsbCgpLG8uYmVnaW5QYXRoKCksby5maWxsU3R5bGU9aSxsPWkpO2NvbnN0IHM9TWF0aC5yb3VuZChlLl90Km4pK2EsYz1lLnV0KnI7by5tb3ZlVG8ocyxjKSxvLmFyYyhzLGMsdSwwLDIqTWF0aC5QSSl9fW8uZmlsbCgpfSh0LGksbyxzLGMpfX1jbGFzcyBjaCBleHRlbmRzIHVoe2JiKHQsaSl7cmV0dXJuIGkudnR9fWZ1bmN0aW9uIGRoKHQsaSxzLGUsaCl7Y29uc3Qgbj0xLWg7cmV0dXJuIG4qbipuKnQrMypuKm4qaCppKzMqbipoKmgqcytoKmgqaCplfWZ1bmN0aW9uIGZoKHQsaSxzLGUsaCl7aWYoMj09PXMpe2NvbnN0W3Msbl09bGgoZSxoLTEsaCk7cmV0dXJuW01hdGgubWluKHQuX3QsaS5fdCxzLl90LG4uX3QpLE1hdGgubWF4KHQuX3QsaS5fdCxzLl90LG4uX3QpXX1yZXR1cm5bTWF0aC5taW4odC5fdCxpLl90KSxNYXRoLm1heCh0Ll90LGkuX3QpXX1mdW5jdGlvbiBtaCh0LGkscyxlLGgsbixyLG8pe3N3aXRjaChoKXtjYXNlIDE6e2NvbnN0IGg9Z2UodCxpLHMuX3Qscy51dCxlLl90LHMudXQpLG49Z2UodCxpLGUuX3Qscy51dCxlLl90LGUudXQpLHI9TWF0aC5taW4oaCxuKTtyZXR1cm4gcjw9bz9yOm51bGx9Y2FzZSAyOntjb25zdFtoLGxdPWxoKG4sci0xLHIpLGE9ZnVuY3Rpb24odCxpLHMpe2xldCBlPU51bWJlci5QT1NJVElWRV9JTkZJTklUWSxoPXNbMF07Zm9yKGxldCBuPTE7bjw9MTI7bisrKXtjb25zdCByPW4vMTIsbz17X3Q6ZGgoc1swXS5fdCxzWzFdLl90LHNbMl0uX3Qsc1szXS5fdCxyKSx1dDpkaChzWzBdLnV0LHNbMV0udXQsc1syXS51dCxzWzNdLnV0LHIpfTtlPU1hdGgubWluKGUsZ2UodCxpLGguX3QsaC51dCxvLl90LG8udXQpKSxoPW99cmV0dXJuIGV9KHQsaSxbcyxoLGwsZV0pCjtyZXR1cm4gYTw9bz9hOm51bGx9ZGVmYXVsdDp7Y29uc3QgaD1nZSh0LGkscy5fdCxzLnV0LGUuX3QsZS51dCk7cmV0dXJuIGg8PW8/aDpudWxsfX19Y2xhc3MgcGggZXh0ZW5kcyBfZXtjb25zdHJ1Y3Rvcih0LGkpe3N1cGVyKHQsaSwhMCl9VmcodCxpLHMpe2kuVGModGhpcy5iZyx5KHRoaXMuU2cpKSx0LlpvKHRoaXMuYmcscyx5KHRoaXMuU2cpKX1TYih0LGkpe3JldHVybnt3dDp0LE10OmksX3Q6TmFOLHV0Ok5hTn19RGcoKXtjb25zdCB0PXRoaXMuYWUuU2EoKTt0aGlzLmJnPXRoaXMuYWUuSGEoKS5CaCgpLm1hcCgoaT0+e2xldCBzO2lmKChpLlpyPz8xKT4xKXtjb25zdCB0PWkuV3RbMV0sZT1pLld0WzJdLGg9aS5XdFszXTtzPU1hdGguYWJzKHQtaCk+TWF0aC5hYnMoZS1oKT90OmV9ZWxzZSBzPWkuV3RbM107cmV0dXJuIHRoaXMueGIoaS4kbixzLHQpfSkpfX1jbGFzcyBnaCBleHRlbmRzIHBoe1BnKHQsaSl7Y29uc3Qgcz10aGlzLmFlLk4oKTtyZXR1cm4gZnVuY3Rpb24odCxpLHMsZSxoLG4scixvPTAsbD0wKXtpZihudWxsPT09aXx8aS5mcm9tPj1pLnRvfHwwPT09dC5sZW5ndGgpcmV0dXJuIG51bGw7Y29uc3QgYT1NYXRoLm1heChuLzIscj8/MCkrbDtsZXQgdT1OdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFk7aWYodm9pZCAwIT09cil7Y29uc3QgaD1yK2wsbj1kZSh0LHMtaCxpLmZyb20saS50byksbz1mZSh0LHMraCxuLGkudG8pO2ZvcihsZXQgaT1uO2k8bztpKyspe2NvbnN0IGg9dFtpXTtpZighcGUocyxoLl90LGguX3QscitsKSljb250aW51ZTtjb25zdCBuPU1hdGguaHlwb3Qocy1oLl90LGUtaC51dCk7bjw9citsJiYodT1NYXRoLm1pbih1LG4pKX19aWYoaS50by1pLmZyb208Mil7Y29uc3QgaD10W2kuZnJvbV0sbj1NYXRoLm1heChvLzIsYSkscj1nZShzLGUsaC5fdC1uLGgudXQsaC5fdCtuLGgudXQpO3JldHVybiByPD1hJiYodT1NYXRoLm1pbih1LHIpKSxOdW1iZXIuaXNGaW5pdGUodSk/bWUodSwyLCJzZXJpZXMtcG9pbnQiKTpudWxsfWxldCBjPU51bWJlci5QT1NJVElWRV9JTkZJTklUWTtjb25zdCBkPWRlKHQscy1hLGkuZnJvbSxpLnRvKSxmPWZlKHQscythLGQsaS50byksbT1NYXRoLm1heChpLmZyb20rMSxkKSxwPU1hdGgubWluKGkudG8sZisxKTtmb3IobGV0IGk9bTtpPHA7aSsrKXtjb25zdCBuPXRbaS0xXSxyPXRbaV0sW28sbF09ZmgobixyLGgsdCxpKTtpZighcGUocyxvLGwsYSkpY29udGludWU7Y29uc3QgdT1taChzLGUsbixyLGgsdCxpLGEpO251bGwhPT11JiYoYz1NYXRoLm1pbihjLHUpKX1yZXR1cm4gTnVtYmVyLmlzRmluaXRlKHUpP21lKHUsMiwic2VyaWVzLXBvaW50Iik6TnVtYmVyLmlzRmluaXRlKGMpP21lKGMsMSwic2VyaWVzLWxpbmUiKTpudWxsfSh0aGlzLmJnLHRoaXMuU2csdCxpLHMubGluZVR5cGUscy5saW5lVmlzaWJsZT9zLmxpbmVXaWR0aDoxLHMucG9pbnRNYXJrZXJzVmlzaWJsZT9zLnBvaW50TWFya2Vyc1JhZGl1c3x8cy5saW5lV2lkdGgvMisyOnZvaWQgMCx0aGlzLmxlLkV0KCkuZmwoKSxzLmhpdFRlc3RUb2xlcmFuY2UpfX1jbGFzcyB2aCBleHRlbmRzIGdoe2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLmtnPW5ldyBjaH14Yih0LGkscyl7cmV0dXJuey4uLnRoaXMuU2IodCxpKSwuLi5zLlNoKHQpfX1CZygpe2NvbnN0IHQ9dGhpcy5hZS5OKCksaT17b3Q6dGhpcy5iZyxadDp0LmxpbmVTdHlsZSxNYjp0LmxpbmVWaXNpYmxlP3QubGluZVR5cGU6dm9pZCAwLGN0OnQubGluZVdpZHRoLGdiOnQucG9pbnRNYXJrZXJzVmlzaWJsZT90LnBvaW50TWFya2Vyc1JhZGl1c3x8dC5saW5lV2lkdGgvMisyOnZvaWQgMCxsdDp0aGlzLlNnLHdiOnRoaXMubGUuRXQoKS5mbCgpfTt0aGlzLmtnLmh0KGkpfX1jb25zdCBiaD17dHlwZToiTGluZSIsaXNCdWlsdEluOiEwLGRlZmF1bHRPcHRpb25zOntjb2xvcjoiIzIxOTZmMyIsbGluZVN0eWxlOjAsbGluZVdpZHRoOjMsbGluZVR5cGU6MCxsaW5lVmlzaWJsZTohMCxjcm9zc2hhaXJNYXJrZXJWaXNpYmxlOiEwLGNyb3NzaGFpck1hcmtlclJhZGl1czo0LGNyb3NzaGFpck1hcmtlckJvcmRlckNvbG9yOiIiLGNyb3NzaGFpck1hcmtlckJvcmRlcldpZHRoOjIsY3Jvc3NoYWlyTWFya2VyQmFja2dyb3VuZENvbG9yOiIiLGxhc3RQcmljZUFuaW1hdGlvbjowLHBvaW50TWFya2Vyc1Zpc2libGU6ITF9LG9iOih0LGkpPT5uZXcgdmgodCxpKX07ZnVuY3Rpb24gd2godCxpLHMsZSxoKXtjb25zdHtjb250ZXh0Om4saG9yaXpvbnRhbFBpeGVsUmF0aW86cix2ZXJ0aWNhbFBpeGVsUmF0aW86b309aTtuLmxpbmVUbyhoLl90KnIsdCpvKSxuLmxpbmVUbyhlLl90KnIsdCpvKSxuLmNsb3NlUGF0aCgpLG4uZmlsbFN0eWxlPXMsbi5maWxsKCl9Y2xhc3MgTWggZXh0ZW5kcyB6e2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLnJ0PW51bGx9aHQodCl7dGhpcy5ydD10fWV0KHQpe2lmKG51bGw9PT10aGlzLnJ0KXJldHVybjtjb25zdHtvdDppLGx0OnMsd2I6ZSxjdDpoLFp0Om4sTWI6cn09dGhpcy5ydCxvPXRoaXMucnQuRGI/Pyh0aGlzLnJ0LkliPzA6dC5tZWRpYVNpemUuaGVpZ2h0KTtpZihudWxsPT09cylyZXR1cm47Y29uc3QgYT10LmNvbnRleHQ7YS5saW5lQ2FwPSJidXR0IixhLmxpbmVKb2luPSJyb3VuZCIsYS5saW5lV2lkdGg9aCxsKGEsbiksYS5saW5lV2lkdGg9MSxuaCh0LGkscixzLGUsdGhpcy5WYi5iaW5kKHRoaXMpLHdoLmJpbmQobnVsbCxvKSl9fWNsYXNzIFNoe0JiKHQsaSl7Y29uc3Qgcz10aGlzLkViLHtBYjplLExiOmgsemI6bixPYjpyLERiOm8sTmI6bCxGYjphfT1pO2lmKHZvaWQgMD09PXRoaXMuV2J8fHZvaWQgMD09PXN8fHMuQWIhPT1lfHxzLkxiIT09aHx8cy56YiE9PW58fHMuT2IhPT1yfHxzLkRiIT09b3x8cy5OYiE9PWx8fHMuRmIhPT1hKXtjb25zdHt2ZXJ0aWNhbFBpeGVsUmF0aW86c309dCx1PW98fGw+MD9zOjEsYz1sKnUsZD1hPT09dC5iaXRtYXBTaXplLmhlaWdodD9hOmEqdSxmPShvPz8wKSp1LG09dC5jb250ZXh0LmNyZWF0ZUxpbmVhckdyYWRpZW50KDAsYywwLGQpO2lmKG0uYWRkQ29sb3JTdG9wKDAsZSksbnVsbCE9byl7CmNvbnN0IHQ9aWkoKGYtYykvKGQtYyksMCwxKTttLmFkZENvbG9yU3RvcCh0LGgpLG0uYWRkQ29sb3JTdG9wKHQsbil9bS5hZGRDb2xvclN0b3AoMSxyKSx0aGlzLldiPW0sdGhpcy5FYj1pfXJldHVybiB0aGlzLldifX1jbGFzcyB5aCBleHRlbmRzIE1oe2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLkhiPW5ldyBTaH1WYih0LGkpe2NvbnN0IHM9dGhpcy5ydDtyZXR1cm4gdGhpcy5IYi5CYih0LHtBYjppLmRoLExiOmkuZmgsemI6aS5waCxPYjppLm1oLERiOnMuRGIsTmI6cy5OYj8/MCxGYjpzLkZiPz90LmJpdG1hcFNpemUuaGVpZ2h0fSl9fWNsYXNzIHhoIGV4dGVuZHMgdWh7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMuVWI9bmV3IFNofWJiKHQsaSl7Y29uc3Qgcz10aGlzLnJ0O3JldHVybiB0aGlzLlViLkJiKHQse0FiOmkuX2gsTGI6aS5faCx6YjppLnVoLE9iOmkudWgsRGI6cy5EYixOYjpzLk5iPz8wLEZiOnMuRmI/P3QuYml0bWFwU2l6ZS5oZWlnaHR9KX19Y2xhc3MgX2ggZXh0ZW5kcyBnaHtjb25zdHJ1Y3Rvcih0LGkpe3N1cGVyKHQsaSksdGhpcy5rZz1uZXcgTix0aGlzLiRiPW5ldyB5aCx0aGlzLmpiPW5ldyB4aCx0aGlzLmtnLm50KFt0aGlzLiRiLHRoaXMuamJdKX14Yih0LGkscyl7cmV0dXJuey4uLnRoaXMuU2IodCxpKSwuLi5zLlNoKHQpfX1CZygpe2NvbnN0IHQ9dGhpcy5hZS5MdCgpO2lmKG51bGw9PT10KXJldHVybjtjb25zdCBpPXRoaXMuYWUuTigpLHM9dGhpcy5hZS5GdCgpLk50KGkuYmFzZVZhbHVlLnByaWNlLHQuV3QpLGU9dGhpcy5sZS5FdCgpLmZsKCk7aWYobnVsbD09PXRoaXMuU2d8fDA9PT10aGlzLmJnLmxlbmd0aClyZXR1cm47bGV0IGgsbjtpZihpLnJlbGF0aXZlR3JhZGllbnQpe2g9dGhpcy5iZ1t0aGlzLlNnLmZyb21dLnV0LG49dGhpcy5iZ1t0aGlzLlNnLmZyb21dLnV0O2ZvcihsZXQgdD10aGlzLlNnLmZyb207dDx0aGlzLlNnLnRvO3QrKyl7Y29uc3QgaT10aGlzLmJnW3RdO2kudXQ8aCYmKGg9aS51dCksaS51dD5uJiYobj1pLnV0KX19dGhpcy4kYi5odCh7b3Q6dGhpcy5iZyxjdDppLmxpbmVXaWR0aCxadDppLmxpbmVTdHlsZSxNYjppLmxpbmVUeXBlLERiOnMsTmI6aCxGYjpuLEliOiExLGx0OnRoaXMuU2csd2I6ZX0pLHRoaXMuamIuaHQoe290OnRoaXMuYmcsY3Q6aS5saW5lV2lkdGgsWnQ6aS5saW5lU3R5bGUsTWI6aS5saW5lVmlzaWJsZT9pLmxpbmVUeXBlOnZvaWQgMCxnYjppLnBvaW50TWFya2Vyc1Zpc2libGU/aS5wb2ludE1hcmtlcnNSYWRpdXN8fGkubGluZVdpZHRoLzIrMjp2b2lkIDAsRGI6cyxOYjpoLEZiOm4sbHQ6dGhpcy5TZyx3YjplfSl9fWNvbnN0IENoPXt0eXBlOiJCYXNlbGluZSIsaXNCdWlsdEluOiEwLGRlZmF1bHRPcHRpb25zOntiYXNlVmFsdWU6e3R5cGU6InByaWNlIixwcmljZTowfSxyZWxhdGl2ZUdyYWRpZW50OiExLHRvcEZpbGxDb2xvcjE6InJnYmEoMzgsIDE2NiwgMTU0LCAwLjI4KSIsdG9wRmlsbENvbG9yMjoicmdiYSgzOCwgMTY2LCAxNTQsIDAuMDUpIix0b3BMaW5lQ29sb3I6InJnYmEoMzgsIDE2NiwgMTU0LCAxKSIsYm90dG9tRmlsbENvbG9yMToicmdiYSgyMzksIDgzLCA4MCwgMC4wNSkiLGJvdHRvbUZpbGxDb2xvcjI6InJnYmEoMjM5LCA4MywgODAsIDAuMjgpIixib3R0b21MaW5lQ29sb3I6InJnYmEoMjM5LCA4MywgODAsIDEpIixsaW5lV2lkdGg6MyxsaW5lU3R5bGU6MCxsaW5lVHlwZTowLGxpbmVWaXNpYmxlOiEwLGNyb3NzaGFpck1hcmtlclZpc2libGU6ITAsY3Jvc3NoYWlyTWFya2VyUmFkaXVzOjQsY3Jvc3NoYWlyTWFya2VyQm9yZGVyQ29sb3I6IiIsY3Jvc3NoYWlyTWFya2VyQm9yZGVyV2lkdGg6Mixjcm9zc2hhaXJNYXJrZXJCYWNrZ3JvdW5kQ29sb3I6IiIsbGFzdFByaWNlQW5pbWF0aW9uOjAscG9pbnRNYXJrZXJzVmlzaWJsZTohMX0sb2I6KHQsaSk9Pm5ldyBfaCh0LGkpfTtjbGFzcyBUaCBleHRlbmRzIE1oe2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLkhiPW5ldyBTaH1WYih0LGkpe3JldHVybiB0aGlzLkhiLkJiKHQse0FiOmkuYWgsTGI6IiIsemI6IiIsT2I6aS5vaCxOYjp0aGlzLnJ0Py5OYj8/MCxGYjp0LmJpdG1hcFNpemUuaGVpZ2h0fSl9fWNsYXNzIGtoIGV4dGVuZHMgZ2h7Y29uc3RydWN0b3IodCxpKXtzdXBlcih0LGkpLHRoaXMua2c9bmV3IE4sdGhpcy5xYj1uZXcgVGgsdGhpcy5ZYj1uZXcgY2gsdGhpcy5rZy5udChbdGhpcy5xYix0aGlzLlliXSl9eGIodCxpLHMpe3JldHVybnsuLi50aGlzLlNiKHQsaSksLi4ucy5TaCh0KX19QmcoKXtjb25zdCB0PXRoaXMuYWUuTigpO2lmKG51bGw9PT10aGlzLlNnfHwwPT09dGhpcy5iZy5sZW5ndGgpcmV0dXJuO2xldCBpO2lmKHQucmVsYXRpdmVHcmFkaWVudCl7aT10aGlzLmJnW3RoaXMuU2cuZnJvbV0udXQ7Zm9yKGxldCB0PXRoaXMuU2cuZnJvbTt0PHRoaXMuU2cudG87dCsrKXtjb25zdCBzPXRoaXMuYmdbdF07cy51dDxpJiYoaT1zLnV0KX19dGhpcy5xYi5odCh7TWI6dC5saW5lVHlwZSxvdDp0aGlzLmJnLFp0OnQubGluZVN0eWxlLGN0OnQubGluZVdpZHRoLERiOm51bGwsTmI6aSxJYjp0LmludmVydEZpbGxlZEFyZWEsbHQ6dGhpcy5TZyx3Yjp0aGlzLmxlLkV0KCkuZmwoKX0pLHRoaXMuWWIuaHQoe01iOnQubGluZVZpc2libGU/dC5saW5lVHlwZTp2b2lkIDAsb3Q6dGhpcy5iZyxadDp0LmxpbmVTdHlsZSxjdDp0LmxpbmVXaWR0aCxsdDp0aGlzLlNnLHdiOnRoaXMubGUuRXQoKS5mbCgpLGdiOnQucG9pbnRNYXJrZXJzVmlzaWJsZT90LnBvaW50TWFya2Vyc1JhZGl1c3x8dC5saW5lV2lkdGgvMisyOnZvaWQgMH0pfX1jb25zdCBFaD17dHlwZToiQXJlYSIsaXNCdWlsdEluOiEwLGRlZmF1bHRPcHRpb25zOnt0b3BDb2xvcjoicmdiYSggNDYsIDIyMCwgMTM1LCAwLjQpIixib3R0b21Db2xvcjoicmdiYSggNDAsIDIyMSwgMTAwLCAwKSIsaW52ZXJ0RmlsbGVkQXJlYTohMSxyZWxhdGl2ZUdyYWRpZW50OiExLGxpbmVDb2xvcjoiIzMzRDc3OCIsbGluZVN0eWxlOjAsbGluZVdpZHRoOjMsbGluZVR5cGU6MCxsaW5lVmlzaWJsZTohMCwKY3Jvc3NoYWlyTWFya2VyVmlzaWJsZTohMCxjcm9zc2hhaXJNYXJrZXJSYWRpdXM6NCxjcm9zc2hhaXJNYXJrZXJCb3JkZXJDb2xvcjoiIixjcm9zc2hhaXJNYXJrZXJCb3JkZXJXaWR0aDoyLGNyb3NzaGFpck1hcmtlckJhY2tncm91bmRDb2xvcjoiIixsYXN0UHJpY2VBbmltYXRpb246MCxwb2ludE1hcmtlcnNWaXNpYmxlOiExfSxvYjoodCxpKT0+bmV3IGtoKHQsaSl9O2NsYXNzIE5oIGV4dGVuZHMgentjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5xdD1udWxsLHRoaXMuS2I9MCx0aGlzLlpiPTB9aHQodCl7dGhpcy5xdD10fWV0KHtjb250ZXh0OnQsaG9yaXpvbnRhbFBpeGVsUmF0aW86aSx2ZXJ0aWNhbFBpeGVsUmF0aW86c30pe2lmKG51bGw9PT10aGlzLnF0fHwwPT09dGhpcy5xdC5Vbi5sZW5ndGh8fG51bGw9PT10aGlzLnF0Lmx0KXJldHVybjt0aGlzLktiPXRoaXMuR2IoaSksdGhpcy5LYj49MiYmTWF0aC5tYXgoMSxNYXRoLmZsb29yKGkpKSUyIT10aGlzLktiJTImJnRoaXMuS2ItLSx0aGlzLlpiPXRoaXMucXQuWGI/TWF0aC5taW4odGhpcy5LYixNYXRoLmZsb29yKGkpKTp0aGlzLktiO2xldCBlPW51bGw7Y29uc3QgaD10aGlzLlpiPD10aGlzLktiJiZ0aGlzLnF0LmZsPj1NYXRoLmZsb29yKDEuNSppKTtmb3IobGV0IG49dGhpcy5xdC5sdC5mcm9tO248dGhpcy5xdC5sdC50bzsrK24pe2NvbnN0IHI9dGhpcy5xdC5VbltuXTtlIT09ci5zaCYmKHQuZmlsbFN0eWxlPXIuc2gsZT1yLnNoKTtjb25zdCBvPU1hdGguZmxvb3IoLjUqdGhpcy5aYiksbD1NYXRoLnJvdW5kKHIuX3QqaSksYT1sLW8sdT10aGlzLlpiLGM9YSt1LTEsZD1NYXRoLm1pbihyLlFvLHIudF8pLGY9TWF0aC5tYXgoci5RbyxyLnRfKSxtPU1hdGgucm91bmQoZCpzKS1vLHA9TWF0aC5yb3VuZChmKnMpK28sZz1NYXRoLm1heChwLW0sdGhpcy5aYik7dC5maWxsUmVjdChhLG0sdSxnKTtjb25zdCB2PU1hdGguY2VpbCgxLjUqdGhpcy5LYik7aWYoaCl7aWYodGhpcy5xdC5KYil7Y29uc3QgaT1sLXY7bGV0IGU9TWF0aC5tYXgobSxNYXRoLnJvdW5kKHIuSm8qcyktbyksaD1lK3UtMTtoPm0rZy0xJiYoaD1tK2ctMSxlPWgtdSsxKSx0LmZpbGxSZWN0KGksZSxhLWksaC1lKzEpfWNvbnN0IGk9bCt2O2xldCBlPU1hdGgubWF4KG0sTWF0aC5yb3VuZChyLmlfKnMpLW8pLGg9ZSt1LTE7aD5tK2ctMSYmKGg9bStnLTEsZT1oLXUrMSksdC5maWxsUmVjdChjKzEsZSxpLWMsaC1lKzEpfX19R2IodCl7Y29uc3QgaT1NYXRoLmZsb29yKHQpO3JldHVybiBNYXRoLm1heChpLE1hdGguZmxvb3IoZnVuY3Rpb24odCxpKXtyZXR1cm4gTWF0aC5mbG9vciguMyp0KmkpfShkKHRoaXMucXQpLmZsLHQpKSl9fWNsYXNzIHpoIGV4dGVuZHMgX2V7Y29uc3RydWN0b3IodCxpKXtzdXBlcih0LGksITEpfVBnKHQsaSl7cmV0dXJuIE1lKHRoaXMuYmcsdGhpcy5TZyx0LGksdGhpcy5sZS5FdCgpLmZsKCksdGhpcy5hZS5OKCkuaGl0VGVzdFRvbGVyYW5jZSwoKHQsaSk9PntpWzBdPXQuUW8saVsxXT10LnRffSkpfVZnKHQsaSxzKXtpLlRjKHRoaXMuYmcseSh0aGlzLlNnKSksdC5Ybyh0aGlzLmJnLHMseSh0aGlzLlNnKSl9UWIodCxpLHMpe3JldHVybnt3dDp0LGpyOmkuV3RbMF0scXI6aS5XdFsxXSxZcjppLld0WzJdLEtyOmkuV3RbM10sX3Q6TmFOLEpvOk5hTixRbzpOYU4sdF86TmFOLGlfOk5hTn19RGcoKXtjb25zdCB0PXRoaXMuYWUuU2EoKTt0aGlzLmJnPXRoaXMuYWUuSGEoKS5CaCgpLm1hcCgoaT0+dGhpcy54YihpLiRuLGksdCkpKX19Y2xhc3MgUGggZXh0ZW5kcyB6aHtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5rZz1uZXcgTmh9eGIodCxpLHMpe3JldHVybnsuLi50aGlzLlFiKHQsaSxzKSwuLi5zLlNoKHQpfX1CZygpe2NvbnN0IHQ9dGhpcy5hZS5OKCk7dGhpcy5rZy5odCh7VW46dGhpcy5iZyxmbDp0aGlzLmxlLkV0KCkuZmwoKSxKYjp0Lm9wZW5WaXNpYmxlLFhiOnQudGhpbkJhcnMsbHQ6dGhpcy5TZ30pfX1jb25zdCBxaD17dHlwZToiQmFyIixpc0J1aWx0SW46ITAsZGVmYXVsdE9wdGlvbnM6e3VwQ29sb3I6IiMyNmE2OWEiLGRvd25Db2xvcjoiI2VmNTM1MCIsb3BlblZpc2libGU6ITAsdGhpbkJhcnM6ITB9LG9iOih0LGkpPT5uZXcgUGgodCxpKX07Y2xhc3MgTGggZXh0ZW5kcyB6e2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLnF0PW51bGwsdGhpcy5LYj0wfWh0KHQpe3RoaXMucXQ9dH1ldCh0KXtpZihudWxsPT09dGhpcy5xdHx8MD09PXRoaXMucXQuVW4ubGVuZ3RofHxudWxsPT09dGhpcy5xdC5sdClyZXR1cm47Y29uc3R7aG9yaXpvbnRhbFBpeGVsUmF0aW86aX09dDt0aGlzLktiPWZ1bmN0aW9uKHQsaSl7aWYodD49Mi41JiZ0PD00KXJldHVybiBNYXRoLmZsb29yKDMqaSk7Y29uc3Qgcz0xLS4yKk1hdGguYXRhbihNYXRoLm1heCg0LHQpLTQpLyguNSpNYXRoLlBJKSxlPU1hdGguZmxvb3IodCpzKmkpLGg9TWF0aC5mbG9vcih0KmkpLG49TWF0aC5taW4oZSxoKTtyZXR1cm4gTWF0aC5tYXgoTWF0aC5mbG9vcihpKSxuKX0odGhpcy5xdC5mbCxpKSx0aGlzLktiPj0yJiZNYXRoLmZsb29yKGkpJTIhPXRoaXMuS2IlMiYmdGhpcy5LYi0tO2NvbnN0IHM9dGhpcy5xdC5Vbjt0aGlzLnF0LnRTJiZ0aGlzLmlTKHQscyx0aGlzLnF0Lmx0KSx0aGlzLnF0LmdpJiZ0aGlzLlJtKHQscyx0aGlzLnF0Lmx0KTtjb25zdCBlPXRoaXMublMoaSk7KCF0aGlzLnF0LmdpfHx0aGlzLktiPjIqZSkmJnRoaXMuc1ModCxzLHRoaXMucXQubHQpfWlTKHQsaSxzKXtpZihudWxsPT09dGhpcy5xdClyZXR1cm47Y29uc3R7Y29udGV4dDplLGhvcml6b250YWxQaXhlbFJhdGlvOmgsdmVydGljYWxQaXhlbFJhdGlvOm59PXQ7bGV0IHI9IiIsbz1NYXRoLm1pbihNYXRoLmZsb29yKGgpLE1hdGguZmxvb3IodGhpcy5xdC5mbCpoKSk7bz1NYXRoLm1heChNYXRoLmZsb29yKGgpLE1hdGgubWluKG8sdGhpcy5LYikpO2NvbnN0IGw9TWF0aC5mbG9vciguNSpvKTtsZXQgYT1udWxsO2ZvcihsZXQgdD1zLmZyb207dDxzLnRvO3QrKyl7Y29uc3Qgcz1pW3RdO3MucmghPT1yJiYoZS5maWxsU3R5bGU9cy5yaCwKcj1zLnJoKTtjb25zdCB1PU1hdGgucm91bmQoTWF0aC5taW4ocy5KbyxzLmlfKSpuKSxjPU1hdGgucm91bmQoTWF0aC5tYXgocy5KbyxzLmlfKSpuKSxkPU1hdGgucm91bmQocy5RbypuKSxmPU1hdGgucm91bmQocy50XypuKTtsZXQgbT1NYXRoLnJvdW5kKGgqcy5fdCktbDtjb25zdCBwPW0rby0xO251bGwhPT1hJiYobT1NYXRoLm1heChhKzEsbSksbT1NYXRoLm1pbihtLHApKTtjb25zdCBnPXAtbSsxO2UuZmlsbFJlY3QobSxkLGcsdS1kKSxlLmZpbGxSZWN0KG0sYysxLGcsZi1jKSxhPXB9fW5TKHQpe2xldCBpPU1hdGguZmxvb3IoMSp0KTt0aGlzLktiPD0yKmkmJihpPU1hdGguZmxvb3IoLjUqKHRoaXMuS2ItMSkpKTtjb25zdCBzPU1hdGgubWF4KE1hdGguZmxvb3IodCksaSk7cmV0dXJuIHRoaXMuS2I8PTIqcz9NYXRoLm1heChNYXRoLmZsb29yKHQpLE1hdGguZmxvb3IoMSp0KSk6c31SbSh0LGkscyl7aWYobnVsbD09PXRoaXMucXQpcmV0dXJuO2NvbnN0e2NvbnRleHQ6ZSxob3Jpem9udGFsUGl4ZWxSYXRpbzpoLHZlcnRpY2FsUGl4ZWxSYXRpbzpufT10O2xldCByPSIiO2NvbnN0IG89dGhpcy5uUyhoKTtsZXQgbD1udWxsO2ZvcihsZXQgdD1zLmZyb207dDxzLnRvO3QrKyl7Y29uc3Qgcz1pW3RdO3MuZWghPT1yJiYoZS5maWxsU3R5bGU9cy5laCxyPXMuZWgpO2xldCBhPU1hdGgucm91bmQocy5fdCpoKS1NYXRoLmZsb29yKC41KnRoaXMuS2IpO2NvbnN0IHU9YSt0aGlzLktiLTEsYz1NYXRoLnJvdW5kKE1hdGgubWluKHMuSm8scy5pXykqbiksZD1NYXRoLnJvdW5kKE1hdGgubWF4KHMuSm8scy5pXykqbik7aWYobnVsbCE9PWwmJihhPU1hdGgubWF4KGwrMSxhKSxhPU1hdGgubWluKGEsdSkpLHRoaXMucXQuZmwqaD4yKm8pVyhlLGEsYyx1LWErMSxkLWMrMSxvKTtlbHNle2NvbnN0IHQ9dS1hKzE7ZS5maWxsUmVjdChhLGMsdCxkLWMrMSl9bD11fX1zUyh0LGkscyl7aWYobnVsbD09PXRoaXMucXQpcmV0dXJuO2NvbnN0e2NvbnRleHQ6ZSxob3Jpem9udGFsUGl4ZWxSYXRpbzpoLHZlcnRpY2FsUGl4ZWxSYXRpbzpufT10O2xldCByPSIiO2NvbnN0IG89dGhpcy5uUyhoKTtmb3IobGV0IHQ9cy5mcm9tO3Q8cy50bzt0Kyspe2NvbnN0IHM9aVt0XTtsZXQgbD1NYXRoLnJvdW5kKE1hdGgubWluKHMuSm8scy5pXykqbiksYT1NYXRoLnJvdW5kKE1hdGgubWF4KHMuSm8scy5pXykqbiksdT1NYXRoLnJvdW5kKHMuX3QqaCktTWF0aC5mbG9vciguNSp0aGlzLktiKSxjPXUrdGhpcy5LYi0xO2lmKHMuc2ghPT1yKXtjb25zdCB0PXMuc2g7ZS5maWxsU3R5bGU9dCxyPXR9dGhpcy5xdC5naSYmKHUrPW8sbCs9byxjLT1vLGEtPW8pLGw+YXx8ZS5maWxsUmVjdCh1LGwsYy11KzEsYS1sKzEpfX19Y2xhc3MgSWggZXh0ZW5kcyB6aHtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5rZz1uZXcgTGh9eGIodCxpLHMpe3JldHVybnsuLi50aGlzLlFiKHQsaSxzKSwuLi5zLlNoKHQpfX1CZygpe2NvbnN0IHQ9dGhpcy5hZS5OKCk7dGhpcy5rZy5odCh7VW46dGhpcy5iZyxmbDp0aGlzLmxlLkV0KCkuZmwoKSx0Uzp0LndpY2tWaXNpYmxlLGdpOnQuYm9yZGVyVmlzaWJsZSxsdDp0aGlzLlNnfSl9fWNvbnN0IFJoPXt0eXBlOiJDYW5kbGVzdGljayIsaXNCdWlsdEluOiEwLGRlZmF1bHRPcHRpb25zOnt1cENvbG9yOiIjMjZhNjlhIixkb3duQ29sb3I6IiNlZjUzNTAiLHdpY2tWaXNpYmxlOiEwLGJvcmRlclZpc2libGU6ITAsYm9yZGVyQ29sb3I6IiMzNzg2NTgiLGJvcmRlclVwQ29sb3I6IiMyNmE2OWEiLGJvcmRlckRvd25Db2xvcjoiI2VmNTM1MCIsd2lja0NvbG9yOiIjNzM3Mzc1Iix3aWNrVXBDb2xvcjoiIzI2YTY5YSIsd2lja0Rvd25Db2xvcjoiI2VmNTM1MCJ9LG9iOih0LGkpPT5uZXcgSWgodCxpKX07Y2xhc3MgRmggZXh0ZW5kcyB6e2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLnF0PW51bGwsdGhpcy5lUz1bXX1odCh0KXt0aGlzLnF0PXQsdGhpcy5lUz1bXX1ldCh7Y29udGV4dDp0LGhvcml6b250YWxQaXhlbFJhdGlvOmksdmVydGljYWxQaXhlbFJhdGlvOnN9KXtpZihudWxsPT09dGhpcy5xdHx8MD09PXRoaXMucXQub3QubGVuZ3RofHxudWxsPT09dGhpcy5xdC5sdClyZXR1cm47dGhpcy5lUy5sZW5ndGh8fHRoaXMuclMoaSk7Y29uc3QgZT1NYXRoLm1heCgxLE1hdGguZmxvb3IocykpLGg9TWF0aC5yb3VuZCh0aGlzLnF0LmhTKnMpLU1hdGguZmxvb3IoZS8yKSxuPWgrZTtmb3IobGV0IGk9dGhpcy5xdC5sdC5mcm9tO2k8dGhpcy5xdC5sdC50bztpKyspe2NvbnN0IHI9dGhpcy5xdC5vdFtpXSxvPXRoaXMuZVNbaS10aGlzLnF0Lmx0LmZyb21dLGw9TWF0aC5yb3VuZChyLnV0KnMpO2xldCBhLHU7dC5maWxsU3R5bGU9ci5zaCxsPD1oPyhhPWwsdT1uKTooYT1oLHU9bC1NYXRoLmZsb29yKGUvMikrZSksdC5maWxsUmVjdChvLk9hLGEsby5iaS1vLk9hKzEsdS1hKX19clModCl7aWYobnVsbD09PXRoaXMucXR8fDA9PT10aGlzLnF0Lm90Lmxlbmd0aHx8bnVsbD09PXRoaXMucXQubHQpcmV0dXJuIHZvaWQodGhpcy5lUz1bXSk7Y29uc3QgaT1NYXRoLmNlaWwodGhpcy5xdC5mbCp0KTw9MT8wOk1hdGgubWF4KDEsTWF0aC5mbG9vcih0KSkscz1NYXRoLnJvdW5kKHRoaXMucXQuZmwqdCktaTt0aGlzLmVTPW5ldyBBcnJheSh0aGlzLnF0Lmx0LnRvLXRoaXMucXQubHQuZnJvbSk7Zm9yKGxldCBpPXRoaXMucXQubHQuZnJvbTtpPHRoaXMucXQubHQudG87aSsrKXtjb25zdCBlPXRoaXMucXQub3RbaV0saD1NYXRoLnJvdW5kKGUuX3QqdCk7bGV0IG4scjtpZihzJTIpe2NvbnN0IHQ9KHMtMSkvMjtuPWgtdCxyPWgrdH1lbHNle2NvbnN0IHQ9cy8yO249aC10LHI9aCt0LTF9dGhpcy5lU1tpLXRoaXMucXQubHQuZnJvbV09e09hOm4sYmk6cixhUzpoLGNlOmUuX3QqdCx3dDplLnd0fX1mb3IobGV0IHQ9dGhpcy5xdC5sdC5mcm9tKzE7dDx0aGlzLnF0Lmx0LnRvO3QrKyl7Y29uc3Qgcz10aGlzLmVTW3QtdGhpcy5xdC5sdC5mcm9tXSxlPXRoaXMuZVNbdC10aGlzLnF0Lmx0LmZyb20tMV0KO3Mud3Q9PT1lLnd0KzEmJnMuT2EtZS5iaSE9PWkrMSYmKGUuYVM+ZS5jZT9lLmJpPXMuT2EtaS0xOnMuT2E9ZS5iaStpKzEpfWxldCBlPU1hdGguY2VpbCh0aGlzLnF0LmZsKnQpO2ZvcihsZXQgdD10aGlzLnF0Lmx0LmZyb207dDx0aGlzLnF0Lmx0LnRvO3QrKyl7Y29uc3QgaT10aGlzLmVTW3QtdGhpcy5xdC5sdC5mcm9tXTtpLmJpPGkuT2EmJihpLmJpPWkuT2EpO2NvbnN0IHM9aS5iaS1pLk9hKzE7ZT1NYXRoLm1pbihzLGUpfWlmKGk+MCYmZTw0KWZvcihsZXQgdD10aGlzLnF0Lmx0LmZyb207dDx0aGlzLnF0Lmx0LnRvO3QrKyl7Y29uc3QgaT10aGlzLmVTW3QtdGhpcy5xdC5sdC5mcm9tXTtpLmJpLWkuT2ErMT5lJiYoaS5hUz5pLmNlP2kuYmktPTE6aS5PYSs9MSl9fX1jbGFzcyBXaCBleHRlbmRzIHBoe2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLmtnPW5ldyBGaH1QZyh0LGkpe2NvbnN0IHM9dGhpcy5hZS5GdCgpLk50KHRoaXMuYWUuTigpLmJhc2UsZCh0aGlzLmFlLkx0KCkpLld0KTtyZXR1cm4gbnVsbD09PXM/bnVsbDpNZSh0aGlzLmJnLHRoaXMuU2csdCxpLHRoaXMubGUuRXQoKS5mbCgpLHRoaXMuYWUuTigpLmhpdFRlc3RUb2xlcmFuY2UsKCh0LGkpPT57aVswXT10LnV0LGlbMV09c30pKX14Yih0LGkscyl7cmV0dXJuey4uLnRoaXMuU2IodCxpKSwuLi5zLlNoKHQpfX1CZygpe2NvbnN0IHQ9e290OnRoaXMuYmcsZmw6dGhpcy5sZS5FdCgpLmZsKCksbHQ6dGhpcy5TZyxoUzp0aGlzLmFlLkZ0KCkuTnQodGhpcy5hZS5OKCkuYmFzZSxkKHRoaXMuYWUuTHQoKSkuV3QpfTt0aGlzLmtnLmh0KHQpfX1jb25zdCBRaD17dHlwZToiSGlzdG9ncmFtIixpc0J1aWx0SW46ITAsZGVmYXVsdE9wdGlvbnM6e2NvbG9yOiIjMjZhNjlhIixiYXNlOjB9LG9iOih0LGkpPT5uZXcgV2godCxpKX07Y2xhc3MgRGh7Y29uc3RydWN0b3IodCxpKXt0aGlzLnl0PXQsdGhpcy5sUz1pLHRoaXMub1MoKX1kZXRhY2goKXt0aGlzLnl0LmRldGFjaFByaW1pdGl2ZSh0aGlzLmxTKX1nZXRQYW5lKCl7cmV0dXJuIHRoaXMueXR9YXBwbHlPcHRpb25zKHQpe3RoaXMubFMudnI/Lih0KX1vUygpe3RoaXMueXQuYXR0YWNoUHJpbWl0aXZlKHRoaXMubFMpfX1jb25zdCBCaD17dmlzaWJsZTohMCxob3J6QWxpZ246ImNlbnRlciIsdmVydEFsaWduOiJjZW50ZXIiLGxpbmVzOltdfSxLaD17Y29sb3I6InJnYmEoMCwgMCwgMCwgMC41KSIsZm9udFNpemU6NDgsZm9udEZhbWlseTp4LGZvbnRTdHlsZToiIix0ZXh0OiIifTtjbGFzcyBPaHtjb25zdHJ1Y3Rvcih0KXt0aGlzLl9TPW5ldyBNYXAsdGhpcy5xdD10fWRyYXcodCl7dC51c2VNZWRpYUNvb3JkaW5hdGVTcGFjZSgodD0+e2lmKCF0aGlzLnF0LnZpc2libGUpcmV0dXJuO2NvbnN0e2NvbnRleHQ6aSxtZWRpYVNpemU6c309dDtsZXQgZT0wO2Zvcihjb25zdCB0IG9mIHRoaXMucXQubGluZXMpe2lmKDA9PT10LnRleHQubGVuZ3RoKWNvbnRpbnVlO2kuZm9udD10LlA7Y29uc3QgaD10aGlzLnVTKGksdC50ZXh0KTtoPnMud2lkdGg/dC5GYz1zLndpZHRoL2g6dC5GYz0xLGUrPXQubGluZUhlaWdodCp0LkZjfWxldCBoPTA7c3dpdGNoKHRoaXMucXQudmVydEFsaWduKXtjYXNlInRvcCI6aD0wO2JyZWFrO2Nhc2UiY2VudGVyIjpoPU1hdGgubWF4KChzLmhlaWdodC1lKS8yLDApO2JyZWFrO2Nhc2UiYm90dG9tIjpoPU1hdGgubWF4KHMuaGVpZ2h0LWUsMCl9Zm9yKGNvbnN0IHQgb2YgdGhpcy5xdC5saW5lcyl7aS5zYXZlKCksaS5maWxsU3R5bGU9dC5jb2xvcjtsZXQgZT0wO3N3aXRjaCh0aGlzLnF0LmhvcnpBbGlnbil7Y2FzZSJsZWZ0IjppLnRleHRBbGlnbj0ibGVmdCIsZT10LmxpbmVIZWlnaHQvMjticmVhaztjYXNlImNlbnRlciI6aS50ZXh0QWxpZ249ImNlbnRlciIsZT1zLndpZHRoLzI7YnJlYWs7Y2FzZSJyaWdodCI6aS50ZXh0QWxpZ249InJpZ2h0IixlPXMud2lkdGgtMS10LmxpbmVIZWlnaHQvMn1pLnRyYW5zbGF0ZShlLGgpLGkudGV4dEJhc2VsaW5lPSJ0b3AiLGkuZm9udD10LlAsaS5zY2FsZSh0LkZjLHQuRmMpLGkuZmlsbFRleHQodC50ZXh0LDAsdC5jUyksaS5yZXN0b3JlKCksaCs9dC5saW5lSGVpZ2h0KnQuRmN9fSkpfXVTKHQsaSl7Y29uc3Qgcz10aGlzLmRTKHQuZm9udCk7bGV0IGU9cy5nZXQoaSk7cmV0dXJuIHZvaWQgMD09PWUmJihlPXQubWVhc3VyZVRleHQoaSkud2lkdGgscy5zZXQoaSxlKSksZX1kUyh0KXtsZXQgaT10aGlzLl9TLmdldCh0KTtyZXR1cm4gdm9pZCAwPT09aSYmKGk9bmV3IE1hcCx0aGlzLl9TLnNldCh0LGkpKSxpfX1jbGFzcyBWaHtjb25zdHJ1Y3Rvcih0KXt0aGlzLnluPUFoKHQpfWt0KHQpe3RoaXMueW49QWgodCl9cmVuZGVyZXIoKXtyZXR1cm4gbmV3IE9oKHRoaXMueW4pfX1mdW5jdGlvbiAkaCh0KXtyZXR1cm57Li4udCxQOl8odC5mb250U2l6ZSx0LmZvbnRGYW1pbHksdC5mb250U3R5bGUpLGxpbmVIZWlnaHQ6dC5saW5lSGVpZ2h0fHwxLjIqdC5mb250U2l6ZSxjUzowLEZjOjB9fWZ1bmN0aW9uIEFoKHQpe3JldHVybnsuLi50LGxpbmVzOnQubGluZXMubWFwKCRoKX19ZnVuY3Rpb24gWmgodCl7cmV0dXJuey4uLktoLC4uLnR9fWZ1bmN0aW9uIFloKHQpe3JldHVybnsuLi5CaCwuLi50LGxpbmVzOnQubGluZXM/Lm1hcChaaCk/P1tdfX1jbGFzcyBIaHtjb25zdHJ1Y3Rvcih0KXt0aGlzLnluPVloKHQpLHRoaXMuZlM9W25ldyBWaCh0aGlzLnluKV19dXBkYXRlQWxsVmlld3MoKXt0aGlzLmZTLmZvckVhY2goKHQ9PnQua3QodGhpcy55bikpKX1wYW5lVmlld3MoKXtyZXR1cm4gdGhpcy5mU31hdHRhY2hlZCh7cmVxdWVzdFVwZGF0ZTp0fSl7dGhpcy5wUz10fWRldGFjaGVkKCl7dGhpcy5wUz12b2lkIDB9dnIodCl7dGhpcy55bj1ZaCh7Li4udGhpcy55biwuLi50fSksdGhpcy5wUyYmdGhpcy5wUygpfX1mdW5jdGlvbiBHaCh0LGkpe3JldHVybiBuZXcgRGgodCxuZXcgSGgoaSkpfWNsYXNzIFVoe2NvbnN0cnVjdG9yKHQsaSl7dGhpcy5hZT10LHRoaXMuSmg9aSx0aGlzLm9TKCl9ZGV0YWNoKCl7dGhpcy5hZS5kZXRhY2hQcmltaXRpdmUodGhpcy5KaCl9Z2V0U2VyaWVzKCl7cmV0dXJuIHRoaXMuYWV9CmFwcGx5T3B0aW9ucyh0KXt0aGlzLkpoJiZ0aGlzLkpoLnZyJiZ0aGlzLkpoLnZyKHQpfW9TKCl7dGhpcy5hZS5hdHRhY2hQcmltaXRpdmUodGhpcy5KaCl9fWNvbnN0IGpoPXthdXRvU2NhbGU6ITAsek9yZGVyOiJub3JtYWwifTtmdW5jdGlvbiBYaCh0LGkpe3JldHVybiBlaShNYXRoLm1pbihNYXRoLm1heCh0LDEyKSwzMCkqaSl9ZnVuY3Rpb24gSmgodCxpKXtzd2l0Y2godCl7Y2FzZSJhcnJvd0Rvd24iOmNhc2UiYXJyb3dVcCI6cmV0dXJuIFhoKGksMSk7Y2FzZSJjaXJjbGUiOnJldHVybiBYaChpLC44KTtjYXNlInNxdWFyZSI6cmV0dXJuIFhoKGksLjcpfX1mdW5jdGlvbiB0bih0KXtyZXR1cm4gZnVuY3Rpb24odCl7Y29uc3QgaT1NYXRoLmNlaWwodCk7cmV0dXJuIGklMiE9MD9pLTE6aX0oWGgodCwxKSl9ZnVuY3Rpb24gc24odCl7cmV0dXJuIE1hdGgubWF4KFhoKHQsLjEpLDMpfWZ1bmN0aW9uIGVuKHQsaSxzKXtyZXR1cm4gaT90OnM/TWF0aC5jZWlsKHQvMik6MH1mdW5jdGlvbiBobih0LGkscyxlKXtjb25zdCBoPShKaCgiYXJyb3dVcCIsZSktMSkvMipzLlZTLG49KGVpKGUvMiktMSkvMipzLlZTO2kuYmVnaW5QYXRoKCksdD8oaS5tb3ZlVG8ocy5fdC1oLHMudXQpLGkubGluZVRvKHMuX3Qscy51dC1oKSxpLmxpbmVUbyhzLl90K2gscy51dCksaS5saW5lVG8ocy5fdCtuLHMudXQpLGkubGluZVRvKHMuX3QrbixzLnV0K2gpLGkubGluZVRvKHMuX3QtbixzLnV0K2gpLGkubGluZVRvKHMuX3QtbixzLnV0KSk6KGkubW92ZVRvKHMuX3QtaCxzLnV0KSxpLmxpbmVUbyhzLl90LHMudXQraCksaS5saW5lVG8ocy5fdCtoLHMudXQpLGkubGluZVRvKHMuX3QrbixzLnV0KSxpLmxpbmVUbyhzLl90K24scy51dC1oKSxpLmxpbmVUbyhzLl90LW4scy51dC1oKSxpLmxpbmVUbyhzLl90LW4scy51dCkpLGkuZmlsbCgpfWZ1bmN0aW9uIG5uKHQsaSxzLGUsaCxuKXtjb25zdCByPShKaCgiYXJyb3dVcCIsZSktMSkvMixvPShlaShlLzIpLTEpLzI7cmV0dXJuIGg+PWktby0yJiZoPD1pK28rMiYmbj49KHQ/czpzLXIpLTImJm48PSh0P3MrcjpzKSsyfHwoKCk9PntpZihoPGktci0zfHxoPmkrciszfHxuPCh0P3Mtci0zOnMpfHxuPih0P3M6cytyKzMpKXJldHVybiExO2NvbnN0IGU9TWF0aC5hYnMoaC1pKTtyZXR1cm4gTWF0aC5hYnMobi1zKSszPj1lLzJ9KSgpfWNsYXNzIHJue2NvbnN0cnVjdG9yKCl7dGhpcy5xdD1udWxsLHRoaXMuJHM9bmV3IG50LHRoaXMuRj0tMSx0aGlzLlc9IiIsdGhpcy5ubT0iIix0aGlzLkJTPSJub3JtYWwifWh0KHQpe3RoaXMucXQ9dH1qcyh0LGkscyl7dGhpcy5GPT09dCYmdGhpcy5XPT09aXx8KHRoaXMuRj10LHRoaXMuVz1pLHRoaXMubm09Xyh0LGkpLHRoaXMuJHMuT3MoKSksdGhpcy5CUz1zfVFzKHQsaSl7aWYobnVsbD09PXRoaXMucXR8fG51bGw9PT10aGlzLnF0Lmx0KXJldHVybiBudWxsO2ZvcihsZXQgcz10aGlzLnF0Lmx0LmZyb207czx0aGlzLnF0Lmx0LnRvO3MrKyl7Y29uc3QgZT10aGlzLnF0Lm90W3NdO2lmKGUmJmxuKGUsdCxpKSlyZXR1cm57ek9yZGVyOiJub3JtYWwiLGV4dGVybmFsSWQ6ZS50ZT8/IiIsaXRlbVR5cGU6Im1hcmtlciJ9fXJldHVybiBudWxsfWRyYXcodCl7ImFib3ZlU2VyaWVzIiE9PXRoaXMuQlMmJnQudXNlQml0bWFwQ29vcmRpbmF0ZVNwYWNlKCh0PT57dGhpcy5ldCh0KX0pKX1kcmF3QmFja2dyb3VuZCh0KXsiYWJvdmVTZXJpZXMiPT09dGhpcy5CUyYmdC51c2VCaXRtYXBDb29yZGluYXRlU3BhY2UoKHQ9Pnt0aGlzLmV0KHQpfSkpfWV0KHtjb250ZXh0OnQsaG9yaXpvbnRhbFBpeGVsUmF0aW86aSx2ZXJ0aWNhbFBpeGVsUmF0aW86c30pe2lmKG51bGwhPT10aGlzLnF0JiZudWxsIT09dGhpcy5xdC5sdCl7dC50ZXh0QmFzZWxpbmU9Im1pZGRsZSIsdC5mb250PXRoaXMubm07Zm9yKGxldCBlPXRoaXMucXQubHQuZnJvbTtlPHRoaXMucXQubHQudG87ZSsrKXtjb25zdCBoPXRoaXMucXQub3RbZV07dm9pZCAwIT09aC5yaSYmKGgucmkubm49dGhpcy4kcy5JaSh0LGgucmkuRVMpLGgucmkuJHQ9dGhpcy5GLGgucmkuX3Q9aC5fdC1oLnJpLm5uLzIpLG9uKGgsdCxpLHMpfX19fWZ1bmN0aW9uIG9uKHQsaSxzLGUpe2kuZmlsbFN0eWxlPXQuUix2b2lkIDAhPT10LnJpJiZmdW5jdGlvbih0LGkscyxlLGgsbil7dC5zYXZlKCksdC5zY2FsZShoLG4pLHQuZmlsbFRleHQoaSxzLGUpLHQucmVzdG9yZSgpfShpLHQucmkuRVMsdC5yaS5fdCx0LnJpLnV0LHMsZSksZnVuY3Rpb24odCxpLHMpe2lmKDAhPT10LlRoKXtzd2l0Y2godC5BUyl7Y2FzZSJhcnJvd0Rvd24iOnJldHVybiB2b2lkIGhuKCExLGkscyx0LlRoKTtjYXNlImFycm93VXAiOnJldHVybiB2b2lkIGhuKCEwLGkscyx0LlRoKTtjYXNlImNpcmNsZSI6cmV0dXJuIHZvaWQgZnVuY3Rpb24odCxpLHMpe2NvbnN0IGU9KEpoKCJjaXJjbGUiLHMpLTEpLzI7dC5iZWdpblBhdGgoKSx0LmFyYyhpLl90LGkudXQsZSppLlZTLDAsMipNYXRoLlBJLCExKSx0LmZpbGwoKX0oaSxzLHQuVGgpO2Nhc2Uic3F1YXJlIjpyZXR1cm4gdm9pZCBmdW5jdGlvbih0LGkscyl7Y29uc3QgZT1KaCgic3F1YXJlIixzKSxoPShlLTEpKmkuVlMvMixuPWkuX3QtaCxyPWkudXQtaDt0LmZpbGxSZWN0KG4scixlKmkuVlMsZSppLlZTKX0oaSxzLHQuVGgpfXQuQVN9fSh0LGksZnVuY3Rpb24odCxpLHMpe2NvbnN0IGU9TWF0aC5tYXgoMSxNYXRoLmZsb29yKGkpKSUyLzI7cmV0dXJue190Ok1hdGgucm91bmQodC5fdCppKStlLHV0OnQudXQqcyxWUzppfX0odCxzLGUpKX1mdW5jdGlvbiBsbih0LGkscyl7cmV0dXJuISh2b2lkIDA9PT10LnJpfHwhZnVuY3Rpb24odCxpLHMsZSxoLG4pe2NvbnN0IHI9ZS8yO3JldHVybiBoPj10JiZoPD10K3MmJm4+PWktciYmbjw9aStyfSh0LnJpLl90LHQucmkudXQsdC5yaS5ubix0LnJpLiR0LGkscykpfHxmdW5jdGlvbih0LGkscyl7aWYoMD09PXQuVGgpcmV0dXJuITE7c3dpdGNoKHQuQVMpe2Nhc2UiYXJyb3dEb3duIjpyZXR1cm4gbm4oITAsdC5fdCx0LnV0LHQuVGgsaSxzKTtjYXNlImFycm93VXAiOnJldHVybiBubighMSx0Ll90LHQudXQsdC5UaCxpLHMpO2Nhc2UiY2lyY2xlIjoKcmV0dXJuIGZ1bmN0aW9uKHQsaSxzLGUsaCl7Y29uc3Qgbj0yK0poKCJjaXJjbGUiLHMpLzIscj10LWUsbz1pLWg7cmV0dXJuIE1hdGguc3FydChyKnIrbypvKTw9bn0odC5fdCx0LnV0LHQuVGgsaSxzKTtjYXNlInNxdWFyZSI6cmV0dXJuIGZ1bmN0aW9uKHQsaSxzLGUsaCl7Y29uc3Qgbj1KaCgic3F1YXJlIixzKSxyPShuLTEpLzIsbz10LXIsbD1pLXI7cmV0dXJuIGU+PW8mJmU8PW8rbiYmaD49bCYmaDw9bCtufSh0Ll90LHQudXQsdC5UaCxpLHMpfX0odCxpLHMpfWZ1bmN0aW9uIGFuKHQpe3JldHVybiJhdFByaWNlVG9wIj09PXR8fCJhdFByaWNlQm90dG9tIj09PXR8fCJhdFByaWNlTWlkZGxlIj09PXR9ZnVuY3Rpb24gdW4odCxpLHMsZSxoLG4scixvKXtjb25zdCBsPWZ1bmN0aW9uKHQsaSxzKXtpZihhbihpLnBvc2l0aW9uKSYmdm9pZCAwIT09aS5wcmljZSlyZXR1cm4gaS5wcmljZTtpZigidmFsdWUiaW4oZT10KSYmIm51bWJlciI9PXR5cGVvZiBlLnZhbHVlKXJldHVybiB0LnZhbHVlO3ZhciBlO2lmKGZ1bmN0aW9uKHQpe3JldHVybiJvcGVuImluIHQmJiJoaWdoImluIHQmJiJsb3ciaW4gdCYmImNsb3NlImluIHR9KHQpKXtpZigiaW5CYXIiPT09aS5wb3NpdGlvbilyZXR1cm4gdC5jbG9zZTtpZigiYWJvdmVCYXIiPT09aS5wb3NpdGlvbilyZXR1cm4gcz90Lmxvdzp0LmhpZ2g7aWYoImJlbG93QmFyIj09PWkucG9zaXRpb24pcmV0dXJuIHM/dC5oaWdoOnQubG93fX0ocyxpLHIucHJpY2VTY2FsZSgpLm9wdGlvbnMoKS5pbnZlcnRTY2FsZSk7aWYodm9pZCAwPT09bClyZXR1cm47Y29uc3QgYT1hbihpLnBvc2l0aW9uKSx1PW8udGltZVNjYWxlKCksYz1nKGkuc2l6ZSk/TWF0aC5tYXgoaS5zaXplLDApOjEsZj10bih1Lm9wdGlvbnMoKS5iYXJTcGFjaW5nKSpjLG09Zi8yO3N3aXRjaCh0LlRoPWYsaS5wb3NpdGlvbil7Y2FzZSJpbkJhciI6Y2FzZSJhdFByaWNlTWlkZGxlIjpyZXR1cm4gdC51dD1kKHIucHJpY2VUb0Nvb3JkaW5hdGUobCkpLHZvaWQodm9pZCAwIT09dC5yaSYmKHQucmkudXQ9dC51dCttK24rLjYqaCkpO2Nhc2UiYWJvdmVCYXIiOmNhc2UiYXRQcmljZVRvcCI6e2NvbnN0IGk9YT8wOmUuTFM7cmV0dXJuIHQudXQ9ZChyLnByaWNlVG9Db29yZGluYXRlKGwpKS1tLWksdm9pZCAwIT09dC5yaSYmKHQucmkudXQ9dC51dC1tLS42KmgsZS5MUys9MS4yKmgpLHZvaWQoYXx8KGUuTFMrPWYrbikpfWNhc2UiYmVsb3dCYXIiOmNhc2UiYXRQcmljZUJvdHRvbSI6e2NvbnN0IGk9YT8wOmUuelM7cmV0dXJuIHQudXQ9ZChyLnByaWNlVG9Db29yZGluYXRlKGwpKSttK2ksdm9pZCAwIT09dC5yaSYmKHQucmkudXQ9dC51dCttK24rLjYqaCxlLnpTKz0xLjIqaCksdm9pZChhfHwoZS56Uys9ZituKSl9fX1jbGFzcyBjbntjb25zdHJ1Y3Rvcih0LGkscyl7dGhpcy5PUz1bXSx0aGlzLnh0PSEwLHRoaXMuTlM9ITAsdGhpcy5YdD1uZXcgcm4sdGhpcy5UZT10LHRoaXMucXY9aSx0aGlzLnF0PXtvdDpbXSxsdDpudWxsfSx0aGlzLnluPXN9cmVuZGVyZXIoKXtpZighdGhpcy5UZS5vcHRpb25zKCkudmlzaWJsZSlyZXR1cm4gbnVsbDt0aGlzLnh0JiZ0aGlzLnlnKCk7Y29uc3QgdD10aGlzLnF2Lm9wdGlvbnMoKS5sYXlvdXQ7cmV0dXJuIHRoaXMuWHQuanModC5mb250U2l6ZSx0LmZvbnRGYW1pbHksdGhpcy55bi56T3JkZXIpLHRoaXMuWHQuaHQodGhpcy5xdCksdGhpcy5YdH1GUyh0KXt0aGlzLk9TPXQsdGhpcy5rdCgiZGF0YSIpfWt0KHQpe3RoaXMueHQ9ITAsImRhdGEiPT09dCYmKHRoaXMuTlM9ITApfVdTKHQpe3RoaXMueHQ9ITAsdGhpcy55bj10fXpPcmRlcigpe3JldHVybiJhYm92ZVNlcmllcyI9PT10aGlzLnluLnpPcmRlcj8idG9wIjp0aGlzLnluLnpPcmRlcn15Zygpe2NvbnN0IHQ9dGhpcy5xdi50aW1lU2NhbGUoKSxpPXRoaXMuT1M7dGhpcy5OUyYmKHRoaXMucXQub3Q9aS5tYXAoKHQ9Pih7d3Q6dC50aW1lLF90OjAsdXQ6MCxUaDowLEFTOnQuc2hhcGUsUjp0LmNvbG9yLHRlOnQuaWQsSFM6dC5IUyxyaTp2b2lkIDB9KSkpLHRoaXMuTlM9ITEpO2NvbnN0IHM9dGhpcy5xdi5vcHRpb25zKCkubGF5b3V0O3RoaXMucXQubHQ9bnVsbDtjb25zdCBlPXQuZ2V0VmlzaWJsZUxvZ2ljYWxSYW5nZSgpO2lmKG51bGw9PT1lKXJldHVybjtjb25zdCBoPW5ldyBJaShNYXRoLmZsb29yKGUuZnJvbSksTWF0aC5jZWlsKGUudG8pKTtpZihudWxsPT09dGhpcy5UZS5kYXRhKClbMF0pcmV0dXJuO2lmKDA9PT10aGlzLnF0Lm90Lmxlbmd0aClyZXR1cm47bGV0IG49TmFOO2NvbnN0IHI9c24odC5vcHRpb25zKCkuYmFyU3BhY2luZyksbz17TFM6cix6UzpyfTt0aGlzLnF0Lmx0PXhlKHRoaXMucXQub3QsaCwhMCk7Zm9yKGxldCBlPXRoaXMucXQubHQuZnJvbTtlPHRoaXMucXQubHQudG87ZSsrKXtjb25zdCBoPWlbZV07aC50aW1lIT09biYmKG8uTFM9cixvLnpTPXIsbj1oLnRpbWUpO2NvbnN0IGw9dGhpcy5xdC5vdFtlXTtsLl90PWQodC5sb2dpY2FsVG9Db29yZGluYXRlKGgudGltZSkpLHZvaWQgMCE9PWgudGV4dCYmaC50ZXh0Lmxlbmd0aD4wJiYobC5yaT17RVM6aC50ZXh0LF90OjAsdXQ6MCxubjowLCR0OjB9KTtjb25zdCBhPXRoaXMuVGUuZGF0YUJ5SW5kZXgoaC50aW1lLDApO251bGwhPT1hJiZ1bihsLGgsYSxvLHMuZm9udFNpemUscix0aGlzLlRlLHRoaXMucXYpfXRoaXMueHQ9ITF9fWZ1bmN0aW9uIGRuKHQpe3JldHVybnsuLi5qaCwuLi50fX1jbGFzcyBmbntjb25zdHJ1Y3Rvcih0KXt0aGlzLlloPW51bGwsdGhpcy5PUz1bXSx0aGlzLlVTPVtdLHRoaXMuJFM9bnVsbCx0aGlzLlRlPW51bGwsdGhpcy5xdj1udWxsLHRoaXMualM9ITAsdGhpcy5xUz1udWxsLHRoaXMuWVM9bnVsbCx0aGlzLktTPW51bGwsdGhpcy5aUz0hMCx0aGlzLnluPWRuKHQpfWF0dGFjaGVkKHQpe3RoaXMuR1MoKSx0aGlzLnF2PXQuY2hhcnQsdGhpcy5UZT10LnNlcmllcyx0aGlzLlloPW5ldyBjbih0aGlzLlRlLGQodGhpcy5xdiksdGhpcy55biksdGhpcy5EUz10LnJlcXVlc3RVcGRhdGUsdGhpcy5UZS5zdWJzY3JpYmVEYXRhQ2hhbmdlZCgodD0+dGhpcy5ZZyh0KSkpLHRoaXMuWlM9ITAsdGhpcy5wUygpfXBTKCl7CnRoaXMuRFMmJnRoaXMuRFMoKX1kZXRhY2hlZCgpe3RoaXMuVGUmJnRoaXMuJFMmJnRoaXMuVGUudW5zdWJzY3JpYmVEYXRhQ2hhbmdlZCh0aGlzLiRTKSx0aGlzLnF2PW51bGwsdGhpcy5UZT1udWxsLHRoaXMuWWg9bnVsbCx0aGlzLiRTPW51bGx9RlModCl7dGhpcy5aUz0hMCx0aGlzLk9TPXQsdGhpcy5HUygpLHRoaXMualM9ITAsdGhpcy5ZUz1udWxsLHRoaXMucFMoKX1YUygpe3JldHVybiB0aGlzLk9TfXBhbmVWaWV3cygpe3JldHVybiB0aGlzLlloP1t0aGlzLlloXTpbXX11cGRhdGVBbGxWaWV3cygpe3RoaXMuSlMoKX1oaXRUZXN0KHQsaSl7cmV0dXJuIHRoaXMuWWg/dGhpcy5ZaC5yZW5kZXJlcigpPy5Rcyh0LGkpPz9udWxsOm51bGx9YXV0b3NjYWxlSW5mbyh0LGkpe2lmKHRoaXMueW4uYXV0b1NjYWxlJiZ0aGlzLlloKXtjb25zdCB0PXRoaXMuUVMoKTtpZih0KXJldHVybntwcmljZVJhbmdlOm51bGwsbWFyZ2luczp0fX1yZXR1cm4gbnVsbH12cih0KXt0aGlzLnluPWRuKHsuLi50aGlzLnluLC4uLnR9KSx0aGlzLnBTJiZ0aGlzLnBTKCl9UVMoKXtjb25zdCB0PWQodGhpcy5xdikudGltZVNjYWxlKCkub3B0aW9ucygpLmJhclNwYWNpbmc7aWYodGhpcy5qU3x8dCE9PXRoaXMuS1Mpe2lmKHRoaXMuS1M9dCx0aGlzLk9TLmxlbmd0aD4wKXtjb25zdCBpPXNuKHQpLHM9MS41KnRuKHQpKzIqaSxlPXRoaXMudHgoKTt0aGlzLnFTPXthYm92ZTplbihzLGUuYWJvdmVCYXIsZS5pbkJhciksYmVsb3c6ZW4ocyxlLmJlbG93QmFyLGUuaW5CYXIpfX1lbHNlIHRoaXMucVM9bnVsbDt0aGlzLmpTPSExfXJldHVybiB0aGlzLnFTfXR4KCl7cmV0dXJuIG51bGw9PT10aGlzLllTJiYodGhpcy5ZUz10aGlzLk9TLnJlZHVjZSgoKHQsaSk9Pih0W2kucG9zaXRpb25dfHwodFtpLnBvc2l0aW9uXT0hMCksdCkpLHtpbkJhcjohMSxhYm92ZUJhcjohMSxiZWxvd0JhcjohMSxhdFByaWNlVG9wOiExLGF0UHJpY2VCb3R0b206ITEsYXRQcmljZU1pZGRsZTohMX0pKSx0aGlzLllTfUdTKCl7aWYoIXRoaXMuWlN8fCF0aGlzLnF2fHwhdGhpcy5UZSlyZXR1cm47Y29uc3QgdD10aGlzLnF2LnRpbWVTY2FsZSgpLGk9dGhpcy5UZT8uZGF0YSgpO2lmKG51bGw9PXQuZ2V0VmlzaWJsZUxvZ2ljYWxSYW5nZSgpfHwhdGhpcy5UZXx8MD09PWkubGVuZ3RoKXJldHVybiB2b2lkKHRoaXMuVVM9W10pO2NvbnN0IHM9dC50aW1lVG9JbmRleChkKGlbMF0udGltZSksITApO3RoaXMuVVM9dGhpcy5PUy5tYXAoKChpLGUpPT57Y29uc3QgaD10LnRpbWVUb0luZGV4KGkudGltZSwhMCksbj1oPHM/MTotMSxyPWQodGhpcy5UZSkuZGF0YUJ5SW5kZXgoaCxuKSxvPXt0aW1lOnQudGltZVRvSW5kZXgoZChyKS50aW1lLCExKSxwb3NpdGlvbjppLnBvc2l0aW9uLHNoYXBlOmkuc2hhcGUsY29sb3I6aS5jb2xvcixpZDppLmlkLEhTOmUsdGV4dDppLnRleHQsc2l6ZTppLnNpemUscHJpY2U6aS5wcmljZSxRcjppLnRpbWV9O2lmKCJhdFByaWNlVG9wIj09PWkucG9zaXRpb258fCJhdFByaWNlQm90dG9tIj09PWkucG9zaXRpb258fCJhdFByaWNlTWlkZGxlIj09PWkucG9zaXRpb24pe2lmKHZvaWQgMD09PWkucHJpY2UpdGhyb3cgbmV3IEVycm9yKGBQcmljZSBpcyByZXF1aXJlZCBmb3IgcG9zaXRpb24gJHtpLnBvc2l0aW9ufWApO3JldHVybnsuLi5vLHBvc2l0aW9uOmkucG9zaXRpb24scHJpY2U6aS5wcmljZX19cmV0dXJuey4uLm8scG9zaXRpb246aS5wb3NpdGlvbixwcmljZTppLnByaWNlfX0pKSx0aGlzLlpTPSExfUpTKHQpe3RoaXMuWWgmJih0aGlzLkdTKCksdGhpcy5ZaC5GUyh0aGlzLlVTKSx0aGlzLlloLldTKHRoaXMueW4pLHRoaXMuWWgua3QodCkpfVlnKHQpe3RoaXMuWlM9ITAsdGhpcy5wUygpfX1jbGFzcyBtbiBleHRlbmRzIFVoe2NvbnN0cnVjdG9yKHQsaSxzKXtzdXBlcih0LGkpLHMmJnRoaXMuc2V0TWFya2VycyhzKX1zZXRNYXJrZXJzKHQpe3RoaXMuSmguRlModCl9bWFya2Vycygpe3JldHVybiB0aGlzLkpoLlhTKCl9fWZ1bmN0aW9uIHBuKHQsaSxzKXtjb25zdCBlPW5ldyBtbih0LG5ldyBmbihzPz97fSkpO3JldHVybiBpJiZlLnNldE1hcmtlcnMoaSksZX1jb25zdCBnbj17Li4uaCxjb2xvcjoiIzIxOTZmMyJ9fX1dKTs="}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/86423.79783aa72b6e29252d0c.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:13.948Z","timestamp":1785148033948,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/86423.79783aa72b6e29252d0c.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:13 GMT\r\ncontent-type: text/css; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a58ab11-106\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Thu, 16 Jul 2026 09:57:37 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/16/2026 11:03:21\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: e98c4efdb40427df6dc6dcab45bdd013\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":262,"size_decoded":938,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with no line terminators","md5":"b2d8da58ed7bd3636b389eac6ba9d38f","sha1":"5bcc1477edc39bcb360e79e0aa7ddabb5a3deb56","sha256":"1d71d0b986d1200ce5725b69e4e0e27ffda213045c040697e34b3502ec819deb","sha512":"75584fc30003c79c57e5f9ed6cfbc9c56a9bdcef58189661f2a31feb1e7ca0e8d5ed7f474386b82d61c4412d71173f50d58e54d1d97f4ce2abc5bf81015b9a08","ssdeep":"","tlshash":"70d0c2b19405d16c3a244958bf22bcadf384410a2a260fd7d2362e2185496b62e6249c","first_seen":"2026-07-17T14:15:58.491012Z","last_seen":"2026-07-27T12:51:16.018447Z","times_seen":155,"resource_available":false,"data":"LmRpdmlkZXItWmRfdHF1Y0R7cGFkZGluZzo2cHggMDt3aWR0aDoxMDAlfS5kaXZpZGVyLVpkX3RxdWNEOmZpcnN0LWNoaWxke3BhZGRpbmctdG9wOjB9LmRpdmlkZXItWmRfdHF1Y0Q6bGFzdC1jaGlsZHtwYWRkaW5nLWJvdHRvbTowfS5saW5lLVpkX3RxdWNEe2JhY2tncm91bmQ6dmFyKC0tdWktbGliLWluLWxpc3RJdGVtLWRpdmlkZXJDb2xvcix2YXIoLS1jb2xvci1ib3JkZXItcHJpbWFyeS1uZXV0cmFsLWxpZ2h0KSk7aGVpZ2h0OjFweDt3aWR0aDoxMDAlfQ=="}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/76033.457fc6a9dea93abc64a6.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.032Z","timestamp":1785148034032,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/76033.457fc6a9dea93abc64a6.js HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a58aaad-1920f\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Thu, 16 Jul 2026 09:55:57 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/16/2026 11:03:40\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 559ba868f098a19008b3769987398f7b\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":102927,"size_decoded":22924,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (3071)","md5":"c69f1961d37147b82d11b8605cdce4dd","sha1":"9342b2a24a33e9b41a0bba4197f5c777eb67cf00","sha256":"e57251942151709b6ada30e3ba1fee757639e432120fddbed7bd8c4c42d3d93b","sha512":"06c28f14bd12a5ef6d148c96ed0ce634fabd0bb702ce56f9436973f0fecc593abb02e385a72af87d663a357492119bd2c0d62f4d3903327ba83fa7fae2a16937","ssdeep":"768:wcg20JYFQbn8Vsr1fF4zyW0TStwhxG9Sh3GQ/xkiUFk1Dm3wY2/X58JznuJfqS8D:5gx0srdk0+PYZmSf/X58cfWHBp","tlshash":"93a301b583a5d48cbc8ac5bcef68909fc67f9391a545029cda3ee63410c6cdbac4f524","first_seen":"2026-07-19T11:27:24.826695Z","last_seen":"2026-07-27T12:07:26.530206Z","times_seen":23,"resource_available":true,"data":"KHNlbGYud2VicGFja0NodW5rdHJhZGluZ3ZpZXc9c2VsZi53ZWJwYWNrQ2h1bmt0cmFkaW5ndmlld3x8W10pLnB1c2goW1s3NjAzM10sezIxNzg0NyhsLG8sZSl7InVzZSBzdHJpY3QiO2UuZChvLHtkcmF3aW5nVG9vbHNJY29uczooKT0+aH0pO2NvbnN0IGg9e1N5bmNEcmF3aW5nOmUoMjMwOTM0KSxhcnJvdzplKDkzOTY2OSksY3Vyc29yOmUoODYxMjA2KSxkb3Q6ZSgxODQ1MzkpLGRlbW9uc3RyYXRpb246ZSg4NzE1NDUpLHBlcmZvcm1hbmNlOmUoNzQ3MjkyKSxkcmF3Z2lubW9kZTplKDI3NDcyKSxkcmF3Z2lubW9kZUFjdGl2ZTplKDM3Njc0NiksZXJhc2VyOmUoOTE2OTYyKSxncm91cDplKDMwNjk1NSksaGlkZUFsbERyYXdpbmdzOmUoMzAxNjA3KSxoaWRlQWxsRHJhd2luZ3NBY3RpdmU6ZSgyMzAyNTIpLGhpZGVBbGxJbmRpY2F0b3JzOmUoNzQzMzgxKSxoaWRlQWxsSW5kaWNhdG9yc0FjdGl2ZTplKDYzNDQ5MSksaGlkZUFsbERyYXdpbmdUb29sczplKDcxNDc5OCksaGlkZUFsbERyYXdpbmdUb29sc0FjdGl2ZTplKDI0OTYwNCksaGlkZUFsbFBvc2l0aW9uc1Rvb2xzOmUoNzU2MDczKSxoaWRlQWxsUG9zaXRpb25zVG9vbHNBY3RpdmU6ZSg0MDgwOTkpLGxvY2tBbGxEcmF3aW5nczplKDU5Nzk0MSksbG9ja0FsbERyYXdpbmdzQWN0aXZlOmUoMjg2NzY2KSxtYWduZXQ6ZSgzNDMyMjApLGhlYXJ0OmUoOTE0NzQ2KSxzbWlsZTplKDY1Mzg3NCksc3RpY2tlcjplKDMyNzIxNSksc3Ryb25nTWFnbmV0OmUoNDA1NDU0KSxtZWFzdXJlOmUoODI2MTMwKSxyZW1vdmVBbGxEcmF3aW5nVG9vbHM6ZSg1NTg5NzkpLHNob3dPYmplY3RzVHJlZTplKDc1OTIwNCksem9vbTplKDQyODY5NyksInpvb20tb3V0IjplKDY3ODEyMCl9fSw0NjkwKGwsbyxlKXsidXNlIHN0cmljdCI7ZS5kKG8se2xpbmVUb29sc0ljb25zOigpPT5ofSk7Y29uc3QgaD17TGluZVRvb2w1UG9pbnRzUGF0dGVybjplKDkzMjc5NSksTGluZVRvb2xBQkNEOmUoNTk3MDE4KSxMaW5lVG9vbEFyYzplKDk4ODI1MCksTGluZVRvb2xBcnJvdzplKDk2Njc5NiksTGluZVRvb2xBcnJvd01hcmtlcjplKDYxNjMyNCksTGluZVRvb2xBcnJvd01hcmtEb3duOmUoNDYwOTA2KSxMaW5lVG9vbEFycm93TWFya0xlZnQ6ZSgzMTgxNDUpLExpbmVUb29sQXJyb3dNYXJrUmlnaHQ6ZSgzMTUwODQpLExpbmVUb29sQXJyb3dNYXJrVXA6ZSgzMzYzMTMpLExpbmVUb29sQ29tbWVudDplKDE3NzQ2MSksTGluZVRvb2xCYXJzUGF0dGVybjplKDc0NDM0OSksTGluZVRvb2xCZXppZXJDdWJpYzplKDg4NTQ1MSksTGluZVRvb2xCZXppZXJRdWFkcm86ZSg0MjIwMjMpLExpbmVUb29sQnJ1c2g6ZSgxMTcwMTQpLExpbmVUb29sQ2FsbG91dDplKDM1MzA1NCksTGluZVRvb2xDaXJjbGU6ZSg5NjQxMTApLExpbmVUb29sQ2lyY2xlTGluZXM6ZSgzOTE3MTcpLExpbmVUb29sQ3lwaGVyUGF0dGVybjplKDgxMTA5OCksTGluZVRvb2xEYXRlQW5kUHJpY2VSYW5nZTplKDkwMzc2NiksTGluZVRvb2xEYXRlUmFuZ2U6ZSgyOTc3MTQpLExpbmVUb29sRGlzam9pbnRBbmdsZTplKDQ0NTg4MCksTGluZVRvb2xFbGxpb3R0Q29ycmVjdGlvbjplKDgyNzM4NSksTGluZVRvb2xFbGxpb3R0RG91YmxlQ29tYm86ZSg3NTUyNjkpLExpbmVUb29sRWxsaW90dEltcHVsc2U6ZSg2MjE3NDApLExpbmVUb29sRWxsaW90dFRyaWFuZ2xlOmUoMjI0NTI0KSxMaW5lVG9vbEVsbGlvdHRUcmlwbGVDb21ibzplKDcwODcyNiksTGluZVRvb2xFbGxpcHNlOmUoODI1MzQ0KSxMaW5lVG9vbEV4dGVuZGVkOmUoNzQ1NzgxKSxMaW5lVG9vbEZpYkNoYW5uZWw6ZSgyODYyNTEpLExpbmVUb29sRmliQ2lyY2xlczplKDc1MjM4OSksTGluZVRvb2xGaWJSZXRyYWNlbWVudDplKDg0OTY4NCksTGluZVRvb2xGaWJTcGVlZFJlc2lzdGFuY2VBcmNzOmUoMjcyMjE1KSxMaW5lVG9vbEZpYlNwZWVkUmVzaXN0YW5jZUZhbjplKDc3NDYzNSksTGluZVRvb2xGaWJTcGlyYWw6ZSgyOTU1MDkpLExpbmVUb29sRmliVGltZVpvbmU6ZSg0MDY2OTYpLExpbmVUb29sRmliV2VkZ2U6ZSg4OTg4MiksTGluZVRvb2xGbGFnTWFyazplKDMzMzQ2NiksTGluZVRvb2xGbGF0Qm90dG9tOmUoNzU5MzcxKSxMaW5lVG9vbEFuY2hvcmVkVldBUDplKDg4MjI1KSxMaW5lVG9vbEdhbm5Db21wbGV4OmUoNjk4MjQ2KSxMaW5lVG9vbEdhbm5GaXhlZDplKDY4NTE1OSksTGluZVRvb2xHYW5uRmFuOmUoNTMyNjY2KSxMaW5lVG9vbEdhbm5TcXVhcmU6ZSgzODgyNzQpLExpbmVUb29sR2hvc3RGZWVkOmUoMTY3MDQwKSxMaW5lVG9vbEhlYWRBbmRTaG91bGRlcnM6ZSgyNzA3MDApLExpbmVUb29sSG9yekxpbmU6ZSg4MTY5NTMpLExpbmVUb29sSG9yelJheTplKDY1MTA1NyksTGluZVRvb2xJY29uOiJpY29uIixMaW5lVG9vbEVtb2ppOiJlbW9qaSIsTGluZVRvb2xTdGlja2VyOiJzdGlja2VyIixMaW5lVG9vbEluc2lkZVBpdGNoZm9yazplKDI1NTE1KSxMaW5lVG9vbE5vdGU6ZSg1NDE3OCksTGluZVRvb2xTaWducG9zdDplKDU5MDI3NSksTGluZVRvb2xUd2VldDplKDgxMjkwMSksTGluZVRvb2xJZGVhOmUoMTA4MzY3KSxMaW5lVG9vbFBhcmFsbGVsQ2hhbm5lbDplKDQ3MTAwOSksTGluZVRvb2xQaXRjaGZhbjplKDMwNDI5NSksTGluZVRvb2xQaXRjaGZvcms6ZSgyMzEyNCksTGluZVRvb2xQb2x5bGluZTplKDU5NDAyKSxMaW5lVG9vbFBhdGg6ZSg3MjU3OTUpLExpbmVUb29sUHJlZGljdGlvbjplKDE1OTk5MyksTGluZVRvb2xQcmljZUxhYmVsOmUoMzg0OTIwKSxMaW5lVG9vbFByaWNlTm90ZTplKDU4NTU0NiksTGluZVRvb2xQcmljZVJhbmdlOmUoOTM5NzA5KSxMaW5lVG9vbFByb2plY3Rpb246ZSg2ODM4NTMpLExpbmVUb29sUmF5OmUoOTMxMjk4KSxMaW5lVG9vbFJlY3RhbmdsZTplKDI4OTU3NyksTGluZVRvb2xSZWdyZXNzaW9uVHJlbmQ6ZSg4NTc1NDApLExpbmVUb29sUmlza1Jld2FyZExvbmc6ZSg0NDQ0NzIpLExpbmVUb29sUmlza1Jld2FyZFNob3J0OmUoNzU1NjgwKSxMaW5lVG9vbEZpeGVkUmFuZ2VWb2x1bWVQcm9maWxlOmUoNjA1NTk1KSxMaW5lVG9vbFZiUEZpeGVkOmUoNjA1NTk1KSwKTGluZVRvb2xBbmNob3JlZFZvbHVtZVByb2ZpbGU6ZSg5Mjc4MTcpLExpbmVUb29sUm90YXRlZFJlY3RhbmdsZTplKDI0MzA3NyksTGluZVRvb2xTY2hpZmZQaXRjaGZvcms6ZSgzOTI3OTgpLExpbmVUb29sU2NoaWZmUGl0Y2hmb3JrMjplKDk0MjAwNCksTGluZVRvb2xTaW5lTGluZTplKDE5MDkwMCksTGluZVRvb2xUZXh0OmUoNjYwMjAzKSxMaW5lVG9vbFRleHRBYnNvbHV0ZTplKDQ5NDA3NCksTGluZVRvb2xUZXh0Tm90ZTplKDcyNjExMiksTGluZVRvb2xUaHJlZURyaXZlcnM6ZSgyNzI4NjUpLExpbmVUb29sVGltZUN5Y2xlczplKDcwMzQ3OSksTGluZVRvb2xUcmVuZEFuZ2xlOmUoMjA4MDgxKSxMaW5lVG9vbFRyZW5kQmFzZWRGaWJFeHRlbnNpb246ZSgyODQ3NDkpLExpbmVUb29sVHJlbmRCYXNlZEZpYlRpbWU6ZSg4NjE0MzcpLExpbmVUb29sVHJlbmRMaW5lOmUoNjYyMjAwKSxMaW5lVG9vbEluZm9MaW5lOmUoMzI2MzIwKSxMaW5lVG9vbFRyaWFuZ2xlOmUoMjI2NjM4KSxMaW5lVG9vbFRyaWFuZ2xlUGF0dGVybjplKDc5MTc4NyksTGluZVRvb2xWZXJ0TGluZTplKDk0MTQzOSksTGluZVRvb2xDcm9zc0xpbmU6ZSg4NDIyOSksTGluZVRvb2xIaWdobGlnaHRlcjplKDk1OTc1NSksTGluZVRvb2xJbWFnZTplKDg5NjkzKSxMaW5lVG9vbFRhYmxlOmUoMTAyNjY2KX19LDM3NjAzMyhsLG8sZSl7InVzZSBzdHJpY3QiO2UuZChvLHtpc0xpbmV0b29sSW5mb1dpdGhTZWxlY3Rpb25Ib3RrZXk6KCk9Pk0sbGluZVRvb2xzSW5mbzooKT0+Q30pO3ZhciBoPWUoMTM4NjM4KSx0PWUoMTg1MjcxKSxpPWUoNTY5Mzk4KSxyPWUoODcwNTYyKTtjb25zdCBzPXtMaW5lVG9vbDVQb2ludHNQYXR0ZXJuOjQzMDAwNTY5OTA5LExpbmVUb29sQUJDRDo0MzAwMDU3MDIwMixMaW5lVG9vbEFuY2hvcmVkVldBUDo0MzAwMDY2OTc2NCxMaW5lVG9vbEFuY2hvcmVkVm9sdW1lUHJvZmlsZTo0MzAwMDcwNzk4OSxMaW5lVG9vbEFyYzo0MzAwMDUxNjk4OSxMaW5lVG9vbEFycm93OjQzMDAwNTE4MTM0LExpbmVUb29sQXJyb3dNYXJrRG93bjo0MzAwMDUxODA4NyxMaW5lVG9vbEFycm93TWFya1VwOjQzMDAwNTE4MDg3LExpbmVUb29sQmFyc1BhdHRlcm46NDMwMDA1MTcwMDYsTGluZVRvb2xCcnVzaDo0MzAwMDUxNjk4NyxMaW5lVG9vbENhbGxvdXQ6NDMwMDA1MTY5NzgsTGluZVRvb2xDaXJjbGU6NDMwMDA2NjIxNzIsTGluZVRvb2xDb21tZW50OjQzMDAwNTE2OTgxLExpbmVUb29sQ3Jvc3NMaW5lOjQzMDAwNDc3NzQ3LExpbmVUb29sRGF0ZVJhbmdlOjQzMDAwNTE3MDA1LExpbmVUb29sRWxsaXBzZTo0MzAwMDUxNjk4OCxMaW5lVG9vbEV4dGVuZGVkOjQzMDAwNTE4MTMxLExpbmVUb29sRmliQ2lyY2xlczo0MzAwMDUxODE1OSxMaW5lVG9vbEZpYlJldHJhY2VtZW50OjQzMDAwNTE4MTU4LExpbmVUb29sRmliU3BlZWRSZXNpc3RhbmNlQXJjczo0MzAwMDUxODE1NyxMaW5lVG9vbEZpYlNwZWVkUmVzaXN0YW5jZUZhbjo0MzAwMDUxODE1NixMaW5lVG9vbEZpYlRpbWVab25lOjQzMDAwNTE4MTU1LExpbmVUb29sRmliV2VkZ2U6NDMwMDA1MTgxNTMsTGluZVRvb2xGaXhlZFJhbmdlVm9sdW1lUHJvZmlsZTo0MzAwMDcwNzk4NSxMaW5lVG9vbEZsYWdNYXJrOjQzMDAwNTE4MDg1LExpbmVUb29sR2FubkNvbXBsZXg6NDMwMDA1MTgxNDksTGluZVRvb2xHYW5uRmFuOjQzMDAwNTE4MTUxLExpbmVUb29sR2FublNxdWFyZTo0MzAwMDUxODE1MixMaW5lVG9vbEdob3N0RmVlZDo0MzAwMDc0ODE2OCxMaW5lVG9vbEhlYWRBbmRTaG91bGRlcnM6NDMwMDA1NzAxNDksTGluZVRvb2xIb3J6TGluZTo0MzAwMDUxODEyNCxMaW5lVG9vbEhvcnpSYXk6NDMwMDA1MTgxMjEsTGluZVRvb2xJZGVhOjQzMDAwNjYyMzk0LExpbmVUb29sSW1hZ2U6NDMwMDA2MzI5NTcsTGluZVRvb2xJbnNpZGVQaXRjaGZvcms6NDMwMDA1MTgxNDYsTGluZVRvb2xQYXJhbGxlbENoYW5uZWw6NDMwMDA1MTgxMTcsTGluZVRvb2xQaXRjaGZhbjo0MzAwMDUxODE0MyxMaW5lVG9vbFBpdGNoZm9yazo0MzAwMDUxODE0MSxMaW5lVG9vbFBvbHlsaW5lOjQzMDAwNTE2OTg2LExpbmVUb29sUHJlZGljdGlvbjo0MzAwMDUxNzAwNCxMaW5lVG9vbFByaWNlTGFiZWw6NDMwMDA1MTgwODMsTGluZVRvb2xQcmljZVJhbmdlOjQzMDAwNTE2OTk2LExpbmVUb29sUHJvamVjdGlvbjo0MzAwMDUxNjk5NSxMaW5lVG9vbFJheTo0MzAwMDUxODExMyxMaW5lVG9vbFJlY3RhbmdsZTo0MzAwMDUxNjk4NCxMaW5lVG9vbFJlZ3Jlc3Npb25UcmVuZDo0MzAwMDUxODEwOCxMaW5lVG9vbFJpc2tSZXdhcmRMb25nOjQzMDAwNTE3MDAyLExpbmVUb29sUmlza1Jld2FyZFNob3J0OjQzMDAwNTE2OTkyLExpbmVUb29sU2NoaWZmUGl0Y2hmb3JrMjo0MzAwMDUxODE0MCxMaW5lVG9vbFRhYmxlOjQzMDAwNzQ0MTYyLExpbmVUb29sVGV4dDo0MzAwMDUxNjk4MyxMaW5lVG9vbFRleHRBYnNvbHV0ZTo0MzAwMDUxNjk4MyxMaW5lVG9vbFRleHROb3RlOjQzMDAwNzM3NTcxLExpbmVUb29sVGhyZWVEcml2ZXJzOjQzMDAwNTcwMTcyLExpbmVUb29sVHdlZXQ6NDMwMDA2NjIzOTQsTGluZVRvb2xDaXJjbGVMaW5lczo0MzAwMDUxODE2MSxMaW5lVG9vbFRyZW5kQmFzZWRGaWJFeHRlbnNpb246NDMwMDA1MTgxMzcsTGluZVRvb2xUcmVuZEJhc2VkRmliVGltZTo0MzAwMDUxODEzNixMaW5lVG9vbFRyZW5kTGluZTo0MzAwMDUxODA5NSxMaW5lVG9vbFRyaWFuZ2xlOjQzMDAwNTE2ODE0LExpbmVUb29sVHJpYW5nbGVQYXR0ZXJuOjQzMDAwNTcwMjA4LExpbmVUb29sVmVydExpbmU6NDMwMDA1MTgwOTN9O3ZhciBuPWUoMzQ1MTUxKSx2PShlKDgyOTE4MCksZSg0NjkwKSksej1lKDIxNzg0Nyk7Y29uc3QgYT17U3luY0RyYXdpbmc6dC50KG51bGwsdm9pZCAwLGUoMzU1NTE5KSksYXJyb3c6dC50KG51bGwsdm9pZCAwLGUoMzUxOTc5KSksY3Vyc29yOnQudChudWxsLHZvaWQgMCxlKDQ4ODE4MCkpLGRlbW9uc3RyYXRpb246dC50KG51bGwsdm9pZCAwLGUoMjUyMSkpLGRvdDp0LnQobnVsbCx2b2lkIDAsZSg1NjE5MSkpLHBlcmZvcm1hbmNlOnQudChudWxsLHZvaWQgMCxlKDg4MTE4MykpLApkcmF3Z2lubW9kZTp0LnQobnVsbCx2b2lkIDAsZSg4NzY2NTkpKSxlcmFzZXI6dC50KG51bGwsdm9pZCAwLGUoNDcxNjk3KSksZ3JvdXA6dC50KG51bGwse2NvbnRleHQ6IkRyYXdpbmcgdG9vbGJhciBidXR0b24gdGl0bGUifSxlKDk3OTAyNCkpLGhpZGVBbGxEcmF3aW5nczp0LnQobnVsbCx2b2lkIDAsZSg4MDk5MzkpKSxsb2NrQWxsRHJhd2luZ3M6dC50KG51bGwsdm9pZCAwLGUoMzk1Mzg3KSksbWFnbmV0OnQudChudWxsLHZvaWQgMCxlKDE2ODgwMikpLG1lYXN1cmU6dC50KG51bGwsdm9pZCAwLGUoNzY5MDM0KSkscmVtb3ZlQWxsRHJhd2luZ1Rvb2xzOnQudChudWxsLHtjb250ZXh0OiJEcmF3aW5nIHRvb2xiYXIgYnV0dG9uIHRpdGxlIn0sZSg0ODE5MzMpKSxzaG93T2JqZWN0c1RyZWU6dC50KG51bGwse2NvbnRleHQ6IkRyYXdpbmcgdG9vbGJhciBidXR0b24gdGl0bGUifSxlKDcxNzc1OCkpLHpvb206dC50KG51bGwse2NvbnRleHQ6IkRyYXdpbmcgdG9vbGJhciBidXR0b24gdGl0bGUifSxlKDI2MjU0MCkpLCJ6b29tLW91dCI6dC50KG51bGwse2NvbnRleHQ6IkRyYXdpbmcgdG9vbGJhciBidXR0b24gdGl0bGUifSxlKDI0NTM1MikpfTt2YXIgYz1lKDQ1NjIzKSxnPWUoMjM1NzI0KSx3PWUoMTc1Mzk1KSxkPWUoNjY0Mzc2KTtmdW5jdGlvbiBNKGwpe3JldHVybiJzZWxlY3RIb3RrZXkiaW4gbCYmdm9pZCAwIT09bC5zZWxlY3RIb3RrZXl9Y29uc3QgcD0oMCxnLmh1bWFuUmVhZGFibGVNb2RpZmllcnMpKGcuTW9kaWZpZXJzLlNoaWZ0LCExKS50cmltKCksbT0oMCxnLmh1bWFuUmVhZGFibGVNb2RpZmllcnMpKGcuTW9kaWZpZXJzLkFsdCwhMSkudHJpbSgpLHg9KDAsZy5odW1hblJlYWRhYmxlTW9kaWZpZXJzKShnLk1vZGlmaWVycy5Nb2QsITEpLnRyaW0oKSxMPXtrZXlzOltwXSx0ZXh0OnQudChudWxsLHZvaWQgMCxlKDYxMjI1NikpfSx1PXtrZXlzOltwXSx0ZXh0OnQudChudWxsLHZvaWQgMCxlKDc4ODM0MykpfSxUPXtrZXlzOltwXSx0ZXh0OnQudChudWxsLHZvaWQgMCxlKDkzNjk1NCkpfSxmPXtMaW5lVG9vbDVQb2ludHNQYXR0ZXJuOnt9LExpbmVUb29sQUJDRDp7fSxMaW5lVG9vbEFyYzp7fSxMaW5lVG9vbEFycm93Ont9LExpbmVUb29sQXJyb3dNYXJrRG93bjp7fSxMaW5lVG9vbEFycm93TWFya0xlZnQ6e30sTGluZVRvb2xBcnJvd01hcmtSaWdodDp7fSxMaW5lVG9vbEFycm93TWFya1VwOnt9LExpbmVUb29sQ29tbWVudDp7fSxMaW5lVG9vbEJhcnNQYXR0ZXJuOnt9LExpbmVUb29sQmV6aWVyQ3ViaWM6e30sTGluZVRvb2xCZXppZXJRdWFkcm86e30sTGluZVRvb2xCcnVzaDp7fSxMaW5lVG9vbENhbGxvdXQ6e30sTGluZVRvb2xDaXJjbGVMaW5lczp7fSxMaW5lVG9vbEN5cGhlclBhdHRlcm46e30sTGluZVRvb2xEYXRlQW5kUHJpY2VSYW5nZTp7fSxMaW5lVG9vbERhdGVSYW5nZTp7fSxMaW5lVG9vbERpc2pvaW50QW5nbGU6e2hvdEtleTooMCxuLmhvdEtleVNlcmlhbGl6ZSkoTCl9LExpbmVUb29sRWxsaW90dENvcnJlY3Rpb246e30sTGluZVRvb2xFbGxpb3R0RG91YmxlQ29tYm86e30sTGluZVRvb2xFbGxpb3R0SW1wdWxzZTp7fSxMaW5lVG9vbEVsbGlvdHRUcmlhbmdsZTp7fSxMaW5lVG9vbEVsbGlvdHRUcmlwbGVDb21ibzp7fSxMaW5lVG9vbEVsbGlwc2U6e2hvdEtleTooMCxuLmhvdEtleVNlcmlhbGl6ZSkodSl9LExpbmVUb29sRXh0ZW5kZWQ6e30sTGluZVRvb2xGaWJDaGFubmVsOnt9LExpbmVUb29sRmliQ2lyY2xlczp7aG90S2V5OigwLG4uaG90S2V5U2VyaWFsaXplKSh1KX0sTGluZVRvb2xGaWJSZXRyYWNlbWVudDp7fSxMaW5lVG9vbEZpYlNwZWVkUmVzaXN0YW5jZUFyY3M6e30sTGluZVRvb2xGaWJTcGVlZFJlc2lzdGFuY2VGYW46e2hvdEtleTooMCxuLmhvdEtleVNlcmlhbGl6ZSkoVCl9LExpbmVUb29sRmliU3BpcmFsOnt9LExpbmVUb29sRmliVGltZVpvbmU6e30sTGluZVRvb2xGaWJXZWRnZTp7fSxMaW5lVG9vbEZsYWdNYXJrOnt9LExpbmVUb29sRmxhdEJvdHRvbTp7aG90S2V5OigwLG4uaG90S2V5U2VyaWFsaXplKShMKX0sTGluZVRvb2xBbmNob3JlZFZXQVA6e30sTGluZVRvb2xHYW5uQ29tcGxleDp7fSxMaW5lVG9vbEdhbm5GaXhlZDp7fSxMaW5lVG9vbEdhbm5GYW46e30sTGluZVRvb2xHYW5uU3F1YXJlOntob3RLZXk6KDAsbi5ob3RLZXlTZXJpYWxpemUpKHtrZXlzOltwXSx0ZXh0OnQudChudWxsLHZvaWQgMCxlKDYzNTg3NSkpfSl9LExpbmVUb29sSGVhZEFuZFNob3VsZGVyczp7fSxMaW5lVG9vbEhvcnpMaW5lOntob3RLZXk6KDAsbi5ob3RLZXlTZXJpYWxpemUpKHtrZXlzOlttLCJIIl0sdGV4dDoiezB9ICsgezF9In0pfSxMaW5lVG9vbEhvcnpSYXk6e30sTGluZVRvb2xJY29uOnt9LExpbmVUb29sSW1hZ2U6e30sTGluZVRvb2xFbW9qaTp7fSxMaW5lVG9vbFN0aWNrZXI6e30sTGluZVRvb2xJbnNpZGVQaXRjaGZvcms6e30sTGluZVRvb2xOb3RlOnt9LExpbmVUb29sU2lnbnBvc3Q6e30sTGluZVRvb2xQYXJhbGxlbENoYW5uZWw6e2hvdEtleTooMCxuLmhvdEtleVNlcmlhbGl6ZSkoTCl9LExpbmVUb29sUGl0Y2hmYW46e30sTGluZVRvb2xQaXRjaGZvcms6e30sTGluZVRvb2xQb2x5bGluZTp7fSxMaW5lVG9vbFBhdGg6e30sTGluZVRvb2xQcmVkaWN0aW9uOnt9LExpbmVUb29sUHJpY2VMYWJlbDp7fSxMaW5lVG9vbFByaWNlTm90ZTp7aG90S2V5OigwLG4uaG90S2V5U2VyaWFsaXplKShMKX0sTGluZVRvb2xUZXh0Tm90ZTp7fSxMaW5lVG9vbEFycm93TWFya2VyOnt9LExpbmVUb29sUHJpY2VSYW5nZTp7fSxMaW5lVG9vbFByb2plY3Rpb246e30sTGluZVRvb2xSYXk6e30sTGluZVRvb2xSZWN0YW5nbGU6e2hvdEtleTooMCxuLmhvdEtleVNlcmlhbGl6ZSkoe2tleXM6W3BdLHRleHQ6dC50KG51bGwsdm9pZCAwLGUoOTM2OTU0KSl9KX0sTGluZVRvb2xDaXJjbGU6e30sTGluZVRvb2xSZWdyZXNzaW9uVHJlbmQ6e30sTGluZVRvb2xSaXNrUmV3YXJkTG9uZzp7fSxMaW5lVG9vbFJpc2tSZXdhcmRTaG9ydDp7fSxMaW5lVG9vbEZpeGVkUmFuZ2VWb2x1bWVQcm9maWxlOnt9LExpbmVUb29sVmJQRml4ZWQ6e30sCkxpbmVUb29sUm90YXRlZFJlY3RhbmdsZTp7aG90S2V5OigwLG4uaG90S2V5U2VyaWFsaXplKShMKX0sTGluZVRvb2xTY2hpZmZQaXRjaGZvcms6e30sTGluZVRvb2xTY2hpZmZQaXRjaGZvcmsyOnt9LExpbmVUb29sU2luZUxpbmU6e30sTGluZVRvb2xUZXh0Ont9LExpbmVUb29sVGV4dEFic29sdXRlOnt9LExpbmVUb29sVGhyZWVEcml2ZXJzOnt9LExpbmVUb29sVGltZUN5Y2xlczp7fSxMaW5lVG9vbFRyZW5kQW5nbGU6e2hvdEtleTooMCxuLmhvdEtleVNlcmlhbGl6ZSkoTCl9LExpbmVUb29sVHJlbmRCYXNlZEZpYkV4dGVuc2lvbjp7fSxMaW5lVG9vbFRyZW5kQmFzZWRGaWJUaW1lOnt9LExpbmVUb29sVHJlbmRMaW5lOntob3RLZXk6KDAsbi5ob3RLZXlTZXJpYWxpemUpKEwpfSxMaW5lVG9vbEluZm9MaW5lOnt9LExpbmVUb29sVHJpYW5nbGU6e30sTGluZVRvb2xUcmlhbmdsZVBhdHRlcm46e30sTGluZVRvb2xWZXJ0TGluZTp7aG90S2V5OigwLG4uaG90S2V5U2VyaWFsaXplKSh7a2V5czpbbSwiViJdLHRleHQ6InswfSArIHsxfSJ9KX0sTGluZVRvb2xDcm9zc0xpbmU6e30sTGluZVRvb2xIaWdobGlnaHRlcjp7fSxMaW5lVG9vbEdob3N0RmVlZDp7fSxMaW5lVG9vbFRhYmxlOnt9LFN5bmNEcmF3aW5nOntpY29uQWN0aXZlOnouZHJhd2luZ1Rvb2xzSWNvbnMuU3luY0RyYXdpbmdBY3RpdmV9LGFycm93Ont9LGN1cnNvcjp7fSxkb3Q6e30sZGVtb25zdHJhdGlvbjp7aG90S2V5OigwLG4uaG90S2V5U2VyaWFsaXplKSh7a2V5czpbbV0sdGV4dDp0LnQobnVsbCx2b2lkIDAsZSgyNjMzNjYpKX0pfSxkcmF3Z2lubW9kZTp7aWNvbkFjdGl2ZTp6LmRyYXdpbmdUb29sc0ljb25zLmRyYXdnaW5tb2RlQWN0aXZlfSxlcmFzZXI6e30sZ3JvdXA6e30saGlkZUFsbERyYXdpbmdzOntpY29uQWN0aXZlOnouZHJhd2luZ1Rvb2xzSWNvbnMuaGlkZUFsbERyYXdpbmdzQWN0aXZlLGhvdEtleTooMCxuLmhvdEtleVNlcmlhbGl6ZSkoe2tleXM6W3gsbSwiSCJdLHRleHQ6InswfSArIHsxfSArIHsyfSJ9KX0sbG9ja0FsbERyYXdpbmdzOntpY29uQWN0aXZlOnouZHJhd2luZ1Rvb2xzSWNvbnMubG9ja0FsbERyYXdpbmdzQWN0aXZlfSxtYWduZXQ6e2hvdEtleTooMCxuLmhvdEtleVNlcmlhbGl6ZSkoe2tleXM6W3hdLHRleHQ6InswfSJ9KX0sbWVhc3VyZTp7aG90S2V5OigwLG4uaG90S2V5U2VyaWFsaXplKSh7a2V5czpbcF0sdGV4dDp0LnQobnVsbCx2b2lkIDAsZSg0Mzk1NykpfSl9LHJlbW92ZUFsbERyYXdpbmdUb29sczp7fSxzaG93T2JqZWN0c1RyZWU6e30sem9vbTp7fSwiem9vbS1vdXQiOnt9fTsoMCxpLmlzRmVhdHVyZUVuYWJsZWQpKCJoaWRlX3R3ZWV0X2RyYXdpbmd0b29sIil8fChmLkxpbmVUb29sVHdlZXQ9e30pLGRlbGV0ZSBmLkxpbmVUb29sQXJyb3dNYXJrTGVmdCxkZWxldGUgZi5MaW5lVG9vbEFycm93TWFya1JpZ2h0LGYuTGluZVRvb2xJZGVhPXt9LGYuTGluZVRvb2xBbmNob3JlZFZvbHVtZVByb2ZpbGU9e30sci5wZXJmb3JtYW5jZVRlc3RNb2RlJiYoZi5wZXJmb3JtYW5jZT17fSk7Y29uc3QgQz17fTtPYmplY3QuZW50cmllcyhmKS5tYXAoKChbbCxvXSk9Pntjb25zdCBlPXYubGluZVRvb2xzSWNvbnNbbF0/P3ouZHJhd2luZ1Rvb2xzSWNvbnNbbF07KDAsaC5hc3NlcnQpKCEhZSxgSWNvbiBpcyBub3QgZGVmaW5lZCBmb3IgZHJhd2luZyAiJHtsfSJgKTtsZXQgdD1jLmxpbmVUb29sc0xvY2FsaXplZE5hbWVzW2xdPz9hW2xdOygwLGguYXNzZXJ0KSghIXQsYExvY2FsaXplZCBuYW1lIGlzIG5vdCBkZWZpbmVkIGZvciBkcmF3aW5nICIke2x9ImApO2NvbnN0IGk9c1tsXTt0PSgwLHcuY2FwaXRhbGl6ZUZpcnN0TGV0dGVyKSh0KTtyZXR1cm57Li4ubyxuYW1lOmwsaWNvbjplLGxvY2FsaXplZE5hbWU6dCxzZWxlY3RIb3RrZXk6ZC5saW5lVG9vbHNTZWxlY3RIb3RrZXlzW2xdLHNvbHV0aW9uSWQ6aX19KSkuZm9yRWFjaCgobD0+e0NbbC5uYW1lXT1sfSkpfSw4NzE1NDUobCl7bC5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDI4IDI4IiB3aWR0aD0iMjgiIGhlaWdodD0iMjgiIGZpbGw9ImN1cnJlbnRDb2xvciI+PHBhdGggZD0ibTExLjI2IDIxIDMuNjUtNC43OCA2LjA5LS42NkwxMCA4em0zLjA5LTUuNzEtMi4zMyAzLjA1LS44LTguMyA3LjAyIDQuODJ6Ii8+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNMjUgMTRhMTEgMTEgMCAxIDEtMjIgMCAxMSAxMSAwIDAgMSAyMiAwbS0xIDBhMTAgMTAgMCAxIDEtMjAgMCAxMCAxMCAwIDAgMSAyMCAwIi8+PC9zdmc+J30sMjc0NzIobCl7bC5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDI4IDI4IiB3aWR0aD0iMjgiIGhlaWdodD0iMjgiPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZD0iTTE3LjI3IDQuNTZhMi41IDIuNSAwIDAgMC0zLjU0IDBsLS41OC41OS05IDktMSAxLS4xNS4xNFYyMGg0LjdsLjE1LS4xNSAxLTEgOS05IC41OS0uNThhMi41IDIuNSAwIDAgMCAwLTMuNTRsLTEuMTctMS4xN1ptLTIuODMuN2ExLjUgMS41IDAgMCAxIDIuMTIgMGwxLjE3IDEuMThhMS41IDEuNSAwIDAgMSAwIDIuMTJsLS4yMy4yMy0zLjMtMy4yOS4yNC0uMjNabS0uOTQuOTUgMy4zIDMuMjktOC4zIDguMy0zLjMtMy4zIDguMy04LjNabS05IDkgMy4zIDMuMjktLjUuNUg0di0zLjNsLjUtLjVabTE2LjUuMjlhMS41IDEuNSAwIDAgMC0zIDBWMThoNC41Yy44MyAwIDEuNS42NyAxLjUgMS41djRjMCAuODMtLjY3IDEuNS0xLjUgMS41aC02YTEuNSAxLjUgMCAwIDEtMS41LTEuNXYtNGMwLS44My42Ny0xLjUgMS41LTEuNWguNXYtMi41YTIuNSAyLjUgMCAwIDEgNSAwdi41aC0xdi0uNVpNMTYuNSAxOWEuNS41IDAgMCAwLS41LjV2NGMwIC4yOC4yMi41LjUuNWg2YS41LjUgMCAwIDAgLjUtLjV2LTRhLjUuNSAwIDAgMC0uNS0uNWgtNlptMi41IDR2LTJoMXYyaC0xWiIvPjwvc3ZnPid9LDM3Njc0NihsKXsKbC5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDI4IDI4IiB3aWR0aD0iMjgiIGhlaWdodD0iMjgiPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZD0iTTE3LjI3IDQuNTZhMi41IDIuNSAwIDAgMC0zLjU0IDBsLS41OC41OS05IDktMSAxLS4xNS4xNFYyMGg0LjdsLjE1LS4xNSAxLTEgOS05IC41OS0uNThhMi41IDIuNSAwIDAgMCAwLTMuNTRsLTEuMTctMS4xN1ptLTIuODMuN2ExLjUgMS41IDAgMCAxIDIuMTIgMGwxLjE3IDEuMThhMS41IDEuNSAwIDAgMSAwIDIuMTJsLS4yMy4yMy0zLjMtMy4yOS4yNC0uMjNabS0uOTQuOTUgMy4zIDMuMjktOC4zIDguMy0zLjMtMy4zIDguMy04LjNabS05IDkgMy4zIDMuMjktLjUuNUg0di0zLjNsLjUtLjVabTE2LjUuMjlhMS41IDEuNSAwIDAgMC0zIDBWMThoM3YtMi41Wm0xIDBWMThoLjVjLjgzIDAgMS41LjY3IDEuNSAxLjV2NGMwIC44My0uNjcgMS41LTEuNSAxLjVoLTZhMS41IDEuNSAwIDAgMS0xLjUtMS41di00YzAtLjgzLjY3LTEuNSAxLjUtMS41aC41di0yLjVhMi41IDIuNSAwIDAgMSA1IDBaTTE2LjUgMTlhLjUuNSAwIDAgMC0uNS41djRjMCAuMjguMjIuNS41LjVoNmEuNS41IDAgMCAwIC41LS41di00YS41LjUgMCAwIDAtLjUtLjVoLTZabTIuNSA0di0yaDF2MmgtMVoiLz48L3N2Zz4nfSwzMDY5NTUobCl7bC5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDMwIDMwIiB3aWR0aD0iMzAiIGhlaWdodD0iMzAiPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZD0iTTUuNSAxM0EyLjUgMi41IDAgMCAwIDMgMTUuNSAyLjUgMi41IDAgMCAwIDUuNSAxOCAyLjUgMi41IDAgMCAwIDggMTUuNSAyLjUgMi41IDAgMCAwIDUuNSAxM3ptOS41IDBhMi41IDIuNSAwIDAgMC0yLjUgMi41QTIuNSAyLjUgMCAwIDAgMTUgMThhMi41IDIuNSAwIDAgMCAyLjUtMi41QTIuNSAyLjUgMCAwIDAgMTUgMTN6bTkuNSAwYTIuNSAyLjUgMCAwIDAtMi41IDIuNSAyLjUgMi41IDAgMCAwIDIuNSAyLjUgMi41IDIuNSAwIDAgMCAyLjUtMi41IDIuNSAyLjUgMCAwIDAtMi41LTIuNXoiLz48L3N2Zz4nfSw1OTcwMTgobCl7bC5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDI4IDI4IiB3aWR0aD0iMjgiIGhlaWdodD0iMjgiPjxnIGZpbGw9ImN1cnJlbnRDb2xvciIgZmlsbC1ydWxlPSJub256ZXJvIj48cGF0aCBkPSJNMjEuNDg3IDUuMjQ4bC0xMi4wMTkgMS41MDIuMTI0Ljk5MiAxMi4wMTktMS41MDJ6TTYuNjE5IDkuMzU1bC0yLjIxNyAxMS4wODMuOTgxLjE5NiAyLjIxNy0xMS4wODN6TTYuNTM0IDIyLjc1bDEyLjA3MS0xLjUwOS0uMTI0LS45OTItMTIuMDcxIDEuNTA5ek0yMS4zODcgMTguNjEybDIuMjEtMTEuMDQ4LS45ODEtLjE5Ni0yLjIxIDExLjA0OHpNOC41MDcgOS4yMTRsMTAuMjU1IDEwLjI1NS43MDctLjcwNy0xMC4yNTUtMTAuMjU1eiIvPjxwYXRoIGQ9Ik03LjUgOWMuODI4IDAgMS41LS42NzIgMS41LTEuNXMtLjY3Mi0xLjUtMS41LTEuNS0xLjUuNjcyLTEuNSAxLjUuNjcyIDEuNSAxLjUgMS41em0wIDFjLTEuMzgxIDAtMi41LTEuMTE5LTIuNS0yLjVzMS4xMTktMi41IDIuNS0yLjUgMi41IDEuMTE5IDIuNSAyLjUtMS4xMTkgMi41LTIuNSAyLjV6TTQuNSAyNGMuODI4IDAgMS41LS42NzIgMS41LTEuNXMtLjY3Mi0xLjUtMS41LTEuNS0xLjUuNjcyLTEuNSAxLjUuNjcyIDEuNSAxLjUgMS41em0wIDFjLTEuMzgxIDAtMi41LTEuMTE5LTIuNS0yLjVzMS4xMTktMi41IDIuNS0yLjUgMi41IDEuMTE5IDIuNSAyLjUtMS4xMTkgMi41LTIuNSAyLjV6TTIzLjUgN2MuODI4IDAgMS41LS42NzIgMS41LTEuNXMtLjY3Mi0xLjUtMS41LTEuNS0xLjUuNjcyLTEuNSAxLjUuNjcyIDEuNSAxLjUgMS41em0wIDFjLTEuMzgxIDAtMi41LTEuMTE5LTIuNS0yLjVzMS4xMTktMi41IDIuNS0yLjUgMi41IDEuMTE5IDIuNSAyLjUtMS4xMTkgMi41LTIuNSAyLjV6TTIwLjUgMjJjLjgyOCAwIDEuNS0uNjcyIDEuNS0xLjVzLS42NzItMS41LTEuNS0xLjUtMS41LjY3Mi0xLjUgMS41LjY3MiAxLjUgMS41IDEuNXptMCAxYy0xLjM4MSAwLTIuNS0xLjExOS0yLjUtMi41czEuMTE5LTIuNSAyLjUtMi41IDIuNSAxLjExOSAyLjUgMi41LTEuMTE5IDIuNS0yLjUgMi41eiIvPjwvZz48L3N2Zz4nfSw0OTQwNzQobCl7bC5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDI4IDI4IiB3aWR0aD0iMjgiIGhlaWdodD0iMjgiPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZD0iTTguNSA2YS41LjUgMCAwIDAtLjUuNVY5SDdWNi41QzcgNS42NyA3LjY3IDUgOC41IDVoMTJjLjgzIDAgMS41LjY3IDEuNSAxLjVWOWgtMVY2LjVhLjUuNSAwIDAgMC0uNS0uNUgxNXYxNmgydjFoLTV2LTFoMlY2SDguNVpNMjUgMTcuNWEuNS41IDAgMSAxLTEgMCAuNS41IDAgMCAxIDEgMFptMCAxLjQxYTEuNSAxLjUgMCAxIDAtMSAwVjIwaC0ydjFoMnYzLjkzYTMuNDggMy40OCAwIDAgMS0xLjEtLjQ3Yy0uNTQtLjM3LS45LS44Ni0uOS0xLjQ2aC0xYzAgMS4wNi42NCAxLjgyIDEuMzUgMi4yOS43LjQ2IDEuNTQuNzEgMi4xNS43MS42IDAgMS40NS0uMjUgMi4xNS0uNzFBMi43NiAyLjc2IDAgMCAwIDI4IDIzaC0xYzAgLjYtLjM2IDEuMS0uOSAxLjQ2LS4zNi4yMy0uNzYuNC0xLjEuNDdWMjFoMnYtMWgtMnYtMS4wOVoiLz48L3N2Zz4nfSw5Mjc4MTcobCl7CmwuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyOCAyOCIgd2lkdGg9IjI4IiBoZWlnaHQ9IjI4Ij48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTI0IDNoLTF2NGgtNnYzaC01djNIOC45NWEyLjUgMi41IDAgMSAwIDAgMUgxNXYzaDV2M2gzdjRoMVYzWm0tNiA3aDVWOGgtNXYyWm0tMSAxaC00djJoMTB2LTJoLTZabTQgNWgtNXYtMmg3djJoLTJabTAgM3YtMmgydjJoLTJaTTYuNSAxNWExLjUgMS41IDAgMSAwIDAtMyAxLjUgMS41IDAgMCAwIDAgM1oiLz48L3N2Zz4nfSw4ODIyNShsKXtsLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMjggMjgiIHdpZHRoPSIyOCIgaGVpZ2h0PSIyOCIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBkPSJNMTcgMTdoMXY2aC0xdi02ek0xNyAyaDF2NWgtMVYyeiIvPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZD0iTTE2IDE3aDNWOGgtM3Y5ek0xNSA3aDV2MTFoLTVWN3pNMTAgNWgxdjVoLTFWNXpNMTAgMjJoMXYzaC0xdi0zeiIvPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZD0iTTkgMjFoM1YxMEg5djExek04IDloNXYxM0g4Vjl6Ii8+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTI1LjI3IDkuNDJMMTQuMSAxNi41M2wtNi45OC0xLjVMNS4zIDE2LjRsLS42LS44IDIuMTgtMS42NCA3LjAyIDEuNSAxMC44My02Ljg4LjU0Ljg0eiIvPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik00IDE4YTEgMSAwIDEgMCAwLTIgMSAxIDAgMCAwIDAgMnptMCAxYTIgMiAwIDEgMCAwLTQgMiAyIDAgMCAwIDAgNHoiLz48L3N2Zz4nfSw5ODgyNTAobCl7bC5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDI4IDI4IiB3aWR0aD0iMjgiIGhlaWdodD0iMjgiPjxnIGZpbGw9ImN1cnJlbnRDb2xvciIgZmlsbC1ydWxlPSJub256ZXJvIj48cGF0aCBkPSJNOC4wMTMgMjMuODQ2YzQuOTIzIDIuMjQ3IDkuNzkyIDIuNjI2IDEzLjQ0OC0uNTE3bC0uNjUyLS43NThjLTMuMjc3IDIuODE3LTcuNzc1IDIuNDY3LTEyLjM4MS4zNjVsLS40MTUuOTF6Ii8+PHBhdGggZD0iTTI0LjAzNSAyMC4wNTZjMi4yNjItNC4xNzYgMS44MTQtOC43My0uMTMtMTIuOThsLS45MDkuNDE2YzEuODI2IDMuOTkzIDIuMjQ0IDguMjQuMTYgMTIuMDg4bC44NzkuNDc2eiIvPjxwYXRoIGQ9Ik04LjIyMSAyMS40MDFsMTMuMjQ5LTE0LjA3Ny0uNzI4LS42ODUtMTMuMjQ5IDE0LjA3N3oiLz48cGF0aCBkPSJNNi41IDI0Yy44MjggMCAxLjUtLjY3MiAxLjUtMS41cy0uNjcyLTEuNS0xLjUtMS41LTEuNS42NzItMS41IDEuNS42NzIgMS41IDEuNSAxLjV6bTAgMWMtMS4zODEgMC0yLjUtMS4xMTktMi41LTIuNXMxLjExOS0yLjUgMi41LTIuNSAyLjUgMS4xMTkgMi41IDIuNS0xLjExOSAyLjUtMi41IDIuNXpNMjIuNSA3Yy44MjggMCAxLjUtLjY3MiAxLjUtMS41cy0uNjcyLTEuNS0xLjUtMS41LTEuNS42NzItMS41IDEuNS42NzIgMS41IDEuNSAxLjV6bTAgMWMtMS4zODEgMC0yLjUtMS4xMTktMi41LTIuNXMxLjExOS0yLjUgMi41LTIuNSAyLjUgMS4xMTkgMi41IDIuNS0xLjExOSAyLjUtMi41IDIuNXpNMjIuNSAyM2MuODI4IDAgMS41LS42NzIgMS41LTEuNXMtLjY3Mi0xLjUtMS41LTEuNS0xLjUuNjcyLTEuNSAxLjUuNjcyIDEuNSAxLjUgMS41em0wIDFjLTEuMzgxIDAtMi41LTEuMTE5LTIuNS0yLjVzMS4xMTktMi41IDIuNS0yLjUgMi41IDEuMTE5IDIuNSAyLjUtMS4xMTkgMi41LTIuNSAyLjV6Ii8+PC9nPjwvc3ZnPid9LDQ2MDkwNihsKXtsLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMjggMjgiIHdpZHRoPSIyOCIgaGVpZ2h0PSIyOCI+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBmaWxsLXJ1bGU9Im5vbnplcm8iIGQ9Ik0xNyAxMnYtNmgtNnY2aC00Ljg2NWw3Ljg2NSA5LjQzOCA3Ljg2NS05LjQzOGgtNC44NjV6bS03LTdoOHY2aDZsLTEwIDEyLTEwLTEyaDZ2LTZ6Ii8+PC9zdmc+J30sMzE4MTQ1KGwpe2wuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyOCAyOCIgd2lkdGg9IjI4IiBoZWlnaHQ9IjI4Ij48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGZpbGwtcnVsZT0ibm9uemVybyIgZD0iTTE2IDE3aDZ2LTZoLTZ2LTQuODY1bC05LjQzOCA3Ljg2NSA5LjQzOCA3Ljg2NXYtNC44NjV6bTcgMWgtNnY2bC0xMi0xMCAxMi0xMHY2aDZ2OHoiLz48L3N2Zz4nfSwzMTUwODQobCl7bC5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDI4IDI4IiB3aWR0aD0iMjgiIGhlaWdodD0iMjgiPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZmlsbC1ydWxlPSJub256ZXJvIiBkPSJNMTIgMTFoLTZ2Nmg2djQuODY1bDkuNDM4LTcuODY1LTkuNDM4LTcuODY1djQuODY1em0tNyA3di04aDZ2LTZsMTIgMTAtMTIgMTB2LTZoLTZ6Ii8+PC9zdmc+J30sMzM2MzEzKGwpe2wuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyOCAyOCIgd2lkdGg9IjI4IiBoZWlnaHQ9IjI4Ij48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGZpbGwtcnVsZT0ibm9uemVybyIgZD0iTTExIDE2djZoNnYtNmg0Ljg2NWwtNy44NjUtOS40MzgtNy44NjUgOS40MzhoNC44NjV6bTcgN2gtOHYtNmgtNmwxMC0xMiAxMCAxMmgtNnY2eiIvPjwvc3ZnPid9LDYxNjMyNChsKXsKbC5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDI4IDI4IiB3aWR0aD0iMjgiIGhlaWdodD0iMjgiIGZpbGw9ImN1cnJlbnRDb2xvciI+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0yMi4zOCA0LjA0aC4wNGExLjMgMS4zIDAgMCAxIDEuMjEuMzNjLjM3LjM2LjQyLjg0LjMzIDEuMnYuMDRsLTIuNDUgOC4zMmMtLjE0LjU1LS41Ny45MS0xIDEuMDQtLjQ1LjE0LTEuMi4wNy0xLjU1LS42M2wtLjM0LS42NC0xMi42IDEwLjAzYy0uMy4yNS0uNjcuMzEtMSAuMjVhMS4zIDEuMyAwIDAgMS0xLjAxLTEuMDZjLS4wNS0uMzEuMDItLjY5LjI5LS45OWwuMDItLjAyYTM1LjEzIDM1LjEzIDAgMCAwIC40Ny0uNTcgMTc0OS42IDE3NDkuNiAwIDAgMCA1LTYuMTVsMy43LTQuNTcuOTEtMS4xMy0uNjMtLjMzYy0uNy0uMzYtLjc3LTEuMS0uNjQtMS41NS4xMy0uNDQuNS0uODYgMS4wMy0xbDguMjItMi41N3ptLTcuOTUgMy41M2MtLjM1LjA4LS41LjU2LS4yLjdsMS43MS45MS0uNjQuOGExNzI5NC44IDE3Mjk0LjggMCAwIDEtMTAuMjQgMTIuNmwtLjAxLjAyYy0uMTcuMTkuMTUuNTIuMzMuMzVsMTMuNTUtMTAuNzguOTIgMS43Yy4xNC4zLjYyLjE2LjctLjJsMi40NC04LjMxYy4wNS0uMjQtLjEtLjQtLjM1LS4zNWwtOC4yIDIuNTZ6TTUuOCAyMy4yN3oiLz48L3N2Zz4nfSw5Mzk2NjkobCl7bC5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDI4IDI4IiB3aWR0aD0iMjgiIGhlaWdodD0iMjgiPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZD0iTTExLjY4MiAxNi4wOWwzLjUwNCA2LjA2OCAxLjczMi0xLTMuNDk3LTYuMDU3IDMuNTk1LTIuMUw4IDcuNzR2MTAuNTEybDMuNjgyLTIuMTYzem0tLjM2MiAxLjM3Mkw3IDIwVjZsMTIgNy00LjIxNiAyLjQ2MiAzLjUgNi4wNjItMy40NjQgMi0zLjUtNi4wNjJ6Ii8+PC9zdmc+J30sNzQ0MzQ5KGwpe2wuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyOCAyOCIgd2lkdGg9IjI4IiBoZWlnaHQ9IjI4Ij48ZyBmaWxsPSJjdXJyZW50Q29sb3IiIGZpbGwtcnVsZT0ibm9uemVybyI+PHBhdGggZD0iTTYgNnY2LjVoMXYtNi41ek03IDIydi0yLjVoLTF2Mi41ek0xMSAxMXYyLjVoMXYtMi41ek0xMiAyNHYtNy41aC0xdjcuNXpNMTYgNXY1LjVoMXYtNS41ek0xNyAyMXYtMi41aC0xdjIuNXpNMjEgN3Y0LjVoMXYtNC41ek0yMiAxOXYtMi41aC0xdjIuNXoiLz48cGF0aCBkPSJNNiAxM3Y2aDF2LTZoLTF6bS0xLTFoM3Y4aC0zdi04eiIvPjxwYXRoIGQ9Ik0xMSAxNmgxdi0yaC0xdjJ6bS0xLTNoM3Y0aC0zdi00eiIvPjxwYXRoIGQ9Ik0xNiAxOGgxdi03aC0xdjd6bS0xLThoM3Y5aC0zdi05eiIvPjxwYXRoIGQ9Ik0yMSAxNmgxdi00aC0xdjR6bS0xLTVoM3Y2aC0zdi02eiIvPjwvZz48L3N2Zz4nfSwxMTcwMTQobCl7bC5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDI4IDI4IiB3aWR0aD0iMjgiIGhlaWdodD0iMjgiPjxnIGZpbGw9ImN1cnJlbnRDb2xvciIgZmlsbC1ydWxlPSJub256ZXJvIj48cGF0aCBkPSJNMS43ODkgMjNsLjg1OS0uODU0LjIyMS0uMjI4Yy4xOC0uMTkuMzgtLjQwOS41OTctLjY1NS42MTktLjcwNCAxLjIzOC0xLjQ3OCAxLjgxNS0yLjI5OC45ODItMS4zOTYgMS43MzgtMi43NzYgMi4xNzctNC4wODEgMS4yMzQtMy42NjcgNS45NTctNC43MTYgOC45MjMtMS4yNjMgMy4yNTEgMy43ODUtLjAzNyA5LjM4LTUuMzc5IDkuMzhoLTkuMjExem05LjIxMS0xYzQuNTQ0IDAgNy4yNzItNC42NDIgNC42MjEtNy43MjgtMi40NS0yLjg1My02LjIyNS0yLjAxNS03LjIxNi45MzEtLjQ3NCAxLjQwOC0xLjI3MyAyLjg2OS0yLjMwNyA0LjMzNy0uNTk5Ljg1Mi0xLjI0MSAxLjY1My0xLjg4MiAyLjM4M2wtLjA2OC4wNzhoNi44NTN6Ii8+PHBhdGggZD0iTTE4LjE4MiA2LjAwMmwtMS40MTkgMS4yODZjLTEuMDMxLjkzNS0xLjA3NSAyLjUwMS0uMDk2IDMuNDhsMS44NzcgMS44NzdjLjk3Ni45NzYgMi41NTMuOTU0IDMuNTEzLS4wNDVsNS42NS01Ljg3NC0uNzIxLS42OTMtNS42NSA1Ljg3NGMtLjU3NC41OTYtMS41MDcuNjA5LTIuMDg2LjAzMWwtMS44NzctMS44NzdjLS41NzQtLjU3NC0uNTQ4LTEuNDguMDYxLTIuMDMybDEuNDE5LTEuMjg2LS42NzItLjc0MXoiLz48L2c+PC9zdmc+J30sMzUzMDU0KGwpe2wuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyOCAyOCIgd2lkdGg9IjI4IiBoZWlnaHQ9IjI4Ij48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGZpbGwtcnVsZT0ibm9uemVybyIgZD0iTTYgMjEuNTg2bDMuNTg2LTMuNTg2aDEzLjQwN2MuMDA0IDAgLjAwNy0xMS45OTMuMDA3LTExLjk5MyAwLS4wMDctMTctLjAwNy0xNy0uMDA3djE1LjU4NnptLTEgMi40MTR2LTE4LjAwNWMwLS41NDkuNDUxLS45OTUuOTk1LS45OTVoMTcuMDFjLjU0OSAwIC45OTUuNDUuOTk1IDEuMDA3djExLjk4NmMwIC41NTYtLjQ1IDEuMDA3LTEuMDA3IDEuMDA3aC0xMi45OTNsLTUgNXoiLz48L3N2Zz4nfSw5NjQxMTAobCl7bC5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDI4IDI4IiB3aWR0aD0iMjgiIGhlaWdodD0iMjgiIGZpbGw9Im5vbmUiPjxwYXRoIHN0cm9rZT0iY3VycmVudENvbG9yIiBkPSJNMTYgMTRhMiAyIDAgMSAxLTQgMCAyIDIgMCAwIDEgNCAwWiIvPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNNC41IDE0YTkuNSA5LjUgMCAwIDEgMTguNy0yLjM3IDIuNSAyLjUgMCAwIDAgMCA0Ljc0QTkuNSA5LjUgMCAwIDEgNC41IDE0Wm0xOS43IDIuNWExMC41IDEwLjUgMCAxIDEgMC01IDIuNSAyLjUgMCAwIDEgMCA1Wk0yMi41IDE0YTEuNSAxLjUgMCAxIDEgMyAwIDEuNSAxLjUgMCAwIDEtMyAwWiIvPjwvc3ZnPid9LDE3NzQ2MShsKXsKbC5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDI4IDI4IiB3aWR0aD0iMjgiIGhlaWdodD0iMjgiIGZpbGw9Im5vbmUiPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZmlsbC1ydWxlPSJub256ZXJvIiBkPSJNMTIgOEM4LjY4NjI5IDggNiAxMC42ODYzIDYgMTRWMjBIMThDMjEuMzEzNyAyMCAyNCAxNy4zMTM3IDI0IDE0QzI0IDEwLjY4NjMgMjEuMzEzNyA4IDE4IDhIMTJaTTUgMTRDNSAxMC4xMzQgOC4xMzQwMSA3IDEyIDdIMThDMjEuODY2IDcgMjUgMTAuMTM0IDI1IDE0QzI1IDE3Ljg2NiAyMS44NjYgMjEgMTggMjFINkM1LjQ0NzcyIDIxIDUgMjAuNTUyMyA1IDIwVjE0WiIvPjwvc3ZnPid9LDg0MjI5KGwpe2wuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyOCAyOCIgd2lkdGg9IjI4IiBoZWlnaHQ9IjI4Ij48ZyBmaWxsPSJjdXJyZW50Q29sb3IiIGZpbGwtcnVsZT0ibm9uemVybyI+PHBhdGggZD0iTTQgMTVoOC41di0xaC04LjV6TTE2LjUgMTVoOC41di0xaC04LjV6Ii8+PHBhdGggZD0iTTE1IDEydi04LjVoLTF2OC41ek0xNCAxNi41djguNWgxdi04LjV6Ii8+PHBhdGggZD0iTTE0LjUgMTZjLjgyOCAwIDEuNS0uNjcyIDEuNS0xLjVzLS42NzItMS41LTEuNS0xLjUtMS41LjY3Mi0xLjUgMS41LjY3MiAxLjUgMS41IDEuNXptMCAxYy0xLjM4MSAwLTIuNS0xLjExOS0yLjUtMi41czEuMTE5LTIuNSAyLjUtMi41IDIuNSAxLjExOSAyLjUgMi41LTEuMTE5IDIuNS0yLjUgMi41eiIvPjwvZz48L3N2Zz4nfSw4NjEyMDYobCl7bC5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDI4IDI4IiB3aWR0aD0iMjgiIGhlaWdodD0iMjgiPjxnIGZpbGw9ImN1cnJlbnRDb2xvciI+PHBhdGggZD0iTTE4IDE1aDh2LTFoLTh6Ii8+PHBhdGggZD0iTTE0IDE4djhoMXYtOHpNMTQgM3Y4aDF2LTh6TTMgMTVoOHYtMWgtOHoiLz48L2c+PC9zdmc+J30sNDIyMDIzKGwpe2wuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyOCAyOCIgd2lkdGg9IjI4IiBoZWlnaHQ9IjI4Ij48ZyBmaWxsPSJjdXJyZW50Q29sb3IiIGZpbGwtcnVsZT0ibm9uemVybyI+PHBhdGggZD0iTTYuMjU2IDIwLjY1MmMuNTQ4LTMuMDI0IDEuNjA3LTUuOTYyIDMuMzI5LTguMzEybC0uODA3LS41OTFjLTEuODI1IDIuNDkzLTIuOTMzIDUuNTY1LTMuNTA2IDguNzI1bC45ODQuMTc4eiIvPjxwYXRoIGQ9Ik0xMi4yNDMgOS42NTdjMi4zNjUtMS43NjQgNS4zNDUtMi44NDYgOC40MTYtMy40MDJsLS4xNzgtLjk4NGMtMy4yMS41ODEtNi4zMjYgMS43MTItOC44MzYgMy41ODRsLjU5OC44MDJ6Ii8+PHBhdGggZD0iTTEwLjUgMTJjLjgyOCAwIDEuNS0uNjcyIDEuNS0xLjVzLS42NzItMS41LTEuNS0xLjUtMS41LjY3Mi0xLjUgMS41LjY3MiAxLjUgMS41IDEuNXptMCAxYy0xLjM4MSAwLTIuNS0xLjExOS0yLjUtMi41czEuMTE5LTIuNSAyLjUtMi41IDIuNSAxLjExOSAyLjUgMi41LTEuMTE5IDIuNS0yLjUgMi41ek0yMi41IDdjLjgyOCAwIDEuNS0uNjcyIDEuNS0xLjVzLS42NzItMS41LTEuNS0xLjUtMS41LjY3Mi0xLjUgMS41LjY3MiAxLjUgMS41IDEuNXptMCAxYy0xLjM4MSAwLTIuNS0xLjExOS0yLjUtMi41czEuMTE5LTIuNSAyLjUtMi41IDIuNSAxLjExOSAyLjUgMi41LTEuMTE5IDIuNS0yLjUgMi41ek01LjUgMjRjLjgyOCAwIDEuNS0uNjcyIDEuNS0xLjVzLS42NzItMS41LTEuNS0xLjUtMS41LjY3Mi0xLjUgMS41LjY3MiAxLjUgMS41IDEuNXptMCAxYy0xLjM4MSAwLTIuNS0xLjExOS0yLjUtMi41czEuMTE5LTIuNSAyLjUtMi41IDIuNSAxLjExOSAyLjUgMi41LTEuMTE5IDIuNS0yLjUgMi41eiIvPjwvZz48L3N2Zz4nfSwzOTE3MTcobCl7bC5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDI4IDI4IiB3aWR0aD0iMjgiIGhlaWdodD0iMjgiPjxnIGZpbGw9ImN1cnJlbnRDb2xvciIgZmlsbC1ydWxlPSJub256ZXJvIj48cGF0aCBkPSJNMjMgNHYyMWgxdi0yMXoiLz48cGF0aCBkPSJNMTcgNHYyMWgxdi0yMXoiLz48cGF0aCBkPSJNNSAxNi41djguNWgxdi04LjV6Ii8+PHBhdGggZD0iTTUgNHY4LjVoMXYtOC41eiIvPjxwYXRoIGQ9Ik01LjUgMTZjLjgyOCAwIDEuNS0uNjcyIDEuNS0xLjVzLS42NzItMS41LTEuNS0xLjUtMS41LjY3Mi0xLjUgMS41LjY3MiAxLjUgMS41IDEuNXptMCAxYy0xLjM4MSAwLTIuNS0xLjExOS0yLjUtMi41czEuMTE5LTIuNSAyLjUtMi41IDIuNSAxLjExOSAyLjUgMi41LTEuMTE5IDIuNS0yLjUgMi41eiIvPjxwYXRoIGQ9Ik0xMSAxNi41djguNWgxdi04LjV6Ii8+PHBhdGggZD0iTTExIDR2OC41aDF2LTguNXoiLz48cGF0aCBkPSJNMTEuNSAxNmMuODI4IDAgMS41LS42NzIgMS41LTEuNXMtLjY3Mi0xLjUtMS41LTEuNS0xLjUuNjcyLTEuNSAxLjUuNjcyIDEuNSAxLjUgMS41em0wIDFjLTEuMzgxIDAtMi41LTEuMTE5LTIuNS0yLjVzMS4xMTktMi41IDIuNS0yLjUgMi41IDEuMTE5IDIuNSAyLjUtMS4xMTkgMi41LTIuNSAyLjV6Ii8+PC9nPjwvc3ZnPid9LDgxMTA5OChsKXsKbC5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDI4IDI4IiB3aWR0aD0iMjgiIGhlaWdodD0iMjgiPjxnIGZpbGw9ImN1cnJlbnRDb2xvciI+PHBhdGggZD0iTTE1LjI0NiAyMS44OTVsMS4xMjEuMzU1Yy0uMTcyLjYyNS0uNDU4IDEuMDg5LS44NTcgMS4zOTMtLjQuMzAzLS45MDcuNDU1LTEuNTIxLjQ1NS0uNzYgMC0xLjM4NS0uMjYtMS44NzUtLjc3OS0uNDktLjUyLS43MzQtMS4yMy0uNzM0LTIuMTMxIDAtLjk1My4yNDYtMS42OTMuNzM4LTIuMjIxLjQ5Mi0uNTI3IDEuMTM5LS43OTEgMS45NDEtLjc5MS43MDEgMCAxLjI3LjIwNyAxLjcwNy42MjEuMjYuMjQ1LjQ1Ni41OTYuNTg2IDEuMDU1bC0xLjE0NS4yNzNjLS4wNjgtLjI5Ny0uMjA5LS41MzEtLjQyNC0uNzAzLS4yMTUtLjE3Mi0uNDc2LS4yNTgtLjc4My0uMjU4LS40MjQgMC0uNzY5LjE1Mi0xLjAzMy40NTctLjI2NC4zMDUtLjM5Ni43OTgtLjM5NiAxLjQ4IDAgLjcyNC4xMyAxLjI0LjM5MSAxLjU0Ny4yNi4zMDcuNTk5LjQ2MSAxLjAxNi40NjEuMzA3IDAgLjU3Mi0uMDk4Ljc5My0uMjkzLjIyMS0uMTk1LjM4LS41MDMuNDc3LS45MjJ6Ii8+PHBhdGggZmlsbC1ydWxlPSJub256ZXJvIiBkPSJNMjAuNDQ5IDguNTA1bDIuMTAzIDkuMTEyLjk3NC0uMjI1LTIuMTAzLTkuMTEyek0xMy45NDMgMTQuMDExbDcuNjMxIDQuODU2LjUzNy0uODQ0LTcuNjMxLTQuODU2ek0xNC4zNzkgMTEuNzE2bDQuODEyLTMuNjA5LS42LS44LTQuODEyIDMuNjA5ek0xMC45NiAxMy44MjhsLTQuNzIxIDYuNzQ0LjgxOS41NzMgNC43MjEtNi43NDR6TTYuMzMxIDIwLjY3bDIuMzEtMTMuMDg4LS45ODUtLjE3NC0yLjMxIDEzLjA4OHpNOS4wNDEgNy40NTRsMS45OTUgMy40OTIuODY4LS40OTYtMS45OTUtMy40OTJ6Ii8+PHBhdGggZmlsbC1ydWxlPSJub256ZXJvIiBkPSJNOC41IDdjLjgyOCAwIDEuNS0uNjcyIDEuNS0xLjVzLS42NzItMS41LTEuNS0xLjUtMS41LjY3Mi0xLjUgMS41LjY3MiAxLjUgMS41IDEuNXptMCAxYy0xLjM4MSAwLTIuNS0xLjExOS0yLjUtMi41czEuMTE5LTIuNSAyLjUtMi41IDIuNSAxLjExOSAyLjUgMi41LTEuMTE5IDIuNS0yLjUgMi41ek01LjUgMjRjLjgyOCAwIDEuNS0uNjcyIDEuNS0xLjVzLS42NzItMS41LTEuNS0xLjUtMS41LjY3Mi0xLjUgMS41LjY3MiAxLjUgMS41IDEuNXptMCAxYy0xLjM4MSAwLTIuNS0xLjExOS0yLjUtMi41czEuMTE5LTIuNSAyLjUtMi41IDIuNSAxLjExOSAyLjUgMi41LTEuMTE5IDIuNS0yLjUgMi41ek0xMi41IDE0Yy44MjggMCAxLjUtLjY3MiAxLjUtMS41cy0uNjcyLTEuNS0xLjUtMS41LTEuNS42NzItMS41IDEuNS42NzIgMS41IDEuNSAxLjV6bTAgMWMtMS4zODEgMC0yLjUtMS4xMTktMi41LTIuNXMxLjExOS0yLjUgMi41LTIuNSAyLjUgMS4xMTkgMi41IDIuNS0xLjExOSAyLjUtMi41IDIuNXpNMjAuNSA4Yy44MjggMCAxLjUtLjY3MiAxLjUtMS41cy0uNjcyLTEuNS0xLjUtMS41LTEuNS42NzItMS41IDEuNS42NzIgMS41IDEuNSAxLjV6bTAgMWMtMS4zODEgMC0yLjUtMS4xMTktMi41LTIuNXMxLjExOS0yLjUgMi41LTIuNSAyLjUgMS4xMTkgMi41IDIuNS0xLjExOSAyLjUtMi41IDIuNXpNMjMuNSAyMWMuODI4IDAgMS41LS42NzIgMS41LTEuNXMtLjY3Mi0xLjUtMS41LTEuNS0xLjUuNjcyLTEuNSAxLjUuNjcyIDEuNSAxLjUgMS41em0wIDFjLTEuMzgxIDAtMi41LTEuMTE5LTIuNS0yLjVzMS4xMTktMi41IDIuNS0yLjUgMi41IDEuMTE5IDIuNSAyLjUtMS4xMTkgMi41LTIuNSAyLjV6Ii8+PC9nPjwvc3ZnPid9LDkwMzc2NihsKXtsLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMjggMjgiIHdpZHRoPSIyOCIgaGVpZ2h0PSIyOCI+PGcgZmlsbD0iY3VycmVudENvbG9yIj48cGF0aCBmaWxsLXJ1bGU9Im5vbnplcm8iIGQ9Ik02LjUgMjN2MWgxNy41di0xNy41aC0xdjE2LjV6Ii8+PHBhdGggZmlsbC1ydWxlPSJub256ZXJvIiBkPSJNMjEuNSA1di0xaC0xNy41djE3LjVoMXYtMTYuNXoiLz48cGF0aCBmaWxsLXJ1bGU9Im5vbnplcm8iIGQ9Ik00LjUgMjVjLjgyOCAwIDEuNS0uNjcyIDEuNS0xLjVzLS42NzItMS41LTEuNS0xLjUtMS41LjY3Mi0xLjUgMS41LjY3MiAxLjUgMS41IDEuNXptMCAxYy0xLjM4MSAwLTIuNS0xLjExOS0yLjUtMi41czEuMTE5LTIuNSAyLjUtMi41IDIuNSAxLjExOSAyLjUgMi41LTEuMTE5IDIuNS0yLjUgMi41ek0yMy41IDZjLjgyOCAwIDEuNS0uNjcyIDEuNS0xLjVzLS42NzItMS41LTEuNS0xLjUtMS41LjY3Mi0xLjUgMS41LjY3MiAxLjUgMS41IDEuNXptMCAxYy0xLjM4MSAwLTIuNS0xLjExOS0yLjUtMi41czEuMTE5LTIuNSAyLjUtMi41IDIuNSAxLjExOSAyLjUgMi41LTEuMTE5IDIuNS0yLjUgMi41eiIvPjxwYXRoIGZpbGwtcnVsZT0ibm9uemVybyIgZD0iTTEzIDl2MTNoMXYtMTN6IiBpZD0iTGluZSIvPjxwYXRoIGQ9Ik0xMy41IDZsMi41IDNoLTV6Ii8+PHBhdGggZmlsbC1ydWxlPSJub256ZXJvIiBkPSJNMTkgMTRoLTEzdjFoMTN6Ii8+PHBhdGggZD0iTTE5IDE3di01bDMgMi41eiIvPjwvZz48L3N2Zz4nfSwyOTc3MTQobCl7CmwuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyOCAyOCIgd2lkdGg9IjI4IiBoZWlnaHQ9IjI4Ij48ZyBmaWxsPSJjdXJyZW50Q29sb3IiPjxwYXRoIGZpbGwtcnVsZT0ibm9uemVybyIgZD0iTTIwIDE0aC0xNHYxaDE0eiIgaWQ9IkxpbmUiLz48cGF0aCBkPSJNMjAgMTd2LTVsMyAyLjV6Ii8+PHBhdGggZmlsbC1ydWxlPSJub256ZXJvIiBkPSJNMjQgOC41djE2LjVoMXYtMTYuNXpNNCA0djE2LjVoMXYtMTYuNXoiLz48cGF0aCBmaWxsLXJ1bGU9Im5vbnplcm8iIGQ9Ik00LjUgMjRjLjgyOCAwIDEuNS0uNjcyIDEuNS0xLjVzLS42NzItMS41LTEuNS0xLjUtMS41LjY3Mi0xLjUgMS41LjY3MiAxLjUgMS41IDEuNXptMCAxYy0xLjM4MSAwLTIuNS0xLjExOS0yLjUtMi41czEuMTE5LTIuNSAyLjUtMi41IDIuNSAxLjExOSAyLjUgMi41LTEuMTE5IDIuNS0yLjUgMi41ek0yNC41IDhjLjgyOCAwIDEuNS0uNjcyIDEuNS0xLjVzLS42NzItMS41LTEuNS0xLjUtMS41LjY3Mi0xLjUgMS41LjY3MiAxLjUgMS41IDEuNXptMCAxYy0xLjM4MSAwLTIuNS0xLjExOS0yLjUtMi41czEuMTE5LTIuNSAyLjUtMi41IDIuNSAxLjExOSAyLjUgMi41LTEuMTE5IDIuNS0yLjUgMi41eiIvPjwvZz48L3N2Zz4nfSw0NDU4ODAobCl7bC5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDI4IDI4IiB3aWR0aD0iMjgiIGhlaWdodD0iMjgiPjxnIGZpbGw9ImN1cnJlbnRDb2xvciIgZmlsbC1ydWxlPSJub256ZXJvIj48cGF0aCBkPSJNMjAuNTM0IDQuNjY0bC0xMy4zMTggNC43MDEuMzMzLjk0MyAxMy4zMTgtNC43MDF6TTIwLjgwMiAyMi4zNzFsLTEzLjI4NS00LjY4OS0uMzMzLjk0MyAxMy4yODUgNC42ODl6Ii8+PHBhdGggZD0iTTUuNSAxMmMuODI4IDAgMS41LS42NzIgMS41LTEuNXMtLjY3Mi0xLjUtMS41LTEuNS0xLjUuNjcyLTEuNSAxLjUuNjcyIDEuNSAxLjUgMS41em0wIDFjLTEuMzgxIDAtMi41LTEuMTE5LTIuNS0yLjVzMS4xMTktMi41IDIuNS0yLjUgMi41IDEuMTE5IDIuNSAyLjUtMS4xMTkgMi41LTIuNSAyLjV6TTIyLjUgNmMuODI4IDAgMS41LS42NzIgMS41LTEuNXMtLjY3Mi0xLjUtMS41LTEuNS0xLjUuNjcyLTEuNSAxLjUuNjcyIDEuNSAxLjUgMS41em0wIDFjLTEuMzgxIDAtMi41LTEuMTE5LTIuNS0yLjVzMS4xMTktMi41IDIuNS0yLjUgMi41IDEuMTE5IDIuNSAyLjUtMS4xMTkgMi41LTIuNSAyLjV6TTUuNSAxOWMuODI4IDAgMS41LS42NzIgMS41LTEuNXMtLjY3Mi0xLjUtMS41LTEuNS0xLjUuNjcyLTEuNSAxLjUuNjcyIDEuNSAxLjUgMS41em0wIDFjLTEuMzgxIDAtMi41LTEuMTE5LTIuNS0yLjVzMS4xMTktMi41IDIuNS0yLjUgMi41IDEuMTE5IDIuNSAyLjUtMS4xMTkgMi41LTIuNSAyLjV6TTIyLjUgMjVjLjgyOCAwIDEuNS0uNjcyIDEuNS0xLjVzLS42NzItMS41LTEuNS0xLjUtMS41LjY3Mi0xLjUgMS41LjY3MiAxLjUgMS41IDEuNXptMCAxYy0xLjM4MSAwLTIuNS0xLjExOS0yLjUtMi41czEuMTE5LTIuNSAyLjUtMi41IDIuNSAxLjExOSAyLjUgMi41LTEuMTE5IDIuNS0yLjUgMi41eiIvPjwvZz48L3N2Zz4nfSwxODQ1MzkobCl7bC5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDI4IDI4IiB3aWR0aD0iMjgiIGhlaWdodD0iMjgiPjxjaXJjbGUgZmlsbD0iY3VycmVudENvbG9yIiBjeD0iMTQiIGN5PSIxNCIgcj0iMyIvPjwvc3ZnPid9LDg4NTQ1MShsKXtsLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMjggMjgiIHdpZHRoPSIyOCIgaGVpZ2h0PSIyOCI+PGcgZmlsbD0iY3VycmVudENvbG9yIiBmaWxsLXJ1bGU9Im5vbnplcm8iPjxwYXRoIGQ9Ik0xNy42MDUgMTkuNTg0Yy4yOTUtMi4zMDQtLjU4NC0zLjU4Ni0zLjI3NC01Ljk1OS0yLjQ2Mi0yLjE3Mi0zLjE5MS0zLjI0MS0yLjk0LTUuMTExbC0uOTkxLS4xMzNjLS4zMTIgMi4zMjIuNTY3IDMuNjEgMy4yNjkgNS45OTQgMi40NTIgMi4xNjMgMy4xODEgMy4yMjcgMi45NDMgNS4wODNsLjk5Mi4xMjd6Ii8+PHBhdGggZD0iTTYuMDUzIDI0Ljg2OGMzLjc3MiAxLjY0NCA3LjMwNyAxLjY0MyA5LjcxMi0xLjI0OWwtLjc2OS0uNjRjLTIuMDQ1IDIuNDU4LTUuMTMzIDIuNDU5LTguNTQ0Ljk3MmwtLjQuOTE3eiIvPjxwYXRoIGQ9Ik0xMi45NDkgNS4wODdjMi4wNDQtMi41MjUgNS4xNTctMi41NCA4LjYwMi0xLjAzNmwuNC0uOTE3Yy0zLjgxLTEuNjYzLTcuMzc2LTEuNjQ2LTkuNzc5IDEuMzI0bC43NzcuNjI5eiIvPjxwYXRoIGQ9Ik00LjUgMjVjLjgyOCAwIDEuNS0uNjcyIDEuNS0xLjVzLS42NzItMS41LTEuNS0xLjUtMS41LjY3Mi0xLjUgMS41LjY3MiAxLjUgMS41IDEuNXptMCAxYy0xLjM4MSAwLTIuNS0xLjExOS0yLjUtMi41czEuMTE5LTIuNSAyLjUtMi41IDIuNSAxLjExOSAyLjUgMi41LTEuMTE5IDIuNS0yLjUgMi41ek0xNi41IDIzYy44MjggMCAxLjUtLjY3MiAxLjUtMS41cy0uNjcyLTEuNS0xLjUtMS41LTEuNS42NzItMS41IDEuNS42NzIgMS41IDEuNSAxLjV6bTAgMWMtMS4zODEgMC0yLjUtMS4xMTktMi41LTIuNXMxLjExOS0yLjUgMi41LTIuNSAyLjUgMS4xMTkgMi41IDIuNS0xLjExOSAyLjUtMi41IDIuNXpNMTEuNSA4Yy44MjggMCAxLjUtLjY3MiAxLjUtMS41cy0uNjcyLTEuNS0xLjUtMS41LTEuNS42NzItMS41IDEuNS42NzIgMS41IDEuNSAxLjV6bTAgMWMtMS4zODEgMC0yLjUtMS4xMTktMi41LTIuNXMxLjExOS0yLjUgMi41LTIuNSAyLjUgMS4xMTkgMi41IDIuNS0xLjExOSAyLjUtMi41IDIuNXpNMjMuNSA2Yy44MjggMCAxLjUtLjY3MiAxLjUtMS41cy0uNjcyLTEuNS0xLjUtMS41LTEuNS42NzItMS41IDEuNS42NzIgMS41IDEuNSAxLjV6bTAgMWMtMS4zODEgMC0yLjUtMS4xMTktMi41LTIuNXMxLjExOS0yLjUgMi41LTIuNSAyLjUgMS4xMTkgMi41IDIuNS0xLjExOSAyLjUtMi41IDIuNXoiLz48L2c+PC9zdmc+J30sODI3Mzg1KGwpewpsLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMjggMjgiIHdpZHRoPSIyOCIgaGVpZ2h0PSIyOCI+PGcgZmlsbD0iY3VycmVudENvbG9yIj48cGF0aCBmaWxsLXJ1bGU9Im5vbnplcm8iIGQ9Ik01LjIzOCAxOC40NjlsNC4xNy00LjE3LS43MDctLjcwNy00LjE3IDQuMTd6TTE2LjQ3IDE3Ljc2M2wtLjcwNy43MDctNC4yNjUtNC4yNjUuNzA3LS43MDd6TTIyLjc0NyAxMy41NDZsLTQuMTkyIDQuMTkyLjcwNy43MDcgNC4xOTItNC4xOTJ6Ii8+PHBhdGggZmlsbC1ydWxlPSJub256ZXJvIiBkPSJNMTAuNSAxNGMuODI4IDAgMS41LS42NzIgMS41LTEuNXMtLjY3Mi0xLjUtMS41LTEuNS0xLjUuNjcyLTEuNSAxLjUuNjcyIDEuNSAxLjUgMS41em0wIDFjLTEuMzgxIDAtMi41LTEuMTE5LTIuNS0yLjVzMS4xMTktMi41IDIuNS0yLjUgMi41IDEuMTE5IDIuNSAyLjUtMS4xMTkgMi41LTIuNSAyLjV6TTE3LjUgMjFjLjgyOCAwIDEuNS0uNjcyIDEuNS0xLjVzLS42NzItMS41LTEuNS0xLjUtMS41LjY3Mi0xLjUgMS41LjY3MiAxLjUgMS41IDEuNXptMCAxYy0xLjM4MSAwLTIuNS0xLjExOS0yLjUtMi41czEuMTE5LTIuNSAyLjUtMi41IDIuNSAxLjExOSAyLjUgMi41LTEuMTE5IDIuNS0yLjUgMi41ek0yNC41IDE0Yy44MjggMCAxLjUtLjY3MiAxLjUtMS41cy0uNjcyLTEuNS0xLjUtMS41LTEuNS42NzItMS41IDEuNS42NzIgMS41IDEuNSAxLjV6bTAgMWMtMS4zODEgMC0yLjUtMS4xMTktMi41LTIuNXMxLjExOS0yLjUgMi41LTIuNSAyLjUgMS4xMTkgMi41IDIuNS0xLjExOSAyLjUtMi41IDIuNXpNMy41IDIxYy44MjggMCAxLjUtLjY3MiAxLjUtMS41cy0uNjcyLTEuNS0xLjUtMS41LTEuNS42NzItMS41IDEuNS42NzIgMS41IDEuNSAxLjV6bTAgMWMtMS4zODEgMC0yLjUtMS4xMTktMi41LTIuNXMxLjExOS0yLjUgMi41LTIuNSAyLjUgMS4xMTkgMi41IDIuNS0xLjExOSAyLjUtMi41IDIuNXoiLz48cGF0aCBkPSJNMTMuNzQ2IDdoLTEuMjU4bC0uNS0xLjMwMWgtMi4yODlsLS40NzMgMS4zMDFoLTEuMjI3bDIuMjMtNS43MjdoMS4yMjNsMi4yOTMgNS43Mjd6bS0yLjEyOS0yLjI2NmwtLjc4OS0yLjEyNS0uNzczIDIuMTI1aDEuNTYzeiIvPjxwYXRoIGQ9Ik0yNi4yNDYgNC44OTVsMS4xMjEuMzU1Yy0uMTcyLjYyNS0uNDU4IDEuMDg5LS44NTcgMS4zOTMtLjQuMzAzLS45MDcuNDU1LTEuNTIxLjQ1NS0uNzYgMC0xLjM4NS0uMjYtMS44NzUtLjc3OS0uNDktLjUyLS43MzQtMS4yMy0uNzM0LTIuMTMxIDAtLjk1My4yNDYtMS42OTMuNzM4LTIuMjIxLjQ5Mi0uNTI3IDEuMTM5LS43OTEgMS45NDEtLjc5MS43MDEgMCAxLjI3LjIwNyAxLjcwNy42MjEuMjYuMjQ1LjQ1Ni41OTYuNTg2IDEuMDU1bC0xLjE0NS4yNzNjLS4wNjgtLjI5Ny0uMjA5LS41MzEtLjQyNC0uNzAzLS4yMTUtLjE3Mi0uNDc2LS4yNTgtLjc4My0uMjU4LS40MjQgMC0uNzY5LjE1Mi0xLjAzMy40NTctLjI2NC4zMDUtLjM5Ni43OTgtLjM5NiAxLjQ4IDAgLjcyNC4xMyAxLjI0LjM5MSAxLjU0Ny4yNi4zMDcuNTk5LjQ2MSAxLjAxNi40NjEuMzA3IDAgLjU3Mi0uMDk4Ljc5My0uMjkzLjIyMS0uMTk1LjM4LS41MDMuNDc3LS45MjJ6Ii8+PC9nPjwvc3ZnPid9LDc1NTI2OShsKXtsLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMjggMjgiIHdpZHRoPSIyOCIgaGVpZ2h0PSIyOCI+PGcgZmlsbD0iY3VycmVudENvbG9yIj48cGF0aCBmaWxsLXJ1bGU9Im5vbnplcm8iIGQ9Ik01LjIzOCAxOC40NjlsNC4xNy00LjE3LS43MDctLjcwNy00LjE3IDQuMTd6TTE2LjQ3IDE3Ljc2M2wtLjcwNy43MDctNC4yNjUtNC4yNjUuNzA3LS43MDd6TTIyLjc0NyAxMy41NDZsLTQuMTkyIDQuMTkyLjcwNy43MDcgNC4xOTItNC4xOTJ6Ii8+PHBhdGggZmlsbC1ydWxlPSJub256ZXJvIiBkPSJNMTAuNSAxNGMuODI4IDAgMS41LS42NzIgMS41LTEuNXMtLjY3Mi0xLjUtMS41LTEuNS0xLjUuNjcyLTEuNSAxLjUuNjcyIDEuNSAxLjUgMS41em0wIDFjLTEuMzgxIDAtMi41LTEuMTE5LTIuNS0yLjVzMS4xMTktMi41IDIuNS0yLjUgMi41IDEuMTE5IDIuNSAyLjUtMS4xMTkgMi41LTIuNSAyLjV6TTE3LjUgMjFjLjgyOCAwIDEuNS0uNjcyIDEuNS0xLjVzLS42NzItMS41LTEuNS0xLjUtMS41LjY3Mi0xLjUgMS41LjY3MiAxLjUgMS41IDEuNXptMCAxYy0xLjM4MSAwLTIuNS0xLjExOS0yLjUtMi41czEuMTE5LTIuNSAyLjUtMi41IDIuNSAxLjExOSAyLjUgMi41LTEuMTE5IDIuNS0yLjUgMi41ek0yNC41IDE0Yy44MjggMCAxLjUtLjY3MiAxLjUtMS41cy0uNjcyLTEuNS0xLjUtMS41LTEuNS42NzItMS41IDEuNS42NzIgMS41IDEuNSAxLjV6bTAgMWMtMS4zODEgMC0yLjUtMS4xMTktMi41LTIuNXMxLjExOS0yLjUgMi41LTIuNSAyLjUgMS4xMTkgMi41IDIuNS0xLjExOSAyLjUtMi41IDIuNXpNMy41IDIxYy44MjggMCAxLjUtLjY3MiAxLjUtMS41cy0uNjcyLTEuNS0xLjUtMS41LTEuNS42NzItMS41IDEuNS42NzIgMS41IDEuNSAxLjV6bTAgMWMtMS4zODEgMC0yLjUtMS4xMTktMi41LTIuNXMxLjExOS0yLjUgMi41LTIuNSAyLjUgMS4xMTkgMi41IDIuNS0xLjExOSAyLjUtMi41IDIuNXoiLz48cGF0aCBkPSJNOC4zOTUgN2wtMS4zNjctNS43MjdoMS4xODRsLjg2MyAzLjkzNCAxLjA0Ny0zLjkzNGgxLjM3NWwxLjAwNCA0IC44NzktNGgxLjE2NGwtMS4zOTEgNS43MjdoLTEuMjI3bC0xLjE0MS00LjI4MS0xLjEzNyA0LjI4MXoiLz48cGF0aCBkPSJNMjQuMDg2IDd2LTIuNDFsLTIuMDk4LTMuMzE2aDEuMzU1bDEuMzQ4IDIuMjY2IDEuMzItMi4yNjZoMS4zMzJsLTIuMTA1IDMuMzI0djIuNDAyeiIvPjwvZz48L3N2Zz4nfSw2MjE3NDAobCl7CmwuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyOCAyOCIgd2lkdGg9IjI4IiBoZWlnaHQ9IjI4Ij48ZyBmaWxsPSJjdXJyZW50Q29sb3IiPjxwYXRoIGZpbGwtcnVsZT0ibm9uemVybyIgZD0iTTUuMjM4IDE4LjQ2OWw0LjE3LTQuMTctLjcwNy0uNzA3LTQuMTcgNC4xN3pNMTYuNDcgMTcuNzYzbC0uNzA3LjcwNy00LjI2NS00LjI2NS43MDctLjcwN3pNMjIuNzQ3IDEzLjU0NmwtNC4xOTIgNC4xOTIuNzA3LjcwNyA0LjE5Mi00LjE5MnoiLz48cGF0aCBmaWxsLXJ1bGU9Im5vbnplcm8iIGQ9Ik0xMC41IDE0Yy44MjggMCAxLjUtLjY3MiAxLjUtMS41cy0uNjcyLTEuNS0xLjUtMS41LTEuNS42NzItMS41IDEuNS42NzIgMS41IDEuNSAxLjV6bTAgMWMtMS4zODEgMC0yLjUtMS4xMTktMi41LTIuNXMxLjExOS0yLjUgMi41LTIuNSAyLjUgMS4xMTkgMi41IDIuNS0xLjExOSAyLjUtMi41IDIuNXpNMTcuNSAyMWMuODI4IDAgMS41LS42NzIgMS41LTEuNXMtLjY3Mi0xLjUtMS41LTEuNS0xLjUuNjcyLTEuNSAxLjUuNjcyIDEuNSAxLjUgMS41em0wIDFjLTEuMzgxIDAtMi41LTEuMTE5LTIuNS0yLjVzMS4xMTktMi41IDIuNS0yLjUgMi41IDEuMTE5IDIuNSAyLjUtMS4xMTkgMi41LTIuNSAyLjV6TTI0LjUgMTRjLjgyOCAwIDEuNS0uNjcyIDEuNS0xLjVzLS42NzItMS41LTEuNS0xLjUtMS41LjY3Mi0xLjUgMS41LjY3MiAxLjUgMS41IDEuNXptMCAxYy0xLjM4MSAwLTIuNS0xLjExOS0yLjUtMi41czEuMTE5LTIuNSAyLjUtMi41IDIuNSAxLjExOSAyLjUgMi41LTEuMTE5IDIuNS0yLjUgMi41ek0zLjUgMjFjLjgyOCAwIDEuNS0uNjcyIDEuNS0xLjVzLS42NzItMS41LTEuNS0xLjUtMS41LjY3Mi0xLjUgMS41LjY3MiAxLjUgMS41IDEuNXptMCAxYy0xLjM4MSAwLTIuNS0xLjExOS0yLjUtMi41czEuMTE5LTIuNSAyLjUtMi41IDIuNSAxLjExOSAyLjUgMi41LTEuMTE5IDIuNS0yLjUgMi41eiIvPjxwYXRoIGQ9Ik0xMS4xNDggN2gtMS4wOTh2LTQuMTM3Yy0uNDAxLjM3NS0uODc0LjY1Mi0xLjQxOC44MzJ2LS45OTZjLjI4Ni0uMDk0LjU5OC0uMjcxLjkzNC0uNTMzLjMzNi0uMjYyLjU2Ni0uNTY3LjY5MS0uOTE2aC44OTF2NS43NXoiLz48cGF0aCBkPSJNMjMuMzU1IDUuNTI3bDEuMDk0LS4xMTNjLjAzMS4yNDcuMTI0LjQ0My4yNzcuNTg4LjE1NC4xNDUuMzMxLjIxNy41MzEuMjE3LjIyOSAwIC40MjMtLjA5My41ODItLjI3OS4xNTktLjE4Ni4yMzgtLjQ2Ny4yMzgtLjg0MiAwLS4zNTItLjA3OS0uNjE1LS4yMzYtLjc5MS0uMTU4LS4xNzYtLjM2My0uMjY0LS42MTUtLjI2NC0uMzE1IDAtLjU5OC4xMzktLjg0OC40MThsLS44OTEtLjEyOS41NjMtMi45OGgyLjkwMnYxLjAyN2gtMi4wN2wtLjE3Mi45NzNjLjI0NS0uMTIyLjQ5NS0uMTg0Ljc1LS4xODQuNDg3IDAgLjkuMTc3IDEuMjM4LjUzMS4zMzkuMzU0LjUwOC44MTQuNTA4IDEuMzc5IDAgLjQ3MS0uMTM3Ljg5Mi0uNDEgMS4yNjItLjM3Mi41MDUtLjg4OS43NTgtMS41NTEuNzU4LS41MjkgMC0uOTYtLjE0Mi0xLjI5My0uNDI2LS4zMzMtLjI4NC0uNTMzLS42NjUtLjU5OC0xLjE0NXoiLz48L2c+PC9zdmc+J30sMjI0NTI0KGwpe2wuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyOCAyOCIgd2lkdGg9IjI4IiBoZWlnaHQ9IjI4Ij48ZyBmaWxsPSJjdXJyZW50Q29sb3IiPjxwYXRoIGZpbGwtcnVsZT0ibm9uemVybyIgZD0iTTUuMjM4IDE4LjQ2OWw0LjE3LTQuMTctLjcwNy0uNzA3LTQuMTcgNC4xN3pNMTYuNDcgMTcuNzYzbC0uNzA3LjcwNy00LjI2NS00LjI2NS43MDctLjcwN3pNMjIuNzQ3IDEzLjU0NmwtNC4xOTIgNC4xOTIuNzA3LjcwNyA0LjE5Mi00LjE5MnoiLz48cGF0aCBmaWxsLXJ1bGU9Im5vbnplcm8iIGQ9Ik0xMC41IDE0Yy44MjggMCAxLjUtLjY3MiAxLjUtMS41cy0uNjcyLTEuNS0xLjUtMS41LTEuNS42NzItMS41IDEuNS42NzIgMS41IDEuNSAxLjV6bTAgMWMtMS4zODEgMC0yLjUtMS4xMTktMi41LTIuNXMxLjExOS0yLjUgMi41LTIuNSAyLjUgMS4xMTkgMi41IDIuNS0xLjExOSAyLjUtMi41IDIuNXpNMTcuNSAyMWMuODI4IDAgMS41LS42NzIgMS41LTEuNXMtLjY3Mi0xLjUtMS41LTEuNS0xLjUuNjcyLTEuNSAxLjUuNjcyIDEuNSAxLjUgMS41em0wIDFjLTEuMzgxIDAtMi41LTEuMTE5LTIuNS0yLjVzMS4xMTktMi41IDIuNS0yLjUgMi41IDEuMTE5IDIuNSAyLjUtMS4xMTkgMi41LTIuNSAyLjV6TTI0LjUgMTRjLjgyOCAwIDEuNS0uNjcyIDEuNS0xLjVzLS42NzItMS41LTEuNS0xLjUtMS41LjY3Mi0xLjUgMS41LjY3MiAxLjUgMS41IDEuNXptMCAxYy0xLjM4MSAwLTIuNS0xLjExOS0yLjUtMi41czEuMTE5LTIuNSAyLjUtMi41IDIuNSAxLjExOSAyLjUgMi41LTEuMTE5IDIuNS0yLjUgMi41ek0zLjUgMjFjLjgyOCAwIDEuNS0uNjcyIDEuNS0xLjVzLS42NzItMS41LTEuNS0xLjUtMS41LjY3Mi0xLjUgMS41LjY3MiAxLjUgMS41IDEuNXptMCAxYy0xLjM4MSAwLTIuNS0xLjExOS0yLjUtMi41czEuMTE5LTIuNSAyLjUtMi41IDIuNSAxLjExOSAyLjUgMi41LTEuMTE5IDIuNS0yLjUgMi41eiIvPjxwYXRoIGQ9Ik0xMy43NDYgN2gtMS4yNThsLS41LTEuMzAxaC0yLjI4OWwtLjQ3MyAxLjMwMWgtMS4yMjdsMi4yMy01LjcyN2gxLjIyM2wyLjI5MyA1LjcyN3ptLTIuMTI5LTIuMjY2bC0uNzg5LTIuMTI1LS43NzMgMi4xMjVoMS41NjN6Ii8+PHBhdGggZD0iTTIyLjU4MiA3di01LjcyN2g0LjI0NnYuOTY5aC0zLjA5djEuMjdoMi44NzV2Ljk2NWgtMi44NzV2MS41NTloMy4xOTl2Ljk2NXoiLz48L2c+PC9zdmc+J30sNzA4NzI2KGwpewpsLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMjggMjgiIHdpZHRoPSIyOCIgaGVpZ2h0PSIyOCI+PGcgZmlsbD0iY3VycmVudENvbG9yIj48cGF0aCBmaWxsLXJ1bGU9Im5vbnplcm8iIGQ9Ik01LjIzOCAxOC40NjlsNC4xNy00LjE3LS43MDctLjcwNy00LjE3IDQuMTd6TTE2LjQ3IDE3Ljc2M2wtLjcwNy43MDctNC4yNjUtNC4yNjUuNzA3LS43MDd6TTIyLjc0NyAxMy41NDZsLTQuMTkyIDQuMTkyLjcwNy43MDcgNC4xOTItNC4xOTJ6Ii8+PHBhdGggZmlsbC1ydWxlPSJub256ZXJvIiBkPSJNMTAuNSAxNGMuODI4IDAgMS41LS42NzIgMS41LTEuNXMtLjY3Mi0xLjUtMS41LTEuNS0xLjUuNjcyLTEuNSAxLjUuNjcyIDEuNSAxLjUgMS41em0wIDFjLTEuMzgxIDAtMi41LTEuMTE5LTIuNS0yLjVzMS4xMTktMi41IDIuNS0yLjUgMi41IDEuMTE5IDIuNSAyLjUtMS4xMTkgMi41LTIuNSAyLjV6TTE3LjUgMjFjLjgyOCAwIDEuNS0uNjcyIDEuNS0xLjVzLS42NzItMS41LTEuNS0xLjUtMS41LjY3Mi0xLjUgMS41LjY3MiAxLjUgMS41IDEuNXptMCAxYy0xLjM4MSAwLTIuNS0xLjExOS0yLjUtMi41czEuMTE5LTIuNSAyLjUtMi41IDIuNSAxLjExOSAyLjUgMi41LTEuMTE5IDIuNS0yLjUgMi41ek0yNC41IDE0Yy44MjggMCAxLjUtLjY3MiAxLjUtMS41cy0uNjcyLTEuNS0xLjUtMS41LTEuNS42NzItMS41IDEuNS42NzIgMS41IDEuNSAxLjV6bTAgMWMtMS4zODEgMC0yLjUtMS4xMTktMi41LTIuNXMxLjExOS0yLjUgMi41LTIuNSAyLjUgMS4xMTkgMi41IDIuNS0xLjExOSAyLjUtMi41IDIuNXpNMy41IDIxYy44MjggMCAxLjUtLjY3MiAxLjUtMS41cy0uNjcyLTEuNS0xLjUtMS41LTEuNS42NzItMS41IDEuNS42NzIgMS41IDEuNSAxLjV6bTAgMWMtMS4zODEgMC0yLjUtMS4xMTktMi41LTIuNXMxLjExOS0yLjUgMi41LTIuNSAyLjUgMS4xMTkgMi41IDIuNS0xLjExOSAyLjUtMi41IDIuNXoiLz48cGF0aCBkPSJNOC4zOTUgN2wtMS4zNjctNS43MjdoMS4xODRsLjg2MyAzLjkzNCAxLjA0Ny0zLjkzNGgxLjM3NWwxLjAwNCA0IC44NzktNGgxLjE2NGwtMS4zOTEgNS43MjdoLTEuMjI3bC0xLjE0MS00LjI4MS0xLjEzNyA0LjI4MXoiLz48cGF0aCBkPSJNMjIuMDg2IDd2LTEuMDQzbDMuMDA4LTMuNzE1aC0yLjY2OHYtLjk2OWg0LjE5MXYuODk4bC0zLjEzNyAzLjg2M2gzLjI1OHYuOTY1eiIvPjwvZz48L3N2Zz4nfSw4MjUzNDQobCl7bC5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDI4IDI4IiB3aWR0aD0iMjgiIGhlaWdodD0iMjgiPjxnIGZpbGw9ImN1cnJlbnRDb2xvciIgZmlsbC1ydWxlPSJub256ZXJvIj48cGF0aCBkPSJNMTIuNDM1IDYuMTM2Yy00LjQxMS41ODktNy45ODMgMy4wMzktOS4wODUgNi4yN2wuOTQ2LjMyM2MuOTY3LTIuODM2IDQuMjA5LTUuMDU5IDguMjcxLTUuNjAybC0uMTMyLS45OTF6TTMuMzQ3IDE2LjU4NGMxLjEwMSAzLjI0MyA0LjY4OSA1LjcwMSA5LjExNyA2LjI4M2wuMTMtLjk5MWMtNC4wNzktLjUzNy03LjMzNS0yLjc2Ny04LjMwMS01LjYxM2wtLjk0Ny4zMjF6TTE2LjU1NCAyMi44NjVjNC4zODEtLjU4MiA3Ljk0LTMgOS4wNzEtNi4ybC0uOTQzLS4zMzNjLS45OTQgMi44MTEtNC4yMjQgNS4wMDYtOC4yNiA1LjU0MmwuMTMyLjk5MXpNMjUuNjQ2IDEyLjM5NGMtMS4xMDctMy4yMjUtNC42NzUtNS42NjgtOS4wNzgtNi4yNTdsLS4xMzMuOTkxYzQuMDU2LjU0MiA3LjI5MyAyLjc2IDguMjY1IDUuNTkxbC45NDYtLjMyNXoiLz48cGF0aCBkPSJNMTQuNSA4Yy44MjggMCAxLjUtLjY3MiAxLjUtMS41cy0uNjcyLTEuNS0xLjUtMS41LTEuNS42NzItMS41IDEuNS42NzIgMS41IDEuNSAxLjV6bTAgMWMtMS4zODEgMC0yLjUtMS4xMTktMi41LTIuNXMxLjExOS0yLjUgMi41LTIuNSAyLjUgMS4xMTkgMi41IDIuNS0xLjExOSAyLjUtMi41IDIuNXpNMTQuNSAyNGMuODI4IDAgMS41LS42NzIgMS41LTEuNXMtLjY3Mi0xLjUtMS41LTEuNS0xLjUuNjcyLTEuNSAxLjUuNjcyIDEuNSAxLjUgMS41em0wIDFjLTEuMzgxIDAtMi41LTEuMTE5LTIuNS0yLjVzMS4xMTktMi41IDIuNS0yLjUgMi41IDEuMTE5IDIuNSAyLjUtMS4xMTkgMi41LTIuNSAyLjV6TTMuNSAxNmMuODI4IDAgMS41LS42NzIgMS41LTEuNXMtLjY3Mi0xLjUtMS41LTEuNS0xLjUuNjcyLTEuNSAxLjUuNjcyIDEuNSAxLjUgMS41em0wIDFjLTEuMzgxIDAtMi41LTEuMTE5LTIuNS0yLjVzMS4xMTktMi41IDIuNS0yLjUgMi41IDEuMTE5IDIuNSAyLjUtMS4xMTkgMi41LTIuNSAyLjV6TTI1LjUgMTZjLjgyOCAwIDEuNS0uNjcyIDEuNS0xLjVzLS42NzItMS41LTEuNS0xLjUtMS41LjY3Mi0xLjUgMS41LjY3MiAxLjUgMS41IDEuNXptMCAxYy0xLjM4MSAwLTIuNS0xLjExOS0yLjUtMi41czEuMTE5LTIuNSAyLjUtMi41IDIuNSAxLjExOSAyLjUgMi41LTEuMTE5IDIuNS0yLjUgMi41eiIvPjwvZz48L3N2Zz4nfSw5MTY5NjIobCl7CmwuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyOSAzMSIgd2lkdGg9IjI5IiBoZWlnaHQ9IjMxIj48ZyBmaWxsPSJjdXJyZW50Q29sb3IiIGZpbGwtcnVsZT0ibm9uemVybyI+PHBhdGggZD0iTTE1LjMgMjJsOC4xODctOC4xODdjLjM5NC0uMzk0LjM5NS0xLjAyOC4wMDQtMS40MThsLTQuMjQzLTQuMjQzYy0uMzk0LS4zOTQtMS4wMTktLjM5NS0xLjQwNy0uMDA2bC0xMS4zMjUgMTEuMzI1Yy0uMzgzLjM4My0uMzgzIDEuMDE4LjAwNyAxLjQwN2wxLjEyMSAxLjEyMWg3LjY1NnptLTkuNDg0LS40MTRjLS43ODEtLjc4MS0uNzc5LTIuMDQ5LS4wMDctMi44MjFsMTEuMzI1LTExLjMyNWMuNzc3LS43NzcgMi4wMzUtLjc4IDIuODIxLjAwNmw0LjI0MyA0LjI0M2MuNzgxLjc4MS43OCAyLjA0OC0uMDA0IDIuODMybC04LjQ4IDguNDhoLTguNDg0bC0xLjQxNC0xLjQxNHoiLz48cGF0aCBkPSJNMTMuMDExIDIyLjk5OWg3Ljk5OXYtMWgtNy45OTl6TTEzLjUwMSAxMS4yOTRsNi43MTcgNi43MTcuNzA3LS43MDctNi43MTctNi43MTd6Ii8+PC9nPjwvc3ZnPid9LDc0NTc4MShsKXtsLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMjggMjgiIHdpZHRoPSIyOCIgaGVpZ2h0PSIyOCI+PGcgZmlsbD0iY3VycmVudENvbG9yIiBmaWxsLXJ1bGU9Im5vbnplcm8iPjxwYXRoIGQ9Ik00LjM1NCAyNS4zNTRsNS01LS43MDctLjcwNy01IDV6Ii8+PHBhdGggZD0iTTEyLjM1NCAxNy4zNTRsNS01LS43MDctLjcwNy01IDV6Ii8+PHBhdGggZD0iTTIwLjM1NCA5LjM1NGw1LTUtLjcwNy0uNzA3LTUgNXoiLz48cGF0aCBkPSJNMTguNSAxMmMuODI4IDAgMS41LS42NzIgMS41LTEuNXMtLjY3Mi0xLjUtMS41LTEuNS0xLjUuNjcyLTEuNSAxLjUuNjcyIDEuNSAxLjUgMS41em0wIDFjLTEuMzgxIDAtMi41LTEuMTE5LTIuNS0yLjVzMS4xMTktMi41IDIuNS0yLjUgMi41IDEuMTE5IDIuNSAyLjUtMS4xMTkgMi41LTIuNSAyLjV6TTEwLjUgMjBjLjgyOCAwIDEuNS0uNjcyIDEuNS0xLjVzLS42NzItMS41LTEuNS0xLjUtMS41LjY3Mi0xLjUgMS41LjY3MiAxLjUgMS41IDEuNXptMCAxYy0xLjM4MSAwLTIuNS0xLjExOS0yLjUtMi41czEuMTE5LTIuNSAyLjUtMi41IDIuNSAxLjExOSAyLjUgMi41LTEuMTE5IDIuNS0yLjUgMi41eiIvPjwvZz48L3N2Zz4nfSwyODYyNTEobCl7bC5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDI4IDI4IiB3aWR0aD0iMjgiIGhlaWdodD0iMjgiPjxnIGZpbGw9ImN1cnJlbnRDb2xvciIgZmlsbC1ydWxlPSJub256ZXJvIj48cGF0aCBkPSJNNy40NjMgMTIuMDI2bDEzLjUzNy03LjE2Ny0uNDY4LS44ODQtMTMuNTM3IDcuMTY3eiIvPjxwYXRoIGQ9Ik0yMi43MDggMTYuODI0bC0xNy44ODQgOS40NjguNDY4Ljg4NCAxNy44ODQtOS40Njh6Ii8+PHBhdGggZD0iTTIyLjcwOCA5LjgyNGwtMTUuODM5IDguMzg2LjQ2OC44ODQgMTUuODM5LTguMzg2eiIvPjxwYXRoIGQ9Ik01LjUgMTRjLjgyOCAwIDEuNS0uNjcyIDEuNS0xLjVzLS42NzItMS41LTEuNS0xLjUtMS41LjY3Mi0xLjUgMS41LjY3MiAxLjUgMS41IDEuNXptMCAxYy0xLjM4MSAwLTIuNS0xLjExOS0yLjUtMi41czEuMTE5LTIuNSAyLjUtMi41IDIuNSAxLjExOSAyLjUgMi41LTEuMTE5IDIuNS0yLjUgMi41ek01LjUgMjFjLjgyOCAwIDEuNS0uNjcyIDEuNS0xLjVzLS42NzItMS41LTEuNS0xLjUtMS41LjY3Mi0xLjUgMS41LjY3MiAxLjUgMS41IDEuNXptMCAxYy0xLjM4MSAwLTIuNS0xLjExOS0yLjUtMi41czEuMTE5LTIuNSAyLjUtMi41IDIuNSAxLjExOSAyLjUgMi41LTEuMTE5IDIuNS0yLjUgMi41ek0yMi41IDVjLjgyOCAwIDEuNS0uNjcyIDEuNS0xLjVzLS42NzItMS41LTEuNS0xLjUtMS41LjY3Mi0xLjUgMS41LjY3MiAxLjUgMS41IDEuNXptMCAxYy0xLjM4MSAwLTIuNS0xLjExOS0yLjUtMi41czEuMTE5LTIuNSAyLjUtMi41IDIuNSAxLjExOSAyLjUgMi41LTEuMTE5IDIuNS0yLjUgMi41eiIvPjwvZz48L3N2Zz4nfSw3NTIzODkobCl7CmwuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyOCAyOCIgd2lkdGg9IjI4IiBoZWlnaHQ9IjI4Ij48ZyBmaWxsPSJjdXJyZW50Q29sb3IiIGZpbGwtcnVsZT0ibm9uemVybyI+PHBhdGggZD0iTTIzLjg2OCA3LjgyNWMyLjc5MSAzLjkxNiAyLjkxOCA5LjMzLS4wNjUgMTMuNDM1LTMuNzMzIDUuMTM4LTEwLjkyNSA2LjI3Ny0xNi4wNjMgMi41NDRsLjcyMS0uNzE0YzQuNjgyIDMuMjk0IDExLjE1NyAyLjIyOSAxNC41MzQtMi40MTggMi42NDEtMy42MzUgMi42NTctOC41MDIuMTUzLTEyLjEzM2wuNzIxLS43MTR6Ii8+PHBhdGggZD0iTTguNDc3IDUuODk5YzMuNTg0LTIuNTA5IDguMjk4LTIuNTE0IDExLjg2NS0uMTI3bC43MTgtLjcyMWMtMy44NDUtMi42NjktOS4wOTktMi44MTMtMTMuMTU3LjAyOC01LjIwMyAzLjY0My02LjQ2NyAxMC44MTQtMi44MjQgMTYuMDE2bC43MTgtLjcyMWMtMy4yMDEtNC43MzctMi4wMjItMTEuMTg1IDIuNjgtMTQuNDc2eiIvPjxwYXRoIGQ9Ik0xNC41IDIyYzQuMTQyIDAgNy41LTMuMzU4IDcuNS03LjUgMC00LjE0Mi0zLjM1OC03LjUtNy41LTcuNS00LjE0MiAwLTcuNSAzLjM1OC03LjUgNy41IDAgNC4xNDIgMy4zNTggNy41IDcuNSA3LjV6bTAgMWMtNC42OTQgMC04LjUtMy44MDYtOC41LTguNXMzLjgwNi04LjUgOC41LTguNSA4LjUgMy44MDYgOC41IDguNS0zLjgwNiA4LjUtOC41IDguNXoiLz48cGF0aCBkPSJNMTQuNSAxOWMyLjQ4NSAwIDQuNS0yLjAxNSA0LjUtNC41cy0yLjAxNS00LjUtNC41LTQuNS00LjUgMi4wMTUtNC41IDQuNSAyLjAxNSA0LjUgNC41IDQuNXptMCAxYy0zLjAzOCAwLTUuNS0yLjQ2Mi01LjUtNS41czIuNDYyLTUuNSA1LjUtNS41IDUuNSAyLjQ2MiA1LjUgNS41LTIuNDYyIDUuNS01LjUgNS41eiIvPjxwYXRoIGQ9Ik0yMi41IDhjLjgyOCAwIDEuNS0uNjcyIDEuNS0xLjVzLS42NzItMS41LTEuNS0xLjUtMS41LjY3Mi0xLjUgMS41LjY3MiAxLjUgMS41IDEuNXptMCAxYy0xLjM4MSAwLTIuNS0xLjExOS0yLjUtMi41czEuMTE5LTIuNSAyLjUtMi41IDIuNSAxLjExOSAyLjUgMi41LTEuMTE5IDIuNS0yLjUgMi41ek02LjUgMjRjLjgyOCAwIDEuNS0uNjcyIDEuNS0xLjVzLS42NzItMS41LTEuNS0xLjUtMS41LjY3Mi0xLjUgMS41LjY3MiAxLjUgMS41IDEuNXptMCAxYy0xLjM4MSAwLTIuNS0xLjExOS0yLjUtMi41czEuMTE5LTIuNSAyLjUtMi41IDIuNSAxLjExOSAyLjUgMi41LTEuMTE5IDIuNS0yLjUgMi41eiIvPjwvZz48L3N2Zz4nfSw4NDk2ODQobCl7bC5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDI4IDI4IiB3aWR0aD0iMjgiIGhlaWdodD0iMjgiPjxnIGZpbGw9ImN1cnJlbnRDb2xvciIgZmlsbC1ydWxlPSJub256ZXJvIj48cGF0aCBkPSJNMyA1aDIydi0xaC0yMnoiLz48cGF0aCBkPSJNMyAxN2gyMnYtMWgtMjJ6Ii8+PHBhdGggZD0iTTMgMTFoMTkuNXYtMWgtMTkuNXoiLz48cGF0aCBkPSJNNS41IDIzaDE5LjV2LTFoLTE5LjV6Ii8+PHBhdGggZD0iTTMuNSAyNGMuODI4IDAgMS41LS42NzIgMS41LTEuNXMtLjY3Mi0xLjUtMS41LTEuNS0xLjUuNjcyLTEuNSAxLjUuNjcyIDEuNSAxLjUgMS41em0wIDFjLTEuMzgxIDAtMi41LTEuMTE5LTIuNS0yLjVzMS4xMTktMi41IDIuNS0yLjUgMi41IDEuMTE5IDIuNSAyLjUtMS4xMTkgMi41LTIuNSAyLjV6TTI0LjUgMTJjLjgyOCAwIDEuNS0uNjcyIDEuNS0xLjVzLS42NzItMS41LTEuNS0xLjUtMS41LjY3Mi0xLjUgMS41LjY3MiAxLjUgMS41IDEuNXptMCAxYy0xLjM4MSAwLTIuNS0xLjExOS0yLjUtMi41czEuMTE5LTIuNSAyLjUtMi41IDIuNSAxLjExOSAyLjUgMi41LTEuMTE5IDIuNS0yLjUgMi41eiIvPjwvZz48L3N2Zz4nfSwyNzIyMTUobCl7bC5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDI4IDI4IiB3aWR0aD0iMjgiIGhlaWdodD0iMjgiPjxnIGZpbGw9ImN1cnJlbnRDb2xvciIgZmlsbC1ydWxlPSJub256ZXJvIj48cGF0aCBkPSJNOCA5LjVjMCAzLjAzOCAyLjQ2MiA1LjUgNS41IDUuNXM1LjUtMi40NjIgNS41LTUuNXYtLjVoLTF2LjVjMCAyLjQ4NS0yLjAxNSA0LjUtNC41IDQuNXMtNC41LTIuMDE1LTQuNS00LjV2LS41aC0xdi41eiIvPjxwYXRoIGQ9Ik0wIDkuNWMwIDcuNDU2IDYuMDQ0IDEzLjUgMTMuNSAxMy41czEzLjUtNi4wNDQgMTMuNS0xMy41di0uNWgtMXYuNWMwIDYuOTA0LTUuNTk2IDEyLjUtMTIuNSAxMi41cy0xMi41LTUuNTk2LTEyLjUtMTIuNXYtLjVoLTF2LjV6Ii8+PHBhdGggZD0iTTQgOS41YzAgNC4yNTkgMi44MjggNy45NjQgNi44NiA5LjEyOGwuNDguMTM5LjI3Ny0uOTYxLS40OC0uMTM5Yy0zLjYwNy0xLjA0MS02LjEzNy00LjM1Ni02LjEzNy04LjE2N3YtLjVoLTF2LjV6Ii8+PHBhdGggZD0iTTE2LjE0MSAxOC42MjhjNC4wMzItMS4xNjUgNi44NTktNC44NjkgNi44NTktOS4xMjh2LS41aC0xdi41YzAgMy44MTEtMi41MyA3LjEyNS02LjEzNiA4LjE2N2wtLjQ4LjEzOS4yNzguOTYxLjQ4LS4xMzl6Ii8+PHBhdGggZD0iTTEzLjUgMjBjLjgyOCAwIDEuNS0uNjcyIDEuNS0xLjVzLS42NzItMS41LTEuNS0xLjUtMS41LjY3Mi0xLjUgMS41LjY3MiAxLjUgMS41IDEuNXptMCAxYy0xLjM4MSAwLTIuNS0xLjExOS0yLjUtMi41czEuMTE5LTIuNSAyLjUtMi41IDIuNSAxLjExOSAyLjUgMi41LTEuMTE5IDIuNS0yLjUgMi41ek0xMy41IDExYy44MjggMCAxLjUtLjY3MiAxLjUtMS41cy0uNjcyLTEuNS0xLjUtMS41LTEuNS42NzItMS41IDEuNS42NzIgMS41IDEuNSAxLjV6bTAgMWMtMS4zODEgMC0yLjUtMS4xMTktMi41LTIuNXMxLjExOS0yLjUgMi41LTIuNSAyLjUgMS4xMTkgMi41IDIuNS0xLjExOSAyLjUtMi41IDIuNXoiLz48L2c+PC9zdmc+J30sNzc0NjM1KGwpewpsLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMjggMjgiIHdpZHRoPSIyOCIgaGVpZ2h0PSIyOCI+PGcgZmlsbD0iY3VycmVudENvbG9yIiBmaWxsLXJ1bGU9Im5vbnplcm8iPjxwYXRoIGQ9Ik00IDJ2MTkuNWgxdi0xOS41ek0xNS41IDEwaC0xMXYxaDExek0xNyAxMi41djExaDF2LTExek02LjI5IDIyLjQxN2wxMC4xNjItMTAuMTYyLS43MDctLjcwNy0xMC4xNjIgMTAuMTYyeiIgaWQ9IkxpbmUiLz48cGF0aCBkPSJNMTkuMjY0IDkuNDQzbDYuNTg5LTYuNTg5LS43MDctLjcwNy02LjU4OSA2LjU4OXoiLz48cGF0aCBkPSJNNi41NzcgMjMuMzgxbDE5LjA3MS01LjkwMy0uMjk2LS45NTUtMTkuMDcxIDUuOTAzeiIvPjxwYXRoIGQ9Ik01LjU3MyAyMS43MjRsNS45MDUtMTkuMDc2LS45NTUtLjI5Ni01LjkwNSAxOS4wNzZ6Ii8+PHBhdGggZD0iTTYuNSAyNGgxOS41di0xaC0xOS41eiIvPjxwYXRoIGQ9Ik00LjUgMjVjLjgyOCAwIDEuNS0uNjcyIDEuNS0xLjVzLS42NzItMS41LTEuNS0xLjUtMS41LjY3Mi0xLjUgMS41LjY3MiAxLjUgMS41IDEuNXptMCAxYy0xLjM4MSAwLTIuNS0xLjExOS0yLjUtMi41czEuMTE5LTIuNSAyLjUtMi41IDIuNSAxLjExOSAyLjUgMi41LTEuMTE5IDIuNS0yLjUgMi41ek0xNy41IDEyYy44MjggMCAxLjUtLjY3MiAxLjUtMS41cy0uNjcyLTEuNS0xLjUtMS41LTEuNS42NzItMS41IDEuNS42NzIgMS41IDEuNSAxLjV6bTAgMWMtMS4zODEgMC0yLjUtMS4xMTktMi41LTIuNXMxLjExOS0yLjUgMi41LTIuNSAyLjUgMS4xMTkgMi41IDIuNS0xLjExOSAyLjUtMi41IDIuNXoiLz48L2c+PC9zdmc+J30sMjk1NTA5KGwpe2wuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyOCAyOCIgd2lkdGg9IjI4IiBoZWlnaHQ9IjI4Ij48ZyBmaWxsPSJjdXJyZW50Q29sb3IiIGZpbGwtcnVsZT0ibm9uemVybyI+PHBhdGggZD0iTTQuMzk1IDEwLjE4YzMuNDMyLTQuNDEyIDEwLjA2NS00Ljk5OCAxMy42NzUtLjk3M2wuNzQ1LS42NjhjLTQuMDQ0LTQuNTA5LTExLjQwOS0zLjg1OC0xNS4yMDkgMS4wMjdsLjc4OS42MTR6Ii8+PHBhdGggZD0iTTE5Ljk5MSAxMi40OTRjLjg3NyAyLjcxOC4yMzEgNS40ODctMS44OTcgNy41NDMtMi42NDYgMi41NTYtNi43NTIgMi44My05LjE4OC40NzctMS45OTItMS45MjQtMi4wMjctNS4zOC0uMDU5LTcuMjgxIDEuNTgyLTEuNTI4IDMuNzgtMS41ODcgNS4zMDUtLjExNSAxLjAyNC45OSAxLjM4NiAyLjQyNC44NzYgMy40OTFsLjkwMi40MzFjLjcwOS0xLjQ4Mi4yMzItMy4zNy0xLjA4NC00LjY0MS0xLjkyMS0xLjg1NS00LjczNC0xLjc4LTYuNjk1LjExNS0yLjM3OCAyLjI5Ny0yLjMzNyA2LjQwNS4wNTkgOC43MTkgMi44NDYgMi43NDkgNy41NjMgMi40MzUgMTAuNTc3LS40NzcgMi40MDctMi4zMjUgMy4xNDctNS40OTMgMi4xNTQtOC41NjlsLS45NTIuMzA3eiIvPjxwYXRoIGQ9Ik0yMS4wMSA5LjY5N2wzLjE5Ny0zLjE5Ny0uNzA3LS43MDctMy4xOTcgMy4xOTd6Ii8+PHBhdGggZD0iTTE0Ljk4OSAxNS43MTlsMy42NzQtMy42NzQtLjcwNy0uNzA3LTMuNjc0IDMuNjc0eiIvPjxwYXRoIGQ9Ik0xMy41IDE4Yy44MjggMCAxLjUtLjY3MiAxLjUtMS41cy0uNjcyLTEuNS0xLjUtMS41LTEuNS42NzItMS41IDEuNS42NzIgMS41IDEuNSAxLjV6bTAgMWMtMS4zODEgMC0yLjUtMS4xMTktMi41LTIuNXMxLjExOS0yLjUgMi41LTIuNSAyLjUgMS4xMTkgMi41IDIuNS0xLjExOSAyLjUtMi41IDIuNXpNMTkuNSAxMmMuODI4IDAgMS41LS42NzIgMS41LTEuNXMtLjY3Mi0xLjUtMS41LTEuNS0xLjUuNjcyLTEuNSAxLjUuNjcyIDEuNSAxLjUgMS41em0wIDFjLTEuMzgxIDAtMi41LTEuMTE5LTIuNS0yLjVzMS4xMTktMi41IDIuNS0yLjUgMi41IDEuMTE5IDIuNSAyLjUtMS4xMTkgMi41LTIuNSAyLjV6Ii8+PC9nPjwvc3ZnPid9LDQwNjY5NihsKXtsLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMjggMjgiIHdpZHRoPSIyOCIgaGVpZ2h0PSIyOCI+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xOSA0djIxaDFWNGgtMVptNSAwdjIxaDFWNGgtMVpNNiAxMi45NVYyNUg1VjEyLjk1YTIuNSAyLjUgMCAwIDEgMC00LjlWNGgxdjQuMDVhMi41IDIuNSAwIDAgMSAxLjY3IDMuN0w4LjcgMTIuOCA4IDEzLjVsLTEtMWMtLjMuMjItLjYzLjM4LTEgLjQ1Wk01LjUgOWExLjUgMS41IDAgMSAxIDAgMyAxLjUgMS41IDAgMCAxIDAtM1pNMTMgMTkuNWExLjUgMS41IDAgMSAxIDMgMCAxLjUgMS41IDAgMCAxLTMgMFptMSA1LjV2LTMuMDVBMi41IDIuNSAwIDAgMSAxMi41IDE4bC0xLTEgLjctLjcgMS4wNSAxLjAzYy4yMy0uMTMuNDgtLjIzLjc1LS4yOFY0aDF2MTMuMDVhMi41IDIuNSAwIDAgMSAwIDQuOVYyNWgtMVpNOC45NyAxNC40N2wxLjU2IDEuNTYuNy0uNzEtMS41NS0xLjU1LS43LjdaIi8+PC9zdmc+J30sODk4ODIobCl7CmwuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyOCAyOCIgd2lkdGg9IjI4IiBoZWlnaHQ9IjI4Ij48ZyBmaWxsPSJjdXJyZW50Q29sb3IiIGZpbGwtcnVsZT0ibm9uemVybyI+PHBhdGggZD0iTTIxLjUgMjNoLTE0djFoMTR6TTUgNy41djE0aDF2LTE0eiIvPjxwYXRoIGQ9Ik0xMiAyM2MwLTMuMzE0LTIuNjg2LTYtNi02aC0uNXYxaC41YzIuNzYxIDAgNSAyLjIzOSA1IDV2LjVoMXYtLjV6Ii8+PHBhdGggZD0iTTIwIDIzYzAtNy43MzItNi4yNjgtMTQtMTQtMTRoLS41djFoLjVjNy4xOCAwIDEzIDUuODIgMTMgMTN2LjVoMXYtLjV6Ii8+PHBhdGggZD0iTTE2IDIzYzAtNS41MjMtNC40NzctMTAtMTAtMTBoLS41djFoLjVjNC45NzEgMCA5IDQuMDI5IDkgOXYuNWgxdi0uNXoiLz48cGF0aCBkPSJNNS41IDdjLjgyOCAwIDEuNS0uNjcyIDEuNS0xLjVzLS42NzItMS41LTEuNS0xLjUtMS41LjY3Mi0xLjUgMS41LjY3MiAxLjUgMS41IDEuNXptMCAxYy0xLjM4MSAwLTIuNS0xLjExOS0yLjUtMi41czEuMTE5LTIuNSAyLjUtMi41IDIuNSAxLjExOSAyLjUgMi41LTEuMTE5IDIuNS0yLjUgMi41ek0yMy41IDI1Yy44MjggMCAxLjUtLjY3MiAxLjUtMS41cy0uNjcyLTEuNS0xLjUtMS41LTEuNS42NzItMS41IDEuNS42NzIgMS41IDEuNSAxLjV6bTAgMWMtMS4zODEgMC0yLjUtMS4xMTktMi41LTIuNXMxLjExOS0yLjUgMi41LTIuNSAyLjUgMS4xMTkgMi41IDIuNS0xLjExOSAyLjUtMi41IDIuNXpNNS41IDI1Yy44MjggMCAxLjUtLjY3MiAxLjUtMS41cy0uNjcyLTEuNS0xLjUtMS41LTEuNS42NzItMS41IDEuNS42NzIgMS41IDEuNSAxLjV6bTAgMWMtMS4zODEgMC0yLjUtMS4xMTktMi41LTIuNXMxLjExOS0yLjUgMi41LTIuNSAyLjUgMS4xMTkgMi41IDIuNS0xLjExOSAyLjUtMi41IDIuNXoiLz48L2c+PC9zdmc+J30sNjA1NTk1KGwpe2wuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyOCAyOCIgd2lkdGg9IjI4IiBoZWlnaHQ9IjI4IiBmaWxsPSJub25lIj48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNNSAyMS41YTEuNSAxLjUgMCAxIDEtMyAwIDEuNSAxLjUgMCAwIDEgMyAwek0zLjUgMjRhMi41IDIuNSAwIDAgMCAuNS00Ljk1VjNIM3YxNi4wNUEyLjUgMi41IDAgMCAwIDMuNSAyNHpNMjUgNS41YTEuNSAxLjUgMCAxIDAtMyAwIDEuNSAxLjUgMCAwIDAgMyAwek0yMy41IDNhMi41IDIuNSAwIDAgMSAuNSA0Ljk1VjI0aC0xVjcuOTVBMi41IDIuNSAwIDAgMSAyMy41IDN6Ii8+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTkgN0g0djJoNVY3ek0zIDZ2NGg3VjZIM3oiLz48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMTIgMTBINHYyaDh2LTJ6TTMgOXY0aDEwVjlIM3oiLz48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNNyAxM0g0djJoM3YtMnptLTQtMXY0aDV2LTRIM3oiLz48L3N2Zz4nfSwzMzM0NjYobCl7bC5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDI4IDI4IiB3aWR0aD0iMjgiIGhlaWdodD0iMjgiPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZmlsbC1ydWxlPSJub256ZXJvIiBkPSJNNy4zODIgMTZoMTQuNDgzbC00LjE2Ny01IDQuMTY3LTVoLTE1Ljg2NXYxMi43NjRsMS4zODItMi43NjR6bS0yLjM4MiA3di0xOGgxOWwtNSA2IDUgNmgtMTZsLTMgNnoiLz48L3N2Zz4nfSw3NTkzNzEobCl7bC5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDI4IDI4IiB3aWR0aD0iMjgiIGhlaWdodD0iMjgiPjxnIGZpbGw9ImN1cnJlbnRDb2xvciIgZmlsbC1ydWxlPSJub256ZXJvIj48cGF0aCBkPSJNNy41IDIzaDEzdi0xaC0xM3oiLz48cGF0aCBkPSJNNy41NSAxMy4wODhsMTMuMjktNi4yNTQtLjQyNi0uOTA1LTEzLjI5IDYuMjU0eiIvPjxwYXRoIGQ9Ik01LjUgMjRjLjgyOCAwIDEuNS0uNjcyIDEuNS0xLjVzLS42NzItMS41LTEuNS0xLjUtMS41LjY3Mi0xLjUgMS41LjY3MiAxLjUgMS41IDEuNXptMCAxYy0xLjM4MSAwLTIuNS0xLjExOS0yLjUtMi41czEuMTE5LTIuNSAyLjUtMi41IDIuNSAxLjExOSAyLjUgMi41LTEuMTE5IDIuNS0yLjUgMi41ek01LjUgMTVjLjgyOCAwIDEuNS0uNjcyIDEuNS0xLjVzLS42NzItMS41LTEuNS0xLjUtMS41LjY3Mi0xLjUgMS41LjY3MiAxLjUgMS41IDEuNXptMCAxYy0xLjM4MSAwLTIuNS0xLjExOS0yLjUtMi41czEuMTE5LTIuNSAyLjUtMi41IDIuNSAxLjExOSAyLjUgMi41LTEuMTE5IDIuNS0yLjUgMi41ek0yMi41IDI0Yy44MjggMCAxLjUtLjY3MiAxLjUtMS41cy0uNjcyLTEuNS0xLjUtMS41LTEuNS42NzItMS41IDEuNS42NzIgMS41IDEuNSAxLjV6bTAgMWMtMS4zODEgMC0yLjUtMS4xMTktMi41LTIuNXMxLjExOS0yLjUgMi41LTIuNSAyLjUgMS4xMTkgMi41IDIuNS0xLjExOSAyLjUtMi41IDIuNXpNMjIuNSA3Yy44MjggMCAxLjUtLjY3MiAxLjUtMS41cy0uNjcyLTEuNS0xLjUtMS41LTEuNS42NzItMS41IDEuNS42NzIgMS41IDEuNSAxLjV6bTAgMWMtMS4zODEgMC0yLjUtMS4xMTktMi41LTIuNXMxLjExOS0yLjUgMi41LTIuNSAyLjUgMS4xMTkgMi41IDIuNS0xLjExOSAyLjUtMi41IDIuNXoiLz48L2c+PC9zdmc+J30sMTU5OTkzKGwpewpsLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMjggMjgiIHdpZHRoPSIyOCIgaGVpZ2h0PSIyOCI+PGcgZmlsbD0iY3VycmVudENvbG9yIj48cGF0aCBkPSJNMTkgMTFoNWwtMi41IDN6Ii8+PGNpcmNsZSBjeD0iMjEuNSIgY3k9IjE2LjUiIHI9IjEuNSIvPjxwYXRoIGZpbGwtcnVsZT0ibm9uemVybyIgZD0iTTIyIDExdi02aC0xdjZ6Ii8+PHBhdGggZD0iTTE0IDE4aDF2M2gtMXoiIGlkPSJQYXRoIi8+PHBhdGggZD0iTTE0IDVoMXY2aC0xeiIvPjxwYXRoIGQ9Ik03IDE5aDF2M2gtMXoiLz48cGF0aCBkPSJNNyA2aDF2N2gtMXoiLz48cGF0aCBmaWxsLXJ1bGU9Im5vbnplcm8iIGQ9Ik03IDEzdjZoMXYtNmgtMXptLTEtMWgzdjhoLTN2LTh6TTE0IDE4aDF2LTdoLTF2N3ptLTEtOGgzdjloLTN2LTl6Ii8+PC9nPjwvc3ZnPid9LDM4ODI3NChsKXtsLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMjggMjgiIHdpZHRoPSIyOCIgaGVpZ2h0PSIyOCI+PGcgZmlsbD0iY3VycmVudENvbG9yIiBmaWxsLXJ1bGU9Im5vbnplcm8iPjxwYXRoIGQ9Ik0zLjUgMTFoMjF2LTFoLTIxeiIvPjxwYXRoIGQ9Ik0zLjUgMThoMjF2LTFoLTIxeiIvPjxwYXRoIGQ9Ik0xMCAzLjV2MjFoMXYtMjF6Ii8+PHBhdGggZD0iTTE3IDMuNXYyMWgxdi0yMXoiLz48cGF0aCBkPSJNMjIuNSA0di0xaC0xOS41djE5LjVoMXYtMTguNXoiLz48cGF0aCBkPSJNMjQgMjRoLTE4LjUwN3YxaDE5LjUwN3YtMTkuNWgtMXoiLz48cGF0aCBkPSJNMy41IDI2Yy44MjggMCAxLjUtLjY3MiAxLjUtMS41cy0uNjcyLTEuNS0xLjUtMS41LTEuNS42NzItMS41IDEuNS42NzIgMS41IDEuNSAxLjV6bTAgMWMtMS4zODEgMC0yLjUtMS4xMTktMi41LTIuNXMxLjExOS0yLjUgMi41LTIuNSAyLjUgMS4xMTkgMi41IDIuNS0xLjExOSAyLjUtMi41IDIuNXpNMjQuNSA1Yy44MjggMCAxLjUtLjY3MiAxLjUtMS41cy0uNjcyLTEuNS0xLjUtMS41LTEuNS42NzItMS41IDEuNS42NzIgMS41IDEuNSAxLjV6bTAgMWMtMS4zODEgMC0yLjUtMS4xMTktMi41LTIuNXMxLjExOS0yLjUgMi41LTIuNSAyLjUgMS4xMTkgMi41IDIuNS0xLjExOSAyLjUtMi41IDIuNXoiLz48L2c+PC9zdmc+J30sNTMyNjY2KGwpe2wuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyOCAyOCIgd2lkdGg9IjI4IiBoZWlnaHQ9IjI4Ij48ZyBmaWxsPSJjdXJyZW50Q29sb3IiIGZpbGwtcnVsZT0ibm9uemVybyI+PHBhdGggZD0iTTcuMzU0IDIxLjM1NGw3LjA5Ny03LjA5Ny0uNzA3LS43MDctNy4wOTcgNy4wOTd6Ii8+PHBhdGggZD0iTTE3LjI0OSAxMS40NThsNy4xMDUtNy4xMDUtLjcwNy0uNzA3LTcuMTA1IDcuMTA1eiIvPjxwYXRoIGQ9Ik03LjU0MiAyMi42ODNsMTcuMjk2LTIuNzM5LS4xNTYtLjk4OC0xNy4yOTYgMi43Mzl6IiBpZD0iTGluZSIvPjxwYXRoIGQ9Ik03LjUzOCAyMi4wNjJsMTUuNzA4LTcuNjYxLS40MzgtLjg5OS0xNS43MDggNy42NjF6Ii8+PHBhdGggZD0iTTYuODAyIDIwLjk3bDcuNjk1LTE1Ljc3Ny0uODk5LS40MzgtNy42OTUgMTUuNzc3eiIvPjxwYXRoIGQ9Ik02LjI4NSAyMC43NDFsMi43Ni0xNy40MjMtLjk4OC0uMTU2LTIuNzYgMTcuNDIzeiIvPjxwYXRoIGQ9Ik01LjUgMjRjLjgyOCAwIDEuNS0uNjcyIDEuNS0xLjVzLS42NzItMS41LTEuNS0xLjUtMS41LjY3Mi0xLjUgMS41LjY3MiAxLjUgMS41IDEuNXptMCAxYy0xLjM4MSAwLTIuNS0xLjExOS0yLjUtMi41czEuMTE5LTIuNSAyLjUtMi41IDIuNSAxLjExOSAyLjUgMi41LTEuMTE5IDIuNS0yLjUgMi41ek0xNS41IDE0Yy44MjggMCAxLjUtLjY3MiAxLjUtMS41cy0uNjcyLTEuNS0xLjUtMS41LTEuNS42NzItMS41IDEuNS42NzIgMS41IDEuNSAxLjV6bTAgMWMtMS4zODEgMC0yLjUtMS4xMTktMi41LTIuNXMxLjExOS0yLjUgMi41LTIuNSAyLjUgMS4xMTkgMi41IDIuNS0xLjExOSAyLjUtMi41IDIuNXoiLz48L2c+PC9zdmc+J30sNjg1MTU5KGwpe2wuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyOCIgaGVpZ2h0PSIyOCI+PGcgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDEgMykiPjxwYXRoIGQ9Ik00LjUgMjEuNWgxOVYuNWgtMjF2MTltMC01aDVtNCAwaDEyTTMgNy41aDIwTTE2LjUgMXYyMCIvPjxwYXRoIGQ9Ik05LjUuNXYxMm0wIDR2NW0tNS42LTEuNGw0LjItNC4yTTExIDEzTDIzIDFNNC40IDIxbDE5LjEtNk0zLjEgMTkuNkw5IC41bTE0LjUgMjFhMjEgMjEgMCAwIDAtMjEtMjEiLz48Y2lyY2xlIGN4PSIyLjUiIGN5PSIyMS41IiByPSIyIi8+PGNpcmNsZSBjeD0iOS41IiBjeT0iMTQuNSIgcj0iMiIvPjwvZz48L3N2Zz4nfSw2OTgyNDYobCl7CmwuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyOCAyOCIgd2lkdGg9IjI4IiBoZWlnaHQ9IjI4Ij48ZyBmaWxsPSJjdXJyZW50Q29sb3IiIGZpbGwtcnVsZT0ibm9uemVybyI+PHBhdGggZD0iTTIyLjUgNHYtMWgtMTkuNXYxOS41aDF2LTE4LjV6Ii8+PHBhdGggZD0iTTUuNDkzIDI0djFoMTkuNTA3di0xOS41aC0xdjE4LjV6Ii8+PHBhdGggZD0iTTUuMjc1IDIzLjQzMmwxOC4yMTMtMTguMjEzLS43MDctLjcwNy0xOC4yMTMgMTguMjEzeiIvPjxwYXRoIGQ9Ik01LjU2OCAyNC4zODNsMTkuMDc5LTUuOTA2LS4yOTYtLjk1NS0xOS4wNzkgNS45MDZ6IiBpZD0iTGluZS1Db3B5LTE4Ii8+PHBhdGggZD0iTTQuNTg3IDIyLjY4bDUuODkxLTE5LjAzMi0uOTU1LS4yOTYtNS44OTEgMTkuMDMyeiIvPjxwYXRoIGQ9Ik0zLjUgMTFoMjF2LTFoLTIxeiIvPjxwYXRoIGQ9Ik0zLjUgMThoMjF2LTFoLTIxeiIvPjxwYXRoIGQ9Ik0xMCAzLjV2MjFoMXYtMjF6Ii8+PHBhdGggZD0iTTE3IDMuNXYyMWgxdi0yMXoiLz48cGF0aCBkPSJNMjMuOTc1IDIzLjQ3NWwxLjAyNSAxLjAyNWMwLTExLjg3NC05LjYyNi0yMS41LTIxLjUtMjEuNWwxLjAyNSAxLjAyNWMxMC41MDYuNTE3IDE4LjkzMiA4Ljk0NCAxOS40NSAxOS40NXoiLz48cGF0aCBkPSJNMy41IDI2Yy44MjggMCAxLjUtLjY3MiAxLjUtMS41cy0uNjcyLTEuNS0xLjUtMS41LTEuNS42NzItMS41IDEuNS42NzIgMS41IDEuNSAxLjV6bTAgMWMtMS4zODEgMC0yLjUtMS4xMTktMi41LTIuNXMxLjExOS0yLjUgMi41LTIuNSAyLjUgMS4xMTkgMi41IDIuNS0xLjExOSAyLjUtMi41IDIuNXpNMjQuNSA1Yy44MjggMCAxLjUtLjY3MiAxLjUtMS41cy0uNjcyLTEuNS0xLjUtMS41LTEuNS42NzItMS41IDEuNS42NzIgMS41IDEuNSAxLjV6bTAgMWMtMS4zODEgMC0yLjUtMS4xMTktMi41LTIuNXMxLjExOS0yLjUgMi41LTIuNSAyLjUgMS4xMTkgMi41IDIuNS0xLjExOSAyLjUtMi41IDIuNXoiLz48L2c+PC9zdmc+J30sMTY3MDQwKGwpe2wuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyOCAyOCIgd2lkdGg9IjI4IiBoZWlnaHQ9IjI4Ij48ZyBmaWxsPSJjdXJyZW50Q29sb3IiPjxwYXRoIGZpbGwtcnVsZT0ibm9uemVybyIgZD0iTTQuNTI5IDE4LjIxbDMuMTU3LTEuMjkyLS4zNzktLjkyNi0zLjE1NyAxLjI5MnoiLz48cGF0aCBmaWxsLXJ1bGU9Im5vbnplcm8iIGQ9Ik05LjczNCAxNi4wODFsMi45Ny0xLjIxNS0uMzc5LS45MjYtMi45NyAxLjIxNXoiLz48cGF0aCBmaWxsLXJ1bGU9Im5vbnplcm8iIGQ9Ik0xNC43MjUgMTQuMDM5bDIuOTU3LTEuMjEtLjM3OS0uOTI2LTIuOTU3IDEuMjF6Ii8+PHBhdGggZmlsbC1ydWxlPSJub256ZXJvIiBkPSJNMTkuNzA4IDEyLjAwMWwzLjExNC0xLjI3NC0uMzc5LS45MjYtMy4xMTQgMS4yNzR6Ii8+PHBhdGggZD0iTTggMThoMXYzaC0xeiIgaWQ9IlBhdGgiLz48cGF0aCBkPSJNOCA5aDF2NWgtMXoiLz48cGF0aCBmaWxsLXJ1bGU9Im5vbnplcm8iIGQ9Ik04IDE4aDF2LTRoLTF2NHptLTEtNWgzdjZoLTN2LTZ6IiBpZD0iUmVjdGFuZ2xlLTQ0Ii8+PHBhdGggZD0iTTE4IDE2aDF2M2gtMXoiIGlkPSJQYXRoIi8+PHBhdGggZD0iTTE4IDNoMXY2aC0xeiIvPjxwYXRoIGZpbGwtcnVsZT0ibm9uemVybyIgZD0iTTE4IDE2aDF2LTdoLTF2N3ptLTEtOGgzdjloLTN2LTl6IiBpZD0iUmVjdGFuZ2xlLTQ0Ii8+PHBhdGggZD0iTTEzIDZoMXY1aC0xeiIvPjxwYXRoIGQ9Ik0xMyAxNWgxdjVoLTF6Ii8+PHBhdGggZmlsbC1ydWxlPSJub256ZXJvIiBkPSJNMTMgMTVoMXYtNGgtMXY0em0tMS01aDN2NmgtM3YtNnoiLz48cGF0aCBmaWxsLXJ1bGU9Im5vbnplcm8iIGQ9Ik0yLjUgMjBjLjgyOCAwIDEuNS0uNjcyIDEuNS0xLjVzLS42NzItMS41LTEuNS0xLjUtMS41LjY3Mi0xLjUgMS41LjY3MiAxLjUgMS41IDEuNXptMCAxYy0xLjM4MSAwLTIuNS0xLjExOS0yLjUtMi41czEuMTE5LTIuNSAyLjUtMi41IDIuNSAxLjExOSAyLjUgMi41LTEuMTE5IDIuNS0yLjUgMi41ek0yNC41IDExYy44MjggMCAxLjUtLjY3MiAxLjUtMS41cy0uNjcyLTEuNS0xLjUtMS41LTEuNS42NzItMS41IDEuNS42NzIgMS41IDEuNSAxLjV6bTAgMWMtMS4zODEgMC0yLjUtMS4xMTktMi41LTIuNXMxLjExOS0yLjUgMi41LTIuNSAyLjUgMS4xMTkgMi41IDIuNS0xLjExOSAyLjUtMi41IDIuNXoiLz48L2c+PC9zdmc+J30sMjcwNzAwKGwpewpsLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMjggMjgiIHdpZHRoPSIyOCIgaGVpZ2h0PSIyOCI+PGcgZmlsbD0iY3VycmVudENvbG9yIiBmaWxsLXJ1bGU9Im5vbnplcm8iPjxwYXRoIGQ9Ik00LjQzNiAyMS42NjdsMi4wODMtOS4wMjctLjk3NC0uMjI1LTIuMDgzIDkuMDI3ek0xMC4wNDYgMTYuNDc0bC0yLjIzMS00LjQ2My0uODk0LjQ0NyAyLjIzMSA0LjQ2M3pNMTMuNDYxIDYuMzE4bC0yLjg4IDEwLjA3OS45NjIuMjc1IDIuODgtMTAuMDc5ek0xOC40MzQgMTYuNDUxbC0yLjkyMS0xMC4yMjQtLjk2Mi4yNzUgMi45MjEgMTAuMjI0ek0yMS4xNDcgMTIuMDg5bC0yLjIwMyA0LjQwNS44OTQuNDQ3IDIuMjAzLTQuNDA1ek0yNS41MjQgMjEuMzgzbC0yLjA5LTkuMDU1LS45NzQuMjI1IDIuMDkgOS4wNTV6Ii8+PHBhdGggZD0iTTEgMTloNy41di0xaC03LjV6Ii8+PHBhdGggZD0iTTEyLjUgMTloNHYtMWgtNHoiLz48cGF0aCBkPSJNMjAuNSAxOWg2LjV2LTFoLTYuNXoiLz48cGF0aCBkPSJNNi41IDEyYy44MjggMCAxLjUtLjY3MiAxLjUtMS41cy0uNjcyLTEuNS0xLjUtMS41LTEuNS42NzItMS41IDEuNS42NzIgMS41IDEuNSAxLjV6bTAgMWMtMS4zODEgMC0yLjUtMS4xMTktMi41LTIuNXMxLjExOS0yLjUgMi41LTIuNSAyLjUgMS4xMTkgMi41IDIuNS0xLjExOSAyLjUtMi41IDIuNXpNMy41IDI1Yy44MjggMCAxLjUtLjY3MiAxLjUtMS41cy0uNjcyLTEuNS0xLjUtMS41LTEuNS42NzItMS41IDEuNS42NzIgMS41IDEuNSAxLjV6bTAgMWMtMS4zODEgMC0yLjUtMS4xMTktMi41LTIuNXMxLjExOS0yLjUgMi41LTIuNSAyLjUgMS4xMTkgMi41IDIuNS0xLjExOSAyLjUtMi41IDIuNXpNMTAuNSAyMGMuODI4IDAgMS41LS42NzIgMS41LTEuNXMtLjY3Mi0xLjUtMS41LTEuNS0xLjUuNjcyLTEuNSAxLjUuNjcyIDEuNSAxLjUgMS41em0wIDFjLTEuMzgxIDAtMi41LTEuMTE5LTIuNS0yLjVzMS4xMTktMi41IDIuNS0yLjUgMi41IDEuMTE5IDIuNSAyLjUtMS4xMTkgMi41LTIuNSAyLjV6TTE4LjUgMjBjLjgyOCAwIDEuNS0uNjcyIDEuNS0xLjVzLS42NzItMS41LTEuNS0xLjUtMS41LjY3Mi0xLjUgMS41LjY3MiAxLjUgMS41IDEuNXptMCAxYy0xLjM4MSAwLTIuNS0xLjExOS0yLjUtMi41czEuMTE5LTIuNSAyLjUtMi41IDIuNSAxLjExOSAyLjUgMi41LTEuMTE5IDIuNS0yLjUgMi41ek0yMi41IDEyYy44MjggMCAxLjUtLjY3MiAxLjUtMS41cy0uNjcyLTEuNS0xLjUtMS41LTEuNS42NzItMS41IDEuNS42NzIgMS41IDEuNSAxLjV6bTAgMWMtMS4zODEgMC0yLjUtMS4xMTktMi41LTIuNXMxLjExOS0yLjUgMi41LTIuNSAyLjUgMS4xMTkgMi41IDIuNS0xLjExOSAyLjUtMi41IDIuNXpNMjUuNSAyNWMuODI4IDAgMS41LS42NzIgMS41LTEuNXMtLjY3Mi0xLjUtMS41LTEuNS0xLjUuNjcyLTEuNSAxLjUuNjcyIDEuNSAxLjUgMS41em0wIDFjLTEuMzgxIDAtMi41LTEuMTE5LTIuNS0yLjVzMS4xMTktMi41IDIuNS0yLjUgMi41IDEuMTE5IDIuNSAyLjUtMS4xMTkgMi41LTIuNSAyLjV6TTE0LjUgNmMuODI4IDAgMS41LS42NzIgMS41LTEuNXMtLjY3Mi0xLjUtMS41LTEuNS0xLjUuNjcyLTEuNSAxLjUuNjcyIDEuNSAxLjUgMS41em0wIDFjLTEuMzgxIDAtMi41LTEuMTE5LTIuNS0yLjVzMS4xMTktMi41IDIuNS0yLjUgMi41IDEuMTE5IDIuNSAyLjUtMS4xMTkgMi41LTIuNSAyLjV6Ii8+PC9nPjwvc3ZnPid9LDkxNDc0NihsKXtsLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMjggMjgiIHdpZHRoPSIyOCIgaGVpZ2h0PSIyOCI+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0yNC4xMyAxNC42NWE2LjIgNi4yIDAgMCAwLS40Ni05LjI4Yy0yLjU3LTIuMDktNi4zOS0xLjcxLTguNzUuNmwtLjkyLjkxLS45Mi0uOWMtMi4zNi0yLjMyLTYuMTgtMi43LTguNzUtLjYxYTYuMiA2LjIgMCAwIDAtLjQ2IDkuMjhsOS4wNyA4LjkyYy41OC41NyAxLjUzLjU3IDIuMTIgMGw5LjA3LTguOTJabS05Ljc3IDguMiA5LjA3LTguOTFhNS4yIDUuMiAwIDAgMC0uMzktNy44Yy0yLjEzLTEuNzMtNS4zOC0xLjQ1LTcuNDIuNTVMMTQgOC4yOWwtMS42Mi0xLjZjLTIuMDMtMi01LjI5LTIuMjgtNy40Mi0uNTVhNS4yIDUuMiAwIDAgMC0uNCA3LjhsOS4wOCA4LjkxYy4yLjIuNTIuMi43MiAwWiIvPjwvc3ZnPid9LDk1OTc1NShsKXsKbC5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDI1IDIzIiB3aWR0aD0iMjUiIGhlaWdodD0iMjMiPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xMy40MDIgMEw2Ljc4MTQ0IDYuNzE1MzJDNi42NzMxMyA2LjgyNTE4IDYuNTkxNyA2Ljk1ODYyIDYuNTQzNTQgNy4xMDUxOEw1LjEzNTc4IDExLjM4ODlDNC44OTg0MyAxMi4xMTExIDUuMDgzNzUgMTIuOTA3NCA1LjYxNDQ5IDEzLjQ0NThMNS42ODI2NCAxMy41MTQ5TDAgMTkuMjc4OUw4LjEyNjk1IDIyLjQwNTZMMTEuMjg3NCAxOS4xOTk5TDExLjM1NTYgMTkuMjY5QzExLjg4NjMgMTkuODA3MyAxMi42NzEzIDE5Ljk5NTMgMTMuMzgzNCAxOS43NTQ2TDE3LjYwMTMgMTguMzI4NUMxNy43NDkzIDE4LjI3ODQgMTcuODgzNSAxOC4xOTQ1IDE3Ljk5MzEgMTguMDgzMkwyNC42OTEyIDExLjI4OTJMMjMuOTg1NyAxMC41ODM3TDE3LjUxNSAxNy4xNDdMNy43MDY1OCA3LjE5ODE4TDE0LjEwNzYgMC43MDU1NzVMMTMuNDAyIDBaTTYuMDc1NzMgMTEuNzA2N0w3LjI0NDM3IDguMTUwNjFMMTYuNTc2IDE3LjYxNThMMTMuMDcwMSAxOC44MDEyQzEyLjcxNDEgMTguOTIxNSAxMi4zMjE1IDE4LjgyNzUgMTIuMDU2MiAxOC41NTg0TDYuMzE1MDkgMTIuNzM1MUM2LjA0OTcyIDEyLjQ2NiA1Ljk1NzA2IDEyLjA2NzggNi4wNzU3MyAxMS43MDY3Wk02LjMwNTM5IDE0LjMwNDVMMTAuNTA5IDE4LjU2ODJMNy44NzkzNSAyMS4yMzU1TDEuNzg0MTQgMTguODkwNEw2LjMwNTM5IDE0LjMwNDVaIi8+PC9zdmc+J30sNjUxMDU3KGwpe2wuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyOCAyOCIgd2lkdGg9IjI4IiBoZWlnaHQ9IjI4Ij48ZyBmaWxsPSJjdXJyZW50Q29sb3IiIGZpbGwtcnVsZT0ibm9uemVybyI+PHBhdGggZD0iTTguNSAxNWgxNi41di0xaC0xNi41eiIvPjxwYXRoIGQ9Ik02LjUgMTZjLjgyOCAwIDEuNS0uNjcyIDEuNS0xLjVzLS42NzItMS41LTEuNS0xLjUtMS41LjY3Mi0xLjUgMS41LjY3MiAxLjUgMS41IDEuNXptMCAxYy0xLjM4MSAwLTIuNS0xLjExOS0yLjUtMi41czEuMTE5LTIuNSAyLjUtMi41IDIuNSAxLjExOSAyLjUgMi41LTEuMTE5IDIuNS0yLjUgMi41eiIvPjwvZz48L3N2Zz4nfSwxMDgzNjcobCl7bC5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDI4IDI4IiB3aWR0aD0iMjgiIGhlaWdodD0iMjgiPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZD0iTTkuNSAyMUg5aC41em04IDBIMTdoLjV6bS02LTEwSDExdjFoLjV2LTF6bTQgMWguNXYtMWgtLjV2MXptLTYgNy41aC41LS41em04IDBoLjUtLjV6bS4yOS0xLjU5QTcuOTcgNy45NyAwIDAgMCAyMSAxMS41aC0xYTYuOTcgNi45NyAwIDAgMS0yLjc5IDUuNTlsLjU4Ljgyek0yMSAxMS41QTcuNSA3LjUgMCAwIDAgMTMuNSA0djFhNi41IDYuNSAwIDAgMSA2LjUgNi41aDF6TTEzLjUgNEE3LjUgNy41IDAgMCAwIDYgMTEuNWgxQTYuNSA2LjUgMCAwIDEgMTMuNSA1VjR6TTYgMTEuNWE3Ljk4IDcuOTggMCAwIDAgMy4yMSA2LjQxbC41Ny0uODJBNi45OCA2Ljk4IDAgMCAxIDcgMTEuNUg2ek05IDIxYTEgMSAwIDAgMCAxIDF2LTFIOXptOCAxYTEgMSAwIDAgMCAxLTFoLTF2MXptLTYtLjVWMjNoMXYtMS41aC0xem0wIDEuNWExIDEgMCAwIDAgMSAxdi0xaC0xem0xIDFoM3YtMWgtM3Yxem0zIDBhMSAxIDAgMCAwIDEtMWgtMXYxem0xLTF2LTEuNWgtMVYyM2gxem0tMy0xMS41djZoMXYtNmgtMXptLTQgNnYyaDF2LTJIOXptMCAyVjIxaDF2LTEuNUg5em05IDEuNXYtMS41aC0xVjIxaDF6bTAtMS41di0yaC0xdjJoMXpNOS41IDE4aDR2LTFoLTR2MXptNCAwaDR2LTFoLTR2MXptLTItNmgydi0xaC0ydjF6bTIgMGgydi0xaC0ydjF6TTEwIDIyaDEuNXYtMUgxMHYxem0xLjUgMGg0di0xaC00djF6bTQgMEgxN3YtMWgtMS41djF6Ii8+PC9zdmc+J30sODk2OTMobCl7bC5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDI4IDI4IiB3aWR0aD0iMjgiIGhlaWdodD0iMjgiPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNMjEgNUg3YTMgMyAwIDAgMC0zIDN2MTJxMCAuNzEuMyAxLjMybDUuMzEtNi42My4zOC0uNDguNC40NyAyLjYgMy4xNSA0LjYxLTYuMTMuNC0uNTMuNC41MyA1LjYgNy4zMlY4YTMgMyAwIDAgMC0zLTNtMi45NCAxNS42TDE4IDEyLjgybC00LjM2IDUuOCAzLjYgNC4zN0gyMWEzIDMgMCAwIDAgMi45NC0yLjRtLTggMi40LTMuMzMtNC4wNC0yLjYtMy4xNy01LjEgNi4zN2MuNTQuNTIgMS4yOC44NCAyLjA5Ljg0ek03IDRhNCA0IDAgMCAwLTQgNHYxMmE0IDQgMCAwIDAgNCA0aDE0YTQgNCAwIDAgMCA0LTRWOGE0IDQgMCAwIDAtNC00em0zIDdhMSAxIDAgMSAwIDAtMiAxIDEgMCAwIDAgMCAybTAgMWEyIDIgMCAxIDAgMC00IDIgMiAwIDAgMCAwIDQiLz48L3N2Zz4nfSwzMjYzMjAobCl7CmwuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyOCAyOCIgd2lkdGg9IjI4IiBoZWlnaHQ9IjI4Ij48ZyBmaWxsPSJjdXJyZW50Q29sb3IiIGZpbGwtcnVsZT0ibm9uemVybyIgY2xpcC1ydWxlPSJldmVub2RkIj48cGF0aCBkPSJNMjIuNDk4OSA0QzIxLjY3MDUgNCAyMC45OTg5IDQuNjcxNTcgMjAuOTk4OSA1LjVDMjAuOTk4OSA1LjkxNDU2IDIxLjE2NjQgNi4yODkwNCAyMS40Mzg3IDYuNTYxMDZDMjEuNzEwNiA2LjgzMjgyIDIyLjA4NDggNyAyMi40OTg5IDdDMjMuMzI3NCA3IDIzLjk5ODkgNi4zMjg0MyAyMy45OTg5IDUuNUMyMy45OTg5IDQuNjcxNTcgMjMuMzI3NCA0IDIyLjQ5ODkgNFpNMTkuOTk4OSA1LjVDMTkuOTk4OSA0LjExOTI5IDIxLjExODIgMyAyMi40OTg5IDNDMjMuODc5NiAzIDI0Ljk5ODkgNC4xMTkyOSAyNC45OTg5IDUuNUMyNC45OTg5IDYuODgwNzEgMjMuODc5NiA4IDIyLjQ5ODkgOEMyMS45ODk5IDggMjEuNTE1OSA3Ljg0NzUgMjEuMTIwOSA3LjU4NjE3TDcuNTg1NzUgMjEuMTIxNEM3Ljg0NzMzIDIxLjUxNjUgOCAyMS45OTA3IDggMjIuNUM4IDIzLjg4MDcgNi44ODA3MSAyNSA1LjUgMjVDNC4xMTkyOSAyNSAzIDIzLjg4MDcgMyAyMi41QzMgMjEuMTE5MyA0LjExOTI5IDIwIDUuNSAyMEM2LjAwOTMyIDIwIDYuNDgzNTEgMjAuMTUyNyA2Ljg3ODY0IDIwLjQxNDNMMjAuNDEzNiA2Ljg3OTI5QzIwLjE1MTggNi40ODQwMyAxOS45OTg5IDYuMDA5NiAxOS45OTg5IDUuNVpNNS41IDIxQzQuNjcxNTcgMjEgNCAyMS42NzE2IDQgMjIuNUM0IDIzLjMyODQgNC42NzE1NyAyNCA1LjUgMjRDNi4zMjg0MyAyNCA3IDIzLjMyODQgNyAyMi41QzcgMjIuMDg1NiA2LjgzMjY1IDIxLjcxMTMgNi41NjA2NiAyMS40MzkzQzYuMjg4NjcgMjEuMTY3MyA1LjkxNDM1IDIxIDUuNSAyMVoiLz48cGF0aCBkPSJNMTYgMTkuNUMxNiAxOC4xMTkzIDE3LjExOTMgMTcgMTguNSAxN0gyMy41QzI0Ljg4MDcgMTcgMjYgMTguMTE5MyAyNiAxOS41VjIyLjVDMjYgMjMuODgwNyAyNC44ODA3IDI1IDIzLjUgMjVIMTguNUMxNy4xMTkzIDI1IDE2IDIzLjg4MDcgMTYgMjIuNVYxOS41Wk0xOC41IDE4QzE3LjY3MTYgMTggMTcgMTguNjcxNiAxNyAxOS41VjIyLjVDMTcgMjMuMzI4NCAxNy42NzE2IDI0IDE4LjUgMjRIMjMuNUMyNC4zMjg0IDI0IDI1IDIzLjMyODQgMjUgMjIuNVYxOS41QzI1IDE4LjY3MTYgMjQuMzI4NCAxOCAyMy41IDE4SDE4LjVaIi8+PC9nPjwvc3ZnPid9LDI1NTE1KGwpe2wuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyOCAyOCIgd2lkdGg9IjI4IiBoZWlnaHQ9IjI4Ij48ZyBmaWxsPSJjdXJyZW50Q29sb3IiIGZpbGwtcnVsZT0ibm9uemVybyI+PHBhdGggZD0iTTYuNSAyM2gxMnYtMWgtMTJ6IiBpZD0iTGluZSIvPjxwYXRoIGQ9Ik0yMS41OTYgMjAuNzE1bDMuMDkxLTkuNjYtLjk1Mi0uMzA1LTMuMDkxIDkuNjZ6Ii8+PHBhdGggZD0iTTguNDEzIDIyLjY2NGwxLjk1LTYuMDk0LS45NTItLjMwNS0xLjk1IDYuMDk0eiIvPjxwYXRoIGQ9Ik0xMS42MDIgMTIuNjk1bDMuMDg1LTkuNjQxLS45NTItLjMwNS0zLjA4NSA5LjY0MXoiLz48cGF0aCBkPSJNMTEuNzgzIDE2LjE2N2w2LjgxNyA1LjQ1NC42MjUtLjc4MS02LjgxNy01LjQ1NHoiLz48cGF0aCBkPSJNMTUuOTc2IDE4LjY1MmwzLjcxMS0xMS41OTgtLjk1Mi0uMzA1LTMuNzExIDExLjU5OHoiLz48cGF0aCBkPSJNNC41IDI0Yy44MjggMCAxLjUtLjY3MiAxLjUtMS41cy0uNjcyLTEuNS0xLjUtMS41LTEuNS42NzItMS41IDEuNS42NzIgMS41IDEuNSAxLjV6bTAgMWMtMS4zODEgMC0yLjUtMS4xMTktMi41LTIuNXMxLjExOS0yLjUgMi41LTIuNSAyLjUgMS4xMTkgMi41IDIuNS0xLjExOSAyLjUtMi41IDIuNXpNMTAuNSAxNmMuODI4IDAgMS41LS42NzIgMS41LTEuNXMtLjY3Mi0xLjUtMS41LTEuNS0xLjUuNjcyLTEuNSAxLjUuNjcyIDEuNSAxLjUgMS41em0wIDFjLTEuMzgxIDAtMi41LTEuMTE5LTIuNS0yLjVzMS4xMTktMi41IDIuNS0yLjUgMi41IDEuMTE5IDIuNSAyLjUtMS4xMTkgMi41LTIuNSAyLjV6TTIwLjUgMjRjLjgyOCAwIDEuNS0uNjcyIDEuNS0xLjVzLS42NzItMS41LTEuNS0xLjUtMS41LjY3Mi0xLjUgMS41LjY3MiAxLjUgMS41IDEuNXptMCAxYy0xLjM4MSAwLTIuNS0xLjExOS0yLjUtMi41czEuMTE5LTIuNSAyLjUtMi41IDIuNSAxLjExOSAyLjUgMi41LTEuMTE5IDIuNS0yLjUgMi41eiIvPjwvZz48L3N2Zz4nfSw5NjY3OTYobCl7bC5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDI4IDI4IiB3aWR0aD0iMjgiIGhlaWdodD0iMjgiPjxnIGZpbGw9ImN1cnJlbnRDb2xvciI+PHBhdGggZmlsbC1ydWxlPSJub256ZXJvIiBkPSJNNy4zNTQgMjEuMzU0bDE0LTE0LS43MDctLjcwNy0xNCAxNHoiLz48cGF0aCBkPSJNMjEgN2wtOCAzIDUgNXoiLz48cGF0aCBmaWxsLXJ1bGU9Im5vbnplcm8iIGQ9Ik0yMi41IDdjLjgyOCAwIDEuNS0uNjcyIDEuNS0xLjVzLS42NzItMS41LTEuNS0xLjUtMS41LjY3Mi0xLjUgMS41LjY3MiAxLjUgMS41IDEuNXptMCAxYy0xLjM4MSAwLTIuNS0xLjExOS0yLjUtMi41czEuMTE5LTIuNSAyLjUtMi41IDIuNSAxLjExOSAyLjUgMi41LTEuMTE5IDIuNS0yLjUgMi41ek01LjUgMjRjLjgyOCAwIDEuNS0uNjcyIDEuNS0xLjVzLS42NzItMS41LTEuNS0xLjUtMS41LjY3Mi0xLjUgMS41LjY3MiAxLjUgMS41IDEuNXptMCAxYy0xLjM4MSAwLTIuNS0xLjExOS0yLjUtMi41czEuMTE5LTIuNSAyLjUtMi41IDIuNSAxLjExOSAyLjUgMi41LTEuMTE5IDIuNS0yLjUgMi41eiIvPjwvZz48L3N2Zz4nfSw2NjIyMDAobCl7CmwuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyOCAyOCIgd2lkdGg9IjI4IiBoZWlnaHQ9IjI4Ij48ZyBmaWxsPSJjdXJyZW50Q29sb3IiIGZpbGwtcnVsZT0ibm9uemVybyI+PHBhdGggZD0iTTcuMzU0IDIxLjM1NGwxNC0xNC0uNzA3LS43MDctMTQgMTR6Ii8+PHBhdGggZD0iTTIyLjUgN2MuODI4IDAgMS41LS42NzIgMS41LTEuNXMtLjY3Mi0xLjUtMS41LTEuNS0xLjUuNjcyLTEuNSAxLjUuNjcyIDEuNSAxLjUgMS41em0wIDFjLTEuMzgxIDAtMi41LTEuMTE5LTIuNS0yLjVzMS4xMTktMi41IDIuNS0yLjUgMi41IDEuMTE5IDIuNSAyLjUtMS4xMTkgMi41LTIuNSAyLjV6TTUuNSAyNGMuODI4IDAgMS41LS42NzIgMS41LTEuNXMtLjY3Mi0xLjUtMS41LTEuNS0xLjUuNjcyLTEuNSAxLjUuNjcyIDEuNSAxLjUgMS41em0wIDFjLTEuMzgxIDAtMi41LTEuMTE5LTIuNS0yLjVzMS4xMTktMi41IDIuNS0yLjUgMi41IDEuMTE5IDIuNSAyLjUtMS4xMTkgMi41LTIuNSAyLjV6Ii8+PC9nPjwvc3ZnPid9LDQ0NDQ3MihsKXtsLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMjggMjgiIHdpZHRoPSIyOCIgaGVpZ2h0PSIyOCI+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBkPSJNNS41IDIwYzEuMiAwIDIuMjIuODYgMi40NSAySDI1djFINy45NWEyLjUgMi41IDAgMSAxLTIuNDUtM20wIDFhMS41IDEuNSAwIDEgMCAwIDMgMS41IDEuNSAwIDAgMCAwLTNNMjUgMThINXYtMWgyMHptLTExLTRoM3YxaC00VjloMXpNNS41IDRjMS4yIDAgMi4yMi44NiAyLjQ1IDJIMjV2MUg3Ljk1QTIuNSAyLjUgMCAxIDEgNS41IDRtMCAxYTEuNSAxLjUgMCAxIDAgMCAzIDEuNSAxLjUgMCAwIDAgMC0zIi8+PC9zdmc+J30sMzQzMjIwKGwpe2wuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyOCAyOCIgd2lkdGg9IjI4IiBoZWlnaHQ9IjI4Ij48ZyBmaWxsPSJjdXJyZW50Q29sb3IiIGZpbGwtcnVsZT0iZXZlbm9kZCI+PHBhdGggZmlsbC1ydWxlPSJub256ZXJvIiBkPSJNMTQgMTBhMiAyIDAgMCAwLTIgMnYxMUg2VjEyYzAtNC40MTYgMy41ODQtOCA4LThzOCAzLjU4NCA4IDh2MTFoLTZWMTJhMiAyIDAgMCAwLTItMnptLTMgMmEzIDMgMCAwIDEgNiAwdjEwaDRWMTJjMC0zLjg2NC0zLjEzNi03LTctN3MtNyAzLjEzNi03IDd2MTBoNFYxMnoiLz48cGF0aCBkPSJNNi41IDE4aDV2MWgtNXptMTAgMGg1djFoLTV6Ii8+PC9nPjwvc3ZnPid9LDgyNjEzMChsKXtsLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iMjgiIGhlaWdodD0iMjgiPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZD0iTTIgOS43NWExLjUgMS41IDAgMCAwLTEuNSAxLjV2NS41YTEuNSAxLjUgMCAwIDAgMS41IDEuNWgyNGExLjUgMS41IDAgMCAwIDEuNS0xLjV2LTUuNWExLjUgMS41IDAgMCAwLTEuNS0xLjV6bTAgMWgzdjIuNWgxdi0yLjVoMy4yNXYzLjloMXYtMy45aDMuMjV2Mi41aDF2LTIuNWgzLjI1djMuOWgxdi0zLjlIMjJ2Mi41aDF2LTIuNWgzYS41LjUgMCAwIDEgLjUuNXY1LjVhLjUuNSAwIDAgMS0uNS41SDJhLjUuNSAwIDAgMS0uNS0uNXYtNS41YS41LjUgMCAwIDEgLjUtLjV6IiB0cmFuc2Zvcm09InJvdGF0ZSgtNDUgMTQgMTQpIi8+PC9zdmc+J30sMzkyNzk4KGwpe2wuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyOCAyOCIgd2lkdGg9IjI4IiBoZWlnaHQ9IjI4Ij48ZyBmaWxsPSJjdXJyZW50Q29sb3IiIGZpbGwtcnVsZT0ibm9uemVybyI+PHBhdGggZD0iTTcuODU0IDIyLjg1NGwxNC0xNC0uNzA3LS43MDctMTQgMTR6Ii8+PHBhdGggZD0iTTguMzM2IDEzLjA0M2w4LjYyMSA4LjYyMS43MDctLjcwNy04LjYyMS04LjYyMXpNOS4xNDkgMTAuNTU4bDcuMDU4LTcuMDU4LS43MDctLjcwNy03LjA1OCA3LjA1OHoiIGlkPSJMaW5lIi8+PHBhdGggZD0iTTIwLjE0OSAyMS41NThsNy4wNTgtNy4wNTgtLjcwNy0uNzA3LTcuMDU4IDcuMDU4eiIvPjxwYXRoIGQ9Ik01LjUgMjNoMTF2LTFoLTExeiIvPjxwYXRoIGQ9Ik03LjUgMTNjLjgyOCAwIDEuNS0uNjcyIDEuNS0xLjVzLS42NzItMS41LTEuNS0xLjUtMS41LjY3Mi0xLjUgMS41LjY3MiAxLjUgMS41IDEuNXptMCAxYy0xLjM4MSAwLTIuNS0xLjExOS0yLjUtMi41czEuMTE5LTIuNSAyLjUtMi41IDIuNSAxLjExOSAyLjUgMi41LTEuMTE5IDIuNS0yLjUgMi41ek0xOC41IDI0Yy44MjggMCAxLjUtLjY3MiAxLjUtMS41cy0uNjcyLTEuNS0xLjUtMS41LTEuNS42NzItMS41IDEuNS42NzIgMS41IDEuNSAxLjV6bTAgMWMtMS4zODEgMC0yLjUtMS4xMTktMi41LTIuNXMxLjExOS0yLjUgMi41LTIuNSAyLjUgMS4xMTkgMi41IDIuNS0xLjExOSAyLjUtMi41IDIuNXpNMy41IDI0Yy44MjggMCAxLjUtLjY3MiAxLjUtMS41cy0uNjcyLTEuNS0xLjUtMS41LTEuNS42NzItMS41IDEuNS42NzIgMS41IDEuNSAxLjV6bTAgMWMtMS4zODEgMC0yLjUtMS4xMTktMi41LTIuNXMxLjExOS0yLjUgMi41LTIuNSAyLjUgMS4xMTkgMi41IDIuNS0xLjExOSAyLjUtMi41IDIuNXoiLz48L2c+PC9zdmc+J30sNTQxNzgobCl7CmwuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyOCAyOCIgd2lkdGg9IjI4IiBoZWlnaHQ9IjI4Ij48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTIxIDExLjI1YzAgMS45Ny0xLjAzIDQuMi0yLjYgNi41M2E2Ny43NCA2Ny43NCAwIDAgMS00LjIzIDUuNDVsLS4xNy4yLS4xNy0uMmE2Ny43NCA2Ny43NCAwIDAgMS00LjIzLTUuNDVDOC4wMyAxNS40NCA3IDEzLjIyIDcgMTEuMjVBNy4xMyA3LjEzIDAgMCAxIDE0IDRjMy44NCAwIDcgMy4yMiA3IDcuMjVabS02LjA3IDEyLjYzLS4yOC4zNEwxNCAyNWwtLjY1LS43OC0uMjgtLjM0QzkuOSAyMC4wNiA2IDE1LjQgNiAxMS4yNUE4LjEzIDguMTMgMCAwIDEgMTQgM2M0LjQyIDAgOCAzLjcgOCA4LjI1IDAgNC4xNC0zLjg5IDguODEtNy4wNyAxMi42M1pNMTcgMTFhMyAzIDAgMSAxLTYgMCAzIDMgMCAwIDEgNiAwWm0xIDBhNCA0IDAgMSAxLTggMCA0IDQgMCAwIDEgOCAwWiIvPjwvc3ZnPid9LDc1OTIwNChsKXtsLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMjggMjgiIHdpZHRoPSIyOCIgaGVpZ2h0PSIyOCI+PGcgZmlsbD0iY3VycmVudENvbG9yIj48cGF0aCBmaWxsLXJ1bGU9Im5vbnplcm8iIGQ9Ik0xNCAxOC42MzRsLS4zMDctLjIzOS03LjM3LTUuNzMtMi4xMzctMS42NjUgOS44MTQtNy42MzMgOS44MTYgNy42MzQtLjUwOS4zOTQtMS42MzkgMS4yNjktNy42NjcgNS45Njl6bTcuMDU0LTYuNzU5bDEuMTMxLS44NzYtOC4xODQtNi4zNjYtOC4xODYgNi4zNjcgMS4xMjMuODc1IDcuMDYzIDUuNDkxIDcuMDU0LTUuNDkyeiIvPjxwYXRoIGQ9Ik03IDE0LjVsLTEgLjU3IDggNi40MyA4LTYuNS0xLS41LTcgNS41eiIvPjxwYXRoIGQ9Ik03IDE3LjVsLTEgLjU3IDggNi40MyA4LTYuNS0xLS41LTcgNS41eiIvPjwvZz48L3N2Zz4nfSw0NzEwMDkobCl7bC5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDI4IDI4IiB3aWR0aD0iMjgiIGhlaWdodD0iMjgiPjxnIGZpbGw9ImN1cnJlbnRDb2xvciIgZmlsbC1ydWxlPSJub256ZXJvIj48cGF0aCBkPSJNOC4zNTQgMTguMzU0bDEwLTEwLS43MDctLjcwNy0xMCAxMHpNMTIuMzU0IDI1LjM1NGw1LTUtLjcwNy0uNzA3LTUgNXoiLz48cGF0aCBkPSJNMjAuMzU0IDE3LjM1NGw1LTUtLjcwNy0uNzA3LTUgNXoiLz48cGF0aCBkPSJNMTkuNSA4Yy44MjggMCAxLjUtLjY3MiAxLjUtMS41cy0uNjcyLTEuNS0xLjUtMS41LTEuNS42NzItMS41IDEuNS42NzIgMS41IDEuNSAxLjV6bTAgMWMtMS4zODEgMC0yLjUtMS4xMTktMi41LTIuNXMxLjExOS0yLjUgMi41LTIuNSAyLjUgMS4xMTkgMi41IDIuNS0xLjExOSAyLjUtMi41IDIuNXpNNi41IDIxYy44MjggMCAxLjUtLjY3MiAxLjUtMS41cy0uNjcyLTEuNS0xLjUtMS41LTEuNS42NzItMS41IDEuNS42NzIgMS41IDEuNSAxLjV6bTAgMWMtMS4zODEgMC0yLjUtMS4xMTktMi41LTIuNXMxLjExOS0yLjUgMi41LTIuNSAyLjUgMS4xMTkgMi41IDIuNS0xLjExOSAyLjUtMi41IDIuNXpNMTguNSAyMGMuODI4IDAgMS41LS42NzIgMS41LTEuNXMtLjY3Mi0xLjUtMS41LTEuNS0xLjUuNjcyLTEuNSAxLjUuNjcyIDEuNSAxLjUgMS41em0wIDFjLTEuMzgxIDAtMi41LTEuMTE5LTIuNS0yLjVzMS4xMTktMi41IDIuNS0yLjUgMi41IDEuMTE5IDIuNSAyLjUtMS4xMTkgMi41LTIuNSAyLjV6Ii8+PC9nPjwvc3ZnPid9LDcyNTc5NShsKXtsLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMjggMjgiIHdpZHRoPSIyOCIgaGVpZ2h0PSIyOCI+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBkPSJNMTEgMTAuNWExLjUgMS41IDAgMSAxLTMgMCAxLjUgMS41IDAgMCAxIDMgMHptNCA3YTEuNSAxLjUgMCAxIDEgMyAwIDEuNSAxLjUgMCAwIDEtMyAwem0xMS04LjhWMTNoMVY3aC02djFoNC4zbC03LjQyIDcuNDFhMi40OSAyLjQ5IDAgMCAwLTIuNzYgMGwtMy41My0zLjUzYTIuNSAyLjUgMCAxIDAtNC4xNyAwTDEgMTguMjlsLjcuNzEgNi40Mi02LjQxYTIuNDkgMi40OSAwIDAgMCAyLjc2IDBsMy41MyAzLjUzYTIuNSAyLjUgMCAxIDAgNC4xNyAweiIvPjwvc3ZnPid9LDc0NzI5MihsKXsKbC5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDI4IDI4IiB3aWR0aD0iMjgiIGhlaWdodD0iMjgiPjxwYXRoIGZpbGw9IiNCQkQ5RkIiIGQ9Ik0xOS4xOCA4LjA2IDUuMjQgMjEuNzZhMi4zOCAyLjM4IDAgMSAwIDMuNjMgMy4wNUwxOS45NSA4LjdsLS43Ny0uNjRaIi8+PHBhdGggZmlsbD0iI0ZGQjc0RCIgZD0iTTIzLjI1IDIuNTVhMSAxIDAgMCAxIDEuNDIgMS4xOGwtLjcyIDIuM2ExIDEgMCAwIDAgLjI1IDFsMS43IDEuNjlhMSAxIDAgMCAxLS42OCAxLjcxbC0yLjQuMDNhMSAxIDAgMCAwLS44OS41NWwtMS4wNyAyLjE1YTEgMSAwIDAgMS0xLjg0LS4xM2wtLjc3LTIuMjhhMSAxIDAgMCAwLS44LS42N2wtMi4zNy0uMzZhMSAxIDAgMCAxLS40NS0xLjc5bDEuOTMtMS40M2ExIDEgMCAwIDAgLjQtLjk2bC0uNC0yLjM3YTEgMSAwIDAgMSAxLjU2LS45OGwxLjk2IDEuMzlhMSAxIDAgMCAwIDEuMDQuMDdsMi4xMy0xLjFaIi8+PHBhdGggZmlsbD0iIzEzMTcyMiIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNMjMuNzEgMy40MyAyMyA1LjczYTIgMiAwIDAgMCAuNSAyLjAybDEuNzIgMS42OC0yLjQuMDNhMiAyIDAgMCAwLTEuNzcgMS4xbC0xLjA4IDIuMTUtLjc2LTIuMjhhMiAyIDAgMCAwLTEuNi0xLjM0bC0yLjM3LS4zNiAxLjkzLTEuNDNhMiAyIDAgMCAwIC43OC0xLjkzTDE3LjU0IDNsMS45NiAxLjRhMiAyIDAgMCAwIDIuMDguMTRsMi4xMy0xLjFabS0uNDYtLjg4YTEgMSAwIDAgMSAxLjQyIDEuMThsLS43MiAyLjNhMSAxIDAgMCAwIC4yNSAxbDEuNyAxLjY5YTEgMSAwIDAgMS0uNjggMS43MWwtMi40LjAzYTEgMSAwIDAgMC0uODkuNTVsLTEuMDcgMi4xNWExIDEgMCAwIDEtMS44NC0uMTNsLS40OC0xLjQxLTkuMjYgMTMuNDdBMi44OCAyLjg4IDAgMSAxIDQuOSAyMS40TDE2LjU1IDkuOTVsLTEuNDctLjIzYTEgMSAwIDAgMS0uNDUtMS43OWwxLjkzLTEuNDNhMSAxIDAgMCAwIC40LS45NmwtLjQtMi4zN2ExIDEgMCAwIDEgMS41Ni0uOThsMS45NiAxLjM5YTEgMSAwIDAgMCAxLjA0LjA3bDIuMTMtMS4xWm0tNS41IDcuNjJMNS41OCAyMi4xMmExLjg4IDEuODggMCAxIDAgMi44NyAyLjRsOS42NS0xNC4wNGExIDEgMCAwIDAtLjM3LS4zWiIvPjwvc3ZnPid9LDMwNDI5NShsKXtsLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMjggMjgiIHdpZHRoPSIyOCIgaGVpZ2h0PSIyOCI+PGcgZmlsbD0iY3VycmVudENvbG9yIiBmaWxsLXJ1bGU9Im5vbnplcm8iPjxwYXRoIGQ9Ik0yMC4zNDkgMjAuNjU0bDQuNDg5LS43MTEtLjE1Ni0uOTg4LTQuNDg5LjcxMXoiLz48cGF0aCBkPSJNNy4yNTQgMjIuNzI4bDkuNjI3LTEuNTI1LS4xNTYtLjk4OC05LjYyNyAxLjUyNXoiLz48cGF0aCBkPSJNNy4yODQgMjIuMTE4bDE1LjY2OS04LjMzMS0uNDY5LS44ODMtMTUuNjY5IDguMzMxeiIvPjxwYXRoIGQ9Ik02LjczMiAyMS4yNDhsOC4zNjQtMTUuNzMxLS44ODMtLjQ2OS04LjM2NCAxNS43MzF6Ii8+PHBhdGggZD0iTTE3LjQ2NSAxOC43NThsLTguMTg4LTguMTg4LS43MDcuNzA3IDguMTg4IDguMTg4eiIvPjxwYXRoIGQ9Ik02LjI3MyAyMC44MThsMS40OTktOS40NjctLjk4OC0uMTU2LTEuNDk5IDkuNDY3eiIvPjxwYXRoIGQ9Ik04LjMyOSA3LjgzNGwuNzE1LTQuNTE2LS45ODgtLjE1Ni0uNzE1IDQuNTE2eiIvPjxwYXRoIGQ9Ik03LjM1NCAyMS4zNTRsMTctMTctLjcwNy0uNzA3LTE3IDE3eiIvPjxwYXRoIGQ9Ik01LjUgMjRjLjgyOCAwIDEuNS0uNjcyIDEuNS0xLjVzLS42NzItMS41LTEuNS0xLjUtMS41LjY3Mi0xLjUgMS41LjY3MiAxLjUgMS41IDEuNXptMCAxYy0xLjM4MSAwLTIuNS0xLjExOS0yLjUtMi41czEuMTE5LTIuNSAyLjUtMi41IDIuNSAxLjExOSAyLjUgMi41LTEuMTE5IDIuNS0yLjUgMi41ek03LjUgMTFjLjgyOCAwIDEuNS0uNjcyIDEuNS0xLjVzLS42NzItMS41LTEuNS0xLjUtMS41LjY3Mi0xLjUgMS41LjY3MiAxLjUgMS41IDEuNXptMCAxYy0xLjM4MSAwLTIuNS0xLjExOS0yLjUtMi41czEuMTE5LTIuNSAyLjUtMi41IDIuNSAxLjExOSAyLjUgMi41LTEuMTE5IDIuNS0yLjUgMi41ek0xOC41IDIyYy44MjggMCAxLjUtLjY3MiAxLjUtMS41cy0uNjcyLTEuNS0xLjUtMS41LTEuNS42NzItMS41IDEuNS42NzIgMS41IDEuNSAxLjV6bTAgMWMtMS4zODEgMC0yLjUtMS4xMTktMi41LTIuNXMxLjExOS0yLjUgMi41LTIuNSAyLjUgMS4xMTkgMi41IDIuNS0xLjExOSAyLjUtMi41IDIuNXoiLz48L2c+PC9zdmc+J30sMjMxMjQobCl7CmwuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyOCAyOCIgd2lkdGg9IjI4IiBoZWlnaHQ9IjI4Ij48ZyBmaWxsPSJjdXJyZW50Q29sb3IiIGZpbGwtcnVsZT0ibm9uemVybyI+PHBhdGggZD0iTTcuMjc1IDIxLjQzMmwxMi41NzktMTIuNTc5LS43MDctLjcwNy0xMi41NzkgMTIuNTc5eiIvPjxwYXRoIGQ9Ik02LjY5IDEzLjM5N2w3LjkxMyA3LjkxMy43MDctLjcwNy03LjkxMy03LjkxM3pNNy4xNDkgMTAuNTU4bDcuMDU4LTcuMDU4LS43MDctLjcwNy03LjA1OCA3LjA1OHoiLz48cGF0aCBkPSJNMTguMTQ5IDIxLjU1OGw3LjA1OC03LjA1OC0uNzA3LS43MDctNy4wNTggNy4wNTh6Ii8+PHBhdGggZD0iTTUuNSAyNGMuODI4IDAgMS41LS42NzIgMS41LTEuNXMtLjY3Mi0xLjUtMS41LTEuNS0xLjUuNjcyLTEuNSAxLjUuNjcyIDEuNSAxLjUgMS41em0wIDFjLTEuMzgxIDAtMi41LTEuMTE5LTIuNS0yLjVzMS4xMTktMi41IDIuNS0yLjUgMi41IDEuMTE5IDIuNSAyLjUtMS4xMTkgMi41LTIuNSAyLjV6TTUuNSAxM2MuODI4IDAgMS41LS42NzIgMS41LTEuNXMtLjY3Mi0xLjUtMS41LTEuNS0xLjUuNjcyLTEuNSAxLjUuNjcyIDEuNSAxLjUgMS41em0wIDFjLTEuMzgxIDAtMi41LTEuMTE5LTIuNS0yLjVzMS4xMTktMi41IDIuNS0yLjUgMi41IDEuMTE5IDIuNSAyLjUtMS4xMTkgMi41LTIuNSAyLjV6TTE2LjUgMjRjLjgyOCAwIDEuNS0uNjcyIDEuNS0xLjVzLS42NzItMS41LTEuNS0xLjUtMS41LjY3Mi0xLjUgMS41LjY3MiAxLjUgMS41IDEuNXptMCAxYy0xLjM4MSAwLTIuNS0xLjExOS0yLjUtMi41czEuMTE5LTIuNSAyLjUtMi41IDIuNSAxLjExOSAyLjUgMi41LTEuMTE5IDIuNS0yLjUgMi41eiIvPjwvZz48L3N2Zz4nfSw1OTQwMihsKXtsLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMjggMjgiIHdpZHRoPSIyOCIgaGVpZ2h0PSIyOCI+PGcgZmlsbD0iY3VycmVudENvbG9yIiBmaWxsLXJ1bGU9Im5vbnplcm8iPjxwYXRoIGQ9Ik0xNi41IDZoNHYtMWgtNHoiIGlkPSJMaW5lIi8+PHBhdGggZD0iTTE2LjUgMTVoNHYtMWgtNHoiLz48cGF0aCBkPSJNOC41IDIzaDR2LTFoLTR6Ii8+PHBhdGggZD0iTTguMjk4IDExLjU5MWw1LjA5Ny00LjQ2LS42NTktLjc1My01LjA5NyA0LjQ2ek0yMiA3LjV2NWgxdi01eiIvPjxwYXRoIGQ9Ik0xNCAxNi41djRoMXYtNHoiLz48cGF0aCBkPSJNNiAxNC41djZoMXYtNnoiLz48cGF0aCBkPSJNNi41IDE0Yy44MjggMCAxLjUtLjY3MiAxLjUtMS41cy0uNjcyLTEuNS0xLjUtMS41LTEuNS42NzItMS41IDEuNS42NzIgMS41IDEuNSAxLjV6bTAgMWMtMS4zODEgMC0yLjUtMS4xMTktMi41LTIuNXMxLjExOS0yLjUgMi41LTIuNSAyLjUgMS4xMTkgMi41IDIuNS0xLjExOSAyLjUtMi41IDIuNXpNMTQuNSA3Yy44MjggMCAxLjUtLjY3MiAxLjUtMS41cy0uNjcyLTEuNS0xLjUtMS41LTEuNS42NzItMS41IDEuNS42NzIgMS41IDEuNSAxLjV6bTAgMWMtMS4zODEgMC0yLjUtMS4xMTktMi41LTIuNXMxLjExOS0yLjUgMi41LTIuNSAyLjUgMS4xMTkgMi41IDIuNS0xLjExOSAyLjUtMi41IDIuNXpNMjIuNSA3Yy44MjggMCAxLjUtLjY3MiAxLjUtMS41cy0uNjcyLTEuNS0xLjUtMS41LTEuNS42NzItMS41IDEuNS42NzIgMS41IDEuNSAxLjV6bTAgMWMtMS4zODEgMC0yLjUtMS4xMTktMi41LTIuNXMxLjExOS0yLjUgMi41LTIuNSAyLjUgMS4xMTkgMi41IDIuNS0xLjExOSAyLjUtMi41IDIuNXpNMTQuNSAxNmMuODI4IDAgMS41LS42NzIgMS41LTEuNXMtLjY3Mi0xLjUtMS41LTEuNS0xLjUuNjcyLTEuNSAxLjUuNjcyIDEuNSAxLjUgMS41em0wIDFjLTEuMzgxIDAtMi41LTEuMTE5LTIuNS0yLjVzMS4xMTktMi41IDIuNS0yLjUgMi41IDEuMTE5IDIuNSAyLjUtMS4xMTkgMi41LTIuNSAyLjV6TTIyLjUgMTZjLjgyOCAwIDEuNS0uNjcyIDEuNS0xLjVzLS42NzItMS41LTEuNS0xLjUtMS41LjY3Mi0xLjUgMS41LjY3MiAxLjUgMS41IDEuNXptMCAxYy0xLjM4MSAwLTIuNS0xLjExOS0yLjUtMi41czEuMTE5LTIuNSAyLjUtMi41IDIuNSAxLjExOSAyLjUgMi41LTEuMTE5IDIuNS0yLjUgMi41ek02LjUgMjRjLjgyOCAwIDEuNS0uNjcyIDEuNS0xLjVzLS42NzItMS41LTEuNS0xLjUtMS41LjY3Mi0xLjUgMS41LjY3MiAxLjUgMS41IDEuNXptMCAxYy0xLjM4MSAwLTIuNS0xLjExOS0yLjUtMi41czEuMTE5LTIuNSAyLjUtMi41IDIuNSAxLjExOSAyLjUgMi41LTEuMTE5IDIuNS0yLjUgMi41ek0xNC41IDI0Yy44MjggMCAxLjUtLjY3MiAxLjUtMS41cy0uNjcyLTEuNS0xLjUtMS41LTEuNS42NzItMS41IDEuNS42NzIgMS41IDEuNSAxLjV6bTAgMWMtMS4zODEgMC0yLjUtMS4xMTktMi41LTIuNXMxLjExOS0yLjUgMi41LTIuNSAyLjUgMS4xMTkgMi41IDIuNS0xLjExOSAyLjUtMi41IDIuNXoiLz48L2c+PC9zdmc+J30sMzg0OTIwKGwpe2wuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyOCAyOCIgd2lkdGg9IjI4IiBoZWlnaHQ9IjI4Ij48ZyBmaWxsPSJjdXJyZW50Q29sb3IiIGZpbGwtcnVsZT0ibm9uemVybyI+PHBhdGggZD0iTTYuOTk1IDVjLjAwOCAwIC4wMDUgMTUuNS4wMDUgMTUuNWgtMXYtMTUuNDkzYzAtLjU1Ni40NTEtMS4wMDcuOTk1LTEuMDA3aDE3LjAxYy41NDkgMCAuOTk1LjQ1Ljk5NSAxLjAwN3YxMS45ODZjMCAuNTU2LS40NSAxLjAwNy0xLjAwNyAxLjAwN2gtMTIuOTkzbC0zLjEwNCAzLjEwNC0uNzA3LS43MDcgMy4zOTctMy4zOTdoMTMuNDA3Yy4wMDQgMCAuMDA3LTExLjk5My4wMDctMTEuOTkzIDAtLjAwNy0xNy4wMDUtLjAwNy0xNy4wMDUtLjAwN3oiLz48cGF0aCBkPSJNNi41IDI0Yy44MjggMCAxLjUtLjY3MiAxLjUtMS41cy0uNjcyLTEuNS0xLjUtMS41LTEuNS42NzItMS41IDEuNS42NzIgMS41IDEuNSAxLjV6bTAgMWMtMS4zODEgMC0yLjUtMS4xMTktMi41LTIuNXMxLjExOS0yLjUgMi41LTIuNSAyLjUgMS4xMTkgMi41IDIuNS0xLjExOSAyLjUtMi41IDIuNXoiLz48L2c+PC9zdmc+Jwp9LDU4NTU0NihsKXtsLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMjggMjgiIHdpZHRoPSIyOCIgaGVpZ2h0PSIyOCI+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0yMiAzSDV2MTNoMTdWM1pNNSAxN2g4djQuMDVhMi41IDIuNSAwIDEgMCAxIDBWMTdoOGExIDEgMCAwIDAgMS0xVjNhMSAxIDAgMCAwLTEtMUg1YTEgMSAwIDAgMC0xIDF2MTNhMSAxIDAgMCAwIDEgMVptMTAgNi41YTEuNSAxLjUgMCAxIDEtMyAwIDEuNSAxLjUgMCAwIDEgMyAwWk0xMyA0aDF2MWguNUEyLjUgMi41IDAgMCAxIDE3IDcuNVY4aC0xdi0uNWMwLS44My0uNjctMS41LTEuNS0xLjVIMTR2M2guNWEyLjUgMi41IDAgMCAxIDAgNUgxNHYxaC0xdi0xaC0uNWEyLjUgMi41IDAgMCAxLTIuNS0yLjVWMTFoMXYuNWMwIC44My42NyAxLjUgMS41IDEuNWguNXYtM2gtLjVhMi41IDIuNSAwIDAgMSAwLTVoLjVWNFptMCAyaC0uNWExLjUgMS41IDAgMCAwIDAgM2guNVY2Wm0xIDR2M2guNWExLjUgMS41IDAgMCAwIDAtM0gxNFoiLz48L3N2Zz4nfSw5Mzk3MDkobCl7bC5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDI4IDI4IiB3aWR0aD0iMjgiIGhlaWdodD0iMjgiPjxnIGZpbGw9ImN1cnJlbnRDb2xvciI+PHBhdGggZmlsbC1ydWxlPSJub256ZXJvIiBkPSJNNCA1aDE2LjV2LTFoLTE2LjV6TTI1IDI0aC0xNi41djFoMTYuNXoiIGlkPSJMaW5lIi8+PHBhdGggZmlsbC1ydWxlPSJub256ZXJvIiBkPSJNNi41IDI2Yy44MjggMCAxLjUtLjY3MiAxLjUtMS41cy0uNjcyLTEuNS0xLjUtMS41LTEuNS42NzItMS41IDEuNS42NzIgMS41IDEuNSAxLjV6bTAgMWMtMS4zODEgMC0yLjUtMS4xMTktMi41LTIuNXMxLjExOS0yLjUgMi41LTIuNSAyLjUgMS4xMTkgMi41IDIuNS0xLjExOSAyLjUtMi41IDIuNXpNMjIuNSA2Yy44MjggMCAxLjUtLjY3MiAxLjUtMS41cy0uNjcyLTEuNS0xLjUtMS41LTEuNS42NzItMS41IDEuNS42NzIgMS41IDEuNSAxLjV6bTAgMWMtMS4zODEgMC0yLjUtMS4xMTktMi41LTIuNXMxLjExOS0yLjUgMi41LTIuNSAyLjUgMS4xMTkgMi41IDIuNS0xLjExOSAyLjUtMi41IDIuNXoiLz48cGF0aCBmaWxsLXJ1bGU9Im5vbnplcm8iIGQ9Ik0xNCA5djE0aDF2LTE0eiIvPjxwYXRoIGQ9Ik0xNC41IDZsMi41IDNoLTV6Ii8+PC9nPjwvc3ZnPid9LDY4Mzg1MyhsKXtsLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMjggMjgiIHdpZHRoPSIyOCIgaGVpZ2h0PSIyOCI+PGcgZmlsbD0iY3VycmVudENvbG9yIiBmaWxsLXJ1bGU9Im5vbnplcm8iPjxwYXRoIGQ9Ik0yMy44ODYgMjEuNDMxYy0uOTUzLTguNTU4LTcuNzQyLTE1LjM1NC0xNi4yOTktMTYuMzE1bC0uMTEyLjk5NGM4LjA5My45MDkgMTQuNTE2IDcuMzM4IDE1LjQxNyAxNS40MzJsLjk5NC0uMTExeiIvPjxwYXRoIGQ9Ik01IDcuNXYxNGgxdi0xNHpNMjEuNSAyM2gtMTR2MWgxNHoiLz48cGF0aCBkPSJNNS41IDdjLjgyOCAwIDEuNS0uNjcyIDEuNS0xLjVzLS42NzItMS41LTEuNS0xLjUtMS41LjY3Mi0xLjUgMS41LjY3MiAxLjUgMS41IDEuNXptMCAxYy0xLjM4MSAwLTIuNS0xLjExOS0yLjUtMi41czEuMTE5LTIuNSAyLjUtMi41IDIuNSAxLjExOSAyLjUgMi41LTEuMTE5IDIuNS0yLjUgMi41ek0yMy41IDI1Yy44MjggMCAxLjUtLjY3MiAxLjUtMS41cy0uNjcyLTEuNS0xLjUtMS41LTEuNS42NzItMS41IDEuNS42NzIgMS41IDEuNSAxLjV6bTAgMWMtMS4zODEgMC0yLjUtMS4xMTktMi41LTIuNXMxLjExOS0yLjUgMi41LTIuNSAyLjUgMS4xMTkgMi41IDIuNS0xLjExOSAyLjUtMi41IDIuNXpNNS41IDI1Yy44MjggMCAxLjUtLjY3MiAxLjUtMS41cy0uNjcyLTEuNS0xLjUtMS41LTEuNS42NzItMS41IDEuNS42NzIgMS41IDEuNSAxLjV6bTAgMWMtMS4zODEgMC0yLjUtMS4xMTktMi41LTIuNXMxLjExOS0yLjUgMi41LTIuNSAyLjUgMS4xMTkgMi41IDIuNS0xLjExOSAyLjUtMi41IDIuNXoiLz48L2c+PC9zdmc+J30sOTMxMjk4KGwpe2wuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyOCAyOCIgd2lkdGg9IjI4IiBoZWlnaHQ9IjI4Ij48ZyBmaWxsPSJjdXJyZW50Q29sb3IiIGZpbGwtcnVsZT0ibm9uemVybyI+PHBhdGggZD0iTTguMzU0IDIwLjM1NGw1LTUtLjcwNy0uNzA3LTUgNXoiLz48cGF0aCBkPSJNMTYuMzU0IDEyLjM1NGw4LTgtLjcwNy0uNzA3LTggOHoiLz48cGF0aCBkPSJNMTQuNSAxNWMuODI4IDAgMS41LS42NzIgMS41LTEuNXMtLjY3Mi0xLjUtMS41LTEuNS0xLjUuNjcyLTEuNSAxLjUuNjcyIDEuNSAxLjUgMS41em0wIDFjLTEuMzgxIDAtMi41LTEuMTE5LTIuNS0yLjVzMS4xMTktMi41IDIuNS0yLjUgMi41IDEuMTE5IDIuNSAyLjUtMS4xMTkgMi41LTIuNSAyLjV6TTYuNSAyM2MuODI4IDAgMS41LS42NzIgMS41LTEuNXMtLjY3Mi0xLjUtMS41LTEuNS0xLjUuNjcyLTEuNSAxLjUuNjcyIDEuNSAxLjUgMS41em0wIDFjLTEuMzgxIDAtMi41LTEuMTE5LTIuNS0yLjVzMS4xMTktMi41IDIuNS0yLjUgMi41IDEuMTE5IDIuNSAyLjUtMS4xMTkgMi41LTIuNSAyLjV6Ii8+PC9nPjwvc3ZnPid9LDI4OTU3NyhsKXsKbC5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDI4IDI4IiB3aWR0aD0iMjgiIGhlaWdodD0iMjgiPjxnIGZpbGw9ImN1cnJlbnRDb2xvciIgZmlsbC1ydWxlPSJub256ZXJvIj48cGF0aCBkPSJNNy41IDZoMTN2LTFoLTEzeiIgaWQ9IkxpbmUiLz48cGF0aCBkPSJNNy41IDIzaDEzdi0xaC0xM3oiLz48cGF0aCBkPSJNNSA3LjV2MTNoMXYtMTN6Ii8+PHBhdGggZD0iTTIyIDcuNXYxM2gxdi0xM3oiLz48cGF0aCBkPSJNNS41IDdjLjgyOCAwIDEuNS0uNjcyIDEuNS0xLjVzLS42NzItMS41LTEuNS0xLjUtMS41LjY3Mi0xLjUgMS41LjY3MiAxLjUgMS41IDEuNXptMCAxYy0xLjM4MSAwLTIuNS0xLjExOS0yLjUtMi41czEuMTE5LTIuNSAyLjUtMi41IDIuNSAxLjExOSAyLjUgMi41LTEuMTE5IDIuNS0yLjUgMi41ek0yMi41IDdjLjgyOCAwIDEuNS0uNjcyIDEuNS0xLjVzLS42NzItMS41LTEuNS0xLjUtMS41LjY3Mi0xLjUgMS41LjY3MiAxLjUgMS41IDEuNXptMCAxYy0xLjM4MSAwLTIuNS0xLjExOS0yLjUtMi41czEuMTE5LTIuNSAyLjUtMi41IDIuNSAxLjExOSAyLjUgMi41LTEuMTE5IDIuNS0yLjUgMi41ek0yMi41IDI0Yy44MjggMCAxLjUtLjY3MiAxLjUtMS41cy0uNjcyLTEuNS0xLjUtMS41LTEuNS42NzItMS41IDEuNS42NzIgMS41IDEuNSAxLjV6bTAgMWMtMS4zODEgMC0yLjUtMS4xMTktMi41LTIuNXMxLjExOS0yLjUgMi41LTIuNSAyLjUgMS4xMTkgMi41IDIuNS0xLjExOSAyLjUtMi41IDIuNXpNNS41IDI0Yy44MjggMCAxLjUtLjY3MiAxLjUtMS41cy0uNjcyLTEuNS0xLjUtMS41LTEuNS42NzItMS41IDEuNS42NzIgMS41IDEuNSAxLjV6bTAgMWMtMS4zODEgMC0yLjUtMS4xMTktMi41LTIuNXMxLjExOS0yLjUgMi41LTIuNSAyLjUgMS4xMTkgMi41IDIuNS0xLjExOSAyLjUtMi41IDIuNXoiLz48L2c+PC9zdmc+J30sODU3NTQwKGwpe2wuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyOCAyOCIgd2lkdGg9IjI4IiBoZWlnaHQ9IjI4Ij48ZyBmaWxsPSJjdXJyZW50Q29sb3IiIGZpbGwtcnVsZT0ibm9uemVybyI+PHBhdGggZD0iTTcuNTUxIDE3Ljk4bDEzLjI4NC03LjAzMy0uNDY4LS44ODQtMTMuMjg0IDcuMDMzeiIvPjxwYXRoIGQ9Ik02IDExLjgwMWwxNi04LjQ3MXY0LjE3aDF2LTUuODNsLTE4IDkuNTI5djUuMzAxaDF6Ii8+PHBhdGggZD0iTTYgMjQuNjd2LTQuMTdoLTF2NS44M2wxOC05LjUyOXYtNS4zMDFoLTF2NC42OTl6Ii8+PHBhdGggZD0iTTUuNSAyMGMuODI4IDAgMS41LS42NzIgMS41LTEuNXMtLjY3Mi0xLjUtMS41LTEuNS0xLjUuNjcyLTEuNSAxLjUuNjcyIDEuNSAxLjUgMS41em0wIDFjLTEuMzgxIDAtMi41LTEuMTE5LTIuNS0yLjVzMS4xMTktMi41IDIuNS0yLjUgMi41IDEuMTE5IDIuNSAyLjUtMS4xMTkgMi41LTIuNSAyLjV6TTIyLjUgMTFjLjgyOCAwIDEuNS0uNjcyIDEuNS0xLjVzLS42NzItMS41LTEuNS0xLjUtMS41LjY3Mi0xLjUgMS41LjY3MiAxLjUgMS41IDEuNXptMCAxYy0xLjM4MSAwLTIuNS0xLjExOS0yLjUtMi41czEuMTE5LTIuNSAyLjUtMi41IDIuNSAxLjExOSAyLjUgMi41LTEuMTE5IDIuNS0yLjUgMi41eiIvPjwvZz48L3N2Zz4nfSwyNDMwNzcobCl7CmwuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyOCAyOCIgd2lkdGg9IjI4IiBoZWlnaHQ9IjI4Ij48ZyBmaWxsPSJjdXJyZW50Q29sb3IiIGZpbGwtcnVsZT0ibm9uemVybyI+PHBhdGggZD0iTTE0Ljc0MyAzLjU1bC00LjIwOCA0LjIwOC43MDcuNzA3IDQuMjA4LTQuMjA4ek03LjcxIDEwLjU4M2wtNC4xODcgNC4xODcuNzA3LjcwNyA0LjE4Ny00LjE4N3pNMy41MzYgMTguMjQ0bDYuMTcxIDYuMTcxLjcwNy0uNzA3LTYuMTcxLTYuMTcxek0xMy4yMzIgMjQuNDc1bDQuMjItNC4yMi0uNzA3LS43MDctNC4yMiA0LjIyek0yMC4yMTQgMTcuNDk0bDQuMjE3LTQuMjE3LS43MDctLjcwNy00LjIxNyA0LjIxN3pNMjQuNDIzIDkuNzE2bC02LjIxOC02LjIxOC0uNzA3LjcwNyA2LjIxOCA2LjIxOHoiLz48cGF0aCBkPSJNMi41IDE4Yy44MjggMCAxLjUtLjY3MiAxLjUtMS41cy0uNjcyLTEuNS0xLjUtMS41LTEuNS42NzItMS41IDEuNS42NzIgMS41IDEuNSAxLjV6bTAgMWMtMS4zODEgMC0yLjUtMS4xMTktMi41LTIuNXMxLjExOS0yLjUgMi41LTIuNSAyLjUgMS4xMTkgMi41IDIuNS0xLjExOSAyLjUtMi41IDIuNXpNOS41IDExYy44MjggMCAxLjUtLjY3MiAxLjUtMS41cy0uNjcyLTEuNS0xLjUtMS41LTEuNS42NzItMS41IDEuNS42NzIgMS41IDEuNSAxLjV6bTAgMWMtMS4zODEgMC0yLjUtMS4xMTktMi41LTIuNXMxLjExOS0yLjUgMi41LTIuNSAyLjUgMS4xMTkgMi41IDIuNS0xLjExOSAyLjUtMi41IDIuNXpNMTYuNSA0Yy44MjggMCAxLjUtLjY3MiAxLjUtMS41cy0uNjcyLTEuNS0xLjUtMS41LTEuNS42NzItMS41IDEuNS42NzIgMS41IDEuNSAxLjV6bTAgMWMtMS4zODEgMC0yLjUtMS4xMTktMi41LTIuNXMxLjExOS0yLjUgMi41LTIuNSAyLjUgMS4xMTkgMi41IDIuNS0xLjExOSAyLjUtMi41IDIuNXpNMTEuNSAyN2MuODI4IDAgMS41LS42NzIgMS41LTEuNXMtLjY3Mi0xLjUtMS41LTEuNS0xLjUuNjcyLTEuNSAxLjUuNjcyIDEuNSAxLjUgMS41em0wIDFjLTEuMzgxIDAtMi41LTEuMTE5LTIuNS0yLjVzMS4xMTktMi41IDIuNS0yLjUgMi41IDEuMTE5IDIuNSAyLjUtMS4xMTkgMi41LTIuNSAyLjV6TTE4LjUgMjBjLjgyOCAwIDEuNS0uNjcyIDEuNS0xLjVzLS42NzItMS41LTEuNS0xLjUtMS41LjY3Mi0xLjUgMS41LjY3MiAxLjUgMS41IDEuNXptMCAxYy0xLjM4MSAwLTIuNS0xLjExOS0yLjUtMi41czEuMTE5LTIuNSAyLjUtMi41IDIuNSAxLjExOSAyLjUgMi41LTEuMTE5IDIuNS0yLjUgMi41ek0yNS41IDEzYy44MjggMCAxLjUtLjY3MiAxLjUtMS41cy0uNjcyLTEuNS0xLjUtMS41LTEuNS42NzItMS41IDEuNS42NzIgMS41IDEuNSAxLjV6bTAgMWMtMS4zODEgMC0yLjUtMS4xMTktMi41LTIuNXMxLjExOS0yLjUgMi41LTIuNSAyLjUgMS4xMTkgMi41IDIuNS0xLjExOSAyLjUtMi41IDIuNXoiLz48L2c+PC9zdmc+J30sOTQyMDA0KGwpe2wuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyOCAyOCIgd2lkdGg9IjI4IiBoZWlnaHQ9IjI4Ij48ZyBmaWxsPSJjdXJyZW50Q29sb3IiIGZpbGwtcnVsZT0ibm9uemVybyI+PHBhdGggZD0iTTEwLjI3NSAyMC40MzJsMTEuNTc5LTExLjU3OS0uNzA3LS43MDctMTEuNTc5IDExLjU3OXoiLz48cGF0aCBkPSJNOC4zMzYgMTMuMDQzbDguNjIxIDguNjIxLjcwNy0uNzA3LTguNjIxLTguNjIxek05LjE0OSAxMC41NThsNy4wNTgtNy4wNTgtLjcwNy0uNzA3LTcuMDU4IDcuMDU4eiIgaWQ9IkxpbmUiLz48cGF0aCBkPSJNMjAuMTQ5IDIxLjU1OGw3LjA1OC03LjA1OC0uNzA3LS43MDctNy4wNTggNy4wNTh6Ii8+PHBhdGggZD0iTTYuNSAyM2gxMHYtMWgtMTB6Ii8+PHBhdGggZD0iTTQuNSAyNGMuODI4IDAgMS41LS42NzIgMS41LTEuNXMtLjY3Mi0xLjUtMS41LTEuNS0xLjUuNjcyLTEuNSAxLjUuNjcyIDEuNSAxLjUgMS41em0wIDFjLTEuMzgxIDAtMi41LTEuMTE5LTIuNS0yLjVzMS4xMTktMi41IDIuNS0yLjUgMi41IDEuMTE5IDIuNSAyLjUtMS4xMTkgMi41LTIuNSAyLjV6TTcuNSAxM2MuODI4IDAgMS41LS42NzIgMS41LTEuNXMtLjY3Mi0xLjUtMS41LTEuNS0xLjUuNjcyLTEuNSAxLjUuNjcyIDEuNSAxLjUgMS41em0wIDFjLTEuMzgxIDAtMi41LTEuMTE5LTIuNS0yLjVzMS4xMTktMi41IDIuNS0yLjUgMi41IDEuMTE5IDIuNSAyLjUtMS4xMTkgMi41LTIuNSAyLjV6TTE4LjUgMjRjLjgyOCAwIDEuNS0uNjcyIDEuNS0xLjVzLS42NzItMS41LTEuNS0xLjUtMS41LjY3Mi0xLjUgMS41LjY3MiAxLjUgMS41IDEuNXptMCAxYy0xLjM4MSAwLTIuNS0xLjExOS0yLjUtMi41czEuMTE5LTIuNSAyLjUtMi41IDIuNSAxLjExOSAyLjUgMi41LTEuMTE5IDIuNS0yLjUgMi41eiIvPjwvZz48L3N2Zz4nfSw3NTU2ODAobCl7CmwuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyOCAyOCIgd2lkdGg9IjI4IiBoZWlnaHQ9IjI4Ij48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGQ9Ik01LjUgMjBjMS4yIDAgMi4yMi44NiAyLjQ1IDJIMjV2MUg3Ljk1YTIuNSAyLjUgMCAxIDEtMi40NS0zbTAgMWExLjUgMS41IDAgMSAwIDAgMyAxLjUgMS41IDAgMCAwIDAtM205LjUyLTdxLjUzIDAgLjkzLjJsLjIuMXEuMjcuMTcuNDYuNDNsLjA2LjFxLjIuMy4yNS43M3YuMDJoLS44MnYtLjAxYTEgMSAwIDAgMC0uMzYtLjU1IDEuMiAxLjIgMCAwIDAtLjczLS4ycS0uMjIgMC0uNC4wNmwtLjEyLjA0YTEgMSAwIDAgMC0uMzYuMyAxIDEgMCAwIDAtLjEzLjQzdi4wMXEwIC4yLjA5LjM0dC4yNi4yNXEuMTkuMS40OC4ybC43Ni4yMXEuNzEuMiAxLjA2LjU3bC4wOC4xcS4yNy4zNi4yNy45di4wMnEwIC40NS0uMi44MWwtLjA3LjFhMiAyIDAgMCAxLS43Mi42MnEtLjQ1LjIyLTEuMDIuMjItLjQyIDAtLjc3LS4xbC0uMjItLjFhMiAyIDAgMCAxLS43LS41NSAyIDIgMCAwIDEtLjMtLjg0di0uMDJoLjg2di4wMXEuMS4zNi4zOS41N3QuNzYuMjJxLjM0IDAgLjU5LS4xMWExIDEgMCAwIDAgLjQtLjMxbC4wNi0uMXEuMDktLjE3LjA4LS4zNmExIDEgMCAwIDAtLjEtLjM4bC0uMS0uMWExLjUgMS41IDAgMCAwLS42NS0uMzRsLS43OC0uMjFxLS40Ni0uMTMtLjc3LS4zNC0uMy0uMjEtLjQ1LS41MS0uMTQtLjMtLjE0LS43MyAwLS41LjI0LS44OGwuMDYtLjA5cS4yNC0uMzIuNjEtLjUuNDMtLjIzLjk2LS4yM00yNSAxMkg1di0xaDIwek01LjUgNGMxLjIgMCAyLjIyLjg2IDIuNDUgMkgyNXYxSDcuOTVBMi41IDIuNSAwIDEgMSA1LjUgNG0wIDFhMS41IDEuNSAwIDEgMCAwIDMgMS41IDEuNSAwIDAgMCAwLTMiLz48L3N2Zz4nfSw1OTAyNzUobCl7bC5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDI4IDI4IiB3aWR0aD0iMjgiIGhlaWdodD0iMjgiPjxnIGZpbGw9ImN1cnJlbnRDb2xvciIgZmlsbC1ydWxlPSJub256ZXJvIj48cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTE0LjQ4IDUuNDZhLjUuNSAwIDAgMC0uOTYgMGwtLjk4IDMuMDNhLjUuNSAwIDAgMS0uNDcuMzVIOC44OGEuNS41IDAgMCAwLS4zLjlsMi41OCAxLjg3YS41LjUgMCAwIDEgLjE4LjU2bC0uOTggMy4wM2EuNS41IDAgMCAwIC43Ny41NmwyLjU4LTEuODdhLjUuNSAwIDAgMSAuNTggMGwyLjU4IDEuODdjLjQuMjguOTItLjEuNzctLjU2bC0uOTgtMy4wM2EuNS41IDAgMCAxIC4xOC0uNTZsMi41Ny0xLjg3YS41LjUgMCAwIDAtLjMtLjloLTMuMThhLjUuNSAwIDAgMS0uNDctLjM1bC0uOTgtMy4wM3pNMTQgNy4yNGwtLjUgMS41NmExLjUgMS41IDAgMCAxLTEuNDMgMS4wNGgtMS42NWwxLjMzLjk2Yy41My4zOS43NSAxLjA2LjU1IDEuNjhsLS41MSAxLjU3IDEuMzMtLjk3YTEuNSAxLjUgMCAwIDEgMS43NiAwbDEuMzMuOTctLjUtMS41N2MtLjItLjYyLjAxLTEuMy41NC0xLjY4bDEuMzMtLjk2aC0xLjY1YTEuNSAxLjUgMCAwIDEtMS40Mi0xLjA0TDE0IDcuMjR6Ii8+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xNSAyMC45NWExMCAxMCAwIDEgMC0xIC4wNXY2aDF2LTYuMDV6TTE0IDIwYTkgOSAwIDEgMCAwLTE4IDkgOSAwIDAgMCAwIDE4eiIvPjwvZz48L3N2Zz4nfSwxOTA5MDAobCl7bC5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDI4IDI4IiB3aWR0aD0iMjgiIGhlaWdodD0iMjgiPjxnIGZpbGw9ImN1cnJlbnRDb2xvciIgZmlsbC1ydWxlPSJub256ZXJvIj48cGF0aCBkPSJNNS4yMDUgMTQuMTExbC0uMDEzLS4xNzJjLS4wNTQtLjkwNi4wMjItMS45NjYuMzI3LTIuOTYxLjM5NS0xLjI4OSAxLjExMS0yLjIxNSAyLjIyMS0yLjY2NmwtLjM3Ny0uOTI2Yy0xLjQyLjU3OC0yLjMyNCAxLjc0Ni0yLjggMy4zLS4zNDYgMS4xMjgtLjQyOSAyLjI5OS0uMzY5IDMuMzEzbC4wMTcuMjE5Ljk5NC0uMTA2eiIvPjxwYXRoIGQ9Ik0xMS4wNTEgOC41NTRjMS4xMi44OTMgMS43NjYgMi4zNDMgMi45NzMgNi4wOTkgMS4yNzQgMy45NjMgMS45NDcgNS40OCAzLjI4IDYuNTU3bC42MjktLjc3OGMtMS4xMTItLjg5OS0xLjc1NC0yLjM0NS0yLjk1Ni02LjA4NS0xLjI4LTMuOTgyLTEuOTU3LTUuNTAzLTMuMzAyLTYuNTc1bC0uNjIzLjc4MnoiLz48cGF0aCBkPSJNMjEuNzIyIDIxLjU1OGMxLjQzOS0uNjM0IDIuNDI4LTEuODg2IDMuMDQ2LTMuNTUxLjMxMS0uODM2LjUwOS0xLjcyNi42MTgtMi42MTYuMDY2LS41MzkuMDg4LS45NjcuMDg4LTEuMjI3bC0xIC4wMDItLjAxLjMwNGMtLjAxMi4yNDEtLjAzNS41MS0uMDcxLjc5OC0uMTAxLjgxOC0uMjgyIDEuNjM0LS41NjMgMi4zOS0uNTMzIDEuNDM0LTEuMzU0IDIuNDc0LTIuNTEyIDIuOTg1bC40MDMuOTE1eiIvPjxwYXRoIGQ9Ik05LjUgOWMuODI4IDAgMS41LS42NzIgMS41LTEuNXMtLjY3Mi0xLjUtMS41LTEuNS0xLjUuNjcyLTEuNSAxLjUuNjcyIDEuNSAxLjUgMS41em0wIDFjLTEuMzgxIDAtMi41LTEuMTE5LTIuNS0yLjVzMS4xMTktMi41IDIuNS0yLjUgMi41IDEuMTE5IDIuNSAyLjUtMS4xMTkgMi41LTIuNSAyLjV6TTE5LjUgMjNjLjgyOCAwIDEuNS0uNjcyIDEuNS0xLjVzLS42NzItMS41LTEuNS0xLjUtMS41LjY3Mi0xLjUgMS41LjY3MiAxLjUgMS41IDEuNXptMCAxYy0xLjM4MSAwLTIuNS0xLjExOS0yLjUtMi41czEuMTE5LTIuNSAyLjUtMi41IDIuNSAxLjExOSAyLjUgMi41LTEuMTE5IDIuNS0yLjUgMi41eiIvPjwvZz48L3N2Zz4nfSw2NTM4NzQobCl7CmwuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyOCAyOCIgd2lkdGg9IjI4IiBoZWlnaHQ9IjI4Ij48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGQ9Ik00LjA1IDE0YTkuOTUgOS45NSAwIDEgMSAxOS45IDAgOS45NSA5Ljk1IDAgMCAxLTE5LjkgMFpNMTQgM2ExMSAxMSAwIDEgMCAwIDIyIDExIDExIDAgMCAwIDAtMjJabS0zIDEzLjAzYS41LjUgMCAwIDEgLjY0LjMgMi41IDIuNSAwIDAgMCA0LjcyIDAgLjUuNSAwIDAgMSAuOTQuMzQgMy41IDMuNSAwIDAgMS02LjYgMCAuNS41IDAgMCAxIC4zLS42NFptLjUtNC41M2ExIDEgMCAxIDAgMCAyIDEgMSAwIDAgMCAwLTJabTUgMGExIDEgMCAxIDAgMCAyIDEgMSAwIDAgMCAwLTJaIi8+PC9zdmc+J30sMzI3MjE1KGwpe2wuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyOCAyOCIgd2lkdGg9IjI4IiBoZWlnaHQ9IjI4Ij48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTcgNGgxNGEzIDMgMCAwIDEgMyAzdjExYzAgLjM0LS4wMy42Ny0uMDggMUgyMC4zYy0xLjI4IDAtMi4zMS45Ny0yLjMxIDIuMjRWMjRIN2EzIDMgMCAwIDEtMy0zVjdhMyAzIDAgMCAxIDMtM1ptMTIgMTkuOTJBNiA2IDAgMCAwIDIzLjY2IDIwSDIwLjNjLS43NyAwLTEuMzEuNDgtMS4zMSAxLjI0djIuNjhaTTMgN2E0IDQgMCAwIDEgNC00aDE0YTQgNCAwIDAgMSA0IDR2MTFhNyA3IDAgMCAxLTcgN0g3YTQgNCAwIDAgMS00LTRWN1ptOCA5LjAzYS41LjUgMCAwIDEgLjY0LjMgMi41IDIuNSAwIDAgMCA0LjcyIDAgLjUuNSAwIDAgMSAuOTQuMzQgMy41IDMuNSAwIDAgMS02LjYgMCAuNS41IDAgMCAxIC4zLS42NFptLjUtNC41M2ExIDEgMCAxIDAgMCAyIDEgMSAwIDAgMCAwLTJabTUgMGExIDEgMCAxIDAgMCAyIDEgMSAwIDAgMCAwLTJaIi8+PC9zdmc+J30sNDA1NDU0KGwpe2wuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyOCAyOCIgd2lkdGg9IjI4IiBoZWlnaHQ9IjI4Ij48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGZpbGwtcnVsZT0ibm9uemVybyIgZD0iTTE0IDVhNyA3IDAgMCAwLTcgN3YzaDR2LTNhMyAzIDAgMSAxIDYgMHYzaDR2LTNhNyA3IDAgMCAwLTctN3ptNyAxMWgtNHYzaDR2LTN6bS0xMCAwSDd2M2g0di0zem0tNS00YTggOCAwIDEgMSAxNiAwdjhoLTZ2LThhMiAyIDAgMSAwLTQgMHY4SDZ2LTh6bTMuMjkzIDExLjI5NGwtMS4yMjItMi4wMzcuODU4LS41MTQgMS43NzcgMi45NjMtMiAxIDEuMjIzIDIuMDM3LS44NTguNTE0LTEuNzc4LTIuOTYzIDItMXptOS43NzgtMi41NTFsLjg1OC41MTQtMS4yMjMgMi4wMzcgMiAxLTEuNzc3IDIuOTYzLS44NTgtLjUxNCAxLjIyMy0yLjAzNy0yLTEgMS43NzctMi45NjN6Ii8+PC9zdmc+J30sMTAyNjY2KGwpe2wuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyOCAyOCIgd2lkdGg9IjI4IiBoZWlnaHQ9IjI4Ij48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTQgNWExIDEgMCAwIDAtMSAxdjE3YTEgMSAwIDAgMCAxIDFoMjBhMSAxIDAgMCAwIDEtMVY2YTEgMSAwIDAgMC0xLTFINFptMCAxaDV2NUg0VjZabTAgMTJ2NWg1di01SDRabTYgMHY1aDE0di01SDEwWm0xNC0xdi01SDEwdjVoMTRaTTkgMTdINHYtNWg1djVabTEtNlY2aDE0djVIMTBaIi8+PC9zdmc+J30sNzI2MTEyKGwpe2wuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyOCAyOCIgd2lkdGg9IjI4IiBoZWlnaHQ9IjI4Ij48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTUgM2gxN3YxM0g1VjNabTggMTRINWExIDEgMCAwIDEtMS0xVjNhMSAxIDAgMCAxIDEtMWgxN2ExIDEgMCAwIDEgMSAxdjEzYTEgMSAwIDAgMS0xIDFoLTh2NC4wNWEyLjUgMi41IDAgMSAxLTEgMFYxN1ptLjUgOGExLjUgMS41IDAgMSAwIDAtMyAxLjUgMS41IDAgMCAwIDAgM1pNMTQgNWgzYTEgMSAwIDAgMSAxIDF2MmgtMVY2aC0zdjdoMnYxaC01di0xaDJWNmgtM3YySDlWNmExIDEgMCAwIDEgMS0xaDRaIi8+PC9zdmc+J30sNjYwMjAzKGwpe2wuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyOCAyOCIgd2lkdGg9IjI4IiBoZWlnaHQ9IjI4Ij48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGQ9Ik04IDYuNWMwLS4yOC4yMi0uNS41LS41SDE0djE2aC0ydjFoNXYtMWgtMlY2aDUuNWMuMjggMCAuNS4yMi41LjVWOWgxVjYuNWMwLS44My0uNjctMS41LTEuNS0xLjVoLTEyQzcuNjcgNSA3IDUuNjcgNyA2LjVWOWgxVjYuNVoiLz48L3N2Zz4nfSwyNzI4NjUobCl7CmwuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyOCAyOCIgd2lkdGg9IjI4IiBoZWlnaHQ9IjI4Ij48ZyBmaWxsPSJjdXJyZW50Q29sb3IiIGZpbGwtcnVsZT0ibm9uemVybyI+PHBhdGggZD0iTS4zMDMgMTcuNjc0bDEuMTA0LjQ3My4zOTQtLjkxOS0xLjEwNC0uNDczeiIvPjxwYXRoIGQ9Ik01LjEzMyAxOS43NDRsMy4zMzUgMS40MjkuMzk0LS45MTktMy4zMzUtMS40Mjl6Ii8+PHBhdGggZD0iTTEyLjEzNCAyMi43NDRsMy4zNTIgMS40MzYuMzk0LS45MTktMy4zNTItMS40MzZ6Ii8+PHBhdGggZD0iTTE5LjIwMyAyNS43NzRsMS42LjY4Ni4zOTQtLjkxOS0xLjYtLjY4NnoiLz48cGF0aCBkPSJNLjMgNC42NzNsMS4xMy40ODQuMzk0LS45MTktMS4xMy0uNDg0LS4zOTQuOTE5em0uMzk0LS45MTlsMS4xMy40ODQtLjM5NC45MTktMS4xMy0uNDg0LjM5NC0uOTE5eiIvPjxwYXRoIGQ9Ik01LjE0MSA2Ljc0N2wzLjMyNSAxLjQyNS4zOTQtLjkxOS0zLjMyNS0xLjQyNXoiLz48cGF0aCBkPSJNMTIuMTMzIDkuNzQ0bDMuMzUzIDEuNDM3LjM5NC0uOTE5LTMuMzUzLTEuNDM3eiIvPjxwYXRoIGQ9Ik0xOS4yMjEgMTIuNzgybDUuODM4IDIuNTAyLjM5NC0uOTE5LTUuODM4LTIuNTAyeiIvPjxwYXRoIGQ9Ik0zIDcuNDczdjguOTY5aDF2LTguOTY5ek04LjkzIDkuODcxbC00LjYxNiA2LjU5NC44MTkuNTczIDQuNjE2LTYuNTk0ek0xMSAxOS41di05aC0xdjl6TTE1Ljg5OCAxMi45MTZsLTQuNjE2IDYuNTk0LjgxOS41NzMgNC42MTYtNi41OTR6TTE4IDIyLjV2LTloLTF2OXpNMjQuMzEzIDUuMjEybC02LjU3IDE3LjI0Ny45MzQuMzU2IDYuNTctMTcuMjQ3eiIvPjxwYXRoIGQ9Ik0zLjUgN2MuODI4IDAgMS41LS42NzIgMS41LTEuNXMtLjY3Mi0xLjUtMS41LTEuNS0xLjUuNjcyLTEuNSAxLjUuNjcyIDEuNSAxLjUgMS41em0wIDFjLTEuMzgxIDAtMi41LTEuMTE5LTIuNS0yLjVzMS4xMTktMi41IDIuNS0yLjUgMi41IDEuMTE5IDIuNSAyLjUtMS4xMTkgMi41LTIuNSAyLjV6TTMuNSAyMGMuODI4IDAgMS41LS42NzIgMS41LTEuNXMtLjY3Mi0xLjUtMS41LTEuNS0xLjUuNjcyLTEuNSAxLjUuNjcyIDEuNSAxLjUgMS41em0wIDFjLTEuMzgxIDAtMi41LTEuMTE5LTIuNS0yLjVzMS4xMTktMi41IDIuNS0yLjUgMi41IDEuMTE5IDIuNSAyLjUtMS4xMTkgMi41LTIuNSAyLjV6TTEwLjUgMjNjLjgyOCAwIDEuNS0uNjcyIDEuNS0xLjVzLS42NzItMS41LTEuNS0xLjUtMS41LjY3Mi0xLjUgMS41LjY3MiAxLjUgMS41IDEuNXptMCAxYy0xLjM4MSAwLTIuNS0xLjExOS0yLjUtMi41czEuMTE5LTIuNSAyLjUtMi41IDIuNSAxLjExOSAyLjUgMi41LTEuMTE5IDIuNS0yLjUgMi41ek0xNy41IDEzYy44MjggMCAxLjUtLjY3MiAxLjUtMS41cy0uNjcyLTEuNS0xLjUtMS41LTEuNS42NzItMS41IDEuNS42NzIgMS41IDEuNSAxLjV6bTAgMWMtMS4zODEgMC0yLjUtMS4xMTktMi41LTIuNXMxLjExOS0yLjUgMi41LTIuNSAyLjUgMS4xMTkgMi41IDIuNS0xLjExOSAyLjUtMi41IDIuNXpNMjUuNSA1Yy44MjggMCAxLjUtLjY3MiAxLjUtMS41cy0uNjcyLTEuNS0xLjUtMS41LTEuNS42NzItMS41IDEuNS42NzIgMS41IDEuNSAxLjV6bTAgMWMtMS4zODEgMC0yLjUtMS4xMTktMi41LTIuNXMxLjExOS0yLjUgMi41LTIuNSAyLjUgMS4xMTkgMi41IDIuNS0xLjExOSAyLjUtMi41IDIuNXpNMTcuNSAyNmMuODI4IDAgMS41LS42NzIgMS41LTEuNXMtLjY3Mi0xLjUtMS41LTEuNS0xLjUuNjcyLTEuNSAxLjUuNjcyIDEuNSAxLjUgMS41em0wIDFjLTEuMzgxIDAtMi41LTEuMTE5LTIuNS0yLjVzMS4xMTktMi41IDIuNS0yLjUgMi41IDEuMTE5IDIuNSAyLjUtMS4xMTkgMi41LTIuNSAyLjV6TTEwLjUgMTBjLjgyOCAwIDEuNS0uNjcyIDEuNS0xLjVzLS42NzItMS41LTEuNS0xLjUtMS41LjY3Mi0xLjUgMS41LjY3MiAxLjUgMS41IDEuNXptMCAxYy0xLjM4MSAwLTIuNS0xLjExOS0yLjUtMi41czEuMTE5LTIuNSAyLjUtMi41IDIuNSAxLjExOSAyLjUgMi41LTEuMTE5IDIuNS0yLjUgMi41eiIvPjwvZz48L3N2Zz4nfSw3MDM0NzkobCl7bC5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDI4IDI4IiB3aWR0aD0iMjgiIGhlaWdodD0iMjgiPjxnIGZpbGw9ImN1cnJlbnRDb2xvciI+PHBhdGggZmlsbC1ydWxlPSJub256ZXJvIiBkPSJNMjcuMTg2IDkuNDExYy0uNjkxLS4yNy0xLjQyOS0uNDExLTIuMTg2LS40MTEtMy4zMTQgMC02IDIuNjg2LTYgNmgxYzAtMi43NjEgMi4yMzktNSA1LTUgLjYzMiAwIDEuMjQ2LjExNyAxLjgyMS4zNDJsLjM2NC0uOTMxeiIvPjxwYXRoIGZpbGwtcnVsZT0ibm9uemVybyIgZD0iTTkgMTVjMC0zLjMxNC0yLjY4Ni02LTYtNi0uNzU0IDAtMS40ODkuMTM5LTIuMTc3LjQwN2wuMzYzLjkzMmMuNTczLS4yMjMgMS4xODUtLjMzOSAxLjgxNC0uMzM5IDIuNzYxIDAgNSAyLjIzOSA1IDVoMXoiLz48cGF0aCBkPSJNOCAxNWgxdjFoLTF2LTF6bTExIDBoMXYxaC0xdi0xem0xIDBoLTFjMC0yLjc2MS0yLjIzOS01LTUtNXMtNSAyLjIzOS01IDVoLTFjMC0zLjMxNCAyLjY4Ni02IDYtNnM2IDIuNjg2IDYgNnoiLz48cGF0aCBmaWxsLXJ1bGU9Im5vbnplcm8iIGQ9Ik04LjUgMTljLjgyOCAwIDEuNS0uNjcyIDEuNS0xLjVzLS42NzItMS41LTEuNS0xLjUtMS41LjY3Mi0xLjUgMS41LjY3MiAxLjUgMS41IDEuNXptMCAxYy0xLjM4MSAwLTIuNS0xLjExOS0yLjUtMi41czEuMTE5LTIuNSAyLjUtMi41IDIuNSAxLjExOSAyLjUgMi41LTEuMTE5IDIuNS0yLjUgMi41ek0xOS41IDE5Yy44MjggMCAxLjUtLjY3MiAxLjUtMS41cy0uNjcyLTEuNS0xLjUtMS41LTEuNS42NzItMS41IDEuNS42NzIgMS41IDEuNSAxLjV6bTAgMWMtMS4zODEgMC0yLjUtMS4xMTktMi41LTIuNXMxLjExOS0yLjUgMi41LTIuNSAyLjUgMS4xMTkgMi41IDIuNS0xLjExOSAyLjUtMi41IDIuNXoiLz48L2c+PC9zdmc+J30sMjQ5NjA0KGwpewpsLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iMjgiIGhlaWdodD0iMjgiPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNMTkuNzYgNi4wN2wtLjcuN2ExMy40IDEzLjQgMCAwMTEuOTMgMi40N2MuMTkuMy4zMy41NS40Mi43MmwuMDMuMDQtLjAzLjA0YTE1IDE1IDAgMDEtMi4wOSAyLjljLTEuNDcgMS42LTMuNiAzLjEyLTYuMzIgMy4xMi0uOTggMC0xLjg4LS4yLTIuNy0uNTJsLS43Ny43NmMxLjAzLjQ3IDIuMTguNzYgMy40Ny43NiAzLjEyIDAgNS41LTEuNzUgNy4wNi0zLjQ0YTE2IDE2IDAgMDAyLjM4LTMuMzh2LS4wMmguMDFMMjIgMTBsLjQ1LjIyLjEtLjIyLS4xLS4yMkwyMiAxMGwuNDUtLjIyLS4wMS0uMDJhNS4xIDUuMSAwIDAwLS4xNS0uMjggMTYgMTYgMCAwMC0yLjUzLTMuNDF6TTYuMjQgMTMuOTNsLjctLjctLjI3LS4yOWExNSAxNSAwIDAxLTIuMDgtMi45TDQuNTYgMTBsLjAzLS4wNGExNSAxNSAwIDAxMi4wOS0yLjljMS40Ny0xLjYgMy42LTMuMTIgNi4zMi0zLjEyLjk4IDAgMS44OC4yIDIuNy41MmwuNzctLjc2QTguMzIgOC4zMiAwIDAwMTMgMi45NGMtMy4xMiAwLTUuNSAxLjc1LTcuMDYgMy40NGExNiAxNiAwIDAwLTIuMzggMy4zOHYuMDJoLS4wMUw0IDEwbC0uNDUtLjIyLS4xLjIyLjEuMjJMNCAxMGwtLjQ1LjIyLjAxLjAyYTUuNSA1LjUgMCAwMC4xNS4yOCAxNiAxNiAwIDAwMi41MyAzLjQxem02LjA5LS40M2EzLjYgMy42IDAgMDA0LjI0LTQuMjRsLS45My45M2EyLjYgMi42IDAgMDEtMi4zNiAyLjM2bC0uOTUuOTV6bS0xLjk3LTMuNjlsLS45My45M2EzLjYgMy42IDAgMDE0LjI0LTQuMjRsLS45NS45NWEyLjYgMi42IDAgMDAtMi4zNiAyLjM2em0xMS4yOSA3Ljg0bC0uOC43OWExLjUgMS41IDAgMDAwIDIuMTJsLjU5LjU5YTEuNSAxLjUgMCAwMDIuMTIgMGwxLjgtMS44LS43MS0uNy0xLjggMS43OWEuNS41IDAgMDEtLjcgMGwtLjU5LS41OWEuNS41IDAgMDEwLS43bC44LS44LS43MS0uN3ptLTUuNSAzLjVsLjM1LjM1LS4zNS0uMzUuMDEtLjAyLjAyLS4wMi4wMi0uMDJhNC42OCA0LjY4IDAgMDEuNjUtLjVjLjQtLjI3IDEtLjU5IDEuNjUtLjU5LjY2IDAgMS4yOC4zMyAxLjczLjc3LjQ0LjQ1Ljc3IDEuMDcuNzcgMS43M2EyLjUgMi41IDAgMDEtLjc3IDEuNzMgMi41IDIuNSAwIDAxLTEuNzMuNzdoLTRhLjUuNSAwIDAxLS40Mi0uNzhsMS0xLjUgMS0xLjVhLjUuNSAwIDAxLjA3LS4wN3ptLjc0LjY3YTMuNDYgMy40NiAwIDAxLjUxLS40Yy4zNS0uMjQuNzUtLjQyIDEuMS0uNDIuMzQgMCAuNzIuMTcgMS4wMi40OC4zLjMuNDguNjguNDggMS4wMiAwIC4zNC0uMTcuNzItLjQ4IDEuMDItLjMuMy0uNjguNDgtMS4wMi40OGgtMy4wN2wuNDktLjcyLjk3LTEuNDZ6TTIxLjIgMi41TDUuNSAxOC4ybC0uNy0uN0wyMC41IDEuOGwuNy43eiIvPjwvc3ZnPid9LDYzNDQ5MShsKXtsLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iMjgiIGhlaWdodD0iMjgiPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZD0iTTE2LjQ3IDMuN0E4LjMyIDguMzIgMCAwMDEzIDIuOTRjLTMuMTIgMC01LjUgMS43NS03LjA2IDMuNDRhMTYgMTYgMCAwMC0yLjM4IDMuMzh2LjAyaC0uMDFMNCAxMGwtLjQ1LS4yMi0uMS4yMi4xLjIyTDQgMTBsLS40NS4yMi4wMS4wMmE1LjUgNS41IDAgMDAuMTUuMjggMTYgMTYgMCAwMDIuNTMgMy40MWwuNy0uNy0uMjctLjI5YTE1IDE1IDAgMDEtMi4wOC0yLjlMNC41NiAxMGwuMDMtLjA0YTE1IDE1IDAgMDEyLjA5LTIuOWMxLjQ3LTEuNiAzLjYtMy4xMiA2LjMyLTMuMTIuOTggMCAxLjg4LjIgMi43LjUybC43Ny0uNzZ6bS03LjA0IDcuMDRsLjkzLS45M2EyLjYgMi42IDAgMDEyLjM2LTIuMzZsLjk1LS45NWEzLjYgMy42IDAgMDAtNC4yNCA0LjI0em0uMSA1LjU2YzEuMDMuNDcgMi4xOC43NiAzLjQ3Ljc2IDMuMTIgMCA1LjUtMS43NSA3LjA2LTMuNDRhMTYgMTYgMCAwMDIuMzgtMy4zOHYtLjAyaC4wMUwyMiAxMGwuNDUuMjIuMS0uMjItLjEtLjIyTDIyIDEwbC40NS0uMjItLjAxLS4wMi0uMDItLjAzLS4wMS0uMDNhOS41IDkuNSAwIDAwLS41Ny0xIDE2IDE2IDAgMDAtMi4wOC0yLjYzbC0uNy43LjI3LjI5YTE1LjAxIDE1LjAxIDAgMDEyLjA4IDIuOWwuMDMuMDQtLjAzLjA0YTE1IDE1IDAgMDEtMi4wOSAyLjljLTEuNDcgMS42LTMuNiAzLjEyLTYuMzIgMy4xMi0uOTggMC0xLjg4LS4yLTIuNy0uNTJsLS43Ny43NnptMi44LTIuOGEzLjYgMy42IDAgMDA0LjI0LTQuMjRsLS45My45M2EyLjYgMi42IDAgMDEtMi4zNiAyLjM2bC0uOTUuOTV6bTcuOSAzLjczYy0uMTIuMTItLjIzLjM1LS4yMy43N3YyaDF2MWgtMXYyYzAgLjU4LS4xNCAxLjEtLjUyIDEuNDgtLjM4LjM4LS45LjUyLTEuNDguNTJzLTEuMS0uMTQtMS40OC0uNTJjLS4zOC0uMzgtLjUyLS45LS41Mi0xLjQ4aDFjMCAuNDIuMS42NS4yMy43Ny4xMi4xMi4zNS4yMy43Ny4yMy40MiAwIC42NS0uMS43Ny0uMjMuMTItLjEyLjIzLS4zNS4yMy0uNzd2LTJoLTF2LTFoMXYtMmMwLS41OC4xNC0xLjEuNTItMS40OC4zOC0uMzguOS0uNTIgMS40OC0uNTJzMS4xLjE0IDEuNDguNTJjLjM4LjM4LjUyLjkuNTIgMS40OGgtMWMwLS40Mi0uMS0uNjUtLjIzLS43Ny0uMTItLjEyLS4zNS0uMjMtLjc3LS4yMy0uNDIgMC0uNjUuMS0uNzcuMjN6bTIuNTYgNi4yN2wtMS4xNC0xLjE1LjctLjcgMS4xNSAxLjE0IDEuMTUtMS4xNC43LjctMS4xNCAxLjE1IDEuMTQgMS4xNS0uNy43LTEuMTUtMS4xNC0xLjE1IDEuMTQtLjctLjcgMS4xNC0xLjE1ek0yMS4yIDIuNUw1LjUgMTguMmwtLjctLjdMMjAuNSAxLjhsLjcuN3oiLz48L3N2Zz4nfSw0MDgwOTkobCl7CmwuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyOCAyOCIgd2lkdGg9IjI4IiBoZWlnaHQ9IjI4Ij48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGQ9Ik01LjUgMTguMkwyMS4yIDIuNWwtLjctLjdMNC44IDE3LjVsLjcuN3pNMTkuMDUgNi43OGwuNzEtLjdhMTQuMjYgMTQuMjYgMCAwIDEgMi4wOCAyLjY0IDE0LjI2IDE0LjI2IDAgMCAxIC42IDEuMDV2LjAyaC4wMUwyMiAxMGwuNDUuMjItLjAxLjAyYTUuMTggNS4xOCAwIDAgMS0uMTUuMjggMTYgMTYgMCAwIDEtMi4yMyAzLjFjLTEuNTYgMS42OS0zLjk0IDMuNDQtNy4wNiAzLjQ0LTEuMjkgMC0yLjQ0LS4zLTMuNDctLjc2bC43Ni0uNzZjLjgzLjMyIDEuNzMuNTIgMi43MS41MiAyLjczIDAgNC44NS0xLjUzIDYuMzMtMy4xMmExNS4wMSAxNS4wMSAwIDAgMCAyLjA4LTIuOWwuMDMtLjA0LS4wMy0uMDRhMTUgMTUgMCAwIDAtMi4zNi0zLjE4ek0yMiAxMGwuNDUtLjIyLjEuMjItLjEuMjJMMjIgMTB6TTYuOTQgMTMuMjNsLS43LjdhMTQuMjQgMTQuMjQgMCAwIDEtMi4wOC0yLjY0IDE0LjI4IDE0LjI4IDAgMCAxLS42LTEuMDV2LS4wMmgtLjAxTDQgMTBsLS40NS0uMjIuMDEtLjAyYTUuNTUgNS41NSAwIDAgMSAuMTUtLjI4IDE2IDE2IDAgMCAxIDIuMjMtMy4xQzcuNSA0LjY5IDkuODggMi45NCAxMyAyLjk0YzEuMjkgMCAyLjQ0LjMgMy40Ny43NmwtLjc2Ljc2QTcuMjcgNy4yNyAwIDAgMCAxMyAzLjk0Yy0yLjczIDAtNC44NSAxLjUzLTYuMzMgMy4xMmExNSAxNSAwIDAgMC0yLjA4IDIuOWwtLjAzLjA0LjAzLjA0YTE1LjAxIDE1LjAxIDAgMCAwIDIuMzYgMy4xOHpNNCAxMGwtLjQ1LjIyLS4xLS4yMi4xLS4yMkw0IDEwem05IDMuNTZjLS4yMyAwLS40Ni0uMDItLjY3LS4wNmwuOTUtLjk1YTIuNiAyLjYgMCAwIDAgMi4zNi0yLjM2bC45My0uOTNhMy42IDMuNiAwIDAgMS0zLjU3IDQuM3ptLTMuNTctMi44MmwuOTMtLjkzYTIuNiAyLjYgMCAwIDEgMi4zNi0yLjM2bC45NS0uOTVhMy42IDMuNiAwIDAgMC00LjI0IDQuMjR6TTE3LjUgMjEuOWwzLjI4IDIuMThhLjUuNSAwIDEgMS0uNTYuODRMMTcuNSAyMy4xbC0yLjcyIDEuODJhLjUuNSAwIDEgMS0uNTYtLjg0bDMuMjgtMi4xOHpNMTguNTggMTkuMjJhLjUuNSAwIDAgMSAuNy0uMTRMMjIgMjAuOWwyLjcyLTEuODJhLjUuNSAwIDAgMSAuNTYuODRMMjIgMjIuMWwtMy4yOC0yLjE4YS41LjUgMCAwIDEtLjE0LS43eiIvPjwvc3ZnPid9LDI4Njc2NihsKXtsLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMjggMjgiIHdpZHRoPSIyOCIgaGVpZ2h0PSIyOCI+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xNCA2YTMgMyAwIDAgMC0zIDN2M2g2VjlhMyAzIDAgMCAwLTMtM3ptNCA2VjlhNCA0IDAgMCAwLTggMHYzSDguNUEyLjUgMi41IDAgMCAwIDYgMTQuNXY3QTIuNSAyLjUgMCAwIDAgOC41IDI0aDExYTIuNSAyLjUgMCAwIDAgMi41LTIuNXYtN2EyLjUgMi41IDAgMCAwLTIuNS0yLjVIMTh6bS01IDVhMSAxIDAgMSAxIDIgMHYyYTEgMSAwIDEgMS0yIDB2LTJ6bS02LTIuNWMwLS44My42Ny0xLjUgMS41LTEuNWgxMWMuODMgMCAxLjUuNjcgMS41IDEuNXY3YzAgLjgzLS42NyAxLjUtMS41IDEuNWgtMTFBMS41IDEuNSAwIDAgMSA3IDIxLjV2LTd6Ii8+PC9zdmc+J30sNTk3OTQxKGwpe2wuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyOCAyOCIgd2lkdGg9IjI4IiBoZWlnaHQ9IjI4Ij48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTE0IDZhMyAzIDAgMCAwLTMgM3YzaDguNWEyLjUgMi41IDAgMCAxIDIuNSAyLjV2N2EyLjUgMi41IDAgMCAxLTIuNSAyLjVoLTExQTIuNSAyLjUgMCAwIDEgNiAyMS41di03QTIuNSAyLjUgMCAwIDEgOC41IDEySDEwVjlhNCA0IDAgMCAxIDggMGgtMWEzIDMgMCAwIDAtMy0zem0tMSAxMWExIDEgMCAxIDEgMiAwdjJhMSAxIDAgMSAxLTIgMHYtMnptLTYtMi41YzAtLjgzLjY3LTEuNSAxLjUtMS41aDExYy44MyAwIDEuNS42NyAxLjUgMS41djdjMCAuODMtLjY3IDEuNS0xLjUgMS41aC0xMUExLjUgMS41IDAgMCAxIDcgMjEuNXYtN3oiLz48L3N2Zz4nfSwzMDE2MDcobCl7bC5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjI4IiBoZWlnaHQ9IjI4Ij48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTQuNTYgMTRhMTAuMDUgMTAuMDUgMCAwMC41Mi45MWMuNDEuNjkgMS4wNCAxLjYgMS44NSAyLjVDOC41OCAxOS4yNSAxMC45NSAyMSAxNCAyMWMzLjA1IDAgNS40Mi0xLjc2IDcuMDctMy41OEExNy4xOCAxNy4xOCAwIDAwMjMuNDQgMTRhOS40NyA5LjQ3IDAgMDAtLjUyLS45MWMtLjQxLS42OS0xLjA0LTEuNi0xLjg1LTIuNUMxOS40MiA4Ljc1IDE3LjA1IDcgMTQgN2MtMy4wNSAwLTUuNDIgMS43Ni03LjA3IDMuNThBMTcuMTggMTcuMTggMCAwMDQuNTYgMTR6TTI0IDE0bC40NS0uMjEtLjAxLS4wM2E3LjAzIDcuMDMgMCAwMC0uMTYtLjMyYy0uMTEtLjItLjI4LS41MS0uNS0uODctLjQ0LS43Mi0xLjEtMS42OS0xLjk3LTIuNjVDMjAuMDggNy45OSAxNy40NSA2IDE0IDZjLTMuNDUgMC02LjA4IDItNy44IDMuOTJhMTguMTggMTguMTggMCAwMC0yLjY0IDMuODR2LjAyaC0uMDFMNCAxNGwtLjQ1LS4yMS0uMS4yMS4xLjIxTDQgMTRsLS40NS4yMS4wMS4wM2E1Ljg1IDUuODUgMCAwMC4xNi4zMmMuMTEuMi4yOC41MS41Ljg3LjQ0LjcyIDEuMSAxLjY5IDEuOTcgMi42NUM3LjkyIDIwLjAxIDEwLjU1IDIyIDE0IDIyYzMuNDUgMCA2LjA4LTIgNy44LTMuOTJhMTguMTggMTguMTggMCAwMDIuNjQtMy44NHYtLjAyaC4wMUwyNCAxNHptMCAwbC40NS4yMS4xLS4yMS0uMS0uMjFMMjQgMTR6bS0xMC0zYTMgMyAwIDEwMCA2IDMgMyAwIDAwMC02em0tNCAzYTQgNCAwIDExOCAwIDQgNCAwIDAxLTggMHoiLz48L3N2Zz4nfSw3MTQ3OTgobCl7CmwuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyOCIgaGVpZ2h0PSIyOCI+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik01IDEwLjc2bC0uNDEtLjcyLS4wMy0uMDQuMDMtLjA0YTE1IDE1IDAgMDEyLjA5LTIuOWMxLjQ3LTEuNiAzLjYtMy4xMiA2LjMyLTMuMTIgMi43MyAwIDQuODUgMS41MyA2LjMzIDMuMTJhMTUuMDEgMTUuMDEgMCAwMTIuMDggMi45bC4wMy4wNC0uMDMuMDRhMTUgMTUgMCAwMS0yLjA5IDIuOWMtMS40NyAxLjYtMy42IDMuMTItNi4zMiAzLjEyLTIuNzMgMC00Ljg1LTEuNTMtNi4zMy0zLjEyYTE1IDE1IDAgMDEtMS42Ni0yLjE4em0xNy40NS0uOThMMjIgMTBsLjQ1LjIyLS4wMS4wMmE1LjA0IDUuMDQgMCAwMS0uMTUuMjggMTYuMDEgMTYuMDEgMCAwMS0yLjIzIDMuMWMtMS41NiAxLjY5LTMuOTQgMy40NC03LjA2IDMuNDQtMy4xMiAwLTUuNS0xLjc1LTcuMDYtMy40NGExNiAxNiAwIDAxLTIuMzgtMy4zOHYtLjAyaC0uMDFMNCAxMGwtLjQ1LS4yMi4wMS0uMDJhNS40IDUuNCAwIDAxLjE1LS4yOCAxNiAxNiAwIDAxMi4yMy0zLjFDNy41IDQuNjkgOS44OCAyLjk0IDEzIDIuOTRjMy4xMiAwIDUuNSAxLjc1IDcuMDYgMy40NGExNi4wMSAxNi4wMSAwIDAxMi4zOCAzLjM4di4wMmguMDF6TTIyIDEwbC40NS0uMjIuMS4yMi0uMS4yMkwyMiAxMHpNMy41NSA5Ljc4TDQgMTBsLS40NS4yMi0uMS0uMjIuMS0uMjJ6bTYuOC4yMkEyLjYgMi42IDAgMDExMyA3LjQ0IDIuNiAyLjYgMCAwMTE1LjY1IDEwIDIuNiAyLjYgMCAwMTEzIDEyLjU2IDIuNiAyLjYgMCAwMTEwLjM1IDEwek0xMyA2LjQ0QTMuNiAzLjYgMCAwMDkuMzUgMTAgMy42IDMuNiAwIDAwMTMgMTMuNTZjMiAwIDMuNjUtMS41OCAzLjY1LTMuNTZBMy42IDMuNiAwIDAwMTMgNi40NHptNy44NSAxMmwuOC0uOC43LjcxLS43OS44YS41LjUgMCAwMDAgLjdsLjU5LjU5Yy4yLjIuNS4yLjcgMGwxLjgtMS44LjcuNzEtMS43OSAxLjhhMS41IDEuNSAwIDAxLTIuMTIgMGwtLjU5LS41OWExLjUgMS41IDAgMDEwLTIuMTJ6TTE2LjUgMjEuNWwtLjM1LS4zNWEuNS41IDAgMDAtLjA3LjA3bC0xIDEuNS0xIDEuNWEuNS41IDAgMDAuNDIuNzhoNGEyLjUgMi41IDAgMDAxLjczLS43N0EyLjUgMi41IDAgMDAyMSAyMi41YTIuNSAyLjUgMCAwMC0uNzctMS43M0EyLjUgMi41IDAgMDAxOC41IDIwYTMuMSAzLjEgMCAwMC0xLjY1LjU4IDUuMjggNS4yOCAwIDAwLS42OS41NXYuMDFoLS4wMWwuMzUuMzZ6bS4zOS4zMmwtLjk3IDEuNDYtLjQ5LjcyaDMuMDdjLjM0IDAgLjcyLS4xNyAxLjAyLS40OC4zLS4zLjQ4LS42OC40OC0xLjAyIDAtLjM0LS4xNy0uNzItLjQ4LTEuMDItLjMtLjMtLjY4LS40OC0xLjAyLS40OC0uMzUgMC0uNzUuMTgtMS4xLjQyYTQuMjcgNC4yNyAwIDAwLS41MS40eiIvPjwvc3ZnPid9LDc0MzM4MShsKXtsLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iMjgiIGhlaWdodD0iMjgiPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNNSAxMC43NmExMy4yNyAxMy4yNyAwIDAxLS40MS0uNzJMNC41NiAxMGwuMDMtLjA0YTE1IDE1IDAgMDEyLjA4LTIuOWMxLjQ4LTEuNiAzLjYtMy4xMiA2LjMzLTMuMTJzNC44NSAxLjUzIDYuMzMgMy4xMmExNS4wMSAxNS4wMSAwIDAxMi4wOCAyLjlsLjAzLjA0LS4wMy4wNGExNSAxNSAwIDAxLTIuMDggMi45Yy0xLjQ4IDEuNi0zLjYgMy4xMi02LjMzIDMuMTJzLTQuODUtMS41My02LjMzLTMuMTJhMTUgMTUgMCAwMS0xLjY2LTIuMTh6bTE3LjQ1LS45OEwyMiAxMGwuNDUuMjItLjAxLjAyYTE0LjMgMTQuMyAwIDAxLS42IDEuMDVjLS40LjY0LTEgMS40OC0xLjc4IDIuMzMtMS41NiAxLjctMy45NCAzLjQ0LTcuMDYgMy40NHMtNS41LTEuNzUtNy4wNi0zLjQ0YTE2IDE2IDAgMDEtMi4yMy0zLjEgOS4zOSA5LjM5IDAgMDEtLjE1LS4yOHYtLjAyaC0uMDFMNCAxMGwtLjQ1LS4yMi4wMS0uMDJhNS41OSA1LjU5IDAgMDEuMTUtLjI4IDE2IDE2IDAgMDEyLjIzLTMuMUM3LjUgNC42OSA5Ljg3IDIuOTQgMTMgMi45NGMzLjEyIDAgNS41IDEuNzUgNy4wNiAzLjQ0YTE2IDE2IDAgMDEyLjIzIDMuMSA5LjUgOS41IDAgMDEuMTUuMjh2LjAxbC4wMS4wMXpNMjIgMTBsLjQ1LS4yMi4xLjIyLS4xLjIyTDIyIDEwek0zLjU1IDkuNzhMNCAxMGwtLjQ1LjIyLS4xLS4yMi4xLS4yMnptNi44LjIyQTIuNiAyLjYgMCAwMTEzIDcuNDQgMi42IDIuNiAwIDAxMTUuNjUgMTAgMi42IDIuNiAwIDAxMTMgMTIuNTYgMi42IDIuNiAwIDAxMTAuMzUgMTB6TTEzIDYuNDRBMy42IDMuNiAwIDAwOS4zNSAxMGMwIDEuOTggMS42NSAzLjU2IDMuNjUgMy41NnMzLjY1LTEuNTggMy42NS0zLjU2QTMuNiAzLjYgMCAwMDEzIDYuNDR6TTIwIDE4YzAtLjQyLjEtLjY1LjIzLS43Ny4xMi0uMTMuMzUtLjIzLjc3LS4yMy40MiAwIC42NS4xLjc3LjIzLjEzLjEyLjIzLjM1LjIzLjc3aDFjMC0uNTgtLjE0LTEuMS0uNTItMS40OC0uMzgtLjM4LS45LS41Mi0xLjQ4LS41MnMtMS4xLjE0LTEuNDguNTJjLS4zNy4zOC0uNTIuOS0uNTIgMS40OHYyaC0xdjFoMXYyYzAgLjQyLS4xLjY1LS4yMy43Ny0uMTIuMTMtLjM1LjIzLS43Ny4yMy0uNDIgMC0uNjUtLjEtLjc3LS4yMy0uMTMtLjEyLS4yMy0uMzUtLjIzLS43N2gtMWMwIC41OC4xNCAxLjEuNTIgMS40OC4zOC4zNy45LjUyIDEuNDguNTJzMS4xLS4xNCAxLjQ4LS41MmMuMzctLjM4LjUyLS45LjUyLTEuNDh2LTJoMXYtMWgtMXYtMnptMS42NSA0LjM1bDEuMTQgMS4xNS0xLjE0IDEuMTUuNy43IDEuMTUtMS4xNCAxLjE1IDEuMTQuNy0uNy0xLjE0LTEuMTUgMS4xNC0xLjE1LS43LS43LTEuMTUgMS4xNC0xLjE1LTEuMTQtLjcuN3oiLz48L3N2Zz4nfSw3NTYwNzMobCl7CmwuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyOCAyOCIgd2lkdGg9IjI4IiBoZWlnaHQ9IjI4Ij48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTQuNSAxMGE4LjQ2IDguNDYgMCAwIDAgLjQ2LjhjLjM4LjYuOTQgMS40IDEuNjggMi4xOSAxLjQ4IDEuNiAzLjYyIDMuMTMgNi4zNiAzLjEzczQuODgtMS41MyA2LjM2LTMuMTNBMTUuMDcgMTUuMDcgMCAwIDAgMjEuNSAxMGE3LjQxIDcuNDEgMCAwIDAtLjQ2LS44Yy0uMzgtLjYtLjk0LTEuNC0xLjY4LTIuMTktMS40OC0xLjYtMy42Mi0zLjEzLTYuMzYtMy4xM1M4LjEyIDUuNCA2LjY0IDdBMTUuMDcgMTUuMDcgMCAwIDAgNC41IDEwek0yMiAxMGwuNDEtLjE5LS40LjE5em0wIDBsLjQxLjE5LS40LS4xOXptLjQxLjE5bC4wOS0uMTktLjA5LS4xOS0uMDEtLjAyYTYuODYgNi44NiAwIDAgMC0uMTUtLjI4Yy0uMS0uMTgtLjI1LS40NS0uNDUtLjc2LS40LS42NC0uOTktMS40OC0xLjc3LTIuMzJDMTguNDcgNC43NCAxNi4xMSAzIDEzIDMgOS44OSAzIDcuNTMgNC43NCA1Ljk3IDYuNDNBMTUuOTQgMTUuOTQgMCAwIDAgMy42IDkuNzl2LjAyaC0uMDFMMy41IDEwbC4wOS4xOS4wMS4wMmE2LjU5IDYuNTkgMCAwIDAgLjE1LjI4Yy4xLjE4LjI1LjQ1LjQ1Ljc2LjQuNjQuOTkgMS40OCAxLjc3IDIuMzJDNy41MyAxNS4yNiA5Ljg5IDE3IDEzIDE3YzMuMTEgMCA1LjQ3LTEuNzQgNy4wMy0zLjQzYTE1Ljk0IDE1Ljk0IDAgMCAwIDIuMzctMy4zNnYtLjAyaC4wMXpNNCAxMGwtLjQxLS4xOS40LjE5em05LTIuNjNjLTEuNSAwLTIuNyAxLjE4LTIuNyAyLjYzczEuMiAyLjYzIDIuNyAyLjYzYzEuNSAwIDIuNy0xLjE4IDIuNy0yLjYzUzE0LjUgNy4zNyAxMyA3LjM3ek05LjQgMTBDOS40IDguMDcgMTEgNi41IDEzIDYuNXMzLjYgMS41NyAzLjYgMy41UzE1IDEzLjUgMTMgMTMuNUEzLjU1IDMuNTUgMCAwIDEgOS40IDEwem04LjEgMTEuOWwzLjI4IDIuMThhLjUuNSAwIDEgMS0uNTYuODRMMTcuNSAyMy4xbC0yLjcyIDEuODJhLjUuNSAwIDEgMS0uNTYtLjg0bDMuMjgtMi4xOHptMS43OC0yLjgyYS41LjUgMCAwIDAtLjU2Ljg0TDIyIDIyLjFsMy4yOC0yLjE4YS41LjUgMCAxIDAtLjU2LS44NEwyMiAyMC45bC0yLjcyLTEuODJ6Ii8+PC9zdmc+J30sMjA4MDgxKGwpe2wuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyOCAyOCIgd2lkdGg9IjI4IiBoZWlnaHQ9IjI4Ij48ZyBmaWxsPSJjdXJyZW50Q29sb3IiIGZpbGwtcnVsZT0ibm9uemVybyI+PHBhdGggZD0iTTE1LjUgMjIuNWMwLTIuNjk3LTEuMDczLTUuMjI1LTIuOTQ3LTcuMDg5bC0uNzA1LjcwOWMxLjY4NyAxLjY3OSAyLjY1MiAzLjk1MiAyLjY1MiA2LjM4aDF6Ii8+PHBhdGggZD0iTTcuMzU0IDIxLjM1NGwxNC0xNC0uNzA3LS43MDctMTQgMTR6Ii8+PHBhdGggZD0iTTcuNSAyM2gxNi41di0xaC0xNi41eiIvPjxwYXRoIGQ9Ik0yMi41IDdjLjgyOCAwIDEuNS0uNjcyIDEuNS0xLjVzLS42NzItMS41LTEuNS0xLjUtMS41LjY3Mi0xLjUgMS41LjY3MiAxLjUgMS41IDEuNXptMCAxYy0xLjM4MSAwLTIuNS0xLjExOS0yLjUtMi41czEuMTE5LTIuNSAyLjUtMi41IDIuNSAxLjExOSAyLjUgMi41LTEuMTE5IDIuNS0yLjUgMi41ek01LjUgMjRjLjgyOCAwIDEuNS0uNjcyIDEuNS0xLjVzLS42NzItMS41LTEuNS0xLjUtMS41LjY3Mi0xLjUgMS41LjY3MiAxLjUgMS41IDEuNXptMCAxYy0xLjM4MSAwLTIuNS0xLjExOS0yLjUtMi41czEuMTE5LTIuNSAyLjUtMi41IDIuNSAxLjExOSAyLjUgMi41LTEuMTE5IDIuNS0yLjUgMi41eiIvPjwvZz48L3N2Zz4nfSwyODQ3NDkobCl7bC5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDI4IDI4IiB3aWR0aD0iMjgiIGhlaWdodD0iMjgiPjxnIGZpbGw9ImN1cnJlbnRDb2xvciIgZmlsbC1ydWxlPSJub256ZXJvIj48cGF0aCBkPSJNNCAyNWgyMnYtMWgtMjJ6IiBpZD0iTGluZSIvPjxwYXRoIGQ9Ik00IDIxaDIydi0xaC0yMnoiLz48cGF0aCBkPSJNNi41IDE3aDE5LjV2LTFoLTE5LjV6Ii8+PHBhdGggZD0iTTUgMTQuNXYtM2gtMXYzek02LjYxNyA5LjI3NWwxMC4xNTgtMy42MjgtLjMzNi0uOTQyLTEwLjE1OCAzLjYyOHoiLz48cGF0aCBkPSJNMTguNSA2Yy44MjggMCAxLjUtLjY3MiAxLjUtMS41cy0uNjcyLTEuNS0xLjUtMS41LTEuNS42NzItMS41IDEuNS42NzIgMS41IDEuNSAxLjV6bTAgMWMtMS4zODEgMC0yLjUtMS4xMTktMi41LTIuNXMxLjExOS0yLjUgMi41LTIuNSAyLjUgMS4xMTkgMi41IDIuNS0xLjExOSAyLjUtMi41IDIuNXpNNC41IDExYy44MjggMCAxLjUtLjY3MiAxLjUtMS41cy0uNjcyLTEuNS0xLjUtMS41LTEuNS42NzItMS41IDEuNS42NzIgMS41IDEuNSAxLjV6bTAgMWMtMS4zODEgMC0yLjUtMS4xMTktMi41LTIuNXMxLjExOS0yLjUgMi41LTIuNSAyLjUgMS4xMTkgMi41IDIuNS0xLjExOSAyLjUtMi41IDIuNXpNNC41IDE4Yy44MjggMCAxLjUtLjY3MiAxLjUtMS41cy0uNjcyLTEuNS0xLjUtMS41LTEuNS42NzItMS41IDEuNS42NzIgMS41IDEuNSAxLjV6bTAgMWMtMS4zODEgMC0yLjUtMS4xMTktMi41LTIuNXMxLjExOS0yLjUgMi41LTIuNSAyLjUgMS4xMTkgMi41IDIuNS0xLjExOSAyLjUtMi41IDIuNXoiLz48L2c+PC9zdmc+J30sODYxNDM3KGwpewpsLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMjggMjgiIHdpZHRoPSIyOCIgaGVpZ2h0PSIyOCI+PGcgZmlsbD0iY3VycmVudENvbG9yIiBmaWxsLXJ1bGU9Im5vbnplcm8iPjxwYXRoIGQ9Ik0yMCAydjIyaDF2LTIyeiIvPjxwYXRoIGQ9Ik0yNCAydjIyaDF2LTIyeiIvPjxwYXRoIGQ9Ik00LjY3MyAxMS40NzFsMy42OSAxMC4zMzMuOTQyLS4zMzYtMy42OS0xMC4zMzN6Ii8+PHBhdGggZD0iTTE3IDIxLjUzNXYtMTkuNTM1aC0xdjE5LjUzNXoiLz48cGF0aCBkPSJNMTEuNSAyNGgzdi0xaC0zeiIvPjxwYXRoIGQ9Ik00LjUgMTFjLjgyOCAwIDEuNS0uNjcyIDEuNS0xLjVzLS42NzItMS41LTEuNS0xLjUtMS41LjY3Mi0xLjUgMS41LjY3MiAxLjUgMS41IDEuNXptMCAxYy0xLjM4MSAwLTIuNS0xLjExOS0yLjUtMi41czEuMTE5LTIuNSAyLjUtMi41IDIuNSAxLjExOSAyLjUgMi41LTEuMTE5IDIuNS0yLjUgMi41ek05LjUgMjVjLjgyOCAwIDEuNS0uNjcyIDEuNS0xLjVzLS42NzItMS41LTEuNS0xLjUtMS41LjY3Mi0xLjUgMS41LjY3MiAxLjUgMS41IDEuNXptMCAxYy0xLjM4MSAwLTIuNS0xLjExOS0yLjUtMi41czEuMTE5LTIuNSAyLjUtMi41IDIuNSAxLjExOSAyLjUgMi41LTEuMTE5IDIuNS0yLjUgMi41ek0xNi41IDI1Yy44MjggMCAxLjUtLjY3MiAxLjUtMS41cy0uNjcyLTEuNS0xLjUtMS41LTEuNS42NzItMS41IDEuNS42NzIgMS41IDEuNSAxLjV6bTAgMWMtMS4zODEgMC0yLjUtMS4xMTktMi41LTIuNXMxLjExOS0yLjUgMi41LTIuNSAyLjUgMS4xMTkgMi41IDIuNS0xLjExOSAyLjUtMi41IDIuNXoiLz48L2c+PC9zdmc+J30sNzkxNzg3KGwpe2wuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyOCAyOCIgd2lkdGg9IjI4IiBoZWlnaHQ9IjI4Ij48ZyBmaWxsPSJjdXJyZW50Q29sb3IiIGZpbGwtcnVsZT0ibm9uemVybyI+PHBhdGggZD0iTTkuNDU3IDE4Ljg0NGwtNS4zNzEgMi40LjQwOC45MTMgNS4zNzEtMi40eiIvPjxwYXRoIGQ9Ik0xMy4xMyAxNy4yMDNsLjQwOC45MTMgMTMuNjg4LTYuMTE2LTYuNzM2LTMuMDEtLjQwOC45MTMgNC42OTIgMi4wOTd6Ii8+PHBhdGggZD0iTTExLjA3NyA1Ljg4bDUuMzQgMi4zODYuNDA4LS45MTMtNS4zNC0yLjM4NnoiLz48cGF0aCBkPSJNNy40MDEgNC4yMzdsLjQwOC0uOTEzLTUuODA5LTIuNTk1djE5Ljc3MWgxdi0xOC4yMjl6Ii8+PHBhdGggZD0iTTMuNzA4IDIwLjc3Mmw1LjUxLTE0LjE2OS0uOTMyLS4zNjItNS41MSAxNC4xNjl6TTkuMjY1IDYuMzlsMS40NiAxMC4yMTguOTktLjE0MS0xLjQ2LTEwLjIxOHpNMTMuMDU5IDE3LjE0NWw0Ljc0My02Ljc3NS0uODE5LS41NzMtNC43NDMgNi43NzV6Ii8+PHBhdGggZD0iTTkuNSA2Yy44MjggMCAxLjUtLjY3MiAxLjUtMS41cy0uNjcyLTEuNS0xLjUtMS41LTEuNS42NzItMS41IDEuNS42NzIgMS41IDEuNSAxLjV6bTAgMWMtMS4zODEgMC0yLjUtMS4xMTktMi41LTIuNXMxLjExOS0yLjUgMi41LTIuNSAyLjUgMS4xMTkgMi41IDIuNS0xLjExOSAyLjUtMi41IDIuNXpNMTEuNSAyMGMuODI4IDAgMS41LS42NzIgMS41LTEuNXMtLjY3Mi0xLjUtMS41LTEuNS0xLjUuNjcyLTEuNSAxLjUuNjcyIDEuNSAxLjUgMS41em0wIDFjLTEuMzgxIDAtMi41LTEuMTE5LTIuNS0yLjVzMS4xMTktMi41IDIuNS0yLjUgMi41IDEuMTE5IDIuNSAyLjUtMS4xMTkgMi41LTIuNSAyLjV6TTE4LjUgMTBjLjgyOCAwIDEuNS0uNjcyIDEuNS0xLjVzLS42NzItMS41LTEuNS0xLjUtMS41LjY3Mi0xLjUgMS41LjY3MiAxLjUgMS41IDEuNXptMCAxYy0xLjM4MSAwLTIuNS0xLjExOS0yLjUtMi41czEuMTE5LTIuNSAyLjUtMi41IDIuNSAxLjExOSAyLjUgMi41LTEuMTE5IDIuNS0yLjUgMi41ek0yLjUgMjRjLjgyOCAwIDEuNS0uNjcyIDEuNS0xLjVzLS42NzItMS41LTEuNS0xLjUtMS41LjY3Mi0xLjUgMS41LjY3MiAxLjUgMS41IDEuNXptMCAxYy0xLjM4MSAwLTIuNS0xLjExOS0yLjUtMi41czEuMTE5LTIuNSAyLjUtMi41IDIuNSAxLjExOSAyLjUgMi41LTEuMTE5IDIuNS0yLjUgMi41eiIvPjwvZz48L3N2Zz4nfSwyMjY2MzgobCl7bC5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDI4IDI4IiB3aWR0aD0iMjgiIGhlaWdodD0iMjgiPjxnIGZpbGw9ImN1cnJlbnRDb2xvciIgZmlsbC1ydWxlPSJub256ZXJvIj48cGF0aCBkPSJNOC41IDIzaDExdi0xaC0xMXpNNiA4LjV2MTJoMXYtMTJ6TTcuNDgzIDguMjhsMTIuMjkzIDEzLjExMi43My0uNjg0LTEyLjI5My0xMy4xMTJ6Ii8+PHBhdGggZD0iTTYuNSA4Yy44MjggMCAxLjUtLjY3MiAxLjUtMS41cy0uNjcyLTEuNS0xLjUtMS41LTEuNS42NzItMS41IDEuNS42NzIgMS41IDEuNSAxLjV6bTAgMWMtMS4zODEgMC0yLjUtMS4xMTktMi41LTIuNXMxLjExOS0yLjUgMi41LTIuNSAyLjUgMS4xMTkgMi41IDIuNS0xLjExOSAyLjUtMi41IDIuNXpNNi41IDI0Yy44MjggMCAxLjUtLjY3MiAxLjUtMS41cy0uNjcyLTEuNS0xLjUtMS41LTEuNS42NzItMS41IDEuNS42NzIgMS41IDEuNSAxLjV6bTAgMWMtMS4zODEgMC0yLjUtMS4xMTktMi41LTIuNXMxLjExOS0yLjUgMi41LTIuNSAyLjUgMS4xMTkgMi41IDIuNS0xLjExOSAyLjUtMi41IDIuNXpNMjEuNSAyNGMuODI4IDAgMS41LS42NzIgMS41LTEuNXMtLjY3Mi0xLjUtMS41LTEuNS0xLjUuNjcyLTEuNSAxLjUuNjcyIDEuNSAxLjUgMS41em0wIDFjLTEuMzgxIDAtMi41LTEuMTE5LTIuNS0yLjVzMS4xMTktMi41IDIuNS0yLjUgMi41IDEuMTE5IDIuNSAyLjUtMS4xMTkgMi41LTIuNSAyLjV6Ii8+PC9nPjwvc3ZnPid9LDgxMjkwMShsKXsKbC5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDI4IDI4IiB3aWR0aD0iMjgiIGhlaWdodD0iMjgiIGZpbGw9ImN1cnJlbnRDb2xvciI+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBkPSJtMjIuMyAyMiAuNyAxaC01LjM1bC00Ljk1LTcuMDRMNi41NCAyM0g1LjJsNi45LTcuODhMNS43MSA2IDUgNWg1LjM1bDQuNzMgNi43M0wyMC45NiA1aDEuMzNsLTYuNjIgNy41N0wyMi4zIDIyWm0tOC45Mi02LjgyLS42LS44NEw2Ljk0IDZoMi45bDExLjI0IDE2aC0yLjlsLTQuNzktNi44MloiLz48L3N2Zz4nfSw5NDE0MzkobCl7bC5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDI4IDI4IiB3aWR0aD0iMjgiIGhlaWdodD0iMjgiPjxnIGZpbGw9ImN1cnJlbnRDb2xvciIgZmlsbC1ydWxlPSJub256ZXJvIj48cGF0aCBkPSJNMTUgMTIuNXYtOC41aC0xdjguNXpNMTQgMTYuNXY4LjVoMXYtOC41eiIvPjxwYXRoIGQ9Ik0xNC41IDE2Yy44MjggMCAxLjUtLjY3MiAxLjUtMS41cy0uNjcyLTEuNS0xLjUtMS41LTEuNS42NzItMS41IDEuNS42NzIgMS41IDEuNSAxLjV6bTAgMWMtMS4zODEgMC0yLjUtMS4xMTktMi41LTIuNXMxLjExOS0yLjUgMi41LTIuNSAyLjUgMS4xMTkgMi41IDIuNS0xLjExOSAyLjUtMi41IDIuNXoiLz48L2c+PC9zdmc+J30sOTMyNzk1KGwpe2wuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyOCAyOCIgd2lkdGg9IjI4IiBoZWlnaHQ9IjI4Ij48ZyBmaWxsPSJjdXJyZW50Q29sb3IiIGZpbGwtcnVsZT0ibm9uemVybyI+PHBhdGggZD0iTTIwLjQ0OSA4LjUwNWwyLjEwMyA5LjExMi45NzQtLjIyNS0yLjEwMy05LjExMnpNMTMuOTQzIDE0LjAxMWw3LjYzMSA0Ljg1Ni41MzctLjg0NC03LjYzMS00Ljg1NnpNMTQuMzc5IDExLjcxNmw0LjgxMi0zLjYwOS0uNi0uOC00LjgxMiAzLjYwOXpNMTAuOTYgMTMuODI4bC00LjcyMSA2Ljc0NC44MTkuNTczIDQuNzIxLTYuNzQ0ek02LjMzMSAyMC42N2wyLjMxLTEzLjA4OC0uOTg1LS4xNzQtMi4zMSAxMy4wODh6TTkuMDQxIDcuNDU0bDEuOTk1IDMuNDkyLjg2OC0uNDk2LTEuOTk1LTMuNDkyeiIvPjxwYXRoIGQ9Ik04LjUgN2MuODI4IDAgMS41LS42NzIgMS41LTEuNXMtLjY3Mi0xLjUtMS41LTEuNS0xLjUuNjcyLTEuNSAxLjUuNjcyIDEuNSAxLjUgMS41em0wIDFjLTEuMzgxIDAtMi41LTEuMTE5LTIuNS0yLjVzMS4xMTktMi41IDIuNS0yLjUgMi41IDEuMTE5IDIuNSAyLjUtMS4xMTkgMi41LTIuNSAyLjV6TTUuNSAyNGMuODI4IDAgMS41LS42NzIgMS41LTEuNXMtLjY3Mi0xLjUtMS41LTEuNS0xLjUuNjcyLTEuNSAxLjUuNjcyIDEuNSAxLjUgMS41em0wIDFjLTEuMzgxIDAtMi41LTEuMTE5LTIuNS0yLjVzMS4xMTktMi41IDIuNS0yLjUgMi41IDEuMTE5IDIuNSAyLjUtMS4xMTkgMi41LTIuNSAyLjV6TTEyLjUgMTRjLjgyOCAwIDEuNS0uNjcyIDEuNS0xLjVzLS42NzItMS41LTEuNS0xLjUtMS41LjY3Mi0xLjUgMS41LjY3MiAxLjUgMS41IDEuNXptMCAxYy0xLjM4MSAwLTIuNS0xLjExOS0yLjUtMi41czEuMTE5LTIuNSAyLjUtMi41IDIuNSAxLjExOSAyLjUgMi41LTEuMTE5IDIuNS0yLjUgMi41ek0yMC41IDhjLjgyOCAwIDEuNS0uNjcyIDEuNS0xLjVzLS42NzItMS41LTEuNS0xLjUtMS41LjY3Mi0xLjUgMS41LjY3MiAxLjUgMS41IDEuNXptMCAxYy0xLjM4MSAwLTIuNS0xLjExOS0yLjUtMi41czEuMTE5LTIuNSAyLjUtMi41IDIuNSAxLjExOSAyLjUgMi41LTEuMTE5IDIuNS0yLjUgMi41ek0yMy41IDIxYy44MjggMCAxLjUtLjY3MiAxLjUtMS41cy0uNjcyLTEuNS0xLjUtMS41LTEuNS42NzItMS41IDEuNS42NzIgMS41IDEuNSAxLjV6bTAgMWMtMS4zODEgMC0yLjUtMS4xMTktMi41LTIuNXMxLjExOS0yLjUgMi41LTIuNSAyLjUgMS4xMTkgMi41IDIuNS0xLjExOSAyLjUtMi41IDIuNXoiLz48L2c+PC9zdmc+J30sNDI4Njk3KGwpe2wuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyOCAyOCIgd2lkdGg9IjI4IiBoZWlnaHQ9IjI4IiBmaWxsPSJjdXJyZW50Q29sb3IiPjxwYXRoIGQ9Ik0xNy42NDYgMTguMzU0bDQgNCAuNzA4LS43MDgtNC00eiIvPjxwYXRoIGQ9Ik0xMi41IDIxYTguNSA4LjUgMCAxIDEgMC0xNyA4LjUgOC41IDAgMCAxIDAgMTd6bTAtMWE3LjUgNy41IDAgMSAwIDAtMTUgNy41IDcuNSAwIDAgMCAwIDE1eiIvPjxwYXRoIGQ9Ik05IDEzaDd2LTFIOXoiLz48cGF0aCBkPSJNMTMgMTZWOWgtMXY3eiIvPjwvc3ZnPid9LDY3ODEyMChsKXtsLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMjggMjgiIHdpZHRoPSIyOCIgaGVpZ2h0PSIyOCIgZmlsbD0iY3VycmVudENvbG9yIj48cGF0aCBkPSJNMTcuNjQ2IDE4LjM1NGw0IDQgLjcwOC0uNzA4LTQtNHoiLz48cGF0aCBkPSJNMTIuNSAyMWE4LjUgOC41IDAgMSAxIDAtMTcgOC41IDguNSAwIDAgMSAwIDE3em0wLTFhNy41IDcuNSAwIDEgMCAwLTE1IDcuNSA3LjUgMCAwIDAgMCAxNXoiLz48cGF0aCBkPSJNOSAxM2g3di0xSDl6Ii8+PC9zdmc+J319XSk7"}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/59649.92df5c6660570716c83b.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.232Z","timestamp":1785148034232,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/59649.92df5c6660570716c83b.js HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a608293-35cf\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Wed, 22 Jul 2026 08:42:59 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/22/2026 11:01:21\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: e0dadc25c166066e72ffd34b49e3ece8\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":13775,"size_decoded":5591,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (3062)","md5":"57159064a167c575b3f42cfe243c8b4a","sha1":"2fd63df6a6219555e07b7f46761a70335b041f7f","sha256":"9507b55a5faa7e958e1e3e4aee4b5f32e94cdbf494c098c8b09ec3d032f0d99f","sha512":"415cd8a87e36d006cfb494a437457d8cb15372dae8dba44d8672272bde5159c57db31fa519cbb62c5b5ae1fc709ed3d65e6fa3fcee70b0920f0b34a22e191089","ssdeep":"384:1n+y6T2SHX//Hz6v6eeR3otnEGIMLwqIhqK6EyHv+FxjLcyJao:9+y66SHX3WyeeR3I7Lw5hqK6pHv+FxjP","tlshash":"405286527293b8f6e1b581e358740503e66d1dcaa881958cf7bc0ccea74de48b274f7a","first_seen":"2026-07-22T16:00:00.524854Z","last_seen":"2026-07-27T12:48:39.854442Z","times_seen":81,"resource_available":true,"data":"InVzZSBzdHJpY3QiOyhzZWxmLndlYnBhY2tDaHVua3RyYWRpbmd2aWV3PXNlbGYud2VicGFja0NodW5rdHJhZGluZ3ZpZXd8fFtdKS5wdXNoKFtbNTk2NDldLHs5Njg2NzEoZSx0LHMpe2Z1bmN0aW9uIGkoZSx0LHMpe2xldCBpPWVbYCR7dH0jJHtzfWBdfHxudWxsO3JldHVybiBudWxsPT09aSYmKGk9ZVt0XXx8bnVsbCksbnVsbD09PWkmJk9iamVjdC5rZXlzKGUpLmZvckVhY2goKHM9PntudWxsPT09aSYmcy5zdGFydHNXaXRoKGAke3R9I2ApJiYoaT1lW3NdfHxudWxsKX0pKSxpfXMuZCh0LHtnZXRPYnNvbGV0ZUlkZWFTeW1ib2xJbmZvOigpPT5pfSl9LDg1OTY0OShlLHQscyl7cy5kKHQse1N0dWR5Q29tcGFyZTooKT0+S30pO3ZhciBpPXMoMTM4NjM4KSxyPXMoMjMyMzY0KSxsPXMoOTMwMjMxKSxuPXMoOTY4NjcxKSxvPXMoMTUyNzY2KSxhPXMoMTk3MjcyKSx1PXMoOTUyOTAwKSxkPXMoMTI4OTk4KSxjPXMoMzE0OTE0KSxoPXMoNzY4MjkyKSxtPXMoNDA3Nzk5KSx5PXMoMjI2NDc3KSxiPXMoNzE2NzgpLF89cygxMjM2MTcpLHA9cyg4NzM1NzMpO2NvbnN0IFM9KDAsbC5pc0ZlYXR1cmVzZXRFbmFibGVkKSgiZm9yY2VfZXhjaGFuZ2VfYXNfdGl0bGUiKTtjbGFzcyB2IGV4dGVuZHMgYi5QcmljZUF4aXNWaWV3e2NvbnN0cnVjdG9yKGUsdCl7c3VwZXIoKSx0aGlzLl9zdHVkeUNvbXBhcmU9ZSx0aGlzLl9kYXRhPXR9X3VwZGF0ZVJlbmRlcmVyRGF0YShlLHQscyl7ZS52aXNpYmxlPSExLHQudmlzaWJsZT0hMTtjb25zdCByPXRoaXMuX3N0dWR5Q29tcGFyZS5wcmljZVNjYWxlKCksbD10aGlzLl9zdHVkeUNvbXBhcmUubGFzdFZhbHVlRGF0YSh0aGlzLl9kYXRhLnBsb3ROYW1lLCExKTtpZihsLm5vRGF0YXx8bnVsbD09PXJ8fHIuaXNFbXB0eSgpKXJldHVybjtjb25zdCBuPXRoaXMuX3N0dWR5Q29tcGFyZS5tb2RlbCgpLG89bi50aW1lU2NhbGUoKS52aXNpYmxlQmFyc1N0cmljdFJhbmdlKCksYT1uLm1haW5TZXJpZXMoKS5iYXJzKCkubGFzdEluZGV4KCk7aWYobnVsbD09PW98fG51bGw9PT1hKXJldHVybjtjb25zdCB1PSgwLHAucmVzZXRUcmFuc3BhcmVuY3kpKGwuY29sb3IpO2lmKGE8PW8ubGFzdEJhcigpKXMuYmFja2dyb3VuZD11LHMudGV4dENvbG9yPXRoaXMuZ2VuZXJhdGVUZXh0Q29sb3Iocy5iYWNrZ3JvdW5kKSxzLmJvcmRlckNvbG9yPXZvaWQgMCxlLmJvcmRlclZpc2libGU9ITEsdC5ib3JkZXJWaXNpYmxlPSExO2Vsc2V7Y29uc3Qgcj1uLmJhY2tncm91bmRDb2xvckF0WVBlcmNlbnRGcm9tVG9wKGwuY29vcmRpbmF0ZS8oMCxpLmVuc3VyZU5vdE51bGwpKG4ucGFuZUZvclNvdXJjZSh0aGlzLl9zdHVkeUNvbXBhcmUpKS5oZWlnaHQoKSk7cy5iYWNrZ3JvdW5kPXIscy50ZXh0Q29sb3I9dSxzLmJvcmRlckNvbG9yPXMudGV4dENvbG9yLGUuYm9yZGVyVmlzaWJsZT0hMCx0LmJvcmRlclZpc2libGU9ITB9cy5jb29yZGluYXRlPWwuY29vcmRpbmF0ZTtjb25zdCBkPW4ucHJvcGVydGllcygpLmNoaWxkcygpLnNjYWxlc1Byb3BlcnRpZXMuY2hpbGRzKCk7ZC5zaG93U2VyaWVzTGFzdFZhbHVlLnZhbHVlKCkmJihlLnRleHQ9KDAsXy5nZXRDdXJyZW50TW9kZVByaWNlVGV4dCkocixsKSxkLnNlcmllc0xhc3RWYWx1ZU1vZGUudmFsdWUoKSE9PXkuUHJpY2VBeGlzTGFzdFZhbHVlTW9kZS5MYXN0UHJpY2VBbmRQZXJjZW50YWdlVmFsdWU/ZS5zZWNvbmRMaW5lPSIiOmUuc2Vjb25kTGluZT0oMCxfLmdldE9wcG9zaXRlTW9kZVByaWNlVGV4dCkocixsKSxlLnZpc2libGU9ITApLHQudGV4dD0iIixkLnNob3dTeW1ib2xMYWJlbHMudmFsdWUoKSYmKHQudGV4dD10aGlzLl9wYW5lVGV4dCgpLHQudmlzaWJsZT10LnRleHQubGVuZ3RoPjApLGUuc2VsZWN0ZWRNYXJrQ29sb3I9bi5zZWxlY3Rpb24oKS5pc1NlbGVjdGVkKHRoaXMuX3N0dWR5Q29tcGFyZSk/dTp2b2lkIDB9X3BhbmVUZXh0KCl7bGV0IGU9IiI7Y29uc3QgdD10aGlzLl9zdHVkeUNvbXBhcmUuc3ltYm9sSW5mbygpO3JldHVybiBTP2U9KDAsZC5kaXNwbGF5ZWRTeW1ib2xFeGNoYW5nZSkodCk6dGhpcy5fc3R1ZHlDb21wYXJlLm1vZGVsKCkucHJvcGVydGllcygpLmNoaWxkcygpLnNjYWxlc1Byb3BlcnRpZXMuY2hpbGRzKCkuc2hvd1N5bWJvbExhYmVscy52YWx1ZSgpJiYoZT0oMCxkLmRpc3BsYXllZFN5bWJvbE5hbWUpKHQpKSxlfX12YXIgZz1zKDE4NTI3MSksQz1zKDUzNjcxMCksST1zKDMwOTgzNyksZj1zKDY3ODI4NSksUD1zKDMxODk3NCksVj1zKDg2MDQ0MiksVD1zKDYwMTg0MSksdz1zKDk0Mzk1KTtjb25zdCB4PVAuQ2hlY2tNb2JpbGUuYW55KCk7Y2xhc3MgTCBleHRlbmRzIEkuU3R1ZHlWYWx1ZXNQcm92aWRlcntjb25zdHJ1Y3RvcihlLHQpe3N1cGVyKGUsdCksdGhpcy5fZW1wdHlWYWx1ZXNbMF0udGl0bGU9ZS5ndWlQbG90TmFtZSh3LlRpdGxlRGlzcGxheVRhcmdldC5TdGF0dXNMaW5lLCIiKX1nZXRWYWx1ZXMoZSl7cmV0dXJuKDAsVC5pc051bWJlcikoZSl8fCh0aGlzLl9zaG93TGFzdFByaWNlQW5kQ2hhbmdlT25seSgpP2U9dGhpcy5fc3R1ZHkuZGF0YSgpLmxhc3RJbmRleCgpOihlPXRoaXMuX21vZGVsLmNyb3NzaGFpclNvdXJjZSgpLmFwcGxpZWRJbmRleCgpLCgwLFQuaXNOdW1iZXIpKGUpfHwoZT10aGlzLl9zdHVkeS5kYXRhKCkubGFzdEluZGV4KCkpKSksc3VwZXIuZ2V0VmFsdWVzKGUpfV9oaWRlVmFsdWVzKCl7cmV0dXJuITF9X3Nob3dMYXN0UHJpY2VBbmRDaGFuZ2VPbmx5KCl7cmV0dXJuIHgmJihudWxsPT09dGhpcy5fbW9kZWwuY3Jvc3NoYWlyU291cmNlKCkucGFuZXx8KDAsVi5pc0xpbmVUb29sTmFtZSkoZi50b29sLnZhbHVlKCkpfHxudWxsIT09dGhpcy5fbW9kZWwubGluZUJlaW5nRWRpdGVkKCkpfX1jbGFzcyBFIGV4dGVuZHMgQy5TdHVkeURhdGFXaW5kb3dWaWV3e2NvbnN0cnVjdG9yKGUsdCl7c3VwZXIoZSx0KSx0aGlzLl9zdHVkeUNvbXBhcmU9ZX1faGlkZVZhbHVlcygpe3JldHVybiExfV9jcmVhdGVWYWx1ZXNQcm92aWRlcihlLHQpe3JldHVybiBuZXcgTChlLHQpfX12YXIgTz1zKDk2NjQwNCksUj1zKDk0NzM4Mik7Y2xhc3MgVSBleHRlbmRzIEV7Y29uc3RydWN0b3IoZSx0KXsKc3VwZXIoZSx0KSx0aGlzLl9hZGRpdGlvbmFsPW51bGwsdGhpcy5fc2hvd1Nlcmllc09ITEM9dC5wcm9wZXJ0aWVzKCkuY2hpbGRzKCkucGFuZVByb3BlcnRpZXMuY2hpbGRzKCkubGVnZW5kUHJvcGVydGllcy5jaGlsZHMoKS5zaG93U2VyaWVzT0hMQyx0aGlzLl9zaG93U2VyaWVzT0hMQy5zdWJzY3JpYmUodGhpcywoKCk9PnRoaXMudXBkYXRlKCgwLE8uc291cmNlQ2hhbmdlRXZlbnQpKGUuaWQoKSkpKSl9YXJlVmFsdWVzVmlzaWJsZSgpe3JldHVybiB0aGlzLl9zaG93U2VyaWVzT0hMQy52YWx1ZSgpfWRlc3Ryb3koKXt0aGlzLl9zaG93U2VyaWVzT0hMQy51bnN1YnNjcmliZUFsbCh0aGlzKX1hZGRpdGlvbmFsKCl7cmV0dXJuIHRoaXMuX2ludmFsaWRhdGVkJiYodGhpcy5fdXBkYXRlSW1wbCgpLHRoaXMuX2ludmFsaWRhdGVkPSExKSx0aGlzLl9hZGRpdGlvbmFsfV91cGRhdGVJbXBsKCl7e2NvbnN0IGU9KDAsUi5nZXREYXRhVmVuZG9yU3RyaW5nKSh0aGlzLl9zdHVkeUNvbXBhcmUuc3ltYm9sSW5mbygpKTt0aGlzLl9hZGRpdGlvbmFsPWU/Zy50KG51bGwsdm9pZCAwLHMoMzY3NTM4KSkrIiAiK2U6bnVsbH1zdXBlci5fdXBkYXRlSW1wbCgpfX12YXIgQT1zKDkzMjY5MyksRj1zKDI1MDMzNCksaz1zKDI3NTg0OSk7Y2xhc3MgRCBleHRlbmRzIGsuU3R1ZHlTdGF0dXNQcm92aWRlcntnZXRTcGxpdFRpdGxlKCl7cmV0dXJuIHRoaXMuX3NvdXJjZS5nZXRTcGxpdFRpdGxlKCExKX10ZXh0KCl7cmV0dXJuIHRoaXMuX3NvdXJjZS5pc0FjdHVhbEludGVydmFsKCk/dGhpcy5fc291cmNlLmlzRmFpbGVkKCk/YCR7dGhpcy5fc291cmNlLnRpdGxlKHcuVGl0bGVEaXNwbGF5VGFyZ2V0LlN0YXR1c0xpbmUsITAsdm9pZCAwLCExLCExKX06ICR7dGhpcy5zb3VyY2VTdGF0dXNUZXh0KCl9YDpgJHt0aGlzLl9zb3VyY2UudGl0bGUody5UaXRsZURpc3BsYXlUYXJnZXQuU3RhdHVzTGluZSwhMCx2b2lkIDAsITEsITEpfSAke3RoaXMuc291cmNlU3RhdHVzVGV4dCgpfWA6dGhpcy5fc291cmNlLnRpdGxlKHcuVGl0bGVEaXNwbGF5VGFyZ2V0LlN0YXR1c0xpbmUsITAsdm9pZCAwLCExLCExKX19dmFyIE09cygyMDY1NzApLE49cygzMjI1NTQpLEg9cyg3MjM1MjUpO2NvbnN0ICQ9KDAsbC5pc0ZlYXR1cmVzZXRFbmFibGVkKSgic3R1ZHlfb3ZlcmxheV9jb21wYXJlX2xlZ2VuZF9vcHRpb24iKSxCPSgwLGwuaXNGZWF0dXJlc2V0RW5hYmxlZCkoImZvcmNlX2V4Y2hhbmdlX2FzX3RpdGxlIiksVz0hKDAsbC5pc0ZlYXR1cmVzZXRFbmFibGVkKSgiaGlkZV9zdHVkeV9jb21wYXJlX2xlZ2VuZF9pdGVtIiksaj0oMCxsLmlzRmVhdHVyZXNldEVuYWJsZWQpKCJoaWRlX3VucmVzb2x2ZWRfc3ltYm9sc19pbl9sZWdlbmQiKTt2YXIgRzshZnVuY3Rpb24oZSl7ZS5TbmFwU2hvdFN5bWJvbEluZm9LZXk9Il9fX3NuYXBzaG90In0oR3x8KEc9e30pKTtjbGFzcyBLIGV4dGVuZHMgYS5TdHVkeXtjb25zdHJ1Y3RvcihlLHQscyxpLGwsbil7c3VwZXIoZSxmdW5jdGlvbihlKXtyZXR1cm4gZS5oYXNDaGlsZCgiY3VycmVuY3lJZCIpfHxlLmFkZENoaWxkKCJjdXJyZW5jeUlkIixuZXcgaC5Qcm9wZXJ0eShudWxsKSksZS5oYXNDaGlsZCgidW5pdElkIil8fGUuYWRkQ2hpbGQoInVuaXRJZCIsbmV3IGguUHJvcGVydHkobnVsbCkpLGUuYWRkRXhjbHVkZWRLZXkoImN1cnJlbmN5SWQiLDEpLGUuYWRkRXhjbHVkZWRLZXkoInVuaXRJZCIsMSksZX0odCkscyxpLGwsbiksdGhpcy5fcmVhbGlnblRvb2xzTGFzdFBhcmFtcz1udWxsLHRoaXMuX2xhc3RSZXNvbHZlZFN5bWJvbFNvdXJjZT0iIix0aGlzLnByb3BlcnRpZXMoKS5jaGlsZHMoKS5taW5UaWNrLnN1YnNjcmliZShudWxsLCgoKT0+dGhpcy5fcmVjcmVhdGVQcmljZUZvcm1hdHRpbmdEZXBlbmRlbmNpZXMoKSkpLHRoaXMucHJvcGVydGllcygpLmNoaWxkcygpLm1pblRpY2suc3Vic2NyaWJlKG51bGwsKCgpPT50aGlzLl9tb2RlbC5mdWxsVXBkYXRlKCkpKSx0aGlzLnByb3BlcnRpZXMoKS5jaGlsZHMoKS5jdXJyZW5jeUlkLnN1YnNjcmliZSh0aGlzLHRoaXMuX29uQ3VycmVuY3lDaGFuZ2VkKSx0aGlzLnByb3BlcnRpZXMoKS5jaGlsZHMoKS51bml0SWQuc3Vic2NyaWJlKHRoaXMsdGhpcy5fb25Vbml0Q2hhbmdlZCksdGhpcy5fc3ltYm9sUmVzb2x2aW5nQWN0aXZlPW5ldyByLldhdGNoZWRWYWx1ZSghMSksdGhpcy5fc3ltYm9sSGliZXJuYXRlZD1uZXcgci5XYXRjaGVkVmFsdWUoITEpLGUubWFpblNlcmllcygpLm9uSW50ZXJ2YWxDaGFuZ2VkKCkuc3Vic2NyaWJlKHRoaXMsKCgpPT5lLnJlYWxpZ25MaW5lVG9vbHModGhpcykpKTtjb25zdCBvPSgpPT50aGlzLl9jdXJyZW5jeVVuaXRTb3VyY2VTeW1ib2xJbmZvLnNldFZhbHVlKHRoaXMuc3ltYm9sSW5mbygpKTt0aGlzLnN5bWJvbFJlc29sdmVkKCkuc3Vic2NyaWJlKHRoaXMsbyksdGhpcy5vblN0YXR1c0NoYW5nZWQoKS5zdWJzY3JpYmUodGhpcyxvKSxvKCksdGhpcy5faXNDdXJyZW5jeU9yaWdpbi5zZXRWYWx1ZSghMCksdGhpcy5faXNVbml0T3JpZ2luLnNldFZhbHVlKCEwKX1kZXN0cm95KCl7dGhpcy5fbW9kZWwubWFpblNlcmllcygpLm9uSW50ZXJ2YWxDaGFuZ2VkKCkudW5zdWJzY3JpYmVBbGwodGhpcyksdGhpcy5fY3VycmVuY3lVbml0U291cmNlU3ltYm9sSW5mby5kZXN0cm95KCksc3VwZXIuZGVzdHJveSgpfXByb3BlcnRpZXMoKXtyZXR1cm4gdGhpcy5fcHJvcGVydGllc31zeW1ib2xQYXJhbXMoKXtyZXR1cm4oMCxNLnN5bWJvbFBhcmFtcykodGhpcyl9Y29tcGFyZVN5bWJvbFBhcmFtcyhlKXtyZXR1cm4oMCxNLmNvbXBhcmVTeW1ib2xQYXJhbXMpKHRoaXMsZSx0aGlzLl9tb2RlbC51bml0Q29udmVyc2lvbkVuYWJsZWQoKSx0aGlzLl9tb2RlbC5tZXRyaWNDb252ZXJzaW9uRW5hYmxlZCgpKX1hc3luYyBzZXRTeW1ib2xQYXJhbXMoZSl7dGhpcy5fc2V0U3ltYm9sQ3VycmVuY3lVbml0SW50ZXJuYWwoZSl9c3ltYm9sKCl7cmV0dXJuIHRoaXMucHJvcGVydGllcygpLmNoaWxkcygpLmlucHV0cy5jaGlsZHMoKS5zeW1ib2wudmFsdWUoKX1zeW1ib2xPckFsaWFzKCl7cmV0dXJuIHRoaXMuc3ltYm9sKCl9CnN5bWJvbENoYW5nZWQoKXtyZXR1cm4gdGhpcy5wcm9wZXJ0aWVzKCkuY2hpbGRzKCkuaW5wdXRzLmNoaWxkcygpLnN5bWJvbH1vblN5bWJvbEludGVydmFsQ2hhbmdlZCgpe3JldHVybiB0aGlzLnN5bWJvbENoYW5nZWQoKX1zZXRTeW1ib2woZSl7dGhpcy5zZXRTeW1ib2xQYXJhbXMoe3N5bWJvbDplfSl9c3ltYm9sSW5mbygpe2lmKCF0aGlzLl9yZXNvbHZlZFN5bWJvbHMpcmV0dXJuIG51bGw7Y29uc3QgZT10aGlzLnN5bWJvbCgpO2lmKCFlKXJldHVybiBudWxsO2xldCB0O3JldHVybiB0PXRoaXMuX21vZGVsLmlzU25hcHNob3QoKT90aGlzLl9yZXNvbHZlZFN5bWJvbHMuX19fc25hcHNob3R8fG51bGw6dGhpcy5fcmVzb2x2ZWRTeW1ib2xzW3RoaXMuX2dldFN5bWJvbEZvclJlc29sdmUoZSldfHxudWxsLHRoaXMuX21vZGVsLmlzU25hcHNob3QoKSYmbnVsbD09PXQmJih0PSgwLG4uZ2V0T2Jzb2xldGVJZGVhU3ltYm9sSW5mbykodGhpcy5fcmVzb2x2ZWRTeW1ib2xzLGUsdGhpcy5jdXJyZW5jeSgpKSxudWxsIT09dCYmKHRoaXMuX3Jlc29sdmVkU3ltYm9scy5fX19zbmFwc2hvdD10KSksdH1zeW1ib2xJbmZvV1YoKXtyZXR1cm4gdGhpcy5fY3VycmVuY3lVbml0U291cmNlU3ltYm9sSW5mby5yZWFkb25seSgpfWFsaWFzU3ltYm9sSW5mbygpe3JldHVybiB0aGlzLnN5bWJvbEluZm8oKX1zeW1ib2xSZXNvbHZlZCgpe3JldHVybiB0aGlzLnN5bWJvbHNSZXNvbHZlZCgpfXN5bWJvbFJlc29sdmluZ0FjdGl2ZSgpe3JldHVybiB0aGlzLl9zeW1ib2xSZXNvbHZpbmdBY3RpdmV9c3ltYm9sSGliZXJuYXRlZCgpe3JldHVybiB0aGlzLl9zeW1ib2xIaWJlcm5hdGVkfWlzVmlzaWJsZSgpe2NvbnN0IGU9c3VwZXIuaXNWaXNpYmxlKCk7cmV0dXJuIHRoaXMuX3N5bWJvbEhpYmVybmF0ZWQuc2V0VmFsdWUoIWUpLGV9c3ltYm9sU2FtZUFzQ3VycmVudChlKXtyZXR1cm4oMCxNLnN5bWJvbFNhbWVBc0N1cnJlbnQpKGUsdGhpcy5zeW1ib2xJbmZvKCkpfXN5bWJvbFNhbWVBc1Jlc29sdmVkKGUpe3JldHVybigwLE4uc3ltYm9sU2FtZUFzUmVzb2x2ZWQpKGUsdGhpcy5fbGFzdFJlc29sdmVkU3ltYm9sU291cmNlLHRoaXMuc3ltYm9sKCkpfWN1cnJlbmN5KCl7cmV0dXJuIHRoaXMucHJvcGVydGllcygpLmNoaWxkcygpLmN1cnJlbmN5SWQudmFsdWUoKXx8bnVsbH1zZXRDdXJyZW5jeShlKXt0aGlzLnNldFN5bWJvbFBhcmFtcyh7Y3VycmVuY3k6ZX0pfXVuaXQoKXtyZXR1cm4gdGhpcy5wcm9wZXJ0aWVzKCkuY2hpbGRzKCkudW5pdElkLnZhbHVlKCl8fG51bGx9c2V0VW5pdChlKXt0aGlzLnNldFN5bWJvbFBhcmFtcyh7dW5pdDplfSl9c2V0TWV0cmljKGUpe3RoaXMuc2V0U3ltYm9sUGFyYW1zKHttZXRyaWM6ZX0pfXN0eWxlKCl7cmV0dXJuIDJ9c2V0U3R5bGUoZSl7fWludGVydmFsKCl7cmV0dXJuIHRoaXMuX21vZGVsLm1haW5TZXJpZXMoKS5pbnRlcnZhbCgpfXNldEludGVydmFsKGUpe312YWx1ZUF0KGUsdCl7cmV0dXJuIHRoaXMuZGF0YSgpLnNlYXJjaChlKT8udmFsdWVbMV0/P251bGx9c3RhdGUoZSx0KXtjb25zdCBzPXN1cGVyLnN0YXRlKGUsdCk7dGhpcy5fbW9kZWwudW5pdENvbnZlcnNpb25FbmFibGVkKCl8fGRlbGV0ZSBzLnN0YXRlLnVuaXRJZDtjb25zdCByPXRoaXMuc3ltYm9sKCk7cmV0dXJuIHMuc3RhdGUuaW5wdXRzLnN5bWJvbD0oMCxkLnN5bWJvbFRvU2F2ZUluU3RhdGUpKHRoaXMuc3ltYm9sSW5mbygpPz90aGlzLl9tb2RlbC5jaGFydEFwaSgpLmxhc3RTeW1ib2xSZXNvbHZlSW5mbyhyKSxyKSxlJiYoKDAsaS5lbnN1cmVEZWZpbmVkKShzLmRhdGEpLnN5bWJvbHM9e19fX3NuYXBzaG90OnRoaXMuc3ltYm9sSW5mbygpfHx2b2lkIDB9KSxzfXN5bWJvbFRpdGxlKGUsdCxzKXtyZXR1cm4gdGhpcy50aXRsZShlLCEwLHt9LCExLHQpfXRpdGxlSW5QYXJ0cyhlLHQscyxpLHIpe2NvbnN0IGw9dGhpcy5fdGl0bGVJblBhcnRzKGUsdCxzLGkscik7cmV0dXJuW1tsWzBdLC4uLmxbMV0/P1tdXS5qb2luKCIsICIpXX10YWdzKCl7Y29uc3QgZT10aGlzLnN5bWJvbCgpO3JldHVybiBlP1tlXTpbXX1zdGF0dXNWaWV3KCl7cmV0dXJuIFc/c3VwZXIuc3RhdHVzVmlldygpOm51bGx9Z3VpUGxvdE5hbWUoZSx0KXtyZXR1cm4gdGhpcy5wcm9wZXJ0aWVzKCkuY2hpbGRzKCkuaW5wdXRzLmNoaWxkcygpLnN5bWJvbC52YWx1ZSgpfWNhbk92ZXJyaWRlTWluVGljaygpe3JldHVybiEwfWNhbkJlSGlkZGVuQnlHbG9iYWxGbGFnKCl7cmV0dXJuITF9bGVnZW5kVmFsdWVzUHJvdmlkZXIoKXtyZXR1cm4gbmV3IEwodGhpcyx0aGlzLm1vZGVsKCkpfXN0YXR1c1Byb3ZpZGVyKGUpe3JldHVybiBuZXcgRCh0aGlzKX1tZWFzdXJlVW5pdElkKCl7cmV0dXJuKDAsZC5tZWFzdXJlVW5pdElkKSh0aGlzLnN5bWJvbEluZm8oKSl9Z2V0U3ltYm9sU3RyaW5nKGUpe3JldHVybiB2b2lkIDA9PT1lJiYoZT10aGlzLl9nZXRTeW1ib2xGb3JBcGkodGhpcy5zeW1ib2woKSkpLCgwLG0uZW5jb2RlRXh0ZW5kZWRTeW1ib2xPckdldFNpbXBsZVN5bWJvbFN0cmluZykodGhpcy5fZ2V0U3ltYm9sT2JqZWN0KGUpKX1fZ2V0U3ltYm9sU291cmNlKCl7cmV0dXJuIHRoaXN9X2NyZWF0ZVByaWNlQXhpc1ZpZXcoZSl7cmV0dXJuIG5ldyB2KHRoaXMse3Bsb3ROYW1lOiJjb21wYXJlIn0pfV9jcmVhdGVWaWV3cygpe3RoaXMuX2xlZ2VuZFZpZXd8fCh0aGlzLl9sZWdlbmRWaWV3PW5ldyBVKHRoaXMsdGhpcy5fbW9kZWwpKSx0aGlzLl9kYXRhV2luZG93Vmlld3x8KHRoaXMuX2RhdGFXaW5kb3dWaWV3PW5ldyBFKHRoaXMsdGhpcy5fbW9kZWwpKSx0aGlzLl9zdGF0dXNWaWV3fHwodGhpcy5fc3RhdHVzVmlldz1uZXcgQS5TdHVkeVN0YXR1c1ZpZXcodGhpcykpLHN1cGVyLl9jcmVhdGVWaWV3cygpfV9vblVuaXRDaGFuZ2VkKCl7ImFsd2F5c09mZiIhPT0oMCxvLmN1cnJlbmN5VW5pdE1ldHJpY1Zpc2liaWxpdHlQcm9wZXJ0eSkoKS52YWx1ZSgpJiZ0aGlzLl9tb2RlbC5mdWxsVXBkYXRlKCksdGhpcy5fbW9kZWwudW5pdENvbnZlcnNpb25FbmFibGVkKCkmJnRoaXMuaXNTdGFydGVkKCkmJnRoaXMuX3RyeUNoYW5nZUlucHV0cygpLAp0aGlzLl91bml0Q2hhbmdlZC5maXJlKCl9X2dldFN5bWJvbE9iamVjdChlKXtjb25zdCB0PXN1cGVyLl9nZXRTeW1ib2xPYmplY3QoZSkscz10aGlzLmN1cnJlbmN5KCk7bnVsbCE9PXMmJih0WyJjdXJyZW5jeS1pZCJdPXMpO2NvbnN0IGk9dGhpcy51bml0KCk7cmV0dXJuIHRoaXMuX21vZGVsLnVuaXRDb252ZXJzaW9uRW5hYmxlZCgpJiZudWxsIT09aSYmKHRbInVuaXQtaWQiXT1pKSx0fV9vblN5bWJvbFJlc29sdmluZ1N0YXJ0KGUsdCl7dGhpcy5fbGFzdFJlc29sdmVkU3ltYm9sU291cmNlPXQsc3VwZXIuX29uU3ltYm9sUmVzb2x2aW5nU3RhcnQoZSx0KSx0aGlzLl9zeW1ib2xSZXNvbHZpbmdBY3RpdmUuc2V0VmFsdWUoITApfV9vblN5bWJvbEVycm9yKCl7c3VwZXIuX29uU3ltYm9sRXJyb3IoKSx0aGlzLl9zeW1ib2xSZXNvbHZpbmdBY3RpdmUuc2V0VmFsdWUoITEpfV9vblN5bWJvbFJlc29sdmVkKGUsdCxzKXtzdXBlci5fb25TeW1ib2xSZXNvbHZlZChlLHQscyksdGhpcy5fcmVjcmVhdGVQcmljZUZvcm1hdHRpbmdEZXBlbmRlbmNpZXMoKTtjb25zdCBpPXQ9PT10aGlzLnN5bWJvbCgpPygwLGMuZXh0cmFjdFN5bWJvbE5hbWVGcm9tU3ltYm9sSW5mbykocyx0aGlzLnN5bWJvbCgpKTpudWxsLHI9KDAsZC5zeW1ib2xDdXJyZW5jeSkocyksbD0oMCxkLnN5bWJvbFVuaXQpKHMsdGhpcy5fbW9kZWwudW5pdENvbnZlcnNpb25FbmFibGVkKCkpO3RoaXMuX3NldFN5bWJvbEN1cnJlbmN5VW5pdEludGVybmFsKHtzeW1ib2w6aT8/dm9pZCAwLGN1cnJlbmN5OnIsdW5pdDpsfSxzKSx0aGlzLl9zeW1ib2xSZXNvbHZpbmdBY3RpdmUuc2V0VmFsdWUoITEpfWFzeW5jIF9jaGFuZ2VJbnB1dHNJbXBsKGUsdCl7YXdhaXQgc3VwZXIuX2NoYW5nZUlucHV0c0ltcGwoZSx0KSx0aGlzLl9yZWFsaWduTGluZVRvb2xzSWZQYXJhbXNDaGFuZ2VkKCl9X2NyZWF0ZVN0dWR5T25TZXJ2ZXIoKXtjb25zdCBlPXN1cGVyLl9jcmVhdGVTdHVkeU9uU2VydmVyKCk7cmV0dXJuIHRoaXMuX3JlYWxpZ25MaW5lVG9vbHNJZlBhcmFtc0NoYW5nZWQoKSxlfV90cnlDcmVhdGVGb3JtYXR0ZXIoKXtGLmN1c3RvbUZvcm1hdHRlcnM/LnByaWNlRm9ybWF0dGVyRmFjdG9yeT8uKHRoaXMuc3ltYm9sSW5mbygpLHRoaXMucHJvcGVydGllcygpLmNoaWxkcygpLm1pblRpY2sudmFsdWUoKSk7cmV0dXJuKDAsZC5jcmVhdGVTZXJpZXNGb3JtYXR0ZXIpKHRoaXMuc3ltYm9sSW5mbygpLHRoaXMucHJvcGVydGllcygpLmNoaWxkcygpLm1pblRpY2sudmFsdWUoKSl9X3RyeUNyZWF0ZURlZmF1bHRGb3JtYXR0ZXIoKXtyZXR1cm4oMCxkLmNyZWF0ZVNlcmllc0Zvcm1hdHRlcikodGhpcy5zeW1ib2xJbmZvKCksImRlZmF1bHQiKX1fdGl0bGVJblBhcnRzKGUsdCxzLGkscil7Y29uc3QgbD10aGlzLl9nZXRTcGxpdFRpdGxlKHIpLG49W2wubGlzdGVkRXhjaGFuZ2UsbC5wcmljZVNvdXJjZV0uZmlsdGVyKChlPT52b2lkIDAhPT1lKSk7cmV0dXJuW2wudGl0bGUsbl19X2dldFNwbGl0VGl0bGUoZSl7Y29uc3QgdD10aGlzLnN5bWJvbEluZm8oKTtyZXR1cm57dGl0bGU6dGhpcy5fZ2V0U3ltYm9sVGl0bGVQYXJ0KHQpLGxpc3RlZEV4Y2hhbmdlOnRoaXMuX2dldEV4Y2hhbmdlVGl0bGVQYXJ0KHQsZSk/P3ZvaWQgMCxwcmljZVNvdXJjZTp0aGlzLl9nZXRQcmljZVNvdXJjZVRpdGxlUGFydCh0KT8/dm9pZCAwfX1fc2tpcEhpc3RvZ3JhbUJhc2VPbkF1dG9TY2FsZSgpe3JldHVybiEwfV9pbml0Q3VycmVuY3lNZXRhRGF0YSgpeygwLHUuY29tYmluZSkoKGU9Pntjb25zdCB0PSgwLGQuc3ltYm9sQ3VycmVuY3kpKGUpO251bGwhPT1lJiZudWxsIT09dD90aGlzLl9jdXJyZW5jeU1ldGFEYXRhLnNldFZhbHVlKHtvcmlnaW5hbEN1cnJlbmN5OigwLGQuc3ltYm9sT3JpZ2luYWxDdXJyZW5jeSkoZSksY3VycmVudEN1cnJlbmN5OnQsYmFzZUN1cnJlbmN5OigwLGQuc3ltYm9sQmFzZUN1cnJlbmN5KShlKSxpc0N1cnJlbmN5Q29udmVydGlibGU6KDAsZC5zeW1ib2xDdXJyZW5jeUNvbnZlcnRpYmxlKShlKSxpc0NvbnZlcnRlZFRvT3RoZXJDdXJyZW5jeTooMCxkLmlzQ29udmVydGVkVG9PdGhlckN1cnJlbmN5KShlKSxjdXJyZW5jeU9yaWdpbk5hbWU6KDAsZC5wcm9TeW1ib2wpKGUsdGhpcy5zeW1ib2woKSl9KTp0aGlzLl9jdXJyZW5jeU1ldGFEYXRhLnNldFZhbHVlKG51bGwpfSksdGhpcy5fc3ltYm9sU291cmNlU3ltYm9sSW5mby53ZWFrUmVmZXJlbmNlKCkpfV9pbml0VW5pdE1ldGFEYXRhKCl7KDAsdS5jb21iaW5lKSgoKGUsdCk9Pntjb25zdCBzPXRoaXMuX21vZGVsLGk9KDAsZC5zeW1ib2xVbml0KShlLHMudW5pdENvbnZlcnNpb25FbmFibGVkKCkpO251bGwhPT1lJiZudWxsIT09aSYmbnVsbCE9PXQ/dGhpcy5fdW5pdE1ldGFEYXRhLnNldFZhbHVlKHt1bml0T3JpZ2luTmFtZTooMCxkLnByb1N5bWJvbCkoZSx0aGlzLnN5bWJvbCgpKSxjb252ZXJ0aWJsZUdyb3VwczooMCxILnVuaXRDb252ZXJ0aWJsZUdyb3VwcykoZSxpLHQpLGlzQ29udmVydGVkVG9PdGhlclVuaXQ6KDAsZC5pc0NvbnZlcnRlZFRvT3RoZXJVbml0KShlLHMudW5pdENvbnZlcnNpb25FbmFibGVkKCkpLG9yaWdpbmFsVW5pdDooMCxkLnN5bWJvbE9yaWdpbmFsVW5pdCkoZSxzLnVuaXRDb252ZXJzaW9uRW5hYmxlZCgpKSxjdXJyZW50VW5pdDppfSk6dGhpcy5fdW5pdE1ldGFEYXRhLnNldFZhbHVlKG51bGwpfSksdGhpcy5fc3ltYm9sU291cmNlU3ltYm9sSW5mby53ZWFrUmVmZXJlbmNlKCksdGhpcy5fYXZhaWxhYmxlVW5pdHMud2Vha1JlZmVyZW5jZSgpKX1fZ2V0U3ltYm9sVGl0bGVQYXJ0KGUpe2lmKG51bGw9PT1lKXJldHVybiBqPyIiOnRoaXMucHJvcGVydGllcygpLmNoaWxkcygpLmlucHV0cy5jaGlsZHMoKS5zeW1ib2wudmFsdWUoKTtjb25zdCB0PSgwLGQuZ2V0U3ltYm9sTGlzdGVkRXhjaGFuZ2UpKGUpO2lmKEImJnZvaWQgMCE9PXQpcmV0dXJuIHQ7aWYoJClzd2l0Y2godGhpcy5fbW9kZWwubWFpblNlcmllcygpLnN5bWJvbFRleHRTb3VyY2VQcm94eVByb3BlcnR5KCkudmFsdWUoKSl7Y2FzZSJkZXNjcmlwdGlvbiI6cmV0dXJuIGUuZGVzY3JpcHRpb24KO2Nhc2UidGlja2VyLWFuZC1kZXNjcmlwdGlvbiI6cmV0dXJuYCR7ZS5uYW1lfSwgJHtlLmRlc2NyaXB0aW9ufWA7Y2FzZSJsb25nLWRlc2NyaXB0aW9uIjpyZXR1cm4gZS5sb25nX2Rlc2NyaXB0aW9uPz9lLmRlc2NyaXB0aW9ufXJldHVybiBlLm5hbWV9X2dldEV4Y2hhbmdlVGl0bGVQYXJ0KGUsdCl7cmV0dXJuIG51bGw9PT1lfHx0P251bGw6KDAsZC5nZXRTeW1ib2xMaXN0ZWRFeGNoYW5nZSkoZSl9X2dldFByaWNlU291cmNlVGl0bGVQYXJ0KGUpe3JldHVybiBudWxsfV9zZXRTeW1ib2xDdXJyZW5jeVVuaXRJbnRlcm5hbChlLHQpe2NvbnN0e3N5bWJvbDpzLGN1cnJlbmN5OmksdW5pdDpyfT1lLGw9dGhpcy5wcm9wZXJ0aWVzKCkuY2hpbGRzKCksbj1sLmlucHV0cy5jaGlsZHMoKS5zeW1ib2wudmFsdWUoKSxvPWwuY3VycmVuY3lJZC52YWx1ZSgpLGE9bC51bml0SWQudmFsdWUoKTtpZih2b2lkIDAhPT1zJiZsLmlucHV0cy5jaGlsZHMoKS5zeW1ib2wuc2V0VmFsdWVTaWxlbnRseShzKSx2b2lkIDAhPT1pJiZsLmN1cnJlbmN5SWQuc2V0VmFsdWVTaWxlbnRseShpKSx2b2lkIDAhPT1yJiZsLnVuaXRJZC5zZXRWYWx1ZVNpbGVudGx5KHIpLHQpdGhpcy5fcmVzb2x2ZWRTeW1ib2xzQnlJbnB1dFt0aGlzLnN5bWJvbCgpXT10LHRoaXMuX3Jlc29sdmVkU3ltYm9sc1t0aGlzLl9nZXRTeW1ib2xGb3JSZXNvbHZlKHRoaXMuc3ltYm9sKCkpXT10LHRoaXMuX3JlYWxpZ25Ub29sc0xhc3RQYXJhbXM9bnVsbDtlbHNle2NvbnN0IGU9dGhpcy5zeW1ib2xJbmZvKCk7bnVsbCE9PWUmJihsLmN1cnJlbmN5SWQuc2V0VmFsdWVTaWxlbnRseSgoMCxkLnN5bWJvbEN1cnJlbmN5KShlKSksbC51bml0SWQuc2V0VmFsdWVTaWxlbnRseSgoMCxkLnN5bWJvbFVuaXQpKGUsdGhpcy5fbW9kZWwudW5pdENvbnZlcnNpb25FbmFibGVkKCkpKSx0aGlzLl9jdXJyZW5jeVVuaXRTb3VyY2VTeW1ib2xJbmZvLnNldFZhbHVlKGUpKX1sLmlucHV0cy5jaGlsZHMoKS5zeW1ib2wudmFsdWUoKSE9PW4mJmwuaW5wdXRzLmNoaWxkcygpLnN5bWJvbC5maXJlQ2hhbmdlZCgpLGwuY3VycmVuY3lJZC52YWx1ZSgpIT09byYmbC5jdXJyZW5jeUlkLmZpcmVDaGFuZ2VkKCksbC51bml0SWQudmFsdWUoKSE9PWEmJmwudW5pdElkLmZpcmVDaGFuZ2VkKCksdGhpcy5fcmVhbGlnbkxpbmVUb29sc0lmUGFyYW1zQ2hhbmdlZCgpfV9yZWFsaWduTGluZVRvb2xzSWZQYXJhbXNDaGFuZ2VkKCl7bGV0IGU9bnVsbD09PXRoaXMuX3JlYWxpZ25Ub29sc0xhc3RQYXJhbXM7aWYobnVsbCE9PXRoaXMuX3JlYWxpZ25Ub29sc0xhc3RQYXJhbXMpe2NvbnN0IHQ9dGhpcy5jb21wYXJlU3ltYm9sUGFyYW1zKHRoaXMuX3JlYWxpZ25Ub29sc0xhc3RQYXJhbXMpO2U9dC5zeW1ib2xDaGFuZ2VkfHx0LmludGVydmFsQ2hhbmdlZHx8dC5jdXJyZW5jeUNoYW5nZWR8fHQudW5pdENoYW5nZWR9ZSYmKHRoaXMuX21vZGVsLnJlYWxpZ25MaW5lVG9vbHModGhpcyksdGhpcy5fcmVhbGlnblRvb2xzTGFzdFBhcmFtcz10aGlzLnN5bWJvbFBhcmFtcygpKX19fX1dKTs="}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/63723.1c65a09c20b61e344708.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.835Z","timestamp":1785148034835,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/63723.1c65a09c20b61e344708.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\ncontent-type: text/css; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding, Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\netag: W/\"6a229749-83f\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Fri, 05 Jun 2026 09:30:49 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.55\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 06/05/2026 10:22:54\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 563796e366fdee0590f47a01cf48b486\r\ncdn-cache: HIT\r\ncontent-encoding: br\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":2111,"size_decoded":1677,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with very long lines (2111), with no line terminators","md5":"7b213610dc679e0aeb4fcd2e948e5725","sha1":"d4ad5d5f515940413809cb2260489cc407fac7eb","sha256":"8795d13696d9b81d0425e2367b043332fde8f9188ea052695fdaa19f218d57c0","sha512":"539fc1070c80d2b490908a351e2413844438ff7ac30a9c83a1a487ced8dc6a78e6112f60864ca9704c555e91856bf8dae24245c7dd0a6da2ad8b63c6073102f7","ssdeep":"","tlshash":"ee413056b7a1797cfd135866ffa9a5882104c411901345faeb629f2880d73bf3e9ca09","first_seen":"2026-06-05T15:58:19.216163Z","last_seen":"2026-07-27T10:28:13.868347Z","times_seen":16,"resource_available":false,"data":"LmxpbmVQbG90LVZHRXByZWpLe2hlaWdodDpjYWxjKDEwMCUgKyB2YXIoLS1saW5lLXBsb3QtcGFuZS1wYWRkaW5nLXRvcCwgMCkgKyB2YXIoLS1saW5lLXBsb3QtcGFuZS1wYWRkaW5nLWJvdHRvbSwgMCkpO2luc2V0LWlubGluZS1zdGFydDowO292ZXJmbG93OmhpZGRlbjtwb2ludGVyLWV2ZW50czpub25lO3Bvc2l0aW9uOmFic29sdXRlO3RvcDpjYWxjKHZhcigtLWxpbmUtcGxvdC1wYW5lLXBhZGRpbmctdG9wLCAwKSotMSk7d2lkdGg6MTAwJX0uY2FudmFzLVZHRXByZWpLe2Rpc3BsYXk6YmxvY2s7aGVpZ2h0OjEwMCU7d2lkdGg6MTAwJX0uaWNvbi1jRXFZZGVzdntkaXNwbGF5OmlubGluZS1mbGV4O2hlaWdodDoxMnB4O3dpZHRoOjEycHh9LndyYXAteDA0cmQ2Tjh7LS1ob3Jpem9udGFsLXNjYWxlLXZhbHVlcy1nYXA6M3B4Oy0taG9yaXpvbnRhbC1zY2FsZS1sZXR0ZXItc3BhY2luZzowOy0tZGV0YWlscy1jaGFydC1jb2x1bW5zLWdhcDowOy0tY3VzdG9tLWRldGFpbHMtY2hhcnQtaGVpZ2h0OjE3OHB4fS50b29sdGlwVGV4dC14MDRyZDZOOHtjb2xvcjp2YXIoLS1jb2xvci1jb250ZW50LXRleHQtcHJvbW8tcHJpbWFyeSk7Zm9udC1mYW1pbHk6LWFwcGxlLXN5c3RlbSxCbGlua01hY1N5c3RlbUZvbnQsVHJlYnVjaGV0IE1TLFJvYm90byxVYnVudHUsc2Fucy1zZXJpZjtmb250LWZlYXR1cmUtc2V0dGluZ3M6InRudW0iIG9uLCJsbnVtIiBvbjtmb250LXN0eWxlOm5vcm1hbDstLXVpLWxpYi10eXBvZ3JhcGh5LWZvbnQtc2l6ZToxM3B4O2ZvbnQtc2l6ZTp2YXIoLS11aS1saWItdHlwb2dyYXBoeS1mb250LXNpemUpO2ZvbnQtd2VpZ2h0OjQwMDstLXVpLWxpYi10eXBvZ3JhcGh5LWxpbmUtaGVpZ2h0OjE4cHg7bGluZS1oZWlnaHQ6dmFyKC0tdWktbGliLXR5cG9ncmFwaHktbGluZS1oZWlnaHQpfS50b29sdGlwRGl2aWRlci14MDRyZDZOOHtib3JkZXItYm90dG9tOjFweCBzb2xpZCB2YXIoLS1jb2xvci1ib3JkZXItcHJpbWFyeS1uZXV0cmFsLWJvbGQpO21hcmdpbjo0cHggMH0udmVydGljYWxTY2FsZUl0ZW0teDA0cmQ2Tjh7anVzdGlmeS1jb250ZW50OmZsZXgtc3RhcnR9LnN0YWNrZWRDb250YWluZXIteDA0cmQ2Tjh7YWxpZ24taXRlbXM6ZmxleC1zdGFydDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO21hcmdpbi1ib3R0b206LTIwcHg7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEwcHgpfS5jb2xvcmVkVmFsdWUteDA0cmQ2Tjh7Ym9yZGVyLWVuZC1lbmQtcmFkaXVzOjJweDtib3JkZXItc3RhcnQtZW5kLXJhZGl1czoycHg7bGluZS1oZWlnaHQ6MTZweDttYXJnaW4taW5saW5lLXN0YXJ0Oi00cHg7cGFkZGluZzowIDRweH0uc3RhY2tlZEJvdHRvbS14MDRyZDZOOCwuc3RhY2tlZFRvcC14MDRyZDZOOHtsaW5lLWhlaWdodDoxOHB4fS5wbGFpblZhbHVlLXgwNHJkNk44e3BhZGRpbmc6MCA0cHh9LnRvb2x0aXBIZWFkZXIteDA0cmQ2Tjh7YWxpZ24taXRlbXM6Y2VudGVyO2Rpc3BsYXk6ZmxleDtnYXA6NnB4O2p1c3RpZnktY29udGVudDpjZW50ZXI7cGFkZGluZy1ib3R0b206NHB4fS50b29sdGlwSGVhZGVyVGV4dC14MDRyZDZOOHtmb250LWZhbWlseTotYXBwbGUtc3lzdGVtLEJsaW5rTWFjU3lzdGVtRm9udCxUcmVidWNoZXQgTVMsUm9ib3RvLFVidW50dSxzYW5zLXNlcmlmO2ZvbnQtZmVhdHVyZS1zZXR0aW5nczoidG51bSIgb24sImxudW0iIG9uOy0tdWktbGliLXR5cG9ncmFwaHktbGluZS1oZWlnaHQ6MThweDtsaW5lLWhlaWdodDp2YXIoLS11aS1saWItdHlwb2dyYXBoeS1saW5lLWhlaWdodCk7LS11aS1saWItdHlwb2dyYXBoeS1mb250LXNpemU6MTNweDtmb250LXNpemU6dmFyKC0tdWktbGliLXR5cG9ncmFwaHktZm9udC1zaXplKTtmb250LXN0eWxlOm5vcm1hbDtmb250LXdlaWdodDo2MDB9LnRvb2x0aXBPdXRsb29rLXgwNHJkNk44e2FsaWduLWl0ZW1zOmNlbnRlcjtkaXNwbGF5OmlubGluZS1mbGV4O2dhcDo2cHg7cG9zaXRpb246cmVsYXRpdmU7dG9wOjFweH0udG9vbHRpcExhYmVsU25wLWVfV1o2Q3VMe2NvbG9yOnZhcigtLWNvbG9yLXRhbi1vcmFuZ2UtYTQwMCl9LnRvb2x0aXBMYWJlbEZpdGNoLWVfV1o2Q3VMe2NvbG9yOnZhcigtLWNvbG9yLWRlZXAtYmx1ZS1hMTAwKX0="}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/20085.b6880e078540a41ecdc3.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.837Z","timestamp":1785148034837,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/20085.b6880e078540a41ecdc3.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\ncontent-type: text/css; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding, Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\netag: W/\"69f98b70-70a\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Tue, 05 May 2026 06:17:20 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.51\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 05/05/2026 10:18:38\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: e169ae84ad053569f39dd4c4e9eae9b6\r\ncdn-cache: HIT\r\ncontent-encoding: br\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":1802,"size_decoded":1432,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with very long lines (1802), with no line terminators","md5":"3284509ab7af735c9bf8e3a722c8c576","sha1":"41eb9439a984205b5fd32683d71698bef5223730","sha256":"dc9a0f325c368513095e22a45d479ba36b8b7da376ac184022cb12d5da9250ec","sha512":"4ac5e329637db91cadfaba8b80da2457511cd63ef8c44efdd499df20e6b773f610c8e57730b599387b146ac0f1d22487031f5f9edd3074a50a20aaad964f8c28","ssdeep":"","tlshash":"9e31cd6dffe0e2b9bd3ad9370bd59e0b3082f64696639368dd12921284c75e31b30309","first_seen":"2026-05-01T03:41:17.578198Z","last_seen":"2026-07-27T10:28:13.924628Z","times_seen":17,"resource_available":false,"data":"W2RhdGEtdGhlbWU9bGlnaHRdey0tXzAtdUlidzp2YXIoLS1jb2xvci1jb2xkLWdyYXktMzAwKTstLV8xLXVJYnc6dmFyKC0tY29sb3Itd2hpdGUpOy0tXzItdUlidzp2YXIoLS1jb2xvci1jb2xkLWdyYXktNjUwKX1bZGF0YS10aGVtZT1kYXJrXXstLV8wLXVJYnc6dmFyKC0tY29sb3ItY29sZC1ncmF5LTQ1MCk7LS1fMS11SWJ3OnZhcigtLWNvbG9yLWNvbGQtZ3JheS0yMDApOy0tXzItdUlidzp2YXIoLS1jb2xvci1jb2xkLWdyYXktNzAwKX0udG9vbHRpcC1KbFlnZF8xZ3tkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2dhcDo0cHh9LmxhYmVsLUpsWWdkXzFne2NvbG9yOnZhcigtLV8wLXVJYncpO2ZvbnQtc2l6ZToxMXB4O2ZvbnQtd2VpZ2h0OjQwMDtsaW5lLWhlaWdodDoxNHB4O292ZXJmbG93OmhpZGRlbjt0ZXh0LWFsaWduOmNlbnRlcjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3doaXRlLXNwYWNlOm5vd3JhcDt3aGl0ZS1zcGFjZTpwcmV9LmN1cnJlbmN5LUpsWWdkXzFne2ZvbnQtc2l6ZTo5cHg7Zm9udC13ZWlnaHQ6NDAwO2xpbmUtaGVpZ2h0OjE0cHg7bWFyZ2luLWlubGluZS1zdGFydDoycHh9LmRpdmlkZXItSmxZZ2RfMWd7LS11aS1saWItZGl2aWRlci1jb2xvcjp2YXIoLS1fMi11SWJ3KX0uZ3JvdXAtSmxZZ2RfMWd7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbn0uZ3JvdXBSb3ctSmxZZ2RfMWd7ZGlzcGxheTpmbGV4O2dhcDo4cHg7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW59Lmdyb3VwUm93VGl0bGVDb250YWluZXItSmxZZ2RfMWd7YWxpZ24taXRlbXM6Y2VudGVyO2Rpc3BsYXk6ZmxleDtnYXA6MnB4fS5ncm91cFJvd0RvdC1KbFlnZF8xZ3tiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXRvb2x0aXAtZG90LWNvbG9yKTtib3JkZXItcmFkaXVzOjUwJTtoZWlnaHQ6OHB4O21hcmdpbjoycHg7d2lkdGg6OHB4fS5ncm91cFJvd0xhYmVsLUpsWWdkXzFne3doaXRlLXNwYWNlOnByZX0uZ3JvdXBSb3dMYWJlbC1KbFlnZF8xZywuZ3JvdXBSb3dQcmljZS1KbFlnZF8xZ3tjb2xvcjp2YXIoLS1fMS11SWJ3KTtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo2MDA7bGluZS1oZWlnaHQ6MTZweH0udW5kZXJseWluZ1ByaWNlVmFsdWUtSmxZZ2RfMWd7Y29sb3I6dmFyKC0tXzEtdUlidyk7Zm9udC1zaXplOjExcHg7Zm9udC13ZWlnaHQ6NzAwO2xpbmUtaGVpZ2h0OjE2cHg7dGV4dC1hbGlnbjpjZW50ZXJ9LnByb2JhYmlsaXRpZXNDb250YWluZXItSmxZZ2RfMWd7YWxpZ24taXRlbXM6Y2VudGVyO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW59LnByb2JhYmlsaXRpZXNBcnJvd3NDb250YWluZXItSmxZZ2RfMWd7YWxpZ24taXRlbXM6Y2VudGVyO2RpcmVjdGlvbjpsdHI7ZGlzcGxheTpmbGV4O2dhcDo0cHg7bWFyZ2luOjAgYXV0b30ucHJvYmFiaWxpdHktSmxZZ2RfMWd7Y29sb3I6dmFyKC0tXzEtdUlidyk7Zm9udC1zaXplOjExcHg7Zm9udC13ZWlnaHQ6NzAwO2xpbmUtaGVpZ2h0OjE2cHh9LnByb2JhYmlsaXRpZXNEb3QtSmxZZ2RfMWd7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1fMC11SWJ3KTtib3JkZXItcmFkaXVzOjUwJTtoZWlnaHQ6M3B4O21hcmdpbjowIDRweDt3aWR0aDozcHh9LmFycm93SWNvbi1KbFlnZF8xZ3tjb2xvcjp2YXIoLS1fMS11SWJ3KTtkaXNwbGF5OmJsb2NrO2hlaWdodDoxOHB4O3dpZHRoOjE4cHh9LmFycm93SWNvblJpZ2h0LUpsWWdkXzFne3RyYW5zZm9ybTpyb3RhdGUoMTgwZGVnKX0uYXJyb3dJY29uUmlnaHQtSmxZZ2RfMWc6ZGlyKHJ0bCl7dHJhbnNmb3JtOnJvdGF0ZSgtMTgwZGVnKX0="}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"fonts.gstatic.com/s/dmsans/v17/rP2Yp2ywxg089UriI5-g4vlH9VoD8Cmcqbu0-K6z8GXhnU0.woff2","fqdn":"fonts.gstatic.com","domain":"gstatic.com","tld":"com"},"ip":{"addr":"142.250.178.67","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"font","requested_by":"https://digital-assettrade.com/","date":"2026-07-27T10:27:12.718Z","timestamp":1785148032718,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.gstatic.com","organization":""},"issuer":{"commonName":"WE2","organization":"Google Trust Services"},"validity":{"start":"Mon, 29 Jun 2026 08:39:25 GMT","end":"Mon, 21 Sep 2026 08:39:24 GMT"},"fingerprint":{"sha1":"4E:F2:73:C6:27:16:58:35:FE:55:D5:30:6B:E8:6D:2B:DA:B0:E8:7B","sha256":"82:EF:6A:61:96:A5:23:D6:2C:2C:9D:77:67:04:D8:7B:3B:6A:50:DA:3C:6C:6A:5F:4E:2D:55:F3:FC:DA:0B:EE"}}},"request":{"raw":"GET /s/dmsans/v17/rP2Yp2ywxg089UriI5-g4vlH9VoD8Cmcqbu0-K6z8GXhnU0.woff2 HTTP/1.1\r\nHost: fonts.gstatic.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: application/font-woff2;q=1.0,application/font-woff;q=0.9,*/*;q=0.8\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: identity\r\nOrigin: https://digital-assettrade.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://fonts.googleapis.com/\r\nSec-Fetch-Dest: font\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=5\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccept-ranges: bytes\r\naccess-control-allow-origin: *\r\ncontent-security-policy-report-only: require-trusted-types-for 'script'; report-uri https://csp.withgoogle.com/csp/apps-themes\r\ncross-origin-resource-policy: cross-origin\r\ncross-origin-opener-policy: same-origin; report-to=\"apps-themes\"\r\nreport-to: {\"group\":\"apps-themes\",\"max_age\":2592000,\"endpoints\":[{\"url\":\"https://csp.withgoogle.com/csp/report-to/apps-themes\"}]}\r\ntiming-allow-origin: *\r\ncontent-length: 36932\r\nx-content-type-options: nosniff\r\nserver: sffe\r\nx-xss-protection: 0\r\ndate: Thu, 23 Jul 2026 04:46:20 GMT\r\nexpires: Fri, 23 Jul 2027 04:46:20 GMT\r\ncache-control: public, max-age=31536000\r\nage: 366052\r\nlast-modified: Wed, 10 Sep 2025 16:31:03 GMT\r\ncontent-type: font/woff2\r\nalt-svc: h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":null,"data":{"size":36932,"size_decoded":37745,"mime_type":"font/woff2","magic":"Web Open Font Format (Version 2), TrueType, length 36932, version 1.0","md5":"7c87a648293fbb5b2924aafaa59e8aea","sha1":"c57593e0adc4cf99dd9e67cb782242220a061a9d","sha256":"9fea608a947e67020c33cad9a6fe3d60c54119dfb8cff87768a8117a15ed7543","sha512":"764ced325a768dca84e1fb0cc458818239ce379dbcbdb324ee8849bbe15f54e3f0254ae6e52ee5a92741840637b4f9885d246a0978af23176b3acfe5b9cec23f","ssdeep":"768:mMQPOAQQKW6GccoXQ+OGpHNzXgtDM0SVu7P3nqtPl9Bf2csDpHUjbYE8j2:mMQz4W5og+tpH6tDJku73EPlPOcs5U/l","tlshash":"c0f2f23e7ea5691487c2b0be506b00935344c9bd37c18121bbb953f44ea67addc5d63c","first_seen":"2025-09-11T17:08:25.889763Z","last_seen":"2026-07-27T13:02:53.655404Z","times_seen":31267,"resource_available":false,"data":"d09GMgABAAAAAJBEABQAAAABKfgAAI/QAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGoYaG4GAMByMSj9IVkFShiIGYD9TVEFUgVwnMgCFBC9sEQgKgYEs5kELhB4AMIKPNAE2AiQDiDgEIAWHEgeJOAwHWxMZcYKNTZt6WG9W9dox98NpZyPabysQwLd9ZkaEjQMQgfzQZv//f1pSGUPTokkLgKK6/zvo0dBRRJpEIGqKJlqmKpWKTrHnmLO3HDjOuohcjWPV5cRZA1MmJFzVnKk1/ToxaNgOmUMIovNIldynIR5Dh1uOaWX0etNd/eZa1cQLWUF8rolAkvXlJxOpHLWaioGQ19WQJAiSIEsaPV0qPUEnPW75swHLeun1cdndJOZePt76tX9fo4LG0sPyMvOLb+7kAp0E9/Pqreb/iMeL4ntP3XSnyRX9DLPaBq+7CoxdHiNqRVxfgqe4+oqXWXCTv8biCa4BeaJvFHf753nd/HPfe0leQtgJIAQIKwwhBESWIYyZBYhuEEMSAoQYKIbpCsNAFcdC6g9IBQdRKdq6EWnB8S0qX9FdpWOp9eumy/z/31T/NxwekmSCAD0mWv+ZGaWPPunzInIhbZ3GtixpAA/Pf78f7Nc+FxoNEp4YMllsulkzrdbuw0tUaxaaaIbpJLEveoen6fxHxVKTpBrRu9jF7CInMbmkTdImNZqWikEL3lJMJ/hE/G9lYkyQmSBzYAr/o5/ZD+9m358EixCHhASiJIGEQoAg1lLxO51p18yZdvV3n+q/2d+K2Zi3422nBfyvnOX7v1stsixLxrGXkE45hg+nVOpO3dbMhvG0HIShRSQP32/r/wD2pE7rtPMia7H5vVt+5GftOqdaAZG60DcyuITEkc6iqlsyDSweAUUPDEHG2cj2Ufof5MDhAfICDXjGIEtqru6q+smuvn1V7elZ+Us4QBkYXZBI8UXOAa85WIzU0yxR0I/xO8QllT8/IppIGsWbvVTQTKKKh0Rzb+Q1ai2bPQrRXgjRR6ipeqW69omEjdGPkl0AYWHw5n+bqk/ndFwPPdz2GLgb42TzlAWK3BBJlSNWjIc+0SsZkxd4+K41uxcWjQ1yQF1gQ/rfLctFpUX3v7+CQxNpbsBVUs2emerC3EokZ1o7IdKvjtl2EY1kgIjhylmIOEvET+yrkha4AVt3JPz+36nNSFZhrlUXGR44ft0YsM0y6dc5Z79KDOukBA0IsBk6ARUECiDg/3SWrcZaLYQnyApBUQJh05H0R9J4NGveu/PYC5hb7x5590DHlu01HXGA8YCgzEuZogduyyu6lEnRJVUN3Depu0DF752Wu+FRuy0tykU+idKlLnThUoTBRcgv45DwPP+mpi0+rwKx3ZfkXKn1OFHh9HZbAX82AHhKaQhF0hHrBI4TF45N6aZzUXI5zqx8WKqr/PelaV7f78Zb/hEhuzFKn3TCOH5SDg2n+4YQT06XQwdgptHN0MBw7AZmWGqACgNQ2v2YobZ6QFJpwCxpU6I3R8qRcn1gSFVjKJZ7RtwSRG4Y0iEmep3iMcR7rrvLRx9OLt9Oe0yHow/Xq6GaSnpWYBPwwzuPouJQxHEsKlOU8dve76tP1XKzj27IMEhoJIQgIiIihRQiIiHzeH2txX767SxFTSWiYiJiY/VdLX93/+83/1wwVvmKuRCBgaBiocv38dWQEXNlssqJfokNrOUYSwWjNelr/8elzlJFREIU8UQkLPsEBFwK0Au8B/yChOFygGBWWQ0h4DGKCsE6YHkEuSUnMyB0hA3nC7OxsSsP7Mkb+wjBYWbjGDE4TipOl4nF5DjHIrxUAS5UgsvpsN5KXK0a12qAfATm2nNm5IYJyE2MvEvgPpgW/ts/DCFAhRjFu1Py8e82AqkXBuJXAN26gAwETJcn2Iv+8EfB0MfB7PNs8m228ApbeJ0tv84nX+ELl3lkk0df4LHneJv37O/LYuAZMfOsmHlJLD4j4s+KxGWReEY0Wc8OWCff9yDTr8rIEzJ6WcaflCsXZfaCLK6r8XW1dEktXVbJsyqzrjIbKnNOZc+p7HmVW1f5dVU8qazbp+Ht07r98WcR+zFif63qoVW9tKozZ3X59rj81LF1c2zfHJObY5iO0cFYno6N6Ti0MW7gxts5bVYw/W8acC2ECqair8R5SUGmOOS6PBMNwdJe6DVODxkjiySmJP6kMn5CkVQCVwkIIVSgCvuj/jGIqdQpjX+aSTfZRDYrW8hBKhLUQMkgGuCuABMCKByNcHwIzl8nftLHTw7xC318tI+LoJakIFg0KK6UaJTolBiUrJSslarU1iFcOYRbJ2hVk11rW2q31MFCbz3F53bqyT51uEmR5ynqPEU1VXKaSh/MjS/muJtz3O054fqC8odF4+dLV6Al53vgFAFAQL34n8ZVNZTkLb/waeqSTUlLAjDV2A5A8IfwGnjI9vGsLAkEUBMkG7b6ml4K2O2/y+IRYIcAzMzQSzt8vz0mBF9xawTux9/+9AKsFxgZLQjk4tyikahNtaMMIIoVHKjwAJgwVFS48vpOTnFN4DEfTCOSSajwniTkPBNMJe03ce/UoIu4Ik4/gx4SnaJNrG2EE/pcmOcDEGk56kb+UVZmCKgy/RNKTznjA77KZ9nCPQRz28pGrkmatDBlQCGiE+9ud0nU+E9ADvWcHtE4fQPho76h43QIdYrN1AIwMjjVMT/SIipCIGh3D0ZgpV4WL13FlAl4LJCGxGji0GGuuMqz9EA/Zbpq+Wc8USPEYPoOrOS+ySm6o3CcdTTZtZAa9jIew3ays4v+tEPEA49sT7cvxje2JauZz9ZE/zxv+q7TXzXj79mYftHL06FAC7mt7TP+qKwJ8JdXkvpnXQzoUJnT3WZaIL/cD3AOVV755T5wj0c0XPaC5pBmBR3mv5ewe9yvEMvnF72BQCbtQoL0zN5OxPtjM70Pd4w0vnTZ7jAuXRWQF57buRes6N7bUxwvX+xx0lpelpJdC//sCJ6XaSDOtj2gmsK3V+OE9IpFkv/unaK7bAv3qVoFPTunEw/VUQ6b31vgmz1KmXvN7nVQ8xZkZOej9TLILMru5VnVtIgLf2OD3FuNI2DrShD3EcsFoHPizI2HAHzh4kvCYa4UeRZJG7Qk5HWRCksUZjmoqP+RBgVYGVj4c5leD+q6gUy/66c4f4DbraL5MqNHlLeV70tN6FHjfOl/1kKySTeY/8PDkLC+C4EB6warg94DHAR8eVkvt7ZHanxW8P6keL13YM0Pl6FDQ5jXq3KXJu6G9q0Bh+5jQz2Y+J6qv80MfvfWKYoTqIXnsNSrMu92QOqdOpRnAvQYly1s6syNWAlk6AnaHWeqeRczgKaZ3DpTyrG/D5fRt5u1NIqVh05F/Yteo7gTxvQtdbP2BpOntSd+uSthzv+H757P1j0FOLt05H3NPmUOtZlDWG0RsYb6pe3icqXHxILYr5X68nG4B0dHvayP6lMY1RYsu77eZyt0ltNsrfwQ6WJa1nPnsfeHb3uCdqhe6mtfPu57AehNYYUlGZjt8a/5GG52dC71uUd4A6uMOMRK9MVECHtK2BqXR5nUwA1u7vO7QhkZ65l1X+xxzZutzuHb+yJwqSQWtIRRxwzpoAaETDsZWhq0qLbzw9DfrNMd+wI/HWumP8CP1ft2j6lZlW5KpKPlultbIeNYeeKtk/o2nxIg/+O3ymAMib35PTBGW/zSR3Ci0MD9b1LE6uHanKopyepr6Kg6i735dzMN0Rd7/HkgDb2j8Z0fdByWsFuG2vvv6sQcZYZkKBNk3Mnw5FnT3/tCS07PQzlo/5+dNftV2WrmsPOj55LlVbO7HnX3K/uQPfKgfeFzLqWi4e7jl8nXq4Pq2Gjp8HibitWd52h7VfelTN9DJyZr03EAYHZwzRlWH7yMDDq/fJ8M1hvCcWY11mpNH6N1WU/zZA536zTTvupqm9OrGsyPOdX6TLO+vPbNXIc7OeZ7bbZ26oErYqt+fSuhHpHpMCdl1B2MSPdsJfXuDu7fiUDdu0k//3eZeEBIoM4Oic0Dk6dAzoIF88IXw1ucTMHE5GLlyJVgqXyJllFLplFGrJyOnJ5ejmrVctVqMJeR0QJmZgv16LHIYUctdtpp+c46p8B55xW6YMRy3xpX5IYJKrfdVgxRdkCpA6DRAYRdHRA6OiDs6ICwswMY7ADogLC7A0JOB6QOIKg7CBs6ICzpIKg6oLsDhE0dEBQdhPYOoN4BhKYOSKIgJBIdHRsDA2KDCWfLFmKPBWFjw7nwgHjyhfgJhAsWAjdTKCRMGBwfHxIuHJOAgIMIs1FEi+YhRgxbceIxCKUipElDl04OkyOHk1y56Oaay1OePFRL5aNbZjkqBTWMRgmMlhamXDkqHR07enrOKqxEU62avVr1bDRowLLKKhxmZi569HBx2FGOzjnH1ZAhbs47z9WwYW4uGOHuW+OQG25guu02R1OmzIARQEgUNphItuxg2Nhm8OTJgxdvdH4CYYIFw/DxuQtDwgnx3T7rOc9JZ0IpqFIrknYSly6DnczX7b/2tSBswQaapVQv+bGXCm2GL6m4kjFSqgzOXDjElTiyiZtIODhhKbtwt2dxOZ4cT37VW571xBOS4vzmsaCYlAacvmQlMlkBP8hMjt9WcC5v6svbDyNG4edruQvzlE+uqWHOGBPI0f+3TqEe8wx6fGbjjZHrnLW58P1OSDxasouyQeW8+2S3YFYFlJQjzTvxXvxpZUaRM26Xt2RmMp3SYWk1nRWVWXuWfZUdWf0HK7RqijOUb2F+CR+HE6El3BcWtsbTp9N9YzFzenXzaRDV8KoOO1WVQnQpb1CSYo8lKgqOKlF4aynJCWCQF8P8/qUvMKfdkeMfJrfEiG/oETDePUptzdJgi5MMdvwUp6bKDMVc9iCQgUOsYZbFT51j6X8SWkYvgUGDHOuOkws1arPIprrclqqwrRbZdVLJrI/Kwdvo9PvCCsccZ3DCOTW1tKa71ijmC2MZ03R7e3Nzk92tpfs9qC2swSGUUbOlZFpinj7SQ4uq2i//x7W/qGEZJf2EMS1vkZxD1PMnGMERKKhoyDHdMBMJYl4RzXq+F8N7TONY/OQl7izx3K2ln/fUHdW3dF95PmZfxVPdAEegoKIhLwvYz6aioZYYdOOYz8riL5sMU1A/QlAHvxllir19MW428mtHTMLmx18AnkDBQoRVAe9kNOdJLUZY4/SKHxvkg7pqr9RCnfrpZsvrGJPk6aRtaKa3LuOD/vFNlqjDafORs6Z7QWUdbmSY0ixuQpkHQGDI38skDHAECioaMnTxxwLoESna/nIM+hCJXSZ4Xpy3j9zieaim69RmljpSPxituEMjUWhKs9e0SdcjVqvkIck8JfxyF/9yXU/0pYnaofZzYzGvDmhw33rkdgHGiPt5EJApWaZQghFQ4iilezh0fqTFtTXlpfBhyEAowe8iNAd3zI92qc6d9O6vNUai3/l7tIkeiTFOBk9sALgE4PA2naxvz/X5GvZb+rGwH//2zgirV34uyJJOjXMIQbfjYQaOQEFFQ1a69ghyTgwSJ0HiMTP3ktXwNtzswMnm2hbEZGx+/AXgCRQsRFjSoyQDMmURk5CSkVMooqSiplFC++LZIfJ6JAyOQEFFQ3ZttF8PxMTmx18AnkDBQoR1hej1eAlEEiVJliJVugyZsohJSMnIKRRRUlHTKKGNriFm+onrgdbh1zHNyHqk1T20CZXRs4xp8tA3G945LyZh8+MvAE+gYCHC7nbeRMRKJJklyuxxtMeXlmJ0njiIHy+O7HrrgsdGzqWqZvxuC2/HWq+40Xr0+UVX62HVpr6lK7607D+7rM1iXX91rFELbY3b+/Z5sH5YLC+OzoY+r42JzY+/ADyBgoUI+4XAgmT0rhVa/rKIcbpsyCqDZcoiJiElI6dQRElFTaOE9rp14rO59cLzhi6+d+6oFW+vtPW9TnHr5uodW+zduLbDNkcoRzEMFOwOJwq3ctIMp3wnpwvIGevs+ILX5w2NcG6H3YTaMwCUMYpb85bNMUyK7TP24MCRE2essH25cOU2PSPh1EPcmznnLo9HOPWMp40X8caND/jGL178jQA8gbOgczNfMCUEmclCE3bAPxXE0umX8wq+HL5h2Zdjb9jQc1fIOYkkEEmUJFmK1G46sjyQIVMWMQkpGfl0Dn+5Ls/kfrxlD4WWR8GKKKmoaZTQpjwguvKyrjtcbsJPuTWzej/EllrFsaTKU2xzDGYXNl7tmteane7TexI5aLF7r/8rUuPDuky2I8bRYcDGveGEtzg5HvXsJGmsS+dbcTNO40noFOl2wCFKMgCAI4rti/khr9fHMDgCBRUNeRu6q5M+Dmt9SSjz5hIeRBIlSZYidUjX3EsGZMoiJiElI6dQRElFTaOEdqwTry81j/MPWvhq7Xu+PtYq/uHnFn1Hfd5MCVfd8+YGPFufGj2W9TCG9o3XzHm+PBAH8dt0MF4BAAAAAAAAAADQsDNI/PtLcq+TU7486DpvLJP0Jr2HyxbhcsWJAnHycEpjEXIN9ZFggCNQUNGQJ+keL/448BWxYHZi9no50uVIj619btR+ZgYEGw8adBNOdIucNN2hANobPhyFFmoAznPcPxMgs6Fo4WychHqbeN4ghX/m3ODOgGdtXvP+t8af4EX7SluwdctGoDCBzY+/ADyBgoUI2woY47Gas2DlsKT+avYbok83NsBloWqbWnfqWP1li6F+xJRRd83wHjJ30zraGTXd0wngvN+aCdpWvZwjytLeOdaceWC/jNKOitryeQHwNjgHt40BuNduQ6xQhgEAkE9WmvW2+2dkqIpdHvmOkREFwBiOQEFFQ/4jOjwFEZCTg8j/bwzeHSmWM0XNq/tGeorXqFNGTbbp8S26p+e3qqWXgLOerMc8mPlF3Nv43YFQwSPghERjXRjgCBRUNOSOLh5b8puPujrekZUBlTUHKh5bGlbVPGbUZARDVY2x6cBE06NNjKWD2aQ/xmDB3bMBXndxfoOO5LQmctbcblQyrg2lGWBpyPvhZNgDjkBBRUN2bSTDdUzsuyM1fjb+JABP4DhIzUQLRkIg7MPoWGNxYsXjhOQwVAKIJEqSLEVqN53tHsuQKYuYhJSMfDo7fPb8coxWRnnpswwKLY/CK0WgpKKmUTIuJY2AFikP+0863f2+1slMCGPEMm6U1C81OVbNusb4axHnh6ynpq4z46XN3W40PnVPdWmiwewlSqqew9Cnw0q/9Dlcdo4YR4cBKMuJRstJ6p6Dh0nnuxfyCmDk8qj7/b7GEHe4hheZTJ/bMXLHzu7utVgPiHqLSmi9LDPk7Eriiz1DeNcZBkegoKIhd3Ska9D5cWdseIA6wuDarhNPqxwtrCbaI+VXWkBromOr7u3YjJcjesynB4Xdkv7Y1aKWgXgfDop0ft5tbyrSTaiUAbghntPADByBgoqGnKaT7VUCuh0TbTcxaM05L4laaR81jHPkTqHaK7VQp15jMW3etus8ObkfthMORey92t9N9nH7g9NUlrMmF/hopBWytD6ySXD9qaLFqmrtRH0nb4clzai/fJDXdBsrUA+nLGfjI7QyP9EIjkBBRTsiW4+64x/N/VgVfviZiO138o/H/lGPlZFF0Uq8Q/s8Hgz0pRXJGpZ1RiNlymuLitdT+fQwLBuzPhbTYPPjLwBPoGAhwnYCrTKrSnMfOpV4kTieOolHN532PBkyZRGTkJKRj7PDp11JYVMESipqGiW0MQSkBlmXV5qpmJ5dWOuuzay41P98yUqTmeYOr+7GSByg+LKU9I1bvY6B3sARKKhoyAW1or5VKOMTrkGtVmlWUBnQ6CeNZpWjH2dsz7xczCS6RPW4qyyTYC14gb5mF5TcPXrFKH/r3h3WQCw6ffPlvW6tPrbbmlG7G5NXdsW96apUbA9nJJTTXYIhkihJshSp3XSKzjJkyiImISUjp1BESUVNo4T2eVTjgLJ1Q6nZWbNVK5ooEwD0SZpDRh+HvITqQkgAkURJkqVInaV/jY8yZMoiJiElI5/OjtW0HIrXFIcUgZKKelysZbJpoCRaXKGT8Dx9+FSuawzvl5pBvbre82SwuslQs7frQ7Juo7BYjEntJahYMZJmyppXYRCkCKXl82E15hVAV1HZhfrPAHAt3XR1T8ZDpixiElIycgpFlFTUNEqOtG2anaC9WpVaqw7qf92E15UOTqIlb22j0xqSLnlcjfd8VN/61rwaWREe3GfXuHpcBWl3Z72a5wUz41JlwSG1Yimh6XRwXWO0edtrCp9/8A3oZLVad45z5gNgeBfRRazFuWfXTqOoBWru6dagNfGWsItYcwPGhUteL2KZP3P8csA43BuZsohJSMnIKRRRUlHTKKFd469/NAurg5qZkOUeTPaPF8fqh+o4fMFnAf1dWuIOvROCok6CIZIoSbIUqSX92UIZMmURk5CSkY9zMK6ksCkCJRU1jRLaizop39Scsk3yx5m2p8NRgqFQkdKvF1MBkKm2r3u87enS77ju268mxFzHr73+h4NjOUohVUoq6qzmDNIYhVruvGnV/hUtN5+uekSiUP+Yqd0vropFm8qXkeN62oZVyV8tTju2LF/N0FG5S3oC5mp4cByfsmW/KA1UNuTUBu58tHGDfvDVdqNSh5X8/y00j8T+BleKWBxf858Jgun2fzZGZ+t6/6K6aUoTkl/R7Bfba7Hj9XD+i1ZT2/ChS1cx3S3MJ+1Vpb19NPR5y9Cvl08GlC6AGb1WZ+wwTDKLV+80Yflsi+o0UkvZi+OzQTIOJjY//gLwBAoWIqwrpGSzBCKJkiRLkdpNF0qbDJmyiElIycjHOQHtEgUpoqSKGjRKaK/Q0dKkQlP2UgmfqLKyaxAlvqpTm13qoH63DpWar1jNM8HOlUoth3aP8pZovzb0hqhpZkHzbRPjuRS649iiuPqeUZZhHiK1xmYN6kr9qy7XO7rfLggkTYo5tGeg0xHlVKWHcAsTdgEs0w7MACANHEeRR/YBsLctNdt3WYWDpRY5kg3ZxSjdir1ktfwJMsXYcUJIBoi/D085yAXr5CP+kIrAGt1lSjDFygOP2x48kbR0mCmhGzo4TBnJxTTHEtUVAx6HJvw6Jcr6qpKPzMoC2Kz+UTMA3OL4bJOKvWGwUi6WDProqwahu3VEUqlRSqdAaDvvywTLpAbrpJIbomAnWc3IwnuzjfZ5GtBSetZpiZh56vRFZQIHRYOdbG4sZzDT7BKxBcCt5MK+SNQsju9drfo8Hur4rEnzYscQjCkMjkBBRUOeCfziOvcMxjSXqVqioVoYGr7eDKGvp82Oc0pnJUsklfItAMvGFaX0xVEh7+IZGByBgoqGvD3dgRnFOL7HKbEi4yTOdLRH/CNzCh0LNWVQAogkSpIsRWo3XRzHypApi5iElIx8nEPIEAWnCJRU1DRKaE82QzFLC53WfGNujKHLZzY9tqn0LK4bKO/BJXdF2rJVHke2sDWxM0h4djMLKoU7ZrgH4CRt1lNxucjMoJ2CJtrYCeiR0J7VTNqL96li4X3+jOdNsB0/RXZgJprb8foSSWGZPFtgWwqNdbPw/gaxRkg+aZL29fbvVHax9SYQLbjbIa6wWr0yM26s9xHjsrY7a0dosQraAmAMR6CgoiFjTpcerMM2q2m+0wBHoKCiIc/ozkkPPEVm+JbqWBx6IpIoSbIUqQuqMlcbZMoiJiElIx/nBGglhU0RKKmoaZTQvqZr5HfN8HfI6EoPvTpwDasMqABUAGYb19Z3f5XbxSLsuauYy75E4TPW9POIDLBI5OzN4pzN6/Z6OC7MYhdyqKwigIIqjU9UWdkifm+tGk0Welv72efC3ALY177UbLA7/Hex0/wAQLb2/Qt1GkMzcAQKKhpywangxY3OnBcV0FcA/rpJ6V3KrG2EMlR08iw0Kov0HzuXTdOXgUP3KIwx5J6+W8dftsrZvhrv/a1y2rVeTJVhao4fH/Qao+5drR8vaegYhKFRutdJYrhD1VtUTOqwSDOZEAWWqzbr1wEYmaewvysgEq6WFkRO7MKZkDVpo8hETe73s3b8NtF2BbxrqvYHfOWDtrPMwbDH/t0Cqt3AI6LEwckjUolCTCMjxpZVCDRNP7Z7aDHQH+sZHgMa87cLjo+MDoOF/28KN4DcEwOZLiA5MdozBNIeY9Gpi8MTIDY8NCDgGOgzMorNGS6RYKNP+ztP/9QKH8gJaZEdcn4hqsDK/1QvxHGxAe6/0aBL3hmmEAN296P6mpMKCnpiA4OUFguvSjlFlimU+eb5vuHsUUmXH6ruFl4ry6oJ7mZdik9kvEdf0WYqjYzwD8yUYWZGpfIIhfgeuWcvjWoDKrKFzP4rxuHt84ll0/v5yTO3pxT6kQ10+NzvQH4GvadsI6b638MzDufpMy/+xcl1FNXLDX1G4vum9xPvIyY862+osFR5+Hj9AArld7cI7hLvwytO7C7lXv7PSbb0Hvf6B2cZ07/u01tsWdP73Y+X3ERM7y2/yEbUzJBfZyNyZpzj8+zjy2+yq0ImwG8QwULaMjLCfWMYCarVsBqteqm5ECS7JSuFVnIhLb+inXD9mmHsUG3f1TXaccKQBho1QWGzs9D501PZwiBGzSC6z2nrTvCG2Z983F6uioID8lGhX3CeB8e+Txq8FIDdnKB4lL2KS1mBEyNzXREVN+N3DMWy5RvdqEANS6EshsfIZInlSx3ofvrik/FueIdcfLAxrKG5GFnsQ+nhCDv4i+ezzQn0Wz+vFOO3W8NZ3+JauLB/PLN2YFE7Oe0ujsWQH3cMPabGVno9Y+YelfXxhR1NhVVVxtr1pQmDIdJh+xyqCzLxvrTTl8/b0AJBfb2m+1YkWiPqQIMWejC0cnPdckLbtlZEe0XLhvgTS5Z2L9bbw8Q/9U0zs2u3H9PVqyfF5UzuOjp9dFScwhhKZXYugtygUFhWZrt+40YWq6go279FNzmpaS6NLx8pSJKkId0z2MmW5FDUHZ6rltHkNXIdZl7WSrQpcHx4uLFNIBArC/oGG4JlnoPGPFy+/08MWE/z8KX1Jt+/tD5g5LV1U5c+W/d0/Yv1FKe+uUX/d3fY8VMnG395gPGvZzT99RjjP1ua+7+wLgA8ABT2/H1FAfJqeGL8g/H628jr+O8z+Pnakfbz1v2rnXtj/b4AL6/WdGZV/6ai/6Xr21f0tPb6rnL4Wjj49utr4aubR84PL1zIKc61g1sr4AJiYAiMEifIfT+HD95j2wPPK/c723u3zzYjtylu3m5l9KvyL/SvCLxFugpzhaXCUUFUE3X2en2TqeN66iP2wyjv/w9Z/zts9FM29iqbepfNvMHmPmaxd9jqE2z1Ff73Z7znTd7zPu/9gve/ywfe5cNv8JEP+NirfOwtPvkWn3mez7/E59/g0ZfE5Fti+mUxf1nMvyEWXhYrl+XAO3Lsipx8UU6/JBdekJsX/pp7RsWeUfHLKr6pcud05IKOXNKRKzp2SS9d0MkTOr2WyK9MTztNdwNu2chtBwFAnlhB7q8gZ0lkVVRV0+NJ1Pea2/HxtcXI/eVfQb+X6e6T/IU0HltBAel0Xgyst7372FFkwq1OBzLXxLrwU2it9QESjLBtD2RPPb0KkH9T0dMALgDEX3oIYJobBCHhQD8mMD/soIMnly8gwaEH+xcvoEN/Uv/vzAJ3mD6d2hlVUltMJkmUIG5wGCzGAI1/TYzk3+xlvbnlsp7Mvaw7DV3WlbbOtOI3krNYNOPcm/pc1oj5r6i7gotq1AS0fnYqE5ch5hnf3voVeHrvNQDUbvYv5hcoKw0QcM5/xFOoo9XtQl9HAkJM4tCWIdLBP9WWxUVwZytcnLWOsAbFIjEvXeIH/EigXMiV6X5mPbOZyWbymQYmZjxqslm7zZutSnbNvwZNXALxegyEYV4G8Pw5fUw6s/EB62edDWxkvU8z4beA/6/7R/5x378uRdpNfQPAR+emGr7+Hsq/vfLk4JPcb750Jn90KSBgaWBzj7wFxPnA1yFOpg34pXmZz11wyA1Txoz4wqCDJnU5zKxft70euOe+XqMQBhu27LGwuXDF4ckLlw8/M4XhCycQIVqMWHHm+JLFVx4bCI1QmnSZY76SI/f0Fv8MlXF6hbOxp/2ptqL+Lhpur+bjE6NjvnXcI3vsc83/XHfTuEuhumyNc75zJUxXPdRhd0hPXLQ/tnZZa8gO2+3UhwpDIFHQ0DE5c+DIiQc3M7iz4yuQvwDBeO4IMlukWaLEC7VCkgQiKRIlS5VBTkJKZpF55lsgy3JqRZQ0VO4qtlKlT1SpU6ZeiBJnnHXCKaedhIBuGISFjmxAS9VWA9jNNFtUowaOxXeIP8h6SA1RHxKQj0ma3IbQ7hTFDKQFoiHRgcRehdmMooZh+OugNtLIyqi9qtQs7Yzxa6w3ZVDNGEB0Mwnipd3Dh2loeBgT+YQYoZtogDthJc70IQgCmawF0fjRIjMnZPOyFreXGVGXQnS1QL0IAdFsXFECorgMn2Sy3gFM5+M9IxXKRVLk3CdKBj9rk/E+ImSS9E/qcDNdoGzX2dwlNBgZopq1+G5ypov3IP9OsmNpSqqxp0jq9GvjQWud0xyMacVd0FluYNASo+cxky0YeTh45xUwzHOFBrwezLDpTC8O2bxIIu8ynl2jaqwsvJ0QrTlnE1CliT2oV16X6EU9J1icNpNZrbSGLOFUKMbriF+dm+lbnmvKulnSnl2SpgYDXIk1r2UlYiBZ3wgpVTSWpC4Y3SnmkZgzxpfY6xAVQt7jOWTfWWIAjP21sgLbIIzlwiCOBmySet5obaiHtpDitBYBV6YrIQRonD+S6cPELlffgmJOQ68cLSIMB2ary6fQ+lkW1HINSvUeJFpfCw6AMsUtPvB18+yOQyqcnAyBCZQUe/LPcshphUNPDJ8pE4kAsTY+kmK9wzHN0Yh/Ty+NKC9HYv9ryIheGYWipJQXTxI569ghJgEnF6o4Zm+aB2XzQFM0TfSZgKq+X7/gRzrQwCf+5PO4gKfBZxhTLVUvnm9dfaGAwj2In89XKdTl0nZLY2F2canKqmHBl37MUdD0afJ5VnZ0fiXXsgfEqn2cVOMfHIFwSFIotT48Tv75Q9tYQLgZX3AaFdS/wtreWLficCn7hpJ1pUjCHyFZrAduiHNIlZB0BhaB6Nwk1amnHNYBynVuO8wbT0xj+fhy8HI4O2NMVol7jTpfCC1Ex/hBzaJ9cABeyY2PP9PZxd9HPH4zH1oo+CC78t6/Gs5KAnjny5DWvvJ9wbtPm8by/hiiVFrzKB8xg8e7OoN3lH4NHr2bjpcbVXenOE+MNDO9OIwFn2RL2jNfBNGlGSCpPqnRmzwnuDyeser/q2H8aNx6RtSYZ0jTrUG2WvXZKl19uugj/FBp6VTd8Y7Mhksy6a0Bcb3H56uhxo/w3IIPr77qcPRRzS8C0aDigRtt7KHH/+WPGPdRR5iySA4oxrkqBn0X17LvKb87kYZUpb5Dokxa9Kx93tYyCtqkTd+4y02n9AURczzaBx1A8+52ShjvabTn0OPSLeHRRdY/M0s1eWUvu7FFLJXAKIRw+7m8e2V3st/eHzutmvk0n/Mc6U2TrxWvztVUqVlQRbTapKebtyRoNDjY646WI2d5SuHDbS6Q3peSwEot5o0bJ5ChLw9bvFMYFgSSciACpHsByyP9sA+Yw821C+oYktR4eGug2ULpHK2pcTJuroDL3YBUsCG9gJvzWxZ64ovX0JQKXPFEulllYs80/++7qf89mV1p8/Ux0ElAe5ixU63GhANl9UowhJXnV1LV58/Muque6mQNBns7T3pBBNcJ9O2+2hxfTLxyrizkOJfhgYRyoc+VZh8UtdIeYaS4kOLqNJ+pBhiorr5+V77XUP1L0EbjjV7VzOQc76c05bV+6dWeI6W4UolLp5ex0Y53dA3SwGmhizSg4vwic3qO7emQI902qV1lv6rMz3btZiqQq9bSKu1ojKO3pcibhhM8u8put1nXCRhIR1G3OhauZV3IgFlXveRKVtDUSy+pbApJddjpUCfpdy5T295O2M0VAhU++wO6rKcQJRQs61U2mSi/Bl1sA1lZPdDaRvQC+tscHVzzk7QO01aLSw1Uw7blFzn+76yab80CbaDsOKXnGh2msTHujzKcoK+H13/g16z8DjcAeHT1uzRaN4De2HCwdaSF39u1cT3jrTXbayNHwuEyyb43ma+7ZYg/dIS0jwQQ7mCGWEhPZbXsAXJJKFify1K3hJ+JcqfATTSkdXcSXYEzaDDdEiQthFjLC1gY1gjIIeHpUIPPkXDeJOBxHLbi1lxDoT0IpY1Y9/Bam21cs0WaDPEX+NFR1aRAso8vzDS7gQaWAMTmm+TGA7Mw9nJ0OUmDrZZNfajI5gF9hl14tY4O2m+gRXLP6Rpo6zC9m4zP6HejbkcG7G/19oNxQ6J0r+mLnhItDdkRf1Yxo6jviiHzJnLPZcHpdcwEqAvT0LRP1m9GrWghwW0T739DOvLTHUd206fJTbR7GLGLvu+a4tnaW8jQnRR9+uC2M3dpHcfenbeQdzDPXKtNOvrqzNLeqXgq/vJSpulSym1LOsF7NND02vEMJyC3npIiyctIM0g88et81Dn065eUlOeqzSOOwtdorB8S78X8BsidOjoP1C3Rwvnwkv6oLIPqJyR5U1Uqr5lDzbaztJmj7/anP5dueZ6hm2bK9DLIn8jmrpZZy3J+ApIPMjE+HaZY6lJfDGeax3zxTjLNDKlkyRRakHagDxVudputD0+B7ajzW2/NBm3XKb3WMLq6o8IUATY7w0qumiGVt9AiQbYpKZqvvp1DqtBV9ofNO7wvaM2K3B7Y4/2f5zgnyDrcdE9dB5fodyPVZDChAZWrIdwN2LZlyX3yhJRoW+XKKK4txSQo2PXlOCeGQXzHidKGIhWSuaWLPmJDA4clR44AsfK6gvziG0NqM3wkvB/a7GM8XWDim5InwYhI8aKLmrz61ndWyS7I+hl7HllrzsvbMvJEZbbxL9jA16gRZbaU28MS/NkhQR3IxqQbQjV4GBAWr5qX5FHnsBAOaW/fs8NalK8pvAeKxZsVsRiUmGNCjh8bJ4H7OlYBXvdMAiNnDc4D5bNsvFqsX9iw98jaFWuHEWWzZKyIpqs6R8bl67lVkPtLtxjLOt2/EQK2mswyDDBCX+5mO7JV4SaMpQ3v6zs9PPqvk/7XY/TAgS7gkDyetNL1/C7mPwPzqp1f1ZzmUjD+RZQuuo+9qHx+xTfL2wECSv+9ncUHKR234s7+zvKpwfKAevPtLdWSD1+ij+FelzcLZtGPH+r93+fkZuoO1rVse/bfLMeSaaCZgm9n21EHkB6+6lZIZUGFRkq6eTd/9ZpHIvbJ1cpYr8L9EH4X6bebjEGCvMNxCCNQrdpIyf1gOa3vlkTg7qEhMkKSvqW3jldnOsqsXX7KM4wZZxIJGIh4qC7vvx2Z3pUBgfTwiRW3U95DI0Peg7dHVizDl/ZN25UrY23KVdOOvXcKoGm8S7yNGoau0sNP4R2XUQy90ZEe/cR4GI9d5WAcM5imdd+cCN01NBi+Z1+yf+q2sZrerjMZV8Q3gZnXxOPmmRGHc2x8Lr/yfTtzypc3AdqsutZGUHSYOlzl62XJ+C5ZxnPZ4CwNTcjkcUuU08+EoTKCk01lp/r6YhYxc0yLsmvz7+073eMLVxyUlxF2E7uvnnft/G5xOx+cfRP96XXAPX3tYjlAqBcJWEsr3peg7h4aLIV9yYWZvcngDw5BtjfR5/JOYJaZRILYhMPrKZDvyBjwXTQfH5jP41rJZpp4hbK9E5kLBZF17ekVKldwg+2VJQdw4rIQE94g0g8s/jKgTzWqXC5h0XEDx7UOFznpwKc7iQHp4R8jizSKpFGvaB/QUruYmZ0U6TLbSILamavmTTeFB1RxiZHkgDpy081f7YqQpNlK4pFdwJT6ZbSrfnHWh022UpR8H85okKRBp+igT4IjW1jN+3Wp23Uz3ZuCbp/Z4nRGNgIRzTeuNffY20Q8zCnUyOzNPLaI/aqf/li4wRdx6FXRbjnm6Ea0MX1b0xdvSYMPL/BnvzfkqjvB9MvFHqNC1ZbRggvTH+FX8f9Ngwyac7Een+p4iZrHxNGAQKX2CeAoNk+91IFPLdGDprz55Klu8Lg7njcPTr46n9jTCiytqfvjoDOeeHO+8347sNgB77POzxLpR2rBPbWpzzo+70g/ygB3M8D1oh+eSs8vZ7y0PPX9U0UQZm+Xt7lesnfIu13gd5o5BAkISKkiOrn29bIToyI5Llsdi5qcHXwl0a6QJCw6T04b2PnjgUA1wdk24WNnr0ae31ffsDEXntEsIUgoKEmxrZvkr6aFEgeR1p+XCb7CFpct/zPNNzgX2jSLLEW1JWvrxT6Cz9c5VH+HB43eBGxwDFjOIrd6mvgEbBcLXVDZGtl9exrqN56tuCjPxsIeM9/B/AD4aDBG19MANez9kIKn4lq7axgzTXm9pulhR9iJeGQQZdBD0eAjCi+IonqDiMJPMiCkkWM2dMofRJeM2cnEdHuZL3a7T6mGXRAcRWUM56sPMrl7Vo3EyjxLU8CP5hrGjNNer3FqxOGytCPbYOpDb14YTNfj9RznWbOUQS+KPrcCUfADoqB5FmO2KY/PtnjS7pTGmv/32uy2C4fN1M5gPzJcO6qlsNVThJOQBSSymMkoo/xi+RBKI0bT+KObX1Lxq765Rw/YNHLIZp4KBE1LRmxOd59Ns8haVFtyyObJwiifFXbyYbeu0SKOOEWQGpOeixw2km1C0E3I//ptQb1TzCvhY3c+STJJwDyH9bP1pLqO8909u/HrdFbSUQPDXzQ0cyzO7HsCJQrBqbrOtJPRE3/jATPjnSosJ8wLiGGptwvxrUfbZJKgQiENtMpR1PuSABs8p1VmwTRfaNT195tVq9Zc23icTpxAAfEhJQHbEkqNISqVpF3iCMeLes0wJhL49DSQfZ2aFnUzAINRyqA3t5VyQEx6AfeTTgH/H56Tcmu9Nc+BUqH0YCDmHoCVF6q+/iFzYwHNCbnrQ+pDQGzO0XUvQYKaoFgu+PHGRbclFCpDTCpNuSQRrtfs0Qm+5Pj0xRQZ1vPftZJ3w1vB2jaV3hiVykRADWT3mCGbkO/VlwAejRi1olOBkHVqzEo4R6xhOhi0TY2qWBJ2QZIoahVTTkgMuSEYEl8c5V8HED57LfDltSdpmVweCQYsMABiIvZhKrjwGUbRcwtoSRYmHRnDkZ8GjLir36Yu616bRRIfwRPqSNXvrhFJwmZHv/HHT/0BDj0eBobPjPW7NguL+lAhxhTbQPrJT715IfChHq+XuIdw54Cpo+I2tyPbZA/RXcTcs/XRCBQ8BTDT9IJfnpROJTQ29zBmnHKXPySYC8bqDH8CWtj76T+ZtmKVxCd8lDRAATdD3tbC3PU23SrPATgtsV2kcYdjrj8XBXE+7alp+WBiKvdS+QccGLaHedpQj6/AFcEXyWW5LdWP4330UBOkkUnxKB88U7hgMJUfidiPK+V+Ef/YWl+9QyttPnLw4BsNUlxlcRFB/N+IsijTCzUeIgXLXRLuK7c/8GJVmTD/FSfd4tbLxM6QABRLbA1su57RRrYVLXMtv4m8iSELyjVO8A/NEJNI004pxfPYPCbIIeR7daXUdS/RCvRxFfjilWttu+8H++6PvXINHLn5GlX1YNnqB9OrH7g4fih607VY83zF3DyofvjPh/9sbz0ONh9PfJzLxKcnwMYTYOXJ5VVNb7+avGcGPDLTavsEcPHaoUpiAq8baiKA8ikf6fO7QbzCyeOV8L3S69Sxr5/KWUQvV5PNdEaLSXo/IfdIoLBaAwXdYpnSAV3Iw0wpUxMDJhyiapblvNBstyMy7ZhCnAP8mFQHJeKQRisJBcVygw0eWKuRhkISokV8XgSdl7Q0S96FRO82ghitfV0Cv3toCAa2trevJbA24jJ1YOqZRIJbOxwmU8qhgoGP7VMY6ExNN5luRvWHgdVIaGfGe8Z0gwre7Rvlsi+b7cIQSNN19yitaFqqSRKIsMvRHo7GPKkoAfxpjiE52rXAGc3n2nEBgth4zQLkN3+jTEWqcB+qkx63GHEHFhVqW9NyG5aUSQNy7u3oso1WCc+N6FWdGQPYtKfHFvmx+1S/u39P2zdFawBE05z9SlN8OvxCFHcoCAk/gCgFPhyS6QOIJqRfNeFC+J9vC3O1qgjHaGO2qpTMNjMW5wOc5s3ozKnGacti9PGl3VF7SqGNUv69XpNRFbHK12VrFuRgH9cHWhBjRmvtxYy6wUFHwCV1CoWERCbEnXyp1CWCCLEEIlwCsKV8csb5OVqyEoTTsEEFmjDBLNeR5ZOmCKJSR7oRnKCBVBEVYopMbjnCdMEmS2JI4XAFvE4TRuEkSXGYyef0UajLpjI6jVaUviuMKqcN8Gn2DoUmFvHv9ZgM6hCqWJulzs7DX9zqb0GM/VoR/aJuT0ZnSTVMWyYtTyztDgTDLAlLITwilTqFIlwq448CTj6g75mP7p0HqXSzvQKKi8SdwDctH02+08Vu+ruu/ozRIbGhFv7QB82i4u+Dxuc04M6EGdM4HFz6exXNYkbDUJNUJGnyNDAamxoLcBQu3i/SuPTiFsEXWe/2s4SkDryWtj+quOec+0epRmp/YHrwEACqHAag0wGDcbGIuwjw5fpTrbFTIH6k8HKyHOEcpQO6X/8tFvgWxDVk4aVk6GsRr/7k3yfQ9W72wRbIW/Q4LIeM//r+v8Vi0KSN9yA2Wy+iS6JuS3JY5Mzq4h5XUV+hyj4gkH0CkotMrHRBJHhcXbxbPyIiF3TyTtDL0+X0UNXIAK9GGYPxr1zJjn/KHL3KYl8d5bIDZbOSw0SGtm9FTLzFtNlYtCpWsg8r3bcy9v/N5ntQtDJqI+Dpm18P3PT6ROsEy/5PveU55Jn43X27G3ikyp5JRkwVlKWGMyMgM5ssJjH5MmYikBMA07siyR2apwYGWJrcGY4VHE3crHiwo4PeffLm+QJYtevACDscLYh1J3Yy/vAmdgDrXizi9rDvf5jPaPzoAeyBD5sYggfvZ3sjLkzjFIielzbde0CoUnofzTqi9KoFB+5tlj4vEjhB2d44SfMtDwvUKu+hLHOzXSV8+JYmOGsaLOLysu9/UMCQfLgX2/uRmMF/+H62J+IGkj1vPIP3ansJ8GLPM0R/F/gzIHup7vtU4nvPX6i10vj34MXPEj+ZdD/deCm9hfYn8Ox8ZEvTZyj9zHxome58/KFFeh7fnDudBOumkRMZe8HQwi8Ftk/HrlovAf/h044GC4++UdQapQAU/OKjkUQKVtE8a7U9Pdq1Ho83gjEczBNdluYPJftuTgs6ONm1iK44vupjJetpb2hi/J1zejtY9Q735ccTdOTE9o8K8EnVmVXg6JGBO8Jt+/oXEc/ObnzGMzxyNxXf22uoH1a3+lRKk8o1wCrZMei0eiLJgJbVY/HHJBozaU2ZamdJpHmgl8csYbrKoqK4a+UmRyq5xzY8ZTyUbHeu2WjvgKly65dvdFXUABiXSII4ka4VCp7eX0PyNWobyF85d1rgkUpgIijQa4NCmCyNSHYIpFY+01x9z0OP0TIXqQxpm0JIhaz33Hi+HaPbA1oR34bzpMaE4mcXjG05GxcH7lKFntBhy02gvmdr0dx+FZLUGxSJfnXwItN9JnwGsM7ZexBNa/4zEJtxGtVkcKg88Jtk4DU45t841ahXPyuNsVhggw57/+Njjfnq2EpYA3+crRVVvOKlP54JXv/j8zpmcnXsUkNfCLRnlxxMxO7I9HvJwXgmcyDeekd/hmQHEn3Ljd0aQ8blIiOslNE96q90+U7hUongKt+j1/G9VwQyu/RXXyU+GnRF05uC7h0daQibAunU5gD8dAcSbQ6CfxTGhFKRNBgViYTKaIirYFhjnCiurEibu5X27rQRISCBW44IXMwQxAn5iBwGfnz8+kWa3d3S3M2WU8vFJTQ7O4ZtKKjfoL6ijsMO+COoMzpWvqQ82GnJG8+Vj+YXgGWe+6RRCHme5HLvNEJC45Nm+j1VeDOdcfOFnwPuHhWlalnro3yRszoHoMyu0K6g9sUmOvm4E0dfqvRBYr9GI/H7IQXii5KBSP85/OOmTDi8/gLlD7QGAu9p6p5/TSB87fk6+vN3CgV3Pp96OxTMhEJvQaJgOAM+xvT4CMP9KPwRr/a/6JPoE/stT1pq9n6e82+Cxdqtdj/MbtxWgUEWdTKtQMl2LdIu8IkIr51zzItwKqxrWlgIm4oOExfUxlEjMDxk/tFcuv8z09GQ8eDLpgbHA3Ly5+SznmcLT5LvkUCWTW4jwcaBivUb1sywaqMzq2BmDYu/RSD9h9xMvn3fdeW56aydOUDS59zp3PFBEwuU0OWffru+36WzLv3kDaiHn4wYLn+/8awnrZUruzxdldvIkyQovtb47CKqtiHXax21rOY0vRWnahpzzNa0ZQ14eGbHWYfhI8D76JeffXU29tIGML8M/OQxiuGz+lDYLuIH9Auoi/el8jUJtb5lNH0RbNszT0HWS5OQQsijVEHu0EUiJYQit0op8gz3wkqf2s7mrJqi123YzmFvn+q3MYHTQAEMFMWAVeusnqqr27ND3AAEkeGMpF75KJdtCzt4HNDnnL79tvs9uf/ke+4EkCTg4FThmbg4k4ixykFf94EDd3ry/8n13J9h7OMzFI/jCNvefXQ4IwEl3V7wrcQqdWIHjOpbjeOcKgewNeGIVRyMz1bTH6ud2d4YphOzlXUPsW4WQBfPtV/77Znnei5KegF6O+nfoRu9kuHnyayVy08/9wzCzum+s8Sb5vBvz6c+f+k/z9mAL7A+O//i5PfqPvTcs4rnnjm9ZlWBo2DNyuuFM5c1D/y6Gz7/bf7FZ63AF9ieY3S8fl54HsHzhntZ870/nt8QCypn1qz8pA2Ep597RqEfUrQ9LBjhticEybH/10yw5k5FgcDMHlyW5d09c9ruPcjdaybGE1fZmehvgiMgQl9zrKb6OF93urrm1DaA47VjADFMR1EfcJR9dJJGgitrAMne2poq5Nk3BR9GJY2AUj38uVz+OSw+ov5D6MhLdNDQWEqva25sKAfH9Q3aszXlC/lIF5vXwL9WU9HHQ4JKEEaTKMhWt3Py6bV5HGSpjgjeQuO2/JbhgGxOvj5bjp7VAFb7Z7exBaveSDZeln58wy5V8PbRebaPpyzlFn0M+q9r9cAvdWLOc/9s0GHyuepjbxa5iSX2s/cfpVrxo3Ba8LrLAmi7D62/vix+cgACygE+EblRnHwdhbF5H40nrSJx9lOzYEQ20C/G7DMG+zF4ECyk859gT2+w50FzfSsFBqnGd5GPv2Sly0uwvz848uRjDNfwe4WGI1H4a97HYEkrU7Pg/SkiF7wXIhgOEVwKESsgrgnuR/g6bR+O/9QSv9Oe/ADdv/R9lfx9gih90v/XwzE7iWVzMojpDGJ6gniFLe+tZHomrv75KfLu66f3K3sfZgIoX0pzvyMqnJ7+Tu+kMMXiUy+gQv0cFWo/KsaYbAnqDqxQj2KFugUr9t8N+EGtvWLa4YgFsAuo2Zn8zHfLh6X/Xw7YgbvVTpdKM1u1Q93tdUrIy6HbDpnHaPbe0uFFnWkku2GuKTeF6jPPHFnXDOISBBZnhO1UXXMAjJ8GQ6mEkh1ccPsfr5+c2Qew0qX7/uuTBoLvhd6FDV4+h3VPszEDgNEFAiavSkfkXozr0XSwchpeluUT/E91N1+BlGj8VwA0YTnfCwbw4VANnP+D1qapP0dP2SzVz3kIl9PeMsPhpruqgNB0sHLI5EtzZKqA0LS5HDVYIC0EZxauip/4CeAZtXsMLhRk9HNE/E+1TSrAgJ9stwoIH8Sr+Q9BAd4ZqqnO31inpgH8wouA62uviiKjHmunCfBTvGtbFHwKCM9gNz4xJJBAY7oAeAa7DTyLPWrLFaC7DcQPPAFO2iwKPpJoh4b7kBEEm6YtEgU0ClojNAqaLtHkGzBAo6BpiIH0sA3kLnAv5XHIQ4bUVYQZ44WTsKL/5yPZWiErRLxGUpyxFNr0D0Caze16AgQEHKRFww6QlgYGSRSptdl+Q25RzVBc5Dls0jX037I+Th5Xk8ityA9Efj17Wfblejf6LdGfzunMmc7ZLmfn2djXx34sdzr3Dus71RL/uviP5iXyxvO+XDhY/HT+h0s+9v+OPXuS+5vXRHwN8cNFbUUjRbd4Ywd48sdoSdraXbM4oNhUHCkeKJ4p3l08ULKvdEbpxtLuMpeyp8uV5a7yzvLp8u3ln1Z8VMmq7KpcUXlT5UOVr1V+UflHladqXdWTVe9XfV89UP1y9ac15hqqZrBmbc3+2pJabu1/6zJ1p+h++m4GwjhTL6mfqd9b/3j92/WnGrIarA0rG+5rONzwScONxiWN25tymhJNrzWdbY43/90iaXmCmWSuYylZJ1kX2NnsOjbMRtkRdoa9gr2H/RT7GPscp4QzxAVcORfjtnHbuFu5j3Df4p7hXucZeCv4C/g7+G8KFgi8gt2CZwSfCX4RFgg5Qotwh/CMaA3UDFmhTmgt9DT0A1wJq2AKXg7fCb8Mfy0uFMPiW8T/VjDpEVmevEx+BFmIPKcoUnAVmOKoclzFVh1Sw+pZ9a3qF9Qfa4o1E5pbNK9qftFWace1O7Uv6yp0P+ub9CH9nP4F/XlDkyGhB3rrekfn2M9Zq7+i/2z/vJBrogY7Bm8k0BM2nj04+17CM5GtaEHL6Nz83MeJvujY8Kbhs8MvkhjWl1sfWflfm9uWss2tcvMqf9mD9kH7Kysb8ZqxgRvKymkEQHHlGMFrUAQ5IYop5/LxjKV8PL/32yY2dMdRGD2Lmjn/YvTf2VYw/Ru8m+qVbRN9RjUPcBeePeGmll//fmoHhhb5vE2BbG69t8+bfUH8b16A//Y0mQIy2uXIz3g0n3Oq2RykYRnKEZ2y9vvU0A0/w1DGicw2fj7GDccHqbcqrUOp9//xtjijFJay3n7T09vPCR4cVopI0Vc9RQ8cg7FmswGlBc3RmlIj1/7szZIlir9jbDybf+p3QEf7bwLM3H72GC351VDx77FvDSPiM9YN4MldFATmr19LVNEpFOfO+CnRv90deb90Xf2cHBGoe63KcAvPkXMzC2GuY/DIaMvO+UIMLoNgfkTniohu2DtokFgCkPS5AFCYRjZDUhJ6BqyCnLw7og83q3uNUvVR87IgthEox/gK/CmZywmBkp4JOVAiUUIpJhmmEghqkUZDxOSh3IPbDBw5bOh2uzvOe3rDFZ4k7LjbifN2dLgF0Wf8YX/Lx0qcJl+0t4AJSYCoZyYGrwg61USXiQm50wicZuMMvu0l+ccO9shsWTf2jiFEIIEHTvgSLYexgIjkLTL0eCfGStkInBNQfJM45kxLdotkdaKEluGeqqHrdWuHEraMQXi9cJFxAE89KI9rD3PFFnE+Dwe7ioQxjHDeXmVPJBfWG8XCt+r6gjJ8ISVGlfhJrfRUkwB5JMyJ53EWw8r/I265NN2b29mOaBq3lweMYxziRdRWUPRmQRU8mEBBnW5aAzBiCQMIZoIU5q7kBV+yI6WcXOHgYEACuuNViQsF2Ia6vIjoCyzL6BRLykl+cMmni6ccMCQS0zhRqTeAJuZMo5tVBsXqyxwbeMfdakK/VGthkuoWYOVmGVVaOreCM8qRJ4o3ywmMS9dpukuj3Upgs5AIUXAH07cmOI5HGfUyItgosqDaUQbKVNUGPaXw7BDV8Sh8TNc1p/PKPeTub3l+Zvr8dgMdsf66ctFYARVFD9xG9WQ8hfm0OEstv/not3xrEH0/cBDxzZpLZis6zfxQmvmhLAOQUDbUFHfOVOlEuG+jUehLOThMzA5dOf6/4rx0C46Ot/eXLiufox8ZxkDDFL6UCeBSh4z3Dw8OScmp+gcndmuQEUghBdSWuLRAUeqAHXEj1I1S6wKWEWmHbm1wziu3qre4M37pEE0Ds/SSTG/JHmd9IMYBEYieYk1wOQK2YgmnWUSeMB9ItCHPICenIofmatWbwSM3RFvGA1hNAOjS5XkH7vZXJPdcNXlx0dxxUoh35w3j2H/EnSvJatxJzVcwEgnpKMtqzh13ubIYXd8p9/evmA/KjbjVr+L2oLtyRr3ATLN24btlb6KL7uBWFn9/uDUXven+vNHosh5cgZEsY6Z51i113/8/3HJ+OGmdOS9qfkOczB+J8Y4Qzyl3M/5JJKuqcHW34GAE4+D9ya/sLnzvhCbX+fuf+be4LpyY3HwBZIE44oBXIMZ7u0GDtyxEb8uBfM85/ld9wNE5/yhpuAjyT3od/PSBIuWDU5/CKazanakJnZCAPvrEj0lJCogra2MW4kDRK0ID4/OcUtxoJ/SYGyK8zEWUaORPLt9tCwFp4N0VBJRFYrDhOLpdJuiIOjTtyXdZNOJvxIKmAj/xgF+vaGEForrn+8G8Hwd9avg1NzJztOyrNNPY1G+c/53ZUSgvoPrMRg1k6Dk7ov4zJlhOvefyDw8l8KcNOA2b6uJde0ElCbSJqaUlurEEpuZhCojD+wP+FqvLUeaZeOYC8QR3IdDbcPib2LZjzq9K2oc/EbQeDFvVs/UPEuynt29HDjCNaZCahAVNktn0P6CWl3m0UqUqQoPrQAHUCji96tjC/z/qC9720GCBwSvQC6Cw/CvR3a8ZGfJ5Z/EsE9TTK15lhBRVOBWA5WVVVEVqcBFqAwnvSX5l+rb8KXwBL5bLXz2fdsxOaEMdrjoj56XkVFhJKEgHNN2m3rD9WUcQSeQMIS/vNjj1OZjQ8uCtJ7njOvWWKL73BgCtYplXqBf8sA8XlKE6Cjg1Um/bO3FtC3j4KOyrwA441tKWvCTA/qaSQcdkiYM4JY1NNjjGmvW3H3DbI3M0H+WtTcDCkPw/YkD4zRqaheuNqzrqKxSwMbEzB/VTkWEZuowLkw5TPuRwSk113M4L2SpIt2l6QMUlH6TyAKmDEdXfmmQzJso/nPrPWU7k6FJx3CEVcCgYbHEBy/RKgzOxvv9R4X1CPTjjs/KPdn0cPtqdkFDgQGoTzzja6NW37nPbQn00fMERQ1VA04Yq6DRM6alNypAC7/nFvhjgxRReGcmVQISRsVQC/AbG4nsHwtlQQSjHhxiGgSUbNpsOs8Z38sSBfsKrB4ZWNJkTqWwo8x602+WZLd9X1dvG0jiKjRJV1Id+uFy0uKjvfMB1BZzHe9T7e2MfCq+Ix+3v19LZZ9wM+M4QtsDx1vJS7jX7a1oIR0vOj4sPmi+Zi/ylcRRXd/Xlx995VNt2RPaYf7VmuPYXjQHUA9QZjuxfWrpsvip9Pjub7aciflaQ9mm6SmdXK4EKETdu9s1MDrkNIWopyUeyT42HWWooqjIBgBSiz6DNalgTwXIaZRyMOaFyACKJlCiZZAxRuLMlTjqAYtF3Xh8OFmGWZrClcSP3Gil7CxikAimvdRaBglNsuh5/mFdZsYZNaFImtpYFtrUjx1xgDOEHBlrSNDgJWLKKGNKM2hgAWf6HGN6qUK51fuYQ6tLz7nSVaq4M54oiO6HwO2YnBMf4h7qJX/XFaotE1bmgmmsxx0jPdk3B8yw1vRwtUBTbOH8r14XtCXGX71/ewbi7+sttefc2hd6k2UbvHe16nH9yccP3Donk+fIb0g/b2CZtMRvmJgaXIMS0iYx57R2CYCdAD2ok9nbSHAupjwiyq8JG24FK+OFGpYC82u7kcmvRN63NoeqiGnexHCjuEWQbqHATbuTrFs6YedBpGgiO8+b2ogs5YWlv+X4hv+b0yZilGsfftAUsEIjpuo0Cl/bdAEdskuncy0sNfBO+lbw1ppHggrgcbOJKO07NSAQlmBFE55RmVtGYN3FVVl6TOxYR9KiC0gzrwU4LSaWrqRjzvDwpSycxHEHioWTEXFjuDCnq/sAfb16OOAu5fHH8SdpIYXGj6c4pgjhbSlbmTqkonh1vCJFToaxYSnKEJJlG1kKN7x8qwpldrjWCvMZFs4I5I9zX9BqN0JHE+HqnCqLq9zEvhzSLFPk/XR6SC8fTJXEdIUbo4/g42baD+o+beDx1FgLiSXWOjA+LMaYEHkw+CDTNwnUl1GTp7lJgSULyO5UVoO26Ve2eTrJeCCnZyVmmqaaTrBYhiSSQNCZMnLkgLGzQARymUoIvtyvJEELIavlptwV9A1rMuljFKlSzIGkOPq3hPBbWAsrYmKGGYc7UOAydUYxDapgxL4u5oK8Eb+canB6IBD5cw2TQlmrE9qF91ioTtKQeWtnmsJUaA/BrnCkvkeszeK9W1aAOTZmkwuZgM0LglqV4+5vZ+BzKuxKHPfjYk6PBm5T6dnCPUzgVUvOd4U5IQA45ws3FJa9LGZVG3rdKlnmf24C+6bJ1Zm0PEAn9M9slEf0i07h/cwJYafKuyIZs0ESTmBEuhEtEvVqHatXrVulhLU5SGRqyzIIa+b0IwceP0NPXe+7s/1s4yj5Cyyr9qYn+0kIfSsrL4vdC/JMH4dLRvT2Xq/I6EAN9MEEf6XjFb71bny+xT4MhqJYhUOtakzoOcI5GDVS1zU0QCubuV9av39Yw//zHvEsYdg8LCB6v7i0v9VC453jV6o9Ng9RHRq1gxmpvtV4OJisQ9DIGTyd+bWU8yigTuTuJyKuEsHgysNwDduCnZqBzv0v1ui2y/4LGRvw2C/1oOIJ+XTEXf6CoJP46kQApgqP0eOeFP6pBocpyeBX8P7MGXtUhGAII2P22pWLVxVCXh3BAcvY85OM3DiBzP36TBH+0mPq55OAtumH0h17G8gSA0q+R6TfLWW/ygV4OSpCdXZWZbq0Y0LpuIItR3Bk2PoOB95ySG1hSItRYNPS9MY0HoD4MFARMaSgYmLCKKU7NSAhQv47aTBJ7xSVR390r3vn7rrfnKaqRE0z0SonmsbOPxD5fedjYugoGO5goCbREtOh6SPOUTmdMYm5yMk2h4BsTmGbJlyW3kqO9X8tgUBhBKUnlYHEPO1X1c+HcHE6uOu01Jci9bI0N9JLUcVJQ1cPl7ZTkET2sYSIWYN9ZaafVx4n32bbTz0jRWS5rOnEH3z1UIE5wREdcHOrNUlc3GGawGs6CnSe9AdYOSlN2LvD2cUqozn9CEm5L4yIFKbSqgn+Gf0n+shprC9eIzUAmPOdZe98xU06YFMwKBudm+q4zIYvUN9NSimIZxQKYRsQZ+nLMQ2vg3DjGdlDCgFJCmLnYBEU196CMaaJFiATSIHkJkFn8vIy1YghBEqEkEcAqBeZRoBmG8vGZkBeX7jZSKjLuiNy1X65X1gzhakSbdf17POKE3TzEuZOZ/HtSsBy+/5DiqhWHRgvxJehhY/Bj4yokf6mWXJxB2zjGp09LRHHL/K6wlUHMuTguf1KT0pblt/Nym69gcBZikvYKc/PkYO/XWPbIkRkuko+vp+r7kkurqjA+cFs7VEG+3nBV1S1kuZSdbfx8/+yEjTn+aLbzUpslCmJGYFmuIB5nHGe1YztVkkpFjM//bGq0YS9GgQom4rRYV6KtoMcJ93uL/SDjFoc/n4HqQhFEcam+pG4QFQUiKxdZJVahOd1FkBiTYLfcRfAr23o526wMmIgbyma+d+XijcJA7chi69i2VneaapgxVytr5BA9njDSNiW3LJ2qDeBC1wO4ZyyU390tJJC3Zh/vU1WBDido3nhT9bnJ3G2bPgaQAYURjeEaOSsC/P/93wv7q5gL1pqblrs02O1qBt16emshVfAbQTttqZX8ClypTA+nMCdO4kvdtYH0OlRhhLcRhAy1sp8FpeHNXkNmuvr3pnZYo4Ezw2dUSBzgElmKR3peljnNMUwU9ugGojbmIkLrahyHykhRzyEph/pnWAmFOeVGEnPmZce830jkxe5kHDmZh5zJjW0NtIHQnYHdEn9BmKCLkZyFOMvpO1K+Id4Xpru5Zk3W5XQ9nndspRUrquLtfKv7KxIM/lKSxXw6Q0zcJ7B3+vMwgIHko4XmuUqUrd6GXyWCEz3LnjvAJjVNZg5XMaoUMv2JBLpe8x5kAEgPafqM3P2MD9I2IJLY7okth4k+YnPK4ENSVrVU41Iw2j67piXR0Pi6YnZZYBy6VRQ7OMROjxTlN8TJAimTbNd9tw1H1Fu2sl3byABSxQkWv6CJq0nuJg/CQT9CRRDftIxA7h5XFZYUERTYPYa559zeiKzWu8YfZsL1p1Z4JrHNq4QgG8pMGwx5xnAG8HNFoww3uze53lotofTPSHd8Fb6GvFaCjix5D8FVTFsUKCqHwY/3jBOHNQkk050Hl4lKga7fUHLBnWLbGZ+4qUhhonsWWLuBlDB/9cQh2HoElfdPe2URm23HM6cUt+2DpesaXXO4qPpyk4sv1xy0PWMzg+OdjsLbDPykpKxY5Fx2ggs/L0uqb716uzhtguMtjVpkJg13NrWNQFzd7V9P1ppYEna40+nCpB7/YNOzLTg1LcCFAcfMeGc1GU/wUilNAxsm4Dl5ayQbHSoZAU8rigtvyxiCX8rr+KPIgx84Rsuxwayz+aOJfk5/x03chu2pTAECv0wwD29ax4AzeGcswG+Wm2GsuoGS57SMVRUxNgSYZZAYRoFErpxLzOIBChdG5L1gf6XzWJJbrZ4ujjwhNvODQ7Q+SrZ/jTIqQDASWBqZlRGzCCfsJX61R7xPr8bnaE0qDupES3QvFTAWp6dyzm93azUHg9+SCbW0mqBFbFwF/nB4s9fToAdjxIzzeV6GemOqmrYQf2gbfhNj6ocaS3eQiElCOVfYh6vwqW+0Du/SHAopVWPP8AYNq8W9RYKCtEPTRbpDsRJIB5XUxkzkmAHwT+J0m05Ix9QyQwOHAHxKdN2KIYgGVK4mkC+JakTzDimWqaNMV31oooUO4gd01WGxXm8O1yv/8FfNmhKthx843ztcthncY2Oj2OHf4t+Tv5s91AK8kQ2p44oLmUCaXjQSMXjDroy2j6eCCSlMCDKQphO1gXT47sQ5QwfjAKIXimNK2zA/OJsYSPWWUrAYlQEx4FFmoRCglsUA5DRvFUZ4u41pmkLl40Fo5oyRD2JVDg9wO5xP1DJRwshZ23+lvb2yCgtWH1mclOSV4tBrIz03MnSD+V5moSdQ0zisRYXgxQ1SjIojNy3mWHiy22BZuBlvFnzPtbIS+0jZRgSN2GHa5kOGAs/QnMWYJI/wtao+PaxX99xkpfoG0NcZ384llfBVZ9tD7X44m1CK3meFeKobKfye9GCJvuzA7QpD1W2omaUiVxRD0RiDESDJ42aJbHg2qUq1HAcWqPbg7JbtWLdjp3fKHWX9VKx5okmqEV1B3zMFoY2dDmAlparUGR+R5zEPojfdq3z2MFpgN7Y/8X+ZxinFAgtYg+qzJQNkEvVQDGjtnavsD7jrf+JQYIbaBkGKkoVvRbZSKxX2YL528RApJwnALlVepL2MpSBK7QanwawiH52j1D0Qghju87uBS7WDncLCpATc2Vojn5jltk5apYZDNqgigibakC8T9kflNaUBLa1LxbW1MTa2KdlXJgTgFP14y2EnFXZGQbekm8Fdk/g7vBR6cV8xPm16u4geyr/gbMKXYrOjcGOwrRwk/XLK35ftYKwtkWNa24kxEsCTEBSAwodADlCoIPDQQ8ubfQsgpzyX95SKp1AKPTh+SqSs27mWiJvDxthROqYGcvHaMNApI4nSJ2IQonEujdY2QmVSVU1NgFGJaxXO+8NhVnRvPGWnGWKXJ0AJLQe+TTCV5mljP2WcUE5wqG6BLzilTO3Fzti8HKzyMmhByxu+VatqxMcNLK1OD0Sjihron4qbTYbcUUJfPYNJEfi88GGiXvYO0mQ8L7w17zxVMYUpIu2U7H3ZWZZZk050SkJq+4FUumL++dtvvuep4m+nx+688T2re63+46tXWsE6Diuuvv/PGN98zZkqPlyBxzI94FfXo9uAVTwU4/Nwh+yEfoiKeHayldGbfWCNLVDZAZO3oLNjSc4uGdaoMi2SScGl0JyBObUlq3yn9qoSrbjTDvCdjtlrUO1Wp9nMP9gO5bcFT7Mt3i3tbN9y7A0pWcijJBNde0uK7ie4uEWSzOzQ9QazwkpxZNdLmpAdv9Jr4v+013J3wOvECcLt9MTiUcE/2afbwUoE/q4/1ZhZ2vSQ6G9Qt5xJHMx4TAJt0bbupjZo324lMcAqCbwMJeoueJdANQlFFBvKVyfOi+JutxLnpd/ZKDcbpYKC+auLJ3hFZmoJZajJYaDUBX4q9q5diLoHc/o3mc7lXH39sLSIM4Zjunc3p0nsWGlR/DCBd2gAv6TgYE1zCqxs4XPsVQptgHXOiyzNuRRrO3yqqvNDOQHloMyuhtqGtofNvC9v5Njum37/0cYhFU+x29luMlfORcpvbZ+3vhlzrgk0jfx1dLWp0fD2IQDMbEozs3LRVMqGywjMeCfP4eP40lKSx1igwsg5UPQ8zyg87b6Ed12HBMVE5zJSKcMYtk86gaMDIeWDQ1Nyqk2N7z0ibq7x4TpsUDH+8hElIzTF0tHJpCn+mwRsQjNEq+bsqO8WABKbxacQDRH22okEn65PlTHKDw79Vh/daDvJ5U9K/mrJltnOtXw0f1p6W1UkUMQETX7Xez3cemuSfOtmWcn9pn3EmpSS6lQWFaQ/JtN7L8/Z61DjNQJKKBRLJoggJi8ofWy+TSJgpzOPBCq1OGIPasKirPiVVYuTbpAj6qzYRCYhNy4Qi9ohi28yspNAx+FpFBgGGHo/zRDNxY+2GRFuS7TM+iu1aGO7bbdmET+eijFOdqKFPiyXazu7/I/DCpZt05wvFhCZqdcJqNAigCjjWEHcyuhLBYcDVvOobJoz4Xtj1AFffd3042B/B+lT/V00x/hGEgxiJ5dWFwRt9N1G+WdnI3fJ7O+/uWNdMrTin1oztvGUT5ak/eV3Kxn3sIEACtEQ3F6Rz2d0rD4HG8DUI1cSDYV1hg4W3+blgTKnbPENgEK/EXDCg+SoCXkTNSLlrLSR4EUmn7AhD9/ryW7JghndwnfmctubGAWOeja182hFFneviq/+3GBtQSBzxyzevQ2OjlAHrDX9d2k6STBbERbBzw5C6mvlUqWa/JnGbJwpSKqKVpHH+Kl5XFoCK1nNXMyyNQ9eDNN5X3MHeBtkA8ELDJ52WhQ6O+eN1jDc5QTJZsvVckuscQDFqrvoP7LNLeY1bJovk7rmIJwwDpW+siZthoRc61WmgrZKZBazmPQwEiElV6CTIykrc2bYqm0MB12KFTVauMCZrJONnCyLbUprECB2xZruEHxJJHev/1kN+6tkCKPSHR4P+7uKdOwybAhKsY/SCsKF15hmGm5anqaMn4PuCG1b086HBxdGTkio5BUH2WE+VENt06kJpjSF9htVoIuyOtcUOT3HIO/M5/dKZZpZiaq12VLFIdwAIlVXWS+nXa7uxUHws4FAhAqQpLg62NhSI0elooLqU7ot+WtN+1ugsvJq5Q32GwxDHkQryzjkzzuFAqNxxMV32fFU49qWSkpBXjFzG2sJ6IeEMYSUTsqCpQ+xUoyeMYOqO0deP4+dY+BFNAK+9fEORXNTfHhGVp3hmZSrPYcix2x0cb+iHoUyiiGtdgsTBr1mFHynlLMBUQfpYjDalGRVzfC0zGKp6E44UI6Q9UaRNSeoZY6BcbwP+Kses80i57J4e2xEZ/bSWG0V6o1b6kz0ZjXSKVnVbrlmjA9HCrKRcua10ZWzjG+Tii6z3KCdxz4tZyUdl3aHZibQUTKhFO3wxfgh+MBUrgRtjHn5A0IjRrsEf2CYD04KQcUlZ2KhwWny0dt+7y373tiTkIfAFTMym1BAjamSSBhHpcHI/zVW+MuCv7YyYdgFK2jMCjth28VOHpL16pyEO6rhg79/WUL2pz///e8vecs6cMu0EcIhXLZ1Ai2GTZvHlQ3jSVoZuWimRtyYHEQYNNgQ0ilG9n5vGJbrlSQ5Rs6oPefdIzG7JGVmebbKRFqO7JbbPwfXudmVcmudYome4cnscE+qq1ea9IBWTFkKw8s9xVqM7/ZBFUzXmiIJ3dO93yGnOR328ygorf0GszLxTi6XEQWqoo8zEHw9FTZ8l88qYa/VSuA62pBCOHFJOoRCgtLaBvwFOZ6nof30Tqezo0SFYq0GahgZ7IQ3+kaUt9NqDC4TFfhvodCqY40+5yS/mKPrbLfYpQs2QORm9X3/fxtpV9Zw0OPshm/FOhWcVMY/k2v5nZWzAQkos7aqmLJrav5ko6gdTaksl01Vtiko7Xwy23ZI3jDFwRxvyxbeYdkguMYu34MqFrXGOXcqsTnjgebxvaqaApPU4DeC+a+uEQ2/FNGSJFVttTXfEVppjx1PJmelHLbgHZk22Oww5UOOpSClqnQvEzG/XYMiHqYquoT57bp+8Ae7oEW0r8Knwl9kmQ9vI/ZH9bbAEsJcIqmli7R3J22wsCQaIA2QgqGVl/B/fGnXqQfHV946s9hy/rstzWAhen0LvbaFcqeXcNn6ebghW7GWrnH0XZUCYxCURD0nqOdE+t7+B+ShtiUO2b1eeo8bxxwN3tDvTuKGJel2Hookr9tSY38977tj9LyHb43GE9AinUaJunN7it+YPGS1chfBLF4Vs3Lz8SRJYBUzJqGTvT36v8iZKKBAhPtMjoC4TEmv9iBEPZX79/kVvDH9+Bk58ZWrWJHSSbirbpT/M+Hg0d0ZEKbDf7J/A+uU1cUFkL0dnmdEtlOqbI9sHWIUWWr6lOriCA7XksMx+ql7++C5779Own86Nv328DteqWlHf/RFtE5HOI/P9zZt80aHhOzExXib3IhQP/n0k3cDFKxAz3p3IkyYYcpmaFLbtJYHUv0XitLYCqigx4SBRZsl9pcs0SyXPzZVtKc3/Hze//9/qifRmh56ozwCXkEsFaD4MkbukcGgEF10Ty0A2A9lZnicHnlKK+zsLCzcBkodD7sUbnTu7AIhNP3YaABzVfqZ9LmIHQvRG2/5iE5Kp60MAJVhH86G58FvyRGcwTVcJevTlmIsuDyU3EK56zKBxYiZxeAs7+AChiGTSpg7NDGgEAzboZC0zJY4xkXBGiFLGlySwPFn8XnMiPbC3c8c54qsMkkAdFQ/rAhgMqfdhOxrSyL84WrsY3RDu/HwcDfTCQvd3TKjyd5Ye2qZLj+LHozZ9GBmYWcx1NABkWdTRY1muYhU9qgS0LfUHRa93/JbmuBk9y7AjEOohHSEoplFWdKfngFFHrCNCSvsvM/p/ZaieYiwZTN87KJMlP67kzafMvEUVjzH8VosEvkY0dTY5JT5vT5n+eLqTLGUx4vgcOS8Y33DBy4YRWRY75YzZN06m9N2GUKUuugbA5tZfjfBYKziEFYolz2E7IqwRARxMuFAQLNeNDZqCDaX9zsTlk1tTaLXFiYLxOo2MhdONt2ZaDTS030MwhaIc6zrPWcAQdhXwXyYdHmaRQ4erE2mz+QQJGg3lUw3nClxcGna4MFqzSKYnQMWyKMEYuZ5IWDLPb8MdzEFaImtMVBCcwMbfcDxoviz7//D/4l2ychQRY28/XXdoG3q/c/OBLiMy2S5xYxKbZ2zpnHKMKWxFIhjLjQxOmPos1CqM46XWQnpDPNzmdHPXcwk8aMr3bKjLE2yrcSlo+uzTq2+nBidOSUoLatTvPvzD2dkoKEz05w7S+f9OrCXXGISOc7det0Q0cXDNgR9q2PGoBrlEtWWNrXOjVyRfc87ps5sr7cZjVXyJEQvm4rC1F9U7yKs50xzRPyWW/spb7rtJRxfB0steEvFqABNyD4zWWMU9u0QYnKZtsVUxFIb55QXkEbUIwbWLhdswPUmEvRLG4FEm3H7JJCcKRBCaGJTDPbsovxn/izSPX1UiE6cumFw1w/lZLGqQQdJbl0r0eJEDsZ4zbWA2h1NO4HGrEe+QoiPXcOj6mRD7w+ugCiSmPlSkGzxpDNGgrqDwWkWW/xlj0kn1z+ukOGmAb2Hyc2VXKd/14rIzUxPTdMMZqzKkNPwVJh2YKac2lyBU0qJxY/qsMYer8D3/4JvFcVgnKdIv5Mk23G9WkZeAuyG1DhuRJfQD6vBUa+86aBI1h20SYBZMKXu6O2t/K2nA0vaAVA85HqcFHTXyt82P39htrvgy0vEWgeXl5D1oc44AldsAxdx7bKwcellCLJvNfUlmCiriDlqyNzEwnppfmhZaFB/YCNlKsyw57kCRA+I8+52oGn8bImNxF4+SaTpPlrJJdG7crtSxRWOlTTF2FEF9zAxc415CIkjvPHweniajiSNxLH2bS9TkuShEjzvXiv7LL8mh6my3JNgPXd9JfgneXG+vYEp86UZRyNGZAK4DRNjN2ErG+K0mfj6e4/fj60clxZf/1WqzRRF0T4Tn+Kb8J3wTsfsNRTZiixsDlZi4xLxYzuJy1Pd5m5TM4uGWdeN4Dqc0xLgwAzOqZSENGVg1kFgfPKxCOqrEKwxDnuA5q1XFk7uo92KgrhRHCseVbKFQrG0W0RESTPhwsoeXPG5bGS9auW7QDywMKiBSZcVlDhJLrX06mnlyd7Vtdq4Dp4VSSgQQX98o0bDxPoWQ2Nomhwi+mWQM01Xv9dw59PtcyHig06VoWUELmlM8eNiE4vUbrvcEslApMbCytpQZz3cvGWh2+j3zAdBteaLWG+rRZ/hJzNqKbL4rrvCEevrvdbanOKmYTZaspcMmGoywxTu3NncmHBrH4N+So+2oG/u2G2BJ2wRovS7f8c3aAG+Ed/jvpdJN5EdG/GkMGa2UXRtFrg8BRJKC2YrgLJP9tpRrVvnxgrH7WK5NHgKFqwyhlGeVAKb9g7WiHZO+wKAnmpBNlCa5JLMXKxt7y6abOPxJpTI6uFpMsOQUzzHMHuyzcZ5Ki9QgMD4DBq4gsLwgP28i6hcGwvwGIrA+4Z8oHfYKbF8VDHNKJmfJGHWmwyGxxlqyHanpDXgUr3lVGu1/llC300Xs+nDCGyW9jeZIj19xKZbpY2VgsCD8UEFTqCyI2OZd6EBg1FQuUAh/FRckj5a0U6DrfJirTjdzMuYMqbbigW+Ct8B77xCK4sMd5tGxQIUKWeBfBQTFYENozRCKQRnxQAbEDawo08qGag5h1XsCyRLvvHhtMGL2oZjBGgyMM58pKX03TW/UHDtop3C9NfExlF23QbODqp6v8jpePWkmtO3NGBiCkGZPq7o9YOC2d82ydHlgDYiLwAChxi+NeMGYjbffokuLVZ3GxkMjTZb0/pgJBsvvv+wCXzzSsSww5oX9uN4JnAsLi6+l+U6Hm2Fy2WlWPfFoj5LpbwF9PCz0VaziRqDhCGVkcwKLAjBJviBcQ9vVpV7OnKb9Mm0MrfrsUOAEe6hfqPsgJGdplHuK/sf9KGrHtzGPlkpZ9SB/8WRhjjihJwZ67hvgTFzOTv94H0s211uJH5nEljFVpMsYogpSVG4jwHO3HHN6P/QEMXISXC/ntDJ4+2ANfAz8uSD8d1a/xSQa2du4VsokZ342gsirCJZHSnorJegOmm6oVzOmh5uNEBL22bjVv+l8aJ+H7p4y/5G9AAsB7Cn9BSYYHI8kwnywo3re6i6lfMpxBPbK0ooAoFglADIkREV4nLFtjvpoCjizUbiCQZFEIChi4u6PZLTrMZFojO9cKWIWnuP+hYqEdEvyG4a5cHc9K7XXnC41VReMPSgeUjcr2Xwdk2SVYNlqXcDIiKYVCqtLu7gq+HVFaUIyi0sxjsLx+bTuqZ7p8upSAPJisecoiJfYkwDtXGNYCVJGnFgpQSn6gXiOAug/Mhr8UmEc8JuCk/3VdUeSqMk5wSailG1Jttk67VaE5bLAKO3kGDtWuDEjJGPoWOjeFPleDoOeJg5c5KEDEs1ZoG+pcjavb1ZUtOxFfxoksuRuJDqiRbUD+0w2S3WVa8FQUuVlMIMegNGE1ZxPFhOwAc4YuCvaE61bb+vPyIQIgsmIb3KFcCeXlUpeKiTqQfaOKn8U9GOh5/XyPrctSVqAScmuAoRbJjVby+2h8g3Y9XTgA9qZj+BlJr+DNw02Sj7YfNeSaMgLdC0SqNqJcQEMuM2dlCV9SfCdwmAesQbwrozHHJxl/tpx7pkmugZLZwj+AYZZXuVxUTFDtpXyi35mV+BMp+mI08JTYgNPPTtXQ1DtVpO+lwbPIroNLrOOvVNYTD8io939gSXYMF53H4awM9HsoYMJs++cM2Ji33Bu08E/lx4Y/jEDgYzvgXf2Nicw3zp+yFVm8Zp5tLUf80ENUxPvI92ogzgtE7TLnVdqxoP1M57wihv27A0BconAxUsF+gY4ZT05jW8PQrb8Ui5BQF5sL+4eYlGogzxR61KNW52FK6mWwiwEAzkm1N2fmsxxR7NX0Rx27IGNeldGtyyrM2kGmgVTP27LU/zZEhBHtrh7Tq1u/lqqvkMnf/Ub3bm5JwnwuSAhhvPwyxdu5utW2gzd1zEl8JLy2n7wMDieisqUOO7aTNB0uk+uopGIsSkVZ/E1DEpE1jiDJRafilF2MzJiXA7WizISdbI52ejUlDaKSI8i8FwMB6ycVgRvApE4uoCLzhTtVEIf8++RLhQZbZQyiqiNV0jvU+V1OkVBhHHTJLLs2f9f1OsZ5Jqii9UW032ZIXtT+wBb4OCeFeDrzlUdV5+oK1nvSDO7XqPQQmQlqqwQtzGl3gvlZJllGITKloscTHpJ/aOWPIuaG17AqIzlQqSFlbKz7TR0kcXWHLU4KgwCYKKi4grHU3CoQJJW0oIW5XGVVE0wormkeTi+GKFian+MHOHUvHD19lBEyLtFh/JCkqH1oHHiMzHY5VtYkZvKKrVRUfGGJVs71erZ8v1dIL7mOZwJcrLukuo4+UD3LhU/EkIvkGF9rC9oukM1sHQicpCtvCTt8ghKKDu6XLm00kwf5XaST8hGMFEX7d9f47XW5f9fpafiP6fWUQKLdtXZ0g2k8sjIpZnCcOEVqDa8uygB8KUkPJMii4XQSFltKldvoyYRYbumIC79iWRg4O3C1b/uDA/fJqE3aH/TqqinVargj8k9O22puGVdEYPfeL1FAwnVj4zVGJU/FcSY4AaOpREL9Rl8TlroIiYZ1F3sW+69b74gtx7BJMGdynAEaGN9EMRndrTcWcfAhMX0DwrJV9Nj9dustHvnJEqs2VhpgVd6DCtnowsnpNL6MPcfbx9Q5e+6KJD3MW5BO26igo3kiuj6dyVppY5Ajwf9HrpE2+M5FGC+9uPNfzU6oX4G1ruuf/zM/4QhAkl7XKfwOalsUm+2ftW1Jp7Z98V+iv4+dSXFv9mf7sQxE/hRmvksSv8LFjzs9TzI9mtEtJIEzomRlw6qCDkvozys6x4zx6osPZ79mnOdT/vAuYjGFsvvpjB+hcXFZnG4OKeOdSEwcXXrrgmChhjGPfiai1srnEzHLaaDO/20HKl/uhC4o8mL0OkNZ99T64nn42ht3VtsFaPrb91pMytCnr1t6DVKqy3mquIwVes5PV18sEFP+7bo2iE2E0iycg7m8noD33eX41m/flvWMYZKDcgHRFceOzy7DnYY8VCgAZaCRIgwtQBYgTRLHM2Qp2Faug+WIP28vGL0K4E2jI+sAlMqOKUINKATx6X+aIVDdbZrfvpNOYO+m6HS0CbyWuTJLj7+JvgDfsY3JQxc9Lur+z7uIaE5AVz6UIsBYeacQSbErIpK8BGRfJ8z3xMBUl0oZbyPXvVtl/ds5mpD7xB0FGgeCU0kFwUrl+xzU61zg4L9wtuh8FfcttkvZZMCfB3Qb2j1zkIJ5gahC/Et8HbtmaLwZ1EJbsfbd25XJ5BRzoXpVnUHHK0hrqmTxzdkdZE0o5KCCU59UNSCsHWExQC4UVPErWuxjoqrUDyxRXHkd0yrUBOdSBVqATlLnmvHbTIr9N5zO5wITbnFJ/6VTRJS6JIZ6WDVfLVV4wgcEwShaE1Cosd/AUHg2uFMSnXQ6rFgE4L4m273W4Nz0F9Hsc7EC/4ggDaujcYbJKfQrTe2putwbbKh+LlxhB4UbC3Sr+41zqM5XlF1k3Tns8aBpkqTPwioyHMQz2DKsJ84eH1mOueGV0t9iZigLnpGaNNMt7bujvQfakPIoSUQeZjqdjzzEgigPDcv/A0ZUhJYyASVGAGf69ySUFMqvUmQTRvrecRCrSoW6ffs9/Dt+JsGEZJMhUEUZRUv07lfK721Z5mKW78K5ycNwujuTPKOfUvBCmyCyVxeCAMFOTDzXuB29ky8c8I+gjCF7w3k4gONqmbQtbtcv2SmK7fmaYuKzzPYsWHvL/VXF4QecEwYxW9t8UaVlhad4lII0xicr+k74N4Po/P/dsi1I2hpletu/3vUTt062y2/Dty8dAb+HP7OeA/Yd1On/mkuhw4T/zHv9x9S++99OiloayvL3zpTKpyUP2Pewsv2b/eE/ceP7UFzrA337t1i/MeHXwRqPoMxxUtFeiCg2TMra7fZuzqKX6ZaFnY2SiuMLr2vc/QcsfK6ibZ9e7ttIFBe/oEpyb7m+1vnz9UxoXfh6vf8G9fhd+nmfNDtLLh/tdaOz7Bqxdj6JjAnRDudJfsLJK1gw3s0NmFywY7IMmOCbdcurULt+Ks5yx3NPOc3wKgry/feT9pJFrc5UT3v/tBuXjhlpulozv7ZOF1EemS4O/VYEdbs6YdO7qzT25lfctV7swgG2xc1zbJxplFrlIuoQMsEh0fNnGdalMW9sFiEaVY4/AVggxzt2jhlPy89QM6M5HdZ6pLeW+7KYQrF+Ccj4IUo11d8nsKhZ+AuuBqErO2pL11auACPX93wQBvVYfZLLgGAutvB23cOmjB3gSO7+389YhM//U31PMmcIn8bPhjMiv42DDqiHeXBglBovYRGrxjG3DwsUobNF+6EnXvXjfCbIdrXa5QjEW43H9TNX6xebmbF1xWP4fOy0tKRlKGnQ0SVYBTgaSSACkZaf1pwWP+nTb4gyAqNXDd0hznonX1irycH0FhXqw1OA+lNLrVdUZbmUJlZ1i3KH/393jIaFdLEj8wC4tgfQXpBt1vyd/WJJu13auywvzth5AIRUEYBaZOAZCgZHVcahqSRyH8T1spYLNNeplX4mzhh40mnC0UvCIEeybz8DuL9ApULb7QVJIGdtenatbP4Gkd0LqF1gSzns1PTatahgqMH+f1+4XWNsSJroJz0aBe5NtZ7OESLFzB56RcaEbv3KmfqnsthTVuqpWyIAmYpkpBoudK4xD+tS0NhOzUfB6FOcp+patayg4GTGCDqbX78PdrIxkoP1ZfZuWohs3qpzN28UXFcwNt4qL1Qn3fkoRMUMSmWXzWlm9VLf8971UYmFCNi3yB8E/xX+DfS7VOa+EJIRzXN8tJHaNgvcs4/4H1rLQ3tZb7mls+SQJigIm5iSlxk+Mkx9z3kkvColiI3hoTxoKBdSmNxwvVBArDnKZM3ZAEMkICkS5WcQyJcRJbgOFN1DN8bCUGbVSPV0c4NcJR9d6i2JCK9hPzGbiNU4LVayQbVhKHd5rNBsap/eSRTNAqY4xsMARw553dR8RsBxUyTQKtqDOtLalXIANm0tv5W8OEJ2Hdxd5Pe9sJgufNflfFmzxL0Bj3plzXj3DCz7q0FckrVcndNFqvuhmML2SkFz/ZciutBUJm03ka07GwiN91WDgmDgxVkuFtg9m6n5doI36iuaWwO0haNzOqaNvVGbNiYGW/89WuNx9sVYwdEKQTihUPo6mcEy/RVqTjgQv3xP3Yry05o262m5rwF/lNvqTSpt9JvOb3VbSr9TKMu7ry7nAljV5Y/e1Yl1NwdLnXTuEH8MPkwxt6RsqZQDJ655RGNyxbgiEBdFeBCLfjS3kRaY2Wpg0x09LasC9sYWbBmKUQCzE7dFqg58VakyZqo5GSOGDwUNG3Yl8aSUUqmo+qtnAk59auBZY9V4KvH5SzA8z/45LfOTBNn0JorcDidVoPW0ET7v0aqrW6uArIxVlWHjkrsn7aVBDsKsuUCb9eBDNDKUTT2d2pIhqGs3HyxXFetr2R+6SF9otRVbvWyNWG1VjEieveTaOxZt7S3qlN4qBjrW8tKhf8i1shTaJpaIXWZn930Os5VkhxVtF1VKuf9bPTqorusgOuRiKCRiKVxkwv0vIwOGwucXy0WTOlCG8LSWtQYqKGDjgl3FhraZRnbupnw6JvHCKl8FLEU7uDal1Jn7HgIJHNgr8ZbTeEUraHnNO+YA9xkvZfZ9DNe/znZZrWphuMZtjeiwM7JOgfO1be+Of4L/AvWtgNowCQRsjWlfUibx22vxi/HiJhpVzkW8Y1xCuujFFioFRyXzBMsI+D9ZQiyzTSRuJQkr/6xC8WRbJtAsHFOgGWWgvBcw+FYUBDToUkzTgeCKWUDnzJmGIEGN66+9q9a6/OmCld1zNU23oNMyslhBBta6p0t32ygJu2s9lsttiWvFOJpmmGJCmKkuwVUTQMg0c7fQ/rFu43Na1nesoZB3cxFRi8P2tDUE2ZqmQraxgKY+wmx8SO/XywqJybuc1mqKLdsJUYmlaji67vrScFX10qQ5xkddUNOjMsPD7lKKzbbmQwvoiP1u732vyI+GwGw7ggOJRJLyKMYw73FKvan/s9paTU3su1bsQmlJRig7T4ppe9Rp1c1itJ3Q9X/a3pcxNBCyzWrcEbMBUxmrByuE6SfMq3yySMEJyomqbl7sBsVVl/MKSZavue+0ErUjrNs/G0cKphiKerDIXB1UKNNWai6bjFUosbcRvPw25dKYrJzr3FdJXytePsSoFyD0VQRAhHjiAECDIIQTF60bdRQ8wBmbVzcBr3SZSuynrtiLUy9rJwZAf2g0eX+cfaV0eHLC8x1f3GHPPrfaZ40GB6Ez8Y+TqKRzOf2nyRrx4HQvXM9ry3dBuGR6WSeUC2Wqy3MGkoLNZKz7nbAYbc86fmxLnHvSYHT0vOeRkCjh9ediqWV5uRW7HybOfuU4DktoY4J2qoNguJAS4wljFWrNHtqCTjSLPd5pmcNV33kwLXdVNSOD9HIoo8PmFJgd9ainhgIphQGufxPfAhP5U3K5RNTQqjLubtA6MNlAbSULSAt0YZFNHAINKMRCQrXE7TZAkvqSlFTRARVNG6KbItbMsXZ3HtBIRYrQ07cbyy+01SDcH1lIOV6X4H3tkTMew2bZ5QMI5miSDQUlnnwjgOnZPOLEoSrXc7AN0IxCcugnBTcRZHVHqfs6ByCTLxtTGvZZNmLtI5O+M5pDPTWU2B4DRWZd0Ja5735Z5pdTm+6H1K3pqh2y6HS2P9mSkM+25vhcYVG7YKn1djcAYrUPlTg1HO92NU2OI2bHZ2XPZhGOBM27qbDHccuCmceTqMVEYKxRaQO7MufqT8eAt9ODxyz3v0+fS3xhptCjuzrrXyKKW8tOyvpfV7YMNEyrjktBb+SW4GsqKCLXhfAvkAIA3LWNw0a11ZFIW1voNujsoXZGiuJiSsFaErQZc6panQ5y6n/fCZRFAW1bea2IfTm3RAkXCGajppUSm4nQuIKOVrQR1pxvkD/dtLFW0brqsT403Zlq3YFyjNCfvGo6blUldxfMj+vTvX4W2PyuEJcY2P3vbj5A/UObA9KV85Q+HVArfwBeQFTRyx9Jd75Fno6GrlJzCIZhdDzZ62/aH/gj3d1dCdY4v7izMnwjd8DjV7lsvv6gV76ntI1GJfAD9mvic7IbJDfBO+Cd7UhJoWwG+2V057C7qz9pFVl4j5sDlSxmiH3B1oSEWNCTr0B5cGKQGity8igEyLmQBrFScRSKK0BwHFygfmgsKbs91GFfgYUdMTj7/rTL6CWsN4XxzdbNnKo7iNbAwne2V6hgKU/pLWMrByueseOzstTmaRRf4RKkQQHBVJpJJgD9HV2Dk4QQ6MuwPbaR/ESbxrh72Y0JZPze+UIjfCTIogcW4roxYr7QUV759ZUydt88XK/cnPLbMMXD6JXS9K2L3JVuJYy5DgzgVOovUg2NXu7e/CNSVzosvi2/Cd5L3vgo4RIr+nD8G574IRmvk06vv0IdvwLhjRKnKc/9N3hSbAzAcqLuAZOKvBF9o5HIsnozkfBhKIO4RESgbBRVNggN1+vR7spfrHJxPdYbGxqdvtac8JT9cyzWYi4F9ubXMY3She5lwgYK97WHl+8ivcwX+FMtGdLaqVz0IjFU6u579WkZNif4e/XI0iere8u1nHwPNhOzfYp/ll/HTfKDeH3fEl+BKNEFFsIp05JNqPVl1KFh2CJo4l1bvl8WPs9brJJ8rHlCd1mpnOmcQxkMo+uFwD+KnOBnE0A7k32lbhGOZEDuy/u11avwEzeLmMYQnk0yig0P4CTVOU7PTAScxK2CXJcV2SGZUGe6cQzdbPgmDtQl9z0OvaciwrZad0DB9tqKWg8gduupPvrkvD0P7gi3Z59ch7SwPK0P4Op+h7upD0BiUrkcraQO7r5KsIDzc0u9gaLNjAz/6qW+KGNayRmisNqgisaTDWludQFedCgUAeaISFdXETL6JCkbFPtF76DS7uLettj6IZJXhhrz9N0P2g/BzMfIm5GPMuan1Z+x2qKnjuy4Kj9B/e/bbYQ/8sGgVh2qLH7QuD+vXBxZjX0Y7txZS7ymZ1dOdA95c6FUyxPjeuQv7g6BNH9uj47vqdWr97+pZ6dLJvIsuK9eRx7Vc/GumF49fwN9bRNVBDDbRzCtQjlmtJqiGwgq6COr48AHcxV0BRkwezE9d8X4k/lu0OH/1E2vaoZnpDqQegtdcqZvezVO+mnPju5yzUPtT1mxZdTZRfXFXvTIPPQv67cRaGjMtGyOXLwup4NLkjqLqjiLyIJPWjUpmwuJS27U5s19kMG7kTnYHGbu9qNhkJvB/uNhokGrC+dhYsRzwQMBiIyXWH2dB8btfjS4CJv4N3xDJy/giTMxbAD5A8xoDIKXvS1/dkV9efyyfOINm+/M+utk0K6/ZCvYFBq6LJROH77vfFpVCfO6qHGX73fYzjH77frXm74DPiEITd0W+9evo3sJE6PcBOo1NSEEhQh5ikLIQWDuwhL99av/GaVlALcNB73xr8mbH/BqCgTcTra7iN3QzXezC8b4UPLi4YiW9Qc2hwA7Lr+7cwqwyIzkP4kz/oV99895kBaxIIt9HDyCJ7ALufl/CeZAvrmPrCU1gHXQa1vpP6noxz7iegvLl1MTRfe3SKXevxHwXthWk5cAJWsA99RkfMFv3y8s6N9od0wuCeKkskyYr1QwltNLnWCyI1QPY6Tnf9i8HsN4rIaqsLzCvH5Fn2xr+rEFCnbn3i+K1CLK9ANFFXlPGWsfvZQJUyRwVBFMcfbisJaiNrOo5tmq9Lu2VQlzMNQRyytoabFnY0puJ3UTALCSQ2E3svkS83Yj2FjROoto+m9lrheP1R+GyqWo+8f+XnRiFFTES4GqRFC2tApBJzkrDkInzqn1tzxA64aRDcyYajn/OWSIj+3S6atLIDOgTXriu6f114jUGHqnj+9mSv382EpFjVzruxbBn8TmrG3GKB2nJCcl4H6NkrJOSRivGbk0A9mRZ+AMXQ/nEdxAnaUi/nNimeUZu9V7eY1nrZyJq5v+zJ+n9CPT5NlQAudTtBrkAno2huoOdXeuxqg19O/TNBYCJtKL8oaiOFXntfdelpsNUVVVdlQVB0szs37NRjnxgYfcZw+q2yKIgsdRIi7MaSoB5FezYmVXhNS9aF/RuMM64K1yXmmcKBSmeDTNdf+tB1w7hxW3tjquy0xQ4HZuJCx+cdrY1pst96bCr0PwfqHY/4ViMYzQ4o5vsyUkWkj42uJc9yqqRaE/jYEt+3E5bFH8PbZ5LTtLaX23d6u3apZGeeFMCLbf5ZAG8aFd7YzGHhsXugay8cg0afOWqPnY/cPQ44bthY63n77fLpQrFPVUbd8P8h9uXs+nwUlal55HJRxYL3ynFSbpK3WOHSOfv8HlK4b7mupSTFN/p4H0J5rh/8llV7gxrcil2JPYK0WshAOthD43fXZzxLlrnrFFawBOyU1Yk6om4m1x49ZZd+1DzCfBqwMxWW+YrXzdIT/F3fsW+oHB/v3DaeIzYgs2Z98ueG3tsddJDHv63QBU5TVYhLTeAh1P4wSIVz4PZ2OX5gc1aRtbFZA7dxW+8+3/LIqoLgt+b8g8efeMb4iuIFFjwNd/X8r9JqzrVw9S8IMyRz7smBDqndWiNOYI9r1onsuLsmwtxl9OfcE0b5pa+dc9dfEc+59lH8yMX3tA/uWNQmH/vxeZp4oe0XB9xb893rxQhjC02zRpsWWotQ+qsYScq2q3Mrvlmj5n4qbqThLpl/3LHpOPpk9zj5F1jEieGe9qDmWzhO17tKSg4O3LcHL6MHnLHYkusqXHR5kJWE/f4szcte894umD7CTGpLF8QxQkaf+31VPtifWJIdeVz9KXu2rjep+S5pzmve93q8AD99tRCKqqm+haktQwLh15OgEcaVsypN//IfwF39fzE4vgxPpINz/5FojJwEu5x/aKz+1YhzeW7MnY1nL+Q/zLFkgeUjq8dc7KQA6UMRd+M1pdgFP/nQfITlF/4oaK5x9XCysM+9Ii5p/yo9zjSv//B5klDeiZ48mfapF9owUVtRtbaN0ip3jLPqHuFKWSjoF6y/u5hWRcp/OIbjNr6hTmK8vL1z9LJWd0Vmzrf5s+fBLj6x0OovblnnqznfKp13QnTQISX5KNSH89FDCMsiwmTZ08JDQjJeJ8TEaadvnbNxbsKOu396acXNBPL4CXrX5TMESUOzsM+8Kp2pd7WT8+W3Mr77+PtzX5v8dynlveFLfn/Q+7FREb5z3+N3EyauuMMvdfwwun791Og1+f0CQtBGl9jdOF3uu54em3XCyesmDyAsuXh0Ma0bRXJ4+UJP3nm+2PxC/POT5Z26964970NEgOLrr/7zmVV30nb21OJDp49KsmjOlid/VTyh+xZ+8i/PeN7Ohe+AJsHU4uaLj/dE+OtPv58z6/NvK51EGfDLrl4FXeax87P8fRKydGU5w4YYeTbb5Tid1+TDd5xV+2En6iKJn2w+DZCet0pdSjfYhzL3+XgRCY7/UWR0XrjVj0TQykvPJ7qOoNTMKF+fTjUfQtGjS/n5+oG7SLgfFKhLy2JxsV10LzAeUxdzOcysLNydAdXsu3Ep2HrRH+eBKqqqzomcIdhcfIvI30fthRuSrYWaTc3qGCwEfsFCYeGPMD849Q5+X12+oZ4pevryJz7ATClb3hm1d+L4fCZFi9X1ZNEd5oXKnc3iCiKb6B6uanFmsUl7lHt7SDh97l6o6JE9eJE7mn1YtZ9EufWdXjGydjmEodX1pEHybuDOmGXY8qC1LF2FRQMB/rdL2j4Zw3W7H+yuPGzm9s3D1+RPqvSjJ90cqg/dexzkdsddqeTyBhsaX001ef3j0VcT2EHPW6cGULR9+O7+TFPWFhV61D3Ir+YcO/4zdpFyH9+uhhvsRe5gj+q1uAr5MLiJocoNwgkO53qyClRDCuVm1G57IGU+V/Au109NHWEtRgH+yuOmfep4Mv9Bo+Nph3wDMmfNMah9dt2Dm1PtJlHlPwvJ4aL7ewNWNfXFyq3aUQvGNKmH7seqCqL1FOWeZuMy3eQu8T1aHq837pdmYfgjKHd6kwy6EK7FoX180TfQG+9idNFT3Gho+P4aOFUQ4wtxQuSXvtQtuna1asuojqMexzjh2qOet5Ie7FePF9vfGhzjlvP6h/jRM0XXU/z+ZP+Guq4La1l983OYr/brdTnip+IMQfj3vto7c3p3p2I/uSEk96PjgpD7L/aVWxrXcTzgiNupaSs6O4oKvLmGZc5exSsJ8k8iAZObyd515YzOHw3dPVVwLSnpa7jjo543kx6My8eLrW8NjrkvH+0QGwKxExuvBufu4IROOt4xwVwPW21lEU4jsNZBMYc1qJUxrQBSxTI9QsfQDe5EjUWuZQDIeT+L3aLOhOkNlKuijTK0uzVjnHfM1Zs8OPOX6Q4VhnfyQVh+2Cyy5vC5tqIHhXfM1Zs85IEfVJAFpR2QnuaKlewCa+4s3FcLLaF9091tCY9fUpMLMgLcSWbKzMwUFe4PT0rObW9k0RbGRFxoAWVaFzILBux8xNTPYMTIOoirG6H/ukrNHa6/doRWgANqbQCnP5iDxbUKPL8CDuAxUkgRRhsJBjTNbgzvPVljXShhZpKEWaNt89fJw/UGWJZgFuuQa8E0KEY7LvUYRytK31gUu7oArpgSmFaJ3gm7uSJmreiMjMm7lZ0s2kEFJy9r6xDGVWSrZxyVBQEcd1u15zOU2comZjYP6v4gOzb1WIEgIB18oWAVERt+L+iYD91gF8pLcgggvYaz4j2RwP41R6MduAvDd1s3ZaoRIHqfXc3QSwrnyA82y4VioeBC/KBUaQ/69IVflyTnTMyHnl2GwKm028DtY0C4jftWBdvMAeVXhznU+k4b5PooDtiOvAEnvQ+9QiGlhQtdGLGgljqUsQByuYmXo0FvT8PVtxow3ORRhs64yl3m13SoT52c7UStUmZmaZuURncKHDdv1fUWzGuDYNf1XshSJFf6xumUMzw2xgMX4omNB95oTGhAuG4m7NDF9BYuMLxV3dFXM0XDYWNWrxE2yj3eyryJikXLArdt+TVEAkzw34cjSMg8EGY3C7cZK87j3azwXU0+ROfxF7aKm1X5Axt1dKBoOYBUkWnV2/QMrczFpykTyN2ShQKHjhBlXKHTfqoSpu50KWUladqtxnHavglBHytk5m/Kq5ouywPJa9ZuVCq5yYFhuCU57vBalPi6Y/StDwX66E2YPZH2OtperI0ljPxOgYwnChh53RIwEOkvN96Y5JaPbYUO1h7UWumAoLQvnNCZn1dRDV1drJalwxvp/MzLi5sVDN2ywXWc9r8gVi2EFTWsQbsFN1CT0L0lm6Ykqwi7MF6ZflsT1sJATN7iw3zq4k/IcjebHfVurzhO3z3MjH4bj9dWJADIHU4mzAn668yYGDpGkw399RSgA3Hdcwdutev8EOc4xEVyK9SIVWUeKZyo6mXBQYw88oS/iwSRL0VgwMqccMWl1oMTrv6aKR/N1rlhdpDF4dZoE7UjLGHb073yAY86FRicAAmHQsoLMdNRQwnY6+i8AMier1njukvmFaTHB2emkQCdYnOKVNggKhVsjhlsnSnG1TOBHFdrMr8uNvWNLBuD4w0ei+0IaxhCmGbiLYSJjOKmFD1gTLE9a7DeXhOe/KoFpA2Sl5WrTH6LY3EYRVD0/rIt4KHJm6gRrTerDV02S+YotnqmklX0h/Oxf52OwbsNy2UyqTR21gjEkxB1biwZSX+j/ptL7xziZ9n36s9X+2Z5fgFV48LKwm6EZmXTvpk6qb+oIZrW6CrRHVuHuyJr2mcMjpvz9hw5jIkJm9JbPnq7pFKQPMVngoBClN68NDWULhP+ruH5KwAfnWaO3Z76o0hyKo//1D75MkAJBhDgv+kvFbbdgP0vC0nO42iluUirE14r2raWKj+3M3kNAhQH472/CDItQQriWnzfnH6Ne0rAGBqWG6ElfgdOZbUN9kSbOF1fPuNGJaiSfInOWFqqNKlpBmretz2sInjVFqRxty64tCvwqHw8eSwUPd3D4poF2rZ/maqSUUIRZCUpfyCxkszHLj5eJTLHSyJPZACUoaGCax9FijdDhh8p47TLgEZD26oLS/SE54qoLhDEtN2ycrHIyqOY8fue9zCzdiAzbfCtBAmUtedWf3+lvARWhWILuQr/moWFWh5j1nx2IuoIBInFrSRJlWNWLRdQSsllEFMuPEohKeYmGseJhI/eqnuSsUnIF7UG/b5y9Q04LfSWXVUGYJq27uIJIU4iXB0jP5pR0dW/pGFNMfm5Ye5FU0qYKYiaP37awAFXnrKqq9TKGuyspZqAEV4OY/5IVOJJ1xUaQsT2wwfxSru5JmMIHYkMSxg/K3549q6tf4AV0/6ArB4jpKQCStLMqWrui5qGqEbwyCKBWuZSXSTYkitN64JzrSX4tZR3WsEpHv4HydFSJENSpEJqFCDFr9WMn/R4lSWjOQluSwRV9dHcmGZuqXs5QPq1uUnNzK/HPKmtI8Si3NwGWEosxsFL9rEhh6w5TuAnID5btCxAJUZAwPM+NhT392iFKnBDJhYVcclZFWMXt6i42BhUAi/ZKkV8WCqVr9fH2ok2dKqocNOnVjF1qjWkrWody2q1gaGqoJk+FK09RaN2cbBQ7UbKVns4Eaq9GCJZf62EqCNYXNRRTIxtHcMANlVhhSJ6YgZFdMqopKubWNXFUi5UlFwuQpTKRuF+sYoroN6GnafYCmV7JEdqVp0wmUSJ0i0amnoU85XGQL1FisFzUkJOkJvgWhnxBsXnkkGfE/HChY+oSpXAUw/O92G6wSqSFZUIlyODTBq5ecVqFY/zS4TJU/zi1UVpYgsnXhXIKozhuaLwCQgGmwPT2LyiJLFSfiL44j6dswgsixvgLj7ucjZcd6xEphw5fULn5OTeZZNGpKoYDfWqhBNckYLKca6w91yMG8ZyXVFBm3PVSySrHrxUNHCVDpI5XqLsJaopb65SEJyAKKxEsWIa4UgVRDh1URh2aAiGjf2cDuOOdPY/fi1gdv8N5jKlo1QGbBWARy3Q74IUu+KqbwULMVOocddcd0MYvvDgBCJoRJrwPyVu2eYLg2b5Q5TZosWINem2UnfEiTeH0DMJ0pQpp6Olt0KPdBkqZHoqS6UqK31CTEJK5i6DGrUhVJOHIltOqHLNVSdPvVVWa/C5NY6Z54X5FljoU4sstpZRo3WWWCpfgefOWmbE17p0c/4qGMYXqfhl74ETWlSiGrWoRyOa0TLkrXfexz66wzGc4NEXLI7sefJyGKGXr31GtbJF5SSRg+O+lMIGUyEFkSRjLvrKCSed0s9i2AUUjBgIF37o2phstEG7Zsv9psV5tBiyXkfc2Pm/l07j8uFthyJ9vvjCBbk0O1et1RvN1ny7011Y7PWXziyvDFbX1ocbm1vbO7t7+wdnz9lsyXa/QsMRGO0mNmVVcU0xIVNXGOhlfN2oSjc/T0qr1pcJItd76NQVBrJCX8xXj1SsIA21FW+c8WM6Q2jTf2Vn8EgS+BZLAOTNBJgSICNy3jrBS/+qKDzK1kjBfhPt9pRjqXmOvx5MTK3U/W7OA1ZOCmKTkPyczuDb+MX4COe+kctt+0tNK6q6xmurK4ctEce9iRIOc77rgeD3eDG9siOkY0LZDn7oF+Ndra5U65lEsc/JJjsFUYErRj4EgirXSDlaSl2g7Cz15q5lAgGS18Cs1yn39DfQFBf/JzGd9CJVtSE0T/tW6GWehYYynXpStqlb7Z0k+GNjAnYDY5fIomAmK1pNzrKTn9wuHbcAzAh0Pd3acMQmAAA="}},"time_used":101,"timings":{"blocked":20,"dns":0,"connect":0,"send":0,"wait":31,"receive":50,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/8579.6f6518be4293822786e0.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.347Z","timestamp":1785148034347,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/8579.6f6518be4293822786e0.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\ncontent-type: text/css; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a58ab11-1a27\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Thu, 16 Jul 2026 09:57:37 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/16/2026 11:03:22\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 5e9a67c79e6e32a468c73c5a56afc48b\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":6695,"size_decoded":1628,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with very long lines (6695), with no line terminators","md5":"aeecabaec60d7097b5e0df49367d3ee8","sha1":"f170c1bb6b76ce03bb8bc5e206a34a0fe91631e7","sha256":"5e3d9d49b9da950fbda835658d479573002ce3d34f5365b6f7dc9a1fe8ab3721","sha512":"d98867b86352def67f1efa0d2e1e76b45d2a102d316b7f5fb9ec3f1f1569a25c6b72f0a52ada71baf88eed1de8775c8e0163899fc4fc30d610c654508298c920","ssdeep":"192:kgzg8gGgHgDgYgygFg/g5gZgWATd8QnBiEogsOpOOO4O1O5OCO8OrO9OxOJOJ5a:kgzg8gGgHgDgYgygFg/g5gZgWATd8Qn5","tlshash":"bad1991be7e487737c638ff9c28ca0645f1ad69abe604fa6a1307e0c8bc7e555760402","first_seen":"2026-07-17T03:30:51.23738Z","last_seen":"2026-07-27T12:47:44.733933Z","times_seen":90,"resource_available":false,"data":"W2RhdGEtdGhlbWU9bGlnaHRdey0tXzAtTXVZODpub25lOy0tXzEtTXVZODpub25lOy0tXzItTXVZODpub25lOy0tXzMtTXVZODpub25lOy0tXzQtTXVZODpub25lfVtkYXRhLXRoZW1lPWRhcmtdey0tXzAtTXVZODppbnZlcnQoMSk7LS1fMS1NdVk4OmludmVydCgxKTstLV8yLU11WTg6aW52ZXJ0KDEpOy0tXzMtTXVZODppbnZlcnQoMSk7LS1fNC1NdVk4OmludmVydCgxKX0uaW5wdXQtSDB4ZENuRlN7cGFkZGluZzowIGNhbGMoOHB4IC0gdmFyKC0tdWktbGliLWNvbnRyb2wtYm9yZGVyLXdpZHRoLCAycHgpIC0gdmFyKC0tdWktbGliLWNvbnRyb2wtaW5uZXItc2xvdC1nYXAsIDJweCkpfS5pbnB1dC1IMHhkQ25GUy5zaXplLXh4c21hbGwtSDB4ZENuRlN7LXdlYmtpdC1hcHBlYXJhbmNlOmF1dG87YXBwZWFyYW5jZTp0ZXh0ZmllbGQ7YmFja2dyb3VuZC1jb2xvcjppbml0aWFsO2JvcmRlcjowO2Rpc3BsYXk6YmxvY2s7aGVpZ2h0OjEwMCU7bWFyZ2luOjA7bWluLXdpZHRoOjA7b3V0bGluZTowO3dpZHRoOjEwMCU7LXdlYmtpdC10ZXh0LWZpbGwtY29sb3I6dmFyKC0tdWktbGliLWNvbnRyb2wtdGV4dC1maWxsLWNvbG9yLGN1cnJlbnRDb2xvcik7Zm9udC1mYW1pbHk6aW5oZXJpdDtmb250LXNpemU6aW5oZXJpdDtsaW5lLWhlaWdodDppbmhlcml0O29yZGVyOjB9LmlucHV0LUgweGRDbkZTLnNpemUteHhzbWFsbC1IMHhkQ25GUzo6cGxhY2Vob2xkZXJ7Y29sb3I6dmFyKC0tY29sb3ItdGV4dC1maWVsZC1wbGFjZWhvbGRlci1kZWZhdWx0KTstd2Via2l0LXRleHQtZmlsbC1jb2xvcjpjdXJyZW50Q29sb3I7b3BhY2l0eToxfS5pbnB1dC1IMHhkQ25GUy5zaXplLXh4c21hbGwtSDB4ZENuRlM6Oi13ZWJraXQtY2FsZW5kYXItcGlja2VyLWluZGljYXRvciwuaW5wdXQtSDB4ZENuRlMuc2l6ZS14eHNtYWxsLUgweGRDbkZTOjotd2Via2l0LWNsZWFyLWJ1dHRvbiwuaW5wdXQtSDB4ZENuRlMuc2l6ZS14eHNtYWxsLUgweGRDbkZTOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLC5pbnB1dC1IMHhkQ25GUy5zaXplLXh4c21hbGwtSDB4ZENuRlM6Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24sLmlucHV0LUgweGRDbkZTLnNpemUteHhzbWFsbC1IMHhkQ25GUzo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbnstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTthcHBlYXJhbmNlOm5vbmV9LmlucHV0LUgweGRDbkZTLnNpemUteHhzbWFsbC1IMHhkQ25GUzotd2Via2l0LWF1dG9maWxsLC5pbnB1dC1IMHhkQ25GUy5zaXplLXh4c21hbGwtSDB4ZENuRlM6LXdlYmtpdC1hdXRvZmlsbDphY3RpdmUsLmlucHV0LUgweGRDbkZTLnNpemUteHhzbWFsbC1IMHhkQ25GUzotd2Via2l0LWF1dG9maWxsOmZvY3Vze2JvcmRlci1yYWRpdXM6MnB4fUBtZWRpYSAoYW55LWhvdmVyOmhvdmVyKXsuaW5wdXQtSDB4ZENuRlMuc2l6ZS14eHNtYWxsLUgweGRDbkZTOi13ZWJraXQtYXV0b2ZpbGw6aG92ZXJ7Ym9yZGVyLXJhZGl1czoycHh9fS5pbnB1dC1IMHhkQ25GUy5zaXplLXh4c21hbGwtSDB4ZENuRlM6Oi13ZWJraXQtY2FsZW5kYXItcGlja2VyLWluZGljYXRvcntmaWx0ZXI6dmFyKC0tXzAtTXVZOCl9LmlucHV0LUgweGRDbkZTLnNpemUteHNtYWxsLUgweGRDbkZTey13ZWJraXQtYXBwZWFyYW5jZTphdXRvO2FwcGVhcmFuY2U6dGV4dGZpZWxkO2JhY2tncm91bmQtY29sb3I6aW5pdGlhbDtib3JkZXI6MDtkaXNwbGF5OmJsb2NrO2hlaWdodDoxMDAlO21hcmdpbjowO21pbi13aWR0aDowO291dGxpbmU6MDt3aWR0aDoxMDAlOy13ZWJraXQtdGV4dC1maWxsLWNvbG9yOnZhcigtLXVpLWxpYi1jb250cm9sLXRleHQtZmlsbC1jb2xvcixjdXJyZW50Q29sb3IpO2ZvbnQtZmFtaWx5OmluaGVyaXQ7Zm9udC1zaXplOmluaGVyaXQ7bGluZS1oZWlnaHQ6aW5oZXJpdDtvcmRlcjowfS5pbnB1dC1IMHhkQ25GUy5zaXplLXhzbWFsbC1IMHhkQ25GUzo6cGxhY2Vob2xkZXJ7Y29sb3I6dmFyKC0tY29sb3ItdGV4dC1maWVsZC1wbGFjZWhvbGRlci1kZWZhdWx0KTstd2Via2l0LXRleHQtZmlsbC1jb2xvcjpjdXJyZW50Q29sb3I7b3BhY2l0eToxfS5pbnB1dC1IMHhkQ25GUy5zaXplLXhzbWFsbC1IMHhkQ25GUzo6LXdlYmtpdC1jYWxlbmRhci1waWNrZXItaW5kaWNhdG9yLC5pbnB1dC1IMHhkQ25GUy5zaXplLXhzbWFsbC1IMHhkQ25GUzo6LXdlYmtpdC1jbGVhci1idXR0b24sLmlucHV0LUgweGRDbkZTLnNpemUteHNtYWxsLUgweGRDbkZTOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLC5pbnB1dC1IMHhkQ25GUy5zaXplLXhzbWFsbC1IMHhkQ25GUzo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiwuaW5wdXQtSDB4ZENuRlMuc2l6ZS14c21hbGwtSDB4ZENuRlM6Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b257LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7YXBwZWFyYW5jZTpub25lfS5pbnB1dC1IMHhkQ25GUy5zaXplLXhzbWFsbC1IMHhkQ25GUzotd2Via2l0LWF1dG9maWxsLC5pbnB1dC1IMHhkQ25GUy5zaXplLXhzbWFsbC1IMHhkQ25GUzotd2Via2l0LWF1dG9maWxsOmFjdGl2ZSwuaW5wdXQtSDB4ZENuRlMuc2l6ZS14c21hbGwtSDB4ZENuRlM6LXdlYmtpdC1hdXRvZmlsbDpmb2N1c3tib3JkZXItcmFkaXVzOjRweH1AbWVkaWEgKGFueS1ob3Zlcjpob3Zlcil7LmlucHV0LUgweGRDbkZTLnNpemUteHNtYWxsLUgweGRDbkZTOi13ZWJraXQtYXV0b2ZpbGw6aG92ZXJ7Ym9yZGVyLXJhZGl1czo0cHh9fS5pbnB1dC1IMHhkQ25GUy5zaXplLXhzbWFsbC1IMHhkQ25GUzo6LXdlYmtpdC1jYWxlbmRhci1waWNrZXItaW5kaWNhdG9ye2ZpbHRlcjp2YXIoLS1fMS1NdVk4KX0uaW5wdXQtSDB4ZENuRlMuc2l6ZS1zbWFsbC1IMHhkQ25GU3std2Via2l0LWFwcGVhcmFuY2U6YXV0bzthcHBlYXJhbmNlOnRleHRmaWVsZDtiYWNrZ3JvdW5kLWNvbG9yOmluaXRpYWw7Ym9yZGVyOjA7ZGlzcGxheTpibG9jaztoZWlnaHQ6MTAwJTttYXJnaW46MDttaW4td2lkdGg6MDtvdXRsaW5lOjA7d2lkdGg6MTAwJTstd2Via2l0LXRleHQtZmlsbC1jb2xvcjp2YXIoLS11aS1saWItY29udHJvbC10ZXh0LWZpbGwtY29sb3IsY3VycmVudENvbG9yKTtmb250LWZhbWlseTppbmhlcml0O2ZvbnQtc2l6ZTppbmhlcml0O2xpbmUtaGVpZ2h0OmluaGVyaXQ7b3JkZXI6MH0uaW5wdXQtSDB4ZENuRlMuc2l6ZS1zbWFsbC1IMHhkQ25GUzo6cGxhY2Vob2xkZXJ7Y29sb3I6dmFyKC0tY29sb3ItdGV4dC1maWVsZC1wbGFjZWhvbGRlci1kZWZhdWx0KTstd2Via2l0LXRleHQtZmlsbC1jb2xvcjpjdXJyZW50Q29sb3I7b3BhY2l0eToxfS5pbnB1dC1IMHhkQ25GUy5zaXplLXNtYWxsLUgweGRDbkZTOjotd2Via2l0LWNhbGVuZGFyLXBpY2tlci1pbmRpY2F0b3IsLmlucHV0LUgweGRDbkZTLnNpemUtc21hbGwtSDB4ZENuRlM6Oi13ZWJraXQtY2xlYXItYnV0dG9uLC5pbnB1dC1IMHhkQ25GUy5zaXplLXNtYWxsLUgweGRDbkZTOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLC5pbnB1dC1IMHhkQ25GUy5zaXplLXNtYWxsLUgweGRDbkZTOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uLC5pbnB1dC1IMHhkQ25GUy5zaXplLXNtYWxsLUgweGRDbkZTOjotd2Via2l0LXNlYXJjaC1jYW5jZWwtYnV0dG9uey13ZWJraXQtYXBwZWFyYW5jZTpub25lO2FwcGVhcmFuY2U6bm9uZX0uaW5wdXQtSDB4ZENuRlMuc2l6ZS1zbWFsbC1IMHhkQ25GUzotd2Via2l0LWF1dG9maWxsLC5pbnB1dC1IMHhkQ25GUy5zaXplLXNtYWxsLUgweGRDbkZTOi13ZWJraXQtYXV0b2ZpbGw6YWN0aXZlLC5pbnB1dC1IMHhkQ25GUy5zaXplLXNtYWxsLUgweGRDbkZTOi13ZWJraXQtYXV0b2ZpbGw6Zm9jdXN7Ym9yZGVyLXJhZGl1czo0cHh9QG1lZGlhIChhbnktaG92ZXI6aG92ZXIpey5pbnB1dC1IMHhkQ25GUy5zaXplLXNtYWxsLUgweGRDbkZTOi13ZWJraXQtYXV0b2ZpbGw6aG92ZXJ7Ym9yZGVyLXJhZGl1czo0cHh9fS5pbnB1dC1IMHhkQ25GUy5zaXplLXNtYWxsLUgweGRDbkZTOjotd2Via2l0LWNhbGVuZGFyLXBpY2tlci1pbmRpY2F0b3J7ZmlsdGVyOnZhcigtLV8yLU11WTgpfS5pbnB1dC1IMHhkQ25GUy5zaXplLW1lZGl1bS1IMHhkQ25GU3std2Via2l0LWFwcGVhcmFuY2U6YXV0bzthcHBlYXJhbmNlOnRleHRmaWVsZDtiYWNrZ3JvdW5kLWNvbG9yOmluaXRpYWw7Ym9yZGVyOjA7ZGlzcGxheTpibG9jaztoZWlnaHQ6MTAwJTttYXJnaW46MDttaW4td2lkdGg6MDtvdXRsaW5lOjA7d2lkdGg6MTAwJTstd2Via2l0LXRleHQtZmlsbC1jb2xvcjp2YXIoLS11aS1saWItY29udHJvbC10ZXh0LWZpbGwtY29sb3IsY3VycmVudENvbG9yKTtmb250LWZhbWlseTppbmhlcml0O2ZvbnQtc2l6ZTppbmhlcml0O2xpbmUtaGVpZ2h0OmluaGVyaXQ7b3JkZXI6MH0uaW5wdXQtSDB4ZENuRlMuc2l6ZS1tZWRpdW0tSDB4ZENuRlM6OnBsYWNlaG9sZGVye2NvbG9yOnZhcigtLWNvbG9yLXRleHQtZmllbGQtcGxhY2Vob2xkZXItZGVmYXVsdCk7LXdlYmtpdC10ZXh0LWZpbGwtY29sb3I6Y3VycmVudENvbG9yO29wYWNpdHk6MX0uaW5wdXQtSDB4ZENuRlMuc2l6ZS1tZWRpdW0tSDB4ZENuRlM6Oi13ZWJraXQtY2FsZW5kYXItcGlja2VyLWluZGljYXRvciwuaW5wdXQtSDB4ZENuRlMuc2l6ZS1tZWRpdW0tSDB4ZENuRlM6Oi13ZWJraXQtY2xlYXItYnV0dG9uLC5pbnB1dC1IMHhkQ25GUy5zaXplLW1lZGl1bS1IMHhkQ25GUzo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbiwuaW5wdXQtSDB4ZENuRlMuc2l6ZS1tZWRpdW0tSDB4ZENuRlM6Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24sLmlucHV0LUgweGRDbkZTLnNpemUtbWVkaXVtLUgweGRDbkZTOjotd2Via2l0LXNlYXJjaC1jYW5jZWwtYnV0dG9uey13ZWJraXQtYXBwZWFyYW5jZTpub25lO2FwcGVhcmFuY2U6bm9uZX0uaW5wdXQtSDB4ZENuRlMuc2l6ZS1tZWRpdW0tSDB4ZENuRlM6LXdlYmtpdC1hdXRvZmlsbCwuaW5wdXQtSDB4ZENuRlMuc2l6ZS1tZWRpdW0tSDB4ZENuRlM6LXdlYmtpdC1hdXRvZmlsbDphY3RpdmUsLmlucHV0LUgweGRDbkZTLnNpemUtbWVkaXVtLUgweGRDbkZTOi13ZWJraXQtYXV0b2ZpbGw6Zm9jdXN7Ym9yZGVyLXJhZGl1czo2cHh9QG1lZGlhIChhbnktaG92ZXI6aG92ZXIpey5pbnB1dC1IMHhkQ25GUy5zaXplLW1lZGl1bS1IMHhkQ25GUzotd2Via2l0LWF1dG9maWxsOmhvdmVye2JvcmRlci1yYWRpdXM6NnB4fX0uaW5wdXQtSDB4ZENuRlMuc2l6ZS1tZWRpdW0tSDB4ZENuRlM6Oi13ZWJraXQtY2FsZW5kYXItcGlja2VyLWluZGljYXRvcntmaWx0ZXI6dmFyKC0tXzMtTXVZOCl9LmlucHV0LUgweGRDbkZTLnNpemUtbGFyZ2UtSDB4ZENuRlN7LXdlYmtpdC1hcHBlYXJhbmNlOmF1dG87YXBwZWFyYW5jZTp0ZXh0ZmllbGQ7YmFja2dyb3VuZC1jb2xvcjppbml0aWFsO2JvcmRlcjowO2Rpc3BsYXk6YmxvY2s7aGVpZ2h0OjEwMCU7bWFyZ2luOjA7bWluLXdpZHRoOjA7b3V0bGluZTowO3dpZHRoOjEwMCU7LXdlYmtpdC10ZXh0LWZpbGwtY29sb3I6dmFyKC0tdWktbGliLWNvbnRyb2wtdGV4dC1maWxsLWNvbG9yLGN1cnJlbnRDb2xvcik7Zm9udC1mYW1pbHk6aW5oZXJpdDtmb250LXNpemU6aW5oZXJpdDtsaW5lLWhlaWdodDppbmhlcml0O29yZGVyOjB9LmlucHV0LUgweGRDbkZTLnNpemUtbGFyZ2UtSDB4ZENuRlM6OnBsYWNlaG9sZGVye2NvbG9yOnZhcigtLWNvbG9yLXRleHQtZmllbGQtcGxhY2Vob2xkZXItZGVmYXVsdCk7LXdlYmtpdC10ZXh0LWZpbGwtY29sb3I6Y3VycmVudENvbG9yO29wYWNpdHk6MX0uaW5wdXQtSDB4ZENuRlMuc2l6ZS1sYXJnZS1IMHhkQ25GUzo6LXdlYmtpdC1jYWxlbmRhci1waWNrZXItaW5kaWNhdG9yLC5pbnB1dC1IMHhkQ25GUy5zaXplLWxhcmdlLUgweGRDbkZTOjotd2Via2l0LWNsZWFyLWJ1dHRvbiwuaW5wdXQtSDB4ZENuRlMuc2l6ZS1sYXJnZS1IMHhkQ25GUzo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbiwuaW5wdXQtSDB4ZENuRlMuc2l6ZS1sYXJnZS1IMHhkQ25GUzo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiwuaW5wdXQtSDB4ZENuRlMuc2l6ZS1sYXJnZS1IMHhkQ25GUzo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbnstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTthcHBlYXJhbmNlOm5vbmV9LmlucHV0LUgweGRDbkZTLnNpemUtbGFyZ2UtSDB4ZENuRlM6LXdlYmtpdC1hdXRvZmlsbCwuaW5wdXQtSDB4ZENuRlMuc2l6ZS1sYXJnZS1IMHhkQ25GUzotd2Via2l0LWF1dG9maWxsOmFjdGl2ZSwuaW5wdXQtSDB4ZENuRlMuc2l6ZS1sYXJnZS1IMHhkQ25GUzotd2Via2l0LWF1dG9maWxsOmZvY3Vze2JvcmRlci1yYWRpdXM6NnB4fUBtZWRpYSAoYW55LWhvdmVyOmhvdmVyKXsuaW5wdXQtSDB4ZENuRlMuc2l6ZS1sYXJnZS1IMHhkQ25GUzotd2Via2l0LWF1dG9maWxsOmhvdmVye2JvcmRlci1yYWRpdXM6NnB4fX0uaW5wdXQtSDB4ZENuRlMuc2l6ZS1sYXJnZS1IMHhkQ25GUzo6LXdlYmtpdC1jYWxlbmRhci1waWNrZXItaW5kaWNhdG9ye2ZpbHRlcjp2YXIoLS1fNC1NdVk4KX0uaW5wdXQtSDB4ZENuRlMud2l0aC1zdGFydC1zbG90LUgweGRDbkZTe3BhZGRpbmctaW5saW5lLXN0YXJ0OmNhbGMoNHB4IC0gdmFyKC0tdWktbGliLWNvbnRyb2wtaW5uZXItc2xvdC1nYXAsIDJweCkpfS5pbnB1dC1IMHhkQ25GUy53aXRoLWVuZC1zbG90LUgweGRDbkZTe3BhZGRpbmctaW5saW5lLWVuZDpjYWxjKDRweCAtIHZhcigtLXVpLWxpYi1jb250cm9sLWlubmVyLXNsb3QtZ2FwLCAycHgpKX0="}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/30373.de32a3cdcae12b15d6df.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.774Z","timestamp":1785148034774,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/30373.de32a3cdcae12b15d6df.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\ncontent-type: text/css; charset=utf-8\r\ncontent-length: 91\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\netag: \"6a3e194d-5b\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Fri, 26 Jun 2026 06:16:45 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.57\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 06/26/2026 11:17:50\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: ed28d5fb6cb1bf5c0de58fccf7e56027\r\ncdn-cache: HIT\r\naccept-ranges: bytes\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":91,"size_decoded":875,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with no line terminators","md5":"b1b3d4262a8148c537e2fc18312f77d3","sha1":"55b769a3c7374b577b6d6fc7ef298e076791c26b","sha256":"cdb8df8fb4180765f69d8bb85f93f377eacecf1000cb389c17a42723db68f6d0","sha512":"84cae772e0285bd7968f4b19976ca836921ea2dc9cd12c52ac1db2c1269849738a4a93b82ef0170e8f7fd2556c333932f1bd16d81387cff59008b6e768bf5ad0","ssdeep":"","tlshash":"ccb012ec6f6403287434d020c6821dc842e4c41323115a9ce110b121c13888c1c3911d","first_seen":"2025-10-10T00:40:33.063075Z","last_seen":"2026-07-27T10:28:13.891668Z","times_seen":28,"resource_available":false,"data":"LnN3YXRjaC1vVDdXOUxwSXtib3JkZXItcmFkaXVzOjRweDtkaXNwbGF5OmlubGluZS1ibG9jaztoZWlnaHQ6OHB4O21pbi13aWR0aDo4cHg7d2lkdGg6OHB4fQ=="}},"time_used":3,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":3,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"fonts.gstatic.com/s/dmsans/v17/rP2Yp2ywxg089UriI5-g4vlH9VoD8Cmcqbu0-K6z8GXhnU0.woff2","fqdn":"fonts.gstatic.com","domain":"gstatic.com","tld":"com"},"ip":{"addr":"142.250.178.67","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"font","requested_by":"https://digital-assettrade.com/","date":"2026-07-27T10:27:12.720Z","timestamp":1785148032720,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.gstatic.com","organization":""},"issuer":{"commonName":"WE2","organization":"Google Trust Services"},"validity":{"start":"Mon, 29 Jun 2026 08:39:25 GMT","end":"Mon, 21 Sep 2026 08:39:24 GMT"},"fingerprint":{"sha1":"4E:F2:73:C6:27:16:58:35:FE:55:D5:30:6B:E8:6D:2B:DA:B0:E8:7B","sha256":"82:EF:6A:61:96:A5:23:D6:2C:2C:9D:77:67:04:D8:7B:3B:6A:50:DA:3C:6C:6A:5F:4E:2D:55:F3:FC:DA:0B:EE"}}},"request":{"raw":"GET /s/dmsans/v17/rP2Yp2ywxg089UriI5-g4vlH9VoD8Cmcqbu0-K6z8GXhnU0.woff2 HTTP/1.1\r\nHost: fonts.gstatic.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: application/font-woff2;q=1.0,application/font-woff;q=0.9,*/*;q=0.8\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: identity\r\nOrigin: https://digital-assettrade.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://fonts.googleapis.com/\r\nSec-Fetch-Dest: font\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=5\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccept-ranges: bytes\r\naccess-control-allow-origin: *\r\ncontent-security-policy-report-only: require-trusted-types-for 'script'; report-uri https://csp.withgoogle.com/csp/apps-themes\r\ncross-origin-resource-policy: cross-origin\r\ncross-origin-opener-policy: same-origin; report-to=\"apps-themes\"\r\nreport-to: {\"group\":\"apps-themes\",\"max_age\":2592000,\"endpoints\":[{\"url\":\"https://csp.withgoogle.com/csp/report-to/apps-themes\"}]}\r\ntiming-allow-origin: *\r\ncontent-length: 36932\r\nx-content-type-options: nosniff\r\nserver: sffe\r\nx-xss-protection: 0\r\ndate: Thu, 23 Jul 2026 04:46:20 GMT\r\nexpires: Fri, 23 Jul 2027 04:46:20 GMT\r\ncache-control: public, max-age=31536000\r\nage: 366052\r\nlast-modified: Wed, 10 Sep 2025 16:31:03 GMT\r\ncontent-type: font/woff2\r\nalt-svc: h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":null,"data":{"size":36932,"size_decoded":37745,"mime_type":"font/woff2","magic":"Web Open Font Format (Version 2), TrueType, length 36932, version 1.0","md5":"7c87a648293fbb5b2924aafaa59e8aea","sha1":"c57593e0adc4cf99dd9e67cb782242220a061a9d","sha256":"9fea608a947e67020c33cad9a6fe3d60c54119dfb8cff87768a8117a15ed7543","sha512":"764ced325a768dca84e1fb0cc458818239ce379dbcbdb324ee8849bbe15f54e3f0254ae6e52ee5a92741840637b4f9885d246a0978af23176b3acfe5b9cec23f","ssdeep":"768:mMQPOAQQKW6GccoXQ+OGpHNzXgtDM0SVu7P3nqtPl9Bf2csDpHUjbYE8j2:mMQz4W5og+tpH6tDJku73EPlPOcs5U/l","tlshash":"c0f2f23e7ea5691487c2b0be506b00935344c9bd37c18121bbb953f44ea67addc5d63c","first_seen":"2025-09-11T17:08:25.889763Z","last_seen":"2026-07-27T13:02:53.655404Z","times_seen":31267,"resource_available":false,"data":"d09GMgABAAAAAJBEABQAAAABKfgAAI/QAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGoYaG4GAMByMSj9IVkFShiIGYD9TVEFUgVwnMgCFBC9sEQgKgYEs5kELhB4AMIKPNAE2AiQDiDgEIAWHEgeJOAwHWxMZcYKNTZt6WG9W9dox98NpZyPabysQwLd9ZkaEjQMQgfzQZv//f1pSGUPTokkLgKK6/zvo0dBRRJpEIGqKJlqmKpWKTrHnmLO3HDjOuohcjWPV5cRZA1MmJFzVnKk1/ToxaNgOmUMIovNIldynIR5Dh1uOaWX0etNd/eZa1cQLWUF8rolAkvXlJxOpHLWaioGQ19WQJAiSIEsaPV0qPUEnPW75swHLeun1cdndJOZePt76tX9fo4LG0sPyMvOLb+7kAp0E9/Pqreb/iMeL4ntP3XSnyRX9DLPaBq+7CoxdHiNqRVxfgqe4+oqXWXCTv8biCa4BeaJvFHf753nd/HPfe0leQtgJIAQIKwwhBESWIYyZBYhuEEMSAoQYKIbpCsNAFcdC6g9IBQdRKdq6EWnB8S0qX9FdpWOp9eumy/z/31T/NxwekmSCAD0mWv+ZGaWPPunzInIhbZ3GtixpAA/Pf78f7Nc+FxoNEp4YMllsulkzrdbuw0tUaxaaaIbpJLEveoen6fxHxVKTpBrRu9jF7CInMbmkTdImNZqWikEL3lJMJ/hE/G9lYkyQmSBzYAr/o5/ZD+9m358EixCHhASiJIGEQoAg1lLxO51p18yZdvV3n+q/2d+K2Zi3422nBfyvnOX7v1stsixLxrGXkE45hg+nVOpO3dbMhvG0HIShRSQP32/r/wD2pE7rtPMia7H5vVt+5GftOqdaAZG60DcyuITEkc6iqlsyDSweAUUPDEHG2cj2Ufof5MDhAfICDXjGIEtqru6q+smuvn1V7elZ+Us4QBkYXZBI8UXOAa85WIzU0yxR0I/xO8QllT8/IppIGsWbvVTQTKKKh0Rzb+Q1ai2bPQrRXgjRR6ipeqW69omEjdGPkl0AYWHw5n+bqk/ndFwPPdz2GLgb42TzlAWK3BBJlSNWjIc+0SsZkxd4+K41uxcWjQ1yQF1gQ/rfLctFpUX3v7+CQxNpbsBVUs2emerC3EokZ1o7IdKvjtl2EY1kgIjhylmIOEvET+yrkha4AVt3JPz+36nNSFZhrlUXGR44ft0YsM0y6dc5Z79KDOukBA0IsBk6ARUECiDg/3SWrcZaLYQnyApBUQJh05H0R9J4NGveu/PYC5hb7x5590DHlu01HXGA8YCgzEuZogduyyu6lEnRJVUN3Depu0DF752Wu+FRuy0tykU+idKlLnThUoTBRcgv45DwPP+mpi0+rwKx3ZfkXKn1OFHh9HZbAX82AHhKaQhF0hHrBI4TF45N6aZzUXI5zqx8WKqr/PelaV7f78Zb/hEhuzFKn3TCOH5SDg2n+4YQT06XQwdgptHN0MBw7AZmWGqACgNQ2v2YobZ6QFJpwCxpU6I3R8qRcn1gSFVjKJZ7RtwSRG4Y0iEmep3iMcR7rrvLRx9OLt9Oe0yHow/Xq6GaSnpWYBPwwzuPouJQxHEsKlOU8dve76tP1XKzj27IMEhoJIQgIiIihRQiIiHzeH2txX767SxFTSWiYiJiY/VdLX93/+83/1wwVvmKuRCBgaBiocv38dWQEXNlssqJfokNrOUYSwWjNelr/8elzlJFREIU8UQkLPsEBFwK0Au8B/yChOFygGBWWQ0h4DGKCsE6YHkEuSUnMyB0hA3nC7OxsSsP7Mkb+wjBYWbjGDE4TipOl4nF5DjHIrxUAS5UgsvpsN5KXK0a12qAfATm2nNm5IYJyE2MvEvgPpgW/ts/DCFAhRjFu1Py8e82AqkXBuJXAN26gAwETJcn2Iv+8EfB0MfB7PNs8m228ApbeJ0tv84nX+ELl3lkk0df4LHneJv37O/LYuAZMfOsmHlJLD4j4s+KxGWReEY0Wc8OWCff9yDTr8rIEzJ6WcaflCsXZfaCLK6r8XW1dEktXVbJsyqzrjIbKnNOZc+p7HmVW1f5dVU8qazbp+Ht07r98WcR+zFif63qoVW9tKozZ3X59rj81LF1c2zfHJObY5iO0cFYno6N6Ti0MW7gxts5bVYw/W8acC2ECqair8R5SUGmOOS6PBMNwdJe6DVODxkjiySmJP6kMn5CkVQCVwkIIVSgCvuj/jGIqdQpjX+aSTfZRDYrW8hBKhLUQMkgGuCuABMCKByNcHwIzl8nftLHTw7xC318tI+LoJakIFg0KK6UaJTolBiUrJSslarU1iFcOYRbJ2hVk11rW2q31MFCbz3F53bqyT51uEmR5ynqPEU1VXKaSh/MjS/muJtz3O054fqC8odF4+dLV6Al53vgFAFAQL34n8ZVNZTkLb/waeqSTUlLAjDV2A5A8IfwGnjI9vGsLAkEUBMkG7b6ml4K2O2/y+IRYIcAzMzQSzt8vz0mBF9xawTux9/+9AKsFxgZLQjk4tyikahNtaMMIIoVHKjwAJgwVFS48vpOTnFN4DEfTCOSSajwniTkPBNMJe03ce/UoIu4Ik4/gx4SnaJNrG2EE/pcmOcDEGk56kb+UVZmCKgy/RNKTznjA77KZ9nCPQRz28pGrkmatDBlQCGiE+9ud0nU+E9ADvWcHtE4fQPho76h43QIdYrN1AIwMjjVMT/SIipCIGh3D0ZgpV4WL13FlAl4LJCGxGji0GGuuMqz9EA/Zbpq+Wc8USPEYPoOrOS+ySm6o3CcdTTZtZAa9jIew3ays4v+tEPEA49sT7cvxje2JauZz9ZE/zxv+q7TXzXj79mYftHL06FAC7mt7TP+qKwJ8JdXkvpnXQzoUJnT3WZaIL/cD3AOVV755T5wj0c0XPaC5pBmBR3mv5ewe9yvEMvnF72BQCbtQoL0zN5OxPtjM70Pd4w0vnTZ7jAuXRWQF57buRes6N7bUxwvX+xx0lpelpJdC//sCJ6XaSDOtj2gmsK3V+OE9IpFkv/unaK7bAv3qVoFPTunEw/VUQ6b31vgmz1KmXvN7nVQ8xZkZOej9TLILMru5VnVtIgLf2OD3FuNI2DrShD3EcsFoHPizI2HAHzh4kvCYa4UeRZJG7Qk5HWRCksUZjmoqP+RBgVYGVj4c5leD+q6gUy/66c4f4DbraL5MqNHlLeV70tN6FHjfOl/1kKySTeY/8PDkLC+C4EB6warg94DHAR8eVkvt7ZHanxW8P6keL13YM0Pl6FDQ5jXq3KXJu6G9q0Bh+5jQz2Y+J6qv80MfvfWKYoTqIXnsNSrMu92QOqdOpRnAvQYly1s6syNWAlk6AnaHWeqeRczgKaZ3DpTyrG/D5fRt5u1NIqVh05F/Yteo7gTxvQtdbP2BpOntSd+uSthzv+H757P1j0FOLt05H3NPmUOtZlDWG0RsYb6pe3icqXHxILYr5X68nG4B0dHvayP6lMY1RYsu77eZyt0ltNsrfwQ6WJa1nPnsfeHb3uCdqhe6mtfPu57AehNYYUlGZjt8a/5GG52dC71uUd4A6uMOMRK9MVECHtK2BqXR5nUwA1u7vO7QhkZ65l1X+xxzZutzuHb+yJwqSQWtIRRxwzpoAaETDsZWhq0qLbzw9DfrNMd+wI/HWumP8CP1ft2j6lZlW5KpKPlultbIeNYeeKtk/o2nxIg/+O3ymAMib35PTBGW/zSR3Ci0MD9b1LE6uHanKopyepr6Kg6i735dzMN0Rd7/HkgDb2j8Z0fdByWsFuG2vvv6sQcZYZkKBNk3Mnw5FnT3/tCS07PQzlo/5+dNftV2WrmsPOj55LlVbO7HnX3K/uQPfKgfeFzLqWi4e7jl8nXq4Pq2Gjp8HibitWd52h7VfelTN9DJyZr03EAYHZwzRlWH7yMDDq/fJ8M1hvCcWY11mpNH6N1WU/zZA536zTTvupqm9OrGsyPOdX6TLO+vPbNXIc7OeZ7bbZ26oErYqt+fSuhHpHpMCdl1B2MSPdsJfXuDu7fiUDdu0k//3eZeEBIoM4Oic0Dk6dAzoIF88IXw1ucTMHE5GLlyJVgqXyJllFLplFGrJyOnJ5ejmrVctVqMJeR0QJmZgv16LHIYUctdtpp+c46p8B55xW6YMRy3xpX5IYJKrfdVgxRdkCpA6DRAYRdHRA6OiDs6ICwswMY7ADogLC7A0JOB6QOIKg7CBs6ICzpIKg6oLsDhE0dEBQdhPYOoN4BhKYOSKIgJBIdHRsDA2KDCWfLFmKPBWFjw7nwgHjyhfgJhAsWAjdTKCRMGBwfHxIuHJOAgIMIs1FEi+YhRgxbceIxCKUipElDl04OkyOHk1y56Oaay1OePFRL5aNbZjkqBTWMRgmMlhamXDkqHR07enrOKqxEU62avVr1bDRowLLKKhxmZi569HBx2FGOzjnH1ZAhbs47z9WwYW4uGOHuW+OQG25guu02R1OmzIARQEgUNphItuxg2Nhm8OTJgxdvdH4CYYIFw/DxuQtDwgnx3T7rOc9JZ0IpqFIrknYSly6DnczX7b/2tSBswQaapVQv+bGXCm2GL6m4kjFSqgzOXDjElTiyiZtIODhhKbtwt2dxOZ4cT37VW571xBOS4vzmsaCYlAacvmQlMlkBP8hMjt9WcC5v6svbDyNG4edruQvzlE+uqWHOGBPI0f+3TqEe8wx6fGbjjZHrnLW58P1OSDxasouyQeW8+2S3YFYFlJQjzTvxXvxpZUaRM26Xt2RmMp3SYWk1nRWVWXuWfZUdWf0HK7RqijOUb2F+CR+HE6El3BcWtsbTp9N9YzFzenXzaRDV8KoOO1WVQnQpb1CSYo8lKgqOKlF4aynJCWCQF8P8/qUvMKfdkeMfJrfEiG/oETDePUptzdJgi5MMdvwUp6bKDMVc9iCQgUOsYZbFT51j6X8SWkYvgUGDHOuOkws1arPIprrclqqwrRbZdVLJrI/Kwdvo9PvCCsccZ3DCOTW1tKa71ijmC2MZ03R7e3Nzk92tpfs9qC2swSGUUbOlZFpinj7SQ4uq2i//x7W/qGEZJf2EMS1vkZxD1PMnGMERKKhoyDHdMBMJYl4RzXq+F8N7TONY/OQl7izx3K2ln/fUHdW3dF95PmZfxVPdAEegoKIhLwvYz6aioZYYdOOYz8riL5sMU1A/QlAHvxllir19MW428mtHTMLmx18AnkDBQoRVAe9kNOdJLUZY4/SKHxvkg7pqr9RCnfrpZsvrGJPk6aRtaKa3LuOD/vFNlqjDafORs6Z7QWUdbmSY0ixuQpkHQGDI38skDHAECioaMnTxxwLoESna/nIM+hCJXSZ4Xpy3j9zieaim69RmljpSPxituEMjUWhKs9e0SdcjVqvkIck8JfxyF/9yXU/0pYnaofZzYzGvDmhw33rkdgHGiPt5EJApWaZQghFQ4iilezh0fqTFtTXlpfBhyEAowe8iNAd3zI92qc6d9O6vNUai3/l7tIkeiTFOBk9sALgE4PA2naxvz/X5GvZb+rGwH//2zgirV34uyJJOjXMIQbfjYQaOQEFFQ1a69ghyTgwSJ0HiMTP3ktXwNtzswMnm2hbEZGx+/AXgCRQsRFjSoyQDMmURk5CSkVMooqSiplFC++LZIfJ6JAyOQEFFQ3ZttF8PxMTmx18AnkDBQoR1hej1eAlEEiVJliJVugyZsohJSMnIKRRRUlHTKKGNriFm+onrgdbh1zHNyHqk1T20CZXRs4xp8tA3G945LyZh8+MvAE+gYCHC7nbeRMRKJJklyuxxtMeXlmJ0njiIHy+O7HrrgsdGzqWqZvxuC2/HWq+40Xr0+UVX62HVpr6lK7607D+7rM1iXX91rFELbY3b+/Z5sH5YLC+OzoY+r42JzY+/ADyBgoUI+4XAgmT0rhVa/rKIcbpsyCqDZcoiJiElI6dQRElFTaOE9rp14rO59cLzhi6+d+6oFW+vtPW9TnHr5uodW+zduLbDNkcoRzEMFOwOJwq3ctIMp3wnpwvIGevs+ILX5w2NcG6H3YTaMwCUMYpb85bNMUyK7TP24MCRE2essH25cOU2PSPh1EPcmznnLo9HOPWMp40X8caND/jGL178jQA8gbOgczNfMCUEmclCE3bAPxXE0umX8wq+HL5h2Zdjb9jQc1fIOYkkEEmUJFmK1G46sjyQIVMWMQkpGfl0Dn+5Ls/kfrxlD4WWR8GKKKmoaZTQpjwguvKyrjtcbsJPuTWzej/EllrFsaTKU2xzDGYXNl7tmteane7TexI5aLF7r/8rUuPDuky2I8bRYcDGveGEtzg5HvXsJGmsS+dbcTNO40noFOl2wCFKMgCAI4rti/khr9fHMDgCBRUNeRu6q5M+Dmt9SSjz5hIeRBIlSZYidUjX3EsGZMoiJiElI6dQRElFTaOEdqwTry81j/MPWvhq7Xu+PtYq/uHnFn1Hfd5MCVfd8+YGPFufGj2W9TCG9o3XzHm+PBAH8dt0MF4BAAAAAAAAAADQsDNI/PtLcq+TU7486DpvLJP0Jr2HyxbhcsWJAnHycEpjEXIN9ZFggCNQUNGQJ+keL/448BWxYHZi9no50uVIj619btR+ZgYEGw8adBNOdIucNN2hANobPhyFFmoAznPcPxMgs6Fo4WychHqbeN4ghX/m3ODOgGdtXvP+t8af4EX7SluwdctGoDCBzY+/ADyBgoUI2woY47Gas2DlsKT+avYbok83NsBloWqbWnfqWP1li6F+xJRRd83wHjJ30zraGTXd0wngvN+aCdpWvZwjytLeOdaceWC/jNKOitryeQHwNjgHt40BuNduQ6xQhgEAkE9WmvW2+2dkqIpdHvmOkREFwBiOQEFFQ/4jOjwFEZCTg8j/bwzeHSmWM0XNq/tGeorXqFNGTbbp8S26p+e3qqWXgLOerMc8mPlF3Nv43YFQwSPghERjXRjgCBRUNOSOLh5b8puPujrekZUBlTUHKh5bGlbVPGbUZARDVY2x6cBE06NNjKWD2aQ/xmDB3bMBXndxfoOO5LQmctbcblQyrg2lGWBpyPvhZNgDjkBBRUN2bSTDdUzsuyM1fjb+JABP4DhIzUQLRkIg7MPoWGNxYsXjhOQwVAKIJEqSLEVqN53tHsuQKYuYhJSMfDo7fPb8coxWRnnpswwKLY/CK0WgpKKmUTIuJY2AFikP+0863f2+1slMCGPEMm6U1C81OVbNusb4axHnh6ynpq4z46XN3W40PnVPdWmiwewlSqqew9Cnw0q/9Dlcdo4YR4cBKMuJRstJ6p6Dh0nnuxfyCmDk8qj7/b7GEHe4hheZTJ/bMXLHzu7utVgPiHqLSmi9LDPk7Eriiz1DeNcZBkegoKIhd3Ska9D5cWdseIA6wuDarhNPqxwtrCbaI+VXWkBromOr7u3YjJcjesynB4Xdkv7Y1aKWgXgfDop0ft5tbyrSTaiUAbghntPADByBgoqGnKaT7VUCuh0TbTcxaM05L4laaR81jHPkTqHaK7VQp15jMW3etus8ObkfthMORey92t9N9nH7g9NUlrMmF/hopBWytD6ySXD9qaLFqmrtRH0nb4clzai/fJDXdBsrUA+nLGfjI7QyP9EIjkBBRTsiW4+64x/N/VgVfviZiO138o/H/lGPlZFF0Uq8Q/s8Hgz0pRXJGpZ1RiNlymuLitdT+fQwLBuzPhbTYPPjLwBPoGAhwnYCrTKrSnMfOpV4kTieOolHN532PBkyZRGTkJKRj7PDp11JYVMESipqGiW0MQSkBlmXV5qpmJ5dWOuuzay41P98yUqTmeYOr+7GSByg+LKU9I1bvY6B3sARKKhoyAW1or5VKOMTrkGtVmlWUBnQ6CeNZpWjH2dsz7xczCS6RPW4qyyTYC14gb5mF5TcPXrFKH/r3h3WQCw6ffPlvW6tPrbbmlG7G5NXdsW96apUbA9nJJTTXYIhkihJshSp3XSKzjJkyiImISUjp1BESUVNo4T2eVTjgLJ1Q6nZWbNVK5ooEwD0SZpDRh+HvITqQkgAkURJkqVInaV/jY8yZMoiJiElI5/OjtW0HIrXFIcUgZKKelysZbJpoCRaXKGT8Dx9+FSuawzvl5pBvbre82SwuslQs7frQ7Juo7BYjEntJahYMZJmyppXYRCkCKXl82E15hVAV1HZhfrPAHAt3XR1T8ZDpixiElIycgpFlFTUNEqOtG2anaC9WpVaqw7qf92E15UOTqIlb22j0xqSLnlcjfd8VN/61rwaWREe3GfXuHpcBWl3Z72a5wUz41JlwSG1Yimh6XRwXWO0edtrCp9/8A3oZLVad45z5gNgeBfRRazFuWfXTqOoBWru6dagNfGWsItYcwPGhUteL2KZP3P8csA43BuZsohJSMnIKRRRUlHTKKFd469/NAurg5qZkOUeTPaPF8fqh+o4fMFnAf1dWuIOvROCok6CIZIoSbIUqSX92UIZMmURk5CSkY9zMK6ksCkCJRU1jRLaizop39Scsk3yx5m2p8NRgqFQkdKvF1MBkKm2r3u87enS77ju268mxFzHr73+h4NjOUohVUoq6qzmDNIYhVruvGnV/hUtN5+uekSiUP+Yqd0vropFm8qXkeN62oZVyV8tTju2LF/N0FG5S3oC5mp4cByfsmW/KA1UNuTUBu58tHGDfvDVdqNSh5X8/y00j8T+BleKWBxf858Jgun2fzZGZ+t6/6K6aUoTkl/R7Bfba7Hj9XD+i1ZT2/ChS1cx3S3MJ+1Vpb19NPR5y9Cvl08GlC6AGb1WZ+wwTDKLV+80Yflsi+o0UkvZi+OzQTIOJjY//gLwBAoWIqwrpGSzBCKJkiRLkdpNF0qbDJmyiElIycjHOQHtEgUpoqSKGjRKaK/Q0dKkQlP2UgmfqLKyaxAlvqpTm13qoH63DpWar1jNM8HOlUoth3aP8pZovzb0hqhpZkHzbRPjuRS649iiuPqeUZZhHiK1xmYN6kr9qy7XO7rfLggkTYo5tGeg0xHlVKWHcAsTdgEs0w7MACANHEeRR/YBsLctNdt3WYWDpRY5kg3ZxSjdir1ktfwJMsXYcUJIBoi/D085yAXr5CP+kIrAGt1lSjDFygOP2x48kbR0mCmhGzo4TBnJxTTHEtUVAx6HJvw6Jcr6qpKPzMoC2Kz+UTMA3OL4bJOKvWGwUi6WDProqwahu3VEUqlRSqdAaDvvywTLpAbrpJIbomAnWc3IwnuzjfZ5GtBSetZpiZh56vRFZQIHRYOdbG4sZzDT7BKxBcCt5MK+SNQsju9drfo8Hur4rEnzYscQjCkMjkBBRUOeCfziOvcMxjSXqVqioVoYGr7eDKGvp82Oc0pnJUsklfItAMvGFaX0xVEh7+IZGByBgoqGvD3dgRnFOL7HKbEi4yTOdLRH/CNzCh0LNWVQAogkSpIsRWo3XRzHypApi5iElIx8nEPIEAWnCJRU1DRKaE82QzFLC53WfGNujKHLZzY9tqn0LK4bKO/BJXdF2rJVHke2sDWxM0h4djMLKoU7ZrgH4CRt1lNxucjMoJ2CJtrYCeiR0J7VTNqL96li4X3+jOdNsB0/RXZgJprb8foSSWGZPFtgWwqNdbPw/gaxRkg+aZL29fbvVHax9SYQLbjbIa6wWr0yM26s9xHjsrY7a0dosQraAmAMR6CgoiFjTpcerMM2q2m+0wBHoKCiIc/ozkkPPEVm+JbqWBx6IpIoSbIUqQuqMlcbZMoiJiElIx/nBGglhU0RKKmoaZTQvqZr5HfN8HfI6EoPvTpwDasMqABUAGYb19Z3f5XbxSLsuauYy75E4TPW9POIDLBI5OzN4pzN6/Z6OC7MYhdyqKwigIIqjU9UWdkifm+tGk0Welv72efC3ALY177UbLA7/Hex0/wAQLb2/Qt1GkMzcAQKKhpywangxY3OnBcV0FcA/rpJ6V3KrG2EMlR08iw0Kov0HzuXTdOXgUP3KIwx5J6+W8dftsrZvhrv/a1y2rVeTJVhao4fH/Qao+5drR8vaegYhKFRutdJYrhD1VtUTOqwSDOZEAWWqzbr1wEYmaewvysgEq6WFkRO7MKZkDVpo8hETe73s3b8NtF2BbxrqvYHfOWDtrPMwbDH/t0Cqt3AI6LEwckjUolCTCMjxpZVCDRNP7Z7aDHQH+sZHgMa87cLjo+MDoOF/28KN4DcEwOZLiA5MdozBNIeY9Gpi8MTIDY8NCDgGOgzMorNGS6RYKNP+ztP/9QKH8gJaZEdcn4hqsDK/1QvxHGxAe6/0aBL3hmmEAN296P6mpMKCnpiA4OUFguvSjlFlimU+eb5vuHsUUmXH6ruFl4ry6oJ7mZdik9kvEdf0WYqjYzwD8yUYWZGpfIIhfgeuWcvjWoDKrKFzP4rxuHt84ll0/v5yTO3pxT6kQ10+NzvQH4GvadsI6b638MzDufpMy/+xcl1FNXLDX1G4vum9xPvIyY862+osFR5+Hj9AArld7cI7hLvwytO7C7lXv7PSbb0Hvf6B2cZ07/u01tsWdP73Y+X3ERM7y2/yEbUzJBfZyNyZpzj8+zjy2+yq0ImwG8QwULaMjLCfWMYCarVsBqteqm5ECS7JSuFVnIhLb+inXD9mmHsUG3f1TXaccKQBho1QWGzs9D501PZwiBGzSC6z2nrTvCG2Z983F6uioID8lGhX3CeB8e+Txq8FIDdnKB4lL2KS1mBEyNzXREVN+N3DMWy5RvdqEANS6EshsfIZInlSx3ofvrik/FueIdcfLAxrKG5GFnsQ+nhCDv4i+ezzQn0Wz+vFOO3W8NZ3+JauLB/PLN2YFE7Oe0ujsWQH3cMPabGVno9Y+YelfXxhR1NhVVVxtr1pQmDIdJh+xyqCzLxvrTTl8/b0AJBfb2m+1YkWiPqQIMWejC0cnPdckLbtlZEe0XLhvgTS5Z2L9bbw8Q/9U0zs2u3H9PVqyfF5UzuOjp9dFScwhhKZXYugtygUFhWZrt+40YWq6go279FNzmpaS6NLx8pSJKkId0z2MmW5FDUHZ6rltHkNXIdZl7WSrQpcHx4uLFNIBArC/oGG4JlnoPGPFy+/08MWE/z8KX1Jt+/tD5g5LV1U5c+W/d0/Yv1FKe+uUX/d3fY8VMnG395gPGvZzT99RjjP1ua+7+wLgA8ABT2/H1FAfJqeGL8g/H628jr+O8z+Pnakfbz1v2rnXtj/b4AL6/WdGZV/6ai/6Xr21f0tPb6rnL4Wjj49utr4aubR84PL1zIKc61g1sr4AJiYAiMEifIfT+HD95j2wPPK/c723u3zzYjtylu3m5l9KvyL/SvCLxFugpzhaXCUUFUE3X2en2TqeN66iP2wyjv/w9Z/zts9FM29iqbepfNvMHmPmaxd9jqE2z1Ff73Z7znTd7zPu/9gve/ywfe5cNv8JEP+NirfOwtPvkWn3mez7/E59/g0ZfE5Fti+mUxf1nMvyEWXhYrl+XAO3Lsipx8UU6/JBdekJsX/pp7RsWeUfHLKr6pcud05IKOXNKRKzp2SS9d0MkTOr2WyK9MTztNdwNu2chtBwFAnlhB7q8gZ0lkVVRV0+NJ1Pea2/HxtcXI/eVfQb+X6e6T/IU0HltBAel0Xgyst7372FFkwq1OBzLXxLrwU2it9QESjLBtD2RPPb0KkH9T0dMALgDEX3oIYJobBCHhQD8mMD/soIMnly8gwaEH+xcvoEN/Uv/vzAJ3mD6d2hlVUltMJkmUIG5wGCzGAI1/TYzk3+xlvbnlsp7Mvaw7DV3WlbbOtOI3krNYNOPcm/pc1oj5r6i7gotq1AS0fnYqE5ch5hnf3voVeHrvNQDUbvYv5hcoKw0QcM5/xFOoo9XtQl9HAkJM4tCWIdLBP9WWxUVwZytcnLWOsAbFIjEvXeIH/EigXMiV6X5mPbOZyWbymQYmZjxqslm7zZutSnbNvwZNXALxegyEYV4G8Pw5fUw6s/EB62edDWxkvU8z4beA/6/7R/5x378uRdpNfQPAR+emGr7+Hsq/vfLk4JPcb750Jn90KSBgaWBzj7wFxPnA1yFOpg34pXmZz11wyA1Txoz4wqCDJnU5zKxft70euOe+XqMQBhu27LGwuXDF4ckLlw8/M4XhCycQIVqMWHHm+JLFVx4bCI1QmnSZY76SI/f0Fv8MlXF6hbOxp/2ptqL+Lhpur+bjE6NjvnXcI3vsc83/XHfTuEuhumyNc75zJUxXPdRhd0hPXLQ/tnZZa8gO2+3UhwpDIFHQ0DE5c+DIiQc3M7iz4yuQvwDBeO4IMlukWaLEC7VCkgQiKRIlS5VBTkJKZpF55lsgy3JqRZQ0VO4qtlKlT1SpU6ZeiBJnnHXCKaedhIBuGISFjmxAS9VWA9jNNFtUowaOxXeIP8h6SA1RHxKQj0ma3IbQ7hTFDKQFoiHRgcRehdmMooZh+OugNtLIyqi9qtQs7Yzxa6w3ZVDNGEB0Mwnipd3Dh2loeBgT+YQYoZtogDthJc70IQgCmawF0fjRIjMnZPOyFreXGVGXQnS1QL0IAdFsXFECorgMn2Sy3gFM5+M9IxXKRVLk3CdKBj9rk/E+ImSS9E/qcDNdoGzX2dwlNBgZopq1+G5ypov3IP9OsmNpSqqxp0jq9GvjQWud0xyMacVd0FluYNASo+cxky0YeTh45xUwzHOFBrwezLDpTC8O2bxIIu8ynl2jaqwsvJ0QrTlnE1CliT2oV16X6EU9J1icNpNZrbSGLOFUKMbriF+dm+lbnmvKulnSnl2SpgYDXIk1r2UlYiBZ3wgpVTSWpC4Y3SnmkZgzxpfY6xAVQt7jOWTfWWIAjP21sgLbIIzlwiCOBmySet5obaiHtpDitBYBV6YrIQRonD+S6cPELlffgmJOQ68cLSIMB2ary6fQ+lkW1HINSvUeJFpfCw6AMsUtPvB18+yOQyqcnAyBCZQUe/LPcshphUNPDJ8pE4kAsTY+kmK9wzHN0Yh/Ty+NKC9HYv9ryIheGYWipJQXTxI569ghJgEnF6o4Zm+aB2XzQFM0TfSZgKq+X7/gRzrQwCf+5PO4gKfBZxhTLVUvnm9dfaGAwj2In89XKdTl0nZLY2F2canKqmHBl37MUdD0afJ5VnZ0fiXXsgfEqn2cVOMfHIFwSFIotT48Tv75Q9tYQLgZX3AaFdS/wtreWLficCn7hpJ1pUjCHyFZrAduiHNIlZB0BhaB6Nwk1amnHNYBynVuO8wbT0xj+fhy8HI4O2NMVol7jTpfCC1Ex/hBzaJ9cABeyY2PP9PZxd9HPH4zH1oo+CC78t6/Gs5KAnjny5DWvvJ9wbtPm8by/hiiVFrzKB8xg8e7OoN3lH4NHr2bjpcbVXenOE+MNDO9OIwFn2RL2jNfBNGlGSCpPqnRmzwnuDyeser/q2H8aNx6RtSYZ0jTrUG2WvXZKl19uugj/FBp6VTd8Y7Mhksy6a0Bcb3H56uhxo/w3IIPr77qcPRRzS8C0aDigRtt7KHH/+WPGPdRR5iySA4oxrkqBn0X17LvKb87kYZUpb5Dokxa9Kx93tYyCtqkTd+4y02n9AURczzaBx1A8+52ShjvabTn0OPSLeHRRdY/M0s1eWUvu7FFLJXAKIRw+7m8e2V3st/eHzutmvk0n/Mc6U2TrxWvztVUqVlQRbTapKebtyRoNDjY646WI2d5SuHDbS6Q3peSwEot5o0bJ5ChLw9bvFMYFgSSciACpHsByyP9sA+Yw821C+oYktR4eGug2ULpHK2pcTJuroDL3YBUsCG9gJvzWxZ64ovX0JQKXPFEulllYs80/++7qf89mV1p8/Ux0ElAe5ixU63GhANl9UowhJXnV1LV58/Muque6mQNBns7T3pBBNcJ9O2+2hxfTLxyrizkOJfhgYRyoc+VZh8UtdIeYaS4kOLqNJ+pBhiorr5+V77XUP1L0EbjjV7VzOQc76c05bV+6dWeI6W4UolLp5ex0Y53dA3SwGmhizSg4vwic3qO7emQI902qV1lv6rMz3btZiqQq9bSKu1ojKO3pcibhhM8u8put1nXCRhIR1G3OhauZV3IgFlXveRKVtDUSy+pbApJddjpUCfpdy5T295O2M0VAhU++wO6rKcQJRQs61U2mSi/Bl1sA1lZPdDaRvQC+tscHVzzk7QO01aLSw1Uw7blFzn+76yab80CbaDsOKXnGh2msTHujzKcoK+H13/g16z8DjcAeHT1uzRaN4De2HCwdaSF39u1cT3jrTXbayNHwuEyyb43ma+7ZYg/dIS0jwQQ7mCGWEhPZbXsAXJJKFify1K3hJ+JcqfATTSkdXcSXYEzaDDdEiQthFjLC1gY1gjIIeHpUIPPkXDeJOBxHLbi1lxDoT0IpY1Y9/Bam21cs0WaDPEX+NFR1aRAso8vzDS7gQaWAMTmm+TGA7Mw9nJ0OUmDrZZNfajI5gF9hl14tY4O2m+gRXLP6Rpo6zC9m4zP6HejbkcG7G/19oNxQ6J0r+mLnhItDdkRf1Yxo6jviiHzJnLPZcHpdcwEqAvT0LRP1m9GrWghwW0T739DOvLTHUd206fJTbR7GLGLvu+a4tnaW8jQnRR9+uC2M3dpHcfenbeQdzDPXKtNOvrqzNLeqXgq/vJSpulSym1LOsF7NND02vEMJyC3npIiyctIM0g88et81Dn065eUlOeqzSOOwtdorB8S78X8BsidOjoP1C3Rwvnwkv6oLIPqJyR5U1Uqr5lDzbaztJmj7/anP5dueZ6hm2bK9DLIn8jmrpZZy3J+ApIPMjE+HaZY6lJfDGeax3zxTjLNDKlkyRRakHagDxVudputD0+B7ajzW2/NBm3XKb3WMLq6o8IUATY7w0qumiGVt9AiQbYpKZqvvp1DqtBV9ofNO7wvaM2K3B7Y4/2f5zgnyDrcdE9dB5fodyPVZDChAZWrIdwN2LZlyX3yhJRoW+XKKK4txSQo2PXlOCeGQXzHidKGIhWSuaWLPmJDA4clR44AsfK6gvziG0NqM3wkvB/a7GM8XWDim5InwYhI8aKLmrz61ndWyS7I+hl7HllrzsvbMvJEZbbxL9jA16gRZbaU28MS/NkhQR3IxqQbQjV4GBAWr5qX5FHnsBAOaW/fs8NalK8pvAeKxZsVsRiUmGNCjh8bJ4H7OlYBXvdMAiNnDc4D5bNsvFqsX9iw98jaFWuHEWWzZKyIpqs6R8bl67lVkPtLtxjLOt2/EQK2mswyDDBCX+5mO7JV4SaMpQ3v6zs9PPqvk/7XY/TAgS7gkDyetNL1/C7mPwPzqp1f1ZzmUjD+RZQuuo+9qHx+xTfL2wECSv+9ncUHKR234s7+zvKpwfKAevPtLdWSD1+ij+FelzcLZtGPH+r93+fkZuoO1rVse/bfLMeSaaCZgm9n21EHkB6+6lZIZUGFRkq6eTd/9ZpHIvbJ1cpYr8L9EH4X6bebjEGCvMNxCCNQrdpIyf1gOa3vlkTg7qEhMkKSvqW3jldnOsqsXX7KM4wZZxIJGIh4qC7vvx2Z3pUBgfTwiRW3U95DI0Peg7dHVizDl/ZN25UrY23KVdOOvXcKoGm8S7yNGoau0sNP4R2XUQy90ZEe/cR4GI9d5WAcM5imdd+cCN01NBi+Z1+yf+q2sZrerjMZV8Q3gZnXxOPmmRGHc2x8Lr/yfTtzypc3AdqsutZGUHSYOlzl62XJ+C5ZxnPZ4CwNTcjkcUuU08+EoTKCk01lp/r6YhYxc0yLsmvz7+073eMLVxyUlxF2E7uvnnft/G5xOx+cfRP96XXAPX3tYjlAqBcJWEsr3peg7h4aLIV9yYWZvcngDw5BtjfR5/JOYJaZRILYhMPrKZDvyBjwXTQfH5jP41rJZpp4hbK9E5kLBZF17ekVKldwg+2VJQdw4rIQE94g0g8s/jKgTzWqXC5h0XEDx7UOFznpwKc7iQHp4R8jizSKpFGvaB/QUruYmZ0U6TLbSILamavmTTeFB1RxiZHkgDpy081f7YqQpNlK4pFdwJT6ZbSrfnHWh022UpR8H85okKRBp+igT4IjW1jN+3Wp23Uz3ZuCbp/Z4nRGNgIRzTeuNffY20Q8zCnUyOzNPLaI/aqf/li4wRdx6FXRbjnm6Ea0MX1b0xdvSYMPL/BnvzfkqjvB9MvFHqNC1ZbRggvTH+FX8f9Ngwyac7Een+p4iZrHxNGAQKX2CeAoNk+91IFPLdGDprz55Klu8Lg7njcPTr46n9jTCiytqfvjoDOeeHO+8347sNgB77POzxLpR2rBPbWpzzo+70g/ygB3M8D1oh+eSs8vZ7y0PPX9U0UQZm+Xt7lesnfIu13gd5o5BAkISKkiOrn29bIToyI5Llsdi5qcHXwl0a6QJCw6T04b2PnjgUA1wdk24WNnr0ae31ffsDEXntEsIUgoKEmxrZvkr6aFEgeR1p+XCb7CFpct/zPNNzgX2jSLLEW1JWvrxT6Cz9c5VH+HB43eBGxwDFjOIrd6mvgEbBcLXVDZGtl9exrqN56tuCjPxsIeM9/B/AD4aDBG19MANez9kIKn4lq7axgzTXm9pulhR9iJeGQQZdBD0eAjCi+IonqDiMJPMiCkkWM2dMofRJeM2cnEdHuZL3a7T6mGXRAcRWUM56sPMrl7Vo3EyjxLU8CP5hrGjNNer3FqxOGytCPbYOpDb14YTNfj9RznWbOUQS+KPrcCUfADoqB5FmO2KY/PtnjS7pTGmv/32uy2C4fN1M5gPzJcO6qlsNVThJOQBSSymMkoo/xi+RBKI0bT+KObX1Lxq765Rw/YNHLIZp4KBE1LRmxOd59Ns8haVFtyyObJwiifFXbyYbeu0SKOOEWQGpOeixw2km1C0E3I//ptQb1TzCvhY3c+STJJwDyH9bP1pLqO8909u/HrdFbSUQPDXzQ0cyzO7HsCJQrBqbrOtJPRE3/jATPjnSosJ8wLiGGptwvxrUfbZJKgQiENtMpR1PuSABs8p1VmwTRfaNT195tVq9Zc23icTpxAAfEhJQHbEkqNISqVpF3iCMeLes0wJhL49DSQfZ2aFnUzAINRyqA3t5VyQEx6AfeTTgH/H56Tcmu9Nc+BUqH0YCDmHoCVF6q+/iFzYwHNCbnrQ+pDQGzO0XUvQYKaoFgu+PHGRbclFCpDTCpNuSQRrtfs0Qm+5Pj0xRQZ1vPftZJ3w1vB2jaV3hiVykRADWT3mCGbkO/VlwAejRi1olOBkHVqzEo4R6xhOhi0TY2qWBJ2QZIoahVTTkgMuSEYEl8c5V8HED57LfDltSdpmVweCQYsMABiIvZhKrjwGUbRcwtoSRYmHRnDkZ8GjLir36Yu616bRRIfwRPqSNXvrhFJwmZHv/HHT/0BDj0eBobPjPW7NguL+lAhxhTbQPrJT715IfChHq+XuIdw54Cpo+I2tyPbZA/RXcTcs/XRCBQ8BTDT9IJfnpROJTQ29zBmnHKXPySYC8bqDH8CWtj76T+ZtmKVxCd8lDRAATdD3tbC3PU23SrPATgtsV2kcYdjrj8XBXE+7alp+WBiKvdS+QccGLaHedpQj6/AFcEXyWW5LdWP4330UBOkkUnxKB88U7hgMJUfidiPK+V+Ef/YWl+9QyttPnLw4BsNUlxlcRFB/N+IsijTCzUeIgXLXRLuK7c/8GJVmTD/FSfd4tbLxM6QABRLbA1su57RRrYVLXMtv4m8iSELyjVO8A/NEJNI004pxfPYPCbIIeR7daXUdS/RCvRxFfjilWttu+8H++6PvXINHLn5GlX1YNnqB9OrH7g4fih607VY83zF3DyofvjPh/9sbz0ONh9PfJzLxKcnwMYTYOXJ5VVNb7+avGcGPDLTavsEcPHaoUpiAq8baiKA8ikf6fO7QbzCyeOV8L3S69Sxr5/KWUQvV5PNdEaLSXo/IfdIoLBaAwXdYpnSAV3Iw0wpUxMDJhyiapblvNBstyMy7ZhCnAP8mFQHJeKQRisJBcVygw0eWKuRhkISokV8XgSdl7Q0S96FRO82ghitfV0Cv3toCAa2trevJbA24jJ1YOqZRIJbOxwmU8qhgoGP7VMY6ExNN5luRvWHgdVIaGfGe8Z0gwre7Rvlsi+b7cIQSNN19yitaFqqSRKIsMvRHo7GPKkoAfxpjiE52rXAGc3n2nEBgth4zQLkN3+jTEWqcB+qkx63GHEHFhVqW9NyG5aUSQNy7u3oso1WCc+N6FWdGQPYtKfHFvmx+1S/u39P2zdFawBE05z9SlN8OvxCFHcoCAk/gCgFPhyS6QOIJqRfNeFC+J9vC3O1qgjHaGO2qpTMNjMW5wOc5s3ozKnGacti9PGl3VF7SqGNUv69XpNRFbHK12VrFuRgH9cHWhBjRmvtxYy6wUFHwCV1CoWERCbEnXyp1CWCCLEEIlwCsKV8csb5OVqyEoTTsEEFmjDBLNeR5ZOmCKJSR7oRnKCBVBEVYopMbjnCdMEmS2JI4XAFvE4TRuEkSXGYyef0UajLpjI6jVaUviuMKqcN8Gn2DoUmFvHv9ZgM6hCqWJulzs7DX9zqb0GM/VoR/aJuT0ZnSTVMWyYtTyztDgTDLAlLITwilTqFIlwq448CTj6g75mP7p0HqXSzvQKKi8SdwDctH02+08Vu+ruu/ozRIbGhFv7QB82i4u+Dxuc04M6EGdM4HFz6exXNYkbDUJNUJGnyNDAamxoLcBQu3i/SuPTiFsEXWe/2s4SkDryWtj+quOec+0epRmp/YHrwEACqHAag0wGDcbGIuwjw5fpTrbFTIH6k8HKyHOEcpQO6X/8tFvgWxDVk4aVk6GsRr/7k3yfQ9W72wRbIW/Q4LIeM//r+v8Vi0KSN9yA2Wy+iS6JuS3JY5Mzq4h5XUV+hyj4gkH0CkotMrHRBJHhcXbxbPyIiF3TyTtDL0+X0UNXIAK9GGYPxr1zJjn/KHL3KYl8d5bIDZbOSw0SGtm9FTLzFtNlYtCpWsg8r3bcy9v/N5ntQtDJqI+Dpm18P3PT6ROsEy/5PveU55Jn43X27G3ikyp5JRkwVlKWGMyMgM5ssJjH5MmYikBMA07siyR2apwYGWJrcGY4VHE3crHiwo4PeffLm+QJYtevACDscLYh1J3Yy/vAmdgDrXizi9rDvf5jPaPzoAeyBD5sYggfvZ3sjLkzjFIielzbde0CoUnofzTqi9KoFB+5tlj4vEjhB2d44SfMtDwvUKu+hLHOzXSV8+JYmOGsaLOLysu9/UMCQfLgX2/uRmMF/+H62J+IGkj1vPIP3ansJ8GLPM0R/F/gzIHup7vtU4nvPX6i10vj34MXPEj+ZdD/deCm9hfYn8Ox8ZEvTZyj9zHxome58/KFFeh7fnDudBOumkRMZe8HQwi8Ftk/HrlovAf/h044GC4++UdQapQAU/OKjkUQKVtE8a7U9Pdq1Ho83gjEczBNdluYPJftuTgs6ONm1iK44vupjJetpb2hi/J1zejtY9Q735ccTdOTE9o8K8EnVmVXg6JGBO8Jt+/oXEc/ObnzGMzxyNxXf22uoH1a3+lRKk8o1wCrZMei0eiLJgJbVY/HHJBozaU2ZamdJpHmgl8csYbrKoqK4a+UmRyq5xzY8ZTyUbHeu2WjvgKly65dvdFXUABiXSII4ka4VCp7eX0PyNWobyF85d1rgkUpgIijQa4NCmCyNSHYIpFY+01x9z0OP0TIXqQxpm0JIhaz33Hi+HaPbA1oR34bzpMaE4mcXjG05GxcH7lKFntBhy02gvmdr0dx+FZLUGxSJfnXwItN9JnwGsM7ZexBNa/4zEJtxGtVkcKg88Jtk4DU45t841ahXPyuNsVhggw57/+Njjfnq2EpYA3+crRVVvOKlP54JXv/j8zpmcnXsUkNfCLRnlxxMxO7I9HvJwXgmcyDeekd/hmQHEn3Ljd0aQ8blIiOslNE96q90+U7hUongKt+j1/G9VwQyu/RXXyU+GnRF05uC7h0daQibAunU5gD8dAcSbQ6CfxTGhFKRNBgViYTKaIirYFhjnCiurEibu5X27rQRISCBW44IXMwQxAn5iBwGfnz8+kWa3d3S3M2WU8vFJTQ7O4ZtKKjfoL6ijsMO+COoMzpWvqQ82GnJG8+Vj+YXgGWe+6RRCHme5HLvNEJC45Nm+j1VeDOdcfOFnwPuHhWlalnro3yRszoHoMyu0K6g9sUmOvm4E0dfqvRBYr9GI/H7IQXii5KBSP85/OOmTDi8/gLlD7QGAu9p6p5/TSB87fk6+vN3CgV3Pp96OxTMhEJvQaJgOAM+xvT4CMP9KPwRr/a/6JPoE/stT1pq9n6e82+Cxdqtdj/MbtxWgUEWdTKtQMl2LdIu8IkIr51zzItwKqxrWlgIm4oOExfUxlEjMDxk/tFcuv8z09GQ8eDLpgbHA3Ly5+SznmcLT5LvkUCWTW4jwcaBivUb1sywaqMzq2BmDYu/RSD9h9xMvn3fdeW56aydOUDS59zp3PFBEwuU0OWffru+36WzLv3kDaiHn4wYLn+/8awnrZUruzxdldvIkyQovtb47CKqtiHXax21rOY0vRWnahpzzNa0ZQ14eGbHWYfhI8D76JeffXU29tIGML8M/OQxiuGz+lDYLuIH9Auoi/el8jUJtb5lNH0RbNszT0HWS5OQQsijVEHu0EUiJYQit0op8gz3wkqf2s7mrJqi123YzmFvn+q3MYHTQAEMFMWAVeusnqqr27ND3AAEkeGMpF75KJdtCzt4HNDnnL79tvs9uf/ke+4EkCTg4FThmbg4k4ixykFf94EDd3ry/8n13J9h7OMzFI/jCNvefXQ4IwEl3V7wrcQqdWIHjOpbjeOcKgewNeGIVRyMz1bTH6ud2d4YphOzlXUPsW4WQBfPtV/77Znnei5KegF6O+nfoRu9kuHnyayVy08/9wzCzum+s8Sb5vBvz6c+f+k/z9mAL7A+O//i5PfqPvTcs4rnnjm9ZlWBo2DNyuuFM5c1D/y6Gz7/bf7FZ63AF9ieY3S8fl54HsHzhntZ870/nt8QCypn1qz8pA2Ep597RqEfUrQ9LBjhticEybH/10yw5k5FgcDMHlyW5d09c9ruPcjdaybGE1fZmehvgiMgQl9zrKb6OF93urrm1DaA47VjADFMR1EfcJR9dJJGgitrAMne2poq5Nk3BR9GJY2AUj38uVz+OSw+ov5D6MhLdNDQWEqva25sKAfH9Q3aszXlC/lIF5vXwL9WU9HHQ4JKEEaTKMhWt3Py6bV5HGSpjgjeQuO2/JbhgGxOvj5bjp7VAFb7Z7exBaveSDZeln58wy5V8PbRebaPpyzlFn0M+q9r9cAvdWLOc/9s0GHyuepjbxa5iSX2s/cfpVrxo3Ba8LrLAmi7D62/vix+cgACygE+EblRnHwdhbF5H40nrSJx9lOzYEQ20C/G7DMG+zF4ECyk859gT2+w50FzfSsFBqnGd5GPv2Sly0uwvz848uRjDNfwe4WGI1H4a97HYEkrU7Pg/SkiF7wXIhgOEVwKESsgrgnuR/g6bR+O/9QSv9Oe/ADdv/R9lfx9gih90v/XwzE7iWVzMojpDGJ6gniFLe+tZHomrv75KfLu66f3K3sfZgIoX0pzvyMqnJ7+Tu+kMMXiUy+gQv0cFWo/KsaYbAnqDqxQj2KFugUr9t8N+EGtvWLa4YgFsAuo2Zn8zHfLh6X/Xw7YgbvVTpdKM1u1Q93tdUrIy6HbDpnHaPbe0uFFnWkku2GuKTeF6jPPHFnXDOISBBZnhO1UXXMAjJ8GQ6mEkh1ccPsfr5+c2Qew0qX7/uuTBoLvhd6FDV4+h3VPszEDgNEFAiavSkfkXozr0XSwchpeluUT/E91N1+BlGj8VwA0YTnfCwbw4VANnP+D1qapP0dP2SzVz3kIl9PeMsPhpruqgNB0sHLI5EtzZKqA0LS5HDVYIC0EZxauip/4CeAZtXsMLhRk9HNE/E+1TSrAgJ9stwoIH8Sr+Q9BAd4ZqqnO31inpgH8wouA62uviiKjHmunCfBTvGtbFHwKCM9gNz4xJJBAY7oAeAa7DTyLPWrLFaC7DcQPPAFO2iwKPpJoh4b7kBEEm6YtEgU0ClojNAqaLtHkGzBAo6BpiIH0sA3kLnAv5XHIQ4bUVYQZ44WTsKL/5yPZWiErRLxGUpyxFNr0D0Caze16AgQEHKRFww6QlgYGSRSptdl+Q25RzVBc5Dls0jX037I+Th5Xk8ityA9Efj17Wfblejf6LdGfzunMmc7ZLmfn2djXx34sdzr3Dus71RL/uviP5iXyxvO+XDhY/HT+h0s+9v+OPXuS+5vXRHwN8cNFbUUjRbd4Ywd48sdoSdraXbM4oNhUHCkeKJ4p3l08ULKvdEbpxtLuMpeyp8uV5a7yzvLp8u3ln1Z8VMmq7KpcUXlT5UOVr1V+UflHladqXdWTVe9XfV89UP1y9ac15hqqZrBmbc3+2pJabu1/6zJ1p+h++m4GwjhTL6mfqd9b/3j92/WnGrIarA0rG+5rONzwScONxiWN25tymhJNrzWdbY43/90iaXmCmWSuYylZJ1kX2NnsOjbMRtkRdoa9gr2H/RT7GPscp4QzxAVcORfjtnHbuFu5j3Df4p7hXucZeCv4C/g7+G8KFgi8gt2CZwSfCX4RFgg5Qotwh/CMaA3UDFmhTmgt9DT0A1wJq2AKXg7fCb8Mfy0uFMPiW8T/VjDpEVmevEx+BFmIPKcoUnAVmOKoclzFVh1Sw+pZ9a3qF9Qfa4o1E5pbNK9qftFWace1O7Uv6yp0P+ub9CH9nP4F/XlDkyGhB3rrekfn2M9Zq7+i/2z/vJBrogY7Bm8k0BM2nj04+17CM5GtaEHL6Nz83MeJvujY8Kbhs8MvkhjWl1sfWflfm9uWss2tcvMqf9mD9kH7Kysb8ZqxgRvKymkEQHHlGMFrUAQ5IYop5/LxjKV8PL/32yY2dMdRGD2Lmjn/YvTf2VYw/Ru8m+qVbRN9RjUPcBeePeGmll//fmoHhhb5vE2BbG69t8+bfUH8b16A//Y0mQIy2uXIz3g0n3Oq2RykYRnKEZ2y9vvU0A0/w1DGicw2fj7GDccHqbcqrUOp9//xtjijFJay3n7T09vPCR4cVopI0Vc9RQ8cg7FmswGlBc3RmlIj1/7szZIlir9jbDybf+p3QEf7bwLM3H72GC351VDx77FvDSPiM9YN4MldFATmr19LVNEpFOfO+CnRv90deb90Xf2cHBGoe63KcAvPkXMzC2GuY/DIaMvO+UIMLoNgfkTniohu2DtokFgCkPS5AFCYRjZDUhJ6BqyCnLw7og83q3uNUvVR87IgthEox/gK/CmZywmBkp4JOVAiUUIpJhmmEghqkUZDxOSh3IPbDBw5bOh2uzvOe3rDFZ4k7LjbifN2dLgF0Wf8YX/Lx0qcJl+0t4AJSYCoZyYGrwg61USXiQm50wicZuMMvu0l+ccO9shsWTf2jiFEIIEHTvgSLYexgIjkLTL0eCfGStkInBNQfJM45kxLdotkdaKEluGeqqHrdWuHEraMQXi9cJFxAE89KI9rD3PFFnE+Dwe7ioQxjHDeXmVPJBfWG8XCt+r6gjJ8ISVGlfhJrfRUkwB5JMyJ53EWw8r/I265NN2b29mOaBq3lweMYxziRdRWUPRmQRU8mEBBnW5aAzBiCQMIZoIU5q7kBV+yI6WcXOHgYEACuuNViQsF2Ia6vIjoCyzL6BRLykl+cMmni6ccMCQS0zhRqTeAJuZMo5tVBsXqyxwbeMfdakK/VGthkuoWYOVmGVVaOreCM8qRJ4o3ywmMS9dpukuj3Upgs5AIUXAH07cmOI5HGfUyItgosqDaUQbKVNUGPaXw7BDV8Sh8TNc1p/PKPeTub3l+Zvr8dgMdsf66ctFYARVFD9xG9WQ8hfm0OEstv/not3xrEH0/cBDxzZpLZis6zfxQmvmhLAOQUDbUFHfOVOlEuG+jUehLOThMzA5dOf6/4rx0C46Ot/eXLiufox8ZxkDDFL6UCeBSh4z3Dw8OScmp+gcndmuQEUghBdSWuLRAUeqAHXEj1I1S6wKWEWmHbm1wziu3qre4M37pEE0Ds/SSTG/JHmd9IMYBEYieYk1wOQK2YgmnWUSeMB9ItCHPICenIofmatWbwSM3RFvGA1hNAOjS5XkH7vZXJPdcNXlx0dxxUoh35w3j2H/EnSvJatxJzVcwEgnpKMtqzh13ubIYXd8p9/evmA/KjbjVr+L2oLtyRr3ATLN24btlb6KL7uBWFn9/uDUXven+vNHosh5cgZEsY6Z51i113/8/3HJ+OGmdOS9qfkOczB+J8Y4Qzyl3M/5JJKuqcHW34GAE4+D9ya/sLnzvhCbX+fuf+be4LpyY3HwBZIE44oBXIMZ7u0GDtyxEb8uBfM85/ld9wNE5/yhpuAjyT3od/PSBIuWDU5/CKazanakJnZCAPvrEj0lJCogra2MW4kDRK0ID4/OcUtxoJ/SYGyK8zEWUaORPLt9tCwFp4N0VBJRFYrDhOLpdJuiIOjTtyXdZNOJvxIKmAj/xgF+vaGEForrn+8G8Hwd9avg1NzJztOyrNNPY1G+c/53ZUSgvoPrMRg1k6Dk7ov4zJlhOvefyDw8l8KcNOA2b6uJde0ElCbSJqaUlurEEpuZhCojD+wP+FqvLUeaZeOYC8QR3IdDbcPib2LZjzq9K2oc/EbQeDFvVs/UPEuynt29HDjCNaZCahAVNktn0P6CWl3m0UqUqQoPrQAHUCji96tjC/z/qC9720GCBwSvQC6Cw/CvR3a8ZGfJ5Z/EsE9TTK15lhBRVOBWA5WVVVEVqcBFqAwnvSX5l+rb8KXwBL5bLXz2fdsxOaEMdrjoj56XkVFhJKEgHNN2m3rD9WUcQSeQMIS/vNjj1OZjQ8uCtJ7njOvWWKL73BgCtYplXqBf8sA8XlKE6Cjg1Um/bO3FtC3j4KOyrwA441tKWvCTA/qaSQcdkiYM4JY1NNjjGmvW3H3DbI3M0H+WtTcDCkPw/YkD4zRqaheuNqzrqKxSwMbEzB/VTkWEZuowLkw5TPuRwSk113M4L2SpIt2l6QMUlH6TyAKmDEdXfmmQzJso/nPrPWU7k6FJx3CEVcCgYbHEBy/RKgzOxvv9R4X1CPTjjs/KPdn0cPtqdkFDgQGoTzzja6NW37nPbQn00fMERQ1VA04Yq6DRM6alNypAC7/nFvhjgxRReGcmVQISRsVQC/AbG4nsHwtlQQSjHhxiGgSUbNpsOs8Z38sSBfsKrB4ZWNJkTqWwo8x602+WZLd9X1dvG0jiKjRJV1Id+uFy0uKjvfMB1BZzHe9T7e2MfCq+Ix+3v19LZZ9wM+M4QtsDx1vJS7jX7a1oIR0vOj4sPmi+Zi/ylcRRXd/Xlx995VNt2RPaYf7VmuPYXjQHUA9QZjuxfWrpsvip9Pjub7aciflaQ9mm6SmdXK4EKETdu9s1MDrkNIWopyUeyT42HWWooqjIBgBSiz6DNalgTwXIaZRyMOaFyACKJlCiZZAxRuLMlTjqAYtF3Xh8OFmGWZrClcSP3Gil7CxikAimvdRaBglNsuh5/mFdZsYZNaFImtpYFtrUjx1xgDOEHBlrSNDgJWLKKGNKM2hgAWf6HGN6qUK51fuYQ6tLz7nSVaq4M54oiO6HwO2YnBMf4h7qJX/XFaotE1bmgmmsxx0jPdk3B8yw1vRwtUBTbOH8r14XtCXGX71/ewbi7+sttefc2hd6k2UbvHe16nH9yccP3Donk+fIb0g/b2CZtMRvmJgaXIMS0iYx57R2CYCdAD2ok9nbSHAupjwiyq8JG24FK+OFGpYC82u7kcmvRN63NoeqiGnexHCjuEWQbqHATbuTrFs6YedBpGgiO8+b2ogs5YWlv+X4hv+b0yZilGsfftAUsEIjpuo0Cl/bdAEdskuncy0sNfBO+lbw1ppHggrgcbOJKO07NSAQlmBFE55RmVtGYN3FVVl6TOxYR9KiC0gzrwU4LSaWrqRjzvDwpSycxHEHioWTEXFjuDCnq/sAfb16OOAu5fHH8SdpIYXGj6c4pgjhbSlbmTqkonh1vCJFToaxYSnKEJJlG1kKN7x8qwpldrjWCvMZFs4I5I9zX9BqN0JHE+HqnCqLq9zEvhzSLFPk/XR6SC8fTJXEdIUbo4/g42baD+o+beDx1FgLiSXWOjA+LMaYEHkw+CDTNwnUl1GTp7lJgSULyO5UVoO26Ve2eTrJeCCnZyVmmqaaTrBYhiSSQNCZMnLkgLGzQARymUoIvtyvJEELIavlptwV9A1rMuljFKlSzIGkOPq3hPBbWAsrYmKGGYc7UOAydUYxDapgxL4u5oK8Eb+canB6IBD5cw2TQlmrE9qF91ioTtKQeWtnmsJUaA/BrnCkvkeszeK9W1aAOTZmkwuZgM0LglqV4+5vZ+BzKuxKHPfjYk6PBm5T6dnCPUzgVUvOd4U5IQA45ws3FJa9LGZVG3rdKlnmf24C+6bJ1Zm0PEAn9M9slEf0i07h/cwJYafKuyIZs0ESTmBEuhEtEvVqHatXrVulhLU5SGRqyzIIa+b0IwceP0NPXe+7s/1s4yj5Cyyr9qYn+0kIfSsrL4vdC/JMH4dLRvT2Xq/I6EAN9MEEf6XjFb71bny+xT4MhqJYhUOtakzoOcI5GDVS1zU0QCubuV9av39Yw//zHvEsYdg8LCB6v7i0v9VC453jV6o9Ng9RHRq1gxmpvtV4OJisQ9DIGTyd+bWU8yigTuTuJyKuEsHgysNwDduCnZqBzv0v1ui2y/4LGRvw2C/1oOIJ+XTEXf6CoJP46kQApgqP0eOeFP6pBocpyeBX8P7MGXtUhGAII2P22pWLVxVCXh3BAcvY85OM3DiBzP36TBH+0mPq55OAtumH0h17G8gSA0q+R6TfLWW/ygV4OSpCdXZWZbq0Y0LpuIItR3Bk2PoOB95ySG1hSItRYNPS9MY0HoD4MFARMaSgYmLCKKU7NSAhQv47aTBJ7xSVR390r3vn7rrfnKaqRE0z0SonmsbOPxD5fedjYugoGO5goCbREtOh6SPOUTmdMYm5yMk2h4BsTmGbJlyW3kqO9X8tgUBhBKUnlYHEPO1X1c+HcHE6uOu01Jci9bI0N9JLUcVJQ1cPl7ZTkET2sYSIWYN9ZaafVx4n32bbTz0jRWS5rOnEH3z1UIE5wREdcHOrNUlc3GGawGs6CnSe9AdYOSlN2LvD2cUqozn9CEm5L4yIFKbSqgn+Gf0n+shprC9eIzUAmPOdZe98xU06YFMwKBudm+q4zIYvUN9NSimIZxQKYRsQZ+nLMQ2vg3DjGdlDCgFJCmLnYBEU196CMaaJFiATSIHkJkFn8vIy1YghBEqEkEcAqBeZRoBmG8vGZkBeX7jZSKjLuiNy1X65X1gzhakSbdf17POKE3TzEuZOZ/HtSsBy+/5DiqhWHRgvxJehhY/Bj4yokf6mWXJxB2zjGp09LRHHL/K6wlUHMuTguf1KT0pblt/Nym69gcBZikvYKc/PkYO/XWPbIkRkuko+vp+r7kkurqjA+cFs7VEG+3nBV1S1kuZSdbfx8/+yEjTn+aLbzUpslCmJGYFmuIB5nHGe1YztVkkpFjM//bGq0YS9GgQom4rRYV6KtoMcJ93uL/SDjFoc/n4HqQhFEcam+pG4QFQUiKxdZJVahOd1FkBiTYLfcRfAr23o526wMmIgbyma+d+XijcJA7chi69i2VneaapgxVytr5BA9njDSNiW3LJ2qDeBC1wO4ZyyU390tJJC3Zh/vU1WBDido3nhT9bnJ3G2bPgaQAYURjeEaOSsC/P/93wv7q5gL1pqblrs02O1qBt16emshVfAbQTttqZX8ClypTA+nMCdO4kvdtYH0OlRhhLcRhAy1sp8FpeHNXkNmuvr3pnZYo4Ezw2dUSBzgElmKR3peljnNMUwU9ugGojbmIkLrahyHykhRzyEph/pnWAmFOeVGEnPmZce830jkxe5kHDmZh5zJjW0NtIHQnYHdEn9BmKCLkZyFOMvpO1K+Id4Xpru5Zk3W5XQ9nndspRUrquLtfKv7KxIM/lKSxXw6Q0zcJ7B3+vMwgIHko4XmuUqUrd6GXyWCEz3LnjvAJjVNZg5XMaoUMv2JBLpe8x5kAEgPafqM3P2MD9I2IJLY7okth4k+YnPK4ENSVrVU41Iw2j67piXR0Pi6YnZZYBy6VRQ7OMROjxTlN8TJAimTbNd9tw1H1Fu2sl3byABSxQkWv6CJq0nuJg/CQT9CRRDftIxA7h5XFZYUERTYPYa559zeiKzWu8YfZsL1p1Z4JrHNq4QgG8pMGwx5xnAG8HNFoww3uze53lotofTPSHd8Fb6GvFaCjix5D8FVTFsUKCqHwY/3jBOHNQkk050Hl4lKga7fUHLBnWLbGZ+4qUhhonsWWLuBlDB/9cQh2HoElfdPe2URm23HM6cUt+2DpesaXXO4qPpyk4sv1xy0PWMzg+OdjsLbDPykpKxY5Fx2ggs/L0uqb716uzhtguMtjVpkJg13NrWNQFzd7V9P1ppYEna40+nCpB7/YNOzLTg1LcCFAcfMeGc1GU/wUilNAxsm4Dl5ayQbHSoZAU8rigtvyxiCX8rr+KPIgx84Rsuxwayz+aOJfk5/x03chu2pTAECv0wwD29ax4AzeGcswG+Wm2GsuoGS57SMVRUxNgSYZZAYRoFErpxLzOIBChdG5L1gf6XzWJJbrZ4ujjwhNvODQ7Q+SrZ/jTIqQDASWBqZlRGzCCfsJX61R7xPr8bnaE0qDupES3QvFTAWp6dyzm93azUHg9+SCbW0mqBFbFwF/nB4s9fToAdjxIzzeV6GemOqmrYQf2gbfhNj6ocaS3eQiElCOVfYh6vwqW+0Du/SHAopVWPP8AYNq8W9RYKCtEPTRbpDsRJIB5XUxkzkmAHwT+J0m05Ix9QyQwOHAHxKdN2KIYgGVK4mkC+JakTzDimWqaNMV31oooUO4gd01WGxXm8O1yv/8FfNmhKthx843ztcthncY2Oj2OHf4t+Tv5s91AK8kQ2p44oLmUCaXjQSMXjDroy2j6eCCSlMCDKQphO1gXT47sQ5QwfjAKIXimNK2zA/OJsYSPWWUrAYlQEx4FFmoRCglsUA5DRvFUZ4u41pmkLl40Fo5oyRD2JVDg9wO5xP1DJRwshZ23+lvb2yCgtWH1mclOSV4tBrIz03MnSD+V5moSdQ0zisRYXgxQ1SjIojNy3mWHiy22BZuBlvFnzPtbIS+0jZRgSN2GHa5kOGAs/QnMWYJI/wtao+PaxX99xkpfoG0NcZ384llfBVZ9tD7X44m1CK3meFeKobKfye9GCJvuzA7QpD1W2omaUiVxRD0RiDESDJ42aJbHg2qUq1HAcWqPbg7JbtWLdjp3fKHWX9VKx5okmqEV1B3zMFoY2dDmAlparUGR+R5zEPojfdq3z2MFpgN7Y/8X+ZxinFAgtYg+qzJQNkEvVQDGjtnavsD7jrf+JQYIbaBkGKkoVvRbZSKxX2YL528RApJwnALlVepL2MpSBK7QanwawiH52j1D0Qghju87uBS7WDncLCpATc2Vojn5jltk5apYZDNqgigibakC8T9kflNaUBLa1LxbW1MTa2KdlXJgTgFP14y2EnFXZGQbekm8Fdk/g7vBR6cV8xPm16u4geyr/gbMKXYrOjcGOwrRwk/XLK35ftYKwtkWNa24kxEsCTEBSAwodADlCoIPDQQ8ubfQsgpzyX95SKp1AKPTh+SqSs27mWiJvDxthROqYGcvHaMNApI4nSJ2IQonEujdY2QmVSVU1NgFGJaxXO+8NhVnRvPGWnGWKXJ0AJLQe+TTCV5mljP2WcUE5wqG6BLzilTO3Fzti8HKzyMmhByxu+VatqxMcNLK1OD0Sjihron4qbTYbcUUJfPYNJEfi88GGiXvYO0mQ8L7w17zxVMYUpIu2U7H3ZWZZZk050SkJq+4FUumL++dtvvuep4m+nx+688T2re63+46tXWsE6Diuuvv/PGN98zZkqPlyBxzI94FfXo9uAVTwU4/Nwh+yEfoiKeHayldGbfWCNLVDZAZO3oLNjSc4uGdaoMi2SScGl0JyBObUlq3yn9qoSrbjTDvCdjtlrUO1Wp9nMP9gO5bcFT7Mt3i3tbN9y7A0pWcijJBNde0uK7ie4uEWSzOzQ9QazwkpxZNdLmpAdv9Jr4v+013J3wOvECcLt9MTiUcE/2afbwUoE/q4/1ZhZ2vSQ6G9Qt5xJHMx4TAJt0bbupjZo324lMcAqCbwMJeoueJdANQlFFBvKVyfOi+JutxLnpd/ZKDcbpYKC+auLJ3hFZmoJZajJYaDUBX4q9q5diLoHc/o3mc7lXH39sLSIM4Zjunc3p0nsWGlR/DCBd2gAv6TgYE1zCqxs4XPsVQptgHXOiyzNuRRrO3yqqvNDOQHloMyuhtqGtofNvC9v5Njum37/0cYhFU+x29luMlfORcpvbZ+3vhlzrgk0jfx1dLWp0fD2IQDMbEozs3LRVMqGywjMeCfP4eP40lKSx1igwsg5UPQ8zyg87b6Ed12HBMVE5zJSKcMYtk86gaMDIeWDQ1Nyqk2N7z0ibq7x4TpsUDH+8hElIzTF0tHJpCn+mwRsQjNEq+bsqO8WABKbxacQDRH22okEn65PlTHKDw79Vh/daDvJ5U9K/mrJltnOtXw0f1p6W1UkUMQETX7Xez3cemuSfOtmWcn9pn3EmpSS6lQWFaQ/JtN7L8/Z61DjNQJKKBRLJoggJi8ofWy+TSJgpzOPBCq1OGIPasKirPiVVYuTbpAj6qzYRCYhNy4Qi9ohi28yspNAx+FpFBgGGHo/zRDNxY+2GRFuS7TM+iu1aGO7bbdmET+eijFOdqKFPiyXazu7/I/DCpZt05wvFhCZqdcJqNAigCjjWEHcyuhLBYcDVvOobJoz4Xtj1AFffd3042B/B+lT/V00x/hGEgxiJ5dWFwRt9N1G+WdnI3fJ7O+/uWNdMrTin1oztvGUT5ak/eV3Kxn3sIEACtEQ3F6Rz2d0rD4HG8DUI1cSDYV1hg4W3+blgTKnbPENgEK/EXDCg+SoCXkTNSLlrLSR4EUmn7AhD9/ryW7JghndwnfmctubGAWOeja182hFFneviq/+3GBtQSBzxyzevQ2OjlAHrDX9d2k6STBbERbBzw5C6mvlUqWa/JnGbJwpSKqKVpHH+Kl5XFoCK1nNXMyyNQ9eDNN5X3MHeBtkA8ELDJ52WhQ6O+eN1jDc5QTJZsvVckuscQDFqrvoP7LNLeY1bJovk7rmIJwwDpW+siZthoRc61WmgrZKZBazmPQwEiElV6CTIykrc2bYqm0MB12KFTVauMCZrJONnCyLbUprECB2xZruEHxJJHev/1kN+6tkCKPSHR4P+7uKdOwybAhKsY/SCsKF15hmGm5anqaMn4PuCG1b086HBxdGTkio5BUH2WE+VENt06kJpjSF9htVoIuyOtcUOT3HIO/M5/dKZZpZiaq12VLFIdwAIlVXWS+nXa7uxUHws4FAhAqQpLg62NhSI0elooLqU7ot+WtN+1ugsvJq5Q32GwxDHkQryzjkzzuFAqNxxMV32fFU49qWSkpBXjFzG2sJ6IeEMYSUTsqCpQ+xUoyeMYOqO0deP4+dY+BFNAK+9fEORXNTfHhGVp3hmZSrPYcix2x0cb+iHoUyiiGtdgsTBr1mFHynlLMBUQfpYjDalGRVzfC0zGKp6E44UI6Q9UaRNSeoZY6BcbwP+Kses80i57J4e2xEZ/bSWG0V6o1b6kz0ZjXSKVnVbrlmjA9HCrKRcua10ZWzjG+Tii6z3KCdxz4tZyUdl3aHZibQUTKhFO3wxfgh+MBUrgRtjHn5A0IjRrsEf2CYD04KQcUlZ2KhwWny0dt+7y373tiTkIfAFTMym1BAjamSSBhHpcHI/zVW+MuCv7YyYdgFK2jMCjth28VOHpL16pyEO6rhg79/WUL2pz///e8vecs6cMu0EcIhXLZ1Ai2GTZvHlQ3jSVoZuWimRtyYHEQYNNgQ0ilG9n5vGJbrlSQ5Rs6oPefdIzG7JGVmebbKRFqO7JbbPwfXudmVcmudYome4cnscE+qq1ea9IBWTFkKw8s9xVqM7/ZBFUzXmiIJ3dO93yGnOR328ygorf0GszLxTi6XEQWqoo8zEHw9FTZ8l88qYa/VSuA62pBCOHFJOoRCgtLaBvwFOZ6nof30Tqezo0SFYq0GahgZ7IQ3+kaUt9NqDC4TFfhvodCqY40+5yS/mKPrbLfYpQs2QORm9X3/fxtpV9Zw0OPshm/FOhWcVMY/k2v5nZWzAQkos7aqmLJrav5ko6gdTaksl01Vtiko7Xwy23ZI3jDFwRxvyxbeYdkguMYu34MqFrXGOXcqsTnjgebxvaqaApPU4DeC+a+uEQ2/FNGSJFVttTXfEVppjx1PJmelHLbgHZk22Oww5UOOpSClqnQvEzG/XYMiHqYquoT57bp+8Ae7oEW0r8Knwl9kmQ9vI/ZH9bbAEsJcIqmli7R3J22wsCQaIA2QgqGVl/B/fGnXqQfHV946s9hy/rstzWAhen0LvbaFcqeXcNn6ebghW7GWrnH0XZUCYxCURD0nqOdE+t7+B+ShtiUO2b1eeo8bxxwN3tDvTuKGJel2Hookr9tSY38977tj9LyHb43GE9AinUaJunN7it+YPGS1chfBLF4Vs3Lz8SRJYBUzJqGTvT36v8iZKKBAhPtMjoC4TEmv9iBEPZX79/kVvDH9+Bk58ZWrWJHSSbirbpT/M+Hg0d0ZEKbDf7J/A+uU1cUFkL0dnmdEtlOqbI9sHWIUWWr6lOriCA7XksMx+ql7++C5779Own86Nv328DteqWlHf/RFtE5HOI/P9zZt80aHhOzExXib3IhQP/n0k3cDFKxAz3p3IkyYYcpmaFLbtJYHUv0XitLYCqigx4SBRZsl9pcs0SyXPzZVtKc3/Hze//9/qifRmh56ozwCXkEsFaD4MkbukcGgEF10Ty0A2A9lZnicHnlKK+zsLCzcBkodD7sUbnTu7AIhNP3YaABzVfqZ9LmIHQvRG2/5iE5Kp60MAJVhH86G58FvyRGcwTVcJevTlmIsuDyU3EK56zKBxYiZxeAs7+AChiGTSpg7NDGgEAzboZC0zJY4xkXBGiFLGlySwPFn8XnMiPbC3c8c54qsMkkAdFQ/rAhgMqfdhOxrSyL84WrsY3RDu/HwcDfTCQvd3TKjyd5Ye2qZLj+LHozZ9GBmYWcx1NABkWdTRY1muYhU9qgS0LfUHRa93/JbmuBk9y7AjEOohHSEoplFWdKfngFFHrCNCSvsvM/p/ZaieYiwZTN87KJMlP67kzafMvEUVjzH8VosEvkY0dTY5JT5vT5n+eLqTLGUx4vgcOS8Y33DBy4YRWRY75YzZN06m9N2GUKUuugbA5tZfjfBYKziEFYolz2E7IqwRARxMuFAQLNeNDZqCDaX9zsTlk1tTaLXFiYLxOo2MhdONt2ZaDTS030MwhaIc6zrPWcAQdhXwXyYdHmaRQ4erE2mz+QQJGg3lUw3nClxcGna4MFqzSKYnQMWyKMEYuZ5IWDLPb8MdzEFaImtMVBCcwMbfcDxoviz7//D/4l2ychQRY28/XXdoG3q/c/OBLiMy2S5xYxKbZ2zpnHKMKWxFIhjLjQxOmPos1CqM46XWQnpDPNzmdHPXcwk8aMr3bKjLE2yrcSlo+uzTq2+nBidOSUoLatTvPvzD2dkoKEz05w7S+f9OrCXXGISOc7det0Q0cXDNgR9q2PGoBrlEtWWNrXOjVyRfc87ps5sr7cZjVXyJEQvm4rC1F9U7yKs50xzRPyWW/spb7rtJRxfB0steEvFqABNyD4zWWMU9u0QYnKZtsVUxFIb55QXkEbUIwbWLhdswPUmEvRLG4FEm3H7JJCcKRBCaGJTDPbsovxn/izSPX1UiE6cumFw1w/lZLGqQQdJbl0r0eJEDsZ4zbWA2h1NO4HGrEe+QoiPXcOj6mRD7w+ugCiSmPlSkGzxpDNGgrqDwWkWW/xlj0kn1z+ukOGmAb2Hyc2VXKd/14rIzUxPTdMMZqzKkNPwVJh2YKac2lyBU0qJxY/qsMYer8D3/4JvFcVgnKdIv5Mk23G9WkZeAuyG1DhuRJfQD6vBUa+86aBI1h20SYBZMKXu6O2t/K2nA0vaAVA85HqcFHTXyt82P39htrvgy0vEWgeXl5D1oc44AldsAxdx7bKwcellCLJvNfUlmCiriDlqyNzEwnppfmhZaFB/YCNlKsyw57kCRA+I8+52oGn8bImNxF4+SaTpPlrJJdG7crtSxRWOlTTF2FEF9zAxc415CIkjvPHweniajiSNxLH2bS9TkuShEjzvXiv7LL8mh6my3JNgPXd9JfgneXG+vYEp86UZRyNGZAK4DRNjN2ErG+K0mfj6e4/fj60clxZf/1WqzRRF0T4Tn+Kb8J3wTsfsNRTZiixsDlZi4xLxYzuJy1Pd5m5TM4uGWdeN4Dqc0xLgwAzOqZSENGVg1kFgfPKxCOqrEKwxDnuA5q1XFk7uo92KgrhRHCseVbKFQrG0W0RESTPhwsoeXPG5bGS9auW7QDywMKiBSZcVlDhJLrX06mnlyd7Vtdq4Dp4VSSgQQX98o0bDxPoWQ2Nomhwi+mWQM01Xv9dw59PtcyHig06VoWUELmlM8eNiE4vUbrvcEslApMbCytpQZz3cvGWh2+j3zAdBteaLWG+rRZ/hJzNqKbL4rrvCEevrvdbanOKmYTZaspcMmGoywxTu3NncmHBrH4N+So+2oG/u2G2BJ2wRovS7f8c3aAG+Ed/jvpdJN5EdG/GkMGa2UXRtFrg8BRJKC2YrgLJP9tpRrVvnxgrH7WK5NHgKFqwyhlGeVAKb9g7WiHZO+wKAnmpBNlCa5JLMXKxt7y6abOPxJpTI6uFpMsOQUzzHMHuyzcZ5Ki9QgMD4DBq4gsLwgP28i6hcGwvwGIrA+4Z8oHfYKbF8VDHNKJmfJGHWmwyGxxlqyHanpDXgUr3lVGu1/llC300Xs+nDCGyW9jeZIj19xKZbpY2VgsCD8UEFTqCyI2OZd6EBg1FQuUAh/FRckj5a0U6DrfJirTjdzMuYMqbbigW+Ct8B77xCK4sMd5tGxQIUKWeBfBQTFYENozRCKQRnxQAbEDawo08qGag5h1XsCyRLvvHhtMGL2oZjBGgyMM58pKX03TW/UHDtop3C9NfExlF23QbODqp6v8jpePWkmtO3NGBiCkGZPq7o9YOC2d82ydHlgDYiLwAChxi+NeMGYjbffokuLVZ3GxkMjTZb0/pgJBsvvv+wCXzzSsSww5oX9uN4JnAsLi6+l+U6Hm2Fy2WlWPfFoj5LpbwF9PCz0VaziRqDhCGVkcwKLAjBJviBcQ9vVpV7OnKb9Mm0MrfrsUOAEe6hfqPsgJGdplHuK/sf9KGrHtzGPlkpZ9SB/8WRhjjihJwZ67hvgTFzOTv94H0s211uJH5nEljFVpMsYogpSVG4jwHO3HHN6P/QEMXISXC/ntDJ4+2ANfAz8uSD8d1a/xSQa2du4VsokZ342gsirCJZHSnorJegOmm6oVzOmh5uNEBL22bjVv+l8aJ+H7p4y/5G9AAsB7Cn9BSYYHI8kwnywo3re6i6lfMpxBPbK0ooAoFglADIkREV4nLFtjvpoCjizUbiCQZFEIChi4u6PZLTrMZFojO9cKWIWnuP+hYqEdEvyG4a5cHc9K7XXnC41VReMPSgeUjcr2Xwdk2SVYNlqXcDIiKYVCqtLu7gq+HVFaUIyi0sxjsLx+bTuqZ7p8upSAPJisecoiJfYkwDtXGNYCVJGnFgpQSn6gXiOAug/Mhr8UmEc8JuCk/3VdUeSqMk5wSailG1Jttk67VaE5bLAKO3kGDtWuDEjJGPoWOjeFPleDoOeJg5c5KEDEs1ZoG+pcjavb1ZUtOxFfxoksuRuJDqiRbUD+0w2S3WVa8FQUuVlMIMegNGE1ZxPFhOwAc4YuCvaE61bb+vPyIQIgsmIb3KFcCeXlUpeKiTqQfaOKn8U9GOh5/XyPrctSVqAScmuAoRbJjVby+2h8g3Y9XTgA9qZj+BlJr+DNw02Sj7YfNeSaMgLdC0SqNqJcQEMuM2dlCV9SfCdwmAesQbwrozHHJxl/tpx7pkmugZLZwj+AYZZXuVxUTFDtpXyi35mV+BMp+mI08JTYgNPPTtXQ1DtVpO+lwbPIroNLrOOvVNYTD8io939gSXYMF53H4awM9HsoYMJs++cM2Ji33Bu08E/lx4Y/jEDgYzvgXf2Nicw3zp+yFVm8Zp5tLUf80ENUxPvI92ogzgtE7TLnVdqxoP1M57wihv27A0BconAxUsF+gY4ZT05jW8PQrb8Ui5BQF5sL+4eYlGogzxR61KNW52FK6mWwiwEAzkm1N2fmsxxR7NX0Rx27IGNeldGtyyrM2kGmgVTP27LU/zZEhBHtrh7Tq1u/lqqvkMnf/Ub3bm5JwnwuSAhhvPwyxdu5utW2gzd1zEl8JLy2n7wMDieisqUOO7aTNB0uk+uopGIsSkVZ/E1DEpE1jiDJRafilF2MzJiXA7WizISdbI52ejUlDaKSI8i8FwMB6ycVgRvApE4uoCLzhTtVEIf8++RLhQZbZQyiqiNV0jvU+V1OkVBhHHTJLLs2f9f1OsZ5Jqii9UW032ZIXtT+wBb4OCeFeDrzlUdV5+oK1nvSDO7XqPQQmQlqqwQtzGl3gvlZJllGITKloscTHpJ/aOWPIuaG17AqIzlQqSFlbKz7TR0kcXWHLU4KgwCYKKi4grHU3CoQJJW0oIW5XGVVE0wormkeTi+GKFian+MHOHUvHD19lBEyLtFh/JCkqH1oHHiMzHY5VtYkZvKKrVRUfGGJVs71erZ8v1dIL7mOZwJcrLukuo4+UD3LhU/EkIvkGF9rC9oukM1sHQicpCtvCTt8ghKKDu6XLm00kwf5XaST8hGMFEX7d9f47XW5f9fpafiP6fWUQKLdtXZ0g2k8sjIpZnCcOEVqDa8uygB8KUkPJMii4XQSFltKldvoyYRYbumIC79iWRg4O3C1b/uDA/fJqE3aH/TqqinVargj8k9O22puGVdEYPfeL1FAwnVj4zVGJU/FcSY4AaOpREL9Rl8TlroIiYZ1F3sW+69b74gtx7BJMGdynAEaGN9EMRndrTcWcfAhMX0DwrJV9Nj9dustHvnJEqs2VhpgVd6DCtnowsnpNL6MPcfbx9Q5e+6KJD3MW5BO26igo3kiuj6dyVppY5Ajwf9HrpE2+M5FGC+9uPNfzU6oX4G1ruuf/zM/4QhAkl7XKfwOalsUm+2ftW1Jp7Z98V+iv4+dSXFv9mf7sQxE/hRmvksSv8LFjzs9TzI9mtEtJIEzomRlw6qCDkvozys6x4zx6osPZ79mnOdT/vAuYjGFsvvpjB+hcXFZnG4OKeOdSEwcXXrrgmChhjGPfiai1srnEzHLaaDO/20HKl/uhC4o8mL0OkNZ99T64nn42ht3VtsFaPrb91pMytCnr1t6DVKqy3mquIwVes5PV18sEFP+7bo2iE2E0iycg7m8noD33eX41m/flvWMYZKDcgHRFceOzy7DnYY8VCgAZaCRIgwtQBYgTRLHM2Qp2Faug+WIP28vGL0K4E2jI+sAlMqOKUINKATx6X+aIVDdbZrfvpNOYO+m6HS0CbyWuTJLj7+JvgDfsY3JQxc9Lur+z7uIaE5AVz6UIsBYeacQSbErIpK8BGRfJ8z3xMBUl0oZbyPXvVtl/ds5mpD7xB0FGgeCU0kFwUrl+xzU61zg4L9wtuh8FfcttkvZZMCfB3Qb2j1zkIJ5gahC/Et8HbtmaLwZ1EJbsfbd25XJ5BRzoXpVnUHHK0hrqmTxzdkdZE0o5KCCU59UNSCsHWExQC4UVPErWuxjoqrUDyxRXHkd0yrUBOdSBVqATlLnmvHbTIr9N5zO5wITbnFJ/6VTRJS6JIZ6WDVfLVV4wgcEwShaE1Cosd/AUHg2uFMSnXQ6rFgE4L4m273W4Nz0F9Hsc7EC/4ggDaujcYbJKfQrTe2putwbbKh+LlxhB4UbC3Sr+41zqM5XlF1k3Tns8aBpkqTPwioyHMQz2DKsJ84eH1mOueGV0t9iZigLnpGaNNMt7bujvQfakPIoSUQeZjqdjzzEgigPDcv/A0ZUhJYyASVGAGf69ySUFMqvUmQTRvrecRCrSoW6ffs9/Dt+JsGEZJMhUEUZRUv07lfK721Z5mKW78K5ycNwujuTPKOfUvBCmyCyVxeCAMFOTDzXuB29ky8c8I+gjCF7w3k4gONqmbQtbtcv2SmK7fmaYuKzzPYsWHvL/VXF4QecEwYxW9t8UaVlhad4lII0xicr+k74N4Po/P/dsi1I2hpletu/3vUTt062y2/Dty8dAb+HP7OeA/Yd1On/mkuhw4T/zHv9x9S++99OiloayvL3zpTKpyUP2Pewsv2b/eE/ceP7UFzrA337t1i/MeHXwRqPoMxxUtFeiCg2TMra7fZuzqKX6ZaFnY2SiuMLr2vc/QcsfK6ibZ9e7ttIFBe/oEpyb7m+1vnz9UxoXfh6vf8G9fhd+nmfNDtLLh/tdaOz7Bqxdj6JjAnRDudJfsLJK1gw3s0NmFywY7IMmOCbdcurULt+Ks5yx3NPOc3wKgry/feT9pJFrc5UT3v/tBuXjhlpulozv7ZOF1EemS4O/VYEdbs6YdO7qzT25lfctV7swgG2xc1zbJxplFrlIuoQMsEh0fNnGdalMW9sFiEaVY4/AVggxzt2jhlPy89QM6M5HdZ6pLeW+7KYQrF+Ccj4IUo11d8nsKhZ+AuuBqErO2pL11auACPX93wQBvVYfZLLgGAutvB23cOmjB3gSO7+389YhM//U31PMmcIn8bPhjMiv42DDqiHeXBglBovYRGrxjG3DwsUobNF+6EnXvXjfCbIdrXa5QjEW43H9TNX6xebmbF1xWP4fOy0tKRlKGnQ0SVYBTgaSSACkZaf1pwWP+nTb4gyAqNXDd0hznonX1irycH0FhXqw1OA+lNLrVdUZbmUJlZ1i3KH/393jIaFdLEj8wC4tgfQXpBt1vyd/WJJu13auywvzth5AIRUEYBaZOAZCgZHVcahqSRyH8T1spYLNNeplX4mzhh40mnC0UvCIEeybz8DuL9ApULb7QVJIGdtenatbP4Gkd0LqF1gSzns1PTatahgqMH+f1+4XWNsSJroJz0aBe5NtZ7OESLFzB56RcaEbv3KmfqnsthTVuqpWyIAmYpkpBoudK4xD+tS0NhOzUfB6FOcp+patayg4GTGCDqbX78PdrIxkoP1ZfZuWohs3qpzN28UXFcwNt4qL1Qn3fkoRMUMSmWXzWlm9VLf8971UYmFCNi3yB8E/xX+DfS7VOa+EJIRzXN8tJHaNgvcs4/4H1rLQ3tZb7mls+SQJigIm5iSlxk+Mkx9z3kkvColiI3hoTxoKBdSmNxwvVBArDnKZM3ZAEMkICkS5WcQyJcRJbgOFN1DN8bCUGbVSPV0c4NcJR9d6i2JCK9hPzGbiNU4LVayQbVhKHd5rNBsap/eSRTNAqY4xsMARw553dR8RsBxUyTQKtqDOtLalXIANm0tv5W8OEJ2Hdxd5Pe9sJgufNflfFmzxL0Bj3plzXj3DCz7q0FckrVcndNFqvuhmML2SkFz/ZciutBUJm03ka07GwiN91WDgmDgxVkuFtg9m6n5doI36iuaWwO0haNzOqaNvVGbNiYGW/89WuNx9sVYwdEKQTihUPo6mcEy/RVqTjgQv3xP3Yry05o262m5rwF/lNvqTSpt9JvOb3VbSr9TKMu7ry7nAljV5Y/e1Yl1NwdLnXTuEH8MPkwxt6RsqZQDJ655RGNyxbgiEBdFeBCLfjS3kRaY2Wpg0x09LasC9sYWbBmKUQCzE7dFqg58VakyZqo5GSOGDwUNG3Yl8aSUUqmo+qtnAk59auBZY9V4KvH5SzA8z/45LfOTBNn0JorcDidVoPW0ET7v0aqrW6uArIxVlWHjkrsn7aVBDsKsuUCb9eBDNDKUTT2d2pIhqGs3HyxXFetr2R+6SF9otRVbvWyNWG1VjEieveTaOxZt7S3qlN4qBjrW8tKhf8i1shTaJpaIXWZn930Os5VkhxVtF1VKuf9bPTqorusgOuRiKCRiKVxkwv0vIwOGwucXy0WTOlCG8LSWtQYqKGDjgl3FhraZRnbupnw6JvHCKl8FLEU7uDal1Jn7HgIJHNgr8ZbTeEUraHnNO+YA9xkvZfZ9DNe/znZZrWphuMZtjeiwM7JOgfO1be+Of4L/AvWtgNowCQRsjWlfUibx22vxi/HiJhpVzkW8Y1xCuujFFioFRyXzBMsI+D9ZQiyzTSRuJQkr/6xC8WRbJtAsHFOgGWWgvBcw+FYUBDToUkzTgeCKWUDnzJmGIEGN66+9q9a6/OmCld1zNU23oNMyslhBBta6p0t32ygJu2s9lsttiWvFOJpmmGJCmKkuwVUTQMg0c7fQ/rFu43Na1nesoZB3cxFRi8P2tDUE2ZqmQraxgKY+wmx8SO/XywqJybuc1mqKLdsJUYmlaji67vrScFX10qQ5xkddUNOjMsPD7lKKzbbmQwvoiP1u732vyI+GwGw7ggOJRJLyKMYw73FKvan/s9paTU3su1bsQmlJRig7T4ppe9Rp1c1itJ3Q9X/a3pcxNBCyzWrcEbMBUxmrByuE6SfMq3yySMEJyomqbl7sBsVVl/MKSZavue+0ErUjrNs/G0cKphiKerDIXB1UKNNWai6bjFUosbcRvPw25dKYrJzr3FdJXytePsSoFyD0VQRAhHjiAECDIIQTF60bdRQ8wBmbVzcBr3SZSuynrtiLUy9rJwZAf2g0eX+cfaV0eHLC8x1f3GHPPrfaZ40GB6Ez8Y+TqKRzOf2nyRrx4HQvXM9ry3dBuGR6WSeUC2Wqy3MGkoLNZKz7nbAYbc86fmxLnHvSYHT0vOeRkCjh9ediqWV5uRW7HybOfuU4DktoY4J2qoNguJAS4wljFWrNHtqCTjSLPd5pmcNV33kwLXdVNSOD9HIoo8PmFJgd9ainhgIphQGufxPfAhP5U3K5RNTQqjLubtA6MNlAbSULSAt0YZFNHAINKMRCQrXE7TZAkvqSlFTRARVNG6KbItbMsXZ3HtBIRYrQ07cbyy+01SDcH1lIOV6X4H3tkTMew2bZ5QMI5miSDQUlnnwjgOnZPOLEoSrXc7AN0IxCcugnBTcRZHVHqfs6ByCTLxtTGvZZNmLtI5O+M5pDPTWU2B4DRWZd0Ja5735Z5pdTm+6H1K3pqh2y6HS2P9mSkM+25vhcYVG7YKn1djcAYrUPlTg1HO92NU2OI2bHZ2XPZhGOBM27qbDHccuCmceTqMVEYKxRaQO7MufqT8eAt9ODxyz3v0+fS3xhptCjuzrrXyKKW8tOyvpfV7YMNEyrjktBb+SW4GsqKCLXhfAvkAIA3LWNw0a11ZFIW1voNujsoXZGiuJiSsFaErQZc6panQ5y6n/fCZRFAW1bea2IfTm3RAkXCGajppUSm4nQuIKOVrQR1pxvkD/dtLFW0brqsT403Zlq3YFyjNCfvGo6blUldxfMj+vTvX4W2PyuEJcY2P3vbj5A/UObA9KV85Q+HVArfwBeQFTRyx9Jd75Fno6GrlJzCIZhdDzZ62/aH/gj3d1dCdY4v7izMnwjd8DjV7lsvv6gV76ntI1GJfAD9mvic7IbJDfBO+Cd7UhJoWwG+2V057C7qz9pFVl4j5sDlSxmiH3B1oSEWNCTr0B5cGKQGity8igEyLmQBrFScRSKK0BwHFygfmgsKbs91GFfgYUdMTj7/rTL6CWsN4XxzdbNnKo7iNbAwne2V6hgKU/pLWMrByueseOzstTmaRRf4RKkQQHBVJpJJgD9HV2Dk4QQ6MuwPbaR/ESbxrh72Y0JZPze+UIjfCTIogcW4roxYr7QUV759ZUydt88XK/cnPLbMMXD6JXS9K2L3JVuJYy5DgzgVOovUg2NXu7e/CNSVzosvi2/Cd5L3vgo4RIr+nD8G574IRmvk06vv0IdvwLhjRKnKc/9N3hSbAzAcqLuAZOKvBF9o5HIsnozkfBhKIO4RESgbBRVNggN1+vR7spfrHJxPdYbGxqdvtac8JT9cyzWYi4F9ubXMY3She5lwgYK97WHl+8ivcwX+FMtGdLaqVz0IjFU6u579WkZNif4e/XI0iere8u1nHwPNhOzfYp/ll/HTfKDeH3fEl+BKNEFFsIp05JNqPVl1KFh2CJo4l1bvl8WPs9brJJ8rHlCd1mpnOmcQxkMo+uFwD+KnOBnE0A7k32lbhGOZEDuy/u11avwEzeLmMYQnk0yig0P4CTVOU7PTAScxK2CXJcV2SGZUGe6cQzdbPgmDtQl9z0OvaciwrZad0DB9tqKWg8gduupPvrkvD0P7gi3Z59ch7SwPK0P4Op+h7upD0BiUrkcraQO7r5KsIDzc0u9gaLNjAz/6qW+KGNayRmisNqgisaTDWludQFedCgUAeaISFdXETL6JCkbFPtF76DS7uLettj6IZJXhhrz9N0P2g/BzMfIm5GPMuan1Z+x2qKnjuy4Kj9B/e/bbYQ/8sGgVh2qLH7QuD+vXBxZjX0Y7txZS7ymZ1dOdA95c6FUyxPjeuQv7g6BNH9uj47vqdWr97+pZ6dLJvIsuK9eRx7Vc/GumF49fwN9bRNVBDDbRzCtQjlmtJqiGwgq6COr48AHcxV0BRkwezE9d8X4k/lu0OH/1E2vaoZnpDqQegtdcqZvezVO+mnPju5yzUPtT1mxZdTZRfXFXvTIPPQv67cRaGjMtGyOXLwup4NLkjqLqjiLyIJPWjUpmwuJS27U5s19kMG7kTnYHGbu9qNhkJvB/uNhokGrC+dhYsRzwQMBiIyXWH2dB8btfjS4CJv4N3xDJy/giTMxbAD5A8xoDIKXvS1/dkV9efyyfOINm+/M+utk0K6/ZCvYFBq6LJROH77vfFpVCfO6qHGX73fYzjH77frXm74DPiEITd0W+9evo3sJE6PcBOo1NSEEhQh5ikLIQWDuwhL99av/GaVlALcNB73xr8mbH/BqCgTcTra7iN3QzXezC8b4UPLi4YiW9Qc2hwA7Lr+7cwqwyIzkP4kz/oV99895kBaxIIt9HDyCJ7ALufl/CeZAvrmPrCU1gHXQa1vpP6noxz7iegvLl1MTRfe3SKXevxHwXthWk5cAJWsA99RkfMFv3y8s6N9od0wuCeKkskyYr1QwltNLnWCyI1QPY6Tnf9i8HsN4rIaqsLzCvH5Fn2xr+rEFCnbn3i+K1CLK9ANFFXlPGWsfvZQJUyRwVBFMcfbisJaiNrOo5tmq9Lu2VQlzMNQRyytoabFnY0puJ3UTALCSQ2E3svkS83Yj2FjROoto+m9lrheP1R+GyqWo+8f+XnRiFFTES4GqRFC2tApBJzkrDkInzqn1tzxA64aRDcyYajn/OWSIj+3S6atLIDOgTXriu6f114jUGHqnj+9mSv382EpFjVzruxbBn8TmrG3GKB2nJCcl4H6NkrJOSRivGbk0A9mRZ+AMXQ/nEdxAnaUi/nNimeUZu9V7eY1nrZyJq5v+zJ+n9CPT5NlQAudTtBrkAno2huoOdXeuxqg19O/TNBYCJtKL8oaiOFXntfdelpsNUVVVdlQVB0szs37NRjnxgYfcZw+q2yKIgsdRIi7MaSoB5FezYmVXhNS9aF/RuMM64K1yXmmcKBSmeDTNdf+tB1w7hxW3tjquy0xQ4HZuJCx+cdrY1pst96bCr0PwfqHY/4ViMYzQ4o5vsyUkWkj42uJc9yqqRaE/jYEt+3E5bFH8PbZ5LTtLaX23d6u3apZGeeFMCLbf5ZAG8aFd7YzGHhsXugay8cg0afOWqPnY/cPQ44bthY63n77fLpQrFPVUbd8P8h9uXs+nwUlal55HJRxYL3ynFSbpK3WOHSOfv8HlK4b7mupSTFN/p4H0J5rh/8llV7gxrcil2JPYK0WshAOthD43fXZzxLlrnrFFawBOyU1Yk6om4m1x49ZZd+1DzCfBqwMxWW+YrXzdIT/F3fsW+oHB/v3DaeIzYgs2Z98ueG3tsddJDHv63QBU5TVYhLTeAh1P4wSIVz4PZ2OX5gc1aRtbFZA7dxW+8+3/LIqoLgt+b8g8efeMb4iuIFFjwNd/X8r9JqzrVw9S8IMyRz7smBDqndWiNOYI9r1onsuLsmwtxl9OfcE0b5pa+dc9dfEc+59lH8yMX3tA/uWNQmH/vxeZp4oe0XB9xb893rxQhjC02zRpsWWotQ+qsYScq2q3Mrvlmj5n4qbqThLpl/3LHpOPpk9zj5F1jEieGe9qDmWzhO17tKSg4O3LcHL6MHnLHYkusqXHR5kJWE/f4szcte894umD7CTGpLF8QxQkaf+31VPtifWJIdeVz9KXu2rjep+S5pzmve93q8AD99tRCKqqm+haktQwLh15OgEcaVsypN//IfwF39fzE4vgxPpINz/5FojJwEu5x/aKz+1YhzeW7MnY1nL+Q/zLFkgeUjq8dc7KQA6UMRd+M1pdgFP/nQfITlF/4oaK5x9XCysM+9Ii5p/yo9zjSv//B5klDeiZ48mfapF9owUVtRtbaN0ip3jLPqHuFKWSjoF6y/u5hWRcp/OIbjNr6hTmK8vL1z9LJWd0Vmzrf5s+fBLj6x0OovblnnqznfKp13QnTQISX5KNSH89FDCMsiwmTZ08JDQjJeJ8TEaadvnbNxbsKOu396acXNBPL4CXrX5TMESUOzsM+8Kp2pd7WT8+W3Mr77+PtzX5v8dynlveFLfn/Q+7FREb5z3+N3EyauuMMvdfwwun791Og1+f0CQtBGl9jdOF3uu54em3XCyesmDyAsuXh0Ma0bRXJ4+UJP3nm+2PxC/POT5Z26964970NEgOLrr/7zmVV30nb21OJDp49KsmjOlid/VTyh+xZ+8i/PeN7Ohe+AJsHU4uaLj/dE+OtPv58z6/NvK51EGfDLrl4FXeax87P8fRKydGU5w4YYeTbb5Tid1+TDd5xV+2En6iKJn2w+DZCet0pdSjfYhzL3+XgRCY7/UWR0XrjVj0TQykvPJ7qOoNTMKF+fTjUfQtGjS/n5+oG7SLgfFKhLy2JxsV10LzAeUxdzOcysLNydAdXsu3Ep2HrRH+eBKqqqzomcIdhcfIvI30fthRuSrYWaTc3qGCwEfsFCYeGPMD849Q5+X12+oZ4pevryJz7ATClb3hm1d+L4fCZFi9X1ZNEd5oXKnc3iCiKb6B6uanFmsUl7lHt7SDh97l6o6JE9eJE7mn1YtZ9EufWdXjGydjmEodX1pEHybuDOmGXY8qC1LF2FRQMB/rdL2j4Zw3W7H+yuPGzm9s3D1+RPqvSjJ90cqg/dexzkdsddqeTyBhsaX001ef3j0VcT2EHPW6cGULR9+O7+TFPWFhV61D3Ir+YcO/4zdpFyH9+uhhvsRe5gj+q1uAr5MLiJocoNwgkO53qyClRDCuVm1G57IGU+V/Au109NHWEtRgH+yuOmfep4Mv9Bo+Nph3wDMmfNMah9dt2Dm1PtJlHlPwvJ4aL7ewNWNfXFyq3aUQvGNKmH7seqCqL1FOWeZuMy3eQu8T1aHq837pdmYfgjKHd6kwy6EK7FoX180TfQG+9idNFT3Gho+P4aOFUQ4wtxQuSXvtQtuna1asuojqMexzjh2qOet5Ie7FePF9vfGhzjlvP6h/jRM0XXU/z+ZP+Guq4La1l983OYr/brdTnip+IMQfj3vto7c3p3p2I/uSEk96PjgpD7L/aVWxrXcTzgiNupaSs6O4oKvLmGZc5exSsJ8k8iAZObyd515YzOHw3dPVVwLSnpa7jjo543kx6My8eLrW8NjrkvH+0QGwKxExuvBufu4IROOt4xwVwPW21lEU4jsNZBMYc1qJUxrQBSxTI9QsfQDe5EjUWuZQDIeT+L3aLOhOkNlKuijTK0uzVjnHfM1Zs8OPOX6Q4VhnfyQVh+2Cyy5vC5tqIHhXfM1Zs85IEfVJAFpR2QnuaKlewCa+4s3FcLLaF9091tCY9fUpMLMgLcSWbKzMwUFe4PT0rObW9k0RbGRFxoAWVaFzILBux8xNTPYMTIOoirG6H/ukrNHa6/doRWgANqbQCnP5iDxbUKPL8CDuAxUkgRRhsJBjTNbgzvPVljXShhZpKEWaNt89fJw/UGWJZgFuuQa8E0KEY7LvUYRytK31gUu7oArpgSmFaJ3gm7uSJmreiMjMm7lZ0s2kEFJy9r6xDGVWSrZxyVBQEcd1u15zOU2comZjYP6v4gOzb1WIEgIB18oWAVERt+L+iYD91gF8pLcgggvYaz4j2RwP41R6MduAvDd1s3ZaoRIHqfXc3QSwrnyA82y4VioeBC/KBUaQ/69IVflyTnTMyHnl2GwKm028DtY0C4jftWBdvMAeVXhznU+k4b5PooDtiOvAEnvQ+9QiGlhQtdGLGgljqUsQByuYmXo0FvT8PVtxow3ORRhs64yl3m13SoT52c7UStUmZmaZuURncKHDdv1fUWzGuDYNf1XshSJFf6xumUMzw2xgMX4omNB95oTGhAuG4m7NDF9BYuMLxV3dFXM0XDYWNWrxE2yj3eyryJikXLArdt+TVEAkzw34cjSMg8EGY3C7cZK87j3azwXU0+ROfxF7aKm1X5Axt1dKBoOYBUkWnV2/QMrczFpykTyN2ShQKHjhBlXKHTfqoSpu50KWUladqtxnHavglBHytk5m/Kq5ouywPJa9ZuVCq5yYFhuCU57vBalPi6Y/StDwX66E2YPZH2OtperI0ljPxOgYwnChh53RIwEOkvN96Y5JaPbYUO1h7UWumAoLQvnNCZn1dRDV1drJalwxvp/MzLi5sVDN2ywXWc9r8gVi2EFTWsQbsFN1CT0L0lm6Ykqwi7MF6ZflsT1sJATN7iw3zq4k/IcjebHfVurzhO3z3MjH4bj9dWJADIHU4mzAn668yYGDpGkw399RSgA3Hdcwdutev8EOc4xEVyK9SIVWUeKZyo6mXBQYw88oS/iwSRL0VgwMqccMWl1oMTrv6aKR/N1rlhdpDF4dZoE7UjLGHb073yAY86FRicAAmHQsoLMdNRQwnY6+i8AMier1njukvmFaTHB2emkQCdYnOKVNggKhVsjhlsnSnG1TOBHFdrMr8uNvWNLBuD4w0ei+0IaxhCmGbiLYSJjOKmFD1gTLE9a7DeXhOe/KoFpA2Sl5WrTH6LY3EYRVD0/rIt4KHJm6gRrTerDV02S+YotnqmklX0h/Oxf52OwbsNy2UyqTR21gjEkxB1biwZSX+j/ptL7xziZ9n36s9X+2Z5fgFV48LKwm6EZmXTvpk6qb+oIZrW6CrRHVuHuyJr2mcMjpvz9hw5jIkJm9JbPnq7pFKQPMVngoBClN68NDWULhP+ruH5KwAfnWaO3Z76o0hyKo//1D75MkAJBhDgv+kvFbbdgP0vC0nO42iluUirE14r2raWKj+3M3kNAhQH472/CDItQQriWnzfnH6Ne0rAGBqWG6ElfgdOZbUN9kSbOF1fPuNGJaiSfInOWFqqNKlpBmretz2sInjVFqRxty64tCvwqHw8eSwUPd3D4poF2rZ/maqSUUIRZCUpfyCxkszHLj5eJTLHSyJPZACUoaGCax9FijdDhh8p47TLgEZD26oLS/SE54qoLhDEtN2ycrHIyqOY8fue9zCzdiAzbfCtBAmUtedWf3+lvARWhWILuQr/moWFWh5j1nx2IuoIBInFrSRJlWNWLRdQSsllEFMuPEohKeYmGseJhI/eqnuSsUnIF7UG/b5y9Q04LfSWXVUGYJq27uIJIU4iXB0jP5pR0dW/pGFNMfm5Ye5FU0qYKYiaP37awAFXnrKqq9TKGuyspZqAEV4OY/5IVOJJ1xUaQsT2wwfxSru5JmMIHYkMSxg/K3549q6tf4AV0/6ArB4jpKQCStLMqWrui5qGqEbwyCKBWuZSXSTYkitN64JzrSX4tZR3WsEpHv4HydFSJENSpEJqFCDFr9WMn/R4lSWjOQluSwRV9dHcmGZuqXs5QPq1uUnNzK/HPKmtI8Si3NwGWEosxsFL9rEhh6w5TuAnID5btCxAJUZAwPM+NhT392iFKnBDJhYVcclZFWMXt6i42BhUAi/ZKkV8WCqVr9fH2ok2dKqocNOnVjF1qjWkrWody2q1gaGqoJk+FK09RaN2cbBQ7UbKVns4Eaq9GCJZf62EqCNYXNRRTIxtHcMANlVhhSJ6YgZFdMqopKubWNXFUi5UlFwuQpTKRuF+sYoroN6GnafYCmV7JEdqVp0wmUSJ0i0amnoU85XGQL1FisFzUkJOkJvgWhnxBsXnkkGfE/HChY+oSpXAUw/O92G6wSqSFZUIlyODTBq5ecVqFY/zS4TJU/zi1UVpYgsnXhXIKozhuaLwCQgGmwPT2LyiJLFSfiL44j6dswgsixvgLj7ucjZcd6xEphw5fULn5OTeZZNGpKoYDfWqhBNckYLKca6w91yMG8ZyXVFBm3PVSySrHrxUNHCVDpI5XqLsJaopb65SEJyAKKxEsWIa4UgVRDh1URh2aAiGjf2cDuOOdPY/fi1gdv8N5jKlo1QGbBWARy3Q74IUu+KqbwULMVOocddcd0MYvvDgBCJoRJrwPyVu2eYLg2b5Q5TZosWINem2UnfEiTeH0DMJ0pQpp6Olt0KPdBkqZHoqS6UqK31CTEJK5i6DGrUhVJOHIltOqHLNVSdPvVVWa/C5NY6Z54X5FljoU4sstpZRo3WWWCpfgefOWmbE17p0c/4qGMYXqfhl74ETWlSiGrWoRyOa0TLkrXfexz66wzGc4NEXLI7sefJyGKGXr31GtbJF5SSRg+O+lMIGUyEFkSRjLvrKCSed0s9i2AUUjBgIF37o2phstEG7Zsv9psV5tBiyXkfc2Pm/l07j8uFthyJ9vvjCBbk0O1et1RvN1ny7011Y7PWXziyvDFbX1ocbm1vbO7t7+wdnz9lsyXa/QsMRGO0mNmVVcU0xIVNXGOhlfN2oSjc/T0qr1pcJItd76NQVBrJCX8xXj1SsIA21FW+c8WM6Q2jTf2Vn8EgS+BZLAOTNBJgSICNy3jrBS/+qKDzK1kjBfhPt9pRjqXmOvx5MTK3U/W7OA1ZOCmKTkPyczuDb+MX4COe+kctt+0tNK6q6xmurK4ctEce9iRIOc77rgeD3eDG9siOkY0LZDn7oF+Ndra5U65lEsc/JJjsFUYErRj4EgirXSDlaSl2g7Cz15q5lAgGS18Cs1yn39DfQFBf/JzGd9CJVtSE0T/tW6GWehYYynXpStqlb7Z0k+GNjAnYDY5fIomAmK1pNzrKTn9wuHbcAzAh0Pd3acMQmAAA="}},"time_used":112,"timings":{"blocked":19,"dns":0,"connect":0,"send":0,"wait":38,"receive":55,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"cdn.tailwindcss.com/","fqdn":"cdn.tailwindcss.com","domain":"tailwindcss.com","tld":"com"},"ip":{"addr":"104.26.3.143","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://digital-assettrade.com/","date":"2026-07-27T10:27:12.030Z","timestamp":1785148032030,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"tailwindcss.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Fri, 17 Jul 2026 20:38:38 GMT","end":"Thu, 15 Oct 2026 21:38:35 GMT"},"fingerprint":{"sha1":"AF:4F:AD:59:FA:ED:77:04:0D:32:56:48:B0:E5:1B:38:67:6D:7D:02","sha256":"E7:FC:CF:2D:6A:CC:F5:3C:4C:1E:9D:CD:21:8A:72:A3:DB:7C:B1:50:0F:83:D1:DC:E4:AD:25:90:8F:98:37:0F"}}},"request":{"raw":"GET / HTTP/1.1\r\nHost: cdn.tailwindcss.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-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://digital-assettrade.com/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 302 \r\ndate: Mon, 27 Jul 2026 10:27:12 GMT\r\ncache-control: max-age=14400\r\nlocation: /3.4.17\r\nserver: cloudflare\r\nstrict-transport-security: max-age=63072000\r\nx-vercel-cache: MISS\r\nx-vercel-id: fra1::iad1::rsdmj-1785147955850-16cd8888a17e\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.0,\"max_age\":604800}\r\nage: 76\r\ncf-cache-status: HIT\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=BhjfpRTKHOlqeA%2FFDr%2BeO1ll68Ui8rDkt3EnWlbzHMWs90aNf0eDcEcZ0k0%2FUD6CaEcTpw606KLq8r1PNfBIBan6fziCj5LJ56FmMOVPVh7ufHaLbH%2FTdxpJVGHuIhlZM%2BHz2Rc%3D\"}]}\r\ncf-ray: a21af3407bbc56a8-OSL\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"302","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"Vercel","description":"Vercel is a cloud platform for static frontends and serverless functions.","website":"https://vercel.com","common_platform_enumeration":"","icon":"vercel.svg","categories":["PaaS"]},{"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":0,"size_decoded":0,"mime_type":"text/javascript","magic":"","md5":"d41d8cd98f00b204e9800998ecf8427e","sha1":"da39a3ee5e6b4b0d3255bfef95601890afd80709","sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha512":"cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e","ssdeep":"","tlshash":"","first_seen":"0001-01-01T00:00:00Z","last_seen":"2026-07-27T13:01:10.036638Z","times_seen":17563461,"resource_available":true,"data":null}},"time_used":55,"timings":{"blocked":-1,"dns":5,"connect":4,"send":0,"wait":15,"receive":0,"ssl":31},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/13809.c2bb1623ced77ad07f9c.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:12.971Z","timestamp":1785148032971,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/13809.c2bb1623ced77ad07f9c.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:12 GMT\r\ncontent-type: text/css; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding, Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\netag: W/\"69f98b72-1f4a\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Tue, 05 May 2026 06:17:22 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.51\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 05/05/2026 10:16:40\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: e94ead25f6c0b1031728163b42e9618d\r\ncdn-cache: HIT\r\ncontent-encoding: br\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":8010,"size_decoded":2518,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with very long lines (8010), with no line terminators","md5":"4f0cb68a495862c356ff327ec986f404","sha1":"77305dc905a65eed86ee7c9297d7a3077ae28681","sha256":"30068922a8c864edfc76ec495f5824dc74a5bf90ffbdf13361962b688b876c0b","sha512":"68ba4919ba3409e0c8a9821aeb3de864470ef059bf11eb630b556a3f334f2eac8ab99a13abb1be0c8d86cd217e68af6a82864ad1415f3e54e02b762ef432c2e5","ssdeep":"96:DojZtH5/5CHWuyfvKH3qLs3uBGKKloim/QEann:2tHr+wfvKXLDXmYNnn","tlshash":"86f1ae05e1b463ba74bb8d5cb784dc5a6300d2b3ce24d7dff690680a85c65872e6b88d","first_seen":"2026-04-16T17:44:11.976987Z","last_seen":"2026-07-27T12:53:06.185546Z","times_seen":1006,"resource_available":false,"data":"W2RhdGEtdGhlbWU9bGlnaHRdey0tXzAtaUE5STp2YXIoLS1jb2xvci1jb2xkLWdyYXktODUwKTstLV8xLWlBOUk6dmFyKC0tY29sb3ItdGV4dC1yZWd1bGFyKX1bZGF0YS10aGVtZT1kYXJrXXstLV8wLWlBOUk6dmFyKC0tY29sb3ItY29sZC1ncmF5LTUwKTstLV8xLWlBOUk6dmFyKC0tY29sb3ItY29sZC1ncmF5LTIwMCl9LnR2LWNvbnRyb2wtZmllbGRzZXR7ZGlzcGxheTpibG9jazttYXJnaW4tYm90dG9tOjMwcHg7bWluLXdpZHRoOjB9LnR2LWNvbnRyb2wtZmllbGRzZXQ6YWZ0ZXJ7Y2xlYXI6Ym90aDtjb250ZW50OiIiO2Rpc3BsYXk6dGFibGV9LnR2LWNvbnRyb2wtZmllbGRzZXQtLXNwYWNpbmdfeHNtYWxse21hcmdpbi1ib3R0b206MTBweH0udHYtY29udHJvbC1maWVsZHNldC0tZmlyc3R7bWFyZ2luLXRvcDoxMnB4fS50di1jb250cm9sLWZpZWxkc2V0Omxhc3QtY2hpbGR7bWFyZ2luLWJvdHRvbTowfUBtZWRpYSAobWF4LXdpZHRoOjc2N3B4KXsudHYtY29udHJvbC1maWVsZHNldHttYXJnaW4tYm90dG9tOjIwcHh9fS50di1jb250cm9sLWZpZWxkc2V0X19ncm91cHtkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW59LnR2LWNvbnRyb2wtZmllbGRzZXRfX2xhYmVsLC50di1jb250cm9sLWZpZWxkc2V0X192YWx1ZXtib3gtc2l6aW5nOmJvcmRlci1ib3g7ZGlzcGxheTpibG9jaztmbG9hdDppbmxpbmUtc3RhcnR9LnR2LWNvbnRyb2wtZmllbGRzZXRfX2xhYmVsLS12ZXJ0aWNhbCwudHYtY29udHJvbC1maWVsZHNldF9fdmFsdWUtLXZlcnRpY2Fse2Zsb2F0Om5vbmV9LnR2LWNvbnRyb2wtZmllbGRzZXRfX2xhYmVsLS1jaGVja2JveCwudHYtY29udHJvbC1maWVsZHNldF9fdmFsdWUtLWNoZWNrYm94e3BhZGRpbmctdG9wOjJweCFpbXBvcnRhbnR9QG1lZGlhIChtYXgtd2lkdGg6NDc5cHgpey50di1jb250cm9sLWZpZWxkc2V0X19sYWJlbCwudHYtY29udHJvbC1maWVsZHNldF9fdmFsdWV7ZmxvYXQ6bm9uZX19LnR2LWNvbnRyb2wtZmllbGRzZXRfX2xhYmVse2NsZWFyOmlubGluZS1zdGFydDtjb2xvcjp2YXIoLS1jb2xvci10ZXh0LXNlY29uZGFyeSk7Zm9udC1zaXplOjEzcHg7cGFkZGluZy1ibG9jazoxMHB4IDA7cGFkZGluZy1pbmxpbmU6MCAyMHB4O3dpZHRoOjMwJX0udHYtY29udHJvbC1maWVsZHNldF9fbGFiZWwtLXRvcHtwYWRkaW5nLXRvcDowfS50di1jb250cm9sLWZpZWxkc2V0X19sYWJlbC0tdmVydGljYWx7cGFkZGluZzowIDAgNHB4O3dpZHRoOmF1dG99LnR2LWNvbnRyb2wtZmllbGRzZXRfX2xhYmVsLS1jb2xvcl9kYXJre2NvbG9yOnZhcigtLV8wLWlBOUkpfS50di1jb250cm9sLWZpZWxkc2V0X19sYWJlbC0td2lkdGhfc21hbGx7d2lkdGg6MjYlfUBtZWRpYSAobWF4LXdpZHRoOjQ3OXB4KXsudHYtY29udHJvbC1maWVsZHNldF9fbGFiZWwtLXdpZHRoX3NtYWxse3dpZHRoOmF1dG99fS50di1jb250cm9sLWZpZWxkc2V0X19sYWJlbC0tc2l6ZV9zbWFsbHtwYWRkaW5nLXRvcDo0cHh9QG1lZGlhIChtYXgtd2lkdGg6NDc5cHgpey50di1jb250cm9sLWZpZWxkc2V0X19sYWJlbHtwYWRkaW5nOjAgMCAxMHB4O3dpZHRoOmF1dG99fS50di1jb250cm9sLWZpZWxkc2V0X19sYWJlbC1pY29ue2Rpc3BsYXk6aW5saW5lLWJsb2NrO2ZvbnQtc2l6ZToxMnB4O2hlaWdodDoxMnB4O2xpbmUtaGVpZ2h0OjE7dmVydGljYWwtYWxpZ246c3VwZXJ9LnR2LWNvbnRyb2wtZmllbGRzZXRfX2xhYmVsLWljb24gc3Zne2hlaWdodDoxMDAlO3dpZHRoOmF1dG99LnR2LWNvbnRyb2wtZmllbGRzZXRfX3ZhbHVle3dpZHRoOjcwJX0udHYtY29udHJvbC1maWVsZHNldF9fdmFsdWUtLXZlcnRpY2Fse3dpZHRoOmF1dG99LnR2LWNvbnRyb2wtZmllbGRzZXRfX3ZhbHVlLS13aWR0aF9iaWd7d2lkdGg6NzQlfUBtZWRpYSAobWF4LXdpZHRoOjQ3OXB4KXsudHYtY29udHJvbC1maWVsZHNldF9fdmFsdWUsLnR2LWNvbnRyb2wtZmllbGRzZXRfX3ZhbHVlLS13aWR0aF9iaWd7d2lkdGg6YXV0b319LnR2LWNvbnRyb2wtZmllbGRzZXRfX3RleHR7bWFyZ2luLWJvdHRvbToxMnB4fS50di1jb250cm9sLWZpZWxkc2V0X190ZXh0Omxhc3Qtb2YtdHlwZXttYXJnaW4tYm90dG9tOjB9LnR2LWNvbnRyb2wtZmllbGRzZXQtLWJsb2NrIC50di1jb250cm9sLWZpZWxkc2V0X19sYWJlbCwudHYtY29udHJvbC1maWVsZHNldC0tYmxvY2sgLnR2LWNvbnRyb2wtZmllbGRzZXRfX3ZhbHVle2Zsb2F0Om5vbmU7cGFkZGluZzowO3dpZHRoOmF1dG99LnR2LWNvbnRyb2wtZmllbGRzZXQtLWJsb2NrIC50di1jb250cm9sLWZpZWxkc2V0X19sYWJlbHttYXJnaW4tYm90dG9tOjEwcHh9LnR2LWNvbnRyb2wtZmllbGRzZXRfX3ZhbHVlLWNvbnRyb2x7ZGlzcGxheTpibG9ja30udHYtY29udHJvbC1maWVsZHNldF9fdmFsdWUtY29udHJvbC5saW5rLC50di1jb250cm9sLWZpZWxkc2V0X192YWx1ZS1jb250cm9sLmxpbms6dmlzaXRlZHtjb2xvcjp2YXIoLS1jb2xvci1saW5rLXByaW1hcnktZGVmYXVsdCk7ZmlsbDp2YXIoLS1jb2xvci1saW5rLXByaW1hcnktZGVmYXVsdCl9QG1lZGlhIChhbnktaG92ZXI6aG92ZXIpey50di1jb250cm9sLWZpZWxkc2V0X192YWx1ZS1jb250cm9sLmxpbms6aG92ZXJ7Y29sb3I6dmFyKC0tY29sb3ItbGluay1wcmltYXJ5LWhvdmVyKTtmaWxsOnZhcigtLWNvbG9yLWxpbmstcHJpbWFyeS1ob3Zlcil9fS50di1jb250cm9sLWZpZWxkc2V0X192YWx1ZS1jb250cm9sLmxpbms6YWN0aXZle2NvbG9yOnZhcigtLWNvbG9yLWxpbmstcHJpbWFyeS1hY3RpdmUpO2ZpbGw6dmFyKC0tY29sb3ItbGluay1wcmltYXJ5LWFjdGl2ZSl9LnR2LWNvbnRyb2wtZmllbGRzZXRfX3ZhbHVlLWNvbnRyb2wubGluazpmb2N1c3tvdXRsaW5lOmF1dG87b3V0bGluZS1vZmZzZXQ6MnB4fS50di1jb250cm9sLWZpZWxkc2V0X192YWx1ZS1jb250cm9sLmxpbms6Zm9jdXMtdmlzaWJsZXtvdXRsaW5lOmF1dG87b3V0bGluZS1vZmZzZXQ6MnB4fS50di1jb250cm9sLWZpZWxkc2V0X192YWx1ZS1jb250cm9sLmxpbms6Zm9jdXM6bm90KDpmb2N1cy12aXNpYmxlKXtvdXRsaW5lOm5vbmV9QG1lZGlhIChhbnktaG92ZXI6aG92ZXIpey50di1jb250cm9sLWZpZWxkc2V0X192YWx1ZS1jb250cm9sLmxpbms6aG92ZXJ7dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZX19LnR2LWNvbnRyb2wtZmllbGRzZXRfX2lucHV0LXZhbHVle2ZsZXg6MTttYXJnaW4taW5saW5lLWVuZDoxMnB4fS50di1jb250cm9sLWZpZWxkc2V0IC50di1jb250cm9sLWZpZWxkc2V0X19ncm91cC1idG57cGFkZGluZzowfS50di1jb250cm9sLWZpZWxkc2V0IC50di1jb250cm9sLWZpZWxkc2V0X19ncm91cC1idG4gc3Zne21hcmdpbi1ib3R0b206MXB4fS50di1jb250cm9sLWZpZWxkc2V0X19ncm91cC1idG46Zmlyc3QtY2hpbGR7bWFyZ2luLWlubGluZS1lbmQ6NXB4fS50di1jb250cm9sLWZpZWxkc2V0IC50di1jb250cm9sLWZpZWxkc2V0X19zaW5nbGUtaWNvbi1idG57cGFkZGluZzowIDEycHh9LnR2LWNvbnRyb2wtZmllbGRzZXQgLnR2LWNvbnRyb2wtZmllbGRzZXRfX3NpbmdsZS1pY29uLWJ0biBzdmd7bWFyZ2luLWJvdHRvbTo0cHh9LnR2LWNvbnRyb2wtZmllbGRzZXRfX3RyYXNoLWljb24gc3Zne2NvbG9yOnJlZH0udHYtY29udHJvbC1maWVsZHNldF9faGludHtjb2xvcjp2YXIoLS1fMS1pQTlJKTtkaXNwbGF5OmJsb2NrO2ZvbnQtc2l6ZToxM3B4O2xpbmUtaGVpZ2h0OjEuNDttYXJnaW4tYm90dG9tOjEwcHg7bWFyZ2luLXRvcDoxMHB4fS50di1jb250cm9sLWZpZWxkc2V0X19oaW50IC5saW5rLC50di1jb250cm9sLWZpZWxkc2V0X19oaW50IC5saW5rOnZpc2l0ZWR7Y29sb3I6dmFyKC0tY29sb3ItbGluay1wcmltYXJ5LWRlZmF1bHQpO2ZpbGw6dmFyKC0tY29sb3ItbGluay1wcmltYXJ5LWRlZmF1bHQpfUBtZWRpYSAoYW55LWhvdmVyOmhvdmVyKXsudHYtY29udHJvbC1maWVsZHNldF9faGludCAubGluazpob3Zlcntjb2xvcjp2YXIoLS1jb2xvci1saW5rLXByaW1hcnktaG92ZXIpO2ZpbGw6dmFyKC0tY29sb3ItbGluay1wcmltYXJ5LWhvdmVyKX19LnR2LWNvbnRyb2wtZmllbGRzZXRfX2hpbnQgLmxpbms6YWN0aXZle2NvbG9yOnZhcigtLWNvbG9yLWxpbmstcHJpbWFyeS1hY3RpdmUpO2ZpbGw6dmFyKC0tY29sb3ItbGluay1wcmltYXJ5LWFjdGl2ZSl9LnR2LWNvbnRyb2wtZmllbGRzZXRfX2hpbnQgLmxpbms6Zm9jdXN7b3V0bGluZTphdXRvO291dGxpbmUtb2Zmc2V0OjJweH0udHYtY29udHJvbC1maWVsZHNldF9faGludCAubGluazpmb2N1cy12aXNpYmxle291dGxpbmU6YXV0bztvdXRsaW5lLW9mZnNldDoycHh9LnR2LWNvbnRyb2wtZmllbGRzZXRfX2hpbnQgLmxpbms6Zm9jdXM6bm90KDpmb2N1cy12aXNpYmxlKXtvdXRsaW5lOm5vbmV9QG1lZGlhIChhbnktaG92ZXI6aG92ZXIpey50di1jb250cm9sLWZpZWxkc2V0X19oaW50IC5saW5rOmhvdmVye3RleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmV9fS50di1jb250cm9sLWZpZWxkc2V0IC50di1jb250cm9sLWlucHV0W3JlYWRvbmx5XXtjb2xvcjp2YXIoLS1jb2xvci10ZXh0LXNlY29uZGFyeSl9LnR2LWNvbnRyb2wtZmllbGRzZXQgLnR2LWNvbnRyb2wtaW5wdXQuaS1kaXNhYmxlZDo6cGxhY2Vob2xkZXIsLnR2LWNvbnRyb2wtZmllbGRzZXQgLnR2LWNvbnRyb2wtaW5wdXRbZGlzYWJsZWRdOjpwbGFjZWhvbGRlciwudHYtY29udHJvbC1maWVsZHNldCAudHYtY29udHJvbC1udW1iZXItaW5wdXRfX2lucHV0LmktZGlzYWJsZWQ6OnBsYWNlaG9sZGVyLC50di1jb250cm9sLWZpZWxkc2V0IC50di1jb250cm9sLW51bWJlci1pbnB1dF9faW5wdXRbZGlzYWJsZWRdOjpwbGFjZWhvbGRlciwudHYtY29udHJvbC1maWVsZHNldCAudHYtY29udHJvbC1zZWxlY3RfX2NvbnRyb2wuaS1kaXNhYmxlZDo6cGxhY2Vob2xkZXIsLnR2LWNvbnRyb2wtZmllbGRzZXQgLnR2LWNvbnRyb2wtc2VsZWN0X19jb250cm9sW2Rpc2FibGVkXTo6cGxhY2Vob2xkZXIsLnR2LWNvbnRyb2wtZmllbGRzZXQgc2VsZWN0LnR2LWNvbnRyb2wtc2VsZWN0LmktZGlzYWJsZWQ6OnBsYWNlaG9sZGVyLC50di1jb250cm9sLWZpZWxkc2V0IHNlbGVjdC50di1jb250cm9sLXNlbGVjdFtkaXNhYmxlZF06OnBsYWNlaG9sZGVye2NvbG9yOnZhcigtLWNvbG9yLWljb25zKX1bZGF0YS10aGVtZT1saWdodF17LS1fMC1FWFJ4OnZhcigtLWNvbG9yLWNvbGQtZ3JheS0xNTApfVtkYXRhLXRoZW1lPWRhcmtdey0tXzAtRVhSeDp2YXIoLS1jb2xvci1jb2xkLWdyYXktNzUwKX0udHYtY29udHJvbC1pbnB1dHtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLWJvZHktYmcpO2JvcmRlci1jb2xvcjp2YXIoLS1jb2xvci1ib3JkZXIpO2JvcmRlci1yYWRpdXM6MnB4O2JvcmRlci1zdHlsZTpzb2xpZDtib3JkZXItd2lkdGg6MXB4O2JveC1zaXppbmc6Ym9yZGVyLWJveDtjb2xvcjp2YXIoLS1jb2xvci10ZXh0LXJlZ3VsYXIpO2Rpc3BsYXk6YmxvY2s7Zm9udC1zaXplOjEzcHg7aGVpZ2h0OjM0cHg7cGFkZGluZzowIDEycHg7d2lkdGg6MTAwJTstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6dHJhbnNwYXJlbnQ7LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7YXBwZWFyYW5jZTpub25lO3RyYW5zaXRpb246Ym9yZGVyLWNvbG9yIC4zNXMgZWFzZSxiYWNrZ3JvdW5kLWNvbG9yIC4zNXMgZWFzZX0udHYtY29udHJvbC1pbnB1dDo6cGxhY2Vob2xkZXJ7Y29sb3I6dmFyKC0tY29sb3ItcGxhY2Vob2xkZXIpO29wYWNpdHk6MX0udHYtY29udHJvbC1pbnB1dDotd2Via2l0LWF1dG9maWxsey13ZWJraXQtdGV4dC1maWxsLWNvbG9yOnZhcigtLWNvbG9yLWNvbGQtZ3JheS02NTApIWltcG9ydGFudDtib3gtc2hhZG93Omluc2V0IDAgMCAwIDEwMDBweCAjZmZmIWltcG9ydGFudH0udHYtY29udHJvbC1pbnB1dC0tc2l6ZV94c21hbGx7aGVpZ2h0OjE5cHh9LnR2LWNvbnRyb2wtaW5wdXQtLXNpemVfc21hbGx7aGVpZ2h0OjI3cHh9LnR2LWNvbnRyb2wtaW5wdXQtLXNpemVfbGFyZ2V7Zm9udC1zaXplOjE2cHg7aGVpZ2h0OjQ4cHh9LnR2LWNvbnRyb2wtaW5wdXQtLWNvbm5lY3R7Ym9yZGVyLWlubGluZS1lbmQ6MDtib3JkZXItaW5saW5lLXN0YXJ0OjA7Ym9yZGVyLXJhZGl1czowfS50di1jb250cm9sLWlucHV0LS1jb25uZWN0X2xlZnR7Ym9yZGVyLWVuZC1zdGFydC1yYWRpdXM6MDtib3JkZXItaW5saW5lLXN0YXJ0Om5vbmU7Ym9yZGVyLXN0YXJ0LXN0YXJ0LXJhZGl1czowfS50di1jb250cm9sLWlucHV0LS1jb25uZWN0X3JpZ2h0e2JvcmRlci1lbmQtZW5kLXJhZGl1czowO2JvcmRlci1pbmxpbmUtZW5kOm5vbmU7Ym9yZGVyLXN0YXJ0LWVuZC1yYWRpdXM6MH0udHYtY29udHJvbC1pbnB1dC0tY29ubmVjdF9yaWdodCNpZF91c2VybmFtZTpkaXIocnRsKXtkaXJlY3Rpb246bHRyO3RleHQtYWxpZ246cmlnaHR9QG1lZGlhIChhbnktaG92ZXI6aG92ZXIpey50di1jb250cm9sLWlucHV0OmhvdmVye2JvcmRlci1jb2xvcjp2YXIoLS1jb2xvci1ib3JkZXItaG92ZXIpO3RyYW5zaXRpb24tZHVyYXRpb246NjBtc319LnR2LWNvbnRyb2wtaW5wdXQ6Zm9jdXN7Ym9yZGVyLWNvbG9yOnZhcigtLWNvbG9yLXR2LWJsdWUtNTAwKSFpbXBvcnRhbnQ7dHJhbnNpdGlvbi1kdXJhdGlvbjo2MG1zfS50di1jb250cm9sLWlucHV0W3JlYWRvbmx5XXtib3JkZXItY29sb3I6dmFyKC0tXzAtRVhSeCk7Y29sb3I6dmFyKC0tY29sb3ItY29sZC1ncmF5LTQ1MCl9LnR2LWNvbnRyb2wtaW5wdXRbcmVhZG9ubHldOmZvY3Vze2JvcmRlci1jb2xvcjp2YXIoLS1jb2xvci1kaXNhYmxlZC1ib3JkZXItYW5kLWNvbG9yKSFpbXBvcnRhbnR9QG1lZGlhIChhbnktaG92ZXI6aG92ZXIpey50di1jb250cm9sLWlucHV0W3JlYWRvbmx5XTpob3Zlcntib3JkZXItY29sb3I6dmFyKC0tY29sb3ItZGlzYWJsZWQtYm9yZGVyLWFuZC1jb2xvcikhaW1wb3J0YW50fX0udHYtY29udHJvbC1pbnB1dC5pLWRpc2FibGVkLC50di1jb250cm9sLWlucHV0W2Rpc2FibGVkXXtib3JkZXItY29sb3I6dmFyKC0tY29sb3ItZGlzYWJsZWQtYm9yZGVyLWFuZC1jb2xvcikhaW1wb3J0YW50O2NvbG9yOnZhcigtLWNvbG9yLWRpc2FibGVkLWJvcmRlci1hbmQtY29sb3IpIWltcG9ydGFudH0udHYtY29udHJvbC1pbnB1dC5pLWRpc2FibGVkOjpwbGFjZWhvbGRlciwudHYtY29udHJvbC1pbnB1dFtkaXNhYmxlZF06OnBsYWNlaG9sZGVye2NvbG9yOnZhcigtLWNvbG9yLWRpc2FibGVkLWJvcmRlci1hbmQtY29sb3IpIWltcG9ydGFudH1AbWVkaWEgKGFueS1ob3Zlcjpob3Zlcil7LnR2LWNvbnRyb2wtaW5wdXQuaS1kaXNhYmxlZDpob3ZlciwudHYtY29udHJvbC1pbnB1dFtkaXNhYmxlZF06aG92ZXJ7Ym9yZGVyLWNvbG9yOnZhcigtLWNvbG9yLWRpc2FibGVkLWJvcmRlci1hbmQtY29sb3IpIWltcG9ydGFudH19LnR2LWNvbnRyb2wtaW5wdXQuaS1lcnJvcntib3JkZXItY29sb3I6dmFyKC0tY29sb3ItcmlwZS1yZWQtNDAwKSFpbXBvcnRhbnR9QG1lZGlhIChhbnktaG92ZXI6aG92ZXIpey50di1jb250cm9sLWlucHV0LmktZXJyb3I6aG92ZXJ7Ym9yZGVyLWNvbG9yOnZhcigtLWNvbG9yLXJpcGUtcmVkLTQwMCkhaW1wb3J0YW50fX0udHYtY29udHJvbC1pbnB1dC5pLWVycm9yOmZvY3Vze2JvcmRlci1jb2xvcjp2YXIoLS1jb2xvci1yaXBlLXJlZC01MDApIWltcG9ydGFudH0udHYtY29udHJvbC1pbnB1dC5pLXN1Y2Nlc3N7Ym9yZGVyLWNvbG9yOnZhcigtLWNvbG9yLXN1Y2Nlc3MpIWltcG9ydGFudH1AbWVkaWEgKGFueS1ob3Zlcjpob3Zlcil7LnR2LWNvbnRyb2wtaW5wdXQuaS1zdWNjZXNzOmhvdmVye2JvcmRlci1jb2xvcjp2YXIoLS1jb2xvci1zdWNjZXNzLWhvdmVyKSFpbXBvcnRhbnR9fS50di1jb250cm9sLWlucHV0Lmktc3VjY2VzczphY3RpdmUsLnR2LWNvbnRyb2wtaW5wdXQuaS1zdWNjZXNzOmZvY3Vze2JvcmRlci1jb2xvcjp2YXIoLS1jb2xvci1zdWNjZXNzLWFjdGl2ZSkhaW1wb3J0YW50fS50di1jb250cm9sLWlucHV0LS1waG9uZXtkaXJlY3Rpb246bHRyO3RleHQtYWxpZ246c3RhcnR9"}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/93426.0083d163d728bff784d9.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:13.042Z","timestamp":1785148033042,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/93426.0083d163d728bff784d9.js HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:13 GMT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a61b1a9-dfef\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Thu, 23 Jul 2026 06:16:09 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/23/2026 10:17:25\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 7df7c5b66e066e4d789b1722fb3db375\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":57327,"size_decoded":21041,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, Unicode text, UTF-8 text, with very long lines (3069)","md5":"2d347eb2f7b046ec91197c1181d0e178","sha1":"fa3f74deaffe52fd98be22519cbaf8bdaab25947","sha256":"fb7eabec75f8061e8b8fc70989b366069567cd7a0d2cd1a967ea3d6ca229cd65","sha512":"6dfe90357513672ec3cb8f8c8d0c67ae193c641e15eaeb723bf4a2748ee7b3d22bb3fdf28d26b845a0b94c9893fac86c325ec3b65c99d6c7edc47634f2033447","ssdeep":"1536:6J/J5J4hb3JAHbuOrju2mA83n6XAtKD/BHJMs3v5c1W0U9z51qKrDGwPzPAIF7Vg:vhb3JAHtVmAdDUgQlbF","tlshash":"c6430856b251246721da00eba077100bba3e55d5744484bdb13cdcce26aec8eb2b7fbd","first_seen":"2026-07-23T13:54:09.127319Z","last_seen":"2026-07-27T12:53:06.155981Z","times_seen":292,"resource_available":true,"data":"InVzZSBzdHJpY3QiOyhzZWxmLndlYnBhY2tDaHVua3RyYWRpbmd2aWV3PXNlbGYud2VicGFja0NodW5rdHJhZGluZ3ZpZXd8fFtdKS5wdXNoKFtbOTM0MjZdLHsyNzcwMjkoZSx0LG8peygwLG8oMzYzMjY5KS5zZXRDbGFzc2VzKSgpfSw4NDI5ODMoZSx0LG8pe3ZhciBuPW8oMTUyNjk5KSxpPW8oMzg2OTMxKSxzPW8oMzg0MDE3KSxyPW8oMTUwMTUwKSxhPW8oMTYwMjk2KSxsPW8oOTMyMzY1KSxjPW8oMjIxMDYxKTtjb25zdCBoPSgwLGMuZ2V0TG9nZ2VyKSgiQ29tbW9uLkV2ZXJjb29raWUiKTtvKDQ2NzE1OCk7Y29uc3QgZD1uZXcgd2luZG93LmV2ZXJjb29raWUoe2RvbWFpbjooMCxhLmlzUHJvZCkoKT8iLnRyYWRpbmd2aWV3LmNvbSI6bG9jYXRpb24uaG9zdG5hbWUsbHNvOiExfSksdT0oMCxjLmdldExvZ2dlcikoIkNvbW1vbi5FdmVyY29va2llIik7d2luZG93LlRyYWRpbmdWaWV3PXdpbmRvdy5UcmFkaW5nVmlld3x8e307Y29uc3QgbT0vXlswLTlhLWZdezh9LVswLTlhLWZdezR9LVsxLTVdWzAtOWEtZl17M30tWzg5YWJdWzAtOWEtZl17M30tWzAtOWEtZl17MTJ9JC9pO2NsYXNzIGd7Y29uc3RydWN0b3IoKXt0aGlzLl9jb29raWVOYW1lPSJ0dl9lY3VpZCIsdGhpcy5fZW52PW51bGwsdGhpcy5jaGVjaz0oKT0+e2lmKHRoaXMuX2lzRWNOb3RBdmFpbGFibGUoKXx8bC5UVkxvY2FsU3RvcmFnZS5nZXRJdGVtKCJfdHZfZWNfaWdub3JlX3VzZXJuYW1lIik9PT13aW5kb3cudXNlci51c2VybmFtZSlyZXR1cm47Y29uc3QgZT13aW5kb3cudXNlci5pZDt0aGlzLl9nZXRFY1VpZHMoKS5jYXRjaCgoZT0+e3UubG9nV2FybihgRXJyb3IgdGhyb3duIGluc2lkZSBnZXRFY1VpZHMoKS4gTGVhdmUgZXZlcmNvb2tpZSBkYXRhIHVudG91Y2hlZC4gVXNlcjogJHt3aW5kb3cudXNlci51c2VybmFtZX0gKCR7d2luZG93LnVzZXIuaWR9KVxuQWN0dWFsIGVycm9yOiAke2V9YCl9KSkudGhlbigodD0+e2lmKHZvaWQgMD09PXQpcmV0dXJuIHZvaWQgdS5sb2dXYXJuKGBnZXRFY1VpZHMoKSByZXR1cm5lZCBubyBkYXRhLiBMZWF2ZSBldmVyY29va2llIGRhdGEgdW50b3VjaGVkLiBVc2VyOiAke3dpbmRvdy51c2VyLnVzZXJuYW1lfSAoJHt3aW5kb3cudXNlci5pZH0pYCk7bGV0IG49dC5sb2NhbEVjVWlkO2NvbnN0IGk9dC5yZW1vdGVFY1VpZHM7biYmbS50ZXN0KG4pfHwobj0oMCxyLmd1aWQpKCksZC5zZXQodGhpcy5fY29va2llTmFtZSxuKSk7Y29uc3QgYT10PT57dC5zdWJzY3JpcHRpb25fY2FuY2VsZWQmJlByb21pc2UuYWxsKFtvLmUoNDkzODApLG8uZSg1MjM5Niksby5lKDIwMzU0KSxvLmUoNzQ4MzApLG8uZSgxODQwMCksby5lKDQzNDMzKSxvLmUoMzIzODcpLG8uZSg0ODAyNyldKS50aGVuKG8uYmluZChvLDY2NTMxOCkpLnRoZW4oKGU9PmUuY3JlYXRlVHJpYWxDYW5jZWxlZERpYWxvZygpKSksZT09PXdpbmRvdy51c2VyLmlkJiZ0LmlzX3N1c3BpY2lvdXM/bC5UVkxvY2FsU3RvcmFnZS5zZXRJdGVtKCJpc19zdXNwaWNpb3VzIiwiMSIpOmwuVFZMb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgiaXNfc3VzcGljaW91cyIpfTtpJiYwIT09aS5sZW5ndGgmJi0xIT09aS5pbmRleE9mKG4pfHxlIT09d2luZG93LnVzZXIuaWR8fGZ1bmN0aW9uKGUpe2NvbnN0IHQ9bmV3IEZvcm1EYXRhO3JldHVybiB0LmFwcGVuZCgiZWN1aWQiLGUpLCgwLHMuZmV0Y2gpKCIvYWNjb3VudHMvc2V0LWVjdWlkLyIse2JvZHk6dCxjcmVkZW50aWFsczoiaW5jbHVkZSIsbWV0aG9kOiJQT1NUIn0pLnRoZW4oKGU9PntpZihlLm9rKXJldHVybiBlLmpzb24oKS5jYXRjaCgoZT0+e2gubG9nV2FybihgRXJyb3IgaW4gcmVwb25zZS5qc29uKCkgb2YgL2FjY291bnRzL3NldC1lY3VpZC8uIFVzZXI6ICR7d2luZG93LnVzZXIudXNlcm5hbWV9ICgke3dpbmRvdy51c2VyLmlkfSlcbkFjdHVhbCBlcnJvcjogJHtlfWApfSkpO3Rocm93IG5ldyBFcnJvcigiVW5hYmxlIHRvIHNldCByZW1vdGUgZWN1aWRzLiBSZXNwb25zZSB3YXMgbm90IE9LIil9KSl9KG4pLnRoZW4oYSl9KSkuY2F0Y2goKGU9Pnt1LmxvZ0Vycm9yKGUubWVzc2FnZStgIFVzZXI6ICR7d2luZG93LnVzZXIudXNlcm5hbWV9ICgke3dpbmRvdy51c2VyLmlkfSlgKX0pKX0sdGhpcy5faXNFY05vdEF2YWlsYWJsZSgpfHwodGhpcy5fZW52PSgwLGEuZW52aXJvbm1lbnQpKCksKDAsYS5pc0RlYnVnKSgpJiYodGhpcy5fY29va2llTmFtZSs9Il8iK3RoaXMuX2VudikpfV9pc0VjTm90QXZhaWxhYmxlKCl7cmV0dXJuIHdpbmRvdy5UcmFkaW5nVmlldy5vbldpZGdldD8uKCl8fCF3aW5kb3cudXNlcn1fZ2V0TG9jYWxFY1VpZCgpe3JldHVybiBuZXcgUHJvbWlzZSgoZT0+e2QuZ2V0KHRoaXMuX2Nvb2tpZU5hbWUsKHQ9PntlKHQpfSkpfSkpfV9nZXRFY1VpZHMoKXtyZXR1cm4gbmV3IFByb21pc2UoKChlLHQpPT57bGV0IG87dGhpcy5fZ2V0TG9jYWxFY1VpZCgpLnRoZW4oKGU9PihvPWUsZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyBQcm9taXNlKCgodCxvKT0+e2NvbnN0IG49bmV3IEZvcm1EYXRhO2UmJm4uYXBwZW5kKCJsb2NhbF9lY3VpZCIsZSksKDAscy5mZXRjaCkoIi9hY2NvdW50cy9nZXQtZWN1aWQvIix7Ym9keTpuLGNyZWRlbnRpYWxzOiJpbmNsdWRlIixtZXRob2Q6IlBPU1QifSkudGhlbigoZT0+e2lmKGUub2spcmV0dXJuIGUuanNvbigpLmNhdGNoKChlPT57aC5sb2dXYXJuKGBFcnJvciBpbiByZXBvbnNlLmpzb24oKSBvZiAvYWNjb3VudHMvZ2V0LWVjdWlkLy4gVXNlcjogJHt3aW5kb3cudXNlci51c2VybmFtZX0gKCR7d2luZG93LnVzZXIuaWR9KVxuQWN0dWFsIGVycm9yOiAke2V9YCl9KSk7dGhyb3cgbmV3IEVycm9yKCJVbmFibGUgdG8gZ2V0IHJlbW90ZSBlY3VpZHMuIFJlc3BvbnNlIHdhcyBub3QgT0siKX0pKS50aGVuKChlPT57dChlKX0pKS5jYXRjaCgoZT0+e28oZSl9KSl9KSl9KGUpKSkpLnRoZW4oKHQ9PntpZih2b2lkIDA9PT10KXRocm93IG5ldyBFcnJvcihgZ2V0UmVtb3RlRWNVaWRzKCkgcmV0dXJuZWQgbm8gcmVzcG9uc2UuIFVzZXI6ICR7d2luZG93LnVzZXIudXNlcm5hbWV9ICgke3dpbmRvdy51c2VyLmlkfSlgKTtlKHtsb2NhbEVjVWlkOm8sCnJlbW90ZUVjVWlkczp0LmVjdWlkc30pfSkpLmNhdGNoKChlPT57dChlKX0pKX0pKX19dmFyIF89byg2MTM4NzApLHA9bygyMzk3MTkpLGY9bygzMTg5NzQpLHc9bygxMTczMTMpLHY9byg3MjcwOSkseT1vKDIzNTcyNCksYj1vKDkyNjk5NSk7dmFyIFM9bygxNzk3NzEpLE49bygzNDQ3ODUpLFQ9byg3NDk2NDgpO2Z1bmN0aW9uIEUoZSx0PSJ4Iil7bGV0IG89ITE7cmV0dXJuIngiIT09dCYmImJvdGgiIT09dHx8KG89b3x8ZS5vZmZzZXRXaWR0aDxlLnNjcm9sbFdpZHRoKSwieSIhPT10JiYiYm90aCIhPT10fHwobz1vfHxlLm9mZnNldEhlaWdodDxlLnNjcm9sbEhlaWdodCksb31mdW5jdGlvbiBDKGUsdD0ieCIpe2Zvcihjb25zdCBvIG9mIEFycmF5LmZyb20oZS5jaGlsZHJlbikpaWYobyBpbnN0YW5jZW9mIEhUTUxFbGVtZW50JiYoRShvLHQpfHxDKG8sdCkpKXJldHVybiEwO3JldHVybiExfWZ1bmN0aW9uIHgoZSl7bGV0IHQ9IngiO3JldHVybiBlLm1hdGNoZXMoIi5hcHBseS1vdmVyZmxvdy10b29sdGlwLS1kaXJlY3Rpb25fYm90aCIpP3Q9ImJvdGgiOmUubWF0Y2hlcygiLmFwcGx5LW92ZXJmbG93LXRvb2x0aXAtLWRpcmVjdGlvbl95IikmJih0PSJ5IiksdH1mdW5jdGlvbiBMKGUpe2NvbnN0IHQ9ZS5nZXRBdHRyaWJ1dGUoImRhdGEtb3ZlcmZsb3ctdG9vbHRpcC1odG1sIik7aWYodClyZXR1cm57dHlwZToiaHRtbCIsZGF0YTp0fTtjb25zdCBvPWUuZ2V0QXR0cmlidXRlKCJkYXRhLW92ZXJmbG93LXRvb2x0aXAtdGV4dCIpO2lmKG8pcmV0dXJue3R5cGU6InRleHQiLGRhdGE6b307aWYoZS5tYXRjaGVzPy4oIi5hcHBseS1vdmVyZmxvdy10b29sdGlwLS1hbGxvdy10ZXh0Iikpe3JldHVybnt0eXBlOiJ0ZXh0IixkYXRhOmUudGV4dENvbnRlbnR8fCIifX1jb25zdCBuPUFycmF5LmZyb20oZS5jaGlsZE5vZGVzKS5yZWR1Y2UoKChlLHQpPT4odC5ub2RlVHlwZT09PU5vZGUuVEVYVF9OT0RFJiZlLnB1c2godC50ZXh0Q29udGVudHx8IiIpLGUpKSxbXSkuam9pbigiIikudHJpbSgpO3JldHVybiBuP3t0eXBlOiJ0ZXh0IixkYXRhOm59Ont0eXBlOiJub25lIn19ZnVuY3Rpb24gRChlLHQpe2xldCBvPSExO2NvbnN0IG49ZS5jaGlsZHJlbjtmb3IobGV0IGU9MDtlPG4ubGVuZ3RoO2UrKyl7Y29uc3QgaT1uW2VdO2lmKGkgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCYmRShpLHQpKXtvPSEwO2JyZWFrfX1yZXR1cm4gb31mdW5jdGlvbiBGKGUpe2NvbnN0IHQ9ZS50YXJnZXQ7aWYodCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50JiYodC5tYXRjaGVzKCIuYXBwbHktb3ZlcmZsb3ctdG9vbHRpcC1mb2N1cyIpfHx0LnF1ZXJ5U2VsZWN0b3IoIi5hcHBseS1vdmVyZmxvdy10b29sdGlwLWZvY3VzIikpKXtjb25zdCBlPXQubWF0Y2hlcygiLmFwcGx5LW92ZXJmbG93LXRvb2x0aXAiKT90OnQucXVlcnlTZWxlY3RvcigiLmFwcGx5LW92ZXJmbG93LXRvb2x0aXAiKSxvPXgoZSk7aWYoZS5tYXRjaGVzKCIuYXBwbHktb3ZlcmZsb3ctdG9vbHRpcC0tY2hlY2stY2hpbGRyZW4tcmVjdXJzaXZlbHkiKSl7aWYoIUMoZSxvKSlyZXR1cm59ZWxzZSBpZihlLm1hdGNoZXMoIi5hcHBseS1vdmVyZmxvdy10b29sdGlwLS1jaGVjay1jaGlsZHJlbiIpKXtpZighRChlLG8pKXJldHVybn1lbHNlIGlmKCFFKGUsbykpcmV0dXJuOygwLE4uc2hvd09uRWxlbWVudCkodCx7Y29udGVudDpMKGUpfSk7Y29uc3Qgbj0oKT0+eygwLE4uaGlkZSkoKSx0LnJlbW92ZUV2ZW50TGlzdGVuZXIoImJsdXIiLG4pLHQucmVtb3ZlRXZlbnRMaXN0ZW5lcigiYWN0aXZlLWRlc2NlbmRhbnQtYmx1ciIsbil9O3QuYWRkRXZlbnRMaXN0ZW5lcigiYmx1ciIsbiksdC5hZGRFdmVudExpc3RlbmVyKCJhY3RpdmUtZGVzY2VuZGFudC1ibHVyIixuKX19KDAsVC53aGVuRG9jdW1lbnRSZWFkeSkoKCgpPT57ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2VlbnRlciIsKGU9Pntjb25zdCB0PWUudGFyZ2V0O2lmKHQgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCYmdC5tYXRjaGVzKCIuYXBwbHktb3ZlcmZsb3ctdG9vbHRpcCIpKXtjb25zdCBlPXgodCk7aWYodC5tYXRjaGVzKCIuYXBwbHktb3ZlcmZsb3ctdG9vbHRpcC0tY2hlY2stY2hpbGRyZW4tcmVjdXJzaXZlbHkiKSl7aWYoIUModCxlKSlyZXR1cm59ZWxzZSBpZih0Lm1hdGNoZXMoIi5hcHBseS1vdmVyZmxvdy10b29sdGlwLS1jaGVjay1jaGlsZHJlbiIpKXtpZighRCh0LGUpKXJldHVybn1lbHNlIGlmKCFFKHQsZSkpcmV0dXJuOygwLE4uc2hvd09uRWxlbWVudCkodCx7Y29udGVudDpMKHQpfSk7Y29uc3Qgbz0oKT0+eygwLE4uaGlkZSkoKSxbIm1vdXNlbGVhdmUiLCJtb3VzZWRvd24iXS5mb3JFYWNoKChlPT50LnJlbW92ZUV2ZW50TGlzdGVuZXIoZSxvKSkpfTtbIm1vdXNlbGVhdmUiLCJtb3VzZWRvd24iXS5mb3JFYWNoKChlPT50LmFkZEV2ZW50TGlzdGVuZXIoZSxvKSkpfX0pLCEwKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJmb2N1cyIsRiwhMCksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiYWN0aXZlLWRlc2NlbmRhbnQtZm9jdXMiLEYsITApfSkpO3ZhciBrPW8oOTQ4MzgwKSxQPW8oOTY0NDg2KSxNPW8oODcyNTE4KTtmdW5jdGlvbiBPKGUpe2xldCB0LG89ITE7cmV0dXJuKCk9PihvfHwobz0hMCx0PWUoKSksdCl9dmFyIEk9byg1NzAxOTMpLEg9byg2ODIzODEpLFY9bygzODIyNDIpO2NvbnN0IEE9KGU9ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KT0+KDAsVi5nZXRTZWxlY3RvclRyZWVXYWxrZXIpKGUsSC5GT0NVU0FCTEVfU0VMRUNUT1IpO2NvbnN0IFI9YFske0kuRk9DVVNfVFJBUF9EQVRBX0FUVFJJQlVURX09InRydWUiXWA7Y2xhc3MgVXtjb25zdHJ1Y3Rvcigpe3RoaXMuX2hhbmRsZU1vdXNlRG93bj0oKT0+e3RoaXMuX2ZvcndhcmRUYWI9dm9pZCAwfSx0aGlzLl9oYW5kbGVLZXlEb3duPWU9Pnt0aGlzLl9mb3J3YXJkVGFiPXZvaWQgMCxbOSx5Lk1vZGlmaWVycy5TaGlmdCs5XS5pbmNsdWRlcygoMCx5Lmhhc2hGcm9tRXZlbnQpKGUpKSYmKHRoaXMuX2ZvcndhcmRUYWI9IWUuc2hpZnRLZXkpfSx0aGlzLl9oYW5kbGVGb2N1cz1lPT57Y29uc3QgdD1lLnRhcmdldAo7aWYodm9pZCAwPT09dGhpcy5fZm9yd2FyZFRhYnx8ISh0IGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpKXJldHVybjtjb25zdCBvPXRoaXMuX2ZpbmREZWVwZXN0Rm9jdXNUcmFwRWxlbWVudChkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQpO2lmKCEobyBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KXx8IW98fG8uY29udGFpbnModCkpcmV0dXJuO2UucHJldmVudERlZmF1bHQoKSxlLnN0b3BQcm9wYWdhdGlvbigpLHQuYmx1cigpO2NvbnN0IG49by5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbih0KTtpZihuJk5vZGUuRE9DVU1FTlRfUE9TSVRJT05fUFJFQ0VESU5HfHxuJk5vZGUuRE9DVU1FTlRfUE9TSVRJT05fRk9MTE9XSU5HKXtjb25zdCBlPXRoaXMuX2ZvcndhcmRUYWI/QihvKTpCKG8sITApO2UgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCYmZS5mb2N1cygpfX0sZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIix0aGlzLl9oYW5kbGVGb2N1cyx7Y2FwdHVyZTohMH0pLGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIix0aGlzLl9oYW5kbGVLZXlEb3duLHtjYXB0dXJlOiEwfSksZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsdGhpcy5faGFuZGxlTW91c2VEb3duLHtjYXB0dXJlOiEwfSl9ZGVzdHJveSgpe2RvY3VtZW50LmRvY3VtZW50RWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJmb2N1cyIsdGhpcy5faGFuZGxlRm9jdXMse2NhcHR1cmU6ITB9KSxkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsdGhpcy5faGFuZGxlS2V5RG93bix7Y2FwdHVyZTohMH0pLGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZWRvd24iLHRoaXMuX2hhbmRsZU1vdXNlRG93bix7Y2FwdHVyZTohMH0pfV9maW5kRGVlcGVzdEZvY3VzVHJhcEVsZW1lbnQoZSl7Y29uc3QgdD1lLnF1ZXJ5U2VsZWN0b3JBbGwoUik7bGV0IG89bnVsbCxuPS0xO3JldHVybiB0LmZvckVhY2goKHQ9Pntjb25zdCBpPXRoaXMuX2NhbGN1bGF0ZVBhcmVudENvdW50KHQsZSk7aT5uJiYobj1pLG89dCl9KSksb31fY2FsY3VsYXRlUGFyZW50Q291bnQoZSx0KXtsZXQgbz0wLG49ZS5wYXJlbnRFbGVtZW50O2Zvcig7biYmbiE9PXQ7KSJ0cnVlIj09PW4uZ2V0QXR0cmlidXRlKEkuRk9DVVNfVFJBUF9EQVRBX0FUVFJJQlVURSkmJm8rKyxuPW4ucGFyZW50RWxlbWVudDtyZXR1cm4gb319Y29uc3QgJD1PKCgoKT0+bmV3IFUpKTtmdW5jdGlvbiBCKGUsdCl7cmV0dXJuIHQ/ZnVuY3Rpb24oZSl7Y29uc3QgdD1BKGUpO3JldHVybigwLFYuZ2V0TGFzdERlc2NlbmRhbnQpKHQpfShlKTpmdW5jdGlvbihlKXtjb25zdCB0PUEoZSk7cmV0dXJuKDAsVi5nZXRGaXJzdERlc2NlbmRhbnQpKHQpfShlKX1jb25zdCBqPU8oKCgpPT57JCgpfSkpO3ZhciBHPW8oNDUwMTQwKSxXPW8oOTk1Njc4KTt2YXIgcT1vKDUwNzQyNiksSz1vKDE0MTMxKSxKPW8oNTQ5MTk5KSxYPW8oMTU3OTE3KSx6PW8oODI3MDEpLFk9bygzODE1MTcpLFE9byg3NzkzODkpO2xldCBaLGVlO2Z1bmN0aW9uIHRlKCl7aWYod2luZG93LmluaXREYXRhLmxmcyl7Y29uc3QgZT1kb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJqcy1hZG1pbi13YXJuaW5nIilbMF07ZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChlKX1sZXQgZT0hMDtbL15cL2NoYXJ0XC8vLC9eXC9zaGFyZS15b3VyLWxvdmVcLy8sL15cL3BpbmVcLy9dLmZvckVhY2goKHQ9Pnt0LnRlc3Qod2luZG93LmxvY2F0aW9uLnBhdGhuYW1lKSYmKGU9ITEpfSkpLGUmJndpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKX1mdW5jdGlvbiBvZShlKXt3aW5kb3cudXNlcj0oMCxQLmRlZXBFeHRlbmQpKHt9LGUpLHdpbmRvdy5UcmFkaW5nVmlldy5jaGFuZ2VMb2dpblN0YXRlKCEwKX1mdW5jdGlvbiBuZShlKXt7Y29uc3QgZT1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7ZS5jbGFzc0xpc3QudG9nZ2xlKCJpcy1hdXRoZW50aWNhdGVkIix3aW5kb3cuaXNfYXV0aGVudGljYXRlZCksZS5jbGFzc0xpc3QudG9nZ2xlKCJpcy1ub3QtYXV0aGVudGljYXRlZCIsIXdpbmRvdy5pc19hdXRoZW50aWNhdGVkKX13aW5kb3cuVFZTZXR0aW5ncyYmd2luZG93LlRWU2V0dGluZ3Muc3luYyh3aW5kb3cudXNlci5zZXR0aW5ncyksd2luZG93LmlzX2F1dGhlbnRpY2F0ZWQ/KGUmJiExIT09d2luZG93LnVzZXIucHJvZmlsZV9kYXRhX2ZpbGxlZHx8dm9pZCAwPT09ZWV8fGVlLmNoZWNrKCksZXx8KFByb21pc2UuYWxsKFtvLmUoNzEyMzcpLG8uZSgzMTU1Nyksby5lKDMyMzg3KSxvLmUoNjQ2MzIpXSkudGhlbihvLmJpbmQobyw3NTQyMTgpKS50aGVuKChlPT5lLm9mZmVyQnV0dG9uTG9naW5TdGF0ZUNoYW5nZUluaXQoKSkpLCgwLGYub25Hb1BybykoKSYmd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpKSwhMT09PXdpbmRvdy51c2VyLnByb2ZpbGVfZGF0YV9maWxsZWQmJigoMCxmLmNoZWNrUGFnZVR5cGUpKCJtb2JpbGUiKXx8KDAsdy5pc09uTW9iaWxlQXBwUGFnZSkoImFueSIpfHx3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUuc3RhcnRzV2l0aCgiL3ByaXZhY3ktcG9saWN5Iil8fHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZS5zdGFydHNXaXRoKCIvcG9saWNpZXMiKXx8KDAsVC53aGVuRG9jdW1lbnRSZWFkeSkoKCgpPT57KDAsXy5zaG93U2lnbk1vZGFsKSh7bW9kZToiY3JlYXRlLWFjY291bnQiLG9uVW5tb3VudEV2ZW50OigpPT57d2luZG93LnVzZXIuc29jaWFsX3JlZ2lzdHJhdGlvbj8oby5lKDQyNDAyKS50aGVuKG8uYmluZChvLDk5MzY2MSkpLnRoZW4oKCh7cmVnaXN0cmF0aW9uRXZlbnQ6ZX0pPT57ZSgiU29jaWFsIil9KSksKDAsSy50cmFja0dUYWdBZHNFdmVudCkoSy5HVGFnRXZlbnQuUmVnaXN0cmF0aW9uQ29tcGxldGVkKSwoMCxKLnRyYWNrVHdpdHRlckV2ZW50KShKLlR3aXR0ZXJFdmVudC5SZWdpc3RyYXRpb25Db21wbGV0ZWQpLApkZWxldGUgd2luZG93LnVzZXIuc29jaWFsX3JlZ2lzdHJhdGlvbik6bi5UVlhXaW5kb3dFdmVudHMuZW1pdCgibG9naW5TdGF0ZUNoYW5nZSIsSlNPTi5zdHJpbmdpZnkoe2lzX2F1dGhlbnRpY2F0ZWQ6d2luZG93LmlzX2F1dGhlbnRpY2F0ZWQsdXNlcjp3aW5kb3cudXNlcn0pKX19KX0pLCEwKSwoMCxYLnRyYWNrQ21FdmVudCkoWC5DbUV2ZW50LlJlZ2lzdHJhdGlvbkNvbXBsZXRlZCksKDAsaS50cmFja0V2ZW50KSgiQ29udmVyc2lvbiIsIkZpcnN0IGxvZ2luIiksZGVsZXRlIHdpbmRvdy51c2VyLnByb2ZpbGVfZGF0YV9maWxsZWQpLHouYXZhaWxhYmxlT2ZmZXJzLnJ1bk9yVXBkYXRlKCgoKT0+e3dpbmRvdy5UcmFkaW5nVmlldy5zZXRUcmlhbEF2YWlsaWFibGUoKDAsWS5pc1RyaWFsQXZhaWxhYmxlRm9yVXNlcikod2luZG93LnVzZXIsd2luZG93LmlzX2F1dGhlbnRpY2F0ZWQpKX0pKSk6ei5hdmFpbGFibGVPZmZlcnMucnVuT3JVcGRhdGUoKGU9PntPYmplY3Qua2V5cyhlKS5mb3JFYWNoKCh0PT57Y29uc3Qgbz10O2Vbb10uYXZhaWxhYmxlX2Zvcl9hbm9uc3x8ZGVsZXRlIGVbb119KSksd2luZG93LnVzZXI9e3VzZXJuYW1lOiJHdWVzdCIsZm9sbG93aW5nOiIwIixmb2xsb3dlcnM6IjAiLGlnbm9yZV9saXN0OltdLGF2YWlsYWJsZV9vZmZlcnM6ZX0sbC5UVkxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCJ0cmlhbF9hdmFpbGlhYmxlIil9KSl9KDAsdi5yZWdpc3RlcldpbmRvdykod2luZG93KSxRLkFjdGlvbkdyb3VwLnNldE1hdGNoZWRIb3RrZXlIYW5kbGVyKChlPT57KDAsaS50cmFja0V2ZW50KSgiS2V5Ym9hcmQgU2hvcnRjdXRzIiwoMCx5Lmh1bWFuUmVhZGFibGVIYXNoKShlKSl9KSksWj13aW5kb3cubG9naW5TdGF0ZUNoYW5nZT93aW5kb3cubG9naW5TdGF0ZUNoYW5nZTp3aW5kb3cubG9naW5TdGF0ZUNoYW5nZT1uZXcgay5EZWxlZ2F0ZSxaLnN1YnNjcmliZShudWxsLG5lKSwoMCx2LmNyZWF0ZUdyb3VwKSh7ZGVzYzoiU3VwcG9ydCJ9KS5hZGQoe2Rlc2M6Ik9wZW4iLGhvdGtleTp5Lk1vZGlmaWVycy5Nb2QrMTkxLGhhbmRsZXI6KCk9PigwLGIuc2hvd1N1cHBvcnREaWFsb2cpKHtpbml0aWFsU3RhdGU6InNob3J0Y3V0cyJ9KX0pLG4uVFZYV2luZG93RXZlbnRzLm9uKCJsb2dpblN0YXRlQ2hhbmdlIiwoZT0+e2NvbnN0IHQ9SlNPTi5wYXJzZShlKTt3aW5kb3cudXNlcj10LnVzZXIsd2luZG93LmlzX2F1dGhlbnRpY2F0ZWQ9ISF0LmlzX2F1dGhlbnRpY2F0ZWQsWi5maXJlKCl9KSksbi5UVlhXaW5kb3dFdmVudHMub24oInNpZ25PdXQiLCgoKT0+e3RlKCl9KSksKCgpPT57Y29uc3QgZT0idXNlci1vYmotY2hhbmdlZCIsdD17fTt3aW5kb3cuY3Jvc3NUYWJTeW5jVXNlckF0dHI9dD0+e2NvbnN0IG89e307dCBpbnN0YW5jZW9mIEFycmF5P3QuZm9yRWFjaCgoZT0+e29bZV09d2luZG93LnVzZXJbZV19KSk6b1t0XT13aW5kb3cudXNlclt0XSxuLlRWWFdpbmRvd0V2ZW50cy5lbWl0KGUsSlNPTi5zdHJpbmdpZnkobykpfSxuLlRWWFdpbmRvd0V2ZW50cy5vbihlLChlPT57Y29uc3Qgbz1KU09OLnBhcnNlKGUpO2xldCBuO2ZvcihuIGluIG8paWYoby5oYXNPd25Qcm9wZXJ0eShuKSl7d2luZG93LnVzZXJbbl09b1tuXTsodFtuXXx8W10pLmZvckVhY2goKGU9PntlLmZpcmUob1tuXSl9KSl9fSkpfSkoKSx3aW5kb3cuVHJhZGluZ1ZpZXcuY2hhbmdlTG9naW5TdGF0ZT1lPT57d2luZG93LmlzX2F1dGhlbnRpY2F0ZWQ9ISFlLG4uVFZYV2luZG93RXZlbnRzLmVtaXQoImxvZ2luU3RhdGVDaGFuZ2UiLEpTT04uc3RyaW5naWZ5KHtpc19hdXRoZW50aWNhdGVkOndpbmRvdy5pc19hdXRoZW50aWNhdGVkLHVzZXI6d2luZG93LnVzZXJ9KSksd2luZG93LmlzX2F1dGhlbnRpY2F0ZWQmJlMuZW1pdChwLkdMT0JBTF9FVkVOVF9TSUdOX0lOX1NVQ0NFU1MpLFouZmlyZSgpfSx3aW5kb3cubG9naW5Vc2VyPW9lLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJzdG9yYWdlIiwoZT0+eyJsb2dpbl91c2VyIj09PWUua2V5JiZudWxsIT09ZS5uZXdWYWx1ZSYmb2UoSlNPTi5wYXJzZShlLm5ld1ZhbHVlKSl9KSksd2luZG93LlRyYWRpbmdWaWV3LnNpZ25PdXQ9KCk9Pntjb25zdCBlPXsuLi53aW5kb3cudXNlcn07KDAscy5mZXRjaCkoIi9hY2NvdW50cy9sb2dvdXQvIix7bWV0aG9kOiJQT1NUIixoZWFkZXJzOnthY2NlcHQ6Imh0bWwifSxjcmVkZW50aWFsczoic2FtZS1vcmlnaW4ifSkudGhlbigoKCk9Pnt3aW5kb3cuVHJhZGluZ1ZpZXcuY2hhbmdlTG9naW5TdGF0ZSghMSksbi5UVlhXaW5kb3dFdmVudHMuZW1pdCgic2lnbk91dCIpLHRlKCl9KSkuY2F0Y2goKCgpPT57d2luZG93LnVzZXI9ZSx3aW5kb3cuVHJhZGluZ1ZpZXcuY2hhbmdlTG9naW5TdGF0ZSghMCl9KSl9LGVlPW5ldyBnLHdpbmRvdy5sb2dpblJlcXVpcmVkRGVsZWdhdGU9bmV3IGsuRGVsZWdhdGUsd2luZG93LnJ1bk9yU2lnbkluPShlLHQpPT57dHx8KHQ9e30pO2NvbnN0IG89W107dC5wYWlkQWNjb3VudENoZWNrJiZvLnB1c2goKCgpPT4oMCxxLnBhaWRBY2NvdW50Q2hlY2spKHtzdWNjZXNzQnV0dG9uVGV4dDp0LnBhaWRBY2NvdW50U3VjY2Vzc0J1dHRvblRleHR9KSkpLHdpbmRvdy5pc19hdXRoZW50aWNhdGVkP28ucmVkdWNlKCgoZSx0KT0+ZS50aGVuKHQpKSxQcm9taXNlLnJlc29sdmUoKSkudGhlbihlKS5jYXRjaCgoKCk9Pnt9KSk6KDAsXy5zaG93U2lnbk1vZGFsKSh7c291cmNlOnQuc291cmNlLHNvdXJjZU1ldGE6dC5zb3VyY2VNZXRhLGZlYXR1cmU6dC5mZWF0dXJlLG1vZGU6dC5tb2RlLHNpZ25pblN1Y2Nlc3M6ZSxzdGFydFRyaWFsOnQuc3RhcnRUcmlhbCxvblVubW91bnRFdmVudDp0Lm9uVW5tb3VudEV2ZW50LHVzZXJuYW1lOnQudXNlcm5hbWV9KX0sd2luZG93LmlzX2F1dGhlbnRpY2F0ZWQmJm4uVFZYV2luZG93RXZlbnRzLm9uKCJ1c2VyLXN0YXR1cy1kZWNsYXJlZCIsKGU9Pnt3aW5kb3cudXNlci5kZWNsYXJlZF9zdGF0dXM9ZX0pKSx3aW5kb3cub25Mb2dpblN0YXRlQ2hhbmdlPW5lLHdpbmRvdy5UcmFkaW5nVmlldy5zZXRUcmlhbEF2YWlsaWFibGU9ZT0+ewpsLlRWTG9jYWxTdG9yYWdlLnNldEl0ZW0oInRyaWFsX2F2YWlsaWFibGUiLGU/IjEiOiIwIil9LHdpbmRvdy5UcmFkaW5nVmlldy5ub3RpZmljYXRpb25zQ2hhbmdlZD1uZXcgay5EZWxlZ2F0ZSxqKCksKDAsRy5pbml0TW91c2VDbGlja0F1dG9CbHVySGFuZGxlcikoKSwoMCxXLmluaXRNb2RhbFNjcm9sbExvY2tIYW5kbGVyKSh3aW5kb3csKCgpPT4oMCxNLnNldEZpeGVkQm9keVN0YXRlKSghMCkpLCgoKT0+KDAsTS5zZXRGaXhlZEJvZHlTdGF0ZSkoITEpKSl9LDMxNDEzMygpe2Z1bmN0aW9uIGUoZSl7aWYoZSBpbnN0YW5jZW9mIEVycm9yKXJldHVybiBlLnN0YWNrfHxlLm1lc3NhZ2U7dHJ5e3JldHVybiBlLm91dGVySFRNTC5zbGljZSgwLDEwMjQpfWNhdGNoe310cnl7aWYodm9pZCAwIT09ZSlyZXR1cm4gSlNPTi5zdHJpbmdpZnkoZSkuc2xpY2UoMCwxMDI0KX1jYXRjaHt9cmV0dXJuIFN0cmluZyhlKX1mdW5jdGlvbiB0KGUpe2lmKCFlKXJldHVybiBudWxsO3RyeXtyZXR1cm4gbmV3IFVSTChlKX1jYXRjaHtyZXR1cm4gbnVsbH19d2luZG93Ll9fdHZfanNfZXJyb3JzfHwod2luZG93Ll9fdHZfanNfZXJyb3JzPVtdKSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigiZXJyb3IiLCh0PT57Y29uc3Qgbz0obmV3IERhdGUpLnRvSVNPU3RyaW5nKCk7d2luZG93Ll9fdHZfanNfZXJyb3JzLnB1c2goYCR7b30gJHt0Lm1lc3NhZ2V8fCJKUyBlcnJvciJ9LiAke3QuZmlsZW5hbWV8fCI8dW5rbm93biB1cmw+In0sIGxpbmUgJHt0LmxpbmVub30sIGNvbCAke3QuY29sbm99LlxuRXJyb3I6ICR7ZSh0LmVycm9yKX1gKX0pLCExKSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigidW5oYW5kbGVkcmVqZWN0aW9uIiwodD0+e2NvbnN0IG89KG5ldyBEYXRlKS50b0lTT1N0cmluZygpO3dpbmRvdy5fX3R2X2pzX2Vycm9ycy5wdXNoKGAke299IFVuaGFuZGxlZCByZWplY3Rpb24uXG5SZWFzb246ICR7ZSh0LnJlYXNvbil9YCl9KSwhMSksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigic2VjdXJpdHlwb2xpY3l2aW9sYXRpb24iLChvPT57aWYoZnVuY3Rpb24oZSxvKXtjb25zdCBuPXQoZSksaT10KG8pO3JldHVybiEoIW58fCFpKSYmImh0dHBzOiI9PT1uLnByb3RvY29sJiYiaHR0cHM6Ij09PWkucHJvdG9jb2wmJiJzZWN1cmVwdWJhZHMuZy5kb3VibGVjbGljay5uZXQiPT09bi5ob3N0bmFtZSYmL15hZHNlcnZpY2VcLmdvb2dsZVwuW2Etei5dKyQvaS50ZXN0KGkuaG9zdG5hbWUpfShvLnNvdXJjZUZpbGUsby5ibG9ja2VkVVJJKSlyZXR1cm47Y29uc3Qgbj0obmV3IERhdGUpLnRvSVNPU3RyaW5nKCksaT0icmVwb3J0Ij09PW8uZGlzcG9zaXRpb24/IkNTUCByZXBvcnQtb25seSI6IkNTUCB2aW9sYXRpb24iO3dpbmRvdy5fX3R2X2pzX2Vycm9ycy5wdXNoKGAke259ICR7aX06ICR7by52aW9sYXRlZERpcmVjdGl2ZXx8by5lZmZlY3RpdmVEaXJlY3RpdmV9LiAke28uc291cmNlRmlsZXx8Ijx1bmtub3duIHVybD4ifSwgbGluZSAke28ubGluZU51bWJlcn0sIGNvbCAke28uY29sdW1uTnVtYmVyfS5cbkJsb2NrZWQgVVJJOiAke28uYmxvY2tlZFVSSX1cblNhbXBsZTogJHtvLnNhbXBsZX1cblRhcmdldDogJHtlKG8udGFyZ2V0KX1gKX0pLCExKX0sMjMzMzk5KGUsdCxvKXt2YXIgbj1vKDIyMTA2MSksaT1vKDkzMjM2NSk7Y29uc3Qgcz0idHYubG9nZ2VyLmxvZ2xldmVsIixyPSJ0di5sb2dnZXIubG9nSGlnaFJhdGUiLGE9KDAsbi5nZXRMb2dnZXIpKCJsb2dnZXIiKTtmdW5jdGlvbiBsKCl7dHJ5e2kuVFZMb2NhbFN0b3JhZ2Uuc2V0SXRlbShyLFN0cmluZygoMCxuLmlzSGlnaFJhdGVFbmFibGVkKSgpKSksaS5UVkxvY2FsU3RvcmFnZS5zZXRJdGVtKHMsU3RyaW5nKCgwLG4uZ2V0TG9nTGV2ZWwpKCkpKX1jYXRjaChlKXthLmxvZ1dhcm4oYENhbm5vdCBzYXZlIGxvZ2dlciBzdGF0ZSAobGV2ZWw6ICR7KDAsbi5nZXRMb2dMZXZlbCkoKX0sIGhpZ2gtcmF0ZTogJHsoMCxuLmlzSGlnaFJhdGVFbmFibGVkKSgpfSkgdG8gbG9jYWxTdG9yYWdlOiAke2UubWVzc2FnZX1gKX19d2luZG93LmxnZXQ9bi5nZXRMb2dIaXN0b3J5LHdpbmRvdy5sb249KGUsdCk9PnthLmxvZ05vcm1hbCgiRGVidWcgbG9nZ2luZyBlbmFibGVkIiksKDAsbi5sb2dnaW5nT24pKGUsdCksbCgpfSx3aW5kb3cubG9mZj0oKT0+e2EubG9nSW5mbygiRGVidWcgbG9nZ2luZyBkaXNhYmxlZCIpLCgwLG4ubG9nZ2luZ09mZikoKSxsKCl9LHdpbmRvdy5sbGV2ZWw9ZT0+e2EubG9nSW5mbygiQ2hhbmdlZCBsb2dnaW5nIGxldmVsIiksKDAsbi5zZXRMb2dMZXZlbCkoZSksbCgpfSxmdW5jdGlvbigpe2NvbnN0IGU9InRydWUiPT09aS5UVkxvY2FsU3RvcmFnZS5nZXRJdGVtKHIpOygwLG4uc2V0SGlnaFJhdGVTdGF0dXMpKGUpO2xldCB0PXBhcnNlSW50KGkuVFZMb2NhbFN0b3JhZ2UuZ2V0SXRlbShzKXx8IiIpO051bWJlci5pc05hTih0KSYmKHQ9bi5MT0dMRVZFTC5XQVJOSU5HKSwoMCxuLnNldExvZ0xldmVsKSh0KSxhLmxvZ05vcm1hbChgSW5pdCB3aXRoIHNldHRpbmdzIC0gbGV2ZWw6ICR7KDAsbi5nZXRMb2dMZXZlbCkoKX0sIGhpZ2gtcmF0ZTogJHsoMCxuLmlzSGlnaFJhdGVFbmFibGVkKSgpfWApfSgpLGEubG9nTm9ybWFsKGBTeW5jIGxvZ2dlciBhbmQgcGVyZiB0aW1lcywgbm93IGlzICR7cGVyZm9ybWFuY2Uubm93KCl9YCl9LDkyNjQxNSgpe3dpbmRvdy5UcmFkaW5nVmlldz13aW5kb3cuVHJhZGluZ1ZpZXd8fHt9fSw1NjkzOTgoZSx0LG8pe28uZCh0LHtpc0ZlYXR1cmVFbmFibGVkOigpPT51LG9uRmVhdHVyZXNTdGF0ZUNoYW5nZWQ6KCk9Pmx9KTt2YXIgbj1vKDk0ODM4MCksaT1vKDM3NzIyNikscz1vKDg1NjE5Nikscj1vKDkzMjM2NSk7Y29uc3QgYT1uZXcgbi5EZWxlZ2F0ZSxsPSgpPT5hLGM9ImZvcmNlZmVhdHVyZXRvZ2dsZS4iO2NvbnN0IGg9bmV3IGNsYXNze2VuYWJsZUZlYXR1cmUoZSl7ci5UVkxvY2FsU3RvcmFnZS5zZXRJdGVtKGMrZSwidHJ1ZSIpLGEuZmlyZShlKX1kaXNhYmxlRmVhdHVyZShlKXtyLlRWTG9jYWxTdG9yYWdlLnNldEl0ZW0oYytlLCJmYWxzZSIpLGEuZmlyZShlKX1yZXNldEZlYXR1cmUoZSl7CnIuVFZMb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShjK2UpLGEuZmlyZShlKX1vbkZlYXR1cmVzU3RhdGVDaGFuZ2VkKCl7cmV0dXJuIGF9fTtmdW5jdGlvbiBkKGUsdCl7cmV0dXJuKCFlW3RdfHwtMSE9PWVbdF0pJiYoISEoInRydWUiPT09ci5UVkxvY2FsU3RvcmFnZS5nZXRJdGVtKGMrdCl8fHdpbmRvdy5pc19hdXRoZW50aWNhdGVkJiYidHJ1ZSI9PT13aW5kb3cudXNlcj8uc2V0dGluZ3M/LltjK3RdKXx8ISgiZmFsc2UiPT09ci5UVkxvY2FsU3RvcmFnZS5nZXRJdGVtKGMrdCl8fHdpbmRvdy5pc19hdXRoZW50aWNhdGVkJiYiZmFsc2UiPT09d2luZG93LnVzZXI/LnNldHRpbmdzPy5bYyt0XSkmJighIWVbdF0mJigxPT09ZVt0XXx8KDAscy5zaG91bGRBZmZlY3RVc2VyKSh0LGVbdF0pKSkpfXdpbmRvdy5UcmFkaW5nVmlldz13aW5kb3cuVHJhZGluZ1ZpZXd8fHt9LHdpbmRvdy5UcmFkaW5nVmlldy5GZWF0dXJlVG9nZ2xlPWg7Y29uc3QgdT0obT13aW5kb3cuZmVhdHVyZVRvZ2dsZVN0YXRlfHx7fSwoMCxpLm9uV2lkZ2V0KSgpfHxQcm9taXNlLmFsbChbby5lKDg1NDM0KSxvLmUoNzI4NSksby5lKDEzOTkzKV0pLnRoZW4oby5iaW5kKG8sNTA3Mjg1KSkudGhlbigoZT0+e2UucHVzaFN0cmVhbU11bHRpcGxleGVyLm9uKCJmZWF0dXJldG9nZ2xlIiwoZT0+e2NvbnN0IHQ9ZChtLGUubmFtZSk7bVtlLm5hbWVdPWUuc3RhdGUsdCE9PWQobSxlLm5hbWUpJiZhLmZpcmUoZS5uYW1lKX0pKX0pKSxkLmJpbmQobnVsbCxtKSk7dmFyIG07d2luZG93LlRyYWRpbmdWaWV3LmlzRmVhdHVyZUVuYWJsZWQ9dX0sMzg0MDE3KGUsdCxvKXtvLmQodCx7ZmV0Y2g6KCk9PnN9KTt2YXIgbj1vKDIyMTA2MSk7bygzMDAyODYpO2NvbnN0IGk9KDAsbi5nZXRMb2dnZXIpKCJGZXRjaCIpO2Z1bmN0aW9uIHMoZSx0LG89e30pe3tjb25zdHtsb2dPbkVycm9yU3RhdHVzOm49ITAsbG9nQm9keU9uRXJyb3I6cz0hMX09bzt0PXR8fHt9LGZ1bmN0aW9uKGUpe3JldHVybiBuZXcgVVJMKGUsZG9jdW1lbnQuYmFzZVVSSSkub3JpZ2luPT09bG9jYXRpb24ub3JpZ2lufShlKSYmKHQuaGVhZGVycz90LmhlYWRlcnMgaW5zdGFuY2VvZiBIZWFkZXJzfHwodC5oZWFkZXJzPW5ldyBIZWFkZXJzKHQuaGVhZGVycykpOnQuaGVhZGVycz1uZXcgSGVhZGVycyx3aW5kb3cubG9jYWxlJiZ0LmhlYWRlcnMuc2V0KCJYLUxhbmd1YWdlIix3aW5kb3cubG9jYWxlKSx0LmhlYWRlcnMuc2V0KCJYLVJlcXVlc3RlZC1XaXRoIiwiWE1MSHR0cFJlcXVlc3QiKSksdm9pZCAwPT09dC5jcmVkZW50aWFscyYmKHQuY3JlZGVudGlhbHM9InNhbWUtb3JpZ2luIik7Y29uc3Qgcj13aW5kb3cuZmV0Y2goZSx0KTtyZXR1cm4gci50aGVuKChvPT57aWYoIW8ub2smJm4pe2xldCBuPSIiO3QubWV0aG9kJiYobis9YCR7dC5tZXRob2QudG9VcHBlckNhc2UoKX0gYCksbis9ZSxuKz1gLiBTdGF0dXMgJHtvLnN0YXR1c31gLG8uc3RhdHVzVGV4dCYmKG4rPWAuICR7by5zdGF0dXNUZXh0fWApLG8uaGVhZGVycy52aWEmJihuKz1gLiBWaWE6ICR7by5oZWFkZXJzLnZpYX1gKSxzJiYic3RyaW5nIj09dHlwZW9mIHQuYm9keSYmKG4rPWAuIEJvZHk6ICR7dC5ib2R5LnNsaWNlKDAsMTAyNCl9YCksaS5sb2dFcnJvcihuKX1yZXR1cm4gb30pLChvPT57aWYobyYmIkFib3J0RXJyb3IiPT09by5uYW1lKXJldHVybjtsZXQgbj0iIjt0Lm1ldGhvZCYmKG4rPWAke3QubWV0aG9kLnRvVXBwZXJDYXNlKCl9IGApLG4rPWUsbmF2aWdhdG9yLm9uTGluZT9uKz1gLiAke1N0cmluZyhvKX1gOm4rPSIuIFVzZXIgaXMgb2ZmbGluZS4iLGkubG9nRXJyb3Iobil9KSkscn19fSw5MzIzNjUoZSx0LG8pe28uZCh0LHtUVkxvY2FsU3RvcmFnZTooKT0+c30pO2NvbnN0IG49KDAsbygyMjEwNjEpLmdldExvZ2dlcikoIlRWTG9jYWxTdG9yYWdlIik7dmFyIGk9ZnVuY3Rpb24oKXt0cnl7dGhpcy5pc0F2YWlsYWJsZT0hMCx0aGlzLmxvY2FsU3RvcmFnZT13aW5kb3cubG9jYWxTdG9yYWdlLHRoaXMubG9jYWxTdG9yYWdlLnNldEl0ZW0oInR2bG9jYWxzdG9yYWdlLmF2YWlsYWJsZSIsInRydWUiKX1jYXRjaChlKXtkZWxldGUgdGhpcy5pc0F2YWlsYWJsZSxkZWxldGUgdGhpcy5sb2NhbFN0b3JhZ2V9dGhpcy5fdXBkYXRlTGVuZ3RoKCk7dHJ5e3RoaXMuX3JlcG9ydCgpfWNhdGNoKGUpe319O2kucHJvdG90eXBlLl9yZXBvcnQ9ZnVuY3Rpb24oKXtpZih0aGlzLmlzQXZhaWxhYmxlKXtjb25zdCBlPTEwLHQ9W107Zm9yKGxldCBlPTA7ZTx0aGlzLmxvY2FsU3RvcmFnZS5sZW5ndGg7ZSsrKXtjb25zdCBvPXRoaXMua2V5KGUpO3QucHVzaCh7a2V5Om8sbGVuZ3RoOlN0cmluZyh0aGlzLmdldEl0ZW0obykpLmxlbmd0aH0pfXQuc29ydCgoKGUsdCk9PnQubGVuZ3RoLWUubGVuZ3RoKSk7Y29uc3Qgbz10LnNsaWNlKDAsZSk7dC5zb3J0KCgoZSx0KT0+dC5rZXkubGVuZ3RoLWUua2V5Lmxlbmd0aCkpO2NvbnN0IGk9dC5zbGljZSgwLGUpO24ubG9nTm9ybWFsKGBUb3RhbCBhbW91bnQgb2Yga2V5cyBpbiBMb2NhbCBTdG9yYWdlOiAke3RoaXMubGVuZ3RofWApLG4ubG9nTm9ybWFsKGBUb3AgJHtlfSBrZXlzIHdpdGggbG9uZ2VzdCB2YWx1ZXM6ICR7SlNPTi5zdHJpbmdpZnkobyl9YCksbi5sb2dOb3JtYWwoYFRvcCAke2V9IGxvbmdlc3Qga2V5IG5hbWVzOiAke0pTT04uc3RyaW5naWZ5KGkpfWApO3RyeXtuYXZpZ2F0b3Iuc3RvcmFnZS5lc3RpbWF0ZSgpLnRoZW4oKGU9PntuLmxvZ05vcm1hbChgU3RvcmFnZSBlc3RpbWF0ZTogJHtKU09OLnN0cmluZ2lmeShlKX1gKX0pKX1jYXRjaChlKXt9fX0saS5wcm90b3R5cGUubGVuZ3RoPTAsaS5wcm90b3R5cGUuaXNBdmFpbGFibGU9ITEsaS5wcm90b3R5cGUubG9jYWxTdG9yYWdlPXsidHZsb2NhbHN0b3JhZ2UuYXZhaWxhYmxlIjoiZmFsc2UifSxpLnByb3RvdHlwZS5fdXBkYXRlTGVuZ3RoPWZ1bmN0aW9uKCl7aWYodGhpcy5pc0F2YWlsYWJsZSl0aGlzLmxlbmd0aD10aGlzLmxvY2FsU3RvcmFnZS5sZW5ndGg7ZWxzZXt2YXIgZSx0PTA7Zm9yKGUgaW4gdGhpcy5sb2NhbFN0b3JhZ2UpdGhpcy5sb2NhbFN0b3JhZ2UuaGFzT3duUHJvcGVydHkoZSkmJnQrKwo7dGhpcy5sZW5ndGg9dH19LGkucHJvdG90eXBlLmtleT1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5pc0F2YWlsYWJsZT90aGlzLmxvY2FsU3RvcmFnZS5rZXkoZSk6T2JqZWN0LmtleXModGhpcy5sb2NhbFN0b3JhZ2UpW2VdfSxpLnByb3RvdHlwZS5nZXRJdGVtPWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmlzQXZhaWxhYmxlP3RoaXMubG9jYWxTdG9yYWdlLmdldEl0ZW0oZSk6dm9pZCAwPT09dGhpcy5sb2NhbFN0b3JhZ2VbZV0/bnVsbDp0aGlzLmxvY2FsU3RvcmFnZVtlXX0saS5wcm90b3R5cGUuc2V0SXRlbT1mdW5jdGlvbihlLHQpe3RoaXMuaXNBdmFpbGFibGU/dGhpcy5sb2NhbFN0b3JhZ2Uuc2V0SXRlbShlLHQpOnRoaXMubG9jYWxTdG9yYWdlW2VdPXQsdGhpcy5fdXBkYXRlTGVuZ3RoKCl9LGkucHJvdG90eXBlLnJlbW92ZUl0ZW09ZnVuY3Rpb24oZSl7dGhpcy5pc0F2YWlsYWJsZT90aGlzLmxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKGUpOmRlbGV0ZSB0aGlzLmxvY2FsU3RvcmFnZVtlXSx0aGlzLl91cGRhdGVMZW5ndGgoKX0saS5wcm90b3R5cGUuY2xlYXI9ZnVuY3Rpb24oKXt0aGlzLmlzQXZhaWxhYmxlP3RoaXMubG9jYWxTdG9yYWdlLmNsZWFyKCk6dGhpcy5sb2NhbFN0b3JhZ2U9e30sdGhpcy5fdXBkYXRlTGVuZ3RoKCl9O2NvbnN0IHM9bmV3IGk7d2luZG93LlRWTG9jYWxTdG9yYWdlPXN9LDExNzMxMyhlLHQsbyl7by5kKHQse2lzT25Nb2JpbGVBcHBQYWdlOigpPT5pLHVybFdpdGhNb2JpbGVBcHBQYXJhbXM6KCk9PnN9KTt2YXIgbj1vKDU4NzQzNik7ZnVuY3Rpb24gaShlLHQ9ITEpe2NvbnN0e3NlYXJjaFBhcmFtczpvfT1uZXcgVVJMKFN0cmluZyhsb2NhdGlvbikpO2xldCBpPSJ0cnVlIj09PW8uZ2V0KCJtb2JpbGVhcHBfbmV3Iikscz0idHJ1ZSI9PT1vLmdldCgibW9iaWxlYXBwIik7aWYoIXQpe2NvbnN0IGU9bi5nZXQoInR2X2FwcCIpfHwiIjtpfHw9WyJhbmRyb2lkIiwiYW5kcm9pZF9ucHMiXS5pbmNsdWRlcyhlKSxzfHw9ImlvcyI9PT1lfXJldHVybiEoIm5ldyIhPT1lJiYiYW55IiE9PWV8fCFpKXx8ISgibmV3Ij09PWV8fCFzKX1mdW5jdGlvbiBzKGUsdD0hMSl7aWYoaSgibmV3Iix0KSl7Y29uc3QgdD1uZXcgVVJMKGUsbG9jYXRpb24uaHJlZik7dC5zZWFyY2hQYXJhbXMuc2V0KCJtb2JpbGVhcHBfbmV3IiwidHJ1ZSIpLGU9dC50b1N0cmluZygpfWlmKGkoIm9sZCIsdCkpe2NvbnN0IHQ9bmV3IFVSTChlLGxvY2F0aW9uLmhyZWYpO3Quc2VhcmNoUGFyYW1zLnNldCgibW9iaWxlYXBwIiwidHJ1ZSIpLGU9dC50b1N0cmluZygpfXJldHVybiBlfX0sOTA5Nzk4KGUsdCxvKXtvLmQodCx7Zmx1c2hEZWxlZ2F0ZTooKT0+bn0pO2NvbnN0IG49bmV3KG8oOTQ4MzgwKS5EZWxlZ2F0ZSl9LDI0NzkwMShlLHQsbyl7dmFyIG47by5kKHQse1N0ZFRoZW1lOigpPT5ufSksZnVuY3Rpb24oZSl7ZS5MaWdodD0ibGlnaHQiLGUuRGFyaz0iZGFyayJ9KG58fChuPXt9KSl9LDM4NjkzMShlLHQsbyl7by5kKHQse3RyYWNrRXZlbnQ6KCk9PmF9KTt2YXIgbj1vKDIyMTA2MSksaT1vKDkzMDIzMSk7bygxNzk3NzEpO2NvbnN0IHM9KDAsbi5nZXRMb2dnZXIpKCJDb21tb24uVHJhY2tFdmVudCIpO2xldCByPSExO2NvbnN0IGE9KGUsdCxvKT0+e2lmKHIpcmV0dXJuO2xldCBuPShlP2UrIjoiOiIiKSt0O28mJihuKz0iICIrbykscy5sb2dOb3JtYWwobiksKDAsaS5pc0ZlYXR1cmVzZXRFbmFibGVkKSgid2lkZ2V0Iil8fCF3aW5kb3cuX1VOSVRfVEVTVFMmJndpbmRvdy5ndGFnJiZ3aW5kb3cuZ3RhZygiZXZlbnQiLHQse2V2ZW50X2NhdGVnb3J5OmUsZXZlbnRfbGFiZWw6b30pfTt2YXIgbCxjLGg7IWZ1bmN0aW9uKGUpe2UuR1VJPSJHVUkifShsfHwobD17fSkpLGZ1bmN0aW9uKGUpe2UuQ2hhcnRIZWFkZXJUb29sYmFyPSJDaGFydCBIZWFkZXIgVG9vbGJhciIsZS5DaGFydEJvdHRvbVRvb2xiYXI9IkNoYXJ0IEJvdHRvbSBUb29sYmFyIixlLkNoYXJ0TGVmdFRvb2xiYXI9IkNoYXJ0IExlZnQgVG9vbGJhciIsZS5UaW1lSW50ZXJ2YWw9IlRpbWUgSW50ZXJ2YWwiLGUuTG9hZENoYXJ0TGF5b3V0PSJMb2FkIGNoYXJ0IGxheW91dCJ9KGN8fChjPXt9KSksZnVuY3Rpb24oZSl7ZS5SYW5nZT0icmFuZ2UiLGUuR29Ubz0iZ28gdG8iLGUuQ2hhcnRQcm9wZXJ0aWVzPSJjaGFydCBwcm9wZXJ0aWVzIixlLkNvbXBhcmU9ImNvbXBhcmUiLGUuU2VsZWN0TGF5b3V0PSJzZWxlY3QgbGF5b3V0IixlLk1hZ25ldE1vZGU9Im1hZ25ldCBtb2RlIixlLk1hZ25ldFNuYXBzPSJtYWduZXQgc25hcHMiLGUuRHJhd2luZ01vZGU9ImRyYXdpbmcgbW9kZSIsZS5Mb2NrQWxsRHJhd2luZz0ibG9jayBhbGwgZHJhd2luZyIsZS5SZW1vdmVEcmF3aW5nPSJyZW1vdmUgZHJhd2luZyIsZS5SZW1vdmVJbmRpY2F0b3I9InJlbW92ZSBpbmRpY2F0b3IiLGUuUmVtb3ZlQWxsPSJyZW1vdmUgYWxsIixlLkhpZGVEcmF3aW5ncz0iaGlkZSBkcmF3aW5ncyIsZS5IaWRlSW5kaWNhdG9ycz0iaGlkZSBpbmRpY2F0b3JzIixlLkhpZGVQb3NpdGlvbnM9ImhpZGUgcG9zaXRpb25zIixlLkhpZGVBbGw9ImhpZGUgYWxsIixlLlN5bmM9InN5bmMiLGUuU3luY01vZGU9InN5bmMgbW9kZSIsZS5Td2l0Y2hDaGFydExheW91dD0iU3dpdGNoIGNoYXJ0IGxheW91dCIsZS5EZWxldGVDaGFydExheW91dD0iRGVsZXRlIGNoYXJ0IGxheW91dCIsZS5Mb2FkQ2hhcnRMYXlvdXQ9IkxvYWQgY2hhcnQgbGF5b3V0IixlLkFkZFRvRmF2b3JpdGVzPSJBZGQgdG8gZmF2b3JpdGVzIixlLlNvcnQ9IlNvcnQifShofHwoaD17fSkpfSwyMzU3MjQoZSx0LG8pe28uZCh0LHtNb2RpZmllcnM6KCk9PnIsaGFzaEZyb21FdmVudDooKT0+bCxob3RrZXlIYXNoVG9BcmlhS2V5c2hvcnRjdXRzOigpPT5nLGh1bWFuUmVhZGFibGVIYXNoOigpPT51LGh1bWFuUmVhZGFibGVNb2RpZmllcnM6KCk9PmMsaXNNYWNLZXlib2FyZDooKT0+cyxtb2RpZmllcnNGcm9tRXZlbnQ6KCk9PmF9KTt2YXIgbixpPW8oNzM4NDU4KTshZnVuY3Rpb24oZSl7ZVtlLktleUNvZGU9MjU1XT0iS2V5Q29kZSIsZVtlLkNvbnRyb2w9MjU2XT0iQ29udHJvbCIsZVtlLkFsdD01MTJdPSJBbHQiLAplW2UuU2hpZnQ9MTAyNF09IlNoaWZ0IixlW2UuTWV0YT0yMDQ4XT0iTWV0YSJ9KG58fChuPXt9KSk7Y29uc3Qgcz1pLmlzTWFjfHxpLmlzSU9TO3ZhciByO2Z1bmN0aW9uIGEoZSl7bGV0IHQ9MDtyZXR1cm4gZS5zaGlmdEtleSYmKHQrPTEwMjQpLGUuYWx0S2V5JiYodCs9NTEyKSxlLmN0cmxLZXkmJih0Kz0yNTYpLGUubWV0YUtleSYmKHQrPTIwNDgpLHR9ZnVuY3Rpb24gbChlKXtyZXR1cm4gYShlKXxlLmtleUNvZGV9IWZ1bmN0aW9uKGUpe2VbZS5Ob25lPTBdPSJOb25lIixlW2UuQWx0PTUxMl09IkFsdCIsZVtlLlNoaWZ0PTEwMjRdPSJTaGlmdCIsZVtlLk1vZD1zPzIwNDg6MjU2XT0iTW9kIixlW2UuQ29udHJvbD0yNTZdPSJDb250cm9sIixlW2UuTWV0YT0yMDQ4XT0iTWV0YSJ9KHJ8fChyPXt9KSk7ZnVuY3Rpb24gYyhlLHQ9IXMpe2xldCBvPSIiO3JldHVybiAyNTYmZSYmKG8rPW0ocz8iXiI6IkN0cmwiLHQpKSw1MTImZSYmKG8rPW0ocz8i4oylIjoiQWx0Iix0KSksMTAyNCZlJiYobys9bShzPyLih6ciOiJTaGlmdCIsdCkpLDIwNDgmZSYmKG8rPW0ocz8i4oyYIjoiV2luIix0KSksb31jb25zdCBoPXs5OiLih6UiLDEzOiLihrUiLDI3OiJFc2MiLDg6cz8i4oyrIjoiQmFja3NwYWNlIiwzMjoiU3BhY2UiLDM1OiJFbmQiLDM2OiJIb21lIiwzNzoi4oaQIiwzODoi4oaRIiwzOToi4oaSIiw0MDoi4oaTIiw0NToiSW5zIiw0NjoiRGVsIiwxODg6IiwiLDE5MDoiRG90IiwxOTE6Ii8ifSxkPXs5OiJUYWIiLDEzOiJFbnRlciIsMjc6IkVzYyIsODoiQmFja3NwYWNlIiwzMjoiU3BhY2UiLDM1OiJFbmQiLDM2OiJIb21lIiwzNzoiQXJyb3dMZWZ0IiwzODoiQXJyb3dVcCIsMzk6IkFycm93UmlnaHQiLDQwOiJBcnJvd0Rvd24iLDQ1OiJJbnMiLDQ2OiJEZWwiLDE4ODoiLCIsMTkwOiIuIiwxOTE6Ii8ifTtmb3IobGV0IGU9MTtlPD0xNjtlKyspaFtlKzExMV09YEYke2V9YCxkW2UrMTExXT1gRiR7ZX1gO2Z1bmN0aW9uIHUoZSl7bGV0IHQ9YyhlKTtjb25zdCBvPTI1NSZlO3JldHVybiB0Kz1vIGluIGg/aFtvXTpTdHJpbmcuZnJvbUNoYXJDb2RlKG8pLHR9ZnVuY3Rpb24gbShlLHQpe3JldHVybmAke2V9JHt0PyIgKyAiOnM/IiAiOiIifWB9ZnVuY3Rpb24gZyhlKXtjb25zdCB0PVtdOzI1NiZlJiZ0LnB1c2goIkN0cmwiKSw1MTImZSYmdC5wdXNoKCJBbHQiKSwxMDI0JmUmJnQucHVzaCgiU2hpZnQiKSwyMDQ4JmUmJnQucHVzaCgiTWV0YSIpO2NvbnN0IG89MjU1JmU7cmV0dXJuIG8gaW4gaD90LnB1c2goaFtvXSk6dC5wdXNoKFN0cmluZy5mcm9tQ2hhckNvZGUobykpLHQuam9pbigiKyIpfX0sNzIxMzY5KGUsdCxvKXtvLmQodCx7aXNOYXRpdmVVSUludGVyYWN0aW9uOigpPT5zLGlzVGV4dEVkaXRpbmdGaWVsZDooKT0+aX0pO3ZhciBuPW8oMjM1NzI0KTtmdW5jdGlvbiBpKGUpe2lmKCJJTlBVVCI9PT1lLnRhZ05hbWUpe2NvbnN0IHQ9ZS50eXBlO3JldHVybiJ0ZXh0Ij09PXR8fCJlbWFpbCI9PT10fHwibnVtYmVyIj09PXR8fCJwYXNzd29yZCI9PT10fHwic2VhcmNoIj09PXR8fCJ0ZWwiPT09dHx8InVybCI9PT10fXJldHVybiJURVhUQVJFQSI9PT1lLnRhZ05hbWV8fGUuaXNDb250ZW50RWRpdGFibGV9ZnVuY3Rpb24gcyhlLHQpe2lmKCF0KXJldHVybiExO2NvbnN0IG89MjU1JmU7aWYoMjc9PT1vfHxvPj4+ND09NylyZXR1cm4hMTtzd2l0Y2goZV5vKXtjYXNlIG4uTW9kaWZpZXJzLkFsdDpyZXR1cm4oMzg9PT1vfHw0MD09PW8pJiYiU0VMRUNUIj09PXQudGFnTmFtZXx8aSh0KTtjYXNlIG4uTW9kaWZpZXJzLkFsdCtuLk1vZGlmaWVycy5TaGlmdDpyZXR1cm4gaSh0KTtjYXNlIG4uTW9kaWZpZXJzLk1vZDppZig2Nz09PW98fCFuLmlzTWFjS2V5Ym9hcmQmJjQ1PT09byl7Y29uc3QgZT10Lm93bmVyRG9jdW1lbnQmJnQub3duZXJEb2N1bWVudC5nZXRTZWxlY3Rpb24oKTtpZihlJiYhZS5pc0NvbGxhcHNlZClyZXR1cm4hMH1yZXR1cm4gaSh0KTtjYXNlIG4uTW9kaWZpZXJzLk1vZCtuLk1vZGlmaWVycy5TaGlmdDpyZXR1cm4gbz49MzMmJm88PTQwJiZpKHQpO2Nhc2Ugbi5Nb2RpZmllcnMuU2hpZnQ6Y2FzZSAwOnJldHVybiA5PT09bz8hKCF0Lm93bmVyRG9jdW1lbnR8fHQ9PT10Lm93bmVyRG9jdW1lbnQuYm9keXx8dD09PXQub3duZXJEb2N1bWVudC5kb2N1bWVudEVsZW1lbnQpOighZnVuY3Rpb24oZSl7aWYoIkJVVFRPTiI9PT1lLnRhZ05hbWUpcmV0dXJuITA7aWYoIklOUFVUIj09PWUudGFnTmFtZSl7Y29uc3QgdD1lLnR5cGU7aWYoInN1Ym1pdCI9PT10fHwiYnV0dG9uIj09PXR8fCJyZXNldCI9PT10fHwiY2hlY2tib3giPT09dHx8InJhZGlvIj09PXQpcmV0dXJuITB9cmV0dXJuITF9KHQpfHwxMz09PW98fDMyPT09b3x8OT09PW8pJiYoImZvcm0iaW4gdHx8dC5pc0NvbnRlbnRFZGl0YWJsZSl9cmV0dXJuITF9fSw5OTU2NzgoZSx0LG8pe28uZCh0LHtpbml0TW9kYWxTY3JvbGxMb2NrSGFuZGxlcjooKT0+cyxyZWxlYXNlTW9kYWxTY3JvbGxMb2NrOigpPT5hLHJlcXVlc3RNb2RhbFNjcm9sbExvY2s6KCk9PnJ9KTtjb25zdCBuPSJtb2RhbC1zY3JvbGwtbG9jay1yZXF1ZXN0IixpPSJtb2RhbC1zY3JvbGwtbG9jay1yZWxlYXNlIjtmdW5jdGlvbiBzKGUsdCxvKXtlLmFkZEV2ZW50TGlzdGVuZXIobiwoKCk9PnQoKSkpLGUuYWRkRXZlbnRMaXN0ZW5lcihpLCgoKT0+bygpKSl9ZnVuY3Rpb24gcihlKXtlLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KG4pKX1mdW5jdGlvbiBhKGUpe2UuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoaSkpfX0sNTcwMTkzKGUsdCxvKXtvLmQodCx7Rk9DVVNfVFJBUF9EQVRBX0FUVFJJQlVURTooKT0+bn0pO2NvbnN0IG49ImRhdGEtZm9jdXMtdHJhcCJ9LDY4MjM4MShlLHQsbyl7by5kKHQse0ZPQ1VTQUJMRV9TRUxFQ1RPUjooKT0+aSxjcmVhdGVTY29wZWRWaXNpYmxlRWxlbWVudEZpbHRlcjooKT0+aCxnZXRBY3RpdmVFbGVtZW50U2VsZWN0b3JzOigpPT5jLGlzSFRNTE9yU1ZHRWxlbWVudDooKT0+ZCxpc0luZXJ0Um9vdDooKT0+YSxpc1Zpc2liaWxpdHlWaXNpYmxlOigpPT5zfSkKO2NvbnN0IG49WyJidXR0b24iLCJmaWVsZHNldCIsIm9wdGdyb3VwIiwib3B0aW9uIiwic2VsZWN0IiwidGV4dGFyZWEiLCJpbnB1dCJdLGk9WyJidXR0b24iLCJpbnB1dCIsInNlbGVjdCIsInRleHRhcmVhIiwiYVtocmVmXSIsImF1ZGlvW2NvbnRyb2xzXSIsInZpZGVvW2NvbnRyb2xzXSIsJ1t0YWJpbmRleD0iMCJdJywnW2NvbnRlbnRlZGl0YWJsZT0idHJ1ZSJdJ10ubWFwKChlPT5uLmluY2x1ZGVzKGUpP2Ake2V9Om5vdCg6ZGlzYWJsZWQpYDplKSkubWFwKChlPT5gJHtlfTpub3QoW3RhYmluZGV4PSItMSJdKWApKS5qb2luKCIsIik7ZnVuY3Rpb24gcyhlKXtyZXR1cm4idmlzaWJsZSI9PT1nZXRDb21wdXRlZFN0eWxlKGUpLnZpc2liaWxpdHl9ZnVuY3Rpb24gcihlLHQpe2lmKGUubWF0Y2hlcygiW2luZXJ0XSxbaW5lcnRdICoiKSlyZXR1cm4hMDtsZXQgbz1lO2Zvcig7byE9PXQmJm51bGwhPT1vOyl7aWYobChvKSlyZXR1cm4hMDtvPW8ucGFyZW50RWxlbWVudH1yZXR1cm4hMX1mdW5jdGlvbiBhKGUpe3JldHVybiBlLm1hdGNoZXMoIltpbmVydF0iKXx8bChlKX1mdW5jdGlvbiBsKGUpe3JldHVybiJub25lIj09PWdldENvbXB1dGVkU3R5bGUoZSkuZGlzcGxheX1mdW5jdGlvbiBjKCl7cmV0dXJuIGl9ZnVuY3Rpb24gaChlKXtyZXR1cm4gdD0+cyh0KSYmIXIodCxlKX1mdW5jdGlvbiBkKGUpe3JldHVybiBlIGluc3RhbmNlb2YgSFRNTEVsZW1lbnR8fGUgaW5zdGFuY2VvZiBTVkdFbGVtZW50fX0sOTM0MDgxKGUsdCxvKXtvLmQodCx7U1RPUllfUE9TVEVSUzooKT0+bn0pO2NvbnN0IG49W3tuYW1lOiJuZW9uIixwb3N0ZXI6by5wKyJuZW9uLmZmOTMzMTBlNzk1ZDU0YTVkMzliLndlYnAifSx7bmFtZToibWFycyIscG9zdGVyOm8ucCsibWFycy5jYjZhMzcxZmE3ODIzNjYzNDNiZS53ZWJwIn0se25hbWU6InNub3ciLHBvc3RlcjpvLnArInNub3cuOGY1ZWM5Y2Q4NGE3NTJmNDZiNjgud2VicCJ9XX0sODQyMTAyKGUsdCxvKXtvLmQodCx7aXNTaG93UHJvbW9WaWRlbzooKT0+cn0pO3ZhciBuPW8oODA5NDM2KTtjb25zdCBpPW5bIm1lZGlhLW1mLXRhYmxldC1sYW5kc2NhcGUiXSxzPW5bIm1lZGlhLW1mLXRhYmxldC12ZXJ0aWNhbCJdO2Z1bmN0aW9uIHIoKXtjb25zdCBlPXdpbmRvdy5tYXRjaE1lZGlhKGkpLm1hdGNoZXMsdD13aW5kb3cubWF0Y2hNZWRpYShzKS5tYXRjaGVzLG89d2luZG93LmlubmVyV2lkdGgsbj13aW5kb3cuaW5uZXJIZWlnaHQ7cmV0dXJuISFlfHwhIXQmJm4+PW99fSw5Nzg1NChlLHQsbyl7by5kKHQse29uZVRhcFNpZ25Nb2RhbERlbGVnYXRlOigpPT5ufSk7Y29uc3Qgbj1uZXcobyg5NDgzODApLkRlbGVnYXRlKX0sMjM5NzE5KGUsdCxvKXtvLmQodCx7R0xPQkFMX0VWRU5UX1NJR05fSU5fU1VDQ0VTUzooKT0+bixzaWdudXBTb3VyY2U6KCk9Pmksc2lnbnVwU291cmNlTWV0YTooKT0+c30pO2NvbnN0IG49IkdMT0JBTF9FVkVOVF9TSUdOX0lOX1NVQ0NFU1MiLGk9InNpZ251cFNvdXJjZSIscz0ic2lnbnVwU291cmNlTWV0YSJ9LDcxOTE5NChlLHQsbyl7by5kKHQse3BpY2tTdG9yeUluZGV4OigpPT5zfSk7dmFyIG49byg5MzIzNjUpO2NvbnN0IGk9InNpZ25pbi1wcm9tby1zdG9yeSI7ZnVuY3Rpb24gcyhlKXtjb25zdCB0PWZ1bmN0aW9uKCl7dHJ5e2NvbnN0IGU9bi5UVkxvY2FsU3RvcmFnZS5nZXRJdGVtKGkpO2lmKG51bGw9PT1lKXJldHVybiBudWxsO2NvbnN0IHQ9SlNPTi5wYXJzZShlKTtyZXR1cm4ib2JqZWN0Ij09dHlwZW9mIHQmJm51bGwhPT10JiYic3RyaW5nIj09dHlwZW9mIHQubmFtZSYmIm51bWJlciI9PXR5cGVvZiB0LnRpbWVzdGFtcD90Om51bGx9Y2F0Y2h7cmV0dXJuIG51bGx9fSgpLG89bnVsbCE9PXQ/ZS5pbmRleE9mKHQubmFtZSk6LTE7aWYobnVsbCE9PXQmJi0xIT09byYmRGF0ZS5ub3coKS10LnRpbWVzdGFtcDw4NjRlNSlyZXR1cm4gbztjb25zdCBzPWZ1bmN0aW9uKGUsdCl7aWYoZTw9MXx8dDwwKXJldHVybiBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqZSk7cmV0dXJuKHQrMStNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqKGUtMSkpKSVlfShlLmxlbmd0aCxvKTtyZXR1cm4gbi5UVkxvY2FsU3RvcmFnZS5zZXRJdGVtKGksSlNPTi5zdHJpbmdpZnkoe25hbWU6ZVtzXSx0aW1lc3RhbXA6RGF0ZS5ub3coKX0pKSxzfX0sNzU2MjcxKGUsdCxvKXtvLmQodCx7U1RPUllfTkFNRVM6KCk9Pm59KTtjb25zdCBuPVsibmVvbiIsIm1hcnMiLCJzbm93Il19LDg2NDAzNChlLHQsbyl7dmFyIG47by5kKHQse0JpbGxpbmdDeWNsZTooKT0+bixNT05USExZX1NVQlNDUklQVElPTl9EQVlTX0xFTjooKT0+cyxXRUVLTFlfU1VCU0NSSVBUSU9OX0RBWVNfTEVOOigpPT5pfSksZnVuY3Rpb24oZSl7ZS5Nb250aGx5PSJtIixlLlRocmVlTW9udGhzPSIzbSIsZS5PbmVZZWFyPSJ5In0obnx8KG49e30pKTtjb25zdCBpPTcscz0zMH0sOTEzNzA2KGUsdCxvKXtvLmQodCx7T0ZGRVJTOigpPT5ufSk7Y29uc3Qgbj17dHJpYWw6InRyaWFsIixlYXJseV9hY2Nlc3M6ImVhcmx5X2FjY2VzcyIsYmxhY2tfZnJpZGF5OiJibGFja19mcmlkYXkiLGN5YmVyX21vbmRheToiY3liZXJfbW9uZGF5IixjdXN0b21fZGlzY291bnQ6ImN1c3RvbV9kaXNjb3VudCIsbG9uZ2VyX2N5Y2xlOiJsb25nZXJfY3ljbGUiLHVwZ3JhZGU6InVwZ3JhZGUiLGV4dGVuZDoiZXh0ZW5kIixsYXN0X2NoYW5jZToibGFzdF9jaGFuY2UiLG9uZV91c2Q6Im9uZV91c2QiLG9uZV91c2RfeWVhcmx5OiJvbmVfdXNkX3llYXJseSIsdGhyZWVfbW9udGhzOiJ0aHJlZV9tb250aHMiLHVuc3Vic2NyaWJlOiJ1bnN1YnNjcmliZSIsc2l4X21vbnRoczoic2l4X21vbnRocyIsY291cG9uOiJjb3Vwb24ifTt2YXIgaSxzOyFmdW5jdGlvbihlKXtlLlR3b1dlZWtzPSJMYXN0Q2hhbmNlXzJ3IixlLlR3b0RheXM9Ikxhc3RDaGFuY2VfMmQiLGUuSG91cnM9Ikxhc3RDaGFuY2VfMjRoIn0oaXx8KGk9e30pKSxmdW5jdGlvbihlKXtlLlN0YXJ0ZWQ9InN0YXJ0ZWQiLGUuRGF5NT0iYWZ0ZXIgNSBkYXlzIixlLkRheTc9ImFmdGVyIDcgZGF5cyIsZS5EYXkxMj0iYWZ0ZXIgMTIgZGF5cyIsZS5EYXkxND0iYWZ0ZXIgMTQgZGF5cyIsCmUuV2VlazE9ImFmdGVyIDEgd2VlayIsZS5XZWVrMj0iYWZ0ZXIgMiB3ZWVrcyIsZS5XZWVrMz0iYWZ0ZXIgMyB3ZWVrcyIsZS5XZWVrND0iYWZ0ZXIgNCB3ZWVrcyIsZS5GaW5pc2hlZD0iZmluaXNoZWQifShzfHwocz17fSkpfSw0NTAxNDAoZSx0LG8pe28uZCh0LHtNb3VzZUNsaWNrQXV0b0JsdXJIYW5kbGVyOigpPT5yLGluaXRNb3VzZUNsaWNrQXV0b0JsdXJIYW5kbGVyOigpPT5hfSk7dmFyIG49byg4Mzk0MjYpLGk9byg4NDg5ODgpO2NvbnN0IHM9ImRhdGEtbW91c2UtY2xpY2stYXV0by1ibHVyIjtjbGFzcyBye2NvbnN0cnVjdG9yKCl7dGhpcy5faGFuZGxlcj1lPT57ZG9jdW1lbnQuYWN0aXZlRWxlbWVudCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50JiYoKDAsaS5pc0tleWJvYXJkQ2xpY2spKGUpfHxlLnRhcmdldCBpbnN0YW5jZW9mIEVsZW1lbnQmJiJJTlBVVCIhPT1kb2N1bWVudC5hY3RpdmVFbGVtZW50LnRhZ05hbWUmJm51bGwhPT1kb2N1bWVudC5hY3RpdmVFbGVtZW50LmNsb3Nlc3QoYFske3N9XWApJiZkb2N1bWVudC5hY3RpdmVFbGVtZW50LmJsdXIoKSl9LHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsdGhpcy5faGFuZGxlciwhMCl9c3RhdGljIGF0dHJpYnV0ZXMoZT0hMCl7cmV0dXJuIGU/e1tzXTohMH06e319fWNvbnN0IGE9KDAsbi5kZWZhdWx0KSgoKCk9Pm5ldyByKSl9LDUxODc1KGUsdCxvKXtmdW5jdGlvbiBuKGUpe2UucHJldmVudERlZmF1bHQoKX1vLmQodCx7cHJldmVudERlZmF1bHQ6KCk9Pm4scHJldmVudERlZmF1bHRGb3JDb250ZXh0TWVudTooKT0+c30pO2NvbnN0IGk9WyJpbnB1dDpub3QoW3R5cGVdKSIsJ2lucHV0W3R5cGU9InRleHQiXScsJ2lucHV0W3R5cGU9ImVtYWlsIl0nLCdpbnB1dFt0eXBlPSJwYXNzd29yZCJdJywnaW5wdXRbdHlwZT0ic2VhcmNoIl0nLCdpbnB1dFt0eXBlPSJudW1iZXIiXScsJ2lucHV0W3R5cGU9InVybCJdJywidGV4dGFyZWEiLCJhW2hyZWZdIiwnKltjb250ZW50ZWRpdGFibGU9InRydWUiXScsIltkYXRhLWFsbG93LWNvbnRleHQtbWVudV0iXTtmdW5jdGlvbiBzKGUpe2NvbnN0IHQ9ZS50YXJnZXQ7dCYmIXQuY2xvc2VzdChpLmpvaW4oIiwgIikpJiZlLnByZXZlbnREZWZhdWx0KCl9fSwxNTAxNTAoZSx0LG8pe28uZCh0LHtndWlkOigpPT5pLHJhbmRvbUhhc2g6KCk9PnMscmFuZG9tSGFzaE46KCk9PnJ9KTtjb25zdCBuPSIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWiI7ZnVuY3Rpb24gaSgpe3JldHVybiJ4eHh4eHh4eC14eHh4LTR4eHgteXh4eC14eHh4eHh4eHh4eHgiLnJlcGxhY2UoL1t4eV0vZywoZT0+e2NvbnN0IHQ9MTYqTWF0aC5yYW5kb20oKXwwO3JldHVybigieCI9PT1lP3Q6MyZ0fDgpLnRvU3RyaW5nKDE2KX0pKX1mdW5jdGlvbiBzKCl7cmV0dXJuIHIoMTIpfWZ1bmN0aW9uIHIoZSl7bGV0IHQ9IiI7Zm9yKGxldCBvPTA7bzxlOysrbyl7Y29uc3QgZT1NYXRoLmZsb29yKDYyKk1hdGgucmFuZG9tKCkpO3QrPW5bZV19cmV0dXJuIHR9fSw1NDA1NzgoZSx0LG8pe2Z1bmN0aW9uIG4oZSl7cmV0dXJuIGUucmVwbGFjZSgvWy0vXFxeJCorPy4oKXxbXF17fV0vZywiXFwkJiIpfW8uZCh0LHtyZWdFeHBFc2NhcGU6KCk9Pm59KX0sMTA3MDQ1KGUsdCxvKXtvLmQodCx7TnVtZXJpY0Zvcm1hdHRlcjooKT0+c30pO3ZhciBuPW8oNTk4OTIyKSxpPW8oNTQ2NDg1KTtjbGFzcyBze2NvbnN0cnVjdG9yKGU9e30pe3RoaXMuX29wdGlvbnM9ZX1mb3JtYXQoZSx0PXt9KXtpZighTnVtYmVyLmlzRmluaXRlKGUpKXJldHVybiBTdHJpbmcoZSk7Y29uc3R7aWdub3JlTG9jYWxlTnVtYmVyRm9ybWF0Om89dGhpcy5fb3B0aW9ucy5pZ25vcmVMb2NhbGVOdW1iZXJGb3JtYXQsbm9FeHBvbmVudGlhbEZvcm06cj10aGlzLl9vcHRpb25zLm5vRXhwb25lbnRpYWxGb3JtfT10LHttaW5QcmVjaXNpb246YSxwcmVjaXNpb246bH09dGhpcy5fb3B0aW9ucyxjPSgwLGkuZ2V0TnVtYmVyRm9ybWF0KShvKTtyZXR1cm4gdm9pZCAwPT09bD9zLl9mb3JtYXROb0VJbXBsKGUsYyxsLGEpOigwLG4uZm9ybWF0TnVtYmVyKShlLGMsbCxyLGEpfXBhcnNlKGUsdCl7Y29uc3R7aWdub3JlTG9jYWxlTnVtYmVyRm9ybWF0Om8scHJlY2lzaW9uOnN9PXRoaXMuX29wdGlvbnMscj0oMCxpLmdldE51bWJlckZvcm1hdCkob3x8dD8uaWdub3JlTG9jYWxlTnVtYmVyRm9ybWF0KTtsZXQgYT0oMCxuLnBhcnNlTnVtYmVyKShlLHIpO3JldHVybiBOdW1iZXIuaXNGaW5pdGUoYSk/KHMmJihhPSthLnRvRml4ZWQocykpLHtyZXM6ITAsdmFsdWU6YX0pOntyZXM6ITF9fXN0YXRpYyBmb3JtYXROb0UoZSx0KXtyZXR1cm4gdGhpcy5fZm9ybWF0Tm9FSW1wbChlLHQpfXN0YXRpYyBfZm9ybWF0Tm9FSW1wbChlLHQsbyxpKXtyZXR1cm4gTnVtYmVyLmlzRmluaXRlKGUpPyh0PXQ/P3tncm91cGluZ1NlcGFyYXRvcjoiIixkZWNpbWFsU2lnbjoiLiJ9LCgwLG4uZm9ybWF0TnVtYmVyKShlLHQsbywhMCxpKSk6U3RyaW5nKGUpfX19LDEyNTIxOChlLHQsbyl7by5kKHQse1BlcmNlbnRhZ2VGb3JtYXR0ZXI6KCk9PnN9KTt2YXIgbj1vKDExNTI5MyksaT1vKDc1NTYyNyk7Y2xhc3MgcyBleHRlbmRzIGkuUHJpY2VGb3JtYXR0ZXJ7Y29uc3RydWN0b3IoZT17fSl7dm9pZCAwIT09ZS5kZWNpbWFsUGxhY2VzJiYoZS5wcmljZVNjYWxlPU1hdGgucG93KDEwLGUuZGVjaW1hbFBsYWNlcykpLHN1cGVyKGUpLHRoaXMudHlwZT0icGVyY2VudGFnZSJ9c3RhdGUoKXtyZXR1cm57Li4uc3VwZXIuc3RhdGUoKSxwZXJjZW50OiEwfX1wYXJzZShlLHQpe3JldHVybiBlPWUucmVwbGFjZSgiJSIsIiIpLHN1cGVyLnBhcnNlKGUsdCl9Zm9ybWF0KGUsdD17fSl7Y29uc3R7dXNlUnRsRm9ybWF0Om89ITB9PXQsaT1zdXBlci5mb3JtYXQoZSx7Li4udCx1c2VSdGxGb3JtYXQ6ITF9KSsiJSI7cmV0dXJuIG8/KDAsbi5mb3JjZUxUUlN0cikoaSk6aX1zdGF0aWMgc2VyaWFsaXplKGUpe3JldHVybiBlLnN0YXRlKCl9c3RhdGljIGRlc2VyaWFsaXplKGUpe3JldHVybiBuZXcgcyhlKX19fSw4NTYzMjQoZSx0LG8pe28uZCh0LHsKZ2V0TGFuZ3VhZ2U6KCk9PnMsbWFwTGFuZ3VhZ2VDb2RlOigpPT5sLHJlZ2lzdGVyTGFuZ3VhZ2VDb2RlTWFwcGVyOigpPT5hLHJlZ2lzdGVyTGFuZ3VhZ2VHZXR0ZXI6KCk9Pml9KTtsZXQgbj1udWxsO2Z1bmN0aW9uIGkoZSl7bj1lfWZ1bmN0aW9uIHMoKXtpZighbil0aHJvdyBuZXcgRXJyb3IoIkxhbmd1YWdlIGdldHRlciBub3QgcmVnaXN0ZXJlZC4gQ2FsbCByZWdpc3Rlckxhbmd1YWdlR2V0dGVyKCkgZmlyc3QuIik7cmV0dXJuIG4oKX1sZXQgcj1lPT5lO2Z1bmN0aW9uIGEoZSl7cj1lfWZ1bmN0aW9uIGwoZSl7cmV0dXJuIHIoZSl9fSw5ODQzNzYoZSx0LG8pe28uZCh0LHtQTEFDRV9IT0xERVI6KCk9PnIsVm9sdW1lRm9ybWF0dGVyOigpPT5jfSk7dmFyIG49byg3ODMyNTQpLGk9byg2MDE4NDEpLHM9bygxMDcwNDUpO2NvbnN0IHI9Ii0tLSIsYT1be3ZhbHVlOjMsbGV0dGVyOiJLIn0se3ZhbHVlOjYsbGV0dGVyOiJNIn0se3ZhbHVlOjksbGV0dGVyOiJCIn0se3ZhbHVlOjEyLGxldHRlcjoiVCJ9XTtmdW5jdGlvbiBsKGUsdCl7Y29uc3Qgbz1lLXQ7cmV0dXJuIGEuZmluZCgoZT0+ZS52YWx1ZT49bykpPz9hW2EubGVuZ3RoLTFdfWNsYXNzIGN7Y29uc3RydWN0b3IoZT17fSl7dGhpcy50eXBlPSJ2b2x1bWUiO2NvbnN0e3ByZWNpc2lvbjp0PTAsbWluUHJlY2lzaW9uOm89MCxkaW1lbnNpb25QcmVjaXNpb246bj0yLGRpbWVuc2lvbk1pblByZWNpc2lvbjppPTAsc2lnbmlmaWNhbnREaWdpdHM6cj0zLGlnbm9yZUxvY2FsZU51bWJlckZvcm1hdDphLG5vRXhwb25lbnRpYWxGb3JtOmwscmVtb3ZlU3BhY2VCZWZvcmVEaW1lbnNpb246Y309ZTt0aGlzLl9wcmVjaXNpb249dCx0aGlzLl9mb3JtYXR0ZXI9bmV3IHMuTnVtZXJpY0Zvcm1hdHRlcih7aWdub3JlTG9jYWxlTnVtYmVyRm9ybWF0OmEscHJlY2lzaW9uOnRoaXMuX3ByZWNpc2lvbixtaW5QcmVjaXNpb246byxub0V4cG9uZW50aWFsRm9ybTpsfSksdGhpcy5fZGltZW5zaW9uUHJlY2lzaW9uPW4sdGhpcy5fZGltZW5zaW9uRm9ybWF0dGVyPW5ldyBzLk51bWVyaWNGb3JtYXR0ZXIoe2lnbm9yZUxvY2FsZU51bWJlckZvcm1hdDphLHByZWNpc2lvbjp0aGlzLl9kaW1lbnNpb25QcmVjaXNpb24sbWluUHJlY2lzaW9uOmksbm9FeHBvbmVudGlhbEZvcm06bH0pLHRoaXMuX3NpZ25pZmljYW50RGlnaXRzPXIsdGhpcy5fZnJhY3Rpb25hbFZhbHVlcz12b2lkIDAhPT10JiZ0PjAsdGhpcy5fc3BhY2VCZWZvcmVEaW1lbnNpb249Yz8iIjoi4oCvIix0aGlzLl9vcHRpb25zPWV9c3RhdGUoKXtjb25zdHtpZ25vcmVMb2NhbGVOdW1iZXJGb3JtYXQ6ZSwuLi50fT10aGlzLl9vcHRpb25zO3JldHVybiB0fWZvcm1hdChlLHQpe2lmKCEoMCxpLmlzTnVtYmVyKShlKSlyZXR1cm4gcjtpZihNYXRoLmFicyhlKT49MWUxMDApcmV0dXJuIG4udChudWxsLHtjb250ZXh0OiJ2b2x1bWUtZm9ybWF0dGVyIn0sbyg1NzA2MikpO2xldCBzPSIiO01hdGguYWJzKGUpPDEmJihlPStlLnRvRml4ZWQodGhpcy5fcHJlY2lzaW9uKSksZTwwP3M9IuKIkiI6ZT4wJiZ0Py5zaWduUG9zaXRpdmUmJihzPSIrIiksZT1NYXRoLmFicyhlKTtjb25zdCBhPSEhKHQ/Lmlnbm9yZUxvY2FsZU51bWJlckZvcm1hdD8/dGhpcy5fb3B0aW9ucy5pZ25vcmVMb2NhbGVOdW1iZXJGb3JtYXQpO2xldCBjLGgsZD1NYXRoLmZsb29yKE1hdGgubG9nMTAoZSkpKzE7aWYoZDw9dGhpcy5fc2lnbmlmaWNhbnREaWdpdHMmJihlPStlLnRvRml4ZWQodGhpcy5fcHJlY2lzaW9uKSxkPU1hdGguZmxvb3IoTWF0aC5sb2cxMChlKSkrMSksZDw9dGhpcy5fc2lnbmlmaWNhbnREaWdpdHMpYz10aGlzLl9mb3JtYXROdW1iZXIoZSxhLHRoaXMuX2Zvcm1hdHRlcik7ZWxzZXtsZXQgdD1sKGQsdGhpcy5fc2lnbmlmaWNhbnREaWdpdHMpO2NvbnN0IG89TWF0aC5wb3coMTAsdC52YWx1ZSk7ZT0rKGUvbykudG9GaXhlZCh0aGlzLl9kaW1lbnNpb25QcmVjaXNpb24pKm8sdD1sKE1hdGguZmxvb3IoTWF0aC5sb2cxMChlKSkrMSx0aGlzLl9zaWduaWZpY2FudERpZ2l0cyksYz10aGlzLl9mb3JtYXROdW1iZXIoZS9NYXRoLnBvdygxMCx0LnZhbHVlKSxhLHRoaXMuX2RpbWVuc2lvbkZvcm1hdHRlciksaD10LmxldHRlcn1yZXR1cm4gaD9gJHtzfSR7Y30ke3RoaXMuX3NwYWNlQmVmb3JlRGltZW5zaW9ufSR7aH1gOmAke3N9JHtjfWB9cGFyc2UoZSx0KXtpZihlPT09cilyZXR1cm57ZXJyb3I6Im5vdCBhIG51bWJlciIscmVzOiExLHZhbHVlOk5hTn07Y29uc3Qgbz17SzoxZTMsTToxZTYsQjoxZTksVDoxZTEyfSxuPShlPWUucmVwbGFjZSgi4oiSIiwiLSIpKS5zbGljZSgtMSk7aWYoby5oYXNPd25Qcm9wZXJ0eShuKSl7Y29uc3Qgcz10aGlzLl9mb3JtYXR0ZXIucGFyc2UoZS5zbGljZSgwLC0xKS50cmltKCksdCkscj1zLnJlcz9zLnZhbHVlOk5hTjtyZXR1cm4oMCxpLmlzTnVtYmVyKShyKT97cmVzOiEwLHZhbHVlOnIqb1tuXX06e2Vycm9yOiJub3QgYSBudW1iZXIiLHJlczohMSx2YWx1ZTpOYU59fXtjb25zdCBvPXRoaXMuX2Zvcm1hdHRlci5wYXJzZShlLnRyaW0oKSx0KTtsZXQgbj1vLnJlcz9vLnZhbHVlOk5hTjtyZXR1cm4tMD09PW4mJihuPTApLCgwLGkuaXNOdW1iZXIpKG4pP3tyZXM6ITAsdmFsdWU6bn06e2Vycm9yOiJub3QgYSBudW1iZXIiLHJlczohMSx2YWx1ZTpOYU59fX1zdGF0aWMgc2VyaWFsaXplKGUpe3JldHVybiBlLnN0YXRlKCl9c3RhdGljIGRlc2VyaWFsaXplKGUpe3JldHVybiBuZXcgYyhlKX1fZm9ybWF0TnVtYmVyKGUsdCxvKXtpZih0aGlzLl9mcmFjdGlvbmFsVmFsdWVzJiYwIT09ZSl7Y29uc3QgdD0xNC1NYXRoLmNlaWwoTWF0aC5sb2cxMChlKSksbz1NYXRoLnBvdygxMCx0KTtlPU1hdGgucm91bmQoZSpvKS9vfXJldHVybiBvLmZvcm1hdChlLHtpZ25vcmVMb2NhbGVOdW1iZXJGb3JtYXQ6dH0pfX19LDc3MzA4OChlLHQsbyl7dmFyIG47ZnVuY3Rpb24gaShlLHQpewpyZXR1cm4icGVyaW9kLWJhY2siPT09ZS50eXBlJiYicGVyaW9kLWJhY2siPT09dC50eXBlP2UudmFsdWU9PT10LnZhbHVlOiJ0aW1lLXJhbmdlIj09PWUudHlwZSYmInRpbWUtcmFuZ2UiPT09dC50eXBlJiYoZS5mcm9tPT09dC5mcm9tJiZlLnRvPT09dC50byl9ZnVuY3Rpb24gcyhlLHQ9ITEpe2lmKCJwZXJpb2QtYmFjayI9PT1lLnR5cGUpe2xldCBvPWUudmFsdWU7cmV0dXJuIHQmJiJZVEQiIT09byYmIkQiPT09by5zbGljZSgtMSkmJihvPW8uc2xpY2UoMCwtMSkpLG99cmV0dXJuInIsIitlLmZyb20rIjoiK2UudG99ZnVuY3Rpb24gcihlKXtjb25zdCB0PS9yLChcZCspOihcZCspLy5leGVjKGUpO3JldHVybiBudWxsIT09dD97ZnJvbTpOdW1iZXIodFsxXSksdG86TnVtYmVyKHRbMl0pLHR5cGU6InRpbWUtcmFuZ2UifTp7dmFsdWU6ZSx0eXBlOiJwZXJpb2QtYmFjayJ9fW8uZCh0LHthcmVFcXVhbFRpbWVGcmFtZXM6KCk9PmksY29udmVydFN0clRvVGltZUZyYW1lOigpPT5yLGNvbnZlcnRUaW1lRnJhbWVUb1N0cjooKT0+c30pLGZ1bmN0aW9uKGUpe2UuUGVyaW9kQmFjaz0icGVyaW9kLWJhY2siLGUuVGltZVJhbmdlPSJ0aW1lLXJhbmdlIn0obnx8KG49e30pKX0sMzQ1MTUxKGUsdCxvKXtvLmQodCx7aG90S2V5RGVzZXJpYWxpemU6KCk9PnMsaG90S2V5U2VyaWFsaXplOigpPT5pfSk7dmFyIG49byg2NDE1OTMpO2Z1bmN0aW9uIGkoZSl7cmV0dXJuKDAsbi5odG1sRXNjYXBlKShKU09OLnN0cmluZ2lmeShlKSl9ZnVuY3Rpb24gcyhlKXtyZXR1cm4gSlNPTi5wYXJzZSgoMCxuLmRlY29kZUhUTUxFbnRpdGllcykoZSkpfX0sMTYwMjk2KGUsdCxvKXtvLmQodCx7ZW52aXJvbm1lbnQ6KCk9PmksaXNEZWJ1ZzooKT0+YSxpc0xvY2FsOigpPT5zLGlzUHJvZDooKT0+cn0pO2NvbnN0IG49bmV3IFNldChbImJhdHRsZSIsInN0YWdpbmciLCJ0ZXN0IiwibG9jYWwiXSk7ZnVuY3Rpb24gaSgpe2NvbnN0IGU9c2VsZi5lbnZpcm9ubWVudDtyZXR1cm4gZnVuY3Rpb24oZSl7bi5oYXMoZSl8fGNvbnNvbGUud2FybigiSW52YWxpZCBlbnZpcm9ubWVudCAiK2UpfShlKSxlfWZ1bmN0aW9uIHMoKXtyZXR1cm4ibG9jYWwiPT09aSgpfWZ1bmN0aW9uIHIoKXtyZXR1cm4iYmF0dGxlIj09PWkoKX1mdW5jdGlvbiBhKCl7cmV0dXJuIXIoKX19LDQyOTY2KGUsdCxvKXt2YXIgbj1vKDg1NjMyNCksaT1vKDk2MzA5OCk7KDAsbi5yZWdpc3Rlckxhbmd1YWdlR2V0dGVyKSgoKCk9PndpbmRvdy5sYW5ndWFnZXx8IiIpKSwoMCxuLnJlZ2lzdGVyTGFuZ3VhZ2VDb2RlTWFwcGVyKShpLmdldElzb0xhbmd1YWdlQ29kZUZyb21MYW5ndWFnZSl9LDgxMDQxKGUsdCxvKXtvLmQodCx7U3RkVGhlbWU6KCk9Pm4uU3RkVGhlbWV9KTt2YXIgbj1vKDI0NzkwMSl9LDQwNzc5OShlLHQsbyl7by5kKHQse2VuY29kZUV4dGVuZGVkU3ltYm9sT3JHZXRTaW1wbGVTeW1ib2xTdHJpbmc6KCk9Pml9KTt2YXIgbj1vKDExMTk1Myk7ZnVuY3Rpb24gaShlKXtyZXR1cm4oMCxuLmVuY29kZUV4dGVuZGVkU3ltYm9sU3RydWN0dXJhbCkoZSl9fSw2MTk5OTIoZSx0LG8pe28uZCh0LHtpc1RpY2tzRW5hYmxlZDooKT0+aX0pO3ZhciBuPW8oMzE4OTc0KTtvKDkzMDIzMSk7ZnVuY3Rpb24gaSgpe3JldHVybiEoMCxuLm9uV2lkZ2V0KSgpfX0sNjEwMjY4KGUsdCxvKXsoMCxvKDExNTI5Mykuc2V0RG9jdW1lbnREaXJHZXR0ZXIpKCgoKT0+d2luZG93LmRvY3VtZW50LmRpcikpfSw0Mzg1MzkoZSx0LG8pe2FzeW5jIGZ1bmN0aW9uIG4oZSl7Y29uc3R7cmVuZGVyR29Ub1RyYWRpbmdWaWV3UmVmZXJyYWxEaWFsb2c6dH09YXdhaXQgUHJvbWlzZS5hbGwoW28uZSg1NDk4KSxvLmUoMjkyOTYpLG8uZSg1MjM5Niksby5lKDYwMDYyKSxvLmUoMjAzNTQpLG8uZSgyOTUzNiksby5lKDUxODQpLG8uZSg1NjI1Miksby5lKDM5MDUpLG8uZSg3NDgzMCksby5lKDUwNjIyKSxvLmUoMzMyMjEpLG8uZSgxMTcyNSksby5lKDUxMzA5KSxvLmUoMTEyNTcpLG8uZSgzMjM4Nyksby5lKDE3OTkxKSxvLmUoMTI5NjUpLG8uZSg2ODc0MSksby5lKDgzNzgxKSxvLmUoNTI4MTEpLG8uZSg1Mzg4MSldKS50aGVuKG8uYmluZChvLDQ3NTgwNikpO3QoZSl9by5kKHQse3Nob3dHb1RvVHJhZGluZ1ZpZXdSZWZlcnJhbERpYWxvZzooKT0+bn0pfSwzODE1MTcoZSx0LG8pe28uZCh0LHtpc1RyaWFsQXZhaWxhYmxlRm9yVXNlcjooKT0+aX0pO3ZhciBuPW8oOTEzNzA2KTtmdW5jdGlvbiBpKGUsdCl7Y29uc3Qgbz1lLmF2YWlsYWJsZV9vZmZlcnN8fHt9O3JldHVybiB0JiZ2b2lkIDAhPT1vW24uT0ZGRVJTLnRyaWFsXX19LDI4NDQ4NChlLHQsbyl7by5yKHQpLG8uZCh0LHtRdW90ZVRpY2tlcjooKT0+U30pO3ZhciBuPW8oOTY0NDg2KSxpPW8oMjIxMDYxKSxzPW8oNjAxODQxKSxyPW8oMTI1MjE4KSxhPW8oODkxNzc4KSxsPW8oNzU1NjI3KSxjPW8oOTg0Mzc2KSxoPW8oNTYzOTE4KSxkPW8oMzA2OTApLHU9byg1MjgzOTYpLG09bygxMTM1NjcpLGc9bygxNTk1MTMpLF89byg5NzMxMTkpLHA9byg2MDI4NyksZj1vKDc4Njc2MCksdz1vKDEwMTcxMik7Y29uc3Qgdj0oMCxpLmdldExvZ2dlcikoIlF1b3RlVGlja2VyIikseT17YWRkRGVzY3JpcHRpb25UaXRsZTohMCxjaGFuZ2VEaXJlY3Rpb25Eb3duQ2xhc3M6ImRvd24iLGNoYW5nZURpcmVjdGlvblVwQ2xhc3M6InVwIixjaGFuZ2VEaXJlY3Rpb25OZXV0cmFsQ2xhc3M6Im5ldXRyYWwiLGNoYW5nZUluQnJhY2tldHM6ITEsY2hhbmdlUGVyY2VudEluQnJhY2tldHM6ITEsbGFzdFByaWNlVGltZUluQnJhY2tldHM6ITAsbGFzdFJlbGVhc2VEYXRlVGltZUluQnJhY2tldHM6ITAscnRjVGltZUluQnJhY2tldHM6ITAsY2xpZW50TmFtZToicXVvdGUtdGlja2VyIixkb250RHllUHJpY2U6ITEsZmFsbGluZ0JnOm51bGwsZ3Jvd2luZ0JnOm51bGwsbGFzdEZhbGxpbmdDbGFzczoiZmFsbGluZyIsbGFzdEdyb3dpbmdDbGFzczoiZ3Jvd2luZyIscXVvdGVTZXNzaW9uOm51bGwsc2lnbk5lZ2F0aXZlOiEwLHNpZ25Qb3NpdGl2ZTohMSxjdXN0b21QcmljZUZvcm1hdHRlcjpudWxsLGN1c3RvbVRpbWVGb3JtYXR0ZXI6bnVsbCwKc2Vzc2lvblN0YXR1c0NsYXNzU3VmZml4OiItLWZvci10aWNrZXIiLGRhdGFNb2RlQ2xhc3NTdWZmaXg6Ii0tZm9yLXRpY2tlciIsc2hvd0ludmFsaWRTeW1ib2xTdGF0dXM6ITEsaW5kaWNhdG9yc1Rvb2x0aXBUeXBlOiJjdXN0b20iLGxhc3RQcmljZUxhc3RDaGFyU3VwOiExLGxhc3RQcmljZUhpZ2hsaWdodERpZmZPbmx5OiExLGluaXRlZEhvb2s6dm9pZCAwLHNldFN0YXRlSG9vazp2b2lkIDAscGVybWlzc2lvbkRlbmllZEhvb2s6dm9pZCAwLG5vU3VjaFN5bWJvbEhvb2s6dm9pZCAwfSxiPS9bS01CVF0vO2Z1bmN0aW9uIFMoZSx0LG89e30pe3RoaXMuZW5hYmxlZD0hMCx0aGlzLl9zeW1ib2w9ZSx0aGlzLl9zeW1ib2xPcmlnaW5hbD1udWxsLHRoaXMuX29wdGlvbnM9KDAsbi5kZWVwRXh0ZW5kKSh7fSx5LG8pLCExIT09dGhpcy5fb3B0aW9ucy5zaWduTmVnYXRpdmUmJiEwIT09dGhpcy5fb3B0aW9ucy5zaWduTmVnYXRpdmUmJmRlbGV0ZSB0aGlzLl9vcHRpb25zLnNpZ25OZWdhdGl2ZSxvLmN1c3RvbVByaWNlRm9ybWF0dGVyJiYodGhpcy5fY3VzdG9tUHJpY2VGb3JtYXR0ZXI9by5jdXN0b21QcmljZUZvcm1hdHRlciksby5jdXN0b21UaW1lRm9ybWF0dGVyJiYodm9pZCAwIT09by5jdXN0b21UaW1lRm9ybWF0dGVyLmxhc3RQcmljZXx8dm9pZCAwIT09by5jdXN0b21UaW1lRm9ybWF0dGVyLnJ0Yz90aGlzLl90aW1lRm9ybWF0dGVyPW8uY3VzdG9tVGltZUZvcm1hdHRlcjp0aGlzLl90aW1lRm9ybWF0dGVyPXtsYXN0UHJpY2U6by5jdXN0b21QcmljZUZvcm1hdHRlcixydGM6by5jdXN0b21QcmljZUZvcm1hdHRlcn0pLHRoaXMuX3BlcmNlbnRGb3JtYXR0ZXI9bmV3IHIuUGVyY2VudGFnZUZvcm1hdHRlcix0aGlzLl9kZWZhdWx0UHJpY2VGb3JtYXR0ZXI9bmV3IGwuUHJpY2VGb3JtYXR0ZXIoe3ByaWNlU2NhbGU6MTAwfSksdGhpcy5fcHJpY2VGb3JtYXR0ZXI9dGhpcy5fY3VzdG9tUHJpY2VGb3JtYXR0ZXJ8fHRoaXMuX2RlZmF1bHRQcmljZUZvcm1hdHRlcix0aGlzLl92b2x1bWVGb3JtYXR0ZXI9bmV3IGMuVm9sdW1lRm9ybWF0dGVyKHtwcmVjaXNpb246Mn0pLHRoaXMuX2NhY2hlPXt9LHRoaXMuX2xhc3RQcmljZT1udWxsLHRoaXMuX2xhc3RQcmljZUZvcm1hdHRlZD0iIix0aGlzLl9sYXN0TWluTW92ZT0wLHRoaXMuX2VsZW1lbnRzPXt9LHRoaXMuX3RleHROb2Rlcz17fSx0aGlzLl9jaGFuZ2VWb2x1bWVMZXR0ZXI9dGhpcy5fZ2V0Q2hhbmdlVm9sdW1lTGV0dGVyQ2FsbGJhY2soKSx0aGlzLl9zZXRFbGVtZW50cyh0KSx0aGlzLl9oaWdobGlnaHRlcnM9e30sdGhpcy5faW5pdEhpZ2hsaWdodGVycygpLHRoaXMuX29wdGlvbnMuc2V0U3RhdGVIb29rJiZ0aGlzLnNldFN0YXRlSG9vayh0aGlzLl9vcHRpb25zLnNldFN0YXRlSG9vayksdGhpcy5xdW90ZVNlc3Npb249dGhpcy5fb3B0aW9ucy5xdW90ZVNlc3Npb258fCgwLGcuZ2V0UXVvdGVTZXNzaW9uSW5zdGFuY2UpKCJzaW1wbGUiKSx0aGlzLl9xdW90ZVNlc3Npb25FdmVudEhhbmRsZXI9dGhpcy5vbkRhdGEuYmluZCh0aGlzKSx0aGlzLl9jb25uZWN0VGltZW91dElkPXNldFRpbWVvdXQodGhpcy5jb25uZWN0LmJpbmQodGhpcyksMCl9ZnVuY3Rpb24gTihlKXtjb25zdCB0PWUuc2VhcmNoKGIpLG89dD49MD9lLnNsaWNlKHQpOiIiO3JldHVyblt0PjA/ZS5zdWJzdHJpbmcodCwwKTowPT09dD8iIjplLG9dfWZ1bmN0aW9uIFQoZSx0LG8sbixpKXt2YXIgcyxyPW51bGw7ZnVuY3Rpb24gYSgpe2lmKHMmJihjbGVhclRpbWVvdXQocykscz12b2lkIDApLG98fHQpZm9yKHZhciByPTA7cjxlLmxlbmd0aDtyKyspZVtyXS5zdHlsZS5iYWNrZ3JvdW5kPSIiO2lmKCFvfHwhdClmb3Iocj0wO3I8ZS5sZW5ndGg7cisrKW4mJmVbcl0uY2xhc3NMaXN0LnJlbW92ZShuKSxpJiZlW3JdLmNsYXNzTGlzdC5yZW1vdmUoaSl9cmV0dXJue3Nob3c6ZnVuY3Rpb24obCl7dmFyIGM9MDtpZihsIT09cil7aWYobnVsbCE9PXImJm51bGwhPT1sJiYoYz1sLXIpLGEoKSxzPXNldFRpbWVvdXQoYSw3NTApLDA8Yyl7aWYodClmb3IodmFyIGg9MDtoPGUubGVuZ3RoO2grKyllW2hdLnN0eWxlLmJhY2tncm91bmQ9dDtlbHNlIGlmKG4pZm9yKGg9MDtoPGUubGVuZ3RoO2grKyllW2hdLmNsYXNzTGlzdC5hZGQobil9ZWxzZSBpZihjPDApaWYobylmb3IoaD0wO2g8ZS5sZW5ndGg7aCsrKWVbaF0uc3R5bGUuYmFja2dyb3VuZD1vO2Vsc2UgaWYoaSlmb3IoaD0wO2g8ZS5sZW5ndGg7aCsrKWVbaF0uY2xhc3NMaXN0LmFkZChpKTtudWxsIT09bCYmKHI9bCl9fSxoaWRlOmF9fVMucHJvdG90eXBlLl9zZXRFbGVtZW50cz1mdW5jdGlvbihlKXt0aGlzLl9jb250YWluZXI9ZSx0aGlzLl9lbGVtZW50cy5jaGFuZ2U9dGhpcy5fZmluZEVsZW1lbnRzKGUsWyJqcy1zeW1ib2wtY2hhbmdlIiwic3ltYm9sLWNoYW5nZSJdKSx0aGlzLl9lbGVtZW50cy5jaGFuZ2VEaXJlY3Rpb249dGhpcy5fZmluZEVsZW1lbnRzKGUsWyJqcy1zeW1ib2wtY2hhbmdlLWRpcmVjdGlvbiIsInN5bWJvbC1jaGFuZ2UtZGlyZWN0aW9uIl0pLHRoaXMuX2VsZW1lbnRzLmV4dEhyc0NoYW5nZURpcmVjdGlvbj10aGlzLl9maW5kRWxlbWVudHMoZSxbImpzLXN5bWJvbC1leHQtaHJzLWNoYW5nZS1kaXJlY3Rpb24iXSksdGhpcy5fZWxlbWVudHMuY2hhbmdlUGVyY2VudD10aGlzLl9maW5kRWxlbWVudHMoZSxbImpzLXN5bWJvbC1jaGFuZ2UtcHQiLCJzeW1ib2wtY2hhbmdlLXB0Il0pLHRoaXMuX2VsZW1lbnRzLmRlc2NyaXB0aW9uPXRoaXMuX2ZpbmRFbGVtZW50cyhlLFsianMtc3ltYm9sLWRlc2NyaXB0aW9uLW5hbWUiLCJzeW1ib2wtZGVzY3JpcHRpb24tbmFtZSJdKSx0aGlzLl9lbGVtZW50cy5leHRIcnNDaGFuZ2U9dGhpcy5fZmluZEVsZW1lbnRzKGUsImpzLXN5bWJvbC1leHQtaHJzLWNoYW5nZSIpLHRoaXMuX2VsZW1lbnRzLmV4dEhyc0NoYW5nZVBlcmNlbnQ9dGhpcy5fZmluZEVsZW1lbnRzKGUsImpzLXN5bWJvbC1leHQtaHJzLWNoYW5nZS1wdCIpLHRoaXMuX2VsZW1lbnRzLmV4dEhyc0Nsb3NlPXRoaXMuX2ZpbmRFbGVtZW50cyhlLCJqcy1zeW1ib2wtZXh0LWhycy1jbG9zZSIpLAp0aGlzLl9lbGVtZW50cy5uaWdodENoYW5nZURpcmVjdGlvbj10aGlzLl9maW5kRWxlbWVudHMoZSxbImpzLXN5bWJvbC1uaWdodC1jaGFuZ2UtZGlyZWN0aW9uIl0pLHRoaXMuX2VsZW1lbnRzLm5pZ2h0Q2hhbmdlPXRoaXMuX2ZpbmRFbGVtZW50cyhlLCJqcy1zeW1ib2wtbmlnaHQtY2hhbmdlIiksdGhpcy5fZWxlbWVudHMubmlnaHRDaGFuZ2VQZXJjZW50PXRoaXMuX2ZpbmRFbGVtZW50cyhlLCJqcy1zeW1ib2wtbmlnaHQtY2hhbmdlLXB0IiksdGhpcy5fZWxlbWVudHMubmlnaHRDbG9zZT10aGlzLl9maW5kRWxlbWVudHMoZSwianMtc3ltYm9sLW5pZ2h0LWNsb3NlIiksdGhpcy5fZWxlbWVudHMuaW5kdXN0cnk9dGhpcy5fZmluZEVsZW1lbnRzKGUsWyJqcy1zeW1ib2wtaW5kdXN0cnkiLCJzeW1ib2wtaW5kdXN0cnkiXSksdGhpcy5fZWxlbWVudHMubGFzdD10aGlzLl9maW5kRWxlbWVudHMoZSxbImpzLXN5bWJvbC1sYXN0Iiwic3ltYm9sLWxhc3QiXSksdGhpcy5fZWxlbWVudHMuc2VjdG9yPXRoaXMuX2ZpbmRFbGVtZW50cyhlLFsianMtc3ltYm9sLXNlY3RvciIsInN5bWJvbC1zZWN0b3IiXSksdGhpcy5fZWxlbWVudHMuc2Vzc2lvblN0YXR1cz10aGlzLl9maW5kRWxlbWVudHMoZSwianMtc3ltYm9sLXNlc3Npb24tc3RhdHVzIiksdGhpcy5fZWxlbWVudHMuc2hvcnROYW1lPXRoaXMuX2ZpbmRFbGVtZW50cyhlLFsianMtc3ltYm9sLXNob3J0LW5hbWUiLCJzeW1ib2wtc2hvcnQtbmFtZSJdKSx0aGlzLl9lbGVtZW50cy51cGRhdGVNb2RlPXRoaXMuX2ZpbmRFbGVtZW50cyhlLCJqcy1kYXRhLW1vZGUiKSx0aGlzLl9lbGVtZW50cy5sYXN0UGVyaW9kPXRoaXMuX2ZpbmRFbGVtZW50cyhlLCJqcy1zeW1ib2wtbGFzdC1wZXJpb2QiKSx0aGlzLl9lbGVtZW50cy51cGRhdGVNb2RlLmZvckVhY2goKGU9PmUuY2xhc3NMaXN0LmFkZCgiaS1oaWRkZW4iKSkpLHRoaXMuX3RleHROb2Rlcy5jaGFuZ2U9dGhpcy5fZ2V0T3JDcmVhdGVUZXh0Tm9kZXModGhpcy5fZWxlbWVudHMuY2hhbmdlKSx0aGlzLl90ZXh0Tm9kZXMuY2hhbmdlUGVyY2VudD10aGlzLl9nZXRPckNyZWF0ZVRleHROb2Rlcyh0aGlzLl9lbGVtZW50cy5jaGFuZ2VQZXJjZW50KSx0aGlzLl90ZXh0Tm9kZXMuZXh0SHJzQ2hhbmdlPXRoaXMuX2dldE9yQ3JlYXRlVGV4dE5vZGVzKHRoaXMuX2VsZW1lbnRzLmV4dEhyc0NoYW5nZSksdGhpcy5fdGV4dE5vZGVzLmV4dEhyc0NoYW5nZVBlcmNlbnQ9dGhpcy5fZ2V0T3JDcmVhdGVUZXh0Tm9kZXModGhpcy5fZWxlbWVudHMuZXh0SHJzQ2hhbmdlUGVyY2VudCksdGhpcy5fdGV4dE5vZGVzLmV4dEhyc0Nsb3NlPXRoaXMuX2dldE9yQ3JlYXRlVGV4dE5vZGVzKHRoaXMuX2VsZW1lbnRzLmV4dEhyc0Nsb3NlKSx0aGlzLl90ZXh0Tm9kZXMubmlnaHRDaGFuZ2U9dGhpcy5fZ2V0T3JDcmVhdGVUZXh0Tm9kZXModGhpcy5fZWxlbWVudHMubmlnaHRDaGFuZ2UpLHRoaXMuX3RleHROb2Rlcy5uaWdodENoYW5nZVBlcmNlbnQ9dGhpcy5fZ2V0T3JDcmVhdGVUZXh0Tm9kZXModGhpcy5fZWxlbWVudHMubmlnaHRDaGFuZ2VQZXJjZW50KSx0aGlzLl90ZXh0Tm9kZXMubmlnaHRDbG9zZT10aGlzLl9nZXRPckNyZWF0ZVRleHROb2Rlcyh0aGlzLl9lbGVtZW50cy5uaWdodENsb3NlKSx0aGlzLl90ZXh0Tm9kZXMubGFzdD10aGlzLl9nZXRPckNyZWF0ZVRleHROb2Rlcyh0aGlzLl9lbGVtZW50cy5sYXN0KSx0aGlzLl90ZXh0Tm9kZXMub3Blbj10aGlzLl9maW5kVGV4dE5vZGVzKGUsImpzLXN5bWJvbC1vcGVuIiksdGhpcy5fdGV4dE5vZGVzLmVwcz10aGlzLl9maW5kVGV4dE5vZGVzKGUsImpzLXN5bWJvbC1lcHMiKSx0aGlzLl90ZXh0Tm9kZXMubWFya2V0Q2FwPXRoaXMuX2ZpbmRUZXh0Tm9kZXMoZSwianMtc3ltYm9sLW1hcmtldC1jYXAiKSx0aGlzLl90ZXh0Tm9kZXMucHJldkNsb3NlPXRoaXMuX2ZpbmRUZXh0Tm9kZXMoZSwianMtc3ltYm9sLXByZXYtY2xvc2UiKSx0aGlzLl90ZXh0Tm9kZXMuZGl2aWRlbmRzPXRoaXMuX2ZpbmRUZXh0Tm9kZXMoZSwianMtc3ltYm9sLWRpdmlkZW5kcyIpLHRoaXMuX3RleHROb2Rlcy5wcmljZUVhcm5pbmdzPXRoaXMuX2ZpbmRUZXh0Tm9kZXMoZSwianMtc3ltYm9sLXBlIiksdGhpcy5fdGV4dE5vZGVzLnZvbHVtZT10aGlzLl9maW5kVGV4dE5vZGVzKGUsImpzLXN5bWJvbC12b2x1bWUiKSx0aGlzLl90ZXh0Tm9kZXMuaGlnaD10aGlzLl9maW5kVGV4dE5vZGVzKGUsImpzLXN5bWJvbC1oaWdoIiksdGhpcy5fdGV4dE5vZGVzLmxvdz10aGlzLl9maW5kVGV4dE5vZGVzKGUsImpzLXN5bWJvbC1sb3ciKSx0aGlzLl90ZXh0Tm9kZXMuY3VycmVuY3k9dGhpcy5fZmluZFRleHROb2RlcyhlLCJqcy1zeW1ib2wtY3VycmVuY3kiKSx0aGlzLl90ZXh0Tm9kZXMubGFzdFByaWNlVGltZT10aGlzLl9maW5kVGV4dE5vZGVzKGUsImpzLXN5bWJvbC1scC10aW1lIiksdGhpcy5fdGV4dE5vZGVzLmxhc3RSZWxlYXNlRGF0ZT10aGlzLl9maW5kVGV4dE5vZGVzKGUsImpzLXN5bWJvbC1sYXN0LXJlbGVhc2UtZGF0ZSIpLHRoaXMuX3RleHROb2Rlcy5ydGNUaW1lPXRoaXMuX2ZpbmRUZXh0Tm9kZXMoZSwianMtc3ltYm9sLXJ0Yy10aW1lIiksdGhpcy5fdGV4dE5vZGVzLm50Y1RpbWU9dGhpcy5fZmluZFRleHROb2RlcyhlLCJqcy1zeW1ib2wtbnRjLXRpbWUiKSx0aGlzLl9lbGVtZW50cy5sYXN0SGlnaGxpZ2h0PXRoaXMuX29wdGlvbnMubGFzdFByaWNlSGlnaGxpZ2h0RGlmZk9ubHk/dGhpcy5fZWxlbWVudHMubGFzdC5tYXAoKGU9PnRoaXMuX2FwcGVuZEFuZEdldE5ld0VsZW1lbnQoZSwic3BhbiIpKSk6dGhpcy5fZWxlbWVudHMubGFzdCx0aGlzLl90ZXh0Tm9kZXMubGFzdEhpZ2hsaWdodD10aGlzLl9nZXRPckNyZWF0ZVRleHROb2Rlcyh0aGlzLl9lbGVtZW50cy5sYXN0SGlnaGxpZ2h0KSx0aGlzLl9lbGVtZW50cy5sYXN0U3VwPXRoaXMuX29wdGlvbnMubGFzdFByaWNlTGFzdENoYXJTdXA/dGhpcy5fZWxlbWVudHMubGFzdEhpZ2hsaWdodC5tYXAoKGU9PnRoaXMuX2FwcGVuZEFuZEdldE5ld0VsZW1lbnQoZSwic3VwIikpKTpbXSwKdGhpcy5fdGV4dE5vZGVzLmxhc3RTdXA9dGhpcy5fZ2V0T3JDcmVhdGVUZXh0Tm9kZXModGhpcy5fZWxlbWVudHMubGFzdFN1cCl9LFMucHJvdG90eXBlLl9maW5kRWxlbWVudHM9ZnVuY3Rpb24oZSx0KXt2YXIgbz0oMCxzLmlzQXJyYXkpKHQpP3Q6W3RdO3JldHVybiBBcnJheS5wcm90b3R5cGUuY29uY2F0LmFwcGx5KFtdLG8ubWFwKCh0PT5BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChlLmdldEVsZW1lbnRzQnlDbGFzc05hbWUodCkpKSkpfSxTLnByb3RvdHlwZS5fZmluZFRleHROb2Rlcz1mdW5jdGlvbihlLHQpe3JldHVybiB0aGlzLl9nZXRPckNyZWF0ZVRleHROb2Rlcyh0aGlzLl9maW5kRWxlbWVudHMoZSx0KSl9LFMucHJvdG90eXBlLl9nZXRPckNyZWF0ZVRleHROb2Rlcz1mdW5jdGlvbihlKXtyZXR1cm4gZS5tYXAoKGU9Pnt2YXIgdD10aGlzLl9nZXRGaXJzdFRleHROb2RlKGUpO3JldHVybiB0fHwodD1lLm93bmVyRG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIiIpLGUuYXBwZW5kQ2hpbGQodCkpLHR9KSl9LFMucHJvdG90eXBlLl9hcHBlbmRBbmRHZXROZXdFbGVtZW50PWZ1bmN0aW9uKGUsdCl7Y29uc3Qgbz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KHQpO3JldHVybiBlLmFwcGVuZENoaWxkKG8pLG99LFMucHJvdG90eXBlLl9nZXRGaXJzdFRleHROb2RlPWZ1bmN0aW9uKGUpe2Zvcih2YXIgdD1lLmNoaWxkTm9kZXMsbz10Lmxlbmd0aC0xO28+PTA7by0tKWlmKDM9PT10Lml0ZW0obykubm9kZVR5cGUpcmV0dXJuIHQuaXRlbShvKTtyZXR1cm4gbnVsbH0sUy5wcm90b3R5cGUuY29ubmVjdD1mdW5jdGlvbihlKXt0aGlzLl9zdWJzY3JpYmVkfHwodGhpcy5fc3Vic2NyaWJlZFN5bWJvbD1lfHx0aGlzLl9zeW1ib2wsdGhpcy5xdW90ZVNlc3Npb24uc3Vic2NyaWJlKHRoaXMuX29wdGlvbnMuY2xpZW50TmFtZSx0aGlzLl9zdWJzY3JpYmVkU3ltYm9sLHRoaXMuX3F1b3RlU2Vzc2lvbkV2ZW50SGFuZGxlciksdGhpcy5fc3Vic2NyaWJlZD0hMCl9LFMucHJvdG90eXBlLmRpc2Nvbm5lY3Q9ZnVuY3Rpb24oKXtjbGVhclRpbWVvdXQodGhpcy5fY29ubmVjdFRpbWVvdXRJZCksdGhpcy5fc3Vic2NyaWJlZCYmKHRoaXMucXVvdGVTZXNzaW9uLnVuc3Vic2NyaWJlKHRoaXMuX29wdGlvbnMuY2xpZW50TmFtZSx0aGlzLl9zdWJzY3JpYmVkU3ltYm9sLHRoaXMuX3F1b3RlU2Vzc2lvbkV2ZW50SGFuZGxlciksdGhpcy5fc3Vic2NyaWJlZD0hMSl9LFMucHJvdG90eXBlLm9uRGF0YT1mdW5jdGlvbihlLHQpe3RoaXMuZW5hYmxlZCYmKCJvayI9PT1lLnN0YXR1cz90aGlzLnN1Y2Nlc3NEYXRhKGUsdCk6InBlcm1pc3Npb25fZGVuaWVkIj09PWUuc3RhdHVzP3RoaXMub25QZXJtaXNzaW9uRGVuaWVkKGUpOiJlcnJvciI9PT1lLnN0YXR1cyYmdGhpcy5lcnJvckRhdGEoZSkpfSxTLnByb3RvdHlwZS5zdWNjZXNzRGF0YT1mdW5jdGlvbihlLHQpe2UudmFsdWVzJiZ0aGlzLnNldFN0YXRlKGUudmFsdWVzLGUsdCl9LFMucHJvdG90eXBlLm9uUGVybWlzc2lvbkRlbmllZD1mdW5jdGlvbihlKXsoMCx3LmlzU2ZRdW90ZURhdGEpKGUpfHwoMCxmLmlzTWN4UXVvdGVEYXRhKShlKT90aGlzLl9vcHRpb25zLnBlcm1pc3Npb25EZW5pZWRIb29rP3RoaXMuX29wdGlvbnMucGVybWlzc2lvbkRlbmllZEhvb2soZSx0aGlzLl9zeW1ib2xPcmlnaW5hbHx8dGhpcy5fc3ltYm9sKTp0aGlzLmVycm9yRGF0YShlKTp0aGlzLmRvd25ncmFkZURhdGEoZSl9LFMucHJvdG90eXBlLmVycm9yRGF0YT1mdW5jdGlvbihlKXt0aGlzLl9vcHRpb25zLnNob3dJbnZhbGlkU3ltYm9sU3RhdHVzJiYodGhpcy5zZXRTaG9ydE5hbWUodGhpcy5fc3ltYm9sKSx0aGlzLl9lbGVtZW50cy5zZXNzaW9uU3RhdHVzLm1hcCgoZT0+bmV3IGguTWFya2V0U3RhdHVzSW5kaWNhdG9yKHtjbGFzc1N1ZmZpeDp0aGlzLl9vcHRpb25zLnNlc3Npb25TdGF0dXNDbGFzc1N1ZmZpeCxlbDplLGRhdGE6e3ZhbHVlczp7Y3VycmVudF9zZXNzaW9uOiJpbnZhbGlkIn19LHRvb2x0aXBUeXBlOnRoaXMuX29wdGlvbnMuaW5kaWNhdG9yc1Rvb2x0aXBUeXBlfSkpKSksdGhpcy5fb3B0aW9ucy5ub1N1Y2hTeW1ib2xIb29rPyh0aGlzLl9zeW1ib2xPcmlnaW5hbCYmdGhpcy5zZXRTaG9ydE5hbWUodGhpcy5fc3ltYm9sT3JpZ2luYWwpLHRoaXMuX29wdGlvbnMubm9TdWNoU3ltYm9sSG9vay5jYWxsKHRoaXMsZSx0aGlzLl9zeW1ib2xPcmlnaW5hbHx8dGhpcy5fc3ltYm9sKSk6di5sb2dXYXJuKCJObyBkYXRhIGZvcjogIit0aGlzLl9zeW1ib2wpfSxTLnByb3RvdHlwZS5kb3duZ3JhZGVEYXRhPWZ1bmN0aW9uKGUpe3tjb25zdCB0PWUmJmUudmFsdWVzJiZlLnZhbHVlcy5hbHRlcm5hdGl2ZSxvPXRoaXMuX3N5bWJvbD09PXQ7aWYoISh0JiYtMSE9PXQuaW5kZXhPZigiOiIpKXx8bylyZXR1cm4gdm9pZCB0aGlzLmVycm9yRGF0YShlKTt0aGlzLl9zeW1ib2xPcmlnaW5hbD10aGlzLl9zeW1ib2wsdGhpcy5fc3ltYm9sPXQsdGhpcy5fc3Vic2NyaWJlZD0hMSx0aGlzLmNvbm5lY3QoKX19LFMucHJvdG90eXBlLnNldFN0YXRlPWZ1bmN0aW9uKGUsdCxuKXtjb25zdCBpPW4udmFsdWVzO3RoaXMuX2lzVm9sdW1lRm9ybWF0PSJ2b2x1bWUiPT09ZS5mb3JtYXQsbnVsbD09aS5wcmljZXNjYWxlJiZudWxsPT1pLm1pbm1vdiYmbnVsbD09aS5mcmFjdGlvbmFsJiZudWxsPT1pLm1pbm1vdmUyfHwodGhpcy5fcHJpY2VGb3JtYXR0ZXI9dGhpcy5fY3VzdG9tUHJpY2VGb3JtYXR0ZXJ8fHRoaXMuX2lzVm9sdW1lRm9ybWF0JiZ0aGlzLl92b2x1bWVGb3JtYXR0ZXJ8fG5ldyBsLlByaWNlRm9ybWF0dGVyKHtwcmljZVNjYWxlOmUucHJpY2VzY2FsZXx8MTAwLG1pbk1vdmU6ZS5taW5tb3Z8fDEsZnJhY3Rpb25hbDplLmZyYWN0aW9uYWwsbWluTW92ZTI6ZS5taW5tb3ZlMn0pKQo7Y29uc3Qgcz10aGlzLl9vcHRpb25zLHI9dGhpcy5fcGVyY2VudEZvcm1hdHRlcixhPXRoaXMuX3ByaWNlRm9ybWF0dGVyLGc9dGhpcy5fZGVmYXVsdFByaWNlRm9ybWF0dGVyLGY9dGhpcy5fdm9sdW1lRm9ybWF0dGVyLHc9KGUsdD0hMCk9PnQ/YCgke2V9KWA6ZSx5PXZvaWQgMCE9PXMuc2lnblBvc2l0aXZlQ2hhbmdlP3Muc2lnblBvc2l0aXZlQ2hhbmdlOnMuc2lnblBvc2l0aXZlLGI9ZT0+KDAsXy5xdW90ZVRpY2tlckZvcm1hdENoYW5nZSkoZSxpLHMpLFM9ZT0+e2NvbnN0IHQ9ci5mb3JtYXQoZSx7c2lnblBvc2l0aXZlOnksc2lnbk5lZ2F0aXZlOnMuc2lnbk5lZ2F0aXZlfSk7cmV0dXJuIHcodCxzLmNoYW5nZVBlcmNlbnRJbkJyYWNrZXRzKX0sTj1hLmZvcm1hdC5iaW5kKGEpLFQ9Zy5mb3JtYXQuYmluZChnKSxFPWYuZm9ybWF0LmJpbmQoZiksQz1lPT5udWxsPT1lP2MuUExBQ0VfSE9MREVSOlQoZSk7cy5kaXNhYmxlQ2hhbmdlfHwodGhpcy5fc2V0Tm9kZXNWYWx1ZSh0aGlzLl90ZXh0Tm9kZXMuY2hhbmdlLGkuY2hhbmdlLGIpLHRoaXMuX3NldE5vZGVzVmFsdWUodGhpcy5fdGV4dE5vZGVzLmNoYW5nZVBlcmNlbnQsaS5jaGFuZ2VfcGVyY2VudCxTKSxudWxsIT1pLmNoYW5nZSYmKHMuZG9udER5ZVByaWNlfHx0aGlzLl9zZXRDaGFuZ2VGb250Q29sb3IoW10uY29uY2F0KHRoaXMuX2VsZW1lbnRzLmNoYW5nZSx0aGlzLl9lbGVtZW50cy5jaGFuZ2VQZXJjZW50KSxpLmNoYW5nZSxzLmNoYW5nZVVwRm9udENvbG9yLHMuY2hhbmdlRG93bkZvbnRDb2xvcixzLmNoYW5nZU5ldXRyYWxGb250Q29sb3IpLHRoaXMuX3NldENoYW5nZURpcmVjdGlvbih0aGlzLl9lbGVtZW50cy5jaGFuZ2VEaXJlY3Rpb24saS5jaGFuZ2UpKSx0aGlzLl9zZXROb2Rlc1ZhbHVlKHRoaXMuX3RleHROb2Rlcy5leHRIcnNDaGFuZ2UsaS5yY2gsYiksdGhpcy5fc2V0Tm9kZXNWYWx1ZSh0aGlzLl90ZXh0Tm9kZXMuZXh0SHJzQ2hhbmdlUGVyY2VudCxpLnJjaHAsUyksbnVsbCE9aS5yY2gmJihzLmRvbnREeWVQcmljZXx8dGhpcy5fc2V0Q2hhbmdlRm9udENvbG9yKFtdLmNvbmNhdCh0aGlzLl9lbGVtZW50cy5leHRIcnNDaGFuZ2UsdGhpcy5fZWxlbWVudHMuZXh0SHJzQ2hhbmdlUGVyY2VudCksaS5yY2gscy5jaGFuZ2VVcEZvbnRDb2xvcixzLmNoYW5nZURvd25Gb250Q29sb3Iscy5jaGFuZ2VOZXV0cmFsRm9udENvbG9yKSx0aGlzLl9zZXRDaGFuZ2VEaXJlY3Rpb24odGhpcy5fZWxlbWVudHMuZXh0SHJzQ2hhbmdlRGlyZWN0aW9uLGkucmNoKSksdGhpcy5fc2V0Tm9kZXNWYWx1ZSh0aGlzLl90ZXh0Tm9kZXMubmlnaHRDaGFuZ2UsaS5uY2gsYiksdGhpcy5fc2V0Tm9kZXNWYWx1ZSh0aGlzLl90ZXh0Tm9kZXMubmlnaHRDaGFuZ2VQZXJjZW50LGkubmNocCxTKSxudWxsIT1pLm5jaCYmKHMuZG9udER5ZVByaWNlfHx0aGlzLl9zZXRDaGFuZ2VGb250Q29sb3IoW10uY29uY2F0KHRoaXMuX2VsZW1lbnRzLm5pZ2h0Q2hhbmdlLHRoaXMuX2VsZW1lbnRzLm5pZ2h0Q2hhbmdlUGVyY2VudCksaS5uY2gscy5jaGFuZ2VVcEZvbnRDb2xvcixzLmNoYW5nZURvd25Gb250Q29sb3Iscy5jaGFuZ2VOZXV0cmFsRm9udENvbG9yKSx0aGlzLl9zZXRDaGFuZ2VEaXJlY3Rpb24odGhpcy5fZWxlbWVudHMubmlnaHRDaGFuZ2VEaXJlY3Rpb24saS5uY2gpKSksdGhpcy5fc2V0Tm9kZXNWYWx1ZSh0aGlzLl90ZXh0Tm9kZXMucHJldkNsb3NlLGkucHJldl9jbG9zZV9wcmljZSxOKSx0aGlzLl9zZXROb2Rlc1ZhbHVlKHRoaXMuX3RleHROb2Rlcy5kaXZpZGVuZHMsZS5kaXZpZGVuZHNfeWllbGQsKGU9Pm51bGw9PWU/Yy5QTEFDRV9IT0xERVI6ci5mb3JtYXQoZSx7c2lnblBvc2l0aXZlOnMuc2lnblBvc2l0aXZlLHNpZ25OZWdhdGl2ZTpzLnNpZ25OZWdhdGl2ZX0pKSwhMCk7bGV0IHg9KDAsdS5nZXRUcmFuc2xhdGVkU3ltYm9sRGVzY3JpcHRpb24pKGkpO2lmKHgmJih4PXRoaXMuX3ByZXBhcmVTeW1ib2xEZXNjcmlwdGlvbih4KSx0aGlzLl9zZXRUZXh0c0NvbnRlbnQodGhpcy5fZWxlbWVudHMuZGVzY3JpcHRpb24seCksdGhpcy5fb3B0aW9ucy5hZGREZXNjcmlwdGlvblRpdGxlKSlmb3IodmFyIEw9MDtMPHRoaXMuX2VsZW1lbnRzLmRlc2NyaXB0aW9uLmxlbmd0aDtMKyspdGhpcy5fZWxlbWVudHMuZGVzY3JpcHRpb25bTF0uc2V0QXR0cmlidXRlKCJ0aXRsZSIseCk7aWYoKG51bGwhPWkuc2hvcnRfbmFtZXx8bnVsbCE9aS5leGNoYW5nZSkmJmUuc2hvcnRfbmFtZSl7dmFyIEQ9ZS5zaG9ydF9uYW1lOyJRVUFOREwiPT09ZS5leGNoYW5nZSYmdm9pZCAwIT09ZS5zaG9ydF9uYW1lLnNwbGl0KCIvIilbMV0mJihEPWUuc2hvcnRfbmFtZS5zcGxpdCgiLyIpWzFdKyIsICIrZS5zaG9ydF9uYW1lLnNwbGl0KCIvIilbMF0pLHRoaXMuc2V0U2hvcnROYW1lKEQpfWVbInJlZmVyZW5jZS1sYXN0LXBlcmlvZCJdJiZ0aGlzLl9lbGVtZW50cy5sYXN0UGVyaW9kLmxlbmd0aCYmUHJvbWlzZS5hbGwoW28uZSgyMzU2Nyksby5lKDczOTcpXSkudGhlbihvLmJpbmQobywyMTU1NzkpKS50aGVuKCh0PT57dGhpcy5fc2V0VGV4dHNDb250ZW50KHRoaXMuX2VsZW1lbnRzLmxhc3RQZXJpb2QsdC5wZXJpb2RGb3JtYXR0ZXIoZVsicmVmZXJlbmNlLWxhc3QtcGVyaW9kIl0pKX0pKSx0aGlzLl9lbGVtZW50cy5sYXN0UGVyaW9kLmxlbmd0aCYmdm9pZCAwPT09ZVsicmVmZXJlbmNlLWxhc3QtcGVyaW9kIl0mJnRoaXMuX3NldFRleHRzQ29udGVudCh0aGlzLl9lbGVtZW50cy5sYXN0UGVyaW9kLCLigJQiKSx0aGlzLl9zZXRMYXN0VmFsdWUoaS5sYXN0X3ByaWNlLGkubWlubW92ZTIsTiksdGhpcy5fc2V0Tm9kZXNWYWx1ZSh0aGlzLl90ZXh0Tm9kZXMuZXh0SHJzQ2xvc2UsaS5ydGMsTiksaS5ydGMmJnRoaXMuX2hpZ2hsaWdodGVycy5leHRIcnNDbG9zZS5zaG93KGkucnRjKSx0aGlzLl9zZXROb2Rlc1ZhbHVlKHRoaXMuX3RleHROb2Rlcy5uaWdodENsb3NlLGkubnRjLE4pLGkubnRjJiZ0aGlzLl9oaWdobGlnaHRlcnMubmlnaHRDbG9zZS5zaG93KGkubnRjKSwKaS5pbmR1c3RyeSYmdGhpcy5fc2V0VGV4dHNDb250ZW50KHRoaXMuX2VsZW1lbnRzLmluZHVzdHJ5LGUuaW5kdXN0cnksKGU9PmUpKSxpLnNlY3RvciYmdGhpcy5fc2V0VGV4dHNDb250ZW50KHRoaXMuX2VsZW1lbnRzLnNlY3RvcixlLnNlY3RvciksdGhpcy5fZWxlbWVudHMuc2Vzc2lvblN0YXR1cyYmaS5jdXJyZW50X3Nlc3Npb24mJih0aGlzLl9zZXNzaW9uU3RhdHVzSW5zdGFuY2VzP3RoaXMuX3Nlc3Npb25TdGF0dXNJbnN0YW5jZXMuZm9yRWFjaCgoZT0+ZS5zZXRTdGF0dXMoaS5jdXJyZW50X3Nlc3Npb24pKSk6dGhpcy5fc2Vzc2lvblN0YXR1c0luc3RhbmNlcz10aGlzLl9lbGVtZW50cy5zZXNzaW9uU3RhdHVzLm1hcCgodD0+bmV3IGguTWFya2V0U3RhdHVzSW5kaWNhdG9yKHtjbGFzc1N1ZmZpeDp0aGlzLl9vcHRpb25zLnNlc3Npb25TdGF0dXNDbGFzc1N1ZmZpeCxlbDp0LHNob3J0OiEwLGRhdGE6e3ZhbHVlczppfSxxdW90ZVNlc3Npb246dGhpcy5xdW90ZVNlc3Npb24sc3ltYm9sOmUub3JpZ2luYWxfbmFtZSxtYW51YWxVcGRhdGU6ITAsdG9vbHRpcFR5cGU6dGhpcy5fb3B0aW9ucy5pbmRpY2F0b3JzVG9vbHRpcFR5cGUsc2Vzc2lvblN0YXR1c0ljb246dGhpcy5fb3B0aW9ucy5zZXNzaW9uU3RhdHVzSWNvbn0pKSkpLHRoaXMuX3NldE5vZGVzVmFsdWUodGhpcy5fdGV4dE5vZGVzLm9wZW4saS5vcGVuX3ByaWNlLE4pLHRoaXMuX3NldE5vZGVzVmFsdWUodGhpcy5fdGV4dE5vZGVzLmhpZ2gsaS5oaWdoX3ByaWNlLE4pLHRoaXMuX3NldE5vZGVzVmFsdWUodGhpcy5fdGV4dE5vZGVzLmxvdyxpLmxvd19wcmljZSxOKSx0aGlzLl9zZXROb2Rlc1ZhbHVlKHRoaXMuX3RleHROb2Rlcy5lcHMsZS5lYXJuaW5nc19wZXJfc2hhcmVfYmFzaWNfdHRtLEMsITApLHRoaXMuX3NldE5vZGVzVmFsdWUodGhpcy5fdGV4dE5vZGVzLnByaWNlRWFybmluZ3MsZS5wcmljZV9lYXJuaW5nc190dG0sQywhMCksdGhpcy5fc2V0Tm9kZXNWYWx1ZSh0aGlzLl90ZXh0Tm9kZXMubWFya2V0Q2FwLGUubWFya2V0X2NhcF9iYXNpYyxFLCEwKSx0aGlzLl9zZXROb2Rlc1ZhbHVlKHRoaXMuX3RleHROb2Rlcy52b2x1bWUsZS52b2x1bWUsRSwhMCk7Y29uc3QgRj0oMCxtLnByZXBhcmVDdXJyZW5jeVZhbHVlKShpKTtpZihGJiZ0aGlzLl9zZXROb2Rlc1ZhbHVlKHRoaXMuX3RleHROb2Rlcy5jdXJyZW5jeSxGLHAucXVvdGVUaWNrZXJGb3JtYXRDdXJyZW5jeSwhMCksKGkubHBfdGltZXx8ZS5scF90aW1lKSYmdGhpcy5fdGV4dE5vZGVzLmxhc3RQcmljZVRpbWUubGVuZ3RoJiYodGhpcy5fdGltZUZvcm1hdHRlciYmdGhpcy5fdGltZUZvcm1hdHRlci5sYXN0UHJpY2U/dGhpcy5fc2V0Tm9kZXNWYWx1ZSh0aGlzLl90ZXh0Tm9kZXMubGFzdFByaWNlVGltZSx3KHRoaXMuX3RpbWVGb3JtYXR0ZXIubGFzdFByaWNlKGUubHBfdGltZSxlLmN1cnJlbnRfc2Vzc2lvbiksdGhpcy5fb3B0aW9ucy5sYXN0UHJpY2VUaW1lSW5CcmFja2V0cykpOnYubG9nRXJyb3IoImxhc3QgcHJpY2UgdGltZSBmaWVsZCByZXF1ZXN0ZWQgd2l0aCBubyBmb3JtYXR0ZXIgcHJvdmlkZWQiKSksKGkubGFzdF9yZWxlYXNlX2RhdGV8fGUubGFzdF9yZWxlYXNlX2RhdGUpJiZ0aGlzLl90ZXh0Tm9kZXMubGFzdFJlbGVhc2VEYXRlLmxlbmd0aCYmKHRoaXMuX3RpbWVGb3JtYXR0ZXImJnRoaXMuX3RpbWVGb3JtYXR0ZXIubGFzdFJlbGVhc2VEYXRlP3RoaXMuX3NldE5vZGVzVmFsdWUodGhpcy5fdGV4dE5vZGVzLmxhc3RSZWxlYXNlRGF0ZSx3KHRoaXMuX3RpbWVGb3JtYXR0ZXIubGFzdFJlbGVhc2VEYXRlKGUubGFzdF9yZWxlYXNlX2RhdGUsZS5jdXJyZW50X3Nlc3Npb24pLHRoaXMuX29wdGlvbnMubGFzdFJlbGVhc2VEYXRlVGltZUluQnJhY2tldHMpKTp2LmxvZ0Vycm9yKCJsYXN0UmVsZWFzZURhdGUgdGltZSBmaWVsZCByZXF1ZXN0ZWQgd2l0aCBubyBmb3JtYXR0ZXIgcHJvdmlkZWQiKSksKGkucnRjX3RpbWV8fGUucnRjX3RpbWUpJiZ0aGlzLl90ZXh0Tm9kZXMucnRjVGltZS5sZW5ndGgmJih0aGlzLl90aW1lRm9ybWF0dGVyJiZ0aGlzLl90aW1lRm9ybWF0dGVyLnJ0Yz90aGlzLl9zZXROb2Rlc1ZhbHVlKHRoaXMuX3RleHROb2Rlcy5ydGNUaW1lLHcodGhpcy5fdGltZUZvcm1hdHRlci5ydGMoZS5ydGNfdGltZSxlLmN1cnJlbnRfc2Vzc2lvbiksdGhpcy5fb3B0aW9ucy5ydGNUaW1lSW5CcmFja2V0cykpOnYubG9nRXJyb3IoInJ0YyB0aW1lIGZpZWxkIHJlcXVlc3RlZCB3aXRoIG5vIGZvcm1hdHRlciBwcm92aWRlZCIpKSwoaS5udGNfdGltZXx8ZS5udGNfdGltZSkmJnRoaXMuX3RleHROb2Rlcy5udGNUaW1lLmxlbmd0aCYmKHRoaXMuX3RpbWVGb3JtYXR0ZXImJnRoaXMuX3RpbWVGb3JtYXR0ZXIucnRjP3RoaXMuX3NldE5vZGVzVmFsdWUodGhpcy5fdGV4dE5vZGVzLm50Y1RpbWUsdyh0aGlzLl90aW1lRm9ybWF0dGVyLnJ0YyhlLm50Y190aW1lLGUuY3VycmVudF9zZXNzaW9uKSx0aGlzLl9vcHRpb25zLnJ0Y1RpbWVJbkJyYWNrZXRzKSk6di5sb2dFcnJvcigibnRjIHRpbWUgZmllbGQgcmVxdWVzdGVkIHdpdGggbm8gZm9ybWF0dGVyIHByb3ZpZGVkIikpLG51bGwhPWkubGFzdF9wcmljZSlmb3IoTD0wO0w8dGhpcy5fZWxlbWVudHMudXBkYXRlTW9kZS5sZW5ndGg7TCsrKXRoaXMuX2VsZW1lbnRzLnVwZGF0ZU1vZGVbTF0uY2xhc3NMaXN0LnJlbW92ZSgiaS1oaWRkZW4iKTt0aGlzLl9lbGVtZW50cy51cGRhdGVNb2RlJiYoaS51cGRhdGVfbW9kZXx8aS51cGRhdGVfbW9kZV9zZWNvbmRzKSYmKHRoaXMuX3VwZGF0ZU1vZGVJbnN0YW5jZXM/dGhpcy5fdXBkYXRlTW9kZUluc3RhbmNlcy5mb3JFYWNoKCh0PT50LnVwZGF0ZSh7dmFsdWVzOmV9KSkpOnRoaXMuX3VwZGF0ZU1vZGVJbnN0YW5jZXM9dGhpcy5fZWxlbWVudHMudXBkYXRlTW9kZS5tYXAoKHQ9Pm5ldyBkLkRhdGFNb2RlSW5kaWNhdG9yKHtjbGFzc1N1ZmZpeDp0aGlzLl9vcHRpb25zLmRhdGFNb2RlQ2xhc3NTdWZmaXgsZWw6dCxkYXRhOnt2YWx1ZXM6ZX0sbW9kZUludGVydmFsOmUudXBkYXRlX21vZGVfc2Vjb25kcyxzaG9ydDohMCwKdG9vbHRpcFR5cGU6dGhpcy5fb3B0aW9ucy5pbmRpY2F0b3JzVG9vbHRpcFR5cGV9KSkpKSx0aGlzLl9zZXRTdGF0ZUhvb2smJnRoaXMuX3NldFN0YXRlSG9vayh0LnZhbHVlcyxuLnZhbHVlcyx0LmNvbXBsZXRlLHRoaXMuZ2V0T3B0aW9ucygpKSx0aGlzLl9sYXN0UHJpY2U/dGhpcy5faGlnaGxpZ2h0ZXJzLmxhc3Quc2hvdyhlLmxhc3RfcHJpY2UpOm51bGw9PT10aGlzLl9sYXN0UHJpY2UmJih0aGlzLl9jb250YWluZXIuY2xhc3NMaXN0LmFkZCgicXVvdGUtdGlja2VyLWluaXRlZCIpLCJmdW5jdGlvbiI9PXR5cGVvZiB0aGlzLl9vcHRpb25zLmluaXRlZEhvb2smJnRoaXMuX29wdGlvbnMuaW5pdGVkSG9vaygibGFzdF9wcmljZSJpbiBlKSksdGhpcy5fbGFzdFByaWNlPWUubGFzdF9wcmljZX0sUy5wcm90b3R5cGUuX3NldE5vZGVzVmFsdWU9ZnVuY3Rpb24oZSx0LG8sbil7aWYobnVsbCE9dHx8bilmb3IodmFyIGk9ImZ1bmN0aW9uIj09dHlwZW9mIG8/byh0KTp0LHM9MDtzPGUubGVuZ3RoO3MrKyllW3NdLm5vZGVWYWx1ZT1pfSxTLnByb3RvdHlwZS5fc2V0VGV4dHNDb250ZW50PWZ1bmN0aW9uKGUsdCxvKXtpZihlJiZlLmxlbmd0aCYmdClmb3IodmFyIG49ImZ1bmN0aW9uIj09dHlwZW9mIG8/byh0KTp0LGk9MDtpPGUubGVuZ3RoO2krKyllW2ldLnRleHRDb250ZW50PW59LFMucHJvdG90eXBlLl9zZXRMYXN0VmFsdWU9ZnVuY3Rpb24oZSx0LG8pe2lmKG51bGw9PWUpcmV0dXJuO2NvbnN0IG49ImZ1bmN0aW9uIj09dHlwZW9mIG8/byhlKTpTdHJpbmcoZSk7aWYobj09PXRoaXMuX2xhc3RQcmljZUZvcm1hdHRlZClyZXR1cm47Y29uc3RbaSxzLHJdPXRoaXMuX29wdGlvbnMubGFzdFByaWNlSGlnaGxpZ2h0RGlmZk9ubHk/dGhpcy5fZ2V0TGFzdFZhbHVlU3RyaW5nRGlmZih0aGlzLl9sYXN0UHJpY2VGb3JtYXR0ZWQsbik6WyIiLG4sIiJdLGE9aSxsPXRoaXMuX2NhbGN1bGF0ZVBpcGV0dGVEaWdpdHModCksW2MsaF09dGhpcy5fb3B0aW9ucy5sYXN0UHJpY2VMYXN0Q2hhclN1cCYmbD9bcy5zbGljZSgwLC1sKSxzLnNsaWNlKC1sKV06W3MsIiJdO3RoaXMuX29wdGlvbnMubGFzdFByaWNlSGlnaGxpZ2h0RGlmZk9ubHkmJih0aGlzLl9pc1ZvbHVtZUZvcm1hdCYmdGhpcy5fY2hhbmdlVm9sdW1lTGV0dGVyLmNhbGwodGhpcyxyKSx0aGlzLl9zZXROb2Rlc1ZhbHVlKHRoaXMuX3RleHROb2Rlcy5sYXN0LGEpKSx0aGlzLl9zZXROb2Rlc1ZhbHVlKHRoaXMuX3RleHROb2Rlcy5sYXN0SGlnaGxpZ2h0LGMpLHRoaXMuX3NldE5vZGVzVmFsdWUodGhpcy5fdGV4dE5vZGVzLmxhc3RTdXAsaCksdGhpcy5fbGFzdFByaWNlRm9ybWF0dGVkPW59LFMucHJvdG90eXBlLl9nZXRDaGFuZ2VWb2x1bWVMZXR0ZXJDYWxsYmFjaz1mdW5jdGlvbigpe2xldCBlO3JldHVybiBmdW5jdGlvbih0KXt0IT09ZSYmKGU9dCx0aGlzLl9lbGVtZW50cy5sYXN0LmZvckVhY2goKHQ9PnszIT09dC5jaGlsZE5vZGVzLmxlbmd0aD90LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGUpKTp0LmNoaWxkTm9kZXNbMl0ubm9kZVZhbHVlPWV9KSkpfX0sUy5wcm90b3R5cGUuX2dldExhc3RWYWx1ZVN0cmluZ0RpZmY9ZnVuY3Rpb24oZSx0KXtpZihlPT09dCl7Y29uc3RbZSxvXT1OKHQpO3JldHVybltlLCIiLG9dfWxldCBvPTA7Zm9yKDtlW29dPT09dFtvXTspbysrO2NvbnN0W24saV09Tih0LnNsaWNlKG8pKTtyZXR1cm5bdC5zbGljZSgwLG8pLG4saV19LFMucHJvdG90eXBlLl9jYWxjdWxhdGVQaXBldHRlRGlnaXRzPWZ1bmN0aW9uKGUpe3JldHVybiBlJiZlIT09dGhpcy5fbGFzdE1pbk1vdmUmJih0aGlzLl9sYXN0TWluTW92ZT1lKSx0aGlzLl9sYXN0TWluTW92ZT8oIiIrdGhpcy5fbGFzdE1pbk1vdmUpLmxlbmd0aC0xOjB9LFMucHJvdG90eXBlLl9zZXRDaGFuZ2VGb250Q29sb3I9ZnVuY3Rpb24oZSx0LG8sbixpKXtmb3IodmFyIHM9YS5QcmljZUNvbG9yZXIuZm9ybWF0U2lnbih0LHt1cDpvLGRvd246bixuZXV0cmFsOml9KSxyPTA7cjxlLmxlbmd0aDtyKyspZVtyXS5zdHlsZS5jb2xvcj1zfSxTLnByb3RvdHlwZS5fc2V0Q2hhbmdlRGlyZWN0aW9uPWZ1bmN0aW9uKGUsdCl7Zm9yKHZhciBvPTA7bzxlLmxlbmd0aDtvKyspe3ZhciBuPWVbb10uY2xhc3NMaXN0O24udG9nZ2xlKHRoaXMuX29wdGlvbnMuY2hhbmdlRGlyZWN0aW9uVXBDbGFzcyx0PjApLG4udG9nZ2xlKHRoaXMuX29wdGlvbnMuY2hhbmdlRGlyZWN0aW9uRG93bkNsYXNzLHQ8MCksbi50b2dnbGUodGhpcy5fb3B0aW9ucy5jaGFuZ2VEaXJlY3Rpb25OZXV0cmFsQ2xhc3MsMD09PXQpfX0sUy5wcm90b3R5cGUuc2V0U2hvcnROYW1lPWZ1bmN0aW9uKGU9IiIpe3RoaXMuX3NldFRleHRzQ29udGVudCh0aGlzLl9lbGVtZW50cy5zaG9ydE5hbWUsZSl9LFMucHJvdG90eXBlLl9wcmVwYXJlU3ltYm9sRGVzY3JpcHRpb249ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcy5fZ2V0Q2FjaGUoInN5bWJvbC1kZXNjcmlwdGlvbjoiK2UpO3JldHVybiB0fHwodD1lLHRoaXMuX3NldENhY2hlKCJzeW1ib2wtZGVzY3JpcHRpb246IitlLHQpLHQpfSxTLnByb3RvdHlwZS5faW5pdEhpZ2hsaWdodGVycz1mdW5jdGlvbigpe3RoaXMuX2hpZ2hsaWdodGVycy5sYXN0PW5ldyBUKHRoaXMuX2VsZW1lbnRzLmxhc3RIaWdobGlnaHQsdGhpcy5fb3B0aW9ucy5ncm93aW5nQmcsdGhpcy5fb3B0aW9ucy5mYWxsaW5nQmcsdGhpcy5fb3B0aW9ucy5sYXN0R3Jvd2luZ0NsYXNzLHRoaXMuX29wdGlvbnMubGFzdEZhbGxpbmdDbGFzcyksdGhpcy5faGlnaGxpZ2h0ZXJzLmV4dEhyc0Nsb3NlPW5ldyBUKHRoaXMuX2VsZW1lbnRzLmV4dEhyc0Nsb3NlLHRoaXMuX29wdGlvbnMuZ3Jvd2luZ0JnLHRoaXMuX29wdGlvbnMuZmFsbGluZ0JnLHRoaXMuX29wdGlvbnMubGFzdEdyb3dpbmdDbGFzcyx0aGlzLl9vcHRpb25zLmxhc3RGYWxsaW5nQ2xhc3MpLAp0aGlzLl9oaWdobGlnaHRlcnMubmlnaHRDbG9zZT1uZXcgVCh0aGlzLl9lbGVtZW50cy5uaWdodENsb3NlLHRoaXMuX29wdGlvbnMuZ3Jvd2luZ0JnLHRoaXMuX29wdGlvbnMuZmFsbGluZ0JnLHRoaXMuX29wdGlvbnMubGFzdEdyb3dpbmdDbGFzcyx0aGlzLl9vcHRpb25zLmxhc3RGYWxsaW5nQ2xhc3MpfSxTLnByb3RvdHlwZS5kaXNhYmxlPWZ1bmN0aW9uKCl7dGhpcy5lbmFibGVkPSExLHRoaXMuZGlzY29ubmVjdCgpfSxTLnByb3RvdHlwZS5lbmFibGU9ZnVuY3Rpb24oKXt0aGlzLmVuYWJsZWQ9ITAsdGhpcy5jb25uZWN0KCl9LFMucHJvdG90eXBlLnNldFN0YXRlSG9vaz1mdW5jdGlvbihlKXtudWxsPT09ZSYmdGhpcy5fc2V0U3RhdGVIb29rP2RlbGV0ZSB0aGlzLl9zZXRTdGF0ZUhvb2s6ImZ1bmN0aW9uIj09dHlwZW9mIGUmJih0aGlzLl9zZXRTdGF0ZUhvb2s9ZSl9LFMucHJvdG90eXBlLl9zZXRDYWNoZT1mdW5jdGlvbihlLHQpe251bGw9PXQ/ZGVsZXRlIHRoaXMuX2NhY2hlW2VdOnRoaXMuX2NhY2hlW2VdPXR9LFMucHJvdG90eXBlLl9nZXRDYWNoZT1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5fY2FjaGUmJnRoaXMuX2NhY2hlW2VdfSxTLnByb3RvdHlwZS5nZXRPcHRpb25zPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX29wdGlvbnN9fSw1Njk4MTkoZSx0LG8pe3ZhciBuPW8oNzcwNzU1KS5vcGVuUGF5d2FsbCxpPW8oNjEzODcwKS5zaG93U2lnbk1vZGFsO3dpbmRvdy5UVkRpYWxvZ3M9e3Nob3dTaWduSW5EaWFsb2c6ZnVuY3Rpb24oZSl7cmV0dXJuIGkoZSl9LHNob3dHb1Byb0RpYWxvZzpmdW5jdGlvbihlKXtuKGUpfX19LDIyMTA2MShlLHQsbyl7dmFyIG47by5kKHQse0xPR0xFVkVMOigpPT5uLGdldExvZ0hpc3Rvcnk6KCk9PncsZ2V0TG9nTGV2ZWw6KCk9PnUsZ2V0TG9nZ2VyOigpPT55LGdldFJhd0xvZ0hpc3Rvcnk6KCk9PnAsaXNIaWdoUmF0ZUVuYWJsZWQ6KCk9Pm0sbG9nZ2luZ09mZjooKT0+Uyxsb2dnaW5nT246KCk9PmIsc2VyaWFsaXplTG9nSGlzdG9yeUVudHJ5OigpPT5mLHNldEhpZ2hSYXRlU3RhdHVzOigpPT5fLHNldExvZ0xldmVsOigpPT5nfSksZnVuY3Rpb24oZSl7ZVtlLkVSUk9SPTFdPSJFUlJPUiIsZVtlLldBUk5JTkc9Ml09IldBUk5JTkciLGVbZS5JTkZPPTNdPSJJTkZPIixlW2UuTk9STUFMPTRdPSJOT1JNQUwiLGVbZS5ERUJVRz01XT0iREVCVUcifShufHwobj17fSkpO2xldCBpPTA7Y29uc3Qgcz1bXTtsZXQgcj1udWxsLGE9bnVsbCxsPW51bGwsYz1udWxsLGg9bi5XQVJOSU5HLGQ9ITE7ZnVuY3Rpb24gdSgpe3JldHVybiBofWZ1bmN0aW9uIG0oKXtyZXR1cm4gZH1mdW5jdGlvbiBnKGUpe2U9TWF0aC5tYXgobi5FUlJPUixNYXRoLm1pbihuLkRFQlVHLGUpKSxoPWV9ZnVuY3Rpb24gXyhlKXtkPWV9ZnVuY3Rpb24gcChlLHQpe2xldCBvPXMucmVkdWNlKCgoZSx0KT0+ZS5jb25jYXQodCkpLFtdKTtyZXR1cm4gby5zb3J0KCgoZSx0KT0+ZS5pZC10LmlkKSksdm9pZCAwIT09dCYmKG89by5maWx0ZXIoKGU9PmUuc3ViU3lzdGVtSWQ9PT10KSkpLCJudW1iZXIiPT10eXBlb2YgZSYmKG89by5zbGljZSgtZSkpLG99ZnVuY3Rpb24gZihlKXtyZXR1cm4gbmV3IERhdGUoZS50aW1lc3RhbXApLnRvSVNPU3RyaW5nKCkrIjoiK2Uuc3ViU3lzdGVtSWQrIjoiK2UubWVzc2FnZS5yZXBsYWNlKC8iL2csIiciKX1jb25zdCB3PShlLHQpPT5mdW5jdGlvbihlLHQpe2xldCBvLG49MCxpPTA7Zm9yKG89ZS5sZW5ndGgtMTtvPj0xJiYobis9OCooMStlbmNvZGVVUklDb21wb25lbnQoZVtvXSkubGVuZ3RoKSwhKG8tMT4wJiYoaT04KigxK2VuY29kZVVSSUNvbXBvbmVudChlW28tMV0pLmxlbmd0aCksbitpPnQpKSk7by0tKTtyZXR1cm4gZS5zbGljZShvKX0ocChlLHQpLm1hcChmKSw3NTQ5NzQ3Mik7ZnVuY3Rpb24gdihlLHQsbyxzLGQpe2lmKHQ9PT1hJiZzLmlkPT09bClyZXR1cm47Y29uc3QgdT1uZXcgRGF0ZTtpZihlPD1uLk5PUk1BTCYmZnVuY3Rpb24oZSx0LG8sbixzLHIpeyJmdW5jdGlvbiI9PXR5cGVvZiBzdHJ1Y3R1cmVkQ2xvbmUmJih0PXN0cnVjdHVyZWRDbG9uZSh0KSksdD10LnNsaWNlKDAscj8/MWUzKTtjb25zdCBhPXtpZDppLG1lc3NhZ2U6dCxzdWJTeXN0ZW1JZDpuLHRpbWVzdGFtcDpOdW1iZXIoZSl9O2krPTEsby5wdXNoKGEpLHZvaWQgMCE9PXMmJm8ubGVuZ3RoPnMmJm8uc3BsaWNlKDAsMSl9KHUsdCxvLHMuaWQscy5tYXhDb3VudCxkKSxlPD1oJiYoIXMuaGlnaFJhdGV8fG0oKSkmJighcnx8cy5pZC5tYXRjaChyKSkpe2NvbnN0IG89dS50b0lTT1N0cmluZygpKyI6IitzLmlkKyI6Iit0O3N3aXRjaChlKXtjYXNlIG4uREVCVUc6Y29uc29sZS5kZWJ1ZyhvKTticmVhaztjYXNlIG4uSU5GTzpjYXNlIG4uTk9STUFMOnMuY29sb3I/Y29uc29sZS5sb2coIiVjIitvLCJjb2xvcjogIitzLmNvbG9yKTpjb25zb2xlLmxvZyhvKTticmVhaztjYXNlIG4uV0FSTklORzpjb25zb2xlLndhcm4obyk7YnJlYWs7Y2FzZSBuLkVSUk9SOmNvbnNvbGUuZXJyb3Iobyl9YT10LGw9cy5pZCxudWxsIT09YyYmY2xlYXJUaW1lb3V0KGMpLGM9c2V0VGltZW91dCgoKCk9PnthPW51bGwsbD1udWxsLGM9bnVsbH0pLDFlMyl9fWZ1bmN0aW9uIHkoZSx0PXt9KXtjb25zdCBvPVtdO3MucHVzaChvKTtjb25zdCBpPU9iamVjdC5hc3NpZ24odCx7aWQ6ZX0pO2Z1bmN0aW9uIHIoZSl7cmV0dXJuKHQsbik9PnYoZSxTdHJpbmcodCksbyxpLG4pfXJldHVybntsb2dEZWJ1ZzpyKG4uREVCVUcpLGxvZ0Vycm9yOnIobi5FUlJPUiksbG9nSW5mbzpyKG4uSU5GTyksbG9nTm9ybWFsOnIobi5OT1JNQUwpLGxvZ1dhcm46cihuLldBUk5JTkcpfX1jb25zdCBiPShlLHQpPT57ZyhuLkRFQlVHKSxkPUJvb2xlYW4oZSkscj10fHxudWxsfSxTPSgpPT57ZyhuLklORk8pfX19XSk7"}},"time_used":3,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":3,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/17087.a5eaeb30f7d269f97b41.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:13.759Z","timestamp":1785148033759,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/17087.a5eaeb30f7d269f97b41.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:13 GMT\r\ncontent-type: text/css; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a58ab11-42b\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Thu, 16 Jul 2026 09:57:37 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/16/2026 11:03:21\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 723e7ec3588a959daf87eec8197a684c\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":1067,"size_decoded":1275,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with very long lines (1067), with no line terminators","md5":"aea2379787588b2971ae93e1d08d1a76","sha1":"53a871c666693bc64ceee27711d27c2da35b8e8c","sha256":"3f0a48597dbd15d013833ffec5807ed9172b4072ca308dd16df1be793bcb6f34","sha512":"596f5b4924bfab46ac651687876c9a32ee13e028d0057c8165ce38a28d0049e29f55a5ea96f247401e43f0a6f2a6c054ea0b6e8eadca7d7ba33b29c3145d0cf1","ssdeep":"","tlshash":"6a111f148180f63dbd23f22087a0578a3279745199976e9eed0de17141cfbf52ba5cdc","first_seen":"2026-07-16T20:48:56.383088Z","last_seen":"2026-07-27T12:53:42.664402Z","times_seen":399,"resource_available":false,"data":"W2RhdGEtdGhlbWU9bGlnaHRdey0tXzAtbEhsRzp2YXIoLS1jb2xvci1jb2xkLWdyYXktNDAwKX1bZGF0YS10aGVtZT1kYXJrXXstLV8wLWxIbEc6dmFyKC0tY29sb3ItY29sZC1ncmF5LTk1MCl9LndyYXAtaWlpMTE4b057Ym90dG9tOjA7ZGlzcGxheTpmbGV4O2luc2V0LWlubGluZS1lbmQ6MDtpbnNldC1pbmxpbmUtc3RhcnQ6MDtwb3NpdGlvbjpmaXhlZDt0b3A6MDt6LWluZGV4OjB9LndyYXAtaWlpMTE4b04ucG9zaXRpb25Cb3R0b20taWlpMTE4b057YWxpZ24taXRlbXM6ZmxleC1lbmR9LmJhY2tkcm9wLWlpaTExOG9Oe2JhY2tncm91bmQtY29sb3I6dmFyKC0tXzAtbEhsRyk7Ym90dG9tOjA7aW5zZXQtaW5saW5lLWVuZDowO2luc2V0LWlubGluZS1zdGFydDowO29wYWNpdHk6Ljc7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7dHJhbnNmb3JtOnRyYW5zbGF0ZVooMCl9LmRyYXdlci1paWkxMThvTntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXR2LWNvbG9yLXBvcHVwLWJhY2tncm91bmQsdmFyKC0tY29sb3ItcG9wdXAtYmFja2dyb3VuZCkpO2JveC1zaXppbmc6Ym9yZGVyLWJveDtwYWRkaW5nOjZweCAwOy13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOnRvdWNoO2JveC1zaGFkb3c6MCAycHggNHB4IHZhcigtLWNvbG9yLXNoYWRvdy1wcmltYXJ5LW5ldXRyYWwtZXh0cmEtaGVhdnkpO3otaW5kZXg6MX0uZHJhd2VyLWlpaTExOG9OLnBvc2l0aW9uTGVmdC1paWkxMThvTnttYXJnaW4taW5saW5lLWVuZDo0MHB4O21heC13aWR0aDpjYWxjKDEwMCUgLSA0MHB4KTttaW4td2lkdGg6MjYwcHh9LmRyYXdlci1paWkxMThvTi5wb3NpdGlvbkJvdHRvbS1paWkxMThvTntib3JkZXItc3RhcnQtZW5kLXJhZGl1czo2cHg7Ym9yZGVyLXN0YXJ0LXN0YXJ0LXJhZGl1czo2cHg7ZmxleC1iYXNpczoxMDAlO21hcmdpbi10b3A6dmFyKC0tZHJhd2VyLW1hcmdpbi10b3AtZGlzdGFuY2UsMTAwcHgpO21heC1oZWlnaHQ6Y2FsYygxMDAlIC0gdmFyKC0tZHJhd2VyLW1pbi10b3AtZGlzdGFuY2UsIDEwMHB4KSk7b3ZlcmZsb3c6YXV0b30uZHJhd2VyLWlpaTExOG9OOmZvY3Vze291dGxpbmU6bm9uZX0="}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.gstatic.com/_/translate_http/_/ss/k=translate_http.tr.B7Dih9Jyjnw.L.F4.O/am=BIAABw/d=0/rs=AN8SPfpC04vrrzQXgs_TCM5EtruwfPzNtQ/m=el_main_css","fqdn":"www.gstatic.com","domain":"gstatic.com","tld":"com"},"ip":{"addr":"142.250.178.67","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://digital-assettrade.com/","date":"2026-07-27T10:27:13.852Z","timestamp":1785148033852,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.gstatic.com","organization":""},"issuer":{"commonName":"WE2","organization":"Google Trust Services"},"validity":{"start":"Mon, 29 Jun 2026 08:39:25 GMT","end":"Mon, 21 Sep 2026 08:39:24 GMT"},"fingerprint":{"sha1":"4E:F2:73:C6:27:16:58:35:FE:55:D5:30:6B:E8:6D:2B:DA:B0:E8:7B","sha256":"82:EF:6A:61:96:A5:23:D6:2C:2C:9D:77:67:04:D8:7B:3B:6A:50:DA:3C:6C:6A:5F:4E:2D:55:F3:FC:DA:0B:EE"}}},"request":{"raw":"GET /_/translate_http/_/ss/k=translate_http.tr.B7Dih9Jyjnw.L.F4.O/am=BIAABw/d=0/rs=AN8SPfpC04vrrzQXgs_TCM5EtruwfPzNtQ/m=el_main_css HTTP/1.1\r\nHost: www.gstatic.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-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://digital-assettrade.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\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/3 200 \r\naccept-ranges: bytes\r\ncontent-encoding: gzip\r\naccess-control-allow-origin: *\r\ncontent-security-policy-report-only: require-trusted-types-for 'script'; report-uri https://csp.withgoogle.com/csp/rosetta\r\ncross-origin-resource-policy: cross-origin\r\ncross-origin-opener-policy: same-origin; report-to=\"rosetta\"\r\nreport-to: {\"group\":\"rosetta\",\"max_age\":2592000,\"endpoints\":[{\"url\":\"https://csp.withgoogle.com/csp/report-to/rosetta\"}]}\r\ncontent-length: 3967\r\nx-content-type-options: nosniff\r\nserver: sffe\r\nx-xss-protection: 0\r\ndate: Wed, 22 Jul 2026 13:10:44 GMT\r\nexpires: Thu, 22 Jul 2027 13:10:44 GMT\r\ncache-control: public, max-age=31536000\r\nlast-modified: Thu, 09 Apr 2026 01:12:55 GMT\r\ncontent-type: text/css; charset=UTF-8\r\nvary: Accept-Encoding\r\nage: 422189\r\nalt-svc: h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":null,"data":{"size":20284,"size_decoded":4799,"mime_type":"text/css; charset=UTF-8","magic":"ASCII text, with very long lines (20284), with no line terminators","md5":"fde4f72b90fe807270db3c332dd058df","sha1":"7ef4d70af01c38a7f80a7650be25f63aff4ba751","sha256":"ab31c9be358d2107fc1158434c7aeaaf15f82e3e405ed67ab236b5ac232ed159","sha512":"9bef39350af557afeb10cb71068426ab28befaf5295359954787be06a5ce0993d69e8f5018a5a17c44311d294dd1a87a6f82edd0f5743df0149b8e4e53061695","ssdeep":"192:nvqx/EhZINcrXsfg0SgG8CqA3uku9SJFzvQVMbnUIfIxIVVpTrecfzPtcmt4v78l:gMF8Sb3i0JFzourUqWMVpTrdfzPtcBG","tlshash":"c492872057aed01967efa82364d36dff71d444db90123eeaaf5a7352cd821f231ea214","first_seen":"2026-04-13T20:43:22.641436Z","last_seen":"2026-07-27T13:00:41.357947Z","times_seen":17728,"resource_available":false,"data":"LlZJcGdKZC1aVmk5b2QtT1JIYi1PRVZtY2R7bGVmdDowO3RvcDowO2hlaWdodDozOXB4O3dpZHRoOjEwMCU7ei1pbmRleDoxMDAwMDAwMTtwb3NpdGlvbjpmaXhlZDtib3JkZXI6bm9uZTtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjNkI5MERBO21hcmdpbjowO2JveC1zaGFkb3c6MCAwIDhweCAxcHggIzk5OX0uVklwZ0pkLVpWaTlvZC14bDA3T2ItT0VWbWNke3otaW5kZXg6MTAwMDAwMDI7Ym9yZGVyOm5vbmU7cG9zaXRpb246Zml4ZWQ7Ym94LXNoYWRvdzowIDNweCA4cHggMnB4ICM5OTl9LlZJcGdKZC1aVmk5b2QtU21mWi1PRVZtY2R7ei1pbmRleDoxMDAwMDAwMDtib3JkZXI6bm9uZTttYXJnaW46MH0uZ29vZy10ZS1nYWRnZXR7Zm9udC1mYW1pbHk6YXJpYWw7Zm9udC1zaXplOjExcHg7Y29sb3I6IzY2Njt3aGl0ZS1zcGFjZTpub3dyYXB9Lmdvb2ctdGUtZ2FkZ2V0IGltZ3t2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7Ym9yZGVyOm5vbmV9Lmdvb2ctdGUtZ2FkZ2V0LXNpbXBsZXtiYWNrZ3JvdW5kLWNvbG9yOiNGRkY7Ym9yZGVyLWxlZnQ6MXB4IHNvbGlkICNENUQ1RDU7Ym9yZGVyLXRvcDoxcHggc29saWQgIzlCOUI5Qjtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjRThFOEU4O2JvcmRlci1yaWdodDoxcHggc29saWQgI0Q1RDVENTtmb250LXNpemU6MTBwdDtkaXNwbGF5OmlubGluZS1ibG9jaztwYWRkaW5nLXRvcDoxcHg7cGFkZGluZy1ib3R0b206MnB4O2N1cnNvcjpwb2ludGVyfS5nb29nLXRlLWdhZGdldC1pY29ue21hcmdpbi1sZWZ0OjJweDttYXJnaW4tcmlnaHQ6MnB4O3dpZHRoOjE5cHg7aGVpZ2h0OjE5cHg7Ym9yZGVyOm5vbmU7dmVydGljYWwtYWxpZ246bWlkZGxlfS5nb29nLXRlLWNvbWJve21hcmdpbi1sZWZ0OjRweDttYXJnaW4tcmlnaHQ6NHB4O3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lfS5nb29nLXRlLWdhZGdldCAuZ29vZy10ZS1jb21ib3ttYXJnaW46NHB4IDB9LlZJcGdKZC1aVmk5b2QtbDRlSFgtaFNSR1BkLC5WSXBnSmQtWlZpOW9kLWw0ZUhYLWhTUkdQZDphY3RpdmUsLlZJcGdKZC1aVmk5b2QtbDRlSFgtaFNSR1BkOmhvdmVyLC5WSXBnSmQtWlZpOW9kLWw0ZUhYLWhTUkdQZDpsaW5rLC5WSXBnSmQtWlZpOW9kLWw0ZUhYLWhTUkdQZDp2aXNpdGVke2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjcwMDtjb2xvcjojNDQ0O3RleHQtZGVjb3JhdGlvbjpub25lfS5WSXBnSmQtWlZpOW9kLU9SSGIgLlZJcGdKZC1aVmk5b2QtbDRlSFgtaFNSR1BkLC5WSXBnSmQtWlZpOW9kLVR2RDlQYy1oU1JHUGR7ZGlzcGxheTpibG9jazttYXJnaW46MCAxMHB4fS5WSXBnSmQtWlZpOW9kLU9SSGIgLlZJcGdKZC1aVmk5b2QtbDRlSFgtaFNSR1Bke3BhZGRpbmctdG9wOjJweDtwYWRkaW5nLWxlZnQ6NHB4fS5WSXBnSmQtWlZpOW9kLU9SSGIgKiwuVklwZ0pkLVpWaTlvZC1TbWZaICosLlZJcGdKZC1aVmk5b2QtbDl4a3RmICosLlZJcGdKZC1aVmk5b2QtdkgxR21mICosLlZJcGdKZC1aVmk5b2QteGwwN09iICosLmdvb2ctdGUtY29tYm97Zm9udC1mYW1pbHk6YXJpYWw7Zm9udC1zaXplOjEwcHR9LlZJcGdKZC1aVmk5b2QtT1JIYnttYXJnaW46MDtiYWNrZ3JvdW5kLWNvbG9yOiNFNEVGRkI7b3ZlcmZsb3c6aGlkZGVufS5WSXBnSmQtWlZpOW9kLU9SSGIgaW1ne2JvcmRlcjpub25lfS5WSXBnSmQtWlZpOW9kLU9SSGItYk45N1Bje2NvbG9yOiMwMDB9LlZJcGdKZC1aVmk5b2QtT1JIYi1iTjk3UGMgaW1ne3ZlcnRpY2FsLWFsaWduOm1pZGRsZX0uVklwZ0pkLVpWaTlvZC1PUkhiLVRzd3YxYntjb2xvcjojNjY2O3ZlcnRpY2FsLWFsaWduOnRvcDttYXJnaW4tdG9wOjA7Zm9udC1zaXplOjdwdH0uVklwZ0pkLVpWaTlvZC1PUkhiLUtFNnZxZXt3aWR0aDo4cHh9LlZJcGdKZC1aVmk5b2QtTGdic1Nle2JvcmRlci1jb2xvcjojRTdFN0U3O2JvcmRlci1zdHlsZTpub25lIHNvbGlkIHNvbGlkIG5vbmU7Ym9yZGVyLXdpZHRoOjAgMXB4IDFweCAwfS5WSXBnSmQtWlZpOW9kLUxnYnNTZSBkaXZ7Ym9yZGVyLWNvbG9yOiNDQ0MgIzk5OSAjOTk5ICNDQ0M7Ym9yZGVyLXJpZ2h0OjFweCBzb2xpZCAjOTk5O2JvcmRlci1zdHlsZTpzb2xpZDtib3JkZXItd2lkdGg6MXB4O2hlaWdodDoyMHB4fS5WSXBnSmQtWlZpOW9kLUxnYnNTZSBidXR0b257YmFja2dyb3VuZDp0cmFuc3BhcmVudDtib3JkZXI6bm9uZTtjdXJzb3I6cG9pbnRlcjtoZWlnaHQ6MjBweDtvdmVyZmxvdzpoaWRkZW47bWFyZ2luOjA7dmVydGljYWwtYWxpZ246dG9wO3doaXRlLXNwYWNlOm5vd3JhcH0uVklwZ0pkLVpWaTlvZC1MZ2JzU2UgYnV0dG9uOmFjdGl2ZXtiYWNrZ3JvdW5kOm5vbmUgcmVwZWF0IHNjcm9sbCAwIDAgI0NDQ30uVklwZ0pkLVpWaTlvZC1TbWZae21hcmdpbjowO2JhY2tncm91bmQtY29sb3I6I0ZGRjt3aGl0ZS1zcGFjZTpub3dyYXB9LlZJcGdKZC1aVmk5b2QtU21mWi1oU1JHUGR7dGV4dC1kZWNvcmF0aW9uOm5vbmU7Zm9udC13ZWlnaHQ6NzAwO2ZvbnQtc2l6ZToxMHB0O2JvcmRlcjoxcHggb3V0c2V0ICM4ODg7cGFkZGluZzo2cHggMTBweDt3aGl0ZS1zcGFjZTpub3dyYXA7cG9zaXRpb246YWJzb2x1dGU7bGVmdDowO3RvcDowfS5WSXBnSmQtWlZpOW9kLVNtZlotaFNSR1BkIGltZ3ttYXJnaW4tbGVmdDoycHg7bWFyZ2luLXJpZ2h0OjJweDt3aWR0aDoxOXB4O2hlaWdodDoxOXB4O2JvcmRlcjpub25lO3ZlcnRpY2FsLWFsaWduOm1pZGRsZX0uVklwZ0pkLVpWaTlvZC1TbWZaLWhTUkdQZCBzcGFue3RleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7bWFyZ2luLWxlZnQ6MnB4O21hcmdpbi1yaWdodDoycHg7dmVydGljYWwtYWxpZ246bWlkZGxlfS5nb29nLXRlLWZsb2F0LXRvcCAuVklwZ0pkLVpWaTlvZC1TbWZaLWhTUkdQZHtwYWRkaW5nOjJweDtib3JkZXItdG9wLXdpZHRoOjB9Lmdvb2ctdGUtZmxvYXQtYm90dG9tIC5WSXBnSmQtWlZpOW9kLVNtZlotaFNSR1Bke3BhZGRpbmc6MnB4O2JvcmRlci1ib3R0b20td2lkdGg6MH0uVklwZ0pkLVpWaTlvZC14bDA3T2ItbFRCeGVke3RleHQtZGVjb3JhdGlvbjpub25lO2NvbG9yOiMwMEM7d2hpdGUtc3BhY2U6bm93cmFwO21hcmdpbi1sZWZ0OjRweDttYXJnaW4tcmlnaHQ6NHB4fS5WSXBnSmQtWlZpOW9kLXhsMDdPYi1sVEJ4ZWQgc3Bhbnt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lfS5WSXBnSmQtWlZpOW9kLXhsMDdPYi1sVEJ4ZWQgaW1ne21hcmdpbi1sZWZ0OjJweDttYXJnaW4tcmlnaHQ6MnB4fS5nb29nLXRlLWdhZGdldC1zaW1wbGUgLlZJcGdKZC1aVmk5b2QteGwwN09iLWxUQnhlZHtjb2xvcjojMDAwfS5nb29nLXRlLWdhZGdldC1zaW1wbGUgLlZJcGdKZC1aVmk5b2QteGwwN09iLWxUQnhlZCBzcGFue3RleHQtZGVjb3JhdGlvbjpub25lfS5WSXBnSmQtWlZpOW9kLXhsMDdPYntiYWNrZ3JvdW5kLWNvbG9yOiNGRkY7dGV4dC1kZWNvcmF0aW9uOm5vbmU7Ym9yZGVyOjJweCBzb2xpZCAjQzNEOUZGO292ZXJmbG93LXk6c2Nyb2xsO292ZXJmbG93LXg6aGlkZGVuO3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MDt0b3A6MH0uVklwZ0pkLVpWaTlvZC14bDA3T2ItaWJuQzZie3BhZGRpbmc6M3B4O3RleHQtZGVjb3JhdGlvbjpub25lfS5WSXBnSmQtWlZpOW9kLXhsMDdPYi1pYm5DNmIsLlZJcGdKZC1aVmk5b2QteGwwN09iLWlibkM2YjpsaW5re2NvbG9yOiMwMEM7YmFja2dyb3VuZDojRkZGfS5WSXBnSmQtWlZpOW9kLXhsMDdPYi1pYm5DNmI6dmlzaXRlZHtjb2xvcjojNTUxQThCfS5WSXBnSmQtWlZpOW9kLXhsMDdPYi1pYm5DNmI6aG92ZXJ7YmFja2dyb3VuZDojQzNEOUZGfS5WSXBnSmQtWlZpOW9kLXhsMDdPYi1pYm5DNmI6YWN0aXZle2NvbG9yOiMwMEN9LlZJcGdKZC1aVmk5b2QtdkgxR21me2JhY2tncm91bmQtY29sb3I6I0ZGRjt0ZXh0LWRlY29yYXRpb246bm9uZTtib3JkZXI6MXB4IHNvbGlkICM2QjkwREE7b3ZlcmZsb3c6aGlkZGVuO3BhZGRpbmc6NHB4fS5WSXBnSmQtWlZpOW9kLXZIMUdtZi1LcmhQTmJ7d2lkdGg6MTZweH0uVklwZ0pkLVpWaTlvZC12SDFHbWYtaGdEVXdle21hcmdpbjo2cHggMDtoZWlnaHQ6MXB4O2JhY2tncm91bmQtY29sb3I6I2FhYTtvdmVyZmxvdzpoaWRkZW59LlZJcGdKZC1aVmk5b2QtdkgxR21mLWlibkM2YiBkaXYsLlZJcGdKZC1aVmk5b2QtdkgxR21mLWlibkM2Yi1nazZTTWQgZGl2e3BhZGRpbmc6NHB4fS5WSXBnSmQtWlZpOW9kLXZIMUdtZi1pYm5DNmIgLnVERUZnZXtkaXNwbGF5Om5vbmV9LlZJcGdKZC1aVmk5b2QtdkgxR21mLWlibkM2Yi1nazZTTWQgLmZtY21Te3BhZGRpbmctbGVmdDo0cHg7cGFkZGluZy1yaWdodDo0cHh9LlZJcGdKZC1aVmk5b2QtdkgxR21mLWlibkM2YiwuVklwZ0pkLVpWaTlvZC12SDFHbWYtaWJuQzZiLWdrNlNNZHt0ZXh0LWRlY29yYXRpb246bm9uZX0uVklwZ0pkLVpWaTlvZC12SDFHbWYtaWJuQzZiIGRpdiwuVklwZ0pkLVpWaTlvZC12SDFHbWYtaWJuQzZiOmFjdGl2ZSBkaXYsLlZJcGdKZC1aVmk5b2QtdkgxR21mLWlibkM2YjpsaW5rIGRpdiwuVklwZ0pkLVpWaTlvZC12SDFHbWYtaWJuQzZiOnZpc2l0ZWQgZGl2e2NvbG9yOiMwMEM7YmFja2dyb3VuZDojRkZGfS5WSXBnSmQtWlZpOW9kLXZIMUdtZi1pYm5DNmI6aG92ZXIgZGl2e2NvbG9yOiNGRkY7YmFja2dyb3VuZDojMzZDfS5WSXBnSmQtWlZpOW9kLXZIMUdtZi1pYm5DNmItZ2s2U01kIGRpdiwuVklwZ0pkLVpWaTlvZC12SDFHbWYtaWJuQzZiLWdrNlNNZDphY3RpdmUgZGl2LC5WSXBnSmQtWlZpOW9kLXZIMUdtZi1pYm5DNmItZ2s2U01kOmhvdmVyIGRpdiwuVklwZ0pkLVpWaTlvZC12SDFHbWYtaWJuQzZiLWdrNlNNZDpsaW5rIGRpdiwuVklwZ0pkLVpWaTlvZC12SDFHbWYtaWJuQzZiLWdrNlNNZDp2aXNpdGVkIGRpdntjb2xvcjojMDAwO2ZvbnQtd2VpZ2h0OjcwMH0uVklwZ0pkLVpWaTlvZC1sOXhrdGZ7YmFja2dyb3VuZC1jb2xvcjojRkZGO292ZXJmbG93OmhpZGRlbjtwYWRkaW5nOjhweDtib3JkZXI6bm9uZTtib3JkZXItcmFkaXVzOjEwcHh9LlZJcGdKZC1aVmk5b2QtbDl4a3RmLU9FVm1jZHtiYWNrZ3JvdW5kLWNvbG9yOiNGRkY7Ym9yZGVyOjFweCBzb2xpZCAjNkI5MERBO2JveC1zaGFkb3c6MCAzcHggOHB4IDJweCAjOTk5O2JvcmRlci1yYWRpdXM6OHB4fS5WSXBnSmQtWlZpOW9kLWw5eGt0ZiBpbWd7Ym9yZGVyOm5vbmV9LlZJcGdKZC1aVmk5b2QtbDl4a3RmLWZtY21Te21hcmdpbi10b3A6NnB4fS5WSXBnSmQtWlZpOW9kLWw5eGt0Zi1WZ3dKbGN7bWFyZ2luLXRvcDo2cHg7d2hpdGUtc3BhY2U6bm93cmFwfS5WSXBnSmQtWlZpOW9kLWw5eGt0Zi1WZ3dKbGMgKnt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9LlZJcGdKZC1aVmk5b2QtbDl4a3RmLVZnd0psYyAuRFVHSmlle2JhY2tncm91bmQtaW1hZ2U6dXJsKGh0dHBzOi8vd3d3Jmdvb2dsZS5jb20vaW1hZ2VzL3ppcHB5X21pbnVzX3NtLmdpZil9LlZJcGdKZC1aVmk5b2QtbDl4a3RmLVZnd0psYyAuVGR5VERle2JhY2tncm91bmQtaW1hZ2U6dXJsKGh0dHBzOi8vd3d3Jmdvb2dsZS5jb20vaW1hZ2VzL3ppcHB5X3BsdXNfc20uZ2lmKX0uVklwZ0pkLVpWaTlvZC1sOXhrdGYtVmd3SmxjIHNwYW57Y29sb3I6IzAwQzt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lO2N1cnNvcjpwb2ludGVyO21hcmdpbjowIDRweH0uVklwZ0pkLVpWaTlvZC1sOXhrdGYtSTlHTHB7bWFyZ2luOjZweCAwIDB9LlZJcGdKZC1aVmk5b2QtbDl4a3RmLUk5R0xwIGZvcm17bWFyZ2luOjB9LlZJcGdKZC1aVmk5b2QtbDl4a3RmLUk5R0xwIGZvcm0gdGV4dGFyZWF7bWFyZ2luLWJvdHRvbTo0cHg7d2lkdGg6MTAwJX0uVklwZ0pkLVpWaTlvZC1sOXhrdGYteWVQZTVje21hcmdpbjo2cHggMCA0cHh9LlZJcGdKZC1aVmk5b2QtYVoyd0VlLXdPSE15Znt6LWluZGV4OjEwMDA7cG9zaXRpb246Zml4ZWQ7dHJhbnNpdGlvbi1kZWxheTouNnM7bGVmdDotMTAwMHB4O3RvcDotMTAwMHB4fS5WSXBnSmQtWlZpOW9kLWFaMndFZS13T0hNeWYtdGk2aEdje3RyYW5zaXRpb24tZGVsYXk6MHM7bGVmdDotMTRweDt0b3A6LTE0cHh9LlZJcGdKZC1aVmk5b2QtYVoyd0VlLU9paUNPe2Rpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTpmbGV4Oy1tb3otYm94LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7LW1vei1ib3gtcGFjazpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjt3aWR0aDoxMDRweDtoZWlnaHQ6MTA0cHg7Ym9yZGVyLXJhZGl1czo1MHB4O2JhY2tncm91bmQ6I0ZGRiB1cmwoaHR0cHM6Ly93d3cuZ3N0YXRpYy5jb20vaW1hZ2VzL2JyYW5kaW5nL3Byb2R1Y3QvMngvdHJhbnNsYXRlXzI0ZHAucG5nKSA1MCUgNTAlIG5vLXJlcGVhdDt0cmFuc2l0aW9uOmFsbCAuNnMgZWFzZS1pbi1vdXQ7dHJhbnNmb3JtOnNjYWxlKC40KTtvcGFjaXR5OjB9LlZJcGdKZC1aVmk5b2QtYVoyd0VlLU9paUNPLXRpNmhHY3t0cmFuc2Zvcm06c2NhbGUoLjUpO29wYWNpdHk6MX0uVklwZ0pkLVpWaTlvZC1hWjJ3RWV7bWFyZ2luOjJweCAwIDAgMnB4O2FuaW1hdGlvbjpzcGlubmVyLXJvdGF0b3IgMS40cyBsaW5lYXIgaW5maW5pdGV9QGtleWZyYW1lcyBzcGlubmVyLXJvdGF0b3J7MCV7dHJhbnNmb3JtOnJvdGF0ZSgwZGVnKX10b3t0cmFuc2Zvcm06cm90YXRlKDI3MGRlZyl9fS5WSXBnSmQtWlZpOW9kLWFaMndFZS1KdDVjS3tzdHJva2UtZGFzaGFycmF5OjE4NztzdHJva2UtZGFzaG9mZnNldDowO3N0cm9rZTojNDI4NUY0O3RyYW5zZm9ybS1vcmlnaW46Y2VudGVyO2FuaW1hdGlvbjpzcGlubmVyLWRhc2ggMS40cyBlYXNlLWluLW91dCBpbmZpbml0ZX1Aa2V5ZnJhbWVzIHNwaW5uZXItZGFzaHswJXtzdHJva2UtZGFzaG9mZnNldDoxODd9NTAle3N0cm9rZS1kYXNob2Zmc2V0OjQ2Ljc1O3RyYW5zZm9ybTpyb3RhdGUoMTM1ZGVnKX10b3tzdHJva2UtZGFzaG9mZnNldDoxODc7dHJhbnNmb3JtOnJvdGF0ZSg0NTBkZWcpfX0uVklwZ0pkLXlBV05FYi1MN2xia2IgYSwuVklwZ0pkLXlBV05FYi1MN2xia2IgYm9keSwuVklwZ0pkLXlBV05FYi1MN2xia2IgZGl2LC5WSXBnSmQteUFXTkViLUw3bGJrYiBmb3JtLC5WSXBnSmQteUFXTkViLUw3bGJrYiBoMSwuVklwZ0pkLXlBV05FYi1MN2xia2IgaDIsLlZJcGdKZC15QVdORWItTDdsYmtiIGgzLC5WSXBnSmQteUFXTkViLUw3bGJrYiBoNCwuVklwZ0pkLXlBV05FYi1MN2xia2IgaDUsLlZJcGdKZC15QVdORWItTDdsYmtiIGg2LC5WSXBnSmQteUFXTkViLUw3bGJrYiBodG1sLC5WSXBnSmQteUFXTkViLUw3bGJrYiBpZnJhbWUsLlZJcGdKZC15QVdORWItTDdsYmtiIGltZywuVklwZ0pkLXlBV05FYi1MN2xia2IgbGksLlZJcGdKZC15QVdORWItTDdsYmtiIG9sLC5WSXBnSmQteUFXTkViLUw3bGJrYiBwLC5WSXBnSmQteUFXTkViLUw3bGJrYiBzcGFuLC5WSXBnSmQteUFXTkViLUw3bGJrYiB0YWJsZSwuVklwZ0pkLXlBV05FYi1MN2xia2IgdGJvZHksLlZJcGdKZC15QVdORWItTDdsYmtiIHRkLC5WSXBnSmQteUFXTkViLUw3bGJrYiB0ciwuVklwZ0pkLXlBV05FYi1MN2xia2IgdWx7YWxsOnVuc2V0O2ZvbnQtc2l6ZToxMDAlO2xpbmUtaGVpZ2h0Om5vcm1hbH0uVklwZ0pkLXlBV05FYi1MN2xia2Igb2wsLlZJcGdKZC15QVdORWItTDdsYmtiIHVse2xpc3Qtc3R5bGU6bm9uZX0uVklwZ0pkLXlBV05FYi1MN2xia2IgdGFibGV7Ym9yZGVyLWNvbGxhcHNlOmNvbGxhcHNlO2JvcmRlci1zcGFjaW5nOjB9LlZJcGdKZC15QVdORWItTDdsYmtiIGNhcHRpb24sLlZJcGdKZC15QVdORWItTDdsYmtiIHRkLC5WSXBnSmQteUFXTkViLUw3bGJrYiB0aHt0ZXh0LWFsaWduOmxlZnQ7Zm9udC13ZWlnaHQ6NDAwfS5WSXBnSmQteUFXTkViLUw3bGJrYiBpbnB1dDo6LW1vei1mb2N1cy1pbm5lcntib3JkZXI6MH1kaXY+LlZJcGdKZC15QVdORWItTDdsYmtie3BhZGRpbmc6MTBweCAxNHB4fS5WSXBnSmQteUFXTkViLUw3bGJrYntjb2xvcjojMjIyO2JhY2tncm91bmQtY29sb3I6I2ZmZjtib3JkZXI6MXB4IHNvbGlkICNlZWU7Ym94LXNoYWRvdzowIDRweCAxNnB4IHJnYmEoMCwwLDAsLjIpOy1tb3otYm94LXNoYWRvdzowIDRweCAxNnB4IHJnYmEoMCwwLDAsLjIpOy13ZWJraXQtYm94LXNoYWRvdzowIDRweCAxNnB4IHJnYmEoMCwwLDAsLjIpO2Rpc3BsYXk6bm9uZTtmb250LWZhbWlseTphcmlhbDtmb250LXNpemU6MTBwdDt3aWR0aDo0MjBweDtwYWRkaW5nOjEycHg7cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxMDAwMH0uVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItblZNZmNkLWZtY21TLC5WSXBnSmQteUFXTkViLXlBV05FYi1WeTJBcWMtcGJUVFlle2NsZWFyOmJvdGg7Zm9udC1zaXplOjEwcHQ7cG9zaXRpb246cmVsYXRpdmU7dGV4dC1hbGlnbjpqdXN0aWZ5O3dpZHRoOjEwMCV9LlZJcGdKZC15QVdORWItTDdsYmtiIC5WSXBnSmQteUFXTkViLXI0bmtle2NvbG9yOiM5OTk7Zm9udC1mYW1pbHk6YXJpYWwsc2Fucy1zZXJpZjttYXJnaW46NHB4IDA7dGV4dC1hbGlnbjpsZWZ0fS5WSXBnSmQteUFXTkViLUw3bGJrYiAuVklwZ0pkLXlBV05FYi1UdkQ5UGMtTGdic1Nle2Rpc3BsYXk6bm9uZX0uVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItbDRlSFh7ZmxvYXQ6bGVmdDttYXJnaW46MH0uVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItWjBBcnFmLVBMRGJiZntkaXNwbGF5OmlubGluZS1ibG9ja30uVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItZnc0MlplLVowQXJxZi1oYUFjbGZ7ZGlzcGxheTpub25lO3dpZHRoOjEwMCV9LlZJcGdKZC15QVdORWItTDdsYmtiIC5WSXBnSmQteUFXTkViLVowQXJxZi1IOXREdHttYXJnaW4tdG9wOjIwcHh9LlZJcGdKZC15QVdORWItTDdsYmtiIC5WSXBnSmQteUFXTkViLUxLNXl1e2Zsb2F0OmxlZnR9LlZJcGdKZC15QVdORWItTDdsYmtiIC5WSXBnSmQteUFXTkViLXF3VThNZXtmbG9hdDpyaWdodH0uVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItY0dNSTJie21pbi1oZWlnaHQ6MTVweDtwb3NpdGlvbjpyZWxhdGl2ZTtoZWlnaHQ6MSV9LlZJcGdKZC15QVdORWItTDdsYmtiIC5WSXBnSmQteUFXTkViLWpPZmtNYi1OZTNzRmZ7YmFja2dyb3VuZDotbXMtbGluZWFyLWdyYWRpZW50KHRvcCwjMjk5MTBkIDAsIzIwYWYwZSAxMDAlKTtiYWNrZ3JvdW5kOiMyOTkxMGQ7Ym9yZGVyLXJhZGl1czo0cHg7LW1vei1ib3JkZXItcmFkaXVzOjRweDstd2Via2l0LWJvcmRlci1yYWRpdXM6NHB4O2JveC1zaGFkb3c6aW5zZXQgMCAycHggMnB4ICMxZTY2MDk7LW1vei1ib3gtc2hhZG93Omluc2V0IDAgMnB4IDJweCAjMWU2NjA5Oy13ZWJraXQtYm94LXNoYWRvdzppbnNldCAwIDJweCAycHggIzFlNjYwOTtjb2xvcjp3aGl0ZTtmb250LXNpemU6OXB0O2ZvbnQtd2VpZ2h0OmJvbGRlcjttYXJnaW4tdG9wOjEycHg7cGFkZGluZzo2cHg7dGV4dC1zaGFkb3c6MXB4IDFweCAxcHggIzFlNjYwOX0uVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItWjBBcnFmLWhTUkdQZHtjb2xvcjojMTVjO2N1cnNvcjpwb2ludGVyO2ZvbnQtZmFtaWx5OmFyaWFsO2ZvbnQtc2l6ZToxMXB4O21hcmdpbi1yaWdodDoxNXB4O3RleHQtZGVjb3JhdGlvbjpub25lfS5WSXBnSmQteUFXTkViLUw3bGJrYj50ZXh0YXJlYXtmb250LWZhbWlseTphcmlhbDtyZXNpemU6dmVydGljYWw7d2lkdGg6MTAwJTttYXJnaW4tYm90dG9tOjEwcHg7Ym9yZGVyLXJhZGl1czoxcHg7Ym9yZGVyOjFweCBzb2xpZCAjZDlkOWQ5O2JvcmRlci10b3A6MXB4IHNvbGlkIHNpbHZlcjtmb250LXNpemU6MTNweDtoZWlnaHQ6YXV0bztvdmVyZmxvdy15OmF1dG87cGFkZGluZzoxcHh9LlZJcGdKZC15QVdORWItTDdsYmtiIHRleHRhcmVhOmZvY3Vze2JveC1zaGFkb3c6aW5zZXQgMCAxcHggMnB4IHJnYmEoMCwwLDAsLjMpO2JvcmRlcjoxcHggc29saWQgIzRkOTBmZTtvdXRsaW5lOm5vbmV9LlZJcGdKZC15QVdORWItTDdsYmtiIC5WSXBnSmQteUFXTkViLVowQXJxZi1JYkUwU3ttYXJnaW4tcmlnaHQ6MTBweH0uVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItTDRObjVlLUk5R0xwe21pbi1oZWlnaHQ6MjVweDt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7cGFkZGluZy10b3A6OHB4fS5WSXBnSmQteUFXTkViLUw3bGJrYiAuVklwZ0pkLXlBV05FYi1MNE5uNWUtSTlHTHAgLlZJcGdKZC15QVdORWItWjBBcnFmLUk5R0xwe21hcmdpbi1ib3R0b206NXB4O21hcmdpbi1ib3R0b206MH0uVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItTDRObjVlLUk5R0xwIC5WSXBnSmQteUFXTkViLVowQXJxZi1JOUdMcCBpbnB1dHtkaXNwbGF5OmlubGluZS1ibG9jazttaW4td2lkdGg6NTRweDsqbWluLXdpZHRoOjcwcHg7Ym9yZGVyOjFweCBzb2xpZCAjZGNkY2RjO2JvcmRlcjoxcHggc29saWQgcmdiYSgwLDAsMCwuMSk7dGV4dC1hbGlnbjpjZW50ZXI7Y29sb3I6IzQ0NDtmb250LXNpemU6MTFweDtmb250LXdlaWdodDo3MDA7aGVpZ2h0OjI3cHg7b3V0bGluZTowO3BhZGRpbmc6MCA4cHg7dmVydGljYWwtYWxpZ246bWlkZGxlO2xpbmUtaGVpZ2h0OjI3cHg7bWFyZ2luOjAgMTZweCAwIDA7Ym94LXNoYWRvdzowIDFweCAycHggcmdiYSgwLDAsMCwuMSk7LW1vei1ib3gtc2hhZG93OjAgMXB4IDJweCByZ2JhKDAsMCwwLC4xKTstd2Via2l0LWJveC1zaGFkb3c6MCAxcHggMnB4IHJnYmEoMCwwLDAsLjEpO2JvcmRlci1yYWRpdXM6MnB4O3RyYW5zaXRpb246YWxsIC4yMThzO2JhY2tncm91bmQtY29sb3I6I2Y1ZjVmNTtiYWNrZ3JvdW5kLWltYWdlOi1vLWxpbmVhci1ncmFkaWVudCh0b3AsI2Y1ZjVmNSwjZjFmMWYxKTstd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7LW1vei11c2VyLXNlbGVjdDpub25lO2N1cnNvcjpkZWZhdWx0fS5WSXBnSmQteUFXTkViLUw3bGJrYiAuVklwZ0pkLXlBV05FYi1MNE5uNWUtSTlHTHAgLlZJcGdKZC15QVdORWItWjBBcnFmLUk5R0xwIGlucHV0OmhvdmVye2JvcmRlcjoxcHggc29saWQgI2M2YzZjNjtjb2xvcjojMjIyO3RyYW5zaXRpb246YWxsIDBzO2JhY2tncm91bmQtY29sb3I6I2Y4ZjhmODtiYWNrZ3JvdW5kLWltYWdlOi1vLWxpbmVhci1ncmFkaWVudCh0b3AsI2Y4ZjhmOCwjZjFmMWYxKX0uVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItTDRObjVlLUk5R0xwIC5WSXBnSmQteUFXTkViLVowQXJxZi1JOUdMcCBpbnB1dDphY3RpdmV7Ym9yZGVyOjFweCBzb2xpZCAjYzZjNmM2O2NvbG9yOiMzMzM7YmFja2dyb3VuZC1jb2xvcjojZjZmNmY2O2JhY2tncm91bmQtaW1hZ2U6LW8tbGluZWFyLWdyYWRpZW50KHRvcCwjZjZmNmY2LCNmMWYxZjEpfS5WSXBnSmQteUFXTkViLUw3bGJrYiAuVklwZ0pkLXlBV05FYi1MNE5uNWUtSTlHTHAgLlZJcGdKZC15QVdORWItWjBBcnFmLUk5R0xwIGlucHV0OmZvY3VzIC5WSXBnSmQteUFXTkViLUw3bGJrYiAuVklwZ0pkLXlBV05FYi1MNE5uNWUtSTlHTHAgLlZJcGdKZC15QVdORWItWjBBcnFmLUk5R0xwIGlucHV0LkFIbXV3ZSAuVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItTDRObjVlLUk5R0xwIC5WSXBnSmQteUFXTkViLVowQXJxZi1JOUdMcCBpbnB1dDphY3RpdmUsLlZJcGdKZC15QVdORWItTDdsYmtiIC5WSXBnSmQteUFXTkViLUw0Tm41ZS1JOUdMcCAuVklwZ0pkLXlBV05FYi1aMEFycWYtSTlHTHAgaW5wdXQ6Zm9jdXM6YWN0aXZle2JveC1zaGFkb3c6aW5zZXQgMCAwIDAgMXB4IHJnYmEoMjU1LDI1NSwyNTUsLjUpOy13ZWJraXQtYm94LXNoYWRvdzppbnNldCAwIDAgMCAxcHggcmdiYSgyNTUsMjU1LDI1NSwuNSk7LW1vei1ib3gtc2hhZG93Omluc2V0IDAgMCAwIDFweCByZ2JhKDI1NSwyNTUsMjU1LC41KX0uVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItTDRObjVlLUk5R0xwIC5WSXBnSmQteUFXTkViLVowQXJxZi1JOUdMcCBpbnB1dC5BSG11d2UsLlZJcGdKZC15QVdORWItTDdsYmtiIC5WSXBnSmQteUFXTkViLUw0Tm41ZS1JOUdMcCAuVklwZ0pkLXlBV05FYi1aMEFycWYtSTlHTHAgaW5wdXQ6Zm9jdXN7b3V0bGluZTpub25lO2JvcmRlcjoxcHggc29saWQgIzRkOTBmZTt6LWluZGV4OjQhaW1wb3J0YW50fS5WSXBnSmQteUFXTkViLUw3bGJrYiAuVklwZ0pkLXlBV05FYi1MNE5uNWUtSTlHTHAgLlZJcGdKZC15QVdORWItWjBBcnFmLUk5R0xwIGlucHV0LmdrNlNNZHtiYWNrZ3JvdW5kLWNvbG9yOiNlZWU7YmFja2dyb3VuZC1pbWFnZTotby1saW5lYXItZ3JhZGllbnQodG9wLCNlZWUsI2UwZTBlMCk7Ym94LXNoYWRvdzppbnNldCAwIDFweCAycHggcmdiYSgwLDAsMCwuMSk7Ym9yZGVyOjFweCBzb2xpZCAjY2NjO2NvbG9yOiMzMzN9LlZJcGdKZC15QVdORWItTDdsYmtiIC5WSXBnSmQteUFXTkViLUw0Tm41ZS1JOUdMcCAuVklwZ0pkLXlBV05FYi1aMEFycWYtSTlHTHAgaW5wdXQgLlZJcGdKZC15QVdORWItWjBBcnFmLXNGZUJxZntjb2xvcjp3aGl0ZTtib3JkZXItY29sb3I6IzMwNzllZDtiYWNrZ3JvdW5kLWNvbG9yOiM0ZDkwZmU7YmFja2dyb3VuZC1pbWFnZTotby1saW5lYXItZ3JhZGllbnQodG9wLCM0ZDkwZmUsIzQ3ODdlZCl9LlZJcGdKZC15QVdORWItTDdsYmtiIC5WSXBnSmQteUFXTkViLUw0Tm41ZS1JOUdMcCAuVklwZ0pkLXlBV05FYi1aMEFycWYtSTlHTHAgaW5wdXQgLlZJcGdKZC15QVdORWItWjBBcnFmLXNGZUJxZi5BSG11d2UgLlZJcGdKZC15QVdORWItTDdsYmtiIC5WSXBnSmQteUFXTkViLUw0Tm41ZS1JOUdMcCAuVklwZ0pkLXlBV05FYi1aMEFycWYtSTlHTHAgaW5wdXQgLlZJcGdKZC15QVdORWItWjBBcnFmLXNGZUJxZjphY3RpdmUsLlZJcGdKZC15QVdORWItTDdsYmtiIC5WSXBnSmQteUFXTkViLUw0Tm41ZS1JOUdMcCAuVklwZ0pkLXlBV05FYi1aMEFycWYtSTlHTHAgaW5wdXQgLlZJcGdKZC15QVdORWItWjBBcnFmLXNGZUJxZjpob3ZlciAuVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItTDRObjVlLUk5R0xwIC5WSXBnSmQteUFXTkViLVowQXJxZi1JOUdMcCBpbnB1dCAuVklwZ0pkLXlBV05FYi1aMEFycWYtc0ZlQnFmOmZvY3Vze2JvcmRlci1jb2xvcjojMzA3OWVkO2JhY2tncm91bmQtY29sb3I6IzM1N2FlODtiYWNrZ3JvdW5kLWltYWdlOi1vLWxpbmVhci1ncmFkaWVudCh0b3AsIzRkOTBmZSwjMzU3YWU4KX0uVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItTDRObjVlLUk5R0xwIC5WSXBnSmQteUFXTkViLVowQXJxZi1JOUdMcCBpbnB1dCAuVklwZ0pkLXlBV05FYi1aMEFycWYtc0ZlQnFmOmhvdmVye2JveC1zaGFkb3c6aW5zZXQgMCAwIDAgMXB4ICNmZmYsMCAxcHggMXB4IHJnYmEoMCwwLDAsLjEpOy13ZWJraXQtYm94LXNoYWRvdzppbnNldCAwIDAgMCAxcHggI2ZmZiwwIDFweCAxcHggcmdiYSgwLDAsMCwuMSk7LW1vei1ib3gtc2hhZG93Omluc2V0IDAgMCAwIDFweCAjZmZmLDAgMXB4IDFweCByZ2JhKDAsMCwwLC4xKX0uVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItTDRObjVlLUk5R0xwIC5WSXBnSmQteUFXTkViLVowQXJxZi1JOUdMcCBpbnB1dCAuVklwZ0pkLXlBV05FYi1aMEFycWYtc0ZlQnFmLkFIbXV3ZSwuVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItTDRObjVlLUk5R0xwIC5WSXBnSmQteUFXTkViLVowQXJxZi1JOUdMcCBpbnB1dCAuVklwZ0pkLXlBV05FYi1aMEFycWYtc0ZlQnFmOmFjdGl2ZSwuVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItTDRObjVlLUk5R0xwIC5WSXBnSmQteUFXTkViLVowQXJxZi1JOUdMcCBpbnB1dCAuVklwZ0pkLXlBV05FYi1aMEFycWYtc0ZlQnFmOmZvY3VzLC5WSXBnSmQteUFXTkViLUw3bGJrYiAuVklwZ0pkLXlBV05FYi1MNE5uNWUtSTlHTHAgLlZJcGdKZC15QVdORWItWjBBcnFmLUk5R0xwIGlucHV0IC5WSXBnSmQteUFXTkViLVowQXJxZi1zRmVCcWY6aG92ZXIsLlZJcGdKZC15QVdORWItTDdsYmtiIC5WSXBnSmQteUFXTkViLUw0Tm41ZS1JOUdMcCAuVklwZ0pkLXlBV05FYi1aMEFycWYtSTlHTHAgaW5wdXQuQUhtdXdlLC5WSXBnSmQteUFXTkViLUw3bGJrYiAuVklwZ0pkLXlBV05FYi1MNE5uNWUtSTlHTHAgLlZJcGdKZC15QVdORWItWjBBcnFmLUk5R0xwIGlucHV0OmFjdGl2ZSwuVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItTDRObjVlLUk5R0xwIC5WSXBnSmQteUFXTkViLVowQXJxZi1JOUdMcCBpbnB1dDpmb2N1cywuVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItTDRObjVlLUk5R0xwIC5WSXBnSmQteUFXTkViLVowQXJxZi1JOUdMcCBpbnB1dDpob3Zlcntib3JkZXItY29sb3I6IzMwNzllZH0uVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItbXJ4UGdle2NvbG9yOiM5OTk7Zm9udC1mYW1pbHk6YXJpYWwsc2Fucy1zZXJpZn0uVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItSUZkS3lkLVcwdkpvLWZtY21Te2NvbG9yOiM5OTk7Zm9udC1zaXplOjExcHg7Zm9udC1mYW1pbHk6YXJpYWwsc2Fucy1zZXJpZjttYXJnaW46MTVweCAwIDVweH0uVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItSUZkS3lkLXUwcGpvZS1mbWNtU3tjb2xvcjojODAwO2Rpc3BsYXk6bm9uZTtmb250LXNpemU6OXB0fS5WSXBnSmQteUFXTkViLVZJcGdKZC1mbWNtUy1zbjU0UXtiYWNrZ3JvdW5kLWNvbG9yOiNjOWQ3ZjE7Ym94LXNoYWRvdzoycHggMnB4IDRweCAjOTlhO2JveC1zaXppbmc6Ym9yZGVyLWJveDstd2Via2l0LWJveC1zaXppbmc6Ym9yZGVyLWJveDstbW96LWJveC1zaXppbmc6Ym9yZGVyLWJveDtwb3NpdGlvbjpyZWxhdGl2ZX0uVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItSUZkS3lkLXhsMDdPYiAuVklwZ0pkLXlBV05FYi1WSXBnSmQteGwwN09ie2JhY2tncm91bmQ6I2ZmZjtib3JkZXI6MXB4IHNvbGlkICNkZGQ7Ym94LXNoYWRvdzowIDJweCA0cHggIzk5YTttaW4td2lkdGg6MDtvdXRsaW5lOm5vbmU7cGFkZGluZzowO3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MjAwMH0uVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItSUZkS3lkLXhsMDdPYiAuVklwZ0pkLXlBV05FYi1WSXBnSmQtajdMRmxie2N1cnNvcjpwb2ludGVyO3BhZGRpbmc6MnB4IDVweCA1cHg7bWFyZ2luLXJpZ2h0OjA7Ym9yZGVyLXN0eWxlOm5vbmV9LlZJcGdKZC15QVdORWItTDdsYmtiIC5WSXBnSmQteUFXTkViLUlGZEt5ZC14bDA3T2IgLlZJcGdKZC15QVdORWItVklwZ0pkLWo3TEZsYjpob3ZlcntiYWNrZ3JvdW5kOiNkZGR9LlZJcGdKZC15QVdORWItTDdsYmtiIC5WSXBnSmQteUFXTkViLUlGZEt5ZC14bDA3T2IgLlZJcGdKZC15QVdORWItVklwZ0pkLWo3TEZsYiBoMXtmb250LXNpemU6MTAwJTtmb250LXdlaWdodDo3MDA7bWFyZ2luOjRweCAwfS5WSXBnSmQteUFXTkViLUw3bGJrYiAuVklwZ0pkLXlBV05FYi1JRmRLeWQteGwwN09iIC5WSXBnSmQteUFXTkViLVZJcGdKZC1qN0xGbGIgc3Ryb25ne2NvbG9yOiMzNDVhYWR9LlZJcGdKZC15QVdORWItTDdsYmtiIC5WSXBnSmQteUFXTkViLVZJcGdKZC1lS201RmMtaEZzYm97dGV4dC1hbGlnbjpyaWdodDtwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDowO2xlZnQ6YXV0b30uVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItVklwZ0pkLWo3TEZsYi1TSXNyVGQgLlZJcGdKZC15QVdORWItVklwZ0pkLWVLbTVGYy1oRnNib3t0ZXh0LWFsaWduOmxlZnQ7cG9zaXRpb246YWJzb2x1dGU7bGVmdDowO3JpZ2h0OmF1dG99LlZJcGdKZC15QVdORWItTDdsYmtiIC5WSXBnSmQteUFXTkViLVRWTHc5Yy1wcEhscmYtc241NFEsLlZJcGdKZC15QVdORWItTDdsYmtiIC5WSXBnSmQteUFXTkViLXlBV05FYi1WeTJBcWMtZm1jbVN7YmFja2dyb3VuZC1jb2xvcjojZjFlYTAwO2JvcmRlci1yYWRpdXM6NHB4Oy13ZWJraXQtYm9yZGVyLXJhZGl1czo0cHg7LW1vei1ib3JkZXItcmFkaXVzOjRweDtib3gtc2hhZG93OjNweCAzcHggNHB4IHJnYmEoMCwwLDAsLjUpO2JveC1zaXppbmc6Ym9yZGVyLWJveDstd2Via2l0LWJveC1zaXppbmc6Ym9yZGVyLWJveDstbW96LWJveC1zaXppbmc6Ym9yZGVyLWJveDtjb2xvcjojZjFlYTAwO2N1cnNvcjpwb2ludGVyO21hcmdpbjotMnB4IC0ycHggLTJweCAtM3B4O3BhZGRpbmc6MnB4IDJweCAycHggM3B4O3Bvc2l0aW9uOnJlbGF0aXZlfS5WSXBnSmQteUFXTkViLUw3bGJrYiAuVklwZ0pkLXlBV05FYi1UVkx3OWMtcHBIbHJmLXNuNTRRe2NvbG9yOiMyMjJ9LlZJcGdKZC15QVdORWItTDdsYmtiIC5WSXBnSmQteUFXTkViLXlBV05FYi1WeTJBcWMtcGJUVFlle2NvbG9yOndoaXRlO3Bvc2l0aW9uOmFic29sdXRlIWltcG9ydGFudH0uVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItVFZMdzljLXBwSGxyZiwuVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItVFZMdzljLXBwSGxyZiAuVklwZ0pkLXlBV05FYi1UVkx3OWMtcHBIbHJmLXNuNTRRe2JhY2tncm91bmQtY29sb3I6I2M5ZDdmMTtib3JkZXItcmFkaXVzOjRweCA0cHggMCAwOy13ZWJraXQtYm9yZGVyLXJhZGl1czo0cHggNHB4IDAgMDstbW96LWJvcmRlci1yYWRpdXM6NHB4IDRweCAwIDA7Ym94LXNoYWRvdzozcHggM3B4IDRweCByZ2JhKDAsMCwwLC41KTtib3gtc2l6aW5nOmJvcmRlci1ib3g7LXdlYmtpdC1ib3gtc2l6aW5nOmJvcmRlci1ib3g7LW1vei1ib3gtc2l6aW5nOmJvcmRlci1ib3g7Y3Vyc29yOnBvaW50ZXI7bWFyZ2luOi0ycHggLTJweCAtMnB4IC0zcHg7cGFkZGluZzoycHggMnB4IDNweCAzcHg7cG9zaXRpb246cmVsYXRpdmV9LlZJcGdKZC15QVdORWItTDdsYmtiIHNwYW46Zm9jdXN7b3V0bGluZTpub25lfS5WSXBnSmQteUFXTkViLUw3bGJrYiAuVklwZ0pkLXlBV05FYi1UVkx3OWMtRHlWREF7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtib3JkZXI6MXB4IHNvbGlkICM0ZDkwZmU7Ym9yZGVyLXJhZGl1czowOy13ZWJraXQtYm9yZGVyLXJhZGl1czowOy1tb3otYm9yZGVyLXJhZGl1czowO21hcmdpbjotMnB4O3BhZGRpbmc6MXB4fS5WSXBnSmQteUFXTkViLUw3bGJrYiAuVklwZ0pkLXlBV05FYi15QVdORWItVFZMdzljLXNuNTRRLUx6WDNlZntib3JkZXItbGVmdDoycHggc29saWQgcmVkO21hcmdpbi1sZWZ0Oi0ycHh9LlZJcGdKZC15QVdORWItTDdsYmtiIC5WSXBnSmQteUFXTkViLXlBV05FYi1UVkx3OWMtc241NFEtWUlBaUlie2JvcmRlci1yaWdodDoycHggc29saWQgcmVkO21hcmdpbi1yaWdodDotMnB4fS5WSXBnSmQteUFXTkViLUw3bGJrYiAuVklwZ0pkLXlBV05FYi1JRmRLeWQtWVBxamJme3BhZGRpbmc6MnB4fS5WSXBnSmQteUFXTkViLUw3bGJrYiAuVklwZ0pkLXlBV05FYi1JRmRLeWQtWVBxamJmLWZtY21Te2ZvbnQtc2l6ZToxMXB4O3BhZGRpbmc6MnB4IDJweCAzcHg7bWFyZ2luOjA7YmFja2dyb3VuZC1jb2xvcjojZmZmO2NvbG9yOiMzMzM7Ym9yZGVyOjFweCBzb2xpZCAjZDlkOWQ5O2JvcmRlci10b3A6MXB4IHNvbGlkICNjMGMwYzA7ZGlzcGxheTppbmxpbmUtYmxvY2s7dmVydGljYWwtYWxpZ246dG9wO2hlaWdodDoyMXB4O2JveC1zaXppbmc6Ym9yZGVyLWJveDstd2Via2l0LWJveC1zaXppbmc6Ym9yZGVyLWJveDstbW96LWJveC1zaXppbmc6Ym9yZGVyLWJveDstd2Via2l0LWJvcmRlci1yYWRpdXM6MXB4fS5WSXBnSmQteUFXTkViLUw3bGJrYiAuVklwZ0pkLXlBV05FYi1JRmRLeWQtWVBxamJmLWZtY21TOmhvdmVye2JvcmRlcjoxcHggc29saWQgI2I5YjliOTtib3JkZXItdG9wOjFweCBzb2xpZCAjYTBhMGEwO2JveC1zaGFkb3c6aW5zZXQgMCAxcHggMnB4IHJnYmEoMCwwLDAsLjEpfS5WSXBnSmQteUFXTkViLUw3bGJrYiAuVklwZ0pkLXlBV05FYi1JRmRLeWQtWVBxamJmLWZtY21TOmZvY3Vze2JveC1zaGFkb3c6aW5zZXQgMCAxcHggMnB4IHJnYmEoMCwwLDAsLjMpO291dGxpbmU6bm9uZTtib3JkZXI6MXB4IHNvbGlkICM0ZDkwZmV9LlZJcGdKZC15QVdORWItTDdsYmtiIC5WSXBnSmQteUFXTkViLUlGZEt5ZC1ZUHFqYmYtc0ZlQnFme2ZvbnQtc2l6ZToxMXB4O3BhZGRpbmc6MnB4IDZweCAzcHg7bWFyZ2luOjAgMCAwIDJweDtoZWlnaHQ6MjFweH0uVklwZ0pkLXlBV05FYi1MN2xia2I+ZGl2e2Rpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTpmbGV4Oy1tb3otYm94LW9yaWVudDp2ZXJ0aWNhbDstbW96LWJveC1kaXJlY3Rpb246bm9ybWFsO2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtmb250LWZhbWlseTpHb29nbGUgU2FucyxBcmlhbCxzYW5zLXNlcmlmfS5WSXBnSmQteUFXTkViLWh2aGdOZCAuVklwZ0pkLXlBV05FYi1odmhnTmQtVWQ3ZnJ7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXg7LW1vei1ib3gtYWxpZ246ZW5kO2FsaWduLWl0ZW1zOmVuZDttYXJnaW46MTRweH0uVklwZ0pkLXlBV05FYi1odmhnTmQgLlZJcGdKZC15QVdORWItaHZoZ05kLUl1aXpXYy1TSXNyVGR7bWFyZ2luLXJpZ2h0OjE0cHg7Y29sb3I6Izc0Nzc3NTtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9LlZJcGdKZC15QVdORWItaHZoZ05kIC5WSXBnSmQteUFXTkViLWh2aGdOZC1JdWl6V2MtaTNqTThje21hcmdpbi1sZWZ0OjE0cHg7Y29sb3I6Izc0Nzc3NTtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9LlZJcGdKZC15QVdORWItaHZoZ05kIC5WSXBnSmQteUFXTkViLWh2aGdOZC1rNzdJaWZ7bWFyZ2luOjAgMTZweCAxNnB4fS5WSXBnSmQteUFXTkViLWh2aGdOZCAuVklwZ0pkLXlBV05FYi1odmhnTmQtYXhBVjF7d2lkdGg6YXV0bztjb2xvcjojMWYxZjFmO2ZvbnQtc2l6ZToxNnB4O3RleHQtYWxpZ246aW5pdGlhbH0uVklwZ0pkLXlBV05FYi1odmhnTmQgLlZJcGdKZC15QVdORWItaHZoZ05kLWF4QVYxIC5WSXBnSmQteUFXTkViLVNJc3JUZHt0ZXh0LWFsaWduOnJpZ2h0fS5WSXBnSmQteUFXTkViLWh2aGdOZCAuVklwZ0pkLXlBV05FYi1odmhnTmQtTjdFcWlke2JvcmRlci1yYWRpdXM6MCAwIDEycHggMTJweDttYXJnaW46MDtiYWNrZ3JvdW5kOiNmMWY0Zjk7cG9zaXRpb246cmVsYXRpdmU7bWluLWhlaWdodDo1MHB4fS5WSXBnSmQteUFXTkViLWh2aGdOZCAuVklwZ0pkLXlBV05FYi1odmhnTmQtTjdFcWlkIC5WSXBnSmQteUFXTkViLVNJc3JUZHt0ZXh0LWFsaWduOnJpZ2h0fS5WSXBnSmQteUFXTkViLWh2aGdOZCAuVklwZ0pkLXlBV05FYi1odmhnTmQtTjdFcWlkLUI3STRPZHtkaXNwbGF5Oi1tb3otYm94O2Rpc3BsYXk6ZmxleDstbW96LWJveC1vcmllbnQ6dmVydGljYWw7LW1vei1ib3gtZGlyZWN0aW9uOm5vcm1hbDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47d2lkdGg6NzclO3BhZGRpbmc6MTJweH0uVklwZ0pkLXlBV05FYi1odmhnTmQgLlZJcGdKZC15QVdORWItaHZoZ05kLU43RXFpZC1CN0k0T2QgLlZJcGdKZC15QVdORWItU0lzclRke3RleHQtYWxpZ246cmlnaHR9LlZJcGdKZC15QVdORWItaHZoZ05kIC5WSXBnSmQteUFXTkViLWh2aGdOZC1VVHVqQ2J7Y29sb3I6IzFmMWYxZjtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9LlZJcGdKZC15QVdORWItaHZoZ05kIC5WSXBnSmQteUFXTkViLWh2aGdOZC1ON0VxaWQtQjdJNE9kIC5WSXBnSmQteUFXTkViLVNJc3JUZCAuVklwZ0pkLXlBV05FYi1odmhnTmQtVVR1akNie3RleHQtYWxpZ246cmlnaHR9LlZJcGdKZC15QVdORWItaHZoZ05kIC5WSXBnSmQteUFXTkViLWh2aGdOZC1lTzltS2V7Y29sb3I6IzQ0NDc0Njtmb250LXNpemU6MTJweDtwYWRkaW5nLXRvcDo0cHh9LlZJcGdKZC15QVdORWItaHZoZ05kIC5WSXBnSmQteUFXTkViLWh2aGdOZC1ON0VxaWQtQjdJNE9kIC5WSXBnSmQteUFXTkViLVNJc3JUZCAuVklwZ0pkLXlBV05FYi1odmhnTmQtZU85bUtle3RleHQtYWxpZ246cmlnaHR9LlZJcGdKZC15QVdORWItaHZoZ05kIC5WSXBnSmQteUFXTkViLWh2aGdOZC14Z292NXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MTBweDtyaWdodDo1cHh9LlZJcGdKZC15QVdORWItaHZoZ05kIC5WSXBnSmQteUFXTkViLWh2aGdOZC14Z292NSAuVklwZ0pkLXlBV05FYi1TSXNyVGR7bGVmdDo1cHg7cmlnaHQ6YXV0b30uVklwZ0pkLXlBV05FYi1odmhnTmQgLlZJcGdKZC15QVdORWItaHZoZ05kLVRISTZWYntmaWxsOiMwYjU3ZDB9LlZJcGdKZC15QVdORWItaHZoZ05kIC5WSXBnSmQteUFXTkViLWh2aGdOZC1iZ202c2Z7bWFyZ2luOi00cHggMnB4IDAgMDtwYWRkaW5nOjJweCAwIDA7d2lkdGg6NDhweDtoZWlnaHQ6NDhweDtib3JkZXI6bm9uZTtib3JkZXItcmFkaXVzOjI0cHg7Y3Vyc29yOnBvaW50ZXI7YmFja2dyb3VuZDpub25lfS5WSXBnSmQteUFXTkViLWh2aGdOZCAuVklwZ0pkLXlBV05FYi1odmhnTmQtYmdtNnNmOmhvdmVye2JhY2tncm91bmQ6I2U4ZWJlY30uVklwZ0pkLXlBV05FYi1odmhnTmQgLlZJcGdKZC15QVdORWItaHZoZ05kLWFYWVRjZXtkaXNwbGF5Om5vbmV9c2VudGluZWx7fQ=="}},"time_used":16,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":16,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/70815.3ce6d6a2686e88907ab3.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:13.901Z","timestamp":1785148033901,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/70815.3ce6d6a2686e88907ab3.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:13 GMT\r\ncontent-type: text/css; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a58ab11-78f\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Thu, 16 Jul 2026 09:57:37 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/16/2026 11:03:21\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: e18756a54b66d5862c92dd94d36ed4b5\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":1935,"size_decoded":1268,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with very long lines (1935), with no line terminators","md5":"c06f909e993de4f09740c91db132c846","sha1":"7451e42a4f8461d1b6ba321d93498b99b70a1fdc","sha256":"d93d3dc2b737c86807e6818e5a272cdd6db4f56183cd5371ae6816d4c4b320b0","sha512":"e12d20c672228965c13d1e62347a20f5886a1f324f6ef1c2f1a3b62720353d6e994b575e6e601cd69ace6edbafdb9306f1387431a676befb6169f3311c498129","ssdeep":"","tlshash":"ab41111aa5e8e673b827427dc308a27946e04d16ad0e5f9b7fddc00341c84e710765bf","first_seen":"2026-07-17T03:30:51.190808Z","last_seen":"2026-07-27T12:48:39.666538Z","times_seen":127,"resource_available":false,"data":"LndyYXBwZXItc1c4N3BRekt7ZGlzcGxheTpibG9jaztoZWlnaHQ6MThweDttaW4taGVpZ2h0OjE4cHg7bWluLXdpZHRoOjE4cHg7cG9zaXRpb246cmVsYXRpdmU7d2lkdGg6MThweH0uaW5wdXQtc1c4N3BRekt7Y3Vyc29yOmluaGVyaXQ7aW5zZXQ6MDttYXJnaW46MDtvcGFjaXR5OjA7cGFkZGluZzowO3Bvc2l0aW9uOmFic29sdXRlfS5pbnB1dC1zVzg3cFF6Szpmb2N1cy12aXNpYmxlKy5mb2N1c091dGxpbmUtc1c4N3BRekt7Ym9yZGVyLXJhZGl1czoycHg7aW5zZXQ6MDtvdXRsaW5lOjJweCBzb2xpZCB2YXIoLS1jb2xvci1mb2N1cy1vdXRsaW5lLWNvbG9yLWJsdWUpO291dGxpbmUtb2Zmc2V0OjJweDtwb3NpdGlvbjphYnNvbHV0ZX0ucHJpbWFyeS1zVzg3cFF6S3stLXVpLWxpYi1wcml2YXRlLWNoZWNrYm94Vmlld0ltcGwtY29sb3ItYm9yZGVyOnZhcigtLWNvbG9yLWNvbnRhaW5lci1maWxsLXByaW1hcnktbmV1dHJhbC1leHRyYS1ib2xkKTstLXVpLWxpYi1wcml2YXRlLWNoZWNrYm94SW5wdXQtY29sb3ItYm94OnZhcigtLWNvbG9yLWNvbnRhaW5lci1maWxsLXByaW1hcnktbmV1dHJhbC1leHRyYS1ib2xkKTstLXVpLWxpYi1wcml2YXRlLWNoZWNrYm94SW5wdXQtY29sb3ItbWFyazp2YXIoLS1jb2xvci1jb250YWluZXItZmlsbC1xdWluYXJ5LWludmVyc2UpfUBtZWRpYSAoYW55LWhvdmVyOmhvdmVyKXsud3JhcHBlci1zVzg3cFF6Szpob3Zlcjpub3QoLmRpc2FibGVkLXNXODdwUXpLKSAucHJpbWFyeS1zVzg3cFF6S3stLXVpLWxpYi1wcml2YXRlLWNoZWNrYm94SW5wdXQtY29sb3ItYm94OnZhcigtLWNvbG9yLWNvbnRhaW5lci1maWxsLXByaW1hcnktbmV1dHJhbC1ib2xkKX19LndyYXBwZXItc1c4N3BReks6YWN0aXZlOm5vdCguZGlzYWJsZWQtc1c4N3BRekspIC5wcmltYXJ5LXNXODdwUXpLey0tdWktbGliLXByaXZhdGUtY2hlY2tib3hJbnB1dC1jb2xvci1ib3g6dmFyKC0tY29sb3ItY29udGFpbmVyLWZpbGwtcHJpbWFyeS1uZXV0cmFsLW1lZGl1bSl9LmRhbmdlci1zVzg3cFF6S3stLXVpLWxpYi1wcml2YXRlLWNoZWNrYm94Vmlld0ltcGwtY29sb3ItYm9yZGVyOnZhcigtLWNvbG9yLWNvbnRhaW5lci1maWxsLXByaW1hcnktZGFuZ2VyLWJvbGQpOy0tdWktbGliLXByaXZhdGUtY2hlY2tib3hJbnB1dC1jb2xvci1ib3g6dmFyKC0tY29sb3ItY29udGFpbmVyLWZpbGwtcHJpbWFyeS1kYW5nZXItYm9sZCk7LS11aS1saWItcHJpdmF0ZS1jaGVja2JveElucHV0LWNvbG9yLW1hcms6dmFyKC0tY29sb3ItY29udGFpbmVyLWZpbGwtcXVhdGVybmFyeS1pbnZlcnNlKX1AbWVkaWEgKGFueS1ob3Zlcjpob3Zlcil7LndyYXBwZXItc1c4N3BReks6aG92ZXI6bm90KC5kaXNhYmxlZC1zVzg3cFF6SykgLmRhbmdlci1zVzg3cFF6S3stLXVpLWxpYi1wcml2YXRlLWNoZWNrYm94SW5wdXQtY29sb3ItYm94OnZhcigtLWNvbG9yLWNvbnRhaW5lci1maWxsLXByaW1hcnktZGFuZ2VyLXNlbWktYm9sZCl9fS53cmFwcGVyLXNXODdwUXpLOmFjdGl2ZTpub3QoLmRpc2FibGVkLXNXODdwUXpLKSAuZGFuZ2VyLXNXODdwUXpLey0tdWktbGliLXByaXZhdGUtY2hlY2tib3hJbnB1dC1jb2xvci1ib3g6dmFyKC0tY29sb3ItY29udGFpbmVyLWZpbGwtcHJpbWFyeS1kYW5nZXIpfS52aWV3LXNXODdwUXpLe2luc2V0LWlubGluZS1zdGFydDowO3Bvc2l0aW9uOmFic29sdXRlO3RvcDowOy0tdWktbGliLXByaXZhdGUtY2hlY2tib3hWaWV3SW1wbC1jb2xvci1ib3g6dmFyKC0tdWktbGliLWNoZWNrYm94LWNvbG9yLHZhcigtLXVpLWxpYi1wcml2YXRlLWNoZWNrYm94SW5wdXQtY29sb3ItYm94KSk7LS11aS1saWItcHJpdmF0ZS1jaGVja2JveFZpZXdJbXBsLWNvbG9yLW1hcms6dmFyKC0tdWktbGliLWNoZWNrYm94LW1hcmstY29sb3IsdmFyKC0tdWktbGliLXByaXZhdGUtY2hlY2tib3hJbnB1dC1jb2xvci1tYXJrKSl9"}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/5808.f4800fa9246f404621ee.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.100Z","timestamp":1785148034100,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/5808.f4800fa9246f404621ee.js HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a632877-2fe65\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Fri, 24 Jul 2026 08:55:19 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/24/2026 10:31:24\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: a3950ea9d6d653c27c5e68f0b74bfd07\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":196197,"size_decoded":57470,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, Unicode text, UTF-8 text, with very long lines (3071)","md5":"a42e731f659fd23cc846fd90733fa22d","sha1":"a69e6df547aeb0964b5451ccfff0fec9703fbc6a","sha256":"fd721044f40446ca3ab1b478372b4b3034a3345ec03c626e1fe2f2b651cacdf0","sha512":"0364a69a0cf76f3925709f12c0a99bdbc8ad070fc9be0d8000eb0a227f26f4281051036b7118c8f8a747e61921f63669c785bb607f506ef1a1e602e472fb9dad","ssdeep":"3072:TTXg/EZYyk/ubQwm+HxiXEPx7CfJ3pVgk822xZgN9u7lUbjAvDWnSO8IMiL5K:TmEZYT/ubQwm+HxiXyx7CfJ3pVgk822F","tlshash":"71143a507318a44c59cb51aaca3a0956e39e629cf485407cf9fcddfc21e9d89e13e738","first_seen":"2026-07-24T11:36:48.024996Z","last_seen":"2026-07-27T12:48:39.653718Z","times_seen":95,"resource_available":true,"data":"KHNlbGYud2VicGFja0NodW5rdHJhZGluZ3ZpZXc9c2VsZi53ZWJwYWNrQ2h1bmt0cmFkaW5ndmlld3x8W10pLnB1c2goW1s1ODA4LDQxMzI4LDY0NjQ0LDk0NTYwXSx7OTE0NDg3KGUsdCl7dmFyIG47IWZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO3ZhciBhPXt9Lmhhc093blByb3BlcnR5O2Z1bmN0aW9uIGkoKXtmb3IodmFyIGU9W10sdD0wO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciBuPWFyZ3VtZW50c1t0XTtpZihuKXt2YXIgbz10eXBlb2YgbjtpZigic3RyaW5nIj09PW98fCJudW1iZXIiPT09byllLnB1c2gobik7ZWxzZSBpZihBcnJheS5pc0FycmF5KG4pJiZuLmxlbmd0aCl7dmFyIHM9aS5hcHBseShudWxsLG4pO3MmJmUucHVzaChzKX1lbHNlIGlmKCJvYmplY3QiPT09bylmb3IodmFyIGwgaW4gbilhLmNhbGwobixsKSYmbltsXSYmZS5wdXNoKGwpfX1yZXR1cm4gZS5qb2luKCIgIil9ZS5leHBvcnRzPyhpLmRlZmF1bHQ9aSxlLmV4cG9ydHM9aSk6dm9pZCAwPT09KG49ZnVuY3Rpb24oKXtyZXR1cm4gaX0uYXBwbHkodCxbXSkpfHwoZS5leHBvcnRzPW4pfSgpfSw4NjQ3MzYoZSl7ZS5leHBvcnRzPXtjb250ZXh0QWN0aW9uczoiY29udGV4dEFjdGlvbnMtdUJKaGpVVjgiLGhpZGVJZk5vSG92ZXI6ImhpZGVJZk5vSG92ZXItdUJKaGpVVjgiLHNvbWVDb250ZXh0QWN0aW9uRm9jdXNlZDoic29tZUNvbnRleHRBY3Rpb25Gb2N1c2VkLXVCSmhqVVY4In19LDkwNDQzNChlKXtlLmV4cG9ydHM9e2Zvb3RlcjoiZm9vdGVyLVlCSk16QV9sIn19LDU0MDU5NShlKXtlLmV4cG9ydHM9e2J1dHRvbjoiYnV0dG9uLWhEdElveGpVIixncm91cDoiZ3JvdXAtaER0SW94alUiLG1lbnU6Im1lbnUtaER0SW94alUiLGJldGFCYWRnZToiYmV0YUJhZGdlLWhEdElveGpVIixuZXdCYWRnZToibmV3QmFkZ2UtaER0SW94alUiLGxhYmVsOiJsYWJlbC1oRHRJb3hqVSIsY29udGFpbmVyOiJjb250YWluZXItaER0SW94alUiLG5ld1ZpZXc6Im5ld1ZpZXctaER0SW94alUiLGRlc2t0b3A6ImRlc2t0b3AtaER0SW94alUifX0sNzExMjgzKGUpe2UuZXhwb3J0cz17Y3VzdG9tVHJhZGluZ1ZpZXdTdHlsZUJ1dHRvbjoiY3VzdG9tVHJhZGluZ1ZpZXdTdHlsZUJ1dHRvbi1FMnY3V2J1biIsd2l0aG91dEljb246IndpdGhvdXRJY29uLUUydjdXYnVuIn19LDg4OTgwOShlKXtlLmV4cG9ydHM9e2Ryb3Bkb3duOiJkcm9wZG93bi1NYndCTVdEeSIsbmV3VmlldzoibmV3Vmlldy1NYndCTVdEeSIsc21hbGxXaWR0aFdyYXBwZXI6InNtYWxsV2lkdGhXcmFwcGVyLU1id0JNV0R5IixtZW51OiJtZW51LU1id0JNV0R5IixsYWJlbDoibGFiZWwtTWJ3Qk1XRHkiLHNtYWxsV2lkdGhUaXRsZToic21hbGxXaWR0aFRpdGxlLU1id0JNV0R5IixzbWFsbFdpZHRoTWVudUl0ZW06InNtYWxsV2lkdGhNZW51SXRlbS1NYndCTVdEeSJ9fSw3MTk5KGUpe2UuZXhwb3J0cz17c21hbGxUYWJsZXRTZWN0aW9uVGl0bGU6InNtYWxsVGFibGV0U2VjdGlvblRpdGxlLW91SkpzVlU2In19LDI1MTcyMyhlKXtlLmV4cG9ydHM9e3ZhbHVlOiJ2YWx1ZS1kcjN2R2luVCIsc2VsZWN0ZWQ6InNlbGVjdGVkLWRyM3ZHaW5UIn19LDk3MzY5KGUpe2UuZXhwb3J0cz17c21hbGxXaWR0aE1lbnVJdGVtOiJzbWFsbFdpZHRoTWVudUl0ZW0tcldCY2Qxak0iLG1lbnVJdGVtOiJtZW51SXRlbS1yV0JjZDFqTSIscmVtb3ZlOiJyZW1vdmUtcldCY2Qxak0iLHNpZ25hbDoic2lnbmFsLXJXQmNkMWpNIiwiaGlnaGxpZ2h0LWFuaW1hdGlvbiI6ImhpZ2hsaWdodC1hbmltYXRpb24tcldCY2Qxak0ifX0sNjU3ODA5KGUpe2UuZXhwb3J0cz17c2VjdGlvbjoic2VjdGlvbi1DcVBRQmc0WiIsYWRkQ3VzdG9tSW50ZXJ2YWw6ImFkZEN1c3RvbUludGVydmFsLUNxUFFCZzRaIixhZGRDdXN0b21JbnRlcnZhbERlc2t0b3A6ImFkZEN1c3RvbUludGVydmFsRGVza3RvcC1DcVBRQmc0WiJ9fSw0NTAyNzEoZSl7ZS5leHBvcnRzPXtidXR0b246ImJ1dHRvbi1VOWIwVEFzNCIsbWVudUJ0bjoibWVudUJ0bi1VOWIwVEFzNCIsZHJvcGRvd246ImRyb3Bkb3duLVU5YjBUQXM0IixuZXdWaWV3OiJuZXdWaWV3LVU5YjBUQXM0IixkZXNrdG9wOiJkZXNrdG9wLVU5YjBUQXM0IixtZW51Q29udGVudDoibWVudUNvbnRlbnQtVTliMFRBczQiLGdyb3VwOiJncm91cC1VOWIwVEFzNCJ9fSw5OTAwMTQoZSl7ZS5leHBvcnRzPXtyb3c6InJvdy1YNlMwM09WaiIscm93SW5uZXI6InJvd0lubmVyLVg2UzAzT1ZqIixzbWFsbFJvdzoic21hbGxSb3ctWDZTMDNPVmoiLHJvd0xhYmVsOiJyb3dMYWJlbC1YNlMwM09WaiIsc21hbGxSb3dMYWJlbDoic21hbGxSb3dMYWJlbC1YNlMwM09WaiIscm93QnV0dG9uczoicm93QnV0dG9ucy1YNlMwM09WaiIsbGF5b3V0QnV0dG9uV3JhcDoibGF5b3V0QnV0dG9uV3JhcC1YNlMwM09WaiIsYWNjZXNzaWJsZToiYWNjZXNzaWJsZS1YNlMwM09WaiIsc21hbGxXaWR0aDoic21hbGxXaWR0aC1YNlMwM09WaiIsbGF5b3V0QnV0dG9uOiJsYXlvdXRCdXR0b24tWDZTMDNPVmoiLGhvdmVyZWQ6ImhvdmVyZWQtWDZTMDNPVmoiLGlzQWN0aXZlOiJpc0FjdGl2ZS1YNlMwM09WaiIsc21hbGxXaWR0aExheW91dEJ1dHRvbjoic21hbGxXaWR0aExheW91dEJ1dHRvbi1YNlMwM09WaiIsbGF5b3V0QnV0dG9uczoibGF5b3V0QnV0dG9ucy1YNlMwM09WaiJ9fSw0NTY1MjUoZSl7ZS5leHBvcnRzPXt0b2dnbGVyOiJ0b2dnbGVyLXA1R2kyaEkxIixob3ZlcmVkOiJob3ZlcmVkLXA1R2kyaEkxIixsYWJlbDoibGFiZWwtcDVHaTJoSTEiLGNlbnRlcmVkOiJjZW50ZXJlZC1wNUdpMmhJMSIsY2hlY2tlZDoiY2hlY2tlZC1wNUdpMmhJMSIsc3dpdGNoZXJMYWJlbDoic3dpdGNoZXJMYWJlbC1wNUdpMmhJMSJ9fSw0NTI2MTcoZSl7ZS5leHBvcnRzPXtidXR0b246ImJ1dHRvbi1QVkx4S2hJSSIsZHJvcGRvd246ImRyb3Bkb3duLVBWTHhLaElJIixsYXlvdXRUeXBlOiJsYXlvdXRUeXBlLVBWTHhLaElJIix0aXRsZToidGl0bGUtUFZMeEtoSUkiLHN5bmNDaGFydHM6InN5bmNDaGFydHMtUFZMeEtoSUkiLG1vYmlsZToibW9iaWxlLVBWTHhLaElJIix0YWJsZXRXcmFwcGVyOiJ0YWJsZXRXcmFwcGVyLVBWTHhLaElJIiwKaWNvbjoiaWNvbi1QVkx4S2hJSSIsc3luY0xpc3RXcmFwcGVyOiJzeW5jTGlzdFdyYXBwZXItUFZMeEtoSUkiLHN3aXRjaGVyOiJzd2l0Y2hlci1QVkx4S2hJSSIsc3dpdGNoTGFiZWxXcmFwOiJzd2l0Y2hMYWJlbFdyYXAtUFZMeEtoSUkiLHN3aXRjaExhYmVsOiJzd2l0Y2hMYWJlbC1QVkx4S2hJSSIsaWNvbldyYXA6Imljb25XcmFwLVBWTHhLaElJIixpbmZvSWNvbjoiaW5mb0ljb24tUFZMeEtoSUkiLGFjY2Vzc2libGVMYWJlbDoiYWNjZXNzaWJsZUxhYmVsLVBWTHhLaElJIn19LDg1NTEwNyhlKXtlLmV4cG9ydHM9e2J1dHRvbjoiYnV0dG9uLXdvSzNWeG1tIn19LDQzNTQ0NyhlKXtlLmV4cG9ydHM9e2Z1bGw6ImZ1bGwtdV9SQXBuaU4iLGxhc3Q6Imxhc3QtdV9SQXBuaU4iLG1lZGl1bToibWVkaXVtLXVfUkFwbmlOIn19LDExNDMwNyhlKXtlLmV4cG9ydHM9e3BvcHVwSXRlbVJvd1RhYmxldFNtYWxsOiJwb3B1cEl0ZW1Sb3dUYWJsZXRTbWFsbC1FWEdfMGhhSiIsbGF5b3V0SXRlbToibGF5b3V0SXRlbS1FWEdfMGhhSiIsbGF5b3V0TWV0YToibGF5b3V0TWV0YS1FWEdfMGhhSiIsdG9vbGJveDoidG9vbGJveC1FWEdfMGhhSiIsdG9vbGJveFNtYWxsOiJ0b29sYm94U21hbGwtRVhHXzBoYUoiLGxheW91dFRpdGxlOiJsYXlvdXRUaXRsZS1FWEdfMGhhSiIsbGF5b3V0SXRlbVdyYXA6ImxheW91dEl0ZW1XcmFwLUVYR18waGFKIixsYXlvdXRJdGVtV3JhcFNtYWxsOiJsYXlvdXRJdGVtV3JhcFNtYWxsLUVYR18waGFKIixsYXlvdXRUaXRsZVNtYWxsOiJsYXlvdXRUaXRsZVNtYWxsLUVYR18waGFKIixlbGxpcHNpczoiZWxsaXBzaXMtRVhHXzBoYUoifX0sNzYxMTc1KGUpe2UuZXhwb3J0cz17c2hhcmluZ0xhYmVsV3JhcDoic2hhcmluZ0xhYmVsV3JhcC1fVUNsUVR0NiIsdGl0bGVTaGFyaW5nTGFiZWw6InRpdGxlU2hhcmluZ0xhYmVsLV9VQ2xRVHQ2IixpY29uV3JhcDoiaWNvbldyYXAtX1VDbFFUdDYiLGluZm9JY29uOiJpbmZvSWNvbi1fVUNsUVR0NiIsYWNjZXNzaWJsZUxhYmVsOiJhY2Nlc3NpYmxlTGFiZWwtX1VDbFFUdDYiLGhpbnQ6ImhpbnQtX1VDbFFUdDYifX0sNDY1MDY0KGUpe2UuZXhwb3J0cz17YnV0dG9uOiJidXR0b24td19nREtuN08iLGlzRGlzYWJsZWQ6ImlzRGlzYWJsZWQtd19nREtuN08ifX0sNDcwOTAxKGUpe2UuZXhwb3J0cz17bWVudUJ0bldyYXA6Im1lbnVCdG5XcmFwLXphcExoMHJSIixtZW51OiJtZW51LXphcExoMHJSIixuZXdNZW51V3JhcHBlcjoibmV3TWVudVdyYXBwZXItemFwTGgwclIiLGRlc2t0b3A6ImRlc2t0b3AtemFwTGgwclIiLG9wZW5lZDoib3BlbmVkLXphcExoMHJSIixob3ZlcjoiaG92ZXItemFwTGgwclIiLGNsaWNrZWQ6ImNsaWNrZWQtemFwTGgwclIiLGF1dG9TYXZlV3JhcHBlcjoiYXV0b1NhdmVXcmFwcGVyLXphcExoMHJSIixzaGFyaW5nV3JhcHBlcjoic2hhcmluZ1dyYXBwZXItemFwTGgwclIiLGJ1dHRvbjoiYnV0dG9uLXphcExoMHJSIixidXR0b25TbWFsbFBhZGRpbmc6ImJ1dHRvblNtYWxsUGFkZGluZy16YXBMaDByUiIsaGludFBsYWNlSG9sZGVyOiJoaW50UGxhY2VIb2xkZXItemFwTGgwclIiLHNtYWxsSGludFBsYWNlSG9sZGVyOiJzbWFsbEhpbnRQbGFjZUhvbGRlci16YXBMaDByUiIscG9wdXBJdGVtUm93VGFibGV0U21hbGw6InBvcHVwSXRlbVJvd1RhYmxldFNtYWxsLXphcExoMHJSIixzaG9ydGN1dDoic2hvcnRjdXQtemFwTGgwclIiLHRvb2xUaXRsZToidG9vbFRpdGxlLXphcExoMHJSIix0b29sVGl0bGVNb2JpbGU6InRvb2xUaXRsZU1vYmlsZS16YXBMaDByUiIsdGV4dFdyYXA6InRleHRXcmFwLXphcExoMHJSIix0ZXh0OiJ0ZXh0LXphcExoMHJSIix3aXRoSWNvbjoid2l0aEljb24temFwTGgwclIiLHN3aXRjaGVyTGFiZWw6InN3aXRjaGVyTGFiZWwtemFwTGgwclIiLGVsbGlwc2lzOiJlbGxpcHNpcy16YXBMaDByUiJ9fSwxMTc3MjkoZSl7ZS5leHBvcnRzPXtuZXdWaWV3OiJuZXdWaWV3LXA1QW5HMEdPIixkZXNrdG9wOiJkZXNrdG9wLXA1QW5HMEdPIn19LDk4ODQxNihlKXtlLmV4cG9ydHM9e2J1dHRvbjoiYnV0dG9uLW80MHQ5TDVuIixzbWFsbExlZnRQYWRkaW5nOiJzbWFsbExlZnRQYWRkaW5nLW80MHQ5TDVuIix0ZXh0OiJ0ZXh0LW80MHQ5TDVuIixzZWFyY2hCdXR0b246InNlYXJjaEJ1dHRvbi1vNDB0OUw1biIsbWVudU9wZW5lZDoibWVudU9wZW5lZC1vNDB0OUw1biIsdXBwZXJjYXNlOiJ1cHBlcmNhc2UtbzQwdDlMNW4ifX0sODg3MDE4KGUpe2UuZXhwb3J0cz17ZGVzY3JpcHRpb246ImRlc2NyaXB0aW9uLWhWUzNJOXJzIn19LDc3MTk4MyhlKXtlLmV4cG9ydHM9e3dyYXA6IndyYXAtckJ0RWZaUUkiLHRpdGxlV3JhcDoidGl0bGVXcmFwLXJCdEVmWlFJIixpbmRpY2F0b3JzOiJpbmRpY2F0b3JzLXJCdEVmWlFJIix0aXRsZToidGl0bGUtckJ0RWZaUUkiLGljb246Imljb24tckJ0RWZaUUkiLHRleHQ6InRleHQtckJ0RWZaUUkiLHRpdGxlVGFibGV0U21hbGw6InRpdGxlVGFibGV0U21hbGwtckJ0RWZaUUkiLGxhYmVsUm93OiJsYWJlbFJvdy1yQnRFZlpRSSIsbGFiZWw6ImxhYmVsLXJCdEVmWlFJIn19LDc4Mzc4MShlKXtlLmV4cG9ydHM9e21lbnU6Im1lbnUtc1dQMlhXQTAiLG5ld1ZpZXc6Im5ld1ZpZXctc1dQMlhXQTAiLGRlc2t0b3A6ImRlc2t0b3Atc1dQMlhXQTAiLG1lbnVTbWFsbFRhYmxldDoibWVudVNtYWxsVGFibGV0LXNXUDJYV0EwIixtZW51SXRlbUhlYWRlclRhYmxldFNtYWxsOiJtZW51SXRlbUhlYWRlclRhYmxldFNtYWxsLXNXUDJYV0EwIixtZW51SXRlbUhlYWRlcjoibWVudUl0ZW1IZWFkZXItc1dQMlhXQTAifX0sMjU3NjkxKGUpe2UuZXhwb3J0cz17d3JhcDoid3JhcC1ISjdTM1A0OSIsZnVsbDoiZnVsbC1ISjdTM1A0OSIsZmlyc3Q6ImZpcnN0LUhKN1MzUDQ5IixsYXN0OiJsYXN0LUhKN1MzUDQ5IixtZWRpdW06Im1lZGl1bS1ISjdTM1A0OSIsYnV0dG9uV2l0aEZhdm9yaXRlczoiYnV0dG9uV2l0aEZhdm9yaXRlcy1ISjdTM1A0OSJ9fSw1NzA2ODMoZSl7ZS5leHBvcnRzPXtpY29uOiJpY29uLW9ORGlRQ21OIn19LDE4OTUzMChlKXtlLmV4cG9ydHM9e3N1bW1hcnk6InN1bW1hcnktRTZ0eklRa1IiLApob3ZlcmVkOiJob3ZlcmVkLUU2dHpJUWtSIixjYXJldDoiY2FyZXQtRTZ0eklRa1IifX0sNjI1MTU2KGUpe2UuZXhwb3J0cz17Y29weUxpbms6ImNvcHlMaW5rLWUzQlptWlhIIixjb3B5TGlua01vYmlsZToiY29weUxpbmtNb2JpbGUtZTNCWm1aWEgiLGFjY2Vzc2libGVMYWJlbDoiYWNjZXNzaWJsZUxhYmVsLWUzQlptWlhIIn19LDc1ODg4MihlKXtlLmV4cG9ydHM9e2l0ZW06Iml0ZW0tUEJ0cnpaQ2EiLGFjY2Vzc2libGU6ImFjY2Vzc2libGUtUEJ0cnpaQ2EiLHJvdW5kOiJyb3VuZC1QQnRyelpDYSIsYWN0aXZlOiJhY3RpdmUtUEJ0cnpaQ2EifX0sMzYzODA4KGUpe2UuZXhwb3J0cz17YWNjZXNzaWJsZToiYWNjZXNzaWJsZS1tRUdaQmZ1TCJ9fSw1ODcwOTQoZSl7ZS5leHBvcnRzPXtidXR0b246ImJ1dHRvbi1yMHBvUnYwUiIsYWN0aXZlOiJhY3RpdmUtcjBwb1J2MFIifX0sNTczNDUwKGUpe2UuZXhwb3J0cz17dGl0bGU6InRpdGxlLXRzVG9ic3lwIn19LDk0MTkxOChlKXtlLmV4cG9ydHM9e2J1dHRvbjoiYnV0dG9uLUk4ckFuWFRSIix3aXRoVGV4dDoid2l0aFRleHQtSThyQW5YVFIiLHdpdGhvdXRUZXh0OiJ3aXRob3V0VGV4dC1JOHJBblhUUiJ9fSw2NjE1MChlKXtlLmV4cG9ydHM9e3NwaW5uZXJXcmFwOiJzcGlubmVyV3JhcC1aWnR1RklQcCJ9fSw1MDY4MzgoZSl7ZS5leHBvcnRzPXt3cmFwOiJ3cmFwLVVmREd5aDVLIn19LDE2NTQxMihlKXtlLmV4cG9ydHM9e2xhYmVsUm93OiJsYWJlbFJvdy1fdVhqU1NRNSIsdG9vbGJveDoidG9vbGJveC1fdVhqU1NRNSIsZGVzY3JpcHRpb246ImRlc2NyaXB0aW9uLV91WGpTU1E1IixkZXNjcmlwdGlvblRhYmxldFNtYWxsOiJkZXNjcmlwdGlvblRhYmxldFNtYWxsLV91WGpTU1E1IixpdGVtOiJpdGVtLV91WGpTU1E1Iix0aXRsZUl0ZW06InRpdGxlSXRlbS1fdVhqU1NRNSIscmVtb3ZlOiJyZW1vdmUtX3VYalNTUTUiLGFjdGl2ZToiYWN0aXZlLV91WGpTU1E1Iix0aXRsZUl0ZW1UYWJsZXRTbWFsbDoidGl0bGVJdGVtVGFibGV0U21hbGwtX3VYalNTUTUiLGl0ZW1UYWJsZXRTbWFsbDoiaXRlbVRhYmxldFNtYWxsLV91WGpTU1E1IixpdGVtTGFiZWxUYWJsZXRTbWFsbDoiaXRlbUxhYmVsVGFibGV0U21hbGwtX3VYalNTUTUiLHdyYXA6IndyYXAtX3VYalNTUTUiLGhvdmVyZWQ6ImhvdmVyZWQtX3VYalNTUTUifX0sMTc2NDMyKGUpe2UuZXhwb3J0cz17c3RhdGVUaXRsZToic3RhdGVUaXRsZS1ya3ZrRll6MiIsaGlkZGVuOiJoaWRkZW4tcmt2a0ZZejIiLGxvYWRlcjoibG9hZGVyLXJrdmtGWXoyIn19LDQ0NDU1MChlKXtlLmV4cG9ydHM9e2NvbnRhaW5lcjoiY29udGFpbmVyLUpRWjBIS0Q0IixidXR0b246ImJ1dHRvbi1KUVowSEtENCIsdmFsdWU6InZhbHVlLUpRWjBIS0Q0IixhY3Rpb246ImFjdGlvbi1KUVowSEtENCIsaWNvbjoiaWNvbi1KUVowSEtENCJ9fSw1NDEyMTIoZSl7ZS5leHBvcnRzPXttZW51OiJtZW51LVR6ODRvUGVRIn19LDk5NTg1MShlKXtlLmV4cG9ydHM9e2Vtb2ppV3JhcDoiZW1vamlXcmFwLVIyQ1RwbUhyIixlbW9qaToiZW1vamktUjJDVHBtSHIiLHRvb2x0aXBFbW9qaToidG9vbHRpcEVtb2ppLVIyQ1RwbUhyIix0b29sdGlwRW1vamlXcmFwOiJ0b29sdGlwRW1vamlXcmFwLVIyQ1RwbUhyIn19LDg0NDg3MShlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtTZWN0aW9uTGlzdEl0ZW06KCk9Pmx9KTt2YXIgYT1uKDc3OTQ3NCksaT1uKDkzNTUzNSksbz1uKDE0NzkwMSkscz1uKDM0NTExNik7ZnVuY3Rpb24gbChlKXtjb25zdHtpZDp0LHRpdGxlOm4sY2hpbGRyZW46bCxpdGVtUm9sZTpyLGFyaWFMYWJlbDpkLHJpZ2h0U2xvdDp1LHJpZ2h0U2xvdEFyaWFMYWJlbGxlZGJ5OmMsZGF0YVFhSWQ6aCxvbkNsaWNrOnYsb25LZXlEb3duOm0saXNXcmFwcGVkOnAsLi4uZn09ZSxnPSgwLHMuZmlsdGVyQ2hlY2tlZERhdGFQcm9wcykoZiksYj0oMCxhLnVzZUlkKSgpLHc9KDAsYS51c2VJZCkoKSxDPXZvaWQgMCE9PW47cmV0dXJuIGEuY3JlYXRlRWxlbWVudChhLkZyYWdtZW50LG51bGwsQyYmYS5jcmVhdGVFbGVtZW50KGkuVGl0bGVMaXN0SXRlbSx7ZGF0YVFhSWQ6KDAsby5jb25jYXRJZk5vdE51bGwpKGAke28uVUlfTElCX0RBVEFfUUFfSURfUFJFRklYfWxpc3Qtc2VjdGlvbi10aXRsZWAsaCksaWQ6dCx0aXRsZTpuLHJvbGU6cixyaWdodFNsb3Q6dSxyaWdodFNsb3RBcmlhTGFiZWxsZWRieTpjLGFyaWFMYWJlbDpkLHZhcmlhbnQ6InNlY29uZGFyeSIsYXJpYUNvbnRyb2xzOnZvaWQgMCE9PXA/dzp2b2lkIDAsdGl0bGVJZDpiLHdyYXBwZWQ6cCxvbkNsaWNrOnYsb25LZXlEb3duOm0sLi4uZ30pLGEuY3JlYXRlRWxlbWVudCgiZGl2Iix7cm9sZToiZ3JvdXAiLCJhcmlhLWxhYmVsbGVkYnkiOmIsaWQ6dywiZGF0YS1xYS1pZCI6KDAsby5jb25jYXRJZk5vdE51bGwpKGAke28uVUlfTElCX0RBVEFfUUFfSURfUFJFRklYfWxpc3Qtc2VjdGlvbi1jb250ZW50YCxoKX0sIXAmJmwpKX19LDQyMjc3NyhlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHt1c2VIb3Jpem9udGFsTWVudUtleWJvYXJkTmF2aWdhdGlvbjooKT0+ZH0pO3ZhciBhPW4oOTg4MDY4KSxpPW4oNDQ1NDkzKSxvPW4oODA3ODczKSxzPW4oMjg0NjkwKTtjb25zdCBsPWBbJHthLkRBVEFfSVNfQ09OVEVYVF9BQ1RJT059XWAscj1vLkNPTlRFWFRfQUNUSU9OX0ZPQ1VTQUJMRV9UQUdTLm1hcCgoZT0+YCR7bH0gJHtlfWApKS5qb2luKCIsIiksZD0oKT0+e2NvbnN0e2lzUnRsOmV9PSgwLGkudXNlUG9wb3ZlckNvbnRleHQpKCk7cmV0dXJuKDAscy5nZXRMaW5lYXJLZXlib2FyZE5hdmlnYXRpb24pKHIrYCxbJHthLkRBVEFfSVNfUE9QT1ZFUl9JVEVNX0JVVFRPTn1dYCx7aG9yaXpvbnRhbDohMCxpc1J0bDplLGFsbG93TmVzdGVkRm9jdXNhYmxlOiEwfSl9fSw4MDc4NzMoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7Q09OVEVYVF9BQ1RJT05fRk9DVVNBQkxFX1RBR1M6KCk9PmMsQ29udGV4dEFjdGlvbjooKT0+dn0pO3ZhciBhPW4oNzc5NDc0KSxpPW4oOTE0NDg3KSxvPW4ubihpKSxzPW4oMjk2Nzg2KSxsPW4oOTg4MDY4KSxyPW4oODY0NzM2KSxkPW4ubihyKTtjb25zdCB1PXsKW2wuREFUQV9JU19DT05URVhUX0FDVElPTl06ITB9LGM9WyJhW2hyZWZdIiwiYnV0dG9uOm5vdCg6ZGlzYWJsZWQpIiwiaW5wdXQ6bm90KDpkaXNhYmxlZCkiLCdbcm9sZT0iYnV0dG9uIl0nXSxoPWMuam9pbigiLCIpO2Z1bmN0aW9uIHYoZSl7Y29uc3R7Y2hpbGRyZW46dCxkYXRhUWFJZDpuLHByZXZlbnRDbGlja1Byb3BhZ2F0aW9uOmk9ITB9PWUse2lkOmwsaGlkZUNvbnRleHRBY3Rpb25zSWZOb0hvdmVyOnIsZm9jdXNlZENvbnRleHRBY3Rpb25zQ291bnRlcjpjLHNldEZvY3VzZWRDb250ZXh0QWN0aW9uc0NvdW50ZXI6dn09KDAscy51c2VDb250ZXh0QWN0aW9uKSgpLG09KDAsYS51c2VSZWYpKG51bGwpO3JldHVybigwLGEudXNlRWZmZWN0KSgoKCk9Pntjb25zdCBlPW0uY3VycmVudDtpZighZSlyZXR1cm47Y29uc3QgdD1lLnF1ZXJ5U2VsZWN0b3IoaCk7cmV0dXJuIHQ/ZnVuY3Rpb24oZSx0KXtjb25zdCBuPSgpPT57dCgoZT0+ZSsxKSl9LGE9KCk9Pnt0KChlPT5lLTEpKX07cmV0dXJuIGUuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLG4pLGUuYWRkRXZlbnRMaXN0ZW5lcigiYmx1ciIsYSksKCk9PntlLnJlbW92ZUV2ZW50TGlzdGVuZXIoImZvY3VzIixuKSxlLnJlbW92ZUV2ZW50TGlzdGVuZXIoImJsdXIiLGEpfX0odCx2KTp2b2lkIDB9KSxbdCx2XSksYS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Li4udSxpZDpsLHJlZjptLG9uQ2xpY2s6ZT0+e2kmJmUuc3RvcFByb3BhZ2F0aW9uKCl9LGNsYXNzTmFtZTpvKCkoZCgpLmNvbnRleHRBY3Rpb25zLHImJmQoKS5oaWRlSWZOb0hvdmVyLGM+MCYmZCgpLnNvbWVDb250ZXh0QWN0aW9uRm9jdXNlZCksImRhdGEtcWEtaWQiOm59LHQpfX0sMjk2Nzg2KGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse3VzZUNvbnRleHRBY3Rpb246KCk9PnMsdXNlV3JhcHBlZEludG9Db250ZXh0QWN0aW9uc0NvbnRleHQ6KCk9Pm99KTt2YXIgYT1uKDc3OTQ3NCk7Y29uc3QgaT0oMCxhLmNyZWF0ZUNvbnRleHQpKHtzZXRJZHM6KCk9Pnt9LGhpZGVDb250ZXh0QWN0aW9uc0lmTm9Ib3ZlcjohMSxmb2N1c2VkQ29udGV4dEFjdGlvbnNDb3VudGVyOjAsc2V0Rm9jdXNlZENvbnRleHRBY3Rpb25zQ291bnRlcjooKT0+e319KTtmdW5jdGlvbiBvKGUsdCxuKXtjb25zdFtvLHNdPSgwLGEudXNlU3RhdGUpKDApLGw9KDAsYS51c2VNZW1vKSgoKCk9Pih7Zm9jdXNlZENvbnRleHRBY3Rpb25zQ291bnRlcjpvLHNldEZvY3VzZWRDb250ZXh0QWN0aW9uc0NvdW50ZXI6cyxzZXRJZHM6dCxoaWRlQ29udGV4dEFjdGlvbnNJZk5vSG92ZXI6ISFufSkpLFtvLHMsdCxuXSk7cmV0dXJuKDAsYS51c2VNZW1vKSgoKCk9PmU/YS5jcmVhdGVFbGVtZW50KGkuUHJvdmlkZXIse3ZhbHVlOmx9LGUpOnZvaWQgMCksW2UsbF0pfWZ1bmN0aW9uIHMoKXtjb25zdHtzZXRJZHM6ZSxoaWRlQ29udGV4dEFjdGlvbnNJZk5vSG92ZXI6dCxmb2N1c2VkQ29udGV4dEFjdGlvbnNDb3VudGVyOm4sc2V0Rm9jdXNlZENvbnRleHRBY3Rpb25zQ291bnRlcjpvfT0oMCxhLnVzZUNvbnRleHQpKGkpLHM9KDAsYS51c2VJZCkoKTtyZXR1cm4oMCxhLnVzZUVmZmVjdCkoKCgpPT4oZSgoZT0+Wy4uLmUsc10pKSwoKT0+e2UoKGU9PmUuZmlsdGVyKChlPT5lIT09cykpKSl9KSksW2Usc10pLHtpZDpzLGhpZGVDb250ZXh0QWN0aW9uc0lmTm9Ib3Zlcjp0LGZvY3VzZWRDb250ZXh0QWN0aW9uc0NvdW50ZXI6bixzZXRGb2N1c2VkQ29udGV4dEFjdGlvbnNDb3VudGVyOm99fX0sMzkxOTE0KGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse1NlY3Rpb25Qb3BvdmVySXRlbTooKT0+cn0pO3ZhciBhPW4oNzc5NDc0KSxpPW4oNDQ1NDkzKSxvPW4oODQ0ODcxKSxzPW4oOTg4MDY4KSxsPW4oNDIyNzc3KTtmdW5jdGlvbiByKGUpe2NvbnN0e2lkOnQsdGl0bGU6bixjaGlsZHJlbjpyLGl0ZW1Sb2xlOmQsd3JhcHBhYmxlOnUsZGVmYXVsdFdyYXBwZWQ6YyxvbldyYXBwZWRDaGFuZ2VkOmgsYXJpYUxhYmVsOnYscmlnaHRTbG90Om0scmlnaHRTbG90QXJpYUxhYmVsbGVkYnk6cCxkYXRhUWFJZDpmfT1lLFtnLGJdPSgwLGEudXNlU3RhdGUpKGM/PyExKSx7b25LZXlEb3duOnd9PSgwLGwudXNlSG9yaXpvbnRhbE1lbnVLZXlib2FyZE5hdmlnYXRpb24pKCksQz1ufHx2b2lkIDAse29uUG9wb3ZlckNvbnRlbnRSZXNpemU6X309KDAsaS51c2VQb3BvdmVyQ29udGV4dCkoKTsoMCxhLnVzZUxheW91dEVmZmVjdCkoKCgpPT57Xz8uKCl9KSxbXyxnXSk7Y29uc3QgeT0oMCxhLnVzZUNhbGxiYWNrKSgoKCk9PntiKChlPT57Y29uc3QgdD0hZTtyZXR1cm4gaD8uKHQpLHR9KSl9KSxbaF0pO3JldHVybiBhLmNyZWF0ZUVsZW1lbnQoYS5GcmFnbWVudCxudWxsLGEuY3JlYXRlRWxlbWVudChvLlNlY3Rpb25MaXN0SXRlbSx7aWQ6dCx0aXRsZTpDLGNoaWxkcmVuOnIsaXRlbVJvbGU6ZCxhcmlhTGFiZWw6dixyaWdodFNsb3Q6bSxyaWdodFNsb3RBcmlhTGFiZWxsZWRieTpwLGRhdGFRYUlkOmYsaXNXcmFwcGVkOnU/Zzp2b2lkIDAsb25DbGljazp1P3k6dm9pZCAwLG9uS2V5RG93bjp3LFtzLkRBVEFfSVNfUE9QT1ZFUl9JVEVNX0JVVFRPTl06dXx8bT8idHJ1ZSI6dm9pZCAwfSkpfX0sOTIwNjMxKGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse3Nob3dEZXJpdmF0aXZlc0RpYWxvZzooKT0+aX0pO3ZhciBhPW4oODkwODM1KTtmdW5jdGlvbiBpKGUpe2EuY3VycmVudExheW91dC52YWx1ZSgpPy5zaG93QW5hbHlzaXNWaWV3KCJkZXJpdmF0aXZlcyIsZSl9fSw5MTYxMjEoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7Z2V0U3R1ZHlQYWNrYWdlTmFtZTooKT0+b30pO3ZhciBhPW4oNzkxNDI3KSxpPW4oNjMyNDQ0KTtmdW5jdGlvbiBvKGUsdCl7aWYodD8uaXNDaGFydFBhdHRlcm4pcmV0dXJuInR2LWNoYXJ0X3BhdHRlcm5zIjtpZih0Py5pc0F1dG8pcmV0dXJuImF1dG8tc3RhbmRhcmQiO2lmKCFmdW5jdGlvbihlKXtyZXR1cm4oMCxpLmlzUGluZUlkU3RyaW5nKShlKX0oZSkpcmV0dXJuIGEuU3R1ZHlNZXRhSW5mby5nZXRQYWNrYWdlTmFtZShlKTtjb25zdCBuPSgwLGkuZXh0cmFjdFBpbmVJZCkoZSk7aWYobiYmKDAsCmkuaXNDdXN0b21QaW5lSWQpKG4pKXJldHVybiJTY3JpcHQkVVNFUiI7aWYobiYmKDAsaS5pc1B1Ymxpc2hlZFBpbmVJZCkobikpcmV0dXJuIlNjcmlwdCRQVUIiO2lmKG4mJigwLGkuaXNDYW5kbGVTdGlja0lkKShuKSlyZXR1cm4iY2FuZGxlc3RpY2stcGF0dGVybnMiO2lmKG4mJigwLGkuaXNTdGFuZGFyZFBpbmVJZCkobikpcmV0dXJuIlNjcmlwdCRTVEQiO2NvbnN0W29dPWUuc3BsaXQoIkAiKTtpZihvLmluY2x1ZGVzKCJfIikpe2NvbnN0IGU9IlNjcmlwdCQiLFt0XT1vLnNwbGl0KCJfIik7cmV0dXJuIHQuaW5jbHVkZXMoZSk/dDplK3R9cmV0dXJuIG99fSw4NDE2NTUoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7U3ltYm9sU2VhcmNoRGlhbG9nRm9vdGVyOigpPT5sfSk7dmFyIGE9big3Nzk0NzQpLGk9big5MTQ0ODcpLG89bi5uKGkpLHM9big5MDQ0MzQpO2Z1bmN0aW9uIGwoZSl7Y29uc3R7Y2xhc3NOYW1lOnQsY2hpbGRyZW46bn09ZTtyZXR1cm4gYS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6bygpKHMuZm9vdGVyLHQpfSxuKX19LDMzMDcyMShlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtnZXRSZXN0cmljdGVkVG9vbFNldDooKT0+RWl9KTt2YXIgYT1uKDkzMDIzMSksaT1uKDc3OTQ3NCksbz1uKDIyMTg5Nikscz1uKDkxNDQ4NyksbD1uLm4ocykscj1uKDI3MzMxMCksZD1uKDczMjczMSksdT1uKDE4NTI3MSksYz1uKDIyNTI5OCksaD1uKDc5ODM4KSx2PW4oMjY3MDI4KSxtPW4oNzcxMjg1KSxwPW4oODY0NjgxKSxmPW4oMjQ2NzI3KTtjbGFzcyBnIGV4dGVuZHMgaS5QdXJlQ29tcG9uZW50e2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLl9oYW5kbGVDbGljaz0oKT0+e2NvbnN0e29uQ2xpY2s6ZSxvbkNsaWNrQXJnOnR9PXRoaXMucHJvcHM7ZSYmZSh0KX19cmVuZGVyKCl7Y29uc3R7Y2xhc3NOYW1lOmUsaWNvbjp0LGhpbnQ6bix0ZXh0OmEsaXNEaXNhYmxlZDpvLGlzQWN0aXZlOnMsb25DbGljazpsLG9uQ2xpY2tBcmc6ciwuLi5kfT10aGlzLnByb3BzO3JldHVybiBpLmNyZWF0ZUVsZW1lbnQoZi5Ub29sYmFyQnV0dG9uLHsuLi5kLGljb246dCx0ZXh0OmEsdG9vbHRpcDpuLGlzRGlzYWJsZWQ6byxpc0FjdGl2ZTpzLGlzR3JvdXBlZDohMCxvbkNsaWNrOnRoaXMuX2hhbmRsZUNsaWNrLGNsYXNzTmFtZTplfSl9fXZhciBiPW4oNjE4NjcyKSx3PW4oNDA2MTEwKSxDPW4oNjA5NTI4KSxfPW4oMzkxNTA0KSx5PW4oNTY5NjUyKSxTPW4oNzAxNTA2KSx4PW4oMTI4OTk4KSxFPW4oODMzOTAzKSxNPW4oMjM1NzI0KSxrPW4oOTgzNjE2KSxJPW4oNjgyMzgxKTtmdW5jdGlvbiBUKGUpe2NvbnN0e29yaWVudGF0aW9uOnQsb25LZXlEb3duOm4sLi4uYX09ZTtyZXR1cm4gaS5jcmVhdGVFbGVtZW50KCJkaXYiLHsuLi5hLHJvbGU6InJhZGlvZ3JvdXAiLCJhcmlhLW9yaWVudGF0aW9uIjp0LG9uS2V5RG93bjooMCxFLmNyZWF0ZVNhZmVNdWx0aWNhc3RFdmVudEhhbmRsZXIpKChmdW5jdGlvbihlKXtpZihlLmRlZmF1bHRQcmV2ZW50ZWQpcmV0dXJuO2lmKCEoZG9jdW1lbnQuYWN0aXZlRWxlbWVudCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KSlyZXR1cm47Y29uc3Qgbj0oMCxNLmhhc2hGcm9tRXZlbnQpKGUpO2lmKCJ2ZXJ0aWNhbCIhPT10JiYzOCE9PW4mJjQwIT09bilyZXR1cm47aWYoInZlcnRpY2FsIj09PXQmJjM3IT09biYmMzkhPT1uKXJldHVybjtjb25zdCBhPShpPWUuY3VycmVudFRhcmdldCxBcnJheS5mcm9tKGkucXVlcnlTZWxlY3RvckFsbCgnW3JvbGU9InJhZGlvIl06bm90KFtkaXNhYmxlZF0pOm5vdChbYXJpYS1kaXNhYmxlZD0idHJ1ZSIgaV0pJykpLmZpbHRlcigoMCxJLmNyZWF0ZVNjb3BlZFZpc2libGVFbGVtZW50RmlsdGVyKShpKSkpLnNvcnQoay5uYXZpZ2F0aW9uT3JkZXJDb21wYXJhdG9yKTt2YXIgaTtpZigwPT09YS5sZW5ndGgpcmV0dXJuO2NvbnN0IG89YS5pbmRleE9mKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQpO2lmKC0xPT09bylyZXR1cm47ZS5wcmV2ZW50RGVmYXVsdCgpO2NvbnN0IHM9KCk9Pntjb25zdCBlPShvK2EubGVuZ3RoLTEpJWEubGVuZ3RoO2Fbb10uZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInJvdmluZy10YWJpbmRleDpzZWNvbmRhcnktZWxlbWVudCIpKSxhW2VdLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJyb3ZpbmctdGFiaW5kZXg6bWFpbi1lbGVtZW50IikpLGFbZV0uZm9jdXMoKX0sbD0oKT0+e2NvbnN0IGU9KG8rYS5sZW5ndGgrMSklYS5sZW5ndGg7YVtvXS5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgicm92aW5nLXRhYmluZGV4OnNlY29uZGFyeS1lbGVtZW50IikpLGFbZV0uZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInJvdmluZy10YWJpbmRleDptYWluLWVsZW1lbnQiKSksYVtlXS5mb2N1cygpfTtzd2l0Y2gobil7Y2FzZSAzODoidmVydGljYWwiIT09dCYmcygpO2JyZWFrO2Nhc2UgNDA6InZlcnRpY2FsIiE9PXQmJmwoKTticmVhaztjYXNlIDM3OiJ2ZXJ0aWNhbCI9PT10JiZzKCk7YnJlYWs7Y2FzZSAzOToidmVydGljYWwiPT09dCYmbCgpfX0pLG4pfSl9dmFyIEE9big4NTAxMDgpLEg9big2MTkxMDUpLFY9big2Mzg4NzIpLFI9bigzMTMxMTApLEY9big5Nzk3NDIpLEw9bigxMDMxNjApLFo9big1OTA0ODYpLE49bigyMzQ2MzYpLHo9big3MDM4MTQpLEI9big1NDA1OTUpO2Z1bmN0aW9uIE8oZSl7Y29uc3R7aWQ6dCxpY29uOm4sbmFtZTphLGlzQmV0YVN0eWxlOm8saXNOZXdTdHlsZTpzLGlzU2VsZWN0ZWQ6bCxpc0Rpc2FibGVkOnIsaXNGYXZvcml0ZTpkLGlzRmF2b3JpdGluZ0FsbG93ZWQ6dSxvbkNsaWNrOmMsb25DbGlja0Zhdm9yaXRlOnYsLi4ubX09ZSxwPSgwLGkudXNlQ2FsbGJhY2spKCgoKT0+dih0KSksW3YsdF0pLGY9KDAsaS51c2VDYWxsYmFjaykoKCgpPT5jKHQpKSxbYyx0XSk7cmV0dXJuIGkuY3JlYXRlRWxlbWVudChSLk1lbnVJdGVtLHsuLi5tLHJvbGU6InJvdyIsYXJpYUxldmVsOjEsc2l6ZToibGFyZ2UiLGFyaWFTZWxlY3RlZDpsLHNlbGVjdGVkOmwsZGlzYWJsZWQ6cixhcmlhTGFiZWw6YSxvbkNsaWNrOmYsCmxlZnRTbG90Om4/aS5jcmVhdGVFbGVtZW50KFYuU3ZnSWNvbkxpc3RJdGVtUGFydCx7aWNvblN2ZzpufSk6bnVsbCxyaWdodFNsb3Q6W3UmJmkuY3JlYXRlRWxlbWVudChMLkNvbnRleHRBY3Rpb24se2tleToiZmF2b3JpdGUiLGhpZGVJZk5vSG92ZXI6IWQscm9sZToiZ3JpZGNlbGwifSxpLmNyZWF0ZUVsZW1lbnQoRi5GYXZvcml0ZUljb25CdXR0b24se2lzRmF2b3JpdGU6ISFkLG9uQ2xpY2s6cH0pKV0sdGl0bGU6aS5jcmVhdGVFbGVtZW50KCJkaXYiLHtyb2xlOiJncmlkY2VsbCIsImFyaWEtY29sc3BhbiI6dT8yOjMsY2xhc3NOYW1lOkIubGFiZWx9LGEsbyYmaS5jcmVhdGVFbGVtZW50KFouQmFkZ2Use2NsYXNzTmFtZTpCLmJldGFCYWRnZSxzaXplOk4uQmFkZ2VTaXplLlhTbWFsbH0sIkJFVEEiKSxzJiZpLmNyZWF0ZUVsZW1lbnQoei5CYWRnZU5ldyx7Y2xhc3NOYW1lOkIubmV3QmFkZ2V9KSksImRhdGEtdmFsdWUiOmguU1RZTEVfU0hPUlRfTkFNRVNbdF0sImRhdGEtcm9sZSI6Im1lbnVpdGVtIixkYXRhUWFJZDoiY2hhcnQtc3R5bGUtbWVudS1pdGVtIn0pfXZhciBEPW4oMjE2MDgzKTtjb25zdCBXPSgwLHkucmVnaXN0cnlDb250ZXh0VHlwZSkoKTtmdW5jdGlvbiBQKGUpe3JldHVybiFjLmxpbmtpbmcuc3VwcG9ydGVkQ2hhcnRTdHlsZXMudmFsdWUoKT8uaW5jbHVkZXMoZSl9Y29uc3QgVT0iSVRFTVNfRElWSURFUiIsaj1bWzAsMSw5LDE5LDIxXSxbMiwxNCwxNV0sWzMsMTYsMTBdLFsxMywxMl0sWzE3LDE4LDIwXSxbOCw0LDcsNSw2LDExXV0sSz1uZXcgU2V0KFtdKSxRPW5ldyBTZXQoW10pO2NsYXNzIHEgZXh0ZW5kcyBpLlB1cmVDb21wb25lbnR7Y29uc3RydWN0b3IoZSx0KXtzdXBlcihlLHQpLHRoaXMuX2hhbmRsZUNoYW5nZVN0eWxlPWU9Pntjb25zdHtmYXZvcml0ZXM6dCxsYXN0U2VsZWN0ZWROb3RGYXZvcml0ZTpuLGFjdGl2ZVN0eWxlOmF9PXRoaXMuc3RhdGU7dGhpcy5zZXRTdGF0ZSh7YWN0aXZlU3R5bGU6ZSxsYXN0U2VsZWN0ZWROb3RGYXZvcml0ZTp0LmluY2x1ZGVzKGEpP246YX0pfSx0aGlzLl9oYW5kbGVTZWxlY3RTdHlsZT1lPT57Y29uc3R7Y2hhcnRXaWRnZXRDb2xsZWN0aW9uOnR9PXRoaXMuY29udGV4dDtlIT09dC5hY3RpdmVDaGFydFN0eWxlLnZhbHVlKCkmJnQuc2V0Q2hhcnRTdHlsZVRvV2lkZ2V0KGUpfSx0aGlzLl9oYW5kbGVDbGlja0Zhdm9yaXRlPWU9Pnt0aGlzLl9pc1N0eWxlRmF2b3JpdGVkKGUpP3RoaXMuX2hhbmRsZVJlbW92ZUZhdm9yaXRlKGUpOnRoaXMuX2hhbmRsZUFkZEZhdm9yaXRlKGUpfSx0aGlzLl9ib3VuZEZvcmNlVXBkYXRlPSgpPT57dGhpcy5mb3JjZVVwZGF0ZSgpfSx0aGlzLl9oYW5kbGVRdWlja0NsaWNrPWU9Pnt0aGlzLl9oYW5kbGVTZWxlY3RTdHlsZShlKSx0aGlzLl90cmFja0NsaWNrKCl9LCgwLHkudmFsaWRhdGVSZWdpc3RyeSkodCx7Y2hhcnRXaWRnZXRDb2xsZWN0aW9uOm8uYW55LmlzUmVxdWlyZWQsZmF2b3JpdGVDaGFydFN0eWxlc1NlcnZpY2U6by5hbnkuaXNSZXF1aXJlZH0pO2NvbnN0e2NoYXJ0V2lkZ2V0Q29sbGVjdGlvbjpuLGZhdm9yaXRlQ2hhcnRTdHlsZXNTZXJ2aWNlOmF9PXQsaT1uLmFjdGl2ZUNoYXJ0U3R5bGUudmFsdWUoKSxzPWEuZ2V0KCksbD1uZXcgU2V0KCgwLFMuYWxsQ2hhcnRTdHlsZXMpKCkpO3RoaXMuc3RhdGU9e2FjdGl2ZVN0eWxlOmksZmF2b3JpdGVzOnMsc3R5bGVzOmoucmVkdWNlKCgoZSx0KT0+e2NvbnN0IG49dC5maWx0ZXIoKGU9PmwuaGFzKGUpKSk7cmV0dXJuIG4ubGVuZ3RoJiYoZS5sZW5ndGgmJm4udW5zaGlmdChVKSxlLnB1c2goLi4ubikpLGV9KSxbXSl9fWNvbXBvbmVudERpZE1vdW50KCl7Y29uc3R7Y2hhcnRXaWRnZXRDb2xsZWN0aW9uOmUsZmF2b3JpdGVDaGFydFN0eWxlc1NlcnZpY2U6dH09dGhpcy5jb250ZXh0O2UuYWN0aXZlQ2hhcnRTdHlsZS5zdWJzY3JpYmUodGhpcy5faGFuZGxlQ2hhbmdlU3R5bGUpLHQuZ2V0T25DaGFuZ2UoKS5zdWJzY3JpYmUodGhpcyx0aGlzLl9oYW5kbGVDaGFuZ2VTZXR0aW5ncyksYy5saW5raW5nLnN1cHBvcnRlZENoYXJ0U3R5bGVzLnN1YnNjcmliZSh0aGlzLl9ib3VuZEZvcmNlVXBkYXRlKX1jb21wb25lbnRXaWxsVW5tb3VudCgpe2NvbnN0e2NoYXJ0V2lkZ2V0Q29sbGVjdGlvbjplLGZhdm9yaXRlQ2hhcnRTdHlsZXNTZXJ2aWNlOnR9PXRoaXMuY29udGV4dDtlLmFjdGl2ZUNoYXJ0U3R5bGUudW5zdWJzY3JpYmUodGhpcy5faGFuZGxlQ2hhbmdlU3R5bGUpLHQuZ2V0T25DaGFuZ2UoKS51bnN1YnNjcmliZSh0aGlzLHRoaXMuX2hhbmRsZUNoYW5nZVNldHRpbmdzKSxjLmxpbmtpbmcuc3VwcG9ydGVkQ2hhcnRTdHlsZXMudW5zdWJzY3JpYmUodGhpcy5fYm91bmRGb3JjZVVwZGF0ZSl9cmVuZGVyKCl7Y29uc3R7aXNTaG93blF1aWNrczplLGRpc3BsYXlNb2RlOnQ9ImZ1bGwiLGlkOm99PXRoaXMucHJvcHMse2FjdGl2ZVN0eWxlOnMsZmF2b3JpdGVzOmQsc3R5bGVzOmMsbGFzdFNlbGVjdGVkTm90RmF2b3JpdGU6Zn09dGhpcy5zdGF0ZSxiPSJzbWFsbCIhPT10JiZlJiYwIT09ZC5sZW5ndGgsXz1bLi4uZF07Xy5pbmNsdWRlcyhzKT92b2lkIDAhPT1mJiZfLnB1c2goZik6Xy5wdXNoKHMpO2NvbnN0IHk9YiYmXy5sZW5ndGg+MTtyZXR1cm4gaS5jcmVhdGVFbGVtZW50KHcuTWF0Y2hNZWRpYSx7cnVsZTpDLkRpYWxvZ0JyZWFrcG9pbnRzLlRhYmxldFNtYWxsfSwoZT0+e2NvbnN0IHQ9Yy5tYXAoKCh0LG4pPT50PT09VT90aGlzLl9yZW5kZXJEaXZpZGVyKGBzZXBhcmF0b3ItJHtufWApOnRoaXMuX3JlbmRlclBvcHVwTWVudUl0ZW0odCx0PT09cyxlKSkpO3JldHVybiBpLmNyZWF0ZUVsZW1lbnQocC5Ub29sV2lkZ2V0Um93V3JhcCx7aWQ6b30seSYmaS5jcmVhdGVFbGVtZW50KFQse29yaWVudGF0aW9uOiJob3Jpem9udGFsIixjbGFzc05hbWU6Qi5ncm91cH0sXy5tYXAoKChlLHQpPT5pLmNyZWF0ZUVsZW1lbnQoZyx7cm9sZToicmFkaW8iLGNsYXNzTmFtZTpCLmJ1dHRvbixpY29uOnYuU0VSSUVTX0lDT05TW2VdLCJhcmlhLWNoZWNrZWQiOmImJnM9PT1lLGlzQWN0aXZlOmImJnM9PT1lLGlzRGlzYWJsZWQ6UChlKSxrZXk6dCxoaW50OigwLAp4LmdldFRyYW5zbGF0ZWRDaGFydFN0eWxlTmFtZSkoZSksb25DbGljazpiP3RoaXMuX2hhbmRsZVF1aWNrQ2xpY2s6dm9pZCAwLG9uQ2xpY2tBcmc6ZSwiZGF0YS12YWx1ZSI6aC5TVFlMRV9TSE9SVF9OQU1FU1tlXX0pKSkpLGkuY3JlYXRlRWxlbWVudChtLlRvb2xiYXJNZW51QnV0dG9uLHthcnJvdzpCb29sZWFuKHkpLGNvbnRlbnQ6eT92b2lkIDA6aS5jcmVhdGVFbGVtZW50KHAuVG9vbFdpZGdldFJvd1dyYXAsbnVsbCxpLmNyZWF0ZUVsZW1lbnQoci5JY29uLHtpY29uOnYuU0VSSUVTX0lDT05TW3NdfSkpLHRvb2x0aXA6eT91LnQobnVsbCx2b2lkIDAsbig4MzM5MzQpKTooMCx4LmdldFRyYW5zbGF0ZWRDaGFydFN0eWxlTmFtZSkocyksY2xhc3NOYW1lOkIubWVudSxpc0RyYXdlcjplLG9uQ2xpY2s6dGhpcy5fdHJhY2tDbGljayxlbmFibGVTY3JvbGxDb21wZW5zYXRpb246KDAsYS5pc0ZlYXR1cmVzZXRFbmFibGVkKSgic2hvd19uZXdfbWVudV9pdGVtc19pbl9jaGFydF9tZW51cyIpLG1lbnVSb2xlOiJ0cmVlZ3JpZCJ9LGkuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOmwoKShCLmNvbnRhaW5lciwoMCxhLmlzRmVhdHVyZXNldEVuYWJsZWQpKCJzaG93X25ld19tZW51X2l0ZW1zX2luX2NoYXJ0X21lbnVzIikmJkIubmV3VmlldywhZSYmQi5kZXNrdG9wKX0sdCkpKX0pKX1fcmVuZGVyRGl2aWRlcihlKXtyZXR1cm4oMCxhLmlzRmVhdHVyZXNldEVuYWJsZWQpKCJzaG93X25ld19tZW51X2l0ZW1zX2luX2NoYXJ0X21lbnVzIik/aS5jcmVhdGVFbGVtZW50KGQuRGl2aWRlckxpc3RJdGVtLHtrZXk6ZSxyb2xlOiJzZXBhcmF0b3IifSk6aS5jcmVhdGVFbGVtZW50KGIuUG9wdXBNZW51U2VwYXJhdG9yLHtrZXk6ZX0pfV9yZW5kZXJQb3B1cE1lbnVJdGVtKGUsdCxuKXtjb25zdHtpc0Zhdm9yaXRpbmdBbGxvd2VkOm99PXRoaXMucHJvcHMscz10aGlzLl9pc1N0eWxlRmF2b3JpdGVkKGUpO3JldHVybigwLGEuaXNGZWF0dXJlc2V0RW5hYmxlZCkoInNob3dfbmV3X21lbnVfaXRlbXNfaW5fY2hhcnRfbWVudXMiKT9pLmNyZWF0ZUVsZW1lbnQoTyx7a2V5OmBjaGFydC10eXBlLSR7ZX1gLGlkOmUsbmFtZTooMCx4LmdldFRyYW5zbGF0ZWRDaGFydFN0eWxlTmFtZSkoZSksaWNvbjp2LlNFUklFU19JQ09OU1tlXSxpc0Rpc2FibGVkOlAoZSksaXNTZWxlY3RlZDp0LGlzRmF2b3JpdGU6cyxpc0JldGFTdHlsZTpRLmhhcyhlKSxpc05ld1N0eWxlOksuaGFzKGUpLGlzRmF2b3JpdGluZ0FsbG93ZWQ6byxvbkNsaWNrOnRoaXMuX2hhbmRsZVNlbGVjdFN0eWxlLG9uQ2xpY2tGYXZvcml0ZTp0aGlzLl9oYW5kbGVDbGlja0Zhdm9yaXRlLCJhcmlhLXNlbGVjdGVkIjp0fSk6aS5jcmVhdGVFbGVtZW50KEEuQWNjZXNzaWJsZU1lbnVJdGVtLHtrZXk6YGNoYXJ0LXR5cGUtJHtlfWAscm9sZToicm93Iix0aGVtZTpuP18ubXVsdGlsaW5lTGFiZWxXaXRoSWNvbkFuZFRvb2xib3hUaGVtZTp2b2lkIDAsaWNvbjp2LlNFUklFU19JQ09OU1tlXSxpc0FjdGl2ZTp0LCJhcmlhLXNlbGVjdGVkIjp0LGlzRGlzYWJsZWQ6UChlKSxsYWJlbDppLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpCLmxhYmVsfSwoMCx4LmdldFRyYW5zbGF0ZWRDaGFydFN0eWxlTmFtZSkoZSl8fCIiLFEuaGFzKGUpJiZpLmNyZWF0ZUVsZW1lbnQoWi5CYWRnZSx7Y2xhc3NOYW1lOkIuYmV0YUJhZGdlLHNpemU6Ti5CYWRnZVNpemUuWFNtYWxsfSwiQkVUQSIpLEsuaGFzKGUpJiZpLmNyZWF0ZUVsZW1lbnQoei5CYWRnZU5ldyx7Y2xhc3NOYW1lOkIubmV3QmFkZ2V9KSksb25DbGljazp0aGlzLl9oYW5kbGVTZWxlY3RTdHlsZSxvbkNsaWNrQXJnOmUsc2hvd1Rvb2xib3hPbkhvdmVyOiFzLHNob3dUb29sYm94T25Gb2N1czohMCx0b29sYm94Om8mJmkuY3JlYXRlRWxlbWVudChILk1lbnVGYXZvcml0ZUJ1dHRvbix7aXNBY3RpdmU6dCxpc0ZpbGxlZDpzLG9uQ2xpY2s6KCk9PnRoaXMuX2hhbmRsZUNsaWNrRmF2b3JpdGUoZSl9KSwiZGF0YS12YWx1ZSI6aC5TVFlMRV9TSE9SVF9OQU1FU1tlXX0pfV9oYW5kbGVDaGFuZ2VTZXR0aW5ncyhlKXt0aGlzLnNldFN0YXRlKHtsYXN0U2VsZWN0ZWROb3RGYXZvcml0ZTp2b2lkIDAsZmF2b3JpdGVzOmV9KX1faXNTdHlsZUZhdm9yaXRlZChlKXtyZXR1cm4tMSE9PXRoaXMuc3RhdGUuZmF2b3JpdGVzLmluZGV4T2YoZSl9X2hhbmRsZUFkZEZhdm9yaXRlKGUpe2NvbnN0e2Zhdm9yaXRlczp0fT10aGlzLnN0YXRlLHtmYXZvcml0ZUNoYXJ0U3R5bGVzU2VydmljZTpufT10aGlzLmNvbnRleHQ7bi5zZXQoWy4uLnQsZV0pfV9oYW5kbGVSZW1vdmVGYXZvcml0ZShlKXtjb25zdHtmYXZvcml0ZXM6dH09dGhpcy5zdGF0ZSx7ZmF2b3JpdGVDaGFydFN0eWxlc1NlcnZpY2U6bn09dGhpcy5jb250ZXh0O24uc2V0KHQuZmlsdGVyKCh0PT50IT09ZSkpKX1fdHJhY2tDbGljaygpeygwLEQudHJhY2tCdXR0b25DbGljaykoInRvcCB0b29sYmFyIiwiY2hhcnQgc3R5bGUiKX19cS5jb250ZXh0VHlwZT1XO3ZhciAkPW4oMTg2MDk3KSxYPW4oMzg2OTMxKSxHPW4oODQ4OTg4KSxKPW4oNzY1Njk1KTtjb25zdCBZPSgwLHkucmVnaXN0cnlDb250ZXh0VHlwZSkoKTtjbGFzcyBlZSBleHRlbmRzIGkuUHVyZUNvbXBvbmVudHtjb25zdHJ1Y3RvcihlLHQpe3N1cGVyKGUsdCksdGhpcy5fdXBkYXRlU3RhdGU9ZT0+e3RoaXMuc2V0U3RhdGUoe2lzQWN0aXZlOmV9KX0sdGhpcy5faGFuZGxlQ2xpY2s9ZT0+eygwLFgudHJhY2tFdmVudCkoIkdVSSIsIkNoYXJ0IEhlYWRlciBUb29sYmFyIiwiY29tcGFyZSIpLCgwLEQudHJhY2tCdXR0b25DbGljaykoInRvcCB0b29sYmFyIiwiY29tcGFyZSIpLHRoaXMuX2NvbXBhcmVEaWFsb2dSZW5kZXJlcj8uc2hvdyh7c2hvdWxkUmV0dXJuRm9jdXM6KDAsRy5pc0tleWJvYXJkQ2xpY2spKGUpfSl9LCgwLHkudmFsaWRhdGVSZWdpc3RyeSkodCx7Y2hhcnRXaWRnZXRDb2xsZWN0aW9uOm8uYW55LmlzUmVxdWlyZWR9KSx0aGlzLnN0YXRlPXtpc0FjdGl2ZTohMX0sCnRoaXMuX2NvbXBhcmVEaWFsb2dSZW5kZXJlcj10aGlzLmNvbnRleHQuY2hhcnRXaWRnZXRDb2xsZWN0aW9uLmdldENvbXBhcmVEaWFsb2dSZW5kZXJlcigpfWNvbXBvbmVudERpZE1vdW50KCl7dGhpcy5fY29tcGFyZURpYWxvZ1JlbmRlcmVyPy52aXNpYmxlKCkuc3Vic2NyaWJlKHRoaXMuX3VwZGF0ZVN0YXRlKX1jb21wb25lbnRXaWxsVW5tb3VudCgpe3RoaXMuX2NvbXBhcmVEaWFsb2dSZW5kZXJlcj8udmlzaWJsZSgpLnVuc3Vic2NyaWJlKHRoaXMuX3VwZGF0ZVN0YXRlKX1yZW5kZXIoKXtjb25zdHtpc0FjdGl2ZTplfT10aGlzLnN0YXRlO3JldHVybiBpLmNyZWF0ZUVsZW1lbnQoJC5Ub29sYmFyQ29sbGFwc2libGVCdXR0b24sey4uLnRoaXMucHJvcHMsaWNvbjpKLGlzT3BlbmVkOmUsb25DbGljazp0aGlzLl9oYW5kbGVDbGljayxjb2xsYXBzZVdoZW46WyJmdWxsIiwibWVkaXVtIiwic21hbGwiXSx0b29sdGlwOnUudChudWxsLHtjb250ZXh0OiJ0b29sYmFyX2NvbXBhcmVfc3ltYm9sc190b29sdGlwIn0sbig4NzM4MjApKSwiYXJpYS1oYXNwb3B1cCI6ImRpYWxvZyJ9KX19ZWUuY29udGV4dFR5cGU9WTt2YXIgdGU9big2ODg2MzIpLG5lPW4oMTM4NjM4KSxhZT1uKDE1MzczNCksaWU9big4NjExODgpLG9lPW4oMzQ1MTUxKSxzZT1uKDYwNTI1NyksbGU9big2ODU5NzkpLHJlPW4oNDEzNDEpLGRlPW4oNjMyNDQ0KTtjb25zdCB1ZT0oMCxuKDIyMTA2MSkuZ2V0TG9nZ2VyKSgiRmF2b3JpdGVzSW5mbyIpO2Z1bmN0aW9uIGNlKGUpe2lmKDA9PT1lLmxlbmd0aClyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKFtdKTt1ZS5sb2dOb3JtYWwoIlJlcXVlc3RpbmcgZmF2b3JpdGVzIGluZm8iKTtjb25zdCB0PVtdLG49bmV3IE1hcCxhPW5ldyBNYXAsaT1uZXcgTWFwO3JldHVybiBlLmZvckVhY2goKGU9Pntzd2l0Y2goZS50eXBlKXtjYXNlImphdmEiOmkuc2V0KGUuc3R1ZHlJZCxlKTticmVhaztjYXNlInBpbmUiOigwLGRlLmlzUHVibGlzaGVkUGluZUlkKShlLnBpbmVJZCk/bi5zZXQoZS5waW5lSWQsZSk6YS5zZXQoZS5waW5lSWQsZSk7YnJlYWs7ZGVmYXVsdDooMCxuZS5hc3NlcnQpKCExLGB1bmtub3duIGZhdm9yaXRlIHR5cGUgJHtKU09OLnN0cmluZ2lmeShlKX1gKX19KSksMCE9PWkuc2l6ZSYmdC5wdXNoKCgwLHNlLnN0dWR5TWV0YUluZm9SZXBvc2l0b3J5KSgpLmZpbmRBbGxKYXZhU3R1ZGllcygpLnRoZW4oKGU9Pntjb25zdCB0PW5ldyBNYXA7Zm9yKGNvbnN0IG4gb2YgZSkhbi5pc19oaWRkZW5fc3R1ZHkmJmkuaGFzKG4uaWQpJiZ0LnNldChuLmlkLHtuYW1lOm4uZGVzY3JpcHRpb24sbG9jYWxpemVkTmFtZTpuLmRlc2NyaXB0aW9uX2xvY2FsaXplZCxleHRyYTpuLmV4dHJhLHN0dWR5TWFya2V0U2hpdHR5T2JqZWN0Om59KTtyZXR1cm4gdH0pKS50aGVuKChlPT57Y29uc3QgdD1oZShpLGUpO2lmKDAhPT10Lm5vdEZvdW5kSXRlbXMubGVuZ3RoKXtjb25zdCBlPXQubm90Rm91bmRJdGVtcy5tYXAoKGU9PmUuc3R1ZHlJZCkpO3VlLmxvZ1dhcm4oYENhbm5vdCBmaW5kIGphdmEgc2NyaXB0czogJHtKU09OLnN0cmluZ2lmeShlKX1gKX1yZXR1cm4gdC5pdGVtc30pKSksdC5wdXNoKGZ1bmN0aW9uKGUpe2NvbnN0IHQ9bmV3IE1hcDtpZigwPT09ZS5sZW5ndGgpcmV0dXJuIFByb21pc2UucmVzb2x2ZSh0KTtyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKGxlLmluZm8oZSkucHJvbWlzZSgpKS50aGVuKChlPT57aWYodm9pZCAwIT09ZSlmb3IoY29uc3QgbiBvZiBlKXQuc2V0KG4uc2NyaXB0SWRQYXJ0LHtuYW1lOm4uc2NyaXB0TmFtZSxhZ3JlZUNvdW50Om4uYWdyZWVDb3VudCxhdXRob3JVc2VybmFtZTpuLmF1dGhvci51c2VybmFtZSxzdHVkeU1hcmtldFNoaXR0eU9iamVjdDpufSk7cmV0dXJuIHR9KSl9KEFycmF5LmZyb20obi5rZXlzKCkpKS50aGVuKChlPT57Y29uc3QgdD1oZShuLGUpO2lmKDAhPT10Lm5vdEZvdW5kSXRlbXMubGVuZ3RoKXtjb25zdCBlPXQubm90Rm91bmRJdGVtcy5tYXAoKGU9PmUucGluZUlkKSk7dWUubG9nV2FybihgQ2Fubm90IGZpbmQgcHViIHNjcmlwdHM6ICR7SlNPTi5zdHJpbmdpZnkoZSl9YCl9cmV0dXJuIHQuaXRlbXN9KSkpLHQucHVzaChmdW5jdGlvbihlKXtjb25zdCB0PW5ldyBNYXA7cmV0dXJuIG5ldyBQcm9taXNlKChuPT57KGZ1bmN0aW9uKGUpe2lmKDA9PT1lLmxlbmd0aClyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKGUpO3JldHVybiBQcm9taXNlLnJlc29sdmUoZnVuY3Rpb24oZSl7cmV0dXJuIGUuZmlsdGVyKChlPT4oMCxkZS5pc1N0YW5kYXJkUGluZUlkKShlKXx8KDAsZGUuaXNDdXN0b21QaW5lSWQpKGUpKSl9KGUpKX0pKGUpLnRoZW4oKGU9PntpZigwPT09ZS5sZW5ndGgpcmV0dXJuIG4odCk7KDAscmUucmVxdWVzdEluZm9Gb3JTY3JpcHRzKShlKS50aGVuKChhPT57Y29uc3QgaT1uZXcgU2V0KGUpO2Zvcihjb25zdCBlIG9mIGEpaS5oYXMoZS5zY3JpcHRJZFBhcnQpJiZ0LnNldChlLnNjcmlwdElkUGFydCx7bmFtZTplLnNjcmlwdE5hbWUsZXh0cmE6ZS5leHRyYSxzdHVkeU1hcmtldFNoaXR0eU9iamVjdDplfSk7bih0KX0pKX0pKX0pKX0oQXJyYXkuZnJvbShhLmtleXMoKSkpLnRoZW4oKGU9Pntjb25zdCB0PWhlKGEsZSk7aWYoMCE9PXQubm90Rm91bmRJdGVtcy5sZW5ndGgpe2NvbnN0IGU9dC5ub3RGb3VuZEl0ZW1zLm1hcCgoZT0+ZS5waW5lSWQpKTt1ZS5sb2dXYXJuKGBDYW5ub3QgZmluZCBwaW5lIHNjcmlwdHM6ICR7SlNPTi5zdHJpbmdpZnkoZSl9YCl9cmV0dXJuIHQuaXRlbXN9KSkpLFByb21pc2UuYWxsKHQpLnRoZW4oKGU9Pih1ZS5sb2dOb3JtYWwoIlJlcXVlc3RpbmcgZmF2b3JpdGVzIGluZm8gZmluaXNoZWQiKSxlLnJlZHVjZSgoKGUsdCk9PmUuY29uY2F0KHQpKSxbXSkpKSl9ZnVuY3Rpb24gaGUoZSx0KXtjb25zdCBuPXtpdGVtczpbXSxub3RGb3VuZEl0ZW1zOltdfTtyZXR1cm4gZS5mb3JFYWNoKCgoZSxhKT0+e2NvbnN0IGk9dC5nZXQoYSk7dm9pZCAwIT09aT9uLml0ZW1zLnB1c2goe2l0ZW06ZSxpbmZvOml9KTpuLm5vdEZvdW5kSXRlbXMucHVzaChlKX0pKSxufQp2YXIgdmU9bigzNjgxMTApLG1lPW4oNjc4Mjg1KSxwZT1uKDE5OTE3MiksZmU9big2NDgwMDkpLGdlPW4oMTc5NzcxKSxiZT1uKDgwMDkxNCksd2U9big5MTYxMjEpLENlPW4oNjU1NTg0KSxfZT1uKDYyMTkyNik7ZnVuY3Rpb24geWUoZSx0LG4peyFmdW5jdGlvbihlLHQsbil7aWYoInR2LXZvbHVtZWJ5cHJpY2UiPT09ZSl7bGV0IGU9IlRWX1ZPTFVNRUJZUFJJQ0UiLGE9InZvbHVtZVByb2ZpbGUiO2NvbnN0W2ldPXQuc3BsaXQoIkAiKTtyZXR1cm5bIlRQT1BlcmlvZGljIiwiVFBPU2Vzc2lvbnMiXS5pbmNsdWRlcyhpKSYmKGU9IlRQT19QRVJJT0RJQyIsYT0iVFBPUGVyaW9kaWMiKSx2b2lkKDAsQ2UucnVuT3JHb1BybykobixlLHtmZWF0dXJlOmF9KX0idHYtY2hhcnRwYXR0ZXJucyIhPT1lPyJ0di1jaGFydF9wYXR0ZXJucyIhPT1lPygwLF9lLnJ1bk9yU2lnbmluV2l0aEZlYXR1cmUpKG4se3NvdXJjZToic3R1ZHktbWFya2V0LWFwcGx5LXN0dWR5IixmZWF0dXJlOiJpbmRpY2F0b3JzIn0pOigwLENlLnJ1bk9yR29Qcm8pKG4sIkNIQVJUX1BBVFRFUk5TIix7ZmVhdHVyZToiY2hhcnRQYXR0ZXJucyJ9KTooMCxDZS5ydW5PckdvUHJvKShuLCJUVl9QUk9TVFVESUVTIix7ZmVhdHVyZToiY2hhcnRQYXR0ZXJucyJ9KX0oKDAsd2UuZ2V0U3R1ZHlQYWNrYWdlTmFtZSkoZSx0KSxlLG4pfXZhciBTZT1uKDMxMzgyMikseGU9bigyNTYzMTQpO2Z1bmN0aW9uIEVlKGUpe2xldCB0PXUudChlLnNjcmlwdE5hbWV8fCIiLHtjb250ZXh0OiJzdHVkeSJ9LG4oODg0NjkzKSk7Y29uc3QgYT1lLmV4dHJhLmZpbmFuY2lhbFBlcmlvZDtyZXR1cm4gYSYmISgwLHhlLmlzTm9BZ2dyZWdhdGVkRmluYW5jaWFsUGVyaW9kKShhKSYmKHQrPWAgwrcgJHsoMCx4ZS5maW5hbmNpYWxQZXJpb2RUb1N0cmluZykoYSl9YCksdH1uKDExMzc4NCk7dmFyIE1lPW4oODQ2NzQ5KSxrZT1uKDg4OTgwOSk7Y29uc3QgSWU9KDAsb2UuaG90S2V5U2VyaWFsaXplKSh7a2V5czpbIi8iXSx0ZXh0OiJ7MH0ifSksVGU9KDAseS5yZWdpc3RyeUNvbnRleHRUeXBlKSgpO2NsYXNzIEFlIGV4dGVuZHMgaS5QdXJlQ29tcG9uZW50e2NvbnN0cnVjdG9yKGUsdCl7c3VwZXIoZSx0KSx0aGlzLl9wcm9taXNlPW51bGwsdGhpcy5fbWVudT1pLmNyZWF0ZVJlZigpLHRoaXMuX21lbnVJdGVtc0NvbnRhaW5lcj1pLmNyZWF0ZVJlZigpLHRoaXMuX2Zhdm9yaXRlRnVuZGFtZW50YWxzTW9kZWw9U2UuRmF2b3JpdGVGdW5kYW1lbnRhbHMuZ2V0SW5zdGFuY2UoKSx0aGlzLl9zZXRBY3RpdmVTdGF0ZT1lPT57dGhpcy5zZXRTdGF0ZSh7aXNBY3RpdmU6ZX0pfSx0aGlzLl9yZW5kZXJGYXZvcml0ZXNMaXN0T3JFbXB0eVN0YXRlPShlLHQsYSk9Pntjb25zdCBvPXRoaXMuX3JlbmRlckZhdm9yaXRlc0NvbnRlbnQoZSx0LGEpO2lmKCF0KXJldHVybiBvO2lmKG51bGw9PT1vKXJldHVybiBudWxsO2NvbnN0IHM9dS50KG51bGwse2NvbnRleHQ6ImluZGljYXRvcnNfbWVudSJ9LG4oNjI5Mzg0KSk7cmV0dXJuIGkuY3JlYXRlRWxlbWVudChiZS5TZWN0aW9uTGlzdEl0ZW0se2tleToiZmF2b3JpdGUtaW5kaWNhdG9ycy1zZWN0aW9uIix0aXRsZTpzLGFyaWFMYWJlbDpzLGdyb3VwUm9sZToiZ3JvdXAifSxvKX0sdGhpcy5fcmVuZGVyRmF2b3JpdGVzQ29udGVudD0oZSx0LGEpPT57aWYoYSlyZXR1cm4gaS5jcmVhdGVFbGVtZW50KGZlLlRvb2xXaWRnZXRNZW51U3Bpbm5lcixudWxsKTtpZih0aGlzLnN0YXRlLmluZm9zLmxlbmd0aD4wKXJldHVybiB0aGlzLnN0YXRlLmluZm9zLm1hcCgobj0+dGhpcy5fcmVuZGVyRmF2b3JpdGVJdGVtKG4sZSx0KSkpO2lmKG51bGwhPT10aGlzLl9wcm9taXNlKXtjb25zdCBlPXUudChudWxsLHtjb250ZXh0OiJpbmRpY2F0b3JzX21lbnUifSxuKDQzNDA3NikpO3JldHVybiB0P2kuY3JlYXRlRWxlbWVudChSLk1lbnVJdGVtLHtkaXNhYmxlZDohMCx0aXRsZTplfSk6aS5jcmVhdGVFbGVtZW50KGFlLlBvcHVwTWVudUl0ZW0se2lzRGlzYWJsZWQ6ITAsbGFiZWw6ZX0pfXJldHVybiBudWxsfSx0aGlzLl9yZW5kZXJGYXZvcml0ZUl0ZW09KGUsdCxuKT0+e2NvbnN0IGE9ImphdmEiPT09ZS5pdGVtLnR5cGU/ZS5pdGVtLnN0dWR5SWQ6ZS5pdGVtLnBpbmVJZCxvPUhlKGUpLHM9aS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOmwoKSghdCYma2UubGFiZWwsdCYma2Uuc21hbGxXaWR0aExhYmVsLCJhcHBseS1vdmVyZmxvdy10b29sdGlwIil9LG8pO3JldHVybiBuP2kuY3JlYXRlRWxlbWVudChSLk1lbnVJdGVtLHtrZXk6YSxyb2xlOiJtZW51aXRlbSIsb25DbGljazooKT0+dGhpcy5faGFuZGxlU2VsZWN0SW5kaWNhdG9yKGUpLHRpdGxlOm8sYXJpYUxhYmVsOm8sImRhdGEtcm9sZSI6Im1lbnVpdGVtIixlbGxpcHNpczohdH0pOmkuY3JlYXRlRWxlbWVudChBLkFjY2Vzc2libGVNZW51SXRlbSx7cm9sZToibWVudWl0ZW0iLGNsYXNzTmFtZTpsKCkodCYma2Uuc21hbGxXaWR0aE1lbnVJdGVtKSx0aGVtZTp0P18ubXVsdGlsaW5lTGFiZWxXaXRoSWNvbkFuZFRvb2xib3hUaGVtZTp2b2lkIDAsa2V5OmEsb25DbGljazp0aGlzLl9oYW5kbGVTZWxlY3RJbmRpY2F0b3Isb25DbGlja0FyZzplLGxhYmVsOnN9KX0sdGhpcy5faGFuZGxlQ2xpY2s9ZT0+e2NvbnN0e3N0dWR5TWFya2V0OnR9PXRoaXMucHJvcHM7dGhpcy5zZXRTdGF0ZSh7aXNBY3RpdmU6ITB9LCgoKT0+e3QudmlzaWJsZSgpLnZhbHVlKCk/dC5oaWRlKCk6dC5zaG93KHtzaG91bGRSZXR1cm5Gb2N1czooMCxHLmlzS2V5Ym9hcmRDbGljaykoZSl9KX0pKSx0aGlzLl90cmFja0NsaWNrKCl9LHRoaXMuX2hhbmRsZVNlbGVjdEluZGljYXRvcj1lPT57ZT0oMCxuZS5lbnN1cmVEZWZpbmVkKShlKSx0aGlzLl90cmFja0Zhdm9yaXRlQWN0aW9uKCJGYXZvcml0ZSBpbmRpY2F0b3IgZnJvbSB0b29sYmFyIik7eWUoImphdmEiPT09ZS5pdGVtLnR5cGU/ZS5pdGVtLnN0dWR5SWQ6ZS5pdGVtLnBpbmVJZCxlLmluZm8uZXh0cmEsKGFzeW5jKCk9PntlPSgwLG5lLmVuc3VyZURlZmluZWQpKGUpO2NvbnN0e2NoYXJ0V2lkZ2V0Q29sbGVjdGlvbjp0fT10aGlzLmNvbnRleHQKO2lmKCJqYXZhIj09PWUuaXRlbS50eXBlKXtjb25zdCB0PSgwLHZlLnRyeUZpbmRTdHVkeUxpbmVUb29sTmFtZUJ5U3R1ZHlJZCkoZS5pdGVtLnN0dWR5SWQpO2lmKG51bGwhPT10KXJldHVybiBhd2FpdCgwLHZlLmluaXRMaW5lVG9vbCkodCksdm9pZCBtZS50b29sLnNldFZhbHVlKHQpfXQuYWN0aXZlQ2hhcnRXaWRnZXQudmFsdWUoKS5pbnNlcnRTdHVkeShlLml0ZW0sW10se2V2ZW50U291cmNlOiJ0b29sYmFyX2Zhdm9yaXRlcyJ9KX0pKX0sdGhpcy5faGFuZGxlRmF2b3JpdGVJbmRpY2F0b3JzQ2hhbmdlPSgpPT57Y29uc3R7ZmF2b3JpdGVTY3JpcHRzTW9kZWw6ZX09dGhpcy5jb250ZXh0LHQ9Wy4uLigwLG5lLmVuc3VyZURlZmluZWQpKGUpLmZhdm9yaXRlcygpXTt0aGlzLnNldFN0YXRlKHtmYXZvcml0ZXM6dH0pLHRoaXMuX2NsZWFyQ2FjaGUoKX0sdGhpcy5faGFuZGxlRmF2b3JpdGVGdW5kYW1lbnRhbHNDaGFuZ2U9KCk9Pntjb25zdCBlPW5ldyBTZXQodGhpcy5fZmF2b3JpdGVGdW5kYW1lbnRhbHNNb2RlbD8uZmF2b3JpdGVzKCl8fFtdKTt0aGlzLnNldFN0YXRlKHtmYXZvcml0ZUZ1bmRhbWVudGFsczplfSksdGhpcy5fY2xlYXJDYWNoZSgpfSx0aGlzLl9oYW5kbGVNb3VzZUVudGVyPSgpPT57dGhpcy5fcHJlZmV0Y2hGYXZvcml0ZXMoKX0sdGhpcy5faGFuZGxlV3JhcENsaWNrPSgpPT57dGhpcy5fcHJlZmV0Y2hGYXZvcml0ZXMoKX0sdGhpcy5faGFuZGxlQ2hhbmdlQWN0aXZlV2lkZ2V0PSgpPT57dGhpcy5fY2xlYXJDYWNoZSgpfSx0aGlzLl9jbGVhckNhY2hlPSgpPT57dGhpcy5fcHJvbWlzZT1udWxsLHRoaXMuc2V0U3RhdGUoe2luZm9zOltdfSl9LHRoaXMuX2hhbmRsZVNjcmlwdFJlbmFtZWQ9ZT0+e2NvbnN0e2Zhdm9yaXRlU2NyaXB0c01vZGVsOnR9PXRoaXMuY29udGV4dDt2b2lkIDAhPT10JiZ0LmlzRmF2KGUuc2NyaXB0SWRQYXJ0KSYmdGhpcy5fY2xlYXJDYWNoZSgpfSx0aGlzLl9oYW5kbGVGYXZvcml0ZU1lbnVDbGljaz0oKT0+e3RoaXMuX3RyYWNrQ2xpY2soKSx0aGlzLl90cmFja0Zhdm9yaXRlQWN0aW9uKCJTZWxlY3QgZmF2b3JpdGUgaW5kaWNhdG9ycyBkcm9wZG93biIpfSwoMCx5LnZhbGlkYXRlUmVnaXN0cnkpKHQse2Zhdm9yaXRlU2NyaXB0c01vZGVsOm8uYW55LGNoYXJ0V2lkZ2V0Q29sbGVjdGlvbjpvLmFueS5pc1JlcXVpcmVkfSk7Y29uc3R7ZmF2b3JpdGVTY3JpcHRzTW9kZWw6YX09dCxzPXZvaWQgMCE9PWE/YS5mYXZvcml0ZXMoKTpbXTt0aGlzLnN0YXRlPXtpc0FjdGl2ZTohMSxpc0xvYWRpbmc6ITEsZmF2b3JpdGVzOnMsZmF2b3JpdGVGdW5kYW1lbnRhbHM6bmV3IFNldCh0aGlzLl9mYXZvcml0ZUZ1bmRhbWVudGFsc01vZGVsPy5mYXZvcml0ZXMoKSksaW5mb3M6W119fWNvbXBvbmVudERpZE1vdW50KCl7Y29uc3R7c3R1ZHlNYXJrZXQ6ZX09dGhpcy5wcm9wcyx7ZmF2b3JpdGVTY3JpcHRzTW9kZWw6dCxjaGFydFdpZGdldENvbGxlY3Rpb246bn09dGhpcy5jb250ZXh0O2UudmlzaWJsZSgpLnN1YnNjcmliZSh0aGlzLl9zZXRBY3RpdmVTdGF0ZSksdm9pZCAwIT09dCYmKHQuZmF2b3JpdGVzQ2hhbmdlZCgpLnN1YnNjcmliZSh0aGlzLHRoaXMuX2hhbmRsZUZhdm9yaXRlSW5kaWNhdG9yc0NoYW5nZSksbi5hY3RpdmVDaGFydFdpZGdldC5zdWJzY3JpYmUodGhpcy5faGFuZGxlQ2hhbmdlQWN0aXZlV2lkZ2V0KSksdGhpcy5fZmF2b3JpdGVGdW5kYW1lbnRhbHNNb2RlbD8uZmF2b3JpdGVzQ2hhbmdlZCgpLnN1YnNjcmliZSh0aGlzLHRoaXMuX2hhbmRsZUZhdm9yaXRlRnVuZGFtZW50YWxzQ2hhbmdlKSxnZS5vbigiVFZTY3JpcHRSZW5hbWVkIix0aGlzLl9oYW5kbGVTY3JpcHRSZW5hbWVkLG51bGwpfWNvbXBvbmVudFdpbGxVbm1vdW50KCl7Y29uc3R7c3R1ZHlNYXJrZXQ6ZX09dGhpcy5wcm9wcyx7ZmF2b3JpdGVTY3JpcHRzTW9kZWw6dCxjaGFydFdpZGdldENvbGxlY3Rpb246bn09dGhpcy5jb250ZXh0O2UudmlzaWJsZSgpLnVuc3Vic2NyaWJlKHRoaXMuX3NldEFjdGl2ZVN0YXRlKSx2b2lkIDAhPT10JiYodC5mYXZvcml0ZXNDaGFuZ2VkKCkudW5zdWJzY3JpYmUodGhpcyx0aGlzLl9oYW5kbGVGYXZvcml0ZUluZGljYXRvcnNDaGFuZ2UpLG4uYWN0aXZlQ2hhcnRXaWRnZXQudW5zdWJzY3JpYmUodGhpcy5faGFuZGxlQ2hhbmdlQWN0aXZlV2lkZ2V0KSksdGhpcy5fZmF2b3JpdGVGdW5kYW1lbnRhbHNNb2RlbD8uZmF2b3JpdGVzQ2hhbmdlZCgpLnVuc3Vic2NyaWJlKHRoaXMsdGhpcy5faGFuZGxlRmF2b3JpdGVGdW5kYW1lbnRhbHNDaGFuZ2UpLGdlLnVuc3Vic2NyaWJlKCJUVlNjcmlwdFJlbmFtZWQiLHRoaXMuX2hhbmRsZVNjcmlwdFJlbmFtZWQsbnVsbCksdGhpcy5fcHJvbWlzZT1udWxsfXJlbmRlcigpe2NvbnN0e2lzQWN0aXZlOmUsZmF2b3JpdGVzOnQsZmF2b3JpdGVGdW5kYW1lbnRhbHM6byxpc0xvYWRpbmc6c309dGhpcy5zdGF0ZSx7Y2xhc3NOYW1lOnIsZGlzcGxheU1vZGU6ZCxpZDpjfT10aGlzLnByb3BzLHtjaGFydFdpZGdldENvbGxlY3Rpb246aH09dGhpcy5jb250ZXh0LHY9KDAsYS5pc0ZlYXR1cmVzZXRFbmFibGVkKSgic2hvd19uZXdfbWVudV9pdGVtc19pbl9jaGFydF9tZW51cyIpO3JldHVybiBpLmNyZWF0ZUVsZW1lbnQoaS5GcmFnbWVudCxudWxsLGkuY3JlYXRlRWxlbWVudChwLlRvb2xXaWRnZXRSb3dXcmFwLHtpZDpjLG9uTW91c2VFbnRlcjp0aGlzLl9oYW5kbGVNb3VzZUVudGVyLG9uQ2xpY2s6dGhpcy5faGFuZGxlV3JhcENsaWNrfSxpLmNyZWF0ZUVsZW1lbnQoJC5Ub29sYmFyQ29sbGFwc2libGVCdXR0b24se2Rpc3BsYXlNb2RlOmQsY2xhc3NOYW1lOnIsaWNvbjpNZSxpc09wZW5lZDplLG9uQ2xpY2s6dGhpcy5faGFuZGxlQ2xpY2ssdGV4dDp1LnQobnVsbCx2b2lkIDAsbig4NDgzOTQpKSwiZGF0YS1yb2xlIjoiYnV0dG9uIiwiZGF0YS1uYW1lIjoib3Blbi1pbmRpY2F0b3JzLWRpYWxvZyIsdG9vbHRpcDp1LnQobnVsbCx2b2lkIDAsbigxNzQ0ODIpKSwiZGF0YS10b29sdGlwLWhvdGtleSI6SWUsY29sbGFwc2VXaGVuOigwLAphLmlzRmVhdHVyZXNldEVuYWJsZWQpKCJoZWFkZXJfaW5kaWNhdG9yc19pY29uX29ubHkiKT9bImZ1bGwiXTp2b2lkIDB9KSxCb29sZWFuKHQubGVuZ3RoPjB8fG8/LnNpemUpJiZpLmNyZWF0ZUVsZW1lbnQody5NYXRjaE1lZGlhLHtydWxlOiIobWF4LXdpZHRoOiA0NDBweCkifSwoZT0+aS5jcmVhdGVFbGVtZW50KG0uVG9vbGJhck1lbnVCdXR0b24se2tleTpoLmFjdGl2ZUNoYXJ0V2lkZ2V0LnZhbHVlKCkuaWQoKSxhcnJvdzohMCxjbG9zZU9uQ2xpY2tPdXRzaWRlOiEwLGlzRHJhd2VyOmUsZHJhd2VyUG9zaXRpb246IkJvdHRvbSIscmVmOnRoaXMuX21lbnUsbWVudVJlZmVyZW5jZTp0aGlzLl9tZW51SXRlbXNDb250YWluZXIsb25DbGljazp0aGlzLl9oYW5kbGVGYXZvcml0ZU1lbnVDbGljaywiZGF0YS1uYW1lIjoic2hvdy1mYXZvcml0ZS1pbmRpY2F0b3JzIix0b29sdGlwOnUudChudWxsLHtjb250ZXh0OiJ0b29sYmFyX2Zhdm9yaXRlX2luZGljYXRvcnNfdG9vbHRpcCJ9LG4oMTMzOTcpKSxtZW51Um9sZToibWVudSIsbWVudUNsYXNzTmFtZTprZS5tZW51LGVuYWJsZVNjcm9sbENvbXBlbnNhdGlvbjp2fSxpLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpsKCkoa2UuZHJvcGRvd24sZSYma2Uuc21hbGxXaWR0aFdyYXBwZXIsdiYma2UubmV3Vmlldyl9LCF2JiZpLmNyZWF0ZUVsZW1lbnQocGUuVG9vbFdpZGdldE1lbnVTdW1tYXJ5LHtjbGFzc05hbWU6ZSYma2Uuc21hbGxXaWR0aFRpdGxlfSx1LnQobnVsbCx7Y29udGV4dDoiaW5kaWNhdG9yc19tZW51In0sbig2MjkzODQpKSksdGhpcy5fcmVuZGVyRmF2b3JpdGVzTGlzdE9yRW1wdHlTdGF0ZShlLHYscykpKSkpKSl9X3ByZWZldGNoRmF2b3JpdGVzKCl7Y29uc3R7Y2hhcnRXaWRnZXRDb2xsZWN0aW9uOmV9PXRoaXMuY29udGV4dDtpZihudWxsIT09dGhpcy5fcHJvbWlzZXx8IXdpbmRvdy5pc19hdXRoZW50aWNhdGVkKXJldHVybjtpZighZS5hY3RpdmVDaGFydFdpZGdldC52YWx1ZSgpLmhhc01vZGVsKCkpcmV0dXJuO3RoaXMuc2V0U3RhdGUoe2lzTG9hZGluZzohMH0pO2NvbnN0IHQ9dGhpcy5zdGF0ZS5mYXZvcml0ZUZ1bmRhbWVudGFscyxuPXRoaXMuX3Byb21pc2U9UHJvbWlzZS5hbGwoW2NlKHRoaXMuc3RhdGUuZmF2b3JpdGVzKSx0P1Byb21pc2UucmVzb2x2ZSgoMCxyZS5yZXF1ZXN0RnVuZGFtZW50YWxTY3JpcHRzKSgpKTp2b2lkIDBdKS50aGVuKChlPT57aWYobiE9PXRoaXMuX3Byb21pc2UpcmV0dXJuO2NvbnN0W3QsYV09ZTtsZXQgaT1bLi4udF07aWYoYSl7Y29uc3QgZT1hLmZpbHRlcigoZT0+dGhpcy5zdGF0ZS5mYXZvcml0ZUZ1bmRhbWVudGFscz8uaGFzKGUuc2NyaXB0SWRQYXJ0KSkpLm1hcCh0aGlzLl9tYXBGdW5kYW1lbnRhbFRvRmF2b3JpdGVJdGVtSW5mbyk7aS5wdXNoKC4uLmUpfWk9Wy4uLmldLnNvcnQoKChlLHQpPT5IZShlKS5sb2NhbGVDb21wYXJlKEhlKHQpKSkpLHRoaXMuc2V0U3RhdGUoe2luZm9zOmksaXNMb2FkaW5nOiExfSwoKCk9Pnt0aGlzLl9tZW51LmN1cnJlbnQ/LnVwZGF0ZSgpLHRoaXMuX21lbnVJdGVtc0NvbnRhaW5lci5jdXJyZW50JiZkb2N1bWVudC5hY3RpdmVFbGVtZW50PT09dGhpcy5fbWVudUl0ZW1zQ29udGFpbmVyLmN1cnJlbnQmJigwLGllLmZvY3VzRmlyc3RNZW51SXRlbSkodGhpcy5fbWVudUl0ZW1zQ29udGFpbmVyLmN1cnJlbnQpfSkpfSkpfV90cmFja0NsaWNrKCl7KDAsRC50cmFja0J1dHRvbkNsaWNrKSgidG9wIHRvb2xiYXIiLCJpbmRpY2F0b3JzIix2b2lkIDAsITApfV90cmFja0Zhdm9yaXRlQWN0aW9uKGUpeygwLFgudHJhY2tFdmVudCkoIkdVSSIsIkNoYXJ0IEhlYWRlciBUb29sYmFyIixlKX1fbWFwRnVuZGFtZW50YWxUb0Zhdm9yaXRlSXRlbUluZm8oZSl7cmV0dXJue2l0ZW06e3R5cGU6InBpbmUiLHBpbmVJZDplLnNjcmlwdElkUGFydH0saW5mbzp7bmFtZTplLnNjcmlwdE5hbWUsbG9jYWxpemVkTmFtZTpFZShlKSxzdHVkeU1hcmtldFNoaXR0eU9iamVjdDp2b2lkIDB9fX19ZnVuY3Rpb24gSGUoZSl7cmV0dXJuIGUuaW5mby5sb2NhbGl6ZWROYW1lfHx1LnQoZS5pbmZvLm5hbWUse2NvbnRleHQ6InN0dWR5In0sbig4ODQ2OTMpKX1BZS5jb250ZXh0VHlwZT1UZTt2YXIgVmU9big0NjUxMzcpLFJlPW4oMjU0NjczKSxGZT1uKDI1MTcyMyk7ZnVuY3Rpb24gTGUoZSl7cmV0dXJuIGkuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOmwoKShGZS52YWx1ZSx7W0ZlLnNlbGVjdGVkXTplLmlzU2VsZWN0ZWR9KX0sZS52YWx1ZSxlLm1ldHJpYyl9dmFyIFplPW4oOTQ4MzgwKSxOZT1uKDYzMjk5MiksemU9bigyNzYwMTkpLEJlPW4oMjY0MzE4KSxPZT1uKDE4MjMwOCk7ZnVuY3Rpb24gRGUoZSl7Y29uc3RbdCxuXT0oMCxPZS51c2VSb3ZpbmdUYWJpbmRleEVsZW1lbnQpKG51bGwpO3JldHVybiBpLmNyZWF0ZUVsZW1lbnQoQmUuQ2xpY2thYmxlSWNvbkJ1dHRvbix7Li4uZSxyZWY6dCx0YWJJbmRleDpufSl9dmFyIFdlPW4oNDYyNzA0KTtmdW5jdGlvbiBQZShlKXtjb25zdHtpbnRlcnZhbDp0LGhpbnQ6YSxhcmlhTGV2ZWw6byxpc1NlbGVjdGVkOnMsaXNEaXNhYmxlZDpsLGlzRmF2b3JpdGU6cixpc1JlbW92YWJsZTpkLGlzRmF2b3JpdGluZ0FsbG93ZWQ6Yyxpc1NpZ25hbGluZzpoLG9uQ2xpY2s6dixvbkNsaWNrUmVtb3ZlOm0sb25DbGlja0Zhdm9yaXRlOnAsc2Nyb2xsQ29udGFpbmVyUmVmOmZ9PWUsZz0oMCxpLnVzZUNhbGxiYWNrKSgoZT0+bSh0LGUpKSxbbSx0XSksYj0oMCxpLnVzZUNhbGxiYWNrKSgoKCk9PnAodCkpLFtwLHRdKSx3PSgwLGkudXNlQ2FsbGJhY2spKCgoKT0+dih0KSksW3YsdF0pLEM9My0oKGQ/MTowKSsoYz8xOjApKSxfPSgwLGkudXNlUmVmKShudWxsKTtyZXR1cm4oMCxpLnVzZUVmZmVjdCkoKCgpPT57aWYoaCl7Y29uc3QgZT1fLmN1cnJlbnQ7aWYoZSYmZi5jdXJyZW50KXtjb25zdCB0PWUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksbj1mLmN1cnJlbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7KG4udG9wPnQudG9wfHxuLmJvdHRvbTx0LmJvdHRvbSkmJmUuc2Nyb2xsSW50b1ZpZXcoKX19fSksW2gsZl0pLAppLmNyZWF0ZUVsZW1lbnQoUi5NZW51SXRlbSx7cm9sZToicm93IixhcmlhTGV2ZWw6byxhcmlhU2VsZWN0ZWQ6cyxzZWxlY3RlZDpzLGRpc2FibGVkOmwsb25DbGljazp3LHJpZ2h0U2xvdDpmdW5jdGlvbigpe2lmKCFkJiYhYylyZXR1cm4gbnVsbDtyZXR1cm5bZCYmaS5jcmVhdGVFbGVtZW50KEwuQ29udGV4dEFjdGlvbix7a2V5OiJyZW1vdmUiLGhpZGVJZk5vSG92ZXI6ITAscm9sZToiZ3JpZGNlbGwifSxpLmNyZWF0ZUVsZW1lbnQoRGUse3JvbGU6ImJ1dHRvbiIsb25DbGljazpnLHRpdGxlOnUudChudWxsLHtjb250ZXh0OiJoZWFkZXIgdG9vbGJhciBpbnRlcnZhbHMgbWVudSBpdGVtIn0sbig0NDAyNTEpKSxpY29uOldlLGRhdGFRYUlkOiJyZW1vdmUtaW50ZXJ2YWwtYnV0dG9uIn0pKSxjJiZpLmNyZWF0ZUVsZW1lbnQoTC5Db250ZXh0QWN0aW9uLHtrZXk6ImZhdm9yaXRlIixoaWRlSWZOb0hvdmVyOiFyLHJvbGU6ImdyaWRjZWxsIn0saS5jcmVhdGVFbGVtZW50KEYuRmF2b3JpdGVJY29uQnV0dG9uLHtpc0Zhdm9yaXRlOiEhcixvbkNsaWNrOmJ9KSldfSgpLHRpdGxlOmkuY3JlYXRlRWxlbWVudCgic3BhbiIse3JvbGU6ImdyaWRjZWxsIiwiYXJpYS1jb2xzcGFuIjpDfSxhKSxhcmlhTGFiZWw6YSwiZGF0YS12YWx1ZSI6dCwiZGF0YS1yb2xlIjoibWVudWl0ZW0iLGxpc3RJdGVtUmVmOl8sZGF0YVFhSWQ6ImludGVydmFsLW1lbnUtaXRlbSJ9KX12YXIgVWU9big2ODk4OTQpLGplPW4oMzYzMjY5KSxLZT1uKDkxNzgxNyksUWU9big5NzM2OSk7ZnVuY3Rpb24gcWUoZSl7Y29uc3R7cm9sZTp0LGludGVydmFsOm4saGludDphLGlzQWN0aXZlOm8saXNEaXNhYmxlZDpzLGlzRmF2b3JpdGU6cixpc1JlbW92YWJsZTpkLGlzRmF2b3JpdGluZ0FsbG93ZWQ6dSxpc1NpZ25hbGluZzpjLG9uQ2xpY2s6aCxvbkNsaWNrUmVtb3ZlOnYsb25DbGlja0Zhdm9yaXRlOm0saXNTbWFsbFRhYmxldDpwLHNjcm9sbENvbnRhaW5lclJlZjpmLC4uLmd9PWUsW2Isd109KDAsVWUudXNlSG92ZXJEZXByZWNhdGVkKSgpLEM9aS51c2VDYWxsYmFjaygoZT0+dihuLGUpKSxbdixuXSkseT1pLnVzZUNhbGxiYWNrKCgoKT0+bShuKSksW20sbl0pLFM9KDAsaS51c2VSZWYpKG51bGwpO3JldHVybigwLGkudXNlRWZmZWN0KSgoKCk9PntpZihjKXtjb25zdCBlPVMuY3VycmVudDtpZihlJiZmLmN1cnJlbnQpe2NvbnN0IHQ9ZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxuPWYuY3VycmVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsobi50b3A+dC50b3B8fG4uYm90dG9tPHQuYm90dG9tKSYmZS5zY3JvbGxJbnRvVmlldygpfX19KSxbYyxmXSksaS5jcmVhdGVFbGVtZW50KCJkaXYiLHsuLi53LHJlZjpTfSxpLmNyZWF0ZUVsZW1lbnQoQS5BY2Nlc3NpYmxlTWVudUl0ZW0sey4uLmcscm9sZTp0LGNsYXNzTmFtZTpsKCkoUWUubWVudUl0ZW0scCYmUWUuc21hbGxXaWR0aE1lbnVJdGVtLGMmJlFlLnNpZ25hbCksdGhlbWU6cD9fLm11bHRpbGluZUxhYmVsV2l0aEljb25BbmRUb29sYm94VGhlbWU6dm9pZCAwLGlzQWN0aXZlOm8saXNEaXNhYmxlZDpzLG9uQ2xpY2s6aCxvbkNsaWNrQXJnOm4sdG9vbGJveDpmdW5jdGlvbigpe2NvbnN0IGU9aS5jcmVhdGVFbGVtZW50KEtlLk1lbnVSZW1vdmVCdXR0b24se2tleToicmVtb3ZlIixpc0FjdGl2ZTpvLGhpZGRlbjohamUudG91Y2gmJiFiLG9uQ2xpY2s6QyxjbGFzc05hbWU6UWUucmVtb3ZlLGRhdGFRYUlkOiJyZW1vdmUtaW50ZXJ2YWwtYnV0dG9uIn0pLHQ9aS5jcmVhdGVFbGVtZW50KEguTWVudUZhdm9yaXRlQnV0dG9uLHtrZXk6ImZhdm9yaXRlIixpc0FjdGl2ZTpvLGlzRmlsbGVkOnIsb25DbGljazp5fSk7cmV0dXJuW2QmJmUsdSYmdF19KCksc2hvd1Rvb2xib3hPbkhvdmVyOiFyLHNob3dUb29sYm94T25Gb2N1czohMCxsYWJlbDphLGRhdGFRYUlkOiJpbnRlcnZhbC1tZW51LWl0ZW0ifSkpfXZhciAkZT1uKDM1OTg0NiksWGU9big3NjI4NTEpLEdlPW4oNzc4MDc3KSxKZT1uKDM2MzgwOCk7ZnVuY3Rpb24gWWUoZSl7Y29uc3R7Y2xhc3NOYW1lOnQsLi4ubn09ZSxbYSxvXT0oMCxPZS51c2VSb3ZpbmdUYWJpbmRleEVsZW1lbnQpKG51bGwpO3JldHVybiBpLmNyZWF0ZUVsZW1lbnQoR2UuQ29sbGFwc2libGVTZWN0aW9uLHsuLi5uLHJlZjphLHRhYkluZGV4Om8sImRhdGEtcm9sZSI6Im1lbnVpdGVtIixjbGFzc05hbWU6bCgpKEplLmFjY2Vzc2libGUsdCksb25LZXlEb3duOmZ1bmN0aW9uKGUpe2NvbnN0IHQ9KDAsTS5oYXNoRnJvbUV2ZW50KShlKTsxMyE9PXQmJjMyIT09dHx8KGUucHJldmVudERlZmF1bHQoKSxhLmN1cnJlbnQgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCYmYS5jdXJyZW50LmNsaWNrKCkpfX0pfXZhciBldD1uKDcxOTkpO2Z1bmN0aW9uIHR0KGUpe2NvbnN0e2NoaWxkcmVuOnQsdGl0bGU6bixjbGFzc05hbWU6YX09ZTtyZXR1cm4gaS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6YX0saS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6ZXQuc21hbGxUYWJsZXRTZWN0aW9uVGl0bGV9LG4pLHQpfXZhciBudD1uKDY1NzgwOSksYXQ9bigyNjYxMDApO2Z1bmN0aW9uIGl0KGUpe2NvbnN0e2ludGVydmFsczp0LGlzQ3VzdG9tSW50ZXJ2YWxzRW5hYmxlZDphLGlzRmF2b3JpdGluZ0FsbG93ZWQ6byxhY3RpdmVJbnRlcnZhbDpzLGxhc3RBZGRlZEludGVydmFsOnIsbWVudVZpZXdTdGF0ZTpjLGludGVydmFsc01lbnVWaWV3U3RhdGVTZXJ2aWNlOmgsc2Nyb2xsQ29udGFpbmVyUmVmOnYsb25PcGVuQWRkSW50ZXJ2YWxEaWFsb2c6bSxvblNlbGVjdEludGVydmFsOnAsb25SZW1vdmVJbnRlcnZhbDpmLG9uQ2xpY2tGYXZvcml0ZTpnLG9uU2VjdGlvblN0YXRlQ2hhbmdlOncsaXNJbnRlcnZhbEZhdm9yaXRlOkMsaXNJbnRlcnZhbERlZmF1bHQ6Xyxpc1NtYWxsVGFibGV0Onksdmlld01vZGU6U309ZSx4PSgwLCRlLnNvcnRSZXNvbHV0aW9uc0J5Q2F0ZWdvcmllcykodCksRT1hPzE6MCxNPXgubGVuZ3RoK0U7cmV0dXJuIGkuY3JlYXRlRWxlbWVudChpLkZyYWdtZW50LG51bGwsZnVuY3Rpb24oKXtpZighYSlyZXR1cm5bXTtjb25zdCBlPXUudChudWxsLHsKY29udGV4dDoiaGVhZGVyIHRvb2xiYXIgaW50ZXJ2YWxzIG1lbnUgaXRlbSJ9LG4oNTcyMjM5KSk7aWYoImxlZ2FjeSI9PT1TKXJldHVybltpLmNyZWF0ZUVsZW1lbnQoQS5BY2Nlc3NpYmxlTWVudUl0ZW0se2tleToiYWRkLWRpYWxvZyIscm9sZToicm93IiwiYXJpYS1oYXNwb3B1cCI6ImRpYWxvZyIsImFyaWEtbGV2ZWwiOjEsImFyaWEtcG9zaW5zZXQiOjEsImFyaWEtc2V0c2l6ZSI6TSxjbGFzc05hbWU6bCgpKG50LmFkZEN1c3RvbUludGVydmFsLCF5JiZudC5hZGRDdXN0b21JbnRlcnZhbERlc2t0b3ApLG9uQ2xpY2s6bSxsYWJlbDooMCxYZS5hcHBlbmRFbGxpcHNpcykoZSksaWNvbjphdCxkb250Q2xvc2VQb3B1cDohMCxkYXRhUWFJZDoiYWRkLWN1c3RvbS1pbnRlcnZhbC1idXR0b24ifSksaygiY3VzdG9tLWludGVydmFsLXNlcGFyYXRvciIpXTtyZXR1cm5baS5jcmVhdGVFbGVtZW50KFIuTWVudUl0ZW0se2tleToiYWRkLWRpYWxvZyIscm9sZToicm93IixhcmlhSGFzcG9wdXA6ImRpYWxvZyIsYXJpYUxhYmVsOmUsYXJpYUxldmVsOjEsdGl0bGU6aS5jcmVhdGVFbGVtZW50KCJzcGFuIix7cm9sZToiZ3JpZGNlbGwiLCJhcmlhLWNvbHNwYW4iOjN9LCgwLFhlLmFwcGVuZEVsbGlwc2lzKShlKSksbGVmdFNsb3Q6aS5jcmVhdGVFbGVtZW50KFYuU3ZnSWNvbkxpc3RJdGVtUGFydCx7aWNvblN2ZzphdH0pLG9uQ2xpY2s6bSxkb250Q2xvc2VQb3B1cDohMCwiZGF0YS1yb2xlIjoibWVudWl0ZW0iLGRhdGFRYUlkOiJhZGQtY3VzdG9tLWludGVydmFsLWJ1dHRvbiJ9KSxrKCJjdXN0b20taW50ZXJ2YWwtZGl2aWRlciIpXX0oKSxmdW5jdGlvbigpe2NvbnN0IGU9MT09PXgubGVuZ3RoLHQ9eC5tYXAoKCh0LG4pPT5mdW5jdGlvbihlKXtjb25zdHtncm91cDp0LGlzU2luZ2xlOm4sYXJpYVBvc0luU2V0OmEsYXJpYVNldFNpemU6bH09ZSxkPVtdLHU9bj8xOjIsbT10Lml0ZW1zLm1hcCgoKGUsbik9PmZ1bmN0aW9uKGUpe2NvbnN0e2ludGVydmFsOnQsYXJpYUxldmVsOm4sYXJpYVBvc0luU2V0OmEsYXJpYVNldFNpemU6bH09ZSxkPXQ9PT1zO2lmKCJsZWdhY3kiPT09UylyZXR1cm4gaS5jcmVhdGVFbGVtZW50KHFlLHtrZXk6dCxyb2xlOiJyb3ciLCJhcmlhLWxldmVsIjpuLCJhcmlhLXBvc2luc2V0IjphLCJhcmlhLXNldHNpemUiOmwsImFyaWEtc2VsZWN0ZWQiOmQsaXNTbWFsbFRhYmxldDp5LGludGVydmFsOnQsaGludDooMCxWZS5nZXRUcmFuc2xhdGVkUmVzb2x1dGlvbk1vZGVsKSh0KS5oaW50LGlzU2lnbmFsaW5nOnI9PT10LGlzRmF2b3JpdGluZ0FsbG93ZWQ6byxpc0Rpc2FibGVkOiEoMCxWZS5pc0F2YWlsYWJsZSkodCksaXNGYXZvcml0ZTpDKHQpLGlzUmVtb3ZhYmxlOiFfKHQpLGlzQWN0aXZlOmQsb25DbGljazpwLG9uQ2xpY2tSZW1vdmU6ZixvbkNsaWNrRmF2b3JpdGU6ZyxzY3JvbGxDb250YWluZXJSZWY6diwiZGF0YS12YWx1ZSI6dH0pO3JldHVybiBpLmNyZWF0ZUVsZW1lbnQoUGUse2tleTp0LGludGVydmFsOnQsYXJpYUxldmVsOm4saGludDooMCxWZS5nZXRUcmFuc2xhdGVkUmVzb2x1dGlvbk1vZGVsKSh0KS5oaW50LGlzU2lnbmFsaW5nOnI9PT10LGlzRmF2b3JpdGluZ0FsbG93ZWQ6byxpc0Rpc2FibGVkOiEoMCxWZS5pc0F2YWlsYWJsZSkodCksaXNGYXZvcml0ZTpDKHQpLGlzUmVtb3ZhYmxlOiFfKHQpLGlzU2VsZWN0ZWQ6ZCxvbkNsaWNrOnAsb25DbGlja1JlbW92ZTpmLG9uQ2xpY2tGYXZvcml0ZTpnLHNjcm9sbENvbnRhaW5lclJlZjp2fSl9KHtpbnRlcnZhbDplLGFyaWFMZXZlbDp1LGFyaWFQb3NJblNldDpuKzEsYXJpYVNldFNpemU6dC5pdGVtcy5sZW5ndGh9KSkpO2lmKG4pZC5wdXNoKC4uLm0pO2Vsc2UgaWYoImxlZ2FjeSI9PT1TJiZ5KWQucHVzaChpLmNyZWF0ZUVsZW1lbnQodHQse2tleTp0LmlkLHRpdGxlOnQubmFtZX0sbSkpO2Vsc2UgaWYoImxlZ2FjeSI9PT1TKXtpZighaC5pc0FsbG93ZWQodC5pZCkpcmV0dXJuW107ZC5wdXNoKGkuY3JlYXRlRWxlbWVudChZZSx7a2V5OnQuaWQscm9sZToicm93IiwiYXJpYS1wb3NpbnNldCI6YSwiYXJpYS1zZXRzaXplIjpsLCJhcmlhLWxldmVsIjoxLGNsYXNzTmFtZTpudC5zZWN0aW9uLHN1bW1hcnk6dC5uYW1lLG9wZW46IWNbdC5pZF0sb25TdGF0ZUNoYW5nZTp3KHQuaWQpfSxtKSl9ZWxzZXtpZighaC5pc0FsbG93ZWQodC5pZCkpcmV0dXJuW107Y29uc3QgZT10LmlkLG49IXksYT1jW2VdPz8hMSxvPW4/KCk9PncoZSkoYSk6dm9pZCAwO2QucHVzaChpLmNyZWF0ZUVsZW1lbnQoYmUuU2VjdGlvbkxpc3RJdGVtLHtrZXk6ZSx0aXRsZTppLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtyb2xlOiJncmlkY2VsbCIsImFyaWEtY29sc3BhbiI6M30sdC5uYW1lKSxhcmlhTGFiZWw6dC5uYW1lLGlzV3JhcHBlZDpuP2E6dm9pZCAwLG9uQ2xpY2s6bj9vOnZvaWQgMCxpdGVtUm9sZToicm93IiwiZGF0YS1yb2xlIjoibWVudWl0ZW0iLGdyb3VwUm9sZToicm93Z3JvdXAiLGFyaWFMZXZlbDoxfSxtKSl9KCF0Lm1heU9taXRTZXBhcmF0b3J8fHQuaXRlbXMubGVuZ3RoPjEpJiYoZC51bnNoaWZ0KGsoYGJlZ2luLSR7dC5uYW1lfWApKSxkLnB1c2goayhgZW5kLSR7dC5uYW1lfWApKSk7cmV0dXJuIGR9KHtncm91cDp0LGlzU2luZ2xlOmUsYXJpYVBvc0luU2V0Om4rMStFLGFyaWFTZXRTaXplOk19KSkpLG49W10uY29uY2F0KC4uLnQpO3JldHVybigwLCRlLmNvbGxhcHNlU2VwYXJhdG9ycykobil9KCkpO2Z1bmN0aW9uIGsoZSl7cmV0dXJuImxlZ2FjeSI9PT1TP2kuY3JlYXRlRWxlbWVudChiLlBvcHVwTWVudVNlcGFyYXRvcix7a2V5OmV9KTppLmNyZWF0ZUVsZW1lbnQoZC5EaXZpZGVyTGlzdEl0ZW0se3JvbGU6InNlcGFyYXRvciIsa2V5OmV9KX19dmFyIG90PW4oNDUwMjcxKTtjb25zdCBzdD17dGltZUludGVydmFsOnUudChudWxsLHZvaWQgMCxuKDY5NDYzNykpfSxsdD0oMCxvZS5ob3RLZXlTZXJpYWxpemUpKHtrZXlzOlsiLCJdLHRleHQ6dS50KG51bGwsdm9pZCAwLG4oNTQ4NjkwKSl9KSxydD0oMCx5LnJlZ2lzdHJ5Q29udGV4dFR5cGUpKCksZHQ9bmV3IFplLkRlbGVnYXRlLHV0PWkubGF6eSgoYXN5bmMoKT0+KHsKZGVmYXVsdDooYXdhaXQgUHJvbWlzZS5hbGwoW24uZSg2NDM2MSksbi5lKDI5Mjk2KSxuLmUoNTIzOTYpLG4uZSg2MDA2Miksbi5lKDIwMzU0KSxuLmUoMTM0OTIpLG4uZSgzNzc0Niksbi5lKDE5NTk1KSxuLmUoMTk3ODcpLG4uZSg4NTc5KSxuLmUoMTAzODUpLG4uZSg1MjA2NSksbi5lKDY2MDUpLG4uZSg3NDM4MSksbi5lKDU3MzAwKSxuLmUoNDA4NjcpLG4uZSg1MDgwMCksbi5lKDI3MzM3KSxuLmUoNDkxNDkpLG4uZSgzOTYwOSksbi5lKDY4MzA0KSxuLmUoNTE2ODYpXSkudGhlbihuLmJpbmQobiwyNTAwMjUpKSkuVG9vbFdpZGdldEludGVydmFsc0FkZERpYWxvZ30pKSk7Y2xhc3MgY3QgZXh0ZW5kcyBpLlB1cmVDb21wb25lbnR7Y29uc3RydWN0b3IoZSx0KXtzdXBlcihlLHQpLHRoaXMuX2RlZmF1bHRJbnRlcnZhbHM9W10sdGhpcy5fbWVudT1pLmNyZWF0ZVJlZigpLHRoaXMuX21lbnVJdGVtc0NvbnRhaW5lclJlZj1pLmNyZWF0ZVJlZigpLHRoaXMuX2RyYXdlckNvbnRhaW5lclJlZj1pLmNyZWF0ZVJlZigpLHRoaXMuX2hhbmRsZUNoYW5nZUludGVydmFsPSgpPT57Y29uc3QgZT1jLmxpbmtpbmcuaW50ZXJ2YWwudmFsdWUoKSx7YWN0aXZlSW50ZXJ2YWw6dCxsYXN0Tm90UXVpY2tlZDpufT10aGlzLnN0YXRlLGE9dGhpcy5fZ2V0UXVpY2tzKCk7dGhpcy5zZXRTdGF0ZSh7YWN0aXZlSW50ZXJ2YWw6KDAsVmUubm9ybWFsaXplSW50ZXJ2YWxTdHJpbmcpKGUpLGxhc3ROb3RRdWlja2VkOnZvaWQgMD09PXR8fGEuaW5jbHVkZXModCk/bjp0fSl9LHRoaXMuX2hhbmRsZUNoYW5nZVN1cHBvcnRlZFJlc29sdXRpb25zPWU9Pnt0aGlzLl91cGRhdGVEZWZhdWx0SW50ZXJ2YWxzKCksdGhpcy5mb3JjZVVwZGF0ZSgpfSx0aGlzLl9iaW5kZWRGb3JjZVVwZGF0ZT0oKT0+e3RoaXMuZm9yY2VVcGRhdGUoKX0sdGhpcy5faXNJbnRlcnZhbERlZmF1bHQ9ZT0+dGhpcy5fZGVmYXVsdEludGVydmFscy5pbmNsdWRlcyhlKSx0aGlzLl9pc0ludGVydmFsRmF2b3JpdGU9ZT0+dGhpcy5zdGF0ZS5mYXZvcml0ZXMuaW5jbHVkZXMoZSksdGhpcy5faGFuZGxlU2VsZWN0SW50ZXJ2YWw9KGUsdCxuKT0+e2NvbnN0IGE9Yy5saW5raW5nLmludGVydmFsLnZhbHVlKCk7dm9pZCAwPT09ZXx8UmUuSW50ZXJ2YWwuaXNFcXVhbChlLGEpfHxjLmxpbmtpbmcuc2V0SW50ZXJ2YWxBbmRMb2dJbml0aWF0b3IoZSxuPz8iSGVhZGVyIHRvb2xiYXIiKSxlJiYoMCxYLnRyYWNrRXZlbnQpKCJHVUkiLCJUaW1lIEludGVydmFsIixlKX0sdGhpcy5faGFuZGxlQ2xpY2tGYXZvcml0ZT1lPT57ZT0oMCxuZS5lbnN1cmVEZWZpbmVkKShlKSx0aGlzLl9pc0ludGVydmFsRmF2b3JpdGUoZSk/dGhpcy5faGFuZGxlUmVtb3ZlRmF2b3JpdGUoZSk6dGhpcy5faGFuZGxlQWRkRmF2b3JpdGUoZSl9LHRoaXMuX2hhbmRsZUFkZEZhdm9yaXRlPWU9Pntjb25zdHtmYXZvcml0ZXM6dH09dGhpcy5zdGF0ZTt0aGlzLmNvbnRleHQuZmF2b3JpdGVJbnRlcnZhbHNTZXJ2aWNlLnNldChbLi4udCxlXSl9LHRoaXMuX2hhbmRsZVJlbW92ZUZhdm9yaXRlPWU9Pntjb25zdHtmYXZvcml0ZXM6dH09dGhpcy5zdGF0ZTt0aGlzLmNvbnRleHQuZmF2b3JpdGVJbnRlcnZhbHNTZXJ2aWNlLnNldCh0LmZpbHRlcigodD0+dCE9PWUpKSl9LHRoaXMuX2hhbmRsZUFkZEludGVydmFsPShlLHQpPT57Y29uc3R7aW50ZXJ2YWxTZXJ2aWNlOm4saW50ZXJ2YWxzTWVudVZpZXdTdGF0ZVNlcnZpY2U6YX09dGhpcy5jb250ZXh0LHttZW51Vmlld1N0YXRlOml9PXRoaXMuc3RhdGUsbz1uLmFkZChlLHQpO2lmKG8pe3RoaXMuc2V0U3RhdGUoe2xhc3RBZGRlZEludGVydmFsOm99KTtjb25zdCBlPVJlLkludGVydmFsLnBhcnNlRXh0KG8pO2lmKGUuaW50ZXJ2YWwuaXNNaW51dGVIb3VycygpKXJldHVybiB2b2lkIGEuc2V0KHsuLi5pLFtSZS5TcGVjaWFsUmVzb2x1dGlvbktpbmQuSG91cnNdOiExfSk7Y29uc3QgdD1lLmd1aVJlc29sdXRpb25LaW5kO2lmKHQ9PT1SZS5SZXNvbHV0aW9uS2luZC5EYXlzfHx0PT09UmUuUmVzb2x1dGlvbktpbmQuV2Vla3N8fHQ9PT1SZS5SZXNvbHV0aW9uS2luZC5Nb250aHMpcmV0dXJuIHZvaWQgYS5zZXQoey4uLmksW1JlLlJlc29sdXRpb25LaW5kLkRheXNdOiExfSk7YS5zZXQoey4uLmksW3RdOiExfSl9fSx0aGlzLl9oYW5kbGVSZW1vdmVJbnRlcnZhbD0oZSx0KT0+e2NvbnN0e2ludGVydmFsU2VydmljZTpufT10aGlzLmNvbnRleHQsYT10aGlzLl9tZW51SXRlbXNDb250YWluZXJSZWYuY3VycmVudDtpZihlKXtpZih0JiYoMCxHLmlzS2V5Ym9hcmRDbGljaykodCkmJmEpe2NvbnN0IHQ9KDAsaWUucXVlcnlNZW51RWxlbWVudHMpKGEpLG49dC5maW5kSW5kZXgoKHQ9PnQubWF0Y2hlcyhgW2RhdGEtdmFsdWU9IiR7ZX0iXWApKSk7aWYoLTEhPT1uKXtjb25zdCBlPXRbbisxXT8/dFtuLTFdO2U/ZS5mb2N1cygpOigwLGllLmZvY3VzRmlyc3RNZW51SXRlbSkoYSl9fW4ucmVtb3ZlKGUpLHRoaXMuX2hhbmRsZVJlbW92ZUZhdm9yaXRlKGUpfX0sdGhpcy5fZ2V0SGFuZGxlU2VjdGlvblN0YXRlQ2hhbmdlPWU9PnQ9Pntjb25zdHttZW51Vmlld1N0YXRlOm59PXRoaXMuc3RhdGUse2ludGVydmFsc01lbnVWaWV3U3RhdGVTZXJ2aWNlOmF9PXRoaXMuY29udGV4dDthLnNldCh7Li4ubixbZV06IXR9KX0sdGhpcy5faGFuZGxlT3BlbkFkZEludGVydmFsRGlhbG9nPSgpPT57dGhpcy5zZXRTdGF0ZSh7aXNBZGRJbnRlcnZhbERpYWxvZ09wZW5lZDohMH0pfSx0aGlzLl9oYW5kbGVDbG9zZUFkZEludGVydmFsRGlhbG9nPSgpPT57dGhpcy5zZXRTdGF0ZSh7aXNBZGRJbnRlcnZhbERpYWxvZ09wZW5lZDohMX0pfSx0aGlzLl9oYW5kbGVHbG9iYWxDbG9zZT0oKT0+e2NvbnN0e2lzRmFrZTplfT10aGlzLnByb3BzLHtpc0FkZEludGVydmFsRGlhbG9nT3BlbmVkOnR9PXRoaXMuc3RhdGU7ZXx8dHx8ZHQuZmlyZSgpfSx0aGlzLl9oYW5kZVF1aWNrQ2xpY2s9ZT0+e3RoaXMuX2hhbmRsZVNlbGVjdEludGVydmFsKGUsdm9pZCAwLCJGYXZvcml0ZXMiKSx0aGlzLl90cmFja0NsaWNrKCl9LCgwLHkudmFsaWRhdGVSZWdpc3RyeSkodCx7CmNoYXJ0QXBpSW5zdGFuY2U6by5hbnkuaXNSZXF1aXJlZCxmYXZvcml0ZUludGVydmFsc1NlcnZpY2U6by5hbnkuaXNSZXF1aXJlZCxpbnRlcnZhbFNlcnZpY2U6by5hbnkuaXNSZXF1aXJlZCxpbnRlcnZhbHNNZW51Vmlld1N0YXRlU2VydmljZTpvLmFueS5pc1JlcXVpcmVkfSk7Y29uc3R7ZmF2b3JpdGVJbnRlcnZhbHNTZXJ2aWNlOm4saW50ZXJ2YWxTZXJ2aWNlOnMsaW50ZXJ2YWxzTWVudVZpZXdTdGF0ZVNlcnZpY2U6bH09dDt0aGlzLl9jdXN0b21JbnRlcnZhbHM9KDAsYS5pc0ZlYXR1cmVzZXRFbmFibGVkKSgiY3VzdG9tX3Jlc29sdXRpb25zIik7Y29uc3Qgcj1jLmxpbmtpbmcuaW50ZXJ2YWwudmFsdWUoKSxkPXImJigwLFZlLm5vcm1hbGl6ZUludGVydmFsU3RyaW5nKShyKSx1PW4uZ2V0KCksaD1zLmdldEN1c3RvbUludGVydmFscygpLHY9bC5nZXQoKTt0aGlzLl91cGRhdGVEZWZhdWx0SW50ZXJ2YWxzKCksdGhpcy5zdGF0ZT17YWN0aXZlSW50ZXJ2YWw6ZCxmYXZvcml0ZXM6dSxjdXN0b21zOmgsbWVudVZpZXdTdGF0ZTp2LGlzQWRkSW50ZXJ2YWxEaWFsb2dPcGVuZWQ6ITF9fWNvbXBvbmVudERpZE1vdW50KCl7Y29uc3R7ZmF2b3JpdGVJbnRlcnZhbHNTZXJ2aWNlOmUsaW50ZXJ2YWxTZXJ2aWNlOnQsaW50ZXJ2YWxzTWVudVZpZXdTdGF0ZVNlcnZpY2U6bn09dGhpcy5jb250ZXh0O2UuZ2V0T25DaGFuZ2UoKS5zdWJzY3JpYmUodGhpcyx0aGlzLl9oYW5kbGVDaGFuZ2VGYXZvcml0ZXMpLG4uZ2V0T25DaGFuZ2UoKS5zdWJzY3JpYmUodGhpcyx0aGlzLl9oYW5kbGVDaGFuZ2VNZW51Vmlld1N0YXRlKSx0LmdldE9uQ2hhbmdlKCkuc3Vic2NyaWJlKHRoaXMsdGhpcy5faGFuZGxlQ2hhbmdlQ3VzdG9tcyksYy5saW5raW5nLmludGVydmFsLnN1YnNjcmliZSh0aGlzLl9oYW5kbGVDaGFuZ2VJbnRlcnZhbCksYy5saW5raW5nLmludHJhZGF5LnN1YnNjcmliZSh0aGlzLl9iaW5kZWRGb3JjZVVwZGF0ZSksYy5saW5raW5nLnNlY29uZHMuc3Vic2NyaWJlKHRoaXMuX2JpbmRlZEZvcmNlVXBkYXRlKSxjLmxpbmtpbmcudGlja3Muc3Vic2NyaWJlKHRoaXMuX2JpbmRlZEZvcmNlVXBkYXRlKSxjLmxpbmtpbmcucmFuZ2Uuc3Vic2NyaWJlKHRoaXMuX2JpbmRlZEZvcmNlVXBkYXRlKSxjLmxpbmtpbmcuc3VwcG9ydGVkUmVzb2x1dGlvbnMuc3Vic2NyaWJlKHRoaXMuX2hhbmRsZUNoYW5nZVN1cHBvcnRlZFJlc29sdXRpb25zKSxjLmxpbmtpbmcuZGF0YUZyZXF1ZW5jeVJlc29sdXRpb24uc3Vic2NyaWJlKHRoaXMuX2JpbmRlZEZvcmNlVXBkYXRlKSx6ZS5nbG9iYWxDbG9zZURlbGVnYXRlLnN1YnNjcmliZSh0aGlzLHRoaXMuX2hhbmRsZUdsb2JhbENsb3NlKX1jb21wb25lbnRXaWxsVW5tb3VudCgpe2NvbnN0e2Zhdm9yaXRlSW50ZXJ2YWxzU2VydmljZTplLGludGVydmFsU2VydmljZTp0LGludGVydmFsc01lbnVWaWV3U3RhdGVTZXJ2aWNlOm59PXRoaXMuY29udGV4dDtlLmdldE9uQ2hhbmdlKCkudW5zdWJzY3JpYmUodGhpcyx0aGlzLl9oYW5kbGVDaGFuZ2VGYXZvcml0ZXMpLG4uZ2V0T25DaGFuZ2UoKS51bnN1YnNjcmliZSh0aGlzLHRoaXMuX2hhbmRsZUNoYW5nZU1lbnVWaWV3U3RhdGUpLHQuZ2V0T25DaGFuZ2UoKS51bnN1YnNjcmliZSh0aGlzLHRoaXMuX2hhbmRsZUNoYW5nZUN1c3RvbXMpLGMubGlua2luZy5pbnRlcnZhbC51bnN1YnNjcmliZSh0aGlzLl9oYW5kbGVDaGFuZ2VJbnRlcnZhbCksYy5saW5raW5nLmludHJhZGF5LnVuc3Vic2NyaWJlKHRoaXMuX2JpbmRlZEZvcmNlVXBkYXRlKSxjLmxpbmtpbmcuc2Vjb25kcy51bnN1YnNjcmliZSh0aGlzLl9iaW5kZWRGb3JjZVVwZGF0ZSksYy5saW5raW5nLnRpY2tzLnVuc3Vic2NyaWJlKHRoaXMuX2JpbmRlZEZvcmNlVXBkYXRlKSxjLmxpbmtpbmcucmFuZ2UudW5zdWJzY3JpYmUodGhpcy5fYmluZGVkRm9yY2VVcGRhdGUpLGMubGlua2luZy5zdXBwb3J0ZWRSZXNvbHV0aW9ucy51bnN1YnNjcmliZSh0aGlzLl9oYW5kbGVDaGFuZ2VTdXBwb3J0ZWRSZXNvbHV0aW9ucyksYy5saW5raW5nLmRhdGFGcmVxdWVuY3lSZXNvbHV0aW9uLnVuc3Vic2NyaWJlKHRoaXMuX2JpbmRlZEZvcmNlVXBkYXRlKSx6ZS5nbG9iYWxDbG9zZURlbGVnYXRlLnVuc3Vic2NyaWJlKHRoaXMsdGhpcy5faGFuZGxlR2xvYmFsQ2xvc2UpfWNvbXBvbmVudERpZFVwZGF0ZShlLHQpe3RoaXMuc3RhdGUubGFzdEFkZGVkSW50ZXJ2YWwmJnNldFRpbWVvdXQoKCgpPT50aGlzLnNldFN0YXRlKHtsYXN0QWRkZWRJbnRlcnZhbDp2b2lkIDB9KSksMTYwMCl9cmVuZGVyKCl7Y29uc3R7aXNTaG93blF1aWNrczplLGlkOnR9PXRoaXMucHJvcHMse2FjdGl2ZUludGVydmFsOm4sY3VzdG9tczpvLGxhc3ROb3RRdWlja2VkOnMsaXNBZGRJbnRlcnZhbERpYWxvZ09wZW5lZDpyfT10aGlzLnN0YXRlLGQ9dGhpcy5fZ2V0UXVpY2tzKCksdT0oMCxWZS5zb3J0UmVzb2x1dGlvbnMpKFsuLi5kXSk7dm9pZCAwIT09biYmdS5pbmNsdWRlcyhuKT92b2lkIDAhPT1zJiZ1LnB1c2gocyk6dm9pZCAwIT09biYmdS5wdXNoKG4pO2NvbnN0IGM9KCEoIWV8fDA9PT1kLmxlbmd0aCl8fHZvaWQgMCkmJnUubGVuZ3RoPjEsaD17fSx2PSgwLFZlLm1lcmdlUmVzb2x1dGlvbnMpKHRoaXMuX2RlZmF1bHRJbnRlcnZhbHMsbyksZj12b2lkIDAhPT1uP3YuY29uY2F0KG4pOnY7KHZvaWQgMCE9PXM/Zi5jb25jYXQocyk6ZikuZmlsdGVyKFZlLmlzQXZhaWxhYmxlKS5mb3JFYWNoKChlPT5oW2VdPSEwKSk7Y29uc3QgYj12b2lkIDAhPT1uPygwLFZlLmdldFRyYW5zbGF0ZWRSZXNvbHV0aW9uTW9kZWwpKG4pOm51bGw7cmV0dXJuIGkuY3JlYXRlRWxlbWVudChwLlRvb2xXaWRnZXRSb3dXcmFwLHtpZDp0fSxjJiZpLmNyZWF0ZUVsZW1lbnQoVCx7Y2xhc3NOYW1lOm90Lmdyb3VwLG9yaWVudGF0aW9uOiJob3Jpem9udGFsIn0sdS5tYXAoKChlLHQpPT57Y29uc3QgYT0oMCxWZS5nZXRUcmFuc2xhdGVkUmVzb2x1dGlvbk1vZGVsKShlKTtyZXR1cm4gaS5jcmVhdGVFbGVtZW50KGcse2tleTp0LHJvbGU6InJhZGlvIixjbGFzc05hbWU6b3QuYnV0dG9uLHRleHQ6aS5jcmVhdGVFbGVtZW50KExlLHsKdmFsdWU6YS5tYXlPbWl0TXVsdGlwbGllcj92b2lkIDA6YS5tdWx0aXBsaWVyLG1ldHJpYzphLnNob3J0S2luZH0pLGhpbnQ6YS5oaW50LCJhcmlhLWNoZWNrZWQiOm49PT1lLGlzQWN0aXZlOm49PT1lLGlzRGlzYWJsZWQ6IWhbZV0sb25DbGljazp0aGlzLl9oYW5kZVF1aWNrQ2xpY2ssb25DbGlja0FyZzplLCJkYXRhLXZhbHVlIjplfSl9KSkpLGkuY3JlYXRlRWxlbWVudCh3Lk1hdGNoTWVkaWEse3J1bGU6Qy5EaWFsb2dCcmVha3BvaW50cy5UYWJsZXRTbWFsbH0sKGU9PmkuY3JlYXRlRWxlbWVudChpLkZyYWdtZW50LG51bGwsaS5jcmVhdGVFbGVtZW50KE5lLkNsb3NlRGVsZWdhdGVDb250ZXh0LlByb3ZpZGVyLHt2YWx1ZTpkdH0saS5jcmVhdGVFbGVtZW50KG0uVG9vbGJhck1lbnVCdXR0b24se2Fycm93OkJvb2xlYW4oYyksY2xvc2VPbkNsaWNrT3V0c2lkZTohcixjb250ZW50OmN8fG51bGw9PT1iP3ZvaWQgMDppLmNyZWF0ZUVsZW1lbnQocC5Ub29sV2lkZ2V0Um93V3JhcCx7Y2xhc3NOYW1lOm90Lm1lbnVDb250ZW50fSxpLmNyZWF0ZUVsZW1lbnQoTGUse3ZhbHVlOmIubWF5T21pdE11bHRpcGxpZXI/dm9pZCAwOmIubXVsdGlwbGllcixtZXRyaWM6Yi5zaG9ydEtpbmR9KSksaG90S2V5OmM/bHQ6dm9pZCAwLGNsYXNzTmFtZTpvdC5tZW51QnRuLHJlZjp0aGlzLl9tZW51LGlzRHJhd2VyOmUsb25DbGljazp0aGlzLl90cmFja0NsaWNrLHRvb2x0aXA6Y3x8bnVsbD09PWI/c3QudGltZUludGVydmFsOmIuaGludCxtZW51UmVmZXJlbmNlOnRoaXMuX21lbnVJdGVtc0NvbnRhaW5lclJlZixtZW51Um9sZToidHJlZWdyaWQiLGRyYXdlclJlZmVyZW5jZTp0aGlzLl9kcmF3ZXJDb250YWluZXJSZWYsZW5hYmxlU2Nyb2xsQ29tcGVuc2F0aW9uOigwLGEuaXNGZWF0dXJlc2V0RW5hYmxlZCkoInNob3dfbmV3X21lbnVfaXRlbXNfaW5fY2hhcnRfbWVudXMiKX0saS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6bCgpKG90LmRyb3Bkb3duLCgwLGEuaXNGZWF0dXJlc2V0RW5hYmxlZCkoInNob3dfbmV3X21lbnVfaXRlbXNfaW5fY2hhcnRfbWVudXMiKSYmb3QubmV3VmlldywhZSYmb3QuZGVza3RvcCl9LGkuY3JlYXRlRWxlbWVudChpdCx7aW50ZXJ2YWxzOnYsaXNDdXN0b21JbnRlcnZhbHNFbmFibGVkOnRoaXMuX2N1c3RvbUludGVydmFscyxpc0Zhdm9yaXRpbmdBbGxvd2VkOnRoaXMucHJvcHMuaXNGYXZvcml0aW5nQWxsb3dlZCxhY3RpdmVJbnRlcnZhbDp0aGlzLnN0YXRlLmFjdGl2ZUludGVydmFsLGxhc3RBZGRlZEludGVydmFsOnRoaXMuc3RhdGUubGFzdEFkZGVkSW50ZXJ2YWwsbWVudVZpZXdTdGF0ZTp0aGlzLnN0YXRlLm1lbnVWaWV3U3RhdGUsaW50ZXJ2YWxzTWVudVZpZXdTdGF0ZVNlcnZpY2U6dGhpcy5jb250ZXh0LmludGVydmFsc01lbnVWaWV3U3RhdGVTZXJ2aWNlLHNjcm9sbENvbnRhaW5lclJlZjplP3RoaXMuX2RyYXdlckNvbnRhaW5lclJlZjp0aGlzLl9tZW51SXRlbXNDb250YWluZXJSZWYsb25PcGVuQWRkSW50ZXJ2YWxEaWFsb2c6dGhpcy5faGFuZGxlT3BlbkFkZEludGVydmFsRGlhbG9nLG9uU2VsZWN0SW50ZXJ2YWw6dGhpcy5faGFuZGxlU2VsZWN0SW50ZXJ2YWwsb25SZW1vdmVJbnRlcnZhbDp0aGlzLl9oYW5kbGVSZW1vdmVJbnRlcnZhbCxvbkNsaWNrRmF2b3JpdGU6dGhpcy5faGFuZGxlQ2xpY2tGYXZvcml0ZSxvblNlY3Rpb25TdGF0ZUNoYW5nZTp0aGlzLl9nZXRIYW5kbGVTZWN0aW9uU3RhdGVDaGFuZ2UsaXNJbnRlcnZhbEZhdm9yaXRlOnRoaXMuX2lzSW50ZXJ2YWxGYXZvcml0ZSxpc0ludGVydmFsRGVmYXVsdDp0aGlzLl9pc0ludGVydmFsRGVmYXVsdCxpc1NtYWxsVGFibGV0OmUsdmlld01vZGU6KDAsYS5pc0ZlYXR1cmVzZXRFbmFibGVkKSgic2hvd19uZXdfbWVudV9pdGVtc19pbl9jaGFydF9tZW51cyIpPyJuZXciOiJsZWdhY3kifSkpKSksciYmaS5jcmVhdGVFbGVtZW50KGkuU3VzcGVuc2Use2ZhbGxiYWNrOm51bGx9LGkuY3JlYXRlRWxlbWVudCh1dCx7b25BZGQ6dGhpcy5faGFuZGxlQWRkSW50ZXJ2YWwsb25DbG9zZTp0aGlzLl9oYW5kbGVDbG9zZUFkZEludGVydmFsRGlhbG9nLG9uVW5tb3VudDp0aGlzLl9oYW5kbGVDbG9zZUFkZEludGVydmFsRGlhbG9nLGludGVydmFsU2VydmljZTp0aGlzLmNvbnRleHQuaW50ZXJ2YWxTZXJ2aWNlLGlzU21hbGxUYWJsZXQ6ZX0pKSkpKSl9X3VwZGF0ZURlZmF1bHRJbnRlcnZhbHMoKXt0aGlzLl9kZWZhdWx0SW50ZXJ2YWxzPXRoaXMuY29udGV4dC5jaGFydEFwaUluc3RhbmNlLmRlZmF1bHRSZXNvbHV0aW9ucygpLmZpbHRlcihWZS5pc0ludGVydmFsRW5hYmxlZCkubWFwKFZlLm5vcm1hbGl6ZUludGVydmFsU3RyaW5nKX1faGFuZGxlQ2hhbmdlRmF2b3JpdGVzKGUpe3RoaXMuc2V0U3RhdGUoe2xhc3ROb3RRdWlja2VkOnZvaWQgMCxmYXZvcml0ZXM6ZX0pfV9oYW5kbGVDaGFuZ2VDdXN0b21zKGUpe3RoaXMuc2V0U3RhdGUoe2N1c3RvbXM6ZX0pfV9oYW5kbGVDaGFuZ2VNZW51Vmlld1N0YXRlKGUpe3RoaXMuc2V0U3RhdGUoe21lbnVWaWV3U3RhdGU6ZX0sKCgpPT57dGhpcy5fbWVudS5jdXJyZW50JiZ0aGlzLl9tZW51LmN1cnJlbnQudXBkYXRlKCl9KSl9X2dldFF1aWNrcyhlKXtyZXR1cm4gdGhpcy5wcm9wcy5pc1Nob3duUXVpY2tzJiYic21hbGwiIT09dGhpcy5wcm9wcy5kaXNwbGF5TW9kZT92b2lkIDA9PT1lP3RoaXMuc3RhdGUuZmF2b3JpdGVzOmU6W119X3RyYWNrQ2xpY2soKXsoMCxELnRyYWNrQnV0dG9uQ2xpY2spKCJ0b3AgdG9vbGJhciIsImludGVydmFsIil9fWN0LmNvbnRleHRUeXBlPXJ0O3ZhciBodD1uKDk2NzA1KSx2dD1uKDg1NTEwNyksbXQ9bigzNDY1NTEpO2NvbnN0IHB0PSgwLHkucmVnaXN0cnlDb250ZXh0VHlwZSkoKTtjbGFzcyBmdCBleHRlbmRzIGkuUHVyZUNvbXBvbmVudHtjb25zdHJ1Y3RvcihlLHQpe3N1cGVyKGUsdCksdGhpcy5faGFuZGxlQ2xpY2s9KCk9Pntjb25zdHtjaGFydFdpZGdldENvbGxlY3Rpb246ZSx3aW5kb3dNZXNzYWdlU2VydmljZTp0LGlzRnVuZGFtZW50YWw6bn09dGhpcy5jb250ZXh0LGE9ZS5hY3RpdmVDaGFydFdpZGdldC52YWx1ZSgpCjtjb25zdCBpPWZ1bmN0aW9uKCl7Y29uc3QgZT1uZXcgVVJMKHdpbmRvdy5sb2NhdGlvbi5ocmVmKSx0PUpTT04ucGFyc2UoZGVjb2RlVVJJQ29tcG9uZW50KGUuaGFzaC5zbGljZSgxKSkpO3JldHVybiBkZWxldGUgdC5zaG93X3BvcHVwX2J1dHRvbixlLmhhc2g9YCMke2VuY29kZVVSSUNvbXBvbmVudChKU09OLnN0cmluZ2lmeSh0KSl9YCxlLnRvU3RyaW5nKCl9KCk7YS53aXRoTW9kZWwobnVsbCwoKCk9Pnt0LnBvc3QocGFyZW50LCJvcGVuQ2hhcnRJblBvcHVwIix7c3ltYm9sOmEubW9kZWwoKS5tYWluU2VyaWVzKCkuYWN0dWFsU3ltYm9sKCksaW50ZXJ2YWw6YS5tb2RlbCgpLm1haW5TZXJpZXMoKS5pbnRlcnZhbCgpLGZ1bmRhbWVudGFsOm4sdXJsOml9KX0pKX0sKDAseS52YWxpZGF0ZVJlZ2lzdHJ5KSh0LHtpc0Z1bmRhbWVudGFsOm8uYW55LGNoYXJ0V2lkZ2V0Q29sbGVjdGlvbjpvLmFueS5pc1JlcXVpcmVkLHdpbmRvd01lc3NhZ2VTZXJ2aWNlOm8uYW55LmlzUmVxdWlyZWR9KX1yZW5kZXIoKXtjb25zdHtjbGFzc05hbWU6ZX09dGhpcy5wcm9wcztyZXR1cm4gaS5jcmVhdGVFbGVtZW50KGh0LlRvb2xiYXJJY29uQnV0dG9uLHtjbGFzc05hbWU6bCgpKGUsdnQuYnV0dG9uKSxpY29uOm10LG9uQ2xpY2s6dGhpcy5faGFuZGxlQ2xpY2ssdG9vbHRpcDp1LnQobnVsbCx2b2lkIDAsbig3NTYwMDkpKX0pfX1mdC5jb250ZXh0VHlwZT1wdDt2YXIgZ3Q9big5NDY5NDIpO2NvbnN0IGJ0PSgwLHkucmVnaXN0cnlDb250ZXh0VHlwZSkoKTtjbGFzcyB3dCBleHRlbmRzIGkuUHVyZUNvbXBvbmVudHtjb25zdHJ1Y3RvcihlLHQpe3N1cGVyKGUsdCksdGhpcy5fdXBkYXRlU3RhdGU9ZT0+e3RoaXMuc2V0U3RhdGUoe2lzT3BlbmVkOmV9KX0sdGhpcy5faGFuZGxlQ2xpY2s9ZT0+e2NvbnN0e2NoYXJ0V2lkZ2V0Q29sbGVjdGlvbjp0fT10aGlzLmNvbnRleHQsbj10LmFjdGl2ZUNoYXJ0V2lkZ2V0LnZhbHVlKCk7KDAsWC50cmFja0V2ZW50KSgiR1VJIiwiQ2hhcnQgSGVhZGVyIFRvb2xiYXIiLCJjaGFydCBwcm9wZXJ0aWVzIiksKDAsRC50cmFja0J1dHRvbkNsaWNrKSgidG9wIHRvb2xiYXIiLCJjaGFydCBzZXR0aW5ncyIpLG4uc2hvd0dlbmVyYWxDaGFydFByb3BlcnRpZXModm9pZCAwLHtzaG91bGRSZXR1cm5Gb2N1czooMCxHLmlzS2V5Ym9hcmRDbGljaykoZSl9KX0sKDAseS52YWxpZGF0ZVJlZ2lzdHJ5KSh0LHtjaGFydFdpZGdldENvbGxlY3Rpb246by5hbnkuaXNSZXF1aXJlZH0pLHRoaXMuc3RhdGU9e2lzT3BlbmVkOiExfSx0aGlzLl9wcm9wZXJ0aWVzRGlhbG9nUmVuZGVyZXI9dGhpcy5jb250ZXh0LmNoYXJ0V2lkZ2V0Q29sbGVjdGlvbi5nZXRDaGFydFByb3BlcnRpZXNEaWFsb2dSZW5kZXJlcigpfWNvbXBvbmVudERpZE1vdW50KCl7dGhpcy5fcHJvcGVydGllc0RpYWxvZ1JlbmRlcmVyPy52aXNpYmxlKCkuc3Vic2NyaWJlKHRoaXMuX3VwZGF0ZVN0YXRlKX1jb21wb25lbnRXaWxsVW5tb3VudCgpe3RoaXMuX3Byb3BlcnRpZXNEaWFsb2dSZW5kZXJlcj8udmlzaWJsZSgpLnVuc3Vic2NyaWJlKHRoaXMuX3VwZGF0ZVN0YXRlKX1yZW5kZXIoKXtjb25zdHtpc09wZW5lZDplfT10aGlzLnN0YXRlO3JldHVybiBpLmNyZWF0ZUVsZW1lbnQoaHQuVG9vbGJhckljb25CdXR0b24sey4uLnRoaXMucHJvcHMsaWNvbjpndCxpc09wZW5lZDplLG9uQ2xpY2s6dGhpcy5faGFuZGxlQ2xpY2ssdG9vbHRpcDp1LnQobnVsbCx2b2lkIDAsbig3MzA1ODYpKX0pfX13dC5jb250ZXh0VHlwZT1idDt2YXIgQ3Q9bigzMTg5NzQpLF90PW4oNzM3MTE2KSx5dD1uKDcyNzA5KSxTdD1uKDkwNjY4MykseHQ9big2NjY0NDEpO2NvbnN0IEV0PSgwLHkucmVnaXN0cnlDb250ZXh0VHlwZSkoKTtjbGFzcyBNdCBleHRlbmRzIGkuUHVyZUNvbXBvbmVudHtjb25zdHJ1Y3RvcihlLHQpe3N1cGVyKGUsdCksdGhpcy5fZXhwb3J0RGlhbG9nUHJvbWlzZT1udWxsLHRoaXMuX3JlY2VudExheW91dHNBYm9ydENvbnRyb2xsZXI9bnVsbCx0aGlzLl9yZXF1ZXN0UmVjZW50TGF5b3V0cz0oKT0+e2lmKHRoaXMuX3JlY2VudExheW91dHNBYm9ydENvbnRyb2xsZXI/LmFib3J0KCksIXRoaXMuc3RhdGUuaXNBdXRoZW50aWNhdGVkKXJldHVybjtjb25zdHtsb2FkQ2hhcnRTZXJ2aWNlOmV9PXRoaXMuY29udGV4dDt0aGlzLl9yZWNlbnRMYXlvdXRzQWJvcnRDb250cm9sbGVyPW5ldyBBYm9ydENvbnRyb2xsZXIsZS5nZXRSZWNlbnRDaGFydHModGhpcy5fcmVjZW50TGF5b3V0c0Fib3J0Q29udHJvbGxlci5zaWduYWwpfSx0aGlzLl91cGRhdGVTdGF0ZT1lPT57dGhpcy5zZXRTdGF0ZSgodD0+KHsuLi50LC4uLmV9KSkpfSx0aGlzLl9oYW5kbGVFeHBvcnREYXRhPSgpPT57e2NvbnN0IGU9dGhpcy5fZXhwb3J0RGlhbG9nUHJvbWlzZT0oMCxfdC5sb2FkQ2hhcnRFeHBvcnREaWFsb2dNb2R1bGUpKCkudGhlbigodD0+e3RoaXMuX2V4cG9ydERpYWxvZ1Byb21pc2U9PT1lJiZ0LnNob3dDaGFydEV4cG9ydERpYWxvZ09yTm90aWZpY2F0aW9uKHRoaXMuY29udGV4dC5jaGFydFdpZGdldENvbGxlY3Rpb24sKCgpPT50aGlzLl90cmFja0V2ZW50KCJFeHBvcnQgY2hhcnQgZGF0YSIpKSl9KSl9fSx0aGlzLl9vblNhdmVEaWFsb2dWaXNpYmxlQ2hhbmdlPWU9Pnt0aGlzLnNldFN0YXRlKHtpc1NhdmVEaWFsb2dPcGVuZWQ6ZX0pfSx0aGlzLl9zeW5jU3RhdGU9ZT0+e3RoaXMuc2V0U3RhdGUoZSl9LHRoaXMuX29uQ2hhbmdlSGFzQ2hhbmdlcz1lPT57dGhpcy5zdGF0ZS53YXNDaGFuZ2VzIT09ZSYmdGhpcy5zZXRTdGF0ZSh7d2FzQ2hhbmdlczplfSl9LHRoaXMuX29uQ2hhbmdlQXV0b1NhdmVFbmFibGVkPWU9Pnt0aGlzLnNldFN0YXRlKHtpc0F1dG9TYXZlRW5hYmxlZDplfSl9LHRoaXMuX29uQ2hhbmdlU2hhcmluZ0VuYWJsZWQ9ZT0+e3RoaXMuc2V0U3RhdGUoe2lzU2hhcmluZ0VuYWJsZWQ6ZX0pfSx0aGlzLl9vbkNoYW5nZVRpdGxlPWU9Pnt0aGlzLnNldFN0YXRlKHt0aXRsZTplfSl9LHRoaXMuX29uQ2hhbmdlSWQ9ZT0+e3RoaXMuc2V0U3RhdGUoe2lkOmV9KX0sdGhpcy5fb25DaGFydEFib3V0VG9CZVNhdmVkPSgpPT57dGhpcy5zZXRTdGF0ZSh7CmlzUHJvY2Vzc2luZzohMH0pfSx0aGlzLl9vbkNoYXJ0U2F2ZWQ9KCk9Pnt0aGlzLnNldFN0YXRlKHtpc1Byb2Nlc3Npbmc6ITF9KX0sdGhpcy5faGFuZGxlQXV0b1NhdmVFbmFibGVkPWU9PnsoMCxYLnRyYWNrRXZlbnQpKCJBdXRvc2F2ZSIsZT8iT24iOiJPZmYiKSx0aGlzLmNvbnRleHQuc2F2ZUNoYXJ0U2VydmljZS5zZXRBdXRvU2F2ZUVuYWJsZWQoZSl9LHRoaXMuX2hhbmRsZVNoYXJpbmdFbmFibGVkPWU9PntpZih0aGlzLmNvbnRleHQuc2hhcmluZ0NoYXJ0U2VydmljZSl7Y29uc3QgdD1lPyJvbiI6Im9mZiI7KDAsWC50cmFja0V2ZW50KSgiR1VJIixgVHVybiBzaGFyaW5nIGNoYXJ0ICR7dH1gKSx0aGlzLmNvbnRleHQuc2hhcmluZ0NoYXJ0U2VydmljZS5zZXRTaGFyaW5nRW5hYmxlZChlKX19LHRoaXMuX2hhbmRsZUNsaWNrU2F2ZT0oKT0+e3RoaXMuY29udGV4dC5zYXZlQ2hhcnRTZXJ2aWNlLnNhdmVDaGFydE9yU2hvd1RpdGxlRGlhbG9nKCksdGhpcy5fdHJhY2tFdmVudCgiU2F2ZSBjbGljayIpfSx0aGlzLl9oYW5kbGVPcGVuTWVudT0oKT0+e3RoaXMuX3JlcXVlc3RSZWNlbnRMYXlvdXRzKCl9LHRoaXMuX2hhbmRsZUNsaWNrU2F2ZUZyb21NZW51PSgpPT57dGhpcy5jb250ZXh0LnNhdmVDaGFydFNlcnZpY2Uuc2F2ZUNoYXJ0T3JTaG93VGl0bGVEaWFsb2coKSx0aGlzLl90cmFja0V2ZW50KCJTYXZlIEZyb20gTWVudSIpfSx0aGlzLl9oYW5kbGVDbGlja0Nsb25lPSgpPT57dGhpcy5jb250ZXh0LnNhdmVDaGFydFNlcnZpY2UuY2xvbmVDaGFydCgpfSx0aGlzLl9oYW5kbGVDbGlja1NhdmVBcz0oKT0+e3RoaXMuY29udGV4dC5zYXZlQ2hhcnRTZXJ2aWNlLnNhdmVDaGFydEFzKCksdGhpcy5fdHJhY2tFdmVudCgiTWFrZSBhIGNvcHkiKX0sdGhpcy5faGFuZGxlQ2xpY2tOZXc9KCk9Pnt3aW5kb3cucnVuT3JTaWduSW4oKCgpPT57dGhpcy5jb250ZXh0LnNhdmVDaGFydFNlcnZpY2UuY3JlYXRlRW1wdHlDaGFydCgpfSkse3NvdXJjZToiY3JlYXRlX2VtcHR5X2NoYXJ0In0pLHRoaXMuX3RyYWNrRXZlbnQoIk5ldyBjaGFydCBsYXlvdXQiKX0sdGhpcy5faGFuZGxlQ2xpY2tMb2FkPSgpPT57dGhpcy5jb250ZXh0LmxvYWRDaGFydFNlcnZpY2Uuc2hvd0xvYWREaWFsb2coKSx0aGlzLl90cmFja0V2ZW50KCJMb2FkIGNoYXJ0IGxheW91dCIpfSx0aGlzLl9oYW5kbGVIb3RrZXk9KCk9Pnt0aGlzLmNvbnRleHQubG9hZENoYXJ0U2VydmljZS5zaG93TG9hZERpYWxvZygpfSx0aGlzLl9oYW5kbGVDbGlja1JlbmFtZT0oKT0+e3RoaXMuY29udGV4dC5zYXZlQ2hhcnRTZXJ2aWNlLnJlbmFtZUNoYXJ0KCksdGhpcy5fdHJhY2tFdmVudCgiUmVuYW1lIil9LCgwLHkudmFsaWRhdGVSZWdpc3RyeSkodCx7Y2hhcnRXaWRnZXRDb2xsZWN0aW9uOm8uYW55LmlzUmVxdWlyZWQsY2hhcnRDaGFuZ2VzV2F0Y2hlcjpvLmFueS5pc1JlcXVpcmVkLHNhdmVDaGFydFNlcnZpY2U6by5hbnkuaXNSZXF1aXJlZCxzaGFyaW5nQ2hhcnRTZXJ2aWNlOigwLEN0LmlzU3ltcGhvbnlFbWJlZCkoKT9vLmFueTpvLmFueS5pc1JlcXVpcmVkLGxvYWRDaGFydFNlcnZpY2U6by5hbnkuaXNSZXF1aXJlZH0pO2NvbnN0e2NoYXJ0V2lkZ2V0Q29sbGVjdGlvbjpuLGNoYXJ0Q2hhbmdlc1dhdGNoZXI6YSxzYXZlQ2hhcnRTZXJ2aWNlOmksc2hhcmluZ0NoYXJ0U2VydmljZTpzLGxvYWRDaGFydFNlcnZpY2U6bH09dDt0aGlzLl9sb2FkQ2hhcnRTZXJ2aWNlU3RhdGU9bC5zdGF0ZSgpLHRoaXMuc3RhdGU9e2lzQXV0aGVudGljYXRlZDp3aW5kb3cuaXNfYXV0aGVudGljYXRlZCxpc1Byb2Nlc3Npbmc6ITEsaWQ6bi5tZXRhSW5mby5pZC52YWx1ZSgpLHRpdGxlOm4ubWV0YUluZm8ubmFtZS52YWx1ZSgpLHdhc0NoYW5nZXM6YS5oYXNDaGFuZ2VzKCksaXNBdXRvU2F2ZUVuYWJsZWQ6aS5hdXRvU2F2ZUVuYWJsZWQoKS52YWx1ZSgpLGlzU2hhcmluZ0VuYWJsZWQ6ISFzJiZzLnNoYXJpbmdFbmFibGVkKCkudmFsdWUoKSxyZWNlbnRMYXlvdXRzOltdLGljb25Ib3ZlcmVkOiExLGlzU2F2ZURpYWxvZ09wZW5lZDohMSwuLi50aGlzLl9sb2FkQ2hhcnRTZXJ2aWNlU3RhdGUudmFsdWUoKX19Y29tcG9uZW50RGlkTW91bnQoKXtjb25zdHtjaGFydFNhdmVyOmUsaXNGYWtlOnQsc3RhdGVTeW5jRW1pdHRlcjphfT10aGlzLnByb3BzLHtjaGFydFdpZGdldENvbGxlY3Rpb246aSxjaGFydENoYW5nZXNXYXRjaGVyOm8sc2F2ZUNoYXJ0U2VydmljZTpzLHNoYXJpbmdDaGFydFNlcnZpY2U6bCxsb2FkQ2hhcnRTZXJ2aWNlOnJ9PXRoaXMuY29udGV4dDt0P2Eub24oImNoYW5nZSIsdGhpcy5fc3luY1N0YXRlKTooby5nZXRPbkNoYW5nZSgpLnN1YnNjcmliZSh0aGlzLHRoaXMuX29uQ2hhbmdlSGFzQ2hhbmdlcykscy5hdXRvU2F2ZUVuYWJsZWQoKS5zdWJzY3JpYmUodGhpcy5fb25DaGFuZ2VBdXRvU2F2ZUVuYWJsZWQpLGw/LnNoYXJpbmdFbmFibGVkKCkuc3Vic2NyaWJlKHRoaXMuX29uQ2hhbmdlU2hhcmluZ0VuYWJsZWQpLGkubWV0YUluZm8ubmFtZS5zdWJzY3JpYmUodGhpcy5fb25DaGFuZ2VUaXRsZSksaS5tZXRhSW5mby5pZC5zdWJzY3JpYmUodGhpcy5fb25DaGFuZ2VJZCksdGhpcy5faG90a2V5cz0oMCx5dC5jcmVhdGVHcm91cCkoe2Rlc2M6IlNhdmUvTG9hZCJ9KSx0aGlzLl9ob3RrZXlzLmFkZCh7ZGVzYzp1LnQobnVsbCx2b2lkIDAsbigyNDI5MTMpKSxoYW5kbGVyOnRoaXMuX2hhbmRsZUhvdGtleSxob3RrZXk6MTkwfSksZS5jaGFydFNhdmVkKCkuc3Vic2NyaWJlKHRoaXMsdGhpcy5fb25DaGFydFNhdmVkKSxlLmNoYXJ0QWJvdXRUb0JlU2F2ZWQoKS5zdWJzY3JpYmUodGhpcyx0aGlzLl9vbkNoYXJ0QWJvdXRUb0JlU2F2ZWQpLHdpbmRvdy5sb2dpblN0YXRlQ2hhbmdlLnN1YnNjcmliZSh0aGlzLHRoaXMuX29uTG9naW5TdGF0ZUNoYW5nZSksdGhpcy5jb250ZXh0LnNhdmVDaGFydFNlcnZpY2UuZ2V0Q3JlYXRlQ29udHJvbGxlcigpLnZpc2libGUoKS5zdWJzY3JpYmUodGhpcy5fb25TYXZlRGlhbG9nVmlzaWJsZUNoYW5nZSksdGhpcy5fbG9hZENoYXJ0U2VydmljZVN0YXRlLnN1YnNjcmliZSh0aGlzLl91cGRhdGVTdGF0ZSksCnh0LnNob3dGYXZvcml0ZUxheW91dHMmJnIucmVmcmVzaENoYXJ0TGlzdCgpKX1jb21wb25lbnREaWRVcGRhdGUoZSx0KXt0aGlzLnByb3BzLmlzRmFrZXx8dCE9PXRoaXMuc3RhdGUmJnRoaXMucHJvcHMuc3RhdGVTeW5jRW1pdHRlci5lbWl0KCJjaGFuZ2UiLHRoaXMuc3RhdGUpfWNvbXBvbmVudFdpbGxVbm1vdW50KCl7Y29uc3R7Y2hhcnRTYXZlcjplLGlzRmFrZTp0LHN0YXRlU3luY0VtaXR0ZXI6bn09dGhpcy5wcm9wcyx7Y2hhcnRXaWRnZXRDb2xsZWN0aW9uOmEsY2hhcnRDaGFuZ2VzV2F0Y2hlcjppLHNhdmVDaGFydFNlcnZpY2U6byxzaGFyaW5nQ2hhcnRTZXJ2aWNlOnN9PXRoaXMuY29udGV4dDt0P24ub2ZmKCJjaGFuZ2UiLHRoaXMuX3N5bmNTdGF0ZSk6KGkuZ2V0T25DaGFuZ2UoKS51bnN1YnNjcmliZSh0aGlzLHRoaXMuX29uQ2hhbmdlSGFzQ2hhbmdlcyksby5hdXRvU2F2ZUVuYWJsZWQoKS51bnN1YnNjcmliZSh0aGlzLl9vbkNoYW5nZUF1dG9TYXZlRW5hYmxlZCkscz8uc2hhcmluZ0VuYWJsZWQoKS51bnN1YnNjcmliZSh0aGlzLl9vbkNoYW5nZVNoYXJpbmdFbmFibGVkKSxhLm1ldGFJbmZvLm5hbWUudW5zdWJzY3JpYmUodGhpcy5fb25DaGFuZ2VUaXRsZSksYS5tZXRhSW5mby5pZC51bnN1YnNjcmliZSh0aGlzLl9vbkNoYW5nZUlkKSwoMCxuZS5lbnN1cmVEZWZpbmVkKSh0aGlzLl9ob3RrZXlzKS5kZXN0cm95KCksZS5jaGFydFNhdmVkKCkudW5zdWJzY3JpYmUodGhpcyx0aGlzLl9vbkNoYXJ0U2F2ZWQpLGUuY2hhcnRBYm91dFRvQmVTYXZlZCgpLnVuc3Vic2NyaWJlKHRoaXMsdGhpcy5fb25DaGFydEFib3V0VG9CZVNhdmVkKSx3aW5kb3cubG9naW5TdGF0ZUNoYW5nZS51bnN1YnNjcmliZSh0aGlzLHRoaXMuX29uTG9naW5TdGF0ZUNoYW5nZSksdGhpcy5fcmVjZW50TGF5b3V0c0Fib3J0Q29udHJvbGxlcj8uYWJvcnQoKSx0aGlzLmNvbnRleHQuc2F2ZUNoYXJ0U2VydmljZS5nZXRDcmVhdGVDb250cm9sbGVyKCkudmlzaWJsZSgpLnVuc3Vic2NyaWJlKHRoaXMuX29uU2F2ZURpYWxvZ1Zpc2libGVDaGFuZ2UpLHRoaXMuX2xvYWRDaGFydFNlcnZpY2VTdGF0ZS51bnN1YnNjcmliZSh0aGlzLl91cGRhdGVTdGF0ZSkpfXJlbmRlcigpe2NvbnN0e2lzUmVhZE9ubHk6ZSxkaXNwbGF5TW9kZTp0LGlkOm4saXNGYWtlOm99PXRoaXMucHJvcHMse2lzUHJvY2Vzc2luZzpzLGlzQXV0aGVudGljYXRlZDpsLHRpdGxlOnIsaWQ6ZCx3YXNDaGFuZ2VzOnUsaXNBdXRvU2F2ZUVuYWJsZWQ6Yyxpc1NoYXJpbmdFbmFibGVkOmgsaXNTYXZlRGlhbG9nT3BlbmVkOnYsZmF2b3JpdGVzOm0sY2hhcnRMaXN0OnAscmVjZW50czpmfT10aGlzLnN0YXRlLGc9e2Rpc3BsYXlNb2RlOnQsaXNSZWFkT25seTplLGlzQXV0aGVudGljYXRlZDpsLGlzUHJvY2Vzc2luZzpzLHdhc0NoYW5nZXM6dSx0aXRsZTpyLGlkOm4saXNTYXZlRGlhbG9nT3BlbmVkOnYsZmF2b3JpdGVzOm0sY2hhcnRMaXN0OnAsY2hhcnRJZDpudWxsIT09ZD9kOnZvaWQgMCxkYXRhTmFtZVNhdmVNZW51Om8/dm9pZCAwOiJzYXZlLWxvYWQtbWVudSIsb25DbG9uZUNoYXJ0OnRoaXMuX2hhbmRsZUNsaWNrQ2xvbmUsb25TYXZlQ2hhcnQ6dGhpcy5faGFuZGxlQ2xpY2tTYXZlLG9uU2F2ZUNoYXJ0RnJvbU1lbnU6dGhpcy5faGFuZGxlQ2xpY2tTYXZlRnJvbU1lbnUsb25SZW5hbWVDaGFydDp0aGlzLl9oYW5kbGVDbGlja1JlbmFtZSxvblNhdmVBc0NoYXJ0OnRoaXMuX2hhbmRsZUNsaWNrU2F2ZUFzLG9uTG9hZENoYXJ0OnRoaXMuX2hhbmRsZUNsaWNrTG9hZCxpc05ld1ZpZXc6KDAsYS5pc0ZlYXR1cmVzZXRFbmFibGVkKSgic2hvd19uZXdfbWVudV9pdGVtc19pbl9jaGFydF9tZW51cyIpfTtyZXR1cm4gZy5vbk5ld0NoYXJ0PXRoaXMuX2hhbmRsZUNsaWNrTmV3LGcub25FeHBvcnREYXRhPXRoaXMuX2hhbmRsZUV4cG9ydERhdGEsZy5vbkF1dG9TYXZlQ2hhbmdlZD10aGlzLl9oYW5kbGVBdXRvU2F2ZUVuYWJsZWQsZy5vblNoYXJpbmdDaGFuZ2VkPXRoaXMuX2hhbmRsZVNoYXJpbmdFbmFibGVkLGcuaXNBdXRvU2F2ZUVuYWJsZWQ9YyxnLmlzU2hhcmluZ0VuYWJsZWQ9aCxnLnJlY2VudEl0ZW1zPWYsZy5vbk9wZW5NZW51PXRoaXMuX2hhbmRsZU9wZW5NZW51LGcuYXV0b1NhdmVJZD1vP3ZvaWQgMDoiY2hhcnQtYXV0by1zYXZlIixpLmNyZWF0ZUVsZW1lbnQody5NYXRjaE1lZGlhLHtydWxlOkMuRGlhbG9nQnJlYWtwb2ludHMuVGFibGV0U21hbGx9LChlPT5pLmNyZWF0ZUVsZW1lbnQoU3QuVG9vbFdpZGdldFNhdmVMb2FkVmlldyx7Li4uZyxpc1RhYmxldFNtYWxsOmV9KSkpfV9vbkxvZ2luU3RhdGVDaGFuZ2UoKXtjb25zdCBlPXdpbmRvdy5pc19hdXRoZW50aWNhdGVkO3RoaXMuc2V0U3RhdGUoe2lzQXV0aGVudGljYXRlZDplfSkseHQuc2hvd0Zhdm9yaXRlTGF5b3V0cyYmdGhpcy5jb250ZXh0LmxvYWRDaGFydFNlcnZpY2UucmVmcmVzaENoYXJ0TGlzdCgpfV90cmFja0V2ZW50KGUpeygwLFgudHJhY2tFdmVudCkoIkdVSSIsIk1hbmFnZSBjaGFydCBsYXlvdXQiLGUpfX1NdC5jb250ZXh0VHlwZT1FdDt2YXIga3Q9big2NTkzNjUpLEl0PW4oMzMyMzcxKSxUdD1uKDk5NTcxOSksQXQ9bigxMTczMTMpLEh0PW4oOTcxNjU5KTtmdW5jdGlvbiBWdChlKXtjb25zdFt0LG5dPSgwLGkudXNlU3RhdGUpKCExKSxhPSgwLEh0LnVzZUlzTW91bnRlZCkoKSxvPSgwLGkudXNlQ2FsbGJhY2spKChhc3luYygpPT57bighMCksYXdhaXQgZS5zZXJ2ZXJTbmFwc2hvdCgpLGEuY3VycmVudCYmbighMSl9KSxbZS5zZXJ2ZXJTbmFwc2hvdF0pO3JldHVybiBpLmNyZWF0ZUVsZW1lbnQoVHQuVG9vbFdpZGdldEJ1dHRvbix7aWQ6ZS5pZCxjbGFzc05hbWU6ZS5jbGFzc05hbWUsaXNEaXNhYmxlZDp0LG9uQ2xpY2s6byx0aXRsZTplLnRvb2x0aXAsaWNvbjplLmljb259KX12YXIgUnQ9big3OTU5ODYpLEZ0PW4oMTE3NzI5KSxMdD1uLm4oRnQpO2NvbnN0IFp0PSgwLGt0LmJpbmRTY3JlZW5zaG90KSgoZnVuY3Rpb24oZSl7cmV0dXJuKDAsQXQuaXNPbk1vYmlsZUFwcFBhZ2UpKCJhbnkiKT9pLmNyZWF0ZUVsZW1lbnQoVnQsey4uLmUsaWNvbjpSdAp9KTppLmNyZWF0ZUVsZW1lbnQobS5Ub29sYmFyTWVudUJ1dHRvbix7Y29udGVudDppLmNyZWF0ZUVsZW1lbnQoVHQuVG9vbFdpZGdldEJ1dHRvbix7dGFnOiJkaXYiLGlkOmUuaWQsY2xhc3NOYW1lOmUuY2xhc3NOYW1lLGljb246UnR9KSxkcmF3ZXJCcmVha3BvaW50OkMuRGlhbG9nQnJlYWtwb2ludHMuVGFibGV0U21hbGwsYXJyb3c6ITEsb25DbGljazpmdW5jdGlvbigpeygwLEQudHJhY2tCdXR0b25DbGljaykoInRvcCB0b29sYmFyIiwic25hcHNob3QiKX0sdG9vbHRpcDplLnRvb2x0aXAsZW5hYmxlU2Nyb2xsQ29tcGVuc2F0aW9uOigwLGEuaXNGZWF0dXJlc2V0RW5hYmxlZCkoInNob3dfbmV3X21lbnVfaXRlbXNfaW5fY2hhcnRfbWVudXMiKSxtZW51Um9sZToidHJlZWdyaWQifSwoKHtpc0RyYXdlcjp0fSk9PmkuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOmwoKSgoMCxhLmlzRmVhdHVyZXNldEVuYWJsZWQpKCJzaG93X25ld19tZW51X2l0ZW1zX2luX2NoYXJ0X21lbnVzIikmJkx0KCkubmV3VmlldywhdCYmTHQoKS5kZXNrdG9wKX0saS5jcmVhdGVFbGVtZW50KEl0LlRvb2xXaWRnZXRTY3JlZW5zaG90Q29udGVudCx7Li4uZX0pKSkpfSkpO3ZhciBOdD1uKDU1NzA2NSksenQ9bigzODcyMzEpLEJ0PW4oMjQzOTM4KSxPdD1uKDg0MTY1NSksRHQ9big2MTQzODApLFd0PW4oODUxNDU4KSxQdD1uKDQ0NDU1MCk7ZnVuY3Rpb24gVXQoZSl7Y29uc3R7aWQ6dCxjbGFzc05hbWU6bix0b29sdGlwOmEsdmFsdWU6byxvbkNsaWNrOnMsYWN0aW9uOmR9PWUsW3UsY109KDAsT2UudXNlUm92aW5nVGFiaW5kZXhFbGVtZW50KShudWxsKSxbaCx2XT0oMCxPZS51c2VSb3ZpbmdUYWJpbmRleEVsZW1lbnQpKGQucmVmZXJlbmNlPz9udWxsKTtyZXR1cm4gaS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6bCgpKFB0LmNvbnRhaW5lcixuKX0saS5jcmVhdGVFbGVtZW50KCJidXR0b24iLHtpZDp0LHJlZjp1LHRhYkluZGV4OmMsY2xhc3NOYW1lOmwoKShQdC5idXR0b24sImFwcGx5LWNvbW1vbi10b29sdGlwIiksdGl0bGU6YSxvbkNsaWNrOmZ1bmN0aW9uKGUpe2lmKGUuZGVmYXVsdFByZXZlbnRlZClyZXR1cm47ZS5wcmV2ZW50RGVmYXVsdCgpLHMoZSl9fSxpLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6UHQudmFsdWV9LG8pKSxpLmNyZWF0ZUVsZW1lbnQoImJ1dHRvbiIse2lkOmQuaWQscmVmOmgsdGFiSW5kZXg6dixjbGFzc05hbWU6bCgpKFB0LmFjdGlvbiwiYXBwbHktY29tbW9uLXRvb2x0aXAiKSx0aXRsZTpkLnRvb2x0aXAsb25DbGljazpmdW5jdGlvbihlKXtpZihlLmRlZmF1bHRQcmV2ZW50ZWQpcmV0dXJuO2UucHJldmVudERlZmF1bHQoKSxkLm9uQ2xpY2soZSl9fSxpLmNyZWF0ZUVsZW1lbnQoci5JY29uLHtjbGFzc05hbWU6UHQuaWNvbixpY29uOmQuaWNvbn0pKSl9dmFyIGp0PW4oMzIwNTUpLEt0PW4oNjQzOTAzKSxRdD1uKDQ5MDIwNCkscXQ9big3ODQ1MTMpLCR0PW4oMjE0MzIpLFh0PW4oOTcxMTgzKSxHdD1uKDI3MzUwOSksSnQ9big2MTU1NDcpLFl0PW4oNDExOTkyKSxlbj1uKDE1OTUxMyksdG49bigyNTg0OSksbm49bigxNTY4MjkpO2NvbnN0IGFuPSgwLGkuZm9yd2FyZFJlZikoKGZ1bmN0aW9uKGUsdCl7Y29uc3Qgbj1mdW5jdGlvbihlKXtjb25zdHtzeW1ib2w6dCxwcm92aWRlckxhYmVsOm59PWUsW2Esb109KDAsaS51c2VTdGF0ZSkoe30pLHM9KDAsdG4udXNlRGlhbG9nQWN0aW9ucykoKTtyZXR1cm4oMCxpLnVzZUVmZmVjdCkoKCgpPT57Y29uc3QgZT1uZXcgSnQuRGV0YWlsc0RhdGFQcm92aWRlcih7c3ltYm9sOnQscXVvdGVTZXNzaW9uTXVsdGlwbGV4ZXJJbnN0YW5jZTooMCxlbi5nZXRRdW90ZVNlc3Npb25JbnN0YW5jZSkoKSxsYWJlbDpufSk7cmV0dXJuIGUuc2V0SGFuZGxlcigoZnVuY3Rpb24odCl7aWYodCl7aWYoImVycm9yIj09PXQuc3RhdHVzKXJldHVybiBvKHt9KSx2b2lkIGUuZGVzdHJveSgpO2lmKHQuYm9uZHNDb21wbGV0ZSYmdC5jb21wbGV0ZSl7Y29uc3QgZT1Cb29sZWFuKHQudmFsdWVzLmFnZ3JlZ2F0ZWQuYm9uZHMmJnQudmFsdWVzLmFnZ3JlZ2F0ZWQuYm9uZHMubGVuZ3RoPjAmJigwLG5uLmlzWWllbGQpKHt0eXBlc3BlY3M6dC52YWx1ZXMucXVvdGVzLnR5cGVzcGVjc30pKTtvKCh0PT4oey4uLnQsaGFzWWllbGRDdXJ2ZTplfSkpKX1pZih0LmZ1dHVyZXNDb21wbGV0ZSl7Y29uc3QgZT1Cb29sZWFuKHQudmFsdWVzLmFnZ3JlZ2F0ZWQuZnV0dXJlcyYmdC52YWx1ZXMuYWdncmVnYXRlZC5mdXR1cmVzLmxlbmd0aD4wKTtvKCh0PT4oey4uLnQsaGFzQ29udHJhY3RzOmUsaGFzRm9yd2FyZEN1cnZlOmV9KSkpfWlmKHQuY3J5cHRvRGVyaXZhdGl2ZUNvbXBsZXRlKXtjb25zdCBlPUJvb2xlYW4odC52YWx1ZXMuYWdncmVnYXRlZC5jcnlwdG9fZGVyaXZhdGl2ZV9kYXRhJiYhMCk7bygodD0+KHsuLi50LGhhc0Rlcml2YXRpdmVzOmV9KSkpfWlmKHQuY29tcGxldGUpe2NvbnN0IGU9dC52YWx1ZXMucXVvdGVzO28oKHQ9Pih7Li4udCxsaXN0ZWRFeGNoYW5nZTplLmxpc3RlZF9leGNoYW5nZSx0eXBlOmUudHlwZSxwcmljZXNjYWxlOmUucHJpY2VzY2FsZSx0eXBlc3BlY3M6ZS50eXBlc3BlY3MsaGFzRmluYW5jaWFsczooMCxZdC5oYXNGaW5hbmNpYWxzQnlBdmFpbGFiaWxpdHlGbGFncykoe2ZpbmFuY2lhbHNfYXZhaWxhYmlsaXR5OmUuZmluYW5jaWFsc19hdmFpbGFiaWxpdHksZGl2aWRlbmRzX2F2YWlsYWJpbGl0eTplLmRpdmlkZW5kc19hdmFpbGFiaWxpdHksZWFybmluZ3NfYXZhaWxhYmlsaXR5OmUuZWFybmluZ3NfYXZhaWxhYmlsaXR5fSxlLnR5cGUsZS50eXBlc3BlY3MpfSkpKX1pZih0LmNvbXBsZXRlJiZ0LmNvbXBsZXRlU2NyZWVuZXIpe2NvbnN0IGU9dC52YWx1ZXMuc2NyZWVuZXI/LlsiUmVjb21tZW5kLkFsbCJdLG49dC52YWx1ZXMucXVvdGVzO28oKHQ9Pih7Li4udCxoYXNUZWNobmljYWxzOkJvb2xlYW4obnVsbCE9ZSYmbi5kZXNjcmlwdGlvbiYmbi5saXN0ZWRfZXhjaGFuZ2UmJm4udHlwZSl9KSkpfQp0LmZ1dHVyZXNDb21wbGV0ZSYmdC5ib25kc0NvbXBsZXRlJiZ0LmNyeXB0b0Rlcml2YXRpdmVDb21wbGV0ZSYmdC5jb21wbGV0ZSYmdC5jb21wbGV0ZVNjcmVlbmVyJiZlLmRlc3Ryb3koKX19KSksKCk9PntlLmRlc3Ryb3koKX19KSxbdF0pLHsuLi5hLC4uLnN9fSh7c3ltYm9sOmUuc3ltYm9sLHByb3ZpZGVyTGFiZWw6ZS5wcm92aWRlckxhYmVsfSk7cmV0dXJuIGkuY3JlYXRlRWxlbWVudChHdC5Db250ZW50TWVudSx7Li4uZSxyZWY6dCxkYXRhOm59KX0pKTt2YXIgb249bigxMzk2NDIpLHNuPW4oNjA0OTEyKSxsbj1uKDk4ODQxNik7Y29uc3Qgcm49KDAsenQubWVyZ2VUaGVtZXMpKGYuREVGQVVMVF9UT09MQkFSX0JVVFRPTl9USEVNRSxsbiksZG49KDAseS5yZWdpc3RyeUNvbnRleHRUeXBlKSgpLHVuPSEoMCxhLmlzRmVhdHVyZXNldEVuYWJsZWQpKCJ3aWRnZXQiKTtjbGFzcyBjbiBleHRlbmRzIGkuUHVyZUNvbXBvbmVudHtjb25zdHJ1Y3RvcihlLHQpe3N1cGVyKGUsdCksdGhpcy5fY29udGVudE1lbnVCdXR0b25SZWY9aS5jcmVhdGVSZWYoKSx0aGlzLl9tZW51UmVmPWkuY3JlYXRlUmVmKCksdGhpcy5faXNDb250ZW50TWVudU9wZW5lZEJ5S2V5Ym9hcmQ9ITEsdGhpcy5fb25Db250ZW50TWVudUNsb3NlPSgpPT57dGhpcy5faXNDb250ZW50TWVudU9wZW5lZEJ5S2V5Ym9hcmQmJm51bGwhPT10aGlzLl9tZW51UmVmLmN1cnJlbnQmJnRoaXMuX21lbnVSZWYuY3VycmVudC5jb250YWlucyhkb2N1bWVudC5hY3RpdmVFbGVtZW50KSYmdGhpcy5fY29udGVudE1lbnVCdXR0b25SZWYuY3VycmVudD8uZm9jdXMoKSx0aGlzLnNldFN0YXRlKHtpc0NvbnRlbnRNZW51T3BlbmVkOiExfSl9LHRoaXMuX3RvZ2dsZUNvbnRlbnRNZW51PWU9Pntjb25zdCB0PSF0aGlzLnN0YXRlLmlzQ29udGVudE1lbnVPcGVuZWQ7dCYmKHRoaXMuX2lzQ29udGVudE1lbnVPcGVuZWRCeUtleWJvYXJkPSgwLEcuaXNLZXlib2FyZENsaWNrKShlKSksdGhpcy5zZXRTdGF0ZSh7aXNDb250ZW50TWVudU9wZW5lZDp0fSl9LHRoaXMuX29wZW5TeW1ib2xTZWFyY2hEaWFsb2c9YXN5bmMgZT0+e2lmKCgwLE0ubW9kaWZpZXJzRnJvbUV2ZW50KShlKT09PU0uTW9kaWZpZXJzLkFsdClyZXR1cm4gdm9pZCgwLE50LmdldENsaXBib2FyZCkoKS53cml0ZVRleHQodGhpcy5zdGF0ZS5zeW1ib2wpO2lmKHRoaXMuc3RhdGUuaXNTU09wZW5lZClyZXR1cm47Y29uc3R7Y2hhcnRXaWRnZXRDb2xsZWN0aW9uOnR9PXRoaXMuY29udGV4dCxvPXQ/LmFjdGl2ZUNoYXJ0V2lkZ2V0LnZhbHVlKCkubW9kZWwoKS5tb2RlbCgpLHM9bz8ubWFpblNlcmllcygpLnN5bWJvbEluZm8oKSxsPSJvcHRpb24iPT09cz8udHlwZTt0cnl7KDAsWC50cmFja0V2ZW50KSgiR1VJIiwiU1MiLCJtYWluIHNlYXJjaCIpLCgwLEQudHJhY2tCdXR0b25DbGljaykoInRvcCB0b29sYmFyIiwic3ltYm9sIHNlYXJjaCIpO2xldCB0PXRoaXMuX2lzU3ByZWFkKHRoaXMuc3RhdGUuc3ltYm9sKT90aGlzLnN0YXRlLnN5bWJvbDp0aGlzLnN0YXRlLnNob3J0TmFtZTtpZigoMCxhLmlzRmVhdHVyZXNldEVuYWJsZWQpKCJzeW1ib2xfc2VhcmNoX29wdGlvbl9jaGFpbl9zZWxlY3RvciIpJiZsKXtjb25zdCBlPWF3YWl0KDAsUXQucmVzb2x2ZVVuZGVybHlpbmdTeW1ib2wpKHRoaXMuc3RhdGUuc3ltYm9sKTtlJiYodD17dHlwZToib3B0aW9uIix2YWx1ZTp0aGlzLnN0YXRlLnN5bWJvbCx1bmRlcmx5aW5nOmV9KX1hd2FpdChuZXcgRHQuU3ltYm9sU2VhcmNoVUkpLnNob3coe3RyYWNrUmVzdWx0c09wdGlvbnM6e3RyYWNrUmVzdWx0czohKDAsYS5pc0ZlYXR1cmVzZXRFbmFibGVkKSgid2lkZ2V0IiksZW1wdHlTZWFyY2hUeXBlOiJlbXB0eV9yZXN1bHRfX3N1cGVyY2hhcnRzIn0sb25DbG9zZTooKT0+e3RoaXMuc2V0U3RhdGUoe2lzU1NPcGVuZWQ6ITF9KX0sb25PcGVuOigpPT57dGhpcy5zZXRTdGF0ZSh7aXNTU09wZW5lZDohMH0pfSxzaG91bGRSZXR1cm5Gb2N1czooMCxHLmlzS2V5Ym9hcmRDbGljaykoZSksZGVmYXVsdFZhbHVlOnQsc2hvd1NwcmVhZEFjdGlvbnM6KDAsQnQuY2FuU2hvd1NwcmVhZEFjdGlvbnMpKCkmJnRoaXMucHJvcHMuaXNBY3Rpb25zVmlzaWJsZSxzb3VyY2U6InNlYXJjaEJhciIsZW5hYmxlT3B0aW9uc0NoYWluOigwLGEuaXNGZWF0dXJlc2V0RW5hYmxlZCkoInN5bWJvbF9zZWFyY2hfb3B0aW9uX2NoYWluX3NlbGVjdG9yIiksc2VhcmNoVHlwZToic3VwZXJjaGFydHMiLGZvb3RlcjpqZS5tb2JpbGV0b3VjaD92b2lkIDA6aS5jcmVhdGVFbGVtZW50KE90LlN5bWJvbFNlYXJjaERpYWxvZ0Zvb3RlcixudWxsLCgwLGEuaXNGZWF0dXJlc2V0RW5hYmxlZCkoIndpZGdldCIpP3UudChudWxsLHZvaWQgMCxuKDM5MDE5OCkpOnUudChudWxsLHZvaWQgMCxuKDk2NzI1NykpKX0pfWNhdGNoKGUpe319LHRoaXMuX2lzU3ByZWFkPWU9Pntjb25zdCB0PSgwLFd0LnRva2VuaXplKShlKTtyZXR1cm4oMCxXdC5pc1NwcmVhZCkodCl9LHRoaXMuX29uU3ltYm9sSW5mb1Jlc29sdmVkPSgpPT57Y29uc3QgZT1jLmxpbmtpbmcucHJvU3ltYm9sLnZhbHVlKCk7dGhpcy5zZXRTdGF0ZSh7c3ltYm9sOmUsc2hvcnROYW1lOmhuKCl9KX0sdGhpcy5fb25BY3R1YWxDb250ZW50Q2hhbmdlZD0oKT0+e3RoaXMuc2V0U3RhdGUoe2FjdHVhbENvbnRlbnRJZDpxdC5hY3R1YWxDb250ZW50LnZhbHVlKCl9KX0sdGhpcy5fb25TeW1ib2xDaGFuZ2VkPSgpPT57Y29uc3QgZT1jLmxpbmtpbmcucHJvU3ltYm9sLnZhbHVlKCk7ZT09PXRoaXMuc3RhdGUuc3ltYm9sP3RoaXMuc2V0U3RhdGUoe3N5bWJvbDplLHNob3J0TmFtZTpobigpfSk6dGhpcy5fdXBkYXRlUXVvdGVzKGUpfSwoMCx5LnZhbGlkYXRlUmVnaXN0cnkpKHQse2NoYXJ0V2lkZ2V0Q29sbGVjdGlvbjpvLmFueS5pc1JlcXVpcmVkfSksdGhpcy5zdGF0ZT17c3ltYm9sOmMubGlua2luZy5wcm9TeW1ib2wudmFsdWUoKSxzaG9ydE5hbWU6aG4oKSxhY3R1YWxDb250ZW50SWQ6dW4/cXQuYWN0dWFsQ29udGVudC52YWx1ZSgpOm51bGwsaXNTU09wZW5lZDohMSxpc0NvbnRlbnRNZW51T3BlbmVkOiExfX1jb21wb25lbnREaWRNb3VudCgpewppZihjLmxpbmtpbmcucHJvU3ltYm9sLnN1YnNjcmliZSh0aGlzLl9vblN5bWJvbENoYW5nZWQpLHVuJiZxdC5hY3R1YWxDb250ZW50LnN1YnNjcmliZSh0aGlzLl9vbkFjdHVhbENvbnRlbnRDaGFuZ2VkKSwoMCxhLmlzRmVhdHVyZXNldEVuYWJsZWQpKCJ1c2Vfc3ltYm9sX25hbWVfZm9yX2hlYWRlcl90b29sYmFyIikpe2NvbnN0IGU9Yy5saW5raW5nLmdldENoYXJ0V2lkZ2V0KCk7ZSYmZS53aXRoTW9kZWwobnVsbCwoKCk9PntlLm1vZGVsKCkubWFpblNlcmllcygpLnN5bWJvbFJlc29sdmVkKCkuc3Vic2NyaWJlKG51bGwsdGhpcy5fb25TeW1ib2xJbmZvUmVzb2x2ZWQsITEpfSkpfUR0LlN5bWJvbFNlYXJjaFVJLnByZWxvYWQoKSx0aGlzLl91cGRhdGVRdW90ZXMoYy5saW5raW5nLnByb1N5bWJvbC52YWx1ZSgpKX1jb21wb25lbnRXaWxsVW5tb3VudCgpe2lmKGMubGlua2luZy5wcm9TeW1ib2wudW5zdWJzY3JpYmUodGhpcy5fb25TeW1ib2xDaGFuZ2VkKSx1biYmcXQuYWN0dWFsQ29udGVudC51bnN1YnNjcmliZSh0aGlzLl9vbkFjdHVhbENvbnRlbnRDaGFuZ2VkKSwoMCxhLmlzRmVhdHVyZXNldEVuYWJsZWQpKCJ1c2Vfc3ltYm9sX25hbWVfZm9yX2hlYWRlcl90b29sYmFyIikpe2NvbnN0IGU9Yy5saW5raW5nLmdldENoYXJ0V2lkZ2V0KCk7ZT8uaGFzTW9kZWwoKSYmZS5tb2RlbCgpLm1haW5TZXJpZXMoKS5zeW1ib2xSZXNvbHZlZCgpLnVuc3Vic2NyaWJlKG51bGwsdGhpcy5fb25TeW1ib2xJbmZvUmVzb2x2ZWQpfX1yZW5kZXIoKXtjb25zdHtpZDplLGNsYXNzTmFtZTp0LGlzRmFrZTpvfT10aGlzLnByb3BzO2lmKCF1bilyZXR1cm4gaS5jcmVhdGVFbGVtZW50KGYuVG9vbGJhckJ1dHRvbix7aWQ6ZSxjbGFzc05hbWU6bCgpKHQsKDAsYS5pc0ZlYXR1cmVzZXRFbmFibGVkKSgidXBwZXJjYXNlX2luc3RydW1lbnRfbmFtZXMiKSYmbG4udXBwZXJjYXNlLGxuLnNtYWxsTGVmdFBhZGRpbmcpLHRoZW1lOnJuLGljb246c24saXNPcGVuZWQ6dGhpcy5zdGF0ZS5pc1NTT3BlbmVkLHRleHQ6dGhpcy5zdGF0ZS5zaG9ydE5hbWUsb25DbGljazp0aGlzLl9vcGVuU3ltYm9sU2VhcmNoRGlhbG9nLHRvb2x0aXA6dS50KG51bGwse2NvbnRleHQ6InN5bWJvbF9zZWFyY2gifSxuKDYwNDAxKSl9KTtjb25zdHtjaGFydFdpZGdldENvbGxlY3Rpb246c309dGhpcy5jb250ZXh0LHI9cz8uYWN0aXZlQ2hhcnRXaWRnZXQsZD1yPy52YWx1ZSgpLm9wdGlvbnMoKS5zaG93RmluYW5jaWFsc0VuYWJsZWQ7cmV0dXJuIGkuY3JlYXRlRWxlbWVudChpLkZyYWdtZW50LG51bGwsaS5jcmVhdGVFbGVtZW50KFV0LHtpZDplLGNsYXNzTmFtZTpsKCkobG4uc2VhcmNoQnV0dG9uLHRoaXMuc3RhdGUuaXNDb250ZW50TWVudU9wZW5lZCYmbG4ubWVudU9wZW5lZCksdG9vbHRpcDp1LnQobnVsbCx7Y29udGV4dDoic3ltYm9sX3NlYXJjaCJ9LG4oNjA0MDEpKSxhY3Rpb246e2lkOm8/dm9pZCAwOiJoZWFkZXItdG9vbGJhci1zd2l0Y2gtZGF0YS10eXBlIixpY29uOnRoaXMuc3RhdGUuYWN0dWFsQ29udGVudElkPyR0LkNPTlRFTlRfQlVUVE9OX0lDT05TW3RoaXMuc3RhdGUuYWN0dWFsQ29udGVudElkXT8/b246b24sb25DbGljazp0aGlzLl90b2dnbGVDb250ZW50TWVudSxyZWZlcmVuY2U6dGhpcy5fY29udGVudE1lbnVCdXR0b25SZWYsdG9vbHRpcDp1LnQobnVsbCx7Y29udGV4dDoic3ltYm9sX3NlYXJjaCJ9LG4oNDc1MDI4KSl9LG9uQ2xpY2s6dGhpcy5fb3BlblN5bWJvbFNlYXJjaERpYWxvZyx2YWx1ZTp0aGlzLnN0YXRlLnNob3J0TmFtZX0pLCFvJiZpLmNyZWF0ZUVsZW1lbnQoYW4se3N5bWJvbDp0aGlzLnN0YXRlLnN5bWJvbCxwcm92aWRlckxhYmVsOlh0LkxhYmVsUHJvZHVjdC5TeW1ib2xTZWFyY2hCdXR0b24sdHJhY2tpbmdEYXRhOntzb3VyY2U6ImNoYXJ0X3Rvb2xiYXIiLHByaW1hcnlfbWVudToiQ29udGVudE1lbnUifSxwbGFjZW1lbnRSdWxlczpbe2FuY2hvclBvaW50Ont4OjAseToxfSxjb250ZW50UG9pbnQ6e3g6MCx5OjB9LG9mZnNldDp7eDoyLHk6NX0sb3ZlcmZsb3dIb3Jpem9udGFsOiJzbGlkZSIsb3ZlcmZsb3dWZXJ0aWNhbDoiY3JvcFNsaWRlIn1dLHNob3dGaW5hbmNpYWxzOmQsb25DbG9zZTp0aGlzLl9vbkNvbnRlbnRNZW51Q2xvc2UsYW5jaG9yZWQ6e3R5cGU6ImVsZW1lbnQiLGF0OnRoaXMuX2NvbnRlbnRNZW51QnV0dG9uUmVmfSxpc09wZW46dGhpcy5zdGF0ZS5pc0NvbnRlbnRNZW51T3BlbmVkLGFjdHVhbENvbnRlbnRJZDp0aGlzLnN0YXRlLmFjdHVhbENvbnRlbnRJZCxyZWY6dGhpcy5fbWVudVJlZixzaG93Q2hhcnQ6ITB9KSl9YXN5bmMgX3VwZGF0ZVF1b3RlcyhlKXtpZighZSlyZXR1cm47Y29uc3QgdD1hd2FpdCgwLGp0LnNuYXBzaG90ZXIpKCkuZ2V0U25hcHNob3QoZSxuZXcgU2V0KFsic2hvcnRfbmFtZSJdKSk7aWYoZT09PWMubGlua2luZy5wcm9TeW1ib2wudmFsdWUoKSlpZigiZXJyb3IiPT09dC5zdGF0dXMpdGhpcy5zZXRTdGF0ZSh7c3ltYm9sOmUsc2hvcnROYW1lOmhuKCl9KTtlbHNle2NvbnN0e3ZhbHVlczpufT10O3RoaXMuc2V0U3RhdGUoe3N5bWJvbDplLHNob3J0TmFtZTpuLnNob3J0X25hbWV8fGhuKCl9KX19fWZ1bmN0aW9uIGhuKCl7Y29uc3QgZT1jLmxpbmtpbmcucHJvU3ltYm9sLnZhbHVlKCk7cmV0dXJuKDAsS3Quc2FmZVNob3J0TmFtZSkoZSl9Y24uY29udGV4dFR5cGU9ZG47dmFyIHZuPW4oOTcxNTQ1KSxtbj1uKDg4NzAxOCk7ZnVuY3Rpb24gcG4oZSl7cmV0dXJuIGkuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOmwoKShtbi5kZXNjcmlwdGlvbixlLmNsYXNzTmFtZSl9LGUuY2hpbGRyZW4pfXZhciBmbj1uKDUxMDU5OCksZ249bigxNjU0MTIpO2NvbnN0IGJuPSgwLHp0Lm1lcmdlVGhlbWVzKShhZS5ERUZBVUxUX1BPUFVQX01FTlVfSVRFTV9USEVNRSx7bGFiZWxSb3c6Z24ubGFiZWxSb3csdG9vbGJveDpnbi50b29sYm94LGl0ZW06Z24udGl0bGVJdGVtfSksd249KDAsenQubWVyZ2VUaGVtZXMpKGFlLkRFRkFVTFRfUE9QVVBfTUVOVV9JVEVNX1RIRU1FLHtsYWJlbFJvdzpnbi5sYWJlbFJvdyx0b29sYm94OmduLnRvb2xib3gsCml0ZW06Z24udGl0bGVJdGVtVGFibGV0U21hbGx9KSxDbj0oMCx6dC5tZXJnZVRoZW1lcykoYWUuREVGQVVMVF9QT1BVUF9NRU5VX0lURU1fVEhFTUUse2l0ZW06Z24uaXRlbX0pLF9uPSgwLHp0Lm1lcmdlVGhlbWVzKShhZS5ERUZBVUxUX1BPUFVQX01FTlVfSVRFTV9USEVNRSx7aXRlbTpnbi5pdGVtVGFibGV0U21hbGx9KTtmdW5jdGlvbiB5bihlKXtjb25zdHtyb2xlOnQsY2xhc3NOYW1lOm4saXRlbTphLGRlc2NyaXB0aW9uOm8sZmF2b3JpdGU6cyxpc0Zhdm9yaXRpbmdBbGxvd2VkOnIsaXNUYWJsZXRTbWFsbDpkLG9uQXBwbHk6dSxvblJlbW92ZTpjLG9uRmF2b3I6aCxpc0FjdGl2ZTp2LGRlc2NyaXB0aW9uRGF0YU5hbWU6bSwuLi5wfT1lLGY9cCxbZyxiXT0oMCxVZS51c2VIb3ZlckRlcHJlY2F0ZWQpKCksdz1kP3duOmJuLEM9ZD9fbjpDbixfPSgwLGkudXNlQ2FsbGJhY2spKCgoKT0+dShhKSksW3UsYV0pLHk9KDAsaS51c2VDYWxsYmFjaykoKGU9PmMoYSxlKSksW2MsYV0pLFM9KDAsaS51c2VDYWxsYmFjaykoKCgpPT57aCYmaChhKX0pLFtoLGFdKTtyZXR1cm4gaS5jcmVhdGVFbGVtZW50KCJkaXYiLHsuLi5iLC4uLmYsY2xhc3NOYW1lOmwoKShuLGduLndyYXApfSxpLmNyZWF0ZUVsZW1lbnQoQS5BY2Nlc3NpYmxlTWVudUl0ZW0se3JvbGU6dCx0aGVtZTp3LGxhYmVsOmkuY3JlYXRlRWxlbWVudChmbi5MZWFkaW5nRW1vamlUZXh0LHt0ZXh0OmEubmFtZX0pLGxhYmVsUm93Q2xhc3NOYW1lOmwoKShkJiZnbi5pdGVtTGFiZWxUYWJsZXRTbWFsbCksc2hvd1Rvb2xib3hPbkhvdmVyOiFzJiYhZyxzaG93VG9vbGJveE9uRm9jdXM6ITAsb25DbGljazpfLGlzQWN0aXZlOnYsdG9vbGJveDppLmNyZWF0ZUVsZW1lbnQoaS5GcmFnbWVudCxudWxsLCFhLmlzRGVmYXVsdCYmaS5jcmVhdGVFbGVtZW50KEtlLk1lbnVSZW1vdmVCdXR0b24se2tleToicmVtb3ZlIixoaWRkZW46IWplLnRvdWNoJiYhZyxvbkNsaWNrOnksY2xhc3NOYW1lOmwoKShnbi5yZW1vdmUsdiYmZ24uYWN0aXZlKX0pLEJvb2xlYW4oaCkmJnImJmkuY3JlYXRlRWxlbWVudChILk1lbnVGYXZvcml0ZUJ1dHRvbix7a2V5OiJmYXZvcml0ZSIsaXNGaWxsZWQ6Qm9vbGVhbihzKSxvbkNsaWNrOlN9KSl9KSxvJiZpLmNyZWF0ZUVsZW1lbnQoYWUuUG9wdXBNZW51SXRlbSx7dGhlbWU6QyxsYWJlbDppLmNyZWF0ZUVsZW1lbnQocG4se2NsYXNzTmFtZTpsKCkoZ24uZGVzY3JpcHRpb24sZCYmZ24uZGVzY3JpcHRpb25UYWJsZXRTbWFsbCl9LG8pLG9uQ2xpY2s6Xyxpc0FjdGl2ZTp2LCJkYXRhLW5hbWUiOm19KSl9dmFyIFNuPW4oODI0NTkwKTtmdW5jdGlvbiB4bihlKXtjb25zdHtpdGVtOnQsb25GYXZvcjpvLG9uQXBwbHk6cyxvblJlbW92ZTpsLGlzUmVtb3ZhYmxlOnIsaXNGYXZvcmFibGU6ZCxpc0Zhdm9yaXRlOmMsaXNUYWJsZXRTbWFsbDpoLC4uLnZ9PWUsbT10Lm1ldGFfaW5mbyxwPW0/KDAsU24uZ2V0U3R1ZHlUZW1wbGF0ZURlc2NTdHJpbmcpKG0uaW5kaWNhdG9ycyk6dm9pZCAwLGY9KHI/MTowKSsoZD8xOjApLGc9KDAsaS51c2VDYWxsYmFjaykoKCgpPT5vPy4odCkpLFtvLHRdKSxiPSgwLGkudXNlQ2FsbGJhY2spKChlPT5sPy4odCxlKSksW2wsdF0pLHc9KDAsaS51c2VDYWxsYmFjaykoKCgpPT5zKHQpKSxbcyx0XSk7cmV0dXJuKDAsYS5pc0ZlYXR1cmVzZXRFbmFibGVkKSgic2hvd19uZXdfbWVudV9pdGVtc19pbl9jaGFydF9tZW51cyIpP2kuY3JlYXRlRWxlbWVudChSLk1lbnVJdGVtLHsuLi52LHJvbGU6InJvdyIsb25DbGljazp3LGFyaWFMZXZlbDoyLHJpZ2h0U2xvdDpmdW5jdGlvbigpe2lmKCFkJiYhcilyZXR1cm4gbnVsbDtyZXR1cm5bciYmaS5jcmVhdGVFbGVtZW50KEwuQ29udGV4dEFjdGlvbix7a2V5OiJyZW1vdmUiLGhpZGVJZk5vSG92ZXI6ITAscm9sZToiZ3JpZGNlbGwifSxpLmNyZWF0ZUVsZW1lbnQoRGUse3JvbGU6ImJ1dHRvbiIsb25DbGljazpiLHRpdGxlOnUudChudWxsLHtjb250ZXh0OiJoZWFkZXIgdG9vbGJhciBpbmRpY2F0b3IgdGVtcGxhdGVzIG1lbnUgaXRlbSJ9LG4oMzkzMjczKSksaWNvbjpXZSxkYXRhUWFJZDoicmVtb3ZlLWluZGljYXRvci10ZW1wbGF0ZS1idXR0b24ifSkpLGQmJmkuY3JlYXRlRWxlbWVudChMLkNvbnRleHRBY3Rpb24se2tleToiZmF2b3JpdGUiLGhpZGVJZk5vSG92ZXI6IWMscm9sZToiZ3JpZGNlbGwifSxpLmNyZWF0ZUVsZW1lbnQoRi5GYXZvcml0ZUljb25CdXR0b24se2lzRmF2b3JpdGU6ISFjLG9uQ2xpY2s6Z30pKV19KCksYXJpYUxhYmVsOnQubmFtZSxkZXNjcmlwdGlvbjpwLGVsbGlwc2lzOiExLHRpdGxlOmkuY3JlYXRlRWxlbWVudCgic3BhbiIse3JvbGU6ImdyaWRjZWxsIiwiYXJpYS1jb2xzcGFuIjozLWZ9LGkuY3JlYXRlRWxlbWVudChmbi5MZWFkaW5nRW1vamlUZXh0LHt0ZXh0OnQubmFtZX0pKSwiZGF0YS1yb2xlIjoibWVudWl0ZW0iLGRhdGFRYUlkOnQubmFtZX0pOmkuY3JlYXRlRWxlbWVudCh5bix7Li4uZSxyb2xlOiJyb3ciLGlzRmF2b3JpdGluZ0FsbG93ZWQ6ZCxmYXZvcml0ZTpjLGRlc2NyaXB0aW9uOnAsaXRlbTp7Li4udCxpc0RlZmF1bHQ6dC5pc19kZWZhdWx0fSwiZGF0YS1uYW1lIjp0Lm5hbWUsImRhdGEtaWQiOnQuaWR9KX12YXIgRW49big3NzE5ODMpO2NvbnN0IE1uPSgwLHp0Lm1lcmdlVGhlbWVzKShhZS5ERUZBVUxUX1BPUFVQX01FTlVfSVRFTV9USEVNRSxFbik7ZnVuY3Rpb24ga24oZSl7Y29uc3R7b25DbGljazp0LGlzVGFibGV0U21hbGw6bixjbGFzc05hbWU6byxpY29uOnMsdGl0bGU6ZCwuLi51fT1lO3JldHVybigwLGEuaXNGZWF0dXJlc2V0RW5hYmxlZCkoInNob3dfbmV3X21lbnVfaXRlbXNfaW5fY2hhcnRfbWVudXMiKT9pLmNyZWF0ZUVsZW1lbnQoUi5NZW51SXRlbSx7Li4udSxyb2xlOiJyb3ciLG9uQ2xpY2s6KCk9PnQoKSxsZWZ0U2xvdDpzP2kuY3JlYXRlRWxlbWVudChWLlN2Z0ljb25MaXN0SXRlbVBhcnQse2ljb25Tdmc6c30pOm51bGwsdGl0bGU6aS5jcmVhdGVFbGVtZW50KCJzcGFuIix7cm9sZToiZ3JpZGNlbGwiLCJhcmlhLWNvbHNwYW4iOjN9LGQpLGFyaWFMYWJlbDpkLGFyaWFMZXZlbDoxLAoiZGF0YS1yb2xlIjoibWVudWl0ZW0iLGRhdGFRYUlkOiJpbmRpY2F0b3JzLWFjdGlvbi1tZW51LWl0ZW0ifSk6aS5jcmVhdGVFbGVtZW50KEEuQWNjZXNzaWJsZU1lbnVJdGVtLHsuLi51LHJvbGU6InJvdyIsdGhlbWU6TW4sY2xhc3NOYW1lOmwoKShvLEVuLndyYXApLGxhYmVsOmkuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOkVuLnRpdGxlV3JhcH0saS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6bCgpKEVuLnRpdGxlLG4mJkVuLnRpdGxlVGFibGV0U21hbGwpfSxpLmNyZWF0ZUVsZW1lbnQoci5JY29uLHtjbGFzc05hbWU6RW4uaWNvbixpY29uOnN9KSxpLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpFbi50ZXh0fSxkKSkpLG9uQ2xpY2s6dH0pfXZhciBJbj1uKDM0MjI2MSksVG49big2ODEyMjQpO2NvbnN0IEFuPWkuY3JlYXRlQ29udGV4dChudWxsKTt2YXIgSG49big5OTU1NDkpLFZuPW4oNzYxOTcxKSxSbj1uKDc4Mzc4MSk7ZnVuY3Rpb24gRm4oZSl7Y29uc3R7dGVtcGxhdGVzOnQscmVjZW50czpvLG9uVGVtcGxhdGVTYXZlOnMsb25UZW1wbGF0ZVJlbW92ZTpyLG9uVGVtcGxhdGVTZWxlY3Q6ZCxvblRlbXBsYXRlRmF2b3JpdGU6Yyxpc1RhYmxldFNtYWxsOmgsaXNMb2FkaW5nOnYsb25PcGVuVGVtcGxhdGVzRGlhbG9nOm19PWUscD0oMCxpLnVzZU1lbW8pKCgoKT0+dC5maWx0ZXIoKGU9PmUuaXNfZGVmYXVsdCkpKSxbdF0pLGY9KDAsaS51c2VNZW1vKSgoKCk9PnQuZmlsdGVyKChlPT4hZS5pc19kZWZhdWx0KSkpLFt0XSksZz0oMCxpLnVzZUNvbnRleHQpKEFuKSxiPSgwLGkudXNlQ29udGV4dCkoVG4uTWVudUNvbnRleHQpLHc9KDAsSW4udXNlRm9yY2VVcGRhdGUpKCk7KDAsaS51c2VFZmZlY3QpKCgoKT0+e2lmKG51bGwhPT1nKXtjb25zdCBlPXt9O3JldHVybiBnLmdldE9uQ2hhbmdlKCkuc3Vic2NyaWJlKGUsKCgpPT57dygpLGImJmIudXBkYXRlKCl9KSksKCk9PmcuZ2V0T25DaGFuZ2UoKS51bnN1YnNjcmliZUFsbChlKX1yZXR1cm4oKT0+e319KSxbXSk7Y29uc3QgQz0oZSx0KT0+aS5jcmVhdGVFbGVtZW50KHhuLHtrZXk6ZS5uYW1lLGl0ZW06ZSxpc0Zhdm9yYWJsZTpCb29sZWFuKGMpLGlzUmVtb3ZhYmxlOiFlLmlzX2RlZmF1bHQsaXNGYXZvcml0ZTpudWxsIT09ZS5mYXZvcml0ZV9kYXRlLG9uQXBwbHk6ZT0+ZChlLGZ1bmN0aW9uKGUpe2lmKCJyZWNlbnQiPT09ZSlyZXR1cm4idGVtcGxhdGVzX3JlY2VudCI7cmV0dXJufSh0KSksb25GYXZvcjpjLG9uUmVtb3ZlOnIsaXNUYWJsZXRTbWFsbDpoLCJkYXRhLWdyb3VwLW5hbWUiOnQsImRhdGEtaXMtZGVmYXVsdCI6ZS5pc19kZWZhdWx0fSk7cmV0dXJuIGkuY3JlYXRlRWxlbWVudCgiZGl2Iix7cm9sZToidHJlZWdyaWQiLGNsYXNzTmFtZTpsKCkoUm4ubWVudSwoMCxhLmlzRmVhdHVyZXNldEVuYWJsZWQpKCJzaG93X25ld19tZW51X2l0ZW1zX2luX2NoYXJ0X21lbnVzIikmJlJuLm5ld1ZpZXcsaCYmUm4ubWVudVNtYWxsVGFibGV0LCFoJiZSbi5kZXNrdG9wKX0saS5jcmVhdGVFbGVtZW50KGtuLHtvbkNsaWNrOnMsaXNUYWJsZXRTbWFsbDpoLGljb246SG4sdGl0bGU6KDAsWGUuYXBwZW5kRWxsaXBzaXMpKHUudChudWxsLHtjb250ZXh0OiJ0b29sYmFyX2luZGljYXRvcnNfYWN0aW9uX21lbnUifSxuKDI0NDA4MCkpKSwiYXJpYS1oYXNwb3B1cCI6ImRpYWxvZyJ9KSx2JiZpLmNyZWF0ZUVsZW1lbnQoaS5GcmFnbWVudCxudWxsLGkuY3JlYXRlRWxlbWVudChMbixudWxsKSxpLmNyZWF0ZUVsZW1lbnQoZmUuVG9vbFdpZGdldE1lbnVTcGlubmVyLG51bGwpKSwhdiYmKCgwLGEuaXNGZWF0dXJlc2V0RW5hYmxlZCkoInNob3dfbmV3X21lbnVfaXRlbXNfaW5fY2hhcnRfbWVudXMiKT9pLmNyZWF0ZUVsZW1lbnQoem4se2RlZmF1bHRzOnAsY3VzdG9tczpmLHJlY2VudHM6byxyZW5kZXI6QyxzdGF0ZTpoP3ZvaWQgMDpnfSk6aD9pLmNyZWF0ZUVsZW1lbnQoWm4se2RlZmF1bHRzOnAsY3VzdG9tczpmLHJlY2VudHM6byxyZW5kZXI6Q30pOmkuY3JlYXRlRWxlbWVudChObix7ZGVmYXVsdHM6cCxjdXN0b21zOmYscmVjZW50czpvLHJlbmRlcjpDLHN0YXRlOmd9KSksaS5jcmVhdGVFbGVtZW50KGkuRnJhZ21lbnQsbnVsbCxpLmNyZWF0ZUVsZW1lbnQoTG4sbnVsbCksaS5jcmVhdGVFbGVtZW50KGtuLHtvbkNsaWNrOm0saXNUYWJsZXRTbWFsbDpoLGljb246Vm4sdGl0bGU6KDAsWGUuYXBwZW5kRWxsaXBzaXMpKHUudChudWxsLHZvaWQgMCxuKDgwNjYzNikpKSwiYXJpYS1oYXNwb3B1cCI6ImRpYWxvZyJ9KSkpfWZ1bmN0aW9uIExuKCl7cmV0dXJuKDAsYS5pc0ZlYXR1cmVzZXRFbmFibGVkKSgic2hvd19uZXdfbWVudV9pdGVtc19pbl9jaGFydF9tZW51cyIpP2kuY3JlYXRlRWxlbWVudChkLkRpdmlkZXJMaXN0SXRlbSx7cm9sZToic2VwYXJhdG9yIn0pOmkuY3JlYXRlRWxlbWVudChiLlBvcHVwTWVudVNlcGFyYXRvcixudWxsKX1mdW5jdGlvbiBabihlKXtjb25zdHtkZWZhdWx0czp0LGN1c3RvbXM6YSxyZWNlbnRzOm8scmVuZGVyOnN9PWU7cmV0dXJuIGkuY3JlYXRlRWxlbWVudChpLkZyYWdtZW50LG51bGwsby5sZW5ndGg+MCYmaS5jcmVhdGVFbGVtZW50KGkuRnJhZ21lbnQsbnVsbCxpLmNyZWF0ZUVsZW1lbnQoYi5Qb3B1cE1lbnVTZXBhcmF0b3IsbnVsbCksaS5jcmVhdGVFbGVtZW50KHBlLlRvb2xXaWRnZXRNZW51U3VtbWFyeSx7Y2xhc3NOYW1lOlJuLm1lbnVJdGVtSGVhZGVyVGFibGV0U21hbGx9LHUudChudWxsLHZvaWQgMCxuKDM1ODI5MSkpKSxvLm1hcCgoZT0+cyhlLCJyZWNlbnQiKSkpKSl9ZnVuY3Rpb24gTm4oZSl7Y29uc3R7ZGVmYXVsdHM6dCxjdXN0b21zOmEscmVjZW50czpvLHJlbmRlcjpzLHN0YXRlOmx9PWU7cmV0dXJuIGkuY3JlYXRlRWxlbWVudChpLkZyYWdtZW50LG51bGwsby5sZW5ndGg+MCYmaS5jcmVhdGVFbGVtZW50KGkuRnJhZ21lbnQsbnVsbCxpLmNyZWF0ZUVsZW1lbnQoYi5Qb3B1cE1lbnVTZXBhcmF0b3IsbnVsbCksaS5jcmVhdGVFbGVtZW50KHBlLlRvb2xXaWRnZXRNZW51U3VtbWFyeSx7Y2xhc3NOYW1lOlJuLm1lbnVJdGVtSGVhZGVyCn0sdS50KG51bGwsdm9pZCAwLG4oMzU4MjkxKSkpLG8ubWFwKChlPT5zKGUsInJlY2VudCIpKSkpKX1mdW5jdGlvbiB6bihlKXtjb25zdHtkZWZhdWx0czp0LGN1c3RvbXM6YSxyZWNlbnRzOm8scmVuZGVyOnMsc3RhdGU6bH09ZSxyPShhLmxlbmd0aD4wJiZ0Lmxlbmd0aCx1LnQobnVsbCx7Y29udGV4dDoiaGVhZGVyIHRvb2xiYXIgaW5kaWNhdG9yIHRlbXBsYXRlIHNlY3Rpb24gaXRlbSJ9LG4oNTE4MjQ5KSkpO3UudChudWxsLHtjb250ZXh0OiJoZWFkZXIgdG9vbGJhciBpbmRpY2F0b3IgdGVtcGxhdGUgc2VjdGlvbiBpdGVtIn0sbigzMjU5MTApKSx1LnQobnVsbCx7Y29udGV4dDoiaGVhZGVyIHRvb2xiYXIgaW5kaWNhdG9yIHRlbXBsYXRlIHNlY3Rpb24gaXRlbSJ9LG4oNDI3NDQyKSk7cmV0dXJuIGkuY3JlYXRlRWxlbWVudChpLkZyYWdtZW50LG51bGwsby5sZW5ndGg+MCYmaS5jcmVhdGVFbGVtZW50KGkuRnJhZ21lbnQsbnVsbCxpLmNyZWF0ZUVsZW1lbnQoZC5EaXZpZGVyTGlzdEl0ZW0se3JvbGU6InNlcGFyYXRvciJ9KSxpLmNyZWF0ZUVsZW1lbnQoYmUuU2VjdGlvbkxpc3RJdGVtLHt0aXRsZTppLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtyb2xlOiJncmlkY2VsbCIsImFyaWEtY29sc3BhbiI6M30sciksYXJpYUxhYmVsOnIsZ3JvdXBSb2xlOiJyb3dncm91cCIsYXJpYUxldmVsOjF9LG8ubWFwKChlPT5zKGUsInJlY2VudCIpKSkpKSl9dmFyIEJuPW4oMjMyMzY0KSxPbj1uKDQzMDgxNCk7Y2xhc3MgRG57Y29uc3RydWN0b3IoZSx0KXt0aGlzLl9pc0Zhdm9yaXRlRW5hYmxlZD0oMCxhLmlzRmVhdHVyZXNldEVuYWJsZWQpKCJpdGVtc19mYXZvcml0aW5nIiksdGhpcy5oYW5kbGVGYXZvclRlbXBsYXRlPWU9PntpZighdGhpcy5faXNGYXZvcml0ZUVuYWJsZWQpcmV0dXJuO2NvbnN0e2lkOnQsaXNfZGVmYXVsdDpuLGZhdm9yaXRlX2RhdGU6YX09ZTtudWxsIT09YT90aGlzLl9yZW1vdmVGYXZvcml0ZVRlbXBsYXRlKHQsbik6dGhpcy5fYWRkRmF2b3JpdGVUZW1wbGF0ZSh0LG4pfSx0aGlzLmhhbmRsZURyb3Bkb3duT3Blbj0oKT0+e3dpbmRvdy5pc19hdXRoZW50aWNhdGVkJiYodGhpcy5fc2V0U3RhdGUoe2lzTG9hZGluZzohMH0pLHRoaXMuX3N0dWR5VGVtcGxhdGVzLmludmFsaWRhdGUoKSx0aGlzLl9zdHVkeVRlbXBsYXRlcy5yZWZyZXNoU3R1ZHlUZW1wbGF0ZUxpc3QoKCgpPT50aGlzLl9zZXRTdGF0ZSh7aXNMb2FkaW5nOiExfSkpKSl9LHRoaXMuaGFuZGxlQXBwbHlUZW1wbGF0ZT0oZSx0KT0+e3RoaXMuX3N0dWR5VGVtcGxhdGVzLmFwcGx5VGVtcGxhdGUoZS5uYW1lLHQpLHRoaXMuX3JlY2VudFN0dWR5VGVtcGxhdGVzU2VydmljZSYmdGhpcy5fcmVjZW50U3R1ZHlUZW1wbGF0ZXNTZXJ2aWNlLmFkZChlLmlkKX0sdGhpcy5oYW5kbGVSZW1vdmVUZW1wbGF0ZT0oZSx0LG4pPT57dGhpcy5fc3R1ZHlUZW1wbGF0ZXMuZGVsZXRlU3R1ZHlUZW1wbGF0ZShlLm5hbWUsdCxuKX0sdGhpcy5oYW5kbGVTYXZlVGVtcGxhdGU9ZT0+e3RoaXMuX3N0dWR5VGVtcGxhdGVzLnNob3dTYXZlQXNEaWFsb2coZSl9LHRoaXMuX3N0dWR5VGVtcGxhdGVzPWUsdGhpcy5fcmVjZW50U3R1ZHlUZW1wbGF0ZXNTZXJ2aWNlPXQ7Y29uc3Qgbj10aGlzLl9yZWNlbnRTdHVkeVRlbXBsYXRlc1NlcnZpY2U/LmdldCgpfHxbXSxpPXRoaXMuX3N0dWR5VGVtcGxhdGVzLmxpc3QoKTt0aGlzLl9zdGF0ZT1uZXcgQm4uV2F0Y2hlZFZhbHVlKHtpc0xvYWRpbmc6ITEsc3R1ZHlUZW1wbGF0ZXNMaXN0OmkscmVjZW50czpufSksdGhpcy5fc3R1ZHlUZW1wbGF0ZXMuZ2V0T25DaGFuZ2UoKS5zdWJzY3JpYmUodGhpcyx0aGlzLl9oYW5kbGVUZW1wbGF0ZXNDaGFuZ2UpLHRoaXMuX3JlY2VudFN0dWR5VGVtcGxhdGVzU2VydmljZT8uZ2V0T25DaGFuZ2UoKS5zdWJzY3JpYmUodGhpcyx0aGlzLl9oYW5kbGVSZWNlbnRzQ2hhbmdlKSx0aGlzLl9zdHVkeVRlbXBsYXRlcy5yZWZyZXNoU3R1ZHlUZW1wbGF0ZUxpc3QoKX1kZXN0cm95KCl7dGhpcy5fc3R1ZHlUZW1wbGF0ZXMuZ2V0T25DaGFuZ2UoKS51bnN1YnNjcmliZSh0aGlzLHRoaXMuX2hhbmRsZVRlbXBsYXRlc0NoYW5nZSksdGhpcy5fcmVjZW50U3R1ZHlUZW1wbGF0ZXNTZXJ2aWNlPy5nZXRPbkNoYW5nZSgpLnVuc3Vic2NyaWJlKHRoaXMsdGhpcy5faGFuZGxlUmVjZW50c0NoYW5nZSl9c3RhdGUoKXtyZXR1cm4gdGhpcy5fc3RhdGUucmVhZG9ubHkoKX1nZXRTb3J0ZWRGYXZvcml0ZXNTdHVkeVRlbXBsYXRlcyhlKXtyZXR1cm4gZS5maWx0ZXIoKGU9Pm51bGwhPT1lLmZhdm9yaXRlX2RhdGUpKS5zb3J0KCgoZSx0KT0+bnVsbCE9PWUuZmF2b3JpdGVfZGF0ZSYmbnVsbCE9PXQuZmF2b3JpdGVfZGF0ZSYmZS5mYXZvcml0ZV9kYXRlPnQuZmF2b3JpdGVfZGF0ZT8xOi0xKSl9Z2V0VmFsaWRSZWNlbnRzKGUpe2NvbnN0IHQ9ZS5yZWR1Y2UoKChlLHQpPT4oZVt0LmlkXT10LGUpKSx7fSk7cmV0dXJuIHRoaXMuX3N0YXRlLnZhbHVlKCkucmVjZW50cy5tYXAoKGU9PnRbZV0pKS5maWx0ZXIoKGU9PnZvaWQgMCE9PWUpKX1fc2V0U3RhdGUoZSl7dGhpcy5fc3RhdGUuc2V0VmFsdWUoey4uLnRoaXMuX3N0YXRlLnZhbHVlKCksLi4uZX0pfV9oYW5kbGVUZW1wbGF0ZXNDaGFuZ2UoKXt0aGlzLl9zZXRTdGF0ZSh7c3R1ZHlUZW1wbGF0ZXNMaXN0OnRoaXMuX3N0dWR5VGVtcGxhdGVzLmxpc3QoKX0pfV9oYW5kbGVSZWNlbnRzQ2hhbmdlKCl7dGhpcy5fc2V0U3RhdGUoe3JlY2VudHM6dGhpcy5fcmVjZW50U3R1ZHlUZW1wbGF0ZXNTZXJ2aWNlPy5nZXQoKXx8W119KX1fcmVtb3ZlRmF2b3JpdGVUZW1wbGF0ZShlLHQpe2NvbnN0IG49dD9Pbi5iYWNrZW5kLmZhdm9yU3RhbmRhcmRTdHVkeVRlbXBsYXRlOk9uLmJhY2tlbmQuZmF2b3JTdHVkeVRlbXBsYXRlO3RoaXMuX3JlcGxhY2VPbGRGYXZvcml0ZVN0dWR5VGVtcGxhdGUoZSxudWxsLHQpLHdpbmRvdy5pc19hdXRoZW50aWNhdGVkJiZuKGUsITEpfV9hZGRGYXZvcml0ZVRlbXBsYXRlKGUsdCl7CmNvbnN0IG49dGhpcy5nZXRTb3J0ZWRGYXZvcml0ZXNTdHVkeVRlbXBsYXRlcyh0aGlzLl9zdGF0ZS52YWx1ZSgpLnN0dWR5VGVtcGxhdGVzTGlzdCksYT1uLmxlbmd0aD9uW24ubGVuZ3RoLTFdLmZhdm9yaXRlX2RhdGU6MCxpPXdpbmRvdy5pc19hdXRoZW50aWNhdGVkP0RhdGUubm93KCk6YSsxLG89dD9Pbi5iYWNrZW5kLmZhdm9yU3RhbmRhcmRTdHVkeVRlbXBsYXRlOk9uLmJhY2tlbmQuZmF2b3JTdHVkeVRlbXBsYXRlO3RoaXMuX3JlcGxhY2VPbGRGYXZvcml0ZVN0dWR5VGVtcGxhdGUoZSxpLHQpLHdpbmRvdy5pc19hdXRoZW50aWNhdGVkJiZvKGUsITApfV9yZXBsYWNlT2xkRmF2b3JpdGVTdHVkeVRlbXBsYXRlKGUsdCxuKXtjb25zdCBhPXRoaXMuX3N0YXRlLnZhbHVlKCkuc3R1ZHlUZW1wbGF0ZXNMaXN0Lm1hcCgoYT0+YS5pZD09PWUmJmEuaXNfZGVmYXVsdD09PW4/ey4uLmEsZmF2b3JpdGVfZGF0ZTp0fTphKSk7dGhpcy5fc2V0U3RhdGUoe3N0dWR5VGVtcGxhdGVzTGlzdDphfSl9fXZhciBXbj1uKDYyNzA0NSk7dmFyIFBuPW4oMTU5ODc3KSxVbj1uKDI1NzY5MSk7Y29uc3Qgam49KDAseS5yZWdpc3RyeUNvbnRleHRUeXBlKSgpO2NsYXNzIEtuIGV4dGVuZHMgaS5QdXJlQ29tcG9uZW50e2NvbnN0cnVjdG9yKGUsdCl7c3VwZXIoZSx0KSx0aGlzLl91cGRhdGVTdGF0ZT1lPT57dGhpcy5zZXRTdGF0ZSh7Li4uZSxpc0FjdGl2ZTp0aGlzLnN0YXRlLmlzQWN0aXZlfSl9LHRoaXMuX2hhbmRsZUFwcGx5VGVtcGxhdGU9KGUsdCk9Pnt0aGlzLl9oYW5kbGVDbG9zZSgpLHRoaXMuX21vZGVsLmhhbmRsZUFwcGx5VGVtcGxhdGUoZSx0KX0sdGhpcy5faGFuZGxlUmVtb3ZlVGVtcGxhdGU9KGUsdCxuKT0+e3RoaXMuX2hhbmRsZUNsb3NlKCksdGhpcy5fbW9kZWwuaGFuZGxlUmVtb3ZlVGVtcGxhdGUoZSx0LG4pfSx0aGlzLl9oYW5kbGVDbG9zZT0oKT0+e3RoaXMuX2hhbmRsZVRvZ2dsZURyb3Bkb3duKCExKX0sdGhpcy5faGFuZGxlVG9nZ2xlRHJvcGRvd249ZT0+e2NvbnN0e2lzQWN0aXZlOnR9PXRoaXMuc3RhdGUsbj0iYm9vbGVhbiI9PXR5cGVvZiBlP2U6IXQ7dGhpcy5zZXRTdGF0ZSh7aXNBY3RpdmU6bn0pfSx0aGlzLl9oYW5kbGVPcGVuVGVtcGxhdGVzRGlhbG9nPSgpPT57KGFzeW5jIGZ1bmN0aW9uKGUpeyhhd2FpdCBQcm9taXNlLmFsbChbbi5lKDUxMzE0KSxuLmUoMjkyOTYpLG4uZSg1MjM5Niksbi5lKDYwMDYyKSxuLmUoMjAzNTQpLG4uZSgxMzQ5Miksbi5lKDM3NzQ2KSxuLmUoODM0ODgpLG4uZSg5NTA0KSxuLmUoNzI2NjYpLG4uZSg5ODA4NCksbi5lKDEwMzg1KSxuLmUoNTIwNjUpLG4uZSg0NzYzMiksbi5lKDY2MDUpLG4uZSg5MTg1NSksbi5lKDMyMTc2KSxuLmUoNDI3MjEpLG4uZSg0NzIwMSksbi5lKDkxNjcwKSxuLmUoNTUzOSksbi5lKDIzNzIpLG4uZSgzOTYwOSksbi5lKDQyMjg4KSxuLmUoOTMyNzcpLG4uZSgyOTc2NSldKS50aGVuKG4uYmluZChuLDMzMDM2OSkpKS5JbmRpY2F0b3JUZW1wbGF0ZXNEaWFsb2dSZW5kZXJlci5nZXRJbnN0YW5jZSgpLnNob3coe21vZGVsOmV9KX0pKHRoaXMuX21vZGVsKX0sKDAseS52YWxpZGF0ZVJlZ2lzdHJ5KSh0LHtzdHVkeVRlbXBsYXRlczpvLmFueS5pc1JlcXVpcmVkLHRlbXBsYXRlc01lbnVWaWV3U3RhdGVTZXJ2aWNlOm8uYW55LHJlY2VudFN0dWR5VGVtcGxhdGVzU2VydmljZTpvLmFueX0pO2NvbnN0e3JlY2VudFN0dWR5VGVtcGxhdGVzU2VydmljZTphLHN0dWR5VGVtcGxhdGVzOml9PXQ7dGhpcy5fbW9kZWw9bmV3IERuKGksYSksdGhpcy5zdGF0ZT17Li4udGhpcy5fbW9kZWwuc3RhdGUoKS52YWx1ZSgpLGlzQWN0aXZlOiExfX1jb21wb25lbnREaWRNb3VudCgpe3RoaXMuX21vZGVsLnN0YXRlKCkuc3Vic2NyaWJlKHRoaXMuX3VwZGF0ZVN0YXRlKX1jb21wb25lbnRXaWxsVW5tb3VudCgpe3RoaXMuX21vZGVsLnN0YXRlKCkudW5zdWJzY3JpYmUodGhpcy5fdXBkYXRlU3RhdGUpLHRoaXMuX21vZGVsLmRlc3Ryb3koKX1yZW5kZXIoKXtjb25zdHtzdHVkeVRlbXBsYXRlc0xpc3Q6ZX09dGhpcy5zdGF0ZSx7aXNTaG93blF1aWNrczp0LGNsYXNzTmFtZTpuLGRpc3BsYXlNb2RlOmEsaWQ6b309dGhpcy5wcm9wcyxzPXRoaXMuX21vZGVsLmdldFNvcnRlZEZhdm9yaXRlc1N0dWR5VGVtcGxhdGVzKGUpLGw9dGhpcy5fbW9kZWwuZ2V0VmFsaWRSZWNlbnRzKGUpO3JldHVybiBpLmNyZWF0ZUVsZW1lbnQoQW4uUHJvdmlkZXIse3ZhbHVlOnRoaXMuY29udGV4dC50ZW1wbGF0ZXNNZW51Vmlld1N0YXRlU2VydmljZXx8bnVsbH0saS5jcmVhdGVFbGVtZW50KFFuLHtpZDpvLGNsYXNzTmFtZTpuLG1vZGU6YSx0ZW1wbGF0ZXM6ZSxmYXZvcml0ZXM6cyxyZWNlbnRzOmwsb25NZW51T3Blbjp0aGlzLl9tb2RlbC5oYW5kbGVEcm9wZG93bk9wZW4sb25UZW1wbGF0ZUZhdm9yaXRlOnQ/dGhpcy5fbW9kZWwuaGFuZGxlRmF2b3JUZW1wbGF0ZTp2b2lkIDAsb25UZW1wbGF0ZVNlbGVjdDp0aGlzLl9oYW5kbGVBcHBseVRlbXBsYXRlLG9uVGVtcGxhdGVSZW1vdmU6dGhpcy5faGFuZGxlUmVtb3ZlVGVtcGxhdGUsb25UZW1wbGF0ZVNhdmU6dGhpcy5fbW9kZWwuaGFuZGxlU2F2ZVRlbXBsYXRlLG9uT3BlblRlbXBsYXRlc0RpYWxvZzp0aGlzLl9oYW5kbGVPcGVuVGVtcGxhdGVzRGlhbG9nfSkpfX1mdW5jdGlvbiBRbihlKXtjb25zdHtpZDp0LGNsYXNzTmFtZTpvLG1vZGU6cyx0ZW1wbGF0ZXM6cixmYXZvcml0ZXM6ZCxyZWNlbnRzOmMsaXNNZW51T3BlbjpoLG9uVGVtcGxhdGVTZWxlY3Q6dixvblRlbXBsYXRlU2F2ZTpmLG9uVGVtcGxhdGVGYXZvcml0ZTpnLG9uVGVtcGxhdGVSZW1vdmU6Yixvbk9wZW5UZW1wbGF0ZXNEaWFsb2c6X309ZSx5PSgwLGkudXNlUmVmKShudWxsKSxTPSgwLGkudXNlUmVmKShudWxsKSx4PWwoKShvLFVuLndyYXAse1tVbi5mdWxsXToiZnVsbCI9PT1zLFtVbi5tZWRpdW1dOiJtZWRpdW0iPT09c30pLEU9InNtYWxsIiE9PXMmJmcmJmQubGVuZ3RoPjA7cmV0dXJuIGkuY3JlYXRlRWxlbWVudChwLlRvb2xXaWRnZXRSb3dXcmFwLHtpZDp0LGNsYXNzTmFtZTp4fSxpLmNyZWF0ZUVsZW1lbnQody5NYXRjaE1lZGlhLHsKcnVsZTpDLkRpYWxvZ0JyZWFrcG9pbnRzLlRhYmxldFNtYWxsfSwodD0+aS5jcmVhdGVFbGVtZW50KG0uVG9vbGJhck1lbnVCdXR0b24se3JlZjp5LG1lbnVSZWZlcmVuY2U6Uyxvbk9wZW46ZS5vbk1lbnVPcGVuLGlzRHJhd2VyOnQsZHJhd2VyUG9zaXRpb246IkJvdHRvbSIsYXJyb3c6ITEsY29udGVudDppLmNyZWF0ZUVsZW1lbnQodm4uVG9vbFdpZGdldENvbGxhcHNpYmxlQnV0dG9uLHt0YWc6ImRpdiIsY2xhc3NOYW1lOmwoKShFJiZVbi5idXR0b25XaXRoRmF2b3JpdGVzKSxkaXNwbGF5TW9kZTpzLGlzT3BlbmVkOmgsaWNvbjpQbixmb3JjZUludGVyYWN0aXZlOiEwLGNvbGxhcHNlV2hlbjpbImZ1bGwiLCJtZWRpdW0iLCJzbWFsbCJdfSksb25DbGljazprLHRvb2x0aXA6dS50KG51bGwsdm9pZCAwLG4oNjE2OSkpLGVuYWJsZVNjcm9sbENvbXBlbnNhdGlvbjooMCxhLmlzRmVhdHVyZXNldEVuYWJsZWQpKCJzaG93X25ld19tZW51X2l0ZW1zX2luX2NoYXJ0X21lbnVzIiksbWVudURhdGFOYW1lOiJpbmRpY2F0b3ItdGVtcGxhdGVzLW1lbnUifSxpLmNyZWF0ZUVsZW1lbnQoRm4se29uVGVtcGxhdGVTYXZlOmYsb25UZW1wbGF0ZVNlbGVjdDp2LG9uVGVtcGxhdGVSZW1vdmU6TSxvblRlbXBsYXRlRmF2b3JpdGU6Zyx0ZW1wbGF0ZXM6cixyZWNlbnRzOmMsaXNUYWJsZXRTbWFsbDp0LG9uT3BlblRlbXBsYXRlc0RpYWxvZzpffSkpKSksRSYmaS5jcmVhdGVFbGVtZW50KHFuLHtmYXZvcml0ZXM6ZCxvblRlbXBsYXRlU2VsZWN0OmZ1bmN0aW9uKGUpe3YoZSwidGVtcGxhdGVzX2Zhdm9yaXRlcyIpLGsoKX19KSk7ZnVuY3Rpb24gTShlLHQpe2lmKHQmJigwLEcuaXNLZXlib2FyZENsaWNrKSh0KSYmUy5jdXJyZW50KXtjb25zdCB0PSgwLGllLnF1ZXJ5TWVudUVsZW1lbnRzKShTLmN1cnJlbnQpLG49dC5maW5kSW5kZXgoKHQ9Pm51bGwhPT10LmNsb3Nlc3QoYFtkYXRhLWlkPSIke2UuaWR9Il1gKSkpO2IoZSxudWxsLCgoKT0+e2lmKC0xIT09biYmUy5jdXJyZW50KXtjb25zdCBlPXRbbisxXT8/dFtuLTFdO2U/ZS5mb2N1cygpOigwLGllLmZvY3VzRmlyc3RNZW51SXRlbSkoUy5jdXJyZW50KSx5LmN1cnJlbnQ/LnVwZGF0ZSgpfX0pKX1lbHNlIGIoZSl9ZnVuY3Rpb24gaygpeygwLEQudHJhY2tCdXR0b25DbGljaykoInRvcCB0b29sYmFyIiwiaW5kaWNhdG9yIHRlbXBsYXRlcyIpfX1mdW5jdGlvbiBxbihlKXtyZXR1cm4gaS5jcmVhdGVFbGVtZW50KGkuRnJhZ21lbnQsbnVsbCxlLmZhdm9yaXRlcy5tYXAoKCh0LG4sYSk9PmkuY3JlYXRlRWxlbWVudChXbi5GYXZvcml0ZUl0ZW0se2tleTp0Lm5hbWUsaXRlbTp0LG9uQXBwbHk6ZS5vblRlbXBsYXRlU2VsZWN0LGNsYXNzTmFtZTpsKCkoe1tVbi5maXJzdF06MD09PW4sW1VuLmxhc3RdOm49PT1hLmxlbmd0aC0xfSl9KSkpKX1Lbi5jb250ZXh0VHlwZT1qbjtuKDgyOTE4MCk7dmFyICRuPW4oMTc1Mzk1KSxYbj1uKDQ5OTcyNCksR249big3NjIwMiksSm49big1NzA2ODMpO2NvbnN0IFluPXt1bmRvSG90S2V5OigwLG9lLmhvdEtleVNlcmlhbGl6ZSkoe2tleXM6WygwLE0uaHVtYW5SZWFkYWJsZU1vZGlmaWVycykoTS5Nb2RpZmllcnMuTW9kLCExKSwiWiJdLHRleHQ6InswfSArIHsxfSJ9KSxyZWRvSG90S2V5OigwLG9lLmhvdEtleVNlcmlhbGl6ZSkoe2tleXM6WygwLE0uaHVtYW5SZWFkYWJsZU1vZGlmaWVycykoTS5Nb2RpZmllcnMuTW9kLCExKSwiWSJdLHRleHQ6InswfSArIHsxfSJ9KX0sZWE9KDAsenQubWVyZ2VUaGVtZXMpKGYuREVGQVVMVF9UT09MQkFSX0JVVFRPTl9USEVNRSxKbiksdGE9KDAseS5yZWdpc3RyeUNvbnRleHRUeXBlKSgpO2NsYXNzIG5hIGV4dGVuZHMgaS5QdXJlQ29tcG9uZW50e2NvbnN0cnVjdG9yKGUsdCl7c3VwZXIoZSx0KSx0aGlzLl9iYXRjaGVkPW51bGwsdGhpcy5faGFuZGxlQ2xpY2tVbmRvPSgpPT57KDAsWC50cmFja0V2ZW50KSgiR1VJIiwiVW5kbyIpLCgwLEQudHJhY2tCdXR0b25DbGljaykoInRvcCB0b29sYmFyIiwidW5kbyIpO2NvbnN0e2NoYXJ0V2lkZ2V0Q29sbGVjdGlvbjplfT10aGlzLmNvbnRleHQ7ZS51bmRvSGlzdG9yeS51bmRvKCl9LHRoaXMuX2hhbmRsZUNsaWNrUmVkbz0oKT0+eygwLFgudHJhY2tFdmVudCkoIkdVSSIsIlJlZG8iKSwoMCxELnRyYWNrQnV0dG9uQ2xpY2spKCJ0b3AgdG9vbGJhciIsInJlZG8iKTtjb25zdHtjaGFydFdpZGdldENvbGxlY3Rpb246ZX09dGhpcy5jb250ZXh0O2UudW5kb0hpc3RvcnkucmVkbygpfSwoMCx5LnZhbGlkYXRlUmVnaXN0cnkpKHQse2NoYXJ0V2lkZ2V0Q29sbGVjdGlvbjpvLmFueS5pc1JlcXVpcmVkfSksdGhpcy5zdGF0ZT10aGlzLl9nZXRTdGF0ZUZyb21VbmRvSGlzdG9yeSgpfWNvbXBvbmVudERpZE1vdW50KCl7Y29uc3R7Y2hhcnRXaWRnZXRDb2xsZWN0aW9uOmV9PXRoaXMuY29udGV4dDtlLnVuZG9IaXN0b3J5LnJlZG9TdGFjaygpLm9uQ2hhbmdlKCkuc3Vic2NyaWJlKHRoaXMsdGhpcy5fb25DaGFuZ2VTdGFjayksZS51bmRvSGlzdG9yeS51bmRvU3RhY2soKS5vbkNoYW5nZSgpLnN1YnNjcmliZSh0aGlzLHRoaXMuX29uQ2hhbmdlU3RhY2spfWNvbXBvbmVudFdpbGxVbm1vdW50KCl7Y29uc3R7Y2hhcnRXaWRnZXRDb2xsZWN0aW9uOmV9PXRoaXMuY29udGV4dDtlLnVuZG9IaXN0b3J5LnJlZG9TdGFjaygpLm9uQ2hhbmdlKCkudW5zdWJzY3JpYmUodGhpcyx0aGlzLl9vbkNoYW5nZVN0YWNrKSxlLnVuZG9IaXN0b3J5LnVuZG9TdGFjaygpLm9uQ2hhbmdlKCkudW5zdWJzY3JpYmUodGhpcyx0aGlzLl9vbkNoYW5nZVN0YWNrKSx0aGlzLl9iYXRjaGVkPW51bGx9cmVuZGVyKCl7Y29uc3R7aWQ6ZX09dGhpcy5wcm9wcyx7aXNFbmFibGVkUmVkbzp0LGlzRW5hYmxlZFVuZG86YSxyZWRvU3RhY2s6byx1bmRvU3RhY2s6c309dGhpcy5zdGF0ZTtsZXQgbCxyLGQsYztyZXR1cm4gYSYmKGw9KDAsJG4uY2FwaXRhbGl6ZUZpcnN0TGV0dGVyKSh1LnQobnVsbCx7cmVwbGFjZTp7aGludDpzfSxjb250ZXh0OiJ1bmRvIGNvbW1hbmQgdGV4dCJ9LG4oNzMxNjQ5KSkpLHI9WW4udW5kb0hvdEtleSksdCYmKGQ9KDAsJG4uY2FwaXRhbGl6ZUZpcnN0TGV0dGVyKSh1LnQobnVsbCx7CnJlcGxhY2U6e2hpbnQ6b30sY29udGV4dDoidW5kbyBjb21tYW5kIHRleHQifSxuKDQ1MzI2MykpKSxjPVluLnJlZG9Ib3RLZXkpLGkuY3JlYXRlRWxlbWVudChwLlRvb2xXaWRnZXRSb3dXcmFwLHtpZDplfSxpLmNyZWF0ZUVsZW1lbnQoZi5Ub29sYmFyQnV0dG9uLHtpY29uOlhuLGlzRGlzYWJsZWQ6IWEsb25DbGljazp0aGlzLl9oYW5kbGVDbGlja1VuZG8sdGhlbWU6ZWEsdG9vbHRpcDpsLCJkYXRhLXRvb2x0aXAtaG90a2V5IjpyfSksaS5jcmVhdGVFbGVtZW50KGYuVG9vbGJhckJ1dHRvbix7aWNvbjpHbixpc0Rpc2FibGVkOiF0LG9uQ2xpY2s6dGhpcy5faGFuZGxlQ2xpY2tSZWRvLHRoZW1lOmVhLHRvb2x0aXA6ZCwiZGF0YS10b29sdGlwLWhvdGtleSI6Y30pKX1fb25DaGFuZ2VTdGFjaygpe251bGw9PT10aGlzLl9iYXRjaGVkJiYodGhpcy5fYmF0Y2hlZD1Qcm9taXNlLnJlc29sdmUoKS50aGVuKCgoKT0+e2lmKG51bGw9PT10aGlzLl9iYXRjaGVkKXJldHVybjt0aGlzLl9iYXRjaGVkPW51bGw7Y29uc3QgZT10aGlzLl9nZXRTdGF0ZUZyb21VbmRvSGlzdG9yeSgpO3RoaXMuc2V0U3RhdGUoZSl9KSkpfV9nZXRTdGF0ZUZyb21VbmRvSGlzdG9yeSgpe2NvbnN0e2NoYXJ0V2lkZ2V0Q29sbGVjdGlvbjplfT10aGlzLmNvbnRleHQsdD1lLnVuZG9IaXN0b3J5LnVuZG9TdGFjaygpLG49ZS51bmRvSGlzdG9yeS5yZWRvU3RhY2soKSxhPW4uaGVhZCgpLGk9dC5oZWFkKCk7cmV0dXJue2lzRW5hYmxlZFJlZG86IW4uaXNFbXB0eSgpLGlzRW5hYmxlZFVuZG86IXQuaXNFbXB0eSgpLHJlZG9TdGFjazphP2EudGV4dCgpLnRyYW5zbGF0ZWRUZXh0KCk6IiIsdW5kb1N0YWNrOmk/aS50ZXh0KCkudHJhbnNsYXRlZFRleHQoKToiIn19fW5hLmNvbnRleHRUeXBlPXRhO3ZhciBhYT1uKDM0NDc4NSksaWE9big0Mjk0NjUpLG9hPW4oOTkwMDE0KTtmdW5jdGlvbiBzYShlKXtjb25zdHt0aXRsZTp0LGNoaWxkcmVuOm4saXNTbWFsbFdpZHRoOmEsc2VwYXJhdG9yOm8sY2xhc3NOYW1lOnN9PWU7cmV0dXJuIGkuY3JlYXRlRWxlbWVudCgiZGl2Iix7cm9sZToiZ3JvdXAiLGNsYXNzTmFtZTpsKCkocyxvYS5yb3csYSYmb2Euc21hbGxSb3cpfSxpLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpvYS5yb3dJbm5lcn0saS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6bCgpKG9hLnJvd0xhYmVsLGEmJm9hLnNtYWxsUm93TGFiZWwpfSx0KSxpLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpvYS5yb3dCdXR0b25zLCJkYXRhLXJvbGUiOiJyb3cifSxuKSksbyl9ZnVuY3Rpb24gbGEoZSl7Y29uc3R7aXNBY3RpdmU6dCxpY29uOm4saXNTbWFsbFdpZHRoOmEsY2xhc3NOYW1lOm8sbGF5b3V0OnMsb25DbGljazpkLGlzRmlyc3RJdGVtSW5Sb3c6dSwuLi5jfT1lLGg9YyxbdixtXT0oMCxPZS51c2VSb3ZpbmdUYWJpbmRleEVsZW1lbnQpKG51bGwpO3JldHVybiBpLmNyZWF0ZUVsZW1lbnQoImJ1dHRvbiIse3JvbGU6Im1lbnVpdGVtcmFkaW8iLGNsYXNzTmFtZTpsKCkobyxvYS5sYXlvdXRCdXR0b25XcmFwLGEmJm9hLnNtYWxsV2lkdGgsb2EuYWNjZXNzaWJsZSksdHlwZToiYnV0dG9uIiwiYXJpYS1jaGVja2VkIjp0LCJhcmlhLWxhYmVsIjpzLCJkYXRhLXJvbGUiOnU/Im1lbnVpdGVtIjp2b2lkIDAscmVmOnYsdGFiSW5kZXg6bSxvbkNsaWNrOmZ1bmN0aW9uKCl7ZChzKX0sLi4uaH0saS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6bCgpKG9hLmxheW91dEJ1dHRvbix0JiZvYS5pc0FjdGl2ZSxhJiZvYS5zbWFsbFdpZHRoTGF5b3V0QnV0dG9uKX0saS5jcmVhdGVFbGVtZW50KHIuSWNvbix7aWNvbjpufSkpKX12YXIgcmE9bigyOTc4NDkpLGRhPW4oNjE1NDI0KSx1YT1uKDY3Mjg4NiksY2E9bigzNzYxNjMpLGhhPW4oNDU3OTg5KSx2YT1uKDY3MDI2NCksbWE9big1OTU2MjUpLHBhPW4oMjIxMTU4KSxmYT1uKDU5NDg0NiksZ2E9big5NDUyMzgpLGJhPW4oNDA4OTY0KSx3YT1uKDEyNDg1KSxDYT1uKDQ2NzE0NSksX2E9bigxMjYxNjYpLHlhPW4oMjczNzc1KSxTYT1uKDc2MzU1NSkseGE9big5MDYwNTApLEVhPW4oNzg5MTA4KSxNYT1uKDcyMDI5Myksa2E9big2NTYzMDQpLElhPW4oMTkxNTY1KSxUYT1uKDIyMzIyNyksQWE9big2NjMyMjIpLEhhPW4oNDIyNTk4KSxWYT1uKDc2NTU3MiksUmE9big5NzQ1NiksRmE9big2NDc2OTIpLExhPW4oNTYzNDg3KSxaYT1uKDczNzAxNyksTmE9big4NjA4NTIpLHphPW4oOTIwNTIpLEJhPW4oMTAwNDYzKSxPYT1uKDUyNzcyMyksRGE9big4MjY3MTkpLFdhPW4oOTk4Mjg2KSxQYT1uKDU2Mjk5NCksVWE9bigxNjQ0NSksamE9big4NjY4MjYpLEthPW4oNTc1MTAwKSxRYT1uKDg4MDg5MykscWE9big1MTM5MTIpLCRhPW4oOTQ0NTgpLFhhPW4oODY4NzY2KSxHYT1uKDU3NDE1OSksSmE9big2OTc3NTMpLFlhPW4oMzk2NzUwKTtjb25zdCBlaT17czpyYSwiMmgiOmRhLCIydiI6dWEsIjNoIjpjYSwiM3YiOmhhLCIzcyI6dmEsIjNyIjptYSwiMi0xIjpwYSwiMS0yIjpmYSw0OmdhLCI0diI6YmEsIjRoIjp3YSwiNHMiOkNhLCI0cy1sIjpfYSwiMS0zIjp5YSwiMy0xIjpTYSwiMi0yLWwiOnhhLCIyLTItciI6RWEsIjItMiI6TWEsIjEtNCI6a2EsIjVoIjpJYSwiNXYiOlRhLCI1cyI6QWEsIjVzLWwiOkhhLCIyLTMiOlZhLCIzLTIiOlJhLCI0LTEiOkZhLCIyLTMtbCI6TGEsIjItMy1yIjpaYSw2Ok5hLCI2aCI6emEsIjZ2IjpHYSwiNmMiOkJhLCIyLTQiOk9hLCI0LTIiOkRhLCI0LTMiOldhLCI3aCI6SmEsIjdzIjpuKDc0MjUwOSksODpQYSwiOGMiOlVhLCI4aCI6SmEsIjh2IjpHYSwiOXMiOmphLCI1LTQiOkthLCI5aCI6SmEsIjl2IjpHYSwiMTBjNSI6UWEsIjEwaCI6SmEsIjEwdiI6R2EsIjEyYzYiOnFhLCIxMmM0IjokYSwiMTJoIjpKYSwiMTRjNyI6WWEsIjE2YzgiOllhLCIxNmM0IjpYYX07dmFyIHRpPW4oMjU1MzI5KSxuaT1uKDM3NDMwNCksYWk9big0NTY1MjUpO2NvbnN0IGlpPSgwLHp0Lm1lcmdlVGhlbWVzKShuaS5tZW51SXRlbVN3aXRjaGVyTW9iaWxlVGhlbWUse2xhYmVsOmFpLnN3aXRjaGVyTGFiZWx9KQo7Y2xhc3Mgb2kgZXh0ZW5kcyBpLlB1cmVDb21wb25lbnR7Y29uc3RydWN0b3IoZSl7c3VwZXIoZSksdGhpcy5fb25DaGFuZ2U9KCk9Pnt0aGlzLnNldFN0YXRlKHtpc0NoZWNrZWQ6dGhpcy5wcm9wcy53YXRjaGVkVmFsdWUudmFsdWUoKX0pfSx0aGlzLl9oYW5kbGVDbGljaz0oKT0+e2NvbnN0e29uQ2xpY2s6ZSx3YXRjaGVkVmFsdWU6dH09dGhpcy5wcm9wcztlKHQpfSx0aGlzLnN0YXRlPXtpc0NoZWNrZWQ6dGhpcy5wcm9wcy53YXRjaGVkVmFsdWUudmFsdWUoKX19Y29tcG9uZW50RGlkTW91bnQoKXt0aGlzLnByb3BzLndhdGNoZWRWYWx1ZS5zdWJzY3JpYmUodGhpcy5fb25DaGFuZ2UpfWNvbXBvbmVudFdpbGxVbm1vdW50KCl7dGhpcy5wcm9wcy53YXRjaGVkVmFsdWUudW5zdWJzY3JpYmUodGhpcy5fb25DaGFuZ2UpfXJlbmRlcigpe2NvbnN0e3JvbGU6ZSxsYWJlbDp0LHZhbHVlOm4sY2xhc3NOYW1lOmF9PXRoaXMucHJvcHMse2lzQ2hlY2tlZDpvfT10aGlzLnN0YXRlO3JldHVybiBpLmNyZWF0ZUVsZW1lbnQodGkuTWVudUl0ZW1Td2l0Y2hlcix7cm9sZTplLHRoZW1lOmlpLGxhYmVsOnQsY2hlY2tlZDpvLHZhbHVlOm4sb25DaGFuZ2U6dGhpcy5faGFuZGxlQ2xpY2ssY2xhc3NOYW1lOmF9KX19dmFyIHNpPW4oOTA4MDM0KSxsaT1uKDUyNzIxOSkscmk9big0NTI2MTcpO2xldCBkaT1be2xheW91dHM6WyJzIl0sdGl0bGU6IjEifSx7bGF5b3V0czpbIjJoIiwiMnYiXSx0aXRsZToiMiJ9LHtsYXlvdXRzOlsiM2giLCIzdiIsIjNzIiwiM3IiLCIyLTEiLCIxLTIiXSx0aXRsZToiMyJ9LHtsYXlvdXRzOlsiNCIsIjR2IiwiNGgiLCI0cyIsIjRzLWwiLCIxLTMiLCIzLTEiLCIyLTItbCIsIjItMi1yIiwiMi0yIl0sdGl0bGU6IjQifSx7bGF5b3V0czpbIjEtNCIsIjVoIiwiNXYiLCI1cyIsIjVzLWwiLCIyLTMiLCIzLTIiLCI0LTEiLCIyLTMtbCIsIjItMy1yIl0sdGl0bGU6IjUifSx7bGF5b3V0czpbIjYiLCI2aCIsIjZ2IiwiNmMiLCIyLTQiLCI0LTIiXSx0aXRsZToiNiJ9LHtsYXlvdXRzOlsiNC0zIiwiN2giLCI3cyJdLHRpdGxlOiI3In0se2xheW91dHM6WyI4IiwiOGMiLCI4aCIsIjh2Il0sdGl0bGU6IjgifV07ZGk9Wy4uLmRpLHtsYXlvdXRzOlsiOXMiLCI1LTQiLCI5aCIsIjl2Il0sdGl0bGU6IjkifSx7bGF5b3V0czpbIjEwYzUiLCIxMGgiLCIxMHYiXSx0aXRsZToiMTAifSx7bGF5b3V0czpbIjEyYzYiLCIxMmM0IiwiMTJoIl0sdGl0bGU6IjEyIn0se2xheW91dHM6WyIxNGM3Il0sdGl0bGU6IjE0In0se2xheW91dHM6WyIxNmM4IiwiMTZjNCJdLHRpdGxlOiIxNiJ9XTtjb25zdCB1aT17bGF5b3V0VHlwZTp1LnQobnVsbCx2b2lkIDAsbig5Mjc3MDUpKSxzeW5jR3JvdXBUaXRsZTp1LnQobnVsbCx2b2lkIDAsbig3Mzk5MzYpKSxzeW5jQ3Jvc3NoYWlyTGFiZWw6dS50KG51bGwsdm9pZCAwLG4oNzM3MjE1KSksc3luY0Nyb3NzaGFpckhpbnQ6dS50KG51bGwsdm9pZCAwLG4oMTI0NzgpKSxzeW5jSW50ZXJ2YWxMYWJlbDp1LnQobnVsbCx2b2lkIDAsbigxMjc1NjkpKSxzeW5jSW50ZXJ2YWxIaW50OnUudChudWxsLHZvaWQgMCxuKDQwNTk0NikpLHN5bmNEYXRlUmFuZ2VMYWJlbDp1LnQobnVsbCx2b2lkIDAsbig0Mjc0OTQpKSxzeW5jRGF0ZVJhbmdlSGludDp1LnQobnVsbCx2b2lkIDAsbigxMDQ1NTkpKSxzeW5jU3ltYm9sTGFiZWw6dS50KG51bGwsdm9pZCAwLG4oNjEzMTYzKSksc3luY1N5bWJvbEhpbnQ6dS50KG51bGwsdm9pZCAwLG4oNDgyMjI1KSksc3luY1RyYWNrTGFiZWw6dS50KG51bGwsdm9pZCAwLG4oODYyMTE5KSksc3luY1RyYWNrSGludDp1LnQobnVsbCx2b2lkIDAsbig1MjAzODcpKX07ZnVuY3Rpb24gY2koZSl7Y29uc3R7Y2hhcnRXaWRnZXRDb2xsZWN0aW9uOnQsaXNTbWFsbFdpZHRoOm59PWUsW2Esb109KDAsaS51c2VTdGF0ZSkoInMiKSxbcyxyXT0oMCxzaS51c2VSb3dzTmF2aWdhdGlvbikoITApO3JldHVybigwLGkudXNlRWZmZWN0KSgoKCk9PntmdW5jdGlvbiBlKGUpe28oZXx8dC5sYXlvdXQudmFsdWUoKSl9cmV0dXJuIHQubGF5b3V0LnN1YnNjcmliZShlLHtjYWxsV2l0aExhc3Q6ITB9KSwoKT0+dC5sYXlvdXQudW5zdWJzY3JpYmUoZSl9KSxbdF0pLGkuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOnJpLmRyb3Bkb3dufSxpLmNyZWF0ZUVsZW1lbnQoImRpdiIsbnVsbCxpLmNyZWF0ZUVsZW1lbnQoImRpdiIse3JlZjpzLHJvbGU6Im1lbnUiLG9uS2V5RG93bjpyLCJkYXRhLW5hbWUiOiJsYXlvdXRzLWxpc3QifSxuJiZpLmNyZWF0ZUVsZW1lbnQoaWEuVG9vbFRpdGxlLHt0ZXh0OnVpLmxheW91dFR5cGV9KSxkaS5tYXAoKChlLHQpPT5pLmNyZWF0ZUVsZW1lbnQoc2Ese2tleTplLnRpdGxlLGlzU21hbGxXaWR0aDpuLHRpdGxlOmUudGl0bGUsc2VwYXJhdG9yOnQhPT1kaS5sZW5ndGgtMSYmaS5jcmVhdGVFbGVtZW50KGIuUG9wdXBNZW51U2VwYXJhdG9yLG51bGwpfSxlLmxheW91dHMubWFwKCgoZSx0KT0+aS5jcmVhdGVFbGVtZW50KGxhLHtrZXk6ZSxsYXlvdXQ6ZSxpY29uOmVpW2VdLG9uQ2xpY2s6dSxpc0FjdGl2ZTplPT09YSxpc1NtYWxsV2lkdGg6bixpc0ZpcnN0SXRlbUluUm93OjA9PT10LCJkYXRhLXFhLWlkIjpgbGF5b3V0cy1saXN0LWl0ZW0tJHtlfWB9KSkpKSkpKSksaS5jcmVhdGVFbGVtZW50KCJkaXYiLG51bGwsbiYmaS5jcmVhdGVFbGVtZW50KGIuUG9wdXBNZW51U2VwYXJhdG9yLHtzaXplOiJub3JtYWwifSkpLGkuY3JlYXRlRWxlbWVudCgiZGl2IixudWxsLGkuY3JlYXRlRWxlbWVudChpYS5Ub29sVGl0bGUse3RleHQ6dWkuc3luY0dyb3VwVGl0bGUsY2xhc3NOYW1lOmwoKShyaS5zeW5jQ2hhcnRzLG4mJnJpLm1vYmlsZSl9KSxmdW5jdGlvbigpe2NvbnN0IGU9bCgpKHJpLnN3aXRjaGVyLG4mJnJpLm1vYmlsZSk7cmV0dXJuIGkuY3JlYXRlRWxlbWVudCgiZGl2Iix7cm9sZToiZ3JpZCIsImFyaWEtbXVsdGlzZWxlY3RhYmxlIjohMCxjbGFzc05hbWU6cmkuc3luY0xpc3RXcmFwcGVyfSxpLmNyZWF0ZUVsZW1lbnQob2kse3JvbGU6InJvdyIsbGFiZWw6aS5jcmVhdGVFbGVtZW50KGhpLHt0aXRsZTp1aS5zeW5jU3ltYm9sTGFiZWwsCmhpbnQ6dWkuc3luY1N5bWJvbEhpbnQsaXNTbWFsbFdpZHRoOm59KSxvbkNsaWNrOmQsdmFsdWU6InN5bmNTeW1ib2xMYWJlbCIsd2F0Y2hlZFZhbHVlOnQubG9jay5zeW1ib2wsY2xhc3NOYW1lOmV9KSxpLmNyZWF0ZUVsZW1lbnQob2kse3JvbGU6InJvdyIsbGFiZWw6aS5jcmVhdGVFbGVtZW50KGhpLHt0aXRsZTp1aS5zeW5jSW50ZXJ2YWxMYWJlbCxoaW50OnVpLnN5bmNJbnRlcnZhbEhpbnQsaXNTbWFsbFdpZHRoOm59KSxvbkNsaWNrOmQsdmFsdWU6InN5bmNJbnRlcnZhbExhYmVsIix3YXRjaGVkVmFsdWU6dC5sb2NrLmludGVydmFsLGNsYXNzTmFtZTplfSksaS5jcmVhdGVFbGVtZW50KG9pLHtyb2xlOiJyb3ciLGxhYmVsOmkuY3JlYXRlRWxlbWVudChoaSx7dGl0bGU6dWkuc3luY0Nyb3NzaGFpckxhYmVsLGhpbnQ6dWkuc3luY0Nyb3NzaGFpckhpbnQsaXNTbWFsbFdpZHRoOm59KSx3YXRjaGVkVmFsdWU6dC5sb2NrLmNyb3NzaGFpcix2YWx1ZToic3luY0Nyb3NzaGFpckxhYmVsIixvbkNsaWNrOmQsY2xhc3NOYW1lOmV9KSxpLmNyZWF0ZUVsZW1lbnQob2kse3JvbGU6InJvdyIsbGFiZWw6aS5jcmVhdGVFbGVtZW50KGhpLHt0aXRsZTp1aS5zeW5jVHJhY2tMYWJlbCxoaW50OnVpLnN5bmNUcmFja0hpbnQsaXNTbWFsbFdpZHRoOm59KSx3YXRjaGVkVmFsdWU6dC5sb2NrLnRyYWNrVGltZSx2YWx1ZToic3luY1RyYWNrTGFiZWwiLG9uQ2xpY2s6ZCxjbGFzc05hbWU6ZX0pLGkuY3JlYXRlRWxlbWVudChvaSx7cm9sZToicm93IixsYWJlbDppLmNyZWF0ZUVsZW1lbnQoaGkse3RpdGxlOnVpLnN5bmNEYXRlUmFuZ2VMYWJlbCxoaW50OnVpLnN5bmNEYXRlUmFuZ2VIaW50LGlzU21hbGxXaWR0aDpufSksb25DbGljazpkLHZhbHVlOiJzeW5jRGF0ZVJhbmdlTGFiZWwiLHdhdGNoZWRWYWx1ZTp0LmxvY2suZGF0ZVJhbmdlLGNsYXNzTmFtZTplfSkpfSgpKSk7ZnVuY3Rpb24gZChlKXtjb25zdCB0PSFlLnZhbHVlKCk7ZS5zZXRWYWx1ZSh0KX1mdW5jdGlvbiB1KGUpeygwLHplLmdsb2JhbENsb3NlTWVudSkoKSx0LmxheW91dC52YWx1ZSgpPT09ZT90LnJldmVydFRvSW5saW5lKCk6dC5zZXRDaGFydExheW91dFdpdGhVbmRvKGUpfX1mdW5jdGlvbiBoaShlKXtjb25zdHt0aXRsZTp0LGhpbnQ6bixpc1NtYWxsV2lkdGg6YX09ZSxbbyxzXT0oMCxPZS51c2VSb3ZpbmdUYWJpbmRleEVsZW1lbnQpKG51bGwpO3JldHVybiBpLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpyaS5zd2l0Y2hMYWJlbFdyYXB9LGkuY3JlYXRlRWxlbWVudCgic3BhbiIse3JvbGU6InJvd2hlYWRlciIsY2xhc3NOYW1lOnJpLnN3aXRjaExhYmVsfSx0KSwhYSYmaS5jcmVhdGVFbGVtZW50KCJzcGFuIix7cm9sZToiY2VsbCIsY2xhc3NOYW1lOmwoKShyaS5pY29uV3JhcCwiYXBwbHktY29tbW9uLXRvb2x0aXAiLHJpLmFjY2Vzc2libGVMYWJlbCksdGl0bGU6biwiYXJpYS1sYWJlbCI6bixvbkZvY3VzOigpPT4oMCxhYS5zaG93T25FbGVtZW50KSgoMCxuZS5lbnN1cmVOb3ROdWxsKShvLmN1cnJlbnQpKSxvbkJsdXI6KCk9PigwLGFhLmhpZGUpKCksdGFiSW5kZXg6cyxyZWY6b30saS5jcmVhdGVFbGVtZW50KHIuSWNvbix7Y2xhc3NOYW1lOnJpLmluZm9JY29uLGljb246bGl9KSkpfWNvbnN0IHZpPSgwLHkucmVnaXN0cnlDb250ZXh0VHlwZSkoKTtjbGFzcyBtaSBleHRlbmRzIGkuUHVyZUNvbXBvbmVudHtjb25zdHJ1Y3RvcihlLHQpe3N1cGVyKGUsdCksdGhpcy5fb25VcGRhdGVMYXlvdXQ9ZT0+e2NvbnN0e2NoYXJ0V2lkZ2V0Q29sbGVjdGlvbjp0fT10aGlzLmNvbnRleHQ7dGhpcy5zZXRTdGF0ZSh7Y3VycmVudElkOmV8fHQubGF5b3V0LnZhbHVlKCl9KX0sdGhpcy5faGFuZGxlT3BlbkxheW91dD0oKT0+eygwLFgudHJhY2tFdmVudCkoIkdVSSIsIkNoYXJ0IEhlYWRlciBUb29sYmFyIiwic2VsZWN0IGxheW91dCIpLCgwLEQudHJhY2tCdXR0b25DbGljaykoInRvcCB0b29sYmFyIiwibGF5b3V0IHR5cGUiKX0sKDAseS52YWxpZGF0ZVJlZ2lzdHJ5KSh0LHtjaGFydFdpZGdldENvbGxlY3Rpb246by5hbnkuaXNSZXF1aXJlZH0pLHRoaXMuc3RhdGU9e2N1cnJlbnRJZDoicyJ9fWNvbXBvbmVudERpZE1vdW50KCl7Y29uc3R7Y2hhcnRXaWRnZXRDb2xsZWN0aW9uOmV9PXRoaXMuY29udGV4dDtlLmxheW91dC5zdWJzY3JpYmUodGhpcy5fb25VcGRhdGVMYXlvdXQse2NhbGxXaXRoTGFzdDohMH0pfWNvbXBvbmVudFdpbGxVbm1vdW50KCl7Y29uc3R7Y2hhcnRXaWRnZXRDb2xsZWN0aW9uOmV9PXRoaXMuY29udGV4dDtlLmxheW91dC51bnN1YnNjcmliZSh0aGlzLl9vblVwZGF0ZUxheW91dCl9cmVuZGVyKCl7Y29uc3R7Y2hhcnRXaWRnZXRDb2xsZWN0aW9uOmV9PXRoaXMuY29udGV4dCx7Y2xhc3NOYW1lOnQsaWQ6YX09dGhpcy5wcm9wcyx7Y3VycmVudElkOm99PXRoaXMuc3RhdGU7cmV0dXJuIGkuY3JlYXRlRWxlbWVudCh3Lk1hdGNoTWVkaWEse3J1bGU6Qy5EaWFsb2dCcmVha3BvaW50cy5UYWJsZXRTbWFsbH0sKHM9PmkuY3JlYXRlRWxlbWVudChtLlRvb2xiYXJNZW51QnV0dG9uLHtpZDphLGFycm93OiExLGNvbnRlbnQ6aS5jcmVhdGVFbGVtZW50KHIuSWNvbix7Y2xhc3NOYW1lOnJpLmljb24saWNvbjplaVtvXX0pLGNsYXNzTmFtZTpsKCkodCxyaS5idXR0b24pLGlzRHJhd2VyOnMsZHJhd2VyUG9zaXRpb246IkJvdHRvbSIsb25PcGVuOnRoaXMuX2hhbmRsZU9wZW5MYXlvdXQsdG9vbHRpcDp1LnQobnVsbCx2b2lkIDAsbig5NzQyMTQpKSwiZGF0YS1xYS1pZCI6InN0cmluZyI9PXR5cGVvZiBhPyJsYXlvdXRzLW1lbnUtYnV0dG9uIjp2b2lkIDB9LGkuY3JlYXRlRWxlbWVudChjaSx7Y2hhcnRXaWRnZXRDb2xsZWN0aW9uOmUsaXNTbWFsbFdpZHRoOnN9KSkpKX19bWkuY29udGV4dFR5cGU9dmk7Y29uc3QgcGk9ZT0+e2lmKChlPT4iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI9PT1lPy5uYW1lc3BhY2VVUkkpKGUpJiYidHJ1ZSIhPT1lLmRhdGFzZXQuaW50ZXJuYWxBbGxvd0tleWJvYXJkTmF2aWdhdGlvbil7ZS50YWJJbmRleD0tMSxlLmFyaWFEaXNhYmxlZD0idHJ1ZSIKO2ZvcihsZXQgdD0wO3Q8ZS5jaGlsZHJlbi5sZW5ndGg7dCsrKXBpKGUuY2hpbGRyZW4uaXRlbSh0KSl9fTtjbGFzcyBmaSBleHRlbmRzIGkuUHVyZUNvbXBvbmVudHtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5fd3JhcHBlckVsZW1lbnQ9bnVsbCx0aGlzLl9yZXNpemVPYnNlcnZlcj1udWxsLHRoaXMuX211dGF0aW9uT2JzZXJ2ZXI9bnVsbCx0aGlzLl91cGRhdGU9KCk9Pnt0aGlzLmZvcmNlVXBkYXRlKCl9LHRoaXMuX3NldFJlZj1lPT57dGhpcy5fd3JhcHBlckVsZW1lbnQ9ZX0sdGhpcy5faGFuZGxlTWVhc3VyZT0oW2VdKT0+e3RoaXMucHJvcHMud2lkdGguc2V0VmFsdWUoZS5jb250ZW50UmVjdC53aWR0aCl9LHRoaXMuX2hhbmRsZU11dGF0aW9uPShbZV0pPT57ImNoaWxkTGlzdCI9PT1lLnR5cGUmJnBpKHRoaXMucHJvcHMuZWxlbWVudCl9fWNvbXBvbmVudERpZE1vdW50KCl7Y29uc3R7ZWxlbWVudDplLGlzRmFrZTp0LHdpZHRoOm59PXRoaXMucHJvcHM7IXQmJnRoaXMuX3dyYXBwZXJFbGVtZW50Pyh0aGlzLl9yZXNpemVPYnNlcnZlcj1uZXcgUmVzaXplT2JzZXJ2ZXIodGhpcy5faGFuZGxlTWVhc3VyZSksdGhpcy5fbXV0YXRpb25PYnNlcnZlcj1uZXcgTXV0YXRpb25PYnNlcnZlcih0aGlzLl9oYW5kbGVNdXRhdGlvbiksdGhpcy5fd3JhcHBlckVsZW1lbnQuYXBwZW5kQ2hpbGQoZSksdGhpcy5fcmVzaXplT2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzLl93cmFwcGVyRWxlbWVudCksdGhpcy5fbXV0YXRpb25PYnNlcnZlci5vYnNlcnZlKGUse3N1YnRyZWU6ITAsY2hpbGRMaXN0OiEwfSkpOm4uc3Vic2NyaWJlKHRoaXMuX3VwZGF0ZSl9Y29tcG9uZW50V2lsbFVubW91bnQoKXtjb25zdHt3aWR0aDplLGlzRmFrZTp0fT10aGlzLnByb3BzO3QmJmUudW5zdWJzY3JpYmUodGhpcy5fdXBkYXRlKSx0aGlzLl9yZXNpemVPYnNlcnZlciYmdGhpcy5fd3JhcHBlckVsZW1lbnQmJnRoaXMuX3Jlc2l6ZU9ic2VydmVyLnVub2JzZXJ2ZSh0aGlzLl93cmFwcGVyRWxlbWVudCksdGhpcy5fbXV0YXRpb25PYnNlcnZlciYmKHRoaXMuX211dGF0aW9uT2JzZXJ2ZXIuZGlzY29ubmVjdCgpLHRoaXMuX211dGF0aW9uT2JzZXJ2ZXI9bnVsbCl9cmVuZGVyKCl7Y29uc3R7aXNGYWtlOmU9ITEsd2lkdGg6dH09dGhpcy5wcm9wcztyZXR1cm4gaS5jcmVhdGVFbGVtZW50KHAuVG9vbFdpZGdldFJvd1dyYXAse3JlZjp0aGlzLl9zZXRSZWYsc3R5bGU6ZT97d2lkdGg6dC52YWx1ZSgpfTp2b2lkIDAsImRhdGEtaXMtY3VzdG9tLWhlYWRlci1lbGVtZW50IjohMH0pfX1mdW5jdGlvbiBnaShlKXtjb25zdHtkaXNwbGF5TW9kZTp0LHBhcmFtczpufT1lO3JldHVybiBpLmNyZWF0ZUVsZW1lbnQobS5Ub29sYmFyTWVudUJ1dHRvbix7Y29udGVudDppLmNyZWF0ZUVsZW1lbnQodm4uVG9vbFdpZGdldENvbGxhcHNpYmxlQnV0dG9uLHtjb2xsYXBzZVdoZW46dm9pZCAwIT09bi5pY29uP3ZvaWQgMDpbXSxkaXNwbGF5TW9kZTp0LGljb246bi5pY29uLHRleHQ6bi50aXRsZSwiZGF0YS1uYW1lIjoiZHJvcGRvd24iLCJkYXRhLWlzLWN1c3RvbS1oZWFkZXItZWxlbWVudCI6ITB9KSxkcmF3ZXJQb3NpdGlvbjoiQm90dG9tIixkcmF3ZXJCcmVha3BvaW50OkMuRGlhbG9nQnJlYWtwb2ludHMuVGFibGV0U21hbGwsYXJyb3c6ITEsdG9vbHRpcDpuLnRvb2x0aXB9LG4uaXRlbXMubWFwKCgoZSx0KT0+aS5jcmVhdGVFbGVtZW50KGFlLlBvcHVwTWVudUl0ZW0se2tleTp0LGxhYmVsOmUudGl0bGUsaWNvbjplLmljb24sb25DbGljazooKT0+ZS5vblNlbGVjdCgpLCJkYXRhLW5hbWUiOiJkcm9wZG93bi1pdGVtIn0pKSkpfXZhciBiaT1uKDcxMTI4Myk7ZnVuY3Rpb24gd2koZSl7Y29uc3R7Y2xhc3NOYW1lOnQsdGl0bGU6biwuLi5hfT1lO3JldHVybiBpLmNyZWF0ZUVsZW1lbnQoJC5Ub29sYmFyQ29sbGFwc2libGVCdXR0b24sey4uLmEsY2xhc3NOYW1lOmwoKSh0LGJpLmN1c3RvbVRyYWRpbmdWaWV3U3R5bGVCdXR0b24sYmkud2l0aG91dEljb24pLGNvbGxhcHNlV2hlbjpbXSwiZGF0YS1uYW1lIjoiY3VzdG9tLXRyYWRpbmd2aWV3LXN0eWxlZC1idXR0b24iLHRvb2x0aXA6bn0pfXZhciBDaT1uKDYwOTUzNCk7Y29uc3QgX2k9KDAsb2UuaG90S2V5U2VyaWFsaXplKSh7a2V5czpbKDAsTS5odW1hblJlYWRhYmxlTW9kaWZpZXJzKShNLk1vZGlmaWVycy5Nb2QsITEpLCJLIl0sdGV4dDoiezB9ICsgezF9In0pLHlpPSgwLHkucmVnaXN0cnlDb250ZXh0VHlwZSkoKTtjbGFzcyBTaSBleHRlbmRzIGkuUHVyZUNvbXBvbmVudHtjb25zdHJ1Y3RvcihlLHQpe3N1cGVyKGUpLHRoaXMuX2RpYWxvZz1udWxsLHRoaXMuX3VwZGF0ZVN0YXRlPWU9Pnt0aGlzLnNldFN0YXRlKHtpc09wZW5lZDplfSl9LHRoaXMuX2hhbmRsZUNsaWNrPWU9Pntjb25zdHtvcGVuR2xvYmFsU2VhcmNoOnR9PXRoaXMuY29udGV4dDt0KHtzaG91bGRSZXR1cm5Gb2N1czooMCxHLmlzS2V5Ym9hcmRDbGljaykoZSl9KS50aGVuKChlPT57dGhpcy5fZGlhbG9nPy52aXNpYmxlKCkudW5zdWJzY3JpYmUodGhpcy5fdXBkYXRlU3RhdGUpLHRoaXMuX2RpYWxvZz1lLGUudmlzaWJsZSgpLnN1YnNjcmliZSh0aGlzLl91cGRhdGVTdGF0ZSl9KSl9LCgwLHkudmFsaWRhdGVSZWdpc3RyeSkodCx7b3Blbkdsb2JhbFNlYXJjaDpvLmFueS5pc1JlcXVpcmVkfSksdGhpcy5zdGF0ZT17aXNPcGVuZWQ6ITF9fWNvbXBvbmVudFdpbGxVbm1vdW50KCl7dGhpcy5fZGlhbG9nPy52aXNpYmxlKCkudW5zdWJzY3JpYmUodGhpcy5fdXBkYXRlU3RhdGUpfXJlbmRlcigpe3JldHVybiBpLmNyZWF0ZUVsZW1lbnQoaHQuVG9vbGJhckljb25CdXR0b24sey4uLnRoaXMucHJvcHMsaWNvbjpDaSxpc09wZW5lZDp0aGlzLnN0YXRlLmlzT3BlbmVkLG9uQ2xpY2s6dGhpcy5faGFuZGxlQ2xpY2ssImRhdGEtdG9vbHRpcC1ob3RrZXkiOl9pLHRvb2x0aXA6dS50KG51bGwse2NvbnRleHQ6InRvb2xiYXJfcXVpY2tfc2VhcmNoX3Rvb2x0aXAifSxuKDkwOTg0NykpfSl9fVNpLmNvbnRleHRUeXBlPXlpO3ZhciB4aT1uKDU2OTM5OCk7ZnVuY3Rpb24gRWkoKXtsZXQgZTtyZXR1cm4gZT0oMCwKYS5pc0ZlYXR1cmVzZXRFbmFibGVkKSgiaGVhZGVyX2xheW91dHRvZ2dsZSIpP21pOnZvaWQgMCx7QmFyczooMCxhLmlzRmVhdHVyZXNldEVuYWJsZWQpKCJoZWFkZXJfY2hhcnRfdHlwZSIpP3E6dm9pZCAwLENvbXBhcmU6KDAsYS5pc0ZlYXR1cmVzZXRFbmFibGVkKSgiaGVhZGVyX2NvbXBhcmUiKT9lZTp2b2lkIDAsQ3VzdG9tOmZpLEN1c3RvbVRyYWRpbmdWaWV3U3R5bGVkQnV0dG9uOndpLEZ1bGxzY3JlZW46KDAsYS5pc0ZlYXR1cmVzZXRFbmFibGVkKSgiaGVhZGVyX2Z1bGxzY3JlZW5fYnV0dG9uIikmJihDdC5DaGVja01vYmlsZS5hbnkoKSYmISgwLHhpLmlzRmVhdHVyZUVuYWJsZWQpKCJoaWRlX2Z1bGxzY3JlZW5fbW9kZV9vbl9tb2JpbGUiKXx8IUN0LkNoZWNrTW9iaWxlLmFueSgpKT90ZS5Ub29sV2lkZ2V0RnVsbHNjcmVlbjp2b2lkIDAsSW5kaWNhdG9yczooMCxhLmlzRmVhdHVyZXNldEVuYWJsZWQpKCJoZWFkZXJfaW5kaWNhdG9ycyIpP0FlOnZvaWQgMCxJbnRlcnZhbHM6KDAsYS5pc0ZlYXR1cmVzZXRFbmFibGVkKSgiaGVhZGVyX3Jlc29sdXRpb25zIik/Y3Q6dm9pZCAwLE9wZW5Qb3B1cDpmdCxQcm9wZXJ0aWVzOigwLGEuaXNGZWF0dXJlc2V0RW5hYmxlZCkoImhlYWRlcl9zZXR0aW5ncyIpJiYoMCxhLmlzRmVhdHVyZXNldEVuYWJsZWQpKCJzaG93X2NoYXJ0X3Byb3BlcnR5X3BhZ2UiKT93dDp2b2lkIDAsU2F2ZUxvYWQ6KDAsYS5pc0ZlYXR1cmVzZXRFbmFibGVkKSgiaGVhZGVyX3NhdmVsb2FkIik/TXQ6dm9pZCAwLFNjcmVlbnNob3Q6KDAsYS5pc0ZlYXR1cmVzZXRFbmFibGVkKSgiaGVhZGVyX3NjcmVlbnNob3QiKT9adDp2b2lkIDAsU3ltYm9sU2VhcmNoOigwLGEuaXNGZWF0dXJlc2V0RW5hYmxlZCkoImhlYWRlcl9zeW1ib2xfc2VhcmNoIik/Y246dm9pZCAwLFRlbXBsYXRlczooMCxhLmlzRmVhdHVyZXNldEVuYWJsZWQpKCJzdHVkeV90ZW1wbGF0ZXMiKT9Lbjp2b2lkIDAsRHJvcGRvd246Z2ksVW5kb1JlZG86KDAsYS5pc0ZlYXR1cmVzZXRFbmFibGVkKSgiaGVhZGVyX3VuZG9fcmVkbyIpP25hOnZvaWQgMCxMYXlvdXQ6ZSxRdWlja1NlYXJjaDpDdC5DaGVja01vYmlsZS5hbnkoKXx8KDAsQXQuaXNPbk1vYmlsZUFwcFBhZ2UpKCJhbnkiKXx8KDAsYS5pc0ZlYXR1cmVzZXRFbmFibGVkKSgid2lkZ2V0Iil8fCEoMCxhLmlzRmVhdHVyZXNldEVuYWJsZWQpKCJoZWFkZXJfcXVpY2tfc2VhcmNoIik/dm9pZCAwOlNpfX19LDY4ODYzMihlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtUb29sV2lkZ2V0RnVsbHNjcmVlbjooKT0+Z30pO3ZhciBhPW4oNzc5NDc0KSxpPW4oMjIxODk2KSxvPW4oOTE0NDg3KSxzPW4ubihvKSxsPW4oMTg1MjcxKSxyPW4oOTY3MDUpLGQ9big1Njk2NTIpLHU9bigzNDUxNTEpLGM9bigyMzU3MjQpLGg9bigyMTYwODMpLHY9big0MzQwMzcpLG09bigxNzU0NjcpO2NvbnN0IHA9KDAsdS5ob3RLZXlTZXJpYWxpemUpKHtrZXlzOlsoMCxjLmh1bWFuUmVhZGFibGVNb2RpZmllcnMpKGMuTW9kaWZpZXJzLlNoaWZ0LCExKSwiRiJdLHRleHQ6InswfSArIHsxfSJ9KSxmPSgwLGQucmVnaXN0cnlDb250ZXh0VHlwZSkoKTtjbGFzcyBnIGV4dGVuZHMgYS5QdXJlQ29tcG9uZW50e2NvbnN0cnVjdG9yKGUsdCl7c3VwZXIoZSx0KSx0aGlzLl91cGRhdGVTdGF0ZT0oKT0+e3RoaXMuc2V0U3RhdGUoe2lzRnVsbHNjcmVlbjp0aGlzLmNvbnRleHQuY2hhcnRXaWRnZXRDb2xsZWN0aW9uLmZ1bGxzY3JlZW4oKS52YWx1ZSgpfSl9LHRoaXMuX2hhbmRsZUNsaWNrPSgpPT57Y29uc3R7Y2hhcnRXaWRnZXRDb2xsZWN0aW9uOmV9PXRoaXMuY29udGV4dCx7Y2xpY2tBcmVhOnR9PXRoaXMucHJvcHM7ZS5mdWxsc2NyZWVuKCkudmFsdWUoKT9lLmV4aXRGdWxsc2NyZWVuKCk6ZS5zdGFydEZ1bGxzY3JlZW4oKSx0JiYoMCxoLnRyYWNrQnV0dG9uQ2xpY2spKHQsImZ1bGxzY3JlZW4gbW9kZSIpfSwoMCxkLnZhbGlkYXRlUmVnaXN0cnkpKHQse2NoYXJ0V2lkZ2V0Q29sbGVjdGlvbjppLmFueS5pc1JlcXVpcmVkfSksdGhpcy5zdGF0ZT17aXNGdWxsc2NyZWVuOnRoaXMuY29udGV4dC5jaGFydFdpZGdldENvbGxlY3Rpb24uZnVsbHNjcmVlbigpLnZhbHVlKCl9LHRoaXMuX3N1YnNjcmliZSgpfXJlbmRlcigpe2NvbnN0e2NsYXNzTmFtZTplLGlkOnQsaXNBY3RpdmU6aX09dGhpcy5wcm9wcyx7aXNGdWxsc2NyZWVuOm99PXRoaXMuc3RhdGU7cmV0dXJuIGEuY3JlYXRlRWxlbWVudChyLlRvb2xiYXJJY29uQnV0dG9uLHtpZDp0LGljb246bz9tOnYsb25DbGljazp0aGlzLl9oYW5kbGVDbGljayxjbGFzc05hbWU6cygpKGUpLHRvb2x0aXA6bC50KG51bGwsdm9pZCAwLG4oNTIyOTExKSksImRhdGEtdG9vbHRpcC1ob3RrZXkiOnAsaXNBY3RpdmU6aX0pfWNvbXBvbmVudFdpbGxVbm1vdW50KCl7dGhpcy5fdW5zdWJzY3JpYmUoKX1fc3Vic2NyaWJlKCl7dGhpcy5jb250ZXh0LmNoYXJ0V2lkZ2V0Q29sbGVjdGlvbi5mdWxsc2NyZWVuKCkuc3Vic2NyaWJlKHRoaXMuX3VwZGF0ZVN0YXRlKX1fdW5zdWJzY3JpYmUoKXt0aGlzLmNvbnRleHQuY2hhcnRXaWRnZXRDb2xsZWN0aW9uLmZ1bGxzY3JlZW4oKS51bnN1YnNjcmliZSh0aGlzLl91cGRhdGVTdGF0ZSl9fWcuY29udGV4dFR5cGU9Zn0sMzU5ODQ2KGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse2NvbGxhcHNlU2VwYXJhdG9yczooKT0+dSxzb3J0UmVzb2x1dGlvbnNCeUNhdGVnb3JpZXM6KCk9PnJ9KTt2YXIgYT1uKDE4NTI3MSksaT1uKDI1NDY3Myksbz1uKDYxODY3Mikscz1uKDczMjczMSk7Y29uc3QgbD17W2kuUmVzb2x1dGlvbktpbmQuVGlja3NdOmEudChudWxsLHtjb250ZXh0OiJpbnRlcnZhbF9ncm91cF9uYW1lIn0sbig4NzAzMDEpKSxbaS5SZXNvbHV0aW9uS2luZC5TZWNvbmRzXTphLnQobnVsbCx7Y29udGV4dDoiaW50ZXJ2YWxfZ3JvdXBfbmFtZSJ9LG4oNzUyNzAwKSksW2kuUmVzb2x1dGlvbktpbmQuTWludXRlc106YS50KG51bGwse2NvbnRleHQ6ImludGVydmFsX2dyb3VwX25hbWUifSxuKDIzMDkwOSkpLFtpLlNwZWNpYWxSZXNvbHV0aW9uS2luZC5Ib3Vyc106YS50KG51bGwse2NvbnRleHQ6ImludGVydmFsX2dyb3VwX25hbWUiCn0sbigxMjY5MTcpKSxbaS5SZXNvbHV0aW9uS2luZC5EYXlzXTphLnQobnVsbCx7Y29udGV4dDoiaW50ZXJ2YWxfZ3JvdXBfbmFtZSJ9LG4oMjAyODkxKSksW2kuUmVzb2x1dGlvbktpbmQuV2Vla3NdOmEudChudWxsLHtjb250ZXh0OiJpbnRlcnZhbF9ncm91cF9uYW1lIn0sbig0MzM5OTQpKSxbaS5SZXNvbHV0aW9uS2luZC5Nb250aHNdOmEudChudWxsLHtjb250ZXh0OiJpbnRlcnZhbF9ncm91cF9uYW1lIn0sbigzNDQ3NDcpKSxbaS5SZXNvbHV0aW9uS2luZC5SYW5nZV06YS50KG51bGwse2NvbnRleHQ6ImludGVydmFsX2dyb3VwX25hbWUifSxuKDI4ODAzNCkpLFtpLlJlc29sdXRpb25LaW5kLkludmFsaWRdOiIifTtmdW5jdGlvbiByKGUpe2NvbnN0IHQ9ZChpLlJlc29sdXRpb25LaW5kLlRpY2tzKSxuPWQoaS5SZXNvbHV0aW9uS2luZC5TZWNvbmRzKSxhPWQoaS5SZXNvbHV0aW9uS2luZC5NaW51dGVzKSxvPWQoaS5TcGVjaWFsUmVzb2x1dGlvbktpbmQuSG91cnMpLHM9ZChpLlJlc29sdXRpb25LaW5kLkRheXMpLGw9ZChpLlJlc29sdXRpb25LaW5kLlJhbmdlKTtlLmZvckVhY2goKGU9Pntjb25zdCByPWkuSW50ZXJ2YWwucGFyc2UoZSk7ci5pc01pbnV0ZUhvdXJzKCk/by5pdGVtcy5wdXNoKGUpOnIuaXNNaW51dGVzKCk/KDAsaS5pc0hvdXIpKE51bWJlcihyLm11bHRpcGxpZXIoKSkpP28uaXRlbXMucHVzaChlKTphLml0ZW1zLnB1c2goZSk6ci5pc1NlY29uZHMoKT9uLml0ZW1zLnB1c2goZSk6ci5pc0RXTSgpP3MuaXRlbXMucHVzaChlKTpyLmlzUmFuZ2UoKT9sLml0ZW1zLnB1c2goZSk6ci5pc1RpY2tzKCkmJnQuaXRlbXMucHVzaChlKX0pKTtyZXR1cm5bdCxuLGEsbyxzLGxdLmZpbHRlcigoZT0+MCE9PWUuaXRlbXMubGVuZ3RoKSl9ZnVuY3Rpb24gZChlLHQ9ITEpe3JldHVybntpZDplLG5hbWU6bFtlXSxpdGVtczpbXSxtYXlPbWl0U2VwYXJhdG9yOnR9fWZ1bmN0aW9uIHUoZSl7bGV0IHQ9ITE7cmV0dXJuIGUuZmlsdGVyKCgoZSxuLGEpPT57bGV0IGk9ITA7Y29uc3QgbD1lLnR5cGU9PT1vLlBvcHVwTWVudVNlcGFyYXRvcnx8ZS50eXBlPT09cy5EaXZpZGVyTGlzdEl0ZW07cmV0dXJuIGwmJigwIT09biYmbiE9PWEubGVuZ3RoLTF8fChpPSExKSx0JiYoaT0hMSkpLHQ9bCxpfSkpfX0sOTA2NjgzKGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse1Rvb2xXaWRnZXRTYXZlTG9hZFZpZXc6KCk9Pk1lfSk7dmFyIGE9bigxODUyNzEpLGk9big3Nzk0NzQpLG89big5MTQ0ODcpLHM9bi5uKG8pLGw9big1NTcwNjUpLHI9big5MzAyMzEpLGQ9bigyMzU3MjQpLHU9bigzMTg5NzQpLGM9bigxNTM3MzQpLGg9big4NTAxMDgpLHY9big2MTg2NzIpLG09big4NjQ2ODEpLHA9bigxODYwOTcpLGY9big3NzEyODUpLGc9bigzODcyMzEpLGI9big1MTA1OTgpLHc9big3MzI3MzEpLEM9bigzMTMxMTApLF89big3MjM5ODYpLHk9big4MDA5MTQpLFM9big2Mzg4NzIpLHg9bigyNTUzMjkpLEU9KG4oODI5MTgwKSxuKDIyMTg5NikpLE09big1Njk2NTIpLGs9big2MjcwNDUpLEk9big1NTgwNzUpO2NvbnN0IFQ9KDAsTS5yZWdpc3RyeUNvbnRleHRUeXBlKSgpO2NsYXNzIEEgZXh0ZW5kcyBpLlB1cmVDb21wb25lbnR7Y29uc3RydWN0b3IoZSx0KXtzdXBlcihlLHQpLHRoaXMuX2hhbmRsZUFjdGl2ZT1lPT57dGhpcy5zZXRTdGF0ZSh7aXNBY3RpdmU6dGhpcy5wcm9wcy5pdGVtLmlkPT09ZX0pfSx0aGlzLl9oYW5kbGVBcHBseT0oKT0+e3RoaXMucHJvcHMuaXRlbS5vcGVuQWN0aW9uKCExKX0sKDAsTS52YWxpZGF0ZVJlZ2lzdHJ5KSh0LHtjaGFydFdpZGdldENvbGxlY3Rpb246RS5hbnkuaXNSZXF1aXJlZH0pLHRoaXMuc3RhdGU9e2lzQWN0aXZlOmUuaXRlbS5hY3RpdmUoKX19Y29tcG9uZW50RGlkTW91bnQoKXt0aGlzLmNvbnRleHQuY2hhcnRXaWRnZXRDb2xsZWN0aW9uPy5tZXRhSW5mby5pZC5zdWJzY3JpYmUodGhpcy5faGFuZGxlQWN0aXZlKX1jb21wb25lbnRXaWxsVW5tb3VudCgpe3RoaXMuY29udGV4dC5jaGFydFdpZGdldENvbGxlY3Rpb24/Lm1ldGFJbmZvLmlkLnVuc3Vic2NyaWJlKHRoaXMuX2hhbmRsZUFjdGl2ZSl9cmVuZGVyKCl7Y29uc3R7aXNBY3RpdmU6ZX09dGhpcy5zdGF0ZSx7aXRlbTp0LGNsYXNzTmFtZTpufT10aGlzLnByb3BzLGE9dC51cmw/KDAsSS5nZW5lcmF0ZUNoYXJ0VXJsKSh7Y2hhcnRJZDp0LnVybH0pOnZvaWQgMDtyZXR1cm4gaS5jcmVhdGVFbGVtZW50KGsuRmF2b3JpdGVJdGVtLHtpdGVtOnQsaXNBY3RpdmU6ZSx0YXJnZXQ6Il9zZWxmIixocmVmOmEsb25BcHBseTp0aGlzLl9oYW5kbGVBcHBseSxjbGFzc05hbWU6bn0pfX1BLmNvbnRleHRUeXBlPVQ7dmFyIEg9big0MzU0NDcpO2Z1bmN0aW9uIFYoZSl7Y29uc3R7ZmF2b3JpdGVzOnQsZGlzcGxheU1vZGU6bn09ZTtyZXR1cm4gaS5jcmVhdGVFbGVtZW50KGkuRnJhZ21lbnQsbnVsbCx0Lm1hcCgoKGUsdCxhKT0+aS5jcmVhdGVFbGVtZW50KEEse2tleTplLmlkLGl0ZW06ZSxjbGFzc05hbWU6cygpKHtbSC5mdWxsXToiZnVsbCI9PT1uLFtILm1lZGl1bV06Im1lZGl1bSI9PT1uLFtILmZpcnN0XTowPT09dCxbSC5sYXN0XTp0PT09YS5sZW5ndGgtMX0pfSkpKSl9dmFyIFI9bigzNDUxNTEpLEY9bigyNzMzMTApLEw9big5OTU3MTkpLFo9bigzNzQzMDQpLE49bigzOTE1MDQpLHo9big3NjI4NTEpLEI9big2NDkxNjYpLE89bigxNzY0MzIpO2Z1bmN0aW9uIEQoZSl7Y29uc3R7aXNWaXNpYmxlOnQsaXNMb2FkaW5nOm4sbGFiZWw6YSxjbGFzc05hbWU6b309ZTtyZXR1cm4gaS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOnMoKShPLnN0YXRlVGl0bGUsIXQmJiFuJiZPLmhpZGRlbixvKX0sbj9pLmNyZWF0ZUVsZW1lbnQoQi5Mb2FkZXIse2NsYXNzTmFtZTpPLmxvYWRlcixzaXplOiJzbWFsbCIsc3RhdGljUG9zaXRpb246ITB9KTphKX12YXIgVz1uKDY2NjQ0MSksUD1uKDk3OTc0MiksVT1uKDEwMzE2MCksaj1uKDYxOTEwNSksSz1uKDExNDMwNyk7Y29uc3QgUT0oMCxnLm1lcmdlVGhlbWVzKShjLkRFRkFVTFRfUE9QVVBfTUVOVV9JVEVNX1RIRU1FLHt0b29sYm94OksudG9vbGJveH0pLHE9KDAsCmcubWVyZ2VUaGVtZXMpKGMuREVGQVVMVF9QT1BVUF9NRU5VX0lURU1fVEhFTUUse3Rvb2xib3g6Sy50b29sYm94U21hbGx9KTtmdW5jdGlvbiAkKGUpe2NvbnN0e2xheW91dDp0LGNoYXJ0SWQ6bixmYXZvcml0ZXM6YSxpc1RhYmxldFNtYWxsOm8saXNOZXdWaWV3Omx9PWUscj1OdW1iZXIodC5pZCk9PT1uLHU9Qm9vbGVhbihhPy5bdC5pZF0pLGM9YC9jaGFydC8ke3QudXJsfSR7d2luZG93LmxvY2F0aW9uLnNlYXJjaH1gLHY9Qm9vbGVhbihXLnNob3dGYXZvcml0ZUxheW91dHMmJmEpLG09dj8xOjA7cmV0dXJuIGw/aS5jcmVhdGVFbGVtZW50KEMuTWVudUl0ZW0se2tleTp0LmlkLHJvbGU6InJvdyIsdGl0bGU6aS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOnMoKSghbyYmSy5lbGxpcHNpcywiYXBwbHktb3ZlcmZsb3ctdG9vbHRpcCIpLHJvbGU6ImdyaWRjZWxsIiwiYXJpYS1jb2xzcGFuIjoyLW19LGkuY3JlYXRlRWxlbWVudChiLkxlYWRpbmdFbW9qaVRleHQse3RleHQ6dC5uYW1lfSkpLGRlc2NyaXB0aW9uOmAke3Quc3ltYm9sfSwgJHt0LmludGVydmFsfWAsImRhdGEtcm9sZSI6Im1lbnVpdGVtIixlbGxpcHNpczohbyxkYXRhUWFJZDoic2F2ZS1sb2FkLW1lbnUtaXRlbS1yZWNlbnQiLG9uQ2xpY2s6ZT0+ZihyLGUpLHNlbGVjdGVkOnIsaHJlZjpyP3ZvaWQgMDpjLHJpZ2h0U2xvdDp2P2kuY3JlYXRlRWxlbWVudChVLkNvbnRleHRBY3Rpb24se2tleToiZmF2b3JpdGUiLGhpZGVJZk5vSG92ZXI6IXUscm9sZToiZ3JpZGNlbGwifSxpLmNyZWF0ZUVsZW1lbnQoUC5GYXZvcml0ZUljb25CdXR0b24se2lzRmF2b3JpdGU6dSxvbkNsaWNrOnB9KSk6dm9pZCAwfSk6aS5jcmVhdGVFbGVtZW50KGguQWNjZXNzaWJsZU1lbnVJdGVtLHtrZXk6dC5pZCxyb2xlOiJyb3ciLGNsYXNzTmFtZTpzKCkoSy5sYXlvdXRJdGVtV3JhcCxvJiZLLmxheW91dEl0ZW1XcmFwU21hbGwsciYmSy5hY3RpdmUpLGlzQWN0aXZlOnIsbGFiZWxSb3dDbGFzc05hbWU6cygpKEsubGFiZWxSb3csbyYmSy5wb3B1cEl0ZW1Sb3dUYWJsZXRTbWFsbCksbGluazpyP3ZvaWQgMDpjLG9uQ2xpY2s6ZixvbkNsaWNrQXJnOnIsbGFiZWw6aS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6Sy5sYXlvdXRJdGVtfSxpLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpzKCkoSy5sYXlvdXRUaXRsZSxvJiZLLmxheW91dFRpdGxlU21hbGwpfSxpLmNyZWF0ZUVsZW1lbnQoYi5MZWFkaW5nRW1vamlUZXh0LHt0ZXh0OnQubmFtZX0pKSxpLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpLLmxheW91dE1ldGF9LHQuc3ltYm9sLCIsICIsdC5pbnRlcnZhbCkpLHRvb2xib3g6dj9pLmNyZWF0ZUVsZW1lbnQoai5NZW51RmF2b3JpdGVCdXR0b24se2lzQWN0aXZlOnIsaXNGaWxsZWQ6dSxvbkNsaWNrOnB9KTp2b2lkIDAsdGhlbWU6bz9xOlEsc2hvd1Rvb2xib3hPbkZvY3VzOiEwLHNob3dUb29sYm94T25Ib3ZlcjohdX0pO2Z1bmN0aW9uIHAoZSl7ZT8ucHJldmVudERlZmF1bHQoKSx0LmZhdm9yaXRlQWN0aW9uKCl9ZnVuY3Rpb24gZihlLG4pe3J8fCgwLGQubW9kaWZpZXJzRnJvbUV2ZW50KShuKSE9PWQuTW9kaWZpZXJzLk5vbmV8fCJidXR0b24iaW4gbiYmMT09PW4uYnV0dG9ufHwobi5wcmV2ZW50RGVmYXVsdCgpLHQub3BlbkFjdGlvbighMSkpfX12YXIgWD1uKDEzODYzOCksRz1uKDExNzMxMyksSj1uKDE4MjMwOCksWT1uKDEzODk5NCksZWU9bigzNDQ3ODUpLHRlPW4oMzcyMjM4KSxuZT1uKDc2MTE3NSk7ZnVuY3Rpb24gYWUoe2lzVGFibGV0U21hbGw6ZSxpc05ld1ZpZXc6dH0pe2NvbnN0W28sbF09KDAsSi51c2VSb3ZpbmdUYWJpbmRleEVsZW1lbnQpKG51bGwpLHI9YS50KG51bGwsdm9pZCAwLG4oNjY2OTQ0KSk7cmV0dXJuIHQ/aS5jcmVhdGVFbGVtZW50KGkuRnJhZ21lbnQsbnVsbCxpLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtyb2xlOiJyb3doZWFkZXIiLGNsYXNzTmFtZTpuZS50aXRsZVNoYXJpbmdMYWJlbH0sYS50KG51bGwse2NvbnRleHQ6Im1lbnVfaXRlbSJ9LG4oMjI0ODkpKSksIWUmJiEoMCxHLmlzT25Nb2JpbGVBcHBQYWdlKSgiYW55IikmJmkuY3JlYXRlRWxlbWVudCgic3BhbiIse3JvbGU6ImdyaWRjZWxsIixjbGFzc05hbWU6bmUuaGludH0saS5jcmVhdGVFbGVtZW50KFkuSWNvblF1ZXN0aW9uSW5mb3JtYXRpb24se2ljb246ImluZm8iLGFyaWFMYWJlbDpyLHRvb2x0aXA6cixyZWY6byx0YWJJbmRleDpsfSkpKTppLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpuZS5zaGFyaW5nTGFiZWxXcmFwfSxpLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtyb2xlOiJyb3doZWFkZXIiLGNsYXNzTmFtZTpuZS50aXRsZVNoYXJpbmdMYWJlbH0sYS50KG51bGwse2NvbnRleHQ6Im1lbnVfaXRlbSJ9LG4oNzQ1Njc2KSkpLCFlJiYhKDAsRy5pc09uTW9iaWxlQXBwUGFnZSkoImFueSIpJiZpLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtyb2xlOiJncmlkY2VsbCIsY2xhc3NOYW1lOnMoKShuZS5pY29uV3JhcCwiYXBwbHktY29tbW9uLXRvb2x0aXAiLG5lLmFjY2Vzc2libGVMYWJlbCksdGl0bGU6ciwiYXJpYS1sYWJlbCI6cixvbkZvY3VzOigpPT4oMCxlZS5zaG93T25FbGVtZW50KSgoMCxYLmVuc3VyZU5vdE51bGwpKG8uY3VycmVudCkpLG9uQmx1cjooKT0+KDAsZWUuaGlkZSkoKSx0YWJJbmRleDpsLHJlZjpvfSxpLmNyZWF0ZUVsZW1lbnQoRi5JY29uLHtjbGFzc05hbWU6bmUuaW5mb0ljb24saWNvbjp0ZX0pKSl9dmFyIGllPW4oMjE2MDgzKSxvZT1uKDQyOTQ2NSksc2U9bigyNjE5MzYpLGxlPW4oMjE1MjkyKSxyZT1uKDExMjY2NSksZGU9big1ODM4NDIpLHVlPW4oNzgzMjU0KSxjZT1uKDYyNTE1Nik7Y29uc3QgaGU9KDAsaS5mb3J3YXJkUmVmKSgoKGUsdCk9Pntjb25zdHtyb2xlOmEsaXNTbWFsbDpvLG9uQ2xpY2s6bH09ZSxbcix1XT0oMCxKLnVzZVJvdmluZ1RhYmluZGV4RWxlbWVudCkodCk7cmV0dXJuIGkuY3JlYXRlRWxlbWVudCgiZGl2Iix7cmVmOnIscm9sZTphLGNsYXNzTmFtZTpzKCkoY2UuY29weUxpbmssbyYmY2UuY29weUxpbmtNb2JpbGUsY2UuYWNjZXNzaWJsZUxhYmVsKSxvbkNsaWNrOmwsCnRhYkluZGV4OnUsb25LZXlEb3duOmZ1bmN0aW9uKGUpe2lmKGUudGFyZ2V0IT09ZS5jdXJyZW50VGFyZ2V0KXJldHVybjtjb25zdCB0PSgwLGQuaGFzaEZyb21FdmVudCkoZSk7MTMhPT10JiYzMiE9PXR8fChlLnByZXZlbnREZWZhdWx0KCksci5jdXJyZW50IGluc3RhbmNlb2YgSFRNTEVsZW1lbnQmJnIuY3VycmVudC5jbGljaygpKX0sImRhdGEtcm9sZSI6Im1lbnVpdGVtIn0sdWUudChudWxsLHZvaWQgMCxuKDYwODk5MikpKX0pKTt2YXIgdmU9bigzNDc5NzMpLG1lPW4oNzYxOTcxKSxwZT1uKDE0ODM4NyksZmU9big0NzA5MDEpLGdlPW4oNDY1MDY0KSxiZT1uKDczNTQ2Mik7Y29uc3Qgd2U9KDAsci5pc0ZlYXR1cmVzZXRFbmFibGVkKSgid2lkZ2V0IiksQ2U9KCgwLHIuaXNGZWF0dXJlc2V0RW5hYmxlZCkoInNhdmVfc2hvcnRjdXQiKSwoMCxnLm1lcmdlVGhlbWVzKShMLkRFRkFVTFRfVE9PTF9XSURHRVRfQlVUVE9OX1RIRU1FLGdlKSksX2U9KDAsZy5tZXJnZVRoZW1lcykoYy5ERUZBVUxUX1BPUFVQX01FTlVfSVRFTV9USEVNRSx7c2hvcnRjdXQ6ZmUuc2hvcnRjdXQsd2l0aEljb246ZmUud2l0aEljb259KSx5ZT1hLnQobnVsbCx2b2lkIDAsbig2MTgwMzkpKSxTZT1hLnQobnVsbCx2b2lkIDAsbig5MzkwNzQpKSx4ZT1bXSxFZT0oMCxSLmhvdEtleVNlcmlhbGl6ZSkoe2tleXM6WygwLGQuaHVtYW5SZWFkYWJsZU1vZGlmaWVycykoZC5Nb2RpZmllcnMuTW9kLCExKSwiUyJdLHRleHQ6InswfSArIHsxfSJ9KTtjbGFzcyBNZSBleHRlbmRzIGkuUHVyZUNvbXBvbmVudHtjb25zdHJ1Y3RvcihlKXtzdXBlcihlKSx0aGlzLl9jb3B5RWxSZWY9aS5jcmVhdGVSZWYoKSx0aGlzLl9tZW51UmVmPWkuY3JlYXRlUmVmKCksdGhpcy5faGFuZGxlQ29weUxpbmtDbGljaz0oKT0+e2NvbnN0IGU9d2luZG93LmxvY2F0aW9uLmhyZWY7cmV0dXJuKDAsbC5nZXRDbGlwYm9hcmQpKCkud3JpdGVUZXh0KGUpLnRoZW4oKCgpPT57dGhpcy5fY29weUVsUmVmLmN1cnJlbnQmJigoMCxzZS5zaG93VG9vbHRpcCkodGhpcy5fY29weUVsUmVmLmN1cnJlbnQse2luaXRpYWxEZWxheTowLGxlYXZlT25Nb3VzZU91dDohMH0pLCgwLHNlLmRlYm91bmNlSGlkZVRvb2x0aXApKCkpfSkpfSx0aGlzLl9oYW5kbGVDbG9uZUNsaWNrPSgpPT57dGhpcy5wcm9wcy5vbkNsb25lQ2hhcnQ/LigpLCgwLGllLnRyYWNrQnV0dG9uQ2xpY2spKCJ0b3AgdG9vbGJhciIsImNvcHkiLHZvaWQgMCwhMCl9LHRoaXMuX2hhbmRsZVNhdmVDbGljaz0oKT0+e3RoaXMucHJvcHMub25TYXZlQ2hhcnQ/LigpLHRoaXMuX3RyYWNrQ2xpY2soKX0sdGhpcy5faGFuZGxlU2F2ZUFzQ2xpY2s9KCk9Pnt0aGlzLnByb3BzLm9uU2F2ZUFzQ2hhcnQ/LigpLCgwLGllLnRyYWNrQnV0dG9uQ2xpY2spKCJtYW5hZ2UgbGF5b3V0IiwibWFrZSBhIGNvcHkiLHZvaWQgMCwhMCl9LHRoaXMuc3RhdGU9e2lzU2F2aW5nOiExfX1jb21wb25lbnREaWRVcGRhdGUoZSx0KXtlLmlzUHJvY2Vzc2luZyYmIXRoaXMucHJvcHMuaXNQcm9jZXNzaW5nJiYoY2xlYXJUaW1lb3V0KHRoaXMuX3RpbWVvdXQpLHRoaXMuX3RpbWVvdXQ9dm9pZCAwLHRoaXMuc2V0U3RhdGUoe2lzU2F2aW5nOiExfSkpLCghZS5yZWNlbnRJdGVtcz8ubGVuZ3RoJiZ0aGlzLnByb3BzLnJlY2VudEl0ZW1zPy5sZW5ndGh8fGUuaXNTaGFyaW5nRW5hYmxlZCE9PXRoaXMucHJvcHMuaXNTaGFyaW5nRW5hYmxlZCkmJnRoaXMuX21lbnVSZWYuY3VycmVudD8udXBkYXRlKCksIWUuaXNQcm9jZXNzaW5nJiZ0aGlzLnByb3BzLmlzUHJvY2Vzc2luZyYmKHRoaXMuX3RpbWVvdXQ9c2V0VGltZW91dCgoKCk9Pnt0aGlzLnNldFN0YXRlKHtpc1NhdmluZzohMH0pfSksMWUzKSl9Y29tcG9uZW50V2lsbFVubW91bnQoKXt0aGlzLl90aW1lb3V0JiZjbGVhclRpbWVvdXQodGhpcy5fdGltZW91dCl9cmVuZGVyKCl7Y29uc3R7aWQ6ZSxpc1JlYWRPbmx5OnQsZGlzcGxheU1vZGU6byxpc1Byb2Nlc3Npbmc6bCx0aXRsZTpyLHdhc0NoYW5nZXM6ZCxoaWRlTWVudTp1LGlzVGFibGV0U21hbGw6Yyxvbk9wZW5NZW51OmgsZGF0YU5hbWVTYXZlTWVudTp2LGlzU2F2ZURpYWxvZ09wZW5lZDpnLGNoYXJ0TGlzdDp3LGZhdm9yaXRlczpDLGlzTmV3VmlldzpffT10aGlzLnByb3BzLHk9IXQmJiF1O2xldCBTPVtdO1cuc2hvd0Zhdm9yaXRlTGF5b3V0cyYmdyYmQyYmKFM9dy5maWx0ZXIoKGU9PkNbZS5pZF0pKS5zb3J0KCgoZSx0KT0+ZS5uYW1lLmxvY2FsZUNvbXBhcmUodC5uYW1lKSkpKTtjb25zdCB4PSEoZHx8IXJ8fHRoaXMuc3RhdGUuaXNTYXZpbmcpLEU9aS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6ZmUudGV4dFdyYXB9LGkuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZTpmZS50ZXh0fSxpLmNyZWF0ZUVsZW1lbnQoYi5MZWFkaW5nRW1vamlUZXh0LHt0ZXh0OnJ8fGEudChudWxsLHZvaWQgMCxuKDYxMjY1NSkpfSkpLGkuY3JlYXRlRWxlbWVudChELHtpc0xvYWRpbmc6dGhpcy5zdGF0ZS5pc1NhdmluZyxpc1Zpc2libGU6ZCxsYWJlbDphLnQobnVsbCx7Y29udGV4dDoic2F2ZV9idXR0b24ifSxuKDQ3Mzc4MikpfSkpO3JldHVybiBpLmNyZWF0ZUVsZW1lbnQobS5Ub29sV2lkZ2V0Um93V3JhcCxudWxsLHQ/aS5jcmVhdGVFbGVtZW50KG0uVG9vbFdpZGdldFJvd1dyYXAsbnVsbCxpLmNyZWF0ZUVsZW1lbnQocC5Ub29sYmFyQ29sbGFwc2libGVCdXR0b24se2lkOmUsZGlzcGxheU1vZGU6byxpY29uOmkuY3JlYXRlRWxlbWVudChGLkljb24se2ljb246dmV9KSxpc0Rpc2FibGVkOmwsb25DbGljazp0aGlzLl9oYW5kbGVDbG9uZUNsaWNrLHRleHQ6YS50KG51bGwsdm9pZCAwLG4oMTI5MjE0KSksY29sbGFwc2VXaGVuOnhlLHRvb2x0aXA6eWV9KSk6aS5jcmVhdGVFbGVtZW50KG0uVG9vbFdpZGdldFJvd1dyYXAsbnVsbCxpLmNyZWF0ZUVsZW1lbnQocC5Ub29sYmFyQ29sbGFwc2libGVCdXR0b24se2lkOmUsImRhdGEtcWEtaWQiOmUsY2xhc3NOYW1lOnMoKShmZS5idXR0b24seSYmZmUuYnV0dG9uU21hbGxQYWRkaW5nKSxkaXNwbGF5TW9kZTpvLCJhcmlhLWRpc2FibGVkIjohIXh8fHZvaWQgMCxpc0Rpc2FibGVkOmwsCm9uQ2xpY2s6eD92b2lkIDA6dGhpcy5faGFuZGxlU2F2ZUNsaWNrLHRleHQ6RSx0aGVtZTpDZSxjb2xsYXBzZVdoZW46eGUsaXNPcGVuZWQ6Zyx0b29sdGlwOng/YS50KG51bGwsdm9pZCAwLG4oMzkzOSkpOmEudChudWxsLHZvaWQgMCxuKDgyMDMpKSwiZGF0YS10b29sdGlwLWhvdGtleSI6d2V8fHg/IiI6RWV9KSx5JiZpLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpmZS5tZW51QnRuV3JhcH0saS5jcmVhdGVFbGVtZW50KGYuVG9vbGJhck1lbnVCdXR0b24seyJkYXRhLW5hbWUiOnYsYXJyb3c6ITAscmVmOnRoaXMuX21lbnVSZWYsaXNEcmF3ZXI6YyxkcmF3ZXJQb3NpdGlvbjoiQm90dG9tIixvbkNsaWNrOnRoaXMuX3RyYWNrQ2xpY2ssb25PcGVuOmgsdG9vbHRpcDphLnQobnVsbCx2b2lkIDAsbigyMzY2NjApKSxtZW51Q2xhc3NOYW1lOmZlLm1lbnUsbWVudVJvbGU6ImdyaWQiLGVuYWJsZVNjcm9sbENvbXBlbnNhdGlvbjpffSxpLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpzKCkoIWMmJmZlLmRlc2t0b3AsXyYmZmUubmV3TWVudVdyYXBwZXIpfSx0aGlzLl9yZW5kZXJNZW51SXRlbXMoQm9vbGVhbihjKSxfKSkpKSxTLmxlbmd0aD4wJiZpLmNyZWF0ZUVsZW1lbnQoVix7ZGlzcGxheU1vZGU6byxmYXZvcml0ZXM6U30pKSl9X3JlbmRlclNlcGFyYXRvcihlLHQpe3JldHVybiB0P2kuY3JlYXRlRWxlbWVudCh3LkRpdmlkZXJMaXN0SXRlbSx7cm9sZToic2VwYXJhdG9yIixrZXk6ZX0pOmkuY3JlYXRlRWxlbWVudCh2LlBvcHVwTWVudVNlcGFyYXRvcix7a2V5OmV9KX1fcmVuZGVyT3ZlcmZsb3dUaXRsZShlLHQpe3JldHVybiBpLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6cygpKCF0JiZmZS5lbGxpcHNpcywiYXBwbHktb3ZlcmZsb3ctdG9vbHRpcCIpLHJvbGU6ImdyaWRjZWxsIiwiYXJpYS1jb2xzcGFuIjoyfSxlKX1fcmVuZGVyQWN0aW9uSXRlbShlLHQsbyl7Y29uc3QgbD10P04ubXVsdGlsaW5lTGFiZWxXaXRoSWNvbkFuZFRvb2xib3hUaGVtZTpfZSxyPWUud2l0aEVsbGlwc2lzPygwLHouYXBwZW5kRWxsaXBzaXMpKGUubGFiZWwpOmUubGFiZWw7aWYoIW8pe2NvbnN0IG89ZS5ob3RrZXk/MTkwPT09ZS5ob3RrZXk/YS50KG51bGwse2NvbnRleHQ6ImhvdGtleSJ9LG4oOTEwNDc2KSk6KDAsZC5odW1hblJlYWRhYmxlSGFzaCkoZS5ob3RrZXkpOnZvaWQgMDtyZXR1cm4gaS5jcmVhdGVFbGVtZW50KGguQWNjZXNzaWJsZU1lbnVJdGVtLHtrZXk6ZS5rZXkscm9sZToicm93Iixpc0Rpc2FibGVkOmUuaXNEaXNhYmxlZCxpY29uOmUuaWNvbixsYWJlbDpyLG9uQ2xpY2s6ZS5vbkNsaWNrLGxhYmVsUm93Q2xhc3NOYW1lOnMoKSh0JiZmZS5wb3B1cEl0ZW1Sb3dUYWJsZXRTbWFsbCksdGhlbWU6bCxzaG9ydGN1dDpvLCJkYXRhLW5hbWUiOmUuZGF0YVFhSWQsImFyaWEtaGFzcG9wdXAiOmUuYXJpYUhhc3BvcHVwLGRvbnRDbG9zZVBvcHVwOmUuZG9udENsb3NlUG9wdXAscmVmZXJlbmNlOmUucmVmfSl9cmV0dXJuIGkuY3JlYXRlRWxlbWVudChDLk1lbnVJdGVtLHtrZXk6ZS5rZXkscm9sZToicm93IixkaXNhYmxlZDplLmlzRGlzYWJsZWQsYXJpYUhhc3BvcHVwOmUuYXJpYUhhc3BvcHVwLGxlZnRTbG90OmUuaWNvbj9pLmNyZWF0ZUVsZW1lbnQoUy5TdmdJY29uTGlzdEl0ZW1QYXJ0LHtpY29uU3ZnOmUuaWNvbn0pOnZvaWQgMCxvbkNsaWNrOmUub25DbGljayx0aXRsZTp0aGlzLl9yZW5kZXJPdmVyZmxvd1RpdGxlKHIsdCksYXJpYUxhYmVsOmUubGFiZWwsaG90a2V5OmUuaG90a2V5LCJkYXRhLXJvbGUiOiJtZW51aXRlbSIsZWxsaXBzaXM6IXQsZGF0YVFhSWQ6ZS5kYXRhUWFJZCxkb250Q2xvc2VQb3B1cDplLmRvbnRDbG9zZVBvcHVwLGxpc3RJdGVtUmVmOmUucmVmfSl9X3JlbmRlck1lbnVJdGVtcyhlLHQpe2NvbnN0e3dhc0NoYW5nZXM6byxpc1Byb2Nlc3Npbmc6bCxjaGFydElkOnIsb25TYXZlQ2hhcnRGcm9tTWVudTpjLG9uUmVuYW1lQ2hhcnQ6aCxvbkxvYWRDaGFydDp2LG9uTmV3Q2hhcnQ6bSxpc0F1dG9TYXZlRW5hYmxlZDpwLGF1dG9TYXZlSWQ6ZixzaGFyaW5nSWQ6YixvbkF1dG9TYXZlQ2hhbmdlZDp3LGlzU2hhcmluZ0VuYWJsZWQ6QyxvblNoYXJpbmdDaGFuZ2VkOlMscmVjZW50SXRlbXM6RSxvbkV4cG9ydERhdGE6TSxpc0F1dGhlbnRpY2F0ZWQ6ayxmYXZvcml0ZXM6SX09dGhpcy5wcm9wcyxUPWU/Wi5tZW51SXRlbVN3aXRjaGVyTW9iaWxlVGhlbWU6YmUsQT1bXSxIPWsmJkUmJkUubGVuZ3RoPjA/dD9baS5jcmVhdGVFbGVtZW50KHkuU2VjdGlvbkxpc3RJdGVtLHtrZXk6InJlY2VudGx5LXVzZWQiLHRpdGxlOnRoaXMuX3JlbmRlck92ZXJmbG93VGl0bGUoYS50KG51bGwse2NvbnRleHQ6Im1lbnVfaXRlbSJ9LG4oNjIzMjQ0KSksZSksYXJpYUxhYmVsOmEudChudWxsLHtjb250ZXh0OiJtZW51X2l0ZW0ifSxuKDYyMzI0NCkpLGdyb3VwUm9sZToicm93Z3JvdXAiLGl0ZW1Sb2xlOiJyb3cifSxFLm1hcCgobj0+aS5jcmVhdGVFbGVtZW50KCQse2tleTpuLmlkLGxheW91dDpuLGNoYXJ0SWQ6cixmYXZvcml0ZXM6SSxpc1RhYmxldFNtYWxsOmUsaXNOZXdWaWV3OnR9KSkpKV06W2kuY3JlYXRlRWxlbWVudChvZS5Ub29sVGl0bGUse2tleToicmVjZW50bHktdXNlZCIsY2xhc3NOYW1lOnMoKShmZS50b29sVGl0bGUsZSYmZmUudG9vbFRpdGxlTW9iaWxlKSx0ZXh0OmEudChudWxsLHtjb250ZXh0OiJtZW51X2l0ZW0ifSxuKDYyMzI0NCkpfSksLi4uRS5tYXAoKG49PmkuY3JlYXRlRWxlbWVudCgkLHtrZXk6bi5pZCxsYXlvdXQ6bixjaGFydElkOnIsZmF2b3JpdGVzOkksaXNUYWJsZXRTbWFsbDplLGlzTmV3Vmlldzp0fSkpKV06bnVsbDtBLnB1c2godGhpcy5fcmVuZGVyQWN0aW9uSXRlbSh7a2V5OiJzYXZlIixpc0Rpc2FibGVkOkJvb2xlYW4obHx8IW8mJnIpLGxhYmVsOlNlLG9uQ2xpY2s6Yyxob3RrZXk6ZT92b2lkIDA6ZC5Nb2RpZmllcnMuTW9kKzgzLGRhdGFRYUlkOiJzYXZlLWxvYWQtbWVudS1pdGVtLXNhdmUiLHdpdGhFbGxpcHNpczohMX0sZSx0KSk7ewpjb25zdCBvPXIsbD0oKT0+dm9pZCAwIT09cCYmdm9pZCAwIT09dyYmbz90P2kuY3JlYXRlRWxlbWVudChfLk1lbnVTd2l0Y2hlckl0ZW0se2tleToiYXV0by1zYXZlIixyb2xlOiJyb3ciLHZhbHVlOnAsb25DbGljazooKT0+dyghcCksdGl0bGU6dGhpcy5fcmVuZGVyT3ZlcmZsb3dUaXRsZShhLnQobnVsbCx7Y29udGV4dDoibWVudV9pdGVtIn0sbig0Nzk3MSkpLGUpLGFyaWFMYWJlbDphLnQobnVsbCx7Y29udGV4dDoibWVudV9pdGVtIn0sbig0Nzk3MSkpLCJkYXRhLXJvbGUiOiJtZW51aXRlbSIsZWxsaXBzaXM6IWUsZGF0YVFhSWQ6InNhdmUtbG9hZC1tZW51LWl0ZW0tYXV0by1zYXZlIn0pOmkuY3JlYXRlRWxlbWVudCh4Lk1lbnVJdGVtU3dpdGNoZXIse2tleToiYXV0by1zYXZlIixyb2xlOiJyb3ciLGNoZWNrZWQ6cCxvbkNoYW5nZTp3LGNsYXNzTmFtZTpzKCkoIWUmJmZlLmF1dG9TYXZlV3JhcHBlciksaWQ6Zix0aGVtZTpULGxhYmVsOmEudChudWxsLHZvaWQgMCxuKDU1NjM5OSkpLHZhbHVlOiJhdXRvU2F2ZVN3aXRjaGVyIn0pOm51bGw7QS5wdXNoKGwoKSl9aWYodm9pZCAwIT09cil7aWYodm9pZCAwIT09QyYmdm9pZCAwIT09UyYmISgwLHUuaXNTeW1waG9ueUVtYmVkKSgpKXtjb25zdCBvPWkuY3JlYXRlRWxlbWVudChhZSx7aXNUYWJsZXRTbWFsbDplLGlzTmV3Vmlldzp0fSk7aWYodClBLnB1c2goaS5jcmVhdGVFbGVtZW50KF8uTWVudVN3aXRjaGVySXRlbSx7a2V5OiJzaGFyaW5nIixyb2xlOiJyb3ciLHZhbHVlOkMsb25DbGljazooKT0+UyghQyksdGl0bGU6byxhcmlhTGFiZWw6YS50KG51bGwse2NvbnRleHQ6Im1lbnVfaXRlbSJ9LG4oMjI0ODkpKSwiZGF0YS1yb2xlIjoibWVudWl0ZW0iLGVsbGlwc2lzOiFlLGRhdGFRYUlkOiJzYXZlLWxvYWQtbWVudS1pdGVtLXNoYXJpbmcifSkpLEMmJkEucHVzaCh0aGlzLl9yZW5kZXJBY3Rpb25JdGVtKHtrZXk6ImNvcHktbGluayIsaWNvbjpwZSxsYWJlbDphLnQobnVsbCx7Y29udGV4dDoibWVudV9pdGVtIn0sbig1OTA4ODQpKSxvbkNsaWNrOnRoaXMuX2hhbmRsZUNvcHlMaW5rQ2xpY2ssZGF0YVFhSWQ6InNhdmUtbG9hZC1tZW51LWl0ZW0tY29weS1saW5rIix3aXRoRWxsaXBzaXM6ITAsZG9udENsb3NlUG9wdXA6ITAscmVmOnRoaXMuX2NvcHlFbFJlZn0sZSx0KSk7ZWxzZXtjb25zdCB0PSgwLGcubWVyZ2VUaGVtZXMpKFQse2xhYmVsOmZlLnN3aXRjaGVyTGFiZWx9KTtBLnB1c2goaS5jcmVhdGVFbGVtZW50KGkuRnJhZ21lbnQse2tleToic2hhcmluZyJ9LGkuY3JlYXRlRWxlbWVudCh4Lk1lbnVJdGVtU3dpdGNoZXIse3JvbGU6InJvdyIsY2hlY2tlZDpDLG9uQ2hhbmdlOlMsY2xhc3NOYW1lOnMoKSghZSYmZmUuc2hhcmluZ1dyYXBwZXIpLGlkOmIsdGhlbWU6dCxsYWJlbDpvLHZhbHVlOiJzaGFyaW5nU3dpdGNoZXIifSksQyYmaS5jcmVhdGVFbGVtZW50KGhlLHtyb2xlOiJyb3ciLGlzU21hbGw6ZSxvbkNsaWNrOnRoaXMuX2hhbmRsZUNvcHlMaW5rQ2xpY2sscmVmOnRoaXMuX2NvcHlFbFJlZn0pKSl9fUEucHVzaCh0aGlzLl9yZW5kZXJBY3Rpb25JdGVtKHtrZXk6InNhdmUtYXMiLGljb246dmUsbGFiZWw6eWUsb25DbGljazp0aGlzLl9oYW5kbGVTYXZlQXNDbGljayxkYXRhUWFJZDoic2F2ZS1sb2FkLW1lbnUtaXRlbS1jbG9uZSIsYXJpYUhhc3BvcHVwOiJkaWFsb2ciLHdpdGhFbGxpcHNpczohMH0sZSx0KSx0aGlzLl9yZW5kZXJBY3Rpb25JdGVtKHtrZXk6InJlbmFtZSIsaWNvbjpsZSxsYWJlbDphLnQobnVsbCx7Y29udGV4dDoibWVudV9pdGVtIn0sbig1NjU0NTEpKSxvbkNsaWNrOmgsZGF0YVFhSWQ6InNhdmUtbG9hZC1tZW51LWl0ZW0tcmVuYW1lIixhcmlhSGFzcG9wdXA6ImRpYWxvZyIsd2l0aEVsbGlwc2lzOiEwfSxlLHQpKX1yZXR1cm4oMCxHLmlzT25Nb2JpbGVBcHBQYWdlKSgiYW55Iil8fEEucHVzaCh0aGlzLl9yZW5kZXJBY3Rpb25JdGVtKHtrZXk6ImV4cG9ydC1jaGFydC1kYXRhIixpY29uOnJlLGxhYmVsOmEudChudWxsLHtjb250ZXh0OiJleHBvcnQgY2hhcnQncyBkYXRhIn0sbig3NjM5MzQpKSxvbkNsaWNrOk0sYXJpYUhhc3BvcHVwOiJkaWFsb2ciLGRhdGFRYUlkOiJzYXZlLWxvYWQtbWVudS1pdGVtLWRvd25sb2FkIix3aXRoRWxsaXBzaXM6ITB9LGUsdCkpLEEucHVzaCh0aGlzLl9yZW5kZXJTZXBhcmF0b3IoIm5ldy1jaGFydC1zZXBhcmF0b3IiLHQpLHRoaXMuX3JlbmRlckFjdGlvbkl0ZW0oe2tleToibmV3LWNoYXJ0IixpY29uOmRlLGxhYmVsOmEudChudWxsLHtjb250ZXh0OiJtZW51X2l0ZW0ifSxuKDkzODQ5NykpLG9uQ2xpY2s6bSxhcmlhSGFzcG9wdXA6ImRpYWxvZyIsZGF0YVFhSWQ6InNhdmUtbG9hZC1tZW51LWl0ZW0tY3JlYXRlIix3aXRoRWxsaXBzaXM6ITB9LGUsdCkpLEgmJkEucHVzaCh0aGlzLl9yZW5kZXJTZXBhcmF0b3IoInJlY2VudC1sYXlvdXRzIix0KSwuLi5IKSxBLnB1c2godGhpcy5fcmVuZGVyU2VwYXJhdG9yKCJhbGwtbGF5b3V0cy1zZXBhcmF0b3IiLHQpLHRoaXMuX3JlbmRlckFjdGlvbkl0ZW0oe2tleToiYWxsLWxheW91dHMiLGxhYmVsOmEudChudWxsLHtjb250ZXh0OiJtZW51X2l0ZW0ifSxuKDYxMzUxNikpLG9uQ2xpY2s6dixpY29uOm1lLGhvdGtleTplP3ZvaWQgMDoxOTAsZGF0YVFhSWQ6InNhdmUtbG9hZC1tZW51LWl0ZW0tbG9hZCIsYXJpYUhhc3BvcHVwOiJkaWFsb2ciLHdpdGhFbGxpcHNpczohMH0sZSx0KSksQX1fdHJhY2tDbGljaygpeygwLGllLnRyYWNrQnV0dG9uQ2xpY2spKCJ0b3AgdG9vbGJhciIsIm1hbmFnZSBsYXlvdXRzIil9fX0sNjY2NDQxKGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse3Nob3dGYXZvcml0ZUxheW91dHM6KCk9PmF9KTtjb25zdCBhPSgwLG4oNTY5Mzk4KS5pc0ZlYXR1cmVFbmFibGVkKSgic2hvd19mYXZvcml0ZV9sYXlvdXRzIil9LDkyOTY0OShlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtBY2Nlc3NpYmxlSWNvbkJ1dHRvbjooKT0+b30pO3ZhciBhPW4oNzc5NDc0KSxpPW4oNDA4NDEpO2NvbnN0IG89KDAsYS5mb3J3YXJkUmVmKSgoZnVuY3Rpb24oZSx0KXtjb25zdHt0b29sdGlwOm4sLi4ub309ZQo7cmV0dXJuIGEuY3JlYXRlRWxlbWVudChpLlRvb2xXaWRnZXRJY29uQnV0dG9uLHsiYXJpYS1sYWJlbCI6biwuLi5vLHRhZzoiYnV0dG9uIixyZWY6dCwiZGF0YS10b29sdGlwIjpuLCJkYXRhLXRvb2x0aXAtc2hvdy1vbi1mb2N1cyI6InRydWUifSl9KSl9LDkzNDkyOShlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtBY2Nlc3NpYmxlTWVudUJ1dHRvbjooKT0+bH0pO3ZhciBhPW4oNzc5NDc0KSxpPW4oNzg3ODk1KSxvPW4oMjk2NDQ5KSxzPW4oODYxMTg4KTtjb25zdCBsPSgwLGEuZm9yd2FyZFJlZikoKGZ1bmN0aW9uKGUsdCl7Y29uc3R7dG9vbHRpcDpuLHRhZzpsLGJ1dHRvblJlZjpyLHJlZmVyZW5jZTpkLC4uLnV9PWUsYz0oMCxpLnVzZUZ1bmN0aW9uYWxSZWZPYmplY3QpKGQ/P251bGwpO3JldHVybiBhLmNyZWF0ZUVsZW1lbnQoby5Ub29sV2lkZ2V0TWVudSx7ImFyaWEtbGFiZWwiOm4sLi4udSxyZWY6dCx0YWc6bD8/ImJ1dHRvbiIscmVmZXJlbmNlOnI/P2MsImRhdGEtdG9vbHRpcCI6bixvbk1lbnVLZXlEb3duOnMuaGFuZGxlQWNjZXNzaWJsZU1lbnVLZXlEb3duLG9uTWVudUZvY3VzOmU9PigwLHMuaGFuZGxlQWNjZXNzaWJsZU1lbnVGb2N1cykoZSxyPz9jKX0pfSkpfSw3NzgwNzcoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7Q29sbGFwc2libGVTZWN0aW9uOigpPT5yfSk7dmFyIGE9big3Nzk0NzQpLGk9big5MTQ0ODcpLG89bi5uKGkpLHM9big3MDg4NDIpLGw9bigxODk1MzApO2NvbnN0IHI9KDAsYS5mb3J3YXJkUmVmKSgoZnVuY3Rpb24oZSx0KXtjb25zdHtvcGVuOm4sc3VtbWFyeTppLGNoaWxkcmVuOnIsb25TdGF0ZUNoYW5nZTpkLHRhYkluZGV4OnUsY2xhc3NOYW1lOmMsLi4uaH09ZTtyZXR1cm4gYS5jcmVhdGVFbGVtZW50KGEuRnJhZ21lbnQsbnVsbCxhLmNyZWF0ZUVsZW1lbnQoImRpdiIsey4uLmgsY2xhc3NOYW1lOm8oKShjLGwuc3VtbWFyeSksb25DbGljazpmdW5jdGlvbigpe2QmJmQoIW4pfSwiZGF0YS1vcGVuIjpuLCJhcmlhLWV4cGFuZGVkIjpuLHJlZjp0LHRhYkluZGV4OnV9LGksYS5jcmVhdGVFbGVtZW50KHMuVG9vbFdpZGdldENhcmV0LHtjbGFzc05hbWU6bC5jYXJldCxkcm9wcGVkOkJvb2xlYW4obil9KSksbiYmcil9KSl9LDYyNzA0NShlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtGYXZvcml0ZUl0ZW06KCk9PmN9KTt2YXIgYT1uKDc3OTQ3NCksaT1uKDkxNDQ4Nyksbz1uLm4oaSkscz1uKDIzNTcyNCksbD1uKDE4MjMwOCkscj1uKDI0OWUzKSxkPW4oNTEwNTk4KSx1PW4oNzU4ODgyKTtmdW5jdGlvbiBjKGUpe2NvbnN0e2NsYXNzTmFtZTp0LGNoaWxkcmVuOm4saXRlbTppLG9uQXBwbHk6Yyxpc0FjdGl2ZTpoLGhyZWY6dix0YXJnZXQ6bX09ZSxwPWkubmFtZT8udHJpbSgpPz8iICIsW2YsZ109KDAsbC51c2VSb3ZpbmdUYWJpbmRleEVsZW1lbnQpKG51bGwpLGI9dj8iYSI6Yz8iYnV0dG9uIjoiZGl2Iix3PWkudG9vbHRpcD8/cCxDPSgwLHIuZ2V0TGVhZGluZ0Vtb2ppSHRtbCkodyk7cmV0dXJuIGEuY3JlYXRlRWxlbWVudChiLHtyZWY6Zix0eXBlOmMmJiF2PyJidXR0b24iOnZvaWQgMCxjbGFzc05hbWU6bygpKHQsdS5pdGVtLHUuYWNjZXNzaWJsZSwiYXBwbHktY29tbW9uLXRvb2x0aXAiLCJjb21tb24tdG9vbHRpcC1odG1sIiksb25DbGljazpmdW5jdGlvbihlKXtpZihlLnN0b3BQcm9wYWdhdGlvbigpLGMmJnYpe2lmKCgwLHMubW9kaWZpZXJzRnJvbUV2ZW50KShlKSE9PXMuTW9kaWZpZXJzLk5vbmV8fDE9PT1lLmJ1dHRvbilyZXR1cm47ZS5wcmV2ZW50RGVmYXVsdCgpfWM/LihpKX0sb25LZXlEb3duOiJhIj09PWI/ZnVuY3Rpb24oZSl7MzI9PT0oMCxzLmhhc2hGcm9tRXZlbnQpKGUpJiYoZS5wcmV2ZW50RGVmYXVsdCgpLGYuY3VycmVudD8uY2xpY2soKSl9OnZvaWQgMCwiZGF0YS10b29sdGlwIjpDLCJhcmlhLWxhYmVsIjp3LHRhYkluZGV4OmcsaHJlZjoiYSI9PT1iP3Y6dm9pZCAwLHRhcmdldDoiYSI9PT1iP206dm9pZCAwfSxhLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpvKCkodS5yb3VuZCxoJiZ1LmFjdGl2ZSl9LG58fGEuY3JlYXRlRWxlbWVudChkLkxlYWRpbmdFbW9qaVRleHQse3RleHQ6cCxmaXJzdFNlZ21lbnRPbmx5OiEwfSkpKX19LDkxNzgxNyhlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtNZW51UmVtb3ZlQnV0dG9uOigpPT5jfSk7dmFyIGE9big3Nzk0NzQpLGk9big5MTQ0ODcpLG89bi5uKGkpLHM9bigxODUyNzEpLGw9bigxODIzMDgpLHI9big1NDU0MjIpLGQ9big0NjI3MDQpLHU9big1ODcwOTQpO2Z1bmN0aW9uIGMoZSl7Y29uc3R7b25DbGljazp0LGlzQWN0aXZlOmksb25LZXlEb3duOmMsLi4uaH09ZSxbdixtXT0oMCxsLnVzZVJvdmluZ1RhYmluZGV4RWxlbWVudCkobnVsbCk7cmV0dXJuIGEuY3JlYXRlRWxlbWVudCgiYnV0dG9uIix7cmVmOnYsdGFiSW5kZXg6bSxvbkNsaWNrOnQsb25LZXlEb3duOmMsY2xhc3NOYW1lOm8oKSh1LmJ1dHRvbixpJiZ1LmFjdGl2ZSwiYXBwbHktY29tbW9uLXRvb2x0aXAiKSwiYXJpYS1sYWJlbCI6cy50KG51bGwsdm9pZCAwLG4oOTExMjYpKSwiZGF0YS10b29sdGlwIjpzLnQobnVsbCx2b2lkIDAsbig5MTEyNikpLHR5cGU6ImJ1dHRvbiJ9LGEuY3JlYXRlRWxlbWVudChyLlJlbW92ZUJ1dHRvbix7Li4uaCxpc0FjdGl2ZTppLHRpdGxlOiIiLGljb246ZH0pKX19LDQyOTQ2NShlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtUb29sVGl0bGU6KCk9Pmx9KTt2YXIgYT1uKDc3OTQ3NCksaT1uKDkxNDQ4Nyksbz1uLm4oaSkscz1uKDU3MzQ1MCk7ZnVuY3Rpb24gbChlKXtjb25zdHtjbGFzc05hbWU6dCx0ZXh0Om4saWQ6aSxyb2xlOmwsYXJpYUhpZGRlbjpyfT1lO3JldHVybiBhLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpvKCkocy50aXRsZSx0KSxpZDppLHJvbGU6bCwiYXJpYS1oaWRkZW4iOnJ9LG4pfX0sOTcxNTQ1KGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse1Rvb2xXaWRnZXRDb2xsYXBzaWJsZUJ1dHRvbjooKT0+ZH0pO3ZhciBhPW4oNzc5NDc0KSxpPW4oOTE0NDg3KSxvPW4ubihpKSxzPW4oOTk1NzE5KSxsPW4oOTQxOTE4KQo7Y29uc3Qgcj1bIm1lZGl1bSIsInNtYWxsIl0sZD0oMCxhLmZvcndhcmRSZWYpKChmdW5jdGlvbihlLHQpe2NvbnN0e3RleHQ6bixjbGFzc05hbWU6aSxkaXNwbGF5TW9kZTpkLGNvbGxhcHNlV2hlbjp1PXIsLi4uY309ZSxoPSF1LmluY2x1ZGVzKGQpO3JldHVybiBhLmNyZWF0ZUVsZW1lbnQocy5Ub29sV2lkZ2V0QnV0dG9uLHsuLi5jLHJlZjp0LHRleHQ6aD9uOnZvaWQgMCxjbGFzc05hbWU6bygpKGksbC5idXR0b24saD9sLndpdGhUZXh0Omwud2l0aG91dFRleHQpfSl9KSl9LDY0ODAwOShlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtUb29sV2lkZ2V0TWVudVNwaW5uZXI6KCk9PnJ9KTt2YXIgYT1uKDc3OTQ3NCksaT1uKDkxNDQ4Nyksbz1uLm4oaSkscz1uKDY0OTE2NiksbD1uKDY2MTUwKTtmdW5jdGlvbiByKGUpe2NvbnN0e2NsYXNzTmFtZTp0fT1lO3JldHVybiBhLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpvKCkobC5zcGlubmVyV3JhcCx0KX0sYS5jcmVhdGVFbGVtZW50KHMuTG9hZGVyLG51bGwpKX19LDg2NDY4MShlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtUb29sV2lkZ2V0Um93V3JhcDooKT0+bH0pO3ZhciBhPW4oNzc5NDc0KSxpPW4oOTE0NDg3KSxvPW4ubihpKSxzPW4oNTA2ODM4KTtjb25zdCBsPWEuZm9yd2FyZFJlZigoKGUsdCk9Pntjb25zdHtjaGlsZHJlbjpuLGNsYXNzTmFtZTppLC4uLmx9PWU7cmV0dXJuIGEuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOm8oKShpLHMud3JhcCkscmVmOnQsLi4ubH0sbil9KSl9LDI0NjcyNyhlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtERUZBVUxUX1RPT0xCQVJfQlVUVE9OX1RIRU1FOigpPT5zLFRvb2xiYXJCdXR0b246KCk9Pmx9KTt2YXIgYT1uKDc3OTQ3NCksaT1uKDk5NTcxOSksbz1uKDE4MjMwOCk7Y29uc3Qgcz1pLkRFRkFVTFRfVE9PTF9XSURHRVRfQlVUVE9OX1RIRU1FLGw9KDAsYS5mb3J3YXJkUmVmKSgoZnVuY3Rpb24oZSx0KXtjb25zdHt0b29sdGlwOm4sLi4uc309ZSxbbCxyXT0oMCxvLnVzZVJvdmluZ1RhYmluZGV4RWxlbWVudCkodCk7cmV0dXJuIGEuY3JlYXRlRWxlbWVudChpLlRvb2xXaWRnZXRCdXR0b24seyJhcmlhLWxhYmVsIjpuLC4uLnMsdGFnOiJidXR0b24iLHJlZjpsLHRhYkluZGV4OnIsImRhdGEtdG9vbHRpcCI6bn0pfSkpfSwxODYwOTcoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7VG9vbGJhckNvbGxhcHNpYmxlQnV0dG9uOigpPT5zfSk7dmFyIGE9big3Nzk0NzQpLGk9bigxODIzMDgpLG89big5NzE1NDUpO2Z1bmN0aW9uIHMoZSl7Y29uc3R7dG9vbHRpcDp0LC4uLm59PWUsW3MsbF09KDAsaS51c2VSb3ZpbmdUYWJpbmRleEVsZW1lbnQpKG51bGwpO3JldHVybiBhLmNyZWF0ZUVsZW1lbnQoby5Ub29sV2lkZ2V0Q29sbGFwc2libGVCdXR0b24seyJhcmlhLWxhYmVsIjp0LC4uLm4sdGFnOiJidXR0b24iLHRhYkluZGV4OmwscmVmOnMsImRhdGEtdG9vbHRpcCI6dH0pfX0sOTY3MDUoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7VG9vbGJhckljb25CdXR0b246KCk9PnN9KTt2YXIgYT1uKDc3OTQ3NCksaT1uKDE4MjMwOCksbz1uKDkyOTY0OSk7Y29uc3Qgcz0oMCxhLmZvcndhcmRSZWYpKChmdW5jdGlvbihlLHQpe2NvbnN0W24sc109KDAsaS51c2VSb3ZpbmdUYWJpbmRleEVsZW1lbnQpKHQpO3JldHVybiBhLmNyZWF0ZUVsZW1lbnQoby5BY2Nlc3NpYmxlSWNvbkJ1dHRvbix7Li4uZSxyZWY6bix0YWJJbmRleDpzfSl9KSl9LDc3MTI4NShlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtUb29sYmFyTWVudUJ1dHRvbjooKT0+cn0pO3ZhciBhPW4oNzc5NDc0KSxpPW4oNzg3ODk1KSxvPW4oMTgyMzA4KSxzPW4oNDUwMTQwKSxsPW4oOTM0OTI5KTtjb25zdCByPSgwLGEuZm9yd2FyZFJlZikoKGZ1bmN0aW9uKGUsdCl7Y29uc3R7dG9vbHRpcDpuLG1lbnVSZWZlcmVuY2U6cj1udWxsLC4uLmR9PWUsW3UsY109KDAsby51c2VSb3ZpbmdUYWJpbmRleEVsZW1lbnQpKG51bGwpLGg9KDAsaS51c2VGdW5jdGlvbmFsUmVmT2JqZWN0KShyKTtyZXR1cm4gYS5jcmVhdGVFbGVtZW50KGwuQWNjZXNzaWJsZU1lbnVCdXR0b24seyJhcmlhLWxhYmVsIjpuLCJhcmlhLWhhc3BvcHVwIjoibWVudSIsLi4ucy5Nb3VzZUNsaWNrQXV0b0JsdXJIYW5kbGVyLmF0dHJpYnV0ZXMoKSwuLi5kLHJlZjp0LHRhZzoiYnV0dG9uIixidXR0b25SZWY6dSx0YWJJbmRleDpjLG1lbnVSZWZlcmVuY2U6aCx0b29sdGlwOm59KX0pKX0sNzM3MTE2KGUsdCxuKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gYSgpe3JldHVybiBQcm9taXNlLmFsbChbbi5lKDczNzApLG4uZSg4NDMwNiksbi5lKDI5Mjk2KSxuLmUoNTIzOTYpLG4uZSg2MDA2Miksbi5lKDIwMzU0KSxuLmUoMTM0OTIpLG4uZSgzNzc0Niksbi5lKDgxMDcyKSxuLmUoMjM2MjQpLG4uZSg5NDIzMiksbi5lKDE5NTk1KSxuLmUoMTk3ODcpLG4uZSg1NzMwMCksbi5lKDEyMDUxKSxuLmUoNDA4NjcpLG4uZSg1MDgwMCksbi5lKDQ3MzE2KSxuLmUoMzk2MDkpLG4uZSg3MTc1MyldKS50aGVuKG4uYmluZChuLDE2NDk1NykpfW4uZCh0LHtsb2FkQ2hhcnRFeHBvcnREaWFsb2dNb2R1bGU6KCk9PmF9KX0sMjczNTA5KGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse0NvbnRlbnRNZW51OigpPT5nfSk7dmFyIGE9big3ODMyNTQpLGk9big3Nzk0NzQpLG89bigyMDgwODApLHM9bigzOTE5MTQpLGw9big5NzI3MzQpLHI9big3MzI3MzEpLGQ9bigyNzMzMTApLHU9big3ODQ1MTMpLGM9bigyMTQzMiksaD1uKDU1MzY2OSksdj1uKDEzNjYzKTtjb25zdCBtPWkuY3JlYXRlQ29udGV4dChudWxsKTt2YXIgcD1uKDk1NTU4OSksZj1uKDU0MTIxMik7Y29uc3QgZz0oMCxpLmZvcndhcmRSZWYpKChmdW5jdGlvbihlLHQpe2NvbnN0e2RhdGE6cyxzeW1ib2w6aCxpc09wZW46dixvbkNsb3NlOmcsYW5jaG9yZWQ6dyx0cmFja2luZ0RhdGE6QyxwbGFjZW1lbnRSdWxlczpfLGFjdHVhbENvbnRlbnRJZDp5LHNob3dGaW5hbmNpYWxzOlM9ITEsc2hvd0NoYXJ0Ong9ITF9PWUsRT0oMCxjLnVzZU1lbnVHcm91cHMpKHtkYXRhOnMsc2hvd0ZpbmFuY2lhbHM6U30pCjtyZXR1cm4gaS5jcmVhdGVFbGVtZW50KG0uUHJvdmlkZXIse3ZhbHVlOntzeW1ib2w6aCxzeW1ib2xUeXBlOnMudHlwZSx0cmFja2luZ0RhdGE6QyxvblNlbGVjdDpnfX0saS5jcmVhdGVFbGVtZW50KG8uUG9wb3ZlcktleWJvYXJkTmF2aWdhdG9yLHtpc09wZW46dixwbGFjZW1lbnRSdWxlczpfLG9uQ2xvc2U6ZyxhbmNob3JlZDp3LHdpZHRoOlt7Ynk6ImNsYXNzIixjbGFzc05hbWU6Zi5tZW51fSx7Ynk6ImNvbnRlbnQifV19LGkuY3JlYXRlRWxlbWVudCgiZGl2Iix7c3R5bGU6e2Rpc3BsYXk6ImNvbnRlbnRzIn0scmVmOnR9LHgmJmkuY3JlYXRlRWxlbWVudChpLkZyYWdtZW50LG51bGwsaS5jcmVhdGVFbGVtZW50KGwuUG9wb3Zlckl0ZW0se3RpdGxlOmEudChudWxsLHtjb250ZXh0OiJjb250ZW50X21lbnUifSxuKDY4MTkyMSkpLHNlbGVjdGVkOiEoeSYmYy5DT05URU5UX0JVVFRPTl9JQ09OU1t5XSksbGVmdFNsb3Q6aS5jcmVhdGVFbGVtZW50KGQuSWNvbix7aWNvbjpwfSksb25DbGljazooKT0+e2coKSx1LmFjdHVhbENvbnRlbnQuc2V0VmFsdWUobnVsbCl9fSksQm9vbGVhbihFLmxlbmd0aCkmJmkuY3JlYXRlRWxlbWVudChyLkRpdmlkZXJMaXN0SXRlbSxudWxsKSksRS5tYXAoKChlLHQpPT5pLmNyZWF0ZUVsZW1lbnQoaS5GcmFnbWVudCx7a2V5OmUuYW5hbHl0aWNzU3ViTWVudX0saS5jcmVhdGVFbGVtZW50KGIsey4uLmV9KSx0IT09RS5sZW5ndGgtMSYmaS5jcmVhdGVFbGVtZW50KHIuRGl2aWRlckxpc3RJdGVtLG51bGwpKSkpKSkpfSkpO2Z1bmN0aW9uIGIoZSl7Y29uc3R7c3ltYm9sOnQsc3ltYm9sVHlwZTpuLHRyYWNraW5nRGF0YTphLG9uU2VsZWN0Om99PSgwLHYudXNlRW5zdXJlZENvbnRleHQpKG0pO3JldHVybiBpLmNyZWF0ZUVsZW1lbnQocy5TZWN0aW9uUG9wb3Zlckl0ZW0se3RpdGxlOmUudGl0bGV9LGUuaXRlbXMubWFwKChzPT5pLmNyZWF0ZUVsZW1lbnQobC5Qb3BvdmVySXRlbSx7a2V5OnMuaWQsdGl0bGU6cy50aXRsZSxzZWxlY3RlZDpzLmlzU2VsZWN0ZWQsbGVmdFNsb3Q6aS5jcmVhdGVFbGVtZW50KGQuSWNvbix7aWNvbjpzLmljb259KSxvbkNsaWNrOigpPT57cy5pc1NlbGVjdGVkfHwoKDAsaC50cmFja01ldHJpY3NNZW51QWN0aW9uKSh7Li4uYSxzeW1ib2xfdHlwZTpuPz9udWxsLHN5bWJvbDp0LHN1Yl9tZW51OmUuYW5hbHl0aWNzU3ViTWVudSxtZW51X2l0ZW06cy5hbmFseXRpY3NOYW1lfSksbygpLHMub25DbGljaygpKX19KSkpKX19LDIxNDMyKGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse0NPTlRFTlRfQlVUVE9OX0lDT05TOigpPT5MLHVzZU1lbnVHcm91cHM6KCk9Plp9KTt2YXIgYT1uKDc4MzI1NCksaT1uKDEzODYzOCksbz1uKDg4OTM5Nykscz1uKDc4NDUxMyksbD1uKDgzMzQwOSkscj1uKDE5OTc0KSxkPW4oOTIwNjMxKSx1PW4oMzE1ODUwKSxjPW4oNjMxMjU0KSxoPW4oMTA2OTAwKSx2PW4oODk4Mzc3KSxtPW4oOTAyODI5KSxwPW4oMjc1ODM1KSxmPW4oMzkxMTgyKSxnPW4oNTA2NzY3KSxiPW4oOTU3ODQ2KSx3PW4oMjM2NDI5KSxDPW4oNTUxMjgyKSxfPW4oMjA1NDcyKSx5PW4oOTIwODgpLFM9big1MTQxNDIpLHg9bigyOTIzNjApLEU9big5ODc5OTIpLE09big5MDc5MTEpLGs9bigxNTkyNDUpLEk9big3OTE2OTMpLFQ9big3MjcyNjkpLEE9big2MDQ5MDEpLEg9big2MjcwNDEpLFY9big2NjQ0ODEpLFI9bigzMTA5MjcpLEY9big3NTUyOTQpO2NvbnN0IEw9e2ZpbmFuY2lhbHM6dyxkb2N1bWVudHM6QyxuZXdzOl8saWRlYXM6VixzZWFzb25hbHM6eSxhbmFseXNpczpTLHRlY2huaWNhbHM6eCxmb3JlY2FzdDpSLCJmb3J3YXJkLWN1cnZlIjpFLGNvbnRyYWN0czpNLCJ5aWVsZC1jdXJ2ZSI6aywiZWNvbm9teS1pbmRpY2F0b3JzIjpJLG9wdGlvbnM6VCxib25kczpBLGV0ZnM6SCxjb21tdW5pdHk6Rn07ZnVuY3Rpb24gWihlKXtjb25zdHtkYXRhOnQsc2hvd0ZpbmFuY2lhbHM6d309ZSxDPSgwLGgudXNlV2F0Y2hlZFZhbHVlUmVhZG9ubHkpKHt3YXRjaGVkVmFsdWU6cy5hY3R1YWxDb250ZW50fSk7cmV0dXJuW3t0aXRsZTphLnQobnVsbCx7Y29udGV4dDoiY29udGVudF9tZW51In0sbig5OTU2MDIpKSxhbmFseXRpY3NTdWJNZW51OiJGdW5kYW1lbnRhbHMiLGl0ZW1zOk4oW3tpZDoiZmluYW5jaWFscyIsdGl0bGU6YS50KG51bGwse2NvbnRleHQ6ImNvbnRlbnRfbWVudSJ9LG4oMzgwMTU4KSksYW5hbHl0aWNzTmFtZToiRmluYW5jaWFscyIsaWNvbjp2LG9uQ2xpY2s6KCk9PigwLG8uc2hvd0ZpbmFuY2lhbHNEaWFsb2cpKCksaGlkZGVuOiEodyYmdC5oYXNGaW5hbmNpYWxzKSxpc1NlbGVjdGVkOiJmaW5hbmNpYWxzIj09PUN9LHtpZDoiZG9jdW1lbnRzIix0aXRsZTphLnQobnVsbCx7Y29udGV4dDoiY29udGVudF9tZW51In0sbig3ODc0NDIpKSxhbmFseXRpY3NOYW1lOiJEb2N1bWVudHMiLGljb246dC5kb2N1bWVudHNBY3Rpb24/LmdldFN0YXRlKCkuaWNvbixvbkNsaWNrOigpPT4oMCxpLmVuc3VyZU5vdE51bGwpKHQuZG9jdW1lbnRzQWN0aW9uKS5leGVjdXRlKCksaGlkZGVuOnQuZG9jdW1lbnRzQWN0aW9uPy5pc0Rpc2FibGVkKCk/PyEwLGlzU2VsZWN0ZWQ6ImRvY3VtZW50cyI9PT1DfSx7aWQ6ImFuYWx5c2lzIix0aXRsZTphLnQobnVsbCx7Y29udGV4dDoiY29udGVudF9tZW51In0sbig5MjE2NDIpKSxhbmFseXRpY3NOYW1lOiJQcm9maWxlIixpY29uOnQuYW5hbHlzaXNBY3Rpb24/LmdldFN0YXRlKCkuaWNvbixvbkNsaWNrOigpPT4oMCxpLmVuc3VyZU5vdE51bGwpKHQuYW5hbHlzaXNBY3Rpb24pLmV4ZWN1dGUoKSxoaWRkZW46dC5hbmFseXNpc0FjdGlvbj8uaXNEaXNhYmxlZCgpPz8hMCxpc1NlbGVjdGVkOiJhbmFseXNpcyI9PT1DfSx7aWQ6ImRlcml2YXRpdmVzIix0aXRsZTphLnQobnVsbCx7Y29udGV4dDoiY29udGVudF9tZW51In0sbig1NTgwNjcpKSxhbmFseXRpY3NOYW1lOiJEZXJpdmF0aXZlcyIsaWNvbjpnLG9uQ2xpY2s6KCk9PigwLGQuc2hvd0Rlcml2YXRpdmVzRGlhbG9nKSgpLGhpZGRlbjohdC5oYXNEZXJpdmF0aXZlcyxpc1NlbGVjdGVkOiJkZXJpdmF0aXZlcyI9PT1DfV0pfSx7dGl0bGU6YS50KG51bGwsewpjb250ZXh0OiJjb250ZW50X21lbnUifSxuKDMzNDQxNSkpLGFuYWx5dGljc1N1Yk1lbnU6IkFuYWx5c2lzIixpdGVtczpOKFt7aWQ6InRlY2huaWNhbHMiLHRpdGxlOmEudChudWxsLHtjb250ZXh0OiJjb250ZW50X21lbnUifSxuKDEyMTI3MCkpLGFuYWx5dGljc05hbWU6IlRlY2huaWNhbHMiLGljb246YixvbkNsaWNrOigpPT4oMCxsLnNob3dUZWNobmljYWxzRGlhbG9nKSh7c25hcHNob3Q6dC5saXN0ZWRFeGNoYW5nZSYmdC50eXBlP3tsaXN0ZWRfZXhjaGFuZ2U6dC5saXN0ZWRFeGNoYW5nZSx0eXBlOnQudHlwZSx0eXBlc3BlY3M6dC50eXBlc3BlY3MscHJpY2VzY2FsZTp0LnByaWNlc2NhbGV9OnZvaWQgMCxzaG91bGRGb3JjZUZvY3VzOiExfSksaGlkZGVuOiF0Lmhhc1RlY2huaWNhbHMsaXNTZWxlY3RlZDoidGVjaG5pY2FscyI9PT1DfSx7aWQ6InNlYXNvbmFscyIsdGl0bGU6YS50KG51bGwse2NvbnRleHQ6ImNvbnRlbnRfbWVudSJ9LG4oMzc4NzUwKSksYW5hbHl0aWNzTmFtZToiU2Vhc29uYWxzIixpY29uOnQuc2Vhc29uYWxzQWN0aW9uPy5nZXRTdGF0ZSgpLmljb24sb25DbGljazooKT0+KDAsaS5lbnN1cmVOb3ROdWxsKSh0LnNlYXNvbmFsc0FjdGlvbikuZXhlY3V0ZSgpLGhpZGRlbjp0LnNlYXNvbmFsc0FjdGlvbj8uaXNEaXNhYmxlZCgpPz8hMCxpc1NlbGVjdGVkOiJzZWFzb25hbHMiPT09Q30se2lkOiJmb3J3YXJkLWN1cnZlIix0aXRsZTphLnQobnVsbCx7Y29udGV4dDoiY29udGVudF9tZW51In0sbig2Njg2ODApKSxhbmFseXRpY3NOYW1lOiJGb3J3YXJkIGN1cnZlIixpY29uOmYsb25DbGljazooKT0+KDAsci5zaG93Rm9yd2FyZEN1cnZlRGlhbG9nKSgpLGhpZGRlbjohdC5oYXNGb3J3YXJkQ3VydmUsaXNTZWxlY3RlZDoiZm9yd2FyZC1jdXJ2ZSI9PT1DfSx7aWQ6InlpZWxkLWN1cnZlIix0aXRsZTphLnQobnVsbCx7Y29udGV4dDoiY29udGVudF9tZW51In0sbig2MTYxODApKSxhbmFseXRpY3NOYW1lOiJZaWVsZCBjdXJ2ZSIsaWNvbjptLG9uQ2xpY2s6KCk9PigwLGMuc2hvd0JvbmRZaWVsZEN1cnZlRGlhbG9nKSgpLGhpZGRlbjohdC5oYXNZaWVsZEN1cnZlLGlzU2VsZWN0ZWQ6InlpZWxkLWN1cnZlIj09PUN9LHtpZDoibmV3cyIsdGl0bGU6YS50KG51bGwse2NvbnRleHQ6ImNvbnRlbnRfbWVudSJ9LG4oODQzNTIwKSksYW5hbHl0aWNzTmFtZToiTmV3cyIsaWNvbjp0Lm5ld3NBY3Rpb24/LmdldFN0YXRlKCkuaWNvbixvbkNsaWNrOigpPT4oMCxpLmVuc3VyZU5vdE51bGwpKHQubmV3c0FjdGlvbikuZXhlY3V0ZSgpLGhpZGRlbjp0Lm5ld3NBY3Rpb24/LmlzRGlzYWJsZWQoKT8/ITAsaXNTZWxlY3RlZDoibmV3cyI9PT1DfSx7aWQ6ImZvcmVjYXN0Iix0aXRsZTphLnQobnVsbCx7Y29udGV4dDoiY29udGVudF9tZW51In0sbig1MzQwMjcpKSxhbmFseXRpY3NOYW1lOiJGb3JlY2FzdCIsaWNvbjp0LmZvcmVjYXN0QWN0aW9uPy5nZXRTdGF0ZSgpLmljb24sb25DbGljazooKT0+KDAsaS5lbnN1cmVOb3ROdWxsKSh0LmZvcmVjYXN0QWN0aW9uKS5leGVjdXRlKCksaGlkZGVuOnQuZm9yZWNhc3RBY3Rpb24/LmlzRGlzYWJsZWQoKT8/ITAsaXNTZWxlY3RlZDoiZm9yZWNhc3QiPT09Q30se2lkOiJlY29ub215LWluZGljYXRvcnMiLHRpdGxlOmEudChudWxsLHtjb250ZXh0OiJjb250ZW50X21lbnUifSxuKDM4ODc4NikpLGFuYWx5dGljc05hbWU6IkVjb25vbXkgaW5kaWNhdG9ycyIsaWNvbjp0LmVjb25vbXlJbmRpY2F0b3JzQWN0aW9uPy5nZXRTdGF0ZSgpLmljb24sb25DbGljazooKT0+KDAsaS5lbnN1cmVOb3ROdWxsKSh0LmVjb25vbXlJbmRpY2F0b3JzQWN0aW9uKS5leGVjdXRlKCksaGlkZGVuOnQuZWNvbm9teUluZGljYXRvcnNBY3Rpb24/LmlzRGlzYWJsZWQoKT8/ITAsaXNTZWxlY3RlZDoiZWNvbm9teS1pbmRpY2F0b3JzIj09PUN9LHtpZDoiY29tbXVuaXR5Iix0aXRsZTphLnQobnVsbCx7Y29udGV4dDoiY29udGVudF9tZW51In0sbig3MTM5MDUpKSxhbmFseXRpY3NOYW1lOiJDb21tdW5pdHkiLGljb246dC5jb21tdW5pdHlBY3Rpb24/LmdldFN0YXRlKCkuaWNvbixvbkNsaWNrOigpPT4oMCxpLmVuc3VyZU5vdE51bGwpKHQuY29tbXVuaXR5QWN0aW9uKS5leGVjdXRlKCksaGlkZGVuOnQuY29tbXVuaXR5QWN0aW9uPy5pc0Rpc2FibGVkKCk/PyEwLGlzU2VsZWN0ZWQ6ImNvbW11bml0eSI9PT1DfV0pfSx7dGl0bGU6YS50KG51bGwse2NvbnRleHQ6ImNvbnRlbnRfbWVudSJ9LG4oNjEyNTUpKSxhbmFseXRpY3NTdWJNZW51OiJJbnN0cnVtZW50cyIsaXRlbXM6Tihbe2lkOiJjb250cmFjdHMiLHRpdGxlOmEudChudWxsLHtjb250ZXh0OiJjb250ZW50X21lbnUifSxuKDI0NTE0NykpLGFuYWx5dGljc05hbWU6IkNvbnRyYWN0cyIsaWNvbjpwLG9uQ2xpY2s6KCk9PigwLHUuc2hvd0NvbnRyYWN0c0RpYWxvZykoKSxoaWRkZW46IXQuaGFzQ29udHJhY3RzLGlzU2VsZWN0ZWQ6ImNvbnRyYWN0cyI9PT1DfSx7aWQ6Im9wdGlvbnMiLHRpdGxlOmEudChudWxsLHtjb250ZXh0OiJjb250ZW50X21lbnUifSxuKDk1NDExMSkpLGFuYWx5dGljc05hbWU6Ik9wdGlvbnMiLGljb246dC5vcHRpb25zQWN0aW9uPy5nZXRTdGF0ZSgpLmljb24sb25DbGljazooKT0+KDAsaS5lbnN1cmVOb3ROdWxsKSh0Lm9wdGlvbnNBY3Rpb24pLmV4ZWN1dGUoKSxoaWRkZW46dC5vcHRpb25zQWN0aW9uPy5pc0Rpc2FibGVkKCk/PyEwLGlzU2VsZWN0ZWQ6Im9wdGlvbnMiPT09Q30se2lkOiJib25kcyIsdGl0bGU6YS50KG51bGwse2NvbnRleHQ6ImNvbnRlbnRfbWVudSJ9LG4oNjAyMTEzKSksYW5hbHl0aWNzTmFtZToiQm9uZHMiLGljb246dC5zdG9ja0JvbmRzQWN0aW9uPy5nZXRTdGF0ZSgpLmljb24sb25DbGljazooKT0+KDAsaS5lbnN1cmVOb3ROdWxsKSh0LnN0b2NrQm9uZHNBY3Rpb24pLmV4ZWN1dGUoKSxoaWRkZW46dC5zdG9ja0JvbmRzQWN0aW9uPy5pc0Rpc2FibGVkKCk/PyEwLGlzU2VsZWN0ZWQ6ImJvbmRzIj09PUN9LHtpZDoiZXRmcyIsdGl0bGU6YS50KG51bGwse2NvbnRleHQ6ImNvbnRlbnRfbWVudSJ9LG4oOTI3ODkpKSxhbmFseXRpY3NOYW1lOiJFVEZzIiwKaWNvbjp0LmV0ZnNBY3Rpb24/LmdldFN0YXRlKCkuaWNvbixvbkNsaWNrOigpPT4oMCxpLmVuc3VyZU5vdE51bGwpKHQuZXRmc0FjdGlvbikuZXhlY3V0ZSgpLGhpZGRlbjp0LmV0ZnNBY3Rpb24/LmlzRGlzYWJsZWQoKT8/ITAsaXNTZWxlY3RlZDoiZXRmcyI9PT1DfV0pfV0uZmlsdGVyKChlPT5lLml0ZW1zLmxlbmd0aCkpfWZ1bmN0aW9uIE4oZSl7cmV0dXJuIGUuZmlsdGVyKChlPT4hZS5oaWRkZW58fGUuaXNTZWxlY3RlZCkpfX0sMzE1ODUwKGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse3Nob3dDb250cmFjdHNEaWFsb2c6KCk9Pml9KTt2YXIgYT1uKDg5MDgzNSk7ZnVuY3Rpb24gaShlKXthLmN1cnJlbnRMYXlvdXQudmFsdWUoKT8uc2hvd0FuYWx5c2lzVmlldygiY29udHJhY3RzIixlKX19LDQ5MDIwNChlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtyZXNvbHZlVW5kZXJseWluZ1N5bWJvbDooKT0+aX0pO3ZhciBhPW4oMzIwNTUpO2FzeW5jIGZ1bmN0aW9uIGkoZSl7Y29uc3QgdD1hd2FpdCgwLGEuc25hcHNob3RlcikoKS5nZXRTbmFwc2hvdChlLG5ldyBTZXQoWyJ1bmRlcmx5aW5nLXN5bWJvbCJdKSk7aWYoImVycm9yIj09PXQuc3RhdHVzKXJldHVybiBudWxsO2NvbnN0IG49dC52YWx1ZXNbInVuZGVybHlpbmctc3ltYm9sIl07cmV0dXJuIG58fG51bGx9fSw1MTA1OTgoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7TGVhZGluZ0Vtb2ppVGV4dDooKT0+bH0pO3ZhciBhPW4oNzc5NDc0KSxpPW4oMjQ5ZTMpLG89big0Mjg5MjQpLHM9big5OTU4NTEpO2Z1bmN0aW9uIGwoZSl7Y29uc3R7dGV4dDp0LHRleHRSZW5kZXI6bixmaXJzdFNlZ21lbnRPbmx5Omw9ITEsc3BhY2VBZnRlckVtb2ppOnI9ITB9PWUse2xlYWRpbmdFbW9qaTpkLHByb2Nlc3NlZFRleHQ6dX09KDAsYS51c2VNZW1vKSgoKCk9PigwLGkucHJvY2Vzc1RleHRXaXRoTGVhZGluZ0Vtb2ppKSh7dGV4dDp0LHRleHRSZW5kZXI6bixmaXJzdFNlZ21lbnRPbmx5Omx9KSksW3QsbixsXSk7cmV0dXJuIGQ/YS5jcmVhdGVFbGVtZW50KGEuRnJhZ21lbnQsbnVsbCxhLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6cy5lbW9qaVdyYXB9LCLCoCIsYS5jcmVhdGVFbGVtZW50KG8uRW1vamlJdGVtLHtjbGFzc05hbWU6cy5lbW9qaSxlbW9qaTpkfSkpLCIiIT09dSYmYS5jcmVhdGVFbGVtZW50KGEuRnJhZ21lbnQsbnVsbCxyJiZhLmNyZWF0ZUVsZW1lbnQoYS5GcmFnbWVudCxudWxsLCLCoCIpLHUpKTphLmNyZWF0ZUVsZW1lbnQoYS5GcmFnbWVudCxudWxsLHUpfX0sMjQ5ZTMoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7Z2V0TGVhZGluZ0Vtb2ppSHRtbDooKT0+Yyxwcm9jZXNzVGV4dFdpdGhMZWFkaW5nRW1vamk6KCk9PnV9KTt2YXIgYT1uKDY0MTU5MyksaT1uKDkzMDIzMSksbz1uKDMxNTE1NCkscz1uKDQyNzc3MyksbD1uKDMzMzMxMikscj1uKDk5NTg1MSk7Y29uc3QgZD0oMCxpLmlzRmVhdHVyZXNldEVuYWJsZWQpKCJhZHZhbmNlZF9lbW9qaV9pbl90aXRsZXMiKTtmdW5jdGlvbiB1KGUpe2NvbnN0e3RleHQ6dCx0ZXh0UmVuZGVyOm49ZT0+ZSxmaXJzdFNlZ21lbnRPbmx5Omk9ITF9PWUsbD0oMCxhLmdldEZpcnN0U2VnbWVudE9yQ29kZVBvaW50U3RyaW5nKSh0KSxyPW51bGwhPT1sJiYoMCxvLmlzU3VwcG9ydGVkRW1vamkpKGwpP2w6cy5FTVBUWV9FTU9KSSx1PWk/bHx8IiI6dDtpZighZHx8cj09PXMuRU1QVFlfRU1PSkkpcmV0dXJue2xlYWRpbmdFbW9qaToiIixwcm9jZXNzZWRUZXh0Om4odSl9O3JldHVybntsZWFkaW5nRW1vamk6cixwcm9jZXNzZWRUZXh0Om4odS5yZXBsYWNlKHIsIiIpKX19ZnVuY3Rpb24gYyhlKXtjb25zdHtwcm9jZXNzZWRUZXh0OnQsbGVhZGluZ0Vtb2ppOm59PXUoe3RleHQ6ZX0pLGk9KDAsYS5odG1sRXNjYXBlKSh0KTtpZighbilyZXR1cm4gaTtyZXR1cm5gJHtmdW5jdGlvbihlKXtjb25zdCB0PSgwLGwuZ2V0VHdlbW9qaVVybCkoZSwicG5nIik7cmV0dXJuYDxzcGFuIGNsYXNzPSR7ci50b29sdGlwRW1vamlXcmFwfT4mbmJzcDxpbWcgY2xhc3M9JHtyLnRvb2x0aXBFbW9qaX0gc3JjPSR7dH0gZGVjb2Rpbmc9ImFzeW5jIiB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIGFsdD0iIiBkcmFnZ2FibGU9ImZhbHNlIi8+PC9zcGFuPmB9KG4pfSZuYnNwOyR7aX1gfX0sOTk0MTc4KGUsdCxuKXsidXNlIHN0cmljdCI7dmFyIGE9big5NjcxMjEpO2Z1bmN0aW9uIGkoKXt9ZnVuY3Rpb24gbygpe31vLnJlc2V0V2FybmluZ0NhY2hlPWksZS5leHBvcnRzPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZShlLHQsbixpLG8scyl7aWYocyE9PWEpe3ZhciBsPW5ldyBFcnJvcigiQ2FsbGluZyBQcm9wVHlwZXMgdmFsaWRhdG9ycyBkaXJlY3RseSBpcyBub3Qgc3VwcG9ydGVkIGJ5IHRoZSBgcHJvcC10eXBlc2AgcGFja2FnZS4gVXNlIFByb3BUeXBlcy5jaGVja1Byb3BUeXBlcygpIHRvIGNhbGwgdGhlbS4gUmVhZCBtb3JlIGF0IGh0dHA6Ly9mYi5tZS91c2UtY2hlY2stcHJvcC10eXBlcyIpO3Rocm93IGwubmFtZT0iSW52YXJpYW50IFZpb2xhdGlvbiIsbH19ZnVuY3Rpb24gdCgpe3JldHVybiBlfWUuaXNSZXF1aXJlZD1lO3ZhciBuPXthcnJheTplLGJvb2w6ZSxmdW5jOmUsbnVtYmVyOmUsb2JqZWN0OmUsc3RyaW5nOmUsc3ltYm9sOmUsYW55OmUsYXJyYXlPZjp0LGVsZW1lbnQ6ZSxlbGVtZW50VHlwZTplLGluc3RhbmNlT2Y6dCxub2RlOmUsb2JqZWN0T2Y6dCxvbmVPZjp0LG9uZU9mVHlwZTp0LHNoYXBlOnQsZXhhY3Q6dCxjaGVja1Byb3BUeXBlczpvLHJlc2V0V2FybmluZ0NhY2hlOml9O3JldHVybiBuLlByb3BUeXBlcz1uLG59fSwyMjE4OTYoZSx0LG4pe2UuZXhwb3J0cz1uKDk5NDE3OCkoKX0sOTY3MTIxKGUpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9IlNFQ1JFVF9ET19OT1RfUEFTU19USElTX09SX1lPVV9XSUxMX0JFX0ZJUkVEIn0sMTI5MzY1KGUsdCxuKXsidXNlIHN0cmljdCI7IWZ1bmN0aW9uIGUoKXsKaWYoInVuZGVmaW5lZCIhPXR5cGVvZiBfX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18mJiJmdW5jdGlvbiI9PXR5cGVvZiBfX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18uY2hlY2tEQ0UpdHJ5e19fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXy5jaGVja0RDRShlKX1jYXRjaChlKXtjb25zb2xlLmVycm9yKGUpfX0oKSxlLmV4cG9ydHM9big1MzIzODcpfSwxMjI3NDkoZSx0KXsidXNlIHN0cmljdCI7dmFyIG49U3ltYm9sLmZvcigicmVhY3QuZWxlbWVudCIpLGE9U3ltYm9sLmZvcigicmVhY3QucG9ydGFsIiksaT1TeW1ib2wuZm9yKCJyZWFjdC5mcmFnbWVudCIpLG89U3ltYm9sLmZvcigicmVhY3Quc3RyaWN0X21vZGUiKSxzPVN5bWJvbC5mb3IoInJlYWN0LnByb2ZpbGVyIiksbD1TeW1ib2wuZm9yKCJyZWFjdC5wcm92aWRlciIpLHI9U3ltYm9sLmZvcigicmVhY3QuY29udGV4dCIpLGQ9U3ltYm9sLmZvcigicmVhY3QuZm9yd2FyZF9yZWYiKSx1PVN5bWJvbC5mb3IoInJlYWN0LnN1c3BlbnNlIiksYz1TeW1ib2wuZm9yKCJyZWFjdC5tZW1vIiksaD1TeW1ib2wuZm9yKCJyZWFjdC5sYXp5Iiksdj1TeW1ib2wuaXRlcmF0b3I7dmFyIG09e2lzTW91bnRlZDpmdW5jdGlvbigpe3JldHVybiExfSxlbnF1ZXVlRm9yY2VVcGRhdGU6ZnVuY3Rpb24oKXt9LGVucXVldWVSZXBsYWNlU3RhdGU6ZnVuY3Rpb24oKXt9LGVucXVldWVTZXRTdGF0ZTpmdW5jdGlvbigpe319LHA9T2JqZWN0LmFzc2lnbixmPXt9O2Z1bmN0aW9uIGcoZSx0LG4pe3RoaXMucHJvcHM9ZSx0aGlzLmNvbnRleHQ9dCx0aGlzLnJlZnM9Zix0aGlzLnVwZGF0ZXI9bnx8bX1mdW5jdGlvbiBiKCl7fWZ1bmN0aW9uIHcoZSx0LG4pe3RoaXMucHJvcHM9ZSx0aGlzLmNvbnRleHQ9dCx0aGlzLnJlZnM9Zix0aGlzLnVwZGF0ZXI9bnx8bX1nLnByb3RvdHlwZS5pc1JlYWN0Q29tcG9uZW50PXt9LGcucHJvdG90eXBlLnNldFN0YXRlPWZ1bmN0aW9uKGUsdCl7aWYoIm9iamVjdCIhPXR5cGVvZiBlJiYiZnVuY3Rpb24iIT10eXBlb2YgZSYmbnVsbCE9ZSl0aHJvdyBFcnJvcigic2V0U3RhdGUoLi4uKTogdGFrZXMgYW4gb2JqZWN0IG9mIHN0YXRlIHZhcmlhYmxlcyB0byB1cGRhdGUgb3IgYSBmdW5jdGlvbiB3aGljaCByZXR1cm5zIGFuIG9iamVjdCBvZiBzdGF0ZSB2YXJpYWJsZXMuIik7dGhpcy51cGRhdGVyLmVucXVldWVTZXRTdGF0ZSh0aGlzLGUsdCwic2V0U3RhdGUiKX0sZy5wcm90b3R5cGUuZm9yY2VVcGRhdGU9ZnVuY3Rpb24oZSl7dGhpcy51cGRhdGVyLmVucXVldWVGb3JjZVVwZGF0ZSh0aGlzLGUsImZvcmNlVXBkYXRlIil9LGIucHJvdG90eXBlPWcucHJvdG90eXBlO3ZhciBDPXcucHJvdG90eXBlPW5ldyBiO0MuY29uc3RydWN0b3I9dyxwKEMsZy5wcm90b3R5cGUpLEMuaXNQdXJlUmVhY3RDb21wb25lbnQ9ITA7dmFyIF89QXJyYXkuaXNBcnJheSx5PU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHksUz17Y3VycmVudDpudWxsfSx4PXtrZXk6ITAscmVmOiEwLF9fc2VsZjohMCxfX3NvdXJjZTohMH07ZnVuY3Rpb24gRShlLHQsYSl7dmFyIGksbz17fSxzPW51bGwsbD1udWxsO2lmKG51bGwhPXQpZm9yKGkgaW4gdm9pZCAwIT09dC5yZWYmJihsPXQucmVmKSx2b2lkIDAhPT10LmtleSYmKHM9IiIrdC5rZXkpLHQpeS5jYWxsKHQsaSkmJiF4Lmhhc093blByb3BlcnR5KGkpJiYob1tpXT10W2ldKTt2YXIgcj1hcmd1bWVudHMubGVuZ3RoLTI7aWYoMT09PXIpby5jaGlsZHJlbj1hO2Vsc2UgaWYoMTxyKXtmb3IodmFyIGQ9QXJyYXkociksdT0wO3U8cjt1KyspZFt1XT1hcmd1bWVudHNbdSsyXTtvLmNoaWxkcmVuPWR9aWYoZSYmZS5kZWZhdWx0UHJvcHMpZm9yKGkgaW4gcj1lLmRlZmF1bHRQcm9wcyl2b2lkIDA9PT1vW2ldJiYob1tpXT1yW2ldKTtyZXR1cm57JCR0eXBlb2Y6bix0eXBlOmUsa2V5OnMscmVmOmwscHJvcHM6byxfb3duZXI6Uy5jdXJyZW50fX1mdW5jdGlvbiBNKGUpe3JldHVybiJvYmplY3QiPT10eXBlb2YgZSYmbnVsbCE9PWUmJmUuJCR0eXBlb2Y9PT1ufXZhciBrPS9cLysvZztmdW5jdGlvbiBJKGUsdCl7cmV0dXJuIm9iamVjdCI9PXR5cGVvZiBlJiZudWxsIT09ZSYmbnVsbCE9ZS5rZXk/ZnVuY3Rpb24oZSl7dmFyIHQ9eyI9IjoiPTAiLCI6IjoiPTIifTtyZXR1cm4iJCIrZS5yZXBsYWNlKC9bPTpdL2csKGZ1bmN0aW9uKGUpe3JldHVybiB0W2VdfSkpfSgiIitlLmtleSk6dC50b1N0cmluZygzNil9ZnVuY3Rpb24gVChlLHQsaSxvLHMpe3ZhciBsPXR5cGVvZiBlOyJ1bmRlZmluZWQiIT09bCYmImJvb2xlYW4iIT09bHx8KGU9bnVsbCk7dmFyIHI9ITE7aWYobnVsbD09PWUpcj0hMDtlbHNlIHN3aXRjaChsKXtjYXNlInN0cmluZyI6Y2FzZSJudW1iZXIiOnI9ITA7YnJlYWs7Y2FzZSJvYmplY3QiOnN3aXRjaChlLiQkdHlwZW9mKXtjYXNlIG46Y2FzZSBhOnI9ITB9fWlmKHIpcmV0dXJuIHM9cyhyPWUpLGU9IiI9PT1vPyIuIitJKHIsMCk6byxfKHMpPyhpPSIiLG51bGwhPWUmJihpPWUucmVwbGFjZShrLCIkJi8iKSsiLyIpLFQocyx0LGksIiIsKGZ1bmN0aW9uKGUpe3JldHVybiBlfSkpKTpudWxsIT1zJiYoTShzKSYmKHM9ZnVuY3Rpb24oZSx0KXtyZXR1cm57JCR0eXBlb2Y6bix0eXBlOmUudHlwZSxrZXk6dCxyZWY6ZS5yZWYscHJvcHM6ZS5wcm9wcyxfb3duZXI6ZS5fb3duZXJ9fShzLGkrKCFzLmtleXx8ciYmci5rZXk9PT1zLmtleT8iIjooIiIrcy5rZXkpLnJlcGxhY2UoaywiJCYvIikrIi8iKStlKSksdC5wdXNoKHMpKSwxO2lmKHI9MCxvPSIiPT09bz8iLiI6bysiOiIsXyhlKSlmb3IodmFyIGQ9MDtkPGUubGVuZ3RoO2QrKyl7dmFyIHU9bytJKGw9ZVtkXSxkKTtyKz1UKGwsdCxpLHUscyl9ZWxzZSBpZih1PWZ1bmN0aW9uKGUpe3JldHVybiBudWxsPT09ZXx8Im9iamVjdCIhPXR5cGVvZiBlP251bGw6ImZ1bmN0aW9uIj09dHlwZW9mKGU9diYmZVt2XXx8ZVsiQEBpdGVyYXRvciJdKT9lOm51bGx9KGUpLCJmdW5jdGlvbiI9PXR5cGVvZiB1KWZvcihlPXUuY2FsbChlKSwKZD0wOyEobD1lLm5leHQoKSkuZG9uZTspcis9VChsPWwudmFsdWUsdCxpLHU9bytJKGwsZCsrKSxzKTtlbHNlIGlmKCJvYmplY3QiPT09bCl0aHJvdyB0PVN0cmluZyhlKSxFcnJvcigiT2JqZWN0cyBhcmUgbm90IHZhbGlkIGFzIGEgUmVhY3QgY2hpbGQgKGZvdW5kOiAiKygiW29iamVjdCBPYmplY3RdIj09PXQ/Im9iamVjdCB3aXRoIGtleXMgeyIrT2JqZWN0LmtleXMoZSkuam9pbigiLCAiKSsifSI6dCkrIikuIElmIHlvdSBtZWFudCB0byByZW5kZXIgYSBjb2xsZWN0aW9uIG9mIGNoaWxkcmVuLCB1c2UgYW4gYXJyYXkgaW5zdGVhZC4iKTtyZXR1cm4gcn1mdW5jdGlvbiBBKGUsdCxuKXtpZihudWxsPT1lKXJldHVybiBlO3ZhciBhPVtdLGk9MDtyZXR1cm4gVChlLGEsIiIsIiIsKGZ1bmN0aW9uKGUpe3JldHVybiB0LmNhbGwobixlLGkrKyl9KSksYX1mdW5jdGlvbiBIKGUpe2lmKC0xPT09ZS5fc3RhdHVzKXt2YXIgdD1lLl9yZXN1bHQ7KHQ9dCgpKS50aGVuKChmdW5jdGlvbih0KXswIT09ZS5fc3RhdHVzJiYtMSE9PWUuX3N0YXR1c3x8KGUuX3N0YXR1cz0xLGUuX3Jlc3VsdD10KX0pLChmdW5jdGlvbih0KXswIT09ZS5fc3RhdHVzJiYtMSE9PWUuX3N0YXR1c3x8KGUuX3N0YXR1cz0yLGUuX3Jlc3VsdD10KX0pKSwtMT09PWUuX3N0YXR1cyYmKGUuX3N0YXR1cz0wLGUuX3Jlc3VsdD10KX1pZigxPT09ZS5fc3RhdHVzKXJldHVybiBlLl9yZXN1bHQuZGVmYXVsdDt0aHJvdyBlLl9yZXN1bHR9dmFyIFY9e2N1cnJlbnQ6bnVsbH0sUj17dHJhbnNpdGlvbjpudWxsfSxGPXtSZWFjdEN1cnJlbnREaXNwYXRjaGVyOlYsUmVhY3RDdXJyZW50QmF0Y2hDb25maWc6UixSZWFjdEN1cnJlbnRPd25lcjpTfTt0LkNoaWxkcmVuPXttYXA6QSxmb3JFYWNoOmZ1bmN0aW9uKGUsdCxuKXtBKGUsKGZ1bmN0aW9uKCl7dC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9KSxuKX0sY291bnQ6ZnVuY3Rpb24oZSl7dmFyIHQ9MDtyZXR1cm4gQShlLChmdW5jdGlvbigpe3QrK30pKSx0fSx0b0FycmF5OmZ1bmN0aW9uKGUpe3JldHVybiBBKGUsKGZ1bmN0aW9uKGUpe3JldHVybiBlfSkpfHxbXX0sb25seTpmdW5jdGlvbihlKXtpZighTShlKSl0aHJvdyBFcnJvcigiUmVhY3QuQ2hpbGRyZW4ub25seSBleHBlY3RlZCB0byByZWNlaXZlIGEgc2luZ2xlIFJlYWN0IGVsZW1lbnQgY2hpbGQuIik7cmV0dXJuIGV9fSx0LkNvbXBvbmVudD1nLHQuRnJhZ21lbnQ9aSx0LlByb2ZpbGVyPXMsdC5QdXJlQ29tcG9uZW50PXcsdC5TdHJpY3RNb2RlPW8sdC5TdXNwZW5zZT11LHQuX19TRUNSRVRfSU5URVJOQUxTX0RPX05PVF9VU0VfT1JfWU9VX1dJTExfQkVfRklSRUQ9Rix0LmNsb25lRWxlbWVudD1mdW5jdGlvbihlLHQsYSl7aWYobnVsbD09ZSl0aHJvdyBFcnJvcigiUmVhY3QuY2xvbmVFbGVtZW50KC4uLik6IFRoZSBhcmd1bWVudCBtdXN0IGJlIGEgUmVhY3QgZWxlbWVudCwgYnV0IHlvdSBwYXNzZWQgIitlKyIuIik7dmFyIGk9cCh7fSxlLnByb3BzKSxvPWUua2V5LHM9ZS5yZWYsbD1lLl9vd25lcjtpZihudWxsIT10KXtpZih2b2lkIDAhPT10LnJlZiYmKHM9dC5yZWYsbD1TLmN1cnJlbnQpLHZvaWQgMCE9PXQua2V5JiYobz0iIit0LmtleSksZS50eXBlJiZlLnR5cGUuZGVmYXVsdFByb3BzKXZhciByPWUudHlwZS5kZWZhdWx0UHJvcHM7Zm9yKGQgaW4gdCl5LmNhbGwodCxkKSYmIXguaGFzT3duUHJvcGVydHkoZCkmJihpW2RdPXZvaWQgMD09PXRbZF0mJnZvaWQgMCE9PXI/cltkXTp0W2RdKX12YXIgZD1hcmd1bWVudHMubGVuZ3RoLTI7aWYoMT09PWQpaS5jaGlsZHJlbj1hO2Vsc2UgaWYoMTxkKXtyPUFycmF5KGQpO2Zvcih2YXIgdT0wO3U8ZDt1Kyspclt1XT1hcmd1bWVudHNbdSsyXTtpLmNoaWxkcmVuPXJ9cmV0dXJueyQkdHlwZW9mOm4sdHlwZTplLnR5cGUsa2V5Om8scmVmOnMscHJvcHM6aSxfb3duZXI6bH19LHQuY3JlYXRlQ29udGV4dD1mdW5jdGlvbihlKXtyZXR1cm4oZT17JCR0eXBlb2Y6cixfY3VycmVudFZhbHVlOmUsX2N1cnJlbnRWYWx1ZTI6ZSxfdGhyZWFkQ291bnQ6MCxQcm92aWRlcjpudWxsLENvbnN1bWVyOm51bGwsX2RlZmF1bHRWYWx1ZTpudWxsLF9nbG9iYWxOYW1lOm51bGx9KS5Qcm92aWRlcj17JCR0eXBlb2Y6bCxfY29udGV4dDplfSxlLkNvbnN1bWVyPWV9LHQuY3JlYXRlRWxlbWVudD1FLHQuY3JlYXRlRmFjdG9yeT1mdW5jdGlvbihlKXt2YXIgdD1FLmJpbmQobnVsbCxlKTtyZXR1cm4gdC50eXBlPWUsdH0sdC5jcmVhdGVSZWY9ZnVuY3Rpb24oKXtyZXR1cm57Y3VycmVudDpudWxsfX0sdC5mb3J3YXJkUmVmPWZ1bmN0aW9uKGUpe3JldHVybnskJHR5cGVvZjpkLHJlbmRlcjplfX0sdC5pc1ZhbGlkRWxlbWVudD1NLHQubGF6eT1mdW5jdGlvbihlKXtyZXR1cm57JCR0eXBlb2Y6aCxfcGF5bG9hZDp7X3N0YXR1czotMSxfcmVzdWx0OmV9LF9pbml0Okh9fSx0Lm1lbW89ZnVuY3Rpb24oZSx0KXtyZXR1cm57JCR0eXBlb2Y6Yyx0eXBlOmUsY29tcGFyZTp2b2lkIDA9PT10P251bGw6dH19LHQuc3RhcnRUcmFuc2l0aW9uPWZ1bmN0aW9uKGUpe3ZhciB0PVIudHJhbnNpdGlvbjtSLnRyYW5zaXRpb249e307dHJ5e2UoKX1maW5hbGx5e1IudHJhbnNpdGlvbj10fX0sdC51bnN0YWJsZV9hY3Q9ZnVuY3Rpb24oKXt0aHJvdyBFcnJvcigiYWN0KC4uLikgaXMgbm90IHN1cHBvcnRlZCBpbiBwcm9kdWN0aW9uIGJ1aWxkcyBvZiBSZWFjdC4iKX0sdC51c2VDYWxsYmFjaz1mdW5jdGlvbihlLHQpe3JldHVybiBWLmN1cnJlbnQudXNlQ2FsbGJhY2soZSx0KX0sdC51c2VDb250ZXh0PWZ1bmN0aW9uKGUpe3JldHVybiBWLmN1cnJlbnQudXNlQ29udGV4dChlKX0sdC51c2VEZWJ1Z1ZhbHVlPWZ1bmN0aW9uKCl7fSx0LnVzZURlZmVycmVkVmFsdWU9ZnVuY3Rpb24oZSl7cmV0dXJuIFYuY3VycmVudC51c2VEZWZlcnJlZFZhbHVlKGUpfSx0LnVzZUVmZmVjdD1mdW5jdGlvbihlLHQpe3JldHVybiBWLmN1cnJlbnQudXNlRWZmZWN0KGUsdCl9LHQudXNlSWQ9ZnVuY3Rpb24oKXtyZXR1cm4gVi5jdXJyZW50LnVzZUlkKCl9LHQudXNlSW1wZXJhdGl2ZUhhbmRsZT1mdW5jdGlvbihlLHQsbil7CnJldHVybiBWLmN1cnJlbnQudXNlSW1wZXJhdGl2ZUhhbmRsZShlLHQsbil9LHQudXNlSW5zZXJ0aW9uRWZmZWN0PWZ1bmN0aW9uKGUsdCl7cmV0dXJuIFYuY3VycmVudC51c2VJbnNlcnRpb25FZmZlY3QoZSx0KX0sdC51c2VMYXlvdXRFZmZlY3Q9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gVi5jdXJyZW50LnVzZUxheW91dEVmZmVjdChlLHQpfSx0LnVzZU1lbW89ZnVuY3Rpb24oZSx0KXtyZXR1cm4gVi5jdXJyZW50LnVzZU1lbW8oZSx0KX0sdC51c2VSZWR1Y2VyPWZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gVi5jdXJyZW50LnVzZVJlZHVjZXIoZSx0LG4pfSx0LnVzZVJlZj1mdW5jdGlvbihlKXtyZXR1cm4gVi5jdXJyZW50LnVzZVJlZihlKX0sdC51c2VTdGF0ZT1mdW5jdGlvbihlKXtyZXR1cm4gVi5jdXJyZW50LnVzZVN0YXRlKGUpfSx0LnVzZVN5bmNFeHRlcm5hbFN0b3JlPWZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gVi5jdXJyZW50LnVzZVN5bmNFeHRlcm5hbFN0b3JlKGUsdCxuKX0sdC51c2VUcmFuc2l0aW9uPWZ1bmN0aW9uKCl7cmV0dXJuIFYuY3VycmVudC51c2VUcmFuc2l0aW9uKCl9LHQudmVyc2lvbj0iMTguMi4wIn0sNzc5NDc0KGUsdCxuKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPW4oMTIyNzQ5KX0sMjY3MDI4KGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse1NFUklFU19JQ09OUzooKT0+eH0pO3ZhciBhPW4oNzIyNzYzKSxpPW4oOTE3Njk2KSxvPW4oNzczMjY1KSxzPW4oNDU1NjM4KSxsPW4oNjU5NTA1KSxyPW4oNjQ3NjMwKSxkPW4oMTkyNDgyKSx1PW4oOTg3MDIxKSxjPW4oOTU5MjMpLGg9big4Njc1NDUpLHY9big1MjI5NDYpLG09bigyMTYzMzUpLHA9bigzNzYxNiksZj1uKDUwMDUwNyksZz1uKDM4MTkyMyksYj1uKDQyMDM0MCksdz1uKDk2NTYzNSksQz1uKDI0MzQwMiksXz1uKDg0MjA1MSkseT1uKDIxNTQ4MCksUz1uKDQ0MzE2Nyk7Y29uc3QgeD17MzpoLDE2OnYsMDptLDE6cCw4OmYsOTpnLDI6YiwxNDp3LDE1OkMsMTA6XywxMjp5LDEzOlN9O3hbNF09YSx4WzZdPWkseFs3XT1vLHhbNV09cyx4WzE5XT1sLHhbMTFdPXIseFsxN109ZCx4WzE4XT11LHhbMjBdPWN9LDgyNDU5MChlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtnZXRTdHVkeVRlbXBsYXRlRGVzY1N0cmluZzooKT0+YX0pO24oOTQzOTUpO2Z1bmN0aW9uIGEoZSl7Y29uc3QgdD1uZXcgTWFwO3JldHVybiBlLmZvckVhY2goKGU9Pntjb25zdFtuLGFdPXQuZ2V0KGUuaWQpfHxbZS5kZXNjcmlwdGlvbiwwXTt0LnNldChlLmlkLFtuLGErMV0pfSkpLEFycmF5LmZyb20odC52YWx1ZXMoKSkubWFwKCgoW2UsdF0pPT5gJHtlfSR7dD4xP2AgeCAke3R9YDoiIn1gKSkuam9pbigiLCAiKX19LDMxMzgyMihlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtGYXZvcml0ZUZ1bmRhbWVudGFsczooKT0+cn0pO3ZhciBhPW4oOTMwNTY2KSxpPW4oMTUyNjk5KSxvPW4oOTQ4MzgwKTtjb25zdCBzPSJmdW5kYW1lbnRhbHMuZmF2b3JpdGVzIjtsZXQgbD1udWxsO2NsYXNzIHJ7Y29uc3RydWN0b3IoKXt0aGlzLl9mYXZvcml0ZXM9W10sdGhpcy5fZmF2b3JpdGVzQ2hhbmdlZD1uZXcgby5EZWxlZ2F0ZSxpLlRWWFdpbmRvd0V2ZW50cy5vbigiRnVuZEZhdm9yaXRlc0NoYW5nZWQiLChlPT57Y29uc3QgdD1KU09OLnBhcnNlKGUpO3RoaXMuX2xvYWRGcm9tU3RhdGUodHx8W10pfSkpLGEub25TeW5jLnN1YnNjcmliZSh0aGlzLHRoaXMuX2xvYWRGYXZzKSx0aGlzLl9sb2FkRmF2cygpfWlzRmF2KGUpe3JldHVybi0xIT09dGhpcy5fZmluZEZhdkluZGV4KGUpfXRvZ2dsZUZhdm9yaXRlKGUpe3RoaXMuaXNGYXYoZSk/dGhpcy5yZW1vdmVGYXZvcml0ZShlKTp0aGlzLmFkZEZhdm9yaXRlKGUpfXRvZ2dsZUZhdm9yaXRlQXJyYXkoZSl7Y29uc3QgdD1lLnNvbWUoKGU9PnRoaXMuaXNGYXYoZSkpKTtlLmZvckVhY2goKGU9PntpZih0KXtjb25zdCB0PXRoaXMuX2ZpbmRGYXZJbmRleChlKTstMSE9PXQmJnRoaXMuX2Zhdm9yaXRlcy5zcGxpY2UodCwxKX1lbHNlIHRoaXMuX2Zhdm9yaXRlcy5wdXNoKGUpfSkpLHRoaXMuX2Zhdm9yaXRlc0NoYW5nZWQuZmlyZSgpLHRoaXMuX3NhdmVGYXZzKCl9YWRkRmF2b3JpdGUoZSl7dGhpcy5fZmF2b3JpdGVzLnB1c2goZSksdGhpcy5fZmF2b3JpdGVzQ2hhbmdlZC5maXJlKCksdGhpcy5fc2F2ZUZhdnMoKX1yZW1vdmVGYXZvcml0ZShlKXtjb25zdCB0PXRoaXMuX2ZpbmRGYXZJbmRleChlKTstMSE9PXQmJih0aGlzLl9mYXZvcml0ZXMuc3BsaWNlKHQsMSksdGhpcy5fZmF2b3JpdGVzQ2hhbmdlZC5maXJlKCkpLHRoaXMuX3NhdmVGYXZzKCl9ZmF2b3JpdGVzKCl7cmV0dXJuIHRoaXMuX2Zhdm9yaXRlc31mYXZvcml0ZXNDaGFuZ2VkKCl7cmV0dXJuIHRoaXMuX2Zhdm9yaXRlc0NoYW5nZWR9c3RhdGljIGdldEluc3RhbmNlKCl7cmV0dXJuIG51bGw9PT1sJiYobD1uZXcgciksbH1fbG9hZEZhdnMoKXtjb25zdCBlPWEuZ2V0SlNPTihzLFtdKTt0aGlzLl9sb2FkRnJvbVN0YXRlKGUpfV9zYXZlRmF2cygpe2Euc2V0SlNPTihzLHRoaXMuX2Zhdm9yaXRlcyx7Zm9yY2VGbHVzaDohMH0pLGkuVFZYV2luZG93RXZlbnRzLmVtaXQoIkZ1bmRGYXZvcml0ZXNDaGFuZ2VkIixKU09OLnN0cmluZ2lmeSh0aGlzLl9mYXZvcml0ZXMpKX1fbG9hZEZyb21TdGF0ZShlKXt0aGlzLl9mYXZvcml0ZXM9ZSx0aGlzLl9mYXZvcml0ZXNDaGFuZ2VkLmZpcmUoKX1fZmluZEZhdkluZGV4KGUpe3JldHVybiB0aGlzLl9mYXZvcml0ZXMuaW5kZXhPZihlKX19fSw2ODU5NzkoZSx0LG4peyJ1c2Ugc3RyaWN0Ijt2YXIgYSxpLG89big0ODI1MDQpLHtjbG9uZTpzfT1uKDYwMTg0MSksbD0oYT17fSxpPW5ldyBTZXQse3N1Z2dlc3Q6ZnVuY3Rpb24oZSx0KXt2YXIgbj1vLmFqYXgoe3VybDp0fHwiL3B1YnNjcmlwdHMtc3VnZ2VzdC1qc29uLyIsdHlwZToiR0VUIixkYXRhOntzZWFyY2g6ZX0sZGF0YVR5cGU6Impzb24ifSk7cmV0dXJuIG4uZG9uZSgoZnVuY3Rpb24oZSl7CmlmKGUmJmUucmVzdWx0cylmb3IodmFyIHQ9MDt0PGUucmVzdWx0cy5sZW5ndGg7dCsrKWFbZS5yZXN1bHRzW3RdLnNjcmlwdElkUGFydF18fChhW2UucmVzdWx0c1t0XS5zY3JpcHRJZFBhcnRdPXMoZS5yZXN1bHRzW3RdKSl9KSksbn0saW5mbzpmdW5jdGlvbihlLHQ9ITEpe2Zvcih2YXIgbj1vLkRlZmVycmVkKCksbD1bXSxyPVtdLGQ9MDtkPGUubGVuZ3RoO2QrKyl7dmFyIHU9ZVtkXSxjPXR8fCFpLmhhcyh1KTthW3VdP2wucHVzaChzKGFbdV0pKTpyLmxlbmd0aDwzZTMmJmMmJnIucHVzaCh1KX1pZighci5sZW5ndGgpcmV0dXJuIG4ucmVzb2x2ZShsKS5wcm9taXNlKCk7dmFyIGg9e3NjcmlwdElkUGFydDpyLmpvaW4oIiwiKSxzaG93X2hpZGRlbjp0fTtyZXR1cm4gby5hamF4KHt1cmw6Ii9wdWJzY3JpcHRzLWdldC8iLHR5cGU6IlBPU1QiLGRhdGE6aCxkYXRhVHlwZToianNvbiJ9KS5kb25lKChmdW5jdGlvbihlKXtlPWV8fFtdO3ZhciB0PW5ldyBTZXQocik7Zm9yKHZhciBvIGluIGUpe3ZhciBkPWVbb107YVtkLnNjcmlwdElkUGFydF09cyhkKSxsLnB1c2goZCksdC5oYXMoZC5zY3JpcHRJZFBhcnQpJiZ0LmRlbGV0ZShkLnNjcmlwdElkUGFydCl9dC5mb3JFYWNoKChmdW5jdGlvbihlKXtpLmFkZChlKX0pKSxuLnJlc29sdmUobCl9KSkuZmFpbCgoZnVuY3Rpb24oKXtuLnJlamVjdCgpfSkpLG59LGludmFsaWRhdGVDYWNoZTpmdW5jdGlvbihlKXtlLmZvckVhY2goKGZ1bmN0aW9uKGUpe2RlbGV0ZSBhW2VdfSkpfSxjbGVhbkNhY2hlOmZ1bmN0aW9uKCl7YT1bXX19KTtlLmV4cG9ydHM9bH0sNjA0OTEyKGUpe2UuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxOCAxOCIgd2lkdGg9IjE4IiBoZWlnaHQ9IjE4Ij48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGQ9Ik0zLjUgOGE0LjUgNC41IDAgMSAxIDkgMCA0LjUgNC41IDAgMCAxLTkgMFpNOCAyYTYgNiAwIDEgMCAzLjY1IDEwLjc2bDMuNTggMy41OCAxLjA2LTEuMDYtMy41Ny0zLjU3QTYgNiAwIDAgMCA4IDJaIi8+PC9zdmc+J30sNTIyOTQ2KGUpe2UuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyOCAyOCIgd2lkdGg9IjI4IiBoZWlnaHQ9IjI4IiBmaWxsPSJjdXJyZW50Q29sb3IiPjxwYXRoIGQ9Ik0yMiA1aDF2MWgtMXptLTEgMlY2aDF2MXptLTEgMVY3aDF2MXptLTEgMVY4aDF2MXptLTEgMVY5aDF2MXptLTEgMXYtMWgxdjF6bS0xIDF2LTFoMXYxem0tMSAwaDF2MWgtMXptLTEtMWgxdjFoLTF6bS0xLTFoMXYxaC0xem0tMS0xaDF2MWgtMXptLTEtMWgxdjFoLTF6bS0xIDBWN2gxdjF6TTkgOVY4aDF2MXptLTEgMVY5aDF2MXptLTEgMXYtMWgxdjF6bS0xIDF2LTFoMXYxem0tMSAxdi0xaDF2MXptMCAwdjFINHYtMXoiLz48cGF0aCBkPSJNMjMuMzQgMTAuMzcgMTUuNSAxNy43bC01LTUtNS4xNSA0LjY3LS42OC0uNzQgNS44Ni01LjMyIDUgNSA3LjE0LTYuNjd6TTYgMjFINXYxaDF6bTEtMXYxSDZ2LTF6bTEtMUg3djFoMXptMS0xdjFIOHYtMXoiLz48cGF0aCBkPSJNMTAgMTdIOXYxaDF6bTEgMGgtMXYtMWgxem0xIDFoLTF2LTFoMXptMSAxdi0xaC0xdjF6bTEgMWgtMXYtMWgxem0xIDF2LTFoLTF2MXptMSAwdjFoLTF2LTF6bTEtMXYxaC0xdi0xem0xLTF2MWgtMXYtMXptMS0xaC0xdjFoMXptMS0xdjFoLTF2LTF6bTEtMWgtMXYxaDF6bTEtMXYxaC0xdi0xem0xLTFoLTF2MWgxem0wIDBoMXYtMWgtMXoiLz48L3N2Zz4nfSw3NjE5NzEoZSl7ZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDI4IDI4IiB3aWR0aD0iMjgiIGhlaWdodD0iMjgiPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZD0iTTUgNy41QzUgNi42NyA1LjY3IDYgNi41IDZoNC4ybDIgMmg4LjhjLjgzIDAgMS41LjY3IDEuNSAxLjV2MTBjMCAuODMtLjY3IDEuNS0xLjUgMS41aC0xNUExLjUgMS41IDAgMCAxIDUgMTkuNXYtMTJaTTYuNSA3YS41LjUgMCAwIDAtLjUuNVYxMWgxNlY5LjVhLjUuNSAwIDAgMC0uNS0uNWgtOS4ybC0yLTJINi41Wk0yMiAxMkg2djcuNWMwIC4yOC4yMi41LjUuNWgxNWEuNS41IDAgMCAwIC41LS41VjEyWiIvPjwvc3ZnPid9LDI2NjEwMChlKXtlLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMjggMjgiIHdpZHRoPSIyOCIgaGVpZ2h0PSIyOCI+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBkPSJNMTMuOSAxNC4xVjIyaDEuMnYtNy45SDIzdi0xLjJoLTcuOVY1aC0xLjJ2Ny45SDZ2MS4yaDcuOVoiLz48L3N2Zz4nfSw2MDk1MzQoZSl7ZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDI4IDI4IiB3aWR0aD0iMjgiIGhlaWdodD0iMjgiIGZpbGw9ImN1cnJlbnRDb2xvciI+PHBhdGggZD0iTTE3IDR2NGgyYTEgMSAwIDAgMSAuODMgMS41NWwtNCA2QTEgMSAwIDAgMSAxNCAxNXYtNGgtMmExIDEgMCAwIDEtLjgzLTEuNTVsNC02QTEgMSAwIDAgMSAxNyA0bS0yIDExIDQtNmgtM1Y0bC00IDZoM3oiLz48cGF0aCBkPSJNNSAxMy41YTcuNSA3LjUgMCAwIDEgNi03LjM1djEuMDJBNi41IDYuNSAwIDEgMCAxOC45OCAxM2gxbC4wMi41YTcuNDcgNy40NyAwIDAgMS0xLjg1IDQuOTRMMjMgMjMuMjlsLS43MS43LTQuODUtNC44NEE3LjUgNy41IDAgMCAxIDUgMTMuNSIvPjwvc3ZnPid9LDE1OTg3NyhlKXsKZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDI4IDI4IiB3aWR0aD0iMjgiIGhlaWdodD0iMjgiPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNOCA3aDNhMSAxIDAgMCAxIDEgMXYzYTEgMSAwIDAgMS0xIDFIOGExIDEgMCAwIDEtMS0xVjhhMSAxIDAgMCAxIDEtMXpNNiA4YzAtMS4xLjktMiAyLTJoM2EyIDIgMCAwIDEgMiAydjNhMiAyIDAgMCAxLTIgMkg4YTIgMiAwIDAgMS0yLTJWOHptMTEtMWgzYTEgMSAwIDAgMSAxIDF2M2ExIDEgMCAwIDEtMSAxaC0zYTEgMSAwIDAgMS0xLTFWOGExIDEgMCAwIDEgMS0xem0tMiAxYzAtMS4xLjktMiAyLTJoM2EyIDIgMCAwIDEgMiAydjNhMiAyIDAgMCAxLTIgMmgtM2EyIDIgMCAwIDEtMi0yVjh6bS00IDhIOGExIDEgMCAwIDAtMSAxdjNhMSAxIDAgMCAwIDEgMWgzYTEgMSAwIDAgMCAxLTF2LTNhMSAxIDAgMCAwLTEtMXptLTMtMWEyIDIgMCAwIDAtMiAydjNjMCAxLjEuOSAyIDIgMmgzYTIgMiAwIDAgMCAyLTJ2LTNhMiAyIDAgMCAwLTItMkg4em05IDFoM2ExIDEgMCAwIDEgMSAxdjNhMSAxIDAgMCAxLTEgMWgtM2ExIDEgMCAwIDEtMS0xdi0zYTEgMSAwIDAgMSAxLTF6bS0yIDFjMC0xLjEuOS0yIDItMmgzYTIgMiAwIDAgMSAyIDJ2M2EyIDIgMCAwIDEtMiAyaC0zYTIgMiAwIDAgMS0yLTJ2LTN6Ii8+PC9zdmc+J30sNDM0MDM3KGUpe2UuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyOCAyOCIgd2lkdGg9IjI4IiBoZWlnaHQ9IjI4IiBmaWxsPSJub25lIj48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGQ9Ik03IDE4LjVBMi41IDIuNSAwIDAgMCA5LjUgMjFIMTJ2MUg5LjVBMy41IDMuNSAwIDAgMSA2IDE4LjVWMTZoMXptMTUgMGEzLjUgMy41IDAgMCAxLTMuNSAzLjVIMTZ2LTFoMi41YTIuNSAyLjUgMCAwIDAgMi41LTIuNVYxNmgxek0xMiA3SDkuNUEyLjUgMi41IDAgMCAwIDcgOS41VjEySDZWOS41QTMuNSAzLjUgMCAwIDEgOS41IDZIMTJ6bTYuNS0xQTMuNSAzLjUgMCAwIDEgMjIgOS41VjEyaC0xVjkuNUEyLjUgMi41IDAgMCAwIDE4LjUgN0gxNlY2eiIvPjwvc3ZnPid9LDE3NTQ2NyhlKXtlLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMjggMjgiIHdpZHRoPSIyOCIgaGVpZ2h0PSIyOCIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBkPSJNOC41IDE3YTIuNSAyLjUgMCAwIDEgMi41IDIuNVYyMmgtMXYtMi41QTEuNSAxLjUgMCAwIDAgOC41IDE4SDZ2LTF6TTIyIDE4aC0yLjVhMS41IDEuNSAwIDAgMC0xLjUgMS41VjIyaC0xdi0yLjVhMi41IDIuNSAwIDAgMSAyLjUtMi41SDIyek0xMSA4LjVBMi41IDIuNSAwIDAgMSA4LjUgMTFINnYtMWgyLjVBMS41IDEuNSAwIDAgMCAxMCA4LjVWNmgxem03IDBhMS41IDEuNSAwIDAgMCAxLjUgMS41SDIydjFoLTIuNUEyLjUgMi41IDAgMCAxIDE3IDguNVY2aDF6Ii8+PC9zdmc+J30sNzU1Mjk0KGUpe2UuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxOCAxOCIgd2lkdGg9IjE4IiBoZWlnaHQ9IjE4IiBmaWxsPSJub25lIj48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGQ9Ik03IDEwYTMgMyAwIDAgMSAzIDNIOWEyIDIgMCAwIDAtMi0ySDRhMiAyIDAgMCAwLTIgMkgxYTMgMyAwIDAgMSAzLTN6bTcgMGEzIDMgMCAwIDEgMyAzaC0xYTIgMiAwIDAgMC0yLTJoLTR2LTF6TTUuODU3IDQuMDA1YTIuMyAyLjMgMCAwIDEgMi4xMzggMi4xMzhDOCA2LjIyIDggNi4zMTUgOCA2LjVzMCAuMjgtLjAwNS4zNTdsLS4wMjQuMjEyYTIuMyAyLjMgMCAwIDEtMi4xMTQgMS45MjZMNS41IDlsLS4zNTctLjAwNUEyLjMgMi4zIDAgMCAxIDMuMDI5IDcuMDdsLS4wMjQtLjIxMkMzIDYuNzggMyA2LjY4NSAzIDYuNXMwLS4yOC4wMDUtLjM1N2EyLjMgMi4zIDAgMCAxIDIuMTM4LTIuMTM4QzUuMjIgNCA1LjMxNSA0IDUuNSA0cy4yOCAwIC4zNTcuMDA1bTcgMGEyLjMgMi4zIDAgMCAxIDIuMTM4IDIuMTM4QzE1IDYuMjIgMTUgNi4zMTUgMTUgNi41czAgLjI4LS4wMDUuMzU3bC0uMDI0LjIxMmEyLjMgMi4zIDAgMCAxLTIuMTE0IDEuOTI2TDEyLjUgOWwtLjM1Ny0uMDA1YTIuMyAyLjMgMCAwIDEtMi4xMTQtMS45MjZsLS4wMjQtLjIxMkMxMCA2Ljc4IDEwIDYuNjg1IDEwIDYuNXMwLS4yOC4wMDUtLjM1N2EyLjMgMi4zIDAgMCAxIDIuMTM4LTIuMTM4QzEyLjIyIDQgMTIuMzE1IDQgMTIuNSA0cy4yOCAwIC4zNTcuMDA1bS03LjY0Ni45OThBMS4zIDEuMyAwIDAgMCA0LjAwMyA2LjIxIDYgNiAwIDAgMCA0IDYuNWMwIC4yMDEgMCAuMjUzLjAwMy4yOUExLjMgMS4zIDAgMCAwIDUuMjEgNy45OTZDNS4yNDcgOCA1LjI5OCA4IDUuNSA4cy4yNTMgMCAuMjktLjAwM0ExLjMgMS4zIDAgMCAwIDYuOTk2IDYuNzlDNyA2Ljc1MyA3IDYuNzAxIDcgNi41czAtLjI1My0uMDAzLS4yODlBMS4zIDEuMyAwIDAgMCA1Ljc5IDUuMDAzIDYgNiAwIDAgMCA1LjUgNWE2IDYgMCAwIDAtLjI5LjAwM203IDBhMS4zIDEuMyAwIDAgMC0xLjIwOCAxLjIwOEE2IDYgMCAwIDAgMTEgNi41YzAgLjIwMSAwIC4yNTMuMDAzLjI5YTEuMyAxLjMgMCAwIDAgMS4yMDggMS4yMDdjLjAzNi4wMDMuMDg3LjAwMy4yODkuMDAzcy4yNTMgMCAuMjktLjAwM2ExLjMgMS4zIDAgMCAwIDEuMjA3LTEuMjA4QzE0IDYuNzUzIDE0IDYuNzAxIDE0IDYuNXMwLS4yNTMtLjAwMy0uMjg5YTEuMyAxLjMgMCAwIDAtMS4yMDgtMS4yMDhBNiA2IDAgMCAwIDEyLjUgNWMtLjIwMiAwLS4yNTMgMC0uMjkuMDAzIi8+PC9zdmc+J30sMjc1ODM1KGUpewplLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMjggMjgiIHdpZHRoPSIyOCIgaGVpZ2h0PSIyOCIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBkPSJNMjIgMjRINlY0aDE2ek03IDIzaDE0VjVIN3ptMTItNS4zMzVMMTUuODYzIDIxbC0yLjEyOS0xLjUzMS41NzktLjgxNiAxLjQxOCAxLjAwOEwxOC4yNTQgMTd6TTE1IDE0SDl2LTFoNnptNC0zSDl2LTFoMTB6bTAtM0g5VjdoMTB6Ii8+PC9zdmc+J30sNTA2NzY3KGUpe2UuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyOCAyOCIgd2lkdGg9IjI4IiBoZWlnaHQ9IjI4IiBmaWxsPSJub25lIj48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGQ9Ik0yMi41IDdhMi41IDIuNSAwIDEgMS0yLjQ1IDNIMTguNWEuNS41IDAgMCAwLS41LjV2N2EuNS41IDAgMCAwIC41LjVoMS41NWEyLjUwMSAyLjUwMSAwIDEgMSAwIDFIMTguNWExLjUgMS41IDAgMCAxLTEuNS0xLjV2LTNoLTIuMDIzQTUuOTk5IDUuOTk5IDAgMCAxIDMgMTRhNiA2IDAgMCAxIDExLjk3OC0uNUgxN3YtM0ExLjUgMS41IDAgMCAxIDE4LjUgOWgxLjU1YTIuNSAyLjUgMCAwIDEgMi40NS0ybTAgMTBhMS41IDEuNSAwIDEgMCAwIDMgMS41IDEuNSAwIDAgMCAwLTNNOSA5YTUgNSAwIDEgMCAwIDEwQTUgNSAwIDAgMCA5IDltLjUgMi4wMTNhMS43IDEuNyAwIDAgMSAxLjUgMS42ODhoLTFhLjcuNyAwIDAgMC0uNy0uN2gtLjU1YS43NS43NSAwIDAgMCAwIDEuNTAxaC41YTEuNzQ5IDEuNzQ5IDAgMCAxIC4yNSAzLjQ3OFYxOGgtMXYtMS4wMTJBMS42OSAxLjY5IDAgMCAxIDcgMTUuMzExaDFjMCAuMzguMzA5LjY5LjY5LjY5aC41NmEuNzUuNzUgMCAwIDAgMC0xLjQ5OWgtLjVhMS43NSAxLjc1IDAgMCAxLS4yNS0zLjQ4MlYxMGgxek0yMi41IDhhMS41IDEuNSAwIDEgMCAwIDMgMS41IDEuNSAwIDAgMCAwLTMiLz48L3N2Zz4nfSwxMTI2NjUoZSl7ZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDI4IDI4IiB3aWR0aD0iMjgiIGhlaWdodD0iMjgiIGZpbGw9Im5vbmUiPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZD0iTTcgMTd2NC41YS41LjUgMCAwIDAgLjUuNWgxNGEuNS41IDAgMCAwIC41LS41VjE3aDF2NC41YTEuNSAxLjUgMCAwIDEtMS41IDEuNWgtMTRBMS41IDEuNSAwIDAgMSA2IDIxLjVWMTd6bTgtMTF2MTEuMjkzbDMuMTQ2LTMuMTQ2LjcwNy43MDctNC4zNTMgNC4zNTMtNC4zNTMtNC4zNTMuNzA3LS43MDdMMTQgMTcuMjkzVjZ6Ii8+PC9zdmc+J30sODk4Mzc3KGUpe2UuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyOCAyOCIgd2lkdGg9IjI4IiBoZWlnaHQ9IjI4IiBmaWxsPSJub25lIj48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGQ9Ik0yMiA3djE1SDV2LTZoNHYtNmg1djNoM1Y3ek02IDIxaDN2LTRINnptNC0xMHYxMGgzVjExem00IDEwaDN2LTdoLTN6bTQgMGgzVjhoLTN6Ii8+PC9zdmc+J30sMzEwOTI3KGUpe2UuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxOCAxOCIgd2lkdGg9IjE4IiBoZWlnaHQ9IjE4IiBmaWxsPSJub25lIj48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGQ9Ik0xMCAxNUg5di0yaDF6bTYuMDAxLTZoLTFWNi42NDhsLTUuMzI0IDQuOTU2LS4zMzQtLjI1LTMuMzE3LTIuNDc3TDIuNjgyIDEyIDIgMTEuMjdsMy45NTYtMy42OTQgMy42NSAyLjcyN0wxNC4yMyA2SDEyVjVoNC4wMDF6TTEwIDhIOVY2aDF6bTAtNEg5VjJoMXoiLz48L3N2Zz4nfSw2NjQ0ODEoZSl7ZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDE4IDE4IiB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIGZpbGw9Im5vbmUiPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZD0iTTkgMmMzLjI5NSAwIDYgMi41NzUgNiA1Ljc5MiAwIDEuNzUzLS43MjMgMy4zNC0yIDQuNDA4VjE0aC0xLjk5djJINy4wMDZ2LTJINS4wMDR2LTEuNzY1QzMuNzggMTEuMTQ4IDMgOS40OTQgMyA3Ljc5MiAzLjAwMSA0LjU3NSA1LjcwNSAyIDkgMm0tLjk5NCAxM2gyLjAwNHYtMUg4LjAwNnptLTIuMDAyLTN2MUgxMnYtMXpNOSAzQzYuMjIgMyA0LjAwMSA1LjE2MyA0LjAwMSA3Ljc5MmMwIDEuMTc4LjQ1NSAyLjMzNSAxLjE5MiAzLjIwOGgzLjMxNVY4SDYuMDA0VjdoNi4wMDh2MUg5LjUwOHYzaDMuM0MxMy41NyAxMC4xNTYgMTQgOS4wMzQgMTQgNy43OTIgMTQgNS4xNjMgMTEuNzggMyA5IDMiLz48L3N2Zz4nfSwxNDgzODcoZSl7ZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDI4IDI4IiB3aWR0aD0iMjgiIGhlaWdodD0iMjgiIGZpbGw9Im5vbmUiPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZD0ibTkuNTU0IDEyLjUwNy0zLjMyMyAzLjMyNGE0LjIgNC4yIDAgMCAwIDUuOTQgNS45NGwzLjMyMy0zLjMyNC43MDcuNzA3LTMuMzI0IDMuMzIzYTUuMiA1LjIgMCAwIDEtNy4zNTMtNy4zNTNMOC44NDcgMTEuOHptNy43NTQtMS4xMDctNS45MDcgNS45MDctLjcwNy0uNzA3IDUuOTA3LTUuOTA3em0tMi4xODQtNS44NzZhNS4xOTkgNS4xOTkgMCAxIDEgNy4zNTMgNy4zNTNMMTkuMTU1IDE2LjJsLS43MDgtLjcwNyAzLjMyMy0zLjMyNGE0LjE5OSA0LjE5OSAwIDEgMC01LjkzOS01LjkzOGwtMy4zMjMgMy4zMjItLjcwNy0uNzA3eiIvPjwvc3ZnPid9LDEzOTY0MihlKXsKZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDE4IDE4IiB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIGZpbGw9Im5vbmUiPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZD0iTTE3IDguMiA5IDE2IDEgOC4yIDMuNjY3IDNoMTAuNjY2ek0yLjIyNiA4IDkgMTQuNjAyIDE1Ljc3MyA4bC0yLjA1LTRINC4yNzd6TTkuNSA3SDExdjNIOS41djJoLTF2LTJIN1Y3aDEuNVY1aDF6Ii8+PC9zdmc+J30sOTU1NTg5KGUpe2UuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyOCAyOCIgd2lkdGg9IjI4IiBoZWlnaHQ9IjI4IiBmaWxsPSJub25lIj48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGQ9Ik0yNSAxMy4xODIgMTQgMjUgMyAxMy4xODIgNi42NjcgNWgxNC42NjZ6bS0yMC44MTctLjE5N0wxNCAyMy41MzFsOS44MTYtMTAuNTQ2TDIwLjY4NiA2SDcuMzE0ek0xNC41IDEwSDE2djZoLTEuNXYyaC0xdi0ySDEydi02aDEuNVY4aDF6TTEzIDE1aDJ2LTRoLTJ6Ii8+PC9zdmc+J30sMzkxMTgyKGUpe2UuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyOCAyOCIgd2lkdGg9IjI4IiBoZWlnaHQ9IjI4IiBmaWxsPSJub25lIj48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGQ9Ik04IDIwaDE1djFIOHY0SDdWM2gxek0yMi4wMDUgNWMwIDQuOTAzLS44MyA4LjE1LTIuMjM1IDEwLjE4MkMxOC4zNCAxNy4yNDkgMTYuMzU3IDE4IDE0LjI0MSAxOGMtMS40NTYgMC0yLjk2Mi0uMzgtNC4yMzktMS4xMzZsLjUxLS44NjFjMS4xMTIuNjU4IDIuNDQuOTk3IDMuNzMuOTk3IDEuODQ3IDAgMy40OTUtLjYzNiA0LjcwNi0yLjM4NyAxLjIzNi0xLjc4NiAyLjA1Ny00Ljc5IDIuMDU3LTkuNjEzeiIvPjwvc3ZnPid9LDkwMjgyOShlKXtlLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMjggMjgiIHdpZHRoPSIyOCIgaGVpZ2h0PSIyOCIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBkPSJNNSAyNkg0VjJoMXpNMjMgOC41MDFsLTMuMzI4IDMuMDAxLS4zMzUtLjM3MS0uMzM1LS4zNzJMMjAuOTUyIDlIMjAuNWMtMy45MzggMC03LjQxMyAxLjk4LTkuNDg1IDQuOTk4IDIuMDcyIDMuMDE5IDUuNTQ1IDUgOS40ODMgNS4wMDFoLjQ1MkwxOSAxNy4yNDJsLjY3LS43NDIgMy4zMjggMy0zLjMyOCAzLjAwMi0uNjctLjc0NEwyMC45NSAyMGgtLjQ1MmExMi40OCAxMi40OCAwIDAgMS0xMC4wNTYtNS4wNzhBMTEuNDUgMTEuNDUgMCAwIDAgOSAyMC41VjIzSDh2LTIuNDk5YzAtNi45MDMgNS41OTctMTIuNSAxMi41LTEyLjVoLjQ1MmwtMS45NS0xLjc1OC42Ny0uNzQzek04Ljk5OCA3LjUwMmMwIDEuNjM1LjM0NCAzLjE4OS45NTkgNC41OTdxLS4zNTUuNDUyLS42NjcuOTM2YTEyLjQ1IDEyLjQ1IDAgMCAxLTEuMjkyLTUuNTMzdi0yLjVoLjVsLjUtLjAwMXoiLz48L3N2Zz4nfSw4Njc1NDUoZSl7ZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDI4IDI4IiB3aWR0aD0iMjgiIGhlaWdodD0iMjgiPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJtMjUuMzUgNS4zNS05LjUgOS41LS4zNS4zNi0uMzUtLjM2LTQuNjUtNC42NC04LjE1IDguMTQtLjctLjcgOC41LTguNS4zNS0uMzYuMzUuMzYgNC42NSA0LjY0IDkuMTUtOS4xNC43LjdaTTIgMjFoMXYxSDJ2LTFabTItMUgzdjFoMXYxaDF2LTFoMXYxaDF2LTFoMXYxaDF2LTFoMXYxaDF2LTFoMXYxaDF2LTFoMXYxaDF2LTFoMXYxaDF2LTFoMXYxaDF2LTFoMXYxaDF2LTFoMXYxaDF2LTFoMXYxaDF2LTFoLTF2LTFoMXYtMWgtMXYtMWgxdi0xaC0xdi0xaDF2LTFoLTF2LTFoMXYtMWgtMXYtMWgxdi0xaC0xdi0xaDFWOWgtMXYxaC0xdjFoLTF2MWgtMXYxaC0xdjFoLTF2MWgtMXYxaC0xdjFoLTF2MWgtMXYtMWgtMXYtMWgtMXYtMWgtMXYtMWgtMXYtMWgtMXYxSDl2MUg4djFIN3YxSDZ2MUg1djFINHYxWm0xIDB2MUg0di0xaDFabTEgMEg1di0xaDF2MVptMSAwdjFINnYtMWgxWm0wLTFINnYtMWgxdjFabTEgMEg3djFoMXYxaDF2LTFoMXYxaDF2LTFoMXYxaDF2LTFoMXYxaDF2LTFoMXYxaDF2LTFoMXYxaDF2LTFoMXYxaDF2LTFoMXYxaDF2LTFoMXYtMWgtMXYtMWgxdi0xaC0xdi0xaDF2LTFoLTF2LTFoMXYtMWgtMXYtMWgxdi0xaC0xdjFoLTF2MWgtMXYxaC0xdjFoLTF2MWgtMXYxaC0xdjFoLTF2MWgtMXYtMWgtMXYtMWgtMXYtMWgtMXYtMWgtMXYtMWgtMXYxSDl2MUg4djFIN3YxaDF2MVptMSAwdjFIOHYtMWgxWm0wLTFIOHYtMWgxdjFabTEgMEg5djFoMXYxaDF2LTFoMXYxaDF2LTFoMXYxaDF2LTFoLTF2LTFoLTF2LTFoLTF2LTFoLTF2LTFoLTF2MUg5djFoMXYxWm0xIDB2MWgtMXYtMWgxWm0wLTF2LTFoLTF2MWgxWm0wIDB2MWgxdjFoMXYtMWgtMXYtMWgtMVptNiAydi0xaDF2MWgtMVptMiAwdjFoLTF2LTFoMVptMC0xaC0xdi0xaDF2MVptMSAwaC0xdjFoMXYxaDF2LTFoMXYxaDF2LTFoLTF2LTFoMXYtMWgtMXYtMWgxdi0xaC0xdi0xaDF2LTFoLTF2MWgtMXYxaC0xdjFoLTF2MWgxdjFabTEgMGgtMXYxaDF2LTFabTAtMWgxdjFoLTF2LTFabTAtMWgxdi0xaC0xdjFabTAgMHYxaC0xdi0xaDFabS00IDN2MWgtMXYtMWgxWiIvPjwvc3ZnPid9LDIxNjMzNShlKXtlLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMjggMjgiIHdpZHRoPSIyOCIgaGVpZ2h0PSIyOCI+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBkPSJNMTkgNmgtMXY3aC0zdjFoM3Y4aDF2LTNoM3YtMWgtM1Y2Wk0xMSA3aC0xdjEzSDd2MWgzdjJoMVYxMGgzVjloLTNWN1oiLz48L3N2Zz4nfSw4NDIwNTEoZSl7CmUuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyOCAyOCIgd2lkdGg9IjI4IiBoZWlnaHQ9IjI4Ij48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGQ9Im0xMC40OSA3LjU1LS40Mi43LTIuMSAzLjUuODYuNSAxLjY4LTIuOCAxLjggMi44Mi44NC0uNTQtMi4yMy0zLjUtLjQzLS42OFptMTIuMzIgNC43Mi0uODQtLjU0IDIuNjEtNCAuODQuNTQtMi42MSA0Wm0tNS4zIDYuMyAxLjItMS44NC44NC41NC0xLjYzIDIuNS0uNDMuNjUtLjQxLS42NS0xLjYtMi41Ljg1LS41NCAxLjE3IDEuODVaTTQuOTYgMTYuNzVsLjg2LjUyLTIuNCA0LS44Ni0uNTIgMi40LTRaTTMgMTR2MWgxdi0xSDNabTIgMGgxdjFINXYtMVptMiAwdjFoMXYtMUg3Wm0yIDBoMXYxSDl2LTFabTIgMHYxaDF2LTFoLTFabTIgMGgxdjFoLTF2LTFabTIgMHYxaDF2LTFoLTFabTIgMGgxdjFoLTF2LTFabTIgMHYxaDF2LTFoLTFabTIgMGgxdjFoLTF2LTFabTIgMHYxaDF2LTFoLTFabTIgMGgxdjFoLTF2LTFaIi8+PC9zdmc+J30sMzc2MTYoZSl7ZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDI4IDI4IiB3aWR0aD0iMjgiIGhlaWdodD0iMjgiIGZpbGw9ImN1cnJlbnRDb2xvciI+PHBhdGggZD0iTTE3IDExdjZoM3YtNmgtM3ptLS41LTFoNGEuNS41IDAgMCAxIC41LjV2N2EuNS41IDAgMCAxLS41LjVoLTRhLjUuNSAwIDAgMS0uNS0uNXYtN2EuNS41IDAgMCAxIC41LS41eiIvPjxwYXRoIGQ9Ik0xOCA3aDF2My41aC0xem0wIDEwLjVoMVYyMWgtMXoiLz48cGF0aCBkPSJNOSA4djEyaDNWOEg5em0tLjUtMWg0YS41LjUgMCAwIDEgLjUuNXYxM2EuNS41IDAgMCAxLS41LjVoLTRhLjUuNSAwIDAgMS0uNS0uNXYtMTNhLjUuNSAwIDAgMSAuNS0uNXoiLz48cGF0aCBkPSJNMTAgNGgxdjMuNWgtMXptMCAxNi41aDFWMjRoLTF6Ii8+PC9zdmc+J30sNjQ3NjMwKGUpe2UuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyOCAyOCIgd2lkdGg9IjI4IiBoZWlnaHQ9IjI4Ij48ZyBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciI+PHBhdGggZD0iTTEwLjUgOXYxMk03IDE4LjVoMy41TTE0IDkuNWgtMy41TTE5LjUgM3YxMk0xNiA2LjVoMy41TTIzIDE0LjVoLTMuNU0xOC41IDE5LjVoMmExIDEgMCAxIDAgMC0yaC0yVjIydi0yLjV6TTIxLjUgMjJMMjAgMTkuNSIvPjwvZz48L3N2Zz4nfSw5OTU1NDkoZSl7ZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjI4IiBoZWlnaHQ9IjI4Ij48ZyBmaWxsPSJub25lIj48cGF0aCBzdHJva2U9ImN1cnJlbnRDb2xvciIgZD0iTTExIDIwLjVINy41YTUgNSAwIDEgMSAuNDItOS45OCA3LjUgNy41IDAgMCAxIDE0LjU3IDIuMSA0IDQgMCAwIDEtMSA3Ljg3N0gxOCIvPjxwYXRoIHN0cm9rZT0iY3VycmVudENvbG9yIiBkPSJNMTQuNSAyNFYxMi41TTExIDE2bDMuNS0zLjVMMTggMTYiLz48L2c+PC9zdmc+J30sNDQzMTY3KGUpe2UuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyOCAyOCIgd2lkdGg9IjI4IiBoZWlnaHQ9IjI4Ij48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTEyIDd2MTRoNVY3aC01Wm00IDFoLTN2MTJoM1Y4Wk0xOSAxNXY2aDV2LTZoLTVabTQgMWgtM3Y0aDN2LTRaTTUgMTJoNXY5SDV2LTlabTEgMWgzdjdINnYtN1oiLz48L3N2Zz4nfSw3NjU2OTUoZSl7ZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDI4IDI4IiB3aWR0aD0iMjgiIGhlaWdodD0iMjgiPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZD0iTTEzLjUgNmE4LjUgOC41IDAgMSAwIDAgMTcgOC41IDguNSAwIDAgMCAwLTE3ek00IDE0LjVhOS41IDkuNSAwIDEgMSAxOSAwIDkuNSA5LjUgMCAwIDEtMTkgMHoiLz48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGQ9Ik05IDE0aDR2LTRoMXY0aDR2MWgtNHY0aC0xdi00SDl2LTF6Ii8+PC9zdmc+J30sNTAwNTA3KGUpe2UuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyOCAyOCIgd2lkdGg9IjI4IiBoZWlnaHQ9IjI4IiBmaWxsPSJjdXJyZW50Q29sb3IiPjxwYXRoIGQ9Ik05IDh2MTJoM1Y4SDl6bS0xLS41MDJDOCA3LjIyMyA4LjIxNSA3IDguNDk4IDdoNC4wMDRjLjI3NSAwIC40OTguMjIuNDk4LjQ5OHYxMy4wMDRhLjQ5My40OTMgMCAwIDEtLjQ5OC40OThIOC40OThBLjQ5Ni40OTYgMCAwIDEgOCAyMC41MDJWNy40OTh6Ii8+PHBhdGggZD0iTTEwIDRoMXYzLjVoLTF6Ii8+PHBhdGggZD0iTTE3IDZ2NmgzVjZoLTN6bS0xLS41YzAtLjI3Ni4yMTUtLjUuNDk4LS41aDQuMDA0Yy4yNzUgMCAuNDk4LjIzLjQ5OC41djdjMCAuMjc2LS4yMTUuNS0uNDk4LjVoLTQuMDA0YS41MDMuNTAzIDAgMCAxLS40OTgtLjV2LTd6Ii8+PHBhdGggZD0iTTE4IDJoMXYzLjVoLTF6Ii8+PC9zdmc+J30sMjE1NDgwKGUpe2UuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyOCIgaGVpZ2h0PSIyOCI+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTcuNSA3SDd2MTRoNVY3SDcuNXpNOCAyMFY4aDN2MTJIOHptNy41LTExSDE1djEwaDVWOWgtNC41em0uNSA5di04aDN2OGgtM3oiLz48L3N2Zz4nfSwzODE5MjMoZSl7CmUuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyOCAyOCIgd2lkdGg9IjI4IiBoZWlnaHQ9IjI4IiBmaWxsPSJjdXJyZW50Q29sb3IiPjxwYXRoIGQ9Ik0xNyAxMXY2aDN2LTZoLTN6bS0uNS0xaDRhLjUuNSAwIDAgMSAuNS41djdhLjUuNSAwIDAgMS0uNS41aC00YS41LjUgMCAwIDEtLjUtLjV2LTdhLjUuNSAwIDAgMSAuNS0uNXoiLz48cGF0aCBkPSJNMTggN2gxdjMuNWgtMXptMCAxMC41aDFWMjFoLTF6Ii8+PHBhdGggZD0iTTkgOHYxMWgzVjhIOXptLS41LTFoNGEuNS41IDAgMCAxIC41LjV2MTJhLjUuNSAwIDAgMS0uNS41aC00YS41LjUgMCAwIDEtLjUtLjV2LTEyYS41LjUgMCAwIDEgLjUtLjV6Ii8+PHBhdGggZD0iTTEwIDRoMXY1aC0xem0wIDE0aDF2NWgtMXpNOC41IDlIMTB2MUg4LjV6TTExIDloMS41djFIMTF6bS0xIDFoMXYxaC0xem0tMS41IDFIMTB2MUg4LjV6bTIuNSAwaDEuNXYxSDExem0tMSAxaDF2MWgtMXptLTEuNSAxSDEwdjFIOC41em0yLjUgMGgxLjV2MUgxMXptLTEgMWgxdjFoLTF6bS0xLjUgMUgxMHYxSDguNXptMi41IDBoMS41djFIMTF6bS0xIDFoMXYxaC0xem0tMS41IDFIMTB2MUg4LjV6bTIuNSAwaDEuNXYxSDExeiIvPjwvc3ZnPid9LDg0Njc0OShlKXtlLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMjggMjgiIHdpZHRoPSIyOCIgaGVpZ2h0PSIyOCIgZmlsbD0ibm9uZSI+PHBhdGggc3Ryb2tlPSJjdXJyZW50Q29sb3IiIGQ9Ik02IDEybDQuOC00LjhhMSAxIDAgMCAxIDEuNCAwbDIuNyAyLjdhMSAxIDAgMCAwIDEuMy4xTDIzIDUiLz48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTE5IDEyYTEgMSAwIDAgMC0xIDF2NGgtM3YtMWExIDEgMCAwIDAtMS0xaC0zYTEgMSAwIDAgMC0xIDF2Mkg3YTEgMSAwIDAgMC0xIDF2NGgxN1YxM2ExIDEgMCAwIDAtMS0xaC0zem0wIDEwaDN2LTloLTN2OXptLTEgMHYtNGgtM3Y0aDN6bS00LTQuNVYyMmgtM3YtNmgzdjEuNXpNMTAgMjJ2LTNIN3YzaDN6Ii8+PC9zdmc+J30sMTEzNzg0KGUpe2UuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyOCAyOCIgd2lkdGg9IjI4IiBoZWlnaHQ9IjI4IiBmaWxsPSJub25lIj48cGF0aCBzdHJva2U9ImN1cnJlbnRDb2xvciIgZD0iTTIwIDE3bC01IDVNMTUgMTdsNSA1TTkgMTEuNWg3TTE3LjUgOGEyLjUgMi41IDAgMCAwLTUgMHYxMWEyLjUgMi41IDAgMCAxLTUgMCIvPjwvc3ZnPid9LDQ1NTYzOChlKXtlLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMjggMjgiIHdpZHRoPSIyOCIgaGVpZ2h0PSIyOCI+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBkPSJNMTEgNWgzdjEyaDVWOGgzdjEzaDFWN2gtNXY5aC0zVjRoLTV2MThIN3YtNUg2djZoNXoiLz48L3N2Zz4nfSw1OTQ4NDYoZSl7ZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iLTEgLTEgMjEgMTkiIHdpZHRoPSIyMSIgaGVpZ2h0PSIxOSI+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xIDIuNUMxIDEuNjcgMS42NyAxIDIuNSAxaDE0Yy44MyAwIDEuNS42NyAxLjUgMS41VjhIMVYyLjVaTTEgOXY1LjVjMCAuODMuNjcgMS41IDEuNSAxLjVIOVY5SDFabTkgN2g2LjVjLjgzIDAgMS41LS42NyAxLjUtMS41VjloLTh2N1pNMi41IDBBMi41IDIuNSAwIDAgMCAwIDIuNXYxMkEyLjUgMi41IDAgMCAwIDIuNSAxN2gxNGEyLjUgMi41IDAgMCAwIDIuNS0yLjV2LTEyQTIuNSAyLjUgMCAwIDAgMTYuNSAwaC0xNFoiLz48L3N2Zz4nfSwyNzM3NzUoZSl7ZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iLTEgLTEgMjEgMTkiIHdpZHRoPSIyMSIgaGVpZ2h0PSIxOSI+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xIDIuNUMxIDEuNjcgMS42NyAxIDIuNSAxaDE0Yy44MyAwIDEuNS42NyAxLjUgMS41VjhIMVYyLjVaTTEgOXY1LjVjMCAuODMuNjcgMS41IDEuNSAxLjVINlY5SDFabTYgN2g1VjlIN3Y3Wm02IDBoMy41Yy44MyAwIDEuNS0uNjcgMS41LTEuNVY5aC01djdaTTIuNSAwQTIuNSAyLjUgMCAwIDAgMCAyLjV2MTJBMi41IDIuNSAwIDAgMCAyLjUgMTdoMTRhMi41IDIuNSAwIDAgMCAyLjUtMi41di0xMkEyLjUgMi41IDAgMCAwIDE2LjUgMGgtMTRaIi8+PC9zdmc+J30sNjU2MzA0KGUpe2UuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9Ii0xIC0xIDIxIDE5IiB3aWR0aD0iMjEiIGhlaWdodD0iMTkiPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNMSAyLjVDMSAxLjY3IDEuNjcgMSAyLjUgMWgxNGMuODMgMCAxLjUuNjcgMS41IDEuNVY4SDFWMi41Wk0xIDl2NS41YzAgLjgzLjY3IDEuNSAxLjUgMS41SDRWOUgxWm00IDdoNFY5SDV2N1ptNSAwaDRWOWgtNHY3Wm01IDBoMS41Yy44MyAwIDEuNS0uNjcgMS41LTEuNVY5aC0zdjdaTTIuNSAwQTIuNSAyLjUgMCAwIDAgMCAyLjV2MTJBMi41IDIuNSAwIDAgMCAyLjUgMTdoMTRhMi41IDIuNSAwIDAgMCAyLjUtMi41di0xMkEyLjUgMi41IDAgMCAwIDE2LjUgMGgtMTRaIi8+PC9zdmc+J30sODgwODkzKGUpewplLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMjEgMTkiIHdpZHRoPSIyMSIgaGVpZ2h0PSIxOSI+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0yIDMuNUMyIDIuNjcgMi42NyAyIDMuNSAySDR2N0gyVjMuNVpNMiAxMHY1LjVjMCAuODMuNjcgMS41IDEuNSAxLjVINHYtN0gyWm0zIDdoM3YtN0g1djdabTQgMGgzdi03SDl2N1ptNCAwaDN2LTdoLTN2N1ptNCAwaC41Yy44MyAwIDEuNS0uNjcgMS41LTEuNVYxMGgtMnY3Wm0yLThWMy41YzAtLjgzLS42Ny0xLjUtMS41LTEuNUgxN3Y3aDJabS0zLTdoLTN2N2gzVjJabS00IDBIOXY3aDNWMlpNOCAySDV2N2gzVjJaTTMuNSAxQTIuNSAyLjUgMCAwIDAgMSAzLjV2MTJBMi41IDIuNSAwIDAgMCAzLjUgMThoMTRhMi41IDIuNSAwIDAgMCAyLjUtMi41di0xMkEyLjUgMi41IDAgMCAwIDE3LjUgMWgtMTRaIi8+PC9zdmc+J30sOTQ0NTgoZSl7ZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDIxIDE5IiB3aWR0aD0iMjEiIGhlaWdodD0iMTkiPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNMiAzLjVDMiAyLjY3IDIuNjcgMiAzLjUgMkg3djNIMnYxaDV2M0gydjFoNXYzSDJ2MWg1djNIMy41QTEuNSAxLjUgMCAwIDEgMiAxNS41di0xMlpNOCAxNHYzaDV2LTNIOFptNiAwdjNoMy41Yy44MyAwIDEuNS0uNjcgMS41LTEuNVYxNGgtNVptNS0xaC01di0zaDV2M1ptLTYgMEg4di0zaDV2M1pNOCA5aDVWNkg4djNabTYgMGg1VjZoLTV2M1ptLTEtNEg4VjJoNXYzWm0xIDEzSDMuNUEyLjUgMi41IDAgMCAxIDEgMTUuNXYtMTJBMi41IDIuNSAwIDAgMSAzLjUgMWgxNEEyLjUgMi41IDAgMCAxIDIwIDMuNXYxMmEyLjUgMi41IDAgMCAxLTIuNSAyLjVIMTRabTAtMTNWMmgzLjVjLjgzIDAgMS41LjY3IDEuNSAxLjVWNWgtNVoiLz48L3N2Zz4nfSw1MTM5MTIoZSl7ZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDIxIDE5IiB3aWR0aD0iMjEiIGhlaWdodD0iMTkiPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNMiAzLjVDMiAyLjY3IDIuNjcgMiAzLjUgMkg0djdIMlYzLjVaTTIgMTB2NS41YzAgLjgzLjY3IDEuNSAxLjUgMS41SDR2LTdIMlptMyA3aDJ2LTdINXY3Wm0zIDBoMnYtN0g4djdabTMgMGgydi03aC0ydjdabTMgMGgydi03aC0ydjdabTMgMGguNWMuODMgMCAxLjUtLjY3IDEuNS0xLjVWMTBoLTJ2N1ptMi04VjMuNWMwLS44My0uNjctMS41LTEuNS0xLjVIMTd2N2gyWm0tMy03aC0ydjdoMlYyWm0tMyAwaC0ydjdoMlYyWm0tMyAwSDh2N2gyVjJaTTcgMkg1djdoMlYyWk0zLjUgMUEyLjUgMi41IDAgMCAwIDEgMy41djEyQTIuNSAyLjUgMCAwIDAgMy41IDE4aDE0YTIuNSAyLjUgMCAwIDAgMi41LTIuNXYtMTJBMi41IDIuNSAwIDAgMCAxNy41IDFoLTE0WiIvPjwvc3ZnPid9LDg2ODc2NihlKXtlLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMjEgMTkiIHdpZHRoPSIyMSIgaGVpZ2h0PSIxOSI+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0zLjUgMkMyLjY3IDIgMiAyLjY3IDIgMy41djEyYzAgLjgzLjY3IDEuNSAxLjUgMS41SDV2LTNIMnYtMWgzdi0zSDJWOWgzVjZIMlY1aDNWMkgzLjVaTTYgMTR2M2g0di0zSDZabTQtMUg2di0zaDR2M1ptMSAxdjNoNHYtM2gtNFptNC0xaC00di0zaDR2M1ptMSAxdjNoMS41Yy44MyAwIDEuNS0uNjcgMS41LTEuNVYxNGgtM1ptMy0xaC0zdi0zaDN2M1ptLTgtNGg0VjZoLTR2M1ptNS0zdjNoM1Y2aC0zWk02IDloNFY2SDZ2M1ptMC00aDRWMkg2djNabTEwIDEzSDMuNUEyLjUgMi41IDAgMCAxIDEgMTUuNXYtMTJBMi41IDIuNSAwIDAgMSAzLjUgMWgxNEEyLjUgMi41IDAgMCAxIDIwIDMuNXYxMmEyLjUgMi41IDAgMCAxLTIuNSAyLjVIMTZabTAtMTNWMmgxLjVjLjgzIDAgMS41LjY3IDEuNSAxLjVWNWgtM1ptLTEtM2gtNHYzaDRWMloiLz48L3N2Zz4nfSwyMjExNTgoZSl7ZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iLTEgLTEgMjEgMTkiIHdpZHRoPSIyMSIgaGVpZ2h0PSIxOSI+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xIDIuNUMxIDEuNjcgMS42NyAxIDIuNSAxSDl2N0gxVjIuNVpNMSA5djUuNWMwIC44My42NyAxLjUgMS41IDEuNWgxNGMuODMgMCAxLjUtLjY3IDEuNS0xLjVWOUgxWm0xNy0xVjIuNWMwLS44My0uNjctMS41LTEuNS0xLjVIMTB2N2g4Wk0yLjUgMEEyLjUgMi41IDAgMCAwIDAgMi41djEyQTIuNSAyLjUgMCAwIDAgMi41IDE3aDE0YTIuNSAyLjUgMCAwIDAgMi41LTIuNXYtMTJBMi41IDIuNSAwIDAgMCAxNi41IDBoLTE0WiIvPjwvc3ZnPid9LDkwNjA1MChlKXtlLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMTkgMTciIHdpZHRoPSIxOSIgaGVpZ2h0PSIxNyI+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0yLjUgMUMxLjY3IDEgMSAxLjY3IDEgMi41djEyYzAgLjgzLjY3IDEuNSAxLjUgMS41SDVWMXpNMTAgMTZINlYxaDR2MTVtMSAwaDUuNWMuODMgMCAxLjUtLjY3IDEuNS0xLjVWOWgtN3ptNy04VjIuNWMwLS44My0uNjctMS41LTEuNS0xLjVIMTF2N3pNMCAyLjVBMi41IDIuNSAwIDAgMSAyLjUgMGgxNEEyLjUgMi41IDAgMCAxIDE5IDIuNXYxMmEyLjUgMi41IDAgMCAxLTIuNSAyLjVoLTE0QTIuNSAyLjUgMCAwIDEgMCAxNC41eiIvPjwvc3ZnPid9LDc4OTEwOChlKXsKZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDE5IDE3IiB3aWR0aD0iMTkiIGhlaWdodD0iMTciPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNMTYuNSAxSDE0djE1aDIuNWMuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTEyYzAtLjgzLS42Ny0xLjUtMS41LTEuNU05IDFoNHYxNUg5VjFNOCAxSDIuNUMxLjY3IDEgMSAxLjY3IDEgMi41VjhoN3pNMSA5djUuNWMwIC44My42NyAxLjUgMS41IDEuNUg4Vjl6bTEuNS05QTIuNSAyLjUgMCAwIDAgMCAyLjV2MTJBMi41IDIuNSAwIDAgMCAyLjUgMTdoMTRhMi41IDIuNSAwIDAgMCAyLjUtMi41di0xMkEyLjUgMi41IDAgMCAwIDE2LjUgMHoiLz48L3N2Zz4nfSw3MjAyOTMoZSl7ZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iLTEgLTEgMjEgMTkiIHdpZHRoPSIyMSIgaGVpZ2h0PSIxOSI+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xIDIuNUMxIDEuNjcgMS42NyAxIDIuNSAxSDl2N0gxVjIuNVpNMSA5djNoMTdWOUgxWm0xNy0xVjIuNWMwLS44My0uNjctMS41LTEuNS0xLjVIMTB2N2g4Wm0wIDVIMXYxLjVjMCAuODMuNjcgMS41IDEuNSAxLjVoMTRjLjgzIDAgMS41LS42NyAxLjUtMS41VjEzWk0yLjUgMEEyLjUgMi41IDAgMCAwIDAgMi41djEyQTIuNSAyLjUgMCAwIDAgMi41IDE3aDE0YTIuNSAyLjUgMCAwIDAgMi41LTIuNXYtMTJBMi41IDIuNSAwIDAgMCAxNi41IDBoLTE0WiIvPjwvc3ZnPid9LDU2MzQ4NyhlKXtlLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMTkgMTciIHdpZHRoPSIxOSIgaGVpZ2h0PSIxNyI+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xMCAxSDZ2MTVoNFYxbTEgMHY0aDdWMi41YzAtLjgzLS42Ny0xLjUtMS41LTEuNXptNyA1aC03djVoN3ptMCA2aC03djRoNS41Yy44MyAwIDEuNS0uNjcgMS41LTEuNXpNMi41IDFINXYxNUgyLjVBMS41IDEuNSAwIDAgMSAxIDE0LjV2LTEyQzEgMS42NyAxLjY3IDEgMi41IDFtMC0xQTIuNSAyLjUgMCAwIDAgMCAyLjV2MTJBMi41IDIuNSAwIDAgMCAyLjUgMTdoMTRhMi41IDIuNSAwIDAgMCAyLjUtMi41di0xMkEyLjUgMi41IDAgMCAwIDE2LjUgMHoiLz48L3N2Zz4nfSw3MzcwMTcoZSl7ZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDE5IDE3IiB3aWR0aD0iMTkiIGhlaWdodD0iMTciPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNMTYuNSAxSDE0djE1aDIuNWMuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTEyYzAtLjgzLS42Ny0xLjUtMS41LTEuNU05IDFoNHYxNUg5VjFNOCAxSDIuNUMxLjY3IDEgMSAxLjY3IDEgMi41VjVoN3pNMSA2djVoN1Y2em0wIDZ2Mi41YzAgLjgzLjY3IDEuNSAxLjUgMS41SDh2LTR6TTIuNSAwQTIuNSAyLjUgMCAwIDAgMCAyLjV2MTJBMi41IDIuNSAwIDAgMCAyLjUgMTdoMTRhMi41IDIuNSAwIDAgMCAyLjUtMi41di0xMkEyLjUgMi41IDAgMCAwIDE2LjUgMHoiLz48L3N2Zz4nfSw3NjU1NzIoZSl7ZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iLTEgLTEgMjEgMTkiIHdpZHRoPSIyMSIgaGVpZ2h0PSIxOSI+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xIDIuNUMxIDEuNjcgMS42NyAxIDIuNSAxSDl2N0gxVjIuNVpNMSA5djUuNWMwIC44My42NyAxLjUgMS41IDEuNUg2VjlIMVptNiA3aDVWOUg3djdabTYgMGgzLjVjLjgzIDAgMS41LS42NyAxLjUtMS41VjloLTV2N1ptNS04VjIuNWMwLS44My0uNjctMS41LTEuNS0xLjVIMTB2N2g4Wk0yLjUgMEEyLjUgMi41IDAgMCAwIDAgMi41djEyQTIuNSAyLjUgMCAwIDAgMi41IDE3aDE0YTIuNSAyLjUgMCAwIDAgMi41LTIuNXYtMTJBMi41IDIuNSAwIDAgMCAxNi41IDBoLTE0WiIvPjwvc3ZnPid9LDUyNzcyMyhlKXtlLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMjEgMTkiIHdpZHRoPSIyMSIgaGVpZ2h0PSIxOSI+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xIDMuNUEyLjUgMi41IDAgMCAxIDMuNSAxaDE0QTIuNSAyLjUgMCAwIDEgMjAgMy41djEyYTIuNSAyLjUgMCAwIDEtMi41IDIuNWgtMTRBMi41IDIuNSAwIDAgMSAxIDE1LjV2LTEyWk0xMSAyaDYuNWMuODMgMCAxLjUuNjcgMS41IDEuNVY5aC04VjJabS0xIDBIMy41QzIuNjcgMiAyIDIuNjcgMiAzLjVWOWg4VjJabS04IDh2NS41YzAgLjgzLjY3IDEuNSAxLjUgMS41SDV2LTdIMlptNCA3aDR2LTdINnY3Wm01IDBoNHYtN2gtNHY3Wm01IDBoMS41Yy44MyAwIDEuNS0uNjcgMS41LTEuNVYxMGgtM3Y3WiIvPjwvc3ZnPid9LDYxNTQyNChlKXtlLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSItMSAtMSAyMSAxOSIgd2lkdGg9IjIxIiBoZWlnaHQ9IjE5Ij48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTEgMi41QzEgMS42NyAxLjY3IDEgMi41IDFIOXYxNUgyLjVBMS41IDEuNSAwIDAgMSAxIDE0LjV2LTEyWk0xMCAxNmg2LjVjLjgzIDAgMS41LS42NyAxLjUtMS41di0xMmMwLS44My0uNjctMS41LTEuNS0xLjVIMTB2MTVaTTIuNSAwQTIuNSAyLjUgMCAwIDAgMCAyLjV2MTJBMi41IDIuNSAwIDAgMCAyLjUgMTdoMTRhMi41IDIuNSAwIDAgMCAyLjUtMi41di0xMkEyLjUgMi41IDAgMCAwIDE2LjUgMGgtMTRaIi8+PC9zdmc+J30sNjcyODg2KGUpewplLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSItMSAtMSAyMSAxOSIgd2lkdGg9IjIxIiBoZWlnaHQ9IjE5Ij48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTEgMi41QzEgMS42NyAxLjY3IDEgMi41IDFoMTRjLjgzIDAgMS41LjY3IDEuNSAxLjVWOEgxVjIuNVpNMSA5djUuNWMwIC44My42NyAxLjUgMS41IDEuNWgxNGMuODMgMCAxLjUtLjY3IDEuNS0xLjVWOUgxWm0xLjUtOUEyLjUgMi41IDAgMCAwIDAgMi41djEyQTIuNSAyLjUgMCAwIDAgMi41IDE3aDE0YTIuNSAyLjUgMCAwIDAgMi41LTIuNXYtMTJBMi41IDIuNSAwIDAgMCAxNi41IDBoLTE0WiIvPjwvc3ZnPid9LDc2MzU1NShlKXtlLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSItMSAtMSAyMSAxOSIgd2lkdGg9IjIxIiBoZWlnaHQ9IjE5IiB0cmFuc2Zvcm09Im1hdHJpeCgxLDAsMCwtMSwwLDApIiB2ZXJzaW9uPSIxLjEiIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIj48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTEgMi41QzEgMS42NyAxLjY3IDEgMi41IDFoMTRjLjgzIDAgMS41LjY3IDEuNSAxLjVWOEgxVjIuNVpNMSA5djUuNWMwIC44My42NyAxLjUgMS41IDEuNUg2VjlIMVptNiA3aDVWOUg3djdabTYgMGgzLjVjLjgzIDAgMS41LS42NyAxLjUtMS41VjloLTV2N1pNMi41IDBBMi41IDIuNSAwIDAgMCAwIDIuNXYxMkEyLjUgMi41IDAgMCAwIDIuNSAxN2gxNGEyLjUgMi41IDAgMCAwIDIuNS0yLjV2LTEyQTIuNSAyLjUgMCAwIDAgMTYuNSAwaC0xNFoiLz48L3N2Zz4nfSw5NzQ1NihlKXtlLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMjEgMTkiIHdpZHRoPSIyMSIgaGVpZ2h0PSIxOSI+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0yIDMuNUMyIDIuNjcgMi42NyAyIDMuNSAySDd2N0gyVjMuNVpNMiAxMHY1LjVjMCAuODMuNjcgMS41IDEuNSAxLjVoMTRjLjgzIDAgMS41LS42NyAxLjUtMS41VjEwaC04djdoLTF2LTdIMlptMTctMVYzLjVjMC0uODMtLjY3LTEuNS0xLjUtMS41SDE0djdoNVptLTYtN0g4djdoNVYyWk0zLjUgMUEyLjUgMi41IDAgMCAwIDEgMy41djEyQTIuNSAyLjUgMCAwIDAgMy41IDE4aDE0YTIuNSAyLjUgMCAwIDAgMi41LTIuNXYtMTJBMi41IDIuNSAwIDAgMCAxNy41IDFoLTE0WiIvPjwvc3ZnPid9LDM3NjE2MyhlKXtlLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSItMSAtMSAyMSAxOSIgd2lkdGg9IjIxIiBoZWlnaHQ9IjE5Ij48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTEgMi41QzEgMS42NyAxLjY3IDEgMi41IDFINnYxNUgyLjVBMS41IDEuNSAwIDAgMSAxIDE0LjV2LTEyWk03IDE2aDVWMUg3djE1Wm02LTE1djE1aDMuNWMuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTEyYzAtLjgzLS42Ny0xLjUtMS41LTEuNUgxM1pNMi41IDBBMi41IDIuNSAwIDAgMCAwIDIuNXYxMkEyLjUgMi41IDAgMCAwIDIuNSAxN2gxNGEyLjUgMi41IDAgMCAwIDIuNS0yLjV2LTEyQTIuNSAyLjUgMCAwIDAgMTYuNSAwaC0xNFoiLz48L3N2Zz4nfSw1OTU2MjUoZSl7ZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iLTEgLTEgMjEgMTkiIHdpZHRoPSIyMSIgaGVpZ2h0PSIxOSI+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xIDIuNUMxIDEuNjcgMS42NyAxIDIuNSAxSDl2N0gxVjIuNVpNMSA5djUuNWMwIC44My42NyAxLjUgMS41IDEuNUg5VjlIMVptOSA3aDYuNWMuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTEyYzAtLjgzLS42Ny0xLjUtMS41LTEuNUgxMHYxNVpNMi41IDBBMi41IDIuNSAwIDAgMCAwIDIuNXYxMkEyLjUgMi41IDAgMCAwIDIuNSAxN2gxNGEyLjUgMi41IDAgMCAwIDIuNS0yLjV2LTEyQTIuNSAyLjUgMCAwIDAgMTYuNSAwaC0xNFoiLz48L3N2Zz4nfSw2NzAyNjQoZSl7ZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iLTEgLTEgMjEgMTkiIHdpZHRoPSIyMSIgaGVpZ2h0PSIxOSI+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xIDIuNUMxIDEuNjcgMS42NyAxIDIuNSAxSDl2MTVIMi41QTEuNSAxLjUgMCAwIDEgMSAxNC41di0xMlpNMTAgMTZoNi41Yy44MyAwIDEuNS0uNjcgMS41LTEuNVY5aC04djdabTgtOFYyLjVjMC0uODMtLjY3LTEuNS0xLjUtMS41SDEwdjdoOFpNMi41IDBBMi41IDIuNSAwIDAgMCAwIDIuNXYxMkEyLjUgMi41IDAgMCAwIDIuNSAxN2gxNGEyLjUgMi41IDAgMCAwIDIuNS0yLjV2LTEyQTIuNSAyLjUgMCAwIDAgMTYuNSAwaC0xNFoiLz48L3N2Zz4nfSw0NTc5ODkoZSl7ZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iLTEgLTEgMjEgMTkiIHdpZHRoPSIyMSIgaGVpZ2h0PSIxOSI+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xIDIuNUMxIDEuNjcgMS42NyAxIDIuNSAxaDE0Yy44MyAwIDEuNS42NyAxLjUgMS41VjVIMVYyLjVaTTEgNnY1aDE3VjZIMVptMTcgNkgxdjIuNWMwIC44My42NyAxLjUgMS41IDEuNWgxNGMuODMgMCAxLjUtLjY3IDEuNS0xLjVWMTJaTTIuNSAwQTIuNSAyLjUgMCAwIDAgMCAyLjV2MTJBMi41IDIuNSAwIDAgMCAyLjUgMTdoMTRhMi41IDIuNSAwIDAgMCAyLjUtMi41di0xMkEyLjUgMi41IDAgMCAwIDE2LjUgMGgtMTRaIi8+PC9zdmc+J30sNjQ3NjkyKGUpewplLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSItMSAtMSAyMSAxOSIgd2lkdGg9IjIxIiBoZWlnaHQ9IjE5IiB0cmFuc2Zvcm09Im1hdHJpeCgtMSwwLDAsLTEsMCwwKSIgdmVyc2lvbj0iMS4xIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xIDIuNUMxIDEuNjcgMS42NyAxIDIuNSAxaDE0Yy44MyAwIDEuNS42NyAxLjUgMS41VjhIMVYyLjVaTTEgOXY1LjVjMCAuODMuNjcgMS41IDEuNSAxLjVINFY5SDFabTQgN2g0VjlINXY3Wm01IDBoNFY5aC00djdabTUgMGgxLjVjLjgzIDAgMS41LS42NyAxLjUtMS41VjloLTN2N1pNMi41IDBBMi41IDIuNSAwIDAgMCAwIDIuNXYxMkEyLjUgMi41IDAgMCAwIDIuNSAxN2gxNGEyLjUgMi41IDAgMCAwIDIuNS0yLjV2LTEyQTIuNSAyLjUgMCAwIDAgMTYuNSAwaC0xNFoiLz48L3N2Zz4nfSw4MjY3MTkoZSl7ZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDE5IDE3IiB3aWR0aD0iMTkiIGhlaWdodD0iMTciPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNMTUgMWgxLjVjLjgzIDAgMS41LjY3IDEuNSAxLjV2NWgtM3ptLTEgMGgtNHY2LjVoNHpNOSAxSDV2Ni41aDR6TTQgMUgyLjVDMS42NyAxIDEgMS42NyAxIDIuNXY1aDN6TTEgOC41djZjMCAuODMuNjcgMS41IDEuNSAxLjVIOVY4LjVIMW05IDcuNWg2LjVjLjgzIDAgMS41LS42NyAxLjUtMS41di02aC04ek0wIDIuNUEyLjUgMi41IDAgMCAxIDIuNSAwaDE0QTIuNSAyLjUgMCAwIDEgMTkgMi41djEyYTIuNSAyLjUgMCAwIDEtMi41IDIuNWgtMTRBMi41IDIuNSAwIDAgMSAwIDE0LjV6Ii8+PC9zdmc+J30sOTk4Mjg2KGUpe2UuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxOSAxNyIgd2lkdGg9IjE5IiBoZWlnaHQ9IjE3Ij48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTE0IDFoLTR2N2g0em0xIDhoLTJ2N2gzLjVjLjgzIDAgMS41LS42NyAxLjUtMS41Vjl6bS0zIDdWOUg3djd6TTUgOWgxdjdIMi41QTEuNSAxLjUgMCAwIDEgMSAxNC41VjloNG0xMy0xVjIuNWMwLS44My0uNjctMS41LTEuNS0xLjVIMTV2N3pNMSA4aDNWMUgyLjVDMS42NyAxIDEgMS42NyAxIDIuNXptNCAwaDRWMUg1ek0yLjUgMEEyLjUgMi41IDAgMCAwIDAgMi41djEyQTIuNSAyLjUgMCAwIDAgMi41IDE3aDE0YTIuNSAyLjUgMCAwIDAgMi41LTIuNXYtMTJBMi41IDIuNSAwIDAgMCAxNi41IDB6Ii8+PC9zdmc+J30sOTQ1MjM4KGUpe2UuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9Ii0xIC0xIDIxIDE5IiB3aWR0aD0iMjEiIGhlaWdodD0iMTkiPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNMSAyLjVDMSAxLjY3IDEuNjcgMSAyLjUgMUg5djdIMVYyLjVaTTEgOXY1LjVjMCAuODMuNjcgMS41IDEuNSAxLjVIOVY5SDFabTkgN2g2LjVjLjgzIDAgMS41LS42NyAxLjUtMS41VjloLTh2N1ptOC04VjIuNWMwLS44My0uNjctMS41LTEuNS0xLjVIMTB2N2g4Wk0yLjUgMEEyLjUgMi41IDAgMCAwIDAgMi41djEyQTIuNSAyLjUgMCAwIDAgMi41IDE3aDE0YTIuNSAyLjUgMCAwIDAgMi41LTIuNXYtMTJBMi41IDIuNSAwIDAgMCAxNi41IDBoLTE0WiIvPjwvc3ZnPid9LDEyNDg1KGUpe2UuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9Ii0xIC0xIDIxIDE5IiB3aWR0aD0iMjEiIGhlaWdodD0iMTkiPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNMSAyLjVDMSAxLjY3IDEuNjcgMSAyLjUgMUg0djE1SDIuNUExLjUgMS41IDAgMCAxIDEgMTQuNXYtMTJaTTUgMTZoNFYxSDV2MTVabTUtMTV2MTVoNFYxaC00Wm01IDB2MTVoMS41Yy44MyAwIDEuNS0uNjcgMS41LTEuNXYtMTJjMC0uODMtLjY3LTEuNS0xLjUtMS41SDE1Wk0yLjUgMEEyLjUgMi41IDAgMCAwIDAgMi41djEyQTIuNSAyLjUgMCAwIDAgMi41IDE3aDE0YTIuNSAyLjUgMCAwIDAgMi41LTIuNXYtMTJBMi41IDIuNSAwIDAgMCAxNi41IDBoLTE0WiIvPjwvc3ZnPid9LDEyNjE2NihlKXtlLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMjEgMTkiIHdpZHRoPSIyMSIgaGVpZ2h0PSIxOSI+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0yIDMuNUMyIDIuNjcgMi42NyAyIDMuNSAySDExdjRIMlYzLjVaTTIgN3Y1aDlWN0gyWm0wIDZ2Mi41YzAgLjgzLjY3IDEuNSAxLjUgMS41SDExdi00SDJabTEwIDRoNS41Yy44MyAwIDEuNS0uNjcgMS41LTEuNXYtMTJjMC0uODMtLjY3LTEuNS0xLjUtMS41SDEydjE1Wk0zLjUgMUEyLjUgMi41IDAgMCAwIDEgMy41djEyQTIuNSAyLjUgMCAwIDAgMy41IDE4aDE0YTIuNSAyLjUgMCAwIDAgMi41LTIuNXYtMTJBMi41IDIuNSAwIDAgMCAxNy41IDFoLTE0WiIvPjwvc3ZnPid9LDQ2NzE0NShlKXsKZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iLTEgLTEgMjEgMTkiIHdpZHRoPSIyMSIgaGVpZ2h0PSIxOSI+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xIDIuNUMxIDEuNjcgMS42NyAxIDIuNSAxSDl2MTVIMi41QTEuNSAxLjUgMCAwIDEgMSAxNC41di0xMlpNMTAgMTZoNi41Yy44MyAwIDEuNS0uNjcgMS41LTEuNVYxMmgtOHY0Wm04LTVWNmgtOHY1aDhabTAtNlYyLjVjMC0uODMtLjY3LTEuNS0xLjUtMS41SDEwdjRoOFpNMi41IDBBMi41IDIuNSAwIDAgMCAwIDIuNXYxMkEyLjUgMi41IDAgMCAwIDIuNSAxN2gxNGEyLjUgMi41IDAgMCAwIDIuNS0yLjV2LTEyQTIuNSAyLjUgMCAwIDAgMTYuNSAwaC0xNFoiLz48L3N2Zz4nfSw0MDg5NjQoZSl7ZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iLTEgLTEgMjEgMTkiIHdpZHRoPSIyMSIgaGVpZ2h0PSIxOSI+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xIDIuNUMxIDEuNjcgMS42NyAxIDIuNSAxaDE0Yy44MyAwIDEuNS42NyAxLjUgMS41VjRIMVYyLjVaTTEgNXYzaDE3VjVIMVptMTcgNEgxdjNoMTdWOVptMCA0SDF2MS41YzAgLjgzLjY3IDEuNSAxLjUgMS41aDE0Yy44MyAwIDEuNS0uNjcgMS41LTEuNVYxM1pNMi41IDBBMi41IDIuNSAwIDAgMCAwIDIuNXYxMkEyLjUgMi41IDAgMCAwIDIuNSAxN2gxNGEyLjUgMi41IDAgMCAwIDIuNS0yLjV2LTEyQTIuNSAyLjUgMCAwIDAgMTYuNSAwaC0xNFoiLz48L3N2Zz4nfSw1NzUxMDAoZSl7ZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDE5IDE3IiB3aWR0aD0iMTkiIGhlaWdodD0iMTciPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNNyAxSDR2N2gzem0xIDB2N2gzVjF6bTQgMHY3aDNWMXptMCA4aC0ydjdoNFY5em0zIDBoM3Y1LjVjMCAuODMtLjY3IDEuNS0xLjUgMS41SDE1em0xLTh2N2gyVjIuNWMwLS44My0uNjctMS41LTEuNS0xLjV6TTggOUg1djdoNFY5ek0yLjUgMUgzdjdIMVYyLjVDMSAxLjY3IDEuNjcgMSAyLjUgMU0xIDloM3Y3SDIuNUExLjUgMS41IDAgMCAxIDEgMTQuNXptMS41LTlBMi41IDIuNSAwIDAgMCAwIDIuNXYxMkEyLjUgMi41IDAgMCAwIDIuNSAxN2gxNGEyLjUgMi41IDAgMCAwIDIuNS0yLjV2LTEyQTIuNSAyLjUgMCAwIDAgMTYuNSAweiIvPjwvc3ZnPid9LDE5MTU2NShlKXtlLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMjEgMTkiIHdpZHRoPSIyMSIgaGVpZ2h0PSIxOSI+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xOSAzLjVjMC0uODMtLjY3LTEuNS0xLjUtMS41SDE3djE1aC41Yy44MyAwIDEuNS0uNjcgMS41LTEuNXYtMTJabS0xNyAxMmMwIC44My42NyAxLjUgMS41IDEuNUg0VjJoLS41QzIuNjcgMiAyIDIuNjcgMiAzLjV2MTJaTTEuMDEgMy4yNEEyLjUgMi41IDAgMCAxIDMuNSAxaDE0QTIuNSAyLjUgMCAwIDEgMjAgMy41djEyYTIuNSAyLjUgMCAwIDEtMi41IDIuNWgtMTRBMi41IDIuNSAwIDAgMSAxIDE1LjV2LTEybC4wMS0uMjZaTTUgMTdoM1YySDV2MTVabTExIDBoLTNWMmgzdjE1Wk0xMiAydjE1SDlWMmgzWiIvPjwvc3ZnPid9LDQyMjU5OChlKXtlLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSItMSAtMSAyMSAxOSIgd2lkdGg9IjIxIiBoZWlnaHQ9IjE5IiB0cmFuc2Zvcm09Im1hdHJpeCgtMSwwLDAsLTEsMCwwKSIgdmVyc2lvbj0iMS4xIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xIDIuNUMxIDEuNjcgMS42NyAxIDIuNSAxSDl2MTVIMi41QTEuNSAxLjUgMCAwIDEgMSAxNC41di0xMlpNMTAgMTZoNi41Yy44MyAwIDEuNS0uNjcgMS41LTEuNVYxM2gtOHYzWm04LTRWOWgtOHYzaDhabTAtNFY1aC04djNoOFptMC00VjIuNWMwLS44My0uNjctMS41LTEuNS0xLjVIMTB2M2g4Wk0yLjUgMEEyLjUgMi41IDAgMCAwIDAgMi41djEyQTIuNSAyLjUgMCAwIDAgMi41IDE3aDE0YTIuNSAyLjUgMCAwIDAgMi41LTIuNXYtMTJBMi41IDIuNSAwIDAgMCAxNi41IDBoLTE0WiIvPjwvc3ZnPid9LDY2MzIyMihlKXtlLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSItMSAtMSAyMSAxOSIgd2lkdGg9IjIxIiBoZWlnaHQ9IjE5Ij48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTEgMi41QzEgMS42NyAxLjY3IDEgMi41IDFIOXYxNUgyLjVBMS41IDEuNSAwIDAgMSAxIDE0LjV2LTEyWk0xMCAxNmg2LjVjLjgzIDAgMS41LS42NyAxLjUtMS41VjEzaC04djNabTgtNFY5aC04djNoOFptMC00VjVoLTh2M2g4Wm0wLTRWMi41YzAtLjgzLS42Ny0xLjUtMS41LTEuNUgxMHYzaDhaTTIuNSAwQTIuNSAyLjUgMCAwIDAgMCAyLjV2MTJBMi41IDIuNSAwIDAgMCAyLjUgMTdoMTRhMi41IDIuNSAwIDAgMCAyLjUtMi41di0xMkEyLjUgMi41IDAgMCAwIDE2LjUgMGgtMTRaIi8+PC9zdmc+J30sMjIzMjI3KGUpewplLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMjEgMTkiIHdpZHRoPSIyMSIgaGVpZ2h0PSIxOSI+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xIDMuNUEyLjUgMi41IDAgMCAxIDMuNSAxaDE0QTIuNSAyLjUgMCAwIDEgMjAgMy41djEyYTIuNSAyLjUgMCAwIDEtMi41IDIuNWgtMTRBMi41IDIuNSAwIDAgMSAxIDE1LjV2LTEyWk0zLjUgMmgxNGMuODMgMCAxLjUuNjcgMS41IDEuNVY0SDJ2LS41QzIgMi42NyAyLjY3IDIgMy41IDJaTTIgNXYyaDE3VjVIMlptMTcgM0gydjNoMTdWOFptMCA0SDJ2MmgxN3YtMlptMCAzSDJ2LjVjMCAuODMuNjcgMS41IDEuNSAxLjVoMTRjLjgzIDAgMS41LS42NyAxLjUtMS41VjE1WiIvPjwvc3ZnPid9LDg2MDg1MihlKXtlLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSItMSAtMSAyMSAxOSIgd2lkdGg9IjIxIiBoZWlnaHQ9IjE5Ij48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTEgMi41QzEgMS42NyAxLjY3IDEgMi41IDFINnY3SDFWMi41Wk0xIDl2NS41YzAgLjgzLjY3IDEuNSAxLjUgMS41SDZWOUgxWm02IDdoNVY5SDd2N1ptNiAwaDMuNWMuODMgMCAxLjUtLjY3IDEuNS0xLjVWOWgtNXY3Wm01LThWMi41YzAtLjgzLS42Ny0xLjUtMS41LTEuNUgxM3Y3aDVabS02LTdIN3Y3aDVWMVpNMi41IDBBMi41IDIuNSAwIDAgMCAwIDIuNXYxMkEyLjUgMi41IDAgMCAwIDIuNSAxN2gxNGEyLjUgMi41IDAgMCAwIDIuNS0yLjV2LTEyQTIuNSAyLjUgMCAwIDAgMTYuNSAwaC0xNFoiLz48L3N2Zz4nfSwxMDA0NjMoZSl7ZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iLTEgLTEgMjEgMTkiIHdpZHRoPSIyMSIgaGVpZ2h0PSIxOSI+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xIDIuNUMxIDEuNjcgMS42NyAxIDIuNSAxSDl2NEgxVjIuNVpNMSA2djVoOFY2SDFabTAgNnYyLjVjMCAuODMuNjcgMS41IDEuNSAxLjVIOXYtNEgxWm05IDRoNi41Yy44MyAwIDEuNS0uNjcgMS41LTEuNVYxMmgtOHY0Wm04LTVWNmgtOHY1aDhabTAtNlYyLjVjMC0uODMtLjY3LTEuNS0xLjUtMS41SDEwdjRoOFpNMi41IDBBMi41IDIuNSAwIDAgMCAwIDIuNXYxMkEyLjUgMi41IDAgMCAwIDIuNSAxN2gxNGEyLjUgMi41IDAgMCAwIDIuNS0yLjV2LTEyQTIuNSAyLjUgMCAwIDAgMTYuNSAwaC0xNFoiLz48L3N2Zz4nfSw5MjA1MihlKXtlLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMjEgMTkiIHdpZHRoPSIyMSIgaGVpZ2h0PSIxOSI+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0yIDMuNUMyIDIuNjcgMi42NyAyIDMuNSAySDR2MTVoLS41QTEuNSAxLjUgMCAwIDEgMiAxNS41di0xMlpNNSAxN2gyVjJINXYxNVpNOCAydjE1aDJWMkg4Wm0zIDB2MTVoMlYyaC0yWm0zIDB2MTVoMlYyaC0yWm0zIDB2MTVoLjVjLjgzIDAgMS41LS42NyAxLjUtMS41di0xMmMwLS44My0uNjctMS41LTEuNS0xLjVIMTdaTTMuNSAxQTIuNSAyLjUgMCAwIDAgMSAzLjV2MTJBMi41IDIuNSAwIDAgMCAzLjUgMThoMTRhMi41IDIuNSAwIDAgMCAyLjUtMi41di0xMkEyLjUgMi41IDAgMCAwIDE3LjUgMWgtMTRaIi8+PC9zdmc+J30sNTYyOTk0KGUpe2UuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9Ii0xIC0xIDIxIDE5IiB3aWR0aD0iMjEiIGhlaWdodD0iMTkiPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNMSAyLjVDMSAxLjY3IDEuNjcgMSAyLjUgMUg0djdIMVYyLjVaTTEgOXY1LjVjMCAuODMuNjcgMS41IDEuNSAxLjVINFY5SDFabTQgN2g0VjlINXY3Wm01IDBoNFY5aC00djdabTUgMGgxLjVjLjgzIDAgMS41LS42NyAxLjUtMS41VjloLTN2N1ptMy04VjIuNWMwLS44My0uNjctMS41LTEuNS0xLjVIMTV2N2gzWm0tNC03aC00djdoNFYxWk05IDFINXY3aDRWMVpNMi41IDBBMi41IDIuNSAwIDAgMCAwIDIuNXYxMkEyLjUgMi41IDAgMCAwIDIuNSAxN2gxNGEyLjUgMi41IDAgMCAwIDIuNS0yLjV2LTEyQTIuNSAyLjUgMCAwIDAgMTYuNSAwaC0xNFoiLz48L3N2Zz4nfSwxNjQ0NShlKXtlLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSItMSAtMSAyMSAxOSIgd2lkdGg9IjIxIiBoZWlnaHQ9IjE5Ij48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTEgMi41QzEgMS42NyAxLjY3IDEgMi41IDFIOXYzSDFWMi41Wk0xIDV2M2g4VjVIMVptMCA0djNoOFY5SDFabTAgNHYxLjVjMCAuODMuNjcgMS41IDEuNSAxLjVIOXYtM0gxWm05IDNoNi41Yy44MyAwIDEuNS0uNjcgMS41LTEuNVYxM2gtOHYzWm04LTRWOWgtOHYzaDhabTAtNFY1aC04djNoOFptMC00VjIuNWMwLS44My0uNjctMS41LTEuNS0xLjVIMTB2M2g4Wk0yLjUgMEEyLjUgMi41IDAgMCAwIDAgMi41djEyQTIuNSAyLjUgMCAwIDAgMi41IDE3aDE0YTIuNSAyLjUgMCAwIDAgMi41LTIuNXYtMTJBMi41IDIuNSAwIDAgMCAxNi41IDBoLTE0WiIvPjwvc3ZnPid9LDg2NjgyNihlKXsKZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDIxIDE5IiB3aWR0aD0iMjEiIGhlaWdodD0iMTkiPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNMy41IDFBMi41IDIuNSAwIDAgMCAxIDMuNXYxMkEyLjUgMi41IDAgMCAwIDMuNSAxOGgxNGEyLjUgMi41IDAgMCAwIDIuNS0yLjV2LTEyQTIuNSAyLjUgMCAwIDAgMTcuNSAxaC0xNFpNNyAySDMuNUMyLjY3IDIgMiAyLjY3IDIgMy41VjZoNVYyWm0xIDB2NGg1VjJIOFptMCA1aDV2NUg4VjdabS0xIDVWN0gydjVoNVptLTUgMWg1djRIMy41QTEuNSAxLjUgMCAwIDEgMiAxNS41VjEzWm02IDBoNXY0SDh2LTRabTYgMHY0aDMuNWMuODMgMCAxLjUtLjY3IDEuNS0xLjVWMTNoLTVabTUtMVY3aC01djVoNVpNMTQgMnY0aDVWMy41YzAtLjgzLS42Ny0xLjUtMS41LTEuNUgxNFoiLz48L3N2Zz4nfSwzOTY3NTAoZSl7ZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDIxIDE5IiB3aWR0aD0iMjEiIGhlaWdodD0iMTkiIGZpbGw9Im5vbmUiPjxyZWN0IHdpZHRoPSIxOCIgaGVpZ2h0PSIxNiIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHJ4PSIyIiB4PSIxLjUiIHk9IjEuNSIvPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZD0iTTE5IDEwSDJWOWgxN3YxWiIvPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZD0iTTQgMTdWMmgxdjE1SDRaIi8+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBkPSJNNyAxN1YyaDF2MTVIN1oiIG9wYWNpdHk9Ii44NSIvPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZD0iTTEwIDE3VjJoMXYxNWgtMVoiIG9wYWNpdHk9Ii42NSIvPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZD0iTTEzIDE3VjJoMXYxNWgtMVoiIG9wYWNpdHk9Ii4yNSIvPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZD0iTTE2IDE4VjJoMXYxNmgtMVoiIG9wYWNpdHk9Ii4wNSIvPjwvc3ZnPid9LDY5Nzc1MyhlKXtlLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMjEgMTkiIHdpZHRoPSIyMSIgaGVpZ2h0PSIxOSIgZmlsbD0ibm9uZSI+PHJlY3Qgd2lkdGg9IjE4IiBoZWlnaHQ9IjE2IiBzdHJva2U9ImN1cnJlbnRDb2xvciIgcng9IjIiIHg9IjEuNSIgeT0iMS41Ii8+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBkPSJNNCAxN1YyaDF2MTVINFoiLz48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGQ9Ik03IDE3VjJoMXYxNUg3WiIgb3BhY2l0eT0iLjg1Ii8+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBkPSJNMTAgMTdWMmgxdjE1aC0xWiIgb3BhY2l0eT0iLjY1Ii8+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBkPSJNMTMgMTdWMmgxdjE1aC0xWiIgb3BhY2l0eT0iLjI1Ii8+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBkPSJNMTYgMTdWMmgxdjE1aC0xWiIgb3BhY2l0eT0iLjA1Ii8+PC9zdmc+J30sNTc0MTU5KGUpe2UuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMSAxOSIgd2lkdGg9IjIxIiBoZWlnaHQ9IjE5IiBmaWxsPSJub25lIj48cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTYiIHN0cm9rZT0iY3VycmVudENvbG9yIiByeD0iMiIgeD0iMS41IiB5PSIxLjUiLz48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGQ9Ik0xLjUgNGgxOHYxaC0xOFY0WiIvPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZD0iTTIgN2gxOHYxSDJWN1oiIG9wYWNpdHk9Ii42NSIvPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZD0iTTEuNSAxMGgxOHYxaC0xOHYtMVoiIG9wYWNpdHk9Ii4yNSIvPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZD0iTTEuNSAxM2gxOHYxaC0xOHYtMVoiIG9wYWNpdHk9Ii4wNSIvPjwvc3ZnPid9LDc0MjUwOShlKXtlLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMTkgMTciIHdpZHRoPSIxOSIgaGVpZ2h0PSIxNyIgZmlsbD0iY3VycmVudENvbG9yIj48cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xNi41IDFoLTE0QzEuNjcgMSAxIDEuNjcgMSAyLjV2MTJjMCAuODMuNjcgMS41IDEuNSAxLjVoMTRjLjgzIDAgMS41LS42NyAxLjUtMS41di0xMmMwLS44My0uNjctMS41LTEuNS0xLjVtLTE0LTFBMi41IDIuNSAwIDAgMCAwIDIuNXYxMkEyLjUgMi41IDAgMCAwIDIuNSAxN2gxNGEyLjUgMi41IDAgMCAwIDIuNS0yLjV2LTEyQTIuNSAyLjUgMCAwIDAgMTYuNSAweiIvPjxwYXRoIGQ9Ik05IDNoOXYxSDl6Ii8+PHBhdGggZD0iTTkgMTdWMWgxdjE2eiIvPjxwYXRoIGQ9Ik05IDZoOXYxSDl6IiBvcGFjaXR5PSIuNjUiLz48cGF0aCBkPSJNOSA5aDl2MUg5eiIgb3BhY2l0eT0iLjI1Ii8+PHBhdGggZD0iTTkgMTJoOXYxSDl6IiBvcGFjaXR5PSIuMDUiLz48L3N2Zz4nfSwyOTc4NDkoZSl7ZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iLTEgLTEgMjEgMTkiIHdpZHRoPSIyMSIgaGVpZ2h0PSIxOSI+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBkPSJNMi41IDFDMS42NyAxIDEgMS42NyAxIDIuNXYxMmMwIC44My42NyAxLjUgMS41IDEuNWgxNGMuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTEyYzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtMTRaTTAgMi41QTIuNSAyLjUgMCAwIDEgMi41IDBoMTRBMi41IDIuNSAwIDAgMSAxOSAyLjV2MTJhMi41IDIuNSAwIDAgMS0yLjUgMi41aC0xNEEyLjUgMi41IDAgMCAxIDAgMTQuNXYtMTJaIi8+PC9zdmc+J30sOTY1NjM1KGUpewplLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMjggMjgiIHdpZHRoPSIyOCIgaGVpZ2h0PSIyOCIgZmlsbD0iY3VycmVudENvbG9yIj48cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Im0xOC40MyAxNS45MSA2Ljk2LTguNi0uNzgtLjYyLTYuOTYgOC42YTIuNDkgMi40OSAwIDAgMC0yLjYzLjJsLTIuMjEtMi4wMkEyLjUgMi41IDAgMCAwIDEwLjUgMTBhMi41IDIuNSAwIDEgMCAxLjczIDQuM2wyLjEyIDEuOTJhMi41IDIuNSAwIDEgMCA0LjA4LS4zMVpNMTAuNSAxNGExLjUgMS41IDAgMSAwIDAtMyAxLjUgMS41IDAgMCAwIDAgM1ptNy41IDMuNWExLjUgMS41IDAgMSAxLTMgMCAxLjUgMS41IDAgMCAxIDMgMFoiLz48cGF0aCBkPSJNOC4zNyAxMy44Yy4xNy4zLjQuNTQuNjguNzRsLTUuNjcgNi43OC0uNzYtLjY0IDUuNzUtNi44OFoiLz48L3N2Zz4nfSw0MjAzNDAoZSl7ZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDI4IDI4IiB3aWR0aD0iMjgiIGhlaWdodD0iMjgiPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZD0ibTI1LjM5IDcuMzEtOC44MyAxMC45Mi02LjAyLTUuNDctNy4xNiA4LjU2LS43Ni0uNjQgNy44Mi05LjM2IDYgNS40NUwyNC42MSA2LjdsLjc4LjYyWiIvPjwvc3ZnPid9LDc3MzI2NShlKXtlLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMjggMjgiIHdpZHRoPSIyOCIgaGVpZ2h0PSIyOCI+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBkPSJNMTggMjRoM1YxMmgtM3YxMnptLTEtMTNoNXYxNGgtNVYxMXptLTQtOHY3aDNWM2gtM3ptLTEtMWg1djloLTVWMnpNOCAxOWgzdi03SDh2N3ptLTEtOGg1djlIN3YtOXoiLz48L3N2Zz4nfSwzNDY1NTEoZSl7ZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDIxIDIxIiB3aWR0aD0iMjEiIGhlaWdodD0iMjEiPjxnIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIj48cGF0aCBkPSJNMTguNSAxMXY1LjVhMiAyIDAgMCAxLTIgMmgtMTNhMiAyIDAgMCAxLTItMnYtMTNhMiAyIDAgMCAxIDItMkg5Ii8+PHBhdGggc3Ryb2tlLWxpbmVjYXA9InNxdWFyZSIgZD0iTTE4IDJsLTguNSA4LjVtNC05aDV2NSIvPjwvZz48L3N2Zz4nfSw5MTc2OTYoZSl7ZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDI4IDI4IiB3aWR0aD0iMjgiIGhlaWdodD0iMjgiIGZpbGw9ImN1cnJlbnRDb2xvciI+PHBhdGggZD0iTTE0LjUgMTZhMi41IDIuNSAwIDEgMSAwLTUgMi41IDIuNSAwIDAgMSAwIDV6bTAtMWExLjUgMS41IDAgMSAwIDAtMyAxLjUgMS41IDAgMCAwIDAgM3ptMCA3YTIuNSAyLjUgMCAxIDEgMC01IDIuNSAyLjUgMCAwIDEgMCA1em0wLTFhMS41IDEuNSAwIDEgMCAwLTMgMS41IDEuNSAwIDAgMCAwIDN6bTMuMjkzLTE1LjVsNC43MDcgNC43MDcuNzA3LS43MDdMMTguNSA0Ljc5M3oiLz48cGF0aCBkPSJNMTguNSAxMC4yMDdMMjMuMjA3IDUuNWwtLjcwNy0uNzA3TDE3Ljc5MyA5LjV6bS0uNzA3IDEuMjkzbDQuNzA3IDQuNzA3LjcwNy0uNzA3LTQuNzA3LTQuNzA3eiIvPjxwYXRoIGQ9Ik0xOC41IDE2LjIwN2w0LjcwNy00LjcwNy0uNzA3LS43MDctNC43MDcgNC43MDd6TTUuNzkzIDE3LjVsNC43MDcgNC43MDcuNzA3LS43MDdMNi41IDE2Ljc5M3oiLz48cGF0aCBkPSJNNi41IDIyLjIwN2w0LjcwNy00LjcwNy0uNzA3LS43MDdMNS43OTMgMjEuNXpNNS43OTMgNS41bDQuNzA3IDQuNzA3LjcwNy0uNzA3TDYuNSA0Ljc5M3oiLz48cGF0aCBkPSJNNi41IDEwLjIwN0wxMS4yMDcgNS41bC0uNzA3LS43MDdMNS43OTMgOS41ek01Ljc5MyAxMS41bDQuNzA3IDQuNzA3LjcwNy0uNzA3TDYuNSAxMC43OTN6Ii8+PHBhdGggZD0iTTYuNSAxNi4yMDdsNC43MDctNC43MDctLjcwNy0uNzA3TDUuNzkzIDE1LjV6Ii8+PC9zdmc+J30sNzYyMDIoZSl7ZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDI4IDI4IiB3aWR0aD0iMjgiIGhlaWdodD0iMjgiPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZD0iTTE4LjI5MyAxM2wtMi42NDcgMi42NDYuNzA3LjcwOCAzLjg1NC0zLjg1NC0zLjg1NC0zLjg1NC0uNzA3LjcwOEwxOC4yOTMgMTJIMTIuNUE1LjUgNS41IDAgMCAwIDcgMTcuNVYxOWgxdi0xLjVhNC41IDQuNSAwIDAgMSA0LjUtNC41aDUuNzkzeiIvPjwvc3ZnPid9LDcyMjc2MyhlKXtlLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMjggMjgiIHdpZHRoPSIyOCIgaGVpZ2h0PSIyOCI+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBkPSJNMTggNXY1aDNWNWgtM3ptLTEtMWg1djdoLTVWNHptLTQgMTNoM3YtNWgtM3Y1em0tMS02aDV2N2gtNXYtN3pNOCAyNGgzdi01SDh2NXptLTEtNmg1djdIN3YtN3oiLz48L3N2Zz4nfSwyNDM0MDIoZSl7ZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDI4IDI4IiB3aWR0aD0iMjgiIGhlaWdodD0iMjgiIGZpbGw9ImN1cnJlbnRDb2xvciI+PHBhdGggZD0iTTE5IDVoNXYxaC00djEzaC02di03aC00djEySDV2LTFoNFYxMWg2djdoNFY1WiIvPjwvc3ZnPid9LDk1OTIzKGUpe2UuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyOCAyOCIgd2lkdGg9IjI4IiBoZWlnaHQ9IjI4Ij48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTYgNWg2djRoNHY0aDd2NWgtNXY0SDZWNVptMSAxaDR2M0g3VjZabTAgNHYzaDh2LTNIN1ptMTUgNHYzSDd2LTNoMTVabS01IDd2LTNIN3YzaDEwWiIvPjwvc3ZnPid9LDk4NzAyMShlKXsKZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDI4IDI4IiB3aWR0aD0iMjgiIGhlaWdodD0iMjgiPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNMTEgOWg4djRoNHY1aC00djRINlY1aDV2NFptLTEtM0g3djNoM1Y2Wm04IDEydjNoLTN2LTNoM1ptMS00djNoM3YtM2gtM1ptLTEtMXYtM2gtM3YzaDNabS0zIDFoM3YzaC0zdi0zWm0tMSAwdjNoLTN2LTNoM1ptMCA0djNoLTN2LTNoM1ptMC01aC0zdi0zaDN2M1ptLTQgOHYtM0g3djNoM1ptMC00SDd2LTNoM3YzWm0wLTd2M0g3di0zaDNaIi8+PC9zdmc+J30sNDk5NzI0KGUpe2UuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyOCAyOCIgd2lkdGg9IjI4IiBoZWlnaHQ9IjI4Ij48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGQ9Ik04LjcwNyAxM2wyLjY0NyAyLjY0Ni0uNzA3LjcwOEw2Ljc5MiAxMi41bDMuODUzLTMuODU0LjcwOC43MDhMOC43MDcgMTJIMTQuNWE1LjUgNS41IDAgMCAxIDUuNSA1LjVWMTloLTF2LTEuNWE0LjUgNC41IDAgMCAwLTQuNS00LjVIOC43MDd6Ii8+PC9zdmc+J30sNjU5NTA1KGUpe2UuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyOCAyOCIgd2lkdGg9IjI4IiBoZWlnaHQ9IjI4Ij48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTE4IDRoMXYzaDMuNWMuMjggMCAuNS4yMi41LjV2MTNhLjUuNSAwIDAgMS0uNS41SDE5djNoLTF2LTNoLTMuNWEuNS41IDAgMCAxLS41LS41di0xM2MwLS4yOC4yMi0uNS41LS41SDE4VjRabS0zIDE2aDdWOGgtN3YxMlpNMTAgN0g5djNINy41YS41LjUgMCAwIDAtLjUuNXY4YzAgLjI4LjIyLjUuNS41SDl2M2gxdi0zaDEuNWEuNS41IDAgMCAwIC41LS41di04YS41LjUgMCAwIDAtLjUtLjVIMTBWN1ptLTEgNEg4djdoM3YtN0g5WiIvPjwvc3ZnPid9LDE5MjQ4MihlKXtlLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMjggMjgiIHdpZHRoPSIyOCIgaGVpZ2h0PSIyOCI+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik05IDRIOHYzSDYuNWEuNS41IDAgMCAwLS41LjV2MTJhLjUuNSAwIDAgMCAuNS41SDh2M2gxdi0zaDEuNWEuNS41IDAgMCAwIC41LS41di0xMmEuNS41IDAgMCAwLS41LS41SDlWNFpNNyA4djExaDNWOEg3Wm03LTFoOXYxaC05VjdabTkgNGgtOXYxaDl2LTFabS05IDRoOXYxaC05di0xWm05IDRoLTl2MWg5di0xWiIvPjwvc3ZnPid9LDM3MjIzOChlKXtlLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMTggMTgiIHdpZHRoPSIxOCIgaGVpZ2h0PSIxOCI+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBkPSJNOSAxN0E4IDggMCAxIDAgOSAxYTggOCAwIDAgMCAwIDE2Wk04IDZhMSAxIDAgMSAxIDIgMCAxIDEgMCAwIDEtMiAwWm0xIDJjLjQ5IDAgMSAuNTkgMSAxdjMuMDFjMCAuNDItLjUxLjk5LTEgLjk5cy0xLS41Ny0xLS45OVY5YzAtLjQxLjUxLTEgMS0xWiIvPjwvc3ZnPid9LDU4Mzg0MihlKXtlLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMjggMjgiIHdpZHRoPSIyOCIgaGVpZ2h0PSIyOCIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTEzLjkgMTQuMVYyMmgxLjJ2LTcuOUgyM3YtMS4yaC03LjlWNWgtMS4ydjcuOUg2djEuMmg3Ljl6Ii8+PC9zdmc+J30sNjA0OTAxKGUpe2UuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxOCAxOCIgd2lkdGg9IjE4IiBoZWlnaHQ9IjE4Ij48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGQ9Ik0xNCAxNUg0VjNoMTB6bS05LTFoOFY0SDV6bTQuNS04YTIgMiAwIDAgMSAyIDJoLTFhMSAxIDAgMCAwLTEtMUg4LjI1YS43NS43NSAwIDAgMCAwIDEuNWgxLjVhMS43NSAxLjc1IDAgMSAxIDAgMy41SDkuNXYxaC0xdi0xYTIgMiAwIDAgMS0yLTJoMWExIDEgMCAwIDAgMSAxaDEuMjVhLjc1Ljc1IDAgMCAwIDAtMS41aC0xLjVhMS43NSAxLjc1IDAgMSAxIDAtMy41aC4yNVY1aDF6Ii8+PC9zdmc+J30sOTA3OTExKGUpe2UuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxOCAxOCIgd2lkdGg9IjE4IiBoZWlnaHQ9IjE4Ij48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGQ9Ik0xNCAxNUg0VjNoMTB6bS05LTFoOFY0SDV6bTctMy4yOS0yLjMzIDIuM0w4IDExLjZsLjY1LS43Ny45Ni44MUwxMS4zIDEwek05IDlINlY4aDN6bTMtMkg2VjZoNnoiLz48L3N2Zz4nfSw1NTEyODIoZSl7ZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDE4IDE4IiB3aWR0aD0iMTgiIGhlaWdodD0iMTgiPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZD0iTTE0IDYuNVYxNUg0VjNoNi41ek01IDE0aDhWNi45MUwxMC4wOSA0SDV6bTQtM0g2di0xaDN6bTMtMkg2VjhoNnoiLz48L3N2Zz4nfSw2MjcwNDEoZSl7CmUuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxOCAxOCIgd2lkdGg9IjE4IiBoZWlnaHQ9IjE4Ij48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGQ9Im0xMS4wNSA2LjE3IDEuMDcgMUE2IDYgMCAwIDEgMTQgMTEuNTVWMTRhMiAyIDAgMCAxLTEuOCAxLjk5TDEyIDE2SDZsLS4yLS4wMUEyIDIgMCAwIDEgNCAxNHYtMi40NkE2IDYgMCAwIDEgNS42NiA3LjRsLjIyLS4yMiAxLjA3LTEuMDFMNiAzaDZ6TTYuNTcgNy45QTUgNSAwIDAgMCA1IDExLjU0VjE0YTEgMSAwIDAgMCAxIDFoNmExIDEgMCAwIDAgMS0xdi0yLjQ2YTUgNSAwIDAgMC0xLjU3LTMuNjNMMTAuNDggN0g3LjUyek03Ljk0IDZoMi4xMmwuNi0ySDcuMzR6Ii8+PC9zdmc+J30sMjM2NDI5KGUpe2UuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxOCAxOCIgd2lkdGg9IjE4IiBoZWlnaHQ9IjE4Ij48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGQ9Ik0xNCAxNEg0VjloM1Y3aDNWNGg0em0tOS0xaDJ2LTNINXptMyAwaDJWOEg4em0zIDBoMlY1aC0yeiIvPjwvc3ZnPid9LDUxNDE0MihlKXtlLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMTggMTgiIHdpZHRoPSIxOCIgaGVpZ2h0PSIxOCI+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBkPSJNNi41IDRjLjg5IDAgMS43Mi4xOCAyLjM1LjUuNi4yOSAxLjE1LjggMS4xNSAxLjV2Mi41OGwuMTYtLjA5QzEwLjc4IDguMTggMTEuNiA4IDEyLjUgOHMxLjcyLjE4IDIuMzUuNWMuNi4yOSAxLjE1LjggMS4xNSAxLjV2Mi4xYzAgLjctLjU5IDEuMTctMS4xNyAxLjQ0LS42Mi4zLTEuNDUuNDYtMi4zMy40NnMtMS43MS0uMTctMi4zMy0uNDZDOS41OSAxMy4yNyA5IDEyLjggOSAxMi4xdi0uNjRsLS4xNy4wOGMtLjYyLjMtMS40NS40Ni0yLjMzLjQ2cy0xLjcxLS4xNy0yLjMzLS40NkMzLjU4IDExLjI3IDMgMTAuOCAzIDEwLjFWNmMwLS43LjU2LTEuMjEgMS4xNi0xLjVDNC43OCA0LjE3IDUuNiA0IDYuNSA0bTMuNSA4LjFjMCAuMDguMDkuMy41OS41My40Ni4yMiAxLjE0LjM3IDEuOTEuMzdzMS40NS0uMTUgMS45MS0uMzdjLjUtLjIzLjU5LS40NS41OS0uNTN2LS42OGwtLjE1LjA5Yy0uNjMuMzEtMS40Ni40OS0yLjM1LjQ5cy0xLjcyLS4xOC0yLjM0LS41bC0uMTYtLjA4ek0xMi41IDljLS43NyAwLTEuNDQuMTYtMS45LjM5LS40OS4yNC0uNi40OS0uNi42MXMuMTEuMzcuNi42MWMuNDYuMjMgMS4xMy4zOSAxLjkuMzlzMS40NC0uMTYgMS45LS4zOWMuNDgtLjI0LjYtLjQ4LjYtLjZWMTBjMC0uMTItLjExLS4zNy0uNi0uNjFBNC40IDQuNCAwIDAgMCAxMi41IDltLTMuNjcuNTRjLS42Mi4zLTEuNDUuNDYtMi4zMy40NkE2IDYgMCAwIDEgNCA5LjQ2di42NGMwIC4wOC4wOS4zLjU5LjUzLjQ2LjIyIDEuMTQuMzcgMS45MS4zN3MxLjQ1LS4xNSAxLjkxLS4zN2MuNS0uMjMuNTktLjQ1LjU5LS41M3YtLjY0ek00IDguMWMwIC4wOC4wOS4zLjU5LjUzLjQ2LjIyIDEuMTQuMzcgMS45MS4zN3MxLjQ1LS4xNSAxLjkxLS4zN2MuNS0uMjMuNTktLjQ1LjU5LS41M3YtLjY4bC0uMTUuMDlDOC4yMiA3LjgyIDcuMzkgOCA2LjUgOHMtMS43Mi0uMTgtMi4zNC0uNUw0IDcuNDN6TTYuNSA1Yy0uNzcgMC0xLjQ0LjE2LTEuOS4zOS0uNDkuMjQtLjYuNDktLjYuNjFzLjExLjM3LjYuNjFjLjQ2LjIzIDEuMTMuMzkgMS45LjM5czEuNDQtLjE2IDEuOS0uMzljLjQ4LS4yNC42LS40OC42LS42VjZjMC0uMTItLjExLS4zNy0uNi0uNjFBNC40IDQuNCAwIDAgMCA2LjUgNSIvPjwvc3ZnPid9LDIwNTQ3MihlKXtlLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMTggMTgiIHdpZHRoPSIxOCIgaGVpZ2h0PSIxOCI+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBkPSJNMTQgOWgydjRhMiAyIDAgMCAxLTIgMkg1bC0uMi0uMDFBMiAyIDAgMCAxIDMgMTMuMkwzIDEzVjNoMTF6TTQgMTNhMSAxIDAgMCAwIDEgMWg4VjRINHptMTAgMWExIDEgMCAwIDAgMS0xdi0zaC0xem0tMi0ySDV2LTFoN3pNOCA5SDVWNmgzem00IDBIOVY4aDN6TTYgOGgxVjdINnptNi0xSDlWNmgzeiIvPjwvc3ZnPid9LDcyNzI2OShlKXtlLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMTggMTgiIHdpZHRoPSIxOCIgaGVpZ2h0PSIxOCI+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBkPSJNNSA4aDUuNDNsMi43LTQuOTguODkuNDgtNS4wMyA5LjI0YS41LjUgMCAwIDEtLjQ0LjI2SDV2M0g0VjJoMXptMCA0aDMuMjVsMS42My0zSDV6bTExLTNoLTMuODdsLjU3LTFIMTZ6Ii8+PC9zdmc+J30sOTIwODgoZSl7CmUuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxOCAxOCIgd2lkdGg9IjE4IiBoZWlnaHQ9IjE4Ij48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGQ9Im0xMy4wNCA2LjQ0LjIuNGMuNDYuOTQuNTggMiAuMzYgMyAuNjUtLjEgMS4yNSAwIDEuOS4yMWwuNS4xNi0uMTguNDhhNC40IDQuNCAwIDAgMS0yLjMgMi40NXEuMzIuNDUuNTIuODZsLjI0LjQzLS40NC4yNHEtLjYzLjM0LTEuMy4zM2MtLjguMDEtMS42LS4zLTIuMi0uODNMMTAgMTVsLS45My0uMzcuMzEtLjc2YTMuMSAzLjEgMCAwIDEtMi45Ny0xLjgxbC0uMTktLjQ2LjQ2LS4ycS40LS4xNy44OC0uMzFhNCA0IDAgMCAxLS4xNy0zLjMybC4xNi0uNDUuNDUuMTRjLjY1LjIgMS4yNC40OCAxLjcuOTlhNSA1IDAgMCAxIDIuMi0yLjAybC40OC0uMjMuNDQtLjJ6bS0uODguOThhNCA0IDAgMCAwLTEuODggMi4xbC0uMDUuMTQtLjQ1IDEuMTUtLjQ4LTEuMTNhMiAyIDAgMCAwLTEuMS0xLjA5Yy0uMjIuOTUtLjAzIDEuODIuNiAyLjUzbC43NC44M2gtMS4xcS0uNDIuMDItLjgzLjE3Yy41NS42NSAxLjU2LjkzIDIuNDIuNjRsLjM3LS4xMy4yMS4zM2EyLjMgMi4zIDAgMCAwIDIuMjcgMS4wMSAyIDIgMCAwIDAtLjU2LS42MmwtMS4wMS0uNjUgMS4xNy0uMjVjLjgtLjE4IDEuNjctLjc3IDIuMTYtMS42YTMgMyAwIDAgMC0xLjYxLjE2bC0xLjEuNDMuNDYtMS4wOC4wNS0uMTNjLjM5LS45NC4zNi0yLS4wOC0yLjkxek04IDQuMDRxLjkxLjEzIDEuNjEuNjdsMS40Mi0xLjQyLjcuNy0xLjQyIDEuNDMtLjcyLjcyYTIuNSAyLjUgMCAxIDAtMy41IDMuNDNsLTEuMDUgMS4xLS42Ni42Ni0uNDguNDgtLjctLjdMNC43IDkuNnEtLjUyLS43LS42Ni0xLjZIMlY3aDIuMDRxLjEzLS44NC42LTEuNTFsLTEuNS0xLjUuNy0uNyAxLjQ4IDEuNDdBMy41IDMuNSAwIDAgMSA3IDQuMDRWMmgxeiIvPjwvc3ZnPid9LDI5MjM2MChlKXtlLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMTggMTgiIHdpZHRoPSIxOCIgaGVpZ2h0PSIxOCI+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBkPSJNOSAzYTcuMDIgNy4wMiAwIDAgMSA2LjUyIDkuNmwtLjE1LjQtMi4zNi0uNTQuMjItLjk4IDEuNS4zNWE2IDYgMCAwIDAtLjE3LTQuMDdsLTEuMTguNjgtLjUtLjg3IDEuMjItLjdhNiA2IDAgMCAwLTQuNi0yLjg1VjUuNWgtMVY0LjAyYTYgNiAwIDAgMC00LjYgMi44NWwxLjIyLjctLjUuODctMS4xOC0uNjhhNiA2IDAgMCAwLS4xNyA0LjA3bDEuNS0uMzUuMTIuNDkuMTEuNDktMS45NS40NC0uNDIuMS0uMTUtLjRBNy4wNiA3LjA2IDAgMCAxIDkgM20zIDMuNTctMi4xIDNBMSAxIDAgMCAxIDkgMTFhMSAxIDAgMSAxIC4wOC0ybDIuMS0zeiIvPjwvc3ZnPid9LDc5MTY5MyhlKXtlLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMTggMTgiIHdpZHRoPSIxOCIgaGVpZ2h0PSIxOCI+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBkPSJNNSAxNEg0di0zaDF6bTMgMEg3VjloMXptMyAwaC0xdi0zaDF6bTMgMGgtMVY5aDF6bTEtOS4xOEwxMC4zOCA4IDYuOTkgNS42IDMuNjIgOC4wMyAzIDcuMmw0LTIuODQgMy4zOSAyLjQyTDE0LjQ1IDR6Ii8+PC9zdmc+J30sOTg3OTkyKGUpe2UuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxOCAxOCIgd2lkdGg9IjE4IiBoZWlnaHQ9IjE4Ij48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGQ9Ik01IDEyaDExdjFINXYzSDRWMmgxem05LThjMCAyLjc2LS41MSA0LjUzLTEuNDQgNS42MS0uOTQgMS4xLTIuMjMgMS4zOC0zLjUgMS4zOC0uODggMC0yLjA3LS4yLTMuMDYtLjc2bC41LS44N2MuOC40NSAxLjguNjMgMi41Ny42MyAxLjEzIDAgMi4wNi0uMjQgMi43My0xLjAzLjctLjggMS4yLTIuMjggMS4yLTQuOTZ6Ii8+PC9zdmc+J30sMTU5MjQ1KGUpe2UuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxOCAxOCIgd2lkdGg9IjE4IiBoZWlnaHQ9IjE4Ij48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGQ9Ik01IDE2SDRWMmgxek0xNSA1LjVsLTIuNjYgMi40OS0uNjgtLjczTDEyLjkgNi4xQTcgNyAwIDAgMCA4LjI3IDlhNyA3IDAgMCAwIDQuNjQgMi45MWwtMS4yNS0xLjE3LjY4LS43M0wxNSAxMi41IDEyLjM0IDE1bC0uNjgtLjc0IDEuNC0xLjMyYTggOCAwIDAgMS01LjM0LTNBNyA3IDAgMCAwIDcgMTMuMDJWMTRINnYtLjk3YzAtNC4xMSAzLjA5LTcuNSA3LjA2LTcuOTdsLTEuNC0xLjMyLjY4LS43NHpNNyA0di45NnEwIDEuMS4zMSAyLjEtLjM5LjQyLS43My45YTggOCAwIDAgMS0uNTgtM1Y0eiIvPjwvc3ZnPid9LDI2MDYwMyhlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtkZWZhdWx0OigpPT5hfSk7Y29uc3QgYT1mdW5jdGlvbigpe3ZhciBlPXtiYXNlOiJodHRwczovL3R3ZW1vamkubWF4Y2RuLmNvbS92LzEzLjAuMS8iLGV4dDoiLnBuZyIsc2l6ZToiNzJ4NzIiLGNsYXNzTmFtZToiZW1vamkiLGNvbnZlcnQ6e2Zyb21Db2RlUG9pbnQ6ZnVuY3Rpb24oZSl7dmFyIHQ9InN0cmluZyI9PXR5cGVvZiBlP3BhcnNlSW50KGUsMTYpOmU7aWYodDw2NTUzNilyZXR1cm4gbCh0KTtyZXR1cm4gbCg1NTI5NisoKHQtPTY1NTM2KT4+MTApLDU2MzIwKygxMDIzJnQpKX0sdG9Db2RlUG9pbnQ6Z30sb25lcnJvcjpmdW5jdGlvbigpe3RoaXMucGFyZW50Tm9kZSYmdGhpcy5wYXJlbnROb2RlLnJlcGxhY2VDaGlsZChyKHRoaXMuYWx0LCExKSx0aGlzKX0scGFyc2U6ZnVuY3Rpb24odCxuKXtuJiYiZnVuY3Rpb24iIT10eXBlb2Ygbnx8KG49e2NhbGxiYWNrOm59KTtyZXR1cm4oInN0cmluZyI9PXR5cGVvZiB0P3Y6aCkodCx7Y2FsbGJhY2s6bi5jYWxsYmFja3x8ZCxhdHRyaWJ1dGVzOiJmdW5jdGlvbiI9PXR5cGVvZiBuLmF0dHJpYnV0ZXM/bi5hdHRyaWJ1dGVzOnAsYmFzZToic3RyaW5nIj09dHlwZW9mIG4uYmFzZT9uLmJhc2U6ZS5iYXNlLApleHQ6bi5leHR8fGUuZXh0LHNpemU6bi5mb2xkZXJ8fChhPW4uc2l6ZXx8ZS5zaXplLCJudW1iZXIiPT10eXBlb2YgYT9hKyJ4IithOmEpLGNsYXNzTmFtZTpuLmNsYXNzTmFtZXx8ZS5jbGFzc05hbWUsb25lcnJvcjpuLm9uZXJyb3J8fGUub25lcnJvcn0pO3ZhciBhfSxyZXBsYWNlOmYsdGVzdDpmdW5jdGlvbihlKXtuLmxhc3RJbmRleD0wO3ZhciB0PW4udGVzdChlKTtyZXR1cm4gbi5sYXN0SW5kZXg9MCx0fX0sdD17IiYiOiImYW1wOyIsIjwiOiImbHQ7IiwiPiI6IiZndDsiLCInIjoiJiMzOTsiLCciJzoiJnF1b3Q7Igp9LG49Lyg/Olx1ZDgzZFx1ZGM2OFx1ZDgzY1x1ZGZmYlx1MjAwZFx1ZDgzZVx1ZGQxZFx1MjAwZFx1ZDgzZFx1ZGM2OFx1ZDgzY1tcdWRmZmMtXHVkZmZmXXxcdWQ4M2RcdWRjNjhcdWQ4M2NcdWRmZmNcdTIwMGRcdWQ4M2VcdWRkMWRcdTIwMGRcdWQ4M2RcdWRjNjhcdWQ4M2NbXHVkZmZiXHVkZmZkLVx1ZGZmZl18XHVkODNkXHVkYzY4XHVkODNjXHVkZmZkXHUyMDBkXHVkODNlXHVkZDFkXHUyMDBkXHVkODNkXHVkYzY4XHVkODNjW1x1ZGZmYlx1ZGZmY1x1ZGZmZVx1ZGZmZl18XHVkODNkXHVkYzY4XHVkODNjXHVkZmZlXHUyMDBkXHVkODNlXHVkZDFkXHUyMDBkXHVkODNkXHVkYzY4XHVkODNjW1x1ZGZmYi1cdWRmZmRcdWRmZmZdfFx1ZDgzZFx1ZGM2OFx1ZDgzY1x1ZGZmZlx1MjAwZFx1ZDgzZVx1ZGQxZFx1MjAwZFx1ZDgzZFx1ZGM2OFx1ZDgzY1tcdWRmZmItXHVkZmZlXXxcdWQ4M2RcdWRjNjlcdWQ4M2NcdWRmZmJcdTIwMGRcdWQ4M2VcdWRkMWRcdTIwMGRcdWQ4M2RcdWRjNjhcdWQ4M2NbXHVkZmZjLVx1ZGZmZl18XHVkODNkXHVkYzY5XHVkODNjXHVkZmZiXHUyMDBkXHVkODNlXHVkZDFkXHUyMDBkXHVkODNkXHVkYzY5XHVkODNjW1x1ZGZmYy1cdWRmZmZdfFx1ZDgzZFx1ZGM2OVx1ZDgzY1x1ZGZmY1x1MjAwZFx1ZDgzZVx1ZGQxZFx1MjAwZFx1ZDgzZFx1ZGM2OFx1ZDgzY1tcdWRmZmJcdWRmZmQtXHVkZmZmXXxcdWQ4M2RcdWRjNjlcdWQ4M2NcdWRmZmNcdTIwMGRcdWQ4M2VcdWRkMWRcdTIwMGRcdWQ4M2RcdWRjNjlcdWQ4M2NbXHVkZmZiXHVkZmZkLVx1ZGZmZl18XHVkODNkXHVkYzY5XHVkODNjXHVkZmZkXHUyMDBkXHVkODNlXHVkZDFkXHUyMDBkXHVkODNkXHVkYzY4XHVkODNjW1x1ZGZmYlx1ZGZmY1x1ZGZmZVx1ZGZmZl18XHVkODNkXHVkYzY5XHVkODNjXHVkZmZkXHUyMDBkXHVkODNlXHVkZDFkXHUyMDBkXHVkODNkXHVkYzY5XHVkODNjW1x1ZGZmYlx1ZGZmY1x1ZGZmZVx1ZGZmZl18XHVkODNkXHVkYzY5XHVkODNjXHVkZmZlXHUyMDBkXHVkODNlXHVkZDFkXHUyMDBkXHVkODNkXHVkYzY4XHVkODNjW1x1ZGZmYi1cdWRmZmRcdWRmZmZdfFx1ZDgzZFx1ZGM2OVx1ZDgzY1x1ZGZmZVx1MjAwZFx1ZDgzZVx1ZGQxZFx1MjAwZFx1ZDgzZFx1ZGM2OVx1ZDgzY1tcdWRmZmItXHVkZmZkXHVkZmZmXXxcdWQ4M2RcdWRjNjlcdWQ4M2NcdWRmZmZcdTIwMGRcdWQ4M2VcdWRkMWRcdTIwMGRcdWQ4M2RcdWRjNjhcdWQ4M2NbXHVkZmZiLVx1ZGZmZV18XHVkODNkXHVkYzY5XHVkODNjXHVkZmZmXHUyMDBkXHVkODNlXHVkZDFkXHUyMDBkXHVkODNkXHVkYzY5XHVkODNjW1x1ZGZmYi1cdWRmZmVdfFx1ZDgzZVx1ZGRkMVx1ZDgzY1x1ZGZmYlx1MjAwZFx1ZDgzZVx1ZGQxZFx1MjAwZFx1ZDgzZVx1ZGRkMVx1ZDgzY1tcdWRmZmItXHVkZmZmXXxcdWQ4M2VcdWRkZDFcdWQ4M2NcdWRmZmNcdTIwMGRcdWQ4M2VcdWRkMWRcdTIwMGRcdWQ4M2VcdWRkZDFcdWQ4M2NbXHVkZmZiLVx1ZGZmZl18XHVkODNlXHVkZGQxXHVkODNjXHVkZmZkXHUyMDBkXHVkODNlXHVkZDFkXHUyMDBkXHVkODNlXHVkZGQxXHVkODNjW1x1ZGZmYi1cdWRmZmZdfFx1ZDgzZVx1ZGRkMVx1ZDgzY1x1ZGZmZVx1MjAwZFx1ZDgzZVx1ZGQxZFx1MjAwZFx1ZDgzZVx1ZGRkMVx1ZDgzY1tcdWRmZmItXHVkZmZmXXxcdWQ4M2VcdWRkZDFcdWQ4M2NcdWRmZmZcdTIwMGRcdWQ4M2VcdWRkMWRcdTIwMGRcdWQ4M2VcdWRkZDFcdWQ4M2NbXHVkZmZiLVx1ZGZmZl18XHVkODNlXHVkZGQxXHUyMDBkXHVkODNlXHVkZDFkXHUyMDBkXHVkODNlXHVkZGQxfFx1ZDgzZFx1ZGM2Ylx1ZDgzY1tcdWRmZmItXHVkZmZmXXxcdWQ4M2RcdWRjNmNcdWQ4M2NbXHVkZmZiLVx1ZGZmZl18XHVkODNkXHVkYzZkXHVkODNjW1x1ZGZmYi1cdWRmZmZdfFx1ZDgzZFtcdWRjNmItXHVkYzZkXSl8KD86XHVkODNkW1x1ZGM2OFx1ZGM2OV18XHVkODNlXHVkZGQxKSg/Olx1ZDgzY1tcdWRmZmItXHVkZmZmXSk/XHUyMDBkKD86XHUyNjk1XHVmZTBmfFx1MjY5Nlx1ZmUwZnxcdTI3MDhcdWZlMGZ8XHVkODNjW1x1ZGYzZVx1ZGY3M1x1ZGY3Y1x1ZGY4NFx1ZGY5M1x1ZGZhNFx1ZGZhOFx1ZGZlYlx1ZGZlZF18XHVkODNkW1x1ZGNiYlx1ZGNiY1x1ZGQyN1x1ZGQyY1x1ZGU4MFx1ZGU5Ml18XHVkODNlW1x1ZGRhZi1cdWRkYjNcdWRkYmNcdWRkYmRdKXwoPzpcdWQ4M2NbXHVkZmNiXHVkZmNjXXxcdWQ4M2RbXHVkZDc0XHVkZDc1XXxcdTI2ZjkpKCg/Olx1ZDgzY1tcdWRmZmItXHVkZmZmXXxcdWZlMGYpXHUyMDBkW1x1MjY0MFx1MjY0Ml1cdWZlMGYpfCg/Olx1ZDgzY1tcdWRmYzNcdWRmYzRcdWRmY2FdfFx1ZDgzZFtcdWRjNmVcdWRjNzBcdWRjNzFcdWRjNzNcdWRjNzdcdWRjODFcdWRjODJcdWRjODZcdWRjODdcdWRlNDUtXHVkZTQ3XHVkZTRiXHVkZTRkXHVkZTRlXHVkZWEzXHVkZWI0LVx1ZGViNl18XHVkODNlW1x1ZGQyNlx1ZGQzNVx1ZGQzNy1cdWRkMzlcdWRkM2RcdWRkM2VcdWRkYjhcdWRkYjlcdWRkY2QtXHVkZGNmXHVkZGQ2LVx1ZGRkZF0pKD86XHVkODNjW1x1ZGZmYi1cdWRmZmZdKT9cdTIwMGRbXHUyNjQwXHUyNjQyXVx1ZmUwZnwoPzpcdWQ4M2RcdWRjNjhcdTIwMGRcdTI3NjRcdWZlMGZcdTIwMGRcdWQ4M2RcdWRjOGJcdTIwMGRcdWQ4M2RcdWRjNjh8XHVkODNkXHVkYzY4XHUyMDBkXHVkODNkXHVkYzY4XHUyMDBkXHVkODNkXHVkYzY2XHUyMDBkXHVkODNkXHVkYzY2fFx1ZDgzZFx1ZGM2OFx1MjAwZFx1ZDgzZFx1ZGM2OFx1MjAwZFx1ZDgzZFx1ZGM2N1x1MjAwZFx1ZDgzZFtcdWRjNjZcdWRjNjddfFx1ZDgzZFx1ZGM2OFx1MjAwZFx1ZDgzZFx1ZGM2OVx1MjAwZFx1ZDgzZFx1ZGM2Nlx1MjAwZFx1ZDgzZFx1ZGM2NnxcdWQ4M2RcdWRjNjhcdTIwMGRcdWQ4M2RcdWRjNjlcdTIwMGRcdWQ4M2RcdWRjNjdcdTIwMGRcdWQ4M2RbXHVkYzY2XHVkYzY3XXxcdWQ4M2RcdWRjNjlcdTIwMGRcdTI3NjRcdWZlMGZcdTIwMGRcdWQ4M2RcdWRjOGJcdTIwMGRcdWQ4M2RbXHVkYzY4XHVkYzY5XXxcdWQ4M2RcdWRjNjlcdTIwMGRcdWQ4M2RcdWRjNjlcdTIwMGRcdWQ4M2RcdWRjNjZcdTIwMGRcdWQ4M2RcdWRjNjZ8XHVkODNkXHVkYzY5XHUyMDBkXHVkODNkXHVkYzY5XHUyMDBkXHVkODNkXHVkYzY3XHUyMDBkXHVkODNkW1x1ZGM2Nlx1ZGM2N118XHVkODNkXHVkYzY4XHUyMDBkXHUyNzY0XHVmZTBmXHUyMDBkXHVkODNkXHVkYzY4fFx1ZDgzZFx1ZGM2OFx1MjAwZFx1ZDgzZFx1ZGM2Nlx1MjAwZFx1ZDgzZFx1ZGM2NnxcdWQ4M2RcdWRjNjhcdTIwMGRcdWQ4M2RcdWRjNjdcdTIwMGRcdWQ4M2RbXHVkYzY2XHVkYzY3XXxcdWQ4M2RcdWRjNjhcdTIwMGRcdWQ4M2RcdWRjNjhcdTIwMGRcdWQ4M2RbXHVkYzY2XHVkYzY3XXxcdWQ4M2RcdWRjNjhcdTIwMGRcdWQ4M2RcdWRjNjlcdTIwMGRcdWQ4M2RbXHVkYzY2XHVkYzY3XXxcdWQ4M2RcdWRjNjlcdTIwMGRcdTI3NjRcdWZlMGZcdTIwMGRcdWQ4M2RbXHVkYzY4XHVkYzY5XXxcdWQ4M2RcdWRjNjlcdTIwMGRcdWQ4M2RcdWRjNjZcdTIwMGRcdWQ4M2RcdWRjNjZ8XHVkODNkXHVkYzY5XHUyMDBkXHVkODNkXHVkYzY3XHUyMDBkXHVkODNkW1x1ZGM2Nlx1ZGM2N118XHVkODNkXHVkYzY5XHUyMDBkXHVkODNkXHVkYzY5XHUyMDBkXHVkODNkW1x1ZGM2Nlx1ZGM2N118XHVkODNjXHVkZmYzXHVmZTBmXHUyMDBkXHUyNmE3XHVmZTBmfFx1ZDgzY1x1ZGZmM1x1ZmUwZlx1MjAwZFx1ZDgzY1x1ZGYwOHxcdWQ4M2NcdWRmZjRcdTIwMGRcdTI2MjBcdWZlMGZ8XHVkODNkXHVkYzE1XHUyMDBkXHVkODNlXHVkZGJhfFx1ZDgzZFx1ZGMzYlx1MjAwZFx1Mjc0NFx1ZmUwZnxcdWQ4M2RcdWRjNDFcdTIwMGRcdWQ4M2RcdWRkZTh8XHVkODNkXHVkYzY4XHUyMDBkXHVkODNkW1x1ZGM2Nlx1ZGM2N118XHVkODNkXHVkYzY5XHUyMDBkXHVkODNkW1x1ZGM2Nlx1ZGM2N118XHVkODNkXHVkYzZmXHUyMDBkXHUyNjQwXHVmZTBmfFx1ZDgzZFx1ZGM2Zlx1MjAwZFx1MjY0Mlx1ZmUwZnxcdWQ4M2VcdWRkM2NcdTIwMGRcdTI2NDBcdWZlMGZ8XHVkODNlXHVkZDNjXHUyMDBkXHUyNjQyXHVmZTBmfFx1ZDgzZVx1ZGRkZVx1MjAwZFx1MjY0MFx1ZmUwZnxcdWQ4M2VcdWRkZGVcdTIwMGRcdTI2NDJcdWZlMGZ8XHVkODNlXHVkZGRmXHUyMDBkXHUyNjQwXHVmZTBmfFx1ZDgzZVx1ZGRkZlx1MjAwZFx1MjY0Mlx1ZmUwZnxcdWQ4M2RcdWRjMDhcdTIwMGRcdTJiMWIpfFsjKjAtOV1cdWZlMGY/XHUyMGUzfCg/OlvCqcKuXHUyMTIyXHUyNjVmXVx1ZmUwZil8KD86XHVkODNjW1x1ZGMwNFx1ZGQ3MFx1ZGQ3MVx1ZGQ3ZVx1ZGQ3Zlx1ZGUwMlx1ZGUxYVx1ZGUyZlx1ZGUzN1x1ZGYyMVx1ZGYyNC1cdWRmMmNcdWRmMzZcdWRmN2RcdWRmOTZcdWRmOTdcdWRmOTktXHVkZjliXHVkZjllXHVkZjlmXHVkZmNkXHVkZmNlXHVkZmQ0LVx1ZGZkZlx1ZGZmM1x1ZGZmNVx1ZGZmN118XHVkODNkW1x1ZGMzZlx1ZGM0MVx1ZGNmZFx1ZGQ0OVx1ZGQ0YVx1ZGQ2Zlx1ZGQ3MFx1ZGQ3M1x1ZGQ3Ni1cdWRkNzlcdWRkODdcdWRkOGEtXHVkZDhkXHVkZGE1XHVkZGE4XHVkZGIxXHVkZGIyXHVkZGJjXHVkZGMyLVx1ZGRjNFx1ZGRkMS1cdWRkZDNcdWRkZGMtXHVkZGRlXHVkZGUxXHVkZGUzXHVkZGU4XHVkZGVmXHVkZGYzXHVkZGZhXHVkZWNiXHVkZWNkLVx1ZGVjZlx1ZGVlMC1cdWRlZTVcdWRlZTlcdWRlZjBcdWRlZjNdfFtcdTIwM2NcdTIwNDlcdTIxMzlcdTIxOTQtXHUyMTk5XHUyMWE5XHUyMWFhXHUyMzFhXHUyMzFiXHUyMzI4XHUyM2NmXHUyM2VkLVx1MjNlZlx1MjNmMVx1MjNmMlx1MjNmOC1cdTIzZmFcdTI0YzJcdTI1YWFcdTI1YWJcdTI1YjZcdTI1YzBcdTI1ZmItXHUyNWZlXHUyNjAwLVx1MjYwNFx1MjYwZVx1MjYxMVx1MjYxNFx1MjYxNVx1MjYxOFx1MjYyMFx1MjYyMlx1MjYyM1x1MjYyNlx1MjYyYVx1MjYyZVx1MjYyZlx1MjYzOC1cdTI2M2FcdTI2NDBcdTI2NDJcdTI2NDgtXHUyNjUzXHUyNjYwXHUyNjYzXHUyNjY1XHUyNjY2XHUyNjY4XHUyNjdiXHUyNjdmXHUyNjkyLVx1MjY5N1x1MjY5OVx1MjY5Ylx1MjY5Y1x1MjZhMFx1MjZhMVx1MjZhN1x1MjZhYVx1MjZhYlx1MjZiMFx1MjZiMVx1MjZiZFx1MjZiZVx1MjZjNFx1MjZjNVx1MjZjOFx1MjZjZlx1MjZkMVx1MjZkM1x1MjZkNFx1MjZlOVx1MjZlYVx1MjZmMC1cdTI2ZjVcdTI2ZjhcdTI2ZmFcdTI2ZmRcdTI3MDJcdTI3MDhcdTI3MDlcdTI3MGZcdTI3MTJcdTI3MTRcdTI3MTZcdTI3MWRcdTI3MjFcdTI3MzNcdTI3MzRcdTI3NDRcdTI3NDdcdTI3NTdcdTI3NjNcdTI3NjRcdTI3YTFcdTI5MzRcdTI5MzVcdTJiMDUtXHUyYjA3XHUyYjFiXHUyYjFjXHUyYjUwXHUyYjU1XHUzMDMwXHUzMDNkXHUzMjk3XHUzMjk5XSkoPzpcdWZlMGZ8KD8hXHVmZTBlKSl8KD86KD86XHVkODNjW1x1ZGZjYlx1ZGZjY118XHVkODNkW1x1ZGQ3NFx1ZGQ3NVx1ZGQ5MF18W1x1MjYxZFx1MjZmN1x1MjZmOVx1MjcwY1x1MjcwZF0pKD86XHVmZTBmfCg/IVx1ZmUwZSkpfCg/Olx1ZDgzY1tcdWRmODVcdWRmYzItXHVkZmM0XHVkZmM3XHVkZmNhXXxcdWQ4M2RbXHVkYzQyXHVkYzQzXHVkYzQ2LVx1ZGM1MFx1ZGM2Ni1cdWRjNjlcdWRjNmVcdWRjNzAtXHVkYzc4XHVkYzdjXHVkYzgxLVx1ZGM4M1x1ZGM4NS1cdWRjODdcdWRjYWFcdWRkN2FcdWRkOTVcdWRkOTZcdWRlNDUtXHVkZTQ3XHVkZTRiLVx1ZGU0Zlx1ZGVhM1x1ZGViNC1cdWRlYjZcdWRlYzBcdWRlY2NdfFx1ZDgzZVtcdWRkMGNcdWRkMGZcdWRkMTgtXHVkZDFjXHVkZDFlXHVkZDFmXHVkZDI2XHVkZDMwLVx1ZGQzOVx1ZGQzZFx1ZGQzZVx1ZGQ3N1x1ZGRiNVx1ZGRiNlx1ZGRiOFx1ZGRiOVx1ZGRiYlx1ZGRjZC1cdWRkY2ZcdWRkZDEtXHVkZGRkXXxbXHUyNzBhXHUyNzBiXSkpKD86XHVkODNjW1x1ZGZmYi1cdWRmZmZdKT98KD86XHVkODNjXHVkZmY0XHVkYjQwXHVkYzY3XHVkYjQwXHVkYzYyXHVkYjQwXHVkYzY1XHVkYjQwXHVkYzZlXHVkYjQwXHVkYzY3XHVkYjQwXHVkYzdmfFx1ZDgzY1x1ZGZmNFx1ZGI0MFx1ZGM2N1x1ZGI0MFx1ZGM2Mlx1ZGI0MFx1ZGM3M1x1ZGI0MFx1ZGM2M1x1ZGI0MFx1ZGM3NFx1ZGI0MFx1ZGM3ZnxcdWQ4M2NcdWRmZjRcdWRiNDBcdWRjNjdcdWRiNDBcdWRjNjJcdWRiNDBcdWRjNzdcdWRiNDBcdWRjNmNcdWRiNDBcdWRjNzNcdWRiNDBcdWRjN2Z8XHVkODNjXHVkZGU2XHVkODNjW1x1ZGRlOC1cdWRkZWNcdWRkZWVcdWRkZjFcdWRkZjJcdWRkZjRcdWRkZjYtXHVkZGZhXHVkZGZjXHVkZGZkXHVkZGZmXXxcdWQ4M2NcdWRkZTdcdWQ4M2NbXHVkZGU2XHVkZGU3XHVkZGU5LVx1ZGRlZlx1ZGRmMS1cdWRkZjRcdWRkZjYtXHVkZGY5XHVkZGZiXHVkZGZjXHVkZGZlXHVkZGZmXXxcdWQ4M2NcdWRkZThcdWQ4M2NbXHVkZGU2XHVkZGU4XHVkZGU5XHVkZGViLVx1ZGRlZVx1ZGRmMC1cdWRkZjVcdWRkZjdcdWRkZmEtXHVkZGZmXXxcdWQ4M2NcdWRkZTlcdWQ4M2NbXHVkZGVhXHVkZGVjXHVkZGVmXHVkZGYwXHVkZGYyXHVkZGY0XHVkZGZmXXxcdWQ4M2NcdWRkZWFcdWQ4M2NbXHVkZGU2XHVkZGU4XHVkZGVhXHVkZGVjXHVkZGVkXHVkZGY3LVx1ZGRmYV18XHVkODNjXHVkZGViXHVkODNjW1x1ZGRlZS1cdWRkZjBcdWRkZjJcdWRkZjRcdWRkZjddfFx1ZDgzY1x1ZGRlY1x1ZDgzY1tcdWRkZTZcdWRkZTdcdWRkZTktXHVkZGVlXHVkZGYxLVx1ZGRmM1x1ZGRmNS1cdWRkZmFcdWRkZmNcdWRkZmVdfFx1ZDgzY1x1ZGRlZFx1ZDgzY1tcdWRkZjBcdWRkZjJcdWRkZjNcdWRkZjdcdWRkZjlcdWRkZmFdfFx1ZDgzY1x1ZGRlZVx1ZDgzY1tcdWRkZTgtXHVkZGVhXHVkZGYxLVx1ZGRmNFx1ZGRmNi1cdWRkZjldfFx1ZDgzY1x1ZGRlZlx1ZDgzY1tcdWRkZWFcdWRkZjJcdWRkZjRcdWRkZjVdfFx1ZDgzY1x1ZGRmMFx1ZDgzY1tcdWRkZWFcdWRkZWMtXHVkZGVlXHVkZGYyXHVkZGYzXHVkZGY1XHVkZGY3XHVkZGZjXHVkZGZlXHVkZGZmXXxcdWQ4M2NcdWRkZjFcdWQ4M2NbXHVkZGU2LVx1ZGRlOFx1ZGRlZVx1ZGRmMFx1ZGRmNy1cdWRkZmJcdWRkZmVdfFx1ZDgzY1x1ZGRmMlx1ZDgzY1tcdWRkZTZcdWRkZTgtXHVkZGVkXHVkZGYwLVx1ZGRmZl18XHVkODNjXHVkZGYzXHVkODNjW1x1ZGRlNlx1ZGRlOFx1ZGRlYS1cdWRkZWNcdWRkZWVcdWRkZjFcdWRkZjRcdWRkZjVcdWRkZjdcdWRkZmFcdWRkZmZdfFx1ZDgzY1x1ZGRmNFx1ZDgzY1x1ZGRmMnxcdWQ4M2NcdWRkZjVcdWQ4M2NbXHVkZGU2XHVkZGVhLVx1ZGRlZFx1ZGRmMC1cdWRkZjNcdWRkZjctXHVkZGY5XHVkZGZjXHVkZGZlXXxcdWQ4M2NcdWRkZjZcdWQ4M2NcdWRkZTZ8XHVkODNjXHVkZGY3XHVkODNjW1x1ZGRlYVx1ZGRmNFx1ZGRmOFx1ZGRmYVx1ZGRmY118XHVkODNjXHVkZGY4XHVkODNjW1x1ZGRlNi1cdWRkZWFcdWRkZWMtXHVkZGY0XHVkZGY3LVx1ZGRmOVx1ZGRmYlx1ZGRmZC1cdWRkZmZdfFx1ZDgzY1x1ZGRmOVx1ZDgzY1tcdWRkZTZcdWRkZThcdWRkZTlcdWRkZWItXHVkZGVkXHVkZGVmLVx1ZGRmNFx1ZGRmN1x1ZGRmOVx1ZGRmYlx1ZGRmY1x1ZGRmZl18XHVkODNjXHVkZGZhXHVkODNjW1x1ZGRlNlx1ZGRlY1x1ZGRmMlx1ZGRmM1x1ZGRmOFx1ZGRmZVx1ZGRmZl18XHVkODNjXHVkZGZiXHVkODNjW1x1ZGRlNlx1ZGRlOFx1ZGRlYVx1ZGRlY1x1ZGRlZVx1ZGRmM1x1ZGRmYV18XHVkODNjXHVkZGZjXHVkODNjW1x1ZGRlYlx1ZGRmOF18XHVkODNjXHVkZGZkXHVkODNjXHVkZGYwfFx1ZDgzY1x1ZGRmZVx1ZDgzY1tcdWRkZWFcdWRkZjldfFx1ZDgzY1x1ZGRmZlx1ZDgzY1tcdWRkZTZcdWRkZjJcdWRkZmNdfFx1ZDgzY1tcdWRjY2ZcdWRkOGVcdWRkOTEtXHVkZDlhXHVkZGU2LVx1ZGRmZlx1ZGUwMVx1ZGUzMi1cdWRlMzZcdWRlMzgtXHVkZTNhXHVkZTUwXHVkZTUxXHVkZjAwLVx1ZGYyMFx1ZGYyZC1cdWRmMzVcdWRmMzctXHVkZjdjXHVkZjdlLVx1ZGY4NFx1ZGY4Ni1cdWRmOTNcdWRmYTAtXHVkZmMxXHVkZmM1XHVkZmM2XHVkZmM4XHVkZmM5XHVkZmNmLVx1ZGZkM1x1ZGZlMC1cdWRmZjBcdWRmZjRcdWRmZjgtXHVkZmZmXXxcdWQ4M2RbXHVkYzAwLVx1ZGMzZVx1ZGM0MFx1ZGM0NFx1ZGM0NVx1ZGM1MS1cdWRjNjVcdWRjNmFcdWRjNmZcdWRjNzktXHVkYzdiXHVkYzdkLVx1ZGM4MFx1ZGM4NFx1ZGM4OC1cdWRjYTlcdWRjYWItXHVkY2ZjXHVkY2ZmLVx1ZGQzZFx1ZGQ0Yi1cdWRkNGVcdWRkNTAtXHVkZDY3XHVkZGE0XHVkZGZiLVx1ZGU0NFx1ZGU0OC1cdWRlNGFcdWRlODAtXHVkZWEyXHVkZWE0LVx1ZGViM1x1ZGViNy1cdWRlYmZcdWRlYzEtXHVkZWM1XHVkZWQwLVx1ZGVkMlx1ZGVkNS1cdWRlZDdcdWRlZWJcdWRlZWNcdWRlZjQtXHVkZWZjXHVkZmUwLVx1ZGZlYl18XHVkODNlW1x1ZGQwZFx1ZGQwZVx1ZGQxMC1cdWRkMTdcdWRkMWRcdWRkMjAtXHVkZDI1XHVkZDI3LVx1ZGQyZlx1ZGQzYVx1ZGQzY1x1ZGQzZi1cdWRkNDVcdWRkNDctXHVkZDc2XHVkZDc4XHVkZDdhLVx1ZGRiNFx1ZGRiN1x1ZGRiYVx1ZGRiYy1cdWRkY2JcdWRkZDBcdWRkZGUtXHVkZGZmXHVkZTcwLVx1ZGU3NFx1ZGU3OC1cdWRlN2FcdWRlODAtXHVkZTg2XHVkZTkwLVx1ZGVhOFx1ZGViMC1cdWRlYjZcdWRlYzAtXHVkZWMyXHVkZWQwLVx1ZGVkNl18W1x1MjNlOS1cdTIzZWNcdTIzZjBcdTIzZjNcdTI2N2VcdTI2Y2VcdTI3MDVcdTI3MjhcdTI3NGNcdTI3NGVcdTI3NTMtXHUyNzU1XHUyNzk1LVx1Mjc5N1x1MjdiMFx1MjdiZlx1ZTUwYV0pfFx1ZmUwZi9nLGE9L1x1RkUwRi9nLGk9U3RyaW5nLmZyb21DaGFyQ29kZSg4MjA1KSxvPS9bJjw+JyJdL2cscz0vXig/OmlmcmFtZXxub2ZyYW1lc3xub3NjcmlwdHxzY3JpcHR8c2VsZWN0fHN0eWxlfHRleHRhcmVhKSQvLGw9U3RyaW5nLmZyb21DaGFyQ29kZQo7cmV0dXJuIGU7ZnVuY3Rpb24gcihlLHQpe3JldHVybiBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSh0P2UucmVwbGFjZShhLCIiKTplKX1mdW5jdGlvbiBkKGUsdCl7cmV0dXJuIiIuY29uY2F0KHQuYmFzZSx0LnNpemUsIi8iLGUsdC5leHQpfWZ1bmN0aW9uIHUoZSx0KXtmb3IodmFyIG4sYSxpPWUuY2hpbGROb2RlcyxvPWkubGVuZ3RoO28tLTspMz09PShhPShuPWlbb10pLm5vZGVUeXBlKT90LnB1c2gobik6MSE9PWF8fCJvd25lclNWR0VsZW1lbnQiaW4gbnx8cy50ZXN0KG4ubm9kZU5hbWUudG9Mb3dlckNhc2UoKSl8fHUobix0KTtyZXR1cm4gdH1mdW5jdGlvbiBjKGUpe3JldHVybiBnKGUuaW5kZXhPZihpKTwwP2UucmVwbGFjZShhLCIiKTplKX1mdW5jdGlvbiBoKGUsdCl7Zm9yKHZhciBhLGksbyxzLGwsZCxoLHYsbSxwLGYsZyxiLHc9dShlLFtdKSxDPXcubGVuZ3RoO0MtLTspe2ZvcihvPSExLHM9ZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpLGQ9KGw9d1tDXSkubm9kZVZhbHVlLHY9MDtoPW4uZXhlYyhkKTspe2lmKChtPWguaW5kZXgpIT09diYmcy5hcHBlbmRDaGlsZChyKGQuc2xpY2UodixtKSwhMCkpLGc9YyhmPWhbMF0pLHY9bStmLmxlbmd0aCxiPXQuY2FsbGJhY2soZyx0KSxnJiZiKXtmb3IoaSBpbihwPW5ldyBJbWFnZSkub25lcnJvcj10Lm9uZXJyb3IscC5zZXRBdHRyaWJ1dGUoImRyYWdnYWJsZSIsImZhbHNlIiksYT10LmF0dHJpYnV0ZXMoZixnKSlhLmhhc093blByb3BlcnR5KGkpJiYwIT09aS5pbmRleE9mKCJvbiIpJiYhcC5oYXNBdHRyaWJ1dGUoaSkmJnAuc2V0QXR0cmlidXRlKGksYVtpXSk7cC5jbGFzc05hbWU9dC5jbGFzc05hbWUscC5hbHQ9ZixwLnNyYz1iLG89ITAscy5hcHBlbmRDaGlsZChwKX1wfHxzLmFwcGVuZENoaWxkKHIoZiwhMSkpLHA9bnVsbH1vJiYodjxkLmxlbmd0aCYmcy5hcHBlbmRDaGlsZChyKGQuc2xpY2UodiksITApKSxsLnBhcmVudE5vZGUucmVwbGFjZUNoaWxkKHMsbCkpfXJldHVybiBlfWZ1bmN0aW9uIHYoZSx0KXtyZXR1cm4gZihlLChmdW5jdGlvbihlKXt2YXIgbixhLGk9ZSxzPWMoZSksbD10LmNhbGxiYWNrKHMsdCk7aWYocyYmbCl7Zm9yKGEgaW4gaT0iPGltZyAiLmNvbmNhdCgnY2xhc3M9IicsdC5jbGFzc05hbWUsJyIgJywnZHJhZ2dhYmxlPSJmYWxzZSIgJywnYWx0PSInLGUsJyInLCcgc3JjPSInLGwsJyInKSxuPXQuYXR0cmlidXRlcyhlLHMpKW4uaGFzT3duUHJvcGVydHkoYSkmJjAhPT1hLmluZGV4T2YoIm9uIikmJi0xPT09aS5pbmRleE9mKCIgIithKyI9IikmJihpPWkuY29uY2F0KCIgIixhLCc9IicsblthXS5yZXBsYWNlKG8sbSksJyInKSk7aT1pLmNvbmNhdCgiLz4iKX1yZXR1cm4gaX0pKX1mdW5jdGlvbiBtKGUpe3JldHVybiB0W2VdfWZ1bmN0aW9uIHAoKXtyZXR1cm4gbnVsbH1mdW5jdGlvbiBmKGUsdCl7cmV0dXJuIFN0cmluZyhlKS5yZXBsYWNlKG4sdCl9ZnVuY3Rpb24gZyhlLHQpe2Zvcih2YXIgbj1bXSxhPTAsaT0wLG89MDtvPGUubGVuZ3RoOylhPWUuY2hhckNvZGVBdChvKyspLGk/KG4ucHVzaCgoNjU1MzYrKGktNTUyOTY8PDEwKSsoYS01NjMyMCkpLnRvU3RyaW5nKDE2KSksaT0wKTo1NTI5Njw9YSYmYTw9NTYzMTk/aT1hOm4ucHVzaChhLnRvU3RyaW5nKDE2KSk7cmV0dXJuIG4uam9pbih0fHwiLSIpfX0oKX0sODU2NzcwKGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse25hbm9pZDooKT0+YX0pO2xldCBhPShlPTIxKT0+Y3J5cHRvLmdldFJhbmRvbVZhbHVlcyhuZXcgVWludDhBcnJheShlKSkucmVkdWNlKCgoZSx0KT0+ZSs9KHQmPTYzKTwzNj90LnRvU3RyaW5nKDM2KTp0PDYyPyh0LTI2KS50b1N0cmluZygzNikudG9VcHBlckNhc2UoKTp0PjYyPyItIjoiXyIpLCIiKX19XSk7"}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/89558.981a34b19b41fad92b88.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:13.955Z","timestamp":1785148033955,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/89558.981a34b19b41fad92b88.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:13 GMT\r\ncontent-type: text/css; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding, Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\netag: W/\"69f98b76-c3\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Tue, 05 May 2026 06:17:26 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.51\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 05/05/2026 10:16:42\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 9c7c2e2dcb3407181bfa5848588f8e45\r\ncdn-cache: HIT\r\ncontent-encoding: br\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":195,"size_decoded":931,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with no line terminators","md5":"410a8b9d87cc2ecdb1762f6faf3cc95a","sha1":"6fa79aed8ba671c381c159a6cf58ecd4afaddd28","sha256":"6c42b7faa9d27cd5c4519b25964d772df0a712b26fad344745281fbae47e5f37","sha512":"b423d86dd53668cab2b9d0e14f3f341f1ecfaf51807bef6e904ae841cb69e6389178811eaeeac75cf57bf6a1c261318322a7886855a12a5c5fd11906a1ec09ff","ssdeep":"","tlshash":"78d012fa0423ae153a337e2b4a6d674246c5cad3c1065add8e203a7557cf99208d06d6","first_seen":"2024-11-30T11:35:58.666665Z","last_seen":"2026-07-27T12:48:39.788534Z","times_seen":1118,"resource_available":false,"data":"LmVtb2ppLUJzRVJHY1oxe2Rpc3BsYXk6YmxvY2t9LmNsZWFyQnV0dG9uLUJzRVJHY1oxe2FsaWduLWl0ZW1zOmNlbnRlcjtkaXNwbGF5OmZsZXg7aGVpZ2h0OjEwMCU7anVzdGlmeS1jb250ZW50OmNlbnRlcjt3aWR0aDoxMDAlfS5jbGVhckJ1dHRvbi1Cc0VSR2NaMSwuZW1vamktQnNFUkdjWjF7LXdlYmtpdC10b3VjaC1jYWxsb3V0Om5vbmV9"}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/42033.924dab781e4477f951bf.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.070Z","timestamp":1785148034070,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/42033.924dab781e4477f951bf.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\ncontent-type: text/css; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a4360b8-546\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Tue, 30 Jun 2026 06:22:48 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.57\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 06/30/2026 11:55:10\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: c81a0e61631000150b6971c226eb0b51\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":1350,"size_decoded":1336,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with very long lines (1350), with no line terminators","md5":"7c98cca7bd0ab83d00f5ad750cd683ff","sha1":"7a89c6639d621619d89ea005dbf2d00101a5da91","sha256":"4f175a5b3d47d9a959efb2afb182e6fdfe4188f1e5c50966f20d7a3c7f907de3","sha512":"c05bf66db7c0da939f8bdde39e4f9f9a3863dc04077d392f374562d984d5c23208f02a5141d9dd4b1b29dc9a4cbb3b12beeccb4507174a7ac4e5c8a215037f35","ssdeep":"","tlshash":"0621a268f28972ae9913e47f5b48a7ed1a55fc03d8025bd1f706912848ca7e711b1b8c","first_seen":"2026-06-30T21:57:43.291297Z","last_seen":"2026-07-27T12:48:39.802038Z","times_seen":222,"resource_available":false,"data":"W2RhdGEtdGhlbWU9bGlnaHRdey0tXzAtTFdkZDp2YXIoLS1jb2xvci1jb2xkLWdyYXktOTAwKTstLV8xLUxXZGQ6dmFyKC0tY29sb3ItY29sZC1ncmF5LTE1MCk7LS1fMi1MV2RkOnZhcigtLWNvbG9yLWNvbGQtZ3JheS0xMDApfVtkYXRhLXRoZW1lPWRhcmtdey0tXzAtTFdkZDp2YXIoLS1jb2xvci1jb2xkLWdyYXktMjAwKTstLV8xLUxXZGQ6dmFyKC0tY29sb3ItY29sZC1ncmF5LTcwMCk7LS1fMi1MV2RkOnZhcigtLWNvbG9yLWNvbGQtZ3JheS04MDApfS5pdGVtLVBCdHJ6WkNhe2FsbDp1bnNldDthbGlnbi1pdGVtczpjZW50ZXI7Y29sb3I6dmFyKC0tXzAtTFdkZCk7Y3Vyc29yOmRlZmF1bHQ7ZGlzcGxheTpmbGV4O2ZsZXg6MCAwIGF1dG87aGVpZ2h0OjEwMCU7cGFkZGluZzowIDNweDtwb3NpdGlvbjpyZWxhdGl2ZTt6LWluZGV4OjB9Lml0ZW0tUEJ0cnpaQ2E6YmVmb3Jle2JvcmRlci1yYWRpdXM6NTAlO2JvdHRvbTowO2NvbnRlbnQ6IiI7ZGlzcGxheTpibG9jaztoZWlnaHQ6MjhweDtpbnNldC1pbmxpbmUtZW5kOjA7aW5zZXQtaW5saW5lLXN0YXJ0OjA7bWFyZ2luOmF1dG87b3V0bGluZTp2YXIoLS1jb2xvci10di1ibHVlLTUwMCkgbm9uZSAycHg7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7d2lkdGg6MjhweDt6LWluZGV4Oi0xfS5pdGVtLVBCdHJ6WkNhOmFjdGl2ZTpiZWZvcmV7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1fMi1MV2RkKTtjb250ZW50OiIifUBtZWRpYSAoYW55LWhvdmVyOmhvdmVyKXsuaXRlbS1QQnRyelpDYTpob3ZlcjpiZWZvcmV7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1fMi1MV2RkKTtjb250ZW50OiIifX0uaXRlbS1QQnRyelpDYS5hY2Nlc3NpYmxlLVBCdHJ6WkNhOmZvY3VzLXZpc2libGU6YmVmb3Jle2NvbnRlbnQ6IiI7b3V0bGluZS1zdHlsZTpzb2xpZH0ucm91bmQtUEJ0cnpaQ2F7YWxpZ24taXRlbXM6Y2VudGVyO2JvcmRlcjoxcHggc29saWQ7Ym9yZGVyLWNvbG9yOnZhcigtLV8xLUxXZGQpO2JvcmRlci1yYWRpdXM6NTAlO2N1cnNvcjpkZWZhdWx0O2Rpc3BsYXk6ZmxleDtmbGV4OjAgMCBhdXRvO2ZvbnQtc2l6ZToxMHB4O2hlaWdodDoyMHB4O2p1c3RpZnktY29udGVudDpjZW50ZXI7dGV4dC1hbGlnbjpjZW50ZXI7d2lkdGg6MjBweDstLXR2LWxlYWRpbmctZW1vamktc2l6ZToxMnB4fS5hY3RpdmUtUEJ0cnpaQ2F7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1jb250YWluZXItZmlsbC1wcmltYXJ5LW5ldXRyYWwtZXh0cmEtYm9sZCk7Ym9yZGVyLWNvbG9yOnZhcigtLWNvbG9yLWNvbnRhaW5lci1maWxsLXByaW1hcnktbmV1dHJhbC1leHRyYS1ib2xkKTtjb2xvcjp2YXIoLS1jb2xvci1jb250ZW50LXByaW1hcnktaW52ZXJzZSl9"}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/en.21784.3a87670ef41edfdc885c.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.142Z","timestamp":1785148034142,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/en.21784.3a87670ef41edfdc885c.js HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a61b1a8-c48\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Thu, 23 Jul 2026 06:16:08 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/23/2026 10:17:29\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 2ba2a275d28f7ff45250caaf0c829093\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":3144,"size_decoded":1995,"mime_type":"application/javascript; charset=utf-8","magic":"ASCII text, with very long lines (3066)","md5":"68b75b26be0b7fe9cba6ceddf63188df","sha1":"447c852987cb0e880df0376f8a8e0e27c60cd3d3","sha256":"0b29ce96df5aa6f662415605317e6649052164faa030d408343458926bfcf91c","sha512":"aed77643d5947482c1d0f7df00997cb11568215d6b283085e572ffc9ec7a62cb10f40e21a1b6f166ac471743f8af4969cdbc41eff7c9365696e28d08f21572dd","ssdeep":"","tlshash":"c851fe27d181c5e92f31da01b389ecc1baf0b54514f7e0cb778aaf2ac15bc512928b75","first_seen":"2026-07-03T16:22:04.594265Z","last_seen":"2026-07-27T12:48:39.849081Z","times_seen":179,"resource_available":true,"data":"KHNlbGYud2VicGFja0NodW5rdHJhZGluZ3ZpZXc9c2VsZi53ZWJwYWNrQ2h1bmt0cmFkaW5ndmlld3x8W10pLnB1c2goW1syMTc4NCw0OTMwNyw4NjU5Myw5NjY3OF0sezc2Nzc3MShlKXtlLmV4cG9ydHM9WyJSZWFkIHN1bW1hcnkiXX0sMzI0NTEoZSl7ZS5leHBvcnRzPVsiQW1vdW50Il19LDQ5NzA5NihlKXtlLmV4cG9ydHM9WyJBY3RpdmUgYWxlcnRzIG9uIHRoaXMgZWFybmluZyJdfSw0NjQ2NjcoZSl7ZS5leHBvcnRzPVsiQWRqdXN0ZWQgYW1vdW50Il19LDI5OTU5MyhlKXtlLmV4cG9ydHM9WyJBZnRlciBtYXJrZXQgY2xvc2UiXX0sODQ0MDA5KGUpe2UuZXhwb3J0cz1bIkFsZXJ0cyJdfSw2NDI4MTcoZSl7ZS5leHBvcnRzPVsiQmVmb3JlIG1hcmtldCBvcGVuIl19LDg0Nzg1OChlKXtlLmV4cG9ydHM9WyJEYXRlIl19LDQ3MTEyNChlKXtlLmV4cG9ydHM9WyJEaXZpZGVuZHMiXX0sMzg1MTEyKGUpe2UuZXhwb3J0cz1bIkVhcm5pbmdzIl19LDY0MTg3NShlKXtlLmV4cG9ydHM9WyJFYXJuaW5ncyAmIFJldmVudWUiXX0sMzM2ODcxKGUpe2UuZXhwb3J0cz1bIkVzdGltYXRlIl19LDQ2Mjk5KGUpe2UuZXhwb3J0cz1bIkVzdGltYXRlZCBkYXRlIl19LDUxODE0MyhlKXtlLmV4cG9ydHM9WyJFeC1kaXZpZGVuZCBkYXRlIl19LDM4MTQ3OShlKXtlLmV4cG9ydHM9WyJNb3JlIHtzeW1ib2x9IGRpdmlkZW5kcyJdfSw3NTkxNTEoZSl7ZS5leHBvcnRzPVsiTW9yZSB7c3ltYm9sfSBlYXJuaW5ncyJdfSwyNDE3NyhlKXtlLmV4cG9ydHM9WyJNb3JlIHtzeW1ib2x9IGZpbmFuY2lhbHMiXX0sNDEwMzQ1KGUpe2UuZXhwb3J0cz1bIlNwbGl0Il19LDEzNjk1MihlKXtlLmV4cG9ydHM9WyJTdGFuZGFyZGl6ZWQiXX0sOTMwNTg2KGUpe2UuZXhwb3J0cz1bIlN1cnByaXNlIl19LDQ2NTkzNihlKXtlLmV4cG9ydHM9WyJQYXltZW50IGRhdGUiXX0sNzcyMTQ5KGUpe2UuZXhwb3J0cz1bIlBlcmlvZCBFbmRpbmciXX0sNjUxMjI0KGUpe2UuZXhwb3J0cz1bIlJldmVudWUiXX0sNzU2Nzg0KGUpe2UuZXhwb3J0cz1bIlJlcG9ydGVkIl19LDQyODcyMyhlKXtlLmV4cG9ydHM9WyJSb3RhdGlvbiBmYWN0b3IiXX0sMjY4ODkxKGUpe2UuZXhwb3J0cz1bIlRQTyBhYm92ZSBQT0MiXX0sMTEyNzQ4KGUpe2UuZXhwb3J0cz1bIlRQTyBiZWxvdyBQT0MiXX0sODU2MDI4KGUpe2UuZXhwb3J0cz1bIlRvdGFsIFRQTyJdfSw3MjkyMDMoZSl7ZS5leHBvcnRzPVsiVG90YWwgdm9sdW1lIl19LDUwNTAxMChlKXtlLmV4cG9ydHM9WyJWQSByYW5nZSJdfSwyNzYxMzcoZSl7ZS5leHBvcnRzPVsiSUIgaGlnaCJdfSwxNDgzMzUoZSl7ZS5leHBvcnRzPVsiSUIgbG93Il19LDUxNDc2MihlKXtlLmV4cG9ydHM9WyJJQiByYW5nZSJdfSw5NDk2MTcoZSl7ZS5leHBvcnRzPVsiUE9DIl19LDg2OTI4MyhlKXtlLmV4cG9ydHM9WyJWQUgiXX0sOTI4NjY1KGUpe2UuZXhwb3J0cz1bIlZBTCJdfSw5MzE0ODgoZSl7ZS5leHBvcnRzPVsiSEwgcmFuZ2UiXX0sNTczMjI0KGUpe2UuZXhwb3J0cz1bIkJ1eSB2b2x1bWUiXX0sNTMwOTMxKGUpe2UuZXhwb3J0cz1bIkJ1eSB2b2x1bWUsICUiXX0sMTM5ODcwKGUpe2UuZXhwb3J0cz1bIkRlbHRhIl19LDIxOTMwNihlKXtlLmV4cG9ydHM9WyJEZWx0YSwgJSJdfSw2Njk3NTMoZSl7ZS5leHBvcnRzPVsiT3BlbiBpbnRlcmVzdCJdfSw2MDA0NTMoZSl7ZS5leHBvcnRzPVsiT3BlbiBpbnRlcmVzdCBoaWdoIl19LDQ1NjU0MihlKXtlLmV4cG9ydHM9WyJPcGVuIGludGVyZXN0IGxvdyJdfSwyNDk0MShlKXtlLmV4cG9ydHM9WyJNYXggZGVsdGEiXX0sODExMDgyKGUpe2UuZXhwb3J0cz1bIk1pbiBkZWx0YSJdfSw3NDc3NzYoZSl7ZS5leHBvcnRzPVsiU2VsbCB2b2x1bWUiXX0sNzk0MzgwKGUpe2UuZXhwb3J0cz1bIlNlbGwgdm9sdW1lLCAlIl19LDcyNDY2MShlKXtlLmV4cG9ydHM9WyJWb2x1bWUiXX0sOTE1NjQ1KGUpe2UuZXhwb3J0cz1bIlZvbHVtZSBjaGFuZ2UsICUiXX0sMzQ3ODQ5KGUpe2UuZXhwb3J0cz1bIlBPQyJdfSw5NzMzOTUoZSl7ZS5leHBvcnRzPVsiU2Vzc2lvbiBDVkQiXX0sODE1MjQwKGUpe2UuZXhwb3J0cz1bIkhMIHJhbmdlIl19LDg3MDA5KGUpe2UuZXhwb3J0cz1bIlN1bW1hcnkgaW5mbyJdfSw5MjkwNjYoZSl7ZS5leHBvcnRzPVsiSW52YWxpZCBzeW1ib2wiXX0sMjE5MTA0KGUpe2UuZXhwb3J0cz1bIkNvbnRyYWN0IHN3aXRjaCJdfSw3OTQ0MDgoZSl7ZS5leHBvcnRzPVsiQ2lyY2xlIl19LDg2OTg2NyhlKXtlLmV4cG9ydHM9WyJDbGljayB0byBsZWFybiBtb3JlIl19LDQ4ODE4MChlKXtlLmV4cG9ydHM9WyJDcm9zcyJdfSwzNDQ0ODIoZSl7ZS5leHBvcnRzPVsiQWRkIGFsZXJ0IG9uIGVhcm5pbmdzIG9yIHJldmVudWUiXX0sNzA0NDU4KGUpe2UuZXhwb3J0cz1bIkFycm93IERvd24iXX0sNjIwNjEoZSl7ZS5leHBvcnRzPVsiQXJyb3cgVXAiXX0sMjgxMjQ4KGUpe2UuZXhwb3J0cz1bIkRpYW1vbmQiXX0sOTcxNTI3KGUpe2UuZXhwb3J0cz1bIkZsYWciXX0sNjE2NDk0KGUpe2UuZXhwb3J0cz1bIkZyb20gY29udHJhY3QiXX0sMTU1ODUoZSl7ZS5leHBvcnRzPVsiRnVuZGFtZW50YWwgc3R1ZGllcyBhcmUgbm8gbG9uZ2VyIGF2YWlsYWJsZSBvbiBjaGFydHMiXX0sMjYyNDU4KGUpe2UuZXhwb3J0cz1bIkxhYmVsIERvd24iXX0sNDY0MTU3KGUpe2UuZXhwb3J0cz1bIkxhYmVsIFVwIl19LDkxNjIxNShlKXtlLmV4cG9ydHM9WyJTcXVhcmUiXX0sODcwNDA5KGUpe2UuZXhwb3J0cz1bIlRQTyBtZXJnZSBibG9jayJdfSw2MTk2MDkoZSl7ZS5leHBvcnRzPVsiVFBPIHNwbGl0IGJsb2NrIl19LDM4Mzc1MShlKXtlLmV4cG9ydHM9WyJUbyBjb250cmFjdCJdfSw4NDI2MzUoZSl7ZS5leHBvcnRzPVsiVGhpcyBmdW5kYW1lbnRhbCBtZXRyaWMgaXNuJ3QgYXZhaWxhYmxlIGZvciB0aGlzIHN5bWJvbC4iXX0sNDcxNzQ1KGUpe2UuZXhwb3J0cz1bIlRyaWFuZ2xlIERvd24iXX0sMzk5Njg4KGUpe2UuZXhwb3J0cz1bIlRyaWFuZ2xlIFVwIl19LDgxMDIyMihlKXtlLmV4cG9ydHM9WyJYIENyb3NzIl19LDM3MTI5NyhlKXtlLmV4cG9ydHM9WyJzdHVkeSBwYWNrYWdlIGlzIG5vdCBhdmFpbGFibGUiXX0sCjUxODcxOShlKXtlLmV4cG9ydHM9WyJhbmQge2NvdW50fSBtb3JlIGFsZXJ0IiwiYW5kIHtjb3VudH0gbW9yZSBhbGVydHMiXX19XSk7"}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/50035.0227c09e8de3b4008395.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.541Z","timestamp":1785148034541,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/50035.0227c09e8de3b4008395.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\ncontent-type: text/css; charset=utf-8\r\ncontent-length: 49\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\netag: \"69f98b74-31\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Tue, 05 May 2026 06:17:24 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.51\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 05/05/2026 10:16:43\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 592452ffaa2f4e5073fedbe24746adb1\r\ncdn-cache: HIT\r\naccept-ranges: bytes\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":49,"size_decoded":833,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with no line terminators","md5":"5cad8e0ddf70f7e7bd2c5b0f9c11a8dc","sha1":"41032fed0aadcd1947a6be4c67bc42a37e88ea05","sha256":"efe71be95be3672f79552c1e97a78c4802144f663cb11a4fb939cc4b57a915a6","sha512":"5968fa2e4c5b778001f70228a5b7b788dfc48409558346537e64029b2edc62addaee814c459f386b46af8bbd65e16e02a11c7cb494894b9d37f88c9dab66ee85","ssdeep":"","tlshash":"809002bd998840646c518619915249c8c583851049901b89e15530685a71c00441129a","first_seen":"2023-04-17T07:26:31Z","last_seen":"2026-07-27T12:48:39.648614Z","times_seen":983,"resource_available":false,"data":"Lmljb24tT0pwa19DQVF7Ym9yZGVyLXJhZGl1czo1MCU7b3ZlcmZsb3c6aGlkZGVufQ=="}},"time_used":3,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":3,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/87673.afd101bd973de435fe4a.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.548Z","timestamp":1785148034548,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/87673.afd101bd973de435fe4a.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\ncontent-type: text/css; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a58aaad-2ee9\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Thu, 16 Jul 2026 09:55:57 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/16/2026 11:03:22\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 90ec9f1382afb2d96cc795d982e91bac\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":12009,"size_decoded":3657,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with very long lines (12009), with no line terminators","md5":"4bf3abdfbef4bb3ad462d0268797a958","sha1":"91ea7eff13ce3fe123701cfec9439574fc6c83a2","sha256":"91e0aa4d19b28419c8d285059240e0284fb153072c6b5c2fdd99b1b6a8928983","sha512":"c6986e30de2f4f72f15db0a53a0d5253d4791fd5be57e56b39b3b1d7dcabd26da545d15820dced8597a502af0909ee4e15fc981465fb3e22d3e0736242f73d82","ssdeep":"192:he1cejV/ri1iHefj8RzOQmLHL28QJHRhhzY/ssLggREF08C69qJA4:glgyArEHJNsLo9t4","tlshash":"3a42a784a3401379f8976b69d3ba838c5824ee9598174ffff712ea2441c23f750b6d49","first_seen":"2026-07-19T21:33:34.120052Z","last_seen":"2026-07-27T12:48:39.791949Z","times_seen":56,"resource_available":false,"data":"LmZpcnN0Um93SGVhZC1sQ2t1U3RUayB0aHtmb250LWZhbWlseTotYXBwbGUtc3lzdGVtLEJsaW5rTWFjU3lzdGVtRm9udCxUcmVidWNoZXQgTVMsUm9ib3RvLFVidW50dSxzYW5zLXNlcmlmO2ZvbnQtZmVhdHVyZS1zZXR0aW5nczoidG51bSIgb24sImxudW0iIG9uO2ZvbnQtc3R5bGU6bm9ybWFsOy0tdWktbGliLXR5cG9ncmFwaHktZm9udC1zaXplOjE0cHg7Zm9udC1zaXplOnZhcigtLXVpLWxpYi10eXBvZ3JhcGh5LWZvbnQtc2l6ZSk7Zm9udC13ZWlnaHQ6NjAwOy0tdWktbGliLXR5cG9ncmFwaHktbGluZS1oZWlnaHQ6MThweDtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLW9wdGlvbnMtY2hhaW4tYmctY29sb3IsdmFyKC0tY29sb3ItYm9keS1iZykpO2JveC1zaGFkb3c6aW5zZXQgMCAtMXB4IDAgdmFyKC0tY29sb3ItYm9yZGVyKTtoZWlnaHQ6dmFyKC0tb3B0aW9ucy10YWJsZS1yb3ctaGVpZ2h0KTtsaW5lLWhlaWdodDp2YXIoLS11aS1saWItdHlwb2dyYXBoeS1saW5lLWhlaWdodCk7cGFkZGluZzowIHZhcigtLW9wdGlvbnMtdGFibGUtY2VsbC1ob3J6LXBhZGRpbmcpO3RleHQtYWxpZ246Y2VudGVyO3RvcDowfS5maXJzdFJvd1RleHQtbENrdVN0VGt7aW5zZXQtaW5saW5lLWVuZDp2YXIoLS1vcHRpb25zLXRhYmxlLWhvcml6b250YWwtcGFkZGluZyk7aW5zZXQtaW5saW5lLXN0YXJ0OnZhcigtLW9wdGlvbnMtdGFibGUtaG9yaXpvbnRhbC1wYWRkaW5nKTtwb3NpdGlvbjpzdGlja3l9LnNlY29uZFJvd0hlYWQtbENrdVN0VGsgdGh7Y29sb3I6dmFyKC0tY29sb3ItdGV4dC1zZWNvbmRhcnkpO3RvcDp2YXIoLS1vcHRpb25zLXRhYmxlLXJvdy1oZWlnaHQpfS5maXJzdFJvd0hlYWQtbENrdVN0VGsgdGgsLnNlY29uZFJvd0hlYWQtbENrdVN0VGsgdGh7cG9zaXRpb246c3RpY2t5O3otaW5kZXg6Mn0udGgtbENrdVN0VGt7Zm9udC1mYW1pbHk6LWFwcGxlLXN5c3RlbSxCbGlua01hY1N5c3RlbUZvbnQsVHJlYnVjaGV0IE1TLFJvYm90byxVYnVudHUsc2Fucy1zZXJpZjtmb250LWZlYXR1cmUtc2V0dGluZ3M6InRudW0iIG9uLCJsbnVtIiBvbjtmb250LXN0eWxlOm5vcm1hbDstLXVpLWxpYi10eXBvZ3JhcGh5LWZvbnQtc2l6ZToxNHB4O2ZvbnQtc2l6ZTp2YXIoLS11aS1saWItdHlwb2dyYXBoeS1mb250LXNpemUpO2ZvbnQtd2VpZ2h0OjQwMDstLXVpLWxpYi10eXBvZ3JhcGh5LWxpbmUtaGVpZ2h0OjE4cHg7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1vcHRpb25zLWNoYWluLWJnLWNvbG9yLHZhcigtLWNvbG9yLWJvZHktYmcpKTtib3gtc2hhZG93Omluc2V0IDAgLTFweCAwIHZhcigtLWNvbG9yLWJvcmRlcik7Ym94LXNpemluZzpib3JkZXItYm94O2hlaWdodDp2YXIoLS1vcHRpb25zLXRhYmxlLXJvdy1oZWlnaHQpO2xpbmUtaGVpZ2h0OnZhcigtLXVpLWxpYi10eXBvZ3JhcGh5LWxpbmUtaGVpZ2h0KTttaW4td2lkdGg6Y2FsYyh2YXIoLS1jb2x1bW4td2lkdGgpICsgdmFyKC0tb3B0aW9ucy10YWJsZS1jZWxsLWhvcnotcGFkZGluZykqMik7cGFkZGluZzowIHZhcigtLW9wdGlvbnMtdGFibGUtY2VsbC1ob3J6LXBhZGRpbmcpO3doaXRlLXNwYWNlOm5vd3JhcH0udGgtbENrdVN0VGs6Zmlyc3QtY2hpbGR7cGFkZGluZy1pbmxpbmUtc3RhcnQ6dmFyKC0tb3B0aW9ucy10YWJsZS1ob3Jpem9udGFsLXBhZGRpbmcpfS50aC1sQ2t1U3RUazpsYXN0LWNoaWxke3BhZGRpbmctaW5saW5lLWVuZDp2YXIoLS1vcHRpb25zLXRhYmxlLWhvcml6b250YWwtcGFkZGluZyl9LmNlbnRyYWwtbENrdVN0VGt7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1vcHRpb24tY2hhaW4tY2VudHJhbC1jZWxsLWJnLWNvbG9yLHZhcigtLWNvbG9yLWJhY2tncm91bmQtcHJpbWFyeS1uZXV0cmFsLWV4dHJhLWxpZ2h0KSl9LmFsaWduTGVmdC1sQ2t1U3RUa3t0ZXh0LWFsaWduOnN0YXJ0fS5hbGlnbkNlbnRlci1sQ2t1U3RUa3t0ZXh0LWFsaWduOmNlbnRlcn0uYWxpZ25SaWdodC1sQ2t1U3RUa3t0ZXh0LWFsaWduOmVuZH0uY29udGFpbmVyLUVmSjlJSFZhey0tb3B0aW9ucy10YWJsZS1yb3ctaGVpZ2h0OjQxcHg7LS1vcHRpb25zLXRhYmxlLWNlbGwtaG9yei1wYWRkaW5nOjEycHg7LS1vcHRpb25zLXRhYmxlLWhvcml6b250YWwtcGFkZGluZzp2YXIoLS1vcHRpb25zLXRhYmxlLWNlbGwtaG9yei1wYWRkaW5nKTstLW9wdGlvbnMtdGFibGUtYm9keS1ib3R0b206OHB4O2hlaWdodDoxMDAlO2lzb2xhdGlvbjppc29sYXRlO3Bvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOjEwMCV9LndyYXBwZXItRWZKOUlIVmF7YmFja2dyb3VuZC1hdHRhY2htZW50OmxvY2FsO2JhY2tncm91bmQtaW1hZ2U6cmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudCgtNDVkZWcsdmFyKC0tY29sb3ItYm9yZGVyLXRhYmxlKSx2YXIoLS1jb2xvci1ib3JkZXItdGFibGUpIDFweCx2YXIoLS1vcHRpb25zLWNoYWluLWJnLWNvbG9yLHZhcigtLWNvbG9yLWJvZHktYmcpKSAxcHgsdmFyKC0tb3B0aW9ucy1jaGFpbi1iZy1jb2xvcix2YXIoLS1jb2xvci1ib2R5LWJnKSkgMTRweCl9LndyYXBwZXItRWZKOUlIVmE6ZGlyKHJ0bCl7YmFja2dyb3VuZC1pbWFnZTpyZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KDQ1ZGVnLHZhcigtLWNvbG9yLWJvcmRlci10YWJsZSksdmFyKC0tY29sb3ItYm9yZGVyLXRhYmxlKSAxcHgsdmFyKC0tb3B0aW9ucy1jaGFpbi1iZy1jb2xvcix2YXIoLS1jb2xvci1ib2R5LWJnKSkgMXB4LHZhcigtLW9wdGlvbnMtY2hhaW4tYmctY29sb3IsdmFyKC0tY29sb3ItYm9keS1iZykpIDE0cHgpfS50YWJsZS1FZko5SUhWYXttaW4td2lkdGg6MTAwJTtwb3NpdGlvbjpyZWxhdGl2ZX0uZm9vdGVyQ2VsbC1FZko5SUhWYXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLW9wdGlvbnMtY2hhaW4tYmctY29sb3IsdmFyKC0tY29sb3ItYm9keS1iZykpO2JvdHRvbTotMXB4O2hlaWdodDpjYWxjKHZhcigtLW9wdGlvbnMtdGFibGUtYm9keS1ib3R0b20pICsgMXB4KTtwb3NpdGlvbjpzdGlja3l9Lml0ZW0temd0VUJFNFd7ZGlzcGxheTppbmxpbmUtYmxvY2s7bWluLXdpZHRoOjM4cHh9Lml0ZW0temd0VUJFNFc6b25seS1jaGlsZHt3aWR0aDoxMDAlfS5pdGVtLXpndFVCRTRXKy5pdGVtLXpndFVCRTRXe21hcmdpbi1pbmxpbmUtc3RhcnQ6NHB4fS5pdGVtQ29udGVudC16Z3RVQkU0V3thbGlnbi1pdGVtczpjZW50ZXI7ZGlzcGxheTppbmxpbmUtZmxleH0uY291bnRlci16Z3RVQkU0V3ttYXJnaW4taW5saW5lLXN0YXJ0OjRweH0udHItSTdiWmhWZnl7Y29udGFpbi1pbnRyaW5zaWMtc2l6ZTphdXRvIHZhcigtLW9wdGlvbnMtdGFibGUtcm93LWhlaWdodCk7Y29udGVudC12aXNpYmlsaXR5OmF1dG99LnRyLUk3YlpoVmZ5W2RhdGEtaG92ZXItcGFydD1jYWxsXSB0ZFtkYXRhLWNlbGwtcGFydD1jYWxsXSwudHItSTdiWmhWZnlbZGF0YS1ob3Zlci1wYXJ0PXB1dF0gdGRbZGF0YS1jZWxsLXBhcnQ9cHV0XXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLWNvbnRhaW5lci1maWxsLXByaW1hcnktbmV1dHJhbC1leHRyYS1saWdodCl9LnRkLUk3YlpoVmZ5e2ZvbnQtZmFtaWx5Oi1hcHBsZS1zeXN0ZW0sQmxpbmtNYWNTeXN0ZW1Gb250LFRyZWJ1Y2hldCBNUyxSb2JvdG8sVWJ1bnR1LHNhbnMtc2VyaWY7Zm9udC1mZWF0dXJlLXNldHRpbmdzOiJ0bnVtIiBvbiwibG51bSIgb247Zm9udC1zdHlsZTpub3JtYWw7LS11aS1saWItdHlwb2dyYXBoeS1mb250LXNpemU6MTRweDtmb250LXNpemU6dmFyKC0tdWktbGliLXR5cG9ncmFwaHktZm9udC1zaXplKTtmb250LXdlaWdodDo0MDA7LS11aS1saWItdHlwb2dyYXBoeS1saW5lLWhlaWdodDoxOHB4O2JvcmRlci1ib3R0b206MXB4IHNvbGlkIHZhcigtLWNvbG9yLWJvcmRlci10YWJsZSk7Ym94LXNpemluZzpib3JkZXItYm94O2hlaWdodDp2YXIoLS1vcHRpb25zLXRhYmxlLXJvdy1oZWlnaHQpO2xpbmUtaGVpZ2h0OnZhcigtLXVpLWxpYi10eXBvZ3JhcGh5LWxpbmUtaGVpZ2h0KTtwYWRkaW5nOjAgdmFyKC0tb3B0aW9ucy10YWJsZS1jZWxsLWhvcnotcGFkZGluZyk7dGV4dC1hbGlnbjplbmR9LnRkLUk3YlpoVmZ5OmZpcnN0LWNoaWxke3BhZGRpbmctaW5saW5lLXN0YXJ0OnZhcigtLW9wdGlvbnMtdGFibGUtaG9yaXpvbnRhbC1wYWRkaW5nKX0udGQtSTdiWmhWZnk6bGFzdC1jaGlsZHtwYWRkaW5nLWlubGluZS1lbmQ6dmFyKC0tb3B0aW9ucy10YWJsZS1ob3Jpem9udGFsLXBhZGRpbmcpfS5hbGlnbkxlZnQtSTdiWmhWZnl7dGV4dC1hbGlnbjpzdGFydH0uYWxpZ25DZW50ZXItSTdiWmhWZnl7dGV4dC1hbGlnbjpjZW50ZXJ9LmNvbG9ySW5UaGVNb25leS1JN2JaaFZmeXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLW9wdGlvbnMtY2hhaW4tYmctY29sb3IsdmFyKC0tY29sb3ItYm9keS1iZykpfS5jZW50ZXItSTdiWmhWZnl7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1vcHRpb24tY2hhaW4tY2VudHJhbC1jZWxsLWJnLWNvbG9yLHZhcigtLWNvbG9yLWJhY2tncm91bmQtcHJpbWFyeS1uZXV0cmFsLWV4dHJhLWxpZ2h0KSl9LnNlbGVjdGVkLUk3YlpoVmZ5e2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItY29udGFpbmVyLWZpbGwtcHJpbWFyeS1hY2NlbnQtZXh0cmEtbGlnaHQpfS5uYXZpZ2F0ZWQtSTdiWmhWZnl7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1jb250YWluZXItZmlsbC1wcmltYXJ5LW5ldXRyYWwtbGlnaHQpfS5mbGFzaEhpZ2hsaWdodC1JN2JaaFZmeSAudGQtSTdiWmhWZnl7YW5pbWF0aW9uOmZsYXNoSGlnaGxpZ2h0LWFuaW1hdGlvbi1JN2JaaFZmeSAuNXMgbGluZWFyfUBrZXlmcmFtZXMgZmxhc2hIaWdobGlnaHQtYW5pbWF0aW9uLUk3YlpoVmZ5ezAle2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItYmFja2dyb3VuZC1wcmltYXJ5LWFjY2VudC1leHRyYS1saWdodCl9OTkle2JhY2tncm91bmQtY29sb3I6dmFyKC0tb3B0aW9ucy1jaGFpbi1iZy1jb2xvcix2YXIoLS1jb2xvci1ib2R5LWJnKSl9dG97YmFja2dyb3VuZC1jb2xvcjp1bnNldH19W2RhdGEtdGhlbWU9bGlnaHRdey0tXzAtYTA1UzojMDAwMDstLV8xLWEwNVM6dmFyKC0tY29sb3ItY29sZC1ncmF5LTE1MCk7LS1fMi1hMDVTOnZhcigtLWNvbG9yLWNvbGQtZ3JheS05MDApOy0tXzMtYTA1Uzp2YXIoLS1jb2xvci13aGl0ZSl9W2RhdGEtdGhlbWU9ZGFya117LS1fMC1hMDVTOiMwMDAwOy0tXzEtYTA1Uzp2YXIoLS1jb2xvci1jb2xkLWdyYXktNzAwKTstLV8yLWEwNVM6dmFyKC0tY29sb3ItY29sZC1ncmF5LTIwMCk7LS1fMy1hMDVTOnZhcigtLWNvbG9yLWNvbGQtZ3JheS04MDApfS5yb290LURyNzM5UnM0ey0tb3B0aW9ucy1waWNrZXItYmx1ci13aWR0aDozMnB4O2lzb2xhdGlvbjppc29sYXRlO3Bvc2l0aW9uOnJlbGF0aXZlOy13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTt1c2VyLXNlbGVjdDpub25lfUBtZWRpYSAobWluLXdpZHRoOjU2OHB4KXsucm9vdC1EcjczOVJzNHstLW9wdGlvbnMtcGlja2VyLWJsdXItd2lkdGg6MTgwcHh9fS5zY3JvbGxDb250YWluZXItRHI3MzlSczR7ZGlzcGxheTpmbGV4O21hcmdpbi1ibG9jazowIC00cHg7bWFyZ2luLWlubGluZTotNHB4IC00cHg7b3ZlcmZsb3cteDphdXRvO3BhZGRpbmctYmxvY2s6MCA0cHg7cGFkZGluZy1pbmxpbmU6NHB4IDRweDtzY3JvbGwtcGFkZGluZzp2YXIoLS1vcHRpb25zLXBpY2tlci1ibHVyLXdpZHRoKX1Ac3VwcG9ydHMgKC1tb3otYXBwZWFyYW5jZTpub25lKXsuc2Nyb2xsQ29udGFpbmVyLURyNzM5UnM0e3Njcm9sbGJhci13aWR0aDpub25lfX0uc2Nyb2xsQ29udGFpbmVyLURyNzM5UnM0LnNiLXNjcm9sbGJhci13cmFwe2Rpc3BsYXk6bm9uZX0uc2Nyb2xsQ29udGFpbmVyLURyNzM5UnM0Ojotd2Via2l0LXNjcm9sbGJhcntkaXNwbGF5Om5vbmU7aGVpZ2h0OjA7d2lkdGg6MH0uc2Nyb2xsQ29udGFpbmVyLURyNzM5UnM0Ojotd2Via2l0LXNjcm9sbGJhci10aHVtYiwuc2Nyb2xsQ29udGFpbmVyLURyNzM5UnM0Ojotd2Via2l0LXNjcm9sbGJhci10cmFja3tkaXNwbGF5Om5vbmV9LnNjcm9sbENvbnRhaW5lci1EcjczOVJzNDo6LXdlYmtpdC1zY3JvbGxiYXItY29ybmVye2Rpc3BsYXk6bm9uZX0uZ3JvdXAtRHI3MzlSczR7ZGlzcGxheTpncmlkO2ZsZXg6MCAxIGF1dG99Lmdyb3VwLURyNzM5UnM0Ky5ncm91cC1EcjczOVJzNHttYXJnaW4taW5saW5lLXN0YXJ0OjhweH0uZ3JvdXAtRHI3MzlSczQrLnN1Ymdyb3VwLURyNzM5UnM0e21hcmdpbi1pbmxpbmUtc3RhcnQ6MTJweH0uZ3JvdXBUaXRsZS1EcjczOVJzNHtmb250LWZhbWlseTotYXBwbGUtc3lzdGVtLEJsaW5rTWFjU3lzdGVtRm9udCxUcmVidWNoZXQgTVMsUm9ib3RvLFVidW50dSxzYW5zLXNlcmlmO2ZvbnQtZmVhdHVyZS1zZXR0aW5nczoidG51bSIgb24sImxudW0iIG9uO2ZvbnQtc3R5bGU6bm9ybWFsOy0tdWktbGliLXR5cG9ncmFwaHktZm9udC1zaXplOjE0cHg7Zm9udC1zaXplOnZhcigtLXVpLWxpYi10eXBvZ3JhcGh5LWZvbnQtc2l6ZSk7Zm9udC13ZWlnaHQ6NDAwOy0tdWktbGliLXR5cG9ncmFwaHktbGluZS1oZWlnaHQ6MThweDthbGlnbi1pdGVtczpjZW50ZXI7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgdmFyKC0tY29sb3ItYm9yZGVyLXByaW1hcnktbmV1dHJhbC1saWdodCk7Ym94LXNpemluZzpib3JkZXItYm94O2Rpc3BsYXk6aW5saW5lLWZsZXg7aGVpZ2h0OjI4cHg7anVzdGlmeS1jb250ZW50OmNlbnRlcjtsaW5lLWhlaWdodDp2YXIoLS11aS1saWItdHlwb2dyYXBoeS1saW5lLWhlaWdodCk7d2lkdGg6MTAwJX0ubGVmdEZhZGUtRHI3MzlSczR7LS1vcHRpb25zLXBpY2tlci10aXRsZS1sZWZ0OmNhbGModmFyKC0tb3B0aW9ucy1waWNrZXItYmx1ci13aWR0aCkvNCl9LnJpZ2h0RmFkZS1EcjczOVJzNHstLW9wdGlvbnMtcGlja2VyLXRpdGxlLXJpZ2h0OmNhbGModmFyKC0tb3B0aW9ucy1waWNrZXItYmx1ci13aWR0aCkvNCl9Lmdyb3VwLURyNzM5UnM0Om5vdCgub25lR3JvdXAtRHI3MzlSczQpIC5ncm91cFRpdGxlLURyNzM5UnM0IHNwYW57aW5zZXQtaW5saW5lLWVuZDp2YXIoLS1vcHRpb25zLXBpY2tlci10aXRsZS1yaWdodCwwKTtpbnNldC1pbmxpbmUtc3RhcnQ6dmFyKC0tb3B0aW9ucy1waWNrZXItdGl0bGUtbGVmdCwwKTtwb3NpdGlvbjpzdGlja3k7d2hpdGUtc3BhY2U6bm93cmFwfS5sZWZ0RmFkZS1EcjczOVJzNCAub25lR3JvdXAtRHI3MzlSczQgLmdyb3VwVGl0bGUtRHI3MzlSczQgc3BhbiwucmlnaHRGYWRlLURyNzM5UnM0IC5vbmVHcm91cC1EcjczOVJzNCAuZ3JvdXBUaXRsZS1EcjczOVJzNCBzcGFue2luc2V0LWlubGluZS1lbmQ6YXV0bztpbnNldC1pbmxpbmUtc3RhcnQ6NTAlO3Bvc2l0aW9uOmFic29sdXRlO3RyYW5zZm9ybTp0cmFuc2xhdGVYKC01MCUpfS5sZWZ0RmFkZS1EcjczOVJzNCAub25lR3JvdXAtRHI3MzlSczQgLmdyb3VwVGl0bGUtRHI3MzlSczQgc3BhbjpkaXIocnRsKSwucmlnaHRGYWRlLURyNzM5UnM0IC5vbmVHcm91cC1EcjczOVJzNCAuZ3JvdXBUaXRsZS1EcjczOVJzNCBzcGFuOmRpcihydGwpe3RyYW5zZm9ybTp0cmFuc2xhdGVYKDUwJSl9LnN1Ymdyb3VwLURyNzM5UnM0IC5ncm91cFRpdGxlLURyNzM5UnM0e21pbi13aWR0aDo2NHB4fS5yb290LURyNzM5UnM0OmFmdGVyLC5yb290LURyNzM5UnM0OmJlZm9yZXtib3R0b206MDtib3gtc2hhZG93Omluc2V0IGNhbGModmFyKC0tb3B0aW9ucy1waWNrZXItYmx1ci13aWR0aCkqLTEpIDAgY2FsYyh2YXIoLS1vcHRpb25zLXBpY2tlci1ibHVyLXdpZHRoKS8yKSBjYWxjKHZhcigtLW9wdGlvbnMtcGlja2VyLWJsdXItd2lkdGgpKi0xLzIpIHZhcigtLW9wdGlvbnMtcGlja2VyLWJsdXItY29sb3IsdmFyKC0tY29sb3ItYm9keS1iZykpO2NvbnRlbnQ6IiI7b3BhY2l0eTowO3BvaW50ZXItZXZlbnRzOm5vbmU7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7dHJhbnNpdGlvbjpvcGFjaXR5IC4zNXMgZWFzZS1vdXQ7d2lkdGg6dmFyKC0tb3B0aW9ucy1waWNrZXItYmx1ci13aWR0aCk7ei1pbmRleDoxfUBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjpyZWR1Y2Upey5yb290LURyNzM5UnM0OmFmdGVyLC5yb290LURyNzM5UnM0OmJlZm9yZXt0cmFuc2l0aW9uOm5vbmV9fS5yb290LURyNzM5UnM0OmFmdGVyOmRpcihydGwpLC5yb290LURyNzM5UnM0OmJlZm9yZTpkaXIocnRsKXtib3gtc2hhZG93Omluc2V0IGNhbGModmFyKC0tb3B0aW9ucy1waWNrZXItYmx1ci13aWR0aCkqMSkgMCBjYWxjKHZhcigtLW9wdGlvbnMtcGlja2VyLWJsdXItd2lkdGgpLzIpIGNhbGModmFyKC0tb3B0aW9ucy1waWNrZXItYmx1ci13aWR0aCkqLTEvMikgdmFyKC0tb3B0aW9ucy1waWNrZXItYmx1ci1jb2xvcix2YXIoLS1jb2xvci1ib2R5LWJnKSl9LnJvb3QtRHI3MzlSczQ6YWZ0ZXJ7aW5zZXQtaW5saW5lLWVuZDotNHB4fS5yb290LURyNzM5UnM0OmJlZm9yZXtpbnNldC1pbmxpbmUtc3RhcnQ6LTRweDt0cmFuc2Zvcm06cm90YXRlKDE4MGRlZyl9LnJvb3QtRHI3MzlSczQ6YmVmb3JlOmRpcihydGwpe3RyYW5zZm9ybTpyb3RhdGUoLTE4MGRlZyl9LmxlZnRGYWRlLURyNzM5UnM0OmJlZm9yZSwucmlnaHRGYWRlLURyNzM5UnM0OmFmdGVye29wYWNpdHk6MX0ucm9vdC1EcjczOVJzNCAubGVmdEFycm93LURyNzM5UnM0LC5yb290LURyNzM5UnM0IC5yaWdodEFycm93LURyNzM5UnM0ey0tdWktbGliLWxpZ2h0LWJ1dHRvbi1jb2xvci1iZzp2YXIoLS1fMy1hMDVTKTtvcGFjaXR5OjA7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7dHJhbnNpdGlvbjpvcGFjaXR5IC4zNXMgZWFzZS1vdXQ7ei1pbmRleDoyfUBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjpyZWR1Y2Upey5yb290LURyNzM5UnM0IC5sZWZ0QXJyb3ctRHI3MzlSczQsLnJvb3QtRHI3MzlSczQgLnJpZ2h0QXJyb3ctRHI3MzlSczR7dHJhbnNpdGlvbjpub25lfX0ubGVmdEFycm93LURyNzM5UnM0e2luc2V0LWlubGluZS1zdGFydDowfS5sZWZ0QXJyb3ctRHI3MzlSczQgc3Zne3RyYW5zZm9ybTpyb3RhdGUoMTgwZGVnKX0ubGVmdEFycm93LURyNzM5UnM0IHN2ZzpkaXIocnRsKXt0cmFuc2Zvcm06cm90YXRlKDApfS5yaWdodEFycm93LURyNzM5UnM0e2luc2V0LWlubGluZS1lbmQ6MH0ucmlnaHRBcnJvdy1EcjczOVJzNCBzdmd7dHJhbnNmb3JtOnJvdGF0ZSgwKX0ucmlnaHRBcnJvdy1EcjczOVJzNCBzdmc6ZGlyKHJ0bCl7dHJhbnNmb3JtOnJvdGF0ZSgxODBkZWcpfUBtZWRpYSAobWluLXdpZHRoOjU2OHB4KXsubGVmdEZhZGUtRHI3MzlSczQgLmxlZnRBcnJvdy1EcjczOVJzNCwucmlnaHRGYWRlLURyNzM5UnM0IC5yaWdodEFycm93LURyNzM5UnM0e29wYWNpdHk6MX19Lml0ZW1zLURyNzM5UnM0e2Rpc3BsYXk6ZmxleDttYXJnaW4tdG9wOjRweH0uc2tlbGV0b25Db250YWluZXItaWpSaEV3dVl7cG9pbnRlci1ldmVudHM6bm9uZX0ub3B0aW9uc0NoYWluLWlqUmhFd3VZey0tb3B0aW9uLWNoYWluLWNlbnRyYWwtY2VsbC1iZy1jb2xvcjp2YXIoLS1vcHRpb25zLWNoYWluLWJnLWNvbG9yLHZhcigtLWNvbG9yLWJvZHktYmcpKTtoZWlnaHQ6MTAwJTtvdmVyZmxvdzpoaWRkZW59LnNrZWxldG9uUmVjdGFuZ2xlLWlqUmhFd3VZe2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItY29udGFpbmVyLWZpbGwtcHJpbWFyeS1uZXV0cmFsLWV4dHJhLWxpZ2h0KTtib3JkZXItcmFkaXVzOjRweDttYXJnaW46MCBhdXRvfS5zZXJpZXNHcm91cENlbGwtaWpSaEV3dVl7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1vcHRpb25zLWNoYWluLWJnLWNvbG9yLHZhcigtLWNvbG9yLWJvZHktYmcpKTtib3JkZXItYm90dG9tOjFweCBzb2xpZCB2YXIoLS1jb2xvci1ib3JkZXItdGFibGUpO2hlaWdodDp2YXIoLS1vcHRpb25zLXRhYmxlLXJvdy1oZWlnaHQpfVtkYXRhLXRoZW1lPWxpZ2h0XXstLV8wLUc1X3U6dXJsKHVmby1hbmQtY293LTEyMHgxMjAuODM2ZGZhOTkzNGU1OGIwZTc4OTguc3ZnKX1bZGF0YS10aGVtZT1kYXJrXXstLV8wLUc1X3U6dXJsKHVmby1hbmQtY293LTEyMHgxMjAtZGFyay40Y2NkNGU4NzRkNDM0MWQyZjk1ZC5zdmcpfS5ibG9jay1zaEt4c3pzeHthbGlnbi1pdGVtczpjZW50ZXI7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3dpZHRoOjEwMCV9LmVtcHR5U3RhdGVJY29uLXNoS3hzenN4e2JhY2tncm91bmQtaW1hZ2U6dmFyKC0tXzAtRzVfdSk7aGVpZ2h0OjEyMHB4O3dpZHRoOjEyMHB4fS5hcnJvdy1tSkFpMVQwaXt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuMzVzIGVhc2V9Lm9wZW4tbUpBaTFUMGl7dHJhbnNmb3JtOnJvdGF0ZSgxODBkZWcpfS5vcGVuLW1KQWkxVDBpOmRpcihydGwpe3RyYW5zZm9ybTpyb3RhdGUoLTE4MGRlZyl9LmFjdGl2ZS1tSkFpMVQwaXtjb2xvcjp2YXIoLS11aS1saWItcHJpdmF0ZS1waWxsLWFjdGl2ZS10ZXh0KX0ubm9uQWN0aXZlLW1KQWkxVDBpe2NvbG9yOnZhcigtLXVpLWxpYi1wcml2YXRlLXBpbGwtdGV4dCl9LnBpbGxJY29uLWo1TkcwVlZUe21hcmdpbi1pbmxpbmUtc3RhcnQ6dmFyKC0tdWktbGliLXByaXZhdGUtcGlsbC1pY29uLW1hcmdpbi1sZWZ0LDApfS5hY3RpdmUtajVORzBWVlR7Y29sb3I6dmFyKC0tdWktbGliLXByaXZhdGUtcGlsbC1hY3RpdmUtdGV4dCl9Lm5vbkFjdGl2ZS1qNU5HMFZWVHtjb2xvcjp2YXIoLS11aS1saWItcHJpdmF0ZS1waWxsLXRleHQpfS5yb290LXlCS0NlQU5xe3Bvc2l0aW9uOnJlbGF0aXZlfS5zY3JvbGxDb250YWluZXIteUJLQ2VBTnF7ZGlzcGxheTpmbGV4O292ZXJmbG93LXg6YXV0b31Ac3VwcG9ydHMgKC1tb3otYXBwZWFyYW5jZTpub25lKXsuc2Nyb2xsQ29udGFpbmVyLXlCS0NlQU5xe3Njcm9sbGJhci13aWR0aDpub25lfX0uc2Nyb2xsQ29udGFpbmVyLXlCS0NlQU5xLnNiLXNjcm9sbGJhci13cmFwe2Rpc3BsYXk6bm9uZX0uc2Nyb2xsQ29udGFpbmVyLXlCS0NlQU5xOjotd2Via2l0LXNjcm9sbGJhcntkaXNwbGF5Om5vbmU7aGVpZ2h0OjA7d2lkdGg6MH0uc2Nyb2xsQ29udGFpbmVyLXlCS0NlQU5xOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiwuc2Nyb2xsQ29udGFpbmVyLXlCS0NlQU5xOjotd2Via2l0LXNjcm9sbGJhci10cmFja3tkaXNwbGF5Om5vbmV9LnNjcm9sbENvbnRhaW5lci15QktDZUFOcTo6LXdlYmtpdC1zY3JvbGxiYXItY29ybmVye2Rpc3BsYXk6bm9uZX0uZ3JvdXAteUJLQ2VBTnF7ZmxleDowIDEgYXV0b30uZ3JvdXAteUJLQ2VBTnErLmdyb3VwLXlCS0NlQU5xe21hcmdpbi1pbmxpbmUtc3RhcnQ6NnB4fS5ncm91cFRpdGxlLXlCS0NlQU5xe2JvcmRlci1yYWRpdXM6NHB4O2hlaWdodDoyOHB4O3dpZHRoOjEwMCV9Lml0ZW1zLXlCS0NlQU5xe2Rpc3BsYXk6ZmxleDttYXJnaW4tdG9wOjRweH0uaXRlbS15QktDZUFOcXtib3JkZXItcmFkaXVzOjRweDtkaXNwbGF5OmlubGluZS1ibG9jaztoZWlnaHQ6MjhweDt3aWR0aDozOHB4fS5pdGVtLXlCS0NlQU5xKy5pdGVtLXlCS0NlQU5xe21hcmdpbi1pbmxpbmUtc3RhcnQ6NHB4fS5yb290LVdNTE55NV93e2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47bWluLWhlaWdodDowfS5jZWxsLUF0UllySlBue2Rpc3BsYXk6aW5saW5lLWZsZXg7Z2FwOjJweDt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9LnNvcnRBY3RpdmUtQXRSWXJKUG57Y29sb3I6dmFyKC0tY29sb3ItY29udGVudC1wcmltYXJ5LW5ldXRyYWwtYm9sZCk7Zm9udC13ZWlnaHQ6NTAwfS5zb3J0SWNvbi1BdFJZckpQbntmbGV4LXNocmluazowO3RyYW5zZm9ybTpyb3RhdGUoMTgwZGVnKX0uc29ydEljb24tQXRSWXJKUG46ZGlyKHJ0bCl7dHJhbnNmb3JtOnJvdGF0ZSgtMTgwZGVnKX0uc29ydEljb24tQXRSWXJKUG4uc29ydERlc2MtQXRSWXJKUG57dHJhbnNmb3JtOnJvdGF0ZSgwZGVnKX0ubGF5b3V0LXBlSlVTUmRae2FsaWduLWl0ZW1zOmNlbnRlcjtkaXNwbGF5OmZsZXg7aGVpZ2h0OjEwMCU7bWluLXdpZHRoOjA7cGFkZGluZzowIDhweH0uc3RyZXRjaC1wZUpVU1JkWnt3aWR0aDoxMDAlfS5zcGFjZS1wZUpVU1JkWntmbGV4OjF9LmVuZFRleHRTbG90LXBlSlVTUmRaLC5zdGFydFRleHRTbG90LXBlSlVTUmRae21pbi13aWR0aDowO3BhZGRpbmc6MCA0cHh9"}},"time_used":4,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":4,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/18472.d9419b6dcb64c88564c1.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.778Z","timestamp":1785148034778,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/18472.d9419b6dcb64c88564c1.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\ncontent-type: text/css; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding, Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\netag: W/\"69f98b75-1a6\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Tue, 05 May 2026 06:17:25 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.51\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 05/05/2026 10:18:38\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 928151e4d2fb0137628d47f3bce8bcd1\r\ncdn-cache: HIT\r\ncontent-encoding: br\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":422,"size_decoded":992,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with very long lines (422), with no line terminators","md5":"476b3b70cc16dcfe296161b43f04c908","sha1":"6e946ff2c7e0d4ca53575ba0988c8e545f4b7a4d","sha256":"d05eeeff94d3200cf850fbcb2ff60c963417d6bff4e8801c6579fe48b6be339b","sha512":"ceaea3acdc328e1b6a4c2b2d09324166cc7e945ab9bd78f84be8084e65119b317b2c644d26cae59e8d883a5b9075ff1650d8f4ceaf8c81e9ba03b4db4f5cfc04","ssdeep":"","tlshash":"81e0a7c3028672c92d52c76412f99901a3ecd85212f5ddb3063b67410918f3abc23196","first_seen":"2026-04-07T05:25:24.888174Z","last_seen":"2026-07-27T12:54:15.298117Z","times_seen":387,"resource_available":false,"data":"LnN0YWNrLUwyRTI2U3dme2Rpc3BsYXk6ZmxleDtsaXN0LXN0eWxlOm5vbmV9LnN0YWNrLUwyRTI2U3dmOmRpcihydGwpe2RpcmVjdGlvbjpsdHJ9LnN0YWNrLUwyRTI2U3dmPip7ZGlzcGxheTppbmxpbmUtZmxleH0uc3RhY2stLXh4eHNtYWxsLUwyRTI2U3dmPjpub3QoOmZpcnN0LWNoaWxkKXttYXJnaW4tbGVmdDotM3B4fS5zdGFjay0teHh4c21hbGwtTDJFMjZTd2Y+Om5vdCg6bGFzdC1jaGlsZCl7Y2xpcC1wYXRoOnBhdGgoIm0tMS0xaDI1YTEgMSAwIDAgMCAwIDIwSC0xeiIpfS5zdGFjay0teHNtYWxsLUwyRTI2U3dmPjpub3QoOmZpcnN0LWNoaWxkKXttYXJnaW4tbGVmdDotNHB4fS5zdGFjay0teHNtYWxsLUwyRTI2U3dmPjpub3QoOmxhc3QtY2hpbGQpe2NsaXAtcGF0aDpwYXRoKCJtLTEtMWgzM2ExIDEgMCAwIDAgMCAyNkgtMXoiKX0="}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"fonts.gstatic.com/s/i/productlogos/translate/v14/24px.svg","fqdn":"fonts.gstatic.com","domain":"gstatic.com","tld":"com"},"ip":{"addr":"142.250.178.67","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://digital-assettrade.com/","date":"2026-07-27T10:27:13.613Z","timestamp":1785148033613,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.gstatic.com","organization":""},"issuer":{"commonName":"WE2","organization":"Google Trust Services"},"validity":{"start":"Mon, 29 Jun 2026 08:39:25 GMT","end":"Mon, 21 Sep 2026 08:39:24 GMT"},"fingerprint":{"sha1":"4E:F2:73:C6:27:16:58:35:FE:55:D5:30:6B:E8:6D:2B:DA:B0:E8:7B","sha256":"82:EF:6A:61:96:A5:23:D6:2C:2C:9D:77:67:04:D8:7B:3B:6A:50:DA:3C:6C:6A:5F:4E:2D:55:F3:FC:DA:0B:EE"}}},"request":{"raw":"GET /s/i/productlogos/translate/v14/24px.svg HTTP/1.1\r\nHost: fonts.gstatic.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-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://digital-assettrade.com/\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=6, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccept-ranges: bytes\r\ncontent-encoding: gzip\r\naccess-control-allow-origin: *\r\ncontent-security-policy-report-only: require-trusted-types-for 'script'; report-uri https://csp.withgoogle.com/csp/apps-themes\r\ncross-origin-resource-policy: cross-origin\r\ncross-origin-opener-policy: same-origin; report-to=\"apps-themes\"\r\nreport-to: {\"group\":\"apps-themes\",\"max_age\":2592000,\"endpoints\":[{\"url\":\"https://csp.withgoogle.com/csp/report-to/apps-themes\"}]}\r\ncontent-length: 3340\r\nx-content-type-options: nosniff\r\nserver: sffe\r\nx-xss-protection: 0\r\ndate: Thu, 23 Jul 2026 10:10:10 GMT\r\nexpires: Fri, 23 Jul 2027 10:10:10 GMT\r\ncache-control: public, max-age=31536000\r\nage: 346623\r\nlast-modified: Wed, 20 Apr 2022 14:24:23 GMT\r\ncontent-type: image/svg+xml\r\nvary: Accept-Encoding\r\nalt-svc: h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":null,"data":{"size":6225,"size_decoded":4178,"mime_type":"image/svg+xml","magic":"SVG Scalable Vector Graphics image","md5":"2bd5c073a88b83ed74db88282a56ddfb","sha1":"d0ebfc376f8c6a44a8d4cd216817dcd7d0c33650","sha256":"ab5c23a05e39deed14d9d8262b0dce9f024f86105a27196cad37d14a3f516e09","sha512":"5c6c4a92e93fc0f6a675658cc84f6187fdebd3eee94efd07e24658736cba598f3bc7156b19834b13fb44c1d43fcb7df9fcca7f0a453037e30da76ba8f4b23b89","ssdeep":"96:+R2K3Z4n7tyVwip82hezk6227gLFoXhu1XuE20ot+pVY3YptWDzOzgXK3Zx:ql3KnxyGGMzb7noR20NTww33","tlshash":"c1d1e6f19309d815cd6a83d8cd9b8002aa1f25ddd50ac6cc7639fb3bd1a50eb1d2d7a4","first_seen":"2023-04-06T21:34:37Z","last_seen":"2026-07-27T13:00:41.381587Z","times_seen":77046,"resource_available":false,"data":"PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIyNCI+PHBhdGggZD0iTTAgMGgyNHYyNEgweiIgZmlsbD0ibm9uZSIvPjxkZWZzPjxwYXRoIGQ9Ik0yMS41IDVoLTkuMTdMMTEgMUgyLjVDMS42OCAxIDEgMS42OCAxIDIuNXYxNWMwIC44My42OCAxLjUgMS41IDEuNWg5LjE3TDEzIDIzaDguNWMuODIgMCAxLjUtLjY4IDEuNS0xLjV2LTE1YzAtLjgzLS42OC0xLjUtMS41LTEuNXoiIGlkPSJhIi8+PC9kZWZzPjxjbGlwUGF0aCBpZD0iYiI+PHVzZSBvdmVyZmxvdz0idmlzaWJsZSIgeGxpbms6aHJlZj0iI2EiLz48L2NsaXBQYXRoPjxnIGNsaXAtcGF0aD0idXJsKCNiKSI+PGltYWdlIGhlaWdodD0iMzEiIG9wYWNpdHk9Ii4yIiBvdmVyZmxvdz0idmlzaWJsZSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMyAxKSIgd2lkdGg9IjI5IiB4bGluazpocmVmPSJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUIwQUFBQWZDQVlBQUFBYlc4WUVBQUFBQ1hCSVdYTUFBQXNTQUFBTEVnSFMzWDc4QUFBQSBHWFJGV0hSVGIyWjBkMkZ5WlFCQlpHOWlaU0JKYldGblpWSmxZV1I1Y2NsbFBBQUFCUUJKUkVGVWVOcThWOHR1MjBZVXZYZG0rTENrIFJLaU13STFURkVYaFZaSmQxZ1c2Nnhla3Y5RFBxUHN2WGRVL1VhRHJvSnNrS3krQ0luQ2NHcEt0RnkyU00vZjJERVhaaWEwb2R0S1cgQWtGSjh6aHp6bjNTMFljdnBzKzc5RU1EYmozWWZndjRFTStYVE4vZkVPYjNaZzNBWG1xN2o2NEQ1L2UveC9FZnpaTW5YNWp4K0xGWiBMTHlwNnlORE96c2tZYjZSdWJGZHBiZHZLVWwySmMrZDlQdlA1ZG16VXlINlRWb1lYUU9xK0g1Zzl2YitjT05zTzltYUxwSXl5WlBVIGtaTkFwcG1oOVZwZzVrU1h3Q1NWSjUvVmkvcjhUbDczeTJGOWVQaWRKM29hZ2ErQjR2a1VnRis2RVcxbmR6MTFndk5kRGRMMWJETnIgeUtrQ1dPMTZ0aHlVR1dJSWVhZTJaR3ZuMW9mNXhGRXhvR0Y1ZUhnTTRBTlpzVzAzMlRmMDVNamVXK3htTktlZWRlV0FnOXRteXdQTSA2ckdZek9BUEJTZlE1U3MwTmY0cEFtUnJTbUJQMWVoSXhRNkRweEYxYVhhU0g1WDBiRGNBUjFhT3hMUlB0UGRyWnJ3bmQ1NVN4M2d6IElNTzcyT3dCcTlrbW94MFJTa0hIUk54clJKV0ZEYlFYS3BSMXhONGVPZngwTnFuTWRGSHVsWS9ydy8xUkFFNWNyRXZ2ZmZHQ3ZYL0UgVlVvT0MzTW0yNGVhTzZUeU5aamVCNUUrc0RMTXQydENxWkVXOGxjZ1BTVTJ4MEloS2xBWW9UUDR4VVR1ZVVNdkh2Skszb3VROGZmSCBIUDYySnBHZWcvVlNZY2lxTkFEYkhReHZZNWV0ZHI2NXloTlhsRzJCNXhqemdXZkhKb1NlWjVPbGJ1YXErY3pReVlTdnhhbDcwMWRKIFNXb2lnUk5xWEl0ak9SaHNDK3g3NE5mRHRQUTZhR1BrZ0FVbEdST3BUS0JRUjRnYkIxeDZmanozL0RLOEdzb0hqL1NWRzZwSkFDaSsgTmhRZEFwc1FKRlBDZWxpWUtJbWdlRUpteWxjM1h6dzV5cDl4bklNWU1rWnQ5SGpWaEsvR2VIdHFaSTUrS1VWSlh0U1ZRY3djWURQbyBGSTkzamhXK0RXU2p6WnJHdHMwTlFTd09aVEZvTWFNQmFseTZDVEZaRzJLWFV0M1oxYVF6QzM2cktyRkowY2dVYjZhWlJudVJ3anRJIGxvN0VxM0NMV1N5YTRlSjdhK1ROMmV1ZHZDbGJrMTdJdEZlcG9RTHJweVF5eGtaVGpCWUlpd3FuWHdGLzFtWGVyUWl2dHUrSG9ocDcgdGY3Y1dKbkNUZ0JsZUNRM2JCRWFQaWFDVFJYa05xQkx1OTU1bzJrditOeklJb2dEa0dsQUVmdXdMNTFEWWg5ejNzZEsxeTFBTHlYMiBGeEpMSzNGajMzOU5Zbk8xNlA0ZkVsOEo5SFVTYXl0eFRIRlJZcXJobko2MEFaVTJsTnBETk9VTGFaSDFGcUJYSlM0TGhOOEVDZW9zIE1nYkxXVXgzQUsreHY0K1pLTjZBQ3h4bFp3MHhEemRaS2o3WjZFMUFMeVErOTFXTmNsd2dJVTZ3d1JsaTd4VGt6akE4QlFDU0J4ZkwgK01VaGxuR01ETVlsZnNQdVdzZFNGNEdaYTIyNmlvMU1XNG56UHZrUWJXZ0RuSWxHWUhTQ1RVK1FiT0k5Qk50VFRCN2h4bUVJaCtGVCBLREpHWm9pVnBrQTZLbU5SajkwRTBkdVBObWFOeEoyOVFWaDBSeFdzT01OUmgwSnlESWs3TEJLMWl3NjJCVjFjTEthWHBZMm4rSFdzIEdrWmlkT1pFeXNwM2ZESzRLM1R2SzkwRWlzR2Y2YkQvazZDVHFEcEJadDZFb1RXY1NYUVU1bWhYMUZ2Tm0vWFJpeVFpYXcwWEttRGkgRVhMOWtkVjZGTU11OWt2cHlVRG9CM1NJQjV1WXhwMitmU3I5UDdOYTdJT2lwc1VweFo1QnFJU05UdzFyRnk2YkdyS29JakFiUzl1dSBFS29UMk5vd3FpV0o3Y3FNMEtEOWxUOFgydCtsS3ozUzJsNFovZTR2OXB0WHpjRnluOVpkOG5sSEhjalhhTlpzYUN2S3FsVzZkV1AyIElicjdzZEUyZTY4SDlzeStUdk41SjZud3lkTFV2dHVXZm1vTHVnSDRaZzM0SnpiYkh3Ty93YXZHKzY4VmRKUFhpaHVDL3pjdlVKKzAgMFcydWZ3UVlBR0hLSzJDRk1JcnpBQUFBQUVsRlRrU3VRbUNDIi8+PHJhZGlhbEdyYWRpZW50IGN4PSI3LjM5NCIgY3k9IjUuNDM3IiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgaWQ9ImMiIHI9IjIzLjQxNiI+PHN0b3Agb2Zmc2V0PSIwIiBzdG9wLWNvbG9yPSIjRUVFIi8+PHN0b3Agb2Zmc2V0PSIuNDMyIiBzdG9wLWNvbG9yPSIjRTZFNkU2Ii8+PHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjRTFFMUUxIi8+PC9yYWRpYWxHcmFkaWVudD48cGF0aCBkPSJNMTMgMjNoOC41Yy44MiAwIDEuNS0uNjggMS41LTEuNXYtMTVjMC0uODMtLjY4LTEuNS0xLjUtMS41SDdsNiAxOHoiIGZpbGw9InVybCgjYykiLz48L2c+PHBhdGggY2xpcC1wYXRoPSJ1cmwoI2IpIiBkPSJNMTggMTF2LTFoLTF2MWgtMy43NXYxaDUuMzJjLS4yLjQ5LS42IDEuMy0xLjMyIDIuMTQtLjUxLS42LS44Ni0xLjE4LTEuMS0xLjY0aC0xLjExYy4zNi44NC45IDEuNjYgMS41MiAyLjM4bC0yLjYgMi41OC43MS43MSAyLjU4LTIuNTggMi41OCAyLjU4LjcxLS43MS0yLjYtMi41OGMuNzQtLjg2IDEuMzMtMS44NSAxLjY4LTIuODhIMjF2LTFoLTN6IiBmaWxsPSIjNjA3RDhCIi8+PGxpbmVhckdyYWRpZW50IGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiBpZD0iZCIgeDE9IjEyLjMzMyIgeDI9IjIzIiB5MT0iMTQiIHkyPSIxNCI+PHN0b3Agb2Zmc2V0PSIwIiBzdG9wLWNvbG9yPSIjMjEyMTIxIiBzdG9wLW9wYWNpdHk9Ii4xIi8+PHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjMjEyMTIxIiBzdG9wLW9wYWNpdHk9Ii4wMiIvPjwvbGluZWFyR3JhZGllbnQ+PHBhdGggY2xpcC1wYXRoPSJ1cmwoI2IpIiBkPSJNMTIuMzMgNUwyMyAxNS42N1YyM0gxMyIgZmlsbD0idXJsKCNkKSIvPjxnIGNsaXAtcGF0aD0idXJsKCNiKSI+PGltYWdlIGhlaWdodD0iOCIgb3BhY2l0eT0iLjEiIG92ZXJmbG93PSJ2aXNpYmxlIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxMC41IDE3LjUpIiB3aWR0aD0iOSIgeGxpbms6aHJlZj0iZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFBb0FBQUFKQ0FZQUFBQUxwcjBUQUFBQUNYQklXWE1BQUFzU0FBQUxFZ0hTM1g3OEFBQUEgR1hSRldIUlRiMlowZDJGeVpRQkJaRzlpWlNCSmJXRm5aVkpsWVdSNWNjbGxQQUFBQU9GSlJFRlVlTnAwVUQxTEEwRVVuTGU3SnNKaCBDaUZwTFZOWWFTMzQxMUw3Wi9JblVwZ21xUklSTEd4RU9FVlFzb1JjYm5lY3U2QUdUQjRNNzJ2ZXZqZHIrRFBEZitOdnMzODU4cTdhIEZwNG9ET1pCSjVkSk1DVkR6SjJUK0xZWXBlQXlUajM5VU1OWGhBMDBIQUJYS3k4OWJZNlVscXJGb01IbTVRSzBhL21iWFl4U3l5Wm0gZUNCVGU1S3I2OCtOR3ErS3Y0UXpvU004cTNaUDhpbWpYamRFdi82WXNuZCtxNmE3VU40WEZzS1lsaWZiVUpYdmozZnR5dEFxTTF2SiB6NlVnR3ZnaUliTjkwZzhSVmRkRktaL3B6cVgrWTVORHRkb25IVEk3MXZnV1lBRHpXbWR4LzRmcG1RQUFBQUJKUlU1RXJrSmdnZz09Ii8+PHBhdGggZD0iTTE3IDE5bC00IDQtMS4zMy00IiBmaWxsPSIjM0Y1MUI1Ii8+PC9nPjxwYXRoIGNsaXAtcGF0aD0idXJsKCNiKSIgZD0iTTIxLjUgNUg3bC4wNC4xMkgyMS41Yy44MiAwIDEuNS42NyAxLjUgMS41VjYuNWMwLS44My0uNjgtMS41LTEuNS0xLjV6IiBmaWxsPSIjMjEyMTIxIiBmaWxsLW9wYWNpdHk9Ii4wMiIvPjxwYXRoIGNsaXAtcGF0aD0idXJsKCNiKSIgZD0iTTIxLjUgMjIuODhIMTNMMTEuNzEgMTloLS4wNEwxMyAyM2g4LjVjLjgyIDAgMS41LS42OCAxLjUtMS41di0uMTJjMCAuODItLjY4IDEuNS0xLjUgMS41eiIgZmlsbD0iIzIxMjEyMSIgZmlsbC1vcGFjaXR5PSIuMSIvPjxwYXRoIGNsaXAtcGF0aD0idXJsKCNiKSIgZD0iTTEyLjk3IDIyLjkxTDEzIDIzbDQtNGgtLjEyIiBmaWxsPSIjMUEyMzdFIiBmaWxsLW9wYWNpdHk9Ii4yIi8+PHBhdGggY2xpcC1wYXRoPSJ1cmwoI2IpIiBkPSJNMTEuNjcgMTkuMTJoNS4yMUwxNyAxOWgtNS4zMyIgZmlsbD0iIzFBMjM3RSIgZmlsbC1vcGFjaXR5PSIuMSIvPjxnIGNsaXAtcGF0aD0idXJsKCNiKSI+PGltYWdlIGhlaWdodD0iMjIiIG9wYWNpdHk9Ii4yIiBvdmVyZmxvdz0idmlzaWJsZSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLS41IC0uNSkiIHdpZHRoPSIyMCIgeGxpbms6aHJlZj0iZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFCVUFBQUFYQ0FZQUFBRGszd1NkQUFBQUNYQklXWE1BQUFzU0FBQUxFZ0hTM1g3OEFBQUEgR1hSRldIUlRiMlowZDJGeVpRQkJaRzlpWlNCSmJXRm5aVkpsWVdSNWNjbGxQQUFBQVVwSlJFRlVlTnFzbGJGT3d6QVFRTy9zUUNSYyBzcUFPbFJnck1qQ1ZyK0VyK0laK0F4L1dUQ3dWZXlWUWw5SU9RWTJQYzJxaE5Gd2NHc2RTckhOc1A1MmZwVFBDZVVQNFg2UFFaQTJaIFBpNDFscVhScENZS3RBNXRzRkJWRmRvOXBlbmg4MjFaU1dzUzExMlgxaEJkUFhHNDRCU3lRTWFFb0hjSjZRSkx1K0x4cmd1S1FEUUIgVUF1T24zbmZMQVRscWMwcHNtdnV2eVFWaWJmQVJ5YVhvUVBlaDZIazlNdzR1TDJidjN4czMxK1A3VVdxNVJkN0xzdk44YWtnNXpCUCBLVFBTSWdXWE4zT0NRbzZBUmtwaUNOUWQzNm1hZWdWNkRHZ2pXMWxCSkZSV01CUWFWREFVR2xRd0F2U3ZnaGhvcDRJWWFLZUNrYURuIENtS2hvb0pZcUtoQXRhbzU5VlYxb2Qzdzk5QlU0RXNmY1FWWHJ1QnVQQk12Z0pJdjFzZG1QU1ZBM0hPaEx2eS9iQ0MwcURrOHJqUDkgVHRXQjM2Z1Z2MUhydmplcTc5MlNqb2tSRi9aN0Z6OENEQUM4RW1XREtWR0RMZ0FBQUFCSlJVNUVya0pnZ2c9PSIvPjxwYXRoIGQ9Ik0xMSAxSDIuNUMxLjY4IDEgMSAxLjY4IDEgMi41djE1YzAgLjgzLjY4IDEuNSAxLjUgMS41SDE3TDExIDF6IiBmaWxsPSIjNDI4NUY0Ii8+PC9nPjxwYXRoIGNsaXAtcGF0aD0idXJsKCNiKSIgZD0iTTIuNSAxQzEuNjggMSAxIDEuNjggMSAyLjV2LjEyYzAtLjgyLjY4LTEuNSAxLjUtMS41SDExVjFIMi41eiIgZmlsbD0iI0ZGRiIgZmlsbC1vcGFjaXR5PSIuMDIiLz48cGF0aCBjbGlwLXBhdGg9InVybCgjYikiIGQ9Ik0xMSAxdi4xMmw1LjkyIDE3Ljc1SDIuNWMtLjgyIDAtMS41LS42Ny0xLjUtMS41di4xMmMwIC44NC42OCAxLjUxIDEuNSAxLjUxSDE3TDExIDF6IiBmaWxsPSIjMjEyMTIxIiBmaWxsLW9wYWNpdHk9Ii4xIi8+PGcgY2xpcC1wYXRoPSJ1cmwoI2IpIj48cGF0aCBkPSJNNy41IDEwdjEuMmgxLjk4Yy0uMDguNTItLjYgMS41MS0xLjk4IDEuNTEtMS4yIDAtMi4xNy0uOTktMi4xNy0yLjIxUzYuMyA4LjI5IDcuNSA4LjI5Yy42OCAwIDEuMTMuMjkgMS4zOS41NGwuOTUtLjkyQzkuMjQgNy4zNSA4LjQ0IDcgNy41IDcgNS41NyA3IDQgOC41NyA0IDEwLjVTNS41NyAxNCA3LjUgMTRjMi4wMiAwIDMuMzYtMS40MiAzLjM2LTMuNDIgMC0uMjMtLjAyLS40MS0uMDYtLjU4SDcuNXoiIGZpbGw9IiNFRUUiLz48cGF0aCBkPSJNNCA3aDd2N0g0eiIgZmlsbD0ibm9uZSIvPjwvZz48cmFkaWFsR3JhZGllbnQgY3g9IjEuNDU3IiBjeT0iMS40MiIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIGlkPSJlIiByPSIyOS43OTIiPjxzdG9wIG9mZnNldD0iMCIgc3RvcC1jb2xvcj0iI0ZGRiIgc3RvcC1vcGFjaXR5PSIuMSIvPjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iI0ZGRiIgc3RvcC1vcGFjaXR5PSIwIi8+PC9yYWRpYWxHcmFkaWVudD48cGF0aCBkPSJNMjEuNSA1aC05LjE3TDExIDFIMi41QzEuNjggMSAxIDEuNjggMSAyLjV2MTVjMCAuODMuNjggMS41IDEuNSAxLjVoOS4xN0wxMyAyM2g4LjVjLjgyIDAgMS41LS42OCAxLjUtMS41di0xNWMwLS44My0uNjgtMS41LTEuNS0xLjV6IiBmaWxsPSJ1cmwoI2UpIi8+PC9zdmc+"}},"time_used":17,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":17,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/56252.2b82f575ba1ceb54fa29.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:13.894Z","timestamp":1785148033894,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/56252.2b82f575ba1ceb54fa29.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:13 GMT\r\ncontent-type: text/css; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding, Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\netag: W/\"69f98b71-53a\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Tue, 05 May 2026 06:17:21 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.51\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 05/05/2026 10:16:42\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 67f81de187fd33c09f6c451b2aa9d5d2\r\ncdn-cache: HIT\r\ncontent-encoding: br\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":1338,"size_decoded":1088,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with very long lines (1338), with no line terminators","md5":"272e9884ff18ecde00e6bbe6ba06878b","sha1":"6a2d777adf9bfb4226124e67b1c8b6502a80d59c","sha256":"3dc13cb5344c62a4a6fec134fe9299cec0caec608238263f8e302db4d3349897","sha512":"9eca5419c42ab9d42e5bd3f970e2165b06e9be445886dc0d1a4e8130bfe731b076ed63b12ec6c8ec2fbb512a50ce326719575e5ddc215c8e035243acdd22625a","ssdeep":"","tlshash":"9821c888f3719fb3bf2325ac126ca42d79916eb8fdd2bae570b5961503e0bf18701614","first_seen":"2024-11-26T05:27:28.178302Z","last_seen":"2026-07-27T12:57:37.133928Z","times_seen":2828,"resource_available":false,"data":"Lmljb24td3JhcHBlci1kaWtkZXd3eDphY3RpdmUsLmljb24td3JhcHBlci1kaWtkZXd3eDpmb2N1c3tjb2xvcjp2YXIoLS11aS1saWItaWNvbi1xaS1jb2xvcix2YXIoLS11aS1saWItaWNvbi1xaS1kZWZhdWx0LWNvbG9yKSl9QG1lZGlhIChhbnktaG92ZXI6aG92ZXIpey5pY29uLXdyYXBwZXItZGlrZGV3d3g6aG92ZXJ7Y29sb3I6dmFyKC0tdWktbGliLWljb24tcWktY29sb3IsdmFyKC0tdWktbGliLWljb24tcWktZGVmYXVsdC1jb2xvcikpfX1AbWVkaWEgKGhvdmVyOmhvdmVyKSBhbmQgKHBvaW50ZXI6ZmluZSl7QG1lZGlhIChhbnktaG92ZXI6aG92ZXIpey5pY29uLXdyYXBwZXItZGlrZGV3d3g6aG92ZXJ7Y29sb3I6dmFyKC0tdWktbGliLWljb24tcWktY29sb3ItaG92ZXIsdmFyKC0tdWktbGliLWljb24tcWktZGVmYXVsdC1jb2xvci1ob3ZlcikpfX0uaWNvbi13cmFwcGVyLWRpa2Rld3d4OmFjdGl2ZXtjb2xvcjp2YXIoLS11aS1saWItaWNvbi1xaS1jb2xvci1hY3RpdmUsdmFyKC0tdWktbGliLWljb24tcWktZGVmYXVsdC1jb2xvci1hY3RpdmUpKX19LndpdGgtbGluay1kaWtkZXd3eHtjdXJzb3I6cG9pbnRlcn1AbWVkaWEgKGhvdmVyOm5vbmUpIGFuZCAocG9pbnRlcjpjb2Fyc2Upey53aXRoLXRvb2x0aXAtZGlrZGV3d3g6Zm9jdXMtdmlzaWJsZXtjb2xvcjp2YXIoLS11aS1saWItaWNvbi1xaS1jb2xvci1ob3Zlcix2YXIoLS11aS1saWItaWNvbi1xaS1kZWZhdWx0LWNvbG9yLWhvdmVyKSl9Ym9keTpoYXMoI3Rvb2x0aXAtcm9vdC1lbGVtZW50ICopIC53aXRoLXRvb2x0aXAtZGlrZGV3d3g6Zm9jdXN7Y29sb3I6dmFyKC0tdWktbGliLWljb24tcWktY29sb3ItaG92ZXIsdmFyKC0tdWktbGliLWljb24tcWktZGVmYXVsdC1jb2xvci1ob3ZlcikpfUBtZWRpYSAoYW55LWhvdmVyOmhvdmVyKXtib2R5OmhhcygjdG9vbHRpcC1yb290LWVsZW1lbnQgKikgLndpdGgtdG9vbHRpcC1kaWtkZXd3eDpob3Zlcntjb2xvcjp2YXIoLS11aS1saWItaWNvbi1xaS1jb2xvci1ob3Zlcix2YXIoLS11aS1saWItaWNvbi1xaS1kZWZhdWx0LWNvbG9yLWhvdmVyKSl9fWJvZHk6aGFzKCN0b29sdGlwLXJvb3QtZWxlbWVudCAqKSAud2l0aC10b29sdGlwLWRpa2Rld3d4OmFjdGl2ZXtjb2xvcjp2YXIoLS11aS1saWItaWNvbi1xaS1jb2xvci1hY3RpdmUsdmFyKC0tdWktbGliLWljb24tcWktZGVmYXVsdC1jb2xvci1hY3RpdmUpKX19Lm5vLWFjdGl2ZS1zdGF0ZS1kaWtkZXd3eHstLXVpLWxpYi1pY29uLXFpLWNvbG9yLWFjdGl2ZTp2YXIoLS11aS1saWItaWNvbi1xaS1jb2xvci1ob3Zlcix2YXIoLS11aS1saWItaWNvbi1xaS1kZWZhdWx0LWNvbG9yLWhvdmVyKSl9"}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"translate.google.com/gen204?sl=en\u0026nca=te_ap\u0026client=te\u0026logld=vTE_20260722","fqdn":"translate.google.com","domain":"google.com","tld":"com"},"ip":{"addr":"142.250.178.110","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://digital-assettrade.com/","date":"2026-07-27T10:27:13.957Z","timestamp":1785148033957,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.google.com","organization":""},"issuer":{"commonName":"WE2","organization":"Google Trust Services"},"validity":{"start":"Mon, 29 Jun 2026 08:37:35 GMT","end":"Mon, 21 Sep 2026 08:37:34 GMT"},"fingerprint":{"sha1":"2F:20:3B:91:88:65:20:CD:06:9D:0C:58:4D:17:6F:FC:9D:EC:41:83","sha256":"0C:7B:D3:23:E9:5B:D6:6B:F2:5C:71:91:4D:41:CE:E6:D7:1F:A2:F2:63:BA:25:70:1D:00:F3:C0:72:21:51:6D"}}},"request":{"raw":"GET /gen204?sl=en\u0026nca=te_ap\u0026client=te\u0026logld=vTE_20260722 HTTP/1.1\r\nHost: translate.google.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-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://digital-assettrade.com/\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=6, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 204 \r\ncontent-type: image/gif; charset=utf-8\r\ncache-control: no-cache, no-store, max-age=0, must-revalidate\r\npragma: no-cache\r\nexpires: Mon, 01 Jan 1990 00:00:00 GMT\r\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\ncross-origin-resource-policy: cross-origin\r\np3p: CP=\"This is not a P3P policy! See g.co/p3phelp for more info.\"\r\npermissions-policy: ch-ua-arch=*, ch-ua-bitness=*, ch-ua-full-version=*, ch-ua-full-version-list=*, ch-ua-model=*, ch-ua-wow64=*, ch-ua-form-factors=*, ch-ua-platform=*, ch-ua-platform-version=*\r\ncontent-security-policy: require-trusted-types-for 'script';report-uri /_/TranslateApiHttp/cspreport, script-src 'nonce-fcihrxZy7qa2HHUFFKH8KA' 'unsafe-inline';object-src 'none';base-uri 'self';report-uri /_/TranslateApiHttp/cspreport;worker-src 'self'\r\ncross-origin-opener-policy: same-origin\r\naccept-ch: Sec-CH-UA-Arch, Sec-CH-UA-Bitness, Sec-CH-UA-Full-Version, Sec-CH-UA-Full-Version-List, Sec-CH-UA-Model, Sec-CH-UA-WoW64, Sec-CH-UA-Form-Factors, Sec-CH-UA-Platform, Sec-CH-UA-Platform-Version\r\nreporting-endpoints: default=\"/_/TranslateApiHttp/web-reports?context=eJzj4tDikmJw1ZBiEOLhaHo65zKbwITO81MYlZSS8gvjS4oS84pzEktSi1OLylKL4o0MjMwMzI2M9AyM4wsMAAxrEkU\"\r\nserver: ESF\r\ncontent-length: 0\r\nx-xss-protection: 0\r\nx-frame-options: SAMEORIGIN\r\nx-content-type-options: nosniff\r\nset-cookie: __Secure-ENID=35.SE=LiP1QSB05Kf0rkolU1dslby7csIEzCVsktYbLI-avHXlYSpLIXzkYKf8bQZXRTU0j0BUHXLBN3clvBIwNRIl0Ix2Pz1aUPWYeEux1jcB1akMPRzxgRIVMY3CKQ4nyY37DPjN1kkKfFmH-kT0f-jlrijbOg71Pwf-vguDpO2NGbDfZRtzJQv7chw04CNjuoRapirHivcpM1v6X5MZpXoWYgxahe_CNoX6W3PM9PWLezCo; expires=Fri, 27-Aug-2027 02:45:32 GMT; path=/; domain=.google.com; Secure; HttpOnly; SameSite=lax\r\nalt-svc: h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000\r\n\r\n","headers":null,"cookies":null,"status_code":"204","status_text":"","fingerprints":null,"data":{"size":0,"size_decoded":0,"mime_type":"image/gif; charset=utf-8","magic":"","md5":"d41d8cd98f00b204e9800998ecf8427e","sha1":"da39a3ee5e6b4b0d3255bfef95601890afd80709","sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha512":"cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e","ssdeep":"","tlshash":"","first_seen":"0001-01-01T00:00:00Z","last_seen":"2026-07-27T13:01:10.036638Z","times_seen":17563461,"resource_available":true,"data":null}},"time_used":0,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":0,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/10366.07e20e7bbee27c9d5fbc.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:13.958Z","timestamp":1785148033958,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/10366.07e20e7bbee27c9d5fbc.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:13 GMT\r\ncontent-type: text/css; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding, Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\netag: W/\"69f98b75-273\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Tue, 05 May 2026 06:17:25 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.51\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 05/05/2026 10:16:42\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 257947c2ece29288e2a7d17a7ba9f4d8\r\ncdn-cache: HIT\r\ncontent-encoding: br\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":627,"size_decoded":1034,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with very long lines (627), with no line terminators","md5":"5d58fc11e377065e2e2ce19149de6728","sha1":"e2e8f933c9519c6e5964ccab1f629f4b6073cea9","sha256":"c4aac40ec27e2baca2016fee348eac9d6ef472c57c933542802b5232e6954733","sha512":"d2f9fd099b4743ed6080b2614bd2dbe5e97b62fa5a6437245aca2bc21efc494a0615b21fd83b0b977da80f532b7e87f34c29fbf4c9ccde299f75c9b0bf4cdf89","ssdeep":"","tlshash":"94f0a288a651f62b350f253e4b1ac1bc91a5a890e9402f7cb5bae2144ac8fc5a6f5428","first_seen":"2025-10-07T17:12:28.013112Z","last_seen":"2026-07-27T12:48:39.647058Z","times_seen":889,"resource_available":false,"data":"LndyYXBwZXItbXowODY2TTJ7YWxpZ24taXRlbXM6Y2VudGVyO2JvcmRlci1yYWRpdXM6NHB4O2NvbG9yOnZhcigtLXR2LWNvbG9yLXBvcHVwLWVsZW1lbnQtdGV4dCx2YXIoLS1jb2xvci1wb3B1cC1lbGVtZW50LXRleHQpKTtkaXNwbGF5OmZsZXg7aGVpZ2h0OjM4cHg7anVzdGlmeS1jb250ZW50OmNlbnRlcjt3aWR0aDozOHB4fS53cmFwcGVyLW16MDg2Nk0yLmhvdmVyZWQtbXowODY2TTJ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS10di1jb2xvci1wb3B1cC1lbGVtZW50LWJhY2tncm91bmQtaG92ZXIsdmFyKC0tY29sb3ItcG9wdXAtZWxlbWVudC1iYWNrZ3JvdW5kLWhvdmVyKSl9QG1lZGlhIChhbnktaG92ZXI6aG92ZXIpey53cmFwcGVyLW16MDg2Nk0yOmhvdmVye2JhY2tncm91bmQtY29sb3I6dmFyKC0tdHYtY29sb3ItcG9wdXAtZWxlbWVudC1iYWNrZ3JvdW5kLWhvdmVyLHZhcigtLWNvbG9yLXBvcHVwLWVsZW1lbnQtYmFja2dyb3VuZC1ob3ZlcikpfX0ud3JhcHBlci1tejA4NjZNMjphY3RpdmV7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS10di1jb2xvci1wb3B1cC1lbGVtZW50LWJhY2tncm91bmQtaG92ZXIsdmFyKC0tY29sb3ItY29udGFpbmVyLWZpbGwtcHJpbWFyeS1uZXV0cmFsLWxpZ2h0KSl9"}},"time_used":4,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":4,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/83488.2a35377fd54f0af40874.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.502Z","timestamp":1785148034502,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/83488.2a35377fd54f0af40874.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\ncontent-type: text/css; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a608300-4c6\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Wed, 22 Jul 2026 08:44:48 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/22/2026 11:01:41\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 418226413788e9d3cd510403ddb880a3\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":1222,"size_decoded":1161,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with very long lines (1222), with no line terminators","md5":"51c1349c8439d6a672d6d84a4856594d","sha1":"4eee67924b46bf903b0e51c77931d6ae759a7802","sha256":"93fc2457233c811063c8be9ad30dcb6250b02857cbf8dad77d4226067fcd4ca6","sha512":"e2ea45b32638ed390e55a1b75bd589d1d8566bc3463ae462003a2566fef6b7b94bc1cad80cac4e151794623d40d2291d3bec4fe3e2e89ec5745015b0e3564516","ssdeep":"","tlshash":"be214575f1f6c228390beb56970d7d4eb29c6b48bf0a9413f083c508c48be987c69a81","first_seen":"2026-07-22T17:32:47.98134Z","last_seen":"2026-07-27T12:51:16.011958Z","times_seen":87,"resource_available":false,"data":"W2RhdGEtdGhlbWU9bGlnaHRdey0tXzAtbVpBSDp2YXIoLS1jb2xvci1jb2xkLWdyYXktMTAwKTstLV8xLW1aQUg6dmFyKC0tY29sb3ItY29sZC1ncmF5LTE1MCl9W2RhdGEtdGhlbWU9ZGFya117LS1fMC1tWkFIOnZhcigtLWNvbG9yLWNvbGQtZ3JheS04MDApOy0tXzEtbVpBSDp2YXIoLS1jb2xvci1jb2xkLWdyYXktNzAwKX0uZGl2aWRlci1Db0EyZDVDN3tib3JkZXI6bm9uZTtib3JkZXItY29sb3I6dmFyKC0tdWktbGliLWRpdmlkZXItY29sb3IsdmFyKC0tdWktbGliLWJ1dHRvbi1kZWZhdWx0LWNvbG9yLWJvcmRlcikpO21hcmdpbjowfS5kaXZpZGVyLUNvQTJkNUM3Lm9yaWVudGF0aW9uLWhvcml6b250YWwtQ29BMmQ1Qzd7Ym9yZGVyLXRvcC1zdHlsZTpzb2xpZDt3aWR0aDoxMDAlfS5kaXZpZGVyLUNvQTJkNUM3Lm9yaWVudGF0aW9uLXZlcnRpY2FsLUNvQTJkNUM3e2JvcmRlci1pbmxpbmUtc3RhcnQtc3R5bGU6c29saWQ7ZGlzcGxheTppbmxpbmUtYmxvY2s7aGVpZ2h0OjEwMCU7bWluLWhlaWdodDoyY2g7dmVydGljYWwtYWxpZ246c3VifS5kaXZpZGVyLUNvQTJkNUM3LmZpdC1jb250ZW50LUNvQTJkNUM3Lm9yaWVudGF0aW9uLWhvcml6b250YWwtQ29BMmQ1Qzd7d2lkdGg6YXV0b30uZGl2aWRlci1Db0EyZDVDNy5maXQtY29udGVudC1Db0EyZDVDNy5vcmllbnRhdGlvbi12ZXJ0aWNhbC1Db0EyZDVDN3toZWlnaHQ6YXV0b30uZGl2aWRlci1Db0EyZDVDNy5zaXplLXhzbWFsbC1Db0EyZDVDN3tib3JkZXItd2lkdGg6MXB4fS5kaXZpZGVyLUNvQTJkNUM3LnNpemUtc21hbGwtQ29BMmQ1Qzd7Ym9yZGVyLXdpZHRoOjJweH0uZGl2aWRlci1Db0EyZDVDNy5zaXplLW1lZGl1bS1Db0EyZDVDN3tib3JkZXItd2lkdGg6M3B4fS5kaXZpZGVyLUNvQTJkNUM3LnNpemUtbGFyZ2UtQ29BMmQ1Qzd7Ym9yZGVyLXdpZHRoOjRweH0uZGl2aWRlci1Db0EyZDVDNy5zaXplLXhsYXJnZS1Db0EyZDVDN3tib3JkZXItd2lkdGg6NXB4fS5kaXZpZGVyLUNvQTJkNUM3LnNpemUteHhsYXJnZS1Db0EyZDVDN3tib3JkZXItd2lkdGg6NnB4fS5kaXZpZGVyLUNvQTJkNUM3LnR5cGUtcHJpbWFyeS1Db0EyZDVDN3stLXVpLWxpYi1idXR0b24tZGVmYXVsdC1jb2xvci1ib3JkZXI6dmFyKC0tXzEtbVpBSCl9LmRpdmlkZXItQ29BMmQ1QzcudHlwZS1zZWNvbmRhcnktQ29BMmQ1Qzd7LS11aS1saWItYnV0dG9uLWRlZmF1bHQtY29sb3ItYm9yZGVyOnZhcigtLV8wLW1aQUgpfQ=="}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/1676.34884beb8e6dc4c6c0b1.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.524Z","timestamp":1785148034524,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/1676.34884beb8e6dc4c6c0b1.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\ncontent-type: text/css; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a58ab11-2ee\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Thu, 16 Jul 2026 09:57:37 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/16/2026 11:03:21\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 605e4a864e0a863d9eb645503698f1e6\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":750,"size_decoded":957,"mime_type":"text/css; charset=utf-8","magic":"ASCII text","md5":"2632199c98129948ba24975de6a4cee8","sha1":"82a2d79a460678d39482b2df940a21f7177ade40","sha256":"caa9bc8415c74f92a48a4fdd430e1c0cdf6eab1ff81861a3ecb151196a982ec4","sha512":"01348d63394733bbe814bb6e0c4ceb17d75a380fecc3b2e339eb4a403103fafcc831f7ec9b99239d764d4d4b3b2e2840eb63e687286ed89ad97b68208b17419e","ssdeep":"","tlshash":"4f01044ad880e3f3782622ec6314526b06d19e15b2865fc777d8c00348cc4f300b7abe","first_seen":"2026-07-17T03:30:51.175342Z","last_seen":"2026-07-27T12:51:16.022126Z","times_seen":109,"resource_available":false,"data":"LnByaW1hcnktWThvRlRfUFp7LS11aS1saWItcHJpdmF0ZS1jaGVja2JveFZpZXdJbXBsLWNvbG9yLWJvcmRlcjp2YXIoLS1jb2xvci1jb250YWluZXItZmlsbC1wcmltYXJ5LW5ldXRyYWwtZXh0cmEtYm9sZCk7LS11aS1saWItcHJpdmF0ZS1jaGVja2JveFZpZXdJbXBsLWNvbG9yLWJveDp2YXIoCgkJLS11aS1saWItY2hlY2tib3gtY29sb3IsdmFyKC0tY29sb3ItY29udGFpbmVyLWZpbGwtcHJpbWFyeS1uZXV0cmFsLWV4dHJhLWJvbGQpCgkpOy0tdWktbGliLXByaXZhdGUtY2hlY2tib3hWaWV3SW1wbC1jb2xvci1tYXJrOnZhcigKCQktLXVpLWxpYi1jaGVja2JveC1tYXJrLWNvbG9yLHZhcigtLWNvbG9yLWNvbnRhaW5lci1maWxsLXF1aW5hcnktaW52ZXJzZSkKCSl9LmRhbmdlci1ZOG9GVF9QWnstLXVpLWxpYi1wcml2YXRlLWNoZWNrYm94Vmlld0ltcGwtY29sb3ItYm9yZGVyOnZhcigtLWNvbG9yLWNvbnRhaW5lci1maWxsLXByaW1hcnktZGFuZ2VyLWJvbGQpOy0tdWktbGliLXByaXZhdGUtY2hlY2tib3hWaWV3SW1wbC1jb2xvci1ib3g6dmFyKAoJCS0tdWktbGliLWNoZWNrYm94LWNvbG9yLHZhcigtLWNvbG9yLWNvbnRhaW5lci1maWxsLXByaW1hcnktZGFuZ2VyLWJvbGQpCgkpOy0tdWktbGliLXByaXZhdGUtY2hlY2tib3hWaWV3SW1wbC1jb2xvci1tYXJrOnZhcigKCQktLXVpLWxpYi1jaGVja2JveC1tYXJrLWNvbG9yLHZhcigtLWNvbG9yLWNvbnRhaW5lci1maWxsLXF1YXRlcm5hcnktaW52ZXJzZSkKCSl9"}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/77578.f6db460ed1e8ce31ea86.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.555Z","timestamp":1785148034555,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/77578.f6db460ed1e8ce31ea86.js HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a61b1a8-69be\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Thu, 23 Jul 2026 06:16:08 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/23/2026 10:17:30\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 5257c7d14a01fbc23e60fce907a160f9\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":27070,"size_decoded":10712,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (3072)","md5":"2b6fab5d43180a44762a23007cc74818","sha1":"57a42431bd8f0021426278639e1480f60600ddbc","sha256":"4daa7f339a6ee290609f5a83e28d23ee34feaa429a33d7403cf4890502acabfd","sha512":"482fc0dcff39aea620d385e9ecbe90053b7ed726e6c51f9e14dddd7f150263071d648a4c7ba8c7eb4637bee7761d193c72638a4019a4214ae774a41f8a4d53b8","ssdeep":"768:8LZLvioqCZ0JL2sWfliPTkeX0dnor9s+htUQJXRl7m:8BwL2dIAYrC+DT53K","tlshash":"4ec23a913111a49d96fbe2eed02b428ef3323659790a0e75f02c9cec11cdb693175b7a","first_seen":"2026-07-23T14:00:31.442829Z","last_seen":"2026-07-27T12:48:39.796312Z","times_seen":58,"resource_available":true,"data":"KHNlbGYud2VicGFja0NodW5rdHJhZGluZ3ZpZXc9c2VsZi53ZWJwYWNrQ2h1bmt0cmFkaW5ndmlld3x8W10pLnB1c2goW1szNTk2NCw2MzU5NSw3NzU3OF0sezk1ODYzOShlKXtlLmV4cG9ydHM9e21lbnVXcmFwOiJtZW51V3JhcC1sQkl4SXd0eiIsaXNNZWFzdXJpbmc6ImlzTWVhc3VyaW5nLWxCSXhJd3R6IixzY3JvbGxXcmFwOiJzY3JvbGxXcmFwLWxCSXhJd3R6Iixtb21lbnR1bUJhc2VkOiJtb21lbnR1bUJhc2VkLWxCSXhJd3R6IixtZW51Qm94OiJtZW51Qm94LWxCSXhJd3R6Iixpc0hpZGRlbjoiaXNIaWRkZW4tbEJJeEl3dHoifX0sNDcwMjk1KGUpe2UuZXhwb3J0cz17InRhYmxldC1zbWFsbC1icmVha3BvaW50IjoiKG1heC13aWR0aDogNDQwcHgpIixpdGVtOiJpdGVtLU1pMF90NXVOIixob3ZlcmVkOiJob3ZlcmVkLU1pMF90NXVOIixpc0Rpc2FibGVkOiJpc0Rpc2FibGVkLU1pMF90NXVOIixpc0FjdGl2ZToiaXNBY3RpdmUtTWkwX3Q1dU4iLHNob3J0Y3V0OiJzaG9ydGN1dC1NaTBfdDV1TiIsdG9vbGJveDoidG9vbGJveC1NaTBfdDV1TiIsd2l0aEljb246IndpdGhJY29uLU1pMF90NXVOIiwicm91bmQtaWNvbiI6InJvdW5kLWljb24tTWkwX3Q1dU4iLGljb246Imljb24tTWkwX3Q1dU4iLHN0YXJ0U2xvdDoic3RhcnRTbG90LU1pMF90NXVOIixsYWJlbFJvdzoibGFiZWxSb3ctTWkwX3Q1dU4iLGxhYmVsOiJsYWJlbC1NaTBfdDV1TiIsc2hvd09uSG92ZXI6InNob3dPbkhvdmVyLU1pMF90NXVOIiwiZGlzY2xvc3VyZS1pdGVtLWNpcmNsZS1sb2dvIjoiZGlzY2xvc3VyZS1pdGVtLWNpcmNsZS1sb2dvLU1pMF90NXVOIixzaG93T25Gb2N1czoic2hvd09uRm9jdXMtTWkwX3Q1dU4ifX0sMzE2NTQ5KGUpe2UuZXhwb3J0cz17bGlua0l0ZW06ImxpbmtJdGVtLVNSa0ZIQWdnIn19LDIxNjQwOShlKXtlLmV4cG9ydHM9e3JvdW5kVGFiQnV0dG9uOiJyb3VuZFRhYkJ1dHRvbi1XYTZUbUdOMyIsZGlzYWJsZUZvY3VzT3V0bGluZToiZGlzYWJsZUZvY3VzT3V0bGluZS1XYTZUbUdOMyIsZW5hYmxlQ3Vyc29yUG9pbnRlcjoiZW5hYmxlQ3Vyc29yUG9pbnRlci1XYTZUbUdOMyIsbGFyZ2U6ImxhcmdlLVdhNlRtR04zIix3aXRoU3RhcnRJY29uOiJ3aXRoU3RhcnRJY29uLVdhNlRtR04zIixpY29uT25seToiaWNvbk9ubHktV2E2VG1HTjMiLHdpdGhFbmRJY29uOiJ3aXRoRW5kSWNvbi1XYTZUbUdOMyIsc3RhcnRJY29uV3JhcDoic3RhcnRJY29uV3JhcC1XYTZUbUdOMyIsZW5kSWNvbldyYXA6ImVuZEljb25XcmFwLVdhNlRtR04zIixzbWFsbDoic21hbGwtV2E2VG1HTjMiLHhzbWFsbDoieHNtYWxsLVdhNlRtR04zIixwcmltYXJ5OiJwcmltYXJ5LVdhNlRtR04zIixkaXNhYmxlZDoiZGlzYWJsZWQtV2E2VG1HTjMiLHNlbGVjdGVkOiJzZWxlY3RlZC1XYTZUbUdOMyIsZGlzYWJsZUFjdGl2ZVN0YXRlU3R5bGVzOiJkaXNhYmxlQWN0aXZlU3RhdGVTdHlsZXMtV2E2VG1HTjMiLGdob3N0OiJnaG9zdC1XYTZUbUdOMyIsZmFrZToiZmFrZS1XYTZUbUdOMyIsY2FyZXQ6ImNhcmV0LVdhNlRtR04zIix2aXN1YWxseUhpZGRlbjoidmlzdWFsbHlIaWRkZW4tV2E2VG1HTjMiLGNvbnRlbnQ6ImNvbnRlbnQtV2E2VG1HTjMifX0sNDc4MzkoZSl7ZS5leHBvcnRzPXtzY3JvbGxXcmFwOiJzY3JvbGxXcmFwLWhyUVZfQlpzIixvdmVyZmxvd1Njcm9sbDoib3ZlcmZsb3dTY3JvbGwtaHJRVl9CWnMiLHJvdW5kVGFiczoicm91bmRUYWJzLWhyUVZfQlpzIixjZW50ZXI6ImNlbnRlci1oclFWX0JacyIsb3ZlcmZsb3dXcmFwOiJvdmVyZmxvd1dyYXAtaHJRVl9CWnMiLHN0YXJ0OiJzdGFydC1oclFWX0JacyJ9fSw3NjEwOTMoZSl7ZS5leHBvcnRzPXt0aXRsZToidGl0bGUtbmZrR203TkcifX0sMzYyNzkzKGUpe2UuZXhwb3J0cz17eHh4c21hbGw6Inh4eHNtYWxsLUFmZDZ0NFpqIix4eHNtYWxsOiJ4eHNtYWxsLUFmZDZ0NFpqIix4c21hbGw6InhzbWFsbC1BZmQ2dDRaaiIsc21hbGw6InNtYWxsLUFmZDZ0NFpqIixtZWRpdW06Im1lZGl1bS1BZmQ2dDRaaiIsbGFyZ2U6ImxhcmdlLUFmZDZ0NFpqIix4bGFyZ2U6InhsYXJnZS1BZmQ2dDRaaiIsY291bnRlcjoiY291bnRlci1BZmQ2dDRaaiIsImNvbG9yLWRhbmdlciI6ImNvbG9yLWRhbmdlci1BZmQ2dDRaaiIsImNvbG9yLWFjY2VudCI6ImNvbG9yLWFjY2VudC1BZmQ2dDRaaiIsImNvbG9yLWFjY2VudC1saWdodCI6ImNvbG9yLWFjY2VudC1saWdodC1BZmQ2dDRaaiIsImNvbG9yLW5ldXRyYWwtYm9sZCI6ImNvbG9yLW5ldXRyYWwtYm9sZC1BZmQ2dDRaaiIsImNvbG9yLW5ldXRyYWwiOiJjb2xvci1uZXV0cmFsLUFmZDZ0NFpqIiwiYm9yZGVyQ29sb3ItcHJpbWFyeSI6ImJvcmRlckNvbG9yLXByaW1hcnktQWZkNnQ0WmoiLCJib3JkZXJDb2xvci1zZWNvbmRhcnkiOiJib3JkZXJDb2xvci1zZWNvbmRhcnktQWZkNnQ0WmoiLCJib3JkZXJDb2xvci10ZXJ0aWFyeSI6ImJvcmRlckNvbG9yLXRlcnRpYXJ5LUFmZDZ0NFpqIixkaXNhYmxlZDoiZGlzYWJsZWQtQWZkNnQ0WmoifX0sMTkzODQ3KGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse1BvcHVwTWVudURpc2Nsb3N1cmVWaWV3OigpPT51fSk7dmFyIG89big3Nzk0NzQpLHI9big4MDk0MzYpLGE9big4MzU5NjQpLGw9bigxMzg2MzgpO2NvbnN0IHM9e3g6MCx5OjB9O2Z1bmN0aW9uIGkoZSx0LG4pe3JldHVybigwLG8udXNlQ2FsbGJhY2spKCgoKT0+ZnVuY3Rpb24oZSx0LHt4Om49cy54LHk6bz1zLnl9PXMpe2NvbnN0IHI9KDAsbC5lbnN1cmVOb3ROdWxsKShlKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxhPXt4OnIubGVmdCtuLHk6ci50b3Arci5oZWlnaHQrbyxpbmRlbnRGcm9tV2luZG93Ont0b3A6NCxib3R0b206NCxsZWZ0OjQscmlnaHQ6NH19O3JldHVybiB0JiYoYS5vdmVycmlkZVdpZHRoPXIud2lkdGgpLGF9KGUuY3VycmVudCx0LG4pKSxbZSx0XSl9Y29uc3QgYz1wYXJzZUludChyWyJzaXplLWhlYWRlci1oZWlnaHQiXSk7ZnVuY3Rpb24gdShlKXsKY29uc3R7YnV0dG9uOnQscG9wdXBDaGlsZHJlbjpuLGJ1dHRvblJlZjpyLGxpc3Rib3hJZDpsLGxpc3Rib3hDbGFzc05hbWU6cyxsaXN0Ym94VGFiSW5kZXg6dSxtYXRjaEJ1dHRvbkFuZExpc3Rib3hXaWR0aHM6ZCxpc09wZW5lZDpoLHNjcm9sbFdyYXBSZWZlcmVuY2U6bSxsaXN0Ym94UmVmZXJlbmNlOnAsb25DbG9zZTpmLG9uT3BlbjpiLG9uTGlzdGJveEZvY3VzOnYsb25MaXN0Ym94Qmx1cjpnLG9uTGlzdGJveEtleURvd246QyxsaXN0Ym94QXJpYTp4LHJlcG9zaXRpb25PblNjcm9sbDp3PSEwLGNsb3NlT25IZWFkZXJPdmVybGFwOnk9ITEscG9wdXBQb3NpdGlvbkNvcnJlY3Rpb246Xz17eDowLHk6MH0scG9wdXBQb3NpdGlvbjpOLGRhdGFRYUlkOlN9PWUsTT1pKHIsZCxfKSxSPXk/YzowO3JldHVybiBvLmNyZWF0ZUVsZW1lbnQoby5GcmFnbWVudCxudWxsLHQsby5jcmVhdGVFbGVtZW50KGEuUG9wdXBNZW51LHsuLi54LGRhdGFRYUlkOlMsaWQ6bCxjbGFzc05hbWU6cyx0YWJJbmRleDp1LGlzT3BlbmVkOmgscG9zaXRpb246Tnx8TSxyZXBvc2l0aW9uT25TY3JvbGw6dyxvbkNsb3NlOmYsb25PcGVuOmIsZG9Ob3RDbG9zZU9uOnIuY3VycmVudCxyZWZlcmVuY2U6cCxzY3JvbGxXcmFwUmVmZXJlbmNlOm0sb25Gb2N1czp2LG9uQmx1cjpnLG9uS2V5RG93bjpDLGNsb3NlT25TY3JvbGxPdXRzaWRlT2Zmc2V0OlJ9LG4pKX19LDY4MTIyNChlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtNZW51Q29udGV4dDooKT0+b30pO2NvbnN0IG89big3Nzk0NzQpLmNyZWF0ZUNvbnRleHQobnVsbCl9LDE0NTE1MChlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtERUZBVUxUX01FTlVfVEhFTUU6KCk9PmIsTWVudTooKT0+Z30pO3ZhciBvPW4oNzc5NDc0KSxyPW4oOTE0NDg3KSxhPW4ubihyKSxsPW4oMTM4NjM4KSxzPW4oNjA3ODMyKSxpPW4oOTAzNDIpLGM9big4OTEyMDkpLHU9big2NDA3NDQpLGQ9big1MTg3NSksaD1uKDcyNzA5KSxtPW4oMjc2MDE5KSxwPW4oNjgxMjI0KSxmPW4oOTU4NjM5KTtjb25zdCBiPWY7dmFyIHY7IWZ1bmN0aW9uKGUpe2VbZS5JbmRlbnRGcm9tV2luZG93PTBdPSJJbmRlbnRGcm9tV2luZG93In0odnx8KHY9e30pKTtjbGFzcyBnIGV4dGVuZHMgby5QdXJlQ29tcG9uZW50e2NvbnN0cnVjdG9yKGUpe3N1cGVyKGUpLHRoaXMuX2NvbnRhaW5lclJlZj1udWxsLHRoaXMuX3Njcm9sbFdyYXBSZWY9bnVsbCx0aGlzLl9yYWY9bnVsbCx0aGlzLl9zY3JvbGxSYWY9bnVsbCx0aGlzLl9zY3JvbGxUaW1lb3V0PXZvaWQgMCx0aGlzLl9tYW5hZ2VyPW5ldyBpLk92ZXJsYXBNYW5hZ2VyLHRoaXMuX2hvdGtleXM9bnVsbCx0aGlzLl9zY3JvbGw9MCx0aGlzLl9oYW5kbGVDb250YWluZXJSZWY9ZT0+e3RoaXMuX2NvbnRhaW5lclJlZj1lLHRoaXMucHJvcHMucmVmZXJlbmNlJiYoImZ1bmN0aW9uIj09dHlwZW9mIHRoaXMucHJvcHMucmVmZXJlbmNlJiZ0aGlzLnByb3BzLnJlZmVyZW5jZShlKSwib2JqZWN0Ij09dHlwZW9mIHRoaXMucHJvcHMucmVmZXJlbmNlJiYodGhpcy5wcm9wcy5yZWZlcmVuY2UuY3VycmVudD1lKSl9LHRoaXMuX2hhbmRsZVNjcm9sbFdyYXBSZWY9ZT0+e3RoaXMuX3Njcm9sbFdyYXBSZWY9ZSwiZnVuY3Rpb24iPT10eXBlb2YgdGhpcy5wcm9wcy5zY3JvbGxXcmFwUmVmZXJlbmNlJiZ0aGlzLnByb3BzLnNjcm9sbFdyYXBSZWZlcmVuY2UoZSksIm9iamVjdCI9PXR5cGVvZiB0aGlzLnByb3BzLnNjcm9sbFdyYXBSZWZlcmVuY2UmJih0aGlzLnByb3BzLnNjcm9sbFdyYXBSZWZlcmVuY2UuY3VycmVudD1lKX0sdGhpcy5faGFuZGxlQ3VzdG9tUmVtZWFzdXJlRGVsZWdhdGU9KCk9Pnt0aGlzLl9yZXNpemVGb3JjZWQoKSx0aGlzLl9oYW5kbGVNZWFzdXJlKCl9LHRoaXMuX2hhbmRsZU1lYXN1cmU9KHtjYWxsYmFjazplLGZvcmNlUmVjYWxjUG9zaXRpb246dH09e30pPT57aWYodGhpcy5zdGF0ZS5pc01lYXN1cmVWYWxpZCYmIXQpcmV0dXJuO2NvbnN0e3Bvc2l0aW9uOm59PXRoaXMucHJvcHMsbz0oMCxsLmVuc3VyZU5vdE51bGwpKHRoaXMuX2NvbnRhaW5lclJlZik7bGV0IHI9by5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtjb25zdCBhPWRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQscz1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50V2lkdGgsaT10aGlzLnByb3BzLmNsb3NlT25TY3JvbGxPdXRzaWRlT2Zmc2V0Pz8wO2xldCBjPWEtMC1pO2NvbnN0IGQ9ci5oZWlnaHQ+YztpZihkKXsoMCxsLmVuc3VyZU5vdE51bGwpKHRoaXMuX3Njcm9sbFdyYXBSZWYpLnN0eWxlLm92ZXJmbG93WT0ic2Nyb2xsIixyPW8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCl9Y29uc3R7d2lkdGg6aCxoZWlnaHQ6bX09cixwPSJmdW5jdGlvbiI9PXR5cGVvZiBuP24oe2NvbnRlbnRXaWR0aDpoLGNvbnRlbnRIZWlnaHQ6bSxhdmFpbGFibGVXaWR0aDpzLGF2YWlsYWJsZUhlaWdodDphfSk6bixmPXA/LmluZGVudEZyb21XaW5kb3c/LmxlZnQ/PzAsYj1zLShwLm92ZXJyaWRlV2lkdGg/P2gpLShwPy5pbmRlbnRGcm9tV2luZG93Py5yaWdodD8/MCksdj0oMCx1LmNsYW1wKShwLngsZixNYXRoLm1heChmLGIpKSxnPShwPy5pbmRlbnRGcm9tV2luZG93Py50b3A/PzApK2ksQz1hLShwLm92ZXJyaWRlSGVpZ2h0Pz9tKS0ocD8uaW5kZW50RnJvbVdpbmRvdz8uYm90dG9tPz8wKTtsZXQgeD0oMCx1LmNsYW1wKShwLnksZyxNYXRoLm1heChnLEMpKTtpZihwLmZvcmJpZENvcnJlY3RZQ29vcmQmJng8cC55JiYoYy09cC55LXgseD1wLnkpLHQmJnZvaWQgMCE9PXRoaXMucHJvcHMuY2xvc2VPblNjcm9sbE91dHNpZGVPZmZzZXQmJnAueTw9dGhpcy5wcm9wcy5jbG9zZU9uU2Nyb2xsT3V0c2lkZU9mZnNldClyZXR1cm4gdm9pZCB0aGlzLl9oYW5kbGVHbG9iYWxDbG9zZSghMCk7Y29uc3Qgdz1wLm92ZXJyaWRlSGVpZ2h0Pz8oZD9jOnZvaWQgMCk7dGhpcy5zZXRTdGF0ZSh7YXBwZWFyaW5nTWVudUhlaWdodDp0P3RoaXMuc3RhdGUuYXBwZWFyaW5nTWVudUhlaWdodDp3LGFwcGVhcmluZ01lbnVXaWR0aDp0P3RoaXMuc3RhdGUuYXBwZWFyaW5nTWVudVdpZHRoOnAub3ZlcnJpZGVXaWR0aCwKYXBwZWFyaW5nUG9zaXRpb246e3g6dix5Onh9LGlzTWVhc3VyZVZhbGlkOiEwfSwoKCk9Pnt0aGlzLnByb3BzLmRvTm90UmVzdG9yZVBvc2l0aW9ufHx0aGlzLl9yZXN0b3JlU2Nyb2xsUG9zaXRpb24oKSxlJiZlKCl9KSl9LHRoaXMuX3Jlc3RvcmVTY3JvbGxQb3NpdGlvbj0oKT0+e2NvbnN0IGU9KDAsbC5lbnN1cmVOb3ROdWxsKSh0aGlzLl9zY3JvbGxXcmFwUmVmKTtlLnNjcm9sbFRvcD10aGlzLl9zY3JvbGw7Y29uc3QgdD1kb2N1bWVudC5hY3RpdmVFbGVtZW50LG49KDAsbC5lbnN1cmVOb3ROdWxsKSh0aGlzLl9jb250YWluZXJSZWYpO2lmKHQgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCYmbi5jb250YWlucyh0KSYmIXRoaXMuX2lzRWxlbWVudEZ1bGx5VmlzaWJsZSh0LGUpKXRyeXt0LnNjcm9sbEludG9WaWV3KCl9Y2F0Y2goZSl7fX0sdGhpcy5faXNFbGVtZW50RnVsbHlWaXNpYmxlPShlLHQpPT57Y29uc3Qgbj1lLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLG89dC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtyZXR1cm4gbi50b3A+PW8udG9wJiZuLmJvdHRvbTw9by5ib3R0b219LHRoaXMuX3Jlc2l6ZUZvcmNlZD0oKT0+e3RoaXMuc2V0U3RhdGUoe2FwcGVhcmluZ01lbnVIZWlnaHQ6dm9pZCAwLGFwcGVhcmluZ01lbnVXaWR0aDp2b2lkIDAsYXBwZWFyaW5nUG9zaXRpb246dm9pZCAwLGlzTWVhc3VyZVZhbGlkOnZvaWQgMH0pfSx0aGlzLl9yZXNpemU9KCk9PntudWxsPT09dGhpcy5fcmFmJiYodGhpcy5fcmFmPXJlcXVlc3RBbmltYXRpb25GcmFtZSgoKCk9Pnt0aGlzLnNldFN0YXRlKHthcHBlYXJpbmdNZW51SGVpZ2h0OnZvaWQgMCxhcHBlYXJpbmdNZW51V2lkdGg6dm9pZCAwLGFwcGVhcmluZ1Bvc2l0aW9uOnZvaWQgMCxpc01lYXN1cmVWYWxpZDp2b2lkIDB9KSx0aGlzLl9yYWY9bnVsbH0pKSl9LHRoaXMuX2hhbmRsZUdsb2JhbENsb3NlPWU9Pnt0aGlzLnByb3BzLm9uQ2xvc2UoZSl9LHRoaXMuX2hhbmRsZVNsb3Q9ZT0+e3RoaXMuX21hbmFnZXIuc2V0Q29udGFpbmVyKGUpfSx0aGlzLl9oYW5kbGVTY3JvbGw9KCk9Pnt0aGlzLl9zY3JvbGw9KDAsbC5lbnN1cmVOb3ROdWxsKSh0aGlzLl9zY3JvbGxXcmFwUmVmKS5zY3JvbGxUb3B9LHRoaXMuX2hhbmRsZVNjcm9sbE91dHNpZGVFbmQ9KCk9PntjbGVhclRpbWVvdXQodGhpcy5fc2Nyb2xsVGltZW91dCksdGhpcy5fc2Nyb2xsVGltZW91dD1zZXRUaW1lb3V0KCgoKT0+e3RoaXMuX2hhbmRsZU1lYXN1cmUoe2ZvcmNlUmVjYWxjUG9zaXRpb246ITB9KX0pLDgwKX0sdGhpcy5faGFuZGxlU2Nyb2xsT3V0c2lkZT1lPT57ZS50YXJnZXQhPT10aGlzLl9zY3JvbGxXcmFwUmVmJiYodGhpcy5faGFuZGxlU2Nyb2xsT3V0c2lkZUVuZCgpLG51bGw9PT10aGlzLl9zY3JvbGxSYWYmJih0aGlzLl9zY3JvbGxSYWY9cmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgoKT0+e3RoaXMuX2hhbmRsZU1lYXN1cmUoe2ZvcmNlUmVjYWxjUG9zaXRpb246ITB9KSx0aGlzLl9zY3JvbGxSYWY9bnVsbH0pKSkpfSx0aGlzLnN0YXRlPXt9fWNvbXBvbmVudERpZE1vdW50KCl7dGhpcy5faGFuZGxlTWVhc3VyZSh7Y2FsbGJhY2s6dGhpcy5wcm9wcy5vbk9wZW59KTtjb25zdHtjdXN0b21DbG9zZURlbGVnYXRlOmU9bS5nbG9iYWxDbG9zZURlbGVnYXRlLGN1c3RvbVJlbWVhc3VyZURlbGVnYXRlOnR9PXRoaXMucHJvcHM7ZS5zdWJzY3JpYmUodGhpcyx0aGlzLl9oYW5kbGVHbG9iYWxDbG9zZSksdD8uc3Vic2NyaWJlKG51bGwsdGhpcy5faGFuZGxlQ3VzdG9tUmVtZWFzdXJlRGVsZWdhdGUpLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJyZXNpemUiLHRoaXMuX3Jlc2l6ZSk7Y29uc3Qgbj1udWxsIT09dGhpcy5jb250ZXh0O3RoaXMuX2hvdGtleXN8fG58fCh0aGlzLl9ob3RrZXlzPWguY3JlYXRlR3JvdXAoe2Rlc2M6IlBvcHVwIG1lbnUifSksdGhpcy5faG90a2V5cy5hZGQoe2Rlc2M6IkNsb3NlIixob3RrZXk6MjcsaGFuZGxlcjooKT0+e3RoaXMucHJvcHMub25LZXlib2FyZENsb3NlJiZ0aGlzLnByb3BzLm9uS2V5Ym9hcmRDbG9zZSgpLHRoaXMuX2hhbmRsZUdsb2JhbENsb3NlKCl9fSkpLHRoaXMucHJvcHMucmVwb3NpdGlvbk9uU2Nyb2xsJiZ3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigic2Nyb2xsIix0aGlzLl9oYW5kbGVTY3JvbGxPdXRzaWRlLHtjYXB0dXJlOiEwfSl9Y29tcG9uZW50RGlkVXBkYXRlKCl7dGhpcy5faGFuZGxlTWVhc3VyZSgpfWNvbXBvbmVudFdpbGxVbm1vdW50KCl7Y29uc3R7Y3VzdG9tQ2xvc2VEZWxlZ2F0ZTplPW0uZ2xvYmFsQ2xvc2VEZWxlZ2F0ZSxjdXN0b21SZW1lYXN1cmVEZWxlZ2F0ZTp0fT10aGlzLnByb3BzO2UudW5zdWJzY3JpYmUodGhpcyx0aGlzLl9oYW5kbGVHbG9iYWxDbG9zZSksdD8udW5zdWJzY3JpYmUobnVsbCx0aGlzLl9oYW5kbGVDdXN0b21SZW1lYXN1cmVEZWxlZ2F0ZSksd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsdGhpcy5fcmVzaXplKSx3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigic2Nyb2xsIix0aGlzLl9oYW5kbGVTY3JvbGxPdXRzaWRlLHtjYXB0dXJlOiEwfSksdGhpcy5faG90a2V5cyYmKHRoaXMuX2hvdGtleXMuZGVzdHJveSgpLHRoaXMuX2hvdGtleXM9bnVsbCksbnVsbCE9PXRoaXMuX3JhZiYmKGNhbmNlbEFuaW1hdGlvbkZyYW1lKHRoaXMuX3JhZiksdGhpcy5fcmFmPW51bGwpLG51bGwhPT10aGlzLl9zY3JvbGxSYWYmJihjYW5jZWxBbmltYXRpb25GcmFtZSh0aGlzLl9zY3JvbGxSYWYpLHRoaXMuX3Njcm9sbFJhZj1udWxsKSx0aGlzLl9zY3JvbGxUaW1lb3V0JiZjbGVhclRpbWVvdXQodGhpcy5fc2Nyb2xsVGltZW91dCl9cmVuZGVyKCl7CmNvbnN0e2lkOmUscm9sZTp0LCJhcmlhLWxhYmVsIjpuLCJhcmlhLWxhYmVsbGVkYnkiOnIsImFyaWEtYWN0aXZlZGVzY2VuZGFudCI6bCwiYXJpYS1oaWRkZW4iOmksImFyaWEtZGVzY3JpYmVkYnkiOnUsImFyaWEtaW52YWxpZCI6aCxjaGlsZHJlbjptLG1pbldpZHRoOmIsdGhlbWU6dj1mLGNsYXNzTmFtZTpnLG1heEhlaWdodDp4LG9uTW91c2VPdmVyOncsb25Nb3VzZU91dDp5LG9uS2V5RG93bjpfLG9uRm9jdXM6TixvbkJsdXI6U309dGhpcy5wcm9wcyx7YXBwZWFyaW5nTWVudUhlaWdodDpNLGFwcGVhcmluZ01lbnVXaWR0aDpSLGFwcGVhcmluZ1Bvc2l0aW9uOkUsaXNNZWFzdXJlVmFsaWQ6VH09dGhpcy5zdGF0ZSxJPXsiLS11aS1raXQtbWVudS1tYXgtd2lkdGgiOmAke0UmJkUueH1weGAsbWF4V2lkdGg6ImNhbGMoMTAwdncgLSB2YXIoLS11aS1raXQtbWVudS1tYXgtd2lkdGgpIC0gNnB4KSJ9O3JldHVybiBvLmNyZWF0ZUVsZW1lbnQocC5NZW51Q29udGV4dC5Qcm92aWRlcix7dmFsdWU6dGhpc30sby5jcmVhdGVFbGVtZW50KGMuU3VibWVudUhhbmRsZXIsbnVsbCxvLmNyZWF0ZUVsZW1lbnQocy5TbG90Q29udGV4dC5Qcm92aWRlcix7dmFsdWU6dGhpcy5fbWFuYWdlcn0sby5jcmVhdGVFbGVtZW50KCJkaXYiLHtpZDplLHJvbGU6dCwiYXJpYS1sYWJlbCI6biwiYXJpYS1sYWJlbGxlZGJ5IjpyLCJhcmlhLWFjdGl2ZWRlc2NlbmRhbnQiOmwsImFyaWEtaGlkZGVuIjppLCJhcmlhLWRlc2NyaWJlZGJ5Ijp1LCJhcmlhLWludmFsaWQiOmgsY2xhc3NOYW1lOmEoKShnLHYubWVudVdyYXAsIVQmJnYuaXNNZWFzdXJpbmcpLHN0eWxlOntoZWlnaHQ6TSxsZWZ0OkUmJkUueCxtaW5XaWR0aDpiLHBvc2l0aW9uOiJmaXhlZCIsdG9wOkUmJkUueSx3aWR0aDpSLC4uLnRoaXMucHJvcHMubGltaXRNYXhXaWR0aCYmSX0sImRhdGEtbmFtZSI6dGhpcy5wcm9wc1siZGF0YS1uYW1lIl0sImRhdGEtcWEtaWQiOnRoaXMucHJvcHMuZGF0YVFhSWQsImRhdGEtdG9vbHRpcC1zaG93LW9uLWZvY3VzIjp0aGlzLnByb3BzWyJkYXRhLXRvb2x0aXAtc2hvdy1vbi1mb2N1cyJdLHJlZjp0aGlzLl9oYW5kbGVDb250YWluZXJSZWYsb25TY3JvbGxDYXB0dXJlOnRoaXMucHJvcHMub25TY3JvbGwsb25Db250ZXh0TWVudTpkLnByZXZlbnREZWZhdWx0Rm9yQ29udGV4dE1lbnUsdGFiSW5kZXg6dGhpcy5wcm9wcy50YWJJbmRleCxvbk1vdXNlT3Zlcjp3LG9uTW91c2VPdXQ6eSxvbktleURvd246XyxvbkZvY3VzOk4sb25CbHVyOlN9LG8uY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOmEoKSh2LnNjcm9sbFdyYXAsIXRoaXMucHJvcHMubm9Nb21lbnR1bUJhc2VkU2Nyb2xsJiZ2Lm1vbWVudHVtQmFzZWQpLHN0eWxlOntvdmVyZmxvd1k6dm9pZCAwIT09TT8ic2Nyb2xsIjoiYXV0byIsbWF4SGVpZ2h0Onh9LG9uU2Nyb2xsQ2FwdHVyZTp0aGlzLl9oYW5kbGVTY3JvbGwscmVmOnRoaXMuX2hhbmRsZVNjcm9sbFdyYXBSZWZ9LG8uY3JlYXRlRWxlbWVudChDLHtjbGFzc05hbWU6di5tZW51Qm94fSxtKSkpKSxvLmNyZWF0ZUVsZW1lbnQocy5TbG90LHtyZWZlcmVuY2U6dGhpcy5faGFuZGxlU2xvdH0pKSl9dXBkYXRlKGUpe2U/dGhpcy5fcmVzaXplRm9yY2VkKCk6dGhpcy5fcmVzaXplKCl9Zm9jdXMoZSl7dGhpcy5fY29udGFpbmVyUmVmPy5mb2N1cyhlKX1ibHVyKCl7dGhpcy5fY29udGFpbmVyUmVmPy5ibHVyKCl9fWZ1bmN0aW9uIEMoZSl7Y29uc3QgdD0oMCxsLmVuc3VyZU5vdE51bGwpKCgwLG8udXNlQ29udGV4dCkoYy5TdWJtZW51Q29udGV4dCkpLG49by51c2VSZWYobnVsbCk7cmV0dXJuIG8uY3JlYXRlRWxlbWVudCgiZGl2Iix7cmVmOm4sY2xhc3NOYW1lOmUuY2xhc3NOYW1lLG9uTW91c2VPdmVyOmZ1bmN0aW9uKGUpe2lmKCEobnVsbCE9PXQuY3VycmVudCYmZS50YXJnZXQgaW5zdGFuY2VvZiBOb2RlJiYobz1lLnRhcmdldCxuLmN1cnJlbnQ/LmNvbnRhaW5zKG8pKSkpcmV0dXJuO3ZhciBvO3QuaXNTdWJtZW51Tm9kZShlLnRhcmdldCl8fHQuc2V0Q3VycmVudChudWxsKX0sImRhdGEtcWEtaWQiOiJtZW51LWlubmVyIn0sZS5jaGlsZHJlbil9Zy5jb250ZXh0VHlwZT1jLlN1Ym1lbnVDb250ZXh0fSwxNTM3MzQoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7REVGQVVMVF9QT1BVUF9NRU5VX0lURU1fVEhFTUU6KCk9PnUsUG9wdXBNZW51SXRlbTooKT0+aH0pO3ZhciBvPW4oNzc5NDc0KSxyPW4oOTE0NDg3KSxhPW4ubihyKSxsPW4oMzg3Nzc0KSxzPW4oODQ4OTg4KSxpPW4oMjc2MDE5KSxjPW4oNDcwMjk1KTtjb25zdCB1PS9eKDc5Nzk1fDk0Mzg5KSQvLnRlc3Qobi5qKT9jOm51bGw7ZnVuY3Rpb24gZChlKXtlLnN0b3BQcm9wYWdhdGlvbigpfWZ1bmN0aW9uIGgoZSl7Y29uc3R7aWQ6dCxyb2xlOm4sY2xhc3NOYW1lOnIsdGl0bGU6dSxsYWJlbFJvd0NsYXNzTmFtZTpoLGxhYmVsQ2xhc3NOYW1lOm0sdG9vbGJveENsYXNzTmFtZTpwLHNob3J0Y3V0OmYsZm9yY2VTaG93U2hvcnRjdXRzOmIsaWNvbjp2LGljb25DbGFzc25hbWU6Zyxpc0FjdGl2ZTpDLGlzRGlzYWJsZWQ6eCxpc0hvdmVyZWQ6dyxhcHBlYXJBc0Rpc2FibGVkOnksbGFiZWw6XyxsaW5rOk4sc2hvd1Rvb2xib3hPbkhvdmVyOlMsc2hvd1Rvb2xib3hPbkZvY3VzOk0sdGFyZ2V0OlIscmVsOkUsdG9vbGJveDpULHRvb2xib3hSb2xlOkkscmVmZXJlbmNlOlcsb25Nb3VzZU91dDpPLG9uTW91c2VPdmVyOmssb25LZXlEb3duOkIsc3VwcHJlc3NUb29sYm94Q2xpY2s6QT0hMCx0aGVtZTpEPWMsdGFiSW5kZXg6eix0YWdOYW1lOkYscmVuZGVyQ29tcG9uZW50Okgscm91bmRlZEljb246UCxpY29uQXJpYVByb3BzOkcsY2lyY2xlTG9nbzpMLGRvbnRDbG9zZVBvcHVwOmosb25DbGljazpaLG9uQ2xpY2tBcmc6VixvbkNvbnRleHRNZW51Okssb25Nb3VzZVVwOlEsc3RhcnRTbG90OlUsZGF0YVFhSWQ6WCwuLi4kfT1lLHE9KDAsby51c2VSZWYpKG51bGwpLFk9KDAsby51c2VNZW1vKSgoKCk9PmZ1bmN0aW9uKGUpe2Z1bmN0aW9uIHQodCl7CmNvbnN0e3JlZmVyZW5jZTpuLC4uLnJ9PXQsYT1lPz8oci5ocmVmPyJhIjoiZGl2IiksbD0iYSI9PT1hP3I6ZnVuY3Rpb24oZSl7Y29uc3R7ZG93bmxvYWQ6dCxocmVmOm4saHJlZkxhbmc6byxtZWRpYTpyLHBpbmc6YSxyZWw6bCx0YXJnZXQ6cyx0eXBlOmkscmVmZXJyZXJQb2xpY3k6YywuLi51fT1lO3JldHVybiB1fShyKTtyZXR1cm4gby5jcmVhdGVFbGVtZW50KGEsey4uLmwscmVmOm59KX1yZXR1cm4gdC5kaXNwbGF5TmFtZT1gRGVmYXVsdENvbXBvbmVudCgke2V9KWAsdH0oRikpLFtGXSksSj1IPz9ZO3JldHVybiBvLmNyZWF0ZUVsZW1lbnQoSix7Li4uJCxpZDp0LHJvbGU6bixjbGFzc05hbWU6YSgpKHIsRC5pdGVtLHYmJkQud2l0aEljb24se1tELmlzQWN0aXZlXTpDLFtELmlzRGlzYWJsZWRdOnh8fHksW0QuaG92ZXJlZF06d30pLHRpdGxlOnUsaHJlZjpOLHRhcmdldDpSLHJlbDpFLHJlZmVyZW5jZTpmdW5jdGlvbihlKXtxLmN1cnJlbnQ9ZSwiZnVuY3Rpb24iPT10eXBlb2YgVyYmVyhlKTsib2JqZWN0Ij09dHlwZW9mIFcmJihXLmN1cnJlbnQ9ZSl9LG9uQ2xpY2s6ZnVuY3Rpb24oZSl7aWYoeClyZXR1cm47WiYmWihWLGUpO2p8fChlLmN1cnJlbnRUYXJnZXQuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInBvcHVwLW1lbnUtY2xvc2UtZXZlbnQiLHtidWJibGVzOiEwLGRldGFpbDp7Y2xpY2tUeXBlOigwLHMuaXNLZXlib2FyZENsaWNrKShlKT8ia2V5Ym9hcmQiOiJtb3VzZSJ9fSkpLCgwLGkuZ2xvYmFsQ2xvc2VNZW51KSgpKX0sb25Db250ZXh0TWVudTpLLG9uTW91c2VVcDpRLG9uTW91c2VPdmVyOmssb25Nb3VzZU91dDpPLG9uS2V5RG93bjpCLHRhYkluZGV4OnosImRhdGEtcWEtaWQiOlh9LEwmJm8uY3JlYXRlRWxlbWVudChsLkNpcmNsZUxvZ28sey4uLkcsY2xhc3NOYW1lOmNbImRpc2Nsb3N1cmUtaXRlbS1jaXJjbGUtbG9nbyJdLHNpemU6Inh4eHNtYWxsIixsb2dvVXJsOkwubG9nb1VybCxwbGFjZWhvbGRlckxldHRlcjoicGxhY2Vob2xkZXJMZXR0ZXIiaW4gTD9MLnBsYWNlaG9sZGVyTGV0dGVyOnZvaWQgMH0pLFUmJm8uY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZTpELnN0YXJ0U2xvdH0sVSksdiYmby5jcmVhdGVFbGVtZW50KCJzcGFuIix7ImFyaWEtbGFiZWwiOkcmJkdbImFyaWEtbGFiZWwiXSwiYXJpYS1oaWRkZW4iOkcmJkJvb2xlYW4oR1siYXJpYS1oaWRkZW4iXSksY2xhc3NOYW1lOmEoKShELmljb24sUCYmY1sicm91bmQtaWNvbiJdLGcpLGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MOntfX2h0bWw6dn19KSxvLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6YSgpKEQubGFiZWxSb3csaCl9LG8uY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZTphKCkoRC5sYWJlbCxtKX0sXykpLCh2b2lkIDAhPT1mfHxiKSYmby5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOkQuc2hvcnRjdXR9LChlZT1mKSYmZWUuc3BsaXQoIisiKS5qb2luKCIgKyAiKSksdm9pZCAwIT09VCYmby5jcmVhdGVFbGVtZW50KCJzcGFuIix7cm9sZTpJLG9uQ2xpY2s6QT9kOnZvaWQgMCxjbGFzc05hbWU6YSgpKHAsRC50b29sYm94LHtbRC5zaG93T25Ib3Zlcl06UyxbRC5zaG93T25Gb2N1c106TX0pfSxUKSk7dmFyIGVlfX0sNjMyOTkyKGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse0Nsb3NlRGVsZWdhdGVDb250ZXh0OigpPT5hfSk7dmFyIG89big3Nzk0NzQpLHI9bigyNzYwMTkpO2NvbnN0IGE9by5jcmVhdGVDb250ZXh0KHIuZ2xvYmFsQ2xvc2VEZWxlZ2F0ZSl9LDgzNTk2NChlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtQb3B1cE1lbnU6KCk9Pmh9KTt2YXIgbz1uKDc3OTQ3NCkscj1uKDEyOTM2NSksYT1uKDkyODEzMiksbD1uKDU4NTQ4KSxzPW4oMjM2NzY1KSxpPW4oMjI3OTQ5KSxjPW4oMTQ1MTUwKSx1PW4oNjMyOTkyKSxkPW4oMzAxOTM3KTtmdW5jdGlvbiBoKGUpe2NvbnN0e2NvbnRyb2xsZXI6dCxjaGlsZHJlbjpuLGlzT3BlbmVkOmgsY2xvc2VPbkNsaWNrT3V0c2lkZTptPSEwLGRvTm90Q2xvc2VPbjpwLG9uQ2xpY2tPdXRzaWRlOmYsb25DbG9zZTpiLG9uS2V5Ym9hcmRDbG9zZTp2LGRhdGFRYUlkOmc9InBvcHVwLW1lbnUtY29udGFpbmVyIixjbG9zZU9uU2Nyb2xsT3V0c2lkZU9mZnNldDpDLC4uLnh9PWUsdz0oMCxvLnVzZUNvbnRleHQpKHUuQ2xvc2VEZWxlZ2F0ZUNvbnRleHQpLHk9by51c2VDb250ZXh0KGkuTWVudVdpZHRoQ29udGV4dCksXz0oMCxvLnVzZUNvbnRleHQpKGQuUmVtZWFzdXJlRGVsZWdhdGVDb250ZXh0KSxOPSgwLHMudXNlT3V0c2lkZUV2ZW50KSh7aGFuZGxlcjpmdW5jdGlvbihlKXtmJiZmKGUpO2lmKCFtKXJldHVybjtjb25zdCB0PSgwLGEuZGVmYXVsdCkocCk/cCgpOm51bGw9PXA/W106W3BdO2lmKHQubGVuZ3RoPjAmJmUudGFyZ2V0IGluc3RhbmNlb2YgTm9kZSlmb3IoY29uc3QgbiBvZiB0KXtjb25zdCB0PXIuZmluZERPTU5vZGUobik7aWYodCBpbnN0YW5jZW9mIE5vZGUmJnQuY29udGFpbnMoZS50YXJnZXQpKXJldHVybn1iKCl9LG1vdXNlRG93bjohMCx0b3VjaFN0YXJ0OiEwfSk7cmV0dXJuIGg/by5jcmVhdGVFbGVtZW50KGwuUG9ydGFsLHt0b3A6IjAiLGxlZnQ6IjAiLHJpZ2h0OiIwIixib3R0b206IjAiLHBvaW50ZXJFdmVudHM6Im5vbmUifSxvLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtyZWY6TixzdHlsZTp7cG9pbnRlckV2ZW50czoiYXV0byJ9fSxvLmNyZWF0ZUVsZW1lbnQoYy5NZW51LHsuLi54LG9uQ2xvc2U6YixvbktleWJvYXJkQ2xvc2U6dixvblNjcm9sbDpmdW5jdGlvbih0KXtjb25zdHtvblNjcm9sbDpufT1lO24mJm4odCl9LGN1c3RvbUNsb3NlRGVsZWdhdGU6dyxjdXN0b21SZW1lYXN1cmVEZWxlZ2F0ZTpfLHJlZjp0LGRhdGFRYUlkOmcsbGltaXRNYXhXaWR0aDp5LnNldE1lbnVNYXhXaWR0aCwiZGF0YS10b29sdGlwLXNob3ctb24tZm9jdXMiOiJ0cnVlIixjbG9zZU9uU2Nyb2xsT3V0c2lkZU9mZnNldDpDfSxuKSkpOm51bGx9fSwzMDE5MzcoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7UmVtZWFzdXJlRGVsZWdhdGVDb250ZXh0OigpPT5vfSkKO2NvbnN0IG89big3Nzk0NzQpLmNyZWF0ZUNvbnRleHQodm9pZCAwKX0sMjg3Nzg2KGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse0NvbGxhcHNlZFJvdW5kVGFic0Rpc2Nsb3N1cmU6KCk9PmZ9KTt2YXIgbz1uKDc3OTQ3NCkscj1uKDMxOTY5KSxhPW4oMjczMzEwKSxsPW4oMTUzNzM0KSxzPW4oMTkzODQ3KSxpPW4oMTk5MTcyKSxjPW4oNzM0ODUyKSx1PW4oNDkyNTA1KSxkPW4oMjM4NTM2KSxoPW4oODg2MCksbT1uKDYzMTU0MSkscD1uKDMxNjU0OSk7ZnVuY3Rpb24gZihlKXtjb25zdHtkaXNhYmxlZDp0LGlzT3BlbmVkOm4sZW5hYmxlQWN0aXZlU3RhdGVTdHlsZXM6dSxkaXNhYmxlRm9jdXNPdXRsaW5lOmQsZmFrZTpmLGl0ZW1zOnYsYnV0dG9uVGV4dDpnLGJ1dHRvblByZXNldDpDPSJ0ZXh0IixidXR0b25SZWY6eCxzaXplOncsdmFyaWFudDp5LGlzQW5jaG9yVGFiczpfLGlzSGlnaGxpZ2h0ZWQ6TixvbkJ1dHRvbkNsaWNrOlMsb25JdGVtQ2xpY2s6TSxvbkNsb3NlOlJ9PWUsRT0oMCxvLnVzZVJlZikobnVsbCksVD0oMCxyLnVzZU1lcmdlZFJlZnMpKFt4LEVdKSxJPSJ0ZXh0Ij09PUM/dm9pZCAwOiJ4c21hbGwiPT09dz9oOm07cmV0dXJuIG8uY3JlYXRlRWxlbWVudChzLlBvcHVwTWVudURpc2Nsb3N1cmVWaWV3LHtidXR0b25SZWY6RSxsaXN0Ym94VGFiSW5kZXg6LTEsaXNPcGVuZWQ6bixvbkNsb3NlOlIsbGlzdGJveEFyaWE6eyJhcmlhLWhpZGRlbiI6ITB9LGJ1dHRvbjpvLmNyZWF0ZUVsZW1lbnQoYy5Sb3VuZFRhYnNCYXNlQnV0dG9uLHsiYXJpYS1oaWRkZW4iOiEwLGRpc2FibGVkOnQsYWN0aXZlOm4sb25DbGljazpTLHJlZjpULHRhYkluZGV4Oi0xLHNpemU6dyx2YXJpYW50Onksc3RhcnRJY29uOkksc2hvd0NhcmV0OiJ0ZXh0Ij09PUMsaWNvbk9ubHk6Im1lYXRiYWxscyI9PT1DLGVuYWJsZUFjdGl2ZVN0YXRlU3R5bGVzOnUsZGlzYWJsZUZvY3VzT3V0bGluZTpkLGZha2U6Zn0sZykscG9wdXBDaGlsZHJlbjpvLmNyZWF0ZUVsZW1lbnQoby5GcmFnbWVudCxudWxsLCJtZWF0YmFsbHMiPT09QyYmby5jcmVhdGVFbGVtZW50KGkuVG9vbFdpZGdldE1lbnVTdW1tYXJ5LG51bGwsZyksdi5tYXAoKGU9Pm8uY3JlYXRlRWxlbWVudChsLlBvcHVwTWVudUl0ZW0se2tleTplLmlkLGNsYXNzTmFtZTpfP3AubGlua0l0ZW06dm9pZCAwLG9uQ2xpY2s6TSxvbkNsaWNrQXJnOmUsaXNBY3RpdmU6TihlKSxsYWJlbDpvLmNyZWF0ZUVsZW1lbnQoYix7aXNIaWdobGlnaHRlZDpOKGUpLHNpemU6dyx2YXJpYW50OnksZGlzYWJsZWQ6ZS5kaXNhYmxlZH0sZS5jaGlsZHJlbiksaXNEaXNhYmxlZDplLmRpc2FibGVkLGxpbms6ImhyZWYiaW4gZT9lLmhyZWY6dm9pZCAwLHJlbDoicmVsImluIGU/ZS5yZWw6dm9pZCAwLHRhcmdldDoidGFyZ2V0ImluIGU/ZS50YXJnZXQ6dm9pZCAwLGljb246ZS5zdGFydEljb24sdG9vbGJveDplLmVuZEljb24mJm8uY3JlYXRlRWxlbWVudChhLkljb24se2ljb246ZS5lbmRJY29ufSkscmVuZGVyQ29tcG9uZW50OiJyZW5kZXJDb21wb25lbnQiaW4gZT9lLnJlbmRlckNvbXBvbmVudDp2b2lkIDAsZG9udENsb3NlUG9wdXA6ITB9KSkpKX0pfWZ1bmN0aW9uIGIoZSl7Y29uc3R7aXNIaWdobGlnaHRlZDp0LHNpemU6bix2YXJpYW50OnIsY2hpbGRyZW46YSxkaXNhYmxlZDpsfT1lLHM9e3NpemU6bj8/dS5kZWZhdWx0U2l6ZSx2YXJpYW50OnI/P3UuZGVmYXVsdFZhcmlhbnQsaXNIaWdobGlnaHRlZDp0LGlzQ29sbGFwc2VkOiEwLGRpc2FibGVkOmw/PyExfTtyZXR1cm4gby5jcmVhdGVFbGVtZW50KGQuUm91bmRUYWJDb250ZXh0LlByb3ZpZGVyLHt2YWx1ZTpzfSxhKX19LDQwMDIxMShlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtSb3VuZFRhYkJ1dHRvbjooKT0+aX0pO3ZhciBvPW4oNzc5NDc0KSxyPW4oOTY0NTk0KSxhPW4oNDkyNTA1KSxsPW4oNzM0ODUyKSxzPW4oMjM4NTM2KTtmdW5jdGlvbiBpKGUpe2NvbnN0e2l0ZW06dCxoaWdobGlnaHRlZDpuLGhhbmRsZUl0ZW1SZWY6aSxyZWZlcmVuY2U6YyxvbkNsaWNrOnUsLi4uZH09ZSxoPSgwLG8udXNlQ2FsbGJhY2spKChlPT57ZC5kaXNhYmxlZCYmZS5wcmV2ZW50RGVmYXVsdCgpLHUmJnUodCl9KSxbdSx0LGQuZGlzYWJsZWRdKSxtPSgwLG8udXNlQ2FsbGJhY2spKChlPT57aSYmaSh0LGUpLCgwLHIuaXNvbW9ycGhpY1JlZikoYykoZSl9KSxbdCxpXSkscD17c2l6ZTpkLnNpemU/P2EuZGVmYXVsdFNpemUsdmFyaWFudDpkLnZhcmlhbnQ/P2EuZGVmYXVsdFZhcmlhbnQsaXNIaWdobGlnaHRlZDpCb29sZWFuKGQuYWN0aXZlKSxpc0NvbGxhcHNlZDohMSxkaXNhYmxlZDpkLmRpc2FibGVkPz8hMX07cmV0dXJuIG8uY3JlYXRlRWxlbWVudChsLlJvdW5kVGFic0Jhc2VCdXR0b24sey4uLmQsaWQ6dC5pZCxvbkNsaWNrOmgscmVmOm0sc3RhcnRJY29uOnQuc3RhcnRJY29uLGVuZEljb246dC5lbmRJY29uLHRvb2x0aXA6dC50b29sdGlwLCJhcmlhLWxhYmVsIjoicmFkaW8iPT09ZC5yb2xlP3QuY2hpbGRyZW46dm9pZCAwfSxvLmNyZWF0ZUVsZW1lbnQocy5Sb3VuZFRhYkNvbnRleHQuUHJvdmlkZXIse3ZhbHVlOnB9LHQuY2hpbGRyZW4pKX19LDQ5MjUwNShlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtSb3VuZFRhYkNvbnRlbnQ6KCk9Pm0sZGVmYXVsdFNpemU6KCk9PnUsZGVmYXVsdFZhcmlhbnQ6KCk9PmQsdXNlUm91bmRUYWJDbGFzc05hbWVzOigpPT5ofSk7dmFyIG89big3Nzk0NzQpLHI9big5MTQ0ODcpLGE9bi5uKHIpLGw9bigzMDk5MjApLHM9bigyNzMzMTApLGk9big5MzUxKSxjPW4oMjE2NDA5KTtjb25zdCB1PSJ4c21hbGwiLGQ9InByaW1hcnkiO2Z1bmN0aW9uIGgoZSl7Y29uc3QgdD0oMCxvLnVzZUNvbnRleHQpKGwuQ3VzdG9tQmVoYXZpb3VyQ29udGV4dCkse3NpemU6bj0ieHNtYWxsIix2YXJpYW50OnI9InByaW1hcnkiLGFjdGl2ZTpzLGZha2U6aSxzdGFydEljb246dSxlbmRJY29uOmQsc2hvd0NhcmV0OmgsaWNvbk9ubHk6bSxhbmNob3I6cCxlbmFibGVBY3RpdmVTdGF0ZVN0eWxlczpmPXQuZW5hYmxlQWN0aXZlU3RhdGVTdHlsZXMsZGlzYWJsZUZvY3VzT3V0bGluZTpiPSExLHRvb2x0aXA6dixkaXNhYmxlZDpnfT1lCjtyZXR1cm4gYSgpKGMucm91bmRUYWJCdXR0b24sY1tuXSxjW3JdLHUmJmMud2l0aFN0YXJ0SWNvbiwoZHx8aCkmJmMud2l0aEVuZEljb24sbSYmYy5pY29uT25seSxzJiZjLnNlbGVjdGVkLGkmJmMuZmFrZSxwJiZjLmVuYWJsZUN1cnNvclBvaW50ZXIsIWYmJmMuZGlzYWJsZUFjdGl2ZVN0YXRlU3R5bGVzLGImJmMuZGlzYWJsZUZvY3VzT3V0bGluZSx2JiYiYXBwbHktY29tbW9uLXRvb2x0aXAiLGcmJmMuZGlzYWJsZWQsImFwcGx5LW92ZXJmbG93LXRvb2x0aXAgYXBwbHktb3ZlcmZsb3ctdG9vbHRpcC0tY2hlY2stY2hpbGRyZW4tcmVjdXJzaXZlbHkgYXBwbHktb3ZlcmZsb3ctdG9vbHRpcC0tYWxsb3ctdGV4dCIpfWZ1bmN0aW9uIG0oZSl7Y29uc3R7c3RhcnRJY29uOnQsZW5kSWNvbjpuLHNob3dDYXJldDpyLGljb25Pbmx5OmwsY2hpbGRyZW46aX09ZTtyZXR1cm4gby5jcmVhdGVFbGVtZW50KG8uRnJhZ21lbnQsbnVsbCx0JiZvLmNyZWF0ZUVsZW1lbnQocy5JY29uLHtpY29uOnQsY2xhc3NOYW1lOmMuc3RhcnRJY29uV3JhcCwiYXJpYS1oaWRkZW4iOiEwfSksaSYmby5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOmEoKShjLmNvbnRlbnQsbCYmYy52aXN1YWxseUhpZGRlbil9LGkpLCghbCYmbnx8cikmJm8uY3JlYXRlRWxlbWVudChwLHtpY29uOm4sc2hvd0NhcmV0OnJ9KSl9ZnVuY3Rpb24gcChlKXtjb25zdHtpY29uOnQsc2hvd0NhcmV0Om59PWU7cmV0dXJuIG8uY3JlYXRlRWxlbWVudChzLkljb24se2NsYXNzTmFtZTphKCkoYy5lbmRJY29uV3JhcCxuJiZjLmNhcmV0KSxpY29uOm4/aTp0LCJhcmlhLWhpZGRlbiI6ITB9KX19LDIzODUzNihlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtSb3VuZFRhYkNvbnRleHQ6KCk9Pm99KTtjb25zdCBvPSgwLG4oNzc5NDc0KS5jcmVhdGVDb250ZXh0KSh7c2l6ZToic21hbGwiLHZhcmlhbnQ6InByaW1hcnkiLGlzSGlnaGxpZ2h0ZWQ6ITEsaXNDb2xsYXBzZWQ6ITEsZGlzYWJsZWQ6ITF9KX0sNzM0ODUyKGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse1JvdW5kVGFic0Jhc2VCdXR0b246KCk9Pmx9KTt2YXIgbz1uKDc3OTQ3NCkscj1uKDc3MDE0MyksYT1uKDQ5MjUwNSk7Y29uc3QgbD0oMCxvLmZvcndhcmRSZWYpKCgoZSx0KT0+e2NvbnN0e2lkOm4sc2l6ZTpsLHZhcmlhbnQ6cyxhY3RpdmU6aSxmYWtlOmMsc3RhcnRJY29uOnUsZW5kSWNvbjpkLHNob3dDYXJldDpoLGljb25Pbmx5Om0sY2hpbGRyZW46cCxlbmFibGVBY3RpdmVTdGF0ZVN0eWxlczpmLGRpc2FibGVGb2N1c091dGxpbmU6Yix0b29sdGlwOnYsZGlzYWJsZWQ6ZywuLi5DfT1lO3JldHVybiBvLmNyZWF0ZUVsZW1lbnQoImJ1dHRvbiIsey4uLkMsaWQ6bixyZWY6dCwiZGF0YS10b29sdGlwIjp2LCJkYXRhLW92ZXJmbG93LXRvb2x0aXAtdGV4dCI6dj8/KDAsci5nZXRUZXh0Rm9yVG9vbHRpcCkocCksY2xhc3NOYW1lOigwLGEudXNlUm91bmRUYWJDbGFzc05hbWVzKSh7c2l6ZTpsLHZhcmlhbnQ6cyxhY3RpdmU6aSxmYWtlOmMsc3RhcnRJY29uOnUsZW5kSWNvbjpkLHNob3dDYXJldDpoLGljb25Pbmx5Om0sZW5hYmxlQWN0aXZlU3RhdGVTdHlsZXM6ZixkaXNhYmxlRm9jdXNPdXRsaW5lOmIsdG9vbHRpcDp2LGRpc2FibGVkOmd9KX0sby5jcmVhdGVFbGVtZW50KGEuUm91bmRUYWJDb250ZW50LHtzdGFydEljb246dSxlbmRJY29uOmQsc2hvd0NhcmV0OmgsaWNvbk9ubHk6bX0scCkpfSkpO2wuZGlzcGxheU5hbWU9IlJvdW5kVGFic0Jhc2VCdXR0b24ifSw1MDk0ODkoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7Um91bmRCdXR0b25UYWJzSW1wbDooKT0+bX0pO3ZhciBvPW4oNzc5NDc0KSxyPW4oOTE0NDg3KSxhPW4ubihyKSxsPW4oNzgzMjU0KSxzPW4oMTE1MjkzKSxpPW4oODQ2ODU4KSxjPW4oMjEyMTI1KSx1PW4oNDAwMjExKSxkPW4oMjg3Nzg2KSxoPW4oMTAzNTkzKTtmdW5jdGlvbiBtKGUpe2NvbnN0e2NoaWxkcmVuOnQsZGlzYWJsZWQ6cixtb3JlQnV0dG9uVGV4dDptPWwudChudWxsLHZvaWQgMCxuKDM5NDk0NykpLG1vcmVCdXR0b25QcmVzZXQ6cCxjbGFzc05hbWU6ZixzaXplOmIsdmFyaWFudDp2LGFsaWduOmcsc3R5bGU6Qz17fSwiZGF0YS1uYW1lIjp4LGlzUmFkaW9Hcm91cDp3LCJhcmlhLWNvbnRyb2xzIjp5fT1lLF89KDAsaC5nZXRSb3VuZFRhYnNHYXApKGIpLHtlbmFibGVBY3RpdmVTdGF0ZVN0eWxlczpOLG1vcmVCdXR0b25SZWY6UyxzZXRJdGVtUmVmOk0sZ2V0QmluZGluZ3M6UixoYW5kbGVNb3JlQnV0dG9uQ2xpY2s6RSxoYW5kbGVDb2xsYXBzZWRJdGVtQ2xpY2s6VCxzY3JvbGxXcmFwQmluZGluZzpJLG92ZXJmbG93QmVoYXZpb3VyOlcsdGFibGlzdEJpbmRpbmc6Tyx2aXNpYmxlVGFiczprLGhpZGRlblRhYnM6QixoYW5kbGVBY3RpdmF0ZTpBLGlzTW9iaWxlVG91Y2g6RCxnZXRJdGVtSWQ6eixpc0Rpc2Nsb3N1cmVPcGVuZWQ6Rixpc0hpZ2hsaWdodGVkOkgsY2xvc2VEaXNjbG9zdXJlOlB9PSgwLGkudXNlVGFic01haW5IYW5kbGVycykoYy5UYWJOYW1lcy5Sb3VuZEJ1dHRvblRhYnMsZSx7aXNSdGw6cy5pc1J0bCxzY3JvbGxJbnRvVmlld09wdGlvbnM6e2FkZGl0aW9uYWxTY3JvbGw6X30saXNSYWRpb0dyb3VwOncsZ2FwOl99KTtyZXR1cm4gby5jcmVhdGVFbGVtZW50KCJkaXYiLHsuLi5JLGNsYXNzTmFtZTphKCkoKDAsaC5nZXRSb3VuZFRhYnNTY3JvbGxXcmFwQ2xhc3NOYW1lcykoe292ZXJmbG93QmVoYXZpb3VyOld9KSxmKSxzdHlsZTp7Li4uQywiLS11aS1saWItcm91bmRUYWJzLWdhcCI6YCR7X31weGB9LCJkYXRhLW5hbWUiOnh9LG8uY3JlYXRlRWxlbWVudCgiZGl2Iix7Li4uTyxjbGFzc05hbWU6KDAsaC5nZXRSb3VuZFRhYnNJbm5lcldyYXBDbGFzc05hbWVzKSh7YWxpZ246ZyxvdmVyZmxvd0JlaGF2aW91cjpXfSl9LGsubWFwKChlPT5vLmNyZWF0ZUVsZW1lbnQodS5Sb3VuZFRhYkJ1dHRvbix7Li4uUihlKSxrZXk6ZS5pZCxpdGVtOmUsb25DbGljazooKT0+QShlKSx2YXJpYW50OnYsc2l6ZTpiLGVuYWJsZUFjdGl2ZVN0YXRlU3R5bGVzOk4sZGlzYWJsZUZvY3VzT3V0bGluZTpELHJlZmVyZW5jZTpNKHooZSkpLC4uLmUuZGF0YUlkJiZ7CiJkYXRhLWlkIjplLmRhdGFJZH0sImFyaWEtY29udHJvbHMiOnl9KSkpLEIubWFwKChlPT5vLmNyZWF0ZUVsZW1lbnQodS5Sb3VuZFRhYkJ1dHRvbix7Li4uUihlKSxrZXk6ZS5pZCxpdGVtOmUsdmFyaWFudDp2LHNpemU6YixyZWZlcmVuY2U6TSh6KGUpKSwiYXJpYS1jb250cm9scyI6eSxmYWtlOiEwfSkpKSxvLmNyZWF0ZUVsZW1lbnQoZC5Db2xsYXBzZWRSb3VuZFRhYnNEaXNjbG9zdXJlLHtkaXNhYmxlZDpyLGlzT3BlbmVkOkYsaXRlbXM6QixidXR0b25UZXh0Om0sYnV0dG9uUHJlc2V0OnAsYnV0dG9uUmVmOlMsaXNIaWdobGlnaHRlZDpILG9uQnV0dG9uQ2xpY2s6RSxvbkl0ZW1DbGljazpULG9uQ2xvc2U6UCx2YXJpYW50OnYsc2l6ZTpiLGVuYWJsZUFjdGl2ZVN0YXRlU3R5bGVzOk4sZGlzYWJsZUZvY3VzT3V0bGluZTpELGZha2U6MD09PUIubGVuZ3RofSksdCkpfX0sMTAzNTkzKGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse2dldFJvdW5kVGFic0dhcDooKT0+aSxnZXRSb3VuZFRhYnNJbm5lcldyYXBDbGFzc05hbWVzOigpPT5zLGdldFJvdW5kVGFic1Njcm9sbFdyYXBDbGFzc05hbWVzOigpPT5sfSk7dmFyIG89big5MTQ0ODcpLHI9bi5uKG8pLGE9big0NzgzOSk7ZnVuY3Rpb24gbChlKXtjb25zdHtvdmVyZmxvd0JlaGF2aW91cjp0fT1lO3JldHVybiByKCkoYS5zY3JvbGxXcmFwLCJzY3JvbGwiPT09dCYmYS5vdmVyZmxvd1Njcm9sbCwid3JhcCI9PT10JiZhLm92ZXJmbG93V3JhcCl9ZnVuY3Rpb24gcyhlKXtjb25zdHthbGlnbjp0PSJzdGFydCJ9PWU7cmV0dXJuIHIoKShhLnJvdW5kVGFicyxhW3RdKX1mdW5jdGlvbiBpKGU9InhzbWFsbCIpe3N3aXRjaChlKXtjYXNlInNtYWxsIjpyZXR1cm4gODtjYXNlInhzbWFsbCI6cmV0dXJuIDQ7ZGVmYXVsdDpyZXR1cm4gMTZ9fX0sMTk5MTcyKGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse1Rvb2xXaWRnZXRNZW51U3VtbWFyeTooKT0+c30pO3ZhciBvPW4oNzc5NDc0KSxyPW4oOTE0NDg3KSxhPW4ubihyKSxsPW4oNzYxMDkzKTtmdW5jdGlvbiBzKGUpe3JldHVybiBvLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTphKCkoZS5jbGFzc05hbWUsbC50aXRsZSl9LGUuY2hpbGRyZW4pfX0sNzIxOTEwKGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse0NvdW50ZXI6KCk9PmR9KTt2YXIgbyxyLGEsbD1uKDkxNDQ4Nykscz1uLm4obCksaT1uKDc3OTQ3NCksYz1uKDM2Mjc5MyksdT1uLm4oYyk7ZnVuY3Rpb24gZChlKXtjb25zdHtjbGFzc05hbWU6dCxjb3VudDpuLGNvbXBhY3Q6bz0hMCxzaXplOnI9InhsYXJnZSIsY29sb3I6YT0iZGFuZ2VyIixzaWduOmwsYm9yZGVyQ29sb3I6Yz0ibm9uZSIsImFyaWEtbGFiZWwiOmQsImFyaWEtaGlkZGVuIjpoLGRpc2FibGVkOm0sLi4ucH09ZSxmPXA7bGV0IGI7Yj0hKCJ4eHNtYWxsIj09PXJ8fCJ4eHhzbWFsbCI9PT1yKSYmbj9vJiZuPj0xMDA/Ijk5KyI6bCYmbj4wP2ArJHtufWA6bjoiIjtjb25zdCB2PXMoKSh0LHUoKS5jb3VudGVyLHUoKVtyXSx1KClbYGNvbG9yLSR7YX1gXSwibm9uZSIhPT1jJiZ1KClbYGJvcmRlckNvbG9yLSR7Y31gXSxtJiZ1KCkuZGlzYWJsZWQpO3JldHVybiBpLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHsuLi5mLGNsYXNzTmFtZTp2LHJvbGU6dm9pZCAwIT09ZD8iaW1nIjp2b2lkIDAsImFyaWEtbGFiZWwiOmQsImFyaWEtaGlkZGVuIjpofSxiKX0hZnVuY3Rpb24oZSl7ZS5YWFhTbWFsbD0ieHh4c21hbGwiLGUuWFhTbWFsbD0ieHhzbWFsbCIsZS5YU21hbGw9InhzbWFsbCIsZS5TbWFsbD0ic21hbGwiLGUuTWVkaXVtPSJtZWRpdW0iLGUuTGFyZ2U9ImxhcmdlIixlLlhMYXJnZT0ieGxhcmdlIn0ob3x8KG89e30pKSxmdW5jdGlvbihlKXtlLkRhbmdlcj0iZGFuZ2VyIixlLkFjY2VudD0iYWNjZW50IixlLkFjY2VudExpZ2h0PSJhY2NlbnQtbGlnaHQiLGUuTmV1dHJhbEJvbGQ9Im5ldXRyYWwtYm9sZCIsZS5OZXV0cmFsPSJuZXV0cmFsIn0ocnx8KHI9e30pKSxmdW5jdGlvbihlKXtlLlByaW1hcnk9InByaW1hcnkiLGUuU2Vjb25kYXJ5PSJzZWNvbmRhcnkiLGUuVGVydGlhcnk9InRlcnRpYXJ5IixlLk5vbmU9Im5vbmUifShhfHwoYT17fSkpfSw3NjM1NDkoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7dXNlQ29tcG9zZWRLZXlib2FyZEFjdGlvbkhhbmRsZXJzOigpPT5zLHVzZUtleWJvYXJkQWN0aW9uSGFuZGxlcjooKT0+bCx1c2VLZXlib2FyZENsb3NlOigpPT51LHVzZUtleWJvYXJkRXZlbnRIYW5kbGVyOigpPT5pLHVzZUtleWJvYXJkT3BlbjooKT0+ZCx1c2VLZXlib2FyZFRvZ2dsZTooKT0+Y30pO3ZhciBvPW4oNzc5NDc0KSxyPW4oMjM1NzI0KTtjb25zdCBhPSgpPT4hMDtmdW5jdGlvbiBsKGUsdCxuPWEscil7cmV0dXJuKDAsby51c2VDYWxsYmFjaykoKG89PntpZihyKXtpZigiaG9yaXpvbnRhbCI9PT1yJiYoNDA9PT1vfHwzOD09PW8pKXJldHVybjtpZigidmVydGljYWwiPT09ciYmKDM3PT09b3x8Mzk9PT1vKSlyZXR1cm59Y29uc3QgYT1lLm1hcCgoZT0+ImZ1bmN0aW9uIj09dHlwZW9mIGU/ZSgpOmUpKTtyZXR1cm4hKCFuKG8pfHwhYS5pbmNsdWRlcyhvKSkmJih0KG8pLCEwKX0pLFsuLi5lLHQsbl0pfWZ1bmN0aW9uIHMoLi4uZSl7cmV0dXJuKDAsby51c2VDYWxsYmFjaykoKHQ9Pntmb3IoY29uc3QgbiBvZiBlKWlmKG4odCkpcmV0dXJuITA7cmV0dXJuITF9KSxbLi4uZV0pfWZ1bmN0aW9uIGkoZSx0PSEwLG49ITEpe2NvbnN0IGE9cyguLi5lKTtyZXR1cm4oMCxvLnVzZUNhbGxiYWNrKSgoZT0+e2NvbnN0IG89YSgoMCxyLmhhc2hGcm9tRXZlbnQpKGUpKTtvJiZ0JiZlLnByZXZlbnREZWZhdWx0KCksbyYmbiYmZS5zdG9wUHJvcGFnYXRpb24oKX0pLFthXSl9ZnVuY3Rpb24gYyhlLHQ9ITApe3JldHVybiBsKFsxMywzMl0sZSwoZnVuY3Rpb24oZSl7aWYoMTM9PT1lKXJldHVybiB0O3JldHVybiEwfSkpfWZ1bmN0aW9uIHUoZSx0KXtyZXR1cm4gbChbOSwoMCxvLnVzZUNhbGxiYWNrKSgoKCk9PnIuTW9kaWZpZXJzLlNoaWZ0KzkpLFtdKSwyN10sdCwoMCxvLnVzZUNhbGxiYWNrKSgoKCk9PmUpLFtlXSkpfWZ1bmN0aW9uIGQoZSx0KXsKcmV0dXJuIGwoWzQwLDM4XSx0LCgwLG8udXNlQ2FsbGJhY2spKCgoKT0+IWUpLFtlXSkpfX0sOTAwODQxKGUsdCxuKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbyhlLHQsbixvLHIpe2Z1bmN0aW9uIGEocil7aWYoZT5yLnRpbWVTdGFtcClyZXR1cm47Y29uc3QgYT1yLnRhcmdldDt2b2lkIDAhPT1uJiZudWxsIT09dCYmbnVsbCE9PWEmJmEub3duZXJEb2N1bWVudD09PW8mJih0LmNvbnRhaW5zKGEpfHxuKHIpKX1yZXR1cm4gci5jbGljayYmby5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsYSwhMSksci5tb3VzZURvd24mJm8uYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vkb3duIixhLCExKSxyLnRvdWNoRW5kJiZvLmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoZW5kIixhLCExKSxyLnRvdWNoU3RhcnQmJm8uYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hzdGFydCIsYSwhMSksKCk9PntvLnJlbW92ZUV2ZW50TGlzdGVuZXIoImNsaWNrIixhLCExKSxvLnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsYSwhMSksby5yZW1vdmVFdmVudExpc3RlbmVyKCJ0b3VjaGVuZCIsYSwhMSksby5yZW1vdmVFdmVudExpc3RlbmVyKCJ0b3VjaHN0YXJ0IixhLCExKX19bi5kKHQse2FkZE91dHNpZGVFdmVudExpc3RlbmVyOigpPT5vfSl9LDIzNjc2NShlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHt1c2VPdXRzaWRlRXZlbnQ6KCk9Pmx9KTt2YXIgbz1uKDc3OTQ3NCkscj1uKDYxNjMxMSksYT1uKDkwMDg0MSk7ZnVuY3Rpb24gbChlKXtjb25zdHtjbGljazp0LG1vdXNlRG93bjpuLHRvdWNoRW5kOmwsdG91Y2hTdGFydDpzLGhhbmRsZXI6aSxyZWZlcmVuY2U6Y309ZSx1PSgwLG8udXNlUmVmKShudWxsKSxkPSgwLG8udXNlUmVmKSgidW5kZWZpbmVkIj09dHlwZW9mIHdpbmRvdz8wOm5ldyB3aW5kb3cuQ3VzdG9tRXZlbnQoInRpbWVzdGFtcCIpLnRpbWVTdGFtcCk7cmV0dXJuKDAsci51c2VJc29tb3JwaGljTGF5b3V0RWZmZWN0KSgoKCk9Pntjb25zdCBlPXtjbGljazp0LG1vdXNlRG93bjpuLHRvdWNoRW5kOmwsdG91Y2hTdGFydDpzfSxvPWM/Yy5jdXJyZW50OnUuY3VycmVudDtyZXR1cm4oMCxhLmFkZE91dHNpZGVFdmVudExpc3RlbmVyKShkLmN1cnJlbnQsbyxpLGRvY3VtZW50LGUpfSksW3QsbixsLHMsaV0pLGN8fHV9fSwyMjc5NDkoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7TWVudVdpZHRoQ29udGV4dDooKT0+b30pO2NvbnN0IG89big3Nzk0NzQpLmNyZWF0ZUNvbnRleHQoe3NldE1lbnVNYXhXaWR0aDohMX0pfSw4OTEyMDkoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7U3VibWVudUNvbnRleHQ6KCk9PnIsU3VibWVudUhhbmRsZXI6KCk9PmF9KTt2YXIgbz1uKDc3OTQ3NCk7Y29uc3Qgcj1vLmNyZWF0ZUNvbnRleHQobnVsbCk7ZnVuY3Rpb24gYShlKXtjb25zdFt0LG5dPSgwLG8udXNlU3RhdGUpKG51bGwpLGE9KDAsby51c2VSZWYpKG51bGwpLGw9KDAsby51c2VSZWYpKG5ldyBNYXApO3JldHVybigwLG8udXNlRWZmZWN0KSgoKCk9PigpPT57bnVsbCE9PWEuY3VycmVudCYmY2xlYXJUaW1lb3V0KGEuY3VycmVudCl9KSxbXSksby5jcmVhdGVFbGVtZW50KHIuUHJvdmlkZXIse3ZhbHVlOntjdXJyZW50OnQsc2V0Q3VycmVudDpmdW5jdGlvbihlKXtudWxsIT09YS5jdXJyZW50JiYoY2xlYXJUaW1lb3V0KGEuY3VycmVudCksYS5jdXJyZW50PW51bGwpO251bGw9PT10P24oZSk6YS5jdXJyZW50PXNldFRpbWVvdXQoKCgpPT57YS5jdXJyZW50PW51bGwsbihlKX0pLDEwMCl9LHJlZ2lzdGVyU3VibWVudTpmdW5jdGlvbihlLHQpe3JldHVybiBsLmN1cnJlbnQuc2V0KGUsdCksKCk9PntsLmN1cnJlbnQuZGVsZXRlKGUpfX0saXNTdWJtZW51Tm9kZTpmdW5jdGlvbihlKXtyZXR1cm4gQXJyYXkuZnJvbShsLmN1cnJlbnQudmFsdWVzKCkpLnNvbWUoKHQ9PnQoZSkpKX19fSxlLmNoaWxkcmVuKX19LDQxOTE4MShlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtjcmVhdGVEb21JZDooKT0+aSxqb2luRG9tSWRzOigpPT5jfSk7Y29uc3Qgbz0vXHMvZztmdW5jdGlvbiByKGUpe3JldHVybiJzdHJpbmciPT10eXBlb2YgZX1mdW5jdGlvbiBhKGUpe3N3aXRjaCh0eXBlb2YgZSl7Y2FzZSJzdHJpbmciOnJldHVybiBlO2Nhc2UibnVtYmVyIjpjYXNlImJpZ2ludCI6cmV0dXJuIGUudG9TdHJpbmcoMTApO2Nhc2UiYm9vbGVhbiI6Y2FzZSJzeW1ib2wiOnJldHVybiBlLnRvU3RyaW5nKCk7ZGVmYXVsdDpyZXR1cm4gbnVsbH19ZnVuY3Rpb24gbChlKXtyZXR1cm4gZS50cmltKCkubGVuZ3RoPjB9ZnVuY3Rpb24gcyhlKXtyZXR1cm4gZS5yZXBsYWNlKG8sIi0iKX1mdW5jdGlvbiBpKC4uLmUpe2NvbnN0IHQ9ZS5tYXAoYSkuZmlsdGVyKHIpLmZpbHRlcihsKS5tYXAocyk7cmV0dXJuKHQubGVuZ3RoPjAmJnRbMF0uc3RhcnRzV2l0aCgiaWRfIik/dDpbImlkIiwuLi50XSkuam9pbigiXyIpfWZ1bmN0aW9uIGMoLi4uZSl7cmV0dXJuIGUubWFwKGEpLmZpbHRlcihyKS5maWx0ZXIobCkuam9pbigiICIpfX0sODg2MChlKXtlLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMTggMTgiIHdpZHRoPSIxOCIgaGVpZ2h0PSIxOCI+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBkPSJNNSA5YTIgMiAwIDEgMS00IDAgMiAyIDAgMCAxIDQgMHptNiAwYTIgMiAwIDEgMS00IDAgMiAyIDAgMCAxIDQgMHptNCAyYTIgMiAwIDEgMCAwLTQgMiAyIDAgMCAwIDAgNHoiLz48L3N2Zz4nfSw2MzE1NDEoZSl7ZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDI4IDI4IiB3aWR0aD0iMjgiIGhlaWdodD0iMjgiPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZD0iTTkgMTRhMyAzIDAgMSAxLTYgMCAzIDMgMCAwIDEgNiAwem04IDBhMyAzIDAgMSAxLTYgMCAzIDMgMCAwIDEgNiAwem01IDNhMyAzIDAgMSAwIDAtNiAzIDMgMCAwIDAgMCA2eiIvPjwvc3ZnPid9fV0pOw=="}},"time_used":4,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":4,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/29348.83b7b4dca80dd9eb07b8.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.821Z","timestamp":1785148034821,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/29348.83b7b4dca80dd9eb07b8.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\ncontent-type: text/css; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding, Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\netag: W/\"69f98b71-ed5\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Tue, 05 May 2026 06:17:21 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.51\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 05/05/2026 10:18:38\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: da7ac3924b61429d57010f9fc4a4851a\r\ncdn-cache: HIT\r\ncontent-encoding: br\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":3797,"size_decoded":2152,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with very long lines (3797), with no line terminators","md5":"db5ca6aea5e94729e2cd7305793ceaab","sha1":"704f2a3fd3f1504d9688e799572d2974b5768471","sha256":"e6e738e84ca8cd07820ec404dcaf733889dd5954363d0481012848e6895009e5","sha512":"ed00c08fefd9e60729448cb6b6d89312f446ef55f02f5620efce42b081e3dc5b00eca345889d9b688b4e8d7c4822254ccb28efde68b117c83d8b75e68a3fbcd6","ssdeep":"","tlshash":"98719866f722a534f827d13a36916968905af212d54b13bcecd2e37481e76ba0f50fcc","first_seen":"2026-05-01T03:41:17.541396Z","last_seen":"2026-07-27T10:28:13.826559Z","times_seen":19,"resource_available":false,"data":"LndyYXAtS0VrNExVbjN7ZmlsbDp2YXIoLS10di1waWUtY2hhcnQtYXJjLWNvbG9yLHZhcigtLXBpZS1jaGFydC1hcmMtZmFsbGJhY2stY29sb3IpKX1AbWVkaWEgKGFueS1ob3Zlcjpob3Zlcil7LndyYXAtS0VrNExVbjM6aG92ZXIgLmhvdmVyQ29udGFpbmVyLUtFazRMVW4ze3RyYW5zZm9ybTpzY2FsZSh2YXIoLS10di1waWUtY2hhcnQtaG92ZXItc2NhbGUsMS4wNSkpfX0uaG92ZXJEZXRlY3Rvci1LRWs0TFVuM3tmaWxsOiMwMDAwfS5ob3ZlckNvbnRhaW5lci1LRWs0TFVuM3twb2ludGVyLWV2ZW50czpub25lO3RyYW5zZm9ybS1vcmlnaW46NTAlO3RyYW5zaXRpb246dHJhbnNmb3JtIC4zNXN9LmxhYmVsLUtFazRMVW4zLC5zZWxlY3RlZC1LRWs0TFVuMywudmlzaWJsZUNvbnRhaW5lci1LRWs0TFVuM3twb2ludGVyLWV2ZW50czpub25lfS5sYWJlbC1LRWs0TFVuM3tmaWxsOiNmZmY7c3Ryb2tlLXdpZHRoOjA7Zm9udC1zaXplOjVweDtsaW5lLWhlaWdodDoyNHB4O3RleHQtYW5jaG9yOm1pZGRsZTstd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZX0uaW5uZXJUZXh0LUtFazRMVW4ze3Zpc2liaWxpdHk6aGlkZGVuO2ZpbGw6dmFyKC0tdHYtcGllLWNoYXJ0LWFyYy1pbm5lci10ZXh0LWNvbG9yLHZhcigtLWNvbG9yLXRvb2xiYXItaW50ZXJhY3RpdmUtZWxlbWVudC10ZXh0LW5vcm1hbCkpO2ZvbnQtc2l6ZTo0cHg7bGV0dGVyLXNwYWNpbmc6LjJweDtwb2ludGVyLWV2ZW50czpub25lfS5pbm5lclRleHQtS0VrNExVbjMudmlzaWJsZS1LRWs0TFVuM3t2aXNpYmlsaXR5OnZpc2libGV9W2RhdGEtdGhlbWU9ZGFya10sW2RhdGEtdGhlbWU9bGlnaHRdey0tXzAtdDZ4azojMDAwMH0ud3JhcC1xdDB3OHlVcntkaXNwbGF5OmdyaWQ7cG9pbnRlci1ldmVudHM6bm9uZTtwb3NpdGlvbjpyZWxhdGl2ZX0ud3JhcC1xdDB3OHlVci5sZWZ0LXF0MHc4eVVye2luc2V0LWlubGluZS1lbmQ6MH0ud3JhcC1xdDB3OHlVci5yaWdodC1xdDB3OHlVcntyaWdodDoxMDAlfS50b29sdGlwLXF0MHc4eVVye2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItY29tbW9uLXRvb2x0aXAtYmcpO2JvcmRlci1yYWRpdXM6MnB4O2RpcmVjdGlvbjpsdHI7ZGlzcGxheTpmbGV4O2ZvbnQtc2l6ZToxNHB4O2xpbmUtaGVpZ2h0OjIxcHg7bWFyZ2luOjAgMjBweDtwYWRkaW5nOjNweCA4cHg7cG9zaXRpb246cmVsYXRpdmU7dG9wOi01MCV9LnRvb2x0aXAtcXQwdzh5VXI6ZGlyKHJ0bCl7ZGlyZWN0aW9uOnJ0bH0uZWFyLXF0MHc4eVVye3Bvc2l0aW9uOmFic29sdXRlO3RvcDo1MCV9LmVhci1xdDB3OHlVcjphZnRlcntib3JkZXI6MCBzb2xpZDtib3JkZXItY29sb3I6dmFyKC0tY29sb3ItY29tbW9uLXRvb2x0aXAtYmcpO2JveC1zaXppbmc6Ym9yZGVyLWJveDtjb250ZW50OiIiO2Rpc3BsYXk6YmxvY2s7aGVpZ2h0OjA7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MH0uZWFyLS1hYm92ZS1xdDB3OHlVcjphZnRlciwuZWFyLS1iZWxvdy1xdDB3OHlVcjphZnRlcntib3JkZXItbGVmdDo2cHggc29saWQ7Ym9yZGVyLWxlZnQtY29sb3I6dmFyKC0tXzAtdDZ4ayk7Ym9yZGVyLXJpZ2h0OjZweCBzb2xpZDtib3JkZXItcmlnaHQtY29sb3I6dmFyKC0tXzAtdDZ4ayk7bGVmdDo1MCU7bWFyZ2luLWxlZnQ6LTZweH0uZWFyLS1iZWxvdy1xdDB3OHlVcjphZnRlcntib3JkZXItYm90dG9tLXdpZHRoOjRweDtib3R0b206MTAwJX0uZWFyLS1hYm92ZS1xdDB3OHlVcjphZnRlcntib3JkZXItdG9wLXdpZHRoOjRweDt0b3A6MTAwJX0uZWFyLS1hZnRlci1xdDB3OHlVcjphZnRlciwuZWFyLS1iZWZvcmUtcXQwdzh5VXI6YWZ0ZXJ7Ym9yZGVyLWJvdHRvbTo2cHggc29saWQ7Ym9yZGVyLWJvdHRvbS1jb2xvcjp2YXIoLS1fMC10NnhrKTtib3JkZXItdG9wOjZweCBzb2xpZDtib3JkZXItdG9wLWNvbG9yOnZhcigtLV8wLXQ2eGspO21hcmdpbi10b3A6LTZweDt0b3A6NTAlfS5lYXItLWJlZm9yZS1xdDB3OHlVcjphZnRlcntib3JkZXItcmlnaHQtd2lkdGg6NHB4O3JpZ2h0OjEwMCV9LmVhci0tYWZ0ZXItcXQwdzh5VXI6YWZ0ZXJ7Ym9yZGVyLWxlZnQtd2lkdGg6NHB4O2xlZnQ6MTAwJX0uZWFyLS1iZWZvcmUtcXQwdzh5VXJ7bGVmdDowfS5lYXItLWFmdGVyLXF0MHc4eVVye2xlZnQ6MTAwJX0uc3dhdGNoLXF0MHc4eVVye2JhY2tncm91bmQtY29sb3I6Y3VycmVudENvbG9yO21hcmdpbi10b3A6NnB4O21hcmdpbi1pbmxpbmUtZW5kOjEwcHh9LnRleHQtcXQwdzh5VXJ7Y29sb3I6I2ZmZjttYXgtd2lkdGg6MjAwcHh9LmNvdW50LXF0MHc4eVVyOmRpcihydGwpe2RpcmVjdGlvbjpsdHJ9LnVuaXQtcXQwdzh5VXJ7Zm9udC1mYW1pbHk6LWFwcGxlLXN5c3RlbSxCbGlua01hY1N5c3RlbUZvbnQsVHJlYnVjaGV0IE1TLFJvYm90byxVYnVudHUsc2Fucy1zZXJpZjtmb250LWZlYXR1cmUtc2V0dGluZ3M6InRudW0iIG9uLCJsbnVtIiBvbjstLXVpLWxpYi10eXBvZ3JhcGh5LWxpbmUtaGVpZ2h0OjE2cHg7bGluZS1oZWlnaHQ6dmFyKC0tdWktbGliLXR5cG9ncmFwaHktbGluZS1oZWlnaHQpOy0tdWktbGliLXR5cG9ncmFwaHktZm9udC1zaXplOjExcHg7Zm9udC1zaXplOnZhcigtLXVpLWxpYi10eXBvZ3JhcGh5LWZvbnQtc2l6ZSk7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC13ZWlnaHQ6NDAwO2xldHRlci1zcGFjaW5nOi40cHg7dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlfS5jb250YWluZXItSzh0ZFhobGR7YWxpZ24taXRlbXM6Y2VudGVyO2NvbG9yOnZhcigtLWNvbG9yLXRvb2xiYXItaW50ZXJhY3RpdmUtZWxlbWVudC10ZXh0LW5vcm1hbCk7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtmb250LXNpemU6MTJweDtsaW5lLWhlaWdodDoxOHB4O3Zpc2liaWxpdHk6aGlkZGVuO3dvcmQtYnJlYWs6a2VlcC1hbGx9LnZpc2libGUtSzh0ZFhobGR7dmlzaWJpbGl0eTp2aXNpYmxlfS5sYWJlbFdyYXAtbkliU25mNWN7YWxpZ24taXRlbXM6Y2VudGVyO2Rpc3BsYXk6ZmxleDtoZWlnaHQ6MDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjB9LmxhYmVsV3JhcC1uSWJTbmY1Yy5sZWZ0LW5JYlNuZjVjLC5sYWJlbFdyYXAtbkliU25mNWMucmlnaHQtbkliU25mNWN7ZGlyZWN0aW9uOmx0cn0ubGFiZWxXcmFwLW5JYlNuZjVjLmxlZnQtbkliU25mNWN7anVzdGlmeS1jb250ZW50OmZsZXgtZW5kfS5sYWJlbFdyYXAtbkliU25mNWMucmlnaHQtbkliU25mNWN7anVzdGlmeS1jb250ZW50OmZsZXgtc3RhcnR9LnBpZUNvbnRhaW5lci1JRTJEanJJUnthbGlnbi1pdGVtczpjZW50ZXI7ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpjZW50ZXI7cG9zaXRpb246cmVsYXRpdmV9LnBpZUNvbnRhaW5lci1JRTJEanJJUi5pbnZhbGlkLUlFMkRqcklSe2hlaWdodDoxMDAlfS5waWVDb250YWluZXItSUUyRGpySVIgLmNoYXJ0LUlFMkRqcklSe292ZXJmbG93OnZpc2libGV9LmNlbnRlclRleHQtSUUyRGpySVJ7YWxpZ24taXRlbXM6Y2VudGVyO2JvcmRlci1yYWRpdXM6NTAlO2NvbG9yOnZhcigtLWNvbG9yLXRvb2xiYXItaW50ZXJhY3RpdmUtZWxlbWVudC10ZXh0LW5vcm1hbCk7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtmb250LXNpemU6MThweDtmb250LXdlaWdodDo3MDA7anVzdGlmeS1jb250ZW50OmNlbnRlcjtsaW5lLWhlaWdodDoyOHB4O292ZXJmbG93OmhpZGRlbjtwb3NpdGlvbjphYnNvbHV0ZTt0ZXh0LWFsaWduOmNlbnRlcjt3b3JkLWJyZWFrOmJyZWFrLXdvcmR9LmNoYXJ0LUlFMkRqcklSe2hlaWdodDoxMDAlO292ZXJmbG93OnZpc2libGU7d2lkdGg6MTAwJX0="}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"unpkg.com/lucide@1.27.0/dist/umd/lucide.js","fqdn":"unpkg.com","domain":"unpkg.com","tld":"com"},"ip":{"addr":"104.18.0.22","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://digital-assettrade.com/","date":"2026-07-27T10:27:12.376Z","timestamp":1785148032376,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"unpkg.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sat, 11 Jul 2026 17:56:32 GMT","end":"Fri, 09 Oct 2026 18:56:21 GMT"},"fingerprint":{"sha1":"81:08:7C:A2:AA:81:B4:77:02:EE:53:FB:23:6F:1D:97:C3:92:2E:A0","sha256":"13:42:07:B0:BF:53:83:27:C3:6E:69:00:B5:F0:1C:58:6C:AD:B4:DD:93:08:84:F0:97:51:3B:60:91:10:85:76"}}},"request":{"raw":"GET /lucide@1.27.0/dist/umd/lucide.js HTTP/1.1\r\nHost: unpkg.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\nReferer: https://digital-assettrade.com/\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ndate: Mon, 27 Jul 2026 10:27:12 GMT\r\ncontent-type: text/javascript; charset=utf-8\r\ncf-ray: a21af3425ad05697-OSL\r\ncf-cache-status: HIT\r\npriority: u=3,i=?0\r\naccess-control-allow-origin: *\r\nage: 134426\r\ncache-control: public, max-age=31536000\r\nexpires: Tue, 27 Jul 2027 10:27:12 GMT\r\nlast-modified: Sat, 25 Jul 2026 21:06:46 GMT\r\nserver: cloudflare\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\nvary: accept-encoding\r\nvia: 1.1 fly.io, 1.1 fly.io\r\naccess-control-allow-headers: *\r\naccess-control-allow-methods: GET, HEAD, OPTIONS\r\naccess-control-expose-headers: *\r\ncross-origin-resource-policy: cross-origin\r\nx-content-type-options: nosniff\r\ncontent-digest: sha256=:5ZV4Nw36EVuNkRnmjQkIGY0A4v5mKyP3a+ANc2+TrcA=:\r\nfly-request-id: 01KYDHGPEV8E0Y4TVSV7B6DXKT-fra\r\ncontent-encoding: gzip\r\nalt-svc: h3=\":443\"; ma=86400\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Fly.io","description":"Fly is a platform for running full stack apps and databases.","website":"https://fly.io","common_platform_enumeration":"","icon":"Fly.io.png","categories":["PaaS"]},{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"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":618557,"size_decoded":112520,"mime_type":"text/javascript; charset=utf-8","magic":"JavaScript source, ASCII text","md5":"e60fa356972c13f43eb4c538d887cc21","sha1":"27dce26a019c5d401975c319dce40f1267516352","sha256":"e59578370dfa115b8d9119e68d0908198d00e2fe662b23f76be00d736f93adc0","sha512":"cdec9c6841fe1a8542f18cedfee514d66e6d01c72e1ae3ee9b9a2faad4717e6bcd4e41ace876e7650315a04e0afa5453f17180364200982fde7535798ce9a916","ssdeep":"6144:gWpE+79UeOhVn3Lb//96NuFS3yyxwqW19f:fWeUVn3Lb//96NIS3yyxwqW19f","tlshash":"33d42425cade2d9d1a127658062eb4470f7840b3394b7c307dbc4b2acf6e01ade675ad","first_seen":"2026-07-26T09:16:44.61207Z","last_seen":"2026-07-27T12:56:20.917621Z","times_seen":20,"resource_available":true,"data":"LyoqCiAqIEBsaWNlbnNlIGx1Y2lkZSB2MS4yNy4wIC0gSVNDCiAqCiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIElTQyBsaWNlbnNlLgogKiBTZWUgdGhlIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS4KICovCgooZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkgewogIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJyA/IGZhY3RvcnkoZXhwb3J0cykgOgogIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJ2V4cG9ydHMnXSwgZmFjdG9yeSkgOgogIChnbG9iYWwgPSB0eXBlb2YgZ2xvYmFsVGhpcyAhPT0gJ3VuZGVmaW5lZCcgPyBnbG9iYWxUaGlzIDogZ2xvYmFsIHx8IHNlbGYsIGZhY3RvcnkoZ2xvYmFsLmx1Y2lkZSA9IHt9KSk7Cn0pKHRoaXMsIChmdW5jdGlvbiAoZXhwb3J0cykgeyAndXNlIHN0cmljdCc7CgogIGNvbnN0IGRlZmF1bHRBdHRyaWJ1dGVzID0gewogICAgeG1sbnM6ICJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsCiAgICB3aWR0aDogMjQsCiAgICBoZWlnaHQ6IDI0LAogICAgdmlld0JveDogIjAgMCAyNCAyNCIsCiAgICBmaWxsOiAibm9uZSIsCiAgICBzdHJva2U6ICJjdXJyZW50Q29sb3IiLAogICAgInN0cm9rZS13aWR0aCI6IDIsCiAgICAic3Ryb2tlLWxpbmVjYXAiOiAicm91bmQiLAogICAgInN0cm9rZS1saW5lam9pbiI6ICJyb3VuZCIKICB9OwoKICBjb25zdCBjcmVhdGVTVkdFbGVtZW50ID0gKFt0YWcsIGF0dHJzLCBjaGlsZHJlbl0pID0+IHsKICAgIGNvbnN0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiwgdGFnKTsKICAgIE9iamVjdC5rZXlzKGF0dHJzKS5mb3JFYWNoKChuYW1lKSA9PiB7CiAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKG5hbWUsIFN0cmluZyhhdHRyc1tuYW1lXSkpOwogICAgfSk7CiAgICBpZiAoY2hpbGRyZW4/Lmxlbmd0aCkgewogICAgICBjaGlsZHJlbi5mb3JFYWNoKChjaGlsZCkgPT4gewogICAgICAgIGNvbnN0IGNoaWxkRWxlbWVudCA9IGNyZWF0ZVNWR0VsZW1lbnQoY2hpbGQpOwogICAgICAgIGVsZW1lbnQuYXBwZW5kQ2hpbGQoY2hpbGRFbGVtZW50KTsKICAgICAgfSk7CiAgICB9CiAgICByZXR1cm4gZWxlbWVudDsKICB9OwogIGNvbnN0IGNyZWF0ZUVsZW1lbnQgPSAoaWNvbk5vZGUsIGN1c3RvbUF0dHJzID0ge30pID0+IHsKICAgIGNvbnN0IHRhZyA9ICJzdmciOwogICAgY29uc3QgYXR0cnMgPSB7CiAgICAgIC4uLmRlZmF1bHRBdHRyaWJ1dGVzLAogICAgICAuLi5jdXN0b21BdHRycwogICAgfTsKICAgIHJldHVybiBjcmVhdGVTVkdFbGVtZW50KFt0YWcsIGF0dHJzLCBpY29uTm9kZV0pOwogIH07CgogIGNvbnN0IGhhc0ExMXlQcm9wID0gKHByb3BzKSA9PiB7CiAgICBmb3IgKGNvbnN0IHByb3AgaW4gcHJvcHMpIHsKICAgICAgaWYgKHByb3Auc3RhcnRzV2l0aCgiYXJpYS0iKSB8fCBwcm9wID09PSAicm9sZSIgfHwgcHJvcCA9PT0gInRpdGxlIikgewogICAgICAgIHJldHVybiB0cnVlOwogICAgICB9CiAgICB9CiAgICByZXR1cm4gZmFsc2U7CiAgfTsKCiAgY29uc3QgbWVyZ2VDbGFzc2VzID0gKC4uLmNsYXNzZXMpID0+IGNsYXNzZXMuZmlsdGVyKChjbGFzc05hbWUsIGluZGV4LCBhcnJheSkgPT4gewogICAgcmV0dXJuIEJvb2xlYW4oY2xhc3NOYW1lKSAmJiBjbGFzc05hbWUudHJpbSgpICE9PSAiIiAmJiBhcnJheS5pbmRleE9mKGNsYXNzTmFtZSkgPT09IGluZGV4OwogIH0pLmpvaW4oIiAiKS50cmltKCk7CgogIGNvbnN0IHRvQ2FtZWxDYXNlID0gKHN0cmluZykgPT4gc3RyaW5nLnJlcGxhY2UoCiAgICAvXihbQS1aXSl8W1xzLV9dKyhcdykvZywKICAgIChtYXRjaCwgcDEsIHAyKSA9PiBwMiA/IHAyLnRvVXBwZXJDYXNlKCkgOiBwMS50b0xvd2VyQ2FzZSgpCiAgKTsKCiAgY29uc3QgdG9QYXNjYWxDYXNlID0gKHN0cmluZykgPT4gewogICAgY29uc3QgY2FtZWxDYXNlID0gdG9DYW1lbENhc2Uoc3RyaW5nKTsKICAgIHJldHVybiBjYW1lbENhc2UuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyBjYW1lbENhc2Uuc2xpY2UoMSk7CiAgfTsKCiAgY29uc3QgZ2V0QXR0cnMgPSAoZWxlbWVudCkgPT4gQXJyYXkuZnJvbShlbGVtZW50LmF0dHJpYnV0ZXMpLnJlZHVjZSgoYXR0cnMsIGF0dHIpID0+IHsKICAgIGF0dHJzW2F0dHIubmFtZV0gPSBhdHRyLnZhbHVlOwogICAgcmV0dXJuIGF0dHJzOwogIH0sIHt9KTsKICBjb25zdCBnZXRDbGFzc05hbWVzID0gKGF0dHJzKSA9PiB7CiAgICBpZiAodHlwZW9mIGF0dHJzID09PSAic3RyaW5nIikgcmV0dXJuIGF0dHJzOwogICAgaWYgKCFhdHRycyB8fCAhYXR0cnMuY2xhc3MpIHJldHVybiAiIjsKICAgIGlmIChhdHRycy5jbGFzcyAmJiB0eXBlb2YgYXR0cnMuY2xhc3MgPT09ICJzdHJpbmciKSB7CiAgICAgIHJldHVybiBhdHRycy5jbGFzcy5zcGxpdCgiICIpOwogICAgfQogICAgaWYgKGF0dHJzLmNsYXNzICYmIEFycmF5LmlzQXJyYXkoYXR0cnMuY2xhc3MpKSB7CiAgICAgIHJldHVybiBhdHRycy5jbGFzczsKICAgIH0KICAgIHJldHVybiAiIjsKICB9OwogIGNvbnN0IHJlcGxhY2VFbGVtZW50ID0gKGVsZW1lbnQsIHsgbmFtZUF0dHIsIGljb25zLCBhdHRycyB9KSA9PiB7CiAgICBjb25zdCBpY29uTmFtZSA9IGVsZW1lbnQuZ2V0QXR0cmlidXRlKG5hbWVBdHRyKTsKICAgIGlmIChpY29uTmFtZSA9PSBudWxsKSByZXR1cm47CiAgICBjb25zdCBDb21wb25lbnROYW1lID0gdG9QYXNjYWxDYXNlKGljb25OYW1lKTsKICAgIGNvbnN0IGljb25Ob2RlID0gaWNvbnNbQ29tcG9uZW50TmFtZV07CiAgICBpZiAoIWljb25Ob2RlKSB7CiAgICAgIHJldHVybiBjb25zb2xlLndhcm4oCiAgICAgICAgYCR7ZWxlbWVudC5vdXRlckhUTUx9IGljb24gbmFtZSB3YXMgbm90IGZvdW5kIGluIHRoZSBwcm92aWRlZCBpY29ucyBvYmplY3QuYAogICAgICApOwogICAgfQogICAgY29uc3QgZWxlbWVudEF0dHJzID0gZ2V0QXR0cnMoZWxlbWVudCk7CiAgICBjb25zdCBhcmlhUHJvcHMgPSBoYXNBMTF5UHJvcChlbGVtZW50QXR0cnMpID8ge30gOiB7ICJhcmlhLWhpZGRlbiI6ICJ0cnVlIiB9OwogICAgY29uc3QgaWNvbkF0dHJzID0gewogICAgICAuLi5kZWZhdWx0QXR0cmlidXRlcywKICAgICAgImRhdGEtbHVjaWRlIjogaWNvbk5hbWUsCiAgICAgIC4uLmFyaWFQcm9wcywKICAgICAgLi4uYXR0cnMsCiAgICAgIC4uLmVsZW1lbnRBdHRycwogICAgfTsKICAgIGNvbnN0IGVsZW1lbnRDbGFzc05hbWVzID0gZ2V0Q2xhc3NOYW1lcyhlbGVtZW50QXR0cnMpOwogICAgY29uc3QgY2xhc3NOYW1lID0gZ2V0Q2xhc3NOYW1lcyhhdHRycyk7CiAgICBjb25zdCBjbGFzc05hbWVzID0gbWVyZ2VDbGFzc2VzKAogICAgICAibHVjaWRlIiwKICAgICAgYGx1Y2lkZS0ke2ljb25OYW1lfWAsCiAgICAgIC4uLmVsZW1lbnRDbGFzc05hbWVzLAogICAgICAuLi5jbGFzc05hbWUKICAgICk7CiAgICBpZiAoY2xhc3NOYW1lcykgewogICAgICBPYmplY3QuYXNzaWduKGljb25BdHRycywgewogICAgICAgIGNsYXNzOiBjbGFzc05hbWVzCiAgICAgIH0pOwogICAgfQogICAgY29uc3Qgc3ZnRWxlbWVudCA9IGNyZWF0ZUVsZW1lbnQoaWNvbk5vZGUsIGljb25BdHRycyk7CiAgICByZXR1cm4gZWxlbWVudC5wYXJlbnROb2RlPy5yZXBsYWNlQ2hpbGQoc3ZnRWxlbWVudCwgZWxlbWVudCk7CiAgfTsKCiAgY29uc3QgQUFycm93VXAgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJtMTQgMTEgNC00IDQgNCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTggMTZWNyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMiAxNiA0LjAzOS05LjY5YS41LjUgMCAwIDEgLjkyMyAwTDExIDE2IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0zLjMwNCAxM2g2LjM5MiIgfV0KICBdOwoKICBjb25zdCBBQXJyb3dEb3duID0gWwogICAgWyJwYXRoIiwgeyBkOiAibTE0IDEyIDQgNCA0LTQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE4IDE2VjciIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTIgMTYgNC4wMzktOS42OWEuNS41IDAgMCAxIC45MjMgMEwxMSAxNiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMy4zMDQgMTNoNi4zOTIiIH1dCiAgXTsKCiAgY29uc3QgQUxhcmdlU21hbGwgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJtMTUgMTYgMi41MzYtNy4zMjhhMS4wMiAxLjAyIDEgMCAxIDEuOTI4IDBMMjIgMTYiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE1LjY5NyAxNGg1LjYwNiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMiAxNiA0LjAzOS05LjY5YS41LjUgMCAwIDEgLjkyMyAwTDExIDE2IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0zLjMwNCAxM2g2LjM5MiIgfV0KICBdOwoKICBjb25zdCBBY2Nlc3NpYmlsaXR5ID0gWwogICAgWyJjaXJjbGUiLCB7IGN4OiAiMTYiLCBjeTogIjQiLCByOiAiMSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMTggMTkgMS03LTYgMSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtNSA4IDMtMyA1LjUgMy0yLjM2IDMuNSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNC4yNCAxNC41YTUgNSAwIDAgMCA2Ljg4IDYiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTEzLjc2IDE3LjVhNSA1IDAgMCAwLTYuODgtNiIgfV0KICBdOwoKICBjb25zdCBBY3Rpdml0eSA9IFsKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk0yMiAxMmgtMi40OGEyIDIgMCAwIDAtMS45MyAxLjQ2bC0yLjM1IDguMzZhLjI1LjI1IDAgMCAxLS40OCAwTDkuMjQgMi4xOGEuMjUuMjUgMCAwIDAtLjQ4IDBsLTIuMzUgOC4zNkEyIDIgMCAwIDEgNC40OSAxMkgyIgogICAgICB9CiAgICBdCiAgXTsKCiAgY29uc3QgQWQgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTAgMTNINiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTAgMTV2LTRhMiAyIDAgMCAwLTQgMHY0IiB9XSwKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk0xNCAxNC41YS41LjUgMCAwIDAgLjUuNWgxYTIuNSAyLjUgMCAwIDAgMi41LTIuNXYtMUEyLjUgMi41IDAgMCAwIDE1LjUgOWgtMWEuNS41IDAgMCAwLS41LjV6IgogICAgICB9CiAgICBdLAogICAgWyJyZWN0IiwgeyB4OiAiMiIsIHk6ICI1Iiwgd2lkdGg6ICIyMCIsIGhlaWdodDogIjE0Iiwgcng6ICIyIiB9XQogIF07CgogIGNvbnN0IEFpclZlbnQgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTggMTcuNWEyLjUgMi41IDAgMSAxLTQgMi4wM1YxMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNiAxMkg0YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ2NWEyIDIgMCAwIDEtMiAyaC0yIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk02IDhoMTIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTYuNiAxNS41NzJBMiAyIDAgMSAwIDEwIDE3di01IiB9XQogIF07CgogIGNvbnN0IEFpcnBsYXkgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNNSAxN0g0YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ2MTBhMiAyIDAgMCAxLTIgMmgtMSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMTIgMTUgNSA2SDdaIiB9XQogIF07CgogIGNvbnN0IEFsYXJtQ2xvY2tDaGVjayA9IFsKICAgIFsiY2lyY2xlIiwgeyBjeDogIjEyIiwgY3k6ICIxMyIsIHI6ICI4IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk01IDMgMiA2IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0yMiA2LTMtMyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNi4zOCAxOC43IDQgMjEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE3LjY0IDE4LjY3IDIwIDIxIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm05IDEzIDIgMiA0LTQiIH1dCiAgXTsKCiAgY29uc3QgQWxhcm1DbG9ja01pbnVzID0gWwogICAgWyJjaXJjbGUiLCB7IGN4OiAiMTIiLCBjeTogIjEzIiwgcjogIjgiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTUgMyAyIDYiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTIyIDYtMy0zIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk02LjM4IDE4LjcgNCAyMSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTcuNjQgMTguNjcgMjAgMjEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTkgMTNoNiIgfV0KICBdOwoKICBjb25zdCBBbGFybUNsb2NrT2ZmID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTYuODcgNi44N2E4IDggMCAxIDAgMTEuMjYgMTEuMjYiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE5LjkgMTQuMjVhOCA4IDAgMCAwLTkuMTUtOS4xNSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMjIgNi0zLTMiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTYuMjYgMTguNjcgNCAyMSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMiAyIDIwIDIwIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk00IDQgMiA2IiB9XQogIF07CgogIGNvbnN0IEFsYXJtQ2xvY2tQbHVzID0gWwogICAgWyJjaXJjbGUiLCB7IGN4OiAiMTIiLCBjeTogIjEzIiwgcjogIjgiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTUgMyAyIDYiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTIyIDYtMy0zIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk02LjM4IDE4LjcgNCAyMSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTcuNjQgMTguNjcgMjAgMjEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDEwdjYiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTkgMTNoNiIgfV0KICBdOwoKICBjb25zdCBBbGFybVNtb2tlID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTExIDIxYzAtMi41IDItMi41IDItNSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTYgMjFjMC0yLjUgMi0yLjUgMi01IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0xOSA4LS44IDNhMS4yNSAxLjI1IDAgMCAxLTEuMiAxSDdhMS4yNSAxLjI1IDAgMCAxLTEuMi0xTDUgOCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMjEgM2ExIDEgMCAwIDEgMSAxdjJhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJWNGExIDEgMCAwIDEgMS0xeiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNiAyMWMwLTIuNSAyLTIuNSAyLTUiIH1dCiAgXTsKCiAgY29uc3QgQWxhcm1DbG9jayA9IFsKICAgIFsiY2lyY2xlIiwgeyBjeDogIjEyIiwgY3k6ICIxMyIsIHI6ICI4IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xMiA5djRsMiAyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk01IDMgMiA2IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0yMiA2LTMtMyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNi4zOCAxOC43IDQgMjEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE3LjY0IDE4LjY3IDIwIDIxIiB9XQogIF07CgogIGNvbnN0IEFsYnVtID0gWwogICAgWyJyZWN0IiwgeyB3aWR0aDogIjE4IiwgaGVpZ2h0OiAiMTgiLCB4OiAiMyIsIHk6ICIzIiwgcng6ICIyIiwgcnk6ICIyIiB9XSwKICAgIFsicG9seWxpbmUiLCB7IHBvaW50czogIjExIDMgMTEgMTEgMTQgOCAxNyAxMSAxNyAzIiB9XQogIF07CgogIGNvbnN0IEFsaWduQ2VudGVySG9yaXpvbnRhbCA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0yIDEyaDIwIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xMCAxNnY0YTIgMiAwIDAgMS0yIDJINmEyIDIgMCAwIDEtMi0ydi00IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xMCA4VjRhMiAyIDAgMCAwLTItMkg2YTIgMiAwIDAgMC0yIDJ2NCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMjAgMTZ2MWEyIDIgMCAwIDEtMiAyaC0yYTIgMiAwIDAgMS0yLTJ2LTEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE0IDhWN2MwLTEuMS45LTIgMi0yaDJhMiAyIDAgMCAxIDIgMnYxIiB9XQogIF07CgogIGNvbnN0IEFsaWduQ2VudGVyVmVydGljYWwgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgMnYyMCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNOCAxMEg0YTIgMiAwIDAgMS0yLTJWNmMwLTEuMS45LTIgMi0yaDQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE2IDEwaDRhMiAyIDAgMCAwIDItMlY2YTIgMiAwIDAgMC0yLTJoLTQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTggMjBIN2EyIDIgMCAwIDEtMi0ydi0yYzAtMS4xLjktMiAyLTJoMSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTYgMTRoMWEyIDIgMCAwIDEgMiAydjJhMiAyIDAgMCAxLTIgMmgtMSIgfV0KICBdOwoKICBjb25zdCBBbGlnbkVuZEhvcml6b250YWwgPSBbCiAgICBbInJlY3QiLCB7IHdpZHRoOiAiNiIsIGhlaWdodDogIjE2IiwgeDogIjQiLCB5OiAiMiIsIHJ4OiAiMiIgfV0sCiAgICBbInJlY3QiLCB7IHdpZHRoOiAiNiIsIGhlaWdodDogIjkiLCB4OiAiMTQiLCB5OiAiOSIsIHJ4OiAiMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMjIgMjJIMiIgfV0KICBdOwoKICBjb25zdCBBbGlnbkVuZFZlcnRpY2FsID0gWwogICAgWyJyZWN0IiwgeyB3aWR0aDogIjE2IiwgaGVpZ2h0OiAiNiIsIHg6ICIyIiwgeTogIjQiLCByeDogIjIiIH1dLAogICAgWyJyZWN0IiwgeyB3aWR0aDogIjkiLCBoZWlnaHQ6ICI2IiwgeDogIjkiLCB5OiAiMTQiLCByeDogIjIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIyIDIyVjIiIH1dCiAgXTsKCiAgY29uc3QgQWxpZ25Ib3Jpem9udGFsRGlzdHJpYnV0ZUNlbnRlciA9IFsKICAgIFsicmVjdCIsIHsgd2lkdGg6ICI2IiwgaGVpZ2h0OiAiMTQiLCB4OiAiNCIsIHk6ICI1Iiwgcng6ICIyIiB9XSwKICAgIFsicmVjdCIsIHsgd2lkdGg6ICI2IiwgaGVpZ2h0OiAiMTAiLCB4OiAiMTQiLCB5OiAiNyIsIHJ4OiAiMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTcgMjJ2LTUiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE3IDdWMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNyAyMnYtMyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNyA1VjIiIH1dCiAgXTsKCiAgY29uc3QgQWxpZ25Ib3Jpem9udGFsRGlzdHJpYnV0ZUVuZCA9IFsKICAgIFsicmVjdCIsIHsgd2lkdGg6ICI2IiwgaGVpZ2h0OiAiMTQiLCB4OiAiNCIsIHk6ICI1Iiwgcng6ICIyIiB9XSwKICAgIFsicmVjdCIsIHsgd2lkdGg6ICI2IiwgaGVpZ2h0OiAiMTAiLCB4OiAiMTQiLCB5OiAiNyIsIHJ4OiAiMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTAgMnYyMCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMjAgMnYyMCIgfV0KICBdOwoKICBjb25zdCBBbGlnbkhvcml6b250YWxEaXN0cmlidXRlU3RhcnQgPSBbCiAgICBbInJlY3QiLCB7IHdpZHRoOiAiNiIsIGhlaWdodDogIjE0IiwgeDogIjQiLCB5OiAiNSIsIHJ4OiAiMiIgfV0sCiAgICBbInJlY3QiLCB7IHdpZHRoOiAiNiIsIGhlaWdodDogIjEwIiwgeDogIjE0IiwgeTogIjciLCByeDogIjIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTQgMnYyMCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTQgMnYyMCIgfV0KICBdOwoKICBjb25zdCBBbGlnbkhvcml6b250YWxKdXN0aWZ5Q2VudGVyID0gWwogICAgWyJyZWN0IiwgeyB3aWR0aDogIjYiLCBoZWlnaHQ6ICIxNCIsIHg6ICIyIiwgeTogIjUiLCByeDogIjIiIH1dLAogICAgWyJyZWN0IiwgeyB3aWR0aDogIjYiLCBoZWlnaHQ6ICIxMCIsIHg6ICIxNiIsIHk6ICI3Iiwgcng6ICIyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xMiAydjIwIiB9XQogIF07CgogIGNvbnN0IEFsaWduSG9yaXpvbnRhbEp1c3RpZnlFbmQgPSBbCiAgICBbInJlY3QiLCB7IHdpZHRoOiAiNiIsIGhlaWdodDogIjE0IiwgeDogIjIiLCB5OiAiNSIsIHJ4OiAiMiIgfV0sCiAgICBbInJlY3QiLCB7IHdpZHRoOiAiNiIsIGhlaWdodDogIjEwIiwgeDogIjEyIiwgeTogIjciLCByeDogIjIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIyIDJ2MjAiIH1dCiAgXTsKCiAgY29uc3QgQWxpZ25Ib3Jpem9udGFsSnVzdGlmeVN0YXJ0ID0gWwogICAgWyJyZWN0IiwgeyB3aWR0aDogIjYiLCBoZWlnaHQ6ICIxNCIsIHg6ICI2IiwgeTogIjUiLCByeDogIjIiIH1dLAogICAgWyJyZWN0IiwgeyB3aWR0aDogIjYiLCBoZWlnaHQ6ICIxMCIsIHg6ICIxNiIsIHk6ICI3Iiwgcng6ICIyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yIDJ2MjAiIH1dCiAgXTsKCiAgY29uc3QgQWxpZ25Ib3Jpem9udGFsU3BhY2VBcm91bmQgPSBbCiAgICBbInJlY3QiLCB7IHdpZHRoOiAiNiIsIGhlaWdodDogIjEwIiwgeDogIjkiLCB5OiAiNyIsIHJ4OiAiMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNCAyMlYyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yMCAyMlYyIiB9XQogIF07CgogIGNvbnN0IEFsaWduSG9yaXpvbnRhbFNwYWNlQmV0d2VlbiA9IFsKICAgIFsicmVjdCIsIHsgd2lkdGg6ICI2IiwgaGVpZ2h0OiAiMTQiLCB4OiAiMyIsIHk6ICI1Iiwgcng6ICIyIiB9XSwKICAgIFsicmVjdCIsIHsgd2lkdGg6ICI2IiwgaGVpZ2h0OiAiMTAiLCB4OiAiMTUiLCB5OiAiNyIsIHJ4OiAiMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMyAydjIwIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yMSAydjIwIiB9XQogIF07CgogIGNvbnN0IEFsaWduU3RhcnRIb3Jpem9udGFsID0gWwogICAgWyJyZWN0IiwgeyB3aWR0aDogIjYiLCBoZWlnaHQ6ICIxNiIsIHg6ICI0IiwgeTogIjYiLCByeDogIjIiIH1dLAogICAgWyJyZWN0IiwgeyB3aWR0aDogIjYiLCBoZWlnaHQ6ICI5IiwgeDogIjE0IiwgeTogIjYiLCByeDogIjIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIyIDJIMiIgfV0KICBdOwoKICBjb25zdCBBbGlnblZlcnRpY2FsRGlzdHJpYnV0ZUNlbnRlciA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0yMiAxN2gtMyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMjIgN2gtNSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNSAxN0gyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk03IDdIMiIgfV0sCiAgICBbInJlY3QiLCB7IHg6ICI1IiwgeTogIjE0Iiwgd2lkdGg6ICIxNCIsIGhlaWdodDogIjYiLCByeDogIjIiIH1dLAogICAgWyJyZWN0IiwgeyB4OiAiNyIsIHk6ICI0Iiwgd2lkdGg6ICIxMCIsIGhlaWdodDogIjYiLCByeDogIjIiIH1dCiAgXTsKCiAgY29uc3QgQWxpZ25TdGFydFZlcnRpY2FsID0gWwogICAgWyJyZWN0IiwgeyB3aWR0aDogIjkiLCBoZWlnaHQ6ICI2IiwgeDogIjYiLCB5OiAiMTQiLCByeDogIjIiIH1dLAogICAgWyJyZWN0IiwgeyB3aWR0aDogIjE2IiwgaGVpZ2h0OiAiNiIsIHg6ICI2IiwgeTogIjQiLCByeDogIjIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIgMnYyMCIgfV0KICBdOwoKICBjb25zdCBBbGlnblZlcnRpY2FsRGlzdHJpYnV0ZUVuZCA9IFsKICAgIFsicmVjdCIsIHsgd2lkdGg6ICIxNCIsIGhlaWdodDogIjYiLCB4OiAiNSIsIHk6ICIxNCIsIHJ4OiAiMiIgfV0sCiAgICBbInJlY3QiLCB7IHdpZHRoOiAiMTAiLCBoZWlnaHQ6ICI2IiwgeDogIjciLCB5OiAiNCIsIHJ4OiAiMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMiAyMGgyMCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMiAxMGgyMCIgfV0KICBdOwoKICBjb25zdCBBbGlnblZlcnRpY2FsRGlzdHJpYnV0ZVN0YXJ0ID0gWwogICAgWyJyZWN0IiwgeyB3aWR0aDogIjE0IiwgaGVpZ2h0OiAiNiIsIHg6ICI1IiwgeTogIjE0Iiwgcng6ICIyIiB9XSwKICAgIFsicmVjdCIsIHsgd2lkdGg6ICIxMCIsIGhlaWdodDogIjYiLCB4OiAiNyIsIHk6ICI0Iiwgcng6ICIyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yIDE0aDIwIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yIDRoMjAiIH1dCiAgXTsKCiAgY29uc3QgQWxpZ25WZXJ0aWNhbEp1c3RpZnlFbmQgPSBbCiAgICBbInJlY3QiLCB7IHdpZHRoOiAiMTQiLCBoZWlnaHQ6ICI2IiwgeDogIjUiLCB5OiAiMTIiLCByeDogIjIiIH1dLAogICAgWyJyZWN0IiwgeyB3aWR0aDogIjEwIiwgaGVpZ2h0OiAiNiIsIHg6ICI3IiwgeTogIjIiLCByeDogIjIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIgMjJoMjAiIH1dCiAgXTsKCiAgY29uc3QgQWxpZ25WZXJ0aWNhbEp1c3RpZnlDZW50ZXIgPSBbCiAgICBbInJlY3QiLCB7IHdpZHRoOiAiMTQiLCBoZWlnaHQ6ICI2IiwgeDogIjUiLCB5OiAiMTYiLCByeDogIjIiIH1dLAogICAgWyJyZWN0IiwgeyB3aWR0aDogIjEwIiwgaGVpZ2h0OiAiNiIsIHg6ICI3IiwgeTogIjIiLCByeDogIjIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIgMTJoMjAiIH1dCiAgXTsKCiAgY29uc3QgQWxpZ25WZXJ0aWNhbEp1c3RpZnlTdGFydCA9IFsKICAgIFsicmVjdCIsIHsgd2lkdGg6ICIxNCIsIGhlaWdodDogIjYiLCB4OiAiNSIsIHk6ICIxNiIsIHJ4OiAiMiIgfV0sCiAgICBbInJlY3QiLCB7IHdpZHRoOiAiMTAiLCBoZWlnaHQ6ICI2IiwgeDogIjciLCB5OiAiNiIsIHJ4OiAiMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMiAyaDIwIiB9XQogIF07CgogIGNvbnN0IEFsaWduVmVydGljYWxTcGFjZUFyb3VuZCA9IFsKICAgIFsicmVjdCIsIHsgd2lkdGg6ICIxMCIsIGhlaWdodDogIjYiLCB4OiAiNyIsIHk6ICI5Iiwgcng6ICIyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yMiAyMEgyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yMiA0SDIiIH1dCiAgXTsKCiAgY29uc3QgQWxpZ25WZXJ0aWNhbFNwYWNlQmV0d2VlbiA9IFsKICAgIFsicmVjdCIsIHsgd2lkdGg6ICIxNCIsIGhlaWdodDogIjYiLCB4OiAiNSIsIHk6ICIxNSIsIHJ4OiAiMiIgfV0sCiAgICBbInJlY3QiLCB7IHdpZHRoOiAiMTAiLCBoZWlnaHQ6ICI2IiwgeDogIjciLCB5OiAiMyIsIHJ4OiAiMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMiAyMWgyMCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMiAzaDIwIiB9XQogIF07CgogIGNvbnN0IEFtYnVsYW5jZSA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xMCAxMEg2IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNCAxOFY2YTIgMiAwIDAgMC0yLTJINGEyIDIgMCAwIDAtMiAydjExYTEgMSAwIDAgMCAxIDFoMiIgfV0sCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMTkgMThoMmExIDEgMCAwIDAgMS0xdi0zLjI4YTEgMSAwIDAgMC0uNjg0LS45NDhsLTEuOTIzLS42NDFhMSAxIDAgMCAxLS41NzgtLjUwMmwtMS41MzktMy4wNzZBMSAxIDAgMCAwIDE2LjM4MiA4SDE0IgogICAgICB9CiAgICBdLAogICAgWyJwYXRoIiwgeyBkOiAiTTggOHY0IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk05IDE4aDYiIH1dLAogICAgWyJjaXJjbGUiLCB7IGN4OiAiMTciLCBjeTogIjE4IiwgcjogIjIiIH1dLAogICAgWyJjaXJjbGUiLCB7IGN4OiAiNyIsIGN5OiAiMTgiLCByOiAiMiIgfV0KICBdOwoKICBjb25zdCBBbXBlcnNhbmQgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTYgMTJoMyIgfV0sCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMTcuNSAxMmE4IDggMCAwIDEtOCA4QTQuNSA0LjUgMCAwIDEgNSAxNS41YzAtNiA4LTQgOC04LjVhMyAzIDAgMSAwLTYgMGMwIDMgMi41IDguNSAxMiAxMyIKICAgICAgfQogICAgXQogIF07CgogIGNvbnN0IEFtcGVyc2FuZHMgPSBbCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgeyBkOiAiTTEwIDE3Yy01LTMtNy03LTctOWEyIDIgMCAwIDEgNCAwYzAgMi41LTUgMi41LTUgNiAwIDEuNyAxLjMgMyAzIDMgMi44IDAgNS0yLjIgNS01IiB9CiAgICBdLAogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsgZDogIk0yMiAxN2MtNS0zLTctNy03LTlhMiAyIDAgMCAxIDQgMGMwIDIuNS01IDIuNS01IDYgMCAxLjcgMS4zIDMgMyAzIDIuOCAwIDUtMi4yIDUtNSIgfQogICAgXQogIF07CgogIGNvbnN0IEFtcGhvcmEgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTAgMnY1LjYzMmMwIC40MjQtLjI3Mi43OTUtLjY1My45ODJBNiA2IDAgMCAwIDYgMTRjLjAwNiA0IDMgNyA1IDgiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTEwIDVIOGEyIDIgMCAwIDAgMCA0aC42OCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTQgMnY1LjYzMmMwIC40MjQuMjcyLjc5NS42NTIuOTgyQTYgNiAwIDAgMSAxOCAxNGMwIDQtMyA3LTUgOCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTQgNWgyYTIgMiAwIDAgMSAwIDRoLS42OCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTggMjJINiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNOSAyaDYiIH1dCiAgXTsKCiAgY29uc3QgQW5jaG9yID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDZ2MTYiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTE5IDEzIDItMWE5IDkgMCAwIDEtMTggMGwyIDEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTkgMTFoNiIgfV0sCiAgICBbImNpcmNsZSIsIHsgY3g6ICIxMiIsIGN5OiAiNCIsIHI6ICIyIiB9XQogIF07CgogIGNvbnN0IEFuZ3J5ID0gWwogICAgWyJjaXJjbGUiLCB7IGN4OiAiMTIiLCBjeTogIjEyIiwgcjogIjEwIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNiAxNnMtMS41LTItNC0yLTQgMi00IDIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTcuNSA4IDEwIDkiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTE0IDkgMi41LTEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTkgMTBoLjAxIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNSAxMGguMDEiIH1dCiAgXTsKCiAgY29uc3QgQW5ub3llZCA9IFsKICAgIFsiY2lyY2xlIiwgeyBjeDogIjEyIiwgY3k6ICIxMiIsIHI6ICIxMCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNOCAxNWg4IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk04IDloMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTQgOWgyIiB9XQogIF07CgogIGNvbnN0IEFudGVubmEgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMiAxMiA3IDIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTcgMTIgNS0xMCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMTIgMTIgNS0xMCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMTcgMTIgNS0xMCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNC41IDdoMTUiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDE2djYiIH1dCiAgXTsKCiAgY29uc3QgQW52aWwgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNNyAxMEg2YTQgNCAwIDAgMS00LTQgMSAxIDAgMCAxIDEtMWg0IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk03IDVhMSAxIDAgMCAxIDEtMWgxM2ExIDEgMCAwIDEgMSAxIDcgNyAwIDAgMS03IDdIOGExIDEgMCAwIDEtMS0xeiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNOSAxMnY1IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNSAxMnY1IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk01IDIwYTMgMyAwIDAgMSAzLTNoOGEzIDMgMCAwIDEgMyAzIDEgMSAwIDAgMS0xIDFINmExIDEgMCAwIDEtMS0xIiB9XQogIF07CgogIGNvbnN0IEFwZXJ0dXJlID0gWwogICAgWyJjaXJjbGUiLCB7IGN4OiAiMTIiLCBjeTogIjEyIiwgcjogIjEwIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0xNC4zMSA4IDUuNzQgOS45NCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNOS42OSA4aDExLjQ4IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm03LjM4IDEyIDUuNzQtOS45NCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNOS42OSAxNiAzLjk1IDYuMDYiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE0LjMxIDE2SDIuODMiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTE2LjYyIDEyLTUuNzQgOS45NCIgfV0KICBdOwoKICBjb25zdCBBcHBXaW5kb3dNYWMgPSBbCiAgICBbInJlY3QiLCB7IHdpZHRoOiAiMjAiLCBoZWlnaHQ6ICIxNiIsIHg6ICIyIiwgeTogIjQiLCByeDogIjIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTYgOGguMDEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTEwIDhoLjAxIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNCA4aC4wMSIgfV0KICBdOwoKICBjb25zdCBBcHBXaW5kb3cgPSBbCiAgICBbInJlY3QiLCB7IHg6ICIyIiwgeTogIjQiLCB3aWR0aDogIjIwIiwgaGVpZ2h0OiAiMTYiLCByeDogIjIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTEwIDR2NCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMiA4aDIwIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk02IDR2NCIgfV0KICBdOwoKICBjb25zdCBBcHBsZSA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xMiA2LjUyOFYzYTEgMSAwIDAgMSAxLTFoMCIgfV0sCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMTguMjM3IDIxQTE1IDE1IDAgMCAwIDIyIDExYTYgNiAwIDAgMC0xMC00LjQ3MkE2IDYgMCAwIDAgMiAxMWExNS4xIDE1LjEgMCAwIDAgMy43NjMgMTAgMyAzIDAgMCAwIDMuNjQ4LjY0OCA1LjUgNS41IDAgMCAxIDUuMTc4IDBBMyAzIDAgMCAwIDE4LjIzNyAyMSIKICAgICAgfQogICAgXQogIF07CgogIGNvbnN0IEFyY2hpdmVSZXN0b3JlID0gWwogICAgWyJyZWN0IiwgeyB3aWR0aDogIjIwIiwgaGVpZ2h0OiAiNSIsIHg6ICIyIiwgeTogIjMiLCByeDogIjEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTQgOHYxMWEyIDIgMCAwIDAgMiAyaDIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIwIDh2MTFhMiAyIDAgMCAxLTIgMmgtMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtOSAxNSAzLTMgMyAzIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xMiAxMnY5IiB9XQogIF07CgogIGNvbnN0IEFyY2hpdmVYID0gWwogICAgWyJyZWN0IiwgeyB3aWR0aDogIjIwIiwgaGVpZ2h0OiAiNSIsIHg6ICIyIiwgeTogIjMiLCByeDogIjEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTQgOHYxMWEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJWOCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtOS41IDE3IDUtNSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtOS41IDEyIDUgNSIgfV0KICBdOwoKICBjb25zdCBBcmNoaXZlID0gWwogICAgWyJyZWN0IiwgeyB3aWR0aDogIjIwIiwgaGVpZ2h0OiAiNSIsIHg6ICIyIiwgeTogIjMiLCByeDogIjEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTQgOHYxMWEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJWOCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTAgMTJoNCIgfV0KICBdOwoKICBjb25zdCBBcm1jaGFpciA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xOSA5VjZhMiAyIDAgMCAwLTItMkg3YTIgMiAwIDAgMC0yIDJ2MyIgfV0sCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMyAxNmEyIDIgMCAwIDAgMiAyaDE0YTIgMiAwIDAgMCAyLTJ2LTVhMiAyIDAgMCAwLTQgMHYxLjVhLjUuNSAwIDAgMS0uNS41aC05YS41LjUgMCAwIDEtLjUtLjVWMTFhMiAyIDAgMCAwLTQgMHoiCiAgICAgIH0KICAgIF0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNSAxOHYyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xOSAxOHYyIiB9XQogIF07CgogIGNvbnN0IEFycm93QmlnRG93bkRhc2ggPSBbCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMTQgOGExIDEgMCAwIDEgMSAxdjJhMSAxIDAgMCAwIDEgMWgzLjI5M2EuNzA3LjcwNyAwIDAgMSAuNSAxLjIwN2wtNi45MzkgNi45MzlhMS4yMDcgMS4yMDcgMCAwIDEtMS43MDggMGwtNi45NC02Ljk0YS43MDcuNzA3IDAgMCAxIC41LTEuMjA2SDhhMSAxIDAgMCAwIDEtMVY5YTEgMSAwIDAgMSAxLTF6IgogICAgICB9CiAgICBdLAogICAgWyJwYXRoIiwgeyBkOiAiTTkgNGg2IiB9XQogIF07CgogIGNvbnN0IEFycm93QmlnRG93biA9IFsKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk05IDVhMSAxIDAgMCAxIDEtMWg0YTEgMSAwIDAgMSAxIDF2NmExIDEgMCAwIDAgMSAxaDMuMjkzYS43MDcuNzA3IDAgMCAxIC41IDEuMjA3bC03LjA4NiA3LjA4NmExIDEgMCAwIDEtMS40MTQgMGwtNy4wODYtNy4wODZhLjcwNy43MDcgMCAwIDEgLjUtMS4yMDdIOGExIDEgMCAwIDAgMS0xeiIKICAgICAgfQogICAgXQogIF07CgogIGNvbnN0IEFycm93QmlnTGVmdERhc2ggPSBbCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMTMgOWExIDEgMCAwIDEtMS0xVjQuNzA3YS43MDcuNzA3IDAgMCAwLTEuMjA3LS41bC02Ljk0IDYuOTRhMS4yMDcgMS4yMDcgMCAwIDAgMCAxLjcwN2w2Ljk0IDYuOTRhLjcwNy43MDcgMCAwIDAgMS4yMDctLjVWMTZhMSAxIDAgMCAxIDEtMWgyYTEgMSAwIDAgMCAxLTF2LTRhMSAxIDAgMCAwLTEtMXoiCiAgICAgIH0KICAgIF0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMjAgOXY2IiB9XQogIF07CgogIGNvbnN0IEFycm93QmlnUmlnaHREYXNoID0gWwogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTExIDlhMSAxIDAgMCAwIDEtMVY0LjcwN2EuNzA3LjcwNyAwIDAgMSAxLjIwNy0uNWw2Ljk0IDYuOTRhMS4yMDcgMS4yMDcgMCAwIDEgMCAxLjcwN2wtNi45NCA2Ljk0YS43MDcuNzA3IDAgMCAxLTEuMjA3LS41VjE2YTEgMSAwIDAgMC0xLTFIOWExIDEgMCAwIDEtMS0xdi00YTEgMSAwIDAgMSAxLTF6IgogICAgICB9CiAgICBdLAogICAgWyJwYXRoIiwgeyBkOiAiTTQgOXY2IiB9XQogIF07CgogIGNvbnN0IEFycm93QmlnTGVmdCA9IFsKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk0xMC43OTMgMTkuNzkzYS43MDcuNzA3IDAgMCAwIDEuMjA3LS41VjE2YTEgMSAwIDAgMSAxLTFoNmExIDEgMCAwIDAgMS0xdi00YTEgMSAwIDAgMC0xLTFoLTZhMSAxIDAgMCAxLTEtMVY0LjcwN2EuNzA3LjcwNyAwIDAgMC0xLjIwNy0uNWwtNi45NCA2Ljk0YTEuMjA3IDEuMjA3IDAgMCAwIDAgMS43MDd6IgogICAgICB9CiAgICBdCiAgXTsKCiAgY29uc3QgQXJyb3dCaWdVcERhc2ggPSBbCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMTQgMTZhMSAxIDAgMCAwIDEtMXYtMmExIDEgMCAwIDEgMS0xaDMuMjkzYS43MDcuNzA3IDAgMCAwIC41LTEuMjA3bC02LjkzOS02LjkzOWExLjIwNyAxLjIwNyAwIDAgMC0xLjcwOCAwbC02Ljk0IDYuOTRhLjcwNy43MDcgMCAwIDAgLjUgMS4yMDZIOGExIDEgMCAwIDEgMSAxdjJhMSAxIDAgMCAwIDEgMXoiCiAgICAgIH0KICAgIF0sCiAgICBbInBhdGgiLCB7IGQ6ICJNOSAyMGg2IiB9XQogIF07CgogIGNvbnN0IEFycm93QmlnUmlnaHQgPSBbCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMTMuMjA3IDE5Ljc5M2EuNzA3LjcwNyAwIDAgMS0xLjIwNy0uNVYxNmExIDEgMCAwIDAtMS0xSDVhMSAxIDAgMCAxLTEtMXYtNGExIDEgMCAwIDEgMS0xaDZhMSAxIDAgMCAwIDEtMVY0LjcwN2EuNzA3LjcwNyAwIDAgMSAxLjIwNy0uNWw2Ljk0IDYuOTRhMS4yMDcgMS4yMDcgMCAwIDEgMCAxLjcwN3oiCiAgICAgIH0KICAgIF0KICBdOwoKICBjb25zdCBBcnJvd0JpZ1VwID0gWwogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTkgMTlhMSAxIDAgMCAwIDEgMWg0YTEgMSAwIDAgMCAxLTF2LTZhMSAxIDAgMCAxIDEtMWgzLjI5M2EuNzA3LjcwNyAwIDAgMCAuNS0xLjIwN2wtNy4wODYtNy4wODZhMSAxIDAgMCAwLTEuNDE0IDBsLTcuMDg2IDcuMDg2YS43MDcuNzA3IDAgMCAwIC41IDEuMjA3SDhhMSAxIDAgMCAxIDEgMXoiCiAgICAgIH0KICAgIF0KICBdOwoKICBjb25zdCBBcnJvd0Rvd24wMSA9IFsKICAgIFsicGF0aCIsIHsgZDogIm0zIDE2IDQgNCA0LTQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTcgMjBWNCIgfV0sCiAgICBbInJlY3QiLCB7IHg6ICIxNSIsIHk6ICI0Iiwgd2lkdGg6ICI0IiwgaGVpZ2h0OiAiNiIsIHJ5OiAiMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTcgMjB2LTZoLTIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE1IDIwaDQiIH1dCiAgXTsKCiAgY29uc3QgQXJyb3dEb3duMTAgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJtMyAxNiA0IDQgNC00IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk03IDIwVjQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE3IDEwVjRoLTIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE1IDEwaDQiIH1dLAogICAgWyJyZWN0IiwgeyB4OiAiMTUiLCB5OiAiMTQiLCB3aWR0aDogIjQiLCBoZWlnaHQ6ICI2Iiwgcnk6ICIyIiB9XQogIF07CgogIGNvbnN0IEFycm93RG93bkZyb21MaW5lID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTE5IDNINSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgMjFWNyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtNiAxNSA2IDYgNi02IiB9XQogIF07CgogIGNvbnN0IEFycm93RG93bkFaID0gWwogICAgWyJwYXRoIiwgeyBkOiAibTMgMTYgNCA0IDQtNCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNyAyMFY0IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yMCA4aC01IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNSAxMFY2LjVhMi41IDIuNSAwIDAgMSA1IDBWMTAiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE1IDE0aDVsLTUgNmg1IiB9XQogIF07CgogIGNvbnN0IEFycm93RG93bkxlZnQgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTcgNyA3IDE3IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNyAxN0g3VjciIH1dCiAgXTsKCiAgY29uc3QgQXJyb3dEb3duTmFycm93V2lkZSA9IFsKICAgIFsicGF0aCIsIHsgZDogIm0zIDE2IDQgNCA0LTQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTcgMjBWNCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTEgNGg0IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xMSA4aDciIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTExIDEyaDEwIiB9XQogIF07CgogIGNvbnN0IEFycm93RG93blRvRG90ID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDJ2MTQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTE5IDktNyA3LTctNyIgfV0sCiAgICBbImNpcmNsZSIsIHsgY3g6ICIxMiIsIGN5OiAiMjEiLCByOiAiMSIgfV0KICBdOwoKICBjb25zdCBBcnJvd0Rvd25SaWdodCA9IFsKICAgIFsicGF0aCIsIHsgZDogIm03IDcgMTAgMTAiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE3IDd2MTBINyIgfV0KICBdOwoKICBjb25zdCBBcnJvd0Rvd25Ub0xpbmUgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgMTdWMyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtNiAxMSA2IDYgNi02IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xOSAyMUg1IiB9XQogIF07CgogIGNvbnN0IEFycm93RG93blVwID0gWwogICAgWyJwYXRoIiwgeyBkOiAibTMgMTYgNCA0IDQtNCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNyAyMFY0IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0yMSA4LTQtNC00IDQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE3IDR2MTYiIH1dCiAgXTsKCiAgY29uc3QgQXJyb3dEb3duV2lkZU5hcnJvdyA9IFsKICAgIFsicGF0aCIsIHsgZDogIm0zIDE2IDQgNCA0LTQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTcgMjBWNCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTEgNGgxMCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTEgOGg3IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xMSAxMmg0IiB9XQogIF07CgogIGNvbnN0IEFycm93RG93blpBID0gWwogICAgWyJwYXRoIiwgeyBkOiAibTMgMTYgNCA0IDQtNCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNyA0djE2IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNSA0aDVsLTUgNmg1IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNSAyMHYtMy41YTIuNSAyLjUgMCAwIDEgNSAwVjIwIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yMCAxOGgtNSIgfV0KICBdOwoKICBjb25zdCBBcnJvd0Rvd24gPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgNXYxNCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMTkgMTItNyA3LTctNyIgfV0KICBdOwoKICBjb25zdCBBcnJvd0xlZnRGcm9tTGluZSA9IFsKICAgIFsicGF0aCIsIHsgZDogIm05IDYtNiA2IDYgNiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMyAxMmgxNCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMjEgMTlWNSIgfV0KICBdOwoKICBjb25zdCBBcnJvd0xlZnRSaWdodCA9IFsKICAgIFsicGF0aCIsIHsgZDogIk04IDMgNCA3bDQgNCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNCA3aDE2IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0xNiAyMSA0LTQtNC00IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yMCAxN0g0IiB9XQogIF07CgogIGNvbnN0IEFycm93TGVmdFRvTGluZSA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0zIDE5VjUiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTEzIDYtNiA2IDYgNiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNyAxMmgxNCIgfV0KICBdOwoKICBjb25zdCBBcnJvd0xlZnQgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJtMTIgMTktNy03IDctNyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTkgMTJINSIgfV0KICBdOwoKICBjb25zdCBBcnJvd1JpZ2h0RnJvbUxpbmUgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMyA1djE0IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yMSAxMkg3IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0xNSAxOCA2LTYtNi02IiB9XQogIF07CgogIGNvbnN0IEFycm93UmlnaHRMZWZ0ID0gWwogICAgWyJwYXRoIiwgeyBkOiAibTE2IDMgNCA0LTQgNCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMjAgN0g0IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm04IDIxLTQtNCA0LTQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTQgMTdoMTYiIH1dCiAgXTsKCiAgY29uc3QgQXJyb3dSaWdodFRvTGluZSA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xNyAxMkgzIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0xMSAxOCA2LTYtNi02IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yMSA1djE0IiB9XQogIF07CgogIGNvbnN0IEFycm93UmlnaHQgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNNSAxMmgxNCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMTIgNSA3IDctNyA3IiB9XQogIF07CgogIGNvbnN0IEFycm93VXAwMSA9IFsKICAgIFsicGF0aCIsIHsgZDogIm0zIDggNC00IDQgNCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNyA0djE2IiB9XSwKICAgIFsicmVjdCIsIHsgeDogIjE1IiwgeTogIjQiLCB3aWR0aDogIjQiLCBoZWlnaHQ6ICI2Iiwgcnk6ICIyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNyAyMHYtNmgtMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTUgMjBoNCIgfV0KICBdOwoKICBjb25zdCBBcnJvd1VwMTAgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJtMyA4IDQtNCA0IDQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTcgNHYxNiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTcgMTBWNGgtMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTUgMTBoNCIgfV0sCiAgICBbInJlY3QiLCB7IHg6ICIxNSIsIHk6ICIxNCIsIHdpZHRoOiAiNCIsIGhlaWdodDogIjYiLCByeTogIjIiIH1dCiAgXTsKCiAgY29uc3QgQXJyb3dVcEFaID0gWwogICAgWyJwYXRoIiwgeyBkOiAibTMgOCA0LTQgNCA0IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk03IDR2MTYiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIwIDhoLTUiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE1IDEwVjYuNWEyLjUgMi41IDAgMCAxIDUgMFYxMCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTUgMTRoNWwtNSA2aDUiIH1dCiAgXTsKCiAgY29uc3QgQXJyb3dVcERvd24gPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJtMjEgMTYtNCA0LTQtNCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTcgMjBWNCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMyA4IDQtNCA0IDQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTcgNHYxNiIgfV0KICBdOwoKICBjb25zdCBBcnJvd1VwRnJvbURvdCA9IFsKICAgIFsicGF0aCIsIHsgZDogIm01IDkgNy03IDcgNyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgMTZWMiIgfV0sCiAgICBbImNpcmNsZSIsIHsgY3g6ICIxMiIsIGN5OiAiMjEiLCByOiAiMSIgfV0KICBdOwoKICBjb25zdCBBcnJvd1VwRnJvbUxpbmUgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJtMTggOS02LTYtNiA2IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xMiAzdjE0IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk01IDIxaDE0IiB9XQogIF07CgogIGNvbnN0IEFycm93VXBMZWZ0ID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTcgMTdWN2gxMCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTcgMTcgNyA3IiB9XQogIF07CgogIGNvbnN0IEFycm93VXBOYXJyb3dXaWRlID0gWwogICAgWyJwYXRoIiwgeyBkOiAibTMgOCA0LTQgNCA0IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk03IDR2MTYiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTExIDEyaDQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTExIDE2aDciIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTExIDIwaDEwIiB9XQogIF07CgogIGNvbnN0IEFycm93VXBSaWdodCA9IFsKICAgIFsicGF0aCIsIHsgZDogIk03IDdoMTB2MTAiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTcgMTcgMTcgNyIgfV0KICBdOwoKICBjb25zdCBBcnJvd1VwVG9MaW5lID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTUgM2gxNCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMTggMTMtNi02LTYgNiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgN3YxNCIgfV0KICBdOwoKICBjb25zdCBBcnJvd1VwV2lkZU5hcnJvdyA9IFsKICAgIFsicGF0aCIsIHsgZDogIm0zIDggNC00IDQgNCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNyA0djE2IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xMSAxMmgxMCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTEgMTZoNyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTEgMjBoNCIgfV0KICBdOwoKICBjb25zdCBBcnJvd1VwWkEgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJtMyA4IDQtNCA0IDQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTcgNHYxNiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTUgNGg1bC01IDZoNSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTUgMjB2LTMuNWEyLjUgMi41IDAgMCAxIDUgMFYyMCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMjAgMThoLTUiIH1dCiAgXTsKCiAgY29uc3QgQXJyb3dVcCA9IFsKICAgIFsicGF0aCIsIHsgZDogIm01IDEyIDctNyA3IDciIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDE5VjUiIH1dCiAgXTsKCiAgY29uc3QgQXN0ZXJpc2sgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgNnYxMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTcuMTk2IDkgNi44MDQgMTUiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTYuODA0IDkgMTAuMzkyIDYiIH1dCiAgXTsKCiAgY29uc3QgQXJyb3dzVXBGcm9tTGluZSA9IFsKICAgIFsicGF0aCIsIHsgZDogIm00IDYgMy0zIDMgMyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNyAxN1YzIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0xNCA2IDMtMyAzIDMiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE3IDE3VjMiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTQgMjFoMTYiIH1dCiAgXTsKCiAgY29uc3QgQXN0cm9pZCA9IFsKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk0xMi45ODMgMjEuMTg2YTEgMSAwIDAgMS0xLjk2NiAwIDEwIDEwIDAgMCAwLTguMjAzLTguMjAzIDEgMSAwIDAgMSAwLTEuOTY2IDEwIDEwIDAgMCAwIDguMjAzLTguMjAzIDEgMSAwIDAgMSAxLjk2NiAwIDEwIDEwIDAgMCAwIDguMjAzIDguMjAzIDEgMSAwIDAgMSAwIDEuOTY2IDEwIDEwIDAgMCAwLTguMjAzIDguMjAzIgogICAgICB9CiAgICBdCiAgXTsKCiAgY29uc3QgQXRTaWduID0gWwogICAgWyJjaXJjbGUiLCB7IGN4OiAiMTIiLCBjeTogIjEyIiwgcjogIjQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE2IDh2NWEzIDMgMCAwIDAgNiAwdi0xYTEwIDEwIDAgMSAwLTQgOCIgfV0KICBdOwoKICBjb25zdCBBdG9tID0gWwogICAgWyJjaXJjbGUiLCB7IGN4OiAiMTIiLCBjeTogIjEyIiwgcjogIjEiIH1dLAogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTIwLjIgMjAuMmMyLjA0LTIuMDMuMDItNy4zNi00LjUtMTEuOS00LjU0LTQuNTItOS44Ny02LjU0LTExLjktNC41LTIuMDQgMi4wMy0uMDIgNy4zNiA0LjUgMTEuOSA0LjU0IDQuNTIgOS44NyA2LjU0IDExLjkgNC41WiIKICAgICAgfQogICAgXSwKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk0xNS43IDE1LjdjNC41Mi00LjU0IDYuNTQtOS44NyA0LjUtMTEuOS0yLjAzLTIuMDQtNy4zNi0uMDItMTEuOSA0LjUtNC41MiA0LjU0LTYuNTQgOS44Ny00LjUgMTEuOSAyLjAzIDIuMDQgNy4zNi4wMiAxMS45LTQuNVoiCiAgICAgIH0KICAgIF0KICBdOwoKICBjb25zdCBBdWRpb0xpbmVzID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTIgMTB2MyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNiA2djExIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xMCAzdjE4IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNCA4djciIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE4IDV2MTMiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIyIDEwdjMiIH1dCiAgXTsKCiAgY29uc3QgQXVkaW9XYXZlZm9ybSA9IFsKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk0yIDEzYTIgMiAwIDAgMCAyLTJWN2EyIDIgMCAwIDEgNCAwdjEzYTIgMiAwIDAgMCA0IDBWNGEyIDIgMCAwIDEgNCAwdjEzYTIgMiAwIDAgMCA0IDB2LTRhMiAyIDAgMCAxIDItMiIKICAgICAgfQogICAgXQogIF07CgogIGNvbnN0IEF3YXJkID0gWwogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAibTE1LjQ3NyAxMi44OSAxLjUxNSA4LjUyNmEuNS41IDAgMCAxLS44MS40N2wtMy41OC0yLjY4N2ExIDEgMCAwIDAtMS4xOTcgMGwtMy41ODYgMi42ODZhLjUuNSAwIDAgMS0uODEtLjQ2OWwxLjUxNC04LjUyNiIKICAgICAgfQogICAgXSwKICAgIFsiY2lyY2xlIiwgeyBjeDogIjEyIiwgY3k6ICI4IiwgcjogIjYiIH1dCiAgXTsKCiAgY29uc3QgQXhlID0gWwogICAgWyJwYXRoIiwgeyBkOiAibTE0IDEyLTguMzgxIDguMzhhMSAxIDAgMCAxLTMuMDAxLTNMMTEgOSIgfV0sCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMTUgMTUuNWEuNS41IDAgMCAwIC41LjVBNi41IDYuNSAwIDAgMCAyMiA5LjVhLjUuNSAwIDAgMC0uNS0uNWgtMS42NzJhMiAyIDAgMCAxLTEuNDE0LS41ODZsLTUuMDYyLTUuMDYyYTEuMjA1IDEuMjA1IDAgMCAwLTEuNzA0IDBMOS4zNTIgNS42NDhhMS4yMDUgMS4yMDUgMCAwIDAgMCAxLjcwNGw1LjA2MiA1LjA2MkEyIDIgMCAwIDEgMTUgMTMuODI4eiIKICAgICAgfQogICAgXQogIF07CgogIGNvbnN0IEF4aXMzZCA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xMy41IDEwLjUgMTUgOSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNCA0djE1YTEgMSAwIDAgMCAxIDFoMTUiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTQuMjkzIDE5LjcwNyA2IDE4IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm05IDE1IDEuNS0xLjUiIH1dCiAgXTsKCiAgY29uc3QgQmFieSA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xMCAxNmMuNS4zIDEuMi41IDIgLjVzMS41LS4yIDItLjUiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE1IDEyaC4wMSIgfV0sCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMTkuMzggNi44MTNBOSA5IDAgMCAxIDIwLjggMTAuMmEyIDIgMCAwIDEgMCAzLjYgOSA5IDAgMCAxLTE3LjYgMCAyIDIgMCAwIDEgMC0zLjZBOSA5IDAgMCAxIDEyIDNjMiAwIDMuNSAxLjEgMy41IDIuNXMtLjkgMi41LTIgMi41Yy0uOCAwLTEuNS0uNC0xLjUtMSIKICAgICAgfQogICAgXSwKICAgIFsicGF0aCIsIHsgZDogIk05IDEyaC4wMSIgfV0KICBdOwoKICBjb25zdCBCYWNrcGFjayA9IFsKICAgIFsicGF0aCIsIHsgZDogIk00IDEwYTQgNCAwIDAgMSA0LTRoOGE0IDQgMCAwIDEgNCA0djEwYTIgMiAwIDAgMS0yIDJINmEyIDIgMCAwIDEtMi0yeiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNOCAxMGg4IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk04IDE4aDgiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTggMjJ2LTZhMiAyIDAgMCAxIDItMmg0YTIgMiAwIDAgMSAyIDJ2NiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNOSA2VjRhMiAyIDAgMCAxIDItMmgyYTIgMiAwIDAgMSAyIDJ2MiIgfV0KICBdOwoKICBjb25zdCBCYWRnZUFsZXJ0ID0gWwogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTMuODUgOC42MmE0IDQgMCAwIDEgNC43OC00Ljc3IDQgNCAwIDAgMSA2Ljc0IDAgNCA0IDAgMCAxIDQuNzggNC43OCA0IDQgMCAwIDEgMCA2Ljc0IDQgNCAwIDAgMS00Ljc3IDQuNzggNCA0IDAgMCAxLTYuNzUgMCA0IDQgMCAwIDEtNC43OC00Ljc3IDQgNCAwIDAgMSAwLTYuNzZaIgogICAgICB9CiAgICBdLAogICAgWyJsaW5lIiwgeyB4MTogIjEyIiwgeDI6ICIxMiIsIHkxOiAiOCIsIHkyOiAiMTIiIH1dLAogICAgWyJsaW5lIiwgeyB4MTogIjEyIiwgeDI6ICIxMi4wMSIsIHkxOiAiMTYiLCB5MjogIjE2IiB9XQogIF07CgogIGNvbnN0IEJhZGdlQ2VudCA9IFsKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk0zLjg1IDguNjJhNCA0IDAgMCAxIDQuNzgtNC43NyA0IDQgMCAwIDEgNi43NCAwIDQgNCAwIDAgMSA0Ljc4IDQuNzggNCA0IDAgMCAxIDAgNi43NCA0IDQgMCAwIDEtNC43NyA0Ljc4IDQgNCAwIDAgMS02Ljc1IDAgNCA0IDAgMCAxLTQuNzgtNC43NyA0IDQgMCAwIDEgMC02Ljc2WiIKICAgICAgfQogICAgXSwKICAgIFsicGF0aCIsIHsgZDogIk0xMiA3djEwIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNS40IDEwYTQgNCAwIDEgMCAwIDQiIH1dCiAgXTsKCiAgY29uc3QgQmFkZ2VDaGVjayA9IFsKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk0zLjg1IDguNjJhNCA0IDAgMCAxIDQuNzgtNC43NyA0IDQgMCAwIDEgNi43NCAwIDQgNCAwIDAgMSA0Ljc4IDQuNzggNCA0IDAgMCAxIDAgNi43NCA0IDQgMCAwIDEtNC43NyA0Ljc4IDQgNCAwIDAgMS02Ljc1IDAgNCA0IDAgMCAxLTQuNzgtNC43NyA0IDQgMCAwIDEgMC02Ljc2WiIKICAgICAgfQogICAgXSwKICAgIFsicGF0aCIsIHsgZDogIm05IDEyIDIgMiA0LTQiIH1dCiAgXTsKCiAgY29uc3QgQmFkZ2VEb2xsYXJTaWduID0gWwogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTMuODUgOC42MmE0IDQgMCAwIDEgNC43OC00Ljc3IDQgNCAwIDAgMSA2Ljc0IDAgNCA0IDAgMCAxIDQuNzggNC43OCA0IDQgMCAwIDEgMCA2Ljc0IDQgNCAwIDAgMS00Ljc3IDQuNzggNCA0IDAgMCAxLTYuNzUgMCA0IDQgMCAwIDEtNC43OC00Ljc3IDQgNCAwIDAgMSAwLTYuNzZaIgogICAgICB9CiAgICBdLAogICAgWyJwYXRoIiwgeyBkOiAiTTE2IDhoLTZhMiAyIDAgMSAwIDAgNGg0YTIgMiAwIDEgMSAwIDRIOCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgMThWNiIgfV0KICBdOwoKICBjb25zdCBCYWRnZUV1cm8gPSBbCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMy44NSA4LjYyYTQgNCAwIDAgMSA0Ljc4LTQuNzcgNCA0IDAgMCAxIDYuNzQgMCA0IDQgMCAwIDEgNC43OCA0Ljc4IDQgNCAwIDAgMSAwIDYuNzQgNCA0IDAgMCAxLTQuNzcgNC43OCA0IDQgMCAwIDEtNi43NSAwIDQgNCAwIDAgMS00Ljc4LTQuNzcgNCA0IDAgMCAxIDAtNi43NloiCiAgICAgIH0KICAgIF0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNyAxMmg1IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNSA5LjRhNCA0IDAgMSAwIDAgNS4yIiB9XQogIF07CgogIGNvbnN0IEJhZGdlSW5kaWFuUnVwZWUgPSBbCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMy44NSA4LjYyYTQgNCAwIDAgMSA0Ljc4LTQuNzcgNCA0IDAgMCAxIDYuNzQgMCA0IDQgMCAwIDEgNC43OCA0Ljc4IDQgNCAwIDAgMSAwIDYuNzQgNCA0IDAgMCAxLTQuNzcgNC43OCA0IDQgMCAwIDEtNi43NSAwIDQgNCAwIDAgMS00Ljc4LTQuNzcgNCA0IDAgMCAxIDAtNi43NloiCiAgICAgIH0KICAgIF0sCiAgICBbInBhdGgiLCB7IGQ6ICJNOCA4aDgiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTggMTJoOCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMTMgMTctNS0xaDFhNCA0IDAgMCAwIDAtOCIgfV0KICBdOwoKICBjb25zdCBCYWRnZUluZm8gPSBbCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMy44NSA4LjYyYTQgNCAwIDAgMSA0Ljc4LTQuNzcgNCA0IDAgMCAxIDYuNzQgMCA0IDQgMCAwIDEgNC43OCA0Ljc4IDQgNCAwIDAgMSAwIDYuNzQgNCA0IDAgMCAxLTQuNzcgNC43OCA0IDQgMCAwIDEtNi43NSAwIDQgNCAwIDAgMS00Ljc4LTQuNzcgNCA0IDAgMCAxIDAtNi43NloiCiAgICAgIH0KICAgIF0sCiAgICBbImxpbmUiLCB7IHgxOiAiMTIiLCB4MjogIjEyIiwgeTE6ICIxNiIsIHkyOiAiMTIiIH1dLAogICAgWyJsaW5lIiwgeyB4MTogIjEyIiwgeDI6ICIxMi4wMSIsIHkxOiAiOCIsIHkyOiAiOCIgfV0KICBdOwoKICBjb25zdCBCYWRnZUphcGFuZXNlWWVuID0gWwogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTMuODUgOC42MmE0IDQgMCAwIDEgNC43OC00Ljc3IDQgNCAwIDAgMSA2Ljc0IDAgNCA0IDAgMCAxIDQuNzggNC43OCA0IDQgMCAwIDEgMCA2Ljc0IDQgNCAwIDAgMS00Ljc3IDQuNzggNCA0IDAgMCAxLTYuNzUgMCA0IDQgMCAwIDEtNC43OC00Ljc3IDQgNCAwIDAgMSAwLTYuNzZaIgogICAgICB9CiAgICBdLAogICAgWyJwYXRoIiwgeyBkOiAibTkgOCAzIDN2NyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMTIgMTEgMy0zIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk05IDEyaDYiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTkgMTZoNiIgfV0KICBdOwoKICBjb25zdCBCYWRnZU1pbnVzID0gWwogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTMuODUgOC42MmE0IDQgMCAwIDEgNC43OC00Ljc3IDQgNCAwIDAgMSA2Ljc0IDAgNCA0IDAgMCAxIDQuNzggNC43OCA0IDQgMCAwIDEgMCA2Ljc0IDQgNCAwIDAgMS00Ljc3IDQuNzggNCA0IDAgMCAxLTYuNzUgMCA0IDQgMCAwIDEtNC43OC00Ljc3IDQgNCAwIDAgMSAwLTYuNzZaIgogICAgICB9CiAgICBdLAogICAgWyJsaW5lIiwgeyB4MTogIjgiLCB4MjogIjE2IiwgeTE6ICIxMiIsIHkyOiAiMTIiIH1dCiAgXTsKCiAgY29uc3QgQmFkZ2VQZXJjZW50ID0gWwogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTMuODUgOC42MmE0IDQgMCAwIDEgNC43OC00Ljc3IDQgNCAwIDAgMSA2Ljc0IDAgNCA0IDAgMCAxIDQuNzggNC43OCA0IDQgMCAwIDEgMCA2Ljc0IDQgNCAwIDAgMS00Ljc3IDQuNzggNCA0IDAgMCAxLTYuNzUgMCA0IDQgMCAwIDEtNC43OC00Ljc3IDQgNCAwIDAgMSAwLTYuNzZaIgogICAgICB9CiAgICBdLAogICAgWyJwYXRoIiwgeyBkOiAibTE1IDktNiA2IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk05IDloLjAxIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNSAxNWguMDEiIH1dCiAgXTsKCiAgY29uc3QgQmFkZ2VQbHVzID0gWwogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTMuODUgOC42MmE0IDQgMCAwIDEgNC43OC00Ljc3IDQgNCAwIDAgMSA2Ljc0IDAgNCA0IDAgMCAxIDQuNzggNC43OCA0IDQgMCAwIDEgMCA2Ljc0IDQgNCAwIDAgMS00Ljc3IDQuNzggNCA0IDAgMCAxLTYuNzUgMCA0IDQgMCAwIDEtNC43OC00Ljc3IDQgNCAwIDAgMSAwLTYuNzZaIgogICAgICB9CiAgICBdLAogICAgWyJsaW5lIiwgeyB4MTogIjEyIiwgeDI6ICIxMiIsIHkxOiAiOCIsIHkyOiAiMTYiIH1dLAogICAgWyJsaW5lIiwgeyB4MTogIjgiLCB4MjogIjE2IiwgeTE6ICIxMiIsIHkyOiAiMTIiIH1dCiAgXTsKCiAgY29uc3QgQmFkZ2VQb3VuZFN0ZXJsaW5nID0gWwogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTMuODUgOC42MmE0IDQgMCAwIDEgNC43OC00Ljc3IDQgNCAwIDAgMSA2Ljc0IDAgNCA0IDAgMCAxIDQuNzggNC43OCA0IDQgMCAwIDEgMCA2Ljc0IDQgNCAwIDAgMS00Ljc3IDQuNzggNCA0IDAgMCAxLTYuNzUgMCA0IDQgMCAwIDEtNC43OC00Ljc3IDQgNCAwIDAgMSAwLTYuNzZaIgogICAgICB9CiAgICBdLAogICAgWyJwYXRoIiwgeyBkOiAiTTggMTJoNCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTAgMTZWOS41YTIuNSAyLjUgMCAwIDEgNSAwIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk04IDE2aDciIH1dCiAgXTsKCiAgY29uc3QgQmFkZ2VRdWVzdGlvbk1hcmsgPSBbCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMy44NSA4LjYyYTQgNCAwIDAgMSA0Ljc4LTQuNzcgNCA0IDAgMCAxIDYuNzQgMCA0IDQgMCAwIDEgNC43OCA0Ljc4IDQgNCAwIDAgMSAwIDYuNzQgNCA0IDAgMCAxLTQuNzcgNC43OCA0IDQgMCAwIDEtNi43NSAwIDQgNCAwIDAgMS00Ljc4LTQuNzcgNCA0IDAgMCAxIDAtNi43NloiCiAgICAgIH0KICAgIF0sCiAgICBbInBhdGgiLCB7IGQ6ICJNOS4wOSA5YTMgMyAwIDAgMSA1LjgzIDFjMCAyLTMgMy0zIDMiIH1dLAogICAgWyJsaW5lIiwgeyB4MTogIjEyIiwgeDI6ICIxMi4wMSIsIHkxOiAiMTciLCB5MjogIjE3IiB9XQogIF07CgogIGNvbnN0IEJhZGdlUnVzc2lhblJ1YmxlID0gWwogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTMuODUgOC42MmE0IDQgMCAwIDEgNC43OC00Ljc3IDQgNCAwIDAgMSA2Ljc0IDAgNCA0IDAgMCAxIDQuNzggNC43OCA0IDQgMCAwIDEgMCA2Ljc0IDQgNCAwIDAgMS00Ljc3IDQuNzggNCA0IDAgMCAxLTYuNzUgMCA0IDQgMCAwIDEtNC43OC00Ljc3IDQgNCAwIDAgMSAwLTYuNzZaIgogICAgICB9CiAgICBdLAogICAgWyJwYXRoIiwgeyBkOiAiTTkgMTZoNSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNOSAxMmg1YTIgMiAwIDEgMCAwLTRoLTN2OSIgfV0KICBdOwoKICBjb25zdCBCYWRnZVN3aXNzRnJhbmMgPSBbCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMy44NSA4LjYyYTQgNCAwIDAgMSA0Ljc4LTQuNzcgNCA0IDAgMCAxIDYuNzQgMCA0IDQgMCAwIDEgNC43OCA0Ljc4IDQgNCAwIDAgMSAwIDYuNzQgNCA0IDAgMCAxLTQuNzcgNC43OCA0IDQgMCAwIDEtNi43NSAwIDQgNCAwIDAgMS00Ljc4LTQuNzcgNCA0IDAgMCAxIDAtNi43NloiCiAgICAgIH0KICAgIF0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTEgMTdWOGg0IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xMSAxMmgzIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk05IDE2aDQiIH1dCiAgXTsKCiAgY29uc3QgQmFkZ2VUdXJraXNoTGlyYSA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xMSA3djEwYTUgNSAwIDAgMCA1LTUiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTE1IDgtNiAzIiB9XSwKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk0zLjg1IDguNjJhNCA0IDAgMCAxIDQuNzgtNC43NyA0IDQgMCAwIDEgNi43NCAwIDQgNCAwIDAgMSA0Ljc4IDQuNzggNCA0IDAgMCAxIDAgNi43NCA0IDQgMCAwIDEtNC43NyA0Ljc4IDQgNCAwIDAgMS02Ljc1IDAgNCA0IDAgMCAxLTQuNzgtNC43NyA0IDQgMCAwIDEgMC02Ljc2IgogICAgICB9CiAgICBdCiAgXTsKCiAgY29uc3QgQmFkZ2VYID0gWwogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTMuODUgOC42MmE0IDQgMCAwIDEgNC43OC00Ljc3IDQgNCAwIDAgMSA2Ljc0IDAgNCA0IDAgMCAxIDQuNzggNC43OCA0IDQgMCAwIDEgMCA2Ljc0IDQgNCAwIDAgMS00Ljc3IDQuNzggNCA0IDAgMCAxLTYuNzUgMCA0IDQgMCAwIDEtNC43OC00Ljc3IDQgNCAwIDAgMSAwLTYuNzZaIgogICAgICB9CiAgICBdLAogICAgWyJsaW5lIiwgeyB4MTogIjE1IiwgeDI6ICI5IiwgeTE6ICI5IiwgeTI6ICIxNSIgfV0sCiAgICBbImxpbmUiLCB7IHgxOiAiOSIsIHgyOiAiMTUiLCB5MTogIjkiLCB5MjogIjE1IiB9XQogIF07CgogIGNvbnN0IEJhZGdlID0gWwogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTMuODUgOC42MmE0IDQgMCAwIDEgNC43OC00Ljc3IDQgNCAwIDAgMSA2Ljc0IDAgNCA0IDAgMCAxIDQuNzggNC43OCA0IDQgMCAwIDEgMCA2Ljc0IDQgNCAwIDAgMS00Ljc3IDQuNzggNCA0IDAgMCAxLTYuNzUgMCA0IDQgMCAwIDEtNC43OC00Ljc3IDQgNCAwIDAgMSAwLTYuNzZaIgogICAgICB9CiAgICBdCiAgXTsKCiAgY29uc3QgQmFsbG9vbiA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xMiAxNnYxYTIgMiAwIDAgMCAyIDJoMWEyIDIgMCAwIDEgMiAydjEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDZhMiAyIDAgMCAxIDIgMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTggOGMwIDQtMy41IDgtNiA4cy02LTQtNi04YTYgNiAwIDAgMSAxMiAwIiB9XQogIF07CgogIGNvbnN0IEJhZ2dhZ2VDbGFpbSA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0yMiAxOEg2YTIgMiAwIDAgMS0yLTJWN2EyIDIgMCAwIDAtMi0yIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNyAxNFY0YTIgMiAwIDAgMC0yLTJoLTFhMiAyIDAgMCAwLTIgMnYxMCIgfV0sCiAgICBbInJlY3QiLCB7IHdpZHRoOiAiMTMiLCBoZWlnaHQ6ICI4IiwgeDogIjgiLCB5OiAiNiIsIHJ4OiAiMSIgfV0sCiAgICBbImNpcmNsZSIsIHsgY3g6ICIxOCIsIGN5OiAiMjAiLCByOiAiMiIgfV0sCiAgICBbImNpcmNsZSIsIHsgY3g6ICI5IiwgY3k6ICIyMCIsIHI6ICIyIiB9XQogIF07CgogIGNvbnN0IEJhbiA9IFsKICAgIFsiY2lyY2xlIiwgeyBjeDogIjEyIiwgY3k6ICIxMiIsIHI6ICIxMCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNC45MjkgNC45MjkgMTkuMDcgMTkuMDcxIiB9XQogIF07CgogIGNvbnN0IEJhbmFuYSA9IFsKICAgIFsicGF0aCIsIHsgZDogIk00IDEzYzMuNS0yIDgtMiAxMCAyYTUuNSA1LjUgMCAwIDEgOCA1IiB9XSwKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk01LjE1IDE3Ljg5YzUuNTItMS41MiA4LjY1LTYuODkgNy0xMkMxMS41NSA0IDExLjUgMiAxMyAyYzMuMjIgMCA1IDUuNSA1IDggMCA2LjUtNC4yIDEyLTEwLjQ5IDEyQzUuMTEgMjIgMiAyMiAyIDIwYzAtMS41IDEuMTQtMS41NSAzLjE1LTIuMTFaIgogICAgICB9CiAgICBdCiAgXTsKCiAgY29uc3QgQmFuZGFnZSA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xMCAxMC4wMWguMDEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTEwIDE0LjAxaC4wMSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTQgMTAuMDFoLjAxIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNCAxNC4wMWguMDEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE4IDZ2MTIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTYgNnYxMiIgfV0sCiAgICBbInJlY3QiLCB7IHg6ICIyIiwgeTogIjYiLCB3aWR0aDogIjIwIiwgaGVpZ2h0OiAiMTIiLCByeDogIjIiIH1dCiAgXTsKCiAgY29uc3QgQmFua25vdGVBcnJvd0Rvd24gPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgMThINGEyIDIgMCAwIDEtMi0yVjhhMiAyIDAgMCAxIDItMmgxNmEyIDIgMCAwIDEgMiAydjUiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTE2IDE5IDMgMyAzLTMiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE4IDEyaC4wMSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTkgMTZ2NiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNiAxMmguMDEiIH1dLAogICAgWyJjaXJjbGUiLCB7IGN4OiAiMTIiLCBjeTogIjEyIiwgcjogIjIiIH1dCiAgXTsKCiAgY29uc3QgQmFua25vdGVBcnJvd1VwID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDE4SDRhMiAyIDAgMCAxLTItMlY4YTIgMiAwIDAgMSAyLTJoMTZhMiAyIDAgMCAxIDIgMnY1IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xOCAxMmguMDEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE5IDIydi02IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0yMiAxOS0zLTMtMyAzIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk02IDEyaC4wMSIgfV0sCiAgICBbImNpcmNsZSIsIHsgY3g6ICIxMiIsIGN5OiAiMTIiLCByOiAiMiIgfV0KICBdOwoKICBjb25zdCBCYW5rbm90ZUNoZWNrID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTExLjc0OCAxOEg0YTIgMiAwIDAgMS0yLTJWOGEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ2NC44NzUiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTE2IDE5IDIgMiA0LTQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE4IDEyaC4wMSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNiAxMmguMDEiIH1dLAogICAgWyJjaXJjbGUiLCB7IGN4OiAiMTIiLCBjeTogIjEyIiwgcjogIjIiIH1dCiAgXTsKCiAgY29uc3QgQmFua25vdGVYID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTEzIDE4SDRhMiAyIDAgMCAxLTItMlY4YTIgMiAwIDAgMSAyLTJoMTZhMiAyIDAgMCAxIDIgMnY1IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0xNyAxNyA1IDUiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE4IDEyaC4wMSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMjIgMTctNSA1IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk02IDEyaC4wMSIgfV0sCiAgICBbImNpcmNsZSIsIHsgY3g6ICIxMiIsIGN5OiAiMTIiLCByOiAiMiIgfV0KICBdOwoKICBjb25zdCBCYW5rbm90ZSA9IFsKICAgIFsicmVjdCIsIHsgd2lkdGg6ICIyMCIsIGhlaWdodDogIjEyIiwgeDogIjIiLCB5OiAiNiIsIHJ4OiAiMiIgfV0sCiAgICBbImNpcmNsZSIsIHsgY3g6ICIxMiIsIGN5OiAiMTIiLCByOiAiMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNiAxMmguMDFNMTggMTJoLjAxIiB9XQogIF07CgogIGNvbnN0IEJhcmNvZGUgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMyA1djE0IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk04IDV2MTQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDV2MTQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE3IDV2MTQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIxIDV2MTQiIH1dCiAgXTsKCiAgY29uc3QgQmFzZWxpbmUgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNNCAyMGgxNiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtNiAxNiA2LTEyIDYgMTIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTggMTJoOCIgfV0KICBdOwoKICBjb25zdCBCYXJyZWwgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTAgM2E0MSA0MSAwIDAwMCAxOCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTQgM2E0MSA0MSAwIDAxMCAxOCIgfV0sCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMTYuOTk3IDIxYTIgMiAwIDAwMS42OC0uOTIgMTUuMjUgMTUuMjUgMCAwMDAtMTYuMTYgMiAyIDAgMDAtMS42OC0uOTJoLTEwYTIgMiAwIDAwLTEuNjgxLjkyIDE1LjI1IDE1LjI1IDAgMDAwIDE2LjE2IDIgMiAwIDAwMS42ODEuOTJ6IgogICAgICB9CiAgICBdLAogICAgWyJwYXRoIiwgeyBkOiAiTTMuNTQgMTZoMTYuOTE0IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0zLjU0IDhoMTYuOTE0IiB9XQogIF07CgogIGNvbnN0IEJhdGggPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTAgNCA4IDYiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE3IDE5djIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIgMTJoMjAiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTcgMTl2MiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNOSA1IDcuNjIxIDMuNjIxQTIuMTIxIDIuMTIxIDAgMCAwIDQgNXYxMmEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJ2LTUiIH1dCiAgXTsKCiAgY29uc3QgQmF0dGVyeUNoYXJnaW5nID0gWwogICAgWyJwYXRoIiwgeyBkOiAibTExIDctMyA1aDRsLTMgNSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTQuODU2IDZIMTZhMiAyIDAgMCAxIDIgMnY4YTIgMiAwIDAgMS0yIDJoLTIuOTM1IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yMiAxNHYtNCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNS4xNCAxOEg0YTIgMiAwIDAgMS0yLTJWOGEyIDIgMCAwIDEgMi0yaDIuOTM2IiB9XQogIF07CgogIGNvbnN0IEJhdHRlcnlGdWxsID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTEwIDEwdjQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE0IDEwdjQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIyIDE0di00IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk02IDEwdjQiIH1dLAogICAgWyJyZWN0IiwgeyB4OiAiMiIsIHk6ICI2Iiwgd2lkdGg6ICIxNiIsIGhlaWdodDogIjEyIiwgcng6ICIyIiB9XQogIF07CgogIGNvbnN0IEJhdHRlcnlMb3cgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMjIgMTR2LTQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTYgMTR2LTQiIH1dLAogICAgWyJyZWN0IiwgeyB4OiAiMiIsIHk6ICI2Iiwgd2lkdGg6ICIxNiIsIGhlaWdodDogIjEyIiwgcng6ICIyIiB9XQogIF07CgogIGNvbnN0IEJhdHRlcnlNZWRpdW0gPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTAgMTR2LTQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIyIDE0di00IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk02IDE0di00IiB9XSwKICAgIFsicmVjdCIsIHsgeDogIjIiLCB5OiAiNiIsIHdpZHRoOiAiMTYiLCBoZWlnaHQ6ICIxMiIsIHJ4OiAiMiIgfV0KICBdOwoKICBjb25zdCBCYXR0ZXJ5UGx1cyA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xMCA5djYiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTEyLjU0MyA2SDE2YTIgMiAwIDAgMSAyIDJ2OGEyIDIgMCAwIDEtMiAyaC0zLjYwNSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMjIgMTR2LTQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTcgMTJoNiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNy42MDYgMThINGEyIDIgMCAwIDEtMi0yVjhhMiAyIDAgMCAxIDItMmgzLjYwNiIgfV0KICBdOwoKICBjb25zdCBCYXR0ZXJ5V2FybmluZyA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xMCAxN2guMDEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTEwIDd2NiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTQgNmgyYTIgMiAwIDAgMSAyIDJ2OGEyIDIgMCAwIDEtMiAyaC0yIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yMiAxNHYtNCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNiAxOEg0YTIgMiAwIDAgMS0yLTJWOGEyIDIgMCAwIDEgMi0yaDIiIH1dCiAgXTsKCiAgY29uc3QgQmF0dGVyeSA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0gMjIgMTQgTCAyMiAxMCIgfV0sCiAgICBbInJlY3QiLCB7IHg6ICIyIiwgeTogIjYiLCB3aWR0aDogIjE2IiwgaGVpZ2h0OiAiMTIiLCByeDogIjIiIH1dCiAgXTsKCiAgY29uc3QgQmVhbk9mZiA9IFsKICAgIFsicGF0aCIsIHsgZDogIk05IDljLS42NC42NC0xLjUyMS45NTQtMi40MDIgMS4xNjVBNiA2IDAgMCAwIDggMjJhMTMuOTYgMTMuOTYgMCAwIDAgOS45LTQuMSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTAuNzUgNS4wOTNBNiA2IDAgMCAxIDIyIDhjMCAyLjQxMS0uNjEgNC42OC0xLjY4MyA2LjY2IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk01LjM0MSAxMC42MmE0IDQgMCAwIDAgNi40ODcgMS4yMDhNMTAuNjIgNS4zNDFhNC4wMTUgNC4wMTUgMCAwIDEgMi4wMzkgMi4wNCIgfV0sCiAgICBbImxpbmUiLCB7IHgxOiAiMiIsIHgyOiAiMjIiLCB5MTogIjIiLCB5MjogIjIyIiB9XQogIF07CgogIGNvbnN0IEJlYW4gPSBbCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMTAuMTY1IDYuNTk4QzkuOTU0IDcuNDc4IDkuNjQgOC4zNiA5IDljLS42NC42NC0xLjUyMS45NTQtMi40MDIgMS4xNjVBNiA2IDAgMCAwIDggMjJjNy43MzIgMCAxNC02LjI2OCAxNC0xNGE2IDYgMCAwIDAtMTEuODM1LTEuNDAyWiIKICAgICAgfQogICAgXSwKICAgIFsicGF0aCIsIHsgZDogIk01LjM0MSAxMC42MmE0IDQgMCAxIDAgNS4yNzktNS4yOCIgfV0KICBdOwoKICBjb25zdCBCZWFrZXIgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNNC41IDNoMTUiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTYgM3YxNmEyIDIgMCAwIDAgMiAyaDhhMiAyIDAgMCAwIDItMlYzIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk02IDE0aDEyIiB9XQogIF07CgogIGNvbnN0IEJlZERvdWJsZSA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0yIDIwdi04YTIgMiAwIDAgMSAyLTJoMTZhMiAyIDAgMCAxIDIgMnY4IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk00IDEwVjZhMiAyIDAgMCAxIDItMmgxMmEyIDIgMCAwIDEgMiAydjQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDR2NiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMiAxOGgyMCIgfV0KICBdOwoKICBjb25zdCBCZWRTaW5nbGUgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMyAyMHYtOGEyIDIgMCAwIDEgMi0yaDE0YTIgMiAwIDAgMSAyIDJ2OCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNSAxMFY2YTIgMiAwIDAgMSAyLTJoMTBhMiAyIDAgMCAxIDIgMnY0IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0zIDE4aDE4IiB9XQogIF07CgogIGNvbnN0IEJlZCA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0yIDR2MTYiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIgOGgxOGEyIDIgMCAwIDEgMiAydjEwIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yIDE3aDIwIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk02IDh2OSIgfV0KICBdOwoKICBjb25zdCBCZWVmT2ZmID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTExLjc3MSA2LjEwOWEyLjUgMi41IDAgMCAxIDMuMTIgMy4xMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTcuODUyIDEyLjE4NWE2LjUgNi41IDAgMCAwLTkuMDM1LTkuMDQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE4LjAxMyAxOC4wMTNDMTUuMDI5IDIwLjM0OSAxMC44MzEgMjIgNyAyMmEzIDMgMCAwIDEtMi42OC0xLjY2TDIuNCAxNi41IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0xOC41IDYgMi4xOSA0LjVhNi40OCA2LjQ4IDAgMCAxLS4xMzkgNC4zOTMiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTIgMiAyMCAyMCIgfV0sCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNNi4zNTUgNi4zN2E3IDcgMCAwIDAtLjA3NS4yM2MtMS4xIDMuMTMtLjc4IDMuOS0zLjE4IDYuMDhBMyAzIDAgMCAwIDUgMThjMy4zNTYgMCA2Ljk5My0xLjI2NyA5Ljg1LTMuMTUxIgogICAgICB9CiAgICBdCiAgXTsKCiAgY29uc3QgQmVlZiA9IFsKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk0xNi40IDEzLjdBNi41IDYuNSAwIDEgMCA2LjI4IDYuNmMtMS4xIDMuMTMtLjc4IDMuOS0zLjE4IDYuMDhBMyAzIDAgMCAwIDUgMThjNCAwIDguNC0xLjggMTEuNC00LjMiCiAgICAgIH0KICAgIF0sCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJtMTguNSA2IDIuMTkgNC41YTYuNDggNi40OCAwIDAgMS0yLjI5IDcuMkMxNS40IDIwLjIgMTEgMjIgNyAyMmEzIDMgMCAwIDEtMi42OC0xLjY2TDIuNCAxNi41IgogICAgICB9CiAgICBdLAogICAgWyJjaXJjbGUiLCB7IGN4OiAiMTIuNSIsIGN5OiAiOC41IiwgcjogIjIuNSIgfV0KICBdOwoKICBjb25zdCBCZWVyT2ZmID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTEzIDEzdjUiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE3IDExLjQ3VjgiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE3IDExaDFhMyAzIDAgMCAxIDIuNzQ1IDQuMjExIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0yIDIgMjAgMjAiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTUgOHYxMmEyIDIgMCAwIDAgMiAyaDhhMiAyIDAgMCAwIDItMnYtMyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNy41MzYgNy41MzVDNi43NjYgNy42NDkgNi4xNTQgOCA1LjUgOGEyLjUgMi41IDAgMCAxLTEuNzY4LTQuMjY4IiB9XSwKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk04LjcyNyAzLjIwNEM5LjMwNiAyLjc2NyA5Ljg4NSAyIDExIDJjMS41NiAwIDIgMS41IDMgMS41czEuNzItLjUgMi41LS41YTEgMSAwIDEgMSAwIDVjLS43OCAwLTEuNS0uNS0yLjUtLjVhMy4xNDkgMy4xNDkgMCAwIDAtLjg0Mi4xMiIKICAgICAgfQogICAgXSwKICAgIFsicGF0aCIsIHsgZDogIk05IDE0LjZWMTgiIH1dCiAgXTsKCiAgY29uc3QgQmVlciA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xNyAxMWgxYTMgMyAwIDAgMSAwIDZoLTEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTkgMTJ2NiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTMgMTJ2NiIgfV0sCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMTQgNy41Yy0xIDAtMS40NC41LTMgLjVzLTItLjUtMy0uNS0xLjcyLjUtMi41LjVhMi41IDIuNSAwIDAgMSAwLTVjLjc4IDAgMS41Ny41IDIuNS41UzkuNDQgMiAxMSAyczIgMS41IDMgMS41IDEuNzItLjUgMi41LS41YTIuNSAyLjUgMCAwIDEgMCA1Yy0uNzggMC0xLjUtLjUtMi41LS41WiIKICAgICAgfQogICAgXSwKICAgIFsicGF0aCIsIHsgZDogIk01IDh2MTJhMiAyIDAgMCAwIDIgMmg4YTIgMiAwIDAgMCAyLTJWOCIgfV0KICBdOwoKICBjb25zdCBCZWxsQ2hlY2sgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTAuMjY4IDIxYTIgMiAwIDAgMCAzLjQ2NCAwIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0xNSA4IDIgMiA0LTQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE2Ljg2MDcgNC40ODI0QTYgNiAwIDAgMCA2IDhDNiAxMi40OTkgNC41ODkgMTMuOTU2IDMuMjYyIDE1LjMyNiIgfV0sCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMy4yNjIgMTUuMzI2QTEgMSAwIDAgMCA0IDE3SDIwQTEgMSAwIDAgMCAyMC43NCAxNS4zMjdDMjAuMjA5IDE0Ljc3OSAxOS42NjUgMTQuMjE4IDE5LjIwMyAxMy40NTQiCiAgICAgIH0KICAgIF0KICBdOwoKICBjb25zdCBCZWxsRG90ID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTEwLjI2OCAyMWEyIDIgMCAwIDAgMy40NjQgMCIgfV0sCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMTEuNjggMi4wMDlBNiA2IDAgMCAwIDYgOGMwIDQuNDk5LTEuNDExIDUuOTU2LTIuNzM4IDcuMzI2QTEgMSAwIDAgMCA0IDE3aDE2YTEgMSAwIDAgMCAuNzQtMS42NzNjLS44MjQtLjg1LTEuNjc4LTEuNzMxLTIuMjEtMy4zNDgiCiAgICAgIH0KICAgIF0sCiAgICBbImNpcmNsZSIsIHsgY3g6ICIxOCIsIGN5OiAiNSIsIHI6ICIzIiB9XQogIF07CgogIGNvbnN0IEJlbGxPZmYgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTAuMjY4IDIxYTIgMiAwIDAgMCAzLjQ2NCAwIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNyAxN0g0YTEgMSAwIDAgMS0uNzQtMS42NzNDNC41OSAxMy45NTYgNiAxMi40OTkgNiA4YTYgNiAwIDAgMSAuMjU4LTEuNzQyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0yIDIgMjAgMjAiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTguNjY4IDMuMDFBNiA2IDAgMCAxIDE4IDhjMCAyLjY4Ny43NyA0LjY1MyAxLjcwNyA2LjA1IiB9XQogIF07CgogIGNvbnN0IEJlbGxFbGVjdHJpYyA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xOC41MTggMTcuMzQ3QTcgNyAwIDAgMSAxNCAxOSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTguOCA0QTExIDExIDAgMCAxIDIwIDkiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTkgOWguMDEiIH1dLAogICAgWyJjaXJjbGUiLCB7IGN4OiAiMjAiLCBjeTogIjE2IiwgcjogIjIiIH1dLAogICAgWyJjaXJjbGUiLCB7IGN4OiAiOSIsIGN5OiAiOSIsIHI6ICI3IiB9XSwKICAgIFsicmVjdCIsIHsgeDogIjQiLCB5OiAiMTYiLCB3aWR0aDogIjEwIiwgaGVpZ2h0OiAiNiIsIHJ4OiAiMiIgfV0KICBdOwoKICBjb25zdCBCZWxsTWludXMgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTAuMjY4IDIxYTIgMiAwIDAgMCAzLjQ2NCAwIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNSA4aDYiIH1dLAogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTE2LjI0MyAzLjc1N0E2IDYgMCAwIDAgNiA4YzAgNC40OTktMS40MTEgNS45NTYtMi43MzggNy4zMjZBMSAxIDAgMCAwIDQgMTdoMTZhMSAxIDAgMCAwIC43NC0xLjY3M0E5LjQgOS40IDAgMCAxIDE4LjY2NyAxMiIKICAgICAgfQogICAgXQogIF07CgogIGNvbnN0IEJlbGxQbHVzID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTEwLjI2OCAyMWEyIDIgMCAwIDAgMy40NjQgMCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTUgOGg2IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xOCA1djYiIH1dLAogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTIwLjAwMiAxNC40NjRhOSA5IDAgMCAwIC43MzguODYzQTEgMSAwIDAgMSAyMCAxN0g0YTEgMSAwIDAgMS0uNzQtMS42NzNDNC41OSAxMy45NTYgNiAxMi40OTkgNiA4YTYgNiAwIDAgMSA4Ljc1LTUuMzMyIgogICAgICB9CiAgICBdCiAgXTsKCiAgY29uc3QgQmVsbFJpbmcgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTAuMjY4IDIxYTIgMiAwIDAgMCAzLjQ2NCAwIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yMiA4YzAtMi4zLS44LTQuMy0yLTYiIH1dLAogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTMuMjYyIDE1LjMyNkExIDEgMCAwIDAgNCAxN2gxNmExIDEgMCAwIDAgLjc0LTEuNjczQzE5LjQxIDEzLjk1NiAxOCAxMi40OTkgMTggOEE2IDYgMCAwIDAgNiA4YzAgNC40OTktMS40MTEgNS45NTYtMi43MzggNy4zMjYiCiAgICAgIH0KICAgIF0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNCAyQzIuOCAzLjcgMiA1LjcgMiA4IiB9XQogIF07CgogIGNvbnN0IEJlbGwgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTAuMjY4IDIxYTIgMiAwIDAgMCAzLjQ2NCAwIiB9XSwKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk0zLjI2MiAxNS4zMjZBMSAxIDAgMCAwIDQgMTdoMTZhMSAxIDAgMCAwIC43NC0xLjY3M0MxOS40MSAxMy45NTYgMTggMTIuNDk5IDE4IDhBNiA2IDAgMCAwIDYgOGMwIDQuNDk5LTEuNDExIDUuOTU2LTIuNzM4IDcuMzI2IgogICAgICB9CiAgICBdCiAgXTsKCiAgY29uc3QgQmV0d2Vlbkhvcml6b250YWxFbmQgPSBbCiAgICBbInJlY3QiLCB7IHdpZHRoOiAiMTMiLCBoZWlnaHQ6ICI3IiwgeDogIjMiLCB5OiAiMyIsIHJ4OiAiMSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMjIgMTUtMy0zIDMtMyIgfV0sCiAgICBbInJlY3QiLCB7IHdpZHRoOiAiMTMiLCBoZWlnaHQ6ICI3IiwgeDogIjMiLCB5OiAiMTQiLCByeDogIjEiIH1dCiAgXTsKCiAgY29uc3QgQmV0d2Vlbkhvcml6b250YWxTdGFydCA9IFsKICAgIFsicmVjdCIsIHsgd2lkdGg6ICIxMyIsIGhlaWdodDogIjciLCB4OiAiOCIsIHk6ICIzIiwgcng6ICIxIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0yIDkgMyAzLTMgMyIgfV0sCiAgICBbInJlY3QiLCB7IHdpZHRoOiAiMTMiLCBoZWlnaHQ6ICI3IiwgeDogIjgiLCB5OiAiMTQiLCByeDogIjEiIH1dCiAgXTsKCiAgY29uc3QgQmV0d2VlblZlcnRpY2FsRW5kID0gWwogICAgWyJyZWN0IiwgeyB3aWR0aDogIjciLCBoZWlnaHQ6ICIxMyIsIHg6ICIzIiwgeTogIjMiLCByeDogIjEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTkgMjIgMy0zIDMgMyIgfV0sCiAgICBbInJlY3QiLCB7IHdpZHRoOiAiNyIsIGhlaWdodDogIjEzIiwgeDogIjE0IiwgeTogIjMiLCByeDogIjEiIH1dCiAgXTsKCiAgY29uc3QgQmV0d2VlblZlcnRpY2FsU3RhcnQgPSBbCiAgICBbInJlY3QiLCB7IHdpZHRoOiAiNyIsIGhlaWdodDogIjEzIiwgeDogIjMiLCB5OiAiOCIsIHJ4OiAiMSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMTUgMi0zIDMtMy0zIiB9XSwKICAgIFsicmVjdCIsIHsgd2lkdGg6ICI3IiwgaGVpZ2h0OiAiMTMiLCB4OiAiMTQiLCB5OiAiOCIsIHJ4OiAiMSIgfV0KICBdOwoKICBjb25zdCBCaWNlcHNGbGV4ZWQgPSBbCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMTIuNDA5IDEzLjAxN0E1IDUgMCAwIDEgMjIgMTVjMCAzLjg2Ni00IDctOSA3LTQuMDc3IDAtOC4xNTMtLjgyLTEwLjM3MS0yLjQ2Mi0uNDI2LS4zMTYtLjYzMS0uODMyLS42Mi0xLjM2MkMyLjExOCAxMi43MjMgMi42MjcgMiAxMCAyYTMgMyAwIDAgMSAzIDMgMiAyIDAgMCAxLTIgMmMtMS4xMDUgMC0xLjY0LS40NDQtMi0xIgogICAgICB9CiAgICBdLAogICAgWyJwYXRoIiwgeyBkOiAiTTE1IDE0YTUgNSAwIDAgMC03LjU4NCAyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk05Ljk2NCA2LjgyNUM4LjAxOSA3Ljk3NyA5LjUgMTMgOCAxNSIgfV0KICBdOwoKICBjb25zdCBCaWtlID0gWwogICAgWyJjaXJjbGUiLCB7IGN4OiAiMTguNSIsIGN5OiAiMTcuNSIsIHI6ICIzLjUiIH1dLAogICAgWyJjaXJjbGUiLCB7IGN4OiAiNS41IiwgY3k6ICIxNy41IiwgcjogIjMuNSIgfV0sCiAgICBbImNpcmNsZSIsIHsgY3g6ICIxNSIsIGN5OiAiNSIsIHI6ICIxIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xMiAxNy41VjE0bC0zLTMgNC0zIDIgM2gyIiB9XQogIF07CgogIGNvbnN0IEJpbmFyeSA9IFsKICAgIFsicmVjdCIsIHsgeDogIjE0IiwgeTogIjE0Iiwgd2lkdGg6ICI0IiwgaGVpZ2h0OiAiNiIsIHJ4OiAiMiIgfV0sCiAgICBbInJlY3QiLCB7IHg6ICI2IiwgeTogIjQiLCB3aWR0aDogIjQiLCBoZWlnaHQ6ICI2Iiwgcng6ICIyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk02IDIwaDQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE0IDEwaDQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTYgMTRoMnY2IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNCA0aDJ2NiIgfV0KICBdOwoKICBjb25zdCBCaW5vY3VsYXJzID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTEwIDEwaDQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE5IDdWNGExIDEgMCAwIDAtMS0xaC0yYTEgMSAwIDAgMC0xIDF2MyIgfV0sCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMjAgMjFhMiAyIDAgMCAwIDItMnYtMy44NTFjMC0xLjM5LTItMi45NjItMi00LjgyOVY4YTEgMSAwIDAgMC0xLTFoLTRhMSAxIDAgMCAwLTEgMXYxMWEyIDIgMCAwIDAgMiAyeiIKICAgICAgfQogICAgXSwKICAgIFsicGF0aCIsIHsgZDogIk0gMjIgMTYgTCAyIDE2IiB9XSwKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk00IDIxYTIgMiAwIDAgMS0yLTJ2LTMuODUxYzAtMS4zOSAyLTIuOTYyIDItNC44MjlWOGExIDEgMCAwIDEgMS0xaDRhMSAxIDAgMCAxIDEgMXYxMWEyIDIgMCAwIDEtMiAyeiIKICAgICAgfQogICAgXSwKICAgIFsicGF0aCIsIHsgZDogIk05IDdWNGExIDEgMCAwIDAtMS0xSDZhMSAxIDAgMCAwLTEgMXYzIiB9XQogIF07CgogIGNvbnN0IEJpb2hhemFyZCA9IFsKICAgIFsiY2lyY2xlIiwgeyBjeDogIjEyIiwgY3k6ICIxMS45IiwgcjogIjIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTYuNyAzLjRjLS45IDIuNSAwIDUuMiAyLjIgNi43QzYuNSA5IDMuNyA5LjYgMiAxMS42IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm04LjkgMTAuMSAxLjQuOCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTcuMyAzLjRjLjkgMi41IDAgNS4yLTIuMiA2LjcgMi40LTEuMiA1LjItLjYgNi45IDEuNSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMTUuMSAxMC4xLTEuNC44IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNi43IDIwLjhjLTIuNi0uNC00LjYtMi42LTQuNy01LjMtLjIgMi42LTIuMSA0LjgtNC43IDUuMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgMTMuOXYxLjYiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTEzLjUgNS40Yy0xLS4yLTItLjItMyAwIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNyAxNi40Yy43LS43IDEuMi0xLjYgMS41LTIuNSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNS41IDEzLjljLjMuOS44IDEuOCAxLjUgMi41IiB9XQogIF07CgogIGNvbnN0IEJpcmQgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTYgN2guMDEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTMuNCAxOEgxMmE4IDggMCAwIDAgOC04VjdhNCA0IDAgMCAwLTcuMjgtMi4zTDIgMjAiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTIwIDcgMiAuNS0yIC41IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xMCAxOHYzIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNCAxNy43NVYyMSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNyAxOGE2IDYgMCAwIDAgMy44NC0xMC42MSIgfV0KICBdOwoKICBjb25zdCBCaXRjb2luID0gWwogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTExLjc2NyAxOS4wODljNC45MjQuODY4IDYuMTQtNi4wMjUgMS4yMTYtNi44OTRtLTEuMjE2IDYuODk0TDUuODYgMTguMDQ3bTUuOTA4IDEuMDQyLS4zNDcgMS45N20xLjU2My04Ljg2NGM0LjkyNC44NjkgNi4xNC02LjAyNSAxLjIxNS02Ljg5M20tMS4yMTUgNi44OTMtMy45NC0uNjk0bTUuMTU1LTYuMkw4LjI5IDQuMjZtNS45MDggMS4wNDIuMzQ4LTEuOTdNNy40OCAyMC4zNjRsMy4xMjYtMTcuNzI3IgogICAgICB9CiAgICBdCiAgXTsKCiAgY29uc3QgQmlyZGhvdXNlID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDE4djQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTE3IDE4IDEuOTU2LTExLjQ2OCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMyA4IDcuODItNS42MTVhMiAyIDAgMCAxIDIuMzYgMEwyMSA4IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk00IDE4aDE2IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk03IDE4IDUuMDQ0IDYuNTMyIiB9XSwKICAgIFsiY2lyY2xlIiwgeyBjeDogIjEyIiwgY3k6ICIxMCIsIHI6ICIyIiB9XQogIF07CgogIGNvbnN0IEJsZW5kID0gWwogICAgWyJjaXJjbGUiLCB7IGN4OiAiOSIsIGN5OiAiOSIsIHI6ICI3IiB9XSwKICAgIFsiY2lyY2xlIiwgeyBjeDogIjE1IiwgY3k6ICIxNSIsIHI6ICI3IiB9XQogIF07CgogIGNvbnN0IEJsaW5kcyA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0zIDNoMTgiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIwIDdIOCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMjAgMTFIOCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTAgMTloMTAiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTggMTVoMTIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTQgM3YxNCIgfV0sCiAgICBbImNpcmNsZSIsIHsgY3g6ICI0IiwgY3k6ICIxOSIsIHI6ICIyIiB9XQogIF07CgogIGNvbnN0IEJsZW5kZXIgPSBbCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNOCAxNGEyIDIgMCAwIDAtMS45NjMgMS42MTVsLTEuMDE4IDUuMTkzQTEgMSAwIDAgMCA2IDIyaDEyYTEgMSAwIDAgMCAuOTgxLTEuMTkybC0xLjAxOC01LjE5M0EyIDIgMCAwIDAgMTYgMTR6IgogICAgICB9CiAgICBdLAogICAgWyJwYXRoIiwgeyBkOiAibTE3IDItMSAxMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNOC4wMDYgMTQgNyAyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk03LjU2NSA4Ljc4N0E1IDUgMCAwIDAgMTIgOGE1IDUgMCAwIDEgNC41Ni0uNzUiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE5IDJINWEyIDIgMCAwIDAtMiAydjVhMiAyIDAgMCAwIC42ODggMS41IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xMiAxOGguMDEiIH1dCiAgXTsKCiAgY29uc3QgQmxvY2tzID0gWwogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTEwIDIyVjdhMSAxIDAgMCAwLTEtMUg0YTIgMiAwIDAgMC0yIDJ2MTJhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0ydi01YTEgMSAwIDAgMC0xLTFIMiIKICAgICAgfQogICAgXSwKICAgIFsicmVjdCIsIHsgeDogIjE0IiwgeTogIjIiLCB3aWR0aDogIjgiLCBoZWlnaHQ6ICI4Iiwgcng6ICIxIiB9XQogIF07CgogIGNvbnN0IEJsdWV0b290aENvbm5lY3RlZCA9IFsKICAgIFsicGF0aCIsIHsgZDogIm03IDcgMTAgMTAtNSA1VjJsNSA1TDcgMTciIH1dLAogICAgWyJsaW5lIiwgeyB4MTogIjE4IiwgeDI6ICIyMSIsIHkxOiAiMTIiLCB5MjogIjEyIiB9XSwKICAgIFsibGluZSIsIHsgeDE6ICIzIiwgeDI6ICI2IiwgeTE6ICIxMiIsIHkyOiAiMTIiIH1dCiAgXTsKCiAgY29uc3QgQmx1ZXRvb3RoT2ZmID0gWwogICAgWyJwYXRoIiwgeyBkOiAibTE3IDE3LTUgNVYxMmwtNSA1IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0yIDIgMjAgMjAiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE0LjUgOS41IDE3IDdsLTUtNXY0LjUiIH1dCiAgXTsKCiAgY29uc3QgQmx1ZXRvb3RoU2VhcmNoaW5nID0gWwogICAgWyJwYXRoIiwgeyBkOiAibTcgNyAxMCAxMC01IDVWMmw1IDVMNyAxNyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMjAuODMgMTQuODNhNCA0IDAgMCAwIDAtNS42NiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTggMTJoLjAxIiB9XQogIF07CgogIGNvbnN0IEJsdWV0b290aCA9IFtbInBhdGgiLCB7IGQ6ICJtNyA3IDEwIDEwLTUgNVYybDUgNUw3IDE3IiB9XV07CgogIGNvbnN0IEJvbHQgPSBbCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMjEgMTZWOGEyIDIgMCAwIDAtMS0xLjczbC03LTRhMiAyIDAgMCAwLTIgMGwtNyA0QTIgMiAwIDAgMCAzIDh2OGEyIDIgMCAwIDAgMSAxLjczbDcgNGEyIDIgMCAwIDAgMiAwbDctNEEyIDIgMCAwIDAgMjEgMTZ6IgogICAgICB9CiAgICBdLAogICAgWyJjaXJjbGUiLCB7IGN4OiAiMTIiLCBjeTogIjEyIiwgcjogIjQiIH1dCiAgXTsKCiAgY29uc3QgQm9sZCA9IFsKICAgIFsicGF0aCIsIHsgZDogIk02IDEyaDlhNCA0IDAgMCAxIDAgOEg3YTEgMSAwIDAgMS0xLTFWNWExIDEgMCAwIDEgMS0xaDdhNCA0IDAgMCAxIDAgOCIgfV0KICBdOwoKICBjb25zdCBCb21iID0gWwogICAgWyJjaXJjbGUiLCB7IGN4OiAiMTEiLCBjeTogIjEzIiwgcjogIjkiIH1dLAogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsgZDogIk0xNC4zNSA0LjY1IDE2LjMgMi43YTIuNDEgMi40MSAwIDAgMSAzLjQgMGwxLjYgMS42YTIuNCAyLjQgMCAwIDEgMCAzLjRsLTEuOTUgMS45NSIgfQogICAgXSwKICAgIFsicGF0aCIsIHsgZDogIm0yMiAyLTEuNSAxLjUiIH1dCiAgXTsKCiAgY29uc3QgQm9uZUZyYWN0dXJlID0gWwogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTE0IDQuNWExIDEgMCAwIDEgNSAwIC41LjUgMCAwIDAgLjUuNSAxIDEgMCAwIDEgMCA1Yy0uODEgMC0xLjgtLjctMi41IDBsLTEuOTU4IDEuOTU3YS4xNS4xNSAwIDAgMS0uMjUyLS4wNzJsLS40OTMtMi4wN2EuMTUuMTUgMCAwIDAtLjExMS0uMTEybC0yLjA3Mi0uNDk0YS4xNS4xNSAwIDAgMS0uMDcyLS4yNTJMMTQgN2MuNy0uNyAwLTEuNjkgMC0yLjUiCiAgICAgIH0KICAgIF0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMTYgMjAtMS0yIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0yMCAxNi0yLTEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTQgOCAyIDEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTggNCAxIDIiIH1dLAogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTkuNjk4IDE0LjE5YS4xNS4xNSAwIDAgMCAuMTEyLjExMmwyLjA3NC40ODlhLjE1LjE1IDAgMCAxIC4wNzIuMjUyTDEwIDE3Yy0uNy43IDAgMS42OSAwIDIuNWExIDEgMCAwIDEtNSAwIC40OTUuNDk1IDAgMCAwLS41LS41IDEgMSAwIDAgMSAwLTVjLjgxIDAgMS44LjcgMi41IDBsMS45NTYtMS45NTdhLjE1LjE1IDAgMCAxIC4yNTIuMDcyeiIKICAgICAgfQogICAgXQogIF07CgogIGNvbnN0IEJvbmUgPSBbCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMTcgMTBjLjctLjcgMS42OSAwIDIuNSAwYTIuNSAyLjUgMCAxIDAgMC01IC41LjUgMCAwIDEtLjUtLjUgMi41IDIuNSAwIDEgMC01IDBjMCAuODEuNyAxLjggMCAyLjVsLTcgN2MtLjcuNy0xLjY5IDAtMi41IDBhMi41IDIuNSAwIDAgMCAwIDVjLjI4IDAgLjUuMjIuNS41YTIuNSAyLjUgMCAxIDAgNSAwYzAtLjgxLS43LTEuOCAwLTIuNVoiCiAgICAgIH0KICAgIF0KICBdOwoKICBjb25zdCBCb29rQSA9IFsKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7IGQ6ICJNNCAxOS41di0xNUEyLjUgMi41IDAgMCAxIDYuNSAySDE5YTEgMSAwIDAgMSAxIDF2MThhMSAxIDAgMCAxLTEgMUg2LjVhMSAxIDAgMCAxIDAtNUgyMCIgfQogICAgXSwKICAgIFsicGF0aCIsIHsgZDogIm04IDEzIDQtNyA0IDciIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTkuMSAxMWg1LjciIH1dCiAgXTsKCiAgY29uc3QgQm9va0FsZXJ0ID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDEzaC4wMSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgNnYzIiB9XSwKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7IGQ6ICJNNCAxOS41di0xNUEyLjUgMi41IDAgMCAxIDYuNSAySDE5YTEgMSAwIDAgMSAxIDF2MThhMSAxIDAgMCAxLTEgMUg2LjVhMSAxIDAgMCAxIDAtNUgyMCIgfQogICAgXQogIF07CgogIGNvbnN0IEJvb2tBdWRpbyA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xMiA2djciIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE2IDh2MyIgfV0sCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgeyBkOiAiTTQgMTkuNXYtMTVBMi41IDIuNSAwIDAgMSA2LjUgMkgxOWExIDEgMCAwIDEgMSAxdjE4YTEgMSAwIDAgMS0xIDFINi41YTEgMSAwIDAgMSAwLTVIMjAiIH0KICAgIF0sCiAgICBbInBhdGgiLCB7IGQ6ICJNOCA4djMiIH1dCiAgXTsKCiAgY29uc3QgQm9va0NoZWNrID0gWwogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsgZDogIk00IDE5LjV2LTE1QTIuNSAyLjUgMCAwIDEgNi41IDJIMTlhMSAxIDAgMCAxIDEgMXYxOGExIDEgMCAwIDEtMSAxSDYuNWExIDEgMCAwIDEgMC01SDIwIiB9CiAgICBdLAogICAgWyJwYXRoIiwgeyBkOiAibTkgOS41IDIgMiA0LTQiIH1dCiAgXTsKCiAgY29uc3QgQm9va0NvcHkgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNNSA3YTIgMiAwIDAgMC0yIDJ2MTEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTUuODAzIDE4SDVhMiAyIDAgMCAwIDAgNGg5LjVhLjUuNSAwIDAgMCAuNS0uNVYyMSIgfV0sCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgeyBkOiAiTTkgMTVWNGEyIDIgMCAwIDEgMi0yaDkuNWEuNS41IDAgMCAxIC41LjV2MTRhLjUuNSAwIDAgMS0uNS41SDExYTIgMiAwIDAgMSAwLTRoMTAiIH0KICAgIF0KICBdOwoKICBjb25zdCBCb29rRGFzaGVkID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDE3aDEuNSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgMjJoMS41IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xMiAyaDEuNSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTcuNSAyMkgxOWExIDEgMCAwIDAgMS0xIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNy41IDJIMTlhMSAxIDAgMCAxIDEgMXYxLjUiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIwIDE0djNoLTIuNSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMjAgOC41VjEwIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk00IDEwVjguNSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNCAxOS41VjE0IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk00IDQuNUEyLjUgMi41IDAgMCAxIDYuNSAySDgiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTggMjJINi41YTEgMSAwIDAgMSAwLTVIOCIgfV0KICBdOwoKICBjb25zdCBCb29rRG93biA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xMiAxM1Y3IiB9XSwKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7IGQ6ICJNNCAxOS41di0xNUEyLjUgMi41IDAgMCAxIDYuNSAySDE5YTEgMSAwIDAgMSAxIDF2MThhMSAxIDAgMCAxLTEgMUg2LjVhMSAxIDAgMCAxIDAtNUgyMCIgfQogICAgXSwKICAgIFsicGF0aCIsIHsgZDogIm05IDEwIDMgMyAzLTMiIH1dCiAgXTsKCiAgY29uc3QgQm9va0hlYWRwaG9uZXMgPSBbCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgeyBkOiAiTTQgMTkuNXYtMTVBMi41IDIuNSAwIDAgMSA2LjUgMkgxOWExIDEgMCAwIDEgMSAxdjE4YTEgMSAwIDAgMS0xIDFINi41YTEgMSAwIDAgMSAwLTVIMjAiIH0KICAgIF0sCiAgICBbInBhdGgiLCB7IGQ6ICJNOCAxMnYtMmE0IDQgMCAwIDEgOCAwdjIiIH1dLAogICAgWyJjaXJjbGUiLCB7IGN4OiAiMTUiLCBjeTogIjEyIiwgcjogIjEiIH1dLAogICAgWyJjaXJjbGUiLCB7IGN4OiAiOSIsIGN5OiAiMTIiLCByOiAiMSIgfV0KICBdOwoKICBjb25zdCBCb29rSGVhcnQgPSBbCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgeyBkOiAiTTQgMTkuNXYtMTVBMi41IDIuNSAwIDAgMSA2LjUgMkgxOWExIDEgMCAwIDEgMSAxdjE4YTEgMSAwIDAgMS0xIDFINi41YTEgMSAwIDAgMSAwLTVIMjAiIH0KICAgIF0sCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNOC42MiA5LjhBMi4yNSAyLjI1IDAgMSAxIDEyIDYuODM2YTIuMjUgMi4yNSAwIDEgMSAzLjM4IDIuOTY2bC0yLjYyNiAyLjg1NmEuOTk4Ljk5OCAwIDAgMS0xLjUwNyAweiIKICAgICAgfQogICAgXQogIF07CgogIGNvbnN0IEJvb2tJbWFnZSA9IFsKICAgIFsicGF0aCIsIHsgZDogIm0yMCAxMy43LTIuMS0yLjFhMiAyIDAgMCAwLTIuOCAwTDkuNyAxNyIgfV0sCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgeyBkOiAiTTQgMTkuNXYtMTVBMi41IDIuNSAwIDAgMSA2LjUgMkgxOWExIDEgMCAwIDEgMSAxdjE4YTEgMSAwIDAgMS0xIDFINi41YTEgMSAwIDAgMSAwLTVIMjAiIH0KICAgIF0sCiAgICBbImNpcmNsZSIsIHsgY3g6ICIxMCIsIGN5OiAiOCIsIHI6ICIyIiB9XQogIF07CgogIGNvbnN0IEJvb2tMb2NrID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTE4IDZWNGEyIDIgMCAxIDAtNCAwdjIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIwIDE1djZhMSAxIDAgMCAxLTEgMUg2LjVhMSAxIDAgMCAxIDAtNUgyMCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNCAxOS41di0xNUEyLjUgMi41IDAgMCAxIDYuNSAySDEwIiB9XSwKICAgIFsicmVjdCIsIHsgeDogIjEyIiwgeTogIjYiLCB3aWR0aDogIjgiLCBoZWlnaHQ6ICI1Iiwgcng6ICIxIiB9XQogIF07CgogIGNvbnN0IEJvb2tLZXkgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTMgMkg2LjVBMi41IDIuNSAwIDAgMCA0IDQuNXYxNSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTcgMnY2IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNyA0aDIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIwIDE1LjJWMjFhMSAxIDAgMCAxLTEgMUg2LjVhMSAxIDAgMCAxIDAtNUgyMCIgfV0sCiAgICBbImNpcmNsZSIsIHsgY3g6ICIxNyIsIGN5OiAiMTAiLCByOiAiMiIgfV0KICBdOwoKICBjb25zdCBCb29rTWFya2VkID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTEwIDJ2OGwzLTMgMyAzVjIiIH1dLAogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsgZDogIk00IDE5LjV2LTE1QTIuNSAyLjUgMCAwIDEgNi41IDJIMTlhMSAxIDAgMCAxIDEgMXYxOGExIDEgMCAwIDEtMSAxSDYuNWExIDEgMCAwIDEgMC01SDIwIiB9CiAgICBdCiAgXTsKCiAgY29uc3QgQm9va01pbnVzID0gWwogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsgZDogIk00IDE5LjV2LTE1QTIuNSAyLjUgMCAwIDEgNi41IDJIMTlhMSAxIDAgMCAxIDEgMXYxOGExIDEgMCAwIDEtMSAxSDYuNWExIDEgMCAwIDEgMC01SDIwIiB9CiAgICBdLAogICAgWyJwYXRoIiwgeyBkOiAiTTkgMTBoNiIgfV0KICBdOwoKICBjb25zdCBCb29rT3BlbkNoZWNrID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDV2MTYiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTE2IDEyIDIgMiA0LTQiIH1dLAogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTIyIDZWNWEyIDIgMCAwMC0xLjk5OS0yTDE2IDMuMDAyQTUgNSAwIDAwMTIgNWE1IDUgMCAwMC00LTJINGEyIDIgMCAwMC0yIDJ2MTJhMiAyIDAgMDAxLjk5OSAySDhhNSA1IDAgMDE0IDIgNSA1IDAgMDE0LTJoNC4wMDFBMiAyIDAgMDAyMiAxN3YtMS4zNDQiCiAgICAgIH0KICAgIF0KICBdOwoKICBjb25zdCBCb29rT3BlblRleHQgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgNXYxNiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTYgMTNoMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTYgOWgyIiB9XSwKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk0yMC4wMDEgMTlBMiAyIDAgMDAyMiAxN1Y1YTIgMiAwIDAwLTEuOTk5LTJMMTYgMy4wMDJBNSA1IDAgMDAxMiA1YTUgNSAwIDAwLTQtMkg0YTIgMiAwIDAwLTIgMnYxMmEyIDIgMCAwMDEuOTk5IDJIOGE1IDUgMCAwMTQgMiA1IDUgMCAwMTQtMnoiCiAgICAgIH0KICAgIF0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNiAxM2gyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk02IDloMiIgfV0KICBdOwoKICBjb25zdCBCb29rT3BlbiA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xMiA1djE2IiB9XSwKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk0yMC4wMDEgMTlBMiAyIDAgMDAyMiAxN1Y1YTIgMiAwIDAwLTEuOTk5LTJMMTYgMy4wMDJBNSA1IDAgMDAxMiA1YTUgNSAwIDAwLTQtMkg0YTIgMiAwIDAwLTIgMnYxMmEyIDIgMCAwMDEuOTk5IDJIOGE1IDUgMCAwMTQgMiA1IDUgMCAwMTQtMnoiCiAgICAgIH0KICAgIF0KICBdOwoKICBjb25zdCBCb29rU2VhcmNoID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTExIDIySDUuNWExIDEgMCAwIDEgMC01aDQuNTAxIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0yMSAyMi0xLjg3OS0xLjg3OCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMyAxOS41di0xNUEyLjUgMi41IDAgMCAxIDUuNSAySDE4YTEgMSAwIDAgMSAxIDF2OCIgfV0sCiAgICBbImNpcmNsZSIsIHsgY3g6ICIxNyIsIGN5OiAiMTgiLCByOiAiMyIgfV0KICBdOwoKICBjb25zdCBCb29rUGx1cyA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xMiA3djYiIH1dLAogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsgZDogIk00IDE5LjV2LTE1QTIuNSAyLjUgMCAwIDEgNi41IDJIMTlhMSAxIDAgMCAxIDEgMXYxOGExIDEgMCAwIDEtMSAxSDYuNWExIDEgMCAwIDEgMC01SDIwIiB9CiAgICBdLAogICAgWyJwYXRoIiwgeyBkOiAiTTkgMTBoNiIgfV0KICBdOwoKICBjb25zdCBCb29rVGV4dCA9IFsKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7IGQ6ICJNNCAxOS41di0xNUEyLjUgMi41IDAgMCAxIDYuNSAySDE5YTEgMSAwIDAgMSAxIDF2MThhMSAxIDAgMCAxLTEgMUg2LjVhMSAxIDAgMCAxIDAtNUgyMCIgfQogICAgXSwKICAgIFsicGF0aCIsIHsgZDogIk04IDExaDgiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTggN2g2IiB9XQogIF07CgogIGNvbnN0IEJvb2tUeXBlID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTEwIDEzaDQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDZ2NyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTYgOFY2SDh2MiIgfV0sCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgeyBkOiAiTTQgMTkuNXYtMTVBMi41IDIuNSAwIDAgMSA2LjUgMkgxOWExIDEgMCAwIDEgMSAxdjE4YTEgMSAwIDAgMS0xIDFINi41YTEgMSAwIDAgMSAwLTVIMjAiIH0KICAgIF0KICBdOwoKICBjb25zdCBCb29rVXAyID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDEzVjciIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE4IDJoMWExIDEgMCAwIDEgMSAxdjE4YTEgMSAwIDAgMS0xIDFINi41YTEgMSAwIDAgMSAwLTVIMjAiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTQgMTkuNXYtMTVBMi41IDIuNSAwIDAgMSA2LjUgMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtOSAxMCAzLTMgMyAzIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm05IDUgMy0zIDMgMyIgfV0KICBdOwoKICBjb25zdCBCb29rVXAgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgMTNWNyIgfV0sCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgeyBkOiAiTTQgMTkuNXYtMTVBMi41IDIuNSAwIDAgMSA2LjUgMkgxOWExIDEgMCAwIDEgMSAxdjE4YTEgMSAwIDAgMS0xIDFINi41YTEgMSAwIDAgMSAwLTVIMjAiIH0KICAgIF0sCiAgICBbInBhdGgiLCB7IGQ6ICJtOSAxMCAzLTMgMyAzIiB9XQogIF07CgogIGNvbnN0IEJvb2tVc2VyID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTE1IDEzYTMgMyAwIDEgMC02IDAiIH1dLAogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsgZDogIk00IDE5LjV2LTE1QTIuNSAyLjUgMCAwIDEgNi41IDJIMTlhMSAxIDAgMCAxIDEgMXYxOGExIDEgMCAwIDEtMSAxSDYuNWExIDEgMCAwIDEgMC01SDIwIiB9CiAgICBdLAogICAgWyJjaXJjbGUiLCB7IGN4OiAiMTIiLCBjeTogIjgiLCByOiAiMiIgfV0KICBdOwoKICBjb25zdCBCb29rWCA9IFsKICAgIFsicGF0aCIsIHsgZDogIm0xNC41IDctNSA1IiB9XSwKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7IGQ6ICJNNCAxOS41di0xNUEyLjUgMi41IDAgMCAxIDYuNSAySDE5YTEgMSAwIDAgMSAxIDF2MThhMSAxIDAgMCAxLTEgMUg2LjVhMSAxIDAgMCAxIDAtNUgyMCIgfQogICAgXSwKICAgIFsicGF0aCIsIHsgZDogIm05LjUgNyA1IDUiIH1dCiAgXTsKCiAgY29uc3QgQm9vayA9IFsKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7IGQ6ICJNNCAxOS41di0xNUEyLjUgMi41IDAgMCAxIDYuNSAySDE5YTEgMSAwIDAgMSAxIDF2MThhMSAxIDAgMCAxLTEgMUg2LjVhMSAxIDAgMCAxIDAtNUgyMCIgfQogICAgXQogIF07CgogIGNvbnN0IEJvb2ttYXJrQ2hlY2sgPSBbCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMTcgM2EyIDIgMCAwIDEgMiAydjE1YTEgMSAwIDAgMS0xLjQ5Ni44NjhsLTQuNTEyLTIuNTc4YTIgMiAwIDAgMC0xLjk4NCAwbC00LjUxMiAyLjU3OEExIDEgMCAwIDEgNSAyMFY1YTIgMiAwIDAgMSAyLTJ6IgogICAgICB9CiAgICBdLAogICAgWyJwYXRoIiwgeyBkOiAibTkgMTAgMiAyIDQtNCIgfV0KICBdOwoKICBjb25zdCBCb29rbWFya01pbnVzID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTE1IDEwSDkiIH1dLAogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTE3IDNhMiAyIDAgMCAxIDIgMnYxNWExIDEgMCAwIDEtMS40OTYuODY4bC00LjUxMi0yLjU3OGEyIDIgMCAwIDAtMS45ODQgMGwtNC41MTIgMi41NzhBMSAxIDAgMCAxIDUgMjBWNWEyIDIgMCAwIDEgMi0yeiIKICAgICAgfQogICAgXQogIF07CgogIGNvbnN0IEJvb2ttYXJrT2ZmID0gWwogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTE5IDE5djFhMSAxIDAgMCAxLTEuNDk2Ljg2OGwtNC41MTItMi41NzhhMiAyIDAgMCAwLTEuOTg0IDBsLTQuNTEyIDIuNTc4QTEgMSAwIDAgMSA1IDIwVjUiCiAgICAgIH0KICAgIF0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMiAyIDIwIDIwIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk04LjY1NiAzSDE3YTIgMiAwIDAgMSAyIDJ2OC4zNDQiIH1dCiAgXTsKCiAgY29uc3QgQm9va21hcmtQbHVzID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDd2NiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTUgMTBIOSIgfV0sCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMTcgM2EyIDIgMCAwIDEgMiAydjE1YTEgMSAwIDAgMS0xLjQ5Ni44NjhsLTQuNTEyLTIuNTc4YTIgMiAwIDAgMC0xLjk4NCAwbC00LjUxMiAyLjU3OEExIDEgMCAwIDEgNSAyMFY1YTIgMiAwIDAgMSAyLTJ6IgogICAgICB9CiAgICBdCiAgXTsKCiAgY29uc3QgQm9va21hcmtYID0gWwogICAgWyJwYXRoIiwgeyBkOiAibTE0LjUgNy41LTUgNSIgfV0sCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMTcgM2EyIDIgMCAwIDEgMiAydjE1YTEgMSAwIDAgMS0xLjQ5Ni44NjhsLTQuNTEyLTIuNTc4YTIgMiAwIDAgMC0xLjk4NCAwbC00LjUxMiAyLjU3OEExIDEgMCAwIDEgNSAyMFY1YTIgMiAwIDAgMSAyLTJ6IgogICAgICB9CiAgICBdLAogICAgWyJwYXRoIiwgeyBkOiAibTkuNSA3LjUgNSA1IiB9XQogIF07CgogIGNvbnN0IEJvb2ttYXJrID0gWwogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTE3IDNhMiAyIDAgMCAxIDIgMnYxNWExIDEgMCAwIDEtMS40OTYuODY4bC00LjUxMi0yLjU3OGEyIDIgMCAwIDAtMS45ODQgMGwtNC41MTIgMi41NzhBMSAxIDAgMCAxIDUgMjBWNWEyIDIgMCAwIDEgMi0yeiIKICAgICAgfQogICAgXQogIF07CgogIGNvbnN0IEJvb21Cb3ggPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNNCA5VjVhMiAyIDAgMCAxIDItMmgxMmEyIDIgMCAwIDEgMiAydjQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTggOHYxIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xMiA4djEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE2IDh2MSIgfV0sCiAgICBbInJlY3QiLCB7IHdpZHRoOiAiMjAiLCBoZWlnaHQ6ICIxMiIsIHg6ICIyIiwgeTogIjkiLCByeDogIjIiIH1dLAogICAgWyJjaXJjbGUiLCB7IGN4OiAiOCIsIGN5OiAiMTUiLCByOiAiMiIgfV0sCiAgICBbImNpcmNsZSIsIHsgY3g6ICIxNiIsIGN5OiAiMTUiLCByOiAiMiIgfV0KICBdOwoKICBjb25zdCBCb3RNZXNzYWdlU3F1YXJlID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDZWMkg4IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNSAxMXYyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yIDEyaDIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIwIDEyaDIiIH1dLAogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTIwIDE2YTIgMiAwIDAgMS0yIDJIOC44MjhhMiAyIDAgMCAwLTEuNDE0LjU4NmwtMi4yMDIgMi4yMDJBLjcxLjcxIDAgMCAxIDQgMjAuMjg2VjhhMiAyIDAgMCAxIDItMmgxMmEyIDIgMCAwIDEgMiAyeiIKICAgICAgfQogICAgXSwKICAgIFsicGF0aCIsIHsgZDogIk05IDExdjIiIH1dCiAgXTsKCiAgY29uc3QgQm90T2ZmID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTEzLjY3IDhIMThhMiAyIDAgMCAxIDIgMnY0LjMzIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yIDE0aDIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIwIDE0aDIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIyIDIyIDIgMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNOCA4SDZhMiAyIDAgMCAwLTIgMnY4YTIgMiAwIDAgMCAyIDJoMTJhMiAyIDAgMCAwIDEuNDE0LS41ODYiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTkgMTN2MiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNOS42NyA0SDEydjIuMzMiIH1dCiAgXTsKCiAgY29uc3QgQm90ID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDhWNEg4IiB9XSwKICAgIFsicmVjdCIsIHsgd2lkdGg6ICIxNiIsIGhlaWdodDogIjEyIiwgeDogIjQiLCB5OiAiOCIsIHJ4OiAiMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMiAxNGgyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yMCAxNGgyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNSAxM3YyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk05IDEzdjIiIH1dCiAgXTsKCiAgY29uc3QgQm90dGxlV2luZSA9IFsKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk0xMCAzYTEgMSAwIDAgMSAxLTFoMmExIDEgMCAwIDEgMSAxdjJhNiA2IDAgMCAwIDEuMiAzLjZsLjYuOEE2IDYgMCAwIDEgMTcgMTN2OGExIDEgMCAwIDEtMSAxSDhhMSAxIDAgMCAxLTEtMXYtOGE2IDYgMCAwIDEgMS4yLTMuNmwuNi0uOEE2IDYgMCAwIDAgMTAgNXoiCiAgICAgIH0KICAgIF0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTcgMTNoLTRhMSAxIDAgMCAwLTEgMXYzYTEgMSAwIDAgMCAxIDFoNCIgfV0KICBdOwoKICBjb25zdCBCb3dBcnJvdyA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xNyAzaDR2NCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTguNTc1IDExLjA4MmExMyAxMyAwIDAgMSAxLjA0OCA5LjAyNyAxLjE3IDEuMTcgMCAwIDEtMS45MTQuNTk3TDE0IDE3IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk03IDEwIDMuMjkgNi4yOWExLjE3IDEuMTcgMCAwIDEgLjYtMS45MSAxMyAxMyAwIDAgMSA5LjAzIDEuMDUiIH1dLAogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTcgMTRhMS43IDEuNyAwIDAgMC0xLjIwNy41bC0yLjY0NiAyLjY0NkEuNS41IDAgMCAwIDMuNSAxOEg1YTEgMSAwIDAgMSAxIDF2MS41YS41LjUgMCAwIDAgLjg1NC4zNTRMOS41IDE4LjIwN0ExLjcgMS43IDAgMCAwIDEwIDE3di0yYTEgMSAwIDAgMC0xLTF6IgogICAgICB9CiAgICBdLAogICAgWyJwYXRoIiwgeyBkOiAiTTkuNzA3IDE0LjI5MyAyMSAzIiB9XQogIF07CgogIGNvbnN0IEJveCA9IFsKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk0yMSA4YTIgMiAwIDAgMC0xLTEuNzNsLTctNGEyIDIgMCAwIDAtMiAwbC03IDRBMiAyIDAgMCAwIDMgOHY4YTIgMiAwIDAgMCAxIDEuNzNsNyA0YTIgMiAwIDAgMCAyIDBsNy00QTIgMiAwIDAgMCAyMSAxNloiCiAgICAgIH0KICAgIF0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMy4zIDcgOC43IDUgOC43LTUiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDIyVjEyIiB9XQogIF07CgogIGNvbnN0IEJveGVzID0gWwogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTIuOTcgMTIuOTJBMiAyIDAgMCAwIDIgMTQuNjN2My4yNGEyIDIgMCAwIDAgLjk3IDEuNzFsMyAxLjhhMiAyIDAgMCAwIDIuMDYgMEwxMiAxOXYtNS41bC01LTMtNC4wMyAyLjQyWiIKICAgICAgfQogICAgXSwKICAgIFsicGF0aCIsIHsgZDogIm03IDE2LjUtNC43NC0yLjg1IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm03IDE2LjUgNS0zIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk03IDE2LjV2NS4xNyIgfV0sCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMTIgMTMuNVYxOWwzLjk3IDIuMzhhMiAyIDAgMCAwIDIuMDYgMGwzLTEuOGEyIDIgMCAwIDAgLjk3LTEuNzF2LTMuMjRhMiAyIDAgMCAwLS45Ny0xLjcxTDE3IDEwLjVsLTUgM1oiCiAgICAgIH0KICAgIF0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMTcgMTYuNS01LTMiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTE3IDE2LjUgNC43NC0yLjg1IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNyAxNi41djUuMTciIH1dLAogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTcuOTcgNC40MkEyIDIgMCAwIDAgNyA2LjEzdjQuMzdsNSAzIDUtM1Y2LjEzYTIgMiAwIDAgMC0uOTctMS43MWwtMy0xLjhhMiAyIDAgMCAwLTIuMDYgMGwtMyAxLjhaIgogICAgICB9CiAgICBdLAogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDggNy4yNiA1LjE1IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0xMiA4IDQuNzQtMi44NSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgMTMuNVY4IiB9XQogIF07CgogIGNvbnN0IEJyYWluQ2lyY3VpdCA9IFsKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7IGQ6ICJNMTIgNWEzIDMgMCAxIDAtNS45OTcuMTI1IDQgNCAwIDAgMC0yLjUyNiA1Ljc3IDQgNCAwIDAgMCAuNTU2IDYuNTg4QTQgNCAwIDEgMCAxMiAxOFoiIH0KICAgIF0sCiAgICBbInBhdGgiLCB7IGQ6ICJNOSAxM2E0LjUgNC41IDAgMCAwIDMtNCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNi4wMDMgNS4xMjVBMyAzIDAgMCAwIDYuNDAxIDYuNSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMy40NzcgMTAuODk2YTQgNCAwIDAgMSAuNTg1LS4zOTYiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTYgMThhNCA0IDAgMCAxLTEuOTY3LS41MTYiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDEzaDQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDE4aDZhMiAyIDAgMCAxIDIgMnYxIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xMiA4aDgiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE2IDhWNWEyIDIgMCAwIDEgMi0yIiB9XSwKICAgIFsiY2lyY2xlIiwgeyBjeDogIjE2IiwgY3k6ICIxMyIsIHI6ICIuNSIgfV0sCiAgICBbImNpcmNsZSIsIHsgY3g6ICIxOCIsIGN5OiAiMyIsIHI6ICIuNSIgfV0sCiAgICBbImNpcmNsZSIsIHsgY3g6ICIyMCIsIGN5OiAiMjEiLCByOiAiLjUiIH1dLAogICAgWyJjaXJjbGUiLCB7IGN4OiAiMjAiLCBjeTogIjgiLCByOiAiLjUiIH1dCiAgXTsKCiAgY29uc3QgQnJhY2VzID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTggM0g3YTIgMiAwIDAgMC0yIDJ2NWEyIDIgMCAwIDEtMiAyIDIgMiAwIDAgMSAyIDJ2NWMwIDEuMS45IDIgMiAyaDEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE2IDIxaDFhMiAyIDAgMCAwIDItMnYtNWMwLTEuMS45LTIgMi0yYTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDAtMi0yaC0xIiB9XQogIF07CgogIGNvbnN0IEJyYWNrZXRzID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTE2IDNoM2ExIDEgMCAwIDEgMSAxdjE2YTEgMSAwIDAgMS0xIDFoLTMiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTggMjFINWExIDEgMCAwIDEtMS0xVjRhMSAxIDAgMCAxIDEtMWgzIiB9XQogIF07CgogIGNvbnN0IEJyYWluQ29nID0gWwogICAgWyJwYXRoIiwgeyBkOiAibTEwLjg1MiAxNC43NzItLjM4My45MjMiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTEwLjg1MiA5LjIyOC0uMzgzLS45MjMiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTEzLjE0OCAxNC43NzIuMzgyLjkyNCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMTMuNTMxIDguMzA1LS4zODMuOTIzIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0xNC43NzIgMTAuODUyLjkyMy0uMzgzIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0xNC43NzIgMTMuMTQ4LjkyMy4zODMiIH1dLAogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTE3LjU5OCA2LjVBMyAzIDAgMSAwIDEyIDVhMyAzIDAgMCAwLTUuNjMtMS40NDYgMyAzIDAgMCAwLS4zNjggMS41NzEgNCA0IDAgMCAwLTIuNTI1IDUuNzcxIgogICAgICB9CiAgICBdLAogICAgWyJwYXRoIiwgeyBkOiAiTTE3Ljk5OCA1LjEyNWE0IDQgMCAwIDEgMi41MjUgNS43NzEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE5LjUwNSAxMC4yOTRhNCA0IDAgMCAxLTEuNSA3LjcwNiIgfV0sCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgeyBkOiAiTTQuMDMyIDE3LjQ4M0E0IDQgMCAwIDAgMTEuNDY0IDIwYy4xOC0uMzExLjg5Mi0uMzExIDEuMDcyIDBhNCA0IDAgMCAwIDcuNDMyLTIuNTE2IiB9CiAgICBdLAogICAgWyJwYXRoIiwgeyBkOiAiTTQuNSAxMC4yOTFBNCA0IDAgMCAwIDYgMTgiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTYuMDAyIDUuMTI1YTMgMyAwIDAgMCAuNCAxLjM3NSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtOS4yMjggMTAuODUyLS45MjMtLjM4MyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtOS4yMjggMTMuMTQ4LS45MjMuMzgzIiB9XSwKICAgIFsiY2lyY2xlIiwgeyBjeDogIjEyIiwgY3k6ICIxMiIsIHI6ICIzIiB9XQogIF07CgogIGNvbnN0IEJyYWluID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDE4VjUiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE1IDEzYTQuMTcgNC4xNyAwIDAgMS0zLTQgNC4xNyA0LjE3IDAgMCAxLTMgNCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTcuNTk4IDYuNUEzIDMgMCAxIDAgMTIgNWEzIDMgMCAxIDAtNS41OTggMS41IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNy45OTcgNS4xMjVhNCA0IDAgMCAxIDIuNTI2IDUuNzciIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE4IDE4YTQgNCAwIDAgMCAyLTcuNDY0IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xOS45NjcgMTcuNDgzQTQgNCAwIDEgMSAxMiAxOGE0IDQgMCAxIDEtNy45NjctLjUxNyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNiAxOGE0IDQgMCAwIDEtMi03LjQ2NCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNi4wMDMgNS4xMjVhNCA0IDAgMCAwLTIuNTI2IDUuNzciIH1dCiAgXTsKCiAgY29uc3QgQnJpY2tXYWxsRmlyZSA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xNiAzdjIuMTA3IiB9XSwKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk0xNyA5YzEgMyAyLjUgMy41IDMuNSA0LjVBNSA1IDAgMCAxIDIyIDE3YTUgNSAwIDAgMS0xMCAwYzAtLjMgMC0uNi4xLS45YTIgMiAwIDEgMCAzLjMtMkMxMyAxMS41IDE2IDkgMTcgOSIKICAgICAgfQogICAgXSwKICAgIFsicGF0aCIsIHsgZDogIk0yMSA4LjI3NFY1YTIgMiAwIDAgMC0yLTJINWEyIDIgMCAwIDAtMiAydjE0YTIgMiAwIDAgMCAyIDJoMy45MzgiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTMgMTVoNS4yNTMiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTMgOWg4LjIyOCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNOCAxNXY2IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk04IDN2NiIgfV0KICBdOwoKICBjb25zdCBCcmlja1dhbGwgPSBbCiAgICBbInJlY3QiLCB7IHdpZHRoOiAiMTgiLCBoZWlnaHQ6ICIxOCIsIHg6ICIzIiwgeTogIjMiLCByeDogIjIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDl2NiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTYgMTV2NiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTYgM3Y2IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0zIDE1aDE4IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0zIDloMTgiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTggMTV2NiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNOCAzdjYiIH1dCiAgXTsKCiAgY29uc3QgQnJpZWZjYXNlQnVzaW5lc3MgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgMTJoLjAxIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNiA2VjRhMiAyIDAgMCAwLTItMmgtNGEyIDIgMCAwIDAtMiAydjIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIyIDEzYTE4LjE1IDE4LjE1IDAgMCAxLTIwIDAiIH1dLAogICAgWyJyZWN0IiwgeyB3aWR0aDogIjIwIiwgaGVpZ2h0OiAiMTQiLCB4OiAiMiIsIHk6ICI2Iiwgcng6ICIyIiB9XQogIF07CgogIGNvbnN0IEJyaWNrV2FsbFNoaWVsZCA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xMiA5djEuMjU4IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNiAzdjUuNDYiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIxIDkuMTE4VjVhMiAyIDAgMCAwLTItMkg1YTIgMiAwIDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmg1Ljc1IiB9XSwKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk0yMiAxNy41YzAgMi40OTktMS43NSAzLjc0OS0zLjgzIDQuNDc0YS41LjUgMCAwIDEtLjMzNS0uMDA1Yy0yLjA4NS0uNzItMy44MzUtMS45Ny0zLjgzNS00LjQ3VjE0YS41LjUgMCAwIDEgLjUtLjQ5OWMxIDAgMi4yNS0uNiAzLjEyLTEuMzZhLjYuNiAwIDAgMSAuNzYtLjAwMWMuODc1Ljc2NSAyLjEyIDEuMzYgMy4xMiAxLjM2YS41LjUgMCAwIDEgLjUuNXoiCiAgICAgIH0KICAgIF0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMyAxNWg3IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0zIDloMTIuMTQyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk04IDE1djYiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTggM3Y2IiB9XQogIF07CgogIGNvbnN0IEJyaWVmY2FzZUNvbnZleW9yQmVsdCA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xMCAyMHYyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNCAyMHYyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xOCAyMHYyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yMSAyMEgzIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk02IDIwdjIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTggMTZWNGEyIDIgMCAwIDEgMi0yaDRhMiAyIDAgMCAxIDIgMnYxMiIgfV0sCiAgICBbInJlY3QiLCB7IHg6ICI0IiwgeTogIjYiLCB3aWR0aDogIjE2IiwgaGVpZ2h0OiAiMTAiLCByeDogIjIiIH1dCiAgXTsKCiAgY29uc3QgQnJpZWZjYXNlTWVkaWNhbCA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xMiAxMXY0IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNCAxM2gtNCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTYgNlY0YTIgMiAwIDAgMC0yLTJoLTRhMiAyIDAgMCAwLTIgMnYyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xOCA2djE0IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk02IDZ2MTQiIH1dLAogICAgWyJyZWN0IiwgeyB3aWR0aDogIjIwIiwgaGVpZ2h0OiAiMTQiLCB4OiAiMiIsIHk6ICI2Iiwgcng6ICIyIiB9XQogIF07CgogIGNvbnN0IEJyaWVmY2FzZSA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xNiAyMFY0YTIgMiAwIDAgMC0yLTJoLTRhMiAyIDAgMCAwLTIgMnYxNiIgfV0sCiAgICBbInJlY3QiLCB7IHdpZHRoOiAiMjAiLCBoZWlnaHQ6ICIxNCIsIHg6ICIyIiwgeTogIjYiLCByeDogIjIiIH1dCiAgXTsKCiAgY29uc3QgQnJpbmdUb0Zyb250ID0gWwogICAgWyJyZWN0IiwgeyB4OiAiOCIsIHk6ICI4Iiwgd2lkdGg6ICI4IiwgaGVpZ2h0OiAiOCIsIHJ4OiAiMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNCAxMGEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg0YTIgMiAwIDAgMSAyIDIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE0IDIwYTIgMiAwIDAgMCAyIDJoNGEyIDIgMCAwIDAgMi0ydi00YTIgMiAwIDAgMC0yLTIiIH1dCiAgXTsKCiAgY29uc3QgQnJvY2NvbGkgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTAgMTNhMyAzIDAgMCAxLTIuMTIxLTUuMTIxIiB9XSwKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk0xNS42MDYgMTQuMjA0Yy0zLjUgMS41LTUuODk5IDQuNTAzLTguODk5IDcuNTAzQTEgMSAwIDAgMSA2IDIyYy0yIDAtNC0yLTQtNGExIDEgMCAwIDEgLjI5My0uNzA3YzEuOTExLTEuOTExIDMuODIzLTMuNTc4IDUuMzQ3LTUuNDQxIgogICAgICB9CiAgICBdLAogICAgWyJwYXRoIiwgeyBkOiAiTTE2LjU3MyAxNC43MzdBNCA0IDAgMCAxIDE0IDExIiB9XSwKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk03LjE0IDEwLjkwN2E0IDQgMCAxIDEgMi43NTYtNy40M0E0IDQgMCAwIDEgMTYuNyA0LjQ4YTIgMiAwIDAgMSAyLjgyIDIuODIgNCA0IDAgMCAxIDEuMDAyIDYuODA1QTQgNCAwIDEgMSAxMyAxNiIKICAgICAgfQogICAgXQogIF07CgogIGNvbnN0IEJydXNoQ2xlYW5pbmcgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJtMTYgMjItMS00IiB9XSwKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk0xOSAxNGExIDEgMCAwIDAgMS0xdi0xYTIgMiAwIDAgMC0yLTJoLTNhMSAxIDAgMCAxLTEtMVY0YTIgMiAwIDAgMC00IDB2NWExIDEgMCAwIDEtMSAxSDZhMiAyIDAgMCAwLTIgMnYxYTEgMSAwIDAgMCAxIDEiCiAgICAgIH0KICAgIF0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTkgMTRINWwtMS45NzMgNi43NjdBMSAxIDAgMCAwIDQgMjJoMTZhMSAxIDAgMCAwIC45NzMtMS4yMzN6IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm04IDIyIDEtNCIgfV0KICBdOwoKICBjb25zdCBCcnVzaCA9IFsKICAgIFsicGF0aCIsIHsgZDogIm0xMSAxMCAzIDMiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTYuNSAyMUEzLjUgMy41IDAgMSAwIDMgMTcuNWEyLjYyIDIuNjIgMCAwIDEtLjcwOCAxLjc5MkExIDEgMCAwIDAgMyAyMXoiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTkuOTY5IDE3LjAzMSAyMS4zNzggNS42MjRhMSAxIDAgMCAwLTMuMDAyLTMuMDAyTDYuOTY3IDE0LjAzMSIgfV0KICBdOwoKICBjb25zdCBCdWJibGVzID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTcuMDAxIDE1LjA4NUExLjUgMS41IDAgMCAxIDkgMTYuNSIgfV0sCiAgICBbImNpcmNsZSIsIHsgY3g6ICIxOC41IiwgY3k6ICI4LjUiLCByOiAiMy41IiB9XSwKICAgIFsiY2lyY2xlIiwgeyBjeDogIjcuNSIsIGN5OiAiMTYuNSIsIHI6ICI1LjUiIH1dLAogICAgWyJjaXJjbGUiLCB7IGN4OiAiNy41IiwgY3k6ICI0LjUiLCByOiAiMi41IiB9XQogIF07CgogIGNvbnN0IEJ1Z09mZiA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xMiAyMHYtOCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIuNjU2IDdIMTRhNCA0IDAgMCAxIDQgNHYxLjM0NCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTQuMTIgMy44OCAxNiAyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNy4xMjMgMTcuMTIzQTYgNiAwIDAgMSA2IDE0di0zYTQgNCAwIDAgMSAxLjcyLTMuMjg3IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0yIDIgMjAgMjAiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIxIDVhNCA0IDAgMCAxLTMuNTUgMy45NyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMjIgMTNoLTMuMzQ0IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0zIDIxYTQgNCAwIDAgMSAzLjgxLTQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTMgNWE0IDQgMCAwIDAgMy41NSAzLjk3IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk02IDEzSDIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTggMiAxLjg4IDEuODgiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTkuNzEyIDQuMDZBMyAzIDAgMCAxIDE1IDZ2MS4xMyIgfV0KICBdOwoKICBjb25zdCBCdWdQbGF5ID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTEwIDE5LjY1NUE2IDYgMCAwIDEgNiAxNHYtM2E0IDQgMCAwIDEgNC00aDRhNCA0IDAgMCAxIDQgMy45NyIgfV0sCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMTQgMTUuMDAzYTEgMSAwIDAgMSAxLjUxNy0uODU5bDQuOTk3IDIuOTk3YTEgMSAwIDAgMSAwIDEuNzE4bC00Ljk5NyAyLjk5N2ExIDEgMCAwIDEtMS41MTctLjg2eiIKICAgICAgfQogICAgXSwKICAgIFsicGF0aCIsIHsgZDogIk0xNC4xMiAzLjg4IDE2IDIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIxIDVhNCA0IDAgMCAxLTMuNTUgMy45NyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMyAyMWE0IDQgMCAwIDEgMy44MS00IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0zIDVhNCA0IDAgMCAwIDMuNTUgMy45NyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNiAxM0gyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm04IDIgMS44OCAxLjg4IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk05IDcuMTNWNmEzIDMgMCAxIDEgNiAwdjEuMTMiIH1dCiAgXTsKCiAgY29uc3QgQnVnID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDIwdi05IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNCA3YTQgNCAwIDAgMSA0IDR2M2E2IDYgMCAwIDEtMTIgMHYtM2E0IDQgMCAwIDEgNC00eiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTQuMTIgMy44OCAxNiAyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yMSAyMWE0IDQgMCAwIDAtMy44MS00IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yMSA1YTQgNCAwIDAgMS0zLjU1IDMuOTciIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIyIDEzaC00IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0zIDIxYTQgNCAwIDAgMSAzLjgxLTQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTMgNWE0IDQgMCAwIDAgMy41NSAzLjk3IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk02IDEzSDIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTggMiAxLjg4IDEuODgiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTkgNy4xM1Y2YTMgMyAwIDEgMSA2IDB2MS4xMyIgfV0KICBdOwoKICBjb25zdCBCdWlsZGluZzIgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTAgMTJoNCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTAgOGg0IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNCAyMXYtM2EyIDIgMCAwIDAtNCAwdjMiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTYgMTBINGEyIDIgMCAwIDAtMiAydjdhMiAyIDAgMCAwIDIgMmgxNmEyIDIgMCAwIDAgMi0yVjlhMiAyIDAgMCAwLTItMmgtMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNiAyMVY1YTIgMiAwIDAgMSAyLTJoOGEyIDIgMCAwIDEgMiAydjE2IiB9XQogIF07CgogIGNvbnN0IEJ1aWxkaW5nID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDEwaC4wMSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgMTRoLjAxIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xMiA2aC4wMSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTYgMTBoLjAxIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNiAxNGguMDEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE2IDZoLjAxIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk04IDEwaC4wMSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNOCAxNGguMDEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTggNmguMDEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTkgMjJ2LTNhMSAxIDAgMCAxIDEtMWg0YTEgMSAwIDAgMSAxIDF2MyIgfV0sCiAgICBbInJlY3QiLCB7IHg6ICI0IiwgeTogIjIiLCB3aWR0aDogIjE2IiwgaGVpZ2h0OiAiMjAiLCByeDogIjIiIH1dCiAgXTsKCiAgY29uc3QgQnVzRnJvbnQgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNNCA2IDIgNyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTAgNmg0IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0yMiA3LTItMSIgfV0sCiAgICBbInJlY3QiLCB7IHdpZHRoOiAiMTYiLCBoZWlnaHQ6ICIxNiIsIHg6ICI0IiwgeTogIjMiLCByeDogIjIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTQgMTFoMTYiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTggMTVoLjAxIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNiAxNWguMDEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTYgMTl2MiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTggMjF2LTIiIH1dCiAgXTsKCiAgY29uc3QgQnVzID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTggNnY2IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNSA2djYiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIgMTJoMTkuNiIgfV0sCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMTggMThoM3MuNS0xLjcuOC0yLjhjLjEtLjQuMi0uOC4yLTEuMiAwLS40LS4xLS44LS4yLTEuMmwtMS40LTVDMjAuMSA2LjggMTkuMSA2IDE4IDZINGEyIDIgMCAwIDAtMiAydjEwaDMiCiAgICAgIH0KICAgIF0sCiAgICBbImNpcmNsZSIsIHsgY3g6ICI3IiwgY3k6ICIxOCIsIHI6ICIyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk05IDE4aDUiIH1dLAogICAgWyJjaXJjbGUiLCB7IGN4OiAiMTYiLCBjeTogIjE4IiwgcjogIjIiIH1dCiAgXTsKCiAgY29uc3QgQ2FibGVDYXIgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTAgM2guMDEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE0IDJoLjAxIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0yIDkgMjAtNSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgMTJWNi41IiB9XSwKICAgIFsicmVjdCIsIHsgd2lkdGg6ICIxNiIsIGhlaWdodDogIjEwIiwgeDogIjQiLCB5OiAiMTIiLCByeDogIjMiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTkgMTJ2NSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTUgMTJ2NSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNCAxN2gxNiIgfV0KICBdOwoKICBjb25zdCBDYWJsZSA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xNyAxOWExIDEgMCAwIDEtMS0xdi0yYTIgMiAwIDAgMSAyLTJoMmEyIDIgMCAwIDEgMiAydjJhMSAxIDAgMCAxLTEgMXoiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE3IDIxdi0yIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xOSAxNFY2LjVhMSAxIDAgMCAwLTcgMHYxMWExIDEgMCAwIDEtNyAwVjEwIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yMSAyMXYtMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMyA1VjMiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTQgMTBhMiAyIDAgMCAxLTItMlY2YTEgMSAwIDAgMSAxLTFoNGExIDEgMCAwIDEgMSAxdjJhMiAyIDAgMCAxLTIgMnoiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTcgNVYzIiB9XQogIF07CgogIGNvbnN0IENha2UgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMjAgMjF2LThhMiAyIDAgMCAwLTItMkg2YTIgMiAwIDAgMC0yIDJ2OCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNCAxNnMuNS0xIDItMSAyLjUgMiA0IDIgMi41LTIgNC0yIDIuNSAyIDQgMiAyLTEgMi0xIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yIDIxaDIwIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk03IDh2MyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgOHYzIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNyA4djMiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTcgNGguMDEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDRoLjAxIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNyA0aC4wMSIgfV0KICBdOwoKICBjb25zdCBDYWtlU2xpY2UgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTYgMTNIMyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTYgMTdIMyIgfV0sCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJtNy4yIDcuOS0zLjM4OCAyLjVBMiAyIDAgMCAwIDMgMTIuMDFWMjBhMSAxIDAgMCAwIDEgMWgxNmExIDEgMCAwIDAgMS0xdi04LjY1NGMwLTItMi40NC02LjAyNi02LjQ0LTguMDI2YTEgMSAwIDAgMC0xLjA4Mi4wNTdMMTAuNCA1LjYiCiAgICAgIH0KICAgIF0sCiAgICBbImNpcmNsZSIsIHsgY3g6ICI5IiwgY3k6ICI3IiwgcjogIjIiIH1dCiAgXTsKCiAgY29uc3QgQ2FsY3VsYXRvciA9IFsKICAgIFsicmVjdCIsIHsgd2lkdGg6ICIxNiIsIGhlaWdodDogIjIwIiwgeDogIjQiLCB5OiAiMiIsIHJ4OiAiMiIgfV0sCiAgICBbImxpbmUiLCB7IHgxOiAiOCIsIHgyOiAiMTYiLCB5MTogIjYiLCB5MjogIjYiIH1dLAogICAgWyJsaW5lIiwgeyB4MTogIjE2IiwgeDI6ICIxNiIsIHkxOiAiMTQiLCB5MjogIjE4IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNiAxMGguMDEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDEwaC4wMSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNOCAxMGguMDEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDE0aC4wMSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNOCAxNGguMDEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDE4aC4wMSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNOCAxOGguMDEiIH1dCiAgXTsKCiAgY29uc3QgQ2FsZW5kYXIxID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTExIDE0aDF2NCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTYgMnY0IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0zIDEwaDE4IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk04IDJ2NCIgfV0sCiAgICBbInJlY3QiLCB7IHg6ICIzIiwgeTogIjQiLCB3aWR0aDogIjE4IiwgaGVpZ2h0OiAiMTgiLCByeDogIjIiIH1dCiAgXTsKCiAgY29uc3QgQ2FsZW5kYXJBcnJvd1VwID0gWwogICAgWyJwYXRoIiwgeyBkOiAibTE0IDE4IDQtNCA0IDQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE2IDJ2NCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTggMjJ2LTgiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIxIDExLjM0M1Y2YTIgMiAwIDAgMC0yLTJINWEyIDIgMCAwIDAtMiAydjE0YTIgMiAwIDAgMCAyIDJoOSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMyAxMGgxOCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNOCAydjQiIH1dCiAgXTsKCiAgY29uc3QgQ2FsZW5kYXJBcnJvd0Rvd24gPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJtMTQgMTggNCA0IDQtNCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTYgMnY0IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xOCAxNHY4IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yMSAxMS4zNTRWNmEyIDIgMCAwIDAtMi0ySDVhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDcuMzQzIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0zIDEwaDE4IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk04IDJ2NCIgfV0KICBdOwoKICBjb25zdCBDYWxlbmRhckNoZWNrMiA9IFsKICAgIFsicGF0aCIsIHsgZDogIk04IDJ2NCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTYgMnY0IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yMSAxNFY2YTIgMiAwIDAgMC0yLTJINWEyIDIgMCAwIDAtMiAydjE0YTIgMiAwIDAgMCAyIDJoOCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMyAxMGgxOCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMTYgMjAgMiAyIDQtNCIgfV0KICBdOwoKICBjb25zdCBDYWxlbmRhckNoZWNrID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTggMnY0IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNiAydjQiIH1dLAogICAgWyJyZWN0IiwgeyB3aWR0aDogIjE4IiwgaGVpZ2h0OiAiMTgiLCB4OiAiMyIsIHk6ICI0Iiwgcng6ICIyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0zIDEwaDE4IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm05IDE2IDIgMiA0LTQiIH1dCiAgXTsKCiAgY29uc3QgQ2FsZW5kYXJDbG9jayA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xNiAxNHYyLjJsMS42IDEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE2IDJ2NCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMjEgNy41VjZhMiAyIDAgMCAwLTItMkg1YTIgMiAwIDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmgzLjUiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTMgMTBoNSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNOCAydjQiIH1dLAogICAgWyJjaXJjbGUiLCB7IGN4OiAiMTYiLCBjeTogIjE2IiwgcjogIjYiIH1dCiAgXTsKCiAgY29uc3QgQ2FsZW5kYXJDb2cgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJtMTUuMjI4IDE2Ljg1Mi0uOTIzLS4zODMiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTE1LjIyOCAxOS4xNDgtLjkyMy4zODMiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE2IDJ2NCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMTYuNDcgMTQuMzA1LjM4Mi45MjMiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTE2Ljg1MiAyMC43NzItLjM4My45MjQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTE5LjE0OCAxNS4yMjguMzgzLS45MjMiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTE5LjUzIDIxLjY5Ni0uMzgyLS45MjQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTIwLjc3MiAxNi44NTIuOTI0LS4zODMiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTIwLjc3MiAxOS4xNDguOTI0LjM4MyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMjEgMTAuNTkyVjZhMiAyIDAgMCAwLTItMkg1YTIgMiAwIDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmg2IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0zIDEwaDE4IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk04IDJ2NCIgfV0sCiAgICBbImNpcmNsZSIsIHsgY3g6ICIxOCIsIGN5OiAiMTgiLCByOiAiMyIgfV0KICBdOwoKICBjb25zdCBDYWxlbmRhckRheXMgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNOCAydjQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE2IDJ2NCIgfV0sCiAgICBbInJlY3QiLCB7IHdpZHRoOiAiMTgiLCBoZWlnaHQ6ICIxOCIsIHg6ICIzIiwgeTogIjQiLCByeDogIjIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTMgMTBoMTgiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTggMTRoLjAxIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xMiAxNGguMDEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE2IDE0aC4wMSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNOCAxOGguMDEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDE4aC4wMSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTYgMThoLjAxIiB9XQogIF07CgogIGNvbnN0IENhbGVuZGFyRm9sZCA9IFsKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk0zIDIwYTIgMiAwIDAgMCAyIDJoMTBhMi40IDIuNCAwIDAgMCAxLjcwNi0uNzA2bDMuNTg4LTMuNTg4QTIuNCAyLjQgMCAwIDAgMjEgMTZWNmEyIDIgMCAwIDAtMi0ySDVhMiAyIDAgMCAwLTIgMnoiCiAgICAgIH0KICAgIF0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTUgMjJ2LTVhMSAxIDAgMCAxIDEtMWg1IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk04IDJ2NCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTYgMnY0IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0zIDEwaDE4IiB9XQogIF07CgogIGNvbnN0IENhbGVuZGFySGVhcnQgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIuMTI3IDIySDVhMiAyIDAgMCAxLTItMlY2YTIgMiAwIDAgMSAyLTJoMTRhMiAyIDAgMCAxIDIgMnY1LjEyNSIgfV0sCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMTQuNjIgMTguOEEyLjI1IDIuMjUgMCAxIDEgMTggMTUuODM2YTIuMjUgMi4yNSAwIDEgMSAzLjM4IDIuOTY2bC0yLjYyNiAyLjg1NmEuOTk4Ljk5OCAwIDAgMS0xLjUwNyAweiIKICAgICAgfQogICAgXSwKICAgIFsicGF0aCIsIHsgZDogIk0xNiAydjQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTMgMTBoMTgiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTggMnY0IiB9XQogIF07CgogIGNvbnN0IENhbGVuZGFyTWludXMyID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTggMnY0IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNiAydjQiIH1dLAogICAgWyJyZWN0IiwgeyB3aWR0aDogIjE4IiwgaGVpZ2h0OiAiMTgiLCB4OiAiMyIsIHk6ICI0Iiwgcng6ICIyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0zIDEwaDE4IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xMCAxNmg0IiB9XQogIF07CgogIGNvbnN0IENhbGVuZGFyTWludXMgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTYgMTloNiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTYgMnY0IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yMSAxNVY2YTIgMiAwIDAgMC0yLTJINWEyIDIgMCAwIDAtMiAydjE0YTIgMiAwIDAgMCAyIDJoOC41IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0zIDEwaDE4IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk04IDJ2NCIgfV0KICBdOwoKICBjb25zdCBDYWxlbmRhck9mZiA9IFsKICAgIFsicGF0aCIsIHsgZDogIk00LjIgNC4yQTIgMiAwIDAgMCAzIDZ2MTRhMiAyIDAgMCAwIDIgMmgxNGEyIDIgMCAwIDAgMS44Mi0xLjE4IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yMSAxNS41VjZhMiAyIDAgMCAwLTItMkg5LjUiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE2IDJ2NCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMyAxMGg3IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yMSAxMGgtNS41IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0yIDIgMjAgMjAiIH1dCiAgXTsKCiAgY29uc3QgQ2FsZW5kYXJQbHVzMiA9IFsKICAgIFsicGF0aCIsIHsgZDogIk04IDJ2NCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTYgMnY0IiB9XSwKICAgIFsicmVjdCIsIHsgd2lkdGg6ICIxOCIsIGhlaWdodDogIjE4IiwgeDogIjMiLCB5OiAiNCIsIHJ4OiAiMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMyAxMGgxOCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTAgMTZoNCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgMTR2NCIgfV0KICBdOwoKICBjb25zdCBDYWxlbmRhclBsdXMgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTYgMTloNiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTYgMnY0IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xOSAxNnY2IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yMSAxMi41OThWNmEyIDIgMCAwIDAtMi0ySDVhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDguNSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMyAxMGgxOCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNOCAydjQiIH1dCiAgXTsKCiAgY29uc3QgQ2FsZW5kYXJSYW5nZSA9IFsKICAgIFsicmVjdCIsIHsgd2lkdGg6ICIxOCIsIGhlaWdodDogIjE4IiwgeDogIjMiLCB5OiAiNCIsIHJ4OiAiMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTYgMnY0IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0zIDEwaDE4IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk04IDJ2NCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTcgMTRoLTYiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTEzIDE4SDciIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTcgMTRoLjAxIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNyAxOGguMDEiIH1dCiAgXTsKCiAgY29uc3QgQ2FsZW5kYXJTZWFyY2ggPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTYgMnY0IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yMSAxMS43NVY2YTIgMiAwIDAgMC0yLTJINWEyIDIgMCAwIDAtMiAydjE0YTIgMiAwIDAgMCAyIDJoNy4yNSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMjIgMjItMS44NzUtMS44NzUiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTMgMTBoMTgiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTggMnY0IiB9XSwKICAgIFsiY2lyY2xlIiwgeyBjeDogIjE4IiwgY3k6ICIxOCIsIHI6ICIzIiB9XQogIF07CgogIGNvbnN0IENhbGVuZGFyU3luYyA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xMSAxMHY0aDQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTExIDE0IDEuNTM1LTEuNjA1YTUgNSAwIDAgMSA4IDEuNSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTYgMnY0IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0yMSAxOC0xLjUzNSAxLjYwNWE1IDUgMCAwIDEtOC0xLjUiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIxIDIydi00aC00IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yMSA4LjVWNmEyIDIgMCAwIDAtMi0ySDVhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDQuMyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMyAxMGg0IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk04IDJ2NCIgfV0KICBdOwoKICBjb25zdCBDYWxlbmRhclgyID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTggMnY0IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNiAydjQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIxIDEzVjZhMiAyIDAgMCAwLTItMkg1YTIgMiAwIDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmg4IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0zIDEwaDE4IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0xNyAyMiA1LTUiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTE3IDE3IDUgNSIgfV0KICBdOwoKICBjb25zdCBDYWxlbmRhclggPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNOCAydjQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE2IDJ2NCIgfV0sCiAgICBbInJlY3QiLCB7IHdpZHRoOiAiMTgiLCBoZWlnaHQ6ICIxOCIsIHg6ICIzIiwgeTogIjQiLCByeDogIjIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTMgMTBoMTgiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTE0IDE0LTQgNCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMTAgMTQgNCA0IiB9XQogIF07CgogIGNvbnN0IENhbGVuZGFyID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTggMnY0IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNiAydjQiIH1dLAogICAgWyJyZWN0IiwgeyB3aWR0aDogIjE4IiwgaGVpZ2h0OiAiMTgiLCB4OiAiMyIsIHk6ICI0Iiwgcng6ICIyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0zIDEwaDE4IiB9XQogIF07CgogIGNvbnN0IENhbWVyYU9mZiA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xNC41NjQgMTQuNTU4YTMgMyAwIDEgMS00LjEyMi00LjEyMSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMiAyIDIwIDIwIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yMCAyMEg0YTIgMiAwIDAgMS0yLTJWOWEyIDIgMCAwIDEgMi0yaDEuOTk3YTIgMiAwIDAgMCAuODE5LS4xNzUiIH1dLAogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTkuNjk1IDQuMDI0QTIgMiAwIDAgMSAxMC4wMDQgNGgzLjk5M2EyIDIgMCAwIDEgMS43NiAxLjA1bC40ODYuOUEyIDIgMCAwIDAgMTguMDAzIDdIMjBhMiAyIDAgMCAxIDIgMnY3LjM0NCIKICAgICAgfQogICAgXQogIF07CgogIGNvbnN0IENhbGVuZGFycyA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xMiAydjIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE1LjcyNiAyMS4wMUEyIDIgMCAwIDEgMTQgMjJINGEyIDIgMCAwIDEtMi0yVjEwYTIgMiAwIDAgMSAyLTIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE4IDJ2MiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMiAxM2gyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk04IDhoMTQiIH1dLAogICAgWyJyZWN0IiwgeyB4OiAiOCIsIHk6ICIzIiwgd2lkdGg6ICIxNCIsIGhlaWdodDogIjE0Iiwgcng6ICIyIiB9XQogIF07CgogIGNvbnN0IENhbWVyYSA9IFsKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk0xMy45OTcgNGEyIDIgMCAwIDEgMS43NiAxLjA1bC40ODYuOUEyIDIgMCAwIDAgMTguMDAzIDdIMjBhMiAyIDAgMCAxIDIgMnY5YTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0yVjlhMiAyIDAgMCAxIDItMmgxLjk5N2EyIDIgMCAwIDAgMS43NTktMS4wNDhsLjQ4OS0uOTA0QTIgMiAwIDAgMSAxMC4wMDQgNHoiCiAgICAgIH0KICAgIF0sCiAgICBbImNpcmNsZSIsIHsgY3g6ICIxMiIsIGN5OiAiMTMiLCByOiAiMyIgfV0KICBdOwoKICBjb25zdCBDYW5keUNhbmUgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJtMTAuOCA1IDIuMTExIDQuMjIzIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNy43NSA3IDE1IDIuMSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtNC44NzQgMTQuNjQ3IDIuMTIgNC4yNCIgfV0sCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgeyBkOiAiTTUuNyAyMWEyIDIgMCAwIDEtMy41LTJsOC42LTE0YTYgNiAwIDAgMSAxMC40IDYgMiAyIDAgMSAxLTMuNDY0LTIgMiAyIDAgMSAwLTMuNDY0LTJ6IiB9CiAgICBdLAogICAgWyJwYXRoIiwgeyBkOiAibTcuOTA2IDkuNzEyIDIuMDA1IDQuNDExIiB9XQogIF07CgogIGNvbnN0IENhbmR5T2ZmID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTEwIDEwdjcuOSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTEuODAyIDYuMTQ1YTUgNSAwIDAgMSA2LjA1MyA2LjA1MyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTQgNi4xdjIuMjQzIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0xNS41IDE1LjU3MS0uOTY0Ljk2NGE1IDUgMCAwIDEtNy4wNzEgMCA1IDUgMCAwIDEgMC03LjA3bC45NjQtLjk2NSIgfV0sCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMTYgN1YzYTEgMSAwIDAgMSAxLjcwNy0uNzA3IDIuNSAyLjUgMCAwIDAgMi4xNTIuNzE3IDEgMSAwIDAgMSAxLjEzMSAxLjEzMSAyLjUgMi41IDAgMCAwIC43MTcgMi4xNTJBMSAxIDAgMCAxIDIxIDhoLTQiCiAgICAgIH0KICAgIF0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMiAyIDIwIDIwIiB9XSwKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk04IDE3djRhMSAxIDAgMCAxLTEuNzA3LjcwNyAyLjUgMi41IDAgMCAwLTIuMTUyLS43MTcgMSAxIDAgMCAxLTEuMTMxLTEuMTMxIDIuNSAyLjUgMCAwIDAtLjcxNy0yLjE1MkExIDEgMCAwIDEgMyAxNmg0IgogICAgICB9CiAgICBdCiAgXTsKCiAgY29uc3QgQ2FuZHkgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTAgN3YxMC45IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNCA2LjFWMTciIH1dLAogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTE2IDdWM2ExIDEgMCAwIDEgMS43MDctLjcwNyAyLjUgMi41IDAgMCAwIDIuMTUyLjcxNyAxIDEgMCAwIDEgMS4xMzEgMS4xMzEgMi41IDIuNSAwIDAgMCAuNzE3IDIuMTUyQTEgMSAwIDAgMSAyMSA4aC00IgogICAgICB9CiAgICBdLAogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTE2LjUzNiA3LjQ2NWE1IDUgMCAwIDAtNy4wNzIgMGwtMiAyYTUgNSAwIDAgMCAwIDcuMDcgNSA1IDAgMCAwIDcuMDcyIDBsMi0yYTUgNSAwIDAgMCAwLTcuMDciCiAgICAgIH0KICAgIF0sCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNOCAxN3Y0YTEgMSAwIDAgMS0xLjcwNy43MDcgMi41IDIuNSAwIDAgMC0yLjE1Mi0uNzE3IDEgMSAwIDAgMS0xLjEzMS0xLjEzMSAyLjUgMi41IDAgMCAwLS43MTctMi4xNTJBMSAxIDAgMCAxIDMgMTZoNCIKICAgICAgfQogICAgXQogIF07CgogIGNvbnN0IENhbm5hYmlzT2ZmID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDIydi00YzEuNSAxLjUgMy41IDMgNiAzIDAtMS41LS41LTMuNS0yLTUiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTEzLjk4OCA4LjMyN0MxMy45MDIgNi4wNTQgMTMuMzY1IDMuODIgMTIgMmE5LjMgOS4zIDAgMCAwLTEuNDQ1IDIuOSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTcuMzc1IDExLjcyNUMxOC44ODIgMTAuNTMgMjEgNy44NDEgMjEgNmMtMi4zMjQgMC01LjA4IDEuMjk2LTYuNjYyIDIuNjg0IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0yIDIgMjAgMjAiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIxLjAyNCAxNS4zNzhBMTUgMTUgMCAwIDAgMjIgMTVjLS40MjYtMS4yNzktMi42Ny0yLjU1Ny00LjI1LTIuOTA3IiB9XSwKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk02Ljk5NSA2Ljk5MkM1LjcxNCA2LjQgNC4yOSA2IDMgNmMwIDIgMi41IDUgNCA2LTEuNSAwLTQuNSAxLjUtNSAzIDMuNSAxLjUgNiAxIDYgMS0xLjUgMS41LTIgMy41LTIgNSAyLjUgMCA0LjUtMS41IDYtMyIKICAgICAgfQogICAgXQogIF07CgogIGNvbnN0IENhbm5hYmlzID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDIydi00IiB9XSwKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk03IDEyYy0xLjUgMC00LjUgMS41LTUgMyAzLjUgMS41IDYgMSA2IDEtMS41IDEuNS0yIDMuNS0yIDUgMi41IDAgNC41LTEuNSA2LTMgMS41IDEuNSAzLjUgMyA2IDMgMC0xLjUtLjUtMy41LTItNSAwIDAgMi41LjUgNi0xLS41LTEuNS0zLjUtMy01LTMgMS41LTEgNC00IDQtNi0yLjUgMC01LjUgMS41LTcgMyAwLTIuNS0uNS01LTItNy0xLjUgMi0yIDQuNS0yIDctMS41LTEuNS00LjUtMy03LTMgMCAyIDIuNSA1IDQgNiIKICAgICAgfQogICAgXQogIF07CgogIGNvbnN0IENhcHRpb25zT2ZmID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTEwLjUgNUgxOWEyIDIgMCAwIDEgMiAydjguNSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTcgMTFoLS41IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xOSAxOUg1YTIgMiAwIDAgMS0yLTJWN2EyIDIgMCAwIDEgMi0yIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0yIDIgMjAgMjAiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTcgMTFoNCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNyAxNWgyLjUiIH1dCiAgXTsKCiAgY29uc3QgQ2FwdGlvbnMgPSBbCiAgICBbInJlY3QiLCB7IHdpZHRoOiAiMTgiLCBoZWlnaHQ6ICIxNCIsIHg6ICIzIiwgeTogIjUiLCByeDogIjIiLCByeTogIjIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTcgMTVoNE0xNSAxNWgyTTcgMTFoMk0xMyAxMWg0IiB9XQogIF07CgogIGNvbnN0IENhckZyb250ID0gWwogICAgWyJwYXRoIiwgeyBkOiAibTIxIDgtMiAyLTEuNS0zLjdBMiAyIDAgMCAwIDE1LjY0NiA1SDguNGEyIDIgMCAwIDAtMS45MDMgMS4yNTdMNSAxMCAzIDgiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTcgMTRoLjAxIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNyAxNGguMDEiIH1dLAogICAgWyJyZWN0IiwgeyB3aWR0aDogIjE4IiwgaGVpZ2h0OiAiOCIsIHg6ICIzIiwgeTogIjEwIiwgcng6ICIyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk01IDE4djIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE5IDE4djIiIH1dCiAgXTsKCiAgY29uc3QgQ2FyVGF4aUZyb250ID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTEwIDJoNCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMjEgOC0yIDItMS41LTMuN0EyIDIgMCAwIDAgMTUuNjQ2IDVIOC40YTIgMiAwIDAgMC0xLjkwMyAxLjI1N0w1IDEwIDMgOCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNyAxNGguMDEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE3IDE0aC4wMSIgfV0sCiAgICBbInJlY3QiLCB7IHdpZHRoOiAiMTgiLCBoZWlnaHQ6ICI4IiwgeDogIjMiLCB5OiAiMTAiLCByeDogIjIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTUgMTh2MiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTkgMTh2MiIgfV0KICBdOwoKICBjb25zdCBDYXIgPSBbCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMTkgMTdoMmMuNiAwIDEtLjQgMS0xdi0zYzAtLjktLjctMS43LTEuNS0xLjlDMTguNyAxMC42IDE2IDEwIDE2IDEwcy0xLjMtMS40LTIuMi0yLjNjLS41LS40LTEuMS0uNy0xLjgtLjdINWMtLjYgMC0xLjEuNC0xLjQuOWwtMS40IDIuOUEzLjcgMy43IDAgMCAwIDIgMTJ2NGMwIC42LjQgMSAxIDFoMiIKICAgICAgfQogICAgXSwKICAgIFsiY2lyY2xlIiwgeyBjeDogIjciLCBjeTogIjE3IiwgcjogIjIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTkgMTdoNiIgfV0sCiAgICBbImNpcmNsZSIsIHsgY3g6ICIxNyIsIGN5OiAiMTciLCByOiAiMiIgfV0KICBdOwoKICBjb25zdCBDYXJkU2ltID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDE0djQiIH1dLAogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTE0LjE3MiAyYTIgMiAwIDAgMSAxLjQxNC41ODZsMy44MjggMy44MjhBMiAyIDAgMCAxIDIwIDcuODI4VjIwYTIgMiAwIDAgMS0yIDJINmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMnoiCiAgICAgIH0KICAgIF0sCiAgICBbInBhdGgiLCB7IGQ6ICJNOCAxNGg4IiB9XSwKICAgIFsicmVjdCIsIHsgeDogIjgiLCB5OiAiMTAiLCB3aWR0aDogIjgiLCBoZWlnaHQ6ICI4Iiwgcng6ICIxIiB9XQogIF07CgogIGNvbnN0IENhcmF2YW4gPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTggMTlWOWE0IDQgMCAwIDAtNC00SDZhNCA0IDAgMCAwLTQgNHY4YTIgMiAwIDAgMCAyIDJoMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMiA5aDNhMSAxIDAgMCAxIDEgMXYyYTEgMSAwIDAgMS0xIDFIMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMjIgMTd2MWExIDEgMCAwIDEtMSAxSDEwdi05YTEgMSAwIDAgMSAxLTFoMmExIDEgMCAwIDEgMSAxdjkiIH1dLAogICAgWyJjaXJjbGUiLCB7IGN4OiAiOCIsIGN5OiAiMTkiLCByOiAiMiIgfV0KICBdOwoKICBjb25zdCBDYXJyb3QgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTUgMTZhMSAxIDAgMCAwLTctN3EtNCA0LTUuOTg3IDEyLjM4NWEuNS41IDAgMCAwIC42MDIuNjAyUTExIDIwIDE1IDE2bC0zLTMiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE1IDlxNCA0IDcgMC0zLTQtNyAwIDQtNCAwLTctNCAzIDAgNyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtOCAxNS0yLjU4LTIuNTgiIH1dCiAgXTsKCiAgY29uc3QgQ2FzZUxvd2VyID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTEwIDl2NyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTQgNnYxMCIgfV0sCiAgICBbImNpcmNsZSIsIHsgY3g6ICIxNy41IiwgY3k6ICIxMi41IiwgcjogIjMuNSIgfV0sCiAgICBbImNpcmNsZSIsIHsgY3g6ICI2LjUiLCBjeTogIjEyLjUiLCByOiAiMy41IiB9XQogIF07CgogIGNvbnN0IENhc2VTZW5zaXRpdmUgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJtMiAxNiA0LjAzOS05LjY5YS41LjUgMCAwIDEgLjkyMyAwTDExIDE2IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yMiA5djciIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTMuMzA0IDEzaDYuMzkyIiB9XSwKICAgIFsiY2lyY2xlIiwgeyBjeDogIjE4LjUiLCBjeTogIjEyLjUiLCByOiAiMy41IiB9XQogIF07CgogIGNvbnN0IENhc2VVcHBlciA9IFsKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7IGQ6ICJNMTUgMTFoNC41YTEgMSAwIDAgMSAwIDVoLTRhLjUuNSAwIDAgMS0uNS0uNXYtOWEuNS41IDAgMCAxIC41LS41aDNhMSAxIDAgMCAxIDAgNSIgfQogICAgXSwKICAgIFsicGF0aCIsIHsgZDogIm0yIDE2IDQuMDM5LTkuNjlhLjUuNSAwIDAgMSAuOTIzIDBMMTEgMTYiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTMuMzA0IDEzaDYuMzkyIiB9XQogIF07CgogIGNvbnN0IENhc3NldHRlVGFwZSA9IFsKICAgIFsicmVjdCIsIHsgd2lkdGg6ICIyMCIsIGhlaWdodDogIjE2IiwgeDogIjIiLCB5OiAiNCIsIHJ4OiAiMiIgfV0sCiAgICBbImNpcmNsZSIsIHsgY3g6ICI4IiwgY3k6ICIxMCIsIHI6ICIyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk04IDEyaDgiIH1dLAogICAgWyJjaXJjbGUiLCB7IGN4OiAiMTYiLCBjeTogIjEwIiwgcjogIjIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTYgMjAgLjctMi45QTEuNCAxLjQgMCAwIDEgOC4xIDE2aDcuOGExLjQgMS40IDAgMCAxIDEuNCAxbC43IDMiIH1dCiAgXTsKCiAgY29uc3QgQ2FzdCA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0yIDhWNmEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ2MTJhMiAyIDAgMCAxLTIgMmgtNiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMiAxMmE5IDkgMCAwIDEgOCA4IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yIDE2YTUgNSAwIDAgMSA0IDQiIH1dLAogICAgWyJsaW5lIiwgeyB4MTogIjIiLCB4MjogIjIuMDEiLCB5MTogIjIwIiwgeTI6ICIyMCIgfV0KICBdOwoKICBjb25zdCBDYXQgPSBbCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMTIgNWMuNjcgMCAxLjM1LjA5IDIgLjI2IDEuNzgtMiA1LjAzLTIuODQgNi40Mi0yLjI2IDEuNC41OC0uNDIgNy0uNDIgNyAuNTcgMS4wNyAxIDIuMjQgMSAzLjQ0QzIxIDE3LjkgMTYuOTcgMjEgMTIgMjFzLTktMy05LTcuNTZjMC0xLjI1LjUtMi40IDEtMy40NCAwIDAtMS44OS02LjQyLS41LTcgMS4zOS0uNTggNC43Mi4yMyA2LjUgMi4yM0E5LjA0IDkuMDQgMCAwIDEgMTIgNVoiCiAgICAgIH0KICAgIF0sCiAgICBbInBhdGgiLCB7IGQ6ICJNOCAxNHYuNSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTYgMTR2LjUiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTExLjI1IDE2LjI1aDEuNUwxMiAxN2wtLjc1LS43NVoiIH1dCiAgXTsKCiAgY29uc3QgQ2N0dk9mZiA9IFsKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIm0xMi4zMDkgNi42NTIgNC43OTcgMi40MDFhMSAxIDAgMCAxIC40NDcgMS4zNDFsLS41MDEgMS4wMDEuNjA1LjYwNWgyLjcyNWExIDEgMCAwIDEgLjg5NCAxLjQ0N2wtLjcyNCAxLjQ0OCIKICAgICAgfQogICAgXSwKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIm0xNS4xNjYgMTUuMTY2LS43MTkgMS40MzlhMSAxIDAgMCAxLTEuMzQyLjQ0N0wzLjYxIDEyLjNhMi45MiAyLjkyIDAgMCAxLTEuMy0zLjkxTDMuNjkgNS42YTIuOSAyLjkgMCAwIDEgLjg3My0xLjAzNyIKICAgICAgfQogICAgXSwKICAgIFsicGF0aCIsIHsgZDogIk0yIDE5aDMuNzZhMiAyIDAgMCAwIDEuOC0xLjFsMS40NDEtMi45MDIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTIgMiAyMCAyMCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMiAyMXYtNCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNyA5aC4wMSIgfV0KICBdOwoKICBjb25zdCBDYXN0bGUgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTAgNVYzIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNCA1VjMiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE1IDIxdi0zYTMgMyAwIDAgMC02IDB2MyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTggM3Y4IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xOCA1SDYiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIyIDExSDIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIyIDl2MTBhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJWOSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNiAzdjgiIH1dCiAgXTsKCiAgY29uc3QgQ2N0diA9IFsKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7IGQ6ICJNMTYuNzUgMTJoMy42MzJhMSAxIDAgMCAxIC44OTQgMS40NDdsLTIuMDM0IDQuMDY5YTEgMSAwIDAgMS0xLjcwOC4xMzRsLTIuMTI0LTIuOTciIH0KICAgIF0sCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMTcuMTA2IDkuMDUzYTEgMSAwIDAgMSAuNDQ3IDEuMzQxbC0zLjEwNiA2LjIxMWExIDEgMCAwIDEtMS4zNDIuNDQ3TDMuNjEgMTIuM2EyLjkyIDIuOTIgMCAwIDEtMS4zLTMuOTFMMy42OSA1LjZhMi45MiAyLjkyIDAgMCAxIDMuOTItMS4zeiIKICAgICAgfQogICAgXSwKICAgIFsicGF0aCIsIHsgZDogIk0yIDE5aDMuNzZhMiAyIDAgMCAwIDEuOC0xLjFMOSAxNSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMiAyMXYtNCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNyA5aC4wMSIgfV0KICBdOwoKICBjb25zdCBDaGFydEFyZWEgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMyAzdjE2YTIgMiAwIDAgMCAyIDJoMTYiIH1dLAogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTcgMTEuMjA3YS41LjUgMCAwIDEgLjE0Ni0uMzUzbDItMmEuNS41IDAgMCAxIC43MDggMGwzLjI5MiAzLjI5MmEuNS41IDAgMCAwIC43MDggMGw0LjI5Mi00LjI5MmEuNS41IDAgMCAxIC44NTQuMzUzVjE2YTEgMSAwIDAgMS0xIDFIOGExIDEgMCAwIDEtMS0xeiIKICAgICAgfQogICAgXQogIF07CgogIGNvbnN0IENoYXJ0QmFyQmlnID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTMgM3YxNmEyIDIgMCAwIDAgMiAyaDE2IiB9XSwKICAgIFsicmVjdCIsIHsgeDogIjciLCB5OiAiMTMiLCB3aWR0aDogIjkiLCBoZWlnaHQ6ICI0Iiwgcng6ICIxIiB9XSwKICAgIFsicmVjdCIsIHsgeDogIjciLCB5OiAiNSIsIHdpZHRoOiAiMTIiLCBoZWlnaHQ6ICI0Iiwgcng6ICIxIiB9XQogIF07CgogIGNvbnN0IENoYXJ0QmFyRGVjcmVhc2luZyA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0zIDN2MTZhMiAyIDAgMCAwIDIgMmgxNiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNyAxMWg4IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk03IDE2aDMiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTcgNmgxMiIgfV0KICBdOwoKICBjb25zdCBDaGFydEJhckluY3JlYXNpbmcgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMyAzdjE2YTIgMiAwIDAgMCAyIDJoMTYiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTcgMTFoOCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNyAxNmgxMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNyA2aDMiIH1dCiAgXTsKCiAgY29uc3QgQ2hhcnRCYXJTdGFja2VkID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTExIDEzdjQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE1IDV2NCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMyAzdjE2YTIgMiAwIDAgMCAyIDJoMTYiIH1dLAogICAgWyJyZWN0IiwgeyB4OiAiNyIsIHk6ICIxMyIsIHdpZHRoOiAiOSIsIGhlaWdodDogIjQiLCByeDogIjEiIH1dLAogICAgWyJyZWN0IiwgeyB4OiAiNyIsIHk6ICI1Iiwgd2lkdGg6ICIxMiIsIGhlaWdodDogIjQiLCByeDogIjEiIH1dCiAgXTsKCiAgY29uc3QgQ2hhcnRCYXIgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMyAzdjE2YTIgMiAwIDAgMCAyIDJoMTYiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTcgMTZoOCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNyAxMWgxMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNyA2aDMiIH1dCiAgXTsKCiAgY29uc3QgQ2hhcnRDb2x1bW5CaWcgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMyAzdjE2YTIgMiAwIDAgMCAyIDJoMTYiIH1dLAogICAgWyJyZWN0IiwgeyB4OiAiMTUiLCB5OiAiNSIsIHdpZHRoOiAiNCIsIGhlaWdodDogIjEyIiwgcng6ICIxIiB9XSwKICAgIFsicmVjdCIsIHsgeDogIjciLCB5OiAiOCIsIHdpZHRoOiAiNCIsIGhlaWdodDogIjkiLCByeDogIjEiIH1dCiAgXTsKCiAgY29uc3QgQ2hhcnRDYW5kbGVzdGljayA9IFsKICAgIFsicGF0aCIsIHsgZDogIk05IDV2NCIgfV0sCiAgICBbInJlY3QiLCB7IHdpZHRoOiAiNCIsIGhlaWdodDogIjYiLCB4OiAiNyIsIHk6ICI5Iiwgcng6ICIxIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk05IDE1djIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE3IDN2MiIgfV0sCiAgICBbInJlY3QiLCB7IHdpZHRoOiAiNCIsIGhlaWdodDogIjgiLCB4OiAiMTUiLCB5OiAiNSIsIHJ4OiAiMSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTcgMTN2MyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMyAzdjE2YTIgMiAwIDAgMCAyIDJoMTYiIH1dCiAgXTsKCiAgY29uc3QgQ2hhcnRDb2x1bW5EZWNyZWFzaW5nID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTEzIDE3VjkiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE4IDE3di0zIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0zIDN2MTZhMiAyIDAgMCAwIDIgMmgxNiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNOCAxN1Y1IiB9XQogIF07CgogIGNvbnN0IENoYXJ0Q29sdW1uSW5jcmVhc2luZyA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xMyAxN1Y5IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xOCAxN1Y1IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0zIDN2MTZhMiAyIDAgMCAwIDIgMmgxNiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNOCAxN3YtMyIgfV0KICBdOwoKICBjb25zdCBDaGFydENvbHVtblN0YWNrZWQgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTEgMTNINyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTkgOWgtNCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMyAzdjE2YTIgMiAwIDAgMCAyIDJoMTYiIH1dLAogICAgWyJyZWN0IiwgeyB4OiAiMTUiLCB5OiAiNSIsIHdpZHRoOiAiNCIsIGhlaWdodDogIjEyIiwgcng6ICIxIiB9XSwKICAgIFsicmVjdCIsIHsgeDogIjciLCB5OiAiOCIsIHdpZHRoOiAiNCIsIGhlaWdodDogIjkiLCByeDogIjEiIH1dCiAgXTsKCiAgY29uc3QgQ2hhcnRDb2x1bW4gPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMyAzdjE2YTIgMiAwIDAgMCAyIDJoMTYiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE4IDE3VjkiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTEzIDE3VjUiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTggMTd2LTMiIH1dCiAgXTsKCiAgY29uc3QgQ2hhcnRHYW50dCA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xMCA2aDgiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDE2aDYiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTMgM3YxNmEyIDIgMCAwIDAgMiAyaDE2IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk04IDExaDciIH1dCiAgXTsKCiAgY29uc3QgQ2hhcnRMaW5lID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTMgM3YxNmEyIDIgMCAwIDAgMiAyaDE2IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0xOSA5LTUgNS00LTQtMyAzIiB9XQogIF07CgogIGNvbnN0IENoYXJ0TmV0d29yayA9IFsKICAgIFsicGF0aCIsIHsgZDogIm0xMy4xMSA3LjY2NCAxLjc4IDIuNjcyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0xNC4xNjIgMTIuNzg4LTMuMzI0IDEuNDI0IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0yMCA0LTYuMDYgMS41MTUiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTMgM3YxNmEyIDIgMCAwIDAgMiAyaDE2IiB9XSwKICAgIFsiY2lyY2xlIiwgeyBjeDogIjEyIiwgY3k6ICI2IiwgcjogIjIiIH1dLAogICAgWyJjaXJjbGUiLCB7IGN4OiAiMTYiLCBjeTogIjEyIiwgcjogIjIiIH1dLAogICAgWyJjaXJjbGUiLCB7IGN4OiAiOSIsIGN5OiAiMTUiLCByOiAiMiIgfV0KICBdOwoKICBjb25zdCBDaGFydE5vQXhlc0NvbHVtbkRlY3JlYXNpbmcgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNNSAyMVYzIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xMiAyMVY5IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xOSAyMXYtNiIgfV0KICBdOwoKICBjb25zdCBDaGFydE5vQXhlc0NvbHVtbkluY3JlYXNpbmcgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNNSAyMXYtNiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgMjFWOSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTkgMjFWMyIgfV0KICBdOwoKICBjb25zdCBDaGFydE5vQXhlc0NvbHVtbiA9IFsKICAgIFsicGF0aCIsIHsgZDogIk01IDIxdi02IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xMiAyMVYzIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xOSAyMVY5IiB9XQogIF07CgogIGNvbnN0IENoYXJ0Tm9BeGVzQ29tYmluZWQgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgMTZ2NSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTYgMTQuNjM5VjIxIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yMCAxMC42NTZWMjEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTIyIDMtOC42NDYgOC42NDZhLjUuNSAwIDAgMS0uNzA4IDBMOS4zNTQgOC4zNTRhLjUuNSAwIDAgMC0uNzA3IDBMMiAxNSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNCAxOC40NjNWMjEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTggMTQuNjU2VjIxIiB9XQogIF07CgogIGNvbnN0IENoYXJ0Tm9BeGVzR2FudHQgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNNiA1aDEyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk00IDEyaDEwIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xMiAxOWg4IiB9XQogIF07CgogIGNvbnN0IENoYXJ0UGllID0gWwogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTIxIDEyYy41NTIgMCAxLjAwNS0uNDQ5Ljk1LS45OThhMTAgMTAgMCAwIDAtOC45NTMtOC45NTFjLS41NS0uMDU1LS45OTguMzk4LS45OTguOTV2OGExIDEgMCAwIDAgMSAxeiIKICAgICAgfQogICAgXSwKICAgIFsicGF0aCIsIHsgZDogIk0yMS4yMSAxNS44OUExMCAxMCAwIDEgMSA4IDIuODMiIH1dCiAgXTsKCiAgY29uc3QgQ2hhcnRTY2F0dGVyID0gWwogICAgWyJjaXJjbGUiLCB7IGN4OiAiNy41IiwgY3k6ICI3LjUiLCByOiAiLjUiLCBmaWxsOiAiY3VycmVudENvbG9yIiB9XSwKICAgIFsiY2lyY2xlIiwgeyBjeDogIjE4LjUiLCBjeTogIjUuNSIsIHI6ICIuNSIsIGZpbGw6ICJjdXJyZW50Q29sb3IiIH1dLAogICAgWyJjaXJjbGUiLCB7IGN4OiAiMTEuNSIsIGN5OiAiMTEuNSIsIHI6ICIuNSIsIGZpbGw6ICJjdXJyZW50Q29sb3IiIH1dLAogICAgWyJjaXJjbGUiLCB7IGN4OiAiNy41IiwgY3k6ICIxNi41IiwgcjogIi41IiwgZmlsbDogImN1cnJlbnRDb2xvciIgfV0sCiAgICBbImNpcmNsZSIsIHsgY3g6ICIxNy41IiwgY3k6ICIxNC41IiwgcjogIi41IiwgZmlsbDogImN1cnJlbnRDb2xvciIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMyAzdjE2YTIgMiAwIDAgMCAyIDJoMTYiIH1dCiAgXTsKCiAgY29uc3QgQ2hlY2tDaGVjayA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xOCA2IDcgMTdsLTUtNSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMjIgMTAtNy41IDcuNUwxMyAxNiIgfV0KICBdOwoKICBjb25zdCBDaGFydFNwbGluZSA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0zIDN2MTZhMiAyIDAgMCAwIDIgMmgxNiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNyAxNmMuNS0yIDEuNS03IDQtNyAyIDAgMiAzIDQgMyAyLjUgMCA0LjUtNSA1LTciIH1dCiAgXTsKCiAgY29uc3QgQ2hlY2tMaW5lID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTIwIDRMOSAxNSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMjEgMTlMMyAxOSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNOSAxNUw0IDEwIiB9XQogIF07CgogIGNvbnN0IENoZWNrID0gW1sicGF0aCIsIHsgZDogIk0yMCA2IDkgMTdsLTUtNSIgfV1dOwoKICBjb25zdCBDaGVmSGF0ID0gWwogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTE3IDIxYTEgMSAwIDAgMCAxLTF2LTUuMzVjMC0uNDU3LjMxNi0uODQ0LjcyNy0xLjA0MWE0IDQgMCAwIDAtMi4xMzQtNy41ODkgNSA1IDAgMCAwLTkuMTg2IDAgNCA0IDAgMCAwLTIuMTM0IDcuNTg4Yy40MTEuMTk4LjcyNy41ODUuNzI3IDEuMDQxVjIwYTEgMSAwIDAgMCAxIDFaIgogICAgICB9CiAgICBdLAogICAgWyJwYXRoIiwgeyBkOiAiTTYgMTdoMTIiIH1dCiAgXTsKCiAgY29uc3QgQ2hlcnJ5ID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTIgMTdhNSA1IDAgMCAwIDEwIDBjMC0yLjc2LTIuNS01LTUtMy0yLjUtMi01IC4yNC01IDNaIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xMiAxN2E1IDUgMCAwIDAgMTAgMGMwLTIuNzYtMi41LTUtNS0zLTIuNS0yLTUgLjI0LTUgM1oiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTcgMTRjMy4yMi0yLjkxIDQuMjktOC43NSA1LTEyIDEuNjYgMi4zOCA0Ljk0IDkgNSAxMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMjIgOWMtNC4yOSAwLTcuMTQtMi4zMy0xMC03IDUuNzEgMCAxMCA0LjY3IDEwIDdaIiB9XQogIF07CgogIGNvbnN0IENoZXNzQmlzaG9wID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTUgMjBhMiAyIDAgMCAxIDItMmgxMGEyIDIgMCAwIDEgMiAydjFhMSAxIDAgMCAxLTEgMUg2YTEgMSAwIDAgMS0xLTF6IiB9XSwKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk0xNSAxOGMxLjUtLjYxNSAzLTIuNDYxIDMtNC45MjNDMTggOC43NjkgMTQuNSA0LjQ2MiAxMiAyIDkuNSA0LjQ2MiA2IDguNzcgNiAxMy4wNzcgNiAxNS41MzkgNy41IDE3LjM4NSA5IDE4IgogICAgICB9CiAgICBdLAogICAgWyJwYXRoIiwgeyBkOiAibTE2IDctMi41IDIuNSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNOSAyaDYiIH1dCiAgXTsKCiAgY29uc3QgQ2hlc3NLaW5nID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTQgMjBhMiAyIDAgMCAxIDItMmgxMmEyIDIgMCAwIDEgMiAydjFhMSAxIDAgMCAxLTEgMUg1YTEgMSAwIDAgMS0xLTF6IiB9XSwKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIm02LjcgMTgtMS0xQzQuMzUgMTUuNjgyIDMgMTQuMDkgMyAxMmE1IDUgMCAwIDEgNC45NS01YzEuNTg0IDAgMi43LjQ1NSA0LjA1IDEuODE4QzEzLjM1IDcuNDU1IDE0LjQ2NiA3IDE2LjA1IDdBNSA1IDAgMCAxIDIxIDEyYzAgMi4wODItMS4zNTkgMy42NzMtMi43IDVsLTEgMSIKICAgICAgfQogICAgXSwKICAgIFsicGF0aCIsIHsgZDogIk0xMCA0aDQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDJ2Ni44MTgiIH1dCiAgXTsKCiAgY29uc3QgQ2hlc3NLbmlnaHQgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNNSAyMGEyIDIgMCAwIDEgMi0yaDEwYTIgMiAwIDAgMSAyIDJ2MWExIDEgMCAwIDEtMSAxSDZhMSAxIDAgMCAxLTEtMXoiIH1dLAogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTE2LjUgMThjMS0yIDIuNS01IDIuNS05YTcgNyAwIDAgMC03LTdINi42MzVhMSAxIDAgMCAwLS43NjggMS42NEw3IDVsLTIuMzIgNS44MDJhMiAyIDAgMCAwIC45NSAyLjUyNmwyLjg3IDEuNDU2IgogICAgICB9CiAgICBdLAogICAgWyJwYXRoIiwgeyBkOiAibTE1IDUgMS40MjUtMS40MjUiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTE3IDggMS41My0xLjUzIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk05LjcxMyAxMi4xODUgNyAxOCIgfV0KICBdOwoKICBjb25zdCBDaGVzc1Bhd24gPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNNSAyMGEyIDIgMCAwIDEgMi0yaDEwYTIgMiAwIDAgMSAyIDJ2MWExIDEgMCAwIDEtMSAxSDZhMSAxIDAgMCAxLTEtMXoiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTE0LjUgMTAgMS41IDgiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTcgMTBoMTAiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTggMTggMS41LTgiIH1dLAogICAgWyJjaXJjbGUiLCB7IGN4OiAiMTIiLCBjeTogIjYiLCByOiAiNCIgfV0KICBdOwoKICBjb25zdCBDaGVzc1F1ZWVuID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTQgMjBhMiAyIDAgMCAxIDItMmgxMmEyIDIgMCAwIDEgMiAydjFhMSAxIDAgMCAxLTEgMUg1YTEgMSAwIDAgMS0xLTF6IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0xMi40NzQgNS45NDMgMS41NjcgNS4zNGExIDEgMCAwIDAgMS43NS4zMjhsMi42MTYtMy40MDIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTIwIDktMyA5IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm01LjU5NCA4LjIwOSAyLjYxNSAzLjQwM2ExIDEgMCAwIDAgMS43NS0uMzI5bDEuNTY3LTUuMzQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTcgMTggNCA5IiB9XSwKICAgIFsiY2lyY2xlIiwgeyBjeDogIjEyIiwgY3k6ICI0IiwgcjogIjIiIH1dLAogICAgWyJjaXJjbGUiLCB7IGN4OiAiMjAiLCBjeTogIjciLCByOiAiMiIgfV0sCiAgICBbImNpcmNsZSIsIHsgY3g6ICI0IiwgY3k6ICI3IiwgcjogIjIiIH1dCiAgXTsKCiAgY29uc3QgQ2hlc3NSb29rID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTUgMjBhMiAyIDAgMCAxIDItMmgxMGEyIDIgMCAwIDEgMiAydjFhMSAxIDAgMCAxLTEgMUg2YTEgMSAwIDAgMS0xLTF6IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xMCAydjIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE0IDJ2MiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMTcgMTgtMS05IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk02IDJ2NWEyIDIgMCAwIDAgMiAyaDhhMiAyIDAgMCAwIDItMlYyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk02IDRoMTIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTcgMTggMS05IiB9XQogIF07CgogIGNvbnN0IENoZXZyb25Eb3duID0gW1sicGF0aCIsIHsgZDogIm02IDkgNiA2IDYtNiIgfV1dOwoKICBjb25zdCBDaGV2cm9uRmlyc3QgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJtMTcgMTgtNi02IDYtNiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNyA2djEyIiB9XQogIF07CgogIGNvbnN0IENoZXZyb25MYXN0ID0gWwogICAgWyJwYXRoIiwgeyBkOiAibTcgMTggNi02LTYtNiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTcgNnYxMiIgfV0KICBdOwoKICBjb25zdCBDaGV2cm9uUmlnaHQgPSBbWyJwYXRoIiwgeyBkOiAibTkgMTggNi02LTYtNiIgfV1dOwoKICBjb25zdCBDaGV2cm9uTGVmdCA9IFtbInBhdGgiLCB7IGQ6ICJtMTUgMTgtNi02IDYtNiIgfV1dOwoKICBjb25zdCBDaGV2cm9uVXAgPSBbWyJwYXRoIiwgeyBkOiAibTE4IDE1LTYtNi02IDYiIH1dXTsKCiAgY29uc3QgQ2hldnJvbnNEb3duVXAgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJtNyAyMCA1LTUgNSA1IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm03IDQgNSA1IDUtNSIgfV0KICBdOwoKICBjb25zdCBDaGV2cm9uc0Rvd24gPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJtNyA2IDUgNSA1LTUiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTcgMTMgNSA1IDUtNSIgfV0KICBdOwoKICBjb25zdCBDaGV2cm9uc0xlZnRSaWdodCA9IFsKICAgIFsicGF0aCIsIHsgZDogIm05IDctNSA1IDUgNSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMTUgNyA1IDUtNSA1IiB9XQogIF07CgogIGNvbnN0IENoZXZyb25zTGVmdFJpZ2h0RWxsaXBzaXMgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgMTJoLjAxIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNiAxMmguMDEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTE3IDcgNSA1LTUgNSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtNyA3LTUgNSA1IDUiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTggMTJoLjAxIiB9XQogIF07CgogIGNvbnN0IENoZXZyb25zTGVmdCA9IFsKICAgIFsicGF0aCIsIHsgZDogIm0xMSAxNy01LTUgNS01IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0xOCAxNy01LTUgNS01IiB9XQogIF07CgogIGNvbnN0IENoZXZyb25zUmlnaHRMZWZ0ID0gWwogICAgWyJwYXRoIiwgeyBkOiAibTIwIDE3LTUtNSA1LTUiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTQgMTcgNS01LTUtNSIgfV0KICBdOwoKICBjb25zdCBDaGV2cm9uc1JpZ2h0ID0gWwogICAgWyJwYXRoIiwgeyBkOiAibTYgMTcgNS01LTUtNSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMTMgMTcgNS01LTUtNSIgfV0KICBdOwoKICBjb25zdCBDaGV2cm9uc1VwRG93biA9IFsKICAgIFsicGF0aCIsIHsgZDogIm03IDE1IDUgNSA1LTUiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTcgOSA1LTUgNSA1IiB9XQogIF07CgogIGNvbnN0IENoZXZyb25zVXAgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJtMTcgMTEtNS01LTUgNSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMTcgMTgtNS01LTUgNSIgfV0KICBdOwoKICBjb25zdCBDaWdhcmV0dGVPZmYgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgMTJIM2ExIDEgMCAwIDAtMSAxdjJhMSAxIDAgMCAwIDEgMWgxMyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTggOGMwLTIuNS0yLTIuNS0yLTUiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTIgMiAyMCAyMCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMjEgMTJhMSAxIDAgMCAxIDEgMXYyYTEgMSAwIDAgMS0uNS44NjYiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIyIDhjMC0yLjUtMi0yLjUtMi01IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk03IDEydjQiIH1dCiAgXTsKCiAgY29uc3QgQ2h1cmNoID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTEwIDloNCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgN3Y1IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNCAyMXYtM2EyIDIgMCAwIDAtNCAwdjMiIH1dLAogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAibTE4IDkgMy41MiAyLjE0N2ExIDEgMCAwIDEgLjQ4Ljg1NFYxOWEyIDIgMCAwIDEtMiAySDRhMiAyIDAgMCAxLTItMnYtNi45OTlhMSAxIDAgMCAxIC40OC0uODU0TDYgOSIKICAgICAgfQogICAgXSwKICAgIFsicGF0aCIsIHsgZDogIk02IDIxVjdhMSAxIDAgMCAxIC4zNzYtLjc4Mmw1LTMuOTk5YTEgMSAwIDAgMSAxLjI0OS4wMDFsNSA0QTEgMSAwIDAgMSAxOCA3djE0IiB9XQogIF07CgogIGNvbnN0IENpZ2FyZXR0ZSA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xNyAxMkgzYTEgMSAwIDAgMC0xIDF2MmExIDEgMCAwIDAgMSAxaDE0IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xOCA4YzAtMi41LTItMi41LTItNSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMjEgMTZhMSAxIDAgMCAwIDEtMXYtMmExIDEgMCAwIDAtMS0xIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yMiA4YzAtMi41LTItMi41LTItNSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNyAxMnY0IiB9XQogIF07CgogIGNvbnN0IENpcmNsZUFsZXJ0ID0gWwogICAgWyJjaXJjbGUiLCB7IGN4OiAiMTIiLCBjeTogIjEyIiwgcjogIjEwIiB9XSwKICAgIFsibGluZSIsIHsgeDE6ICIxMiIsIHgyOiAiMTIiLCB5MTogIjgiLCB5MjogIjEyIiB9XSwKICAgIFsibGluZSIsIHsgeDE6ICIxMiIsIHgyOiAiMTIuMDEiLCB5MTogIjE2IiwgeTI6ICIxNiIgfV0KICBdOwoKICBjb25zdCBDaXJjbGVBcnJvd0Rvd24gPSBbCiAgICBbImNpcmNsZSIsIHsgY3g6ICIxMiIsIGN5OiAiMTIiLCByOiAiMTAiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDh2OCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtOCAxMiA0IDQgNC00IiB9XQogIF07CgogIGNvbnN0IENpcmNsZUFycm93T3V0RG93bkxlZnQgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMiAxMmExMCAxMCAwIDEgMSAxMCAxMCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMiAyMiAxMC0xMCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNOCAyMkgydi02IiB9XQogIF07CgogIGNvbnN0IENpcmNsZUFycm93TGVmdCA9IFsKICAgIFsiY2lyY2xlIiwgeyBjeDogIjEyIiwgY3k6ICIxMiIsIHI6ICIxMCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMTIgOC00IDQgNCA0IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNiAxMkg4IiB9XQogIF07CgogIGNvbnN0IENpcmNsZUFycm93T3V0RG93blJpZ2h0ID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDIyYTEwIDEwIDAgMSAxIDEwLTEwIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yMiAyMiAxMiAxMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMjIgMTZ2NmgtNiIgfV0KICBdOwoKICBjb25zdCBDaXJjbGVBcnJvd091dFVwTGVmdCA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0yIDhWMmg2IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0yIDIgMTAgMTAiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDJBMTAgMTAgMCAxIDEgMiAxMiIgfV0KICBdOwoKICBjb25zdCBDaXJjbGVBcnJvd091dFVwUmlnaHQgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMjIgMTJBMTAgMTAgMCAxIDEgMTIgMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMjIgMiAxMiAxMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTYgMmg2djYiIH1dCiAgXTsKCiAgY29uc3QgQ2lyY2xlQXJyb3dSaWdodCA9IFsKICAgIFsiY2lyY2xlIiwgeyBjeDogIjEyIiwgY3k6ICIxMiIsIHI6ICIxMCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMTIgMTYgNC00LTQtNCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNOCAxMmg4IiB9XQogIF07CgogIGNvbnN0IENpcmNsZUFycm93VXAgPSBbCiAgICBbImNpcmNsZSIsIHsgY3g6ICIxMiIsIGN5OiAiMTIiLCByOiAiMTAiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTE2IDEyLTQtNC00IDQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDE2VjgiIH1dCiAgXTsKCiAgY29uc3QgQ2lyY2xlQ2hlY2tCaWcgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMjEuODAxIDEwQTEwIDEwIDAgMSAxIDE3IDMuMzM1IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm05IDExIDMgM0wyMiA0IiB9XQogIF07CgogIGNvbnN0IENpcmNsZUNoZWNrID0gWwogICAgWyJjaXJjbGUiLCB7IGN4OiAiMTIiLCBjeTogIjEyIiwgcjogIjEwIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm05IDEyIDIgMiA0LTQiIH1dCiAgXTsKCiAgY29uc3QgQ2lyY2xlQ2hldnJvbkRvd24gPSBbCiAgICBbImNpcmNsZSIsIHsgY3g6ICIxMiIsIGN5OiAiMTIiLCByOiAiMTAiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTE2IDEwLTQgNC00LTQiIH1dCiAgXTsKCiAgY29uc3QgQ2lyY2xlQ2hldnJvbkxlZnQgPSBbCiAgICBbImNpcmNsZSIsIHsgY3g6ICIxMiIsIGN5OiAiMTIiLCByOiAiMTAiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTE0IDE2LTQtNCA0LTQiIH1dCiAgXTsKCiAgY29uc3QgQ2lyY2xlQ2hldnJvblJpZ2h0ID0gWwogICAgWyJjaXJjbGUiLCB7IGN4OiAiMTIiLCBjeTogIjEyIiwgcjogIjEwIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0xMCA4IDQgNC00IDQiIH1dCiAgXTsKCiAgY29uc3QgQ2lyY2xlRGFzaGVkID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTEwLjEgMi4xODJhMTAgMTAgMCAwIDEgMy44IDAiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTEzLjkgMjEuODE4YTEwIDEwIDAgMCAxLTMuOCAwIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNy42MDkgMy43MjFhMTAgMTAgMCAwIDEgMi42OSAyLjciIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIuMTgyIDEzLjlhMTAgMTAgMCAwIDEgMC0zLjgiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIwLjI3OSAxNy42MDlhMTAgMTAgMCAwIDEtMi43IDIuNjkiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIxLjgxOCAxMC4xYTEwIDEwIDAgMCAxIDAgMy44IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0zLjcyMSA2LjM5MWExMCAxMCAwIDAgMSAyLjctMi42OSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNi4zOTEgMjAuMjc5YTEwIDEwIDAgMCAxLTIuNjktMi43IiB9XQogIF07CgogIGNvbnN0IENpcmNsZUNoZXZyb25VcCA9IFsKICAgIFsiY2lyY2xlIiwgeyBjeDogIjEyIiwgY3k6ICIxMiIsIHI6ICIxMCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtOCAxNCA0LTQgNCA0IiB9XQogIF07CgogIGNvbnN0IENpcmNsZURvbGxhclNpZ24gPSBbCiAgICBbImNpcmNsZSIsIHsgY3g6ICIxMiIsIGN5OiAiMTIiLCByOiAiMTAiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE2IDhoLTZhMiAyIDAgMSAwIDAgNGg0YTIgMiAwIDEgMSAwIDRIOCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgMThWNiIgfV0KICBdOwoKICBjb25zdCBDaXJjbGVEaXZpZGUgPSBbCiAgICBbImNpcmNsZSIsIHsgY3g6ICIxMiIsIGN5OiAiMTIiLCByOiAiMTAiIH1dLAogICAgWyJsaW5lIiwgeyB4MTogIjgiLCB4MjogIjE2IiwgeTE6ICIxMiIsIHkyOiAiMTIiIH1dLAogICAgWyJsaW5lIiwgeyB4MTogIjEyIiwgeDI6ICIxMiIsIHkxOiAiMTYiLCB5MjogIjE2IiB9XSwKICAgIFsibGluZSIsIHsgeDE6ICIxMiIsIHgyOiAiMTIiLCB5MTogIjgiLCB5MjogIjgiIH1dCiAgXTsKCiAgY29uc3QgQ2lyY2xlRG90RGFzaGVkID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTEwLjEgMi4xOGE5LjkzIDkuOTMgMCAwIDEgMy44IDAiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE3LjYgMy43MWE5Ljk1IDkuOTUgMCAwIDEgMi42OSAyLjciIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIxLjgyIDEwLjFhOS45MyA5LjkzIDAgMCAxIDAgMy44IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yMC4yOSAxNy42YTkuOTUgOS45NSAwIDAgMS0yLjcgMi42OSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTMuOSAyMS44MmE5Ljk0IDkuOTQgMCAwIDEtMy44IDAiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTYuNCAyMC4yOWE5Ljk1IDkuOTUgMCAwIDEtMi42OS0yLjciIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIuMTggMTMuOWE5LjkzIDkuOTMgMCAwIDEgMC0zLjgiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTMuNzEgNi40YTkuOTUgOS45NSAwIDAgMSAyLjctMi42OSIgfV0sCiAgICBbImNpcmNsZSIsIHsgY3g6ICIxMiIsIGN5OiAiMTIiLCByOiAiMSIgfV0KICBdOwoKICBjb25zdCBDaXJjbGVEb3QgPSBbCiAgICBbImNpcmNsZSIsIHsgY3g6ICIxMiIsIGN5OiAiMTIiLCByOiAiMTAiIH1dLAogICAgWyJjaXJjbGUiLCB7IGN4OiAiMTIiLCBjeTogIjEyIiwgcjogIjEiIH1dCiAgXTsKCiAgY29uc3QgQ2lyY2xlRWxsaXBzaXMgPSBbCiAgICBbImNpcmNsZSIsIHsgY3g6ICIxMiIsIGN5OiAiMTIiLCByOiAiMTAiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE3IDEyaC4wMSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgMTJoLjAxIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk03IDEyaC4wMSIgfV0KICBdOwoKICBjb25zdCBDaXJjbGVFcXVhbCA9IFsKICAgIFsiY2lyY2xlIiwgeyBjeDogIjEyIiwgY3k6ICIxMiIsIHI6ICIxMCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNyAxMGgxMCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNyAxNGgxMCIgfV0KICBdOwoKICBjb25zdCBDaXJjbGVFdXJvID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTE1IDkuNGE0IDQgMCAxIDAgMCA1LjIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTcgMTJoNSIgfV0sCiAgICBbImNpcmNsZSIsIHsgY3g6ICIxMiIsIGN5OiAiMTIiLCByOiAiMTAiIH1dCiAgXTsKCiAgY29uc3QgQ2lyY2xlRmFkaW5nQXJyb3dVcCA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xMiAyYTEwIDEwIDAgMCAxIDcuMzggMTYuNzUiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTE2IDEyLTQtNC00IDQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDE2VjgiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIuNSA4Ljg3NWExMCAxMCAwIDAgMC0uNSAzIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yLjgzIDE2YTEwIDEwIDAgMCAwIDIuNDMgMy40IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk00LjYzNiA1LjIzNWExMCAxMCAwIDAgMSAuODkxLS44NTciIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTguNjQ0IDIxLjQyYTEwIDEwIDAgMCAwIDcuNjMxLS4zOCIgfV0KICBdOwoKICBjb25zdCBDaXJjbGVGYWRpbmdQbHVzID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDJhMTAgMTAgMCAwIDEgNy4zOCAxNi43NSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgOHY4IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNiAxMkg4IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yLjUgOC44NzVhMTAgMTAgMCAwIDAtLjUgMyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMi44MyAxNmExMCAxMCAwIDAgMCAyLjQzIDMuNCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNC42MzYgNS4yMzVhMTAgMTAgMCAwIDEgLjg5MS0uODU3IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk04LjY0NCAyMS40MmExMCAxMCAwIDAgMCA3LjYzMS0uMzgiIH1dCiAgXTsKCiAgY29uc3QgQ2lyY2xlR2F1Z2UgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTUuNiAyLjdhMTAgMTAgMCAxIDAgNS43IDUuNyIgfV0sCiAgICBbImNpcmNsZSIsIHsgY3g6ICIxMiIsIGN5OiAiMTIiLCByOiAiMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTMuNCAxMC42IDE5IDUiIH1dCiAgXTsKCiAgY29uc3QgQ2lyY2xlTWludXMgPSBbCiAgICBbImNpcmNsZSIsIHsgY3g6ICIxMiIsIGN5OiAiMTIiLCByOiAiMTAiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTggMTJoOCIgfV0KICBdOwoKICBjb25zdCBDaXJjbGVPZmYgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJtMiAyIDIwIDIwIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk04LjM1IDIuNjlBMTAgMTAgMCAwIDEgMjEuMyAxNS42NSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTkuMDggMTkuMDhBMTAgMTAgMCAxIDEgNC45MiA0LjkyIiB9XQogIF07CgogIGNvbnN0IENpcmNsZVBhcmtpbmdPZmYgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIuNjU2IDdIMTNhMyAzIDAgMCAxIDIuOTg0IDMuMzA3IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xMyAxM0g5IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xOS4wNzEgMTkuMDcxQTEgMSAwIDAgMSA0LjkzIDQuOTMiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTIgMiAyMCAyMCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNOC4zNTcgMi42ODdhMTAgMTAgMCAwIDEgMTIuOTU2IDEyLjk1NiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNOSAxN1Y5IiB9XQogIF07CgogIGNvbnN0IENpcmNsZVBhcmtpbmcgPSBbCiAgICBbImNpcmNsZSIsIHsgY3g6ICIxMiIsIGN5OiAiMTIiLCByOiAiMTAiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTkgMTdWN2g0YTMgMyAwIDAgMSAwIDZIOSIgfV0KICBdOwoKICBjb25zdCBDaXJjbGVQYXVzZSA9IFsKICAgIFsiY2lyY2xlIiwgeyBjeDogIjEyIiwgY3k6ICIxMiIsIHI6ICIxMCIgfV0sCiAgICBbImxpbmUiLCB7IHgxOiAiMTAiLCB4MjogIjEwIiwgeTE6ICIxNSIsIHkyOiAiOSIgfV0sCiAgICBbImxpbmUiLCB7IHgxOiAiMTQiLCB4MjogIjE0IiwgeTE6ICIxNSIsIHkyOiAiOSIgfV0KICBdOwoKICBjb25zdCBDaXJjbGVQZXJjZW50ID0gWwogICAgWyJjaXJjbGUiLCB7IGN4OiAiMTIiLCBjeTogIjEyIiwgcjogIjEwIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0xNSA5LTYgNiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNOSA5aC4wMSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTUgMTVoLjAxIiB9XQogIF07CgogIGNvbnN0IENpcmNsZVBpbGUgPSBbCiAgICBbImNpcmNsZSIsIHsgY3g6ICIxMiIsIGN5OiAiMTkiLCByOiAiMiIgfV0sCiAgICBbImNpcmNsZSIsIHsgY3g6ICIxMiIsIGN5OiAiNSIsIHI6ICIyIiB9XSwKICAgIFsiY2lyY2xlIiwgeyBjeDogIjE2IiwgY3k6ICIxMiIsIHI6ICIyIiB9XSwKICAgIFsiY2lyY2xlIiwgeyBjeDogIjIwIiwgY3k6ICIxOSIsIHI6ICIyIiB9XSwKICAgIFsiY2lyY2xlIiwgeyBjeDogIjQiLCBjeTogIjE5IiwgcjogIjIiIH1dLAogICAgWyJjaXJjbGUiLCB7IGN4OiAiOCIsIGN5OiAiMTIiLCByOiAiMiIgfV0KICBdOwoKICBjb25zdCBDaXJjbGVQbGF5ID0gWwogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTkgOS4wMDNhMSAxIDAgMCAxIDEuNTE3LS44NTlsNC45OTcgMi45OTdhMSAxIDAgMCAxIDAgMS43MThsLTQuOTk3IDIuOTk3QTEgMSAwIDAgMSA5IDE0Ljk5NnoiCiAgICAgIH0KICAgIF0sCiAgICBbImNpcmNsZSIsIHsgY3g6ICIxMiIsIGN5OiAiMTIiLCByOiAiMTAiIH1dCiAgXTsKCiAgY29uc3QgQ2lyY2xlUGx1cyA9IFsKICAgIFsiY2lyY2xlIiwgeyBjeDogIjEyIiwgY3k6ICIxMiIsIHI6ICIxMCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNOCAxMmg4IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xMiA4djgiIH1dCiAgXTsKCiAgY29uc3QgQ2lyY2xlUG91bmRTdGVybGluZyA9IFsKICAgIFsiY2lyY2xlIiwgeyBjeDogIjEyIiwgY3k6ICIxMiIsIHI6ICIxMCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTAgMTZWOS41YTEgMSAwIDAgMSA1IDAiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTggMTJoNCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNOCAxNmg3IiB9XQogIF07CgogIGNvbnN0IENpcmNsZVF1ZXN0aW9uTWFyayA9IFsKICAgIFsiY2lyY2xlIiwgeyBjeDogIjEyIiwgY3k6ICIxMiIsIHI6ICIxMCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNOS4wOSA5YTMgMyAwIDAgMSA1LjgzIDFjMCAyLTMgMy0zIDMiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDE3aC4wMSIgfV0KICBdOwoKICBjb25zdCBDaXJjbGVQb3dlciA9IFsKICAgIFsiY2lyY2xlIiwgeyBjeDogIjEyIiwgY3k6ICIxMiIsIHI6ICIxMCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgN3Y0IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk03Ljk5OCA5LjAwM2E1IDUgMCAxIDAgOC0uMDA1IiB9XQogIF07CgogIGNvbnN0IENpcmNsZVNsYXNoMiA9IFsKICAgIFsiY2lyY2xlIiwgeyBjeDogIjEyIiwgY3k6ICIxMiIsIHI6ICIxMCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMjIgMiAyIDIyIiB9XQogIF07CgogIGNvbnN0IENpcmNsZVNsYXNoID0gWwogICAgWyJjaXJjbGUiLCB7IGN4OiAiMTIiLCBjeTogIjEyIiwgcjogIjEwIiB9XSwKICAgIFsibGluZSIsIHsgeDE6ICI5IiwgeDI6ICIxNSIsIHkxOiAiMTUiLCB5MjogIjkiIH1dCiAgXTsKCiAgY29uc3QgQ2lyY2xlU21hbGwgPSBbWyJjaXJjbGUiLCB7IGN4OiAiMTIiLCBjeTogIjEyIiwgcjogIjYiIH1dXTsKCiAgY29uc3QgQ2lyY2xlU3RhciA9IFsKICAgIFsiY2lyY2xlIiwgeyBjeDogIjEyIiwgY3k6ICIxMiIsIHI6ICIxMCIgfV0sCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMTEuMDUxIDcuNjE2YTEgMSAwIDAgMSAxLjkwOS4wMjRsLjczNyAxLjQ1MmExIDEgMCAwIDAgLjczNy41MzVsMS42MzQuMjU2YTEgMSAwIDAgMSAuNTg4IDEuODA2bC0xLjE3MiAxLjE2OGExIDEgMCAwIDAtLjI4Mi44NjZsLjI1OSAxLjYxM2ExIDEgMCAwIDEtMS41NDEgMS4xMzRsLTEuNDY1LS43NWExIDEgMCAwIDAtLjkxMiAwbC0xLjQ2NS43NWExIDEgMCAwIDEtMS41MzktMS4xMzNsLjI1OC0xLjYxM2ExIDEgMCAwIDAtLjI4Mi0uODY3bC0xLjE1Ni0xLjE1MmExIDEgMCAwIDEgLjU3Mi0xLjgyMmwxLjYzMy0uMjU2YTEgMSAwIDAgMCAuNzM3LS41MzV6IgogICAgICB9CiAgICBdCiAgXTsKCiAgY29uc3QgQ2lyY2xlU3RvcCA9IFsKICAgIFsiY2lyY2xlIiwgeyBjeDogIjEyIiwgY3k6ICIxMiIsIHI6ICIxMCIgfV0sCiAgICBbInJlY3QiLCB7IHg6ICI5IiwgeTogIjkiLCB3aWR0aDogIjYiLCBoZWlnaHQ6ICI2Iiwgcng6ICIxIiB9XQogIF07CgogIGNvbnN0IENpcmNsZVVzZXJSb3VuZCA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xNy45MjUgMjAuMDU2YTYgNiAwIDAgMC0xMS44NTEuMDAxIiB9XSwKICAgIFsiY2lyY2xlIiwgeyBjeDogIjEyIiwgY3k6ICIxMSIsIHI6ICI0IiB9XSwKICAgIFsiY2lyY2xlIiwgeyBjeDogIjEyIiwgY3k6ICIxMiIsIHI6ICIxMCIgfV0KICBdOwoKICBjb25zdCBDaXJjbGVVc2VyID0gWwogICAgWyJjaXJjbGUiLCB7IGN4OiAiMTIiLCBjeTogIjEyIiwgcjogIjEwIiB9XSwKICAgIFsiY2lyY2xlIiwgeyBjeDogIjEyIiwgY3k6ICIxMCIsIHI6ICIzIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk03IDIwLjY2MlYxOWEyIDIgMCAwIDEgMi0yaDZhMiAyIDAgMCAxIDIgMnYxLjY2MiIgfV0KICBdOwoKICBjb25zdCBDaXJjbGUgPSBbWyJjaXJjbGUiLCB7IGN4OiAiMTIiLCBjeTogIjEyIiwgcjogIjEwIiB9XV07CgogIGNvbnN0IENpcmNsZVggPSBbCiAgICBbImNpcmNsZSIsIHsgY3g6ICIxMiIsIGN5OiAiMTIiLCByOiAiMTAiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTE1IDktNiA2IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm05IDkgNiA2IiB9XQogIF07CgogIGNvbnN0IENpcmN1aXRCb2FyZCA9IFsKICAgIFsicmVjdCIsIHsgd2lkdGg6ICIxOCIsIGhlaWdodDogIjE4IiwgeDogIjMiLCB5OiAiMyIsIHJ4OiAiMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTEgOWg0YTIgMiAwIDAgMCAyLTJWMyIgfV0sCiAgICBbImNpcmNsZSIsIHsgY3g6ICI5IiwgY3k6ICI5IiwgcjogIjIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTcgMjF2LTRhMiAyIDAgMCAxIDItMmg0IiB9XSwKICAgIFsiY2lyY2xlIiwgeyBjeDogIjE1IiwgY3k6ICIxNSIsIHI6ICIyIiB9XQogIF07CgogIGNvbnN0IENpdHJ1cyA9IFsKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7IGQ6ICJNMjEuNjYgMTcuNjdhMS4wOCAxLjA4IDAgMCAxLS4wNCAxLjZBMTIgMTIgMCAwIDEgNC43MyAyLjM4YTEuMSAxLjEgMCAwIDEgMS42MS0uMDR6IiB9CiAgICBdLAogICAgWyJwYXRoIiwgeyBkOiAiTTE5LjY1IDE1LjY2QTggOCAwIDAgMSA4LjM1IDQuMzQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTE0IDEwLTUuNSA1LjUiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE0IDE3Ljg1VjEwSDYuMTUiIH1dCiAgXTsKCiAgY29uc3QgQ2xhcHBlcmJvYXJkID0gWwogICAgWyJwYXRoIiwgeyBkOiAibTEyLjI5NiAzLjQ2NCAzLjAyIDMuOTU2IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yMC4yIDYgMyAxMWwtLjktMi40Yy0uMy0xLjEuMy0yLjIgMS4zLTIuNWwxMy41LTRjMS4xLS4zIDIuMi4zIDIuNSAxLjN6IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0zIDExaDE4djhhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJ6IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm02LjE4IDUuMjc2IDMuMSAzLjg5OSIgfV0KICBdOwoKICBjb25zdCBDbGlwYm9hcmRDbG9jayA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xNiAxNHYyLjJsMS42IDEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE2IDRoMmEyIDIgMCAwIDEgMiAydi44MzIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTggNEg2YTIgMiAwIDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmgyIiB9XSwKICAgIFsiY2lyY2xlIiwgeyBjeDogIjE2IiwgY3k6ICIxNiIsIHI6ICI2IiB9XSwKICAgIFsicmVjdCIsIHsgeDogIjgiLCB5OiAiMiIsIHdpZHRoOiAiOCIsIGhlaWdodDogIjQiLCByeDogIjEiIH1dCiAgXTsKCiAgY29uc3QgQ2xpcGJvYXJkQ2hlY2sgPSBbCiAgICBbInJlY3QiLCB7IHdpZHRoOiAiOCIsIGhlaWdodDogIjQiLCB4OiAiOCIsIHk6ICIyIiwgcng6ICIxIiwgcnk6ICIxIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNiA0aDJhMiAyIDAgMCAxIDIgMnYxNGEyIDIgMCAwIDEtMiAySDZhMiAyIDAgMCAxLTItMlY2YTIgMiAwIDAgMSAyLTJoMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtOSAxNCAyIDIgNC00IiB9XQogIF07CgogIGNvbnN0IENsaXBib2FyZENvcHkgPSBbCiAgICBbInJlY3QiLCB7IHdpZHRoOiAiOCIsIGhlaWdodDogIjQiLCB4OiAiOCIsIHk6ICIyIiwgcng6ICIxIiwgcnk6ICIxIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk04IDRINmEyIDIgMCAwIDAtMiAydjE0YTIgMiAwIDAgMCAyIDJoMTJhMiAyIDAgMCAwIDItMnYtMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTYgNGgyYTIgMiAwIDAgMSAyIDJ2NCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMjEgMTRIMTEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTE1IDEwLTQgNCA0IDQiIH1dCiAgXTsKCiAgY29uc3QgQ2xpcGJvYXJkTGlzdCA9IFsKICAgIFsicmVjdCIsIHsgd2lkdGg6ICI4IiwgaGVpZ2h0OiAiNCIsIHg6ICI4IiwgeTogIjIiLCByeDogIjEiLCByeTogIjEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE2IDRoMmEyIDIgMCAwIDEgMiAydjE0YTIgMiAwIDAgMS0yIDJINmEyIDIgMCAwIDEtMi0yVjZhMiAyIDAgMCAxIDItMmgyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xMiAxMWg0IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xMiAxNmg0IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk04IDExaC4wMSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNOCAxNmguMDEiIH1dCiAgXTsKCiAgY29uc3QgQ2xpcGJvYXJkTWludXMgPSBbCiAgICBbInJlY3QiLCB7IHdpZHRoOiAiOCIsIGhlaWdodDogIjQiLCB4OiAiOCIsIHk6ICIyIiwgcng6ICIxIiwgcnk6ICIxIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNiA0aDJhMiAyIDAgMCAxIDIgMnYxNGEyIDIgMCAwIDEtMiAySDZhMiAyIDAgMCAxLTItMlY2YTIgMiAwIDAgMSAyLTJoMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNOSAxNGg2IiB9XQogIF07CgogIGNvbnN0IENsaXBib2FyZFBhc3RlID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTExIDE0aDEwIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNiA0aDJhMiAyIDAgMCAxIDIgMnYxLjM0NCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMTcgMTggNC00LTQtNCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNOCA0SDZhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAxLjc5My0xLjExMyIgfV0sCiAgICBbInJlY3QiLCB7IHg6ICI4IiwgeTogIjIiLCB3aWR0aDogIjgiLCBoZWlnaHQ6ICI0Iiwgcng6ICIxIiB9XQogIF07CgogIGNvbnN0IENsaXBib2FyZFBlbkxpbmUgPSBbCiAgICBbInJlY3QiLCB7IHdpZHRoOiAiOCIsIGhlaWdodDogIjQiLCB4OiAiOCIsIHk6ICIyIiwgcng6ICIxIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk04IDRINmEyIDIgMCAwIDAtMiAydjE0YTIgMiAwIDAgMCAyIDJoMTJhMiAyIDAgMCAwIDItMnYtLjUiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE2IDRoMmEyIDIgMCAwIDEgMS43MyAxIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk04IDE4aDEiIH1dLAogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTIxLjM3OCAxMi42MjZhMSAxIDAgMCAwLTMuMDA0LTMuMDA0bC00LjAxIDQuMDEyYTIgMiAwIDAgMC0uNTA2Ljg1NGwtLjgzNyAyLjg3YS41LjUgMCAwIDAgLjYyLjYybDIuODctLjgzN2EyIDIgMCAwIDAgLjg1NC0uNTA2eiIKICAgICAgfQogICAgXQogIF07CgogIGNvbnN0IENsaXBib2FyZFBlbiA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xNiA0aDJhMiAyIDAgMCAxIDIgMnYyIiB9XSwKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk0yMS4zNCAxNS42NjRhMSAxIDAgMSAwLTMuMDA0LTMuMDA0bC01LjAxIDUuMDEyYTIgMiAwIDAgMC0uNTA2Ljg1NGwtLjgzNyAyLjg3YS41LjUgMCAwIDAgLjYyLjYybDIuODctLjgzN2EyIDIgMCAwIDAgLjg1NC0uNTA2eiIKICAgICAgfQogICAgXSwKICAgIFsicGF0aCIsIHsgZDogIk04IDIySDZhMiAyIDAgMCAxLTItMlY2YTIgMiAwIDAgMSAyLTJoMiIgfV0sCiAgICBbInJlY3QiLCB7IHg6ICI4IiwgeTogIjIiLCB3aWR0aDogIjgiLCBoZWlnaHQ6ICI0Iiwgcng6ICIxIiB9XQogIF07CgogIGNvbnN0IENsaXBib2FyZFBsdXMgPSBbCiAgICBbInJlY3QiLCB7IHdpZHRoOiAiOCIsIGhlaWdodDogIjQiLCB4OiAiOCIsIHk6ICIyIiwgcng6ICIxIiwgcnk6ICIxIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNiA0aDJhMiAyIDAgMCAxIDIgMnYxNGEyIDIgMCAwIDEtMiAySDZhMiAyIDAgMCAxLTItMlY2YTIgMiAwIDAgMSAyLTJoMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNOSAxNGg2IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xMiAxN3YtNiIgfV0KICBdOwoKICBjb25zdCBDbGlwYm9hcmRYID0gWwogICAgWyJyZWN0IiwgeyB3aWR0aDogIjgiLCBoZWlnaHQ6ICI0IiwgeDogIjgiLCB5OiAiMiIsIHJ4OiAiMSIsIHJ5OiAiMSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTYgNGgyYTIgMiAwIDAgMSAyIDJ2MTRhMiAyIDAgMCAxLTIgMkg2YTIgMiAwIDAgMS0yLTJWNmEyIDIgMCAwIDEgMi0yaDIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTE1IDExLTYgNiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtOSAxMSA2IDYiIH1dCiAgXTsKCiAgY29uc3QgQ2xpcGJvYXJkVHlwZSA9IFsKICAgIFsicmVjdCIsIHsgd2lkdGg6ICI4IiwgaGVpZ2h0OiAiNCIsIHg6ICI4IiwgeTogIjIiLCByeDogIjEiLCByeTogIjEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE2IDRoMmEyIDIgMCAwIDEgMiAydjE0YTIgMiAwIDAgMS0yIDJINmEyIDIgMCAwIDEtMi0yVjZhMiAyIDAgMCAxIDItMmgyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk05IDEydi0xaDZ2MSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTEgMTdoMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgMTF2NiIgfV0KICBdOwoKICBjb25zdCBDbGlwYm9hcmQgPSBbCiAgICBbInJlY3QiLCB7IHdpZHRoOiAiOCIsIGhlaWdodDogIjQiLCB4OiAiOCIsIHk6ICIyIiwgcng6ICIxIiwgcnk6ICIxIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNiA0aDJhMiAyIDAgMCAxIDIgMnYxNGEyIDIgMCAwIDEtMiAySDZhMiAyIDAgMCAxLTItMlY2YTIgMiAwIDAgMSAyLTJoMiIgfV0KICBdOwoKICBjb25zdCBDbG9jazEgPSBbCiAgICBbImNpcmNsZSIsIHsgY3g6ICIxMiIsIGN5OiAiMTIiLCByOiAiMTAiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDZ2NmwyLTQiIH1dCiAgXTsKCiAgY29uc3QgQ2xvY2sxMSA9IFsKICAgIFsiY2lyY2xlIiwgeyBjeDogIjEyIiwgY3k6ICIxMiIsIHI6ICIxMCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgNnY2bC0yLTQiIH1dCiAgXTsKCiAgY29uc3QgQ2xvY2sxMCA9IFsKICAgIFsiY2lyY2xlIiwgeyBjeDogIjEyIiwgY3k6ICIxMiIsIHI6ICIxMCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgNnY2bC00LTIiIH1dCiAgXTsKCiAgY29uc3QgQ2xvY2sxMiA9IFsKICAgIFsiY2lyY2xlIiwgeyBjeDogIjEyIiwgY3k6ICIxMiIsIHI6ICIxMCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgNnY2IiB9XQogIF07CgogIGNvbnN0IENsb2NrMiA9IFsKICAgIFsiY2lyY2xlIiwgeyBjeDogIjEyIiwgY3k6ICIxMiIsIHI6ICIxMCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgNnY2bDQtMiIgfV0KICBdOwoKICBjb25zdCBDbG9jazMgPSBbCiAgICBbImNpcmNsZSIsIHsgY3g6ICIxMiIsIGN5OiAiMTIiLCByOiAiMTAiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDZ2Nmg0IiB9XQogIF07CgogIGNvbnN0IENsb2NrNCA9IFsKICAgIFsiY2lyY2xlIiwgeyBjeDogIjEyIiwgY3k6ICIxMiIsIHI6ICIxMCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgNnY2bDQgMiIgfV0KICBdOwoKICBjb25zdCBDbG9jazUgPSBbCiAgICBbImNpcmNsZSIsIHsgY3g6ICIxMiIsIGN5OiAiMTIiLCByOiAiMTAiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDZ2NmwyIDQiIH1dCiAgXTsKCiAgY29uc3QgQ2xvY2s2ID0gWwogICAgWyJjaXJjbGUiLCB7IGN4OiAiMTIiLCBjeTogIjEyIiwgcjogIjEwIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xMiA2djEwIiB9XQogIF07CgogIGNvbnN0IENsb2NrNyA9IFsKICAgIFsiY2lyY2xlIiwgeyBjeDogIjEyIiwgY3k6ICIxMiIsIHI6ICIxMCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgNnY2bC0yIDQiIH1dCiAgXTsKCiAgY29uc3QgQ2xvY2s4ID0gWwogICAgWyJjaXJjbGUiLCB7IGN4OiAiMTIiLCBjeTogIjEyIiwgcjogIjEwIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xMiA2djZsLTQgMiIgfV0KICBdOwoKICBjb25zdCBDbG9jazkgPSBbCiAgICBbImNpcmNsZSIsIHsgY3g6ICIxMiIsIGN5OiAiMTIiLCByOiAiMTAiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDZ2Nkg4IiB9XQogIF07CgogIGNvbnN0IENsb2NrQWxlcnQgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgNnY2bDQgMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMjAgMTJ2NSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMjAgMjFoLjAxIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yMS4yNSA4LjJBMTAgMTAgMCAxIDAgMTYgMjEuMTYiIH1dCiAgXTsKCiAgY29uc3QgQ2xvY2tBcnJvd0Rvd24gPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgNnY2bDIgMSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIuMzM3IDIxLjk5NGExMCAxMCAwIDEgMSA5LjU4OC04Ljc2NyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMTQgMTggNCA0IDQtNCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTggMTR2OCIgfV0KICBdOwoKICBjb25zdCBDbG9ja0Fycm93TGVmdCA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xMiA2djZsMS41LjgiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTEyLjMzOCAyMS45OTRhMTAgMTAgMCAxIDEgOS41ODctOC43NjciIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE0IDE4aDgiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTE4IDIyLTQtNCA0LTQiIH1dCiAgXTsKCiAgY29uc3QgQ2xvY2tBcnJvd1JpZ2h0ID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDZ2NmwyIDEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTEzLjUgMjEuODg1QTEwIDEwIDAgMSAxIDIyIDEyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNCAxOGg4IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0xOCAyMiA0LTQtNC00IiB9XQogIF07CgogIGNvbnN0IENsb2NrQXJyb3dVcCA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xMiA2djZsMS41Ni43OCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTMuMjI3IDIxLjkyNWExMCAxMCAwIDEgMSA4Ljc2Ny05LjU4OCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMTQgMTggNC00IDQgNCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTggMjJ2LTgiIH1dCiAgXTsKCiAgY29uc3QgQ2xvY2tDaGVjayA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xMiA2djZsNCAyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yMiAxMmExMCAxMCAwIDEgMC0xMSA5Ljk1IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0yMiAxNi01LjUgNS41TDE0IDE5IiB9XQogIF07CgogIGNvbnN0IENsb2NrRmFkaW5nID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDJhMTAgMTAgMCAwIDEgNy4zOCAxNi43NSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgNnY2bDQgMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMi41IDguODc1YTEwIDEwIDAgMCAwLS41IDMiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIuODMgMTZhMTAgMTAgMCAwIDAgMi40MyAzLjQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTQuNjM2IDUuMjM1YTEwIDEwIDAgMCAxIC44OTEtLjg1NyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNOC42NDQgMjEuNDJhMTAgMTAgMCAwIDAgNy42MzEtLjM4IiB9XQogIF07CgogIGNvbnN0IENsb2NrID0gWwogICAgWyJjaXJjbGUiLCB7IGN4OiAiMTIiLCBjeTogIjEyIiwgcjogIjEwIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xMiA2djZsNCAyIiB9XQogIF07CgogIGNvbnN0IENsb2NrUGx1cyA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xMiA2djZsMy42NDQgMS44MjIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE2IDE5aDYiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE5IDE2djYiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIxLjkyIDEzLjI2N2ExMCAxMCAwIDEgMC04LjY1MyA4LjY1MyIgfV0KICBdOwoKICBjb25zdCBDbG9zZWRDYXB0aW9uID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTEwIDkuMTdhMyAzIDAgMSAwIDAgNS42NiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTcgOS4xN2EzIDMgMCAxIDAgMCA1LjY2IiB9XSwKICAgIFsicmVjdCIsIHsgeDogIjIiLCB5OiAiNSIsIHdpZHRoOiAiMjAiLCBoZWlnaHQ6ICIxNCIsIHJ4OiAiMiIgfV0KICBdOwoKICBjb25zdCBDbG91ZEFsZXJ0ID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDEydjQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDIwaC4wMSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNOC4xMjggMTYuOTQ5QTcgNyAwIDEgMSAxNS43MSA4aDEuNzlhMSAxIDAgMCAxIDAgOWgtMS42NDIiIH1dCiAgXTsKCiAgY29uc3QgQ2xvdWRCYWNrdXAgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMjEgMTUuMjUxQTQuNSA0LjUgMCAwIDAgMTcuNSA4aC0xLjc5QTcgNyAwIDEgMCAzIDEzLjYwNyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNyAxMXY0aDQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTggMTlhNSA1IDAgMCAwIDktMyA0LjUgNC41IDAgMCAwLTQuNS00LjUgNC44MiA0LjgyIDAgMCAwLTMuNDEgMS40MUw3IDE1IiB9XQogIF07CgogIGNvbnN0IENsb3VkQ2hlY2sgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJtMTcgMTUtNS41IDUuNUw5IDE4IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk01LjUxNiAxNi4wN0E3IDcgMCAxIDEgMTUuNzEgOGgxLjc5YTQuNSA0LjUgMCAwIDEgMy41MDEgNy4zMjciIH1dCiAgXTsKCiAgY29uc3QgQ2xvdWRDb2cgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJtMTAuODUyIDE5Ljc3Mi0uMzgzLjkyNCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMTMuMTQ4IDE0LjIyOC4zODMtLjkyMyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTMuMTQ4IDE5Ljc3MmEzIDMgMCAxIDAtMi4yOTYtNS41NDRsLS4zODMtLjkyMyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMTMuNTMgMjAuNjk2LS4zODItLjkyNGEzIDMgMCAxIDEtMi4yOTYtNS41NDQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTE0Ljc3MiAxNS44NTIuOTIzLS4zODMiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTE0Ljc3MiAxOC4xNDguOTIzLjM4MyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNC4yIDE1LjFhNyA3IDAgMSAxIDkuOTMtOS44NThBNyA3IDAgMCAxIDE1LjcxIDhoMS43OWE0LjUgNC41IDAgMCAxIDIuNSA4LjIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTkuMjI4IDE1Ljg1Mi0uOTIzLS4zODMiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTkuMjI4IDE4LjE0OC0uOTIzLjM4MyIgfV0KICBdOwoKICBjb25zdCBDbG91ZERvd25sb2FkID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDEzdjhsLTQtNCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMTIgMjEgNC00IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk00LjM5MyAxNS4yNjlBNyA3IDAgMSAxIDE1LjcxIDhoMS43OWE0LjUgNC41IDAgMCAxIDIuNDM2IDguMjg0IiB9XQogIF07CgogIGNvbnN0IENsb3VkRHJpenpsZSA9IFsKICAgIFsicGF0aCIsIHsgZDogIk00IDE0Ljg5OUE3IDcgMCAxIDEgMTUuNzEgOGgxLjc5YTQuNSA0LjUgMCAwIDEgMi41IDguMjQyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk04IDE5djEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTggMTR2MSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTYgMTl2MSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTYgMTR2MSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgMjF2MSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgMTZ2MSIgfV0KICBdOwoKICBjb25zdCBDbG91ZEZvZyA9IFsKICAgIFsicGF0aCIsIHsgZDogIk00IDE0Ljg5OUE3IDcgMCAxIDEgMTUuNzEgOGgxLjc5YTQuNSA0LjUgMCAwIDEgMi41IDguMjQyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNiAxN0g3IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNyAyMUg5IiB9XQogIF07CgogIGNvbnN0IENsb3VkSGFpbCA9IFsKICAgIFsicGF0aCIsIHsgZDogIk00IDE0Ljg5OUE3IDcgMCAxIDEgMTUuNzEgOGgxLjc5YTQuNSA0LjUgMCAwIDEgMi41IDguMjQyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNiAxNHYyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk04IDE0djIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE2IDIwaC4wMSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNOCAyMGguMDEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDE2djIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDIyaC4wMSIgfV0KICBdOwoKICBjb25zdCBDbG91ZExpZ2h0bmluZyA9IFsKICAgIFsicGF0aCIsIHsgZDogIk02IDE2LjMyNkE3IDcgMCAxIDEgMTUuNzEgOGgxLjc5YTQuNSA0LjUgMCAwIDEgLjUgOC45NzMiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTEzIDEyLTMgNWg0bC0zIDUiIH1dCiAgXTsKCiAgY29uc3QgQ2xvdWRNb29uUmFpbiA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xMSAyMHYyIiB9XSwKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk0xOC4zNzYgMTQuNTEyYTYgNiAwIDAgMCAzLjQ2MS00LjEyN2MuMTQ4LS42MjUtLjY1OS0uOTctMS4yNDgtLjcxNGE0IDQgMCAwIDEtNS4yNTktNS4yNmMuMjU1LS41ODktLjA5LTEuMzk1LS43MTYtMS4yNDhhNiA2IDAgMCAwLTQuNTk0IDUuMzYiCiAgICAgIH0KICAgIF0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMyAyMGE1IDUgMCAxIDEgOC45LTRIMTNhMyAzIDAgMCAxIDIgNS4yNCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNyAxOXYyIiB9XQogIF07CgogIGNvbnN0IENsb3VkTW9vbiA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xMyAxNmEzIDMgMCAwIDEgMCA2SDdhNSA1IDAgMSAxIDQuOS02eiIgfV0sCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMTguMzc2IDE0LjUxMmE2IDYgMCAwIDAgMy40NjEtNC4xMjdjLjE0OC0uNjI1LS42NTktLjk3LTEuMjQ4LS43MTRhNCA0IDAgMCAxLTUuMjU5LTUuMjZjLjI1NS0uNTg5LS4wOS0xLjM5NS0uNzE2LTEuMjQ4YTYgNiAwIDAgMC00LjU5NCA1LjM2IgogICAgICB9CiAgICBdCiAgXTsKCiAgY29uc3QgQ2xvdWRPZmYgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTAuOTQgNS4yNzRBNyA3IDAgMCAxIDE1LjcxIDEwaDEuNzlhNC41IDQuNSAwIDAgMSA0LjIyMiA2LjA1NyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTguNzk2IDE4LjgxQTQuNSA0LjUgMCAwIDEgMTcuNSAxOUg5QTcgNyAwIDAgMSA1Ljc5IDUuNzgiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTIgMiAyMCAyMCIgfV0KICBdOwoKICBjb25zdCBDbG91ZFJhaW5XaW5kID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTQgMTQuODk5QTcgNyAwIDEgMSAxNS43MSA4aDEuNzlhNC41IDQuNSAwIDAgMSAyLjUgOC4yNDIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTkuMiAyMiAzLTciIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTkgMTMtMyA3IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0xNyAxMy0zIDciIH1dCiAgXTsKCiAgY29uc3QgQ2xvdWRSYWluID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTQgMTQuODk5QTcgNyAwIDEgMSAxNS43MSA4aDEuNzlhNC41IDQuNSAwIDAgMSAyLjUgOC4yNDIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE2IDE0djYiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTggMTR2NiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgMTZ2NiIgfV0KICBdOwoKICBjb25zdCBDbG91ZFNub3cgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNNCAxNC44OTlBNyA3IDAgMSAxIDE1LjcxIDhoMS43OWE0LjUgNC41IDAgMCAxIDIuNSA4LjI0MiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNOCAxNWguMDEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTggMTloLjAxIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xMiAxN2guMDEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDIxaC4wMSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTYgMTVoLjAxIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNiAxOWguMDEiIH1dCiAgXTsKCiAgY29uc3QgQ2xvdWRTdW5SYWluID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDJ2MiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtNC45MyA0LjkzIDEuNDEgMS40MSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMjAgMTJoMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMTkuMDcgNC45My0xLjQxIDEuNDEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE1Ljk0NyAxMi42NWE0IDQgMCAwIDAtNS45MjUtNC4xMjgiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTMgMjBhNSA1IDAgMSAxIDguOS00SDEzYTMgMyAwIDAgMSAyIDUuMjQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTExIDIwdjIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTcgMTl2MiIgfV0KICBdOwoKICBjb25zdCBDbG91ZFN1biA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xMiAydjIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTQuOTMgNC45MyAxLjQxIDEuNDEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIwIDEyaDIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTE5LjA3IDQuOTMtMS40MSAxLjQxIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNS45NDcgMTIuNjVhNCA0IDAgMCAwLTUuOTI1LTQuMTI4IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xMyAyMkg3YTUgNSAwIDEgMSA0LjktNkgxM2EzIDMgMCAwIDEgMCA2WiIgfV0KICBdOwoKICBjb25zdCBDbG91ZFN5bmMgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJtMTcgMTgtMS41MzUgMS42MDVhNSA1IDAgMCAxLTgtMS41IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNyAyMnYtNGgtNCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMjAuOTk2IDE1LjI1MUE0LjUgNC41IDAgMCAwIDE3LjQ5NSA4aC0xLjc5YTcgNyAwIDEgMC0xMi43MDkgNS42MDciIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTcgMTB2NGg0IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm03IDE0IDEuNTM1LTEuNjA1YTUgNSAwIDAgMSA4IDEuNSIgfV0KICBdOwoKICBjb25zdCBDbG91ZFVwbG9hZCA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xMiAxM3Y4IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk00IDE0Ljg5OUE3IDcgMCAxIDEgMTUuNzEgOGgxLjc5YTQuNSA0LjUgMCAwIDEgMi41IDguMjQyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm04IDE3IDQtNCA0IDQiIH1dCiAgXTsKCiAgY29uc3QgQ2xvdWQgPSBbWyJwYXRoIiwgeyBkOiAiTTE3LjUgMTlIOWE3IDcgMCAxIDEgNi43MS05aDEuNzlhNC41IDQuNSAwIDEgMSAwIDlaIiB9XV07CgogIGNvbnN0IENsb3VkeSA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xNy41IDEyYTEgMSAwIDEgMSAwIDlIOS4wMDZhNyA3IDAgMSAxIDYuNzAyLTl6IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yMS44MzIgOUEzIDMgMCAwIDAgMTkgN2gtMi4yMDdhNS41IDUuNSAwIDAgMC0xMC43Mi42MSIgfV0KICBdOwoKICBjb25zdCBDbHViID0gWwogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsgZDogIk0xNy4yOCA5LjA1YTUuNSA1LjUgMCAxIDAtMTAuNTYgMEE1LjUgNS41IDAgMSAwIDEyIDE3LjY2YTUuNSA1LjUgMCAxIDAgNS4yOC04LjZaIiB9CiAgICBdLAogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDE3LjY2TDEyIDIyIiB9XQogIF07CgogIGNvbnN0IENsb3ZlciA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xNi4xNyA3LjgzIDIgMjIiIH1dLAogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTQuMDIgMTJhMi44MjcgMi44MjcgMCAxIDEgMy44MS00LjE3QTIuODI3IDIuODI3IDAgMSAxIDEyIDQuMDJhMi44MjcgMi44MjcgMCAxIDEgNC4xNyAzLjgxQTIuODI3IDIuODI3IDAgMSAxIDE5Ljk4IDEyYTIuODI3IDIuODI3IDAgMSAxLTMuODEgNC4xN0EyLjgyNyAyLjgyNyAwIDEgMSAxMiAxOS45OGEyLjgyNyAyLjgyNyAwIDEgMS00LjE3LTMuODFBMSAxIDAgMSAxIDQgMTIiCiAgICAgIH0KICAgIF0sCiAgICBbInBhdGgiLCB7IGQ6ICJtNy44MyA3LjgzIDguMzQgOC4zNCIgfV0KICBdOwoKICBjb25zdCBDb2RlWG1sID0gWwogICAgWyJwYXRoIiwgeyBkOiAibTE4IDE2IDQtNC00LTQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTYgOC00IDQgNCA0IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0xNC41IDQtNSAxNiIgfV0KICBdOwoKICBjb25zdCBDb2RlID0gWwogICAgWyJwYXRoIiwgeyBkOiAibTE2IDE4IDYtNi02LTYiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTggNi02IDYgNiA2IiB9XQogIF07CgogIGNvbnN0IENvZmZlZSA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xMCAydjIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE0IDJ2MiIgfV0sCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMTYgOGExIDEgMCAwIDEgMSAxdjhhNCA0IDAgMCAxLTQgNEg3YTQgNCAwIDAgMS00LTRWOWExIDEgMCAwIDEgMS0xaDE0YTQgNCAwIDEgMSAwIDhoLTEiCiAgICAgIH0KICAgIF0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNiAydjIiIH1dCiAgXTsKCiAgY29uc3QgQ29nID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTExIDEwLjI3IDcgMy4zNCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMTEgMTMuNzMtNCA2LjkzIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xMiAyMnYtMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgMnYyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNCAxMmg4IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0xNyAyMC42Ni0xLTEuNzMiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTE3IDMuMzQtMSAxLjczIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yIDEyaDIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTIwLjY2IDE3LTEuNzMtMSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMjAuNjYgNy0xLjczIDEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTMuMzQgMTcgMS43My0xIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0zLjM0IDcgMS43MyAxIiB9XSwKICAgIFsiY2lyY2xlIiwgeyBjeDogIjEyIiwgY3k6ICIxMiIsIHI6ICIyIiB9XSwKICAgIFsiY2lyY2xlIiwgeyBjeDogIjEyIiwgY3k6ICIxMiIsIHI6ICI4IiB9XQogIF07CgogIGNvbnN0IENvaW5zID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTEzLjc0NCAxNy43MzZhNiA2IDAgMSAxLTcuNDgtNy40OCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTUgNmgxdjQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTYuMTM0IDE0Ljc2OC44NjYtLjUgMiAzLjQ2NCIgfV0sCiAgICBbImNpcmNsZSIsIHsgY3g6ICIxNiIsIGN5OiAiOCIsIHI6ICI2IiB9XQogIF07CgogIGNvbnN0IENvbHVtbnMyID0gWwogICAgWyJyZWN0IiwgeyB3aWR0aDogIjE4IiwgaGVpZ2h0OiAiMTgiLCB4OiAiMyIsIHk6ICIzIiwgcng6ICIyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xMiAzdjE4IiB9XQogIF07CgogIGNvbnN0IENvbHVtbnMzQ29nID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTEwLjYgMjFINWEyIDIgMCAwMS0yLTJWNWEyIDIgMCAwMTItMmgxNGEyIDIgMCAwMTIgMnY1LjYiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTE0LjMwNSAxOS41My45MjMtLjM4MiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTUgM3Y3LjYiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTE1LjIyOSAxNi44NTItLjkyNC0uMzgzIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0xNi44NTIgMTUuMjI4LS4zODMtLjkyMyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMTYuODUyIDIwLjc3Mi0uMzgzLjkyNCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMTkuMTQ4IDE1LjIyOC4zODMtLjkyMyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMTkuNTMgMjEuNjk2LS4zODItLjkyNCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMjAuNzczIDE2Ljg1Mi45MjItLjM4MyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMjAuNzczIDE5LjE0OC45MjIuMzgzIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk05IDN2MTgiIH1dLAogICAgWyJjaXJjbGUiLCB7IGN4OiAiMTgiLCBjeTogIjE4IiwgcjogIjMiIH1dCiAgXTsKCiAgY29uc3QgQ29sdW1uczMgPSBbCiAgICBbInJlY3QiLCB7IHdpZHRoOiAiMTgiLCBoZWlnaHQ6ICIxOCIsIHg6ICIzIiwgeTogIjMiLCByeDogIjIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTkgM3YxOCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTUgM3YxOCIgfV0KICBdOwoKICBjb25zdCBDb2x1bW5zNCA9IFsKICAgIFsicmVjdCIsIHsgd2lkdGg6ICIxOCIsIGhlaWdodDogIjE4IiwgeDogIjMiLCB5OiAiMyIsIHJ4OiAiMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNy41IDN2MTgiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDN2MTgiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE2LjUgM3YxOCIgfV0KICBdOwoKICBjb25zdCBDb21iaW5lID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTE0IDNhMSAxIDAgMCAxIDEgMXY1YTEgMSAwIDAgMS0xIDEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE5IDNhMSAxIDAgMCAxIDEgMXY1YTEgMSAwIDAgMS0xIDEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTcgMTUgMyAzIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm03IDIxIDMtM0g1YTIgMiAwIDAgMS0yLTJ2LTIiIH1dLAogICAgWyJyZWN0IiwgeyB4OiAiMTQiLCB5OiAiMTQiLCB3aWR0aDogIjciLCBoZWlnaHQ6ICI3Iiwgcng6ICIxIiB9XSwKICAgIFsicmVjdCIsIHsgeDogIjMiLCB5OiAiMyIsIHdpZHRoOiAiNyIsIGhlaWdodDogIjciLCByeDogIjEiIH1dCiAgXTsKCiAgY29uc3QgQ29tbWFuZCA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xNSA2djEyYTMgMyAwIDEgMCAzLTNINmEzIDMgMCAxIDAgMyAzVjZhMyAzIDAgMSAwLTMgM2gxMmEzIDMgMCAxIDAtMy0zIiB9XQogIF07CgogIGNvbnN0IENvbXBhc3MgPSBbCiAgICBbImNpcmNsZSIsIHsgY3g6ICIxMiIsIGN5OiAiMTIiLCByOiAiMTAiIH1dLAogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAibTE2LjI0IDcuNzYtMS44MDQgNS40MTFhMiAyIDAgMCAxLTEuMjY1IDEuMjY1TDcuNzYgMTYuMjRsMS44MDQtNS40MTFhMiAyIDAgMCAxIDEuMjY1LTEuMjY1eiIKICAgICAgfQogICAgXQogIF07CgogIGNvbnN0IENvbXB1dGVyID0gWwogICAgWyJyZWN0IiwgeyB3aWR0aDogIjE0IiwgaGVpZ2h0OiAiOCIsIHg6ICI1IiwgeTogIjIiLCByeDogIjIiIH1dLAogICAgWyJyZWN0IiwgeyB3aWR0aDogIjIwIiwgaGVpZ2h0OiAiOCIsIHg6ICIyIiwgeTogIjE0Iiwgcng6ICIyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk02IDE4aDIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDE4aDYiIH1dCiAgXTsKCiAgY29uc3QgQ29tcG9uZW50ID0gWwogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTE1LjUzNiAxMS4yOTNhMSAxIDAgMCAwIDAgMS40MTRsMi4zNzYgMi4zNzdhMSAxIDAgMCAwIDEuNDE0IDBsMi4zNzctMi4zNzdhMSAxIDAgMCAwIDAtMS40MTRsLTIuMzc3LTIuMzc3YTEgMSAwIDAgMC0xLjQxNCAweiIKICAgICAgfQogICAgXSwKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk0yLjI5NyAxMS4yOTNhMSAxIDAgMCAwIDAgMS40MTRsMi4zNzcgMi4zNzdhMSAxIDAgMCAwIDEuNDE0IDBsMi4zNzctMi4zNzdhMSAxIDAgMCAwIDAtMS40MTRMNi4wODggOC45MTZhMSAxIDAgMCAwLTEuNDE0IDB6IgogICAgICB9CiAgICBdLAogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTguOTE2IDE3LjkxMmExIDEgMCAwIDAgMCAxLjQxNWwyLjM3NyAyLjM3NmExIDEgMCAwIDAgMS40MTQgMGwyLjM3Ny0yLjM3NmExIDEgMCAwIDAgMC0xLjQxNWwtMi4zNzctMi4zNzZhMSAxIDAgMCAwLTEuNDE0IDB6IgogICAgICB9CiAgICBdLAogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTguOTE2IDQuNjc0YTEgMSAwIDAgMCAwIDEuNDE0bDIuMzc3IDIuMzc2YTEgMSAwIDAgMCAxLjQxNCAwbDIuMzc3LTIuMzc2YTEgMSAwIDAgMCAwLTEuNDE0bC0yLjM3Ny0yLjM3N2ExIDEgMCAwIDAtMS40MTQgMHoiCiAgICAgIH0KICAgIF0KICBdOwoKICBjb25zdCBDb25jaWVyZ2VCZWxsID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTMgMjBhMSAxIDAgMCAxLTEtMXYtMWEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ2MWExIDEgMCAwIDEtMSAxWiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMjAgMTZhOCA4IDAgMSAwLTE2IDAiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDR2NCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTAgNGg0IiB9XQogIF07CgogIGNvbnN0IENvbnN0cnVjdGlvbiA9IFsKICAgIFsicmVjdCIsIHsgeDogIjIiLCB5OiAiNiIsIHdpZHRoOiAiMjAiLCBoZWlnaHQ6ICI4Iiwgcng6ICIxIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNyAxNHY3IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk03IDE0djciIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE3IDN2MyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNyAzdjMiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTEwIDE0IDIuMyA2LjMiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTE0IDYgNy43IDcuNyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtOCA2IDggOCIgfV0KICBdOwoKICBjb25zdCBDb25lID0gWwogICAgWyJwYXRoIiwgeyBkOiAibTIwLjkgMTguNTUtOC0xNS45OGExIDEgMCAwIDAtMS44IDBsLTggMTUuOTgiIH1dLAogICAgWyJlbGxpcHNlIiwgeyBjeDogIjEyIiwgY3k6ICIxOSIsIHJ4OiAiOSIsIHJ5OiAiMyIgfV0KICBdOwoKICBjb25zdCBDb250YWN0Um91bmQgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTYgMnYyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNy45MTUgMjJhNiA2IDAgMCAwLTEyIDAiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTggMnYyIiB9XSwKICAgIFsiY2lyY2xlIiwgeyBjeDogIjEyIiwgY3k6ICIxMiIsIHI6ICI0IiB9XSwKICAgIFsicmVjdCIsIHsgeDogIjMiLCB5OiAiNCIsIHdpZHRoOiAiMTgiLCBoZWlnaHQ6ICIxOCIsIHJ4OiAiMiIgfV0KICBdOwoKICBjb25zdCBDb250YWN0ID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTE2IDJ2MiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNyAyMnYtMmEyIDIgMCAwIDEgMi0yaDZhMiAyIDAgMCAxIDIgMnYyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk04IDJ2MiIgfV0sCiAgICBbImNpcmNsZSIsIHsgY3g6ICIxMiIsIGN5OiAiMTEiLCByOiAiMyIgfV0sCiAgICBbInJlY3QiLCB7IHg6ICIzIiwgeTogIjQiLCB3aWR0aDogIjE4IiwgaGVpZ2h0OiAiMTgiLCByeDogIjIiIH1dCiAgXTsKCiAgY29uc3QgQ29udGFpbmVyID0gWwogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTIyIDcuN2MwLS42LS40LTEuMi0uOC0xLjVsLTYuMy0zLjlhMS43MiAxLjcyIDAgMCAwLTEuNyAwbC0xMC4zIDZjLS41LjItLjkuOC0uOSAxLjR2Ni42YzAgLjUuNCAxLjIuOCAxLjVsNi4zIDMuOWExLjcyIDEuNzIgMCAwIDAgMS43IDBsMTAuMy02Yy41LS4zLjktMSAuOS0xLjVaIgogICAgICB9CiAgICBdLAogICAgWyJwYXRoIiwgeyBkOiAiTTEwIDIxLjlWMTRMMi4xIDkuMSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMTAgMTQgMTEuOS02LjkiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE0IDE5Ljh2LTguMSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTggMTcuNVY5LjQiIH1dCiAgXTsKCiAgY29uc3QgQ29udHJhc3QgPSBbCiAgICBbImNpcmNsZSIsIHsgY3g6ICIxMiIsIGN5OiAiMTIiLCByOiAiMTAiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDE4YTYgNiAwIDAgMCAwLTEydjEyeiIgfV0KICBdOwoKICBjb25zdCBDb29raWUgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgMmExMCAxMCAwIDEgMCAxMCAxMCA0IDQgMCAwIDEtNS01IDQgNCAwIDAgMS01LTUiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTguNSA4LjV2LjAxIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNiAxNS41di4wMSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgMTJ2LjAxIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xMSAxN3YuMDEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTcgMTR2LjAxIiB9XQogIF07CgogIGNvbnN0IENvb2tpbmdQb3QgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMiAxMmgyMCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMjAgMTJ2OGEyIDIgMCAwIDEtMiAySDZhMiAyIDAgMCAxLTItMnYtOCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtNCA4IDE2LTQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTguODYgNi43OC0uNDUtMS44MWEyIDIgMCAwIDEgMS40NS0yLjQzbDEuOTQtLjQ4YTIgMiAwIDAgMSAyLjQzIDEuNDZsLjQ1IDEuOCIgfV0KICBdOwoKICBjb25zdCBDb3B5Q2hlY2sgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJtMTIgMTUgMiAyIDQtNCIgfV0sCiAgICBbInJlY3QiLCB7IHdpZHRoOiAiMTQiLCBoZWlnaHQ6ICIxNCIsIHg6ICI4IiwgeTogIjgiLCByeDogIjIiLCByeTogIjIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTQgMTZjLTEuMSAwLTItLjktMi0yVjRjMC0xLjEuOS0yIDItMmgxMGMxLjEgMCAyIC45IDIgMiIgfV0KICBdOwoKICBjb25zdCBDb3B5TWludXMgPSBbCiAgICBbImxpbmUiLCB7IHgxOiAiMTIiLCB4MjogIjE4IiwgeTE6ICIxNSIsIHkyOiAiMTUiIH1dLAogICAgWyJyZWN0IiwgeyB3aWR0aDogIjE0IiwgaGVpZ2h0OiAiMTQiLCB4OiAiOCIsIHk6ICI4Iiwgcng6ICIyIiwgcnk6ICIyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk00IDE2Yy0xLjEgMC0yLS45LTItMlY0YzAtMS4xLjktMiAyLTJoMTBjMS4xIDAgMiAuOSAyIDIiIH1dCiAgXTsKCiAgY29uc3QgQ29weVBsdXMgPSBbCiAgICBbImxpbmUiLCB7IHgxOiAiMTUiLCB4MjogIjE1IiwgeTE6ICIxMiIsIHkyOiAiMTgiIH1dLAogICAgWyJsaW5lIiwgeyB4MTogIjEyIiwgeDI6ICIxOCIsIHkxOiAiMTUiLCB5MjogIjE1IiB9XSwKICAgIFsicmVjdCIsIHsgd2lkdGg6ICIxNCIsIGhlaWdodDogIjE0IiwgeDogIjgiLCB5OiAiOCIsIHJ4OiAiMiIsIHJ5OiAiMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNCAxNmMtMS4xIDAtMi0uOS0yLTJWNGMwLTEuMS45LTIgMi0yaDEwYzEuMSAwIDIgLjkgMiAyIiB9XQogIF07CgogIGNvbnN0IENvcHlTbGFzaCA9IFsKICAgIFsibGluZSIsIHsgeDE6ICIxMiIsIHgyOiAiMTgiLCB5MTogIjE4IiwgeTI6ICIxMiIgfV0sCiAgICBbInJlY3QiLCB7IHdpZHRoOiAiMTQiLCBoZWlnaHQ6ICIxNCIsIHg6ICI4IiwgeTogIjgiLCByeDogIjIiLCByeTogIjIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTQgMTZjLTEuMSAwLTItLjktMi0yVjRjMC0xLjEuOS0yIDItMmgxMGMxLjEgMCAyIC45IDIgMiIgfV0KICBdOwoKICBjb25zdCBDb3B5ID0gWwogICAgWyJyZWN0IiwgeyB3aWR0aDogIjE0IiwgaGVpZ2h0OiAiMTQiLCB4OiAiOCIsIHk6ICI4Iiwgcng6ICIyIiwgcnk6ICIyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk00IDE2Yy0xLjEgMC0yLS45LTItMlY0YzAtMS4xLjktMiAyLTJoMTBjMS4xIDAgMiAuOSAyIDIiIH1dCiAgXTsKCiAgY29uc3QgQ29weVggPSBbCiAgICBbImxpbmUiLCB7IHgxOiAiMTIiLCB4MjogIjE4IiwgeTE6ICIxMiIsIHkyOiAiMTgiIH1dLAogICAgWyJsaW5lIiwgeyB4MTogIjEyIiwgeDI6ICIxOCIsIHkxOiAiMTgiLCB5MjogIjEyIiB9XSwKICAgIFsicmVjdCIsIHsgd2lkdGg6ICIxNCIsIGhlaWdodDogIjE0IiwgeDogIjgiLCB5OiAiOCIsIHJ4OiAiMiIsIHJ5OiAiMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNCAxNmMtMS4xIDAtMi0uOS0yLTJWNGMwLTEuMS45LTIgMi0yaDEwYzEuMSAwIDIgLjkgMiAyIiB9XQogIF07CgogIGNvbnN0IENvcHlyaWdodCA9IFsKICAgIFsiY2lyY2xlIiwgeyBjeDogIjEyIiwgY3k6ICIxMiIsIHI6ICIxMCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTQuODMgMTQuODNhNCA0IDAgMSAxIDAtNS42NiIgfV0KICBdOwoKICBjb25zdCBDb3B5bGVmdCA9IFsKICAgIFsiY2lyY2xlIiwgeyBjeDogIjEyIiwgY3k6ICIxMiIsIHI6ICIxMCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNOS4xNyAxNC44M2E0IDQgMCAxIDAgMC01LjY2IiB9XQogIF07CgogIGNvbnN0IENvcm5lckRvd25MZWZ0ID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTIwIDR2N2E0IDQgMCAwIDEtNCA0SDQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTkgMTAtNSA1IDUgNSIgfV0KICBdOwoKICBjb25zdCBDb3JuZXJEb3duUmlnaHQgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJtMTUgMTAgNSA1LTUgNSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNCA0djdhNCA0IDAgMCAwIDQgNGgxMiIgfV0KICBdOwoKICBjb25zdCBDb3JuZXJMZWZ0RG93biA9IFsKICAgIFsicGF0aCIsIHsgZDogIm0xNCAxNS01IDUtNS01IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yMCA0aC03YTQgNCAwIDAgMC00IDR2MTIiIH1dCiAgXTsKCiAgY29uc3QgQ29ybmVyTGVmdFVwID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTE0IDkgOSA0IDQgOSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMjAgMjBoLTdhNCA0IDAgMCAxLTQtNFY0IiB9XQogIF07CgogIGNvbnN0IENvcm5lclJpZ2h0RG93biA9IFsKICAgIFsicGF0aCIsIHsgZDogIm0xMCAxNSA1IDUgNS01IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk00IDRoN2E0IDQgMCAwIDEgNCA0djEyIiB9XQogIF07CgogIGNvbnN0IENvcm5lclJpZ2h0VXAgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJtMTAgOSA1LTUgNSA1IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk00IDIwaDdhNCA0IDAgMCAwIDQtNFY0IiB9XQogIF07CgogIGNvbnN0IENvcm5lclVwUmlnaHQgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJtMTUgMTQgNS01LTUtNSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNCAyMHYtN2E0IDQgMCAwIDEgNC00aDEyIiB9XQogIF07CgogIGNvbnN0IENvcm5lclVwTGVmdCA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0yMCAyMHYtN2E0IDQgMCAwIDAtNC00SDQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTkgMTQgNCA5bDUtNSIgfV0KICBdOwoKICBjb25zdCBDcHUgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgMjB2MiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgMnYyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNyAyMHYyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNyAydjIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIgMTJoMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMiAxN2gyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yIDdoMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMjAgMTJoMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMjAgMTdoMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMjAgN2gyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk03IDIwdjIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTcgMnYyIiB9XSwKICAgIFsicmVjdCIsIHsgeDogIjQiLCB5OiAiNCIsIHdpZHRoOiAiMTYiLCBoZWlnaHQ6ICIxNiIsIHJ4OiAiMiIgfV0sCiAgICBbInJlY3QiLCB7IHg6ICI4IiwgeTogIjgiLCB3aWR0aDogIjgiLCBoZWlnaHQ6ICI4Iiwgcng6ICIxIiB9XQogIF07CgogIGNvbnN0IENyZWF0aXZlQ29tbW9ucyA9IFsKICAgIFsiY2lyY2xlIiwgeyBjeDogIjEyIiwgY3k6ICIxMiIsIHI6ICIxMCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTAgOS4zYTIuOCAyLjggMCAwIDAtMy41IDEgMy4xIDMuMSAwIDAgMCAwIDMuNCAyLjcgMi43IDAgMCAwIDMuNSAxIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNyA5LjNhMi44IDIuOCAwIDAgMC0zLjUgMSAzLjEgMy4xIDAgMCAwIDAgMy40IDIuNyAyLjcgMCAwIDAgMy41IDEiIH1dCiAgXTsKCiAgY29uc3QgQ3JlZGl0Q2FyZCA9IFsKICAgIFsicmVjdCIsIHsgd2lkdGg6ICIyMCIsIGhlaWdodDogIjE0IiwgeDogIjIiLCB5OiAiNSIsIHJ4OiAiMiIgfV0sCiAgICBbImxpbmUiLCB7IHgxOiAiMiIsIHgyOiAiMjIiLCB5MTogIjEwIiwgeTI6ICIxMCIgfV0KICBdOwoKICBjb25zdCBDcm9wID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTYgMnYxNGEyIDIgMCAwIDAgMiAyaDE0IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xOCAyMlY4YTIgMiAwIDAgMC0yLTJIMiIgfV0KICBdOwoKICBjb25zdCBDcm9pc3NhbnQgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTAuMiAxOEg0Ljc3NGExLjUgMS41IDAgMCAxLTEuMzUyLS45NyAxMSAxMSAwIDAgMSAuMTMyLTYuNDg3IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xOCAxMC4yVjQuNzc0YTEuNSAxLjUgMCAwIDAtLjk3LTEuMzUyIDExIDExIDAgMCAwLTYuNDg2LjEzMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTggNWE0IDMgMCAwIDEgNCAzIDIgMiAwIDAgMS0yIDIgMTAgMTAgMCAwIDAtNS4xMzkgMS40MiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNSAxOGEzIDQgMCAwIDAgMyA0IDIgMiAwIDAgMCAyLTIgMTAgMTAgMCAwIDEgMS40Mi01LjE0IiB9XSwKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk04LjcwOSAyLjU1NGExMCAxMCAwIDAgMC02LjE1NSA2LjE1NSAxLjUgMS41IDAgMCAwIC42NzYgMS42MjZsOS44MDcgNS40MmEyIDIgMCAwIDAgMi43MTgtMi43MThsLTUuNDItOS44MDdhMS41IDEuNSAwIDAgMC0xLjYyNi0uNjc2IgogICAgICB9CiAgICBdCiAgXTsKCiAgY29uc3QgQ3Jvc3MgPSBbCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNNCA5YTIgMiAwIDAgMC0yIDJ2MmEyIDIgMCAwIDAgMiAyaDRhMSAxIDAgMCAxIDEgMXY0YTIgMiAwIDAgMCAyIDJoMmEyIDIgMCAwIDAgMi0ydi00YTEgMSAwIDAgMSAxLTFoNGEyIDIgMCAwIDAgMi0ydi0yYTIgMiAwIDAgMC0yLTJoLTRhMSAxIDAgMCAxLTEtMVY0YTIgMiAwIDAgMC0yLTJoLTJhMiAyIDAgMCAwLTIgMnY0YTEgMSAwIDAgMS0xIDF6IgogICAgICB9CiAgICBdCiAgXTsKCiAgY29uc3QgQ3Jvc3NoYWlyID0gWwogICAgWyJjaXJjbGUiLCB7IGN4OiAiMTIiLCBjeTogIjEyIiwgcjogIjEwIiB9XSwKICAgIFsibGluZSIsIHsgeDE6ICIyMiIsIHgyOiAiMTgiLCB5MTogIjEyIiwgeTI6ICIxMiIgfV0sCiAgICBbImxpbmUiLCB7IHgxOiAiNiIsIHgyOiAiMiIsIHkxOiAiMTIiLCB5MjogIjEyIiB9XSwKICAgIFsibGluZSIsIHsgeDE6ICIxMiIsIHgyOiAiMTIiLCB5MTogIjYiLCB5MjogIjIiIH1dLAogICAgWyJsaW5lIiwgeyB4MTogIjEyIiwgeDI6ICIxMiIsIHkxOiAiMjIiLCB5MjogIjE4IiB9XQogIF07CgogIGNvbnN0IENyb3duID0gWwogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTExLjU2MiAzLjI2NmEuNS41IDAgMCAxIC44NzYgMEwxNS4zOSA4Ljg3YTEgMSAwIDAgMCAxLjUxNi4yOTRMMjEuMTgzIDUuNWEuNS41IDAgMCAxIC43OTguNTE5bC0yLjgzNCAxMC4yNDZhMSAxIDAgMCAxLS45NTYuNzM0SDUuODFhMSAxIDAgMCAxLS45NTctLjczNEwyLjAyIDYuMDJhLjUuNSAwIDAgMSAuNzk4LS41MTlsNC4yNzYgMy42NjRhMSAxIDAgMCAwIDEuNTE2LS4yOTR6IgogICAgICB9CiAgICBdLAogICAgWyJwYXRoIiwgeyBkOiAiTTUgMjFoMTQiIH1dCiAgXTsKCiAgY29uc3QgQ3Vib2lkID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTEwIDIydi04IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yLjMzNiA4Ljg5IDEwIDE0bDExLjcxNS03LjAyOSIgfV0sCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMjIgMTRhMiAyIDAgMCAxLS45NzEgMS43MTVsLTEwIDZhMiAyIDAgMCAxLTIuMTM4LS4wNWwtNi00QTIgMiAwIDAgMSAyIDE2di02YTIgMiAwIDAgMSAuOTcxLTEuNzE1bDEwLTZhMiAyIDAgMCAxIDIuMTM4LjA1bDYgNEEyIDIgMCAwIDEgMjIgOHoiCiAgICAgIH0KICAgIF0KICBdOwoKICBjb25zdCBDdXBTb2RhID0gWwogICAgWyJwYXRoIiwgeyBkOiAibTYgOCAxLjc1IDEyLjI4YTIgMiAwIDAgMCAyIDEuNzJoNC41NGEyIDIgMCAwIDAgMi0xLjcyTDE4IDgiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTUgOGgxNCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNyAxNWE2LjQ3IDYuNDcgMCAwIDEgNSAwIDYuNDcgNi40NyAwIDAgMCA1IDAiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTEyIDggMS02aDIiIH1dCiAgXTsKCiAgY29uc3QgQ3VycmVuY3kgPSBbCiAgICBbImNpcmNsZSIsIHsgY3g6ICIxMiIsIGN5OiAiMTIiLCByOiAiOCIgfV0sCiAgICBbImxpbmUiLCB7IHgxOiAiMyIsIHgyOiAiNiIsIHkxOiAiMyIsIHkyOiAiNiIgfV0sCiAgICBbImxpbmUiLCB7IHgxOiAiMjEiLCB4MjogIjE4IiwgeTE6ICIzIiwgeTI6ICI2IiB9XSwKICAgIFsibGluZSIsIHsgeDE6ICIzIiwgeDI6ICI2IiwgeTE6ICIyMSIsIHkyOiAiMTgiIH1dLAogICAgWyJsaW5lIiwgeyB4MTogIjIxIiwgeDI6ICIxOCIsIHkxOiAiMjEiLCB5MjogIjE4IiB9XQogIF07CgogIGNvbnN0IEN5bGluZGVyID0gWwogICAgWyJlbGxpcHNlIiwgeyBjeDogIjEyIiwgY3k6ICI1Iiwgcng6ICI5Iiwgcnk6ICIzIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0zIDV2MTRhOSAzIDAgMCAwIDE4IDBWNSIgfV0KICBdOwoKICBjb25zdCBEYW0gPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTEgMTEuMzFjMS4xNy41NiAxLjU0IDEuNjkgMy41IDEuNjkgMi41IDAgMi41LTIgNS0yIDEuMyAwIDEuOS41IDIuNSAxIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xMS43NSAxOGMuMzUuNSAxLjQ1IDEgMi43NSAxIDIuNSAwIDIuNS0yIDUtMiAxLjMgMCAxLjkuNSAyLjUgMSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMiAxMGg0IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yIDE0aDQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIgMThoNCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMiA2aDQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTcgM2ExIDEgMCAwIDAtMSAxdjE2YTEgMSAwIDAgMCAxIDFoNGExIDEgMCAwIDAgMS0xTDEwIDRhMSAxIDAgMCAwLTEtMXoiIH1dCiAgXTsKCiAgY29uc3QgRGF0YWJhc2VBcnJvd0Rvd24gPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJtMTYgMTkgMyAzIDMtMyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTkgMTZ2NiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMjEgMTIuNTM2VjUiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTMgMTJBOSAzIDAgMCAwIDE1LjE4MiAxNC44MDYiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTMgNVYxOUE5IDMgMCAwIDAgMTMuMzE4IDIxLjk2OCIgfV0sCiAgICBbImVsbGlwc2UiLCB7IGN4OiAiMTIiLCBjeTogIjUiLCByeDogIjkiLCByeTogIjMiIH1dCiAgXTsKCiAgY29uc3QgRGF0YWJhc2VBcnJvd1VwID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTE5IDIydi02IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yMSAxMi41MzZWNSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMjIgMTktMy0zLTMgMyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMyAxMkE5IDMgMCAwIDAgMTQuNDU3IDE0Ljg4NiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMyA1VjE5QTkgMyAwIDAgMCAxMy4zMTggMjEuOTY4IiB9XSwKICAgIFsiZWxsaXBzZSIsIHsgY3g6ICIxMiIsIGN5OiAiNSIsIHJ4OiAiOSIsIHJ5OiAiMyIgfV0KICBdOwoKICBjb25zdCBEYXRhYmFzZUJhY2t1cCA9IFsKICAgIFsiZWxsaXBzZSIsIHsgY3g6ICIxMiIsIGN5OiAiNSIsIHJ4OiAiOSIsIHJ5OiAiMyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMyAxMmE5IDMgMCAwIDAgNSAyLjY5IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yMSA5LjNWNSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMyA1djE0YTkgMyAwIDAgMCA2LjQ3IDIuODgiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDEydjRoNCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTMgMjBhNSA1IDAgMCAwIDktMyA0LjUgNC41IDAgMCAwLTQuNS00LjVjLTEuMzMgMC0yLjU0LjU0LTMuNDEgMS40MUwxMiAxNiIgfV0KICBdOwoKICBjb25zdCBEYXRhYmFzZU1pbnVzID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTIxIDE1VjUiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIyIDE5aC02IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0zIDEyQTkgMyAwIDAgMCAyMSAxMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMyA1VjE5QTkgMyAwIDAgMCAxMy4zMTggMjEuOTY4IiB9XSwKICAgIFsiZWxsaXBzZSIsIHsgY3g6ICIxMiIsIGN5OiAiNSIsIHJ4OiAiOSIsIHJ5OiAiMyIgfV0KICBdOwoKICBjb25zdCBEYXRhYmFzZUNoZWNrID0gWwogICAgWyJwYXRoIiwgeyBkOiAibTE2IDE5IDIgMiA0LTQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIxIDEzLjEyN1Y1IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0zIDEyQTkgMyAwIDAgMCAyMSAxMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMyA1VjE5QTkgMyAwIDAgMCAxMy4zMTggMjEuOTY4IiB9XSwKICAgIFsiZWxsaXBzZSIsIHsgY3g6ICIxMiIsIGN5OiAiNSIsIHJ4OiAiOSIsIHJ5OiAiMyIgfV0KICBdOwoKICBjb25zdCBEYXRhYmFzZVBsdXMgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTkgMTZ2NiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMjEgMTIuNTM2VjUiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIyIDE5aC02IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0zIDEyQTkgMyAwIDAgMCAxNS4xODI0IDE0LjgwNjEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTMgNVYxOUE5IDMgMCAwIDAgMTMuMzE4IDIxLjk2OCIgfV0sCiAgICBbImVsbGlwc2UiLCB7IGN4OiAiMTIiLCBjeTogIjUiLCByeDogIjkiLCByeTogIjMiIH1dCiAgXTsKCiAgY29uc3QgRGF0YWJhc2VTZWFyY2ggPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMjEgMTEuNjkzVjUiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTIyIDIyLTEuODc1LTEuODc1IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0zIDEyYTkgMyAwIDAgMCA4LjY5NyAyLjk5OCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMyA1djE0YTkgMyAwIDAgMCA5LjI4IDIuOTk5IiB9XSwKICAgIFsiY2lyY2xlIiwgeyBjeDogIjE4IiwgY3k6ICIxOCIsIHI6ICIzIiB9XSwKICAgIFsiZWxsaXBzZSIsIHsgY3g6ICIxMiIsIGN5OiAiNSIsIHJ4OiAiOSIsIHJ5OiAiMyIgfV0KICBdOwoKICBjb25zdCBEYXRhYmFzZVggPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJtMTcgMTcgNSA1IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xOS4zMjMgMTMuNzQ0QTkgMyAwIDAgMCAyMSAxMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMjEgMTMuMTI3VjUiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTIyIDE3LTUgNSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMyAxMkE5IDMgMCAwIDAgMTMuNTYzIDE0Ljk1NCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMyA1VjE5QTkgMyAwIDAgMCAxMyAyMS45ODEiIH1dLAogICAgWyJlbGxpcHNlIiwgeyBjeDogIjEyIiwgY3k6ICI1Iiwgcng6ICI5Iiwgcnk6ICIzIiB9XQogIF07CgogIGNvbnN0IERhdGFiYXNlWmFwID0gWwogICAgWyJlbGxpcHNlIiwgeyBjeDogIjEyIiwgY3k6ICI1Iiwgcng6ICI5Iiwgcnk6ICIzIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0zIDVWMTlBOSAzIDAgMCAwIDE1IDIxLjg0IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yMSA1VjgiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIxIDEyTDE4IDE3SDIyTDE5IDIyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0zIDEyQTkgMyAwIDAgMCAxNC41OSAxNC44NyIgfV0KICBdOwoKICBjb25zdCBEYXRhYmFzZSA9IFsKICAgIFsiZWxsaXBzZSIsIHsgY3g6ICIxMiIsIGN5OiAiNSIsIHJ4OiAiOSIsIHJ5OiAiMyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMyA1VjE5QTkgMyAwIDAgMCAyMSAxOVY1IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0zIDEyQTkgMyAwIDAgMCAyMSAxMiIgfV0KICBdOwoKICBjb25zdCBEZWNpbWFsc0Fycm93TGVmdCA9IFsKICAgIFsicGF0aCIsIHsgZDogIm0xMyAyMS0zLTMgMy0zIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yMCAxOEgxMCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMyAxMWguMDEiIH1dLAogICAgWyJyZWN0IiwgeyB4OiAiNiIsIHk6ICIzIiwgd2lkdGg6ICI1IiwgaGVpZ2h0OiAiOCIsIHJ4OiAiMi41IiB9XQogIF07CgogIGNvbnN0IERlY2ltYWxzQXJyb3dSaWdodCA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xMCAxOGgxMCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMTcgMjEgMy0zLTMtMyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMyAxMWguMDEiIH1dLAogICAgWyJyZWN0IiwgeyB4OiAiMTUiLCB5OiAiMyIsIHdpZHRoOiAiNSIsIGhlaWdodDogIjgiLCByeDogIjIuNSIgfV0sCiAgICBbInJlY3QiLCB7IHg6ICI2IiwgeTogIjMiLCB3aWR0aDogIjUiLCBoZWlnaHQ6ICI4Iiwgcng6ICIyLjUiIH1dCiAgXTsKCiAgY29uc3QgRGVsZXRlID0gWwogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTEwIDVhMiAyIDAgMCAwLTEuMzQ0LjUxOWwtNi4zMjggNS43NGExIDEgMCAwIDAgMCAxLjQ4MWw2LjMyOCA1Ljc0MUEyIDIgMCAwIDAgMTAgMTloMTBhMiAyIDAgMCAwIDItMlY3YTIgMiAwIDAgMC0yLTJ6IgogICAgICB9CiAgICBdLAogICAgWyJwYXRoIiwgeyBkOiAibTEyIDkgNiA2IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0xOCA5LTYgNiIgfV0KICBdOwoKICBjb25zdCBEZXNzZXJ0ID0gWwogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTEwLjE2MiAzLjE2N0ExMCAxMCAwIDAgMCAyIDEzYTIgMiAwIDAgMCA0IDB2LTFhMiAyIDAgMCAxIDQgMHY0YTIgMiAwIDAgMCA0IDB2LTRhMiAyIDAgMCAxIDQgMHYxYTIgMiAwIDAgMCA0LS4wMDYgMTAgMTAgMCAwIDAtOC4xNjEtOS44MjYiCiAgICAgIH0KICAgIF0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMjAuODA0IDE0Ljg2OWE5IDkgMCAwIDEtMTcuNjA4IDAiIH1dLAogICAgWyJjaXJjbGUiLCB7IGN4OiAiMTIiLCBjeTogIjQiLCByOiAiMiIgfV0KICBdOwoKICBjb25zdCBEaWFtZXRlciA9IFsKICAgIFsiY2lyY2xlIiwgeyBjeDogIjE5IiwgY3k6ICIxOSIsIHI6ICIyIiB9XSwKICAgIFsiY2lyY2xlIiwgeyBjeDogIjUiLCBjeTogIjUiLCByOiAiMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNi40OCAzLjY2YTEwIDEwIDAgMCAxIDEzLjg2IDEzLjg2IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm02LjQxIDYuNDEgMTEuMTggMTEuMTgiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTMuNjYgNi40OGExMCAxMCAwIDAgMCAxMy44NiAxMy44NiIgfV0KICBdOwoKICBjb25zdCBEaWFtb25kTWludXMgPSBbCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMi43IDEwLjNhMi40MSAyLjQxIDAgMCAwIDAgMy40MWw3LjU5IDcuNTlhMi40MSAyLjQxIDAgMCAwIDMuNDEgMGw3LjU5LTcuNTlhMi40MSAyLjQxIDAgMCAwIDAtMy40MUwxMy43IDIuNzFhMi40MSAyLjQxIDAgMCAwLTMuNDEgMHoiCiAgICAgIH0KICAgIF0sCiAgICBbInBhdGgiLCB7IGQ6ICJNOCAxMmg4IiB9XQogIF07CgogIGNvbnN0IERpYW1vbmRQZXJjZW50ID0gWwogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTIuNyAxMC4zYTIuNDEgMi40MSAwIDAgMCAwIDMuNDFsNy41OSA3LjU5YTIuNDEgMi40MSAwIDAgMCAzLjQxIDBsNy41OS03LjU5YTIuNDEgMi40MSAwIDAgMCAwLTMuNDFMMTMuNyAyLjcxYTIuNDEgMi40MSAwIDAgMC0zLjQxIDBaIgogICAgICB9CiAgICBdLAogICAgWyJwYXRoIiwgeyBkOiAiTTkuMiA5LjJoLjAxIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0xNC41IDkuNS01IDUiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE0LjcgMTQuOGguMDEiIH1dCiAgXTsKCiAgY29uc3QgRGlhbW9uZFBsdXMgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgOHY4IiB9XSwKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk0yLjcgMTAuM2EyLjQxIDIuNDEgMCAwIDAgMCAzLjQxbDcuNTkgNy41OWEyLjQxIDIuNDEgMCAwIDAgMy40MSAwbDcuNTktNy41OWEyLjQxIDIuNDEgMCAwIDAgMC0zLjQxTDEzLjcgMi43MWEyLjQxIDIuNDEgMCAwIDAtMy40MSAweiIKICAgICAgfQogICAgXSwKICAgIFsicGF0aCIsIHsgZDogIk04IDEyaDgiIH1dCiAgXTsKCiAgY29uc3QgRGlhbW9uZCA9IFsKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk0yLjcgMTAuM2EyLjQxIDIuNDEgMCAwIDAgMCAzLjQxbDcuNTkgNy41OWEyLjQxIDIuNDEgMCAwIDAgMy40MSAwbDcuNTktNy41OWEyLjQxIDIuNDEgMCAwIDAgMC0zLjQxbC03LjU5LTcuNTlhMi40MSAyLjQxIDAgMCAwLTMuNDEgMFoiCiAgICAgIH0KICAgIF0KICBdOwoKICBjb25zdCBEaWNlMSA9IFsKICAgIFsicmVjdCIsIHsgd2lkdGg6ICIxOCIsIGhlaWdodDogIjE4IiwgeDogIjMiLCB5OiAiMyIsIHJ4OiAiMiIsIHJ5OiAiMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgMTJoLjAxIiB9XQogIF07CgogIGNvbnN0IERpY2UyID0gWwogICAgWyJyZWN0IiwgeyB3aWR0aDogIjE4IiwgaGVpZ2h0OiAiMTgiLCB4OiAiMyIsIHk6ICIzIiwgcng6ICIyIiwgcnk6ICIyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNSA5aC4wMSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNOSAxNWguMDEiIH1dCiAgXTsKCiAgY29uc3QgRGljZTMgPSBbCiAgICBbInJlY3QiLCB7IHdpZHRoOiAiMTgiLCBoZWlnaHQ6ICIxOCIsIHg6ICIzIiwgeTogIjMiLCByeDogIjIiLCByeTogIjIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE2IDhoLjAxIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xMiAxMmguMDEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTggMTZoLjAxIiB9XQogIF07CgogIGNvbnN0IERpY2U0ID0gWwogICAgWyJyZWN0IiwgeyB3aWR0aDogIjE4IiwgaGVpZ2h0OiAiMTgiLCB4OiAiMyIsIHk6ICIzIiwgcng6ICIyIiwgcnk6ICIyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNiA4aC4wMSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNOCA4aC4wMSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNOCAxNmguMDEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE2IDE2aC4wMSIgfV0KICBdOwoKICBjb25zdCBEaWNlNSA9IFsKICAgIFsicmVjdCIsIHsgd2lkdGg6ICIxOCIsIGhlaWdodDogIjE4IiwgeDogIjMiLCB5OiAiMyIsIHJ4OiAiMiIsIHJ5OiAiMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTYgOGguMDEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTggOGguMDEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTggMTZoLjAxIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNiAxNmguMDEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDEyaC4wMSIgfV0KICBdOwoKICBjb25zdCBEaWNlNiA9IFsKICAgIFsicmVjdCIsIHsgd2lkdGg6ICIxOCIsIGhlaWdodDogIjE4IiwgeDogIjMiLCB5OiAiMyIsIHJ4OiAiMiIsIHJ5OiAiMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTYgOGguMDEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE2IDEyaC4wMSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTYgMTZoLjAxIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk04IDhoLjAxIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk04IDEyaC4wMSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNOCAxNmguMDEiIH1dCiAgXTsKCiAgY29uc3QgRGljZXMgPSBbCiAgICBbInJlY3QiLCB7IHdpZHRoOiAiMTIiLCBoZWlnaHQ6ICIxMiIsIHg6ICIyIiwgeTogIjEwIiwgcng6ICIyIiwgcnk6ICIyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0xNy45MiAxNCAzLjUtMy41YTIuMjQgMi4yNCAwIDAgMCAwLTNsLTUtNC45MmEyLjI0IDIuMjQgMCAwIDAtMyAwTDEwIDYiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTYgMThoLjAxIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xMCAxNGguMDEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE1IDZoLjAxIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xOCA5aC4wMSIgfV0KICBdOwoKICBjb25zdCBEaWZmID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDN2MTQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTUgMTBoMTQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTUgMjFoMTQiIH1dCiAgXTsKCiAgY29uc3QgRGlzYzIgPSBbCiAgICBbImNpcmNsZSIsIHsgY3g6ICIxMiIsIGN5OiAiMTIiLCByOiAiMTAiIH1dLAogICAgWyJjaXJjbGUiLCB7IGN4OiAiMTIiLCBjeTogIjEyIiwgcjogIjQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDEyaC4wMSIgfV0KICBdOwoKICBjb25zdCBEaXNjMyA9IFsKICAgIFsiY2lyY2xlIiwgeyBjeDogIjEyIiwgY3k6ICIxMiIsIHI6ICIxMCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNiAxMmMwLTEuNy43LTMuMiAxLjgtNC4yIiB9XSwKICAgIFsiY2lyY2xlIiwgeyBjeDogIjEyIiwgY3k6ICIxMiIsIHI6ICIyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xOCAxMmMwIDEuNy0uNyAzLjItMS44IDQuMiIgfV0KICBdOwoKICBjb25zdCBEaXNjQWxidW0gPSBbCiAgICBbInJlY3QiLCB7IHdpZHRoOiAiMTgiLCBoZWlnaHQ6ICIxOCIsIHg6ICIzIiwgeTogIjMiLCByeDogIjIiIH1dLAogICAgWyJjaXJjbGUiLCB7IGN4OiAiMTIiLCBjeTogIjEyIiwgcjogIjUiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDEyaC4wMSIgfV0KICBdOwoKICBjb25zdCBEaXNjID0gWwogICAgWyJjaXJjbGUiLCB7IGN4OiAiMTIiLCBjeTogIjEyIiwgcjogIjEwIiB9XSwKICAgIFsiY2lyY2xlIiwgeyBjeDogIjEyIiwgY3k6ICIxMiIsIHI6ICIyIiB9XQogIF07CgogIGNvbnN0IERpdmlkZSA9IFsKICAgIFsiY2lyY2xlIiwgeyBjeDogIjEyIiwgY3k6ICI2IiwgcjogIjEiIH1dLAogICAgWyJsaW5lIiwgeyB4MTogIjUiLCB4MjogIjE5IiwgeTE6ICIxMiIsIHkyOiAiMTIiIH1dLAogICAgWyJjaXJjbGUiLCB7IGN4OiAiMTIiLCBjeTogIjE4IiwgcjogIjEiIH1dCiAgXTsKCiAgY29uc3QgRG5hT2ZmID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTE1IDJjLTEuMzUgMS41LTIuMDkyIDMtMi41IDQuNUwxNCA4IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0xNyA2LTIuODkxLTIuODkxIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yIDE1YzMuMzMzLTMgNi42NjctMyAxMC0zIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0yIDIgMjAgMjAiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTIwIDkgLjg5MS44OTEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIyIDljLTEuNSAxLjM1LTMgMi4wOTItNC41IDIuNWwtMS0xIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0zLjEwOSAxNC4xMDkgNCAxNSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtNi41IDEyLjUgMSAxIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm03IDE4IDIuODkxIDIuODkxIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk05IDIyYzEuMzUtMS41IDIuMDkyLTMgMi41LTQuNUwxMCAxNiIgfV0KICBdOwoKICBjb25zdCBEbmEgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJtMTAgMTYgMS41IDEuNSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMTQgOC0xLjUtMS41IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNSAyYy0xLjc5OCAxLjk5OC0yLjUxOCAzLjk5NS0yLjgwNyA1Ljk5MyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMTYuNSAxMC41IDEgMSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMTcgNi0yLjg5MS0yLjg5MSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMiAxNWM2LjY2Ny02IDEzLjMzMyAwIDIwLTYiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTIwIDkgLjg5MS44OTEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTMuMTA5IDE0LjEwOSA0IDE1IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm02LjUgMTIuNSAxIDEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTcgMTggMi44OTEgMi44OTEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTkgMjJjMS43OTgtMS45OTggMi41MTgtMy45OTUgMi44MDctNS45OTMiIH1dCiAgXTsKCiAgY29uc3QgRG9jayA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0yIDhoMjAiIH1dLAogICAgWyJyZWN0IiwgeyB3aWR0aDogIjIwIiwgaGVpZ2h0OiAiMTYiLCB4OiAiMiIsIHk6ICI0Iiwgcng6ICIyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk02IDE2aDEyIiB9XQogIF07CgogIGNvbnN0IERvZyA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xMS4yNSAxNi4yNWgxLjVMMTIgMTd6IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNiAxNHYuNSIgfV0sCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNNC40MiAxMS4yNDdBMTMuMTUyIDEzLjE1MiAwIDAgMCA0IDE0LjU1NkM0IDE4LjcyOCA3LjU4MiAyMSAxMiAyMXM4LTIuMjcyIDgtNi40NDRhMTEuNzAyIDExLjcwMiAwIDAgMC0uNDkzLTMuMzA5IgogICAgICB9CiAgICBdLAogICAgWyJwYXRoIiwgeyBkOiAiTTggMTR2LjUiIH1dLAogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTguNSA4LjVjLS4zODQgMS4wNS0xLjA4MyAyLjAyOC0yLjM0NCAyLjUtMS45MzEuNzIyLTMuNTc2LS4yOTctMy42NTYtMS0uMTEzLS45OTQgMS4xNzctNi41MyA0LTcgMS45MjMtLjMyMSAzLjY1MS44NDUgMy42NTEgMi4yMzVBNy40OTcgNy40OTcgMCAwIDEgMTQgNS4yNzdjMC0xLjM5IDEuODQ0LTIuNTk4IDMuNzY3LTIuMjc3IDIuODIzLjQ3IDQuMTEzIDYuMDA2IDQgNy0uMDguNzAzLTEuNzI1IDEuNzIyLTMuNjU2IDEtMS4yNjEtLjQ3Mi0xLjg1NS0xLjQ1LTIuMjM5LTIuNSIKICAgICAgfQogICAgXQogIF07CgogIGNvbnN0IERvbGxhclNpZ24gPSBbCiAgICBbImxpbmUiLCB7IHgxOiAiMTIiLCB4MjogIjEyIiwgeTE6ICIyIiwgeTI6ICIyMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTcgNUg5LjVhMy41IDMuNSAwIDAgMCAwIDdoNWEzLjUgMy41IDAgMCAxIDAgN0g2IiB9XQogIF07CgogIGNvbnN0IERvbnV0ID0gWwogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTIwLjUgMTBhMi41IDIuNSAwIDAgMS0yLjQtM0gxOGEyLjk1IDIuOTUgMCAwIDEtMi42LTQuNCAxMCAxMCAwIDEgMCA2LjMgNy4xYy0uMy4yLS44LjMtMS4yLjMiCiAgICAgIH0KICAgIF0sCiAgICBbImNpcmNsZSIsIHsgY3g6ICIxMiIsIGN5OiAiMTIiLCByOiAiMyIgfV0KICBdOwoKICBjb25zdCBEb29yQ2xvc2VkTG9ja2VkID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTEwIDEyaC4wMSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTggOVY2YTIgMiAwIDAgMC0yLTJIOGEyIDIgMCAwIDAtMiAydjE0IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yIDIwaDgiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIwIDE3di0yYTIgMiAwIDEgMC00IDB2MiIgfV0sCiAgICBbInJlY3QiLCB7IHg6ICIxNCIsIHk6ICIxNyIsIHdpZHRoOiAiOCIsIGhlaWdodDogIjUiLCByeDogIjEiIH1dCiAgXTsKCiAgY29uc3QgRG9vckNsb3NlZCA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xMCAxMmguMDEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE4IDIwVjZhMiAyIDAgMCAwLTItMkg4YTIgMiAwIDAgMC0yIDJ2MTQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIgMjBoMjAiIH1dCiAgXTsKCiAgY29uc3QgRG9vck9wZW4gPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTEgMjBIMiIgfV0sCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMTEgNC41NjJ2MTYuMTU3YTEgMSAwIDAgMCAxLjI0Mi45N0wxOSAyMFY1LjU2MmEyIDIgMCAwIDAtMS41MTUtMS45NGwtNC0xQTIgMiAwIDAgMCAxMSA0LjU2MXoiCiAgICAgIH0KICAgIF0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTEgNEg4YTIgMiAwIDAgMC0yIDJ2MTQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE0IDEyaC4wMSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMjIgMjBoLTMiIH1dCiAgXTsKCiAgY29uc3QgRG90ID0gW1siY2lyY2xlIiwgeyBjeDogIjEyIiwgY3k6ICIxMiIsIHI6ICIxIiB9XV07CgogIGNvbnN0IERyYWZ0aW5nQ29tcGFzcyA9IFsKICAgIFsicGF0aCIsIHsgZDogIm0xMi45OSA2Ljc0IDEuOTMgMy40NCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTkuMTM2IDEyYTEwIDEwIDAgMCAxLTE0LjI3MSAwIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0yMSAyMS0yLjE2LTMuODQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTMgMjEgOC4wMi0xNC4yNiIgfV0sCiAgICBbImNpcmNsZSIsIHsgY3g6ICIxMiIsIGN5OiAiNSIsIHI6ICIyIiB9XQogIF07CgogIGNvbnN0IERvd25sb2FkID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDE1VjMiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIxIDE1djRhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJ2LTQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTcgMTAgNSA1IDUtNSIgfV0KICBdOwoKICBjb25zdCBEcmFtYSA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xMCAxMWguMDEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE0IDZoLjAxIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xOCA2aC4wMSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNi41IDEzLjFoLjAxIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yMiA1YzAgOS00IDEyLTYgMTJzLTYtMy02LTEyYzAtMiAyLTMgNi0zczYgMSA2IDMiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE3LjQgOS45Yy0uOC44LTIgLjgtMi44IDAiIH1dLAogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTEwLjEgNy4xQzkgNy4yIDcuNyA3LjcgNiA4LjZjLTMuNSAyLTQuNyAzLjktMy43IDUuNiA0LjUgNy44IDkuNSA4LjQgMTEuMiA3LjQuOS0uNSAxLjktMi4xIDEuOS00LjciCiAgICAgIH0KICAgIF0sCiAgICBbInBhdGgiLCB7IGQ6ICJNOS4xIDE2LjVjLjMtMS4xIDEuNC0xLjcgMi40LTEuNCIgfV0KICBdOwoKICBjb25zdCBEcmlsbCA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xMCAxOGExIDEgMCAwIDEgMSAxdjJhMSAxIDAgMCAxLTEgMUg1YTMgMyAwIDAgMS0zLTMgMSAxIDAgMCAxIDEtMXoiIH1dLAogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTEzIDEwSDRhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoOWExIDEgMCAwIDEgMSAxdjZhMSAxIDAgMCAxLTEgMWwtLjgxIDMuMjQyYTEgMSAwIDAgMS0uOTcuNzU4SDgiCiAgICAgIH0KICAgIF0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTQgNGgzYTEgMSAwIDAgMSAxIDF2MmExIDEgMCAwIDEtMSAxaC0zIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xOCA2aDQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTUgMTAtMiA4IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm03IDE4IDItOCIgfV0KICBdOwoKICBjb25zdCBEcm9uZSA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xMCAxMCA3IDciIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTEwIDE0LTMgMyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMTQgMTAgMy0zIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0xNCAxNCAzIDMiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE0LjIwNSA0LjEzOWE0IDQgMCAxIDEgNS40MzkgNS44NjMiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE5LjYzNyAxNGE0IDQgMCAxIDEtNS40MzIgNS44NjgiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTQuMzY3IDEwYTQgNCAwIDEgMSA1LjQzOC01Ljg2MiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNOS43OTUgMTkuODYyYTQgNCAwIDEgMS01LjQyOS01Ljg3MyIgfV0sCiAgICBbInJlY3QiLCB7IHg6ICIxMCIsIHk6ICI4Iiwgd2lkdGg6ICI0IiwgaGVpZ2h0OiAiOCIsIHJ4OiAiMSIgfV0KICBdOwoKICBjb25zdCBEcm9wbGV0T2ZmID0gWwogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTE4LjcxNSAxMy4xODZDMTguMjkgMTEuODU4IDE3LjM4NCAxMC42MDcgMTYgOS41Yy0yLTEuNi0zLjUtNC00LTYuNWExMC43IDEwLjcgMCAwIDEtLjg4NCAyLjU4NiIKICAgICAgfQogICAgXSwKICAgIFsicGF0aCIsIHsgZDogIm0yIDIgMjAgMjAiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTguNzk1IDguNzk3QTExIDExIDAgMCAxIDggOS41QzYgMTEuMSA1IDEzIDUgMTVhNyA3IDAgMCAwIDEzLjIyMiAzLjIwOCIgfV0KICBdOwoKICBjb25zdCBEcm9wbGV0ID0gWwogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTEyIDIyYTcgNyAwIDAgMCA3LTdjMC0yLTEtMy45LTMtNS41cy0zLjUtNC00LTYuNWMtLjUgMi41LTIgNC45LTQgNi41QzYgMTEuMSA1IDEzIDUgMTVhNyA3IDAgMCAwIDcgN3oiCiAgICAgIH0KICAgIF0KICBdOwoKICBjb25zdCBEcm9wbGV0cyA9IFsKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk03IDE2LjNjMi4yIDAgNC0xLjgzIDQtNC4wNSAwLTEuMTYtLjU3LTIuMjYtMS43MS0zLjE5UzcuMjkgNi43NSA3IDUuM2MtLjI5IDEuNDUtMS4xNCAyLjg0LTIuMjkgMy43NlMzIDExLjEgMyAxMi4yNWMwIDIuMjIgMS44IDQuMDUgNCA0LjA1eiIKICAgICAgfQogICAgXSwKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk0xMi41NiA2LjZBMTAuOTcgMTAuOTcgMCAwIDAgMTQgMy4wMmMuNSAyLjUgMiA0LjkgNCA2LjVzMyAzLjUgMyA1LjVhNi45OCA2Ljk4IDAgMCAxLTExLjkxIDQuOTciCiAgICAgIH0KICAgIF0KICBdOwoKICBjb25zdCBEcnVtID0gWwogICAgWyJwYXRoIiwgeyBkOiAibTIgMiA4IDgiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTIyIDItOCA4IiB9XSwKICAgIFsiZWxsaXBzZSIsIHsgY3g6ICIxMiIsIGN5OiAiOSIsIHJ4OiAiMTAiLCByeTogIjUiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTcgMTMuNHY3LjkiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDE0djgiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE3IDEzLjR2Ny45IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yIDl2OGExMCA1IDAgMCAwIDIwIDBWOSIgfV0KICBdOwoKICBjb25zdCBEcnVtc3RpY2sgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTUuNCAxNS42M2E3Ljg3NSA2IDEzNSAxIDEgNi4yMy02LjIzIDQuNSAzLjQzIDEzNSAwIDAtNi4yMyA2LjIzIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm04LjI5IDEyLjcxLTIuNiAyLjZhMi41IDIuNSAwIDEgMC0xLjY1IDQuNjVBMi41IDIuNSAwIDEgMCA4LjcgMTguM2wyLjU5LTIuNTkiIH1dCiAgXTsKCiAgY29uc3QgRHVtYmJlbGwgPSBbCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMTcuNTk2IDEyLjc2OGEyIDIgMCAxIDAgMi44MjktMi44MjlsLTEuNzY4LTEuNzY3YTIgMiAwIDAgMCAyLjgyOC0yLjgyOWwtMi44MjgtMi44MjhhMiAyIDAgMCAwLTIuODI5IDIuODI4bC0xLjc2Ny0xLjc2OGEyIDIgMCAxIDAtMi44MjkgMi44Mjl6IgogICAgICB9CiAgICBdLAogICAgWyJwYXRoIiwgeyBkOiAibTIuNSAyMS41IDEuNC0xLjQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTIwLjEgMy45IDEuNC0xLjQiIH1dLAogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTUuMzQzIDIxLjQ4NWEyIDIgMCAxIDAgMi44MjktMi44MjhsMS43NjcgMS43NjhhMiAyIDAgMSAwIDIuODI5LTIuODI5bC02LjM2NC02LjM2NGEyIDIgMCAxIDAtMi44MjkgMi44MjlsMS43NjggMS43NjdhMiAyIDAgMCAwLTIuODI4IDIuODI5eiIKICAgICAgfQogICAgXSwKICAgIFsicGF0aCIsIHsgZDogIm05LjYgMTQuNCA0LjgtNC44IiB9XQogIF07CgogIGNvbnN0IEVhck9mZiA9IFsKICAgIFsicGF0aCIsIHsgZDogIk02IDE4LjVhMy41IDMuNSAwIDEgMCA3IDBjMC0xLjU3LjkyLTIuNTIgMi4wNC0zLjQ2IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk02IDguNWMwLS43NS4xMy0xLjQ3LjM2LTIuMTQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTguOCAzLjE1QTYuNSA2LjUgMCAwIDEgMTkgOC41YzAgMS42My0uNDQgMi44MS0xLjA5IDMuNzYiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTEyLjUgNkEyLjUgMi41IDAgMCAxIDE1IDguNU0xMCAxM2EyIDIgMCAwIDAgMS44Mi0xLjE4IiB9XSwKICAgIFsibGluZSIsIHsgeDE6ICIyIiwgeDI6ICIyMiIsIHkxOiAiMiIsIHkyOiAiMjIiIH1dCiAgXTsKCiAgY29uc3QgRWFyID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTYgOC41YTYuNSA2LjUgMCAxIDEgMTMgMGMwIDYtNiA2LTYgMTBhMy41IDMuNSAwIDEgMS03IDAiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE1IDguNWEyLjUgMi41IDAgMCAwLTUgMHYxYTIgMiAwIDEgMSAwIDQiIH1dCiAgXTsKCiAgY29uc3QgRWFydGggPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMjEuNTQgMTVIMTdhMiAyIDAgMCAwLTIgMnY0LjU0IiB9XSwKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7IGQ6ICJNNyAzLjM0VjVhMyAzIDAgMCAwIDMgM2EyIDIgMCAwIDEgMiAyYzAgMS4xLjkgMiAyIDJhMiAyIDAgMCAwIDItMmMwLTEuMS45LTIgMi0yaDMuMTciIH0KICAgIF0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTEgMjEuOTVWMThhMiAyIDAgMCAwLTItMmEyIDIgMCAwIDEtMi0ydi0xYTIgMiAwIDAgMC0yLTJIMi4wNSIgfV0sCiAgICBbImNpcmNsZSIsIHsgY3g6ICIxMiIsIGN5OiAiMTIiLCByOiAiMTAiIH1dCiAgXTsKCiAgY29uc3QgRWFydGhMb2NrID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTcgMy4zNFY1YTMgMyAwIDAgMCAzIDMiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTExIDIxLjk1VjE4YTIgMiAwIDAgMC0yLTIgMiAyIDAgMCAxLTItMnYtMWEyIDIgMCAwIDAtMi0ySDIuMDUiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIxLjU0IDE1SDE3YTIgMiAwIDAgMC0yIDJ2NC41NCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgMmExMCAxMCAwIDEgMCA5LjU0IDEzIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yMCA2VjRhMiAyIDAgMSAwLTQgMHYyIiB9XSwKICAgIFsicmVjdCIsIHsgd2lkdGg6ICI4IiwgaGVpZ2h0OiAiNSIsIHg6ICIxNCIsIHk6ICI2Iiwgcng6ICIxIiB9XQogIF07CgogIGNvbnN0IEVjbGlwc2UgPSBbCiAgICBbImNpcmNsZSIsIHsgY3g6ICIxMiIsIGN5OiAiMTIiLCByOiAiMTAiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDJhNyA3IDAgMSAwIDEwIDEwIiB9XQogIF07CgogIGNvbnN0IEVnZ09mZiA9IFsKICAgIFsicGF0aCIsIHsgZDogIm0yIDIgMjAgMjAiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIwIDE0LjM0N1YxNGMwLTYtNC0xMi04LTEyLTEuMDc4IDAtMi4xNTcuNDM2LTMuMTU3IDEuMTkiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTYuMjA2IDYuMjFDNC44NzEgOC40IDQgMTEuMiA0IDE0YTggOCAwIDAgMCAxNC41NjggNC41NjgiIH1dCiAgXTsKCiAgY29uc3QgRWdnRnJpZWQgPSBbCiAgICBbImNpcmNsZSIsIHsgY3g6ICIxMS41IiwgY3k6ICIxMi41IiwgcjogIjMuNSIgfV0sCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMyA4YzAtMy41IDIuNS02IDYuNS02IDUgMCA0LjgzIDMgNy41IDVzNSAyIDUgNmMwIDQuNS0yLjUgNi41LTcgNi41LTIuNSAwLTIuNSAyLjUtNiAyLjVzLTctMi03LTUuNWMwLTMgMS41LTMgMS41LTVDMy41IDEwIDMgOSAzIDhaIgogICAgICB9CiAgICBdCiAgXTsKCiAgY29uc3QgRWdnID0gW1sicGF0aCIsIHsgZDogIk0xMiAyQzggMiA0IDggNCAxNGE4IDggMCAwIDAgMTYgMGMwLTYtNC0xMi04LTEyIiB9XV07CgogIGNvbnN0IEVsbGlwc2UgPSBbWyJlbGxpcHNlIiwgeyBjeDogIjEyIiwgY3k6ICIxMiIsIHJ4OiAiMTAiLCByeTogIjYiIH1dXTsKCiAgY29uc3QgRWxsaXBzaXNWZXJ0aWNhbCA9IFsKICAgIFsiY2lyY2xlIiwgeyBjeDogIjEyIiwgY3k6ICIxMiIsIHI6ICIxIiB9XSwKICAgIFsiY2lyY2xlIiwgeyBjeDogIjEyIiwgY3k6ICI1IiwgcjogIjEiIH1dLAogICAgWyJjaXJjbGUiLCB7IGN4OiAiMTIiLCBjeTogIjE5IiwgcjogIjEiIH1dCiAgXTsKCiAgY29uc3QgRWxsaXBzaXMgPSBbCiAgICBbImNpcmNsZSIsIHsgY3g6ICIxMiIsIGN5OiAiMTIiLCByOiAiMSIgfV0sCiAgICBbImNpcmNsZSIsIHsgY3g6ICIxOSIsIGN5OiAiMTIiLCByOiAiMSIgfV0sCiAgICBbImNpcmNsZSIsIHsgY3g6ICI1IiwgY3k6ICIxMiIsIHI6ICIxIiB9XQogIF07CgogIGNvbnN0IEVxdWFsQXBwcm94aW1hdGVseSA9IFsKICAgIFsicGF0aCIsIHsgZDogIk01IDE1YTYuNSA2LjUgMCAwIDEgNyAwIDYuNSA2LjUgMCAwIDAgNyAwIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk01IDlhNi41IDYuNSAwIDAgMSA3IDAgNi41IDYuNSAwIDAgMCA3IDAiIH1dCiAgXTsKCiAgY29uc3QgRXF1YWxOb3QgPSBbCiAgICBbImxpbmUiLCB7IHgxOiAiNSIsIHgyOiAiMTkiLCB5MTogIjkiLCB5MjogIjkiIH1dLAogICAgWyJsaW5lIiwgeyB4MTogIjUiLCB4MjogIjE5IiwgeTE6ICIxNSIsIHkyOiAiMTUiIH1dLAogICAgWyJsaW5lIiwgeyB4MTogIjE5IiwgeDI6ICI1IiwgeTE6ICI1IiwgeTI6ICIxOSIgfV0KICBdOwoKICBjb25zdCBFcXVhbCA9IFsKICAgIFsibGluZSIsIHsgeDE6ICI1IiwgeDI6ICIxOSIsIHkxOiAiOSIsIHkyOiAiOSIgfV0sCiAgICBbImxpbmUiLCB7IHgxOiAiNSIsIHgyOiAiMTkiLCB5MTogIjE1IiwgeTI6ICIxNSIgfV0KICBdOwoKICBjb25zdCBFcmFzZXIgPSBbCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMjEgMjFIOGEyIDIgMCAwIDEtMS40Mi0uNTg3bC0zLjk5NC0zLjk5OWEyIDIgMCAwIDEgMC0yLjgyOGwxMC0xMGEyIDIgMCAwIDEgMi44MjkgMGw1Ljk5OSA2YTIgMiAwIDAgMSAwIDIuODI4TDEyLjgzNCAyMSIKICAgICAgfQogICAgXSwKICAgIFsicGF0aCIsIHsgZDogIm01LjA4MiAxMS4wOSA4LjgyOCA4LjgyOCIgfV0KICBdOwoKICBjb25zdCBFdGhlcm5ldFBvcnQgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTAgOHYxIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNCA4djEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE4IDh2MSIgfV0sCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMTkgMTdhMiAyIDAgMDAtMS43NjUgMS4wNTlsLS40Ny44ODJBMiAyIDAgMDExNSAyMEg5YTIgMiAwIDAxLTEuNzY1LTEuMDU5bC0uNDctLjg4MkEyIDIgMCAwMDUgMTdINGEyIDIgMCAwMS0yLTJWNmEyIDIgMCAwMTItMmgxNmEyIDIgMCAwMTIgMnY5YTIgMiAwIDAxLTIgMnoiCiAgICAgIH0KICAgIF0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNiA4djEiIH1dCiAgXTsKCiAgY29uc3QgRXVybyA9IFsKICAgIFsicGF0aCIsIHsgZDogIk00IDEwaDEyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk00IDE0aDkiIH1dLAogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsgZDogIk0xOSA2YTcuNyA3LjcgMCAwIDAtNS4yLTJBNy45IDcuOSAwIDAgMCA2IDEyYzAgNC40IDMuNSA4IDcuOCA4IDIgMCAzLjgtLjggNS4yLTIiIH0KICAgIF0KICBdOwoKICBjb25zdCBFeHBhbmQgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJtMTUgMTUgNiA2IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0xNSA5IDYtNiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMjEgMTZ2NWgtNSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMjEgOFYzaC01IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0zIDE2djVoNSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMyAyMSA2LTYiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTMgOFYzaDUiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTkgOSAzIDMiIH1dCiAgXTsKCiAgY29uc3QgRXZDaGFyZ2VyID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTE0IDEzaDJhMiAyIDAgMCAxIDIgMnYyYTIgMiAwIDAgMCA0IDB2LTYuOTk4YTIgMiAwIDAgMC0uNTktMS40MkwxOCA1IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNCAyMVY1YTIgMiAwIDAgMC0yLTJINWEyIDIgMCAwIDAtMiAydjE2IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yIDIxaDEzIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0zIDdoMTEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTkgMTEtMiAzaDNsLTIgMyIgfV0KICBdOwoKICBjb25zdCBFeHRlcm5hbExpbmsgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTUgM2g2djYiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTEwIDE0IDIxIDMiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE4IDEzdjZhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJWOGEyIDIgMCAwIDEgMi0yaDYiIH1dCiAgXTsKCiAgY29uc3QgRXllQ2xvc2VkID0gWwogICAgWyJwYXRoIiwgeyBkOiAibTE1IDE4LS43MjItMy4yNSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMiA4YTEwLjY0NSAxMC42NDUgMCAwIDAgMjAgMCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMjAgMTUtMS43MjYtMi4wNSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtNCAxNSAxLjcyNi0yLjA1IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm05IDE4IC43MjItMy4yNSIgfV0KICBdOwoKICBjb25zdCBFeWVEYXNoZWQgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTMuMDU0IDE4Ljk0NmExMSAxMSAwIDAgMS0yLjExIDAiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTEzLjA1NCA1LjA1NGExMSAxMSAwIDAgMC0yLjExLS4wMDEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE3LjA3MiA2LjI3NGExMSAxMSAwIDAgMSAxLjc1MyAxLjE3MyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTguODI1IDE2LjU1MmExMSAxMSAwIDAgMS0xLjc1MyAxLjE3NCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMi41MTQgMTMuMzAzYTExIDExIDAgMCAxLS40NTItLjk1NCAxIDEgMCAwIDEgMC0uNjk3IDExIDExIDAgMCAxIC40NS0uOTU1IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yMS40ODUgMTAuNjk3YTExIDExIDAgMCAxIC40NTMuOTU1IDEgMSAwIDAgMSAwIC42OTcgMTEgMTEgMCAwIDEtLjQ1My45NTQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTUuMTczIDcuNDQ4YTExIDExIDAgMCAxIDEuNzUzLTEuMTc0IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk02LjkyNiAxNy43MjZhMTEgMTEgMCAwIDEtMS43NTMtMS4xNzQiIH1dLAogICAgWyJjaXJjbGUiLCB7IGN4OiAiMTIiLCBjeTogIjEyIiwgcjogIjMiIH1dCiAgXTsKCiAgY29uc3QgRXllT2ZmID0gWwogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTEwLjczMyA1LjA3NmExMC43NDQgMTAuNzQ0IDAgMCAxIDExLjIwNSA2LjU3NSAxIDEgMCAwIDEgMCAuNjk2IDEwLjc0NyAxMC43NDcgMCAwIDEtMS40NDQgMi40OSIKICAgICAgfQogICAgXSwKICAgIFsicGF0aCIsIHsgZDogIk0xNC4wODQgMTQuMTU4YTMgMyAwIDAgMS00LjI0Mi00LjI0MiIgfV0sCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMTcuNDc5IDE3LjQ5OWExMC43NSAxMC43NSAwIDAgMS0xNS40MTctNS4xNTEgMSAxIDAgMCAxIDAtLjY5NiAxMC43NSAxMC43NSAwIDAgMSA0LjQ0Ni01LjE0MyIKICAgICAgfQogICAgXSwKICAgIFsicGF0aCIsIHsgZDogIm0yIDIgMjAgMjAiIH1dCiAgXTsKCiAgY29uc3QgRXllID0gWwogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTIuMDYyIDEyLjM0OGExIDEgMCAwIDEgMC0uNjk2IDEwLjc1IDEwLjc1IDAgMCAxIDE5Ljg3NiAwIDEgMSAwIDAgMSAwIC42OTYgMTAuNzUgMTAuNzUgMCAwIDEtMTkuODc2IDAiCiAgICAgIH0KICAgIF0sCiAgICBbImNpcmNsZSIsIHsgY3g6ICIxMiIsIGN5OiAiMTIiLCByOiAiMyIgfV0KICBdOwoKICBjb25zdCBGYWN0b3J5ID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDE2aC4wMSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTYgMTZoLjAxIiB9XSwKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk0zIDE5YTIgMiAwIDAgMCAyIDJoMTRhMiAyIDAgMCAwIDItMlY4LjVhLjUuNSAwIDAgMC0uNzY5LS40MjJsLTQuNDYyIDIuODQ0QS41LjUgMCAwIDEgMTUgMTAuNXYtMmEuNS41IDAgMCAwLS43NjktLjQyMkw5Ljc3IDEwLjkyMkEuNS41IDAgMCAxIDkgMTAuNVY1YTIgMiAwIDAgMC0yLTJINWEyIDIgMCAwIDAtMiAyeiIKICAgICAgfQogICAgXSwKICAgIFsicGF0aCIsIHsgZDogIk04IDE2aC4wMSIgfV0KICBdOwoKICBjb25zdCBGYW4gPSBbCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMTAuODI3IDE2LjM3OWE2LjA4MiA2LjA4MiAwIDAgMS04LjYxOC03LjAwMmw1LjQxMiAxLjQ1YTYuMDgyIDYuMDgyIDAgMCAxIDcuMDAyLTguNjE4bC0xLjQ1IDUuNDEyYTYuMDgyIDYuMDgyIDAgMCAxIDguNjE4IDcuMDAybC01LjQxMi0xLjQ1YTYuMDgyIDYuMDgyIDAgMCAxLTcuMDAyIDguNjE4bDEuNDUtNS40MTJaIgogICAgICB9CiAgICBdLAogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDEydi4wMSIgfV0KICBdOwoKICBjb25zdCBGYXN0Rm9yd2FyZCA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xMiA2YTIgMiAwIDAgMSAzLjQxNC0xLjQxNGw2IDZhMiAyIDAgMCAxIDAgMi44MjhsLTYgNkEyIDIgMCAwIDEgMTIgMTh6IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yIDZhMiAyIDAgMCAxIDMuNDE0LTEuNDE0bDYgNmEyIDIgMCAwIDEgMCAyLjgyOGwtNiA2QTIgMiAwIDAgMSAyIDE4eiIgfV0KICBdOwoKICBjb25zdCBGZWF0aGVyID0gWwogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTE0LjA4NiAxOC40MTJBMiAyIDAgMDExMi42NyAxOUg1di03LjY3MmEyIDIgMCAwMS41ODYtMS40MTRMMTEuNzUgMy43NWE2IDYgMCAxMTguNDkgOC40OXoiCiAgICAgIH0KICAgIF0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTYgOCAyIDIyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNy40ODggMTVIOSIgfV0KICBdOwoKICBjb25zdCBGZW5jZSA9IFsKICAgIFsicGF0aCIsIHsgZDogIk00IDMgMiA1djE1YzAgLjYuNCAxIDEgMWgyYy42IDAgMS0uNCAxLTFWNVoiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTYgOGg0IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk02IDE4aDQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTEyIDMtMiAydjE1YzAgLjYuNCAxIDEgMWgyYy42IDAgMS0uNCAxLTFWNVoiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE0IDhoNCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTQgMThoNCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMjAgMy0yIDJ2MTVjMCAuNi40IDEgMSAxaDJjLjYgMCAxLS40IDEtMVY1WiIgfV0KICBdOwoKICBjb25zdCBGZXJyaXNXaGVlbCA9IFsKICAgIFsiY2lyY2xlIiwgeyBjeDogIjEyIiwgY3k6ICIxMiIsIHI6ICIyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xMiAydjQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTYuOCAxNS0zLjUgMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMjAuNyA3LTMuNSAyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk02LjggOSAzLjMgNyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMjAuNyAxNy0zLjUtMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtOSAyMiAzLTggMyA4IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk04IDIyaDgiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE4IDE4LjdhOSA5IDAgMSAwLTEyIDAiIH1dCiAgXTsKCiAgY29uc3QgRmlsZUFyY2hpdmUgPSBbCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMTMuNjU5IDIySDE4YTIgMiAwIDAgMCAyLTJWOGEyLjQgMi40IDAgMCAwLS43MDYtMS43MDZsLTMuNTg4LTMuNTg4QTIuNCAyLjQgMCAwIDAgMTQgMkg2YTIgMiAwIDAgMC0yIDJ2MTEuNSIKICAgICAgfQogICAgXSwKICAgIFsicGF0aCIsIHsgZDogIk0xNCAydjVhMSAxIDAgMCAwIDEgMWg1IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk04IDEydi0xIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk04IDE4di0yIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk04IDdWNiIgfV0sCiAgICBbImNpcmNsZSIsIHsgY3g6ICI4IiwgY3k6ICIyMCIsIHI6ICIyIiB9XQogIF07CgogIGNvbnN0IEZpbGVBeGlzM2QgPSBbCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiIKICAgICAgfQogICAgXSwKICAgIFsicGF0aCIsIHsgZDogIk0xNCAydjVhMSAxIDAgMCAwIDEgMWg1IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm04IDE4IDQtNCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNOCAxMHY4aDgiIH1dCiAgXTsKCiAgY29uc3QgRmlsZUJhZGdlID0gWwogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTEzIDIyaDVhMiAyIDAgMCAwIDItMlY4YTIuNCAyLjQgMCAwIDAtLjcwNi0xLjcwNmwtMy41ODgtMy41ODhBMi40IDIuNCAwIDAgMCAxNCAySDZhMiAyIDAgMCAwLTIgMnYzLjMiCiAgICAgIH0KICAgIF0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSIgfV0sCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJtNy42OSAxNi40NzkgMS4yOSA0Ljg4YS41LjUgMCAwIDEtLjY5OC41OTFsLTEuODQzLS44NDlhMSAxIDAgMCAwLS44NzkuMDAxbC0xLjg0Ni44NWEuNS41IDAgMCAxLS42OTItLjU5M2wxLjI5LTQuODgiCiAgICAgIH0KICAgIF0sCiAgICBbImNpcmNsZSIsIHsgY3g6ICI2IiwgY3k6ICIxNCIsIHI6ICIzIiB9XQogIF07CgogIGNvbnN0IEZpbGVCb3ggPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTQgMnY1YTEgMSAwIDAwMSAxaDUiIH1dLAogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTE0LjY5MiAyMkgxOGEyIDIgMCAwMDItMlY4YTIuNCAyLjQgMCAwMC0uNzA2LTEuNzA2bC0zLjU4OC0zLjU4OEEyLjQgMi40IDAgMDAxNCAySDZhMiAyIDAgMDAtMiAydjMuODA0IgogICAgICB9CiAgICBdLAogICAgWyJwYXRoIiwgeyBkOiAiTTIuMjY0IDEzLjc1MiA3IDE2LjVsNC43MzctMi43NDgiIH1dLAogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTIuOTk1IDEzLjAxNEEyIDIgMCAwMDIgMTQuNzQ0djMuNTE2YTIgMiAwIDAwLjk5NiAxLjczbDMgMS43NGEyIDIgMCAwMDIuMDA4IDBsMy0xLjc0QTIgMiAwIDAwMTIgMTguMjZ2LTMuNTE3YTIgMiAwIDAwLS45OTUtMS43M2wtMy0xLjc0MmEyIDIgMCAwMC0xLjg5Mi0uMDY0eiIKICAgICAgfQogICAgXSwKICAgIFsicGF0aCIsIHsgZDogIk03IDE2LjVWMjIiIH1dCiAgXTsKCiAgY29uc3QgRmlsZUJyYWNlc0Nvcm5lciA9IFsKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk0xNCAyMmg0YTIgMiAwIDAgMCAyLTJWOGEyLjQgMi40IDAgMCAwLS43MDYtMS43MDZsLTMuNTg4LTMuNTg4QTIuNCAyLjQgMCAwIDAgMTQgMkg2YTIgMiAwIDAgMC0yIDJ2NiIKICAgICAgfQogICAgXSwKICAgIFsicGF0aCIsIHsgZDogIk0xNCAydjVhMSAxIDAgMCAwIDEgMWg1IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk01IDE0YTEgMSAwIDAgMC0xIDF2MmExIDEgMCAwIDEtMSAxIDEgMSAwIDAgMSAxIDF2MmExIDEgMCAwIDAgMSAxIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk05IDIyYTEgMSAwIDAgMCAxLTF2LTJhMSAxIDAgMCAxIDEtMSAxIDEgMCAwIDEtMS0xdi0yYTEgMSAwIDAgMC0xLTEiIH1dCiAgXTsKCiAgY29uc3QgRmlsZUJyYWNlcyA9IFsKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk02IDIyYTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNC43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djEyYTIgMiAwIDAgMS0yIDJ6IgogICAgICB9CiAgICBdLAogICAgWyJwYXRoIiwgeyBkOiAiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTEwIDEyYTEgMSAwIDAgMC0xIDF2MWExIDEgMCAwIDEtMSAxIDEgMSAwIDAgMSAxIDF2MWExIDEgMCAwIDAgMSAxIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNCAxOGExIDEgMCAwIDAgMS0xdi0xYTEgMSAwIDAgMSAxLTEgMSAxIDAgMCAxLTEtMXYtMWExIDEgMCAwIDAtMS0xIiB9XQogIF07CgogIGNvbnN0IEZpbGVDaGFydENvbHVtbkluY3JlYXNpbmcgPSBbCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiIKICAgICAgfQogICAgXSwKICAgIFsicGF0aCIsIHsgZDogIk0xNCAydjVhMSAxIDAgMCAwIDEgMWg1IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk04IDE4di0yIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xMiAxOHYtNCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTYgMTh2LTYiIH1dCiAgXTsKCiAgY29uc3QgRmlsZUNoYXJ0Q29sdW1uID0gWwogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTYgMjJhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA0LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMnoiCiAgICAgIH0KICAgIF0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNOCAxOHYtMSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgMTh2LTYiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE2IDE4di0zIiB9XQogIF07CgogIGNvbnN0IEZpbGVDaGFydExpbmUgPSBbCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiIKICAgICAgfQogICAgXSwKICAgIFsicGF0aCIsIHsgZDogIk0xNCAydjVhMSAxIDAgMCAwIDEgMWg1IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0xNiAxMy0zLjUgMy41LTItMkw4IDE3IiB9XQogIF07CgogIGNvbnN0IEZpbGVDaGFydFBpZSA9IFsKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk0xNS45NDEgMjJIMThhMiAyIDAgMCAwIDItMlY4YTIuNCAyLjQgMCAwIDAtLjcwNi0xLjcwNGwtMy41ODgtMy41ODhBMi40IDIuNCAwIDAgMCAxNCAySDZhMiAyIDAgMCAwLTIgMnYzLjUxMiIKICAgICAgfQogICAgXSwKICAgIFsicGF0aCIsIHsgZDogIk0xNCAydjVhMSAxIDAgMCAwIDEgMWg1IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk00LjAxNyAxMS41MTJhNiA2IDAgMSAwIDguNDY2IDguNDc1IiB9XSwKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk05IDE2YTEgMSAwIDAgMS0xLTF2LTRjMC0uNTUyLjQ1LTEuMDA4Ljk5NS0uOTE3YTYgNiAwIDAgMSA0LjkyMiA0LjkyMmMuMDkxLjU0NC0uMzY1Ljk5NS0uOTE3Ljk5NXoiCiAgICAgIH0KICAgIF0KICBdOwoKICBjb25zdCBGaWxlQ2hlY2tDb3JuZXIgPSBbCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMTAuNSAyMkg2YTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNi43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djYiCiAgICAgIH0KICAgIF0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMTQgMjAgMiAyIDQtNCIgfV0KICBdOwoKICBjb25zdCBGaWxlQ2hlY2sgPSBbCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiIKICAgICAgfQogICAgXSwKICAgIFsicGF0aCIsIHsgZDogIk0xNCAydjVhMSAxIDAgMCAwIDEgMWg1IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm05IDE1IDIgMiA0LTQiIH1dCiAgXTsKCiAgY29uc3QgRmlsZUNsb2NrID0gWwogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTE2IDIyaDJhMiAyIDAgMCAwIDItMlY4YTIuNCAyLjQgMCAwIDAtLjcwNi0xLjcwNmwtMy41ODgtMy41ODhBMi40IDIuNCAwIDAgMCAxNCAySDZhMiAyIDAgMCAwLTIgMnYyLjg1IgogICAgICB9CiAgICBdLAogICAgWyJwYXRoIiwgeyBkOiAiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTggMTR2Mi4ybDEuNiAxIiB9XSwKICAgIFsiY2lyY2xlIiwgeyBjeDogIjgiLCBjeTogIjE2IiwgcjogIjYiIH1dCiAgXTsKCiAgY29uc3QgRmlsZUNvZGVDb3JuZXIgPSBbCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNNCAxMi4xNVY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA2LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMmgtMy4zNSIKICAgICAgfQogICAgXSwKICAgIFsicGF0aCIsIHsgZDogIk0xNCAydjVhMSAxIDAgMCAwIDEgMWg1IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm01IDE2LTMgMyAzIDMiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTkgMjIgMy0zLTMtMyIgfV0KICBdOwoKICBjb25zdCBGaWxlQ29kZSA9IFsKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk02IDIyYTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNC43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djEyYTIgMiAwIDAgMS0yIDJ6IgogICAgICB9CiAgICBdLAogICAgWyJwYXRoIiwgeyBkOiAiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTEwIDEyLjUgOCAxNWwyIDIuNSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMTQgMTIuNSAyIDIuNS0yIDIuNSIgfV0KICBdOwoKICBjb25zdCBGaWxlQ29nID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTE1IDhhMSAxIDAgMCAxLTEtMVYyYTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHoiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIwIDh2MTJhMiAyIDAgMCAxLTIgMmgtNC4xODIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTMuMzA1IDE5LjUzLjkyMy0uMzgyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk00IDEwLjU5MlY0YTIgMiAwIDAgMSAyLTJoOCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtNC4yMjggMTYuODUyLS45MjQtLjM4MyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtNS44NTIgMTUuMjI4LS4zODMtLjkyMyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtNS44NTIgMjAuNzcyLS4zODMuOTI0IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm04LjE0OCAxNS4yMjguMzgzLS45MjMiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTguNTMgMjEuNjk2LS4zODItLjkyNCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtOS43NzMgMTYuODUyLjkyMi0uMzgzIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm05Ljc3MyAxOS4xNDguOTIyLjM4MyIgfV0sCiAgICBbImNpcmNsZSIsIHsgY3g6ICI3IiwgY3k6ICIxOCIsIHI6ICIzIiB9XQogIF07CgogIGNvbnN0IEZpbGVEaWZmID0gWwogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTYgMjJhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA0LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMnoiCiAgICAgIH0KICAgIF0sCiAgICBbInBhdGgiLCB7IGQ6ICJNOSAxMGg2IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xMiAxM1Y3IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk05IDE3aDYiIH1dCiAgXTsKCiAgY29uc3QgRmlsZURpZ2l0ID0gWwogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTQgMTJWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNi43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djEyYTIgMiAwIDAgMS0yIDIiCiAgICAgIH0KICAgIF0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTAgMTZoMnY2IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xMCAyMmg0IiB9XSwKICAgIFsicmVjdCIsIHsgeDogIjIiLCB5OiAiMTYiLCB3aWR0aDogIjQiLCBoZWlnaHQ6ICI2Iiwgcng6ICIyIiB9XQogIF07CgogIGNvbnN0IEZpbGVEb3duID0gWwogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTYgMjJhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA0LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMnoiCiAgICAgIH0KICAgIF0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgMTh2LTYiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTkgMTUgMyAzIDMtMyIgfV0KICBdOwoKICBjb25zdCBGaWxlRXhjbGFtYXRpb25Qb2ludCA9IFsKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk02IDIyYTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNC43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djEyYTIgMiAwIDAgMS0yIDJ6IgogICAgICB9CiAgICBdLAogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDl2NCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgMTdoLjAxIiB9XQogIF07CgogIGNvbnN0IEZpbGVIZWFkcGhvbmUgPSBbCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNNCA2LjgzNVY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA2LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMmgtLjM0MyIKICAgICAgfQogICAgXSwKICAgIFsicGF0aCIsIHsgZDogIk0xNCAydjVhMSAxIDAgMCAwIDEgMWg1IiB9XSwKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7IGQ6ICJNMiAxOWEyIDIgMCAwIDEgNCAwdjFhMiAyIDAgMCAxLTQgMHYtNGE2IDYgMCAwIDEgMTIgMHY0YTIgMiAwIDAgMS00IDB2LTFhMiAyIDAgMCAxIDQgMCIgfQogICAgXQogIF07CgogIGNvbnN0IEZpbGVIZWFydCA9IFsKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk0xMyAyMmg1YTIgMiAwIDAgMCAyLTJWOGEyLjQgMi40IDAgMCAwLS43MDYtMS43MDZsLTMuNTg4LTMuNTg4QTIuNCAyLjQgMCAwIDAgMTQgMkg2YTIgMiAwIDAgMC0yIDJ2NyIKICAgICAgfQogICAgXSwKICAgIFsicGF0aCIsIHsgZDogIk0xNCAydjVhMSAxIDAgMCAwIDEgMWg1IiB9XSwKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk0zLjYyIDE4LjhBMi4yNSAyLjI1IDAgMSAxIDcgMTUuODM2YTIuMjUgMi4yNSAwIDEgMSAzLjM4IDIuOTY2bC0yLjYyNiAyLjg1NmExIDEgMCAwIDEtMS41MDcgMHoiCiAgICAgIH0KICAgIF0KICBdOwoKICBjb25zdCBGaWxlSW1hZ2UgPSBbCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiIKICAgICAgfQogICAgXSwKICAgIFsicGF0aCIsIHsgZDogIk0xNCAydjVhMSAxIDAgMCAwIDEgMWg1IiB9XSwKICAgIFsiY2lyY2xlIiwgeyBjeDogIjEwIiwgY3k6ICIxMiIsIHI6ICIyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0yMCAxNy0xLjI5Ni0xLjI5NmEyLjQxIDIuNDEgMCAwIDAtMy40MDggMEw5IDIyIiB9XQogIF07CgogIGNvbnN0IEZpbGVJbnB1dCA9IFsKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk00IDExVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDYuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAySDZhMiAyIDAgMCAxLTItMnYtMSIKICAgICAgfQogICAgXSwKICAgIFsicGF0aCIsIHsgZDogIk0xNCAydjVhMSAxIDAgMCAwIDEgMWg1IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yIDE1aDEwIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm05IDE4IDMtMy0zLTMiIH1dCiAgXTsKCiAgY29uc3QgRmlsZUtleSA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xNCAydjVhMSAxIDAgMCAwIDEgMWg1IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk00IDEydjYiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTQgMTRoMiIgfV0sCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNOS42NSAyMkgxOGEyIDIgMCAwIDAgMi0yVjhhMi40IDIuNCAwIDAgMC0uNzA2LTEuNzA2bC0zLjU4OC0zLjU4OEEyLjQgMi40IDAgMCAwIDE0IDJINmEyIDIgMCAwIDAtMiAydjQiCiAgICAgIH0KICAgIF0sCiAgICBbImNpcmNsZSIsIHsgY3g6ICI0IiwgY3k6ICIyMCIsIHI6ICIyIiB9XQogIF07CgogIGNvbnN0IEZpbGVMb2NrID0gWwogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTQgOS44VjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDYuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyaC0zIgogICAgICB9CiAgICBdLAogICAgWyJwYXRoIiwgeyBkOiAiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTkgMTd2LTJhMiAyIDAgMCAwLTQgMHYyIiB9XSwKICAgIFsicmVjdCIsIHsgd2lkdGg6ICI4IiwgaGVpZ2h0OiAiNSIsIHg6ICIzIiwgeTogIjE3Iiwgcng6ICIxIiB9XQogIF07CgogIGNvbnN0IEZpbGVNaW51c0Nvcm5lciA9IFsKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk0yMCAxNFY4YTIuNCAyLjQgMCAwIDAtLjcwNi0xLjcwNmwtMy41ODgtMy41ODhBMi40IDIuNCAwIDAgMCAxNCAySDZhMiAyIDAgMCAwLTIgMnYxNmEyIDIgMCAwIDAgMiAyaDEyIgogICAgICB9CiAgICBdLAogICAgWyJwYXRoIiwgeyBkOiAiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE0IDE4aDYiIH1dCiAgXTsKCiAgY29uc3QgRmlsZU1pbnVzID0gWwogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTYgMjJhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA0LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMnoiCiAgICAgIH0KICAgIF0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNOSAxNWg2IiB9XQogIF07CgogIGNvbnN0IEZpbGVNdXNpYyA9IFsKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk0xMS42NSAyMkgxOGEyIDIgMCAwIDAgMi0yVjhhMi40IDIuNCAwIDAgMC0uNzA2LTEuNzA2bC0zLjU4OC0zLjU4OEEyLjQgMi40IDAgMCAwIDE0IDJINmEyIDIgMCAwIDAtMiAydjEwLjM1IgogICAgICB9CiAgICBdLAogICAgWyJwYXRoIiwgeyBkOiAiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTggMjB2LTdsMyAxLjQ3NCIgfV0sCiAgICBbImNpcmNsZSIsIHsgY3g6ICI2IiwgY3k6ICIyMCIsIHI6ICIyIiB9XQogIF07CgogIGNvbnN0IEZpbGVQZW5MaW5lID0gWwogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTE0LjM2NCAxMy42MzRhMiAyIDAgMCAwLS41MDYuODU0bC0uODM3IDIuODdhLjUuNSAwIDAgMCAuNjIuNjJsMi44Ny0uODM3YTIgMiAwIDAgMCAuODU0LS41MDZsNC4wMTMtNC4wMDlhMSAxIDAgMCAwLTMuMDA0LTMuMDA0eiIKICAgICAgfQogICAgXSwKICAgIFsicGF0aCIsIHsgZDogIk0xNC40ODcgNy44NThBMSAxIDAgMCAxIDE0IDdWMiIgfV0sCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMjAgMTkuNjQ1VjIwYTIgMiAwIDAgMS0yIDJINmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDIuNTE2IDIuNTE2IgogICAgICB9CiAgICBdLAogICAgWyJwYXRoIiwgeyBkOiAiTTggMThoMSIgfV0KICBdOwoKICBjb25zdCBGaWxlT3V0cHV0ID0gWwogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTQuMjI2IDIwLjkyNUEyIDIgMCAwIDAgNiAyMmgxMmEyIDIgMCAwIDAgMi0yVjhhMi40IDIuNCAwIDAgMC0uNzA2LTEuNzA2bC0zLjU4OC0zLjU4OEEyLjQgMi40IDAgMCAwIDE0IDJINmEyIDIgMCAwIDAtMiAydjMuMTI3IgogICAgICB9CiAgICBdLAogICAgWyJwYXRoIiwgeyBkOiAiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTUgMTEtMyAzIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm01IDE3LTMtM2gxMCIgfV0KICBdOwoKICBjb25zdCBGaWxlUGVuID0gWwogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTEyLjY1OSAyMkgxOGEyIDIgMCAwIDAgMi0yVjhhMi40IDIuNCAwIDAgMC0uNzA2LTEuNzA2bC0zLjU4OC0zLjU4OEEyLjQgMi40IDAgMCAwIDE0IDJINmEyIDIgMCAwIDAtMiAydjkuMzQiCiAgICAgIH0KICAgIF0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSIgfV0sCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMTAuMzc4IDEyLjYyMmExIDEgMCAwIDEgMyAzLjAwM0w4LjM2IDIwLjYzN2EyIDIgMCAwIDEtLjg1NC41MDZsLTIuODY3LjgzN2EuNS41IDAgMCAxLS42Mi0uNjJsLjgzNi0yLjg2OWEyIDIgMCAwIDEgLjUwNi0uODUzeiIKICAgICAgfQogICAgXQogIF07CgogIGNvbnN0IEZpbGVQbGF5ID0gWwogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTYgMjJhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA0LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMnoiCiAgICAgIH0KICAgIF0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSIgfV0sCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMTUuMDMzIDEzLjQ0YS42NDcuNjQ3IDAgMCAxIDAgMS4xMmwtNC4wNjUgMi4zNTJhLjY0NS42NDUgMCAwIDEtLjk2OC0uNTZ2LTQuNzA0YS42NDUuNjQ1IDAgMCAxIC45NjctLjU2eiIKICAgICAgfQogICAgXQogIF07CgogIGNvbnN0IEZpbGVQbHVzQ29ybmVyID0gWwogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTExLjM1IDIySDZhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA2LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2NS4zNSIKICAgICAgfQogICAgXSwKICAgIFsicGF0aCIsIHsgZDogIk0xNCAydjVhMSAxIDAgMCAwIDEgMWg1IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNCAxOWg2IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNyAxNnY2IiB9XQogIF07CgogIGNvbnN0IEZpbGVQbHVzID0gWwogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTYgMjJhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA0LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMnoiCiAgICAgIH0KICAgIF0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNOSAxNWg2IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xMiAxOHYtNiIgfV0KICBdOwoKICBjb25zdCBGaWxlUXVlc3Rpb25NYXJrID0gWwogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTYgMjJhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA0LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMnoiCiAgICAgIH0KICAgIF0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgMTdoLjAxIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk05LjEgOWEzIDMgMCAwIDEgNS44MiAxYzAgMi0zIDMtMyAzIiB9XQogIF07CgogIGNvbnN0IEZpbGVTY2FuID0gWwogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTIwIDEwVjhhMi40IDIuNCAwIDAgMC0uNzA2LTEuNzA0bC0zLjU4OC0zLjU4OEEyLjQgMi40IDAgMCAwIDE0IDJINmEyIDIgMCAwIDAtMiAydjE2YTIgMiAwIDAgMCAyIDJoNC4zNSIKICAgICAgfQogICAgXSwKICAgIFsicGF0aCIsIHsgZDogIk0xNCAydjVhMSAxIDAgMCAwIDEgMWg1IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNiAxNGEyIDIgMCAwIDAtMiAyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNiAyMmEyIDIgMCAwIDEtMi0yIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yMCAxNGEyIDIgMCAwIDEgMiAyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yMCAyMmEyIDIgMCAwIDAgMi0yIiB9XQogIF07CgogIGNvbnN0IEZpbGVTZWFyY2hDb3JuZXIgPSBbCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMTEuMSAyMkg2YTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNi43MDZsMy41ODkgMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djMuMjUiCiAgICAgIH0KICAgIF0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMjEgMjItMi44OC0yLjg4IiB9XSwKICAgIFsiY2lyY2xlIiwgeyBjeDogIjE2IiwgY3k6ICIxNyIsIHI6ICIzIiB9XQogIF07CgogIGNvbnN0IEZpbGVTZWFyY2ggPSBbCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiIKICAgICAgfQogICAgXSwKICAgIFsicGF0aCIsIHsgZDogIk0xNCAydjVhMSAxIDAgMCAwIDEgMWg1IiB9XSwKICAgIFsiY2lyY2xlIiwgeyBjeDogIjExLjUiLCBjeTogIjE0LjUiLCByOiAiMi41IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xMy4zIDE2LjMgMTUgMTgiIH1dCiAgXTsKCiAgY29uc3QgRmlsZVNsaWRlcnMgPSBbCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiIKICAgICAgfQogICAgXSwKICAgIFsicGF0aCIsIHsgZDogIk0xNCAydjVhMSAxIDAgMCAwIDEgMWg1IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk04IDEyaDgiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTEwIDExdjIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTggMTdoOCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTQgMTZ2MiIgfV0KICBdOwoKICBjb25zdCBGaWxlU2lnbmFsID0gWwogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTYgMjJhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA0LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMnoiCiAgICAgIH0KICAgIF0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNOCAxNWguMDEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTExLjUgMTMuNWEyLjUgMi41IDAgMCAxIDAgMyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTUgMTJhNSA1IDAgMCAxIDAgNiIgfV0KICBdOwoKICBjb25zdCBGaWxlU3ByZWFkc2hlZXQgPSBbCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiIKICAgICAgfQogICAgXSwKICAgIFsicGF0aCIsIHsgZDogIk0xNCAydjVhMSAxIDAgMCAwIDEgMWg1IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk04IDEzaDIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE0IDEzaDIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTggMTdoMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTQgMTdoMiIgfV0KICBdOwoKICBjb25zdCBGaWxlU3ltbGluayA9IFsKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk00IDExVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDYuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAySDZhMiAyIDAgMCAxLTItMnYtM2EyIDIgMCAwIDEgMi0yaDciCiAgICAgIH0KICAgIF0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMTAgMTggMy0zLTMtMyIgfV0KICBdOwoKICBjb25zdCBGaWxlVGVybWluYWwgPSBbCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiIKICAgICAgfQogICAgXSwKICAgIFsicGF0aCIsIHsgZDogIk0xNCAydjVhMSAxIDAgMCAwIDEgMWg1IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm04IDE2IDItMi0yLTIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDE4aDQiIH1dCiAgXTsKCiAgY29uc3QgRmlsZVN0YWNrID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTExIDIxYTEgMSAwIDAgMS0xIDFINGExIDEgMCAwIDEtMS0xdi04YTEgMSAwIDAgMSAxLTEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE2IDE2YTEgMSAwIDAgMS0xIDFIOWExIDEgMCAwIDEtMS0xVjhhMSAxIDAgMCAxIDEtMSIgfV0sCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMjEgNmEyIDIgMCAwIDAtLjU4Ni0xLjQxNGwtMi0yQTIgMiAwIDAgMCAxNyAyaC0zYTEgMSAwIDAgMC0xIDF2OGExIDEgMCAwIDAgMSAxaDZhMSAxIDAgMCAwIDEtMXoiCiAgICAgIH0KICAgIF0KICBdOwoKICBjb25zdCBGaWxlVGV4dCA9IFsKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk02IDIyYTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNC43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djEyYTIgMiAwIDAgMS0yIDJ6IgogICAgICB9CiAgICBdLAogICAgWyJwYXRoIiwgeyBkOiAiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTEwIDlIOCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTYgMTNIOCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTYgMTdIOCIgfV0KICBdOwoKICBjb25zdCBGaWxlVHlwZUNvcm5lciA9IFsKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk0xMiAyMmg2YTIgMiAwIDAgMCAyLTJWOGEyLjQgMi40IDAgMCAwLS43MDYtMS43MDZsLTMuNTg4LTMuNTg4QTIuNCAyLjQgMCAwIDAgMTQgMkg2YTIgMiAwIDAgMC0yIDJ2NiIKICAgICAgfQogICAgXSwKICAgIFsicGF0aCIsIHsgZDogIk0xNCAydjVhMSAxIDAgMCAwIDEgMWg1IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0zIDE2di0xLjVhLjUuNSAwIDAgMSAuNS0uNWg3YS41LjUgMCAwIDEgLjUuNVYxNiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNiAyMmgyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk03IDE0djgiIH1dCiAgXTsKCiAgY29uc3QgRmlsZVR5cGUgPSBbCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiIKICAgICAgfQogICAgXSwKICAgIFsicGF0aCIsIHsgZDogIk0xNCAydjVhMSAxIDAgMCAwIDEgMWg1IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xMSAxOGgyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xMiAxMnY2IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk05IDEzdi0uNWEuNS41IDAgMCAxIC41LS41aDVhLjUuNSAwIDAgMSAuNS41di41IiB9XQogIF07CgogIGNvbnN0IEZpbGVVcCA9IFsKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk02IDIyYTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNC43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djEyYTIgMiAwIDAgMS0yIDJ6IgogICAgICB9CiAgICBdLAogICAgWyJwYXRoIiwgeyBkOiAiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDEydjYiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTE1IDE1LTMtMy0zIDMiIH1dCiAgXTsKCiAgY29uc3QgRmlsZVVzZXIgPSBbCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiIKICAgICAgfQogICAgXSwKICAgIFsicGF0aCIsIHsgZDogIk0xNCAydjVhMSAxIDAgMCAwIDEgMWg1IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNiAyMmE0IDQgMCAwIDAtOCAwIiB9XSwKICAgIFsiY2lyY2xlIiwgeyBjeDogIjEyIiwgY3k6ICIxNSIsIHI6ICIzIiB9XQogIF07CgogIGNvbnN0IEZpbGVWb2x1bWUgPSBbCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNNCAxMS41NVY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA2LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMmgtMS45NSIKICAgICAgfQogICAgXSwKICAgIFsicGF0aCIsIHsgZDogIk0xNCAydjVhMSAxIDAgMCAwIDEgMWg1IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xMiAxNWE1IDUgMCAwIDEgMCA2IiB9XSwKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk04IDE0LjUwMmEuNS41IDAgMCAwLS44MjYtLjM4MWwtMS44OTMgMS42MzFhMSAxIDAgMCAxLS42NTEuMjQzSDMuNWEuNS41IDAgMCAwLS41LjUwMXYzLjAwNmEuNS41IDAgMCAwIC41LjUwMWgxLjEyOWExIDEgMCAwIDEgLjY1Mi4yNDNsMS44OTMgMS42MzNhLjUuNSAwIDAgMCAuODI2LS4zOHoiCiAgICAgIH0KICAgIF0KICBdOwoKICBjb25zdCBGaWxlVmlkZW9DYW1lcmEgPSBbCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNNCAxMlY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA2LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMiIKICAgICAgfQogICAgXSwKICAgIFsicGF0aCIsIHsgZDogIk0xNCAydjVhMSAxIDAgMCAwIDEgMWg1IiB9XSwKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7IGQ6ICJtMTAgMTcuODQzIDMuMDMzLTEuNzU1YS42NC42NCAwIDAgMSAuOTY3LjU2djQuNzA0YS42NS42NSAwIDAgMS0uOTY3LjU2TDEwIDIwLjE1NyIgfQogICAgXSwKICAgIFsicmVjdCIsIHsgd2lkdGg6ICI3IiwgaGVpZ2h0OiAiNiIsIHg6ICIzIiwgeTogIjE2Iiwgcng6ICIxIiB9XQogIF07CgogIGNvbnN0IEZpbGVYQ29ybmVyID0gWwogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTExIDIySDZhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA2LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2NSIKICAgICAgfQogICAgXSwKICAgIFsicGF0aCIsIHsgZDogIk0xNCAydjVhMSAxIDAgMCAwIDEgMWg1IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0xNSAxNyA1IDUiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTIwIDE3LTUgNSIgfV0KICBdOwoKICBjb25zdCBGaWxlWCA9IFsKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk02IDIyYTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNC43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djEyYTIgMiAwIDAgMS0yIDJ6IgogICAgICB9CiAgICBdLAogICAgWyJwYXRoIiwgeyBkOiAiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTE0LjUgMTIuNS01IDUiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTkuNSAxMi41IDUgNSIgfV0KICBdOwoKICBjb25zdCBGaWxlID0gWwogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTYgMjJhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA0LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMnoiCiAgICAgIH0KICAgIF0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSIgfV0KICBdOwoKICBjb25zdCBGaWxlcyA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xNSAyaC00YTIgMiAwIDAgMC0yIDJ2MTFhMiAyIDAgMCAwIDIgMmg4YTIgMiAwIDAgMCAyLTJWOCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTYuNzA2IDIuNzA2QTIuNCAyLjQgMCAwIDAgMTUgMnY1YTEgMSAwIDAgMCAxIDFoNWEyLjQgMi40IDAgMCAwLS43MDYtMS43MDZ6IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk01IDdhMiAyIDAgMCAwLTIgMnYxMWEyIDIgMCAwIDAgMiAyaDhhMiAyIDAgMCAwIDEuNzMyLTEiIH1dCiAgXTsKCiAgY29uc3QgRmlsbSA9IFsKICAgIFsicmVjdCIsIHsgd2lkdGg6ICIxOCIsIGhlaWdodDogIjE4IiwgeDogIjMiLCB5OiAiMyIsIHJ4OiAiMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNyAzdjE4IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0zIDcuNWg0IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0zIDEyaDE4IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0zIDE2LjVoNCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTcgM3YxOCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTcgNy41aDQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE3IDE2LjVoNCIgfV0KICBdOwoKICBjb25zdCBGaW5nZXJwcmludFBhdHRlcm4gPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgMTBhMiAyIDAgMCAwLTIgMmMwIDEuMDItLjEgMi41MS0uMjYgNCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTQgMTMuMTJjMCAyLjM4IDAgNi4zOC0xIDguODgiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE3LjI5IDIxLjAyYy4xMi0uNi40My0yLjMuNS0zLjAyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yIDEyYTEwIDEwIDAgMCAxIDE4LTYiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIgMTZoLjAxIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yMS44IDE2Yy4yLTIgLjEzMS01LjM1NCAwLTYiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTUgMTkuNUM1LjUgMTggNiAxNSA2IDEyYTYgNiAwIDAgMSAuMzQtMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNOC42NSAyMmMuMjEtLjY2LjQ1LTEuMzIuNTctMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNOSA2LjhhNiA2IDAgMCAxIDkgNS4ydjIiIH1dCiAgXTsKCiAgY29uc3QgRmlyZUV4dGluZ3Vpc2hlciA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xNSA2LjVWM2ExIDEgMCAwIDAtMS0xaC0yYTEgMSAwIDAgMC0xIDF2My41IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk05IDE4aDgiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE4IDNoLTMiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTExIDNhNiA2IDAgMCAwLTYgNnYxMSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNSAxM2g0IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNyAxMGE0IDQgMCAwIDAtOCAwdjEwYTIgMiAwIDAgMCAyIDJoNGEyIDIgMCAwIDAgMi0yWiIgfV0KICBdOwoKICBjb25zdCBGaXNoT2ZmID0gWwogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTE4IDEyLjQ3di4wM20wLS41di40N20tLjQ3NSA1LjA1NkE2Ljc0NCA2Ljc0NCAwIDAgMSAxNSAxOGMtMy41NiAwLTcuNTYtMi41My04LjUtNiAuMzQ4LTEuMjggMS4xMTQtMi40MzMgMi4xMjEtMy4zOG0zLjQ0NC0yLjA4OEE4LjgwMiA4LjgwMiAwIDAgMSAxNSA2YzMuNTYgMCA2LjA2IDIuNTQgNyA2LS4zMDkgMS4xNC0uNzg2IDIuMTc3LTEuNDEzIDMuMDU4IgogICAgICB9CiAgICBdLAogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTcgMTAuNjdDNyA4IDUuNTggNS45NyAyLjczIDUuNWMtMSAxLjUtMSA1IC4yMyA2LjUtMS4yNCAxLjUtMS4yNCA1LS4yMyA2LjVDNS41OCAxOC4wMyA3IDE2IDcgMTMuMzNtNy40OC00LjM3MkE5Ljc3IDkuNzcgMCAwIDEgMTYgNi4wN20wIDExLjg2YTkuNzcgOS43NyAwIDAgMS0xLjcyOC0zLjYxOCIKICAgICAgfQogICAgXSwKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIm0xNi4wMSAxNy45My0uMjMgMS40QTIgMiAwIDAgMSAxMy44IDIxSDkuNWE1Ljk2IDUuOTYgMCAwIDAgMS40OS0zLjk4TTguNTMgM2g1LjI3YTIgMiAwIDAgMSAxLjk4IDEuNjdsLjIzIDEuNE0yIDJsMjAgMjAiCiAgICAgIH0KICAgIF0KICBdOwoKICBjb25zdCBGaXNoU3ltYm9sID0gW1sicGF0aCIsIHsgZDogIk0yIDE2czktMTUgMjAtNEMxMSAyMyAyIDggMiA4IiB9XV07CgogIGNvbnN0IEZpc2hpbmdIb29rID0gWwogICAgWyJwYXRoIiwgeyBkOiAibTE3LjU4NiAxMS40MTQtNS45MyA1LjkzYTEgMSAwIDAgMS04LThsMy4xMzctMy4xMzdhLjcwNy43MDcgMCAwIDEgMS4yMDcuNVYxMCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMjAuNDE0IDguNTg2IDIyIDciIH1dLAogICAgWyJjaXJjbGUiLCB7IGN4OiAiMTkiLCBjeTogIjEwIiwgcjogIjIiIH1dCiAgXTsKCiAgY29uc3QgRmlzaCA9IFsKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk02LjUgMTJjLjk0LTMuNDYgNC45NC02IDguNS02IDMuNTYgMCA2LjA2IDIuNTQgNyA2LS45NCAzLjQ3LTMuNDQgNi03IDZzLTcuNTYtMi41My04LjUtNloiCiAgICAgIH0KICAgIF0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTggMTJ2LjUiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE2IDE3LjkzYTkuNzcgOS43NyAwIDAgMSAwLTExLjg2IiB9XSwKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk03IDEwLjY3QzcgOCA1LjU4IDUuOTcgMi43MyA1LjVjLTEgMS41LTEgNSAuMjMgNi41LTEuMjQgMS41LTEuMjQgNS0uMjMgNi41QzUuNTggMTguMDMgNyAxNiA3IDEzLjMzIgogICAgICB9CiAgICBdLAogICAgWyJwYXRoIiwgeyBkOiAiTTEwLjQ2IDcuMjZDMTAuMiA1Ljg4IDkuMTcgNC4yNCA4IDNoNS44YTIgMiAwIDAgMSAxLjk4IDEuNjdsLjIzIDEuNCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMTYuMDEgMTcuOTMtLjIzIDEuNEEyIDIgMCAwIDEgMTMuOCAyMUg5LjVhNS45NiA1Ljk2IDAgMCAwIDEuNDktMy45OCIgfV0KICBdOwoKICBjb25zdCBGaXNoaW5nUm9kID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTQgMTFoMSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNOCAxNWEyIDIgMCAwIDEtNCAwVjNhMSAxIDAgMCAxIDEtMWguNUMxNCAyIDIwIDkgMjAgMTh2NCIgfV0sCiAgICBbImNpcmNsZSIsIHsgY3g6ICIxOCIsIGN5OiAiMTgiLCByOiAiMiIgfV0KICBdOwoKICBjb25zdCBGbGFnT2ZmID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTE2IDE2Yy0zIDAtNS0yLTgtMmE2IDYgMCAwIDAtNCAxLjUyOCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMiAyIDIwIDIwIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk00IDIyVjQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTcuNjU2IDJIOGMzIDAgNSAyIDcuMzMzIDJxMiAwIDMuMDY3LS44QTEgMSAwIDAgMSAyMCA0djEwLjM0NyIgfV0KICBdOwoKICBjb25zdCBGbGFnVHJpYW5nbGVMZWZ0ID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTE4IDIyVjIuOGEuOC44IDAgMCAwLTEuMTctLjcxTDUuNDUgNy43OGEuOC44IDAgMCAwIDAgMS40NEwxOCAxNS41IiB9XQogIF07CgogIGNvbnN0IEZsYWdUcmlhbmdsZVJpZ2h0ID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTYgMjJWMi44YS44LjggMCAwIDEgMS4xNy0uNzFsMTEuMzggNS42OWEuOC44IDAgMCAxIDAgMS40NEw2IDE1LjUiIH1dCiAgXTsKCiAgY29uc3QgRmxhZyA9IFsKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk00IDIyVjRhMSAxIDAgMCAxIC40LS44QTYgNiAwIDAgMSA4IDJjMyAwIDUgMiA3LjMzMyAycTIgMCAzLjA2Ny0uOEExIDEgMCAwIDEgMjAgNHYxMGExIDEgMCAwIDEtLjQuOEE2IDYgMCAwIDEgMTYgMTZjLTMgMC01LTItOC0yYTYgNiAwIDAgMC00IDEuNTI4IgogICAgICB9CiAgICBdCiAgXTsKCiAgY29uc3QgRmxhbWVLaW5kbGluZyA9IFsKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk0xMiAyYzEgMyAyLjUgMy41IDMuNSA0LjVBNSA1IDAgMCAxIDE3IDEwYTUgNSAwIDEgMS0xMCAwYzAtLjMgMC0uNi4xLS45YTIgMiAwIDEgMCAzLjMtMkM4IDQuNSAxMSAyIDEyIDJaIgogICAgICB9CiAgICBdLAogICAgWyJwYXRoIiwgeyBkOiAibTUgMjIgMTQtNCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtNSAxOCAxNCA0IiB9XQogIF07CgogIGNvbnN0IEZsYW1lID0gWwogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTEyIDNxMSA0IDQgNi41dDMgNS41YTEgMSAwIDAgMS0xNCAwIDUgNSAwIDAgMSAxLTMgMSAxIDAgMCAwIDUgMGMwLTItMS41LTMtMS41LTVxMC0yIDIuNS00IgogICAgICB9CiAgICBdCiAgXTsKCiAgY29uc3QgRmxhc2hsaWdodE9mZiA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xMS42NTIgNkgxOCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgMTN2MSIgfV0sCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgeyBkOiAiTTE2IDE2djRhMiAyIDAgMCAxLTIgMmgtNGEyIDIgMCAwIDEtMi0ydi04YTQgNCAwIDAgMC0uOC0yLjRsLS42LS44QTMgMyAwIDAgMSA2IDdWNiIgfQogICAgXSwKICAgIFsicGF0aCIsIHsgZDogIm0yIDIgMjAgMjAiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTcuNjQ5IDJIMTdhMSAxIDAgMCAxIDEgMXY0YTMgMyAwIDAgMS0uNiAxLjhsLS42LjhhNCA0IDAgMCAwLS41NSAxLjAwNyIgfV0KICBdOwoKICBjb25zdCBGbGFzaGxpZ2h0ID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDEzdjEiIH1dLAogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTE3IDJhMSAxIDAgMCAxIDEgMXY0YTMgMyAwIDAgMS0uNiAxLjhsLS42LjhBNCA0IDAgMCAwIDE2IDEydjhhMiAyIDAgMCAxLTIgMkgxMGEyIDIgMCAwIDEtMi0ydi04YTQgNCAwIDAgMC0uOC0yLjRsLS42LS44QTMgMyAwIDAgMSA2IDdWM2ExIDEgMCAwIDEgMS0xeiIKICAgICAgfQogICAgXSwKICAgIFsicGF0aCIsIHsgZDogIk02IDZoMTIiIH1dCiAgXTsKCiAgY29uc3QgRmxhc2tDb25pY2FsT2ZmID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTEwIDJ2Mi4zNDMiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE0IDJ2Ni4zNDMiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTIgMiAyMCAyMCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMjAgMjBhMiAyIDAgMCAxLTIgMkg2YTIgMiAwIDAgMS0xLjc1NS0yLjk2bDUuMjI3LTkuNTYzIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk02LjQ1MyAxNUgxNSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNOC41IDJoNyIgfV0KICBdOwoKICBjb25zdCBGbGFza0NvbmljYWwgPSBbCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMTQgMnY2YTIgMiAwIDAgMCAuMjQ1Ljk2bDUuNTEgMTAuMDhBMiAyIDAgMCAxIDE4IDIySDZhMiAyIDAgMCAxLTEuNzU1LTIuOTZsNS41MS0xMC4wOEEyIDIgMCAwIDAgMTAgOFYyIgogICAgICB9CiAgICBdLAogICAgWyJwYXRoIiwgeyBkOiAiTTYuNDUzIDE1aDExLjA5NCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNOC41IDJoNyIgfV0KICBdOwoKICBjb25zdCBGbGFza1JvdW5kID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTEwIDJ2Ni4yOTJhNyA3IDAgMSAwIDQgMFYyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk01IDE1aDE0IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk04LjUgMmg3IiB9XQogIF07CgogIGNvbnN0IEZsaXBIb3Jpem9udGFsMiA9IFsKICAgIFsicGF0aCIsIHsgZDogIm0zIDcgNSA1LTUgNVY3IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0yMSA3LTUgNSA1IDVWNyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgMjB2MiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgMTR2MiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgOHYyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xMiAydjIiIH1dCiAgXTsKCiAgY29uc3QgRmxpcFZlcnRpY2FsMiA9IFsKICAgIFsicGF0aCIsIHsgZDogIm0xNyAzLTUgNS01LTVoMTAiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTE3IDIxLTUtNS01IDVoMTAiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTQgMTJIMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTAgMTJIOCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTYgMTJoLTIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIyIDEyaC0yIiB9XQogIF07CgogIGNvbnN0IEZsb3dlcjIgPSBbCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMTIgNWEzIDMgMCAxIDEgMyAzbS0zLTNhMyAzIDAgMSAwLTMgM20zLTN2MU05IDhhMyAzIDAgMSAwIDMgM005IDhoMW01IDBhMyAzIDAgMSAxLTMgM20zLTNoLTFtLTIgM3YtMSIKICAgICAgfQogICAgXSwKICAgIFsiY2lyY2xlIiwgeyBjeDogIjEyIiwgY3k6ICI4IiwgcjogIjIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDEwdjEyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xMiAyMmM0LjIgMCA3LTEuNjY3IDctNS00LjIgMC03IDEuNjY3LTcgNVoiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDIyYy00LjIgMC03LTEuNjY3LTctNSA0LjIgMCA3IDEuNjY3IDcgNVoiIH1dCiAgXTsKCiAgY29uc3QgRmxvd2VyID0gWwogICAgWyJjaXJjbGUiLCB7IGN4OiAiMTIiLCBjeTogIjEyIiwgcjogIjMiIH1dLAogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTEyIDE2LjVBNC41IDQuNSAwIDEgMSA3LjUgMTIgNC41IDQuNSAwIDEgMSAxMiA3LjVhNC41IDQuNSAwIDEgMSA0LjUgNC41IDQuNSA0LjUgMCAxIDEtNC41IDQuNSIKICAgICAgfQogICAgXSwKICAgIFsicGF0aCIsIHsgZDogIk0xMiA3LjVWOSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNy41IDEySDkiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE2LjUgMTJIMTUiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDE2LjVWMTUiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTggOCAxLjg4IDEuODgiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE0LjEyIDkuODggMTYgOCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtOCAxNiAxLjg4LTEuODgiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE0LjEyIDE0LjEyIDE2IDE2IiB9XQogIF07CgogIGNvbnN0IEZvY3VzID0gWwogICAgWyJjaXJjbGUiLCB7IGN4OiAiMTIiLCBjeTogIjEyIiwgcjogIjMiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTMgN1Y1YTIgMiAwIDAgMSAyLTJoMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTcgM2gyYTIgMiAwIDAgMSAyIDJ2MiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMjEgMTd2MmEyIDIgMCAwIDEtMiAyaC0yIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk03IDIxSDVhMiAyIDAgMCAxLTItMnYtMiIgfV0KICBdOwoKICBjb25zdCBGb2xkSG9yaXpvbnRhbCA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0yIDEyaDYiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIyIDEyaC02IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xMiAydjIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDh2MiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgMTR2MiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgMjB2MiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMTkgOS0zIDMgMyAzIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm01IDE1IDMtMy0zLTMiIH1dCiAgXTsKCiAgY29uc3QgRm9sZFZlcnRpY2FsID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDIydi02IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xMiA4VjIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTQgMTJIMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTAgMTJIOCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTYgMTJoLTIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIyIDEyaC0yIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0xNSAxOS0zLTMtMyAzIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0xNSA1LTMgMy0zLTMiIH1dCiAgXTsKCiAgY29uc3QgRm9sZGVyQXJjaGl2ZSA9IFsKICAgIFsiY2lyY2xlIiwgeyBjeDogIjE1IiwgY3k6ICIxOSIsIHI6ICIyIiB9XSwKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk0yMC45IDE5LjhBMiAyIDAgMCAwIDIyIDE4VjhhMiAyIDAgMCAwLTItMmgtNy45YTIgMiAwIDAgMS0xLjY5LS45TDkuNiAzLjlBMiAyIDAgMCAwIDcuOTMgM0g0YTIgMiAwIDAgMC0yIDJ2MTNhMiAyIDAgMCAwIDIgMmg1LjEiCiAgICAgIH0KICAgIF0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTUgMTF2LTEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE1IDE3di0yIiB9XQogIF07CgogIGNvbnN0IEZvbGRlckJvb2ttYXJrID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDZ2OGwzLTMgMyAzVjYiIH1dLAogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTIwIDIwYTIgMiAwIDAgMCAyLTJWOGEyIDIgMCAwIDAtMi0yaC03LjlhMiAyIDAgMCAxLTEuNjktLjlMOS42IDMuOUEyIDIgMCAwIDAgNy45MyAzSDRhMiAyIDAgMCAwLTIgMnYxM2EyIDIgMCAwIDAgMiAyeiIKICAgICAgfQogICAgXQogIF07CgogIGNvbnN0IEZvbGRlckNoZWNrID0gWwogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTIwIDIwYTIgMiAwIDAgMCAyLTJWOGEyIDIgMCAwIDAtMi0yaC03LjlhMiAyIDAgMCAxLTEuNjktLjlMOS42IDMuOUEyIDIgMCAwIDAgNy45MyAzSDRhMiAyIDAgMCAwLTIgMnYxM2EyIDIgMCAwIDAgMiAyWiIKICAgICAgfQogICAgXSwKICAgIFsicGF0aCIsIHsgZDogIm05IDEzIDIgMiA0LTQiIH1dCiAgXTsKCiAgY29uc3QgRm9sZGVyQ2xvY2sgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTYgMTR2Mi4ybDEuNiAxIiB9XSwKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk03IDIwSDRhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoMy45YTIgMiAwIDAgMSAxLjY5LjlsLjgxIDEuMmEyIDIgMCAwIDAgMS42Ny45SDIwYTIgMiAwIDAgMSAyIDIiCiAgICAgIH0KICAgIF0sCiAgICBbImNpcmNsZSIsIHsgY3g6ICIxNiIsIGN5OiAiMTYiLCByOiAiNiIgfV0KICBdOwoKICBjb25zdCBGb2xkZXJDbG9zZWQgPSBbCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMjAgMjBhMiAyIDAgMCAwIDItMlY4YTIgMiAwIDAgMC0yLTJoLTcuOWEyIDIgMCAwIDEtMS42OS0uOUw5LjYgMy45QTIgMiAwIDAgMCA3LjkzIDNINGEyIDIgMCAwIDAtMiAydjEzYTIgMiAwIDAgMCAyIDJaIgogICAgICB9CiAgICBdLAogICAgWyJwYXRoIiwgeyBkOiAiTTIgMTBoMjAiIH1dCiAgXTsKCiAgY29uc3QgRm9sZGVyQ29kZSA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xMCAxMC41IDggMTNsMiAyLjUiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTE0IDEwLjUgMiAyLjUtMiAyLjUiIH1dLAogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTIwIDIwYTIgMiAwIDAgMCAyLTJWOGEyIDIgMCAwIDAtMi0yaC03LjlhMiAyIDAgMCAxLTEuNjktLjlMOS42IDMuOUEyIDIgMCAwIDAgNy45MyAzSDRhMiAyIDAgMCAwLTIgMnYxM2EyIDIgMCAwIDAgMiAyeiIKICAgICAgfQogICAgXQogIF07CgogIGNvbnN0IEZvbGRlckNvZyA9IFsKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk0xMC4zIDIwSDRhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoMy45OGEyIDIgMCAwIDEgMS42OS45bC42NiAxLjJBMiAyIDAgMCAwIDEyIDZoOGEyIDIgMCAwIDEgMiAydjMuMyIKICAgICAgfQogICAgXSwKICAgIFsicGF0aCIsIHsgZDogIm0xNC4zMDUgMTkuNTMuOTIzLS4zODIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTE1LjIyOCAxNi44NTItLjkyMy0uMzgzIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0xNi44NTIgMTUuMjI4LS4zODMtLjkyMyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMTYuODUyIDIwLjc3Mi0uMzgzLjkyNCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMTkuMTQ4IDE1LjIyOC4zODMtLjkyMyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMTkuNTMgMjEuNjk2LS4zODItLjkyNCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMjAuNzcyIDE2Ljg1Mi45MjQtLjM4MyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMjAuNzcyIDE5LjE0OC45MjQuMzgzIiB9XSwKICAgIFsiY2lyY2xlIiwgeyBjeDogIjE4IiwgY3k6ICIxOCIsIHI6ICIzIiB9XQogIF07CgogIGNvbnN0IEZvbGRlckRvdCA9IFsKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk00IDIwaDE2YTIgMiAwIDAgMCAyLTJWOGEyIDIgMCAwIDAtMi0yaC03LjkzYTIgMiAwIDAgMS0xLjY2LS45bC0uODItMS4yQTIgMiAwIDAgMCA3LjkzIDNINGEyIDIgMCAwIDAtMiAydjEzYzAgMS4xLjkgMiAyIDJaIgogICAgICB9CiAgICBdLAogICAgWyJjaXJjbGUiLCB7IGN4OiAiMTIiLCBjeTogIjEzIiwgcjogIjEiIH1dCiAgXTsKCiAgY29uc3QgRm9sZGVyRG93biA9IFsKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk0yMCAyMGEyIDIgMCAwIDAgMi0yVjhhMiAyIDAgMCAwLTItMmgtNy45YTIgMiAwIDAgMS0xLjY5LS45TDkuNiAzLjlBMiAyIDAgMCAwIDcuOTMgM0g0YTIgMiAwIDAgMC0yIDJ2MTNhMiAyIDAgMCAwIDIgMloiCiAgICAgIH0KICAgIF0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgMTB2NiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMTUgMTMtMyAzLTMtMyIgfV0KICBdOwoKICBjb25zdCBGb2xkZXJHaXQgPSBbCiAgICBbImNpcmNsZSIsIHsgY3g6ICIxMiIsIGN5OiAiMTMiLCByOiAiMiIgfV0sCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMjAgMjBhMiAyIDAgMCAwIDItMlY4YTIgMiAwIDAgMC0yLTJoLTcuOWEyIDIgMCAwIDEtMS42OS0uOUw5LjYgMy45QTIgMiAwIDAgMCA3LjkzIDNINGEyIDIgMCAwIDAtMiAydjEzYTIgMiAwIDAgMCAyIDJaIgogICAgICB9CiAgICBdLAogICAgWyJwYXRoIiwgeyBkOiAiTTE0IDEzaDMiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTcgMTNoMyIgfV0KICBdOwoKICBjb25zdCBGb2xkZXJHaXQyID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTE4IDE5YTUgNSAwIDAgMS01LTV2OCIgfV0sCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNOSAyMEg0YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDMuOWEyIDIgMCAwIDEgMS42OS45bC44MSAxLjJhMiAyIDAgMCAwIDEuNjcuOUgyMGEyIDIgMCAwIDEgMiAydjUiCiAgICAgIH0KICAgIF0sCiAgICBbImNpcmNsZSIsIHsgY3g6ICIxMyIsIGN5OiAiMTIiLCByOiAiMiIgfV0sCiAgICBbImNpcmNsZSIsIHsgY3g6ICIyMCIsIGN5OiAiMTkiLCByOiAiMiIgfV0KICBdOwoKICBjb25zdCBGb2xkZXJIZWFydCA9IFsKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk0xMC42MzggMjBINGEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmgzLjlhMiAyIDAgMCAxIDEuNjkuOWwuODEgMS4yYTIgMiAwIDAgMCAxLjY3LjlIMjBhMiAyIDAgMCAxIDIgMnYzLjQxNyIKICAgICAgfQogICAgXSwKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk0xNC42MiAxOC44QTIuMjUgMi4yNSAwIDEgMSAxOCAxNS44MzZhMi4yNSAyLjI1IDAgMSAxIDMuMzggMi45NjZsLTIuNjI2IDIuODU2YS45OTguOTk4IDAgMCAxLTEuNTA3IDB6IgogICAgICB9CiAgICBdCiAgXTsKCiAgY29uc3QgRm9sZGVySW5wdXQgPSBbCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMiA5VjVhMiAyIDAgMCAxIDItMmgzLjlhMiAyIDAgMCAxIDEuNjkuOWwuODEgMS4yYTIgMiAwIDAgMCAxLjY3LjlIMjBhMiAyIDAgMCAxIDIgMnYxMGEyIDIgMCAwIDEtMiAySDRhMiAyIDAgMCAxLTItMnYtMSIKICAgICAgfQogICAgXSwKICAgIFsicGF0aCIsIHsgZDogIk0yIDEzaDEwIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm05IDE2IDMtMy0zLTMiIH1dCiAgXTsKCiAgY29uc3QgRm9sZGVyS2FuYmFuID0gWwogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTQgMjBoMTZhMiAyIDAgMCAwIDItMlY4YTIgMiAwIDAgMC0yLTJoLTcuOTNhMiAyIDAgMCAxLTEuNjYtLjlsLS44Mi0xLjJBMiAyIDAgMCAwIDcuOTMgM0g0YTIgMiAwIDAgMC0yIDJ2MTNjMCAxLjEuOSAyIDIgMloiCiAgICAgIH0KICAgIF0sCiAgICBbInBhdGgiLCB7IGQ6ICJNOCAxMHY0IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xMiAxMHYyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNiAxMHY2IiB9XQogIF07CgogIGNvbnN0IEZvbGRlckxvY2sgPSBbCiAgICBbInJlY3QiLCB7IHdpZHRoOiAiOCIsIGhlaWdodDogIjUiLCB4OiAiMTQiLCB5OiAiMTciLCByeDogIjEiIH1dLAogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTEwIDIwSDRhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoMy45YTIgMiAwIDAgMSAxLjY5LjlsLjgxIDEuMmEyIDIgMCAwIDAgMS42Ny45SDIwYTIgMiAwIDAgMSAyIDJ2Mi41IgogICAgICB9CiAgICBdLAogICAgWyJwYXRoIiwgeyBkOiAiTTIwIDE3di0yYTIgMiAwIDEgMC00IDB2MiIgfV0KICBdOwoKICBjb25zdCBGb2xkZXJLZXkgPSBbCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMTMgMjBINGEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmgzLjlhMiAyIDAgMCAxIDEuNjkuOWwuODEgMS4yYTIgMiAwIDAgMCAxLjY3LjlIMjBhMiAyIDAgMCAxIDIgMnYxLjM2IgogICAgICB9CiAgICBdLAogICAgWyJwYXRoIiwgeyBkOiAiTTE5IDEydjYiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE5IDE0aDIiIH1dLAogICAgWyJjaXJjbGUiLCB7IGN4OiAiMTkiLCBjeTogIjIwIiwgcjogIjIiIH1dCiAgXTsKCiAgY29uc3QgRm9sZGVyTWludXMgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNOSAxM2g2IiB9XSwKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk0yMCAyMGEyIDIgMCAwIDAgMi0yVjhhMiAyIDAgMCAwLTItMmgtNy45YTIgMiAwIDAgMS0xLjY5LS45TDkuNiAzLjlBMiAyIDAgMCAwIDcuOTMgM0g0YTIgMiAwIDAgMC0yIDJ2MTNhMiAyIDAgMCAwIDIgMloiCiAgICAgIH0KICAgIF0KICBdOwoKICBjb25zdCBGb2xkZXJPcGVuRG90ID0gWwogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAibTYgMTQgMS40NS0yLjlBMiAyIDAgMCAxIDkuMjQgMTBIMjBhMiAyIDAgMCAxIDEuOTQgMi41bC0xLjU1IDZhMiAyIDAgMCAxLTEuOTQgMS41SDRhMiAyIDAgMCAxLTItMlY1YzAtMS4xLjktMiAyLTJoMy45M2EyIDIgMCAwIDEgMS42Ni45bC44MiAxLjJhMiAyIDAgMCAwIDEuNjYuOUgxOGEyIDIgMCAwIDEgMiAydjIiCiAgICAgIH0KICAgIF0sCiAgICBbImNpcmNsZSIsIHsgY3g6ICIxNCIsIGN5OiAiMTUiLCByOiAiMSIgfV0KICBdOwoKICBjb25zdCBGb2xkZXJPcGVuID0gWwogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAibTYgMTQgMS41LTIuOUEyIDIgMCAwIDEgOS4yNCAxMEgyMGEyIDIgMCAwIDEgMS45NCAyLjVsLTEuNTQgNmEyIDIgMCAwIDEtMS45NSAxLjVINGEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmgzLjlhMiAyIDAgMCAxIDEuNjkuOWwuODEgMS4yYTIgMiAwIDAgMCAxLjY3LjlIMThhMiAyIDAgMCAxIDIgMnYyIgogICAgICB9CiAgICBdCiAgXTsKCiAgY29uc3QgRm9sZGVyT3V0cHV0ID0gWwogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTIgNy41VjVhMiAyIDAgMCAxIDItMmgzLjlhMiAyIDAgMCAxIDEuNjkuOWwuODEgMS4yYTIgMiAwIDAgMCAxLjY3LjlIMjBhMiAyIDAgMCAxIDIgMnYxMGEyIDIgMCAwIDEtMiAySDRhMiAyIDAgMCAxLTItMS41IgogICAgICB9CiAgICBdLAogICAgWyJwYXRoIiwgeyBkOiAiTTIgMTNoMTAiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTUgMTAtMyAzIDMgMyIgfV0KICBdOwoKICBjb25zdCBGb2xkZXJQZW4gPSBbCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMiAxMS41VjVhMiAyIDAgMCAxIDItMmgzLjljLjcgMCAxLjMuMyAxLjcuOWwuOCAxLjJjLjQuNiAxIC45IDEuNy45SDIwYTIgMiAwIDAgMSAyIDJ2MTBhMiAyIDAgMCAxLTIgMmgtOS41IgogICAgICB9CiAgICBdLAogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTExLjM3OCAxMy42MjZhMSAxIDAgMSAwLTMuMDA0LTMuMDA0bC01LjAxIDUuMDEyYTIgMiAwIDAgMC0uNTA2Ljg1NGwtLjgzNyAyLjg3YS41LjUgMCAwIDAgLjYyLjYybDIuODctLjgzN2EyIDIgMCAwIDAgLjg1NC0uNTA2eiIKICAgICAgfQogICAgXQogIF07CgogIGNvbnN0IEZvbGRlclBsdXMgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgMTB2NiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNOSAxM2g2IiB9XSwKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk0yMCAyMGEyIDIgMCAwIDAgMi0yVjhhMiAyIDAgMCAwLTItMmgtNy45YTIgMiAwIDAgMS0xLjY5LS45TDkuNiAzLjlBMiAyIDAgMCAwIDcuOTMgM0g0YTIgMiAwIDAgMC0yIDJ2MTNhMiAyIDAgMCAwIDIgMloiCiAgICAgIH0KICAgIF0KICBdOwoKICBjb25zdCBGb2xkZXJSb290ID0gWwogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTQgMjBoMTZhMiAyIDAgMCAwIDItMlY4YTIgMiAwIDAgMC0yLTJoLTcuOTNhMiAyIDAgMCAxLTEuNjYtLjlsLS44Mi0xLjJBMiAyIDAgMCAwIDcuOTMgM0g0YTIgMiAwIDAgMC0yIDJ2MTNjMCAxLjEuOSAyIDIgMloiCiAgICAgIH0KICAgIF0sCiAgICBbImNpcmNsZSIsIHsgY3g6ICIxMiIsIGN5OiAiMTMiLCByOiAiMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgMTV2NSIgfV0KICBdOwoKICBjb25zdCBGb2xkZXJTZWFyY2gyID0gWwogICAgWyJjaXJjbGUiLCB7IGN4OiAiMTEuNSIsIGN5OiAiMTIuNSIsIHI6ICIyLjUiIH1dLAogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTIwIDIwYTIgMiAwIDAgMCAyLTJWOGEyIDIgMCAwIDAtMi0yaC03LjlhMiAyIDAgMCAxLTEuNjktLjlMOS42IDMuOUEyIDIgMCAwIDAgNy45MyAzSDRhMiAyIDAgMCAwLTIgMnYxM2EyIDIgMCAwIDAgMiAyWiIKICAgICAgfQogICAgXSwKICAgIFsicGF0aCIsIHsgZDogIk0xMy4zIDE0LjMgMTUgMTYiIH1dCiAgXTsKCiAgY29uc3QgRm9sZGVyU2VhcmNoID0gWwogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTEwLjcgMjBINGEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmgzLjlhMiAyIDAgMCAxIDEuNjkuOWwuODEgMS4yYTIgMiAwIDAgMCAxLjY3LjlIMjBhMiAyIDAgMCAxIDIgMnY0LjEiCiAgICAgIH0KICAgIF0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMjEgMjEtMS45LTEuOSIgfV0sCiAgICBbImNpcmNsZSIsIHsgY3g6ICIxNyIsIGN5OiAiMTciLCByOiAiMyIgfV0KICBdOwoKICBjb25zdCBGb2xkZXJTeW1saW5rID0gWwogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTIgOS4zNVY1YTIgMiAwIDAgMSAyLTJoMy45YTIgMiAwIDAgMSAxLjY5LjlsLjgxIDEuMmEyIDIgMCAwIDAgMS42Ny45SDIwYTIgMiAwIDAgMSAyIDJ2MTBhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJ2LTNhMiAyIDAgMCAxIDItMmg3IgogICAgICB9CiAgICBdLAogICAgWyJwYXRoIiwgeyBkOiAibTggMTYgMy0zLTMtMyIgfV0KICBdOwoKICBjb25zdCBGb2xkZXJTeW5jID0gWwogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTkgMjBINGEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmgzLjlhMiAyIDAgMCAxIDEuNjkuOWwuODEgMS4yYTIgMiAwIDAgMCAxLjY3LjlIMjBhMiAyIDAgMCAxIDIgMnYuNSIKICAgICAgfQogICAgXSwKICAgIFsicGF0aCIsIHsgZDogIk0xMiAxMHY0aDQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTEyIDE0IDEuNTM1LTEuNjA1YTUgNSAwIDAgMSA4IDEuNSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMjIgMjJ2LTRoLTQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTIyIDE4LTEuNTM1IDEuNjA1YTUgNSAwIDAgMS04LTEuNSIgfV0KICBdOwoKICBjb25zdCBGb2xkZXJUcmVlID0gWwogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTIwIDEwYTEgMSAwIDAgMCAxLTFWNmExIDEgMCAwIDAtMS0xaC0yLjVhMSAxIDAgMCAxLS44LS40bC0uOS0xLjJBMSAxIDAgMCAwIDE1IDNoLTJhMSAxIDAgMCAwLTEgMXY1YTEgMSAwIDAgMCAxIDFaIgogICAgICB9CiAgICBdLAogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTIwIDIxYTEgMSAwIDAgMCAxLTF2LTNhMSAxIDAgMCAwLTEtMWgtMi45YTEgMSAwIDAgMS0uODgtLjU1bC0uNDItLjg1YTEgMSAwIDAgMC0uOTItLjZIMTNhMSAxIDAgMCAwLTEgMXY1YTEgMSAwIDAgMCAxIDFaIgogICAgICB9CiAgICBdLAogICAgWyJwYXRoIiwgeyBkOiAiTTMgNWEyIDIgMCAwIDAgMiAyaDMiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTMgM3YxM2EyIDIgMCAwIDAgMiAyaDMiIH1dCiAgXTsKCiAgY29uc3QgRm9sZGVyVXAgPSBbCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMjAgMjBhMiAyIDAgMCAwIDItMlY4YTIgMiAwIDAgMC0yLTJoLTcuOWEyIDIgMCAwIDEtMS42OS0uOUw5LjYgMy45QTIgMiAwIDAgMCA3LjkzIDNINGEyIDIgMCAwIDAtMiAydjEzYTIgMiAwIDAgMCAyIDJaIgogICAgICB9CiAgICBdLAogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDEwdjYiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTkgMTMgMy0zIDMgMyIgfV0KICBdOwoKICBjb25zdCBGb2xkZXJYID0gWwogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTIwIDIwYTIgMiAwIDAgMCAyLTJWOGEyIDIgMCAwIDAtMi0yaC03LjlhMiAyIDAgMCAxLTEuNjktLjlMOS42IDMuOUEyIDIgMCAwIDAgNy45MyAzSDRhMiAyIDAgMCAwLTIgMnYxM2EyIDIgMCAwIDAgMiAyWiIKICAgICAgfQogICAgXSwKICAgIFsicGF0aCIsIHsgZDogIm05LjUgMTAuNSA1IDUiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTE0LjUgMTAuNS01IDUiIH1dCiAgXTsKCiAgY29uc3QgRm9sZGVyID0gWwogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTIwIDIwYTIgMiAwIDAgMCAyLTJWOGEyIDIgMCAwIDAtMi0yaC03LjlhMiAyIDAgMCAxLTEuNjktLjlMOS42IDMuOUEyIDIgMCAwIDAgNy45MyAzSDRhMiAyIDAgMCAwLTIgMnYxM2EyIDIgMCAwIDAgMiAyWiIKICAgICAgfQogICAgXQogIF07CgogIGNvbnN0IEZvbGRlcnMgPSBbCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMjAgNWEyIDIgMCAwIDEgMiAydjdhMiAyIDAgMCAxLTIgMkg5YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDIuNWExLjUgMS41IDAgMCAxIDEuMi42bC42LjhhMS41IDEuNSAwIDAgMCAxLjIuNnoiCiAgICAgIH0KICAgIF0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMyA4LjI2OGEyIDIgMCAwIDAtMSAxLjczOFYxOWEyIDIgMCAwIDAgMiAyaDExYTIgMiAwIDAgMCAxLjczMi0xIiB9XQogIF07CgogIGNvbnN0IEZvb3RwcmludHMgPSBbCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNNCAxNnYtMi4zOEM0IDExLjUgMi45NyAxMC41IDMgOGMuMDMtMi43MiAxLjQ5LTYgNC41LTZDOS4zNyAyIDEwIDMuOCAxMCA1LjVjMCAzLjExLTIgNS42Ni0yIDguNjhWMTZhMiAyIDAgMSAxLTQgMFoiCiAgICAgIH0KICAgIF0sCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMjAgMjB2LTIuMzhjMC0yLjEyIDEuMDMtMy4xMiAxLTUuNjItLjAzLTIuNzItMS40OS02LTQuNS02QzE0LjYzIDYgMTQgNy44IDE0IDkuNWMwIDMuMTEgMiA1LjY2IDIgOC42OFYyMGEyIDIgMCAxIDAgNCAwWiIKICAgICAgfQogICAgXSwKICAgIFsicGF0aCIsIHsgZDogIk0xNiAxN2g0IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk00IDEzaDQiIH1dCiAgXTsKCiAgY29uc3QgRm9ya2xpZnQgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgMTJINWEyIDIgMCAwIDAtMiAydjUiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE1IDE5aDciIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE2IDE5VjIiIH1dLAogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsgZDogIk02IDEyVjdhMiAyIDAgMCAxIDItMmgyLjE3MmEyIDIgMCAwIDEgMS40MTQuNTg2bDMuODI4IDMuODI4QTIgMiAwIDAgMSAxNiAxMC44MjgiIH0KICAgIF0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNyAxOWg0IiB9XSwKICAgIFsiY2lyY2xlIiwgeyBjeDogIjEzIiwgY3k6ICIxOSIsIHI6ICIyIiB9XSwKICAgIFsiY2lyY2xlIiwgeyBjeDogIjUiLCBjeTogIjE5IiwgcjogIjIiIH1dCiAgXTsKCiAgY29uc3QgRm9ybSA9IFsKICAgIFsicGF0aCIsIHsgZDogIk00IDE0aDYiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTQgMmgxMCIgfV0sCiAgICBbInJlY3QiLCB7IHg6ICI0IiwgeTogIjE4Iiwgd2lkdGg6ICIxNiIsIGhlaWdodDogIjQiLCByeDogIjEiIH1dLAogICAgWyJyZWN0IiwgeyB4OiAiNCIsIHk6ICI2Iiwgd2lkdGg6ICIxNiIsIGhlaWdodDogIjQiLCByeDogIjEiIH1dCiAgXTsKCiAgY29uc3QgRnJhbWUgPSBbCiAgICBbImxpbmUiLCB7IHgxOiAiMjIiLCB4MjogIjIiLCB5MTogIjYiLCB5MjogIjYiIH1dLAogICAgWyJsaW5lIiwgeyB4MTogIjIyIiwgeDI6ICIyIiwgeTE6ICIxOCIsIHkyOiAiMTgiIH1dLAogICAgWyJsaW5lIiwgeyB4MTogIjYiLCB4MjogIjYiLCB5MTogIjIiLCB5MjogIjIyIiB9XSwKICAgIFsibGluZSIsIHsgeDE6ICIxOCIsIHgyOiAiMTgiLCB5MTogIjIiLCB5MjogIjIyIiB9XQogIF07CgogIGNvbnN0IEZvcndhcmQgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJtMTUgMTcgNS01LTUtNSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNCAxOHYtMmE0IDQgMCAwIDEgNC00aDEyIiB9XQogIF07CgogIGNvbnN0IEZyb3duID0gWwogICAgWyJjaXJjbGUiLCB7IGN4OiAiMTIiLCBjeTogIjEyIiwgcjogIjEwIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNiAxNnMtMS41LTItNC0yLTQgMi00IDIiIH1dLAogICAgWyJsaW5lIiwgeyB4MTogIjkiLCB4MjogIjkuMDEiLCB5MTogIjkiLCB5MjogIjkiIH1dLAogICAgWyJsaW5lIiwgeyB4MTogIjE1IiwgeDI6ICIxNS4wMSIsIHkxOiAiOSIsIHkyOiAiOSIgfV0KICBdOwoKICBjb25zdCBGdWVsID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTE0IDEzaDJhMiAyIDAgMCAxIDIgMnYyYTIgMiAwIDAgMCA0IDB2LTYuOTk4YTIgMiAwIDAgMC0uNTktMS40MkwxOCA1IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNCAyMVY1YTIgMiAwIDAgMC0yLTJINWEyIDIgMCAwIDAtMiAydjE2IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yIDIxaDEzIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0zIDloMTEiIH1dCiAgXTsKCiAgY29uc3QgRnVsbHNjcmVlbiA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0zIDdWNWEyIDIgMCAwIDEgMi0yaDIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE3IDNoMmEyIDIgMCAwIDEgMiAydjIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIxIDE3djJhMiAyIDAgMCAxLTIgMmgtMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNyAyMUg1YTIgMiAwIDAgMS0yLTJ2LTIiIH1dLAogICAgWyJyZWN0IiwgeyB3aWR0aDogIjEwIiwgaGVpZ2h0OiAiOCIsIHg6ICI3IiwgeTogIjgiLCByeDogIjEiIH1dCiAgXTsKCiAgY29uc3QgRnVubmVsUGx1cyA9IFsKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk0xMy4zNTQgM0gzYTEgMSAwIDAgMC0uNzQyIDEuNjdsNy4yMjUgNy45ODlBMiAyIDAgMCAxIDEwIDE0djZhMSAxIDAgMCAwIC41NTMuODk1bDIgMUExIDEgMCAwIDAgMTQgMjF2LTdhMiAyIDAgMCAxIC41MTctMS4zNDFsMS4yMTgtMS4zNDgiCiAgICAgIH0KICAgIF0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTYgNmg2IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xOSAzdjYiIH1dCiAgXTsKCiAgY29uc3QgRnVubmVsWCA9IFsKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk0xMi41MzEgM0gzYTEgMSAwIDAgMC0uNzQyIDEuNjdsNy4yMjUgNy45ODlBMiAyIDAgMCAxIDEwIDE0djZhMSAxIDAgMCAwIC41NTMuODk1bDIgMUExIDEgMCAwIDAgMTQgMjF2LTdhMiAyIDAgMCAxIC41MTctMS4zNDFsLjQyNy0uNDczIgogICAgICB9CiAgICBdLAogICAgWyJwYXRoIiwgeyBkOiAibTE2LjUgMy41IDUgNSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMjEuNSAzLjUtNSA1IiB9XQogIF07CgogIGNvbnN0IEdhbGxlcnlIb3Jpem9udGFsRW5kID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTIgN3YxMCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNiA1djE0IiB9XSwKICAgIFsicmVjdCIsIHsgd2lkdGg6ICIxMiIsIGhlaWdodDogIjE4IiwgeDogIjEwIiwgeTogIjMiLCByeDogIjIiIH1dCiAgXTsKCiAgY29uc3QgRnVubmVsID0gWwogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTEwIDIwYTEgMSAwIDAgMCAuNTUzLjg5NWwyIDFBMSAxIDAgMCAwIDE0IDIxdi03YTIgMiAwIDAgMSAuNTE3LTEuMzQxTDIxLjc0IDQuNjdBMSAxIDAgMCAwIDIxIDNIM2ExIDEgMCAwIDAtLjc0MiAxLjY3bDcuMjI1IDcuOTg5QTIgMiAwIDAgMSAxMCAxNHoiCiAgICAgIH0KICAgIF0KICBdOwoKICBjb25zdCBHYWxsZXJ5SG9yaXpvbnRhbCA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0yIDN2MTgiIH1dLAogICAgWyJyZWN0IiwgeyB3aWR0aDogIjEyIiwgaGVpZ2h0OiAiMTgiLCB4OiAiNiIsIHk6ICIzIiwgcng6ICIyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yMiAzdjE4IiB9XQogIF07CgogIGNvbnN0IEdhbGxlcnlUaHVtYm5haWxzID0gWwogICAgWyJyZWN0IiwgeyB3aWR0aDogIjE4IiwgaGVpZ2h0OiAiMTQiLCB4OiAiMyIsIHk6ICIzIiwgcng6ICIyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk00IDIxaDEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTkgMjFoMSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTQgMjFoMSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTkgMjFoMSIgfV0KICBdOwoKICBjb25zdCBHYWxsZXJ5VmVydGljYWwgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMyAyaDE4IiB9XSwKICAgIFsicmVjdCIsIHsgd2lkdGg6ICIxOCIsIGhlaWdodDogIjEyIiwgeDogIjMiLCB5OiAiNiIsIHJ4OiAiMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMyAyMmgxOCIgfV0KICBdOwoKICBjb25zdCBHYWxsZXJ5VmVydGljYWxFbmQgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNNyAyaDEwIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk01IDZoMTQiIH1dLAogICAgWyJyZWN0IiwgeyB3aWR0aDogIjE4IiwgaGVpZ2h0OiAiMTIiLCB4OiAiMyIsIHk6ICIxMCIsIHJ4OiAiMiIgfV0KICBdOwoKICBjb25zdCBHYW1lcGFkMiA9IFsKICAgIFsibGluZSIsIHsgeDE6ICI2IiwgeDI6ICIxMCIsIHkxOiAiMTEiLCB5MjogIjExIiB9XSwKICAgIFsibGluZSIsIHsgeDE6ICI4IiwgeDI6ICI4IiwgeTE6ICI5IiwgeTI6ICIxMyIgfV0sCiAgICBbImxpbmUiLCB7IHgxOiAiMTUiLCB4MjogIjE1LjAxIiwgeTE6ICIxMiIsIHkyOiAiMTIiIH1dLAogICAgWyJsaW5lIiwgeyB4MTogIjE4IiwgeDI6ICIxOC4wMSIsIHkxOiAiMTAiLCB5MjogIjEwIiB9XSwKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk0xNy4zMiA1SDYuNjhhNCA0IDAgMCAwLTMuOTc4IDMuNTljLS4wMDYuMDUyLS4wMS4xMDEtLjAxNy4xNTJDMi42MDQgOS40MTYgMiAxNC40NTYgMiAxNmEzIDMgMCAwIDAgMyAzYzEgMCAxLjUtLjUgMi0xbDEuNDE0LTEuNDE0QTIgMiAwIDAgMSA5LjgyOCAxNmg0LjM0NGEyIDIgMCAwIDEgMS40MTQuNTg2TDE3IDE4Yy41LjUgMSAxIDIgMWEzIDMgMCAwIDAgMy0zYzAtMS41NDUtLjYwNC02LjU4NC0uNjg1LTcuMjU4LS4wMDctLjA1LS4wMTEtLjEtLjAxNy0uMTUxQTQgNCAwIDAgMCAxNy4zMiA1eiIKICAgICAgfQogICAgXQogIF07CgogIGNvbnN0IEdhbWVwYWREaXJlY3Rpb25hbCA9IFsKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk0xMS4xNDYgMTUuODU0YTEuMjA3IDEuMjA3IDAgMCAxIDEuNzA4IDBsMS41NiAxLjU2QTIgMiAwIDAgMSAxNSAxOC44MjhWMjFhMSAxIDAgMCAxLTEgMWgtNGExIDEgMCAwIDEtMS0xdi0yLjE3MmEyIDIgMCAwIDEgLjU4Ni0xLjQxNHoiCiAgICAgIH0KICAgIF0sCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMTguODI4IDE1YTIgMiAwIDAgMS0xLjQxNC0uNTg2bC0xLjU2LTEuNTZhMS4yMDcgMS4yMDcgMCAwIDEgMC0xLjcwOGwxLjU2LTEuNTZBMiAyIDAgMCAxIDE4LjgyOCA5SDIxYTEgMSAwIDAgMSAxIDF2NGExIDEgMCAwIDEtMSAxeiIKICAgICAgfQogICAgXSwKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk02LjU4NiAxNC40MTRBMiAyIDAgMCAxIDUuMTcyIDE1SDNhMSAxIDAgMCAxLTEtMXYtNGExIDEgMCAwIDEgMS0xaDIuMTcyYTIgMiAwIDAgMSAxLjQxNC41ODZsMS41NiAxLjU2YTEuMjA3IDEuMjA3IDAgMCAxIDAgMS43MDh6IgogICAgICB9CiAgICBdLAogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTkgM2ExIDEgMCAwIDEgMS0xaDRhMSAxIDAgMCAxIDEgMXYyLjE3MmEyIDIgMCAwIDEtLjU4NiAxLjQxNGwtMS41NiAxLjU2YTEuMjA3IDEuMjA3IDAgMCAxLTEuNzA4IDBsLTEuNTYtMS41NkEyIDIgMCAwIDEgOSA1LjE3MnoiCiAgICAgIH0KICAgIF0KICBdOwoKICBjb25zdCBHYW1lcGFkID0gWwogICAgWyJsaW5lIiwgeyB4MTogIjYiLCB4MjogIjEwIiwgeTE6ICIxMiIsIHkyOiAiMTIiIH1dLAogICAgWyJsaW5lIiwgeyB4MTogIjgiLCB4MjogIjgiLCB5MTogIjEwIiwgeTI6ICIxNCIgfV0sCiAgICBbImxpbmUiLCB7IHgxOiAiMTUiLCB4MjogIjE1LjAxIiwgeTE6ICIxMyIsIHkyOiAiMTMiIH1dLAogICAgWyJsaW5lIiwgeyB4MTogIjE4IiwgeDI6ICIxOC4wMSIsIHkxOiAiMTEiLCB5MjogIjExIiB9XSwKICAgIFsicmVjdCIsIHsgd2lkdGg6ICIyMCIsIGhlaWdodDogIjEyIiwgeDogIjIiLCB5OiAiNiIsIHJ4OiAiMiIgfV0KICBdOwoKICBjb25zdCBHYXVnZSA9IFsKICAgIFsicGF0aCIsIHsgZDogIm0xMiAxNCA0LTQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTMuMzQgMTlhMTAgMTAgMCAxIDEgMTcuMzIgMCIgfV0KICBdOwoKICBjb25zdCBHYXZlbCA9IFsKICAgIFsicGF0aCIsIHsgZDogIm0xNCAxMy04LjM4MSA4LjM4YTEgMSAwIDAgMS0zLjAwMS0zbDguMzg0LTguMzgxIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0xNiAxNiA2LTYiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTIxLjUgMTAuNS04LTgiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTggOCA2LTYiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTguNSA3LjUgOCA4IiB9XQogIF07CgogIGNvbnN0IEdlbSA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xMC41IDMgOCA5bDQgMTMgNC0xMy0yLjUtNiIgfV0sCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMTcgM2EyIDIgMCAwIDEgMS42LjhsMyA0YTIgMiAwIDAgMSAuMDEzIDIuMzgybC03Ljk5IDEwLjk4NmEyIDIgMCAwIDEtMy4yNDcgMGwtNy45OS0xMC45ODZBMiAyIDAgMCAxIDIuNCA3LjhsMi45OTgtMy45OTdBMiAyIDAgMCAxIDcgM3oiCiAgICAgIH0KICAgIF0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMiA5aDIwIiB9XQogIF07CgogIGNvbnN0IEdlb3JnaWFuTGFyaSA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xMS41IDIxYTcuNSA3LjUgMCAxIDEgNy4zNS05IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xMyAxMlYzIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk00IDIxaDE2IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk05IDEyVjMiIH1dCiAgXTsKCiAgY29uc3QgR2hvc3QgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNOSAxMGguMDEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE1IDEwaC4wMSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgMmE4IDggMCAwIDAtOCA4djEybDMtMyAyLjUgMi41TDEyIDE5bDIuNSAyLjVMMTcgMTlsMyAzVjEwYTggOCAwIDAgMC04LTh6IiB9XQogIF07CgogIGNvbnN0IEdpZnQgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgN3YxNCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMjAgMTF2OGEyIDIgMCAwIDEtMiAySDZhMiAyIDAgMCAxLTItMnYtOCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNy41IDdhMSAxIDAgMCAxIDAtNUE0LjggOCAwIDAgMSAxMiA3YTQuOCA4IDAgMCAxIDQuNS01IDEgMSAwIDAgMSAwIDUiIH1dLAogICAgWyJyZWN0IiwgeyB4OiAiMyIsIHk6ICI3Iiwgd2lkdGg6ICIxOCIsIGhlaWdodDogIjQiLCByeDogIjEiIH1dCiAgXTsKCiAgY29uc3QgR2l0QnJhbmNoTWludXMgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTUgNmE5IDkgMCAwIDAtOSA5VjMiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIxIDE4aC02IiB9XSwKICAgIFsiY2lyY2xlIiwgeyBjeDogIjE4IiwgY3k6ICI2IiwgcjogIjMiIH1dLAogICAgWyJjaXJjbGUiLCB7IGN4OiAiNiIsIGN5OiAiMTgiLCByOiAiMyIgfV0KICBdOwoKICBjb25zdCBHaXRCcmFuY2hQbHVzID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTYgM3YxMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTggOWEzIDMgMCAxIDAgMC02IDMgMyAwIDAgMCAwIDZ6IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk02IDIxYTMgMyAwIDEgMCAwLTYgMyAzIDAgMCAwIDAgNnoiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE1IDZhOSA5IDAgMCAwLTkgOSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTggMTV2NiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMjEgMThoLTYiIH1dCiAgXTsKCiAgY29uc3QgR2l0QnJhbmNoID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTE1IDZhOSA5IDAgMCAwLTkgOVYzIiB9XSwKICAgIFsiY2lyY2xlIiwgeyBjeDogIjE4IiwgY3k6ICI2IiwgcjogIjMiIH1dLAogICAgWyJjaXJjbGUiLCB7IGN4OiAiNiIsIGN5OiAiMTgiLCByOiAiMyIgfV0KICBdOwoKICBjb25zdCBHaXRDb21taXRIb3Jpem9udGFsID0gWwogICAgWyJjaXJjbGUiLCB7IGN4OiAiMTIiLCBjeTogIjEyIiwgcjogIjMiIH1dLAogICAgWyJsaW5lIiwgeyB4MTogIjMiLCB4MjogIjkiLCB5MTogIjEyIiwgeTI6ICIxMiIgfV0sCiAgICBbImxpbmUiLCB7IHgxOiAiMTUiLCB4MjogIjIxIiwgeTE6ICIxMiIsIHkyOiAiMTIiIH1dCiAgXTsKCiAgY29uc3QgR2l0Q29tbWl0VmVydGljYWwgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgM3Y2IiB9XSwKICAgIFsiY2lyY2xlIiwgeyBjeDogIjEyIiwgY3k6ICIxMiIsIHI6ICIzIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xMiAxNXY2IiB9XQogIF07CgogIGNvbnN0IEdpdENvbXBhcmVBcnJvd3MgPSBbCiAgICBbImNpcmNsZSIsIHsgY3g6ICI1IiwgY3k6ICI2IiwgcjogIjMiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDZoNWEyIDIgMCAwIDEgMiAydjciIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTE1IDktMy0zIDMtMyIgfV0sCiAgICBbImNpcmNsZSIsIHsgY3g6ICIxOSIsIGN5OiAiMTgiLCByOiAiMyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgMThIN2EyIDIgMCAwIDEtMi0yVjkiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTkgMTUgMyAzLTMgMyIgfV0KICBdOwoKICBjb25zdCBHaXRDb21wYXJlID0gWwogICAgWyJjaXJjbGUiLCB7IGN4OiAiMTgiLCBjeTogIjE4IiwgcjogIjMiIH1dLAogICAgWyJjaXJjbGUiLCB7IGN4OiAiNiIsIGN5OiAiNiIsIHI6ICIzIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xMyA2aDNhMiAyIDAgMCAxIDIgMnY3IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xMSAxOEg4YTIgMiAwIDAgMS0yLTJWOSIgfV0KICBdOwoKICBjb25zdCBHaXRGb3JrID0gWwogICAgWyJjaXJjbGUiLCB7IGN4OiAiMTIiLCBjeTogIjE4IiwgcjogIjMiIH1dLAogICAgWyJjaXJjbGUiLCB7IGN4OiAiNiIsIGN5OiAiNiIsIHI6ICIzIiB9XSwKICAgIFsiY2lyY2xlIiwgeyBjeDogIjE4IiwgY3k6ICI2IiwgcjogIjMiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE4IDl2MmMwIC42LS40IDEtMSAxSDdjLS42IDAtMS0uNC0xLTFWOSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgMTJ2MyIgfV0KICBdOwoKICBjb25zdCBHaXRHcmFwaCA9IFsKICAgIFsiY2lyY2xlIiwgeyBjeDogIjUiLCBjeTogIjYiLCByOiAiMyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNSA5djYiIH1dLAogICAgWyJjaXJjbGUiLCB7IGN4OiAiNSIsIGN5OiAiMTgiLCByOiAiMyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgM3YxOCIgfV0sCiAgICBbImNpcmNsZSIsIHsgY3g6ICIxOSIsIGN5OiAiNiIsIHI6ICIzIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNiAxNS43QTkgOSAwIDAgMCAxOSA5IiB9XQogIF07CgogIGNvbnN0IEdpdE1lcmdlQ29uZmxpY3QgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgNmg0YTIgMiAwIDAgMSAyIDJ2NyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNiAxMnY5IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk05IDMgMyA5IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk05IDkgMyAzIiB9XSwKICAgIFsiY2lyY2xlIiwgeyBjeDogIjE4IiwgY3k6ICIxOCIsIHI6ICIzIiB9XQogIF07CgogIGNvbnN0IEdpdE1lcmdlID0gWwogICAgWyJjaXJjbGUiLCB7IGN4OiAiMTgiLCBjeTogIjE4IiwgcjogIjMiIH1dLAogICAgWyJjaXJjbGUiLCB7IGN4OiAiNiIsIGN5OiAiNiIsIHI6ICIzIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk02IDIxVjlhOSA5IDAgMCAwIDkgOSIgfV0KICBdOwoKICBjb25zdCBHaXRQdWxsUmVxdWVzdEFycm93ID0gWwogICAgWyJjaXJjbGUiLCB7IGN4OiAiNSIsIGN5OiAiNiIsIHI6ICIzIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk01IDl2MTIiIH1dLAogICAgWyJjaXJjbGUiLCB7IGN4OiAiMTkiLCBjeTogIjE4IiwgcjogIjMiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTE1IDktMy0zIDMtMyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgNmg1YTIgMiAwIDAgMSAyIDJ2NyIgfV0KICBdOwoKICBjb25zdCBHaXRQdWxsUmVxdWVzdENsb3NlZCA9IFsKICAgIFsiY2lyY2xlIiwgeyBjeDogIjYiLCBjeTogIjYiLCByOiAiMyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNiA5djEyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0yMSAzLTYgNiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMjEgOS02LTYiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE4IDExLjVWMTUiIH1dLAogICAgWyJjaXJjbGUiLCB7IGN4OiAiMTgiLCBjeTogIjE4IiwgcjogIjMiIH1dCiAgXTsKCiAgY29uc3QgR2l0UHVsbFJlcXVlc3RDcmVhdGVBcnJvdyA9IFsKICAgIFsiY2lyY2xlIiwgeyBjeDogIjUiLCBjeTogIjYiLCByOiAiMyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNSA5djEyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0xNSA5LTMtMyAzLTMiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDZoNWEyIDIgMCAwIDEgMiAydjMiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE5IDE1djYiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIyIDE4aC02IiB9XQogIF07CgogIGNvbnN0IEdpdFB1bGxSZXF1ZXN0RHJhZnQgPSBbCiAgICBbImNpcmNsZSIsIHsgY3g6ICIxOCIsIGN5OiAiMTgiLCByOiAiMyIgfV0sCiAgICBbImNpcmNsZSIsIHsgY3g6ICI2IiwgY3k6ICI2IiwgcjogIjMiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE4IDZWNSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTggMTF2LTEiIH1dLAogICAgWyJsaW5lIiwgeyB4MTogIjYiLCB4MjogIjYiLCB5MTogIjkiLCB5MjogIjIxIiB9XQogIF07CgogIGNvbnN0IEdpdFB1bGxSZXF1ZXN0Q3JlYXRlID0gWwogICAgWyJjaXJjbGUiLCB7IGN4OiAiNiIsIGN5OiAiNiIsIHI6ICIzIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk02IDl2MTIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTEzIDZoM2EyIDIgMCAwIDEgMiAydjMiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE4IDE1djYiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIxIDE4aC02IiB9XQogIF07CgogIGNvbnN0IEdpdFB1bGxSZXF1ZXN0ID0gWwogICAgWyJjaXJjbGUiLCB7IGN4OiAiMTgiLCBjeTogIjE4IiwgcjogIjMiIH1dLAogICAgWyJjaXJjbGUiLCB7IGN4OiAiNiIsIGN5OiAiNiIsIHI6ICIzIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xMyA2aDNhMiAyIDAgMCAxIDIgMnY3IiB9XSwKICAgIFsibGluZSIsIHsgeDE6ICI2IiwgeDI6ICI2IiwgeTE6ICI5IiwgeTI6ICIyMSIgfV0KICBdOwoKICBjb25zdCBHbGFzc1dhdGVyID0gWwogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTUuMTE2IDQuMTA0QTEgMSAwIDAgMSA2LjExIDNoMTEuNzhhMSAxIDAgMCAxIC45OTQgMS4xMDVMMTcuMTkgMjAuMjFBMiAyIDAgMCAxIDE1LjIgMjJIOC44YTIgMiAwIDAgMS0yLTEuNzl6IgogICAgICB9CiAgICBdLAogICAgWyJwYXRoIiwgeyBkOiAiTTYgMTJhNSA1IDAgMCAxIDYgMCA1IDUgMCAwIDAgNiAwIiB9XQogIF07CgogIGNvbnN0IEdsYXNzZXMgPSBbCiAgICBbImNpcmNsZSIsIHsgY3g6ICI2IiwgY3k6ICIxNSIsIHI6ICI0IiB9XSwKICAgIFsiY2lyY2xlIiwgeyBjeDogIjE4IiwgY3k6ICIxNSIsIHI6ICI0IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNCAxNWEyIDIgMCAwIDAtMi0yIDIgMiAwIDAgMC0yIDIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIuNSAxMyA1IDdjLjctMS4zIDEuNC0yIDMtMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMjEuNSAxMyAxOSA3Yy0uNy0xLjMtMS41LTItMy0yIiB9XQogIF07CgogIGNvbnN0IEdsb2JlQ2hlY2sgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJtMTUgNiAyIDIgNC00IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yIDEyaDIwQTEwIDEwIDAgMSAxIDEyIDJhMTQuNSAxNC41IDAgMCAwIDAgMjAgMTQuNSAxNC41IDAgMCAwIDQtMTAiIH1dCiAgXTsKCiAgY29uc3QgR2xvYmVMb2NrID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTE1LjY4NiAxNUExNC41IDE0LjUgMCAwIDEgMTIgMjJhMTQuNSAxNC41IDAgMCAxIDAtMjAgMTAgMTAgMCAxIDAgOS41NDIgMTMiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIgMTJoOC41IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yMCA2VjRhMiAyIDAgMSAwLTQgMHYyIiB9XSwKICAgIFsicmVjdCIsIHsgd2lkdGg6ICI4IiwgaGVpZ2h0OiAiNSIsIHg6ICIxNCIsIHk6ICI2Iiwgcng6ICIxIiB9XQogIF07CgogIGNvbnN0IEdsb2JlT2ZmID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTEwLjExNCA0LjQ2MkExNC41IDE0LjUgMCAwIDEgMTIgMmExMCAxMCAwIDAgMSA5LjMxMyAxMy42NDMiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE1LjU1NyAxNS41NTZBMTQuNSAxNC41IDAgMCAxIDEyIDIyIDEwIDEwIDAgMCAxIDQuOTI5IDQuOTI5IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNS44OTIgMTAuMjM0QTE0LjUgMTQuNSAwIDAgMCAxMiAyYTEwIDEwIDAgMCAwLTMuNjQzLjY4NyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTcuNjU2IDEySDIyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xOS4wNzEgMTkuMDcxQTEwIDEwIDAgMCAxIDEyIDIyIDE0LjUgMTQuNSAwIDAgMSA4LjQ0IDguNDUiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIgMTJoMTAiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTIgMiAyMCAyMCIgfV0KICBdOwoKICBjb25zdCBHbG9iZVggPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJtMTYgMyA1IDUiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIgMTJoMjBBMTAgMTAgMCAxIDEgMTIgMmExNC41IDE0LjUgMCAwIDAgMCAyMCAxNC41IDE0LjUgMCAwIDAgNC0xMCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMjEgMy01IDUiIH1dCiAgXTsKCiAgY29uc3QgR2xvYmUgPSBbCiAgICBbImNpcmNsZSIsIHsgY3g6ICIxMiIsIGN5OiAiMTIiLCByOiAiMTAiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDJhMTQuNSAxNC41IDAgMCAwIDAgMjAgMTQuNSAxNC41IDAgMCAwIDAtMjAiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIgMTJoMjAiIH1dCiAgXTsKCiAgY29uc3QgR29hbCA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xMiAxM1YybDggNC04IDQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIwLjU2MSAxMC4yMjJhOSA5IDAgMSAxLTEyLjU1LTUuMjkiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTguMDAyIDkuOTk3YTUgNSAwIDEgMCA4LjkgMi4wMiIgfV0KICBdOwoKICBjb25zdCBHcHUgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMiAxN2gxOGEyIDIgMCAwIDAgMi0yVjdhMiAyIDAgMCAwLTItMkgyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yIDIxVjMiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTcgMTd2M2ExIDEgMCAwIDAgMSAxaDVhMSAxIDAgMCAwIDEtMXYtMyIgfV0sCiAgICBbImNpcmNsZSIsIHsgY3g6ICIxNiIsIGN5OiAiMTEiLCByOiAiMiIgfV0sCiAgICBbImNpcmNsZSIsIHsgY3g6ICI4IiwgY3k6ICIxMSIsIHI6ICIyIiB9XQogIF07CgogIGNvbnN0IEdyYWR1YXRpb25DYXAgPSBbCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMjEuNDIgMTAuOTIyYTEgMSAwIDAgMC0uMDE5LTEuODM4TDEyLjgzIDUuMThhMiAyIDAgMCAwLTEuNjYgMEwyLjYgOS4wOGExIDEgMCAwIDAgMCAxLjgzMmw4LjU3IDMuOTA4YTIgMiAwIDAgMCAxLjY2IDB6IgogICAgICB9CiAgICBdLAogICAgWyJwYXRoIiwgeyBkOiAiTTIyIDEwdjYiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTYgMTIuNVYxNmE2IDMgMCAwIDAgMTIgMHYtMy41IiB9XQogIF07CgogIGNvbnN0IEdyYXBlID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTIyIDVWMmwtNS44OSA1Ljg5IiB9XSwKICAgIFsiY2lyY2xlIiwgeyBjeDogIjE2LjYiLCBjeTogIjE1Ljg5IiwgcjogIjMiIH1dLAogICAgWyJjaXJjbGUiLCB7IGN4OiAiOC4xMSIsIGN5OiAiNy40IiwgcjogIjMiIH1dLAogICAgWyJjaXJjbGUiLCB7IGN4OiAiMTIuMzUiLCBjeTogIjExLjY1IiwgcjogIjMiIH1dLAogICAgWyJjaXJjbGUiLCB7IGN4OiAiMTMuOTEiLCBjeTogIjUuODUiLCByOiAiMyIgfV0sCiAgICBbImNpcmNsZSIsIHsgY3g6ICIxOC4xNSIsIGN5OiAiMTAuMDkiLCByOiAiMyIgfV0sCiAgICBbImNpcmNsZSIsIHsgY3g6ICI2LjU2IiwgY3k6ICIxMy4yIiwgcjogIjMiIH1dLAogICAgWyJjaXJjbGUiLCB7IGN4OiAiMTAuOCIsIGN5OiAiMTcuNDQiLCByOiAiMyIgfV0sCiAgICBbImNpcmNsZSIsIHsgY3g6ICI1IiwgY3k6ICIxOSIsIHI6ICIzIiB9XQogIF07CgogIGNvbnN0IEdyaWQyeDJDaGVjayA9IFsKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk0xMiAzdjE3YTEgMSAwIDAgMS0xIDFINWEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmgxNGEyIDIgMCAwIDEgMiAydjZhMSAxIDAgMCAxLTEgMUgzIgogICAgICB9CiAgICBdLAogICAgWyJwYXRoIiwgeyBkOiAibTE2IDE5IDIgMiA0LTQiIH1dCiAgXTsKCiAgY29uc3QgR3JpZDJ4MlBsdXMgPSBbCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMTIgM3YxN2ExIDEgMCAwIDEtMSAxSDVhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoMTRhMiAyIDAgMCAxIDIgMnY2YTEgMSAwIDAgMS0xIDFIMyIKICAgICAgfQogICAgXSwKICAgIFsicGF0aCIsIHsgZDogIk0xNiAxOWg2IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xOSAyMnYtNiIgfV0KICBdOwoKICBjb25zdCBHcmlkMngyWCA9IFsKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk0xMiAzdjE3YTEgMSAwIDAgMS0xIDFINWEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmgxNGEyIDIgMCAwIDEgMiAydjZhMSAxIDAgMCAxLTEgMUgzIgogICAgICB9CiAgICBdLAogICAgWyJwYXRoIiwgeyBkOiAibTE2IDE2IDUgNSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMTYgMjEgNS01IiB9XQogIF07CgogIGNvbnN0IEdyaWQyeDIgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgM3YxOCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMyAxMmgxOCIgfV0sCiAgICBbInJlY3QiLCB7IHg6ICIzIiwgeTogIjMiLCB3aWR0aDogIjE4IiwgaGVpZ2h0OiAiMTgiLCByeDogIjIiIH1dCiAgXTsKCiAgY29uc3QgR3JpZDN4MiA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xNSAzdjE4IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0zIDEyaDE4IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk05IDN2MTgiIH1dLAogICAgWyJyZWN0IiwgeyB4OiAiMyIsIHk6ICIzIiwgd2lkdGg6ICIxOCIsIGhlaWdodDogIjE4Iiwgcng6ICIyIiB9XQogIF07CgogIGNvbnN0IEdyaWQzeDMgPSBbCiAgICBbInJlY3QiLCB7IHdpZHRoOiAiMTgiLCBoZWlnaHQ6ICIxOCIsIHg6ICIzIiwgeTogIjMiLCByeDogIjIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTMgOWgxOCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMyAxNWgxOCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNOSAzdjE4IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNSAzdjE4IiB9XQogIF07CgogIGNvbnN0IEdyaXBIb3Jpem9udGFsID0gWwogICAgWyJjaXJjbGUiLCB7IGN4OiAiMTIiLCBjeTogIjkiLCByOiAiMSIgfV0sCiAgICBbImNpcmNsZSIsIHsgY3g6ICIxOSIsIGN5OiAiOSIsIHI6ICIxIiB9XSwKICAgIFsiY2lyY2xlIiwgeyBjeDogIjUiLCBjeTogIjkiLCByOiAiMSIgfV0sCiAgICBbImNpcmNsZSIsIHsgY3g6ICIxMiIsIGN5OiAiMTUiLCByOiAiMSIgfV0sCiAgICBbImNpcmNsZSIsIHsgY3g6ICIxOSIsIGN5OiAiMTUiLCByOiAiMSIgfV0sCiAgICBbImNpcmNsZSIsIHsgY3g6ICI1IiwgY3k6ICIxNSIsIHI6ICIxIiB9XQogIF07CgogIGNvbnN0IEdyaXBWZXJ0aWNhbCA9IFsKICAgIFsiY2lyY2xlIiwgeyBjeDogIjkiLCBjeTogIjEyIiwgcjogIjEiIH1dLAogICAgWyJjaXJjbGUiLCB7IGN4OiAiOSIsIGN5OiAiNSIsIHI6ICIxIiB9XSwKICAgIFsiY2lyY2xlIiwgeyBjeDogIjkiLCBjeTogIjE5IiwgcjogIjEiIH1dLAogICAgWyJjaXJjbGUiLCB7IGN4OiAiMTUiLCBjeTogIjEyIiwgcjogIjEiIH1dLAogICAgWyJjaXJjbGUiLCB7IGN4OiAiMTUiLCBjeTogIjUiLCByOiAiMSIgfV0sCiAgICBbImNpcmNsZSIsIHsgY3g6ICIxNSIsIGN5OiAiMTkiLCByOiAiMSIgfV0KICBdOwoKICBjb25zdCBHcmlwID0gWwogICAgWyJjaXJjbGUiLCB7IGN4OiAiMTIiLCBjeTogIjUiLCByOiAiMSIgfV0sCiAgICBbImNpcmNsZSIsIHsgY3g6ICIxOSIsIGN5OiAiNSIsIHI6ICIxIiB9XSwKICAgIFsiY2lyY2xlIiwgeyBjeDogIjUiLCBjeTogIjUiLCByOiAiMSIgfV0sCiAgICBbImNpcmNsZSIsIHsgY3g6ICIxMiIsIGN5OiAiMTIiLCByOiAiMSIgfV0sCiAgICBbImNpcmNsZSIsIHsgY3g6ICIxOSIsIGN5OiAiMTIiLCByOiAiMSIgfV0sCiAgICBbImNpcmNsZSIsIHsgY3g6ICI1IiwgY3k6ICIxMiIsIHI6ICIxIiB9XSwKICAgIFsiY2lyY2xlIiwgeyBjeDogIjEyIiwgY3k6ICIxOSIsIHI6ICIxIiB9XSwKICAgIFsiY2lyY2xlIiwgeyBjeDogIjE5IiwgY3k6ICIxOSIsIHI6ICIxIiB9XSwKICAgIFsiY2lyY2xlIiwgeyBjeDogIjUiLCBjeTogIjE5IiwgcjogIjEiIH1dCiAgXTsKCiAgY29uc3QgR3JvdXAgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMyA3VjVjMC0xLjEuOS0yIDItMmgyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNyAzaDJjMS4xIDAgMiAuOSAyIDJ2MiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMjEgMTd2MmMwIDEuMS0uOSAyLTIgMmgtMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNyAyMUg1Yy0xLjEgMC0yLS45LTItMnYtMiIgfV0sCiAgICBbInJlY3QiLCB7IHdpZHRoOiAiNyIsIGhlaWdodDogIjUiLCB4OiAiNyIsIHk6ICI3Iiwgcng6ICIxIiB9XSwKICAgIFsicmVjdCIsIHsgd2lkdGg6ICI3IiwgaGVpZ2h0OiAiNSIsIHg6ICIxMCIsIHk6ICIxMiIsIHJ4OiAiMSIgfV0KICBdOwoKICBjb25zdCBHdWl0YXIgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJtMTEuOSAxMi4xIDQuNTE0LTQuNTE0IiB9XSwKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk0yMC4xIDIuM2ExIDEgMCAwIDAtMS40IDBsLTEuMTE0IDEuMTE0QTIgMiAwIDAgMCAxNyA0LjgyOHYxLjM0NGEyIDIgMCAwIDEtLjU4NiAxLjQxNEEyIDIgMCAwIDEgMTcuODI4IDdoMS4zNDRhMiAyIDAgMCAwIDEuNDE0LS41ODZMMjEuNyA1LjNhMSAxIDAgMCAwIDAtMS40eiIKICAgICAgfQogICAgXSwKICAgIFsicGF0aCIsIHsgZDogIm02IDE2IDIgMiIgfV0sCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNOC4yMyA5Ljg1QTMgMyAwIDAgMSAxMSA4YTUgNSAwIDAgMSA1IDUgMyAzIDAgMCAxLTEuODUgMi43N2wtLjkyLjM4QTIgMiAwIDAgMCAxMiAxOGE0IDQgMCAwIDEtNCA0IDYgNiAwIDAgMS02LTYgNCA0IDAgMCAxIDQtNCAyIDIgMCAwIDAgMS44NS0xLjIzeiIKICAgICAgfQogICAgXQogIF07CgogIGNvbnN0IEhhbSA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xMy4xNDQgMjEuMTQ0QTcuMjc0IDEwLjQ0NSA0NSAxIDAgMi44NTYgMTAuODU2IiB9XSwKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7IGQ6ICJNMTMuMTQ0IDIxLjE0NEE3LjI3NCA0LjM2NSA0NSAwIDAgMi44NTYgMTAuODU2YTcuMjc0IDQuMzY1IDQ1IDAgMCAxMC4yODggMTAuMjg4IiB9CiAgICBdLAogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTE2LjU2NSAxMC40MzUgMTguNiA4LjRhMi41MDEgMi41MDEgMCAxIDAgMS42NS00LjY1IDIuNSAyLjUgMCAxIDAtNC42NiAxLjY2bC0yLjAyNCAyLjAyNSIKICAgICAgfQogICAgXSwKICAgIFsicGF0aCIsIHsgZDogIm04LjUgMTYuNS0xLTEiIH1dCiAgXTsKCiAgY29uc3QgSGFtYnVyZ2VyID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDE2SDRhMiAyIDAgMSAxIDAtNGgxNmEyIDIgMCAxIDEgMCA0aC00LjI1IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk01IDEyYTIgMiAwIDAgMS0yLTIgOSA3IDAgMCAxIDE4IDAgMiAyIDAgMCAxLTIgMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNSAxNmEyIDIgMCAwIDAtMiAyIDMgMyAwIDAgMCAzIDNoMTJhMyAzIDAgMCAwIDMtMyAyIDIgMCAwIDAtMi0ycTAgMCAwIDAiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTYuNjcgMTIgNi4xMyA0LjZhMiAyIDAgMCAwIDIuOC0uNGwzLjE1LTQuMiIgfV0KICBdOwoKICBjb25zdCBIYW1tZXIgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJtMTUgMTItOS4zNzMgOS4zNzNhMSAxIDAgMCAxLTMuMDAxLTNMMTIgOSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMTggMTUgNC00IiB9XSwKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIm0yMS41IDExLjUtMS45MTQtMS45MTRBMiAyIDAgMCAxIDE5IDguMTcydi0uMzQ0YTIgMiAwIDAgMC0uNTg2LTEuNDE0bC0xLjY1Ny0xLjY1N0E2IDYgMCAwIDAgMTIuNTE2IDNIOWwxLjI0MyAxLjI0M0E2IDYgMCAwIDEgMTIgOC40ODVWMTBsMiAyaDEuMTcyYTIgMiAwIDAgMSAxLjQxNC41ODZMMTguNSAxNC41IgogICAgICB9CiAgICBdCiAgXTsKCiAgY29uc3QgSGFuZENvaW5zID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTExIDE1aDJhMiAyIDAgMSAwIDAtNGgtM2MtLjYgMC0xLjEuMi0xLjQuNkwzIDE3IiB9XSwKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIm03IDIxIDEuNi0xLjRjLjMtLjQuOC0uNiAxLjQtLjZoNGMxLjEgMCAyLjEtLjQgMi44LTEuMmw0LjYtNC40YTIgMiAwIDAgMC0yLjc1LTIuOTFsLTQuMiAzLjkiCiAgICAgIH0KICAgIF0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMiAxNiA2IDYiIH1dLAogICAgWyJjaXJjbGUiLCB7IGN4OiAiMTYiLCBjeTogIjkiLCByOiAiMi45IiB9XSwKICAgIFsiY2lyY2xlIiwgeyBjeDogIjYiLCBjeTogIjUiLCByOiAiMyIgfV0KICBdOwoKICBjb25zdCBIYW5kRmlzdCA9IFsKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk0xMi4wMzUgMTcuMDEyYTMgMyAwIDAgMC0zLTNsLS4zMTEtLjAwMmEuNzIuNzIgMCAwIDEtLjUwNS0xLjIyOWwxLjE5NS0xLjE5NUEyIDIgMCAwIDEgMTAuODI4IDExSDEyYTIgMiAwIDAgMCAwLTRIOS4yNDNhMyAzIDAgMCAwLTIuMTIyLjg3OWwtMi43MDcgMi43MDdBNC44MyA0LjgzIDAgMCAwIDMgMTRhOCA4IDAgMCAwIDggOGgyYTggOCAwIDAgMCA4LThWN2EyIDIgMCAxIDAtNCAwdjJhMiAyIDAgMSAwIDQgMCIKICAgICAgfQogICAgXSwKICAgIFsicGF0aCIsIHsgZDogIk0xMy44ODggOS42NjJBMiAyIDAgMCAwIDE3IDhWNUEyIDIgMCAxIDAgMTMgNSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNOSA1QTIgMiAwIDEgMCA1IDVWMTAiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTkgN1Y0QTIgMiAwIDEgMSAxMyA0VjcuMjY4IiB9XQogIF07CgogIGNvbnN0IEhhbmRHcmFiID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTE4IDExLjVWOWEyIDIgMCAwIDAtMi0yYTIgMiAwIDAgMC0yIDJ2MS40IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNCAxMFY4YTIgMiAwIDAgMC0yLTJhMiAyIDAgMCAwLTIgMnYyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xMCA5LjlWOWEyIDIgMCAwIDAtMi0yYTIgMiAwIDAgMC0yIDJ2NSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNiAxNGEyIDIgMCAwIDAtMi0yYTIgMiAwIDAgMC0yIDIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE4IDExYTIgMiAwIDEgMSA0IDB2M2E4IDggMCAwIDEtOCA4aC00YTggOCAwIDAgMS04LTggMiAyIDAgMSAxIDQgMCIgfV0KICBdOwoKICBjb25zdCBIYW5kSGVhcnQgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTEgMTRoMmEyIDIgMCAwIDAgMC00aC0zYy0uNiAwLTEuMS4yLTEuNC42TDMgMTYiIH1dLAogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAibTE0LjQ1IDEzLjM5IDUuMDUtNC42OTRDMjAuMTk2IDggMjEgNi44NSAyMSA1Ljc1YTIuNzUgMi43NSAwIDAgMC00Ljc5Ny0xLjgzNy4yNzYuMjc2IDAgMCAxLS40MDYgMEEyLjc1IDIuNzUgMCAwIDAgMTEgNS43NWMwIDEuMi44MDIgMi4yNDggMS41IDIuOTQ2TDE2IDExLjk1IgogICAgICB9CiAgICBdLAogICAgWyJwYXRoIiwgeyBkOiAibTIgMTUgNiA2IiB9XSwKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7IGQ6ICJtNyAyMCAxLjYtMS40Yy4zLS40LjgtLjYgMS40LS42aDRjMS4xIDAgMi4xLS40IDIuOC0xLjJsNC42LTQuNGExIDEgMCAwIDAtMi43NS0yLjkxIiB9CiAgICBdCiAgXTsKCiAgY29uc3QgSGFuZEhlbHBpbmcgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTEgMTJoMmEyIDIgMCAxIDAgMC00aC0zYy0uNiAwLTEuMS4yLTEuNC42TDMgMTQiIH1dLAogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAibTcgMTggMS42LTEuNGMuMy0uNC44LS42IDEuNC0uNmg0YzEuMSAwIDIuMS0uNCAyLjgtMS4ybDQuNi00LjRhMiAyIDAgMCAwLTIuNzUtMi45MWwtNC4yIDMuOSIKICAgICAgfQogICAgXSwKICAgIFsicGF0aCIsIHsgZDogIm0yIDEzIDYgNiIgfV0KICBdOwoKICBjb25zdCBIYW5kUGxhdHRlciA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xMiAzVjIiIH1dLAogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAibTE1LjQgMTcuNCAzLjItMi44YTIgMiAwIDEgMSAyLjggMi45bC0zLjYgMy4zYy0uNy44LTEuNyAxLjItMi44IDEuMmgtNGMtMS4xIDAtMi4xLS40LTIuOC0xLjJsLTEuMzAyLTEuNDY0QTEgMSAwIDAgMCA2LjE1MSAxOUg1IgogICAgICB9CiAgICBdLAogICAgWyJwYXRoIiwgeyBkOiAiTTIgMTRoMTJhMiAyIDAgMCAxIDAgNGgtMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNCAxMGgxNiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNSAxMGE3IDcgMCAwIDEgMTQgMCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNSAxNHY2YTEgMSAwIDAgMS0xIDFIMiIgfV0KICBdOwoKICBjb25zdCBIYW5kTWV0YWwgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTggMTIuNVYxMGEyIDIgMCAwIDAtMi0yYTIgMiAwIDAgMC0yIDJ2MS40IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNCAxMVY5YTIgMiAwIDEgMC00IDB2MiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTAgMTAuNVY1YTIgMiAwIDEgMC00IDB2OSIgfV0sCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJtNyAxNS0xLjc2LTEuNzZhMiAyIDAgMCAwLTIuODMgMi44MmwzLjYgMy42QzcuNSAyMS4xNCA5LjIgMjIgMTIgMjJoMmE4IDggMCAwIDAgOC04VjdhMiAyIDAgMSAwLTQgMHY1IgogICAgICB9CiAgICBdCiAgXTsKCiAgY29uc3QgSGFuZCA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xOCAxMVY2YTIgMiAwIDAgMC0yLTJhMiAyIDAgMCAwLTIgMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTQgMTBWNGEyIDIgMCAwIDAtMi0yYTIgMiAwIDAgMC0yIDJ2MiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTAgMTAuNVY2YTIgMiAwIDAgMC0yLTJhMiAyIDAgMCAwLTIgMnY4IiB9XSwKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk0xOCA4YTIgMiAwIDEgMSA0IDB2NmE4IDggMCAwIDEtOCA4aC0yYy0yLjggMC00LjUtLjg2LTUuOTktMi4zNGwtMy42LTMuNmEyIDIgMCAwIDEgMi44My0yLjgyTDcgMTUiCiAgICAgIH0KICAgIF0KICBdOwoKICBjb25zdCBIYW5kYmFnID0gWwogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTIuMDQ4IDE4LjU2NkEyIDIgMCAwIDAgNCAyMWgxNmEyIDIgMCAwIDAgMS45NTItMi40MzRsLTItOUEyIDIgMCAwIDAgMTggOEg2YTIgMiAwIDAgMC0xLjk1MiAxLjU2NnoiCiAgICAgIH0KICAgIF0sCiAgICBbInBhdGgiLCB7IGQ6ICJNOCAxMVY2YTQgNCAwIDAgMSA4IDB2NSIgfV0KICBdOwoKICBjb25zdCBIYW5kc2hha2UgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJtMTEgMTcgMiAyYTEgMSAwIDEgMCAzLTMiIH1dLAogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAibTE0IDE0IDIuNSAyLjVhMSAxIDAgMSAwIDMtM2wtMy44OC0zLjg4YTMgMyAwIDAgMC00LjI0IDBsLS44OC44OGExIDEgMCAxIDEtMy0zbDIuODEtMi44MWE1Ljc5IDUuNzkgMCAwIDEgNy4wNi0uODdsLjQ3LjI4YTIgMiAwIDAgMCAxLjQyLjI1TDIxIDQiCiAgICAgIH0KICAgIF0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMjEgMyAxIDExaC0yIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0zIDMgMiAxNGw2LjUgNi41YTEgMSAwIDEgMCAzLTMiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTMgNGg4IiB9XQogIF07CgogIGNvbnN0IEhhcmREcml2ZURvd25sb2FkID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDJ2OCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMTYgNi00IDQtNC00IiB9XSwKICAgIFsicmVjdCIsIHsgd2lkdGg6ICIyMCIsIGhlaWdodDogIjgiLCB4OiAiMiIsIHk6ICIxNCIsIHJ4OiAiMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNiAxOGguMDEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTEwIDE4aC4wMSIgfV0KICBdOwoKICBjb25zdCBIYXJkRHJpdmVVcGxvYWQgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJtMTYgNi00LTQtNCA0IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xMiAydjgiIH1dLAogICAgWyJyZWN0IiwgeyB3aWR0aDogIjIwIiwgaGVpZ2h0OiAiOCIsIHg6ICIyIiwgeTogIjE0Iiwgcng6ICIyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk02IDE4aC4wMSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTAgMThoLjAxIiB9XQogIF07CgogIGNvbnN0IEhhcmREcml2ZSA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xMCAxNmguMDEiIH1dLAogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTIuMjEyIDExLjU3N2EyIDIgMCAwIDAtLjIxMi44OTZWMThhMiAyIDAgMCAwIDIgMmgxNmEyIDIgMCAwIDAgMi0ydi01LjUyN2EyIDIgMCAwIDAtLjIxMi0uODk2TDE4LjU1IDUuMTFBMiAyIDAgMCAwIDE2Ljc2IDRINy4yNGEyIDIgMCAwIDAtMS43OSAxLjExeiIKICAgICAgfQogICAgXSwKICAgIFsicGF0aCIsIHsgZDogIk0yMS45NDYgMTIuMDEzSDIuMDU0IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk02IDE2aC4wMSIgfV0KICBdOwoKICBjb25zdCBIYXJkSGF0ID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTEwIDEwVjVhMSAxIDAgMCAxIDEtMWgyYTEgMSAwIDAgMSAxIDF2NSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTQgNmE2IDYgMCAwIDEgNiA2djMiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTQgMTV2LTNhNiA2IDAgMCAxIDYtNiIgfV0sCiAgICBbInJlY3QiLCB7IHg6ICIyIiwgeTogIjE1Iiwgd2lkdGg6ICIyMCIsIGhlaWdodDogIjQiLCByeDogIjEiIH1dCiAgXTsKCiAgY29uc3QgSGFzaCA9IFsKICAgIFsibGluZSIsIHsgeDE6ICI0IiwgeDI6ICIyMCIsIHkxOiAiOSIsIHkyOiAiOSIgfV0sCiAgICBbImxpbmUiLCB7IHgxOiAiNCIsIHgyOiAiMjAiLCB5MTogIjE1IiwgeTI6ICIxNSIgfV0sCiAgICBbImxpbmUiLCB7IHgxOiAiMTAiLCB4MjogIjgiLCB5MTogIjMiLCB5MjogIjIxIiB9XSwKICAgIFsibGluZSIsIHsgeDE6ICIxNiIsIHgyOiAiMTQiLCB5MTogIjMiLCB5MjogIjIxIiB9XQogIF07CgogIGNvbnN0IEhhdEdsYXNzZXMgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTQgMThhMiAyIDAgMCAwLTQgMCIgfV0sCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJtMTkgMTEtMi4xMS02LjY1N2EyIDIgMCAwIDAtMi43NTItMS4xNDhsLTEuMjc2LjYxQTIgMiAwIDAgMSAxMiA0SDguNWEyIDIgMCAwIDAtMS45MjUgMS40NTZMNSAxMSIKICAgICAgfQogICAgXSwKICAgIFsicGF0aCIsIHsgZDogIk0yIDExaDIwIiB9XSwKICAgIFsiY2lyY2xlIiwgeyBjeDogIjE3IiwgY3k6ICIxOCIsIHI6ICIzIiB9XSwKICAgIFsiY2lyY2xlIiwgeyBjeDogIjciLCBjeTogIjE4IiwgcjogIjMiIH1dCiAgXTsKCiAgY29uc3QgSGF6ZSA9IFsKICAgIFsicGF0aCIsIHsgZDogIm01LjIgNi4yIDEuNCAxLjQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIgMTNoMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMjAgMTNoMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMTcuNCA3LjYgMS40LTEuNCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMjIgMTdIMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMjIgMjFIMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTYgMTNhNCA0IDAgMCAwLTggMCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgNVYyLjUiIH1dCiAgXTsKCiAgY29uc3QgSGQgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTAgMTJINiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTAgMTVWOSIgfV0sCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMTQgMTQuNWEuNS41IDAgMCAwIC41LjVoMWEyLjUgMi41IDAgMCAwIDIuNS0yLjV2LTFBMi41IDIuNSAwIDAgMCAxNS41IDloLTFhLjUuNSAwIDAgMC0uNS41eiIKICAgICAgfQogICAgXSwKICAgIFsicGF0aCIsIHsgZDogIk02IDE1VjkiIH1dLAogICAgWyJyZWN0IiwgeyB4OiAiMiIsIHk6ICI1Iiwgd2lkdGg6ICIyMCIsIGhlaWdodDogIjE0Iiwgcng6ICIyIiB9XQogIF07CgogIGNvbnN0IEhkbWlQb3J0ID0gWwogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTIyIDlhMSAxIDAgMDAtMS0xSDNhMSAxIDAgMDAtMSAxdjRhMSAxIDAgMDAxIDFoLjVhMiAyIDAgMDExLjYuOGwuMy40QTIgMiAwIDAwNyAxNmgxMGEyIDIgMCAwMDEuNi0uOGwuMy0uNGEyIDIgMCAwMTEuNi0uOGguNWExIDEgMCAwMDEtMXoiCiAgICAgIH0KICAgIF0sCiAgICBbInBhdGgiLCB7IGQ6ICJNOCAxMmg4IiB9XQogIF07CgogIGNvbnN0IEhlYWRpbmcxID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTQgMTJoOCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNCAxOFY2IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xMiAxOFY2IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0xNyAxMiAzLTJ2OCIgfV0KICBdOwoKICBjb25zdCBIZWFkaW5nMiA9IFsKICAgIFsicGF0aCIsIHsgZDogIk00IDEyaDgiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTQgMThWNiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgMThWNiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMjEgMThoLTRjMC00IDQtMyA0LTYgMC0xLjUtMi0yLjUtNC0xIiB9XQogIF07CgogIGNvbnN0IEhlYWRpbmczID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTQgMTJoOCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNCAxOFY2IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xMiAxOFY2IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNy41IDEwLjVjMS43LTEgMy41IDAgMy41IDEuNWEyIDIgMCAwIDEtMiAyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNyAxNy41YzIgMS41IDQgLjMgNC0xLjVhMiAyIDAgMCAwLTItMiIgfV0KICBdOwoKICBjb25zdCBIZWFkaW5nNCA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xMiAxOFY2IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNyAxMHYzYTEgMSAwIDAgMCAxIDFoMyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMjEgMTB2OCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNCAxMmg4IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk00IDE4VjYiIH1dCiAgXTsKCiAgY29uc3QgSGVhZGluZzUgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNNCAxMmg4IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk00IDE4VjYiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDE4VjYiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE3IDEzdi0zaDQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE3IDE3LjdjLjQuMi44LjMgMS4zLjMgMS41IDAgMi43LTEuMSAyLjctMi41UzE5LjggMTMgMTguMyAxM0gxNyIgfV0KICBdOwoKICBjb25zdCBIZWFkaW5nNiA9IFsKICAgIFsicGF0aCIsIHsgZDogIk00IDEyaDgiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTQgMThWNiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgMThWNiIgfV0sCiAgICBbImNpcmNsZSIsIHsgY3g6ICIxOSIsIGN5OiAiMTYiLCByOiAiMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMjAgMTBjLTIgMi0zIDMuNS0zIDYiIH1dCiAgXTsKCiAgY29uc3QgSGVhZGluZyA9IFsKICAgIFsicGF0aCIsIHsgZDogIk02IDEyaDEyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk02IDIwVjQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE4IDIwVjQiIH1dCiAgXTsKCiAgY29uc3QgSGVhZHBob25lT2ZmID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTIxIDE0aC0xLjM0MyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNOS4xMjggMy40N0E5IDkgMCAwIDEgMjEgMTJ2My4zNDMiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTIgMiAyMCAyMCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMjAuNDE0IDIwLjQxNEEyIDIgMCAwIDEgMTkgMjFoLTFhMiAyIDAgMCAxLTItMnYtMyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMyAxNGgzYTIgMiAwIDAgMSAyIDJ2M2EyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMnYtN2E5IDkgMCAwIDEgMi42MzYtNi4zNjQiIH1dCiAgXTsKCiAgY29uc3QgSGVhZHBob25lcyA9IFsKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk0zIDE0aDNhMiAyIDAgMCAxIDIgMnYzYTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0ydi03YTkgOSAwIDAgMSAxOCAwdjdhMiAyIDAgMCAxLTIgMmgtMWEyIDIgMCAwIDEtMi0ydi0zYTIgMiAwIDAgMSAyLTJoMyIKICAgICAgfQogICAgXQogIF07CgogIGNvbnN0IEhlYWRzZXQgPSBbCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMyAxMWgzYTIgMiAwIDAgMSAyIDJ2M2EyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMnYtNVptMCAwYTkgOSAwIDEgMSAxOCAwbTAgMHY1YTIgMiAwIDAgMS0yIDJoLTFhMiAyIDAgMCAxLTItMnYtM2EyIDIgMCAwIDEgMi0yaDNaIgogICAgICB9CiAgICBdLAogICAgWyJwYXRoIiwgeyBkOiAiTTIxIDE2djJhNCA0IDAgMCAxLTQgNGgtNSIgfV0KICBdOwoKICBjb25zdCBIZWFydENyYWNrID0gWwogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTEyLjQwOSA1LjgyNGMtLjcwMi43OTItMS4xNSAxLjQ5Ni0xLjQxNSAyLjE2NmwyLjE1MyAyLjE1NmEuNS41IDAgMCAxIDAgLjcwN2wtMi4yOTMgMi4yOTNhLjUuNSAwIDAgMCAwIC43MDdMMTIgMTUiCiAgICAgIH0KICAgIF0sCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMTMuNTA4IDIwLjMxM2EyIDIgMCAwIDEtMyAuMDE5TDUgMTVjLTEuNS0xLjUtMy0zLjItMy01LjVhNS41IDUuNSAwIDAgMSA5LjU5MS0zLjY3Ny42LjYgMCAwIDAgLjgxOC4wMDFBNS41IDUuNSAwIDAgMSAyMiA5LjVjMCAyLjI5LTEuNSA0LTMgNS41eiIKICAgICAgfQogICAgXQogIF07CgogIGNvbnN0IEhlYXJ0SGFuZHNoYWtlID0gWwogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTE5LjQxNCAxNC40MTRDMjEgMTIuODI4IDIyIDExLjUgMjIgOS41YTUuNSA1LjUgMCAwIDAtOS41OTEtMy42NzYuNi42IDAgMCAxLS44MTguMDAxQTUuNSA1LjUgMCAwIDAgMiA5LjVjMCAyLjMgMS41IDQgMyA1LjVsNS41MzUgNS4zNjJhMiAyIDAgMCAwIDIuODc5LjA1MiAyLjEyIDIuMTIgMCAwIDAtLjAwNC0zIDIuMTI0IDIuMTI0IDAgMSAwIDMtMyAyLjEyNCAyLjEyNCAwIDAgMCAzLjAwNCAwIDIgMiAwIDAgMCAwLTIuODI4bC0xLjg4MS0xLjg4MmEyLjQxIDIuNDEgMCAwIDAtMy40MDkgMGwtMS43MSAxLjcxYTIgMiAwIDAgMS0yLjgyOCAwIDIgMiAwIDAgMSAwLTIuODI4bDIuODIzLTIuNzYyIgogICAgICB9CiAgICBdCiAgXTsKCiAgY29uc3QgSGVhcnRNaW51cyA9IFsKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIm0xNC44NzYgMTguOTktMS4zNjggMS4zMjNhMiAyIDAgMCAxLTMgLjAxOUw1IDE1Yy0xLjUtMS41LTMtMy4yLTMtNS41YTUuNSA1LjUgMCAwIDEgOS41OTEtMy42NzYuNTYuNTYgMCAwIDAgLjgxOCAwQTUuNDkgNS40OSAwIDAgMSAyMiA5LjVhNS4yIDUuMiAwIDAgMS0uMjQ0IDEuNTcyIgogICAgICB9CiAgICBdLAogICAgWyJwYXRoIiwgeyBkOiAiTTE1IDE1aDYiIH1dCiAgXTsKCiAgY29uc3QgSGVhcnRPZmYgPSBbCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMTAuNSA0Ljg5M2E1LjUgNS41IDAgMCAxIDEuMDkxLjkzMS41Ni41NiAwIDAgMCAuODE4IDBBNS40OSA1LjQ5IDAgMCAxIDIyIDkuNWMwIDEuODcyLTEuMDAyIDMuMzU2LTIuMTg3IDQuNjU1IgogICAgICB9CiAgICBdLAogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAibTE2Ljk2NyAxNi45NjctMy40NTkgMy4zNDZhMiAyIDAgMCAxLTMgLjAxOUw1IDE1Yy0xLjUtMS41LTMtMy4yLTMtNS41YTUuNSA1LjUgMCAwIDEgMi43NDctNC43NjEiCiAgICAgIH0KICAgIF0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMiAyIDIwIDIwIiB9XQogIF07CgogIGNvbnN0IEhlYXJ0UGx1cyA9IFsKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIm0xNC40NzkgMTkuMzc0LS45NzEuOTM5YTIgMiAwIDAgMS0zIC4wMTlMNSAxNWMtMS41LTEuNS0zLTMuMi0zLTUuNWE1LjUgNS41IDAgMCAxIDkuNTkxLTMuNjc2LjU2LjU2IDAgMCAwIC44MTggMEE1LjQ5IDUuNDkgMCAwIDEgMjIgOS41YTUuMiA1LjIgMCAwIDEtLjIxOSAxLjQ5IgogICAgICB9CiAgICBdLAogICAgWyJwYXRoIiwgeyBkOiAiTTE1IDE1aDYiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE4IDEydjYiIH1dCiAgXTsKCiAgY29uc3QgSGVhcnRQdWxzZSA9IFsKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk0yIDkuNWE1LjUgNS41IDAgMCAxIDkuNTkxLTMuNjc2LjU2LjU2IDAgMCAwIC44MTggMEE1LjQ5IDUuNDkgMCAwIDEgMjIgOS41YzAgMi4yOS0xLjUgNC0zIDUuNWwtNS40OTIgNS4zMTNhMiAyIDAgMCAxLTMgLjAxOUw1IDE1Yy0xLjUtMS41LTMtMy4yLTMtNS41IgogICAgICB9CiAgICBdLAogICAgWyJwYXRoIiwgeyBkOiAiTTMuMjIgMTNIOS41bC41LTEgMiA0LjUgMi03IDEuNSAzLjVoNS4yNyIgfV0KICBdOwoKICBjb25zdCBIZWFydFggPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJtMTUuNSAxMi41IDUgNSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMjAuNSAxMi41LTUgNSIgfV0sCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMjEuOTU1IDguNzc0YTUuNSA1LjUgMCAwIDAtOS41NDYtMi45NS42LjYgMCAwIDEtLjgxOCAwQTUuNSA1LjUgMCAwIDAgMiA5LjVjMCAyLjMgMS41IDQgMyA1LjVsNS41MDggNS4zMzJhMiAyIDAgMCAwIDIuNTcuMzUyIgogICAgICB9CiAgICBdCiAgXTsKCiAgY29uc3QgSGVhcnQgPSBbCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMiA5LjVhNS41IDUuNSAwIDAgMSA5LjU5MS0zLjY3Ni41Ni41NiAwIDAgMCAuODE4IDBBNS40OSA1LjQ5IDAgMCAxIDIyIDkuNWMwIDIuMjktMS41IDQtMyA1LjVsLTUuNDkyIDUuMzEzYTIgMiAwIDAgMS0zIC4wMTlMNSAxNWMtMS41LTEuNS0zLTMuMi0zLTUuNSIKICAgICAgfQogICAgXQogIF07CgogIGNvbnN0IEhlYXRlciA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xMSA4YzItMy0yLTMgMC02IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNS41IDhjMi0zLTItMyAwLTYiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTYgMTBoLjAxIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk02IDE0aC4wMSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTAgMTZ2LTQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE0IDE2di00IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xOCAxNnYtNCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMjAgNmEyIDIgMCAwIDEgMiAydjEwYTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0yVjhhMiAyIDAgMCAxIDItMmgzIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk01IDIwdjIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE5IDIwdjIiIH1dCiAgXTsKCiAgY29uc3QgSGVsaWNvcHRlciA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xMSAxN3Y0IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNCAzdjhhMiAyIDAgMCAwIDIgMmg1Ljg2NSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTcgMTd2NCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTggMTdhNCA0IDAgMCAwIDQtNCA4IDYgMCAwIDAtOC02IDYgNSAwIDAgMC02IDV2M2EyIDIgMCAwIDAgMiAyeiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMiAxMHY1IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk02IDNoMTYiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTcgMjFoMTQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTggMTNIMiIgfV0KICBdOwoKICBjb25zdCBIZXhhZ29uID0gWwogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTIxIDE2VjhhMiAyIDAgMCAwLTEtMS43M2wtNy00YTIgMiAwIDAgMC0yIDBsLTcgNEEyIDIgMCAwIDAgMyA4djhhMiAyIDAgMCAwIDEgMS43M2w3IDRhMiAyIDAgMCAwIDIgMGw3LTRBMiAyIDAgMCAwIDIxIDE2eiIKICAgICAgfQogICAgXQogIF07CgogIGNvbnN0IEhpZ2hsaWdodGVyID0gWwogICAgWyJwYXRoIiwgeyBkOiAibTkgMTEtNiA2djNoOWwzLTMiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTIyIDEyLTQuNiA0LjZhMiAyIDAgMCAxLTIuOCAwbC01LjItNS4yYTIgMiAwIDAgMSAwLTIuOEwxNCA0IiB9XQogIF07CgogIGNvbnN0IEhvcE9mZiA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xMC44MiAxNi4xMmMxLjY5LjYgMy45MS43OSA1LjE4Ljg1LjI4LjAxLjUzLS4wOS43LS4yNyIgfV0sCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgeyBkOiAiTTExLjE0IDIwLjU3Yy41Mi4yNCAyLjQ0IDEuMTIgNC4wOCAxLjM3LjQ2LjA2Ljg2LS4yNS45LS43MS4xMi0xLjUyLS4zLTMuNDMtLjUtNC4yOCIgfQogICAgXSwKICAgIFsicGF0aCIsIHsgZDogIk0xNi4xMyAyMS4wNWMxLjY1LjYzIDMuNjguODQgNC44Ny45MWEuOS45IDAgMCAwIC43LS4yNiIgfV0sCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgeyBkOiAiTTE3Ljk5IDUuNTJhMjAuODMgMjAuODMgMCAwIDEgMy4xNSA0LjUuOC44IDAgMCAxLS42OCAxLjEzYy0xLjE3LjEtMi41LjAyLTMuOS0uMjUiIH0KICAgIF0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMjAuNTcgMTEuMTRjLjI0LjUyIDEuMTIgMi40NCAxLjM3IDQuMDguMDQuMy0uMDguNTktLjMxLjc1IiB9XSwKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk00LjkzIDQuOTNhMTAgMTAgMCAwIDAtLjY3IDEzLjRjLjM1LjQzLjk2LjQgMS4xNy0uMTIuNjktMS43MSAxLjA3LTUuMDcgMS4wNy02LjcxIDEuMzQuNDUgMy4xLjkgNC44OC42MmEuODUuODUgMCAwIDAgLjQ4LS4yNCIKICAgICAgfQogICAgXSwKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7IGQ6ICJNNS41MiAxNy45OWMxLjA1Ljk1IDIuOTEgMi40MiA0LjUgMy4xNWEuOC44IDAgMCAwIDEuMTMtLjY4Yy4yLTIuMzQtLjMzLTUuMy0xLjU3LTguMjgiIH0KICAgIF0sCiAgICBbInBhdGgiLCB7IGQ6ICJNOC4zNSAyLjY4YTEwIDEwIDAgMCAxIDkuOTggMS41OGMuNDMuMzUuNC45Ni0uMTIgMS4xNy0xLjUuNi00LjMuOTgtNi4wNyAxLjA1IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0yIDIgMjAgMjAiIH1dCiAgXTsKCiAgY29uc3QgSG9wID0gWwogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsgZDogIk0xMC44MiAxNi4xMmMxLjY5LjYgMy45MS43OSA1LjE4Ljg1LjU1LjAzIDEtLjQyLjk3LS45Ny0uMDYtMS4yNy0uMjYtMy41LS44NS01LjE4IiB9CiAgICBdLAogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTExLjUgNi41YzEuNjQgMCA1LS4zOCA2LjcxLTEuMDcuNTItLjIuNTUtLjgyLjEyLTEuMTdBMTAgMTAgMCAwIDAgNC4yNiAxOC4zM2MuMzUuNDMuOTYuNCAxLjE3LS4xMi42OS0xLjcxIDEuMDctNS4wNyAxLjA3LTYuNzEgMS4zNC40NSAzLjEuOSA0Ljg4LjYyYS44OC44OCAwIDAgMCAuNzMtLjc0Yy4zLTIuMTQtLjE1LTMuNS0uNjEtNC44OCIKICAgICAgfQogICAgXSwKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7IGQ6ICJNMTUuNjIgMTYuOTVjLjIuODUuNjIgMi43Ni41IDQuMjhhLjc3Ljc3IDAgMCAxLS45LjcgMTYuNjQgMTYuNjQgMCAwIDEtNC4wOC0xLjM2IiB9CiAgICBdLAogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsgZDogIk0xNi4xMyAyMS4wNWMxLjY1LjYzIDMuNjguODQgNC44Ny45MWEuOS45IDAgMCAwIC45Ni0uOTYgMTcuNjggMTcuNjggMCAwIDAtLjktNC44NyIgfQogICAgXSwKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7IGQ6ICJNMTYuOTQgMTUuNjJjLjg2LjIgMi43Ny42MiA0LjI5LjVhLjc3Ljc3IDAgMCAwIC43LS45IDE2LjY0IDE2LjY0IDAgMCAwLTEuMzYtNC4wOCIgfQogICAgXSwKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7IGQ6ICJNMTcuOTkgNS41MmEyMC44MiAyMC44MiAwIDAgMSAzLjE1IDQuNS44LjggMCAwIDEtLjY4IDEuMTNjLTIuMzMuMi01LjMtLjMyLTguMjctMS41NyIgfQogICAgXSwKICAgIFsicGF0aCIsIHsgZDogIk00LjkzIDQuOTMgMyAzYS43LjcgMCAwIDEgMC0xIiB9XSwKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk05LjU4IDEyLjE4YzEuMjQgMi45OCAxLjc3IDUuOTUgMS41NyA4LjI4YS44LjggMCAwIDEtMS4xMy42OCAyMC44MiAyMC44MiAwIDAgMS00LjUtMy4xNSIKICAgICAgfQogICAgXQogIF07CgogIGNvbnN0IEhvc3BpdGFsID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDd2NCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTQgMjF2LTNhMiAyIDAgMCAwLTQgMHYzIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNCA5aC00IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xOCAxMWgyYTIgMiAwIDAgMSAyIDJ2NmEyIDIgMCAwIDEtMiAySDRhMiAyIDAgMCAxLTItMnYtOWEyIDIgMCAwIDEgMi0yaDIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE4IDIxVjVhMiAyIDAgMCAwLTItMkg4YTIgMiAwIDAgMC0yIDJ2MTYiIH1dCiAgXTsKCiAgY29uc3QgSG90ZWwgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTAgMjJ2LTYuNTciIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDExaC4wMSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgN2guMDEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE0IDE1LjQzVjIyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNSAxNmE1IDUgMCAwIDAtNiAwIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNiAxMWguMDEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE2IDdoLjAxIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk04IDExaC4wMSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNOCA3aC4wMSIgfV0sCiAgICBbInJlY3QiLCB7IHg6ICI0IiwgeTogIjIiLCB3aWR0aDogIjE2IiwgaGVpZ2h0OiAiMjAiLCByeDogIjIiIH1dCiAgXTsKCiAgY29uc3QgSG91cmdsYXNzID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTUgMjJoMTQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTUgMmgxNCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTcgMjJ2LTQuMTcyYTIgMiAwIDAgMC0uNTg2LTEuNDE0TDEyIDEybC00LjQxNCA0LjQxNEEyIDIgMCAwIDAgNyAxNy44MjhWMjIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTcgMnY0LjE3MmEyIDIgMCAwIDAgLjU4NiAxLjQxNEwxMiAxMmw0LjQxNC00LjQxNEEyIDIgMCAwIDAgMTcgNi4xNzJWMiIgfV0KICBdOwoKICBjb25zdCBIb3VzZUhlYXJ0ID0gWwogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTguNjIgMTMuOEEyLjI1IDIuMjUgMCAxIDEgMTIgMTAuODM2YTIuMjUgMi4yNSAwIDEgMSAzLjM4IDIuOTY2bC0yLjYyNiAyLjg1NmEuOTk4Ljk5OCAwIDAgMS0xLjUwNyAweiIKICAgICAgfQogICAgXSwKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk0zIDEwYTIgMiAwIDAgMSAuNzA5LTEuNTI4bDctNmEyIDIgMCAwIDEgMi41ODIgMGw3IDZBMiAyIDAgMCAxIDIxIDEwdjlhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJ6IgogICAgICB9CiAgICBdCiAgXTsKCiAgY29uc3QgSG91c2VQbHVnID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTEwIDEyVjguOTY0IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNCAxMlY4Ljk2NCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTUgMTJhMSAxIDAgMCAxIDEgMXYyYTIgMiAwIDAgMS0yIDJoLTRhMiAyIDAgMCAxLTItMnYtMmExIDEgMCAwIDEgMS0xeiIgfV0sCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNOC41IDIxSDVhMiAyIDAgMCAxLTItMnYtOWEyIDIgMCAwIDEgLjcwOS0xLjUyOGw3LTZhMiAyIDAgMCAxIDIuNTgyIDBsNyA2QTIgMiAwIDAgMSAyMSAxMHY5YTIgMiAwIDAgMS0yIDJoLTVhMiAyIDAgMCAxLTItMnYtMiIKICAgICAgfQogICAgXQogIF07CgogIGNvbnN0IEhvdXNlUGx1cyA9IFsKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk0xMi4zNSAyMUg1YTIgMiAwIDAgMS0yLTJ2LTlhMiAyIDAgMCAxIC43MS0xLjUzbDctNmEyIDIgMCAwIDEgMi41OCAwbDcgNkEyIDIgMCAwIDEgMjEgMTB2Mi4zNSIKICAgICAgfQogICAgXSwKICAgIFsicGF0aCIsIHsgZDogIk0xNC44IDEyLjRBMSAxIDAgMCAwIDE0IDEyaC00YTEgMSAwIDAgMC0xIDF2OCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTUgMThoNiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTggMTV2NiIgfV0KICBdOwoKICBjb25zdCBIb3VzZVdpZmkgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNOS41IDEzLjg2NmE0IDQgMCAwIDEgNSAuMDEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDE3aC4wMSIgfV0sCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMyAxMGEyIDIgMCAwIDEgLjcwOS0xLjUyOGw3LTZhMiAyIDAgMCAxIDIuNTgyIDBsNyA2QTIgMiAwIDAgMSAyMSAxMHY5YTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0yeiIKICAgICAgfQogICAgXSwKICAgIFsicGF0aCIsIHsgZDogIk03IDEwLjc1NGE4IDggMCAwIDEgMTAgMCIgfV0KICBdOwoKICBjb25zdCBIb3VzZSA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xNSAyMXYtOGExIDEgMCAwIDAtMS0xaC00YTEgMSAwIDAgMC0xIDF2OCIgfV0sCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMyAxMGEyIDIgMCAwIDEgLjcwOS0xLjUyOGw3LTZhMiAyIDAgMCAxIDIuNTgyIDBsNyA2QTIgMiAwIDAgMSAyMSAxMHY5YTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0yeiIKICAgICAgfQogICAgXQogIF07CgogIGNvbnN0IEljZUNyZWFtQm93bCA9IFsKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7IGQ6ICJNMTIgMTdjNSAwIDgtMi42OSA4LTZINGMwIDMuMzEgMyA2IDggNm0tNCA0aDhtLTQtM3YzTTUuMTQgMTFhMy41IDMuNSAwIDEgMSA2LjcxIDAiIH0KICAgIF0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIuMTQgMTFhMy41IDMuNSAwIDEgMSA2LjcxIDAiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE1LjUgNi41YTMuNSAzLjUgMCAxIDAtNyAwIiB9XQogIF07CgogIGNvbnN0IEljZUNyZWFtQ29uZSA9IFsKICAgIFsicGF0aCIsIHsgZDogIm03IDExIDQuMDggMTAuMzVhMSAxIDAgMCAwIDEuODQgMEwxNyAxMSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTcgN0E1IDUgMCAwIDAgNyA3IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNyA3YTIgMiAwIDAgMSAwIDRIN2EyIDIgMCAwIDEgMC00IiB9XQogIF07CgogIGNvbnN0IElkQ2FyZExhbnlhcmQgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTMuNSA4aC0zIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0xNSAyLTEgMmgzYTIgMiAwIDAgMSAyIDJ2MTRhMiAyIDAgMCAxLTIgMkg3YTIgMiAwIDAgMS0yLTJWNmEyIDIgMCAwIDEgMi0yaDMiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE2Ljg5OSAyMkE1IDUgMCAwIDAgNy4xIDIyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm05IDIgMyA2IiB9XSwKICAgIFsiY2lyY2xlIiwgeyBjeDogIjEyIiwgY3k6ICIxNSIsIHI6ICIzIiB9XQogIF07CgogIGNvbnN0IElkQ2FyZCA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xNiAxMGgyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNiAxNGgyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk02LjE3IDE1YTMgMyAwIDAgMSA1LjY2IDAiIH1dLAogICAgWyJjaXJjbGUiLCB7IGN4OiAiOSIsIGN5OiAiMTEiLCByOiAiMiIgfV0sCiAgICBbInJlY3QiLCB7IHg6ICIyIiwgeTogIjUiLCB3aWR0aDogIjIwIiwgaGVpZ2h0OiAiMTQiLCByeDogIjIiIH1dCiAgXTsKCiAgY29uc3QgSW1hZ2VEb3duID0gWwogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTEwLjMgMjFINWEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmgxNGEyIDIgMCAwIDEgMiAydjEwbC0zLjEtMy4xYTIgMiAwIDAgMC0yLjgxNC4wMTRMNiAyMSIKICAgICAgfQogICAgXSwKICAgIFsicGF0aCIsIHsgZDogIm0xNCAxOSAzIDN2LTUuNSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMTcgMjIgMy0zIiB9XSwKICAgIFsiY2lyY2xlIiwgeyBjeDogIjkiLCBjeTogIjkiLCByOiAiMiIgfV0KICBdOwoKICBjb25zdCBJbWFnZU1pbnVzID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTIxIDl2MTBhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDciIH1dLAogICAgWyJsaW5lIiwgeyB4MTogIjE2IiwgeDI6ICIyMiIsIHkxOiAiNSIsIHkyOiAiNSIgfV0sCiAgICBbImNpcmNsZSIsIHsgY3g6ICI5IiwgY3k6ICI5IiwgcjogIjIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTIxIDE1LTMuMDg2LTMuMDg2YTIgMiAwIDAgMC0yLjgyOCAwTDYgMjEiIH1dCiAgXTsKCiAgY29uc3QgSW1hZ2VPZmYgPSBbCiAgICBbImxpbmUiLCB7IHgxOiAiMiIsIHgyOiAiMjIiLCB5MTogIjIiLCB5MjogIjIyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xMC40MSAxMC40MWEyIDIgMCAxIDEtMi44My0yLjgzIiB9XSwKICAgIFsibGluZSIsIHsgeDE6ICIxMy41IiwgeDI6ICI2IiwgeTE6ICIxMy41IiwgeTI6ICIyMSIgfV0sCiAgICBbImxpbmUiLCB7IHgxOiAiMTgiLCB4MjogIjIxIiwgeTE6ICIxMiIsIHkyOiAiMTUiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTMuNTkgMy41OUExLjk5IDEuOTkgMCAwIDAgMyA1djE0YTIgMiAwIDAgMCAyIDJoMTRjLjU1IDAgMS4wNTItLjIyIDEuNDEtLjU5IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yMSAxNVY1YTIgMiAwIDAgMC0yLTJIOSIgfV0KICBdOwoKICBjb25zdCBJbWFnZVBsYXkgPSBbCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMTUgMTUuMDAzYTEgMSAwIDAgMSAxLjUxNy0uODU5bDQuOTk3IDIuOTk3YTEgMSAwIDAgMSAwIDEuNzE4bC00Ljk5NyAyLjk5N2ExIDEgMCAwIDEtMS41MTctLjg2eiIKICAgICAgfQogICAgXSwKICAgIFsicGF0aCIsIHsgZDogIk0yMSAxMi4xN1Y1YTIgMiAwIDAgMC0yLTJINWEyIDIgMCAwIDAtMiAydjE0YTIgMiAwIDAgMCAyIDJoNiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtNiAyMSA1LTUiIH1dLAogICAgWyJjaXJjbGUiLCB7IGN4OiAiOSIsIGN5OiAiOSIsIHI6ICIyIiB9XQogIF07CgogIGNvbnN0IEltYWdlUGx1cyA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xNiA1aDYiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE5IDJ2NiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMjEgMTEuNVYxOWEyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoNy41IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0yMSAxNS0zLjA4Ni0zLjA4NmEyIDIgMCAwIDAtMi44MjggMEw2IDIxIiB9XSwKICAgIFsiY2lyY2xlIiwgeyBjeDogIjkiLCBjeTogIjkiLCByOiAiMiIgfV0KICBdOwoKICBjb25zdCBJbWFnZVVwID0gWwogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTEwLjMgMjFINWEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmgxNGEyIDIgMCAwIDEgMiAydjEwbC0zLjEtMy4xYTIgMiAwIDAgMC0yLjgxNC4wMTRMNiAyMSIKICAgICAgfQogICAgXSwKICAgIFsicGF0aCIsIHsgZDogIm0xNCAxOS41IDMtMyAzIDMiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE3IDIydi01LjUiIH1dLAogICAgWyJjaXJjbGUiLCB7IGN4OiAiOSIsIGN5OiAiOSIsIHI6ICIyIiB9XQogIF07CgogIGNvbnN0IEltYWdlVXBzY2FsZSA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xNiAzaDV2NSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTcgMjFoMmEyIDIgMCAwIDAgMi0yIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yMSAxMnYzIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0yMSAzLTUgNSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMyA3VjVhMiAyIDAgMCAxIDItMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtNSAyMSA0LjE0NC00LjE0NGExLjIxIDEuMjEgMCAwIDEgMS43MTIgMEwxMyAxOSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNOSAzaDMiIH1dLAogICAgWyJyZWN0IiwgeyB4OiAiMyIsIHk6ICIxMSIsIHdpZHRoOiAiMTAiLCBoZWlnaHQ6ICIxMCIsIHJ4OiAiMSIgfV0KICBdOwoKICBjb25zdCBJbWFnZSA9IFsKICAgIFsicmVjdCIsIHsgd2lkdGg6ICIxOCIsIGhlaWdodDogIjE4IiwgeDogIjMiLCB5OiAiMyIsIHJ4OiAiMiIsIHJ5OiAiMiIgfV0sCiAgICBbImNpcmNsZSIsIHsgY3g6ICI5IiwgY3k6ICI5IiwgcjogIjIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTIxIDE1LTMuMDg2LTMuMDg2YTIgMiAwIDAgMC0yLjgyOCAwTDYgMjEiIH1dCiAgXTsKCiAgY29uc3QgSW1hZ2VzID0gWwogICAgWyJwYXRoIiwgeyBkOiAibTIyIDExLTEuMjk2LTEuMjk2YTIuNCAyLjQgMCAwIDAtMy40MDggMEwxMSAxNiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNCA4YTIgMiAwIDAgMC0yIDJ2MTBhMiAyIDAgMCAwIDIgMmgxMGEyIDIgMCAwIDAgMi0yIiB9XSwKICAgIFsiY2lyY2xlIiwgeyBjeDogIjEzIiwgY3k6ICI3IiwgcjogIjEiLCBmaWxsOiAiY3VycmVudENvbG9yIiB9XSwKICAgIFsicmVjdCIsIHsgeDogIjgiLCB5OiAiMiIsIHdpZHRoOiAiMTQiLCBoZWlnaHQ6ICIxNCIsIHJ4OiAiMiIgfV0KICBdOwoKICBjb25zdCBJbXBvcnQgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgM3YxMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtOCAxMSA0IDQgNC00IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk04IDVINGEyIDIgMCAwIDAtMiAydjEwYTIgMiAwIDAgMCAyIDJoMTZhMiAyIDAgMCAwIDItMlY3YTIgMiAwIDAgMC0yLTJoLTQiIH1dCiAgXTsKCiAgY29uc3QgSW5ib3ggPSBbCiAgICBbInBvbHlsaW5lIiwgeyBwb2ludHM6ICIyMiAxMiAxNiAxMiAxNCAxNSAxMCAxNSA4IDEyIDIgMTIiIH1dLAogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTUuNDUgNS4xMSAyIDEydjZhMiAyIDAgMCAwIDIgMmgxNmEyIDIgMCAwIDAgMi0ydi02bC0zLjQ1LTYuODlBMiAyIDAgMCAwIDE2Ljc2IDRINy4yNGEyIDIgMCAwIDAtMS43OSAxLjExeiIKICAgICAgfQogICAgXQogIF07CgogIGNvbnN0IEluZGlhblJ1cGVlID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTYgM2gxMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNiA4aDEyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm02IDEzIDguNSA4IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk02IDEzaDMiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTkgMTNjNi42NjcgMCA2LjY2Ny0xMCAwLTEwIiB9XQogIF07CgogIGNvbnN0IEluZmluaXR5ID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTYgMTZjNSAwIDctOCAxMi04YTQgNCAwIDAgMSAwIDhjLTUgMC03LTgtMTItOGE0IDQgMCAxIDAgMCA4IiB9XQogIF07CgogIGNvbnN0IEluZm8gPSBbCiAgICBbImNpcmNsZSIsIHsgY3g6ICIxMiIsIGN5OiAiMTIiLCByOiAiMTAiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDE2di00IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xMiA4aC4wMSIgfV0KICBdOwoKICBjb25zdCBJbnNwZWN0aW9uUGFuZWwgPSBbCiAgICBbInJlY3QiLCB7IHdpZHRoOiAiMTgiLCBoZWlnaHQ6ICIxOCIsIHg6ICIzIiwgeTogIjMiLCByeDogIjIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTcgN2guMDEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE3IDdoLjAxIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk03IDE3aC4wMSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTcgMTdoLjAxIiB9XQogIF07CgogIGNvbnN0IEl0YWxpYyA9IFsKICAgIFsibGluZSIsIHsgeDE6ICIxOSIsIHgyOiAiMTAiLCB5MTogIjQiLCB5MjogIjQiIH1dLAogICAgWyJsaW5lIiwgeyB4MTogIjE0IiwgeDI6ICI1IiwgeTE6ICIyMCIsIHkyOiAiMjAiIH1dLAogICAgWyJsaW5lIiwgeyB4MTogIjE1IiwgeDI6ICI5IiwgeTE6ICI0IiwgeTI6ICIyMCIgfV0KICBdOwoKICBjb25zdCBJdGVyYXRpb25DY3cgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJtMTYgMTQgNCA0LTQgNCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMjAgMTBhOCA4IDAgMSAwLTggOGg4IiB9XQogIF07CgogIGNvbnN0IEl0ZXJhdGlvbkN3ID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTQgMTBhOCA4IDAgMSAxIDggOEg0IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm04IDIyLTQtNCA0LTQiIH1dCiAgXTsKCiAgY29uc3QgSmFwYW5lc2VZZW4gPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgOS41VjIxbTAtMTEuNUw2IDNtNiA2LjVMMTggMyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNiAxNWgxMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNiAxMWgxMiIgfV0KICBdOwoKICBjb25zdCBKb3lzdGljayA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0yMSAxN2EyIDIgMCAwIDAtMi0ySDVhMiAyIDAgMCAwLTIgMnYyYTIgMiAwIDAgMCAyIDJoMTRhMiAyIDAgMCAwIDItMnYtMloiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTYgMTV2LTIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDE1VjkiIH1dLAogICAgWyJjaXJjbGUiLCB7IGN4OiAiMTIiLCBjeTogIjYiLCByOiAiMyIgfV0KICBdOwoKICBjb25zdCBLYW5iYW4gPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNNSAzdjE0IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xMiAzdjgiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE5IDN2MTgiIH1dCiAgXTsKCiAgY29uc3QgS2F5YWsgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTggMTdhMSAxIDAgMCAwLTEgMXYxYTIgMiAwIDEgMCAyLTJ6IiB9XSwKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk0yMC45NyAzLjYxYS40NS40NSAwIDAgMC0uNTgtLjU4QzEwLjIgNi42IDYuNiAxMC4yIDMuMDMgMjAuMzlhLjQ1LjQ1IDAgMCAwIC41OC41OEMxMy44IDE3LjQgMTcuNCAxMy44IDIwLjk3IDMuNjEiCiAgICAgIH0KICAgIF0sCiAgICBbInBhdGgiLCB7IGQ6ICJtNi43MDcgNi43MDcgMTAuNTg2IDEwLjU4NiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNyA1YTIgMiAwIDEgMC0yIDJoMWExIDEgMCAwIDAgMS0xeiIgfV0KICBdOwoKICBjb25zdCBLZXlSb3VuZCA9IFsKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk0yLjU4NiAxNy40MTRBMiAyIDAgMCAwIDIgMTguODI4VjIxYTEgMSAwIDAgMCAxIDFoM2ExIDEgMCAwIDAgMS0xdi0xYTEgMSAwIDAgMSAxLTFoMWExIDEgMCAwIDAgMS0xdi0xYTEgMSAwIDAgMSAxLTFoLjE3MmEyIDIgMCAwIDAgMS40MTQtLjU4NmwuODE0LS44MTRhNi41IDYuNSAwIDEgMC00LTR6IgogICAgICB9CiAgICBdLAogICAgWyJjaXJjbGUiLCB7IGN4OiAiMTYuNSIsIGN5OiAiNy41IiwgcjogIi41IiwgZmlsbDogImN1cnJlbnRDb2xvciIgfV0KICBdOwoKICBjb25zdCBLZXlTcXVhcmUgPSBbCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMTIuNCAyLjdhMi41IDIuNSAwIDAgMSAzLjQgMGw1LjUgNS41YTIuNSAyLjUgMCAwIDEgMCAzLjRsLTMuNyAzLjdhMi41IDIuNSAwIDAgMS0zLjQgMEw4LjcgOS44YTIuNSAyLjUgMCAwIDEgMC0zLjR6IgogICAgICB9CiAgICBdLAogICAgWyJwYXRoIiwgeyBkOiAibTE0IDcgMyAzIiB9XSwKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIm05LjQgMTAuNi02LjgxNCA2LjgxNEEyIDIgMCAwIDAgMiAxOC44MjhWMjFhMSAxIDAgMCAwIDEgMWgzYTEgMSAwIDAgMCAxLTF2LTFhMSAxIDAgMCAxIDEtMWgxYTEgMSAwIDAgMCAxLTF2LTFhMSAxIDAgMCAxIDEtMWguMTcyYTIgMiAwIDAgMCAxLjQxNC0uNTg2bC44MTQtLjgxNCIKICAgICAgfQogICAgXQogIF07CgogIGNvbnN0IEtleSA9IFsKICAgIFsicGF0aCIsIHsgZDogIm0xNS41IDcuNSAyLjMgMi4zYTEgMSAwIDAgMCAxLjQgMGwyLjEtMi4xYTEgMSAwIDAgMCAwLTEuNEwxOSA0IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0yMSAyLTkuNiA5LjYiIH1dLAogICAgWyJjaXJjbGUiLCB7IGN4OiAiNy41IiwgY3k6ICIxNS41IiwgcjogIjUuNSIgfV0KICBdOwoKICBjb25zdCBLZXlib2FyZE11c2ljID0gWwogICAgWyJyZWN0IiwgeyB3aWR0aDogIjIwIiwgaGVpZ2h0OiAiMTYiLCB4OiAiMiIsIHk6ICI0Iiwgcng6ICIyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk02IDhoNCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTQgOGguMDEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE4IDhoLjAxIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yIDEyaDIwIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk02IDEydjQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTEwIDEydjQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE0IDEydjQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE4IDEydjQiIH1dCiAgXTsKCiAgY29uc3QgS2V5Ym9hcmRPZmYgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNIDIwIDQgQTIgMiAwIDAgMSAyMiA2IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0gMjIgNiBMIDIyIDE2LjQxIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0gNyAxNiBMIDE2IDE2IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0gOS42OSA0IEwgMjAgNCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTQgOGguMDEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE4IDhoLjAxIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0yIDIgMjAgMjAiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIwIDIwSDRhMiAyIDAgMCAxLTItMlY2YTIgMiAwIDAgMSAyLTIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTYgOGguMDEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTggMTJoLjAxIiB9XQogIF07CgogIGNvbnN0IExhbXBDZWlsaW5nID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDJ2NSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTQuODI5IDE1Ljk5OGEzIDMgMCAxIDEtNS42NTggMCIgfV0sCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMjAuOTIgMTQuNjA2QTEgMSAwIDAgMSAyMCAxNkg0YTEgMSAwIDAgMS0uOTItMS4zOTRsMy03QTEgMSAwIDAgMSA3IDdoMTBhMSAxIDAgMCAxIC45Mi42MDZ6IgogICAgICB9CiAgICBdCiAgXTsKCiAgY29uc3QgS2V5Ym9hcmQgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTAgOGguMDEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDEyaC4wMSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTQgOGguMDEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE2IDEyaC4wMSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTggOGguMDEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTYgOGguMDEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTcgMTZoMTAiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTggMTJoLjAxIiB9XSwKICAgIFsicmVjdCIsIHsgd2lkdGg6ICIyMCIsIGhlaWdodDogIjE2IiwgeDogIjIiLCB5OiAiNCIsIHJ4OiAiMiIgfV0KICBdOwoKICBjb25zdCBMYW1wRGVzayA9IFsKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk0xMC4yOTMgMi4yOTNhMSAxIDAgMCAxIDEuNDE0IDBsMi41IDIuNSA1Ljk5NCAxLjIyN2ExIDEgMCAwIDEgLjUwNiAxLjY4N2wtNyA3YTEgMSAwIDAgMS0xLjY4Ny0uNTA2bC0xLjIyNy01Ljk5NC0yLjUtMi41YTEgMSAwIDAgMSAwLTEuNDE0eiIKICAgICAgfQogICAgXSwKICAgIFsicGF0aCIsIHsgZDogIm0xNC4yMDcgNC43OTMtMy40MTQgMy40MTQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTMgMjBhMiAyIDAgMCAxIDItMmg0YTIgMiAwIDAgMSAyIDJ2MWExIDEgMCAwIDEtMSAxSDRhMSAxIDAgMCAxLTEtMXoiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTkuMDg2IDYuNS00Ljc5MyA0Ljc5M2ExIDEgMCAwIDAtLjE4IDEuMTdMNyAxOCIgfV0KICBdOwoKICBjb25zdCBMYW1wRmxvb3IgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgMTB2MTIiIH1dLAogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTE3LjkyOSA3LjYyOUExIDEgMCAwIDEgMTcgOUg3YTEgMSAwIDAgMS0uOTI4LTEuMzcxbDItNUExIDEgMCAwIDEgOSAyaDZhMSAxIDAgMCAxIC45MjguNjI5eiIKICAgICAgfQogICAgXSwKICAgIFsicGF0aCIsIHsgZDogIk05IDIyaDYiIH1dCiAgXTsKCiAgY29uc3QgTGFtcFdhbGxEb3duID0gWwogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTE5LjkyOSAxOC42MjlBMSAxIDAgMCAxIDE5IDIwSDlhMSAxIDAgMCAxLS45MjgtMS4zNzFsMi01QTEgMSAwIDAgMSAxMSAxM2g2YTEgMSAwIDAgMSAuOTI4LjYyOXoiCiAgICAgIH0KICAgIF0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNiAzYTIgMiAwIDAgMSAyIDJ2MmEyIDIgMCAwIDEtMiAySDVhMSAxIDAgMCAxLTEtMVY0YTEgMSAwIDAgMSAxLTF6IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk04IDZoNGEyIDIgMCAwIDEgMiAydjUiIH1dCiAgXTsKCiAgY29uc3QgTGFtcFdhbGxVcCA9IFsKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk0xOS45MjkgOS42MjlBMSAxIDAgMCAxIDE5IDExSDlhMSAxIDAgMCAxLS45MjgtMS4zNzFsMi01QTEgMSAwIDAgMSAxMSA0aDZhMSAxIDAgMCAxIC45MjguNjI5eiIKICAgICAgfQogICAgXSwKICAgIFsicGF0aCIsIHsgZDogIk02IDE1YTIgMiAwIDAgMSAyIDJ2MmEyIDIgMCAwIDEtMiAySDVhMSAxIDAgMCAxLTEtMXYtNGExIDEgMCAwIDEgMS0xeiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNOCAxOGg0YTIgMiAwIDAgMCAyLTJ2LTUiIH1dCiAgXTsKCiAgY29uc3QgTGFtcCA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xMiAxMnY2IiB9XSwKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk00LjA3NyAxMC42MTVBMSAxIDAgMCAwIDUgMTJoMTRhMSAxIDAgMCAwIC45MjMtMS4zODVsLTMuMDc3LTcuMzg0QTIgMiAwIDAgMCAxNSAySDlhMiAyIDAgMCAwLTEuODQ2IDEuMjNaIgogICAgICB9CiAgICBdLAogICAgWyJwYXRoIiwgeyBkOiAiTTggMjBhMiAyIDAgMCAxIDItMmg0YTIgMiAwIDAgMSAyIDJ2MWExIDEgMCAwIDEtMSAxSDlhMSAxIDAgMCAxLTEtMXoiIH1dCiAgXTsKCiAgY29uc3QgTGFuZFBsb3QgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJtMTIgOCA2LTMtNi0zdjEwIiB9XSwKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIm04IDExLjk5LTUuNSAzLjE0YTEgMSAwIDAgMCAwIDEuNzRsOC41IDQuODZhMiAyIDAgMCAwIDIgMGw4LjUtNC44NmExIDEgMCAwIDAgMC0xLjc0TDE2IDEyIgogICAgICB9CiAgICBdLAogICAgWyJwYXRoIiwgeyBkOiAibTYuNDkgMTIuODUgMTEuMDIgNi4zIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNy41MSAxMi44NSA2LjUgMTkuMTUiIH1dCiAgXTsKCiAgY29uc3QgTGFuZ3VhZ2VzID0gWwogICAgWyJwYXRoIiwgeyBkOiAibTUgOCA2IDYiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTQgMTQgNi02IDItMyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMiA1aDEyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk03IDJoMSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMjIgMjItNS0xMC01IDEwIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNCAxOGg2IiB9XQogIF07CgogIGNvbnN0IExhbmRtYXJrID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTEwIDE4di03IiB9XSwKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7IGQ6ICJNMTEuMTE5IDIuMjA1YTIgMiAwIDAgMSAxLjc2MiAwbDcuODQgMy44NDZBLjUuNSAwIDAgMSAyMC41IDdoLTE3YS41LjUgMCAwIDEtLjIyLS45NDl6IiB9CiAgICBdLAogICAgWyJwYXRoIiwgeyBkOiAiTTE0IDE4di03IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xOCAxOHYtNyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMyAyMmgxOCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNiAxOHYtNyIgfV0KICBdOwoKICBjb25zdCBMYXB0b3BNaW5pbWFsQ2hlY2sgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMiAyMGgyMCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtOSAxMCAyIDIgNC00IiB9XSwKICAgIFsicmVjdCIsIHsgeDogIjMiLCB5OiAiNCIsIHdpZHRoOiAiMTgiLCBoZWlnaHQ6ICIxMiIsIHJ4OiAiMiIgfV0KICBdOwoKICBjb25zdCBMYXB0b3BNaW5pbWFsID0gWwogICAgWyJyZWN0IiwgeyB3aWR0aDogIjE4IiwgaGVpZ2h0OiAiMTIiLCB4OiAiMyIsIHk6ICI0Iiwgcng6ICIyIiwgcnk6ICIyIiB9XSwKICAgIFsibGluZSIsIHsgeDE6ICIyIiwgeDI6ICIyMiIsIHkxOiAiMjAiLCB5MjogIjIwIiB9XQogIF07CgogIGNvbnN0IExhc3NvU2VsZWN0ID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTcgMjJhNSA1IDAgMCAxLTItNCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNyAxNi45M2MuOTYuNDMgMS45Ni43NCAyLjk5LjkxIiB9XSwKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7IGQ6ICJNMy4zNCAxNEE2LjggNi44IDAgMCAxIDIgMTBjMC00LjQyIDQuNDgtOCAxMC04czEwIDMuNTggMTAgOGE3LjE5IDcuMTkgMCAwIDEtLjMzIDIiIH0KICAgIF0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNSAxOGEyIDIgMCAxIDAgMC00IDIgMiAwIDAgMCAwIDR6IiB9XSwKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk0xNC4zMyAyMmgtLjA5YS4zNS4zNSAwIDAgMS0uMjQtLjMydi0xMGEuMzQuMzQgMCAwIDEgLjMzLS4zNGMuMDggMCAuMTUuMDMuMjEuMDhsNy4zNCA2YS4zMy4zMyAwIDAgMS0uMjEuNTloLTQuNDlsLTIuNTcgMy44NWEuMzUuMzUgMCAwIDEtLjI4LjE0eiIKICAgICAgfQogICAgXQogIF07CgogIGNvbnN0IExhcHRvcCA9IFsKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk0xOCA1YTIgMiAwIDAgMSAyIDJ2OC41MjZhMiAyIDAgMCAwIC4yMTIuODk3bDEuMDY4IDIuMTI3YTEgMSAwIDAgMS0uOSAxLjQ1SDMuNjJhMSAxIDAgMCAxLS45LTEuNDVsMS4wNjgtMi4xMjdBMiAyIDAgMCAwIDQgMTUuNTI2VjdhMiAyIDAgMCAxIDItMnoiCiAgICAgIH0KICAgIF0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMjAuMDU0IDE1Ljk4N0gzLjk0NiIgfV0KICBdOwoKICBjb25zdCBMYXNzbyA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0zLjcwNCAxNC40NjdhMTAgOCAwIDEgMSAzLjExNSAyLjM3NSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNyAyMmE1IDUgMCAwIDEtMi0zLjk5NCIgfV0sCiAgICBbImNpcmNsZSIsIHsgY3g6ICI1IiwgY3k6ICIxNiIsIHI6ICIyIiB9XQogIF07CgogIGNvbnN0IExhdWdoID0gWwogICAgWyJjaXJjbGUiLCB7IGN4OiAiMTIiLCBjeTogIjEyIiwgcjogIjEwIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xOCAxM2E2IDYgMCAwIDEtNiA1IDYgNiAwIDAgMS02LTVoMTJaIiB9XSwKICAgIFsibGluZSIsIHsgeDE6ICI5IiwgeDI6ICI5LjAxIiwgeTE6ICI5IiwgeTI6ICI5IiB9XSwKICAgIFsibGluZSIsIHsgeDE6ICIxNSIsIHgyOiAiMTUuMDEiLCB5MTogIjkiLCB5MjogIjkiIH1dCiAgXTsKCiAgY29uc3QgTGF5ZXJzMiA9IFsKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk0xMyAxMy43NGEyIDIgMCAwIDEtMiAwTDIuNSA4Ljg3YTEgMSAwIDAgMSAwLTEuNzRMMTEgMi4yNmEyIDIgMCAwIDEgMiAwbDguNSA0Ljg3YTEgMSAwIDAgMSAwIDEuNzR6IgogICAgICB9CiAgICBdLAogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAibTIwIDE0LjI4NSAxLjUuODQ1YTEgMSAwIDAgMSAwIDEuNzRMMTMgMjEuNzRhMiAyIDAgMCAxLTIgMGwtOC41LTQuODdhMSAxIDAgMCAxIDAtMS43NGwxLjUtLjg0NSIKICAgICAgfQogICAgXQogIF07CgogIGNvbnN0IExheWVyc01pbnVzID0gWwogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTEyLjgzIDIuMThhMiAyIDAgMCAwLTEuNjYgMEwyLjYgNi4wOGExIDEgMCAwIDAgMCAxLjgzbDguNTggMy45MWEyIDIgMCAwIDAgLjgzLjE4IDIgMiAwIDAgMCAuODMtLjE4bDguNTgtMy45YTEgMSAwIDAgMCAwLTEuODMyeiIKICAgICAgfQogICAgXSwKICAgIFsicGF0aCIsIHsgZDogIk0xNiAxN2g2IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yLjAwMyAxMS45OTVhMSAxIDAgMCAwIC41OTcuOTE1bDguNTggMy45MWEyIDIgMCAwIDAgLjgzLjE4IiB9XSwKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7IGQ6ICJNMi4wMDMgMTYuOTk1YTEgMSAwIDAgMCAuNTk3LjkxNWw4LjU4IDMuOTFhMiAyIDAgMCAwIC44My4xOCAyIDIgMCAwIDAgLjgzLS4xOGwyLjExLS45NiIgfQogICAgXSwKICAgIFsicGF0aCIsIHsgZDogIk0yMi4wMTggMTIuMDA0YTEgMSAwIDAgMS0uNTk4LjkxNmwtLjE3Ny4wOCIgfV0KICBdOwoKICBjb25zdCBMYXllcnMgPSBbCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMTIuODMgMi4xOGEyIDIgMCAwIDAtMS42NiAwTDIuNiA2LjA4YTEgMSAwIDAgMCAwIDEuODNsOC41OCAzLjkxYTIgMiAwIDAgMCAxLjY2IDBsOC41OC0zLjlhMSAxIDAgMCAwIDAtMS44M3oiCiAgICAgIH0KICAgIF0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMiAxMmExIDEgMCAwIDAgLjU4LjkxbDguNiAzLjkxYTIgMiAwIDAgMCAxLjY1IDBsOC41OC0zLjlBMSAxIDAgMCAwIDIyIDEyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yIDE3YTEgMSAwIDAgMCAuNTguOTFsOC42IDMuOTFhMiAyIDAgMCAwIDEuNjUgMGw4LjU4LTMuOUExIDEgMCAwIDAgMjIgMTciIH1dCiAgXTsKCiAgY29uc3QgTGF5ZXJzUGx1cyA9IFsKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk0xMi44MyAyLjE4YTIgMiAwIDAgMC0xLjY2IDBMMi42IDYuMDhhMSAxIDAgMCAwIDAgMS44M2w4LjU4IDMuOTFhMiAyIDAgMCAwIC44My4xOCAyIDIgMCAwIDAgLjgzLS4xOGw4LjU4LTMuOWExIDEgMCAwIDAgMC0xLjgzMXoiCiAgICAgIH0KICAgIF0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTYgMTdoNiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTkgMTR2NiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMiAxMmExIDEgMCAwIDAgLjU4LjkxbDguNiAzLjkxYTIgMiAwIDAgMCAuODI1LjE3OCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMiAxN2ExIDEgMCAwIDAgLjU4LjkxbDguNiAzLjkxYTIgMiAwIDAgMCAxLjY1IDBsMi4xMTYtLjk2MiIgfV0KICBdOwoKICBjb25zdCBMYXlvdXREYXNoYm9hcmQgPSBbCiAgICBbInJlY3QiLCB7IHdpZHRoOiAiNyIsIGhlaWdodDogIjkiLCB4OiAiMyIsIHk6ICIzIiwgcng6ICIxIiB9XSwKICAgIFsicmVjdCIsIHsgd2lkdGg6ICI3IiwgaGVpZ2h0OiAiNSIsIHg6ICIxNCIsIHk6ICIzIiwgcng6ICIxIiB9XSwKICAgIFsicmVjdCIsIHsgd2lkdGg6ICI3IiwgaGVpZ2h0OiAiOSIsIHg6ICIxNCIsIHk6ICIxMiIsIHJ4OiAiMSIgfV0sCiAgICBbInJlY3QiLCB7IHdpZHRoOiAiNyIsIGhlaWdodDogIjUiLCB4OiAiMyIsIHk6ICIxNiIsIHJ4OiAiMSIgfV0KICBdOwoKICBjb25zdCBMYXlvdXRGcmVlZm9ybSA9IFsKICAgIFsicmVjdCIsIHsgd2lkdGg6ICI3IiwgaGVpZ2h0OiAiNyIsIHg6ICIzIiwgeTogIjMiLCByeDogIjEiIH1dLAogICAgWyJyZWN0IiwgeyB3aWR0aDogIjciLCBoZWlnaHQ6ICI3IiwgeDogIjE0IiwgeTogIjQiLCByeDogIjEiIH1dLAogICAgWyJyZWN0IiwgeyB3aWR0aDogIjciLCBoZWlnaHQ6ICI3IiwgeDogIjQiLCB5OiAiMTQiLCByeDogIjEiIH1dCiAgXTsKCiAgY29uc3QgTGF5b3V0R3JpZCA9IFsKICAgIFsicmVjdCIsIHsgd2lkdGg6ICI3IiwgaGVpZ2h0OiAiNyIsIHg6ICIzIiwgeTogIjMiLCByeDogIjEiIH1dLAogICAgWyJyZWN0IiwgeyB3aWR0aDogIjciLCBoZWlnaHQ6ICI3IiwgeDogIjE0IiwgeTogIjMiLCByeDogIjEiIH1dLAogICAgWyJyZWN0IiwgeyB3aWR0aDogIjciLCBoZWlnaHQ6ICI3IiwgeDogIjE0IiwgeTogIjE0Iiwgcng6ICIxIiB9XSwKICAgIFsicmVjdCIsIHsgd2lkdGg6ICI3IiwgaGVpZ2h0OiAiNyIsIHg6ICIzIiwgeTogIjE0Iiwgcng6ICIxIiB9XQogIF07CgogIGNvbnN0IExheW91dExpc3QgPSBbCiAgICBbInJlY3QiLCB7IHdpZHRoOiAiNyIsIGhlaWdodDogIjciLCB4OiAiMyIsIHk6ICIzIiwgcng6ICIxIiB9XSwKICAgIFsicmVjdCIsIHsgd2lkdGg6ICI3IiwgaGVpZ2h0OiAiNyIsIHg6ICIzIiwgeTogIjE0Iiwgcng6ICIxIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNCA0aDciIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE0IDloNyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTQgMTVoNyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTQgMjBoNyIgfV0KICBdOwoKICBjb25zdCBMYXlvdXRQYW5lbFRvcCA9IFsKICAgIFsicmVjdCIsIHsgd2lkdGg6ICIxOCIsIGhlaWdodDogIjciLCB4OiAiMyIsIHk6ICIzIiwgcng6ICIxIiB9XSwKICAgIFsicmVjdCIsIHsgd2lkdGg6ICI3IiwgaGVpZ2h0OiAiNyIsIHg6ICIzIiwgeTogIjE0Iiwgcng6ICIxIiB9XSwKICAgIFsicmVjdCIsIHsgd2lkdGg6ICI3IiwgaGVpZ2h0OiAiNyIsIHg6ICIxNCIsIHk6ICIxNCIsIHJ4OiAiMSIgfV0KICBdOwoKICBjb25zdCBMYXlvdXRQYW5lbExlZnQgPSBbCiAgICBbInJlY3QiLCB7IHdpZHRoOiAiNyIsIGhlaWdodDogIjE4IiwgeDogIjMiLCB5OiAiMyIsIHJ4OiAiMSIgfV0sCiAgICBbInJlY3QiLCB7IHdpZHRoOiAiNyIsIGhlaWdodDogIjciLCB4OiAiMTQiLCB5OiAiMyIsIHJ4OiAiMSIgfV0sCiAgICBbInJlY3QiLCB7IHdpZHRoOiAiNyIsIGhlaWdodDogIjciLCB4OiAiMTQiLCB5OiAiMTQiLCByeDogIjEiIH1dCiAgXTsKCiAgY29uc3QgTGF5b3V0VGVtcGxhdGUgPSBbCiAgICBbInJlY3QiLCB7IHdpZHRoOiAiMTgiLCBoZWlnaHQ6ICI3IiwgeDogIjMiLCB5OiAiMyIsIHJ4OiAiMSIgfV0sCiAgICBbInJlY3QiLCB7IHdpZHRoOiAiOSIsIGhlaWdodDogIjciLCB4OiAiMyIsIHk6ICIxNCIsIHJ4OiAiMSIgfV0sCiAgICBbInJlY3QiLCB7IHdpZHRoOiAiNSIsIGhlaWdodDogIjciLCB4OiAiMTYiLCB5OiAiMTQiLCByeDogIjEiIH1dCiAgXTsKCiAgY29uc3QgTGVhZiA9IFsKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7IGQ6ICJNMTEgMjBBNyA3IDAgMCAxIDkuOCA2LjFDMTUuNSA1IDE3IDQuNDggMTkgMmMxIDIgMiA0LjE4IDIgOCAwIDUuNS00Ljc4IDEwLTEwIDEwWiIgfQogICAgXSwKICAgIFsicGF0aCIsIHsgZDogIk0yIDIxYzAtMyAxLjg1LTUuMzYgNS4wOC02QzkuNSAxNC41MiAxMiAxMyAxMyAxMiIgfV0KICBdOwoKICBjb25zdCBMZWFmeUdyZWVuID0gWwogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTIgMjJjMS4yNS0uOTg3IDIuMjctMS45NzUgMy45LTIuMmE1LjU2IDUuNTYgMCAwIDEgMy44IDEuNSA0IDQgMCAwIDAgNi4xODctMi4zNTMgMy41IDMuNSAwIDAgMCAzLjY5LTUuMTE2QTMuNSAzLjUgMCAwIDAgMjAuOTUgOCAzLjUgMy41IDAgMSAwIDE2IDMuMDVhMy41IDMuNSAwIDAgMC01LjgzMSAxLjM3MyAzLjUgMy41IDAgMCAwLTUuMTE2IDMuNjkgNCA0IDAgMCAwLTIuMzQ4IDYuMTU1QzMuNDk5IDE1LjQyIDQuNDA5IDE2LjcxMiA0LjIgMTguMSAzLjkyNiAxOS43NDMgMy4wMTQgMjAuNzMyIDIgMjIiCiAgICAgIH0KICAgIF0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMiAyMiAxNyA3IiB9XQogIF07CgogIGNvbnN0IExlY3Rlcm4gPSBbCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMTYgMTJoM2EyIDIgMCAwIDAgMS45MDItMS4zOGwxLjA1Ni0zLjMzM0ExIDEgMCAwIDAgMjEgNkgzYTEgMSAwIDAgMC0uOTU4IDEuMjg3bDEuMDU2IDMuMzM0QTIgMiAwIDAgMCA1IDEyaDMiCiAgICAgIH0KICAgIF0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTggNlYzYTEgMSAwIDAgMC0xLTFoLTMiIH1dLAogICAgWyJyZWN0IiwgeyB3aWR0aDogIjgiLCBoZWlnaHQ6ICIxMiIsIHg6ICI4IiwgeTogIjEwIiwgcng6ICIxIiB9XQogIF07CgogIGNvbnN0IExlbnNDb25jYXZlID0gWwogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTcgMmExIDEgMCAwIDAtLjggMS42IDE0IDE0IDAgMCAxIDAgMTYuOEExIDEgMCAwIDAgNyAyMmgxMGExIDEgMCAwIDAgLjgtMS42IDE0IDE0IDAgMCAxIDAtMTYuOEExIDEgMCAwIDAgMTcgMnoiCiAgICAgIH0KICAgIF0KICBdOwoKICBjb25zdCBMZW5zQ29udmV4ID0gWwogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTEzLjQzMyAyYTEgMSAwIDAgMSAuODI0LjQ0OCAxOCAxOCAwIDAgMSAwIDE5LjEwNCAxIDEgMCAwIDEtLjgyNC40NDhoLTIuODY2YTEgMSAwIDAgMS0uODI0LS40NDggMTggMTggMCAwIDEgMC0xOS4xMDRBMSAxIDAgMCAxIDEwLjU2NyAyeiIKICAgICAgfQogICAgXQogIF07CgogIGNvbnN0IExpYnJhcnlCaWcgPSBbCiAgICBbInJlY3QiLCB7IHdpZHRoOiAiOCIsIGhlaWdodDogIjE4IiwgeDogIjMiLCB5OiAiMyIsIHJ4OiAiMSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNyAzdjE4IiB9XSwKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk0yMC40IDE4LjljLjIuNS0uMSAxLjEtLjYgMS4zbC0xLjkuN2MtLjUuMi0xLjEtLjEtMS4zLS42TDExLjEgNS4xYy0uMi0uNS4xLTEuMS42LTEuM2wxLjktLjdjLjUtLjIgMS4xLjEgMS4zLjZaIgogICAgICB9CiAgICBdCiAgXTsKCiAgY29uc3QgTGlicmFyeSA9IFsKICAgIFsicGF0aCIsIHsgZDogIm0xNiA2IDQgMTQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDZ2MTQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTggOHYxMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNCA0djE2IiB9XQogIF07CgogIGNvbnN0IExpZmVCdW95ID0gWwogICAgWyJjaXJjbGUiLCB7IGN4OiAiMTIiLCBjeTogIjEyIiwgcjogIjEwIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm00LjkzIDQuOTMgNC4yNCA0LjI0IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0xNC44MyA5LjE3IDQuMjQtNC4yNCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMTQuODMgMTQuODMgNC4yNCA0LjI0IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm05LjE3IDE0LjgzLTQuMjQgNC4yNCIgfV0sCiAgICBbImNpcmNsZSIsIHsgY3g6ICIxMiIsIGN5OiAiMTIiLCByOiAiNCIgfV0KICBdOwoKICBjb25zdCBMaWdhdHVyZSA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xNCAxMmgydjgiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE0IDIwaDQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTYgMTJoNCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNiAyMGg0IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk04IDIwVjhhNCA0IDAgMCAxIDcuNDY0LTIiIH1dCiAgXTsKCiAgY29uc3QgTGlnaHRidWxiT2ZmID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTE2LjggMTEuMmMuOC0uOSAxLjItMiAxLjItMy4yYTYgNiAwIDAgMC05LjMtNSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMiAyIDIwIDIwIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk02LjMgNi4zYTQuNjcgNC42NyAwIDAgMCAxLjIgNS4yYy43LjcgMS4zIDEuNSAxLjUgMi41IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk05IDE4aDYiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTEwIDIyaDQiIH1dCiAgXTsKCiAgY29uc3QgTGlnaHRidWxiID0gWwogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTE1IDE0Yy4yLTEgLjctMS43IDEuNS0yLjUgMS0uOSAxLjUtMi4yIDEuNS0zLjVBNiA2IDAgMCAwIDYgOGMwIDEgLjIgMi4yIDEuNSAzLjUuNy43IDEuMyAxLjUgMS41IDIuNSIKICAgICAgfQogICAgXSwKICAgIFsicGF0aCIsIHsgZDogIk05IDE4aDYiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTEwIDIyaDQiIH1dCiAgXTsKCiAgY29uc3QgTGluZURvdFJpZ2h0SG9yaXpvbnRhbCA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0gMyAxMiBMIDE1IDEyIiB9XSwKICAgIFsiY2lyY2xlIiwgeyBjeDogIjE4IiwgY3k6ICIxMiIsIHI6ICIzIiB9XQogIF07CgogIGNvbnN0IExpbmVTcXVpZ2dsZSA9IFsKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7IGQ6ICJNNyAzLjVjNS0yIDcgMi41IDMgNEMxLjUgMTAgMiAxNSA1IDE2YzUgMiA5LTEwIDE0LTdzLjUgMTMuNS00IDEyYy01LTIuNS41LTExIDYtMiIgfQogICAgXQogIF07CgogIGNvbnN0IExpbmVTdHlsZSA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xMSA1aDIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE1IDEyaDYiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE5IDVoMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMyAxMmg2IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0zIDE5aDE4IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0zIDVoMiIgfV0KICBdOwoKICBjb25zdCBMaW5rMk9mZiA9IFsKICAgIFsicGF0aCIsIHsgZDogIk05IDE3SDdBNSA1IDAgMCAxIDcgNyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTUgN2gyYTUgNSAwIDAgMSA0IDgiIH1dLAogICAgWyJsaW5lIiwgeyB4MTogIjgiLCB4MjogIjEyIiwgeTE6ICIxMiIsIHkyOiAiMTIiIH1dLAogICAgWyJsaW5lIiwgeyB4MTogIjIiLCB4MjogIjIyIiwgeTE6ICIyIiwgeTI6ICIyMiIgfV0KICBdOwoKICBjb25zdCBMaW5rMiA9IFsKICAgIFsicGF0aCIsIHsgZDogIk05IDE3SDdBNSA1IDAgMCAxIDcgN2gyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNSA3aDJhNSA1IDAgMSAxIDAgMTBoLTIiIH1dLAogICAgWyJsaW5lIiwgeyB4MTogIjgiLCB4MjogIjE2IiwgeTE6ICIxMiIsIHkyOiAiMTIiIH1dCiAgXTsKCiAgY29uc3QgTGluayA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xMCAxM2E1IDUgMCAwIDAgNy41NC41NGwzLTNhNSA1IDAgMCAwLTcuMDctNy4wN2wtMS43MiAxLjcxIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNCAxMWE1IDUgMCAwIDAtNy41NC0uNTRsLTMgM2E1IDUgMCAwIDAgNy4wNyA3LjA3bDEuNzEtMS43MSIgfV0KICBdOwoKICBjb25zdCBMaXN0Q2hlY2sgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTYgNUgzIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNiAxMkgzIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xMSAxOUgzIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0xNSAxOCAyIDIgNC00IiB9XQogIF07CgogIGNvbnN0IExpc3RDaGVja3MgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTMgNWg4IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xMyAxMmg4IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xMyAxOWg4IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0zIDE3IDIgMiA0LTQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTMgNyAyIDIgNC00IiB9XQogIF07CgogIGNvbnN0IExpc3RDaGV2cm9uc0Rvd25VcCA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0zIDVoOCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMyAxMmg4IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0zIDE5aDgiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTE1IDUgMyAzIDMtMyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMTUgMTkgMy0zIDMgMyIgfV0KICBdOwoKICBjb25zdCBMaXN0Q2hldnJvbnNVcERvd24gPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMyA1aDgiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTMgMTJoOCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMyAxOWg4IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0xNSA4IDMtMyAzIDMiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTE1IDE2IDMgMyAzLTMiIH1dCiAgXTsKCiAgY29uc3QgTGlzdENvbGxhcHNlID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTEwIDVoMTEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTEwIDEyaDExIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xMCAxOWgxMSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMyAxMCAzLTMtMy0zIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0zIDIwIDMtMy0zLTMiIH1dCiAgXTsKCiAgY29uc3QgTGlzdEVuZCA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xNiA1SDMiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE2IDEySDMiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTkgMTlIMyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMTYgMTYtMyAzIDMgMyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMjEgNXYxMmEyIDIgMCAwIDEtMiAyaC02IiB9XQogIF07CgogIGNvbnN0IExpc3RGaWx0ZXJQbHVzID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDVIMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNiAxMmgxMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNOSAxOWg2IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNiA1aDYiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE5IDhWMiIgfV0KICBdOwoKICBjb25zdCBMaXN0RmlsdGVyID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTIgNWgyMCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNiAxMmgxMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNOSAxOWg2IiB9XQogIF07CgogIGNvbnN0IExpc3RJbmRlbnREZWNyZWFzZSA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0yMSA1SDExIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yMSAxMkgxMSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMjEgMTlIMTEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTcgOC00IDQgNCA0IiB9XQogIF07CgogIGNvbnN0IExpc3RJbmRlbnRJbmNyZWFzZSA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0yMSA1SDExIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yMSAxMkgxMSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMjEgMTlIMTEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTMgOCA0IDQtNCA0IiB9XQogIF07CgogIGNvbnN0IExpc3RNaW51cyA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xNiA1SDMiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTExIDEySDMiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE2IDE5SDMiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIxIDEyaC02IiB9XQogIF07CgogIGNvbnN0IExpc3RNdXNpYyA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xNiA1SDMiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTExIDEySDMiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTExIDE5SDMiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIxIDE2VjUiIH1dLAogICAgWyJjaXJjbGUiLCB7IGN4OiAiMTgiLCBjeTogIjE2IiwgcjogIjMiIH1dCiAgXTsKCiAgY29uc3QgTGlzdE9yZGVyZWQgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTEgNWgxMCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTEgMTJoMTAiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTExIDE5aDEwIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk00IDRoMXY1IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk00IDloMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNi41IDIwSDMuNGMwLTEgMi42LTEuOTI1IDIuNi0zLjVhMS41IDEuNSAwIDAgMC0yLjYtMS4wMiIgfV0KICBdOwoKICBjb25zdCBMaXN0UGx1cyA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xNiA1SDMiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTExIDEySDMiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE2IDE5SDMiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE4IDl2NiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMjEgMTJoLTYiIH1dCiAgXTsKCiAgY29uc3QgTGlzdFJlc3RhcnQgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMjEgNUgzIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk03IDEySDMiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTcgMTlIMyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgMThhNSA1IDAgMCAwIDktMyA0LjUgNC41IDAgMCAwLTQuNS00LjVjLTEuMzMgMC0yLjU0LjU0LTMuNDEgMS40MUwxMSAxNCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTEgMTB2NGg0IiB9XQogIF07CgogIGNvbnN0IExpc3RTb3J0QXNjZW5kaW5nID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTMgMTloMTgiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE1IDEySDMiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTkgNUgzIiB9XQogIF07CgogIGNvbnN0IExpc3RTb3J0RGVzY2VuZGluZyA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xNSAxMkgzIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0zIDVoMTgiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTkgMTlIMyIgfV0KICBdOwoKICBjb25zdCBMaXN0U3RhcnQgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMyA1aDYiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTMgMTJoMTMiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTMgMTloMTMiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTE2IDgtMy0zIDMtMyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMjEgMTlWN2EyIDIgMCAwIDAtMi0yaC02IiB9XQogIF07CgogIGNvbnN0IExpc3RUb2RvID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTEzIDVoOCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTMgMTJoOCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTMgMTloOCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMyAxNyAyIDIgNC00IiB9XSwKICAgIFsicmVjdCIsIHsgeDogIjMiLCB5OiAiNCIsIHdpZHRoOiAiNiIsIGhlaWdodDogIjYiLCByeDogIjEiIH1dCiAgXTsKCiAgY29uc3QgTGlzdFRyZWUgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNOCA1aDEzIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xMyAxMmg4IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xMyAxOWg4IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0zIDEwYTIgMiAwIDAgMCAyIDJoMyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMyA1djEyYTIgMiAwIDAgMCAyIDJoMyIgfV0KICBdOwoKICBjb25zdCBMaXN0VmlkZW8gPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMjEgNUgzIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xMCAxMkgzIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xMCAxOUgzIiB9XSwKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk0xNSAxMi4wMDNhMSAxIDAgMCAxIDEuNTE3LS44NTlsNC45OTcgMi45OTdhMSAxIDAgMCAxIDAgMS43MThsLTQuOTk3IDIuOTk3YTEgMSAwIDAgMS0xLjUxNy0uODZ6IgogICAgICB9CiAgICBdCiAgXTsKCiAgY29uc3QgTGlzdFggPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTYgNUgzIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xMSAxMkgzIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNiAxOUgzIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0xNS41IDkuNSA1IDUiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTIwLjUgOS41LTUgNSIgfV0KICBdOwoKICBjb25zdCBMaXN0ID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTMgNWguMDEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTMgMTJoLjAxIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0zIDE5aC4wMSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNOCA1aDEzIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk04IDEyaDEzIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk04IDE5aDEzIiB9XQogIF07CgogIGNvbnN0IExvYWRlckNpcmNsZSA9IFtbInBhdGgiLCB7IGQ6ICJNMjEgMTJhOSA5IDAgMSAxLTYuMjE5LTguNTYiIH1dXTsKCiAgY29uc3QgTG9hZGVyUGlud2hlZWwgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMjIgMTJhMSAxIDAgMCAxLTEwIDAgMSAxIDAgMCAwLTEwIDAiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTcgMjAuN2ExIDEgMCAxIDEgNS04LjcgMSAxIDAgMSAwIDUtOC42IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk03IDMuM2ExIDEgMCAxIDEgNSA4LjYgMSAxIDAgMSAwIDUgOC42IiB9XSwKICAgIFsiY2lyY2xlIiwgeyBjeDogIjEyIiwgY3k6ICIxMiIsIHI6ICIxMCIgfV0KICBdOwoKICBjb25zdCBMb2FkZXIgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgMnY0IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0xNi4yIDcuOCAyLjktMi45IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xOCAxMmg0IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0xNi4yIDE2LjIgMi45IDIuOSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgMTh2NCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtNC45IDE5LjEgMi45LTIuOSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMiAxMmg0IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm00LjkgNC45IDIuOSAyLjkiIH1dCiAgXTsKCiAgY29uc3QgTG9jYXRlT2ZmID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDE5djMiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDJ2MyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTguODkgMTMuMjRhNyA3IDAgMCAwLTguMTMtOC4xMyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTkgMTJoMyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMiAxMmgzIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0yIDIgMjAgMjAiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTcuMDUgNy4wNWE3IDcgMCAwIDAgOS45IDkuOSIgfV0KICBdOwoKICBjb25zdCBMb2NhdGVGaXhlZCA9IFsKICAgIFsibGluZSIsIHsgeDE6ICIyIiwgeDI6ICI1IiwgeTE6ICIxMiIsIHkyOiAiMTIiIH1dLAogICAgWyJsaW5lIiwgeyB4MTogIjE5IiwgeDI6ICIyMiIsIHkxOiAiMTIiLCB5MjogIjEyIiB9XSwKICAgIFsibGluZSIsIHsgeDE6ICIxMiIsIHgyOiAiMTIiLCB5MTogIjIiLCB5MjogIjUiIH1dLAogICAgWyJsaW5lIiwgeyB4MTogIjEyIiwgeDI6ICIxMiIsIHkxOiAiMTkiLCB5MjogIjIyIiB9XSwKICAgIFsiY2lyY2xlIiwgeyBjeDogIjEyIiwgY3k6ICIxMiIsIHI6ICI3IiB9XSwKICAgIFsiY2lyY2xlIiwgeyBjeDogIjEyIiwgY3k6ICIxMiIsIHI6ICIzIiB9XQogIF07CgogIGNvbnN0IExvY2F0ZSA9IFsKICAgIFsibGluZSIsIHsgeDE6ICIyIiwgeDI6ICI1IiwgeTE6ICIxMiIsIHkyOiAiMTIiIH1dLAogICAgWyJsaW5lIiwgeyB4MTogIjE5IiwgeDI6ICIyMiIsIHkxOiAiMTIiLCB5MjogIjEyIiB9XSwKICAgIFsibGluZSIsIHsgeDE6ICIxMiIsIHgyOiAiMTIiLCB5MTogIjIiLCB5MjogIjUiIH1dLAogICAgWyJsaW5lIiwgeyB4MTogIjEyIiwgeDI6ICIxMiIsIHkxOiAiMTkiLCB5MjogIjIyIiB9XSwKICAgIFsiY2lyY2xlIiwgeyBjeDogIjEyIiwgY3k6ICIxMiIsIHI6ICI3IiB9XQogIF07CgogIGNvbnN0IExvY2tLZXlob2xlT3BlbiA9IFsKICAgIFsiY2lyY2xlIiwgeyBjeDogIjEyIiwgY3k6ICIxNiIsIHI6ICIxIiB9XSwKICAgIFsicmVjdCIsIHsgd2lkdGg6ICIxOCIsIGhlaWdodDogIjEyIiwgeDogIjMiLCB5OiAiMTAiLCByeDogIjIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTcgMTBWN2E1IDUgMCAwIDEgOS4zMy0yLjUiIH1dCiAgXTsKCiAgY29uc3QgTG9ja09wZW4gPSBbCiAgICBbInJlY3QiLCB7IHdpZHRoOiAiMTgiLCBoZWlnaHQ6ICIxMSIsIHg6ICIzIiwgeTogIjExIiwgcng6ICIyIiwgcnk6ICIyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk03IDExVjdhNSA1IDAgMCAxIDkuOS0xIiB9XQogIF07CgogIGNvbnN0IExvY2tLZXlob2xlID0gWwogICAgWyJjaXJjbGUiLCB7IGN4OiAiMTIiLCBjeTogIjE2IiwgcjogIjEiIH1dLAogICAgWyJyZWN0IiwgeyB4OiAiMyIsIHk6ICIxMCIsIHdpZHRoOiAiMTgiLCBoZWlnaHQ6ICIxMiIsIHJ4OiAiMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNyAxMFY3YTUgNSAwIDAgMSAxMCAwdjMiIH1dCiAgXTsKCiAgY29uc3QgTG9jayA9IFsKICAgIFsicmVjdCIsIHsgd2lkdGg6ICIxOCIsIGhlaWdodDogIjExIiwgeDogIjMiLCB5OiAiMTEiLCByeDogIjIiLCByeTogIjIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTcgMTFWN2E1IDUgMCAwIDEgMTAgMHY0IiB9XQogIF07CgogIGNvbnN0IExvZ0luID0gWwogICAgWyJwYXRoIiwgeyBkOiAibTEwIDE3IDUtNS01LTUiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE1IDEySDMiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE1IDNoNGEyIDIgMCAwIDEgMiAydjE0YTIgMiAwIDAgMS0yIDJoLTQiIH1dCiAgXTsKCiAgY29uc3QgTG9nT3V0ID0gWwogICAgWyJwYXRoIiwgeyBkOiAibTE2IDE3IDUtNS01LTUiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIxIDEySDkiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTkgMjFINWEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmg0IiB9XQogIF07CgogIGNvbnN0IExvZ3MgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMyA1aDEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTMgMTJoMSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMyAxOWgxIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk04IDVoMSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNOCAxMmgxIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk04IDE5aDEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTEzIDVoOCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTMgMTJoOCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTMgMTloOCIgfV0KICBdOwoKICBjb25zdCBMb2xsaXBvcCA9IFsKICAgIFsiY2lyY2xlIiwgeyBjeDogIjExIiwgY3k6ICIxMSIsIHI6ICI4IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0yMSAyMS00LjMtNC4zIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xMSAxMWEyIDIgMCAwIDAgNCAwIDQgNCAwIDAgMC04IDAgNiA2IDAgMCAwIDEyIDAiIH1dCiAgXTsKCiAgY29uc3QgTHVnZ2FnZSA9IFsKICAgIFsicGF0aCIsIHsgZDogIk02IDIwYTIgMiAwIDAgMS0yLTJWOGEyIDIgMCAwIDEgMi0yaDEyYTIgMiAwIDAgMSAyIDJ2MTBhMiAyIDAgMCAxLTIgMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNOCAxOFY0YTIgMiAwIDAgMSAyLTJoNGEyIDIgMCAwIDEgMiAydjE0IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xMCAyMGg0IiB9XSwKICAgIFsiY2lyY2xlIiwgeyBjeDogIjE2IiwgY3k6ICIyMCIsIHI6ICIyIiB9XSwKICAgIFsiY2lyY2xlIiwgeyBjeDogIjgiLCBjeTogIjIwIiwgcjogIjIiIH1dCiAgXTsKCiAgY29uc3QgTWFnbmV0ID0gWwogICAgWyJwYXRoIiwgeyBkOiAibTEyIDE1IDQgNCIgfV0sCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMi4zNTIgMTAuNjQ4YTEuMjA1IDEuMjA1IDAgMCAwIDAgMS43MDRsMi4yOTYgMi4yOTZhMS4yMDUgMS4yMDUgMCAwIDAgMS43MDQgMGw2LjAyOS02LjAyOWExIDEgMCAxIDEgMyAzbC02LjAyOSA2LjAyOWExLjIwNSAxLjIwNSAwIDAgMCAwIDEuNzA0bDIuMjk2IDIuMjk2YTEuMjA1IDEuMjA1IDAgMCAwIDEuNzA0IDBsNi4zNjUtNi4zNjdBMSAxIDAgMCAwIDguNzE2IDQuMjgyeiIKICAgICAgfQogICAgXSwKICAgIFsicGF0aCIsIHsgZDogIm01IDggNCA0IiB9XQogIF07CgogIGNvbnN0IE1haWxDaGVjayA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0yMiAxM1Y2YTIgMiAwIDAgMC0yLTJINGEyIDIgMCAwIDAtMiAydjEyYzAgMS4xLjkgMiAyIDJoOCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMjIgNy04Ljk3IDUuN2ExLjk0IDEuOTQgMCAwIDEtMi4wNiAwTDIgNyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMTYgMTkgMiAyIDQtNCIgfV0KICBdOwoKICBjb25zdCBNYWlsTWludXMgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMjIgMTVWNmEyIDIgMCAwIDAtMi0ySDRhMiAyIDAgMCAwLTIgMnYxMmMwIDEuMS45IDIgMiAyaDgiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTIyIDctOC45NyA1LjdhMS45NCAxLjk0IDAgMCAxLTIuMDYgMEwyIDciIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE2IDE5aDYiIH1dCiAgXTsKCiAgY29uc3QgTWFpbE9wZW4gPSBbCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMjEuMiA4LjRjLjUuMzguOC45Ny44IDEuNnYxMGEyIDIgMCAwIDEtMiAySDRhMiAyIDAgMCAxLTItMlYxMGEyIDIgMCAwIDEgLjgtMS42bDgtNmEyIDIgMCAwIDEgMi40IDBsOCA2WiIKICAgICAgfQogICAgXSwKICAgIFsicGF0aCIsIHsgZDogIm0yMiAxMC04Ljk3IDUuN2ExLjk0IDEuOTQgMCAwIDEtMi4wNiAwTDIgMTAiIH1dCiAgXTsKCiAgY29uc3QgTWFpbFBsdXMgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMjIgMTNWNmEyIDIgMCAwIDAtMi0ySDRhMiAyIDAgMCAwLTIgMnYxMmMwIDEuMS45IDIgMiAyaDgiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTIyIDctOC45NyA1LjdhMS45NCAxLjk0IDAgMCAxLTIuMDYgMEwyIDciIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE5IDE2djYiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE2IDE5aDYiIH1dCiAgXTsKCiAgY29uc3QgTWFpbFF1ZXN0aW9uTWFyayA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0yMiAxMC41VjZhMiAyIDAgMCAwLTItMkg0YTIgMiAwIDAgMC0yIDJ2MTJjMCAxLjEuOSAyIDIgMmgxMi41IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0yMiA3LTguOTcgNS43YTEuOTQgMS45NCAwIDAgMS0yLjA2IDBMMiA3IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xOCAxNS4yOGMuMi0uNC41LS44LjktMWEyLjEgMi4xIDAgMCAxIDIuNi40Yy4zLjQuNS44LjUgMS4zIDAgMS4zLTIgMi0yIDIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIwIDIydi4wMSIgfV0KICBdOwoKICBjb25zdCBNYWlsU2VhcmNoID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTIyIDEyLjVWNmEyIDIgMCAwIDAtMi0ySDRhMiAyIDAgMCAwLTIgMnYxMmMwIDEuMS45IDIgMiAyaDcuNSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMjIgNy04Ljk3IDUuN2ExLjk0IDEuOTQgMCAwIDEtMi4wNiAwTDIgNyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTggMjFhMyAzIDAgMSAwIDAtNiAzIDMgMCAwIDAgMCA2WiIgfV0sCiAgICBbImNpcmNsZSIsIHsgY3g6ICIxOCIsIGN5OiAiMTgiLCByOiAiMyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMjIgMjItMS41LTEuNSIgfV0KICBdOwoKICBjb25zdCBNYWlsV2FybmluZyA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0yMiAxMC41VjZhMiAyIDAgMCAwLTItMkg0YTIgMiAwIDAgMC0yIDJ2MTJjMCAxLjEuOSAyIDIgMmgxMi41IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0yMiA3LTguOTcgNS43YTEuOTQgMS45NCAwIDAgMS0yLjA2IDBMMiA3IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yMCAxNHY0IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yMCAyMnYuMDEiIH1dCiAgXTsKCiAgY29uc3QgTWFpbFggPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMjIgMTNWNmEyIDIgMCAwIDAtMi0ySDRhMiAyIDAgMCAwLTIgMnYxMmMwIDEuMS45IDIgMiAyaDkiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTIyIDctOC45NyA1LjdhMS45NCAxLjk0IDAgMCAxLTIuMDYgMEwyIDciIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTE3IDE3IDQgNCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMjEgMTctNCA0IiB9XQogIF07CgogIGNvbnN0IE1haWxib3ggPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMjIgMTdhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJWOS41QzIgNyA0IDUgNi41IDVIMThjMi4yIDAgNCAxLjggNCA0djhaIiB9XSwKICAgIFsicG9seWxpbmUiLCB7IHBvaW50czogIjE1LDkgMTgsOSAxOCwxMSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNi41IDVDOSA1IDExIDcgMTEgOS41VjE3YTIgMiAwIDAgMS0yIDIiIH1dLAogICAgWyJsaW5lIiwgeyB4MTogIjYiLCB4MjogIjciLCB5MTogIjEwIiwgeTI6ICIxMCIgfV0KICBdOwoKICBjb25zdCBNYWlsID0gWwogICAgWyJwYXRoIiwgeyBkOiAibTIyIDctOC45OTEgNS43MjdhMiAyIDAgMCAxLTIuMDA5IDBMMiA3IiB9XSwKICAgIFsicmVjdCIsIHsgeDogIjIiLCB5OiAiNCIsIHdpZHRoOiAiMjAiLCBoZWlnaHQ6ICIxNiIsIHJ4OiAiMiIgfV0KICBdOwoKICBjb25zdCBNYXBNaW51cyA9IFsKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIm0xMSAxOS0xLjEwNi0uNTUyYTIgMiAwIDAgMC0xLjc4OCAwbC0zLjY1OSAxLjgzQTEgMSAwIDAgMSAzIDE5LjM4MVY2LjYxOGExIDEgMCAwIDEgLjU1My0uODk0bDQuNTUzLTIuMjc3YTIgMiAwIDAgMSAxLjc4OCAwbDQuMjEyIDIuMTA2YTIgMiAwIDAgMCAxLjc4OCAwbDMuNjU5LTEuODNBMSAxIDAgMCAxIDIxIDQuNjE5VjE0IgogICAgICB9CiAgICBdLAogICAgWyJwYXRoIiwgeyBkOiAiTTE1IDUuNzY0VjE0IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yMSAxOGgtNiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNOSAzLjIzNnYxNSIgfV0KICBdOwoKICBjb25zdCBNYWlscyA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xNyAxOWEyIDIgMCAwIDEtMiAySDRhMiAyIDAgMCAxLTItMnYtOGEyIDIgMCAwIDEgMS0xLjczMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMjIgNS41LTYuNDE5IDQuMTc5YTIgMiAwIDAgMS0yLjE2MiAwTDcgNS41IiB9XSwKICAgIFsicmVjdCIsIHsgeDogIjciLCB5OiAiMyIsIHdpZHRoOiAiMTUiLCBoZWlnaHQ6ICIxMiIsIHJ4OiAiMiIgfV0KICBdOwoKICBjb25zdCBNYXBQaW5DaGVja0luc2lkZSA9IFsKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk0yMCAxMGMwIDQuOTkzLTUuNTM5IDEwLjE5My03LjM5OSAxMS43OTlhMSAxIDAgMCAxLTEuMjAyIDBDOS41MzkgMjAuMTkzIDQgMTQuOTkzIDQgMTBhOCA4IDAgMCAxIDE2IDAiCiAgICAgIH0KICAgIF0sCiAgICBbInBhdGgiLCB7IGQ6ICJtOSAxMCAyIDIgNC00IiB9XQogIF07CgogIGNvbnN0IE1hcFBpbkNoZWNrID0gWwogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTE5LjQzIDEyLjkzNWMuMzU3LS45NjcuNTctMS45NTUuNTctMi45MzVhOCA4IDAgMCAwLTE2IDBjMCA0Ljk5MyA1LjUzOSAxMC4xOTMgNy4zOTkgMTEuNzk5YTEgMSAwIDAgMCAxLjIwMiAwIDMyLjE5NyAzMi4xOTcgMCAwIDAgLjgxMy0uNzI4IgogICAgICB9CiAgICBdLAogICAgWyJjaXJjbGUiLCB7IGN4OiAiMTIiLCBjeTogIjEwIiwgcjogIjMiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTE2IDE4IDIgMiA0LTQiIH1dCiAgXTsKCiAgY29uc3QgTWFwUGluTWludXNJbnNpZGUgPSBbCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMjAgMTBjMCA0Ljk5My01LjUzOSAxMC4xOTMtNy4zOTkgMTEuNzk5YTEgMSAwIDAgMS0xLjIwMiAwQzkuNTM5IDIwLjE5MyA0IDE0Ljk5MyA0IDEwYTggOCAwIDAgMSAxNiAwIgogICAgICB9CiAgICBdLAogICAgWyJwYXRoIiwgeyBkOiAiTTkgMTBoNiIgfV0KICBdOwoKICBjb25zdCBNYXBQaW5Ib3VzZSA9IFsKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk0xNSAyMmExIDEgMCAwIDEtMS0xdi00YTEgMSAwIDAgMSAuNDQ1LS44MzJsMy0yYTEgMSAwIDAgMSAxLjExIDBsMyAyQTEgMSAwIDAgMSAyMiAxN3Y0YTEgMSAwIDAgMS0xIDF6IgogICAgICB9CiAgICBdLAogICAgWyJwYXRoIiwgeyBkOiAiTTE4IDEwYTggOCAwIDAgMC0xNiAwYzAgNC45OTMgNS41MzkgMTAuMTkzIDcuMzk5IDExLjc5OWExIDEgMCAwIDAgLjYwMS4yIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xOCAyMnYtMyIgfV0sCiAgICBbImNpcmNsZSIsIHsgY3g6ICIxMCIsIGN5OiAiMTAiLCByOiAiMyIgfV0KICBdOwoKICBjb25zdCBNYXBQaW5NaW51cyA9IFsKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk0xOC45NzcgMTRDMTkuNiAxMi43MDEgMjAgMTEuMzQzIDIwIDEwYTggOCAwIDAgMC0xNiAwYzAgNC45OTMgNS41MzkgMTAuMTkzIDcuMzk5IDExLjc5OWExIDEgMCAwIDAgMS4yMDIgMCAzMiAzMiAwIDAgMCAuODI0LS43MzgiCiAgICAgIH0KICAgIF0sCiAgICBbImNpcmNsZSIsIHsgY3g6ICIxMiIsIGN5OiAiMTAiLCByOiAiMyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTYgMThoNiIgfV0KICBdOwoKICBjb25zdCBNYXBQaW5PZmYgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIuNzUgNy4wOWEzIDMgMCAwIDEgMi4xNiAyLjE2IiB9XSwKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk0xNy4wNzIgMTcuMDcyYy0xLjYzNCAyLjE3LTMuNTI3IDMuOTEyLTQuNDcxIDQuNzI3YTEgMSAwIDAgMS0xLjIwMiAwQzkuNTM5IDIwLjE5MyA0IDE0Ljk5MyA0IDEwYTggOCAwIDAgMSAxLjQzMi00LjU2OCIKICAgICAgfQogICAgXSwKICAgIFsicGF0aCIsIHsgZDogIm0yIDIgMjAgMjAiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTguNDc1IDIuODE4QTggOCAwIDAgMSAyMCAxMGMwIDEuMTgzLS4zMSAyLjM3Ny0uODEgMy41MzMiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTkuMTMgOS4xM2EzIDMgMCAwIDAgMy43NCAzLjc0IiB9XQogIF07CgogIGNvbnN0IE1hcFBpblBlbiA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xNy45NyA5LjMwNEE4IDggMCAwIDAgMiAxMGMwIDQuNjkgNC44ODcgOS41NjIgNy4wMjIgMTEuNDY4IiB9XSwKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk0yMS4zNzggMTYuNjI2YTEgMSAwIDAgMC0zLjAwNC0zLjAwNGwtNC4wMSA0LjAxMmEyIDIgMCAwIDAtLjUwNi44NTRsLS44MzcgMi44N2EuNS41IDAgMCAwIC42Mi42MmwyLjg3LS44MzdhMiAyIDAgMCAwIC44NTQtLjUwNnoiCiAgICAgIH0KICAgIF0sCiAgICBbImNpcmNsZSIsIHsgY3g6ICIxMCIsIGN5OiAiMTAiLCByOiAiMyIgfV0KICBdOwoKICBjb25zdCBNYXBQaW5QbHVzSW5zaWRlID0gWwogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTIwIDEwYzAgNC45OTMtNS41MzkgMTAuMTkzLTcuMzk5IDExLjc5OWExIDEgMCAwIDEtMS4yMDIgMEM5LjUzOSAyMC4xOTMgNCAxNC45OTMgNCAxMGE4IDggMCAwIDEgMTYgMCIKICAgICAgfQogICAgXSwKICAgIFsicGF0aCIsIHsgZDogIk0xMiA3djYiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTkgMTBoNiIgfV0KICBdOwoKICBjb25zdCBNYXBQaW5QbHVzID0gWwogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTE5LjkxNCAxMS4xMDVBNy4yOTggNy4yOTggMCAwIDAgMjAgMTBhOCA4IDAgMCAwLTE2IDBjMCA0Ljk5MyA1LjUzOSAxMC4xOTMgNy4zOTkgMTEuNzk5YTEgMSAwIDAgMCAxLjIwMiAwIDMyIDMyIDAgMCAwIC44MjQtLjczOCIKICAgICAgfQogICAgXSwKICAgIFsiY2lyY2xlIiwgeyBjeDogIjEyIiwgY3k6ICIxMCIsIHI6ICIzIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNiAxOGg2IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xOSAxNXY2IiB9XQogIF07CgogIGNvbnN0IE1hcFBpblNlYXJjaCA9IFsKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk0gMTIuMjQ4IDIxLjk2OSBhIDEgMSAwIDAgMSAtMC44NDkgLTAuMTcgQyA5LjUzOSAyMC4xOTMgNCAxNC45OTMgNCAxMCBhIDggOCAwIDAgMSAxNiAwIEMgMjAgMTAuNDIgMTkuOTYxIDEwLjg0MSAxOS44ODggMTEuMjYyIgogICAgICB9CiAgICBdLAogICAgWyJwYXRoIiwgeyBkOiAibTIyIDIyLTEuODgtMS44OCIgfV0sCiAgICBbImNpcmNsZSIsIHsgY3g6ICIxMiIsIGN5OiAiMTAiLCByOiAiMyIgfV0sCiAgICBbImNpcmNsZSIsIHsgY3g6ICIxOCIsIGN5OiAiMTgiLCByOiAiMyIgfV0KICBdOwoKICBjb25zdCBNYXBQaW5YSW5zaWRlID0gWwogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTIwIDEwYzAgNC45OTMtNS41MzkgMTAuMTkzLTcuMzk5IDExLjc5OWExIDEgMCAwIDEtMS4yMDIgMEM5LjUzOSAyMC4xOTMgNCAxNC45OTMgNCAxMGE4IDggMCAwIDEgMTYgMCIKICAgICAgfQogICAgXSwKICAgIFsicGF0aCIsIHsgZDogIm0xNC41IDcuNS01IDUiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTkuNSA3LjUgNSA1IiB9XQogIF07CgogIGNvbnN0IE1hcFBpblggPSBbCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMTkuNzUyIDExLjkwMUE3Ljc4IDcuNzggMCAwIDAgMjAgMTBhOCA4IDAgMCAwLTE2IDBjMCA0Ljk5MyA1LjUzOSAxMC4xOTMgNy4zOTkgMTEuNzk5YTEgMSAwIDAgMCAxLjIwMiAwIDE5IDE5IDAgMCAwIC4wOS0uMDc3IgogICAgICB9CiAgICBdLAogICAgWyJjaXJjbGUiLCB7IGN4OiAiMTIiLCBjeTogIjEwIiwgcjogIjMiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTIxLjUgMTUuNS01IDUiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTIxLjUgMjAuNS01LTUiIH1dCiAgXTsKCiAgY29uc3QgTWFwUGlubmVkID0gWwogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTE4IDhjMCAzLjYxMy0zLjg2OSA3LjQyOS01LjM5MyA4Ljc5NWExIDEgMCAwIDEtMS4yMTQgMEM5Ljg3IDE1LjQyOSA2IDExLjYxMyA2IDhhNiA2IDAgMCAxIDEyIDAiCiAgICAgIH0KICAgIF0sCiAgICBbImNpcmNsZSIsIHsgY3g6ICIxMiIsIGN5OiAiOCIsIHI6ICIyIiB9XSwKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk04LjcxNCAxNGgtMy43MWExIDEgMCAwIDAtLjk0OC42ODNsLTIuMDA0IDZBMSAxIDAgMCAwIDMgMjJoMThhMSAxIDAgMCAwIC45NDgtMS4zMTZsLTItNmExIDEgMCAwIDAtLjk0OS0uNjg0aC0zLjcxMiIKICAgICAgfQogICAgXQogIF07CgogIGNvbnN0IE1hcFBpbiA9IFsKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk0yMCAxMGMwIDQuOTkzLTUuNTM5IDEwLjE5My03LjM5OSAxMS43OTlhMSAxIDAgMCAxLTEuMjAyIDBDOS41MzkgMjAuMTkzIDQgMTQuOTkzIDQgMTBhOCA4IDAgMCAxIDE2IDAiCiAgICAgIH0KICAgIF0sCiAgICBbImNpcmNsZSIsIHsgY3g6ICIxMiIsIGN5OiAiMTAiLCByOiAiMyIgfV0KICBdOwoKICBjb25zdCBNYXBQbHVzID0gWwogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAibTExIDE5LTEuMTA2LS41NTJhMiAyIDAgMCAwLTEuNzg4IDBsLTMuNjU5IDEuODNBMSAxIDAgMCAxIDMgMTkuMzgxVjYuNjE4YTEgMSAwIDAgMSAuNTUzLS44OTRsNC41NTMtMi4yNzdhMiAyIDAgMCAxIDEuNzg4IDBsNC4yMTIgMi4xMDZhMiAyIDAgMCAwIDEuNzg4IDBsMy42NTktMS44M0ExIDEgMCAwIDEgMjEgNC42MTlWMTIiCiAgICAgIH0KICAgIF0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTUgNS43NjRWMTIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE4IDE1djYiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIxIDE4aC02IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk05IDMuMjM2djE1IiB9XQogIF07CgogIGNvbnN0IE1hcCA9IFsKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk0xNC4xMDYgNS41NTNhMiAyIDAgMCAwIDEuNzg4IDBsMy42NTktMS44M0ExIDEgMCAwIDEgMjEgNC42MTl2MTIuNzY0YTEgMSAwIDAgMS0uNTUzLjg5NGwtNC41NTMgMi4yNzdhMiAyIDAgMCAxLTEuNzg4IDBsLTQuMjEyLTIuMTA2YTIgMiAwIDAgMC0xLjc4OCAwbC0zLjY1OSAxLjgzQTEgMSAwIDAgMSAzIDE5LjM4MVY2LjYxOGExIDEgMCAwIDEgLjU1My0uODk0bDQuNTUzLTIuMjc3YTIgMiAwIDAgMSAxLjc4OCAweiIKICAgICAgfQogICAgXSwKICAgIFsicGF0aCIsIHsgZDogIk0xNSA1Ljc2NHYxNSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNOSAzLjIzNnYxNSIgfV0KICBdOwoKICBjb25zdCBNYXJzU3Ryb2tlID0gWwogICAgWyJwYXRoIiwgeyBkOiAibTE0IDYgNCA0IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNyAzaDR2NCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMjEgMy03Ljc1IDcuNzUiIH1dLAogICAgWyJjaXJjbGUiLCB7IGN4OiAiOSIsIGN5OiAiMTUiLCByOiAiNiIgfV0KICBdOwoKICBjb25zdCBNYXJzID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTE2IDNoNXY1IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0yMSAzLTYuNzUgNi43NSIgfV0sCiAgICBbImNpcmNsZSIsIHsgY3g6ICIxMCIsIGN5OiAiMTQiLCByOiAiNiIgfV0KICBdOwoKICBjb25zdCBNYXJ0aW5pID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDEyIDQuMjA3IDQuMjA3QS43MDcuNzA3IDAgMCAxIDQuNzA3IDNoMTQuNTg2YS43MDcuNzA3IDAgMCAxIC41IDEuMjA3eiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgMTJ2MTAiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTcgMjJoMTAiIH1dCiAgXTsKCiAgY29uc3QgTWF4aW1pemUyID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTE1IDNoNnY2IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0yMSAzLTcgNyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMyAyMSA3LTciIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTkgMjFIM3YtNiIgfV0KICBdOwoKICBjb25zdCBNYXhpbWl6ZSA9IFsKICAgIFsicGF0aCIsIHsgZDogIk04IDNINWEyIDIgMCAwIDAtMiAydjMiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIxIDhWNWEyIDIgMCAwIDAtMi0yaC0zIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0zIDE2djNhMiAyIDAgMCAwIDIgMmgzIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNiAyMWgzYTIgMiAwIDAgMCAyLTJ2LTMiIH1dCiAgXTsKCiAgY29uc3QgTWVkYWwgPSBbCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNNy4yMSAxNSAyLjY2IDcuMTRhMiAyIDAgMCAxIC4xMy0yLjJMNC40IDIuOEEyIDIgMCAwIDEgNiAyaDEyYTIgMiAwIDAgMSAxLjYuOGwxLjYgMi4xNGEyIDIgMCAwIDEgLjE0IDIuMkwxNi43OSAxNSIKICAgICAgfQogICAgXSwKICAgIFsicGF0aCIsIHsgZDogIk0xMSAxMiA1LjEyIDIuMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMTMgMTIgNS44OC05LjgiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTggN2g4IiB9XSwKICAgIFsiY2lyY2xlIiwgeyBjeDogIjEyIiwgY3k6ICIxNyIsIHI6ICI1IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xMiAxOHYtMmgtLjUiIH1dCiAgXTsKCiAgY29uc3QgTWVnYXBob25lT2ZmID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTExLjYzNiA2QTEzIDEzIDAgMCAwIDE5LjQgMy4yIDEgMSAwIDAgMSAyMSA0djExLjM0NCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTQuMzc4IDE0LjM1N0ExMyAxMyAwIDAgMCAxMSAxNEg1YTIgMiAwIDAgMS0yLTJWOGEyIDIgMCAwIDEgMi0yaDEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTIgMiAyMCAyMCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNiAxNGExMiAxMiAwIDAgMCAyLjQgNy4yIDIgMiAwIDAgMCAzLjItMi40QTggOCAwIDAgMSAxMCAxNCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNOCA4djYiIH1dCiAgXTsKCiAgY29uc3QgTWVnYXBob25lID0gWwogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTExIDZhMTMgMTMgMCAwIDAgOC40LTIuOEExIDEgMCAwIDEgMjEgNHYxMmExIDEgMCAwIDEtMS42LjhBMTMgMTMgMCAwIDAgMTEgMTRINWEyIDIgMCAwIDEtMi0yVjhhMiAyIDAgMCAxIDItMnoiCiAgICAgIH0KICAgIF0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNiAxNGExMiAxMiAwIDAgMCAyLjQgNy4yIDIgMiAwIDAgMCAzLjItMi40QTggOCAwIDAgMSAxMCAxNCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNOCA2djgiIH1dCiAgXTsKCiAgY29uc3QgTWVoID0gWwogICAgWyJjaXJjbGUiLCB7IGN4OiAiMTIiLCBjeTogIjEyIiwgcjogIjEwIiB9XSwKICAgIFsibGluZSIsIHsgeDE6ICI4IiwgeDI6ICIxNiIsIHkxOiAiMTUiLCB5MjogIjE1IiB9XSwKICAgIFsibGluZSIsIHsgeDE6ICI5IiwgeDI6ICI5LjAxIiwgeTE6ICI5IiwgeTI6ICI5IiB9XSwKICAgIFsibGluZSIsIHsgeDE6ICIxNSIsIHgyOiAiMTUuMDEiLCB5MTogIjkiLCB5MjogIjkiIH1dCiAgXTsKCiAgY29uc3QgTWVtb3J5U3RpY2sgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgMTJ2LTIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDE4di0yIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNiAxMnYtMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTYgMTh2LTIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIgMTFoMS41IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yMCAxOHYtMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMjAuNSAxMUgyMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNCAxOHYtMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNOCAxMnYtMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNOCAxOHYtMiIgfV0sCiAgICBbInJlY3QiLCB7IHg6ICIyIiwgeTogIjYiLCB3aWR0aDogIjIwIiwgaGVpZ2h0OiAiMTAiLCByeDogIjIiIH1dCiAgXTsKCiAgY29uc3QgTWVudSA9IFsKICAgIFsicGF0aCIsIHsgZDogIk00IDVoMTYiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTQgMTJoMTYiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTQgMTloMTYiIH1dCiAgXTsKCiAgY29uc3QgTWVyZ2UgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJtOCA2IDQtNCA0IDQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDJ2MTAuM2E0IDQgMCAwIDEtMS4xNzIgMi44NzJMNCAyMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMjAgMjItNS01IiB9XQogIF07CgogIGNvbnN0IE1lc3NhZ2VDaXJjbGVDaGVjayA9IFsKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk0yLjk5MiAxNi4zNDJhMiAyIDAgMCAxIC4wOTQgMS4xNjdsLTEuMDY1IDMuMjlhMSAxIDAgMCAwIDEuMjM2IDEuMTY4bDMuNDEzLS45OThhMiAyIDAgMCAxIDEuMDk5LjA5MiAxMCAxMCAwIDEgMC00Ljc3Ny00LjcxOSIKICAgICAgfQogICAgXSwKICAgIFsicGF0aCIsIHsgZDogIm05IDEyIDIgMiA0LTQiIH1dCiAgXTsKCiAgY29uc3QgTWVzc2FnZUNpcmNsZUNvZGUgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJtMTAgOS0zIDMgMyAzIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0xNCAxNSAzLTMtMy0zIiB9XSwKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk0yLjk5MiAxNi4zNDJhMiAyIDAgMCAxIC4wOTQgMS4xNjdsLTEuMDY1IDMuMjlhMSAxIDAgMCAwIDEuMjM2IDEuMTY4bDMuNDEzLS45OThhMiAyIDAgMCAxIDEuMDk5LjA5MiAxMCAxMCAwIDEgMC00Ljc3Ny00LjcxOSIKICAgICAgfQogICAgXQogIF07CgogIGNvbnN0IE1lc3NhZ2VDaXJjbGVEYXNoZWQgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTAuMSAyLjE4MmExMCAxMCAwIDAgMSAzLjggMCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTMuOSAyMS44MThhMTAgMTAgMCAwIDEtMy44IDAiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE3LjYwOSAzLjcyYTEwIDEwIDAgMCAxIDIuNjkgMi43IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yLjE4MiAxMy45YTEwIDEwIDAgMCAxIDAtMy44IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yMC4yOCAxNy42MWExMCAxMCAwIDAgMS0yLjcgMi42OSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMjEuODE4IDEwLjFhMTAgMTAgMCAwIDEgMCAzLjgiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTMuNzIxIDYuMzkxYTEwIDEwIDAgMCAxIDIuNy0yLjY5IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm02LjE2MyAyMS4xMTctMi45MDYuODVhMSAxIDAgMCAxLTEuMjM2LTEuMTY5bC45NjUtMi45OCIgfV0KICBdOwoKICBjb25zdCBNZXNzYWdlQ2lyY2xlSGVhcnQgPSBbCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMi45OTIgMTYuMzQyYTIgMiAwIDAgMSAuMDk0IDEuMTY3bC0xLjA2NSAzLjI5YTEgMSAwIDAgMCAxLjIzNiAxLjE2OGwzLjQxMy0uOTk4YTIgMiAwIDAgMSAxLjA5OS4wOTIgMTAgMTAgMCAxIDAtNC43NzctNC43MTkiCiAgICAgIH0KICAgIF0sCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNNy44MjggMTMuMDdBMyAzIDAgMCAxIDEyIDguNzY0YTMgMyAwIDAgMSA1LjAwNCAyLjIyNCAzIDMgMCAwIDEtLjgzMiAyLjA4M2wtMy40NDcgMy42MmExIDEgMCAwIDEtMS40NS0uMDAxeiIKICAgICAgfQogICAgXQogIF07CgogIGNvbnN0IE1lc3NhZ2VDaXJjbGVNb3JlID0gWwogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTIuOTkyIDE2LjM0MmEyIDIgMCAwIDEgLjA5NCAxLjE2N2wtMS4wNjUgMy4yOWExIDEgMCAwIDAgMS4yMzYgMS4xNjhsMy40MTMtLjk5OGEyIDIgMCAwIDEgMS4wOTkuMDkyIDEwIDEwIDAgMSAwLTQuNzc3LTQuNzE5IgogICAgICB9CiAgICBdLAogICAgWyJwYXRoIiwgeyBkOiAiTTggMTJoLjAxIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xMiAxMmguMDEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE2IDEyaC4wMSIgfV0KICBdOwoKICBjb25zdCBNZXNzYWdlQ2lyY2xlT2ZmID0gWwogICAgWyJwYXRoIiwgeyBkOiAibTIgMiAyMCAyMCIgfV0sCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNNC45MyA0LjkyOWExMCAxMCAwIDAgMC0xLjkzOCAxMS40MTIgMiAyIDAgMCAxIC4wOTQgMS4xNjdsLTEuMDY1IDMuMjlhMSAxIDAgMCAwIDEuMjM2IDEuMTY4bDMuNDEzLS45OThhMiAyIDAgMCAxIDEuMDk5LjA5MiAxMCAxMCAwIDAgMCAxMS4zMDItMS45ODkiCiAgICAgIH0KICAgIF0sCiAgICBbInBhdGgiLCB7IGQ6ICJNOC4zNSAyLjY5QTEwIDEwIDAgMCAxIDIxLjMgMTUuNjUiIH1dCiAgXTsKCiAgY29uc3QgTWVzc2FnZUNpcmNsZVBsdXMgPSBbCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMi45OTIgMTYuMzQyYTIgMiAwIDAgMSAuMDk0IDEuMTY3bC0xLjA2NSAzLjI5YTEgMSAwIDAgMCAxLjIzNiAxLjE2OGwzLjQxMy0uOTk4YTIgMiAwIDAgMSAxLjA5OS4wOTIgMTAgMTAgMCAxIDAtNC43NzctNC43MTkiCiAgICAgIH0KICAgIF0sCiAgICBbInBhdGgiLCB7IGQ6ICJNOCAxMmg4IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xMiA4djgiIH1dCiAgXTsKCiAgY29uc3QgTWVzc2FnZUNpcmNsZVF1ZXN0aW9uTWFyayA9IFsKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk0yLjk5MiAxNi4zNDJhMiAyIDAgMCAxIC4wOTQgMS4xNjdsLTEuMDY1IDMuMjlhMSAxIDAgMCAwIDEuMjM2IDEuMTY4bDMuNDEzLS45OThhMiAyIDAgMCAxIDEuMDk5LjA5MiAxMCAxMCAwIDEgMC00Ljc3Ny00LjcxOSIKICAgICAgfQogICAgXSwKICAgIFsicGF0aCIsIHsgZDogIk05LjA5IDlhMyAzIDAgMCAxIDUuODMgMWMwIDItMyAzLTMgMyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgMTdoLjAxIiB9XQogIF07CgogIGNvbnN0IE1lc3NhZ2VDaXJjbGVSZXBseSA9IFsKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk0yLjk5MiAxNi4zNDJhMiAyIDAgMCAxIC4wOTQgMS4xNjdsLTEuMDY1IDMuMjlhMSAxIDAgMCAwIDEuMjM2IDEuMTY4bDMuNDEzLS45OThhMiAyIDAgMCAxIDEuMDk5LjA5MiAxMCAxMCAwIDEgMC00Ljc3Ny00LjcxOSIKICAgICAgfQogICAgXSwKICAgIFsicGF0aCIsIHsgZDogIm0xMCAxNS0zLTMgMy0zIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk03IDEyaDhhMiAyIDAgMCAxIDIgMnYxIiB9XQogIF07CgogIGNvbnN0IE1lc3NhZ2VDaXJjbGVXYXJuaW5nID0gWwogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTIuOTkyIDE2LjM0MmEyIDIgMCAwIDEgLjA5NCAxLjE2N2wtMS4wNjUgMy4yOWExIDEgMCAwIDAgMS4yMzYgMS4xNjhsMy40MTMtLjk5OGEyIDIgMCAwIDEgMS4wOTkuMDkyIDEwIDEwIDAgMSAwLTQuNzc3LTQuNzE5IgogICAgICB9CiAgICBdLAogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDh2NCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgMTZoLjAxIiB9XQogIF07CgogIGNvbnN0IE1lc3NhZ2VDaXJjbGVYID0gWwogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTIuOTkyIDE2LjM0MmEyIDIgMCAwIDEgLjA5NCAxLjE2N2wtMS4wNjUgMy4yOWExIDEgMCAwIDAgMS4yMzYgMS4xNjhsMy40MTMtLjk5OGEyIDIgMCAwIDEgMS4wOTkuMDkyIDEwIDEwIDAgMSAwLTQuNzc3LTQuNzE5IgogICAgICB9CiAgICBdLAogICAgWyJwYXRoIiwgeyBkOiAibTE1IDktNiA2IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm05IDkgNiA2IiB9XQogIF07CgogIGNvbnN0IE1lc3NhZ2VDaXJjbGUgPSBbCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMi45OTIgMTYuMzQyYTIgMiAwIDAgMSAuMDk0IDEuMTY3bC0xLjA2NSAzLjI5YTEgMSAwIDAgMCAxLjIzNiAxLjE2OGwzLjQxMy0uOTk4YTIgMiAwIDAgMSAxLjA5OS4wOTIgMTAgMTAgMCAxIDAtNC43NzctNC43MTkiCiAgICAgIH0KICAgIF0KICBdOwoKICBjb25zdCBNZXNzYWdlU3F1YXJlQ2hlY2sgPSBbCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMjIgMTdhMiAyIDAgMCAxLTIgMkg2LjgyOGEyIDIgMCAwIDAtMS40MTQuNTg2bC0yLjIwMiAyLjIwMkEuNy43IDAgMCAxIDIgMjEuMjg2VjVhMiAyIDAgMCAxIDItMmgxNmEyIDIgMCAwIDEgMiAyeiIKICAgICAgfQogICAgXSwKICAgIFsicGF0aCIsIHsgZDogIm05IDExIDIgMiA0LTQiIH1dCiAgXTsKCiAgY29uc3QgTWVzc2FnZVNxdWFyZUNvZGUgPSBbCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMjIgMTdhMiAyIDAgMCAxLTIgMkg2LjgyOGEyIDIgMCAwIDAtMS40MTQuNTg2bC0yLjIwMiAyLjIwMkEuNzEuNzEgMCAwIDEgMiAyMS4yODZWNWEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ6IgogICAgICB9CiAgICBdLAogICAgWyJwYXRoIiwgeyBkOiAibTEwIDgtMyAzIDMgMyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMTQgMTQgMy0zLTMtMyIgfV0KICBdOwoKICBjb25zdCBNZXNzYWdlU3F1YXJlRGFzaGVkID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTE0IDNoMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTYgMTloLTIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIgMTJ2LTIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIgMTZ2NS4yODZhLjcxLjcxIDAgMCAwIDEuMjEyLjUwMmwxLjE0OS0xLjE0OSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMjAgMTlhMiAyIDAgMCAwIDItMnYtMSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMjIgMTB2MiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMjIgNlY1YTIgMiAwIDAgMC0yLTIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTQgM2EyIDIgMCAwIDAtMiAydjEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTggMTloMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNOCAzaDIiIH1dCiAgXTsKCiAgY29uc3QgTWVzc2FnZVNxdWFyZURpZmYgPSBbCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMjIgMTdhMiAyIDAgMCAxLTIgMkg2LjgyOGEyIDIgMCAwIDAtMS40MTQuNTg2bC0yLjIwMiAyLjIwMkEuNzEuNzEgMCAwIDEgMiAyMS4yODZWNWEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ6IgogICAgICB9CiAgICBdLAogICAgWyJwYXRoIiwgeyBkOiAiTTEwIDE1aDQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTEwIDloNCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgN3Y0IiB9XQogIF07CgogIGNvbnN0IE1lc3NhZ2VTcXVhcmVEb3QgPSBbCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMTIuNyAzSDRhMiAyIDAgMCAwLTIgMnYxNi4yODZhLjcxLjcxIDAgMCAwIDEuMjEyLjUwMmwyLjIwMi0yLjIwMkEyIDIgMCAwIDEgNi44MjggMTlIMjBhMiAyIDAgMCAwIDItMnYtNC43IgogICAgICB9CiAgICBdLAogICAgWyJjaXJjbGUiLCB7IGN4OiAiMTkiLCBjeTogIjYiLCByOiAiMyIgfV0KICBdOwoKICBjb25zdCBNZXNzYWdlU3F1YXJlSGVhcnQgPSBbCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMjIgMTdhMiAyIDAgMCAxLTIgMkg2LjgyOGEyIDIgMCAwIDAtMS40MTQuNTg2bC0yLjIwMiAyLjIwMkEuNzEuNzEgMCAwIDEgMiAyMS4yODZWNWEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ6IgogICAgICB9CiAgICBdLAogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTcuNSA5LjVjMCAuNjg3LjI2NSAxLjM4My42OTcgMS44NDRsMy4wMDkgMy4yNjRhMS4xNCAxLjE0IDAgMCAwIC40MDcuMzE0IDEgMSAwIDAgMCAuNzgzLS4wMDQgMS4xNCAxLjE0IDAgMCAwIC4zOTgtLjMxbDMuMDA4LTMuMjY0QTIuNzcgMi43NyAwIDAgMCAxNi41IDkuNSAyLjUgMi41IDAgMCAwIDEyIDhhMi41IDIuNSAwIDAgMC00LjUgMS41IgogICAgICB9CiAgICBdCiAgXTsKCiAgY29uc3QgTWVzc2FnZVNxdWFyZUxvY2sgPSBbCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMjIgOC41VjVhMiAyIDAgMCAwLTItMkg0YTIgMiAwIDAgMC0yIDJ2MTYuMjg2YS43MS43MSAwIDAgMCAxLjIxMi41MDJsMi4yMDItMi4yMDJBMiAyIDAgMCAxIDYuODI4IDE5SDEwIgogICAgICB9CiAgICBdLAogICAgWyJwYXRoIiwgeyBkOiAiTTIwIDE1di0yYTIgMiAwIDAgMC00IDB2MiIgfV0sCiAgICBbInJlY3QiLCB7IHg6ICIxNCIsIHk6ICIxNSIsIHdpZHRoOiAiOCIsIGhlaWdodDogIjUiLCByeDogIjEiIH1dCiAgXTsKCiAgY29uc3QgTWVzc2FnZVNxdWFyZU1vcmUgPSBbCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMjIgMTdhMiAyIDAgMCAxLTIgMkg2LjgyOGEyIDIgMCAwIDAtMS40MTQuNTg2bC0yLjIwMiAyLjIwMkEuNzEuNzEgMCAwIDEgMiAyMS4yODZWNWEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ6IgogICAgICB9CiAgICBdLAogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDExaC4wMSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTYgMTFoLjAxIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk04IDExaC4wMSIgfV0KICBdOwoKICBjb25zdCBNZXNzYWdlU3F1YXJlT2ZmID0gWwogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTE5IDE5SDYuODI4YTIgMiAwIDAgMC0xLjQxNC41ODZsLTIuMjAyIDIuMjAyQS43LjcgMCAwIDEgMiAyMS4yODZWNWEyIDIgMCAwIDEgMS4xODQtMS44MjYiCiAgICAgIH0KICAgIF0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMiAyIDIwIDIwIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk04LjY1NiAzSDIwYTIgMiAwIDAgMSAyIDJ2MTEuMzQ0IiB9XQogIF07CgogIGNvbnN0IE1lc3NhZ2VTcXVhcmVQbHVzID0gWwogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTIyIDE3YTIgMiAwIDAgMS0yIDJINi44MjhhMiAyIDAgMCAwLTEuNDE0LjU4NmwtMi4yMDIgMi4yMDJBLjcxLjcxIDAgMCAxIDIgMjEuMjg2VjVhMiAyIDAgMCAxIDItMmgxNmEyIDIgMCAwIDEgMiAyeiIKICAgICAgfQogICAgXSwKICAgIFsicGF0aCIsIHsgZDogIk0xMiA4djYiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTkgMTFoNiIgfV0KICBdOwoKICBjb25zdCBNZXNzYWdlU3F1YXJlUXVvdGUgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTQgMTRhMiAyIDAgMCAwIDItMlY4aC0yIiB9XSwKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk0yMiAxN2EyIDIgMCAwIDEtMiAySDYuODI4YTIgMiAwIDAgMC0xLjQxNC41ODZsLTIuMjAyIDIuMjAyQS43MS43MSAwIDAgMSAyIDIxLjI4NlY1YTIgMiAwIDAgMSAyLTJoMTZhMiAyIDAgMCAxIDIgMnoiCiAgICAgIH0KICAgIF0sCiAgICBbInBhdGgiLCB7IGQ6ICJNOCAxNGEyIDIgMCAwIDAgMi0yVjhIOCIgfV0KICBdOwoKICBjb25zdCBNZXNzYWdlU3F1YXJlUmVwbHkgPSBbCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMjIgMTdhMiAyIDAgMCAxLTIgMkg2LjgyOGEyIDIgMCAwIDAtMS40MTQuNTg2bC0yLjIwMiAyLjIwMkEuNzEuNzEgMCAwIDEgMiAyMS4yODZWNWEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ6IgogICAgICB9CiAgICBdLAogICAgWyJwYXRoIiwgeyBkOiAibTEwIDgtMyAzIDMgMyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTcgMTR2LTFhMiAyIDAgMCAwLTItMkg3IiB9XQogIF07CgogIGNvbnN0IE1lc3NhZ2VTcXVhcmVTaGFyZSA9IFsKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk0xMiAzSDRhMiAyIDAgMCAwLTIgMnYxNi4yODZhLjcxLjcxIDAgMCAwIDEuMjEyLjUwMmwyLjIwMi0yLjIwMkEyIDIgMCAwIDEgNi44MjggMTlIMjBhMiAyIDAgMCAwIDItMnYtNCIKICAgICAgfQogICAgXSwKICAgIFsicGF0aCIsIHsgZDogIk0xNiAzaDZ2NiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMTYgOSA2LTYiIH1dCiAgXTsKCiAgY29uc3QgTWVzc2FnZVNxdWFyZVRleHQgPSBbCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMjIgMTdhMiAyIDAgMCAxLTIgMkg2LjgyOGEyIDIgMCAwIDAtMS40MTQuNTg2bC0yLjIwMiAyLjIwMkEuNzEuNzEgMCAwIDEgMiAyMS4yODZWNWEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ6IgogICAgICB9CiAgICBdLAogICAgWyJwYXRoIiwgeyBkOiAiTTcgMTFoMTAiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTcgMTVoNiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNyA3aDgiIH1dCiAgXTsKCiAgY29uc3QgTWVzc2FnZVNxdWFyZVdhcm5pbmcgPSBbCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMjIgMTdhMiAyIDAgMCAxLTIgMkg2LjgyOGEyIDIgMCAwIDAtMS40MTQuNTg2bC0yLjIwMiAyLjIwMkEuNzEuNzEgMCAwIDEgMiAyMS4yODZWNWEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ6IgogICAgICB9CiAgICBdLAogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDE1aC4wMSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgN3Y0IiB9XQogIF07CgogIGNvbnN0IE1lc3NhZ2VTcXVhcmUgPSBbCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMjIgMTdhMiAyIDAgMCAxLTIgMkg2LjgyOGEyIDIgMCAwIDAtMS40MTQuNTg2bC0yLjIwMiAyLjIwMkEuNzEuNzEgMCAwIDEgMiAyMS4yODZWNWEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ6IgogICAgICB9CiAgICBdCiAgXTsKCiAgY29uc3QgTWVzc2FnZVNxdWFyZVggPSBbCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMjIgMTdhMiAyIDAgMCAxLTIgMkg2LjgyOGEyIDIgMCAwIDAtMS40MTQuNTg2bC0yLjIwMiAyLjIwMkEuNzEuNzEgMCAwIDEgMiAyMS4yODZWNWEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ6IgogICAgICB9CiAgICBdLAogICAgWyJwYXRoIiwgeyBkOiAibTE0LjUgOC41LTUgNSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtOS41IDguNSA1IDUiIH1dCiAgXTsKCiAgY29uc3QgTWVzc2FnZXNTcXVhcmUgPSBbCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMTYgMTBhMiAyIDAgMCAxLTIgMkg2LjgyOGEyIDIgMCAwIDAtMS40MTQuNTg2bC0yLjIwMiAyLjIwMkEuNzEuNzEgMCAwIDEgMiAxNC4yODZWNGEyIDIgMCAwIDEgMi0yaDEwYTIgMiAwIDAgMSAyIDJ6IgogICAgICB9CiAgICBdLAogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTIwIDlhMiAyIDAgMCAxIDIgMnYxMC4yODZhLjcxLjcxIDAgMCAxLTEuMjEyLjUwMmwtMi4yMDItMi4yMDJBMiAyIDAgMCAwIDE3LjE3MiAxOUgxMGEyIDIgMCAwIDEtMi0ydi0xIgogICAgICB9CiAgICBdCiAgXTsKCiAgY29uc3QgTWV0cm9ub21lID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDExLjRWOS4xIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0xMiAxNyA2LjU5LTYuNTkiIH1dLAogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAibTE1LjA1IDUuNy0uMjE4LS42OTFhMyAzIDAgMCAwLTUuNjYzIDBMNC40MTggMTkuNjk1QTEgMSAwIDAgMCA1LjM3IDIxaDEzLjI1M2ExIDEgMCAwIDAgLjk1MS0xLjMxTDE4LjQ1IDE2LjIiCiAgICAgIH0KICAgIF0sCiAgICBbImNpcmNsZSIsIHsgY3g6ICIyMCIsIGN5OiAiOSIsIHI6ICIyIiB9XQogIF07CgogIGNvbnN0IE1pY0F1ZGlvTGluZXMgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTAgM3YyLjM0MSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgMTd2NCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTQgNXYuMzQxIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xOCA1djEzIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yIDEwdjMiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIyIDEwdjMiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTYgNnYxMSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNOSAyMWg2IiB9XSwKICAgIFsicmVjdCIsIHsgd2lkdGg6ICI0IiwgaGVpZ2h0OiAiOCIsIHg6ICIxMCIsIHk6ICI5Iiwgcng6ICIyIiB9XQogIF07CgogIGNvbnN0IE1pY09mZiA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xMiAxOXYzIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNSA5LjM0VjVhMyAzIDAgMCAwLTUuNjgtMS4zMyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTYuOTUgMTYuOTVBNyA3IDAgMCAxIDUgMTJ2LTIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE4Ljg5IDEzLjIzQTcgNyAwIDAgMCAxOSAxMnYtMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMiAyIDIwIDIwIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk05IDl2M2EzIDMgMCAwIDAgNS4xMiAyLjEyIiB9XQogIF07CgogIGNvbnN0IE1pY1NpZ25hbCA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xMiAxN3Y0IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xOCAxMWE2IDYgMCAwMC0zLTUuMTk3IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yIDExYTEwIDEwIDAgMDE1LTguNjYyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yMiAxMWExMCAxMCAwIDAwLTUtOC42NjIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTYgMTFhNiA2IDAgMDEzLTUuMTk3IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk05IDIxaDYiIH1dLAogICAgWyJyZWN0IiwgeyB4OiAiMTAiLCB5OiAiOSIsIHdpZHRoOiAiNCIsIGhlaWdodDogIjgiLCByeDogIjIiIH1dCiAgXTsKCiAgY29uc3QgTWljVm9jYWwgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJtMTEgNy42MDEtNS45OTQgOC4xOWExIDEgMCAwIDAgLjEgMS4yOThsLjgxNy44MThhMSAxIDAgMCAwIDEuMzE0LjA4N0wxNS4wOSAxMiIgfV0sCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMTYuNSAyMS4xNzRDMTUuNSAyMC41IDE0LjM3MiAyMCAxMyAyMGMtMi4wNTggMC0zLjkyOCAyLjM1Ni02IDItMi4wNzItLjM1Ni0yLjc3NS0zLjM2OS0xLjUtNC41IgogICAgICB9CiAgICBdLAogICAgWyJjaXJjbGUiLCB7IGN4OiAiMTYiLCBjeTogIjciLCByOiAiNSIgfV0KICBdOwoKICBjb25zdCBNaWMgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgMTl2MyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTkgMTB2MmE3IDcgMCAwIDEtMTQgMHYtMiIgfV0sCiAgICBbInJlY3QiLCB7IHg6ICI5IiwgeTogIjIiLCB3aWR0aDogIjYiLCBoZWlnaHQ6ICIxMyIsIHJ4OiAiMyIgfV0KICBdOwoKICBjb25zdCBNaWNyb2NoaXAgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTAgMTJoNCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTAgMTdoNCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTAgN2g0IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xOCAxMmgyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xOCAxOGgyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xOCA2aDIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTQgMTJoMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNCAxOGgyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk00IDZoMiIgfV0sCiAgICBbInJlY3QiLCB7IHg6ICI2IiwgeTogIjIiLCB3aWR0aDogIjEyIiwgaGVpZ2h0OiAiMjAiLCByeDogIjIiIH1dCiAgXTsKCiAgY29uc3QgTWljcm9zY29wZSA9IFsKICAgIFsicGF0aCIsIHsgZDogIk02IDE4aDgiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTMgMjJoMTgiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE0IDIyYTcgNyAwIDEgMCAwLTE0aC0xIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk05IDE0aDIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTkgMTJhMiAyIDAgMCAxLTItMlY2aDZ2NGEyIDIgMCAwIDEtMiAyWiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgNlYzYTEgMSAwIDAgMC0xLTFIOWExIDEgMCAwIDAtMSAxdjMiIH1dCiAgXTsKCiAgY29uc3QgTWlsZXN0b25lID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDEzdjgiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDN2MyIgfV0sCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMTguMTcyIDZhMiAyIDAgMCAxIDEuNDE0LjU4NmwyLjA2IDIuMDZhMS4yMDcgMS4yMDcgMCAwIDEgMCAxLjcwOGwtMi4wNiAyLjA2YTIgMiAwIDAgMS0xLjQxNC41ODZINGExIDEgMCAwIDEtMS0xVjdhMSAxIDAgMCAxIDEtMXoiCiAgICAgIH0KICAgIF0KICBdOwoKICBjb25zdCBNaWxrT2ZmID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTggMmg4IiB9XSwKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk05IDJ2MS4zNDNNMTUgMnYyLjc4OWE0IDQgMCAwIDAgLjY3MiAyLjIxOWwuNjU2Ljk4NGE0IDQgMCAwIDEgLjY3MiAyLjIydjEuMTMxTTcuOCA3LjhsLS4xMjguMTkyQTQgNCAwIDAgMCA3IDEwLjIxMlYyMGEyIDIgMCAwIDAgMiAyaDZhMiAyIDAgMCAwIDItMnYtMyIKICAgICAgfQogICAgXSwKICAgIFsicGF0aCIsIHsgZDogIk03IDE1YTYuNDcgNi40NyAwIDAgMSA1IDAgNi40NzIgNi40NzIgMCAwIDAgMy40MzUuNDM1IiB9XSwKICAgIFsibGluZSIsIHsgeDE6ICIyIiwgeDI6ICIyMiIsIHkxOiAiMiIsIHkyOiAiMjIiIH1dCiAgXTsKCiAgY29uc3QgTWlsayA9IFsKICAgIFsicGF0aCIsIHsgZDogIk04IDJoOCIgfV0sCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNOSAydjIuNzg5YTQgNCAwIDAgMS0uNjcyIDIuMjE5bC0uNjU2Ljk4NEE0IDQgMCAwIDAgNyAxMC4yMTJWMjBhMiAyIDAgMCAwIDIgMmg2YTIgMiAwIDAgMCAyLTJ2LTkuNzg5YTQgNCAwIDAgMC0uNjcyLTIuMjE5bC0uNjU2LS45ODRBNCA0IDAgMCAxIDE1IDQuNzg4VjIiCiAgICAgIH0KICAgIF0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNyAxNWE2LjQ3MiA2LjQ3MiAwIDAgMSA1IDAgNi40NyA2LjQ3IDAgMCAwIDUgMCIgfV0KICBdOwoKICBjb25zdCBNaWNyb3dhdmUgPSBbCiAgICBbInJlY3QiLCB7IHdpZHRoOiAiMjAiLCBoZWlnaHQ6ICIxNSIsIHg6ICIyIiwgeTogIjQiLCByeDogIjIiIH1dLAogICAgWyJyZWN0IiwgeyB3aWR0aDogIjgiLCBoZWlnaHQ6ICI3IiwgeDogIjYiLCB5OiAiOCIsIHJ4OiAiMSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTggOHY3IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk02IDE5djIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE4IDE5djIiIH1dCiAgXTsKCiAgY29uc3QgTWluaW1pemUyID0gWwogICAgWyJwYXRoIiwgeyBkOiAibTE0IDEwIDctNyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMjAgMTBoLTZWNCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMyAyMSA3LTciIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTQgMTRoNnY2IiB9XQogIF07CgogIGNvbnN0IE1pbmltaXplID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTggM3YzYTIgMiAwIDAgMS0yIDJIMyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMjEgOGgtM2EyIDIgMCAwIDEtMi0yVjMiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTMgMTZoM2EyIDIgMCAwIDEgMiAydjMiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE2IDIxdi0zYTIgMiAwIDAgMSAyLTJoMyIgfV0KICBdOwoKICBjb25zdCBNaW51cyA9IFtbInBhdGgiLCB7IGQ6ICJNNSAxMmgxNCIgfV1dOwoKICBjb25zdCBNaXJyb3JSZWN0YW5ndWxhciA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xMSA2IDggOSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMTYgNy04IDgiIH1dLAogICAgWyJyZWN0IiwgeyB4OiAiNCIsIHk6ICIyIiwgd2lkdGg6ICIxNiIsIGhlaWdodDogIjIwIiwgcng6ICIyIiB9XQogIF07CgogIGNvbnN0IE1pcnJvclJvdW5kID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTEwIDYuNiA4LjYgOCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgMTh2NCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTUgNy41IDkuNSAxMyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNyAyMmgxMCIgfV0sCiAgICBbImNpcmNsZSIsIHsgY3g6ICIxMiIsIGN5OiAiMTAiLCByOiAiOCIgfV0KICBdOwoKICBjb25zdCBNb25pdG9yQ2hlY2sgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJtOSAxMCAyIDIgNC00IiB9XSwKICAgIFsicmVjdCIsIHsgd2lkdGg6ICIyMCIsIGhlaWdodDogIjE0IiwgeDogIjIiLCB5OiAiMyIsIHJ4OiAiMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgMTd2NCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNOCAyMWg4IiB9XQogIF07CgogIGNvbnN0IE1vbml0b3JDbG91ZCA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xMSAxM2EzIDMgMCAxIDEgMi44My00SDE0YTIgMiAwIDAgMSAwIDR6IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xMiAxN3Y0IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk04IDIxaDgiIH1dLAogICAgWyJyZWN0IiwgeyB4OiAiMiIsIHk6ICIzIiwgd2lkdGg6ICIyMCIsIGhlaWdodDogIjE0Iiwgcng6ICIyIiB9XQogIF07CgogIGNvbnN0IE1vbml0b3JDb2cgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgMTd2NCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMTQuMzA1IDcuNTMuOTIzLS4zODIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTE1LjIyOCA0Ljg1Mi0uOTIzLS4zODMiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTE2Ljg1MiAzLjIyOC0uMzgzLS45MjQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTE2Ljg1MiA4Ljc3Mi0uMzgzLjkyMyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMTkuMTQ4IDMuMjI4LjM4My0uOTI0IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0xOS41MyA5LjY5Ni0uMzgyLS45MjQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTIwLjc3MiA0Ljg1Mi45MjQtLjM4MyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMjAuNzcyIDcuMTQ4LjkyNC4zODMiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIyIDEzdjJhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDciIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTggMjFoOCIgfV0sCiAgICBbImNpcmNsZSIsIHsgY3g6ICIxOCIsIGN5OiAiNiIsIHI6ICIzIiB9XQogIF07CgogIGNvbnN0IE1vbml0b3JEb3duID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDEzVjciIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTE1IDEwLTMgMy0zLTMiIH1dLAogICAgWyJyZWN0IiwgeyB3aWR0aDogIjIwIiwgaGVpZ2h0OiAiMTQiLCB4OiAiMiIsIHk6ICIzIiwgcng6ICIyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xMiAxN3Y0IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk04IDIxaDgiIH1dCiAgXTsKCiAgY29uc3QgTW9uaXRvckRvdCA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xMiAxN3Y0IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yMiAxMi4zMDdWMTVhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDguNjkzIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk04IDIxaDgiIH1dLAogICAgWyJjaXJjbGUiLCB7IGN4OiAiMTkiLCBjeTogIjYiLCByOiAiMyIgfV0KICBdOwoKICBjb25zdCBNb25pdG9yT2ZmID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDE3djQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE3IDE3SDRhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAxLjE4NC0xLjgyNiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMiAyIDIwIDIwIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk04IDIxaDgiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTguNjU2IDNIMjBhMiAyIDAgMCAxIDIgMnYxMGEyIDIgMCAwIDEtLjI5MyAxLjA0MiIgfV0KICBdOwoKICBjb25zdCBNb25pdG9yUGF1c2UgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTAgMTNWNyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTQgMTNWNyIgfV0sCiAgICBbInJlY3QiLCB7IHdpZHRoOiAiMjAiLCBoZWlnaHQ6ICIxNCIsIHg6ICIyIiwgeTogIjMiLCByeDogIjIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDE3djQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTggMjFoOCIgfV0KICBdOwoKICBjb25zdCBNb25pdG9yUGxheSA9IFsKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk0xNS4wMzMgOS40NGEuNjQ3LjY0NyAwIDAgMSAwIDEuMTJsLTQuMDY1IDIuMzUyYS42NDUuNjQ1IDAgMCAxLS45NjgtLjU2VjcuNjQ4YS42NDUuNjQ1IDAgMCAxIC45NjctLjU2eiIKICAgICAgfQogICAgXSwKICAgIFsicGF0aCIsIHsgZDogIk0xMiAxN3Y0IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk04IDIxaDgiIH1dLAogICAgWyJyZWN0IiwgeyB4OiAiMiIsIHk6ICIzIiwgd2lkdGg6ICIyMCIsIGhlaWdodDogIjE0Iiwgcng6ICIyIiB9XQogIF07CgogIGNvbnN0IE1vbml0b3JTcGVha2VyID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTUuNSAyMEg4IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNyA5aC4wMSIgfV0sCiAgICBbInJlY3QiLCB7IHdpZHRoOiAiMTAiLCBoZWlnaHQ6ICIxNiIsIHg6ICIxMiIsIHk6ICI0Iiwgcng6ICIyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk04IDZINGEyIDIgMCAwIDAtMiAydjZhMiAyIDAgMCAwIDIgMmg0IiB9XSwKICAgIFsiY2lyY2xlIiwgeyBjeDogIjE3IiwgY3k6ICIxNSIsIHI6ICIxIiB9XQogIF07CgogIGNvbnN0IE1vbml0b3JTbWFydHBob25lID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTE4IDhWNmEyIDIgMCAwIDAtMi0ySDRhMiAyIDAgMCAwLTIgMnY3YTIgMiAwIDAgMCAyIDJoOCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTAgMTl2LTMuOTYgMy4xNSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNyAxOWg1IiB9XSwKICAgIFsicmVjdCIsIHsgd2lkdGg6ICI2IiwgaGVpZ2h0OiAiMTAiLCB4OiAiMTYiLCB5OiAiMTIiLCByeDogIjIiIH1dCiAgXTsKCiAgY29uc3QgTW9uaXRvclN0b3AgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgMTd2NCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNOCAyMWg4IiB9XSwKICAgIFsicmVjdCIsIHsgeDogIjIiLCB5OiAiMyIsIHdpZHRoOiAiMjAiLCBoZWlnaHQ6ICIxNCIsIHJ4OiAiMiIgfV0sCiAgICBbInJlY3QiLCB7IHg6ICI5IiwgeTogIjciLCB3aWR0aDogIjYiLCBoZWlnaHQ6ICI2Iiwgcng6ICIxIiB9XQogIF07CgogIGNvbnN0IE1vbml0b3JVcCA9IFsKICAgIFsicGF0aCIsIHsgZDogIm05IDEwIDMtMyAzIDMiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDEzVjciIH1dLAogICAgWyJyZWN0IiwgeyB3aWR0aDogIjIwIiwgaGVpZ2h0OiAiMTQiLCB4OiAiMiIsIHk6ICIzIiwgcng6ICIyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xMiAxN3Y0IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk04IDIxaDgiIH1dCiAgXTsKCiAgY29uc3QgTW9uaXRvclggPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJtMTQuNSAxMi41LTUtNSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtOS41IDEyLjUgNS01IiB9XSwKICAgIFsicmVjdCIsIHsgd2lkdGg6ICIyMCIsIGhlaWdodDogIjE0IiwgeDogIjIiLCB5OiAiMyIsIHJ4OiAiMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgMTd2NCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNOCAyMWg4IiB9XQogIF07CgogIGNvbnN0IE1vbml0b3IgPSBbCiAgICBbInJlY3QiLCB7IHdpZHRoOiAiMjAiLCBoZWlnaHQ6ICIxNCIsIHg6ICIyIiwgeTogIjMiLCByeDogIjIiIH1dLAogICAgWyJsaW5lIiwgeyB4MTogIjgiLCB4MjogIjE2IiwgeTE6ICIyMSIsIHkyOiAiMjEiIH1dLAogICAgWyJsaW5lIiwgeyB4MTogIjEyIiwgeDI6ICIxMiIsIHkxOiAiMTciLCB5MjogIjIxIiB9XQogIF07CgogIGNvbnN0IE1vb25TdGFyID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTE4IDVoNCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMjAgM3Y0IiB9XSwKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk0yMC45ODUgMTIuNDg2YTkgOSAwIDEgMS05LjQ3My05LjQ3MmMuNDA1LS4wMjIuNjE3LjQ2LjQwMi44MDNhNiA2IDAgMCAwIDguMjY4IDguMjY4Yy4zNDQtLjIxNS44MjUtLjAwNC44MDMuNDAxIgogICAgICB9CiAgICBdCiAgXTsKCiAgY29uc3QgTW9vbiA9IFsKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk0yMC45ODUgMTIuNDg2YTkgOSAwIDEgMS05LjQ3My05LjQ3MmMuNDA1LS4wMjIuNjE3LjQ2LjQwMi44MDNhNiA2IDAgMCAwIDguMjY4IDguMjY4Yy4zNDQtLjIxNS44MjUtLjAwNC44MDMuNDAxIgogICAgICB9CiAgICBdCiAgXTsKCiAgY29uc3QgTW9zcXVlID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTEyLjI2OCAyYTIgMiAwIDAwMy40NjUgMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTQgNSBMMTQgOCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTYgMjJ2LTNhMiAyIDAgMDAtNCAwdjMiIH1dLAogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTIxIDEzYy0uNjYyLTEuNDk3LTEuNjY2LTIuNzUzLTIuOS0zLjYzQzE2LjgyNSA4LjQ3IDE1LjQyMiA4IDE0IDhzLTIuODI2LjQ3LTQuMSAxLjM3QzguNjY4IDEwLjI0OCA3LjY2MyAxMS41MDQgNyAxM3oiCiAgICAgIH0KICAgIF0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMyA5aDQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTcgMjJWNmE1IDUgMCAwMC0yLTQgNSA1IDAgMDAtMiA0djE0YTIgMiAwIDAwMiAyaDE0YTIgMiAwIDAwMi0ydi03IiB9XQogIF07CgogIGNvbnN0IE1vdG9yYmlrZSA9IFsKICAgIFsicGF0aCIsIHsgZDogIm0xOCAxNC0xLTMiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTMgOSA2IDJhMiAyIDAgMCAxIDItMmgyYTIgMiAwIDAgMSAxLjk5IDEuODEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTggMTdoM2ExIDEgMCAwIDAgMS0xIDYgNiAwIDAgMSA2LTYgMSAxIDAgMCAwIDEtMXYtLjc1QTUgNSAwIDAgMCAxNyA1IiB9XSwKICAgIFsiY2lyY2xlIiwgeyBjeDogIjE5IiwgY3k6ICIxNyIsIHI6ICIzIiB9XSwKICAgIFsiY2lyY2xlIiwgeyBjeDogIjUiLCBjeTogIjE3IiwgcjogIjMiIH1dCiAgXTsKCiAgY29uc3QgTW91bnRhaW5Tbm93ID0gWwogICAgWyJwYXRoIiwgeyBkOiAibTggMyA0IDggNS01IDUgMTVIMkw4IDN6IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk00LjE0IDE1LjA4YzIuNjItMS41NyA1LjI0LTEuNDMgNy44Ni40MiAyLjc0IDEuOTQgNS40OSAyIDguMjMuMTkiIH1dCiAgXTsKCiAgY29uc3QgTW91bnRhaW4gPSBbWyJwYXRoIiwgeyBkOiAibTggMyA0IDggNS01IDUgMTVIMkw4IDN6IiB9XV07CgogIGNvbnN0IE1vdXNlTGVmdCA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xMiA3LjMxOFYxMCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNSAxMHY1YTcgNyAwIDAgMCAxNCAwVjljMC0zLjUyNy0yLjYwOC02LjUxNS02LTciIH1dLAogICAgWyJjaXJjbGUiLCB7IGN4OiAiNyIsIGN5OiAiNCIsIHI6ICIyIiB9XQogIF07CgogIGNvbnN0IE1vdXNlT2ZmID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDZ2LjM0MyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTguMjE4IDE4LjIxOEE3IDcgMCAwIDEgNSAxNVY5YTcgNyAwIDAgMSAuNzgyLTMuMjE4IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xOSAxMy4zNDNWOUE3IDcgMCAwIDAgOC41NiAyLjkwMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMjIgMjIgMiAyIiB9XQogIF07CgogIGNvbnN0IE1vdXNlUG9pbnRlcjJPZmYgPSBbCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJtMTUuNTUgOC40NSA1LjEzOCAyLjA4N2EuNS41IDAgMCAxLS4wNjMuOTQ3bC02LjEyNCAxLjU4YTIgMiAwIDAgMC0xLjQzOCAxLjQzNWwtMS41NzkgNi4xMjZhLjUuNSAwIDAgMS0uOTQ3LjA2M0w4LjQ1IDE1LjU1MSIKICAgICAgfQogICAgXSwKICAgIFsicGF0aCIsIHsgZDogIk0yMiAyIDIgMjIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTYuODE2IDExLjUyOC0yLjc3OS02Ljg0YS40OTUuNDk1IDAgMCAxIC42NTEtLjY1MWw2Ljg0IDIuNzc5IiB9XQogIF07CgogIGNvbnN0IE1vdXNlUG9pbnRlcjIgPSBbCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNNC4wMzcgNC42ODhhLjQ5NS40OTUgMCAwIDEgLjY1MS0uNjUxbDE2IDYuNWEuNS41IDAgMCAxLS4wNjMuOTQ3bC02LjEyNCAxLjU4YTIgMiAwIDAgMC0xLjQzOCAxLjQzNWwtMS41NzkgNi4xMjZhLjUuNSAwIDAgMS0uOTQ3LjA2M3oiCiAgICAgIH0KICAgIF0KICBdOwoKICBjb25zdCBNb3VzZVBvaW50ZXJCYW4gPSBbCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMi4wMzQgMi42ODFhLjQ5OC40OTggMCAwIDEgLjY0Ny0uNjQ3bDkgMy41YS41LjUgMCAwIDEtLjAzMy45NDRMOC4yMDQgNy41NDVhMSAxIDAgMCAwLS42Ni42NmwtMS4wNjYgMy40NDNhLjUuNSAwIDAgMS0uOTQ0LjAzM3oiCiAgICAgIH0KICAgIF0sCiAgICBbImNpcmNsZSIsIHsgY3g6ICIxNiIsIGN5OiAiMTYiLCByOiAiNiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMTEuOCAxMS44IDguNCA4LjQiIH1dCiAgXTsKCiAgY29uc3QgTW91c2VQb2ludGVyQ2xpY2sgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTQgNC4xIDEyIDYiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTUuMSA4LTIuOS0uOCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtNiAxMi0xLjkgMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNy4yIDIuMiA4IDUuMSIgfV0sCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNOS4wMzcgOS42OWEuNDk4LjQ5OCAwIDAgMSAuNjUzLS42NTNsMTEgNC41YS41LjUgMCAwIDEtLjA3NC45NDlsLTQuMzQ5IDEuMDQxYTEgMSAwIDAgMC0uNzQuNzM5bC0xLjA0IDQuMzVhLjUuNSAwIDAgMS0uOTUuMDc0eiIKICAgICAgfQogICAgXQogIF07CgogIGNvbnN0IE1vdXNlUG9pbnRlciA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xMi41ODYgMTIuNTg2IDE5IDE5IiB9XSwKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk0zLjY4OCAzLjAzN2EuNDk3LjQ5NyAwIDAgMC0uNjUxLjY1MWw2LjUgMTUuOTk5YS41MDEuNTAxIDAgMCAwIC45NDctLjA2MmwxLjU2OS02LjA4M2EyIDIgMCAwIDEgMS40NDgtMS40NzlsNi4xMjQtMS41NzlhLjUuNSAwIDAgMCAuMDYzLS45NDd6IgogICAgICB9CiAgICBdCiAgXTsKCiAgY29uc3QgTW91c2VSaWdodCA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xMiA3LjMxOFYxMCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTkgMTB2NWE3IDcgMCAwIDEtMTQgMFY5YzAtMy41MjcgMi42MDgtNi41MTUgNi03IiB9XSwKICAgIFsiY2lyY2xlIiwgeyBjeDogIjE3IiwgY3k6ICI0IiwgcjogIjIiIH1dCiAgXTsKCiAgY29uc3QgTW91c2UgPSBbCiAgICBbInJlY3QiLCB7IHg6ICI1IiwgeTogIjIiLCB3aWR0aDogIjE0IiwgaGVpZ2h0OiAiMjAiLCByeDogIjciIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDZ2NCIgfV0KICBdOwoKICBjb25zdCBNb3ZlM2QgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNNSAzdjE2aDE2IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm01IDE5IDYtNiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMiA2IDMtMyAzIDMiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTE4IDE2IDMgMy0zIDMiIH1dCiAgXTsKCiAgY29uc3QgTW92ZURpYWdvbmFsMiA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xOSAxM3Y2aC02IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk01IDExVjVoNiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtNSA1IDE0IDE0IiB9XQogIF07CgogIGNvbnN0IE1vdmVEaWFnb25hbCA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xMSAxOUg1di02IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xMyA1aDZ2NiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTkgNSA1IDE5IiB9XQogIF07CgogIGNvbnN0IE1vdmVEb3duTGVmdCA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xMSAxOUg1VjEzIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xOSA1TDUgMTkiIH1dCiAgXTsKCiAgY29uc3QgTW92ZURvd25SaWdodCA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xOSAxM1YxOUgxMyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNSA1TDE5IDE5IiB9XQogIF07CgogIGNvbnN0IE1vdmVEb3duID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTggMThMMTIgMjJMMTYgMTgiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDJWMjIiIH1dCiAgXTsKCiAgY29uc3QgTW92ZUhvcml6b250YWwgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJtMTggOCA0IDQtNCA0IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yIDEyaDIwIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm02IDgtNCA0IDQgNCIgfV0KICBdOwoKICBjb25zdCBNb3ZlTGVmdCA9IFsKICAgIFsicGF0aCIsIHsgZDogIk02IDhMMiAxMkw2IDE2IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yIDEySDIyIiB9XQogIF07CgogIGNvbnN0IE1vdmVSaWdodCA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xOCA4TDIyIDEyTDE4IDE2IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yIDEySDIyIiB9XQogIF07CgogIGNvbnN0IE1vdmVVcExlZnQgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNNSAxMVY1SDExIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk01IDVMMTkgMTkiIH1dCiAgXTsKCiAgY29uc3QgTW92ZVVwUmlnaHQgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTMgNUgxOVYxMSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTkgNUw1IDE5IiB9XQogIF07CgogIGNvbnN0IE1vdmVWZXJ0aWNhbCA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xMiAydjIwIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm04IDE4IDQgNCA0LTQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTggNiA0LTQgNCA0IiB9XQogIF07CgogIGNvbnN0IE1vdmVVcCA9IFsKICAgIFsicGF0aCIsIHsgZDogIk04IDZMMTIgMkwxNiA2IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xMiAyVjIyIiB9XQogIF07CgogIGNvbnN0IE1vdmUgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgMnYyMCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMTUgMTktMyAzLTMtMyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMTkgOSAzIDMtMyAzIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yIDEyaDIwIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm01IDktMyAzIDMgMyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtOSA1IDMtMyAzIDMiIH1dCiAgXTsKCiAgY29uc3QgTXVzaWMzID0gWwogICAgWyJjaXJjbGUiLCB7IGN4OiAiMTIiLCBjeTogIjE4IiwgcjogIjQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE2IDE4VjIiIH1dCiAgXTsKCiAgY29uc3QgTXVzaWMyID0gWwogICAgWyJjaXJjbGUiLCB7IGN4OiAiOCIsIGN5OiAiMTgiLCByOiAiNCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgMThWMmw3IDQiIH1dCiAgXTsKCiAgY29uc3QgTXVzaWM0ID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTkgMThWNWwxMi0ydjEzIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm05IDkgMTItMiIgfV0sCiAgICBbImNpcmNsZSIsIHsgY3g6ICI2IiwgY3k6ICIxOCIsIHI6ICIzIiB9XSwKICAgIFsiY2lyY2xlIiwgeyBjeDogIjE4IiwgY3k6ICIxNiIsIHI6ICIzIiB9XQogIF07CgogIGNvbnN0IE11c2ljID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTkgMThWNWwxMi0ydjEzIiB9XSwKICAgIFsiY2lyY2xlIiwgeyBjeDogIjYiLCBjeTogIjE4IiwgcjogIjMiIH1dLAogICAgWyJjaXJjbGUiLCB7IGN4OiAiMTgiLCBjeTogIjE2IiwgcjogIjMiIH1dCiAgXTsKCiAgY29uc3QgTmF2aWdhdGlvbjJPZmYgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNOS4zMSA5LjMxIDUgMjFsNy00IDcgNC0xLjE3LTMuMTciIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE0LjUzIDguODggMTIgMmwtMS4xNyAzLjE3IiB9XSwKICAgIFsibGluZSIsIHsgeDE6ICIyIiwgeDI6ICIyMiIsIHkxOiAiMiIsIHkyOiAiMjIiIH1dCiAgXTsKCiAgY29uc3QgTmF2aWdhdGlvbjIgPSBbWyJwb2x5Z29uIiwgeyBwb2ludHM6ICIxMiAyIDE5IDIxIDEyIDE3IDUgMjEgMTIgMiIgfV1dOwoKICBjb25zdCBOYXZpZ2F0aW9uT2ZmID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTguNDMgOC40MyAzIDExbDggMiAyIDggMi41Ny01LjQzIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNy4zOSAxMS43MyAyMiAybC05LjczIDQuNjEiIH1dLAogICAgWyJsaW5lIiwgeyB4MTogIjIiLCB4MjogIjIyIiwgeTE6ICIyIiwgeTI6ICIyMiIgfV0KICBdOwoKICBjb25zdCBOYXZpZ2F0aW9uID0gW1sicG9seWdvbiIsIHsgcG9pbnRzOiAiMyAxMSAyMiAyIDEzIDIxIDExIDEzIDMgMTEiIH1dXTsKCiAgY29uc3QgTmV0d29yayA9IFsKICAgIFsicmVjdCIsIHsgeDogIjE2IiwgeTogIjE2Iiwgd2lkdGg6ICI2IiwgaGVpZ2h0OiAiNiIsIHJ4OiAiMSIgfV0sCiAgICBbInJlY3QiLCB7IHg6ICIyIiwgeTogIjE2Iiwgd2lkdGg6ICI2IiwgaGVpZ2h0OiAiNiIsIHJ4OiAiMSIgfV0sCiAgICBbInJlY3QiLCB7IHg6ICI5IiwgeTogIjIiLCB3aWR0aDogIjYiLCBoZWlnaHQ6ICI2Iiwgcng6ICIxIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk01IDE2di0zYTEgMSAwIDAgMSAxLTFoMTJhMSAxIDAgMCAxIDEgMXYzIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xMiAxMlY4IiB9XQogIF07CgogIGNvbnN0IE5ld3NwYXBlciA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xNSAxOGgtNSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTggMTRoLTgiIH1dLAogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTQgMjJoMTZhMiAyIDAgMCAwIDItMlY0YTIgMiAwIDAgMC0yLTJIOGEyIDIgMCAwIDAtMiAydjE2YTIgMiAwIDAgMS00IDB2LTlhMiAyIDAgMCAxIDItMmgyIgogICAgICB9CiAgICBdLAogICAgWyJyZWN0IiwgeyB3aWR0aDogIjgiLCBoZWlnaHQ6ICI0IiwgeDogIjEwIiwgeTogIjYiLCByeDogIjEiIH1dCiAgXTsKCiAgY29uc3QgTm9uQmluYXJ5ID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDJ2MTAiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTguNSA0IDcgNCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtOC41IDggNy00IiB9XSwKICAgIFsiY2lyY2xlIiwgeyBjeDogIjEyIiwgY3k6ICIxNyIsIHI6ICI1IiB9XQogIF07CgogIGNvbnN0IE5mYyA9IFsKICAgIFsicGF0aCIsIHsgZDogIk02IDguMzJhNy40MyA3LjQzIDAgMCAxIDAgNy4zNiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNOS40NiA2LjIxYTExLjc2IDExLjc2IDAgMCAxIDAgMTEuNTgiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTEyLjkxIDQuMWExNS45MSAxNS45MSAwIDAgMSAuMDEgMTUuOCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTYuMzcgMmEyMC4xNiAyMC4xNiAwIDAgMSAwIDIwIiB9XQogIF07CgogIGNvbnN0IE5vdGVib29rUGVuID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTEzLjQgMkg2YTIgMiAwIDAgMC0yIDJ2MTZhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0ydi03LjQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIgNmg0IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yIDEwaDQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIgMTRoNCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMiAxOGg0IiB9XSwKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk0yMS4zNzggNS42MjZhMSAxIDAgMSAwLTMuMDA0LTMuMDA0bC01LjAxIDUuMDEyYTIgMiAwIDAgMC0uNTA2Ljg1NGwtLjgzNyAyLjg3YS41LjUgMCAwIDAgLjYyLjYybDIuODctLjgzN2EyIDIgMCAwIDAgLjg1NC0uNTA2eiIKICAgICAgfQogICAgXQogIF07CgogIGNvbnN0IE5vdGVib29rVGV4dCA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0yIDZoNCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMiAxMGg0IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yIDE0aDQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIgMThoNCIgfV0sCiAgICBbInJlY3QiLCB7IHdpZHRoOiAiMTYiLCBoZWlnaHQ6ICIyMCIsIHg6ICI0IiwgeTogIjIiLCByeDogIjIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTkuNSA4aDUiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTkuNSAxMkgxNiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNOS41IDE2SDE0IiB9XQogIF07CgogIGNvbnN0IE5vdGVib29rVGFicyA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0yIDZoNCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMiAxMGg0IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yIDE0aDQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIgMThoNCIgfV0sCiAgICBbInJlY3QiLCB7IHdpZHRoOiAiMTYiLCBoZWlnaHQ6ICIyMCIsIHg6ICI0IiwgeTogIjIiLCByeDogIjIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE1IDJ2MjAiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE1IDdoNSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTUgMTJoNSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTUgMTdoNSIgfV0KICBdOwoKICBjb25zdCBOb3RlYm9vayA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0yIDZoNCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMiAxMGg0IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yIDE0aDQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIgMThoNCIgfV0sCiAgICBbInJlY3QiLCB7IHdpZHRoOiAiMTYiLCBoZWlnaHQ6ICIyMCIsIHg6ICI0IiwgeTogIjIiLCByeDogIjIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE2IDJ2MjAiIH1dCiAgXTsKCiAgY29uc3QgTm90ZXBhZFRleHREYXNoZWQgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNOCAydjQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDJ2NCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTYgMnY0IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNiA0aDJhMiAyIDAgMCAxIDIgMnYyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yMCAxMnYyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yMCAxOHYyYTIgMiAwIDAgMS0yIDJoLTEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTEzIDIyaC0yIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk03IDIySDZhMiAyIDAgMCAxLTItMnYtMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNCAxNHYtMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNCA4VjZhMiAyIDAgMCAxIDItMmgyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk04IDEwaDYiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTggMTRoOCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNOCAxOGg1IiB9XQogIF07CgogIGNvbnN0IE5vdGVwYWRUZXh0ID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTggMnY0IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xMiAydjQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE2IDJ2NCIgfV0sCiAgICBbInJlY3QiLCB7IHdpZHRoOiAiMTYiLCBoZWlnaHQ6ICIxOCIsIHg6ICI0IiwgeTogIjQiLCByeDogIjIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTggMTBoNiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNOCAxNGg4IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk04IDE4aDUiIH1dCiAgXTsKCiAgY29uc3QgTnV0ID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDRWMiIgfV0sCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNNSAxMHY0YTcuMDA0IDcuMDA0IDAgMCAwIDUuMjc3IDYuNzg3Yy40MTIuMTA0LjgwMi4yOTIgMS4xMDIuNTkyTDEyIDIybC42MjEtLjYyMWMuMy0uMy42OS0uNDg4IDEuMTAyLS41OTJBNy4wMDMgNy4wMDMgMCAwIDAgMTkgMTR2LTQiCiAgICAgIH0KICAgIF0sCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMTIgNEM4IDQgNC41IDYgNCA4Yy0uMjQzLjk3LS45MTkgMS45NTItMiAzIDEuMzEtLjA4MiAxLjk3Mi0uMjkgMy0xIC41NC45Mi45ODIgMS4zNTYgMiAyIDEuNDUyLS42NDcgMS45NTQtMS4wOTggMi41LTIgLjU5NS45OTUgMS4xNTEgMS40MjcgMi41IDIgMS4zMS0uNjIxIDEuODYyLTEuMDU4IDIuNS0yIC42MjkuOTc3IDEuMTYyIDEuNDIzIDIuNSAyIDEuMjA5LS41NDggMS42OC0uOTY3IDItMiAxLjAzMi45MTYgMS42ODMgMS4xNTcgMyAxLTEuMjk3LTEuMDM2LTEuNzU4LTIuMDMtMi0zLS41LTItNC00LTgtNFoiCiAgICAgIH0KICAgIF0KICBdOwoKICBjb25zdCBOdXRPZmYgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgNFYyIiB9XSwKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk01IDEwdjRhNy4wMDQgNy4wMDQgMCAwIDAgNS4yNzcgNi43ODdjLjQxMi4xMDQuODAyLjI5MiAxLjEwMi41OTJMMTIgMjJsLjYyMS0uNjIxYy4zLS4zLjY5LS40ODggMS4xMDItLjU5MmE3LjAxIDcuMDEgMCAwIDAgNC4xMjUtMi45MzkiCiAgICAgIH0KICAgIF0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTkgMTB2My4zNDMiIH1dLAogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTEyIDEyYy0xLjM0OS0uNTczLTEuOTA1LTEuMDA1LTIuNS0yLS41NDYuOTAyLTEuMDQ4IDEuMzUzLTIuNSAyLTEuMDE4LS42NDQtMS40Ni0xLjA4LTItMi0xLjAyOC43MS0xLjY5LjkxOC0zIDEgMS4wODEtMS4wNDggMS43NTctMi4wMyAyLTMgLjE5NC0uNzc2Ljg0LTEuNTUxIDEuNzktMi4yMW0xMS42NTQgNS45OTdjLjg4Ny0uNDU3IDEuMjgtLjg5MSAxLjU1Ni0xLjc4NyAxLjAzMi45MTYgMS42ODMgMS4xNTcgMyAxLTEuMjk3LTEuMDM2LTEuNzU4LTIuMDMtMi0zLS41LTItNC00LTgtNC0uNzQgMC0xLjQ2MS4wNjgtMi4xNS4xOTIiCiAgICAgIH0KICAgIF0sCiAgICBbImxpbmUiLCB7IHgxOiAiMiIsIHgyOiAiMjIiLCB5MTogIjIiLCB5MjogIjIyIiB9XQogIF07CgogIGNvbnN0IE9jdGFnb25BbGVydCA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xMiAxNmguMDEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDh2NCIgfV0sCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMTUuMzEyIDJhMiAyIDAgMCAxIDEuNDE0LjU4Nmw0LjY4OCA0LjY4OEEyIDIgMCAwIDEgMjIgOC42ODh2Ni42MjRhMiAyIDAgMCAxLS41ODYgMS40MTRsLTQuNjg4IDQuNjg4YTIgMiAwIDAgMS0xLjQxNC41ODZIOC42ODhhMiAyIDAgMCAxLTEuNDE0LS41ODZsLTQuNjg4LTQuNjg4QTIgMiAwIDAgMSAyIDE1LjMxMlY4LjY4OGEyIDIgMCAwIDEgLjU4Ni0xLjQxNGw0LjY4OC00LjY4OEEyIDIgMCAwIDEgOC42ODggMnoiCiAgICAgIH0KICAgIF0KICBdOwoKICBjb25zdCBPY3RhZ29uTWludXMgPSBbCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMi41ODYgMTYuNzI2QTIgMiAwIDAgMSAyIDE1LjMxMlY4LjY4OGEyIDIgMCAwIDEgLjU4Ni0xLjQxNGw0LjY4OC00LjY4OEEyIDIgMCAwIDEgOC42ODggMmg2LjYyNGEyIDIgMCAwIDEgMS40MTQuNTg2bDQuNjg4IDQuNjg4QTIgMiAwIDAgMSAyMiA4LjY4OHY2LjYyNGEyIDIgMCAwIDEtLjU4NiAxLjQxNGwtNC42ODggNC42ODhhMiAyIDAgMCAxLTEuNDE0LjU4Nkg4LjY4OGEyIDIgMCAwIDEtMS40MTQtLjU4NnoiCiAgICAgIH0KICAgIF0sCiAgICBbInBhdGgiLCB7IGQ6ICJNOCAxMmg4IiB9XQogIF07CgogIGNvbnN0IE9jdGFnb25YID0gWwogICAgWyJwYXRoIiwgeyBkOiAibTE1IDktNiA2IiB9XSwKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk0yLjU4NiAxNi43MjZBMiAyIDAgMCAxIDIgMTUuMzEyVjguNjg4YTIgMiAwIDAgMSAuNTg2LTEuNDE0bDQuNjg4LTQuNjg4QTIgMiAwIDAgMSA4LjY4OCAyaDYuNjI0YTIgMiAwIDAgMSAxLjQxNC41ODZsNC42ODggNC42ODhBMiAyIDAgMCAxIDIyIDguNjg4djYuNjI0YTIgMiAwIDAgMS0uNTg2IDEuNDE0bC00LjY4OCA0LjY4OGEyIDIgMCAwIDEtMS40MTQuNTg2SDguNjg4YTIgMiAwIDAgMS0xLjQxNC0uNTg2eiIKICAgICAgfQogICAgXSwKICAgIFsicGF0aCIsIHsgZDogIm05IDkgNiA2IiB9XQogIF07CgogIGNvbnN0IE9jdGFnb25QYXVzZSA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xMCAxNVY5IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNCAxNVY5IiB9XSwKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk0yLjU4NiAxNi43MjZBMiAyIDAgMCAxIDIgMTUuMzEyVjguNjg4YTIgMiAwIDAgMSAuNTg2LTEuNDE0bDQuNjg4LTQuNjg4QTIgMiAwIDAgMSA4LjY4OCAyaDYuNjI0YTIgMiAwIDAgMSAxLjQxNC41ODZsNC42ODggNC42ODhBMiAyIDAgMCAxIDIyIDguNjg4djYuNjI0YTIgMiAwIDAgMS0uNTg2IDEuNDE0bC00LjY4OCA0LjY4OGEyIDIgMCAwIDEtMS40MTQuNTg2SDguNjg4YTIgMiAwIDAgMS0xLjQxNC0uNTg2eiIKICAgICAgfQogICAgXQogIF07CgogIGNvbnN0IE9jdGFnb24gPSBbCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMi41ODYgMTYuNzI2QTIgMiAwIDAgMSAyIDE1LjMxMlY4LjY4OGEyIDIgMCAwIDEgLjU4Ni0xLjQxNGw0LjY4OC00LjY4OEEyIDIgMCAwIDEgOC42ODggMmg2LjYyNGEyIDIgMCAwIDEgMS40MTQuNTg2bDQuNjg4IDQuNjg4QTIgMiAwIDAgMSAyMiA4LjY4OHY2LjYyNGEyIDIgMCAwIDEtLjU4NiAxLjQxNGwtNC42ODggNC42ODhhMiAyIDAgMCAxLTEuNDE0LjU4Nkg4LjY4OGEyIDIgMCAwIDEtMS40MTQtLjU4NnoiCiAgICAgIH0KICAgIF0KICBdOwoKICBjb25zdCBPbWVnYSA9IFsKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk0zIDIwaDQuNWEuNS41IDAgMCAwIC41LS41di0uMjgyYS41Mi41MiAwIDAgMC0uMjQ3LS40MzcgOCA4IDAgMSAxIDguNDk0LS4wMDEuNTIuNTIgMCAwIDAtLjI0Ny40Mzh2LjI4MmEuNS41IDAgMCAwIC41LjVIMjEiCiAgICAgIH0KICAgIF0KICBdOwoKICBjb25zdCBPcHRpb24gPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTQgM2g3IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0zIDNoNS4yOGExIDEgMCAwIDEgLjk0OC42ODRsNS41NDQgMTYuNjMyYTEgMSAwIDAgMCAuOTQ5LjY4NEgyMSIgfV0KICBdOwoKICBjb25zdCBPcmJpdCA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0yMC4zNDEgNi40ODRBMTAgMTAgMCAwIDEgMTAuMjY2IDIxLjg1IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0zLjY1OSAxNy41MTZBMTAgMTAgMCAwIDEgMTMuNzQgMi4xNTIiIH1dLAogICAgWyJjaXJjbGUiLCB7IGN4OiAiMTIiLCBjeTogIjEyIiwgcjogIjMiIH1dLAogICAgWyJjaXJjbGUiLCB7IGN4OiAiMTkiLCBjeTogIjUiLCByOiAiMiIgfV0sCiAgICBbImNpcmNsZSIsIHsgY3g6ICI1IiwgY3k6ICIxOSIsIHI6ICIyIiB9XQogIF07CgogIGNvbnN0IE9yaWdhbWkgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgMTJWNGExIDEgMCAwIDEgMS0xaDYuMjk3YTEgMSAwIDAgMSAuNjUxIDEuNzU5bC00LjY5NiA0LjAyNSIgfV0sCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgeyBkOiAibTEyIDIxLTcuNDE0LTcuNDE0QTIgMiAwIDAgMSA0IDEyLjE3MlY2LjQxNWExLjAwMiAxLjAwMiAwIDAgMSAxLjcwNy0uNzA3TDIwIDIwLjAwOSIgfQogICAgXSwKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIm0xMi4yMTQgMy4zODEgOC40MTQgMTQuOTY2YTEgMSAwIDAgMS0uMTY3IDEuMTk5bC0xLjE2OCAxLjE2M2ExIDEgMCAwIDEtLjcwNi4yOTFINi4zNTFhMSAxIDAgMCAxLS42MjUtLjIxOUwzLjI1IDE4LjhhMSAxIDAgMCAxIC42MzEtMS43ODFsNC4xNjUuMDI3IgogICAgICB9CiAgICBdCiAgXTsKCiAgY29uc3QgUGFja2FnZTIgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgM3Y2IiB9XSwKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk0xNi43NiAzYTIgMiAwIDAgMSAxLjggMS4xbDIuMjMgNC40NzlhMiAyIDAgMCAxIC4yMS44OTFWMTlhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJWOS40NzJhMiAyIDAgMCAxIC4yMTEtLjg5NEw1LjQ1IDQuMUEyIDIgMCAwIDEgNy4yNCAzeiIKICAgICAgfQogICAgXSwKICAgIFsicGF0aCIsIHsgZDogIk0zLjA1NCA5LjAxM2gxNy44OTMiIH1dCiAgXTsKCiAgY29uc3QgUGFja2FnZUNoZWNrID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDIyVjEyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0xNiAxNyAyIDIgNC00IiB9XSwKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk0yMSAxMS4xMjdWOGEyIDIgMCAwIDAtMS0xLjczbC03LTRhMiAyIDAgMCAwLTIgMGwtNyA0QTIgMiAwIDAgMCAzIDh2OGEyIDIgMCAwIDAgMSAxLjcyOWw3IDRhMiAyIDAgMCAwIDIgLjAwMWwxLjMyLS43NTMiCiAgICAgIH0KICAgIF0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMy4yOSA3IDEyIDEybDguNzEtNSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtNy41IDQuMjcgOC45OTcgNS4xNDgiIH1dCiAgXTsKCiAgY29uc3QgUGFja2FnZU1pbnVzID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDIyVjEyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNiAxN2g2IiB9XSwKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk0yMSAxM1Y4YTIgMiAwIDAgMC0xLTEuNzNsLTctNGEyIDIgMCAwIDAtMiAwbC03IDRBMiAyIDAgMCAwIDMgOHY4YTIgMiAwIDAgMCAxIDEuNzI5bDcgNGEyIDIgMCAwIDAgMiAuMDAxbDEuNjc1LS45NTUiCiAgICAgIH0KICAgIF0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMy4yOSA3IDEyIDEybDguNzEtNSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtNy41IDQuMjcgOC45OTcgNS4xNDgiIH1dCiAgXTsKCiAgY29uc3QgUGFja2FnZU9wZW4gPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgMjJ2LTkiIH1dLAogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTE1LjE3IDIuMjFhMS42NyAxLjY3IDAgMCAxIDEuNjMgMEwyMSA0LjU3YTEuOTMgMS45MyAwIDAgMSAwIDMuMzZMOC44MiAxNC43OWExLjY1NSAxLjY1NSAwIDAgMS0xLjY0IDBMMyAxMi40M2ExLjkzIDEuOTMgMCAwIDEgMC0zLjM2eiIKICAgICAgfQogICAgXSwKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk0yMCAxM3YzLjg3YTIuMDYgMi4wNiAwIDAgMS0xLjExIDEuODNsLTYgMy4wOGExLjkzIDEuOTMgMCAwIDEtMS43OCAwbC02LTMuMDhBMi4wNiAyLjA2IDAgMCAxIDQgMTYuODdWMTMiCiAgICAgIH0KICAgIF0sCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMjEgMTIuNDNhMS45MyAxLjkzIDAgMCAwIDAtMy4zNkw4LjgzIDIuMmExLjY0IDEuNjQgMCAwIDAtMS42MyAwTDMgNC41N2ExLjkzIDEuOTMgMCAwIDAgMCAzLjM2bDEyLjE4IDYuODZhMS42MzYgMS42MzYgMCAwIDAgMS42MyAweiIKICAgICAgfQogICAgXQogIF07CgogIGNvbnN0IFBhY2thZ2VQbHVzID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDIyVjEyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNiAxN2g2IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xOSAxNHY2IiB9XSwKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk0yMSAxMC41MzVWOGEyIDIgMCAwIDAtMS0xLjczbC03LTRhMiAyIDAgMCAwLTIgMGwtNyA0QTIgMiAwIDAgMCAzIDh2OGEyIDIgMCAwIDAgMSAxLjcyOWw3IDRhMiAyIDAgMCAwIDIgLjAwMWwxLjY3NS0uOTU1IgogICAgICB9CiAgICBdLAogICAgWyJwYXRoIiwgeyBkOiAiTTMuMjkgNyAxMiAxMmw4LjcxLTUiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTcuNSA0LjI3IDguOTk3IDUuMTQ4IiB9XQogIF07CgogIGNvbnN0IFBhY2thZ2VTZWFyY2ggPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgMjJWMTIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIwLjI3IDE4LjI3IDIyIDIwIiB9XSwKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk0yMSAxMC40OThWOGEyIDIgMCAwIDAtMS0xLjczbC03LTRhMiAyIDAgMCAwLTIgMGwtNyA0QTIgMiAwIDAgMCAzIDh2OGEyIDIgMCAwIDAgMSAxLjcyOWw3IDRhMiAyIDAgMCAwIDIgLjAwMWwuOTgtLjU1OSIKICAgICAgfQogICAgXSwKICAgIFsicGF0aCIsIHsgZDogIk0zLjI5IDcgMTIgMTJsOC43MS01IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm03LjUgNC4yNyA4Ljk5NyA1LjE0OCIgfV0sCiAgICBbImNpcmNsZSIsIHsgY3g6ICIxOC41IiwgY3k6ICIxNi41IiwgcjogIjIuNSIgfV0KICBdOwoKICBjb25zdCBQYWNrYWdlWCA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xMiAyMlYxMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMTYuNSAxNC41IDUgNSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMTYuNSAxOS41IDUtNSIgfV0sCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMjEgMTAuNVY4YTIgMiAwIDAgMC0xLTEuNzNsLTctNGEyIDIgMCAwIDAtMiAwbC03IDRBMiAyIDAgMCAwIDMgOHY4YTIgMiAwIDAgMCAxIDEuNzI5bDcgNGEyIDIgMCAwIDAgMiAuMDAxbC4xMy0uMDc0IgogICAgICB9CiAgICBdLAogICAgWyJwYXRoIiwgeyBkOiAiTTMuMjkgNyAxMiAxMmw4LjcxLTUiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTcuNSA0LjI3IDguOTk3IDUuMTQ4IiB9XQogIF07CgogIGNvbnN0IFBhY2thZ2UgPSBbCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMTEgMjEuNzNhMiAyIDAgMCAwIDIgMGw3LTRBMiAyIDAgMCAwIDIxIDE2VjhhMiAyIDAgMCAwLTEtMS43M2wtNy00YTIgMiAwIDAgMC0yIDBsLTcgNEEyIDIgMCAwIDAgMyA4djhhMiAyIDAgMCAwIDEgMS43M3oiCiAgICAgIH0KICAgIF0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgMjJWMTIiIH1dLAogICAgWyJwb2x5bGluZSIsIHsgcG9pbnRzOiAiMy4yOSA3IDEyIDEyIDIwLjcxIDciIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTcuNSA0LjI3IDkgNS4xNSIgfV0KICBdOwoKICBjb25zdCBQYWludEJ1Y2tldCA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xMSA3IDYgMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTguOTkyIDEySDIuMDQxIiB9XSwKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk0yMS4xNDUgMTguMzhBMy4zNCAzLjM0IDAgMCAxIDIwIDE2LjVhMy4zIDMuMyAwIDAgMS0xLjE0NSAxLjg4Yy0uNTc1LjQ2LS44NTUgMS4wMi0uODU1IDEuNTk1QTIgMiAwIDAgMCAyMCAyMmEyIDIgMCAwIDAgMi0yLjAyNWMwLS41OC0uMjg1LTEuMTMtLjg1NS0xLjU5NSIKICAgICAgfQogICAgXSwKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIm04LjUgNC41IDIuMTQ4LTIuMTQ4YTEuMjA1IDEuMjA1IDAgMCAxIDEuNzA0IDBsNy4yOTYgNy4yOTZhMS4yMDUgMS4yMDUgMCAwIDEgMCAxLjcwNGwtNy41OTIgNy41OTJhMy42MTUgMy42MTUgMCAwIDEtNS4xMTIgMGwtMy44ODgtMy44ODhhMy42MTUgMy42MTUgMCAwIDEgMC01LjExMkw1LjY3IDcuMzMiCiAgICAgIH0KICAgIF0KICBdOwoKICBjb25zdCBQYWludFJvbGxlciA9IFsKICAgIFsicmVjdCIsIHsgd2lkdGg6ICIxNiIsIGhlaWdodDogIjYiLCB4OiAiMiIsIHk6ICIyIiwgcng6ICIyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xMCAxNnYtMmEyIDIgMCAwIDEgMi0yaDhhMiAyIDAgMCAwIDItMlY3YTIgMiAwIDAgMC0yLTJoLTIiIH1dLAogICAgWyJyZWN0IiwgeyB3aWR0aDogIjQiLCBoZWlnaHQ6ICI2IiwgeDogIjgiLCB5OiAiMTYiLCByeDogIjEiIH1dCiAgXTsKCiAgY29uc3QgUGFpbnRicnVzaFZlcnRpY2FsID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTEwIDJ2MiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTQgMnY0IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNyAyYTEgMSAwIDAgMSAxIDF2OUg2VjNhMSAxIDAgMCAxIDEtMXoiIH1dLAogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTYgMTJhMSAxIDAgMCAwLTEgMXYxYTIgMiAwIDAgMCAyIDJoMmExIDEgMCAwIDEgMSAxdjIuOWEyIDIgMCAxIDAgNCAwVjE3YTEgMSAwIDAgMSAxLTFoMmEyIDIgMCAwIDAgMi0ydi0xYTEgMSAwIDAgMC0xLTEiCiAgICAgIH0KICAgIF0KICBdOwoKICBjb25zdCBQYWludGJydXNoID0gWwogICAgWyJwYXRoIiwgeyBkOiAibTE0LjYyMiAxNy44OTctMTAuNjgtMi45MTMiIH1dLAogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTE4LjM3NiAyLjYyMmExIDEgMCAxIDEgMy4wMDIgMy4wMDJMMTcuMzYgOS42NDNhLjUuNSAwIDAgMCAwIC43MDdsLjk0NC45NDRhMi40MSAyLjQxIDAgMCAxIDAgMy40MDhsLS45NDQuOTQ0YS41LjUgMCAwIDEtLjcwNyAwTDguMzU0IDcuMzQ4YS41LjUgMCAwIDEgMC0uNzA3bC45NDQtLjk0NGEyLjQxIDIuNDEgMCAwIDEgMy40MDggMGwuOTQ0Ljk0NGEuNS41IDAgMCAwIC43MDcgMHoiCiAgICAgIH0KICAgIF0sCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNOSA4Yy0xLjgwNCAyLjcxLTMuOTcgMy40Ni02LjU4MyAzLjk0OGEuNTA3LjUwNyAwIDAgMC0uMzAyLjgxOWw3LjMyIDguODgzYTEgMSAwIDAgMCAxLjE4NS4yMDRDMTIuNzM1IDIwLjQwNSAxNiAxNi43OTIgMTYgMTUiCiAgICAgIH0KICAgIF0KICBdOwoKICBjb25zdCBQYWxldHRlID0gWwogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTEyIDIyYTEgMSAwIDAgMSAwLTIwIDEwIDkgMCAwIDEgMTAgOSA1IDUgMCAwIDEtNSA1aC0yLjI1YTEuNzUgMS43NSAwIDAgMC0xLjQgMi44bC4zLjRhMS43NSAxLjc1IDAgMCAxLTEuNCAyLjh6IgogICAgICB9CiAgICBdLAogICAgWyJjaXJjbGUiLCB7IGN4OiAiMTMuNSIsIGN5OiAiNi41IiwgcjogIi41IiwgZmlsbDogImN1cnJlbnRDb2xvciIgfV0sCiAgICBbImNpcmNsZSIsIHsgY3g6ICIxNy41IiwgY3k6ICIxMC41IiwgcjogIi41IiwgZmlsbDogImN1cnJlbnRDb2xvciIgfV0sCiAgICBbImNpcmNsZSIsIHsgY3g6ICI2LjUiLCBjeTogIjEyLjUiLCByOiAiLjUiLCBmaWxsOiAiY3VycmVudENvbG9yIiB9XSwKICAgIFsiY2lyY2xlIiwgeyBjeDogIjguNSIsIGN5OiAiNy41IiwgcjogIi41IiwgZmlsbDogImN1cnJlbnRDb2xvciIgfV0KICBdOwoKICBjb25zdCBQYW5kYSA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xMS4yNSAxNy4yNWgxLjVMMTIgMTh6IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0xNSAxMiAyIDIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE4IDYuNWEuNS41IDAgMCAwLS41LS41IiB9XSwKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk0yMC42OSA5LjY3YTQuNSA0LjUgMCAxIDAtNy4wNC01LjUgOC4zNSA4LjM1IDAgMCAwLTMuMyAwIDQuNSA0LjUgMCAxIDAtNy4wNCA1LjVDMi40OSAxMS4yIDIgMTIuODggMiAxNC41IDIgMTkuNDcgNi40OCAyMiAxMiAyMnMxMC0yLjUzIDEwLTcuNWMwLTEuNjItLjQ4LTMuMy0xLjMtNC44MyIKICAgICAgfQogICAgXSwKICAgIFsicGF0aCIsIHsgZDogIk02IDYuNWEuNDk1LjQ5NSAwIDAgMSAuNS0uNSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtOSAxMi0yIDIiIH1dCiAgXTsKCiAgY29uc3QgUGFuZWxCb3R0b21DbG9zZSA9IFsKICAgIFsicmVjdCIsIHsgd2lkdGg6ICIxOCIsIGhlaWdodDogIjE4IiwgeDogIjMiLCB5OiAiMyIsIHJ4OiAiMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMyAxNWgxOCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMTUgOC0zIDMtMy0zIiB9XQogIF07CgogIGNvbnN0IFBhbmVsQm90dG9tRGFzaGVkID0gWwogICAgWyJyZWN0IiwgeyB3aWR0aDogIjE4IiwgaGVpZ2h0OiAiMTgiLCB4OiAiMyIsIHk6ICIzIiwgcng6ICIyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNCAxNWgxIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xOSAxNWgyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0zIDE1aDIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTkgMTVoMSIgfV0KICBdOwoKICBjb25zdCBQYW5lbEJvdHRvbU9wZW4gPSBbCiAgICBbInJlY3QiLCB7IHdpZHRoOiAiMTgiLCBoZWlnaHQ6ICIxOCIsIHg6ICIzIiwgeTogIjMiLCByeDogIjIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTMgMTVoMTgiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTkgMTAgMy0zIDMgMyIgfV0KICBdOwoKICBjb25zdCBQYW5lbEJvdHRvbSA9IFsKICAgIFsicmVjdCIsIHsgd2lkdGg6ICIxOCIsIGhlaWdodDogIjE4IiwgeDogIjMiLCB5OiAiMyIsIHJ4OiAiMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMyAxNWgxOCIgfV0KICBdOwoKICBjb25zdCBQYW5lbExlZnRDbG9zZSA9IFsKICAgIFsicmVjdCIsIHsgd2lkdGg6ICIxOCIsIGhlaWdodDogIjE4IiwgeDogIjMiLCB5OiAiMyIsIHJ4OiAiMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNOSAzdjE4IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0xNiAxNS0zLTMgMy0zIiB9XQogIF07CgogIGNvbnN0IFBhbmVsTGVmdERhc2hlZCA9IFsKICAgIFsicmVjdCIsIHsgd2lkdGg6ICIxOCIsIGhlaWdodDogIjE4IiwgeDogIjMiLCB5OiAiMyIsIHJ4OiAiMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNOSAxNHYxIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk05IDE5djIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTkgM3YyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk05IDl2MSIgfV0KICBdOwoKICBjb25zdCBQYW5lbExlZnRPcGVuID0gWwogICAgWyJyZWN0IiwgeyB3aWR0aDogIjE4IiwgaGVpZ2h0OiAiMTgiLCB4OiAiMyIsIHk6ICIzIiwgcng6ICIyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk05IDN2MTgiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTE0IDkgMyAzLTMgMyIgfV0KICBdOwoKICBjb25zdCBQYW5lbExlZnRSaWdodERhc2hlZCA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xNSAxMFY5IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNSAxNXYtMSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTUgMjF2LTIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE1IDVWMyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNOSAxMFY5IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk05IDE1di0xIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk05IDIxdi0yIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk05IDVWMyIgfV0sCiAgICBbInJlY3QiLCB7IHg6ICIzIiwgeTogIjMiLCB3aWR0aDogIjE4IiwgaGVpZ2h0OiAiMTgiLCByeDogIjIiIH1dCiAgXTsKCiAgY29uc3QgUGFuZWxMZWZ0ID0gWwogICAgWyJyZWN0IiwgeyB3aWR0aDogIjE4IiwgaGVpZ2h0OiAiMTgiLCB4OiAiMyIsIHk6ICIzIiwgcng6ICIyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk05IDN2MTgiIH1dCiAgXTsKCiAgY29uc3QgUGFuZWxSaWdodENsb3NlID0gWwogICAgWyJyZWN0IiwgeyB3aWR0aDogIjE4IiwgaGVpZ2h0OiAiMTgiLCB4OiAiMyIsIHk6ICIzIiwgcng6ICIyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNSAzdjE4IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm04IDkgMyAzLTMgMyIgfV0KICBdOwoKICBjb25zdCBQYW5lbFJpZ2h0RGFzaGVkID0gWwogICAgWyJyZWN0IiwgeyB3aWR0aDogIjE4IiwgaGVpZ2h0OiAiMTgiLCB4OiAiMyIsIHk6ICIzIiwgcng6ICIyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNSAxNHYxIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNSAxOXYyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNSAzdjIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE1IDl2MSIgfV0KICBdOwoKICBjb25zdCBQYW5lbFJpZ2h0T3BlbiA9IFsKICAgIFsicmVjdCIsIHsgd2lkdGg6ICIxOCIsIGhlaWdodDogIjE4IiwgeDogIjMiLCB5OiAiMyIsIHJ4OiAiMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTUgM3YxOCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMTAgMTUtMy0zIDMtMyIgfV0KICBdOwoKICBjb25zdCBQYW5lbFJpZ2h0ID0gWwogICAgWyJyZWN0IiwgeyB3aWR0aDogIjE4IiwgaGVpZ2h0OiAiMTgiLCB4OiAiMyIsIHk6ICIzIiwgcng6ICIyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNSAzdjE4IiB9XQogIF07CgogIGNvbnN0IFBhbmVsVG9wQm90dG9tRGFzaGVkID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTE0IDE1aDEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE0IDloMSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTkgMTVoMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTkgOWgyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0zIDE1aDIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTMgOWgyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk05IDE1aDEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTkgOWgxIiB9XSwKICAgIFsicmVjdCIsIHsgeDogIjMiLCB5OiAiMyIsIHdpZHRoOiAiMTgiLCBoZWlnaHQ6ICIxOCIsIHJ4OiAiMiIgfV0KICBdOwoKICBjb25zdCBQYW5lbFRvcENsb3NlID0gWwogICAgWyJyZWN0IiwgeyB3aWR0aDogIjE4IiwgaGVpZ2h0OiAiMTgiLCB4OiAiMyIsIHk6ICIzIiwgcng6ICIyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0zIDloMTgiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTkgMTYgMy0zIDMgMyIgfV0KICBdOwoKICBjb25zdCBQYW5lbFRvcERhc2hlZCA9IFsKICAgIFsicmVjdCIsIHsgd2lkdGg6ICIxOCIsIGhlaWdodDogIjE4IiwgeDogIjMiLCB5OiAiMyIsIHJ4OiAiMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTQgOWgxIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xOSA5aDIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTMgOWgyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk05IDloMSIgfV0KICBdOwoKICBjb25zdCBQYW5lbFRvcE9wZW4gPSBbCiAgICBbInJlY3QiLCB7IHdpZHRoOiAiMTgiLCBoZWlnaHQ6ICIxOCIsIHg6ICIzIiwgeTogIjMiLCByeDogIjIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTMgOWgxOCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMTUgMTQtMyAzLTMtMyIgfV0KICBdOwoKICBjb25zdCBQYW5lbFRvcCA9IFsKICAgIFsicmVjdCIsIHsgd2lkdGg6ICIxOCIsIGhlaWdodDogIjE4IiwgeDogIjMiLCB5OiAiMyIsIHJ4OiAiMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMyA5aDE4IiB9XQogIF07CgogIGNvbnN0IFBhbmVsc0xlZnRCb3R0b20gPSBbCiAgICBbInJlY3QiLCB7IHdpZHRoOiAiMTgiLCBoZWlnaHQ6ICIxOCIsIHg6ICIzIiwgeTogIjMiLCByeDogIjIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTkgM3YxOCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNOSAxNWgxMiIgfV0KICBdOwoKICBjb25zdCBQYW5lbHNSaWdodEJvdHRvbSA9IFsKICAgIFsicmVjdCIsIHsgd2lkdGg6ICIxOCIsIGhlaWdodDogIjE4IiwgeDogIjMiLCB5OiAiMyIsIHJ4OiAiMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMyAxNWgxMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTUgM3YxOCIgfV0KICBdOwoKICBjb25zdCBQYW5lbHNUb3BMZWZ0ID0gWwogICAgWyJyZWN0IiwgeyB3aWR0aDogIjE4IiwgaGVpZ2h0OiAiMTgiLCB4OiAiMyIsIHk6ICIzIiwgcng6ICIyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0zIDloMTgiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTkgMjFWOSIgfV0KICBdOwoKICBjb25zdCBQYXBlckJhZyA9IFsKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk01LjM2NCAzLjg0OEM0IDYgMyA5LjY1MiAzIDEyLjY1MlYxOWEyIDIgMCAwMDIgMmgxNGEyIDIgMCAwMDItMnYtNWMwLTIuMzM0LTEuODE2LTQuNjY4LTIuNjIyLTcuMDAyIgogICAgICB9CiAgICBdLAogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTcgM2gxMS4zNzlhMiAyIDAgMDExLjc4OSAxLjEwNmwuNzIzIDEuNDQ3QTEgMSAwIDAxMTkuOTk3IDdoLTguNTI1YTIgMiAwIDAxLTEuNzg5LTEuMTA2TDguNzkgNC4xMDVhMiAyIDAgMTAtMy41NzkgMS43ODlsMi4yNjEgNC41MjJBNSA1IDAgMDE4IDEyLjY1MlYyMSIKICAgICAgfQogICAgXQogIF07CgogIGNvbnN0IFBhcGVyY2xpcCA9IFsKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIm0xNiA2LTguNDE0IDguNTg2YTIgMiAwIDAgMCAyLjgyOSAyLjgyOWw4LjQxNC04LjU4NmE0IDQgMCAxIDAtNS42NTctNS42NTdsLTguMzc5IDguNTUxYTYgNiAwIDEgMCA4LjQ4NSA4LjQ4NWw4LjM3OS04LjU1MSIKICAgICAgfQogICAgXQogIF07CgogIGNvbnN0IFBhcmFzb2wgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIuNSAxMS4xMzQgMTguMTk2IDIxIiB9XSwKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk0yMC40MjUgNS4yOTlhMTAgMTAgMCAwIDAtMTYuOTQxIDkuNzhjLjE4My41NjMuODQzLjc3NCAxLjM1NS40NzhMMjAuMTYgNi43MTFjLjUxMi0uMjk2LjY2LS45NzMuMjY0LTEuNDEzIgogICAgICB9CiAgICBdLAogICAgWyJwYXRoIiwgeyBkOiAiTTIxIDIxSDMiIH1dCiAgXTsKCiAgY29uc3QgUGFyZW50aGVzZXMgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNOCAyMXMtNC0zLTQtOSA0LTkgNC05IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNiAzczQgMyA0IDktNCA5LTQgOSIgfV0KICBdOwoKICBjb25zdCBQYXJraW5nTWV0ZXIgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTEgMTVoMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgMTJ2MyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgMTl2MyIgfV0sCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMTUuMjgyIDE5YTEgMSAwIDAgMCAuOTQ4LS42OGwyLjM3LTYuOTg4YTcgNyAwIDEgMC0xMy4yIDBsMi4zNyA2Ljk4OGExIDEgMCAwIDAgLjk0OC42OHoiCiAgICAgIH0KICAgIF0sCiAgICBbInBhdGgiLCB7IGQ6ICJNOSA5YTMgMyAwIDEgMSA2IDAiIH1dCiAgXTsKCiAgY29uc3QgUGFydHlQb3BwZXIgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNNS44IDExLjMgMiAyMmwxMC43LTMuNzkiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTQgM2guMDEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIyIDhoLjAxIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNSAyaC4wMSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMjIgMjBoLjAxIiB9XSwKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIm0yMiAyLTIuMjQuNzVhMi45IDIuOSAwIDAgMC0xLjk2IDMuMTJjLjEuODYtLjU3IDEuNjMtMS40NSAxLjYzaC0uMzhjLS44NiAwLTEuNi42LTEuNzYgMS40NEwxNCAxMCIKICAgICAgfQogICAgXSwKICAgIFsicGF0aCIsIHsgZDogIm0yMiAxMy0uODItLjMzYy0uODYtLjM0LTEuODIuMi0xLjk4IDEuMTFjLS4xMS43LS43MiAxLjIyLTEuNDMgMS4yMkgxNyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMTEgMiAuMzMuODJjLjM0Ljg2LS4yIDEuODItMS4xMSAxLjk4QzkuNTIgNC45IDkgNS41MiA5IDYuMjNWNyIgfV0sCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMTEgMTNjMS45MyAxLjkzIDIuODMgNC4xNyAyIDUtLjgzLjgzLTMuMDctLjA3LTUtMi0xLjkzLTEuOTMtMi44My00LjE3LTItNSAuODMtLjgzIDMuMDcuMDcgNSAyWiIKICAgICAgfQogICAgXQogIF07CgogIGNvbnN0IFBhdXNlID0gWwogICAgWyJyZWN0IiwgeyB4OiAiMTQiLCB5OiAiMyIsIHdpZHRoOiAiNSIsIGhlaWdodDogIjE4Iiwgcng6ICIxIiB9XSwKICAgIFsicmVjdCIsIHsgeDogIjUiLCB5OiAiMyIsIHdpZHRoOiAiNSIsIGhlaWdodDogIjE4Iiwgcng6ICIxIiB9XQogIF07CgogIGNvbnN0IFBhd1ByaW50ID0gWwogICAgWyJjaXJjbGUiLCB7IGN4OiAiMTEiLCBjeTogIjQiLCByOiAiMiIgfV0sCiAgICBbImNpcmNsZSIsIHsgY3g6ICIxOCIsIGN5OiAiOCIsIHI6ICIyIiB9XSwKICAgIFsiY2lyY2xlIiwgeyBjeDogIjIwIiwgY3k6ICIxNiIsIHI6ICIyIiB9XSwKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk05IDEwYTUgNSAwIDAgMSA1IDV2My41YTMuNSAzLjUgMCAwIDEtNi44NCAxLjA0NVE2LjUyIDE3LjQ4IDQuNDYgMTYuODRBMy41IDMuNSAwIDAgMSA1LjUgMTBaIgogICAgICB9CiAgICBdCiAgXTsKCiAgY29uc3QgUGNDYXNlID0gWwogICAgWyJyZWN0IiwgeyB3aWR0aDogIjE0IiwgaGVpZ2h0OiAiMjAiLCB4OiAiNSIsIHk6ICIyIiwgcng6ICIyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNSAxNGguMDEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTkgNmg2IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk05IDEwaDYiIH1dCiAgXTsKCiAgY29uc3QgUGVuTGluZSA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xMyAyMWg4IiB9XSwKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk0yMS4xNzQgNi44MTJhMSAxIDAgMCAwLTMuOTg2LTMuOTg3TDMuODQyIDE2LjE3NGEyIDIgMCAwIDAtLjUuODNsLTEuMzIxIDQuMzUyYS41LjUgMCAwIDAgLjYyMy42MjJsNC4zNTMtMS4zMmEyIDIgMCAwIDAgLjgzLS40OTd6IgogICAgICB9CiAgICBdCiAgXTsKCiAgY29uc3QgUGVuT2ZmID0gWwogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAibTEwIDEwLTYuMTU3IDYuMTYyYTIgMiAwIDAgMC0uNS44MzNsLTEuMzIyIDQuMzZhLjUuNSAwIDAgMCAuNjIyLjYyNGw0LjM1OC0xLjMyM2EyIDIgMCAwIDAgLjgzLS41TDE0IDEzLjk4MiIKICAgICAgfQogICAgXSwKICAgIFsicGF0aCIsIHsgZDogIm0xMi44MjkgNy4xNzIgNC4zNTktNC4zNDZhMSAxIDAgMSAxIDMuOTg2IDMuOTg2bC00LjM1MyA0LjM1MyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMiAyIDIwIDIwIiB9XQogIF07CgogIGNvbnN0IFBlblRvb2wgPSBbCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMTUuNzA3IDIxLjI5M2ExIDEgMCAwIDEtMS40MTQgMGwtMS41ODYtMS41ODZhMSAxIDAgMCAxIDAtMS40MTRsNS41ODYtNS41ODZhMSAxIDAgMCAxIDEuNDE0IDBsMS41ODYgMS41ODZhMSAxIDAgMCAxIDAgMS40MTR6IgogICAgICB9CiAgICBdLAogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAibTE4IDEzLTEuMzc1LTYuODc0YTEgMSAwIDAgMC0uNzQ2LS43NzZMMy4yMzUgMi4wMjhhMSAxIDAgMCAwLTEuMjA3IDEuMjA3TDUuMzUgMTUuODc5YTEgMSAwIDAgMCAuNzc2Ljc0NkwxMyAxOCIKICAgICAgfQogICAgXSwKICAgIFsicGF0aCIsIHsgZDogIm0yLjMgMi4zIDcuMjg2IDcuMjg2IiB9XSwKICAgIFsiY2lyY2xlIiwgeyBjeDogIjExIiwgY3k6ICIxMSIsIHI6ICIyIiB9XQogIF07CgogIGNvbnN0IFBlbiA9IFsKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk0yMS4xNzQgNi44MTJhMSAxIDAgMCAwLTMuOTg2LTMuOTg3TDMuODQyIDE2LjE3NGEyIDIgMCAwIDAtLjUuODNsLTEuMzIxIDQuMzUyYS41LjUgMCAwIDAgLjYyMy42MjJsNC4zNTMtMS4zMmEyIDIgMCAwIDAgLjgzLS40OTd6IgogICAgICB9CiAgICBdCiAgXTsKCiAgY29uc3QgUGVuY2lsTGluZSA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xMyAyMWg4IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0xNSA1IDQgNCIgfV0sCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMjEuMTc0IDYuODEyYTEgMSAwIDAgMC0zLjk4Ni0zLjk4N0wzLjg0MiAxNi4xNzRhMiAyIDAgMCAwLS41LjgzbC0xLjMyMSA0LjM1MmEuNS41IDAgMCAwIC42MjMuNjIybDQuMzUzLTEuMzJhMiAyIDAgMCAwIC44My0uNDk3eiIKICAgICAgfQogICAgXQogIF07CgogIGNvbnN0IFBlbmNpbE9mZiA9IFsKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIm0xMCAxMC02LjE1NyA2LjE2MmEyIDIgMCAwIDAtLjUuODMzbC0xLjMyMiA0LjM2YS41LjUgMCAwIDAgLjYyMi42MjRsNC4zNTgtMS4zMjNhMiAyIDAgMCAwIC44My0uNUwxNCAxMy45ODIiCiAgICAgIH0KICAgIF0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMTIuODI5IDcuMTcyIDQuMzU5LTQuMzQ2YTEgMSAwIDEgMSAzLjk4NiAzLjk4NmwtNC4zNTMgNC4zNTMiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTE1IDUgNCA0IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0yIDIgMjAgMjAiIH1dCiAgXTsKCiAgY29uc3QgUGVuY2lsUnVsZXIgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTMgNyA4LjcgMi43YTIuNDEgMi40MSAwIDAgMC0zLjQgMEwyLjcgNS4zYTIuNDEgMi40MSAwIDAgMCAwIDMuNEw3IDEzIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm04IDYgMi0yIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0xOCAxNiAyLTIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTE3IDExIDQuMyA0LjNjLjk0Ljk0Ljk0IDIuNDYgMCAzLjRsLTIuNiAyLjZjLS45NC45NC0yLjQ2Ljk0LTMuNCAwTDExIDE3IiB9XSwKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk0yMS4xNzQgNi44MTJhMSAxIDAgMCAwLTMuOTg2LTMuOTg3TDMuODQyIDE2LjE3NGEyIDIgMCAwIDAtLjUuODNsLTEuMzIxIDQuMzUyYS41LjUgMCAwIDAgLjYyMy42MjJsNC4zNTMtMS4zMmEyIDIgMCAwIDAgLjgzLS40OTd6IgogICAgICB9CiAgICBdLAogICAgWyJwYXRoIiwgeyBkOiAibTE1IDUgNCA0IiB9XQogIF07CgogIGNvbnN0IFBlbmNpbFNwYXJrbGVzID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTEwIDNIOCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMTUuMDA3IDUuMDA4IDMuOTg3IDMuOTg2IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yMCAxNXY0IiB9XSwKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk0yMS4xNzQgNi44MTNhMi44MiAyLjgyIDAgMCAwLTMuOTg2LTMuOTg3TDMuODQyIDE2LjE3NWEyIDIgMCAwIDAtLjUuODNsLTEuMzIxIDQuMzUyYS41LjUgMCAwIDAgLjYyMy42MjJsNC4zNTMtMS4zMmEyIDIgMCAwIDAgLjgzLS40OTd6IgogICAgICB9CiAgICBdLAogICAgWyJwYXRoIiwgeyBkOiAiTTIyIDE3aC00IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk00IDV2NCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNiA3SDIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTkgMnYyIiB9XQogIF07CgogIGNvbnN0IFBlbmNpbCA9IFsKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk0yMS4xNzQgNi44MTJhMSAxIDAgMCAwLTMuOTg2LTMuOTg3TDMuODQyIDE2LjE3NGEyIDIgMCAwIDAtLjUuODNsLTEuMzIxIDQuMzUyYS41LjUgMCAwIDAgLjYyMy42MjJsNC4zNTMtMS4zMmEyIDIgMCAwIDAgLjgzLS40OTd6IgogICAgICB9CiAgICBdLAogICAgWyJwYXRoIiwgeyBkOiAibTE1IDUgNCA0IiB9XQogIF07CgogIGNvbnN0IFBlbnRhZ29uID0gWwogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTEwLjgzIDIuMzhhMiAyIDAgMCAxIDIuMzQgMGw4IDUuNzRhMiAyIDAgMCAxIC43MyAyLjI1bC0zLjA0IDkuMjZhMiAyIDAgMCAxLTEuOSAxLjM3SDcuMDRhMiAyIDAgMCAxLTEuOS0xLjM3TDIuMSAxMC4zN2EyIDIgMCAwIDEgLjczLTIuMjV6IgogICAgICB9CiAgICBdCiAgXTsKCiAgY29uc3QgUGVyY2VudCA9IFsKICAgIFsibGluZSIsIHsgeDE6ICIxOSIsIHgyOiAiNSIsIHkxOiAiNSIsIHkyOiAiMTkiIH1dLAogICAgWyJjaXJjbGUiLCB7IGN4OiAiNi41IiwgY3k6ICI2LjUiLCByOiAiMi41IiB9XSwKICAgIFsiY2lyY2xlIiwgeyBjeDogIjE3LjUiLCBjeTogIjE3LjUiLCByOiAiMi41IiB9XQogIF07CgogIGNvbnN0IFBlcnNvblN0YW5kaW5nID0gWwogICAgWyJjaXJjbGUiLCB7IGN4OiAiMTIiLCBjeTogIjUiLCByOiAiMSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtOSAyMCAzLTYgMyA2IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm02IDggNiAyIDYtMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgMTB2NCIgfV0KICBdOwoKICBjb25zdCBQaGkgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgMnYyMCIgfV0sCiAgICBbImNpcmNsZSIsIHsgY3g6ICIxMiIsIGN5OiAiMTIiLCByOiAiNyIgfV0KICBdOwoKICBjb25zdCBQaGlsaXBwaW5lUGVzbyA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0yMCAxMUg0IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yMCA3SDQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTcgMjFWNGExIDEgMCAwIDEgMS0xaDRhMSAxIDAgMCAxIDAgMTJINyIgfV0KICBdOwoKICBjb25zdCBQaG9uZUNhbGwgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTMgMmE5IDkgMCAwIDEgOSA5IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xMyA2YTUgNSAwIDAgMSA1IDUiIH1dLAogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTEzLjgzMiAxNi41NjhhMSAxIDAgMCAwIDEuMjEzLS4zMDNsLjM1NS0uNDY1QTIgMiAwIDAgMSAxNyAxNWgzYTIgMiAwIDAgMSAyIDJ2M2EyIDIgMCAwIDEtMiAyQTE4IDE4IDAgMCAxIDIgNGEyIDIgMCAwIDEgMi0yaDNhMiAyIDAgMCAxIDIgMnYzYTIgMiAwIDAgMS0uOCAxLjZsLS40NjguMzUxYTEgMSAwIDAgMC0uMjkyIDEuMjMzIDE0IDE0IDAgMCAwIDYuMzkyIDYuMzg0IgogICAgICB9CiAgICBdCiAgXTsKCiAgY29uc3QgUGhvbmVGb3J3YXJkZWQgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTQgNmg4IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0xOCAyIDQgNC00IDQiIH1dLAogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTEzLjgzMiAxNi41NjhhMSAxIDAgMCAwIDEuMjEzLS4zMDNsLjM1NS0uNDY1QTIgMiAwIDAgMSAxNyAxNWgzYTIgMiAwIDAgMSAyIDJ2M2EyIDIgMCAwIDEtMiAyQTE4IDE4IDAgMCAxIDIgNGEyIDIgMCAwIDEgMi0yaDNhMiAyIDAgMCAxIDIgMnYzYTIgMiAwIDAgMS0uOCAxLjZsLS40NjguMzUxYTEgMSAwIDAgMC0uMjkyIDEuMjMzIDE0IDE0IDAgMCAwIDYuMzkyIDYuMzg0IgogICAgICB9CiAgICBdCiAgXTsKCiAgY29uc3QgUGhvbmVJbmNvbWluZyA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xNiAydjZoNiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMjIgMi02IDYiIH1dLAogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTEzLjgzMiAxNi41NjhhMSAxIDAgMCAwIDEuMjEzLS4zMDNsLjM1NS0uNDY1QTIgMiAwIDAgMSAxNyAxNWgzYTIgMiAwIDAgMSAyIDJ2M2EyIDIgMCAwIDEtMiAyQTE4IDE4IDAgMCAxIDIgNGEyIDIgMCAwIDEgMi0yaDNhMiAyIDAgMCAxIDIgMnYzYTIgMiAwIDAgMS0uOCAxLjZsLS40NjguMzUxYTEgMSAwIDAgMC0uMjkyIDEuMjMzIDE0IDE0IDAgMCAwIDYuMzkyIDYuMzg0IgogICAgICB9CiAgICBdCiAgXTsKCiAgY29uc3QgUGhvbmVNaXNzZWQgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJtMTYgMiA2IDYiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTIyIDItNiA2IiB9XSwKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk0xMy44MzIgMTYuNTY4YTEgMSAwIDAgMCAxLjIxMy0uMzAzbC4zNTUtLjQ2NUEyIDIgMCAwIDEgMTcgMTVoM2EyIDIgMCAwIDEgMiAydjNhMiAyIDAgMCAxLTIgMkExOCAxOCAwIDAgMSAyIDRhMiAyIDAgMCAxIDItMmgzYTIgMiAwIDAgMSAyIDJ2M2EyIDIgMCAwIDEtLjggMS42bC0uNDY4LjM1MWExIDEgMCAwIDAtLjI5MiAxLjIzMyAxNCAxNCAwIDAgMCA2LjM5MiA2LjM4NCIKICAgICAgfQogICAgXQogIF07CgogIGNvbnN0IFBob25lT2ZmID0gWwogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTEwLjEgMTMuOWExNCAxNCAwIDAgMCAzLjczMiAyLjY2OCAxIDEgMCAwIDAgMS4yMTMtLjMwM2wuMzU1LS40NjVBMiAyIDAgMCAxIDE3IDE1aDNhMiAyIDAgMCAxIDIgMnYzYTIgMiAwIDAgMS0yIDIgMTggMTggMCAwIDEtMTIuNzI4LTUuMjcyIgogICAgICB9CiAgICBdLAogICAgWyJwYXRoIiwgeyBkOiAiTTIyIDIgMiAyMiIgfV0sCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNNC43NiAxMy41ODJBMTggMTggMCAwIDEgMiA0YTIgMiAwIDAgMSAyLTJoM2EyIDIgMCAwIDEgMiAydjNhMiAyIDAgMCAxLS44IDEuNmwtLjQ2OC4zNTFhMSAxIDAgMCAwLS4yOTIgMS4yMzMgMTQgMTQgMCAwIDAgLjI0NC40NzMiCiAgICAgIH0KICAgIF0KICBdOwoKICBjb25zdCBQaG9uZU91dGdvaW5nID0gWwogICAgWyJwYXRoIiwgeyBkOiAibTE2IDggNi02IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yMiA4VjJoLTYiIH1dLAogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTEzLjgzMiAxNi41NjhhMSAxIDAgMCAwIDEuMjEzLS4zMDNsLjM1NS0uNDY1QTIgMiAwIDAgMSAxNyAxNWgzYTIgMiAwIDAgMSAyIDJ2M2EyIDIgMCAwIDEtMiAyQTE4IDE4IDAgMCAxIDIgNGEyIDIgMCAwIDEgMi0yaDNhMiAyIDAgMCAxIDIgMnYzYTIgMiAwIDAgMS0uOCAxLjZsLS40NjguMzUxYTEgMSAwIDAgMC0uMjkyIDEuMjMzIDE0IDE0IDAgMCAwIDYuMzkyIDYuMzg0IgogICAgICB9CiAgICBdCiAgXTsKCiAgY29uc3QgUGhvbmUgPSBbCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMTMuODMyIDE2LjU2OGExIDEgMCAwIDAgMS4yMTMtLjMwM2wuMzU1LS40NjVBMiAyIDAgMCAxIDE3IDE1aDNhMiAyIDAgMCAxIDIgMnYzYTIgMiAwIDAgMS0yIDJBMTggMTggMCAwIDEgMiA0YTIgMiAwIDAgMSAyLTJoM2EyIDIgMCAwIDEgMiAydjNhMiAyIDAgMCAxLS44IDEuNmwtLjQ2OC4zNTFhMSAxIDAgMCAwLS4yOTIgMS4yMzMgMTQgMTQgMCAwIDAgNi4zOTIgNi4zODQiCiAgICAgIH0KICAgIF0KICBdOwoKICBjb25zdCBQaSA9IFsKICAgIFsibGluZSIsIHsgeDE6ICI5IiwgeDI6ICI5IiwgeTE6ICI0IiwgeTI6ICIyMCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNCA3YzAtMS43IDEuMy0zIDMtM2gxMyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTggMjBjLTEuNyAwLTMtMS4zLTMtM1Y0IiB9XQogIF07CgogIGNvbnN0IFBpYW5vID0gWwogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTE4LjUgOGMtMS40IDAtMi42LS44LTMuMi0yQTYuODcgNi44NyAwIDAgMCAyIDl2MTFhMiAyIDAgMCAwIDIgMmgxNmEyIDIgMCAwIDAgMi0ydi04LjVDMjIgOS42IDIwLjQgOCAxOC41IDgiCiAgICAgIH0KICAgIF0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMiAxNGgyMCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNiAxNHY0IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xMCAxNHY0IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNCAxNHY0IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xOCAxNHY0IiB9XQogIF07CgogIGNvbnN0IFBpY2theGUgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJtMTQgMTMtOC4zODEgOC4zOGExIDEgMCAwIDEtMy4wMDEtM0wxMSA5Ljk5OSIgfV0sCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMTUuOTczIDQuMDI3QTEzIDEzIDAgMCAwIDUuOTAyIDIuMzczYy0xLjM5OC4zNDItMS4wOTIgMi4xNTguMjc3IDIuNjAxYTE5LjkgMTkuOSAwIDAgMSA1LjgyMiAzLjAyNCIKICAgICAgfQogICAgXSwKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk0xNi4wMDEgMTEuOTk5YTE5LjkgMTkuOSAwIDAgMSAzLjAyNCA1LjgyNGMuNDQ0IDEuMzY5IDIuMjYgMS42NzYgMi42MDMuMjc4QTEzIDEzIDAgMCAwIDIwIDguMDY5IgogICAgICB9CiAgICBdLAogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTE4LjM1MiAzLjM1MmExLjIwNSAxLjIwNSAwIDAgMC0xLjcwNCAwbC01LjI5NiA1LjI5NmExLjIwNSAxLjIwNSAwIDAgMCAwIDEuNzA0bDIuMjk2IDIuMjk2YTEuMjA1IDEuMjA1IDAgMCAwIDEuNzA0IDBsNS4yOTYtNS4yOTZhMS4yMDUgMS4yMDUgMCAwIDAgMC0xLjcwNHoiCiAgICAgIH0KICAgIF0KICBdOwoKICBjb25zdCBQaWN0dXJlSW5QaWN0dXJlMiA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0yMSA5VjZhMiAyIDAgMCAwLTItMkg0YTIgMiAwIDAgMC0yIDJ2MTBjMCAxLjEuOSAyIDIgMmg0IiB9XSwKICAgIFsicmVjdCIsIHsgd2lkdGg6ICIxMCIsIGhlaWdodDogIjciLCB4OiAiMTIiLCB5OiAiMTMiLCByeDogIjIiIH1dCiAgXTsKCiAgY29uc3QgUGljdHVyZUluUGljdHVyZSA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0yIDEwaDZWNCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMiA0IDYgNiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMjEgMTBWN2EyIDIgMCAwIDAtMi0yaC03IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0zIDE0djJhMiAyIDAgMCAwIDIgMmgzIiB9XSwKICAgIFsicmVjdCIsIHsgeDogIjEyIiwgeTogIjE0Iiwgd2lkdGg6ICIxMCIsIGhlaWdodDogIjciLCByeDogIjEiIH1dCiAgXTsKCiAgY29uc3QgUGlnZ3lCYW5rID0gWwogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTExIDE3aDN2MmExIDEgMCAwIDAgMSAxaDJhMSAxIDAgMCAwIDEtMXYtM2EzLjE2IDMuMTYgMCAwIDAgMi0yaDFhMSAxIDAgMCAwIDEtMXYtMmExIDEgMCAwIDAtMS0xaC0xYTUgNSAwIDAgMC0yLTRWM2E0IDQgMCAwIDAtMy4yIDEuNmwtLjMuNEgxMWE2IDYgMCAwIDAtNiA2djFhNSA1IDAgMCAwIDIgNHYzYTEgMSAwIDAgMCAxIDFoMmExIDEgMCAwIDAgMS0xeiIKICAgICAgfQogICAgXSwKICAgIFsicGF0aCIsIHsgZDogIk0xNiAxMGguMDEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIgOHYxYTIgMiAwIDAgMCAyIDJoMSIgfV0KICBdOwoKICBjb25zdCBQaWxjcm93TGVmdCA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xNCAzdjExIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNCA5aC0zYTMgMyAwIDAgMSAwLTZoOSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTggM3YxMSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMjIgMThIMmw0LTQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTYgMjItNC00IiB9XQogIF07CgogIGNvbnN0IFBpbGNyb3dSaWdodCA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xMCAzdjExIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xMCA5SDdhMSAxIDAgMCAxIDAtNmg4IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNCAzdjExIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0xOCAxNCA0IDRIMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMjIgMTgtNCA0IiB9XQogIF07CgogIGNvbnN0IFBpbGNyb3cgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTMgNHYxNiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTcgNHYxNiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTkgNEg5LjVhNC41IDQuNSAwIDAgMCAwIDlIMTMiIH1dCiAgXTsKCiAgY29uc3QgUGlsbEJvdHRsZSA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xOCAxMWgtNGExIDEgMCAwIDAtMSAxdjVhMSAxIDAgMCAwIDEgMWg0IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk02IDd2MTNhMiAyIDAgMCAwIDIgMmg4YTIgMiAwIDAgMCAyLTJWNyIgfV0sCiAgICBbInJlY3QiLCB7IHdpZHRoOiAiMTYiLCBoZWlnaHQ6ICI1IiwgeDogIjQiLCB5OiAiMiIsIHJ4OiAiMSIgfV0KICBdOwoKICBjb25zdCBQaWxsID0gWwogICAgWyJwYXRoIiwgeyBkOiAibTEwLjUgMjAuNSAxMC0xMGE0Ljk1IDQuOTUgMCAxIDAtNy03bC0xMCAxMGE0Ljk1IDQuOTUgMCAxIDAgNyA3WiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtOC41IDguNSA3IDciIH1dCiAgXTsKCiAgY29uc3QgUGluT2ZmID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDE3djUiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE1IDkuMzRWN2ExIDEgMCAwIDEgMS0xIDIgMiAwIDAgMCAwLTRINy44OSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMiAyIDIwIDIwIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk05IDl2MS43NmEyIDIgMCAwIDEtMS4xMSAxLjc5bC0xLjc4LjlBMiAyIDAgMCAwIDUgMTUuMjRWMTZhMSAxIDAgMCAwIDEgMWgxMSIgfV0KICBdOwoKICBjb25zdCBQaXBldHRlID0gWwogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAibTEyIDktOC40MTQgOC40MTRBMiAyIDAgMCAwIDMgMTguODI4djEuMzQ0YTIgMiAwIDAgMS0uNTg2IDEuNDE0QTIgMiAwIDAgMSAzLjgyOCAyMWgxLjM0NGEyIDIgMCAwIDAgMS40MTQtLjU4NkwxNSAxMiIKICAgICAgfQogICAgXSwKICAgIFsicGF0aCIsIHsgZDogIm0xOCA5IC40LjRhMSAxIDAgMSAxLTMgM2wtMy44LTMuOGExIDEgMCAxIDEgMy0zbC40LjQgMy40LTMuNGExIDEgMCAxIDEgMyAzeiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMiAyMiAuNDE0LS40MTQiIH1dCiAgXTsKCiAgY29uc3QgUGluID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDE3djUiIH1dLAogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTkgMTAuNzZhMiAyIDAgMCAxLTEuMTEgMS43OWwtMS43OC45QTIgMiAwIDAgMCA1IDE1LjI0VjE2YTEgMSAwIDAgMCAxIDFoMTJhMSAxIDAgMCAwIDEtMXYtLjc2YTIgMiAwIDAgMC0xLjExLTEuNzlsLTEuNzgtLjlBMiAyIDAgMCAxIDE1IDEwLjc2VjdhMSAxIDAgMCAxIDEtMSAyIDIgMCAwIDAgMC00SDhhMiAyIDAgMCAwIDAgNCAxIDEgMCAwIDEgMSAxeiIKICAgICAgfQogICAgXQogIF07CgogIGNvbnN0IFBpenphID0gWwogICAgWyJwYXRoIiwgeyBkOiAibTEyIDE0LTEgMSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMTMuNzUgMTguMjUtMS4yNSAxLjQyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNy43NzUgNS42NTRhMTUuNjggMTUuNjggMCAwIDAtMTIuMTIxIDEyLjEyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xOC44IDkuM2ExIDEgMCAwIDAgMi4xIDcuNyIgfV0sCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMjEuOTY0IDIwLjczMmExIDEgMCAwIDEtMS4yMzIgMS4yMzJsLTE4LTVhMSAxIDAgMCAxLS42OTUtMS4yMzJBMTkuNjggMTkuNjggMCAwIDEgMTUuNzMyIDIuMDM3YTEgMSAwIDAgMSAxLjIzMi42OTV6IgogICAgICB9CiAgICBdCiAgXTsKCiAgY29uc3QgUGxhbmVMYW5kaW5nID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTIgMjJoMjAiIH1dLAogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTMuNzcgMTAuNzcgMiA5bDItNC41IDEuMS41NWMuNTUuMjguOS44NC45IDEuNDVzLjM1IDEuMTcuOSAxLjQ1TDggOC41bDMtNiAxLjA1LjUzYTIgMiAwIDAgMSAxLjA5IDEuNTJsLjcyIDUuNGEyIDIgMCAwIDAgMS4wOSAxLjUybDQuNCAyLjJjLjQyLjIyLjc4LjU1IDEuMDEuOTZsLjYgMS4wM2MuNDkuODgtLjA2IDEuOTgtMS4wNiAyLjFsLTEuMTguMTVjLS40Ny4wNi0uOTUtLjAyLTEuMzctLjI0TDQuMjkgMTEuMTVhMiAyIDAgMCAxLS41Mi0uMzhaIgogICAgICB9CiAgICBdCiAgXTsKCiAgY29uc3QgUGxhbmUgPSBbCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMTcuOCAxOS4yIDE2IDExbDMuNS0zLjVDMjEgNiAyMS41IDQgMjEgM2MtMS0uNS0zIDAtNC41IDEuNUwxMyA4IDQuOCA2LjJjLS41LS4xLS45LjEtMS4xLjVsLS4zLjVjLS4yLjUtLjEgMSAuMyAxLjNMOSAxMmwtMiAzSDRsLTEgMSAzIDIgMiAzIDEtMXYtM2wzLTIgMy41IDUuM2MuMy40LjguNSAxLjMuM2wuNS0uMmMuNC0uMy42LS43LjUtMS4yeiIKICAgICAgfQogICAgXQogIF07CgogIGNvbnN0IFBsYW5lVGFrZW9mZiA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0yIDIyaDIwIiB9XSwKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk02LjM2IDE3LjQgNCAxN2wtMi00IDEuMS0uNTVhMiAyIDAgMCAxIDEuOCAwbC4xNy4xYTIgMiAwIDAgMCAxLjggMEw4IDEyIDUgNmwuOS0uNDVhMiAyIDAgMCAxIDIuMDkuMmw0LjAyIDNhMiAyIDAgMCAwIDIuMS4ybDQuMTktMi4wNmEyLjQxIDIuNDEgMCAwIDEgMS43My0uMTdMMjEgN2ExLjQgMS40IDAgMCAxIC44NyAxLjk5bC0uMzguNzZjLS4yMy40Ni0uNi44NC0xLjA3IDEuMDhMNy41OCAxNy4yYTIgMiAwIDAgMS0xLjIyLjE4WiIKICAgICAgfQogICAgXQogIF07CgogIGNvbnN0IFBsYXlPZmYgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJtMTAuMjE1IDQuNTYgOS43OSA1LjcxYTIgMiAwIDAgMSAuMDAzIDMuNDU4bC0uMzkzLjIzIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0xNi4wNDIgMTYuMDQyLTguMDM0IDQuNjg2QTIgMiAwIDAgMSA1IDE5VjUiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTIgMiAyMCAyMCIgfV0KICBdOwoKICBjb25zdCBQbGF5ID0gWwogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsgZDogIk01IDVhMiAyIDAgMCAxIDMuMDA4LTEuNzI4bDExLjk5NyA2Ljk5OGEyIDIgMCAwIDEgLjAwMyAzLjQ1OGwtMTIgN0EyIDIgMCAwIDEgNSAxOXoiIH0KICAgIF0KICBdOwoKICBjb25zdCBQbHVnMiA9IFsKICAgIFsicGF0aCIsIHsgZDogIk05IDJ2NiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTUgMnY2IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xMiAxN3Y1IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk01IDhoMTQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTYgMTFWOGgxMnYzYTYgNiAwIDEgMS0xMiAwWiIgfV0KICBdOwoKICBjb25zdCBQbHVnWmFwID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTYuMyAyMC4zYTIuNCAyLjQgMCAwIDAgMy40IDBMMTIgMThsLTYtNi0yLjMgMi4zYTIuNCAyLjQgMCAwIDAgMCAzLjRaIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0yIDIyIDMtMyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNy41IDEzLjUgMTAgMTEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTEwLjUgMTYuNSAxMyAxNCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMTggMy00IDRoNmwtNCA0IiB9XQogIF07CgogIGNvbnN0IFBsdWcgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgMjJ2LTUiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE1IDhWMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTcgOGExIDEgMCAwIDEgMSAxdjRhNCA0IDAgMCAxLTQgNGgtNGE0IDQgMCAwIDEtNC00VjlhMSAxIDAgMCAxIDEtMXoiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTkgOFYyIiB9XQogIF07CgogIGNvbnN0IFBsdXMgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNNSAxMmgxNCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgNXYxNCIgfV0KICBdOwoKICBjb25zdCBQb2NrZXRLbmlmZSA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0zIDJ2MWMwIDEgMiAxIDIgMlMzIDYgMyA3czIgMSAyIDItMiAxLTIgMiAyIDEgMiAyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xOCA2aC4wMSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNiAxOGguMDEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIwLjgzIDguODNhNCA0IDAgMCAwLTUuNjYtNS42NmwtMTIgMTJhNCA0IDAgMSAwIDUuNjYgNS42NloiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE4IDExLjY2VjIyYTQgNCAwIDAgMCA0LTRWNiIgfV0KICBdOwoKICBjb25zdCBQb2RpdW0gPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgNlYyaC0xIiB9XSwKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk05IDE1YTEgMSAwIDAgMC0xLTFINGExIDEgMCAwIDAtMSAxdjVhMSAxIDAgMCAwIDEgMWgxNmExIDEgMCAwIDAgMS0xdi0zYTEgMSAwIDAgMC0xLTFoLTRhMSAxIDAgMCAwLTEgMSIKICAgICAgfQogICAgXSwKICAgIFsicGF0aCIsIHsgZDogIk05IDIxVjExYTEgMSAwIDAgMSAxLTFoNGExIDEgMCAwIDEgMSAxdjEwIiB9XQogIF07CgogIGNvbnN0IFBvaW50ZXJPZmYgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTAgNC41VjRhMiAyIDAgMCAwLTIuNDEtMS45NTciIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTEzLjkgOC40YTIgMiAwIDAgMC0xLjI2LTEuMjk1IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yMS43IDE2LjJBOCA4IDAgMCAwIDIyIDE0di0zYTIgMiAwIDEgMC00IDB2LTFhMiAyIDAgMCAwLTMuNjMtMS4xNTgiIH1dLAogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsgZDogIm03IDE1LTEuOC0xLjhhMiAyIDAgMCAwLTIuNzkgMi44Nkw2IDE5LjdhNy43NCA3Ljc0IDAgMCAwIDYgMi4zaDJhOCA4IDAgMCAwIDUuNjU3LTIuMzQzIiB9CiAgICBdLAogICAgWyJwYXRoIiwgeyBkOiAiTTYgNnY4IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0yIDIgMjAgMjAiIH1dCiAgXTsKCiAgY29uc3QgUG9pbnRlciA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0yMiAxNGE4IDggMCAwIDEtOCA4IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xOCAxMXYtMWEyIDIgMCAwIDAtMi0yYTIgMiAwIDAgMC0yIDIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE0IDEwVjlhMiAyIDAgMCAwLTItMmEyIDIgMCAwIDAtMiAydjEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTEwIDkuNVY0YTIgMiAwIDAgMC0yLTJhMiAyIDAgMCAwLTIgMnYxMCIgfV0sCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMTggMTFhMiAyIDAgMSAxIDQgMHYzYTggOCAwIDAgMS04IDhoLTJjLTIuOCAwLTQuNS0uODYtNS45OS0yLjM0bC0zLjYtMy42YTIgMiAwIDAgMSAyLjgzLTIuODJMNyAxNSIKICAgICAgfQogICAgXQogIF07CgogIGNvbnN0IFBvcGNvcm4gPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTggOGEyIDIgMCAwIDAgMC00IDIgMiAwIDAgMC00IDAgMiAyIDAgMCAwLTQgMCAyIDIgMCAwIDAtNCAwIDIgMiAwIDAgMCAwIDQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTEwIDIyIDkgOCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMTQgMjIgMS0xNCIgfV0sCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMjAgOGMuNSAwIC45LjQuOCAxbC0yLjYgMTJjLS4xLjUtLjcgMS0xLjIgMUg3Yy0uNiAwLTEuMS0uNC0xLjItMUwzLjIgOWMtLjEtLjYuMy0xIC44LTFaIgogICAgICB9CiAgICBdCiAgXTsKCiAgY29uc3QgUG9wc2ljbGUgPSBbCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgeyBkOiAiTTE4LjYgMTQuNGMuOC0uOC44LTIgMC0yLjhsLTguMS04LjFhNC45NSA0Ljk1IDAgMSAwLTcuMSA3LjFsOC4xIDguMWMuOS43IDIuMS43IDIuOS0uMVoiIH0KICAgIF0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMjIgMjItNS41LTUuNSIgfV0KICBdOwoKICBjb25zdCBQb3VuZFN0ZXJsaW5nID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTE4IDdjMC01LjMzMy04LTUuMzMzLTggMCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTAgN3YxNCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNiAyMWgxMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNiAxM2gxMCIgfV0KICBdOwoKICBjb25zdCBQb3dlck9mZiA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xOC4zNiA2LjY0QTkgOSAwIDAgMSAyMC43NyAxNSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNi4xNiA2LjE2YTkgOSAwIDEgMCAxMi42OCAxMi42OCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgMnY0IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0yIDIgMjAgMjAiIH1dCiAgXTsKCiAgY29uc3QgUG93ZXIgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgMnYxMCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTguNCA2LjZhOSA5IDAgMSAxLTEyLjc3LjA0IiB9XQogIF07CgogIGNvbnN0IFByZXNlbnRhdGlvbiA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0yIDNoMjAiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIxIDN2MTFhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJWMyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtNyAyMSA1LTUgNSA1IiB9XQogIF07CgogIGNvbnN0IFByaW50ZXJDaGVjayA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xMy41IDIySDdhMSAxIDAgMCAxLTEtMXYtNmExIDEgMCAwIDEgMS0xaDEwYTEgMSAwIDAgMSAxIDF2LjUiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTE2IDE5IDIgMiA0LTQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTYgMThINGEyIDIgMCAwIDEtMi0ydi01YTIgMiAwIDAgMSAyLTJoMTZhMiAyIDAgMCAxIDIgMnYyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk02IDlWM2ExIDEgMCAwIDEgMS0xaDEwYTEgMSAwIDAgMSAxIDF2NiIgfV0KICBdOwoKICBjb25zdCBQcmludGVyWCA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xMi41MzEgMjJIN2ExIDEgMCAwIDEtMS0xdi02YTEgMSAwIDAgMSAxLTFoNi4zNzciIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTE2LjUgMTYuNSA1IDUiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTE2LjUgMjEuNSA1LTUiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTYgMThINGEyIDIgMCAwIDEtMi0ydi01YTIgMiAwIDAgMSAyLTJoMTZhMiAyIDAgMCAxIDIgMnYxLjUiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTYgOVYzYTEgMSAwIDAgMSAxLTFoMTBhMSAxIDAgMCAxIDEgMXY2IiB9XQogIF07CgogIGNvbnN0IFByaW50ZXIgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNNiAxOEg0YTIgMiAwIDAgMS0yLTJ2LTVhMiAyIDAgMCAxIDItMmgxNmEyIDIgMCAwIDEgMiAydjVhMiAyIDAgMCAxLTIgMmgtMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNiA5VjNhMSAxIDAgMCAxIDEtMWgxMGExIDEgMCAwIDEgMSAxdjYiIH1dLAogICAgWyJyZWN0IiwgeyB4OiAiNiIsIHk6ICIxNCIsIHdpZHRoOiAiMTIiLCBoZWlnaHQ6ICI4Iiwgcng6ICIxIiB9XQogIF07CgogIGNvbnN0IFByb2plY3RvciA9IFsKICAgIFsicGF0aCIsIHsgZDogIk01IDcgMyA1IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk05IDZWMyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMTMgNyAyLTIiIH1dLAogICAgWyJjaXJjbGUiLCB7IGN4OiAiOSIsIGN5OiAiMTMiLCByOiAiMyIgfV0sCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgeyBkOiAiTTExLjgzIDEySDIwYTIgMiAwIDAgMSAyIDJ2NGEyIDIgMCAwIDEtMiAySDRhMiAyIDAgMCAxLTItMnYtNGEyIDIgMCAwIDEgMi0yaDIuMTciIH0KICAgIF0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTYgMTZoMiIgfV0KICBdOwoKICBjb25zdCBQcm9wb3J0aW9ucyA9IFsKICAgIFsicmVjdCIsIHsgd2lkdGg6ICIyMCIsIGhlaWdodDogIjE2IiwgeDogIjIiLCB5OiAiNCIsIHJ4OiAiMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgOXYxMSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMiA5aDEzYTIgMiAwIDAgMSAyIDJ2OSIgfV0KICBdOwoKICBjb25zdCBQdXp6bGUgPSBbCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMTUuMzkgNC4zOWExIDEgMCAwIDAgMS42OC0uNDc0IDIuNSAyLjUgMCAxIDEgMy4wMTQgMy4wMTUgMSAxIDAgMCAwLS40NzQgMS42OGwxLjY4MyAxLjY4MmEyLjQxNCAyLjQxNCAwIDAgMSAwIDMuNDE0TDE5LjYxIDE1LjM5YTEgMSAwIDAgMS0xLjY4LS40NzQgMi41IDIuNSAwIDEgMC0zLjAxNCAzLjAxNSAxIDEgMCAwIDEgLjQ3NCAxLjY4bC0xLjY4MyAxLjY4MmEyLjQxNCAyLjQxNCAwIDAgMS0zLjQxNCAwTDguNjEgMTkuNjFhMSAxIDAgMCAwLTEuNjguNDc0IDIuNSAyLjUgMCAxIDEtMy4wMTQtMy4wMTUgMSAxIDAgMCAwIC40NzQtMS42OGwtMS42ODMtMS42ODJhMi40MTQgMi40MTQgMCAwIDEgMC0zLjQxNEw0LjM5IDguNjFhMSAxIDAgMCAxIDEuNjguNDc0IDIuNSAyLjUgMCAxIDAgMy4wMTQtMy4wMTUgMSAxIDAgMCAxLS40NzQtMS42OGwxLjY4My0xLjY4MmEyLjQxNCAyLjQxNCAwIDAgMSAzLjQxNCAweiIKICAgICAgfQogICAgXQogIF07CgogIGNvbnN0IFB5cmFtaWQgPSBbCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMi41IDE2Ljg4YTEgMSAwIDAgMS0uMzItMS40M2w5LTEzLjAyYTEgMSAwIDAgMSAxLjY0IDBsOSAxMy4wMWExIDEgMCAwIDEtLjMyIDEuNDRsLTguNTEgNC44NmEyIDIgMCAwIDEtMS45OCAwWiIKICAgICAgfQogICAgXSwKICAgIFsicGF0aCIsIHsgZDogIk0xMiAydjIwIiB9XQogIF07CgogIGNvbnN0IFFyQ29kZSA9IFsKICAgIFsicmVjdCIsIHsgd2lkdGg6ICI1IiwgaGVpZ2h0OiAiNSIsIHg6ICIzIiwgeTogIjMiLCByeDogIjEiIH1dLAogICAgWyJyZWN0IiwgeyB3aWR0aDogIjUiLCBoZWlnaHQ6ICI1IiwgeDogIjE2IiwgeTogIjMiLCByeDogIjEiIH1dLAogICAgWyJyZWN0IiwgeyB3aWR0aDogIjUiLCBoZWlnaHQ6ICI1IiwgeDogIjMiLCB5OiAiMTYiLCByeDogIjEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIxIDE2aC0zYTIgMiAwIDAgMC0yIDJ2MyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMjEgMjF2LjAxIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xMiA3djNhMiAyIDAgMCAxLTIgMkg3IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0zIDEyaC4wMSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgM2guMDEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDE2di4wMSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTYgMTJoMSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMjEgMTJ2LjAxIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xMiAyMXYtMSIgfV0KICBdOwoKICBjb25zdCBRdW90ZSA9IFsKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk0xNiAzYTIgMiAwIDAgMC0yIDJ2NmEyIDIgMCAwIDAgMiAyIDEgMSAwIDAgMSAxIDF2MWEyIDIgMCAwIDEtMiAyIDEgMSAwIDAgMC0xIDF2MmExIDEgMCAwIDAgMSAxIDYgNiAwIDAgMCA2LTZWNWEyIDIgMCAwIDAtMi0yeiIKICAgICAgfQogICAgXSwKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk01IDNhMiAyIDAgMCAwLTIgMnY2YTIgMiAwIDAgMCAyIDIgMSAxIDAgMCAxIDEgMXYxYTIgMiAwIDAgMS0yIDIgMSAxIDAgMCAwLTEgMXYyYTEgMSAwIDAgMCAxIDEgNiA2IDAgMCAwIDYtNlY1YTIgMiAwIDAgMC0yLTJ6IgogICAgICB9CiAgICBdCiAgXTsKCiAgY29uc3QgUmFiYml0ID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTEzIDE2YTMgMyAwIDAgMSAyLjI0IDUiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE4IDEyaC4wMSIgfV0sCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMTggMjFoLThhNCA0IDAgMCAxLTQtNCA3IDcgMCAwIDEgNy03aC4yTDkuNiA2LjRhMSAxIDAgMSAxIDIuOC0yLjhMMTUuOCA3aC4yYzMuMyAwIDYgMi43IDYgNnYxYTIgMiAwIDAgMS0yIDJoLTFhMyAzIDAgMCAwLTMgMyIKICAgICAgfQogICAgXSwKICAgIFsicGF0aCIsIHsgZDogIk0yMCA4LjU0VjRhMiAyIDAgMSAwLTQgMHYzIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk03LjYxMiAxMi41MjRhMyAzIDAgMSAwLTEuNiA0LjMiIH1dCiAgXTsKCiAgY29uc3QgUmFkYXIgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTkuMDcgNC45M0ExMCAxMCAwIDAgMCA2Ljk5IDMuMzQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTQgNmguMDEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIuMjkgOS42MkExMCAxMCAwIDEgMCAyMS4zMSA4LjM1IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNi4yNCA3Ljc2QTYgNiAwIDEgMCA4LjIzIDE2LjY3IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xMiAxOGguMDEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE3Ljk5IDExLjY2QTYgNiAwIDAgMSAxNS43NyAxNi42NyIgfV0sCiAgICBbImNpcmNsZSIsIHsgY3g6ICIxMiIsIGN5OiAiMTIiLCByOiAiMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMTMuNDEgMTAuNTkgNS42Ni01LjY2IiB9XQogIF07CgogIGNvbnN0IFJhZGlhdGlvbiA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xMiAxMmguMDEiIH1dLAogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTE0IDE1LjQ2NDFhNCA0IDAgMCAxLTQgMEw3LjUyNzg2IDE5Ljc0NTk3IEEgMSAxIDAgMCAwIDcuOTkzMDMgMjEuMTYyMTEgMTAgMTAgMCAwIDAgMTYuMDA2OTcgMjEuMTYyMTEgMSAxIDAgMCAwIDE2LjQ3MjE0IDE5Ljc0NTk3eiIKICAgICAgfQogICAgXSwKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk0xNiAxMmE0IDQgMCAwIDAtMi0zLjQ2NGwyLjQ3Mi00LjI4MmExIDEgMCAwIDEgMS40Ni0uMzA1IDEwIDEwIDAgMCAxIDQuMDA2IDYuOTRBMSAxIDAgMCAxIDIxIDEyeiIKICAgICAgfQogICAgXSwKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk04IDEyYTQgNCAwIDAgMSAyLTMuNDY0TDcuNTI4IDQuMjU0YTEgMSAwIDAgMC0xLjQ2LS4zMDUgMTAgMTAgMCAwIDAtNC4wMDYgNi45NEExIDEgMCAwIDAgMyAxMnoiCiAgICAgIH0KICAgIF0KICBdOwoKICBjb25zdCBSYWRpY2FsID0gWwogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTMgMTJoMy4yOGExIDEgMCAwIDEgLjk0OC42ODRsMi4yOTggNy45MzRhLjUuNSAwIDAgMCAuOTYtLjA0NEwxMy44MiA0Ljc3MUExIDEgMCAwIDEgMTQuNzkyIDRIMjEiCiAgICAgIH0KICAgIF0KICBdOwoKICBjb25zdCBSYWRpb09mZiA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xMy40MTQgMTMuNDE0YTIgMiAwIDEgMS0yLjgyOC0yLjgyOCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTYuMjQ3IDcuNzYxYTYgNiAwIDAgMSAxLjc0NCA0LjU3MiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTkuMDc1IDQuOTMzYTEwIDEwIDAgMCAxIDIuMjM0IDEwLjcyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0yIDIgMjAgMjAiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTQuOTI1IDE5LjA2N2ExMCAxMCAwIDAgMSAwLTE0LjEzNCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNy43NTMgMTYuMjM5YTYgNiAwIDAgMSAwLTguNDc4IiB9XQogIF07CgogIGNvbnN0IFJhZGlvUmVjZWl2ZXIgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNNSAxNnYyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xOSAxNnYyIiB9XSwKICAgIFsicmVjdCIsIHsgd2lkdGg6ICIyMCIsIGhlaWdodDogIjgiLCB4OiAiMiIsIHk6ICI4Iiwgcng6ICIyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xOCAxMmguMDEiIH1dCiAgXTsKCiAgY29uc3QgUmFkaW9Ub3dlciA9IFsKICAgIFsicGF0aCIsIHsgZDogIk00LjkgMTYuMUMxIDEyLjIgMSA1LjggNC45IDEuOSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNy44IDQuN2E2LjE0IDYuMTQgMCAwIDAtLjggNy41IiB9XSwKICAgIFsiY2lyY2xlIiwgeyBjeDogIjEyIiwgY3k6ICI5IiwgcjogIjIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE2LjIgNC44YzIgMiAyLjI2IDUuMTEuOCA3LjQ3IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xOS4xIDEuOWE5Ljk2IDkuOTYgMCAwIDEgMCAxNC4xIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk05LjUgMThoNSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtOCAyMiA0LTExIDQgMTEiIH1dCiAgXTsKCiAgY29uc3QgUmFkaW8gPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTYuMjQ3IDcuNzYxYTYgNiAwIDAgMSAwIDguNDc4IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xOS4wNzUgNC45MzNhMTAgMTAgMCAwIDEgMCAxNC4xMzQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTQuOTI1IDE5LjA2N2ExMCAxMCAwIDAgMSAwLTE0LjEzNCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNy43NTMgMTYuMjM5YTYgNiAwIDAgMSAwLTguNDc4IiB9XSwKICAgIFsiY2lyY2xlIiwgeyBjeDogIjEyIiwgY3k6ICIxMiIsIHI6ICIyIiB9XQogIF07CgogIGNvbnN0IFJhZGl1cyA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0yMC4zNCAxNy41MmExMCAxMCAwIDEgMC0yLjgyIDIuODIiIH1dLAogICAgWyJjaXJjbGUiLCB7IGN4OiAiMTkiLCBjeTogIjE5IiwgcjogIjIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTEzLjQxIDEzLjQxIDQuMTggNC4xOCIgfV0sCiAgICBbImNpcmNsZSIsIHsgY3g6ICIxMiIsIGN5OiAiMTIiLCByOiAiMiIgfV0KICBdOwoKICBjb25zdCBSYWluYm93ID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTIyIDE3YTEwIDEwIDAgMCAwLTIwIDAiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTYgMTdhNiA2IDAgMCAxIDEyIDAiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTEwIDE3YTIgMiAwIDAgMSA0IDAiIH1dCiAgXTsKCiAgY29uc3QgUmF0ID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTEzIDIySDRhMiAyIDAgMCAxIDAtNGgxMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTMuMjM2IDE4YTMgMyAwIDAgMC0yLjItNSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTYgOWguMDEiIH1dLAogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTE2LjgyIDMuOTRhMyAzIDAgMSAxIDMuMjM3IDQuODY4bDEuODE1IDIuNTg3YTEuNSAxLjUgMCAwIDEtMS41IDIuMWwtMi44NzItLjQ1M2EzIDMgMCAwIDAtMy41IDMiCiAgICAgIH0KICAgIF0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTcgNC45ODhhMyAzIDAgMSAwLTUuMiAyLjA1MkE3IDcgMCAwIDAgNCAxNC4wMTUgNCA0IDAgMCAwIDggMTgiIH1dCiAgXTsKCiAgY29uc3QgUmF0aW8gPSBbCiAgICBbInJlY3QiLCB7IHdpZHRoOiAiMTIiLCBoZWlnaHQ6ICIyMCIsIHg6ICI2IiwgeTogIjIiLCByeDogIjIiIH1dLAogICAgWyJyZWN0IiwgeyB3aWR0aDogIjIwIiwgaGVpZ2h0OiAiMTIiLCB4OiAiMiIsIHk6ICI2Iiwgcng6ICIyIiB9XQogIF07CgogIGNvbnN0IFJlY2VpcHRDZW50ID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDd2MTAiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE0LjgyOCAxNC44MjlhNCA0IDAgMCAxLTUuNjU2IDAgNCA0IDAgMCAxIDAtNS42NTcgNCA0IDAgMCAxIDUuNjU2IDAiIH1dLAogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTQgM2ExIDEgMCAwIDEgMS0xIDEuMyAxLjMgMCAwIDEgLjcuMmwuOTMzLjZhMS4zIDEuMyAwIDAgMCAxLjQgMGwuOTM0LS42YTEuMyAxLjMgMCAwIDEgMS40IDBsLjkzMy42YTEuMyAxLjMgMCAwIDAgMS40IDBsLjkzMy0uNmExLjMgMS4zIDAgMCAxIDEuNCAwbC45MzQuNmExLjMgMS4zIDAgMCAwIDEuNCAwbC45MzMtLjZBMS4zIDEuMyAwIDAgMSAxOSAyYTEgMSAwIDAgMSAxIDF2MThhMSAxIDAgMCAxLTEgMSAxLjMgMS4zIDAgMCAxLS43LS4ybC0uOTMzLS42YTEuMyAxLjMgMCAwIDAtMS40IDBsLS45MzQuNmExLjMgMS4zIDAgMCAxLTEuNCAwbC0uOTMzLS42YTEuMyAxLjMgMCAwIDAtMS40IDBsLS45MzMuNmExLjMgMS4zIDAgMCAxLTEuNCAwbC0uOTM0LS42YTEuMyAxLjMgMCAwIDAtMS40IDBsLS45MzMuNmExLjMgMS4zIDAgMCAxLS43LjIgMSAxIDAgMCAxLTEtMXoiCiAgICAgIH0KICAgIF0KICBdOwoKICBjb25zdCBSZWNlaXB0RXVybyA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xNS44MjggMTQuODI5YTQgNCAwIDAgMS01LjY1NiAwIDQgNCAwIDAgMSAwLTUuNjU3IDQgNCAwIDAgMSA1LjY1NiAwIiB9XSwKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk00IDNhMSAxIDAgMCAxIDEtMSAxLjMgMS4zIDAgMCAxIC43LjJsLjkzMy42YTEuMyAxLjMgMCAwIDAgMS40IDBsLjkzNC0uNmExLjMgMS4zIDAgMCAxIDEuNCAwbC45MzMuNmExLjMgMS4zIDAgMCAwIDEuNCAwbC45MzMtLjZhMS4zIDEuMyAwIDAgMSAxLjQgMGwuOTM0LjZhMS4zIDEuMyAwIDAgMCAxLjQgMGwuOTMzLS42QTEuMyAxLjMgMCAwIDEgMTkgMmExIDEgMCAwIDEgMSAxdjE4YTEgMSAwIDAgMS0xIDEgMS4zIDEuMyAwIDAgMS0uNy0uMmwtLjkzMy0uNmExLjMgMS4zIDAgMCAwLTEuNCAwbC0uOTM0LjZhMS4zIDEuMyAwIDAgMS0xLjQgMGwtLjkzMy0uNmExLjMgMS4zIDAgMCAwLTEuNCAwbC0uOTMzLjZhMS4zIDEuMyAwIDAgMS0xLjQgMGwtLjkzNC0uNmExLjMgMS4zIDAgMCAwLTEuNCAwbC0uOTMzLjZhMS4zIDEuMyAwIDAgMS0uNy4yIDEgMSAwIDAgMS0xLTF6IgogICAgICB9CiAgICBdLAogICAgWyJwYXRoIiwgeyBkOiAiTTggMTJoNSIgfV0KICBdOwoKICBjb25zdCBSZWNlaXB0SW5kaWFuUnVwZWUgPSBbCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNNCAzYTEgMSAwIDAgMSAxLTEgMS4zIDEuMyAwIDAgMSAuNy4ybC45MzMuNmExLjMgMS4zIDAgMCAwIDEuNCAwbC45MzQtLjZhMS4zIDEuMyAwIDAgMSAxLjQgMGwuOTMzLjZhMS4zIDEuMyAwIDAgMCAxLjQgMGwuOTMzLS42YTEuMyAxLjMgMCAwIDEgMS40IDBsLjkzNC42YTEuMyAxLjMgMCAwIDAgMS40IDBsLjkzMy0uNkExLjMgMS4zIDAgMCAxIDE5IDJhMSAxIDAgMCAxIDEgMXYxOGExIDEgMCAwIDEtMSAxIDEuMyAxLjMgMCAwIDEtLjctLjJsLS45MzMtLjZhMS4zIDEuMyAwIDAgMC0xLjQgMGwtLjkzNC42YTEuMyAxLjMgMCAwIDEtMS40IDBsLS45MzMtLjZhMS4zIDEuMyAwIDAgMC0xLjQgMGwtLjkzMy42YTEuMyAxLjMgMCAwIDEtMS40IDBsLS45MzQtLjZhMS4zIDEuMyAwIDAgMC0xLjQgMGwtLjkzMy42YTEuMyAxLjMgMCAwIDEtLjcuMiAxIDEgMCAwIDEtMS0xeiIKICAgICAgfQogICAgXSwKICAgIFsicGF0aCIsIHsgZDogIk04IDExaDgiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTggN2g4IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk05IDdhNCA0IDAgMCAxIDAgOEg4bDMgMiIgfV0KICBdOwoKICBjb25zdCBSZWNlaXB0SmFwYW5lc2VZZW4gPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJtMTIgMTAgMy0zIiB9XSwKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk00IDNhMSAxIDAgMCAxIDEtMSAxLjMgMS4zIDAgMCAxIC43LjJsLjkzMy42YTEuMyAxLjMgMCAwIDAgMS40IDBsLjkzNC0uNmExLjMgMS4zIDAgMCAxIDEuNCAwbC45MzMuNmExLjMgMS4zIDAgMCAwIDEuNCAwbC45MzMtLjZhMS4zIDEuMyAwIDAgMSAxLjQgMGwuOTM0LjZhMS4zIDEuMyAwIDAgMCAxLjQgMGwuOTMzLS42QTEuMyAxLjMgMCAwIDEgMTkgMmExIDEgMCAwIDEgMSAxdjE4YTEgMSAwIDAgMS0xIDEgMS4zIDEuMyAwIDAgMS0uNy0uMmwtLjkzMy0uNmExLjMgMS4zIDAgMCAwLTEuNCAwbC0uOTM0LjZhMS4zIDEuMyAwIDAgMS0xLjQgMGwtLjkzMy0uNmExLjMgMS4zIDAgMCAwLTEuNCAwbC0uOTMzLjZhMS4zIDEuMyAwIDAgMS0xLjQgMGwtLjkzNC0uNmExLjMgMS4zIDAgMCAwLTEuNCAwbC0uOTMzLjZhMS4zIDEuMyAwIDAgMS0uNy4yIDEgMSAwIDAgMS0xLTF6IgogICAgICB9CiAgICBdLAogICAgWyJwYXRoIiwgeyBkOiAiTTkgMTFoNiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNOSAxNWg2IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm05IDcgMyAzdjciIH1dCiAgXTsKCiAgY29uc3QgUmVjZWlwdFJ1c3NpYW5SdWJsZSA9IFsKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk00IDNhMSAxIDAgMCAxIDEtMSAxLjMgMS4zIDAgMCAxIC43LjJsLjkzMy42YTEuMyAxLjMgMCAwIDAgMS40IDBsLjkzNC0uNmExLjMgMS4zIDAgMCAxIDEuNCAwbC45MzMuNmExLjMgMS4zIDAgMCAwIDEuNCAwbC45MzMtLjZhMS4zIDEuMyAwIDAgMSAxLjQgMGwuOTM0LjZhMS4zIDEuMyAwIDAgMCAxLjQgMGwuOTMzLS42QTEuMyAxLjMgMCAwIDEgMTkgMmExIDEgMCAwIDEgMSAxdjE4YTEgMSAwIDAgMS0xIDEgMS4zIDEuMyAwIDAgMS0uNy0uMmwtLjkzMy0uNmExLjMgMS4zIDAgMCAwLTEuNCAwbC0uOTM0LjZhMS4zIDEuMyAwIDAgMS0xLjQgMGwtLjkzMy0uNmExLjMgMS4zIDAgMCAwLTEuNCAwbC0uOTMzLjZhMS4zIDEuMyAwIDAgMS0xLjQgMGwtLjkzNC0uNmExLjMgMS4zIDAgMCAwLTEuNCAwbC0uOTMzLjZhMS4zIDEuMyAwIDAgMS0uNy4yIDEgMSAwIDAgMS0xLTF6IgogICAgICB9CiAgICBdLAogICAgWyJwYXRoIiwgeyBkOiAiTTggMTFoNWEyIDIgMCAwIDAgMC00aC0zdjEwIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk04IDE1aDUiIH1dCiAgXTsKCiAgY29uc3QgUmVjZWlwdFBvdW5kU3RlcmxpbmcgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTAgMTdWOS41YTEgMSAwIDAgMSA1IDAiIH1dLAogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTQgM2ExIDEgMCAwIDEgMS0xIDEuMyAxLjMgMCAwIDEgLjcuMmwuOTMzLjZhMS4zIDEuMyAwIDAgMCAxLjQgMGwuOTM0LS42YTEuMyAxLjMgMCAwIDEgMS40IDBsLjkzMy42YTEuMyAxLjMgMCAwIDAgMS40IDBsLjkzMy0uNmExLjMgMS4zIDAgMCAxIDEuNCAwbC45MzQuNmExLjMgMS4zIDAgMCAwIDEuNCAwbC45MzMtLjZBMS4zIDEuMyAwIDAgMSAxOSAyYTEgMSAwIDAgMSAxIDF2MThhMSAxIDAgMCAxLTEgMSAxLjMgMS4zIDAgMCAxLS43LS4ybC0uOTMzLS42YTEuMyAxLjMgMCAwIDAtMS40IDBsLS45MzQuNmExLjMgMS4zIDAgMCAxLTEuNCAwbC0uOTMzLS42YTEuMyAxLjMgMCAwIDAtMS40IDBsLS45MzMuNmExLjMgMS4zIDAgMCAxLTEuNCAwbC0uOTM0LS42YTEuMyAxLjMgMCAwIDAtMS40IDBsLS45MzMuNmExLjMgMS4zIDAgMCAxLS43LjIgMSAxIDAgMCAxLTEtMXoiCiAgICAgIH0KICAgIF0sCiAgICBbInBhdGgiLCB7IGQ6ICJNOCAxM2g1IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk04IDE3aDciIH1dCiAgXTsKCiAgY29uc3QgUmVjZWlwdFN3aXNzRnJhbmMgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTAgMTFoNCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTAgMTdWN2g1IiB9XSwKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk00IDNhMSAxIDAgMCAxIDEtMSAxLjMgMS4zIDAgMCAxIC43LjJsLjkzMy42YTEuMyAxLjMgMCAwIDAgMS40IDBsLjkzNC0uNmExLjMgMS4zIDAgMCAxIDEuNCAwbC45MzMuNmExLjMgMS4zIDAgMCAwIDEuNCAwbC45MzMtLjZhMS4zIDEuMyAwIDAgMSAxLjQgMGwuOTM0LjZhMS4zIDEuMyAwIDAgMCAxLjQgMGwuOTMzLS42QTEuMyAxLjMgMCAwIDEgMTkgMmExIDEgMCAwIDEgMSAxdjE4YTEgMSAwIDAgMS0xIDEgMS4zIDEuMyAwIDAgMS0uNy0uMmwtLjkzMy0uNmExLjMgMS4zIDAgMCAwLTEuNCAwbC0uOTM0LjZhMS4zIDEuMyAwIDAgMS0xLjQgMGwtLjkzMy0uNmExLjMgMS4zIDAgMCAwLTEuNCAwbC0uOTMzLjZhMS4zIDEuMyAwIDAgMS0xLjQgMGwtLjkzNC0uNmExLjMgMS4zIDAgMCAwLTEuNCAwbC0uOTMzLjZhMS4zIDEuMyAwIDAgMS0uNy4yIDEgMSAwIDAgMS0xLTF6IgogICAgICB9CiAgICBdLAogICAgWyJwYXRoIiwgeyBkOiAiTTggMTVoNSIgfV0KICBdOwoKICBjb25zdCBSZWNlaXB0VGV4dCA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xMyAxNkg4IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNCA4SDgiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE2IDEySDgiIH1dLAogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTQgM2ExIDEgMCAwIDEgMS0xIDEuMyAxLjMgMCAwIDEgLjcuMmwuOTMzLjZhMS4zIDEuMyAwIDAgMCAxLjQgMGwuOTM0LS42YTEuMyAxLjMgMCAwIDEgMS40IDBsLjkzMy42YTEuMyAxLjMgMCAwIDAgMS40IDBsLjkzMy0uNmExLjMgMS4zIDAgMCAxIDEuNCAwbC45MzQuNmExLjMgMS4zIDAgMCAwIDEuNCAwbC45MzMtLjZBMS4zIDEuMyAwIDAgMSAxOSAyYTEgMSAwIDAgMSAxIDF2MThhMSAxIDAgMCAxLTEgMSAxLjMgMS4zIDAgMCAxLS43LS4ybC0uOTMzLS42YTEuMyAxLjMgMCAwIDAtMS40IDBsLS45MzQuNmExLjMgMS4zIDAgMCAxLTEuNCAwbC0uOTMzLS42YTEuMyAxLjMgMCAwIDAtMS40IDBsLS45MzMuNmExLjMgMS4zIDAgMCAxLTEuNCAwbC0uOTM0LS42YTEuMyAxLjMgMCAwIDAtMS40IDBsLS45MzMuNmExLjMgMS4zIDAgMCAxLS43LjIgMSAxIDAgMCAxLTEtMXoiCiAgICAgIH0KICAgIF0KICBdOwoKICBjb25zdCBSZWNlaXB0VHVya2lzaExpcmEgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTAgN3YxMGE1IDUgMCAwIDAgNS01IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0xNCA4LTYgMyIgfV0sCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNNCAzYTEgMSAwIDAgMSAxLTEgMS4zIDEuMyAwIDAgMSAuNy4ybC45MzMuNmExLjMgMS4zIDAgMCAwIDEuNCAwbC45MzQtLjZhMS4zIDEuMyAwIDAgMSAxLjQgMGwuOTMzLjZhMS4zIDEuMyAwIDAgMCAxLjQgMGwuOTMzLS42YTEuMyAxLjMgMCAwIDEgMS40IDBsLjkzNC42YTEuMyAxLjMgMCAwIDAgMS40IDBsLjkzMy0uNkExLjMgMS4zIDAgMCAxIDE5IDJhMSAxIDAgMCAxIDEgMXYxOGExIDEgMCAwIDEtMSAxIDEuMyAxLjMgMCAwIDEtLjctLjJsLS45MzMtLjZhMS4zIDEuMyAwIDAgMC0xLjQgMGwtLjkzNC42YTEuMyAxLjMgMCAwIDEtMS40IDBsLS45MzMtLjZhMS4zIDEuMyAwIDAgMC0xLjQgMGwtLjkzMy42YTEuMyAxLjMgMCAwIDEtMS40IDBsLS45MzQtLjZhMS4zIDEuMyAwIDAgMC0xLjQgMGwtLjkzMy42YTEuMyAxLjMgMCAwIDEtLjcuMiAxIDEgMCAwIDEtMS0xeiIKICAgICAgfQogICAgXQogIF07CgogIGNvbnN0IFJlY2VpcHQgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgMTdWNyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTYgOGgtNmEyIDIgMCAwIDAgMCA0aDRhMiAyIDAgMCAxIDAgNEg4IiB9XSwKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk00IDNhMSAxIDAgMCAxIDEtMSAxLjMgMS4zIDAgMCAxIC43LjJsLjkzMy42YTEuMyAxLjMgMCAwIDAgMS40IDBsLjkzNC0uNmExLjMgMS4zIDAgMCAxIDEuNCAwbC45MzMuNmExLjMgMS4zIDAgMCAwIDEuNCAwbC45MzMtLjZhMS4zIDEuMyAwIDAgMSAxLjQgMGwuOTM0LjZhMS4zIDEuMyAwIDAgMCAxLjQgMGwuOTMzLS42QTEuMyAxLjMgMCAwIDEgMTkgMmExIDEgMCAwIDEgMSAxdjE4YTEgMSAwIDAgMS0xIDEgMS4zIDEuMyAwIDAgMS0uNy0uMmwtLjkzMy0uNmExLjMgMS4zIDAgMCAwLTEuNCAwbC0uOTM0LjZhMS4zIDEuMyAwIDAgMS0xLjQgMGwtLjkzMy0uNmExLjMgMS4zIDAgMCAwLTEuNCAwbC0uOTMzLjZhMS4zIDEuMyAwIDAgMS0xLjQgMGwtLjkzNC0uNmExLjMgMS4zIDAgMCAwLTEuNCAwbC0uOTMzLjZhMS4zIDEuMyAwIDAgMS0uNy4yIDEgMSAwIDAgMS0xLTF6IgogICAgICB9CiAgICBdCiAgXTsKCiAgY29uc3QgUmVjdGFuZ2xlQ2lyY2xlID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTE0IDR2MTZIM2ExIDEgMCAwIDEtMS0xVjVhMSAxIDAgMCAxIDEtMXoiIH1dLAogICAgWyJjaXJjbGUiLCB7IGN4OiAiMTQiLCBjeTogIjEyIiwgcjogIjgiIH1dCiAgXTsKCiAgY29uc3QgUmVjdGFuZ2xlRWxsaXBzaXMgPSBbCiAgICBbInJlY3QiLCB7IHdpZHRoOiAiMjAiLCBoZWlnaHQ6ICIxMiIsIHg6ICIyIiwgeTogIjYiLCByeDogIjIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDEyaC4wMSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTcgMTJoLjAxIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk03IDEyaC4wMSIgfV0KICBdOwoKICBjb25zdCBSZWN0YW5nbGVHb2dnbGVzID0gWwogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTIwIDZhMiAyIDAgMCAxIDIgMnY4YTIgMiAwIDAgMS0yIDJoLTRhMiAyIDAgMCAxLTEuNi0uOGwtMS42LTIuMTNhMSAxIDAgMCAwLTEuNiAwTDkuNiAxNy4yQTIgMiAwIDAgMSA4IDE4SDRhMiAyIDAgMCAxLTItMlY4YTIgMiAwIDAgMSAyLTJ6IgogICAgICB9CiAgICBdCiAgXTsKCiAgY29uc3QgUmVjdGFuZ2xlSG9yaXpvbnRhbCA9IFsKICAgIFsicmVjdCIsIHsgd2lkdGg6ICIyMCIsIGhlaWdodDogIjEyIiwgeDogIjIiLCB5OiAiNiIsIHJ4OiAiMiIgfV0KICBdOwoKICBjb25zdCBSZWN0YW5nbGVWZXJ0aWNhbCA9IFsKICAgIFsicmVjdCIsIHsgd2lkdGg6ICIxMiIsIGhlaWdodDogIjIwIiwgeDogIjYiLCB5OiAiMiIsIHJ4OiAiMiIgfV0KICBdOwoKICBjb25zdCBSZWN5Y2xlID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTcgMTlINC44MTVhMS44MyAxLjgzIDAgMCAxLTEuNTctLjg4MSAxLjc4NSAxLjc4NSAwIDAgMS0uMDA0LTEuNzg0TDcuMTk2IDkuNSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTEgMTloOC4yMDNhMS44MyAxLjgzIDAgMCAwIDEuNTU2LS44OSAxLjc4NCAxLjc4NCAwIDAgMCAwLTEuNzc1bC0xLjIyNi0yLjEyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0xNCAxNi0zIDMgMyAzIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk04LjI5MyAxMy41OTYgNy4xOTYgOS41IDMuMSAxMC41OTgiIH1dLAogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAibTkuMzQ0IDUuODExIDEuMDkzLTEuODkyQTEuODMgMS44MyAwIDAgMSAxMS45ODUgM2ExLjc4NCAxLjc4NCAwIDAgMSAxLjU0Ni44ODhsMy45NDMgNi44NDMiCiAgICAgIH0KICAgIF0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMTMuMzc4IDkuNjMzIDQuMDk2IDEuMDk4IDEuMDk3LTQuMDk2IiB9XQogIF07CgogIGNvbnN0IFJlZG8yID0gWwogICAgWyJwYXRoIiwgeyBkOiAibTE1IDE0IDUtNS01LTUiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIwIDlIOS41QTUuNSA1LjUgMCAwIDAgNCAxNC41QTUuNSA1LjUgMCAwIDAgOS41IDIwSDEzIiB9XQogIF07CgogIGNvbnN0IFJlZG8gPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMjEgN3Y2aC02IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0zIDE3YTkgOSAwIDAgMSA5LTkgOSA5IDAgMCAxIDYgMi4zbDMgMi43IiB9XQogIF07CgogIGNvbnN0IFJlZG9Eb3QgPSBbCiAgICBbImNpcmNsZSIsIHsgY3g6ICIxMiIsIGN5OiAiMTciLCByOiAiMSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMjEgN3Y2aC02IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0zIDE3YTkgOSAwIDAgMSA5LTkgOSA5IDAgMCAxIDYgMi4zbDMgMi43IiB9XQogIF07CgogIGNvbnN0IFJlZnJlc2hDY3cgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMjEgMTJhOSA5IDAgMCAwLTktOSA5Ljc1IDkuNzUgMCAwIDAtNi43NCAyLjc0TDMgOCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMyAzdjVoNSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMyAxMmE5IDkgMCAwIDAgOSA5IDkuNzUgOS43NSAwIDAgMCA2Ljc0LTIuNzRMMjEgMTYiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE2IDE2aDV2NSIgfV0KICBdOwoKICBjb25zdCBSZWZyZXNoQ2N3RG90ID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTIxIDEyYTkgOSAwIDAgMC05LTkgOS43NSA5Ljc1IDAgMCAwLTYuNzQgMi43NEwzIDgiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTMgM3Y1aDUiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTMgMTJhOSA5IDAgMCAwIDkgOSA5Ljc1IDkuNzUgMCAwIDAgNi43NC0yLjc0TDIxIDE2IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNiAxNmg1djUiIH1dLAogICAgWyJjaXJjbGUiLCB7IGN4OiAiMTIiLCBjeTogIjEyIiwgcjogIjEiIH1dCiAgXTsKCiAgY29uc3QgUmVmcmVzaEN3T2ZmID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTIxIDhMMTguNzQgNS43NEE5Ljc1IDkuNzUgMCAwIDAgMTIgM0MxMSAzIDEwLjAzIDMuMTYgOS4xMyAzLjQ3IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk04IDE2SDN2NSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMyAxMkMzIDkuNTEgNCA3LjI2IDUuNjQgNS42NCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMyAxNiAyLjI2IDIuMjZBOS43NSA5Ljc1IDAgMCAwIDEyIDIxYzIuNDkgMCA0Ljc0LTEgNi4zNi0yLjY0IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yMSAxMmMwIDEtLjE2IDEuOTctLjQ3IDIuODciIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIxIDN2NWgtNSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMjIgMjIgMiAyIiB9XQogIF07CgogIGNvbnN0IFJlZnJlc2hDdyA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0zIDEyYTkgOSAwIDAgMSA5LTkgOS43NSA5Ljc1IDAgMCAxIDYuNzQgMi43NEwyMSA4IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yMSAzdjVoLTUiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIxIDEyYTkgOSAwIDAgMS05IDkgOS43NSA5Ljc1IDAgMCAxLTYuNzQtMi43NEwzIDE2IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk04IDE2SDN2NSIgfV0KICBdOwoKICBjb25zdCBSZWZyaWdlcmF0b3IgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNNSA2YTQgNCAwIDAgMSA0LTRoNmE0IDQgMCAwIDEgNCA0djE0YTIgMiAwIDAgMS0yIDJIN2EyIDIgMCAwIDEtMi0yVjZaIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk01IDEwaDE0IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNSA3djYiIH1dCiAgXTsKCiAgY29uc3QgUmVnZXggPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTcgM3YxMCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMTIuNjcgNS41IDguNjYgNSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMTIuNjcgMTAuNSA4LjY2LTUiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTkgMTdhMiAyIDAgMCAwLTItMkg1YTIgMiAwIDAgMC0yIDJ2MmEyIDIgMCAwIDAgMiAyaDJhMiAyIDAgMCAwIDItMnYtMnoiIH1dCiAgXTsKCiAgY29uc3QgUmVtb3ZlRm9ybWF0dGluZyA9IFsKICAgIFsicGF0aCIsIHsgZDogIk00IDdWNGgxNnYzIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk01IDIwaDYiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTEzIDQgOCAyMCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMTUgMTUgNSA1IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0yMCAxNS01IDUiIH1dCiAgXTsKCiAgY29uc3QgUmVwZWF0MSA9IFsKICAgIFsicGF0aCIsIHsgZDogIm0xNyAyIDQgNC00IDQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTMgMTF2LTFhNCA0IDAgMCAxIDQtNGgxNCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtNyAyMi00LTQgNC00IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yMSAxM3YxYTQgNCAwIDAgMS00IDRIMyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTEgMTBoMXY0IiB9XQogIF07CgogIGNvbnN0IFJlcGVhdDIgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJtMiA5IDMtMyAzIDMiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTEzIDE4SDdhMiAyIDAgMCAxLTItMlY2IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0yMiAxNS0zIDMtMy0zIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xMSA2aDZhMiAyIDAgMCAxIDIgMnYxMCIgfV0KICBdOwoKICBjb25zdCBSZXBlYXRPZmYgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTEuNjU2IDZIMjFsLTQtNCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTcuODk4IDE3Ljg5OEE0IDQgMCAwIDEgMTcgMThIM2w0LTQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTIgMiAyMCAyMCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMjEgMTN2MWE0IDQgMCAwIDEtLjE3MSAxLjE1OSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMjEgNi00IDQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTMgMTF2LTFhNCA0IDAgMCAxIDMuMTAyLTMuODk4IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm03IDIyLTQtNCIgfV0KICBdOwoKICBjb25zdCBSZXBlYXQgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJtMTcgMiA0IDQtNCA0IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0zIDExdi0xYTQgNCAwIDAgMSA0LTRoMTQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTcgMjItNC00IDQtNCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMjEgMTN2MWE0IDQgMCAwIDEtNCA0SDMiIH1dCiAgXTsKCiAgY29uc3QgUmVwbGFjZSA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xNCA0YTEgMSAwIDAgMSAxLTEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE1IDEwYTEgMSAwIDAgMS0xLTEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIxIDRhMSAxIDAgMCAwLTEtMSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMjEgOWExIDEgMCAwIDEtMSAxIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0zIDcgMyAzIDMtMyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNiAxMFY1YTIgMiAwIDAgMSAyLTJoMiIgfV0sCiAgICBbInJlY3QiLCB7IHg6ICIzIiwgeTogIjE0Iiwgd2lkdGg6ICI3IiwgaGVpZ2h0OiAiNyIsIHJ4OiAiMSIgfV0KICBdOwoKICBjb25zdCBSZXBsYWNlQWxsID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTE0IDE0YTEgMSAwIDAgMSAxIDF2NWExIDEgMCAwIDEtMSAxIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNCA0YTEgMSAwIDAgMSAxLTEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE1IDEwYTEgMSAwIDAgMS0xLTEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE5IDE0YTEgMSAwIDAgMSAxIDF2NWExIDEgMCAwIDEtMSAxIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yMSA0YTEgMSAwIDAgMC0xLTEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIxIDlhMSAxIDAgMCAxLTEgMSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMyA3IDMgMyAzLTMiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTYgMTBWNWEyIDIgMCAwIDEgMi0yaDIiIH1dLAogICAgWyJyZWN0IiwgeyB4OiAiMyIsIHk6ICIxNCIsIHdpZHRoOiAiNyIsIGhlaWdodDogIjciLCByeDogIjEiIH1dCiAgXTsKCiAgY29uc3QgUmVwbHlBbGwgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJtMTIgMTctNS01IDUtNSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMjIgMTh2LTJhNCA0IDAgMCAwLTQtNEg3IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm03IDE3LTUtNSA1LTUiIH1dCiAgXTsKCiAgY29uc3QgUmVwbHkgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMjAgMTh2LTJhNCA0IDAgMCAwLTQtNEg0IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm05IDE3LTUtNSA1LTUiIH1dCiAgXTsKCiAgY29uc3QgUmV3aW5kID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDZhMiAyIDAgMCAwLTMuNDE0LTEuNDE0bC02IDZhMiAyIDAgMCAwIDAgMi44MjhsNiA2QTIgMiAwIDAgMCAxMiAxOHoiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIyIDZhMiAyIDAgMCAwLTMuNDE0LTEuNDE0bC02IDZhMiAyIDAgMCAwIDAgMi44MjhsNiA2QTIgMiAwIDAgMCAyMiAxOHoiIH1dCiAgXTsKCiAgY29uc3QgUmliYm9uID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDExLjIyQzExIDkuOTk3IDEwIDkgMTAgOGEyIDIgMCAwIDEgNCAwYzAgMS0uOTk4IDIuMDAyLTIuMDEgMy4yMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMTIgMTggMi41Ny0zLjUiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTYuMjQzIDkuMDE2YTcgNyAwIDAgMSAxMS41MDctLjAwOSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNOS4zNSAxNC41MyAxMiAxMS4yMiIgfV0sCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNOS4zNSAxNC41M0M3LjcyOCAxMi4yNDYgNiAxMC4yMjEgNiA3YTYgNSAwIDAgMSAxMiAwYy0uMDA1IDMuMjItMS43NzggNS4yMzUtMy40MyA3LjVsMy41NTcgNC41MjdhMSAxIDAgMCAxLS4yMDMgMS40M2wtMS44OTQgMS4zNmExIDEgMCAwIDEtMS4zODQtLjIxNUwxMiAxOGwtMi42NzkgMy41OTNhMSAxIDAgMCAxLTEuMzkuMjEzbC0xLjg2NS0xLjM1M2ExIDEgMCAwIDEtLjIwMy0xLjQyMnoiCiAgICAgIH0KICAgIF0KICBdOwoKICBjb25zdCBSb2FkID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDE3djQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDVWMyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgOXYzIiB9XSwKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk0yLjA3NyAxOC40NDlBMiAyIDAgMCAwIDQgMjFoMTZhMiAyIDAgMCAwIDEuOTI0LTIuNTVsLTQtMTRBMiAyIDAgMCAwIDE2IDNIOGEyIDIgMCAwIDAtMS45MjQgMS40NXoiCiAgICAgIH0KICAgIF0KICBdOwoKICBjb25zdCBSb2NrZXQgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgMTV2NXMzLjAzLS41NSA0LTJjMS4wOC0xLjYyIDAtNSAwLTUiIH1dLAogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTQuNSAxNi41Yy0xLjUgMS4yNi0yIDUtMiA1czMuNzQtLjUgNS0yYy43MS0uODQuNy0yLjEzLS4wOS0yLjkxYTIuMTggMi4xOCAwIDAgMC0yLjkxLS4wOSIKICAgICAgfQogICAgXSwKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk05IDEyYTIyIDIyIDAgMCAxIDItMy45NUExMi44OCAxMi44OCAwIDAgMSAyMiAyYzAgMi43Mi0uNzggNy41LTYgMTFhMjIuNCAyMi40IDAgMCAxLTQgMnoiCiAgICAgIH0KICAgIF0sCiAgICBbInBhdGgiLCB7IGQ6ICJNOSAxMkg0cy41NS0zLjAzIDItNGMxLjYyLTEuMDggNSAuMDUgNSAuMDUiIH1dCiAgXTsKCiAgY29uc3QgUm9ja2luZ0NoYWlyID0gWwogICAgWyJwYXRoIiwgeyBkOiAibTE1IDEzIDMuNzA4IDcuNDE2IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0zIDE5YTE1IDE1IDAgMCAwIDE4IDAiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTMgMiAzLjIxIDkuNjMzQTIgMiAwIDAgMCA4LjEwOSAxM0gxOCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtOSAxMy0zLjcwOCA3LjQxNiIgfV0KICBdOwoKICBjb25zdCBSb2xsZXJDb2FzdGVyID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTYgMTlWNSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTAgMTlWNi44IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNCAxOXYtNy44IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xOCA1djQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE4IDE5di02IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yMiAxOVY5IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yIDE5VjlhNCA0IDAgMCAxIDQtNGMyIDAgNCAxLjMzIDYgNHM0IDQgNiA0YTQgNCAwIDEgMC0zLTYuNjUiIH1dCiAgXTsKCiAgY29uc3QgUm9zZSA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xNyAxMGgtMWE0IDQgMCAxIDEgNC00di41MzQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE3IDZoMWE0IDQgMCAwIDEgMS40MiA3Ljc0bC0yLjI5Ljg3YTYgNiAwIDAgMS01LjMzOS0xMC42OGwyLjA2OS0xLjMxIiB9XSwKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7IGQ6ICJNNC41IDE3YzIuOC0uNSA0LjQgMCA1LjUuOHMxLjggMi4yIDIuMyAzLjdjLTIgLjQtMy41LjQtNC44LS4zLTEuMi0uNi0yLjMtMS45LTMtNC4yIiB9CiAgICBdLAogICAgWyJwYXRoIiwgeyBkOiAiTTkuNzcgMTJDNCAxNSAyIDIyIDIgMjIiIH1dLAogICAgWyJjaXJjbGUiLCB7IGN4OiAiMTciLCBjeTogIjgiLCByOiAiMiIgfV0KICBdOwoKICBjb25zdCBSb3RhdGUzZCA9IFsKICAgIFsicGF0aCIsIHsgZDogIm0xNS4xOTQgMTMuNzA3IDMuODE0IDEuODYtMS44NiAzLjgxNCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTYuNDcyMTQgNy41Mjc4NiBBIDUgMTAgMCAxIDAgMTMgMjEuNzk3OTYiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIxLjc5Nzk2IDExIEEgMTAgNSAwIDEgMCAxOSAxNS41NzA3MSIgfV0KICBdOwoKICBjb25zdCBSb3RhdGVDY3dDbG9jayA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0zIDEyYTkgOSAwIDEgMCA5LTkgOS43NSA5Ljc1IDAgMCAwLTYuNzQgMi43NEwzIDgiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTMgM3Y1aDUiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDd2NWw0IDIiIH1dCiAgXTsKCiAgY29uc3QgUm90YXRlQ2N3S2V5ID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDd2NiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgOWgyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0zIDEyYTkgOSAwIDEgMCA5LTkgOS43NCA5Ljc0IDAgMCAwLTYuNzQgMi43NEwzIDgiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTMgM3Y1aDUiIH1dLAogICAgWyJjaXJjbGUiLCB7IGN4OiAiMTIiLCBjeTogIjE1IiwgcjogIjIiIH1dCiAgXTsKCiAgY29uc3QgUm90YXRlQ2N3U3F1YXJlID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTIwIDlWN2EyIDIgMCAwIDAtMi0yaC02IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0xNSAyLTMgMyAzIDMiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIwIDEzdjVhMiAyIDAgMCAxLTIgMkg2YTIgMiAwIDAgMS0yLTJWN2EyIDIgMCAwIDEgMi0yaDIiIH1dCiAgXTsKCiAgY29uc3QgUm90YXRlQ2N3ID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTMgMTJhOSA5IDAgMSAwIDktOSA5Ljc1IDkuNzUgMCAwIDAtNi43NCAyLjc0TDMgOCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMyAzdjVoNSIgfV0KICBdOwoKICBjb25zdCBSb3RhdGVDd0ZhZGluZ0Nsb2NrID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDNhOS43NSA5Ljc1IDAgMCAxIDYuNzQgMi43NCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTguNzQgNS43NCAyMSA4IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yMSA4VjMiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTcuNSAxOS43OTRjLTYtMy40NjQtNi0xMi4xMjQgMC0xNS41ODgiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTcuNSA0LjIwNkE5IDkgMCAwIDEgMTIgMyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgN3Y1bDQgMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTQgMjAuNzc1QTkgOSAwIDAgMSAxMiAyMSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTkgMTcuNjU2YTkgOSAwIDAgMS0xLjUgMS40NTYiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIxIDEyYTkgOSAwIDAgMS0uMjI4IDIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIxIDhoLTUiIH1dCiAgXTsKCiAgY29uc3QgUm90YXRlQ3dTcXVhcmUgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgNUg2YTIgMiAwIDAgMC0yIDJ2MyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtOSA4IDMtMy0zLTMiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTQgMTR2NGEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJWN2EyIDIgMCAwIDAtMi0yaC0yIiB9XQogIF07CgogIGNvbnN0IFJvdGF0ZUN3ID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTIxIDEyYTkgOSAwIDEgMS05LTljMi41MiAwIDQuOTMgMSA2Ljc0IDIuNzRMMjEgOCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMjEgM3Y1aC01IiB9XQogIF07CgogIGNvbnN0IFJvdXRlT2ZmID0gWwogICAgWyJjaXJjbGUiLCB7IGN4OiAiNiIsIGN5OiAiMTkiLCByOiAiMyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNOSAxOWg4LjVjLjQgMCAuOS0uMSAxLjMtLjIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTUuMiA1LjJBMy41IDMuNTMgMCAwIDAgNi41IDEySDEyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0yIDIgMjAgMjAiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIxIDE1LjNhMy41IDMuNSAwIDAgMC0zLjMtMy4zIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNSA1aC00LjMiIH1dLAogICAgWyJjaXJjbGUiLCB7IGN4OiAiMTgiLCBjeTogIjUiLCByOiAiMyIgfV0KICBdOwoKICBjb25zdCBSb3V0ZSA9IFsKICAgIFsiY2lyY2xlIiwgeyBjeDogIjYiLCBjeTogIjE5IiwgcjogIjMiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTkgMTloOC41YTMuNSAzLjUgMCAwIDAgMC03aC0xMWEzLjUgMy41IDAgMCAxIDAtN0gxNSIgfV0sCiAgICBbImNpcmNsZSIsIHsgY3g6ICIxOCIsIGN5OiAiNSIsIHI6ICIzIiB9XQogIF07CgogIGNvbnN0IFJvdXRlciA9IFsKICAgIFsicmVjdCIsIHsgd2lkdGg6ICIyMCIsIGhlaWdodDogIjgiLCB4OiAiMiIsIHk6ICIxNCIsIHJ4OiAiMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNi4wMSAxOEg2IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xMC4wMSAxOEgxMCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTUgMTB2NCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTcuODQgNy4xN2E0IDQgMCAwIDAtNS42NiAwIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yMC42NiA0LjM0YTggOCAwIDAgMC0xMS4zMSAwIiB9XQogIF07CgogIGNvbnN0IFJvd3MyID0gWwogICAgWyJyZWN0IiwgeyB3aWR0aDogIjE4IiwgaGVpZ2h0OiAiMTgiLCB4OiAiMyIsIHk6ICIzIiwgcng6ICIyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0zIDEyaDE4IiB9XQogIF07CgogIGNvbnN0IFJvd3MzID0gWwogICAgWyJyZWN0IiwgeyB3aWR0aDogIjE4IiwgaGVpZ2h0OiAiMTgiLCB4OiAiMyIsIHk6ICIzIiwgcng6ICIyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yMSA5SDMiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIxIDE1SDMiIH1dCiAgXTsKCiAgY29uc3QgUm93czQgPSBbCiAgICBbInJlY3QiLCB7IHdpZHRoOiAiMTgiLCBoZWlnaHQ6ICIxOCIsIHg6ICIzIiwgeTogIjMiLCByeDogIjIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIxIDcuNUgzIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yMSAxMkgzIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yMSAxNi41SDMiIH1dCiAgXTsKCiAgY29uc3QgUnNzID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTQgMTFhOSA5IDAgMCAxIDkgOSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNCA0YTE2IDE2IDAgMCAxIDE2IDE2IiB9XSwKICAgIFsiY2lyY2xlIiwgeyBjeDogIjUiLCBjeTogIjE5IiwgcjogIjEiIH1dCiAgXTsKCiAgY29uc3QgUnVsZXJEaW1lbnNpb25MaW5lID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTEwIDE1di0zIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNCAxNXYtMyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTggMTV2LTMiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIgOFY0IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yMiA2SDIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIyIDhWNCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNiAxNXYtMyIgfV0sCiAgICBbInJlY3QiLCB7IHg6ICIyIiwgeTogIjEyIiwgd2lkdGg6ICIyMCIsIGhlaWdodDogIjgiLCByeDogIjIiIH1dCiAgXTsKCiAgY29uc3QgUnVsZXIgPSBbCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMjEuMyAxNS4zYTIuNCAyLjQgMCAwIDEgMCAzLjRsLTIuNiAyLjZhMi40IDIuNCAwIDAgMS0zLjQgMEwyLjcgOC43YTIuNDEgMi40MSAwIDAgMSAwLTMuNGwyLjYtMi42YTIuNDEgMi40MSAwIDAgMSAzLjQgMFoiCiAgICAgIH0KICAgIF0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMTQuNSAxMi41IDItMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMTEuNSA5LjUgMi0yIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm04LjUgNi41IDItMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMTcuNSAxNS41IDItMiIgfV0KICBdOwoKICBjb25zdCBSdXNzaWFuUnVibGUgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNNiAxMWg4YTQgNCAwIDAgMCAwLThIOXYxOCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNiAxNWg4IiB9XQogIF07CgogIGNvbnN0IFNhaWxib2F0ID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTEwIDJ2MTUiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTcgMjJhNCA0IDAgMCAxLTQtNCAxIDEgMCAwIDEgMS0xaDE2YTEgMSAwIDAgMSAxIDEgNCA0IDAgMCAxLTQgNHoiIH1dLAogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsgZDogIk05LjE1OSAyLjQ2YTEgMSAwIDAgMSAxLjUyMS0uMTkzbDkuOTc3IDguOThBMSAxIDAgMCAxIDIwIDEzSDRhMSAxIDAgMCAxLS44MjQtMS41Njd6IiB9CiAgICBdCiAgXTsKCiAgY29uc3QgU2FsYWQgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNNyAyMWgxMCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgMjFhOSA5IDAgMCAwIDktOUgzYTkgOSAwIDAgMCA5IDlaIiB9XSwKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk0xMS4zOCAxMmEyLjQgMi40IDAgMCAxLS40LTQuNzcgMi40IDIuNCAwIDAgMSAzLjItMi43NyAyLjQgMi40IDAgMCAxIDMuNDctLjYzIDIuNCAyLjQgMCAwIDEgMy4zNyAzLjM3IDIuNCAyLjQgMCAwIDEtMS4xIDMuNyAyLjUxIDIuNTEgMCAwIDEgLjAzIDEuMSIKICAgICAgfQogICAgXSwKICAgIFsicGF0aCIsIHsgZDogIm0xMyAxMiA0LTQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTEwLjkgNy4yNUEzLjk5IDMuOTkgMCAwIDAgNCAxMGMwIC43My4yIDEuNDEuNTQgMiIgfV0KICBdOwoKICBjb25zdCBTYW5kd2ljaCA9IFsKICAgIFsicGF0aCIsIHsgZDogIm0yLjM3IDExLjIyMyA4LjM3Mi02Ljc3N2EyIDIgMCAwIDEgMi41MTYgMGw4LjM3MSA2Ljc3NyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMjEgMTVhMSAxIDAgMCAxIDEgMXYyYTEgMSAwIDAgMS0xIDFoLTUuMjUiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTMgMTVhMSAxIDAgMCAwLTEgMXYyYTEgMSAwIDAgMCAxIDFoOSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtNi42NyAxNSA2LjEzIDQuNmEyIDIgMCAwIDAgMi44LS40bDMuMTUtNC4yIiB9XSwKICAgIFsicmVjdCIsIHsgd2lkdGg6ICIyMCIsIGhlaWdodDogIjQiLCB4OiAiMiIsIHk6ICIxMSIsIHJ4OiAiMSIgfV0KICBdOwoKICBjb25zdCBTYXRlbGxpdGVEaXNoID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTQgMTBhNy4zMSA3LjMxIDAgMCAwIDEwIDEwWiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtOSAxNSAzLTMiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE3IDEzYTYgNiAwIDAgMC02LTYiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIxIDEzQTEwIDEwIDAgMCAwIDExIDMiIH1dCiAgXTsKCiAgY29uc3QgU2F0ZWxsaXRlID0gWwogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAibTEzLjUgNi41LTMuMTQ4LTMuMTQ4YTEuMjA1IDEuMjA1IDAgMCAwLTEuNzA0IDBMNi4zNTIgNS42NDhhMS4yMDUgMS4yMDUgMCAwIDAgMCAxLjcwNEw5LjUgMTAuNSIKICAgICAgfQogICAgXSwKICAgIFsicGF0aCIsIHsgZDogIk0xNi41IDcuNSAxOSA1IiB9XSwKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIm0xNy41IDEwLjUgMy4xNDggMy4xNDhhMS4yMDUgMS4yMDUgMCAwIDEgMCAxLjcwNGwtMi4yOTYgMi4yOTZhMS4yMDUgMS4yMDUgMCAwIDEtMS43MDQgMEwxMy41IDE0LjUiCiAgICAgIH0KICAgIF0sCiAgICBbInBhdGgiLCB7IGQ6ICJNOSAyMWE2IDYgMCAwIDAtNi02IiB9XSwKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk05LjM1MiAxMC42NDhhMS4yMDUgMS4yMDUgMCAwIDAgMCAxLjcwNGwyLjI5NiAyLjI5NmExLjIwNSAxLjIwNSAwIDAgMCAxLjcwNCAwbDQuMjk2LTQuMjk2YTEuMjA1IDEuMjA1IDAgMCAwIDAtMS43MDRsLTIuMjk2LTIuMjk2YTEuMjA1IDEuMjA1IDAgMCAwLTEuNzA0IDB6IgogICAgICB9CiAgICBdCiAgXTsKCiAgY29uc3QgU2F1ZGlSaXlhbCA9IFsKICAgIFsicGF0aCIsIHsgZDogIm0yMCAxOS41LTUuNSAxLjIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE0LjUgNHYxMS4yMmExIDEgMCAwIDAgMS4yNDIuOTdMMjAgMTUuMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMi45NzggMTkuMzUxIDUuNTQ5LTEuMzYzQTIgMiAwIDAgMCAxMCAxNlYyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yMCAxMCA0IDEzLjUiIH1dCiAgXTsKCiAgY29uc3QgU2F2ZUFsbCA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xMCAydjNhMSAxIDAgMCAwIDEgMWg1IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xOCAxOHYtNmExIDEgMCAwIDAtMS0xaC02YTEgMSAwIDAgMC0xIDF2NiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTggMjJINGEyIDIgMCAwIDEtMi0yVjYiIH1dLAogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTggMThhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoOS4xNzJhMiAyIDAgMCAxIDEuNDE0LjU4NmwyLjgyOCAyLjgyOEEyIDIgMCAwIDEgMjIgNi44MjhWMTZhMiAyIDAgMCAxLTIuMDEgMnoiCiAgICAgIH0KICAgIF0KICBdOwoKICBjb25zdCBTYXZlQ2hlY2sgPSBbCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMTIuNSAyMUg1YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDEwLjJhMiAyIDAgMCAxIDEuNC42bDMuOCAzLjhhMiAyIDAgMCAxIC42IDEuNHY0LjM1IgogICAgICB9CiAgICBdLAogICAgWyJwYXRoIiwgeyBkOiAibTE2IDE5IDIgMiA0LTQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE3IDE1LjEzVjE0YTEgMSAwIDAgMC0xLTFIOGExIDEgMCAwIDAtMSAxdjciIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTcgM3Y0YTEgMSAwIDAgMCAxIDFoNyIgfV0KICBdOwoKICBjb25zdCBTYXZlT2ZmID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTEzIDEzSDhhMSAxIDAgMCAwLTEgMXY3IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNCA4aDEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE3IDIxdi00IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0yIDIgMjAgMjAiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIwLjQxIDIwLjQxQTIgMiAwIDAgMSAxOSAyMUg1YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgLjU5LTEuNDEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTI5LjUgMTEuNXM1IDUgNCA1IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk05IDNoNi4yYTIgMiAwIDAgMSAxLjQuNmwzLjggMy44YTIgMiAwIDAgMSAuNiAxLjRWMTUiIH1dCiAgXTsKCiAgY29uc3QgU2F2ZVBlbiA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xMy4zMyAxM0g4YTEgMSAwIDAwLTEgMXY3IiB9XSwKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk0xNC4zNjMgMTcuNjM0YTIgMiAwIDAwLS41MDYuODU0bC0uODM3IDIuODdhLjUuNSAwIDAwLjYyLjYybDIuODctLjgzN2EyIDIgMCAwMC44NTQtLjUwNmw0LjAxMy00LjAwOWExIDEgMCAxMC0zLjAwNC0zLjAwNHoiCiAgICAgIH0KICAgIF0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNyAzdjRhMSAxIDAgMDAxIDFoNyIgfV0sCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgeyBkOiAiTTkgMjFINWEyIDIgMCAwMS0yLTJWNWEyIDIgMCAwMTItMmgxMC4yYTIgMiAwIDAxMS40LjZsMy44IDMuOGEyIDIgMCAwMS42IDEuNHYuMyIgfQogICAgXQogIF07CgogIGNvbnN0IFNhdmVQbHVzID0gWwogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTEyLjUgMjFINWEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmgxMC4yYTIgMiAwIDAgMSAxLjQuNmwzLjggMy44YTIgMiAwIDAgMSAuNiAxLjRWMTIiCiAgICAgIH0KICAgIF0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTYgMTNIOGExIDEgMCAwIDAtMSAxdjciIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE5IDIydi02IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yMiAxOWgtNiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNyAzdjRhMSAxIDAgMCAwIDEgMWg3IiB9XQogIF07CgogIGNvbnN0IFNhdmUgPSBbCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMTUuMiAzYTIgMiAwIDAgMSAxLjQuNmwzLjggMy44YTIgMiAwIDAgMSAuNiAxLjRWMTlhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yeiIKICAgICAgfQogICAgXSwKICAgIFsicGF0aCIsIHsgZDogIk0xNyAyMXYtN2ExIDEgMCAwIDAtMS0xSDhhMSAxIDAgMCAwLTEgMXY3IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk03IDN2NGExIDEgMCAwIDAgMSAxaDciIH1dCiAgXTsKCiAgY29uc3QgU2NhbGUzZCA9IFsKICAgIFsicGF0aCIsIHsgZDogIk01IDd2MTFhMSAxIDAgMCAwIDEgMWgxMSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNS4yOTMgMTguNzA3IDExIDEzIiB9XSwKICAgIFsiY2lyY2xlIiwgeyBjeDogIjE5IiwgY3k6ICIxOSIsIHI6ICIyIiB9XSwKICAgIFsiY2lyY2xlIiwgeyBjeDogIjUiLCBjeTogIjUiLCByOiAiMiIgfV0KICBdOwoKICBjb25zdCBTY2FsZSA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xMiAzdjE4IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0xOSA4IDMgOGE1IDUgMCAwIDEtNiAwelY3IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0zIDdoMWExNyAxNyAwIDAgMCA4LTIgMTcgMTcgMCAwIDAgOCAyaDEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTUgOCAzIDhhNSA1IDAgMCAxLTYgMHpWNyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNyAyMWgxMCIgfV0KICBdOwoKICBjb25zdCBTY2FsaW5nID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDNINWEyIDIgMCAwIDAtMiAydjE0YTIgMiAwIDAgMCAyIDJoMTRhMiAyIDAgMCAwIDItMnYtNyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTQgMTVIOXYtNSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTYgM2g1djUiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIxIDMgOSAxNSIgfV0KICBdOwoKICBjb25zdCBTY2FuQmFyY29kZSA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0zIDdWNWEyIDIgMCAwIDEgMi0yaDIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE3IDNoMmEyIDIgMCAwIDEgMiAydjIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIxIDE3djJhMiAyIDAgMCAxLTIgMmgtMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNyAyMUg1YTIgMiAwIDAgMS0yLTJ2LTIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTggN3YxMCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgN3YxMCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTcgN3YxMCIgfV0KICBdOwoKICBjb25zdCBTY2FuQm94ID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDEydjUuNSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTcgM2gyYTIgMiAwIDAxMiAydjIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIxIDE3djJhMiAyIDAgMDEtMiAyaC0yIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0zIDdWNWEyIDIgMCAwMTItMmgyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk03IDIxSDVhMiAyIDAgMDEtMi0ydi0yIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk03LjI2NCA5LjI1MiAxMiAxMmw0LjczNy0yLjc0OCIgfV0sCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNNy45OTUgOC41MTRBMiAyIDAgMDA3IDEwLjI0NHYzLjUxNmEyIDIgMCAwMC45OTYgMS43M2wzIDEuNzRhMiAyIDAgMDAyLjAwOCAwbDMtMS43NEEyIDIgMCAwMDE3IDEzLjc2di0zLjUxN2EyIDIgMCAwMC0uOTk1LTEuNzNsLTMtMS43NDJhMiAyIDAgMDAtMS44OTItLjA2NHoiCiAgICAgIH0KICAgIF0KICBdOwoKICBjb25zdCBTY2FuRXllID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTMgN1Y1YTIgMiAwIDAgMSAyLTJoMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTcgM2gyYTIgMiAwIDAgMSAyIDJ2MiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMjEgMTd2MmEyIDIgMCAwIDEtMiAyaC0yIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk03IDIxSDVhMiAyIDAgMCAxLTItMnYtMiIgfV0sCiAgICBbImNpcmNsZSIsIHsgY3g6ICIxMiIsIGN5OiAiMTIiLCByOiAiMSIgfV0sCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMTguOTQ0IDEyLjMzYTEgMSAwIDAgMCAwLS42NiA3LjUgNy41IDAgMCAwLTEzLjg4OCAwIDEgMSAwIDAgMCAwIC42NiA3LjUgNy41IDAgMCAwIDEzLjg4OCAwIgogICAgICB9CiAgICBdCiAgXTsKCiAgY29uc3QgU2NhbkZhY2UgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMyA3VjVhMiAyIDAgMCAxIDItMmgyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNyAzaDJhMiAyIDAgMCAxIDIgMnYyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yMSAxN3YyYTIgMiAwIDAgMS0yIDJoLTIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTcgMjFINWEyIDIgMCAwIDEtMi0ydi0yIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk04IDE0czEuNSAyIDQgMiA0LTIgNC0yIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk05IDloLjAxIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNSA5aC4wMSIgfV0KICBdOwoKICBjb25zdCBTY2FuSGVhcnQgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTcgM2gyYTIgMiAwIDAgMSAyIDJ2MiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMjEgMTd2MmEyIDIgMCAwIDEtMiAyaC0yIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0zIDdWNWEyIDIgMCAwIDEgMi0yaDIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTcgMjFINWEyIDIgMCAwIDEtMi0ydi0yIiB9XSwKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7IGQ6ICJNNy44MjggMTMuMDdBMyAzIDAgMCAxIDEyIDguNzY0YTMgMyAwIDAgMSA0LjE3MiA0LjMwNmwtMy40NDcgMy42MmExIDEgMCAwIDEtMS40NDkgMHoiIH0KICAgIF0KICBdOwoKICBjb25zdCBTY2FuTGluZSA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0zIDdWNWEyIDIgMCAwIDEgMi0yaDIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE3IDNoMmEyIDIgMCAwIDEgMiAydjIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIxIDE3djJhMiAyIDAgMCAxLTIgMmgtMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNyAyMUg1YTIgMiAwIDAgMS0yLTJ2LTIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTcgMTJoMTAiIH1dCiAgXTsKCiAgY29uc3QgU2NhblFyQ29kZSA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xNyAxMnY0YTEgMSAwIDAgMS0xIDFoLTQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE3IDNoMmEyIDIgMCAwIDEgMiAydjIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE3IDhWNyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMjEgMTd2MmEyIDIgMCAwIDEtMiAyaC0yIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0zIDdWNWEyIDIgMCAwIDEgMi0yaDIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTcgMTdoLjAxIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk03IDIxSDVhMiAyIDAgMCAxLTItMnYtMiIgfV0sCiAgICBbInJlY3QiLCB7IHg6ICI3IiwgeTogIjciLCB3aWR0aDogIjUiLCBoZWlnaHQ6ICI1Iiwgcng6ICIxIiB9XQogIF07CgogIGNvbnN0IFNjYW5TZWFyY2ggPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMyA3VjVhMiAyIDAgMCAxIDItMmgyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNyAzaDJhMiAyIDAgMCAxIDIgMnYyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yMSAxN3YyYTIgMiAwIDAgMS0yIDJoLTIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTcgMjFINWEyIDIgMCAwIDEtMi0ydi0yIiB9XSwKICAgIFsiY2lyY2xlIiwgeyBjeDogIjEyIiwgY3k6ICIxMiIsIHI6ICIzIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0xNiAxNi0xLjktMS45IiB9XQogIF07CgogIGNvbnN0IFNjYW5TcXVhcmUgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMyA3VjVhMiAyIDAgMCAxIDItMmgyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNyAzaDJhMiAyIDAgMCAxIDIgMnYyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yMSAxN3YyYTIgMiAwIDAgMS0yIDJoLTIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTcgMjFINWEyIDIgMCAwIDEtMi0ydi0yIiB9XSwKICAgIFsicmVjdCIsIHsgd2lkdGg6ICI4IiwgaGVpZ2h0OiAiOCIsIHg6ICI4IiwgeTogIjgiLCByeDogIjEiIH1dCiAgXTsKCiAgY29uc3QgU2NhblRleHQgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMyA3VjVhMiAyIDAgMCAxIDItMmgyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNyAzaDJhMiAyIDAgMCAxIDIgMnYyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yMSAxN3YyYTIgMiAwIDAgMS0yIDJoLTIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTcgMjFINWEyIDIgMCAwIDEtMi0ydi0yIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk03IDhoOCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNyAxMmgxMCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNyAxNmg2IiB9XQogIF07CgogIGNvbnN0IFNjYW4gPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMyA3VjVhMiAyIDAgMCAxIDItMmgyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNyAzaDJhMiAyIDAgMCAxIDIgMnYyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yMSAxN3YyYTIgMiAwIDAgMS0yIDJoLTIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTcgMjFINWEyIDIgMCAwIDEtMi0ydi0yIiB9XQogIF07CgogIGNvbnN0IFNjaG9vbCA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xNCAyMXYtM2EyIDIgMCAwIDAtNCAwdjMiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE4IDQuOTMzVjIxIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm00IDYgNy4xMDYtMy43OWEyIDIgMCAwIDEgMS43ODggMEwyMCA2IiB9XSwKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIm02IDExLTMuNTIgMi4xNDdhMSAxIDAgMCAwLS40OC44NTRWMTlhMiAyIDAgMCAwIDIgMmgxNmEyIDIgMCAwIDAgMi0ydi01YTEgMSAwIDAgMC0uNDgtLjg1M0wxOCAxMSIKICAgICAgfQogICAgXSwKICAgIFsicGF0aCIsIHsgZDogIk02IDQuOTMzVjIxIiB9XSwKICAgIFsiY2lyY2xlIiwgeyBjeDogIjEyIiwgY3k6ICI5IiwgcjogIjIiIH1dCiAgXTsKCiAgY29uc3QgU2Npc3NvcnNMaW5lRGFzaGVkID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTUuNDIgOS40MiA4IDEyIiB9XSwKICAgIFsiY2lyY2xlIiwgeyBjeDogIjQiLCBjeTogIjgiLCByOiAiMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMTQgNi04LjU4IDguNTgiIH1dLAogICAgWyJjaXJjbGUiLCB7IGN4OiAiNCIsIGN5OiAiMTYiLCByOiAiMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTAuOCAxNC44IDE0IDE4IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNiAxMmgtMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMjIgMTJoLTIiIH1dCiAgXTsKCiAgY29uc3QgU2Npc3NvcnMgPSBbCiAgICBbImNpcmNsZSIsIHsgY3g6ICI2IiwgY3k6ICI2IiwgcjogIjMiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTguMTIgOC4xMiAxMiAxMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMjAgNCA4LjEyIDE1Ljg4IiB9XSwKICAgIFsiY2lyY2xlIiwgeyBjeDogIjYiLCBjeTogIjE4IiwgcjogIjMiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE0LjggMTQuOCAyMCAyMCIgfV0KICBdOwoKICBjb25zdCBTY29vdGVyID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTIxIDRoLTMuNWwyIDExLjA1IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk02Ljk1IDE3aDUuMTQyYy41MjMgMCAuOTUtLjQwNiAxLjA2My0uOTE2YTYuNSA2LjUgMCAwIDEgNS4zNDUtNS4wMDkiIH1dLAogICAgWyJjaXJjbGUiLCB7IGN4OiAiMTkuNSIsIGN5OiAiMTcuNSIsIHI6ICIyLjUiIH1dLAogICAgWyJjaXJjbGUiLCB7IGN4OiAiNC41IiwgY3k6ICIxNy41IiwgcjogIjIuNSIgfV0KICBdOwoKICBjb25zdCBTY3JlZW5TaGFyZU9mZiA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xMyAzSDRhMiAyIDAgMCAwLTIgMnYxMGEyIDIgMCAwIDAgMiAyaDE2YTIgMiAwIDAgMCAyLTJ2LTMiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTggMjFoOCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgMTd2NCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMjIgMy01IDUiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTE3IDMgNSA1IiB9XQogIF07CgogIGNvbnN0IFNjcmVlblNoYXJlID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTEzIDNINGEyIDIgMCAwIDAtMiAydjEwYTIgMiAwIDAgMCAyIDJoMTZhMiAyIDAgMCAwIDItMnYtMyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNOCAyMWg4IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xMiAxN3Y0IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0xNyA4IDUtNSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTcgM2g1djUiIH1dCiAgXTsKCiAgY29uc3QgU2Nyb2xsVGV4dCA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xNSAxMmgtNSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTUgOGgtNSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTkgMTdWNWEyIDIgMCAwIDAtMi0ySDQiIH1dLAogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTggMjFoMTJhMiAyIDAgMCAwIDItMnYtMWExIDEgMCAwIDAtMS0xSDExYTEgMSAwIDAgMC0xIDF2MWEyIDIgMCAxIDEtNCAwVjVhMiAyIDAgMSAwLTQgMHYyYTEgMSAwIDAgMCAxIDFoMyIKICAgICAgfQogICAgXQogIF07CgogIGNvbnN0IFNjcm9sbCA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xOSAxN1Y1YTIgMiAwIDAgMC0yLTJINCIgfV0sCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNOCAyMWgxMmEyIDIgMCAwIDAgMi0ydi0xYTEgMSAwIDAgMC0xLTFIMTFhMSAxIDAgMCAwLTEgMXYxYTIgMiAwIDEgMS00IDBWNWEyIDIgMCAxIDAtNCAwdjJhMSAxIDAgMCAwIDEgMWgzIgogICAgICB9CiAgICBdCiAgXTsKCiAgY29uc3QgU2VhcmNoQWxlcnQgPSBbCiAgICBbImNpcmNsZSIsIHsgY3g6ICIxMSIsIGN5OiAiMTEiLCByOiAiOCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMjEgMjEtNC4zLTQuMyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTEgN3Y0IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xMSAxNWguMDEiIH1dCiAgXTsKCiAgY29uc3QgU2VhcmNoQ2hlY2sgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJtOCAxMSAyIDIgNC00IiB9XSwKICAgIFsiY2lyY2xlIiwgeyBjeDogIjExIiwgY3k6ICIxMSIsIHI6ICI4IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0yMSAyMS00LjMtNC4zIiB9XQogIF07CgogIGNvbnN0IFNlYXJjaENvZGUgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJtMTMgMTMuNSAyLTIuNS0yLTIuNSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMjEgMjEtNC4zLTQuMyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNOSA4LjUgNyAxMWwyIDIuNSIgfV0sCiAgICBbImNpcmNsZSIsIHsgY3g6ICIxMSIsIGN5OiAiMTEiLCByOiAiOCIgfV0KICBdOwoKICBjb25zdCBTZWFyY2hTbGFzaCA9IFsKICAgIFsicGF0aCIsIHsgZDogIm0xMy41IDguNS01IDUiIH1dLAogICAgWyJjaXJjbGUiLCB7IGN4OiAiMTEiLCBjeTogIjExIiwgcjogIjgiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTIxIDIxLTQuMy00LjMiIH1dCiAgXTsKCiAgY29uc3QgU2VhcmNoWCA9IFsKICAgIFsicGF0aCIsIHsgZDogIm0xMy41IDguNS01IDUiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTguNSA4LjUgNSA1IiB9XSwKICAgIFsiY2lyY2xlIiwgeyBjeDogIjExIiwgY3k6ICIxMSIsIHI6ICI4IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0yMSAyMS00LjMtNC4zIiB9XQogIF07CgogIGNvbnN0IFNlYXJjaCA9IFsKICAgIFsicGF0aCIsIHsgZDogIm0yMSAyMS00LjM0LTQuMzQiIH1dLAogICAgWyJjaXJjbGUiLCB7IGN4OiAiMTEiLCBjeTogIjExIiwgcjogIjgiIH1dCiAgXTsKCiAgY29uc3QgU2VjdGlvbiA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xNiA1YTQgMyAwIDAgMC04IDBjMCA0IDggMyA4IDdhNCAzIDAgMCAxLTggMCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNOCAxOWE0IDMgMCAwIDAgOCAwYzAtNC04LTMtOC03YTQgMyAwIDAgMSA4IDAiIH1dCiAgXTsKCiAgY29uc3QgU2VuZEhvcml6b250YWwgPSBbCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMy43MTQgMy4wNDhhLjQ5OC40OTggMCAwIDAtLjY4My42MjdsMi44NDMgNy42MjdhMiAyIDAgMCAxIDAgMS4zOTZsLTIuODQyIDcuNjI3YS40OTguNDk4IDAgMCAwIC42ODIuNjI3bDE4LTguNWEuNS41IDAgMCAwIDAtLjkwNHoiCiAgICAgIH0KICAgIF0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNiAxMmgxNiIgfV0KICBdOwoKICBjb25zdCBTZW5kVG9CYWNrID0gWwogICAgWyJyZWN0IiwgeyB4OiAiMTQiLCB5OiAiMTQiLCB3aWR0aDogIjgiLCBoZWlnaHQ6ICI4Iiwgcng6ICIyIiB9XSwKICAgIFsicmVjdCIsIHsgeDogIjIiLCB5OiAiMiIsIHdpZHRoOiAiOCIsIGhlaWdodDogIjgiLCByeDogIjIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTcgMTR2MWEyIDIgMCAwIDAgMiAyaDEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE0IDdoMWEyIDIgMCAwIDEgMiAydjEiIH1dCiAgXTsKCiAgY29uc3QgU2VwYXJhdG9ySG9yaXpvbnRhbCA9IFsKICAgIFsicGF0aCIsIHsgZDogIm0xNiAxNi00IDQtNC00IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0zIDEyaDE4IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm04IDggNC00IDQgNCIgfV0KICBdOwoKICBjb25zdCBTZW5kID0gWwogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTE0LjUzNiAyMS42ODZhLjUuNSAwIDAgMCAuOTM3LS4wMjRsNi41LTE5YS40OTYuNDk2IDAgMCAwLS42MzUtLjYzNWwtMTkgNi41YS41LjUgMCAwIDAtLjAyNC45MzdsNy45MyAzLjE4YTIgMiAwIDAgMSAxLjExMiAxLjExeiIKICAgICAgfQogICAgXSwKICAgIFsicGF0aCIsIHsgZDogIm0yMS44NTQgMi4xNDctMTAuOTQgMTAuOTM5IiB9XQogIF07CgogIGNvbnN0IFNlcGFyYXRvclZlcnRpY2FsID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDN2MTgiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTE2IDE2IDQtNC00LTQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTggOC00IDQgNCA0IiB9XQogIF07CgogIGNvbnN0IFNlcnZlckNvZyA9IFsKICAgIFsicGF0aCIsIHsgZDogIm0xMC44NTIgMTQuNzcyLS4zODMuOTIzIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xMy4xNDggMTQuNzcyYTMgMyAwIDEgMC0yLjI5Ni01LjU0NGwtLjM4My0uOTIzIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0xMy4xNDggOS4yMjguMzgzLS45MjMiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTEzLjUzIDE1LjY5Ni0uMzgyLS45MjRhMyAzIDAgMSAxLTIuMjk2LTUuNTQ0IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0xNC43NzIgMTAuODUyLjkyMy0uMzgzIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0xNC43NzIgMTMuMTQ4LjkyMy4zODMiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTQuNSAxMEg0YTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ2NGEyIDIgMCAwIDEtMiAyaC0uNSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNC41IDE0SDRhMiAyIDAgMCAwLTIgMnY0YTIgMiAwIDAgMCAyIDJoMTZhMiAyIDAgMCAwIDItMnYtNGEyIDIgMCAwIDAtMi0yaC0uNSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNiAxOGguMDEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTYgNmguMDEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTkuMjI4IDEwLjg1Mi0uOTIzLS4zODMiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTkuMjI4IDEzLjE0OC0uOTIzLjM4MyIgfV0KICBdOwoKICBjb25zdCBTZXJ2ZXJDcmFzaCA9IFsKICAgIFsicGF0aCIsIHsgZDogIk02IDEwSDRhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoMTZhMiAyIDAgMCAxIDIgMnY0YTIgMiAwIDAgMS0yIDJoLTIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTYgMTRINGEyIDIgMCAwIDAtMiAydjRhMiAyIDAgMCAwIDIgMmgxNmEyIDIgMCAwIDAgMi0ydi00YTIgMiAwIDAgMC0yLTJoLTIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTYgNmguMDEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTYgMThoLjAxIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0xMyA2LTQgNmg2bC00IDYiIH1dCiAgXTsKCiAgY29uc3QgU2VydmVyUGx1cyA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xMi41IDEwSDRhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoMTZhMiAyIDAgMCAxIDIgMnYyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNiAxMmg2IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xOSA5djYiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIyIDE4djJhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJ2LTRhMiAyIDAgMCAxIDItMmg4LjUiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTYgMThoLjAxIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk02IDZoLjAxIiB9XQogIF07CgogIGNvbnN0IFNlcnZlck9mZiA9IFsKICAgIFsicGF0aCIsIHsgZDogIk03IDJoMTNhMiAyIDAgMCAxIDIgMnY0YTIgMiAwIDAgMS0yIDJoLTUiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTEwIDEwIDIuNSAyLjVDMiAyIDIgMi41IDIgNXYzYTIgMiAwIDAgMCAyIDJoNnoiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIyIDE3di0xYTIgMiAwIDAgMC0yLTJoLTEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTQgMTRhMiAyIDAgMCAwLTIgMnY0YTIgMiAwIDAgMCAyIDJoMTYuNWwxLS41LjUuNS04LThINHoiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTYgMThoLjAxIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0yIDIgMjAgMjAiIH1dCiAgXTsKCiAgY29uc3QgU2VydmVyID0gWwogICAgWyJyZWN0IiwgeyB3aWR0aDogIjIwIiwgaGVpZ2h0OiAiOCIsIHg6ICIyIiwgeTogIjIiLCByeDogIjIiLCByeTogIjIiIH1dLAogICAgWyJyZWN0IiwgeyB3aWR0aDogIjIwIiwgaGVpZ2h0OiAiOCIsIHg6ICIyIiwgeTogIjE0Iiwgcng6ICIyIiwgcnk6ICIyIiB9XSwKICAgIFsibGluZSIsIHsgeDE6ICI2IiwgeDI6ICI2LjAxIiwgeTE6ICI2IiwgeTI6ICI2IiB9XSwKICAgIFsibGluZSIsIHsgeDE6ICI2IiwgeDI6ICI2LjAxIiwgeTE6ICIxOCIsIHkyOiAiMTgiIH1dCiAgXTsKCiAgY29uc3QgU2V0dGluZ3MyID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTE0IDE3SDUiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE5IDdoLTkiIH1dLAogICAgWyJjaXJjbGUiLCB7IGN4OiAiMTciLCBjeTogIjE3IiwgcjogIjMiIH1dLAogICAgWyJjaXJjbGUiLCB7IGN4OiAiNyIsIGN5OiAiNyIsIHI6ICIzIiB9XQogIF07CgogIGNvbnN0IFNldHRpbmdzID0gWwogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTkuNjcxIDQuMTM2YTIuMzQgMi4zNCAwIDAgMSA0LjY1OSAwIDIuMzQgMi4zNCAwIDAgMCAzLjMxOSAxLjkxNSAyLjM0IDIuMzQgMCAwIDEgMi4zMyA0LjAzMyAyLjM0IDIuMzQgMCAwIDAgMCAzLjgzMSAyLjM0IDIuMzQgMCAwIDEtMi4zMyA0LjAzMyAyLjM0IDIuMzQgMCAwIDAtMy4zMTkgMS45MTUgMi4zNCAyLjM0IDAgMCAxLTQuNjU5IDAgMi4zNCAyLjM0IDAgMCAwLTMuMzItMS45MTUgMi4zNCAyLjM0IDAgMCAxLTIuMzMtNC4wMzMgMi4zNCAyLjM0IDAgMCAwIDAtMy44MzFBMi4zNCAyLjM0IDAgMCAxIDYuMzUgNi4wNTFhMi4zNCAyLjM0IDAgMCAwIDMuMzE5LTEuOTE1IgogICAgICB9CiAgICBdLAogICAgWyJjaXJjbGUiLCB7IGN4OiAiMTIiLCBjeTogIjEyIiwgcjogIjMiIH1dCiAgXTsKCiAgY29uc3QgU2hhcGVzID0gWwogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTguMyAxMGEuNy43IDAgMCAxLS42MjYtMS4wNzlMMTEuNCAzYS43LjcgMCAwIDEgMS4xOTgtLjA0M0wxNi4zIDguOWEuNy43IDAgMCAxLS41NzIgMS4xWiIKICAgICAgfQogICAgXSwKICAgIFsicmVjdCIsIHsgeDogIjMiLCB5OiAiMTQiLCB3aWR0aDogIjciLCBoZWlnaHQ6ICI3Iiwgcng6ICIxIiB9XSwKICAgIFsiY2lyY2xlIiwgeyBjeDogIjE3LjUiLCBjeTogIjE3LjUiLCByOiAiMy41IiB9XQogIF07CgogIGNvbnN0IFNoYXJlMiA9IFsKICAgIFsiY2lyY2xlIiwgeyBjeDogIjE4IiwgY3k6ICI1IiwgcjogIjMiIH1dLAogICAgWyJjaXJjbGUiLCB7IGN4OiAiNiIsIGN5OiAiMTIiLCByOiAiMyIgfV0sCiAgICBbImNpcmNsZSIsIHsgY3g6ICIxOCIsIGN5OiAiMTkiLCByOiAiMyIgfV0sCiAgICBbImxpbmUiLCB7IHgxOiAiOC41OSIsIHgyOiAiMTUuNDIiLCB5MTogIjEzLjUxIiwgeTI6ICIxNy40OSIgfV0sCiAgICBbImxpbmUiLCB7IHgxOiAiMTUuNDEiLCB4MjogIjguNTkiLCB5MTogIjYuNTEiLCB5MjogIjEwLjQ5IiB9XQogIF07CgogIGNvbnN0IFNoYXJlID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDJ2MTMiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTE2IDYtNC00LTQgNCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNCAxMnY4YTIgMiAwIDAgMCAyIDJoMTJhMiAyIDAgMCAwIDItMnYtOCIgfV0KICBdOwoKICBjb25zdCBTaGVldCA9IFsKICAgIFsicmVjdCIsIHsgd2lkdGg6ICIxOCIsIGhlaWdodDogIjE4IiwgeDogIjMiLCB5OiAiMyIsIHJ4OiAiMiIsIHJ5OiAiMiIgfV0sCiAgICBbImxpbmUiLCB7IHgxOiAiMyIsIHgyOiAiMjEiLCB5MTogIjkiLCB5MjogIjkiIH1dLAogICAgWyJsaW5lIiwgeyB4MTogIjMiLCB4MjogIjIxIiwgeTE6ICIxNSIsIHkyOiAiMTUiIH1dLAogICAgWyJsaW5lIiwgeyB4MTogIjkiLCB4MjogIjkiLCB5MTogIjkiLCB5MjogIjIxIiB9XSwKICAgIFsibGluZSIsIHsgeDE6ICIxNSIsIHgyOiAiMTUiLCB5MTogIjkiLCB5MjogIjIxIiB9XQogIF07CgogIGNvbnN0IFNoZWxsID0gWwogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTE0IDExYTIgMiAwIDEgMS00IDAgNCA0IDAgMCAxIDggMCA2IDYgMCAwIDEtMTIgMCA4IDggMCAwIDEgMTYgMCAxMCAxMCAwIDEgMS0yMCAwIDExLjkzIDExLjkzIDAgMCAxIDIuNDItNy4yMiAyIDIgMCAxIDEgMy4xNiAyLjQ0IgogICAgICB9CiAgICBdCiAgXTsKCiAgY29uc3QgU2hlbHZpbmdVbml0ID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDEyVjlhMSAxIDAgMCAwLTEtMUg5YTEgMSAwIDAgMC0xIDF2MyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTYgMjB2LTNhMSAxIDAgMCAwLTEtMWgtMmExIDEgMCAwIDAtMSAxdjMiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIwIDIyVjIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTQgMTJoMTYiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTQgMjBoMTYiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTQgMnYyMCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNCA0aDE2IiB9XQogIF07CgogIGNvbnN0IFNoaWVsZEFsZXJ0ID0gWwogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTIwIDEzYzAgNS0zLjUgNy41LTcuNjYgOC45NWExIDEgMCAwIDEtLjY3LS4wMUM3LjUgMjAuNSA0IDE4IDQgMTNWNmExIDEgMCAwIDEgMS0xYzIgMCA0LjUtMS4yIDYuMjQtMi43MmExLjE3IDEuMTcgMCAwIDEgMS41MiAwQzE0LjUxIDMuODEgMTcgNSAxOSA1YTEgMSAwIDAgMSAxIDF6IgogICAgICB9CiAgICBdLAogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDh2NCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgMTZoLjAxIiB9XQogIF07CgogIGNvbnN0IFNoaWVsZEJhbiA9IFsKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk0yMCAxM2MwIDUtMy41IDcuNS03LjY2IDguOTVhMSAxIDAgMCAxLS42Ny0uMDFDNy41IDIwLjUgNCAxOCA0IDEzVjZhMSAxIDAgMCAxIDEtMWMyIDAgNC41LTEuMiA2LjI0LTIuNzJhMS4xNyAxLjE3IDAgMCAxIDEuNTIgMEMxNC41MSAzLjgxIDE3IDUgMTkgNWExIDEgMCAwIDEgMSAxeiIKICAgICAgfQogICAgXSwKICAgIFsicGF0aCIsIHsgZDogIm00LjI0MyA1LjIxIDE0LjM5IDEyLjQ3MiIgfV0KICBdOwoKICBjb25zdCBTaGllbGRDaGVjayA9IFsKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk0yMCAxM2MwIDUtMy41IDcuNS03LjY2IDguOTVhMSAxIDAgMCAxLS42Ny0uMDFDNy41IDIwLjUgNCAxOCA0IDEzVjZhMSAxIDAgMCAxIDEtMWMyIDAgNC41LTEuMiA2LjI0LTIuNzJhMS4xNyAxLjE3IDAgMCAxIDEuNTIgMEMxNC41MSAzLjgxIDE3IDUgMTkgNWExIDEgMCAwIDEgMSAxeiIKICAgICAgfQogICAgXSwKICAgIFsicGF0aCIsIHsgZDogIm05IDEyIDIgMiA0LTQiIH1dCiAgXTsKCiAgY29uc3QgU2hpZWxkQ29nQ29ybmVyID0gWwogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTExIDIyYy0zLjgwNi0xLjQ1LTctMy45NjYtNy05VjZhMSAxIDAgMCAxIDEtMWMyIDAgNC41LTEuMiA2LjI0LTIuNzJhMS4xNyAxLjE3IDAgMCAxIDEuNTIgMEMxNC41MSAzLjgxIDE3IDUgMTkgNWExIDEgMCAwIDEgMSAxdjQiCiAgICAgIH0KICAgIF0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTQuOTIzIDE2LjU0NyAxNCAxNi4xNjQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTE0LjkyMyAxOC44NDMtLjkyMy4zODMiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE2LjU0NyAxNC45MjMgMTYuMTY0IDE0IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0xNi41NDcgMjAuNDY3LS4zODMuOTI0IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0xOC44NDMgMTQuOTIzLjM4My0uOTIzIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0xOS4yMjUgMjEuMzkxLS4zODItLjkyNCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMjAuNDY3IDE2LjU0Ny45MjMtLjM4MyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMjAuNDY3IDE4Ljg0My45MjMuMzgzIiB9XSwKICAgIFsiY2lyY2xlIiwgeyBjeDogIjE3LjY5NSIsIGN5OiAiMTcuNjk1IiwgcjogIjMiIH1dCiAgXTsKCiAgY29uc3QgU2hpZWxkQ29nID0gWwogICAgWyJwYXRoIiwgeyBkOiAibTEwLjkyOSAxNC40NjctLjM4My45MjQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTEwLjkyOSA4LjkyMyAxMC41NDYgOCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTMuMjI1IDguOTIzIDEzLjYwOCA4IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0xMy42MDcgMTUuMzkxLS4zODItLjkyNCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMTQuODQ5IDEwLjU0Ny45MjMtLjM4MyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMTQuODQ5IDEyLjg0My45MjMuMzgzIiB9XSwKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk0yMCAxM2MwIDUtMy41IDcuNS03LjY2IDguOTVhMSAxIDAgMCAxLS42Ny0uMDFDNy41IDIwLjUgNCAxOCA0IDEzVjZhMSAxIDAgMCAxIDEtMWMyIDAgNC41LTEuMiA2LjI0LTIuNzJhMS4xNyAxLjE3IDAgMCAxIDEuNTIgMEMxNC41MSAzLjgxIDE3IDUgMTkgNWExIDEgMCAwIDEgMSAxeiIKICAgICAgfQogICAgXSwKICAgIFsicGF0aCIsIHsgZDogIm05LjMwNSAxMC41NDctLjkyMy0uMzgzIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm05LjMwNSAxMi44NDMtLjkyMy4zODMiIH1dLAogICAgWyJjaXJjbGUiLCB7IGN4OiAiMTIuMDc3IiwgY3k6ICIxMS42OTUiLCByOiAiMyIgfV0KICBdOwoKICBjb25zdCBTaGllbGRFbGxpcHNpcyA9IFsKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk0yMCAxM2MwIDUtMy41IDcuNS03LjY2IDguOTVhMSAxIDAgMCAxLS42Ny0uMDFDNy41IDIwLjUgNCAxOCA0IDEzVjZhMSAxIDAgMCAxIDEtMWMyIDAgNC41LTEuMiA2LjI0LTIuNzJhMS4xNyAxLjE3IDAgMCAxIDEuNTIgMEMxNC41MSAzLjgxIDE3IDUgMTkgNWExIDEgMCAwIDEgMSAxeiIKICAgICAgfQogICAgXSwKICAgIFsicGF0aCIsIHsgZDogIk04IDEyaC4wMSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgMTJoLjAxIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNiAxMmguMDEiIH1dCiAgXTsKCiAgY29uc3QgU2hpZWxkSGFsZiA9IFsKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk0yMCAxM2MwIDUtMy41IDcuNS03LjY2IDguOTVhMSAxIDAgMCAxLS42Ny0uMDFDNy41IDIwLjUgNCAxOCA0IDEzVjZhMSAxIDAgMCAxIDEtMWMyIDAgNC41LTEuMiA2LjI0LTIuNzJhMS4xNyAxLjE3IDAgMCAxIDEuNTIgMEMxNC41MSAzLjgxIDE3IDUgMTkgNWExIDEgMCAwIDEgMSAxeiIKICAgICAgfQogICAgXSwKICAgIFsicGF0aCIsIHsgZDogIk0xMiAyMlYyIiB9XQogIF07CgogIGNvbnN0IFNoaWVsZEtleWhvbGUgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgMTN2MyIgfV0sCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMjAgMTNjMCA1LTMuNSA3LjUtNy42NiA4Ljk1YTEgMSAwIDAxLS42Ny0uMDFDNy41IDIwLjUgNCAxOCA0IDEzVjZhMSAxIDAgMDExLTFjMiAwIDQuNS0xLjIgNi4yNC0yLjcyYTEuMTcgMS4xNyAwIDAxMS41MiAwQzE0LjUxIDMuODEgMTcgNSAxOSA1YTEgMSAwIDAxMSAxeiIKICAgICAgfQogICAgXSwKICAgIFsiY2lyY2xlIiwgeyBjeDogIjEyIiwgY3k6ICIxMSIsIHI6ICIyIiB9XQogIF07CgogIGNvbnN0IFNoaWVsZE1pbnVzID0gWwogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTIwIDEzYzAgNS0zLjUgNy41LTcuNjYgOC45NWExIDEgMCAwIDEtLjY3LS4wMUM3LjUgMjAuNSA0IDE4IDQgMTNWNmExIDEgMCAwIDEgMS0xYzIgMCA0LjUtMS4yIDYuMjQtMi43MmExLjE3IDEuMTcgMCAwIDEgMS41MiAwQzE0LjUxIDMuODEgMTcgNSAxOSA1YTEgMSAwIDAgMSAxIDF6IgogICAgICB9CiAgICBdLAogICAgWyJwYXRoIiwgeyBkOiAiTTkgMTJoNiIgfV0KICBdOwoKICBjb25zdCBTaGllbGRPZmYgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJtMiAyIDIwIDIwIiB9XSwKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk01IDVhMSAxIDAgMCAwLTEgMXY3YzAgNSAzLjUgNy41IDcuNjcgOC45NGExIDEgMCAwIDAgLjY3LjAxYzIuMzUtLjgyIDQuNDgtMS45NyA1LjktMy43MSIKICAgICAgfQogICAgXSwKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk05LjMwOSAzLjY1MkExMi4yNTIgMTIuMjUyIDAgMCAwIDExLjI0IDIuMjhhMS4xNyAxLjE3IDAgMCAxIDEuNTIgMEMxNC41MSAzLjgxIDE3IDUgMTkgNWExIDEgMCAwIDEgMSAxdjdhOS43ODQgOS43ODQgMCAwIDEtLjA4IDEuMjY0IgogICAgICB9CiAgICBdCiAgXTsKCiAgY29uc3QgU2hpZWxkUGx1cyA9IFsKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk0yMCAxM2MwIDUtMy41IDcuNS03LjY2IDguOTVhMSAxIDAgMCAxLS42Ny0uMDFDNy41IDIwLjUgNCAxOCA0IDEzVjZhMSAxIDAgMCAxIDEtMWMyIDAgNC41LTEuMiA2LjI0LTIuNzJhMS4xNyAxLjE3IDAgMCAxIDEuNTIgMEMxNC41MSAzLjgxIDE3IDUgMTkgNWExIDEgMCAwIDEgMSAxeiIKICAgICAgfQogICAgXSwKICAgIFsicGF0aCIsIHsgZDogIk05IDEyaDYiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDl2NiIgfV0KICBdOwoKICBjb25zdCBTaGllbGRVc2VyID0gWwogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTIwIDEzYzAgNS0zLjUgNy41LTcuNjYgOC45NWExIDEgMCAwIDEtLjY3LS4wMUM3LjUgMjAuNSA0IDE4IDQgMTNWNmExIDEgMCAwIDEgMS0xYzIgMCA0LjUtMS4yIDYuMjQtMi43MmExLjE3IDEuMTcgMCAwIDEgMS41MiAwQzE0LjUxIDMuODEgMTcgNSAxOSA1YTEgMSAwIDAgMSAxIDF6IgogICAgICB9CiAgICBdLAogICAgWyJwYXRoIiwgeyBkOiAiTTYuMzc2IDE4LjkxYTYgNiAwIDAgMSAxMS4yNDkuMDAzIiB9XSwKICAgIFsiY2lyY2xlIiwgeyBjeDogIjEyIiwgY3k6ICIxMSIsIHI6ICI0IiB9XQogIF07CgogIGNvbnN0IFNoaWVsZFggPSBbCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMjAgMTNjMCA1LTMuNSA3LjUtNy42NiA4Ljk1YTEgMSAwIDAgMS0uNjctLjAxQzcuNSAyMC41IDQgMTggNCAxM1Y2YTEgMSAwIDAgMSAxLTFjMiAwIDQuNS0xLjIgNi4yNC0yLjcyYTEuMTcgMS4xNyAwIDAgMSAxLjUyIDBDMTQuNTEgMy44MSAxNyA1IDE5IDVhMSAxIDAgMCAxIDEgMXoiCiAgICAgIH0KICAgIF0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMTQuNSA5LjUtNSA1IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm05LjUgOS41IDUgNSIgfV0KICBdOwoKICBjb25zdCBTaGllbGRRdWVzdGlvbk1hcmsgPSBbCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMjAgMTNjMCA1LTMuNSA3LjUtNy42NiA4Ljk1YTEgMSAwIDAgMS0uNjctLjAxQzcuNSAyMC41IDQgMTggNCAxM1Y2YTEgMSAwIDAgMSAxLTFjMiAwIDQuNS0xLjIgNi4yNC0yLjcyYTEuMTcgMS4xNyAwIDAgMSAxLjUyIDBDMTQuNTEgMy44MSAxNyA1IDE5IDVhMSAxIDAgMCAxIDEgMXoiCiAgICAgIH0KICAgIF0sCiAgICBbInBhdGgiLCB7IGQ6ICJNOS4xIDlhMyAzIDAgMCAxIDUuODIgMWMwIDItMyAzLTMgMyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgMTdoLjAxIiB9XQogIF07CgogIGNvbnN0IFNoaWVsZCA9IFsKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk0yMCAxM2MwIDUtMy41IDcuNS03LjY2IDguOTVhMSAxIDAgMCAxLS42Ny0uMDFDNy41IDIwLjUgNCAxOCA0IDEzVjZhMSAxIDAgMCAxIDEtMWMyIDAgNC41LTEuMiA2LjI0LTIuNzJhMS4xNyAxLjE3IDAgMCAxIDEuNTIgMEMxNC41MSAzLjgxIDE3IDUgMTkgNWExIDEgMCAwIDEgMSAxeiIKICAgICAgfQogICAgXQogIF07CgogIGNvbnN0IFNoaXBXaGVlbCA9IFsKICAgIFsiY2lyY2xlIiwgeyBjeDogIjEyIiwgY3k6ICIxMiIsIHI6ICI4IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xMiAydjcuNSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMTkgNS01LjIzIDUuMjMiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIyIDEyaC03LjUiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTE5IDE5LTUuMjMtNS4yMyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgMTQuNVYyMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTAuMjMgMTMuNzcgNSAxOSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNOS41IDEySDIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTEwLjIzIDEwLjIzIDUgNSIgfV0sCiAgICBbImNpcmNsZSIsIHsgY3g6ICIxMiIsIGN5OiAiMTIiLCByOiAiMi41IiB9XQogIF07CgogIGNvbnN0IFNoaXAgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgMTAuMTg5VjE0IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xMiAydjMiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE5IDEzVjdhMiAyIDAgMCAwLTItMkg3YTIgMiAwIDAgMC0yIDJ2NiIgfV0sCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMTkuMzggMjBBMTEuNiAxMS42IDAgMCAwIDIxIDE0bC04LjE4OC0zLjYzOWEyIDIgMCAwIDAtMS42MjQgMEwzIDE0YTExLjYgMTEuNiAwIDAgMCAyLjgxIDcuNzYiCiAgICAgIH0KICAgIF0sCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMiAyMWMuNi41IDEuMiAxIDIuNSAxIDIuNSAwIDIuNS0yIDUtMiAxLjMgMCAxLjkuNSAyLjUgMXMxLjIgMSAyLjUgMWMyLjUgMCAyLjUtMiA1LTIgMS4zIDAgMS45LjUgMi41IDEiCiAgICAgIH0KICAgIF0KICBdOwoKICBjb25zdCBTaGlydCA9IFsKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk0yMC4zOCAzLjQ2IDE2IDJhNCA0IDAgMCAxLTggMEwzLjYyIDMuNDZhMiAyIDAgMCAwLTEuMzQgMi4yM2wuNTggMy40N2ExIDEgMCAwIDAgLjk5Ljg0SDZ2MTBjMCAxLjEuOSAyIDIgMmg4YTIgMiAwIDAgMCAyLTJWMTBoMi4xNWExIDEgMCAwIDAgLjk5LS44NGwuNTgtMy40N2EyIDIgMCAwIDAtMS4zNC0yLjIzeiIKICAgICAgfQogICAgXQogIF07CgogIGNvbnN0IFNob3BwaW5nQmFnID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTE2IDEwYTQgNCAwIDAgMS04IDAiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTMuMTAzIDYuMDM0aDE3Ljc5NCIgfV0sCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMy40IDUuNDY3YTIgMiAwIDAgMC0uNCAxLjJWMjBhMiAyIDAgMCAwIDIgMmgxNGEyIDIgMCAwIDAgMi0yVjYuNjY3YTIgMiAwIDAgMC0uNC0xLjJsLTItMi42NjdBMiAyIDAgMCAwIDE3IDJIN2EyIDIgMCAwIDAtMS42Ljh6IgogICAgICB9CiAgICBdCiAgXTsKCiAgY29uc3QgU2hvcHBpbmdCYXNrZXQgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJtMTUgMTEtMSA5IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0xOSAxMS00LTciIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIgMTFoMjAiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTMuNSAxMSAxLjYgNy40YTIgMiAwIDAgMCAyIDEuNmg5LjhhMiAyIDAgMCAwIDItMS42bDEuNy03LjQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTQuNSAxNS41aDE1IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm01IDExIDQtNyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtOSAxMSAxIDkiIH1dCiAgXTsKCiAgY29uc3QgU2hvcHBpbmdDYXJ0ID0gWwogICAgWyJjaXJjbGUiLCB7IGN4OiAiOCIsIGN5OiAiMjEiLCByOiAiMSIgfV0sCiAgICBbImNpcmNsZSIsIHsgY3g6ICIxOSIsIGN5OiAiMjEiLCByOiAiMSIgfV0sCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgeyBkOiAiTTIuMDUgMi4wNWgybDIuNjYgMTIuNDJhMiAyIDAgMCAwIDIgMS41OGg5Ljc4YTIgMiAwIDAgMCAxLjk1LTEuNTdsMS42NS03LjQzSDUuMTIiIH0KICAgIF0KICBdOwoKICBjb25zdCBTaG92ZWwgPSBbCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMjEuNTYgNC41NmExLjUgMS41IDAgMCAxIDAgMi4xMjJsLS40Ny40N2EzIDMgMCAwIDEtNC4yMTItLjAzIDMgMyAwIDAgMSAwLTQuMjQzbC40NC0uNDRhMS41IDEuNSAwIDAgMSAyLjEyMSAweiIKICAgICAgfQogICAgXSwKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk0zIDIyYTEgMSAwIDAgMS0xLTF2LTMuNTg2YTEgMSAwIDAgMSAuMjkzLS43MDdsMy4zNTUtMy4zNTVhMS4yMDUgMS4yMDUgMCAwIDEgMS43MDQgMGwzLjI5NiAzLjI5NmExLjIwNSAxLjIwNSAwIDAgMSAwIDEuNzA0bC0zLjM1NSAzLjM1NWExIDEgMCAwIDEtLjcwNy4yOTN6IgogICAgICB9CiAgICBdLAogICAgWyJwYXRoIiwgeyBkOiAibTkgMTUgNy44NzktNy44NzgiIH1dCiAgXTsKCiAgY29uc3QgU2hvd2VySGVhZCA9IFsKICAgIFsicGF0aCIsIHsgZDogIm00IDQgMi41IDIuNSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTMuNSA2LjVhNC45NSA0Ljk1IDAgMCAwLTcgNyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTUgNSA1IDE1IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNCAxN3YuMDEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTEwIDE2di4wMSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTMgMTN2LjAxIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNiAxMHYuMDEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTExIDIwdi4wMSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTcgMTR2LjAxIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yMCAxMXYuMDEiIH1dCiAgXTsKCiAgY29uc3QgU2hyZWRkZXIgPSBbCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgeyBkOiAiTTQgMTNWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNi43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djUiIH0KICAgIF0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTAgMjJ2LTUiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE0IDE5di0yIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xOCAyMHYtMyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMiAxM2gyMCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNiAyMHYtMyIgfV0KICBdOwoKICBjb25zdCBTaHJpbXAgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTEgMTJoLjAxIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xMyAyMmMuNS0uNSAxLjEyLTEgMi41LTEtMS4zOCAwLTItLjUtMi41LTEiIH1dLAogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTE0IDJhMy4yOCAzLjI4IDAgMCAxLTMuMjI3IDEuNzk4bC02LjE3LS41NjFBMi4zODcgMi4zODcgMCAxIDAgNC4zODcgOEgxNS41YTEgMSAwIDAgMSAwIDEzIDEgMSAwIDAgMCAwLTVIMTJhNyA3IDAgMCAxLTctN1Y4IgogICAgICB9CiAgICBdLAogICAgWyJwYXRoIiwgeyBkOiAiTTE0IDhhOC41IDguNSAwIDAgMSAwIDgiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE2IDE2YzIgMCA0LjUtNCA0LTYiIH1dCiAgXTsKCiAgY29uc3QgU2hyaW5rID0gWwogICAgWyJwYXRoIiwgeyBkOiAibTE1IDE1IDYgNm0tNi02djQuOG0wLTQuOGg0LjgiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTkgMTkuOFYxNW0wIDBINC4yTTkgMTVsLTYgNiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTUgNC4yVjltMCAwaDQuOE0xNSA5bDYtNiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNOSA0LjJWOW0wIDBINC4yTTkgOSAzIDMiIH1dCiAgXTsKCiAgY29uc3QgU2hydWIgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgMjJ2LTUuMTcyYTIgMiAwIDAgMC0uNTg2LTEuNDE0TDkuNSAxMy41IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNC41IDE0LjUgMTIgMTciIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE3IDguOEE2IDYgMCAwIDEgMTMuOCAyMEgxMEE2LjUgNi41IDAgMCAxIDcgOGE1IDUgMCAwIDEgMTAgMHoiIH1dCiAgXTsKCiAgY29uc3QgU2lnbWEgPSBbCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMTggN1Y1YTEgMSAwIDAgMC0xLTFINi41YS41LjUgMCAwIDAtLjQuOGw0LjUgNmEyIDIgMCAwIDEgMCAyLjRsLTQuNSA2YS41LjUgMCAwIDAgLjQuOEgxN2ExIDEgMCAwIDAgMS0xdi0yIgogICAgICB9CiAgICBdCiAgXTsKCiAgY29uc3QgU2h1ZmZsZSA9IFsKICAgIFsicGF0aCIsIHsgZDogIm0xOCAxNCA0IDQtNCA0IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0xOCAyIDQgNC00IDQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIgMThoMS45NzNhNCA0IDAgMCAwIDMuMy0xLjdsNS40NTQtOC42YTQgNCAwIDAgMSAzLjMtMS43SDIyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yIDZoMS45NzJhNCA0IDAgMCAxIDMuNiAyLjIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIyIDE4aC02LjA0MWE0IDQgMCAwIDEtMy4zLTEuOGwtLjM1OS0uNDUiIH1dCiAgXTsKCiAgY29uc3QgU2lnbmFsSGlnaCA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0yIDIwaC4wMSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNyAyMHYtNCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgMjB2LTgiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE3IDIwVjgiIH1dCiAgXTsKCiAgY29uc3QgU2lnbmFsTG93ID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTIgMjBoLjAxIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk03IDIwdi00IiB9XQogIF07CgogIGNvbnN0IFNpZ25hbE1lZGl1bSA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0yIDIwaC4wMSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNyAyMHYtNCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgMjB2LTgiIH1dCiAgXTsKCiAgY29uc3QgU2lnbmFsWmVybyA9IFtbInBhdGgiLCB7IGQ6ICJNMiAyMGguMDEiIH1dXTsKCiAgY29uc3QgU2lnbmFsID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTIgMjBoLjAxIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk03IDIwdi00IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xMiAyMHYtOCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTcgMjBWOCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMjIgNHYxNiIgfV0KICBdOwoKICBjb25zdCBTaWduYXR1cmUgPSBbCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJtMjEgMTctMi4xNTYtMS44NjhBLjUuNSAwIDAgMCAxOCAxNS41di41YTEgMSAwIDAgMS0xIDFoLTJhMSAxIDAgMCAxLTEtMWMwLTIuNTQ1LTMuOTkxLTMuOTctOC41LTRhMSAxIDAgMCAwIDAgNWM0LjE1MyAwIDQuNzQ1LTExLjI5NSA1LjcwOC0xMy41YTIuNSAyLjUgMCAxIDEgMy4zMSAzLjI4NCIKICAgICAgfQogICAgXSwKICAgIFsicGF0aCIsIHsgZDogIk0zIDIxaDE4IiB9XQogIF07CgogIGNvbnN0IFNpZ25wb3N0QmlnID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTEwIDlINEwyIDdsMi0yaDYiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE0IDVoNmwyIDItMiAyaC02IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xMCAyMlY0YTIgMiAwIDEgMSA0IDB2MTgiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTggMjJoOCIgfV0KICBdOwoKICBjb25zdCBTaWducG9zdCA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xMiAxM3Y4IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xMiAzdjMiIH1dLAogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTIuMzU0IDEwLjM1NGExLjIwNyAxLjIwNyAwIDAgMSAwLTEuNzA4bDIuMDYtMi4wNkEyIDIgMCAwIDEgNS44MjggNmgxMi4zNDRhMiAyIDAgMCAxIDEuNDE0LjU4NmwyLjA2IDIuMDZhMS4yMDcgMS4yMDcgMCAwIDEgMCAxLjcwOGwtMi4wNiAyLjA2YTIgMiAwIDAgMS0xLjQxNC41ODZINS44MjhhMiAyIDAgMCAxLTEuNDE0LS41ODZ6IgogICAgICB9CiAgICBdCiAgXTsKCiAgY29uc3QgU2lyZW4gPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNNyAxOHYtNmE1IDUgMCAxIDEgMTAgMHY2IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk01IDIxYTEgMSAwIDAgMCAxIDFoMTJhMSAxIDAgMCAwIDEtMXYtMWEyIDIgMCAwIDAtMi0ySDdhMiAyIDAgMCAwLTIgMnoiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIxIDEyaDEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE4LjUgNC41IDE4IDUiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIgMTJoMSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgMnYxIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm00LjkyOSA0LjkyOS43MDcuNzA3IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xMiAxMnY2IiB9XQogIF07CgogIGNvbnN0IFNraXBCYWNrID0gWwogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTE3Ljk3MSA0LjI4NUEyIDIgMCAwIDEgMjEgNnYxMmEyIDIgMCAwIDEtMy4wMjkgMS43MTVsLTkuOTk3LTUuOTk4YTIgMiAwIDAgMS0uMDAzLTMuNDMyeiIKICAgICAgfQogICAgXSwKICAgIFsicGF0aCIsIHsgZDogIk0zIDIwVjQiIH1dCiAgXTsKCiAgY29uc3QgU2tpcEZvcndhcmQgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMjEgNHYxNiIgfV0sCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgeyBkOiAiTTYuMDI5IDQuMjg1QTIgMiAwIDAgMCAzIDZ2MTJhMiAyIDAgMCAwIDMuMDI5IDEuNzE1bDkuOTk3LTUuOTk4YTIgMiAwIDAgMCAuMDAzLTMuNDMyeiIgfQogICAgXQogIF07CgogIGNvbnN0IFNrdWxsID0gWwogICAgWyJwYXRoIiwgeyBkOiAibTEyLjUgMTctLjUtMS0uNSAxaDF6IiB9XSwKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk0xNSAyMmExIDEgMCAwIDAgMS0xdi0xYTIgMiAwIDAgMCAxLjU2LTMuMjUgOCA4IDAgMSAwLTExLjEyIDBBMiAyIDAgMCAwIDggMjB2MWExIDEgMCAwIDAgMSAxeiIKICAgICAgfQogICAgXSwKICAgIFsiY2lyY2xlIiwgeyBjeDogIjE1IiwgY3k6ICIxMiIsIHI6ICIxIiB9XSwKICAgIFsiY2lyY2xlIiwgeyBjeDogIjkiLCBjeTogIjEyIiwgcjogIjEiIH1dCiAgXTsKCiAgY29uc3QgU2xhc2ggPSBbWyJwYXRoIiwgeyBkOiAiTTIyIDIgMiAyMiIgfV1dOwoKICBjb25zdCBTbGljZSA9IFsKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk0xMSAxNi41ODZWMTlhMSAxIDAgMCAxLTEgMUgyTDE4LjM3IDMuNjNhMSAxIDAgMSAxIDMgM2wtOS42NjMgOS42NjNhMSAxIDAgMCAxLTEuNDE0IDBMOCAxNCIKICAgICAgfQogICAgXQogIF07CgogIGNvbnN0IFNsaWRlcnNIb3Jpem9udGFsID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTEwIDVIMyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgMTlIMyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTQgM3Y0IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNiAxN3Y0IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yMSAxMmgtOSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMjEgMTloLTUiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIxIDVoLTciIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTggMTB2NCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNOCAxMkgzIiB9XQogIF07CgogIGNvbnN0IFNsaWRlcnNWZXJ0aWNhbCA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xMCA4aDQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDIxdi05IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xMiA4VjMiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE3IDE2aDQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE5IDEyVjMiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE5IDIxdi01IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0zIDE0aDQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTUgMTBWMyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNSAyMXYtNyIgfV0KICBdOwoKICBjb25zdCBTbWFydHBob25lQ2hhcmdpbmcgPSBbCiAgICBbInJlY3QiLCB7IHdpZHRoOiAiMTQiLCBoZWlnaHQ6ICIyMCIsIHg6ICI1IiwgeTogIjIiLCByeDogIjIiLCByeTogIjIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTEyLjY2NyA4IDEwIDEyaDRsLTIuNjY3IDQiIH1dCiAgXTsKCiAgY29uc3QgU21hcnRwaG9uZU5mYyA9IFsKICAgIFsicmVjdCIsIHsgd2lkdGg6ICI3IiwgaGVpZ2h0OiAiMTIiLCB4OiAiMiIsIHk6ICI2Iiwgcng6ICIxIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xMyA4LjMyYTcuNDMgNy40MyAwIDAgMSAwIDcuMzYiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE2LjQ2IDYuMjFhMTEuNzYgMTEuNzYgMCAwIDEgMCAxMS41OCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTkuOTEgNC4xYTE1LjkxIDE1LjkxIDAgMCAxIC4wMSAxNS44IiB9XQogIF07CgogIGNvbnN0IFNtYXJ0cGhvbmUgPSBbCiAgICBbInJlY3QiLCB7IHdpZHRoOiAiMTQiLCBoZWlnaHQ6ICIyMCIsIHg6ICI1IiwgeTogIjIiLCByeDogIjIiLCByeTogIjIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDE4aC4wMSIgfV0KICBdOwoKICBjb25zdCBTbWlsZVBsdXMgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMjIgMTF2MWExMCAxMCAwIDEgMS05LTEwIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk04IDE0czEuNSAyIDQgMiA0LTIgNC0yIiB9XSwKICAgIFsibGluZSIsIHsgeDE6ICI5IiwgeDI6ICI5LjAxIiwgeTE6ICI5IiwgeTI6ICI5IiB9XSwKICAgIFsibGluZSIsIHsgeDE6ICIxNSIsIHgyOiAiMTUuMDEiLCB5MTogIjkiLCB5MjogIjkiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE2IDVoNiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTkgMnY2IiB9XQogIF07CgogIGNvbnN0IFNtaWxlID0gWwogICAgWyJjaXJjbGUiLCB7IGN4OiAiMTIiLCBjeTogIjEyIiwgcjogIjEwIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk04IDE0czEuNSAyIDQgMiA0LTIgNC0yIiB9XSwKICAgIFsibGluZSIsIHsgeDE6ICI5IiwgeDI6ICI5LjAxIiwgeTE6ICI5IiwgeTI6ICI5IiB9XSwKICAgIFsibGluZSIsIHsgeDE6ICIxNSIsIHgyOiAiMTUuMDEiLCB5MTogIjkiLCB5MjogIjkiIH1dCiAgXTsKCiAgY29uc3QgU25haWwgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMiAxM2E2IDYgMCAxIDAgMTIgMCA0IDQgMCAxIDAtOCAwIDIgMiAwIDAgMCA0IDAiIH1dLAogICAgWyJjaXJjbGUiLCB7IGN4OiAiMTAiLCBjeTogIjEzIiwgcjogIjgiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIgMjFoMTJjNC40IDAgOC0zLjYgOC04VjdhMiAyIDAgMSAwLTQgMHY2IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xOCAzIDE5LjEgNS4yIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yMiAzIDIwLjkgNS4yIiB9XQogIF07CgogIGNvbnN0IFNub3dmbGFrZSA9IFsKICAgIFsicGF0aCIsIHsgZDogIm0xMCAyMC0xLjI1LTIuNUw2IDE4IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xMCA0IDguNzUgNi41IDYgNiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMTQgMjAgMS4yNS0yLjVMMTggMTgiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTE0IDQgMS4yNSAyLjVMMTggNiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMTcgMjEtMy02aC00IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0xNyAzLTMgNiAxLjUgMyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMiAxMmg2LjVMMTAgOSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMjAgMTAtMS41IDIgMS41IDIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIyIDEyaC02LjVMMTQgMTUiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTQgMTAgMS41IDJMNCAxNCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtNyAyMSAzLTYtMS41LTMiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTcgMyAzIDZoNCIgfV0KICBdOwoKICBjb25zdCBTb2FwRGlzcGVuc2VyRHJvcGxldCA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xMC41IDJ2NCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTQgMkg3YTIgMiAwIDAgMC0yIDIiIH1dLAogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTE5LjI5IDE0Ljc2QTYuNjcgNi42NyAwIDAgMSAxNyAxMWE2LjYgNi42IDAgMCAxLTIuMjkgMy43NmMtMS4xNS45Mi0xLjcxIDIuMDQtMS43MSAzLjE5IDAgMi4yMiAxLjggNC4wNSA0IDQuMDVzNC0xLjgzIDQtNC4wNWMwLTEuMTYtLjU3LTIuMjYtMS43MS0zLjE5IgogICAgICB9CiAgICBdLAogICAgWyJwYXRoIiwgeyBkOiAiTTkuNjA3IDIxSDZhMiAyIDAgMCAxLTItMnYtN2EyIDIgMCAwIDEgMi0yaDdWN2ExIDEgMCAwIDAtMS0xSDlhMSAxIDAgMCAwLTEgMXYzIiB9XQogIF07CgogIGNvbnN0IFNvZmEgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMjAgOVY2YTIgMiAwIDAgMC0yLTJINmEyIDIgMCAwIDAtMiAydjMiIH1dLAogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTIgMTZhMiAyIDAgMCAwIDIgMmgxNmEyIDIgMCAwIDAgMi0ydi01YTIgMiAwIDAgMC00IDB2MS41YS41LjUgMCAwIDEtLjUuNWgtMTFhLjUuNSAwIDAgMS0uNS0uNVYxMWEyIDIgMCAwIDAtNCAweiIKICAgICAgfQogICAgXSwKICAgIFsicGF0aCIsIHsgZDogIk00IDE4djIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIwIDE4djIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDR2OSIgfV0KICBdOwoKICBjb25zdCBTb2xhclBhbmVsID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTExIDJoMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMTQuMjggMTQtNC41NiA4IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0yMSAyMi0xLjU1OC00SDQuNTU4IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0zIDEwdjIiIH1dLAogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTYuMjQ1IDE1LjA0QTIgMiAwIDAgMSA4IDE0aDEyYTEgMSAwIDAgMSAuODY0IDEuNTA1bC0zLjExIDUuNDU3QTIgMiAwIDAgMSAxNiAyMkg0YTEgMSAwIDAgMS0uODYzLTEuNTA2eiIKICAgICAgfQogICAgXSwKICAgIFsicGF0aCIsIHsgZDogIk03IDJhNCA0IDAgMCAxLTQgNCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtOC42NiA3LjY2IDEuNDEgMS40MSIgfV0KICBdOwoKICBjb25zdCBTb3VwID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDIxYTkgOSAwIDAgMCA5LTlIM2E5IDkgMCAwIDAgOSA5WiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNyAyMWgxMCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTkuNSAxMiAyMiA2IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNi4yNSAzYy4yNy4xLjguNTMuNzUgMS4zNi0uMDYuODMtLjkzIDEuMi0xIDIuMDItLjA1Ljc4LjM0IDEuMjQuNzMgMS42MiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTEuMjUgM2MuMjcuMS44LjUzLjc0IDEuMzYtLjA1LjgzLS45MyAxLjItLjk4IDIuMDItLjA2Ljc4LjMzIDEuMjQuNzIgMS42MiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNi4yNSAzYy4yNy4xLjguNTMuNzUgMS4zNi0uMDYuODMtLjkzIDEuMi0xIDIuMDItLjA1Ljc4LjM0IDEuMjQuNzQgMS42MiIgfV0KICBdOwoKICBjb25zdCBTcGFjZSA9IFtbInBhdGgiLCB7IGQ6ICJNMjIgMTd2MWMwIC41LS41IDEtMSAxSDNjLS41IDAtMS0uNS0xLTF2LTEiIH1dXTsKCiAgY29uc3QgU3BhZGUgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgMTh2NCIgfV0sCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMiAxNC40OTlhNS41IDUuNSAwIDAgMCA5LjU5MSAzLjY3NS42LjYgMCAwIDEgLjgxOC4wMDFBNS41IDUuNSAwIDAgMCAyMiAxNC41YzAtMi4yOS0xLjUtNC0zLTUuNWwtNS40OTItNS4zMTJhMiAyIDAgMCAwLTMtLjAyTDUgOC45OTljLTEuNSAxLjUtMyAzLjItMyA1LjUiCiAgICAgIH0KICAgIF0KICBdOwoKICBjb25zdCBTcGFya2xlID0gWwogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTExLjAxNyAyLjgxNGExIDEgMCAwIDEgMS45NjYgMGwxLjA1MSA1LjU1OGEyIDIgMCAwIDAgMS41OTQgMS41OTRsNS41NTggMS4wNTFhMSAxIDAgMCAxIDAgMS45NjZsLTUuNTU4IDEuMDUxYTIgMiAwIDAgMC0xLjU5NCAxLjU5NGwtMS4wNTEgNS41NThhMSAxIDAgMCAxLTEuOTY2IDBsLTEuMDUxLTUuNTU4YTIgMiAwIDAgMC0xLjU5NC0xLjU5NGwtNS41NTgtMS4wNTFhMSAxIDAgMCAxIDAtMS45NjZsNS41NTgtMS4wNTFhMiAyIDAgMCAwIDEuNTk0LTEuNTk0eiIKICAgICAgfQogICAgXQogIF07CgogIGNvbnN0IFNwYXJrbGVzID0gWwogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTExLjAxNyAyLjgxNGExIDEgMCAwIDEgMS45NjYgMGwxLjA1MSA1LjU1OGEyIDIgMCAwIDAgMS41OTQgMS41OTRsNS41NTggMS4wNTFhMSAxIDAgMCAxIDAgMS45NjZsLTUuNTU4IDEuMDUxYTIgMiAwIDAgMC0xLjU5NCAxLjU5NGwtMS4wNTEgNS41NThhMSAxIDAgMCAxLTEuOTY2IDBsLTEuMDUxLTUuNTU4YTIgMiAwIDAgMC0xLjU5NC0xLjU5NGwtNS41NTgtMS4wNTFhMSAxIDAgMCAxIDAtMS45NjZsNS41NTgtMS4wNTFhMiAyIDAgMCAwIDEuNTk0LTEuNTk0eiIKICAgICAgfQogICAgXSwKICAgIFsicGF0aCIsIHsgZDogIk0yMCAydjQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIyIDRoLTQiIH1dLAogICAgWyJjaXJjbGUiLCB7IGN4OiAiNCIsIGN5OiAiMjAiLCByOiAiMiIgfV0KICBdOwoKICBjb25zdCBTcGVha2VyID0gWwogICAgWyJyZWN0IiwgeyB3aWR0aDogIjE2IiwgaGVpZ2h0OiAiMjAiLCB4OiAiNCIsIHk6ICIyIiwgcng6ICIyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xMiA2aC4wMSIgfV0sCiAgICBbImNpcmNsZSIsIHsgY3g6ICIxMiIsIGN5OiAiMTQiLCByOiAiNCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgMTRoLjAxIiB9XQogIF07CgogIGNvbnN0IFNwZWVjaCA9IFsKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk04LjggMjB2LTQuMWwxLjkuMmEyLjMgMi4zIDAgMCAwIDIuMTY0LTIuMVY4LjNBNS4zNyA1LjM3IDAgMCAwIDIgOC4yNWMwIDIuOC42NTYgMy4wNTQgMSA0LjU1YTUuNzcgNS43NyAwIDAgMSAuMDI5IDIuNzU4TDIgMjAiCiAgICAgIH0KICAgIF0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTkuOCAxNy44YTcuNSA3LjUgMCAwIDAgLjAwMy0xMC42MDMiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE3IDE1YTMuNSAzLjUgMCAwIDAtLjAyNS00Ljk3NSIgfV0KICBdOwoKICBjb25zdCBTcGVsbENoZWNrMiA9IFsKICAgIFsicGF0aCIsIHsgZDogIm02IDE2IDYtMTIgNiAxMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNOCAxMmg4IiB9XSwKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk00IDIxYzEuMSAwIDEuMS0xIDIuMy0xczEuMSAxIDIuMyAxYzEuMSAwIDEuMS0xIDIuMy0xIDEuMSAwIDEuMSAxIDIuMyAxIDEuMSAwIDEuMS0xIDIuMy0xIDEuMSAwIDEuMSAxIDIuMyAxIDEuMSAwIDEuMS0xIDIuMy0xIgogICAgICB9CiAgICBdCiAgXTsKCiAgY29uc3QgU3BlbGxDaGVjayA9IFsKICAgIFsicGF0aCIsIHsgZDogIm02IDE2IDYtMTIgNiAxMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNOCAxMmg4IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0xNiAyMCAyIDIgNC00IiB9XQogIF07CgogIGNvbnN0IFNwbGluZVBvaW50ZXIgPSBbCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMTIuMDM0IDEyLjY4MWEuNDk4LjQ5OCAwIDAgMSAuNjQ3LS42NDdsOSAzLjVhLjUuNSAwIDAgMS0uMDMzLjk0M2wtMy40NDQgMS4wNjhhMSAxIDAgMCAwLS42Ni42NmwtMS4wNjcgMy40NDNhLjUuNSAwIDAgMS0uOTQzLjAzM3oiCiAgICAgIH0KICAgIF0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNSAxN0ExMiAxMiAwIDAgMSAxNyA1IiB9XSwKICAgIFsiY2lyY2xlIiwgeyBjeDogIjE5IiwgY3k6ICI1IiwgcjogIjIiIH1dLAogICAgWyJjaXJjbGUiLCB7IGN4OiAiNSIsIGN5OiAiMTkiLCByOiAiMiIgfV0KICBdOwoKICBjb25zdCBTcGxpdCA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xNiAzaDV2NSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNOCAzSDN2NSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgMjJ2LTguM2E0IDQgMCAwIDAtMS4xNzItMi44NzJMMyAzIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0xNSA5IDYtNiIgfV0KICBdOwoKICBjb25zdCBTcGxpbmUgPSBbCiAgICBbImNpcmNsZSIsIHsgY3g6ICIxOSIsIGN5OiAiNSIsIHI6ICIyIiB9XSwKICAgIFsiY2lyY2xlIiwgeyBjeDogIjUiLCBjeTogIjE5IiwgcjogIjIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTUgMTdBMTIgMTIgMCAwIDEgMTcgNSIgfV0KICBdOwoKICBjb25zdCBTcG9vbCA9IFsKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk0xNyAxMy40NCA0LjQ0MiAxNy4wODJBMiAyIDAgMCAwIDQuOTgyIDIxSDE5YTIgMiAwIDAgMCAuNTU4LTMuOTIxbC0xLjExNS0uMzJBMiAyIDAgMCAxIDE3IDE0LjgzN1Y3LjY2IgogICAgICB9CiAgICBdLAogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAibTcgMTAuNTYgMTIuNTU4LTMuNjQyQTIgMiAwIDAgMCAxOS4wMTggM0g1YTIgMiAwIDAgMC0uNTU4IDMuOTIxbDEuMTE1LjMyQTIgMiAwIDAgMSA3IDkuMTYzdjcuMTc4IgogICAgICB9CiAgICBdCiAgXTsKCiAgY29uc3QgU3BvcnRTaG9lID0gWwogICAgWyJwYXRoIiwgeyBkOiAibTE1IDEwLjQyIDQuOC01LjA3IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xOSAxOGgzIiB9XSwKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk05LjUgMjIgMjEuNDE0IDkuNDE1QTIgMiAwIDAgMCAyMS4yIDYuNGwtNS42MS00LjIwOEExIDEgMCAwIDAgMTQgM3YyYTIgMiAwIDAgMS0xLjM5NCAxLjkwNkw4LjY3NyA4LjA1M0ExIDEgMCAwIDAgOCA5Yy0uMTU1IDYuMzkzLTIuMDgyIDktNCA5YTIgMiAwIDAgMCAwIDRoMTQiCiAgICAgIH0KICAgIF0KICBdOwoKICBjb25zdCBTcG90bGlnaHQgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTUuMjk1IDE5LjU2MiAxNiAyMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMTcgMTYgMy43NTggMi4wOTgiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTE5IDEyLjUgMy4wMjYtLjU5OCIgfV0sCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNNy42MSA2LjNhMyAzIDAgMCAwLTMuOTIgMS4zbC0xLjM4IDIuNzlhMyAzIDAgMCAwIDEuMyAzLjkxbDYuODkgMy41OTdhMSAxIDAgMCAwIDEuMzQyLS40NDdsMy4xMDYtNi4yMTFhMSAxIDAgMCAwLS40NDctMS4zNDF6IgogICAgICB9CiAgICBdLAogICAgWyJwYXRoIiwgeyBkOiAiTTggOVYyIiB9XQogIF07CgogIGNvbnN0IFNwcmF5Q2FuID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTMgM2guMDEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTcgNWguMDEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTExIDdoLjAxIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0zIDdoLjAxIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk03IDloLjAxIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0zIDExaC4wMSIgfV0sCiAgICBbInJlY3QiLCB7IHdpZHRoOiAiNCIsIGhlaWdodDogIjQiLCB4OiAiMTUiLCB5OiAiNSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMTkgOSAyIDJ2MTBjMCAuNi0uNCAxLTEgMWgtNmMtLjYgMC0xLS40LTEtMVYxMWwyLTIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTEzIDE0IDgtMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMTMgMTkgOC0yIiB9XQogIF07CgogIGNvbnN0IFNwcm91dCA9IFsKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk0xNCA5LjUzNlY3YTQgNCAwIDAgMSA0LTRoMS41YS41LjUgMCAwIDEgLjUuNVY1YTQgNCAwIDAgMS00IDQgNCA0IDAgMCAwLTQgNGMwIDIgMSAzIDEgNWE1IDUgMCAwIDEtMSAzIgogICAgICB9CiAgICBdLAogICAgWyJwYXRoIiwgeyBkOiAiTTQgOWE1IDUgMCAwIDEgOCA0IDUgNSAwIDAgMS04LTQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTUgMjFoMTQiIH1dCiAgXTsKCiAgY29uc3QgU3F1YXJlQWN0aXZpdHkgPSBbCiAgICBbInJlY3QiLCB7IHdpZHRoOiAiMTgiLCBoZWlnaHQ6ICIxOCIsIHg6ICIzIiwgeTogIjMiLCByeDogIjIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE3IDEyaC0ybC0yIDUtMi0xMC0yIDVINyIgfV0KICBdOwoKICBjb25zdCBTcXVhcmVBcnJvd0Rvd25MZWZ0ID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTE1IDE1SDlsNi02IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk05IDE1VjkiIH1dLAogICAgWyJyZWN0IiwgeyB4OiAiMyIsIHk6ICIzIiwgd2lkdGg6ICIxOCIsIGhlaWdodDogIjE4Iiwgcng6ICIyIiB9XQogIF07CgogIGNvbnN0IFNxdWFyZUFycm93RG93blJpZ2h0ID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTE1IDE1IDkgOSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNOSAxNWg2VjkiIH1dLAogICAgWyJyZWN0IiwgeyB4OiAiMyIsIHk6ICIzIiwgd2lkdGg6ICIxOCIsIGhlaWdodDogIjE4Iiwgcng6ICIyIiB9XQogIF07CgogIGNvbnN0IFNxdWFyZUFycm93RG93biA9IFsKICAgIFsicmVjdCIsIHsgd2lkdGg6ICIxOCIsIGhlaWdodDogIjE4IiwgeDogIjMiLCB5OiAiMyIsIHJ4OiAiMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgOHY4IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm04IDEyIDQgNCA0LTQiIH1dCiAgXTsKCiAgY29uc3QgU3F1YXJlQXJyb3dMZWZ0ID0gWwogICAgWyJyZWN0IiwgeyB3aWR0aDogIjE4IiwgaGVpZ2h0OiAiMTgiLCB4OiAiMyIsIHk6ICIzIiwgcng6ICIyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0xMiA4LTQgNCA0IDQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE2IDEySDgiIH1dCiAgXTsKCiAgY29uc3QgU3F1YXJlQXJyb3dPdXREb3duUmlnaHQgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMjEgMTFWNWEyIDIgMCAwIDAtMi0ySDVhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDYiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTIxIDIxLTktOSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMjEgMTV2NmgtNiIgfV0KICBdOwoKICBjb25zdCBTcXVhcmVBcnJvd091dERvd25MZWZ0ID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTEzIDIxaDZhMiAyIDAgMCAwIDItMlY1YTIgMiAwIDAgMC0yLTJINWEyIDIgMCAwIDAtMiAydjYiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTMgMjEgOS05IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk05IDIxSDN2LTYiIH1dCiAgXTsKCiAgY29uc3QgU3F1YXJlQXJyb3dPdXRVcExlZnQgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTMgM2g2YTIgMiAwIDAgMSAyIDJ2MTRhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJ2LTYiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTMgMyA5IDkiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTMgOVYzaDYiIH1dCiAgXTsKCiAgY29uc3QgU3F1YXJlQXJyb3dPdXRVcFJpZ2h0ID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTIxIDEzdjZhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDYiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTIxIDMtOSA5IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNSAzaDZ2NiIgfV0KICBdOwoKICBjb25zdCBTcXVhcmVBcnJvd1JpZ2h0RW50ZXIgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJtMTAgMTYgNC00LTQtNCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMyAxMmgxMSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMyA4VjVhMiAyIDAgMCAxIDItMmgxNGEyIDIgMCAwIDEgMiAydjE0YTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0ydi0zIiB9XQogIF07CgogIGNvbnN0IFNxdWFyZUFycm93UmlnaHRFeGl0ID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTEwIDEyaDExIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0xNyAxNiA0LTQtNC00IiB9XSwKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7IGQ6ICJNMjEgNi4zNDRWNWEyIDIgMCAwIDAtMi0ySDVhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDE0YTIgMiAwIDAgMCAyLTJ2LTEuMzQ0IiB9CiAgICBdCiAgXTsKCiAgY29uc3QgU3F1YXJlQXJyb3dSaWdodCA9IFsKICAgIFsicmVjdCIsIHsgd2lkdGg6ICIxOCIsIGhlaWdodDogIjE4IiwgeDogIjMiLCB5OiAiMyIsIHJ4OiAiMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNOCAxMmg4IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0xMiAxNiA0LTQtNC00IiB9XQogIF07CgogIGNvbnN0IFNxdWFyZUFycm93VXBMZWZ0ID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTE1IDE1IDkgOSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNOSAxNVY5aDYiIH1dLAogICAgWyJyZWN0IiwgeyB4OiAiMyIsIHk6ICIzIiwgd2lkdGg6ICIxOCIsIGhlaWdodDogIjE4Iiwgcng6ICIyIiB9XQogIF07CgogIGNvbnN0IFNxdWFyZUFycm93VXBSaWdodCA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xNSAxNVY5SDkiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTkgMTUgNi02IiB9XSwKICAgIFsicmVjdCIsIHsgeDogIjMiLCB5OiAiMyIsIHdpZHRoOiAiMTgiLCBoZWlnaHQ6ICIxOCIsIHJ4OiAiMiIgfV0KICBdOwoKICBjb25zdCBTcXVhcmVBcnJvd1VwID0gWwogICAgWyJyZWN0IiwgeyB3aWR0aDogIjE4IiwgaGVpZ2h0OiAiMTgiLCB4OiAiMyIsIHk6ICIzIiwgcng6ICIyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0xNiAxMi00LTQtNCA0IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xMiAxNlY4IiB9XQogIF07CgogIGNvbnN0IFNxdWFyZUFzdGVyaXNrID0gWwogICAgWyJyZWN0IiwgeyB3aWR0aDogIjE4IiwgaGVpZ2h0OiAiMTgiLCB4OiAiMyIsIHk6ICIzIiwgcng6ICIyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xMiA4djgiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTguNSAxNCA3LTQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTguNSAxMCA3IDQiIH1dCiAgXTsKCiAgY29uc3QgU3F1YXJlQm90dG9tRGFzaGVkU2Npc3NvcnMgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTQgMjFoMSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMTcgMTctMi4xOC0yLjE4IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk01IDIxYTIgMiAwIDAxLTItMlY1YTIgMiAwIDAxMi0yaDE0YTIgMiAwIDAxMiAydjE0YTIgMiAwIDAxLTIgMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNOSAyMWgxIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk05LjU2IDE0LjQ0IDE3IDciIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTkuNTYgOS41NiAxMiAxMiIgfV0sCiAgICBbImNpcmNsZSIsIHsgY3g6ICI4LjUiLCBjeTogIjE1LjUiLCByOiAiMS41IiB9XSwKICAgIFsiY2lyY2xlIiwgeyBjeDogIjguNSIsIGN5OiAiOC41IiwgcjogIjEuNSIgfV0KICBdOwoKICBjb25zdCBTcXVhcmVDZW50ZXJsaW5lRGFzaGVkSG9yaXpvbnRhbCA9IFsKICAgIFsicGF0aCIsIHsgZDogIk04IDNINWEyIDIgMCAwIDAtMiAydjE0YzAgMS4xLjkgMiAyIDJoMyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTYgM2gzYTIgMiAwIDAgMSAyIDJ2MTRhMiAyIDAgMCAxLTIgMmgtMyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgMjB2MiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgMTR2MiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgOHYyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xMiAydjIiIH1dCiAgXTsKCiAgY29uc3QgU3F1YXJlQ2VudGVybGluZURhc2hlZFZlcnRpY2FsID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTIxIDhWNWEyIDIgMCAwIDAtMi0ySDVhMiAyIDAgMCAwLTIgMnYzIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yMSAxNnYzYTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0ydi0zIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk00IDEySDIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTEwIDEySDgiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE2IDEyaC0yIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yMiAxMmgtMiIgfV0KICBdOwoKICBjb25zdCBTcXVhcmVDaGVja0JpZyA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0yMSAxMC42NTZWMTlhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDEyLjM0NCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtOSAxMSAzIDNMMjIgNCIgfV0KICBdOwoKICBjb25zdCBTcXVhcmVDaGFydEdhbnR0ID0gWwogICAgWyJyZWN0IiwgeyB3aWR0aDogIjE4IiwgaGVpZ2h0OiAiMTgiLCB4OiAiMyIsIHk6ICIzIiwgcng6ICIyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk05IDhoNyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNOCAxMmg2IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xMSAxNmg1IiB9XQogIF07CgogIGNvbnN0IFNxdWFyZUNoZXZyb25Eb3duID0gWwogICAgWyJyZWN0IiwgeyB3aWR0aDogIjE4IiwgaGVpZ2h0OiAiMTgiLCB4OiAiMyIsIHk6ICIzIiwgcng6ICIyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0xNiAxMC00IDQtNC00IiB9XQogIF07CgogIGNvbnN0IFNxdWFyZUNoZWNrID0gWwogICAgWyJyZWN0IiwgeyB3aWR0aDogIjE4IiwgaGVpZ2h0OiAiMTgiLCB4OiAiMyIsIHk6ICIzIiwgcng6ICIyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm05IDEyIDIgMiA0LTQiIH1dCiAgXTsKCiAgY29uc3QgU3F1YXJlQ2hldnJvbkxlZnQgPSBbCiAgICBbInJlY3QiLCB7IHdpZHRoOiAiMTgiLCBoZWlnaHQ6ICIxOCIsIHg6ICIzIiwgeTogIjMiLCByeDogIjIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTE0IDE2LTQtNCA0LTQiIH1dCiAgXTsKCiAgY29uc3QgU3F1YXJlQ2hldnJvblJpZ2h0ID0gWwogICAgWyJyZWN0IiwgeyB3aWR0aDogIjE4IiwgaGVpZ2h0OiAiMTgiLCB4OiAiMyIsIHk6ICIzIiwgcng6ICIyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0xMCA4IDQgNC00IDQiIH1dCiAgXTsKCiAgY29uc3QgU3F1YXJlQ2hldnJvblVwID0gWwogICAgWyJyZWN0IiwgeyB3aWR0aDogIjE4IiwgaGVpZ2h0OiAiMTgiLCB4OiAiMyIsIHk6ICIzIiwgcng6ICIyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm04IDE0IDQtNCA0IDQiIH1dCiAgXTsKCiAgY29uc3QgU3F1YXJlQ29kZSA9IFsKICAgIFsicGF0aCIsIHsgZDogIm0xMCA5LTMgMyAzIDMiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTE0IDE1IDMtMy0zLTMiIH1dLAogICAgWyJyZWN0IiwgeyB4OiAiMyIsIHk6ICIzIiwgd2lkdGg6ICIxOCIsIGhlaWdodDogIjE4Iiwgcng6ICIyIiB9XQogIF07CgogIGNvbnN0IFNxdWFyZURhc2hlZEJvdHRvbUNvZGUgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTAgOS41IDggMTJsMiAyLjUiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE0IDIxaDEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTE0IDkuNSAyIDIuNS0yIDIuNSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNSAyMWEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmgxNGEyIDIgMCAwIDEgMiAydjE0YTIgMiAwIDAgMS0yIDIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTkgMjFoMSIgfV0KICBdOwoKICBjb25zdCBTcXVhcmVEYXNoZWRCb3R0b20gPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNNSAyMWEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmgxNGEyIDIgMCAwIDEgMiAydjE0YTIgMiAwIDAgMS0yIDIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTkgMjFoMSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTQgMjFoMSIgfV0KICBdOwoKICBjb25zdCBTcXVhcmVEYXNoZWRLYW5iYW4gPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNOCA3djciIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDd2NCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTYgN3Y5IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk01IDNhMiAyIDAgMCAwLTIgMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNOSAzaDEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE0IDNoMSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTkgM2EyIDIgMCAwIDEgMiAyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yMSA5djEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIxIDE0djEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIxIDE5YTIgMiAwIDAgMS0yIDIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE0IDIxaDEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTkgMjFoMSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNSAyMWEyIDIgMCAwIDEtMi0yIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0zIDE0djEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTMgOXYxIiB9XQogIF07CgogIGNvbnN0IFNxdWFyZURhc2hlZE1vdXNlUG9pbnRlciA9IFsKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk0xMi4wMzQgMTIuNjgxYS40OTguNDk4IDAgMCAxIC42NDctLjY0N2w5IDMuNWEuNS41IDAgMCAxLS4wMzMuOTQzbC0zLjQ0NCAxLjA2OGExIDEgMCAwIDAtLjY2LjY2bC0xLjA2NyAzLjQ0M2EuNS41IDAgMCAxLS45NDMuMDMzeiIKICAgICAgfQogICAgXSwKICAgIFsicGF0aCIsIHsgZDogIk01IDNhMiAyIDAgMCAwLTIgMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTkgM2EyIDIgMCAwIDEgMiAyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk01IDIxYTIgMiAwIDAgMS0yLTIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTkgM2gxIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk05IDIxaDIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE0IDNoMSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMyA5djEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIxIDl2MiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMyAxNHYxIiB9XQogIF07CgogIGNvbnN0IFNxdWFyZURhc2hlZFRleHQgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTQgMjFoMSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTQgM2gxIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xOSAzYTIgMiAwIDAgMSAyIDIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIxIDE0djEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIxIDE5YTIgMiAwIDAgMS0yIDIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIxIDl2MSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMyAxNHYxIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0zIDl2MSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNSAyMWEyIDIgMCAwIDEtMi0yIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk01IDNhMiAyIDAgMCAwLTIgMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNyAxMmgxMCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNyAxNmg2IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk03IDhoOCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNOSAyMWgxIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk05IDNoMSIgfV0KICBdOwoKICBjb25zdCBTcXVhcmVEYXNoZWRUb3BTb2xpZCA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xNCAyMWgxIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yMSAxNHYxIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yMSAxOWEyIDIgMCAwIDEtMiAyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yMSA5djEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTMgMTR2MSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMyA1YTIgMiAwIDAgMSAyLTJoMTRhMiAyIDAgMCAxIDIgMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMyA5djEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTUgMjFhMiAyIDAgMCAxLTItMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNOSAyMWgxIiB9XQogIF07CgogIGNvbnN0IFNxdWFyZURhc2hlZCA9IFsKICAgIFsicGF0aCIsIHsgZDogIk01IDNhMiAyIDAgMCAwLTIgMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTkgM2EyIDIgMCAwIDEgMiAyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yMSAxOWEyIDIgMCAwIDEtMiAyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk01IDIxYTIgMiAwIDAgMS0yLTIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTkgM2gxIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk05IDIxaDEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE0IDNoMSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTQgMjFoMSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMyA5djEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIxIDl2MSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMyAxNHYxIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yMSAxNHYxIiB9XQogIF07CgogIGNvbnN0IFNxdWFyZURpdmlkZSA9IFsKICAgIFsicmVjdCIsIHsgd2lkdGg6ICIxOCIsIGhlaWdodDogIjE4IiwgeDogIjMiLCB5OiAiMyIsIHJ4OiAiMiIsIHJ5OiAiMiIgfV0sCiAgICBbImxpbmUiLCB7IHgxOiAiOCIsIHgyOiAiMTYiLCB5MTogIjEyIiwgeTI6ICIxMiIgfV0sCiAgICBbImxpbmUiLCB7IHgxOiAiMTIiLCB4MjogIjEyIiwgeTE6ICIxNiIsIHkyOiAiMTYiIH1dLAogICAgWyJsaW5lIiwgeyB4MTogIjEyIiwgeDI6ICIxMiIsIHkxOiAiOCIsIHkyOiAiOCIgfV0KICBdOwoKICBjb25zdCBTcXVhcmVEb3QgPSBbCiAgICBbInJlY3QiLCB7IHdpZHRoOiAiMTgiLCBoZWlnaHQ6ICIxOCIsIHg6ICIzIiwgeTogIjMiLCByeDogIjIiIH1dLAogICAgWyJjaXJjbGUiLCB7IGN4OiAiMTIiLCBjeTogIjEyIiwgcjogIjEiIH1dCiAgXTsKCiAgY29uc3QgU3F1YXJlRnVuY3Rpb24gPSBbCiAgICBbInJlY3QiLCB7IHdpZHRoOiAiMTgiLCBoZWlnaHQ6ICIxOCIsIHg6ICIzIiwgeTogIjMiLCByeDogIjIiLCByeTogIjIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTkgMTdjMiAwIDIuOC0xIDIuOC0yLjhWMTBjMC0yIDEtMy4zIDMuMi0zIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk05IDExLjJoNS43IiB9XQogIF07CgogIGNvbnN0IFNxdWFyZUVxdWFsID0gWwogICAgWyJyZWN0IiwgeyB3aWR0aDogIjE4IiwgaGVpZ2h0OiAiMTgiLCB4OiAiMyIsIHk6ICIzIiwgcng6ICIyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk03IDEwaDEwIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk03IDE0aDEwIiB9XQogIF07CgogIGNvbnN0IFNxdWFyZUthbmJhbiA9IFsKICAgIFsicmVjdCIsIHsgd2lkdGg6ICIxOCIsIGhlaWdodDogIjE4IiwgeDogIjMiLCB5OiAiMyIsIHJ4OiAiMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNOCA3djciIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDd2NCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTYgN3Y5IiB9XQogIF07CgogIGNvbnN0IFNxdWFyZUxpYnJhcnkgPSBbCiAgICBbInJlY3QiLCB7IHdpZHRoOiAiMTgiLCBoZWlnaHQ6ICIxOCIsIHg6ICIzIiwgeTogIjMiLCByeDogIjIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTcgN3YxMCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTEgN3YxMCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMTUgNyAyIDEwIiB9XQogIF07CgogIGNvbnN0IFNxdWFyZU0gPSBbCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgeyBkOiAiTTggMTZWOC41YS41LjUgMCAwIDEgLjktLjNsMi43IDMuNTk5YS41LjUgMCAwIDAgLjggMGwyLjctMy42YS41LjUgMCAwIDEgLjkuM1YxNiIgfQogICAgXSwKICAgIFsicmVjdCIsIHsgeDogIjMiLCB5OiAiMyIsIHdpZHRoOiAiMTgiLCBoZWlnaHQ6ICIxOCIsIHJ4OiAiMiIgfV0KICBdOwoKICBjb25zdCBTcXVhcmVNZW51ID0gWwogICAgWyJyZWN0IiwgeyB3aWR0aDogIjE4IiwgaGVpZ2h0OiAiMTgiLCB4OiAiMyIsIHk6ICIzIiwgcng6ICIyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk03IDhoMTAiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTcgMTJoMTAiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTcgMTZoMTAiIH1dCiAgXTsKCiAgY29uc3QgU3F1YXJlTWludXMgPSBbCiAgICBbInJlY3QiLCB7IHdpZHRoOiAiMTgiLCBoZWlnaHQ6ICIxOCIsIHg6ICIzIiwgeTogIjMiLCByeDogIjIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTggMTJoOCIgfV0KICBdOwoKICBjb25zdCBTcXVhcmVNb3VzZVBvaW50ZXIgPSBbCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMTIuMDM0IDEyLjY4MWEuNDk4LjQ5OCAwIDAgMSAuNjQ3LS42NDdsOSAzLjVhLjUuNSAwIDAgMS0uMDMzLjk0M2wtMy40NDQgMS4wNjhhMSAxIDAgMCAwLS42Ni42NmwtMS4wNjcgMy40NDNhLjUuNSAwIDAgMS0uOTQzLjAzM3oiCiAgICAgIH0KICAgIF0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMjEgMTFWNWEyIDIgMCAwIDAtMi0ySDVhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDYiIH1dCiAgXTsKCiAgY29uc3QgU3F1YXJlT2ZmID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTIwLjQgMjAuNGEyIDIgMCAwMS0xLjQuNkg1YTIgMiAwIDAxLTItMlY1YTIgMiAwIDAxLjU5LTEuNDEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIxIDE1LjNWNWEyIDIgMCAwMC0yLTJIOC43IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yMiAyMiAyIDIiIH1dCiAgXTsKCiAgY29uc3QgU3F1YXJlUGFya2luZ09mZiA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0zLjYgMy42QTIgMiAwIDAgMSA1IDNoMTRhMiAyIDAgMCAxIDIgMnYxNGEyIDIgMCAwIDEtLjU5IDEuNDEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTMgOC43VjE5YTIgMiAwIDAgMCAyIDJoMTAuMyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMiAyIDIwIDIwIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xMyAxM2EzIDMgMCAxIDAgMC02SDl2MiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNOSAxN3YtMi4zIiB9XQogIF07CgogIGNvbnN0IFNxdWFyZVBhcmtpbmcgPSBbCiAgICBbInJlY3QiLCB7IHdpZHRoOiAiMTgiLCBoZWlnaHQ6ICIxOCIsIHg6ICIzIiwgeTogIjMiLCByeDogIjIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTkgMTdWN2g0YTMgMyAwIDAgMSAwIDZIOSIgfV0KICBdOwoKICBjb25zdCBTcXVhcmVQYXVzZSA9IFsKICAgIFsicmVjdCIsIHsgd2lkdGg6ICIxOCIsIGhlaWdodDogIjE4IiwgeDogIjMiLCB5OiAiMyIsIHJ4OiAiMiIgfV0sCiAgICBbImxpbmUiLCB7IHgxOiAiMTAiLCB4MjogIjEwIiwgeTE6ICIxNSIsIHkyOiAiOSIgfV0sCiAgICBbImxpbmUiLCB7IHgxOiAiMTQiLCB4MjogIjE0IiwgeTE6ICIxNSIsIHkyOiAiOSIgfV0KICBdOwoKICBjb25zdCBTcXVhcmVQZW4gPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgM0g1YTIgMiAwIDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmgxNGEyIDIgMCAwIDAgMi0ydi03IiB9XSwKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk0xOC4zNzUgMi42MjVhMSAxIDAgMCAxIDMgM2wtOS4wMTMgOS4wMTRhMiAyIDAgMCAxLS44NTMuNTA1bC0yLjg3My44NGEuNS41IDAgMCAxLS42Mi0uNjJsLjg0LTIuODczYTIgMiAwIDAgMSAuNTA2LS44NTJ6IgogICAgICB9CiAgICBdCiAgXTsKCiAgY29uc3QgU3F1YXJlUGVyY2VudCA9IFsKICAgIFsicmVjdCIsIHsgd2lkdGg6ICIxOCIsIGhlaWdodDogIjE4IiwgeDogIjMiLCB5OiAiMyIsIHJ4OiAiMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMTUgOS02IDYiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTkgOWguMDEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE1IDE1aC4wMSIgfV0KICBdOwoKICBjb25zdCBTcXVhcmVQaSA9IFsKICAgIFsicmVjdCIsIHsgd2lkdGg6ICIxOCIsIGhlaWdodDogIjE4IiwgeDogIjMiLCB5OiAiMyIsIHJ4OiAiMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNyA3aDEwIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xMCA3djEwIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNiAxN2EyIDIgMCAwIDEtMi0yVjciIH1dCiAgXTsKCiAgY29uc3QgU3F1YXJlUGlsY3JvdyA9IFsKICAgIFsicmVjdCIsIHsgd2lkdGg6ICIxOCIsIGhlaWdodDogIjE4IiwgeDogIjMiLCB5OiAiMyIsIHJ4OiAiMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgMTJIOS41YTIuNSAyLjUgMCAwIDEgMC01SDE3IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xMiA3djEwIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNiA3djEwIiB9XQogIF07CgogIGNvbnN0IFNxdWFyZVBsYXkgPSBbCiAgICBbInJlY3QiLCB7IHg6ICIzIiwgeTogIjMiLCB3aWR0aDogIjE4IiwgaGVpZ2h0OiAiMTgiLCByeDogIjIiIH1dLAogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTkgOS4wMDNhMSAxIDAgMCAxIDEuNTE3LS44NTlsNC45OTcgMi45OTdhMSAxIDAgMCAxIDAgMS43MThsLTQuOTk3IDIuOTk3QTEgMSAwIDAgMSA5IDE0Ljk5NnoiCiAgICAgIH0KICAgIF0KICBdOwoKICBjb25zdCBTcXVhcmVQbHVzID0gWwogICAgWyJyZWN0IiwgeyB3aWR0aDogIjE4IiwgaGVpZ2h0OiAiMTgiLCB4OiAiMyIsIHk6ICIzIiwgcng6ICIyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk04IDEyaDgiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDh2OCIgfV0KICBdOwoKICBjb25zdCBTcXVhcmVQb3dlciA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xMiA3djQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTcuOTk4IDkuMDAzYTUgNSAwIDEgMCA4LS4wMDUiIH1dLAogICAgWyJyZWN0IiwgeyB4OiAiMyIsIHk6ICIzIiwgd2lkdGg6ICIxOCIsIGhlaWdodDogIjE4Iiwgcng6ICIyIiB9XQogIF07CgogIGNvbnN0IFNxdWFyZVJhZGljYWwgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNNyAxMmgybDIgNSAyLTEwaDQiIH1dLAogICAgWyJyZWN0IiwgeyB4OiAiMyIsIHk6ICIzIiwgd2lkdGg6ICIxOCIsIGhlaWdodDogIjE4Iiwgcng6ICIyIiB9XQogIF07CgogIGNvbnN0IFNxdWFyZVJvdW5kQ29ybmVyID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTIxIDExYTggOCAwIDAgMC04LTgiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIxIDE1djRhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDQiIH1dCiAgXTsKCiAgY29uc3QgU3F1YXJlU2Npc3NvcnMgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJtMTcgMTctMi4xOC0yLjE4IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk05LjU2IDE0LjQ0IDE3IDciIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTkuNTYgOS41NiAxMiAxMiIgfV0sCiAgICBbImNpcmNsZSIsIHsgY3g6ICI4LjUiLCBjeTogIjE1LjUiLCByOiAiMS41IiB9XSwKICAgIFsiY2lyY2xlIiwgeyBjeDogIjguNSIsIGN5OiAiOC41IiwgcjogIjEuNSIgfV0sCiAgICBbInJlY3QiLCB7IHg6ICIzIiwgeTogIjMiLCB3aWR0aDogIjE4IiwgaGVpZ2h0OiAiMTgiLCByeDogIjIiIH1dCiAgXTsKCiAgY29uc3QgU3F1YXJlU2lnbWEgPSBbCiAgICBbInJlY3QiLCB7IHdpZHRoOiAiMTgiLCBoZWlnaHQ6ICIxOCIsIHg6ICIzIiwgeTogIjMiLCByeDogIjIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE2IDguOVY3SDhsNCA1LTQgNWg4di0xLjkiIH1dCiAgXTsKCiAgY29uc3QgU3F1YXJlU2xhc2ggPSBbCiAgICBbInJlY3QiLCB7IHdpZHRoOiAiMTgiLCBoZWlnaHQ6ICIxOCIsIHg6ICIzIiwgeTogIjMiLCByeDogIjIiIH1dLAogICAgWyJsaW5lIiwgeyB4MTogIjkiLCB4MjogIjE1IiwgeTE6ICIxNSIsIHkyOiAiOSIgfV0KICBdOwoKICBjb25zdCBTcXVhcmVTcGxpdEhvcml6b250YWwgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNOCAxOUg1Yy0xIDAtMi0xLTItMlY3YzAtMSAxLTIgMi0yaDMiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE2IDVoM2MxIDAgMiAxIDIgMnYxMGMwIDEtMSAyLTIgMmgtMyIgfV0sCiAgICBbImxpbmUiLCB7IHgxOiAiMTIiLCB4MjogIjEyIiwgeTE6ICI0IiwgeTI6ICIyMCIgfV0KICBdOwoKICBjb25zdCBTcXVhcmVTcGxpdFZlcnRpY2FsID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTUgOFY1YzAtMSAxLTIgMi0yaDEwYzEgMCAyIDEgMiAydjMiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE5IDE2djNjMCAxLTEgMi0yIDJIN2MtMSAwLTItMS0yLTJ2LTMiIH1dLAogICAgWyJsaW5lIiwgeyB4MTogIjQiLCB4MjogIjIwIiwgeTE6ICIxMiIsIHkyOiAiMTIiIH1dCiAgXTsKCiAgY29uc3QgU3F1YXJlU3F1YXJlID0gWwogICAgWyJyZWN0IiwgeyB4OiAiMyIsIHk6ICIzIiwgd2lkdGg6ICIxOCIsIGhlaWdodDogIjE4Iiwgcng6ICIyIiB9XSwKICAgIFsicmVjdCIsIHsgeDogIjgiLCB5OiAiOCIsIHdpZHRoOiAiOCIsIGhlaWdodDogIjgiLCByeDogIjEiIH1dCiAgXTsKCiAgY29uc3QgU3F1YXJlU3RhY2sgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNNCAxMGMtMS4xIDAtMi0uOS0yLTJWNGMwLTEuMS45LTIgMi0yaDRjMS4xIDAgMiAuOSAyIDIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTEwIDE2Yy0xLjEgMC0yLS45LTItMnYtNGMwLTEuMS45LTIgMi0yaDRjMS4xIDAgMiAuOSAyIDIiIH1dLAogICAgWyJyZWN0IiwgeyB3aWR0aDogIjgiLCBoZWlnaHQ6ICI4IiwgeDogIjE0IiwgeTogIjE0Iiwgcng6ICIyIiB9XQogIF07CgogIGNvbnN0IFNxdWFyZVN0YXIgPSBbCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMTEuMDM1IDcuNjlhMSAxIDAgMCAxIDEuOTA5LjAyNGwuNzM3IDEuNDUyYTEgMSAwIDAgMCAuNzM3LjUzNWwxLjYzNC4yNTZhMSAxIDAgMCAxIC41ODggMS44MDZsLTEuMTcyIDEuMTY4YTEgMSAwIDAgMC0uMjgyLjg2NmwuMjU5IDEuNjEzYTEgMSAwIDAgMS0xLjU0MSAxLjEzNGwtMS40NjUtLjc1YTEgMSAwIDAgMC0uOTEyIDBsLTEuNDY1Ljc1YTEgMSAwIDAgMS0xLjUzOS0xLjEzM2wuMjU4LTEuNjEzYTEgMSAwIDAgMC0uMjgyLS44NjZsLTEuMTU2LTEuMTUzYTEgMSAwIDAgMSAuNTcyLTEuODIybDEuNjMzLS4yNTZhMSAxIDAgMCAwIC43MzctLjUzNXoiCiAgICAgIH0KICAgIF0sCiAgICBbInJlY3QiLCB7IHg6ICIzIiwgeTogIjMiLCB3aWR0aDogIjE4IiwgaGVpZ2h0OiAiMTgiLCByeDogIjIiIH1dCiAgXTsKCiAgY29uc3QgU3F1YXJlU3RvcCA9IFsKICAgIFsicmVjdCIsIHsgd2lkdGg6ICIxOCIsIGhlaWdodDogIjE4IiwgeDogIjMiLCB5OiAiMyIsIHJ4OiAiMiIgfV0sCiAgICBbInJlY3QiLCB7IHg6ICI5IiwgeTogIjkiLCB3aWR0aDogIjYiLCBoZWlnaHQ6ICI2Iiwgcng6ICIxIiB9XQogIF07CgogIGNvbnN0IFNxdWFyZVRlcm1pbmFsID0gWwogICAgWyJwYXRoIiwgeyBkOiAibTcgMTEgMi0yLTItMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTEgMTNoNCIgfV0sCiAgICBbInJlY3QiLCB7IHdpZHRoOiAiMTgiLCBoZWlnaHQ6ICIxOCIsIHg6ICIzIiwgeTogIjMiLCByeDogIjIiLCByeTogIjIiIH1dCiAgXTsKCiAgY29uc3QgU3F1YXJlVXNlclJvdW5kID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTE4IDIxYTYgNiAwIDAgMC0xMiAwIiB9XSwKICAgIFsiY2lyY2xlIiwgeyBjeDogIjEyIiwgY3k6ICIxMSIsIHI6ICI0IiB9XSwKICAgIFsicmVjdCIsIHsgd2lkdGg6ICIxOCIsIGhlaWdodDogIjE4IiwgeDogIjMiLCB5OiAiMyIsIHJ4OiAiMiIgfV0KICBdOwoKICBjb25zdCBTcXVhcmVVc2VyID0gWwogICAgWyJyZWN0IiwgeyB3aWR0aDogIjE4IiwgaGVpZ2h0OiAiMTgiLCB4OiAiMyIsIHk6ICIzIiwgcng6ICIyIiB9XSwKICAgIFsiY2lyY2xlIiwgeyBjeDogIjEyIiwgY3k6ICIxMCIsIHI6ICIzIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk03IDIxdi0yYTIgMiAwIDAgMSAyLTJoNmEyIDIgMCAwIDEgMiAydjIiIH1dCiAgXTsKCiAgY29uc3QgU3F1YXJlWCA9IFsKICAgIFsicmVjdCIsIHsgd2lkdGg6ICIxOCIsIGhlaWdodDogIjE4IiwgeDogIjMiLCB5OiAiMyIsIHJ4OiAiMiIsIHJ5OiAiMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMTUgOS02IDYiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTkgOSA2IDYiIH1dCiAgXTsKCiAgY29uc3QgU3F1YXJlID0gW1sicmVjdCIsIHsgd2lkdGg6ICIxOCIsIGhlaWdodDogIjE4IiwgeDogIjMiLCB5OiAiMyIsIHJ4OiAiMiIgfV1dOwoKICBjb25zdCBTcXVhcmVzRXhjbHVkZSA9IFsKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk0xNiAxMnYyYTIgMiAwIDAgMS0yIDJIOWExIDEgMCAwIDAtMSAxdjNhMiAyIDAgMCAwIDIgMmgxMGEyIDIgMCAwIDAgMi0yVjEwYTIgMiAwIDAgMC0yLTJoMCIKICAgICAgfQogICAgXSwKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk00IDE2YTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDEwYTIgMiAwIDAgMSAyIDJ2M2ExIDEgMCAwIDEtMSAxaC01YTIgMiAwIDAgMC0yIDJ2MiIKICAgICAgfQogICAgXQogIF07CgogIGNvbnN0IFNxdWFyZXNJbnRlcnNlY3QgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTAgMjJhMiAyIDAgMCAxLTItMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTQgMmEyIDIgMCAwIDEgMiAyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNiAyMmgtMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMiAxMFY4IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yIDRhMiAyIDAgMCAxIDItMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMjAgOGEyIDIgMCAwIDEgMiAyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yMiAxNHYyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yMiAyMGEyIDIgMCAwIDEtMiAyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk00IDE2YTIgMiAwIDAgMS0yLTIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTggMTBhMiAyIDAgMCAxIDItMmg1YTEgMSAwIDAgMSAxIDF2NWEyIDIgMCAwIDEtMiAySDlhMSAxIDAgMCAxLTEtMXoiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTggMmgyIiB9XQogIF07CgogIGNvbnN0IFNxdWFyZXNTdWJ0cmFjdCA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xMCAyMmEyIDIgMCAwIDEtMi0yIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNiAyMmgtMiIgfV0sCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMTYgNGEyIDIgMCAwIDAtMi0ySDRhMiAyIDAgMCAwLTIgMnYxMGEyIDIgMCAwIDAgMiAyaDNhMSAxIDAgMCAwIDEtMXYtNWEyIDIgMCAwIDEgMi0yaDVhMSAxIDAgMCAwIDEtMXoiCiAgICAgIH0KICAgIF0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMjAgOGEyIDIgMCAwIDEgMiAyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yMiAxNHYyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yMiAyMGEyIDIgMCAwIDEtMiAyIiB9XQogIF07CgogIGNvbnN0IFNxdWFyZXNVbml0ZSA9IFsKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk00IDE2YTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDEwYTIgMiAwIDAgMSAyIDJ2M2ExIDEgMCAwIDAgMSAxaDNhMiAyIDAgMCAxIDIgMnYxMGEyIDIgMCAwIDEtMiAySDEwYTIgMiAwIDAgMS0yLTJ2LTNhMSAxIDAgMCAwLTEtMXoiCiAgICAgIH0KICAgIF0KICBdOwoKICBjb25zdCBTcXVpcmNsZURhc2hlZCA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xMy43NyAzLjA0M2EzNCAzNCAwIDAgMC0zLjU0IDAiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTEzLjc3MSAyMC45NTZhMzMgMzMgMCAwIDEtMy41NDEuMDAxIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yMC4xOCAxNy43NGMtLjUxIDEuMTUtMS4yOSAxLjkzLTIuNDM5IDIuNDQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIwLjE4IDYuMjU5Yy0uNTEtMS4xNDgtMS4yOTEtMS45MjktMi40NC0yLjQzOCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMjAuOTU3IDEwLjIzYTMzIDMzIDAgMCAxIDAgMy41NCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMy4wNDMgMTAuMjNhMzQgMzQgMCAwIDAgLjAwMSAzLjU0MSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNi4yNiAyMC4xNzljLTEuMTUtLjUwOC0xLjkzLTEuMjktMi40NC0yLjQzOCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNi4yNiAzLjgyYy0xLjE0OS41MS0xLjkzIDEuMjkxLTIuNDQgMi40NCIgfV0KICBdOwoKICBjb25zdCBTcXVpcmNsZSA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xMiAzYzcuMiAwIDkgMS44IDkgOXMtMS44IDktOSA5LTktMS44LTktOSAxLjgtOSA5LTkiIH1dCiAgXTsKCiAgY29uc3QgU3F1aXJyZWwgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTUuMjM2IDIyYTMgMyAwIDAgMC0yLjItNSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTYgMjBhMyAzIDAgMCAxIDMtM2gxYTIgMiAwIDAgMCAyLTJ2LTJhNCA0IDAgMCAwLTQtNFY0IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xOCAxM2guMDEiIH1dLAogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTE4IDZhNCA0IDAgMCAwLTQgNCA3IDcgMCAwIDAtNyA3YzAtNSA0LTUgNC0xMC41YTQuNSA0LjUgMCAxIDAtOSAwIDIuNSAyLjUgMCAwIDAgNSAwQzcgMTAgMyAxMSAzIDE3YzAgMi44IDIuMiA1IDUgNWgxMCIKICAgICAgfQogICAgXQogIF07CgogIGNvbnN0IFN0YW1wID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTE0IDEzVjguNUMxNCA3IDE1IDcgMTUgNWEzIDMgMCAwIDAtNiAwYzAgMiAxIDIgMSAzLjVWMTMiIH1dLAogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTIwIDE1LjVhMi41IDIuNSAwIDAgMC0yLjUtMi41aC0xMUEyLjUgMi41IDAgMCAwIDQgMTUuNVYxN2ExIDEgMCAwIDAgMSAxaDE0YTEgMSAwIDAgMCAxLTF6IgogICAgICB9CiAgICBdLAogICAgWyJwYXRoIiwgeyBkOiAiTTUgMjJoMTQiIH1dCiAgXTsKCiAgY29uc3QgU3RhckNoZWNrID0gWwogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAibTE5LjA2IDEyLjUwMSAyLjc4LTIuNzA3YS41My41MyAwIDAgMC0uMjk0LS45MDVsLTUuMTY2LS43NTVhMi4xIDIuMSAwIDAgMS0xLjU5NS0xLjE2bC0yLjMxLTQuNjhhLjUzLjUzIDAgMCAwLS45NS4wMDFMOS4yMTYgNi45NzRhMi4xIDIuMSAwIDAgMS0xLjU5NyAxLjE2bC01LjE2NS43NTVhLjUzLjUzIDAgMCAwLS4yOTQuOTA2bDMuNzM2IDMuNjM3YTIuMSAyLjEgMCAwIDEgLjYxMSAxLjg3OWwtLjg4IDUuMTM5YS41My41MyAwIDAgMCAuNzY5LjU2bDQuNjE3LTIuNDI4LjAyNy0uMDE0IgogICAgICB9CiAgICBdLAogICAgWyJwYXRoIiwgeyBkOiAibTE1IDE4IDIgMiA0LTQiIH1dCiAgXTsKCiAgY29uc3QgU3RhckhhbGYgPSBbCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMTIgMTguMzM4YTIuMSAyLjEgMCAwIDAtLjk4Ny4yNDRMNi4zOTYgMjEuMDFhLjUzLjUzIDAgMCAxLS43Ny0uNTZsLjg4MS01LjEzOWEyLjEyIDIuMTIgMCAwIDAtLjYxMS0xLjg3OUwyLjE2IDkuNzk1YS41My41MyAwIDAgMSAuMjk0LS45MDZsNS4xNjUtLjc1NWEyLjEyIDIuMTIgMCAwIDAgMS41OTctMS4xNmwyLjMwOS00LjY3OUEuNTMuNTMgMCAwIDEgMTIgMiIKICAgICAgfQogICAgXQogIF07CgogIGNvbnN0IFN0YXJNaW51cyA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xNSAxOGg2IiB9XSwKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk0xNy42ODggMTRhMi4xIDIuMSAwIDAgMSAuNDE2LS41NjhsMy43MzYtMy42MzhhLjUzLjUzIDAgMCAwLS4yOTQtLjkwNWwtNS4xNjYtLjc1NWEyLjEgMi4xIDAgMCAxLTEuNTk1LTEuMTZsLTIuMzEtNC42OGEuNTMuNTMgMCAwIDAtLjk1LjAwMUw5LjIxNiA2Ljk3NGEyLjEgMi4xIDAgMCAxLTEuNTk3IDEuMTZsLTUuMTY1Ljc1NWEuNTMuNTMgMCAwIDAtLjI5NC45MDZsMy43MzYgMy42MzdhMi4xIDIuMSAwIDAgMSAuNjExIDEuODc5bC0uODggNS4xMzlhLjUzLjUzIDAgMCAwIC43NjkuNTZsNC42MTctMi40MjguMDI3LS4wMTQiCiAgICAgIH0KICAgIF0KICBdOwoKICBjb25zdCBTdGFyT2ZmID0gWwogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAibTEwLjM0NCA0LjY4OCAxLjE4MS0yLjM5M2EuNTMuNTMgMCAwIDEgLjk1IDBsMi4zMSA0LjY3OWEyLjEyIDIuMTIgMCAwIDAgMS41OTUgMS4xNmw1LjE2Ni43NTZhLjUzLjUzIDAgMCAxIC4yOTQuOTA0bC0zLjIzNyAzLjE1MiIKICAgICAgfQogICAgXSwKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIm0xNy45NDUgMTcuOTQ1LjQzIDIuNTA1YS41My41MyAwIDAgMS0uNzcxLjU2bC00LjYxOC0yLjQyOGEyLjEyIDIuMTIgMCAwIDAtMS45NzMgMEw2LjM5NiAyMS4wMWEuNTMuNTMgMCAwIDEtLjc3LS41NmwuODgxLTUuMTM5YTIuMTIgMi4xMiAwIDAgMC0uNjExLTEuODc5TDIuMTYgOS43OTVhLjUzLjUzIDAgMCAxIC4yOTQtLjkwNmw1LjE2NS0uNzU1YTggOCAwIDAgMCAuNC0uMDk5IgogICAgICB9CiAgICBdLAogICAgWyJwYXRoIiwgeyBkOiAibTIgMiAyMCAyMCIgfV0KICBdOwoKICBjb25zdCBTdGFyUGx1cyA9IFsKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk0xMS4wMTMgMTguNTgyIDYuMzk2IDIxLjAxYS41My41MyAwIDAgMS0uNzctLjU2bC44ODEtNS4xMzlhMi4xMiAyLjEyIDAgMCAwLS42MTEtMS44NzlMMi4xNiA5Ljc5NWEuNTMuNTMgMCAwIDEgLjI5NC0uOTA2bDUuMTY1LS43NTVhMi4xMiAyLjEyIDAgMCAwIDEuNTk3LTEuMTZsMi4zMDktNC42NzlhLjUzLjUzIDAgMCAxIC45NSAwbDIuMzEgNC42NzlhMi4xMiAyLjEyIDAgMCAwIDEuNTk1IDEuMTZsNS4xNjYuNzU2YS41My41MyAwIDAgMSAuMjk0LjkwNEwyMCAxMS41IgogICAgICB9CiAgICBdLAogICAgWyJwYXRoIiwgeyBkOiAiTTE1IDE4aDYiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE4IDE1djYiIH1dCiAgXTsKCiAgY29uc3QgU3RhclggPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJtMTUuNSAxNS41IDUgNSIgfV0sCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJtMjAuMDYzIDExLjUyNSAxLjc3Ny0xLjczMWEuNTMuNTMgMCAwIDAtLjI5NC0uOTA1bC01LjE2Ni0uNzU1YTIuMSAyLjEgMCAwIDEtMS41OTUtMS4xNmwtMi4zMS00LjY4YS41My41MyAwIDAgMC0uOTUuMDAxTDkuMjE2IDYuOTc0YTIuMSAyLjEgMCAwIDEtMS41OTcgMS4xNmwtNS4xNjUuNzU1YS41My41MyAwIDAgMC0uMjk0LjkwNmwzLjczNiAzLjYzN2EyLjEgMi4xIDAgMCAxIC42MTEgMS44NzlsLS44OCA1LjEzOWEuNTMuNTMgMCAwIDAgLjc2OS41Nmw0LjYxNy0yLjQyOGEyLjEgMi4xIDAgMCAxIC45ODctLjI0MyAyIDIgMCAwIDEgLjEzMi4wMDQiCiAgICAgIH0KICAgIF0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMjAuNSAxNS41LTUgNSIgfV0KICBdOwoKICBjb25zdCBTdGFyID0gWwogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTExLjUyNSAyLjI5NWEuNTMuNTMgMCAwIDEgLjk1IDBsMi4zMSA0LjY3OWEyLjEyMyAyLjEyMyAwIDAgMCAxLjU5NSAxLjE2bDUuMTY2Ljc1NmEuNTMuNTMgMCAwIDEgLjI5NC45MDRsLTMuNzM2IDMuNjM4YTIuMTIzIDIuMTIzIDAgMCAwLS42MTEgMS44NzhsLjg4MiA1LjE0YS41My41MyAwIDAgMS0uNzcxLjU2bC00LjYxOC0yLjQyOGEyLjEyMiAyLjEyMiAwIDAgMC0xLjk3MyAwTDYuMzk2IDIxLjAxYS41My41MyAwIDAgMS0uNzctLjU2bC44ODEtNS4xMzlhMi4xMjIgMi4xMjIgMCAwIDAtLjYxMS0xLjg3OUwyLjE2IDkuNzk1YS41My41MyAwIDAgMSAuMjk0LS45MDZsNS4xNjUtLjc1NWEyLjEyMiAyLjEyMiAwIDAgMCAxLjU5Ny0xLjE2eiIKICAgICAgfQogICAgXQogIF07CgogIGNvbnN0IFN0ZXBCYWNrID0gWwogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTEzLjk3MSA0LjI4NUEyIDIgMCAwIDEgMTcgNnYxMmEyIDIgMCAwIDEtMy4wMjkgMS43MTVsLTkuOTk3LTUuOTk4YTIgMiAwIDAgMS0uMDAzLTMuNDMyeiIKICAgICAgfQogICAgXSwKICAgIFsicGF0aCIsIHsgZDogIk0yMSAyMFY0IiB9XQogIF07CgogIGNvbnN0IFN0ZXBGb3J3YXJkID0gWwogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsgZDogIk0xMC4wMjkgNC4yODVBMiAyIDAgMCAwIDcgNnYxMmEyIDIgMCAwIDAgMy4wMjkgMS43MTVsOS45OTctNS45OThhMiAyIDAgMCAwIC4wMDMtMy40MzJ6IiB9CiAgICBdLAogICAgWyJwYXRoIiwgeyBkOiAiTTMgNHYxNiIgfV0KICBdOwoKICBjb25zdCBTdGV0aG9zY29wZSA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xMSAydjIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTUgMnYyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk01IDNINGEyIDIgMCAwIDAtMiAydjRhNiA2IDAgMCAwIDEyIDBWNWEyIDIgMCAwIDAtMi0yaC0xIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk04IDE1YTYgNiAwIDAgMCAxMiAwdi0zIiB9XSwKICAgIFsiY2lyY2xlIiwgeyBjeDogIjIwIiwgY3k6ICIxMCIsIHI6ICIyIiB9XQogIF07CgogIGNvbnN0IFN0aWNrZXIgPSBbCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMjEgOWEyLjQgMi40IDAgMCAwLS43MDYtMS43MDZsLTMuNTg4LTMuNTg4QTIuNCAyLjQgMCAwIDAgMTUgM0g1YTIgMiAwIDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmgxNGEyIDIgMCAwIDAgMi0yeiIKICAgICAgfQogICAgXSwKICAgIFsicGF0aCIsIHsgZDogIk0xNSAzdjVhMSAxIDAgMCAwIDEgMWg1IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk04IDEzaC4wMSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTYgMTNoLjAxIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xMCAxNnMuOCAxIDIgMWMxLjMgMCAyLTEgMi0xIiB9XQogIF07CgogIGNvbnN0IFN0aWNreU5vdGVDaGVjayA9IFsKICAgIFsicGF0aCIsIHsgZDogIm0xNSAxOSAyIDIgNC00IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNSAzdjVhMSAxIDAgMCAwIDEgMWg1IiB9XSwKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk0yMSAxM1Y5YTIuNCAyLjQgMCAwIDAtLjcwNi0xLjcwNmwtMy41ODgtMy41ODhBMi40IDIuNCAwIDAgMCAxNSAzSDVhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDYuNSIKICAgICAgfQogICAgXQogIF07CgogIGNvbnN0IFN0aWNreU5vdGVNaW51cyA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xNSAzdjVhMSAxIDAgMCAwIDEgMWg1IiB9XSwKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk0yMSAxNFY5YTIuNCAyLjQgMCAwIDAtLjcwNi0xLjcwNmwtMy41ODgtMy41ODhBMi40IDIuNCAwIDAgMCAxNSAzSDVhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDcuMzUiCiAgICAgIH0KICAgIF0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMjEgMThoLTYiIH1dCiAgXTsKCiAgY29uc3QgU3RpY2t5Tm90ZU9mZiA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xNSAzdjVhMSAxIDAgMCAwIDEgMWg1IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0yIDIgMjAgMjAiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTMuNTg2IDMuNTg2QTIgMiAwIDAgMCAzIDV2MTRhMiAyIDAgMCAwIDIgMmgxNGEyIDIgMCAwIDAgMS40MTQtLjU4NiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNOC42NTYgM0gxNWEyLjQgMi40IDAgMCAxIDEuNzA2LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIxIDl2Ni4zNDQiIH1dCiAgXTsKCiAgY29uc3QgU3RpY2t5Tm90ZVBsdXMgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTUgM3Y1YTEgMSAwIDAgMCAxIDFoNSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTggMTV2NiIgfV0sCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMjEgMTIuMzU2VjlhMi40IDIuNCAwIDAgMC0uNzA2LTEuNzA2bC0zLjU4OC0zLjU4OEEyLjQgMi40IDAgMCAwIDE1IDNINWEyIDIgMCAwIDAtMiAydjE0YTIgMiAwIDAgMCAyIDJoNy4zNTUiCiAgICAgIH0KICAgIF0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMjEgMThoLTYiIH1dCiAgXTsKCiAgY29uc3QgU3RpY2t5Tm90ZVggPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTUgM3Y1YTEgMSAwIDAgMCAxIDFoNSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMTYgMTYgNSA1IiB9XSwKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk0yMSAxMlY5YTIuNCAyLjQgMCAwIDAtLjcwNi0xLjcwNmwtMy41ODgtMy41ODhBMi40IDIuNCAwIDAgMCAxNSAzSDVhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDciCiAgICAgIH0KICAgIF0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMjEgMTYtNSA1IiB9XQogIF07CgogIGNvbnN0IFN0aWNreU5vdGUgPSBbCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMjEgOWEyLjQgMi40IDAgMCAwLS43MDYtMS43MDZsLTMuNTg4LTMuNTg4QTIuNCAyLjQgMCAwIDAgMTUgM0g1YTIgMiAwIDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmgxNGEyIDIgMCAwIDAgMi0yeiIKICAgICAgfQogICAgXSwKICAgIFsicGF0aCIsIHsgZDogIk0xNSAzdjVhMSAxIDAgMCAwIDEgMWg1IiB9XQogIF07CgogIGNvbnN0IFN0b25lID0gWwogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTExLjI2NCAyLjIwNUE0IDQgMCAwIDAgNi40MiA0LjIxMWwtNCA4YTQgNCAwIDAgMCAxLjM1OSA1LjExN2w2IDRhNCA0IDAgMCAwIDQuNDM4IDBsNi00YTQgNCAwIDAgMCAxLjU3Ni00LjU5MmwtMi02YTQgNCAwIDAgMC0yLjUzLTIuNTN6IgogICAgICB9CiAgICBdLAogICAgWyJwYXRoIiwgeyBkOiAiTTExLjk5IDIyIDE0IDEybDcuODIyIDMuMTg0IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNCAxMiA4LjQ3IDIuMzAyIiB9XQogIF07CgogIGNvbnN0IFN0aWNreU5vdGVzID0gWwogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTEwIDhhMi40IDIuNCAwIDAgMSAxLjcwNi43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAxNiAxNHY2YTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0yVjEwYTIgMiAwIDAgMSAyLTJ6IgogICAgICB9CiAgICBdLAogICAgWyJwYXRoIiwgeyBkOiAiTTEwIDh2NWExIDEgMCAwIDAgMSAxaDUiIH1dLAogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTggNGEyIDIgMCAwIDEgMi0yaDZhMi40IDIuNCAwIDAgMSAxLjcwNi43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMiA4djZhMiAyIDAgMCAxLTIgMiIKICAgICAgfQogICAgXSwKICAgIFsicGF0aCIsIHsgZDogIk0xNiAydjVhMSAxIDAgMCAwIDEgMWg1IiB9XQogIF07CgogIGNvbnN0IFN0b3JlID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTE1IDIxdi01YTEgMSAwIDAgMC0xLTFoLTRhMSAxIDAgMCAwLTEgMXY1IiB9XSwKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk0xNy43NzQgMTAuMzFhMS4xMiAxLjEyIDAgMCAwLTEuNTQ5IDAgMi41IDIuNSAwIDAgMS0zLjQ1MSAwIDEuMTIgMS4xMiAwIDAgMC0xLjU0OCAwIDIuNSAyLjUgMCAwIDEtMy40NTIgMCAxLjEyIDEuMTIgMCAwIDAtMS41NDkgMCAyLjUgMi41IDAgMCAxLTMuNzctMy4yNDhsMi44ODktNC4xODRBMiAyIDAgMCAxIDcgMmgxMGEyIDIgMCAwIDEgMS42NTMuODczbDIuODk1IDQuMTkyYTIuNSAyLjUgMCAwIDEtMy43NzQgMy4yNDQiCiAgICAgIH0KICAgIF0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNCAxMC45NVYxOWEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJ2LTguMDUiIH1dCiAgXTsKCiAgY29uc3QgU3RyZXRjaEhvcml6b250YWwgPSBbCiAgICBbInJlY3QiLCB7IHdpZHRoOiAiMjAiLCBoZWlnaHQ6ICI2IiwgeDogIjIiLCB5OiAiNCIsIHJ4OiAiMiIgfV0sCiAgICBbInJlY3QiLCB7IHdpZHRoOiAiMjAiLCBoZWlnaHQ6ICI2IiwgeDogIjIiLCB5OiAiMTQiLCByeDogIjIiIH1dCiAgXTsKCiAgY29uc3QgU3RyZXRjaFZlcnRpY2FsID0gWwogICAgWyJyZWN0IiwgeyB3aWR0aDogIjYiLCBoZWlnaHQ6ICIyMCIsIHg6ICI0IiwgeTogIjIiLCByeDogIjIiIH1dLAogICAgWyJyZWN0IiwgeyB3aWR0aDogIjYiLCBoZWlnaHQ6ICIyMCIsIHg6ICIxNCIsIHk6ICIyIiwgcng6ICIyIiB9XQogIF07CgogIGNvbnN0IFN0cmlrZXRocm91Z2ggPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTYgNEg5YTMgMyAwIDAgMC0yLjgzIDQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE0IDEyYTQgNCAwIDAgMSAwIDhINiIgfV0sCiAgICBbImxpbmUiLCB7IHgxOiAiNCIsIHgyOiAiMjAiLCB5MTogIjEyIiwgeTI6ICIxMiIgfV0KICBdOwoKICBjb25zdCBTdWJzY3JpcHQgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJtNCA1IDggOCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMTIgNS04IDgiIH1dLAogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTIwIDE5aC00YzAtMS41LjQ0LTIgMS41LTIuNVMyMCAxNS4zMyAyMCAxNGMwLS40Ny0uMTctLjkzLS40OC0xLjI5YTIuMTEgMi4xMSAwIDAgMC0yLjYyLS40NGMtLjQyLjI0LS43NC42Mi0uOSAxLjA3IgogICAgICB9CiAgICBdCiAgXTsKCiAgY29uc3QgU3VtbWFyeSA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xNSA0SDciIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTE4IDE2IDMgMy0zIDMiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTMgNHYxM2EyIDIgMCAwIDAgMiAyaDE2IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk03IDE0aDciIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTcgOWgxMiIgfV0KICBdOwoKICBjb25zdCBTdW5EaW0gPSBbCiAgICBbImNpcmNsZSIsIHsgY3g6ICIxMiIsIGN5OiAiMTIiLCByOiAiNCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgNGguMDEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIwIDEyaC4wMSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgMjBoLjAxIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk00IDEyaC4wMSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTcuNjU3IDYuMzQzaC4wMSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTcuNjU3IDE3LjY1N2guMDEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTYuMzQzIDE3LjY1N2guMDEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTYuMzQzIDYuMzQzaC4wMSIgfV0KICBdOwoKICBjb25zdCBTdW5NZWRpdW0gPSBbCiAgICBbImNpcmNsZSIsIHsgY3g6ICIxMiIsIGN5OiAiMTIiLCByOiAiNCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgM3YxIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xMiAyMHYxIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0zIDEyaDEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIwIDEyaDEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTE4LjM2NCA1LjYzNi0uNzA3LjcwNyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtNi4zNDMgMTcuNjU3LS43MDcuNzA3IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm01LjYzNiA1LjYzNi43MDcuNzA3IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0xNy42NTcgMTcuNjU3LjcwNy43MDciIH1dCiAgXTsKCiAgY29uc3QgU3VuTW9vbiA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xMiAydjIiIH1dLAogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTE0LjgzNyAxNi4zODVhNiA2IDAgMSAxLTcuMjIzLTcuMjIyYy42MjQtLjE0Ny45Ny42Ni43MTUgMS4yNDhhNCA0IDAgMCAwIDUuMjYgNS4yNTljLjU4OS0uMjU1IDEuMzk2LjA5IDEuMjQ4LjcxNSIKICAgICAgfQogICAgXSwKICAgIFsicGF0aCIsIHsgZDogIk0xNiAxMmE0IDQgMCAwIDAtNC00IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0xOSA1LTEuMjU2IDEuMjU2IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yMCAxMmgyIiB9XQogIF07CgogIGNvbnN0IFN1blNub3cgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTAgMjF2LTEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTEwIDRWMyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTAgOWEzIDMgMCAwIDAgMCA2IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0xNCAyMCAxLjI1LTIuNUwxOCAxOCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMTQgNCAxLjI1IDIuNUwxOCA2IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0xNyAyMS0zLTYgMS41LTNIMjIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTE3IDMtMyA2IDEuNSAzIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yIDEyaDEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTIwIDEwLTEuNSAyIDEuNSAyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0zLjY0IDE4LjM2LjctLjciIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTQuMzQgNi4zNC0uNy0uNyIgfV0KICBdOwoKICBjb25zdCBTdW4gPSBbCiAgICBbImNpcmNsZSIsIHsgY3g6ICIxMiIsIGN5OiAiMTIiLCByOiAiNCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgMnYyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xMiAyMHYyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm00LjkzIDQuOTMgMS40MSAxLjQxIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0xNy42NiAxNy42NiAxLjQxIDEuNDEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIgMTJoMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMjAgMTJoMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtNi4zNCAxNy42Ni0xLjQxIDEuNDEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTE5LjA3IDQuOTMtMS40MSAxLjQxIiB9XQogIF07CgogIGNvbnN0IFN1bnJpc2UgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgMnY4IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm00LjkzIDEwLjkzIDEuNDEgMS40MSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMiAxOGgyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yMCAxOGgyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0xOS4wNyAxMC45My0xLjQxIDEuNDEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIyIDIySDIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTggNiA0LTQgNCA0IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNiAxOGE0IDQgMCAwIDAtOCAwIiB9XQogIF07CgogIGNvbnN0IFN1bnNldCA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xMiAxMFYyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm00LjkzIDEwLjkzIDEuNDEgMS40MSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMiAxOGgyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yMCAxOGgyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0xOS4wNyAxMC45My0xLjQxIDEuNDEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIyIDIySDIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTE2IDYtNCA0LTQtNCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTYgMThhNCA0IDAgMCAwLTggMCIgfV0KICBdOwoKICBjb25zdCBTdXBlcnNjcmlwdCA9IFsKICAgIFsicGF0aCIsIHsgZDogIm00IDE5IDgtOCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMTIgMTktOC04IiB9XSwKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk0yMCAxMmgtNGMwLTEuNS40NDItMiAxLjUtMi41UzIwIDguMzM0IDIwIDcuMDAyYzAtLjQ3Mi0uMTctLjkzLS40ODQtMS4yOWEyLjEwNSAyLjEwNSAwIDAgMC0yLjYxNy0uNDM2Yy0uNDIuMjM5LS43MzguNjE0LS44OTkgMS4wNiIKICAgICAgfQogICAgXQogIF07CgogIGNvbnN0IFN3YXRjaEJvb2sgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTEgMTdhNCA0IDAgMCAxLTggMFY1YTIgMiAwIDAgMSAyLTJoNGEyIDIgMCAwIDEgMiAyWiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTYuNyAxM0gxOWEyIDIgMCAwIDEgMiAydjRhMiAyIDAgMCAxLTIgMkg3IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0gNyAxN2guMDEiIH1dLAogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsgZDogIm0xMSA4IDIuMy0yLjNhMi40IDIuNCAwIDAgMSAzLjQwNC4wMDRMMTguNiA3LjZhMi40IDIuNCAwIDAgMSAuMDI2IDMuNDM0TDkuOSAxOS44IiB9CiAgICBdCiAgXTsKCiAgY29uc3QgU3dpc3NGcmFuYyA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xMCAyMVYzaDgiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTYgMTZoOSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTAgOS41aDciIH1dCiAgXTsKCiAgY29uc3QgU3dpdGNoQ2FtZXJhID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTExIDE5SDRhMiAyIDAgMCAxLTItMlY3YTIgMiAwIDAgMSAyLTJoNSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTMgNWg3YTIgMiAwIDAgMSAyIDJ2MTBhMiAyIDAgMCAxLTIgMmgtNSIgfV0sCiAgICBbImNpcmNsZSIsIHsgY3g6ICIxMiIsIGN5OiAiMTIiLCByOiAiMyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMTggMjItMy0zIDMtMyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtNiAyIDMgMy0zIDMiIH1dCiAgXTsKCiAgY29uc3QgU3dvcmQgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJtMTEgMTktNi02IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm01IDIxLTItMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtOCAxNi00IDQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTkuNSAxNy41IDIxIDZWM2gtM0w2LjUgMTQuNSIgfV0KICBdOwoKICBjb25zdCBTd29yZHMgPSBbCiAgICBbInBvbHlsaW5lIiwgeyBwb2ludHM6ICIxNC41IDE3LjUgMyA2IDMgMyA2IDMgMTcuNSAxNC41IiB9XSwKICAgIFsibGluZSIsIHsgeDE6ICIxMyIsIHgyOiAiMTkiLCB5MTogIjE5IiwgeTI6ICIxMyIgfV0sCiAgICBbImxpbmUiLCB7IHgxOiAiMTYiLCB4MjogIjIwIiwgeTE6ICIxNiIsIHkyOiAiMjAiIH1dLAogICAgWyJsaW5lIiwgeyB4MTogIjE5IiwgeDI6ICIyMSIsIHkxOiAiMjEiLCB5MjogIjE5IiB9XSwKICAgIFsicG9seWxpbmUiLCB7IHBvaW50czogIjE0LjUgNi41IDE4IDMgMjEgMyAyMSA2IDE3LjUgOS41IiB9XSwKICAgIFsibGluZSIsIHsgeDE6ICI1IiwgeDI6ICI5IiwgeTE6ICIxNCIsIHkyOiAiMTgiIH1dLAogICAgWyJsaW5lIiwgeyB4MTogIjciLCB4MjogIjQiLCB5MTogIjE3IiwgeTI6ICIyMCIgfV0sCiAgICBbImxpbmUiLCB7IHgxOiAiMyIsIHgyOiAiNSIsIHkxOiAiMTkiLCB5MjogIjIxIiB9XQogIF07CgogIGNvbnN0IFN5cmluZ2UgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJtMTggMiA0IDQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTE3IDcgMy0zIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xOSA5IDguNyAxOS4zYy0xIDEtMi41IDEtMy40IDBsLS42LS42Yy0xLTEtMS0yLjUgMC0zLjRMMTUgNSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtOSAxMSA0IDQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTUgMTktMyAzIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0xNCA0IDYgNiIgfV0KICBdOwoKICBjb25zdCBUYWJsZTIgPSBbCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNOSAzSDVhMiAyIDAgMCAwLTIgMnY0bTYtNmgxMGEyIDIgMCAwIDEgMiAydjRNOSAzdjE4bTAgMGgxMGEyIDIgMCAwIDAgMi0yVjlNOSAyMUg1YTIgMiAwIDAgMS0yLTJWOW0wIDBoMTgiCiAgICAgIH0KICAgIF0KICBdOwoKICBjb25zdCBUYWJsZUNlbGxzTWVyZ2UgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgMjF2LTYiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDlWMyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMyAxNWgxOCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMyA5aDE4IiB9XSwKICAgIFsicmVjdCIsIHsgd2lkdGg6ICIxOCIsIGhlaWdodDogIjE4IiwgeDogIjMiLCB5OiAiMyIsIHJ4OiAiMiIgfV0KICBdOwoKICBjb25zdCBUYWJsZUNlbGxzU3BsaXQgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgMTVWOSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMyAxNWgxOCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMyA5aDE4IiB9XSwKICAgIFsicmVjdCIsIHsgd2lkdGg6ICIxOCIsIGhlaWdodDogIjE4IiwgeDogIjMiLCB5OiAiMyIsIHJ4OiAiMiIgfV0KICBdOwoKICBjb25zdCBUYWJsZUNvbHVtbnNTcGxpdCA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xNCAxNHYyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNCAyMHYyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNCAydjIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE0IDh2MiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMiAxNWg4IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yIDNoNmEyIDIgMCAwIDEgMiAydjE0YTIgMiAwIDAgMS0yIDJIMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMiA5aDgiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIyIDE1aC00IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yMiAzaC0yYTIgMiAwIDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmgyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yMiA5aC00IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk01IDN2MTgiIH1dCiAgXTsKCiAgY29uc3QgVGFibGVPZkNvbnRlbnRzID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTE2IDVIMyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTYgMTJIMyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTYgMTlIMyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMjEgNWguMDEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIxIDEyaC4wMSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMjEgMTloLjAxIiB9XQogIF07CgogIGNvbnN0IFRhYmxlUHJvcGVydGllcyA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xNSAzdjE4IiB9XSwKICAgIFsicmVjdCIsIHsgd2lkdGg6ICIxOCIsIGhlaWdodDogIjE4IiwgeDogIjMiLCB5OiAiMyIsIHJ4OiAiMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMjEgOUgzIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yMSAxNUgzIiB9XQogIF07CgogIGNvbnN0IFRhYmxlUm93c1NwbGl0ID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTE0IDEwaDIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE1IDIydi04IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNSAydjQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIgMTBoMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMjAgMTBoMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMyAxOWgxOCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMyAyMnYtNmEyIDIgMTM1IDAgMSAyLTJoMTRhMiAyIDQ1IDAgMSAyIDJ2NiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMyAydjJhMiAyIDQ1IDAgMCAyIDJoMTRhMiAyIDEzNSAwIDAgMi0yVjIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTggMTBoMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNOSAyMnYtOCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNOSAydjQiIH1dCiAgXTsKCiAgY29uc3QgVGFibGUgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgM3YxOCIgfV0sCiAgICBbInJlY3QiLCB7IHdpZHRoOiAiMTgiLCBoZWlnaHQ6ICIxOCIsIHg6ICIzIiwgeTogIjMiLCByeDogIjIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTMgOWgxOCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMyAxNWgxOCIgfV0KICBdOwoKICBjb25zdCBUYWJsZXRTbWFydHBob25lID0gWwogICAgWyJyZWN0IiwgeyB3aWR0aDogIjEwIiwgaGVpZ2h0OiAiMTQiLCB4OiAiMyIsIHk6ICI4Iiwgcng6ICIyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk01IDRhMiAyIDAgMCAxIDItMmgxMmEyIDIgMCAwIDEgMiAydjE2YTIgMiAwIDAgMS0yIDJoLTIuNCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNOCAxOGguMDEiIH1dCiAgXTsKCiAgY29uc3QgVGFibGV0ID0gWwogICAgWyJyZWN0IiwgeyB3aWR0aDogIjE2IiwgaGVpZ2h0OiAiMjAiLCB4OiAiNCIsIHk6ICIyIiwgcng6ICIyIiwgcnk6ICIyIiB9XSwKICAgIFsibGluZSIsIHsgeDE6ICIxMiIsIHgyOiAiMTIuMDEiLCB5MTogIjE4IiwgeTI6ICIxOCIgfV0KICBdOwoKICBjb25zdCBUYWJsZXRzID0gWwogICAgWyJjaXJjbGUiLCB7IGN4OiAiNyIsIGN5OiAiNyIsIHI6ICI1IiB9XSwKICAgIFsiY2lyY2xlIiwgeyBjeDogIjE3IiwgY3k6ICIxNyIsIHI6ICI1IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xMiAxN2gxMCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMy40NiAxMC41NCA3LjA4LTcuMDgiIH1dCiAgXTsKCiAgY29uc3QgVGFnUGx1cyA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xNiAxM2g2IiB9XSwKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIm0xNi41IDYuNS0zLjkxNC0zLjkxNEEyIDIgMCAwIDAgMTEuMTcyIDJINGEyIDIgMCAwIDAtMiAydjcuMTcyYTIgMiAwIDAgMCAuNTg2IDEuNDE0bDguNzA0IDguNzA0YTIuNDI2IDIuNDI2IDAgMCAwIDMuNDIgMGwxLjc5LTEuNzkiCiAgICAgIH0KICAgIF0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTkgMTB2NiIgfV0sCiAgICBbImNpcmNsZSIsIHsgY3g6ICI3LjUiLCBjeTogIjcuNSIsIHI6ICIuNSIsIGZpbGw6ICJjdXJyZW50Q29sb3IiIH1dCiAgXTsKCiAgY29uc3QgVGFnWCA9IFsKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIm0xNi41IDYuNS0zLjkxNC0zLjkxNEEyIDIgMCAwIDAgMTEuMTcyIDJINGEyIDIgMCAwIDAtMiAydjcuMTcyYTIgMiAwIDAgMCAuNTg2IDEuNDE0bDguNzA0IDguNzA0YTIuNDMgMi40MyAwIDAgMCAzLjQyIDBsMS43OS0xLjc5IgogICAgICB9CiAgICBdLAogICAgWyJwYXRoIiwgeyBkOiAibTE2LjUgMTAuNSA1IDUiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTIxLjUgMTAuNS01IDUiIH1dLAogICAgWyJjaXJjbGUiLCB7IGN4OiAiNy41IiwgY3k6ICI3LjUiLCByOiAiLjUiLCBmaWxsOiAiY3VycmVudENvbG9yIiB9XQogIF07CgogIGNvbnN0IFRhZyA9IFsKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk0xMi41ODYgMi41ODZBMiAyIDAgMCAwIDExLjE3MiAySDRhMiAyIDAgMCAwLTIgMnY3LjE3MmEyIDIgMCAwIDAgLjU4NiAxLjQxNGw4LjcwNCA4LjcwNGEyLjQyNiAyLjQyNiAwIDAgMCAzLjQyIDBsNi41OC02LjU4YTIuNDI2IDIuNDI2IDAgMCAwIDAtMy40MnoiCiAgICAgIH0KICAgIF0sCiAgICBbImNpcmNsZSIsIHsgY3g6ICI3LjUiLCBjeTogIjcuNSIsIHI6ICIuNSIsIGZpbGw6ICJjdXJyZW50Q29sb3IiIH1dCiAgXTsKCiAgY29uc3QgVGFncyA9IFsKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk0xMy4xNzIgMmEyIDIgMCAwIDEgMS40MTQuNTg2bDYuNzEgNi43MWEyLjQgMi40IDAgMCAxIDAgMy40MDhsLTQuNTkyIDQuNTkyYTIuNCAyLjQgMCAwIDEtMy40MDggMGwtNi43MS02LjcxQTIgMiAwIDAgMSA2IDkuMTcyVjNhMSAxIDAgMCAxIDEtMXoiCiAgICAgIH0KICAgIF0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMiA3djYuMTcyYTIgMiAwIDAgMCAuNTg2IDEuNDE0bDYuNzEgNi43MWEyLjQgMi40IDAgMCAwIDMuMTkxLjE5MyIgfV0sCiAgICBbImNpcmNsZSIsIHsgY3g6ICIxMC41IiwgY3k6ICI2LjUiLCByOiAiLjUiLCBmaWxsOiAiY3VycmVudENvbG9yIiB9XQogIF07CgogIGNvbnN0IFRhbGx5MSA9IFtbInBhdGgiLCB7IGQ6ICJNNCA0djE2IiB9XV07CgogIGNvbnN0IFRhbGx5MiA9IFsKICAgIFsicGF0aCIsIHsgZDogIk00IDR2MTYiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTkgNHYxNiIgfV0KICBdOwoKICBjb25zdCBUYWxseTMgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNNCA0djE2IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk05IDR2MTYiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE0IDR2MTYiIH1dCiAgXTsKCiAgY29uc3QgVGFsbHk0ID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTQgNHYxNiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNOSA0djE2IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNCA0djE2IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xOSA0djE2IiB9XQogIF07CgogIGNvbnN0IFRhbGx5NSA9IFsKICAgIFsicGF0aCIsIHsgZDogIk00IDR2MTYiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTkgNHYxNiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTQgNHYxNiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTkgNHYxNiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMjIgNiAyIDE4IiB9XQogIF07CgogIGNvbnN0IFRhbmdlbnQgPSBbCiAgICBbImNpcmNsZSIsIHsgY3g6ICIxNyIsIGN5OiAiNCIsIHI6ICIyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNS41OSA1LjQxIDUuNDEgMTUuNTkiIH1dLAogICAgWyJjaXJjbGUiLCB7IGN4OiAiNCIsIGN5OiAiMTciLCByOiAiMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgMjJzLTQtOS0xLjUtMTEuNVMyMiAxMiAyMiAxMiIgfV0KICBdOwoKICBjb25zdCBUYXJnZXQgPSBbCiAgICBbImNpcmNsZSIsIHsgY3g6ICIxMiIsIGN5OiAiMTIiLCByOiAiMTAiIH1dLAogICAgWyJjaXJjbGUiLCB7IGN4OiAiMTIiLCBjeTogIjEyIiwgcjogIjYiIH1dLAogICAgWyJjaXJjbGUiLCB7IGN4OiAiMTIiLCBjeTogIjEyIiwgcjogIjIiIH1dCiAgXTsKCiAgY29uc3QgVGVsZXNjb3BlID0gWwogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAibTEwLjA2NSAxMi40OTMtNi4xOCAxLjMxOGEuOTM0LjkzNCAwIDAgMS0xLjEwOC0uNzAybC0uNTM3LTIuMTVhMS4wNyAxLjA3IDAgMCAxIC42OTEtMS4yNjVsMTMuNTA0LTQuNDQiCiAgICAgIH0KICAgIF0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMTMuNTYgMTEuNzQ3IDQuMzMyLS45MjQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTE2IDIxLTMuMTA1LTYuMjEiIH1dLAogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTE2LjQ4NSA1Ljk0YTIgMiAwIDAgMSAxLjQ1NS0yLjQyNWwxLjA5LS4yNzJhMSAxIDAgMCAxIDEuMjEyLjcyN2wxLjUxNSA2LjA2YTEgMSAwIDAgMS0uNzI3IDEuMjEzbC0xLjA5LjI3MmEyIDIgMCAwIDEtMi40MjUtMS40NTV6IgogICAgICB9CiAgICBdLAogICAgWyJwYXRoIiwgeyBkOiAibTYuMTU4IDguNjMzIDEuMTE0IDQuNDU2IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm04IDIxIDMuMTA1LTYuMjEiIH1dLAogICAgWyJjaXJjbGUiLCB7IGN4OiAiMTIiLCBjeTogIjEzIiwgcjogIjIiIH1dCiAgXTsKCiAgY29uc3QgVGVudFRyZWUgPSBbCiAgICBbImNpcmNsZSIsIHsgY3g6ICI0IiwgY3k6ICI0IiwgcjogIjIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTE0IDUgMy0zIDMgMyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMTQgMTAgMy0zIDMgMyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTcgMTRWMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTcgMTRIN2wtNSA4aDIwWiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNOCAxNHY4IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm05IDE0IDUgOCIgfV0KICBdOwoKICBjb25zdCBUZW50ID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTMuNSAyMSAxNCAzIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yMC41IDIxIDEwIDMiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE1LjUgMjEgMTIgMTVsLTMuNSA2IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yIDIxaDIwIiB9XQogIF07CgogIGNvbnN0IFRlcm1pbmFsID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDE5aDgiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTQgMTcgNi02LTYtNiIgfV0KICBdOwoKICBjb25zdCBUZXN0VHViZURpYWdvbmFsID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTIxIDcgNi44MiAyMS4xOGEyLjgzIDIuODMgMCAwIDEtMy45OS0uMDFhMi44MyAyLjgzIDAgMCAxIDAtNEwxNyAzIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0xNiAyIDYgNiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgMTZINCIgfV0KICBdOwoKICBjb25zdCBUZXN0VHViZSA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xNC41IDJ2MTcuNWMwIDEuNC0xLjEgMi41LTIuNSAyLjVjLTEuNCAwLTIuNS0xLjEtMi41LTIuNVYyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk04LjUgMmg3IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNC41IDE2aC01IiB9XQogIF07CgogIGNvbnN0IFRlc3RUdWJlcyA9IFsKICAgIFsicGF0aCIsIHsgZDogIk05IDJ2MTcuNUEyLjUgMi41IDAgMCAxIDYuNSAyMkEyLjUgMi41IDAgMCAxIDQgMTkuNVYyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yMCAydjE3LjVhMi41IDIuNSAwIDAgMS0yLjUgMi41YTIuNSAyLjUgMCAwIDEtMi41LTIuNVYyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0zIDJoNyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTQgMmg3IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk05IDE2SDQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIwIDE2aC01IiB9XQogIF07CgogIGNvbnN0IFRleHRBbGlnbkNlbnRlciA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0yMSA1SDMiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE3IDEySDciIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE5IDE5SDUiIH1dCiAgXTsKCiAgY29uc3QgVGV4dEFsaWduRW5kID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTIxIDVIMyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMjEgMTJIOSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMjEgMTlINyIgfV0KICBdOwoKICBjb25zdCBUZXh0QWxpZ25KdXN0aWZ5ID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTMgNWgxOCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMyAxMmgxOCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMyAxOWgxOCIgfV0KICBdOwoKICBjb25zdCBUZXh0QWxpZ25TdGFydCA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0yMSA1SDMiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE1IDEySDMiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE3IDE5SDMiIH1dCiAgXTsKCiAgY29uc3QgVGV4dEN1cnNvcklucHV0ID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDIwaC0xYTIgMiAwIDAgMS0yLTIgMiAyIDAgMCAxLTIgMkg2IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xMyA4aDdhMiAyIDAgMCAxIDIgMnY0YTIgMiAwIDAgMS0yIDJoLTciIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTUgMTZINGEyIDIgMCAwIDEtMi0ydi00YTIgMiAwIDAgMSAyLTJoMSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNiA0aDFhMiAyIDAgMCAxIDIgMiAyIDIgMCAwIDEgMi0yaDEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTkgNnYxMiIgfV0KICBdOwoKICBjb25zdCBUZXh0Q3Vyc29yID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTE3IDIyaC0xYTQgNCAwIDAgMS00LTRWNmE0IDQgMCAwIDEgNC00aDEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTcgMjJoMWE0IDQgMCAwIDAgNC00IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk03IDJoMWE0IDQgMCAwIDEgNCA0IiB9XQogIF07CgogIGNvbnN0IFRleHRJbml0aWFsID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTE1IDVoNiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTUgMTJoNiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMyAxOWgxOCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMyAxMiAzLjU1My03LjcyNGEuNS41IDAgMCAxIC44OTQgMEwxMSAxMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMy45MiAxMGg2LjE2IiB9XQogIF07CgogIGNvbnN0IFRleHRRdW90ZSA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xNyA1SDMiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIxIDEySDgiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIxIDE5SDgiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTMgMTJ2NyIgfV0KICBdOwoKICBjb25zdCBUZXh0U2VhcmNoID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTIxIDVIMyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTAgMTJIMyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTAgMTlIMyIgfV0sCiAgICBbImNpcmNsZSIsIHsgY3g6ICIxNyIsIGN5OiAiMTUiLCByOiAiMyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMjEgMTktMS45LTEuOSIgfV0KICBdOwoKICBjb25zdCBUZXh0V3JhcCA9IFsKICAgIFsicGF0aCIsIHsgZDogIm0xNiAxNi0zIDMgMyAzIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0zIDEyaDE0LjVhMSAxIDAgMCAxIDAgN0gxMyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMyAxOWg2IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0zIDVoMTgiIH1dCiAgXTsKCiAgY29uc3QgVGhlcm1vbWV0ZXJTbm93Zmxha2UgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJtMTAgMjAtMS4yNS0yLjVMNiAxOCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTAgNCA4Ljc1IDYuNSA2IDYiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTEwLjU4NSAxNUgxMCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMiAxMmg2LjVMMTAgOSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMjAgMTQuNTRhNCA0IDAgMSAxLTQgMFY0YTIgMiAwIDAgMSA0IDB6IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm00IDEwIDEuNSAyTDQgMTQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTcgMjEgMy02LTEuNS0zIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm03IDMgMyA2aDIiIH1dCiAgXTsKCiAgY29uc3QgVGhlYXRlciA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0yIDEwczMtMyAzLTgiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIyIDEwcy0zLTMtMy04IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xMCAyYzAgNC40LTMuNiA4LTggOCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTQgMmMwIDQuNCAzLjYgOCA4IDgiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIgMTBzMiAyIDIgNSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMjIgMTBzLTIgMi0yIDUiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTggMTVoOCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMiAyMnYtMWEyIDIgMCAwIDEgMi0yaDRhMiAyIDAgMCAxIDIgMnYxIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNCAyMnYtMWEyIDIgMCAwIDEgMi0yaDRhMiAyIDAgMCAxIDIgMnYxIiB9XQogIF07CgogIGNvbnN0IFRoZXJtb21ldGVyU3VuID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDJ2MiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgOGE0IDQgMCAwIDAtMS42NDUgNy42NDciIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIgMTJoMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMjAgMTQuNTRhNCA0IDAgMSAxLTQgMFY0YTIgMiAwIDAgMSA0IDB6IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm00LjkzIDQuOTMgMS40MSAxLjQxIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm02LjM0IDE3LjY2LTEuNDEgMS40MSIgfV0KICBdOwoKICBjb25zdCBUaGVybW9tZXRlciA9IFtbInBhdGgiLCB7IGQ6ICJNMTQgNHYxMC41NGE0IDQgMCAxIDEtNCAwVjRhMiAyIDAgMCAxIDQgMFoiIH1dXTsKCiAgY29uc3QgVGh1bWJzRG93biA9IFsKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk05IDE4LjEyIDEwIDE0SDQuMTdhMiAyIDAgMCAxLTEuOTItMi41NmwyLjMzLThBMiAyIDAgMCAxIDYuNSAySDIwYTIgMiAwIDAgMSAyIDJ2OGEyIDIgMCAwIDEtMiAyaC0yLjc2YTIgMiAwIDAgMC0xLjc5IDEuMTFMMTIgMjJhMy4xMyAzLjEzIDAgMCAxLTMtMy44OFoiCiAgICAgIH0KICAgIF0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTcgMTRWMiIgfV0KICBdOwoKICBjb25zdCBUaHVtYnNVcCA9IFsKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk0xNSA1Ljg4IDE0IDEwaDUuODNhMiAyIDAgMCAxIDEuOTIgMi41NmwtMi4zMyA4QTIgMiAwIDAgMSAxNy41IDIySDRhMiAyIDAgMCAxLTItMnYtOGEyIDIgMCAwIDEgMi0yaDIuNzZhMiAyIDAgMCAwIDEuNzktMS4xMUwxMiAyYTMuMTMgMy4xMyAwIDAgMSAzIDMuODhaIgogICAgICB9CiAgICBdLAogICAgWyJwYXRoIiwgeyBkOiAiTTcgMTB2MTIiIH1dCiAgXTsKCiAgY29uc3QgVGlja2V0TWludXMgPSBbCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMiA5YTMgMyAwIDAgMSAwIDZ2MmEyIDIgMCAwIDAgMiAyaDE2YTIgMiAwIDAgMCAyLTJ2LTJhMyAzIDAgMCAxIDAtNlY3YTIgMiAwIDAgMC0yLTJINGEyIDIgMCAwIDAtMiAyWiIKICAgICAgfQogICAgXSwKICAgIFsicGF0aCIsIHsgZDogIk05IDEyaDYiIH1dCiAgXTsKCiAgY29uc3QgVGlja2V0Q2hlY2sgPSBbCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMiA5YTMgMyAwIDAgMSAwIDZ2MmEyIDIgMCAwIDAgMiAyaDE2YTIgMiAwIDAgMCAyLTJ2LTJhMyAzIDAgMCAxIDAtNlY3YTIgMiAwIDAgMC0yLTJINGEyIDIgMCAwIDAtMiAyWiIKICAgICAgfQogICAgXSwKICAgIFsicGF0aCIsIHsgZDogIm05IDEyIDIgMiA0LTQiIH1dCiAgXTsKCiAgY29uc3QgVGlja2V0UGVyY2VudCA9IFsKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk0yIDlhMyAzIDAgMSAxIDAgNnYyYTIgMiAwIDAgMCAyIDJoMTZhMiAyIDAgMCAwIDItMnYtMmEzIDMgMCAxIDEgMC02VjdhMiAyIDAgMCAwLTItMkg0YTIgMiAwIDAgMC0yIDJaIgogICAgICB9CiAgICBdLAogICAgWyJwYXRoIiwgeyBkOiAiTTkgOWguMDEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTE1IDktNiA2IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNSAxNWguMDEiIH1dCiAgXTsKCiAgY29uc3QgVGlja2V0UGx1cyA9IFsKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk0yIDlhMyAzIDAgMCAxIDAgNnYyYTIgMiAwIDAgMCAyIDJoMTZhMiAyIDAgMCAwIDItMnYtMmEzIDMgMCAwIDEgMC02VjdhMiAyIDAgMCAwLTItMkg0YTIgMiAwIDAgMC0yIDJaIgogICAgICB9CiAgICBdLAogICAgWyJwYXRoIiwgeyBkOiAiTTkgMTJoNiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgOXY2IiB9XQogIF07CgogIGNvbnN0IFRpY2tldFNsYXNoID0gWwogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTIgOWEzIDMgMCAwIDEgMCA2djJhMiAyIDAgMCAwIDIgMmgxNmEyIDIgMCAwIDAgMi0ydi0yYTMgMyAwIDAgMSAwLTZWN2EyIDIgMCAwIDAtMi0ySDRhMiAyIDAgMCAwLTIgMloiCiAgICAgIH0KICAgIF0sCiAgICBbInBhdGgiLCB7IGQ6ICJtOS41IDE0LjUgNS01IiB9XQogIF07CgogIGNvbnN0IFRpY2tldFggPSBbCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMiA5YTMgMyAwIDAgMSAwIDZ2MmEyIDIgMCAwIDAgMiAyaDE2YTIgMiAwIDAgMCAyLTJ2LTJhMyAzIDAgMCAxIDAtNlY3YTIgMiAwIDAgMC0yLTJINGEyIDIgMCAwIDAtMiAyWiIKICAgICAgfQogICAgXSwKICAgIFsicGF0aCIsIHsgZDogIm05LjUgMTQuNSA1LTUiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTkuNSA5LjUgNSA1IiB9XQogIF07CgogIGNvbnN0IFRpY2tldCA9IFsKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk0yIDlhMyAzIDAgMCAxIDAgNnYyYTIgMiAwIDAgMCAyIDJoMTZhMiAyIDAgMCAwIDItMnYtMmEzIDMgMCAwIDEgMC02VjdhMiAyIDAgMCAwLTItMkg0YTIgMiAwIDAgMC0yIDJaIgogICAgICB9CiAgICBdLAogICAgWyJwYXRoIiwgeyBkOiAiTTEzIDV2MiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTMgMTd2MiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTMgMTF2MiIgfV0KICBdOwoKICBjb25zdCBUaWNrZXRzUGxhbmUgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTAuNSAxN2gxLjIyN2EyIDIgMCAwIDAgMS4zNDUtLjUyTDE4IDEyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0xMiAxMy41IDMuNzk0LjUwNiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMy4xNzMgOC4xOCAxMS01YTIgMiAwIDAgMSAyLjY0Ny45OTNMMTguNTYgOCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNiAxMFY4IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk02IDE0djEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTYgMTl2MiIgfV0sCiAgICBbInJlY3QiLCB7IHg6ICIyIiwgeTogIjgiLCB3aWR0aDogIjIwIiwgaGVpZ2h0OiAiMTMiLCByeDogIjIiIH1dCiAgXTsKCiAgY29uc3QgVGlja2V0cyA9IFsKICAgIFsicGF0aCIsIHsgZDogIm0zLjE3MyA4LjE4IDExLTVhMiAyIDAgMCAxIDIuNjQ3Ljk5M0wxOC41NiA4IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk02IDEwVjgiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTYgMTR2MSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNiAxOXYyIiB9XSwKICAgIFsicmVjdCIsIHsgeDogIjIiLCB5OiAiOCIsIHdpZHRoOiAiMjAiLCBoZWlnaHQ6ICIxMyIsIHJ4OiAiMiIgfV0KICBdOwoKICBjb25zdCBUaW1lbGluZSA9IFsKICAgIFsicGF0aCIsIHsgZDogIk00IDEyaC4wMSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNCAxNmguMDEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTQgMjBoLjAxIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk00IDRoLjAxIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk00IDhoLjAxIiB9XSwKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk05LjQxNCAxMy40MTRhMiAyIDAgMCAwIDEuNDE0LjU4NkgxOWExIDEgMCAwIDAgMS0xdi0yYTEgMSAwIDAgMC0xLTFoLTguMTcyYTIgMiAwIDAgMC0xLjQxNC41ODZMOCAxMnoiCiAgICAgIH0KICAgIF0sCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNOS40MTQgMjEuNDE0YTIgMiAwIDAgMCAxLjQxNC41ODZIMTlhMSAxIDAgMCAwIDEtMXYtMmExIDEgMCAwIDAtMS0xaC04LjE3MmEyIDIgMCAwIDAtMS40MTQuNTg2TDggMjB6IgogICAgICB9CiAgICBdLAogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTkuNDE0IDUuNDE0QTIgMiAwIDAgMCAxMC44MjggNkgxOWExIDEgMCAwIDAgMS0xVjNhMSAxIDAgMCAwLTEtMWgtOC4xNzJhMiAyIDAgMCAwLTEuNDE0LjU4Nkw4IDR6IgogICAgICB9CiAgICBdCiAgXTsKCiAgY29uc3QgVGltZXJPZmYgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTAgMmg0IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk00LjYgMTFhOCA4IDAgMCAwIDEuNyA4LjcgOCA4IDAgMCAwIDguNyAxLjciIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTcuNCA3LjRhOCA4IDAgMCAxIDEwLjMgMSA4IDggMCAwIDEgLjkgMTAuMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMiAyIDIwIDIwIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xMiAxMnYtMiIgfV0KICBdOwoKICBjb25zdCBUaW1lclJlc2V0ID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTEwIDJoNCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgMTR2LTQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTQgMTNhOCA4IDAgMCAxIDgtNyA4IDggMCAxIDEtNS4zIDE0TDQgMTcuNiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNOSAxN0g0djUiIH1dCiAgXTsKCiAgY29uc3QgVGltZXIgPSBbCiAgICBbImxpbmUiLCB7IHgxOiAiMTAiLCB4MjogIjE0IiwgeTE6ICIyIiwgeTI6ICIyIiB9XSwKICAgIFsibGluZSIsIHsgeDE6ICIxMiIsIHgyOiAiMTUiLCB5MTogIjE0IiwgeTI6ICIxMSIgfV0sCiAgICBbImNpcmNsZSIsIHsgY3g6ICIxMiIsIGN5OiAiMTQiLCByOiAiOCIgfV0KICBdOwoKICBjb25zdCBUb2dnbGVMZWZ0ID0gWwogICAgWyJjaXJjbGUiLCB7IGN4OiAiOSIsIGN5OiAiMTIiLCByOiAiMyIgfV0sCiAgICBbInJlY3QiLCB7IHdpZHRoOiAiMjAiLCBoZWlnaHQ6ICIxNCIsIHg6ICIyIiwgeTogIjUiLCByeDogIjciIH1dCiAgXTsKCiAgY29uc3QgVG9nZ2xlUmlnaHQgPSBbCiAgICBbImNpcmNsZSIsIHsgY3g6ICIxNSIsIGN5OiAiMTIiLCByOiAiMyIgfV0sCiAgICBbInJlY3QiLCB7IHdpZHRoOiAiMjAiLCBoZWlnaHQ6ICIxNCIsIHg6ICIyIiwgeTogIjUiLCByeDogIjciIH1dCiAgXTsKCiAgY29uc3QgVG9pbGV0ID0gWwogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTcgMTJoMTNhMSAxIDAgMCAxIDEgMSA1IDUgMCAwIDEtNSA1aC0uNTk4YS41LjUgMCAwIDAtLjQyNC43NjVsMS41NDQgMi40N2EuNS41IDAgMCAxLS40MjQuNzY1SDUuNDAyYS41LjUgMCAwIDEtLjQyNC0uNzY1TDcgMTgiCiAgICAgIH0KICAgIF0sCiAgICBbInBhdGgiLCB7IGQ6ICJNOCAxOGE1IDUgMCAwIDEtNS01VjRhMiAyIDAgMCAxIDItMmg4YTIgMiAwIDAgMSAyIDJ2OCIgfV0KICBdOwoKICBjb25zdCBUb29sQ2FzZSA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xMCAxNWg0IiB9XSwKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIm0xNC44MTcgMTAuOTk1LS45NzEtMS40NSAxLjAzNC0xLjIzMmEyIDIgMCAwIDAtMi4wMjUtMy4yMzhsLTEuODIuMzY0TDkuOTEgMy44ODVhMiAyIDAgMCAwLTMuNjI1Ljc0OEw2LjE0MSA2LjU1bC0xLjcyNS40MjZhMiAyIDAgMCAwLS4xOSAzLjc1NmwuNjU3LjI3IgogICAgICB9CiAgICBdLAogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAibTE4LjgyMiAxMC45OTUgMi4yNi01LjM4YTEgMSAwIDAgMC0uNTU3LTEuMzE4TDE2Ljk1NCAyLjlhMSAxIDAgMCAwLTEuMjgxLjUzM2wtLjkyNCAyLjEyMiIKICAgICAgfQogICAgXSwKICAgIFsicGF0aCIsIHsgZDogIk00IDEyLjAwNkExIDEgMCAwIDEgNC45OTQgMTFIMTlhMSAxIDAgMCAxIDEgMXY3YTIgMiAwIDAgMS0yIDJINmEyIDIgMCAwIDEtMi0yeiIgfV0KICBdOwoKICBjb25zdCBUb29sYm94ID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTE2IDEydjQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE2IDZWNGEyIDIgMCAwMC0yLTJoLTRhMiAyIDAgMDAtMiAydjIiIH1dLAogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTE3IDZhMiAyIDAgMDExLjQxNC41ODZsMyAzQTIgMiAwIDAxMjIgMTF2OGEyIDIgMCAwMS0yIDJINGEyIDIgMCAwMS0yLTJ2LThhMiAyIDAgMDEuNTg2LTEuNDE0bDMtM0EyIDIgMCAwMTcgNnoiCiAgICAgIH0KICAgIF0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMiAxNGgyMCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNOCAxMnY0IiB9XQogIF07CgogIGNvbnN0IFRvcnVzID0gWwogICAgWyJlbGxpcHNlIiwgeyBjeDogIjEyIiwgY3k6ICIxMSIsIHJ4OiAiMyIsIHJ5OiAiMiIgfV0sCiAgICBbImVsbGlwc2UiLCB7IGN4OiAiMTIiLCBjeTogIjEyLjUiLCByeDogIjEwIiwgcnk6ICI4LjUiIH1dCiAgXTsKCiAgY29uc3QgVG9ybmFkbyA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0yMSA0SDMiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE4IDhINiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTkgMTJIOSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTYgMTZoLTYiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTExIDIwSDkiIH1dCiAgXTsKCiAgY29uc3QgVG91Y2hwYWRPZmYgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgMjB2LTYiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE5LjY1NiAxNEgyMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMiAxNGgxMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMiAyIDIwIDIwIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yMCAyMEg0YTIgMiAwIDAgMS0yLTJWNmEyIDIgMCAwIDEgMi0yIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk05LjY1NiA0SDIwYTIgMiAwIDAgMSAyIDJ2MTAuMzQ0IiB9XQogIF07CgogIGNvbnN0IFRvdWNocGFkID0gWwogICAgWyJyZWN0IiwgeyB3aWR0aDogIjIwIiwgaGVpZ2h0OiAiMTYiLCB4OiAiMiIsIHk6ICI0Iiwgcng6ICIyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yIDE0aDIwIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xMiAyMHYtNiIgfV0KICBdOwoKICBjb25zdCBUb3dlbFJhY2sgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMjIgN2gtMiIgfV0sCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNNi41IDNoMTFBMi41IDIuNSAwIDAgMSAyMCA1LjVWMjBhMSAxIDAgMCAxLTEgMWgtOWExIDEgMCAwIDEtMS0xVjUuNWExIDEgMCAwIDAtNSAwVjE3YTEgMSAwIDAgMCAxIDFoNCIKICAgICAgfQogICAgXSwKICAgIFsicGF0aCIsIHsgZDogIk05IDdIMiIgfV0KICBdOwoKICBjb25zdCBUb3lCcmljayA9IFsKICAgIFsicmVjdCIsIHsgd2lkdGg6ICIxOCIsIGhlaWdodDogIjEyIiwgeDogIjMiLCB5OiAiOCIsIHJ4OiAiMSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTAgOFY1YzAtLjYtLjQtMS0xLTFINmExIDEgMCAwIDAtMSAxdjMiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE5IDhWNWMwLS42LS40LTEtMS0xaC0zYTEgMSAwIDAgMC0xIDF2MyIgfV0KICBdOwoKICBjb25zdCBUb3dlckNvbnRyb2wgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTguMiAxMi4yNyAyMCA2SDRsMS44IDYuMjdhMSAxIDAgMCAwIC45NS43M2gxMC41YTEgMSAwIDAgMCAuOTYtLjczWiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNOCAxM3Y5IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNiAyMnYtOSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtOSA2IDEgNyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMTUgNi0xIDciIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDZWMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTMgMmgtMiIgfV0KICBdOwoKICBjb25zdCBUcmFjdG9yID0gWwogICAgWyJwYXRoIiwgeyBkOiAibTEwIDExIDExIC45YTEgMSAwIDAgMSAuOCAxLjFsLS42NjUgNC4xNThhMSAxIDAgMCAxLS45ODguODQySDIwIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNiAxOGgtNSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTggNWExIDEgMCAwIDAtMSAxdjUuNTczIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0zIDRoOC4xMjlhMSAxIDAgMCAxIC45OS44NjNMMTMgMTEuMjQ2IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk00IDExVjQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTcgMTVoLjAxIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk04IDEwLjFWNCIgfV0sCiAgICBbImNpcmNsZSIsIHsgY3g6ICIxOCIsIGN5OiAiMTgiLCByOiAiMiIgfV0sCiAgICBbImNpcmNsZSIsIHsgY3g6ICI3IiwgY3k6ICIxNSIsIHI6ICI1IiB9XQogIF07CgogIGNvbnN0IFRyYWZmaWNDb25lID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTE2LjA1IDEwLjk2NmE1IDIuNSAwIDAgMS04LjEgMCIgfV0sCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJtMTYuOTIzIDE0LjA0OSA0LjQ4IDIuMDRhMSAxIDAgMCAxIC4wMDEgMS44MzFsLTguNTc0IDMuOWEyIDIgMCAwIDEtMS42NiAwbC04LjU3NC0zLjkxYTEgMSAwIDAgMSAwLTEuODNsNC40ODQtMi4wNCIKICAgICAgfQogICAgXSwKICAgIFsicGF0aCIsIHsgZDogIk0xNi45NDkgMTQuMTRhNSAyLjUgMCAxIDEtOS45IDBMMTAuMDYzIDMuNWEyIDIgMCAwIDEgMy44NzQgMHoiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTkuMTk0IDYuNTdhNSAyLjUgMCAwIDAgNS42MSAwIiB9XQogIF07CgogIGNvbnN0IFRyYWluRnJvbnRUdW5uZWwgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMiAyMlYxMmExMCAxMCAwIDEgMSAyMCAwdjEwIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNSA2Ljh2MS40YTMgMi44IDAgMSAxLTYgMFY2LjgiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTEwIDE1aC4wMSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTQgMTVoLjAxIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xMCAxOWE0IDQgMCAwIDEtNC00di0zYTYgNiAwIDEgMSAxMiAwdjNhNCA0IDAgMCAxLTQgNFoiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTkgMTktMiAzIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0xNSAxOSAyIDMiIH1dCiAgXTsKCiAgY29uc3QgVHJhaW5Gcm9udCA9IFsKICAgIFsicGF0aCIsIHsgZDogIk04IDMuMVY3YTQgNCAwIDAgMCA4IDBWMy4xIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm05IDE1LTEtMSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMTUgMTUgMS0xIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk05IDE5Yy0yLjggMC01LTIuMi01LTV2LTRhOCA4IDAgMCAxIDE2IDB2NGMwIDIuOC0yLjIgNS01IDVaIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm04IDE5LTIgMyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMTYgMTkgMiAzIiB9XQogIF07CgogIGNvbnN0IFRyYWluVHJhY2sgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMiAxNyAxNyAyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0yIDE0IDggOCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtNSAxMSA4IDgiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTggOCA4IDgiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTExIDUgOCA4IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0xNCAyIDggOCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNyAyMiAyMiA3IiB9XQogIF07CgogIGNvbnN0IFRyYW1Gcm9udCA9IFsKICAgIFsicmVjdCIsIHsgd2lkdGg6ICIxNiIsIGhlaWdodDogIjE2IiwgeDogIjQiLCB5OiAiMyIsIHJ4OiAiMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNCAxMWgxNiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgM3Y4IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm04IDE5LTIgMyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMTggMjItMi0zIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk04IDE1aC4wMSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTYgMTVoLjAxIiB9XQogIF07CgogIGNvbnN0IFRyYW5zZ2VuZGVyID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDE2djYiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE0IDIwaC00IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xOCAyaDR2NCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMiAyIDcuMTcgNy4xNyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMiA1LjM1NVYyaDMuMzU3IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0yMiAyLTcuMTcgNy4xNyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNOCA1IDUgOCIgfV0sCiAgICBbImNpcmNsZSIsIHsgY3g6ICIxMiIsIGN5OiAiMTIiLCByOiAiNCIgfV0KICBdOwoKICBjb25zdCBUcmFzaDIgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTAgMTF2NiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTQgMTF2NiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTkgNnYxNGEyIDIgMCAwIDEtMiAySDdhMiAyIDAgMCAxLTItMlY2IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0zIDZoMTgiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTggNlY0YTIgMiAwIDAgMSAyLTJoNGEyIDIgMCAwIDEgMiAydjIiIH1dCiAgXTsKCiAgY29uc3QgVHJhc2ggPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTkgNnYxNGEyIDIgMCAwIDEtMiAySDdhMiAyIDAgMCAxLTItMlY2IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0zIDZoMTgiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTggNlY0YTIgMiAwIDAgMSAyLTJoNGEyIDIgMCAwIDEgMiAydjIiIH1dCiAgXTsKCiAgY29uc3QgVHJlZURlY2lkdW91cyA9IFsKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk04IDE5YTQgNCAwIDAgMS0yLjI0LTcuMzJBMy41IDMuNSAwIDAgMSA5IDYuMDNWNmEzIDMgMCAxIDEgNiAwdi4wNGEzLjUgMy41IDAgMCAxIDMuMjQgNS42NUE0IDQgMCAwIDEgMTYgMTlaIgogICAgICB9CiAgICBdLAogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDE5djMiIH1dCiAgXTsKCiAgY29uc3QgVHJlZVBhbG0gPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTMgOGMwLTIuNzYtMi40Ni01LTUuNS01UzIgNS4yNCAyIDhoMmwxLTEgMSAxaDQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTEzIDcuMTRBNS44MiA1LjgyIDAgMCAxIDE2LjUgNmMzLjA0IDAgNS41IDIuMjQgNS41IDVoLTNsLTEtMS0xIDFoLTMiIH1dLAogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTUuODkgOS43MWMtMi4xNSAyLjE1LTIuMyA1LjQ3LS4zNSA3LjQzbDQuMjQtNC4yNS43LS43LjcxLS43MSAyLjEyLTIuMTJjLTEuOTUtMS45Ni01LjI3LTEuOC03LjQyLjM1IgogICAgICB9CiAgICBdLAogICAgWyJwYXRoIiwgeyBkOiAiTTExIDE1LjVjLjUgMi41LS4xNyA0LjUtMSA2LjVoNGMyLTUuNS0uNS0xMi0xLTE0IiB9XQogIF07CgogIGNvbnN0IFRyZWVQaW5lID0gWwogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAibTE3IDE0IDMgMy4zYTEgMSAwIDAgMS0uNyAxLjdINC43YTEgMSAwIDAgMS0uNy0xLjdMNyAxNGgtLjNhMSAxIDAgMCAxLS43LTEuN0w5IDloLS4yQTEgMSAwIDAgMSA4IDcuM0wxMiAzbDQgNC4zYTEgMSAwIDAgMS0uOCAxLjdIMTVsMyAzLjNhMSAxIDAgMCAxLS43IDEuN0gxN1oiCiAgICAgIH0KICAgIF0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgMjJ2LTMiIH1dCiAgXTsKCiAgY29uc3QgVHJlZXMgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTAgMTB2LjJBMyAzIDAgMCAxIDguOSAxNkg1YTMgMyAwIDAgMS0xLTUuOFYxMGEzIDMgMCAwIDEgNiAwWiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNyAxNnY2IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xMyAxOXYzIiB9XSwKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk0xMiAxOWg4LjNhMSAxIDAgMCAwIC43LTEuN0wxOCAxNGguM2ExIDEgMCAwIDAgLjctMS43TDE2IDloLjJhMSAxIDAgMCAwIC44LTEuN0wxMyAzbC0xLjQgMS41IgogICAgICB9CiAgICBdCiAgXTsKCiAgY29uc3QgVHJlbmRpbmdEb3duID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTE2IDE3aDZ2LTYiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTIyIDE3LTguNS04LjUtNSA1TDIgNyIgfV0KICBdOwoKICBjb25zdCBUcmVuZGluZ1VwRG93biA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xNC44MjggMTQuODI4IDIxIDIxIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yMSAxNnY1aC01IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0yMSAzLTkgOS00LTQtNiA2IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yMSA4VjNoLTUiIH1dCiAgXTsKCiAgY29uc3QgVHJlbmRpbmdVcCA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xNiA3aDZ2NiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMjIgNy04LjUgOC41LTUtNUwyIDE3IiB9XQogIF07CgogIGNvbnN0IFRyaWFuZ2xlQWxlcnQgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJtMjEuNzMgMTgtOC0xNGEyIDIgMCAwIDAtMy40OCAwbC04IDE0QTIgMiAwIDAgMCA0IDIxaDE2YTIgMiAwIDAgMCAxLjczLTMiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDl2NCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgMTdoLjAxIiB9XQogIF07CgogIGNvbnN0IFRyaWFuZ2xlRGFzaGVkID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTEwLjE3IDQuMTkzYTIgMiAwIDAgMSAzLjY2Ni4wMTMiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE0IDIxaDIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTE1Ljg3NCA3Ljc0MyAxIDEuNzMyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0xOC44NDkgMTIuOTUyIDEgMS43MzIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIxLjgyNCAxOC4xOGEyIDIgMCAwIDEtMS44MzUgMi44MjQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTQuMDI0IDIxYTIgMiAwIDAgMS0xLjgzOS0yLjgzOSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtNS4xMzYgMTIuOTUyLTEgMS43MzIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTggMjFoMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtOC4xMDIgNy43NDMtMSAxLjczMiIgfV0KICBdOwoKICBjb25zdCBUcmlhbmdsZVJpZ2h0ID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTIyIDE4YTIgMiAwIDAgMS0yIDJIM2MtMS4xIDAtMS4zLS42LS40LTEuM0wyMC40IDQuM2MuOS0uNyAxLjYtLjQgMS42LjdaIiB9XQogIF07CgogIGNvbnN0IFRyaWFuZ2xlID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTEzLjczIDRhMiAyIDAgMCAwLTMuNDYgMGwtOCAxNEEyIDIgMCAwIDAgNCAyMWgxNmEyIDIgMCAwIDAgMS43My0zWiIgfV0KICBdOwoKICBjb25zdCBUcm9waHkgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTAgMTQuNjZWMTdhMSAxIDAgMCAxLTEgMSAyIDIgMCAwIDAtMiAydjIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE0IDE0LjY2VjE3YTEgMSAwIDAgMCAxIDEgMiAyIDAgMCAxIDIgMnYyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNy45MTYgMTBIMTkuNUEyLjUgMi41IDAgMCAwIDIyIDcuNVY1YTEgMSAwIDAgMC0xLTFoLTMiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTQgMjJoMTYiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTYgOWE2IDYgMCAwIDAgMTIgMFYzYTEgMSAwIDAgMC0xLTFIN2ExIDEgMCAwIDAtMSAxeiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNi4wODQgMTBINC41QTIuNSAyLjUgMCAwIDEgMiA3LjVWNWExIDEgMCAwIDEgMS0xaDMiIH1dCiAgXTsKCiAgY29uc3QgVHJ1Y2tFbGVjdHJpYyA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xNCAxOVY3YTIgMiAwIDAgMC0yLTJIOSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTUgMTlIOSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTkgMTloMmExIDEgMCAwIDAgMS0xdi0zLjY1YTEgMSAwIDAgMC0uMjItLjYyTDE4LjMgOS4zOGExIDEgMCAwIDAtLjc4LS4zOEgxNCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMiAxM3Y1YTEgMSAwIDAgMCAxIDFoMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNCAzIDIuMTUgNS4xNWEuNDk1LjQ5NSAwIDAgMCAuMzUuODZoMi4xNWEuNDcuNDcgMCAwIDEgLjM1Ljg2TDMgOS4wMiIgfV0sCiAgICBbImNpcmNsZSIsIHsgY3g6ICIxNyIsIGN5OiAiMTkiLCByOiAiMiIgfV0sCiAgICBbImNpcmNsZSIsIHsgY3g6ICI3IiwgY3k6ICIxOSIsIHI6ICIyIiB9XQogIF07CgogIGNvbnN0IFRydWNrID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTE0IDE4VjZhMiAyIDAgMCAwLTItMkg0YTIgMiAwIDAgMC0yIDJ2MTFhMSAxIDAgMCAwIDEgMWgyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNSAxOEg5IiB9XSwKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7IGQ6ICJNMTkgMThoMmExIDEgMCAwIDAgMS0xdi0zLjY1YTEgMSAwIDAgMC0uMjItLjYyNGwtMy40OC00LjM1QTEgMSAwIDAgMCAxNy41MiA4SDE0IiB9CiAgICBdLAogICAgWyJjaXJjbGUiLCB7IGN4OiAiMTciLCBjeTogIjE4IiwgcjogIjIiIH1dLAogICAgWyJjaXJjbGUiLCB7IGN4OiAiNyIsIGN5OiAiMTgiLCByOiAiMiIgfV0KICBdOwoKICBjb25zdCBUdXJraXNoTGlyYSA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xNSA0IDUgOSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMTUgOC41LTEwIDUiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE4IDEyYTkgOSAwIDAgMS05IDlWMyIgfV0KICBdOwoKICBjb25zdCBUdXJudGFibGUgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTAgMTIuMDFoLjAxIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xOCA4djRhOCA4IDAgMCAxLTEuMDcgNCIgfV0sCiAgICBbImNpcmNsZSIsIHsgY3g6ICIxMCIsIGN5OiAiMTIiLCByOiAiNCIgfV0sCiAgICBbInJlY3QiLCB7IHg6ICIyIiwgeTogIjQiLCB3aWR0aDogIjIwIiwgaGVpZ2h0OiAiMTYiLCByeDogIjIiIH1dCiAgXTsKCiAgY29uc3QgVHVydGxlID0gWwogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAibTEyIDEwIDIgNHYzYTEgMSAwIDAgMCAxIDFoMmExIDEgMCAwIDAgMS0xdi0zYTggOCAwIDEgMC0xNiAwdjNhMSAxIDAgMCAwIDEgMWgyYTEgMSAwIDAgMCAxLTF2LTNsMi00aDRaIgogICAgICB9CiAgICBdLAogICAgWyJwYXRoIiwgeyBkOiAiTTQuODIgNy45IDggMTAiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE1LjE4IDcuOSAxMiAxMCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTYuOTMgMTBIMjBhMiAyIDAgMCAxIDAgNEgyIiB9XQogIF07CgogIGNvbnN0IFR2TWluaW1hbFBsYXkgPSBbCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMTUuMDMzIDkuNDRhLjY0Ny42NDcgMCAwIDEgMCAxLjEybC00LjA2NSAyLjM1MmEuNjQ1LjY0NSAwIDAgMS0uOTY4LS41NlY3LjY0OGEuNjQ1LjY0NSAwIDAgMSAuOTY3LS41NnoiCiAgICAgIH0KICAgIF0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNyAyMWgxMCIgfV0sCiAgICBbInJlY3QiLCB7IHdpZHRoOiAiMjAiLCBoZWlnaHQ6ICIxNCIsIHg6ICIyIiwgeTogIjMiLCByeDogIjIiIH1dCiAgXTsKCiAgY29uc3QgVHZNaW5pbWFsID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTcgMjFoMTAiIH1dLAogICAgWyJyZWN0IiwgeyB3aWR0aDogIjIwIiwgaGVpZ2h0OiAiMTQiLCB4OiAiMiIsIHk6ICIzIiwgcng6ICIyIiB9XQogIF07CgogIGNvbnN0IFR2ID0gWwogICAgWyJwYXRoIiwgeyBkOiAibTE3IDItNSA1LTUtNSIgfV0sCiAgICBbInJlY3QiLCB7IHdpZHRoOiAiMjAiLCBoZWlnaHQ6ICIxNSIsIHg6ICIyIiwgeTogIjciLCByeDogIjIiIH1dCiAgXTsKCiAgY29uc3QgVHlwZSA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xMiA0djE2IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk00IDdWNWExIDEgMCAwIDEgMS0xaDE0YTEgMSAwIDAgMSAxIDF2MiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNOSAyMGg2IiB9XQogIF07CgogIGNvbnN0IFR5cGVPdXRsaW5lID0gWwogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTE0IDE2LjVhLjUuNSAwIDAgMCAuNS41aC41YTIgMiAwIDAgMSAwIDRIOWEyIDIgMCAwIDEgMC00aC41YS41LjUgMCAwIDAgLjUtLjV2LTlhLjUuNSAwIDAgMC0uNS0uNWgtM2EuNS41IDAgMCAwLS41LjVWOGEyIDIgMCAwIDEtNCAwVjVhMiAyIDAgMCAxIDItMmgxNmEyIDIgMCAwIDEgMiAydjNhMiAyIDAgMCAxLTQgMHYtLjVhLjUuNSAwIDAgMC0uNS0uNWgtM2EuNS41IDAgMCAwLS41LjVaIgogICAgICB9CiAgICBdCiAgXTsKCiAgY29uc3QgVW1icmVsbGFPZmYgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgMTN2N2EyIDIgMCAwIDAgNCAwIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xMiAydjIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE4LjY1NiAxM2gyLjMzNmExIDEgMCAwIDAgLjk3LTEuMjc0IDEwLjI4NCAxMC4yODQgMCAwIDAtMTIuMDctNy41MSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMiAyIDIwIDIwIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk01Ljk2MSA1Ljk1N2ExMC4yOCAxMC4yOCAwIDAgMC0zLjkyMiA1Ljc2OUExIDEgMCAwIDAgMyAxM2gxMCIgfV0KICBdOwoKICBjb25zdCBVbWJyZWxsYSA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xMiAxM3Y3YTIgMiAwIDAgMCA0IDAiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDJ2MiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMjAuOTkyIDEzYTEgMSAwIDAgMCAuOTctMS4yNzQgMTAuMjg0IDEwLjI4NCAwIDAgMC0xOS45MjMgMEExIDEgMCAwIDAgMyAxM3oiIH1dCiAgXTsKCiAgY29uc3QgVW5kZXJsaW5lID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTYgNHY2YTYgNiAwIDAgMCAxMiAwVjQiIH1dLAogICAgWyJsaW5lIiwgeyB4MTogIjQiLCB4MjogIjIwIiwgeTE6ICIyMCIsIHkyOiAiMjAiIH1dCiAgXTsKCiAgY29uc3QgVW5kbzIgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNOSAxNCA0IDlsNS01IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk00IDloMTAuNWE1LjUgNS41IDAgMCAxIDUuNSA1LjVhNS41IDUuNSAwIDAgMS01LjUgNS41SDExIiB9XQogIF07CgogIGNvbnN0IFVuZG9Eb3QgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMjEgMTdhOSA5IDAgMCAwLTE1LTYuN0wzIDEzIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0zIDd2Nmg2IiB9XSwKICAgIFsiY2lyY2xlIiwgeyBjeDogIjEyIiwgY3k6ICIxNyIsIHI6ICIxIiB9XQogIF07CgogIGNvbnN0IFVuZG8gPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMyA3djZoNiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMjEgMTdhOSA5IDAgMCAwLTktOSA5IDkgMCAwIDAtNiAyLjNMMyAxMyIgfV0KICBdOwoKICBjb25zdCBVbmZvbGRIb3Jpem9udGFsID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTE2IDEyaDYiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTggMTJIMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgMnYyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xMiA4djIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDE0djIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDIwdjIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTE5IDE1IDMtMy0zLTMiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTUgOS0zIDMgMyAzIiB9XQogIF07CgogIGNvbnN0IFVuZm9sZFZlcnRpY2FsID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDIydi02IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xMiA4VjIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTQgMTJIMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTAgMTJIOCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTYgMTJoLTIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIyIDEyaC0yIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0xNSAxOS0zIDMtMy0zIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0xNSA1LTMtMy0zIDMiIH1dCiAgXTsKCiAgY29uc3QgVW5ncm91cCA9IFsKICAgIFsicmVjdCIsIHsgeDogIjExIiwgeTogIjE0Iiwgd2lkdGg6ICIxMCIsIGhlaWdodDogIjciLCByeDogIjIiIH1dLAogICAgWyJyZWN0IiwgeyB4OiAiMyIsIHk6ICIzIiwgd2lkdGg6ICIxMCIsIGhlaWdodDogIjciLCByeDogIjIiIH1dCiAgXTsKCiAgY29uc3QgVW5pdmVyc2l0eSA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xNCAyMXYtM2EyIDIgMCAwIDAtNCAwdjMiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE4IDEyaC4wMSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTggMTZoLjAxIiB9XSwKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk0yMiA3YTEgMSAwIDAgMC0xLTFoLTJhMiAyIDAgMCAxLTEuMTQzLS4zNTlMMTMuMTQzIDIuMzZhMiAyIDAgMCAwLTIuMjg2LS4wMDFMNi4xNDMgNS42NEEyIDIgMCAwIDEgNSA2SDNhMSAxIDAgMCAwLTEgMXYxMmEyIDIgMCAwIDAgMiAyaDE2YTIgMiAwIDAgMCAyLTJ6IgogICAgICB9CiAgICBdLAogICAgWyJwYXRoIiwgeyBkOiAiTTYgMTJoLjAxIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk02IDE2aC4wMSIgfV0sCiAgICBbImNpcmNsZSIsIHsgY3g6ICIxMiIsIGN5OiAiMTAiLCByOiAiMiIgfV0KICBdOwoKICBjb25zdCBVbmxpbmsyID0gW1sicGF0aCIsIHsgZDogIk0xNSA3aDJhNSA1IDAgMCAxIDAgMTBoLTJtLTYgMEg3QTUgNSAwIDAgMSA3IDdoMiIgfV1dOwoKICBjb25zdCBVbmxpbmsgPSBbCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJtMTguODQgMTIuMjUgMS43Mi0xLjcxaC0uMDJhNS4wMDQgNS4wMDQgMCAwIDAtLjEyLTcuMDcgNS4wMDYgNS4wMDYgMCAwIDAtNi45NSAwbC0xLjcyIDEuNzEiCiAgICAgIH0KICAgIF0sCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgeyBkOiAibTUuMTcgMTEuNzUtMS43MSAxLjcxYTUuMDA0IDUuMDA0IDAgMCAwIC4xMiA3LjA3IDUuMDA2IDUuMDA2IDAgMCAwIDYuOTUgMGwxLjcxLTEuNzEiIH0KICAgIF0sCiAgICBbImxpbmUiLCB7IHgxOiAiOCIsIHgyOiAiOCIsIHkxOiAiMiIsIHkyOiAiNSIgfV0sCiAgICBbImxpbmUiLCB7IHgxOiAiMiIsIHgyOiAiNSIsIHkxOiAiOCIsIHkyOiAiOCIgfV0sCiAgICBbImxpbmUiLCB7IHgxOiAiMTYiLCB4MjogIjE2IiwgeTE6ICIxOSIsIHkyOiAiMjIiIH1dLAogICAgWyJsaW5lIiwgeyB4MTogIjE5IiwgeDI6ICIyMiIsIHkxOiAiMTYiLCB5MjogIjE2IiB9XQogIF07CgogIGNvbnN0IFVucGx1ZyA9IFsKICAgIFsicGF0aCIsIHsgZDogIm0xOSA1IDMtMyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMiAyMiAzLTMiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTYuMyAyMC4zYTIuNCAyLjQgMCAwIDAgMy40IDBMMTIgMThsLTYtNi0yLjMgMi4zYTIuNCAyLjQgMCAwIDAgMCAzLjRaIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk03LjUgMTMuNSAxMCAxMSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTAuNSAxNi41IDEzIDE0IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0xMiA2IDYgNiAyLjMtMi4zYTIuNCAyLjQgMCAwIDAgMC0zLjRsLTIuNi0yLjZhMi40IDIuNCAwIDAgMC0zLjQgMFoiIH1dCiAgXTsKCiAgY29uc3QgVXBsb2FkID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDN2MTIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTE3IDgtNS01LTUgNSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMjEgMTV2NGEyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMnYtNCIgfV0KICBdOwoKICBjb25zdCBVc2IgPSBbCiAgICBbImNpcmNsZSIsIHsgY3g6ICIxMCIsIGN5OiAiNyIsIHI6ICIxIiB9XSwKICAgIFsiY2lyY2xlIiwgeyBjeDogIjQiLCBjeTogIjIwIiwgcjogIjEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTQuNyAxOS4zIDE5IDUiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTIxIDMtMyAxIDIgMloiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTkuMjYgNy42OCA1IDEybDIgNSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMTAgMTQgNSAyIDMuNS0zLjUiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTE4IDEyIDEtMSAxIDEtMSAxWiIgfV0KICBdOwoKICBjb25zdCBVc2VyQ2hlY2sgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJtMTYgMTEgMiAyIDQtNCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTYgMjF2LTJhNCA0IDAgMCAwLTQtNEg2YTQgNCAwIDAgMC00IDR2MiIgfV0sCiAgICBbImNpcmNsZSIsIHsgY3g6ICI5IiwgY3k6ICI3IiwgcjogIjQiIH1dCiAgXTsKCiAgY29uc3QgVXNlckNvZyA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xMCAxNUg2YTQgNCAwIDAgMC00IDR2MiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMTQuMzA1IDE2LjUzLjkyMy0uMzgyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0xNS4yMjggMTMuODUyLS45MjMtLjM4MyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMTYuODUyIDEyLjIyOC0uMzgzLS45MjMiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTE2Ljg1MiAxNy43NzItLjM4My45MjQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTE5LjE0OCAxMi4yMjguMzgzLS45MjMiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTE5LjUzIDE4LjY5Ni0uMzgyLS45MjQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTIwLjc3MiAxMy44NTIuOTI0LS4zODMiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTIwLjc3MiAxNi4xNDguOTI0LjM4MyIgfV0sCiAgICBbImNpcmNsZSIsIHsgY3g6ICIxOCIsIGN5OiAiMTUiLCByOiAiMyIgfV0sCiAgICBbImNpcmNsZSIsIHsgY3g6ICI5IiwgY3k6ICI3IiwgcjogIjQiIH1dCiAgXTsKCiAgY29uc3QgVXNlcktleSA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0yMCAxMXY2IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yMCAxM2gyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0zIDIxdi0yYTQgNCAwIDAgMSA0LTRoNmE0IDQgMCAwIDEgMi4wNzIuNTc4IiB9XSwKICAgIFsiY2lyY2xlIiwgeyBjeDogIjEwIiwgY3k6ICI3IiwgcjogIjQiIH1dLAogICAgWyJjaXJjbGUiLCB7IGN4OiAiMjAiLCBjeTogIjE5IiwgcjogIjIiIH1dCiAgXTsKCiAgY29uc3QgVXNlckxvY2sgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTkgMTZ2LTJhMiAyIDAgMCAwLTQgMHYyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk05LjUgMTVIN2E0IDQgMCAwIDAtNCA0djIiIH1dLAogICAgWyJjaXJjbGUiLCB7IGN4OiAiMTAiLCBjeTogIjciLCByOiAiNCIgfV0sCiAgICBbInJlY3QiLCB7IHg6ICIxMyIsIHk6ICIxNiIsIHdpZHRoOiAiOCIsIGhlaWdodDogIjUiLCByeDogIi44OTkiIH1dCiAgXTsKCiAgY29uc3QgVXNlck1pbnVzID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTE2IDIxdi0yYTQgNCAwIDAgMC00LTRINmE0IDQgMCAwIDAtNCA0djIiIH1dLAogICAgWyJjaXJjbGUiLCB7IGN4OiAiOSIsIGN5OiAiNyIsIHI6ICI0IiB9XSwKICAgIFsibGluZSIsIHsgeDE6ICIyMiIsIHgyOiAiMTYiLCB5MTogIjExIiwgeTI6ICIxMSIgfV0KICBdOwoKICBjb25zdCBVc2VyUGVuID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTExLjUgMTVIN2E0IDQgMCAwIDAtNCA0djIiIH1dLAogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTIxLjM3OCAxNi42MjZhMSAxIDAgMCAwLTMuMDA0LTMuMDA0bC00LjAxIDQuMDEyYTIgMiAwIDAgMC0uNTA2Ljg1NGwtLjgzNyAyLjg3YS41LjUgMCAwIDAgLjYyLjYybDIuODctLjgzN2EyIDIgMCAwIDAgLjg1NC0uNTA2eiIKICAgICAgfQogICAgXSwKICAgIFsiY2lyY2xlIiwgeyBjeDogIjEwIiwgY3k6ICI3IiwgcjogIjQiIH1dCiAgXTsKCiAgY29uc3QgVXNlclBsdXMgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTYgMjF2LTJhNCA0IDAgMCAwLTQtNEg2YTQgNCAwIDAgMC00IDR2MiIgfV0sCiAgICBbImNpcmNsZSIsIHsgY3g6ICI5IiwgY3k6ICI3IiwgcjogIjQiIH1dLAogICAgWyJsaW5lIiwgeyB4MTogIjE5IiwgeDI6ICIxOSIsIHkxOiAiOCIsIHkyOiAiMTQiIH1dLAogICAgWyJsaW5lIiwgeyB4MTogIjIyIiwgeDI6ICIxNiIsIHkxOiAiMTEiLCB5MjogIjExIiB9XQogIF07CgogIGNvbnN0IFVzZXJSb3VuZEFycm93TGVmdCA9IFsKICAgIFsicGF0aCIsIHsgZDogIm0xOSAxNi0zIDMiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIgMjFhOCA4IDAgMCAxIDEyLjY2NC02LjUiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIyIDE5aC02bDMgMyIgfV0sCiAgICBbImNpcmNsZSIsIHsgY3g6ICIxMCIsIGN5OiAiOCIsIHI6ICI1IiB9XQogIF07CgogIGNvbnN0IFVzZXJSb3VuZENoZWNrID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTIgMjFhOCA4IDAgMCAxIDEzLjI5Mi02IiB9XSwKICAgIFsiY2lyY2xlIiwgeyBjeDogIjEwIiwgY3k6ICI4IiwgcjogIjUiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTE2IDE5IDIgMiA0LTQiIH1dCiAgXTsKCiAgY29uc3QgVXNlclJvdW5kQ29nID0gWwogICAgWyJwYXRoIiwgeyBkOiAibTE0LjMwNSAxOS41My45MjMtLjM4MiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMTUuMjI4IDE2Ljg1Mi0uOTIzLS4zODMiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTE2Ljg1MiAxNS4yMjgtLjM4My0uOTIzIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0xNi44NTIgMjAuNzcyLS4zODMuOTI0IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0xOS4xNDggMTUuMjI4LjM4My0uOTIzIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0xOS41MyAyMS42OTYtLjM4Mi0uOTI0IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yIDIxYTggOCAwIDAgMSAxMC40MzQtNy42MiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMjAuNzcyIDE2Ljg1Mi45MjQtLjM4MyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMjAuNzcyIDE5LjE0OC45MjQuMzgzIiB9XSwKICAgIFsiY2lyY2xlIiwgeyBjeDogIjEwIiwgY3k6ICI4IiwgcjogIjUiIH1dLAogICAgWyJjaXJjbGUiLCB7IGN4OiAiMTgiLCBjeTogIjE4IiwgcjogIjMiIH1dCiAgXTsKCiAgY29uc3QgVXNlclJvdW5kS2V5ID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTE5IDExdjYiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE5IDEzaDIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIgMjFhOCA4IDAgMCAxIDEyLjg2OC02LjM0OSIgfV0sCiAgICBbImNpcmNsZSIsIHsgY3g6ICIxMCIsIGN5OiAiOCIsIHI6ICI1IiB9XSwKICAgIFsiY2lyY2xlIiwgeyBjeDogIjE5IiwgY3k6ICIxOSIsIHI6ICIyIiB9XQogIF07CgogIGNvbnN0IFVzZXJSb3VuZE1pbnVzID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTIgMjFhOCA4IDAgMCAxIDEzLjI5Mi02IiB9XSwKICAgIFsiY2lyY2xlIiwgeyBjeDogIjEwIiwgY3k6ICI4IiwgcjogIjUiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIyIDE5aC02IiB9XQogIF07CgogIGNvbnN0IFVzZXJSb3VuZFBlbiA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0yIDIxYTggOCAwIDAgMSAxMC44MjEtNy40ODciIH1dLAogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTIxLjM3OCAxNi42MjZhMSAxIDAgMCAwLTMuMDA0LTMuMDA0bC00LjAxIDQuMDEyYTIgMiAwIDAgMC0uNTA2Ljg1NGwtLjgzNyAyLjg3YS41LjUgMCAwIDAgLjYyLjYybDIuODctLjgzN2EyIDIgMCAwIDAgLjg1NC0uNTA2eiIKICAgICAgfQogICAgXSwKICAgIFsiY2lyY2xlIiwgeyBjeDogIjEwIiwgY3k6ICI4IiwgcjogIjUiIH1dCiAgXTsKCiAgY29uc3QgVXNlclJvdW5kUGx1cyA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0yIDIxYTggOCAwIDAgMSAxMy4yOTItNiIgfV0sCiAgICBbImNpcmNsZSIsIHsgY3g6ICIxMCIsIGN5OiAiOCIsIHI6ICI1IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xOSAxNnY2IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yMiAxOWgtNiIgfV0KICBdOwoKICBjb25zdCBVc2VyUm91bmRTZWFyY2ggPSBbCiAgICBbImNpcmNsZSIsIHsgY3g6ICIxMCIsIGN5OiAiOCIsIHI6ICI1IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yIDIxYTggOCAwIDAgMSAxMC40MzQtNy42MiIgfV0sCiAgICBbImNpcmNsZSIsIHsgY3g6ICIxOCIsIGN5OiAiMTgiLCByOiAiMyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMjIgMjItMS45LTEuOSIgfV0KICBdOwoKICBjb25zdCBVc2VyUm91bmRYID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTIgMjFhOCA4IDAgMCAxIDExLjg3My03IiB9XSwKICAgIFsiY2lyY2xlIiwgeyBjeDogIjEwIiwgY3k6ICI4IiwgcjogIjUiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTE3IDE3IDUgNSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMjIgMTctNSA1IiB9XQogIF07CgogIGNvbnN0IFVzZXJSb3VuZCA9IFsKICAgIFsiY2lyY2xlIiwgeyBjeDogIjEyIiwgY3k6ICI4IiwgcjogIjUiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIwIDIxYTggOCAwIDAgMC0xNiAwIiB9XQogIF07CgogIGNvbnN0IFVzZXJTZWFyY2ggPSBbCiAgICBbImNpcmNsZSIsIHsgY3g6ICIxMCIsIGN5OiAiNyIsIHI6ICI0IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xMC4zIDE1SDdhNCA0IDAgMCAwLTQgNHYyIiB9XSwKICAgIFsiY2lyY2xlIiwgeyBjeDogIjE3IiwgY3k6ICIxNyIsIHI6ICIzIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0yMSAyMS0xLjktMS45IiB9XQogIF07CgogIGNvbnN0IFVzZXJTaGllbGQgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTAgMTVINmE0IDQgMCAwIDAtNCA0djIiIH1dLAogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTIyIDE3LjVjMCAyLjQ5OS0xLjc1IDMuNzQ5LTMuODMgNC40NzRhLjUuNSAwIDAgMS0uMzM1LS4wMDVjLTIuMDg1LS43Mi0zLjgzNS0xLjk3LTMuODM1LTQuNDdWMTRhLjUuNSAwIDAgMSAuNS0uNDk5YzEgMCAyLjI1LS42IDMuMTItMS4zNmEuNi42IDAgMCAxIC43Ni0uMDAxYy44NzUuNzY1IDIuMTIgMS4zNiAzLjEyIDEuMzZhLjUuNSAwIDAgMSAuNS41eiIKICAgICAgfQogICAgXSwKICAgIFsiY2lyY2xlIiwgeyBjeDogIjkiLCBjeTogIjciLCByOiAiNCIgfV0KICBdOwoKICBjb25zdCBVc2VyU3RhciA9IFsKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk0xNi4wNTEgMTIuNjE2YTEgMSAwIDAgMSAxLjkwOS4wMjRsLjczNyAxLjQ1MmExIDEgMCAwIDAgLjczNy41MzVsMS42MzQuMjU2YTEgMSAwIDAgMSAuNTg4IDEuODA2bC0xLjE3MiAxLjE2OGExIDEgMCAwIDAtLjI4Mi44NjZsLjI1OSAxLjYxM2ExIDEgMCAwIDEtMS41NDEgMS4xMzRsLTEuNDY1LS43NWExIDEgMCAwIDAtLjkxMiAwbC0xLjQ2NS43NWExIDEgMCAwIDEtMS41MzktMS4xMzNsLjI1OC0xLjYxM2ExIDEgMCAwIDAtLjI4Mi0uODY2bC0xLjE1Ni0xLjE1M2ExIDEgMCAwIDEgLjU3Mi0xLjgyMmwxLjYzMy0uMjU2YTEgMSAwIDAgMCAuNzM3LS41MzV6IgogICAgICB9CiAgICBdLAogICAgWyJwYXRoIiwgeyBkOiAiTTggMTVIN2E0IDQgMCAwIDAtNCA0djIiIH1dLAogICAgWyJjaXJjbGUiLCB7IGN4OiAiMTAiLCBjeTogIjciLCByOiAiNCIgfV0KICBdOwoKICBjb25zdCBVc2VyWCA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xNiAyMXYtMmE0IDQgMCAwIDAtNC00SDZhNCA0IDAgMCAwLTQgNHYyIiB9XSwKICAgIFsiY2lyY2xlIiwgeyBjeDogIjkiLCBjeTogIjciLCByOiAiNCIgfV0sCiAgICBbImxpbmUiLCB7IHgxOiAiMTciLCB4MjogIjIyIiwgeTE6ICI4IiwgeTI6ICIxMyIgfV0sCiAgICBbImxpbmUiLCB7IHgxOiAiMjIiLCB4MjogIjE3IiwgeTE6ICI4IiwgeTI6ICIxMyIgfV0KICBdOwoKICBjb25zdCBVc2VyID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTE5IDIxdi0yYTQgNCAwIDAgMC00LTRIOWE0IDQgMCAwIDAtNCA0djIiIH1dLAogICAgWyJjaXJjbGUiLCB7IGN4OiAiMTIiLCBjeTogIjciLCByOiAiNCIgfV0KICBdOwoKICBjb25zdCBVc2Vyc1JvdW5kID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTE4IDIxYTggOCAwIDAgMC0xNiAwIiB9XSwKICAgIFsiY2lyY2xlIiwgeyBjeDogIjEwIiwgY3k6ICI4IiwgcjogIjUiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIyIDIwYzAtMy4zNy0yLTYuNS00LThhNSA1IDAgMCAwLS40NS04LjMiIH1dCiAgXTsKCiAgY29uc3QgVXNlcnMgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTYgMjF2LTJhNCA0IDAgMCAwLTQtNEg2YTQgNCAwIDAgMC00IDR2MiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTYgMy4xMjhhNCA0IDAgMCAxIDAgNy43NDQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIyIDIxdi0yYTQgNCAwIDAgMC0zLTMuODciIH1dLAogICAgWyJjaXJjbGUiLCB7IGN4OiAiOSIsIGN5OiAiNyIsIHI6ICI0IiB9XQogIF07CgogIGNvbnN0IFV0ZW5zaWxzQ3Jvc3NlZCA9IFsKICAgIFsicGF0aCIsIHsgZDogIm0xNiAyLTIuMyAyLjNhMyAzIDAgMCAwIDAgNC4ybDEuOCAxLjhhMyAzIDAgMCAwIDQuMiAwTDIyIDgiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE1IDE1IDMuMyAzLjNhNC4yIDQuMiAwIDAgMCAwIDZsNy4zIDcuM2MuNy43IDIgLjcgMi44IDBMMTUgMTVabTAgMCA3IDciIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTIuMSAyMS44IDYuNC02LjMiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTE5IDUtNyA3IiB9XQogIF07CgogIGNvbnN0IFV0ZW5zaWxzID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTMgMnY3YzAgMS4xLjkgMiAyIDJoNGEyIDIgMCAwIDAgMi0yVjIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTcgMnYyMCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMjEgMTVWMmE1IDUgMCAwIDAtNSA1djZjMCAxLjEuOSAyIDIgMmgzWm0wIDB2NyIgfV0KICBdOwoKICBjb25zdCBVdGlsaXR5UG9sZSA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xMiAydjIwIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yIDVoMjAiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTMgM3YyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk03IDN2MiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTcgM3YyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yMSAzdjIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTE5IDUtNyA3LTctNyIgfV0KICBdOwoKICBjb25zdCBWYW4gPSBbCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMTMgNnY1YTEgMSAwIDAgMCAxIDFoNi4xMDJhMSAxIDAgMCAxIC43MTIuMjk4bC44OTguOTFhMSAxIDAgMCAxIC4yODguNzAyVjE3YTEgMSAwIDAgMS0xIDFoLTMiCiAgICAgIH0KICAgIF0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNSAxOEgzYTEgMSAwIDAgMS0xLTFWOGEyIDIgMCAwIDEgMi0yaDEyYzEuMSAwIDIuMS44IDIuNCAxLjhsMS4xNzYgNC4yIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk05IDE4aDUiIH1dLAogICAgWyJjaXJjbGUiLCB7IGN4OiAiMTYiLCBjeTogIjE4IiwgcjogIjIiIH1dLAogICAgWyJjaXJjbGUiLCB7IGN4OiAiNyIsIGN5OiAiMTgiLCByOiAiMiIgfV0KICBdOwoKICBjb25zdCBWYXJpYWJsZSA9IFsKICAgIFsicGF0aCIsIHsgZDogIk04IDIxcy00LTMtNC05IDQtOSA0LTkiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE2IDNzNCAzIDQgOS00IDktNCA5IiB9XSwKICAgIFsibGluZSIsIHsgeDE6ICIxNSIsIHgyOiAiOSIsIHkxOiAiOSIsIHkyOiAiMTUiIH1dLAogICAgWyJsaW5lIiwgeyB4MTogIjkiLCB4MjogIjE1IiwgeTE6ICI5IiwgeTI6ICIxNSIgfV0KICBdOwoKICBjb25zdCBWYXVsdCA9IFsKICAgIFsicmVjdCIsIHsgd2lkdGg6ICIxOCIsIGhlaWdodDogIjE4IiwgeDogIjMiLCB5OiAiMyIsIHJ4OiAiMiIgfV0sCiAgICBbImNpcmNsZSIsIHsgY3g6ICI3LjUiLCBjeTogIjcuNSIsIHI6ICIuNSIsIGZpbGw6ICJjdXJyZW50Q29sb3IiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTcuOSA3LjkgMi43IDIuNyIgfV0sCiAgICBbImNpcmNsZSIsIHsgY3g6ICIxNi41IiwgY3k6ICI3LjUiLCByOiAiLjUiLCBmaWxsOiAiY3VycmVudENvbG9yIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0xMy40IDEwLjYgMi43LTIuNyIgfV0sCiAgICBbImNpcmNsZSIsIHsgY3g6ICI3LjUiLCBjeTogIjE2LjUiLCByOiAiLjUiLCBmaWxsOiAiY3VycmVudENvbG9yIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm03LjkgMTYuMSAyLjctMi43IiB9XSwKICAgIFsiY2lyY2xlIiwgeyBjeDogIjE2LjUiLCBjeTogIjE2LjUiLCByOiAiLjUiLCBmaWxsOiAiY3VycmVudENvbG9yIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0xMy40IDEzLjQgMi43IDIuNyIgfV0sCiAgICBbImNpcmNsZSIsIHsgY3g6ICIxMiIsIGN5OiAiMTIiLCByOiAiMiIgfV0KICBdOwoKICBjb25zdCBWZWN0b3JTcXVhcmUgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTkuNSA3YTI0IDI0IDAgMCAxIDAgMTAiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTQuNSA3YTI0IDI0IDAgMCAwIDAgMTAiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTcgMTkuNWEyNCAyNCAwIDAgMCAxMCAwIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk03IDQuNWEyNCAyNCAwIDAgMSAxMCAwIiB9XSwKICAgIFsicmVjdCIsIHsgeDogIjE3IiwgeTogIjE3Iiwgd2lkdGg6ICI1IiwgaGVpZ2h0OiAiNSIsIHJ4OiAiMSIgfV0sCiAgICBbInJlY3QiLCB7IHg6ICIxNyIsIHk6ICIyIiwgd2lkdGg6ICI1IiwgaGVpZ2h0OiAiNSIsIHJ4OiAiMSIgfV0sCiAgICBbInJlY3QiLCB7IHg6ICIyIiwgeTogIjE3Iiwgd2lkdGg6ICI1IiwgaGVpZ2h0OiAiNSIsIHJ4OiAiMSIgfV0sCiAgICBbInJlY3QiLCB7IHg6ICIyIiwgeTogIjIiLCB3aWR0aDogIjUiLCBoZWlnaHQ6ICI1Iiwgcng6ICIxIiB9XQogIF07CgogIGNvbnN0IFZlZ2FuID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTE2IDhxNiAwIDYtNi02IDAtNiA2IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNy40MSAzLjU5YTEwIDEwIDAgMSAwIDMgMyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMiAyYTI2LjYgMjYuNiAwIDAgMSAxMCAyMGMuOS02LjgyIDEuNS05LjUgNC0xNCIgfV0KICBdOwoKICBjb25zdCBWZW5ldGlhbk1hc2sgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTggMTFjLTEuNSAwLTIuNS41LTMgMiIgfV0sCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNNCA2YTIgMiAwIDAgMC0yIDJ2NGE1IDUgMCAwIDAgNSA1IDggOCAwIDAgMSA1IDIgOCA4IDAgMCAxIDUtMiA1IDUgMCAwIDAgNS01VjhhMiAyIDAgMCAwLTItMmgtM2E4IDggMCAwIDAtNSAyIDggOCAwIDAgMC01LTJ6IgogICAgICB9CiAgICBdLAogICAgWyJwYXRoIiwgeyBkOiAiTTYgMTFjMS41IDAgMi41LjUgMyAyIiB9XQogIF07CgogIGNvbnN0IFZlbnVzQW5kTWFycyA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xMCAyMGg0IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xMiAxNnY2IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNyAyaDR2NCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMjEgMi01LjQ2IDUuNDYiIH1dLAogICAgWyJjaXJjbGUiLCB7IGN4OiAiMTIiLCBjeTogIjExIiwgcjogIjUiIH1dCiAgXTsKCiAgY29uc3QgVmVudXMgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgMTV2NyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNOSAxOWg2IiB9XSwKICAgIFsiY2lyY2xlIiwgeyBjeDogIjEyIiwgY3k6ICI5IiwgcjogIjYiIH1dCiAgXTsKCiAgY29uc3QgVmlicmF0ZU9mZiA9IFsKICAgIFsicGF0aCIsIHsgZDogIm0yIDggMiAyLTIgMiAyIDItMiAyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0yMiA4LTIgMiAyIDItMiAyIDIgMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNOCA4djEwYzAgLjU1LjQ1IDEgMSAxaDZjLjU1IDAgMS0uNDUgMS0xdi0yIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNiAxMC4zNFY2YzAtLjU1LS40NS0xLTEtMWgtNC4zNCIgfV0sCiAgICBbImxpbmUiLCB7IHgxOiAiMiIsIHgyOiAiMjIiLCB5MTogIjIiLCB5MjogIjIyIiB9XQogIF07CgogIGNvbnN0IFZpYnJhdGUgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJtMiA4IDIgMi0yIDIgMiAyLTIgMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMjIgOC0yIDIgMiAyLTIgMiAyIDIiIH1dLAogICAgWyJyZWN0IiwgeyB3aWR0aDogIjgiLCBoZWlnaHQ6ICIxNCIsIHg6ICI4IiwgeTogIjUiLCByeDogIjEiIH1dCiAgXTsKCiAgY29uc3QgVmlkZW9PZmYgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTAuNjYgNkgxNGEyIDIgMCAwIDEgMiAydjIuNWw1LjI0OC0zLjA2MkEuNS41IDAgMCAxIDIyIDcuODd2OC4xOTYiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE2IDE2YTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0yVjhhMiAyIDAgMCAxIDItMmgyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0yIDIgMjAgMjAiIH1dCiAgXTsKCiAgY29uc3QgVmlkZW8gPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJtMTYgMTMgNS4yMjMgMy40ODJhLjUuNSAwIDAgMCAuNzc3LS40MTZWNy44N2EuNS41IDAgMCAwLS43NTItLjQzMkwxNiAxMC41IiB9XSwKICAgIFsicmVjdCIsIHsgeDogIjIiLCB5OiAiNiIsIHdpZHRoOiAiMTQiLCBoZWlnaHQ6ICIxMiIsIHJ4OiAiMiIgfV0KICBdOwoKICBjb25zdCBWaWV3ID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTIxIDE3djJhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJ2LTIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIxIDdWNWEyIDIgMCAwIDAtMi0ySDVhMiAyIDAgMCAwLTIgMnYyIiB9XSwKICAgIFsiY2lyY2xlIiwgeyBjeDogIjEyIiwgY3k6ICIxMiIsIHI6ICIxIiB9XSwKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk0xOC45NDQgMTIuMzNhMSAxIDAgMCAwIDAtLjY2IDcuNSA3LjUgMCAwIDAtMTMuODg4IDAgMSAxIDAgMCAwIDAgLjY2IDcuNSA3LjUgMCAwIDAgMTMuODg4IDAiCiAgICAgIH0KICAgIF0KICBdOwoKICBjb25zdCBWb2ljZW1haWwgPSBbCiAgICBbImNpcmNsZSIsIHsgY3g6ICI2IiwgY3k6ICIxMiIsIHI6ICI0IiB9XSwKICAgIFsiY2lyY2xlIiwgeyBjeDogIjE4IiwgY3k6ICIxMiIsIHI6ICI0IiB9XSwKICAgIFsibGluZSIsIHsgeDE6ICI2IiwgeDI6ICIxOCIsIHkxOiAiMTYiLCB5MjogIjE2IiB9XQogIF07CgogIGNvbnN0IFZvbGxleWJhbGwgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTEgN2ExNiAxNiAyMCAwIDEgMTAuOTggNC4zNjIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDEyYTEzIDEzIDAgMCAxLTguNjYgNSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTYuODMgMTMuNjM0YTE2IDE2IDAgMCAxLTkuMjY3IDcuMzI4IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yMC42NiAxN0ExMyAxMyAwIDAgMCAxMiAxMmExMyAxMyAwIDAgMSAwLTEwIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk04LjE3IDE1LjM2NmExNiAxNiAwIDAgMS0xLjcxMy0xMS42OSIgfV0sCiAgICBbImNpcmNsZSIsIHsgY3g6ICIxMiIsIGN5OiAiMTIiLCByOiAiMTAiIH1dCiAgXTsKCiAgY29uc3QgVm9sdW1lMSA9IFsKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk0xMSA0LjcwMmEuNzA1LjcwNSAwIDAgMC0xLjIwMy0uNDk4TDYuNDEzIDcuNTg3QTEuNCAxLjQgMCAwIDEgNS40MTYgOEgzYTEgMSAwIDAgMC0xIDF2NmExIDEgMCAwIDAgMSAxaDIuNDE2YTEuNCAxLjQgMCAwIDEgLjk5Ny40MTNsMy4zODMgMy4zODRBLjcwNS43MDUgMCAwIDAgMTEgMTkuMjk4eiIKICAgICAgfQogICAgXSwKICAgIFsicGF0aCIsIHsgZDogIk0xNiA5YTUgNSAwIDAgMSAwIDYiIH1dCiAgXTsKCiAgY29uc3QgVmlkZW90YXBlID0gWwogICAgWyJyZWN0IiwgeyB3aWR0aDogIjIwIiwgaGVpZ2h0OiAiMTYiLCB4OiAiMiIsIHk6ICI0Iiwgcng6ICIyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yIDhoMjAiIH1dLAogICAgWyJjaXJjbGUiLCB7IGN4OiAiOCIsIGN5OiAiMTQiLCByOiAiMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNOCAxMmg4IiB9XSwKICAgIFsiY2lyY2xlIiwgeyBjeDogIjE2IiwgY3k6ICIxNCIsIHI6ICIyIiB9XQogIF07CgogIGNvbnN0IFZvbHVtZTIgPSBbCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMTEgNC43MDJhLjcwNS43MDUgMCAwIDAtMS4yMDMtLjQ5OEw2LjQxMyA3LjU4N0ExLjQgMS40IDAgMCAxIDUuNDE2IDhIM2ExIDEgMCAwIDAtMSAxdjZhMSAxIDAgMCAwIDEgMWgyLjQxNmExLjQgMS40IDAgMCAxIC45OTcuNDEzbDMuMzgzIDMuMzg0QS43MDUuNzA1IDAgMCAwIDExIDE5LjI5OHoiCiAgICAgIH0KICAgIF0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTYgOWE1IDUgMCAwIDEgMCA2IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xOS4zNjQgMTguMzY0YTkgOSAwIDAgMCAwLTEyLjcyOCIgfV0KICBdOwoKICBjb25zdCBWb2x1bWVYID0gWwogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTExIDQuNzAyYS43MDUuNzA1IDAgMCAwLTEuMjAzLS40OThMNi40MTMgNy41ODdBMS40IDEuNCAwIDAgMSA1LjQxNiA4SDNhMSAxIDAgMCAwLTEgMXY2YTEgMSAwIDAgMCAxIDFoMi40MTZhMS40IDEuNCAwIDAgMSAuOTk3LjQxM2wzLjM4MyAzLjM4NEEuNzA1LjcwNSAwIDAgMCAxMSAxOS4yOTh6IgogICAgICB9CiAgICBdLAogICAgWyJsaW5lIiwgeyB4MTogIjIyIiwgeDI6ICIxNiIsIHkxOiAiOSIsIHkyOiAiMTUiIH1dLAogICAgWyJsaW5lIiwgeyB4MTogIjE2IiwgeDI6ICIyMiIsIHkxOiAiOSIsIHkyOiAiMTUiIH1dCiAgXTsKCiAgY29uc3QgVm9sdW1lT2ZmID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTE2IDlhNSA1IDAgMCAxIC45NSAyLjI5MyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTkuMzY0IDUuNjM2YTkgOSAwIDAgMSAxLjg4OSA5Ljk2IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0yIDIgMjAgMjAiIH1dLAogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAibTcgNy0uNTg3LjU4N0ExLjQgMS40IDAgMCAxIDUuNDE2IDhIM2ExIDEgMCAwIDAtMSAxdjZhMSAxIDAgMCAwIDEgMWgyLjQxNmExLjQgMS40IDAgMCAxIC45OTcuNDEzbDMuMzgzIDMuMzg0QS43MDUuNzA1IDAgMCAwIDExIDE5LjI5OFYxMSIKICAgICAgfQogICAgXSwKICAgIFsicGF0aCIsIHsgZDogIk05LjgyOCA0LjE3MkEuNjg2LjY4NiAwIDAgMSAxMSA0LjY1N3YuNjg2IiB9XQogIF07CgogIGNvbnN0IFZvbHVtZSA9IFsKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk0xMSA0LjcwMmEuNzA1LjcwNSAwIDAgMC0xLjIwMy0uNDk4TDYuNDEzIDcuNTg3QTEuNCAxLjQgMCAwIDEgNS40MTYgOEgzYTEgMSAwIDAgMC0xIDF2NmExIDEgMCAwIDAgMSAxaDIuNDE2YTEuNCAxLjQgMCAwIDEgLjk5Ny40MTNsMy4zODMgMy4zODRBLjcwNS43MDUgMCAwIDAgMTEgMTkuMjk4eiIKICAgICAgfQogICAgXQogIF07CgogIGNvbnN0IFZvdGUgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJtOSAxMiAyIDIgNC00IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk01IDdjMC0xLjEuOS0yIDItMmgxMGEyIDIgMCAwIDEgMiAydjEySDVWN1oiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIyIDE5SDIiIH1dCiAgXTsKCiAgY29uc3QgV2FsbGV0Q2FyZHMgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMyAxMWgzLjc1YTIgMiAwIDAgMSAxLjYuOGwuNDUuNmE0IDQgMCAwIDAgNi40IDBsLjQ1LS42YTIgMiAwIDAgMSAxLjYtLjhIMjEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTMgN2gxOCIgfV0sCiAgICBbInJlY3QiLCB7IHg6ICIzIiwgeTogIjMiLCB3aWR0aDogIjE4IiwgaGVpZ2h0OiAiMTgiLCByeDogIjIiIH1dCiAgXTsKCiAgY29uc3QgV2FsbGV0TWluaW1hbCA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xNyAxNGguMDEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTcgN2gxMmEyIDIgMCAwIDEgMiAydjEwYTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmgxNCIgfV0KICBdOwoKICBjb25zdCBXYWxsZXQgPSBbCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMTkgN1Y0YTEgMSAwIDAgMC0xLTFINWEyIDIgMCAwIDAgMCA0aDE1YTEgMSAwIDAgMSAxIDF2NGgtM2EyIDIgMCAwIDAgMCA0aDNhMSAxIDAgMCAwIDEtMXYtMmExIDEgMCAwIDAtMS0xIgogICAgICB9CiAgICBdLAogICAgWyJwYXRoIiwgeyBkOiAiTTMgNXYxNGEyIDIgMCAwIDAgMiAyaDE1YTEgMSAwIDAgMCAxLTF2LTQiIH1dCiAgXTsKCiAgY29uc3QgV2FsbHBhcGVyID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDE3djQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTggMjFoOCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtOSAxNyA2LjEtNi4xYTIgMiAwIDAgMSAyLjgxLjAxTDIyIDE1IiB9XSwKICAgIFsiY2lyY2xlIiwgeyBjeDogIjgiLCBjeTogIjkiLCByOiAiMiIgfV0sCiAgICBbInJlY3QiLCB7IHg6ICIyIiwgeTogIjMiLCB3aWR0aDogIjIwIiwgaGVpZ2h0OiAiMTQiLCByeDogIjIiIH1dCiAgXTsKCiAgY29uc3QgV2FuZFNwYXJrbGVzID0gWwogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAibTIxLjY0IDMuNjQtMS4yOC0xLjI4YTEuMjEgMS4yMSAwIDAgMC0xLjcyIDBMMi4zNiAxOC42NGExLjIxIDEuMjEgMCAwIDAgMCAxLjcybDEuMjggMS4yOGExLjIgMS4yIDAgMCAwIDEuNzIgMEwyMS42NCA1LjM2YTEuMiAxLjIgMCAwIDAgMC0xLjcyIgogICAgICB9CiAgICBdLAogICAgWyJwYXRoIiwgeyBkOiAibTE0IDcgMyAzIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk01IDZ2NCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTkgMTR2NCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTAgMnYyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk03IDhIMyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMjEgMTZoLTQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTExIDNIOSIgfV0KICBdOwoKICBjb25zdCBXYW5kID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTE1IDRWMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTUgMTZ2LTIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTggOWgyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yMCA5aDIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE3LjggMTEuOCAxOSAxMyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTUgOWguMDEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE3LjggNi4yIDE5IDUiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTMgMjEgOS05IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xMi4yIDYuMiAxMSA1IiB9XQogIF07CgogIGNvbnN0IFdhcmVob3VzZSA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xOCAyMVYxMGExIDEgMCAwIDAtMS0xSDdhMSAxIDAgMCAwLTEgMXYxMSIgfV0sCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMjIgMTlhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJWOGEyIDIgMCAwIDEgMS4xMzItMS44MDNsNy45NS0zLjk3NGEyIDIgMCAwIDEgMS44MzcgMGw3Ljk0OCAzLjk3NEEyIDIgMCAwIDEgMjIgOHoiCiAgICAgIH0KICAgIF0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNiAxM2gxMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNiAxN2gxMiIgfV0KICBdOwoKICBjb25zdCBXYXNoaW5nTWFjaGluZSA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0zIDZoMyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTcgNmguMDEiIH1dLAogICAgWyJyZWN0IiwgeyB3aWR0aDogIjE4IiwgaGVpZ2h0OiAiMjAiLCB4OiAiMyIsIHk6ICIyIiwgcng6ICIyIiB9XSwKICAgIFsiY2lyY2xlIiwgeyBjeDogIjEyIiwgY3k6ICIxMyIsIHI6ICI1IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xMiAxOGEyLjUgMi41IDAgMCAwIDAtNSAyLjUgMi41IDAgMCAxIDAtNSIgfV0KICBdOwoKICBjb25zdCBXYXRjaCA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xMiAxMHYyLjJsMS42IDEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTE2LjEzIDcuNjYtLjgxLTQuMDVhMiAyIDAgMCAwLTItMS42MWgtMi42OGEyIDIgMCAwIDAtMiAxLjYxbC0uNzggNC4wNSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtNy44OCAxNi4zNi44IDRhMiAyIDAgMCAwIDIgMS42MWgyLjcyYTIgMiAwIDAgMCAyLTEuNjFsLjgxLTQuMDUiIH1dLAogICAgWyJjaXJjbGUiLCB7IGN4OiAiMTIiLCBjeTogIjEyIiwgcjogIjYiIH1dCiAgXTsKCiAgY29uc3QgV2F2ZXNBcnJvd0Rvd24gPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgMTBMMTIgMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTYgNkwxMiAxMEw4IDYiIH1dLAogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTIgMTVDMi42IDE1LjUgMy4yIDE2IDQuNSAxNkM3IDE2IDcgMTQgOS41IDE0QzEyLjEgMTQgMTEuOSAxNiAxNC41IDE2QzE3IDE2IDE3IDE0IDE5LjUgMTRDMjAuOCAxNCAyMS40IDE0LjUgMjIgMTUiCiAgICAgIH0KICAgIF0sCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMiAyMUMyLjYgMjEuNSAzLjIgMjIgNC41IDIyQzcgMjIgNyAyMCA5LjUgMjBDMTIuMSAyMCAxMS45IDIyIDE0LjUgMjJDMTcgMjIgMTcgMjAgMTkuNSAyMEMyMC44IDIwIDIxLjQgMjAuNSAyMiAyMSIKICAgICAgfQogICAgXQogIF07CgogIGNvbnN0IFdhdmVzQXJyb3dVcCA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xMiAydjgiIH1dLAogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTIgMTVjLjYuNSAxLjIgMSAyLjUgMSAyLjUgMCAyLjUtMiA1LTIgMi42IDAgMi40IDIgNSAyIDIuNSAwIDIuNS0yIDUtMiAxLjMgMCAxLjkuNSAyLjUgMSIKICAgICAgfQogICAgXSwKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk0yIDIxYy42LjUgMS4yIDEgMi41IDEgMi41IDAgMi41LTIgNS0yIDIuNiAwIDIuNCAyIDUgMiAyLjUgMCAyLjUtMiA1LTIgMS4zIDAgMS45LjUgMi41IDEiCiAgICAgIH0KICAgIF0sCiAgICBbInBhdGgiLCB7IGQ6ICJtOCA2IDQtNCA0IDQiIH1dCiAgXTsKCiAgY29uc3QgV2F2ZXNIb3Jpem9udGFsID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTIgMTJxMi41IDIgNSAwdDUgMCA1IDAgNSAwIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yIDE5cTIuNSAyIDUgMHQ1IDAgNSAwIDUgMCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMiA1cTIuNSAyIDUgMHQ1IDAgNSAwIDUgMCIgfV0KICBdOwoKICBjb25zdCBXYXZlc0xhZGRlciA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xOSA1YTIgMiAwIDAgMC0yIDJ2MTEiIH1dLAogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTIgMThjLjYuNSAxLjIgMSAyLjUgMSAyLjUgMCAyLjUtMiA1LTIgMi42IDAgMi40IDIgNSAyIDIuNSAwIDIuNS0yIDUtMiAxLjMgMCAxLjkuNSAyLjUgMSIKICAgICAgfQogICAgXSwKICAgIFsicGF0aCIsIHsgZDogIk03IDEzaDEwIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk03IDloMTAiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTkgNWEyIDIgMCAwIDAtMiAydjExIiB9XQogIF07CgogIGNvbnN0IFdhdmVzVmVydGljYWwgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgMnEyIDIuNSAwIDV0MCA1IDAgNSAwIDUiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE5IDJxMiAyLjUgMCA1dDAgNSAwIDUgMCA1IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk01IDJxMiAyLjUgMCA1dDAgNSAwIDUgMCA1IiB9XQogIF07CgogIGNvbnN0IFdheXBvaW50cyA9IFsKICAgIFsicGF0aCIsIHsgZDogIm0xMC41ODYgNS40MTQtNS4xNzIgNS4xNzIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTE4LjU4NiAxMy40MTQtNS4xNzIgNS4xNzIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTYgMTJoMTIiIH1dLAogICAgWyJjaXJjbGUiLCB7IGN4OiAiMTIiLCBjeTogIjIwIiwgcjogIjIiIH1dLAogICAgWyJjaXJjbGUiLCB7IGN4OiAiMTIiLCBjeTogIjQiLCByOiAiMiIgfV0sCiAgICBbImNpcmNsZSIsIHsgY3g6ICIyMCIsIGN5OiAiMTIiLCByOiAiMiIgfV0sCiAgICBbImNpcmNsZSIsIHsgY3g6ICI0IiwgY3k6ICIxMiIsIHI6ICIyIiB9XQogIF07CgogIGNvbnN0IFdlYmNhbSA9IFsKICAgIFsiY2lyY2xlIiwgeyBjeDogIjEyIiwgY3k6ICIxMCIsIHI6ICI4IiB9XSwKICAgIFsiY2lyY2xlIiwgeyBjeDogIjEyIiwgY3k6ICIxMCIsIHI6ICIzIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk03IDIyaDEwIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xMiAyMnYtNCIgfV0KICBdOwoKICBjb25zdCBXZWJjYW1PZmYgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgMjJ2LTQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTEyLjc1NCA3LjA5NmEzIDMgMCAwIDEgMi4xNSAyLjE1IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xMi44NjMgMTIuODczYTMgMyAwIDAgMS0zLjczNi0zLjczNSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTYuNTY2IDE2LjU3QTggOCAwIDAgMSA1LjQzIDUuNDMzIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0yIDIgMjAgMjAiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTcgMjJoMTAiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTguNDc4IDIuODE3YTggOCAwIDAgMSAxMC43MDUgMTAuNzA1IiB9XQogIF07CgogIGNvbnN0IFdlYmhvb2tPZmYgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTcgMTdoLTVjLTEuMDktLjAyLTEuOTQuOTItMi41IDEuOUEzIDMgMCAxIDEgMi41NyAxNSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNOSAzLjRhNCA0IDAgMCAxIDYuNTIuNjYiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTYgMTcgMy4xLTUuOGEyLjUgMi41IDAgMCAwIC4wNTctMi4wNSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMjAuMyAyMC4zYTQgNCAwIDAgMS0yLjMuNyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTguNiAxM2E0IDQgMCAwIDEgMy4zNTcgMy40MTQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTEyIDYgLjYgMSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMiAyIDIwIDIwIiB9XQogIF07CgogIGNvbnN0IFdlYmhvb2sgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTggMTYuOThoLTUuOTljLTEuMSAwLTEuOTUuOTQtMi40OCAxLjlBNCA0IDAgMCAxIDIgMTdjLjAxLS43LjItMS40LjU3LTIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTYgMTcgMy4xMy01Ljc4Yy41My0uOTcuMS0yLjE4LS41LTMuMWE0IDQgMCAxIDEgNi44OS00LjA2IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0xMiA2IDMuMTMgNS43M0MxNS42NiAxMi43IDE2LjkgMTMgMTggMTNhNCA0IDAgMCAxIDAgOCIgfV0KICBdOwoKICBjb25zdCBXZWlnaHRUaWxkZSA9IFsKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk02LjUgOGEyIDIgMCAwIDAtMS45MDYgMS40NkwyLjEgMTguNUEyIDIgMCAwIDAgNCAyMWgxNmEyIDIgMCAwIDAgMS45MjUtMi41NEwxOS40IDkuNUEyIDIgMCAwIDAgMTcuNDggOHoiCiAgICAgIH0KICAgIF0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNy45OTkgMTVhMi41IDIuNSAwIDAgMSA0IDAgMi41IDIuNSAwIDAgMCA0IDAiIH1dLAogICAgWyJjaXJjbGUiLCB7IGN4OiAiMTIiLCBjeTogIjUiLCByOiAiMyIgfV0KICBdOwoKICBjb25zdCBXZWlnaHQgPSBbCiAgICBbImNpcmNsZSIsIHsgY3g6ICIxMiIsIGN5OiAiNSIsIHI6ICIzIiB9XSwKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk02LjUgOGEyIDIgMCAwIDAtMS45MDUgMS40NkwyLjEgMTguNUEyIDIgMCAwIDAgNCAyMWgxNmEyIDIgMCAwIDAgMS45MjUtMi41NEwxOS40IDkuNUEyIDIgMCAwIDAgMTcuNDggOFoiCiAgICAgIH0KICAgIF0KICBdOwoKICBjb25zdCBXaGVhdE9mZiA9IFsKICAgIFsicGF0aCIsIHsgZDogIm0yIDIyIDEwLTEwIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0xNiA4LTEuMTcgMS4xNyIgfV0sCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgeyBkOiAiTTMuNDcgMTIuNTMgNSAxMWwxLjUzIDEuNTNhMy41IDMuNSAwIDAgMSAwIDQuOTRMNSAxOWwtMS41My0xLjUzYTMuNSAzLjUgMCAwIDEgMC00Ljk0WiIgfQogICAgXSwKICAgIFsicGF0aCIsIHsgZDogIm04IDgtLjUzLjUzYTMuNSAzLjUgMCAwIDAgMCA0Ljk0TDkgMTVsMS41My0xLjUzYy41NS0uNTUuODgtMS4yNS45OC0xLjk3IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xMC45MSA1LjI2Yy4xNS0uMjYuMzQtLjUxLjU2LS43M0wxMyAzbDEuNTMgMS41M2EzLjUgMy41IDAgMCAxIC4yOCA0LjYyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yMCAyaDJ2MmE0IDQgMCAwIDEtNCA0aC0yVjZhNCA0IDAgMCAxIDQtNFoiIH1dLAogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTExLjQ3IDE3LjQ3IDEzIDE5bC0xLjUzIDEuNTNhMy41IDMuNSAwIDAgMS00Ljk0IDBMNSAxOWwxLjUzLTEuNTNhMy41IDMuNSAwIDAgMSA0Ljk0IDBaIgogICAgICB9CiAgICBdLAogICAgWyJwYXRoIiwgeyBkOiAibTE2IDE2LS41My41M2EzLjUgMy41IDAgMCAxLTQuOTQgMEw5IDE1bDEuNTMtMS41M2EzLjQ5IDMuNDkgMCAwIDEgMS45Ny0uOTgiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE4Ljc0IDEzLjA5Yy4yNi0uMTUuNTEtLjM0LjczLS41NkwyMSAxMWwtMS41My0xLjUzYTMuNSAzLjUgMCAwIDAtNC42Mi0uMjgiIH1dLAogICAgWyJsaW5lIiwgeyB4MTogIjIiLCB4MjogIjIyIiwgeTE6ICIyIiwgeTI6ICIyMiIgfV0KICBdOwoKICBjb25zdCBXaGVhdCA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0yIDIyIDE2IDgiIH1dLAogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsgZDogIk0zLjQ3IDEyLjUzIDUgMTFsMS41MyAxLjUzYTMuNSAzLjUgMCAwIDEgMCA0Ljk0TDUgMTlsLTEuNTMtMS41M2EzLjUgMy41IDAgMCAxIDAtNC45NFoiIH0KICAgIF0sCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgeyBkOiAiTTcuNDcgOC41MyA5IDdsMS41MyAxLjUzYTMuNSAzLjUgMCAwIDEgMCA0Ljk0TDkgMTVsLTEuNTMtMS41M2EzLjUgMy41IDAgMCAxIDAtNC45NFoiIH0KICAgIF0sCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgeyBkOiAiTTExLjQ3IDQuNTMgMTMgM2wxLjUzIDEuNTNhMy41IDMuNSAwIDAgMSAwIDQuOTRMMTMgMTFsLTEuNTMtMS41M2EzLjUgMy41IDAgMCAxIDAtNC45NFoiIH0KICAgIF0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMjAgMmgydjJhNCA0IDAgMCAxLTQgNGgtMlY2YTQgNCAwIDAgMSA0LTRaIiB9XSwKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk0xMS40NyAxNy40NyAxMyAxOWwtMS41MyAxLjUzYTMuNSAzLjUgMCAwIDEtNC45NCAwTDUgMTlsMS41My0xLjUzYTMuNSAzLjUgMCAwIDEgNC45NCAwWiIKICAgICAgfQogICAgXSwKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk0xNS40NyAxMy40NyAxNyAxNWwtMS41MyAxLjUzYTMuNSAzLjUgMCAwIDEtNC45NCAwTDkgMTVsMS41My0xLjUzYTMuNSAzLjUgMCAwIDEgNC45NCAwWiIKICAgICAgfQogICAgXSwKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk0xOS40NyA5LjQ3IDIxIDExbC0xLjUzIDEuNTNhMy41IDMuNSAwIDAgMS00Ljk0IDBMMTMgMTFsMS41My0xLjUzYTMuNSAzLjUgMCAwIDEgNC45NCAwWiIKICAgICAgfQogICAgXQogIF07CgogIGNvbnN0IFdob2xlV29yZCA9IFsKICAgIFsiY2lyY2xlIiwgeyBjeDogIjciLCBjeTogIjEyIiwgcjogIjMiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTEwIDl2NiIgfV0sCiAgICBbImNpcmNsZSIsIHsgY3g6ICIxNyIsIGN5OiAiMTIiLCByOiAiMyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTQgN3Y4IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yMiAxN3YxYzAgLjUtLjUgMS0xIDFIM2MtLjUgMC0xLS41LTEtMXYtMSIgfV0KICBdOwoKICBjb25zdCBXaWZpQ29nID0gWwogICAgWyJwYXRoIiwgeyBkOiAibTE0LjMwNSAxOS41My45MjMtLjM4MiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMTUuMjI4IDE2Ljg1Mi0uOTIzLS4zODMiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTE2Ljg1MiAxNS4yMjgtLjM4My0uOTIzIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0xNi44NTIgMjAuNzcyLS4zODMuOTI0IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0xOS4xNDggMTUuMjI4LjM4My0uOTIzIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0xOS41MyAyMS42OTYtLjM4Mi0uOTI0IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yIDcuODJhMTUgMTUgMCAwIDEgMjAgMCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMjAuNzcyIDE2Ljg1Mi45MjQtLjM4MyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMjAuNzcyIDE5LjE0OC45MjQuMzgzIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk01IDExLjg1OGExMCAxMCAwIDAgMSAxMS41LTEuNzg1IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk04LjUgMTUuNDI5YTUgNSAwIDAgMSAyLjQxMy0xLjMxIiB9XSwKICAgIFsiY2lyY2xlIiwgeyBjeDogIjE4IiwgY3k6ICIxOCIsIHI6ICIzIiB9XQogIF07CgogIGNvbnN0IFdpZmlIaWdoID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDIwaC4wMSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNSAxMi44NTlhMTAgMTAgMCAwIDEgMTQgMCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNOC41IDE2LjQyOWE1IDUgMCAwIDEgNyAwIiB9XQogIF07CgogIGNvbnN0IFdpZmlMb3cgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgMjBoLjAxIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk04LjUgMTYuNDI5YTUgNSAwIDAgMSA3IDAiIH1dCiAgXTsKCiAgY29uc3QgV2lmaU9mZiA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xMiAyMGguMDEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTguNSAxNi40MjlhNSA1IDAgMCAxIDcgMCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNSAxMi44NTlhMTAgMTAgMCAwIDEgNS4xNy0yLjY5IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xOSAxMi44NTlhMTAgMTAgMCAwIDAtMi4wMDctMS41MjMiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIgOC44MmExNSAxNSAwIDAgMSA0LjE3Ny0yLjY0MyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMjIgOC44MmExNSAxNSAwIDAgMC0xMS4yODgtMy43NjQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTIgMiAyMCAyMCIgfV0KICBdOwoKICBjb25zdCBXaWZpUGVuID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTIgOC44MmExNSAxNSAwIDAgMSAyMCAwIiB9XSwKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk0yMS4zNzggMTYuNjI2YTEgMSAwIDAgMC0zLjAwNC0zLjAwNGwtNC4wMSA0LjAxMmEyIDIgMCAwIDAtLjUwNi44NTRsLS44MzcgMi44N2EuNS41IDAgMCAwIC42Mi42MmwyLjg3LS44MzdhMiAyIDAgMCAwIC44NTQtLjUwNnoiCiAgICAgIH0KICAgIF0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNSAxMi44NTlhMTAgMTAgMCAwIDEgMTAuNS0yLjIyMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNOC41IDE2LjQyOWE1IDUgMCAwIDEgMy0xLjQwNiIgfV0KICBdOwoKICBjb25zdCBXaWZpU3luYyA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xMS45NjUgMTAuMTA1djRMMTMuNSAxMi41YTUgNSAwIDAgMSA4IDEuNSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTEuOTY1IDE0LjEwNWg0IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xNy45NjUgMTguMTA1aDRMMjAuNDMgMTkuNzFhNSA1IDAgMCAxLTgtMS41IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yIDguODJhMTUgMTUgMCAwIDEgMjAgMCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMjEuOTY1IDIyLjEwNXYtNCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNSAxMi44NmExMCAxMCAwIDAgMSAzLTIuMDMyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk04LjUgMTYuNDI5aC4wMSIgfV0KICBdOwoKICBjb25zdCBXaWZpWmVybyA9IFtbInBhdGgiLCB7IGQ6ICJNMTIgMjBoLjAxIiB9XV07CgogIGNvbnN0IFdpZmkgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgMjBoLjAxIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yIDguODJhMTUgMTUgMCAwIDEgMjAgMCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNSAxMi44NTlhMTAgMTAgMCAwIDEgMTQgMCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNOC41IDE2LjQyOWE1IDUgMCAwIDEgNyAwIiB9XQogIF07CgogIGNvbnN0IFdpbmRBcnJvd0Rvd24gPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTAgMnY4IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xMi44IDIxLjZBMiAyIDAgMSAwIDE0IDE4SDIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE3LjUgMTBhMi41IDIuNSAwIDEgMSAyIDRIMiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtNiA2IDQgNCA0LTQiIH1dCiAgXTsKCiAgY29uc3QgV2luZCA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xMi44IDE5LjZBMiAyIDAgMSAwIDE0IDE2SDIiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTE3LjUgOGEyLjUgMi41IDAgMSAxIDIgNEgyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk05LjggNC40QTIgMiAwIDEgMSAxMSA4SDIiIH1dCiAgXTsKCiAgY29uc3QgV2luZU9mZiA9IFsKICAgIFsicGF0aCIsIHsgZDogIk04IDIyaDgiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTcgMTBoM203IDBoLTEuMzQzIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xMiAxNXY3IiB9XSwKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk03LjMwNyA3LjMwN0ExMi4zMyAxMi4zMyAwIDAgMCA3IDEwYTUgNSAwIDAgMCA3LjM5MSA0LjM5MU04LjYzOCAyLjk4MUM4Ljc1IDIuNjY4IDguODcyIDIuMzQgOSAyaDZjMS41IDQgMiA2IDIgOCAwIC40MDctLjA1LjgwOS0uMTQ1IDEuMTk4IgogICAgICB9CiAgICBdLAogICAgWyJsaW5lIiwgeyB4MTogIjIiLCB4MjogIjIyIiwgeTE6ICIyIiwgeTI6ICIyMiIgfV0KICBdOwoKICBjb25zdCBXaW5lID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTggMjJoOCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNyAxMGgxMCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgMTV2NyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTIgMTVhNSA1IDAgMCAwIDUtNWMwLTItLjUtNC0yLThIOWMtMS41IDQtMiA2LTIgOGE1IDUgMCAwIDAgNSA1WiIgfV0KICBdOwoKICBjb25zdCBXb3JtID0gWwogICAgWyJwYXRoIiwgeyBkOiAibTE5IDEyLTEuNSAzIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xOS42MyAxOC44MSAyMiAyMCIgfV0sCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNNi40NyA4LjIzYTEuNjggMS42OCAwIDAgMSAyLjQ0IDEuOTNsLS42NCAyLjA4YTYuNzYgNi43NiAwIDAgMCAxMC4xNiA3LjY3bC40Mi0uMjdhMSAxIDAgMSAwLTIuNzMtNC4yMWwtLjQyLjI3YTEuNzYgMS43NiAwIDAgMS0yLjYzLTEuOTlsLjY0LTIuMDhBNi42NiA2LjY2IDAgMCAwIDMuOTQgMy45bC0uNy40YTEgMSAwIDEgMCAyLjU1IDQuMzR6IgogICAgICB9CiAgICBdCiAgXTsKCiAgY29uc3QgV29ya2Zsb3cgPSBbCiAgICBbInJlY3QiLCB7IHdpZHRoOiAiOCIsIGhlaWdodDogIjgiLCB4OiAiMyIsIHk6ICIzIiwgcng6ICIyIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk03IDExdjRhMiAyIDAgMCAwIDIgMmg0IiB9XSwKICAgIFsicmVjdCIsIHsgd2lkdGg6ICI4IiwgaGVpZ2h0OiAiOCIsIHg6ICIxMyIsIHk6ICIxMyIsIHJ4OiAiMiIgfV0KICBdOwoKICBjb25zdCBXcmVuY2hPZmYgPSBbCiAgICBbCiAgICAgICJwYXRoIiwKICAgICAgewogICAgICAgIGQ6ICJNMTAuNzQ3IDUuMDkzYTYgNiAwIDAgMSA2Ljg0MS0yLjg4MmMuNDM4LjEyLjU0LjY2Mi4yMTkuOTg0TDE0LjcgNi4zYTEgMSAwIDAgMCAwIDEuNGwxLjYgMS42YTEgMSAwIDAgMCAxLjQgMGwzLjEwNi0zLjEwNWMuMzItLjMyMi44NjMtLjIyLjk4My4yMThhNiA2IDAgMCAxLTIuODgyIDYuODQyIgogICAgICB9CiAgICBdLAogICAgWyJwYXRoIiwgeyBkOiAibTEzLjUgMTMuNS03Ljg4IDcuODhhMSAxIDAgMCAxLTIuOTk5LTNsNy44OC03Ljg4IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0yIDIgMjAgMjAiIH1dCiAgXTsKCiAgY29uc3QgV3JlbmNoID0gWwogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAiTTE0LjcgNi4zYTEgMSAwIDAgMCAwIDEuNGwxLjYgMS42YTEgMSAwIDAgMCAxLjQgMGwzLjEwNi0zLjEwNWMuMzItLjMyMi44NjMtLjIyLjk4My4yMThhNiA2IDAgMCAxLTguMjU5IDcuMDU3bC03LjkxIDcuOTFhMSAxIDAgMCAxLTIuOTk5LTNsNy45MS03LjkxYTYgNiAwIDAgMSA3LjA1Ny04LjI1OWMuNDM4LjEyLjU0LjY2Mi4yMTkuOTg0eiIKICAgICAgfQogICAgXQogIF07CgogIGNvbnN0IFhMaW5lVG9wID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTE4IDRINiIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTggOCA2IDIwIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm02IDggMTIgMTIiIH1dCiAgXTsKCiAgY29uc3QgWCA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xOCA2IDYgMTgiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTYgNiAxMiAxMiIgfV0KICBdOwoKICBjb25zdCBaYXBPZmYgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTAuNzY4IDUuMTExIDEzLjQ0IDIuNDRhMS41IDEuNSAwIDAxMi40NzQgMS41NjFsLTEuNjMzIDQuNjI1IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0xOC44ODkgMTMuMjMyLjY3Mi0uNjcyQTEuNSAxLjUgMCAwMDE4LjUgMTBoLTIuODQ0IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIm0yIDIgMjAgMjAiIH1dLAogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAibTcuOTQgNy45NC0zLjUgMy40OTlBMS41IDEuNSAwIDAwNS41IDE0aDQuMDAyYS41LjUgMCAwMS40NzEuNjY2TDguMDg2IDIwYTEuNSAxLjUgMCAwMDIuNDc1IDEuNTZsNS41LTUuNSIKICAgICAgfQogICAgXQogIF07CgogIGNvbnN0IFphcCA9IFsKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIk0xNS45MTQgNGExLjUgMS41IDAgMDAtMi40NzQtMS41NjFsLTkgOUExLjUgMS41IDAgMDA1LjUgMTRoNC4wMDJhLjUuNSAwIDAxLjQ3MS42NjZMOC4wODYgMjBhMS41IDEuNSAwIDAwMi40NzUgMS41Nmw5LTlBMS41IDEuNSAwIDAwMTguNSAxMGgtMy45OTdhLjUuNSAwIDAxLS40NzItLjY2N3oiCiAgICAgIH0KICAgIF0KICBdOwoKICBjb25zdCBab2RpYWNBcXVhcml1cyA9IFsKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7CiAgICAgICAgZDogIm0yIDEwIDIuNDU2LTMuNjg0YS43LjcgMCAwIDEgMS4xMDYtLjAxM2wyLjM5IDMuNDEzYS43LjcgMCAwIDAgMS4wOTYtLjAwMWwyLjQwMi0zLjQzMmEuNy43IDAgMCAxIDEuMDk4IDBsMi40MDIgMy40MzJhLjcuNyAwIDAgMCAxLjA5OCAwbDIuMzg5LTMuNDEzYS43LjcgMCAwIDEgMS4xMDYuMDEzTDIyIDEwIgogICAgICB9CiAgICBdLAogICAgWwogICAgICAicGF0aCIsCiAgICAgIHsKICAgICAgICBkOiAibTIgMTguMDAyIDIuNDU2LTMuNjg0YS43LjcgMCAwIDEgMS4xMDYtLjAxM2wyLjM5IDMuNDEzYS43LjcgMCAwIDAgMS4wOTcgMGwyLjQwMi0zLjQzMmEuNy43IDAgMCAxIDEuMDk4IDBsMi40MDIgMy40MzJhLjcuNyAwIDAgMCAxLjA5OCAwbDIuMzg5LTMuNDEzYS43LjcgMCAwIDEgMS4xMDYuMDEzTDIyIDE4LjAwMiIKICAgICAgfQogICAgXQogIF07CgogIGNvbnN0IFpvZGlhY0FyaWVzID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTEyIDcuNWE0LjUgNC41IDAgMSAxIDUgNC41IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk03IDEyYTQuNSA0LjUgMCAxIDEgNS00LjVWMjEiIH1dCiAgXTsKCiAgY29uc3QgWm9kaWFjQ2FuY2VyID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTIxIDE0LjVBOSA2LjUgMCAwIDEgNS41IDE5IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0zIDkuNUE5IDYuNSAwIDAgMSAxOC41IDUiIH1dLAogICAgWyJjaXJjbGUiLCB7IGN4OiAiMTcuNSIsIGN5OiAiMTQuNSIsIHI6ICIzLjUiIH1dLAogICAgWyJjaXJjbGUiLCB7IGN4OiAiNi41IiwgY3k6ICI5LjUiLCByOiAiMy41IiB9XQogIF07CgogIGNvbnN0IFpvZGlhY0NhcHJpY29ybiA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xMSAyMWEzIDMgMCAwIDAgMy0zVjYuNWExIDEgMCAwIDAtNyAwIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk03IDE5VjZhMyAzIDAgMCAwLTMtM2gwIiB9XSwKICAgIFsiY2lyY2xlIiwgeyBjeDogIjE3IiwgY3k6ICIxNyIsIHI6ICIzIiB9XQogIF07CgogIGNvbnN0IFpvZGlhY0dlbWluaSA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xNiA0LjUyNXYxNC45NDgiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIwIDNBMTcgMTcgMCAwIDEgNCAzIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk00IDIxYTE3IDE3IDAgMCAxIDE2IDAiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTggNC41MjV2MTQuOTQ4IiB9XQogIF07CgogIGNvbnN0IFpvZGlhY0xlbyA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xMCAxNmMwLTQtMy00LjUtMy04YTUgNSAwIDAgMSAxMCAwYzAgMy40NjYtMyA2LjE5Ni0zIDEwYTMgMyAwIDAgMCA2IDAiIH1dLAogICAgWyJjaXJjbGUiLCB7IGN4OiAiNyIsIGN5OiAiMTYiLCByOiAiMyIgfV0KICBdOwoKICBjb25zdCBab2RpYWNMaWJyYSA9IFsKICAgIFsKICAgICAgInBhdGgiLAogICAgICB7IGQ6ICJNMyAxNmg2Ljg1N2MuMTYyLS4wMTIuMTktLjMyMy4wMzgtLjM4YTYgNiAwIDEgMSA0LjIxMiAwYy0uMTUzLjA1Ny0uMTI1LjM2OC4wMzguMzhIMjEiIH0KICAgIF0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMyAyMGgxOCIgfV0KICBdOwoKICBjb25zdCBab2RpYWNPcGhpdWNodXMgPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMyAxMEE2LjA2IDYuMDYgMCAwIDEgMTIgMTAgQTYuMDYgNi4wNiAwIDAgMCAyMSAxMCIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNNiAzdjEyYTYgNiAwIDAgMCAxMiAwVjMiIH1dCiAgXTsKCiAgY29uc3QgWm9kaWFjUGlzY2VzID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTE5IDIxYTE1IDE1IDAgMCAxIDAtMTgiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTIwIDEySDQiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTUgM2ExNSAxNSAwIDAgMSAwIDE4IiB9XQogIF07CgogIGNvbnN0IFpvZGlhY1NhZ2l0dGFyaXVzID0gWwogICAgWyJwYXRoIiwgeyBkOiAiTTE1IDNoNnY2IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0yMSAzIDMgMjEiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAibTkgOSA2IDYiIH1dCiAgXTsKCiAgY29uc3QgWm9kaWFjU2NvcnBpbyA9IFsKICAgIFsicGF0aCIsIHsgZDogIk0xMCAxOVY1LjVhMSAxIDAgMCAxIDUgMFYxN2EyIDIgMCAwIDAgMiAyaDVsLTMtMyIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJtMjIgMTktMyAzIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk01IDE5VjUuNWExIDEgMCAwIDEgNSAwIiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk01IDUuNUEyLjUgMi41IDAgMCAwIDIuNSAzIiB9XQogIF07CgogIGNvbnN0IFpvZGlhY1RhdXJ1cyA9IFsKICAgIFsiY2lyY2xlIiwgeyBjeDogIjEyIiwgY3k6ICIxNSIsIHI6ICI2IiB9XSwKICAgIFsicGF0aCIsIHsgZDogIk0xOCAzQTYgNiAwIDAgMSA2IDMiIH1dCiAgXTsKCiAgY29uc3QgWm9kaWFjVmlyZ28gPSBbCiAgICBbInBhdGgiLCB7IGQ6ICJNMTEgNS41YTEgMSAwIDAgMSA1IDBWMTZhNSA1IDAgMCAwIDUgNSIgfV0sCiAgICBbInBhdGgiLCB7IGQ6ICJNMTYgMTEuNWExIDEgMCAwIDEgNSAwVjE2YTUgNSAwIDAgMS01IDUiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTYgMTlWNmEzIDMgMCAwIDAtMy0zaDAiIH1dLAogICAgWyJwYXRoIiwgeyBkOiAiTTYgNS41YTEgMSAwIDAgMSA1IDBWMTkiIH1dCiAgXTsKCiAgY29uc3QgWm9vbUluID0gWwogICAgWyJjaXJjbGUiLCB7IGN4OiAiMTEiLCBjeTogIjExIiwgcjogIjgiIH1dLAogICAgWyJsaW5lIiwgeyB4MTogIjIxIiwgeDI6ICIxNi42NSIsIHkxOiAiMjEiLCB5MjogIjE2LjY1IiB9XSwKICAgIFsibGluZSIsIHsgeDE6ICIxMSIsIHgyOiAiMTEiLCB5MTogIjgiLCB5MjogIjE0IiB9XSwKICAgIFsibGluZSIsIHsgeDE6ICI4IiwgeDI6ICIxNCIsIHkxOiAiMTEiLCB5MjogIjExIiB9XQogIF07CgogIGNvbnN0IFpvb21PdXQgPSBbCiAgICBbImNpcmNsZSIsIHsgY3g6ICIxMSIsIGN5OiAiMTEiLCByOiAiOCIgfV0sCiAgICBbImxpbmUiLCB7IHgxOiAiMjEiLCB4MjogIjE2LjY1IiwgeTE6ICIyMSIsIHkyOiAiMTYuNjUiIH1dLAogICAgWyJsaW5lIiwgeyB4MTogIjgiLCB4MjogIjE0IiwgeTE6ICIxMSIsIHkyOiAiMTEiIH1dCiAgXTsKCiAgdmFyIGljb25BbmRBbGlhc2VzID0gLyojX19QVVJFX18qL09iamVjdC5mcmVlemUoewogICAgX19wcm90b19fOiBudWxsLAogICAgQUFycm93RG93bjogQUFycm93RG93biwKICAgIEFBcnJvd1VwOiBBQXJyb3dVcCwKICAgIEFMYXJnZVNtYWxsOiBBTGFyZ2VTbWFsbCwKICAgIEFjY2Vzc2liaWxpdHk6IEFjY2Vzc2liaWxpdHksCiAgICBBY3Rpdml0eTogQWN0aXZpdHksCiAgICBBY3Rpdml0eVNxdWFyZTogU3F1YXJlQWN0aXZpdHksCiAgICBBZDogQWQsCiAgICBBaXJWZW50OiBBaXJWZW50LAogICAgQWlycGxheTogQWlycGxheSwKICAgIEFsYXJtQ2hlY2s6IEFsYXJtQ2xvY2tDaGVjaywKICAgIEFsYXJtQ2xvY2s6IEFsYXJtQ2xvY2ssCiAgICBBbGFybUNsb2NrQ2hlY2s6IEFsYXJtQ2xvY2tDaGVjaywKICAgIEFsYXJtQ2xvY2tNaW51czogQWxhcm1DbG9ja01pbnVzLAogICAgQWxhcm1DbG9ja09mZjogQWxhcm1DbG9ja09mZiwKICAgIEFsYXJtQ2xvY2tQbHVzOiBBbGFybUNsb2NrUGx1cywKICAgIEFsYXJtTWludXM6IEFsYXJtQ2xvY2tNaW51cywKICAgIEFsYXJtUGx1czogQWxhcm1DbG9ja1BsdXMsCiAgICBBbGFybVNtb2tlOiBBbGFybVNtb2tlLAogICAgQWxidW06IEFsYnVtLAogICAgQWxlcnRDaXJjbGU6IENpcmNsZUFsZXJ0LAogICAgQWxlcnRPY3RhZ29uOiBPY3RhZ29uQWxlcnQsCiAgICBBbGVydFRyaWFuZ2xlOiBUcmlhbmdsZUFsZXJ0LAogICAgQWxpZ25DZW50ZXI6IFRleHRBbGlnbkNlbnRlciwKICAgIEFsaWduQ2VudGVySG9yaXpvbnRhbDogQWxpZ25DZW50ZXJIb3Jpem9udGFsLAogICAgQWxpZ25DZW50ZXJWZXJ0aWNhbDogQWxpZ25DZW50ZXJWZXJ0aWNhbCwKICAgIEFsaWduRW5kSG9yaXpvbnRhbDogQWxpZ25FbmRIb3Jpem9udGFsLAogICAgQWxpZ25FbmRWZXJ0aWNhbDogQWxpZ25FbmRWZXJ0aWNhbCwKICAgIEFsaWduSG9yaXpvbnRhbERpc3RyaWJ1dGVDZW50ZXI6IEFsaWduSG9yaXpvbnRhbERpc3RyaWJ1dGVDZW50ZXIsCiAgICBBbGlnbkhvcml6b250YWxEaXN0cmlidXRlRW5kOiBBbGlnbkhvcml6b250YWxEaXN0cmlidXRlRW5kLAogICAgQWxpZ25Ib3Jpem9udGFsRGlzdHJpYnV0ZVN0YXJ0OiBBbGlnbkhvcml6b250YWxEaXN0cmlidXRlU3RhcnQsCiAgICBBbGlnbkhvcml6b250YWxKdXN0aWZ5Q2VudGVyOiBBbGlnbkhvcml6b250YWxKdXN0aWZ5Q2VudGVyLAogICAgQWxpZ25Ib3Jpem9udGFsSnVzdGlmeUVuZDogQWxpZ25Ib3Jpem9udGFsSnVzdGlmeUVuZCwKICAgIEFsaWduSG9yaXpvbnRhbEp1c3RpZnlTdGFydDogQWxpZ25Ib3Jpem9udGFsSnVzdGlmeVN0YXJ0LAogICAgQWxpZ25Ib3Jpem9udGFsU3BhY2VBcm91bmQ6IEFsaWduSG9yaXpvbnRhbFNwYWNlQXJvdW5kLAogICAgQWxpZ25Ib3Jpem9udGFsU3BhY2VCZXR3ZWVuOiBBbGlnbkhvcml6b250YWxTcGFjZUJldHdlZW4sCiAgICBBbGlnbkp1c3RpZnk6IFRleHRBbGlnbkp1c3RpZnksCiAgICBBbGlnbkxlZnQ6IFRleHRBbGlnblN0YXJ0LAogICAgQWxpZ25SaWdodDogVGV4dEFsaWduRW5kLAogICAgQWxpZ25TdGFydEhvcml6b250YWw6IEFsaWduU3RhcnRIb3Jpem9udGFsLAogICAgQWxpZ25TdGFydFZlcnRpY2FsOiBBbGlnblN0YXJ0VmVydGljYWwsCiAgICBBbGlnblZlcnRpY2FsRGlzdHJpYnV0ZUNlbnRlcjogQWxpZ25WZXJ0aWNhbERpc3RyaWJ1dGVDZW50ZXIsCiAgICBBbGlnblZlcnRpY2FsRGlzdHJpYnV0ZUVuZDogQWxpZ25WZXJ0aWNhbERpc3RyaWJ1dGVFbmQsCiAgICBBbGlnblZlcnRpY2FsRGlzdHJpYnV0ZVN0YXJ0OiBBbGlnblZlcnRpY2FsRGlzdHJpYnV0ZVN0YXJ0LAogICAgQWxpZ25WZXJ0aWNhbEp1c3RpZnlDZW50ZXI6IEFsaWduVmVydGljYWxKdXN0aWZ5Q2VudGVyLAogICAgQWxpZ25WZXJ0aWNhbEp1c3RpZnlFbmQ6IEFsaWduVmVydGljYWxKdXN0aWZ5RW5kLAogICAgQWxpZ25WZXJ0aWNhbEp1c3RpZnlTdGFydDogQWxpZ25WZXJ0aWNhbEp1c3RpZnlTdGFydCwKICAgIEFsaWduVmVydGljYWxTcGFjZUFyb3VuZDogQWxpZ25WZXJ0aWNhbFNwYWNlQXJvdW5kLAogICAgQWxpZ25WZXJ0aWNhbFNwYWNlQmV0d2VlbjogQWxpZ25WZXJ0aWNhbFNwYWNlQmV0d2VlbiwKICAgIEFtYnVsYW5jZTogQW1idWxhbmNlLAogICAgQW1wZXJzYW5kOiBBbXBlcnNhbmQsCiAgICBBbXBlcnNhbmRzOiBBbXBlcnNhbmRzLAogICAgQW1waG9yYTogQW1waG9yYSwKICAgIEFuY2hvcjogQW5jaG9yLAogICAgQW5ncnk6IEFuZ3J5LAogICAgQW5ub3llZDogQW5ub3llZCwKICAgIEFudGVubmE6IEFudGVubmEsCiAgICBBbnZpbDogQW52aWwsCiAgICBBcGVydHVyZTogQXBlcnR1cmUsCiAgICBBcHBXaW5kb3c6IEFwcFdpbmRvdywKICAgIEFwcFdpbmRvd01hYzogQXBwV2luZG93TWFjLAogICAgQXBwbGU6IEFwcGxlLAogICAgQXJjaGl2ZTogQXJjaGl2ZSwKICAgIEFyY2hpdmVSZXN0b3JlOiBBcmNoaXZlUmVzdG9yZSwKICAgIEFyY2hpdmVYOiBBcmNoaXZlWCwKICAgIEFyZWFDaGFydDogQ2hhcnRBcmVhLAogICAgQXJtY2hhaXI6IEFybWNoYWlyLAogICAgQXJyb3dCaWdEb3duOiBBcnJvd0JpZ0Rvd24sCiAgICBBcnJvd0JpZ0Rvd25EYXNoOiBBcnJvd0JpZ0Rvd25EYXNoLAogICAgQXJyb3dCaWdMZWZ0OiBBcnJvd0JpZ0xlZnQsCiAgICBBcnJvd0JpZ0xlZnREYXNoOiBBcnJvd0JpZ0xlZnREYXNoLAogICAgQXJyb3dCaWdSaWdodDogQXJyb3dCaWdSaWdodCwKICAgIEFycm93QmlnUmlnaHREYXNoOiBBcnJvd0JpZ1JpZ2h0RGFzaCwKICAgIEFycm93QmlnVXA6IEFycm93QmlnVXAsCiAgICBBcnJvd0JpZ1VwRGFzaDogQXJyb3dCaWdVcERhc2gsCiAgICBBcnJvd0Rvd246IEFycm93RG93biwKICAgIEFycm93RG93bjAxOiBBcnJvd0Rvd24wMSwKICAgIEFycm93RG93bjEwOiBBcnJvd0Rvd24xMCwKICAgIEFycm93RG93bkFaOiBBcnJvd0Rvd25BWiwKICAgIEFycm93RG93bkF6OiBBcnJvd0Rvd25BWiwKICAgIEFycm93RG93bkNpcmNsZTogQ2lyY2xlQXJyb3dEb3duLAogICAgQXJyb3dEb3duRnJvbUxpbmU6IEFycm93RG93bkZyb21MaW5lLAogICAgQXJyb3dEb3duTGVmdDogQXJyb3dEb3duTGVmdCwKICAgIEFycm93RG93bkxlZnRGcm9tQ2lyY2xlOiBDaXJjbGVBcnJvd091dERvd25MZWZ0LAogICAgQXJyb3dEb3duTGVmdEZyb21TcXVhcmU6IFNxdWFyZUFycm93T3V0RG93bkxlZnQsCiAgICBBcnJvd0Rvd25MZWZ0U3F1YXJlOiBTcXVhcmVBcnJvd0Rvd25MZWZ0LAogICAgQXJyb3dEb3duTmFycm93V2lkZTogQXJyb3dEb3duTmFycm93V2lkZSwKICAgIEFycm93RG93blJpZ2h0OiBBcnJvd0Rvd25SaWdodCwKICAgIEFycm93RG93blJpZ2h0RnJvbUNpcmNsZTogQ2lyY2xlQXJyb3dPdXREb3duUmlnaHQsCiAgICBBcnJvd0Rvd25SaWdodEZyb21TcXVhcmU6IFNxdWFyZUFycm93T3V0RG93blJpZ2h0LAogICAgQXJyb3dEb3duUmlnaHRTcXVhcmU6IFNxdWFyZUFycm93RG93blJpZ2h0LAogICAgQXJyb3dEb3duU3F1YXJlOiBTcXVhcmVBcnJvd0Rvd24sCiAgICBBcnJvd0Rvd25Ub0RvdDogQXJyb3dEb3duVG9Eb3QsCiAgICBBcnJvd0Rvd25Ub0xpbmU6IEFycm93RG93blRvTGluZSwKICAgIEFycm93RG93blVwOiBBcnJvd0Rvd25VcCwKICAgIEFycm93RG93bldpZGVOYXJyb3c6IEFycm93RG93bldpZGVOYXJyb3csCiAgICBBcnJvd0Rvd25aQTogQXJyb3dEb3duWkEsCiAgICBBcnJvd0Rvd25aYTogQXJyb3dEb3duWkEsCiAgICBBcnJvd0xlZnQ6IEFycm93TGVmdCwKICAgIEFycm93TGVmdENpcmNsZTogQ2lyY2xlQXJyb3dMZWZ0LAogICAgQXJyb3dMZWZ0RnJvbUxpbmU6IEFycm93TGVmdEZyb21MaW5lLAogICAgQXJyb3dMZWZ0UmlnaHQ6IEFycm93TGVmdFJpZ2h0LAogICAgQXJyb3dMZWZ0U3F1YXJlOiBTcXVhcmVBcnJvd0xlZnQsCiAgICBBcnJvd0xlZnRUb0xpbmU6IEFycm93TGVmdFRvTGluZSwKICAgIEFycm93UmlnaHQ6IEFycm93UmlnaHQsCiAgICBBcnJvd1JpZ2h0Q2lyY2xlOiBDaXJjbGVBcnJvd1JpZ2h0LAogICAgQXJyb3dSaWdodEZyb21MaW5lOiBBcnJvd1JpZ2h0RnJvbUxpbmUsCiAgICBBcnJvd1JpZ2h0TGVmdDogQXJyb3dSaWdodExlZnQsCiAgICBBcnJvd1JpZ2h0U3F1YXJlOiBTcXVhcmVBcnJvd1JpZ2h0LAogICAgQXJyb3dSaWdodFRvTGluZTogQXJyb3dSaWdodFRvTGluZSwKICAgIEFycm93VXA6IEFycm93VXAsCiAgICBBcnJvd1VwMDE6IEFycm93VXAwMSwKICAgIEFycm93VXAxMDogQXJyb3dVcDEwLAogICAgQXJyb3dVcEFaOiBBcnJvd1VwQVosCiAgICBBcnJvd1VwQXo6IEFycm93VXBBWiwKICAgIEFycm93VXBDaXJjbGU6IENpcmNsZUFycm93VXAsCiAgICBBcnJvd1VwRG93bjogQXJyb3dVcERvd24sCiAgICBBcnJvd1VwRnJvbURvdDogQXJyb3dVcEZyb21Eb3QsCiAgICBBcnJvd1VwRnJvbUxpbmU6IEFycm93VXBGcm9tTGluZSwKICAgIEFycm93VXBMZWZ0OiBBcnJvd1VwTGVmdCwKICAgIEFycm93VXBMZWZ0RnJvbUNpcmNsZTogQ2lyY2xlQXJyb3dPdXRVcExlZnQsCiAgICBBcnJvd1VwTGVmdEZyb21TcXVhcmU6IFNxdWFyZUFycm93T3V0VXBMZWZ0LAogICAgQXJyb3dVcExlZnRTcXVhcmU6IFNxdWFyZUFycm93VXBMZWZ0LAogICAgQXJyb3dVcE5hcnJvd1dpZGU6IEFycm93VXBOYXJyb3dXaWRlLAogICAgQXJyb3dVcFJpZ2h0OiBBcnJvd1VwUmlnaHQsCiAgICBBcnJvd1VwUmlnaHRGcm9tQ2lyY2xlOiBDaXJjbGVBcnJvd091dFVwUmlnaHQsCiAgICBBcnJvd1VwUmlnaHRGcm9tU3F1YXJlOiBTcXVhcmVBcnJvd091dFVwUmlnaHQsCiAgICBBcnJvd1VwUmlnaHRTcXVhcmU6IFNxdWFyZUFycm93VXBSaWdodCwKICAgIEFycm93VXBTcXVhcmU6IFNxdWFyZUFycm93VXAsCiAgICBBcnJvd1VwVG9MaW5lOiBBcnJvd1VwVG9MaW5lLAogICAgQXJyb3dVcFdpZGVOYXJyb3c6IEFycm93VXBXaWRlTmFycm93LAogICAgQXJyb3dVcFpBOiBBcnJvd1VwWkEsCiAgICBBcnJvd1VwWmE6IEFycm93VXBaQSwKICAgIEFycm93c1VwRnJvbUxpbmU6IEFycm93c1VwRnJvbUxpbmUsCiAgICBBc3RlcmlzazogQXN0ZXJpc2ssCiAgICBBc3Rlcmlza1NxdWFyZTogU3F1YXJlQXN0ZXJpc2ssCiAgICBBc3Ryb2lkOiBBc3Ryb2lkLAogICAgQXRTaWduOiBBdFNpZ24sCiAgICBBdG9tOiBBdG9tLAogICAgQXVkaW9MaW5lczogQXVkaW9MaW5lcywKICAgIEF1ZGlvV2F2ZWZvcm06IEF1ZGlvV2F2ZWZvcm0sCiAgICBBd2FyZDogQXdhcmQsCiAgICBBeGU6IEF4ZSwKICAgIEF4aXMzRDogQXhpczNkLAogICAgQXhpczNkOiBBeGlzM2QsCiAgICBCYWJ5OiBCYWJ5LAogICAgQmFja3BhY2s6IEJhY2twYWNrLAogICAgQmFkZ2U6IEJhZGdlLAogICAgQmFkZ2VBbGVydDogQmFkZ2VBbGVydCwKICAgIEJhZGdlQ2VudDogQmFkZ2VDZW50LAogICAgQmFkZ2VDaGVjazogQmFkZ2VDaGVjaywKICAgIEJhZGdlRG9sbGFyU2lnbjogQmFkZ2VEb2xsYXJTaWduLAogICAgQmFkZ2VFdXJvOiBCYWRnZUV1cm8sCiAgICBCYWRnZUhlbHA6IEJhZGdlUXVlc3Rpb25NYXJrLAogICAgQmFkZ2VJbmRpYW5SdXBlZTogQmFkZ2VJbmRpYW5SdXBlZSwKICAgIEJhZGdlSW5mbzogQmFkZ2VJbmZvLAogICAgQmFkZ2VKYXBhbmVzZVllbjogQmFkZ2VKYXBhbmVzZVllbiwKICAgIEJhZGdlTWludXM6IEJhZGdlTWludXMsCiAgICBCYWRnZVBlcmNlbnQ6IEJhZGdlUGVyY2VudCwKICAgIEJhZGdlUGx1czogQmFkZ2VQbHVzLAogICAgQmFkZ2VQb3VuZFN0ZXJsaW5nOiBCYWRnZVBvdW5kU3RlcmxpbmcsCiAgICBCYWRnZVF1ZXN0aW9uTWFyazogQmFkZ2VRdWVzdGlvbk1hcmssCiAgICBCYWRnZVJ1c3NpYW5SdWJsZTogQmFkZ2VSdXNzaWFuUnVibGUsCiAgICBCYWRnZVN3aXNzRnJhbmM6IEJhZGdlU3dpc3NGcmFuYywKICAgIEJhZGdlVHVya2lzaExpcmE6IEJhZGdlVHVya2lzaExpcmEsCiAgICBCYWRnZVg6IEJhZGdlWCwKICAgIEJhZ2dhZ2VDbGFpbTogQmFnZ2FnZUNsYWltLAogICAgQmFsbG9vbjogQmFsbG9vbiwKICAgIEJhbjogQmFuLAogICAgQmFuYW5hOiBCYW5hbmEsCiAgICBCYW5kYWdlOiBCYW5kYWdlLAogICAgQmFua25vdGU6IEJhbmtub3RlLAogICAgQmFua25vdGVBcnJvd0Rvd246IEJhbmtub3RlQXJyb3dEb3duLAogICAgQmFua25vdGVBcnJvd1VwOiBCYW5rbm90ZUFycm93VXAsCiAgICBCYW5rbm90ZUNoZWNrOiBCYW5rbm90ZUNoZWNrLAogICAgQmFua25vdGVYOiBCYW5rbm90ZVgsCiAgICBCYXJDaGFydDogQ2hhcnROb0F4ZXNDb2x1bW5JbmNyZWFzaW5nLAogICAgQmFyQ2hhcnQyOiBDaGFydE5vQXhlc0NvbHVtbiwKICAgIEJhckNoYXJ0MzogQ2hhcnRDb2x1bW4sCiAgICBCYXJDaGFydDQ6IENoYXJ0Q29sdW1uSW5jcmVhc2luZywKICAgIEJhckNoYXJ0QmlnOiBDaGFydENvbHVtbkJpZywKICAgIEJhckNoYXJ0SG9yaXpvbnRhbDogQ2hhcnRCYXIsCiAgICBCYXJDaGFydEhvcml6b250YWxCaWc6IENoYXJ0QmFyQmlnLAogICAgQmFyY29kZTogQmFyY29kZSwKICAgIEJhcnJlbDogQmFycmVsLAogICAgQmFzZWxpbmU6IEJhc2VsaW5lLAogICAgQmF0aDogQmF0aCwKICAgIEJhdHRlcnk6IEJhdHRlcnksCiAgICBCYXR0ZXJ5Q2hhcmdpbmc6IEJhdHRlcnlDaGFyZ2luZywKICAgIEJhdHRlcnlGdWxsOiBCYXR0ZXJ5RnVsbCwKICAgIEJhdHRlcnlMb3c6IEJhdHRlcnlMb3csCiAgICBCYXR0ZXJ5TWVkaXVtOiBCYXR0ZXJ5TWVkaXVtLAogICAgQmF0dGVyeVBsdXM6IEJhdHRlcnlQbHVzLAogICAgQmF0dGVyeVdhcm5pbmc6IEJhdHRlcnlXYXJuaW5nLAogICAgQmVha2VyOiBCZWFrZXIsCiAgICBCZWFuOiBCZWFuLAogICAgQmVhbk9mZjogQmVhbk9mZiwKICAgIEJlZDogQmVkLAogICAgQmVkRG91YmxlOiBCZWREb3VibGUsCiAgICBCZWRTaW5nbGU6IEJlZFNpbmdsZSwKICAgIEJlZWY6IEJlZWYsCiAgICBCZWVmT2ZmOiBCZWVmT2ZmLAogICAgQmVlcjogQmVlciwKICAgIEJlZXJPZmY6IEJlZXJPZmYsCiAgICBCZWxsOiBCZWxsLAogICAgQmVsbENoZWNrOiBCZWxsQ2hlY2ssCiAgICBCZWxsRG90OiBCZWxsRG90LAogICAgQmVsbEVsZWN0cmljOiBCZWxsRWxlY3RyaWMsCiAgICBCZWxsTWludXM6IEJlbGxNaW51cywKICAgIEJlbGxPZmY6IEJlbGxPZmYsCiAgICBCZWxsUGx1czogQmVsbFBsdXMsCiAgICBCZWxsUmluZzogQmVsbFJpbmcsCiAgICBCZXR3ZWVuSG9yaXpvbmFsRW5kOiBCZXR3ZWVuSG9yaXpvbnRhbEVuZCwKICAgIEJldHdlZW5Ib3Jpem9uYWxTdGFydDogQmV0d2Vlbkhvcml6b250YWxTdGFydCwKICAgIEJldHdlZW5Ib3Jpem9udGFsRW5kOiBCZXR3ZWVuSG9yaXpvbnRhbEVuZCwKICAgIEJldHdlZW5Ib3Jpem9udGFsU3RhcnQ6IEJldHdlZW5Ib3Jpem9udGFsU3RhcnQsCiAgICBCZXR3ZWVuVmVydGljYWxFbmQ6IEJldHdlZW5WZXJ0aWNhbEVuZCwKICAgIEJldHdlZW5WZXJ0aWNhbFN0YXJ0OiBCZXR3ZWVuVmVydGljYWxTdGFydCwKICAgIEJpY2Vwc0ZsZXhlZDogQmljZXBzRmxleGVkLAogICAgQmlrZTogQmlrZSwKICAgIEJpbmFyeTogQmluYXJ5LAogICAgQmlub2N1bGFyczogQmlub2N1bGFycywKICAgIEJpb2hhemFyZDogQmlvaGF6YXJkLAogICAgQmlyZDogQmlyZCwKICAgIEJpcmRob3VzZTogQmlyZGhvdXNlLAogICAgQml0Y29pbjogQml0Y29pbiwKICAgIEJsZW5kOiBCbGVuZCwKICAgIEJsZW5kZXI6IEJsZW5kZXIsCiAgICBCbGluZHM6IEJsaW5kcywKICAgIEJsb2NrczogQmxvY2tzLAogICAgQmx1ZXRvb3RoOiBCbHVldG9vdGgsCiAgICBCbHVldG9vdGhDb25uZWN0ZWQ6IEJsdWV0b290aENvbm5lY3RlZCwKICAgIEJsdWV0b290aE9mZjogQmx1ZXRvb3RoT2ZmLAogICAgQmx1ZXRvb3RoU2VhcmNoaW5nOiBCbHVldG9vdGhTZWFyY2hpbmcsCiAgICBCb2xkOiBCb2xkLAogICAgQm9sdDogQm9sdCwKICAgIEJvbWI6IEJvbWIsCiAgICBCb25lOiBCb25lLAogICAgQm9uZUZyYWN0dXJlOiBCb25lRnJhY3R1cmUsCiAgICBCb29rOiBCb29rLAogICAgQm9va0E6IEJvb2tBLAogICAgQm9va0FsZXJ0OiBCb29rQWxlcnQsCiAgICBCb29rQXVkaW86IEJvb2tBdWRpbywKICAgIEJvb2tDaGVjazogQm9va0NoZWNrLAogICAgQm9va0NvcHk6IEJvb2tDb3B5LAogICAgQm9va0Rhc2hlZDogQm9va0Rhc2hlZCwKICAgIEJvb2tEb3duOiBCb29rRG93biwKICAgIEJvb2tIZWFkcGhvbmVzOiBCb29rSGVhZHBob25lcywKICAgIEJvb2tIZWFydDogQm9va0hlYXJ0LAogICAgQm9va0ltYWdlOiBCb29rSW1hZ2UsCiAgICBCb29rS2V5OiBCb29rS2V5LAogICAgQm9va0xvY2s6IEJvb2tMb2NrLAogICAgQm9va01hcmtlZDogQm9va01hcmtlZCwKICAgIEJvb2tNaW51czogQm9va01pbnVzLAogICAgQm9va09wZW46IEJvb2tPcGVuLAogICAgQm9va09wZW5DaGVjazogQm9va09wZW5DaGVjaywKICAgIEJvb2tPcGVuVGV4dDogQm9va09wZW5UZXh0LAogICAgQm9va1BsdXM6IEJvb2tQbHVzLAogICAgQm9va1NlYXJjaDogQm9va1NlYXJjaCwKICAgIEJvb2tUZW1wbGF0ZTogQm9va0Rhc2hlZCwKICAgIEJvb2tUZXh0OiBCb29rVGV4dCwKICAgIEJvb2tUeXBlOiBCb29rVHlwZSwKICAgIEJvb2tVcDogQm9va1VwLAogICAgQm9va1VwMjogQm9va1VwMiwKICAgIEJvb2tVc2VyOiBCb29rVXNlciwKICAgIEJvb2tYOiBCb29rWCwKICAgIEJvb2ttYXJrOiBCb29rbWFyaywKICAgIEJvb2ttYXJrQ2hlY2s6IEJvb2ttYXJrQ2hlY2ssCiAgICBCb29rbWFya01pbnVzOiBCb29rbWFya01pbnVzLAogICAgQm9va21hcmtPZmY6IEJvb2ttYXJrT2ZmLAogICAgQm9va21hcmtQbHVzOiBCb29rbWFya1BsdXMsCiAgICBCb29rbWFya1g6IEJvb2ttYXJrWCwKICAgIEJvb21Cb3g6IEJvb21Cb3gsCiAgICBCb3Q6IEJvdCwKICAgIEJvdE1lc3NhZ2VTcXVhcmU6IEJvdE1lc3NhZ2VTcXVhcmUsCiAgICBCb3RPZmY6IEJvdE9mZiwKICAgIEJvdHRsZVdpbmU6IEJvdHRsZVdpbmUsCiAgICBCb3dBcnJvdzogQm93QXJyb3csCiAgICBCb3g6IEJveCwKICAgIEJveFNlbGVjdDogU3F1YXJlRGFzaGVkLAogICAgQm94ZXM6IEJveGVzLAogICAgQnJhY2VzOiBCcmFjZXMsCiAgICBCcmFja2V0czogQnJhY2tldHMsCiAgICBCcmFpbjogQnJhaW4sCiAgICBCcmFpbkNpcmN1aXQ6IEJyYWluQ2lyY3VpdCwKICAgIEJyYWluQ29nOiBCcmFpbkNvZywKICAgIEJyaWNrV2FsbDogQnJpY2tXYWxsLAogICAgQnJpY2tXYWxsRmlyZTogQnJpY2tXYWxsRmlyZSwKICAgIEJyaWNrV2FsbFNoaWVsZDogQnJpY2tXYWxsU2hpZWxkLAogICAgQnJpZWZjYXNlOiBCcmllZmNhc2UsCiAgICBCcmllZmNhc2VCdXNpbmVzczogQnJpZWZjYXNlQnVzaW5lc3MsCiAgICBCcmllZmNhc2VDb252ZXlvckJlbHQ6IEJyaWVmY2FzZUNvbnZleW9yQmVsdCwKICAgIEJyaWVmY2FzZU1lZGljYWw6IEJyaWVmY2FzZU1lZGljYWwsCiAgICBCcmluZ1RvRnJvbnQ6IEJyaW5nVG9Gcm9udCwKICAgIEJyb2Njb2xpOiBCcm9jY29saSwKICAgIEJydXNoOiBCcnVzaCwKICAgIEJydXNoQ2xlYW5pbmc6IEJydXNoQ2xlYW5pbmcsCiAgICBCdWJibGVzOiBCdWJibGVzLAogICAgQnVnOiBCdWcsCiAgICBCdWdPZmY6IEJ1Z09mZiwKICAgIEJ1Z1BsYXk6IEJ1Z1BsYXksCiAgICBCdWlsZGluZzogQnVpbGRpbmcsCiAgICBCdWlsZGluZzI6IEJ1aWxkaW5nMiwKICAgIEJ1czogQnVzLAogICAgQnVzRnJvbnQ6IEJ1c0Zyb250LAogICAgQ2FibGU6IENhYmxlLAogICAgQ2FibGVDYXI6IENhYmxlQ2FyLAogICAgQ2FrZTogQ2FrZSwKICAgIENha2VTbGljZTogQ2FrZVNsaWNlLAogICAgQ2FsY3VsYXRvcjogQ2FsY3VsYXRvciwKICAgIENhbGVuZGFyOiBDYWxlbmRhciwKICAgIENhbGVuZGFyMTogQ2FsZW5kYXIxLAogICAgQ2FsZW5kYXJBcnJvd0Rvd246IENhbGVuZGFyQXJyb3dEb3duLAogICAgQ2FsZW5kYXJBcnJvd1VwOiBDYWxlbmRhckFycm93VXAsCiAgICBDYWxlbmRhckNoZWNrOiBDYWxlbmRhckNoZWNrLAogICAgQ2FsZW5kYXJDaGVjazI6IENhbGVuZGFyQ2hlY2syLAogICAgQ2FsZW5kYXJDbG9jazogQ2FsZW5kYXJDbG9jaywKICAgIENhbGVuZGFyQ29nOiBDYWxlbmRhckNvZywKICAgIENhbGVuZGFyRGF5czogQ2FsZW5kYXJEYXlzLAogICAgQ2FsZW5kYXJGb2xkOiBDYWxlbmRhckZvbGQsCiAgICBDYWxlbmRhckhlYXJ0OiBDYWxlbmRhckhlYXJ0LAogICAgQ2FsZW5kYXJNaW51czogQ2FsZW5kYXJNaW51cywKICAgIENhbGVuZGFyTWludXMyOiBDYWxlbmRhck1pbnVzMiwKICAgIENhbGVuZGFyT2ZmOiBDYWxlbmRhck9mZiwKICAgIENhbGVuZGFyUGx1czogQ2FsZW5kYXJQbHVzLAogICAgQ2FsZW5kYXJQbHVzMjogQ2FsZW5kYXJQbHVzMiwKICAgIENhbGVuZGFyUmFuZ2U6IENhbGVuZGFyUmFuZ2UsCiAgICBDYWxlbmRhclNlYXJjaDogQ2FsZW5kYXJTZWFyY2gsCiAgICBDYWxlbmRhclN5bmM6IENhbGVuZGFyU3luYywKICAgIENhbGVuZGFyWDogQ2FsZW5kYXJYLAogICAgQ2FsZW5kYXJYMjogQ2FsZW5kYXJYMiwKICAgIENhbGVuZGFyczogQ2FsZW5kYXJzLAogICAgQ2FtZXJhOiBDYW1lcmEsCiAgICBDYW1lcmFPZmY6IENhbWVyYU9mZiwKICAgIENhbmRsZXN0aWNrQ2hhcnQ6IENoYXJ0Q2FuZGxlc3RpY2ssCiAgICBDYW5keTogQ2FuZHksCiAgICBDYW5keUNhbmU6IENhbmR5Q2FuZSwKICAgIENhbmR5T2ZmOiBDYW5keU9mZiwKICAgIENhbm5hYmlzOiBDYW5uYWJpcywKICAgIENhbm5hYmlzT2ZmOiBDYW5uYWJpc09mZiwKICAgIENhcHRpb25zOiBDYXB0aW9ucywKICAgIENhcHRpb25zT2ZmOiBDYXB0aW9uc09mZiwKICAgIENhcjogQ2FyLAogICAgQ2FyRnJvbnQ6IENhckZyb250LAogICAgQ2FyVGF4aUZyb250OiBDYXJUYXhpRnJvbnQsCiAgICBDYXJhdmFuOiBDYXJhdmFuLAogICAgQ2FyZFNpbTogQ2FyZFNpbSwKICAgIENhcnJvdDogQ2Fycm90LAogICAgQ2FzZUxvd2VyOiBDYXNlTG93ZXIsCiAgICBDYXNlU2Vuc2l0aXZlOiBDYXNlU2Vuc2l0aXZlLAogICAgQ2FzZVVwcGVyOiBDYXNlVXBwZXIsCiAgICBDYXNzZXR0ZVRhcGU6IENhc3NldHRlVGFwZSwKICAgIENhc3Q6IENhc3QsCiAgICBDYXN0bGU6IENhc3RsZSwKICAgIENhdDogQ2F0LAogICAgQ2N0djogQ2N0diwKICAgIENjdHZPZmY6IENjdHZPZmYsCiAgICBDaGFydEFyZWE6IENoYXJ0QXJlYSwKICAgIENoYXJ0QmFyOiBDaGFydEJhciwKICAgIENoYXJ0QmFyQmlnOiBDaGFydEJhckJpZywKICAgIENoYXJ0QmFyRGVjcmVhc2luZzogQ2hhcnRCYXJEZWNyZWFzaW5nLAogICAgQ2hhcnRCYXJJbmNyZWFzaW5nOiBDaGFydEJhckluY3JlYXNpbmcsCiAgICBDaGFydEJhclN0YWNrZWQ6IENoYXJ0QmFyU3RhY2tlZCwKICAgIENoYXJ0Q2FuZGxlc3RpY2s6IENoYXJ0Q2FuZGxlc3RpY2ssCiAgICBDaGFydENvbHVtbjogQ2hhcnRDb2x1bW4sCiAgICBDaGFydENvbHVtbkJpZzogQ2hhcnRDb2x1bW5CaWcsCiAgICBDaGFydENvbHVtbkRlY3JlYXNpbmc6IENoYXJ0Q29sdW1uRGVjcmVhc2luZywKICAgIENoYXJ0Q29sdW1uSW5jcmVhc2luZzogQ2hhcnRDb2x1bW5JbmNyZWFzaW5nLAogICAgQ2hhcnRDb2x1bW5TdGFja2VkOiBDaGFydENvbHVtblN0YWNrZWQsCiAgICBDaGFydEdhbnR0OiBDaGFydEdhbnR0LAogICAgQ2hhcnRMaW5lOiBDaGFydExpbmUsCiAgICBDaGFydE5ldHdvcms6IENoYXJ0TmV0d29yaywKICAgIENoYXJ0Tm9BeGVzQ29sdW1uOiBDaGFydE5vQXhlc0NvbHVtbiwKICAgIENoYXJ0Tm9BeGVzQ29sdW1uRGVjcmVhc2luZzogQ2hhcnROb0F4ZXNDb2x1bW5EZWNyZWFzaW5nLAogICAgQ2hhcnROb0F4ZXNDb2x1bW5JbmNyZWFzaW5nOiBDaGFydE5vQXhlc0NvbHVtbkluY3JlYXNpbmcsCiAgICBDaGFydE5vQXhlc0NvbWJpbmVkOiBDaGFydE5vQXhlc0NvbWJpbmVkLAogICAgQ2hhcnROb0F4ZXNHYW50dDogQ2hhcnROb0F4ZXNHYW50dCwKICAgIENoYXJ0UGllOiBDaGFydFBpZSwKICAgIENoYXJ0U2NhdHRlcjogQ2hhcnRTY2F0dGVyLAogICAgQ2hhcnRTcGxpbmU6IENoYXJ0U3BsaW5lLAogICAgQ2hlY2s6IENoZWNrLAogICAgQ2hlY2tDaGVjazogQ2hlY2tDaGVjaywKICAgIENoZWNrQ2lyY2xlOiBDaXJjbGVDaGVja0JpZywKICAgIENoZWNrQ2lyY2xlMjogQ2lyY2xlQ2hlY2ssCiAgICBDaGVja0xpbmU6IENoZWNrTGluZSwKICAgIENoZWNrU3F1YXJlOiBTcXVhcmVDaGVja0JpZywKICAgIENoZWNrU3F1YXJlMjogU3F1YXJlQ2hlY2ssCiAgICBDaGVmSGF0OiBDaGVmSGF0LAogICAgQ2hlcnJ5OiBDaGVycnksCiAgICBDaGVzc0Jpc2hvcDogQ2hlc3NCaXNob3AsCiAgICBDaGVzc0tpbmc6IENoZXNzS2luZywKICAgIENoZXNzS25pZ2h0OiBDaGVzc0tuaWdodCwKICAgIENoZXNzUGF3bjogQ2hlc3NQYXduLAogICAgQ2hlc3NRdWVlbjogQ2hlc3NRdWVlbiwKICAgIENoZXNzUm9vazogQ2hlc3NSb29rLAogICAgQ2hldnJvbkRvd246IENoZXZyb25Eb3duLAogICAgQ2hldnJvbkRvd25DaXJjbGU6IENpcmNsZUNoZXZyb25Eb3duLAogICAgQ2hldnJvbkRvd25TcXVhcmU6IFNxdWFyZUNoZXZyb25Eb3duLAogICAgQ2hldnJvbkZpcnN0OiBDaGV2cm9uRmlyc3QsCiAgICBDaGV2cm9uTGFzdDogQ2hldnJvbkxhc3QsCiAgICBDaGV2cm9uTGVmdDogQ2hldnJvbkxlZnQsCiAgICBDaGV2cm9uTGVmdENpcmNsZTogQ2lyY2xlQ2hldnJvbkxlZnQsCiAgICBDaGV2cm9uTGVmdFNxdWFyZTogU3F1YXJlQ2hldnJvbkxlZnQsCiAgICBDaGV2cm9uUmlnaHQ6IENoZXZyb25SaWdodCwKICAgIENoZXZyb25SaWdodENpcmNsZTogQ2lyY2xlQ2hldnJvblJpZ2h0LAogICAgQ2hldnJvblJpZ2h0U3F1YXJlOiBTcXVhcmVDaGV2cm9uUmlnaHQsCiAgICBDaGV2cm9uVXA6IENoZXZyb25VcCwKICAgIENoZXZyb25VcENpcmNsZTogQ2lyY2xlQ2hldnJvblVwLAogICAgQ2hldnJvblVwU3F1YXJlOiBTcXVhcmVDaGV2cm9uVXAsCiAgICBDaGV2cm9uc0Rvd246IENoZXZyb25zRG93biwKICAgIENoZXZyb25zRG93blVwOiBDaGV2cm9uc0Rvd25VcCwKICAgIENoZXZyb25zTGVmdDogQ2hldnJvbnNMZWZ0LAogICAgQ2hldnJvbnNMZWZ0UmlnaHQ6IENoZXZyb25zTGVmdFJpZ2h0LAogICAgQ2hldnJvbnNMZWZ0UmlnaHRFbGxpcHNpczogQ2hldnJvbnNMZWZ0UmlnaHRFbGxpcHNpcywKICAgIENoZXZyb25zUmlnaHQ6IENoZXZyb25zUmlnaHQsCiAgICBDaGV2cm9uc1JpZ2h0TGVmdDogQ2hldnJvbnNSaWdodExlZnQsCiAgICBDaGV2cm9uc1VwOiBDaGV2cm9uc1VwLAogICAgQ2hldnJvbnNVcERvd246IENoZXZyb25zVXBEb3duLAogICAgQ2h1cmNoOiBDaHVyY2gsCiAgICBDaWdhcmV0dGU6IENpZ2FyZXR0ZSwKICAgIENpZ2FyZXR0ZU9mZjogQ2lnYXJldHRlT2ZmLAogICAgQ2lyY2xlOiBDaXJjbGUsCiAgICBDaXJjbGVBbGVydDogQ2lyY2xlQWxlcnQsCiAgICBDaXJjbGVBcnJvd0Rvd246IENpcmNsZUFycm93RG93biwKICAgIENpcmNsZUFycm93TGVmdDogQ2lyY2xlQXJyb3dMZWZ0LAogICAgQ2lyY2xlQXJyb3dPdXREb3duTGVmdDogQ2lyY2xlQXJyb3dPdXREb3duTGVmdCwKICAgIENpcmNsZUFycm93T3V0RG93blJpZ2h0OiBDaXJjbGVBcnJvd091dERvd25SaWdodCwKICAgIENpcmNsZUFycm93T3V0VXBMZWZ0OiBDaXJjbGVBcnJvd091dFVwTGVmdCwKICAgIENpcmNsZUFycm93T3V0VXBSaWdodDogQ2lyY2xlQXJyb3dPdXRVcFJpZ2h0LAogICAgQ2lyY2xlQXJyb3dSaWdodDogQ2lyY2xlQXJyb3dSaWdodCwKICAgIENpcmNsZUFycm93VXA6IENpcmNsZUFycm93VXAsCiAgICBDaXJjbGVDaGVjazogQ2lyY2xlQ2hlY2ssCiAgICBDaXJjbGVDaGVja0JpZzogQ2lyY2xlQ2hlY2tCaWcsCiAgICBDaXJjbGVDaGV2cm9uRG93bjogQ2lyY2xlQ2hldnJvbkRvd24sCiAgICBDaXJjbGVDaGV2cm9uTGVmdDogQ2lyY2xlQ2hldnJvbkxlZnQsCiAgICBDaXJjbGVDaGV2cm9uUmlnaHQ6IENpcmNsZUNoZXZyb25SaWdodCwKICAgIENpcmNsZUNoZXZyb25VcDogQ2lyY2xlQ2hldnJvblVwLAogICAgQ2lyY2xlRGFzaGVkOiBDaXJjbGVEYXNoZWQsCiAgICBDaXJjbGVEaXZpZGU6IENpcmNsZURpdmlkZSwKICAgIENpcmNsZURvbGxhclNpZ246IENpcmNsZURvbGxhclNpZ24sCiAgICBDaXJjbGVEb3Q6IENpcmNsZURvdCwKICAgIENpcmNsZURvdERhc2hlZDogQ2lyY2xlRG90RGFzaGVkLAogICAgQ2lyY2xlRWxsaXBzaXM6IENpcmNsZUVsbGlwc2lzLAogICAgQ2lyY2xlRXF1YWw6IENpcmNsZUVxdWFsLAogICAgQ2lyY2xlRXVybzogQ2lyY2xlRXVybywKICAgIENpcmNsZUZhZGluZ0Fycm93VXA6IENpcmNsZUZhZGluZ0Fycm93VXAsCiAgICBDaXJjbGVGYWRpbmdQbHVzOiBDaXJjbGVGYWRpbmdQbHVzLAogICAgQ2lyY2xlR2F1Z2U6IENpcmNsZUdhdWdlLAogICAgQ2lyY2xlSGVscDogQ2lyY2xlUXVlc3Rpb25NYXJrLAogICAgQ2lyY2xlTWludXM6IENpcmNsZU1pbnVzLAogICAgQ2lyY2xlT2ZmOiBDaXJjbGVPZmYsCiAgICBDaXJjbGVQYXJraW5nOiBDaXJjbGVQYXJraW5nLAogICAgQ2lyY2xlUGFya2luZ09mZjogQ2lyY2xlUGFya2luZ09mZiwKICAgIENpcmNsZVBhdXNlOiBDaXJjbGVQYXVzZSwKICAgIENpcmNsZVBlcmNlbnQ6IENpcmNsZVBlcmNlbnQsCiAgICBDaXJjbGVQaWxlOiBDaXJjbGVQaWxlLAogICAgQ2lyY2xlUGxheTogQ2lyY2xlUGxheSwKICAgIENpcmNsZVBsdXM6IENpcmNsZVBsdXMsCiAgICBDaXJjbGVQb3VuZFN0ZXJsaW5nOiBDaXJjbGVQb3VuZFN0ZXJsaW5nLAogICAgQ2lyY2xlUG93ZXI6IENpcmNsZVBvd2VyLAogICAgQ2lyY2xlUXVlc3Rpb25NYXJrOiBDaXJjbGVRdWVzdGlvbk1hcmssCiAgICBDaXJjbGVTbGFzaDogQ2lyY2xlU2xhc2gsCiAgICBDaXJjbGVTbGFzaDI6IENpcmNsZVNsYXNoMiwKICAgIENpcmNsZVNsYXNoZWQ6IENpcmNsZVNsYXNoMiwKICAgIENpcmNsZVNtYWxsOiBDaXJjbGVTbWFsbCwKICAgIENpcmNsZVN0YXI6IENpcmNsZVN0YXIsCiAgICBDaXJjbGVTdG9wOiBDaXJjbGVTdG9wLAogICAgQ2lyY2xlVXNlcjogQ2lyY2xlVXNlciwKICAgIENpcmNsZVVzZXJSb3VuZDogQ2lyY2xlVXNlclJvdW5kLAogICAgQ2lyY2xlWDogQ2lyY2xlWCwKICAgIENpcmN1aXRCb2FyZDogQ2lyY3VpdEJvYXJkLAogICAgQ2l0cnVzOiBDaXRydXMsCiAgICBDbGFwcGVyYm9hcmQ6IENsYXBwZXJib2FyZCwKICAgIENsaXBib2FyZDogQ2xpcGJvYXJkLAogICAgQ2xpcGJvYXJkQ2hlY2s6IENsaXBib2FyZENoZWNrLAogICAgQ2xpcGJvYXJkQ2xvY2s6IENsaXBib2FyZENsb2NrLAogICAgQ2xpcGJvYXJkQ29weTogQ2xpcGJvYXJkQ29weSwKICAgIENsaXBib2FyZEVkaXQ6IENsaXBib2FyZFBlbiwKICAgIENsaXBib2FyZExpc3Q6IENsaXBib2FyZExpc3QsCiAgICBDbGlwYm9hcmRNaW51czogQ2xpcGJvYXJkTWludXMsCiAgICBDbGlwYm9hcmRQYXN0ZTogQ2xpcGJvYXJkUGFzdGUsCiAgICBDbGlwYm9hcmRQZW46IENsaXBib2FyZFBlbiwKICAgIENsaXBib2FyZFBlbkxpbmU6IENsaXBib2FyZFBlbkxpbmUsCiAgICBDbGlwYm9hcmRQbHVzOiBDbGlwYm9hcmRQbHVzLAogICAgQ2xpcGJvYXJkU2lnbmF0dXJlOiBDbGlwYm9hcmRQZW5MaW5lLAogICAgQ2xpcGJvYXJkVHlwZTogQ2xpcGJvYXJkVHlwZSwKICAgIENsaXBib2FyZFg6IENsaXBib2FyZFgsCiAgICBDbG9jazogQ2xvY2ssCiAgICBDbG9jazE6IENsb2NrMSwKICAgIENsb2NrMTA6IENsb2NrMTAsCiAgICBDbG9jazExOiBDbG9jazExLAogICAgQ2xvY2sxMjogQ2xvY2sxMiwKICAgIENsb2NrMjogQ2xvY2syLAogICAgQ2xvY2szOiBDbG9jazMsCiAgICBDbG9jazQ6IENsb2NrNCwKICAgIENsb2NrNTogQ2xvY2s1LAogICAgQ2xvY2s2OiBDbG9jazYsCiAgICBDbG9jazc6IENsb2NrNywKICAgIENsb2NrODogQ2xvY2s4LAogICAgQ2xvY2s5OiBDbG9jazksCiAgICBDbG9ja0FsZXJ0OiBDbG9ja0FsZXJ0LAogICAgQ2xvY2tBcnJvd0Rvd246IENsb2NrQXJyb3dEb3duLAogICAgQ2xvY2tBcnJvd0xlZnQ6IENsb2NrQXJyb3dMZWZ0LAogICAgQ2xvY2tBcnJvd1JpZ2h0OiBDbG9ja0Fycm93UmlnaHQsCiAgICBDbG9ja0Fycm93VXA6IENsb2NrQXJyb3dVcCwKICAgIENsb2NrQ2hlY2s6IENsb2NrQ2hlY2ssCiAgICBDbG9ja0ZhZGluZzogQ2xvY2tGYWRpbmcsCiAgICBDbG9ja1BsdXM6IENsb2NrUGx1cywKICAgIENsb3NlZENhcHRpb246IENsb3NlZENhcHRpb24sCiAgICBDbG91ZDogQ2xvdWQsCiAgICBDbG91ZEFsZXJ0OiBDbG91ZEFsZXJ0LAogICAgQ2xvdWRCYWNrdXA6IENsb3VkQmFja3VwLAogICAgQ2xvdWRDaGVjazogQ2xvdWRDaGVjaywKICAgIENsb3VkQ29nOiBDbG91ZENvZywKICAgIENsb3VkRG93bmxvYWQ6IENsb3VkRG93bmxvYWQsCiAgICBDbG91ZERyaXp6bGU6IENsb3VkRHJpenpsZSwKICAgIENsb3VkRm9nOiBDbG91ZEZvZywKICAgIENsb3VkSGFpbDogQ2xvdWRIYWlsLAogICAgQ2xvdWRMaWdodG5pbmc6IENsb3VkTGlnaHRuaW5nLAogICAgQ2xvdWRNb29uOiBDbG91ZE1vb24sCiAgICBDbG91ZE1vb25SYWluOiBDbG91ZE1vb25SYWluLAogICAgQ2xvdWRPZmY6IENsb3VkT2ZmLAogICAgQ2xvdWRSYWluOiBDbG91ZFJhaW4sCiAgICBDbG91ZFJhaW5XaW5kOiBDbG91ZFJhaW5XaW5kLAogICAgQ2xvdWRTbm93OiBDbG91ZFNub3csCiAgICBDbG91ZFN1bjogQ2xvdWRTdW4sCiAgICBDbG91ZFN1blJhaW46IENsb3VkU3VuUmFpbiwKICAgIENsb3VkU3luYzogQ2xvdWRTeW5jLAogICAgQ2xvdWRVcGxvYWQ6IENsb3VkVXBsb2FkLAogICAgQ2xvdWR5OiBDbG91ZHksCiAgICBDbG92ZXI6IENsb3ZlciwKICAgIENsdWI6IENsdWIsCiAgICBDb2RlOiBDb2RlLAogICAgQ29kZTI6IENvZGVYbWwsCiAgICBDb2RlU3F1YXJlOiBTcXVhcmVDb2RlLAogICAgQ29kZVhtbDogQ29kZVhtbCwKICAgIENvZmZlZTogQ29mZmVlLAogICAgQ29nOiBDb2csCiAgICBDb2luczogQ29pbnMsCiAgICBDb2x1bW5zOiBDb2x1bW5zMiwKICAgIENvbHVtbnMyOiBDb2x1bW5zMiwKICAgIENvbHVtbnMzOiBDb2x1bW5zMywKICAgIENvbHVtbnMzQ29nOiBDb2x1bW5zM0NvZywKICAgIENvbHVtbnM0OiBDb2x1bW5zNCwKICAgIENvbHVtbnNTZXR0aW5nczogQ29sdW1uczNDb2csCiAgICBDb21iaW5lOiBDb21iaW5lLAogICAgQ29tbWFuZDogQ29tbWFuZCwKICAgIENvbXBhc3M6IENvbXBhc3MsCiAgICBDb21wb25lbnQ6IENvbXBvbmVudCwKICAgIENvbXB1dGVyOiBDb21wdXRlciwKICAgIENvbmNpZXJnZUJlbGw6IENvbmNpZXJnZUJlbGwsCiAgICBDb25lOiBDb25lLAogICAgQ29uc3RydWN0aW9uOiBDb25zdHJ1Y3Rpb24sCiAgICBDb250YWN0OiBDb250YWN0LAogICAgQ29udGFjdDI6IENvbnRhY3RSb3VuZCwKICAgIENvbnRhY3RSb3VuZDogQ29udGFjdFJvdW5kLAogICAgQ29udGFpbmVyOiBDb250YWluZXIsCiAgICBDb250cmFzdDogQ29udHJhc3QsCiAgICBDb29raWU6IENvb2tpZSwKICAgIENvb2tpbmdQb3Q6IENvb2tpbmdQb3QsCiAgICBDb3B5OiBDb3B5LAogICAgQ29weUNoZWNrOiBDb3B5Q2hlY2ssCiAgICBDb3B5TWludXM6IENvcHlNaW51cywKICAgIENvcHlQbHVzOiBDb3B5UGx1cywKICAgIENvcHlTbGFzaDogQ29weVNsYXNoLAogICAgQ29weVg6IENvcHlYLAogICAgQ29weWxlZnQ6IENvcHlsZWZ0LAogICAgQ29weXJpZ2h0OiBDb3B5cmlnaHQsCiAgICBDb3JuZXJEb3duTGVmdDogQ29ybmVyRG93bkxlZnQsCiAgICBDb3JuZXJEb3duUmlnaHQ6IENvcm5lckRvd25SaWdodCwKICAgIENvcm5lckxlZnREb3duOiBDb3JuZXJMZWZ0RG93biwKICAgIENvcm5lckxlZnRVcDogQ29ybmVyTGVmdFVwLAogICAgQ29ybmVyUmlnaHREb3duOiBDb3JuZXJSaWdodERvd24sCiAgICBDb3JuZXJSaWdodFVwOiBDb3JuZXJSaWdodFVwLAogICAgQ29ybmVyVXBMZWZ0OiBDb3JuZXJVcExlZnQsCiAgICBDb3JuZXJVcFJpZ2h0OiBDb3JuZXJVcFJpZ2h0LAogICAgQ3B1OiBDcHUsCiAgICBDcmVhdGl2ZUNvbW1vbnM6IENyZWF0aXZlQ29tbW9ucywKICAgIENyZWRpdENhcmQ6IENyZWRpdENhcmQsCiAgICBDcm9pc3NhbnQ6IENyb2lzc2FudCwKICAgIENyb3A6IENyb3AsCiAgICBDcm9zczogQ3Jvc3MsCiAgICBDcm9zc2hhaXI6IENyb3NzaGFpciwKICAgIENyb3duOiBDcm93biwKICAgIEN1Ym9pZDogQ3Vib2lkLAogICAgQ3VwU29kYTogQ3VwU29kYSwKICAgIEN1cmx5QnJhY2VzOiBCcmFjZXMsCiAgICBDdXJyZW5jeTogQ3VycmVuY3ksCiAgICBDeWxpbmRlcjogQ3lsaW5kZXIsCiAgICBEYW06IERhbSwKICAgIERhdGFiYXNlOiBEYXRhYmFzZSwKICAgIERhdGFiYXNlQXJyb3dEb3duOiBEYXRhYmFzZUFycm93RG93biwKICAgIERhdGFiYXNlQXJyb3dVcDogRGF0YWJhc2VBcnJvd1VwLAogICAgRGF0YWJhc2VCYWNrdXA6IERhdGFiYXNlQmFja3VwLAogICAgRGF0YWJhc2VDaGVjazogRGF0YWJhc2VDaGVjaywKICAgIERhdGFiYXNlTWludXM6IERhdGFiYXNlTWludXMsCiAgICBEYXRhYmFzZVBsdXM6IERhdGFiYXNlUGx1cywKICAgIERhdGFiYXNlU2VhcmNoOiBEYXRhYmFzZVNlYXJjaCwKICAgIERhdGFiYXNlWDogRGF0YWJhc2VYLAogICAgRGF0YWJhc2VaYXA6IERhdGFiYXNlWmFwLAogICAgRGVjaW1hbHNBcnJvd0xlZnQ6IERlY2ltYWxzQXJyb3dMZWZ0LAogICAgRGVjaW1hbHNBcnJvd1JpZ2h0OiBEZWNpbWFsc0Fycm93UmlnaHQsCiAgICBEZWxldGU6IERlbGV0ZSwKICAgIERlc3NlcnQ6IERlc3NlcnQsCiAgICBEaWFtZXRlcjogRGlhbWV0ZXIsCiAgICBEaWFtb25kOiBEaWFtb25kLAogICAgRGlhbW9uZE1pbnVzOiBEaWFtb25kTWludXMsCiAgICBEaWFtb25kUGVyY2VudDogRGlhbW9uZFBlcmNlbnQsCiAgICBEaWFtb25kUGx1czogRGlhbW9uZFBsdXMsCiAgICBEaWNlMTogRGljZTEsCiAgICBEaWNlMjogRGljZTIsCiAgICBEaWNlMzogRGljZTMsCiAgICBEaWNlNDogRGljZTQsCiAgICBEaWNlNTogRGljZTUsCiAgICBEaWNlNjogRGljZTYsCiAgICBEaWNlczogRGljZXMsCiAgICBEaWZmOiBEaWZmLAogICAgRGlzYzogRGlzYywKICAgIERpc2MyOiBEaXNjMiwKICAgIERpc2MzOiBEaXNjMywKICAgIERpc2NBbGJ1bTogRGlzY0FsYnVtLAogICAgRGl2aWRlOiBEaXZpZGUsCiAgICBEaXZpZGVDaXJjbGU6IENpcmNsZURpdmlkZSwKICAgIERpdmlkZVNxdWFyZTogU3F1YXJlRGl2aWRlLAogICAgRG5hOiBEbmEsCiAgICBEbmFPZmY6IERuYU9mZiwKICAgIERvY2s6IERvY2ssCiAgICBEb2c6IERvZywKICAgIERvbGxhclNpZ246IERvbGxhclNpZ24sCiAgICBEb251dDogRG9udXQsCiAgICBEb29yQ2xvc2VkOiBEb29yQ2xvc2VkLAogICAgRG9vckNsb3NlZExvY2tlZDogRG9vckNsb3NlZExvY2tlZCwKICAgIERvb3JPcGVuOiBEb29yT3BlbiwKICAgIERvdDogRG90LAogICAgRG90U3F1YXJlOiBTcXVhcmVEb3QsCiAgICBEb3dubG9hZDogRG93bmxvYWQsCiAgICBEb3dubG9hZENsb3VkOiBDbG91ZERvd25sb2FkLAogICAgRHJhZnRpbmdDb21wYXNzOiBEcmFmdGluZ0NvbXBhc3MsCiAgICBEcmFtYTogRHJhbWEsCiAgICBEcmlsbDogRHJpbGwsCiAgICBEcm9uZTogRHJvbmUsCiAgICBEcm9wbGV0OiBEcm9wbGV0LAogICAgRHJvcGxldE9mZjogRHJvcGxldE9mZiwKICAgIERyb3BsZXRzOiBEcm9wbGV0cywKICAgIERydW06IERydW0sCiAgICBEcnVtc3RpY2s6IERydW1zdGljaywKICAgIER1bWJiZWxsOiBEdW1iYmVsbCwKICAgIEVhcjogRWFyLAogICAgRWFyT2ZmOiBFYXJPZmYsCiAgICBFYXJ0aDogRWFydGgsCiAgICBFYXJ0aExvY2s6IEVhcnRoTG9jaywKICAgIEVjbGlwc2U6IEVjbGlwc2UsCiAgICBFZGl0OiBTcXVhcmVQZW4sCiAgICBFZGl0MjogUGVuLAogICAgRWRpdDM6IFBlbkxpbmUsCiAgICBFZ2c6IEVnZywKICAgIEVnZ0ZyaWVkOiBFZ2dGcmllZCwKICAgIEVnZ09mZjogRWdnT2ZmLAogICAgRWxsaXBzZTogRWxsaXBzZSwKICAgIEVsbGlwc2lzOiBFbGxpcHNpcywKICAgIEVsbGlwc2lzVmVydGljYWw6IEVsbGlwc2lzVmVydGljYWwsCiAgICBFcXVhbDogRXF1YWwsCiAgICBFcXVhbEFwcHJveGltYXRlbHk6IEVxdWFsQXBwcm94aW1hdGVseSwKICAgIEVxdWFsTm90OiBFcXVhbE5vdCwKICAgIEVxdWFsU3F1YXJlOiBTcXVhcmVFcXVhbCwKICAgIEVyYXNlcjogRXJhc2VyLAogICAgRXRoZXJuZXRQb3J0OiBFdGhlcm5ldFBvcnQsCiAgICBFdXJvOiBFdXJvLAogICAgRXZDaGFyZ2VyOiBFdkNoYXJnZXIsCiAgICBFeHBhbmQ6IEV4cGFuZCwKICAgIEV4dGVybmFsTGluazogRXh0ZXJuYWxMaW5rLAogICAgRXllOiBFeWUsCiAgICBFeWVDbG9zZWQ6IEV5ZUNsb3NlZCwKICAgIEV5ZURhc2hlZDogRXllRGFzaGVkLAogICAgRXllT2ZmOiBFeWVPZmYsCiAgICBGYWN0b3J5OiBGYWN0b3J5LAogICAgRmFuOiBGYW4sCiAgICBGYXN0Rm9yd2FyZDogRmFzdEZvcndhcmQsCiAgICBGZWF0aGVyOiBGZWF0aGVyLAogICAgRmVuY2U6IEZlbmNlLAogICAgRmVycmlzV2hlZWw6IEZlcnJpc1doZWVsLAogICAgRmlsZTogRmlsZSwKICAgIEZpbGVBcmNoaXZlOiBGaWxlQXJjaGl2ZSwKICAgIEZpbGVBdWRpbzogRmlsZUhlYWRwaG9uZSwKICAgIEZpbGVBdWRpbzI6IEZpbGVIZWFkcGhvbmUsCiAgICBGaWxlQXhpczNEOiBGaWxlQXhpczNkLAogICAgRmlsZUF4aXMzZDogRmlsZUF4aXMzZCwKICAgIEZpbGVCYWRnZTogRmlsZUJhZGdlLAogICAgRmlsZUJhZGdlMjogRmlsZUJhZGdlLAogICAgRmlsZUJhckNoYXJ0OiBGaWxlQ2hhcnRDb2x1bW5JbmNyZWFzaW5nLAogICAgRmlsZUJhckNoYXJ0MjogRmlsZUNoYXJ0Q29sdW1uLAogICAgRmlsZUJveDogRmlsZUJveCwKICAgIEZpbGVCcmFjZXM6IEZpbGVCcmFjZXMsCiAgICBGaWxlQnJhY2VzQ29ybmVyOiBGaWxlQnJhY2VzQ29ybmVyLAogICAgRmlsZUNoYXJ0Q29sdW1uOiBGaWxlQ2hhcnRDb2x1bW4sCiAgICBGaWxlQ2hhcnRDb2x1bW5JbmNyZWFzaW5nOiBGaWxlQ2hhcnRDb2x1bW5JbmNyZWFzaW5nLAogICAgRmlsZUNoYXJ0TGluZTogRmlsZUNoYXJ0TGluZSwKICAgIEZpbGVDaGFydFBpZTogRmlsZUNoYXJ0UGllLAogICAgRmlsZUNoZWNrOiBGaWxlQ2hlY2ssCiAgICBGaWxlQ2hlY2syOiBGaWxlQ2hlY2tDb3JuZXIsCiAgICBGaWxlQ2hlY2tDb3JuZXI6IEZpbGVDaGVja0Nvcm5lciwKICAgIEZpbGVDbG9jazogRmlsZUNsb2NrLAogICAgRmlsZUNvZGU6IEZpbGVDb2RlLAogICAgRmlsZUNvZGUyOiBGaWxlQ29kZUNvcm5lciwKICAgIEZpbGVDb2RlQ29ybmVyOiBGaWxlQ29kZUNvcm5lciwKICAgIEZpbGVDb2c6IEZpbGVDb2csCiAgICBGaWxlQ29nMjogRmlsZUNvZywKICAgIEZpbGVEaWZmOiBGaWxlRGlmZiwKICAgIEZpbGVEaWdpdDogRmlsZURpZ2l0LAogICAgRmlsZURvd246IEZpbGVEb3duLAogICAgRmlsZUVkaXQ6IEZpbGVQZW4sCiAgICBGaWxlRXhjbGFtYXRpb25Qb2ludDogRmlsZUV4Y2xhbWF0aW9uUG9pbnQsCiAgICBGaWxlSGVhZHBob25lOiBGaWxlSGVhZHBob25lLAogICAgRmlsZUhlYXJ0OiBGaWxlSGVhcnQsCiAgICBGaWxlSW1hZ2U6IEZpbGVJbWFnZSwKICAgIEZpbGVJbnB1dDogRmlsZUlucHV0LAogICAgRmlsZUpzb246IEZpbGVCcmFjZXMsCiAgICBGaWxlSnNvbjI6IEZpbGVCcmFjZXNDb3JuZXIsCiAgICBGaWxlS2V5OiBGaWxlS2V5LAogICAgRmlsZUtleTI6IEZpbGVLZXksCiAgICBGaWxlTGluZUNoYXJ0OiBGaWxlQ2hhcnRMaW5lLAogICAgRmlsZUxvY2s6IEZpbGVMb2NrLAogICAgRmlsZUxvY2syOiBGaWxlTG9jaywKICAgIEZpbGVNaW51czogRmlsZU1pbnVzLAogICAgRmlsZU1pbnVzMjogRmlsZU1pbnVzQ29ybmVyLAogICAgRmlsZU1pbnVzQ29ybmVyOiBGaWxlTWludXNDb3JuZXIsCiAgICBGaWxlTXVzaWM6IEZpbGVNdXNpYywKICAgIEZpbGVPdXRwdXQ6IEZpbGVPdXRwdXQsCiAgICBGaWxlUGVuOiBGaWxlUGVuLAogICAgRmlsZVBlbkxpbmU6IEZpbGVQZW5MaW5lLAogICAgRmlsZVBpZUNoYXJ0OiBGaWxlQ2hhcnRQaWUsCiAgICBGaWxlUGxheTogRmlsZVBsYXksCiAgICBGaWxlUGx1czogRmlsZVBsdXMsCiAgICBGaWxlUGx1czI6IEZpbGVQbHVzQ29ybmVyLAogICAgRmlsZVBsdXNDb3JuZXI6IEZpbGVQbHVzQ29ybmVyLAogICAgRmlsZVF1ZXN0aW9uOiBGaWxlUXVlc3Rpb25NYXJrLAogICAgRmlsZVF1ZXN0aW9uTWFyazogRmlsZVF1ZXN0aW9uTWFyaywKICAgIEZpbGVTY2FuOiBGaWxlU2NhbiwKICAgIEZpbGVTZWFyY2g6IEZpbGVTZWFyY2gsCiAgICBGaWxlU2VhcmNoMjogRmlsZVNlYXJjaENvcm5lciwKICAgIEZpbGVTZWFyY2hDb3JuZXI6IEZpbGVTZWFyY2hDb3JuZXIsCiAgICBGaWxlU2lnbmFsOiBGaWxlU2lnbmFsLAogICAgRmlsZVNpZ25hdHVyZTogRmlsZVBlbkxpbmUsCiAgICBGaWxlU2xpZGVyczogRmlsZVNsaWRlcnMsCiAgICBGaWxlU3ByZWFkc2hlZXQ6IEZpbGVTcHJlYWRzaGVldCwKICAgIEZpbGVTdGFjazogRmlsZVN0YWNrLAogICAgRmlsZVN5bWxpbms6IEZpbGVTeW1saW5rLAogICAgRmlsZVRlcm1pbmFsOiBGaWxlVGVybWluYWwsCiAgICBGaWxlVGV4dDogRmlsZVRleHQsCiAgICBGaWxlVHlwZTogRmlsZVR5cGUsCiAgICBGaWxlVHlwZTI6IEZpbGVUeXBlQ29ybmVyLAogICAgRmlsZVR5cGVDb3JuZXI6IEZpbGVUeXBlQ29ybmVyLAogICAgRmlsZVVwOiBGaWxlVXAsCiAgICBGaWxlVXNlcjogRmlsZVVzZXIsCiAgICBGaWxlVmlkZW86IEZpbGVQbGF5LAogICAgRmlsZVZpZGVvMjogRmlsZVZpZGVvQ2FtZXJhLAogICAgRmlsZVZpZGVvQ2FtZXJhOiBGaWxlVmlkZW9DYW1lcmEsCiAgICBGaWxlVm9sdW1lOiBGaWxlVm9sdW1lLAogICAgRmlsZVZvbHVtZTI6IEZpbGVTaWduYWwsCiAgICBGaWxlV2FybmluZzogRmlsZUV4Y2xhbWF0aW9uUG9pbnQsCiAgICBGaWxlWDogRmlsZVgsCiAgICBGaWxlWDI6IEZpbGVYQ29ybmVyLAogICAgRmlsZVhDb3JuZXI6IEZpbGVYQ29ybmVyLAogICAgRmlsZXM6IEZpbGVzLAogICAgRmlsbTogRmlsbSwKICAgIEZpbHRlcjogRnVubmVsLAogICAgRmlsdGVyWDogRnVubmVsWCwKICAgIEZpbmdlcnByaW50OiBGaW5nZXJwcmludFBhdHRlcm4sCiAgICBGaW5nZXJwcmludFBhdHRlcm46IEZpbmdlcnByaW50UGF0dGVybiwKICAgIEZpcmVFeHRpbmd1aXNoZXI6IEZpcmVFeHRpbmd1aXNoZXIsCiAgICBGaXNoOiBGaXNoLAogICAgRmlzaE9mZjogRmlzaE9mZiwKICAgIEZpc2hTeW1ib2w6IEZpc2hTeW1ib2wsCiAgICBGaXNoaW5nSG9vazogRmlzaGluZ0hvb2ssCiAgICBGaXNoaW5nUm9kOiBGaXNoaW5nUm9kLAogICAgRmxhZzogRmxhZywKICAgIEZsYWdPZmY6IEZsYWdPZmYsCiAgICBGbGFnVHJpYW5nbGVMZWZ0OiBGbGFnVHJpYW5nbGVMZWZ0LAogICAgRmxhZ1RyaWFuZ2xlUmlnaHQ6IEZsYWdUcmlhbmdsZVJpZ2h0LAogICAgRmxhbWU6IEZsYW1lLAogICAgRmxhbWVLaW5kbGluZzogRmxhbWVLaW5kbGluZywKICAgIEZsYXNobGlnaHQ6IEZsYXNobGlnaHQsCiAgICBGbGFzaGxpZ2h0T2ZmOiBGbGFzaGxpZ2h0T2ZmLAogICAgRmxhc2tDb25pY2FsOiBGbGFza0NvbmljYWwsCiAgICBGbGFza0NvbmljYWxPZmY6IEZsYXNrQ29uaWNhbE9mZiwKICAgIEZsYXNrUm91bmQ6IEZsYXNrUm91bmQsCiAgICBGbGlwSG9yaXpvbnRhbDogU3F1YXJlQ2VudGVybGluZURhc2hlZEhvcml6b250YWwsCiAgICBGbGlwSG9yaXpvbnRhbDI6IEZsaXBIb3Jpem9udGFsMiwKICAgIEZsaXBWZXJ0aWNhbDogU3F1YXJlQ2VudGVybGluZURhc2hlZFZlcnRpY2FsLAogICAgRmxpcFZlcnRpY2FsMjogRmxpcFZlcnRpY2FsMiwKICAgIEZsb3dlcjogRmxvd2VyLAogICAgRmxvd2VyMjogRmxvd2VyMiwKICAgIEZvY3VzOiBGb2N1cywKICAgIEZvbGRIb3Jpem9udGFsOiBGb2xkSG9yaXpvbnRhbCwKICAgIEZvbGRWZXJ0aWNhbDogRm9sZFZlcnRpY2FsLAogICAgRm9sZGVyOiBGb2xkZXIsCiAgICBGb2xkZXJBcmNoaXZlOiBGb2xkZXJBcmNoaXZlLAogICAgRm9sZGVyQm9va21hcms6IEZvbGRlckJvb2ttYXJrLAogICAgRm9sZGVyQ2hlY2s6IEZvbGRlckNoZWNrLAogICAgRm9sZGVyQ2xvY2s6IEZvbGRlckNsb2NrLAogICAgRm9sZGVyQ2xvc2VkOiBGb2xkZXJDbG9zZWQsCiAgICBGb2xkZXJDb2RlOiBGb2xkZXJDb2RlLAogICAgRm9sZGVyQ29nOiBGb2xkZXJDb2csCiAgICBGb2xkZXJDb2cyOiBGb2xkZXJDb2csCiAgICBGb2xkZXJEb3Q6IEZvbGRlckRvdCwKICAgIEZvbGRlckRvd246IEZvbGRlckRvd24sCiAgICBGb2xkZXJFZGl0OiBGb2xkZXJQZW4sCiAgICBGb2xkZXJHaXQ6IEZvbGRlckdpdCwKICAgIEZvbGRlckdpdDI6IEZvbGRlckdpdDIsCiAgICBGb2xkZXJIZWFydDogRm9sZGVySGVhcnQsCiAgICBGb2xkZXJJbnB1dDogRm9sZGVySW5wdXQsCiAgICBGb2xkZXJLYW5iYW46IEZvbGRlckthbmJhbiwKICAgIEZvbGRlcktleTogRm9sZGVyS2V5LAogICAgRm9sZGVyTG9jazogRm9sZGVyTG9jaywKICAgIEZvbGRlck1pbnVzOiBGb2xkZXJNaW51cywKICAgIEZvbGRlck9wZW46IEZvbGRlck9wZW4sCiAgICBGb2xkZXJPcGVuRG90OiBGb2xkZXJPcGVuRG90LAogICAgRm9sZGVyT3V0cHV0OiBGb2xkZXJPdXRwdXQsCiAgICBGb2xkZXJQZW46IEZvbGRlclBlbiwKICAgIEZvbGRlclBsdXM6IEZvbGRlclBsdXMsCiAgICBGb2xkZXJSb290OiBGb2xkZXJSb290LAogICAgRm9sZGVyU2VhcmNoOiBGb2xkZXJTZWFyY2gsCiAgICBGb2xkZXJTZWFyY2gyOiBGb2xkZXJTZWFyY2gyLAogICAgRm9sZGVyU3ltbGluazogRm9sZGVyU3ltbGluaywKICAgIEZvbGRlclN5bmM6IEZvbGRlclN5bmMsCiAgICBGb2xkZXJUcmVlOiBGb2xkZXJUcmVlLAogICAgRm9sZGVyVXA6IEZvbGRlclVwLAogICAgRm9sZGVyWDogRm9sZGVyWCwKICAgIEZvbGRlcnM6IEZvbGRlcnMsCiAgICBGb290cHJpbnRzOiBGb290cHJpbnRzLAogICAgRm9ya0tuaWZlOiBVdGVuc2lscywKICAgIEZvcmtLbmlmZUNyb3NzZWQ6IFV0ZW5zaWxzQ3Jvc3NlZCwKICAgIEZvcmtsaWZ0OiBGb3JrbGlmdCwKICAgIEZvcm06IEZvcm0sCiAgICBGb3JtSW5wdXQ6IFJlY3RhbmdsZUVsbGlwc2lzLAogICAgRm9yd2FyZDogRm9yd2FyZCwKICAgIEZyYW1lOiBGcmFtZSwKICAgIEZyb3duOiBGcm93biwKICAgIEZ1ZWw6IEZ1ZWwsCiAgICBGdWxsc2NyZWVuOiBGdWxsc2NyZWVuLAogICAgRnVuY3Rpb25TcXVhcmU6IFNxdWFyZUZ1bmN0aW9uLAogICAgRnVubmVsOiBGdW5uZWwsCiAgICBGdW5uZWxQbHVzOiBGdW5uZWxQbHVzLAogICAgRnVubmVsWDogRnVubmVsWCwKICAgIEdhbGxlcnlIb3Jpem9udGFsOiBHYWxsZXJ5SG9yaXpvbnRhbCwKICAgIEdhbGxlcnlIb3Jpem9udGFsRW5kOiBHYWxsZXJ5SG9yaXpvbnRhbEVuZCwKICAgIEdhbGxlcnlUaHVtYm5haWxzOiBHYWxsZXJ5VGh1bWJuYWlscywKICAgIEdhbGxlcnlWZXJ0aWNhbDogR2FsbGVyeVZlcnRpY2FsLAogICAgR2FsbGVyeVZlcnRpY2FsRW5kOiBHYWxsZXJ5VmVydGljYWxFbmQsCiAgICBHYW1lcGFkOiBHYW1lcGFkLAogICAgR2FtZXBhZDI6IEdhbWVwYWQyLAogICAgR2FtZXBhZERpcmVjdGlvbmFsOiBHYW1lcGFkRGlyZWN0aW9uYWwsCiAgICBHYW50dENoYXJ0OiBDaGFydE5vQXhlc0dhbnR0LAogICAgR2FudHRDaGFydFNxdWFyZTogU3F1YXJlQ2hhcnRHYW50dCwKICAgIEdhdWdlOiBHYXVnZSwKICAgIEdhdWdlQ2lyY2xlOiBDaXJjbGVHYXVnZSwKICAgIEdhdmVsOiBHYXZlbCwKICAgIEdlbTogR2VtLAogICAgR2VvcmdpYW5MYXJpOiBHZW9yZ2lhbkxhcmksCiAgICBHaG9zdDogR2hvc3QsCiAgICBHaWZ0OiBHaWZ0LAogICAgR2l0QnJhbmNoOiBHaXRCcmFuY2gsCiAgICBHaXRCcmFuY2hNaW51czogR2l0QnJhbmNoTWludXMsCiAgICBHaXRCcmFuY2hQbHVzOiBHaXRCcmFuY2hQbHVzLAogICAgR2l0Q29tbWl0OiBHaXRDb21taXRIb3Jpem9udGFsLAogICAgR2l0Q29tbWl0SG9yaXpvbnRhbDogR2l0Q29tbWl0SG9yaXpvbnRhbCwKICAgIEdpdENvbW1pdFZlcnRpY2FsOiBHaXRDb21taXRWZXJ0aWNhbCwKICAgIEdpdENvbXBhcmU6IEdpdENvbXBhcmUsCiAgICBHaXRDb21wYXJlQXJyb3dzOiBHaXRDb21wYXJlQXJyb3dzLAogICAgR2l0Rm9yazogR2l0Rm9yaywKICAgIEdpdEdyYXBoOiBHaXRHcmFwaCwKICAgIEdpdE1lcmdlOiBHaXRNZXJnZSwKICAgIEdpdE1lcmdlQ29uZmxpY3Q6IEdpdE1lcmdlQ29uZmxpY3QsCiAgICBHaXRQdWxsUmVxdWVzdDogR2l0UHVsbFJlcXVlc3QsCiAgICBHaXRQdWxsUmVxdWVzdEFycm93OiBHaXRQdWxsUmVxdWVzdEFycm93LAogICAgR2l0UHVsbFJlcXVlc3RDbG9zZWQ6IEdpdFB1bGxSZXF1ZXN0Q2xvc2VkLAogICAgR2l0UHVsbFJlcXVlc3RDcmVhdGU6IEdpdFB1bGxSZXF1ZXN0Q3JlYXRlLAogICAgR2l0UHVsbFJlcXVlc3RDcmVhdGVBcnJvdzogR2l0UHVsbFJlcXVlc3RDcmVhdGVBcnJvdywKICAgIEdpdFB1bGxSZXF1ZXN0RHJhZnQ6IEdpdFB1bGxSZXF1ZXN0RHJhZnQsCiAgICBHbGFzc1dhdGVyOiBHbGFzc1dhdGVyLAogICAgR2xhc3NlczogR2xhc3NlcywKICAgIEdsb2JlOiBHbG9iZSwKICAgIEdsb2JlMjogRWFydGgsCiAgICBHbG9iZUNoZWNrOiBHbG9iZUNoZWNrLAogICAgR2xvYmVMb2NrOiBHbG9iZUxvY2ssCiAgICBHbG9iZU9mZjogR2xvYmVPZmYsCiAgICBHbG9iZVg6IEdsb2JlWCwKICAgIEdvYWw6IEdvYWwsCiAgICBHcHU6IEdwdSwKICAgIEdyYWI6IEhhbmRHcmFiLAogICAgR3JhZHVhdGlvbkNhcDogR3JhZHVhdGlvbkNhcCwKICAgIEdyYXBlOiBHcmFwZSwKICAgIEdyaWQ6IEdyaWQzeDMsCiAgICBHcmlkMlgyOiBHcmlkMngyLAogICAgR3JpZDJYMkNoZWNrOiBHcmlkMngyQ2hlY2ssCiAgICBHcmlkMlgyUGx1czogR3JpZDJ4MlBsdXMsCiAgICBHcmlkMlgyWDogR3JpZDJ4MlgsCiAgICBHcmlkMngyOiBHcmlkMngyLAogICAgR3JpZDJ4MkNoZWNrOiBHcmlkMngyQ2hlY2ssCiAgICBHcmlkMngyUGx1czogR3JpZDJ4MlBsdXMsCiAgICBHcmlkMngyWDogR3JpZDJ4MlgsCiAgICBHcmlkM1gzOiBHcmlkM3gzLAogICAgR3JpZDN4MjogR3JpZDN4MiwKICAgIEdyaWQzeDM6IEdyaWQzeDMsCiAgICBHcmlwOiBHcmlwLAogICAgR3JpcEhvcml6b250YWw6IEdyaXBIb3Jpem9udGFsLAogICAgR3JpcFZlcnRpY2FsOiBHcmlwVmVydGljYWwsCiAgICBHcm91cDogR3JvdXAsCiAgICBHdWl0YXI6IEd1aXRhciwKICAgIEhhbTogSGFtLAogICAgSGFtYnVyZ2VyOiBIYW1idXJnZXIsCiAgICBIYW1tZXI6IEhhbW1lciwKICAgIEhhbmQ6IEhhbmQsCiAgICBIYW5kQ29pbnM6IEhhbmRDb2lucywKICAgIEhhbmRGaXN0OiBIYW5kRmlzdCwKICAgIEhhbmRHcmFiOiBIYW5kR3JhYiwKICAgIEhhbmRIZWFydDogSGFuZEhlYXJ0LAogICAgSGFuZEhlbHBpbmc6IEhhbmRIZWxwaW5nLAogICAgSGFuZE1ldGFsOiBIYW5kTWV0YWwsCiAgICBIYW5kUGxhdHRlcjogSGFuZFBsYXR0ZXIsCiAgICBIYW5kYmFnOiBIYW5kYmFnLAogICAgSGFuZHNoYWtlOiBIYW5kc2hha2UsCiAgICBIYXJkRHJpdmU6IEhhcmREcml2ZSwKICAgIEhhcmREcml2ZURvd25sb2FkOiBIYXJkRHJpdmVEb3dubG9hZCwKICAgIEhhcmREcml2ZVVwbG9hZDogSGFyZERyaXZlVXBsb2FkLAogICAgSGFyZEhhdDogSGFyZEhhdCwKICAgIEhhc2g6IEhhc2gsCiAgICBIYXRHbGFzc2VzOiBIYXRHbGFzc2VzLAogICAgSGF6ZTogSGF6ZSwKICAgIEhkOiBIZCwKICAgIEhkbWlQb3J0OiBIZG1pUG9ydCwKICAgIEhlYWRpbmc6IEhlYWRpbmcsCiAgICBIZWFkaW5nMTogSGVhZGluZzEsCiAgICBIZWFkaW5nMjogSGVhZGluZzIsCiAgICBIZWFkaW5nMzogSGVhZGluZzMsCiAgICBIZWFkaW5nNDogSGVhZGluZzQsCiAgICBIZWFkaW5nNTogSGVhZGluZzUsCiAgICBIZWFkaW5nNjogSGVhZGluZzYsCiAgICBIZWFkcGhvbmVPZmY6IEhlYWRwaG9uZU9mZiwKICAgIEhlYWRwaG9uZXM6IEhlYWRwaG9uZXMsCiAgICBIZWFkc2V0OiBIZWFkc2V0LAogICAgSGVhcnQ6IEhlYXJ0LAogICAgSGVhcnRDcmFjazogSGVhcnRDcmFjaywKICAgIEhlYXJ0SGFuZHNoYWtlOiBIZWFydEhhbmRzaGFrZSwKICAgIEhlYXJ0TWludXM6IEhlYXJ0TWludXMsCiAgICBIZWFydE9mZjogSGVhcnRPZmYsCiAgICBIZWFydFBsdXM6IEhlYXJ0UGx1cywKICAgIEhlYXJ0UHVsc2U6IEhlYXJ0UHVsc2UsCiAgICBIZWFydFg6IEhlYXJ0WCwKICAgIEhlYXRlcjogSGVhdGVyLAogICAgSGVsaWNvcHRlcjogSGVsaWNvcHRlciwKICAgIEhlbHBDaXJjbGU6IENpcmNsZVF1ZXN0aW9uTWFyaywKICAgIEhlbHBpbmdIYW5kOiBIYW5kSGVscGluZywKICAgIEhleGFnb246IEhleGFnb24sCiAgICBIaWdobGlnaHRlcjogSGlnaGxpZ2h0ZXIsCiAgICBIaXN0b3J5OiBSb3RhdGVDY3dDbG9jaywKICAgIEhvbWU6IEhvdXNlLAogICAgSG9wOiBIb3AsCiAgICBIb3BPZmY6IEhvcE9mZiwKICAgIEhvc3BpdGFsOiBIb3NwaXRhbCwKICAgIEhvdGVsOiBIb3RlbCwKICAgIEhvdXJnbGFzczogSG91cmdsYXNzLAogICAgSG91c2U6IEhvdXNlLAogICAgSG91c2VIZWFydDogSG91c2VIZWFydCwKICAgIEhvdXNlUGx1ZzogSG91c2VQbHVnLAogICAgSG91c2VQbHVzOiBIb3VzZVBsdXMsCiAgICBIb3VzZVdpZmk6IEhvdXNlV2lmaSwKICAgIEljZUNyZWFtOiBJY2VDcmVhbUNvbmUsCiAgICBJY2VDcmVhbTI6IEljZUNyZWFtQm93bCwKICAgIEljZUNyZWFtQm93bDogSWNlQ3JlYW1Cb3dsLAogICAgSWNlQ3JlYW1Db25lOiBJY2VDcmVhbUNvbmUsCiAgICBJZENhcmQ6IElkQ2FyZCwKICAgIElkQ2FyZExhbnlhcmQ6IElkQ2FyZExhbnlhcmQsCiAgICBJbWFnZTogSW1hZ2UsCiAgICBJbWFnZURvd246IEltYWdlRG93biwKICAgIEltYWdlTWludXM6IEltYWdlTWludXMsCiAgICBJbWFnZU9mZjogSW1hZ2VPZmYsCiAgICBJbWFnZVBsYXk6IEltYWdlUGxheSwKICAgIEltYWdlUGx1czogSW1hZ2VQbHVzLAogICAgSW1hZ2VVcDogSW1hZ2VVcCwKICAgIEltYWdlVXBzY2FsZTogSW1hZ2VVcHNjYWxlLAogICAgSW1hZ2VzOiBJbWFnZXMsCiAgICBJbXBvcnQ6IEltcG9ydCwKICAgIEluYm94OiBJbmJveCwKICAgIEluZGVudDogTGlzdEluZGVudEluY3JlYXNlLAogICAgSW5kZW50RGVjcmVhc2U6IExpc3RJbmRlbnREZWNyZWFzZSwKICAgIEluZGVudEluY3JlYXNlOiBMaXN0SW5kZW50SW5jcmVhc2UsCiAgICBJbmRpYW5SdXBlZTogSW5kaWFuUnVwZWUsCiAgICBJbmZpbml0eTogSW5maW5pdHksCiAgICBJbmZvOiBJbmZvLAogICAgSW5zcGVjdDogU3F1YXJlTW91c2VQb2ludGVyLAogICAgSW5zcGVjdGlvblBhbmVsOiBJbnNwZWN0aW9uUGFuZWwsCiAgICBJdGFsaWM6IEl0YWxpYywKICAgIEl0ZXJhdGlvbkNjdzogSXRlcmF0aW9uQ2N3LAogICAgSXRlcmF0aW9uQ3c6IEl0ZXJhdGlvbkN3LAogICAgSmFwYW5lc2VZZW46IEphcGFuZXNlWWVuLAogICAgSm95c3RpY2s6IEpveXN0aWNrLAogICAgS2FuYmFuOiBLYW5iYW4sCiAgICBLYW5iYW5TcXVhcmU6IFNxdWFyZUthbmJhbiwKICAgIEthbmJhblNxdWFyZURhc2hlZDogU3F1YXJlRGFzaGVkS2FuYmFuLAogICAgS2F5YWs6IEtheWFrLAogICAgS2V5OiBLZXksCiAgICBLZXlSb3VuZDogS2V5Um91bmQsCiAgICBLZXlTcXVhcmU6IEtleVNxdWFyZSwKICAgIEtleWJvYXJkOiBLZXlib2FyZCwKICAgIEtleWJvYXJkTXVzaWM6IEtleWJvYXJkTXVzaWMsCiAgICBLZXlib2FyZE9mZjogS2V5Ym9hcmRPZmYsCiAgICBMYW1wOiBMYW1wLAogICAgTGFtcENlaWxpbmc6IExhbXBDZWlsaW5nLAogICAgTGFtcERlc2s6IExhbXBEZXNrLAogICAgTGFtcEZsb29yOiBMYW1wRmxvb3IsCiAgICBMYW1wV2FsbERvd246IExhbXBXYWxsRG93biwKICAgIExhbXBXYWxsVXA6IExhbXBXYWxsVXAsCiAgICBMYW5kUGxvdDogTGFuZFBsb3QsCiAgICBMYW5kbWFyazogTGFuZG1hcmssCiAgICBMYW5ndWFnZXM6IExhbmd1YWdlcywKICAgIExhcHRvcDogTGFwdG9wLAogICAgTGFwdG9wMjogTGFwdG9wTWluaW1hbCwKICAgIExhcHRvcE1pbmltYWw6IExhcHRvcE1pbmltYWwsCiAgICBMYXB0b3BNaW5pbWFsQ2hlY2s6IExhcHRvcE1pbmltYWxDaGVjaywKICAgIExhc3NvOiBMYXNzbywKICAgIExhc3NvU2VsZWN0OiBMYXNzb1NlbGVjdCwKICAgIExhdWdoOiBMYXVnaCwKICAgIExheWVyczogTGF5ZXJzLAogICAgTGF5ZXJzMjogTGF5ZXJzMiwKICAgIExheWVyczM6IExheWVycywKICAgIExheWVyc01pbnVzOiBMYXllcnNNaW51cywKICAgIExheWVyc1BsdXM6IExheWVyc1BsdXMsCiAgICBMYXlvdXQ6IFBhbmVsc1RvcExlZnQsCiAgICBMYXlvdXREYXNoYm9hcmQ6IExheW91dERhc2hib2FyZCwKICAgIExheW91dEZyZWVmb3JtOiBMYXlvdXRGcmVlZm9ybSwKICAgIExheW91dEdyaWQ6IExheW91dEdyaWQsCiAgICBMYXlvdXRMaXN0OiBMYXlvdXRMaXN0LAogICAgTGF5b3V0UGFuZWxMZWZ0OiBMYXlvdXRQYW5lbExlZnQsCiAgICBMYXlvdXRQYW5lbFRvcDogTGF5b3V0UGFuZWxUb3AsCiAgICBMYXlvdXRUZW1wbGF0ZTogTGF5b3V0VGVtcGxhdGUsCiAgICBMZWFmOiBMZWFmLAogICAgTGVhZnlHcmVlbjogTGVhZnlHcmVlbiwKICAgIExlY3Rlcm46IExlY3Rlcm4sCiAgICBMZW5zQ29uY2F2ZTogTGVuc0NvbmNhdmUsCiAgICBMZW5zQ29udmV4OiBMZW5zQ29udmV4LAogICAgTGV0dGVyVGV4dDogVGV4dEluaXRpYWwsCiAgICBMaWJyYXJ5OiBMaWJyYXJ5LAogICAgTGlicmFyeUJpZzogTGlicmFyeUJpZywKICAgIExpYnJhcnlTcXVhcmU6IFNxdWFyZUxpYnJhcnksCiAgICBMaWZlQnVveTogTGlmZUJ1b3ksCiAgICBMaWdhdHVyZTogTGlnYXR1cmUsCiAgICBMaWdodGJ1bGI6IExpZ2h0YnVsYiwKICAgIExpZ2h0YnVsYk9mZjogTGlnaHRidWxiT2ZmLAogICAgTGluZUNoYXJ0OiBDaGFydExpbmUsCiAgICBMaW5lRG90UmlnaHRIb3Jpem9udGFsOiBMaW5lRG90UmlnaHRIb3Jpem9udGFsLAogICAgTGluZVNxdWlnZ2xlOiBMaW5lU3F1aWdnbGUsCiAgICBMaW5lU3R5bGU6IExpbmVTdHlsZSwKICAgIExpbms6IExpbmssCiAgICBMaW5rMjogTGluazIsCiAgICBMaW5rMk9mZjogTGluazJPZmYsCiAgICBMaXN0OiBMaXN0LAogICAgTGlzdENoZWNrOiBMaXN0Q2hlY2ssCiAgICBMaXN0Q2hlY2tzOiBMaXN0Q2hlY2tzLAogICAgTGlzdENoZXZyb25zRG93blVwOiBMaXN0Q2hldnJvbnNEb3duVXAsCiAgICBMaXN0Q2hldnJvbnNVcERvd246IExpc3RDaGV2cm9uc1VwRG93biwKICAgIExpc3RDb2xsYXBzZTogTGlzdENvbGxhcHNlLAogICAgTGlzdEVuZDogTGlzdEVuZCwKICAgIExpc3RGaWx0ZXI6IExpc3RGaWx0ZXIsCiAgICBMaXN0RmlsdGVyUGx1czogTGlzdEZpbHRlclBsdXMsCiAgICBMaXN0SW5kZW50RGVjcmVhc2U6IExpc3RJbmRlbnREZWNyZWFzZSwKICAgIExpc3RJbmRlbnRJbmNyZWFzZTogTGlzdEluZGVudEluY3JlYXNlLAogICAgTGlzdE1pbnVzOiBMaXN0TWludXMsCiAgICBMaXN0TXVzaWM6IExpc3RNdXNpYywKICAgIExpc3RPcmRlcmVkOiBMaXN0T3JkZXJlZCwKICAgIExpc3RQbHVzOiBMaXN0UGx1cywKICAgIExpc3RSZXN0YXJ0OiBMaXN0UmVzdGFydCwKICAgIExpc3RTb3J0QXNjZW5kaW5nOiBMaXN0U29ydEFzY2VuZGluZywKICAgIExpc3RTb3J0RGVzY2VuZGluZzogTGlzdFNvcnREZXNjZW5kaW5nLAogICAgTGlzdFN0YXJ0OiBMaXN0U3RhcnQsCiAgICBMaXN0VG9kbzogTGlzdFRvZG8sCiAgICBMaXN0VHJlZTogTGlzdFRyZWUsCiAgICBMaXN0VmlkZW86IExpc3RWaWRlbywKICAgIExpc3RYOiBMaXN0WCwKICAgIExvYWRlcjogTG9hZGVyLAogICAgTG9hZGVyMjogTG9hZGVyQ2lyY2xlLAogICAgTG9hZGVyQ2lyY2xlOiBMb2FkZXJDaXJjbGUsCiAgICBMb2FkZXJQaW53aGVlbDogTG9hZGVyUGlud2hlZWwsCiAgICBMb2NhdGU6IExvY2F0ZSwKICAgIExvY2F0ZUZpeGVkOiBMb2NhdGVGaXhlZCwKICAgIExvY2F0ZU9mZjogTG9jYXRlT2ZmLAogICAgTG9jYXRpb25FZGl0OiBNYXBQaW5QZW4sCiAgICBMb2NrOiBMb2NrLAogICAgTG9ja0tleWhvbGU6IExvY2tLZXlob2xlLAogICAgTG9ja0tleWhvbGVPcGVuOiBMb2NrS2V5aG9sZU9wZW4sCiAgICBMb2NrT3BlbjogTG9ja09wZW4sCiAgICBMb2dJbjogTG9nSW4sCiAgICBMb2dPdXQ6IExvZ091dCwKICAgIExvZ3M6IExvZ3MsCiAgICBMb2xsaXBvcDogTG9sbGlwb3AsCiAgICBMdWdnYWdlOiBMdWdnYWdlLAogICAgTVNxdWFyZTogU3F1YXJlTSwKICAgIE1hZ25ldDogTWFnbmV0LAogICAgTWFpbDogTWFpbCwKICAgIE1haWxDaGVjazogTWFpbENoZWNrLAogICAgTWFpbE1pbnVzOiBNYWlsTWludXMsCiAgICBNYWlsT3BlbjogTWFpbE9wZW4sCiAgICBNYWlsUGx1czogTWFpbFBsdXMsCiAgICBNYWlsUXVlc3Rpb246IE1haWxRdWVzdGlvbk1hcmssCiAgICBNYWlsUXVlc3Rpb25NYXJrOiBNYWlsUXVlc3Rpb25NYXJrLAogICAgTWFpbFNlYXJjaDogTWFpbFNlYXJjaCwKICAgIE1haWxXYXJuaW5nOiBNYWlsV2FybmluZywKICAgIE1haWxYOiBNYWlsWCwKICAgIE1haWxib3g6IE1haWxib3gsCiAgICBNYWlsczogTWFpbHMsCiAgICBNYXA6IE1hcCwKICAgIE1hcE1pbnVzOiBNYXBNaW51cywKICAgIE1hcFBpbjogTWFwUGluLAogICAgTWFwUGluQ2hlY2s6IE1hcFBpbkNoZWNrLAogICAgTWFwUGluQ2hlY2tJbnNpZGU6IE1hcFBpbkNoZWNrSW5zaWRlLAogICAgTWFwUGluSG91c2U6IE1hcFBpbkhvdXNlLAogICAgTWFwUGluTWludXM6IE1hcFBpbk1pbnVzLAogICAgTWFwUGluTWludXNJbnNpZGU6IE1hcFBpbk1pbnVzSW5zaWRlLAogICAgTWFwUGluT2ZmOiBNYXBQaW5PZmYsCiAgICBNYXBQaW5QZW46IE1hcFBpblBlbiwKICAgIE1hcFBpblBsdXM6IE1hcFBpblBsdXMsCiAgICBNYXBQaW5QbHVzSW5zaWRlOiBNYXBQaW5QbHVzSW5zaWRlLAogICAgTWFwUGluU2VhcmNoOiBNYXBQaW5TZWFyY2gsCiAgICBNYXBQaW5YOiBNYXBQaW5YLAogICAgTWFwUGluWEluc2lkZTogTWFwUGluWEluc2lkZSwKICAgIE1hcFBpbm5lZDogTWFwUGlubmVkLAogICAgTWFwUGx1czogTWFwUGx1cywKICAgIE1hcnM6IE1hcnMsCiAgICBNYXJzU3Ryb2tlOiBNYXJzU3Ryb2tlLAogICAgTWFydGluaTogTWFydGluaSwKICAgIE1heGltaXplOiBNYXhpbWl6ZSwKICAgIE1heGltaXplMjogTWF4aW1pemUyLAogICAgTWVkYWw6IE1lZGFsLAogICAgTWVnYXBob25lOiBNZWdhcGhvbmUsCiAgICBNZWdhcGhvbmVPZmY6IE1lZ2FwaG9uZU9mZiwKICAgIE1laDogTWVoLAogICAgTWVtb3J5U3RpY2s6IE1lbW9yeVN0aWNrLAogICAgTWVudTogTWVudSwKICAgIE1lbnVTcXVhcmU6IFNxdWFyZU1lbnUsCiAgICBNZXJnZTogTWVyZ2UsCiAgICBNZXNzYWdlQ2lyY2xlOiBNZXNzYWdlQ2lyY2xlLAogICAgTWVzc2FnZUNpcmNsZUNoZWNrOiBNZXNzYWdlQ2lyY2xlQ2hlY2ssCiAgICBNZXNzYWdlQ2lyY2xlQ29kZTogTWVzc2FnZUNpcmNsZUNvZGUsCiAgICBNZXNzYWdlQ2lyY2xlRGFzaGVkOiBNZXNzYWdlQ2lyY2xlRGFzaGVkLAogICAgTWVzc2FnZUNpcmNsZUhlYXJ0OiBNZXNzYWdlQ2lyY2xlSGVhcnQsCiAgICBNZXNzYWdlQ2lyY2xlTW9yZTogTWVzc2FnZUNpcmNsZU1vcmUsCiAgICBNZXNzYWdlQ2lyY2xlT2ZmOiBNZXNzYWdlQ2lyY2xlT2ZmLAogICAgTWVzc2FnZUNpcmNsZVBsdXM6IE1lc3NhZ2VDaXJjbGVQbHVzLAogICAgTWVzc2FnZUNpcmNsZVF1ZXN0aW9uOiBNZXNzYWdlQ2lyY2xlUXVlc3Rpb25NYXJrLAogICAgTWVzc2FnZUNpcmNsZVF1ZXN0aW9uTWFyazogTWVzc2FnZUNpcmNsZVF1ZXN0aW9uTWFyaywKICAgIE1lc3NhZ2VDaXJjbGVSZXBseTogTWVzc2FnZUNpcmNsZVJlcGx5LAogICAgTWVzc2FnZUNpcmNsZVdhcm5pbmc6IE1lc3NhZ2VDaXJjbGVXYXJuaW5nLAogICAgTWVzc2FnZUNpcmNsZVg6IE1lc3NhZ2VDaXJjbGVYLAogICAgTWVzc2FnZVNxdWFyZTogTWVzc2FnZVNxdWFyZSwKICAgIE1lc3NhZ2VTcXVhcmVDaGVjazogTWVzc2FnZVNxdWFyZUNoZWNrLAogICAgTWVzc2FnZVNxdWFyZUNvZGU6IE1lc3NhZ2VTcXVhcmVDb2RlLAogICAgTWVzc2FnZVNxdWFyZURhc2hlZDogTWVzc2FnZVNxdWFyZURhc2hlZCwKICAgIE1lc3NhZ2VTcXVhcmVEaWZmOiBNZXNzYWdlU3F1YXJlRGlmZiwKICAgIE1lc3NhZ2VTcXVhcmVEb3Q6IE1lc3NhZ2VTcXVhcmVEb3QsCiAgICBNZXNzYWdlU3F1YXJlSGVhcnQ6IE1lc3NhZ2VTcXVhcmVIZWFydCwKICAgIE1lc3NhZ2VTcXVhcmVMb2NrOiBNZXNzYWdlU3F1YXJlTG9jaywKICAgIE1lc3NhZ2VTcXVhcmVNb3JlOiBNZXNzYWdlU3F1YXJlTW9yZSwKICAgIE1lc3NhZ2VTcXVhcmVPZmY6IE1lc3NhZ2VTcXVhcmVPZmYsCiAgICBNZXNzYWdlU3F1YXJlUGx1czogTWVzc2FnZVNxdWFyZVBsdXMsCiAgICBNZXNzYWdlU3F1YXJlUXVvdGU6IE1lc3NhZ2VTcXVhcmVRdW90ZSwKICAgIE1lc3NhZ2VTcXVhcmVSZXBseTogTWVzc2FnZVNxdWFyZVJlcGx5LAogICAgTWVzc2FnZVNxdWFyZVNoYXJlOiBNZXNzYWdlU3F1YXJlU2hhcmUsCiAgICBNZXNzYWdlU3F1YXJlVGV4dDogTWVzc2FnZVNxdWFyZVRleHQsCiAgICBNZXNzYWdlU3F1YXJlV2FybmluZzogTWVzc2FnZVNxdWFyZVdhcm5pbmcsCiAgICBNZXNzYWdlU3F1YXJlWDogTWVzc2FnZVNxdWFyZVgsCiAgICBNZXNzYWdlc1NxdWFyZTogTWVzc2FnZXNTcXVhcmUsCiAgICBNZXRyb25vbWU6IE1ldHJvbm9tZSwKICAgIE1pYzogTWljLAogICAgTWljMjogTWljVm9jYWwsCiAgICBNaWNBdWRpb0xpbmVzOiBNaWNBdWRpb0xpbmVzLAogICAgTWljT2ZmOiBNaWNPZmYsCiAgICBNaWNTaWduYWw6IE1pY1NpZ25hbCwKICAgIE1pY1ZvY2FsOiBNaWNWb2NhbCwKICAgIE1pY3JvY2hpcDogTWljcm9jaGlwLAogICAgTWljcm9zY29wZTogTWljcm9zY29wZSwKICAgIE1pY3Jvd2F2ZTogTWljcm93YXZlLAogICAgTWlsZXN0b25lOiBNaWxlc3RvbmUsCiAgICBNaWxrOiBNaWxrLAogICAgTWlsa09mZjogTWlsa09mZiwKICAgIE1pbmltaXplOiBNaW5pbWl6ZSwKICAgIE1pbmltaXplMjogTWluaW1pemUyLAogICAgTWludXM6IE1pbnVzLAogICAgTWludXNDaXJjbGU6IENpcmNsZU1pbnVzLAogICAgTWludXNTcXVhcmU6IFNxdWFyZU1pbnVzLAogICAgTWlycm9yUmVjdGFuZ3VsYXI6IE1pcnJvclJlY3Rhbmd1bGFyLAogICAgTWlycm9yUm91bmQ6IE1pcnJvclJvdW5kLAogICAgTW9uaXRvcjogTW9uaXRvciwKICAgIE1vbml0b3JDaGVjazogTW9uaXRvckNoZWNrLAogICAgTW9uaXRvckNsb3VkOiBNb25pdG9yQ2xvdWQsCiAgICBNb25pdG9yQ29nOiBNb25pdG9yQ29nLAogICAgTW9uaXRvckRvdDogTW9uaXRvckRvdCwKICAgIE1vbml0b3JEb3duOiBNb25pdG9yRG93biwKICAgIE1vbml0b3JPZmY6IE1vbml0b3JPZmYsCiAgICBNb25pdG9yUGF1c2U6IE1vbml0b3JQYXVzZSwKICAgIE1vbml0b3JQbGF5OiBNb25pdG9yUGxheSwKICAgIE1vbml0b3JTbWFydHBob25lOiBNb25pdG9yU21hcnRwaG9uZSwKICAgIE1vbml0b3JTcGVha2VyOiBNb25pdG9yU3BlYWtlciwKICAgIE1vbml0b3JTdG9wOiBNb25pdG9yU3RvcCwKICAgIE1vbml0b3JVcDogTW9uaXRvclVwLAogICAgTW9uaXRvclg6IE1vbml0b3JYLAogICAgTW9vbjogTW9vbiwKICAgIE1vb25TdGFyOiBNb29uU3RhciwKICAgIE1vcmVIb3Jpem9udGFsOiBFbGxpcHNpcywKICAgIE1vcmVWZXJ0aWNhbDogRWxsaXBzaXNWZXJ0aWNhbCwKICAgIE1vc3F1ZTogTW9zcXVlLAogICAgTW90b3JiaWtlOiBNb3RvcmJpa2UsCiAgICBNb3VudGFpbjogTW91bnRhaW4sCiAgICBNb3VudGFpblNub3c6IE1vdW50YWluU25vdywKICAgIE1vdXNlOiBNb3VzZSwKICAgIE1vdXNlTGVmdDogTW91c2VMZWZ0LAogICAgTW91c2VPZmY6IE1vdXNlT2ZmLAogICAgTW91c2VQb2ludGVyOiBNb3VzZVBvaW50ZXIsCiAgICBNb3VzZVBvaW50ZXIyOiBNb3VzZVBvaW50ZXIyLAogICAgTW91c2VQb2ludGVyMk9mZjogTW91c2VQb2ludGVyMk9mZiwKICAgIE1vdXNlUG9pbnRlckJhbjogTW91c2VQb2ludGVyQmFuLAogICAgTW91c2VQb2ludGVyQ2xpY2s6IE1vdXNlUG9pbnRlckNsaWNrLAogICAgTW91c2VQb2ludGVyU3F1YXJlRGFzaGVkOiBTcXVhcmVEYXNoZWRNb3VzZVBvaW50ZXIsCiAgICBNb3VzZVJpZ2h0OiBNb3VzZVJpZ2h0LAogICAgTW92ZTogTW92ZSwKICAgIE1vdmUzRDogTW92ZTNkLAogICAgTW92ZTNkOiBNb3ZlM2QsCiAgICBNb3ZlRGlhZ29uYWw6IE1vdmVEaWFnb25hbCwKICAgIE1vdmVEaWFnb25hbDI6IE1vdmVEaWFnb25hbDIsCiAgICBNb3ZlRG93bjogTW92ZURvd24sCiAgICBNb3ZlRG93bkxlZnQ6IE1vdmVEb3duTGVmdCwKICAgIE1vdmVEb3duUmlnaHQ6IE1vdmVEb3duUmlnaHQsCiAgICBNb3ZlSG9yaXpvbnRhbDogTW92ZUhvcml6b250YWwsCiAgICBNb3ZlTGVmdDogTW92ZUxlZnQsCiAgICBNb3ZlUmlnaHQ6IE1vdmVSaWdodCwKICAgIE1vdmVVcDogTW92ZVVwLAogICAgTW92ZVVwTGVmdDogTW92ZVVwTGVmdCwKICAgIE1vdmVVcFJpZ2h0OiBNb3ZlVXBSaWdodCwKICAgIE1vdmVWZXJ0aWNhbDogTW92ZVZlcnRpY2FsLAogICAgTXVzaWM6IE11c2ljLAogICAgTXVzaWMyOiBNdXNpYzIsCiAgICBNdXNpYzM6IE11c2ljMywKICAgIE11c2ljNDogTXVzaWM0LAogICAgTmF2aWdhdGlvbjogTmF2aWdhdGlvbiwKICAgIE5hdmlnYXRpb24yOiBOYXZpZ2F0aW9uMiwKICAgIE5hdmlnYXRpb24yT2ZmOiBOYXZpZ2F0aW9uMk9mZiwKICAgIE5hdmlnYXRpb25PZmY6IE5hdmlnYXRpb25PZmYsCiAgICBOZXR3b3JrOiBOZXR3b3JrLAogICAgTmV3c3BhcGVyOiBOZXdzcGFwZXIsCiAgICBOZmM6IE5mYywKICAgIE5vbkJpbmFyeTogTm9uQmluYXJ5LAogICAgTm90ZWJvb2s6IE5vdGVib29rLAogICAgTm90ZWJvb2tQZW46IE5vdGVib29rUGVuLAogICAgTm90ZWJvb2tUYWJzOiBOb3RlYm9va1RhYnMsCiAgICBOb3RlYm9va1RleHQ6IE5vdGVib29rVGV4dCwKICAgIE5vdGVwYWRUZXh0OiBOb3RlcGFkVGV4dCwKICAgIE5vdGVwYWRUZXh0RGFzaGVkOiBOb3RlcGFkVGV4dERhc2hlZCwKICAgIE51dDogTnV0LAogICAgTnV0T2ZmOiBOdXRPZmYsCiAgICBPY3RhZ29uOiBPY3RhZ29uLAogICAgT2N0YWdvbkFsZXJ0OiBPY3RhZ29uQWxlcnQsCiAgICBPY3RhZ29uTWludXM6IE9jdGFnb25NaW51cywKICAgIE9jdGFnb25QYXVzZTogT2N0YWdvblBhdXNlLAogICAgT2N0YWdvblg6IE9jdGFnb25YLAogICAgT21lZ2E6IE9tZWdhLAogICAgT3B0aW9uOiBPcHRpb24sCiAgICBPcmJpdDogT3JiaXQsCiAgICBPcmlnYW1pOiBPcmlnYW1pLAogICAgT3V0ZGVudDogTGlzdEluZGVudERlY3JlYXNlLAogICAgUGFja2FnZTogUGFja2FnZSwKICAgIFBhY2thZ2UyOiBQYWNrYWdlMiwKICAgIFBhY2thZ2VDaGVjazogUGFja2FnZUNoZWNrLAogICAgUGFja2FnZU1pbnVzOiBQYWNrYWdlTWludXMsCiAgICBQYWNrYWdlT3BlbjogUGFja2FnZU9wZW4sCiAgICBQYWNrYWdlUGx1czogUGFja2FnZVBsdXMsCiAgICBQYWNrYWdlU2VhcmNoOiBQYWNrYWdlU2VhcmNoLAogICAgUGFja2FnZVg6IFBhY2thZ2VYLAogICAgUGFpbnRCdWNrZXQ6IFBhaW50QnVja2V0LAogICAgUGFpbnRSb2xsZXI6IFBhaW50Um9sbGVyLAogICAgUGFpbnRicnVzaDogUGFpbnRicnVzaCwKICAgIFBhaW50YnJ1c2gyOiBQYWludGJydXNoVmVydGljYWwsCiAgICBQYWludGJydXNoVmVydGljYWw6IFBhaW50YnJ1c2hWZXJ0aWNhbCwKICAgIFBhbGV0dGU6IFBhbGV0dGUsCiAgICBQYWxtdHJlZTogVHJlZVBhbG0sCiAgICBQYW5kYTogUGFuZGEsCiAgICBQYW5lbEJvdHRvbTogUGFuZWxCb3R0b20sCiAgICBQYW5lbEJvdHRvbUNsb3NlOiBQYW5lbEJvdHRvbUNsb3NlLAogICAgUGFuZWxCb3R0b21EYXNoZWQ6IFBhbmVsQm90dG9tRGFzaGVkLAogICAgUGFuZWxCb3R0b21JbmFjdGl2ZTogUGFuZWxCb3R0b21EYXNoZWQsCiAgICBQYW5lbEJvdHRvbU9wZW46IFBhbmVsQm90dG9tT3BlbiwKICAgIFBhbmVsTGVmdDogUGFuZWxMZWZ0LAogICAgUGFuZWxMZWZ0Q2xvc2U6IFBhbmVsTGVmdENsb3NlLAogICAgUGFuZWxMZWZ0RGFzaGVkOiBQYW5lbExlZnREYXNoZWQsCiAgICBQYW5lbExlZnRJbmFjdGl2ZTogUGFuZWxMZWZ0RGFzaGVkLAogICAgUGFuZWxMZWZ0T3BlbjogUGFuZWxMZWZ0T3BlbiwKICAgIFBhbmVsTGVmdFJpZ2h0RGFzaGVkOiBQYW5lbExlZnRSaWdodERhc2hlZCwKICAgIFBhbmVsUmlnaHQ6IFBhbmVsUmlnaHQsCiAgICBQYW5lbFJpZ2h0Q2xvc2U6IFBhbmVsUmlnaHRDbG9zZSwKICAgIFBhbmVsUmlnaHREYXNoZWQ6IFBhbmVsUmlnaHREYXNoZWQsCiAgICBQYW5lbFJpZ2h0SW5hY3RpdmU6IFBhbmVsUmlnaHREYXNoZWQsCiAgICBQYW5lbFJpZ2h0T3BlbjogUGFuZWxSaWdodE9wZW4sCiAgICBQYW5lbFRvcDogUGFuZWxUb3AsCiAgICBQYW5lbFRvcEJvdHRvbURhc2hlZDogUGFuZWxUb3BCb3R0b21EYXNoZWQsCiAgICBQYW5lbFRvcENsb3NlOiBQYW5lbFRvcENsb3NlLAogICAgUGFuZWxUb3BEYXNoZWQ6IFBhbmVsVG9wRGFzaGVkLAogICAgUGFuZWxUb3BJbmFjdGl2ZTogUGFuZWxUb3BEYXNoZWQsCiAgICBQYW5lbFRvcE9wZW46IFBhbmVsVG9wT3BlbiwKICAgIFBhbmVsc0xlZnRCb3R0b206IFBhbmVsc0xlZnRCb3R0b20sCiAgICBQYW5lbHNMZWZ0UmlnaHQ6IENvbHVtbnMzLAogICAgUGFuZWxzUmlnaHRCb3R0b206IFBhbmVsc1JpZ2h0Qm90dG9tLAogICAgUGFuZWxzVG9wQm90dG9tOiBSb3dzMywKICAgIFBhbmVsc1RvcExlZnQ6IFBhbmVsc1RvcExlZnQsCiAgICBQYXBlckJhZzogUGFwZXJCYWcsCiAgICBQYXBlcmNsaXA6IFBhcGVyY2xpcCwKICAgIFBhcmFzb2w6IFBhcmFzb2wsCiAgICBQYXJlbnRoZXNlczogUGFyZW50aGVzZXMsCiAgICBQYXJraW5nQ2lyY2xlOiBDaXJjbGVQYXJraW5nLAogICAgUGFya2luZ0NpcmNsZU9mZjogQ2lyY2xlUGFya2luZ09mZiwKICAgIFBhcmtpbmdNZXRlcjogUGFya2luZ01ldGVyLAogICAgUGFya2luZ1NxdWFyZTogU3F1YXJlUGFya2luZywKICAgIFBhcmtpbmdTcXVhcmVPZmY6IFNxdWFyZVBhcmtpbmdPZmYsCiAgICBQYXJ0eVBvcHBlcjogUGFydHlQb3BwZXIsCiAgICBQYXVzZTogUGF1c2UsCiAgICBQYXVzZUNpcmNsZTogQ2lyY2xlUGF1c2UsCiAgICBQYXVzZU9jdGFnb246IE9jdGFnb25QYXVzZSwKICAgIFBhd1ByaW50OiBQYXdQcmludCwKICAgIFBjQ2FzZTogUGNDYXNlLAogICAgUGVuOiBQZW4sCiAgICBQZW5Cb3g6IFNxdWFyZVBlbiwKICAgIFBlbkxpbmU6IFBlbkxpbmUsCiAgICBQZW5PZmY6IFBlbk9mZiwKICAgIFBlblNxdWFyZTogU3F1YXJlUGVuLAogICAgUGVuVG9vbDogUGVuVG9vbCwKICAgIFBlbmNpbDogUGVuY2lsLAogICAgUGVuY2lsTGluZTogUGVuY2lsTGluZSwKICAgIFBlbmNpbE9mZjogUGVuY2lsT2ZmLAogICAgUGVuY2lsUnVsZXI6IFBlbmNpbFJ1bGVyLAogICAgUGVuY2lsU3BhcmtsZXM6IFBlbmNpbFNwYXJrbGVzLAogICAgUGVudGFnb246IFBlbnRhZ29uLAogICAgUGVyY2VudDogUGVyY2VudCwKICAgIFBlcmNlbnRDaXJjbGU6IENpcmNsZVBlcmNlbnQsCiAgICBQZXJjZW50RGlhbW9uZDogRGlhbW9uZFBlcmNlbnQsCiAgICBQZXJjZW50U3F1YXJlOiBTcXVhcmVQZXJjZW50LAogICAgUGVyc29uU3RhbmRpbmc6IFBlcnNvblN0YW5kaW5nLAogICAgUGhpOiBQaGksCiAgICBQaGlsaXBwaW5lUGVzbzogUGhpbGlwcGluZVBlc28sCiAgICBQaG9uZTogUGhvbmUsCiAgICBQaG9uZUNhbGw6IFBob25lQ2FsbCwKICAgIFBob25lRm9yd2FyZGVkOiBQaG9uZUZvcndhcmRlZCwKICAgIFBob25lSW5jb21pbmc6IFBob25lSW5jb21pbmcsCiAgICBQaG9uZU1pc3NlZDogUGhvbmVNaXNzZWQsCiAgICBQaG9uZU9mZjogUGhvbmVPZmYsCiAgICBQaG9uZU91dGdvaW5nOiBQaG9uZU91dGdvaW5nLAogICAgUGk6IFBpLAogICAgUGlTcXVhcmU6IFNxdWFyZVBpLAogICAgUGlhbm86IFBpYW5vLAogICAgUGlja2F4ZTogUGlja2F4ZSwKICAgIFBpY3R1cmVJblBpY3R1cmU6IFBpY3R1cmVJblBpY3R1cmUsCiAgICBQaWN0dXJlSW5QaWN0dXJlMjogUGljdHVyZUluUGljdHVyZTIsCiAgICBQaWVDaGFydDogQ2hhcnRQaWUsCiAgICBQaWdneUJhbms6IFBpZ2d5QmFuaywKICAgIFBpbGNyb3c6IFBpbGNyb3csCiAgICBQaWxjcm93TGVmdDogUGlsY3Jvd0xlZnQsCiAgICBQaWxjcm93UmlnaHQ6IFBpbGNyb3dSaWdodCwKICAgIFBpbGNyb3dTcXVhcmU6IFNxdWFyZVBpbGNyb3csCiAgICBQaWxsOiBQaWxsLAogICAgUGlsbEJvdHRsZTogUGlsbEJvdHRsZSwKICAgIFBpbjogUGluLAogICAgUGluT2ZmOiBQaW5PZmYsCiAgICBQaXBldHRlOiBQaXBldHRlLAogICAgUGl6emE6IFBpenphLAogICAgUGxhbmU6IFBsYW5lLAogICAgUGxhbmVMYW5kaW5nOiBQbGFuZUxhbmRpbmcsCiAgICBQbGFuZVRha2VvZmY6IFBsYW5lVGFrZW9mZiwKICAgIFBsYXk6IFBsYXksCiAgICBQbGF5Q2lyY2xlOiBDaXJjbGVQbGF5LAogICAgUGxheU9mZjogUGxheU9mZiwKICAgIFBsYXlTcXVhcmU6IFNxdWFyZVBsYXksCiAgICBQbHVnOiBQbHVnLAogICAgUGx1ZzI6IFBsdWcyLAogICAgUGx1Z1phcDogUGx1Z1phcCwKICAgIFBsdWdaYXAyOiBQbHVnWmFwLAogICAgUGx1czogUGx1cywKICAgIFBsdXNDaXJjbGU6IENpcmNsZVBsdXMsCiAgICBQbHVzU3F1YXJlOiBTcXVhcmVQbHVzLAogICAgUG9ja2V0S25pZmU6IFBvY2tldEtuaWZlLAogICAgUG9kY2FzdDogTWljU2lnbmFsLAogICAgUG9kaXVtOiBQb2RpdW0sCiAgICBQb2ludGVyOiBQb2ludGVyLAogICAgUG9pbnRlck9mZjogUG9pbnRlck9mZiwKICAgIFBvcGNvcm46IFBvcGNvcm4sCiAgICBQb3BzaWNsZTogUG9wc2ljbGUsCiAgICBQb3VuZFN0ZXJsaW5nOiBQb3VuZFN0ZXJsaW5nLAogICAgUG93ZXI6IFBvd2VyLAogICAgUG93ZXJDaXJjbGU6IENpcmNsZVBvd2VyLAogICAgUG93ZXJPZmY6IFBvd2VyT2ZmLAogICAgUG93ZXJTcXVhcmU6IFNxdWFyZVBvd2VyLAogICAgUHJlc2VudGF0aW9uOiBQcmVzZW50YXRpb24sCiAgICBQcmludGVyOiBQcmludGVyLAogICAgUHJpbnRlckNoZWNrOiBQcmludGVyQ2hlY2ssCiAgICBQcmludGVyWDogUHJpbnRlclgsCiAgICBQcm9qZWN0b3I6IFByb2plY3RvciwKICAgIFByb3BvcnRpb25zOiBQcm9wb3J0aW9ucywKICAgIFB1enpsZTogUHV6emxlLAogICAgUHlyYW1pZDogUHlyYW1pZCwKICAgIFFyQ29kZTogUXJDb2RlLAogICAgUXVvdGU6IFF1b3RlLAogICAgUmFiYml0OiBSYWJiaXQsCiAgICBSYWRhcjogUmFkYXIsCiAgICBSYWRpYXRpb246IFJhZGlhdGlvbiwKICAgIFJhZGljYWw6IFJhZGljYWwsCiAgICBSYWRpbzogUmFkaW8sCiAgICBSYWRpb09mZjogUmFkaW9PZmYsCiAgICBSYWRpb1JlY2VpdmVyOiBSYWRpb1JlY2VpdmVyLAogICAgUmFkaW9Ub3dlcjogUmFkaW9Ub3dlciwKICAgIFJhZGl1czogUmFkaXVzLAogICAgUmFpbmJvdzogUmFpbmJvdywKICAgIFJhdDogUmF0LAogICAgUmF0aW86IFJhdGlvLAogICAgUmVjZWlwdDogUmVjZWlwdCwKICAgIFJlY2VpcHRDZW50OiBSZWNlaXB0Q2VudCwKICAgIFJlY2VpcHRFdXJvOiBSZWNlaXB0RXVybywKICAgIFJlY2VpcHRJbmRpYW5SdXBlZTogUmVjZWlwdEluZGlhblJ1cGVlLAogICAgUmVjZWlwdEphcGFuZXNlWWVuOiBSZWNlaXB0SmFwYW5lc2VZZW4sCiAgICBSZWNlaXB0UG91bmRTdGVybGluZzogUmVjZWlwdFBvdW5kU3RlcmxpbmcsCiAgICBSZWNlaXB0UnVzc2lhblJ1YmxlOiBSZWNlaXB0UnVzc2lhblJ1YmxlLAogICAgUmVjZWlwdFN3aXNzRnJhbmM6IFJlY2VpcHRTd2lzc0ZyYW5jLAogICAgUmVjZWlwdFRleHQ6IFJlY2VpcHRUZXh0LAogICAgUmVjZWlwdFR1cmtpc2hMaXJhOiBSZWNlaXB0VHVya2lzaExpcmEsCiAgICBSZWN0YW5nbGVDaXJjbGU6IFJlY3RhbmdsZUNpcmNsZSwKICAgIFJlY3RhbmdsZUVsbGlwc2lzOiBSZWN0YW5nbGVFbGxpcHNpcywKICAgIFJlY3RhbmdsZUdvZ2dsZXM6IFJlY3RhbmdsZUdvZ2dsZXMsCiAgICBSZWN0YW5nbGVIb3Jpem9udGFsOiBSZWN0YW5nbGVIb3Jpem9udGFsLAogICAgUmVjdGFuZ2xlVmVydGljYWw6IFJlY3RhbmdsZVZlcnRpY2FsLAogICAgUmVjeWNsZTogUmVjeWNsZSwKICAgIFJlZG86IFJlZG8sCiAgICBSZWRvMjogUmVkbzIsCiAgICBSZWRvRG90OiBSZWRvRG90LAogICAgUmVmcmVzaENjdzogUmVmcmVzaENjdywKICAgIFJlZnJlc2hDY3dEb3Q6IFJlZnJlc2hDY3dEb3QsCiAgICBSZWZyZXNoQ3c6IFJlZnJlc2hDdywKICAgIFJlZnJlc2hDd09mZjogUmVmcmVzaEN3T2ZmLAogICAgUmVmcmlnZXJhdG9yOiBSZWZyaWdlcmF0b3IsCiAgICBSZWdleDogUmVnZXgsCiAgICBSZW1vdmVGb3JtYXR0aW5nOiBSZW1vdmVGb3JtYXR0aW5nLAogICAgUmVwZWF0OiBSZXBlYXQsCiAgICBSZXBlYXQxOiBSZXBlYXQxLAogICAgUmVwZWF0MjogUmVwZWF0MiwKICAgIFJlcGVhdE9mZjogUmVwZWF0T2ZmLAogICAgUmVwbGFjZTogUmVwbGFjZSwKICAgIFJlcGxhY2VBbGw6IFJlcGxhY2VBbGwsCiAgICBSZXBseTogUmVwbHksCiAgICBSZXBseUFsbDogUmVwbHlBbGwsCiAgICBSZXdpbmQ6IFJld2luZCwKICAgIFJpYmJvbjogUmliYm9uLAogICAgUm9hZDogUm9hZCwKICAgIFJvY2tldDogUm9ja2V0LAogICAgUm9ja2luZ0NoYWlyOiBSb2NraW5nQ2hhaXIsCiAgICBSb2xsZXJDb2FzdGVyOiBSb2xsZXJDb2FzdGVyLAogICAgUm9zZTogUm9zZSwKICAgIFJvdGF0ZTNEOiBSb3RhdGUzZCwKICAgIFJvdGF0ZTNkOiBSb3RhdGUzZCwKICAgIFJvdGF0ZUNjdzogUm90YXRlQ2N3LAogICAgUm90YXRlQ2N3Q2xvY2s6IFJvdGF0ZUNjd0Nsb2NrLAogICAgUm90YXRlQ2N3S2V5OiBSb3RhdGVDY3dLZXksCiAgICBSb3RhdGVDY3dTcXVhcmU6IFJvdGF0ZUNjd1NxdWFyZSwKICAgIFJvdGF0ZUN3OiBSb3RhdGVDdywKICAgIFJvdGF0ZUN3RmFkaW5nQ2xvY2s6IFJvdGF0ZUN3RmFkaW5nQ2xvY2ssCiAgICBSb3RhdGVDd1NxdWFyZTogUm90YXRlQ3dTcXVhcmUsCiAgICBSb3V0ZTogUm91dGUsCiAgICBSb3V0ZU9mZjogUm91dGVPZmYsCiAgICBSb3V0ZXI6IFJvdXRlciwKICAgIFJvd3M6IFJvd3MyLAogICAgUm93czI6IFJvd3MyLAogICAgUm93czM6IFJvd3MzLAogICAgUm93czQ6IFJvd3M0LAogICAgUnNzOiBSc3MsCiAgICBSdWxlcjogUnVsZXIsCiAgICBSdWxlckRpbWVuc2lvbkxpbmU6IFJ1bGVyRGltZW5zaW9uTGluZSwKICAgIFJ1c3NpYW5SdWJsZTogUnVzc2lhblJ1YmxlLAogICAgU2FpbGJvYXQ6IFNhaWxib2F0LAogICAgU2FsYWQ6IFNhbGFkLAogICAgU2FuZHdpY2g6IFNhbmR3aWNoLAogICAgU2F0ZWxsaXRlOiBTYXRlbGxpdGUsCiAgICBTYXRlbGxpdGVEaXNoOiBTYXRlbGxpdGVEaXNoLAogICAgU2F1ZGlSaXlhbDogU2F1ZGlSaXlhbCwKICAgIFNhdmU6IFNhdmUsCiAgICBTYXZlQWxsOiBTYXZlQWxsLAogICAgU2F2ZUNoZWNrOiBTYXZlQ2hlY2ssCiAgICBTYXZlT2ZmOiBTYXZlT2ZmLAogICAgU2F2ZVBlbjogU2F2ZVBlbiwKICAgIFNhdmVQbHVzOiBTYXZlUGx1cywKICAgIFNjYWxlOiBTY2FsZSwKICAgIFNjYWxlM0Q6IFNjYWxlM2QsCiAgICBTY2FsZTNkOiBTY2FsZTNkLAogICAgU2NhbGluZzogU2NhbGluZywKICAgIFNjYW46IFNjYW4sCiAgICBTY2FuQmFyY29kZTogU2NhbkJhcmNvZGUsCiAgICBTY2FuQm94OiBTY2FuQm94LAogICAgU2NhbkV5ZTogU2NhbkV5ZSwKICAgIFNjYW5GYWNlOiBTY2FuRmFjZSwKICAgIFNjYW5IZWFydDogU2NhbkhlYXJ0LAogICAgU2NhbkxpbmU6IFNjYW5MaW5lLAogICAgU2NhblFyQ29kZTogU2NhblFyQ29kZSwKICAgIFNjYW5TZWFyY2g6IFNjYW5TZWFyY2gsCiAgICBTY2FuU3F1YXJlOiBTY2FuU3F1YXJlLAogICAgU2NhblRleHQ6IFNjYW5UZXh0LAogICAgU2NhdHRlckNoYXJ0OiBDaGFydFNjYXR0ZXIsCiAgICBTY2hvb2w6IFNjaG9vbCwKICAgIFNjaG9vbDI6IFVuaXZlcnNpdHksCiAgICBTY2lzc29yczogU2Npc3NvcnMsCiAgICBTY2lzc29yc0xpbmVEYXNoZWQ6IFNjaXNzb3JzTGluZURhc2hlZCwKICAgIFNjaXNzb3JzU3F1YXJlOiBTcXVhcmVTY2lzc29ycywKICAgIFNjaXNzb3JzU3F1YXJlRGFzaGVkQm90dG9tOiBTcXVhcmVCb3R0b21EYXNoZWRTY2lzc29ycywKICAgIFNjb290ZXI6IFNjb290ZXIsCiAgICBTY3JlZW5TaGFyZTogU2NyZWVuU2hhcmUsCiAgICBTY3JlZW5TaGFyZU9mZjogU2NyZWVuU2hhcmVPZmYsCiAgICBTY3JvbGw6IFNjcm9sbCwKICAgIFNjcm9sbFRleHQ6IFNjcm9sbFRleHQsCiAgICBTZWFyY2g6IFNlYXJjaCwKICAgIFNlYXJjaEFsZXJ0OiBTZWFyY2hBbGVydCwKICAgIFNlYXJjaENoZWNrOiBTZWFyY2hDaGVjaywKICAgIFNlYXJjaENvZGU6IFNlYXJjaENvZGUsCiAgICBTZWFyY2hTbGFzaDogU2VhcmNoU2xhc2gsCiAgICBTZWFyY2hYOiBTZWFyY2hYLAogICAgU2VjdGlvbjogU2VjdGlvbiwKICAgIFNlbmQ6IFNlbmQsCiAgICBTZW5kSG9yaXpvbmFsOiBTZW5kSG9yaXpvbnRhbCwKICAgIFNlbmRIb3Jpem9udGFsOiBTZW5kSG9yaXpvbnRhbCwKICAgIFNlbmRUb0JhY2s6IFNlbmRUb0JhY2ssCiAgICBTZXBhcmF0b3JIb3Jpem9udGFsOiBTZXBhcmF0b3JIb3Jpem9udGFsLAogICAgU2VwYXJhdG9yVmVydGljYWw6IFNlcGFyYXRvclZlcnRpY2FsLAogICAgU2VydmVyOiBTZXJ2ZXIsCiAgICBTZXJ2ZXJDb2c6IFNlcnZlckNvZywKICAgIFNlcnZlckNyYXNoOiBTZXJ2ZXJDcmFzaCwKICAgIFNlcnZlck9mZjogU2VydmVyT2ZmLAogICAgU2VydmVyUGx1czogU2VydmVyUGx1cywKICAgIFNldHRpbmdzOiBTZXR0aW5ncywKICAgIFNldHRpbmdzMjogU2V0dGluZ3MyLAogICAgU2hhcGVzOiBTaGFwZXMsCiAgICBTaGFyZTogU2hhcmUsCiAgICBTaGFyZTI6IFNoYXJlMiwKICAgIFNoZWV0OiBTaGVldCwKICAgIFNoZWxsOiBTaGVsbCwKICAgIFNoZWx2aW5nVW5pdDogU2hlbHZpbmdVbml0LAogICAgU2hpZWxkOiBTaGllbGQsCiAgICBTaGllbGRBbGVydDogU2hpZWxkQWxlcnQsCiAgICBTaGllbGRCYW46IFNoaWVsZEJhbiwKICAgIFNoaWVsZENoZWNrOiBTaGllbGRDaGVjaywKICAgIFNoaWVsZENsb3NlOiBTaGllbGRYLAogICAgU2hpZWxkQ29nOiBTaGllbGRDb2csCiAgICBTaGllbGRDb2dDb3JuZXI6IFNoaWVsZENvZ0Nvcm5lciwKICAgIFNoaWVsZEVsbGlwc2lzOiBTaGllbGRFbGxpcHNpcywKICAgIFNoaWVsZEhhbGY6IFNoaWVsZEhhbGYsCiAgICBTaGllbGRLZXlob2xlOiBTaGllbGRLZXlob2xlLAogICAgU2hpZWxkTWludXM6IFNoaWVsZE1pbnVzLAogICAgU2hpZWxkT2ZmOiBTaGllbGRPZmYsCiAgICBTaGllbGRQbHVzOiBTaGllbGRQbHVzLAogICAgU2hpZWxkUXVlc3Rpb246IFNoaWVsZFF1ZXN0aW9uTWFyaywKICAgIFNoaWVsZFF1ZXN0aW9uTWFyazogU2hpZWxkUXVlc3Rpb25NYXJrLAogICAgU2hpZWxkVXNlcjogU2hpZWxkVXNlciwKICAgIFNoaWVsZFg6IFNoaWVsZFgsCiAgICBTaGlwOiBTaGlwLAogICAgU2hpcFdoZWVsOiBTaGlwV2hlZWwsCiAgICBTaGlydDogU2hpcnQsCiAgICBTaG9wcGluZ0JhZzogU2hvcHBpbmdCYWcsCiAgICBTaG9wcGluZ0Jhc2tldDogU2hvcHBpbmdCYXNrZXQsCiAgICBTaG9wcGluZ0NhcnQ6IFNob3BwaW5nQ2FydCwKICAgIFNob3ZlbDogU2hvdmVsLAogICAgU2hvd2VySGVhZDogU2hvd2VySGVhZCwKICAgIFNocmVkZGVyOiBTaHJlZGRlciwKICAgIFNocmltcDogU2hyaW1wLAogICAgU2hyaW5rOiBTaHJpbmssCiAgICBTaHJ1YjogU2hydWIsCiAgICBTaHVmZmxlOiBTaHVmZmxlLAogICAgU2lkZWJhcjogUGFuZWxMZWZ0LAogICAgU2lkZWJhckNsb3NlOiBQYW5lbExlZnRDbG9zZSwKICAgIFNpZGViYXJPcGVuOiBQYW5lbExlZnRPcGVuLAogICAgU2lnbWE6IFNpZ21hLAogICAgU2lnbWFTcXVhcmU6IFNxdWFyZVNpZ21hLAogICAgU2lnbmFsOiBTaWduYWwsCiAgICBTaWduYWxIaWdoOiBTaWduYWxIaWdoLAogICAgU2lnbmFsTG93OiBTaWduYWxMb3csCiAgICBTaWduYWxNZWRpdW06IFNpZ25hbE1lZGl1bSwKICAgIFNpZ25hbFplcm86IFNpZ25hbFplcm8sCiAgICBTaWduYXR1cmU6IFNpZ25hdHVyZSwKICAgIFNpZ25wb3N0OiBTaWducG9zdCwKICAgIFNpZ25wb3N0QmlnOiBTaWducG9zdEJpZywKICAgIFNpcmVuOiBTaXJlbiwKICAgIFNraXBCYWNrOiBTa2lwQmFjaywKICAgIFNraXBGb3J3YXJkOiBTa2lwRm9yd2FyZCwKICAgIFNrdWxsOiBTa3VsbCwKICAgIFNsYXNoOiBTbGFzaCwKICAgIFNsYXNoU3F1YXJlOiBTcXVhcmVTbGFzaCwKICAgIFNsaWNlOiBTbGljZSwKICAgIFNsaWRlcnM6IFNsaWRlcnNWZXJ0aWNhbCwKICAgIFNsaWRlcnNIb3Jpem9udGFsOiBTbGlkZXJzSG9yaXpvbnRhbCwKICAgIFNsaWRlcnNWZXJ0aWNhbDogU2xpZGVyc1ZlcnRpY2FsLAogICAgU21hcnRwaG9uZTogU21hcnRwaG9uZSwKICAgIFNtYXJ0cGhvbmVDaGFyZ2luZzogU21hcnRwaG9uZUNoYXJnaW5nLAogICAgU21hcnRwaG9uZU5mYzogU21hcnRwaG9uZU5mYywKICAgIFNtaWxlOiBTbWlsZSwKICAgIFNtaWxlUGx1czogU21pbGVQbHVzLAogICAgU25haWw6IFNuYWlsLAogICAgU25vd2ZsYWtlOiBTbm93Zmxha2UsCiAgICBTb2FwRGlzcGVuc2VyRHJvcGxldDogU29hcERpc3BlbnNlckRyb3BsZXQsCiAgICBTb2ZhOiBTb2ZhLAogICAgU29sYXJQYW5lbDogU29sYXJQYW5lbCwKICAgIFNvcnRBc2M6IEFycm93VXBOYXJyb3dXaWRlLAogICAgU29ydERlc2M6IEFycm93RG93bldpZGVOYXJyb3csCiAgICBTb3VwOiBTb3VwLAogICAgU3BhY2U6IFNwYWNlLAogICAgU3BhZGU6IFNwYWRlLAogICAgU3BhcmtsZTogU3BhcmtsZSwKICAgIFNwYXJrbGVzOiBTcGFya2xlcywKICAgIFNwZWFrZXI6IFNwZWFrZXIsCiAgICBTcGVlY2g6IFNwZWVjaCwKICAgIFNwZWxsQ2hlY2s6IFNwZWxsQ2hlY2ssCiAgICBTcGVsbENoZWNrMjogU3BlbGxDaGVjazIsCiAgICBTcGxpbmU6IFNwbGluZSwKICAgIFNwbGluZVBvaW50ZXI6IFNwbGluZVBvaW50ZXIsCiAgICBTcGxpdDogU3BsaXQsCiAgICBTcGxpdFNxdWFyZUhvcml6b250YWw6IFNxdWFyZVNwbGl0SG9yaXpvbnRhbCwKICAgIFNwbGl0U3F1YXJlVmVydGljYWw6IFNxdWFyZVNwbGl0VmVydGljYWwsCiAgICBTcG9vbDogU3Bvb2wsCiAgICBTcG9ydFNob2U6IFNwb3J0U2hvZSwKICAgIFNwb3RsaWdodDogU3BvdGxpZ2h0LAogICAgU3ByYXlDYW46IFNwcmF5Q2FuLAogICAgU3Byb3V0OiBTcHJvdXQsCiAgICBTcXVhcmU6IFNxdWFyZSwKICAgIFNxdWFyZUFjdGl2aXR5OiBTcXVhcmVBY3Rpdml0eSwKICAgIFNxdWFyZUFycm93RG93bjogU3F1YXJlQXJyb3dEb3duLAogICAgU3F1YXJlQXJyb3dEb3duTGVmdDogU3F1YXJlQXJyb3dEb3duTGVmdCwKICAgIFNxdWFyZUFycm93RG93blJpZ2h0OiBTcXVhcmVBcnJvd0Rvd25SaWdodCwKICAgIFNxdWFyZUFycm93TGVmdDogU3F1YXJlQXJyb3dMZWZ0LAogICAgU3F1YXJlQXJyb3dPdXREb3duTGVmdDogU3F1YXJlQXJyb3dPdXREb3duTGVmdCwKICAgIFNxdWFyZUFycm93T3V0RG93blJpZ2h0OiBTcXVhcmVBcnJvd091dERvd25SaWdodCwKICAgIFNxdWFyZUFycm93T3V0VXBMZWZ0OiBTcXVhcmVBcnJvd091dFVwTGVmdCwKICAgIFNxdWFyZUFycm93T3V0VXBSaWdodDogU3F1YXJlQXJyb3dPdXRVcFJpZ2h0LAogICAgU3F1YXJlQXJyb3dSaWdodDogU3F1YXJlQXJyb3dSaWdodCwKICAgIFNxdWFyZUFycm93UmlnaHRFbnRlcjogU3F1YXJlQXJyb3dSaWdodEVudGVyLAogICAgU3F1YXJlQXJyb3dSaWdodEV4aXQ6IFNxdWFyZUFycm93UmlnaHRFeGl0LAogICAgU3F1YXJlQXJyb3dVcDogU3F1YXJlQXJyb3dVcCwKICAgIFNxdWFyZUFycm93VXBMZWZ0OiBTcXVhcmVBcnJvd1VwTGVmdCwKICAgIFNxdWFyZUFycm93VXBSaWdodDogU3F1YXJlQXJyb3dVcFJpZ2h0LAogICAgU3F1YXJlQXN0ZXJpc2s6IFNxdWFyZUFzdGVyaXNrLAogICAgU3F1YXJlQm90dG9tRGFzaGVkU2Npc3NvcnM6IFNxdWFyZUJvdHRvbURhc2hlZFNjaXNzb3JzLAogICAgU3F1YXJlQ2VudGVybGluZURhc2hlZEhvcml6b250YWw6IFNxdWFyZUNlbnRlcmxpbmVEYXNoZWRIb3Jpem9udGFsLAogICAgU3F1YXJlQ2VudGVybGluZURhc2hlZFZlcnRpY2FsOiBTcXVhcmVDZW50ZXJsaW5lRGFzaGVkVmVydGljYWwsCiAgICBTcXVhcmVDaGFydEdhbnR0OiBTcXVhcmVDaGFydEdhbnR0LAogICAgU3F1YXJlQ2hlY2s6IFNxdWFyZUNoZWNrLAogICAgU3F1YXJlQ2hlY2tCaWc6IFNxdWFyZUNoZWNrQmlnLAogICAgU3F1YXJlQ2hldnJvbkRvd246IFNxdWFyZUNoZXZyb25Eb3duLAogICAgU3F1YXJlQ2hldnJvbkxlZnQ6IFNxdWFyZUNoZXZyb25MZWZ0LAogICAgU3F1YXJlQ2hldnJvblJpZ2h0OiBTcXVhcmVDaGV2cm9uUmlnaHQsCiAgICBTcXVhcmVDaGV2cm9uVXA6IFNxdWFyZUNoZXZyb25VcCwKICAgIFNxdWFyZUNvZGU6IFNxdWFyZUNvZGUsCiAgICBTcXVhcmVEYXNoZWQ6IFNxdWFyZURhc2hlZCwKICAgIFNxdWFyZURhc2hlZEJvdHRvbTogU3F1YXJlRGFzaGVkQm90dG9tLAogICAgU3F1YXJlRGFzaGVkQm90dG9tQ29kZTogU3F1YXJlRGFzaGVkQm90dG9tQ29kZSwKICAgIFNxdWFyZURhc2hlZEthbmJhbjogU3F1YXJlRGFzaGVkS2FuYmFuLAogICAgU3F1YXJlRGFzaGVkTW91c2VQb2ludGVyOiBTcXVhcmVEYXNoZWRNb3VzZVBvaW50ZXIsCiAgICBTcXVhcmVEYXNoZWRUZXh0OiBTcXVhcmVEYXNoZWRUZXh0LAogICAgU3F1YXJlRGFzaGVkVG9wU29saWQ6IFNxdWFyZURhc2hlZFRvcFNvbGlkLAogICAgU3F1YXJlRGl2aWRlOiBTcXVhcmVEaXZpZGUsCiAgICBTcXVhcmVEb3Q6IFNxdWFyZURvdCwKICAgIFNxdWFyZUVxdWFsOiBTcXVhcmVFcXVhbCwKICAgIFNxdWFyZUZ1bmN0aW9uOiBTcXVhcmVGdW5jdGlvbiwKICAgIFNxdWFyZUdhbnR0Q2hhcnQ6IFNxdWFyZUNoYXJ0R2FudHQsCiAgICBTcXVhcmVLYW5iYW46IFNxdWFyZUthbmJhbiwKICAgIFNxdWFyZUxpYnJhcnk6IFNxdWFyZUxpYnJhcnksCiAgICBTcXVhcmVNOiBTcXVhcmVNLAogICAgU3F1YXJlTWVudTogU3F1YXJlTWVudSwKICAgIFNxdWFyZU1pbnVzOiBTcXVhcmVNaW51cywKICAgIFNxdWFyZU1vdXNlUG9pbnRlcjogU3F1YXJlTW91c2VQb2ludGVyLAogICAgU3F1YXJlT2ZmOiBTcXVhcmVPZmYsCiAgICBTcXVhcmVQYXJraW5nOiBTcXVhcmVQYXJraW5nLAogICAgU3F1YXJlUGFya2luZ09mZjogU3F1YXJlUGFya2luZ09mZiwKICAgIFNxdWFyZVBhdXNlOiBTcXVhcmVQYXVzZSwKICAgIFNxdWFyZVBlbjogU3F1YXJlUGVuLAogICAgU3F1YXJlUGVyY2VudDogU3F1YXJlUGVyY2VudCwKICAgIFNxdWFyZVBpOiBTcXVhcmVQaSwKICAgIFNxdWFyZVBpbGNyb3c6IFNxdWFyZVBpbGNyb3csCiAgICBTcXVhcmVQbGF5OiBTcXVhcmVQbGF5LAogICAgU3F1YXJlUGx1czogU3F1YXJlUGx1cywKICAgIFNxdWFyZVBvd2VyOiBTcXVhcmVQb3dlciwKICAgIFNxdWFyZVJhZGljYWw6IFNxdWFyZVJhZGljYWwsCiAgICBTcXVhcmVSb3VuZENvcm5lcjogU3F1YXJlUm91bmRDb3JuZXIsCiAgICBTcXVhcmVTY2lzc29yczogU3F1YXJlU2Npc3NvcnMsCiAgICBTcXVhcmVTaWdtYTogU3F1YXJlU2lnbWEsCiAgICBTcXVhcmVTbGFzaDogU3F1YXJlU2xhc2gsCiAgICBTcXVhcmVTcGxpdEhvcml6b250YWw6IFNxdWFyZVNwbGl0SG9yaXpvbnRhbCwKICAgIFNxdWFyZVNwbGl0VmVydGljYWw6IFNxdWFyZVNwbGl0VmVydGljYWwsCiAgICBTcXVhcmVTcXVhcmU6IFNxdWFyZVNxdWFyZSwKICAgIFNxdWFyZVN0YWNrOiBTcXVhcmVTdGFjaywKICAgIFNxdWFyZVN0YXI6IFNxdWFyZVN0YXIsCiAgICBTcXVhcmVTdG9wOiBTcXVhcmVTdG9wLAogICAgU3F1YXJlVGVybWluYWw6IFNxdWFyZVRlcm1pbmFsLAogICAgU3F1YXJlVXNlcjogU3F1YXJlVXNlciwKICAgIFNxdWFyZVVzZXJSb3VuZDogU3F1YXJlVXNlclJvdW5kLAogICAgU3F1YXJlWDogU3F1YXJlWCwKICAgIFNxdWFyZXNFeGNsdWRlOiBTcXVhcmVzRXhjbHVkZSwKICAgIFNxdWFyZXNJbnRlcnNlY3Q6IFNxdWFyZXNJbnRlcnNlY3QsCiAgICBTcXVhcmVzU3VidHJhY3Q6IFNxdWFyZXNTdWJ0cmFjdCwKICAgIFNxdWFyZXNVbml0ZTogU3F1YXJlc1VuaXRlLAogICAgU3F1aXJjbGU6IFNxdWlyY2xlLAogICAgU3F1aXJjbGVEYXNoZWQ6IFNxdWlyY2xlRGFzaGVkLAogICAgU3F1aXJyZWw6IFNxdWlycmVsLAogICAgU3RhbXA6IFN0YW1wLAogICAgU3RhcjogU3RhciwKICAgIFN0YXJDaGVjazogU3RhckNoZWNrLAogICAgU3RhckhhbGY6IFN0YXJIYWxmLAogICAgU3Rhck1pbnVzOiBTdGFyTWludXMsCiAgICBTdGFyT2ZmOiBTdGFyT2ZmLAogICAgU3RhclBsdXM6IFN0YXJQbHVzLAogICAgU3Rhclg6IFN0YXJYLAogICAgU3RhcnM6IFNwYXJrbGVzLAogICAgU3RlcEJhY2s6IFN0ZXBCYWNrLAogICAgU3RlcEZvcndhcmQ6IFN0ZXBGb3J3YXJkLAogICAgU3RldGhvc2NvcGU6IFN0ZXRob3Njb3BlLAogICAgU3RpY2tlcjogU3RpY2tlciwKICAgIFN0aWNreU5vdGU6IFN0aWNreU5vdGUsCiAgICBTdGlja3lOb3RlQ2hlY2s6IFN0aWNreU5vdGVDaGVjaywKICAgIFN0aWNreU5vdGVNaW51czogU3RpY2t5Tm90ZU1pbnVzLAogICAgU3RpY2t5Tm90ZU9mZjogU3RpY2t5Tm90ZU9mZiwKICAgIFN0aWNreU5vdGVQbHVzOiBTdGlja3lOb3RlUGx1cywKICAgIFN0aWNreU5vdGVYOiBTdGlja3lOb3RlWCwKICAgIFN0aWNreU5vdGVzOiBTdGlja3lOb3RlcywKICAgIFN0b25lOiBTdG9uZSwKICAgIFN0b3BDaXJjbGU6IENpcmNsZVN0b3AsCiAgICBTdG9yZTogU3RvcmUsCiAgICBTdHJldGNoSG9yaXpvbnRhbDogU3RyZXRjaEhvcml6b250YWwsCiAgICBTdHJldGNoVmVydGljYWw6IFN0cmV0Y2hWZXJ0aWNhbCwKICAgIFN0cmlrZXRocm91Z2g6IFN0cmlrZXRocm91Z2gsCiAgICBTdWJzY3JpcHQ6IFN1YnNjcmlwdCwKICAgIFN1YnRpdGxlczogQ2FwdGlvbnMsCiAgICBTdW1tYXJ5OiBTdW1tYXJ5LAogICAgU3VuOiBTdW4sCiAgICBTdW5EaW06IFN1bkRpbSwKICAgIFN1bk1lZGl1bTogU3VuTWVkaXVtLAogICAgU3VuTW9vbjogU3VuTW9vbiwKICAgIFN1blNub3c6IFN1blNub3csCiAgICBTdW5yaXNlOiBTdW5yaXNlLAogICAgU3Vuc2V0OiBTdW5zZXQsCiAgICBTdXBlcnNjcmlwdDogU3VwZXJzY3JpcHQsCiAgICBTd2F0Y2hCb29rOiBTd2F0Y2hCb29rLAogICAgU3dpc3NGcmFuYzogU3dpc3NGcmFuYywKICAgIFN3aXRjaENhbWVyYTogU3dpdGNoQ2FtZXJhLAogICAgU3dvcmQ6IFN3b3JkLAogICAgU3dvcmRzOiBTd29yZHMsCiAgICBTeXJpbmdlOiBTeXJpbmdlLAogICAgVGFibGU6IFRhYmxlLAogICAgVGFibGUyOiBUYWJsZTIsCiAgICBUYWJsZUNlbGxzTWVyZ2U6IFRhYmxlQ2VsbHNNZXJnZSwKICAgIFRhYmxlQ2VsbHNTcGxpdDogVGFibGVDZWxsc1NwbGl0LAogICAgVGFibGVDb2x1bW5zU3BsaXQ6IFRhYmxlQ29sdW1uc1NwbGl0LAogICAgVGFibGVDb25maWc6IENvbHVtbnMzQ29nLAogICAgVGFibGVPZkNvbnRlbnRzOiBUYWJsZU9mQ29udGVudHMsCiAgICBUYWJsZVByb3BlcnRpZXM6IFRhYmxlUHJvcGVydGllcywKICAgIFRhYmxlUm93c1NwbGl0OiBUYWJsZVJvd3NTcGxpdCwKICAgIFRhYmxldDogVGFibGV0LAogICAgVGFibGV0U21hcnRwaG9uZTogVGFibGV0U21hcnRwaG9uZSwKICAgIFRhYmxldHM6IFRhYmxldHMsCiAgICBUYWc6IFRhZywKICAgIFRhZ1BsdXM6IFRhZ1BsdXMsCiAgICBUYWdYOiBUYWdYLAogICAgVGFnczogVGFncywKICAgIFRhbGx5MTogVGFsbHkxLAogICAgVGFsbHkyOiBUYWxseTIsCiAgICBUYWxseTM6IFRhbGx5MywKICAgIFRhbGx5NDogVGFsbHk0LAogICAgVGFsbHk1OiBUYWxseTUsCiAgICBUYW5nZW50OiBUYW5nZW50LAogICAgVGFyZ2V0OiBUYXJnZXQsCiAgICBUZWxlc2NvcGU6IFRlbGVzY29wZSwKICAgIFRlbnQ6IFRlbnQsCiAgICBUZW50VHJlZTogVGVudFRyZWUsCiAgICBUZXJtaW5hbDogVGVybWluYWwsCiAgICBUZXJtaW5hbFNxdWFyZTogU3F1YXJlVGVybWluYWwsCiAgICBUZXN0VHViZTogVGVzdFR1YmUsCiAgICBUZXN0VHViZTI6IFRlc3RUdWJlRGlhZ29uYWwsCiAgICBUZXN0VHViZURpYWdvbmFsOiBUZXN0VHViZURpYWdvbmFsLAogICAgVGVzdFR1YmVzOiBUZXN0VHViZXMsCiAgICBUZXh0OiBUZXh0QWxpZ25TdGFydCwKICAgIFRleHRBbGlnbkNlbnRlcjogVGV4dEFsaWduQ2VudGVyLAogICAgVGV4dEFsaWduRW5kOiBUZXh0QWxpZ25FbmQsCiAgICBUZXh0QWxpZ25KdXN0aWZ5OiBUZXh0QWxpZ25KdXN0aWZ5LAogICAgVGV4dEFsaWduU3RhcnQ6IFRleHRBbGlnblN0YXJ0LAogICAgVGV4dEN1cnNvcjogVGV4dEN1cnNvciwKICAgIFRleHRDdXJzb3JJbnB1dDogVGV4dEN1cnNvcklucHV0LAogICAgVGV4dEluaXRpYWw6IFRleHRJbml0aWFsLAogICAgVGV4dFF1b3RlOiBUZXh0UXVvdGUsCiAgICBUZXh0U2VhcmNoOiBUZXh0U2VhcmNoLAogICAgVGV4dFNlbGVjdDogU3F1YXJlRGFzaGVkVGV4dCwKICAgIFRleHRTZWxlY3Rpb246IFNxdWFyZURhc2hlZFRleHQsCiAgICBUZXh0V3JhcDogVGV4dFdyYXAsCiAgICBUaGVhdGVyOiBUaGVhdGVyLAogICAgVGhlcm1vbWV0ZXI6IFRoZXJtb21ldGVyLAogICAgVGhlcm1vbWV0ZXJTbm93Zmxha2U6IFRoZXJtb21ldGVyU25vd2ZsYWtlLAogICAgVGhlcm1vbWV0ZXJTdW46IFRoZXJtb21ldGVyU3VuLAogICAgVGh1bWJzRG93bjogVGh1bWJzRG93biwKICAgIFRodW1ic1VwOiBUaHVtYnNVcCwKICAgIFRpY2tldDogVGlja2V0LAogICAgVGlja2V0Q2hlY2s6IFRpY2tldENoZWNrLAogICAgVGlja2V0TWludXM6IFRpY2tldE1pbnVzLAogICAgVGlja2V0UGVyY2VudDogVGlja2V0UGVyY2VudCwKICAgIFRpY2tldFBsdXM6IFRpY2tldFBsdXMsCiAgICBUaWNrZXRTbGFzaDogVGlja2V0U2xhc2gsCiAgICBUaWNrZXRYOiBUaWNrZXRYLAogICAgVGlja2V0czogVGlja2V0cywKICAgIFRpY2tldHNQbGFuZTogVGlja2V0c1BsYW5lLAogICAgVGltZWxpbmU6IFRpbWVsaW5lLAogICAgVGltZXI6IFRpbWVyLAogICAgVGltZXJPZmY6IFRpbWVyT2ZmLAogICAgVGltZXJSZXNldDogVGltZXJSZXNldCwKICAgIFRvZ2dsZUxlZnQ6IFRvZ2dsZUxlZnQsCiAgICBUb2dnbGVSaWdodDogVG9nZ2xlUmlnaHQsCiAgICBUb2lsZXQ6IFRvaWxldCwKICAgIFRvb2xDYXNlOiBUb29sQ2FzZSwKICAgIFRvb2xib3g6IFRvb2xib3gsCiAgICBUb3JuYWRvOiBUb3JuYWRvLAogICAgVG9ydXM6IFRvcnVzLAogICAgVG91Y2hwYWQ6IFRvdWNocGFkLAogICAgVG91Y2hwYWRPZmY6IFRvdWNocGFkT2ZmLAogICAgVG93ZWxSYWNrOiBUb3dlbFJhY2ssCiAgICBUb3dlckNvbnRyb2w6IFRvd2VyQ29udHJvbCwKICAgIFRveUJyaWNrOiBUb3lCcmljaywKICAgIFRyYWN0b3I6IFRyYWN0b3IsCiAgICBUcmFmZmljQ29uZTogVHJhZmZpY0NvbmUsCiAgICBUcmFpbjogVHJhbUZyb250LAogICAgVHJhaW5Gcm9udDogVHJhaW5Gcm9udCwKICAgIFRyYWluRnJvbnRUdW5uZWw6IFRyYWluRnJvbnRUdW5uZWwsCiAgICBUcmFpblRyYWNrOiBUcmFpblRyYWNrLAogICAgVHJhbUZyb250OiBUcmFtRnJvbnQsCiAgICBUcmFuc2dlbmRlcjogVHJhbnNnZW5kZXIsCiAgICBUcmFzaDogVHJhc2gsCiAgICBUcmFzaDI6IFRyYXNoMiwKICAgIFRyZWVEZWNpZHVvdXM6IFRyZWVEZWNpZHVvdXMsCiAgICBUcmVlUGFsbTogVHJlZVBhbG0sCiAgICBUcmVlUGluZTogVHJlZVBpbmUsCiAgICBUcmVlczogVHJlZXMsCiAgICBUcmVuZGluZ0Rvd246IFRyZW5kaW5nRG93biwKICAgIFRyZW5kaW5nVXA6IFRyZW5kaW5nVXAsCiAgICBUcmVuZGluZ1VwRG93bjogVHJlbmRpbmdVcERvd24sCiAgICBUcmlhbmdsZTogVHJpYW5nbGUsCiAgICBUcmlhbmdsZUFsZXJ0OiBUcmlhbmdsZUFsZXJ0LAogICAgVHJpYW5nbGVEYXNoZWQ6IFRyaWFuZ2xlRGFzaGVkLAogICAgVHJpYW5nbGVSaWdodDogVHJpYW5nbGVSaWdodCwKICAgIFRyb3BoeTogVHJvcGh5LAogICAgVHJ1Y2s6IFRydWNrLAogICAgVHJ1Y2tFbGVjdHJpYzogVHJ1Y2tFbGVjdHJpYywKICAgIFR1cmtpc2hMaXJhOiBUdXJraXNoTGlyYSwKICAgIFR1cm50YWJsZTogVHVybnRhYmxlLAogICAgVHVydGxlOiBUdXJ0bGUsCiAgICBUdjogVHYsCiAgICBUdjI6IFR2TWluaW1hbCwKICAgIFR2TWluaW1hbDogVHZNaW5pbWFsLAogICAgVHZNaW5pbWFsUGxheTogVHZNaW5pbWFsUGxheSwKICAgIFR5cGU6IFR5cGUsCiAgICBUeXBlT3V0bGluZTogVHlwZU91dGxpbmUsCiAgICBVbWJyZWxsYTogVW1icmVsbGEsCiAgICBVbWJyZWxsYU9mZjogVW1icmVsbGFPZmYsCiAgICBVbmRlcmxpbmU6IFVuZGVybGluZSwKICAgIFVuZG86IFVuZG8sCiAgICBVbmRvMjogVW5kbzIsCiAgICBVbmRvRG90OiBVbmRvRG90LAogICAgVW5mb2xkSG9yaXpvbnRhbDogVW5mb2xkSG9yaXpvbnRhbCwKICAgIFVuZm9sZFZlcnRpY2FsOiBVbmZvbGRWZXJ0aWNhbCwKICAgIFVuZ3JvdXA6IFVuZ3JvdXAsCiAgICBVbml2ZXJzaXR5OiBVbml2ZXJzaXR5LAogICAgVW5saW5rOiBVbmxpbmssCiAgICBVbmxpbmsyOiBVbmxpbmsyLAogICAgVW5sb2NrOiBMb2NrT3BlbiwKICAgIFVubG9ja0tleWhvbGU6IExvY2tLZXlob2xlT3BlbiwKICAgIFVucGx1ZzogVW5wbHVnLAogICAgVXBsb2FkOiBVcGxvYWQsCiAgICBVcGxvYWRDbG91ZDogQ2xvdWRVcGxvYWQsCiAgICBVc2I6IFVzYiwKICAgIFVzZXI6IFVzZXIsCiAgICBVc2VyMjogVXNlclJvdW5kLAogICAgVXNlckNoZWNrOiBVc2VyQ2hlY2ssCiAgICBVc2VyQ2hlY2syOiBVc2VyUm91bmRDaGVjaywKICAgIFVzZXJDaXJjbGU6IENpcmNsZVVzZXIsCiAgICBVc2VyQ2lyY2xlMjogQ2lyY2xlVXNlclJvdW5kLAogICAgVXNlckNvZzogVXNlckNvZywKICAgIFVzZXJDb2cyOiBVc2VyUm91bmRDb2csCiAgICBVc2VyS2V5OiBVc2VyS2V5LAogICAgVXNlckxvY2s6IFVzZXJMb2NrLAogICAgVXNlck1pbnVzOiBVc2VyTWludXMsCiAgICBVc2VyTWludXMyOiBVc2VyUm91bmRNaW51cywKICAgIFVzZXJQZW46IFVzZXJQZW4sCiAgICBVc2VyUGx1czogVXNlclBsdXMsCiAgICBVc2VyUGx1czI6IFVzZXJSb3VuZFBsdXMsCiAgICBVc2VyUm91bmQ6IFVzZXJSb3VuZCwKICAgIFVzZXJSb3VuZEFycm93TGVmdDogVXNlclJvdW5kQXJyb3dMZWZ0LAogICAgVXNlclJvdW5kQ2hlY2s6IFVzZXJSb3VuZENoZWNrLAogICAgVXNlclJvdW5kQ29nOiBVc2VyUm91bmRDb2csCiAgICBVc2VyUm91bmRLZXk6IFVzZXJSb3VuZEtleSwKICAgIFVzZXJSb3VuZE1pbnVzOiBVc2VyUm91bmRNaW51cywKICAgIFVzZXJSb3VuZFBlbjogVXNlclJvdW5kUGVuLAogICAgVXNlclJvdW5kUGx1czogVXNlclJvdW5kUGx1cywKICAgIFVzZXJSb3VuZFNlYXJjaDogVXNlclJvdW5kU2VhcmNoLAogICAgVXNlclJvdW5kWDogVXNlclJvdW5kWCwKICAgIFVzZXJTZWFyY2g6IFVzZXJTZWFyY2gsCiAgICBVc2VyU2hpZWxkOiBVc2VyU2hpZWxkLAogICAgVXNlclNxdWFyZTogU3F1YXJlVXNlciwKICAgIFVzZXJTcXVhcmUyOiBTcXVhcmVVc2VyUm91bmQsCiAgICBVc2VyU3RhcjogVXNlclN0YXIsCiAgICBVc2VyWDogVXNlclgsCiAgICBVc2VyWDI6IFVzZXJSb3VuZFgsCiAgICBVc2VyczogVXNlcnMsCiAgICBVc2VyczI6IFVzZXJzUm91bmQsCiAgICBVc2Vyc1JvdW5kOiBVc2Vyc1JvdW5kLAogICAgVXRlbnNpbHM6IFV0ZW5zaWxzLAogICAgVXRlbnNpbHNDcm9zc2VkOiBVdGVuc2lsc0Nyb3NzZWQsCiAgICBVdGlsaXR5UG9sZTogVXRpbGl0eVBvbGUsCiAgICBWYW46IFZhbiwKICAgIFZhcmlhYmxlOiBWYXJpYWJsZSwKICAgIFZhdWx0OiBWYXVsdCwKICAgIFZlY3RvclNxdWFyZTogVmVjdG9yU3F1YXJlLAogICAgVmVnYW46IFZlZ2FuLAogICAgVmVuZXRpYW5NYXNrOiBWZW5ldGlhbk1hc2ssCiAgICBWZW51czogVmVudXMsCiAgICBWZW51c0FuZE1hcnM6IFZlbnVzQW5kTWFycywKICAgIFZlcmlmaWVkOiBCYWRnZUNoZWNrLAogICAgVmlicmF0ZTogVmlicmF0ZSwKICAgIFZpYnJhdGVPZmY6IFZpYnJhdGVPZmYsCiAgICBWaWRlbzogVmlkZW8sCiAgICBWaWRlb09mZjogVmlkZW9PZmYsCiAgICBWaWRlb3RhcGU6IFZpZGVvdGFwZSwKICAgIFZpZXc6IFZpZXcsCiAgICBWb2ljZW1haWw6IFZvaWNlbWFpbCwKICAgIFZvbGxleWJhbGw6IFZvbGxleWJhbGwsCiAgICBWb2x1bWU6IFZvbHVtZSwKICAgIFZvbHVtZTE6IFZvbHVtZTEsCiAgICBWb2x1bWUyOiBWb2x1bWUyLAogICAgVm9sdW1lT2ZmOiBWb2x1bWVPZmYsCiAgICBWb2x1bWVYOiBWb2x1bWVYLAogICAgVm90ZTogVm90ZSwKICAgIFdhbGxldDogV2FsbGV0LAogICAgV2FsbGV0MjogV2FsbGV0TWluaW1hbCwKICAgIFdhbGxldENhcmRzOiBXYWxsZXRDYXJkcywKICAgIFdhbGxldE1pbmltYWw6IFdhbGxldE1pbmltYWwsCiAgICBXYWxscGFwZXI6IFdhbGxwYXBlciwKICAgIFdhbmQ6IFdhbmQsCiAgICBXYW5kMjogV2FuZFNwYXJrbGVzLAogICAgV2FuZFNwYXJrbGVzOiBXYW5kU3BhcmtsZXMsCiAgICBXYXJlaG91c2U6IFdhcmVob3VzZSwKICAgIFdhc2hpbmdNYWNoaW5lOiBXYXNoaW5nTWFjaGluZSwKICAgIFdhdGNoOiBXYXRjaCwKICAgIFdhdmVzOiBXYXZlc0hvcml6b250YWwsCiAgICBXYXZlc0Fycm93RG93bjogV2F2ZXNBcnJvd0Rvd24sCiAgICBXYXZlc0Fycm93VXA6IFdhdmVzQXJyb3dVcCwKICAgIFdhdmVzSG9yaXpvbnRhbDogV2F2ZXNIb3Jpem9udGFsLAogICAgV2F2ZXNMYWRkZXI6IFdhdmVzTGFkZGVyLAogICAgV2F2ZXNWZXJ0aWNhbDogV2F2ZXNWZXJ0aWNhbCwKICAgIFdheXBvaW50czogV2F5cG9pbnRzLAogICAgV2ViY2FtOiBXZWJjYW0sCiAgICBXZWJjYW1PZmY6IFdlYmNhbU9mZiwKICAgIFdlYmhvb2s6IFdlYmhvb2ssCiAgICBXZWJob29rT2ZmOiBXZWJob29rT2ZmLAogICAgV2VpZ2h0OiBXZWlnaHQsCiAgICBXZWlnaHRUaWxkZTogV2VpZ2h0VGlsZGUsCiAgICBXaGVhdDogV2hlYXQsCiAgICBXaGVhdE9mZjogV2hlYXRPZmYsCiAgICBXaG9sZVdvcmQ6IFdob2xlV29yZCwKICAgIFdpZmk6IFdpZmksCiAgICBXaWZpQ29nOiBXaWZpQ29nLAogICAgV2lmaUhpZ2g6IFdpZmlIaWdoLAogICAgV2lmaUxvdzogV2lmaUxvdywKICAgIFdpZmlPZmY6IFdpZmlPZmYsCiAgICBXaWZpUGVuOiBXaWZpUGVuLAogICAgV2lmaVN5bmM6IFdpZmlTeW5jLAogICAgV2lmaVplcm86IFdpZmlaZXJvLAogICAgV2luZDogV2luZCwKICAgIFdpbmRBcnJvd0Rvd246IFdpbmRBcnJvd0Rvd24sCiAgICBXaW5lOiBXaW5lLAogICAgV2luZU9mZjogV2luZU9mZiwKICAgIFdvcmtmbG93OiBXb3JrZmxvdywKICAgIFdvcm06IFdvcm0sCiAgICBXcmFwVGV4dDogVGV4dFdyYXAsCiAgICBXcmVuY2g6IFdyZW5jaCwKICAgIFdyZW5jaE9mZjogV3JlbmNoT2ZmLAogICAgWDogWCwKICAgIFhDaXJjbGU6IENpcmNsZVgsCiAgICBYTGluZVRvcDogWExpbmVUb3AsCiAgICBYT2N0YWdvbjogT2N0YWdvblgsCiAgICBYU3F1YXJlOiBTcXVhcmVYLAogICAgWmFwOiBaYXAsCiAgICBaYXBPZmY6IFphcE9mZiwKICAgIFpvZGlhY0FxdWFyaXVzOiBab2RpYWNBcXVhcml1cywKICAgIFpvZGlhY0FyaWVzOiBab2RpYWNBcmllcywKICAgIFpvZGlhY0NhbmNlcjogWm9kaWFjQ2FuY2VyLAogICAgWm9kaWFjQ2Fwcmljb3JuOiBab2RpYWNDYXByaWNvcm4sCiAgICBab2RpYWNHZW1pbmk6IFpvZGlhY0dlbWluaSwKICAgIFpvZGlhY0xlbzogWm9kaWFjTGVvLAogICAgWm9kaWFjTGlicmE6IFpvZGlhY0xpYnJhLAogICAgWm9kaWFjT3BoaXVjaHVzOiBab2RpYWNPcGhpdWNodXMsCiAgICBab2RpYWNQaXNjZXM6IFpvZGlhY1Bpc2NlcywKICAgIFpvZGlhY1NhZ2l0dGFyaXVzOiBab2RpYWNTYWdpdHRhcml1cywKICAgIFpvZGlhY1Njb3JwaW86IFpvZGlhY1Njb3JwaW8sCiAgICBab2RpYWNUYXVydXM6IFpvZGlhY1RhdXJ1cywKICAgIFpvZGlhY1ZpcmdvOiBab2RpYWNWaXJnbywKICAgIFpvb21JbjogWm9vbUluLAogICAgWm9vbU91dDogWm9vbU91dAogIH0pOwoKICBjb25zdCBjcmVhdGVJY29ucyA9ICh7CiAgICBpY29ucyA9IGljb25BbmRBbGlhc2VzLAogICAgbmFtZUF0dHIgPSAiZGF0YS1sdWNpZGUiLAogICAgYXR0cnMgPSB7fSwKICAgIHJvb3QgPSBkb2N1bWVudCwKICAgIGluVGVtcGxhdGVzCiAgfSA9IHt9KSA9PiB7CiAgICBpZiAoIU9iamVjdC52YWx1ZXMoaWNvbnMpLmxlbmd0aCkgewogICAgICB0aHJvdyBuZXcgRXJyb3IoCiAgICAgICAgIlBsZWFzZSBwcm92aWRlIGFuIGljb25zIG9iamVjdC5cbklmIHlvdSB3YW50IHRvIHVzZSBhbGwgdGhlIGljb25zIHlvdSBjYW4gaW1wb3J0IGl0IGxpa2U6XG4gYGltcG9ydCB7IGNyZWF0ZUljb25zLCBpY29ucyB9IGZyb20gJ2x1Y2lkZSc7XG5sdWNpZGUuY3JlYXRlSWNvbnMoe2ljb25zfSk7YCIKICAgICAgKTsKICAgIH0KICAgIGlmICh0eXBlb2Ygcm9vdCA9PT0gInVuZGVmaW5lZCIpIHsKICAgICAgdGhyb3cgbmV3IEVycm9yKCJgY3JlYXRlSWNvbnMoKWAgb25seSB3b3JrcyBpbiBhIGJyb3dzZXIgZW52aXJvbm1lbnQuIik7CiAgICB9CiAgICBjb25zdCBlbGVtZW50c1RvUmVwbGFjZSA9IEFycmF5LmZyb20ocm9vdC5xdWVyeVNlbGVjdG9yQWxsKGBbJHtuYW1lQXR0cn1dYCkpOwogICAgZWxlbWVudHNUb1JlcGxhY2UuZm9yRWFjaCgoZWxlbWVudCkgPT4gcmVwbGFjZUVsZW1lbnQoZWxlbWVudCwgeyBuYW1lQXR0ciwgaWNvbnMsIGF0dHJzIH0pKTsKICAgIGlmIChpblRlbXBsYXRlcykgewogICAgICBjb25zdCB0ZW1wbGF0ZXMgPSBBcnJheS5mcm9tKHJvb3QucXVlcnlTZWxlY3RvckFsbCgidGVtcGxhdGUiKSk7CiAgICAgIHRlbXBsYXRlcy5mb3JFYWNoKAogICAgICAgICh0ZW1wbGF0ZSkgPT4gY3JlYXRlSWNvbnMoewogICAgICAgICAgaWNvbnMsCiAgICAgICAgICBuYW1lQXR0ciwKICAgICAgICAgIGF0dHJzLAogICAgICAgICAgcm9vdDogdGVtcGxhdGUuY29udGVudCwKICAgICAgICAgIGluVGVtcGxhdGVzCiAgICAgICAgfSkKICAgICAgKTsKICAgIH0KICAgIGlmIChuYW1lQXR0ciA9PT0gImRhdGEtbHVjaWRlIikgewogICAgICBjb25zdCBkZXByZWNhdGVkRWxlbWVudHMgPSByb290LnF1ZXJ5U2VsZWN0b3JBbGwoIltpY29uLW5hbWVdIik7CiAgICAgIGlmIChkZXByZWNhdGVkRWxlbWVudHMubGVuZ3RoID4gMCkgewogICAgICAgIGNvbnNvbGUud2FybigKICAgICAgICAgICJbTHVjaWRlXSBTb21lIGljb25zIHdlcmUgZm91bmQgd2l0aCB0aGUgbm93IGRlcHJlY2F0ZWQgaWNvbi1uYW1lIGF0dHJpYnV0ZS4gVGhlc2Ugd2lsbCBzdGlsbCBiZSByZXBsYWNlZCBmb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHksIGJ1dCB3aWxsIG5vIGxvbmdlciBiZSBzdXBwb3J0ZWQgaW4gdjEuMCBhbmQgeW91IHNob3VsZCBzd2l0Y2ggdG8gZGF0YS1sdWNpZGUiCiAgICAgICAgKTsKICAgICAgICBBcnJheS5mcm9tKGRlcHJlY2F0ZWRFbGVtZW50cykuZm9yRWFjaCgKICAgICAgICAgIChlbGVtZW50KSA9PiByZXBsYWNlRWxlbWVudChlbGVtZW50LCB7IG5hbWVBdHRyOiAiaWNvbi1uYW1lIiwgaWNvbnMsIGF0dHJzIH0pCiAgICAgICAgKTsKICAgICAgfQogICAgfQogIH07CgogIGV4cG9ydHMuQUFycm93RG93biA9IEFBcnJvd0Rvd247CiAgZXhwb3J0cy5BQXJyb3dVcCA9IEFBcnJvd1VwOwogIGV4cG9ydHMuQUxhcmdlU21hbGwgPSBBTGFyZ2VTbWFsbDsKICBleHBvcnRzLkFjY2Vzc2liaWxpdHkgPSBBY2Nlc3NpYmlsaXR5OwogIGV4cG9ydHMuQWN0aXZpdHkgPSBBY3Rpdml0eTsKICBleHBvcnRzLkFjdGl2aXR5U3F1YXJlID0gU3F1YXJlQWN0aXZpdHk7CiAgZXhwb3J0cy5BZCA9IEFkOwogIGV4cG9ydHMuQWlyVmVudCA9IEFpclZlbnQ7CiAgZXhwb3J0cy5BaXJwbGF5ID0gQWlycGxheTsKICBleHBvcnRzLkFsYXJtQ2hlY2sgPSBBbGFybUNsb2NrQ2hlY2s7CiAgZXhwb3J0cy5BbGFybUNsb2NrID0gQWxhcm1DbG9jazsKICBleHBvcnRzLkFsYXJtQ2xvY2tDaGVjayA9IEFsYXJtQ2xvY2tDaGVjazsKICBleHBvcnRzLkFsYXJtQ2xvY2tNaW51cyA9IEFsYXJtQ2xvY2tNaW51czsKICBleHBvcnRzLkFsYXJtQ2xvY2tPZmYgPSBBbGFybUNsb2NrT2ZmOwogIGV4cG9ydHMuQWxhcm1DbG9ja1BsdXMgPSBBbGFybUNsb2NrUGx1czsKICBleHBvcnRzLkFsYXJtTWludXMgPSBBbGFybUNsb2NrTWludXM7CiAgZXhwb3J0cy5BbGFybVBsdXMgPSBBbGFybUNsb2NrUGx1czsKICBleHBvcnRzLkFsYXJtU21va2UgPSBBbGFybVNtb2tlOwogIGV4cG9ydHMuQWxidW0gPSBBbGJ1bTsKICBleHBvcnRzLkFsZXJ0Q2lyY2xlID0gQ2lyY2xlQWxlcnQ7CiAgZXhwb3J0cy5BbGVydE9jdGFnb24gPSBPY3RhZ29uQWxlcnQ7CiAgZXhwb3J0cy5BbGVydFRyaWFuZ2xlID0gVHJpYW5nbGVBbGVydDsKICBleHBvcnRzLkFsaWduQ2VudGVyID0gVGV4dEFsaWduQ2VudGVyOwogIGV4cG9ydHMuQWxpZ25DZW50ZXJIb3Jpem9udGFsID0gQWxpZ25DZW50ZXJIb3Jpem9udGFsOwogIGV4cG9ydHMuQWxpZ25DZW50ZXJWZXJ0aWNhbCA9IEFsaWduQ2VudGVyVmVydGljYWw7CiAgZXhwb3J0cy5BbGlnbkVuZEhvcml6b250YWwgPSBBbGlnbkVuZEhvcml6b250YWw7CiAgZXhwb3J0cy5BbGlnbkVuZFZlcnRpY2FsID0gQWxpZ25FbmRWZXJ0aWNhbDsKICBleHBvcnRzLkFsaWduSG9yaXpvbnRhbERpc3RyaWJ1dGVDZW50ZXIgPSBBbGlnbkhvcml6b250YWxEaXN0cmlidXRlQ2VudGVyOwogIGV4cG9ydHMuQWxpZ25Ib3Jpem9udGFsRGlzdHJpYnV0ZUVuZCA9IEFsaWduSG9yaXpvbnRhbERpc3RyaWJ1dGVFbmQ7CiAgZXhwb3J0cy5BbGlnbkhvcml6b250YWxEaXN0cmlidXRlU3RhcnQgPSBBbGlnbkhvcml6b250YWxEaXN0cmlidXRlU3RhcnQ7CiAgZXhwb3J0cy5BbGlnbkhvcml6b250YWxKdXN0aWZ5Q2VudGVyID0gQWxpZ25Ib3Jpem9udGFsSnVzdGlmeUNlbnRlcjsKICBleHBvcnRzLkFsaWduSG9yaXpvbnRhbEp1c3RpZnlFbmQgPSBBbGlnbkhvcml6b250YWxKdXN0aWZ5RW5kOwogIGV4cG9ydHMuQWxpZ25Ib3Jpem9udGFsSnVzdGlmeVN0YXJ0ID0gQWxpZ25Ib3Jpem9udGFsSnVzdGlmeVN0YXJ0OwogIGV4cG9ydHMuQWxpZ25Ib3Jpem9udGFsU3BhY2VBcm91bmQgPSBBbGlnbkhvcml6b250YWxTcGFjZUFyb3VuZDsKICBleHBvcnRzLkFsaWduSG9yaXpvbnRhbFNwYWNlQmV0d2VlbiA9IEFsaWduSG9yaXpvbnRhbFNwYWNlQmV0d2VlbjsKICBleHBvcnRzLkFsaWduSnVzdGlmeSA9IFRleHRBbGlnbkp1c3RpZnk7CiAgZXhwb3J0cy5BbGlnbkxlZnQgPSBUZXh0QWxpZ25TdGFydDsKICBleHBvcnRzLkFsaWduUmlnaHQgPSBUZXh0QWxpZ25FbmQ7CiAgZXhwb3J0cy5BbGlnblN0YXJ0SG9yaXpvbnRhbCA9IEFsaWduU3RhcnRIb3Jpem9udGFsOwogIGV4cG9ydHMuQWxpZ25TdGFydFZlcnRpY2FsID0gQWxpZ25TdGFydFZlcnRpY2FsOwogIGV4cG9ydHMuQWxpZ25WZXJ0aWNhbERpc3RyaWJ1dGVDZW50ZXIgPSBBbGlnblZlcnRpY2FsRGlzdHJpYnV0ZUNlbnRlcjsKICBleHBvcnRzLkFsaWduVmVydGljYWxEaXN0cmlidXRlRW5kID0gQWxpZ25WZXJ0aWNhbERpc3RyaWJ1dGVFbmQ7CiAgZXhwb3J0cy5BbGlnblZlcnRpY2FsRGlzdHJpYnV0ZVN0YXJ0ID0gQWxpZ25WZXJ0aWNhbERpc3RyaWJ1dGVTdGFydDsKICBleHBvcnRzLkFsaWduVmVydGljYWxKdXN0aWZ5Q2VudGVyID0gQWxpZ25WZXJ0aWNhbEp1c3RpZnlDZW50ZXI7CiAgZXhwb3J0cy5BbGlnblZlcnRpY2FsSnVzdGlmeUVuZCA9IEFsaWduVmVydGljYWxKdXN0aWZ5RW5kOwogIGV4cG9ydHMuQWxpZ25WZXJ0aWNhbEp1c3RpZnlTdGFydCA9IEFsaWduVmVydGljYWxKdXN0aWZ5U3RhcnQ7CiAgZXhwb3J0cy5BbGlnblZlcnRpY2FsU3BhY2VBcm91bmQgPSBBbGlnblZlcnRpY2FsU3BhY2VBcm91bmQ7CiAgZXhwb3J0cy5BbGlnblZlcnRpY2FsU3BhY2VCZXR3ZWVuID0gQWxpZ25WZXJ0aWNhbFNwYWNlQmV0d2VlbjsKICBleHBvcnRzLkFtYnVsYW5jZSA9IEFtYnVsYW5jZTsKICBleHBvcnRzLkFtcGVyc2FuZCA9IEFtcGVyc2FuZDsKICBleHBvcnRzLkFtcGVyc2FuZHMgPSBBbXBlcnNhbmRzOwogIGV4cG9ydHMuQW1waG9yYSA9IEFtcGhvcmE7CiAgZXhwb3J0cy5BbmNob3IgPSBBbmNob3I7CiAgZXhwb3J0cy5BbmdyeSA9IEFuZ3J5OwogIGV4cG9ydHMuQW5ub3llZCA9IEFubm95ZWQ7CiAgZXhwb3J0cy5BbnRlbm5hID0gQW50ZW5uYTsKICBleHBvcnRzLkFudmlsID0gQW52aWw7CiAgZXhwb3J0cy5BcGVydHVyZSA9IEFwZXJ0dXJlOwogIGV4cG9ydHMuQXBwV2luZG93ID0gQXBwV2luZG93OwogIGV4cG9ydHMuQXBwV2luZG93TWFjID0gQXBwV2luZG93TWFjOwogIGV4cG9ydHMuQXBwbGUgPSBBcHBsZTsKICBleHBvcnRzLkFyY2hpdmUgPSBBcmNoaXZlOwogIGV4cG9ydHMuQXJjaGl2ZVJlc3RvcmUgPSBBcmNoaXZlUmVzdG9yZTsKICBleHBvcnRzLkFyY2hpdmVYID0gQXJjaGl2ZVg7CiAgZXhwb3J0cy5BcmVhQ2hhcnQgPSBDaGFydEFyZWE7CiAgZXhwb3J0cy5Bcm1jaGFpciA9IEFybWNoYWlyOwogIGV4cG9ydHMuQXJyb3dCaWdEb3duID0gQXJyb3dCaWdEb3duOwogIGV4cG9ydHMuQXJyb3dCaWdEb3duRGFzaCA9IEFycm93QmlnRG93bkRhc2g7CiAgZXhwb3J0cy5BcnJvd0JpZ0xlZnQgPSBBcnJvd0JpZ0xlZnQ7CiAgZXhwb3J0cy5BcnJvd0JpZ0xlZnREYXNoID0gQXJyb3dCaWdMZWZ0RGFzaDsKICBleHBvcnRzLkFycm93QmlnUmlnaHQgPSBBcnJvd0JpZ1JpZ2h0OwogIGV4cG9ydHMuQXJyb3dCaWdSaWdodERhc2ggPSBBcnJvd0JpZ1JpZ2h0RGFzaDsKICBleHBvcnRzLkFycm93QmlnVXAgPSBBcnJvd0JpZ1VwOwogIGV4cG9ydHMuQXJyb3dCaWdVcERhc2ggPSBBcnJvd0JpZ1VwRGFzaDsKICBleHBvcnRzLkFycm93RG93biA9IEFycm93RG93bjsKICBleHBvcnRzLkFycm93RG93bjAxID0gQXJyb3dEb3duMDE7CiAgZXhwb3J0cy5BcnJvd0Rvd24xMCA9IEFycm93RG93bjEwOwogIGV4cG9ydHMuQXJyb3dEb3duQVogPSBBcnJvd0Rvd25BWjsKICBleHBvcnRzLkFycm93RG93bkF6ID0gQXJyb3dEb3duQVo7CiAgZXhwb3J0cy5BcnJvd0Rvd25DaXJjbGUgPSBDaXJjbGVBcnJvd0Rvd247CiAgZXhwb3J0cy5BcnJvd0Rvd25Gcm9tTGluZSA9IEFycm93RG93bkZyb21MaW5lOwogIGV4cG9ydHMuQXJyb3dEb3duTGVmdCA9IEFycm93RG93bkxlZnQ7CiAgZXhwb3J0cy5BcnJvd0Rvd25MZWZ0RnJvbUNpcmNsZSA9IENpcmNsZUFycm93T3V0RG93bkxlZnQ7CiAgZXhwb3J0cy5BcnJvd0Rvd25MZWZ0RnJvbVNxdWFyZSA9IFNxdWFyZUFycm93T3V0RG93bkxlZnQ7CiAgZXhwb3J0cy5BcnJvd0Rvd25MZWZ0U3F1YXJlID0gU3F1YXJlQXJyb3dEb3duTGVmdDsKICBleHBvcnRzLkFycm93RG93bk5hcnJvd1dpZGUgPSBBcnJvd0Rvd25OYXJyb3dXaWRlOwogIGV4cG9ydHMuQXJyb3dEb3duUmlnaHQgPSBBcnJvd0Rvd25SaWdodDsKICBleHBvcnRzLkFycm93RG93blJpZ2h0RnJvbUNpcmNsZSA9IENpcmNsZUFycm93T3V0RG93blJpZ2h0OwogIGV4cG9ydHMuQXJyb3dEb3duUmlnaHRGcm9tU3F1YXJlID0gU3F1YXJlQXJyb3dPdXREb3duUmlnaHQ7CiAgZXhwb3J0cy5BcnJvd0Rvd25SaWdodFNxdWFyZSA9IFNxdWFyZUFycm93RG93blJpZ2h0OwogIGV4cG9ydHMuQXJyb3dEb3duU3F1YXJlID0gU3F1YXJlQXJyb3dEb3duOwogIGV4cG9ydHMuQXJyb3dEb3duVG9Eb3QgPSBBcnJvd0Rvd25Ub0RvdDsKICBleHBvcnRzLkFycm93RG93blRvTGluZSA9IEFycm93RG93blRvTGluZTsKICBleHBvcnRzLkFycm93RG93blVwID0gQXJyb3dEb3duVXA7CiAgZXhwb3J0cy5BcnJvd0Rvd25XaWRlTmFycm93ID0gQXJyb3dEb3duV2lkZU5hcnJvdzsKICBleHBvcnRzLkFycm93RG93blpBID0gQXJyb3dEb3duWkE7CiAgZXhwb3J0cy5BcnJvd0Rvd25aYSA9IEFycm93RG93blpBOwogIGV4cG9ydHMuQXJyb3dMZWZ0ID0gQXJyb3dMZWZ0OwogIGV4cG9ydHMuQXJyb3dMZWZ0Q2lyY2xlID0gQ2lyY2xlQXJyb3dMZWZ0OwogIGV4cG9ydHMuQXJyb3dMZWZ0RnJvbUxpbmUgPSBBcnJvd0xlZnRGcm9tTGluZTsKICBleHBvcnRzLkFycm93TGVmdFJpZ2h0ID0gQXJyb3dMZWZ0UmlnaHQ7CiAgZXhwb3J0cy5BcnJvd0xlZnRTcXVhcmUgPSBTcXVhcmVBcnJvd0xlZnQ7CiAgZXhwb3J0cy5BcnJvd0xlZnRUb0xpbmUgPSBBcnJvd0xlZnRUb0xpbmU7CiAgZXhwb3J0cy5BcnJvd1JpZ2h0ID0gQXJyb3dSaWdodDsKICBleHBvcnRzLkFycm93UmlnaHRDaXJjbGUgPSBDaXJjbGVBcnJvd1JpZ2h0OwogIGV4cG9ydHMuQXJyb3dSaWdodEZyb21MaW5lID0gQXJyb3dSaWdodEZyb21MaW5lOwogIGV4cG9ydHMuQXJyb3dSaWdodExlZnQgPSBBcnJvd1JpZ2h0TGVmdDsKICBleHBvcnRzLkFycm93UmlnaHRTcXVhcmUgPSBTcXVhcmVBcnJvd1JpZ2h0OwogIGV4cG9ydHMuQXJyb3dSaWdodFRvTGluZSA9IEFycm93UmlnaHRUb0xpbmU7CiAgZXhwb3J0cy5BcnJvd1VwID0gQXJyb3dVcDsKICBleHBvcnRzLkFycm93VXAwMSA9IEFycm93VXAwMTsKICBleHBvcnRzLkFycm93VXAxMCA9IEFycm93VXAxMDsKICBleHBvcnRzLkFycm93VXBBWiA9IEFycm93VXBBWjsKICBleHBvcnRzLkFycm93VXBBeiA9IEFycm93VXBBWjsKICBleHBvcnRzLkFycm93VXBDaXJjbGUgPSBDaXJjbGVBcnJvd1VwOwogIGV4cG9ydHMuQXJyb3dVcERvd24gPSBBcnJvd1VwRG93bjsKICBleHBvcnRzLkFycm93VXBGcm9tRG90ID0gQXJyb3dVcEZyb21Eb3Q7CiAgZXhwb3J0cy5BcnJvd1VwRnJvbUxpbmUgPSBBcnJvd1VwRnJvbUxpbmU7CiAgZXhwb3J0cy5BcnJvd1VwTGVmdCA9IEFycm93VXBMZWZ0OwogIGV4cG9ydHMuQXJyb3dVcExlZnRGcm9tQ2lyY2xlID0gQ2lyY2xlQXJyb3dPdXRVcExlZnQ7CiAgZXhwb3J0cy5BcnJvd1VwTGVmdEZyb21TcXVhcmUgPSBTcXVhcmVBcnJvd091dFVwTGVmdDsKICBleHBvcnRzLkFycm93VXBMZWZ0U3F1YXJlID0gU3F1YXJlQXJyb3dVcExlZnQ7CiAgZXhwb3J0cy5BcnJvd1VwTmFycm93V2lkZSA9IEFycm93VXBOYXJyb3dXaWRlOwogIGV4cG9ydHMuQXJyb3dVcFJpZ2h0ID0gQXJyb3dVcFJpZ2h0OwogIGV4cG9ydHMuQXJyb3dVcFJpZ2h0RnJvbUNpcmNsZSA9IENpcmNsZUFycm93T3V0VXBSaWdodDsKICBleHBvcnRzLkFycm93VXBSaWdodEZyb21TcXVhcmUgPSBTcXVhcmVBcnJvd091dFVwUmlnaHQ7CiAgZXhwb3J0cy5BcnJvd1VwUmlnaHRTcXVhcmUgPSBTcXVhcmVBcnJvd1VwUmlnaHQ7CiAgZXhwb3J0cy5BcnJvd1VwU3F1YXJlID0gU3F1YXJlQXJyb3dVcDsKICBleHBvcnRzLkFycm93VXBUb0xpbmUgPSBBcnJvd1VwVG9MaW5lOwogIGV4cG9ydHMuQXJyb3dVcFdpZGVOYXJyb3cgPSBBcnJvd1VwV2lkZU5hcnJvdzsKICBleHBvcnRzLkFycm93VXBaQSA9IEFycm93VXBaQTsKICBleHBvcnRzLkFycm93VXBaYSA9IEFycm93VXBaQTsKICBleHBvcnRzLkFycm93c1VwRnJvbUxpbmUgPSBBcnJvd3NVcEZyb21MaW5lOwogIGV4cG9ydHMuQXN0ZXJpc2sgPSBBc3RlcmlzazsKICBleHBvcnRzLkFzdGVyaXNrU3F1YXJlID0gU3F1YXJlQXN0ZXJpc2s7CiAgZXhwb3J0cy5Bc3Ryb2lkID0gQXN0cm9pZDsKICBleHBvcnRzLkF0U2lnbiA9IEF0U2lnbjsKICBleHBvcnRzLkF0b20gPSBBdG9tOwogIGV4cG9ydHMuQXVkaW9MaW5lcyA9IEF1ZGlvTGluZXM7CiAgZXhwb3J0cy5BdWRpb1dhdmVmb3JtID0gQXVkaW9XYXZlZm9ybTsKICBleHBvcnRzLkF3YXJkID0gQXdhcmQ7CiAgZXhwb3J0cy5BeGUgPSBBeGU7CiAgZXhwb3J0cy5BeGlzM0QgPSBBeGlzM2Q7CiAgZXhwb3J0cy5BeGlzM2QgPSBBeGlzM2Q7CiAgZXhwb3J0cy5CYWJ5ID0gQmFieTsKICBleHBvcnRzLkJhY2twYWNrID0gQmFja3BhY2s7CiAgZXhwb3J0cy5CYWRnZSA9IEJhZGdlOwogIGV4cG9ydHMuQmFkZ2VBbGVydCA9IEJhZGdlQWxlcnQ7CiAgZXhwb3J0cy5CYWRnZUNlbnQgPSBCYWRnZUNlbnQ7CiAgZXhwb3J0cy5CYWRnZUNoZWNrID0gQmFkZ2VDaGVjazsKICBleHBvcnRzLkJhZGdlRG9sbGFyU2lnbiA9IEJhZGdlRG9sbGFyU2lnbjsKICBleHBvcnRzLkJhZGdlRXVybyA9IEJhZGdlRXVybzsKICBleHBvcnRzLkJhZGdlSGVscCA9IEJhZGdlUXVlc3Rpb25NYXJrOwogIGV4cG9ydHMuQmFkZ2VJbmRpYW5SdXBlZSA9IEJhZGdlSW5kaWFuUnVwZWU7CiAgZXhwb3J0cy5CYWRnZUluZm8gPSBCYWRnZUluZm87CiAgZXhwb3J0cy5CYWRnZUphcGFuZXNlWWVuID0gQmFkZ2VKYXBhbmVzZVllbjsKICBleHBvcnRzLkJhZGdlTWludXMgPSBCYWRnZU1pbnVzOwogIGV4cG9ydHMuQmFkZ2VQZXJjZW50ID0gQmFkZ2VQZXJjZW50OwogIGV4cG9ydHMuQmFkZ2VQbHVzID0gQmFkZ2VQbHVzOwogIGV4cG9ydHMuQmFkZ2VQb3VuZFN0ZXJsaW5nID0gQmFkZ2VQb3VuZFN0ZXJsaW5nOwogIGV4cG9ydHMuQmFkZ2VRdWVzdGlvbk1hcmsgPSBCYWRnZVF1ZXN0aW9uTWFyazsKICBleHBvcnRzLkJhZGdlUnVzc2lhblJ1YmxlID0gQmFkZ2VSdXNzaWFuUnVibGU7CiAgZXhwb3J0cy5CYWRnZVN3aXNzRnJhbmMgPSBCYWRnZVN3aXNzRnJhbmM7CiAgZXhwb3J0cy5CYWRnZVR1cmtpc2hMaXJhID0gQmFkZ2VUdXJraXNoTGlyYTsKICBleHBvcnRzLkJhZGdlWCA9IEJhZGdlWDsKICBleHBvcnRzLkJhZ2dhZ2VDbGFpbSA9IEJhZ2dhZ2VDbGFpbTsKICBleHBvcnRzLkJhbGxvb24gPSBCYWxsb29uOwogIGV4cG9ydHMuQmFuID0gQmFuOwogIGV4cG9ydHMuQmFuYW5hID0gQmFuYW5hOwogIGV4cG9ydHMuQmFuZGFnZSA9IEJhbmRhZ2U7CiAgZXhwb3J0cy5CYW5rbm90ZSA9IEJhbmtub3RlOwogIGV4cG9ydHMuQmFua25vdGVBcnJvd0Rvd24gPSBCYW5rbm90ZUFycm93RG93bjsKICBleHBvcnRzLkJhbmtub3RlQXJyb3dVcCA9IEJhbmtub3RlQXJyb3dVcDsKICBleHBvcnRzLkJhbmtub3RlQ2hlY2sgPSBCYW5rbm90ZUNoZWNrOwogIGV4cG9ydHMuQmFua25vdGVYID0gQmFua25vdGVYOwogIGV4cG9ydHMuQmFyQ2hhcnQgPSBDaGFydE5vQXhlc0NvbHVtbkluY3JlYXNpbmc7CiAgZXhwb3J0cy5CYXJDaGFydDIgPSBDaGFydE5vQXhlc0NvbHVtbjsKICBleHBvcnRzLkJhckNoYXJ0MyA9IENoYXJ0Q29sdW1uOwogIGV4cG9ydHMuQmFyQ2hhcnQ0ID0gQ2hhcnRDb2x1bW5JbmNyZWFzaW5nOwogIGV4cG9ydHMuQmFyQ2hhcnRCaWcgPSBDaGFydENvbHVtbkJpZzsKICBleHBvcnRzLkJhckNoYXJ0SG9yaXpvbnRhbCA9IENoYXJ0QmFyOwogIGV4cG9ydHMuQmFyQ2hhcnRIb3Jpem9udGFsQmlnID0gQ2hhcnRCYXJCaWc7CiAgZXhwb3J0cy5CYXJjb2RlID0gQmFyY29kZTsKICBleHBvcnRzLkJhcnJlbCA9IEJhcnJlbDsKICBleHBvcnRzLkJhc2VsaW5lID0gQmFzZWxpbmU7CiAgZXhwb3J0cy5CYXRoID0gQmF0aDsKICBleHBvcnRzLkJhdHRlcnkgPSBCYXR0ZXJ5OwogIGV4cG9ydHMuQmF0dGVyeUNoYXJnaW5nID0gQmF0dGVyeUNoYXJnaW5nOwogIGV4cG9ydHMuQmF0dGVyeUZ1bGwgPSBCYXR0ZXJ5RnVsbDsKICBleHBvcnRzLkJhdHRlcnlMb3cgPSBCYXR0ZXJ5TG93OwogIGV4cG9ydHMuQmF0dGVyeU1lZGl1bSA9IEJhdHRlcnlNZWRpdW07CiAgZXhwb3J0cy5CYXR0ZXJ5UGx1cyA9IEJhdHRlcnlQbHVzOwogIGV4cG9ydHMuQmF0dGVyeVdhcm5pbmcgPSBCYXR0ZXJ5V2FybmluZzsKICBleHBvcnRzLkJlYWtlciA9IEJlYWtlcjsKICBleHBvcnRzLkJlYW4gPSBCZWFuOwogIGV4cG9ydHMuQmVhbk9mZiA9IEJlYW5PZmY7CiAgZXhwb3J0cy5CZWQgPSBCZWQ7CiAgZXhwb3J0cy5CZWREb3VibGUgPSBCZWREb3VibGU7CiAgZXhwb3J0cy5CZWRTaW5nbGUgPSBCZWRTaW5nbGU7CiAgZXhwb3J0cy5CZWVmID0gQmVlZjsKICBleHBvcnRzLkJlZWZPZmYgPSBCZWVmT2ZmOwogIGV4cG9ydHMuQmVlciA9IEJlZXI7CiAgZXhwb3J0cy5CZWVyT2ZmID0gQmVlck9mZjsKICBleHBvcnRzLkJlbGwgPSBCZWxsOwogIGV4cG9ydHMuQmVsbENoZWNrID0gQmVsbENoZWNrOwogIGV4cG9ydHMuQmVsbERvdCA9IEJlbGxEb3Q7CiAgZXhwb3J0cy5CZWxsRWxlY3RyaWMgPSBCZWxsRWxlY3RyaWM7CiAgZXhwb3J0cy5CZWxsTWludXMgPSBCZWxsTWludXM7CiAgZXhwb3J0cy5CZWxsT2ZmID0gQmVsbE9mZjsKICBleHBvcnRzLkJlbGxQbHVzID0gQmVsbFBsdXM7CiAgZXhwb3J0cy5CZWxsUmluZyA9IEJlbGxSaW5nOwogIGV4cG9ydHMuQmV0d2Vlbkhvcml6b25hbEVuZCA9IEJldHdlZW5Ib3Jpem9udGFsRW5kOwogIGV4cG9ydHMuQmV0d2Vlbkhvcml6b25hbFN0YXJ0ID0gQmV0d2Vlbkhvcml6b250YWxTdGFydDsKICBleHBvcnRzLkJldHdlZW5Ib3Jpem9udGFsRW5kID0gQmV0d2Vlbkhvcml6b250YWxFbmQ7CiAgZXhwb3J0cy5CZXR3ZWVuSG9yaXpvbnRhbFN0YXJ0ID0gQmV0d2Vlbkhvcml6b250YWxTdGFydDsKICBleHBvcnRzLkJldHdlZW5WZXJ0aWNhbEVuZCA9IEJldHdlZW5WZXJ0aWNhbEVuZDsKICBleHBvcnRzLkJldHdlZW5WZXJ0aWNhbFN0YXJ0ID0gQmV0d2VlblZlcnRpY2FsU3RhcnQ7CiAgZXhwb3J0cy5CaWNlcHNGbGV4ZWQgPSBCaWNlcHNGbGV4ZWQ7CiAgZXhwb3J0cy5CaWtlID0gQmlrZTsKICBleHBvcnRzLkJpbmFyeSA9IEJpbmFyeTsKICBleHBvcnRzLkJpbm9jdWxhcnMgPSBCaW5vY3VsYXJzOwogIGV4cG9ydHMuQmlvaGF6YXJkID0gQmlvaGF6YXJkOwogIGV4cG9ydHMuQmlyZCA9IEJpcmQ7CiAgZXhwb3J0cy5CaXJkaG91c2UgPSBCaXJkaG91c2U7CiAgZXhwb3J0cy5CaXRjb2luID0gQml0Y29pbjsKICBleHBvcnRzLkJsZW5kID0gQmxlbmQ7CiAgZXhwb3J0cy5CbGVuZGVyID0gQmxlbmRlcjsKICBleHBvcnRzLkJsaW5kcyA9IEJsaW5kczsKICBleHBvcnRzLkJsb2NrcyA9IEJsb2NrczsKICBleHBvcnRzLkJsdWV0b290aCA9IEJsdWV0b290aDsKICBleHBvcnRzLkJsdWV0b290aENvbm5lY3RlZCA9IEJsdWV0b290aENvbm5lY3RlZDsKICBleHBvcnRzLkJsdWV0b290aE9mZiA9IEJsdWV0b290aE9mZjsKICBleHBvcnRzLkJsdWV0b290aFNlYXJjaGluZyA9IEJsdWV0b290aFNlYXJjaGluZzsKICBleHBvcnRzLkJvbGQgPSBCb2xkOwogIGV4cG9ydHMuQm9sdCA9IEJvbHQ7CiAgZXhwb3J0cy5Cb21iID0gQm9tYjsKICBleHBvcnRzLkJvbmUgPSBCb25lOwogIGV4cG9ydHMuQm9uZUZyYWN0dXJlID0gQm9uZUZyYWN0dXJlOwogIGV4cG9ydHMuQm9vayA9IEJvb2s7CiAgZXhwb3J0cy5Cb29rQSA9IEJvb2tBOwogIGV4cG9ydHMuQm9va0FsZXJ0ID0gQm9va0FsZXJ0OwogIGV4cG9ydHMuQm9va0F1ZGlvID0gQm9va0F1ZGlvOwogIGV4cG9ydHMuQm9va0NoZWNrID0gQm9va0NoZWNrOwogIGV4cG9ydHMuQm9va0NvcHkgPSBCb29rQ29weTsKICBleHBvcnRzLkJvb2tEYXNoZWQgPSBCb29rRGFzaGVkOwogIGV4cG9ydHMuQm9va0Rvd24gPSBCb29rRG93bjsKICBleHBvcnRzLkJvb2tIZWFkcGhvbmVzID0gQm9va0hlYWRwaG9uZXM7CiAgZXhwb3J0cy5Cb29rSGVhcnQgPSBCb29rSGVhcnQ7CiAgZXhwb3J0cy5Cb29rSW1hZ2UgPSBCb29rSW1hZ2U7CiAgZXhwb3J0cy5Cb29rS2V5ID0gQm9va0tleTsKICBleHBvcnRzLkJvb2tMb2NrID0gQm9va0xvY2s7CiAgZXhwb3J0cy5Cb29rTWFya2VkID0gQm9va01hcmtlZDsKICBleHBvcnRzLkJvb2tNaW51cyA9IEJvb2tNaW51czsKICBleHBvcnRzLkJvb2tPcGVuID0gQm9va09wZW47CiAgZXhwb3J0cy5Cb29rT3BlbkNoZWNrID0gQm9va09wZW5DaGVjazsKICBleHBvcnRzLkJvb2tPcGVuVGV4dCA9IEJvb2tPcGVuVGV4dDsKICBleHBvcnRzLkJvb2tQbHVzID0gQm9va1BsdXM7CiAgZXhwb3J0cy5Cb29rU2VhcmNoID0gQm9va1NlYXJjaDsKICBleHBvcnRzLkJvb2tUZW1wbGF0ZSA9IEJvb2tEYXNoZWQ7CiAgZXhwb3J0cy5Cb29rVGV4dCA9IEJvb2tUZXh0OwogIGV4cG9ydHMuQm9va1R5cGUgPSBCb29rVHlwZTsKICBleHBvcnRzLkJvb2tVcCA9IEJvb2tVcDsKICBleHBvcnRzLkJvb2tVcDIgPSBCb29rVXAyOwogIGV4cG9ydHMuQm9va1VzZXIgPSBCb29rVXNlcjsKICBleHBvcnRzLkJvb2tYID0gQm9va1g7CiAgZXhwb3J0cy5Cb29rbWFyayA9IEJvb2ttYXJrOwogIGV4cG9ydHMuQm9va21hcmtDaGVjayA9IEJvb2ttYXJrQ2hlY2s7CiAgZXhwb3J0cy5Cb29rbWFya01pbnVzID0gQm9va21hcmtNaW51czsKICBleHBvcnRzLkJvb2ttYXJrT2ZmID0gQm9va21hcmtPZmY7CiAgZXhwb3J0cy5Cb29rbWFya1BsdXMgPSBCb29rbWFya1BsdXM7CiAgZXhwb3J0cy5Cb29rbWFya1ggPSBCb29rbWFya1g7CiAgZXhwb3J0cy5Cb29tQm94ID0gQm9vbUJveDsKICBleHBvcnRzLkJvdCA9IEJvdDsKICBleHBvcnRzLkJvdE1lc3NhZ2VTcXVhcmUgPSBCb3RNZXNzYWdlU3F1YXJlOwogIGV4cG9ydHMuQm90T2ZmID0gQm90T2ZmOwogIGV4cG9ydHMuQm90dGxlV2luZSA9IEJvdHRsZVdpbmU7CiAgZXhwb3J0cy5Cb3dBcnJvdyA9IEJvd0Fycm93OwogIGV4cG9ydHMuQm94ID0gQm94OwogIGV4cG9ydHMuQm94U2VsZWN0ID0gU3F1YXJlRGFzaGVkOwogIGV4cG9ydHMuQm94ZXMgPSBCb3hlczsKICBleHBvcnRzLkJyYWNlcyA9IEJyYWNlczsKICBleHBvcnRzLkJyYWNrZXRzID0gQnJhY2tldHM7CiAgZXhwb3J0cy5CcmFpbiA9IEJyYWluOwogIGV4cG9ydHMuQnJhaW5DaXJjdWl0ID0gQnJhaW5DaXJjdWl0OwogIGV4cG9ydHMuQnJhaW5Db2cgPSBCcmFpbkNvZzsKICBleHBvcnRzLkJyaWNrV2FsbCA9IEJyaWNrV2FsbDsKICBleHBvcnRzLkJyaWNrV2FsbEZpcmUgPSBCcmlja1dhbGxGaXJlOwogIGV4cG9ydHMuQnJpY2tXYWxsU2hpZWxkID0gQnJpY2tXYWxsU2hpZWxkOwogIGV4cG9ydHMuQnJpZWZjYXNlID0gQnJpZWZjYXNlOwogIGV4cG9ydHMuQnJpZWZjYXNlQnVzaW5lc3MgPSBCcmllZmNhc2VCdXNpbmVzczsKICBleHBvcnRzLkJyaWVmY2FzZUNvbnZleW9yQmVsdCA9IEJyaWVmY2FzZUNvbnZleW9yQmVsdDsKICBleHBvcnRzLkJyaWVmY2FzZU1lZGljYWwgPSBCcmllZmNhc2VNZWRpY2FsOwogIGV4cG9ydHMuQnJpbmdUb0Zyb250ID0gQnJpbmdUb0Zyb250OwogIGV4cG9ydHMuQnJvY2NvbGkgPSBCcm9jY29saTsKICBleHBvcnRzLkJydXNoID0gQnJ1c2g7CiAgZXhwb3J0cy5CcnVzaENsZWFuaW5nID0gQnJ1c2hDbGVhbmluZzsKICBleHBvcnRzLkJ1YmJsZXMgPSBCdWJibGVzOwogIGV4cG9ydHMuQnVnID0gQnVnOwogIGV4cG9ydHMuQnVnT2ZmID0gQnVnT2ZmOwogIGV4cG9ydHMuQnVnUGxheSA9IEJ1Z1BsYXk7CiAgZXhwb3J0cy5CdWlsZGluZyA9IEJ1aWxkaW5nOwogIGV4cG9ydHMuQnVpbGRpbmcyID0gQnVpbGRpbmcyOwogIGV4cG9ydHMuQnVzID0gQnVzOwogIGV4cG9ydHMuQnVzRnJvbnQgPSBCdXNGcm9udDsKICBleHBvcnRzLkNhYmxlID0gQ2FibGU7CiAgZXhwb3J0cy5DYWJsZUNhciA9IENhYmxlQ2FyOwogIGV4cG9ydHMuQ2FrZSA9IENha2U7CiAgZXhwb3J0cy5DYWtlU2xpY2UgPSBDYWtlU2xpY2U7CiAgZXhwb3J0cy5DYWxjdWxhdG9yID0gQ2FsY3VsYXRvcjsKICBleHBvcnRzLkNhbGVuZGFyID0gQ2FsZW5kYXI7CiAgZXhwb3J0cy5DYWxlbmRhcjEgPSBDYWxlbmRhcjE7CiAgZXhwb3J0cy5DYWxlbmRhckFycm93RG93biA9IENhbGVuZGFyQXJyb3dEb3duOwogIGV4cG9ydHMuQ2FsZW5kYXJBcnJvd1VwID0gQ2FsZW5kYXJBcnJvd1VwOwogIGV4cG9ydHMuQ2FsZW5kYXJDaGVjayA9IENhbGVuZGFyQ2hlY2s7CiAgZXhwb3J0cy5DYWxlbmRhckNoZWNrMiA9IENhbGVuZGFyQ2hlY2syOwogIGV4cG9ydHMuQ2FsZW5kYXJDbG9jayA9IENhbGVuZGFyQ2xvY2s7CiAgZXhwb3J0cy5DYWxlbmRhckNvZyA9IENhbGVuZGFyQ29nOwogIGV4cG9ydHMuQ2FsZW5kYXJEYXlzID0gQ2FsZW5kYXJEYXlzOwogIGV4cG9ydHMuQ2FsZW5kYXJGb2xkID0gQ2FsZW5kYXJGb2xkOwogIGV4cG9ydHMuQ2FsZW5kYXJIZWFydCA9IENhbGVuZGFySGVhcnQ7CiAgZXhwb3J0cy5DYWxlbmRhck1pbnVzID0gQ2FsZW5kYXJNaW51czsKICBleHBvcnRzLkNhbGVuZGFyTWludXMyID0gQ2FsZW5kYXJNaW51czI7CiAgZXhwb3J0cy5DYWxlbmRhck9mZiA9IENhbGVuZGFyT2ZmOwogIGV4cG9ydHMuQ2FsZW5kYXJQbHVzID0gQ2FsZW5kYXJQbHVzOwogIGV4cG9ydHMuQ2FsZW5kYXJQbHVzMiA9IENhbGVuZGFyUGx1czI7CiAgZXhwb3J0cy5DYWxlbmRhclJhbmdlID0gQ2FsZW5kYXJSYW5nZTsKICBleHBvcnRzLkNhbGVuZGFyU2VhcmNoID0gQ2FsZW5kYXJTZWFyY2g7CiAgZXhwb3J0cy5DYWxlbmRhclN5bmMgPSBDYWxlbmRhclN5bmM7CiAgZXhwb3J0cy5DYWxlbmRhclggPSBDYWxlbmRhclg7CiAgZXhwb3J0cy5DYWxlbmRhclgyID0gQ2FsZW5kYXJYMjsKICBleHBvcnRzLkNhbGVuZGFycyA9IENhbGVuZGFyczsKICBleHBvcnRzLkNhbWVyYSA9IENhbWVyYTsKICBleHBvcnRzLkNhbWVyYU9mZiA9IENhbWVyYU9mZjsKICBleHBvcnRzLkNhbmRsZXN0aWNrQ2hhcnQgPSBDaGFydENhbmRsZXN0aWNrOwogIGV4cG9ydHMuQ2FuZHkgPSBDYW5keTsKICBleHBvcnRzLkNhbmR5Q2FuZSA9IENhbmR5Q2FuZTsKICBleHBvcnRzLkNhbmR5T2ZmID0gQ2FuZHlPZmY7CiAgZXhwb3J0cy5DYW5uYWJpcyA9IENhbm5hYmlzOwogIGV4cG9ydHMuQ2FubmFiaXNPZmYgPSBDYW5uYWJpc09mZjsKICBleHBvcnRzLkNhcHRpb25zID0gQ2FwdGlvbnM7CiAgZXhwb3J0cy5DYXB0aW9uc09mZiA9IENhcHRpb25zT2ZmOwogIGV4cG9ydHMuQ2FyID0gQ2FyOwogIGV4cG9ydHMuQ2FyRnJvbnQgPSBDYXJGcm9udDsKICBleHBvcnRzLkNhclRheGlGcm9udCA9IENhclRheGlGcm9udDsKICBleHBvcnRzLkNhcmF2YW4gPSBDYXJhdmFuOwogIGV4cG9ydHMuQ2FyZFNpbSA9IENhcmRTaW07CiAgZXhwb3J0cy5DYXJyb3QgPSBDYXJyb3Q7CiAgZXhwb3J0cy5DYXNlTG93ZXIgPSBDYXNlTG93ZXI7CiAgZXhwb3J0cy5DYXNlU2Vuc2l0aXZlID0gQ2FzZVNlbnNpdGl2ZTsKICBleHBvcnRzLkNhc2VVcHBlciA9IENhc2VVcHBlcjsKICBleHBvcnRzLkNhc3NldHRlVGFwZSA9IENhc3NldHRlVGFwZTsKICBleHBvcnRzLkNhc3QgPSBDYXN0OwogIGV4cG9ydHMuQ2FzdGxlID0gQ2FzdGxlOwogIGV4cG9ydHMuQ2F0ID0gQ2F0OwogIGV4cG9ydHMuQ2N0diA9IENjdHY7CiAgZXhwb3J0cy5DY3R2T2ZmID0gQ2N0dk9mZjsKICBleHBvcnRzLkNoYXJ0QXJlYSA9IENoYXJ0QXJlYTsKICBleHBvcnRzLkNoYXJ0QmFyID0gQ2hhcnRCYXI7CiAgZXhwb3J0cy5DaGFydEJhckJpZyA9IENoYXJ0QmFyQmlnOwogIGV4cG9ydHMuQ2hhcnRCYXJEZWNyZWFzaW5nID0gQ2hhcnRCYXJEZWNyZWFzaW5nOwogIGV4cG9ydHMuQ2hhcnRCYXJJbmNyZWFzaW5nID0gQ2hhcnRCYXJJbmNyZWFzaW5nOwogIGV4cG9ydHMuQ2hhcnRCYXJTdGFja2VkID0gQ2hhcnRCYXJTdGFja2VkOwogIGV4cG9ydHMuQ2hhcnRDYW5kbGVzdGljayA9IENoYXJ0Q2FuZGxlc3RpY2s7CiAgZXhwb3J0cy5DaGFydENvbHVtbiA9IENoYXJ0Q29sdW1uOwogIGV4cG9ydHMuQ2hhcnRDb2x1bW5CaWcgPSBDaGFydENvbHVtbkJpZzsKICBleHBvcnRzLkNoYXJ0Q29sdW1uRGVjcmVhc2luZyA9IENoYXJ0Q29sdW1uRGVjcmVhc2luZzsKICBleHBvcnRzLkNoYXJ0Q29sdW1uSW5jcmVhc2luZyA9IENoYXJ0Q29sdW1uSW5jcmVhc2luZzsKICBleHBvcnRzLkNoYXJ0Q29sdW1uU3RhY2tlZCA9IENoYXJ0Q29sdW1uU3RhY2tlZDsKICBleHBvcnRzLkNoYXJ0R2FudHQgPSBDaGFydEdhbnR0OwogIGV4cG9ydHMuQ2hhcnRMaW5lID0gQ2hhcnRMaW5lOwogIGV4cG9ydHMuQ2hhcnROZXR3b3JrID0gQ2hhcnROZXR3b3JrOwogIGV4cG9ydHMuQ2hhcnROb0F4ZXNDb2x1bW4gPSBDaGFydE5vQXhlc0NvbHVtbjsKICBleHBvcnRzLkNoYXJ0Tm9BeGVzQ29sdW1uRGVjcmVhc2luZyA9IENoYXJ0Tm9BeGVzQ29sdW1uRGVjcmVhc2luZzsKICBleHBvcnRzLkNoYXJ0Tm9BeGVzQ29sdW1uSW5jcmVhc2luZyA9IENoYXJ0Tm9BeGVzQ29sdW1uSW5jcmVhc2luZzsKICBleHBvcnRzLkNoYXJ0Tm9BeGVzQ29tYmluZWQgPSBDaGFydE5vQXhlc0NvbWJpbmVkOwogIGV4cG9ydHMuQ2hhcnROb0F4ZXNHYW50dCA9IENoYXJ0Tm9BeGVzR2FudHQ7CiAgZXhwb3J0cy5DaGFydFBpZSA9IENoYXJ0UGllOwogIGV4cG9ydHMuQ2hhcnRTY2F0dGVyID0gQ2hhcnRTY2F0dGVyOwogIGV4cG9ydHMuQ2hhcnRTcGxpbmUgPSBDaGFydFNwbGluZTsKICBleHBvcnRzLkNoZWNrID0gQ2hlY2s7CiAgZXhwb3J0cy5DaGVja0NoZWNrID0gQ2hlY2tDaGVjazsKICBleHBvcnRzLkNoZWNrQ2lyY2xlID0gQ2lyY2xlQ2hlY2tCaWc7CiAgZXhwb3J0cy5DaGVja0NpcmNsZTIgPSBDaXJjbGVDaGVjazsKICBleHBvcnRzLkNoZWNrTGluZSA9IENoZWNrTGluZTsKICBleHBvcnRzLkNoZWNrU3F1YXJlID0gU3F1YXJlQ2hlY2tCaWc7CiAgZXhwb3J0cy5DaGVja1NxdWFyZTIgPSBTcXVhcmVDaGVjazsKICBleHBvcnRzLkNoZWZIYXQgPSBDaGVmSGF0OwogIGV4cG9ydHMuQ2hlcnJ5ID0gQ2hlcnJ5OwogIGV4cG9ydHMuQ2hlc3NCaXNob3AgPSBDaGVzc0Jpc2hvcDsKICBleHBvcnRzLkNoZXNzS2luZyA9IENoZXNzS2luZzsKICBleHBvcnRzLkNoZXNzS25pZ2h0ID0gQ2hlc3NLbmlnaHQ7CiAgZXhwb3J0cy5DaGVzc1Bhd24gPSBDaGVzc1Bhd247CiAgZXhwb3J0cy5DaGVzc1F1ZWVuID0gQ2hlc3NRdWVlbjsKICBleHBvcnRzLkNoZXNzUm9vayA9IENoZXNzUm9vazsKICBleHBvcnRzLkNoZXZyb25Eb3duID0gQ2hldnJvbkRvd247CiAgZXhwb3J0cy5DaGV2cm9uRG93bkNpcmNsZSA9IENpcmNsZUNoZXZyb25Eb3duOwogIGV4cG9ydHMuQ2hldnJvbkRvd25TcXVhcmUgPSBTcXVhcmVDaGV2cm9uRG93bjsKICBleHBvcnRzLkNoZXZyb25GaXJzdCA9IENoZXZyb25GaXJzdDsKICBleHBvcnRzLkNoZXZyb25MYXN0ID0gQ2hldnJvbkxhc3Q7CiAgZXhwb3J0cy5DaGV2cm9uTGVmdCA9IENoZXZyb25MZWZ0OwogIGV4cG9ydHMuQ2hldnJvbkxlZnRDaXJjbGUgPSBDaXJjbGVDaGV2cm9uTGVmdDsKICBleHBvcnRzLkNoZXZyb25MZWZ0U3F1YXJlID0gU3F1YXJlQ2hldnJvbkxlZnQ7CiAgZXhwb3J0cy5DaGV2cm9uUmlnaHQgPSBDaGV2cm9uUmlnaHQ7CiAgZXhwb3J0cy5DaGV2cm9uUmlnaHRDaXJjbGUgPSBDaXJjbGVDaGV2cm9uUmlnaHQ7CiAgZXhwb3J0cy5DaGV2cm9uUmlnaHRTcXVhcmUgPSBTcXVhcmVDaGV2cm9uUmlnaHQ7CiAgZXhwb3J0cy5DaGV2cm9uVXAgPSBDaGV2cm9uVXA7CiAgZXhwb3J0cy5DaGV2cm9uVXBDaXJjbGUgPSBDaXJjbGVDaGV2cm9uVXA7CiAgZXhwb3J0cy5DaGV2cm9uVXBTcXVhcmUgPSBTcXVhcmVDaGV2cm9uVXA7CiAgZXhwb3J0cy5DaGV2cm9uc0Rvd24gPSBDaGV2cm9uc0Rvd247CiAgZXhwb3J0cy5DaGV2cm9uc0Rvd25VcCA9IENoZXZyb25zRG93blVwOwogIGV4cG9ydHMuQ2hldnJvbnNMZWZ0ID0gQ2hldnJvbnNMZWZ0OwogIGV4cG9ydHMuQ2hldnJvbnNMZWZ0UmlnaHQgPSBDaGV2cm9uc0xlZnRSaWdodDsKICBleHBvcnRzLkNoZXZyb25zTGVmdFJpZ2h0RWxsaXBzaXMgPSBDaGV2cm9uc0xlZnRSaWdodEVsbGlwc2lzOwogIGV4cG9ydHMuQ2hldnJvbnNSaWdodCA9IENoZXZyb25zUmlnaHQ7CiAgZXhwb3J0cy5DaGV2cm9uc1JpZ2h0TGVmdCA9IENoZXZyb25zUmlnaHRMZWZ0OwogIGV4cG9ydHMuQ2hldnJvbnNVcCA9IENoZXZyb25zVXA7CiAgZXhwb3J0cy5DaGV2cm9uc1VwRG93biA9IENoZXZyb25zVXBEb3duOwogIGV4cG9ydHMuQ2h1cmNoID0gQ2h1cmNoOwogIGV4cG9ydHMuQ2lnYXJldHRlID0gQ2lnYXJldHRlOwogIGV4cG9ydHMuQ2lnYXJldHRlT2ZmID0gQ2lnYXJldHRlT2ZmOwogIGV4cG9ydHMuQ2lyY2xlID0gQ2lyY2xlOwogIGV4cG9ydHMuQ2lyY2xlQWxlcnQgPSBDaXJjbGVBbGVydDsKICBleHBvcnRzLkNpcmNsZUFycm93RG93biA9IENpcmNsZUFycm93RG93bjsKICBleHBvcnRzLkNpcmNsZUFycm93TGVmdCA9IENpcmNsZUFycm93TGVmdDsKICBleHBvcnRzLkNpcmNsZUFycm93T3V0RG93bkxlZnQgPSBDaXJjbGVBcnJvd091dERvd25MZWZ0OwogIGV4cG9ydHMuQ2lyY2xlQXJyb3dPdXREb3duUmlnaHQgPSBDaXJjbGVBcnJvd091dERvd25SaWdodDsKICBleHBvcnRzLkNpcmNsZUFycm93T3V0VXBMZWZ0ID0gQ2lyY2xlQXJyb3dPdXRVcExlZnQ7CiAgZXhwb3J0cy5DaXJjbGVBcnJvd091dFVwUmlnaHQgPSBDaXJjbGVBcnJvd091dFVwUmlnaHQ7CiAgZXhwb3J0cy5DaXJjbGVBcnJvd1JpZ2h0ID0gQ2lyY2xlQXJyb3dSaWdodDsKICBleHBvcnRzLkNpcmNsZUFycm93VXAgPSBDaXJjbGVBcnJvd1VwOwogIGV4cG9ydHMuQ2lyY2xlQ2hlY2sgPSBDaXJjbGVDaGVjazsKICBleHBvcnRzLkNpcmNsZUNoZWNrQmlnID0gQ2lyY2xlQ2hlY2tCaWc7CiAgZXhwb3J0cy5DaXJjbGVDaGV2cm9uRG93biA9IENpcmNsZUNoZXZyb25Eb3duOwogIGV4cG9ydHMuQ2lyY2xlQ2hldnJvbkxlZnQgPSBDaXJjbGVDaGV2cm9uTGVmdDsKICBleHBvcnRzLkNpcmNsZUNoZXZyb25SaWdodCA9IENpcmNsZUNoZXZyb25SaWdodDsKICBleHBvcnRzLkNpcmNsZUNoZXZyb25VcCA9IENpcmNsZUNoZXZyb25VcDsKICBleHBvcnRzLkNpcmNsZURhc2hlZCA9IENpcmNsZURhc2hlZDsKICBleHBvcnRzLkNpcmNsZURpdmlkZSA9IENpcmNsZURpdmlkZTsKICBleHBvcnRzLkNpcmNsZURvbGxhclNpZ24gPSBDaXJjbGVEb2xsYXJTaWduOwogIGV4cG9ydHMuQ2lyY2xlRG90ID0gQ2lyY2xlRG90OwogIGV4cG9ydHMuQ2lyY2xlRG90RGFzaGVkID0gQ2lyY2xlRG90RGFzaGVkOwogIGV4cG9ydHMuQ2lyY2xlRWxsaXBzaXMgPSBDaXJjbGVFbGxpcHNpczsKICBleHBvcnRzLkNpcmNsZUVxdWFsID0gQ2lyY2xlRXF1YWw7CiAgZXhwb3J0cy5DaXJjbGVFdXJvID0gQ2lyY2xlRXVybzsKICBleHBvcnRzLkNpcmNsZUZhZGluZ0Fycm93VXAgPSBDaXJjbGVGYWRpbmdBcnJvd1VwOwogIGV4cG9ydHMuQ2lyY2xlRmFkaW5nUGx1cyA9IENpcmNsZUZhZGluZ1BsdXM7CiAgZXhwb3J0cy5DaXJjbGVHYXVnZSA9IENpcmNsZUdhdWdlOwogIGV4cG9ydHMuQ2lyY2xlSGVscCA9IENpcmNsZVF1ZXN0aW9uTWFyazsKICBleHBvcnRzLkNpcmNsZU1pbnVzID0gQ2lyY2xlTWludXM7CiAgZXhwb3J0cy5DaXJjbGVPZmYgPSBDaXJjbGVPZmY7CiAgZXhwb3J0cy5DaXJjbGVQYXJraW5nID0gQ2lyY2xlUGFya2luZzsKICBleHBvcnRzLkNpcmNsZVBhcmtpbmdPZmYgPSBDaXJjbGVQYXJraW5nT2ZmOwogIGV4cG9ydHMuQ2lyY2xlUGF1c2UgPSBDaXJjbGVQYXVzZTsKICBleHBvcnRzLkNpcmNsZVBlcmNlbnQgPSBDaXJjbGVQZXJjZW50OwogIGV4cG9ydHMuQ2lyY2xlUGlsZSA9IENpcmNsZVBpbGU7CiAgZXhwb3J0cy5DaXJjbGVQbGF5ID0gQ2lyY2xlUGxheTsKICBleHBvcnRzLkNpcmNsZVBsdXMgPSBDaXJjbGVQbHVzOwogIGV4cG9ydHMuQ2lyY2xlUG91bmRTdGVybGluZyA9IENpcmNsZVBvdW5kU3Rlcmxpbmc7CiAgZXhwb3J0cy5DaXJjbGVQb3dlciA9IENpcmNsZVBvd2VyOwogIGV4cG9ydHMuQ2lyY2xlUXVlc3Rpb25NYXJrID0gQ2lyY2xlUXVlc3Rpb25NYXJrOwogIGV4cG9ydHMuQ2lyY2xlU2xhc2ggPSBDaXJjbGVTbGFzaDsKICBleHBvcnRzLkNpcmNsZVNsYXNoMiA9IENpcmNsZVNsYXNoMjsKICBleHBvcnRzLkNpcmNsZVNsYXNoZWQgPSBDaXJjbGVTbGFzaDI7CiAgZXhwb3J0cy5DaXJjbGVTbWFsbCA9IENpcmNsZVNtYWxsOwogIGV4cG9ydHMuQ2lyY2xlU3RhciA9IENpcmNsZVN0YXI7CiAgZXhwb3J0cy5DaXJjbGVTdG9wID0gQ2lyY2xlU3RvcDsKICBleHBvcnRzLkNpcmNsZVVzZXIgPSBDaXJjbGVVc2VyOwogIGV4cG9ydHMuQ2lyY2xlVXNlclJvdW5kID0gQ2lyY2xlVXNlclJvdW5kOwogIGV4cG9ydHMuQ2lyY2xlWCA9IENpcmNsZVg7CiAgZXhwb3J0cy5DaXJjdWl0Qm9hcmQgPSBDaXJjdWl0Qm9hcmQ7CiAgZXhwb3J0cy5DaXRydXMgPSBDaXRydXM7CiAgZXhwb3J0cy5DbGFwcGVyYm9hcmQgPSBDbGFwcGVyYm9hcmQ7CiAgZXhwb3J0cy5DbGlwYm9hcmQgPSBDbGlwYm9hcmQ7CiAgZXhwb3J0cy5DbGlwYm9hcmRDaGVjayA9IENsaXBib2FyZENoZWNrOwogIGV4cG9ydHMuQ2xpcGJvYXJkQ2xvY2sgPSBDbGlwYm9hcmRDbG9jazsKICBleHBvcnRzLkNsaXBib2FyZENvcHkgPSBDbGlwYm9hcmRDb3B5OwogIGV4cG9ydHMuQ2xpcGJvYXJkRWRpdCA9IENsaXBib2FyZFBlbjsKICBleHBvcnRzLkNsaXBib2FyZExpc3QgPSBDbGlwYm9hcmRMaXN0OwogIGV4cG9ydHMuQ2xpcGJvYXJkTWludXMgPSBDbGlwYm9hcmRNaW51czsKICBleHBvcnRzLkNsaXBib2FyZFBhc3RlID0gQ2xpcGJvYXJkUGFzdGU7CiAgZXhwb3J0cy5DbGlwYm9hcmRQZW4gPSBDbGlwYm9hcmRQZW47CiAgZXhwb3J0cy5DbGlwYm9hcmRQZW5MaW5lID0gQ2xpcGJvYXJkUGVuTGluZTsKICBleHBvcnRzLkNsaXBib2FyZFBsdXMgPSBDbGlwYm9hcmRQbHVzOwogIGV4cG9ydHMuQ2xpcGJvYXJkU2lnbmF0dXJlID0gQ2xpcGJvYXJkUGVuTGluZTsKICBleHBvcnRzLkNsaXBib2FyZFR5cGUgPSBDbGlwYm9hcmRUeXBlOwogIGV4cG9ydHMuQ2xpcGJvYXJkWCA9IENsaXBib2FyZFg7CiAgZXhwb3J0cy5DbG9jayA9IENsb2NrOwogIGV4cG9ydHMuQ2xvY2sxID0gQ2xvY2sxOwogIGV4cG9ydHMuQ2xvY2sxMCA9IENsb2NrMTA7CiAgZXhwb3J0cy5DbG9jazExID0gQ2xvY2sxMTsKICBleHBvcnRzLkNsb2NrMTIgPSBDbG9jazEyOwogIGV4cG9ydHMuQ2xvY2syID0gQ2xvY2syOwogIGV4cG9ydHMuQ2xvY2szID0gQ2xvY2szOwogIGV4cG9ydHMuQ2xvY2s0ID0gQ2xvY2s0OwogIGV4cG9ydHMuQ2xvY2s1ID0gQ2xvY2s1OwogIGV4cG9ydHMuQ2xvY2s2ID0gQ2xvY2s2OwogIGV4cG9ydHMuQ2xvY2s3ID0gQ2xvY2s3OwogIGV4cG9ydHMuQ2xvY2s4ID0gQ2xvY2s4OwogIGV4cG9ydHMuQ2xvY2s5ID0gQ2xvY2s5OwogIGV4cG9ydHMuQ2xvY2tBbGVydCA9IENsb2NrQWxlcnQ7CiAgZXhwb3J0cy5DbG9ja0Fycm93RG93biA9IENsb2NrQXJyb3dEb3duOwogIGV4cG9ydHMuQ2xvY2tBcnJvd0xlZnQgPSBDbG9ja0Fycm93TGVmdDsKICBleHBvcnRzLkNsb2NrQXJyb3dSaWdodCA9IENsb2NrQXJyb3dSaWdodDsKICBleHBvcnRzLkNsb2NrQXJyb3dVcCA9IENsb2NrQXJyb3dVcDsKICBleHBvcnRzLkNsb2NrQ2hlY2sgPSBDbG9ja0NoZWNrOwogIGV4cG9ydHMuQ2xvY2tGYWRpbmcgPSBDbG9ja0ZhZGluZzsKICBleHBvcnRzLkNsb2NrUGx1cyA9IENsb2NrUGx1czsKICBleHBvcnRzLkNsb3NlZENhcHRpb24gPSBDbG9zZWRDYXB0aW9uOwogIGV4cG9ydHMuQ2xvdWQgPSBDbG91ZDsKICBleHBvcnRzLkNsb3VkQWxlcnQgPSBDbG91ZEFsZXJ0OwogIGV4cG9ydHMuQ2xvdWRCYWNrdXAgPSBDbG91ZEJhY2t1cDsKICBleHBvcnRzLkNsb3VkQ2hlY2sgPSBDbG91ZENoZWNrOwogIGV4cG9ydHMuQ2xvdWRDb2cgPSBDbG91ZENvZzsKICBleHBvcnRzLkNsb3VkRG93bmxvYWQgPSBDbG91ZERvd25sb2FkOwogIGV4cG9ydHMuQ2xvdWREcml6emxlID0gQ2xvdWREcml6emxlOwogIGV4cG9ydHMuQ2xvdWRGb2cgPSBDbG91ZEZvZzsKICBleHBvcnRzLkNsb3VkSGFpbCA9IENsb3VkSGFpbDsKICBleHBvcnRzLkNsb3VkTGlnaHRuaW5nID0gQ2xvdWRMaWdodG5pbmc7CiAgZXhwb3J0cy5DbG91ZE1vb24gPSBDbG91ZE1vb247CiAgZXhwb3J0cy5DbG91ZE1vb25SYWluID0gQ2xvdWRNb29uUmFpbjsKICBleHBvcnRzLkNsb3VkT2ZmID0gQ2xvdWRPZmY7CiAgZXhwb3J0cy5DbG91ZFJhaW4gPSBDbG91ZFJhaW47CiAgZXhwb3J0cy5DbG91ZFJhaW5XaW5kID0gQ2xvdWRSYWluV2luZDsKICBleHBvcnRzLkNsb3VkU25vdyA9IENsb3VkU25vdzsKICBleHBvcnRzLkNsb3VkU3VuID0gQ2xvdWRTdW47CiAgZXhwb3J0cy5DbG91ZFN1blJhaW4gPSBDbG91ZFN1blJhaW47CiAgZXhwb3J0cy5DbG91ZFN5bmMgPSBDbG91ZFN5bmM7CiAgZXhwb3J0cy5DbG91ZFVwbG9hZCA9IENsb3VkVXBsb2FkOwogIGV4cG9ydHMuQ2xvdWR5ID0gQ2xvdWR5OwogIGV4cG9ydHMuQ2xvdmVyID0gQ2xvdmVyOwogIGV4cG9ydHMuQ2x1YiA9IENsdWI7CiAgZXhwb3J0cy5Db2RlID0gQ29kZTsKICBleHBvcnRzLkNvZGUyID0gQ29kZVhtbDsKICBleHBvcnRzLkNvZGVTcXVhcmUgPSBTcXVhcmVDb2RlOwogIGV4cG9ydHMuQ29kZVhtbCA9IENvZGVYbWw7CiAgZXhwb3J0cy5Db2ZmZWUgPSBDb2ZmZWU7CiAgZXhwb3J0cy5Db2cgPSBDb2c7CiAgZXhwb3J0cy5Db2lucyA9IENvaW5zOwogIGV4cG9ydHMuQ29sdW1ucyA9IENvbHVtbnMyOwogIGV4cG9ydHMuQ29sdW1uczIgPSBDb2x1bW5zMjsKICBleHBvcnRzLkNvbHVtbnMzID0gQ29sdW1uczM7CiAgZXhwb3J0cy5Db2x1bW5zM0NvZyA9IENvbHVtbnMzQ29nOwogIGV4cG9ydHMuQ29sdW1uczQgPSBDb2x1bW5zNDsKICBleHBvcnRzLkNvbHVtbnNTZXR0aW5ncyA9IENvbHVtbnMzQ29nOwogIGV4cG9ydHMuQ29tYmluZSA9IENvbWJpbmU7CiAgZXhwb3J0cy5Db21tYW5kID0gQ29tbWFuZDsKICBleHBvcnRzLkNvbXBhc3MgPSBDb21wYXNzOwogIGV4cG9ydHMuQ29tcG9uZW50ID0gQ29tcG9uZW50OwogIGV4cG9ydHMuQ29tcHV0ZXIgPSBDb21wdXRlcjsKICBleHBvcnRzLkNvbmNpZXJnZUJlbGwgPSBDb25jaWVyZ2VCZWxsOwogIGV4cG9ydHMuQ29uZSA9IENvbmU7CiAgZXhwb3J0cy5Db25zdHJ1Y3Rpb24gPSBDb25zdHJ1Y3Rpb247CiAgZXhwb3J0cy5Db250YWN0ID0gQ29udGFjdDsKICBleHBvcnRzLkNvbnRhY3QyID0gQ29udGFjdFJvdW5kOwogIGV4cG9ydHMuQ29udGFjdFJvdW5kID0gQ29udGFjdFJvdW5kOwogIGV4cG9ydHMuQ29udGFpbmVyID0gQ29udGFpbmVyOwogIGV4cG9ydHMuQ29udHJhc3QgPSBDb250cmFzdDsKICBleHBvcnRzLkNvb2tpZSA9IENvb2tpZTsKICBleHBvcnRzLkNvb2tpbmdQb3QgPSBDb29raW5nUG90OwogIGV4cG9ydHMuQ29weSA9IENvcHk7CiAgZXhwb3J0cy5Db3B5Q2hlY2sgPSBDb3B5Q2hlY2s7CiAgZXhwb3J0cy5Db3B5TWludXMgPSBDb3B5TWludXM7CiAgZXhwb3J0cy5Db3B5UGx1cyA9IENvcHlQbHVzOwogIGV4cG9ydHMuQ29weVNsYXNoID0gQ29weVNsYXNoOwogIGV4cG9ydHMuQ29weVggPSBDb3B5WDsKICBleHBvcnRzLkNvcHlsZWZ0ID0gQ29weWxlZnQ7CiAgZXhwb3J0cy5Db3B5cmlnaHQgPSBDb3B5cmlnaHQ7CiAgZXhwb3J0cy5Db3JuZXJEb3duTGVmdCA9IENvcm5lckRvd25MZWZ0OwogIGV4cG9ydHMuQ29ybmVyRG93blJpZ2h0ID0gQ29ybmVyRG93blJpZ2h0OwogIGV4cG9ydHMuQ29ybmVyTGVmdERvd24gPSBDb3JuZXJMZWZ0RG93bjsKICBleHBvcnRzLkNvcm5lckxlZnRVcCA9IENvcm5lckxlZnRVcDsKICBleHBvcnRzLkNvcm5lclJpZ2h0RG93biA9IENvcm5lclJpZ2h0RG93bjsKICBleHBvcnRzLkNvcm5lclJpZ2h0VXAgPSBDb3JuZXJSaWdodFVwOwogIGV4cG9ydHMuQ29ybmVyVXBMZWZ0ID0gQ29ybmVyVXBMZWZ0OwogIGV4cG9ydHMuQ29ybmVyVXBSaWdodCA9IENvcm5lclVwUmlnaHQ7CiAgZXhwb3J0cy5DcHUgPSBDcHU7CiAgZXhwb3J0cy5DcmVhdGl2ZUNvbW1vbnMgPSBDcmVhdGl2ZUNvbW1vbnM7CiAgZXhwb3J0cy5DcmVkaXRDYXJkID0gQ3JlZGl0Q2FyZDsKICBleHBvcnRzLkNyb2lzc2FudCA9IENyb2lzc2FudDsKICBleHBvcnRzLkNyb3AgPSBDcm9wOwogIGV4cG9ydHMuQ3Jvc3MgPSBDcm9zczsKICBleHBvcnRzLkNyb3NzaGFpciA9IENyb3NzaGFpcjsKICBleHBvcnRzLkNyb3duID0gQ3Jvd247CiAgZXhwb3J0cy5DdWJvaWQgPSBDdWJvaWQ7CiAgZXhwb3J0cy5DdXBTb2RhID0gQ3VwU29kYTsKICBleHBvcnRzLkN1cmx5QnJhY2VzID0gQnJhY2VzOwogIGV4cG9ydHMuQ3VycmVuY3kgPSBDdXJyZW5jeTsKICBleHBvcnRzLkN5bGluZGVyID0gQ3lsaW5kZXI7CiAgZXhwb3J0cy5EYW0gPSBEYW07CiAgZXhwb3J0cy5EYXRhYmFzZSA9IERhdGFiYXNlOwogIGV4cG9ydHMuRGF0YWJhc2VBcnJvd0Rvd24gPSBEYXRhYmFzZUFycm93RG93bjsKICBleHBvcnRzLkRhdGFiYXNlQXJyb3dVcCA9IERhdGFiYXNlQXJyb3dVcDsKICBleHBvcnRzLkRhdGFiYXNlQmFja3VwID0gRGF0YWJhc2VCYWNrdXA7CiAgZXhwb3J0cy5EYXRhYmFzZUNoZWNrID0gRGF0YWJhc2VDaGVjazsKICBleHBvcnRzLkRhdGFiYXNlTWludXMgPSBEYXRhYmFzZU1pbnVzOwogIGV4cG9ydHMuRGF0YWJhc2VQbHVzID0gRGF0YWJhc2VQbHVzOwogIGV4cG9ydHMuRGF0YWJhc2VTZWFyY2ggPSBEYXRhYmFzZVNlYXJjaDsKICBleHBvcnRzLkRhdGFiYXNlWCA9IERhdGFiYXNlWDsKICBleHBvcnRzLkRhdGFiYXNlWmFwID0gRGF0YWJhc2VaYXA7CiAgZXhwb3J0cy5EZWNpbWFsc0Fycm93TGVmdCA9IERlY2ltYWxzQXJyb3dMZWZ0OwogIGV4cG9ydHMuRGVjaW1hbHNBcnJvd1JpZ2h0ID0gRGVjaW1hbHNBcnJvd1JpZ2h0OwogIGV4cG9ydHMuRGVsZXRlID0gRGVsZXRlOwogIGV4cG9ydHMuRGVzc2VydCA9IERlc3NlcnQ7CiAgZXhwb3J0cy5EaWFtZXRlciA9IERpYW1ldGVyOwogIGV4cG9ydHMuRGlhbW9uZCA9IERpYW1vbmQ7CiAgZXhwb3J0cy5EaWFtb25kTWludXMgPSBEaWFtb25kTWludXM7CiAgZXhwb3J0cy5EaWFtb25kUGVyY2VudCA9IERpYW1vbmRQZXJjZW50OwogIGV4cG9ydHMuRGlhbW9uZFBsdXMgPSBEaWFtb25kUGx1czsKICBleHBvcnRzLkRpY2UxID0gRGljZTE7CiAgZXhwb3J0cy5EaWNlMiA9IERpY2UyOwogIGV4cG9ydHMuRGljZTMgPSBEaWNlMzsKICBleHBvcnRzLkRpY2U0ID0gRGljZTQ7CiAgZXhwb3J0cy5EaWNlNSA9IERpY2U1OwogIGV4cG9ydHMuRGljZTYgPSBEaWNlNjsKICBleHBvcnRzLkRpY2VzID0gRGljZXM7CiAgZXhwb3J0cy5EaWZmID0gRGlmZjsKICBleHBvcnRzLkRpc2MgPSBEaXNjOwogIGV4cG9ydHMuRGlzYzIgPSBEaXNjMjsKICBleHBvcnRzLkRpc2MzID0gRGlzYzM7CiAgZXhwb3J0cy5EaXNjQWxidW0gPSBEaXNjQWxidW07CiAgZXhwb3J0cy5EaXZpZGUgPSBEaXZpZGU7CiAgZXhwb3J0cy5EaXZpZGVDaXJjbGUgPSBDaXJjbGVEaXZpZGU7CiAgZXhwb3J0cy5EaXZpZGVTcXVhcmUgPSBTcXVhcmVEaXZpZGU7CiAgZXhwb3J0cy5EbmEgPSBEbmE7CiAgZXhwb3J0cy5EbmFPZmYgPSBEbmFPZmY7CiAgZXhwb3J0cy5Eb2NrID0gRG9jazsKICBleHBvcnRzLkRvZyA9IERvZzsKICBleHBvcnRzLkRvbGxhclNpZ24gPSBEb2xsYXJTaWduOwogIGV4cG9ydHMuRG9udXQgPSBEb251dDsKICBleHBvcnRzLkRvb3JDbG9zZWQgPSBEb29yQ2xvc2VkOwogIGV4cG9ydHMuRG9vckNsb3NlZExvY2tlZCA9IERvb3JDbG9zZWRMb2NrZWQ7CiAgZXhwb3J0cy5Eb29yT3BlbiA9IERvb3JPcGVuOwogIGV4cG9ydHMuRG90ID0gRG90OwogIGV4cG9ydHMuRG90U3F1YXJlID0gU3F1YXJlRG90OwogIGV4cG9ydHMuRG93bmxvYWQgPSBEb3dubG9hZDsKICBleHBvcnRzLkRvd25sb2FkQ2xvdWQgPSBDbG91ZERvd25sb2FkOwogIGV4cG9ydHMuRHJhZnRpbmdDb21wYXNzID0gRHJhZnRpbmdDb21wYXNzOwogIGV4cG9ydHMuRHJhbWEgPSBEcmFtYTsKICBleHBvcnRzLkRyaWxsID0gRHJpbGw7CiAgZXhwb3J0cy5Ecm9uZSA9IERyb25lOwogIGV4cG9ydHMuRHJvcGxldCA9IERyb3BsZXQ7CiAgZXhwb3J0cy5Ecm9wbGV0T2ZmID0gRHJvcGxldE9mZjsKICBleHBvcnRzLkRyb3BsZXRzID0gRHJvcGxldHM7CiAgZXhwb3J0cy5EcnVtID0gRHJ1bTsKICBleHBvcnRzLkRydW1zdGljayA9IERydW1zdGljazsKICBleHBvcnRzLkR1bWJiZWxsID0gRHVtYmJlbGw7CiAgZXhwb3J0cy5FYXIgPSBFYXI7CiAgZXhwb3J0cy5FYXJPZmYgPSBFYXJPZmY7CiAgZXhwb3J0cy5FYXJ0aCA9IEVhcnRoOwogIGV4cG9ydHMuRWFydGhMb2NrID0gRWFydGhMb2NrOwogIGV4cG9ydHMuRWNsaXBzZSA9IEVjbGlwc2U7CiAgZXhwb3J0cy5FZGl0ID0gU3F1YXJlUGVuOwogIGV4cG9ydHMuRWRpdDIgPSBQZW47CiAgZXhwb3J0cy5FZGl0MyA9IFBlbkxpbmU7CiAgZXhwb3J0cy5FZ2cgPSBFZ2c7CiAgZXhwb3J0cy5FZ2dGcmllZCA9IEVnZ0ZyaWVkOwogIGV4cG9ydHMuRWdnT2ZmID0gRWdnT2ZmOwogIGV4cG9ydHMuRWxsaXBzZSA9IEVsbGlwc2U7CiAgZXhwb3J0cy5FbGxpcHNpcyA9IEVsbGlwc2lzOwogIGV4cG9ydHMuRWxsaXBzaXNWZXJ0aWNhbCA9IEVsbGlwc2lzVmVydGljYWw7CiAgZXhwb3J0cy5FcXVhbCA9IEVxdWFsOwogIGV4cG9ydHMuRXF1YWxBcHByb3hpbWF0ZWx5ID0gRXF1YWxBcHByb3hpbWF0ZWx5OwogIGV4cG9ydHMuRXF1YWxOb3QgPSBFcXVhbE5vdDsKICBleHBvcnRzLkVxdWFsU3F1YXJlID0gU3F1YXJlRXF1YWw7CiAgZXhwb3J0cy5FcmFzZXIgPSBFcmFzZXI7CiAgZXhwb3J0cy5FdGhlcm5ldFBvcnQgPSBFdGhlcm5ldFBvcnQ7CiAgZXhwb3J0cy5FdXJvID0gRXVybzsKICBleHBvcnRzLkV2Q2hhcmdlciA9IEV2Q2hhcmdlcjsKICBleHBvcnRzLkV4cGFuZCA9IEV4cGFuZDsKICBleHBvcnRzLkV4dGVybmFsTGluayA9IEV4dGVybmFsTGluazsKICBleHBvcnRzLkV5ZSA9IEV5ZTsKICBleHBvcnRzLkV5ZUNsb3NlZCA9IEV5ZUNsb3NlZDsKICBleHBvcnRzLkV5ZURhc2hlZCA9IEV5ZURhc2hlZDsKICBleHBvcnRzLkV5ZU9mZiA9IEV5ZU9mZjsKICBleHBvcnRzLkZhY3RvcnkgPSBGYWN0b3J5OwogIGV4cG9ydHMuRmFuID0gRmFuOwogIGV4cG9ydHMuRmFzdEZvcndhcmQgPSBGYXN0Rm9yd2FyZDsKICBleHBvcnRzLkZlYXRoZXIgPSBGZWF0aGVyOwogIGV4cG9ydHMuRmVuY2UgPSBGZW5jZTsKICBleHBvcnRzLkZlcnJpc1doZWVsID0gRmVycmlzV2hlZWw7CiAgZXhwb3J0cy5GaWxlID0gRmlsZTsKICBleHBvcnRzLkZpbGVBcmNoaXZlID0gRmlsZUFyY2hpdmU7CiAgZXhwb3J0cy5GaWxlQXVkaW8gPSBGaWxlSGVhZHBob25lOwogIGV4cG9ydHMuRmlsZUF1ZGlvMiA9IEZpbGVIZWFkcGhvbmU7CiAgZXhwb3J0cy5GaWxlQXhpczNEID0gRmlsZUF4aXMzZDsKICBleHBvcnRzLkZpbGVBeGlzM2QgPSBGaWxlQXhpczNkOwogIGV4cG9ydHMuRmlsZUJhZGdlID0gRmlsZUJhZGdlOwogIGV4cG9ydHMuRmlsZUJhZGdlMiA9IEZpbGVCYWRnZTsKICBleHBvcnRzLkZpbGVCYXJDaGFydCA9IEZpbGVDaGFydENvbHVtbkluY3JlYXNpbmc7CiAgZXhwb3J0cy5GaWxlQmFyQ2hhcnQyID0gRmlsZUNoYXJ0Q29sdW1uOwogIGV4cG9ydHMuRmlsZUJveCA9IEZpbGVCb3g7CiAgZXhwb3J0cy5GaWxlQnJhY2VzID0gRmlsZUJyYWNlczsKICBleHBvcnRzLkZpbGVCcmFjZXNDb3JuZXIgPSBGaWxlQnJhY2VzQ29ybmVyOwogIGV4cG9ydHMuRmlsZUNoYXJ0Q29sdW1uID0gRmlsZUNoYXJ0Q29sdW1uOwogIGV4cG9ydHMuRmlsZUNoYXJ0Q29sdW1uSW5jcmVhc2luZyA9IEZpbGVDaGFydENvbHVtbkluY3JlYXNpbmc7CiAgZXhwb3J0cy5GaWxlQ2hhcnRMaW5lID0gRmlsZUNoYXJ0TGluZTsKICBleHBvcnRzLkZpbGVDaGFydFBpZSA9IEZpbGVDaGFydFBpZTsKICBleHBvcnRzLkZpbGVDaGVjayA9IEZpbGVDaGVjazsKICBleHBvcnRzLkZpbGVDaGVjazIgPSBGaWxlQ2hlY2tDb3JuZXI7CiAgZXhwb3J0cy5GaWxlQ2hlY2tDb3JuZXIgPSBGaWxlQ2hlY2tDb3JuZXI7CiAgZXhwb3J0cy5GaWxlQ2xvY2sgPSBGaWxlQ2xvY2s7CiAgZXhwb3J0cy5GaWxlQ29kZSA9IEZpbGVDb2RlOwogIGV4cG9ydHMuRmlsZUNvZGUyID0gRmlsZUNvZGVDb3JuZXI7CiAgZXhwb3J0cy5GaWxlQ29kZUNvcm5lciA9IEZpbGVDb2RlQ29ybmVyOwogIGV4cG9ydHMuRmlsZUNvZyA9IEZpbGVDb2c7CiAgZXhwb3J0cy5GaWxlQ29nMiA9IEZpbGVDb2c7CiAgZXhwb3J0cy5GaWxlRGlmZiA9IEZpbGVEaWZmOwogIGV4cG9ydHMuRmlsZURpZ2l0ID0gRmlsZURpZ2l0OwogIGV4cG9ydHMuRmlsZURvd24gPSBGaWxlRG93bjsKICBleHBvcnRzLkZpbGVFZGl0ID0gRmlsZVBlbjsKICBleHBvcnRzLkZpbGVFeGNsYW1hdGlvblBvaW50ID0gRmlsZUV4Y2xhbWF0aW9uUG9pbnQ7CiAgZXhwb3J0cy5GaWxlSGVhZHBob25lID0gRmlsZUhlYWRwaG9uZTsKICBleHBvcnRzLkZpbGVIZWFydCA9IEZpbGVIZWFydDsKICBleHBvcnRzLkZpbGVJbWFnZSA9IEZpbGVJbWFnZTsKICBleHBvcnRzLkZpbGVJbnB1dCA9IEZpbGVJbnB1dDsKICBleHBvcnRzLkZpbGVKc29uID0gRmlsZUJyYWNlczsKICBleHBvcnRzLkZpbGVKc29uMiA9IEZpbGVCcmFjZXNDb3JuZXI7CiAgZXhwb3J0cy5GaWxlS2V5ID0gRmlsZUtleTsKICBleHBvcnRzLkZpbGVLZXkyID0gRmlsZUtleTsKICBleHBvcnRzLkZpbGVMaW5lQ2hhcnQgPSBGaWxlQ2hhcnRMaW5lOwogIGV4cG9ydHMuRmlsZUxvY2sgPSBGaWxlTG9jazsKICBleHBvcnRzLkZpbGVMb2NrMiA9IEZpbGVMb2NrOwogIGV4cG9ydHMuRmlsZU1pbnVzID0gRmlsZU1pbnVzOwogIGV4cG9ydHMuRmlsZU1pbnVzMiA9IEZpbGVNaW51c0Nvcm5lcjsKICBleHBvcnRzLkZpbGVNaW51c0Nvcm5lciA9IEZpbGVNaW51c0Nvcm5lcjsKICBleHBvcnRzLkZpbGVNdXNpYyA9IEZpbGVNdXNpYzsKICBleHBvcnRzLkZpbGVPdXRwdXQgPSBGaWxlT3V0cHV0OwogIGV4cG9ydHMuRmlsZVBlbiA9IEZpbGVQZW47CiAgZXhwb3J0cy5GaWxlUGVuTGluZSA9IEZpbGVQZW5MaW5lOwogIGV4cG9ydHMuRmlsZVBpZUNoYXJ0ID0gRmlsZUNoYXJ0UGllOwogIGV4cG9ydHMuRmlsZVBsYXkgPSBGaWxlUGxheTsKICBleHBvcnRzLkZpbGVQbHVzID0gRmlsZVBsdXM7CiAgZXhwb3J0cy5GaWxlUGx1czIgPSBGaWxlUGx1c0Nvcm5lcjsKICBleHBvcnRzLkZpbGVQbHVzQ29ybmVyID0gRmlsZVBsdXNDb3JuZXI7CiAgZXhwb3J0cy5GaWxlUXVlc3Rpb24gPSBGaWxlUXVlc3Rpb25NYXJrOwogIGV4cG9ydHMuRmlsZVF1ZXN0aW9uTWFyayA9IEZpbGVRdWVzdGlvbk1hcms7CiAgZXhwb3J0cy5GaWxlU2NhbiA9IEZpbGVTY2FuOwogIGV4cG9ydHMuRmlsZVNlYXJjaCA9IEZpbGVTZWFyY2g7CiAgZXhwb3J0cy5GaWxlU2VhcmNoMiA9IEZpbGVTZWFyY2hDb3JuZXI7CiAgZXhwb3J0cy5GaWxlU2VhcmNoQ29ybmVyID0gRmlsZVNlYXJjaENvcm5lcjsKICBleHBvcnRzLkZpbGVTaWduYWwgPSBGaWxlU2lnbmFsOwogIGV4cG9ydHMuRmlsZVNpZ25hdHVyZSA9IEZpbGVQZW5MaW5lOwogIGV4cG9ydHMuRmlsZVNsaWRlcnMgPSBGaWxlU2xpZGVyczsKICBleHBvcnRzLkZpbGVTcHJlYWRzaGVldCA9IEZpbGVTcHJlYWRzaGVldDsKICBleHBvcnRzLkZpbGVTdGFjayA9IEZpbGVTdGFjazsKICBleHBvcnRzLkZpbGVTeW1saW5rID0gRmlsZVN5bWxpbms7CiAgZXhwb3J0cy5GaWxlVGVybWluYWwgPSBGaWxlVGVybWluYWw7CiAgZXhwb3J0cy5GaWxlVGV4dCA9IEZpbGVUZXh0OwogIGV4cG9ydHMuRmlsZVR5cGUgPSBGaWxlVHlwZTsKICBleHBvcnRzLkZpbGVUeXBlMiA9IEZpbGVUeXBlQ29ybmVyOwogIGV4cG9ydHMuRmlsZVR5cGVDb3JuZXIgPSBGaWxlVHlwZUNvcm5lcjsKICBleHBvcnRzLkZpbGVVcCA9IEZpbGVVcDsKICBleHBvcnRzLkZpbGVVc2VyID0gRmlsZVVzZXI7CiAgZXhwb3J0cy5GaWxlVmlkZW8gPSBGaWxlUGxheTsKICBleHBvcnRzLkZpbGVWaWRlbzIgPSBGaWxlVmlkZW9DYW1lcmE7CiAgZXhwb3J0cy5GaWxlVmlkZW9DYW1lcmEgPSBGaWxlVmlkZW9DYW1lcmE7CiAgZXhwb3J0cy5GaWxlVm9sdW1lID0gRmlsZVZvbHVtZTsKICBleHBvcnRzLkZpbGVWb2x1bWUyID0gRmlsZVNpZ25hbDsKICBleHBvcnRzLkZpbGVXYXJuaW5nID0gRmlsZUV4Y2xhbWF0aW9uUG9pbnQ7CiAgZXhwb3J0cy5GaWxlWCA9IEZpbGVYOwogIGV4cG9ydHMuRmlsZVgyID0gRmlsZVhDb3JuZXI7CiAgZXhwb3J0cy5GaWxlWENvcm5lciA9IEZpbGVYQ29ybmVyOwogIGV4cG9ydHMuRmlsZXMgPSBGaWxlczsKICBleHBvcnRzLkZpbG0gPSBGaWxtOwogIGV4cG9ydHMuRmlsdGVyID0gRnVubmVsOwogIGV4cG9ydHMuRmlsdGVyWCA9IEZ1bm5lbFg7CiAgZXhwb3J0cy5GaW5nZXJwcmludCA9IEZpbmdlcnByaW50UGF0dGVybjsKICBleHBvcnRzLkZpbmdlcnByaW50UGF0dGVybiA9IEZpbmdlcnByaW50UGF0dGVybjsKICBleHBvcnRzLkZpcmVFeHRpbmd1aXNoZXIgPSBGaXJlRXh0aW5ndWlzaGVyOwogIGV4cG9ydHMuRmlzaCA9IEZpc2g7CiAgZXhwb3J0cy5GaXNoT2ZmID0gRmlzaE9mZjsKICBleHBvcnRzLkZpc2hTeW1ib2wgPSBGaXNoU3ltYm9sOwogIGV4cG9ydHMuRmlzaGluZ0hvb2sgPSBGaXNoaW5nSG9vazsKICBleHBvcnRzLkZpc2hpbmdSb2QgPSBGaXNoaW5nUm9kOwogIGV4cG9ydHMuRmxhZyA9IEZsYWc7CiAgZXhwb3J0cy5GbGFnT2ZmID0gRmxhZ09mZjsKICBleHBvcnRzLkZsYWdUcmlhbmdsZUxlZnQgPSBGbGFnVHJpYW5nbGVMZWZ0OwogIGV4cG9ydHMuRmxhZ1RyaWFuZ2xlUmlnaHQgPSBGbGFnVHJpYW5nbGVSaWdodDsKICBleHBvcnRzLkZsYW1lID0gRmxhbWU7CiAgZXhwb3J0cy5GbGFtZUtpbmRsaW5nID0gRmxhbWVLaW5kbGluZzsKICBleHBvcnRzLkZsYXNobGlnaHQgPSBGbGFzaGxpZ2h0OwogIGV4cG9ydHMuRmxhc2hsaWdodE9mZiA9IEZsYXNobGlnaHRPZmY7CiAgZXhwb3J0cy5GbGFza0NvbmljYWwgPSBGbGFza0NvbmljYWw7CiAgZXhwb3J0cy5GbGFza0NvbmljYWxPZmYgPSBGbGFza0NvbmljYWxPZmY7CiAgZXhwb3J0cy5GbGFza1JvdW5kID0gRmxhc2tSb3VuZDsKICBleHBvcnRzLkZsaXBIb3Jpem9udGFsID0gU3F1YXJlQ2VudGVybGluZURhc2hlZEhvcml6b250YWw7CiAgZXhwb3J0cy5GbGlwSG9yaXpvbnRhbDIgPSBGbGlwSG9yaXpvbnRhbDI7CiAgZXhwb3J0cy5GbGlwVmVydGljYWwgPSBTcXVhcmVDZW50ZXJsaW5lRGFzaGVkVmVydGljYWw7CiAgZXhwb3J0cy5GbGlwVmVydGljYWwyID0gRmxpcFZlcnRpY2FsMjsKICBleHBvcnRzLkZsb3dlciA9IEZsb3dlcjsKICBleHBvcnRzLkZsb3dlcjIgPSBGbG93ZXIyOwogIGV4cG9ydHMuRm9jdXMgPSBGb2N1czsKICBleHBvcnRzLkZvbGRIb3Jpem9udGFsID0gRm9sZEhvcml6b250YWw7CiAgZXhwb3J0cy5Gb2xkVmVydGljYWwgPSBGb2xkVmVydGljYWw7CiAgZXhwb3J0cy5Gb2xkZXIgPSBGb2xkZXI7CiAgZXhwb3J0cy5Gb2xkZXJBcmNoaXZlID0gRm9sZGVyQXJjaGl2ZTsKICBleHBvcnRzLkZvbGRlckJvb2ttYXJrID0gRm9sZGVyQm9va21hcms7CiAgZXhwb3J0cy5Gb2xkZXJDaGVjayA9IEZvbGRlckNoZWNrOwogIGV4cG9ydHMuRm9sZGVyQ2xvY2sgPSBGb2xkZXJDbG9jazsKICBleHBvcnRzLkZvbGRlckNsb3NlZCA9IEZvbGRlckNsb3NlZDsKICBleHBvcnRzLkZvbGRlckNvZGUgPSBGb2xkZXJDb2RlOwogIGV4cG9ydHMuRm9sZGVyQ29nID0gRm9sZGVyQ29nOwogIGV4cG9ydHMuRm9sZGVyQ29nMiA9IEZvbGRlckNvZzsKICBleHBvcnRzLkZvbGRlckRvdCA9IEZvbGRlckRvdDsKICBleHBvcnRzLkZvbGRlckRvd24gPSBGb2xkZXJEb3duOwogIGV4cG9ydHMuRm9sZGVyRWRpdCA9IEZvbGRlclBlbjsKICBleHBvcnRzLkZvbGRlckdpdCA9IEZvbGRlckdpdDsKICBleHBvcnRzLkZvbGRlckdpdDIgPSBGb2xkZXJHaXQyOwogIGV4cG9ydHMuRm9sZGVySGVhcnQgPSBGb2xkZXJIZWFydDsKICBleHBvcnRzLkZvbGRlcklucHV0ID0gRm9sZGVySW5wdXQ7CiAgZXhwb3J0cy5Gb2xkZXJLYW5iYW4gPSBGb2xkZXJLYW5iYW47CiAgZXhwb3J0cy5Gb2xkZXJLZXkgPSBGb2xkZXJLZXk7CiAgZXhwb3J0cy5Gb2xkZXJMb2NrID0gRm9sZGVyTG9jazsKICBleHBvcnRzLkZvbGRlck1pbnVzID0gRm9sZGVyTWludXM7CiAgZXhwb3J0cy5Gb2xkZXJPcGVuID0gRm9sZGVyT3BlbjsKICBleHBvcnRzLkZvbGRlck9wZW5Eb3QgPSBGb2xkZXJPcGVuRG90OwogIGV4cG9ydHMuRm9sZGVyT3V0cHV0ID0gRm9sZGVyT3V0cHV0OwogIGV4cG9ydHMuRm9sZGVyUGVuID0gRm9sZGVyUGVuOwogIGV4cG9ydHMuRm9sZGVyUGx1cyA9IEZvbGRlclBsdXM7CiAgZXhwb3J0cy5Gb2xkZXJSb290ID0gRm9sZGVyUm9vdDsKICBleHBvcnRzLkZvbGRlclNlYXJjaCA9IEZvbGRlclNlYXJjaDsKICBleHBvcnRzLkZvbGRlclNlYXJjaDIgPSBGb2xkZXJTZWFyY2gyOwogIGV4cG9ydHMuRm9sZGVyU3ltbGluayA9IEZvbGRlclN5bWxpbms7CiAgZXhwb3J0cy5Gb2xkZXJTeW5jID0gRm9sZGVyU3luYzsKICBleHBvcnRzLkZvbGRlclRyZWUgPSBGb2xkZXJUcmVlOwogIGV4cG9ydHMuRm9sZGVyVXAgPSBGb2xkZXJVcDsKICBleHBvcnRzLkZvbGRlclggPSBGb2xkZXJYOwogIGV4cG9ydHMuRm9sZGVycyA9IEZvbGRlcnM7CiAgZXhwb3J0cy5Gb290cHJpbnRzID0gRm9vdHByaW50czsKICBleHBvcnRzLkZvcmtLbmlmZSA9IFV0ZW5zaWxzOwogIGV4cG9ydHMuRm9ya0tuaWZlQ3Jvc3NlZCA9IFV0ZW5zaWxzQ3Jvc3NlZDsKICBleHBvcnRzLkZvcmtsaWZ0ID0gRm9ya2xpZnQ7CiAgZXhwb3J0cy5Gb3JtID0gRm9ybTsKICBleHBvcnRzLkZvcm1JbnB1dCA9IFJlY3RhbmdsZUVsbGlwc2lzOwogIGV4cG9ydHMuRm9yd2FyZCA9IEZvcndhcmQ7CiAgZXhwb3J0cy5GcmFtZSA9IEZyYW1lOwogIGV4cG9ydHMuRnJvd24gPSBGcm93bjsKICBleHBvcnRzLkZ1ZWwgPSBGdWVsOwogIGV4cG9ydHMuRnVsbHNjcmVlbiA9IEZ1bGxzY3JlZW47CiAgZXhwb3J0cy5GdW5jdGlvblNxdWFyZSA9IFNxdWFyZUZ1bmN0aW9uOwogIGV4cG9ydHMuRnVubmVsID0gRnVubmVsOwogIGV4cG9ydHMuRnVubmVsUGx1cyA9IEZ1bm5lbFBsdXM7CiAgZXhwb3J0cy5GdW5uZWxYID0gRnVubmVsWDsKICBleHBvcnRzLkdhbGxlcnlIb3Jpem9udGFsID0gR2FsbGVyeUhvcml6b250YWw7CiAgZXhwb3J0cy5HYWxsZXJ5SG9yaXpvbnRhbEVuZCA9IEdhbGxlcnlIb3Jpem9udGFsRW5kOwogIGV4cG9ydHMuR2FsbGVyeVRodW1ibmFpbHMgPSBHYWxsZXJ5VGh1bWJuYWlsczsKICBleHBvcnRzLkdhbGxlcnlWZXJ0aWNhbCA9IEdhbGxlcnlWZXJ0aWNhbDsKICBleHBvcnRzLkdhbGxlcnlWZXJ0aWNhbEVuZCA9IEdhbGxlcnlWZXJ0aWNhbEVuZDsKICBleHBvcnRzLkdhbWVwYWQgPSBHYW1lcGFkOwogIGV4cG9ydHMuR2FtZXBhZDIgPSBHYW1lcGFkMjsKICBleHBvcnRzLkdhbWVwYWREaXJlY3Rpb25hbCA9IEdhbWVwYWREaXJlY3Rpb25hbDsKICBleHBvcnRzLkdhbnR0Q2hhcnQgPSBDaGFydE5vQXhlc0dhbnR0OwogIGV4cG9ydHMuR2FudHRDaGFydFNxdWFyZSA9IFNxdWFyZUNoYXJ0R2FudHQ7CiAgZXhwb3J0cy5HYXVnZSA9IEdhdWdlOwogIGV4cG9ydHMuR2F1Z2VDaXJjbGUgPSBDaXJjbGVHYXVnZTsKICBleHBvcnRzLkdhdmVsID0gR2F2ZWw7CiAgZXhwb3J0cy5HZW0gPSBHZW07CiAgZXhwb3J0cy5HZW9yZ2lhbkxhcmkgPSBHZW9yZ2lhbkxhcmk7CiAgZXhwb3J0cy5HaG9zdCA9IEdob3N0OwogIGV4cG9ydHMuR2lmdCA9IEdpZnQ7CiAgZXhwb3J0cy5HaXRCcmFuY2ggPSBHaXRCcmFuY2g7CiAgZXhwb3J0cy5HaXRCcmFuY2hNaW51cyA9IEdpdEJyYW5jaE1pbnVzOwogIGV4cG9ydHMuR2l0QnJhbmNoUGx1cyA9IEdpdEJyYW5jaFBsdXM7CiAgZXhwb3J0cy5HaXRDb21taXQgPSBHaXRDb21taXRIb3Jpem9udGFsOwogIGV4cG9ydHMuR2l0Q29tbWl0SG9yaXpvbnRhbCA9IEdpdENvbW1pdEhvcml6b250YWw7CiAgZXhwb3J0cy5HaXRDb21taXRWZXJ0aWNhbCA9IEdpdENvbW1pdFZlcnRpY2FsOwogIGV4cG9ydHMuR2l0Q29tcGFyZSA9IEdpdENvbXBhcmU7CiAgZXhwb3J0cy5HaXRDb21wYXJlQXJyb3dzID0gR2l0Q29tcGFyZUFycm93czsKICBleHBvcnRzLkdpdEZvcmsgPSBHaXRGb3JrOwogIGV4cG9ydHMuR2l0R3JhcGggPSBHaXRHcmFwaDsKICBleHBvcnRzLkdpdE1lcmdlID0gR2l0TWVyZ2U7CiAgZXhwb3J0cy5HaXRNZXJnZUNvbmZsaWN0ID0gR2l0TWVyZ2VDb25mbGljdDsKICBleHBvcnRzLkdpdFB1bGxSZXF1ZXN0ID0gR2l0UHVsbFJlcXVlc3Q7CiAgZXhwb3J0cy5HaXRQdWxsUmVxdWVzdEFycm93ID0gR2l0UHVsbFJlcXVlc3RBcnJvdzsKICBleHBvcnRzLkdpdFB1bGxSZXF1ZXN0Q2xvc2VkID0gR2l0UHVsbFJlcXVlc3RDbG9zZWQ7CiAgZXhwb3J0cy5HaXRQdWxsUmVxdWVzdENyZWF0ZSA9IEdpdFB1bGxSZXF1ZXN0Q3JlYXRlOwogIGV4cG9ydHMuR2l0UHVsbFJlcXVlc3RDcmVhdGVBcnJvdyA9IEdpdFB1bGxSZXF1ZXN0Q3JlYXRlQXJyb3c7CiAgZXhwb3J0cy5HaXRQdWxsUmVxdWVzdERyYWZ0ID0gR2l0UHVsbFJlcXVlc3REcmFmdDsKICBleHBvcnRzLkdsYXNzV2F0ZXIgPSBHbGFzc1dhdGVyOwogIGV4cG9ydHMuR2xhc3NlcyA9IEdsYXNzZXM7CiAgZXhwb3J0cy5HbG9iZSA9IEdsb2JlOwogIGV4cG9ydHMuR2xvYmUyID0gRWFydGg7CiAgZXhwb3J0cy5HbG9iZUNoZWNrID0gR2xvYmVDaGVjazsKICBleHBvcnRzLkdsb2JlTG9jayA9IEdsb2JlTG9jazsKICBleHBvcnRzLkdsb2JlT2ZmID0gR2xvYmVPZmY7CiAgZXhwb3J0cy5HbG9iZVggPSBHbG9iZVg7CiAgZXhwb3J0cy5Hb2FsID0gR29hbDsKICBleHBvcnRzLkdwdSA9IEdwdTsKICBleHBvcnRzLkdyYWIgPSBIYW5kR3JhYjsKICBleHBvcnRzLkdyYWR1YXRpb25DYXAgPSBHcmFkdWF0aW9uQ2FwOwogIGV4cG9ydHMuR3JhcGUgPSBHcmFwZTsKICBleHBvcnRzLkdyaWQgPSBHcmlkM3gzOwogIGV4cG9ydHMuR3JpZDJYMiA9IEdyaWQyeDI7CiAgZXhwb3J0cy5HcmlkMlgyQ2hlY2sgPSBHcmlkMngyQ2hlY2s7CiAgZXhwb3J0cy5HcmlkMlgyUGx1cyA9IEdyaWQyeDJQbHVzOwogIGV4cG9ydHMuR3JpZDJYMlggPSBHcmlkMngyWDsKICBleHBvcnRzLkdyaWQyeDIgPSBHcmlkMngyOwogIGV4cG9ydHMuR3JpZDJ4MkNoZWNrID0gR3JpZDJ4MkNoZWNrOwogIGV4cG9ydHMuR3JpZDJ4MlBsdXMgPSBHcmlkMngyUGx1czsKICBleHBvcnRzLkdyaWQyeDJYID0gR3JpZDJ4Mlg7CiAgZXhwb3J0cy5HcmlkM1gzID0gR3JpZDN4MzsKICBleHBvcnRzLkdyaWQzeDIgPSBHcmlkM3gyOwogIGV4cG9ydHMuR3JpZDN4MyA9IEdyaWQzeDM7CiAgZXhwb3J0cy5HcmlwID0gR3JpcDsKICBleHBvcnRzLkdyaXBIb3Jpem9udGFsID0gR3JpcEhvcml6b250YWw7CiAgZXhwb3J0cy5HcmlwVmVydGljYWwgPSBHcmlwVmVydGljYWw7CiAgZXhwb3J0cy5Hcm91cCA9IEdyb3VwOwogIGV4cG9ydHMuR3VpdGFyID0gR3VpdGFyOwogIGV4cG9ydHMuSGFtID0gSGFtOwogIGV4cG9ydHMuSGFtYnVyZ2VyID0gSGFtYnVyZ2VyOwogIGV4cG9ydHMuSGFtbWVyID0gSGFtbWVyOwogIGV4cG9ydHMuSGFuZCA9IEhhbmQ7CiAgZXhwb3J0cy5IYW5kQ29pbnMgPSBIYW5kQ29pbnM7CiAgZXhwb3J0cy5IYW5kRmlzdCA9IEhhbmRGaXN0OwogIGV4cG9ydHMuSGFuZEdyYWIgPSBIYW5kR3JhYjsKICBleHBvcnRzLkhhbmRIZWFydCA9IEhhbmRIZWFydDsKICBleHBvcnRzLkhhbmRIZWxwaW5nID0gSGFuZEhlbHBpbmc7CiAgZXhwb3J0cy5IYW5kTWV0YWwgPSBIYW5kTWV0YWw7CiAgZXhwb3J0cy5IYW5kUGxhdHRlciA9IEhhbmRQbGF0dGVyOwogIGV4cG9ydHMuSGFuZGJhZyA9IEhhbmRiYWc7CiAgZXhwb3J0cy5IYW5kc2hha2UgPSBIYW5kc2hha2U7CiAgZXhwb3J0cy5IYXJkRHJpdmUgPSBIYXJkRHJpdmU7CiAgZXhwb3J0cy5IYXJkRHJpdmVEb3dubG9hZCA9IEhhcmREcml2ZURvd25sb2FkOwogIGV4cG9ydHMuSGFyZERyaXZlVXBsb2FkID0gSGFyZERyaXZlVXBsb2FkOwogIGV4cG9ydHMuSGFyZEhhdCA9IEhhcmRIYXQ7CiAgZXhwb3J0cy5IYXNoID0gSGFzaDsKICBleHBvcnRzLkhhdEdsYXNzZXMgPSBIYXRHbGFzc2VzOwogIGV4cG9ydHMuSGF6ZSA9IEhhemU7CiAgZXhwb3J0cy5IZCA9IEhkOwogIGV4cG9ydHMuSGRtaVBvcnQgPSBIZG1pUG9ydDsKICBleHBvcnRzLkhlYWRpbmcgPSBIZWFkaW5nOwogIGV4cG9ydHMuSGVhZGluZzEgPSBIZWFkaW5nMTsKICBleHBvcnRzLkhlYWRpbmcyID0gSGVhZGluZzI7CiAgZXhwb3J0cy5IZWFkaW5nMyA9IEhlYWRpbmczOwogIGV4cG9ydHMuSGVhZGluZzQgPSBIZWFkaW5nNDsKICBleHBvcnRzLkhlYWRpbmc1ID0gSGVhZGluZzU7CiAgZXhwb3J0cy5IZWFkaW5nNiA9IEhlYWRpbmc2OwogIGV4cG9ydHMuSGVhZHBob25lT2ZmID0gSGVhZHBob25lT2ZmOwogIGV4cG9ydHMuSGVhZHBob25lcyA9IEhlYWRwaG9uZXM7CiAgZXhwb3J0cy5IZWFkc2V0ID0gSGVhZHNldDsKICBleHBvcnRzLkhlYXJ0ID0gSGVhcnQ7CiAgZXhwb3J0cy5IZWFydENyYWNrID0gSGVhcnRDcmFjazsKICBleHBvcnRzLkhlYXJ0SGFuZHNoYWtlID0gSGVhcnRIYW5kc2hha2U7CiAgZXhwb3J0cy5IZWFydE1pbnVzID0gSGVhcnRNaW51czsKICBleHBvcnRzLkhlYXJ0T2ZmID0gSGVhcnRPZmY7CiAgZXhwb3J0cy5IZWFydFBsdXMgPSBIZWFydFBsdXM7CiAgZXhwb3J0cy5IZWFydFB1bHNlID0gSGVhcnRQdWxzZTsKICBleHBvcnRzLkhlYXJ0WCA9IEhlYXJ0WDsKICBleHBvcnRzLkhlYXRlciA9IEhlYXRlcjsKICBleHBvcnRzLkhlbGljb3B0ZXIgPSBIZWxpY29wdGVyOwogIGV4cG9ydHMuSGVscENpcmNsZSA9IENpcmNsZVF1ZXN0aW9uTWFyazsKICBleHBvcnRzLkhlbHBpbmdIYW5kID0gSGFuZEhlbHBpbmc7CiAgZXhwb3J0cy5IZXhhZ29uID0gSGV4YWdvbjsKICBleHBvcnRzLkhpZ2hsaWdodGVyID0gSGlnaGxpZ2h0ZXI7CiAgZXhwb3J0cy5IaXN0b3J5ID0gUm90YXRlQ2N3Q2xvY2s7CiAgZXhwb3J0cy5Ib21lID0gSG91c2U7CiAgZXhwb3J0cy5Ib3AgPSBIb3A7CiAgZXhwb3J0cy5Ib3BPZmYgPSBIb3BPZmY7CiAgZXhwb3J0cy5Ib3NwaXRhbCA9IEhvc3BpdGFsOwogIGV4cG9ydHMuSG90ZWwgPSBIb3RlbDsKICBleHBvcnRzLkhvdXJnbGFzcyA9IEhvdXJnbGFzczsKICBleHBvcnRzLkhvdXNlID0gSG91c2U7CiAgZXhwb3J0cy5Ib3VzZUhlYXJ0ID0gSG91c2VIZWFydDsKICBleHBvcnRzLkhvdXNlUGx1ZyA9IEhvdXNlUGx1ZzsKICBleHBvcnRzLkhvdXNlUGx1cyA9IEhvdXNlUGx1czsKICBleHBvcnRzLkhvdXNlV2lmaSA9IEhvdXNlV2lmaTsKICBleHBvcnRzLkljZUNyZWFtID0gSWNlQ3JlYW1Db25lOwogIGV4cG9ydHMuSWNlQ3JlYW0yID0gSWNlQ3JlYW1Cb3dsOwogIGV4cG9ydHMuSWNlQ3JlYW1Cb3dsID0gSWNlQ3JlYW1Cb3dsOwogIGV4cG9ydHMuSWNlQ3JlYW1Db25lID0gSWNlQ3JlYW1Db25lOwogIGV4cG9ydHMuSWRDYXJkID0gSWRDYXJkOwogIGV4cG9ydHMuSWRDYXJkTGFueWFyZCA9IElkQ2FyZExhbnlhcmQ7CiAgZXhwb3J0cy5JbWFnZSA9IEltYWdlOwogIGV4cG9ydHMuSW1hZ2VEb3duID0gSW1hZ2VEb3duOwogIGV4cG9ydHMuSW1hZ2VNaW51cyA9IEltYWdlTWludXM7CiAgZXhwb3J0cy5JbWFnZU9mZiA9IEltYWdlT2ZmOwogIGV4cG9ydHMuSW1hZ2VQbGF5ID0gSW1hZ2VQbGF5OwogIGV4cG9ydHMuSW1hZ2VQbHVzID0gSW1hZ2VQbHVzOwogIGV4cG9ydHMuSW1hZ2VVcCA9IEltYWdlVXA7CiAgZXhwb3J0cy5JbWFnZVVwc2NhbGUgPSBJbWFnZVVwc2NhbGU7CiAgZXhwb3J0cy5JbWFnZXMgPSBJbWFnZXM7CiAgZXhwb3J0cy5JbXBvcnQgPSBJbXBvcnQ7CiAgZXhwb3J0cy5JbmJveCA9IEluYm94OwogIGV4cG9ydHMuSW5kZW50ID0gTGlzdEluZGVudEluY3JlYXNlOwogIGV4cG9ydHMuSW5kZW50RGVjcmVhc2UgPSBMaXN0SW5kZW50RGVjcmVhc2U7CiAgZXhwb3J0cy5JbmRlbnRJbmNyZWFzZSA9IExpc3RJbmRlbnRJbmNyZWFzZTsKICBleHBvcnRzLkluZGlhblJ1cGVlID0gSW5kaWFuUnVwZWU7CiAgZXhwb3J0cy5JbmZpbml0eSA9IEluZmluaXR5OwogIGV4cG9ydHMuSW5mbyA9IEluZm87CiAgZXhwb3J0cy5JbnNwZWN0ID0gU3F1YXJlTW91c2VQb2ludGVyOwogIGV4cG9ydHMuSW5zcGVjdGlvblBhbmVsID0gSW5zcGVjdGlvblBhbmVsOwogIGV4cG9ydHMuSXRhbGljID0gSXRhbGljOwogIGV4cG9ydHMuSXRlcmF0aW9uQ2N3ID0gSXRlcmF0aW9uQ2N3OwogIGV4cG9ydHMuSXRlcmF0aW9uQ3cgPSBJdGVyYXRpb25DdzsKICBleHBvcnRzLkphcGFuZXNlWWVuID0gSmFwYW5lc2VZZW47CiAgZXhwb3J0cy5Kb3lzdGljayA9IEpveXN0aWNrOwogIGV4cG9ydHMuS2FuYmFuID0gS2FuYmFuOwogIGV4cG9ydHMuS2FuYmFuU3F1YXJlID0gU3F1YXJlS2FuYmFuOwogIGV4cG9ydHMuS2FuYmFuU3F1YXJlRGFzaGVkID0gU3F1YXJlRGFzaGVkS2FuYmFuOwogIGV4cG9ydHMuS2F5YWsgPSBLYXlhazsKICBleHBvcnRzLktleSA9IEtleTsKICBleHBvcnRzLktleVJvdW5kID0gS2V5Um91bmQ7CiAgZXhwb3J0cy5LZXlTcXVhcmUgPSBLZXlTcXVhcmU7CiAgZXhwb3J0cy5LZXlib2FyZCA9IEtleWJvYXJkOwogIGV4cG9ydHMuS2V5Ym9hcmRNdXNpYyA9IEtleWJvYXJkTXVzaWM7CiAgZXhwb3J0cy5LZXlib2FyZE9mZiA9IEtleWJvYXJkT2ZmOwogIGV4cG9ydHMuTGFtcCA9IExhbXA7CiAgZXhwb3J0cy5MYW1wQ2VpbGluZyA9IExhbXBDZWlsaW5nOwogIGV4cG9ydHMuTGFtcERlc2sgPSBMYW1wRGVzazsKICBleHBvcnRzLkxhbXBGbG9vciA9IExhbXBGbG9vcjsKICBleHBvcnRzLkxhbXBXYWxsRG93biA9IExhbXBXYWxsRG93bjsKICBleHBvcnRzLkxhbXBXYWxsVXAgPSBMYW1wV2FsbFVwOwogIGV4cG9ydHMuTGFuZFBsb3QgPSBMYW5kUGxvdDsKICBleHBvcnRzLkxhbmRtYXJrID0gTGFuZG1hcms7CiAgZXhwb3J0cy5MYW5ndWFnZXMgPSBMYW5ndWFnZXM7CiAgZXhwb3J0cy5MYXB0b3AgPSBMYXB0b3A7CiAgZXhwb3J0cy5MYXB0b3AyID0gTGFwdG9wTWluaW1hbDsKICBleHBvcnRzLkxhcHRvcE1pbmltYWwgPSBMYXB0b3BNaW5pbWFsOwogIGV4cG9ydHMuTGFwdG9wTWluaW1hbENoZWNrID0gTGFwdG9wTWluaW1hbENoZWNrOwogIGV4cG9ydHMuTGFzc28gPSBMYXNzbzsKICBleHBvcnRzLkxhc3NvU2VsZWN0ID0gTGFzc29TZWxlY3Q7CiAgZXhwb3J0cy5MYXVnaCA9IExhdWdoOwogIGV4cG9ydHMuTGF5ZXJzID0gTGF5ZXJzOwogIGV4cG9ydHMuTGF5ZXJzMiA9IExheWVyczI7CiAgZXhwb3J0cy5MYXllcnMzID0gTGF5ZXJzOwogIGV4cG9ydHMuTGF5ZXJzTWludXMgPSBMYXllcnNNaW51czsKICBleHBvcnRzLkxheWVyc1BsdXMgPSBMYXllcnNQbHVzOwogIGV4cG9ydHMuTGF5b3V0ID0gUGFuZWxzVG9wTGVmdDsKICBleHBvcnRzLkxheW91dERhc2hib2FyZCA9IExheW91dERhc2hib2FyZDsKICBleHBvcnRzLkxheW91dEZyZWVmb3JtID0gTGF5b3V0RnJlZWZvcm07CiAgZXhwb3J0cy5MYXlvdXRHcmlkID0gTGF5b3V0R3JpZDsKICBleHBvcnRzLkxheW91dExpc3QgPSBMYXlvdXRMaXN0OwogIGV4cG9ydHMuTGF5b3V0UGFuZWxMZWZ0ID0gTGF5b3V0UGFuZWxMZWZ0OwogIGV4cG9ydHMuTGF5b3V0UGFuZWxUb3AgPSBMYXlvdXRQYW5lbFRvcDsKICBleHBvcnRzLkxheW91dFRlbXBsYXRlID0gTGF5b3V0VGVtcGxhdGU7CiAgZXhwb3J0cy5MZWFmID0gTGVhZjsKICBleHBvcnRzLkxlYWZ5R3JlZW4gPSBMZWFmeUdyZWVuOwogIGV4cG9ydHMuTGVjdGVybiA9IExlY3Rlcm47CiAgZXhwb3J0cy5MZW5zQ29uY2F2ZSA9IExlbnNDb25jYXZlOwogIGV4cG9ydHMuTGVuc0NvbnZleCA9IExlbnNDb252ZXg7CiAgZXhwb3J0cy5MZXR0ZXJUZXh0ID0gVGV4dEluaXRpYWw7CiAgZXhwb3J0cy5MaWJyYXJ5ID0gTGlicmFyeTsKICBleHBvcnRzLkxpYnJhcnlCaWcgPSBMaWJyYXJ5QmlnOwogIGV4cG9ydHMuTGlicmFyeVNxdWFyZSA9IFNxdWFyZUxpYnJhcnk7CiAgZXhwb3J0cy5MaWZlQnVveSA9IExpZmVCdW95OwogIGV4cG9ydHMuTGlnYXR1cmUgPSBMaWdhdHVyZTsKICBleHBvcnRzLkxpZ2h0YnVsYiA9IExpZ2h0YnVsYjsKICBleHBvcnRzLkxpZ2h0YnVsYk9mZiA9IExpZ2h0YnVsYk9mZjsKICBleHBvcnRzLkxpbmVDaGFydCA9IENoYXJ0TGluZTsKICBleHBvcnRzLkxpbmVEb3RSaWdodEhvcml6b250YWwgPSBMaW5lRG90UmlnaHRIb3Jpem9udGFsOwogIGV4cG9ydHMuTGluZVNxdWlnZ2xlID0gTGluZVNxdWlnZ2xlOwogIGV4cG9ydHMuTGluZVN0eWxlID0gTGluZVN0eWxlOwogIGV4cG9ydHMuTGluayA9IExpbms7CiAgZXhwb3J0cy5MaW5rMiA9IExpbmsyOwogIGV4cG9ydHMuTGluazJPZmYgPSBMaW5rMk9mZjsKICBleHBvcnRzLkxpc3QgPSBMaXN0OwogIGV4cG9ydHMuTGlzdENoZWNrID0gTGlzdENoZWNrOwogIGV4cG9ydHMuTGlzdENoZWNrcyA9IExpc3RDaGVja3M7CiAgZXhwb3J0cy5MaXN0Q2hldnJvbnNEb3duVXAgPSBMaXN0Q2hldnJvbnNEb3duVXA7CiAgZXhwb3J0cy5MaXN0Q2hldnJvbnNVcERvd24gPSBMaXN0Q2hldnJvbnNVcERvd247CiAgZXhwb3J0cy5MaXN0Q29sbGFwc2UgPSBMaXN0Q29sbGFwc2U7CiAgZXhwb3J0cy5MaXN0RW5kID0gTGlzdEVuZDsKICBleHBvcnRzLkxpc3RGaWx0ZXIgPSBMaXN0RmlsdGVyOwogIGV4cG9ydHMuTGlzdEZpbHRlclBsdXMgPSBMaXN0RmlsdGVyUGx1czsKICBleHBvcnRzLkxpc3RJbmRlbnREZWNyZWFzZSA9IExpc3RJbmRlbnREZWNyZWFzZTsKICBleHBvcnRzLkxpc3RJbmRlbnRJbmNyZWFzZSA9IExpc3RJbmRlbnRJbmNyZWFzZTsKICBleHBvcnRzLkxpc3RNaW51cyA9IExpc3RNaW51czsKICBleHBvcnRzLkxpc3RNdXNpYyA9IExpc3RNdXNpYzsKICBleHBvcnRzLkxpc3RPcmRlcmVkID0gTGlzdE9yZGVyZWQ7CiAgZXhwb3J0cy5MaXN0UGx1cyA9IExpc3RQbHVzOwogIGV4cG9ydHMuTGlzdFJlc3RhcnQgPSBMaXN0UmVzdGFydDsKICBleHBvcnRzLkxpc3RTb3J0QXNjZW5kaW5nID0gTGlzdFNvcnRBc2NlbmRpbmc7CiAgZXhwb3J0cy5MaXN0U29ydERlc2NlbmRpbmcgPSBMaXN0U29ydERlc2NlbmRpbmc7CiAgZXhwb3J0cy5MaXN0U3RhcnQgPSBMaXN0U3RhcnQ7CiAgZXhwb3J0cy5MaXN0VG9kbyA9IExpc3RUb2RvOwogIGV4cG9ydHMuTGlzdFRyZWUgPSBMaXN0VHJlZTsKICBleHBvcnRzLkxpc3RWaWRlbyA9IExpc3RWaWRlbzsKICBleHBvcnRzLkxpc3RYID0gTGlzdFg7CiAgZXhwb3J0cy5Mb2FkZXIgPSBMb2FkZXI7CiAgZXhwb3J0cy5Mb2FkZXIyID0gTG9hZGVyQ2lyY2xlOwogIGV4cG9ydHMuTG9hZGVyQ2lyY2xlID0gTG9hZGVyQ2lyY2xlOwogIGV4cG9ydHMuTG9hZGVyUGlud2hlZWwgPSBMb2FkZXJQaW53aGVlbDsKICBleHBvcnRzLkxvY2F0ZSA9IExvY2F0ZTsKICBleHBvcnRzLkxvY2F0ZUZpeGVkID0gTG9jYXRlRml4ZWQ7CiAgZXhwb3J0cy5Mb2NhdGVPZmYgPSBMb2NhdGVPZmY7CiAgZXhwb3J0cy5Mb2NhdGlvbkVkaXQgPSBNYXBQaW5QZW47CiAgZXhwb3J0cy5Mb2NrID0gTG9jazsKICBleHBvcnRzLkxvY2tLZXlob2xlID0gTG9ja0tleWhvbGU7CiAgZXhwb3J0cy5Mb2NrS2V5aG9sZU9wZW4gPSBMb2NrS2V5aG9sZU9wZW47CiAgZXhwb3J0cy5Mb2NrT3BlbiA9IExvY2tPcGVuOwogIGV4cG9ydHMuTG9nSW4gPSBMb2dJbjsKICBleHBvcnRzLkxvZ091dCA9IExvZ091dDsKICBleHBvcnRzLkxvZ3MgPSBMb2dzOwogIGV4cG9ydHMuTG9sbGlwb3AgPSBMb2xsaXBvcDsKICBleHBvcnRzLkx1Z2dhZ2UgPSBMdWdnYWdlOwogIGV4cG9ydHMuTVNxdWFyZSA9IFNxdWFyZU07CiAgZXhwb3J0cy5NYWduZXQgPSBNYWduZXQ7CiAgZXhwb3J0cy5NYWlsID0gTWFpbDsKICBleHBvcnRzLk1haWxDaGVjayA9IE1haWxDaGVjazsKICBleHBvcnRzLk1haWxNaW51cyA9IE1haWxNaW51czsKICBleHBvcnRzLk1haWxPcGVuID0gTWFpbE9wZW47CiAgZXhwb3J0cy5NYWlsUGx1cyA9IE1haWxQbHVzOwogIGV4cG9ydHMuTWFpbFF1ZXN0aW9uID0gTWFpbFF1ZXN0aW9uTWFyazsKICBleHBvcnRzLk1haWxRdWVzdGlvbk1hcmsgPSBNYWlsUXVlc3Rpb25NYXJrOwogIGV4cG9ydHMuTWFpbFNlYXJjaCA9IE1haWxTZWFyY2g7CiAgZXhwb3J0cy5NYWlsV2FybmluZyA9IE1haWxXYXJuaW5nOwogIGV4cG9ydHMuTWFpbFggPSBNYWlsWDsKICBleHBvcnRzLk1haWxib3ggPSBNYWlsYm94OwogIGV4cG9ydHMuTWFpbHMgPSBNYWlsczsKICBleHBvcnRzLk1hcCA9IE1hcDsKICBleHBvcnRzLk1hcE1pbnVzID0gTWFwTWludXM7CiAgZXhwb3J0cy5NYXBQaW4gPSBNYXBQaW47CiAgZXhwb3J0cy5NYXBQaW5DaGVjayA9IE1hcFBpbkNoZWNrOwogIGV4cG9ydHMuTWFwUGluQ2hlY2tJbnNpZGUgPSBNYXBQaW5DaGVja0luc2lkZTsKICBleHBvcnRzLk1hcFBpbkhvdXNlID0gTWFwUGluSG91c2U7CiAgZXhwb3J0cy5NYXBQaW5NaW51cyA9IE1hcFBpbk1pbnVzOwogIGV4cG9ydHMuTWFwUGluTWludXNJbnNpZGUgPSBNYXBQaW5NaW51c0luc2lkZTsKICBleHBvcnRzLk1hcFBpbk9mZiA9IE1hcFBpbk9mZjsKICBleHBvcnRzLk1hcFBpblBlbiA9IE1hcFBpblBlbjsKICBleHBvcnRzLk1hcFBpblBsdXMgPSBNYXBQaW5QbHVzOwogIGV4cG9ydHMuTWFwUGluUGx1c0luc2lkZSA9IE1hcFBpblBsdXNJbnNpZGU7CiAgZXhwb3J0cy5NYXBQaW5TZWFyY2ggPSBNYXBQaW5TZWFyY2g7CiAgZXhwb3J0cy5NYXBQaW5YID0gTWFwUGluWDsKICBleHBvcnRzLk1hcFBpblhJbnNpZGUgPSBNYXBQaW5YSW5zaWRlOwogIGV4cG9ydHMuTWFwUGlubmVkID0gTWFwUGlubmVkOwogIGV4cG9ydHMuTWFwUGx1cyA9IE1hcFBsdXM7CiAgZXhwb3J0cy5NYXJzID0gTWFyczsKICBleHBvcnRzLk1hcnNTdHJva2UgPSBNYXJzU3Ryb2tlOwogIGV4cG9ydHMuTWFydGluaSA9IE1hcnRpbmk7CiAgZXhwb3J0cy5NYXhpbWl6ZSA9IE1heGltaXplOwogIGV4cG9ydHMuTWF4aW1pemUyID0gTWF4aW1pemUyOwogIGV4cG9ydHMuTWVkYWwgPSBNZWRhbDsKICBleHBvcnRzLk1lZ2FwaG9uZSA9IE1lZ2FwaG9uZTsKICBleHBvcnRzLk1lZ2FwaG9uZU9mZiA9IE1lZ2FwaG9uZU9mZjsKICBleHBvcnRzLk1laCA9IE1laDsKICBleHBvcnRzLk1lbW9yeVN0aWNrID0gTWVtb3J5U3RpY2s7CiAgZXhwb3J0cy5NZW51ID0gTWVudTsKICBleHBvcnRzLk1lbnVTcXVhcmUgPSBTcXVhcmVNZW51OwogIGV4cG9ydHMuTWVyZ2UgPSBNZXJnZTsKICBleHBvcnRzLk1lc3NhZ2VDaXJjbGUgPSBNZXNzYWdlQ2lyY2xlOwogIGV4cG9ydHMuTWVzc2FnZUNpcmNsZUNoZWNrID0gTWVzc2FnZUNpcmNsZUNoZWNrOwogIGV4cG9ydHMuTWVzc2FnZUNpcmNsZUNvZGUgPSBNZXNzYWdlQ2lyY2xlQ29kZTsKICBleHBvcnRzLk1lc3NhZ2VDaXJjbGVEYXNoZWQgPSBNZXNzYWdlQ2lyY2xlRGFzaGVkOwogIGV4cG9ydHMuTWVzc2FnZUNpcmNsZUhlYXJ0ID0gTWVzc2FnZUNpcmNsZUhlYXJ0OwogIGV4cG9ydHMuTWVzc2FnZUNpcmNsZU1vcmUgPSBNZXNzYWdlQ2lyY2xlTW9yZTsKICBleHBvcnRzLk1lc3NhZ2VDaXJjbGVPZmYgPSBNZXNzYWdlQ2lyY2xlT2ZmOwogIGV4cG9ydHMuTWVzc2FnZUNpcmNsZVBsdXMgPSBNZXNzYWdlQ2lyY2xlUGx1czsKICBleHBvcnRzLk1lc3NhZ2VDaXJjbGVRdWVzdGlvbiA9IE1lc3NhZ2VDaXJjbGVRdWVzdGlvbk1hcms7CiAgZXhwb3J0cy5NZXNzYWdlQ2lyY2xlUXVlc3Rpb25NYXJrID0gTWVzc2FnZUNpcmNsZVF1ZXN0aW9uTWFyazsKICBleHBvcnRzLk1lc3NhZ2VDaXJjbGVSZXBseSA9IE1lc3NhZ2VDaXJjbGVSZXBseTsKICBleHBvcnRzLk1lc3NhZ2VDaXJjbGVXYXJuaW5nID0gTWVzc2FnZUNpcmNsZVdhcm5pbmc7CiAgZXhwb3J0cy5NZXNzYWdlQ2lyY2xlWCA9IE1lc3NhZ2VDaXJjbGVYOwogIGV4cG9ydHMuTWVzc2FnZVNxdWFyZSA9IE1lc3NhZ2VTcXVhcmU7CiAgZXhwb3J0cy5NZXNzYWdlU3F1YXJlQ2hlY2sgPSBNZXNzYWdlU3F1YXJlQ2hlY2s7CiAgZXhwb3J0cy5NZXNzYWdlU3F1YXJlQ29kZSA9IE1lc3NhZ2VTcXVhcmVDb2RlOwogIGV4cG9ydHMuTWVzc2FnZVNxdWFyZURhc2hlZCA9IE1lc3NhZ2VTcXVhcmVEYXNoZWQ7CiAgZXhwb3J0cy5NZXNzYWdlU3F1YXJlRGlmZiA9IE1lc3NhZ2VTcXVhcmVEaWZmOwogIGV4cG9ydHMuTWVzc2FnZVNxdWFyZURvdCA9IE1lc3NhZ2VTcXVhcmVEb3Q7CiAgZXhwb3J0cy5NZXNzYWdlU3F1YXJlSGVhcnQgPSBNZXNzYWdlU3F1YXJlSGVhcnQ7CiAgZXhwb3J0cy5NZXNzYWdlU3F1YXJlTG9jayA9IE1lc3NhZ2VTcXVhcmVMb2NrOwogIGV4cG9ydHMuTWVzc2FnZVNxdWFyZU1vcmUgPSBNZXNzYWdlU3F1YXJlTW9yZTsKICBleHBvcnRzLk1lc3NhZ2VTcXVhcmVPZmYgPSBNZXNzYWdlU3F1YXJlT2ZmOwogIGV4cG9ydHMuTWVzc2FnZVNxdWFyZVBsdXMgPSBNZXNzYWdlU3F1YXJlUGx1czsKICBleHBvcnRzLk1lc3NhZ2VTcXVhcmVRdW90ZSA9IE1lc3NhZ2VTcXVhcmVRdW90ZTsKICBleHBvcnRzLk1lc3NhZ2VTcXVhcmVSZXBseSA9IE1lc3NhZ2VTcXVhcmVSZXBseTsKICBleHBvcnRzLk1lc3NhZ2VTcXVhcmVTaGFyZSA9IE1lc3NhZ2VTcXVhcmVTaGFyZTsKICBleHBvcnRzLk1lc3NhZ2VTcXVhcmVUZXh0ID0gTWVzc2FnZVNxdWFyZVRleHQ7CiAgZXhwb3J0cy5NZXNzYWdlU3F1YXJlV2FybmluZyA9IE1lc3NhZ2VTcXVhcmVXYXJuaW5nOwogIGV4cG9ydHMuTWVzc2FnZVNxdWFyZVggPSBNZXNzYWdlU3F1YXJlWDsKICBleHBvcnRzLk1lc3NhZ2VzU3F1YXJlID0gTWVzc2FnZXNTcXVhcmU7CiAgZXhwb3J0cy5NZXRyb25vbWUgPSBNZXRyb25vbWU7CiAgZXhwb3J0cy5NaWMgPSBNaWM7CiAgZXhwb3J0cy5NaWMyID0gTWljVm9jYWw7CiAgZXhwb3J0cy5NaWNBdWRpb0xpbmVzID0gTWljQXVkaW9MaW5lczsKICBleHBvcnRzLk1pY09mZiA9IE1pY09mZjsKICBleHBvcnRzLk1pY1NpZ25hbCA9IE1pY1NpZ25hbDsKICBleHBvcnRzLk1pY1ZvY2FsID0gTWljVm9jYWw7CiAgZXhwb3J0cy5NaWNyb2NoaXAgPSBNaWNyb2NoaXA7CiAgZXhwb3J0cy5NaWNyb3Njb3BlID0gTWljcm9zY29wZTsKICBleHBvcnRzLk1pY3Jvd2F2ZSA9IE1pY3Jvd2F2ZTsKICBleHBvcnRzLk1pbGVzdG9uZSA9IE1pbGVzdG9uZTsKICBleHBvcnRzLk1pbGsgPSBNaWxrOwogIGV4cG9ydHMuTWlsa09mZiA9IE1pbGtPZmY7CiAgZXhwb3J0cy5NaW5pbWl6ZSA9IE1pbmltaXplOwogIGV4cG9ydHMuTWluaW1pemUyID0gTWluaW1pemUyOwogIGV4cG9ydHMuTWludXMgPSBNaW51czsKICBleHBvcnRzLk1pbnVzQ2lyY2xlID0gQ2lyY2xlTWludXM7CiAgZXhwb3J0cy5NaW51c1NxdWFyZSA9IFNxdWFyZU1pbnVzOwogIGV4cG9ydHMuTWlycm9yUmVjdGFuZ3VsYXIgPSBNaXJyb3JSZWN0YW5ndWxhcjsKICBleHBvcnRzLk1pcnJvclJvdW5kID0gTWlycm9yUm91bmQ7CiAgZXhwb3J0cy5Nb25pdG9yID0gTW9uaXRvcjsKICBleHBvcnRzLk1vbml0b3JDaGVjayA9IE1vbml0b3JDaGVjazsKICBleHBvcnRzLk1vbml0b3JDbG91ZCA9IE1vbml0b3JDbG91ZDsKICBleHBvcnRzLk1vbml0b3JDb2cgPSBNb25pdG9yQ29nOwogIGV4cG9ydHMuTW9uaXRvckRvdCA9IE1vbml0b3JEb3Q7CiAgZXhwb3J0cy5Nb25pdG9yRG93biA9IE1vbml0b3JEb3duOwogIGV4cG9ydHMuTW9uaXRvck9mZiA9IE1vbml0b3JPZmY7CiAgZXhwb3J0cy5Nb25pdG9yUGF1c2UgPSBNb25pdG9yUGF1c2U7CiAgZXhwb3J0cy5Nb25pdG9yUGxheSA9IE1vbml0b3JQbGF5OwogIGV4cG9ydHMuTW9uaXRvclNtYXJ0cGhvbmUgPSBNb25pdG9yU21hcnRwaG9uZTsKICBleHBvcnRzLk1vbml0b3JTcGVha2VyID0gTW9uaXRvclNwZWFrZXI7CiAgZXhwb3J0cy5Nb25pdG9yU3RvcCA9IE1vbml0b3JTdG9wOwogIGV4cG9ydHMuTW9uaXRvclVwID0gTW9uaXRvclVwOwogIGV4cG9ydHMuTW9uaXRvclggPSBNb25pdG9yWDsKICBleHBvcnRzLk1vb24gPSBNb29uOwogIGV4cG9ydHMuTW9vblN0YXIgPSBNb29uU3RhcjsKICBleHBvcnRzLk1vcmVIb3Jpem9udGFsID0gRWxsaXBzaXM7CiAgZXhwb3J0cy5Nb3JlVmVydGljYWwgPSBFbGxpcHNpc1ZlcnRpY2FsOwogIGV4cG9ydHMuTW9zcXVlID0gTW9zcXVlOwogIGV4cG9ydHMuTW90b3JiaWtlID0gTW90b3JiaWtlOwogIGV4cG9ydHMuTW91bnRhaW4gPSBNb3VudGFpbjsKICBleHBvcnRzLk1vdW50YWluU25vdyA9IE1vdW50YWluU25vdzsKICBleHBvcnRzLk1vdXNlID0gTW91c2U7CiAgZXhwb3J0cy5Nb3VzZUxlZnQgPSBNb3VzZUxlZnQ7CiAgZXhwb3J0cy5Nb3VzZU9mZiA9IE1vdXNlT2ZmOwogIGV4cG9ydHMuTW91c2VQb2ludGVyID0gTW91c2VQb2ludGVyOwogIGV4cG9ydHMuTW91c2VQb2ludGVyMiA9IE1vdXNlUG9pbnRlcjI7CiAgZXhwb3J0cy5Nb3VzZVBvaW50ZXIyT2ZmID0gTW91c2VQb2ludGVyMk9mZjsKICBleHBvcnRzLk1vdXNlUG9pbnRlckJhbiA9IE1vdXNlUG9pbnRlckJhbjsKICBleHBvcnRzLk1vdXNlUG9pbnRlckNsaWNrID0gTW91c2VQb2ludGVyQ2xpY2s7CiAgZXhwb3J0cy5Nb3VzZVBvaW50ZXJTcXVhcmVEYXNoZWQgPSBTcXVhcmVEYXNoZWRNb3VzZVBvaW50ZXI7CiAgZXhwb3J0cy5Nb3VzZVJpZ2h0ID0gTW91c2VSaWdodDsKICBleHBvcnRzLk1vdmUgPSBNb3ZlOwogIGV4cG9ydHMuTW92ZTNEID0gTW92ZTNkOwogIGV4cG9ydHMuTW92ZTNkID0gTW92ZTNkOwogIGV4cG9ydHMuTW92ZURpYWdvbmFsID0gTW92ZURpYWdvbmFsOwogIGV4cG9ydHMuTW92ZURpYWdvbmFsMiA9IE1vdmVEaWFnb25hbDI7CiAgZXhwb3J0cy5Nb3ZlRG93biA9IE1vdmVEb3duOwogIGV4cG9ydHMuTW92ZURvd25MZWZ0ID0gTW92ZURvd25MZWZ0OwogIGV4cG9ydHMuTW92ZURvd25SaWdodCA9IE1vdmVEb3duUmlnaHQ7CiAgZXhwb3J0cy5Nb3ZlSG9yaXpvbnRhbCA9IE1vdmVIb3Jpem9udGFsOwogIGV4cG9ydHMuTW92ZUxlZnQgPSBNb3ZlTGVmdDsKICBleHBvcnRzLk1vdmVSaWdodCA9IE1vdmVSaWdodDsKICBleHBvcnRzLk1vdmVVcCA9IE1vdmVVcDsKICBleHBvcnRzLk1vdmVVcExlZnQgPSBNb3ZlVXBMZWZ0OwogIGV4cG9ydHMuTW92ZVVwUmlnaHQgPSBNb3ZlVXBSaWdodDsKICBleHBvcnRzLk1vdmVWZXJ0aWNhbCA9IE1vdmVWZXJ0aWNhbDsKICBleHBvcnRzLk11c2ljID0gTXVzaWM7CiAgZXhwb3J0cy5NdXNpYzIgPSBNdXNpYzI7CiAgZXhwb3J0cy5NdXNpYzMgPSBNdXNpYzM7CiAgZXhwb3J0cy5NdXNpYzQgPSBNdXNpYzQ7CiAgZXhwb3J0cy5OYXZpZ2F0aW9uID0gTmF2aWdhdGlvbjsKICBleHBvcnRzLk5hdmlnYXRpb24yID0gTmF2aWdhdGlvbjI7CiAgZXhwb3J0cy5OYXZpZ2F0aW9uMk9mZiA9IE5hdmlnYXRpb24yT2ZmOwogIGV4cG9ydHMuTmF2aWdhdGlvbk9mZiA9IE5hdmlnYXRpb25PZmY7CiAgZXhwb3J0cy5OZXR3b3JrID0gTmV0d29yazsKICBleHBvcnRzLk5ld3NwYXBlciA9IE5ld3NwYXBlcjsKICBleHBvcnRzLk5mYyA9IE5mYzsKICBleHBvcnRzLk5vbkJpbmFyeSA9IE5vbkJpbmFyeTsKICBleHBvcnRzLk5vdGVib29rID0gTm90ZWJvb2s7CiAgZXhwb3J0cy5Ob3RlYm9va1BlbiA9IE5vdGVib29rUGVuOwogIGV4cG9ydHMuTm90ZWJvb2tUYWJzID0gTm90ZWJvb2tUYWJzOwogIGV4cG9ydHMuTm90ZWJvb2tUZXh0ID0gTm90ZWJvb2tUZXh0OwogIGV4cG9ydHMuTm90ZXBhZFRleHQgPSBOb3RlcGFkVGV4dDsKICBleHBvcnRzLk5vdGVwYWRUZXh0RGFzaGVkID0gTm90ZXBhZFRleHREYXNoZWQ7CiAgZXhwb3J0cy5OdXQgPSBOdXQ7CiAgZXhwb3J0cy5OdXRPZmYgPSBOdXRPZmY7CiAgZXhwb3J0cy5PY3RhZ29uID0gT2N0YWdvbjsKICBleHBvcnRzLk9jdGFnb25BbGVydCA9IE9jdGFnb25BbGVydDsKICBleHBvcnRzLk9jdGFnb25NaW51cyA9IE9jdGFnb25NaW51czsKICBleHBvcnRzLk9jdGFnb25QYXVzZSA9IE9jdGFnb25QYXVzZTsKICBleHBvcnRzLk9jdGFnb25YID0gT2N0YWdvblg7CiAgZXhwb3J0cy5PbWVnYSA9IE9tZWdhOwogIGV4cG9ydHMuT3B0aW9uID0gT3B0aW9uOwogIGV4cG9ydHMuT3JiaXQgPSBPcmJpdDsKICBleHBvcnRzLk9yaWdhbWkgPSBPcmlnYW1pOwogIGV4cG9ydHMuT3V0ZGVudCA9IExpc3RJbmRlbnREZWNyZWFzZTsKICBleHBvcnRzLlBhY2thZ2UgPSBQYWNrYWdlOwogIGV4cG9ydHMuUGFja2FnZTIgPSBQYWNrYWdlMjsKICBleHBvcnRzLlBhY2thZ2VDaGVjayA9IFBhY2thZ2VDaGVjazsKICBleHBvcnRzLlBhY2thZ2VNaW51cyA9IFBhY2thZ2VNaW51czsKICBleHBvcnRzLlBhY2thZ2VPcGVuID0gUGFja2FnZU9wZW47CiAgZXhwb3J0cy5QYWNrYWdlUGx1cyA9IFBhY2thZ2VQbHVzOwogIGV4cG9ydHMuUGFja2FnZVNlYXJjaCA9IFBhY2thZ2VTZWFyY2g7CiAgZXhwb3J0cy5QYWNrYWdlWCA9IFBhY2thZ2VYOwogIGV4cG9ydHMuUGFpbnRCdWNrZXQgPSBQYWludEJ1Y2tldDsKICBleHBvcnRzLlBhaW50Um9sbGVyID0gUGFpbnRSb2xsZXI7CiAgZXhwb3J0cy5QYWludGJydXNoID0gUGFpbnRicnVzaDsKICBleHBvcnRzLlBhaW50YnJ1c2gyID0gUGFpbnRicnVzaFZlcnRpY2FsOwogIGV4cG9ydHMuUGFpbnRicnVzaFZlcnRpY2FsID0gUGFpbnRicnVzaFZlcnRpY2FsOwogIGV4cG9ydHMuUGFsZXR0ZSA9IFBhbGV0dGU7CiAgZXhwb3J0cy5QYWxtdHJlZSA9IFRyZWVQYWxtOwogIGV4cG9ydHMuUGFuZGEgPSBQYW5kYTsKICBleHBvcnRzLlBhbmVsQm90dG9tID0gUGFuZWxCb3R0b207CiAgZXhwb3J0cy5QYW5lbEJvdHRvbUNsb3NlID0gUGFuZWxCb3R0b21DbG9zZTsKICBleHBvcnRzLlBhbmVsQm90dG9tRGFzaGVkID0gUGFuZWxCb3R0b21EYXNoZWQ7CiAgZXhwb3J0cy5QYW5lbEJvdHRvbUluYWN0aXZlID0gUGFuZWxCb3R0b21EYXNoZWQ7CiAgZXhwb3J0cy5QYW5lbEJvdHRvbU9wZW4gPSBQYW5lbEJvdHRvbU9wZW47CiAgZXhwb3J0cy5QYW5lbExlZnQgPSBQYW5lbExlZnQ7CiAgZXhwb3J0cy5QYW5lbExlZnRDbG9zZSA9IFBhbmVsTGVmdENsb3NlOwogIGV4cG9ydHMuUGFuZWxMZWZ0RGFzaGVkID0gUGFuZWxMZWZ0RGFzaGVkOwogIGV4cG9ydHMuUGFuZWxMZWZ0SW5hY3RpdmUgPSBQYW5lbExlZnREYXNoZWQ7CiAgZXhwb3J0cy5QYW5lbExlZnRPcGVuID0gUGFuZWxMZWZ0T3BlbjsKICBleHBvcnRzLlBhbmVsTGVmdFJpZ2h0RGFzaGVkID0gUGFuZWxMZWZ0UmlnaHREYXNoZWQ7CiAgZXhwb3J0cy5QYW5lbFJpZ2h0ID0gUGFuZWxSaWdodDsKICBleHBvcnRzLlBhbmVsUmlnaHRDbG9zZSA9IFBhbmVsUmlnaHRDbG9zZTsKICBleHBvcnRzLlBhbmVsUmlnaHREYXNoZWQgPSBQYW5lbFJpZ2h0RGFzaGVkOwogIGV4cG9ydHMuUGFuZWxSaWdodEluYWN0aXZlID0gUGFuZWxSaWdodERhc2hlZDsKICBleHBvcnRzLlBhbmVsUmlnaHRPcGVuID0gUGFuZWxSaWdodE9wZW47CiAgZXhwb3J0cy5QYW5lbFRvcCA9IFBhbmVsVG9wOwogIGV4cG9ydHMuUGFuZWxUb3BCb3R0b21EYXNoZWQgPSBQYW5lbFRvcEJvdHRvbURhc2hlZDsKICBleHBvcnRzLlBhbmVsVG9wQ2xvc2UgPSBQYW5lbFRvcENsb3NlOwogIGV4cG9ydHMuUGFuZWxUb3BEYXNoZWQgPSBQYW5lbFRvcERhc2hlZDsKICBleHBvcnRzLlBhbmVsVG9wSW5hY3RpdmUgPSBQYW5lbFRvcERhc2hlZDsKICBleHBvcnRzLlBhbmVsVG9wT3BlbiA9IFBhbmVsVG9wT3BlbjsKICBleHBvcnRzLlBhbmVsc0xlZnRCb3R0b20gPSBQYW5lbHNMZWZ0Qm90dG9tOwogIGV4cG9ydHMuUGFuZWxzTGVmdFJpZ2h0ID0gQ29sdW1uczM7CiAgZXhwb3J0cy5QYW5lbHNSaWdodEJvdHRvbSA9IFBhbmVsc1JpZ2h0Qm90dG9tOwogIGV4cG9ydHMuUGFuZWxzVG9wQm90dG9tID0gUm93czM7CiAgZXhwb3J0cy5QYW5lbHNUb3BMZWZ0ID0gUGFuZWxzVG9wTGVmdDsKICBleHBvcnRzLlBhcGVyQmFnID0gUGFwZXJCYWc7CiAgZXhwb3J0cy5QYXBlcmNsaXAgPSBQYXBlcmNsaXA7CiAgZXhwb3J0cy5QYXJhc29sID0gUGFyYXNvbDsKICBleHBvcnRzLlBhcmVudGhlc2VzID0gUGFyZW50aGVzZXM7CiAgZXhwb3J0cy5QYXJraW5nQ2lyY2xlID0gQ2lyY2xlUGFya2luZzsKICBleHBvcnRzLlBhcmtpbmdDaXJjbGVPZmYgPSBDaXJjbGVQYXJraW5nT2ZmOwogIGV4cG9ydHMuUGFya2luZ01ldGVyID0gUGFya2luZ01ldGVyOwogIGV4cG9ydHMuUGFya2luZ1NxdWFyZSA9IFNxdWFyZVBhcmtpbmc7CiAgZXhwb3J0cy5QYXJraW5nU3F1YXJlT2ZmID0gU3F1YXJlUGFya2luZ09mZjsKICBleHBvcnRzLlBhcnR5UG9wcGVyID0gUGFydHlQb3BwZXI7CiAgZXhwb3J0cy5QYXVzZSA9IFBhdXNlOwogIGV4cG9ydHMuUGF1c2VDaXJjbGUgPSBDaXJjbGVQYXVzZTsKICBleHBvcnRzLlBhdXNlT2N0YWdvbiA9IE9jdGFnb25QYXVzZTsKICBleHBvcnRzLlBhd1ByaW50ID0gUGF3UHJpbnQ7CiAgZXhwb3J0cy5QY0Nhc2UgPSBQY0Nhc2U7CiAgZXhwb3J0cy5QZW4gPSBQZW47CiAgZXhwb3J0cy5QZW5Cb3ggPSBTcXVhcmVQZW47CiAgZXhwb3J0cy5QZW5MaW5lID0gUGVuTGluZTsKICBleHBvcnRzLlBlbk9mZiA9IFBlbk9mZjsKICBleHBvcnRzLlBlblNxdWFyZSA9IFNxdWFyZVBlbjsKICBleHBvcnRzLlBlblRvb2wgPSBQZW5Ub29sOwogIGV4cG9ydHMuUGVuY2lsID0gUGVuY2lsOwogIGV4cG9ydHMuUGVuY2lsTGluZSA9IFBlbmNpbExpbmU7CiAgZXhwb3J0cy5QZW5jaWxPZmYgPSBQZW5jaWxPZmY7CiAgZXhwb3J0cy5QZW5jaWxSdWxlciA9IFBlbmNpbFJ1bGVyOwogIGV4cG9ydHMuUGVuY2lsU3BhcmtsZXMgPSBQZW5jaWxTcGFya2xlczsKICBleHBvcnRzLlBlbnRhZ29uID0gUGVudGFnb247CiAgZXhwb3J0cy5QZXJjZW50ID0gUGVyY2VudDsKICBleHBvcnRzLlBlcmNlbnRDaXJjbGUgPSBDaXJjbGVQZXJjZW50OwogIGV4cG9ydHMuUGVyY2VudERpYW1vbmQgPSBEaWFtb25kUGVyY2VudDsKICBleHBvcnRzLlBlcmNlbnRTcXVhcmUgPSBTcXVhcmVQZXJjZW50OwogIGV4cG9ydHMuUGVyc29uU3RhbmRpbmcgPSBQZXJzb25TdGFuZGluZzsKICBleHBvcnRzLlBoaSA9IFBoaTsKICBleHBvcnRzLlBoaWxpcHBpbmVQZXNvID0gUGhpbGlwcGluZVBlc287CiAgZXhwb3J0cy5QaG9uZSA9IFBob25lOwogIGV4cG9ydHMuUGhvbmVDYWxsID0gUGhvbmVDYWxsOwogIGV4cG9ydHMuUGhvbmVGb3J3YXJkZWQgPSBQaG9uZUZvcndhcmRlZDsKICBleHBvcnRzLlBob25lSW5jb21pbmcgPSBQaG9uZUluY29taW5nOwogIGV4cG9ydHMuUGhvbmVNaXNzZWQgPSBQaG9uZU1pc3NlZDsKICBleHBvcnRzLlBob25lT2ZmID0gUGhvbmVPZmY7CiAgZXhwb3J0cy5QaG9uZU91dGdvaW5nID0gUGhvbmVPdXRnb2luZzsKICBleHBvcnRzLlBpID0gUGk7CiAgZXhwb3J0cy5QaVNxdWFyZSA9IFNxdWFyZVBpOwogIGV4cG9ydHMuUGlhbm8gPSBQaWFubzsKICBleHBvcnRzLlBpY2theGUgPSBQaWNrYXhlOwogIGV4cG9ydHMuUGljdHVyZUluUGljdHVyZSA9IFBpY3R1cmVJblBpY3R1cmU7CiAgZXhwb3J0cy5QaWN0dXJlSW5QaWN0dXJlMiA9IFBpY3R1cmVJblBpY3R1cmUyOwogIGV4cG9ydHMuUGllQ2hhcnQgPSBDaGFydFBpZTsKICBleHBvcnRzLlBpZ2d5QmFuayA9IFBpZ2d5QmFuazsKICBleHBvcnRzLlBpbGNyb3cgPSBQaWxjcm93OwogIGV4cG9ydHMuUGlsY3Jvd0xlZnQgPSBQaWxjcm93TGVmdDsKICBleHBvcnRzLlBpbGNyb3dSaWdodCA9IFBpbGNyb3dSaWdodDsKICBleHBvcnRzLlBpbGNyb3dTcXVhcmUgPSBTcXVhcmVQaWxjcm93OwogIGV4cG9ydHMuUGlsbCA9IFBpbGw7CiAgZXhwb3J0cy5QaWxsQm90dGxlID0gUGlsbEJvdHRsZTsKICBleHBvcnRzLlBpbiA9IFBpbjsKICBleHBvcnRzLlBpbk9mZiA9IFBpbk9mZjsKICBleHBvcnRzLlBpcGV0dGUgPSBQaXBldHRlOwogIGV4cG9ydHMuUGl6emEgPSBQaXp6YTsKICBleHBvcnRzLlBsYW5lID0gUGxhbmU7CiAgZXhwb3J0cy5QbGFuZUxhbmRpbmcgPSBQbGFuZUxhbmRpbmc7CiAgZXhwb3J0cy5QbGFuZVRha2VvZmYgPSBQbGFuZVRha2VvZmY7CiAgZXhwb3J0cy5QbGF5ID0gUGxheTsKICBleHBvcnRzLlBsYXlDaXJjbGUgPSBDaXJjbGVQbGF5OwogIGV4cG9ydHMuUGxheU9mZiA9IFBsYXlPZmY7CiAgZXhwb3J0cy5QbGF5U3F1YXJlID0gU3F1YXJlUGxheTsKICBleHBvcnRzLlBsdWcgPSBQbHVnOwogIGV4cG9ydHMuUGx1ZzIgPSBQbHVnMjsKICBleHBvcnRzLlBsdWdaYXAgPSBQbHVnWmFwOwogIGV4cG9ydHMuUGx1Z1phcDIgPSBQbHVnWmFwOwogIGV4cG9ydHMuUGx1cyA9IFBsdXM7CiAgZXhwb3J0cy5QbHVzQ2lyY2xlID0gQ2lyY2xlUGx1czsKICBleHBvcnRzLlBsdXNTcXVhcmUgPSBTcXVhcmVQbHVzOwogIGV4cG9ydHMuUG9ja2V0S25pZmUgPSBQb2NrZXRLbmlmZTsKICBleHBvcnRzLlBvZGNhc3QgPSBNaWNTaWduYWw7CiAgZXhwb3J0cy5Qb2RpdW0gPSBQb2RpdW07CiAgZXhwb3J0cy5Qb2ludGVyID0gUG9pbnRlcjsKICBleHBvcnRzLlBvaW50ZXJPZmYgPSBQb2ludGVyT2ZmOwogIGV4cG9ydHMuUG9wY29ybiA9IFBvcGNvcm47CiAgZXhwb3J0cy5Qb3BzaWNsZSA9IFBvcHNpY2xlOwogIGV4cG9ydHMuUG91bmRTdGVybGluZyA9IFBvdW5kU3Rlcmxpbmc7CiAgZXhwb3J0cy5Qb3dlciA9IFBvd2VyOwogIGV4cG9ydHMuUG93ZXJDaXJjbGUgPSBDaXJjbGVQb3dlcjsKICBleHBvcnRzLlBvd2VyT2ZmID0gUG93ZXJPZmY7CiAgZXhwb3J0cy5Qb3dlclNxdWFyZSA9IFNxdWFyZVBvd2VyOwogIGV4cG9ydHMuUHJlc2VudGF0aW9uID0gUHJlc2VudGF0aW9uOwogIGV4cG9ydHMuUHJpbnRlciA9IFByaW50ZXI7CiAgZXhwb3J0cy5QcmludGVyQ2hlY2sgPSBQcmludGVyQ2hlY2s7CiAgZXhwb3J0cy5QcmludGVyWCA9IFByaW50ZXJYOwogIGV4cG9ydHMuUHJvamVjdG9yID0gUHJvamVjdG9yOwogIGV4cG9ydHMuUHJvcG9ydGlvbnMgPSBQcm9wb3J0aW9uczsKICBleHBvcnRzLlB1enpsZSA9IFB1enpsZTsKICBleHBvcnRzLlB5cmFtaWQgPSBQeXJhbWlkOwogIGV4cG9ydHMuUXJDb2RlID0gUXJDb2RlOwogIGV4cG9ydHMuUXVvdGUgPSBRdW90ZTsKICBleHBvcnRzLlJhYmJpdCA9IFJhYmJpdDsKICBleHBvcnRzLlJhZGFyID0gUmFkYXI7CiAgZXhwb3J0cy5SYWRpYXRpb24gPSBSYWRpYXRpb247CiAgZXhwb3J0cy5SYWRpY2FsID0gUmFkaWNhbDsKICBleHBvcnRzLlJhZGlvID0gUmFkaW87CiAgZXhwb3J0cy5SYWRpb09mZiA9IFJhZGlvT2ZmOwogIGV4cG9ydHMuUmFkaW9SZWNlaXZlciA9IFJhZGlvUmVjZWl2ZXI7CiAgZXhwb3J0cy5SYWRpb1Rvd2VyID0gUmFkaW9Ub3dlcjsKICBleHBvcnRzLlJhZGl1cyA9IFJhZGl1czsKICBleHBvcnRzLlJhaW5ib3cgPSBSYWluYm93OwogIGV4cG9ydHMuUmF0ID0gUmF0OwogIGV4cG9ydHMuUmF0aW8gPSBSYXRpbzsKICBleHBvcnRzLlJlY2VpcHQgPSBSZWNlaXB0OwogIGV4cG9ydHMuUmVjZWlwdENlbnQgPSBSZWNlaXB0Q2VudDsKICBleHBvcnRzLlJlY2VpcHRFdXJvID0gUmVjZWlwdEV1cm87CiAgZXhwb3J0cy5SZWNlaXB0SW5kaWFuUnVwZWUgPSBSZWNlaXB0SW5kaWFuUnVwZWU7CiAgZXhwb3J0cy5SZWNlaXB0SmFwYW5lc2VZZW4gPSBSZWNlaXB0SmFwYW5lc2VZZW47CiAgZXhwb3J0cy5SZWNlaXB0UG91bmRTdGVybGluZyA9IFJlY2VpcHRQb3VuZFN0ZXJsaW5nOwogIGV4cG9ydHMuUmVjZWlwdFJ1c3NpYW5SdWJsZSA9IFJlY2VpcHRSdXNzaWFuUnVibGU7CiAgZXhwb3J0cy5SZWNlaXB0U3dpc3NGcmFuYyA9IFJlY2VpcHRTd2lzc0ZyYW5jOwogIGV4cG9ydHMuUmVjZWlwdFRleHQgPSBSZWNlaXB0VGV4dDsKICBleHBvcnRzLlJlY2VpcHRUdXJraXNoTGlyYSA9IFJlY2VpcHRUdXJraXNoTGlyYTsKICBleHBvcnRzLlJlY3RhbmdsZUNpcmNsZSA9IFJlY3RhbmdsZUNpcmNsZTsKICBleHBvcnRzLlJlY3RhbmdsZUVsbGlwc2lzID0gUmVjdGFuZ2xlRWxsaXBzaXM7CiAgZXhwb3J0cy5SZWN0YW5nbGVHb2dnbGVzID0gUmVjdGFuZ2xlR29nZ2xlczsKICBleHBvcnRzLlJlY3RhbmdsZUhvcml6b250YWwgPSBSZWN0YW5nbGVIb3Jpem9udGFsOwogIGV4cG9ydHMuUmVjdGFuZ2xlVmVydGljYWwgPSBSZWN0YW5nbGVWZXJ0aWNhbDsKICBleHBvcnRzLlJlY3ljbGUgPSBSZWN5Y2xlOwogIGV4cG9ydHMuUmVkbyA9IFJlZG87CiAgZXhwb3J0cy5SZWRvMiA9IFJlZG8yOwogIGV4cG9ydHMuUmVkb0RvdCA9IFJlZG9Eb3Q7CiAgZXhwb3J0cy5SZWZyZXNoQ2N3ID0gUmVmcmVzaENjdzsKICBleHBvcnRzLlJlZnJlc2hDY3dEb3QgPSBSZWZyZXNoQ2N3RG90OwogIGV4cG9ydHMuUmVmcmVzaEN3ID0gUmVmcmVzaEN3OwogIGV4cG9ydHMuUmVmcmVzaEN3T2ZmID0gUmVmcmVzaEN3T2ZmOwogIGV4cG9ydHMuUmVmcmlnZXJhdG9yID0gUmVmcmlnZXJhdG9yOwogIGV4cG9ydHMuUmVnZXggPSBSZWdleDsKICBleHBvcnRzLlJlbW92ZUZvcm1hdHRpbmcgPSBSZW1vdmVGb3JtYXR0aW5nOwogIGV4cG9ydHMuUmVwZWF0ID0gUmVwZWF0OwogIGV4cG9ydHMuUmVwZWF0MSA9IFJlcGVhdDE7CiAgZXhwb3J0cy5SZXBlYXQyID0gUmVwZWF0MjsKICBleHBvcnRzLlJlcGVhdE9mZiA9IFJlcGVhdE9mZjsKICBleHBvcnRzLlJlcGxhY2UgPSBSZXBsYWNlOwogIGV4cG9ydHMuUmVwbGFjZUFsbCA9IFJlcGxhY2VBbGw7CiAgZXhwb3J0cy5SZXBseSA9IFJlcGx5OwogIGV4cG9ydHMuUmVwbHlBbGwgPSBSZXBseUFsbDsKICBleHBvcnRzLlJld2luZCA9IFJld2luZDsKICBleHBvcnRzLlJpYmJvbiA9IFJpYmJvbjsKICBleHBvcnRzLlJvYWQgPSBSb2FkOwogIGV4cG9ydHMuUm9ja2V0ID0gUm9ja2V0OwogIGV4cG9ydHMuUm9ja2luZ0NoYWlyID0gUm9ja2luZ0NoYWlyOwogIGV4cG9ydHMuUm9sbGVyQ29hc3RlciA9IFJvbGxlckNvYXN0ZXI7CiAgZXhwb3J0cy5Sb3NlID0gUm9zZTsKICBleHBvcnRzLlJvdGF0ZTNEID0gUm90YXRlM2Q7CiAgZXhwb3J0cy5Sb3RhdGUzZCA9IFJvdGF0ZTNkOwogIGV4cG9ydHMuUm90YXRlQ2N3ID0gUm90YXRlQ2N3OwogIGV4cG9ydHMuUm90YXRlQ2N3Q2xvY2sgPSBSb3RhdGVDY3dDbG9jazsKICBleHBvcnRzLlJvdGF0ZUNjd0tleSA9IFJvdGF0ZUNjd0tleTsKICBleHBvcnRzLlJvdGF0ZUNjd1NxdWFyZSA9IFJvdGF0ZUNjd1NxdWFyZTsKICBleHBvcnRzLlJvdGF0ZUN3ID0gUm90YXRlQ3c7CiAgZXhwb3J0cy5Sb3RhdGVDd0ZhZGluZ0Nsb2NrID0gUm90YXRlQ3dGYWRpbmdDbG9jazsKICBleHBvcnRzLlJvdGF0ZUN3U3F1YXJlID0gUm90YXRlQ3dTcXVhcmU7CiAgZXhwb3J0cy5Sb3V0ZSA9IFJvdXRlOwogIGV4cG9ydHMuUm91dGVPZmYgPSBSb3V0ZU9mZjsKICBleHBvcnRzLlJvdXRlciA9IFJvdXRlcjsKICBleHBvcnRzLlJvd3MgPSBSb3dzMjsKICBleHBvcnRzLlJvd3MyID0gUm93czI7CiAgZXhwb3J0cy5Sb3dzMyA9IFJvd3MzOwogIGV4cG9ydHMuUm93czQgPSBSb3dzNDsKICBleHBvcnRzLlJzcyA9IFJzczsKICBleHBvcnRzLlJ1bGVyID0gUnVsZXI7CiAgZXhwb3J0cy5SdWxlckRpbWVuc2lvbkxpbmUgPSBSdWxlckRpbWVuc2lvbkxpbmU7CiAgZXhwb3J0cy5SdXNzaWFuUnVibGUgPSBSdXNzaWFuUnVibGU7CiAgZXhwb3J0cy5TYWlsYm9hdCA9IFNhaWxib2F0OwogIGV4cG9ydHMuU2FsYWQgPSBTYWxhZDsKICBleHBvcnRzLlNhbmR3aWNoID0gU2FuZHdpY2g7CiAgZXhwb3J0cy5TYXRlbGxpdGUgPSBTYXRlbGxpdGU7CiAgZXhwb3J0cy5TYXRlbGxpdGVEaXNoID0gU2F0ZWxsaXRlRGlzaDsKICBleHBvcnRzLlNhdWRpUml5YWwgPSBTYXVkaVJpeWFsOwogIGV4cG9ydHMuU2F2ZSA9IFNhdmU7CiAgZXhwb3J0cy5TYXZlQWxsID0gU2F2ZUFsbDsKICBleHBvcnRzLlNhdmVDaGVjayA9IFNhdmVDaGVjazsKICBleHBvcnRzLlNhdmVPZmYgPSBTYXZlT2ZmOwogIGV4cG9ydHMuU2F2ZVBlbiA9IFNhdmVQZW47CiAgZXhwb3J0cy5TYXZlUGx1cyA9IFNhdmVQbHVzOwogIGV4cG9ydHMuU2NhbGUgPSBTY2FsZTsKICBleHBvcnRzLlNjYWxlM0QgPSBTY2FsZTNkOwogIGV4cG9ydHMuU2NhbGUzZCA9IFNjYWxlM2Q7CiAgZXhwb3J0cy5TY2FsaW5nID0gU2NhbGluZzsKICBleHBvcnRzLlNjYW4gPSBTY2FuOwogIGV4cG9ydHMuU2NhbkJhcmNvZGUgPSBTY2FuQmFyY29kZTsKICBleHBvcnRzLlNjYW5Cb3ggPSBTY2FuQm94OwogIGV4cG9ydHMuU2NhbkV5ZSA9IFNjYW5FeWU7CiAgZXhwb3J0cy5TY2FuRmFjZSA9IFNjYW5GYWNlOwogIGV4cG9ydHMuU2NhbkhlYXJ0ID0gU2NhbkhlYXJ0OwogIGV4cG9ydHMuU2NhbkxpbmUgPSBTY2FuTGluZTsKICBleHBvcnRzLlNjYW5RckNvZGUgPSBTY2FuUXJDb2RlOwogIGV4cG9ydHMuU2NhblNlYXJjaCA9IFNjYW5TZWFyY2g7CiAgZXhwb3J0cy5TY2FuU3F1YXJlID0gU2NhblNxdWFyZTsKICBleHBvcnRzLlNjYW5UZXh0ID0gU2NhblRleHQ7CiAgZXhwb3J0cy5TY2F0dGVyQ2hhcnQgPSBDaGFydFNjYXR0ZXI7CiAgZXhwb3J0cy5TY2hvb2wgPSBTY2hvb2w7CiAgZXhwb3J0cy5TY2hvb2wyID0gVW5pdmVyc2l0eTsKICBleHBvcnRzLlNjaXNzb3JzID0gU2Npc3NvcnM7CiAgZXhwb3J0cy5TY2lzc29yc0xpbmVEYXNoZWQgPSBTY2lzc29yc0xpbmVEYXNoZWQ7CiAgZXhwb3J0cy5TY2lzc29yc1NxdWFyZSA9IFNxdWFyZVNjaXNzb3JzOwogIGV4cG9ydHMuU2Npc3NvcnNTcXVhcmVEYXNoZWRCb3R0b20gPSBTcXVhcmVCb3R0b21EYXNoZWRTY2lzc29yczsKICBleHBvcnRzLlNjb290ZXIgPSBTY29vdGVyOwogIGV4cG9ydHMuU2NyZWVuU2hhcmUgPSBTY3JlZW5TaGFyZTsKICBleHBvcnRzLlNjcmVlblNoYXJlT2ZmID0gU2NyZWVuU2hhcmVPZmY7CiAgZXhwb3J0cy5TY3JvbGwgPSBTY3JvbGw7CiAgZXhwb3J0cy5TY3JvbGxUZXh0ID0gU2Nyb2xsVGV4dDsKICBleHBvcnRzLlNlYXJjaCA9IFNlYXJjaDsKICBleHBvcnRzLlNlYXJjaEFsZXJ0ID0gU2VhcmNoQWxlcnQ7CiAgZXhwb3J0cy5TZWFyY2hDaGVjayA9IFNlYXJjaENoZWNrOwogIGV4cG9ydHMuU2VhcmNoQ29kZSA9IFNlYXJjaENvZGU7CiAgZXhwb3J0cy5TZWFyY2hTbGFzaCA9IFNlYXJjaFNsYXNoOwogIGV4cG9ydHMuU2VhcmNoWCA9IFNlYXJjaFg7CiAgZXhwb3J0cy5TZWN0aW9uID0gU2VjdGlvbjsKICBleHBvcnRzLlNlbmQgPSBTZW5kOwogIGV4cG9ydHMuU2VuZEhvcml6b25hbCA9IFNlbmRIb3Jpem9udGFsOwogIGV4cG9ydHMuU2VuZEhvcml6b250YWwgPSBTZW5kSG9yaXpvbnRhbDsKICBleHBvcnRzLlNlbmRUb0JhY2sgPSBTZW5kVG9CYWNrOwogIGV4cG9ydHMuU2VwYXJhdG9ySG9yaXpvbnRhbCA9IFNlcGFyYXRvckhvcml6b250YWw7CiAgZXhwb3J0cy5TZXBhcmF0b3JWZXJ0aWNhbCA9IFNlcGFyYXRvclZlcnRpY2FsOwogIGV4cG9ydHMuU2VydmVyID0gU2VydmVyOwogIGV4cG9ydHMuU2VydmVyQ29nID0gU2VydmVyQ29nOwogIGV4cG9ydHMuU2VydmVyQ3Jhc2ggPSBTZXJ2ZXJDcmFzaDsKICBleHBvcnRzLlNlcnZlck9mZiA9IFNlcnZlck9mZjsKICBleHBvcnRzLlNlcnZlclBsdXMgPSBTZXJ2ZXJQbHVzOwogIGV4cG9ydHMuU2V0dGluZ3MgPSBTZXR0aW5nczsKICBleHBvcnRzLlNldHRpbmdzMiA9IFNldHRpbmdzMjsKICBleHBvcnRzLlNoYXBlcyA9IFNoYXBlczsKICBleHBvcnRzLlNoYXJlID0gU2hhcmU7CiAgZXhwb3J0cy5TaGFyZTIgPSBTaGFyZTI7CiAgZXhwb3J0cy5TaGVldCA9IFNoZWV0OwogIGV4cG9ydHMuU2hlbGwgPSBTaGVsbDsKICBleHBvcnRzLlNoZWx2aW5nVW5pdCA9IFNoZWx2aW5nVW5pdDsKICBleHBvcnRzLlNoaWVsZCA9IFNoaWVsZDsKICBleHBvcnRzLlNoaWVsZEFsZXJ0ID0gU2hpZWxkQWxlcnQ7CiAgZXhwb3J0cy5TaGllbGRCYW4gPSBTaGllbGRCYW47CiAgZXhwb3J0cy5TaGllbGRDaGVjayA9IFNoaWVsZENoZWNrOwogIGV4cG9ydHMuU2hpZWxkQ2xvc2UgPSBTaGllbGRYOwogIGV4cG9ydHMuU2hpZWxkQ29nID0gU2hpZWxkQ29nOwogIGV4cG9ydHMuU2hpZWxkQ29nQ29ybmVyID0gU2hpZWxkQ29nQ29ybmVyOwogIGV4cG9ydHMuU2hpZWxkRWxsaXBzaXMgPSBTaGllbGRFbGxpcHNpczsKICBleHBvcnRzLlNoaWVsZEhhbGYgPSBTaGllbGRIYWxmOwogIGV4cG9ydHMuU2hpZWxkS2V5aG9sZSA9IFNoaWVsZEtleWhvbGU7CiAgZXhwb3J0cy5TaGllbGRNaW51cyA9IFNoaWVsZE1pbnVzOwogIGV4cG9ydHMuU2hpZWxkT2ZmID0gU2hpZWxkT2ZmOwogIGV4cG9ydHMuU2hpZWxkUGx1cyA9IFNoaWVsZFBsdXM7CiAgZXhwb3J0cy5TaGllbGRRdWVzdGlvbiA9IFNoaWVsZFF1ZXN0aW9uTWFyazsKICBleHBvcnRzLlNoaWVsZFF1ZXN0aW9uTWFyayA9IFNoaWVsZFF1ZXN0aW9uTWFyazsKICBleHBvcnRzLlNoaWVsZFVzZXIgPSBTaGllbGRVc2VyOwogIGV4cG9ydHMuU2hpZWxkWCA9IFNoaWVsZFg7CiAgZXhwb3J0cy5TaGlwID0gU2hpcDsKICBleHBvcnRzLlNoaXBXaGVlbCA9IFNoaXBXaGVlbDsKICBleHBvcnRzLlNoaXJ0ID0gU2hpcnQ7CiAgZXhwb3J0cy5TaG9wcGluZ0JhZyA9IFNob3BwaW5nQmFnOwogIGV4cG9ydHMuU2hvcHBpbmdCYXNrZXQgPSBTaG9wcGluZ0Jhc2tldDsKICBleHBvcnRzLlNob3BwaW5nQ2FydCA9IFNob3BwaW5nQ2FydDsKICBleHBvcnRzLlNob3ZlbCA9IFNob3ZlbDsKICBleHBvcnRzLlNob3dlckhlYWQgPSBTaG93ZXJIZWFkOwogIGV4cG9ydHMuU2hyZWRkZXIgPSBTaHJlZGRlcjsKICBleHBvcnRzLlNocmltcCA9IFNocmltcDsKICBleHBvcnRzLlNocmluayA9IFNocmluazsKICBleHBvcnRzLlNocnViID0gU2hydWI7CiAgZXhwb3J0cy5TaHVmZmxlID0gU2h1ZmZsZTsKICBleHBvcnRzLlNpZGViYXIgPSBQYW5lbExlZnQ7CiAgZXhwb3J0cy5TaWRlYmFyQ2xvc2UgPSBQYW5lbExlZnRDbG9zZTsKICBleHBvcnRzLlNpZGViYXJPcGVuID0gUGFuZWxMZWZ0T3BlbjsKICBleHBvcnRzLlNpZ21hID0gU2lnbWE7CiAgZXhwb3J0cy5TaWdtYVNxdWFyZSA9IFNxdWFyZVNpZ21hOwogIGV4cG9ydHMuU2lnbmFsID0gU2lnbmFsOwogIGV4cG9ydHMuU2lnbmFsSGlnaCA9IFNpZ25hbEhpZ2g7CiAgZXhwb3J0cy5TaWduYWxMb3cgPSBTaWduYWxMb3c7CiAgZXhwb3J0cy5TaWduYWxNZWRpdW0gPSBTaWduYWxNZWRpdW07CiAgZXhwb3J0cy5TaWduYWxaZXJvID0gU2lnbmFsWmVybzsKICBleHBvcnRzLlNpZ25hdHVyZSA9IFNpZ25hdHVyZTsKICBleHBvcnRzLlNpZ25wb3N0ID0gU2lnbnBvc3Q7CiAgZXhwb3J0cy5TaWducG9zdEJpZyA9IFNpZ25wb3N0QmlnOwogIGV4cG9ydHMuU2lyZW4gPSBTaXJlbjsKICBleHBvcnRzLlNraXBCYWNrID0gU2tpcEJhY2s7CiAgZXhwb3J0cy5Ta2lwRm9yd2FyZCA9IFNraXBGb3J3YXJkOwogIGV4cG9ydHMuU2t1bGwgPSBTa3VsbDsKICBleHBvcnRzLlNsYXNoID0gU2xhc2g7CiAgZXhwb3J0cy5TbGFzaFNxdWFyZSA9IFNxdWFyZVNsYXNoOwogIGV4cG9ydHMuU2xpY2UgPSBTbGljZTsKICBleHBvcnRzLlNsaWRlcnMgPSBTbGlkZXJzVmVydGljYWw7CiAgZXhwb3J0cy5TbGlkZXJzSG9yaXpvbnRhbCA9IFNsaWRlcnNIb3Jpem9udGFsOwogIGV4cG9ydHMuU2xpZGVyc1ZlcnRpY2FsID0gU2xpZGVyc1ZlcnRpY2FsOwogIGV4cG9ydHMuU21hcnRwaG9uZSA9IFNtYXJ0cGhvbmU7CiAgZXhwb3J0cy5TbWFydHBob25lQ2hhcmdpbmcgPSBTbWFydHBob25lQ2hhcmdpbmc7CiAgZXhwb3J0cy5TbWFydHBob25lTmZjID0gU21hcnRwaG9uZU5mYzsKICBleHBvcnRzLlNtaWxlID0gU21pbGU7CiAgZXhwb3J0cy5TbWlsZVBsdXMgPSBTbWlsZVBsdXM7CiAgZXhwb3J0cy5TbmFpbCA9IFNuYWlsOwogIGV4cG9ydHMuU25vd2ZsYWtlID0gU25vd2ZsYWtlOwogIGV4cG9ydHMuU29hcERpc3BlbnNlckRyb3BsZXQgPSBTb2FwRGlzcGVuc2VyRHJvcGxldDsKICBleHBvcnRzLlNvZmEgPSBTb2ZhOwogIGV4cG9ydHMuU29sYXJQYW5lbCA9IFNvbGFyUGFuZWw7CiAgZXhwb3J0cy5Tb3J0QXNjID0gQXJyb3dVcE5hcnJvd1dpZGU7CiAgZXhwb3J0cy5Tb3J0RGVzYyA9IEFycm93RG93bldpZGVOYXJyb3c7CiAgZXhwb3J0cy5Tb3VwID0gU291cDsKICBleHBvcnRzLlNwYWNlID0gU3BhY2U7CiAgZXhwb3J0cy5TcGFkZSA9IFNwYWRlOwogIGV4cG9ydHMuU3BhcmtsZSA9IFNwYXJrbGU7CiAgZXhwb3J0cy5TcGFya2xlcyA9IFNwYXJrbGVzOwogIGV4cG9ydHMuU3BlYWtlciA9IFNwZWFrZXI7CiAgZXhwb3J0cy5TcGVlY2ggPSBTcGVlY2g7CiAgZXhwb3J0cy5TcGVsbENoZWNrID0gU3BlbGxDaGVjazsKICBleHBvcnRzLlNwZWxsQ2hlY2syID0gU3BlbGxDaGVjazI7CiAgZXhwb3J0cy5TcGxpbmUgPSBTcGxpbmU7CiAgZXhwb3J0cy5TcGxpbmVQb2ludGVyID0gU3BsaW5lUG9pbnRlcjsKICBleHBvcnRzLlNwbGl0ID0gU3BsaXQ7CiAgZXhwb3J0cy5TcGxpdFNxdWFyZUhvcml6b250YWwgPSBTcXVhcmVTcGxpdEhvcml6b250YWw7CiAgZXhwb3J0cy5TcGxpdFNxdWFyZVZlcnRpY2FsID0gU3F1YXJlU3BsaXRWZXJ0aWNhbDsKICBleHBvcnRzLlNwb29sID0gU3Bvb2w7CiAgZXhwb3J0cy5TcG9ydFNob2UgPSBTcG9ydFNob2U7CiAgZXhwb3J0cy5TcG90bGlnaHQgPSBTcG90bGlnaHQ7CiAgZXhwb3J0cy5TcHJheUNhbiA9IFNwcmF5Q2FuOwogIGV4cG9ydHMuU3Byb3V0ID0gU3Byb3V0OwogIGV4cG9ydHMuU3F1YXJlID0gU3F1YXJlOwogIGV4cG9ydHMuU3F1YXJlQWN0aXZpdHkgPSBTcXVhcmVBY3Rpdml0eTsKICBleHBvcnRzLlNxdWFyZUFycm93RG93biA9IFNxdWFyZUFycm93RG93bjsKICBleHBvcnRzLlNxdWFyZUFycm93RG93bkxlZnQgPSBTcXVhcmVBcnJvd0Rvd25MZWZ0OwogIGV4cG9ydHMuU3F1YXJlQXJyb3dEb3duUmlnaHQgPSBTcXVhcmVBcnJvd0Rvd25SaWdodDsKICBleHBvcnRzLlNxdWFyZUFycm93TGVmdCA9IFNxdWFyZUFycm93TGVmdDsKICBleHBvcnRzLlNxdWFyZUFycm93T3V0RG93bkxlZnQgPSBTcXVhcmVBcnJvd091dERvd25MZWZ0OwogIGV4cG9ydHMuU3F1YXJlQXJyb3dPdXREb3duUmlnaHQgPSBTcXVhcmVBcnJvd091dERvd25SaWdodDsKICBleHBvcnRzLlNxdWFyZUFycm93T3V0VXBMZWZ0ID0gU3F1YXJlQXJyb3dPdXRVcExlZnQ7CiAgZXhwb3J0cy5TcXVhcmVBcnJvd091dFVwUmlnaHQgPSBTcXVhcmVBcnJvd091dFVwUmlnaHQ7CiAgZXhwb3J0cy5TcXVhcmVBcnJvd1JpZ2h0ID0gU3F1YXJlQXJyb3dSaWdodDsKICBleHBvcnRzLlNxdWFyZUFycm93UmlnaHRFbnRlciA9IFNxdWFyZUFycm93UmlnaHRFbnRlcjsKICBleHBvcnRzLlNxdWFyZUFycm93UmlnaHRFeGl0ID0gU3F1YXJlQXJyb3dSaWdodEV4aXQ7CiAgZXhwb3J0cy5TcXVhcmVBcnJvd1VwID0gU3F1YXJlQXJyb3dVcDsKICBleHBvcnRzLlNxdWFyZUFycm93VXBMZWZ0ID0gU3F1YXJlQXJyb3dVcExlZnQ7CiAgZXhwb3J0cy5TcXVhcmVBcnJvd1VwUmlnaHQgPSBTcXVhcmVBcnJvd1VwUmlnaHQ7CiAgZXhwb3J0cy5TcXVhcmVBc3RlcmlzayA9IFNxdWFyZUFzdGVyaXNrOwogIGV4cG9ydHMuU3F1YXJlQm90dG9tRGFzaGVkU2Npc3NvcnMgPSBTcXVhcmVCb3R0b21EYXNoZWRTY2lzc29yczsKICBleHBvcnRzLlNxdWFyZUNlbnRlcmxpbmVEYXNoZWRIb3Jpem9udGFsID0gU3F1YXJlQ2VudGVybGluZURhc2hlZEhvcml6b250YWw7CiAgZXhwb3J0cy5TcXVhcmVDZW50ZXJsaW5lRGFzaGVkVmVydGljYWwgPSBTcXVhcmVDZW50ZXJsaW5lRGFzaGVkVmVydGljYWw7CiAgZXhwb3J0cy5TcXVhcmVDaGFydEdhbnR0ID0gU3F1YXJlQ2hhcnRHYW50dDsKICBleHBvcnRzLlNxdWFyZUNoZWNrID0gU3F1YXJlQ2hlY2s7CiAgZXhwb3J0cy5TcXVhcmVDaGVja0JpZyA9IFNxdWFyZUNoZWNrQmlnOwogIGV4cG9ydHMuU3F1YXJlQ2hldnJvbkRvd24gPSBTcXVhcmVDaGV2cm9uRG93bjsKICBleHBvcnRzLlNxdWFyZUNoZXZyb25MZWZ0ID0gU3F1YXJlQ2hldnJvbkxlZnQ7CiAgZXhwb3J0cy5TcXVhcmVDaGV2cm9uUmlnaHQgPSBTcXVhcmVDaGV2cm9uUmlnaHQ7CiAgZXhwb3J0cy5TcXVhcmVDaGV2cm9uVXAgPSBTcXVhcmVDaGV2cm9uVXA7CiAgZXhwb3J0cy5TcXVhcmVDb2RlID0gU3F1YXJlQ29kZTsKICBleHBvcnRzLlNxdWFyZURhc2hlZCA9IFNxdWFyZURhc2hlZDsKICBleHBvcnRzLlNxdWFyZURhc2hlZEJvdHRvbSA9IFNxdWFyZURhc2hlZEJvdHRvbTsKICBleHBvcnRzLlNxdWFyZURhc2hlZEJvdHRvbUNvZGUgPSBTcXVhcmVEYXNoZWRCb3R0b21Db2RlOwogIGV4cG9ydHMuU3F1YXJlRGFzaGVkS2FuYmFuID0gU3F1YXJlRGFzaGVkS2FuYmFuOwogIGV4cG9ydHMuU3F1YXJlRGFzaGVkTW91c2VQb2ludGVyID0gU3F1YXJlRGFzaGVkTW91c2VQb2ludGVyOwogIGV4cG9ydHMuU3F1YXJlRGFzaGVkVGV4dCA9IFNxdWFyZURhc2hlZFRleHQ7CiAgZXhwb3J0cy5TcXVhcmVEYXNoZWRUb3BTb2xpZCA9IFNxdWFyZURhc2hlZFRvcFNvbGlkOwogIGV4cG9ydHMuU3F1YXJlRGl2aWRlID0gU3F1YXJlRGl2aWRlOwogIGV4cG9ydHMuU3F1YXJlRG90ID0gU3F1YXJlRG90OwogIGV4cG9ydHMuU3F1YXJlRXF1YWwgPSBTcXVhcmVFcXVhbDsKICBleHBvcnRzLlNxdWFyZUZ1bmN0aW9uID0gU3F1YXJlRnVuY3Rpb247CiAgZXhwb3J0cy5TcXVhcmVHYW50dENoYXJ0ID0gU3F1YXJlQ2hhcnRHYW50dDsKICBleHBvcnRzLlNxdWFyZUthbmJhbiA9IFNxdWFyZUthbmJhbjsKICBleHBvcnRzLlNxdWFyZUxpYnJhcnkgPSBTcXVhcmVMaWJyYXJ5OwogIGV4cG9ydHMuU3F1YXJlTSA9IFNxdWFyZU07CiAgZXhwb3J0cy5TcXVhcmVNZW51ID0gU3F1YXJlTWVudTsKICBleHBvcnRzLlNxdWFyZU1pbnVzID0gU3F1YXJlTWludXM7CiAgZXhwb3J0cy5TcXVhcmVNb3VzZVBvaW50ZXIgPSBTcXVhcmVNb3VzZVBvaW50ZXI7CiAgZXhwb3J0cy5TcXVhcmVPZmYgPSBTcXVhcmVPZmY7CiAgZXhwb3J0cy5TcXVhcmVQYXJraW5nID0gU3F1YXJlUGFya2luZzsKICBleHBvcnRzLlNxdWFyZVBhcmtpbmdPZmYgPSBTcXVhcmVQYXJraW5nT2ZmOwogIGV4cG9ydHMuU3F1YXJlUGF1c2UgPSBTcXVhcmVQYXVzZTsKICBleHBvcnRzLlNxdWFyZVBlbiA9IFNxdWFyZVBlbjsKICBleHBvcnRzLlNxdWFyZVBlcmNlbnQgPSBTcXVhcmVQZXJjZW50OwogIGV4cG9ydHMuU3F1YXJlUGkgPSBTcXVhcmVQaTsKICBleHBvcnRzLlNxdWFyZVBpbGNyb3cgPSBTcXVhcmVQaWxjcm93OwogIGV4cG9ydHMuU3F1YXJlUGxheSA9IFNxdWFyZVBsYXk7CiAgZXhwb3J0cy5TcXVhcmVQbHVzID0gU3F1YXJlUGx1czsKICBleHBvcnRzLlNxdWFyZVBvd2VyID0gU3F1YXJlUG93ZXI7CiAgZXhwb3J0cy5TcXVhcmVSYWRpY2FsID0gU3F1YXJlUmFkaWNhbDsKICBleHBvcnRzLlNxdWFyZVJvdW5kQ29ybmVyID0gU3F1YXJlUm91bmRDb3JuZXI7CiAgZXhwb3J0cy5TcXVhcmVTY2lzc29ycyA9IFNxdWFyZVNjaXNzb3JzOwogIGV4cG9ydHMuU3F1YXJlU2lnbWEgPSBTcXVhcmVTaWdtYTsKICBleHBvcnRzLlNxdWFyZVNsYXNoID0gU3F1YXJlU2xhc2g7CiAgZXhwb3J0cy5TcXVhcmVTcGxpdEhvcml6b250YWwgPSBTcXVhcmVTcGxpdEhvcml6b250YWw7CiAgZXhwb3J0cy5TcXVhcmVTcGxpdFZlcnRpY2FsID0gU3F1YXJlU3BsaXRWZXJ0aWNhbDsKICBleHBvcnRzLlNxdWFyZVNxdWFyZSA9IFNxdWFyZVNxdWFyZTsKICBleHBvcnRzLlNxdWFyZVN0YWNrID0gU3F1YXJlU3RhY2s7CiAgZXhwb3J0cy5TcXVhcmVTdGFyID0gU3F1YXJlU3RhcjsKICBleHBvcnRzLlNxdWFyZVN0b3AgPSBTcXVhcmVTdG9wOwogIGV4cG9ydHMuU3F1YXJlVGVybWluYWwgPSBTcXVhcmVUZXJtaW5hbDsKICBleHBvcnRzLlNxdWFyZVVzZXIgPSBTcXVhcmVVc2VyOwogIGV4cG9ydHMuU3F1YXJlVXNlclJvdW5kID0gU3F1YXJlVXNlclJvdW5kOwogIGV4cG9ydHMuU3F1YXJlWCA9IFNxdWFyZVg7CiAgZXhwb3J0cy5TcXVhcmVzRXhjbHVkZSA9IFNxdWFyZXNFeGNsdWRlOwogIGV4cG9ydHMuU3F1YXJlc0ludGVyc2VjdCA9IFNxdWFyZXNJbnRlcnNlY3Q7CiAgZXhwb3J0cy5TcXVhcmVzU3VidHJhY3QgPSBTcXVhcmVzU3VidHJhY3Q7CiAgZXhwb3J0cy5TcXVhcmVzVW5pdGUgPSBTcXVhcmVzVW5pdGU7CiAgZXhwb3J0cy5TcXVpcmNsZSA9IFNxdWlyY2xlOwogIGV4cG9ydHMuU3F1aXJjbGVEYXNoZWQgPSBTcXVpcmNsZURhc2hlZDsKICBleHBvcnRzLlNxdWlycmVsID0gU3F1aXJyZWw7CiAgZXhwb3J0cy5TdGFtcCA9IFN0YW1wOwogIGV4cG9ydHMuU3RhciA9IFN0YXI7CiAgZXhwb3J0cy5TdGFyQ2hlY2sgPSBTdGFyQ2hlY2s7CiAgZXhwb3J0cy5TdGFySGFsZiA9IFN0YXJIYWxmOwogIGV4cG9ydHMuU3Rhck1pbnVzID0gU3Rhck1pbnVzOwogIGV4cG9ydHMuU3Rhck9mZiA9IFN0YXJPZmY7CiAgZXhwb3J0cy5TdGFyUGx1cyA9IFN0YXJQbHVzOwogIGV4cG9ydHMuU3RhclggPSBTdGFyWDsKICBleHBvcnRzLlN0YXJzID0gU3BhcmtsZXM7CiAgZXhwb3J0cy5TdGVwQmFjayA9IFN0ZXBCYWNrOwogIGV4cG9ydHMuU3RlcEZvcndhcmQgPSBTdGVwRm9yd2FyZDsKICBleHBvcnRzLlN0ZXRob3Njb3BlID0gU3RldGhvc2NvcGU7CiAgZXhwb3J0cy5TdGlja2VyID0gU3RpY2tlcjsKICBleHBvcnRzLlN0aWNreU5vdGUgPSBTdGlja3lOb3RlOwogIGV4cG9ydHMuU3RpY2t5Tm90ZUNoZWNrID0gU3RpY2t5Tm90ZUNoZWNrOwogIGV4cG9ydHMuU3RpY2t5Tm90ZU1pbnVzID0gU3RpY2t5Tm90ZU1pbnVzOwogIGV4cG9ydHMuU3RpY2t5Tm90ZU9mZiA9IFN0aWNreU5vdGVPZmY7CiAgZXhwb3J0cy5TdGlja3lOb3RlUGx1cyA9IFN0aWNreU5vdGVQbHVzOwogIGV4cG9ydHMuU3RpY2t5Tm90ZVggPSBTdGlja3lOb3RlWDsKICBleHBvcnRzLlN0aWNreU5vdGVzID0gU3RpY2t5Tm90ZXM7CiAgZXhwb3J0cy5TdG9uZSA9IFN0b25lOwogIGV4cG9ydHMuU3RvcENpcmNsZSA9IENpcmNsZVN0b3A7CiAgZXhwb3J0cy5TdG9yZSA9IFN0b3JlOwogIGV4cG9ydHMuU3RyZXRjaEhvcml6b250YWwgPSBTdHJldGNoSG9yaXpvbnRhbDsKICBleHBvcnRzLlN0cmV0Y2hWZXJ0aWNhbCA9IFN0cmV0Y2hWZXJ0aWNhbDsKICBleHBvcnRzLlN0cmlrZXRocm91Z2ggPSBTdHJpa2V0aHJvdWdoOwogIGV4cG9ydHMuU3Vic2NyaXB0ID0gU3Vic2NyaXB0OwogIGV4cG9ydHMuU3VidGl0bGVzID0gQ2FwdGlvbnM7CiAgZXhwb3J0cy5TdW1tYXJ5ID0gU3VtbWFyeTsKICBleHBvcnRzLlN1biA9IFN1bjsKICBleHBvcnRzLlN1bkRpbSA9IFN1bkRpbTsKICBleHBvcnRzLlN1bk1lZGl1bSA9IFN1bk1lZGl1bTsKICBleHBvcnRzLlN1bk1vb24gPSBTdW5Nb29uOwogIGV4cG9ydHMuU3VuU25vdyA9IFN1blNub3c7CiAgZXhwb3J0cy5TdW5yaXNlID0gU3VucmlzZTsKICBleHBvcnRzLlN1bnNldCA9IFN1bnNldDsKICBleHBvcnRzLlN1cGVyc2NyaXB0ID0gU3VwZXJzY3JpcHQ7CiAgZXhwb3J0cy5Td2F0Y2hCb29rID0gU3dhdGNoQm9vazsKICBleHBvcnRzLlN3aXNzRnJhbmMgPSBTd2lzc0ZyYW5jOwogIGV4cG9ydHMuU3dpdGNoQ2FtZXJhID0gU3dpdGNoQ2FtZXJhOwogIGV4cG9ydHMuU3dvcmQgPSBTd29yZDsKICBleHBvcnRzLlN3b3JkcyA9IFN3b3JkczsKICBleHBvcnRzLlN5cmluZ2UgPSBTeXJpbmdlOwogIGV4cG9ydHMuVGFibGUgPSBUYWJsZTsKICBleHBvcnRzLlRhYmxlMiA9IFRhYmxlMjsKICBleHBvcnRzLlRhYmxlQ2VsbHNNZXJnZSA9IFRhYmxlQ2VsbHNNZXJnZTsKICBleHBvcnRzLlRhYmxlQ2VsbHNTcGxpdCA9IFRhYmxlQ2VsbHNTcGxpdDsKICBleHBvcnRzLlRhYmxlQ29sdW1uc1NwbGl0ID0gVGFibGVDb2x1bW5zU3BsaXQ7CiAgZXhwb3J0cy5UYWJsZUNvbmZpZyA9IENvbHVtbnMzQ29nOwogIGV4cG9ydHMuVGFibGVPZkNvbnRlbnRzID0gVGFibGVPZkNvbnRlbnRzOwogIGV4cG9ydHMuVGFibGVQcm9wZXJ0aWVzID0gVGFibGVQcm9wZXJ0aWVzOwogIGV4cG9ydHMuVGFibGVSb3dzU3BsaXQgPSBUYWJsZVJvd3NTcGxpdDsKICBleHBvcnRzLlRhYmxldCA9IFRhYmxldDsKICBleHBvcnRzLlRhYmxldFNtYXJ0cGhvbmUgPSBUYWJsZXRTbWFydHBob25lOwogIGV4cG9ydHMuVGFibGV0cyA9IFRhYmxldHM7CiAgZXhwb3J0cy5UYWcgPSBUYWc7CiAgZXhwb3J0cy5UYWdQbHVzID0gVGFnUGx1czsKICBleHBvcnRzLlRhZ1ggPSBUYWdYOwogIGV4cG9ydHMuVGFncyA9IFRhZ3M7CiAgZXhwb3J0cy5UYWxseTEgPSBUYWxseTE7CiAgZXhwb3J0cy5UYWxseTIgPSBUYWxseTI7CiAgZXhwb3J0cy5UYWxseTMgPSBUYWxseTM7CiAgZXhwb3J0cy5UYWxseTQgPSBUYWxseTQ7CiAgZXhwb3J0cy5UYWxseTUgPSBUYWxseTU7CiAgZXhwb3J0cy5UYW5nZW50ID0gVGFuZ2VudDsKICBleHBvcnRzLlRhcmdldCA9IFRhcmdldDsKICBleHBvcnRzLlRlbGVzY29wZSA9IFRlbGVzY29wZTsKICBleHBvcnRzLlRlbnQgPSBUZW50OwogIGV4cG9ydHMuVGVudFRyZWUgPSBUZW50VHJlZTsKICBleHBvcnRzLlRlcm1pbmFsID0gVGVybWluYWw7CiAgZXhwb3J0cy5UZXJtaW5hbFNxdWFyZSA9IFNxdWFyZVRlcm1pbmFsOwogIGV4cG9ydHMuVGVzdFR1YmUgPSBUZXN0VHViZTsKICBleHBvcnRzLlRlc3RUdWJlMiA9IFRlc3RUdWJlRGlhZ29uYWw7CiAgZXhwb3J0cy5UZXN0VHViZURpYWdvbmFsID0gVGVzdFR1YmVEaWFnb25hbDsKICBleHBvcnRzLlRlc3RUdWJlcyA9IFRlc3RUdWJlczsKICBleHBvcnRzLlRleHQgPSBUZXh0QWxpZ25TdGFydDsKICBleHBvcnRzLlRleHRBbGlnbkNlbnRlciA9IFRleHRBbGlnbkNlbnRlcjsKICBleHBvcnRzLlRleHRBbGlnbkVuZCA9IFRleHRBbGlnbkVuZDsKICBleHBvcnRzLlRleHRBbGlnbkp1c3RpZnkgPSBUZXh0QWxpZ25KdXN0aWZ5OwogIGV4cG9ydHMuVGV4dEFsaWduU3RhcnQgPSBUZXh0QWxpZ25TdGFydDsKICBleHBvcnRzLlRleHRDdXJzb3IgPSBUZXh0Q3Vyc29yOwogIGV4cG9ydHMuVGV4dEN1cnNvcklucHV0ID0gVGV4dEN1cnNvcklucHV0OwogIGV4cG9ydHMuVGV4dEluaXRpYWwgPSBUZXh0SW5pdGlhbDsKICBleHBvcnRzLlRleHRRdW90ZSA9IFRleHRRdW90ZTsKICBleHBvcnRzLlRleHRTZWFyY2ggPSBUZXh0U2VhcmNoOwogIGV4cG9ydHMuVGV4dFNlbGVjdCA9IFNxdWFyZURhc2hlZFRleHQ7CiAgZXhwb3J0cy5UZXh0U2VsZWN0aW9uID0gU3F1YXJlRGFzaGVkVGV4dDsKICBleHBvcnRzLlRleHRXcmFwID0gVGV4dFdyYXA7CiAgZXhwb3J0cy5UaGVhdGVyID0gVGhlYXRlcjsKICBleHBvcnRzLlRoZXJtb21ldGVyID0gVGhlcm1vbWV0ZXI7CiAgZXhwb3J0cy5UaGVybW9tZXRlclNub3dmbGFrZSA9IFRoZXJtb21ldGVyU25vd2ZsYWtlOwogIGV4cG9ydHMuVGhlcm1vbWV0ZXJTdW4gPSBUaGVybW9tZXRlclN1bjsKICBleHBvcnRzLlRodW1ic0Rvd24gPSBUaHVtYnNEb3duOwogIGV4cG9ydHMuVGh1bWJzVXAgPSBUaHVtYnNVcDsKICBleHBvcnRzLlRpY2tldCA9IFRpY2tldDsKICBleHBvcnRzLlRpY2tldENoZWNrID0gVGlja2V0Q2hlY2s7CiAgZXhwb3J0cy5UaWNrZXRNaW51cyA9IFRpY2tldE1pbnVzOwogIGV4cG9ydHMuVGlja2V0UGVyY2VudCA9IFRpY2tldFBlcmNlbnQ7CiAgZXhwb3J0cy5UaWNrZXRQbHVzID0gVGlja2V0UGx1czsKICBleHBvcnRzLlRpY2tldFNsYXNoID0gVGlja2V0U2xhc2g7CiAgZXhwb3J0cy5UaWNrZXRYID0gVGlja2V0WDsKICBleHBvcnRzLlRpY2tldHMgPSBUaWNrZXRzOwogIGV4cG9ydHMuVGlja2V0c1BsYW5lID0gVGlja2V0c1BsYW5lOwogIGV4cG9ydHMuVGltZWxpbmUgPSBUaW1lbGluZTsKICBleHBvcnRzLlRpbWVyID0gVGltZXI7CiAgZXhwb3J0cy5UaW1lck9mZiA9IFRpbWVyT2ZmOwogIGV4cG9ydHMuVGltZXJSZXNldCA9IFRpbWVyUmVzZXQ7CiAgZXhwb3J0cy5Ub2dnbGVMZWZ0ID0gVG9nZ2xlTGVmdDsKICBleHBvcnRzLlRvZ2dsZVJpZ2h0ID0gVG9nZ2xlUmlnaHQ7CiAgZXhwb3J0cy5Ub2lsZXQgPSBUb2lsZXQ7CiAgZXhwb3J0cy5Ub29sQ2FzZSA9IFRvb2xDYXNlOwogIGV4cG9ydHMuVG9vbGJveCA9IFRvb2xib3g7CiAgZXhwb3J0cy5Ub3JuYWRvID0gVG9ybmFkbzsKICBleHBvcnRzLlRvcnVzID0gVG9ydXM7CiAgZXhwb3J0cy5Ub3VjaHBhZCA9IFRvdWNocGFkOwogIGV4cG9ydHMuVG91Y2hwYWRPZmYgPSBUb3VjaHBhZE9mZjsKICBleHBvcnRzLlRvd2VsUmFjayA9IFRvd2VsUmFjazsKICBleHBvcnRzLlRvd2VyQ29udHJvbCA9IFRvd2VyQ29udHJvbDsKICBleHBvcnRzLlRveUJyaWNrID0gVG95QnJpY2s7CiAgZXhwb3J0cy5UcmFjdG9yID0gVHJhY3RvcjsKICBleHBvcnRzLlRyYWZmaWNDb25lID0gVHJhZmZpY0NvbmU7CiAgZXhwb3J0cy5UcmFpbiA9IFRyYW1Gcm9udDsKICBleHBvcnRzLlRyYWluRnJvbnQgPSBUcmFpbkZyb250OwogIGV4cG9ydHMuVHJhaW5Gcm9udFR1bm5lbCA9IFRyYWluRnJvbnRUdW5uZWw7CiAgZXhwb3J0cy5UcmFpblRyYWNrID0gVHJhaW5UcmFjazsKICBleHBvcnRzLlRyYW1Gcm9udCA9IFRyYW1Gcm9udDsKICBleHBvcnRzLlRyYW5zZ2VuZGVyID0gVHJhbnNnZW5kZXI7CiAgZXhwb3J0cy5UcmFzaCA9IFRyYXNoOwogIGV4cG9ydHMuVHJhc2gyID0gVHJhc2gyOwogIGV4cG9ydHMuVHJlZURlY2lkdW91cyA9IFRyZWVEZWNpZHVvdXM7CiAgZXhwb3J0cy5UcmVlUGFsbSA9IFRyZWVQYWxtOwogIGV4cG9ydHMuVHJlZVBpbmUgPSBUcmVlUGluZTsKICBleHBvcnRzLlRyZWVzID0gVHJlZXM7CiAgZXhwb3J0cy5UcmVuZGluZ0Rvd24gPSBUcmVuZGluZ0Rvd247CiAgZXhwb3J0cy5UcmVuZGluZ1VwID0gVHJlbmRpbmdVcDsKICBleHBvcnRzLlRyZW5kaW5nVXBEb3duID0gVHJlbmRpbmdVcERvd247CiAgZXhwb3J0cy5UcmlhbmdsZSA9IFRyaWFuZ2xlOwogIGV4cG9ydHMuVHJpYW5nbGVBbGVydCA9IFRyaWFuZ2xlQWxlcnQ7CiAgZXhwb3J0cy5UcmlhbmdsZURhc2hlZCA9IFRyaWFuZ2xlRGFzaGVkOwogIGV4cG9ydHMuVHJpYW5nbGVSaWdodCA9IFRyaWFuZ2xlUmlnaHQ7CiAgZXhwb3J0cy5Ucm9waHkgPSBUcm9waHk7CiAgZXhwb3J0cy5UcnVjayA9IFRydWNrOwogIGV4cG9ydHMuVHJ1Y2tFbGVjdHJpYyA9IFRydWNrRWxlY3RyaWM7CiAgZXhwb3J0cy5UdXJraXNoTGlyYSA9IFR1cmtpc2hMaXJhOwogIGV4cG9ydHMuVHVybnRhYmxlID0gVHVybnRhYmxlOwogIGV4cG9ydHMuVHVydGxlID0gVHVydGxlOwogIGV4cG9ydHMuVHYgPSBUdjsKICBleHBvcnRzLlR2MiA9IFR2TWluaW1hbDsKICBleHBvcnRzLlR2TWluaW1hbCA9IFR2TWluaW1hbDsKICBleHBvcnRzLlR2TWluaW1hbFBsYXkgPSBUdk1pbmltYWxQbGF5OwogIGV4cG9ydHMuVHlwZSA9IFR5cGU7CiAgZXhwb3J0cy5UeXBlT3V0bGluZSA9IFR5cGVPdXRsaW5lOwogIGV4cG9ydHMuVW1icmVsbGEgPSBVbWJyZWxsYTsKICBleHBvcnRzLlVtYnJlbGxhT2ZmID0gVW1icmVsbGFPZmY7CiAgZXhwb3J0cy5VbmRlcmxpbmUgPSBVbmRlcmxpbmU7CiAgZXhwb3J0cy5VbmRvID0gVW5kbzsKICBleHBvcnRzLlVuZG8yID0gVW5kbzI7CiAgZXhwb3J0cy5VbmRvRG90ID0gVW5kb0RvdDsKICBleHBvcnRzLlVuZm9sZEhvcml6b250YWwgPSBVbmZvbGRIb3Jpem9udGFsOwogIGV4cG9ydHMuVW5mb2xkVmVydGljYWwgPSBVbmZvbGRWZXJ0aWNhbDsKICBleHBvcnRzLlVuZ3JvdXAgPSBVbmdyb3VwOwogIGV4cG9ydHMuVW5pdmVyc2l0eSA9IFVuaXZlcnNpdHk7CiAgZXhwb3J0cy5VbmxpbmsgPSBVbmxpbms7CiAgZXhwb3J0cy5VbmxpbmsyID0gVW5saW5rMjsKICBleHBvcnRzLlVubG9jayA9IExvY2tPcGVuOwogIGV4cG9ydHMuVW5sb2NrS2V5aG9sZSA9IExvY2tLZXlob2xlT3BlbjsKICBleHBvcnRzLlVucGx1ZyA9IFVucGx1ZzsKICBleHBvcnRzLlVwbG9hZCA9IFVwbG9hZDsKICBleHBvcnRzLlVwbG9hZENsb3VkID0gQ2xvdWRVcGxvYWQ7CiAgZXhwb3J0cy5Vc2IgPSBVc2I7CiAgZXhwb3J0cy5Vc2VyID0gVXNlcjsKICBleHBvcnRzLlVzZXIyID0gVXNlclJvdW5kOwogIGV4cG9ydHMuVXNlckNoZWNrID0gVXNlckNoZWNrOwogIGV4cG9ydHMuVXNlckNoZWNrMiA9IFVzZXJSb3VuZENoZWNrOwogIGV4cG9ydHMuVXNlckNpcmNsZSA9IENpcmNsZVVzZXI7CiAgZXhwb3J0cy5Vc2VyQ2lyY2xlMiA9IENpcmNsZVVzZXJSb3VuZDsKICBleHBvcnRzLlVzZXJDb2cgPSBVc2VyQ29nOwogIGV4cG9ydHMuVXNlckNvZzIgPSBVc2VyUm91bmRDb2c7CiAgZXhwb3J0cy5Vc2VyS2V5ID0gVXNlcktleTsKICBleHBvcnRzLlVzZXJMb2NrID0gVXNlckxvY2s7CiAgZXhwb3J0cy5Vc2VyTWludXMgPSBVc2VyTWludXM7CiAgZXhwb3J0cy5Vc2VyTWludXMyID0gVXNlclJvdW5kTWludXM7CiAgZXhwb3J0cy5Vc2VyUGVuID0gVXNlclBlbjsKICBleHBvcnRzLlVzZXJQbHVzID0gVXNlclBsdXM7CiAgZXhwb3J0cy5Vc2VyUGx1czIgPSBVc2VyUm91bmRQbHVzOwogIGV4cG9ydHMuVXNlclJvdW5kID0gVXNlclJvdW5kOwogIGV4cG9ydHMuVXNlclJvdW5kQXJyb3dMZWZ0ID0gVXNlclJvdW5kQXJyb3dMZWZ0OwogIGV4cG9ydHMuVXNlclJvdW5kQ2hlY2sgPSBVc2VyUm91bmRDaGVjazsKICBleHBvcnRzLlVzZXJSb3VuZENvZyA9IFVzZXJSb3VuZENvZzsKICBleHBvcnRzLlVzZXJSb3VuZEtleSA9IFVzZXJSb3VuZEtleTsKICBleHBvcnRzLlVzZXJSb3VuZE1pbnVzID0gVXNlclJvdW5kTWludXM7CiAgZXhwb3J0cy5Vc2VyUm91bmRQZW4gPSBVc2VyUm91bmRQZW47CiAgZXhwb3J0cy5Vc2VyUm91bmRQbHVzID0gVXNlclJvdW5kUGx1czsKICBleHBvcnRzLlVzZXJSb3VuZFNlYXJjaCA9IFVzZXJSb3VuZFNlYXJjaDsKICBleHBvcnRzLlVzZXJSb3VuZFggPSBVc2VyUm91bmRYOwogIGV4cG9ydHMuVXNlclNlYXJjaCA9IFVzZXJTZWFyY2g7CiAgZXhwb3J0cy5Vc2VyU2hpZWxkID0gVXNlclNoaWVsZDsKICBleHBvcnRzLlVzZXJTcXVhcmUgPSBTcXVhcmVVc2VyOwogIGV4cG9ydHMuVXNlclNxdWFyZTIgPSBTcXVhcmVVc2VyUm91bmQ7CiAgZXhwb3J0cy5Vc2VyU3RhciA9IFVzZXJTdGFyOwogIGV4cG9ydHMuVXNlclggPSBVc2VyWDsKICBleHBvcnRzLlVzZXJYMiA9IFVzZXJSb3VuZFg7CiAgZXhwb3J0cy5Vc2VycyA9IFVzZXJzOwogIGV4cG9ydHMuVXNlcnMyID0gVXNlcnNSb3VuZDsKICBleHBvcnRzLlVzZXJzUm91bmQgPSBVc2Vyc1JvdW5kOwogIGV4cG9ydHMuVXRlbnNpbHMgPSBVdGVuc2lsczsKICBleHBvcnRzLlV0ZW5zaWxzQ3Jvc3NlZCA9IFV0ZW5zaWxzQ3Jvc3NlZDsKICBleHBvcnRzLlV0aWxpdHlQb2xlID0gVXRpbGl0eVBvbGU7CiAgZXhwb3J0cy5WYW4gPSBWYW47CiAgZXhwb3J0cy5WYXJpYWJsZSA9IFZhcmlhYmxlOwogIGV4cG9ydHMuVmF1bHQgPSBWYXVsdDsKICBleHBvcnRzLlZlY3RvclNxdWFyZSA9IFZlY3RvclNxdWFyZTsKICBleHBvcnRzLlZlZ2FuID0gVmVnYW47CiAgZXhwb3J0cy5WZW5ldGlhbk1hc2sgPSBWZW5ldGlhbk1hc2s7CiAgZXhwb3J0cy5WZW51cyA9IFZlbnVzOwogIGV4cG9ydHMuVmVudXNBbmRNYXJzID0gVmVudXNBbmRNYXJzOwogIGV4cG9ydHMuVmVyaWZpZWQgPSBCYWRnZUNoZWNrOwogIGV4cG9ydHMuVmlicmF0ZSA9IFZpYnJhdGU7CiAgZXhwb3J0cy5WaWJyYXRlT2ZmID0gVmlicmF0ZU9mZjsKICBleHBvcnRzLlZpZGVvID0gVmlkZW87CiAgZXhwb3J0cy5WaWRlb09mZiA9IFZpZGVvT2ZmOwogIGV4cG9ydHMuVmlkZW90YXBlID0gVmlkZW90YXBlOwogIGV4cG9ydHMuVmlldyA9IFZpZXc7CiAgZXhwb3J0cy5Wb2ljZW1haWwgPSBWb2ljZW1haWw7CiAgZXhwb3J0cy5Wb2xsZXliYWxsID0gVm9sbGV5YmFsbDsKICBleHBvcnRzLlZvbHVtZSA9IFZvbHVtZTsKICBleHBvcnRzLlZvbHVtZTEgPSBWb2x1bWUxOwogIGV4cG9ydHMuVm9sdW1lMiA9IFZvbHVtZTI7CiAgZXhwb3J0cy5Wb2x1bWVPZmYgPSBWb2x1bWVPZmY7CiAgZXhwb3J0cy5Wb2x1bWVYID0gVm9sdW1lWDsKICBleHBvcnRzLlZvdGUgPSBWb3RlOwogIGV4cG9ydHMuV2FsbGV0ID0gV2FsbGV0OwogIGV4cG9ydHMuV2FsbGV0MiA9IFdhbGxldE1pbmltYWw7CiAgZXhwb3J0cy5XYWxsZXRDYXJkcyA9IFdhbGxldENhcmRzOwogIGV4cG9ydHMuV2FsbGV0TWluaW1hbCA9IFdhbGxldE1pbmltYWw7CiAgZXhwb3J0cy5XYWxscGFwZXIgPSBXYWxscGFwZXI7CiAgZXhwb3J0cy5XYW5kID0gV2FuZDsKICBleHBvcnRzLldhbmQyID0gV2FuZFNwYXJrbGVzOwogIGV4cG9ydHMuV2FuZFNwYXJrbGVzID0gV2FuZFNwYXJrbGVzOwogIGV4cG9ydHMuV2FyZWhvdXNlID0gV2FyZWhvdXNlOwogIGV4cG9ydHMuV2FzaGluZ01hY2hpbmUgPSBXYXNoaW5nTWFjaGluZTsKICBleHBvcnRzLldhdGNoID0gV2F0Y2g7CiAgZXhwb3J0cy5XYXZlcyA9IFdhdmVzSG9yaXpvbnRhbDsKICBleHBvcnRzLldhdmVzQXJyb3dEb3duID0gV2F2ZXNBcnJvd0Rvd247CiAgZXhwb3J0cy5XYXZlc0Fycm93VXAgPSBXYXZlc0Fycm93VXA7CiAgZXhwb3J0cy5XYXZlc0hvcml6b250YWwgPSBXYXZlc0hvcml6b250YWw7CiAgZXhwb3J0cy5XYXZlc0xhZGRlciA9IFdhdmVzTGFkZGVyOwogIGV4cG9ydHMuV2F2ZXNWZXJ0aWNhbCA9IFdhdmVzVmVydGljYWw7CiAgZXhwb3J0cy5XYXlwb2ludHMgPSBXYXlwb2ludHM7CiAgZXhwb3J0cy5XZWJjYW0gPSBXZWJjYW07CiAgZXhwb3J0cy5XZWJjYW1PZmYgPSBXZWJjYW1PZmY7CiAgZXhwb3J0cy5XZWJob29rID0gV2ViaG9vazsKICBleHBvcnRzLldlYmhvb2tPZmYgPSBXZWJob29rT2ZmOwogIGV4cG9ydHMuV2VpZ2h0ID0gV2VpZ2h0OwogIGV4cG9ydHMuV2VpZ2h0VGlsZGUgPSBXZWlnaHRUaWxkZTsKICBleHBvcnRzLldoZWF0ID0gV2hlYXQ7CiAgZXhwb3J0cy5XaGVhdE9mZiA9IFdoZWF0T2ZmOwogIGV4cG9ydHMuV2hvbGVXb3JkID0gV2hvbGVXb3JkOwogIGV4cG9ydHMuV2lmaSA9IFdpZmk7CiAgZXhwb3J0cy5XaWZpQ29nID0gV2lmaUNvZzsKICBleHBvcnRzLldpZmlIaWdoID0gV2lmaUhpZ2g7CiAgZXhwb3J0cy5XaWZpTG93ID0gV2lmaUxvdzsKICBleHBvcnRzLldpZmlPZmYgPSBXaWZpT2ZmOwogIGV4cG9ydHMuV2lmaVBlbiA9IFdpZmlQZW47CiAgZXhwb3J0cy5XaWZpU3luYyA9IFdpZmlTeW5jOwogIGV4cG9ydHMuV2lmaVplcm8gPSBXaWZpWmVybzsKICBleHBvcnRzLldpbmQgPSBXaW5kOwogIGV4cG9ydHMuV2luZEFycm93RG93biA9IFdpbmRBcnJvd0Rvd247CiAgZXhwb3J0cy5XaW5lID0gV2luZTsKICBleHBvcnRzLldpbmVPZmYgPSBXaW5lT2ZmOwogIGV4cG9ydHMuV29ya2Zsb3cgPSBXb3JrZmxvdzsKICBleHBvcnRzLldvcm0gPSBXb3JtOwogIGV4cG9ydHMuV3JhcFRleHQgPSBUZXh0V3JhcDsKICBleHBvcnRzLldyZW5jaCA9IFdyZW5jaDsKICBleHBvcnRzLldyZW5jaE9mZiA9IFdyZW5jaE9mZjsKICBleHBvcnRzLlggPSBYOwogIGV4cG9ydHMuWENpcmNsZSA9IENpcmNsZVg7CiAgZXhwb3J0cy5YTGluZVRvcCA9IFhMaW5lVG9wOwogIGV4cG9ydHMuWE9jdGFnb24gPSBPY3RhZ29uWDsKICBleHBvcnRzLlhTcXVhcmUgPSBTcXVhcmVYOwogIGV4cG9ydHMuWmFwID0gWmFwOwogIGV4cG9ydHMuWmFwT2ZmID0gWmFwT2ZmOwogIGV4cG9ydHMuWm9kaWFjQXF1YXJpdXMgPSBab2RpYWNBcXVhcml1czsKICBleHBvcnRzLlpvZGlhY0FyaWVzID0gWm9kaWFjQXJpZXM7CiAgZXhwb3J0cy5ab2RpYWNDYW5jZXIgPSBab2RpYWNDYW5jZXI7CiAgZXhwb3J0cy5ab2RpYWNDYXByaWNvcm4gPSBab2RpYWNDYXByaWNvcm47CiAgZXhwb3J0cy5ab2RpYWNHZW1pbmkgPSBab2RpYWNHZW1pbmk7CiAgZXhwb3J0cy5ab2RpYWNMZW8gPSBab2RpYWNMZW87CiAgZXhwb3J0cy5ab2RpYWNMaWJyYSA9IFpvZGlhY0xpYnJhOwogIGV4cG9ydHMuWm9kaWFjT3BoaXVjaHVzID0gWm9kaWFjT3BoaXVjaHVzOwogIGV4cG9ydHMuWm9kaWFjUGlzY2VzID0gWm9kaWFjUGlzY2VzOwogIGV4cG9ydHMuWm9kaWFjU2FnaXR0YXJpdXMgPSBab2RpYWNTYWdpdHRhcml1czsKICBleHBvcnRzLlpvZGlhY1Njb3JwaW8gPSBab2RpYWNTY29ycGlvOwogIGV4cG9ydHMuWm9kaWFjVGF1cnVzID0gWm9kaWFjVGF1cnVzOwogIGV4cG9ydHMuWm9kaWFjVmlyZ28gPSBab2RpYWNWaXJnbzsKICBleHBvcnRzLlpvb21JbiA9IFpvb21JbjsKICBleHBvcnRzLlpvb21PdXQgPSBab29tT3V0OwogIGV4cG9ydHMuY3JlYXRlRWxlbWVudCA9IGNyZWF0ZUVsZW1lbnQ7CiAgZXhwb3J0cy5jcmVhdGVJY29ucyA9IGNyZWF0ZUljb25zOwogIGV4cG9ydHMuaWNvbnMgPSBpY29uQW5kQWxpYXNlczsKCn0pKTsKLy8jIHNvdXJjZU1hcHBpbmdVUkw9bHVjaWRlLmpzLm1hcAo="}},"time_used":78,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":74,"receive":4,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/78652.4b4e097a303d21bc9781.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:13.951Z","timestamp":1785148033951,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/78652.4b4e097a303d21bc9781.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:13 GMT\r\ncontent-type: text/css; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a58ab11-93\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Thu, 16 Jul 2026 09:57:37 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/16/2026 11:03:21\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: dce27586bc7abd63a816c078b9f4ec7e\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":147,"size_decoded":898,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with no line terminators","md5":"d495be7c67520b3518ab3adbf5c62805","sha1":"194c04504f3be1bcc65c2c60fcc6b7feedafce35","sha256":"bbc2d1c9270827bfab04417c239e5264a20fc0f30e4ec1791d3810b7957b2a82","sha512":"7d9bc066af26016a6d8c93fddc2cce36252806a2fcc37fcd6908ef2a7ab5fa58453186cbb259e40244eebfde37ac1e6e7e018bca8969700d643a830a0d8f8a6e","ssdeep":"","tlshash":"b3c08cf80653324eb96554a04eb20a22a523c966e687400f008a624f0acd68206f4ba5","first_seen":"2026-07-17T14:15:58.462713Z","last_seen":"2026-07-27T12:51:16.056261Z","times_seen":155,"resource_available":false,"data":"LndyYXBwZXItVHk1TzFXSlF7YWxpZ24taXRlbXM6Y2VudGVyO2Rpc3BsYXk6ZmxleDtoZWlnaHQ6MjhweDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3dpZHRoOjI4cHh9LmRpck1hdGNoaW5nLVR5NU8xV0pROmRpcihydGwpe3RyYW5zZm9ybTpzY2FsZSgtMSl9"}},"time_used":3,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":3,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.gstatic.com/images/branding/googlelogo/1x/googlelogo_color_68x28dp.png","fqdn":"www.gstatic.com","domain":"gstatic.com","tld":"com"},"ip":{"addr":"142.250.178.67","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://digital-assettrade.com/","date":"2026-07-27T10:27:13.962Z","timestamp":1785148033962,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.gstatic.com","organization":""},"issuer":{"commonName":"WE2","organization":"Google Trust Services"},"validity":{"start":"Mon, 29 Jun 2026 08:39:25 GMT","end":"Mon, 21 Sep 2026 08:39:24 GMT"},"fingerprint":{"sha1":"4E:F2:73:C6:27:16:58:35:FE:55:D5:30:6B:E8:6D:2B:DA:B0:E8:7B","sha256":"82:EF:6A:61:96:A5:23:D6:2C:2C:9D:77:67:04:D8:7B:3B:6A:50:DA:3C:6C:6A:5F:4E:2D:55:F3:FC:DA:0B:EE"}}},"request":{"raw":"GET /images/branding/googlelogo/1x/googlelogo_color_68x28dp.png HTTP/1.1\r\nHost: www.gstatic.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-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://digital-assettrade.com/\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=6, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccept-ranges: bytes\r\ncross-origin-resource-policy: cross-origin\r\ncross-origin-opener-policy-report-only: same-origin; report-to=\"static-on-bigtable\"\r\nreport-to: {\"group\":\"static-on-bigtable\",\"max_age\":2592000,\"endpoints\":[{\"url\":\"https://csp.withgoogle.com/csp/report-to/static-on-bigtable\"}]}\r\ncontent-length: 1597\r\nx-content-type-options: nosniff\r\nserver: sffe\r\nx-xss-protection: 0\r\ndate: Wed, 22 Jul 2026 13:10:18 GMT\r\nexpires: Thu, 22 Jul 2027 13:10:18 GMT\r\ncache-control: public, max-age=31536000\r\nlast-modified: Fri, 30 Jun 2023 18:58:00 GMT\r\ncontent-type: image/png\r\nvary: Origin\r\nage: 422216\r\nalt-svc: h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":null,"data":{"size":1597,"size_decoded":2271,"mime_type":"image/png","magic":"PNG image data, 68 x 28, 8-bit/color RGBA, non-interlaced","md5":"c4a931d597decd2553aac6634b766cf2","sha1":"6ec84fb4a2745b4b71520241be77db1fd1013830","sha256":"f56402b127698db4b4dc611a97a6f081d04c4691c60522c5912d189e37c94a9e","sha512":"4932e0f7f38085a7c52539bdd5c7f470740e560a4471bea30d12ef9e3efe77f6bbfac28d26c62a245c43d98ebf74c824b2b414843080a27edf1563a5f874ac84","ssdeep":"","tlshash":"7c310afff39e8cec419e764069ba5965a362cd68233e928f14499592e4d007710f5f41","first_seen":"2023-04-05T08:27:37Z","last_seen":"2026-07-27T13:00:41.421693Z","times_seen":18059,"resource_available":false,"data":"iVBORw0KGgoAAAANSUhEUgAAAEQAAAAcCAYAAADYzhkoAAAGBElEQVRYw+1ZXWwUVRQe2N22ViP136gvigZSocTOzLrEynZmdhtiihqkaqw/LzxA1MQHIcRGV9idthIRIdbSWNGHQtYGEkOMYre1CRpLG3nAP9CW1GCg+5d2OzPL1i7d67kzd3Znt9Pd1Sam0t5kMum9Z+ee+91zzvfdW4paasU3pyd0Ay/Kd2w8kCpdtCDwolRZK8rtnChd5EUFqY9XStV6lbOcqOza6IneuNDXwPi3PMv4N7fS/i0vziMakJUT5dZaUZpJA2H6SJcFr1y7kAGhj27uYvxPIQDl838NBu9TjhsWPsI1K68LzVfWc3vkByFt3JxPeR/Aimvjcsc1DQjnk8U0GD7lw7lqhtubuBfGPR4PWn7NAsJ5YytrvdJVAshRCqFl//c6OC9AIPz3ktqQcHvk2+frDPJQyyN19Oowx26IcMwqRFHLCtlPnSxZPd1n3TDVV7IKofz2Dd3IAj5XubxSTZ0ndvM/BQTRtC0sMA+FefujY+71s9eL2YOkyvH5ghER2MawQI+GBRalH469AA48Y2Z/NWBrnA5YRpO9NpR5LBeg39Qeinkj75P+NLDfNO+TW2ANv8AThbr32FyA4I0JCeyr4FNE9y0osKkQR3dNONdVGACRFTLBW6YR5JNf4XzSp+aP8oFuF+bZpgwQdAImO4/fel+It+80fne619qkg/BXjy2R7LGcV9+kD8Z3Ztc5ZYcBiCsAwG8qIFkMGH9yLkAADNEAxARs1I9BgU6SvtO/b7y/VNcdCfLBN8xTSjk2FwVjilYjg3uYxmirCwfEx130CtyPkQ9xrF91gmNngkL1WhWMb2w0LD5FFt6FApRqj/qpCvjbr4LUa5sBm7UkravScsCrHNG1kHOvcidoo28LARLi7OvSYPDMAX3xIa56ZZijo6rfLnaXtmCvMow/BhrkE9OiK0rbgYU6sx5R6dd3iqB/iEw4jHPU+Hs8eTqNeOYg7kv22A6pkRCwDKMfqCz71JdUqSGNDpJNadPlAN2Bsuxd78Tvgk1N5geE2af5x5zFNWvU6SyDvhfAnwFD1JzRKbeTTBZx7EtdVxQzifLbZLd+UtMFQk5H38weHGnXJmVOqYAEbKfJgk3tYbxdHe+xnSIRMkB8NLWv9UlD+QCB+b/WNoQ9BiC0GOsIRHB/2MU+jRoqSzRR5os7DBrEUwiMBg8q0aMK7N8jETKoflxg95sCwrNtxKHvSIQMahFiM7WHsTYyrtrDUWJQS1Fl/xxMOVAUIHo0cPQkjtYob680p16v8pl+ZhGalZfyKlpR/lh1DrSLa8/kAxogTKcWIew51NBgmU1z7AgBpE0DxNJJGOUc6qay7SGFYHyERFAbiciPtLRWfsW0a7SvEaXbwJepvCkjMO+mI0Jgt4+5q6430r5e8wwLnaiAD/5sKJjdUMQewQDg8XoPKgeg6vWdItHRpP8+6LI7MmzCdlx0ONTUu1RPl0PfYZ3iwnx1tVpUe6wOA812pL6nVHt0giqHunKYME8KCmu1xnRxe6aQy+3gV5nuN7DdV4WK6pibWZMu+lDv9PRQ6xtECmzkZRirzwFFuhU+2pdzkEsCvcVy2QV2zJeraElukpBkY5CbQ/ht2JndOWnRkqbdXlsM3kPkjUi67M5Ji+YM7SrjuG4YJENB2gUf3sxoIzqK0xxq2njGP2bHrJTAZxQsfiA6zsyiWUgnDBiMOU0VJwgfQHpbmGNCWcJMoIOQKltzFStWpECx2wCEkFGYQWQEoW/rLMUKGwCgvIzBMPqEtRBsWlCNHl/8iXzCDPuh+pNVT9hLQAbPFz4BA8eDAxzXHH8cy+SalthNRUl3qBlRnrZHeGZTRGBY5HRa89pDzQBg7Mnekk3TASsLWsRa4GRehv3BqhRS6W4VKK8iYUCKuZbA/mG/sH/Yz0L+Lcjmah1fAYr5NagfJ3JP4rjWZQhh8pZFcYsntCTu05kEF1GnKK/BahWipA7q3B/kjuaLRXW1CYX8OcM1Rc4RQglh0BbdfS++wYOIOKlHCz7hYl3kbI3fs6j/G4DZsNhjxlJbakttqf2X7W8TpV8yKnnUNAAAAABJRU5ErkJggg=="}},"time_used":16,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":16,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/en.9555.6e45c7f028d4554ca725.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.119Z","timestamp":1785148034119,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/en.9555.6e45c7f028d4554ca725.js HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a35094d-448\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Fri, 19 Jun 2026 09:18:05 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.57\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 06/19/2026 10:48:25\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: e27c4202d099d61ea64c64c60bc07d86\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":1096,"size_decoded":1254,"mime_type":"application/javascript; charset=utf-8","magic":"ASCII text, with very long lines (1096), with no line terminators","md5":"ebd79794f2b11ae229d72cb9c96ce6dd","sha1":"6fd910fa6d1a296c0a33f92bcd552c6bce09ee44","sha256":"98b98da7ea3183375b0fe349338207c5a08005703b9307de30bee72dfbbbe5ec","sha512":"612f8dd61e59f34d177369b82fc87118448b03a4c263c6fd4fbbfe7b3fff2678058a00d36d22f93954791f1f5aa018779d41676c9e531742c6c850b60264b65e","ssdeep":"","tlshash":"c111d027c100e1e92fb6de26b305dec0b4f5b14422f2e4c673968fbad213d6595386b2","first_seen":"2026-06-07T10:37:53.395043Z","last_seen":"2026-07-27T10:54:11.657717Z","times_seen":42,"resource_available":true,"data":"KHNlbGYud2VicGFja0NodW5rdHJhZGluZ3ZpZXc9c2VsZi53ZWJwYWNrQ2h1bmt0cmFkaW5ndmlld3x8W10pLnB1c2goW1s5NTU1LDI3ODIwXSx7Mjg5NzI5KGUpe2UuZXhwb3J0cz1bIkRhdGEgd2luZG93Il19LDY5NjkxMihlKXtlLmV4cG9ydHM9WyJTaG93IG9iamVjdCB0cmVlIl19LDEyNzgyMChlKXtlLmV4cG9ydHM9WyJDbG9zZSJdfSw4NjQ4NjkoZSl7ZS5leHBvcnRzPVsiTWFrZSBjb3B5Il19LDI0MDk3KGUpe2UuZXhwb3J0cz1bIk1ha2UgY29weSBvZiB3YXRjaGxpc3QiXX0sNDY2NjEyKGUpe2UuZXhwb3J0cz1bIkNhbGVuZGFyIl19LDk5ODc2NShlKXtlLmV4cG9ydHM9WyJDaGF0cyJdfSwyNDU4NzAoZSl7ZS5leHBvcnRzPVsiQWxlcnRzIl19LDQ0MzQ0NyhlKXtlLmV4cG9ydHM9WyJEZXRhaWxzIl19LDQ2ODcxMChlKXtlLmV4cG9ydHM9WyJIb3RsaXN0Il19LDEzOTA0MyhlKXtlLmV4cG9ydHM9WyJIZWFkbGluZXMiXX0sMTA3OTM1KGUpe2UuZXhwb3J0cz1bIkhpZGUgVGFiIl19LDMzNjQ4OShlKXtlLmV4cG9ydHM9WyJPYmplY3QgdHJlZSBhbmQgZGF0YSB3aW5kb3ciXX0sNTEyMjQ5KGUpe2UuZXhwb3J0cz1bIk9wZW4gVGFiIl19LDcxOTAwKGUpe2UuZXhwb3J0cz1bIk1hcmtldCBTdW1tYXJ5Il19LDE5OTMxMShlKXtlLmV4cG9ydHM9WyJOZXdzIl19LDk1MzQxMChlKXtlLmV4cG9ydHM9WyJQaW5lIGxvZ3MiXX0sMzcyMDY5KGUpe2UuZXhwb3J0cz1bIldhdGNobGlzdCBhbmQgZGV0YWlscyJdfSwyMDM1MDAoZSl7ZS5leHBvcnRzPVsiV2F0Y2hsaXN0IGFuZCBkZXRhaWxzIGFuZCBuZXdzIl19LDYxNDUzNyhlKXtlLmV4cG9ydHM9WyJXYXRjaGxpc3QgYW5kIG5ld3MiXX0sMzY4ODc0KGUpe2UuZXhwb3J0cz1bIldhdGNobGlzdCwgZGV0YWlscywgYW5kIG5ld3MiXX0sNTkyNzYoZSl7ZS5leHBvcnRzPVsiV2lkZ2V0Il19LDYxNDQ1MChlKXtlLmV4cG9ydHM9WyJUb2RheSJdfSw5NjU1NzMoZSl7ZS5leHBvcnRzPVsiWWVzdGVyZGF5Il19LDQ1ODI0NihlKXtlLmV4cG9ydHM9WyJ7Y291bnR9IHVucmVhZCBhbGVydCBub3RpZmljYXRpb24iLCJ7Y291bnR9IHVucmVhZCBhbGVydCBub3RpZmljYXRpb25zIl19fV0pOw=="}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/27517.7361374dee2b52fd1f8e.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.504Z","timestamp":1785148034504,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/27517.7361374dee2b52fd1f8e.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\ncontent-type: text/css; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a3cc6da-496\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Thu, 25 Jun 2026 06:12:42 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.57\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 06/25/2026 11:16:17\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: ee68933e42b95b6511b2be740a43ba29\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":1174,"size_decoded":1238,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with very long lines (1174), with no line terminators","md5":"0db50e194dea28f8430d5f045aa5bec9","sha1":"fad46e87214254999bcbc7feac303252f511f6f7","sha256":"f60a0b3330cc7599cd9e24065061be14fc7860c07e44078e58082431645ada61","sha512":"94febefd36fb157774b943a3102bae29f6c2521bf6d47bc1f5d985308e6908abde3260e3ab3e5f12e2531cca908f670c44e2df3336e393f4acc4efc591d40b58","ssdeep":"","tlshash":"aa21df31c5a4003a9defa0218fa09b1d421cbca6ed82199cd2bc6b6550ce37732edd98","first_seen":"2026-06-27T04:33:20.000295Z","last_seen":"2026-07-27T12:51:16.035474Z","times_seen":210,"resource_available":false,"data":"W2RhdGEtdGhlbWU9bGlnaHRdey0tXzAtU2hNWTp2YXIoLS1jb2xvci1jb2xkLWdyYXktMjAwKX1bZGF0YS10aGVtZT1kYXJrXXstLV8wLVNoTVk6dmFyKC0tY29sb3ItY29sZC1ncmF5LTY1MCl9LndyYXAtdlNiNkMwQmp7Ym90dG9tOjA7Y3Vyc29yOmRlZmF1bHQ7aW5zZXQtaW5saW5lLWVuZDowO3BvaW50ZXItZXZlbnRzOmFsbDtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDt2aXNpYmlsaXR5OnZhcigtLW92ZXJsYXktc2Nyb2xsYmFyLXYtdmlzaWJpbGl0eSx2YXIoLS1vdmVybGF5LXNjcm9sbGJhci12aXNpYmlsaXR5LHZpc2libGUpKTt3aWR0aDo4cHg7d2lsbC1jaGFuZ2U6aGVpZ2h0fS53cmFwLS1ob3Jpem9udGFsLXZTYjZDMEJqe2hlaWdodDo4cHg7aW5zZXQtaW5saW5lLWVuZDowO2luc2V0LWlubGluZS1zdGFydDowO3RvcDphdXRvO3Zpc2liaWxpdHk6dmFyKC0tb3ZlcmxheS1zY3JvbGxiYXItaC12aXNpYmlsaXR5LHZhcigtLW92ZXJsYXktc2Nyb2xsYmFyLXZpc2liaWxpdHksdmlzaWJsZSkpO3dpbGwtY2hhbmdlOndpZHRofS5iYXItdlNiNkMwQmp7YWxpZ24taXRlbXM6Y2VudGVyO2Rpc3BsYXk6ZmxleDtpbnNldC1pbmxpbmUtc3RhcnQ6MDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO3dpZHRoOjEwMCU7d2lsbC1jaGFuZ2U6aGVpZ2h0LHRyYW5zZm9ybX0uYmFyLXZTYjZDMEJqIC5iYXJJbm5lci12U2I2QzBCantiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLV8wLVNoTVkpO2JvcmRlci1yYWRpdXM6MnB4O2hlaWdodDpjYWxjKDEwMCUgLSA0cHgpO3dpZHRoOjRweH0uYmFyLXZTYjZDMEJqIC5iYXJJbm5lci0taG9yaXpvbnRhbC12U2I2QzBCantoZWlnaHQ6NHB4O3dpZHRoOmNhbGMoMTAwJSAtIDRweCl9LmJhci0taG9yaXpvbnRhbC12U2I2QzBCantoZWlnaHQ6MTAwJTtpbnNldC1pbmxpbmUtc3RhcnQ6MDt0b3A6MDt3aWR0aDphdXRvO3dpbGwtY2hhbmdlOndpZHRoLHRyYW5zZm9ybX0uc2Nyb2xsV3JhcC1GYU92VEQycnstLW92ZXJsYXktc2Nyb2xsYmFyLXZpc2liaWxpdHk6aGlkZGVuO3BvaW50ZXItZXZlbnRzOm5vbmU7cG9zaXRpb246YWJzb2x1dGU7d2lsbC1jaGFuZ2U6dmlzaWJpbGl0eX0uc2Nyb2xsV3JhcF92aXNpYmxlLUZhT3ZURDJyey0tb3ZlcmxheS1zY3JvbGxiYXItdmlzaWJpbGl0eTp2aXNpYmxlfQ=="}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/symbol-details.d351fb87636122b00620.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.885Z","timestamp":1785148034885,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/symbol-details.d351fb87636122b00620.js HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a632877-105d7\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Fri, 24 Jul 2026 08:55:19 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/24/2026 10:32:20\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 4ecc5f7a126390ae187ebc5b52760922\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":67031,"size_decoded":24246,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (3070)","md5":"d0db847560de8a32aee463a4a3a1c15b","sha1":"bd1983e113607ea206186ce398aa4bb9b3894d29","sha256":"03557555a41be3bd17dc5b05c00f99099aec866c27d6f06f1a043019de8bd848","sha512":"b7c20b4095c38730decb7636c95219209054c3c35905cb2148b3ccbf645493c6d3d871bdae82684201c8536f93c50149a67005e1f78fe35b6f6e30aedb85f29b","ssdeep":"768:Xi9KbDip8eV70Sg8QgtYV8U+h2z05BVqRdL0ICqSch9tLVdxEVRwEgvzZHrydM9V:YKbCZ5pB4rEszI2sZwnC94O6","tlshash":"9f633a60315074dc53eb89efe1ab0094a36e76a8b8948cb5f5bccd6c26d2984f177b1c","first_seen":"2026-07-27T03:26:09.013046Z","last_seen":"2026-07-27T10:53:39.259316Z","times_seen":8,"resource_available":true,"data":"KHNlbGYud2VicGFja0NodW5rdHJhZGluZ3ZpZXc9c2VsZi53ZWJwYWNrQ2h1bmt0cmFkaW5ndmlld3x8W10pLnB1c2goW1s2MzA5NF0sezcxNzYwKGUpe2UuZXhwb3J0cz17ImNoZWNrYm94LXNpemUiOiIxOHB4IiwiY2hlY2tib3gtcHJpbWFyeS1kZWZhdWx0LWJnIjoidmFyKC0tY29sb3ItY29udGFpbmVyLWZpbGwtcHJpbWFyeS1uZXV0cmFsLWV4dHJhLWJvbGQpIiwiY2hlY2tib3gtcHJpbWFyeS1ob3Zlci1iZyI6InZhcigtLWNvbG9yLWNvbnRhaW5lci1maWxsLXByaW1hcnktbmV1dHJhbC1ib2xkKSIsImNoZWNrYm94LXByaW1hcnktYWN0aXZlLWJnIjoidmFyKC0tY29sb3ItY29udGFpbmVyLWZpbGwtcHJpbWFyeS1uZXV0cmFsLW1lZGl1bSkiLCJjaGVja2JveC1wcmltYXJ5LWZnIjoidmFyKC0tY29sb3ItY29udGFpbmVyLWZpbGwtcXVpbmFyeS1pbnZlcnNlKSIsImNoZWNrYm94LWRhbmdlci1kZWZhdWx0LWJnIjoidmFyKC0tY29sb3ItY29udGFpbmVyLWZpbGwtcHJpbWFyeS1kYW5nZXItYm9sZCkiLCJjaGVja2JveC1kYW5nZXItaG92ZXItYmciOiJ2YXIoLS1jb2xvci1jb250YWluZXItZmlsbC1wcmltYXJ5LWRhbmdlci1zZW1pLWJvbGQpIiwiY2hlY2tib3gtZGFuZ2VyLWFjdGl2ZS1iZyI6InZhcigtLWNvbG9yLWNvbnRhaW5lci1maWxsLXByaW1hcnktZGFuZ2VyKSIsImNoZWNrYm94LWRhbmdlci1mZyI6InZhcigtLWNvbG9yLWNvbnRhaW5lci1maWxsLXF1YXRlcm5hcnktaW52ZXJzZSkiLHdyYXBwZXI6IndyYXBwZXItc1c4N3BReksiLGlucHV0OiJpbnB1dC1zVzg3cFF6SyIsZm9jdXNPdXRsaW5lOiJmb2N1c091dGxpbmUtc1c4N3BReksiLHByaW1hcnk6InByaW1hcnktc1c4N3BReksiLGRpc2FibGVkOiJkaXNhYmxlZC1zVzg3cFF6SyIsZGFuZ2VyOiJkYW5nZXItc1c4N3BReksiLHZpZXc6InZpZXctc1c4N3BReksifX0sODMyNTE4KGUpe2UuZXhwb3J0cz17ImNoZWNrYm94LXNpemUiOiIxOHB4Iixib3g6ImJveC1YZkdrQkJxZiIsdW5jaGVja2VkOiJ1bmNoZWNrZWQtWGZHa0JCcWYiLGNoZWNrZWQ6ImNoZWNrZWQtWGZHa0JCcWYiLG1peGVkOiJtaXhlZC1YZkdrQkJxZiIsZGlzYWJsZWQ6ImRpc2FibGVkLVhmR2tCQnFmIixjaGVja2VkTWFyazoiY2hlY2tlZE1hcmstWGZHa0JCcWYiLG1peGVkTWFyazoibWl4ZWRNYXJrLVhmR2tCQnFmIn19LDI4MjU5MyhlKXtlLmV4cG9ydHM9e2NoZWNrYm94OiJjaGVja2JveC1oVXNubjJaXyIscmV2ZXJzZToicmV2ZXJzZS1oVXNubjJaXyIsYmFzZWxpbmU6ImJhc2VsaW5lLWhVc25uMlpfIixsYWJlbDoibGFiZWwtaFVzbm4yWl8iLGRpc2FibGVkOiJkaXNhYmxlZC1oVXNubjJaXyIscHJpbWFyeToicHJpbWFyeS1oVXNubjJaXyIsZGFuZ2VyOiJkYW5nZXItaFVzbm4yWl8ifX0sMTQ1OTg1KGUpe2UuZXhwb3J0cz17YmxvY2tJY29uOiJibG9ja0ljb24tZ3ZPUVZpVjcifX0sNjM2OTg2KGUpe2UuZXhwb3J0cz17Y3VzdG9tTGlzdEl0ZW06ImN1c3RvbUxpc3RJdGVtLTlROUZIeXJuIixjbGlja2FibGU6ImNsaWNrYWJsZS05UTlGSHlybiJ9fSw5OTQyOChlKXtlLmV4cG9ydHM9e2RpdmlkZXI6ImRpdmlkZXItWmRfdHF1Y0QiLGxpbmU6ImxpbmUtWmRfdHF1Y0QifX0sNTYxMjUwKGUpe2UuZXhwb3J0cz17YmFja2dyb3VuZDoiYmFja2dyb3VuZC1OUW9tNUk4WiIsbWVkaXVtOiJtZWRpdW0tTlFvbTVJOFoiLGxhcmdlOiJsYXJnZS1OUW9tNUk4WiIsZGlzYWJsZWQ6ImRpc2FibGVkLU5Rb201SThaIixvcGVuOiJvcGVuLU5Rb201SThaIixzZWxlY3RlZDoic2VsZWN0ZWQtTlFvbTVJOFoiLG5ldXRyYWw6Im5ldXRyYWwtTlFvbTVJOFoiLGRhbmdlcjoiZGFuZ2VyLU5Rb201SThaIn19LDQ0MzYxOChlKXtlLmV4cG9ydHM9e2VsbGlwc2lzOiJlbGxpcHNpcy1EYXpSODVWQSIsd2l0aEdhcHM6IndpdGhHYXBzLURhelI4NVZBIn19LDQ0MDkyNihlKXtlLmV4cG9ydHM9e2hvdGtleToiaG90a2V5LVhjNlNocENxIn19LDIxMjQ4NihlKXtlLmV4cG9ydHM9e2J1dHRvbkNvbnRlbnQ6ImJ1dHRvbkNvbnRlbnQtVlg0a3BSOWkiLGxlZnQ6ImxlZnQtVlg0a3BSOWkifX0sMzU5MTE2KGUpe2UuZXhwb3J0cz17YnV0dG9uOiJidXR0b24tWE5VaXZUb3UifX0sOTQ4MzkwKGUpe2UuZXhwb3J0cz17bWlkZGxlOiJtaWRkbGUtRnR3d1JyN3UiLGhhc05vRW5kU2xvdDoiaGFzTm9FbmRTbG90LUZ0d3dScjd1Iix0aXRsZToidGl0bGUtRnR3d1JyN3UiLGRlc2NyaXB0aW9uOiJkZXNjcmlwdGlvbi1GdHd3UnI3dSIsaGFzVGl0bGU6Imhhc1RpdGxlLUZ0d3dScjd1IixoYXNEZXNjcmlwdGlvbjoiaGFzRGVzY3JpcHRpb24tRnR3d1JyN3UifX0sMjMyMDU0KGUpe2UuZXhwb3J0cz17cmlnaHQ6InJpZ2h0LUNHZGpLYTlZIixjaGlsZDoiY2hpbGQtQ0dkakthOVkifX0sMjEyNjcyKGUpe2UuZXhwb3J0cz17d3JhcHBlcjoid3JhcHBlci1LVWl0c3RwSiIscHJpbWFyeVRpdGxlV3JhcHBlcjoicHJpbWFyeVRpdGxlV3JhcHBlci1LVWl0c3RwSiIsc2Vjb25kYXJ5VGl0bGVXcmFwcGVyOiJzZWNvbmRhcnlUaXRsZVdyYXBwZXItS1VpdHN0cEoiLHRpdGxlOiJ0aXRsZS1LVWl0c3RwSiIsY29udGVudDoiY29udGVudC1LVWl0c3RwSiIsbGVmdDoibGVmdC1LVWl0c3RwSiIsd2l0aExlZnRTbG90OiJ3aXRoTGVmdFNsb3QtS1VpdHN0cEoiLHNwYWNlOiJzcGFjZS1LVWl0c3RwSiIsaWNvbjoiaWNvbi1LVWl0c3RwSiJ9fSw0NDAwOTYoZSl7ZS5leHBvcnRzPXtzY3JvbGxDb250YWluZXI6InNjcm9sbENvbnRhaW5lci16RzJDcURlMiJ9fSw2MjcwMjIoZSl7ZS5leHBvcnRzPXtmbGV4OiJmbGV4LWdvMFplTlFGIixmaXhlZEhlYWRlcjoiZml4ZWRIZWFkZXItZ28wWmVOUUYiLGZpeGVkRm9vdGVyOiJmaXhlZEZvb3Rlci1nbzBaZU5RRiIsbWFpblNjcm9sbFdyYXBwZXI6Im1haW5TY3JvbGxXcmFwcGVyLWdvMFplTlFGIixmaXhlZEhlYWRlckNvbnRlbnQ6ImZpeGVkSGVhZGVyQ29udGVudC1nbzBaZU5RRiIsZml4ZWRGb290ZXJDb250ZW50OiJmaXhlZEZvb3RlckNvbnRlbnQtZ28wWmVOUUYiLG5vU2Nyb2xsOiJub1Njcm9sbC1nbzBaZU5RRiIsbWFpbjoibWFpbi1nbzBaZU5RRiIsCm1haW5Db250ZW50OiJtYWluQ29udGVudC1nbzBaZU5RRiJ9fSw4NjQ3MzYoZSl7ZS5leHBvcnRzPXtjb250ZXh0QWN0aW9uczoiY29udGV4dEFjdGlvbnMtdUJKaGpVVjgiLGhpZGVJZk5vSG92ZXI6ImhpZGVJZk5vSG92ZXItdUJKaGpVVjgiLHNvbWVDb250ZXh0QWN0aW9uRm9jdXNlZDoic29tZUNvbnRleHRBY3Rpb25Gb2N1c2VkLXVCSmhqVVY4In19LDQ1MjQ2NChlKXtlLmV4cG9ydHM9e3BrbjoicGtuLWNUcF91blY4In19LDUxODI3MihlKXtlLmV4cG9ydHM9e2V2ZW50V3JhcHBlcjoiZXZlbnRXcmFwcGVyLV9FOFVYVksxIn19LDYyMzYxMyhlKXtlLmV4cG9ydHM9e21vYmlsZUNvbnRleHQ6Im1vYmlsZUNvbnRleHQtVnhuNExoWUwiLGFuY2hvckNvbnRleHQ6ImFuY2hvckNvbnRleHQtVnhuNExoWUwifX0sMTg3ODMzKGUpe2UuZXhwb3J0cz17d3JhcDoid3JhcC16MDNHeFBvUyIsY2hlY2tib3g6ImNoZWNrYm94LXowM0d4UG9TIixob3ZlcmVkOiJob3ZlcmVkLXowM0d4UG9TIn19LDE2NzI0NChlKXtlLmV4cG9ydHM9e2NvbnRhaW5lcjoiY29udGFpbmVyLXRjYUc3aWlXIix0aXRsZToidGl0bGUtdGNhRzdpaVciLGdyb3VwV3JhcDoiZ3JvdXBXcmFwLXRjYUc3aWlXIixoYXNEaXNhYmxlZFNldDoiaGFzRGlzYWJsZWRTZXQtdGNhRzdpaVcifX0sMzk2Nzk1KGUpe2UuZXhwb3J0cz17d3JhcDoid3JhcC1waXJYUF9yYyIsZGlzYWJsZWQ6ImRpc2FibGVkLXBpclhQX3JjIn19LDQ5MjA3MShlKXtlLmV4cG9ydHM9e25vdGVzQnRuOiJub3Rlc0J0bi10Sl8yUXF5aCJ9fSw1NDEyMTIoZSl7ZS5leHBvcnRzPXttZW51OiJtZW51LVR6ODRvUGVRIn19LDkxMzkxMChlKXtlLmV4cG9ydHM9eyJlcnJvci1pY29uIjoiZXJyb3ItaWNvbi1VaEtBb3VJZyIsImludGVudC1kYW5nZXIiOiJpbnRlbnQtZGFuZ2VyLVVoS0FvdUlnIiwiaW50ZW50LXdhcm5pbmciOiJpbnRlbnQtd2FybmluZy1VaEtBb3VJZyJ9fSwyMDg4OTkoZSl7ZS5leHBvcnRzPXsic3RhdGljLW1lc3NhZ2VzIjoic3RhdGljLW1lc3NhZ2VzLWNGNHZTOUo4IixlcnJvcnM6ImVycm9ycy1jRjR2UzlKOCIsd2FybmluZ3M6Indhcm5pbmdzLWNGNHZTOUo4Iiwic3VjY2Vzcy1tZXNhZ2VzIjoic3VjY2Vzcy1tZXNhZ2VzLWNGNHZTOUo4IiwiaW5wdXQtZGVzY3JpcHRpb24iOiJpbnB1dC1kZXNjcmlwdGlvbi1jRjR2UzlKOCIsbWVzc2FnZToibWVzc2FnZS1jRjR2UzlKOCJ9fSwzMzI2ODcoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7REVGQVVMVF9JQ09OX0JVVFRPTl9WQVJJQU5UOigpPT5hLEljb25CdXR0b25WYXJpYW50Q29udGV4dDooKT0+aSxJY29uQnV0dG9uVmFyaWFudENvbnRleHRQcm92aWRlcjooKT0+c30pO3ZhciBvPW4oNzc5NDc0KTtjb25zdCBhPSJwcmltYXJ5IixpPSgwLG8uY3JlYXRlQ29udGV4dCkoe3ZhcmlhbnQ6dm9pZCAwfSk7ZnVuY3Rpb24gcyhlKXtyZXR1cm4gby5jcmVhdGVFbGVtZW50KGkuUHJvdmlkZXIse3ZhbHVlOnt2YXJpYW50OmUudmFyaWFudH19LGUuY2hpbGRyZW4pfX0sODYwOTA3KGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse0NoZWNrYm94SW5wdXQ6KCk9PmgsR3JvdXBlZENoZWNrYm94SW5wdXQ6KCk9PnB9KTt2YXIgbz1uKDc3OTQ3NCksYT1uKDkxNDQ4NyksaT1uLm4oYSkscz1uKDM0NTExNikscj1uKDY1ODQ2KSxsPW4oMTQ3OTAxKSxjPW4oNTM2MTI1KSxkPW4oNzE3NjApLHU9bi5uKGQpO2NvbnN0IG09YCR7bC5VSV9MSUJfREFUQV9RQV9JRF9QUkVGSVh9Y2hlY2tib3gtaW5wdXRgO2Z1bmN0aW9uIGgoZSl7Y29uc3R7aW50ZW50OnQsZGlzYWJsZWQ6bixjbGFzc05hbWU6YSx0aXRsZTpyLHN0eWxlOmwsY2hlY2tlZDpkLGlkOmgsdGFiSW5kZXg6cCxuYW1lOnYsdmFsdWU6Zixyb2xlOmcsb25DaGFuZ2U6dyxyZWZlcmVuY2U6YixhcmlhUmVxdWlyZWQ6QyxhcmlhRGVzY3JpYmVkYnk6eCxhcmlhSW52YWxpZDpFLGRhdGFRYUlkOl99PWUseT10Pz8icHJpbWFyeSI7cmV0dXJuIG8uY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZTppKCkodSgpLndyYXBwZXIsbiYmdSgpLmRpc2FibGVkLGEpLHRpdGxlOnIsc3R5bGU6bCwiZGF0YS1xYS1pZCI6X30sby5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOmkoKSh1KCkudmlldyx1KClbeV0pfSxvLmNyZWF0ZUVsZW1lbnQoYy5DaGVja2JveFZpZXdJbXBsLHtjaGVja2VkOmQsZGlzYWJsZWQ6bixkYXRhUWFJZDpgJHttfS12aWV3YH0pKSxvLmNyZWF0ZUVsZW1lbnQoImlucHV0Iix7aWQ6aCx0YWJJbmRleDpwLGNsYXNzTmFtZTppKCkodSgpW3ldLHUoKS5pbnB1dCksdHlwZToiY2hlY2tib3giLG5hbWU6dixjaGVja2VkOiExIT09ZCxkaXNhYmxlZDpuLHZhbHVlOmYscm9sZTpnLG9uQ2hhbmdlOncscmVmOmIsImFyaWEtY2hlY2tlZCI6KCgpPT57c3dpdGNoKGQpe2Nhc2UhMDpyZXR1cm4idHJ1ZSI7Y2FzZSExOnJldHVybiJmYWxzZSI7Y2FzZSJtaXhlZCI6cmV0dXJuIm1peGVkIn19KSgpLCJhcmlhLXJlcXVpcmVkIjpDLCJhcmlhLWRlc2NyaWJlZGJ5Ijp4LCJhcmlhLWludmFsaWQiOkUsImRhdGEtcWEtaWQiOmAke219LWlucHV0YCwuLi4oMCxzLmZpbHRlckRhdGFQcm9wcykoZSl9KSxvLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTp1KCkuZm9jdXNPdXRsaW5lfSkpfWNvbnN0IHA9KDAsci5tYWtlU3dpdGNoR3JvdXBJdGVtKShoKX0sNTM2MTI1KGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse0NoZWNrYm94Vmlld0ltcGw6KCk9Pm19KTt2YXIgbz1uKDc3OTQ3NCksYT1uKDkxNDQ4NyksaT1uLm4oYSkscz1uKDIxNzI3NCkscj1uKDE0NzkwMSksbD1uKDEyNTg5NyksYz1uLm4obCksZD1uKDgzMjUxOCksdT1uLm4oZCk7ZnVuY3Rpb24gbShlKXtjb25zdHtjaGVja2VkOnQsZGlzYWJsZWQ6bixkYXRhUWFJZDphfT1lO3JldHVybiBvLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTppKCkodSgpLmJveCwhMD09PXQmJnUoKS5jaGVja2VkLCExPT09dCYmdSgpLnVuY2hlY2tlZCwibWl4ZWQiPT09dCYmdSgpLm1peGVkLG4mJnUoKS5kaXNhYmxlZCksImRhdGEtcWEtaWQiOigwLApyLmNvbmNhdElmTm90TnVsbCkoYCR7ci5VSV9MSUJfREFUQV9RQV9JRF9QUkVGSVh9Y2hlY2tib3gtdmlldy0ke3Q/ImNoZWNrZWQiOiJ1bmNoZWNrZWQifWAsYSl9LCEwPT09dCYmby5jcmVhdGVFbGVtZW50KHMuQmxvY2tJY29uLHtpY29uOmMoKSxjbGFzc05hbWU6dSgpLmNoZWNrZWRNYXJrfSksIm1peGVkIj09PXQmJm8uY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOnUoKS5taXhlZE1hcmt9KSl9fSw5NzUxOTgoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7Q2hlY2tib3g6KCk9PmQsR3JvdXBlZENoZWNrYm94OigpPT51fSk7dmFyIG89big3Nzk0NzQpLGE9big5MTQ0ODcpLGk9bi5uKGEpLHM9big2NTg0Nikscj1uKDg2MDkwNyksbD1uKDI4MjU5MyksYz1uLm4obCk7ZnVuY3Rpb24gZChlKXtjb25zdHtjbGFzc05hbWU6dCxsYWJlbFBvc2l0aW9uUmV2ZXJzZTpuLGxhYmVsQWxpZ25CYXNlbGluZTphLGlucHV0Q2xhc3NOYW1lOnMsbGFiZWxDbGFzc05hbWU6bCxsYWJlbDpkLHRpdGxlOnUsZGlzYWJsZWQ6bSxpbnRlbnQ6aD0icHJpbWFyeSIsZGF0YVFhSWQ6cCx2YWx1ZTp2LG9uQ2hhbmdlOmYsbmFtZTpnLGNoZWNrZWQ6dyxpZDpiLHRhYkluZGV4OkMscm9sZTp4LHJlZmVyZW5jZTpFLHN0eWxlOl8sYXJpYVJlcXVpcmVkOnksYXJpYURlc2NyaWJlZGJ5OkEsYXJpYUludmFsaWQ6TixhdXRvRm9jdXM6UywuLi5JfT1lLE89T2JqZWN0LmZyb21FbnRyaWVzKE9iamVjdC5lbnRyaWVzKEkpLmZpbHRlcigoKFtlLHRdKT0+ZS5zdGFydHNXaXRoKCJkYXRhIikpKSksaz1pKCkodCxjKCkuY2hlY2tib3gsbiYmYygpLnJldmVyc2UsYSYmYygpLmJhc2VsaW5lKSxMPWkoKShjKCkubGFiZWwsbCxtJiZjKCkuZGlzYWJsZWQsYygpW2hdKSxEPWQ/by5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOkwsdGl0bGU6dX0sZCk6bnVsbDtyZXR1cm4gby5jcmVhdGVFbGVtZW50KCJsYWJlbCIse2NsYXNzTmFtZTprLCJkYXRhLXFhLWlkIjpwfSxvLmNyZWF0ZUVsZW1lbnQoci5DaGVja2JveElucHV0LHsuLi5PLHZhbHVlOnYsb25DaGFuZ2U6ZixjbGFzc05hbWU6cyxpbnRlbnQ6aCxuYW1lOmcsY2hlY2tlZDp3LGlkOmIsdGFiSW5kZXg6Qyxyb2xlOngscmVmZXJlbmNlOkUsc3R5bGU6XyxhcmlhUmVxdWlyZWQ6eSxhcmlhRGVzY3JpYmVkYnk6QSxhcmlhSW52YWxpZDpOLGRpc2FibGVkOm0sYXV0b0ZvY3VzOlN9KSxEKX1jb25zdCB1PSgwLHMubWFrZVN3aXRjaEdyb3VwSXRlbSkoZCl9LDIxNzI3NChlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtCbG9ja0ljb246KCk9PmN9KTt2YXIgbz1uKDkxNDQ4NyksYT1uLm4obyksaT1uKDc3OTQ3NCkscz1uKDk0ODQ1MCkscj1uKDE0NTk4NSksbD1uLm4ocik7Y29uc3QgYz1pLmZvcndhcmRSZWYoKChlLHQpPT57Y29uc3R7Y2xhc3NOYW1lOm4saWNvbjpvLGFyaWFMYWJlbDpyLGFyaWFMYWJlbGxlZGJ5OmMsdGl0bGU6ZCwuLi51fT1lLG09dTtyZXR1cm4gaS5jcmVhdGVFbGVtZW50KHMuQ29tbW9uSWNvbix7Y2xhc3NOYW1lOmEoKShuLGwoKS5ibG9ja0ljb24pLHJlZjp0LGljb246byxhcmlhTGFiZWw6cixhcmlhTGFiZWxsZWRieTpjLHRpdGxlOmQsLi4ubX0pfSkpfSw4OTYyMzcoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7Q3VzdG9tTGlzdEl0ZW06KCk9PmN9KTt2YXIgbz1uKDc3OTQ3NCksYT1uKDkxNDQ4NyksaT1uLm4oYSkscz1uKDM0NTExNikscj1uKDYzNjk4NiksbD1uLm4ocik7Y29uc3QgYz0oMCxvLmZvcndhcmRSZWYpKCgoZSx0KT0+e2NvbnN0e2lkOm4sY2hpbGRyZW46YSxvbkNsaWNrOnIsZGlzYWJsZWQ6Yyxmb2N1c2FibGU6ZCxyb2xlOnUsYXJpYUxhYmVsOm0sYXJpYUV4cGFuZGVkOmgsYXJpYUNvbnRyb2xzOnAsYXJpYUhhc3BvcHVwOnYsYXJpYUxldmVsOmYsZGF0YVFhSWQ6ZywuLi53fT1lLGI9KDAscy5maWx0ZXJDaGVja2VkRGF0YVByb3BzKSh3KSxDPXI/ImJ1dHRvbiI6ImRpdiIseD1kfHxyLEU9Yz92b2lkIDA6cjtyZXR1cm4gby5jcmVhdGVFbGVtZW50KEMse2lkOm4sY2xhc3NOYW1lOmkoKShsKCkuY3VzdG9tTGlzdEl0ZW0sRSYmbCgpLmNsaWNrYWJsZSksb25DbGljazpFLCJhcmlhLWRpc2FibGVkIjpjLCJhcmlhLWxhYmVsIjptLCJhcmlhLWV4cGFuZGVkIjpoLCJhcmlhLWNvbnRyb2xzIjpwLCJhcmlhLWhhc3BvcHVwIjp2LCJhcmlhLWxldmVsIjpmLHJvbGU6dSx0YWJJbmRleDp4PzA6dm9pZCAwLHJlZjp0LC4uLmIsImRhdGEtcWEtaWQiOmd9LG8uY3JlYXRlRWxlbWVudCgiZGl2Iix7aW5lcnQ6Yz8idHJ1ZSI6dm9pZCAwfSxhKSl9KSl9LDczMjczMShlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtEaXZpZGVyTGlzdEl0ZW06KCk9PnN9KTt2YXIgbz1uKDc3OTQ3NCksYT1uKDk5NDI4KSxpPW4ubihhKTtmdW5jdGlvbiBzKGUpe2NvbnN0e3JvbGU6dH09ZTtyZXR1cm4gby5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6aSgpLmRpdmlkZXIscm9sZTp0fSxvLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTppKCkubGluZX0pKX19LDc0MTQwNShlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtMaXN0SXRlbUhhc0Rlc2NyaXB0aW9uQ29udGV4dDooKT0+b30pO2NvbnN0IG89KDAsbig3Nzk0NzQpLmNyZWF0ZUNvbnRleHQpKCExKX0sNjI4ODI1KGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse0xpc3RJdGVtOigpPT5UfSk7dmFyIG89big3Nzk0NzQpLGE9big5MTQ0ODcpLGk9bi5uKGEpLHM9big1NjEyNTApLHI9bi5uKHMpO2Z1bmN0aW9uIGwoZSl7Y29uc3QgdD0oMCxvLnVzZVJlZikobnVsbCkse2NoaWxkcmVuOm4sbGlzdEl0ZW1SZWY6YT10LGlzT3BlbjpzLHNlbGVjdGVkOmwsZGlzYWJsZWQ6Yyxvbk1vdXNlRW50ZXI6ZCxzaXplOnU9Im1lZGl1bSIsYXJpYUJ1c3k6bSxpbnRlbnQ6aD0ibmV1dHJhbCIsZGF0YVFhSWQ6cH09ZTtyZXR1cm4gby5jcmVhdGVFbGVtZW50KCJkaXYiLHsiZGF0YS1xYS1pZCI6cCxjbGFzc05hbWU6aSgpKHIoKS5iYWNrZ3JvdW5kLGwmJnIoKS5zZWxlY3RlZCxzJiZyKCkub3BlbixjJiZyKCkuZGlzYWJsZWQscigpW3VdLHIoKVtoXSkscmVmOmEsb25Nb3VzZUVudGVyOmQsCiJhcmlhLWJ1c3kiOm19LG4pfXZhciBjPW4oMjM1NzI0KSxkPW4oNzg3ODk1KSx1PW4oMzQ1MTE2KSxtPW4oMzU5MTE2KSxoPW4ubihtKTtmdW5jdGlvbiBwKGUpe2NvbnN0IHQ9KDAsby51c2VSZWYpKG51bGwpLHtjaGlsZHJlbjpuLGxpc3RJdGVtQnV0dG9uUmVmOmE9dCxsaXN0SXRlbUJ1dHRvbklkOnMsb25LZXlEb3duTGlzdEl0ZW1CdXR0b246cixocmVmOmwsdGFyZ2V0Om09Il9ibGFuayIsaG90a2V5OnAsYXJpYUNoZWNrZWQ6dixhcmlhU2VsZWN0ZWQ6ZixhcmlhSGFzcG9wdXA6ZyxhcmlhQ29udHJvbHM6dyxhcmlhRXhwYW5kZWQ6YixhcmlhTGFiZWw6QyxhcmlhTGV2ZWw6eCxyb2xlOkUsZGlzYWJsZWQ6Xyxpc09wZW46eSxzZWxlY3RlZDpBLG9uQ2xpY2s6Tix0YWJJbmRleDpTPTAscmVsOkksZGF0YVFhSWQ6TywuLi5rfT1lLEw9KDAsdS5maWx0ZXJDaGVja2VkRGF0YVByb3BzKShrKSxEPSgwLGQudXNlRnVuY3Rpb25hbFJlZk9iamVjdCkoYSksUD0oMCxvLnVzZUNhbGxiYWNrKSgoZT0+e2lmKEQuY3VycmVudCE9PWUudGFyZ2V0KXJldHVybjtyPy4oZSk7Y29uc3QgdD0oMCxjLmhhc2hGcm9tRXZlbnQpKGUpOzMyIT09dCYmMTMhPT10fHwodm9pZCAwIT09bCYmd2luZG93Lm9wZW4obCxtKSxOPy4oZSksZS5wcmV2ZW50RGVmYXVsdCgpLGUuc3RvcFByb3BhZ2F0aW9uKCkpfSksW04sbCxtLHIsRF0pLFQ9e3JvbGU6RSwiYXJpYS1rZXlzaG9ydGN1dHMiOnA/KFI9cCxBcnJheS5pc0FycmF5KFIpP1IubWFwKGMuaG90a2V5SGFzaFRvQXJpYUtleXNob3J0Y3V0cykuam9pbigiICIpOigwLGMuaG90a2V5SGFzaFRvQXJpYUtleXNob3J0Y3V0cykoUikpOnZvaWQgMCwiYXJpYS1leHBhbmRlZCI6YiwiYXJpYS1oYXNwb3B1cCI6ZywiYXJpYS1jb250cm9scyI6dywiYXJpYS1jaGVja2VkIjp2LCJhcmlhLXNlbGVjdGVkIjpmLCJhcmlhLWRpc2FibGVkIjpfLCJhcmlhLWxhYmVsIjpDLCJhcmlhLWxldmVsIjp4LGNsYXNzTmFtZTppKCkoaCgpLmJ1dHRvbixBJiZoKCkuc2VsZWN0ZWQpLHRhYkluZGV4OlMscmVmOkQsb25LZXlEb3duOl8/dm9pZCAwOlAsb25DbGljazpfP3ZvaWQgMDpOLGlkOnMsImRhdGEtcWEtaWQiOk8sLi4uTH07dmFyIFI7cmV0dXJuIG8uY3JlYXRlRWxlbWVudChvLkZyYWdtZW50LG51bGwsIWwmJm8uY3JlYXRlRWxlbWVudCgiZGl2Iix7Li4uVH0sIiAiLG4sIiAiKSxsJiZvLmNyZWF0ZUVsZW1lbnQoImEiLHtocmVmOmwsdGFyZ2V0Om0scmVsOkksLi4uVH0sbikpfXZhciB2PW4oMzMyNjg3KSxmPW4oNDQwOTI2KSxnPW4ubihmKTtmdW5jdGlvbiB3KGUpe2NvbnN0e2hvdGtleTp0fT1lO3JldHVybiBvLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpnKCkuaG90a2V5fSwobj10LEFycmF5LmlzQXJyYXkobik/bi5tYXAoYy5odW1hblJlYWRhYmxlSGFzaCkuam9pbigiLCAiKTooMCxjLmh1bWFuUmVhZGFibGVIYXNoKShuKSkpO3ZhciBufXZhciBiPW4oMjMyMDU0KSxDPW4ubihiKTtmdW5jdGlvbiB4KGUpe2NvbnN0e3JpZ2h0U2xvdDp0LGhvdGtleTpuLHNlbGVjdGVkOmF9PWU7cmV0dXJuIG8uY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOkMoKS5yaWdodH0sby5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6QygpLmNoaWxkfSxvLmNyZWF0ZUVsZW1lbnQodi5JY29uQnV0dG9uVmFyaWFudENvbnRleHRQcm92aWRlcix7dmFyaWFudDphPyJwcmltYXJ5LXNwZWNpYWwiOiJwcmltYXJ5In0sbiYmby5jcmVhdGVFbGVtZW50KHcse2hvdGtleTpufSksdCkpKX12YXIgRT1uKDQ0MzYxOCksXz1uLm4oRSk7ZnVuY3Rpb24geShlKXtjb25zdHtlbGxpcHNpczp0LHRleHQ6bixjbGFzc05hbWU6YX09ZTtyZXR1cm4gbj9vLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTppKCkoYSwic3RyaW5nIj09dHlwZW9mIG4mJnQmJl8oKS5lbGxpcHNpcywic3RyaW5nIiE9dHlwZW9mIG4mJl8oKS53aXRoR2Fwcyx0JiYiYXBwbHktb3ZlcmZsb3ctdG9vbHRpcCIpfSxuKTpudWxsfXZhciBBPW4oOTQ4MzkwKSxOPW4ubihBKTtmdW5jdGlvbiBTKGUpe2NvbnN0e2VsbGlwc2lzOnQ9ITAsdGl0bGU6bixkZXNjcmlwdGlvbjphLGhhc0VuZFNsb3Q6c309ZTtyZXR1cm4gby5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6aSgpKE4oKS5taWRkbGUsbiYmTigpLmhhc1RpdGxlLGEmJk4oKS5oYXNEZXNjcmlwdGlvbiwhcyYmTigpLmhhc05vRW5kU2xvdCl9LG8uY3JlYXRlRWxlbWVudCh5LHtrZXk6InRpdGxlIixjbGFzc05hbWU6TigpLnRpdGxlLHRleHQ6bixlbGxpcHNpczp0fSksby5jcmVhdGVFbGVtZW50KHkse2tleToiZGVzY3JpcHRpb24iLGNsYXNzTmFtZTpOKCkuZGVzY3JpcHRpb24sdGV4dDphLGVsbGlwc2lzOnR9KSl9dmFyIEk9bigyMTI0ODYpLE89bi5uKEkpO2Z1bmN0aW9uIGsoZSl7Y29uc3R7bGVmdFNsb3Q6dCxyaWdodFNsb3Q6bixob3RrZXk6YSxzZWxlY3RlZDppLGVsbGlwc2lzOnMsdGl0bGU6cixkZXNjcmlwdGlvbjpsfT1lLGM9dm9pZCAwIT09dCYmby5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6TygpLmxlZnQsc3R5bGU6eyItLXVpLWxpYi1wcml2YXRlLWxpc3RJdGVtLWxlZnRTbG90SXRlbXNOdW1iZXIiOkFycmF5LmlzQXJyYXkodCk/dC5sZW5ndGg6MX19LHQpLGQ9bnx8YT9vLmNyZWF0ZUVsZW1lbnQoeCx7cmlnaHRTbG90Om4saG90a2V5OmEsc2VsZWN0ZWQ6aX0pOm51bGwsdT1vLmNyZWF0ZUVsZW1lbnQoUyx7ZWxsaXBzaXM6cyx0aXRsZTpyLGRlc2NyaXB0aW9uOmwsaGFzRW5kU2xvdDohIWR9KTtyZXR1cm4gby5jcmVhdGVFbGVtZW50KG8uRnJhZ21lbnQsbnVsbCxvLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpPKCkuYnV0dG9uQ29udGVudH0sYyx1LGQpKX12YXIgTCxELFA9big3NDE0MDUpO2Z1bmN0aW9uIFQoZSl7CmNvbnN0e3RpdGxlOnQsZGVzY3JpcHRpb246bixsaXN0SXRlbVJlZjphLGxpc3RJdGVtQnV0dG9uUmVmOmksaXNPcGVuOnMsc2VsZWN0ZWQ6cixkaXNhYmxlZDpjLG9uQ2xpY2s6ZCxocmVmOm0sbGVmdFNsb3Q6aCxyaWdodFNsb3Q6dixob3RrZXk6ZixpbnRlbnQ6Zyxvbk1vdXNlRW50ZXI6dyxvbktleURvd25MaXN0SXRlbUJ1dHRvbjpiLGxpc3RJdGVtQnV0dG9uSWQ6QyxhcmlhQ2hlY2tlZDp4LGFyaWFTZWxlY3RlZDpFLGFyaWFIYXNwb3B1cDpfLGFyaWFDb250cm9sczp5LGFyaWFFeHBhbmRlZDpBLGFyaWFCdXN5Ok4sYXJpYUxhYmVsOlMsYXJpYUxldmVsOkkscm9sZTpPLHNpemU6TCxlbGxpcHNpczpELHRhcmdldDpULG91dHNpZGVPZkJ1dHRvblNsb3Q6Uix0YWJJbmRleDpGLHJlbDpILGRhdGFRYUlkOkIsLi4uVn09ZSx6PSgwLHUuZmlsdGVyQ2hlY2tlZERhdGFQcm9wcykoVik7cmV0dXJuIG8uY3JlYXRlRWxlbWVudChQLkxpc3RJdGVtSGFzRGVzY3JpcHRpb25Db250ZXh0LlByb3ZpZGVyLHt2YWx1ZTohIW59LG8uY3JlYXRlRWxlbWVudChsLHtzaXplOkwsc2VsZWN0ZWQ6cixpc09wZW46cyxkaXNhYmxlZDpjLGxpc3RJdGVtUmVmOmEsb25Nb3VzZUVudGVyOncsYXJpYUJ1c3k6TixpbnRlbnQ6Z30sby5jcmVhdGVFbGVtZW50KHAse2xpc3RJdGVtQnV0dG9uUmVmOmksbGlzdEl0ZW1CdXR0b25JZDpDLG9uS2V5RG93bkxpc3RJdGVtQnV0dG9uOmIsaHJlZjptLHRhcmdldDpULGhvdGtleTpmLGFyaWFDaGVja2VkOngsYXJpYVNlbGVjdGVkOkUsYXJpYUhhc3BvcHVwOl8sYXJpYUNvbnRyb2xzOnksYXJpYUV4cGFuZGVkOkEsYXJpYUxhYmVsOlMsYXJpYUxldmVsOkkscm9sZTpPLGRpc2FibGVkOmMsaXNPcGVuOnMsc2VsZWN0ZWQ6cixvbkNsaWNrOmQsZGF0YVFhSWQ6Qix0YWJJbmRleDpGLHJlbDpILC4uLnp9LG8uY3JlYXRlRWxlbWVudChrLHtsZWZ0U2xvdDpoLHJpZ2h0U2xvdDp2LGhvdGtleTpmLHNlbGVjdGVkOnIsZWxsaXBzaXM6RCx0aXRsZTp0LGRlc2NyaXB0aW9uOm59KSksUikpfSFmdW5jdGlvbihlKXtlLk1lZGl1bT0ibWVkaXVtIixlLkxhcmdlPSJsYXJnZSJ9KEx8fChMPXt9KSksZnVuY3Rpb24oZSl7ZS5OZXV0cmFsPSJuZXV0cmFsIixlLkRhbmdlcj0iZGFuZ2VyIn0oRHx8KEQ9e30pKX0sODQ0ODcxKGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse1NlY3Rpb25MaXN0SXRlbTooKT0+cn0pO3ZhciBvPW4oNzc5NDc0KSxhPW4oOTM1NTM1KSxpPW4oMTQ3OTAxKSxzPW4oMzQ1MTE2KTtmdW5jdGlvbiByKGUpe2NvbnN0e2lkOnQsdGl0bGU6bixjaGlsZHJlbjpyLGl0ZW1Sb2xlOmwsYXJpYUxhYmVsOmMscmlnaHRTbG90OmQscmlnaHRTbG90QXJpYUxhYmVsbGVkYnk6dSxkYXRhUWFJZDptLG9uQ2xpY2s6aCxvbktleURvd246cCxpc1dyYXBwZWQ6diwuLi5mfT1lLGc9KDAscy5maWx0ZXJDaGVja2VkRGF0YVByb3BzKShmKSx3PSgwLG8udXNlSWQpKCksYj0oMCxvLnVzZUlkKSgpLEM9dm9pZCAwIT09bjtyZXR1cm4gby5jcmVhdGVFbGVtZW50KG8uRnJhZ21lbnQsbnVsbCxDJiZvLmNyZWF0ZUVsZW1lbnQoYS5UaXRsZUxpc3RJdGVtLHtkYXRhUWFJZDooMCxpLmNvbmNhdElmTm90TnVsbCkoYCR7aS5VSV9MSUJfREFUQV9RQV9JRF9QUkVGSVh9bGlzdC1zZWN0aW9uLXRpdGxlYCxtKSxpZDp0LHRpdGxlOm4scm9sZTpsLHJpZ2h0U2xvdDpkLHJpZ2h0U2xvdEFyaWFMYWJlbGxlZGJ5OnUsYXJpYUxhYmVsOmMsdmFyaWFudDoic2Vjb25kYXJ5IixhcmlhQ29udHJvbHM6dm9pZCAwIT09dj9iOnZvaWQgMCx0aXRsZUlkOncsd3JhcHBlZDp2LG9uQ2xpY2s6aCxvbktleURvd246cCwuLi5nfSksby5jcmVhdGVFbGVtZW50KCJkaXYiLHtyb2xlOiJncm91cCIsImFyaWEtbGFiZWxsZWRieSI6dyxpZDpiLCJkYXRhLXFhLWlkIjooMCxpLmNvbmNhdElmTm90TnVsbCkoYCR7aS5VSV9MSUJfREFUQV9RQV9JRF9QUkVGSVh9bGlzdC1zZWN0aW9uLWNvbnRlbnRgLG0pfSwhdiYmcikpfX0sOTM1NTM1KGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse1RpdGxlTGlzdEl0ZW06KCk9PmZ9KTt2YXIgbyxhPW4oNzc5NDc0KSxpPW4oOTE0NDg3KSxzPW4ubihpKSxyPW4oMjczMzEwKSxsPW4oODU5MDkxKSxjPW4oMzQ1MTE2KSxkPW4oMTk0NjQ4KSx1PW4ubihkKSxtPW4oNTQzMzM5KSxoPW4ubihtKSxwPW4oMjEyNjcyKSx2PW4ubihwKTtmdW5jdGlvbiBmKGUpe2NvbnN0e2lkOnQscm9sZTpuLGxlZnRTbG90Om8sdGl0bGU6aSxvbkNsaWNrOmQsYXJpYUxhYmVsOm0scmlnaHRTbG90OnAscmlnaHRTbG90QXJpYUxhYmVsbGVkYnk6ZixsaXN0SXRlbUJ1dHRvblJlZjpnLHZhcmlhbnQ6dz0icHJpbWFyeSIsYXJpYUNvbnRyb2xzOmIsYXJpYUxldmVsOkMsdGl0bGVJZDp4LHdyYXBwZWQ6RSxkYXRhUWFJZDpfLG9uS2V5RG93bjp5LG5lc3RlZExpc3RzQXJpYU93bnM6QSxuZXN0ZWRMaXN0QXJpYUhpZGRlbjpOLC4uLlN9PWUsST0oMCxjLmZpbHRlckNoZWNrZWREYXRhUHJvcHMpKFMpLE89dm9pZCAwIT09RTtyZXR1cm4gYS5jcmVhdGVFbGVtZW50KGwuVGl0bGVTZWN0aW9uTGlzdEl0ZW0se2RhdGFRYUlkOl8saWQ6dCxyb2xlOm4sb25DbGljazpkLG9uS2V5RG93bjp5LHJpZ2h0U2xvdDpwLHJpZ2h0U2xvdEFyaWFMYWJlbGxlZGJ5OmYsYXJpYUxhYmVsOm0sY2xhc3NOYW1lOnMoKSh2KCkud3JhcHBlcixvJiZ2KCkud2l0aExlZnRTbG90LHYoKVtgJHt3fVRpdGxlV3JhcHBlcmBdKSxsaXN0SXRlbUJ1dHRvblJlZjpnLGZvY3VzYWJsZTpPLGFyaWFFeHBhbmRlZDpPPyFFOnZvaWQgMCxhcmlhQ29udHJvbHM6YixhcmlhTGV2ZWw6QyxuZXN0ZWRMaXN0c0FyaWFPd25zOkEsbmVzdGVkTGlzdEFyaWFIaWRkZW46TiwuLi5JfSxhLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTp2KCkuY29udGVudH0sbyYmYS5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6digpLmxlZnR9LG8pLGEuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOnYoKS50aXRsZSxpZDp4fSxpKSksTyYmYS5jcmVhdGVFbGVtZW50KGEuRnJhZ21lbnQsbnVsbCxhLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTp2KCkuc3BhY2UKfSksYS5jcmVhdGVFbGVtZW50KHIuSWNvbix7Y2xhc3NOYW1lOnYoKS5pY29uLGljb246RT91KCk6aCgpfSkpKX0hZnVuY3Rpb24oZSl7ZS5QcmltYXJ5PSJwcmltYXJ5IixlLlNlY29uZGFyeT0ic2Vjb25kYXJ5In0ob3x8KG89e30pKX0sODU5MDkxKGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse1RpdGxlU2VjdGlvbkxpc3RJdGVtOigpPT5yfSk7dmFyIG89big3Nzk0NzQpLGE9big4OTYyMzcpLGk9bigxNDc5MDEpLHM9bigzNDUxMTYpO2Z1bmN0aW9uIHIoZSl7Y29uc3R7aWQ6dCxyb2xlOm4sb25DbGljazpyLHJpZ2h0U2xvdDpsLHJpZ2h0U2xvdEFyaWFMYWJlbGxlZGJ5OmMsZm9jdXNhYmxlOmQsYXJpYUV4cGFuZGVkOnUsYXJpYUNvbnRyb2xzOm0sYXJpYUhhc3BvcHVwOmgsYXJpYUxldmVsOnAsYXJpYUxhYmVsOnYsY2hpbGRyZW46ZixjbGFzc05hbWU6ZyxsaXN0SXRlbUJ1dHRvblJlZjp3LGRhdGFRYUlkOmIsb25LZXlEb3duOkMsbmVzdGVkTGlzdHNBcmlhT3duczp4LG5lc3RlZExpc3RBcmlhSGlkZGVuOkUsLi4uX309ZSx5PSgwLHMuZmlsdGVyQ2hlY2tlZERhdGFQcm9wcykoXyksQT0oMCxvLnVzZUlkKSgpO3JldHVybiBvLmNyZWF0ZUVsZW1lbnQoImRpdiIseyJkYXRhLXFhLWlkIjpiLG9uS2V5RG93bjpDfSxvLmNyZWF0ZUVsZW1lbnQoYS5DdXN0b21MaXN0SXRlbSx7aWQ6dCxyb2xlOm4sb25DbGljazpyLGZvY3VzYWJsZTpkfHwhIWwscmVmOncsYXJpYUV4cGFuZGVkOnU/PyghIWx8fHZvaWQgMCksYXJpYUNvbnRyb2xzOm0/PyhsP0E6dm9pZCAwKSxhcmlhSGFzcG9wdXA6aD8/KGw/Im1lbnUiOnZvaWQgMCksYXJpYUxldmVsOnAsYXJpYUxhYmVsOnYsZGF0YVFhSWQ6YCR7aS5VSV9MSUJfREFUQV9RQV9JRF9QUkVGSVh9dGl0bGUtbGlzdC1pdGVtYCwuLi55fSxvLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpnfSxmLGwpKSxvLmNyZWF0ZUVsZW1lbnQoImRpdiIse2lkOkEscm9sZToibWVudSIsImFyaWEtbGFiZWxsZWRieSI6YywiYXJpYS1vcmllbnRhdGlvbiI6Imhvcml6b250YWwiLCJhcmlhLW93bnMiOngsImFyaWEtaGlkZGVuIjpFfSkpfX0sOTg4MDY4KGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse0RBVEFfSVNfQ09OVEVYVF9BQ1RJT046KCk9PmksREFUQV9JU19QT1BPVkVSX0lURU1fQlVUVE9OOigpPT5hLERBVEFfTkVTVEVEX1BPUE9WRVJfT1BFTjooKT0+b30pO2NvbnN0IG89ImRhdGEtbmVzdGVkLXBvcG92ZXItb3BlbiIsYT0iZGF0YS1pcy1wb3BvdmVyLWl0ZW0tYnV0dG9uIixpPSJkYXRhLWlzLXBvcG92ZXItY29udGV4dC1hY3Rpb24ifSw4NzMwOTAoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7QUxXQVlTX0RST1BET1dOX1BPUE9WRVJfQlJFQUtQT0lOVDooKT0+YSxERUZBVUxUX1BPUE9WRVJfQlJFQUtQT0lOVDooKT0+aX0pO3ZhciBvPW4oODA5NDM2KTtjb25zdCBhPSJub3QgYWxsIixpPW9bIm1lZGlhLXNob3ctZHJhd2VyIl19LDUyMDQ4NihlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtQb3BvdmVyQ29udGVudFZlcnRpY2FsOigpPT5kfSk7dmFyIG89big3Nzk0NzQpLGE9big5MTQ0ODcpLGk9bi5uKGEpLHM9big0NDAwOTYpLHI9bi5uKHMpO3ZhciBsPW4oNjI3MDIyKSxjPW4ubihsKTtmdW5jdGlvbiBkKGUpe2NvbnN0e2NoaWxkcmVuOnQsZml4ZWRIZWFkZXI6bixmaXhlZEZvb3RlcjphLG9uU2Nyb2xsOnMsc2Nyb2xsUmVmOmwsZGF0YVFhSWQ6ZH09ZSx7c2Nyb2xsQ29tcGVuc2F0aW9uOnUsc2Nyb2xsUGFkZGluZ0NvbnRhaW5lcjptfT1mdW5jdGlvbigpe2NvbnN0W2UsdF09KDAsby51c2VTdGF0ZSkodm9pZCAwKSxuPSgwLG8udXNlQ2FsbGJhY2spKChlPT57ZSYmdCgodD0+dHx8ZS5vZmZzZXRXaWR0aC1lLmNsaWVudFdpZHRoKSl9KSxbXSk7cmV0dXJue3Njcm9sbENvbXBlbnNhdGlvbjp2b2lkIDAhPT1lPy1lKyJweCI6dm9pZCAwLHNjcm9sbFBhZGRpbmdDb250YWluZXI6by5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6cigpLnNjcm9sbENvbnRhaW5lcixyZWY6bn0pfX0oKTtyZXR1cm4gby5jcmVhdGVFbGVtZW50KG8uRnJhZ21lbnQsbnVsbCxvLmNyZWF0ZUVsZW1lbnQoImRpdiIseyJkYXRhLXFhLWlkIjpkLGNsYXNzTmFtZTpjKCkuZmxleH0sby5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6aSgpKGMoKS5maXhlZEhlYWRlcixuJiZjKCkuZml4ZWRIZWFkZXJDb250ZW50KX0sbiksby5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6aSgpKGMoKS5tYWluU2Nyb2xsV3JhcHBlcix2b2lkIDA9PT11JiZjKCkubm9TY3JvbGwpLG9uU2Nyb2xsOnMscmVmOmwsc3R5bGU6eyItLXVpLWxpYi1wcml2YXRlLXBvcG92ZXJDb250ZW50VmVydGljYWwtc2Nyb2xsLWNvbXBlbnNhdGlvbiI6dX19LG8uY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOmkoKShjKCkubWFpbix0JiZjKCkubWFpbkNvbnRlbnQpfSx0KSksby5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6aSgpKGMoKS5maXhlZEZvb3RlcixhJiZjKCkuZml4ZWRGb290ZXJDb250ZW50KX0sYSkpLG0pfX0sNDIyNzc3KGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse3VzZUhvcml6b250YWxNZW51S2V5Ym9hcmROYXZpZ2F0aW9uOigpPT5jfSk7dmFyIG89big5ODgwNjgpLGE9big0NDU0OTMpLGk9big4MDc4NzMpLHM9bigyODQ2OTApO2NvbnN0IHI9YFske28uREFUQV9JU19DT05URVhUX0FDVElPTn1dYCxsPWkuQ09OVEVYVF9BQ1RJT05fRk9DVVNBQkxFX1RBR1MubWFwKChlPT5gJHtyfSAke2V9YCkpLmpvaW4oIiwiKSxjPSgpPT57Y29uc3R7aXNSdGw6ZX09KDAsYS51c2VQb3BvdmVyQ29udGV4dCkoKTtyZXR1cm4oMCxzLmdldExpbmVhcktleWJvYXJkTmF2aWdhdGlvbikobCtgLFske28uREFUQV9JU19QT1BPVkVSX0lURU1fQlVUVE9OfV1gLHtob3Jpem9udGFsOiEwLGlzUnRsOmUsYWxsb3dOZXN0ZWRGb2N1c2FibGU6ITB9KX19LDgwNzg3MyhlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtDT05URVhUX0FDVElPTl9GT0NVU0FCTEVfVEFHUzooKT0+dSxDb250ZXh0QWN0aW9uOigpPT5ofSkKO3ZhciBvPW4oNzc5NDc0KSxhPW4oOTE0NDg3KSxpPW4ubihhKSxzPW4oMjk2Nzg2KSxyPW4oOTg4MDY4KSxsPW4oODY0NzM2KSxjPW4ubihsKTtjb25zdCBkPXtbci5EQVRBX0lTX0NPTlRFWFRfQUNUSU9OXTohMH0sdT1bImFbaHJlZl0iLCJidXR0b246bm90KDpkaXNhYmxlZCkiLCJpbnB1dDpub3QoOmRpc2FibGVkKSIsJ1tyb2xlPSJidXR0b24iXSddLG09dS5qb2luKCIsIik7ZnVuY3Rpb24gaChlKXtjb25zdHtjaGlsZHJlbjp0LGRhdGFRYUlkOm4scHJldmVudENsaWNrUHJvcGFnYXRpb246YT0hMH09ZSx7aWQ6cixoaWRlQ29udGV4dEFjdGlvbnNJZk5vSG92ZXI6bCxmb2N1c2VkQ29udGV4dEFjdGlvbnNDb3VudGVyOnUsc2V0Rm9jdXNlZENvbnRleHRBY3Rpb25zQ291bnRlcjpofT0oMCxzLnVzZUNvbnRleHRBY3Rpb24pKCkscD0oMCxvLnVzZVJlZikobnVsbCk7cmV0dXJuKDAsby51c2VFZmZlY3QpKCgoKT0+e2NvbnN0IGU9cC5jdXJyZW50O2lmKCFlKXJldHVybjtjb25zdCB0PWUucXVlcnlTZWxlY3RvcihtKTtyZXR1cm4gdD9mdW5jdGlvbihlLHQpe2NvbnN0IG49KCk9Pnt0KChlPT5lKzEpKX0sbz0oKT0+e3QoKGU9PmUtMSkpfTtyZXR1cm4gZS5hZGRFdmVudExpc3RlbmVyKCJmb2N1cyIsbiksZS5hZGRFdmVudExpc3RlbmVyKCJibHVyIixvKSwoKT0+e2UucmVtb3ZlRXZlbnRMaXN0ZW5lcigiZm9jdXMiLG4pLGUucmVtb3ZlRXZlbnRMaXN0ZW5lcigiYmx1ciIsbyl9fSh0LGgpOnZvaWQgMH0pLFt0LGhdKSxvLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHsuLi5kLGlkOnIscmVmOnAsb25DbGljazplPT57YSYmZS5zdG9wUHJvcGFnYXRpb24oKX0sY2xhc3NOYW1lOmkoKShjKCkuY29udGV4dEFjdGlvbnMsbCYmYygpLmhpZGVJZk5vSG92ZXIsdT4wJiZjKCkuc29tZUNvbnRleHRBY3Rpb25Gb2N1c2VkKSwiZGF0YS1xYS1pZCI6bn0sdCl9fSwyOTY3ODYoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7dXNlQ29udGV4dEFjdGlvbjooKT0+cyx1c2VXcmFwcGVkSW50b0NvbnRleHRBY3Rpb25zQ29udGV4dDooKT0+aX0pO3ZhciBvPW4oNzc5NDc0KTtjb25zdCBhPSgwLG8uY3JlYXRlQ29udGV4dCkoe3NldElkczooKT0+e30saGlkZUNvbnRleHRBY3Rpb25zSWZOb0hvdmVyOiExLGZvY3VzZWRDb250ZXh0QWN0aW9uc0NvdW50ZXI6MCxzZXRGb2N1c2VkQ29udGV4dEFjdGlvbnNDb3VudGVyOigpPT57fX0pO2Z1bmN0aW9uIGkoZSx0LG4pe2NvbnN0W2ksc109KDAsby51c2VTdGF0ZSkoMCkscj0oMCxvLnVzZU1lbW8pKCgoKT0+KHtmb2N1c2VkQ29udGV4dEFjdGlvbnNDb3VudGVyOmksc2V0Rm9jdXNlZENvbnRleHRBY3Rpb25zQ291bnRlcjpzLHNldElkczp0LGhpZGVDb250ZXh0QWN0aW9uc0lmTm9Ib3ZlcjohIW59KSksW2kscyx0LG5dKTtyZXR1cm4oMCxvLnVzZU1lbW8pKCgoKT0+ZT9vLmNyZWF0ZUVsZW1lbnQoYS5Qcm92aWRlcix7dmFsdWU6cn0sZSk6dm9pZCAwKSxbZSxyXSl9ZnVuY3Rpb24gcygpe2NvbnN0e3NldElkczplLGhpZGVDb250ZXh0QWN0aW9uc0lmTm9Ib3Zlcjp0LGZvY3VzZWRDb250ZXh0QWN0aW9uc0NvdW50ZXI6bixzZXRGb2N1c2VkQ29udGV4dEFjdGlvbnNDb3VudGVyOml9PSgwLG8udXNlQ29udGV4dCkoYSkscz0oMCxvLnVzZUlkKSgpO3JldHVybigwLG8udXNlRWZmZWN0KSgoKCk9PihlKChlPT5bLi4uZSxzXSkpLCgpPT57ZSgoZT0+ZS5maWx0ZXIoKGU9PmUhPT1zKSkpKX0pKSxbZSxzXSkse2lkOnMsaGlkZUNvbnRleHRBY3Rpb25zSWZOb0hvdmVyOnQsZm9jdXNlZENvbnRleHRBY3Rpb25zQ291bnRlcjpuLHNldEZvY3VzZWRDb250ZXh0QWN0aW9uc0NvdW50ZXI6aX19fSw5NzI3MzQoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7UG9wb3Zlckl0ZW06KCk9Pmx9KTt2YXIgbyxhLGk9big3Nzk0NzQpLHM9big2Mjg4MjUpLHI9big5ODgwNjgpO2Z1bmN0aW9uIGwoZSl7Y29uc3R7dGl0bGU6dCxkZXNjcmlwdGlvbjpuLHBvcG92ZXJJdGVtUmVmOm8scG9wb3Zlckl0ZW1CdXR0b25SZWY6YSxpc09wZW46bCxzZWxlY3RlZDpjLGRpc2FibGVkOmQsb25DbGljazp1LGhyZWY6bSxsZWZ0U2xvdDpoLHJpZ2h0U2xvdDpwLGhvdGtleTp2LGludGVudDpmLG9uTW91c2VFbnRlcjpnLG9uS2V5RG93blBvcG92ZXJJdGVtQnV0dG9uOncscG9wb3Zlckl0ZW1CdXR0b25JZDpiLGFyaWFDaGVja2VkOkMsYXJpYVNlbGVjdGVkOngsYXJpYUhhc3BvcHVwOkUsYXJpYUNvbnRyb2xzOl8sYXJpYUV4cGFuZGVkOnksYXJpYUJ1c3k6QSxhcmlhTGFiZWw6Tixyb2xlOlMsc2l6ZTpJLGVsbGlwc2lzOk8sdGFyZ2V0Omssb3V0c2lkZU9mQnV0dG9uU2xvdDpMLHRhYkluZGV4OkQscmVsOlAsZGF0YVFhSWQ6VH09ZTtyZXR1cm4gaS5jcmVhdGVFbGVtZW50KHMuTGlzdEl0ZW0se3RpdGxlOnQsZGVzY3JpcHRpb246bixsaXN0SXRlbVJlZjpvLGxpc3RJdGVtQnV0dG9uUmVmOmEsaXNPcGVuOmwsc2VsZWN0ZWQ6YyxkaXNhYmxlZDpkLG9uQ2xpY2s6dSxocmVmOm0sbGVmdFNsb3Q6aCxyaWdodFNsb3Q6cCxob3RrZXk6dixpbnRlbnQ6Zixvbk1vdXNlRW50ZXI6ZyxvbktleURvd25MaXN0SXRlbUJ1dHRvbjp3LGxpc3RJdGVtQnV0dG9uSWQ6YixhcmlhQ2hlY2tlZDpDLGFyaWFTZWxlY3RlZDp4LGFyaWFIYXNwb3B1cDpFLGFyaWFDb250cm9sczpfLGFyaWFFeHBhbmRlZDp5LGFyaWFCdXN5OkEsYXJpYUxhYmVsOk4scm9sZTpTLHNpemU6SSxlbGxpcHNpczpPLHRhcmdldDprLG91dHNpZGVPZkJ1dHRvblNsb3Q6TCx0YWJJbmRleDpELHJlbDpQLGRhdGFRYUlkOlQsW3IuREFUQV9JU19QT1BPVkVSX0lURU1fQlVUVE9OXToidHJ1ZSJ9KX0hZnVuY3Rpb24oZSl7ZS5NZWRpdW09Im1lZGl1bSIsZS5MYXJnZT0ibGFyZ2UifShvfHwobz17fSkpLGZ1bmN0aW9uKGUpe2UuTmV1dHJhbD0ibmV1dHJhbCIsZS5EYW5nZXI9ImRhbmdlciJ9KGF8fChhPXt9KSl9LDM5MTkxNChlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtTZWN0aW9uUG9wb3Zlckl0ZW06KCk9Pmx9KTt2YXIgbz1uKDc3OTQ3NCksYT1uKDQ0NTQ5MyksaT1uKDg0NDg3MSkscz1uKDk4ODA2OCkscj1uKDQyMjc3Nyk7ZnVuY3Rpb24gbChlKXsKY29uc3R7aWQ6dCx0aXRsZTpuLGNoaWxkcmVuOmwsaXRlbVJvbGU6Yyx3cmFwcGFibGU6ZCxkZWZhdWx0V3JhcHBlZDp1LG9uV3JhcHBlZENoYW5nZWQ6bSxhcmlhTGFiZWw6aCxyaWdodFNsb3Q6cCxyaWdodFNsb3RBcmlhTGFiZWxsZWRieTp2LGRhdGFRYUlkOmZ9PWUsW2csd109KDAsby51c2VTdGF0ZSkodT8/ITEpLHtvbktleURvd246Yn09KDAsci51c2VIb3Jpem9udGFsTWVudUtleWJvYXJkTmF2aWdhdGlvbikoKSxDPW58fHZvaWQgMCx7b25Qb3BvdmVyQ29udGVudFJlc2l6ZTp4fT0oMCxhLnVzZVBvcG92ZXJDb250ZXh0KSgpOygwLG8udXNlTGF5b3V0RWZmZWN0KSgoKCk9Pnt4Py4oKX0pLFt4LGddKTtjb25zdCBFPSgwLG8udXNlQ2FsbGJhY2spKCgoKT0+e3coKGU9Pntjb25zdCB0PSFlO3JldHVybiBtPy4odCksdH0pKX0pLFttXSk7cmV0dXJuIG8uY3JlYXRlRWxlbWVudChvLkZyYWdtZW50LG51bGwsby5jcmVhdGVFbGVtZW50KGkuU2VjdGlvbkxpc3RJdGVtLHtpZDp0LHRpdGxlOkMsY2hpbGRyZW46bCxpdGVtUm9sZTpjLGFyaWFMYWJlbDpoLHJpZ2h0U2xvdDpwLHJpZ2h0U2xvdEFyaWFMYWJlbGxlZGJ5OnYsZGF0YVFhSWQ6Zixpc1dyYXBwZWQ6ZD9nOnZvaWQgMCxvbkNsaWNrOmQ/RTp2b2lkIDAsb25LZXlEb3duOmIsW3MuREFUQV9JU19QT1BPVkVSX0lURU1fQlVUVE9OXTpkfHxwPyJ0cnVlIjp2b2lkIDB9KSl9fSwyMDgwODAoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7UG9wb3ZlcktleWJvYXJkTmF2aWdhdG9yOigpPT5BfSk7dmFyIG89big3Nzk0NzQpLGE9big3ODc4OTUpLGk9bigyMzY0NTQpLHM9big3MTg3NzMpLHI9big1ODcxNjgpLGw9bigyMzU3MjQpLGM9big5ODgwNjgpLGQ9big4MjMxMjQpLHU9bigyNTA1MTgpO2NvbnN0IG09KGUsdCk9Pntjb25zdCBuPWUodCx7cHJldmVudFNjcm9sbDohMH0pO24mJigwLGQuc2Nyb2xsUG9wb3Zlckl0ZW1JbnRvVmlldykobil9O2Z1bmN0aW9uIGgoZSx0PTApe2NvbnN0e2ZvY3VzUHJldkxvb3A6bixmb2N1c05leHRMb29wOmEsZm9jdXNGaXJzdDppLGZvY3VzTGFzdDpzfT0oMCxvLnVzZU1lbW8pKCgoKT0+KDAsdS5nZXRTZWxlY3RvcktleWJvYXJkTmF2aWdhdGlvbikoYFske2MuREFUQV9JU19QT1BPVkVSX0lURU1fQlVUVE9OfV1gKSksW10pO2NvbnN0IGQ9KDAsby51c2VDYWxsYmFjaykoKHQ9PntlJiZ0JiZpKHQpfSksW2ksZV0pLGg9KDAsby51c2VNZW1vKSgoKCk9PigwLHIuZGVmYXVsdCkobSx0LHtsZWFkaW5nOiExLHRyYWlsaW5nOiEwfSkpLFt0XSk7cmV0dXJue29uS2V5RG93bjpmdW5jdGlvbihlKXtjb25zdCBvPSgwLGwuaGFzaEZyb21FdmVudCkoZSkscj1lLmN1cnJlbnRUYXJnZXQsYz1mdW5jdGlvbihlKXtzd2l0Y2goZSl7Y2FzZSAzODpyZXR1cm4gbjtjYXNlIDQwOnJldHVybiBhO2Nhc2UgMzY6cmV0dXJuIGk7Y2FzZSAzNTpyZXR1cm4gc319KG8pO2MmJihlLnN0b3BQcm9wYWdhdGlvbigpLGUucHJldmVudERlZmF1bHQoKSx0P2goYyxyKTptKGMscikpfSxyZWZUb0NvbnRlbnRXcmFwcGVyRWxlbWVudDpkfX12YXIgcD1uKDkxNDQ4Nyksdj1uLm4ocCksZj1uKDMxOTY5KSxnPW4oMjM3NjE2KSx3PW4oNTIwNDg2KSxiPW4oNTE4MjcyKSxDPW4ubihiKTtmdW5jdGlvbiB4KGUpe2NvbnN0IHQ9KDAsby51c2VSZWYpKG51bGwpLHt3aWR0aDpuPWkuUE9QT1ZFUl9ERUZBVUxUX1dJRFRILGhlaWdodDphPWkuUE9QT1ZFUl9ERUZBVUxUX0hFSUdIVCxwbGFjZW1lbnRSdWxlczpzPWkuUE9QT1ZFUl9ERUZBVUxUX1BMQUNFTUVOVF9SVUxFUyxvbkNsb3NlOnIsaXNPcGVuOmwsYW5jaG9yUG9zaXRpb25lckNhcmRBcHBlYXJhbmNlQ2xhc3NuYW1lOmMsY2hpbGRyZW46ZCxyb2xlOnUsYXJpYUxhYmVsbGVkYnk6bSxpZE9mQ29udGVudFdyYXBwZXJFbGVtZW50OmgsYW5jaG9yZWQ6cCxhcmlhTXVsdGlzZWxlY3RhYmxlOmIsbW9iaWxlUG9zaXRpb25lclNpZGU6eCxtb2JpbGVQb3NpdGlvbmVyQ2FyZEFwcGVhcmFuY2VDbGFzc25hbWU6RSxtb2JpbGVQb3NpdGlvbmVyU3RyZXRjaDpfLHJlZk9iamVjdFRvQ29udGVudFdyYXBwZXJFbGVtZW50Onk9dCxpc1J0bDpBLHJlcG9zaXRpb25UcmlnZ2VyczpOLHJlcG9zaXRpb25EZXBlbmRlbmNpZXM6UyxmaXhlZEhlYWRlcjpJLGZpeGVkRm9vdGVyOk8sb25TY3JvbGw6ayxzY3JvbGxSZWY6TCxvbktleURvd246RCxjb250ZW50UmVzaXplOlAsbW9iaWxlQnJlYWtwb2ludDpULGRhdGFRYUlkOlIsY29udGVudFdyYXBwZXJDbGFzc25hbWU6Rn09ZSxIPSgwLG8udXNlSWQpKCksQj1oPz9ILFY9KDAsZi51c2VNZXJnZWRSZWZzKShbeV0pLHo9KDAsby51c2VSZWYpKG51bGwpLE09KDAsZi51c2VNZXJnZWRSZWZzKShbTCx6XSksVT1vLmNyZWF0ZUVsZW1lbnQoImRpdiIse29uS2V5RG93bjpELGNsYXNzTmFtZTp2KCkoRixDKCkuZXZlbnRXcmFwcGVyKX0sby5jcmVhdGVFbGVtZW50KHcuUG9wb3ZlckNvbnRlbnRWZXJ0aWNhbCx7Zml4ZWRIZWFkZXI6SSxmaXhlZEZvb3RlcjpPLG9uU2Nyb2xsOmssc2Nyb2xsUmVmOk19LGQpKTtyZXR1cm4gby5jcmVhdGVFbGVtZW50KGcuUG9wb3Zlcix7YW5jaG9yZWQ6cCxpc1J0bDpBLG9uQ2xvc2U6cixpc09wZW46bCxhbmNob3JQb3NpdGlvbmVyQ2FyZEFwcGVhcmFuY2VDbGFzc25hbWU6Yyxyb2xlOnUsYXJpYUxhYmVsbGVkYnk6bSxhcmlhTXVsdGlzZWxlY3RhYmxlOmIsaWRPZkNvbnRlbnRXcmFwcGVyRWxlbWVudDpCLHJlZlRvQ29udGVudFdyYXBwZXJFbGVtZW50OlYscGxhY2VtZW50UnVsZXM6cyx3aWR0aDpuLGhlaWdodDphLGNoaWxkcmVuOlUsbW9iaWxlUG9zaXRpb25lclNpZGU6eCxtb2JpbGVQb3NpdGlvbmVyQ2FyZEFwcGVhcmFuY2VDbGFzc25hbWU6RSxtb2JpbGVQb3NpdGlvbmVyU3RyZXRjaDpfLHJlcG9zaXRpb25UcmlnZ2VyczpOLHJlcG9zaXRpb25EZXBlbmRlbmNpZXM6Uyxtb2JpbGVCcmVha3BvaW50OlQsZGF0YVFhSWQ6Uixjb250ZW50UmVzaXplOlAsc2Nyb2xsQ29udGFpbmVyOnp9KX12YXIgRT1uKDk5OTUxKSxfPW4oNDUyNDY0KSx5PW4ubihfKTtmdW5jdGlvbiBBKGUpe2NvbnN0IHQ9KDAsCm8udXNlUmVmKShudWxsKSx7d2lkdGg6bj1pLlBPUE9WRVJfREVGQVVMVF9XSURUSCxoZWlnaHQ6cj1pLlBPUE9WRVJfREVGQVVMVF9IRUlHSFQscGxhY2VtZW50UnVsZXM6bD1pLlBPUE9WRVJfREVGQVVMVF9QTEFDRU1FTlRfUlVMRVMsb25DbG9zZTpjLGlzT3BlbjpkLGNsb3NlT25DbGlja0F3YXk6dT1pLlBPUE9WRVJfREVGQVVMVF9DTE9TRV9PTl9DTElDS19BV0FZLGNsb3NlT25Fc2NhcGU6bT1pLlBPUE9WRVJfREVGQVVMVF9DTE9TRV9PTl9FU0NBUEUsY2xvc2VPblNjcm9sbE91dHNpZGU6cD1pLlBPUE9WRVJfREVGQVVMVF9DTE9TRV9PTl9TQ1JPTExfT1VUU0lERSxjbG9zZU9uUmVzaXplV2luZG93OnY9aS5QT1BPVkVSX0RFRkFVTFRfQ0xPU0VfT05fUkVTSVpFX1dJTkRPVyxjbG9zZU9uVGFiOmc9aS5QT1BPVkVSX0RFRkFVTFRfQ0xPU0VfT05fVEFCLGFuY2hvclBvc2l0aW9uZXJDYXJkQXBwZWFyYW5jZUNsYXNzbmFtZTp3LGNoaWxkcmVuOmIscm9sZTpDLGFyaWFMYWJlbGxlZGJ5Ol8saWRPZkNvbnRlbnRXcmFwcGVyRWxlbWVudDpBLGFuY2hvcmVkOk4sYXJpYU11bHRpc2VsZWN0YWJsZTpTLG1vYmlsZVBvc2l0aW9uZXJTaWRlOkksbW9iaWxlUG9zaXRpb25lckNhcmRBcHBlYXJhbmNlQ2xhc3NuYW1lOk8scmVmVG9Db250ZW50V3JhcHBlckVsZW1lbnQ6az10LGlzUnRsOkwsZm9jdXNGaXJzdEl0ZW1Pbk9wZW46RD0hMCxyZXBvc2l0aW9uVHJpZ2dlcnM6UD1bXSxyZXBvc2l0aW9uRGVwZW5kZW5jaWVzOlQsZml4ZWRIZWFkZXI6UixmaXhlZEZvb3RlcjpGLG9uU2Nyb2xsOkgsc2Nyb2xsUmVmOkIsbW9iaWxlQnJlYWtwb2ludDpWLGNvbnRlbnRSZXNpemU6ej0xNCxtb2JpbGVQb3NpdGlvbmVyU3RyZXRjaDpNLGtleURvd25UaHJvdHRsZU1zOlUsZGF0YVFhSWQ6V309ZSxRPSgwLG8udXNlQ29udGV4dCkoRS5BcHBDb250ZXh0KS5pc1J0bCxHPUw/P1EscT0oMCxhLnVzZUZ1bmN0aW9uYWxSZWZPYmplY3QpKGspLEs9KDAsby51c2VJZCkoKSxaPUE/P0sse3JlcG9zaXRpb25UcmlnZ2VyczokLHJlZlRvQ29udGVudFdyYXBwZXJFbGVtZW50Olh9PSgwLHMudXNlUG9wb3ZlckNsb3NlQmVoYXZpb3IpKHtvbkNsb3NlOmMsaXNPcGVuOmQsY2xvc2VPbkNsaWNrQXdheTp1LGNsb3NlT25Fc2NhcGU6bSxjbG9zZU9uUmVzaXplV2luZG93OnYsY2xvc2VPblNjcm9sbE91dHNpZGU6cCxjbG9zZU9uVGFiOmcscmVmVG9Db250ZW50V3JhcHBlckVsZW1lbnQ6cSxleGNsdWRlQXJlYTpOLmF0fSkse29uS2V5RG93bjpZLHJlZlRvQ29udGVudFdyYXBwZXJFbGVtZW50Okp9PWgoRCxVKSxqPSgwLGYudXNlTWVyZ2VkUmVmcykoW0osWF0pO3JldHVybiBvLmNyZWF0ZUVsZW1lbnQoeCx7YW5jaG9yZWQ6Tixpc1J0bDpHLG9uQ2xvc2U6Yyxpc09wZW46ZCxhbmNob3JQb3NpdGlvbmVyQ2FyZEFwcGVhcmFuY2VDbGFzc25hbWU6dyxyb2xlOkMsYXJpYUxhYmVsbGVkYnk6XyxhcmlhTXVsdGlzZWxlY3RhYmxlOlMsaWRPZkNvbnRlbnRXcmFwcGVyRWxlbWVudDpaLHJlZk9iamVjdFRvQ29udGVudFdyYXBwZXJFbGVtZW50OmoscGxhY2VtZW50UnVsZXM6bCx3aWR0aDpuLGhlaWdodDpyLGNoaWxkcmVuOmIsbW9iaWxlUG9zaXRpb25lclNpZGU6SSxtb2JpbGVQb3NpdGlvbmVyQ2FyZEFwcGVhcmFuY2VDbGFzc25hbWU6TyxyZXBvc2l0aW9uVHJpZ2dlcnM6Wy4uLiQsLi4uUF0scmVwb3NpdGlvbkRlcGVuZGVuY2llczpULGZpeGVkRm9vdGVyOkYsZml4ZWRIZWFkZXI6UixvblNjcm9sbDpILHNjcm9sbFJlZjpCLG9uS2V5RG93bjpZLGNvbnRlbnRSZXNpemU6eixtb2JpbGVQb3NpdGlvbmVyU3RyZXRjaDpNLG1vYmlsZUJyZWFrcG9pbnQ6VixkYXRhUWFJZDpXLGNvbnRlbnRXcmFwcGVyQ2xhc3NuYW1lOnkoKS5wa259KX19LDgyMzEyNChlLHQsbil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG8oZSx0KXtlLnNjcm9sbEludG9WaWV3KHtiZWhhdmlvcjp0PyJzbW9vdGgiOnZvaWQgMCxibG9jazoiY2VudGVyIn0pfW4uZCh0LHtzY3JvbGxQb3BvdmVySXRlbUludG9WaWV3OigpPT5vfSl9LDcxODc3MyhlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHt1c2VQb3BvdmVyQ2xvc2VCZWhhdmlvcjooKT0+Z30pO3ZhciBvLGE9big3Nzk0NzQpLGk9bigzMDYyODcpLHM9bigxNTkyNTYpOyFmdW5jdGlvbihlKXtlW2UuTm9uZT0wXT0iTm9uZSIsZVtlLkhvcml6b250YWw9MV09Ikhvcml6b250YWwiLGVbZS5WZXJ0aWNhbD0yXT0iVmVydGljYWwiLGVbZS5Cb3RoPTNdPSJCb3RoIn0ob3x8KG89e30pKTt2YXIgcj1uKDQ0MDQ0Nik7ZnVuY3Rpb24gbChlLHQsbil7Y29uc3Qgbz0oMCxpLnVzZVdpbmRvd1Jlc2l6ZVRyaWdnZXIpKCFuLmNsb3NlT25SZXNpemVXaW5kb3cmJmUpOyFmdW5jdGlvbihlLHQsbil7Y29uc3Qgbz0oMCxhLnVzZVJlZikoe2NsaWVudFdpZHRoOnZvaWQgMCxjbGllbnRIZWlnaHQ6dm9pZCAwfSksaT0oMCxhLnVzZU1lbW8pKCgoKT0+ZnVuY3Rpb24oZSl7Y29uc3QgdD1bXTtyZXR1cm4gMSZlJiZ0LnB1c2goImNsaWVudFdpZHRoIiksMiZlJiZ0LnB1c2goImNsaWVudEhlaWdodCIpLHR9KG4pKSxbbl0pOygwLHMudXNlQ29uZGl0aW9uYWxFZmZlY3QpKGUmJjAhPT1uLCgoKT0+e2NvbnN0IGU9KCk9PntpLmZvckVhY2goKGU9Pntjb25zdCBuPWRvY3VtZW50LmRvY3VtZW50RWxlbWVudFtlXTt2b2lkIDAhPT1vLmN1cnJlbnRbZV0/by5jdXJyZW50W2VdIT09biYmKHQoITAsImN1cnJlbnRMZXZlbCIpLG8uY3VycmVudFtlXT1uKTpvLmN1cnJlbnRbZV09bn0pKX07cmV0dXJuIGUoKSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicmVzaXplIixlLCEwKSwoKT0+e3dpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJyZXNpemUiLGUsITApLG8uY3VycmVudD17Y2xpZW50V2lkdGg6dm9pZCAwLGNsaWVudEhlaWdodDp2b2lkIDB9fX0pLFt0LGldKX0oISFuLmNsb3NlT25SZXNpemVXaW5kb3cmJmUsdCwzKTtyZXR1cm5bbywoMCxyLnVzZUNsb3NlUmVwb3NpdGlvbk9uU2Nyb2xsT3V0c2lkZSkoZSwhIW4uY2xvc2VPblNjcm9sbE91dHNpZGUsdCxuLnJlZildfQp2YXIgYz1uKDc4Nzg5NSksZD1uKDg1NDMzOCksdT1uKDQ3OTI5NyksbT1uKDU3NzgzMiksaD1uKDIzNjQ1NCk7dmFyIHA9bigzMTk2OSksdj1uKDIzNTcyNCk7Y29uc3QgZj0oMCx1LndpbmRvd0V2ZW50KSgia2V5ZG93biIpO2Z1bmN0aW9uIGcoZSl7Y29uc3QgdD0oMCxhLnVzZVJlZikobnVsbCkse29uQ2xvc2U6bixpc09wZW46byxyZWZUb0NvbnRlbnRXcmFwcGVyRWxlbWVudDppPXQsY2xvc2VPbkNsaWNrQXdheTpyPWguUE9QT1ZFUl9ERUZBVUxUX0NMT1NFX09OX0NMSUNLX0FXQVksY2xvc2VPbkVzY2FwZTpnPWguUE9QT1ZFUl9ERUZBVUxUX0NMT1NFX09OX0VTQ0FQRSxjbG9zZU9uU2Nyb2xsT3V0c2lkZTp3PWguUE9QT1ZFUl9ERUZBVUxUX0NMT1NFX09OX1NDUk9MTF9PVVRTSURFLGNsb3NlT25SZXNpemVXaW5kb3c6Yj1oLlBPUE9WRVJfREVGQVVMVF9DTE9TRV9PTl9SRVNJWkVfV0lORE9XLGNsb3NlT25UYWI6Qz1oLlBPUE9WRVJfREVGQVVMVF9DTE9TRV9PTl9UQUIsZXhjbHVkZUFyZWE6eH09ZTtsZXQgRT0oMCxjLnVzZUZ1bmN0aW9uYWxSZWZPYmplY3QpKGkpO2NvbnN0IF89bChvLG4se2Nsb3NlT25SZXNpemVXaW5kb3c6YixjbG9zZU9uU2Nyb2xsT3V0c2lkZTp3LHJlZjpFfSk7cmV0dXJuIEU9ZnVuY3Rpb24oZSx0LG4pe2NvbnN0IG89KDAsYS51c2VDYWxsYmFjaykoKG89PntlJiZvJiZvLmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLChlPT57aWYoMjchPT0oMCx2Lmhhc2hGcm9tRXZlbnQpKGUpKXJldHVybjtjb25zdCBvPW4uY3VycmVudDtpZighbylyZXR1cm47Y29uc3QgYT1lLnRhcmdldDthIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQmJm8uY29udGFpbnMoYSkmJihlLnByZXZlbnREZWZhdWx0KCksZS5zdG9wUHJvcGFnYXRpb24oKSx0KCEwLCJjdXJyZW50TGV2ZWwiKSl9KSx7Y2FwdHVyZTohMX0pfSksW2VdKTtyZXR1cm4oMCxjLnVzZUZ1bmN0aW9uYWxSZWZPYmplY3QpKCgwLHAudXNlTWVyZ2VkUmVmcykoW24sb10pKX0oZyYmbyxuLEUpLGZ1bmN0aW9uKGUsdCxuKXsoMCxzLnVzZUNvbmRpdGlvbmFsRWZmZWN0KSghIWUsKCgpPT5mKChlPT57Y29uc3Qgbj0oMCx2Lmhhc2hGcm9tRXZlbnQpKGUpOzkhPT1uJiZuIT09OSt2Lk1vZGlmaWVycy5TaGlmdHx8dCghMCwiY3VycmVudExldmVsIil9KSwhMCkpLFt0LG5dKX0oQyYmbyxuLEUpLGZ1bmN0aW9uKGUsdCxuLG8sYSl7Y29uc3QgaT0iYm9vbGVhbiI9PXR5cGVvZiBvP2guUE9QT1ZFUl9ERUZBVUxUX0NMT1NFX09OX0NMSUNLX0FXQVk6bzsoMCxzLnVzZUNvbmRpdGlvbmFsRWZmZWN0KSghIWUsKCgpPT4oMCx1LndpbmRvd0V2ZW50KShpKSgoZT0+e2NvbnN0IG89e3g6ZS5jbGllbnRYLHk6ZS5jbGllbnRZfSxpPW4uY3VycmVudDsoMCxtLmlzSW5FeGNsdWRlZEFyZWEpKG8sYSl8fGkmJigwLGQuaXNYWUluc2lkZUVsZW1lbnRUaHJvdWdoUG9ydGFscykoaSxvLngsby55KXx8dCghMSwiY3VycmVudExldmVsIil9KSkpLFt0LGEsbixpXSl9KHImJm8sbixFLHIseCkse3JlcG9zaXRpb25UcmlnZ2VyczpfLHJlZlRvQ29udGVudFdyYXBwZXJFbGVtZW50OkV9fX0sODY5ODQyKGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse1N3aXRjaEdyb3VwQ29udGV4dDooKT0+aX0pO3ZhciBvPW4oNzc5NDc0KSxhPW4oODYyMzg4KTtjb25zdCBpPSgwLG8uY3JlYXRlQ29udGV4dCkoe2dldE5hbWU6KCk9PiIiLGdldFZhbHVlczooKT0+W10sZ2V0T25DaGFuZ2U6KCk9PmEuZGVmYXVsdCxzdWJzY3JpYmU6YS5kZWZhdWx0LHVuc3Vic2NyaWJlOmEuZGVmYXVsdH0pfSw2NTg0NihlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHttYWtlU3dpdGNoR3JvdXBJdGVtOigpPT5pfSk7dmFyIG89big3Nzk0NzQpLGE9big4Njk4NDIpO2Z1bmN0aW9uIGkoZSl7dmFyIHQ7cmV0dXJuIHQ9Y2xhc3MgZXh0ZW5kcyBvLlB1cmVDb21wb25lbnR7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMuX29uQ2hhbmdlPWU9Pnt0aGlzLmNvbnRleHQuZ2V0T25DaGFuZ2UoKShlLnRhcmdldC52YWx1ZSl9LHRoaXMuX29uVXBkYXRlPWU9PntlLmluY2x1ZGVzKHRoaXMucHJvcHMudmFsdWUpJiZ0aGlzLmZvcmNlVXBkYXRlKCl9fWNvbXBvbmVudERpZE1vdW50KCl7dGhpcy5jb250ZXh0LnN1YnNjcmliZSh0aGlzLl9vblVwZGF0ZSl9cmVuZGVyKCl7cmV0dXJuIG8uY3JlYXRlRWxlbWVudChlLHsuLi50aGlzLnByb3BzLG5hbWU6dGhpcy5fZ2V0TmFtZSgpLG9uQ2hhbmdlOnRoaXMuX29uQ2hhbmdlLGNoZWNrZWQ6dGhpcy5faXNDaGVja2VkKCl9KX1jb21wb25lbnRXaWxsVW5tb3VudCgpe3RoaXMuY29udGV4dC51bnN1YnNjcmliZSh0aGlzLl9vblVwZGF0ZSl9X2dldE5hbWUoKXtyZXR1cm4gdGhpcy5jb250ZXh0LmdldE5hbWUoKX1faXNDaGVja2VkKCl7cmV0dXJuIHRoaXMuY29udGV4dC5nZXRWYWx1ZXMoKS5pbmNsdWRlcyh0aGlzLnByb3BzLnZhbHVlKX19LHQuY29udGV4dFR5cGU9YS5Td2l0Y2hHcm91cENvbnRleHQsdH19LDI4NDY5MChlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtnZXRMaW5lYXJLZXlib2FyZE5hdmlnYXRpb246KCk9Pmx9KTt2YXIgbz1uKDI1MDUxOCksYT1uKDIzNTcyNCksaT1uKDM4MjI0Mikscz1uKDY4MjM4MSkscj1uKDI5ODcyOCk7ZnVuY3Rpb24gbChlLHQ9e30pe2NvbnN0e2ZvY3VzTmV4dDpuLGZvY3VzUHJldjpsLGZvY3VzRmlyc3Q6Yyxmb2N1c0xhc3Q6ZH09KDAsby5nZXRTZWxlY3RvcktleWJvYXJkTmF2aWdhdGlvbikoZSx0LmFsbG93TmVzdGVkRm9jdXNhYmxlKSx1PXsuLi50Lmhvcml6b250YWw/ezM5Om4sMzc6bH06ezQwOm4sMzg6bH0sLi4udC5oYW5kbGVIb21lRW5kP3szNjpjLDM1OmR9Ont9fTtyZXR1cm57b25Gb2N1czpmdW5jdGlvbihuKXtjb25zdCBvPW4uY3VycmVudFRhcmdldDtuLnRhcmdldD09PW8mJmZ1bmN0aW9uKG4pe2NvbnN0IG89KDAsaS5nZXRTZWxlY3RvclRyZWVXYWxrZXIpKG4sZSkubmV4dE5vZGUoKTtvJiYoMCxzLmlzSFRNTE9yU1ZHRWxlbWVudCkobykmJm8hPT1uJiZvLmZvY3VzKHQuZm9jdXNPcHRpb25zKX0obyl9LG9uS2V5RG93bjpmdW5jdGlvbihlKXtjb25zdCBuPSgwLApyLmZsaXBBcnJvd3NPblJ0bCkoKDAsYS5oYXNoRnJvbUV2ZW50KShlKSx0LmlzUnRsKSxvPWUuY3VycmVudFRhcmdldCxpPWUudGFyZ2V0O2lmKCEoaSBpbnN0YW5jZW9mIE5vZGUpKXJldHVybjtpZighby5jb250YWlucyhpKSlyZXR1cm47Y29uc3Qgcz11W25dO2lmKHMpe2UucHJldmVudERlZmF1bHQoKTtjb25zdCBuPXM/LihvLHQuZm9jdXNPcHRpb25zKTtuJiZlLnN0b3BQcm9wYWdhdGlvbigpfX19fX0sMjk4NzI4KGUsdCxuKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbyhlLHQpe2lmKCF0KXJldHVybiBlO2NvbnN0IG49MjU1JmUsbz0tMjU2JmU7cmV0dXJuIDM3PT09bj8zOStvOjM5PT09bj8zNytvOmV9bi5kKHQse2ZsaXBBcnJvd3NPblJ0bDooKT0+b30pfSwyNTA1MTgoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7Z2V0U2VsZWN0b3JLZXlib2FyZE5hdmlnYXRpb246KCk9Pml9KTt2YXIgbz1uKDM4MjI0MiksYT1uKDY4MjM4MSk7ZnVuY3Rpb24gaShlLHQpe2NvbnN0IG49dD0+KG4saSk9Pntjb25zdCBzPWRvY3VtZW50LmFjdGl2ZUVsZW1lbnR8fG4scj0oMCxvLmdldFNlbGVjdG9yVHJlZVdhbGtlcikobixlKTtyLmN1cnJlbnROb2RlPXM7Y29uc3QgbD10KHIpO3JldHVybiBsJiYoMCxhLmlzSFRNTE9yU1ZHRWxlbWVudCkobCkmJmwhPT1zPyhsLmZvY3VzKGkpLGwpOm51bGx9LGk9dD9lPT5lLnByZXZpb3VzTm9kZSgpOm8uZ2V0UHJldmlvdXNOb25QYXJlbnQscz1lPT5lLm5leHROb2RlKCk7cmV0dXJue2ZvY3VzUHJldjpuKGkpLGZvY3VzTmV4dDpuKHMpLGZvY3VzRmlyc3Q6bihvLmdldEZpcnN0RGVzY2VuZGFudCksZm9jdXNMYXN0Om4oby5nZXRMYXN0RGVzY2VuZGFudCksZm9jdXNQcmV2TG9vcDpuKChlPT57Y29uc3QgdD1pKGUpO3JldHVybiB0fHwoMCxvLmdldExhc3REZXNjZW5kYW50KShlKX0pKSxmb2N1c05leHRMb29wOm4oKGU9Pntjb25zdCB0PXMoZSk7cmV0dXJuIHR8fCgwLG8uZ2V0Rmlyc3REZXNjZW5kYW50KShlKX0pKSxmb2N1c0luZGV4OihlLHQsbyk9Pm4oKGU9PntlLmN1cnJlbnROb2RlPWUucm9vdDtmb3IobGV0IG49MDtuPHQ7bisrKWUubmV4dE5vZGUoKTtyZXR1cm4gZS5uZXh0Tm9kZSgpfSkpKGUsbyl9fX0sOTIwNjMxKGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse3Nob3dEZXJpdmF0aXZlc0RpYWxvZzooKT0+YX0pO3ZhciBvPW4oODkwODM1KTtmdW5jdGlvbiBhKGUpe28uY3VycmVudExheW91dC52YWx1ZSgpPy5zaG93QW5hbHlzaXNWaWV3KCJkZXJpdmF0aXZlcyIsZSl9fSwxODU3OTMoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLnIodCksbi5kKHQse0RldGFpbHNXcmFwcGVyOigpPT52ZX0pO3ZhciBvPW4oNzc5NDc0KSxhPW4oOTQ0NzgwKSxpPW4oNzE4OTgzKSxzPW4oMTM4NjM4KSxyPW4oNzYzNDgyKSxsPW4oMTA2OTAwKSxjPW4oMTM2NjMpLGQ9bigyMzc2MDMpLHU9big5MzAyMzEpLG09bigxNDM4MDIpLGg9big5MzA1NjYpO2NvbnN0IHA9bmV3IFNldChbIlJhbmdlcyIsIkJpZEFuZEFzayJdKTt2YXIgdj1uKDEyOTM2NSksZj1uKDkxNDQ4NyksZz1uLm4oZiksdz1uKDY0MzkwMyksYj1uKDU3NzEwOSksQz1uKDI4NjQ3MikseD1uKDc4MzI1NCksRT1uKDQwODQxKSxfPW4oNzI4NjM5KSx5PW4oNjcwMTI1KSxBPW4oNDkyMDcxKTtmdW5jdGlvbiBOKGUpe2NvbnN0e3N5bWJvbE5hbWU6dH09ZTtyZXR1cm4gby5jcmVhdGVFbGVtZW50KEUuVG9vbFdpZGdldEljb25CdXR0b24se3RpdGxlOngudChudWxsLHZvaWQgMCxuKDUzNjIzOSkpLGNsYXNzTmFtZTpBLm5vdGVzQnRuLGljb246eSxvbkNsaWNrOmZ1bmN0aW9uKCl7d2luZG93LnJ1bk9yU2lnbkluKCgoKT0+eygwLF8uY3JlYXRlU3ltYm9sTm90ZSkodCl9KSx7c291cmNlOiJBZGQgdGV4dCBub3RlIGluIGRldGFpbHMifSl9LCJkYXRhLW5hbWUiOiJkZXRhaWxzLWFkZC1ub3RlLWJ1dHRvbiJ9KX12YXIgUz1uKDE3OTc3MSksST1uKDM4NjkzMSksTz1uKDI3MzMxMCksaz1uKDk3NTE5OCksTD1uKDk0ODM4MCksRD1uKDYzMjk5MiksUD1uKDEzMTMyMSksVD1uKDI5NjQ0OSksUj1uKDMxODk3NCksRj1uKDYwMzYxMiksSD1uKDc1NDAwNCksQj1uKDY1OTkwMSksVj1uKDE4NzgzMyk7Y29uc3Qgej1uZXcgTC5EZWxlZ2F0ZTtmdW5jdGlvbiBNKGUpe2NvbnN0e2Rpc2FibGVkU2V0OnQsaGFzT3B0aW9uczphLG9uRGlzYWJsZWRTZXRDaGFuZ2U6aX09ZSxzPSgwLG8udXNlTWVtbykoKCgpPT57Y29uc3QgZT1bSC5oaWRlQmlkQW5kQXNrP251bGw6e3dpZGdldDoiQmlkQW5kQXNrIixsYWJlbDp4LnQobnVsbCx2b2lkIDAsbig0MzMyMzkpKX0se3dpZGdldDoiUmFuZ2VzIixsYWJlbDp4LnQobnVsbCx2b2lkIDAsbig1OTc3NjIpKX0se3dpZGdldDoiTmV3cyIsbGFiZWw6eC50KG51bGwsdm9pZCAwLG4oODUzMTEzKSl9LHt3aWRnZXQ6Ik5vdGVzIixsYWJlbDp4LnQobnVsbCx2b2lkIDAsbigzMTAxOTgpKX0se3dpZGdldDoiS2V5U3RhdHMiLGxhYmVsOngudChudWxsLHZvaWQgMCxuKDgyNzE1KSl9LHt3aWRnZXQ6Ik9wdGlvbnNQcmljaW5nTW9kZWwiLGxhYmVsOngudChudWxsLHZvaWQgMCxuKDQ1MjQ4MCkpfSx7d2lkZ2V0OiJFYXJuaW5ncyIsbGFiZWw6eC50KG51bGwsdm9pZCAwLG4oNDYzNDA1KSl9LHt3aWRnZXQ6IkRpdmlkZW5kcyIsbGFiZWw6eC50KG51bGwsdm9pZCAwLG4oNjU5MjY3KSl9LHt3aWRnZXQ6IkZpbmFuY2lhbHMiLGxhYmVsOngudChudWxsLHZvaWQgMCxuKDM2OTMyNSkpfSx7d2lkZ2V0OiJQZXJmb3JtYW5jZSIsbGFiZWw6eC50KG51bGwsdm9pZCAwLG4oMTExMzQxKSl9LHt3aWRnZXQ6IlNlYXNvbmFscyIsbGFiZWw6eC50KG51bGwsdm9pZCAwLG4oMTUyMzc3KSl9LHt3aWRnZXQ6IlRlY2huaWNhbHMiLGxhYmVsOngudChudWxsLHtjb250ZXh0OiJzdHVkeSJ9LG4oNDc3NDc1KSl9LHt3aWRnZXQ6IkFuYWx5c3RSZWNvbW1lbmRhdGlvbnMiLGxhYmVsOngudChudWxsLHZvaWQgMCxuKDgxMzQ3OSkpfSx7d2lkZ2V0OiJTdG9ja3NSZWxhdGVkQm9uZHMiLGxhYmVsOngudChudWxsLHZvaWQgMCxuKDI0MzQ2NCkpfSx7d2lkZ2V0OiJjb21tdW5pdHkiLGxhYmVsOngudChudWxsLHsKY29udGV4dDoiZGV0YWlscyJ9LG4oNjQ5NDU0KSl9LHt3aWRnZXQ6IlByb2ZpbGUiLGxhYmVsOngudChudWxsLHZvaWQgMCxuKDUyNzQ0MSkpfSxhP3t3aWRnZXQ6Ik9wdGlvbnMiLGxhYmVsOngudChudWxsLHtjb250ZXh0OiJkZXJpdmF0aXZlcyJ9LG4oNjMyMzY5KSl9Om51bGxdLHQ9KDAsUi5pc1N5bXBob255RW1iZWQpKCk7cmV0dXJuIGUuZmlsdGVyKChlPT5udWxsIT09ZSYmKCF0fHwiY29tbXVuaXR5IiE9PWUud2lkZ2V0KSkpfSksW2FdKTtyZXR1cm4oMCxvLnVzZUVmZmVjdCkoKCgpPT57Y29uc3QgZT0oKT0+e3ouZmlyZSgpfTtyZXR1cm4gUy5zdWJzY3JpYmUoRi5DTE9TRV9QT1BVUFNfQU5EX0RJQUxPR1NfQ09NTUFORCxlLG51bGwpLCgpPT57Uy51bnN1YnNjcmliZShGLkNMT1NFX1BPUFVQU19BTkRfRElBTE9HU19DT01NQU5ELGUsbnVsbCl9fSksW10pLG8uY3JlYXRlRWxlbWVudChELkNsb3NlRGVsZWdhdGVDb250ZXh0LlByb3ZpZGVyLHt2YWx1ZTp6fSxvLmNyZWF0ZUVsZW1lbnQoVC5Ub29sV2lkZ2V0TWVudSx7Y2xhc3NOYW1lOlYud3JhcCxhcnJvdzohMSwiZGF0YS1uYW1lIjoiZGV0YWlscy1zZXR0aW5ncy1idXR0b24iLGNvbnRlbnQ6by5jcmVhdGVFbGVtZW50KE8uSWNvbix7aWNvbjpCfSksaXNTaG93VG9vbHRpcDohMCx0aXRsZTp4LnQobnVsbCx2b2lkIDAsbig3MzA1ODYpKSxob3Jpem9udGFsRHJvcERpcmVjdGlvbjpQLkhvcml6b250YWxEcm9wRGlyZWN0aW9uLkZyb21SaWdodFRvTGVmdCxob3Jpem9udGFsQXR0YWNoRWRnZTpQLkhvcml6b250YWxBdHRhY2hFZGdlLlJpZ2h0fSxzLm1hcCgoZT0+e2NvbnN0e3dpZGdldDpuLGxhYmVsOmF9PWU7cmV0dXJuIG8uY3JlYXRlRWxlbWVudChrLkNoZWNrYm94LHtrZXk6bixjbGFzc05hbWU6Vi5jaGVja2JveCxuYW1lOm4sbGFiZWw6YSxjaGVja2VkOiF0LmhhcyhuKSxvbkNoYW5nZTpyKG4pfSl9KSkpKTtmdW5jdGlvbiByKGUpe3JldHVybigpPT57Y29uc3Qgbj1uZXcgU2V0KHQpO24uaGFzKGUpPyhuLmRlbGV0ZShlKSwoMCxJLnRyYWNrRXZlbnQpKCJHVUkiLCJEZXRhaWxzIixgJHtlfSBvbmApKToobi5hZGQoZSksKDAsSS50cmFja0V2ZW50KSgiR1VJIiwiRGV0YWlscyIsYCR7ZX0gb2ZmYCkpLGkobil9fX12YXIgVT1uKDk5NTcxOSksVz1uKDI3MzUwOSksUT1uKDI1ODQ5KSxHPW4oMTAxNjMpLHE9bigzOTY3OTUpO2Z1bmN0aW9uIEsoZSl7Y29uc3R7c3ltYm9sTmFtZTp0LC4uLmF9PWUse2hhc1RlY2huaWNhbHM6aSxoYXNZaWVsZEN1cnZlOnMsaGFzRmluYW5jaWFsczpyLGhhc0ZvcndhcmRDdXJ2ZTpsLGhhc0NvbnRyYWN0czpjLGhhc0Rlcml2YXRpdmVzOmR9PWEsW3UsbV09KDAsby51c2VTdGF0ZSkoITEpLGg9KDAsby51c2VSZWYpKG51bGwpLHA9d2luZG93LlRyYWRpbmdWaWV3Lm9uQ2hhcnRQYWdlPyJkZXRhaWxfaGVhZGVyX2NoYXJ0IjoiZGV0YWlsX2hlYWRlcl9zb2NpYWwiLHY9KDAsUS51c2VEaWFsb2dBY3Rpb25zKSgpLHtzZWFzb25hbHNBY3Rpb246Zixmb3JlY2FzdEFjdGlvbjp3LGFuYWx5c2lzQWN0aW9uOmIsb3B0aW9uc0FjdGlvbjpDLGVjb25vbXlJbmRpY2F0b3JzQWN0aW9uOkUsc3RvY2tCb25kc0FjdGlvbjpfLGRvY3VtZW50c0FjdGlvbjp5LGV0ZnNBY3Rpb246QSxuZXdzQWN0aW9uOk4sY29tbXVuaXR5QWN0aW9uOlN9PXYsST1iPy5pc0Rpc2FibGVkKCk/PyEwLGs9dz8uaXNEaXNhYmxlZCgpPz8hMCxMPWY/LmlzRGlzYWJsZWQoKT8/ITAsRD1DPy5pc0Rpc2FibGVkKCk/PyEwLFA9RT8uaXNEaXNhYmxlZCgpPz8hMCxUPV8/LmlzRGlzYWJsZWQoKT8/ITAsUj15Py5pc0Rpc2FibGVkKCk/PyEwLEY9QT8uaXNEaXNhYmxlZCgpPz8hMCxIPU4/LmlzRGlzYWJsZWQoKT8/ITAsQj1TPy5pc0Rpc2FibGVkKCk/PyEwLFY9IXImJkkmJiFpJiYhcyYmIWwmJiFjJiYhZCYmayYmTCYmRCYmUCYmVCYmUiYmRiYmSCYmQjtyZXR1cm4gby5jcmVhdGVFbGVtZW50KG8uRnJhZ21lbnQsbnVsbCxvLmNyZWF0ZUVsZW1lbnQoVS5Ub29sV2lkZ2V0QnV0dG9uLHtyZWY6aCx0YWc6ImJ1dHRvbiIsaXNEaXNhYmxlZDpWLGNsYXNzTmFtZTpnKCkocS53cmFwLFYmJnEuZGlzYWJsZWQpLCJkYXRhLXFhLWlkIjoiZGV0YWlscy1tZXRyaWNzLWJ1dHRvbiIsaWNvbjpvLmNyZWF0ZUVsZW1lbnQoTy5JY29uLHtpY29uOkd9KSx0aXRsZTpWP3gudChudWxsLHZvaWQgMCxuKDMwNTAxOSkpOngudChudWxsLHtjb250ZXh0OiJkZXRhaWxzX21ldHJpY3NfbWVudSJ9LG4oNjU0OTIwKSksb25DbGljazpmdW5jdGlvbigpe20oIXUpfX0pLG8uY3JlYXRlRWxlbWVudChXLkNvbnRlbnRNZW51LHtzeW1ib2w6dCxkYXRhOnsuLi5hLC4uLnZ9LHRyYWNraW5nRGF0YTp7c291cmNlOnAscHJpbWFyeV9tZW51OiJEZXRhaWxzSGVhZGVyIn0scGxhY2VtZW50UnVsZXM6W3thbmNob3JQb2ludDp7eDowLHk6MX0sY29udGVudFBvaW50Ont4OjAseTowfSxvZmZzZXQ6e3g6Mix5OjB9LG92ZXJmbG93SG9yaXpvbnRhbDoic2xpZGUiLG92ZXJmbG93VmVydGljYWw6InNsaWRlIn1dLG9uQ2xvc2U6ZnVuY3Rpb24oKXttKCExKX0sYW5jaG9yZWQ6e3R5cGU6ImVsZW1lbnQiLGF0Omh9LHNob3dGaW5hbmNpYWxzOkksaXNPcGVuOnV9KSl9dmFyIFo9big4MDY4MzUpLCQ9bigxNjcyNDQpO2Z1bmN0aW9uIFgoZSl7Y29uc3R7Y29tcGxldGU6dCxsb2dvRGF0YTpuLHN5bWJvbE5hbWU6YSxkaXNhYmxlZFNldDppLG9uRGlzYWJsZWRTZXRDaGFuZ2U6cix0eXBlc3BlY3M6bCxwcmljZXNjYWxlOmQsbGlzdGVkRXhjaGFuZ2U6bSxzeW1ib2xUeXBlOmgsaGFzRmluYW5jaWFsczpwLGhhc1lpZWxkQ3VydmU6ZixoYXNGb3J3YXJkQ3VydmU6eCxoYXNDb250cmFjdHM6RSxoYXNUZWNobmljYWxzOl8saGFzRGVyaXZhdGl2ZXM6eSxzaG9ydF9uYW1lOkF9PWUse2hlYWRlcjpTfT0oMCxjLnVzZUVuc3VyZWRDb250ZXh0KShaLkRldGFpbHNDb250ZXh0KSxJPSgwLEMudXNlQ29tcGxldGVPclRpbWVvdXQpKGEsQm9vbGVhbih0KSksTz0oKDAsdS5pc0ZlYXR1cmVzZXRFbmFibGVkKSgic2hvd19zeW1ib2xfbG9nb3MiKSxBJiYhMSkKO3JldHVybiB2LmNyZWF0ZVBvcnRhbChvLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTokLmNvbnRhaW5lcn0sISgwLHUuaXNGZWF0dXJlc2V0RW5hYmxlZCkoIndpZGdldCIpJiZvLmNyZWF0ZUVsZW1lbnQoYi5TeW1ib2xMb2dvLHtsb2dvOm4scGxhY2Vob2xkZXI6ST8oMCx3LnNhZmVTaG9ydE5hbWUpKGEpWzBdOnZvaWQgMH0pLG8uY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZTokLnRpdGxlLCJkYXRhLXFhLWlkIjoiZGV0YWlscy1lbGVtZW50IHN5bWJvbCJ9LE8/QTooMCx3LnNhZmVTaG9ydE5hbWUpKGEpKSxvLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpnKCkoJC5ncm91cFdyYXAsaSYmJC5oYXNEaXNhYmxlZFNldCl9LCEoMCx1LmlzRmVhdHVyZXNldEVuYWJsZWQpKCJ3aWRnZXQiKSYmby5jcmVhdGVFbGVtZW50KEsse3ByaWNlc2NhbGU6ZCxsaXN0ZWRFeGNoYW5nZTptLHR5cGU6aCx0eXBlc3BlY3M6bCxoYXNGaW5hbmNpYWxzOnAsaGFzWWllbGRDdXJ2ZTpmLGhhc0ZvcndhcmRDdXJ2ZTp4LGhhc0NvbnRyYWN0czpFLGhhc1RlY2huaWNhbHM6XyxoYXNEZXJpdmF0aXZlczp5LHN5bWJvbE5hbWU6YX0pLCEoMCx1LmlzRmVhdHVyZXNldEVuYWJsZWQpKCJ3aWRnZXQiKSYmby5jcmVhdGVFbGVtZW50KE4se3N5bWJvbE5hbWU6YX0pLGkmJnImJm8uY3JlYXRlRWxlbWVudChNLHtkaXNhYmxlZFNldDppLGhhc09wdGlvbnM6ISFlWyJvcHRpb25zLWluZm8iXSxvbkRpc2FibGVkU2V0Q2hhbmdlOnJ9KSkpLCgwLHMuZW5zdXJlTm90TnVsbCkoUykpfXZhciBZPW4oNDY4ODE0KTtmdW5jdGlvbiBKKGUpe2NvbnN0e2RldGFpbHNIZWFkZXJQcm9wczp0LGRldGFpbHNJbmZvUHJvcHM6bixuZXdzUHJldmlldzphLHdpZGdldFdpZHRoOnMsc2hvd05ld3M6cix2aXNpYmlsaXR5Omx9PWUsW2MsZF09KDAsby51c2VTdGF0ZSkoe3Nob3dDb21tdW5pdHk6ITEsc2hvd05vdGVzOiExfSksW3YsZl09KDAsdS5pc0ZlYXR1cmVzZXRFbmFibGVkKSgid2lkZ2V0Iik/W106ZnVuY3Rpb24oKXtjb25zdFtlLHRdPSgwLG8udXNlU3RhdGUpKChmdW5jdGlvbigpe2NvbnN0IGU9aC5nZXRKU09OKCJkZXRhaWxzLmRpc2FibGVkU2V0IiksdD1oLmdldEJvb2woImRldGFpbHMuZm9yY2VfdW5jaGVja19yYW5nZXNfMDNfMjAyMyIpLG49aC5nZXRCb29sKCJkZXRhaWxzLmZvcmNlX3VuY2hlY2tfYmlkX2Fza18wM18yMDIzIik7cmV0dXJuIHR8fChlJiYhZS5pbmNsdWRlcygiUmFuZ2VzIikmJmUucHVzaCgiUmFuZ2VzIiksaC5zZXRWYWx1ZSgiZGV0YWlscy5mb3JjZV91bmNoZWNrX3Jhbmdlc18wM18yMDIzIiwhMCkpLG58fChlJiYhZS5pbmNsdWRlcygiQmlkQW5kQXNrIikmJmUucHVzaCgiQmlkQW5kQXNrIiksaC5zZXRWYWx1ZSgiZGV0YWlscy5mb3JjZV91bmNoZWNrX2JpZF9hc2tfMDNfMjAyMyIsITApKSxuZXcgU2V0KGU/P1suLi5wXSl9KSk7cmV0dXJuW2UsZnVuY3Rpb24oZSl7dChlKSxoLnNldEpTT04oImRldGFpbHMuZGlzYWJsZWRTZXQiLEFycmF5LmZyb20oZSkpfV19KCksZz0oMCxpLnVzZVNlbGVjdG9yKShtLnNlbGVjdEFsbFN5bWJvbE5vdGVzR3JvdXBzKSx3PSgwLGkudXNlU2VsZWN0b3IpKG0uc2VsZWN0Tm90ZXNTdGF0dXMpO3JldHVybigwLG8udXNlRWZmZWN0KSgoKCk9Pnshbj8ucXVvdGVzLnByb19uYW1lJiZuPy5hZ2dyZWdhdGVkLmludmFsaWR8fG4/LnF1b3Rlcy5wcm9fbmFtZT9kKHtzaG93Q29tbXVuaXR5OiEwLHNob3dOb3RlczohMH0pOm4/LnF1b3Rlcy5wcm9fbmFtZXx8ZCh7c2hvd0NvbW11bml0eTohMSxzaG93Tm90ZXM6ITF9KX0pLFtuPy5xdW90ZXMucHJvX25hbWUsbj8uYWdncmVnYXRlZC5pbnZhbGlkXSksby5jcmVhdGVFbGVtZW50KG8uRnJhZ21lbnQsbnVsbCx0JiZvLmNyZWF0ZUVsZW1lbnQoWCx7ZGlzYWJsZWRTZXQ6dixvbkRpc2FibGVkU2V0Q2hhbmdlOmYsLi4udH0pLG4mJm8uY3JlYXRlRWxlbWVudChZLkRldGFpbHMse2RhdGE6bixzb3VyY2U6IlJpZ2h0VG9vbGJhciIsbmV3c1ByZXZpZXc6YSx3aWRnZXRXaWR0aDpzLHN5bWJvbE5vdGVzOmcsbm90ZXNTdGF0dXM6dyxkaXNhYmxlZFNldDp2LHNob3dDb21tdW5pdHk6Yy5zaG93Q29tbXVuaXR5LHNob3dOb3RlczpjLnNob3dOb3RlcyxzaG93TmV3czpyLHZpc2liaWxpdHk6bH0pKX12YXIgaj1uKDE1OTUxMyksZWU9big5NzExODMpLHRlPW4oMjQ2MTc1KSxuZT1uKDYxNTU0Nyksb2U9bigzMjA1NSksYWU9KG4oNTI4Mzk2KSxuKDIxNTI1NykpO2Z1bmN0aW9uIGllKGUpe3JldHVybntzeW1ib2xOYW1lOmV9fWZ1bmN0aW9uIHNlKGUpe3JldHVybntxdW90ZXM6e3N5bWJvbDplfSxzY3JlZW5lcjp7fSxhZ2dyZWdhdGVkOnt9fX12YXIgcmU9big0MTcyNjMpLGxlPW4oODM1MDMwKSxjZT1uKDUxOTE4NCksZGU9big5NzEwNTEpLHVlPW4oODE5Mjg0KSxtZT1uKDgxOTM4MyksaGU9bigyMzEzMzApO2Z1bmN0aW9uIHBlKGUpe2NvbnN0e2JyaWRnZTp0fT0oMCxjLnVzZUVuc3VyZWRDb250ZXh0KShaLkRldGFpbHNDb250ZXh0KSxuPSgwLGwudXNlV2F0Y2hlZFZhbHVlUmVhZG9ubHkpKHt3YXRjaGVkVmFsdWU6KDAscy5lbnN1cmVEZWZpbmVkKSh0KS5zeW1ib2x9LCEwKSxpPSgwLGwudXNlV2F0Y2hlZFZhbHVlUmVhZG9ubHkpKHt3YXRjaGVkVmFsdWU6KDAscy5lbnN1cmVEZWZpbmVkKSh0KS53aWR0aH0pLHI9KDAsbC51c2VXYXRjaGVkVmFsdWVSZWFkb25seSkoe3dhdGNoZWRWYWx1ZTooMCxzLmVuc3VyZURlZmluZWQpKHQpLnZpc2libGV9KSx1PSgwLGQudXNlQ2hhbmdlU3RhdGVBdXRoZW50aWNhdGlvbikod2luZG93LmlzX2F1dGhlbnRpY2F0ZWQpLFttLGhdPWZ1bmN0aW9uKGUsdCl7Y29uc3RbbixhXT0oMCxvLnVzZVN0YXRlKSgoKCk9PmllKGUpKSksW2ksc109KDAsby51c2VTdGF0ZSkoKCgpPT5zZShlKSkpLHI9KDAsby51c2VSZWYpKHtkZXRhaWxzSGVhZGVyUHJvcHM6bixkZXRhaWxzSW5mb1Byb3BzOml9KSxsPSgwLG8udXNlUmVmKSh0KTtsLmN1cnJlbnQ9dCwoMCxvLnVzZUVmZmVjdCkoKCgpPT57dCYmKGEoci5jdXJyZW50LmRldGFpbHNIZWFkZXJQcm9wcyksCnMoci5jdXJyZW50LmRldGFpbHNJbmZvUHJvcHMpKX0pLFt0XSk7e2NvbnN0e3Byb19uYW1lOnR9PSgwLHRlLnVzZVF1b3Rlc0NhY2hlZERhdGEpKGUsWyJwcm9fbmFtZSJdLHtwcm9fbmFtZTplfSxvZS5zbmFwc2hvdGVyKTsoMCxvLnVzZUVmZmVjdCkoKCgpPT57aWYoci5jdXJyZW50LmRldGFpbHNJbmZvUHJvcHM9c2UodCksci5jdXJyZW50LmRldGFpbHNIZWFkZXJQcm9wcz1pZSh0KSxsLmN1cnJlbnQmJihhKCgoKT0+aWUodCkpKSxzKCgoKT0+c2UodCkpKSksIXQpcmV0dXJuO2NvbnN0IGU9bmV3IG5lLkRldGFpbHNEYXRhUHJvdmlkZXIoe3N5bWJvbDp0LHF1b3RlU2Vzc2lvbk11bHRpcGxleGVySW5zdGFuY2U6KDAsai5nZXRRdW90ZVNlc3Npb25JbnN0YW5jZSkoImZ1bGwiKSxsYWJlbDplZS5MYWJlbFByb2R1Y3QuUmlnaHREZXRhaWxzfSk7cmV0dXJuIGUuc2V0SGFuZGxlcigoZnVuY3Rpb24oZSl7Y29uc3R7aGVhZGVyOm4scXVvdGVzOm8sc2NyZWVuZXI6aSxhZ2dyZWdhdGVkOmN9PSgwLGFlLnByZXBhcmVEZXRhaWxzV2lkZ2V0UHJvcHMpKHQsZSksZD17Li4ubixzeW1ib2xOYW1lOnQsY29tcGxldGU6Qm9vbGVhbihlLmNvbXBsZXRlKX0sdT17YWdncmVnYXRlZDpjLHNjcmVlbmVyOnsuLi5pLGNvbXBsZXRlU2NyZWVuZXI6Qm9vbGVhbihlLmNvbXBsZXRlU2NyZWVuZXIpfSxxdW90ZXM6ey4uLm8sY29tcGxldGU6Qm9vbGVhbihlLmNvbXBsZXRlKX19O3IuY3VycmVudC5kZXRhaWxzSW5mb1Byb3BzPXUsci5jdXJyZW50LmRldGFpbHNIZWFkZXJQcm9wcz1kLGwuY3VycmVudCYmKGEoZCkscyh1KSl9KSksKCk9PmUuZGVzdHJveSgpfSksW3RdKX1yZXR1cm4oMCxvLnVzZU1lbW8pKCgoKT0+W24saV0pLFtuLGldKX0obixyKSxwPWhlLmlzTmV3c0FsbG93ZWQ/aGUuaXNOZXdzU3RyZWFtaW5nRW5hYmxlZCYmdT8oMCxtZS51c2VOZXdzUHJldmlld1N0cmVhbWluZ1Byb3ZpZGVyKSh7c3ltYm9sOmg/LnF1b3Rlcy5wcm9fbmFtZSx0eXBlOmg/LnF1b3Rlcy50eXBlfSk6KDAsY2UudXNlTmV3c1ByZXZpZXdQcm92aWRlcikoe3N5bWJvbDpoPy5xdW90ZXMucHJvX25hbWUsdHlwZTpoPy5xdW90ZXMudHlwZX0pOm51bGwsdj0oMCxDLnVzZUNvbXBsZXRlT3JUaW1lb3V0KShoLnF1b3Rlcy5zeW1ib2wsQm9vbGVhbihoLnF1b3Rlcy5jb21wbGV0ZSYmKHA/LmNvbXBsZXRlPz8hMCkpKTtyZXR1cm4oMCx1ZS51c2VHZXROb3RlcykoKSxvLmNyZWF0ZUVsZW1lbnQoYS5Td2l0Y2gsbnVsbCxvLmNyZWF0ZUVsZW1lbnQoYS5Sb3V0ZSx7cGF0aDpkZS5HUk9VUF9QQVRIX1BBVFRFUk59LCgoe21hdGNoOmV9KT0+by5jcmVhdGVFbGVtZW50KGxlLkdyb3VwTm90ZXMse2tleTplPy5wYXJhbXMuc3ltYm9sfSkpKSxvLmNyZWF0ZUVsZW1lbnQoYS5Sb3V0ZSx7cGF0aDpkZS5VTkFUVEVOREVEX1BBVEhfUEFUVEVSTn0sby5jcmVhdGVFbGVtZW50KGxlLkdyb3VwTm90ZXMsbnVsbCkpLG8uY3JlYXRlRWxlbWVudChhLlJvdXRlLHtwYXRoOmRlLk5PVEVTX1BBVEhfUEFUVEVSTn0sby5jcmVhdGVFbGVtZW50KHJlLkdyb3Vwc0xpc3QsbnVsbCkpLG8uY3JlYXRlRWxlbWVudChhLlJvdXRlLG51bGwsby5jcmVhdGVFbGVtZW50KEose2RldGFpbHNIZWFkZXJQcm9wczptLGRldGFpbHNJbmZvUHJvcHM6aCxuZXdzUHJldmlldzpwPy5uZXdzUHJldmlld3x8bnVsbCxzaG93TmV3czpwPy5zaG93TmV3cyx3aWRnZXRXaWR0aDppLHZpc2liaWxpdHk6dn0pKSl9ZnVuY3Rpb24gdmUoZSl7Y29uc3R7d2lkZ2V0SGVhZGVyRWxlbWVudDp0LGJyaWRnZTpuLGhpc3Rvcnk6bH09ZSxjPSgwLG8udXNlTWVtbykoKCgpPT4oe2hlYWRlcjp0LGJyaWRnZTpufSkpLFtuLHRdKSxkPW8uY3JlYXRlRWxlbWVudChaLkRldGFpbHNDb250ZXh0LlByb3ZpZGVyLHt2YWx1ZTpjfSxvLmNyZWF0ZUVsZW1lbnQocGUsbnVsbCkpO3JldHVybiBvLmNyZWF0ZUVsZW1lbnQoYS5Sb3V0ZXIse2hpc3Rvcnk6KDAscy5lbnN1cmVOb3ROdWxsKShsKX0sby5jcmVhdGVFbGVtZW50KGkuUHJvdmlkZXIse3N0b3JlOnIuc3ltYm9sTm90ZXNTdG9yZX0sZCkpfX0sNzg5MDMzKGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse1FVT1RFX0lORk9fUEFUSFM6KCk9PnIsY2F0ZWdvcnlJZEJ5UGF0aHM6KCk9PmEsaXNTdGF0ZW1lbnRzQ2F0ZWdvcnlQYXRoOigpPT5pLHBhdGhzQnlDYXRlZ29yeUlkOigpPT5vfSk7Y29uc3Qgbz17ImluY29tZSBzdGF0ZW1lbnRzIjoiL2ZpbmFuY2lhbHMtaW5jb21lLXN0YXRlbWVudC8iLCJiYWxhbmNlIHNoZWV0IjoiL2ZpbmFuY2lhbHMtYmFsYW5jZS1zaGVldC8iLCJjYXNoIGZsb3ciOiIvZmluYW5jaWFscy1jYXNoLWZsb3cvIixzdGF0aXN0aWNzOiIvZmluYW5jaWFscy1zdGF0aXN0aWNzLWFuZC1yYXRpb3MvIixkaXZpZGVuZHM6Ii9maW5hbmNpYWxzLWRpdmlkZW5kcy8iLGVhcm5pbmdzOiIvZmluYW5jaWFscy1lYXJuaW5ncy8iLHJldmVudWU6Ii9maW5hbmNpYWxzLXNlZ21lbnRzLyJ9LGE9eyIvZmluYW5jaWFscy1pbmNvbWUtc3RhdGVtZW50LyI6ImluY29tZSBzdGF0ZW1lbnRzIiwiL2ZpbmFuY2lhbHMtYmFsYW5jZS1zaGVldC8iOiJiYWxhbmNlIHNoZWV0IiwiL2ZpbmFuY2lhbHMtY2FzaC1mbG93LyI6ImNhc2ggZmxvdyJ9O2Z1bmN0aW9uIGkoZSl7cmV0dXJuIi9maW5hbmNpYWxzLWluY29tZS1zdGF0ZW1lbnQvIj09PWV8fCIvZmluYW5jaWFscy1iYWxhbmNlLXNoZWV0LyI9PT1lfHwiL2ZpbmFuY2lhbHMtY2FzaC1mbG93LyI9PT1lfWZ1bmN0aW9uIHMoZSl7cmV0dXJuIGUucmVwbGFjZSgvXC8vZywiIil9Y29uc3Qgcj1bYC86Y2F0ZWdvcnkoJHtzKCIvZmluYW5jaWFscy1pbmNvbWUtc3RhdGVtZW50LyIpfSkvOmluZGljYXRvcmAsYC86Y2F0ZWdvcnkoJHtzKCIvZmluYW5jaWFscy1iYWxhbmNlLXNoZWV0LyIpfSkvOmluZGljYXRvcmAsYC86Y2F0ZWdvcnkoJHtzKCIvZmluYW5jaWFscy1jYXNoLWZsb3cvIil9KS86aW5kaWNhdG9yYCxgLzpjYXRlZ29yeSgke3MoIi9maW5hbmNpYWxzLXN0YXRpc3RpY3MtYW5kLXJhdGlvcy8iKX0pLzppbmRpY2F0b3JgXX0sNjg0MjUzKGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQsewpCQU5LSU5HX0RFRkFVTFRfQ0FURUdPUllfU0VUVElOR1M6KCk9PmEsREVGQVVMVF9DQVRFR09SWV9TRVRUSU5HUzooKT0+byxISVNUT1JJQ19WQUxVRVNfUE9TVEZJWDooKT0+cyxQRU9QTEVfQ09VTlRfUVVPVEVTOigpPT5pLFBFUklPRF9QT1NURklYRVM6KCk9Pmx9KTtjb25zdCBvPXsiaW5jb21lIHN0YXRlbWVudHMiOntkZWZhdWx0SXRlbXM6WyJ0b3RhbF9yZXZlbnVlIiwiZ3Jvc3NfcHJvZml0Iiwib3Blcl9pbmNvbWUiLCJwcmV0YXhfaW5jb21lIiwibmV0X2luY29tZSJdLGFkZGl0aW9uYWxGaWVsZDoxLGRpc3BsYXlHcm91cHM6ITF9LCJiYWxhbmNlIHNoZWV0Ijp7ZGVmYXVsdEl0ZW1zOlsidG90YWxfYXNzZXRzIiwidG90YWxfbGlhYmlsaXRpZXMiXSxhZGRpdGlvbmFsRmllbGQ6MCxkaXNwbGF5R3JvdXBzOiExfSwiY2FzaCBmbG93Ijp7ZGVmYXVsdEl0ZW1zOlsiY2FzaF9mX29wZXJhdGluZ19hY3Rpdml0aWVzIiwiY2FzaF9mX2ludmVzdGluZ19hY3Rpdml0aWVzIiwiY2FzaF9mX2ZpbmFuY2luZ19hY3Rpdml0aWVzIl0sYWRkaXRpb25hbEZpZWxkOjEsZGlzcGxheUdyb3VwczohMX0sc3RhdGlzdGljczp7ZGVmYXVsdEl0ZW1zOlsicHJpY2VfZWFybmluZ3MiLCJwcmljZV9jYXNoX2Zsb3ciXSxhZGRpdGlvbmFsRmllbGQ6MixkaXNwbGF5R3JvdXBzOiEwfSxkaXZpZGVuZHM6e2RlZmF1bHRJdGVtczpbImRwc19jb21tb25fc3RvY2tfcHJpbV9pc3N1ZSIsImRpdmlkZW5kc195aWVsZCJdLGFkZGl0aW9uYWxGaWVsZDowLGRpc3BsYXlHcm91cHM6ITF9LGVhcm5pbmdzOntkZWZhdWx0SXRlbXM6W10sYWRkaXRpb25hbEZpZWxkOjAsZGlzcGxheUdyb3VwczohMX0scmV2ZW51ZTp7ZGVmYXVsdEl0ZW1zOltdLGFkZGl0aW9uYWxGaWVsZDowLGRpc3BsYXlHcm91cHM6ITF9fSxhPXsiaW5jb21lIHN0YXRlbWVudHMiOntkZWZhdWx0SXRlbXM6WyJuZXRfcmV2ZW51ZSIsIm5ldF9yZXZlbnVlX2FmdGVyX3Byb3Zpc2lvbiIsIm9wZXJfaW5jb21lIiwicHJldGF4X2luY29tZSIsIm5ldF9pbmNvbWUiXX19LGk9WyJudW1iZXJfb2ZfZW1wbG95ZWVzIiwibnVtYmVyX29mX3NoYXJlaG9sZGVycyJdLHM9Il9oIjt2YXIgcjshZnVuY3Rpb24oZSl7ZS5ZZWFyPSJfZnkiLGUuUXVhcnRlcj0iX2ZxIixlLkhhbGZZZWFyPSJfZmgiLGUuVFRNPSJfdHRtIixlLk5PQUdHPSJfbm9hZ2ciLGUuQUdHPSJfYWdnIixlLk5GUT0iX25mcSIsZS5ORlk9Il9uZnkiLGUuTkZIPSJfbmZoIixlLk40RlE9Il9uNGZxIixlLk40Rlk9Il9uNGZ5IixlLk40Rkg9Il9uNGZoIixlLk5UTT0iX250bSJ9KHJ8fChyPXt9KSk7Y29uc3QgbD1bIl9meSIsIl9mcSIsIl9maCIsIl90dG0iLCJfbm9hZ2ciLCJfYWdnIiwiX25meSIsIl9uZmgiLCJfbmZxIiwiX240ZnEiLCJfbjRmeSIsIl9uNGZoIiwiX250bSJdfSwyNzM1MDkoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7Q29udGVudE1lbnU6KCk9Pmd9KTt2YXIgbz1uKDc4MzI1NCksYT1uKDc3OTQ3NCksaT1uKDIwODA4MCkscz1uKDM5MTkxNCkscj1uKDk3MjczNCksbD1uKDczMjczMSksYz1uKDI3MzMxMCksZD1uKDc4NDUxMyksdT1uKDIxNDMyKSxtPW4oNTUzNjY5KSxoPW4oMTM2NjMpO2NvbnN0IHA9YS5jcmVhdGVDb250ZXh0KG51bGwpO3ZhciB2PW4oOTU1NTg5KSxmPW4oNTQxMjEyKTtjb25zdCBnPSgwLGEuZm9yd2FyZFJlZikoKGZ1bmN0aW9uKGUsdCl7Y29uc3R7ZGF0YTpzLHN5bWJvbDptLGlzT3BlbjpoLG9uQ2xvc2U6ZyxhbmNob3JlZDpiLHRyYWNraW5nRGF0YTpDLHBsYWNlbWVudFJ1bGVzOngsYWN0dWFsQ29udGVudElkOkUsc2hvd0ZpbmFuY2lhbHM6Xz0hMSxzaG93Q2hhcnQ6eT0hMX09ZSxBPSgwLHUudXNlTWVudUdyb3Vwcykoe2RhdGE6cyxzaG93RmluYW5jaWFsczpffSk7cmV0dXJuIGEuY3JlYXRlRWxlbWVudChwLlByb3ZpZGVyLHt2YWx1ZTp7c3ltYm9sOm0sc3ltYm9sVHlwZTpzLnR5cGUsdHJhY2tpbmdEYXRhOkMsb25TZWxlY3Q6Z319LGEuY3JlYXRlRWxlbWVudChpLlBvcG92ZXJLZXlib2FyZE5hdmlnYXRvcix7aXNPcGVuOmgscGxhY2VtZW50UnVsZXM6eCxvbkNsb3NlOmcsYW5jaG9yZWQ6Yix3aWR0aDpbe2J5OiJjbGFzcyIsY2xhc3NOYW1lOmYubWVudX0se2J5OiJjb250ZW50In1dfSxhLmNyZWF0ZUVsZW1lbnQoImRpdiIse3N0eWxlOntkaXNwbGF5OiJjb250ZW50cyJ9LHJlZjp0fSx5JiZhLmNyZWF0ZUVsZW1lbnQoYS5GcmFnbWVudCxudWxsLGEuY3JlYXRlRWxlbWVudChyLlBvcG92ZXJJdGVtLHt0aXRsZTpvLnQobnVsbCx7Y29udGV4dDoiY29udGVudF9tZW51In0sbig2ODE5MjEpKSxzZWxlY3RlZDohKEUmJnUuQ09OVEVOVF9CVVRUT05fSUNPTlNbRV0pLGxlZnRTbG90OmEuY3JlYXRlRWxlbWVudChjLkljb24se2ljb246dn0pLG9uQ2xpY2s6KCk9PntnKCksZC5hY3R1YWxDb250ZW50LnNldFZhbHVlKG51bGwpfX0pLEJvb2xlYW4oQS5sZW5ndGgpJiZhLmNyZWF0ZUVsZW1lbnQobC5EaXZpZGVyTGlzdEl0ZW0sbnVsbCkpLEEubWFwKCgoZSx0KT0+YS5jcmVhdGVFbGVtZW50KGEuRnJhZ21lbnQse2tleTplLmFuYWx5dGljc1N1Yk1lbnV9LGEuY3JlYXRlRWxlbWVudCh3LHsuLi5lfSksdCE9PUEubGVuZ3RoLTEmJmEuY3JlYXRlRWxlbWVudChsLkRpdmlkZXJMaXN0SXRlbSxudWxsKSkpKSkpKX0pKTtmdW5jdGlvbiB3KGUpe2NvbnN0e3N5bWJvbDp0LHN5bWJvbFR5cGU6bix0cmFja2luZ0RhdGE6byxvblNlbGVjdDppfT0oMCxoLnVzZUVuc3VyZWRDb250ZXh0KShwKTtyZXR1cm4gYS5jcmVhdGVFbGVtZW50KHMuU2VjdGlvblBvcG92ZXJJdGVtLHt0aXRsZTplLnRpdGxlfSxlLml0ZW1zLm1hcCgocz0+YS5jcmVhdGVFbGVtZW50KHIuUG9wb3Zlckl0ZW0se2tleTpzLmlkLHRpdGxlOnMudGl0bGUsc2VsZWN0ZWQ6cy5pc1NlbGVjdGVkLGxlZnRTbG90OmEuY3JlYXRlRWxlbWVudChjLkljb24se2ljb246cy5pY29ufSksb25DbGljazooKT0+e3MuaXNTZWxlY3RlZHx8KCgwLG0udHJhY2tNZXRyaWNzTWVudUFjdGlvbikoey4uLm8sc3ltYm9sX3R5cGU6bj8/bnVsbCxzeW1ib2w6dCxzdWJfbWVudTplLmFuYWx5dGljc1N1Yk1lbnUsCm1lbnVfaXRlbTpzLmFuYWx5dGljc05hbWV9KSxpKCkscy5vbkNsaWNrKCkpfX0pKSkpfX0sMjE0MzIoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7Q09OVEVOVF9CVVRUT05fSUNPTlM6KCk9PlIsdXNlTWVudUdyb3VwczooKT0+Rn0pO3ZhciBvPW4oNzgzMjU0KSxhPW4oMTM4NjM4KSxpPW4oODg5Mzk3KSxzPW4oNzg0NTEzKSxyPW4oODMzNDA5KSxsPW4oMTk5NzQpLGM9big5MjA2MzEpLGQ9bigzMTU4NTApLHU9big2MzEyNTQpLG09bigxMDY5MDApLGg9big4OTgzNzcpLHA9big5MDI4MjkpLHY9bigyNzU4MzUpLGY9bigzOTExODIpLGc9big1MDY3NjcpLHc9big5NTc4NDYpLGI9bigyMzY0MjkpLEM9big1NTEyODIpLHg9bigyMDU0NzIpLEU9big5MjA4OCksXz1uKDUxNDE0MikseT1uKDI5MjM2MCksQT1uKDk4Nzk5MiksTj1uKDkwNzkxMSksUz1uKDE1OTI0NSksST1uKDc5MTY5MyksTz1uKDcyNzI2OSksaz1uKDYwNDkwMSksTD1uKDYyNzA0MSksRD1uKDY2NDQ4MSksUD1uKDMxMDkyNyksVD1uKDc1NTI5NCk7Y29uc3QgUj17ZmluYW5jaWFsczpiLGRvY3VtZW50czpDLG5ld3M6eCxpZGVhczpELHNlYXNvbmFsczpFLGFuYWx5c2lzOl8sdGVjaG5pY2Fsczp5LGZvcmVjYXN0OlAsImZvcndhcmQtY3VydmUiOkEsY29udHJhY3RzOk4sInlpZWxkLWN1cnZlIjpTLCJlY29ub215LWluZGljYXRvcnMiOkksb3B0aW9uczpPLGJvbmRzOmssZXRmczpMLGNvbW11bml0eTpUfTtmdW5jdGlvbiBGKGUpe2NvbnN0e2RhdGE6dCxzaG93RmluYW5jaWFsczpifT1lLEM9KDAsbS51c2VXYXRjaGVkVmFsdWVSZWFkb25seSkoe3dhdGNoZWRWYWx1ZTpzLmFjdHVhbENvbnRlbnR9KTtyZXR1cm5be3RpdGxlOm8udChudWxsLHtjb250ZXh0OiJjb250ZW50X21lbnUifSxuKDk5NTYwMikpLGFuYWx5dGljc1N1Yk1lbnU6IkZ1bmRhbWVudGFscyIsaXRlbXM6SChbe2lkOiJmaW5hbmNpYWxzIix0aXRsZTpvLnQobnVsbCx7Y29udGV4dDoiY29udGVudF9tZW51In0sbigzODAxNTgpKSxhbmFseXRpY3NOYW1lOiJGaW5hbmNpYWxzIixpY29uOmgsb25DbGljazooKT0+KDAsaS5zaG93RmluYW5jaWFsc0RpYWxvZykoKSxoaWRkZW46IShiJiZ0Lmhhc0ZpbmFuY2lhbHMpLGlzU2VsZWN0ZWQ6ImZpbmFuY2lhbHMiPT09Q30se2lkOiJkb2N1bWVudHMiLHRpdGxlOm8udChudWxsLHtjb250ZXh0OiJjb250ZW50X21lbnUifSxuKDc4NzQ0MikpLGFuYWx5dGljc05hbWU6IkRvY3VtZW50cyIsaWNvbjp0LmRvY3VtZW50c0FjdGlvbj8uZ2V0U3RhdGUoKS5pY29uLG9uQ2xpY2s6KCk9PigwLGEuZW5zdXJlTm90TnVsbCkodC5kb2N1bWVudHNBY3Rpb24pLmV4ZWN1dGUoKSxoaWRkZW46dC5kb2N1bWVudHNBY3Rpb24/LmlzRGlzYWJsZWQoKT8/ITAsaXNTZWxlY3RlZDoiZG9jdW1lbnRzIj09PUN9LHtpZDoiYW5hbHlzaXMiLHRpdGxlOm8udChudWxsLHtjb250ZXh0OiJjb250ZW50X21lbnUifSxuKDkyMTY0MikpLGFuYWx5dGljc05hbWU6IlByb2ZpbGUiLGljb246dC5hbmFseXNpc0FjdGlvbj8uZ2V0U3RhdGUoKS5pY29uLG9uQ2xpY2s6KCk9PigwLGEuZW5zdXJlTm90TnVsbCkodC5hbmFseXNpc0FjdGlvbikuZXhlY3V0ZSgpLGhpZGRlbjp0LmFuYWx5c2lzQWN0aW9uPy5pc0Rpc2FibGVkKCk/PyEwLGlzU2VsZWN0ZWQ6ImFuYWx5c2lzIj09PUN9LHtpZDoiZGVyaXZhdGl2ZXMiLHRpdGxlOm8udChudWxsLHtjb250ZXh0OiJjb250ZW50X21lbnUifSxuKDU1ODA2NykpLGFuYWx5dGljc05hbWU6IkRlcml2YXRpdmVzIixpY29uOmcsb25DbGljazooKT0+KDAsYy5zaG93RGVyaXZhdGl2ZXNEaWFsb2cpKCksaGlkZGVuOiF0Lmhhc0Rlcml2YXRpdmVzLGlzU2VsZWN0ZWQ6ImRlcml2YXRpdmVzIj09PUN9XSl9LHt0aXRsZTpvLnQobnVsbCx7Y29udGV4dDoiY29udGVudF9tZW51In0sbigzMzQ0MTUpKSxhbmFseXRpY3NTdWJNZW51OiJBbmFseXNpcyIsaXRlbXM6SChbe2lkOiJ0ZWNobmljYWxzIix0aXRsZTpvLnQobnVsbCx7Y29udGV4dDoiY29udGVudF9tZW51In0sbigxMjEyNzApKSxhbmFseXRpY3NOYW1lOiJUZWNobmljYWxzIixpY29uOncsb25DbGljazooKT0+KDAsci5zaG93VGVjaG5pY2Fsc0RpYWxvZykoe3NuYXBzaG90OnQubGlzdGVkRXhjaGFuZ2UmJnQudHlwZT97bGlzdGVkX2V4Y2hhbmdlOnQubGlzdGVkRXhjaGFuZ2UsdHlwZTp0LnR5cGUsdHlwZXNwZWNzOnQudHlwZXNwZWNzLHByaWNlc2NhbGU6dC5wcmljZXNjYWxlfTp2b2lkIDAsc2hvdWxkRm9yY2VGb2N1czohMX0pLGhpZGRlbjohdC5oYXNUZWNobmljYWxzLGlzU2VsZWN0ZWQ6InRlY2huaWNhbHMiPT09Q30se2lkOiJzZWFzb25hbHMiLHRpdGxlOm8udChudWxsLHtjb250ZXh0OiJjb250ZW50X21lbnUifSxuKDM3ODc1MCkpLGFuYWx5dGljc05hbWU6IlNlYXNvbmFscyIsaWNvbjp0LnNlYXNvbmFsc0FjdGlvbj8uZ2V0U3RhdGUoKS5pY29uLG9uQ2xpY2s6KCk9PigwLGEuZW5zdXJlTm90TnVsbCkodC5zZWFzb25hbHNBY3Rpb24pLmV4ZWN1dGUoKSxoaWRkZW46dC5zZWFzb25hbHNBY3Rpb24/LmlzRGlzYWJsZWQoKT8/ITAsaXNTZWxlY3RlZDoic2Vhc29uYWxzIj09PUN9LHtpZDoiZm9yd2FyZC1jdXJ2ZSIsdGl0bGU6by50KG51bGwse2NvbnRleHQ6ImNvbnRlbnRfbWVudSJ9LG4oNjY4NjgwKSksYW5hbHl0aWNzTmFtZToiRm9yd2FyZCBjdXJ2ZSIsaWNvbjpmLG9uQ2xpY2s6KCk9PigwLGwuc2hvd0ZvcndhcmRDdXJ2ZURpYWxvZykoKSxoaWRkZW46IXQuaGFzRm9yd2FyZEN1cnZlLGlzU2VsZWN0ZWQ6ImZvcndhcmQtY3VydmUiPT09Q30se2lkOiJ5aWVsZC1jdXJ2ZSIsdGl0bGU6by50KG51bGwse2NvbnRleHQ6ImNvbnRlbnRfbWVudSJ9LG4oNjE2MTgwKSksYW5hbHl0aWNzTmFtZToiWWllbGQgY3VydmUiLGljb246cCxvbkNsaWNrOigpPT4oMCx1LnNob3dCb25kWWllbGRDdXJ2ZURpYWxvZykoKSxoaWRkZW46IXQuaGFzWWllbGRDdXJ2ZSxpc1NlbGVjdGVkOiJ5aWVsZC1jdXJ2ZSI9PT1DfSx7aWQ6Im5ld3MiLHRpdGxlOm8udChudWxsLHtjb250ZXh0OiJjb250ZW50X21lbnUifSxuKDg0MzUyMCkpLGFuYWx5dGljc05hbWU6Ik5ld3MiLAppY29uOnQubmV3c0FjdGlvbj8uZ2V0U3RhdGUoKS5pY29uLG9uQ2xpY2s6KCk9PigwLGEuZW5zdXJlTm90TnVsbCkodC5uZXdzQWN0aW9uKS5leGVjdXRlKCksaGlkZGVuOnQubmV3c0FjdGlvbj8uaXNEaXNhYmxlZCgpPz8hMCxpc1NlbGVjdGVkOiJuZXdzIj09PUN9LHtpZDoiZm9yZWNhc3QiLHRpdGxlOm8udChudWxsLHtjb250ZXh0OiJjb250ZW50X21lbnUifSxuKDUzNDAyNykpLGFuYWx5dGljc05hbWU6IkZvcmVjYXN0IixpY29uOnQuZm9yZWNhc3RBY3Rpb24/LmdldFN0YXRlKCkuaWNvbixvbkNsaWNrOigpPT4oMCxhLmVuc3VyZU5vdE51bGwpKHQuZm9yZWNhc3RBY3Rpb24pLmV4ZWN1dGUoKSxoaWRkZW46dC5mb3JlY2FzdEFjdGlvbj8uaXNEaXNhYmxlZCgpPz8hMCxpc1NlbGVjdGVkOiJmb3JlY2FzdCI9PT1DfSx7aWQ6ImVjb25vbXktaW5kaWNhdG9ycyIsdGl0bGU6by50KG51bGwse2NvbnRleHQ6ImNvbnRlbnRfbWVudSJ9LG4oMzg4Nzg2KSksYW5hbHl0aWNzTmFtZToiRWNvbm9teSBpbmRpY2F0b3JzIixpY29uOnQuZWNvbm9teUluZGljYXRvcnNBY3Rpb24/LmdldFN0YXRlKCkuaWNvbixvbkNsaWNrOigpPT4oMCxhLmVuc3VyZU5vdE51bGwpKHQuZWNvbm9teUluZGljYXRvcnNBY3Rpb24pLmV4ZWN1dGUoKSxoaWRkZW46dC5lY29ub215SW5kaWNhdG9yc0FjdGlvbj8uaXNEaXNhYmxlZCgpPz8hMCxpc1NlbGVjdGVkOiJlY29ub215LWluZGljYXRvcnMiPT09Q30se2lkOiJjb21tdW5pdHkiLHRpdGxlOm8udChudWxsLHtjb250ZXh0OiJjb250ZW50X21lbnUifSxuKDcxMzkwNSkpLGFuYWx5dGljc05hbWU6IkNvbW11bml0eSIsaWNvbjp0LmNvbW11bml0eUFjdGlvbj8uZ2V0U3RhdGUoKS5pY29uLG9uQ2xpY2s6KCk9PigwLGEuZW5zdXJlTm90TnVsbCkodC5jb21tdW5pdHlBY3Rpb24pLmV4ZWN1dGUoKSxoaWRkZW46dC5jb21tdW5pdHlBY3Rpb24/LmlzRGlzYWJsZWQoKT8/ITAsaXNTZWxlY3RlZDoiY29tbXVuaXR5Ij09PUN9XSl9LHt0aXRsZTpvLnQobnVsbCx7Y29udGV4dDoiY29udGVudF9tZW51In0sbig2MTI1NSkpLGFuYWx5dGljc1N1Yk1lbnU6Ikluc3RydW1lbnRzIixpdGVtczpIKFt7aWQ6ImNvbnRyYWN0cyIsdGl0bGU6by50KG51bGwse2NvbnRleHQ6ImNvbnRlbnRfbWVudSJ9LG4oMjQ1MTQ3KSksYW5hbHl0aWNzTmFtZToiQ29udHJhY3RzIixpY29uOnYsb25DbGljazooKT0+KDAsZC5zaG93Q29udHJhY3RzRGlhbG9nKSgpLGhpZGRlbjohdC5oYXNDb250cmFjdHMsaXNTZWxlY3RlZDoiY29udHJhY3RzIj09PUN9LHtpZDoib3B0aW9ucyIsdGl0bGU6by50KG51bGwse2NvbnRleHQ6ImNvbnRlbnRfbWVudSJ9LG4oOTU0MTExKSksYW5hbHl0aWNzTmFtZToiT3B0aW9ucyIsaWNvbjp0Lm9wdGlvbnNBY3Rpb24/LmdldFN0YXRlKCkuaWNvbixvbkNsaWNrOigpPT4oMCxhLmVuc3VyZU5vdE51bGwpKHQub3B0aW9uc0FjdGlvbikuZXhlY3V0ZSgpLGhpZGRlbjp0Lm9wdGlvbnNBY3Rpb24/LmlzRGlzYWJsZWQoKT8/ITAsaXNTZWxlY3RlZDoib3B0aW9ucyI9PT1DfSx7aWQ6ImJvbmRzIix0aXRsZTpvLnQobnVsbCx7Y29udGV4dDoiY29udGVudF9tZW51In0sbig2MDIxMTMpKSxhbmFseXRpY3NOYW1lOiJCb25kcyIsaWNvbjp0LnN0b2NrQm9uZHNBY3Rpb24/LmdldFN0YXRlKCkuaWNvbixvbkNsaWNrOigpPT4oMCxhLmVuc3VyZU5vdE51bGwpKHQuc3RvY2tCb25kc0FjdGlvbikuZXhlY3V0ZSgpLGhpZGRlbjp0LnN0b2NrQm9uZHNBY3Rpb24/LmlzRGlzYWJsZWQoKT8/ITAsaXNTZWxlY3RlZDoiYm9uZHMiPT09Q30se2lkOiJldGZzIix0aXRsZTpvLnQobnVsbCx7Y29udGV4dDoiY29udGVudF9tZW51In0sbig5Mjc4OSkpLGFuYWx5dGljc05hbWU6IkVURnMiLGljb246dC5ldGZzQWN0aW9uPy5nZXRTdGF0ZSgpLmljb24sb25DbGljazooKT0+KDAsYS5lbnN1cmVOb3ROdWxsKSh0LmV0ZnNBY3Rpb24pLmV4ZWN1dGUoKSxoaWRkZW46dC5ldGZzQWN0aW9uPy5pc0Rpc2FibGVkKCk/PyEwLGlzU2VsZWN0ZWQ6ImV0ZnMiPT09Q31dKX1dLmZpbHRlcigoZT0+ZS5pdGVtcy5sZW5ndGgpKX1mdW5jdGlvbiBIKGUpe3JldHVybiBlLmZpbHRlcigoZT0+IWUuaGlkZGVufHxlLmlzU2VsZWN0ZWQpKX19LDYwMzYxMihlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtDTE9TRV9QT1BVUFNfQU5EX0RJQUxPR1NfQ09NTUFORDooKT0+byxicmVha3BvaW50TGlzdDooKT0+aX0pO2NvbnN0IG89IkNMT1NFX1BPUFVQU19BTkRfRElBTE9HU19DT01NQU5EIjt2YXIgYTshZnVuY3Rpb24oZSl7ZVtlLk1vYmlsZT0wXT0iTW9iaWxlIixlW2UuVGFibGV0U21hbGw9NDgwXT0iVGFibGV0U21hbGwiLGVbZS5UYWJsZXQ9NzY4XT0iVGFibGV0IixlW2UuVGFibGV0TGFyZ2U9MTAyNF09IlRhYmxldExhcmdlIixlW2UuRGVza3RvcFNtYWxsPTEyODBdPSJEZXNrdG9wU21hbGwiLGVbZS5EZXNrdG9wPTE0NDBdPSJEZXNrdG9wIixlW2UuRGVza3RvcExhcmdlPTE5MjBdPSJEZXNrdG9wTGFyZ2UifShhfHwoYT17fSkpO2NvbnN0IGk9WzE5MjAsMTQ0MCwxMjgwLDEwMjQsNzY4LDQ4MCwwXX0sMzE1ODUwKGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse3Nob3dDb250cmFjdHNEaWFsb2c6KCk9PmF9KTt2YXIgbz1uKDg5MDgzNSk7ZnVuY3Rpb24gYShlKXtvLmN1cnJlbnRMYXlvdXQudmFsdWUoKT8uc2hvd0FuYWx5c2lzVmlldygiY29udHJhY3RzIixlKX19LDM2MTMwNyhlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtFcnJvckljb246KCk9PmN9KTt2YXIgbz1uKDc3OTQ3NCksYT1uKDkxNDQ4NyksaT1uLm4oYSkscz1uKDI3MzMxMCkscj1uKDY3NzQzNyksbD1uKDkxMzkxMCk7ZnVuY3Rpb24gYyhlKXtjb25zdHtpbnRlbnQ6dD0iZGFuZ2VyIn09ZTtyZXR1cm4gby5jcmVhdGVFbGVtZW50KHMuSWNvbix7aWNvbjpyLGNsYXNzTmFtZTppKCkobFsiZXJyb3ItaWNvbiJdLGxbYGludGVudC0ke3R9YF0pfSl9fSwzNjkzODQoZSl7InVzZSBzdHJpY3QiO2NvbnN0IHQ9MjE0NzQ4MzY0NyxuPTM2LG89L154bi0tLyxhPS9bXlwwLVx4N0VdLyxpPS9bXHgyRVx1MzAwMlx1RkYwRVx1RkY2MV0vZyxzPXsKb3ZlcmZsb3c6Ik92ZXJmbG93OiBpbnB1dCBuZWVkcyB3aWRlciBpbnRlZ2VycyB0byBwcm9jZXNzIiwibm90LWJhc2ljIjoiSWxsZWdhbCBpbnB1dCA+PSAweDgwIChub3QgYSBiYXNpYyBjb2RlIHBvaW50KSIsImludmFsaWQtaW5wdXQiOiJJbnZhbGlkIGlucHV0In0scj1NYXRoLmZsb29yLGw9U3RyaW5nLmZyb21DaGFyQ29kZTtmdW5jdGlvbiBjKGUpe3Rocm93IG5ldyBSYW5nZUVycm9yKHNbZV0pfWZ1bmN0aW9uIGQoZSx0KXtjb25zdCBuPWUuc3BsaXQoIkAiKTtsZXQgbz0iIjtuLmxlbmd0aD4xJiYobz1uWzBdKyJAIixlPW5bMV0pO2NvbnN0IGE9ZnVuY3Rpb24oZSx0KXtjb25zdCBuPVtdO2xldCBvPWUubGVuZ3RoO2Zvcig7by0tOyluW29dPXQoZVtvXSk7cmV0dXJuIG59KChlPWUucmVwbGFjZShpLCIuIikpLnNwbGl0KCIuIiksdCkuam9pbigiLiIpO3JldHVybiBvK2F9ZnVuY3Rpb24gdShlKXtjb25zdCB0PVtdO2xldCBuPTA7Y29uc3Qgbz1lLmxlbmd0aDtmb3IoO248bzspe2NvbnN0IGE9ZS5jaGFyQ29kZUF0KG4rKyk7aWYoYT49NTUyOTYmJmE8PTU2MzE5JiZuPG8pe2NvbnN0IG89ZS5jaGFyQ29kZUF0KG4rKyk7NTYzMjA9PSg2NDUxMiZvKT90LnB1c2goKCgxMDIzJmEpPDwxMCkrKDEwMjMmbykrNjU1MzYpOih0LnB1c2goYSksbi0tKX1lbHNlIHQucHVzaChhKX1yZXR1cm4gdH1jb25zdCBtPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIGUrMjIrNzUqKGU8MjYpLSgoMCE9dCk8PDUpfSxoPWZ1bmN0aW9uKGUsdCxvKXtsZXQgYT0wO2ZvcihlPW8/cihlLzcwMCk6ZT4+MSxlKz1yKGUvdCk7ZT40NTU7YSs9billPXIoZS8zNSk7cmV0dXJuIHIoYSszNiplLyhlKzM4KSl9LHA9ZnVuY3Rpb24oZSl7Y29uc3Qgbz1bXSxhPWUubGVuZ3RoO2xldCBpPTAscz0xMjgsbD03MixkPWUubGFzdEluZGV4T2YoIi0iKTtkPDAmJihkPTApO2ZvcihsZXQgdD0wO3Q8ZDsrK3QpZS5jaGFyQ29kZUF0KHQpPj0xMjgmJmMoIm5vdC1iYXNpYyIpLG8ucHVzaChlLmNoYXJDb2RlQXQodCkpO2ZvcihsZXQgbT1kPjA/ZCsxOjA7bTxhOyl7bGV0IGQ9aTtmb3IobGV0IG89MSxzPW47O3MrPW4pe20+PWEmJmMoImludmFsaWQtaW5wdXQiKTtjb25zdCBkPSh1PWUuY2hhckNvZGVBdChtKyspKS00ODwxMD91LTIyOnUtNjU8MjY/dS02NTp1LTk3PDI2P3UtOTc6bjsoZD49bnx8ZD5yKCh0LWkpL28pKSYmYygib3ZlcmZsb3ciKSxpKz1kKm87Y29uc3QgaD1zPD1sPzE6cz49bCsyNj8yNjpzLWw7aWYoZDxoKWJyZWFrO2NvbnN0IHA9bi1oO28+cih0L3ApJiZjKCJvdmVyZmxvdyIpLG8qPXB9Y29uc3QgcD1vLmxlbmd0aCsxO2w9aChpLWQscCwwPT1kKSxyKGkvcCk+dC1zJiZjKCJvdmVyZmxvdyIpLHMrPXIoaS9wKSxpJT1wLG8uc3BsaWNlKGkrKywwLHMpfXZhciB1O3JldHVybiBTdHJpbmcuZnJvbUNvZGVQb2ludCguLi5vKX0sdj1mdW5jdGlvbihlKXtjb25zdCBvPVtdO2xldCBhPShlPXUoZSkpLmxlbmd0aCxpPTEyOCxzPTAsZD03Mjtmb3IoY29uc3QgdCBvZiBlKXQ8MTI4JiZvLnB1c2gobCh0KSk7bGV0IHA9by5sZW5ndGgsdj1wO2ZvcihwJiZvLnB1c2goIi0iKTt2PGE7KXtsZXQgYT10O2Zvcihjb25zdCB0IG9mIGUpdD49aSYmdDxhJiYoYT10KTtjb25zdCB1PXYrMTthLWk+cigodC1zKS91KSYmYygib3ZlcmZsb3ciKSxzKz0oYS1pKSp1LGk9YTtmb3IoY29uc3QgYSBvZiBlKWlmKGE8aSYmKytzPnQmJmMoIm92ZXJmbG93IiksYT09aSl7bGV0IGU9cztmb3IobGV0IHQ9bjs7dCs9bil7Y29uc3QgYT10PD1kPzE6dD49ZCsyNj8yNjp0LWQ7aWYoZTxhKWJyZWFrO2NvbnN0IGk9ZS1hLHM9bi1hO28ucHVzaChsKG0oYStpJXMsMCkpKSxlPXIoaS9zKX1vLnB1c2gobChtKGUsMCkpKSxkPWgocyx1LHY9PXApLHM9MCwrK3Z9KytzLCsraX1yZXR1cm4gby5qb2luKCIiKX0sZj17dmVyc2lvbjoiMi4xLjAiLHVjczI6e2RlY29kZTp1LGVuY29kZTplPT5TdHJpbmcuZnJvbUNvZGVQb2ludCguLi5lKX0sZGVjb2RlOnAsZW5jb2RlOnYsdG9BU0NJSTpmdW5jdGlvbihlKXtyZXR1cm4gZChlLChmdW5jdGlvbihlKXtyZXR1cm4gYS50ZXN0KGUpPyJ4bi0tIit2KGUpOmV9KSl9LHRvVW5pY29kZTpmdW5jdGlvbihlKXtyZXR1cm4gZChlLChmdW5jdGlvbihlKXtyZXR1cm4gby50ZXN0KGUpP3AoZS5zbGljZSg0KS50b0xvd2VyQ2FzZSgpKTplfSkpfX07ZS5leHBvcnRzPWZ9LDMwOTgzNihlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHthZGRVdG1Ub1VybDooKT0+YX0pO3ZhciBvPW4oNjAxNTg3KTtmdW5jdGlvbiBhKGUsdCl7aWYoIS8oW2EtekEtWjAtOS4tXSp0cmFkaW5ndmlldy5jb20pfGxvY2FsaG9zdC8udGVzdChlKSlyZXR1cm4gZTtjb25zdCBuPSgwLG8uYnVpbGRVdG1RdWVyeVN0cmluZykodCk7aWYoIiI9PT1uKXJldHVybiBlO2NvbnN0IGE9ZS5pbmRleE9mKCI/IiksaT1lLmluZGV4T2YoIiMiKSxzPS0xIT09aTtpZigtMSE9PWEmJighc3x8YTxpKSl7cmV0dXJuYCR7ZS5zbGljZSgwLGEpfT8ke3M/ZS5zbGljZShhKzEsaSk6ZS5zbGljZShhKzEpfSYke259JHtzP2Uuc2xpY2UoaSk6IiJ9YH1pZihzKXtyZXR1cm5gJHtlLnNsaWNlKDAsaSl9PyR7bn0ke2Uuc2xpY2UoaSl9YH1yZXR1cm5gJHtlfT8ke259YH19LDYwMTU4NyhlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtidWlsZFV0bVF1ZXJ5U3RyaW5nOigpPT5yLGJ1aWxkVXRtUXVlcnlTdHJpbmdGcm9tVXJsUGFyYW1zOigpPT5sLGZpbHRlclV0bUluZm86KCk9PnN9KTt2YXIgbz1uKDQ5MjY3NyksYT1uKDY0MTU5Myk7Y29uc3QgaT1bInV0bV9zb3VyY2UiLCJ1dG1fbWVkaXVtIiwidXRtX2NhbXBhaWduIl07ZnVuY3Rpb24gcyhlKXtjb25zdCB0PXt9O3JldHVybiBpLmZvckVhY2goKG49Pntjb25zdCBvPWVbbl07InN0cmluZyI9PXR5cGVvZiBvJiYiIiE9PW8mJih0W25dPSgwLGEuaHRtbEVzY2FwZSkobykpfSkpLHR9ZnVuY3Rpb24gcihlLHQ9ITEpe2NvbnN0IG49KDAsby5jcmVhdGVVcmxQYXJhbXMpKGUpO3JldHVybiBuJiZ0PyI/IituOm59ZnVuY3Rpb24gbChlKXtyZXR1cm4gcihzKCgwLG8uZ2V0VXJsUGFyYW1zKSgpKSxlKX19LDY1OTkwMShlKXsKZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDI4IDI4IiB3aWR0aD0iMjgiIGhlaWdodD0iMjgiPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZD0iTTcuNSAxM2ExLjUgMS41IDAgMSAwIDAgMyAxLjUgMS41IDAgMCAwIDAtM3pNNSAxNC41YTIuNSAyLjUgMCAxIDEgNSAwIDIuNSAyLjUgMCAwIDEtNSAwem05LjUtMS41YTEuNSAxLjUgMCAxIDAgMCAzIDEuNSAxLjUgMCAwIDAgMC0zek0xMiAxNC41YTIuNSAyLjUgMCAxIDEgNSAwIDIuNSAyLjUgMCAwIDEtNSAwem05LjUtMS41YTEuNSAxLjUgMCAxIDAgMCAzIDEuNSAxLjUgMCAwIDAgMC0zek0xOSAxNC41YTIuNSAyLjUgMCAxIDEgNSAwIDIuNSAyLjUgMCAwIDEtNSAweiIvPjwvc3ZnPid9LDE5NDY0OChlKXtlLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMTggMTgiIHdpZHRoPSIxOCIgaGVpZ2h0PSIxOCI+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBkPSJtNC42NyA3LjM4LjY2LS43Nkw5IDkuODRsMy42Ny0zLjIyLjY2Ljc2TDkgMTEuMTYgNC42NyA3LjM4WiIvPjwvc3ZnPid9LDU0MzMzOShlKXtlLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMTggMTgiIHdpZHRoPSIxOCIgaGVpZ2h0PSIxOCI+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBkPSJtNC42NyAxMC42Mi42Ni43Nkw5IDguMTZsMy42NyAzLjIyLjY2LS43Nkw5IDYuODRsLTQuMzMgMy43OFoiLz48L3N2Zz4nfSw3NTUyOTQoZSl7ZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDE4IDE4IiB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIGZpbGw9Im5vbmUiPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZD0iTTcgMTBhMyAzIDAgMCAxIDMgM0g5YTIgMiAwIDAgMC0yLTJINGEyIDIgMCAwIDAtMiAySDFhMyAzIDAgMCAxIDMtM3ptNyAwYTMgMyAwIDAgMSAzIDNoLTFhMiAyIDAgMCAwLTItMmgtNHYtMXpNNS44NTcgNC4wMDVhMi4zIDIuMyAwIDAgMSAyLjEzOCAyLjEzOEM4IDYuMjIgOCA2LjMxNSA4IDYuNXMwIC4yOC0uMDA1LjM1N2wtLjAyNC4yMTJhMi4zIDIuMyAwIDAgMS0yLjExNCAxLjkyNkw1LjUgOWwtLjM1Ny0uMDA1QTIuMyAyLjMgMCAwIDEgMy4wMjkgNy4wN2wtLjAyNC0uMjEyQzMgNi43OCAzIDYuNjg1IDMgNi41czAtLjI4LjAwNS0uMzU3YTIuMyAyLjMgMCAwIDEgMi4xMzgtMi4xMzhDNS4yMiA0IDUuMzE1IDQgNS41IDRzLjI4IDAgLjM1Ny4wMDVtNyAwYTIuMyAyLjMgMCAwIDEgMi4xMzggMi4xMzhDMTUgNi4yMiAxNSA2LjMxNSAxNSA2LjVzMCAuMjgtLjAwNS4zNTdsLS4wMjQuMjEyYTIuMyAyLjMgMCAwIDEtMi4xMTQgMS45MjZMMTIuNSA5bC0uMzU3LS4wMDVhMi4zIDIuMyAwIDAgMS0yLjExNC0xLjkyNmwtLjAyNC0uMjEyQzEwIDYuNzggMTAgNi42ODUgMTAgNi41czAtLjI4LjAwNS0uMzU3YTIuMyAyLjMgMCAwIDEgMi4xMzgtMi4xMzhDMTIuMjIgNCAxMi4zMTUgNCAxMi41IDRzLjI4IDAgLjM1Ny4wMDVtLTcuNjQ2Ljk5OEExLjMgMS4zIDAgMCAwIDQuMDAzIDYuMjEgNiA2IDAgMCAwIDQgNi41YzAgLjIwMSAwIC4yNTMuMDAzLjI5QTEuMyAxLjMgMCAwIDAgNS4yMSA3Ljk5NkM1LjI0NyA4IDUuMjk4IDggNS41IDhzLjI1MyAwIC4yOS0uMDAzQTEuMyAxLjMgMCAwIDAgNi45OTYgNi43OUM3IDYuNzUzIDcgNi43MDEgNyA2LjVzMC0uMjUzLS4wMDMtLjI4OUExLjMgMS4zIDAgMCAwIDUuNzkgNS4wMDMgNiA2IDAgMCAwIDUuNSA1YTYgNiAwIDAgMC0uMjkuMDAzbTcgMGExLjMgMS4zIDAgMCAwLTEuMjA4IDEuMjA4QTYgNiAwIDAgMCAxMSA2LjVjMCAuMjAxIDAgLjI1My4wMDMuMjlhMS4zIDEuMyAwIDAgMCAxLjIwOCAxLjIwN2MuMDM2LjAwMy4wODcuMDAzLjI4OS4wMDNzLjI1MyAwIC4yOS0uMDAzYTEuMyAxLjMgMCAwIDAgMS4yMDctMS4yMDhDMTQgNi43NTMgMTQgNi43MDEgMTQgNi41czAtLjI1My0uMDAzLS4yODlhMS4zIDEuMyAwIDAgMC0xLjIwOC0xLjIwOEE2IDYgMCAwIDAgMTIuNSA1Yy0uMjAyIDAtLjI1MyAwLS4yOS4wMDMiLz48L3N2Zz4nfSwyNzU4MzUoZSl7ZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDI4IDI4IiB3aWR0aD0iMjgiIGhlaWdodD0iMjgiIGZpbGw9Im5vbmUiPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZD0iTTIyIDI0SDZWNGgxNnpNNyAyM2gxNFY1SDd6bTEyLTUuMzM1TDE1Ljg2MyAyMWwtMi4xMjktMS41MzEuNTc5LS44MTYgMS40MTggMS4wMDhMMTguMjU0IDE3ek0xNSAxNEg5di0xaDZ6bTQtM0g5di0xaDEwem0wLTNIOVY3aDEweiIvPjwvc3ZnPid9LDUwNjc2NyhlKXsKZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDI4IDI4IiB3aWR0aD0iMjgiIGhlaWdodD0iMjgiIGZpbGw9Im5vbmUiPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZD0iTTIyLjUgN2EyLjUgMi41IDAgMSAxLTIuNDUgM0gxOC41YS41LjUgMCAwIDAtLjUuNXY3YS41LjUgMCAwIDAgLjUuNWgxLjU1YTIuNTAxIDIuNTAxIDAgMSAxIDAgMUgxOC41YTEuNSAxLjUgMCAwIDEtMS41LTEuNXYtM2gtMi4wMjNBNS45OTkgNS45OTkgMCAwIDEgMyAxNGE2IDYgMCAwIDEgMTEuOTc4LS41SDE3di0zQTEuNSAxLjUgMCAwIDEgMTguNSA5aDEuNTVhMi41IDIuNSAwIDAgMSAyLjQ1LTJtMCAxMGExLjUgMS41IDAgMSAwIDAgMyAxLjUgMS41IDAgMCAwIDAtM005IDlhNSA1IDAgMSAwIDAgMTBBNSA1IDAgMCAwIDkgOW0uNSAyLjAxM2ExLjcgMS43IDAgMCAxIDEuNSAxLjY4OGgtMWEuNy43IDAgMCAwLS43LS43aC0uNTVhLjc1Ljc1IDAgMCAwIDAgMS41MDFoLjVhMS43NDkgMS43NDkgMCAwIDEgLjI1IDMuNDc4VjE4aC0xdi0xLjAxMkExLjY5IDEuNjkgMCAwIDEgNyAxNS4zMTFoMWMwIC4zOC4zMDkuNjkuNjkuNjloLjU2YS43NS43NSAwIDAgMCAwLTEuNDk5aC0uNWExLjc1IDEuNzUgMCAwIDEtLjI1LTMuNDgyVjEwaDF6TTIyLjUgOGExLjUgMS41IDAgMSAwIDAgMyAxLjUgMS41IDAgMCAwIDAtMyIvPjwvc3ZnPid9LDg5ODM3NyhlKXtlLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMjggMjgiIHdpZHRoPSIyOCIgaGVpZ2h0PSIyOCIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBkPSJNMjIgN3YxNUg1di02aDR2LTZoNXYzaDNWN3pNNiAyMWgzdi00SDZ6bTQtMTB2MTBoM1YxMXptNCAxMGgzdi03aC0zem00IDBoM1Y4aC0zeiIvPjwvc3ZnPid9LDMxMDkyNyhlKXtlLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMTggMTgiIHdpZHRoPSIxOCIgaGVpZ2h0PSIxOCIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBkPSJNMTAgMTVIOXYtMmgxem02LjAwMS02aC0xVjYuNjQ4bC01LjMyNCA0Ljk1Ni0uMzM0LS4yNS0zLjMxNy0yLjQ3N0wyLjY4MiAxMiAyIDExLjI3bDMuOTU2LTMuNjk0IDMuNjUgMi43MjdMMTQuMjMgNkgxMlY1aDQuMDAxek0xMCA4SDlWNmgxem0wLTRIOVYyaDF6Ii8+PC9zdmc+J30sNjY0NDgxKGUpe2UuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxOCAxOCIgd2lkdGg9IjE4IiBoZWlnaHQ9IjE4IiBmaWxsPSJub25lIj48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGQ9Ik05IDJjMy4yOTUgMCA2IDIuNTc1IDYgNS43OTIgMCAxLjc1My0uNzIzIDMuMzQtMiA0LjQwOFYxNGgtMS45OXYySDcuMDA2di0ySDUuMDA0di0xLjc2NUMzLjc4IDExLjE0OCAzIDkuNDk0IDMgNy43OTIgMy4wMDEgNC41NzUgNS43MDUgMiA5IDJtLS45OTQgMTNoMi4wMDR2LTFIOC4wMDZ6bS0yLjAwMi0zdjFIMTJ2LTF6TTkgM0M2LjIyIDMgNC4wMDEgNS4xNjMgNC4wMDEgNy43OTJjMCAxLjE3OC40NTUgMi4zMzUgMS4xOTIgMy4yMDhoMy4zMTVWOEg2LjAwNFY3aDYuMDA4djFIOS41MDh2M2gzLjNDMTMuNTcgMTAuMTU2IDE0IDkuMDM0IDE0IDcuNzkyIDE0IDUuMTYzIDExLjc4IDMgOSAzIi8+PC9zdmc+J30sOTU1NTg5KGUpe2UuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyOCAyOCIgd2lkdGg9IjI4IiBoZWlnaHQ9IjI4IiBmaWxsPSJub25lIj48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGQ9Ik0yNSAxMy4xODIgMTQgMjUgMyAxMy4xODIgNi42NjcgNWgxNC42NjZ6bS0yMC44MTctLjE5N0wxNCAyMy41MzFsOS44MTYtMTAuNTQ2TDIwLjY4NiA2SDcuMzE0ek0xNC41IDEwSDE2djZoLTEuNXYyaC0xdi0ySDEydi02aDEuNVY4aDF6TTEzIDE1aDJ2LTRoLTJ6Ii8+PC9zdmc+J30sMzkxMTgyKGUpe2UuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyOCAyOCIgd2lkdGg9IjI4IiBoZWlnaHQ9IjI4IiBmaWxsPSJub25lIj48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGQ9Ik04IDIwaDE1djFIOHY0SDdWM2gxek0yMi4wMDUgNWMwIDQuOTAzLS44MyA4LjE1LTIuMjM1IDEwLjE4MkMxOC4zNCAxNy4yNDkgMTYuMzU3IDE4IDE0LjI0MSAxOGMtMS40NTYgMC0yLjk2Mi0uMzgtNC4yMzktMS4xMzZsLjUxLS44NjFjMS4xMTIuNjU4IDIuNDQuOTk3IDMuNzMuOTk3IDEuODQ3IDAgMy40OTUtLjYzNiA0LjcwNi0yLjM4NyAxLjIzNi0xLjc4NiAyLjA1Ny00Ljc5IDIuMDU3LTkuNjEzeiIvPjwvc3ZnPid9LDkwMjgyOShlKXtlLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMjggMjgiIHdpZHRoPSIyOCIgaGVpZ2h0PSIyOCIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBkPSJNNSAyNkg0VjJoMXpNMjMgOC41MDFsLTMuMzI4IDMuMDAxLS4zMzUtLjM3MS0uMzM1LS4zNzJMMjAuOTUyIDlIMjAuNWMtMy45MzggMC03LjQxMyAxLjk4LTkuNDg1IDQuOTk4IDIuMDcyIDMuMDE5IDUuNTQ1IDUgOS40ODMgNS4wMDFoLjQ1MkwxOSAxNy4yNDJsLjY3LS43NDIgMy4zMjggMy0zLjMyOCAzLjAwMi0uNjctLjc0NEwyMC45NSAyMGgtLjQ1MmExMi40OCAxMi40OCAwIDAgMS0xMC4wNTYtNS4wNzhBMTEuNDUgMTEuNDUgMCAwIDAgOSAyMC41VjIzSDh2LTIuNDk5YzAtNi45MDMgNS41OTctMTIuNSAxMi41LTEyLjVoLjQ1MmwtMS45NS0xLjc1OC42Ny0uNzQzek04Ljk5OCA3LjUwMmMwIDEuNjM1LjM0NCAzLjE4OS45NTkgNC41OTdxLS4zNTUuNDUyLS42NjcuOTM2YTEyLjQ1IDEyLjQ1IDAgMCAxLTEuMjkyLTUuNTMzdi0yLjVoLjVsLjUtLjAwMXoiLz48L3N2Zz4nfSwxMjU4OTcoZSl7CmUuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMSA5IiB3aWR0aD0iMTEiIGhlaWdodD0iOSIgZmlsbD0ibm9uZSI+PHBhdGggc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiIgZD0iTTAuOTk5ODc4IDRMMy45OTk4OCA3TDkuOTk5ODggMSIvPjwvc3ZnPid9LDY3MDEyNShlKXtlLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMjggMjgiIHdpZHRoPSIyOCIgaGVpZ2h0PSIyOCI+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBkPSJNMTUgNkg3LjVDNi42NyA2IDYgNi42NyA2IDcuNXYxM2MwIC44My42NyAxLjUgMS41IDEuNWgxM2MuODMgMCAxLjUtLjY3IDEuNS0xLjVWMTZoMXY0LjVhMi41IDIuNSAwIDAgMS0yLjUgMi41aC0xM0EyLjUgMi41IDAgMCAxIDUgMjAuNXYtMTNBMi41IDIuNSAwIDAgMSA3LjUgNUgxNXYxWiIvPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZD0iTTIyLjQxIDUuN2EyIDIgMCAwIDAtMi44MiAwTDExIDE0LjNWMThoMy43bDguNi04LjU5YTIgMiAwIDAgMCAwLTIuODJsLS44OS0uODhabS0yLjEyLjcxYTEgMSAwIDAgMSAxLjQyIDBsLjg4Ljg4YTEgMSAwIDAgMSAwIDEuNDJsLS41OS41OEwxOS43IDdsLjYtLjU5Wm0xIDMuNTktNyA3SDEydi0yLjNsNy03IDIuMyAyLjNaIi8+PC9zdmc+J30sNjc3NDM3KGUpe2UuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxOCAxOCIgd2lkdGg9IjE4IiBoZWlnaHQ9IjE4Ij48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTkgMTZBNyA3IDAgMSAwIDkgMmE3IDcgMCAwIDAgMCAxNFptMCAxQTggOCAwIDEgMCA5IDFhOCA4IDAgMCAwIDAgMTZaTTggNWExIDEgMCAwIDEgMiAwdjRhMSAxIDAgMSAxLTIgMFY1Wm0xIDdhMSAxIDAgMSAwIDAgMiAxIDEgMCAwIDAgMC0yWiIvPjwvc3ZnPid9LDYwNDkwMShlKXtlLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMTggMTgiIHdpZHRoPSIxOCIgaGVpZ2h0PSIxOCI+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBkPSJNMTQgMTVINFYzaDEwem0tOS0xaDhWNEg1em00LjUtOGEyIDIgMCAwIDEgMiAyaC0xYTEgMSAwIDAgMC0xLTFIOC4yNWEuNzUuNzUgMCAwIDAgMCAxLjVoMS41YTEuNzUgMS43NSAwIDEgMSAwIDMuNUg5LjV2MWgtMXYtMWEyIDIgMCAwIDEtMi0yaDFhMSAxIDAgMCAwIDEgMWgxLjI1YS43NS43NSAwIDAgMCAwLTEuNWgtMS41YTEuNzUgMS43NSAwIDEgMSAwLTMuNWguMjVWNWgxeiIvPjwvc3ZnPid9LDkwNzkxMShlKXtlLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMTggMTgiIHdpZHRoPSIxOCIgaGVpZ2h0PSIxOCI+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBkPSJNMTQgMTVINFYzaDEwem0tOS0xaDhWNEg1em03LTMuMjktMi4zMyAyLjNMOCAxMS42bC42NS0uNzcuOTYuODFMMTEuMyAxMHpNOSA5SDZWOGgzem0zLTJINlY2aDZ6Ii8+PC9zdmc+J30sNTUxMjgyKGUpe2UuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxOCAxOCIgd2lkdGg9IjE4IiBoZWlnaHQ9IjE4Ij48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGQ9Ik0xNCA2LjVWMTVINFYzaDYuNXpNNSAxNGg4VjYuOTFMMTAuMDkgNEg1em00LTNINnYtMWgzem0zLTJINlY4aDZ6Ii8+PC9zdmc+J30sNjI3MDQxKGUpe2UuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxOCAxOCIgd2lkdGg9IjE4IiBoZWlnaHQ9IjE4Ij48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGQ9Im0xMS4wNSA2LjE3IDEuMDcgMUE2IDYgMCAwIDEgMTQgMTEuNTVWMTRhMiAyIDAgMCAxLTEuOCAxLjk5TDEyIDE2SDZsLS4yLS4wMUEyIDIgMCAwIDEgNCAxNHYtMi40NkE2IDYgMCAwIDEgNS42NiA3LjRsLjIyLS4yMiAxLjA3LTEuMDFMNiAzaDZ6TTYuNTcgNy45QTUgNSAwIDAgMCA1IDExLjU0VjE0YTEgMSAwIDAgMCAxIDFoNmExIDEgMCAwIDAgMS0xdi0yLjQ2YTUgNSAwIDAgMC0xLjU3LTMuNjNMMTAuNDggN0g3LjUyek03Ljk0IDZoMi4xMmwuNi0ySDcuMzR6Ii8+PC9zdmc+J30sMjM2NDI5KGUpe2UuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxOCAxOCIgd2lkdGg9IjE4IiBoZWlnaHQ9IjE4Ij48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGQ9Ik0xNCAxNEg0VjloM1Y3aDNWNGg0em0tOS0xaDJ2LTNINXptMyAwaDJWOEg4em0zIDBoMlY1aC0yeiIvPjwvc3ZnPid9LDUxNDE0MihlKXsKZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDE4IDE4IiB3aWR0aD0iMTgiIGhlaWdodD0iMTgiPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZD0iTTYuNSA0Yy44OSAwIDEuNzIuMTggMi4zNS41LjYuMjkgMS4xNS44IDEuMTUgMS41djIuNThsLjE2LS4wOUMxMC43OCA4LjE4IDExLjYgOCAxMi41IDhzMS43Mi4xOCAyLjM1LjVjLjYuMjkgMS4xNS44IDEuMTUgMS41djIuMWMwIC43LS41OSAxLjE3LTEuMTcgMS40NC0uNjIuMy0xLjQ1LjQ2LTIuMzMuNDZzLTEuNzEtLjE3LTIuMzMtLjQ2QzkuNTkgMTMuMjcgOSAxMi44IDkgMTIuMXYtLjY0bC0uMTcuMDhjLS42Mi4zLTEuNDUuNDYtMi4zMy40NnMtMS43MS0uMTctMi4zMy0uNDZDMy41OCAxMS4yNyAzIDEwLjggMyAxMC4xVjZjMC0uNy41Ni0xLjIxIDEuMTYtMS41QzQuNzggNC4xNyA1LjYgNCA2LjUgNG0zLjUgOC4xYzAgLjA4LjA5LjMuNTkuNTMuNDYuMjIgMS4xNC4zNyAxLjkxLjM3czEuNDUtLjE1IDEuOTEtLjM3Yy41LS4yMy41OS0uNDUuNTktLjUzdi0uNjhsLS4xNS4wOWMtLjYzLjMxLTEuNDYuNDktMi4zNS40OXMtMS43Mi0uMTgtMi4zNC0uNWwtLjE2LS4wOHpNMTIuNSA5Yy0uNzcgMC0xLjQ0LjE2LTEuOS4zOS0uNDkuMjQtLjYuNDktLjYuNjFzLjExLjM3LjYuNjFjLjQ2LjIzIDEuMTMuMzkgMS45LjM5czEuNDQtLjE2IDEuOS0uMzljLjQ4LS4yNC42LS40OC42LS42VjEwYzAtLjEyLS4xMS0uMzctLjYtLjYxQTQuNCA0LjQgMCAwIDAgMTIuNSA5bS0zLjY3LjU0Yy0uNjIuMy0xLjQ1LjQ2LTIuMzMuNDZBNiA2IDAgMCAxIDQgOS40NnYuNjRjMCAuMDguMDkuMy41OS41My40Ni4yMiAxLjE0LjM3IDEuOTEuMzdzMS40NS0uMTUgMS45MS0uMzdjLjUtLjIzLjU5LS40NS41OS0uNTN2LS42NHpNNCA4LjFjMCAuMDguMDkuMy41OS41My40Ni4yMiAxLjE0LjM3IDEuOTEuMzdzMS40NS0uMTUgMS45MS0uMzdjLjUtLjIzLjU5LS40NS41OS0uNTN2LS42OGwtLjE1LjA5QzguMjIgNy44MiA3LjM5IDggNi41IDhzLTEuNzItLjE4LTIuMzQtLjVMNCA3LjQzek02LjUgNWMtLjc3IDAtMS40NC4xNi0xLjkuMzktLjQ5LjI0LS42LjQ5LS42LjYxcy4xMS4zNy42LjYxYy40Ni4yMyAxLjEzLjM5IDEuOS4zOXMxLjQ0LS4xNiAxLjktLjM5Yy40OC0uMjQuNi0uNDguNi0uNlY2YzAtLjEyLS4xMS0uMzctLjYtLjYxQTQuNCA0LjQgMCAwIDAgNi41IDUiLz48L3N2Zz4nfSwyMDU0NzIoZSl7ZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDE4IDE4IiB3aWR0aD0iMTgiIGhlaWdodD0iMTgiPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZD0iTTE0IDloMnY0YTIgMiAwIDAgMS0yIDJINWwtLjItLjAxQTIgMiAwIDAgMSAzIDEzLjJMMyAxM1YzaDExek00IDEzYTEgMSAwIDAgMCAxIDFoOFY0SDR6bTEwIDFhMSAxIDAgMCAwIDEtMXYtM2gtMXptLTItMkg1di0xaDd6TTggOUg1VjZoM3ptNCAwSDlWOGgzek02IDhoMVY3SDZ6bTYtMUg5VjZoM3oiLz48L3N2Zz4nfSw3MjcyNjkoZSl7ZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDE4IDE4IiB3aWR0aD0iMTgiIGhlaWdodD0iMTgiPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZD0iTTUgOGg1LjQzbDIuNy00Ljk4Ljg5LjQ4LTUuMDMgOS4yNGEuNS41IDAgMCAxLS40NC4yNkg1djNINFYyaDF6bTAgNGgzLjI1bDEuNjMtM0g1em0xMS0zaC0zLjg3bC41Ny0xSDE2eiIvPjwvc3ZnPid9LDkyMDg4KGUpe2UuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxOCAxOCIgd2lkdGg9IjE4IiBoZWlnaHQ9IjE4Ij48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGQ9Im0xMy4wNCA2LjQ0LjIuNGMuNDYuOTQuNTggMiAuMzYgMyAuNjUtLjEgMS4yNSAwIDEuOS4yMWwuNS4xNi0uMTguNDhhNC40IDQuNCAwIDAgMS0yLjMgMi40NXEuMzIuNDUuNTIuODZsLjI0LjQzLS40NC4yNHEtLjYzLjM0LTEuMy4zM2MtLjguMDEtMS42LS4zLTIuMi0uODNMMTAgMTVsLS45My0uMzcuMzEtLjc2YTMuMSAzLjEgMCAwIDEtMi45Ny0xLjgxbC0uMTktLjQ2LjQ2LS4ycS40LS4xNy44OC0uMzFhNCA0IDAgMCAxLS4xNy0zLjMybC4xNi0uNDUuNDUuMTRjLjY1LjIgMS4yNC40OCAxLjcuOTlhNSA1IDAgMCAxIDIuMi0yLjAybC40OC0uMjMuNDQtLjJ6bS0uODguOThhNCA0IDAgMCAwLTEuODggMi4xbC0uMDUuMTQtLjQ1IDEuMTUtLjQ4LTEuMTNhMiAyIDAgMCAwLTEuMS0xLjA5Yy0uMjIuOTUtLjAzIDEuODIuNiAyLjUzbC43NC44M2gtMS4xcS0uNDIuMDItLjgzLjE3Yy41NS42NSAxLjU2LjkzIDIuNDIuNjRsLjM3LS4xMy4yMS4zM2EyLjMgMi4zIDAgMCAwIDIuMjcgMS4wMSAyIDIgMCAwIDAtLjU2LS42MmwtMS4wMS0uNjUgMS4xNy0uMjVjLjgtLjE4IDEuNjctLjc3IDIuMTYtMS42YTMgMyAwIDAgMC0xLjYxLjE2bC0xLjEuNDMuNDYtMS4wOC4wNS0uMTNjLjM5LS45NC4zNi0yLS4wOC0yLjkxek04IDQuMDRxLjkxLjEzIDEuNjEuNjdsMS40Mi0xLjQyLjcuNy0xLjQyIDEuNDMtLjcyLjcyYTIuNSAyLjUgMCAxIDAtMy41IDMuNDNsLTEuMDUgMS4xLS42Ni42Ni0uNDguNDgtLjctLjdMNC43IDkuNnEtLjUyLS43LS42Ni0xLjZIMlY3aDIuMDRxLjEzLS44NC42LTEuNTFsLTEuNS0xLjUuNy0uNyAxLjQ4IDEuNDdBMy41IDMuNSAwIDAgMSA3IDQuMDRWMmgxeiIvPjwvc3ZnPid9LDI5MjM2MChlKXsKZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDE4IDE4IiB3aWR0aD0iMTgiIGhlaWdodD0iMTgiPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZD0iTTkgM2E3LjAyIDcuMDIgMCAwIDEgNi41MiA5LjZsLS4xNS40LTIuMzYtLjU0LjIyLS45OCAxLjUuMzVhNiA2IDAgMCAwLS4xNy00LjA3bC0xLjE4LjY4LS41LS44NyAxLjIyLS43YTYgNiAwIDAgMC00LjYtMi44NVY1LjVoLTFWNC4wMmE2IDYgMCAwIDAtNC42IDIuODVsMS4yMi43LS41Ljg3LTEuMTgtLjY4YTYgNiAwIDAgMC0uMTcgNC4wN2wxLjUtLjM1LjEyLjQ5LjExLjQ5LTEuOTUuNDQtLjQyLjEtLjE1LS40QTcuMDYgNy4wNiAwIDAgMSA5IDNtMyAzLjU3LTIuMSAzQTEgMSAwIDAgMSA5IDExYTEgMSAwIDEgMSAuMDgtMmwyLjEtM3oiLz48L3N2Zz4nfSw3OTE2OTMoZSl7ZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDE4IDE4IiB3aWR0aD0iMTgiIGhlaWdodD0iMTgiPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZD0iTTUgMTRINHYtM2gxem0zIDBIN1Y5aDF6bTMgMGgtMXYtM2gxem0zIDBoLTFWOWgxem0xLTkuMThMMTAuMzggOCA2Ljk5IDUuNiAzLjYyIDguMDMgMyA3LjJsNC0yLjg0IDMuMzkgMi40MkwxNC40NSA0eiIvPjwvc3ZnPid9LDk4Nzk5MihlKXtlLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMTggMTgiIHdpZHRoPSIxOCIgaGVpZ2h0PSIxOCI+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBkPSJNNSAxMmgxMXYxSDV2M0g0VjJoMXptOS04YzAgMi43Ni0uNTEgNC41My0xLjQ0IDUuNjEtLjk0IDEuMS0yLjIzIDEuMzgtMy41IDEuMzgtLjg4IDAtMi4wNy0uMi0zLjA2LS43NmwuNS0uODdjLjguNDUgMS44LjYzIDIuNTcuNjMgMS4xMyAwIDIuMDYtLjI0IDIuNzMtMS4wMy43LS44IDEuMi0yLjI4IDEuMi00Ljk2eiIvPjwvc3ZnPid9LDE1OTI0NShlKXtlLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMTggMTgiIHdpZHRoPSIxOCIgaGVpZ2h0PSIxOCI+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBkPSJNNSAxNkg0VjJoMXpNMTUgNS41bC0yLjY2IDIuNDktLjY4LS43M0wxMi45IDYuMUE3IDcgMCAwIDAgOC4yNyA5YTcgNyAwIDAgMCA0LjY0IDIuOTFsLTEuMjUtMS4xNy42OC0uNzNMMTUgMTIuNSAxMi4zNCAxNWwtLjY4LS43NCAxLjQtMS4zMmE4IDggMCAwIDEtNS4zNC0zQTcgNyAwIDAgMCA3IDEzLjAyVjE0SDZ2LS45N2MwLTQuMTEgMy4wOS03LjUgNy4wNi03Ljk3bC0xLjQtMS4zMi42OC0uNzR6TTcgNHYuOTZxMCAxLjEuMzEgMi4xLS4zOS40Mi0uNzMuOWE4IDggMCAwIDEtLjU4LTNWNHoiLz48L3N2Zz4nfX1dKTs="}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/42171.1c05d8147c230d86b4fa.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:15.329Z","timestamp":1785148035329,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/42171.1c05d8147c230d86b4fa.js HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:15 GMT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a608293-4ff4\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Wed, 22 Jul 2026 08:42:59 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/22/2026 11:02:18\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: c3331916f891a0c22babbcbd2e0e3686\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":20468,"size_decoded":7449,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (3071)","md5":"edddce8d1d6f604a250bcfbe9d7eb025","sha1":"253ca6c52edbd8045f2d7582a4cbe1d58aa63fb7","sha256":"5ce8d2d6a4b23546f3ef7e86e56e51c0dd33a1ed0a3cef47794f49bbaf49fd90","sha512":"8bea5dd5042c7cbb2e5672e14ea2d4734a6fec646472748c7fc97e3549559befc114de998d38beab5c5097dccc1d9db856c75c8b482946bb7276dc6c44fffb43","ssdeep":"384:BrqTqqPiwUF5A2XlUggtc6TPlrtRH/hIRgvFoPVAAg0dUDs3nRCvO3Ja7m8t51hv:FqTLPinvA2uggtc6TPlrtRH/hImvFoP8","tlshash":"fd92b424f382216105eb91ed1c760913b63bb7963c87466db92c9ace675c918f372b3c","first_seen":"2026-07-22T16:00:00.324158Z","last_seen":"2026-07-27T12:57:37.095825Z","times_seen":87,"resource_available":true,"data":"InVzZSBzdHJpY3QiOyhzZWxmLndlYnBhY2tDaHVua3RyYWRpbmd2aWV3PXNlbGYud2VicGFja0NodW5rdHJhZGluZ3ZpZXd8fFtdKS5wdXNoKFtbNDIxNzFdLHsyNDIxNzEoZSx0LGkpe2kuZCh0LHtNaW5pQ2hhcnRQbG90QmFzZTooKT0+VSxjdXN0b21QcmljZUZvcm1hdEJ5U3ltYm9sSW5mbzooKT0+Rixpc1RpbWVQb2ludEluZGV4OigpPT5QLHNlcmllc0hvcnpNYXJnaW5zRGVmYXVsdHM6KCk9PkV9KTt2YXIgcz1pKDY2MzA0Nikscj1pKDY3ODMxMiksYT1pKDc0MDE2Miksbz1pKDMwNDIyMSksbj1pKDEzODYzOCksbD1pKDEzNDY3KSxoPWkoMjIxMDYxKSx1PWkoNjAxODQxKSxkPWkoMjMyMzY0KSxfPWkoNDAyMDQ1KSxjPWkoOTUyOTAwKSxtPWkoMTUwMTUwKSxwPWkoOTQ4MzgwKSxnPWkoNzczMDg4KSxTPWkoODE0NTg5KSx5PWkoNzgzMjU0KSxmPWkoOTg0Mzc2KSxDPWkoNDA3Nzk5KSxiPWkoMTExOTUzKSx2PWkoMTI4OTk4KSx3PWkoMTEzNTY3KSxJPWkoODczNTczKSxWPWkoMjI2OTM3KSxEPWkoNjk1OTQ2KTtjb25zdCBCPSgwLGguZ2V0TG9nZ2VyKSgiQ2hhcnQuTWluaUNoYXJ0IiksTz1uZXcgZi5Wb2x1bWVGb3JtYXR0ZXI7ZnVuY3Rpb24gTChlLHQsaSxzKXtyZXR1cm57dGltZTp0LGNvbG9yOnMsdmFsdWU6aVtlXX19ZnVuY3Rpb24gVChlLHQpe3JldHVybnt0aW1lOmUsb3Blbjp0WzFdLGhpZ2g6dFsyXSxsb3c6dFszXSxjbG9zZTp0WzRdfX1mdW5jdGlvbiB4KGUsdCxpLHMscil7cmV0dXJue3RpbWU6ZSx0b3BDb2xvcjpzLGJvdHRvbUNvbG9yOnIsbGluZUNvbG9yOmksdmFsdWU6dFs0XX19ZnVuY3Rpb24gTShlKXtjb25zdCB0PW5ldyBEYXRlKGUpO3JldHVybiBEYXRlLlVUQyh0LmdldEZ1bGxZZWFyKCksdC5nZXRNb250aCgpLHQuZ2V0RGF0ZSgpLHQuZ2V0SG91cnMoKSx0LmdldE1pbnV0ZXMoKSx0LmdldFNlY29uZHMoKSkvMWUzfWZ1bmN0aW9uIFAoZSl7cmV0dXJuKDAsdS5pc0ludGVnZXIpKGUpfWNvbnN0IGs9KDAscy5kZWZhdWx0KShJLnJlc2V0VHJhbnNwYXJlbmN5KTtmdW5jdGlvbiBGKGUpe2NvbnN0IHQ9KDAsdi5jcmVhdGVTZXJpZXNGb3JtYXR0ZXIpKGUsImRlZmF1bHQiKTtyZXR1cm57dHlwZToiY3VzdG9tIixtaW5Nb3ZlOmUubWlubW92L2UucHJpY2VzY2FsZSxiYXNlOmUucHJpY2VzY2FsZS9lLm1pbm1vdixmb3JtYXR0ZXI6ZT0+dC5mb3JtYXQoZSl9fWNvbnN0IEU9e2xlZnRMb2dpY2FsOjAscmlnaHRMb2dpY2FsOjAsbGVmdFB4OjAscmlnaHRQeDo0fTtmdW5jdGlvbiBXKGUpe2lmKDA9PT1lLnNlcmllcy5sZW5ndGgpcmV0dXJuIG51bGw7Y29uc3QgdD1lLnNlcmllc1swXSxpPXQudmFsdWU/P3QuY2xvc2Uscz1lLnNlcmllc1tlLnNlcmllcy5sZW5ndGgtMV0scj1zLnZhbHVlPz9zLmNsb3NlO3JldHVybntmaXJzdDp7dmFsdWU6aSx0aW1lOnQudGltZX0sbGFzdDp7dmFsdWU6cix0aW1lOnMudGltZX19fWNsYXNzIFV7Y29uc3RydWN0b3IoZSx0LGkscyl7dGhpcy5fc3ltYm9sQ2hhbmdlZD1uZXcgcC5EZWxlZ2F0ZSx0aGlzLl9zZXJpZXNDaGFuZ2VkPW5ldyBwLkRlbGVnYXRlLHRoaXMuX3doaXRlc3BhY2VzPW51bGwsdGhpcy5fc3ltYm9sUmVzb2x2ZWQ9bmV3IHAuRGVsZWdhdGUsdGhpcy5fb3JpZ2luYWxTY2FsZU1vZGU9bnVsbCx0aGlzLl9jdXN0b21QcmljZUZvcm1hdHRlcj1udWxsLHRoaXMuX2lzRGVzdHJveWVkPW5ldyBkLldhdGNoZWRWYWx1ZSghMSksdGhpcy5fc3RhdHVzPW5ldyBkLldhdGNoZWRWYWx1ZSgwKSx0aGlzLl9ub0RhdGE9bmV3IGQuV2F0Y2hlZFZhbHVlKG51bGwpLHRoaXMuX2NoYXJ0VHlwZT1uZXcgZC5XYXRjaGVkVmFsdWUobnVsbCksdGhpcy5fZGlyZWN0aW9uQmFzZWRDb2xvcj1uZXcgZC5XYXRjaGVkVmFsdWUobnVsbCksdGhpcy5fZGF0YUxlbmd0aEluZm89bnVsbCx0aGlzLl9zZXNzaW9uSWQ9bmV3IGQuV2F0Y2hlZFZhbHVlLHRoaXMuX2JhckJ1aWxkZXJMb2FkZXI9bnVsbCx0aGlzLl9zeW1ib2xJbmZvPW51bGwsdGhpcy5fc3ltYm9sSW5mb1dWPW5ldyBfLldhdGNoZWRPYmplY3QobnVsbCksdGhpcy5fc3ltYm9sPXtzeW1ib2w6IiJ9LHRoaXMuX21pbkJhckluZGV4PW51bGwsdGhpcy5fbWF4QmFySW5kZXg9bnVsbCx0aGlzLl9sYXN0VmFsdWU9bmV3IGQuV2F0Y2hlZFZhbHVlKG51bGwpLHRoaXMuX2lzVmlzaWJsZT1uZXcgZC5XYXRjaGVkVmFsdWUoITEpLHRoaXMuX2lkPSgwLG0ucmFuZG9tSGFzaCkoKSx0aGlzLl90aW1lRnJhbWVJbnZhbGlkYXRlZD1uZXcgcC5EZWxlZ2F0ZSx0aGlzLl9maXJzdFZhbHVlQ2FjaGU9bnVsbCx0aGlzLl9maXJzdEJhclRpbWU9bmV3IGQuV2F0Y2hlZFZhbHVlKG51bGwpLHRoaXMuX2xlZ2VuZExhc3RCYXJEYXRhPW51bGwsdGhpcy5faGlzdG9yeVVwZGF0ZVJlY2VpdmVkPSExLHRoaXMuX21pbmlDaGFydD1lLHRoaXMuX29yaWdpbmFsU2VyaWVzT3B0aW9ucz10LHRoaXMuX2N1cnJlbnRTZXJpZXNPcHRpb25zPSgwLGEuZGVmYXVsdCkoe30sdCksdGhpcy5fb3B0aW9ucz1zLHRoaXMuX3Nlcmllcz10aGlzLl9jcmVhdGVTZXJpZXMoKSx0aGlzLl9jaGFydFR5cGUuc2V0VmFsdWUodC5jaGFydFR5cGU/P251bGwpLHRoaXMuX29yaWdpbmFsVm9sdW1lT3B0aW9ucz1pLHRoaXMuX3ZvbHVtZT10aGlzLl9jcmVhdGVWb2x1bWUoKSx0aGlzLl90aW1lRnJhbWU9ZS50aW1lZnJhbWUoKS5zcGF3bigpLHRoaXMuX3RpbWVGcmFtZS5zdWJzY3JpYmUodGhpcy5fdXBkYXRlU2Vzc2lvbklkLmJpbmQodGhpcykpLHRoaXMuX2N1cnJlbnRseVNob3duRGF0YURlc2NyaXB0aW9uPW5ldyBfLldhdGNoZWRPYmplY3Qoe3RpbWVmcmFtZTp0aGlzLl90aW1lRnJhbWUudmFsdWUoKSxzeW1ib2w6dGhpcy5zeW1ib2woKX0pLHRoaXMuX2lzTGFzdFNlc3Npb25JbnRlcnZhbD0oMCxjLmNvbWJpbmUpKChlPT4iTEFTVFNFU1NJT04iPT09KDAsZy5jb252ZXJ0VGltZUZyYW1lVG9TdHIpKGUpKSx0aGlzLl9taW5pQ2hhcnQudGltZWZyYW1lKCkud2Vha1JlZmVyZW5jZSgpKSx0aGlzLl9pc0xhc3RTZXNzaW9uSW50ZXJ2YWwuc3Vic2NyaWJlKHRoaXMuX3VwZGF0ZVNlc3Npb25JZC5iaW5kKHRoaXMpKSwKdGhpcy5fbWluaUNoYXJ0LnRpbWVTY2FsZVNpemVDaGFuZ2VkKCkuc3Vic2NyaWJlKG51bGwsdGhpcy5fdGltZVNjYWxlU2l6ZUNoYW5nZWQuYmluZCh0aGlzKSksdGhpcy5fc3RhdHVzLnN1YnNjcmliZSgoZT0+ezMhPT1lJiYodGhpcy5fbGFzdFZhbHVlLnNldFZhbHVlKG51bGwpLHRoaXMuX29uTGFzdEJhckRhdGFNYXlDaGFuZ2UoKSl9KSl9ZGVzdHJveSgpe3RoaXMuX3N0YXR1cy51bnN1YnNjcmliZSgpLHRoaXMuX3RpbWVGcmFtZS5kZXN0cm95KCksdGhpcy5faXNEZXN0cm95ZWQuc2V0VmFsdWUoITApLHRoaXMuX2lzTGFzdFNlc3Npb25JbnRlcnZhbC5kZXN0cm95KCksdGhpcy5fYmFyQnVpbGRlckxvYWRlcj8uZGVzdHJveSgpfWlkKCl7cmV0dXJuIHRoaXMuX2lkfXN0YXR1cygpe3JldHVybiB0aGlzLl9zdGF0dXMucmVhZG9ubHkoKX1ub0RhdGEoKXtyZXR1cm4gdGhpcy5fbm9EYXRhLnJlYWRvbmx5KCl9Y2hhcnRUeXBlKCl7cmV0dXJuIHRoaXMuX2NoYXJ0VHlwZS5yZWFkb25seSgpfXN5bWJvbEluZm8oKXtyZXR1cm4gdGhpcy5fc3ltYm9sSW5mb31zeW1ib2xJbmZvV1YoKXtyZXR1cm4gdGhpcy5fc3ltYm9sSW5mb1dWLnJlYWRvbmx5KCl9c3ltYm9sKCl7cmV0dXJuIHRoaXMuX3N5bWJvbC5zeW1ib2x9c3ViU2Vzc2lvbigpe3JldHVybiB0aGlzLl9zZXNzaW9uSWQudmFsdWUoKX1zZXRTeW1ib2woZSx0KXtyZXR1cm4oMCxvLmRlZmF1bHQpKGUpJiYoZT0oMCxiLmlzRW5jb2RlZEV4dGVuZGVkU3ltYm9sKShlKT8oMCxiLmRlY29kZUV4dGVuZGVkU3ltYm9sKShlKTp7Li4udGhpcy5fc3ltYm9sLHN5bWJvbDplfSksdm9pZCAwIT09dCYmdGhpcy5fdXBkYXRlU2VyaWVzT3B0aW9ucyh0KSwhKDAsYi5jb21wYXJlU3ltYm9scykodGhpcy5fc3ltYm9sLGUpJiYodGhpcy5fc3ltYm9sPWUsdGhpcy5fdXBkYXRlU2Vzc2lvbklkKCksdGhpcy5fc3ltYm9sQ2hhbmdlZC5maXJlKCksITApfWV4dGVuZGVkU3ltYm9sKCl7cmV0dXJuey4uLnRoaXMuX3N5bWJvbCxzZXNzaW9uOnRoaXMuX3Nlc3Npb25JZC52YWx1ZSgpfX1xdW90ZXNTeW1ib2woKXtyZXR1cm57Li4udGhpcy5leHRlbmRlZFN5bWJvbCgpLG1ldHJpYzp2b2lkIDB9fXVwZGF0ZVNlcmllc09wdGlvbnMoZSl7bGV0IHQ9ITE7dm9pZCAwIT09ZS5jaGFydFR5cGUmJnRoaXMuX29yaWdpbmFsU2VyaWVzT3B0aW9ucy5jaGFydFR5cGUhPT1lLmNoYXJ0VHlwZT90PSEwOiJsaW5lIiE9PXRoaXMuX29yaWdpbmFsU2VyaWVzT3B0aW9ucy5jaGFydFR5cGUmJiJhcmVhIiE9PXRoaXMuX29yaWdpbmFsU2VyaWVzT3B0aW9ucy5jaGFydFR5cGV8fCh0PSJwb3N0bWFya2V0TGluZUNvbG9yImluIGUmJnRoaXMuX29yaWdpbmFsU2VyaWVzT3B0aW9ucy5wb3N0bWFya2V0TGluZUNvbG9yIT09ZS5wb3N0bWFya2V0TGluZUNvbG9yfHwicHJlbWFya2V0TGluZUNvbG9yImluIGUmJnRoaXMuX29yaWdpbmFsU2VyaWVzT3B0aW9ucy5wcmVtYXJrZXRMaW5lQ29sb3IhPT1lLnByZW1hcmtldExpbmVDb2xvcnx8Im5pZ2h0TGluZUNvbG9yImluIGUmJnRoaXMuX29yaWdpbmFsU2VyaWVzT3B0aW9ucy5uaWdodExpbmVDb2xvciE9PWUubmlnaHRMaW5lQ29sb3IpLHRoaXMuX3VwZGF0ZVNlcmllc09wdGlvbnMoZSksdD90aGlzLl9vbkNoYXJ0U3R5bGVDaGFuZ2VkKCk6dGhpcy5fc2VyaWVzLmFwcGx5T3B0aW9ucyhlKX1hcHBseU9wdGlvbnMoZSl7KDAsYS5kZWZhdWx0KSh0aGlzLl9vcHRpb25zLGUpfXN5bWJvbFJlc29sdmVkKCl7cmV0dXJuIHRoaXMuX3N5bWJvbFJlc29sdmVkfXN5bWJvbENoYW5nZWQoKXtyZXR1cm4gdGhpcy5fc3ltYm9sQ2hhbmdlZH1zZXJpZXNDaGFuZ2VkKCl7cmV0dXJuIHRoaXMuX3Nlcmllc0NoYW5nZWR9dGltZUZyYW1lSW52YWxpZGF0ZWQoKXtyZXR1cm4gdGhpcy5fdGltZUZyYW1lSW52YWxpZGF0ZWR9cmVzdG9yZU9yaWdpbmFsU2NhbGVNb2RlKCl7bnVsbCE9PXRoaXMuX29yaWdpbmFsU2NhbGVNb2RlJiZ0aGlzLl9zZXJpZXMucHJpY2VTY2FsZSgpLmFwcGx5T3B0aW9ucyh7bW9kZTp0aGlzLl9vcmlnaW5hbFNjYWxlTW9kZX0pfXN3aXRjaFRvUGVyY2VudGFnZVNjYWxlTW9kZSgpe251bGw9PT10aGlzLl9vcmlnaW5hbFNjYWxlTW9kZSYmKHRoaXMuX29yaWdpbmFsU2NhbGVNb2RlPXRoaXMuX3Nlcmllcy5wcmljZVNjYWxlKCkub3B0aW9ucygpLm1vZGUpLHRoaXMuX3Nlcmllcy5wcmljZVNjYWxlKCkuYXBwbHlPcHRpb25zKHttb2RlOnIuUHJpY2VTY2FsZU1vZGUuUGVyY2VudGFnZX0pfWNoYXJ0U2Vzc2lvbigpe3JldHVybiB0aGlzLl9taW5pQ2hhcnQuY2hhcnRTZXNzaW9uKCl9Y3VycmVudFNlcmllc09wdGlvbnMoKXtyZXR1cm4gdGhpcy5fY3VycmVudFNlcmllc09wdGlvbnN9dm9sdW1lT3B0aW9ucygpe3JldHVybiB0aGlzLl9vcmlnaW5hbFZvbHVtZU9wdGlvbnN9c2VyaWVzKCl7cmV0dXJuIHRoaXMuX3Nlcmllc312b2x1bWUoKXtyZXR1cm4gdGhpcy5fb3JpZ2luYWxWb2x1bWVPcHRpb25zLnZpc2libGU/dGhpcy5fdm9sdW1lOm51bGx9dXBkYXRlRGF0YShlLHQsaSl7ZSYmdGhpcy5jbGVhclNvdXJjZURhdGEoKTtjb25zdCBzPXRoaXMuX29yaWdpbmFsU2VyaWVzT3B0aW9ucyxyPXRoaXMuX2J1aWxkVmlld0RhdGEoaSksYT1yLnNlcmllcy5sZW5ndGg7dGhpcy5faGlzdG9yeVVwZGF0ZVJlY2VpdmVkPXRoaXMuX2hpc3RvcnlVcGRhdGVSZWNlaXZlZHx8dm9pZCAwPT09aSx2b2lkIDAhPT1pfHwiYXJlYSIhPT1zLmNoYXJ0VHlwZSYmImxpbmUiIT09cy5jaGFydFR5cGV8fCh0aGlzLl9maXJzdFZhbHVlQ2FjaGU9ci5zZXJpZXNbMF0/LnZhbHVlPz9udWxsKTtjb25zdCBvPXRoaXMuX2hpc3RvcnlVcGRhdGVSZWNlaXZlZCYmbnVsbD09PXRoaXMuX2RhdGFMZW5ndGhJbmZvO2lmKHZvaWQgMCE9PWkmJiFvKXtjb25zdCBlPXRoaXMuX2RhdGFMZW5ndGhJbmZvO2lmKG51bGw9PT1lKXJldHVybjtjb25zdCB0PXsuLi5lfTtlLmxhc3RCYXJTZXNzaW9uPXIubGFzdEJhclNlc3Npb247bGV0IGk9bnVsbDtmb3IoY29uc3QgdCBvZiByLnNlcmllcyl0aGlzLl9zZXJpZXMudXBkYXRlKHQpLAoobnVsbD09PWUubGFzdEJhclRpbWV8fGUubGFzdEJhclRpbWU8dC50aW1lKSYmKGk9dC50aW1lLGUubGFzdEJhclRpbWU9aSxlLnJlYWx0aW1lKz0xLGUubGFzdEJhckluZGV4PShlLmxhc3RCYXJJbmRleD8/LTEpKzEpO2lmKHIuYWRkaXRpb25hbFNlcmllcyYmdGhpcy5fdXBkYXRlQWRkaXRpb25hbFNlcmllc0RhdGEoci5hZGRpdGlvbmFsU2VyaWVzKSxyLnZvbHVtZSlmb3IoY29uc3QgZSBvZiByLnZvbHVtZSl0aGlzLl92b2x1bWUudXBkYXRlKGUpO2lmKHZvaWQgMCE9PXRoaXMuX3doaXRlc3BhY2VzRGF0YSYmbnVsbCE9PWkpe2NvbnN0IHQ9dGhpcy5fd2hpdGVzcGFjZXNEYXRhLmZpbmRJbmRleCgoZT0+ZS50aW1lPmkpKTstMT09PXQ/KGUud2hpdGVzcGFjZXM9MCx0aGlzLl91cGRhdGVXaGl0ZXNwYWNlcyhbXSkpOjAhPT10JiYoZS53aGl0ZXNwYWNlcy09dCx0aGlzLl91cGRhdGVXaGl0ZXNwYWNlcyh0aGlzLl93aGl0ZXNwYWNlc0RhdGEuc2xpY2UodCkpKX1udWxsIT09aSYmKHZvaWQgMCE9PWUuZml4TGVmdEVkZ2VVbnRpbD8odGhpcy5faXNNYWluUGxvdCgpJiZlLmZpeExlZnRFZGdlVW50aWw+PWkmJnRoaXMuX21pbmlDaGFydC5maXRDb250ZW50KCksaT5lLmZpeExlZnRFZGdlVW50aWwmJihlLmhpc3RvcnkrPWUucmVhbHRpbWUtMSxlLnJlYWx0aW1lPTAsZS5maXhMZWZ0RWRnZVVudGlsPXZvaWQgMCxlLnRpbWVGcmFtZUludmFsaWRhdGVkPSEwLHRoaXMuX3RpbWVGcmFtZUludmFsaWRhdGVkLmZpcmUoKSkpOmUudGltZUZyYW1lSW52YWxpZGF0ZWR8fChlLnRpbWVGcmFtZUludmFsaWRhdGVkPSEwLHRoaXMuX3RpbWVGcmFtZUludmFsaWRhdGVkLmZpcmUoKSkpLHRoaXMuX3VwZGF0ZVNlcmllc0NvbG9yKHIuc2VyaWVzW3Iuc2VyaWVzLmxlbmd0aC0xXSksdGhpcy5fZGF0YVVwZGF0ZWQocixlLHQpO2NvbnN0IHM9VyhyKTtyZXR1cm4gdm9pZChudWxsIT09cyYmKHRoaXMuX2xhc3RWYWx1ZS5zZXRWYWx1ZShzLmxhc3QudmFsdWUpLHRoaXMuX29uTGFzdEJhckRhdGFNYXlDaGFuZ2UoKSkpfWNvbnN0IG49ci53aGl0ZXNwYWNlcyxsPW4/Lmxlbmd0aD8/MDt0aGlzLl9kYXRhTGVuZ3RoSW5mbz17aGlzdG9yeTphLHJlYWx0aW1lOjAsbGFzdEJhckluZGV4OjA9PT1hP251bGw6YS0xLGxhc3RCYXJUaW1lOjA9PT1hP251bGw6ci5zZXJpZXNbYS0xXS50aW1lLHdoaXRlc3BhY2VzOmwsZml4TGVmdEVkZ2VVbnRpbDpyLmZpeExlZnRFZGdlVW50aWwsdGltZUZyYW1lSW52YWxpZGF0ZWQ6ITEsbGFzdEJhclNlc3Npb246ci5sYXN0QmFyU2Vzc2lvbn0sdGhpcy5fdXBkYXRlU2VyaWVzQ29sb3IoMD09PWE/dm9pZCAwOnIuc2VyaWVzW2EtMV0pLHRoaXMuX3Nlcmllcy5hcHBseU9wdGlvbnModGhpcy5fY3VycmVudFNlcmllc09wdGlvbnMpLHRoaXMuX2FwcGx5UHJpY2VTY2FsZUZvcm1hdHRlcigpLHR8fHRoaXMuX2JlZm9yZURhdGFSZWFkeSgpLHRoaXMuX3Nlcmllcy5zZXREYXRhKHIuc2VyaWVzKSxyLmFkZGl0aW9uYWxTZXJpZXMmJnRoaXMuX3NldEFkZGl0aW9uYWxTZXJpZXNEYXRhKHIuYWRkaXRpb25hbFNlcmllcyksci52b2x1bWUmJnRoaXMuX3ZvbHVtZS5zZXREYXRhKHIudm9sdW1lKSx0aGlzLl91cGRhdGVXaGl0ZXNwYWNlcyhyLndoaXRlc3BhY2VzKSx0aGlzLl9kYXRhVXBkYXRlZChyLHRoaXMuX2RhdGFMZW5ndGhJbmZvKTtjb25zdCBoPVcocik7aWYobnVsbCE9PWgpe2NvbnN0e2ZpcnN0OmUsbGFzdDp0fT1oO3RoaXMuX2xhc3RWYWx1ZS5zZXRWYWx1ZSh0LnZhbHVlKSx0aGlzLl9maXJzdEJhclRpbWUuc2V0VmFsdWUoZS50aW1lKSx0aGlzLl9vbkxhc3RCYXJEYXRhTWF5Q2hhbmdlKCl9fXRpdGxlcygpe3JldHVybiB0aGlzLl9jdXJyZW50U2VyaWVzT3B0aW9ucy50aXRsZT9bdGhpcy5fY3VycmVudFNlcmllc09wdGlvbnMudGl0bGVdOltdfWRlbGV0ZVZpZXcoKXt0aGlzLl9zZXJpZXMuc2V0RGF0YShbXSksdGhpcy5fd2hpdGVzcGFjZXM/LnNldERhdGEoW10pLHRoaXMuX3ZvbHVtZS5zZXREYXRhKFtdKX1jbGVhckRhdGEoKXt0aGlzLl9zeW1ib2xJbmZvPW51bGwsdGhpcy5fc3ltYm9sSW5mb1dWLnNldFZhbHVlKG51bGwpLHRoaXMuX2hpc3RvcnlVcGRhdGVSZWNlaXZlZD0hMSx0aGlzLl9kYXRhTGVuZ3RoSW5mbz1udWxsLHRoaXMuX2ZpcnN0VmFsdWVDYWNoZT1udWxsLHRoaXMuX2N1c3RvbVByaWNlRm9ybWF0dGVyPW51bGwsdGhpcy5fc3RhdHVzLnNldFZhbHVlKDApLHRoaXMuX25vRGF0YS5zZXRWYWx1ZShudWxsKSx0aGlzLl9kaXJlY3Rpb25CYXNlZENvbG9yLnNldFZhbHVlKG51bGwpfXJlc29sdXRpb24oKXtyZXR1cm4gdGhpcy5fbWluaUNoYXJ0LnJlc29sdXRpb24oKX1taW5CYXJJbmRleCgpe3JldHVybiB0aGlzLl9taW5CYXJJbmRleH1tYXhCYXJJbmRleCgpe3JldHVybiB0aGlzLl9tYXhCYXJJbmRleH1mb3JjZVBlcmNlbnRhZ2VNb2RlKCl7cmV0dXJuITF9bGFzdEJhclRpbWUoKXtyZXR1cm4gdGhpcy5fZGF0YUxlbmd0aEluZm8/Lmxhc3RCYXJUaW1lPz92b2lkIDB9bGFzdEJhckluZGV4KCl7cmV0dXJuIHRoaXMuX2RhdGFMZW5ndGhJbmZvPy5sYXN0QmFySW5kZXg/P251bGx9Z2V0Vmlld0RhdGEoZSl7cmV0dXJuIHRoaXMuX2J1aWxkVmlld0RhdGEoZSl9Z2V0TGVnZW5kRGF0YShlLHQpe2NvbnN0IHM9dGhpcy5zZXJpZXMoKSxyPXRoaXMudm9sdW1lKCk7aWYodm9pZCAwPT09ZSlyZXR1cm5bXTtjb25zdCBhPXMuZGF0YUJ5SW5kZXgoZSx0KTtpZihudWxsPT09YSlyZXR1cm5bXTtjb25zdCBvPVtdLG49cy5wcmljZUZvcm1hdHRlcigpLGw9dGhpcy5jdXJyZW50U2VyaWVzT3B0aW9ucygpO2lmKCExPT09bC52aXNpYmxlKXJldHVybltdO2lmKCJBcmVhIj09PXMuc2VyaWVzVHlwZSgpfHwiTGluZSI9PT1zLnNlcmllc1R5cGUoKXx8IkJhc2VsaW5lIj09PXMuc2VyaWVzVHlwZSgpfHwibGVnZW5kIj09PWwudG9vbHRpcFR5cGV8fCJsaW5lIj09PWwudG9vbHRpcFR5cGUpe2NvbnN0e3ZhbHVlOmV9PWE7bGV0IHQ7dD0iYXJlYSI9PT1sLmNoYXJ0VHlwZT9hLmxpbmVDb2xvcjphLmNvbG9yCjtjb25zdCBpPXRoaXMuc3ltYm9sSW5mbygpLHM9bC5jb2xvcnx8bC5saW5lQ29sb3I7by5wdXNoKHt0aXRsZTpsLnRvb2x0aXBUaXRsZXx8aT8ubmFtZXx8IiIsdmFsdWU6bi5mb3JtYXQoZSksY29sb3I6dHx8cyx1bml0Omwuc2hvd1VuaXQ/KDAsdy5wcmVwYXJlQ3VycmVuY3lWYWx1ZSkoe2N1cnJlbmN5X2NvZGU6aT8uY3VycmVuY3lfY29kZSx1bml0X2lkOmk/LnVuaXRfaWQsdmFsdWVfdW5pdF9pZDppPy52YWx1ZV91bml0X2lkLG1lYXN1cmU6aT8ubWVhc3VyZX0pOnZvaWQgMH0pfWVsc2V7Y29uc3R7b3BlbjplLGhpZ2g6dCxsb3c6cixjbG9zZTpsfT1hLGg9ZnVuY3Rpb24oZSx0KXtpZihudWxsPT09dClyZXR1cm47Y29uc3QgaT1lP3QudXA6dC5kb3duO3JldHVybiBrKGkpfShsPj1lLHRoaXMuX21pbmlDaGFydC51cERvd25Db2xvcnMocy5zZXJpZXNUeXBlKCkpKTtbW3kudChudWxsLHtjb250ZXh0OiJpbl9sZWdlbmQifSxpKDk2MDUxMykpLG4uZm9ybWF0KGUpXSxbeS50KG51bGwse2NvbnRleHQ6ImluX2xlZ2VuZCJ9LGkoOTU0NjE0KSksbi5mb3JtYXQodCldLFt5LnQobnVsbCx7Y29udGV4dDoiaW5fbGVnZW5kIn0saSg4Mzk0NjMpKSxuLmZvcm1hdChyKV0sW3kudChudWxsLHtjb250ZXh0OiJpbl9sZWdlbmQifSxpKDIyOTk5NCkpLG4uZm9ybWF0KGwpXV0uZm9yRWFjaCgoKFtlLHRdKT0+e28ucHVzaCh7dmFsdWU6dCx0aXRsZTplLGNvbG9yOmh9KX0pKX1jb25zdCBoPXImJnIuZGF0YUJ5SW5kZXgoZSx0KSx1PXRoaXMudm9sdW1lT3B0aW9ucygpO2lmKGgpe2NvbnN0e3ZhbHVlOmUsY29sb3I6dH09aDtvLnB1c2goe3RpdGxlOnUudG9vbHRpcFRpdGxlPz95LnQobnVsbCx7Y29udGV4dDoiaW5fbGVnZW5kIn0saSg1NjUzMjEpKSx2YWx1ZTpPLmZvcm1hdChlKSxjb2xvcjp1Lmlnbm9yZUNvbG9yP3ZvaWQgMDp0JiYoMCxJLnJlc2V0VHJhbnNwYXJlbmN5KSh0KSx1bml0OnUuc2hvd1VuaXQ/dGhpcy5zeW1ib2xJbmZvKCk/LmN1cnJlbmN5X2NvZGU6dm9pZCAwfSl9cmV0dXJuIG99bGVnZW5kTGFzdEJhckRhdGEoKXtyZXR1cm4gdGhpcy5fbGVnZW5kTGFzdEJhckRhdGF8fCh0aGlzLl9sZWdlbmRMYXN0QmFyRGF0YT1uZXcgXy5XYXRjaGVkT2JqZWN0KG51bGwpLHRoaXMuX29uTGFzdEJhckRhdGFNYXlDaGFuZ2UoKSksdGhpcy5fbGVnZW5kTGFzdEJhckRhdGEucmVhZG9ubHkoKX1zZXNzaW9uQXRUaW1lKGUpe3JldHVybiB0aGlzLl9iYXJCdWlsZGVyTG9hZGVyPy5nZXQoKT8uc2Vzc2lvbihlKT8/bnVsbH1sYXN0VmFsdWUoKXtyZXR1cm4gdGhpcy5fbGFzdFZhbHVlLnJlYWRvbmx5KCl9Zmlyc3RCYXJUaW1lKCl7cmV0dXJuIHRoaXMuX2ZpcnN0QmFyVGltZS5yZWFkb25seSgpfWlzVmlzaWJsZSgpe3JldHVybiB0aGlzLl9pc1Zpc2libGUucmVhZG9ubHkoKX1zeW1ib2xOYW1lKCl7cmV0dXJuIHRoaXMuX3N5bWJvbC5zeW1ib2x9bGluZUNvbG9yKCl7Y29uc3QgZT10aGlzLmN1cnJlbnRTZXJpZXNPcHRpb25zKCk7cmV0dXJuImxpbmUiPT09ZS5jaGFydFR5cGU/ZS5jb2xvcj8/IiI6ImFyZWEiPT09ZS5jaGFydFR5cGU/ZS5saW5lQ29sb3I/PyIiOnZvaWQoMCxuLmFzc2VydCkoITEsYFVuZXhwZWN0ZWQgY2hhcnQgdHlwZTogJHtlLmNoYXJ0VHlwZX1gKX1pc0Rlc3Ryb3llZCgpe3JldHVybiB0aGlzLl9pc0Rlc3Ryb3llZC5yZWFkb25seSgpfV9oYXNPdmVybmlnaHRTZXNzaW9uKCl7cmV0dXJuITF9X2lzTWFpblBsb3QoKXtyZXR1cm4hMX1fb25DaGFydFN0eWxlQ2hhbmdlZCgpe3RoaXMuX3JlY3JlYXRlU2VyaWVzKCksMz09PXRoaXMuX3N0YXR1cy52YWx1ZSgpJiZ0aGlzLnVwZGF0ZURhdGEoITEsITApfV9iZWZvcmVEYXRhUmVhZHkoKXt0aGlzLl9jdXJyZW50bHlTaG93bkRhdGFEZXNjcmlwdGlvbi5zZXRWYWx1ZSh7dGltZWZyYW1lOnRoaXMuX3RpbWVGcmFtZS52YWx1ZSgpLHN5bWJvbDp0aGlzLnN5bWJvbCgpfSl9X2RhdGFVcGRhdGVkKGUsdCxpKXt9X29uU3ltYm9sUmVzb2x2ZWQoZSl7dGhpcy5fYmFyQnVpbGRlckxvYWRlcj8uZGVzdHJveSgpLHRoaXMuX2JhckJ1aWxkZXJMb2FkZXI9bnVsbCx0aGlzLl9zeW1ib2xJbmZvPWUsdGhpcy5fc3ltYm9sSW5mb1dWLnNldFZhbHVlKGUpLHRoaXMuX3N5bWJvbFJlc29sdmVkLmZpcmUodGhpcy5fc3ltYm9sSW5mbyl9X2dldFZpZXdEYXRhKGUsdCl7Y29uc3QgaT1bXSxzPXtzZXJpZXM6W10sdm9sdW1lOml9O2xldCByPS0xLzA7Y29uc3QgYT10aGlzLl9iYXJzKCk7aWYoYS5pc0VtcHR5KCkpcmV0dXJuIHM7Y29uc3Qgbz10aGlzLm1pbkJhckluZGV4KCksbj10aGlzLm1heEJhckluZGV4KCk7aWYobnVsbD09PW98fG51bGw9PT1uKXJldHVybiBzO2NvbnN0IGw9dD8/KFAobyk/bzphLmZpcnN0SW5kZXgoKSksaD1hLmxhc3RJbmRleCgpO2lmKG51bGw9PT1sfHxudWxsPT09aClyZXR1cm4gcztsZXQgdTtjb25zdHtwcmVtYXJrZXRMaW5lQ29sb3I6ZCxwb3N0bWFya2V0TGluZUNvbG9yOl8sbmlnaHRMaW5lQ29sb3I6YyxwcmVtYXJrZXRUb3BDb2xvcjptLHByZW1hcmtldEJvdHRvbUNvbG9yOnAscG9zdG1hcmtldFRvcENvbG9yOnkscG9zdG1hcmtldEJvdHRvbUNvbG9yOmYsbmlnaHRUb3BDb2xvcjpDLG5pZ2h0Qm90dG9tQ29sb3I6Yn09dGhpcy5fZ2V0UHJlUG9zdE1hcmtldENvbG9ycygpLHY9ZT0+e3N3aXRjaChlKXtjYXNlIDA6cmV0dXJuW2QsbSxwXTtjYXNlIDE6cmV0dXJuW18seSxmXTtjYXNlIDM6cmV0dXJuW2MsQyxiXTtkZWZhdWx0OnJldHVybltdfX07Zm9yKGNvbnN0IHQgb2YgYS5yYW5nZUl0ZXJhdG9yKGwsaCkpe2NvbnN0e3ZhbHVlOmEsaW5kZXg6b309dDtpZihvPD1TLlVOUExPVFRBQkxFX1RJTUVfUE9JTlRfSU5ERVgpY29udGludWU7Y29uc3Qgbj10aGlzLl9taW5pQ2hhcnQuaW5kZXhUb1RpbWUobyk7aWYobnVsbD09PW4pe0IubG9nV2FybihgQ291bGRuJ3QgZmluZCB0aW1lIGZvciBpbmRleCAke299YCk7Y29udGludWV9Y29uc3QgbD0hdGhpcy5fbWluaUNoYXJ0LmlzRFdNUmVzb2x1dGlvbigpP00oMWUzKm4pOm47aWYobDw9ciljb250aW51ZTtyPWwsdT1sO2NvbnN0IGg9dGhpcy5fYmFySW5kZXhTZXNzaW9uKG8pCjtzLmxhc3RCYXJTZXNzaW9uPWgscy5zZXJpZXMucHVzaChlKGwsYSwuLi52KGgpKSk7Y29uc3QgZD1hWzRdPj1hWzFdP3RoaXMuX29yaWdpbmFsVm9sdW1lT3B0aW9ucy51cENvbG9yOnRoaXMuX29yaWdpbmFsVm9sdW1lT3B0aW9ucy5kb3duQ29sb3I7aS5wdXNoKHt0aW1lOmwsdmFsdWU6YVs1XSxjb2xvcjpkfSl9aWYodGhpcy5faXNNYWluUGxvdCgpJiZ2b2lkIDA9PT10JiZ2b2lkIDAhPT11KXN3aXRjaCgoMCxnLmNvbnZlcnRUaW1lRnJhbWVUb1N0cikodGhpcy5fdGltZUZyYW1lLnZhbHVlKCkpKXtjYXNlIjFEIjpzLmZpeExlZnRFZGdlVW50aWw9dSs4NjQwMC0xO2JyZWFrO2Nhc2UiTEFTVFNFU1NJT04iOntsZXQgZT1bXSx0PXUrODc4NDAtMTtjb25zdCBpPXRoaXMuX2dlbmVyYXRlQmFyc1RvU2Vzc2lvbkVuZCgpO2k/Lmxlbmd0aCYmbnVsbCE9PW4mJm4+aCYmKGU9aSx0PWlbaS5sZW5ndGgtMV0udGltZSkscy5maXhMZWZ0RWRnZVVudGlsPXQscy53aGl0ZXNwYWNlcz1lfX1yZXR1cm4gc31fYnVpbGRWaWV3RGF0YShlKXtzd2l0Y2godGhpcy5fb3JpZ2luYWxTZXJpZXNPcHRpb25zLmNoYXJ0VHlwZSl7Y2FzZSJwcmV0dHktaGlzdG9ncmFtIjpjYXNlImhpc3RvZ3JhbSI6e2NvbnN0IHQ9dGhpcy5fY3VycmVudFNlcmllc09wdGlvbnM7cmV0dXJuIHRoaXMuX2dldFZpZXdEYXRhKCgoZSxpKT0+ZnVuY3Rpb24oZSx0LGkscyl7Y29uc3Qgcj10WzRdO3JldHVybnt0aW1lOmUsY29sb3I6cj4wP2k6cyx2YWx1ZTpyfX0oZSxpLHQudXBDb2xvcix0LmRvd25Db2xvcikpLGUpfWNhc2UibGluZSI6e2NvbnN0IHQ9dGhpcy5fY3VycmVudFNlcmllc09wdGlvbnM7cmV0dXJuIHRoaXMuX2dldFZpZXdEYXRhKEwuYmluZChudWxsLHQuc291cmNlUGxvdEluZGV4Pz80KSxlKX1jYXNlImFyZWEiOmNhc2UiYmFzZWxpbmUiOnJldHVybiB0aGlzLl9nZXRWaWV3RGF0YSh4LGUpO2Nhc2UiYmFycyI6Y2FzZSJjYW5kbGVzdGlja3MiOnJldHVybiB0aGlzLl9nZXRWaWV3RGF0YShULGUpfX1fc2V0QWRkaXRpb25hbFNlcmllc0RhdGEoZSl7fV91cGRhdGVBZGRpdGlvbmFsU2VyaWVzRGF0YShlKXt9X2JhckluZGV4U2Vzc2lvbihlKXt9X29uU3ltYm9sRXJyb3IoZSl7Qi5sb2dXYXJuKCgwLEMuZW5jb2RlRXh0ZW5kZWRTeW1ib2xPckdldFNpbXBsZVN5bWJvbFN0cmluZykodGhpcy5fc3ltYm9sKSsiIHN5bWJvbCByZXNvbHZpbmcgZXJyb3I6ICIrZSksdGhpcy51cGRhdGVEYXRhKCEwKSx0aGlzLl9zdGF0dXMuc2V0VmFsdWUoMSl9X29uU3ltYm9sTm90UGVybWl0dGVkKCl7dGhpcy5fbm9EYXRhLnNldFZhbHVlKDEpfV9vbkludHJhZGF5U3ByZWFkTm90UGVybWl0dGVkKCl7dGhpcy5fc3RhdHVzLnNldFZhbHVlKDIpLHRoaXMuX25vRGF0YS5zZXRWYWx1ZSg0KSx0aGlzLl9pc01haW5QbG90KCkmJnRoaXMuX21pbmlDaGFydC5zaG93TWVzc2FnZSh5LnQobnVsbCx7Y29udGV4dDoibWluaSBjaGFydCBlcnJvciBtZXNzYWdlIn0saSg4MjkyNzMpKSl9X29uU3ltYm9sR3JvdXBOb3RQZXJtaXR0ZWQoKXt0aGlzLl9ub0RhdGEuc2V0VmFsdWUoMSl9X29uU3ltYm9sSW52YWxpZCgpe3RoaXMuX25vRGF0YS5zZXRWYWx1ZSgwKX1fb25SZXNvbHV0aW9uT3JFeGNoYW5nZU5vdFBlcm1pdHRlZEVycm9yKCl7Qi5sb2dFcnJvcigoMCxDLmVuY29kZUV4dGVuZGVkU3ltYm9sT3JHZXRTaW1wbGVTeW1ib2xTdHJpbmcpKHRoaXMuX3N5bWJvbCkrIiByZXNvbHV0aW9uIG9yIGV4Y2hhbmdlIHBlcm1pc3Npb24gZXJyb3IiKSx0aGlzLnVwZGF0ZURhdGEoITApLHRoaXMuX2lzTWFpblBsb3QoKSYmdGhpcy5fbWluaUNoYXJ0LnNob3dNZXNzYWdlKHkudChudWxsLHtjb250ZXh0OiJtaW5pIGNoYXJ0IGVycm9yIG1lc3NhZ2UifSxpKDI4NTg5MykpKSxzZXRUaW1lb3V0KCgoKT0+dGhpcy5fbWluaUNoYXJ0LnVwZGF0ZUF2YWlsYWJsZVRpbWVmcmFtZXMoKSksMWUzKX1fb25EYXRhRXJyb3IoKXsxIT09dGhpcy5fc3RhdHVzLnZhbHVlKCkmJnRoaXMuX3N0YXR1cy5zZXRWYWx1ZSgyKSx0aGlzLl9ub0RhdGEuc2V0VmFsdWUoMyl9X29uRGF0YUNvbXBsZXRlZCgpe3RoaXMuX3N0YXR1cy5zZXRWYWx1ZSgzKSx0aGlzLl9ub0RhdGEuc2V0VmFsdWUoMD09PXRoaXMuX2JhcnMoKS5zaXplKCk/MjpudWxsKSwyPT09dGhpcy5fbm9EYXRhLnZhbHVlKCkmJnRoaXMuX2lzTWFpblBsb3QoKSYmdGhpcy5fc2hvd05vRGF0YU1lc3NhZ2UoKX1fc2hvd05vRGF0YU1lc3NhZ2UoKXt0aGlzLl9taW5pQ2hhcnQuc2hvd01lc3NhZ2UoeS50KG51bGwse2NvbnRleHQ6Im1pbmkgY2hhcnQgZXJyb3IgbWVzc2FnZSJ9LGkoMjk5MTUzKSkpfWFzeW5jIF9vbkRhdGEoZSx0KXtudWxsIT09dGhpcy5taW5CYXJJbmRleCgpJiZudWxsIT09dGhpcy5tYXhCYXJJbmRleCgpJiYodGhpcy51cGRhdGVEYXRhKCExLHZvaWQgMCxlKSwzPT09dGhpcy5fc3RhdHVzLnZhbHVlKCkmJnRoaXMuX25vRGF0YS5zZXRWYWx1ZSgwPT09dGhpcy5fYmFycygpLnNpemUoKT8yOm51bGwpKX1fdXBkYXRlU2VyaWVzT3B0aW9ucyhlKXt0aGlzLl9vcmlnaW5hbFNlcmllc09wdGlvbnM9KDAsYS5kZWZhdWx0KSh0aGlzLl9vcmlnaW5hbFNlcmllc09wdGlvbnMsZSksdGhpcy5fY3VycmVudFNlcmllc09wdGlvbnM9KDAsYS5kZWZhdWx0KSh0aGlzLl9jdXJyZW50U2VyaWVzT3B0aW9ucyx0aGlzLl9vcmlnaW5hbFNlcmllc09wdGlvbnMpLHRoaXMuX3VwZGF0ZVNlcmllc0NvbG9yKCksdm9pZCAwIT09dGhpcy5fY3VycmVudFNlcmllc09wdGlvbnMudmlzaWJsZSYmdGhpcy5faXNWaXNpYmxlLnNldFZhbHVlKHRoaXMuX2N1cnJlbnRTZXJpZXNPcHRpb25zLnZpc2libGUpfV9yZWNyZWF0ZVNlcmllcygpe2NvbnN0IGU9dGhpcy5fbWluaUNoYXJ0LndpZGdldCgpO2UucmVtb3ZlU2VyaWVzKHRoaXMuX3NlcmllcyksZS5yZW1vdmVTZXJpZXModGhpcy5fdm9sdW1lKSx0aGlzLl93aGl0ZXNwYWNlcyYmKGUucmVtb3ZlU2VyaWVzKHRoaXMuX3doaXRlc3BhY2VzKSx0aGlzLl93aGl0ZXNwYWNlcz1udWxsKSx0aGlzLl9zZXJpZXM9dGhpcy5fY3JlYXRlU2VyaWVzKCksCnRoaXMuX3ZvbHVtZT10aGlzLl9jcmVhdGVWb2x1bWUoKSx0aGlzLl9jaGFydFR5cGUuc2V0VmFsdWUodGhpcy5fY3VycmVudFNlcmllc09wdGlvbnMuY2hhcnRUeXBlKSx0aGlzLl9zZXJpZXNDaGFuZ2VkLmZpcmUoKX1faW5pdEJhckJ1aWxkZXIoZSl7cmV0dXJuIG51bGw9PT10aGlzLl9iYXJCdWlsZGVyTG9hZGVyJiYodGhpcy5fYmFyQnVpbGRlckxvYWRlcj1uZXcgVi5Bc3luY1Jlc291cmNlV3JhcHBlcihQcm9taXNlLmFsbChbaS5lKDEyMTgxKSxpLmUoNTU5NjkpLGkuZSg2MzE2MCksaS5lKDkzMjc5KV0pLnRoZW4oaS5iaW5kKGksMTY0NDc1KSkudGhlbigodD0+bmV3IHQuTWluaUNoYXJ0QmFyQnVpbGRlcihlKSkpKSksdGhpcy5fYmFyQnVpbGRlckxvYWRlci5wcm9taXNlKCl9X2ZpcnN0QW5kTGFzdFZhbHVlc0ZvclNlcmllc0NvbG9yKGUsdCl7aWYobnVsbD09PXRoaXMuX2ZpcnN0VmFsdWVDYWNoZXx8IXRoaXMuX2RhdGFMZW5ndGhJbmZvKXJldHVybiBudWxsO2lmKCJsaW5lIiE9PWUmJiJhcmVhIiE9PWUpcmV0dXJuIG51bGw7Y29uc3QgaT1udWxsPT09dGhpcy5fZGF0YUxlbmd0aEluZm8ubGFzdEJhckluZGV4P251bGw6dGhpcy5fc2VyaWVzLmRhdGFCeUluZGV4KHRoaXMuX2RhdGFMZW5ndGhJbmZvLmxhc3RCYXJJbmRleCk7cmV0dXJuIG51bGwhPT1pfHx0Pyh0PXQ/P2ksW3RoaXMuX2ZpcnN0VmFsdWVDYWNoZSx0LnZhbHVlXSk6bnVsbH1fdXBkYXRlU2VyaWVzQ29sb3IoZSl7Y29uc3QgdD10aGlzLl9vcmlnaW5hbFNlcmllc09wdGlvbnMsaT10LmNoYXJ0VHlwZSxzPXRoaXMuX2ZpcnN0QW5kTGFzdFZhbHVlc0ZvclNlcmllc0NvbG9yKGksZSk7aWYobnVsbD09PXMpcmV0dXJuO2NvbnN0W3IsYV09cztpZigibGluZSI9PT1pfHwiYXJlYSI9PT1pKXtjb25zdCBlPSJsaW5lIj09PWk/YT49cjphPnI7aWYoImFyZWEiPT09aSl7Y29uc3QgaT10aGlzLl9jdXJyZW50U2VyaWVzT3B0aW9ucztlPyhpLmxpbmVDb2xvcj10Lmdyb3dpbmdMaW5lQ29sb3J8fHQubGluZUNvbG9yLGkudG9wQ29sb3I9dC5ncm93aW5nVG9wQ29sb3J8fHQudG9wQ29sb3IsaS5ib3R0b21Db2xvcj10Lmdyb3dpbmdCb3R0b21Db2xvcnx8dC5ib3R0b21Db2xvcik6KGkubGluZUNvbG9yPXQuZmFsbGluZ0xpbmVDb2xvcnx8dC5saW5lQ29sb3IsaS50b3BDb2xvcj10LmZhbGxpbmdUb3BDb2xvcnx8dC50b3BDb2xvcixpLmJvdHRvbUNvbG9yPXQuZmFsbGluZ0JvdHRvbUNvbG9yfHx0LmJvdHRvbUNvbG9yKSxpLmxpbmVDb2xvcnx8KGkubGluZUNvbG9yPXRoaXMuX3Nlcmllcy5vcHRpb25zKCkubGluZUNvbG9yKSx0aGlzLl9zZXJpZXMuYXBwbHlPcHRpb25zKHt0b3BDb2xvcjppLnRvcENvbG9yLGJvdHRvbUNvbG9yOmkuYm90dG9tQ29sb3IsbGluZUNvbG9yOmkubGluZUNvbG9yfSksdGhpcy5fZGlyZWN0aW9uQmFzZWRDb2xvci5zZXRWYWx1ZShpLmxpbmVDb2xvcil9ZWxzZSBpZigibGluZSI9PT1pKXtjb25zdHtjb2xvcjppLGdyb3dpbmdDb2xvcjpzPWksZmFsbGluZ0NvbG9yOnI9aX09dCxhPXRoaXMuX2N1cnJlbnRTZXJpZXNPcHRpb25zO2EuY29sb3I9ZT9zOnIsYS5jb2xvcnx8KGEuY29sb3I9dGhpcy5fc2VyaWVzLm9wdGlvbnMoKS5jb2xvciksdGhpcy5fc2VyaWVzLmFwcGx5T3B0aW9ucyh7Y29sb3I6YS5jb2xvcn0pLHRoaXMuX2RpcmVjdGlvbkJhc2VkQ29sb3Iuc2V0VmFsdWUoYS5jb2xvcil9fX1fcHJpY2VGb3JtYXQoKXtjb25zdCBlPXRoaXMuX3N5bWJvbEluZm8/P3RoaXMuX21pbmlDaGFydC5tYWluUGxvdCgpLnN5bWJvbEluZm8oKTtyZXR1cm4gbnVsbD09PWU/bnVsbDpGKGUpfV9vbkxhc3RCYXJEYXRhTWF5Q2hhbmdlKCl7aWYoIXRoaXMuX2xlZ2VuZExhc3RCYXJEYXRhKXJldHVybjtjb25zdCBlPXRoaXMuX21pbmlDaGFydC5tYWluUGxvdCgpLmxhc3RCYXJJbmRleCgpO251bGwhPT1lP3RoaXMuX2xlZ2VuZExhc3RCYXJEYXRhLnNldFZhbHVlKHRoaXMuZ2V0TGVnZW5kRGF0YShlLHIuTWlzbWF0Y2hEaXJlY3Rpb24uTmVhcmVzdExlZnQpKTp0aGlzLl9sZWdlbmRMYXN0QmFyRGF0YS5zZXRWYWx1ZShudWxsKX1fY3JlYXRlU2VyaWVzKCl7Y29uc3QgZT10aGlzLl9taW5pQ2hhcnQud2lkZ2V0KCk7bGV0IHQ7c3dpdGNoKHRoaXMuX2N1cnJlbnRTZXJpZXNPcHRpb25zLmNoYXJ0VHlwZSl7Y2FzZSJsaW5lIjp0PWUuYWRkU2VyaWVzKHIuTGluZVNlcmllcyx0aGlzLl9jdXJyZW50U2VyaWVzT3B0aW9ucyk7YnJlYWs7Y2FzZSJoaXN0b2dyYW0iOnQ9ZS5hZGRTZXJpZXMoci5IaXN0b2dyYW1TZXJpZXMsdGhpcy5fY3VycmVudFNlcmllc09wdGlvbnMpO2JyZWFrO2Nhc2UiYXJlYSI6dD1lLmFkZFNlcmllcyhyLkFyZWFTZXJpZXMsdGhpcy5fY3VycmVudFNlcmllc09wdGlvbnMpO2JyZWFrO2Nhc2UiYmFycyI6dD1lLmFkZFNlcmllcyhyLkJhclNlcmllcyx0aGlzLl9jdXJyZW50U2VyaWVzT3B0aW9ucyk7YnJlYWs7Y2FzZSJjYW5kbGVzdGlja3MiOnQ9ZS5hZGRTZXJpZXMoci5DYW5kbGVzdGlja1Nlcmllcyx0aGlzLl9jdXJyZW50U2VyaWVzT3B0aW9ucyk7YnJlYWs7Y2FzZSJiYXNlbGluZSI6dD1lLmFkZFNlcmllcyhyLkJhc2VsaW5lU2VyaWVzLHRoaXMuX2N1cnJlbnRTZXJpZXNPcHRpb25zKTticmVhaztjYXNlInByZXR0eS1oaXN0b2dyYW0iOntjb25zdCBpPW5ldyBELlByZXR0eUhpc3RvZ3JhbVNlcmllczt0PWUuYWRkQ3VzdG9tU2VyaWVzKGksdGhpcy5fY3VycmVudFNlcmllc09wdGlvbnMpfX1yZXR1cm4gbnVsbD09PXRoaXMuX29yaWdpbmFsU2NhbGVNb2RlJiYodGhpcy5fb3JpZ2luYWxTY2FsZU1vZGU9dC5wcmljZVNjYWxlKCkub3B0aW9ucygpLm1vZGUpLHRoaXMuX2lzVmlzaWJsZS5zZXRWYWx1ZSh0Lm9wdGlvbnMoKS52aXNpYmxlKSx0LnByaWNlU2NhbGUoKS5hcHBseU9wdGlvbnMoe3NjYWxlTWFyZ2luczp0aGlzLl9jdXJyZW50U2VyaWVzT3B0aW9ucy5zY2FsZU1hcmdpbnN9KSx0fV9jcmVhdGVWb2x1bWUoKXtjb25zdCBlPXRoaXMuX21pbmlDaGFydC53aWRnZXQoKS5hZGRTZXJpZXMoci5IaXN0b2dyYW1TZXJpZXMsdGhpcy5fb3JpZ2luYWxWb2x1bWVPcHRpb25zKQo7cmV0dXJuIGUucHJpY2VTY2FsZSgpLmFwcGx5T3B0aW9ucyh7c2NhbGVNYXJnaW5zOnRoaXMuX29yaWdpbmFsVm9sdW1lT3B0aW9ucy5zY2FsZU1hcmdpbnN9KSxlfV9hcHBseVByaWNlU2NhbGVGb3JtYXR0ZXIoKXtpZigicHJpY2VGb3JtYXQiaW4gdGhpcy5fb3JpZ2luYWxTZXJpZXNPcHRpb25zKXJldHVybjtjb25zdCBlPXRoaXMuX3ByaWNlRm9ybWF0KCk7ZSYmKHRoaXMuX2N1cnJlbnRTZXJpZXNPcHRpb25zLnByaWNlRm9ybWF0PWUsdGhpcy5fc2VyaWVzLmFwcGx5T3B0aW9ucyh0aGlzLl9jdXJyZW50U2VyaWVzT3B0aW9ucykpfV91cGRhdGVTZXNzaW9uSWQoKXt0aGlzLl9pc0xhc3RTZXNzaW9uSW50ZXJ2YWwudmFsdWUoKT90aGlzLl9zZXNzaW9uSWQuc2V0VmFsdWUodGhpcy5faGFzT3Zlcm5pZ2h0U2Vzc2lvbigpPyIyNGgiOiJleHRlbmRlZCIpOnRoaXMuX3Nlc3Npb25JZC5zZXRWYWx1ZSh0aGlzLl9zeW1ib2wuc2Vzc2lvbil9X3VwZGF0ZVdoaXRlc3BhY2VzKGUpe3ZvaWQgMD09PWV8fDA9PT1lLmxlbmd0aD9udWxsIT09dGhpcy5fd2hpdGVzcGFjZXMmJih0aGlzLl9taW5pQ2hhcnQud2lkZ2V0KCkucmVtb3ZlU2VyaWVzKHRoaXMuX3doaXRlc3BhY2VzKSx0aGlzLl93aGl0ZXNwYWNlcz1udWxsKToobnVsbD09PXRoaXMuX3doaXRlc3BhY2VzJiYodGhpcy5fd2hpdGVzcGFjZXM9dGhpcy5fbWluaUNoYXJ0LndpZGdldCgpLmFkZFNlcmllcyhyLkxpbmVTZXJpZXMpKSx0aGlzLl93aGl0ZXNwYWNlc0RhdGE9bnVsbD09PXRoaXMuX3doaXRlc3BhY2VzP3ZvaWQgMDplLHRoaXMuX3doaXRlc3BhY2VzLnNldERhdGEoZSkpfV9nZW5lcmF0ZUJhcnNUb1Nlc3Npb25FbmQoKXtjb25zdCBlPXRoaXMuc3ltYm9sSW5mbygpLHQ9dGhpcy5fYmFycygpLmxhc3RJbmRleCgpLGk9dGhpcy5tYXhCYXJJbmRleCgpO2lmKGUmJnQmJmkmJnRoaXMuX2lzTGFzdFNlc3Npb25JbnRlcnZhbC52YWx1ZSgpKXtsZXQgZT10aGlzLl9taW5pQ2hhcnQuaW5kZXhUb1RpbWUodCk7aWYobnVsbD09PWUpcmV0dXJuO2NvbnN0IHM9W107Zm9yKGxldCByPXQrMTtyPD1pO3IrPTEpe2NvbnN0IHQ9dGhpcy5fbWluaUNoYXJ0LmluZGV4VG9UaW1lKHIpPz9lKzYwO3MucHVzaCh7dGltZTpNKDFlMyp0KX0pLGU9dH1yZXR1cm4gc319X2dldFByZVBvc3RNYXJrZXRDb2xvcnMoKXtpZighdGhpcy5faXNNYWluUGxvdCgpKXJldHVybnt9O2xldCBlLHQsaSxzLHIsYTtjb25zdCBvPXRoaXMuX29yaWdpbmFsU2VyaWVzT3B0aW9ucy5wcmVtYXJrZXRMaW5lQ29sb3Isbj10aGlzLl9vcmlnaW5hbFNlcmllc09wdGlvbnMucG9zdG1hcmtldExpbmVDb2xvcixoPXRoaXMuX29yaWdpbmFsU2VyaWVzT3B0aW9ucy5uaWdodExpbmVDb2xvcjtpZigiYXJlYSI9PT10aGlzLl9vcmlnaW5hbFNlcmllc09wdGlvbnMuY2hhcnRUeXBlJiZvJiZuJiZoKXtjb25zdCB1PXRoaXMuX2N1cnJlbnRTZXJpZXNPcHRpb25zLGQ9dS5ncm93aW5nVG9wQ29sb3J8fHUuZmFsbGluZ1RvcENvbG9yfHx1LnRvcENvbG9yO2lmKHZvaWQgMCE9PWQpe2NvbnN0IHQ9KDAsbC50cnlQYXJzZVJnYmEpKGQpO2lmKG51bGwhPT10KXtjb25zdCBzPXRbM107ZT0oMCxJLmFwcGx5QWxwaGEpKG8scyksaT0oMCxJLmFwcGx5QWxwaGEpKG4scykscj0oMCxJLmFwcGx5QWxwaGEpKGgscyl9fWNvbnN0IF89dS5ncm93aW5nQm90dG9tQ29sb3J8fHUuZmFsbGluZ0JvdHRvbUNvbG9yfHx1LmJvdHRvbUNvbG9yO2lmKHZvaWQgMCE9PV8pe2NvbnN0IGU9KDAsbC50cnlQYXJzZVJnYmEpKF8pO2lmKG51bGwhPT1lKXtjb25zdCBpPWVbM107dD0oMCxJLmFwcGx5QWxwaGEpKG8saSkscz0oMCxJLmFwcGx5QWxwaGEpKG4saSksYT0oMCxJLmFwcGx5QWxwaGEpKGgsaSl9fX1yZXR1cm57cHJlbWFya2V0TGluZUNvbG9yOm8scG9zdG1hcmtldExpbmVDb2xvcjpuLG5pZ2h0TGluZUNvbG9yOmgscHJlbWFya2V0VG9wQ29sb3I6ZSxwb3N0bWFya2V0VG9wQ29sb3I6aSxuaWdodFRvcENvbG9yOnIscHJlbWFya2V0Qm90dG9tQ29sb3I6dCxwb3N0bWFya2V0Qm90dG9tQ29sb3I6cyxuaWdodEJvdHRvbUNvbG9yOmF9fV90aW1lU2NhbGVTaXplQ2hhbmdlZCgpe3RoaXMuX2lzTWFpblBsb3QoKSYmUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKCk9PnRoaXMuX21pbmlDaGFydC5maXRDb250ZW50KCkpKX19fX1dKTs="}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/81072.2927a177231fdd0e24c1.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:13.733Z","timestamp":1785148033733,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/81072.2927a177231fdd0e24c1.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:13 GMT\r\ncontent-type: text/css; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a58ab11-40c\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Thu, 16 Jul 2026 09:57:37 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/16/2026 11:03:21\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: f47187cb95cc07c27c986e5b76cb1b40\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":1036,"size_decoded":1218,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with very long lines (1036), with no line terminators","md5":"e625e6a9b3d1d0e7872454941e3a0f3c","sha1":"c4b93e2d6c31cccd6e1572e5faff07bd3456556c","sha256":"ff2fab41e51936266791aedf3104809dd2780906b7303dfdf954afe900eecaa2","sha512":"b6c94e5b14cef72a123c0b05f0efd06b022618632b6adfd3bda53ab30eb0b05b5bafc56a4dee63cec63f5606c2d69be7bbd4d52c7cfcba473b133495be1ac97a","ssdeep":"","tlshash":"0511872af08015a0b4bfcb384b14d3a9003190a29ea223ed77a0bcb18bc17b945d1008","first_seen":"2026-07-16T13:40:49.881902Z","last_seen":"2026-07-27T12:54:15.37577Z","times_seen":349,"resource_available":false,"data":"Lm1lbnVXcmFwLWxCSXhJd3R6e2JhY2tncm91bmQtY29sb3I6dmFyKC0tdHYtY29sb3ItcG9wdXAtYmFja2dyb3VuZCx2YXIoLS1jb2xvci1wb3B1cC1iYWNrZ3JvdW5kKSk7Ym9yZGVyLXJhZGl1czo2cHg7Ym94LXNoYWRvdzowIDJweCA0cHggdmFyKC0tY29sb3Itc2hhZG93LXByaW1hcnktbmV1dHJhbC1leHRyYS1oZWF2eSk7Ym94LXNpemluZzpib3JkZXItYm94O3RleHQtYWxpZ246c3RhcnQ7LXdlYmtpdC11c2VyLXNlbGVjdDpub25lO3VzZXItc2VsZWN0Om5vbmU7ei1pbmRleDoxMDB9Lm1lbnVXcmFwLWxCSXhJd3R6LmlzTWVhc3VyaW5nLWxCSXhJd3R6e29wYWNpdHk6MDtwb2ludGVyLWV2ZW50czpub25lO3Bvc2l0aW9uOmZpeGVkO3Zpc2liaWxpdHk6aGlkZGVufS5tZW51V3JhcC1sQkl4SXd0ejpmb2N1c3tvdXRsaW5lOm5vbmV9LnNjcm9sbFdyYXAtbEJJeEl3dHp7aGVpZ2h0OjEwMCU7b3ZlcmZsb3cteDpoaWRkZW47b3ZlcmZsb3cteTphdXRvfS5zY3JvbGxXcmFwLWxCSXhJd3R6Lm1vbWVudHVtQmFzZWQtbEJJeEl3dHp7LXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6dG91Y2h9LnNjcm9sbFdyYXAtbEJJeEl3dHo6Oi13ZWJraXQtc2Nyb2xsYmFye2hlaWdodDo1cHg7d2lkdGg6NXB4fS5zY3JvbGxXcmFwLWxCSXhJd3R6Ojotd2Via2l0LXNjcm9sbGJhci10aHVtYntiYWNrZ3JvdW5kLWNsaXA6Y29udGVudC1ib3g7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS10di1jb2xvci1zY3JvbGxiYXItdGh1bWItYmFja2dyb3VuZCx2YXIoLS1jb2xvci1zY3JvbGwtYmcpKTtib3JkZXI6MXB4IHNvbGlkICMwMDAwO2JvcmRlci1yYWRpdXM6M3B4fS5zY3JvbGxXcmFwLWxCSXhJd3R6Ojotd2Via2l0LXNjcm9sbGJhci10cmFja3tiYWNrZ3JvdW5kLWNvbG9yOmluaXRpYWw7Ym9yZGVyLXJhZGl1czozcHh9LnNjcm9sbFdyYXAtbEJJeEl3dHo6Oi13ZWJraXQtc2Nyb2xsYmFyLWNvcm5lcntkaXNwbGF5Om5vbmV9Lm1lbnVCb3gtbEJJeEl3dHp7cGFkZGluZzo2cHggMH0uaXNIaWRkZW4tbEJJeEl3dHp7ZGlzcGxheTpub25lfQ=="}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/18512.a3bcdc71c68601b7dbfc.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.017Z","timestamp":1785148034017,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/18512.a3bcdc71c68601b7dbfc.js HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a61b1a8-480d\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Thu, 23 Jul 2026 06:16:08 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/23/2026 10:17:28\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 04fd7605c5259504c28f5e245bc242a2\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":18445,"size_decoded":8139,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (3072)","md5":"038623c38228a4865caf89b1ceed9af4","sha1":"fd2acb21c02b96c3c9c1f1081dab960c7031d783","sha256":"b8d3050d5622dc00f843f06bba75b96d7e07f17b7a71a3e5b77c9d30e3c91720","sha512":"dccd582f4658fc2f09410a5304dd63fe7d4e6420b4a961d737904968f4ca733ac1a0ece06f7a4e90ebf80305f0edcfd2a5fb95ea52ea369659b342075df8d55b","ssdeep":"384:he30HE+F6f00MWmgOsLEWioQLsiJrTNk20ptZTEjifF:hJEU6f00yzsYWxQLsiJrTT0ptPF","tlshash":"6282a5cdf5c0b0a75a93b8b040bf128bb23a6940bc5d9130d116f9d57d7a81ea163fad","first_seen":"2026-07-23T14:00:31.677621Z","last_seen":"2026-07-27T12:48:39.717188Z","times_seen":57,"resource_available":true,"data":"InVzZSBzdHJpY3QiOyhzZWxmLndlYnBhY2tDaHVua3RyYWRpbmd2aWV3PXNlbGYud2VicGFja0NodW5rdHJhZGluZ3ZpZXd8fFtdKS5wdXNoKFtbMTg1MTJdLHs0ODkwNTcobix0LGUpe2UuZCh0LHskOigpPT5aLEE6KCk9PlIsQjooKT0+TCxDOigpPT5QLEQ6KCk9PnksRTooKT0+QyxGOigpPT5ILEc6KCk9PlEsSDooKT0+ZixJOigpPT5qLEo6KCk9PkQsTDooKT0+VyxNOigpPT5lbixOOigpPT5hbixPOigpPT50bixQOigpPT5xLFE6KCk9PnVuLFI6KCk9PlUsUzooKT0+RyxUOigpPT5fLFU6KCk9PmNuLFY6KCk9PkksVzooKT0+JCxaOigpPT5YLGE6KCk9PkssYTM6KCk9PnJuLGE0OigpPT5vbixiOigpPT5GLGQ6KCk9PnosZTooKT0+TSxmOigpPT5CLGc6KCk9PkosaDooKT0+WSxpOigpPT5BLGo6KCk9PmssazooKT0+dSxsOigpPT5OLG06KCk9PkUsbjooKT0+eCxvOigpPT5kLHA6KCk9PmwscTooKT0+ZyxyOigpPT52LHM6KCk9Pm0sdDooKT0+aSx1OigpPT5zLHY6KCk9PmIseTooKT0+Uyx6OigpPT5UfSk7dmFyIHI9ZSg1NjQ1MjEpLGE9ZSg2NDQzMjApLG89ZSg0NzQxMzYpO2lmKDIxMTghPWUuail2YXIgYz1lKDgyMzcwOSk7dmFyIHU9ZnVuY3Rpb24obil7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIG59fSghMCksaT1mdW5jdGlvbigpe307dmFyIGY9ZnVuY3Rpb24obil7cmV0dXJuIG59OyJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJlN5bWJvbC5hc3luY0l0ZXJhdG9yJiZTeW1ib2wuYXN5bmNJdGVyYXRvcjt2YXIgbD1mdW5jdGlvbihuLHQpeygwLGEuZGVmYXVsdCkobix0KSxPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzJiZPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHQpLmZvckVhY2goKGZ1bmN0aW9uKGUpe25bZV09dFtlXX0pKX0scz1mdW5jdGlvbihuLHQpe3ZhciBlO3JldHVybihlPVtdKS5jb25jYXQuYXBwbHkoZSx0Lm1hcChuKSl9O2Z1bmN0aW9uIHYobix0KXt2YXIgZT1uLmluZGV4T2YodCk7ZT49MCYmbi5zcGxpY2UoZSwxKX1mdW5jdGlvbiBkKG4pe3ZhciB0PSExO3JldHVybiBmdW5jdGlvbigpe3R8fCh0PSEwLG4oKSl9fXZhciBwPWZ1bmN0aW9uKG4pe3Rocm93IG59LGg9ZnVuY3Rpb24obil7cmV0dXJue3ZhbHVlOm4sZG9uZTohMH19O2Z1bmN0aW9uIGcobix0LGUpe3ZvaWQgMD09PXQmJih0PXApLHZvaWQgMD09PWUmJihlPSJpdGVyYXRvciIpO3ZhciByPXttZXRhOntuYW1lOmV9LG5leHQ6bix0aHJvdzp0LHJldHVybjpoLGlzU2FnYUl0ZXJhdG9yOiEwfTtyZXR1cm4idW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmKHJbU3ltYm9sLml0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiByfSkscn1mdW5jdGlvbiB5KG4sdCl7dmFyIGU9dC5zYWdhU3RhY2s7Y29uc29sZS5lcnJvcihuKSxjb25zb2xlLmVycm9yKGUpfXZhciBBPWZ1bmN0aW9uKG4pe3JldHVybiBuZXcgRXJyb3IoIlxuICByZWR1eC1zYWdhOiBFcnJvciBjaGVja2luZyBob29rcyBkZXRlY3RlZCBhbiBpbmNvbnNpc3RlbnQgc3RhdGUuIFRoaXMgaXMgbGlrZWx5IGEgYnVnXG4gIGluIHJlZHV4LXNhZ2EgY29kZSBhbmQgbm90IHlvdXJzLiBUaGFua3MgZm9yIHJlcG9ydGluZyB0aGlzIGluIHRoZSBwcm9qZWN0J3MgZ2l0aHViIHJlcG8uXG4gIEVycm9yOiAiK24rIlxuIil9LEU9ZnVuY3Rpb24obil7cmV0dXJuIEFycmF5LmFwcGx5KG51bGwsbmV3IEFycmF5KG4pKX0sQz1mdW5jdGlvbihuKXtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIG4oT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsci5TQUdBX0FDVElPTix7dmFsdWU6ITB9KSl9fSxUPWZ1bmN0aW9uKG4pe3JldHVybiBuPT09ci5URVJNSU5BVEV9LFM9ZnVuY3Rpb24obil7cmV0dXJuIG49PT1yLlRBU0tfQ0FOQ0VMfSxtPWZ1bmN0aW9uKG4pe3JldHVybiBUKG4pfHxTKG4pfTtmdW5jdGlvbiBOKG4sdCl7dmFyIGU9T2JqZWN0LmtleXMobikscj1lLmxlbmd0aDt2YXIgYSxjPTAsdT0oMCxvLmFycmF5KShuKT9FKHIpOnt9LGY9e307cmV0dXJuIGUuZm9yRWFjaCgoZnVuY3Rpb24obil7dmFyIGU9ZnVuY3Rpb24oZSxvKXthfHwob3x8bShlKT8odC5jYW5jZWwoKSx0KGUsbykpOih1W25dPWUsKytjPT09ciYmKGE9ITAsdCh1KSkpKX07ZS5jYW5jZWw9aSxmW25dPWV9KSksdC5jYW5jZWw9ZnVuY3Rpb24oKXthfHwoYT0hMCxlLmZvckVhY2goKGZ1bmN0aW9uKG4pe3JldHVybiBmW25dLmNhbmNlbCgpfSkpKX0sZn1mdW5jdGlvbiBrKG4pe3JldHVybntuYW1lOm4ubmFtZXx8ImFub255bW91cyIsbG9jYXRpb246YihuKX19ZnVuY3Rpb24gYihuKXtyZXR1cm4gbltyLlNBR0FfTE9DQVRJT05dfWZ1bmN0aW9uIEwoKXtmb3IodmFyIG49YXJndW1lbnRzLmxlbmd0aCx0PW5ldyBBcnJheShuKSxlPTA7ZTxuO2UrKyl0W2VdPWFyZ3VtZW50c1tlXTtyZXR1cm4gMD09PXQubGVuZ3RoP2Z1bmN0aW9uKG4pe3JldHVybiBufToxPT09dC5sZW5ndGg/dFswXTp0LnJlZHVjZSgoZnVuY3Rpb24obix0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gbih0LmFwcGx5KHZvaWQgMCxhcmd1bWVudHMpKX19KSl9dmFyIHc9e2lzRW1wdHk6dSxwdXQ6aSx0YWtlOml9O2Z1bmN0aW9uIE8obix0KXt2b2lkIDA9PT1uJiYobj0xMCk7dmFyIGU9bmV3IEFycmF5KG4pLHI9MCxhPTAsbz0wLGM9ZnVuY3Rpb24odCl7ZVthXT10LGE9KGErMSklbixyKyt9LHU9ZnVuY3Rpb24oKXtpZigwIT1yKXt2YXIgdD1lW29dO3JldHVybiBlW29dPW51bGwsci0tLG89KG8rMSklbix0fX0saT1mdW5jdGlvbigpe2Zvcih2YXIgbj1bXTtyOyluLnB1c2godSgpKTtyZXR1cm4gbn07cmV0dXJue2lzRW1wdHk6ZnVuY3Rpb24oKXtyZXR1cm4gMD09cn0scHV0OmZ1bmN0aW9uKHUpe3ZhciBmO2lmKHI8biljKHUpO2Vsc2Ugc3dpdGNoKHQpe2Nhc2UgMTp0aHJvdyBuZXcgRXJyb3IoIkNoYW5uZWwncyBCdWZmZXIgb3ZlcmZsb3chIik7Y2FzZSAzOmVbYV09dSxvPWE9KGErMSklbjticmVhaztjYXNlIDQ6Zj0yKm4sZT1pKCkscj1lLmxlbmd0aCxhPWUubGVuZ3RoLG89MCxlLmxlbmd0aD1mLG49ZixjKHUpfX0sdGFrZTp1LGZsdXNoOml9fXZhciB4PWZ1bmN0aW9uKCl7cmV0dXJuIHcKfSxJPWZ1bmN0aW9uKG4pe3JldHVybiBPKG4sMyl9LE09ZnVuY3Rpb24obil7cmV0dXJuIE8obiw0KX0saj1PYmplY3QuZnJlZXplKHtfX3Byb3RvX186bnVsbCxub25lOngsZml4ZWQ6ZnVuY3Rpb24obil7cmV0dXJuIE8obiwxKX0sZHJvcHBpbmc6ZnVuY3Rpb24obil7cmV0dXJuIE8obiwyKX0sc2xpZGluZzpJLGV4cGFuZGluZzpNfSksXz0iVEFLRSIscT0iUFVUIixSPSJBTEwiLFU9IlJBQ0UiLFA9IkNBTEwiLEs9IkNQUyIsSD0iRk9SSyIsRD0iSk9JTiIsRj0iQ0FOQ0VMIixHPSJTRUxFQ1QiLHo9IkFDVElPTl9DSEFOTkVMIixCPSJDQU5DRUxMRUQiLEo9IkZMVVNIIixRPSJHRVRfQ09OVEVYVCIsWT0iU0VUX0NPTlRFWFQiLFY9ZnVuY3Rpb24obix0KXt2YXIgZTtyZXR1cm4oZT17fSlbci5JT109ITAsZS5jb21iaW5hdG9yPSExLGUudHlwZT1uLGUucGF5bG9hZD10LGV9O2Z1bmN0aW9uIFcobix0KXtyZXR1cm4gdm9pZCAwPT09biYmKG49IioiKSwoMCxvLnBhdHRlcm4pKG4pPygoMCxvLm5vdFVuZGVmKSh0KSYmY29uc29sZS53YXJuKCJ0YWtlKHBhdHRlcm4pIHRha2VzIG9uZSBhcmd1bWVudCBidXQgdHdvIHdlcmUgcHJvdmlkZWQuIENvbnNpZGVyIHBhc3NpbmcgYW4gYXJyYXkgZm9yIGxpc3RlbmluZyB0byBzZXZlcmFsIGFjdGlvbiB0eXBlcyIpLFYoXyx7cGF0dGVybjpufSkpOigwLG8ubXVsdGljYXN0KShuKSYmKDAsby5ub3RVbmRlZikodCkmJigwLG8ucGF0dGVybikodCk/VihfLHtjaGFubmVsOm4scGF0dGVybjp0fSk6KDAsby5jaGFubmVsKShuKT8oKDAsby5ub3RVbmRlZikodCkmJmNvbnNvbGUud2FybigidGFrZShjaGFubmVsKSB0YWtlcyBvbmUgYXJndW1lbnQgYnV0IHR3byB3ZXJlIHByb3ZpZGVkLiBTZWNvbmQgYXJndW1lbnQgaXMgaWdub3JlZC4iKSxWKF8se2NoYW5uZWw6bn0pKTp2b2lkIDB9ZnVuY3Rpb24gWChuLHQpe3JldHVybigwLG8udW5kZWYpKHQpJiYodD1uLG49dm9pZCAwKSxWKHEse2NoYW5uZWw6bixhY3Rpb246dH0pfWZ1bmN0aW9uIFoobil7dmFyIHQ9VihSLG4pO3JldHVybiB0LmNvbWJpbmF0b3I9ITAsdH1mdW5jdGlvbiAkKG4pe3ZhciB0PVYoVSxuKTtyZXR1cm4gdC5jb21iaW5hdG9yPSEwLHR9ZnVuY3Rpb24gbm4obix0KXt2YXIgZSxyPW51bGw7cmV0dXJuKDAsby5mdW5jKShuKT9lPW46KCgwLG8uYXJyYXkpKG4pPyhyPW5bMF0sZT1uWzFdKToocj1uLmNvbnRleHQsZT1uLmZuKSxyJiYoMCxvLnN0cmluZykoZSkmJigwLG8uZnVuYykocltlXSkmJihlPXJbZV0pKSx7Y29udGV4dDpyLGZuOmUsYXJnczp0fX1mdW5jdGlvbiB0bihuKXtmb3IodmFyIHQ9YXJndW1lbnRzLmxlbmd0aCxlPW5ldyBBcnJheSh0PjE/dC0xOjApLHI9MTtyPHQ7cisrKWVbci0xXT1hcmd1bWVudHNbcl07cmV0dXJuIFYoUCxubihuLGUpKX1mdW5jdGlvbiBlbihuKXtmb3IodmFyIHQ9YXJndW1lbnRzLmxlbmd0aCxlPW5ldyBBcnJheSh0PjE/dC0xOjApLHI9MTtyPHQ7cisrKWVbci0xXT1hcmd1bWVudHNbcl07cmV0dXJuIFYoSCxubihuLGUpKX1mdW5jdGlvbiBybihuKXtyZXR1cm4gVihELG4pfWZ1bmN0aW9uIGFuKG4pe3JldHVybiB2b2lkIDA9PT1uJiYobj1yLlNFTEZfQ0FOQ0VMTEFUSU9OKSxWKEYsbil9ZnVuY3Rpb24gb24obil7dm9pZCAwPT09biYmKG49Zik7Zm9yKHZhciB0PWFyZ3VtZW50cy5sZW5ndGgsZT1uZXcgQXJyYXkodD4xP3QtMTowKSxyPTE7cjx0O3IrKyllW3ItMV09YXJndW1lbnRzW3JdO3JldHVybiBWKEcse3NlbGVjdG9yOm4sYXJnczplfSl9ZnVuY3Rpb24gY24obix0KXtyZXR1cm4gVih6LHtwYXR0ZXJuOm4sYnVmZmVyOnR9KX12YXIgdW49MjExOCE9ZS5qP3RuLmJpbmQobnVsbCxjLmRlZmF1bHQpOm51bGx9LDgyMzcwOShuLHQsZSl7aWYoZS5kKHQse2RlZmF1bHQ6KCk9PmF9KSwyMTE4IT1lLmopdmFyIHI9ZSg1NjQ1MjEpO2NvbnN0IGE9MjExOCE9ZS5qP2Z1bmN0aW9uKG4sdCl7dmFyIGU7dm9pZCAwPT09dCYmKHQ9ITApO3ZhciBhPW5ldyBQcm9taXNlKChmdW5jdGlvbihyKXtlPXNldFRpbWVvdXQocixNYXRoLm1pbigyMTQ3NDgzNjQ3LG4pLHQpfSkpO3JldHVybiBhW3IuQ0FOQ0VMXT1mdW5jdGlvbigpe2NsZWFyVGltZW91dChlKX0sYX06bnVsbH0sNTY0NTIxKG4sdCxlKXtlLmQodCx7Q0FOQ0VMOigpPT5hLENIQU5ORUxfRU5EX1RZUEU6KCk9Pm8sSU86KCk9PmMsTUFUQ0g6KCk9PnUsTVVMVElDQVNUOigpPT5pLFNBR0FfQUNUSU9OOigpPT5mLFNBR0FfTE9DQVRJT046KCk9PnAsU0VMRl9DQU5DRUxMQVRJT046KCk9PmwsVEFTSzooKT0+cyxUQVNLX0NBTkNFTDooKT0+dixURVJNSU5BVEU6KCk9PmR9KTt2YXIgcj1mdW5jdGlvbihuKXtyZXR1cm4iQEByZWR1eC1zYWdhLyIrbn0sYT1yKCJDQU5DRUxfUFJPTUlTRSIpLG89cigiQ0hBTk5FTF9FTkQiKSxjPXIoIklPIiksdT1yKCJNQVRDSCIpLGk9cigiTVVMVElDQVNUIiksZj1yKCJTQUdBX0FDVElPTiIpLGw9cigiU0VMRl9DQU5DRUxMQVRJT04iKSxzPXIoIlRBU0siKSx2PXIoIlRBU0tfQ0FOQ0VMIiksZD1yKCJURVJNSU5BVEUiKSxwPXIoIkxPQ0FUSU9OIil9LDg5NDQ4KG4sdCxlKXtlLmQodCx7YnVmZmVyczooKT0+dS5JLGRlZmF1bHQ6KCk9PlEsZXZlbnRDaGFubmVsOigpPT5MfSk7dmFyIHI9ZSg1NjQ1MjEpLGE9ZSg2NDQzMjApLG89ZSg3ODg5MTUpLGM9ZSg0NzQxMzYpLHU9ZSg0ODkwNTcpO2Z1bmN0aW9uIGkoKXt2YXIgbj17fTtyZXR1cm4gbi5wcm9taXNlPW5ldyBQcm9taXNlKChmdW5jdGlvbih0LGUpe24ucmVzb2x2ZT10LG4ucmVqZWN0PWV9KSksbn1jb25zdCBmPWk7dmFyIGw9W10scz0wO2Z1bmN0aW9uIHYobil7dHJ5e2goKSxuKCl9ZmluYWxseXtnKCl9fWZ1bmN0aW9uIGQobil7bC5wdXNoKG4pLHN8fChoKCkseSgpKX1mdW5jdGlvbiBwKG4pe3RyeXtyZXR1cm4gaCgpLG4oKX1maW5hbGx5e3koKX19ZnVuY3Rpb24gaCgpe3MrK31mdW5jdGlvbiBnKCl7cy0tfWZ1bmN0aW9uIHkoKXt2YXIgbjtmb3IoZygpOyFzJiZ2b2lkIDAhPT0obj1sLnNoaWZ0KCkpOyl2KG4pfXZhciBBPWZ1bmN0aW9uKG4pe3JldHVybiBmdW5jdGlvbih0KXsKcmV0dXJuIG4uc29tZSgoZnVuY3Rpb24obil7cmV0dXJuIG0obikodCl9KSl9fSxFPWZ1bmN0aW9uKG4pe3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gbih0KX19LEM9ZnVuY3Rpb24obil7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiB0LnR5cGU9PT1TdHJpbmcobil9fSxUPWZ1bmN0aW9uKG4pe3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gdC50eXBlPT09bn19LFM9ZnVuY3Rpb24oKXtyZXR1cm4gdS5rfTtmdW5jdGlvbiBtKG4pe3ZhciB0PSIqIj09PW4/UzooMCxjLnN0cmluZykobik/QzooMCxjLmFycmF5KShuKT9BOigwLGMuc3RyaW5nYWJsZUZ1bmMpKG4pP0M6KDAsYy5mdW5jKShuKT9FOigwLGMuc3ltYm9sKShuKT9UOm51bGw7aWYobnVsbD09PXQpdGhyb3cgbmV3IEVycm9yKCJpbnZhbGlkIHBhdHRlcm46ICIrbik7cmV0dXJuIHQobil9dmFyIE49e3R5cGU6ci5DSEFOTkVMX0VORF9UWVBFfSxrPWZ1bmN0aW9uKG4pe3JldHVybiBuJiZuLnR5cGU9PT1yLkNIQU5ORUxfRU5EX1RZUEV9O2Z1bmN0aW9uIGIobil7dm9pZCAwPT09biYmKG49KDAsdS5lKSgpKTt2YXIgdD0hMSxlPVtdO3JldHVybnt0YWtlOmZ1bmN0aW9uKHIpe3QmJm4uaXNFbXB0eSgpP3IoTik6bi5pc0VtcHR5KCk/KGUucHVzaChyKSxyLmNhbmNlbD1mdW5jdGlvbigpeygwLHUucikoZSxyKX0pOnIobi50YWtlKCkpfSxwdXQ6ZnVuY3Rpb24ocil7aWYoIXQpe2lmKDA9PT1lLmxlbmd0aClyZXR1cm4gbi5wdXQocik7ZS5zaGlmdCgpKHIpfX0sZmx1c2g6ZnVuY3Rpb24oZSl7dCYmbi5pc0VtcHR5KCk/ZShOKTplKG4uZmx1c2goKSl9LGNsb3NlOmZ1bmN0aW9uKCl7aWYoIXQpe3Q9ITA7dmFyIG49ZTtlPVtdO2Zvcih2YXIgcj0wLGE9bi5sZW5ndGg7cjxhO3IrKyl7KDAsbltyXSkoTil9fX19fWZ1bmN0aW9uIEwobix0KXt2b2lkIDA9PT10JiYodD0oMCx1Lm4pKCkpO3ZhciBlLHI9ITEsYT1iKHQpLG89ZnVuY3Rpb24oKXtyfHwocj0hMCwoMCxjLmZ1bmMpKGUpJiZlKCksYS5jbG9zZSgpKX07cmV0dXJuIGU9bigoZnVuY3Rpb24obil7ayhuKT9vKCk6YS5wdXQobil9KSksZT0oMCx1Lm8pKGUpLHImJmUoKSx7dGFrZTphLnRha2UsZmx1c2g6YS5mbHVzaCxjbG9zZTpvfX1mdW5jdGlvbiB3KCl7dmFyIG4sdCxlLGEsbyxjLGk9KHQ9ITEsYT1lPVtdLG89ZnVuY3Rpb24oKXthPT09ZSYmKGE9ZS5zbGljZSgpKX0sYz1mdW5jdGlvbigpe3Q9ITA7dmFyIG49ZT1hO2E9W10sbi5mb3JFYWNoKChmdW5jdGlvbihuKXtuKE4pfSkpfSwobj17fSlbci5NVUxUSUNBU1RdPSEwLG4ucHV0PWZ1bmN0aW9uKG4pe2lmKCF0KWlmKGsobikpYygpO2Vsc2UgZm9yKHZhciBvPWU9YSx1PTAsaT1vLmxlbmd0aDt1PGk7dSsrKXt2YXIgZj1vW3VdO2Zbci5NQVRDSF0obikmJihmLmNhbmNlbCgpLGYobikpfX0sbi50YWtlPWZ1bmN0aW9uKG4sZSl7dm9pZCAwPT09ZSYmKGU9UyksdD9uKE4pOihuW3IuTUFUQ0hdPWUsbygpLGEucHVzaChuKSxuLmNhbmNlbD0oMCx1Lm8pKChmdW5jdGlvbigpe28oKSwoMCx1LnIpKGEsbil9KSkpfSxuLmNsb3NlPWMsbiksZj1pLnB1dDtyZXR1cm4gaS5wdXQ9ZnVuY3Rpb24obil7bltyLlNBR0FfQUNUSU9OXT9mKG4pOmQoKGZ1bmN0aW9uKCl7ZihuKX0pKX0saX1mdW5jdGlvbiBPKG4sdCl7dmFyIGU9bltyLkNBTkNFTF07KDAsYy5mdW5jKShlKSYmKHQuY2FuY2VsPWUpLG4udGhlbih0LChmdW5jdGlvbihuKXt0KG4sITApfSkpfXZhciB4LEk9MCxNPWZ1bmN0aW9uKCl7cmV0dXJuKytJfTtmdW5jdGlvbiBqKG4pe24uaXNSdW5uaW5nKCkmJm4uY2FuY2VsKCl9dmFyIF89KCh4PXt9KVt1LlRdPWZ1bmN0aW9uKG4sdCxlKXt2YXIgYT10LmNoYW5uZWwsbz12b2lkIDA9PT1hP24uY2hhbm5lbDphLHU9dC5wYXR0ZXJuLGk9dC5tYXliZSxmPWZ1bmN0aW9uKG4pe24gaW5zdGFuY2VvZiBFcnJvcj9lKG4sITApOiFrKG4pfHxpP2Uobik6ZShyLlRFUk1JTkFURSl9O3RyeXtvLnRha2UoZiwoMCxjLm5vdFVuZGVmKSh1KT9tKHUpOm51bGwpfWNhdGNoKG4pe3JldHVybiB2b2lkIGUobiwhMCl9ZS5jYW5jZWw9Zi5jYW5jZWx9LHhbdS5QXT1mdW5jdGlvbihuLHQsZSl7dmFyIHI9dC5jaGFubmVsLGE9dC5hY3Rpb24sbz10LnJlc29sdmU7ZCgoZnVuY3Rpb24oKXt2YXIgdDt0cnl7dD0ocj9yLnB1dDpuLmRpc3BhdGNoKShhKX1jYXRjaChuKXtyZXR1cm4gdm9pZCBlKG4sITApfW8mJigwLGMucHJvbWlzZSkodCk/Tyh0LGUpOmUodCl9KSl9LHhbdS5BXT1mdW5jdGlvbihuLHQsZSxyKXt2YXIgYT1yLmRpZ2VzdEVmZmVjdCxvPUksaT1PYmplY3Qua2V5cyh0KTtpZigwIT09aS5sZW5ndGgpe3ZhciBmPSgwLHUubCkodCxlKTtpLmZvckVhY2goKGZ1bmN0aW9uKG4pe2EodFtuXSxvLGZbbl0sbil9KSl9ZWxzZSBlKCgwLGMuYXJyYXkpKHQpP1tdOnt9KX0seFt1LlJdPWZ1bmN0aW9uKG4sdCxlLHIpe3ZhciBhPXIuZGlnZXN0RWZmZWN0LG89SSxpPU9iamVjdC5rZXlzKHQpLGY9KDAsYy5hcnJheSkodCk/KDAsdS5tKShpLmxlbmd0aCk6e30sbD17fSxzPSExO2kuZm9yRWFjaCgoZnVuY3Rpb24obil7dmFyIHQ9ZnVuY3Rpb24odCxyKXtzfHwocnx8KDAsdS5zKSh0KT8oZS5jYW5jZWwoKSxlKHQscikpOihlLmNhbmNlbCgpLHM9ITAsZltuXT10LGUoZikpKX07dC5jYW5jZWw9dS50LGxbbl09dH0pKSxlLmNhbmNlbD1mdW5jdGlvbigpe3N8fChzPSEwLGkuZm9yRWFjaCgoZnVuY3Rpb24obil7cmV0dXJuIGxbbl0uY2FuY2VsKCl9KSkpfSxpLmZvckVhY2goKGZ1bmN0aW9uKG4pe3N8fGEodFtuXSxvLGxbbl0sbil9KSl9LHhbdS5DXT1mdW5jdGlvbihuLHQsZSxyKXt2YXIgYT10LmNvbnRleHQsbz10LmZuLGk9dC5hcmdzLGY9ci50YXNrO3RyeXt2YXIgbD1vLmFwcGx5KGEsaSk7aWYoKDAsYy5wcm9taXNlKShsKSlyZXR1cm4gdm9pZCBPKGwsZSk7aWYoKDAsYy5pdGVyYXRvcikobCkpcmV0dXJuIHZvaWQgeihuLGwsZi5jb250ZXh0LEksKDAsdS5qKShvKSwhMSxlKTtlKGwpfWNhdGNoKG4pe2UobiwhMCl9fSx4W3UuYV09ZnVuY3Rpb24obix0LGUpe3ZhciByPXQuY29udGV4dCxhPXQuZm4sbz10LmFyZ3M7dHJ5e3ZhciB1PWZ1bmN0aW9uKG4sdCl7CigwLGMudW5kZWYpKG4pP2UodCk6ZShuLCEwKX07YS5hcHBseShyLG8uY29uY2F0KHUpKSx1LmNhbmNlbCYmKGUuY2FuY2VsPXUuY2FuY2VsKX1jYXRjaChuKXtlKG4sITApfX0seFt1LkZdPWZ1bmN0aW9uKG4sdCxlLHIpe3ZhciBhPXQuY29udGV4dCxvPXQuZm4saT10LmFyZ3MsZj10LmRldGFjaGVkLGw9ci50YXNrLHM9ZnVuY3Rpb24obil7dmFyIHQ9bi5jb250ZXh0LGU9bi5mbixyPW4uYXJnczt0cnl7dmFyIGE9ZS5hcHBseSh0LHIpO2lmKCgwLGMuaXRlcmF0b3IpKGEpKXJldHVybiBhO3ZhciBvPSExO3JldHVybigwLHUucSkoKGZ1bmN0aW9uKG4pe3JldHVybiBvP3t2YWx1ZTpuLGRvbmU6ITB9OihvPSEwLHt2YWx1ZTphLGRvbmU6ISgwLGMucHJvbWlzZSkoYSl9KX0pKX1jYXRjaChuKXtyZXR1cm4oMCx1LnEpKChmdW5jdGlvbigpe3Rocm93IG59KSl9fSh7Y29udGV4dDphLGZuOm8sYXJnczppfSksdj1mdW5jdGlvbihuLHQpe3JldHVybiBuLmlzU2FnYUl0ZXJhdG9yP3tuYW1lOm4ubWV0YS5uYW1lfTooMCx1LmopKHQpfShzLG8pO3AoKGZ1bmN0aW9uKCl7dmFyIHQ9eihuLHMsbC5jb250ZXh0LEksdixmLHZvaWQgMCk7Zj9lKHQpOnQuaXNSdW5uaW5nKCk/KGwucXVldWUuYWRkVGFzayh0KSxlKHQpKTp0LmlzQWJvcnRlZCgpP2wucXVldWUuYWJvcnQodC5lcnJvcigpKTplKHQpfSkpfSx4W3UuSl09ZnVuY3Rpb24obix0LGUscil7dmFyIGE9ci50YXNrLG89ZnVuY3Rpb24obix0KXtpZihuLmlzUnVubmluZygpKXt2YXIgZT17dGFzazphLGNiOnR9O3QuY2FuY2VsPWZ1bmN0aW9uKCl7bi5pc1J1bm5pbmcoKSYmKDAsdS5yKShuLmpvaW5lcnMsZSl9LG4uam9pbmVycy5wdXNoKGUpfWVsc2Ugbi5pc0Fib3J0ZWQoKT90KG4uZXJyb3IoKSwhMCk6dChuLnJlc3VsdCgpKX07aWYoKDAsYy5hcnJheSkodCkpe2lmKDA9PT10Lmxlbmd0aClyZXR1cm4gdm9pZCBlKFtdKTt2YXIgaT0oMCx1LmwpKHQsZSk7dC5mb3JFYWNoKChmdW5jdGlvbihuLHQpe28obixpW3RdKX0pKX1lbHNlIG8odCxlKX0seFt1LmJdPWZ1bmN0aW9uKG4sdCxlLGEpe3ZhciBvPWEudGFzazt0PT09ci5TRUxGX0NBTkNFTExBVElPTj9qKG8pOigwLGMuYXJyYXkpKHQpP3QuZm9yRWFjaChqKTpqKHQpLGUoKX0seFt1LlNdPWZ1bmN0aW9uKG4sdCxlKXt2YXIgcj10LnNlbGVjdG9yLGE9dC5hcmdzO3RyeXtlKHIuYXBwbHkodm9pZCAwLFtuLmdldFN0YXRlKCldLmNvbmNhdChhKSkpfWNhdGNoKG4pe2UobiwhMCl9fSx4W3UuZF09ZnVuY3Rpb24obix0LGUpe3ZhciByPXQucGF0dGVybixhPWIodC5idWZmZXIpLG89bShyKSxjPWZ1bmN0aW9uIHQoZSl7ayhlKXx8bi5jaGFubmVsLnRha2UodCxvKSxhLnB1dChlKX0sdT1hLmNsb3NlO2EuY2xvc2U9ZnVuY3Rpb24oKXtjLmNhbmNlbCgpLHUoKX0sbi5jaGFubmVsLnRha2UoYyxvKSxlKGEpfSx4W3UuZl09ZnVuY3Rpb24obix0LGUscil7ZShyLnRhc2suaXNDYW5jZWxsZWQoKSl9LHhbdS5nXT1mdW5jdGlvbihuLHQsZSl7dC5mbHVzaChlKX0seFt1LkddPWZ1bmN0aW9uKG4sdCxlLHIpe2Uoci50YXNrLmNvbnRleHRbdF0pfSx4W3UuaF09ZnVuY3Rpb24obix0LGUscil7dmFyIGE9ci50YXNrOygwLHUucCkoYS5jb250ZXh0LHQpLGUoKX0seCk7ZnVuY3Rpb24gcShuLHQpe3JldHVybiBuKyI/Iit0fWZ1bmN0aW9uIFIobil7dmFyIHQ9bi5uYW1lLGU9bi5sb2NhdGlvbjtyZXR1cm4gZT90KyIgICIrcShlLmZpbGVOYW1lLGUubGluZU51bWJlcik6dH1mdW5jdGlvbiBVKG4pe3ZhciB0PSgwLHUudSkoKGZ1bmN0aW9uKG4pe3JldHVybiBuLmNhbmNlbGxlZFRhc2tzfSksbik7cmV0dXJuIHQubGVuZ3RoP1siVGFza3MgY2FuY2VsbGVkIGR1ZSB0byBlcnJvcjoiXS5jb25jYXQodCkuam9pbigiXG4iKToiIn12YXIgUD1udWxsLEs9W10sSD1mdW5jdGlvbihuKXtuLmNyYXNoZWRFZmZlY3Q9UCxLLnB1c2gobil9LEQ9ZnVuY3Rpb24oKXtQPW51bGwsSy5sZW5ndGg9MH0sRj1mdW5jdGlvbigpe3ZhciBuLHQsZT1LWzBdLHI9Sy5zbGljZSgxKSxhPWUuY3Jhc2hlZEVmZmVjdD8obj1lLmNyYXNoZWRFZmZlY3QsKHQ9KDAsdS52KShuKSk/dC5jb2RlKyIgICIrcSh0LmZpbGVOYW1lLHQubGluZU51bWJlcik6IiIpOm51bGw7cmV0dXJuWyJUaGUgYWJvdmUgZXJyb3Igb2NjdXJyZWQgaW4gdGFzayAiK1IoZS5tZXRhKSsoYT8iIFxuIHdoZW4gZXhlY3V0aW5nIGVmZmVjdCAiK2E6IiIpXS5jb25jYXQoci5tYXAoKGZ1bmN0aW9uKG4pe3JldHVybiIgICAgY3JlYXRlZCBieSAiK1Iobi5tZXRhKX0pKSxbVShLKV0pLmpvaW4oIlxuIil9O2Z1bmN0aW9uIEcobix0LGUsYSxvLGMsaSl7dmFyIGw7dm9pZCAwPT09aSYmKGk9dS50KTt2YXIgcyx2LGQ9MCxwPW51bGwsaD1bXSxnPU9iamVjdC5jcmVhdGUoZSkseT1mdW5jdGlvbihuLHQsZSl7dmFyIHIsYT1bXSxvPSExO2Z1bmN0aW9uIGMobil7dCgpLGYoKSxlKG4sITApfWZ1bmN0aW9uIGkodCl7YS5wdXNoKHQpLHQuY29udD1mdW5jdGlvbihpLGYpe298fCgoMCx1LnIpKGEsdCksdC5jb250PXUudCxmP2MoaSk6KHQ9PT1uJiYocj1pKSxhLmxlbmd0aHx8KG89ITAsZShyKSkpKX19ZnVuY3Rpb24gZigpe298fChvPSEwLGEuZm9yRWFjaCgoZnVuY3Rpb24obil7bi5jb250PXUudCxuLmNhbmNlbCgpfSkpLGE9W10pfXJldHVybiBpKG4pLHthZGRUYXNrOmksY2FuY2VsQWxsOmYsYWJvcnQ6YyxnZXRUYXNrczpmdW5jdGlvbigpe3JldHVybiBhfX19KHQsKGZ1bmN0aW9uKCl7aC5wdXNoLmFwcGx5KGgseS5nZXRUYXNrcygpLm1hcCgoZnVuY3Rpb24obil7cmV0dXJuIG4ubWV0YS5uYW1lfSkpKX0pLEEpO2Z1bmN0aW9uIEEodCxlKXtpZihlKXtpZihkPTIsSCh7bWV0YTpvLGNhbmNlbGxlZFRhc2tzOmh9KSxFLmlzUm9vdCl7dmFyIGE9RigpO0QoKSxuLm9uRXJyb3IodCx7c2FnYVN0YWNrOmF9KX12PXQscCYmcC5yZWplY3QodCl9ZWxzZSB0PT09ci5UQVNLX0NBTkNFTD9kPTE6MSE9PWQmJihkPTMpLHM9dCxwJiZwLnJlc29sdmUodCk7RS5jb250KHQsZSksRS5qb2luZXJzLmZvckVhY2goKGZ1bmN0aW9uKG4pe24uY2IodCxlKX0pKSxFLmpvaW5lcnM9bnVsbH0KdmFyIEU9KChsPXt9KVtyLlRBU0tdPSEwLGwuaWQ9YSxsLm1ldGE9byxsLmlzUm9vdD1jLGwuY29udGV4dD1nLGwuam9pbmVycz1bXSxsLnF1ZXVlPXksbC5jYW5jZWw9ZnVuY3Rpb24oKXswPT09ZCYmKGQ9MSx5LmNhbmNlbEFsbCgpLEEoci5UQVNLX0NBTkNFTCwhMSkpfSxsLmNvbnQ9aSxsLmVuZD1BLGwuc2V0Q29udGV4dD1mdW5jdGlvbihuKXsoMCx1LnApKGcsbil9LGwudG9Qcm9taXNlPWZ1bmN0aW9uKCl7cmV0dXJuIHB8fChwPWYoKSwyPT09ZD9wLnJlamVjdCh2KTowIT09ZCYmcC5yZXNvbHZlKHMpKSxwLnByb21pc2V9LGwuaXNSdW5uaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIDA9PT1kfSxsLmlzQ2FuY2VsbGVkPWZ1bmN0aW9uKCl7cmV0dXJuIDE9PT1kfHwwPT09ZCYmMT09PXQuc3RhdHVzfSxsLmlzQWJvcnRlZD1mdW5jdGlvbigpe3JldHVybiAyPT09ZH0sbC5yZXN1bHQ9ZnVuY3Rpb24oKXtyZXR1cm4gc30sbC5lcnJvcj1mdW5jdGlvbigpe3JldHVybiB2fSxsKTtyZXR1cm4gRX1mdW5jdGlvbiB6KG4sdCxlLGEsbyxpLGYpe3ZhciBsPW4uZmluYWxpemVSdW5FZmZlY3QoKGZ1bmN0aW9uKHQsZSxhKXtpZigoMCxjLnByb21pc2UpKHQpKU8odCxhKTtlbHNlIGlmKCgwLGMuaXRlcmF0b3IpKHQpKXoobix0LHYuY29udGV4dCxlLG8sITEsYSk7ZWxzZSBpZih0JiZ0W3IuSU9dKXsoMCxfW3QudHlwZV0pKG4sdC5wYXlsb2FkLGEsZCl9ZWxzZSBhKHQpfSkpO3AuY2FuY2VsPXUudDt2YXIgcz17bWV0YTpvLGNhbmNlbDpmdW5jdGlvbigpezA9PT1zLnN0YXR1cyYmKHMuc3RhdHVzPTEscChyLlRBU0tfQ0FOQ0VMKSl9LHN0YXR1czowfSx2PUcobixzLGUsYSxvLGksZiksZD17dGFzazp2LGRpZ2VzdEVmZmVjdDpofTtyZXR1cm4gZiYmKGYuY2FuY2VsPXYuY2FuY2VsKSxwKCksdjtmdW5jdGlvbiBwKG4sZSl7dHJ5e3ZhciBvO2U/KG89dC50aHJvdyhuKSxEKCkpOigwLHUueSkobik/KHMuc3RhdHVzPTEscC5jYW5jZWwoKSxvPSgwLGMuZnVuYykodC5yZXR1cm4pP3QucmV0dXJuKHIuVEFTS19DQU5DRUwpOntkb25lOiEwLHZhbHVlOnIuVEFTS19DQU5DRUx9KTpvPSgwLHUueikobik/KDAsYy5mdW5jKSh0LnJldHVybik/dC5yZXR1cm4oKTp7ZG9uZTohMH06dC5uZXh0KG4pLG8uZG9uZT8oMSE9PXMuc3RhdHVzJiYocy5zdGF0dXM9Mykscy5jb250KG8udmFsdWUpKTpoKG8udmFsdWUsYSxwKX1jYXRjaChuKXtpZigxPT09cy5zdGF0dXMpdGhyb3cgbjtzLnN0YXR1cz0yLHMuY29udChuLCEwKX19ZnVuY3Rpb24gaCh0LGUscixhKXt2b2lkIDA9PT1hJiYoYT0iIik7dmFyIG8sYz1NKCk7ZnVuY3Rpb24gaShlLGEpe298fChvPSEwLHIuY2FuY2VsPXUudCxuLnNhZ2FNb25pdG9yJiYoYT9uLnNhZ2FNb25pdG9yLmVmZmVjdFJlamVjdGVkKGMsZSk6bi5zYWdhTW9uaXRvci5lZmZlY3RSZXNvbHZlZChjLGUpKSxhJiZmdW5jdGlvbihuKXtQPW59KHQpLHIoZSxhKSl9bi5zYWdhTW9uaXRvciYmbi5zYWdhTW9uaXRvci5lZmZlY3RUcmlnZ2VyZWQoe2VmZmVjdElkOmMscGFyZW50RWZmZWN0SWQ6ZSxsYWJlbDphLGVmZmVjdDp0fSksaS5jYW5jZWw9dS50LHIuY2FuY2VsPWZ1bmN0aW9uKCl7b3x8KG89ITAsaS5jYW5jZWwoKSxpLmNhbmNlbD11LnQsbi5zYWdhTW9uaXRvciYmbi5zYWdhTW9uaXRvci5lZmZlY3RDYW5jZWxsZWQoYykpfSxsKHQsYyxpKX19ZnVuY3Rpb24gQihuLHQpe3ZhciBlPW4uY2hhbm5lbCxyPXZvaWQgMD09PWU/dygpOmUsYT1uLmRpc3BhdGNoLG89bi5nZXRTdGF0ZSxjPW4uY29udGV4dCxpPXZvaWQgMD09PWM/e306YyxmPW4uc2FnYU1vbml0b3IsbD1uLmVmZmVjdE1pZGRsZXdhcmVzLHM9bi5vbkVycm9yLHY9dm9pZCAwPT09cz91LkQ6cztmb3IodmFyIGQ9YXJndW1lbnRzLmxlbmd0aCxoPW5ldyBBcnJheShkPjI/ZC0yOjApLGc9MjtnPGQ7ZysrKWhbZy0yXT1hcmd1bWVudHNbZ107dmFyIHk9dC5hcHBseSh2b2lkIDAsaCk7dmFyIEEsRT1NKCk7aWYoZiYmKGYucm9vdFNhZ2FTdGFydGVkPWYucm9vdFNhZ2FTdGFydGVkfHx1LnQsZi5lZmZlY3RUcmlnZ2VyZWQ9Zi5lZmZlY3RUcmlnZ2VyZWR8fHUudCxmLmVmZmVjdFJlc29sdmVkPWYuZWZmZWN0UmVzb2x2ZWR8fHUudCxmLmVmZmVjdFJlamVjdGVkPWYuZWZmZWN0UmVqZWN0ZWR8fHUudCxmLmVmZmVjdENhbmNlbGxlZD1mLmVmZmVjdENhbmNlbGxlZHx8dS50LGYuYWN0aW9uRGlzcGF0Y2hlZD1mLmFjdGlvbkRpc3BhdGNoZWR8fHUudCxmLnJvb3RTYWdhU3RhcnRlZCh7ZWZmZWN0SWQ6RSxzYWdhOnQsYXJnczpofSkpLGwpe3ZhciBDPXUuQi5hcHBseSh2b2lkIDAsbCk7QT1mdW5jdGlvbihuKXtyZXR1cm4gZnVuY3Rpb24odCxlLHIpe3JldHVybiBDKChmdW5jdGlvbih0KXtyZXR1cm4gbih0LGUscil9KSkodCl9fX1lbHNlIEE9dS5IO3ZhciBUPXtjaGFubmVsOnIsZGlzcGF0Y2g6KDAsdS5FKShhKSxnZXRTdGF0ZTpvLHNhZ2FNb25pdG9yOmYsb25FcnJvcjp2LGZpbmFsaXplUnVuRWZmZWN0OkF9O3JldHVybiBwKChmdW5jdGlvbigpe3ZhciBuPXooVCx5LGksRSwoMCx1LmopKHQpLCEwLHZvaWQgMCk7cmV0dXJuIGYmJmYuZWZmZWN0UmVzb2x2ZWQoRSxuKSxufSkpfWNvbnN0IEo9ZnVuY3Rpb24obil7dmFyIHQsZT12b2lkIDA9PT1uP3t9Om4scj1lLmNvbnRleHQsYz12b2lkIDA9PT1yP3t9OnIsaT1lLmNoYW5uZWwsZj12b2lkIDA9PT1pP3coKTppLGw9ZS5zYWdhTW9uaXRvcixzPSgwLG8uZGVmYXVsdCkoZSxbImNvbnRleHQiLCJjaGFubmVsIiwic2FnYU1vbml0b3IiXSk7ZnVuY3Rpb24gdihuKXt2YXIgZT1uLmdldFN0YXRlLHI9bi5kaXNwYXRjaDtyZXR1cm4gdD1CLmJpbmQobnVsbCwoMCxhLmRlZmF1bHQpKHt9LHMse2NvbnRleHQ6YyxjaGFubmVsOmYsZGlzcGF0Y2g6cixnZXRTdGF0ZTplLHNhZ2FNb25pdG9yOmx9KSksZnVuY3Rpb24obil7cmV0dXJuIGZ1bmN0aW9uKHQpe2wmJmwuYWN0aW9uRGlzcGF0Y2hlZCYmbC5hY3Rpb25EaXNwYXRjaGVkKHQpO3ZhciBlPW4odCk7cmV0dXJuIGYucHV0KHQpLGV9fX1yZXR1cm4gdi5ydW49ZnVuY3Rpb24oKXtyZXR1cm4gdC5hcHBseSh2b2lkIDAsYXJndW1lbnRzKX0sCnYuc2V0Q29udGV4dD1mdW5jdGlvbihuKXsoMCx1LnApKGMsbil9LHZ9LFE9Sn0sNjE0ODI1KG4sdCxlKXtlLmQodCx7YWxsOigpPT5hLiQsY2FsbDooKT0+YS5PLGNhbmNlbDooKT0+YS5OLGRlbGF5OigpPT5hLlEsZm9yazooKT0+YS5NLGpvaW46KCk9PmEuYTMscHV0OigpPT5hLloscmFjZTooKT0+YS5XLHNlbGVjdDooKT0+YS5hNCx0YWtlOigpPT5hLkwsdGFrZUV2ZXJ5OigpPT52LHRha2VMYXRlc3Q6KCk9PmQsdGhyb3R0bGU6KCk9PnB9KTt2YXIgcj1lKDQ3NDEzNiksYT1lKDQ4OTA1Nyksbz1mdW5jdGlvbihuKXtyZXR1cm57ZG9uZTohMCx2YWx1ZTpufX0sYz17fTtmdW5jdGlvbiB1KG4pe3JldHVybigwLHIuY2hhbm5lbCkobik/ImNoYW5uZWwiOigwLHIuc3RyaW5nYWJsZUZ1bmMpKG4pP1N0cmluZyhuKTooMCxyLmZ1bmMpKG4pP24ubmFtZTpTdHJpbmcobil9ZnVuY3Rpb24gaShuLHQsZSl7dmFyIHIsdSxpLGY9dDtmdW5jdGlvbiBsKHQsZSl7aWYoZj09PWMpcmV0dXJuIG8odCk7aWYoZSYmIXUpdGhyb3cgZj1jLGU7ciYmcih0KTt2YXIgYT1lP25bdV0oZSk6bltmXSgpO3JldHVybiBmPWEubmV4dFN0YXRlLGk9YS5lZmZlY3Qscj1hLnN0YXRlVXBkYXRlcix1PWEuZXJyb3JTdGF0ZSxmPT09Yz9vKHQpOml9cmV0dXJuKDAsYS5xKShsLChmdW5jdGlvbihuKXtyZXR1cm4gbChudWxsLG4pfSksZSl9ZnVuY3Rpb24gZihuLHQpe2Zvcih2YXIgZT1hcmd1bWVudHMubGVuZ3RoLHI9bmV3IEFycmF5KGU+Mj9lLTI6MCksbz0yO288ZTtvKyspcltvLTJdPWFyZ3VtZW50c1tvXTt2YXIgYyxmPXtkb25lOiExLHZhbHVlOigwLGEuTCkobil9LGw9ZnVuY3Rpb24obil7cmV0dXJuIGM9bn07cmV0dXJuIGkoe3ExOmZ1bmN0aW9uKCl7cmV0dXJue25leHRTdGF0ZToicTIiLGVmZmVjdDpmLHN0YXRlVXBkYXRlcjpsfX0scTI6ZnVuY3Rpb24oKXtyZXR1cm57bmV4dFN0YXRlOiJxMSIsZWZmZWN0OihuPWMse2RvbmU6ITEsdmFsdWU6YS5NLmFwcGx5KHZvaWQgMCxbdF0uY29uY2F0KHIsW25dKSl9KX07dmFyIG59fSwicTEiLCJ0YWtlRXZlcnkoIit1KG4pKyIsICIrdC5uYW1lKyIpIil9ZnVuY3Rpb24gbChuLHQpe2Zvcih2YXIgZT1hcmd1bWVudHMubGVuZ3RoLHI9bmV3IEFycmF5KGU+Mj9lLTI6MCksbz0yO288ZTtvKyspcltvLTJdPWFyZ3VtZW50c1tvXTt2YXIgYyxmLGw9e2RvbmU6ITEsdmFsdWU6KDAsYS5MKShuKX0scz1mdW5jdGlvbihuKXtyZXR1cm57ZG9uZTohMSx2YWx1ZTphLk0uYXBwbHkodm9pZCAwLFt0XS5jb25jYXQocixbbl0pKX19LHY9ZnVuY3Rpb24obil7cmV0dXJue2RvbmU6ITEsdmFsdWU6KDAsYS5OKShuKX19LGQ9ZnVuY3Rpb24obil7cmV0dXJuIGM9bn0scD1mdW5jdGlvbihuKXtyZXR1cm4gZj1ufTtyZXR1cm4gaSh7cTE6ZnVuY3Rpb24oKXtyZXR1cm57bmV4dFN0YXRlOiJxMiIsZWZmZWN0Omwsc3RhdGVVcGRhdGVyOnB9fSxxMjpmdW5jdGlvbigpe3JldHVybiBjP3tuZXh0U3RhdGU6InEzIixlZmZlY3Q6dihjKX06e25leHRTdGF0ZToicTEiLGVmZmVjdDpzKGYpLHN0YXRlVXBkYXRlcjpkfX0scTM6ZnVuY3Rpb24oKXtyZXR1cm57bmV4dFN0YXRlOiJxMSIsZWZmZWN0OnMoZiksc3RhdGVVcGRhdGVyOmR9fX0sInExIiwidGFrZUxhdGVzdCgiK3UobikrIiwgIit0Lm5hbWUrIikiKX1mdW5jdGlvbiBzKG4sdCxlKXtmb3IodmFyIG89YXJndW1lbnRzLmxlbmd0aCxjPW5ldyBBcnJheShvPjM/by0zOjApLGY9MztmPG87ZisrKWNbZi0zXT1hcmd1bWVudHNbZl07dmFyIGwscyx2PXtkb25lOiExLHZhbHVlOigwLGEuUSkobil9LGQ9ZnVuY3Rpb24obil7cmV0dXJuIGw9bn0scD1mdW5jdGlvbihuKXtyZXR1cm4gcz1ufSxoPSEoMCxyLmNoYW5uZWwpKHQpO3JldHVybiBofHxwKHQpLGkoe3ExOmZ1bmN0aW9uKCl7cmV0dXJue25leHRTdGF0ZToicTIiLGVmZmVjdDp7ZG9uZTohMSx2YWx1ZTooMCxhLlUpKHQsKDAsYS5WKSgxKSl9LHN0YXRlVXBkYXRlcjpwfX0scTI6ZnVuY3Rpb24oKXtyZXR1cm57bmV4dFN0YXRlOiJxMyIsZWZmZWN0Ontkb25lOiExLHZhbHVlOigwLGEuTCkocyl9LHN0YXRlVXBkYXRlcjpkfX0scTM6ZnVuY3Rpb24oKXtyZXR1cm57bmV4dFN0YXRlOiJxNCIsZWZmZWN0OihuPWwse2RvbmU6ITEsdmFsdWU6YS5NLmFwcGx5KHZvaWQgMCxbZV0uY29uY2F0KGMsW25dKSl9KX07dmFyIG59LHE0OmZ1bmN0aW9uKCl7cmV0dXJue25leHRTdGF0ZToicTIiLGVmZmVjdDp2fX19LGg/InExIjoicTIiLCJ0aHJvdHRsZSgiK3UodCkrIiwgIitlLm5hbWUrIikiKX1mdW5jdGlvbiB2KG4sdCl7Zm9yKHZhciBlPWFyZ3VtZW50cy5sZW5ndGgscj1uZXcgQXJyYXkoZT4yP2UtMjowKSxvPTI7bzxlO28rKylyW28tMl09YXJndW1lbnRzW29dO3JldHVybiBhLk0uYXBwbHkodm9pZCAwLFtmLG4sdF0uY29uY2F0KHIpKX1mdW5jdGlvbiBkKG4sdCl7Zm9yKHZhciBlPWFyZ3VtZW50cy5sZW5ndGgscj1uZXcgQXJyYXkoZT4yP2UtMjowKSxvPTI7bzxlO28rKylyW28tMl09YXJndW1lbnRzW29dO3JldHVybiBhLk0uYXBwbHkodm9pZCAwLFtsLG4sdF0uY29uY2F0KHIpKX1mdW5jdGlvbiBwKG4sdCxlKXtmb3IodmFyIHI9YXJndW1lbnRzLmxlbmd0aCxvPW5ldyBBcnJheShyPjM/ci0zOjApLGM9MztjPHI7YysrKW9bYy0zXT1hcmd1bWVudHNbY107cmV0dXJuIGEuTS5hcHBseSh2b2lkIDAsW3Msbix0LGVdLmNvbmNhdChvKSl9fSw2NDQzMjAobix0LGUpe2Z1bmN0aW9uIHIoKXtyZXR1cm4gcj1PYmplY3QuYXNzaWduP09iamVjdC5hc3NpZ24uYmluZCgpOmZ1bmN0aW9uKG4pe2Zvcih2YXIgdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciBlPWFyZ3VtZW50c1t0XTtmb3IodmFyIHIgaW4gZSkoe30pLmhhc093blByb3BlcnR5LmNhbGwoZSxyKSYmKG5bcl09ZVtyXSl9cmV0dXJuIG59LHIuYXBwbHkobnVsbCxhcmd1bWVudHMpfWUuZCh0LHtkZWZhdWx0OigpPT5yfSl9LDc4ODkxNShuLHQsZSl7ZnVuY3Rpb24gcihuLHQpe2lmKG51bGw9PW4pcmV0dXJue307dmFyIGU9e307Zm9yKHZhciByIGluIG4paWYoe30uaGFzT3duUHJvcGVydHkuY2FsbChuLHIpKXsKaWYoLTEhPT10LmluZGV4T2YocikpY29udGludWU7ZVtyXT1uW3JdfXJldHVybiBlfWUuZCh0LHtkZWZhdWx0OigpPT5yfSl9fV0pOw=="}},"time_used":3,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":3,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/27665.013fdb6f09fe121705b2.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.077Z","timestamp":1785148034077,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/27665.013fdb6f09fe121705b2.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\ncontent-type: text/css; charset=utf-8\r\ncontent-length: 31\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\netag: \"69f98b71-1f\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Tue, 05 May 2026 06:17:21 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.51\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 05/05/2026 10:16:42\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 7fd967caaa9d015a21cd8eb36faef5d9\r\ncdn-cache: HIT\r\naccept-ranges: bytes\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":31,"size_decoded":815,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with no line terminators","md5":"5960f9a1dbb4c19fb96b687ccea9f9af","sha1":"6688548a8b2b4c11b3d2a792734db981ac274ce2","sha256":"28010cc42c24fcf9bb5ec2914858cb3327e57c2dc3d81b34202960ca693abbf5","sha512":"704e91e72fab49c5a8600f832ccf9cbd9704c260b710bcd5e61484485576a68e55652c5861bed538fe46b5aa5fcc86f34fa5a154592084bcdb7f34ce79d87cc9","ssdeep":"","tlshash":"c08000c080a28ba820c0280a2028c0bc838c002c238a0280cc320830a30c3a022b8008","first_seen":"2026-03-30T12:30:09.597797Z","last_seen":"2026-07-27T12:48:39.672124Z","times_seen":414,"resource_available":false,"data":"Lm1lbnUtVHo4NG9QZVF7bWluLXdpZHRoOjEwMHB4fQ=="}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/87995.911b26181778fecc4b4e.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:15.327Z","timestamp":1785148035327,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/87995.911b26181778fecc4b4e.js HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:15 GMT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a632877-7a23\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Fri, 24 Jul 2026 08:55:19 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/24/2026 10:32:21\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 9a895ac094014ead9351d078803844b6\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":31267,"size_decoded":10843,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (3072)","md5":"6a05d8171572287378e38e6964e02fe8","sha1":"63d026c77be2140ec887f9ff6d3f073098c753d7","sha256":"6c8f663aeaed79d462dc53895df9b7870b0e620a0dfe1116cb122d17391b60ed","sha512":"a4076a5db83f1d9f5054f7bcbcbb078c8881c79fcd79ea086d710a4a25568695a0fb17213a40d0b396482e293c7d980d411e5f128a7a040a765286cf92d3595e","ssdeep":"768:72RxBdTMf+AnnZv7+SVxp9QYQ2UYfzvEB7DU0M/Zm8FNpVwLY8jnEM//i7XeBFK8:7SEnnZv7+S9Un78F/VwLY8jnEM//i7XM","tlshash":"97e2a642e342606702f381ed0c354503a339ebd5784649acb6a98defb56cd0cb5bab7d","first_seen":"2026-07-24T18:44:55.949977Z","last_seen":"2026-07-27T12:57:37.012976Z","times_seen":294,"resource_available":true,"data":"KHNlbGYud2VicGFja0NodW5rdHJhZGluZ3ZpZXc9c2VsZi53ZWJwYWNrQ2h1bmt0cmFkaW5ndmlld3x8W10pLnB1c2goW1s4Nzk5NV0sezEyNzE1Nyh0KXt0LmV4cG9ydHM9e2ZhZGU6ImZhZGUtTU9kVWlCWUQiLGhpZGRlbjoiaGlkZGVuLU1PZFVpQllEIn19LDQ3MDA5MCh0LGUsaSl7InVzZSBzdHJpY3QiO2kuZChlLHtNaW5pQ2hhcnQ6KCk9Pmp9KTt2YXIgcz1pKDY3ODMxMiksYT1pKDc0MDE2Miksbj1pKDc4MzI1NCkscj1pKDIzMjM2NCksbz1pKDQwMjA0NSksaD1pKDk0ODM4MCksbD1pKDEzODYzOCksYz1pKDYyNDY3OCksZD1pKDgyNjE1NiksbT1pKDIyMTA2MSksdT1pKDI1NDY3MyksXz1pKDUwNTU2KSxwPWkoNDU5OTk0KSxmPWkoNzczMDg4KSxiPWkoMTMxMjk0KSxnPWkoNTkxNzQxKSxTPWkoODAyNTg2KSx2PWkoMTg5ODYzKSx5PWkoMTQ2MDU4KSxDPWkoNjEwNTcxKTtjb25zdCBEPSgwLHMuZGVmYXVsdEhvcnpTY2FsZUJlaGF2aW9yKSgpO2NsYXNzIFQgZXh0ZW5kcyBEe2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLl9sYXN0SGFzaD0iIn1zaG91bGRSZXNldFRpY2ttYXJrTGFiZWxzKHQpe2NvbnN0IGU9dGhpcy5jYWxjdWxhdGVJdGVtc0hhc2godCksaT1lIT09dGhpcy5fbGFzdEhhc2g7cmV0dXJuIHRoaXMuX2xhc3RIYXNoPWUsaX1jYWxjdWxhdGVJdGVtc0hhc2godCl7cmV0dXJuIHQucmVkdWNlKCgodCxlKT0+dCtlLmluZGV4KSwiIil9fXZhciBQPWkoNTg2MjQ3KSx3PWkoMTI3MTU3KTtjb25zdCBrPSgwLG0uZ2V0TG9nZ2VyKSgiQ2hhcnQuTWluaUNoYXJ0IiksTT17dmFsdWU6IjEyTSIsdHlwZToicGVyaW9kLWJhY2sifSxJPXt0b3A6LjAxLGJvdHRvbTouMDF9LHg9e2NoYXJ0VHlwZToiYXJlYSIsbGluZVdpZHRoOjIscHJpY2VMaW5lVmlzaWJsZTohMSxjcm9zc2hhaXJNYXJrZXJWaXNpYmxlOiExLGxhc3RWYWx1ZVZpc2libGU6ITEsc2NhbGVNYXJnaW5zOkl9LE89e2xpbmVXaWR0aDoyLHByaWNlTGluZVZpc2libGU6ITEsY3Jvc3NoYWlyTWFya2VyVmlzaWJsZTohMSxsYXN0VmFsdWVWaXNpYmxlOiExLHNjYWxlTWFyZ2luczpJfSxGPXtjaGFydFR5cGU6ImJhc2VsaW5lIn0sUj17cHJpY2VMaW5lVmlzaWJsZTohMSxsYXN0VmFsdWVWaXNpYmxlOiExLHNjYWxlTWFyZ2luczpJfSxWPXtwcmljZUxpbmVWaXNpYmxlOiExLGxhc3RWYWx1ZVZpc2libGU6ITEsc2NhbGVNYXJnaW5zOkl9LHo9e3NjYWxlTWFyZ2luczpJfSxFPXtjaGFydFR5cGU6InByZXR0eS1oaXN0b2dyYW0iLHNjYWxlTWFyZ2luczpJLHJhZGl1czoyLHdpZHRoUGVyY2VudDo1MH0sTD17dmlzaWJsZTohMSxjb2xvcjpfLmNvbG9yc1BhbGV0dGVbImNvbG9yLXR2LWJsdWUtNTAwIl0sbGluZVdpZHRoOjEsbGVuZ3RoOjksbGFzdFZhbHVlVmlzaWJsZTohMSxwcmljZUxpbmVWaXNpYmxlOiExfSxCPXtzcGlubmVyOnt2aXNpYmxlOiExLHdpZHRoOjQsY29sb3I6Xy5jb2xvcnNQYWxldHRlWyJjb2xvci1icmFuZCJdfSxmYWRlOnt2aXNpYmxlOiExLHdhaXRGb3JTdHVkeVBsb3RzOiJub25lIn0sY2xlYXJEYXRhT25TeW1ib2xDaGFuZ2U6ITAsY2xlYXJEYXRhT25UaW1lZnJhbWVDaGFuZ2U6ITB9LE49e29uRmlyc3REYXRhOm51bGwsZGVzY3JpcHRpb246IiIsc2hvd0Rlc2NyaXB0aW9uOiEwLG5vRGF0YVRpbWVvdXQ6MTVlMyx0aW1lZnJhbWU6e3Zpc2libGU6ITEsdmFsdWU6TX0sY2hhcnRPcHRpb25zOnttaW5XaWR0aDowLG1pbkhlaWdodDowLGNoYXJ0OntncmlkOntob3J6TGluZXM6e2NvbG9yOiJyZ2JhKDEyMCwgMTIzLCAxMzQsIDAuMSkiLHZpc2libGU6ITF9LHZlcnRMaW5lczp7Y29sb3I6IiNmZmZmZmYiLHZpc2libGU6ITF9fSxjcm9zc2hhaXI6e2hvcnpMaW5lOnt2aXNpYmxlOiExLHN0eWxlOjMsd2lkdGg6MSxsYWJlbFZpc2libGU6ITEsbGFiZWxCYWNrZ3JvdW5kQ29sb3I6IiMwZjBmMGYifSx2ZXJ0TGluZTp7dmlzaWJsZTohMSxzdHlsZTozLHdpZHRoOjEsbGFiZWxWaXNpYmxlOiExLGxhYmVsQmFja2dyb3VuZENvbG9yOiIjMGYwZjBmIn19LGxheW91dDp7Zm9udEZhbWlseToiVHJlYnVjaGV0IE1TIixmb250U2l6ZToxMCx0ZXh0Q29sb3I6IiM4Mzg4OEQiLGJhY2tncm91bmQ6e3R5cGU6cy5Db2xvclR5cGUuU29saWQsY29sb3I6InRyYW5zcGFyZW50In0sYXR0cmlidXRpb25Mb2dvOiExfSxyaWdodFByaWNlU2NhbGU6e3Zpc2libGU6ITAsYm9yZGVyVmlzaWJsZTohMSxlbnRpcmVUZXh0T25seTohMCxtb2RlOnMuUHJpY2VTY2FsZU1vZGUuTm9ybWFsfSxsZWZ0UHJpY2VTY2FsZTp7dmlzaWJsZTohMSxib3JkZXJWaXNpYmxlOiExLGVudGlyZVRleHRPbmx5OiEwLG1vZGU6cy5QcmljZVNjYWxlTW9kZS5Ob3JtYWx9LHRpbWVTY2FsZTp7Ym9yZGVyVmlzaWJsZTohMSx0aW1lVmlzaWJsZTohMCxzZWNvbmRzVmlzaWJsZTohMSxsb2NrVmlzaWJsZVRpbWVSYW5nZU9uUmVzaXplOiEwfSxoYW5kbGVTY2FsZTohMSxoYW5kbGVTY3JvbGw6ITF9LHNlcmllczp4LHZvbHVtZTpDLmRlZmF1bHRWb2x1bWVPcHRpb25zLG1hOkwsbG9hZGluZzpCfX0sVT17IjF5Ijp7dmFsdWU6IjEyTSIsdHlwZToicGVyaW9kLWJhY2sifSwiNXkiOnt2YWx1ZToiNjBNIix0eXBlOiJwZXJpb2QtYmFjayJ9LG1heDp7dmFsdWU6IkFMTCIsdHlwZToicGVyaW9kLWJhY2sifX07ZnVuY3Rpb24gVyh0LGUsaSxhLG4scil7cmV0dXJuISF0LmRheUFuZFRpbWVUaWNrTWFya0ZpeEVuYWJsZWQmJihhPT09cy5UaWNrTWFya1R5cGUuVGltZT9mdW5jdGlvbih0KXtyZXR1cm4idGltZS1yYW5nZSIhPT10LnR5cGUmJih0LnZhbHVlLmVuZHNXaXRoKCJNIil8fHQudmFsdWUuZW5kc1dpdGgoIlkiKXx8WyJZVEQiLCJBTEwiXS5pbmNsdWRlcyh0LnZhbHVlKSl9KGUpOiEoIW58fCFyfHxhPD1yKSYmKGE9PT1zLlRpY2tNYXJrVHlwZS5EYXlPZk1vbnRoJiYoaS5nZXRNb250aCgpIT09bi5nZXRNb250aCgpfHxpLmdldEZ1bGxZZWFyKCkhPT1uLmdldEZ1bGxZZWFyKCkpKSl9Y29uc3QgSD0oKCk9PntsZXQgdD1udWxsLGU9bnVsbCxpPW51bGw7cmV0dXJuKGEsbixyLG8saCxsKT0+e2NvbnN0IGM9e30sZD1uZXcgRGF0ZSgxZTMqbykKO2kmJigwLGYuYXJlRXF1YWxUaW1lRnJhbWVzKShpLHIpfHwodD1udWxsLGU9bnVsbCxpPXIpO2xldCBtPSExO2lmKG4pe209KG4uc3VwcHJlc3NGbj8/VykobixyLGQsaCx0LGUpfWlmKHQ9ZCxlPWgsbSlyZXR1cm4iIjtzd2l0Y2goaCl7Y2FzZSBzLlRpY2tNYXJrVHlwZS5ZZWFyOm4/LmhpZGVZZWFyc1RpY2tNYXJrcz9jLm1vbnRoPSJzaG9ydCI6Yy55ZWFyPSJudW1lcmljIjticmVhaztjYXNlIHMuVGlja01hcmtUeXBlLk1vbnRoOmMubW9udGg9InNob3J0IjticmVhaztjYXNlIHMuVGlja01hcmtUeXBlLkRheU9mTW9udGg6Yy5kYXk9Im51bWVyaWMiO2JyZWFrO2Nhc2Ugcy5UaWNrTWFya1R5cGUuVGltZTpjLmhvdXIxMj0iMTItaG91cnMiPT09YSxjLmhvdXI9IjItZGlnaXQiLGMubWludXRlPSIyLWRpZ2l0IjticmVhaztjYXNlIHMuVGlja01hcmtUeXBlLlRpbWVXaXRoU2Vjb25kczpjLmhvdXIxMj0iMTItaG91cnMiPT09YSxjLmhvdXI9IjItZGlnaXQiLGMubWludXRlPSIyLWRpZ2l0IixjLnNlY29uZD0iMi1kaWdpdCJ9Y29uc3QgdT1uZXcgRGF0ZShkLmdldFVUQ0Z1bGxZZWFyKCksZC5nZXRVVENNb250aCgpLGQuZ2V0VVRDRGF0ZSgpLGQuZ2V0VVRDSG91cnMoKSxkLmdldFVUQ01pbnV0ZXMoKSxkLmdldFVUQ1NlY29uZHMoKSxkLmdldFVUQ01pbGxpc2Vjb25kcygpKTtyZXR1cm4gdD1kLGU9aCx1LnRvTG9jYWxlU3RyaW5nKGwsYyl9fSkoKTtmdW5jdGlvbiBxKHQsZSl7cmV0dXJuIHQuc2VyaWVzKCkuc2VyaWVzT3JkZXIoKS1lLnNlcmllcygpLnNlcmllc09yZGVyKCl9InVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3cmJih3aW5kb3cubWluaUNoYXJ0SW5zdGFuY2VzPXdpbmRvdy5taW5pQ2hhcnRJbnN0YW5jZXN8fHt9KTtjb25zdCBBPSJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93P3dpbmRvdy5taW5pQ2hhcnRJbnN0YW5jZXM6e307bGV0IFk9MDtjb25zdCBHPXthY3F1aXJlOigpPT4oMCxiLm93bmVyc2hpcCkobmV3IHAuQ2hhcnRTZXNzaW9uKHdpbmRvdy5DaGFydEFwaUluc3RhbmNlLCEwKSl9O2NsYXNzIGp7Y29uc3RydWN0b3IodCxlLGksbil7dGhpcy5faXNEZXN0cm95ZWQ9ITEsdGhpcy5fc3R1ZHlQbG90c09yZGVySW52YWxpZGF0ZWQ9ITAsdGhpcy5fc3R1ZHlQbG90cz1bXSx0aGlzLl9lbFRpbWVmcmFtZT1udWxsLHRoaXMuX3RpbWVmcmFtZVZpZXc9bnVsbCx0aGlzLl90aWNrbWFya3M9bmV3IE1hcCx0aGlzLl9jYWNoZWRUaWNrbWFya3M9bmV3IE1hcCx0aGlzLl9jaGFydFNlc3Npb249bnVsbCx0aGlzLl9jaGFydFNlc3Npb25Db25uZWN0ZWQ9bnVsbCx0aGlzLl9jb25uZWN0Q2FsbGJhY2s9bnVsbCx0aGlzLl9jb25uZWN0ZWQ9ITEsdGhpcy5fbG9hZEVycm9yVGltZW91dD1udWxsLHRoaXMuX2lzTG9hZGluZz0hMSx0aGlzLl9zcGlubmVyPW51bGwsdGhpcy5fY3Jvc3NoYWlyTW92ZUhhbmRsZXJzPW5ldyBNYXAsdGhpcy5fYXRvbWljVXBkYXRlSXNHb2luZz0hMSx0aGlzLl9zZXJpZXNVcERvd25Db2xvcnM9e30sdGhpcy5faXNEV01SZXNvbHV0aW9uPSExLHRoaXMuX3VwZGF0ZVRpbWVySWQ9bnVsbCx0aGlzLl93aWR0aD1uZXcgci5XYXRjaGVkVmFsdWUoMCksdGhpcy5faGVpZ2h0PW5ldyByLldhdGNoZWRWYWx1ZSgwKSx0aGlzLl9zdGF0dXM9bmV3IHIuV2F0Y2hlZFZhbHVlKCJsb2FkaW5nIiksdGhpcy5fdGltZVNjYWxlU2l6ZUNoYW5nZWQ9bmV3IGguRGVsZWdhdGUsdGhpcy5fb25QbG90U3RhdHVzQ2hhbmdlZD0oKT0+e2NvbnN0IHQ9dGhpcy5fbWFpblBsb3Quc3RhdHVzKCkudmFsdWUoKSxlPXRoaXMuX3N0dWR5UGxvdHMuZXZlcnkoKHQ9PjAhPT10LnN0YXR1cygpLnZhbHVlKCkpKSxpPWV8fHRoaXMuX3N0dWR5UGxvdHMuc29tZSgodD0+MCE9PXQuc3RhdHVzKCkudmFsdWUoKSYmdC5pc1Zpc2libGUoKS52YWx1ZSgpKSk7c3dpdGNoKHQpe2Nhc2UgMzplJiZ0aGlzLl9vblBsb3RzRGF0YVJlYWR5KCk7YnJlYWs7Y2FzZSAyOnRoaXMuX29uTWFpblBsb3REYXRhRXJyb3IoKTticmVhaztjYXNlIDE6dGhpcy5fb25NYWluUGxvdFN5bWJvbFJlc29sdmluZ0Vycm9yKCl9Y29uc3Qgcz10aGlzLl9vcHRpb25zLmNoYXJ0T3B0aW9ucy5sb2FkaW5nLmZhZGU7aWYocy52aXNpYmxlKXN3aXRjaCh0aGlzLl9jYWNoZWRUaWNrbWFya3Muc2l6ZT4wfHx0KXtjYXNlIDA6dGhpcy5faW5uZXJDb250YWluZXIuY2xhc3NMaXN0LmFkZCh3LmZhZGUpO2JyZWFrO2Nhc2UgMjpjYXNlIDE6Y2FzZSEwOnRoaXMuX2lubmVyQ29udGFpbmVyLmNsYXNzTGlzdC5yZW1vdmUody5mYWRlKTticmVhaztjYXNlIDM6KCJub25lIj09PXMud2FpdEZvclN0dWR5UGxvdHN8fCJhbGwiPT09cy53YWl0Rm9yU3R1ZHlQbG90cyYmZXx8ImFueSI9PT1zLndhaXRGb3JTdHVkeVBsb3RzJiZpKSYmdGhpcy5faW5uZXJDb250YWluZXIuY2xhc3NMaXN0LnJlbW92ZSh3LmZhZGUpfXRoaXMuX3VwZGF0ZVN0YXR1cygpfSx0aGlzLl90aW1lRnJhbWVPcHRpb25zPWk/LnRpbWVmcmFtZT8ub3B0aW9ucz8/KDAsUy5nZXRNaW5pVGltZUZyYW1lT3B0aW9ucykoKSx0aGlzLl9vcHRpb25zPSgwLGEuZGVmYXVsdCkoe30sTixpKSx0aGlzLl9jaGFydFNlc3Npb25Qcm92aWRlcj1uPz9HLHRoaXMuX2NvbnRhaW5lcj1lLHRoaXMuX2lubmVyQ29udGFpbmVyPWUub3duZXJEb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSx0aGlzLl9pbm5lckNvbnRhaW5lci5zdHlsZS53aWR0aD0iMTAwJSIsdGhpcy5faW5uZXJDb250YWluZXIuc3R5bGUuaGVpZ2h0PSIxMDAlIix0aGlzLl9pbm5lckNvbnRhaW5lci5zdHlsZS5taW5IZWlnaHQ9ImluaGVyaXQiLHRoaXMuX2lubmVyQ29udGFpbmVyLnN0eWxlLm1pbldpZHRoPSJpbmhlcml0IixlLmFwcGVuZENoaWxkKHRoaXMuX2lubmVyQ29udGFpbmVyKSx0aGlzLl93aWRnZXQ9KDAscy5jcmVhdGVDaGFydEV4KSh0aGlzLl9pbm5lckNvbnRhaW5lcixuZXcgVCx7Li4udGhpcy5fb3B0aW9ucy5jaGFydE9wdGlvbnM/LmNoYXJ0LGF1dG9TaXplOiEwfSk7Y29uc3QgbD10aGlzLl93aWRnZXQucGFuZXMoKVswXTt0aGlzLl90ZXh0V2F0ZXJtYXJrPSgwLHMuY3JlYXRlVGV4dFdhdGVybWFyaykobCx7CnZpc2libGU6ITF9KSx0aGlzLl90aW1lZnJhbWU9bmV3IG8uV2F0Y2hlZE9iamVjdCh0aGlzLl9vcHRpb25zLnRpbWVmcmFtZS52YWx1ZSksdGhpcy5fbWFpblBsb3Q9dGhpcy5fY3JlYXRlTWFpblBsb3QodCksdGhpcy5zZXRUaW1lZnJhbWUodGhpcy5fdGltZWZyYW1lLnZhbHVlKCksITApO2NvbnN0IGM9KDAsZi5jb252ZXJ0VGltZUZyYW1lVG9TdHIpKHRoaXMuX3RpbWVmcmFtZS52YWx1ZSgpKSxkPXRoaXMuX29wdGlvbnMuY2FjaGU/LmxvYWREYXRhKGMpO2Q/KHRoaXMuX2NhY2hlZFRpY2ttYXJrcz1kLnRpY2ttYXJrcyx0aGlzLl90aWNrbWFya3M9bmV3IE1hcCh0aGlzLl9jYWNoZWRUaWNrbWFya3MpLHRoaXMuX2NyZWF0ZVRvb2x0aXBEYXRlRm9ybWF0dGVyKCkpOnRoaXMuY29ubmVjdCgpLHRoaXMuX3BhcmVudFJlc2l6ZU9ic2VydmVyPW5ldyBSZXNpemVPYnNlcnZlcigodD0+e3RoaXMuX21haW5QbG90LmZpdENvbnRlbnQoKTtmb3IoY29uc3QgZSBvZiB0KWlmKGUuY29udGVudEJveFNpemUpe2NvbnN0IHQ9ZS5jb250ZW50Qm94U2l6ZVswXTt0aGlzLl93aWR0aC5zZXRWYWx1ZSh0LmlubGluZVNpemUpLHRoaXMuX2hlaWdodC5zZXRWYWx1ZSh0LmJsb2NrU2l6ZSl9fSkpLHRoaXMuX3BhcmVudFJlc2l6ZU9ic2VydmVyLm9ic2VydmUoZSk7Y29uc3QgbT1lLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3RoaXMuX3dpZHRoLnNldFZhbHVlKG0ud2lkdGgpLHRoaXMuX2hlaWdodC5zZXRWYWx1ZShtLmhlaWdodCksdGhpcy5fY3JlYXRlTGVnZW5kKCksdGhpcy5fdXBkYXRlU2VyaWVzVXBEb3duQ29sb3JzKCksdGhpcy5fYm91bmRUaW1lU2NhbGVTaXplQ2hhbmdlZEhhbmRsZXI9dGhpcy5fdGltZVNjYWxlU2l6ZUNoYW5nZWRIYW5kbGVyLmJpbmQodGhpcyksdGhpcy5fd2lkZ2V0LnRpbWVTY2FsZSgpLnN1YnNjcmliZVNpemVDaGFuZ2UodGhpcy5fYm91bmRUaW1lU2NhbGVTaXplQ2hhbmdlZEhhbmRsZXIpLFkrPTEsdGhpcy5faW5uZXJDb250YWluZXIuZGF0YXNldC5taW5pQ2hhcnRJZD1gJHtZfWAsQVt0aGlzLl9pbm5lckNvbnRhaW5lci5kYXRhc2V0Lm1pbmlDaGFydElkXT10aGlzfWFzeW5jIHRha2VTY3JlZW5zaG90KCl7Y29uc3R7dGFrZVNjcmVlbnNob3Q6dH09YXdhaXQgUHJvbWlzZS5hbGwoW2kuZSg5Mjk2NCksaS5lKDEyMTgxKSxpLmUoMTkzMTEpXSkudGhlbihpLmJpbmQoaSwyMDE3ODEpKTtyZXR1cm4gdCh0aGlzLndpZGdldCgpLHRoaXMubWFpblBsb3QoKS5zeW1ib2xJbmZvKCkpfXNjcmVlbnNob3RTeW1ib2woKXtyZXR1cm4gdGhpcy5tYWluUGxvdCgpLnN5bWJvbCgpfWNvbnRhaW5lcigpe3JldHVybiB0aGlzLl9jb250YWluZXJ9aW5uZXJDb250YWluZXIoKXtyZXR1cm4gdGhpcy5faW5uZXJDb250YWluZXJ9Z2V0Q2hhcnRDb250YWluZXIoKXtyZXR1cm4gdGhpcy5fY29udGFpbmVyPygwLHkuZ2V0Q2hhcnRMYXlvdXRDb250YWluZXIpKHRoaXMuX2NvbnRhaW5lcik6bnVsbH13aWR0aCgpe3JldHVybiB0aGlzLl93aWR0aC5yZWFkb25seSgpfWhlaWdodCgpe3JldHVybiB0aGlzLl9oZWlnaHQucmVhZG9ubHkoKX1zdGF0dXMoKXtyZXR1cm4gdGhpcy5fc3RhdHVzLnJlYWRvbmx5KCl9c2VyaWVzRGF0YVNvdXJjZSgpe3JldHVybiB0aGlzLl9tYWluUGxvdC5zZXJpZXNEYXRhU291cmNlKCl9c3VwcG9ydFJlYWx0aW1lVXBkYXRlcygpe3JldHVybiBCb29sZWFuKHRoaXMuX29wdGlvbnMuZG9Ob3REaXNjb25uZWN0T25EYXRhUmVhZHkpfWNvbm5lY3QodCl7Y29uc3QgZT0oMCxmLmNvbnZlcnRUaW1lRnJhbWVUb1N0cikodGhpcy5fdGltZWZyYW1lLnZhbHVlKCkpOygwLGwuYXNzZXJ0KSghdGhpcy5fb3B0aW9ucy5jYWNoZT8ubG9hZERhdGEoZSksIkNoYXJ0IGNhbiBub3QgdG8gY29ubmVjdCBpZiB0aGVyZSBpcyBhbiBleGlzdGluZyBjYWNoZSBkYXRhIiksImZ1bmN0aW9uIj09dHlwZW9mIHQmJih0aGlzLl9jb25uZWN0Q2FsbGJhY2s9dCksdGhpcy5fY2xlYXJSZWNvbm5lY3Rpb25UaW1lb3V0KCksdGhpcy5jb25uZWN0ZWQoKXx8KHRoaXMuX3Nob3dMb2FkaW5nKCksdGhpcy5fbWFpblBsb3QuY2xlYXJEYXRhKCksdGhpcy5fc3R1ZHlQbG90cy5mb3JFYWNoKCh0PT50LmNsZWFyRGF0YSgpKSksdGhpcy5fY2hhcnRTZXNzaW9ufHwodGhpcy5fY2hhcnRTZXNzaW9uPXRoaXMuX2NoYXJ0U2Vzc2lvblByb3ZpZGVyLmFjcXVpcmUoKSx0aGlzLl9jaGFydFNlc3Npb24uY3JpdGljYWxFcnJvcigpLnN1YnNjcmliZSh0aGlzLHRoaXMuX29uQ2hhcnRTZXNzaW9uQ3JpdGljYWxFcnJvciksdGhpcy5fY2hhcnRTZXNzaW9uQ29ubmVjdGVkPXRoaXMuX2NoYXJ0U2Vzc2lvbi5pc0Nvbm5lY3RlZCgpLnNwYXduKCksdGhpcy5fY2hhcnRTZXNzaW9uQ29ubmVjdGVkLnN1YnNjcmliZSh0aGlzLl9vbkNoYXJ0U2Vzc2lvbklzQ29ubmVjdGVkQ2hhbmdlZC5iaW5kKHRoaXMpLHtjYWxsV2l0aExhc3Q6ITB9KSksdGhpcy5fY2hhcnRTZXNzaW9uLmNvbm5lY3QodGhpcy5fb25EYXRhLmJpbmQodGhpcykpLHRoaXMuX2NoYXJ0U2Vzc2lvbi5pc0Nvbm5lY3RlZCgpLnZhbHVlKCkmJnRoaXMuX3JlcXVlc3REYXRhKCksdGhpcy5fY2xlYXJOb0RhdGFUaW1lb3V0KCksdGhpcy5fY3JlYXRlTm9EYXRhVGltZW91dCgpKX1kaXNjb25uZWN0KCl7dGhpcy5fc3R1ZHlQbG90cy5mb3JFYWNoKCh0PT50LmRpc2Nvbm5lY3QoKSkpLHRoaXMuX21haW5QbG90LmRpc2Nvbm5lY3QoKSx0aGlzLl9jaGFydFNlc3Npb24/LmRpc2Nvbm5lY3QoKSx0aGlzLl9jb25uZWN0ZWQ9ITEsdGhpcy5fY2xlYXJOb0RhdGFUaW1lb3V0KCl9Y29ubmVjdGVkKCl7cmV0dXJuIEJvb2xlYW4odGhpcy5fY29ubmVjdGVkJiZ0aGlzLl9jaGFydFNlc3Npb24mJnRoaXMuX2NoYXJ0U2Vzc2lvbi5pc0Nvbm5lY3RlZCgpLnZhbHVlKCkpfXNldFRpbWVmcmFtZSh0LGUsaSl7Y29uc3Qgcz10aGlzLl90aW1lZnJhbWUudmFsdWUoKTtsZXQgYT10O2NvbnN0IG49InBlcmlvZC1iYWNrIj09PWEudHlwZT9VW2EudmFsdWVdOnZvaWQgMDt2b2lkIDAhPT1uJiYoYT1uKTtsZXQgcj1udWxsCjtpZihyPXRoaXMuX3RpbWVmcmFtZUlzQXZhaWxhYmxlKGEpP2E6dGhpcy5fdGltZWZyYW1lSXNBdmFpbGFibGUoTSk/TTp0aGlzLl90aW1lRnJhbWVPcHRpb25zLmZpbmQoKHQ9PnRoaXMuX3RpbWVmcmFtZUlzQXZhaWxhYmxlKHQudmFsdWUpKSk/LnZhbHVlPz9udWxsLG51bGw9PT1yKXJldHVybiB2b2lkIGsubG9nV2FybigiVGhlIGN1cnJlbnQgdGltZWZyYW1lIGlzIG5vdCBjb21wYXRpYmxlIHdpdGggdGhlIHRpbWVmcmFtZXMgZnJvbSB0aW1lRnJhbWVPcHRpb25zIik7dGhpcy5fb3B0aW9ucy50aW1lZnJhbWUuY3VycmVudFRpbWVmcmFtZUNhbGxiYWNrJiZ0aGlzLl9vcHRpb25zLnRpbWVmcmFtZS5jdXJyZW50VGltZWZyYW1lQ2FsbGJhY2sociksdGhpcy5fdGltZWZyYW1lLnNldFZhbHVlKHIpO2NvbnN0IG89KDAsZi5jb252ZXJ0VGltZUZyYW1lVG9TdHIpKHRoaXMuX3RpbWVmcmFtZS52YWx1ZSgpKTt0aGlzLl9hY3RpdmVSYW5nZT1vLHRoaXMuX3RpbWVmcmFtZVZpZXcmJnRoaXMuX29wdGlvbnMudGltZWZyYW1lLnZpc2libGUmJnRoaXMuX3RpbWVmcmFtZVZpZXcudXBkYXRlKHthY3RpdmVSYW5nZTp0aGlzLl9hY3RpdmVSYW5nZX0pO2NvbnN0IGg9dGhpcy5fb3B0aW9ucy5jYWNoZT8ubG9hZERhdGEobyk7aWYoaClyZXR1cm4gdGhpcy5fY2FjaGVkVGlja21hcmtzPWgudGlja21hcmtzLHRoaXMuX3RpY2ttYXJrcz1uZXcgTWFwKHRoaXMuX2NhY2hlZFRpY2ttYXJrcyksdGhpcy5fY3JlYXRlVG9vbHRpcERhdGVGb3JtYXR0ZXIoKSx2b2lkIHRoaXMuX21haW5QbG90LnJlbG9hZENhY2hlKGgubWFpblBsb3QpO3RoaXMuX2NhY2hlZFRpY2ttYXJrcy5zaXplJiYodGhpcy5fY2FjaGVkVGlja21hcmtzPW5ldyBNYXAsdGhpcy5fdGlja21hcmtzPW5ldyBNYXAsdGhpcy5fbWFpblBsb3QucmVsb2FkQ2FjaGUoKSx0aGlzLl9tYWluUGxvdC5jbGVhckRhdGEoKSksKCFlJiZzIT09dGhpcy5fdGltZWZyYW1lLnZhbHVlKCl8fGkpJiZ0aGlzLl9yZXF1ZXN0RGF0YU9uVGltZWZyYW1lQ2hhbmdlKCl9Y2hhcnRTZXNzaW9uKCl7cmV0dXJuKDAsbC5lbnN1cmVOb3ROdWxsKSh0aGlzLl9jaGFydFNlc3Npb24pfXdpZGdldCgpe3JldHVybiB0aGlzLl93aWRnZXR9dGltZWZyYW1lKCl7cmV0dXJuIHRoaXMuX3RpbWVmcmFtZS5yZWFkb25seSgpfXNldFRpbWVGcmFtZU9wdGlvbnModCxlKXtpZih0PT09dGhpcy5fdGltZUZyYW1lT3B0aW9ucylyZXR1cm47Y29uc3QgaT10aGlzLl90aW1lRnJhbWVPcHRpb25zLmZpbmQoKHQ9PigwLGYuYXJlRXF1YWxUaW1lRnJhbWVzKSh0LnZhbHVlLHRoaXMudGltZWZyYW1lKCkudmFsdWUoKSkpKSxzPWk/LnRhcmdldFJlc29sdXRpb24/P251bGw7dGhpcy5fdGltZUZyYW1lT3B0aW9ucz10LGU/dGhpcy5zZXRUaW1lZnJhbWUoZSk6dGhpcy5yZXNvbHV0aW9uKCkhPT1zJiZ0aGlzLl9yZXF1ZXN0RGF0YU9uVGltZWZyYW1lQ2hhbmdlKCksdGhpcy5faW5pdFRpbWVmcmFtZXNSZW5kZXJlcigpfXRpbWVGcmFtZU9wdGlvbnMoKXtyZXR1cm4gdGhpcy5fdGltZUZyYW1lT3B0aW9uc31yZXNvbHV0aW9uKCl7Y29uc3QgdD10aGlzLl90aW1lRnJhbWVPcHRpb25zLmZpbmQoKHQ9PigwLGYuYXJlRXF1YWxUaW1lRnJhbWVzKSh0LnZhbHVlLHRoaXMudGltZWZyYW1lKCkudmFsdWUoKSkpKTtyZXR1cm4oMCxsLmVuc3VyZURlZmluZWQpKHQ/LnRhcmdldFJlc29sdXRpb24pfWNoYW5nZVN5bWJvbCh0LGUpe3ZvaWQgMCE9PWUmJnRoaXMuX3VwZGF0ZVNlcmllc09wdGlvbnMoZSksdGhpcy5fb3B0aW9ucy5jaGFydE9wdGlvbnMubG9hZGluZy5jbGVhckRhdGFPblN5bWJvbENoYW5nZSYmKHRoaXMuX21haW5QbG90LmNsZWFyRGF0YSgpLHRoaXMuX21haW5QbG90LmRlbGV0ZVZpZXcoKSx0aGlzLl9zdHVkeVBsb3RzLmZvckVhY2goKHQ9PnQuY2xlYXJEYXRhKCkpKSx0aGlzLl9zdHVkeVBsb3RzLmZvckVhY2goKHQ9PnQuZGVsZXRlVmlldygpKSkpO3RoaXMuX21haW5QbG90LnNldFN5bWJvbCh0LHRoaXMuX29wdGlvbnMuY2hhcnRPcHRpb25zLnNlcmllcykmJih0aGlzLmNvbm5lY3RlZCgpJiYodGhpcy5fbWFpblBsb3QucmVxdWVzdERhdGEoKSx0aGlzLl9zdHVkeVBsb3RzLmZvckVhY2goKHQ9PnQucmVxdWVzdERhdGEoKSkpKSx0aGlzLmNvbm5lY3QoKSl9dXBkYXRlU2VyaWVzT3B0aW9ucyh0KXt0aGlzLl9hdG9taWNVcGRhdGVJc0dvaW5nPSEwLHRoaXMuX3VwZGF0ZVNlcmllc09wdGlvbnModCksdGhpcy5fbWFpblBsb3QudXBkYXRlU2VyaWVzT3B0aW9ucyh0KSx0aGlzLl91cGRhdGVTZXJpZXNVcERvd25Db2xvcnMoKSx0aGlzLl9hdG9taWNVcGRhdGVJc0dvaW5nPSExfWdldFNlcmllc09wdGlvbnMoKXtyZXR1cm4gdGhpcy5fbWFpblBsb3QuY3VycmVudFNlcmllc09wdGlvbnMoKX11cGRhdGVBZGRpdGlvbmFsU2VyaWVzT3B0aW9ucyh0LGUpe3RoaXMuX3N0dWR5UGxvdHNbZV0udXBkYXRlU2VyaWVzT3B0aW9ucyh0KX1zaG93TWVzc2FnZSh0KXt0aGlzLl9oaWRlTG9hZGluZygpLHRoaXMuX21haW5QbG90LmRlbGV0ZVZpZXcoKSx0aGlzLl9zdHVkeVBsb3RzLmZvckVhY2goKHQ9PnQuZGVsZXRlVmlldygpKSksdGhpcy5fdGV4dFdhdGVybWFyay5hcHBseU9wdGlvbnM/Lih7dmlzaWJsZTohMCxsaW5lczpbe2NvbG9yOiIjODM4ODhEIix0ZXh0OnQsZm9udFNpemU6MTJ9XX0pfWhpZGVNZXNzYWdlKCl7dGhpcy5fdGV4dFdhdGVybWFyay5hcHBseU9wdGlvbnM/Lih7dmlzaWJsZTohMSxsaW5lczpbXX0pfWZyb20oKXtjb25zdCB0PXRoaXMuX3RpbWVGcmFtZU9wdGlvbnMuZmluZCgodD0+KDAsZi5hcmVFcXVhbFRpbWVGcmFtZXMpKHQudmFsdWUsdGhpcy50aW1lZnJhbWUoKS52YWx1ZSgpKSkpO3JldHVyblt0Py5mcm9tXX1lbmFibGUodCl7dGhpcy5jb25uZWN0KHQpfWRpc2FibGUoKXt0aGlzLmRpc2Nvbm5lY3QoKX1kZXN0cm95KCl7dGhpcy5fYm91bmRUaW1lU2NhbGVTaXplQ2hhbmdlZEhhbmRsZXImJih0aGlzLl93aWRnZXQudGltZVNjYWxlKCkudW5zdWJzY3JpYmVTaXplQ2hhbmdlKHRoaXMuX2JvdW5kVGltZVNjYWxlU2l6ZUNoYW5nZWRIYW5kbGVyKSwKdGhpcy5fYm91bmRUaW1lU2NhbGVTaXplQ2hhbmdlZEhhbmRsZXI9dm9pZCAwKSx0aGlzLl9wYXJlbnRSZXNpemVPYnNlcnZlci5kaXNjb25uZWN0KCksdGhpcy5kaXNjb25uZWN0KCksdGhpcy5fd2lkZ2V0LnJlbW92ZSgpLHRoaXMuX21haW5QbG90LnN5bWJvbFJlc29sdmVkKCkudW5zdWJzY3JpYmVBbGwobnVsbCksdGhpcy5fbWFpblBsb3QudGltZUZyYW1lSW52YWxpZGF0ZWQoKS51bnN1YnNjcmliZUFsbCh0aGlzKSx0aGlzLl9tYWluUGxvdC5kZXN0cm95KCksdGhpcy5fc3R1ZHlQbG90cy5mb3JFYWNoKCh0PT50LmRlc3Ryb3koKSkpLHRoaXMuX3RpbWVmcmFtZVZpZXc/LmRlc3Ryb3koKSx0aGlzLl9jaGFydFNlc3Npb25Db25uZWN0ZWQ/LmRlc3Ryb3koKSx0aGlzLl9jaGFydFNlc3Npb24/LmNyaXRpY2FsRXJyb3IoKS51bnN1YnNjcmliZUFsbCh0aGlzKSx0aGlzLl9jaGFydFNlc3Npb24/LnJlbGVhc2UoKSxkZWxldGUgQVt0aGlzLl9pbm5lckNvbnRhaW5lci5kYXRhc2V0Lm1pbmlDaGFydElkXSx0aGlzLl9pbm5lckNvbnRhaW5lci5yZW1vdmUoKSx0aGlzLl9pc0Rlc3Ryb3llZD0hMH11cGRhdGVBdmFpbGFibGVUaW1lZnJhbWVzKCl7dGhpcy5fbWFpblBsb3Quc3ltYm9sSW5mbygpPyh0aGlzLl90aW1lZnJhbWVWaWV3JiZ0aGlzLl9vcHRpb25zLnRpbWVmcmFtZS52aXNpYmxlJiZ0aGlzLl90aW1lZnJhbWVWaWV3LnVwZGF0ZSh7cmFuZ2VzOnRoaXMuX2dldEF2YWlsYWJsZVRpbWVGcmFtZXMoKX0pLHRoaXMuc2V0VGltZWZyYW1lKHRoaXMuX3RpbWVmcmFtZS52YWx1ZSgpKSk6ay5sb2dXYXJuKCJVcGRhdGluZyBhdmFpbGFibGUgcmVzb2x1dGlvbnMgd2l0aG91dCBmdWxsIHN5bWJvbCBpbmZvIil9bWFpblBsb3QoKXtyZXR1cm4gdGhpcy5fbWFpblBsb3R9Zml0Q29udGVudCgpe3RoaXMuX21haW5QbG90LmZpdENvbnRlbnQoKX1oYXNTdHVkeVBsb3RzKCl7cmV0dXJuIHRoaXMuX3N0dWR5UGxvdHMubGVuZ3RoPjB9c3R1ZHlQbG90cygpe3JldHVybiB0aGlzLl9zdHVkeVBsb3RzT3JkZXJJbnZhbGlkYXRlZCYmKHRoaXMuX3N0dWR5UGxvdHMuc29ydChxKSx0aGlzLl9zdHVkeVBsb3RzT3JkZXJJbnZhbGlkYXRlZD0hMSksdGhpcy5fc3R1ZHlQbG90c31hZGRTdHVkeVBsb3QodCl7cmV0dXJuIHRoaXMuX2FkZFN0dWR5UGxvdCh0KSx7bm9EYXRhOnQubm9EYXRhKCksc3RhdHVzOnQuc3RhdHVzKCkscmVtb3ZlOigpPT57dGhpcy5fcmVtb3ZlU3R1ZHlQbG90KHQpfSxzeW1ib2w6KCk9PnQuc3ltYm9sKCksZXh0ZW5kZWRTeW1ib2w6KCk9PnQuZXh0ZW5kZWRTeW1ib2woKSxvcHRpb25zOigpPT50LmN1cnJlbnRTZXJpZXNPcHRpb25zKCl9fWluZGV4VG9UaW1lKHQpe2NvbnN0IGU9dGhpcy5fdGlja21hcmtzLnNpemU/dGhpcy5fdGlja21hcmtzOnRoaXMuX2NhY2hlZFRpY2ttYXJrcztyZXR1cm4gZS5nZXQodCk/LnRpbWU/P251bGx9c3Vic2NyaWJlQ3Jvc3NoYWlyTW92ZSh0KXtjb25zdCBlPWU9Pnt0aGlzLl9hdG9taWNVcGRhdGVJc0dvaW5nfHx0KGUpfTt0aGlzLl9jcm9zc2hhaXJNb3ZlSGFuZGxlcnMuc2V0KHQsZSksdGhpcy5fd2lkZ2V0LnN1YnNjcmliZUNyb3NzaGFpck1vdmUoZSl9dW5zdWJzY3JpYmVDcm9zc2hhaXJNb3ZlKHQpe2NvbnN0IGU9dGhpcy5fY3Jvc3NoYWlyTW92ZUhhbmRsZXJzLmdldCh0KTtlJiYodGhpcy5fY3Jvc3NoYWlyTW92ZUhhbmRsZXJzLmRlbGV0ZSh0KSx0aGlzLl93aWRnZXQudW5zdWJzY3JpYmVDcm9zc2hhaXJNb3ZlKGUpKX11cERvd25Db2xvcnModCl7cmV0dXJuIHRoaXMuX3Nlcmllc1VwRG93bkNvbG9yc1t0XXx8dGhpcy5fdXBkYXRlU2VyaWVzVXBEb3duQ29sb3JzSW1wbCgpLHRoaXMuX3Nlcmllc1VwRG93bkNvbG9yc1t0XT8/bnVsbH1kYXRlVGltZUZvcm1hdHRlcigpe3JldHVybiB0aGlzLl9kYXRlVGltZUZvcm1hdHRlcn1pc0RXTVJlc29sdXRpb24oKXtyZXR1cm4gdGhpcy5faXNEV01SZXNvbHV0aW9ufXVwZGF0ZUNoYXJ0UmlnaHRNYXJnaW5BY2NvcmRpbmdUb1RpdGxlcygpe2NvbnN0IHQ9dGhpcy5tYWluUGxvdCgpLmN1cnJlbnRTZXJpZXNPcHRpb25zKCkuaG9yek1hcmdpbnM/LnJpZ2h0UHg7aWYodCl0aGlzLm1haW5QbG90KCkudXBkYXRlSG9yek1hcmdpbnMoe3JpZ2h0UHg6dH0pO2Vsc2V7Y29uc3QgdD1bdGhpcy5tYWluUGxvdCgpLC4uLnRoaXMuX3N0dWR5UGxvdHNdO2xldCBlPTA7Zm9yKGNvbnN0IGkgb2YgdClmb3IoY29uc3QgdCBvZiBpLnRpdGxlcygpKWU9TWF0aC5tYXgoZSx0Lmxlbmd0aCk7dGhpcy5tYWluUGxvdCgpLnVwZGF0ZUhvcnpNYXJnaW5zKHtyaWdodFB4OjEyKmV9KX10aGlzLm1haW5QbG90KCkuZml0Q29udGVudCgpfWFjdGl2ZVJhbmdlKCl7cmV0dXJuIHRoaXMuX2FjdGl2ZVJhbmdlfXRpbWVTY2FsZVNpemVDaGFuZ2VkKCl7cmV0dXJuIHRoaXMuX3RpbWVTY2FsZVNpemVDaGFuZ2VkfV9nZXRDaGFydFBsb3RDbGFzcygpe3JldHVybiBQLk1pbmlDaGFydFBsb3R9X2NyZWF0ZU1haW5QbG90KHQpe2NvbnN0IGU9KDAsZi5jb252ZXJ0VGltZUZyYW1lVG9TdHIpKHRoaXMuX3RpbWVmcmFtZS52YWx1ZSgpKSxpPW5ldyh0aGlzLl9nZXRDaGFydFBsb3RDbGFzcygpKSh0aGlzLHRoaXMuX29wdGlvbnMuY2hhcnRPcHRpb25zLnNlcmllcyx0aGlzLl9vcHRpb25zLmNoYXJ0T3B0aW9ucy52b2x1bWUsKCgpPT50aGlzLl9zdHVkeVBsb3RzKSx0aGlzLl9vcHRpb25zLm1haW5QbG90T3B0aW9ucyx0aGlzLl9vcHRpb25zLmNhY2hlPy5sb2FkRGF0YShlKT8ubWFpblBsb3QpO3JldHVybiBpLnNldFN5bWJvbCh0KSxpLnN5bWJvbFJlc29sdmVkKCkuc3Vic2NyaWJlKHRoaXMsdGhpcy5fb25TeW1ib2xSZXNvbHZlZCksaS50aW1lRnJhbWVJbnZhbGlkYXRlZCgpLnN1YnNjcmliZSh0aGlzLHRoaXMuX29uVGltZUZyYW1lSW52YWxpZGF0ZWQpLGkuc3RhdHVzKCkuc3Vic2NyaWJlKHRoaXMuX29uUGxvdFN0YXR1c0NoYW5nZWQpLGl9X29uUGxvdHNEYXRhUmVhZHkoKXsiZnVuY3Rpb24iPT10eXBlb2YgdGhpcy5fb3B0aW9ucy5vbkZpcnN0RGF0YSYmKHRoaXMuX29wdGlvbnMub25GaXJzdERhdGEoKSwKdGhpcy5fb3B0aW9ucy5vbkZpcnN0RGF0YT1udWxsKSx0aGlzLl9oaWRlTG9hZGluZygpLHRoaXMuaGlkZU1lc3NhZ2UoKSx0aGlzLl9jbGVhck5vRGF0YVRpbWVvdXQoKSx0aGlzLl9vcHRpb25zLmRvTm90RGlzY29ubmVjdE9uRGF0YVJlYWR5fHx0aGlzLmRpc2Nvbm5lY3QoKSx0aGlzLl9jcmVhdGVSZWNvbm5lY3Rpb25UaW1lb3V0KCksdGhpcy5fc2F2ZUNhY2hlKCl9X2FkZFN0dWR5UGxvdCh0KXt0aGlzLl9zdHVkeVBsb3RzLnB1c2godCksdC5zdGF0dXMoKS5zdWJzY3JpYmUodGhpcy5fb25QbG90U3RhdHVzQ2hhbmdlZCksdGhpcy5jb25uZWN0ZWQoKT90LnJlcXVlc3REYXRhKCk6dGhpcy5jb25uZWN0KCksdC5mb3JjZVBlcmNlbnRhZ2VNb2RlKCkmJnRoaXMuX21haW5QbG90LnN3aXRjaFRvUGVyY2VudGFnZVNjYWxlTW9kZSgpLHRoaXMuX3VwZGF0ZVN0YXR1cygpLHRoaXMuX3N0dWR5UGxvdHNPcmRlckludmFsaWRhdGVkPSEwfV9yZW1vdmVTdHVkeVBsb3QodCl7Y29uc3QgZT10aGlzLl9zdHVkeVBsb3RzLmluZGV4T2YodCk7KDAsbC5hc3NlcnQpKC0xIT09ZSksdGhpcy5fc3R1ZHlQbG90cy5zcGxpY2UoZSwxKSx0LnN0YXR1cygpLnVuc3Vic2NyaWJlKHRoaXMuX29uUGxvdFN0YXR1c0NoYW5nZWQpLHQuZGVsZXRlVmlldygpLHQuY2xlYXJEYXRhKCksdC5kZXN0cm95KCksdGhpcy5fYXV0b1Jlc3RvcmVPcmlnaW5hbFNjYWxlTW9kZSgpJiZ0aGlzLl9zdHVkeVBsb3RzLmV2ZXJ5KCh0PT4hdC5mb3JjZVBlcmNlbnRhZ2VNb2RlKCkpKSYmdGhpcy5fbWFpblBsb3QucmVzdG9yZU9yaWdpbmFsU2NhbGVNb2RlKCksdGhpcy5fc3R1ZHlQbG90c09yZGVySW52YWxpZGF0ZWQ9ITAsdGhpcy5fdXBkYXRlU3RhdHVzKCl9X2F1dG9SZXN0b3JlT3JpZ2luYWxTY2FsZU1vZGUoKXtyZXR1cm4hMH1fdXBkYXRlU2VyaWVzVXBEb3duQ29sb3JzKCl7dGhpcy5fc2VyaWVzVXBEb3duQ29sb3JzPXt9fV91cGRhdGVTZXJpZXNVcERvd25Db2xvcnNJbXBsKCl7Y29uc3QgdD10aGlzLl9vcHRpb25zLmNoYXJ0T3B0aW9ucy5zZXJpZXMsZT10aGlzLl9tYWluUGxvdC5zZXJpZXMoKS5vcHRpb25zKCk7c3dpdGNoKHQuY2hhcnRUeXBlKXtjYXNlImNhbmRsZXN0aWNrcyI6Y29uc3QgaT1lO3RoaXMuX3Nlcmllc1VwRG93bkNvbG9ycy5DYW5kbGVzdGljaz17dXA6dC5ib3JkZXJVcENvbG9yPz90LnVwQ29sb3I/P2kuYm9yZGVyVXBDb2xvcj8/aS51cENvbG9yLGRvd246dC5ib3JkZXJEb3duQ29sb3I/P3QuZG93bkNvbG9yPz9pLmJvcmRlckRvd25Db2xvcj8/aS5kb3duQ29sb3J9O2JyZWFrO2Nhc2UiYmFycyI6Y29uc3Qgcz1lO3RoaXMuX3Nlcmllc1VwRG93bkNvbG9ycy5CYXI9e3VwOnQudXBDb2xvcj8/cy51cENvbG9yLGRvd246dC5kb3duQ29sb3I/P3MuZG93bkNvbG9yfTticmVhaztjYXNlImhpc3RvZ3JhbSI6Y29uc3QgYT1lO3RoaXMuX3Nlcmllc1VwRG93bkNvbG9ycy5IaXN0b2dyYW09e3VwOnQudXBDb2xvcj8/dC5jb2xvcj8/YS5jb2xvcixkb3duOnQuZG93bkNvbG9yPz90LmNvbG9yPz9hLmNvbG9yfX19X3VwZGF0ZVNlcmllc09wdGlvbnModCl7dGhpcy5fb3B0aW9ucy5jaGFydE9wdGlvbnMuc2VyaWVzPWZ1bmN0aW9uKHQpe2xldCBlO3N3aXRjaCh0LmNoYXJ0VHlwZT8/ImFyZWEiKXtjYXNlImJhcnMiOmU9UjticmVhaztjYXNlImNhbmRsZXN0aWNrcyI6ZT1WO2JyZWFrO2Nhc2UiYXJlYSI6ZT14O2JyZWFrO2Nhc2UibGluZSI6ZT1PO2JyZWFrO2Nhc2UiaGlzdG9ncmFtIjplPXo7YnJlYWs7Y2FzZSJwcmV0dHktaGlzdG9ncmFtIjplPUU7YnJlYWs7Y2FzZSJiYXNlbGluZSI6ZT1GfXJldHVybigwLGEuZGVmYXVsdCkoe30sZSx0KX0odCl9X3NhdmVDYWNoZSgpe2NvbnN0e2NhY2hlOnR9PXRoaXMuX29wdGlvbnM7aWYoIXQpcmV0dXJuO2NvbnN0IGU9dGhpcy5fcHJlcGFyZUNhY2hlRGF0YSgpLGk9KDAsZi5jb252ZXJ0VGltZUZyYW1lVG9TdHIpKHRoaXMuX3RpbWVmcmFtZS52YWx1ZSgpKTtlJiYodC5zYXZlRGF0YShpLGUpLHRoaXMuX2NhY2hlZFRpY2ttYXJrcz1lLnRpY2ttYXJrcyl9X3ByZXBhcmVDYWNoZURhdGEoKXtpZighdGhpcy5fdGlja21hcmtzLnNpemUpcmV0dXJuIG51bGw7Y29uc3QgdD10aGlzLl9tYWluUGxvdC5jYWNoZURhdGEoKTtyZXR1cm4gdD97bWFpblBsb3Q6dCx0aWNrbWFya3M6bmV3IE1hcCh0aGlzLl90aWNrbWFya3MpfTpudWxsfV9vbk1haW5QbG90RGF0YUVycm9yKCl7dGhpcy5faGlkZUxvYWRpbmcoKSx0aGlzLnNob3dNZXNzYWdlKG4udChudWxsLHZvaWQgMCxpKDg3MjM4KSkpLHRoaXMuX2NsZWFyTm9EYXRhVGltZW91dCgpLHRoaXMuZGlzY29ubmVjdCgpfV9vbk1haW5QbG90U3ltYm9sUmVzb2x2aW5nRXJyb3IoKXt0aGlzLl9oaWRlTG9hZGluZygpLHRoaXMuc2hvd01lc3NhZ2Uobi50KG51bGwsdm9pZCAwLGkoMTQ2ODA3KSkpLHRoaXMuX2NsZWFyTm9EYXRhVGltZW91dCgpLHRoaXMuZGlzY29ubmVjdCgpfV9jcmVhdGVSZWNvbm5lY3Rpb25UaW1lb3V0KCl7aWYodGhpcy5fb3B0aW9ucy5kb05vdERpc2Nvbm5lY3RPbkRhdGFSZWFkeSlyZXR1cm47Y29uc3QgdD10aGlzLl9vcHRpb25zLnVwZGF0ZVRpbWVvdXQ7dm9pZCAwIT09dCYmdD4wJiYodGhpcy5fdXBkYXRlVGltZXJJZD1zZXRUaW1lb3V0KCgoKT0+e3RoaXMuX3VwZGF0ZVRpbWVySWQ9bnVsbCx0aGlzLmNvbm5lY3RlZCgpP3RoaXMuX3JlcXVlc3REYXRhKCk6dGhpcy5jb25uZWN0KCl9KSx0KSl9X2NsZWFyUmVjb25uZWN0aW9uVGltZW91dCgpe251bGwhPT10aGlzLl91cGRhdGVUaW1lcklkJiYoY2xlYXJJbnRlcnZhbCh0aGlzLl91cGRhdGVUaW1lcklkKSx0aGlzLl91cGRhdGVUaW1lcklkPW51bGwpfV9jcmVhdGVOb0RhdGFUaW1lb3V0KCl7Y29uc3QgdD10aGlzLl9vcHRpb25zLm5vRGF0YVRpbWVvdXQ7dm9pZCAwIT09dCYmdD4wJiYodGhpcy5fbG9hZEVycm9yVGltZW91dD1zZXRUaW1lb3V0KCgoKT0+e3RoaXMuc2hvd01lc3NhZ2Uobi50KG51bGwsdm9pZCAwLGkoMTQ2ODA3KSkpLAoiZnVuY3Rpb24iPT10eXBlb2YgdGhpcy5fb3B0aW9ucy5vbkZpcnN0RGF0YSYmKHRoaXMuX29wdGlvbnMub25GaXJzdERhdGEoKSx0aGlzLl9vcHRpb25zLm9uRmlyc3REYXRhPW51bGwpfSksdCkpfV9jbGVhck5vRGF0YVRpbWVvdXQoKXt0aGlzLl9sb2FkRXJyb3JUaW1lb3V0JiYoY2xlYXJUaW1lb3V0KHRoaXMuX2xvYWRFcnJvclRpbWVvdXQpLHRoaXMuX2xvYWRFcnJvclRpbWVvdXQ9bnVsbCl9X2luaXRUaW1lZnJhbWVzUmVuZGVyZXIoKXtpZighdGhpcy5fb3B0aW9ucy50aW1lZnJhbWUudmlzaWJsZSlyZXR1cm47e2NvbnN0IHQ9dGhpcy5fdGltZUZyYW1lT3B0aW9ucy5sZW5ndGg8MjtpZih0aGlzLl90aW1lZnJhbWVWaWV3Py51cGRhdGUoe2hpZGRlbjp0fSksKHRoaXMuX2VsVGltZWZyYW1lPz90aGlzLl9vcHRpb25zLnRpbWVmcmFtZS5jb250YWluZXIpPy5jbGFzc0xpc3QudG9nZ2xlKHcuaGlkZGVuLHQpLHQpcmV0dXJufWlmKHRoaXMuX2VsVGltZWZyYW1lKXJldHVybjt0aGlzLl9vcHRpb25zLnRpbWVmcmFtZS5jb250YWluZXI/dGhpcy5fZWxUaW1lZnJhbWU9dGhpcy5fb3B0aW9ucy50aW1lZnJhbWUuY29udGFpbmVyOih0aGlzLl9lbFRpbWVmcmFtZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSx0aGlzLl9jb250YWluZXIuYXBwZW5kQ2hpbGQodGhpcy5fZWxUaW1lZnJhbWUpKTtjb25zdCB0PSh0LGUpPT57Y29uc3QgaT10aGlzLl90aW1lRnJhbWVPcHRpb25zLmxlbmd0aDwyLHM9KDAsbC5lbnN1cmVOb3ROdWxsKSh0aGlzLl9lbFRpbWVmcmFtZSk7cy5jbGFzc0xpc3QudG9nZ2xlKHcuaGlkZGVuLGkpLHRoaXMuX3RpbWVmcmFtZVZpZXc9bmV3IHQuVGltZUZyYW1lVmlld1JlbmRlcmVyKHMse25hbWU6Im1pbmljaGFydF90aW1lZnJhbWUiLGFjdGl2ZVJhbmdlOnRoaXMuX2FjdGl2ZVJhbmdlLHJhbmdlczp0aGlzLl9nZXRBdmFpbGFibGVUaW1lRnJhbWVzKCksb25TZWxlY3RSYW5nZTp0PT57dGhpcy5zZXRUaW1lZnJhbWUoe3ZhbHVlOnQsdHlwZToicGVyaW9kLWJhY2sifSl9LHNpemU6dGhpcy5fb3B0aW9ucy50aW1lZnJhbWUuc2l6ZSxoaWRkZW46aSx0aGVtZTplfSl9O1Byb21pc2UuYWxsKFtpLmUoMTIzODUpLGkuZSg4MDc4MiksaS5lKDMyMzg3KSxpLmUoNDQxNjIpXSkudGhlbihpLmJpbmQoaSwzOTU2MjUpKS50aGVuKChlPT57KHRoaXMuX29wdGlvbnMudGltZWZyYW1lLmdldFRoZW1lfHwoKCk9PlByb21pc2UucmVzb2x2ZSh2b2lkIDApKSkoKS50aGVuKChpPT50KGUsaSkpKX0pKX1fY3JlYXRlTGVnZW5kKCl7dGhpcy5fb3B0aW9ucy5sZWdlbmQmJnRoaXMuX29wdGlvbnMubGVnZW5kLnZpc2libGUmJlByb21pc2UuYWxsKFtpLmUoMzAzNzMpLGkuZSg1Njg5KSxpLmUoNjU4MyksaS5lKDMyMzg3KSxpLmUoMTY0NildKS50aGVuKGkuYmluZChpLDI5NzY1MCkpLnRoZW4oKHQ9PnQuY3JlYXRlTGVnZW5kKHRoaXMuX29wdGlvbnMubGVnZW5kLmNvbnRhaW5lcix0aGlzLl9vcHRpb25zLmxlZ2VuZC5pdGVtcykpKX1fZ2V0QXZhaWxhYmxlVGltZUZyYW1lcygpe2NvbnN0IHQ9W107Zm9yKGNvbnN0IGUgb2YgdGhpcy5fdGltZUZyYW1lT3B0aW9ucyl7aWYoIXRoaXMuX3RpbWVmcmFtZUlzQXZhaWxhYmxlKGUudmFsdWUpKWNvbnRpbnVlO2NvbnN0IGk9KDAsZi5jb252ZXJ0VGltZUZyYW1lVG9TdHIpKGUudmFsdWUpO3QucHVzaCh7dmFsdWU6aSx0ZXh0OmUudGV4dCxkZXNjcmlwdGlvbjplLmRlc2NyaXB0aW9ufSl9cmV0dXJuIHR9X3RpbWVmcmFtZUlzQXZhaWxhYmxlKHQpe2NvbnN0IGU9dGhpcy5fdGltZUZyYW1lT3B0aW9ucy5maW5kKChlPT4oMCxmLmFyZUVxdWFsVGltZUZyYW1lcykoZS52YWx1ZSx0KSkpO2lmKCFlKXJldHVybiExO2NvbnN0IGk9dGhpcy5tYWluUGxvdCgpLnN5bWJvbEluZm8oKTtpZighaXx8aS5wcm9fbmFtZSE9PXRoaXMuX21haW5QbG90LnN5bWJvbCgpKXJldHVybiEwO2lmKGkuaGFzX2ludHJhZGF5KXJldHVybiEwO3JldHVybiF1LkludGVydmFsLnBhcnNlKGUudGFyZ2V0UmVzb2x1dGlvbikuaXNJbnRyYWRheSgpfV9vbkNoYXJ0U2Vzc2lvbklzQ29ubmVjdGVkQ2hhbmdlZCh0KXt0IT09dGhpcy5fY29ubmVjdGVkJiYodD8odGhpcy5fY29ubmVjdGVkPSEwLCJmdW5jdGlvbiI9PXR5cGVvZiB0aGlzLl9jb25uZWN0Q2FsbGJhY2smJnRoaXMuX2Nvbm5lY3RDYWxsYmFjaygpLHRoaXMuX2NoYXJ0U2Vzc2lvbj8uc3dpdGNoVGltZXpvbmUoIkV0Yy9VVEMiKSx0aGlzLl9yZXF1ZXN0RGF0YSgpKToodGhpcy5fY29ubmVjdGVkPSExLHRoaXMuX21haW5QbG90LmRpc2Nvbm5lY3QoKSx0aGlzLl9zdHVkeVBsb3RzLmZvckVhY2goKHQ9PnQuZGlzY29ubmVjdCgpKSkpKX1fb25DaGFydFNlc3Npb25Dcml0aWNhbEVycm9yKCl7dGhpcy5fY29ubmVjdGVkPSExfV9jcmVhdGVUb29sdGlwRGF0ZUZvcm1hdHRlcigpe2NvbnN0IHQ9dS5JbnRlcnZhbC5wYXJzZSh0aGlzLnJlc29sdXRpb24oKSk7bGV0IGU7dGhpcy5faXNEV01SZXNvbHV0aW9uPXQuaXNEV00oKSx0aGlzLl93aWRnZXQudGltZVNjYWxlKCkuYXBwbHlPcHRpb25zKHt0aW1lVmlzaWJsZTohdGhpcy5faXNEV01SZXNvbHV0aW9uLHNlY29uZHNWaXNpYmxlOnQuaXNTZWNvbmRzKCl9KTtjb25zdHtkYXRlRm9ybWF0Omk9ImRkIE1NTSAneXkiLHRpbWVIb3Vyc0Zvcm1hdDpzPSIyNC1ob3VycyIsc3VwcHJlc3NUaWNrTWFya3M6YX09dGhpcy5fb3B0aW9ucy5jaGFydE9wdGlvbnM7ZT10aGlzLl9pc0RXTVJlc29sdXRpb24/bmV3IGMuRGF0ZUZvcm1hdHRlcihpKTpuZXcgZC5EYXRlVGltZUZvcm1hdHRlcih7ZGF0ZUZvcm1hdDppLHRpbWVGb3JtYXQ6KDAsZy5nZXRUaW1lRm9ybWF0Rm9ySW50ZXJ2YWwpKHQscyl9KSx0aGlzLl9kYXRlVGltZUZvcm1hdHRlcj1lLHRoaXMuX3dpZGdldC5hcHBseU9wdGlvbnMoe2xvY2FsaXphdGlvbjp7dGltZUZvcm1hdHRlcjp0PT5lLmZvcm1hdChuZXcgRGF0ZSgxZTMqdCkpfSx0aW1lU2NhbGU6e3RpY2tNYXJrRm9ybWF0dGVyOkguYmluZChudWxsLHMsYSx0aGlzLl90aW1lZnJhbWUudmFsdWUoKSl9fSksdGhpcy5fd2lkZ2V0LmFwcGx5T3B0aW9ucyh7dGltZVNjYWxlOnsKdGltZVZpc2libGU6IXUuSW50ZXJ2YWwucGFyc2UodGhpcy5fbWFpblBsb3QucmVzb2x1dGlvbigpKS5pc0RXTSgpfX0pfV9yZXF1ZXN0RGF0YSgpe3RoaXMuX2NyZWF0ZVRvb2x0aXBEYXRlRm9ybWF0dGVyKCksdGhpcy5fY2xlYXJSZWNvbm5lY3Rpb25UaW1lb3V0KCksdGhpcy5fbWFpblBsb3QucmVxdWVzdERhdGEoKSx0aGlzLl9zdHVkeVBsb3RzLmZvckVhY2goKHQ9PnQucmVxdWVzdERhdGEoKSkpfV9vbkRhdGEodCl7aWYodGhpcy5fbWFpblBsb3QuaXNDb25uZWN0ZWQoKSlzd2l0Y2godC5tZXRob2Qpe2Nhc2UidGltZXNjYWxlX3VwZGF0ZSI6e2NvbnN0IGU9dC5wYXJhbXM7aWYoZS5jbGVhcil7dGhpcy5fdGlja21hcmtzLmNsZWFyKCksdGhpcy5fbWFpblBsb3QuY2xlYXJTb3VyY2VEYXRhKCk7Zm9yKGNvbnN0IHQgb2YgdGhpcy5fc3R1ZHlQbG90cyl0LmNsZWFyU291cmNlRGF0YSgpfWlmKGUuaW5kZXhfZGlmZi5sZW5ndGg+MCl7dGhpcy5fbWFpblBsb3QubW92ZVNvdXJjZURhdGEoZS5pbmRleF9kaWZmKTtmb3IoY29uc3QgdCBvZiB0aGlzLl9zdHVkeVBsb3RzKXQubW92ZVNvdXJjZURhdGEoZS5pbmRleF9kaWZmKX1jb25zdCBpPWUubWFya3M7bGV0IHM9MS8wLGE9LTEvMDtmb3IoY29uc3QgdCBvZiBpKXRoaXMuX3RpY2ttYXJrcy5oYXModC5pbmRleCl8fChzPU1hdGgubWluKHMsdC5pbmRleCksYT1NYXRoLm1heChhLHQuaW5kZXgpKSx0aGlzLl90aWNrbWFya3Muc2V0KHQuaW5kZXgsdCk7TnVtYmVyLmlzRmluaXRlKHMpJiZ0aGlzLl9tYWluUGxvdC5vblRpY2ttYXJrc0FkZGVkKHMsYSksdGhpcy5fc2F2ZUNhY2hlKCk7YnJlYWt9fX1fb25TeW1ib2xSZXNvbHZlZCgpe3RoaXMudXBkYXRlQXZhaWxhYmxlVGltZWZyYW1lcygpLHRoaXMuX2luaXRUaW1lZnJhbWVzUmVuZGVyZXIoKX1fb25UaW1lRnJhbWVJbnZhbGlkYXRlZCgpe3RoaXMuX2FjdGl2ZVJhbmdlPXZvaWQgMCx0aGlzLl90aW1lZnJhbWVWaWV3Py51cGRhdGUoe2FjdGl2ZVJhbmdlOnZvaWQgMH0pfV9zaG93TG9hZGluZygpe2lmKHRoaXMuX2lzTG9hZGluZylyZXR1cm47dGhpcy5oaWRlTWVzc2FnZSgpO2NvbnN0IHQ9dGhpcy5fb3B0aW9ucy5jaGFydE9wdGlvbnMubG9hZGluZzt0LnNwaW5uZXIudmlzaWJsZSYmKG51bGw9PT10aGlzLl9zcGlubmVyJiYodGhpcy5fc3Bpbm5lcj1uZXcgdi5TcGlubmVyKCJtaW5pIikuc2V0U3R5bGUoe2NvbG9yOnQuc3Bpbm5lci5jb2xvcix3aWR0aDp0LnNwaW5uZXIud2lkdGgudG9TdHJpbmcoKSx6SW5kZXg6IjEwIn0pKSx0aGlzLl9zcGlubmVyLnNwaW4odGhpcy5faW5uZXJDb250YWluZXIpKSx0LmZhZGUudmlzaWJsZSYmdGhpcy5faW5uZXJDb250YWluZXIuY2xhc3NMaXN0LmFkZCh3LmZhZGUpLHRoaXMuX2lzTG9hZGluZz0hMH1faGlkZUxvYWRpbmcoKXt0aGlzLl9pc0xvYWRpbmcmJih0aGlzLl9zcGlubmVyJiZ0aGlzLl9zcGlubmVyLnN0b3AoKSx0aGlzLl9pc0xvYWRpbmc9ITEpfV9yZXF1ZXN0RGF0YU9uVGltZWZyYW1lQ2hhbmdlKCl7dGhpcy5fb3B0aW9ucy5jaGFydE9wdGlvbnMubG9hZGluZy5jbGVhckRhdGFPblRpbWVmcmFtZUNoYW5nZSYmKHRoaXMuX3N0dWR5UGxvdHMuZm9yRWFjaCgodD0+dC5jbGVhckRhdGEoKSkpLHRoaXMuX3N0dWR5UGxvdHMuZm9yRWFjaCgodD0+dC5kZWxldGVWaWV3KCkpKSx0aGlzLm1haW5QbG90KCkuY2xlYXJEYXRhKCksdGhpcy5tYWluUGxvdCgpLmRlbGV0ZVZpZXcoKSksdGhpcy5jb25uZWN0ZWQoKT90aGlzLl9yZXF1ZXN0RGF0YSgpOnRoaXMuY29ubmVjdCgpfV91cGRhdGVTdGF0dXMoKXtjb25zdCB0PVt0aGlzLl9tYWluUGxvdC5zdGF0dXMoKS52YWx1ZSgpLC4uLnRoaXMuX3N0dWR5UGxvdHMubWFwKCh0PT50LnN0YXR1cygpLnZhbHVlKCkpKV0sZT10LmV2ZXJ5KCh0PT4wIT09dCkpPzM9PT10WzBdPyJyZWFkeSI6ImVycm9yIjoibG9hZGluZyI7dGhpcy5fc3RhdHVzLnNldFZhbHVlKGUpfV90aW1lU2NhbGVTaXplQ2hhbmdlZEhhbmRsZXIodCxlKXt0aGlzLl90aW1lU2NhbGVTaXplQ2hhbmdlZC5maXJlKHQsZSl9fX0sMTQ2MDU4KHQsZSxpKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gcyh0KXtyZXR1cm4gdC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiZGl2IikuaXRlbSgwKT8uZ2V0RWxlbWVudHNCeVRhZ05hbWUoInRhYmxlIikuaXRlbSgwKT8uZ2V0RWxlbWVudHNCeVRhZ05hbWUoInRyIikuaXRlbSgwKT8uZ2V0RWxlbWVudHNCeVRhZ05hbWUoInRkIikuaXRlbSgxKT8uZ2V0RWxlbWVudHNCeVRhZ05hbWUoImRpdiIpLml0ZW0oMCk/P251bGx9aS5kKGUse2dldENoYXJ0TGF5b3V0Q29udGFpbmVyOigpPT5zfSl9LDU4NjI0Nyh0LGUsaSl7InVzZSBzdHJpY3QiO2kuZChlLHtNaW5pQ2hhcnRQbG90OigpPT5jfSk7dmFyIHMsYT1pKDc0MDE2Mik7IWZ1bmN0aW9uKHQpe3QuRGVmYXVsdD0iZGVmYXVsdCIsdC5GdWxsU2luZ2xlU2Vzc2lvbj0iZnVsbF9zaW5nbGVfc2Vzc2lvbiJ9KHN8fChzPXt9KSk7dmFyIG49aSg5MzYzMjYpLHI9aSg4NTcxNTEpLG89aSgxMjE0NzkpLGg9aSg4MzcyMDMpLGw9aSgyNDIxNzEpO2NsYXNzIGMgZXh0ZW5kcyBsLk1pbmlDaGFydFBsb3RCYXNle2NvbnN0cnVjdG9yKHQsZSxpLHMsbixyKXtzdXBlcih0LGUsaSxuKSx0aGlzLl9zZXJpZXNEYXRhU291cmNlPW51bGwsdGhpcy5fY2FjaGVkRGF0YT1udWxsLHRoaXMuX3N0dWR5UGxvdHM9cyx0aGlzLl9vcHRpb25zPW4sdGhpcy5faG9yek1hcmdpbnM9KDAsYS5kZWZhdWx0KSh7fSxsLnNlcmllc0hvcnpNYXJnaW5zRGVmYXVsdHMsZS5ob3J6TWFyZ2lucyksciYmdGhpcy5fbG9hZENhY2hlKHIpfWRlc3Ryb3koKXt0aGlzLl9zZXJpZXNEYXRhU291cmNlPy5kZXN0cm95KCksc3VwZXIuZGVzdHJveSgpfXVwZGF0ZUhvcnpNYXJnaW5zKHQpe3RoaXMuX2hvcnpNYXJnaW5zPSgwLGEuZGVmYXVsdCkodGhpcy5faG9yek1hcmdpbnMsdCksdGhpcy5fbWluaUNoYXJ0LmZpdENvbnRlbnQoKX1yZWxvYWRDYWNoZSh0KXt0aGlzLl9jYWNoZT10LHQ/dGhpcy5fbG9hZENhY2hlKHQpOih0aGlzLl9taW5CYXJJbmRleD1udWxsLHRoaXMuX21heEJhckluZGV4PW51bGwsCnRoaXMuX2NhY2hlZERhdGE9bnVsbCx0aGlzLl9vbkRhdGEoKS50aGVuKCgoKT0+e3RoaXMuZml0Q29udGVudCgpfSkpKX1yZXF1ZXN0RGF0YSgpe2NvbnN0IHQ9dGhpcy5fZ2V0U2VyaWVzRGF0YVNvdXJjZSgpO3RoaXMuX3N0YXR1cy5zZXRWYWx1ZSgwKSx0aGlzLl9ub0RhdGEuc2V0VmFsdWUobnVsbCksdC5tb2RpZnlTZXJpZXModGhpcy5leHRlbmRlZFN5bWJvbCgpLCgwLG8uZ2V0U2VydmVySW50ZXJ2YWwpKHRoaXMucmVzb2x1dGlvbigpKSx0aGlzLl9taW5pQ2hhcnQudGltZWZyYW1lKCkudmFsdWUoKSksdC5pc1N0YXJ0ZWQoKXx8dC5zdGFydCgpfWNsZWFyU291cmNlRGF0YSgpe3RoaXMuX3Nlcmllc0RhdGFTb3VyY2U/LmNsZWFyRGF0YSgpLHRoaXMuX3N0dWR5UGxvdHMoKS5mb3JFYWNoKCh0PT50LmNsZWFyU291cmNlRGF0YSgpKSl9bW92ZVNvdXJjZURhdGEodCl7dGhpcy5fc2VyaWVzRGF0YVNvdXJjZT8ubW92ZURhdGEodCl9b25UaWNrbWFya3NBZGRlZCh0LGUpe2NvbnN0IGk9dGhpcy5tYXhCYXJJbmRleCgpO3RoaXMuX2lzTGFzdFNlc3Npb25JbnRlcnZhbC52YWx1ZSgpJiZudWxsIT09aSYmaT49dCYmaTw9ZSYmKHRoaXMudXBkYXRlRGF0YSghMSwhMCksdGhpcy5maXRDb250ZW50KCkpfWRpc2Nvbm5lY3QoKXt0aGlzLl9zZXJpZXNEYXRhU291cmNlPy5zdG9wKCl9aXNDb25uZWN0ZWQoKXtyZXR1cm4gQm9vbGVhbih0aGlzLl9zZXJpZXNEYXRhU291cmNlPy5pc1N0YXJ0ZWQoKSl9Y2xlYXJEYXRhKCl7aWYoc3VwZXIuY2xlYXJEYXRhKCksdGhpcy5fbWluQmFySW5kZXg9bnVsbCx0aGlzLl9tYXhCYXJJbmRleD1udWxsLG51bGwhPT10aGlzLl9zZXJpZXNEYXRhU291cmNlJiYodGhpcy5fc2VyaWVzRGF0YVNvdXJjZS5zdG9wKCksdGhpcy5jbGVhclNvdXJjZURhdGEoKSksdGhpcy5fY2FjaGUpe2NvbnN0e21pbkJhckluZGV4OnQsbWF4QmFySW5kZXg6ZSxzeW1ib2xJbmZvOml9PXRoaXMuX2NhY2hlO3RoaXMuX21pbkJhckluZGV4PXQsdGhpcy5fbWF4QmFySW5kZXg9ZSxpJiYodGhpcy5fc3ltYm9sSW5mbz1pLHRoaXMuX3N5bWJvbEluZm9XVi5zZXRWYWx1ZShpKSx0aGlzLl9pbml0QmFyQnVpbGRlcihpKS50aGVuKCgoKT0+e3RoaXMuX2lzRGVzdHJveWVkLnZhbHVlKCl8fHRoaXMuX29uRGF0YSgpLnRoZW4oKCgpPT57dGhpcy5maXRDb250ZW50KCl9KSl9KSkpfX1zZXJpZXNEYXRhU291cmNlKCl7cmV0dXJuIHRoaXMuX2dldFNlcmllc0RhdGFTb3VyY2UoKX1maXJzdEJhcigpe3JldHVybigwLGwuaXNUaW1lUG9pbnRJbmRleCkodGhpcy5fbWluQmFySW5kZXgpP3RoaXMuX2JhcnMoKS5zZWFyY2godGhpcy5fbWluQmFySW5kZXgpOnRoaXMuX2JhcnMoKS5maXJzdCgpfWxhc3RCYXIoKXtyZXR1cm4oMCxsLmlzVGltZVBvaW50SW5kZXgpKHRoaXMuX21heEJhckluZGV4KT90aGlzLl9iYXJzKCkuc2VhcmNoKHRoaXMuX21heEJhckluZGV4LG4uUGxvdFJvd1NlYXJjaE1vZGUuTmVhcmVzdExlZnQpOnRoaXMuX2JhcnMoKS5sYXN0KCl9Y2FjaGVEYXRhKCl7Y29uc3QgdD10aGlzLl9zZXJpZXNEYXRhU291cmNlPy5kYXRhKCk/LmNsb25lKCksZT10aGlzLl9zeW1ib2xJbmZvLGk9dGhpcy5fbWluQmFySW5kZXgscz10aGlzLl9tYXhCYXJJbmRleDtyZXR1cm4gdCYmbnVsbCE9PWUmJm51bGwhPT1pJiZudWxsIT09cz97ZGF0YTp0LHN5bWJvbEluZm86ZSxtaW5CYXJJbmRleDppLG1heEJhckluZGV4OnN9Om51bGx9Zml0Q29udGVudCgpe2lmKG51bGw9PT10aGlzLl9kYXRhTGVuZ3RoSW5mb3x8MD09PXRoaXMuX2RhdGFMZW5ndGhJbmZvLmhpc3RvcnkpcmV0dXJuO2NvbnN0e2hpc3Rvcnk6dCxyZWFsdGltZTplLHdoaXRlc3BhY2VzOmksbGFzdEJhclRpbWU6cyxmaXhMZWZ0RWRnZVVudGlsOmE9MH09dGhpcy5fZGF0YUxlbmd0aEluZm8sbj10aGlzLl9taW5pQ2hhcnQud2lkZ2V0KCkscj1uLnBhbmVTaXplKCkud2lkdGg7aWYoMD09PXIpcmV0dXJuO2NvbnN0e2xlZnRMb2dpY2FsOm8scmlnaHRMb2dpY2FsOmgsbGVmdFB4OmwscmlnaHRQeDpjfT10aGlzLl9ob3J6TWFyZ2lucztsZXQgZD10aGlzLl9maXRDb250ZW50TGVmdEluZGV4KCktby0obnVsbD09PXN8fGE+PXM/MDplKSxtPU1hdGgubWF4KGQsTWF0aC5tYXgoMCx0LTEpK2graStlKTtpZigwIT09bCl7ZC09bC8oKHItbCkvKG0tZCsxKSl9aWYoMCE9PWMpe20rPWMvKChyLWMpLyhtLWQrMSkpfWlmKG09TWF0aC5tYXgoZCxtKSxtLWQ8MSl7Y29uc3QgdD0oMS0obS1kKSkvMjtkLT10LG0rPXR9bi50aW1lU2NhbGUoKS5zZXRWaXNpYmxlTG9naWNhbFJhbmdlKHtmcm9tOmQsdG86bX0pLG4udGltZVNjYWxlKCkuYXBwbHlPcHRpb25zKHtsb2NrVmlzaWJsZVRpbWVSYW5nZU9uUmVzaXplOiEwfSl9X2ZpdENvbnRlbnRMZWZ0SW5kZXgoKXtyZXR1cm4gMH1fdXBkYXRlU2VyaWVzT3B0aW9ucyh0KXtzdXBlci5fdXBkYXRlU2VyaWVzT3B0aW9ucyh0KSx0LmhvcnpNYXJnaW5zJiZ0aGlzLnVwZGF0ZUhvcnpNYXJnaW5zKHQuaG9yek1hcmdpbnMpfV9pc01haW5QbG90KCl7cmV0dXJuITB9X2RhdGFVcGRhdGVkKHQsZSxpKXtpZihzdXBlci5fZGF0YVVwZGF0ZWQodCxlLGkpLCF0aGlzLl9pc0xhc3RTZXNzaW9uSW50ZXJ2YWwudmFsdWUoKXx8IXRoaXMuX21pbmlDaGFydC5zdXBwb3J0UmVhbHRpbWVVcGRhdGVzKCl8fCFpKXJldHVybjtjb25zdCBzPWkubGFzdEJhclNlc3Npb247MCE9PXMmJjEhPT1zJiYzIT09c3x8MiE9PWUubGFzdEJhclNlc3Npb258fFByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCgpPT57dGhpcy5fbWluaUNoYXJ0LnNldFRpbWVmcmFtZSh0aGlzLl9taW5pQ2hhcnQudGltZWZyYW1lKCkudmFsdWUoKSwhMSwhMCl9KSl9X29uQ2hhcnRTdHlsZUNoYW5nZWQoKXtzdXBlci5fb25DaGFydFN0eWxlQ2hhbmdlZCgpLHRoaXMuX3N0dWR5UGxvdHMoKS5mb3JFYWNoKCh0PT50LnVwZGF0ZVNlcmllc09wdGlvbnMoe2NoYXJ0VHlwZTp0aGlzLl9jdXJyZW50U2VyaWVzT3B0aW9ucy5jaGFydFR5cGV9KSkpfV9iZWZvcmVEYXRhUmVhZHkoKXtzdXBlci5fYmVmb3JlRGF0YVJlYWR5KCksCnRoaXMuX3N0dWR5UGxvdHMoKS5mb3JFYWNoKCh0PT50LmRlbGV0ZVZpZXcoKSkpfV9nZXRTZXJpZXNEYXRhU291cmNlKCl7aWYobnVsbD09PXRoaXMuX3Nlcmllc0RhdGFTb3VyY2Upe2NvbnN0IHQ9dGhpcy5fY3VycmVudFNlcmllc09wdGlvbnMuaW5pdGlhbFJlcXVlc3RPcHRpb25zLGU9dGhpcy5fc2VyaWVzRGF0YVNvdXJjZT1uZXcgaC5TZXJpZXNEYXRhU291cmNlKHRoaXMuY2hhcnRTZXNzaW9uKCksInMiLHQpLGk9ZS5kYXRhRXZlbnRzKCk7aS5zeW1ib2xSZXNvbHZlZCgpLnN1YnNjcmliZSh0aGlzLHRoaXMuX29uU3ltYm9sUmVzb2x2ZWQpLGkuc3ltYm9sTm90UGVybWl0dGVkKCkuc3Vic2NyaWJlKHRoaXMsdGhpcy5fb25TeW1ib2xOb3RQZXJtaXR0ZWQpLGkuc3ltYm9sR3JvdXBOb3RQZXJtaXR0ZWQoKS5zdWJzY3JpYmUodGhpcyx0aGlzLl9vblN5bWJvbEdyb3VwTm90UGVybWl0dGVkKSxpLmludHJhZGF5U3ByZWFkTm90UGVybWl0dGVkKCkuc3Vic2NyaWJlKHRoaXMsdGhpcy5fb25JbnRyYWRheVNwcmVhZE5vdFBlcm1pdHRlZCksaS5zeW1ib2xJbnZhbGlkKCkuc3Vic2NyaWJlKHRoaXMsdGhpcy5fb25TeW1ib2xJbnZhbGlkKSxpLnN5bWJvbEVycm9yKCkuc3Vic2NyaWJlKHRoaXMsdGhpcy5fb25TeW1ib2xFcnJvciksaS5pbnRyYWRheUV4Y2hhbmdlTm90UGVybWl0dGVkKCkuc3Vic2NyaWJlKHRoaXMsdGhpcy5fb25SZXNvbHV0aW9uT3JFeGNoYW5nZU5vdFBlcm1pdHRlZEVycm9yKSxpLmN1c3RvbUludGVydmFsTm90UGVybWl0dGVkKCkuc3Vic2NyaWJlKHRoaXMsdGhpcy5fb25SZXNvbHV0aW9uT3JFeGNoYW5nZU5vdFBlcm1pdHRlZEVycm9yKSxpLmNvbXBsZXRlZCgpLnN1YnNjcmliZSh0aGlzLHRoaXMuX29uRGF0YUNvbXBsZXRlZCksaS5zZXJpZXNFcnJvcigpLnN1YnNjcmliZSh0aGlzLHRoaXMuX29uRGF0YUVycm9yKSxpLnNlcmllc1RpbWVGcmFtZSgpLnN1YnNjcmliZSh0aGlzLHRoaXMuX29uVGltZUZyYW1lKSxpLmRhdGFVcGRhdGVkKCkuc3Vic2NyaWJlKHRoaXMsdGhpcy5fb25EYXRhSW50ZXJuYWwpLGkuY3JlYXRlZCgpLnN1YnNjcmliZShudWxsLCgoKT0+cGVyZm9ybWFuY2UubWFyaygiUkZEIix7ZGV0YWlsOiJSZXF1ZXN0IGZpcnN0IGRhdGEifSkpLCEwKSxpLmNyZWF0ZWQoKS5zdWJzY3JpYmUobnVsbCwoKCk9PmUuc2V0RnV0dXJlVGlja21hcmtzTW9kZShzLkZ1bGxTaW5nbGVTZXNzaW9uKSkpLGkuZGF0YVVwZGF0ZWQoKS5zdWJzY3JpYmUobnVsbCwoKCk9PntwZXJmb3JtYW5jZS5tYXJrKCJGRFIiLHtkZXRhaWw6IkZpcnN0IGRhdGEgcmVzcG9uc2UifSkscGVyZm9ybWFuY2UubWVhc3VyZSgiUmVzcG9uc2UgaWRsZSIsIlJGRCIsIkZEUiIpfSksITApfXJldHVybiB0aGlzLl9zZXJpZXNEYXRhU291cmNlfV9iYXJzKCl7cmV0dXJuIHRoaXMuX2NhY2hlZERhdGE/dGhpcy5fY2FjaGVkRGF0YS5zZXJpZXNEYXRhLmJhcnMoKTp0aGlzLl9zZXJpZXNEYXRhU291cmNlPy5kYXRhKCkuYmFycygpPz9uZXcgci5QbG90TGlzdH1fb25UaW1lRnJhbWUodCxlKXt0aGlzLl9jYWNoZWREYXRhfHwodGhpcy5fbWluQmFySW5kZXg9dCx0aGlzLl9tYXhCYXJJbmRleD1lKSx0aGlzLnVwZGF0ZURhdGEoITEpLHRoaXMuX3N0dWR5UGxvdHMoKS5mb3JFYWNoKCh0PT50LnVwZGF0ZURhdGEoITEsITApKSl9X29uRGF0YUNvbXBsZXRlZCgpe3RoaXMuX2NhY2hlZERhdGEmJih0aGlzLl9jYWNoZWREYXRhPW51bGwpLHRoaXMudXBkYXRlRGF0YSghMSwhMCksc3VwZXIuX29uRGF0YUNvbXBsZXRlZCgpLHRoaXMuZml0Q29udGVudCgpfV9vbkRhdGFJbnRlcm5hbCh0LGUsaSl7dGhpcy5fb25EYXRhKGU/dm9pZCAwOmk/LmluZGV4KX1hc3luYyBfbG9hZENhY2hlKHQpe2NvbnN0e2RhdGE6ZSxzeW1ib2xJbmZvOmksbWluQmFySW5kZXg6cyxtYXhCYXJJbmRleDphfT10O3RoaXMuX21pbkJhckluZGV4PXMsdGhpcy5fbWF4QmFySW5kZXg9YSx0aGlzLl9jYWNoZWREYXRhPXtzeW1ib2w6dGhpcy5leHRlbmRlZFN5bWJvbCgpLHJlc29sdXRpb246dGhpcy5yZXNvbHV0aW9uKCksdGltZUZyYW1lOnRoaXMuX21pbmlDaGFydC50aW1lZnJhbWUoKS52YWx1ZSgpLHNlcmllc0RhdGE6ZX0sdGhpcy5fc3ltYm9sSW5mbz1pLHRoaXMuX3N5bWJvbEluZm9XVi5zZXRWYWx1ZShpKTtjb25zdCBuPWF3YWl0IHRoaXMuX2luaXRCYXJCdWlsZGVyKGkpOyF0aGlzLl9pc0Rlc3Ryb3llZC52YWx1ZSgpJiZ0aGlzLl9zeW1ib2xJbmZvJiYodGhpcy5fc3ltYm9sSW5mbyE9PWkmJm4udXBkYXRlKHRoaXMuX3N5bWJvbEluZm8pLGF3YWl0IHRoaXMuX29uRGF0YSgpLHRoaXMuX3N0YXR1cy5zZXRWYWx1ZSgzKSx0aGlzLmZpdENvbnRlbnQoKSl9fX0sNjk1OTQ2KHQsZSxpKXsidXNlIHN0cmljdCI7aS5kKGUse1ByZXR0eUhpc3RvZ3JhbVNlcmllczooKT0+bn0pO2NvbnN0IHM9ey4uLmkoNjc4MzEyKS5jdXN0b21TZXJpZXNEZWZhdWx0T3B0aW9ucyxjb2xvcjoiI0Q2Mzg2NCIsd2lkdGhQZXJjZW50OjUwLHJhZGl1czo0fTtjbGFzcyBhe2NvbnN0cnVjdG9yKCl7dGhpcy5fZGF0YT1udWxsLHRoaXMuX29wdGlvbnM9bnVsbH1kcmF3KHQsZSl7dC51c2VCaXRtYXBDb29yZGluYXRlU3BhY2UoKHQ9PnRoaXMuX2RyYXdJbXBsKHQsZSkpKX11cGRhdGUodCxlKXt0aGlzLl9kYXRhPXQsdGhpcy5fb3B0aW9ucz1lfV9kcmF3SW1wbCh0LGUpe2lmKG51bGw9PT10aGlzLl9kYXRhfHwwPT09dGhpcy5fZGF0YS5iYXJzLmxlbmd0aHx8bnVsbD09PXRoaXMuX2RhdGEudmlzaWJsZVJhbmdlfHxudWxsPT09dGhpcy5fb3B0aW9ucylyZXR1cm47Y29uc3QgaT10aGlzLl9vcHRpb25zLHM9dGhpcy5fZGF0YS5iYXJzLm1hcCgocz0+KHt4OnMueCp0Lmhvcml6b250YWxQaXhlbFJhdGlvLHZhbHVlOmUocy5vcmlnaW5hbERhdGEudmFsdWUpPz9OYU4sY29sb3I6cy5iYXJDb2xvcj8/aS5jb2xvcn0pKSksYT1lKDApPz8wLG49dC5jb250ZXh0O2xldCByPW51bGw7bi5iZWdpblBhdGgoKQo7Y29uc3Qgbz1NYXRoLm1heCgxLE1hdGgucm91bmQoLjAxKmkud2lkdGhQZXJjZW50KnRoaXMuX2RhdGEuYmFyU3BhY2luZyp0Lmhvcml6b250YWxQaXhlbFJhdGlvKSksaD1NYXRoLmZsb29yKGkucmFkaXVzKnQuaG9yaXpvbnRhbFBpeGVsUmF0aW8pO3Muc2xpY2UodGhpcy5fZGF0YS52aXNpYmxlUmFuZ2UuZnJvbSx0aGlzLl9kYXRhLnZpc2libGVSYW5nZS50bysxKS5mb3JFYWNoKChlPT57Y29uc3QgaT1lLmNvbG9yO251bGwhPT1yJiZyIT09aSYmKG4uZmlsbCgpLG4uYmVnaW5QYXRoKCkpLG4uZmlsbFN0eWxlPWk7Y29uc3Qgcz1mdW5jdGlvbih0LGUsaSl7Y29uc3Qgcz1NYXRoLnJvdW5kKGkqdCksYT1NYXRoLnJvdW5kKGkqZSk7cmV0dXJue3Bvc2l0aW9uOk1hdGgubWluKHMsYSksbGVuZ3RoOk1hdGguYWJzKGEtcykrMX19KGEsZS52YWx1ZSx0LnZlcnRpY2FsUGl4ZWxSYXRpbyksbD1NYXRoLmZsb29yKE1hdGgubWluKGgsby8yLE1hdGguYWJzKHMubGVuZ3RoKSkpLGM9TWF0aC5yb3VuZChlLngtby8yKTtuLnJvdW5kUmVjdChjLHMucG9zaXRpb24sbyxzLmxlbmd0aCxlLnZhbHVlPGE/W2wsbCwwLDBdOlswLDAsbCxsXSkscj1pfSkpLG4uZmlsbCgpfX1jbGFzcyBue2NvbnN0cnVjdG9yKCl7dGhpcy5fcmVuZGVyZXI9bmV3IGF9cHJpY2VWYWx1ZUJ1aWxkZXIodCl7cmV0dXJuW3QudmFsdWVdfWlzV2hpdGVzcGFjZSh0KXtyZXR1cm4gdm9pZCAwPT09dC52YWx1ZX1yZW5kZXJlcigpe3JldHVybiB0aGlzLl9yZW5kZXJlcn11cGRhdGUodCxlKXt0aGlzLl9yZW5kZXJlci51cGRhdGUodCxlKX1kZWZhdWx0T3B0aW9ucygpe3JldHVybiBzfX19fV0pOw=="}},"time_used":4,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":4,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/31837.d368caa64d494a4087cc.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:12.943Z","timestamp":1785148032943,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/31837.d368caa64d494a4087cc.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:12 GMT\r\ncontent-type: text/css; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding, Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\netag: W/\"69f98b73-5656\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Tue, 05 May 2026 06:17:23 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.51\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 05/05/2026 10:16:40\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: f0fd32449ad173e76a335f885a76ea1c\r\ncdn-cache: HIT\r\ncontent-encoding: br\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":22102,"size_decoded":4305,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with very long lines (22102), with no line terminators","md5":"723a7e925325b3ef2a66b0c084a39bdd","sha1":"6a1663dea4b2b18ff687ee9767a12412fb13768d","sha256":"8eb306a311580ce73c3d612ed0ae486994b351a828db7b8fb04c56c89824ba82","sha512":"c0282c69a16641bab7619996a69102f8dc69001ea8a81a80217b27e27aedc0c796accdbf3990fcb955facdc82faa2cb8b455065be32e8d0c3ca62c73e94d5c22","ssdeep":"192:9n/er85dIvw/pxhIJmhxiDmCtskjYzbgwH:1mQz3vgwH","tlshash":"65a236ebed91d7aeeb075f39035a9d2877519dc28a103f5ab221d0c106e2af5607f603","first_seen":"2026-03-24T10:46:27.371959Z","last_seen":"2026-07-27T12:53:06.196692Z","times_seen":1101,"resource_available":false,"data":"W2RhdGEtdGhlbWU9bGlnaHRdey0tXzAteTJaWDojZWNlY2VjOy0tXzEteTJaWDp2YXIoLS1jb2xvci1jb2xkLWdyYXktMTUwKTstLV8yLXkyWlg6dmFyKC0tY29sb3Itd2hpdGUpOy0tXzMteTJaWDp2YXIoLS1jb2xvci1yaXBlLXJlZC00MDApOy0tXzQteTJaWDp2YXIoLS1jb2xvci1yaXBlLXJlZC02MDApOy0tXzUteTJaWDp2YXIoLS1jb2xvci1yaXBlLXJlZC03MDApOy0tXzYteTJaWDp2YXIoLS1jb2xvci1jb2xkLWdyYXktOTAwKTstLV83LXkyWlg6dmFyKC0tY29sb3ItY29sZC1ncmF5LTgwMCk7LS1fOC15MlpYOnZhcigtLWNvbG9yLWNvbGQtZ3JheS03MDApOy0tXzkteTJaWDp2YXIoLS1jb2xvci13aGl0ZSk7LS1fMTAteTJaWDp2YXIoLS1jb2xvci1jb2xkLWdyYXktOTAwKTstLV8xMS15MlpYOnZhcigtLWNvbG9yLXdoaXRlKTstLV8xMi15MlpYOnZhcigtLWNvbG9yLXdoaXRlKX1bZGF0YS10aGVtZT1kYXJrXXstLV8wLXkyWlg6dmFyKC0tY29sb3ItY29sZC1ncmF5LTg1MCk7LS1fMS15MlpYOnZhcigtLWNvbG9yLWNvbGQtZ3JheS03NTApOy0tXzIteTJaWDp2YXIoLS1jb2xvci13aGl0ZSk7LS1fMy15MlpYOnZhcigtLWNvbG9yLXJpcGUtcmVkLTcwMCk7LS1fNC15MlpYOnZhcigtLWNvbG9yLXJpcGUtcmVkLTYwMCk7LS1fNS15MlpYOnZhcigtLWNvbG9yLXJpcGUtcmVkLTUwMCk7LS1fNi15MlpYOnZhcigtLWNvbG9yLXdoaXRlKTstLV83LXkyWlg6dmFyKC0tY29sb3ItY29sZC1ncmF5LTEwMCk7LS1fOC15MlpYOnZhcigtLWNvbG9yLWNvbGQtZ3JheS0yMDApOy0tXzkteTJaWDp2YXIoLS1jb2xvci1jb2xkLWdyYXktOTAwKTstLV8xMC15MlpYOnZhcigtLWNvbG9yLXdoaXRlKTstLV8xMS15MlpYOnZhcigtLWNvbG9yLWNvbGQtZ3JheS05MDApOy0tXzEyLXkyWlg6dmFyKC0tY29sb3ItY29sZC1ncmF5LTkwMCl9LnR2LWJ1dHRvbntjb2xvcjp2YXIoLS1jb2xvci1jb2xkLWdyYXktNTAwKTtkaXNwbGF5OmlubGluZS1ibG9jaztmb250LXNpemU6MTRweDtsaW5lLWhlaWdodDozMnB4O21hcmdpbjowO21pbi13aWR0aDo0MHB4O3BhZGRpbmc6MXB4IDIycHg7cG9zaXRpb246cmVsYXRpdmU7dGV4dC1hbGlnbjpjZW50ZXI7dGV4dC1kZWNvcmF0aW9uOm5vbmU7LXdlYmtpdC11c2VyLXNlbGVjdDpub25lO3VzZXItc2VsZWN0Om5vbmU7dmVydGljYWwtYWxpZ246bWlkZGxlO3doaXRlLXNwYWNlOm5vd3JhcDtmaWxsOmN1cnJlbnRDb2xvcjtiYWNrZ3JvdW5kLWNvbG9yOmluaXRpYWw7Ym9yZGVyOm5vbmU7Ym9yZGVyLXJhZGl1czo0cHg7Ym94LXNpemluZzpib3JkZXItYm94O2N1cnNvcjpwb2ludGVyO291dGxpbmU6MDtvdmVyZmxvdzpoaWRkZW47LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOnRyYW5zcGFyZW50O3RyYW5zaXRpb246YmFja2dyb3VuZC1jb2xvciAuMzVzIGVhc2UsYm9yZGVyLWNvbG9yIC4zNXMgZWFzZSxjb2xvciAuMzVzIGVhc2V9LnR2LWJ1dHRvbi50di1idXR0b24tLWRhbmdlcl9naG9zdCwudHYtYnV0dG9uLnR2LWJ1dHRvbi0tZGVmYXVsdCwudHYtYnV0dG9uLnR2LWJ1dHRvbi0tZGVmYXVsdF9naG9zdCwudHYtYnV0dG9uLnR2LWJ1dHRvbi0tcHJpbWFyeV9naG9zdCwudHYtYnV0dG9uLnR2LWJ1dHRvbi0tc2Vjb25kYXJ5X2dob3N0LC50di1idXR0b24udHYtYnV0dG9uLS1zdGF0ZSwudHYtYnV0dG9uLnR2LWJ1dHRvbi0tc3VjY2Vzc19naG9zdCwudHYtYnV0dG9uLnR2LWJ1dHRvbi0td2FybmluZ19naG9zdHtwYWRkaW5nOjAgMjFweH0udHYtYnV0dG9uLmktYWN0aXZlLC50di1idXR0b24uaS1ob3ZlciwudHYtYnV0dG9uOmFjdGl2ZXt0cmFuc2l0aW9uLWR1cmF0aW9uOjYwbXN9QG1lZGlhIChhbnktaG92ZXI6aG92ZXIpey50di1idXR0b246aG92ZXJ7dHJhbnNpdGlvbi1kdXJhdGlvbjo2MG1zfX0udHYtYnV0dG9uIHN2Z3t2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9LnR2LWJ1dHRvbi0tYmxvY2t7ZGlzcGxheTpibG9jazt0ZXh0LWFsaWduOmNlbnRlcjt3aWR0aDoxMDAlfS50di1idXR0b24rLnR2LWJ1dHRvbnttYXJnaW4taW5saW5lLXN0YXJ0OjE1cHh9LnR2LWJ1dHRvbi50di1idXR0b24tLW5vLWxlZnQtbWFyZ2lue21hcmdpbi1pbmxpbmUtc3RhcnQ6MH0udHYtYnV0dG9uX190ZXh0e2Rpc3BsYXk6aW5saW5lLWJsb2NrO3Bvc2l0aW9uOnJlbGF0aXZlfS50di1idXR0b25fX3RleHQtLWZ1bGwtaGVpZ2h0e2FsaWduLWl0ZW1zOmNlbnRlcjtkaXNwbGF5OmZsZXg7aGVpZ2h0OjEwMCU7anVzdGlmeS1jb250ZW50OmNlbnRlcjt3aGl0ZS1zcGFjZTpub3JtYWw7d2lkdGg6MTAwJTt3b3JkLXdyYXA6YnJlYWstd29yZDtsaW5lLWhlaWdodDoxLjJlbTttYXJnaW46MTFweCA1cHh9LnR2LWJ1dHRvbi0tZGVmYXVsdCwudHYtYnV0dG9uLS1kZWZhdWx0X2dob3N0LGEudHYtYnV0dG9uLS1kZWZhdWx0OnZpc2l0ZWR7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1ib2R5LWJnKTtib3JkZXItY29sb3I6dmFyKC0tY29sb3ItYm9keS1iZyk7Y29sb3I6I2ZmZn0udHYtYnV0dG9uLS1kZWZhdWx0X2dob3N0e2NvbG9yOnZhcigtLWNvbG9yLWJvZHktYmcpfS50di1idXR0b24tLWRlZmF1bHRfZ2hvc3QuaS1jaGVja2Vke2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItYm9keS1iZyk7Ym9yZGVyLWNvbG9yOnZhcigtLWNvbG9yLWJvZHktYmcpO2NvbG9yOiNmZmZ9LnR2LWJ1dHRvbi0tZGVmYXVsdC5pLWFjdGl2ZSwudHYtYnV0dG9uLS1kZWZhdWx0OmFjdGl2ZSwudHYtYnV0dG9uLS1kZWZhdWx0X2dob3N0LmktYWN0aXZlLC50di1idXR0b24tLWRlZmF1bHRfZ2hvc3Q6YWN0aXZle2JhY2tncm91bmQtY29sb3I6dmFyKC0tXzAteTJaWCk7Ym9yZGVyLWNvbG9yOnZhcigtLV8wLXkyWlgpO2NvbG9yOiNmZmY7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMXB4KX0udHYtYnV0dG9uLS1kZWZhdWx0LmktaG92ZXIsLnR2LWJ1dHRvbi0tZGVmYXVsdF9naG9zdC5pLWhvdmVye2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItYnV0dG9uLWhvdmVyLWJnKTtib3JkZXItY29sb3I6dmFyKC0tY29sb3ItYnV0dG9uLWhvdmVyLWJnKTtjb2xvcjojZmZmfUBtZWRpYSAoYW55LWhvdmVyOmhvdmVyKXsudHYtYnV0dG9uLS1kZWZhdWx0OmhvdmVyLC50di1idXR0b24tLWRlZmF1bHRfZ2hvc3Q6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1idXR0b24taG92ZXItYmcpO2JvcmRlci1jb2xvcjp2YXIoLS1jb2xvci1idXR0b24taG92ZXItYmcpO2NvbG9yOiNmZmZ9fS50di1idXR0b24tLWRlZmF1bHRfZ2hvc3QgLnR2LWJ1dHRvbl9fbG9hZGVyLWl0ZW17YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1idXR0b24taG92ZXItYmcpfS50di1idXR0b24tLWRlZmF1bHRfZ2hvc3QuaS1ob3ZlciAudHYtYnV0dG9uX19sb2FkZXItaXRlbXtiYWNrZ3JvdW5kLWNvbG9yOiNmZmZ9QG1lZGlhIChhbnktaG92ZXI6aG92ZXIpey50di1idXR0b24tLWRlZmF1bHRfZ2hvc3Q6aG92ZXIgLnR2LWJ1dHRvbl9fbG9hZGVyLWl0ZW17YmFja2dyb3VuZC1jb2xvcjojZmZmfX0udHYtYnV0dG9uLS1kZWZhdWx0LC50di1idXR0b24tLWRlZmF1bHQuaS1jaGVja2VkLC50di1idXR0b24tLWRlZmF1bHRfZ2hvc3QsLnR2LWJ1dHRvbi0tZGVmYXVsdF9naG9zdC5pLWNoZWNrZWR7Ym9yZGVyOjFweCBzb2xpZDtib3JkZXItY29sb3I6dmFyKC0tY29sb3Itc2VjdGlvbi1zZXBhcmF0b3ItYm9yZGVyKTtjb2xvcjp2YXIoLS1jb2xvci10di1idXR0b24tY2hlY2tlZCl9LnR2LWJ1dHRvbi0tZGVmYXVsdC5pLWhvdmVyLC50di1idXR0b24tLWRlZmF1bHRfZ2hvc3QuaS1ob3Zlcntib3JkZXItY29sb3I6dmFyKC0tY29sb3Itc2VjdGlvbi1zZXBhcmF0b3ItYm9yZGVyKTtjb2xvcjp2YXIoLS1jb2xvci10di1idXR0b24tY2hlY2tlZCl9QG1lZGlhIChhbnktaG92ZXI6aG92ZXIpey50di1idXR0b24tLWRlZmF1bHQ6aG92ZXIsLnR2LWJ1dHRvbi0tZGVmYXVsdF9naG9zdDpob3Zlcntib3JkZXItY29sb3I6dmFyKC0tY29sb3Itc2VjdGlvbi1zZXBhcmF0b3ItYm9yZGVyKTtjb2xvcjp2YXIoLS1jb2xvci10di1idXR0b24tY2hlY2tlZCl9fS50di1idXR0b24tLWRlZmF1bHQuaS1hY3RpdmUsLnR2LWJ1dHRvbi0tZGVmYXVsdDphY3RpdmUsLnR2LWJ1dHRvbi0tZGVmYXVsdF9naG9zdC5pLWFjdGl2ZSwudHYtYnV0dG9uLS1kZWZhdWx0X2dob3N0OmFjdGl2ZXtib3JkZXItY29sb3I6dmFyKC0tY29sb3Itc2VjdGlvbi1zZXBhcmF0b3ItYm9yZGVyKTtjb2xvcjp2YXIoLS1jb2xvci10di1idXR0b24tY2hlY2tlZCl9LnR2LWJ1dHRvbi0tcHJpbWFyeSwudHYtYnV0dG9uLS1wcmltYXJ5X2dob3N0LGEudHYtYnV0dG9uLS1wcmltYXJ5OnZpc2l0ZWR7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1fNi15MlpYKTtib3JkZXItY29sb3I6dmFyKC0tXzYteTJaWCk7Y29sb3I6dmFyKC0tXzkteTJaWCl9LnR2LWJ1dHRvbi0tcHJpbWFyeV9naG9zdHtjb2xvcjp2YXIoLS1fNi15MlpYKX0udHYtYnV0dG9uLS1wcmltYXJ5X2dob3N0LmktY2hlY2tlZHtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLV82LXkyWlgpO2JvcmRlci1jb2xvcjp2YXIoLS1fNi15MlpYKTtjb2xvcjp2YXIoLS1fOS15MlpYKX0udHYtYnV0dG9uLS1wcmltYXJ5LmktYWN0aXZlLC50di1idXR0b24tLXByaW1hcnk6YWN0aXZlLC50di1idXR0b24tLXByaW1hcnlfZ2hvc3QuaS1hY3RpdmUsLnR2LWJ1dHRvbi0tcHJpbWFyeV9naG9zdDphY3RpdmV7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1fOC15MlpYKTtib3JkZXItY29sb3I6dmFyKC0tXzgteTJaWCk7Y29sb3I6dmFyKC0tXzkteTJaWCk7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMXB4KX0udHYtYnV0dG9uLS1wcmltYXJ5LmktaG92ZXIsLnR2LWJ1dHRvbi0tcHJpbWFyeV9naG9zdC5pLWhvdmVye2JhY2tncm91bmQtY29sb3I6dmFyKC0tXzcteTJaWCk7Ym9yZGVyLWNvbG9yOnZhcigtLV83LXkyWlgpO2NvbG9yOnZhcigtLV85LXkyWlgpfUBtZWRpYSAoYW55LWhvdmVyOmhvdmVyKXsudHYtYnV0dG9uLS1wcmltYXJ5OmhvdmVyLC50di1idXR0b24tLXByaW1hcnlfZ2hvc3Q6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1fNy15MlpYKTtib3JkZXItY29sb3I6dmFyKC0tXzcteTJaWCk7Y29sb3I6dmFyKC0tXzkteTJaWCl9fS50di1idXR0b24tLXByaW1hcnlfZ2hvc3QgLnR2LWJ1dHRvbl9fbG9hZGVyLWl0ZW17YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1fNy15MlpYKX0udHYtYnV0dG9uLS1wcmltYXJ5X2dob3N0LmktaG92ZXIgLnR2LWJ1dHRvbl9fbG9hZGVyLWl0ZW17YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1fOS15MlpYKX1AbWVkaWEgKGFueS1ob3Zlcjpob3Zlcil7LnR2LWJ1dHRvbi0tcHJpbWFyeV9naG9zdDpob3ZlciAudHYtYnV0dG9uX19sb2FkZXItaXRlbXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLV85LXkyWlgpfX0udHYtYnV0dG9uLS1zZWNvbmRhcnksLnR2LWJ1dHRvbi0tc2Vjb25kYXJ5X2dob3N0LGEudHYtYnV0dG9uLS1zZWNvbmRhcnk6dmlzaXRlZHtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLWNvbGQtZ3JheS0xMDApO2JvcmRlci1jb2xvcjp2YXIoLS1jb2xvci1jb2xkLWdyYXktMTAwKTtjb2xvcjp2YXIoLS1jb2xvci1jb2xkLWdyYXktNTAwKX0udHYtYnV0dG9uLS1zZWNvbmRhcnlfZ2hvc3R7Y29sb3I6dmFyKC0tY29sb3ItY29sZC1ncmF5LTUwMCl9LnR2LWJ1dHRvbi0tc2Vjb25kYXJ5X2dob3N0LmktY2hlY2tlZHtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLWNvbGQtZ3JheS0xMDApO2JvcmRlci1jb2xvcjp2YXIoLS1jb2xvci1jb2xkLWdyYXktMTAwKTtjb2xvcjp2YXIoLS1jb2xvci1jb2xkLWdyYXktNTAwKX0udHYtYnV0dG9uLS1zZWNvbmRhcnkuaS1hY3RpdmUsLnR2LWJ1dHRvbi0tc2Vjb25kYXJ5OmFjdGl2ZSwudHYtYnV0dG9uLS1zZWNvbmRhcnlfZ2hvc3QuaS1hY3RpdmUsLnR2LWJ1dHRvbi0tc2Vjb25kYXJ5X2dob3N0OmFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOiNkMWRiZjA7Ym9yZGVyLWNvbG9yOiNkMWRiZjA7Y29sb3I6dmFyKC0tY29sb3ItY29sZC1ncmF5LTUwMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMXB4KX0udHYtYnV0dG9uLS1zZWNvbmRhcnkuaS1ob3ZlciwudHYtYnV0dG9uLS1zZWNvbmRhcnlfZ2hvc3QuaS1ob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOiNlMWU3ZjU7Ym9yZGVyLWNvbG9yOiNlMWU3ZjU7Y29sb3I6dmFyKC0tY29sb3ItY29sZC1ncmF5LTUwMCl9QG1lZGlhIChhbnktaG92ZXI6aG92ZXIpey50di1idXR0b24tLXNlY29uZGFyeTpob3ZlciwudHYtYnV0dG9uLS1zZWNvbmRhcnlfZ2hvc3Q6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjojZTFlN2Y1O2JvcmRlci1jb2xvcjojZTFlN2Y1O2NvbG9yOnZhcigtLWNvbG9yLWNvbGQtZ3JheS01MDApfX0udHYtYnV0dG9uLS1zZWNvbmRhcnlfZ2hvc3QgLnR2LWJ1dHRvbl9fbG9hZGVyLWl0ZW17YmFja2dyb3VuZC1jb2xvcjojZTFlN2Y1fS50di1idXR0b24tLXNlY29uZGFyeV9naG9zdC5pLWhvdmVyIC50di1idXR0b25fX2xvYWRlci1pdGVte2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItY29sZC1ncmF5LTUwMCl9QG1lZGlhIChhbnktaG92ZXI6aG92ZXIpey50di1idXR0b24tLXNlY29uZGFyeV9naG9zdDpob3ZlciAudHYtYnV0dG9uX19sb2FkZXItaXRlbXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLWNvbGQtZ3JheS01MDApfX0udHYtYnV0dG9uLS1zdWNjZXNzLC50di1idXR0b24tLXN1Y2Nlc3NfZ2hvc3QsYS50di1idXR0b24tLXN1Y2Nlc3M6dmlzaXRlZHtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLXN1Y2Nlc3MpO2JvcmRlci1jb2xvcjp2YXIoLS1jb2xvci1zdWNjZXNzKTtjb2xvcjp2YXIoLS1fMi15MlpYKX0udHYtYnV0dG9uLS1zdWNjZXNzX2dob3N0e2NvbG9yOnZhcigtLWNvbG9yLXN1Y2Nlc3MpfS50di1idXR0b24tLXN1Y2Nlc3NfZ2hvc3QuaS1jaGVja2Vke2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3Itc3VjY2Vzcyk7Ym9yZGVyLWNvbG9yOnZhcigtLWNvbG9yLXN1Y2Nlc3MpO2NvbG9yOnZhcigtLV8yLXkyWlgpfS50di1idXR0b24tLXN1Y2Nlc3MuaS1hY3RpdmUsLnR2LWJ1dHRvbi0tc3VjY2VzczphY3RpdmUsLnR2LWJ1dHRvbi0tc3VjY2Vzc19naG9zdC5pLWFjdGl2ZSwudHYtYnV0dG9uLS1zdWNjZXNzX2dob3N0OmFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLXN1Y2Nlc3MtYWN0aXZlKTtib3JkZXItY29sb3I6dmFyKC0tY29sb3Itc3VjY2Vzcy1hY3RpdmUpO2NvbG9yOnZhcigtLV8yLXkyWlgpO3RyYW5zZm9ybTp0cmFuc2xhdGVZKDFweCl9LnR2LWJ1dHRvbi0tc3VjY2Vzcy5pLWhvdmVyLC50di1idXR0b24tLXN1Y2Nlc3NfZ2hvc3QuaS1ob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLXN1Y2Nlc3MtaG92ZXIpO2JvcmRlci1jb2xvcjp2YXIoLS1jb2xvci1zdWNjZXNzLWhvdmVyKTtjb2xvcjp2YXIoLS1fMi15MlpYKX1AbWVkaWEgKGFueS1ob3Zlcjpob3Zlcil7LnR2LWJ1dHRvbi0tc3VjY2Vzczpob3ZlciwudHYtYnV0dG9uLS1zdWNjZXNzX2dob3N0OmhvdmVye2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3Itc3VjY2Vzcy1ob3Zlcik7Ym9yZGVyLWNvbG9yOnZhcigtLWNvbG9yLXN1Y2Nlc3MtaG92ZXIpO2NvbG9yOnZhcigtLV8yLXkyWlgpfX0udHYtYnV0dG9uLS1zdWNjZXNzX2dob3N0IC50di1idXR0b25fX2xvYWRlci1pdGVte2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3Itc3VjY2Vzcy1ob3Zlcil9LnR2LWJ1dHRvbi0tc3VjY2Vzc19naG9zdC5pLWhvdmVyIC50di1idXR0b25fX2xvYWRlci1pdGVte2JhY2tncm91bmQtY29sb3I6dmFyKC0tXzIteTJaWCl9QG1lZGlhIChhbnktaG92ZXI6aG92ZXIpey50di1idXR0b24tLXN1Y2Nlc3NfZ2hvc3Q6aG92ZXIgLnR2LWJ1dHRvbl9fbG9hZGVyLWl0ZW17YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1fMi15MlpYKX19LnR2LWJ1dHRvbi0tZGFuZ2VyLC50di1idXR0b24tLWRhbmdlcl9naG9zdCxhLnR2LWJ1dHRvbi0tZGFuZ2VyOnZpc2l0ZWR7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1fMy15MlpYKTtib3JkZXItY29sb3I6dmFyKC0tXzMteTJaWCk7Y29sb3I6dmFyKC0tXzIteTJaWCl9LnR2LWJ1dHRvbi0tZGFuZ2VyX2dob3N0e2NvbG9yOnZhcigtLV8zLXkyWlgpfS50di1idXR0b24tLWRhbmdlcl9naG9zdC5pLWNoZWNrZWR7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1fMy15MlpYKTtib3JkZXItY29sb3I6dmFyKC0tXzMteTJaWCk7Y29sb3I6dmFyKC0tXzIteTJaWCl9LnR2LWJ1dHRvbi0tZGFuZ2VyLmktYWN0aXZlLC50di1idXR0b24tLWRhbmdlcjphY3RpdmUsLnR2LWJ1dHRvbi0tZGFuZ2VyX2dob3N0LmktYWN0aXZlLC50di1idXR0b24tLWRhbmdlcl9naG9zdDphY3RpdmV7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1fNS15MlpYKTtib3JkZXItY29sb3I6dmFyKC0tXzUteTJaWCk7Y29sb3I6dmFyKC0tXzIteTJaWCk7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMXB4KX0udHYtYnV0dG9uLS1kYW5nZXIuaS1ob3ZlciwudHYtYnV0dG9uLS1kYW5nZXJfZ2hvc3QuaS1ob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLV80LXkyWlgpO2JvcmRlci1jb2xvcjp2YXIoLS1fNC15MlpYKTtjb2xvcjp2YXIoLS1fMi15MlpYKX1AbWVkaWEgKGFueS1ob3Zlcjpob3Zlcil7LnR2LWJ1dHRvbi0tZGFuZ2VyOmhvdmVyLC50di1idXR0b24tLWRhbmdlcl9naG9zdDpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLV80LXkyWlgpO2JvcmRlci1jb2xvcjp2YXIoLS1fNC15MlpYKTtjb2xvcjp2YXIoLS1fMi15MlpYKX19LnR2LWJ1dHRvbi0tZGFuZ2VyX2dob3N0IC50di1idXR0b25fX2xvYWRlci1pdGVte2JhY2tncm91bmQtY29sb3I6dmFyKC0tXzQteTJaWCl9LnR2LWJ1dHRvbi0tZGFuZ2VyX2dob3N0LmktaG92ZXIgLnR2LWJ1dHRvbl9fbG9hZGVyLWl0ZW17YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1fMi15MlpYKX1AbWVkaWEgKGFueS1ob3Zlcjpob3Zlcil7LnR2LWJ1dHRvbi0tZGFuZ2VyX2dob3N0OmhvdmVyIC50di1idXR0b25fX2xvYWRlci1pdGVte2JhY2tncm91bmQtY29sb3I6dmFyKC0tXzIteTJaWCl9fS50di1idXR0b24tLXdhcm5pbmcsLnR2LWJ1dHRvbi0td2FybmluZ19naG9zdCxhLnR2LWJ1dHRvbi0td2FybmluZzp2aXNpdGVke2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItdGFuLW9yYW5nZS01MDApO2JvcmRlci1jb2xvcjp2YXIoLS1jb2xvci10YW4tb3JhbmdlLTUwMCk7Y29sb3I6I2ZmZn0udHYtYnV0dG9uLS13YXJuaW5nX2dob3N0e2NvbG9yOnZhcigtLWNvbG9yLXRhbi1vcmFuZ2UtNTAwKX0udHYtYnV0dG9uLS13YXJuaW5nX2dob3N0LmktY2hlY2tlZHtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLXRhbi1vcmFuZ2UtNTAwKTtib3JkZXItY29sb3I6dmFyKC0tY29sb3ItdGFuLW9yYW5nZS01MDApO2NvbG9yOiNmZmZ9LnR2LWJ1dHRvbi0td2FybmluZy5pLWFjdGl2ZSwudHYtYnV0dG9uLS13YXJuaW5nOmFjdGl2ZSwudHYtYnV0dG9uLS13YXJuaW5nX2dob3N0LmktYWN0aXZlLC50di1idXR0b24tLXdhcm5pbmdfZ2hvc3Q6YWN0aXZle2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItdGFuLW9yYW5nZS1hNjAwKTtib3JkZXItY29sb3I6dmFyKC0tY29sb3ItdGFuLW9yYW5nZS1hNjAwKTtjb2xvcjojZmZmO3RyYW5zZm9ybTp0cmFuc2xhdGVZKDFweCl9LnR2LWJ1dHRvbi0td2FybmluZy5pLWhvdmVyLC50di1idXR0b24tLXdhcm5pbmdfZ2hvc3QuaS1ob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLXRhbi1vcmFuZ2UtYTQwMCk7Ym9yZGVyLWNvbG9yOnZhcigtLWNvbG9yLXRhbi1vcmFuZ2UtYTQwMCk7Y29sb3I6I2ZmZn1AbWVkaWEgKGFueS1ob3Zlcjpob3Zlcil7LnR2LWJ1dHRvbi0td2FybmluZzpob3ZlciwudHYtYnV0dG9uLS13YXJuaW5nX2dob3N0OmhvdmVye2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItdGFuLW9yYW5nZS1hNDAwKTtib3JkZXItY29sb3I6dmFyKC0tY29sb3ItdGFuLW9yYW5nZS1hNDAwKTtjb2xvcjojZmZmfX0udHYtYnV0dG9uLS13YXJuaW5nX2dob3N0IC50di1idXR0b25fX2xvYWRlci1pdGVte2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItdGFuLW9yYW5nZS1hNDAwKX0udHYtYnV0dG9uLS13YXJuaW5nX2dob3N0LmktaG92ZXIgLnR2LWJ1dHRvbl9fbG9hZGVyLWl0ZW17YmFja2dyb3VuZC1jb2xvcjojZmZmfUBtZWRpYSAoYW55LWhvdmVyOmhvdmVyKXsudHYtYnV0dG9uLS13YXJuaW5nX2dob3N0OmhvdmVyIC50di1idXR0b25fX2xvYWRlci1pdGVte2JhY2tncm91bmQtY29sb3I6I2ZmZn19LnR2LWJ1dHRvbi0tbGluaywudHYtYnV0dG9uLS1saW5rOnZpc2l0ZWR7Y29sb3I6dmFyKC0tY29sb3ItbGluay1wcmltYXJ5LWRlZmF1bHQpO2ZpbGw6dmFyKC0tY29sb3ItbGluay1wcmltYXJ5LWRlZmF1bHQpfUBtZWRpYSAoYW55LWhvdmVyOmhvdmVyKXsudHYtYnV0dG9uLS1saW5rOmhvdmVye2NvbG9yOnZhcigtLWNvbG9yLWxpbmstcHJpbWFyeS1ob3Zlcik7ZmlsbDp2YXIoLS1jb2xvci1saW5rLXByaW1hcnktaG92ZXIpfX0udHYtYnV0dG9uLS1saW5rOmFjdGl2ZXtjb2xvcjp2YXIoLS1jb2xvci1saW5rLXByaW1hcnktYWN0aXZlKTtmaWxsOnZhcigtLWNvbG9yLWxpbmstcHJpbWFyeS1hY3RpdmUpfS50di1idXR0b24tLWxpbms6Zm9jdXN7b3V0bGluZTphdXRvO291dGxpbmUtb2Zmc2V0OjJweH0udHYtYnV0dG9uLS1saW5rOmZvY3VzLXZpc2libGV7b3V0bGluZTphdXRvO291dGxpbmUtb2Zmc2V0OjJweH0udHYtYnV0dG9uLS1saW5rOmZvY3VzOm5vdCg6Zm9jdXMtdmlzaWJsZSl7b3V0bGluZTpub25lfS50di1idXR0b24tLWRhbmdlcl9naG9zdCwudHYtYnV0dG9uLS1kZWZhdWx0X2dob3N0LC50di1idXR0b24tLXByaW1hcnlfZ2hvc3QsLnR2LWJ1dHRvbi0tc2Vjb25kYXJ5X2dob3N0LC50di1idXR0b24tLXN1Y2Nlc3NfZ2hvc3QsLnR2LWJ1dHRvbi0td2FybmluZ19naG9zdHtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLXN0YXRpYy10cmFuc3BhcmVudCk7Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci13aWR0aDoxcHh9LnR2LWJ1dHRvbi0tZGFuZ2VyX2dob3N0LnR2LWJ1dHRvbi0tc2l6ZV9sYXJnZSwudHYtYnV0dG9uLS1kZWZhdWx0X2dob3N0LnR2LWJ1dHRvbi0tc2l6ZV9sYXJnZSwudHYtYnV0dG9uLS1wcmltYXJ5X2dob3N0LnR2LWJ1dHRvbi0tc2l6ZV9sYXJnZSwudHYtYnV0dG9uLS1zZWNvbmRhcnlfZ2hvc3QudHYtYnV0dG9uLS1zaXplX2xhcmdlLC50di1idXR0b24tLXN1Y2Nlc3NfZ2hvc3QudHYtYnV0dG9uLS1zaXplX2xhcmdlLC50di1idXR0b24tLXdhcm5pbmdfZ2hvc3QudHYtYnV0dG9uLS1zaXplX2xhcmdle2JvcmRlci13aWR0aDoycHh9LnR2LWJ1dHRvbi0tZGFuZ2VyX2dob3N0LnR2LWJ1dHRvbi0tc2l6ZV9sYXJnZS50di1idXR0b24tLXRoaW4tYm9yZGVyLC50di1idXR0b24tLWRlZmF1bHRfZ2hvc3QudHYtYnV0dG9uLS1zaXplX2xhcmdlLnR2LWJ1dHRvbi0tdGhpbi1ib3JkZXIsLnR2LWJ1dHRvbi0tcHJpbWFyeV9naG9zdC50di1idXR0b24tLXNpemVfbGFyZ2UudHYtYnV0dG9uLS10aGluLWJvcmRlciwudHYtYnV0dG9uLS1zZWNvbmRhcnlfZ2hvc3QudHYtYnV0dG9uLS1zaXplX2xhcmdlLnR2LWJ1dHRvbi0tdGhpbi1ib3JkZXIsLnR2LWJ1dHRvbi0tc3VjY2Vzc19naG9zdC50di1idXR0b24tLXNpemVfbGFyZ2UudHYtYnV0dG9uLS10aGluLWJvcmRlciwudHYtYnV0dG9uLS13YXJuaW5nX2dob3N0LnR2LWJ1dHRvbi0tc2l6ZV9sYXJnZS50di1idXR0b24tLXRoaW4tYm9yZGVye2JvcmRlci13aWR0aDoxcHh9QG1lZGlhIChhbnktaG92ZXI6aG92ZXIpey50di1idXR0b24tLWRlZmF1bHRfZ2hvc3Q6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1fMC15MlpYKX19LnR2LWJ1dHRvbi5pLWRpc2FibGVkLC50di1idXR0b24uaS1kaXNhYmxlZDphY3RpdmUsLnR2LWJ1dHRvbjpkaXNhYmxlZCwudHYtYnV0dG9uOmRpc2FibGVkOmFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLV8xLXkyWlgpO2JvcmRlci1jb2xvcjp2YXIoLS1fMS15MlpYKTtjb2xvcjp2YXIoLS1jb2xvci10ZXh0LWRpc2FibGVkKTtjdXJzb3I6ZGVmYXVsdH1AbWVkaWEgKGFueS1ob3Zlcjpob3Zlcil7LnR2LWJ1dHRvbi5pLWRpc2FibGVkOmhvdmVyLC50di1idXR0b246ZGlzYWJsZWQ6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1fMS15MlpYKTtib3JkZXItY29sb3I6dmFyKC0tXzEteTJaWCk7Y29sb3I6dmFyKC0tY29sb3ItdGV4dC1kaXNhYmxlZCk7Y3Vyc29yOmRlZmF1bHR9fS50di1idXR0b24uaS1kaXNhYmxlZDphY3RpdmUsLnR2LWJ1dHRvbjpkaXNhYmxlZDphY3RpdmV7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMCl9LnR2LWJ1dHRvbi0tc2l6ZV94c21hbGx7Ym9yZGVyLXJhZGl1czoxcHg7Zm9udC1zaXplOjExcHg7Zm9udC13ZWlnaHQ6NDAwO2xpbmUtaGVpZ2h0OjE1cHg7cGFkZGluZzoycHggN3B4fS50di1idXR0b24tLXNpemVfeHNtYWxsLnR2LWJ1dHRvbi0tZGFuZ2VyX2dob3N0LC50di1idXR0b24tLXNpemVfeHNtYWxsLnR2LWJ1dHRvbi0tZGVmYXVsdCwudHYtYnV0dG9uLS1zaXplX3hzbWFsbC50di1idXR0b24tLWRlZmF1bHRfZ2hvc3QsLnR2LWJ1dHRvbi0tc2l6ZV94c21hbGwudHYtYnV0dG9uLS1wcmltYXJ5X2dob3N0LC50di1idXR0b24tLXNpemVfeHNtYWxsLnR2LWJ1dHRvbi0tc2Vjb25kYXJ5X2dob3N0LC50di1idXR0b24tLXNpemVfeHNtYWxsLnR2LWJ1dHRvbi0tc3RhdGUsLnR2LWJ1dHRvbi0tc2l6ZV94c21hbGwudHYtYnV0dG9uLS1zdWNjZXNzX2dob3N0LC50di1idXR0b24tLXNpemVfeHNtYWxsLnR2LWJ1dHRvbi0td2FybmluZ19naG9zdHtwYWRkaW5nOjFweCA2cHh9LnR2LWJ1dHRvbi0tc2l6ZV94c21hbGwrLnR2LWJ1dHRvbi0tc2l6ZV94c21hbGx7bWFyZ2luLWlubGluZS1zdGFydDoxMHB4fS50di1idXR0b24tLXNpemVfc21hbGx7Zm9udC1zaXplOjEzcHg7bGluZS1oZWlnaHQ6MjVweDtwYWRkaW5nOjFweCAxMnB4fS50di1idXR0b24tLXNpemVfc21hbGwudHYtYnV0dG9uLS1kYW5nZXJfZ2hvc3QsLnR2LWJ1dHRvbi0tc2l6ZV9zbWFsbC50di1idXR0b24tLWRlZmF1bHQsLnR2LWJ1dHRvbi0tc2l6ZV9zbWFsbC50di1idXR0b24tLWRlZmF1bHRfZ2hvc3QsLnR2LWJ1dHRvbi0tc2l6ZV9zbWFsbC50di1idXR0b24tLXByaW1hcnlfZ2hvc3QsLnR2LWJ1dHRvbi0tc2l6ZV9zbWFsbC50di1idXR0b24tLXNlY29uZGFyeV9naG9zdCwudHYtYnV0dG9uLS1zaXplX3NtYWxsLnR2LWJ1dHRvbi0tc3RhdGUsLnR2LWJ1dHRvbi0tc2l6ZV9zbWFsbC50di1idXR0b24tLXN1Y2Nlc3NfZ2hvc3QsLnR2LWJ1dHRvbi0tc2l6ZV9zbWFsbC50di1idXR0b24tLXdhcm5pbmdfZ2hvc3R7cGFkZGluZzowIDExcHh9LnR2LWJ1dHRvbi0tc2l6ZV9zbWFsbCsudHYtYnV0dG9uLS1zaXplX3NtYWxse21hcmdpbi1pbmxpbmUtc3RhcnQ6MTBweH0udHYtYnV0dG9uLS1zaXplX2xhcmdle2ZvbnQtc2l6ZToxN3B4O2xpbmUtaGVpZ2h0OjQ0cHg7cGFkZGluZzoxcHggMzBweH0udHYtYnV0dG9uLS1zaXplX2xhcmdlLnR2LWJ1dHRvbi0tZGFuZ2VyX2dob3N0LC50di1idXR0b24tLXNpemVfbGFyZ2UudHYtYnV0dG9uLS1kZWZhdWx0LC50di1idXR0b24tLXNpemVfbGFyZ2UudHYtYnV0dG9uLS1kZWZhdWx0X2dob3N0LC50di1idXR0b24tLXNpemVfbGFyZ2UudHYtYnV0dG9uLS1wcmltYXJ5X2dob3N0LC50di1idXR0b24tLXNpemVfbGFyZ2UudHYtYnV0dG9uLS1zZWNvbmRhcnlfZ2hvc3QsLnR2LWJ1dHRvbi0tc2l6ZV9sYXJnZS50di1idXR0b24tLXN0YXRlLC50di1idXR0b24tLXNpemVfbGFyZ2UudHYtYnV0dG9uLS1zdWNjZXNzX2dob3N0LC50di1idXR0b24tLXNpemVfbGFyZ2UudHYtYnV0dG9uLS13YXJuaW5nX2dob3N0e3BhZGRpbmc6MCAyOXB4fS50di1idXR0b24tLXNpemVfcHJvbW97Ym9yZGVyLXJhZGl1czoxMjBweDtmb250LXNpemU6MjRweDtsaW5lLWhlaWdodDo1NHB4O3BhZGRpbmc6MXB4IDQwcHh9LnR2LWJ1dHRvbi0tc2l6ZV9wcm9tby50di1idXR0b24tLWRhbmdlcl9naG9zdCwudHYtYnV0dG9uLS1zaXplX3Byb21vLnR2LWJ1dHRvbi0tZGVmYXVsdCwudHYtYnV0dG9uLS1zaXplX3Byb21vLnR2LWJ1dHRvbi0tZGVmYXVsdF9naG9zdCwudHYtYnV0dG9uLS1zaXplX3Byb21vLnR2LWJ1dHRvbi0tcHJpbWFyeV9naG9zdCwudHYtYnV0dG9uLS1zaXplX3Byb21vLnR2LWJ1dHRvbi0tc2Vjb25kYXJ5X2dob3N0LC50di1idXR0b24tLXNpemVfcHJvbW8udHYtYnV0dG9uLS1zdGF0ZSwudHYtYnV0dG9uLS1zaXplX3Byb21vLnR2LWJ1dHRvbi0tc3VjY2Vzc19naG9zdCwudHYtYnV0dG9uLS1zaXplX3Byb21vLnR2LWJ1dHRvbi0td2FybmluZ19naG9zdHtwYWRkaW5nOjAgMzlweH0udHYtYnV0dG9uLS1uby1wYWRkaW5ne3BhZGRpbmc6MXB4fS50di1idXR0b24tLW5vLXBhZGRpbmcudHYtYnV0dG9uLS1kYW5nZXJfZ2hvc3QsLnR2LWJ1dHRvbi0tbm8tcGFkZGluZy50di1idXR0b24tLWRlZmF1bHQsLnR2LWJ1dHRvbi0tbm8tcGFkZGluZy50di1idXR0b24tLWRlZmF1bHRfZ2hvc3QsLnR2LWJ1dHRvbi0tbm8tcGFkZGluZy50di1idXR0b24tLXByaW1hcnlfZ2hvc3QsLnR2LWJ1dHRvbi0tbm8tcGFkZGluZy50di1idXR0b24tLXNlY29uZGFyeV9naG9zdCwudHYtYnV0dG9uLS1uby1wYWRkaW5nLnR2LWJ1dHRvbi0tc3RhdGUsLnR2LWJ1dHRvbi0tbm8tcGFkZGluZy50di1idXR0b24tLXN1Y2Nlc3NfZ2hvc3QsLnR2LWJ1dHRvbi0tbm8tcGFkZGluZy50di1idXR0b24tLXdhcm5pbmdfZ2hvc3R7cGFkZGluZzowfS50di1idXR0b24tLXN0YXRle2JhY2tncm91bmQ6dmFyKC0tY29sb3Itc3RhdGljLXRyYW5zcGFyZW50KTtib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLXdpZHRoOjFweDt0ZXh0LWFsaWduOmNlbnRlcn0udHYtYnV0dG9uLS1zdGF0ZTphZnRlcntjb250ZW50OiIiO2Rpc3BsYXk6aW5saW5lLWJsb2NrfS50di1idXR0b24tLXN0YXRlX19jaGVja2VkLC50di1idXR0b24tLXN0YXRlX191bmNoZWNrLWhpbnQsLnR2LWJ1dHRvbi0tc3RhdGVfX3VuY2hlY2tlZHtkaXNwbGF5OmJsb2NrO2hlaWdodDowO3RyYW5zaXRpb246b3BhY2l0eSAuMjYyNXMgZWFzZSx0cmFuc2Zvcm0gLjI2MjVzIGVhc2V9LnR2LWJ1dHRvbi0tc3RhdGVfX2VsbGlwc2lzLXRleHR7ZGlzcGxheTpibG9jaztvdmVyZmxvdy14OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3doaXRlLXNwYWNlOm5vd3JhcH1AbWVkaWEgKGFueS1ob3Zlcjpob3Zlcil7LnR2LWJ1dHRvbi0tc3RhdGUuaS1jaGVja2VkOmhvdmVyIC50di1idXR0b24tLXN0YXRlX19jaGVja2VkLC50di1idXR0b24tLXN0YXRlLmktY2hlY2tlZDpob3ZlciAudHYtYnV0dG9uLS1zdGF0ZV9fdW5jaGVjay1oaW50LC50di1idXR0b24tLXN0YXRlLmktY2hlY2tlZDpob3ZlciAudHYtYnV0dG9uLS1zdGF0ZV9fdW5jaGVja2Vke3dpbGwtY2hhbmdlOm9wYWNpdHksdHJhbnNmb3JtfX0udHYtYnV0dG9uLS1zdGF0ZS5pLWNoZWNrZWQgLnR2LWJ1dHRvbi0tc3RhdGVfX3VuY2hlY2tlZCwudHYtYnV0dG9uLS1zdGF0ZV9fY2hlY2tlZCwudHYtYnV0dG9uLS1zdGF0ZV9fdW5jaGVjay1oaW50e29wYWNpdHk6MH1AbWVkaWEgKGFueS1ob3Zlcjpob3Zlcil7LnR2LWJ1dHRvbi0tc3RhdGUuaS1jaGVja2VkOmhvdmVyIC50di1idXR0b24tLXN0YXRlX19jaGVja2Vke29wYWNpdHk6MH19LnR2LWJ1dHRvbi0tc3RhdGUuaS1jaGVja2VkIC50di1idXR0b24tLXN0YXRlX19jaGVja2VkLC50di1idXR0b24tLXN0YXRlX191bmNoZWNrZWR7b3BhY2l0eToxfUBtZWRpYSAoYW55LWhvdmVyOmhvdmVyKXsudHYtYnV0dG9uLS1zdGF0ZS5pLWNoZWNrZWQ6aG92ZXIgLnR2LWJ1dHRvbi0tc3RhdGVfX3VuY2hlY2staGludHtvcGFjaXR5OjF9LnR2LWJ1dHRvbi0tc3RhdGUuaS1jaGVja2VkOmhvdmVyIC50di1idXR0b24tLXN0YXRlX19jaGVja2Vke3RyYW5zZm9ybTp0cmFuc2xhdGVZKC01cHgpfX0udHYtYnV0dG9uLS1zdGF0ZS5pLWNoZWNrZWQgLnR2LWJ1dHRvbi0tc3RhdGVfX3VuY2hlY2tlZCwudHYtYnV0dG9uLS1zdGF0ZV9fY2hlY2tlZCwudHYtYnV0dG9uLS1zdGF0ZV9fdW5jaGVjay1oaW50e3RyYW5zZm9ybTp0cmFuc2xhdGVZKDVweCl9LnR2LWJ1dHRvbi0tc3RhdGUuaS1jaGVja2VkIC50di1idXR0b24tLXN0YXRlX19jaGVja2Vke3RyYW5zZm9ybTp0cmFuc2xhdGVZKDApfUBtZWRpYSAoYW55LWhvdmVyOmhvdmVyKXsudHYtYnV0dG9uLS1zdGF0ZS5pLWNoZWNrZWQ6aG92ZXIgLnR2LWJ1dHRvbi0tc3RhdGVfX3VuY2hlY2staGludHt0cmFuc2Zvcm06dHJhbnNsYXRlWSgwKX19LnR2LWJ1dHRvbi0tc3RhdGUudHYtYnV0dG9uLS1zdWNjZXNze2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3Itc3RhdGljLXRyYW5zcGFyZW50KTtjb2xvcjp2YXIoLS1jb2xvci1zdWNjZXNzKX0udHYtYnV0dG9uLS1zdGF0ZS50di1idXR0b24tLXN1Y2Nlc3MuaS1jaGVja2Vke2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3Itc3VjY2Vzcyk7Y29sb3I6dmFyKC0tXzIteTJaWCl9QG1lZGlhIChhbnktaG92ZXI6aG92ZXIpey50di1idXR0b24tLXN0YXRlLnR2LWJ1dHRvbi0tc3VjY2Vzczpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLXN1Y2Nlc3MtaG92ZXIpO2NvbG9yOnZhcigtLV8yLXkyWlgpfX0udHYtYnV0dG9uLS1zdGF0ZS50di1idXR0b24tLXN1Y2Nlc3M6YWN0aXZle2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3Itc3VjY2Vzcy1hY3RpdmUpO2NvbG9yOnZhcigtLV8yLXkyWlgpfS50di1idXR0b24tLXN0YXRlLnR2LWJ1dHRvbi0tZGFuZ2Vye2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3Itc3RhdGljLXRyYW5zcGFyZW50KTtjb2xvcjp2YXIoLS1fMy15MlpYKX0udHYtYnV0dG9uLS1zdGF0ZS50di1idXR0b24tLWRhbmdlci5pLWNoZWNrZWR7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1yaXBlLXJlZC00MDApO2NvbG9yOiNmZmZ9QG1lZGlhIChhbnktaG92ZXI6aG92ZXIpey50di1idXR0b24tLXN0YXRlLnR2LWJ1dHRvbi0tZGFuZ2VyOmhvdmVye2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItcmlwZS1yZWQtNDAwKTtjb2xvcjojZmZmfX0udHYtYnV0dG9uLS1zdGF0ZS50di1idXR0b24tLWRhbmdlcjphY3RpdmV7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1yaXBlLXJlZC01MDApO2NvbG9yOiNmZmZ9LnR2LWJ1dHRvbi0tc3RhdGUudHYtYnV0dG9uLS1wcmltYXJ5e2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3Itc3RhdGljLXRyYW5zcGFyZW50KTtjb2xvcjp2YXIoLS1fMTAteTJaWCl9LnR2LWJ1dHRvbi0tc3RhdGUudHYtYnV0dG9uLS1wcmltYXJ5LmktY2hlY2tlZHtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLV84LXkyWlgpO2NvbG9yOnZhcigtLV8xMS15MlpYKX1AbWVkaWEgKGFueS1ob3Zlcjpob3Zlcil7LnR2LWJ1dHRvbi0tc3RhdGUudHYtYnV0dG9uLS1wcmltYXJ5OmhvdmVye2JhY2tncm91bmQtY29sb3I6dmFyKC0tXzcteTJaWCk7Y29sb3I6dmFyKC0tXzExLXkyWlgpfX0udHYtYnV0dG9uLS1zdGF0ZS50di1idXR0b24tLXByaW1hcnk6YWN0aXZle2JhY2tncm91bmQtY29sb3I6dmFyKC0tXzgteTJaWCk7Y29sb3I6dmFyKC0tXzExLXkyWlgpfS50di1idXR0b24tLXN0YXRlLnR2LWJ1dHRvbi0tcHJpbWFyeV9naG9zdC1ob3Zlci5pLWNoZWNrZWR7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1zdGF0aWMtdHJhbnNwYXJlbnQpO2NvbG9yOnZhcigtLWNvbG9yLWJyYW5kKX1AbWVkaWEgKGFueS1ob3Zlcjpob3Zlcil7LnR2LWJ1dHRvbi0tc3RhdGUudHYtYnV0dG9uLS1wcmltYXJ5X2dob3N0LWhvdmVyOmhvdmVye2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItYnJhbmQtaG92ZXIpO2NvbG9yOnZhcigtLV8yLXkyWlgpfX0udHYtYnV0dG9uLS1zdGF0ZS50di1idXR0b24tLXByaW1hcnlfZ2hvc3QtaG92ZXI6YWN0aXZle2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItYnJhbmQtYWN0aXZlKTtjb2xvcjp2YXIoLS1fMi15MlpYKX0udHYtYnV0dG9uLS1zdGF0ZS50di1idXR0b24tLXNlY29uZGFyeXtiYWNrZ3JvdW5kLWNvbG9yOmluaXRpYWw7Y29sb3I6dmFyKC0tY29sb3ItY29sZC1ncmF5LTUwMCl9LnR2LWJ1dHRvbi0tc3RhdGUudHYtYnV0dG9uLS1zZWNvbmRhcnkuaS1jaGVja2Vke2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItY29sZC1ncmF5LTEwMCk7Y29sb3I6dmFyKC0tY29sb3ItY29sZC1ncmF5LTUwMCl9QG1lZGlhIChhbnktaG92ZXI6aG92ZXIpey50di1idXR0b24tLXN0YXRlLnR2LWJ1dHRvbi0tc2Vjb25kYXJ5OmhvdmVye2JhY2tncm91bmQtY29sb3I6I2UxZTdmNTtjb2xvcjp2YXIoLS1jb2xvci1jb2xkLWdyYXktNTAwKX19LnR2LWJ1dHRvbi0tc3RhdGUudHYtYnV0dG9uLS1zZWNvbmRhcnk6YWN0aXZle2JhY2tncm91bmQtY29sb3I6I2QxZGJmMDtjb2xvcjp2YXIoLS1jb2xvci1jb2xkLWdyYXktNTAwKX0udHYtYnV0dG9uLS1zdGF0ZS50di1idXR0b24tLXdhcm5pbmd7YmFja2dyb3VuZC1jb2xvcjppbml0aWFsO2NvbG9yOnZhcigtLWNvbG9yLXRhbi1vcmFuZ2UtNTAwKX0udHYtYnV0dG9uLS1zdGF0ZS50di1idXR0b24tLXdhcm5pbmcuaS1jaGVja2Vke2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItdGFuLW9yYW5nZS01MDApO2NvbG9yOiNmZmZ9QG1lZGlhIChhbnktaG92ZXI6aG92ZXIpey50di1idXR0b24tLXN0YXRlLnR2LWJ1dHRvbi0td2FybmluZzpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLXRhbi1vcmFuZ2UtYTQwMCk7Y29sb3I6I2ZmZn19LnR2LWJ1dHRvbi0tc3RhdGUudHYtYnV0dG9uLS13YXJuaW5nOmFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLXRhbi1vcmFuZ2UtYTYwMCk7Y29sb3I6I2ZmZn0udHYtYnV0dG9uLS1zdGF0ZS50di1idXR0b24tLWljb24td2l0aC10ZXh0IHN2Z3ttYXJnaW4taW5saW5lLWVuZDo2cHg7bWFyZ2luLWJvdHRvbTotOHB4O3ZlcnRpY2FsLWFsaWduOnVuc2V0fS50di1idXR0b24tLWljb257YWxpZ24taXRlbXM6Y2VudGVyO2Rpc3BsYXk6aW5saW5lLWZsZXg7aGVpZ2h0OjM0cHg7anVzdGlmeS1jb250ZW50OmNlbnRlcjttaW4td2lkdGg6YXV0bztwYWRkaW5nOjAhaW1wb3J0YW50O3dpZHRoOjM0cHh9LnR2LWJ1dHRvbi0taWNvbi50di1idXR0b24tLXNpemVfeHNtYWxse2hlaWdodDoxOXB4O3dpZHRoOjE5cHh9LnR2LWJ1dHRvbi0taWNvbi50di1idXR0b24tLXNpemVfc21hbGx7aGVpZ2h0OjI3cHg7d2lkdGg6MjdweH0udHYtYnV0dG9uLS1pY29uLnR2LWJ1dHRvbi0tc2l6ZV9sYXJnZXtoZWlnaHQ6NDZweDt3aWR0aDo0NnB4fS50di1idXR0b25fX2ljb257ZGlzcGxheTpmbGV4O21hcmdpbi1pbmxpbmUtZW5kOjdweH0udHYtYnV0dG9uLS1sb2FkZXIgLnR2LWJ1dHRvbl9fdGV4dHt0cmFuc2l0aW9uOm9wYWNpdHkgMTc1bXMgZWFzZSx0cmFuc2Zvcm0gMTc1bXMgZWFzZX0udHYtYnV0dG9uLS1sb2FkZXIuaS1zdGFydC1sb2FkIC50di1idXR0b25fX3RleHR7b3BhY2l0eTowO3RyYW5zZm9ybTp0cmFuc2xhdGVZKC01cHgpfS50di1idXR0b24tLWxvYWRlci5pLWxvYWRpbmcgLnR2LWJ1dHRvbl9fdGV4dHtvcGFjaXR5OjA7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoNXB4KX0udHYtYnV0dG9uLS1sb2FkZXIuaS1zdG9wLWxvYWQgLnR2LWJ1dHRvbl9fdGV4dHtvcGFjaXR5OjE7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMCk7dHJhbnNpdGlvbi1kZWxheToxNzVtc30udHYtYnV0dG9uX19sb2FkZXJ7Ym90dG9tOjA7Zm9udC1zaXplOjA7aGVpZ2h0OjEwMCU7aW5zZXQtaW5saW5lLWVuZDowO2luc2V0LWlubGluZS1zdGFydDowO21hcmdpbjowIGF1dG87b3BhY2l0eTowO3Bvc2l0aW9uOmFic29sdXRlO3RleHQtYWxpZ246Y2VudGVyO3RvcDowO3RyYW5zaXRpb246b3BhY2l0eSAuMzVzIGVhc2V9LnR2LWJ1dHRvbl9fbG9hZGVyOmFmdGVye2NvbnRlbnQ6IiI7ZGlzcGxheTppbmxpbmUtYmxvY2s7aGVpZ2h0OjEwMCU7dmVydGljYWwtYWxpZ246bWlkZGxlfS50di1idXR0b24tLWxvYWRlci5pLWxvYWRpbmcgLnR2LWJ1dHRvbl9fbG9hZGVyLC50di1idXR0b24tLWxvYWRlci5pLXN0YXJ0LWxvYWQgLnR2LWJ1dHRvbl9fbG9hZGVye29wYWNpdHk6MX0udHYtYnV0dG9uLS1sb2FkZXIuaS1zdG9wLWxvYWQgLnR2LWJ1dHRvbl9fbG9hZGVye29wYWNpdHk6MH0udHYtYnV0dG9uX19sb2FkZXItaXRlbXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLV8xMi15MlpYKTtib3JkZXItcmFkaXVzOjEwMCU7ZGlzcGxheTppbmxpbmUtYmxvY2s7aGVpZ2h0OjEwcHg7bWFyZ2luLWlubGluZS1lbmQ6MnB4O21hcmdpbi1pbmxpbmUtc3RhcnQ6MnB4O29wYWNpdHk6MDt0cmFuc2Zvcm06dHJhbnNsYXRlWSgxMnB4KSBzY2FsZSguNik7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjM1cyBjdWJpYy1iZXppZXIoLjY4LC0uNTUsLjI2NSwxLjU1KSxvcGFjaXR5IC4zNXMgZWFzZTt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7d2lkdGg6MTBweH0udHYtYnV0dG9uX19sb2FkZXItaXRlbTpudGgtY2hpbGQoMil7dHJhbnNpdGlvbi1kZWxheTouMTE2NjY2NjdzfS50di1idXR0b25fX2xvYWRlci1pdGVtOm50aC1jaGlsZCgzKXt0cmFuc2l0aW9uLWRlbGF5OjIzMy4zMzMzM21zfS50di1idXR0b24tLWRlZmF1bHQgLnR2LWJ1dHRvbl9fbG9hZGVyLWl0ZW17YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1jb2xkLWdyYXktNTAwKX0udHYtYnV0dG9uLS1sb2FkZXIuaS1sb2FkaW5nIC50di1idXR0b25fX2xvYWRlci1pdGVtLC50di1idXR0b24tLWxvYWRlci5pLXN0YXJ0LWxvYWQgLnR2LWJ1dHRvbl9fbG9hZGVyLWl0ZW17b3BhY2l0eToxfS50di1idXR0b24tLWxvYWRlci5pLXN0b3AtbG9hZCAudHYtYnV0dG9uX19sb2FkZXItaXRlbXtvcGFjaXR5OjB9LnR2LWJ1dHRvbi0tbG9hZGVyLmktbG9hZGluZyAudHYtYnV0dG9uX19sb2FkZXItaXRlbSwudHYtYnV0dG9uLS1sb2FkZXIuaS1zdGFydC1sb2FkIC50di1idXR0b25fX2xvYWRlci1pdGVtLC50di1idXR0b24tLWxvYWRlci5pLXN0b3AtbG9hZCAudHYtYnV0dG9uX19sb2FkZXItaXRlbXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgwKSBzY2FsZSguNil9LnR2LWJ1dHRvbi0tbG9hZGVyLmktbG9hZGluZyAudHYtYnV0dG9uX19sb2FkZXItaXRlbSwudHYtYnV0dG9uLS1sb2FkZXIuaS1zdG9wLWxvYWQgLnR2LWJ1dHRvbl9fbG9hZGVyLWl0ZW17YW5pbWF0aW9uOnR2LWJ1dHRvbi1sb2FkZXItWWpkSEtzQk0gLjk2cyBlYXNlLWluLW91dCBpbmZpbml0ZSBib3RofS50di1idXR0b24tLWxvYWRlci5pLWxvYWRpbmcgLnR2LWJ1dHRvbl9fbG9hZGVyLWl0ZW06bnRoLWNoaWxkKDIpLC50di1idXR0b24tLWxvYWRlci5pLXN0b3AtbG9hZCAudHYtYnV0dG9uX19sb2FkZXItaXRlbTpudGgtY2hpbGQoMil7YW5pbWF0aW9uLWRlbGF5Oi4xNTFzfS50di1idXR0b24tLWxvYWRlci5pLWxvYWRpbmcgLnR2LWJ1dHRvbl9fbG9hZGVyLWl0ZW06bnRoLWNoaWxkKDMpLC50di1idXR0b24tLWxvYWRlci5pLXN0b3AtbG9hZCAudHYtYnV0dG9uX19sb2FkZXItaXRlbTpudGgtY2hpbGQoMyl7YW5pbWF0aW9uLWRlbGF5Oi4zMnN9LnR2LWJ1dHRvbi0tbm8tYm9yZGVyLXJhZGl1c3tib3JkZXItcmFkaXVzOjB9LnR2LWJ1dHRvbi0tbm8tYm9yZGVye2JvcmRlcjpub25lfS50di1idXR0b24tLWNvbm5lY3R7Ym9yZGVyLXJhZGl1czowfS50di1idXR0b24tLWNvbm5lY3RfbGVmdHtib3JkZXItZW5kLXN0YXJ0LXJhZGl1czowO2JvcmRlci1zdGFydC1zdGFydC1yYWRpdXM6MH0udHYtYnV0dG9uLS1jb25uZWN0X3JpZ2h0e2JvcmRlci1lbmQtZW5kLXJhZGl1czowO2JvcmRlci1zdGFydC1lbmQtcmFkaXVzOjB9LnR2LWJ1dHRvbi0td2l0aC1pY29ue2FsaWduLWl0ZW1zOmNlbnRlcjtkaXNwbGF5OmlubGluZS1mbGV4O3RyYW5zZm9ybTp0cmFuc2xhdGUoMCl9QGtleWZyYW1lcyB0di1idXR0b24tbG9hZGVyLVlqZEhLc0JNezAlLHRve3RyYW5zZm9ybTpzY2FsZSguNil9NTAle3RyYW5zZm9ybTpzY2FsZSguOSl9fQ=="}},"time_used":19,"timings":{"blocked":-1,"dns":0,"connect":1,"send":0,"wait":11,"receive":0,"ssl":6},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/94825.8a90c0c3ebd413eb9c81.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:13.000Z","timestamp":1785148033000,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/94825.8a90c0c3ebd413eb9c81.js HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:13 GMT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a61b1a8-846c\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Thu, 23 Jul 2026 06:16:08 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/23/2026 10:17:22\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 11ef8bfb0fe6b967ad4bfa2356667948\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":33900,"size_decoded":11131,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (3071)","md5":"321406610467d6dffd30c75b9184e9df","sha1":"eb120d6cc348265cbed0295dd3cfab7428c5425f","sha256":"3f94fcd41f3f37d9d46697679761c3bf1712a0f67a22b38bc5e3c44b47eb56b5","sha512":"8d1b1035b2fe029452f0a7de35ef2793e6da96377c589956a5e21eaf23f3b2ae7bcedfe568a74bb8ba9a46109cdc8876912e2d73814beca47bbfa286c3081136","ssdeep":"768:QmBTez9037WM2rFgD0Nm7YLSxeUf4DK4uA8JUJESLb/XW4xmmInIPxHgask+vvw4:Q4Ow7uxNVvpPpghBT4Uf","tlshash":"17e2b693b3f9a02966ded0dad8341403e31924447884046cf27dbdde6b5dd88b2b9b7e","first_seen":"2026-07-23T13:38:20.509185Z","last_seen":"2026-07-27T12:57:37.004414Z","times_seen":595,"resource_available":true,"data":"InVzZSBzdHJpY3QiOyhzZWxmLndlYnBhY2tDaHVua3RyYWRpbmd2aWV3PXNlbGYud2VicGFja0NodW5rdHJhZGluZ3ZpZXd8fFtdKS5wdXNoKFtbOTQ4MjVdLHs0MDIwNDUoZSx0LHMpe3MuZCh0LHtXYXRjaGVkT2JqZWN0OigpPT5vfSk7dmFyIHI9cyg2MDE4NDEpLGk9cygyMzIzNjQpO2Z1bmN0aW9uIGEoZSx0KXtyZXR1cm4oMCxyLmRlZXBFcXVhbHMpKGUsdClbMF19Y2xhc3MgbyBleHRlbmRzIGkuV2F0Y2hlZFZhbHVle2NvbnN0cnVjdG9yKGUsdD1hKXtzdXBlcihlKSx0aGlzLl9jb21wYXJhdG9yPXR9c2V0VmFsdWUoZSx0KXshdCYmdGhpcy5fY29tcGFyYXRvcih0aGlzLnZhbHVlKCksZSl8fHN1cGVyLnNldFZhbHVlKGUsdCl9fX0sNjI0Njc4KGUsdCxzKXtzLmQodCx7RGF0ZUZvcm1hdHRlcjooKT0+YX0pO3ZhciByPXMoNDkxMTY1KTtjbGFzcyBpe2NvbnN0cnVjdG9yKGU9Inl5eXktTU0tZGQiLHQ9ITEscz0iVVRDIil7dGhpcy5fZGF0ZUZvcm1hdEZ1bmM9dD8oMCxyLmdldERhdGVGb3JtYXRXaXRoV2Vla2RheSkoZSxzKTpyLmRhdGVGb3JtYXRGdW5jdGlvbnNbZV19Zm9ybWF0KGUpe3JldHVybiB0aGlzLl9kYXRlRm9ybWF0RnVuYyhlLCExKX1mb3JtYXRMb2NhbChlKXtyZXR1cm4gdGhpcy5fZGF0ZUZvcm1hdEZ1bmMoZSwhMCl9cGFyc2UoZSl7cmV0dXJuIiI9PT1lP3tyZXM6ITF9OntyZXM6ITAsdmFsdWU6ZX19fWNsYXNzIGF7Y29uc3RydWN0b3IoZSx0LHMpe3RoaXMuX2RhdGVGb3JtYXR0ZXJJbnN0YW5jZT1uZXcgaShlLHQscyl9Zm9ybWF0KGUpe3JldHVybiBhLl9jdXN0b21Gb3JtYXR0ZXI/YS5fY3VzdG9tRm9ybWF0dGVyLmZvcm1hdChlKTp0aGlzLl9kYXRlRm9ybWF0dGVySW5zdGFuY2UuZm9ybWF0KGUpfWZvcm1hdExvY2FsKGUpe3JldHVybiBhLl9jdXN0b21Gb3JtYXR0ZXI/YS5fY3VzdG9tRm9ybWF0dGVyLmZvcm1hdExvY2FsKGUpOnRoaXMuX2RhdGVGb3JtYXR0ZXJJbnN0YW5jZS5mb3JtYXRMb2NhbChlKX1wYXJzZShlKXtyZXR1cm4gYS5fY3VzdG9tRm9ybWF0dGVyP2EuX2N1c3RvbUZvcm1hdHRlci5wYXJzZShlKTp0aGlzLl9kYXRlRm9ybWF0dGVySW5zdGFuY2UucGFyc2UoZSl9c3RhdGljIHNldEN1c3RvbUZvcm1hdHRlcihlKXthLl9jdXN0b21Gb3JtYXR0ZXI9ZX19YS5fY3VzdG9tRm9ybWF0dGVyPW51bGx9LDgyNjE1NihlLHQscyl7cy5kKHQse0RhdGVUaW1lRm9ybWF0dGVyOigpPT5ufSk7dmFyIHI9cygyMzgxMDMpLGk9cyg2MjQ2NzgpLGE9cygyOTcxMTEpO2NvbnN0IG89e2RhdGVGb3JtYXQ6Inl5eXktTU0tZGQiLHdpdGhXZWVrZGF5OiExLHRpbWVGb3JtYXQ6ci5ob3VyTWludXRlU2Vjb25kRm9ybWF0LGRhdGVUaW1lU2VwYXJhdG9yOiIgIn07Y2xhc3Mgbntjb25zdHJ1Y3RvcihlPXt9KXtjb25zdCB0PU9iamVjdC5hc3NpZ24oe30sbyxlKTt0aGlzLl9kYXRlRm9ybWF0dGVyPW5ldyBpLkRhdGVGb3JtYXR0ZXIodC5kYXRlRm9ybWF0LHQud2l0aFdlZWtkYXksdC50aW1lem9uZSksdGhpcy5fdGltZUZvcm1hdHRlcj1uZXcgYS5UaW1lRm9ybWF0dGVyKHQudGltZUZvcm1hdCksdGhpcy5fc2VwYXJhdG9yPXQuZGF0ZVRpbWVTZXBhcmF0b3J9Zm9ybWF0KGUsdCl7Y29uc3Qgcz10Py5kYXRlVGltZVNlcGFyYXRvcj8/dGhpcy5fc2VwYXJhdG9yO3JldHVybmAke3RoaXMuX2RhdGVGb3JtYXR0ZXIuZm9ybWF0KGUpfSR7c30ke3RoaXMuX3RpbWVGb3JtYXR0ZXIuZm9ybWF0KGUpfWB9Zm9ybWF0TG9jYWwoZSx0KXtjb25zdCBzPXQ/LmRhdGVUaW1lU2VwYXJhdG9yPz90aGlzLl9zZXBhcmF0b3I7cmV0dXJuYCR7dGhpcy5fZGF0ZUZvcm1hdHRlci5mb3JtYXRMb2NhbChlKX0ke3N9JHt0aGlzLl90aW1lRm9ybWF0dGVyLmZvcm1hdExvY2FsKGUpfWB9fX0sMjM4MTAzKGUsdCxzKXtzLmQodCx7aG91ck1pbnV0ZUZvcm1hdDooKT0+byxob3VyTWludXRlTm9uWmVyb1NlY29uZEZvcm1hdDooKT0+aSxob3VyTWludXRlU2Vjb25kRm9ybWF0OigpPT5yLGhvdXJNaW51dGVTZWNvbmRNaWxsaXNlY0Zvcm1hdDooKT0+YSx0d2VsdmVIb3VyTWludXRlRm9ybWF0OigpPT5sLHR3ZWx2ZUhvdXJNaW51dGVOb25aZXJvU2Vjb25kRm9ybWF0OigpPT5kLHR3ZWx2ZUhvdXJNaW51dGVTZWNvbmRGb3JtYXQ6KCk9Pm59KTtjb25zdCByPSIlaDolbTolcyIsaT0iJWg6JW06JXMrIixhPSIlaDolbTolcy4lc3MrIixvPSIlaDolbSIsbj0iJWg6JW06JXMgJWFtcG0iLGQ9IiVoOiVtOiVzKyAlYW1wbSIsbD0iJWg6JW0gJWFtcG0iO3ZhciBoOyFmdW5jdGlvbihlKXtlLlR3ZW50eUZvdXJIb3Vycz0iMjQtaG91cnMiLGUuVHdlbHZlSG91cnM9IjEyLWhvdXJzIn0oaHx8KGg9e30pKX0sMjk3MTExKGUsdCxzKXtzLmQodCx7VGltZUZvcm1hdHRlcjooKT0+b30pO3ZhciByPXMoMjM4MTAzKSxpPXMoODIyNDMxKTtjbGFzcyBhe2NvbnN0cnVjdG9yKGUpe3RoaXMuX2lzVHdlbHZlSG91cnNGb3JtYXQ9ITEsdGhpcy5fdmFsdWVzQW5kRGVsaW1pdGVycz1bXTtjb25zdCB0PWV8fHIuaG91ck1pbnV0ZVNlY29uZEZvcm1hdCxzPW5ldyBSZWdFeHAoIiVofCVtfCVzXFwrfCVzc1xcK3wlc3N8JWFtcG18JXMiLCJnIik7bGV0IGk9cy5leGVjKHQpLGE9MDtmb3IoO251bGwhPT1pOyl7Y29uc3QgZT1pWzBdOyIlYW1wbSI9PT1lJiYodGhpcy5faXNUd2VsdmVIb3Vyc0Zvcm1hdD0hMCk7Y29uc3Qgcj10LnN1YnN0cmluZyhhLGkuaW5kZXgpOyIiIT09ciYmdGhpcy5fdmFsdWVzQW5kRGVsaW1pdGVycy5wdXNoKHIpLHRoaXMuX3ZhbHVlc0FuZERlbGltaXRlcnMucHVzaChlKSxhPWkuaW5kZXgrZS5sZW5ndGgsaT1zLmV4ZWModCl9fWZvcm1hdChlKXtyZXR1cm4gdGhpcy5fZm9ybWF0VGltZShlKX1mb3JtYXRMb2NhbChlKXtyZXR1cm4gdGhpcy5fZm9ybWF0VGltZShlLCEwKX1fZm9ybWF0VGltZShlLHQ9ITEpe2xldCBzPXQ/ZS5nZXRIb3VycygpOmUuZ2V0VVRDSG91cnMoKTtjb25zdCByPXQ/ZS5nZXRNaW51dGVzKCk6ZS5nZXRVVENNaW51dGVzKCksYT10P2UuZ2V0U2Vjb25kcygpOmUuZ2V0VVRDU2Vjb25kcygpLG89dD9lLmdldE1pbGxpc2Vjb25kcygpOmUuZ2V0VVRDTWlsbGlzZWNvbmRzKCk7bGV0IG49IiIKO3RoaXMuX2lzVHdlbHZlSG91cnNGb3JtYXQmJihuPXM+PTEyPyJQTSI6IkFNIixzJT0xMixzPXN8fDEyKTtsZXQgZD0iIixsPSExO2ZvcihsZXQgZT10aGlzLl92YWx1ZXNBbmREZWxpbWl0ZXJzLmxlbmd0aC0xO2U+PTA7ZS0tKXtjb25zdCB0PXRoaXMuX3ZhbHVlc0FuZERlbGltaXRlcnNbZV07bGV0IGg7c3dpdGNoKHQpe2Nhc2UiJWgiOmg9KDAsaS5udW1iZXJUb1N0cmluZ1dpdGhMZWFkaW5nWmVybykocywyKTticmVhaztjYXNlIiVtIjpoPSgwLGkubnVtYmVyVG9TdHJpbmdXaXRoTGVhZGluZ1plcm8pKHIsMik7YnJlYWs7Y2FzZSIlcysiOjAhPT1hP2g9KDAsaS5udW1iZXJUb1N0cmluZ1dpdGhMZWFkaW5nWmVybykoYSwyKTooaD0iIixsPSEwKTticmVhaztjYXNlIiVzIjpoPSgwLGkubnVtYmVyVG9TdHJpbmdXaXRoTGVhZGluZ1plcm8pKGEsMik7YnJlYWs7Y2FzZSIlc3MiOmg9KDAsaS5udW1iZXJUb1N0cmluZ1dpdGhMZWFkaW5nWmVybykobywzKTticmVhaztjYXNlIiVzcysiOjAhPT1vP2g9KDAsaS5udW1iZXJUb1N0cmluZ1dpdGhMZWFkaW5nWmVybykobywzKTooaD0iIixsPSEwKTticmVhaztjYXNlIiVhbXBtIjpoPW47YnJlYWs7ZGVmYXVsdDppZihsKXtsPSExO2NvbnRpbnVlfWg9dH1kPWgrZH1yZXR1cm4gZH19Y2xhc3Mgb3tjb25zdHJ1Y3RvcihlKXt0aGlzLl90aW1lRm9ybWF0dGVySW5zdGFuY2U9bmV3IGEoZSl9Zm9ybWF0KGUpe3JldHVybiBvLl9jdXN0b21Gb3JtYXR0ZXI/by5fY3VzdG9tRm9ybWF0dGVyLmZvcm1hdChlKTp0aGlzLl90aW1lRm9ybWF0dGVySW5zdGFuY2UuZm9ybWF0KGUpfWZvcm1hdExvY2FsKGUpe3JldHVybiBvLl9jdXN0b21Gb3JtYXR0ZXI/by5fY3VzdG9tRm9ybWF0dGVyLmZvcm1hdExvY2FsKGUpOnRoaXMuX3RpbWVGb3JtYXR0ZXJJbnN0YW5jZS5mb3JtYXRMb2NhbChlKX1zdGF0aWMgc2V0Q3VzdG9tRm9ybWF0dGVyKGUpe28uX2N1c3RvbUZvcm1hdHRlcj1lfX1vLl9jdXN0b21Gb3JtYXR0ZXI9bnVsbH0sNDU5OTk0KGUsdCxzKXtzLmQodCx7Q2hhcnRTZXNzaW9uOigpPT5jfSk7dmFyIHI9cyg5NDgzODApLGk9cygxMzg2MzgpLGE9cygyMzIzNjQpLG89cygyMjEwNjEpLG49cygxNTAxNTApO2NvbnN0IGQ9KDAsby5nZXRMb2dnZXIpKCJDaGFydEFwaS5BYnN0cmFjdFNlc3Npb24iKTt2YXIgbDshZnVuY3Rpb24oZSl7ZVtlLkRpc2Nvbm5lY3RlZD0wXT0iRGlzY29ubmVjdGVkIixlW2UuUmVnaXN0ZXJlZD0xXT0iUmVnaXN0ZXJlZCIsZVtlLkNvbm5lY3RlZD0yXT0iQ29ubmVjdGVkIn0obHx8KGw9e30pKTtjbGFzcyBoe2NvbnN0cnVjdG9yKGUsdCxzKXt0aGlzLl9pc0Nvbm5lY3RlZD1uZXcgYS5XYXRjaGVkVmFsdWUoITEpLHRoaXMuX3N0YXRlPTAsdGhpcy5faXNDb25uZWN0Rm9yYmlkZGVuPSExLHRoaXMuX3Nlc3Npb25JZD0iIix0aGlzLl9zZXNzaW9uSWRDaGFuZ2VkPW5ldyByLkRlbGVnYXRlLHRoaXMuX2NoYXJ0QXBpPWUsdGhpcy5fc2Vzc2lvblByZWZpeD10LHRoaXMuX3Nob3VsZFJlY29ubmVjdEFmdGVyQ3JpdGljYWxFcnJvcj1zfWRlc3Ryb3koKXt0aGlzLl9sb2dOb3JtYWwoIkRlc3Ryb3lpbmcgc2Vzc2lvbiIpLHRoaXMuX2lzQ29ubmVjdGVkLnVuc3Vic2NyaWJlKCksdGhpcy5kaXNjb25uZWN0KCksdGhpcy5fc2Vzc2lvbklkQ2hhbmdlZC5kZXN0cm95KCksZGVsZXRlIHRoaXMuX2NoYXJ0QXBpLHRoaXMuX2xvZ05vcm1hbCgiU2Vzc2lvbiBoYXMgYmVlbiBkZXN0cm95ZWQiKX1pc0Nvbm5lY3RlZCgpe3JldHVybiB0aGlzLl9pc0Nvbm5lY3RlZH1zZXNzaW9uSWQoKXtyZXR1cm4gdGhpcy5fc2Vzc2lvbklkfW9uU2Vzc2lvbklkQ2hhbmdlZCgpe3JldHVybiB0aGlzLl9zZXNzaW9uSWRDaGFuZ2VkfWNvbm5lY3QoKXswPT09dGhpcy5fc3RhdGUmJigoMCxpLmFzc2VydCkoIXRoaXMuX2lzQ29ubmVjdEZvcmJpZGRlbiwiQ2Fubm90IGNhbGwgY29ubmVjdCBiZWNhdXNlIGl0IGlzIGZvcmJpZGRlbiBhdCB0aGlzIG1vbWVudCIpLHRoaXMuX3NldFNlc3Npb25JZChgJHt0aGlzLl9zZXNzaW9uUHJlZml4fV8keygwLG4ucmFuZG9tSGFzaCkoKX1gKSx0aGlzLl9sb2dOb3JtYWwoIkNvbm5lY3Rpbmcgc2Vzc2lvbiAtIHdhaXQgdW50aWwgdHJhbnNwb3J0IHN0YXkgY29ubmVjdGVkIiksdGhpcy5fc3RhdGU9MSx0aGlzLl9jaGFydEFwaS5jcmVhdGVTZXNzaW9uKHRoaXMuX3Nlc3Npb25JZCx0aGlzKSl9ZGlzY29ubmVjdCgpezAhPT10aGlzLl9zdGF0ZSYmKCgwLGkuYXNzZXJ0KSgiIiE9PXRoaXMuX3Nlc3Npb25JZCwic2Vzc2lvbklkIG11c3Qgbm90IGJlIGludmFsaWQiKSx0aGlzLl9sb2dOb3JtYWwoIkRpc2Nvbm5lY3Rpbmcgc2Vzc2lvbi4uLiIpLHRoaXMuX2ZvcmJpZENvbm5lY3RXaGlsZSgoKCk9Pnt0aGlzLl9jaGFydEFwaS5jb25uZWN0ZWQoKSYmdGhpcy5fc2VuZFJlbW92ZVNlc3Npb24oKSx0aGlzLl9wcm9jZXNzRGVzdHJveWluZ09uU2VydmVyKCl9KSkpfW9uTWVzc2FnZShlKXtzd2l0Y2goZS5tZXRob2Qpe2Nhc2UiY29ubmVjdGVkIjpyZXR1cm4gdm9pZCB0aGlzLl9vbkNoYXJ0QXBpQ29ubmVjdGVkKCk7Y2FzZSJkaXNjb25uZWN0ZWQiOnJldHVybiB2b2lkIHRoaXMuX29uQ2hhcnRBcGlEaXNjb25uZWN0ZWQoKTtjYXNlImNyaXRpY2FsX2Vycm9yIjpjb25zdCB0PVN0cmluZyhlLnBhcmFtc1swXSkscz1TdHJpbmcoZS5wYXJhbXNbMV0pO3JldHVybiB2b2lkIHRoaXMuX29uQ3JpdGljYWxFcnJvcih0LHMpfXRoaXMuX29uTWVzc2FnZShlKX1zZXJ2ZXJUaW1lKCl7cmV0dXJuIHRoaXMuX2NoYXJ0QXBpLnNlcnZlclRpbWUoKX1fZ2V0Q2hhcnRBcGkoKXtyZXR1cm4gdGhpcy5fY2hhcnRBcGl9X2dlbmVyYXRlTG9nTWVzc2FnZShlKXtyZXR1cm5gWyR7dGhpcy5fc2Vzc2lvbklkfV0gJHtlfWB9X29uQ3JpdGljYWxFcnJvcihlLHQpe3RoaXMuX2xvZ0Vycm9yKGBDcml0aWNhbCBlcnJvci4gUmVhc29uPSR7ZX0sIGluZm89JHt0fS5gKSx0aGlzLl9mb3JiaWRDb25uZWN0V2hpbGUoKCgpPT57dGhpcy5fcHJvY2Vzc0Rlc3Ryb3lpbmdPblNlcnZlcigpfSkpLAp0aGlzLl9zaG91bGRSZWNvbm5lY3RBZnRlckNyaXRpY2FsRXJyb3I/KHRoaXMuX2xvZ05vcm1hbCgiUmVjb25uZWN0aW5nIGFmdGVyIGNyaXRpY2FsIGVycm9yLi4uIiksdGhpcy5jb25uZWN0KCkpOnRoaXMuX2xvZ05vcm1hbCgiUmVjb25uZWN0aW5nIGFmdGVyIGNyaXRpY2FsIGVycm9yIHNraXBwZWQiKX1fb25DaGFydEFwaUNvbm5lY3RlZCgpeygwLGkuYXNzZXJ0KSgxPT09dGhpcy5fc3RhdGUsIlNlc3Npb24gaXMgbm90IHJlZ2lzdGVyZWQiKSx0aGlzLl9sb2dOb3JtYWwoIlRyYW5zcG9ydCBpcyBjb25uZWN0ZWQuIENyZWF0aW5nIHNlc3Npb24gb24gdGhlIHNlcnZlciIpLHRoaXMuX3NlbmRDcmVhdGVTZXNzaW9uKCksdGhpcy5fc3RhdGU9Mix0aGlzLl9pc0Nvbm5lY3RlZC5zZXRWYWx1ZSghMCl9X29uQ2hhcnRBcGlEaXNjb25uZWN0ZWQoKXt0aGlzLl9sb2dOb3JtYWwoIlRyYW5zcG9ydCBpcyBkaXNjb25uZWN0ZWQuIFJlY29ubmVjdGluZy4uLiIpLHRoaXMuX2ZvcmJpZENvbm5lY3RXaGlsZSgoKCk9Pnt0aGlzLl9wcm9jZXNzRGVzdHJveWluZ09uU2VydmVyKCl9KSksdGhpcy5jb25uZWN0KCl9X3NldFNlc3Npb25JZChlKXtjb25zdCB0PXRoaXMuX3Nlc3Npb25JZDt0aGlzLl9sb2dOb3JtYWwoYENoYW5naW5nIHNlc3Npb25JZDogb2xkPSR7dH0sIG5ldz0ke2V9YCksdGhpcy5fc2Vzc2lvbklkPWUsdGhpcy5fc2Vzc2lvbklkQ2hhbmdlZC5maXJlKGUsdCl9X2xvZ05vcm1hbChlKXtkLmxvZ05vcm1hbCh0aGlzLl9nZW5lcmF0ZUxvZ01lc3NhZ2UoZSkpfV9sb2dFcnJvcihlKXtkLmxvZ0Vycm9yKHRoaXMuX2dlbmVyYXRlTG9nTWVzc2FnZShlKSl9X3Byb2Nlc3NEZXN0cm95aW5nT25TZXJ2ZXIoKXt0aGlzLl9zdGF0ZT0wLHRoaXMuX2lzQ29ubmVjdGVkLnNldFZhbHVlKCExKSx0aGlzLl9jaGFydEFwaS5yZW1vdmVTZXNzaW9uKHRoaXMuX3Nlc3Npb25JZCksdGhpcy5fc2V0U2Vzc2lvbklkKCIiKX1fZm9yYmlkQ29ubmVjdFdoaWxlKGUpe3RoaXMuX2lzQ29ubmVjdEZvcmJpZGRlbj0hMCxlKCksdGhpcy5faXNDb25uZWN0Rm9yYmlkZGVuPSExfX1jbGFzcyBjIGV4dGVuZHMgaHtjb25zdHJ1Y3RvcihlLHQ9ITEpe3N1cGVyKGUsImNzIiwhMSksdGhpcy5fc2Vzc2lvbkRpc2FibGVkPSExLHRoaXMuX2hhbmRsZXI9bnVsbCx0aGlzLl9jcml0aWNhbEVycm9yPW5ldyByLkRlbGVnYXRlLHRoaXMuX3N5bWJvbFJlc29sdmVNYXA9bmV3IE1hcCx0aGlzLl9sYXN0U3ltYm9sUmVzb2x2ZUluZm9NYXA9bmV3IE1hcCx0aGlzLl9kaXNhYmxlU3RhdGlzdGljcz10fWRlc3Ryb3koKXt0aGlzLl9jcml0aWNhbEVycm9yLmRlc3Ryb3koKSx0aGlzLl9oYW5kbGVyPW51bGwsdGhpcy5fc3ltYm9sUmVzb2x2ZU1hcC5jbGVhcigpLHN1cGVyLmRlc3Ryb3koKX1zd2l0Y2hUaW1lem9uZShlKXtyZXR1cm4gdGhpcy5fZ2V0Q2hhcnRBcGkoKS5zd2l0Y2hUaW1lem9uZSh0aGlzLnNlc3Npb25JZCgpLGUpfWRlZmF1bHRSZXNvbHV0aW9ucygpe3JldHVybiB0aGlzLl9nZXRDaGFydEFwaSgpLmRlZmF1bHRSZXNvbHV0aW9ucygpfWF2YWlsYWJsZUN1cnJlbmNpZXMoKXtyZXR1cm4gdGhpcy5fZ2V0Q2hhcnRBcGkoKS5hdmFpbGFibGVDdXJyZW5jaWVzKCl9YXZhaWxhYmxlVW5pdHMoKXtyZXR1cm4gdGhpcy5fZ2V0Q2hhcnRBcGkoKS5hdmFpbGFibGVVbml0cygpfWF2YWlsYWJsZU1ldHJpY3MoKXtyZXR1cm4gdGhpcy5fZ2V0Q2hhcnRBcGkoKS5hdmFpbGFibGVNZXRyaWNzKCl9YXZhaWxhYmxlUHJpY2VTb3VyY2VzKGUpe3JldHVybiB0aGlzLl9nZXRDaGFydEFwaSgpLmF2YWlsYWJsZVByaWNlU291cmNlcyhlKX1yZXNvbHZlU3ltYm9sKGUsdCxzKXtpZih0aGlzLl9zeW1ib2xSZXNvbHZlTWFwLmhhcyh0KSl7Y29uc3RbZSxyXT10aGlzLl9zeW1ib2xSZXNvbHZlTWFwLmdldCh0KTtyZXR1cm4gQXJyYXkuaXNBcnJheShyKT9yLnB1c2gocyk6ci50aGVuKHMpLGV9e2NvbnN0IHI9W3NdO3JldHVybiB0aGlzLl9nZXRDaGFydEFwaSgpLnJlc29sdmVTeW1ib2wodGhpcy5zZXNzaW9uSWQoKSxlLHQsKHM9PntpZigic3ltYm9sX2Vycm9yIj09PXMubWV0aG9kKXRoaXMuX3N5bWJvbFJlc29sdmVNYXAuZGVsZXRlKHQpO2Vsc2V7dGhpcy5fc3ltYm9sUmVzb2x2ZU1hcC5zZXQodCxbZSxQcm9taXNlLnJlc29sdmUocyldKTtjb25zdFsscl09cy5wYXJhbXMsaT17cHJvX25hbWU6ci5wcm9fbmFtZSx0aWNrZXI6ci50aWNrZXJ9O3RoaXMuX2xhc3RTeW1ib2xSZXNvbHZlSW5mb01hcC5zZXQodCxpKSxpLnByb19uYW1lJiZ0aGlzLl9sYXN0U3ltYm9sUmVzb2x2ZUluZm9NYXAuc2V0KGkucHJvX25hbWUsaSksci5mdWxsX25hbWUmJnRoaXMuX2xhc3RTeW1ib2xSZXNvbHZlSW5mb01hcC5zZXQoci5mdWxsX25hbWUsaSksaS50aWNrZXImJnRoaXMuX2xhc3RTeW1ib2xSZXNvbHZlSW5mb01hcC5zZXQoaS50aWNrZXIsaSl9ci5mb3JFYWNoKChlPT5lKHMpKSl9KSksdGhpcy5fc3ltYm9sUmVzb2x2ZU1hcC5zZXQodCxbZSxyXSksZX19cmVxdWVzdEZpcnN0QmFyVGltZShlLHQscyl7cmV0dXJuIHRoaXMuX2dldENoYXJ0QXBpKCkucmVxdWVzdEZpcnN0QmFyVGltZSh0aGlzLnNlc3Npb25JZCgpLGUsdCxzKX1sYXN0U3ltYm9sUmVzb2x2ZUluZm8oZSl7cmV0dXJuIHRoaXMuX2xhc3RTeW1ib2xSZXNvbHZlSW5mb01hcC5nZXQoZSk/P251bGx9Y3JlYXRlU2VyaWVzKGUsdCxzLHIsaSxhLG8pe3JldHVybiB0aGlzLl9nZXRDaGFydEFwaSgpLmNyZWF0ZVNlcmllcyh0aGlzLnNlc3Npb25JZCgpLGUsdCxzLHIsaSxhLG8pfW1vZGlmeVNlcmllcyhlLHQscyxyLGksYSxvKXtyZXR1cm4gdGhpcy5fZ2V0Q2hhcnRBcGkoKS5tb2RpZnlTZXJpZXModGhpcy5zZXNzaW9uSWQoKSxlLHQscyxyLGksYSxvKX1yZW1vdmVTZXJpZXMoZSl7cmV0dXJuISF0aGlzLmlzQ29ubmVjdGVkKCkudmFsdWUoKSYmdGhpcy5fZ2V0Q2hhcnRBcGkoKS5yZW1vdmVTZXJpZXModGhpcy5zZXNzaW9uSWQoKSxlKX1yZXF1ZXN0TW9yZURhdGEoZSx0LHMpewpyZXR1cm4ibnVtYmVyIj09dHlwZW9mIGU/dGhpcy5fZ2V0Q2hhcnRBcGkoKS5yZXF1ZXN0TW9yZURhdGEodGhpcy5zZXNzaW9uSWQoKSxlKTp0aGlzLl9nZXRDaGFydEFwaSgpLnJlcXVlc3RNb3JlRGF0YSh0aGlzLnNlc3Npb25JZCgpLGUsdCxzKX1yZXF1ZXN0TW9yZVRpY2ttYXJrcyhlLHQscyl7cmV0dXJuIHRoaXMuX2dldENoYXJ0QXBpKCkucmVxdWVzdE1vcmVUaWNrbWFya3ModGhpcy5zZXNzaW9uSWQoKSxlLHQscyl9c2V0RnV0dXJlVGlja21hcmtzTW9kZShlKXtyZXR1cm4gdGhpcy5fZ2V0Q2hhcnRBcGkoKS5zZXRGdXR1cmVUaWNrbWFya3NNb2RlKHRoaXMuc2Vzc2lvbklkKCksZSl9Y2FuQ3JlYXRlU3R1ZHkoZSx0KXtyZXR1cm4gdGhpcy5fZ2V0Q2hhcnRBcGkoKS5jYW5DcmVhdGVTdHVkeSh0aGlzLnNlc3Npb25JZCgpLGUsdCl9Z2V0U3R1ZHlDb3VudGVyKCl7cmV0dXJuIHRoaXMuX2dldENoYXJ0QXBpKCkuZ2V0U3R1ZHlDb3VudGVyKHRoaXMuc2Vzc2lvbklkKCkpfWdldEZ1bmRhbWVudGFsQ291bnRlcigpe3JldHVybiB0aGlzLl9nZXRDaGFydEFwaSgpLmdldEZ1bmRhbWVudGFsQ291bnRlcih0aGlzLnNlc3Npb25JZCgpKX1nZXRDaGlsZFN0dWR5Q291bnRlcigpe3JldHVybiB0aGlzLl9nZXRDaGFydEFwaSgpLmdldENoaWxkU3R1ZHlDb3VudGVyKHRoaXMuc2Vzc2lvbklkKCkpfWNyZWF0ZVN0dWR5KGUsdCxzLHIsaSxhLG8pe3JldHVybiB0aGlzLl9nZXRDaGFydEFwaSgpLmNyZWF0ZVN0dWR5KHRoaXMuc2Vzc2lvbklkKCksZSx0LHMscixpLGEsbyl9bW9kaWZ5U3R1ZHkoZSx0LHMscixpKXtyZXR1cm4gdGhpcy5fZ2V0Q2hhcnRBcGkoKS5tb2RpZnlTdHVkeSh0aGlzLnNlc3Npb25JZCgpLGUsdCxzLHIsaSl9bm90aWZ5U3R1ZHkoZSx0LHMpe3JldHVybiB0aGlzLl9nZXRDaGFydEFwaSgpLm5vdGlmeVN0dWR5KHRoaXMuc2Vzc2lvbklkKCksZSx0LHMpfXJlbW92ZVN0dWR5KGUpe3JldHVybiB0aGlzLl9nZXRDaGFydEFwaSgpLnJlbW92ZVN0dWR5KHRoaXMuc2Vzc2lvbklkKCksZSl9Y3JlYXRlUG9pbnRzZXQoZSx0LHMscixpLGEpe3JldHVybiB0aGlzLl9nZXRDaGFydEFwaSgpLmNyZWF0ZVBvaW50c2V0KHRoaXMuc2Vzc2lvbklkKCksZSx0LHMscixpLGEpfW1vZGlmeVBvaW50c2V0KGUsdCxzLHIpe3JldHVybiB0aGlzLl9nZXRDaGFydEFwaSgpLm1vZGlmeVBvaW50c2V0KHRoaXMuc2Vzc2lvbklkKCksZSx0LHMscil9cmVtb3ZlUG9pbnRzZXQoZSl7cmV0dXJuIHRoaXMuX2dldENoYXJ0QXBpKCkucmVtb3ZlUG9pbnRzZXQodGhpcy5zZXNzaW9uSWQoKSxlKX1zZXRWaXNpYmxlVGltZVJhbmdlKGUsdCxzLHIsaSxhLG8pe3RoaXMuX2dldENoYXJ0QXBpKCkuc2V0VmlzaWJsZVRpbWVSYW5nZSh0aGlzLnNlc3Npb25JZCgpLGUsdCxzLHIsITAsaSxhLHZvaWQgMCxvKX1jcml0aWNhbEVycm9yKCl7cmV0dXJuIHRoaXMuX2NyaXRpY2FsRXJyb3J9Y29ubmVjdChlPW51bGwpe251bGwhPT1lJiYodGhpcy5faGFuZGxlcj1lKSx0aGlzLl9zeW1ib2xSZXNvbHZlTWFwLmNsZWFyKCksc3VwZXIuY29ubmVjdCgpfXNldEhhbmRsZXIoZSl7dGhpcy5faGFuZGxlcj1lfWNvbm5lY3RlZCgpe3JldHVybiB0aGlzLmlzQ29ubmVjdGVkKCkudmFsdWUoKSYmIXRoaXMuX3Nlc3Npb25EaXNhYmxlZH1kaXNhYmxlKCl7dGhpcy5fc2Vzc2lvbkRpc2FibGVkPSEwfWNoYXJ0QXBpKCl7cmV0dXJuIHRoaXMuX2dldENoYXJ0QXBpKCl9X3NlbmRDcmVhdGVTZXNzaW9uKCl7T2JqZWN0LmtleXModGhpcykuZm9yRWFjaCgoZT0+ey9eKHN8c3R8c3ltYm9sXylcZCskLy50ZXN0KGUpJiZkZWxldGUgdGhpc1tlXX0pKSx0aGlzLl9nZXRDaGFydEFwaSgpLmNoYXJ0Q3JlYXRlU2Vzc2lvbih0aGlzLnNlc3Npb25JZCgpLHRoaXMuX2Rpc2FibGVTdGF0aXN0aWNzKX1fc2VuZFJlbW92ZVNlc3Npb24oKXt0aGlzLl9nZXRDaGFydEFwaSgpLmNoYXJ0RGVsZXRlU2Vzc2lvbih0aGlzLnNlc3Npb25JZCgpKX1fb25NZXNzYWdlKGUpe3RoaXMuX2hhbmRsZXImJnRoaXMuX2hhbmRsZXIoZSl9X29uQ3JpdGljYWxFcnJvcihlLHQpe3RoaXMuX2NyaXRpY2FsRXJyb3IuZmlyZShlLHQpLHN1cGVyLl9vbkNyaXRpY2FsRXJyb3IoZSx0KX19fSw0NzU0NzgoZSx0LHMpe3MuZCh0LHtDb25mbGF0ZWRDaHVua3NCdWlsZGVyOigpPT5vfSk7dmFyIHI9cygxMzg2MzgpLGk9cygxOTg5MDEpO2NvbnN0IGE9W3tiYXJzVG9NZXJnZToxMCxmb3JCYXJzcGFjaW5nTGFyZ2VyVGhlbjouMDN9LHtiYXJzVG9NZXJnZTozMCxmb3JCYXJzcGFjaW5nTGFyZ2VyVGhlbjouMDF9LHtiYXJzVG9NZXJnZToxMDAsZm9yQmFyc3BhY2luZ0xhcmdlclRoZW46LjAwM30se2JhcnNUb01lcmdlOjUwMCxmb3JCYXJzcGFjaW5nTGFyZ2VyVGhlbjowfV07Y2xhc3Mgb3tjb25zdHJ1Y3RvcihlLHQpe3RoaXMuX3Bsb3RzPWUsdGhpcy5fc3RhdGU9e2NodW5rczpuZXcgTWFwLHByaWNlU291cmNlOm51bGwscHJpY2VTb3VyY2VzUHJvdmlkZXI6dH0sdGhpcy5fc2V0RW1wdHlDb25mbGF0ZWRDaHVua3MoKX1jb25mbGF0ZWRDaHVua3MoZSx0KXtpZih0IT09dGhpcy5fc3RhdGUucHJpY2VTb3VyY2Upe3RoaXMuX3N0YXRlLnByaWNlU291cmNlPXQ7Y29uc3QgZT10aGlzLl9wbG90cy5maXJzdCgpO2UmJih0aGlzLl9zZXRFbXB0eUNvbmZsYXRlZENodW5rcygpLHRoaXMuX3JlYnVpbGRDb25mbGF0ZWRDaHVua3MoZSkpfWNvbnN0IHM9KDAsci5lbnN1cmVEZWZpbmVkKShhLmZpbmQoKHQ9PnQuZm9yQmFyc3BhY2luZ0xhcmdlclRoZW48PWUpKSk7cmV0dXJuKDAsci5lbnN1cmVEZWZpbmVkKSh0aGlzLl9zdGF0ZS5jaHVua3MuZ2V0KHMuYmFyc1RvTWVyZ2UpKX1tZXJnZURhdGEoZSl7Y29uc3QgdD10aGlzLl9wbG90cy5zaXplKCkscz10aGlzLl9wbG90cy5tZXJnZShlKTtyZXR1cm4gcyYmbnVsbCE9PXRoaXMuX3N0YXRlLnByaWNlU291cmNlJiYodD09PXRoaXMuX3Bsb3RzLnNpemUoKSYmcy5pbmRleD09PXRoaXMuX3Bsb3RzLmxhc3RJbmRleCgpP3RoaXMuX3VwZGF0ZUxhdGVzdENodW5rcygpOnRoaXMuX3JlYnVpbGRDb25mbGF0ZWRDaHVua3MocykpLHN9bW92ZURhdGEoZSl7CnRoaXMuX3Bsb3RzLm1vdmUoZSksdGhpcy5fcGxvdHMuc2l6ZSgpPjAmJnRoaXMuX2NsZWFyU3RhdGUoKX1jbGVhckRhdGEoKXt0aGlzLl9wbG90cy5jbGVhcigpLHRoaXMuX2NsZWFyU3RhdGUoKX1fcmVidWlsZENvbmZsYXRlZENodW5rcyhlKXtjb25zdCB0PXRoaXMuX3N0YXRlLnByaWNlU291cmNlO2lmKG51bGw9PT10KXJldHVybjtjb25zdCBzPWUuaW5kZXgsbz10aGlzLl9zdGF0ZS5wcmljZVNvdXJjZXNQcm92aWRlcih0KSxuPShlLHQscyk9PntsZXQgcj1udWxsO2Zvcihjb25zdCBpIG9mIGUpe2NvbnN0IGU9byhpLnZhbHVlKTtyJiZpLmluZGV4LXIuc3RhcnRUaW1lPj1zLmJhcnNUb01lcmdlJiYodC5wdXNoKHIpLHI9bnVsbCkscj8oci5lbmRUaW1lPWkuaW5kZXgsci5oaWdoPU1hdGgubWF4KHIuaGlnaCxlKSxyLmxvdz1NYXRoLm1pbihyLmxvdyxlKSxyLmNsb3NlPWUpOnI9e3N0YXJ0VGltZTppLmluZGV4LGVuZFRpbWU6aS5pbmRleCxvcGVuOmUsaGlnaDplLGxvdzplLGNsb3NlOmV9fXImJnQucHVzaChyKX07YS5mb3JFYWNoKChlPT57Y29uc3QgdD0oMCxyLmVuc3VyZURlZmluZWQpKHRoaXMuX3N0YXRlLmNodW5rcy5nZXQoZS5iYXJzVG9NZXJnZSkpLGE9KDAsaS5sb3dlcmJvdW5kKSh0LHMsKChlLHQpPT5lLmVuZFRpbWU8dCkpO2lmKDA9PT1hJiZ0Lmxlbmd0aD4wKXtjb25zdCBzPXRbMF0uc3RhcnRUaW1lLTEsaT0oMCxyLmVuc3VyZU5vdE51bGwpKHRoaXMuX3Bsb3RzLmZpcnN0SW5kZXgoKSksYT10aGlzLl9wbG90cy5yYW5nZUl0ZXJhdG9yKGkscyksbz1bXTtuKGEsbyxlKTtjb25zdCBkPW8uY29uY2F0KHQpO3RoaXMuX3N0YXRlLmNodW5rcy5zZXQoZS5iYXJzVG9NZXJnZSxkKX1lbHNle2NvbnN0IHM9KDAsci5lbnN1cmVOb3ROdWxsKSh0aGlzLl9wbG90cy5sYXN0SW5kZXgoKSk7dC5zcGxpY2UoYSk7bGV0IGk9KDAsci5lbnN1cmVOb3ROdWxsKSh0aGlzLl9wbG90cy5maXJzdEluZGV4KCkpO3QubGVuZ3RoJiYoaT10W3QubGVuZ3RoLTFdLmVuZFRpbWUrMSk7Y29uc3Qgbz10aGlzLl9wbG90cy5yYW5nZUl0ZXJhdG9yKGkscyk7bihvLHQsZSl9fSkpfV91cGRhdGVMYXRlc3RDaHVua3MoKXtjb25zdCBlPSgwLHIuZW5zdXJlTm90TnVsbCkodGhpcy5fcGxvdHMubGFzdCgpKSx0PXRoaXMuX3N0YXRlLnByaWNlU291cmNlc1Byb3ZpZGVyKCJjbG9zZSIpO2EuZm9yRWFjaCgocz0+e2NvbnN0IGk9KDAsci5lbnN1cmVEZWZpbmVkKSh0aGlzLl9zdGF0ZS5jaHVua3MuZ2V0KHMuYmFyc1RvTWVyZ2UpKSxhPXQoZS52YWx1ZSksbz1pW2kubGVuZ3RoLTFdO28uaGlnaD1NYXRoLm1heChvLmhpZ2gsYSksby5sb3c9TWF0aC5taW4oby5sb3csYSksby5jbG9zZT1hLG8uZW5kVGltZT1lLmluZGV4fSkpfV9zZXRFbXB0eUNvbmZsYXRlZENodW5rcygpe2EuZm9yRWFjaCgoZT0+dGhpcy5fc3RhdGUuY2h1bmtzLnNldChlLmJhcnNUb01lcmdlLFtdKSkpfV9jbGVhclN0YXRlKCl7dGhpcy5fc3RhdGUuY2h1bmtzLmNsZWFyKCksdGhpcy5fc3RhdGUucHJpY2VTb3VyY2U9bnVsbH19fSw5MzYzMjYoZSx0LHMpe3ZhciByO3MuZCh0LHtQbG90Um93U2VhcmNoTW9kZTooKT0+cn0pLGZ1bmN0aW9uKGUpe2VbZS5OZWFyZXN0TGVmdD0tMV09Ik5lYXJlc3RMZWZ0IixlW2UuRXhhY3Q9MF09IkV4YWN0IixlW2UuTmVhcmVzdFJpZ2h0PTFdPSJOZWFyZXN0UmlnaHQifShyfHwocj17fSkpfSw3OTE1MjEoZSx0LHMpe3ZhciByO3MuZCh0LHtTeW1ib2xFcnJvclBlcm1pc3Npb25EZW5pZWRSZWFzb246KCk9PnIsaW52YWxpZFN5bWJvbDooKT0+YSxwZXJtaXNzaW9uRGVuaWVkOigpPT5pfSksZnVuY3Rpb24oZSl7ZS5TeW1ib2w9InN5bWJvbCIsZS5Hcm91cFBlcm1pc3Npb249Imdyb3VwIn0ocnx8KHI9e30pKTtjb25zdCBpPSJwZXJtaXNzaW9uIGRlbmllZCIsYT0iaW52YWxpZCBzeW1ib2wifSw4NDg2MDEoZSx0LHMpe3MuZCh0LHtwYXJzZU5vblNlcmllc0VudmVsb3BlOigpPT5hfSk7dmFyIHI9cyg2MDE4NDEpLGk9cyg5OTU2NTUpO2Z1bmN0aW9uIGEoZSl7aWYoIiI9PT1lKXJldHVybiBudWxsO2NvbnN0IHQ9SlNPTi5wYXJzZShlKTtpZighKDAsci5pc09iamVjdCkodCl8fCJmdW5jdGlvbiI9PXR5cGVvZiB0KXRocm93IG5ldyBFcnJvcigiTm9uLW9iamVjdCBjb250ZW50IGluIHRoZSBub24tc2VyaWVzIGVudmVsb3BlIik7aWYoKDAsci5oYXNQcm9wZXJ0eSkodCwiaW5kZXhlc19yZXBsYWNlIikpcmV0dXJue25zRGF0YTp7aW5kZXhlc19yZXBsYWNlOiEwfSxwYXJzZWREYXRhOnR9O2NvbnN0IHM9e2luZGV4ZXNfcmVwbGFjZTohMX07aWYoKDAsci5oYXNQcm9wZXJ0eSkodCwib2Zmc2V0cyIpJiYocy5vZmZzZXRzPXQub2Zmc2V0cyksKDAsci5oYXNQcm9wZXJ0eSkodCwiaXNVcGRhdGUiKSl7aWYoImJvb2xlYW4iIT10eXBlb2YgdC5pc1VwZGF0ZSl0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgdHlwZSBvZiAiaXNVcGRhdGUiIGZpZWxkJyk7cy5pc1VwZGF0ZT10LmlzVXBkYXRlfXJldHVybigwLHIuaGFzUHJvcGVydHkpKHQsImRhdGEiKSYmKHMuZGF0YT10LmRhdGEpLCgwLHIuaGFzUHJvcGVydHkpKHQsImdyYXBoaWNzQ21kcyIpJiYocy5ncmFwaGljc0NtZHM9KDAsaS52YWxpZGF0ZUdyYXBoaWNzQ29tbWFuZHMpKHQuZ3JhcGhpY3NDbWRzKSkse25zRGF0YTpzLHBhcnNlZERhdGE6dH19fSw1NTA5MDQoZSx0LHMpe3MuZCh0LHt1bnBhY2tOb25TZXJpZXNEYXRhOigpPT5pfSk7dmFyIHI9cyg4NDg2MDEpO2FzeW5jIGZ1bmN0aW9uIGkoZSl7cmV0dXJuKDAsci5wYXJzZU5vblNlcmllc0VudmVsb3BlKShlKT8ubnNEYXRhPz9udWxsfX0sMTU2OTA4KGUsdCxzKXtzLmQodCx7REVGQVVMVF9OVU1CQVJTOigpPT5pLGluaXRpYWxSZXF1ZXN0T3B0aW9uc1RvTnVtQmFyczooKT0+YX0pO3ZhciByPXMoMTM4NjM4KTtjb25zdCBpPTMwMDtmdW5jdGlvbiBhKGUpe3JldHVybiBlLnN0YXJ0RGF0ZT9lLmVuZERhdGV8fGUuY291bnQ/ZS5lbmREYXRlP1siZnJvbV90byIsZS5zdGFydERhdGUsZS5lbmREYXRlXTpbImJhcl9jb3VudCIsZS5zdGFydERhdGUsKDAsCnIuZW5zdXJlKShlLmNvdW50KV06WyJmcm9tX3RvIixlLnN0YXJ0RGF0ZV06ZS5jb3VudHx8aX19LDg3MTAzNyhlLHQscyl7YXN5bmMgZnVuY3Rpb24gcihlLHQpe2lmKHZvaWQgMD09PWUpcmV0dXJue3Byb2plY3Rpb25QbG90czpbXSxib3hTaXplOm51bGx9O2lmKCIiPT09ZS5kfHwibm9jaGFuZ2UiPT09ZS5pbmRleGVzKXJldHVybiBudWxsO2NvbnN0IHM9YXdhaXQgdChlLmQpO2lmKG51bGw9PT1zfHxzLmluZGV4ZXNfcmVwbGFjZSlyZXR1cm4gbnVsbDtjb25zdCByPWUuaW5kZXhlcyx7YmFyczppPVtdLHByaWNlOmEsYm94U2l6ZTpvLHJldmVyc2FsQW1vdW50Om59PXMuZGF0YTtyZXR1cm57bGFzdFByaWNlOmEscHJvamVjdGlvblBsb3RzOmkubWFwKChlPT57bGV0IHQ7cmV0dXJuImZhY3RvciJpbiBlP3Q9ZS5mYWN0b3I6ImFkZGl0aW9uYWxQcmljZSJpbiBlJiYodD1lLmFkZGl0aW9uYWxQcmljZSkse2luZGV4OnJbZS50aW1lXSx2YWx1ZTpbMCxlLm9wZW4sZS5oaWdoLGUubG93LGUuY2xvc2UsZS52b2x1bWUsdF19fSkpLHJldmVyc2FsQW1vdW50Om4sYm94U2l6ZTpvfX1zLmQodCx7cGFyc2VKYXBhbmVzZVByb2plY3Rpb25CYXJzOigpPT5yfSl9LDkzNTI0MChlLHQscyl7cy5kKHQse1Nlcmllc0RhdGFTb3VyY2U6KCk9PkN9KTt2YXIgcj1zKDEzODYzOCksaT1zKDYwMTg0MSksYT1zKDIyMTA2MSksbz1zKDI1NDY3Myksbj1zKDYxOTE2NSksZD1zKDc5MTUyMSksbD1zKDU1MDkwNCksaD1zKDE1NjkwOCksYz1zKDExMTk1MyksdT1zKDk0ODM4MCk7Y2xhc3MgX3tjb25zdHJ1Y3Rvcigpe3RoaXMuX2NyZWF0ZWQ9bmV3IHUuRGVsZWdhdGUsdGhpcy5fbW9kaWZpZWQ9bmV3IHUuRGVsZWdhdGUsdGhpcy5fY2xlYXJlZD1uZXcgdS5EZWxlZ2F0ZSx0aGlzLl9sb2FkaW5nPW5ldyB1LkRlbGVnYXRlLHRoaXMuX2NvbXBsZXRlZD1uZXcgdS5EZWxlZ2F0ZSx0aGlzLl9lcnJvcj1uZXcgdS5EZWxlZ2F0ZSx0aGlzLl9zeW1ib2xFcnJvcj1uZXcgdS5EZWxlZ2F0ZSx0aGlzLl9zeW1ib2xSZXNvbHZlZD1uZXcgdS5EZWxlZ2F0ZSx0aGlzLl9zZXJpZXNFcnJvcj1uZXcgdS5EZWxlZ2F0ZSx0aGlzLl9zeW1ib2xOb3RQZXJtaXR0ZWQ9bmV3IHUuRGVsZWdhdGUsdGhpcy5fc3ltYm9sSW52YWxpZD1uZXcgdS5EZWxlZ2F0ZSx0aGlzLl9zeW1ib2xHcm91cE5vdFBlcm1pdHRlZD1uZXcgdS5EZWxlZ2F0ZSx0aGlzLl9jaGFydFR5cGVOb3RQZXJtaXR0ZWQ9bmV3IHUuRGVsZWdhdGUsdGhpcy5faW50cmFkYXlTcHJlYWROb3RQZXJtaXR0ZWQ9bmV3IHUuRGVsZWdhdGUsdGhpcy5faW50cmFkYXlFeGNoYW5nZU5vdFBlcm1pdHRlZD1uZXcgdS5EZWxlZ2F0ZSx0aGlzLl9jdXN0b21JbnRlcnZhbE5vdFBlcm1pdHRlZD1uZXcgdS5EZWxlZ2F0ZSx0aGlzLl9zZWNvbmRzSW50ZXJ2YWxOb3RQZXJtaXR0ZWQ9bmV3IHUuRGVsZWdhdGUsdGhpcy5fdGlja3NJbnRlcnZhbE5vdFBlcm1pdHRlZD1uZXcgdS5EZWxlZ2F0ZSx0aGlzLl9iYXJSZWNlaXZlZD1uZXcgdS5EZWxlZ2F0ZSx0aGlzLl9zZXJpZXNUaW1lRnJhbWU9bmV3IHUuRGVsZWdhdGUsdGhpcy5fZGF0YVVwZGF0ZWQ9bmV3IHUuRGVsZWdhdGUsdGhpcy5fdW5zdXBwb3J0ZWRSZXNvbHV0aW9uUmVxdWVzdGVkPW5ldyB1LkRlbGVnYXRlfWRlc3Ryb3koKXt0aGlzLl9jcmVhdGVkLmRlc3Ryb3koKSx0aGlzLl9tb2RpZmllZC5kZXN0cm95KCksdGhpcy5fbG9hZGluZy5kZXN0cm95KCksdGhpcy5fY29tcGxldGVkLmRlc3Ryb3koKSx0aGlzLl9lcnJvci5kZXN0cm95KCksdGhpcy5fc3ltYm9sRXJyb3IuZGVzdHJveSgpLHRoaXMuX3N5bWJvbFJlc29sdmVkLmRlc3Ryb3koKSx0aGlzLl9zZXJpZXNFcnJvci5kZXN0cm95KCksdGhpcy5fc3ltYm9sSW52YWxpZC5kZXN0cm95KCksdGhpcy5fc3ltYm9sTm90UGVybWl0dGVkLmRlc3Ryb3koKSx0aGlzLl9zeW1ib2xHcm91cE5vdFBlcm1pdHRlZC5kZXN0cm95KCksdGhpcy5fY2hhcnRUeXBlTm90UGVybWl0dGVkLmRlc3Ryb3koKSx0aGlzLl9pbnRyYWRheVNwcmVhZE5vdFBlcm1pdHRlZC5kZXN0cm95KCksdGhpcy5faW50cmFkYXlFeGNoYW5nZU5vdFBlcm1pdHRlZC5kZXN0cm95KCksdGhpcy5fY3VzdG9tSW50ZXJ2YWxOb3RQZXJtaXR0ZWQuZGVzdHJveSgpLHRoaXMuX3NlY29uZHNJbnRlcnZhbE5vdFBlcm1pdHRlZC5kZXN0cm95KCksdGhpcy5fdGlja3NJbnRlcnZhbE5vdFBlcm1pdHRlZC5kZXN0cm95KCksdGhpcy5fYmFyUmVjZWl2ZWQuZGVzdHJveSgpLHRoaXMuX3Nlcmllc1RpbWVGcmFtZS5kZXN0cm95KCksdGhpcy5fZGF0YVVwZGF0ZWQuZGVzdHJveSgpLHRoaXMuX3Vuc3VwcG9ydGVkUmVzb2x1dGlvblJlcXVlc3RlZC5kZXN0cm95KCl9Y3JlYXRlZCgpe3JldHVybiB0aGlzLl9jcmVhdGVkfW1vZGlmaWVkKCl7cmV0dXJuIHRoaXMuX21vZGlmaWVkfWNsZWFyZWQoKXtyZXR1cm4gdGhpcy5fY2xlYXJlZH1sb2FkaW5nKCl7cmV0dXJuIHRoaXMuX2xvYWRpbmd9Y29tcGxldGVkKCl7cmV0dXJuIHRoaXMuX2NvbXBsZXRlZH1lcnJvcigpe3JldHVybiB0aGlzLl9lcnJvcn1zeW1ib2xFcnJvcigpe3JldHVybiB0aGlzLl9zeW1ib2xFcnJvcn1zeW1ib2xSZXNvbHZlZCgpe3JldHVybiB0aGlzLl9zeW1ib2xSZXNvbHZlZH1zZXJpZXNFcnJvcigpe3JldHVybiB0aGlzLl9zZXJpZXNFcnJvcn1zeW1ib2xJbnZhbGlkKCl7cmV0dXJuIHRoaXMuX3N5bWJvbEludmFsaWR9c3ltYm9sTm90UGVybWl0dGVkKCl7cmV0dXJuIHRoaXMuX3N5bWJvbE5vdFBlcm1pdHRlZH1zeW1ib2xHcm91cE5vdFBlcm1pdHRlZCgpe3JldHVybiB0aGlzLl9zeW1ib2xHcm91cE5vdFBlcm1pdHRlZH1jaGFydFR5cGVOb3RQZXJtaXR0ZWQoKXtyZXR1cm4gdGhpcy5fY2hhcnRUeXBlTm90UGVybWl0dGVkfWludHJhZGF5U3ByZWFkTm90UGVybWl0dGVkKCl7cmV0dXJuIHRoaXMuX2ludHJhZGF5U3ByZWFkTm90UGVybWl0dGVkfWludHJhZGF5RXhjaGFuZ2VOb3RQZXJtaXR0ZWQoKXtyZXR1cm4gdGhpcy5faW50cmFkYXlFeGNoYW5nZU5vdFBlcm1pdHRlZH1jdXN0b21JbnRlcnZhbE5vdFBlcm1pdHRlZCgpewpyZXR1cm4gdGhpcy5fY3VzdG9tSW50ZXJ2YWxOb3RQZXJtaXR0ZWR9c2Vjb25kc0ludGVydmFsTm90UGVybWl0dGVkKCl7cmV0dXJuIHRoaXMuX3NlY29uZHNJbnRlcnZhbE5vdFBlcm1pdHRlZH10aWNrc0ludGVydmFsTm90UGVybWl0dGVkKCl7cmV0dXJuIHRoaXMuX3RpY2tzSW50ZXJ2YWxOb3RQZXJtaXR0ZWR9YmFyUmVjZWl2ZWQoKXtyZXR1cm4gdGhpcy5fYmFyUmVjZWl2ZWR9c2VyaWVzVGltZUZyYW1lKCl7cmV0dXJuIHRoaXMuX3Nlcmllc1RpbWVGcmFtZX1kYXRhVXBkYXRlZCgpe3JldHVybiB0aGlzLl9kYXRhVXBkYXRlZH11bnN1cHBvcnRlZFJlc29sdXRpb25SZXF1ZXN0ZWQoKXtyZXR1cm4gdGhpcy5fdW5zdXBwb3J0ZWRSZXNvbHV0aW9uUmVxdWVzdGVkfWZpcmVDb21wbGV0ZWQoZSl7dGhpcy5fY29tcGxldGVkLmZpcmUoZSl9ZmlyZUNyZWF0ZWQoZSl7dGhpcy5fY3JlYXRlZC5maXJlKGUpfWZpcmVNb2RpZmllZCgpe3RoaXMuX21vZGlmaWVkLmZpcmUoKX1maXJlQ2xlYXJlZCgpe3RoaXMuX2NsZWFyZWQuZmlyZSgpfWZpcmVMb2FkaW5nKGUpe3RoaXMuX2xvYWRpbmcuZmlyZShlKX1maXJlRXJyb3IoKXt0aGlzLl9lcnJvci5maXJlKCl9ZmlyZVN5bWJvbEVycm9yKGUpe3RoaXMuX3N5bWJvbEVycm9yLmZpcmUoZSksdGhpcy5maXJlRXJyb3IoKX1maXJlU3ltYm9sUmVzb2x2ZWQoZSl7dGhpcy5fc3ltYm9sUmVzb2x2ZWQuZmlyZShlKX1maXJlU2VyaWVzRXJyb3IoZSl7dGhpcy5fc2VyaWVzRXJyb3IuZmlyZShlKSx0aGlzLmZpcmVFcnJvcigpfWZpcmVTeW1ib2xJbnZhbGlkKCl7dGhpcy5fc3ltYm9sSW52YWxpZC5maXJlKCl9ZmlyZVN5bWJvbE5vdFBlcm1pdHRlZChlKXt0aGlzLl9zeW1ib2xOb3RQZXJtaXR0ZWQuZmlyZShlKX1maXJlU3ltYm9sR3JvdXBOb3RQZXJtaXR0ZWQoZSl7dGhpcy5fc3ltYm9sR3JvdXBOb3RQZXJtaXR0ZWQuZmlyZShlKX1maXJlQ2hhcnRUeXBlTm90UGVybWl0dGVkKGUpe3RoaXMuX2NoYXJ0VHlwZU5vdFBlcm1pdHRlZC5maXJlKGUpLHRoaXMuZmlyZUVycm9yKCl9ZmlyZUludHJhZGF5U3ByZWFkTm90UGVybWl0dGVkKCl7dGhpcy5faW50cmFkYXlTcHJlYWROb3RQZXJtaXR0ZWQuZmlyZSgpLHRoaXMuZmlyZUVycm9yKCl9ZmlyZUludHJhZGF5RXhjaGFuZ2VOb3RQZXJtaXR0ZWQoKXt0aGlzLl9pbnRyYWRheUV4Y2hhbmdlTm90UGVybWl0dGVkLmZpcmUoKSx0aGlzLmZpcmVFcnJvcigpfWZpcmVDdXN0b21JbnRlcnZhbE5vdFBlcm1pdHRlZChlKXt0aGlzLl9jdXN0b21JbnRlcnZhbE5vdFBlcm1pdHRlZC5maXJlKGUpLHRoaXMuZmlyZUVycm9yKCl9ZmlyZVNlY29uZHNJbnRlcnZhbE5vdFBlcm1pdHRlZCgpe3RoaXMuX3NlY29uZHNJbnRlcnZhbE5vdFBlcm1pdHRlZC5maXJlKCksdGhpcy5maXJlRXJyb3IoKX1maXJlVGlja3NJbnRlcnZhbE5vdFBlcm1pdHRlZCgpe3RoaXMuX3RpY2tzSW50ZXJ2YWxOb3RQZXJtaXR0ZWQuZmlyZSgpLHRoaXMuZmlyZUVycm9yKCl9ZmlyZUJhclJlY2VpdmVkKGUpe3RoaXMuX2JhclJlY2VpdmVkLmZpcmUoZSl9ZmlyZVNlcmllc1RpbWVGcmFtZShlLHQscyxyLGkpe3RoaXMuX3Nlcmllc1RpbWVGcmFtZS5maXJlKGUsdCxzLHIsaSl9ZmlyZURhdGFVcGRhdGVkKGUsdCxzLHIsaSl7dGhpcy5fZGF0YVVwZGF0ZWQuZmlyZShlLHQscyxyLGkpfWZpcmVVbnN1cHBvcnRlZFJlc29sdXRpb25SZXF1ZXN0ZWQoKXt0aGlzLl91bnN1cHBvcnRlZFJlc29sdXRpb25SZXF1ZXN0ZWQuZmlyZSgpfX12YXIgbT1zKDg3MTAzNykscD1zKDg1Mjk4MCkseT1zKDMyMjU1NCk7Y29uc3QgZz0veyhcdyspfS9nO2NvbnN0IGI9KDAsYS5nZXRMb2dnZXIpKCJDaGFydC5TZXJpZXNEYXRhU291cmNlIik7dmFyIGY7IWZ1bmN0aW9uKGUpe2VbZS5JZGxlPTBdPSJJZGxlIixlW2UuQXdhaXRpbmdDb25uZWN0aW9uPTFdPSJBd2FpdGluZ0Nvbm5lY3Rpb24iLGVbZS5Bd2FpdGluZ0ZpcnN0RGF0YVVwZGF0ZT0yXT0iQXdhaXRpbmdGaXJzdERhdGFVcGRhdGUiLGVbZS5BY3RpdmU9M109IkFjdGl2ZSJ9KGZ8fChmPXt9KSk7bGV0IFM9MTtsZXQgdj0xO2Z1bmN0aW9uIEkoZSl7cmV0dXJuKDAsYy5leHRyYWN0RXh0ZW5kZWRTeW1ib2wpKGUpLnN5bWJvbH1jbGFzcyBDe2NvbnN0cnVjdG9yKGUsdCxzLHIpe3RoaXMuX2V4dFN5bWJvbD1udWxsLHRoaXMuX2xhc3RSZXNvbHZlZFN5bWJvbD0iIix0aGlzLl9jcmVhdGVTZXJpZXNPdmVycmlkZGVuUGFyYW1zPTAsdGhpcy5faW5zdGFuY2VJZD1udWxsLHRoaXMuX3N5bWJvbEluc3RhbmNlSWQ9bnVsbCx0aGlzLl9yZXNvbHV0aW9uPW51bGwsdGhpcy5fdGltZUZyYW1lPW51bGwsdGhpcy5fZGF0YT1uZXcgbi5TZXJpZXNEYXRhLHRoaXMuX2RhdGFFdmVudHM9bmV3IF8sdGhpcy5fc3RhdHVzPWYuSWRsZSx0aGlzLl90dXJuYXJvdW5kQ291bnRlcj0xLHRoaXMuX2JvdW5kT25HYXRld2F5SXNDb25uZWN0ZWRDaGFuZ2VkPXRoaXMuX29uR2F0ZXdheUlzQ29ubmVjdGVkQ2hhbmdlZC5iaW5kKHRoaXMpLHRoaXMuX2JvdW5kT25NZXNzYWdlPXRoaXMuX29uTWVzc2FnZS5iaW5kKHRoaXMpLHRoaXMuX29uZ29pbmdEYXRhVXBkYXRlPVByb21pc2UucmVzb2x2ZSgpLHRoaXMuX2dhdGV3YXk9ZSx0aGlzLl90dXJuYXJvdW5kUHJlZml4PXQsdGhpcy5fY3JlYXRlU2VyaWVzUGFyYW1zPSgwLGguaW5pdGlhbFJlcXVlc3RPcHRpb25zVG9OdW1CYXJzKShzPz97Y291bnQ6aC5ERUZBVUxUX05VTUJBUlN9KSx0aGlzLl90aW1lRnJhbWU9cnx8bnVsbCx0aGlzLl9nYXRld2F5LmlzQ29ubmVjdGVkKCkuc3Vic2NyaWJlKHRoaXMuX2JvdW5kT25HYXRld2F5SXNDb25uZWN0ZWRDaGFuZ2VkKX1kZXN0cm95KCl7dGhpcy5zdG9wKCksdGhpcy5fZ2F0ZXdheS5pc0Nvbm5lY3RlZCgpLnVuc3Vic2NyaWJlKHRoaXMuX2JvdW5kT25HYXRld2F5SXNDb25uZWN0ZWRDaGFuZ2VkKSx0aGlzLl9kYXRhRXZlbnRzLmRlc3Ryb3koKX1jYW5Nb2RpZnlTZXJpZXMoZSx0KXtjb25zdCBzPSEoMCwKaS5kZWVwRXF1YWxzKSh0aGlzLl9leHRTeW1ib2wsZSlbMF0scj1udWxsPT09dGhpcy5fcmVzb2x1dGlvbnx8IW8uSW50ZXJ2YWwuaXNFcXVhbCh0aGlzLl9yZXNvbHV0aW9uLHQpO3JldHVybiBzfHxyfW1vZGlmeVNlcmllcyhlLHQscz1udWxsLGE9ITEsbj1udWxsKXthJiYoYi5sb2dOb3JtYWwoIkR1ZSB0byBmb3JjZSBmbGFnIGNsZWFyaW5nIHN5bWJvbCAmIHJlc29sdXRpb24gdG8gZm9yY2UgcmUtcmVxdWVzdGluZyBkYXRhLiIpLHRoaXMuX2V4dFN5bWJvbD1udWxsLHRoaXMuX3Jlc29sdXRpb249bnVsbCk7Y29uc3QgZD1JKGUpLGw9IXRoaXMuc3ltYm9sU2FtZUFzUmVzb2x2ZWQoZCk7aWYobCYmKHRoaXMuX2xhc3RSZXNvbHZlZFN5bWJvbD0iIiksdGhpcy5fZXh0U3ltYm9sJiYhbCl7Y29uc3QgdD1JKHRoaXMuX2V4dFN5bWJvbCk7KDAsYy5yZXBsYWNlRXh0ZW5kZWRTeW1ib2wpKGUsdCl9Y29uc3QgaD10aGlzLl9leHRTeW1ib2wsdT10aGlzLl9yZXNvbHV0aW9uO2lmKHRoaXMuX2V4dFN5bWJvbD1lLHRoaXMuX3Jlc29sdXRpb249dCxudWxsPT09dGhpcy5faW5zdGFuY2VJZClyZXR1cm4gdm9pZCh0aGlzLl90aW1lRnJhbWU9cyk7Y29uc3QgXz0hKDAsaS5kZWVwRXF1YWxzKShoLGUpWzBdO18mJigwLGMucmVwbGFjZUV4dGVuZGVkU3ltYm9sKSh0aGlzLl9leHRTeW1ib2wsZCk7Y29uc3QgbT1udWxsPT09dXx8IW8uSW50ZXJ2YWwuaXNFcXVhbCh1LHQpOyhffHxtfHxudWxsIT09cykmJih0aGlzLl90aW1lRnJhbWU9bnVsbCwoX3x8bSkmJnRoaXMuX3R1cm5hcm91bmRDb3VudGVyKyssXyYmdGhpcy5fcmVzb2x2ZVN5bWJvbCgpLHRoaXMuX2dhdGV3YXkubW9kaWZ5U2VyaWVzKHRoaXMuX2luc3RhbmNlSWQsdGhpcy50dXJuYXJvdW5kKCksKDAsci5lbnN1cmVOb3ROdWxsKSh0aGlzLl9zeW1ib2xJbnN0YW5jZUlkKSx0aGlzLl9yZXNvbHV0aW9uLG4scyx0aGlzLl9ib3VuZE9uTWVzc2FnZSksdGhpcy5fZGF0YUV2ZW50cy5maXJlTW9kaWZpZWQoKSl9cmVxdWVzdE1vcmVEYXRhKGUpe251bGwhPT10aGlzLl9pbnN0YW5jZUlkJiZ0aGlzLl9nYXRld2F5LnJlcXVlc3RNb3JlRGF0YSh0aGlzLl9pbnN0YW5jZUlkLGUsdGhpcy5fYm91bmRPbk1lc3NhZ2UpfXJlcXVlc3RNb3JlVGlja21hcmtzKGUpe251bGwhPT10aGlzLl9pbnN0YW5jZUlkJiZ0aGlzLl9nYXRld2F5LnJlcXVlc3RNb3JlVGlja21hcmtzKHRoaXMuX2luc3RhbmNlSWQsZSx0aGlzLl9ib3VuZE9uTWVzc2FnZSl9c2V0RnV0dXJlVGlja21hcmtzTW9kZShlKXtudWxsIT09dGhpcy5faW5zdGFuY2VJZCYmdGhpcy5fZ2F0ZXdheS5zZXRGdXR1cmVUaWNrbWFya3NNb2RlKGUpfWlzU3RhcnRlZCgpe3JldHVybiB0aGlzLl9zdGF0dXMhPT1mLklkbGV9aXNBY3RpdmUoKXtyZXR1cm4gdGhpcy5fc3RhdHVzPT09Zi5BY3RpdmV9cmVzb2x1dGlvbigpe3JldHVybiB0aGlzLl9yZXNvbHV0aW9ufXN0YXJ0KCl7dGhpcy5pc1N0YXJ0ZWQoKT9iLmxvZ05vcm1hbCgic3RhcnQ6IGRhdGEgc291cmNlIGlzIGFscmVhZHkgc3RhcnRlZCwgbm90aGluZyB0byBkbyIpOigoMCxyLmFzc2VydCkobnVsbCE9PXRoaXMuX2V4dFN5bWJvbCwic3ltYm9sIG11c3QgYmUgc2V0IGJlZm9yZSBzdGFydCIpLCgwLHIuYXNzZXJ0KShudWxsIT09dGhpcy5fcmVzb2x1dGlvbiwicmVzb2x1dGlvbiBtdXN0IGJlIHNldCBiZWZvcmUgc3RhcnQiKSx0aGlzLl9nYXRld2F5LmlzQ29ubmVjdGVkKCkudmFsdWUoKT90aGlzLl9jcmVhdGVTZXJpZXMoKTp0aGlzLl9jaGFuZ2VTdGF0dXNUbyhmLkF3YWl0aW5nQ29ubmVjdGlvbikpfXN0b3AoKXt0aGlzLmlzU3RhcnRlZCgpPyhudWxsIT09dGhpcy5faW5zdGFuY2VJZCYmKHRoaXMuX2dhdGV3YXkucmVtb3ZlU2VyaWVzKHRoaXMuX2luc3RhbmNlSWQpLHRoaXMuX2luc3RhbmNlSWQ9bnVsbCksdGhpcy5fc3ltYm9sSW5zdGFuY2VJZD1udWxsLHRoaXMuX2NoYW5nZVN0YXR1c1RvKGYuSWRsZSkpOmIubG9nTm9ybWFsKCJzdG9wOiBkYXRhIHNvdXJjZSBpcyBhbHJlYWR5IHN0b3BwZWQsIG5vdGhpbmcgdG8gZG8iKX1pbnN0YW5jZUlkKCl7cmV0dXJuIHRoaXMuX2luc3RhbmNlSWR9ZGF0YSgpe3JldHVybiB0aGlzLl9kYXRhfXNldERhdGEoZSl7dGhpcy5fZGF0YT1lfXNldFRpbWVmcmFtZShlKXt0aGlzLl90aW1lRnJhbWU9ZX1jbGVhckRhdGEoKXt0aGlzLmlzU3RhcnRlZCgpP3RoaXMuX2VucXVldWVVcGRhdGUoKCgpPT50aGlzLl9jbGVhckRhdGFJbXBsKCkpKTp0aGlzLl9jbGVhckRhdGFJbXBsKCl9ZGF0YUV2ZW50cygpe3JldHVybiB0aGlzLl9kYXRhRXZlbnRzfXR1cm5hcm91bmQoKXtyZXR1cm5gJHt0aGlzLl90dXJuYXJvdW5kUHJlZml4fSR7dGhpcy5fdHVybmFyb3VuZENvdW50ZXJ9YH1zeW1ib2xJbnN0YW5jZUlkKCl7cmV0dXJuIHRoaXMuX3N5bWJvbEluc3RhbmNlSWR9c3ltYm9sKCl7cmV0dXJuIHRoaXMuX2V4dFN5bWJvbH11cGRhdGVFeHRTeW1ib2woZSl7dGhpcy5fZXh0U3ltYm9sPWV9bW92ZURhdGEoZSl7cmV0dXJuIHRoaXMuX2VucXVldWVVcGRhdGUoKCgpPT50aGlzLl9kYXRhLm1vdmVEYXRhKGUpKSl9c2V0SW5pdGlhbFJlcXVlc3RPcHRpb25zKGUpe3RoaXMuX2NyZWF0ZVNlcmllc092ZXJyaWRkZW5QYXJhbXM9KDAsaC5pbml0aWFsUmVxdWVzdE9wdGlvbnNUb051bUJhcnMpKGUpfXN5bWJvbFNhbWVBc1Jlc29sdmVkKGUpe3JldHVybiBudWxsIT09dGhpcy5fZXh0U3ltYm9sJiYoMCx5LnN5bWJvbFNhbWVBc1Jlc29sdmVkKShlLEkodGhpcy5fZXh0U3ltYm9sKSx0aGlzLl9sYXN0UmVzb2x2ZWRTeW1ib2wpfXJlc29sdmVkU3ltYm9sKCl7cmV0dXJuIG51bGw9PT10aGlzLl9leHRTeW1ib2w/bnVsbDpJKHRoaXMuX2V4dFN5bWJvbCl9c3RhdGljIHNldE5vblNlcmllc0RhdGFVbnBhY2tlcihlKXtDLl9ub25TZXJpZXNEYXRhVW5wYWNrZXI9ZX1zdGF0aWMgc2V0U3ltYm9sRW5jb2RlcihlKXtDLl9lbmNvZGVTeW1ib2w9ZX1zdGF0aWMgc2V0RXh0cmFjdFN5bWJvbEZlYXR1cmVzZXRzKGUpe0MuX2V4dHJhY3RTeW1ib2xOYW1lRmVhdHVyZXNldHM9ZX1fcmVzb2x2ZVN5bWJvbCgpewpudWxsIT09dGhpcy5fZXh0U3ltYm9sJiYodGhpcy5fc3ltYm9sSW5zdGFuY2VJZD10aGlzLl9nYXRld2F5LnJlc29sdmVTeW1ib2woInNkc19zeW1fIitTKyssQy5fZW5jb2RlU3ltYm9sKHRoaXMuX2V4dFN5bWJvbCksdGhpcy5fYm91bmRPbk1lc3NhZ2UpKX1fY2xlYXJEYXRhSW1wbCgpe3RoaXMuX2RhdGEuY2xlYXIoKSx0aGlzLl9kYXRhRXZlbnRzLmZpcmVDbGVhcmVkKCl9X2NoYW5nZVN0YXR1c1RvKGUpeygwLHIuYXNzZXJ0KSh0aGlzLl9zdGF0dXMhPT1lLCJTb3VyY2UgYW5kIGRlc3RpbmF0aW9uIHN0YXR1cyBzaG91bGQgYmUgZGlzdGluY3QiKSxiLmxvZ05vcm1hbChgU3RhdHVzIGNoYW5nZWQgZnJvbSAke2ZbdGhpcy5fc3RhdHVzXX0gdG8gJHtmW2VdfWApLHRoaXMuX3N0YXR1cz1lfV9jcmVhdGVTZXJpZXMoKXsoMCxyLmFzc2VydCkodGhpcy5fc3RhdHVzIT09Zi5BY3RpdmUsJ1N0YXR1cyBzaG91bGQgbm90IGJlICJBY3RpdmUiIHdoZW4gY3JlYXRpbmcgYSBzdHVkeScpLHRoaXMuX2luc3RhbmNlSWQ9InNkc18iK3YrKyx0aGlzLl9yZXNvbHZlU3ltYm9sKCk7Y29uc3QgZT10aGlzLl9jcmVhdGVTZXJpZXNPdmVycmlkZGVuUGFyYW1zfHx0aGlzLl9jcmVhdGVTZXJpZXNQYXJhbXM7dGhpcy5fY3JlYXRlU2VyaWVzT3ZlcnJpZGRlblBhcmFtcyYmKHRoaXMuX2NyZWF0ZVNlcmllc092ZXJyaWRkZW5QYXJhbXM9MCksdGhpcy5fZ2F0ZXdheS5jcmVhdGVTZXJpZXModGhpcy5faW5zdGFuY2VJZCx0aGlzLnR1cm5hcm91bmQoKSwoMCxyLmVuc3VyZU5vdE51bGwpKHRoaXMuX3N5bWJvbEluc3RhbmNlSWQpLCgwLHIuZW5zdXJlTm90TnVsbCkodGhpcy5fcmVzb2x1dGlvbiksZSx0aGlzLl90aW1lRnJhbWUsdGhpcy5fYm91bmRPbk1lc3NhZ2UpLHRoaXMuX3RpbWVGcmFtZT1udWxsLHRoaXMuX2NoYW5nZVN0YXR1c1RvKGYuQXdhaXRpbmdGaXJzdERhdGFVcGRhdGUpLHRoaXMuX2RhdGFFdmVudHMuZmlyZUNyZWF0ZWQodGhpcy5faW5zdGFuY2VJZCl9X29uR2F0ZXdheUlzQ29ubmVjdGVkQ2hhbmdlZChlKXtlP3RoaXMuX29uR2F0ZXdheUNvbm5lY3RlZCgpOnRoaXMuX29uR2F0ZXdheURpc2Nvbm5lY3RlZCgpfV9vbkdhdGV3YXlDb25uZWN0ZWQoKXt0aGlzLl9zdGF0dXM9PT1mLkF3YWl0aW5nQ29ubmVjdGlvbiYmdGhpcy5fY3JlYXRlU2VyaWVzKCl9X29uR2F0ZXdheURpc2Nvbm5lY3RlZCgpe3RoaXMuX3N0YXR1cyE9PWYuSWRsZSYmdGhpcy5fc3RhdHVzIT09Zi5Bd2FpdGluZ0Nvbm5lY3Rpb24mJih0aGlzLl9pbnN0YW5jZUlkPW51bGwsdGhpcy5fY2hhbmdlU3RhdHVzVG8oZi5Bd2FpdGluZ0Nvbm5lY3Rpb24pKSx0aGlzLl90dXJuYXJvdW5kQ291bnRlcj0xfV9vbk1lc3NhZ2UoZSl7dGhpcy5fZW5xdWV1ZVVwZGF0ZSgoKCk9PnRoaXMuX29uTWVzc2FnZUltcGwoZSkpKX1hc3luYyBfb25NZXNzYWdlSW1wbChlKXtzd2l0Y2goZS5tZXRob2Qpe2Nhc2Uic3ltYm9sX3Jlc29sdmVkIjp7Y29uc3RbdCxzXT1lLnBhcmFtcztpZih0IT09dGhpcy5fc3ltYm9sSW5zdGFuY2VJZCl7bnVsbCE9PXRoaXMuX3N5bWJvbEluc3RhbmNlSWQmJmIubG9nTm9ybWFsKGBSZXNvbHZlIGZvciBvbGQgc3ltYm9sLCBleHBlY3RlZDogJHt0aGlzLl9zeW1ib2xJbnN0YW5jZUlkfSwgYWN0dWFsICR7ZS5wYXJhbXNbMF19YCk7YnJlYWt9dGhpcy5fb25TeW1ib2xSZXNvbHZlZChzKTticmVha31jYXNlInN5bWJvbF9lcnJvciI6aWYoZS5wYXJhbXNbMF0hPT10aGlzLl9zeW1ib2xJbnN0YW5jZUlkKXtudWxsIT09dGhpcy5fc3ltYm9sSW5zdGFuY2VJZCYmYi5sb2dOb3JtYWwoYFN5bWJvbCBlcnJvciBmb3Igb2xkIHN5bWJvbCwgZXhwZWN0ZWQ6ICR7dGhpcy5fc3ltYm9sSW5zdGFuY2VJZH0sIGFjdHVhbCAke2UucGFyYW1zWzBdfWApO2JyZWFrfXRoaXMuX29uU3ltYm9sRXJyb3IoZSk7YnJlYWs7Y2FzZSJzZXJpZXNfdGltZWZyYW1lIjp7Y29uc3RbdCxzLHIsaSxhLG8sbl09ZS5wYXJhbXM7aWYoIXRoaXMuX2NoZWNrVHVybmFyb3VuZCh0LHMpKXtiLmxvZ05vcm1hbChgVGltZSBmcmFtZSBmb3Igb2xkIGRhdGEsIGV4cGVjdGVkOiAke3RoaXMuX3N5bWJvbEluc3RhbmNlSWR9ICgke3RoaXMudHVybmFyb3VuZCgpfSksIGFjdHVhbCAke3R9ICgke3N9KWApO2JyZWFrfXRoaXMuX29uU2VyaWVzVGltZUZyYW1lKHIsaSxhLG8sbik7YnJlYWt9Y2FzZSJzZXJpZXNfZXJyb3IiOntjb25zdFt0LHNdPWUucGFyYW1zO2lmKCF0aGlzLl9jaGVja1R1cm5hcm91bmQodCxzKSl7Yi5sb2dOb3JtYWwoYFNlcmllcyBlcnJvciBmb3Igb2xkIGRhdGEsIGV4cGVjdGVkOiAke3RoaXMuX3N5bWJvbEluc3RhbmNlSWR9ICgke3RoaXMudHVybmFyb3VuZCgpfSksIGFjdHVhbCAke3R9ICgke3N9KWApO2JyZWFrfXRoaXMuX29uU2VyaWVzRXJyb3IoZS5wYXJhbXNbMl0pO2JyZWFrfWNhc2Uic2VyaWVzX2xvYWRpbmciOntjb25zdFt0LHNdPWUucGFyYW1zO2lmKCF0aGlzLl9jaGVja1R1cm5hcm91bmQodCxzKSlicmVhazt0aGlzLl9vblNlcmllc0xvYWRpbmcoZS50aW1lKTticmVha31jYXNlInNlcmllc19jb21wbGV0ZWQiOntjb25zdFt0LHMscixpXT1lLnBhcmFtcztpZighdGhpcy5fY2hlY2tUdXJuYXJvdW5kKHQscikpe2IubG9nTm9ybWFsKGBTZXJpZXMgY29tcGxldGVkIGZvciBvbGQgZGF0YSwgZXhwZWN0ZWQ6ICR7dGhpcy5fc3ltYm9sSW5zdGFuY2VJZH0gKCR7dGhpcy50dXJuYXJvdW5kKCl9KSwgYWN0dWFsICR7dH0gKCR7cn0pYCk7YnJlYWt9dGhpcy5fb25TZXJpZXNDb21wbGV0ZWQocyxlLnRpbWUsaSk7YnJlYWt9Y2FzZSJkYXRhX3VwZGF0ZSI6aWYoIXRoaXMuX2NoZWNrVHVybmFyb3VuZChlLnBhcmFtcy5jdXN0b21JZCxlLnBhcmFtcy50dXJuYXJvdW5kKSl7Yi5sb2dOb3JtYWwoYERhdGEgdXBkYXRlIGZvciBvbGQgZGF0YSwgZXhwZWN0ZWQ6ICR7dGhpcy5fc3ltYm9sSW5zdGFuY2VJZH0gKCR7dGhpcy50dXJuYXJvdW5kKCl9KSwgYWN0dWFsICR7ZS5wYXJhbXMuY3VzdG9tSWR9ICgke2UucGFyYW1zLnR1cm5hcm91bmR9KWApO2JyZWFrfQphd2FpdCB0aGlzLl9vbkRhdGFVcGRhdGUoZS5wYXJhbXMucGxvdHMsZS5wYXJhbXMubm9uc2VyaWVzLGUucGFyYW1zLmxhc3RCYXIpO2JyZWFrO2Nhc2UiY2xlYXJfZGF0YSI6e2lmKGUucGFyYW1zLnR1cm5hcm91bmQhPT10aGlzLnR1cm5hcm91bmQoKSl7Yi5sb2dOb3JtYWwoYENsZWFyIGRhdGEgZm9yIG9sZCBkYXRhLCBleHBlY3RlZDogJHt0aGlzLnR1cm5hcm91bmQoKX0sIGFjdHVhbCAke2UucGFyYW1zLnR1cm5hcm91bmR9YCk7YnJlYWt9Y29uc3QgdD10aGlzLl9kYXRhLmZpcnN0KCk7dGhpcy5fY2xlYXJEYXRhSW1wbCgpLHRoaXMuX2RhdGFFdmVudHMuZmlyZURhdGFVcGRhdGVkKHZvaWQgMCwhMSxudWxsLCExLHQpO2JyZWFrfX19X29uU2VyaWVzRXJyb3IoZSl7bGV0IHQscztpZigic3RyaW5nIj09dHlwZW9mIGUpcz17ZXJyb3I6ZX0sdD1lO2Vsc2UgaWYocz1lLGUuY3R4KXtjb25zdCBzPXt9O09iamVjdC5lbnRyaWVzKGUuY3R4KS5mb3JFYWNoKCgoW2UsdF0pPT57c1tlXT10LnRvU3RyaW5nKCl9KSksaT1lLmVycm9yLGE9cyx0PWkucmVwbGFjZShnLCgoZSx0KT0+dm9pZCAwIT09YVt0XT9hW3RdOmUpKX1lbHNlIHQ9ZS5lcnJvcjt2YXIgaSxhO2lmKHQuc3RhcnRzV2l0aCgic3R1ZHlfbm90X2F1dGg6Iikpe2NvbnN0IGU9dC5zcGxpdCgiOiIsMilbMV0uc3BsaXQoIkAiLDIpWzBdO2lmKFsiQmFyU2V0UmVua28iLCJCYXJTZXRQcmljZUJyZWFrIiwiQmFyU2V0S2FnaSIsIkJhclNldFBuRiJdLmluY2x1ZGVzKGUpKXRoaXMuX2RhdGFFdmVudHMuZmlyZUNoYXJ0VHlwZU5vdFBlcm1pdHRlZChlKTtlbHNle2lmKCJCYXJTZXRTcHJlYWQiPT09ZSlyZXR1cm4gdm9pZCB0aGlzLl9kYXRhRXZlbnRzLmZpcmVJbnRyYWRheVNwcmVhZE5vdFBlcm1pdHRlZCgpO2lmKCJCYXJTZXRSYW5nZSI9PT1lKXtjb25zdCBlPWAkeygwLHIuZW5zdXJlTm90TnVsbCkodGhpcy5fZXh0U3ltYm9sKS5pbnB1dHMucmFuZ2V9UmA7dGhpcy5fZGF0YUV2ZW50cy5maXJlQ3VzdG9tSW50ZXJ2YWxOb3RQZXJtaXR0ZWQoZSl9fX1lbHNle2lmKHQuc3RhcnRzV2l0aCgidW5zdXBwb3J0ZWQiKSlyZXR1cm4gdm9pZCB0aGlzLl9kYXRhRXZlbnRzLmZpcmVVbnN1cHBvcnRlZFJlc29sdXRpb25SZXF1ZXN0ZWQoKTsicmVzb2x1dGlvbl9ub3RfZW50aXRsZWQiPT09dD90aGlzLl9kYXRhRXZlbnRzLmZpcmVJbnRyYWRheUV4Y2hhbmdlTm90UGVybWl0dGVkKCk6ImN1c3RvbV9yZXNvbHV0aW9uIj09PXQ/dGhpcy5fZGF0YUV2ZW50cy5maXJlQ3VzdG9tSW50ZXJ2YWxOb3RQZXJtaXR0ZWQoKDAsci5lbnN1cmVOb3ROdWxsKSh0aGlzLl9yZXNvbHV0aW9uKSk6InNlY29uZHNfbm90X2VudGl0bGVkIj09PXQ/dGhpcy5fZGF0YUV2ZW50cy5maXJlU2Vjb25kc0ludGVydmFsTm90UGVybWl0dGVkKCk6InRpY2tzX25vdF9lbnRpdGxlZCI9PT10JiZ0aGlzLl9kYXRhRXZlbnRzLmZpcmVUaWNrc0ludGVydmFsTm90UGVybWl0dGVkKCl9dGhpcy5fZGF0YUV2ZW50cy5maXJlU2VyaWVzRXJyb3Iocyl9X29uU2VyaWVzVGltZUZyYW1lKGUsdCxzLHIsaSl7dGhpcy5fZGF0YUV2ZW50cy5maXJlU2VyaWVzVGltZUZyYW1lKGUsdCxzLHI/PyEwLGkpfV9vblN5bWJvbEVycm9yKGUpe2lmKGUucGFyYW1zWzFdPT09ZC5wZXJtaXNzaW9uRGVuaWVkKXN3aXRjaChlLnBhcmFtc1syXSl7Y2FzZSBkLlN5bWJvbEVycm9yUGVybWlzc2lvbkRlbmllZFJlYXNvbi5TeW1ib2w6dGhpcy5fZGF0YUV2ZW50cy5maXJlU3ltYm9sTm90UGVybWl0dGVkKGUucGFyYW1zWzNdKTticmVhaztjYXNlIGQuU3ltYm9sRXJyb3JQZXJtaXNzaW9uRGVuaWVkUmVhc29uLkdyb3VwUGVybWlzc2lvbjp0aGlzLl9kYXRhRXZlbnRzLmZpcmVTeW1ib2xHcm91cE5vdFBlcm1pdHRlZChlLnBhcmFtc1szXSk7YnJlYWs7ZGVmYXVsdDp0aGlzLl9kYXRhRXZlbnRzLmZpcmVTeW1ib2xOb3RQZXJtaXR0ZWQoZS5wYXJhbXNbMl0pfWVsc2UgZS5wYXJhbXNbMV09PT1kLmludmFsaWRTeW1ib2wmJnRoaXMuX2RhdGFFdmVudHMuZmlyZVN5bWJvbEludmFsaWQoKTt0aGlzLl9kYXRhRXZlbnRzLmZpcmVTeW1ib2xFcnJvcihlLnBhcmFtc1sxXSl9X29uU3ltYm9sUmVzb2x2ZWQoZSl7dGhpcy5fbGFzdFJlc29sdmVkU3ltYm9sPSgwLHIuZW5zdXJlTm90TnVsbCkoKDAscC5leHRyYWN0U3ltYm9sTmFtZUZyb21TeW1ib2xJbmZvKShDLl9leHRyYWN0U3ltYm9sTmFtZUZlYXR1cmVzZXRzLGUsIiIpKSx0aGlzLl9kYXRhRXZlbnRzLmZpcmVTeW1ib2xSZXNvbHZlZChlKX1hc3luYyBfb25EYXRhVXBkYXRlKGUsdCxzKXt0aGlzLl9vbkRhdGFVbnBhY2tlZChlLHMsYXdhaXQoMCxtLnBhcnNlSmFwYW5lc2VQcm9qZWN0aW9uQmFycykodCxDLl9ub25TZXJpZXNEYXRhVW5wYWNrZXIpKX1fZW5xdWV1ZVVwZGF0ZShlKXtyZXR1cm4gdGhpcy5fb25nb2luZ0RhdGFVcGRhdGU9dGhpcy5fb25nb2luZ0RhdGFVcGRhdGUudGhlbihlLGUpLHRoaXMuX29uZ29pbmdEYXRhVXBkYXRlfV9vbkRhdGFVbnBhY2tlZChlLHQscyl7aWYodGhpcy5fc3RhdHVzPT09Zi5JZGxlKXJldHVybjt0aGlzLl9zdGF0dXM9PT1mLkF3YWl0aW5nRmlyc3REYXRhVXBkYXRlJiYodGhpcy5fY2hhbmdlU3RhdHVzVG8oZi5BY3RpdmUpLHRoaXMuX2NsZWFyRGF0YUltcGwoKSk7Y29uc3Qgcj10aGlzLl9kYXRhLmJhcnMoKS5zaXplKCksaT10aGlzLl9kYXRhLmZpcnN0KCksYT10aGlzLl9kYXRhLmJhcnMoKS5maXJzdEluZGV4KCksbz10aGlzLl9kYXRhLm1lcmdlUmVndWxhckJhcnMoZSk7bnVsbCE9PXMmJih0aGlzLl9kYXRhLm5zQmFycygpLmNsZWFyKCksdGhpcy5fZGF0YS5uc0JhcnMoKS5tZXJnZShzLnByb2plY3Rpb25QbG90cyksdGhpcy5fZGF0YS5sYXN0UHJvamVjdGlvblByaWNlPXMubGFzdFByaWNlLG51bGwhPT1zLmJveFNpemUmJih0aGlzLl9kYXRhLmJveFNpemU9cy5ib3hTaXplKSx0aGlzLl9kYXRhLnJldmVyc2FsQW1vdW50PXMucmV2ZXJzYWxBbW91bnQpO2NvbnN0IG49bnVsbD09PWEsZD1ufHxudWxsIT09byYmby5pbmRleDxhO3RoaXMuX2RhdGFFdmVudHMuZmlyZURhdGFVcGRhdGVkKHQsZCxvLG4saSksCnIhPT10aGlzLl9kYXRhLmJhcnMoKS5zaXplKCkmJm51bGwhPT1vJiZ0aGlzLl9kYXRhRXZlbnRzLmZpcmVCYXJSZWNlaXZlZChvKX1fb25TZXJpZXNMb2FkaW5nKGUpe3RoaXMuX2RhdGFFdmVudHMuZmlyZUxvYWRpbmcoZSl9X29uU2VyaWVzQ29tcGxldGVkKGUsdCxzKXt0aGlzLl9kYXRhRXZlbnRzLmZpcmVDb21wbGV0ZWQoe3VwZGF0ZU1vZGU6ZSx0aW1lOnQsZmxhZ3M6c30pfV9jaGVja1R1cm5hcm91bmQoZSx0KXtyZXR1cm4gdGhpcy5faW5zdGFuY2VJZD09PWUmJih2b2lkIDA9PT10fHx0PT09dGhpcy50dXJuYXJvdW5kKCkpfX1DLl9ub25TZXJpZXNEYXRhVW5wYWNrZXI9bC51bnBhY2tOb25TZXJpZXNEYXRhLEMuX2VuY29kZVN5bWJvbD1jLmVuY29kZUV4dGVuZGVkU3ltYm9sLEMuX2V4dHJhY3RTeW1ib2xOYW1lRmVhdHVyZXNldHM9e3BheUF0dGVudGlvblRvVGlja2VyTm90U3ltYm9sOiExLGNoYXJ0aW5nTGlicmFyeVNpbmdsZVN5bWJvbFJlcXVlc3Q6ITEsdXNlVGlja2VyT25TeW1ib2xJbmZvVXBkYXRlOiExLHVwcGVyY2FzZUluc3RydW1lbnROYW1lczohMX19LDEyMTQ3OShlLHQscyl7cy5kKHQse2dldFNlcnZlckludGVydmFsOigpPT5pfSk7dmFyIHI9cygyNTQ2NzMpO2Z1bmN0aW9uIGkoZSl7cmV0dXJuIHIuSW50ZXJ2YWwuaXNSYW5nZShlKT8iMSI6ZX19LDk5NTY1NShlLHQscyl7cy5kKHQse3ZhbGlkYXRlR3JhcGhpY3NDb21tYW5kczooKT0+YX0pO3ZhciByPXMoNjAxODQxKSxpPXMoMTM4NjM4KTtmdW5jdGlvbiBhKGUpe2lmKCEoMCxyLmlzT2JqZWN0KShlKSl0aHJvdyBuZXcgRXJyb3IoIkdyYXBoaWNzIGNvbW1hbmRzIHNob3VsZCBiZSB3cmFwcGVkIGluIGFuIG9iamVjdCIpO2lmKCgwLHIuaGFzUHJvcGVydHkpKGUsImNyZWF0ZSIpLCgwLHIuaGFzUHJvcGVydHkpKGUsImVyYXNlIikpe2NvbnN0IHQ9ZS5lcmFzZTsoMCxpLmFzc2VydCkoQXJyYXkuaXNBcnJheSh0KSwiQ29sbGVjdGlvbiBvZiBlcmFzZSBjb21tYW5kcyBzaG91bGQgYmUgYXJyYXkiKTtmb3IoY29uc3QgZSBvZiB0KXtpZighKDAsci5pc09iamVjdCkoZSl8fCEoMCxyLmhhc1Byb3BlcnR5KShlLCJhY3Rpb24iKSl0aHJvdyBuZXcgRXJyb3IoIkNvbW1hbmQgc2hvdWxkIGJlIGFuIG9iamVjdCB3aXRoICdhY3Rpb24nIHByb3BlcnR5Iik7KDAsaS5hc3NlcnQpKCJhbGwiPT09ZS5hY3Rpb258fCJvbmUiPT09ZS5hY3Rpb24sIkVyYXNlIGNvbW1hbmQgYWN0aW9uIHNob3VsZCBiZSAnYWxsJyBvciAnb25lJyIpfX1yZXR1cm4gZX19LDMyMjU1NChlLHQscyl7ZnVuY3Rpb24gcihlLHQscyl7cmV0dXJuIGU9PT10fHxlPT09c31zLmQodCx7c3ltYm9sU2FtZUFzUmVzb2x2ZWQ6KCk9PnJ9KX0sODE0NTg5KGUsdCxzKXtzLmQodCx7SU5WQUxJRF9USU1FX1BPSU5UX0lOREVYOigpPT5yLFVOUExPVFRBQkxFX1RJTUVfUE9JTlRfSU5ERVg6KCk9Pml9KTtjb25zdCByPS0yZTYsaT0tMWU2fSw4NjY3NDgoZSx0LHMpe2FzeW5jIGZ1bmN0aW9uIHIoZSl7Y29uc3Rbe2luZmxhdGVabGliOnQsaW5mbGF0ZVJhdzpyfSx7dW5wYWNrSW1wbDppfV09YXdhaXQgUHJvbWlzZS5hbGwoWyJmdW5jdGlvbiI9PXR5cGVvZiBEZWNvbXByZXNzaW9uU3RyZWFtP3MuZSgyMTI2MCkudGhlbihzLmJpbmQocyw3MzUwOTkpKTpQcm9taXNlLmFsbChbcy5lKDI0Njk4KSxzLmUoNjIyMzQpXSkudGhlbihzLmJpbmQocywyOTU4NzMpKSxzLmUoMjEyNjApLnRoZW4ocy5iaW5kKHMsMjk0NDgzKSldKTtyZXR1cm4gaSh0LHIsZSl9cy5kKHQse3VucGFjazooKT0+cn0pfSwxODk4NjMoZSx0LHMpe3MuZCh0LHtTcGlubmVyOigpPT5hfSk7cyg4NDU1NzcpO3ZhciByPXMoNDQzNTU3KSxpPXMoNTY3NDc5KTtjbGFzcyBhe2NvbnN0cnVjdG9yKGUpe3RoaXMuX3Nob3duPSExLHRoaXMuX2VsPSgwLHIucGFyc2VIdG1sRWxlbWVudCkoZnVuY3Rpb24oZT0iIil7cmV0dXJuYDxkaXYgY2xhc3M9InR2LXNwaW5uZXIgJHtlfSIgcm9sZT0icHJvZ3Jlc3NiYXIiPjwvZGl2PmB9KCkpLHRoaXMuc2V0U2l6ZShpLnNwaW5uZXJTaXplTWFwW2V8fGkuREVGQVVMVF9TSVpFXSl9c3BpbihlKXtyZXR1cm4gdGhpcy5fZWwuY2xhc3NMaXN0LmFkZCgidHYtc3Bpbm5lci0tc2hvd24iKSx2b2lkIDA9PT10aGlzLl9jb250YWluZXImJih0aGlzLl9jb250YWluZXI9ZSx2b2lkIDAhPT1lJiZlLmFwcGVuZENoaWxkKHRoaXMuX2VsKSksdGhpcy5fc2hvd249ITAsdGhpc31zdG9wKGUpe3JldHVybiBlJiZ2b2lkIDAhPT10aGlzLl9jb250YWluZXImJnRoaXMuX2NvbnRhaW5lci5yZW1vdmVDaGlsZCh0aGlzLl9lbCksdGhpcy5fZWwmJnRoaXMuX2VsLmNsYXNzTGlzdC5yZW1vdmUoInR2LXNwaW5uZXItLXNob3duIiksdGhpcy5fc2hvd249ITEsdGhpc31zZXRTdHlsZShlKXtyZXR1cm4gT2JqZWN0LmtleXMoZSkuZm9yRWFjaCgodD0+e2NvbnN0IHM9ZVt0XTt2b2lkIDAhPT1zJiZ0aGlzLl9lbC5zdHlsZS5zZXRQcm9wZXJ0eSh0LHMpfSkpLHRoaXN9c3R5bGUoKXtyZXR1cm4gdGhpcy5fZWwuc3R5bGV9c2V0U2l6ZShlKXtjb25zdCB0PXZvaWQgMCE9PWU/YHR2LXNwaW5uZXItLXNpemVfJHtlfWA6IiI7cmV0dXJuIHRoaXMuX2VsLmNsYXNzTmFtZT1gdHYtc3Bpbm5lciAke3R9ICR7dGhpcy5fc2hvd24/InR2LXNwaW5uZXItLXNob3duIjoiIn1gLHRoaXN9Z2V0RWwoKXtyZXR1cm4gdGhpcy5fZWx9ZGVzdHJveSgpe3RoaXMuc3RvcCgpLGRlbGV0ZSB0aGlzLl9lbCxkZWxldGUgdGhpcy5fY29udGFpbmVyfX19LDIyNjkzNyhlLHQscyl7cy5kKHQse0FzeW5jUmVzb3VyY2VXcmFwcGVyOigpPT5yfSk7Y2xhc3Mgcntjb25zdHJ1Y3RvcihlLHQpe3RoaXMuX2Rlc3Ryb3llZD0hMSx0aGlzLl9jYWxsYmFja3M9W10sdGhpcy5fcmVzb3VyY2U9e3BlbmRpbmdSZXNvdXJjZTplfSx0aGlzLl9kZXN0cm95Rm49dCxlLnRoZW4oKGU9PntpZih0aGlzLl9kZXN0cm95ZWQpdGhpcy5fZGVzdHJveUZuPy4oZSk7ZWxzZXt0aGlzLl9yZXNvdXJjZS5yZXNvdXJjZT1lO2Zvcihjb25zdCB0IG9mIHRoaXMuX2NhbGxiYWNrcyl0KGUpfX0pKS5maW5hbGx5KCgoKT0+e3RoaXMuX2NhbGxiYWNrcz1bXX0pKX0KZGVzdHJveSgpe3RoaXMuX3Jlc291cmNlLnJlc291cmNlJiZ0aGlzLl9kZXN0cm95Rm4/Lih0aGlzLl9yZXNvdXJjZS5yZXNvdXJjZSksdGhpcy5fcmVzb3VyY2U9e3BlbmRpbmdSZXNvdXJjZTpQcm9taXNlLnJlamVjdCgiUmVzb3VyY2UgaXMgZGVzdHJveWVkIikuY2F0Y2goKCgpPT57fSkpfSx0aGlzLl9jYWxsYmFja3M9W10sdGhpcy5fZGVzdHJveWVkPSEwfWNhbGxGdW5jdGlvbihlKXt0aGlzLl9kZXN0cm95ZWR8fCh0aGlzLl9yZXNvdXJjZS5yZXNvdXJjZT9lKHRoaXMuX3Jlc291cmNlLnJlc291cmNlKTp0aGlzLl9jYWxsYmFja3MucHVzaChlKSl9Z2V0KCl7cmV0dXJuIHRoaXMuX2Rlc3Ryb3llZHx8IXRoaXMuX3Jlc291cmNlLnJlc291cmNlP251bGw6dGhpcy5fcmVzb3VyY2UucmVzb3VyY2V9cHJvbWlzZSgpe3JldHVybiB0aGlzLl9yZXNvdXJjZS5wZW5kaW5nUmVzb3VyY2V9fX19XSk7"}},"time_used":5,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":5,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/52680.8efa6b4d998186f39cba.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:13.953Z","timestamp":1785148033953,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/52680.8efa6b4d998186f39cba.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:13 GMT\r\ncontent-type: text/css; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a58ab11-ae3\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Thu, 16 Jul 2026 09:57:37 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/16/2026 11:03:40\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 88ddf15ccff871305994cba5e056fce7\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":2787,"size_decoded":1442,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with very long lines (2787), with no line terminators","md5":"b0b40767c8085628e53f188cb8827433","sha1":"dd4305af40e8132a6ffbe7ffa526b4443a209c2e","sha256":"e9b4d54c12d552fc8335e6ed145a9e61a5ae4a6b1415893daabfe8fde06952f3","sha512":"ca04e58582ad20de833d414362fea6b8f410a60267f11aa0863ce5c5b9952c123fd9d0bd2045651309ee607e9e956bbe87f419fbfb8c0b662c0772c6e36c0560","ssdeep":"","tlshash":"2b51ce84b24094bb7bb3f5798268b1ce6b249c3dddf23fc7b4aad14548d27e20194d25","first_seen":"2026-07-17T14:15:58.299653Z","last_seen":"2026-07-27T12:48:39.656326Z","times_seen":120,"resource_available":false,"data":"Lmljb25CdXR0b24tSEREVVlPQkl7YWxpZ24taXRlbXM6Y2VudGVyO2JhY2tncm91bmQ6bm9uZTtib3JkZXI6bm9uZTtkaXNwbGF5OmZsZXg7aGVpZ2h0OjI0cHg7anVzdGlmeS1jb250ZW50OmNlbnRlcjtvdXRsaW5lOm5vbmU7b3ZlcmZsb3c6dmlzaWJsZTtwYWRkaW5nOjA7cG9zaXRpb246cmVsYXRpdmU7d2lkdGg6MjRweH0uaWNvbkJ1dHRvbi1IRERVWU9CSTpmb2N1c3tvdXRsaW5lOm5vbmV9Lmljb25CdXR0b24tSEREVVlPQkk6Zm9jdXMtdmlzaWJsZXtvdXRsaW5lOm5vbmV9Lmljb25CdXR0b24tSEREVVlPQkk6YWZ0ZXJ7Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci13aWR0aDoycHg7Ym94LXNpemluZzpib3JkZXItYm94O2NvbnRlbnQ6IiI7ZGlzcGxheTpub25lO2hlaWdodDpjYWxjKDEwMCUgKyA4cHgpO2luc2V0LWlubGluZS1zdGFydDotNHB4O3BvaW50ZXItZXZlbnRzOm5vbmU7cG9zaXRpb246YWJzb2x1dGU7dG9wOi00cHg7d2lkdGg6Y2FsYygxMDAlICsgOHB4KTt6LWluZGV4OjF9Lmljb25CdXR0b24tSEREVVlPQkk6Zm9jdXM6YWZ0ZXJ7ZGlzcGxheTpibG9ja30uaWNvbkJ1dHRvbi1IRERVWU9CSTpmb2N1cy12aXNpYmxlOmFmdGVye2Rpc3BsYXk6YmxvY2t9Lmljb25CdXR0b24tSEREVVlPQkk6Zm9jdXM6bm90KDpmb2N1cy12aXNpYmxlKTphZnRlcntkaXNwbGF5Om5vbmV9Lmljb25CdXR0b24tSEREVVlPQkk6YmVmb3Jle2NvbnRlbnQ6IiI7aW5zZXQ6MDtwb3NpdGlvbjphYnNvbHV0ZX0uc3F1YXJlLUhERFVZT0JJe2JvcmRlci1yYWRpdXM6NHB4fS5zcXVhcmUtSEREVVlPQkk6YWZ0ZXJ7Ym9yZGVyLXJhZGl1czo4cHh9LnJvdW5kLUhERFVZT0JJe2JvcmRlci1yYWRpdXM6MTJweH0ucm91bmQtSEREVVlPQkk6YWZ0ZXJ7Ym9yZGVyLXJhZGl1czoxNnB4fS5wcmltYXJ5LUhERFVZT0JJOmFmdGVye2JvcmRlci1jb2xvcjp2YXIoLS1jb2xvci10di1ibHVlLTUwMCl9QG1lZGlhIChhbnktaG92ZXI6aG92ZXIpey5wcmltYXJ5LUhERFVZT0JJOmhvdmVye2JhY2tncm91bmQ6dmFyKC0tdWktbGliLWljb25CdXR0b24tYmFja2dyb3VuZC1jb2xvci1ob3Zlcix2YXIoLS1jb2xvci1jb250YWluZXItZmlsbC1wcmltYXJ5LW5ldXRyYWwtbm9ybWFsKSl9LnByaW1hcnktSEREVVlPQkk6aG92ZXIgLmljb24tSEREVVlPQkl7Y29sb3I6dmFyKC0tdWktbGliLWljb25CdXR0b24taWNvbi1jb2xvci1ob3Zlcix2YXIoLS1jb2xvci1jb250ZW50LXByaW1hcnktbmV1dHJhbC1ib2xkKSl9fS5wcmltYXJ5LUhERFVZT0JJIC5pY29uLUhERFVZT0JJe2NvbG9yOnZhcigtLXVpLWxpYi1pY29uQnV0dG9uLWljb24tY29sb3ItZGVmYXVsdCx2YXIoLS1jb2xvci1jb250ZW50LXByaW1hcnktbmV1dHJhbCkpfS5zZWNvbmRhcnktSEREVVlPQkk6YWZ0ZXJ7Ym9yZGVyLWNvbG9yOnZhcigtLWNvbG9yLXR2LWJsdWUtNTAwKX1AbWVkaWEgKGFueS1ob3Zlcjpob3Zlcil7LnNlY29uZGFyeS1IRERVWU9CSTpob3ZlcntiYWNrZ3JvdW5kOnZhcigtLXVpLWxpYi1pY29uQnV0dG9uLWJhY2tncm91bmQtY29sb3ItaG92ZXIsdmFyKC0tY29sb3Itb3ZlcmxheS1hY2NlbnQtMS1saWdodCkpfS5zZWNvbmRhcnktSEREVVlPQkk6aG92ZXIgLmljb24tSEREVVlPQkl7Y29sb3I6dmFyKC0tdWktbGliLWljb25CdXR0b24taWNvbi1jb2xvci1ob3Zlcix2YXIoLS1jb2xvci1jb250ZW50LXByaW1hcnktbmV1dHJhbC1ib2xkKSl9fS5zZWNvbmRhcnktSEREVVlPQkkgLmljb24tSEREVVlPQkl7Y29sb3I6dmFyKC0tdWktbGliLWljb25CdXR0b24taWNvbi1jb2xvci1kZWZhdWx0LHZhcigtLWNvbG9yLWNvbnRlbnQtcHJpbWFyeS1uZXV0cmFsKSl9LnRlcnRpYXJ5LUhERFVZT0JJOmFmdGVye2JvcmRlci1jb2xvcjp2YXIoLS1jb2xvci10di1ibHVlLTUwMCl9QG1lZGlhIChhbnktaG92ZXI6aG92ZXIpey50ZXJ0aWFyeS1IRERVWU9CSTpob3ZlcntiYWNrZ3JvdW5kOnZhcigtLXVpLWxpYi1pY29uQnV0dG9uLWJhY2tncm91bmQtY29sb3ItaG92ZXIsdmFyKC0tY29sb3Itb3ZlcmxheS1hY2NlbnQtMS1saWdodCkpfS50ZXJ0aWFyeS1IRERVWU9CSTpob3ZlciAuaWNvbi1IRERVWU9CSXtjb2xvcjp2YXIoLS11aS1saWItaWNvbkJ1dHRvbi1pY29uLWNvbG9yLWhvdmVyLHZhcigtLWNvbG9yLWNvbnRlbnQtcHJpbWFyeS1uZXV0cmFsLWJvbGQpKX19LnRlcnRpYXJ5LUhERFVZT0JJIC5pY29uLUhERFVZT0JJe2NvbG9yOnZhcigtLXVpLWxpYi1pY29uQnV0dG9uLWljb24tY29sb3ItZGVmYXVsdCx2YXIoLS1jb2xvci1jb250ZW50LXByaW1hcnktbmV1dHJhbCkpfS5wcmltYXJ5LXNwZWNpYWwtSEREVVlPQkk6YWZ0ZXJ7Ym9yZGVyLWNvbG9yOnZhcigtLWNvbG9yLWZvY3VzLW91dGxpbmUtY29sb3Itd2hpdGUpfUBtZWRpYSAoYW55LWhvdmVyOmhvdmVyKXsucHJpbWFyeS1zcGVjaWFsLUhERFVZT0JJOmhvdmVye2JhY2tncm91bmQ6dmFyKC0tdWktbGliLWljb25CdXR0b24tYmFja2dyb3VuZC1jb2xvci1ob3Zlcix2YXIoLS1jb2xvci1vdmVybGF5LW5ldXRyYWwtMS1ib2xkKSl9LnByaW1hcnktc3BlY2lhbC1IRERVWU9CSTpob3ZlciAuaWNvbi1IRERVWU9CSXtjb2xvcjp2YXIoLS11aS1saWItaWNvbkJ1dHRvbi1pY29uLWNvbG9yLWhvdmVyLHZhcigtLWNvbG9yLWNvbnRlbnQtcHJpbWFyeS1pbnZlcnNlKSl9fS5wcmltYXJ5LXNwZWNpYWwtSEREVVlPQkkgLmljb24tSEREVVlPQkl7Y29sb3I6dmFyKC0tdWktbGliLWljb25CdXR0b24taWNvbi1jb2xvci1kZWZhdWx0LHZhcigtLWNvbG9yLWNvbnRlbnQtcHJpbWFyeS1pbnZlcnNlKSl9"}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/19513.8749edce64a7e2de2583.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.528Z","timestamp":1785148034528,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/19513.8749edce64a7e2de2583.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\ncontent-type: text/css; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a58ab11-5fd\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Thu, 16 Jul 2026 09:57:37 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/16/2026 11:03:22\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: de5a7df2955d510978650253ac37dfdc\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":1533,"size_decoded":1278,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with very long lines (1533), with no line terminators","md5":"09bffc63a6ee7ea12e58d4abfb223ebe","sha1":"f1191e941d756ec4e581d83de425fc389991a49f","sha256":"fc054c2a50b7830f28594d322695b96d23418348ebb834b85514d45119966be3","sha512":"880203342496aa3d09daa815dada26ddf714ff3fd3ac994ef8f1a4b47a547113fa630bcb5606543a2283de433abbdd943e94c289ad8aaf47a4de47859bc3d6fd","ssdeep":"","tlshash":"c2315cab2134099a7cdfeea4d87b730ef7407c65d74262ea6411a9374589bb0c13e325","first_seen":"2026-07-19T21:33:33.844472Z","last_seen":"2026-07-27T12:48:39.789549Z","times_seen":57,"resource_available":false,"data":"LmxpbmtJdGVtLVNSa0ZIQWdne2N1cnNvcjpwb2ludGVyfS5zY3JvbGxXcmFwLWhyUVZfQlpze2NvbnRhaW46Y29udGVudDttYXJnaW46LTRweCBjYWxjKG1heCh2YXIoLS11aS1saWItcm91bmQtdGFicy1ob3ItcGFkZGluZywgMHB4KSwgNHB4KSotMSk7bWluLWhlaWdodDoxMDAlO3BhZGRpbmc6NHB4IG1heCh2YXIoLS11aS1saWItcm91bmQtdGFicy1ob3ItcGFkZGluZywwcHgpLDRweCk7cG9zaXRpb246cmVsYXRpdmU7LXdlYmtpdC11c2VyLXNlbGVjdDpub25lO3VzZXItc2VsZWN0Om5vbmU7d2lkdGg6MTAwJX0uc2Nyb2xsV3JhcC1oclFWX0Jacy5vdmVyZmxvd1Njcm9sbC1oclFWX0Jac3tvdmVyZmxvdy14OmF1dG87b3ZlcmZsb3cteTpoaWRkZW47LXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6dG91Y2h9QHN1cHBvcnRzICgtbW96LWFwcGVhcmFuY2U6bm9uZSl7LnNjcm9sbFdyYXAtaHJRVl9CWnMub3ZlcmZsb3dTY3JvbGwtaHJRVl9CWnN7c2Nyb2xsYmFyLXdpZHRoOm5vbmV9fS5zY3JvbGxXcmFwLWhyUVZfQlpzLm92ZXJmbG93U2Nyb2xsLWhyUVZfQlpzLnNiLXNjcm9sbGJhci13cmFwe2Rpc3BsYXk6bm9uZX0uc2Nyb2xsV3JhcC1oclFWX0Jacy5vdmVyZmxvd1Njcm9sbC1oclFWX0Jaczo6LXdlYmtpdC1zY3JvbGxiYXJ7ZGlzcGxheTpub25lO2hlaWdodDowO3dpZHRoOjB9LnNjcm9sbFdyYXAtaHJRVl9CWnMub3ZlcmZsb3dTY3JvbGwtaHJRVl9CWnM6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iLC5zY3JvbGxXcmFwLWhyUVZfQlpzLm92ZXJmbG93U2Nyb2xsLWhyUVZfQlpzOjotd2Via2l0LXNjcm9sbGJhci10cmFja3tkaXNwbGF5Om5vbmV9LnNjcm9sbFdyYXAtaHJRVl9CWnMub3ZlcmZsb3dTY3JvbGwtaHJRVl9CWnM6Oi13ZWJraXQtc2Nyb2xsYmFyLWNvcm5lcntkaXNwbGF5Om5vbmV9LnJvdW5kVGFicy1oclFWX0Jac3tkaXNwbGF5OmZsZXg7ZmxleC1mbG93OnJvdyBub3dyYXA7LS11aS1saWItcm91bmRUYWItbWFyZ2luOnZhcigtLXVpLWxpYi1yb3VuZFRhYnMtZ2FwKX0ub3ZlcmZsb3dTY3JvbGwtaHJRVl9CWnMgLnJvdW5kVGFicy1oclFWX0Jac3ttaW4td2lkdGg6bWF4LWNvbnRlbnR9Lm92ZXJmbG93U2Nyb2xsLWhyUVZfQlpzIC5yb3VuZFRhYnMtaHJRVl9CWnMuY2VudGVyLWhyUVZfQlpze21hcmdpbi1pbmxpbmUtZW5kOmNhbGMobWF4KHZhcigtLXVpLWxpYi1yb3VuZC10YWJzLWhvci1wYWRkaW5nLCAwcHgpLCA0cHgpKi0xKTtwYWRkaW5nLWlubGluZS1lbmQ6bWF4KHZhcigtLXVpLWxpYi1yb3VuZC10YWJzLWhvci1wYWRkaW5nLDBweCksNHB4KX0ub3ZlcmZsb3dXcmFwLWhyUVZfQlpzIC5yb3VuZFRhYnMtaHJRVl9CWnN7Z2FwOnZhcigtLXVpLWxpYi1yb3VuZFRhYnMtZ2FwKTstLXVpLWxpYi1yb3VuZFRhYi1tYXJnaW46MDtmbGV4LXdyYXA6d3JhcH0ucm91bmRUYWJzLWhyUVZfQlpzLnN0YXJ0LWhyUVZfQlpze2p1c3RpZnktY29udGVudDpmbGV4LXN0YXJ0fS5yb3VuZFRhYnMtaHJRVl9CWnMuY2VudGVyLWhyUVZfQlpze2p1c3RpZnktY29udGVudDpjZW50ZXJ9"}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/43808.5ad3651a38630f775442.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.549Z","timestamp":1785148034549,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/43808.5ad3651a38630f775442.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\ncontent-type: text/css; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a267ddd-734c\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Mon, 08 Jun 2026 08:31:25 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.55\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 06/08/2026 10:13:43\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: c63998fa0c4f76fb6ddfc87bb3d6c113\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":29516,"size_decoded":7156,"mime_type":"text/css; charset=utf-8","magic":"Unicode text, UTF-8 text, with very long lines (29514), with no line terminators","md5":"89d54002d9dff292d378d97abe4e3410","sha1":"6ad49e20962e85a41c0ed2955a7d9b8bf56fcb47","sha256":"c2f76e73327dad5c04fe2f8617bc8b3aab016114e3cc57f1a9757f1b8ff7530a","sha512":"bf553ad2781e9c3bf61da104cf8e0b85b64f3eb4a469d7ea50a1131c1c45ca98ce6f3fe2673c2a6f86857e8b0005fa4baa2df74ef8e80fbbfb9684cb81792860","ssdeep":"384:QTsoqYs5cN4nzyHDmcWE5N9cVOS8RSACPZhnT7HumHZKefLpKY7:QRgcN4zyHDm/E5N9cVOS8/CPZhT7hnLB","tlshash":"e6d297c5f701a0367bb7572d5770a24daa1cec83d50a4be9fd81be1988c5bfb3069608","first_seen":"2026-06-08T18:14:42.108897Z","last_seen":"2026-07-27T12:48:39.667046Z","times_seen":133,"resource_available":false,"data":"LmNvbnRhaW5lci1UYUZfYVlFRnthbGlnbi1pdGVtczpjZW50ZXI7ZGlzcGxheTpmbGV4O2hlaWdodDoxMDAlO2p1c3RpZnktY29udGVudDpjZW50ZXI7bWFyZ2luOjAgY2FsYyh2YXIoLS1vcHRpb25zLXRhYmxlLWNlbGwtaG9yei1wYWRkaW5nKSotMSk7cG9zaXRpb246cmVsYXRpdmV9QG1lZGlhIChhbnktaG92ZXI6aG92ZXIpey5jb250YWluZXItVGFGX2FZRUY6aG92ZXIgLmZsYWctVGFGX2FZRUZ7ZGlzcGxheTpmbGV4fX1AbWVkaWEgKGhvdmVyOmhvdmVyKXsuZmxhZy1UYUZfYVlFRntkaXNwbGF5Om5vbmV9fS5jb250ZW50LVRhRl9hWUVGe3RleHQtdHJhbnNmb3JtOmxvd2VyY2FzZX0uY29udGVudC1UYUZfYVlFRjpmaXJzdC1sZXR0ZXJ7dGV4dC10cmFuc2Zvcm06Y2FwaXRhbGl6ZX0udW5kZXJseWluZ0NlbGwtVWNjZEhsaGcudW5kZXJseWluZ0NlbGwtVWNjZEhsaGd7Ym90dG9tOnZhcigtLW9wdGlvbnMtdGFibGUtYm9keS1ib3R0b20pO2hlaWdodDowO3Bvc2l0aW9uOnN0aWNreTt0b3A6Y2FsYyh2YXIoLS1vcHRpb25zLXRhYmxlLXJvdy1oZWlnaHQpKjIpO3dpZHRoOjEwMCU7ei1pbmRleDoxMH0udW5kZXJseWluZ0NlbGwtVWNjZEhsaGc6YmVmb3Jle2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItYm9yZGVyLXByaW1hcnktbmV1dHJhbC1zZW1pLWJvbGQpO2NvbnRlbnQ6IiI7aGVpZ2h0OjFweDtpbnNldC1pbmxpbmUtZW5kOjA7aW5zZXQtaW5saW5lLXN0YXJ0OjA7cG9zaXRpb246YWJzb2x1dGU7dG9wOi0xcHh9LnVuZGVybHlpbmdCYWRnZS1VY2NkSGxoZ3tiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLWNvbnRhaW5lci1maWxsLXByaW1hcnktbmV1dHJhbC1oZWF2eSk7Ym9yZGVyLXJhZGl1czozcHg7Y29sb3I6dmFyKC0tY29sb3ItY29udGVudC1zZWNvbmRhcnktaW52ZXJzZSk7Zm9udC1zaXplOjExcHg7Zm9udC13ZWlnaHQ6NjAwO2luc2V0LWlubGluZS1zdGFydDo1MCU7bGluZS1oZWlnaHQ6dmFyKC0tb3B0aW9ucy10YWJsZS11bmRlcmx5aW5nLXJvdy1saW5lLWhlaWdodCk7cGFkZGluZzowIDZweDtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6Y2FsYyh2YXIoLS1vcHRpb25zLXRhYmxlLXVuZGVybHlpbmctcm93LWxpbmUtaGVpZ2h0KSotMS8yIC0gMXB4KTt0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUpfS51bmRlcmx5aW5nQmFkZ2UtVWNjZEhsaGc6ZGlyKHJ0bCl7dHJhbnNmb3JtOnRyYW5zbGF0ZSg1MCUpfS5yb290LU53RlVaY25Se2hlaWdodDoxMDAlfS5jaGFpbi1Od0ZVWmNuUnstLW9wdGlvbnMtY2hhaW4tYmctY29sb3I6dmFyKC0tY29sb3ItYmFja2dyb3VuZC1kYXJrLXNlY29uZGFyeSk7LS1vcHRpb24tY2hhaW4tY2VudHJhbC1jZWxsLWJnLWNvbG9yOnZhcigtLWNvbG9yLWNvbnRhaW5lci1maWxsLXNlY29uZGFyeS1uZXV0cmFsLXRoaW4pOy0tb3B0aW9ucy10YWJsZS11bmRlcmx5aW5nLXJvdy1saW5lLWhlaWdodDoxNXB4Oy0tb3B0aW9ucy10YWJsZS1ib2R5LWJvdHRvbTpjYWxjKHZhcigtLW9wdGlvbnMtdGFibGUtdW5kZXJseWluZy1yb3ctbGluZS1oZWlnaHQpLzIpO2hlaWdodDoxMDAlO21pbi1oZWlnaHQ6MH0uc2VsZWN0b3ItTndGVVpjblJ7LS1vcHRpb25zLXBpY2tlci1ibHVyLWNvbG9yOnZhcigtLWNvbG9yLWJhY2tncm91bmQtZGFyay1zZWNvbmRhcnkpO21hcmdpbjowIDIwcHh9LmVtcHR5U3RhdGVJY29uLU53RlVaY25Se2JhY2tncm91bmQtaW1hZ2U6dXJsKGVtcHR5LWdob3N0LmM1YWI4ODEzYzU2OGM5MzkxMDYwLnN2Zyk7aGVpZ2h0OjEyMHB4O3dpZHRoOjEyMHB4fWh0bWwudGhlbWUtZGFyayAuZW1wdHlTdGF0ZUljb24tTndGVVpjblJ7YmFja2dyb3VuZC1pbWFnZTp1cmwoZW1wdHktZ2hvc3QtZGFyay5hM2YxYTg5NjhiMGY2OTZiMWM4OS5zdmcpfS5lbXB0eS1Od0ZVWmNuUnthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcn0uZW1wdHktTndGVVpjblIsLnJvb3QtWHdKb19pUDZ7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbn0ucm9vdC1Yd0pvX2lQNntnYXA6dmFyKC0tdi1yaHl0aG0taGVhZGVyLTMtc3BhY2UpO21pbi1oZWlnaHQ6MH0uc2VsZWN0b3ItWHdKb19pUDZ7LS1vcHRpb25zLXBpY2tlci1ibHVyLWNvbG9yOnZhcigtLWNvbG9yLWJhY2tncm91bmQtZGFyay1zZWNvbmRhcnkpO21hcmdpbjowIDIwcHh9LmNoYWluLVh3Sm9faVA2ey0tb3B0aW9ucy1jaGFpbi1iZy1jb2xvcjp2YXIoLS1jb2xvci1iYWNrZ3JvdW5kLWRhcmstc2Vjb25kYXJ5KTtoZWlnaHQ6MTAwJTttaW4taGVpZ2h0OjB9LmVtcHR5LVh3Sm9faVA2e2hlaWdodDoxMDAlfS50aXRsZS1jMTJsYTVpTXthbGlnbi1pdGVtczpjZW50ZXI7Y29sdW1uLWdhcDo0cHg7ZGlzcGxheTpmbGV4O21pbi13aWR0aDowfS5pY29uLWMxMmxhNWlNe2ZsZXg6MCAwIDE4cHh9LmNoaWxkcmVuV3JhcHBlci1NZ3BEOXVUT3thbGlnbi1pdGVtczpjZW50ZXI7Y3Vyc29yOmRlZmF1bHQ7ZGlzcGxheTpmbGV4O2ZsZXg6MSAwIGF1dG87ZmxleC1kaXJlY3Rpb246Y29sdW1uO2p1c3RpZnktY29udGVudDpjZW50ZXJ9QG1lZGlhIChtYXgtaGVpZ2h0OjQ0MHB4KSBhbmQgKG9yaWVudGF0aW9uOmxhbmRzY2FwZSl7LmNoaWxkcmVuV3JhcHBlci1NZ3BEOXVUT3tqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1zdGFydH19LmNvbnRhaW5lci1NZ3BEOXVUT3tkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO3BhZGRpbmctdG9wOjhweH1bZGF0YS10aGVtZT1saWdodF17LS1fMC1OMVB4OnZhcigtLWNvbG9yLXdoaXRlKX1bZGF0YS10aGVtZT1kYXJrXXstLV8wLU4xUHg6dmFyKC0tY29sb3ItY29sZC1ncmF5LTg1MCl9LnRpdGxlLU5kM3dza2xLe2JhY2tncm91bmQtY29sb3I6dmFyKC0tXzAtTjFQeCk7Y29sb3I6dmFyKC0tY29sb3ItZGVmYXVsdC1ncmF5KTtjdXJzb3I6ZGVmYXVsdDtmb250LXNpemU6MTFweDtsZXR0ZXItc3BhY2luZzouNHB4O2xpbmUtaGVpZ2h0OjE2cHg7cGFkZGluZy1ib3R0b206OHB4O3BhZGRpbmctaW5saW5lLXN0YXJ0OjQycHg7dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlfVtkYXRhLXRoZW1lPWxpZ2h0XXstLV8wLUlOYTc6dmFyKC0tY29sb3ItY29sZC1ncmF5LTkwMCk7LS1fMS1JTmE3OnZhcigtLWNvbG9yLWNvbGQtZ3JheS0xMDApOy0tXzItSU5hNzp2YXIoLS1jb2xvci1jb2xkLWdyYXktMTAwKTstLV8zLUlOYTc6dmFyKC0tY29sb3Itd2hpdGUpOy0tXzQtSU5hNzp2YXIoLS1jb2xvci10di1ibHVlLTIwMCl9W2RhdGEtdGhlbWU9ZGFya117LS1fMC1JTmE3OnZhcigtLWNvbG9yLWNvbGQtZ3JheS0yMDApOy0tXzEtSU5hNzp2YXIoLS1jb2xvci1jb2xkLWdyYXktODAwKTstLV8yLUlOYTc6dmFyKC0tY29sb3ItY29sZC1ncmF5LTgwMCk7LS1fMy1JTmE3OnZhcigtLWNvbG9yLWNvbGQtZ3JheS04NTApOy0tXzQtSU5hNzp2YXIoLS1jb2xvci10di1ibHVlLTIwMCl9LndyYXAtSEVpSVFlYkJ7YmFja2ZhY2UtdmlzaWJpbGl0eTpoaWRkZW47YnJlYWstaW5zaWRlOmF2b2lkO2N1cnNvcjpkZWZhdWx0O292ZXJmbG93OmhpZGRlbn0ud3JhcC1IRWlJUWViQi5saWJBbGxTZWxlY3RlZC1IRWlJUWViQntjb2x1bW4tc3BhbjphbGx9LmNvbnRhaW5lci1IRWlJUWViQnthbGlnbi1pdGVtczpjZW50ZXI7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1fMy1JTmE3KTtib3gtc2l6aW5nOmJvcmRlci1ib3g7ZGlzcGxheTpmbGV4fS5jb250YWluZXItSEVpSVFlYkIgLmljb25XcmFwLUhFaUlRZWJCe2ZsZXgtc2hyaW5rOjB9LmNvbnRhaW5lci1IRWlJUWViQiAuaWNvbi1IRWlJUWViQiwuY29udGFpbmVyLUhFaUlRZWJCIC5pY29uV3JhcC1IRWlJUWViQnthbGlnbi1pdGVtczpjZW50ZXI7ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpjZW50ZXJ9LmNvbnRhaW5lci1IRWlJUWViQiAudGl0bGUtSEVpSVFlYkJ7Y29sb3I6dmFyKC0tXzAtSU5hNyk7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7d2hpdGUtc3BhY2U6bm93cmFwfS5jb250YWluZXItSEVpSVFlYkIgLnRpdGxlLUhFaUlRZWJCIC5oaWdobGlnaHRlZC1IRWlJUWViQntjb2xvcjp2YXIoLS1fNC1JTmE3KX0uY29udGFpbmVyLUhFaUlRZWJCIC5kZXNjcmlwdGlvbi1IRWlJUWViQntjb2xvcjp2YXIoLS1jb2xvci1kZWZhdWx0LWdyYXkpO2xpbmUtaGVpZ2h0OjE3cHg7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7d2hpdGUtc3BhY2U6bm93cmFwfS5jb250YWluZXItSEVpSVFlYkIubGliQWxsU2VsZWN0ZWQtSEVpSVFlYkJ7d2lkdGg6Y2FsYyg1MCUgLSAycHgpfUBtZWRpYSAobWF4LXdpZHRoOjQ3OXB4KXsuY29udGFpbmVyLUhFaUlRZWJCLmxpYkFsbFNlbGVjdGVkLUhFaUlRZWJCe3dpZHRoOmF1dG99fS5jb250YWluZXItSEVpSVFlYkIubW9iaWxlLUhFaUlRZWJCe2hlaWdodDo1MnB4fS5jb250YWluZXItSEVpSVFlYkIubW9iaWxlLUhFaUlRZWJCLmFsbFNlbGVjdGVkLUhFaUlRZWJCe2hlaWdodDo0MHB4fS5jb250YWluZXItSEVpSVFlYkIubW9iaWxlLUhFaUlRZWJCIC5pY29uV3JhcC1IRWlJUWViQnttYXJnaW4taW5saW5lLXN0YXJ0OjJweDt3aWR0aDo0MHB4fS5jb250YWluZXItSEVpSVFlYkIubW9iaWxlLUhFaUlRZWJCIC5pY29uLUhFaUlRZWJCe2hlaWdodDoyMHB4O3dpZHRoOjIwcHh9LmNvbnRhaW5lci1IRWlJUWViQi5tb2JpbGUtSEVpSVFlYkIgLnRpdGxlLUhFaUlRZWJCe2ZvbnQtc2l6ZToxNnB4O2xpbmUtaGVpZ2h0OjI0cHh9LmNvbnRhaW5lci1IRWlJUWViQi5tb2JpbGUtSEVpSVFlYkIgLmRlc2NyaXB0aW9uLUhFaUlRZWJCe2ZvbnQtc2l6ZToxMnB4fS5jb250YWluZXItSEVpSVFlYkIuZGVza3RvcC1IRWlJUWViQntib3JkZXItYm90dG9tOm5vbmU7Ym9yZGVyLXJhZGl1czo0cHg7aGVpZ2h0OjQ2cHg7cGFkZGluZy1pbmxpbmUtc3RhcnQ6OHB4fS5jb250YWluZXItSEVpSVFlYkIuZGVza3RvcC1IRWlJUWViQiAuaWNvbldyYXAtSEVpSVFlYkJ7bWFyZ2luLWlubGluZS1lbmQ6OHB4fS5jb250YWluZXItSEVpSVFlYkIuZGVza3RvcC1IRWlJUWViQiAuaWNvbi1IRWlJUWViQntoZWlnaHQ6MjRweDt3aWR0aDoyNHB4fS5jb250YWluZXItSEVpSVFlYkIuZGVza3RvcC1IRWlJUWViQiAuYWxsU2VsZWN0ZWRJY29uLUhFaUlRZWJCIHN2Z3toZWlnaHQ6MjBweDt3aWR0aDoyMHB4fS5jb250YWluZXItSEVpSVFlYkIuZGVza3RvcC1IRWlJUWViQiAudGl0bGUtSEVpSVFlYkJ7Zm9udC1zaXplOjE0cHg7bGluZS1oZWlnaHQ6MjJweH0uY29udGFpbmVyLUhFaUlRZWJCLmRlc2t0b3AtSEVpSVFlYkIgLmRlc2NyaXB0aW9uLUhFaUlRZWJCe2ZvbnQtc2l6ZToxMnB4O2xpbmUtaGVpZ2h0OjE2cHh9QG1lZGlhIChhbnktaG92ZXI6aG92ZXIpey5jb250YWluZXItSEVpSVFlYkIuZGVza3RvcC1IRWlJUWViQjpob3Zlcjpub3QoLnNlbGVjdGVkLUhFaUlRZWJCKXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLV8yLUlOYTcpfX0uY29udGFpbmVyLUhFaUlRZWJCe291dGxpbmU6bm9uZTtvdmVyZmxvdzp2aXNpYmxlO3Bvc2l0aW9uOnJlbGF0aXZlfS5jb250YWluZXItSEVpSVFlYkI6Zm9jdXN7b3V0bGluZTpub25lfS5jb250YWluZXItSEVpSVFlYkI6Zm9jdXMtdmlzaWJsZXtvdXRsaW5lOm5vbmV9LmNvbnRhaW5lci1IRWlJUWViQjphZnRlcntib3JkZXItY29sb3I6dmFyKC0tY29sb3ItZm9jdXMtb3V0bGluZS1jb2xvci1ibHVlKTtib3JkZXItcmFkaXVzOjRweDtib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLXdpZHRoOjJweDtib3gtc2l6aW5nOmJvcmRlci1ib3g7Y29udGVudDoiIjtkaXNwbGF5Om5vbmU7aGVpZ2h0OjEwMCU7aW5zZXQtaW5saW5lLXN0YXJ0OjA7cG9pbnRlci1ldmVudHM6bm9uZTtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDt3aWR0aDoxMDAlO3otaW5kZXg6MX0uY29udGFpbmVyLUhFaUlRZWJCLmZvY3VzZWQtSEVpSVFlYkI6YWZ0ZXJ7ZGlzcGxheTpibG9ja30uY29udGFpbmVyLUhFaUlRZWJCLnNlbGVjdGVkLUhFaUlRZWJCe2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItY29udGFpbmVyLWZpbGwtcHJpbWFyeS1uZXV0cmFsLWV4dHJhLWJvbGQpfS5jb250YWluZXItSEVpSVFlYkIuc2VsZWN0ZWQtSEVpSVFlYkIgLmRlc2NyaXB0aW9uLUhFaUlRZWJCLC5jb250YWluZXItSEVpSVFlYkIuc2VsZWN0ZWQtSEVpSVFlYkIgLmljb24tSEVpSVFlYkIsLmNvbnRhaW5lci1IRWlJUWViQi5zZWxlY3RlZC1IRWlJUWViQiAudGl0bGUtSEVpSVFlYkJ7Y29sb3I6dmFyKC0tY29sb3ItY29udGVudC1wcmltYXJ5LWludmVyc2UpfS5jb250YWluZXItSEVpSVFlYkIuc2VsZWN0ZWQtSEVpSVFlYkIgLmRlc2NyaXB0aW9uLUhFaUlRZWJCIC5oaWdobGlnaHRlZC1IRWlJUWViQntjb2xvcjp2YXIoLS1fNC1JTmE3KX0uY29udGFpbmVyLUhFaUlRZWJCLnNlbGVjdGVkLUhFaUlRZWJCe291dGxpbmU6bm9uZTtvdmVyZmxvdzp2aXNpYmxlO3Bvc2l0aW9uOnJlbGF0aXZlfS5jb250YWluZXItSEVpSVFlYkIuc2VsZWN0ZWQtSEVpSVFlYkI6Zm9jdXN7b3V0bGluZTpub25lfS5jb250YWluZXItSEVpSVFlYkIuc2VsZWN0ZWQtSEVpSVFlYkI6Zm9jdXMtdmlzaWJsZXtvdXRsaW5lOm5vbmV9LmNvbnRhaW5lci1IRWlJUWViQi5zZWxlY3RlZC1IRWlJUWViQjphZnRlcntib3JkZXItY29sb3I6dmFyKC0tY29sb3ItYm9yZGVyLXByaW1hcnktaW52ZXJzZSk7Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci13aWR0aDoycHg7Ym94LXNpemluZzpib3JkZXItYm94O2NvbnRlbnQ6IiI7ZGlzcGxheTpub25lO2hlaWdodDpjYWxjKDEwMCUgLSAycHgpO2luc2V0LWlubGluZS1zdGFydDoxcHg7cG9pbnRlci1ldmVudHM6bm9uZTtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MXB4O3dpZHRoOmNhbGMoMTAwJSAtIDJweCk7ei1pbmRleDoxfS5jb250YWluZXItSEVpSVFlYkIuc2VsZWN0ZWQtSEVpSVFlYkIuZm9jdXNlZC1IRWlJUWViQjphZnRlcntkaXNwbGF5OmJsb2NrfS50aXRsZVdpdGhvdXREZXNjLUhFaUlRZWJCe3BhZGRpbmctYm90dG9tOjhweDtwYWRkaW5nLXRvcDo4cHh9LnRleHRCbG9jay1IRWlJUWViQntkaXNwbGF5OmZsZXg7ZmxleDowIDEgYXV0bztmbGV4LWRpcmVjdGlvbjpjb2x1bW47bWluLXdpZHRoOjB9LmJvcmRlcmVkLUhFaUlRZWJCe2JvcmRlci1ib3R0b206MXB4IHNvbGlkIHZhcigtLV8xLUlOYTcpfVtkYXRhLXRoZW1lPWxpZ2h0XXstLV8wLXdkdk46dmFyKC0tY29sb3ItY29sZC1ncmF5LTkwMCl9W2RhdGEtdGhlbWU9ZGFya117LS1fMC13ZHZOOnZhcigtLWNvbG9yLWNvbGQtZ3JheS0yMDApfS5jb250YWluZXItdHNqbVF0WFF7aGVpZ2h0OjEwMCU7b3ZlcmZsb3c6aGlkZGVufS5jb250ZW50TGlzdC10c2ptUXRYUXtvdmVyZmxvdy15OmF1dG87cGFkZGluZzo2cHggMH1AbWVkaWEgKHBvaW50ZXI6ZmluZSl7QHN1cHBvcnRzICgtbW96LWFwcGVhcmFuY2U6bm9uZSl7LmNvbnRlbnRMaXN0LXRzam1RdFhRe3Njcm9sbGJhci1jb2xvcjp2YXIoLS10di1jb2xvci1zY3JvbGxiYXItdGh1bWItYmFja2dyb3VuZCx2YXIoLS1jb2xvci1zY3JvbGwtYmcpKSAjMDAwMDtzY3JvbGxiYXItd2lkdGg6dGhpbn19LmNvbnRlbnRMaXN0LXRzam1RdFhROjotd2Via2l0LXNjcm9sbGJhcntoZWlnaHQ6NXB4O3dpZHRoOjVweH0uY29udGVudExpc3QtdHNqbVF0WFE6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1ie2JhY2tncm91bmQtY2xpcDpjb250ZW50LWJveDtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXR2LWNvbG9yLXNjcm9sbGJhci10aHVtYi1iYWNrZ3JvdW5kLHZhcigtLWNvbG9yLXNjcm9sbC1iZykpO2JvcmRlcjoxcHggc29saWQgIzAwMDA7Ym9yZGVyLXJhZGl1czozcHh9LmNvbnRlbnRMaXN0LXRzam1RdFhROjotd2Via2l0LXNjcm9sbGJhci10cmFja3tiYWNrZ3JvdW5kLWNvbG9yOmluaXRpYWw7Ym9yZGVyLXJhZGl1czozcHh9LmNvbnRlbnRMaXN0LXRzam1RdFhROjotd2Via2l0LXNjcm9sbGJhci1jb3JuZXJ7ZGlzcGxheTpub25lfX0uY29udGVudExpc3REZXNrdG9wLXRzam1RdFhRe3BhZGRpbmc6MTZweCAwfS5zZWFyY2hTb3VyY2VJdGVtc0NvbnRhaW5lci10c2ptUXRYUXttYXJnaW4tYm90dG9tOjE2cHh9LnNlYXJjaFNvdXJjZUl0ZW1zQ29udGFpbmVyLXRzam1RdFhROmxhc3QtY2hpbGR7bWFyZ2luLWJvdHRvbTowfS5zZWFyY2hTb3VyY2VJdGVtc0NvbnRhaW5lci10c2ptUXRYUS5vbmVDb2x1bW4tdHNqbVF0WFF7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjFmcn0uc2VhcmNoU291cmNlSXRlbXNDb250YWluZXJEZXNrdG9wLXRzam1RdFhRe2NvbHVtbi1nYXA6NHB4O2Rpc3BsYXk6Z3JpZDtncmlkLXRlbXBsYXRlLWNvbHVtbnM6MWZyIDFmcjtqdXN0aWZ5LWNvbnRlbnQ6c3RyZXRjaDttYXJnaW4tYm90dG9tOjI0cHg7cGFkZGluZzowIDEycHh9LnNlYXJjaFNvdXJjZUl0ZW1zQ29udGFpbmVyRGVza3RvcC10c2ptUXRYUTpsYXN0LWNoaWxke21hcmdpbi1ib3R0b206MH0uZ3JvdXBUaXRsZURlc2t0b3AtdHNqbVF0WFF7cGFkZGluZy1pbmxpbmUtc3RhcnQ6MjBweH0uY29sdW1uLXRzam1RdFhRe292ZXJmbG93OmhpZGRlbn0uZW1wdHlUZXh0LXRzam1RdFhRe2NvbG9yOnZhcigtLV8wLXdkdk4pO2ZvbnQtc2l6ZToxNnB4O2xpbmUtaGVpZ2h0OjI0cHg7bWFyZ2luOjEycHggMjBweDt0ZXh0LWFsaWduOmNlbnRlcn1AbWVkaWEgKG1heC1oZWlnaHQ6NDQwcHgpIGFuZCAob3JpZW50YXRpb246bGFuZHNjYXBlKXsuZW1wdHlJY29uLXRzam1RdFhRe2Rpc3BsYXk6bm9uZX19Lm5vUmVzdWx0c0Rlc2t0b3AtdHNqbVF0WFF7ZmxleDoxIDA7b3ZlcmZsb3c6YXV0bztwYWRkaW5nLWJvdHRvbTo1NHB4O3BhZGRpbmctdG9wOjI0cHh9QHN1cHBvcnRzICgtbW96LWFwcGVhcmFuY2U6bm9uZSl7Lm5vUmVzdWx0c0Rlc2t0b3AtdHNqbVF0WFF7c2Nyb2xsYmFyLWNvbG9yOnZhcigtLXR2LWNvbG9yLXNjcm9sbGJhci10aHVtYi1iYWNrZ3JvdW5kLHZhcigtLWNvbG9yLXNjcm9sbC1iZykpICMwMDAwO3Njcm9sbGJhci13aWR0aDp0aGlufX0ubm9SZXN1bHRzRGVza3RvcC10c2ptUXRYUTo6LXdlYmtpdC1zY3JvbGxiYXJ7aGVpZ2h0OjVweDt3aWR0aDo1cHh9Lm5vUmVzdWx0c0Rlc2t0b3AtdHNqbVF0WFE6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1ie2JhY2tncm91bmQtY2xpcDpjb250ZW50LWJveDtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXR2LWNvbG9yLXNjcm9sbGJhci10aHVtYi1iYWNrZ3JvdW5kLHZhcigtLWNvbG9yLXNjcm9sbC1iZykpO2JvcmRlcjoxcHggc29saWQgIzAwMDA7Ym9yZGVyLXJhZGl1czozcHh9Lm5vUmVzdWx0c0Rlc2t0b3AtdHNqbVF0WFE6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNre2JhY2tncm91bmQtY29sb3I6aW5pdGlhbDtib3JkZXItcmFkaXVzOjNweH0ubm9SZXN1bHRzRGVza3RvcC10c2ptUXRYUTo6LXdlYmtpdC1zY3JvbGxiYXItY29ybmVye2Rpc3BsYXk6bm9uZX0uYWN0aW9ucy1vQXRvWGxSNHtkaXNwbGF5OmZsZXg7bWFyZ2luLWlubGluZS1lbmQ6OHB4O3Bvc2l0aW9uOnJlbGF0aXZlfS5hY3Rpb24tb0F0b1hsUjQuZGlzYWJsZWQtb0F0b1hsUjR7LS11aS1saWItaWNvbkJ1dHRvbi1iYWNrZ3JvdW5kLWNvbG9yLWhvdmVyOiMwMDAwOy0tdWktbGliLWljb25CdXR0b24taWNvbi1jb2xvci1ob3Zlcjp2YXIoLS1jb2xvci1jb250ZW50LXByaW1hcnktbmV1dHJhbCl9LmFjdGlvbi1vQXRvWGxSNCsuYWN0aW9uLW9BdG9YbFI0e21hcmdpbi1pbmxpbmUtc3RhcnQ6NHB4fS5mbGFnLU5tMTc0enFTe2JvcmRlcjoxcHggc29saWQgdmFyKC0tY29sb3ItYm9yZGVyLXRlcnRpYXJ5LWludmVyc2UpO2Rpc3BsYXk6ZmxleDtoZWlnaHQ6MThweDt3aWR0aDoxOHB4fS5mbGFncy1ObTE3NHpxU3tkaXNwbGF5OmZsZXh9LmZsYWdDb250YWluZXItTm0xNzR6cVN7aGVpZ2h0OjIwcHg7d2lkdGg6MjBweH0uZmxhZ0NvbnRhaW5lci1ObTE3NHpxUzpub3QoOmZpcnN0LWNoaWxkKXttYXJnaW4taW5saW5lLXN0YXJ0Oi0xMHB4fS5jb3VudGVyLU5tMTc0enFTe2ZvbnQtZmFtaWx5Oi1hcHBsZS1zeXN0ZW0sQmxpbmtNYWNTeXN0ZW1Gb250LFRyZWJ1Y2hldCBNUyxSb2JvdG8sVWJ1bnR1LHNhbnMtc2VyaWY7Zm9udC1mZWF0dXJlLXNldHRpbmdzOiJ0bnVtIiBvbiwibG51bSIgb247LS11aS1saWItdHlwb2dyYXBoeS1saW5lLWhlaWdodDoxNnB4O2xpbmUtaGVpZ2h0OnZhcigtLXVpLWxpYi10eXBvZ3JhcGh5LWxpbmUtaGVpZ2h0KTstLXVpLWxpYi10eXBvZ3JhcGh5LWZvbnQtc2l6ZToxMnB4O2NvbG9yOnZhcigtLWNvbG9yLWNvbnRlbnQtcHJpbWFyeS1uZXV0cmFsLW5vcm1hbCk7Zm9udC1zaXplOnZhcigtLXVpLWxpYi10eXBvZ3JhcGh5LWZvbnQtc2l6ZSk7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC13ZWlnaHQ6NjAwO21hcmdpbi1pbmxpbmUtc3RhcnQ6MXB4fS5jb250YWluZXItTm0xNzR6cVN7YWxpZ24taXRlbXM6Y2VudGVyO2Rpc3BsYXk6ZmxleDtpc29sYXRpb246aXNvbGF0ZX0uZmxhZ1dyYXAtRUJOWmRDSDF7YWxpZ24taXRlbXM6Y2VudGVyO2JvcmRlci1yYWRpdXM6NHB4O2NvbG9yOnZhcigtLWNvbG9yLWJyYW5kKTtjdXJzb3I6ZGVmYXVsdDtkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OmNlbnRlcjtwYWRkaW5nOjNweH0uZmxhZ1dyYXAtRUJOWmRDSDEgLmljb24tRUJOWmRDSDF7ZGlzcGxheTpmbGV4O2hlaWdodDoyMHB4O21hcmdpbi1pbmxpbmUtZW5kOjRweDtwYWRkaW5nOjRweDt3aWR0aDoyMHB4fS5mbGFnV3JhcC1FQk5aZENIMSAuaWNvbi1FQk5aZENIMSBzdmd7aGVpZ2h0OjIwcHg7d2lkdGg6MjBweH1AbWVkaWEgKGFueS1ob3Zlcjpob3Zlcil7LmZsYWdXcmFwLUVCTlpkQ0gxOmhvdmVye2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItYmctcHJpbWFyeS1ob3Zlcik7Y29sb3I6dmFyKC0tY29sb3ItYnJhbmQtaG92ZXIpfS5mbGFnV3JhcC1FQk5aZENIMTpob3ZlciAuY2FyZXQtRUJOWmRDSDF7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMnB4KX19LnRpdGxlLUVCTlpkQ0gxe3doaXRlLXNwYWNlOm5vd3JhcH0uY2FyZXQtRUJOWmRDSDF7ZGlzcGxheTpmbGV4O2hlaWdodDoxOHB4O2p1c3RpZnktY29udGVudDpjZW50ZXI7d2lkdGg6MThweH0uYnV0dG9uQ29sb3JzLXBlTWpRYnV6ey0tdWktbGliLWljb25CdXR0b24taWNvbi1jb2xvci1kZWZhdWx0OnZhcigtLWNvbG9yLWNvbnRlbnQtcHJpbWFyeS1uZXV0cmFsLWJvbGQpOy0tdWktbGliLWljb25CdXR0b24taWNvbi1jb2xvci1ob3Zlcjp2YXIoLS1jb2xvci1jb250ZW50LXByaW1hcnktbmV1dHJhbC1ib2xkKX0uYnV0dG9uQ29sb3JzLXBlTWpRYnV6OmFjdGl2ZXstLXVpLWxpYi1pY29uQnV0dG9uLWJhY2tncm91bmQtY29sb3ItaG92ZXI6dmFyKC0tY29sb3ItY29udGFpbmVyLWZpbGwtcHJpbWFyeS1uZXV0cmFsKX0ud3JhcC1CZDA1QmpVYXtkaXNwbGF5OmNvbnRlbnRzfS5pdGVtLUJkMDVCalVhe2hlaWdodDo0MHB4O3BhZGRpbmctaW5saW5lLWVuZDoyNHB4fS5pdGVtLUJkMDVCalVhOmZpcnN0LWNoaWxke2dyaWQtY29sdW1uLWVuZDozO21pbi13aWR0aDowO3BhZGRpbmctaW5saW5lLXN0YXJ0OjIwcHh9Lml0ZW0tQmQwNUJqVWE6bGFzdC1jaGlsZHtncmlkLWNvbHVtbi1zdGFydDpzcGFuIDM7cGFkZGluZy1pbmxpbmUtZW5kOjE3cHh9Lml0ZW0tQmQwNUJqVWEsLndyYXAtQmQwNUJqVWEuc21hbGwtQmQwNUJqVWF7YWxpZ24taXRlbXM6Y2VudGVyO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItYmctcHJpbWFyeSk7ZGlzcGxheTpmbGV4O2dhcDo4cHg7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47cG9zaXRpb246c3RpY2t5O3RvcDotMXB4O3otaW5kZXg6MX0ud3JhcC1CZDA1QmpVYS5uZXdTdHlsZXMtQmQwNUJqVWF7ZmxleDowIDAgYXV0bztmbGV4LWZsb3c6d3JhcDtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1zdGFydDtvdmVyZmxvdy14OmF1dG87cGFkZGluZzo4cHggMjBweH1Ac3VwcG9ydHMgKC1tb3otYXBwZWFyYW5jZTpub25lKXsud3JhcC1CZDA1QmpVYS5uZXdTdHlsZXMtQmQwNUJqVWF7c2Nyb2xsYmFyLXdpZHRoOm5vbmV9fS53cmFwLUJkMDVCalVhLm5ld1N0eWxlcy1CZDA1QmpVYS5zYi1zY3JvbGxiYXItd3JhcHtkaXNwbGF5Om5vbmV9LndyYXAtQmQwNUJqVWEubmV3U3R5bGVzLUJkMDVCalVhOjotd2Via2l0LXNjcm9sbGJhcntkaXNwbGF5Om5vbmU7aGVpZ2h0OjA7d2lkdGg6MH0ud3JhcC1CZDA1QmpVYS5uZXdTdHlsZXMtQmQwNUJqVWE6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iLC53cmFwLUJkMDVCalVhLm5ld1N0eWxlcy1CZDA1QmpVYTo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2t7ZGlzcGxheTpub25lfS53cmFwLUJkMDVCalVhLm5ld1N0eWxlcy1CZDA1QmpVYTo6LXdlYmtpdC1zY3JvbGxiYXItY29ybmVye2Rpc3BsYXk6bm9uZX0ud3JhcC1CZDA1QmpVYS5uZXdTdHlsZXMtQmQwNUJqVWEubW9iaWxlLUJkMDVCalVhe2ZsZXgtZmxvdzp1bnNldH0udGV4dC1CZDA1QmpVYXtjb2xvcjp2YXIoLS1jb2xvci10ZXh0LXNlY29uZGFyeSk7LS11aS1saWItdHlwb2dyYXBoeS1saW5lLWhlaWdodDoxNnB4Oy0tdWktbGliLXR5cG9ncmFwaHktZm9udC1zaXplOjExcHg7bGV0dGVyLXNwYWNpbmc6LjRweDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpczt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7d2hpdGUtc3BhY2U6bm93cmFwfS5leGNoYW5nZS1CZDA1QmpVYSwudGV4dC1CZDA1QmpVYXtmb250LWZhbWlseTotYXBwbGUtc3lzdGVtLEJsaW5rTWFjU3lzdGVtRm9udCxUcmVidWNoZXQgTVMsUm9ib3RvLFVidW50dSxzYW5zLXNlcmlmO2ZvbnQtZmVhdHVyZS1zZXR0aW5nczoidG51bSIgb24sImxudW0iIG9uO2ZvbnQtc2l6ZTp2YXIoLS11aS1saWItdHlwb2dyYXBoeS1mb250LXNpemUpO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtd2VpZ2h0OjQwMDtsaW5lLWhlaWdodDp2YXIoLS11aS1saWItdHlwb2dyYXBoeS1saW5lLWhlaWdodCl9LmV4Y2hhbmdlLUJkMDVCalVhey0tdWktbGliLXR5cG9ncmFwaHktZm9udC1zaXplOjE0cHg7LS11aS1saWItdHlwb2dyYXBoeS1saW5lLWhlaWdodDoxOHB4fS5maWx0ZXJJdGVtLUJkMDVCalVhe2FsaWduLWl0ZW1zOmNlbnRlcjtkaXNwbGF5OmZsZXh9LnRyYWRpbmdGaWx0ZXJCdXR0b25XcmFwLUJkMDVCalVhe21hcmdpbi1pbmxpbmUtZW5kOjhweH0uZW1wdHlTcGFjZS1CZDA1QmpVYXtmbGV4LXNocmluazowO2hlaWdodDo4cHh9W2RhdGEtdGhlbWU9bGlnaHRdey0tXzAtazUxTjp2YXIoLS1jb2xvci1yaXBlLXJlZC00MDApOy0tXzEtazUxTjp2YXIoLS1jb2xvci1jb2xkLWdyYXktMTAwKTstLV8yLWs1MU46dmFyKC0tY29sb3Itd2hpdGUpOy0tXzMtazUxTjp2YXIoLS1jb2xvci1yaXBlLXJlZC02MDApOy0tXzQtazUxTjp2YXIoLS1jb2xvci1jb2xkLWdyYXktOTAwKX1bZGF0YS10aGVtZT1kYXJrXXstLV8wLWs1MU46dmFyKC0tY29sb3ItcmlwZS1yZWQtNDAwKTstLV8xLWs1MU46dmFyKC0tY29sb3ItY29sZC1ncmF5LTgwMCk7LS1fMi1rNTFOOnZhcigtLWNvbG9yLWNvbGQtZ3JheS04NTApOy0tXzMtazUxTjp2YXIoLS1jb2xvci1yaXBlLXJlZC01MDApOy0tXzQtazUxTjp2YXIoLS1jb2xvci1jb2xkLWdyYXktMjAwKX1Aa2V5ZnJhbWVzIGhpZ2hsaWdodC1hbmltYXRpb24tdGhlbWUtbGlnaHQtcl9mNVFhbld7NTAle2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItdHYtYmx1ZS01MCl9fUBrZXlmcmFtZXMgaGlnaGxpZ2h0LWFuaW1hdGlvbi10aGVtZS1kYXJrLXJfZjVRYW5XezUwJXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLXR2LWJsdWUtYTkwMCl9fS5pdGVtUm93LXJfZjVRYW5Xe2Rpc3BsYXk6Y29udGVudHN9Lml0ZW1Sb3ctcl9mNVFhblcubXVsdGlMaW5lLXJfZjVRYW5Xe2FsaWduLWl0ZW1zOmNlbnRlcjtkaXNwbGF5OmZsZXg7aGVpZ2h0OjUycHh9QG1lZGlhIChtYXgtd2lkdGg6NDQwcHgpey5pdGVtUm93LXJfZjVRYW5XLm11bHRpTGluZS1yX2Y1UWFuVzpoYXMoLmNvbXBvc2l0ZURlc2NyaXB0aW9uLXJfZjVRYW5XKXtoZWlnaHQ6NzBweH19Lml0ZW1Sb3ctcl9mNVFhblcubXVsdGlMaW5lLXJfZjVRYW5XIC5jZWxsLXJfZjVRYW5Xe2JveC1zaXppbmc6Ym9yZGVyLWJveDtoZWlnaHQ6MTAwJX0uaXRlbVJvdy1yX2Y1UWFuVy5tdWx0aUxpbmUtcl9mNVFhblcgLml0ZW1JbmZvQ2VsbC1yX2Y1UWFuV3tmbGV4OjEgMSBhdXRvO21heC13aWR0aDpub25lO3BhZGRpbmctaW5saW5lLWVuZDoxNnB4fS5pdGVtUm93LXJfZjVRYW5XLm11bHRpTGluZS1yX2Y1UWFuVyAuZGVzY3JpcHRpb24tcl9mNVFhbld7anVzdGlmeS1jb250ZW50OmZsZXgtc3RhcnR9Lml0ZW1Sb3ctcl9mNVFhblcubXVsdGlMaW5lLXJfZjVRYW5XIC5zeW1ib2xEZXNjcmlwdGlvbi1yX2Y1UWFuV3tjb2xvcjp2YXIoLS1jb2xvci1kZWZhdWx0LWdyYXkpO2ZvbnQtc2l6ZToxMnB4O2hlaWdodDoxN3B4O2xpbmUtaGVpZ2h0OjE3cHg7cGFkZGluZy1pbmxpbmUtZW5kOjB9QG1lZGlhIChtYXgtd2lkdGg6NDQwcHgpey5pdGVtUm93LXJfZjVRYW5XLm11bHRpTGluZS1yX2Y1UWFuVyAuY29tcG9zaXRlRGVzY3JpcHRpb24tcl9mNVFhbld7aGVpZ2h0OmF1dG99fS5pdGVtUm93LXJfZjVRYW5XLm11bHRpTGluZS1yX2Y1UWFuVyAuZmxhZy1yX2Y1UWFuV3ttYXJnaW4taW5saW5lLXN0YXJ0OjhweH0uaXRlbVJvdy1yX2Y1UWFuVy5tdWx0aUxpbmUtcl9mNVFhblcgLmV4Y2hhbmdlRGVzY3JpcHRpb24tcl9mNVFhbld7ZmxleC1kaXJlY3Rpb246Y29sdW1uLXJldmVyc2V9Lml0ZW1Sb3ctcl9mNVFhblcubXVsdGlMaW5lLXJfZjVRYW5XIC5leGNoYW5nZU5hbWUtcl9mNVFhblcsLml0ZW1Sb3ctcl9mNVFhblcubXVsdGlMaW5lLXJfZjVRYW5XIC5tYXJrZXRUeXBlLXJfZjVRYW5Xe3RleHQtYWxpZ246ZW5kfS5pdGVtUm93LXJfZjVRYW5XLm11bHRpTGluZS1yX2Y1UWFuVyAuZXhjaGFuZ2VOYW1lLXJfZjVRYW5Xe21hcmdpbi1pbmxpbmUtZW5kOjB9Lml0ZW1Sb3ctcl9mNVFhblcubXVsdGlMaW5lLXJfZjVRYW5XIC5tYXJrZXRUeXBlLXJfZjVRYW5Xe2xpbmUtaGVpZ2h0OjE3cHg7bWFyZ2luLWlubGluZS1lbmQ6MH0uaXRlbVJvdy1yX2Y1UWFuVy5tdWx0aUxpbmUtcl9mNVFhblcgLmFjdGlvbkhhbmRsZVdyYXAtcl9mNVFhbld7YWxpZ24taXRlbXM6Y2VudGVyfS5pdGVtUm93LXJfZjVRYW5XLm11bHRpTGluZS1yX2Y1UWFuVyAuc291cmNlLXJfZjVRYW5Xe2p1c3RpZnktY29udGVudDpmbGV4LWVuZDttYXJnaW4tdG9wOjRweH0uaXRlbVJvdy1yX2Y1UWFuVy5hY3RpdmUtcl9mNVFhblcgLmNlbGwtcl9mNVFhblc6YWZ0ZXIsLml0ZW1Sb3ctcl9mNVFhblcuc2VsZWN0ZWQtcl9mNVFhblcgLmNlbGwtcl9mNVFhblc6YWZ0ZXJ7Ym9yZGVyLWJvdHRvbS13aWR0aDoycHg7Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci10b3Atd2lkdGg6MnB4O2JvdHRvbTowO2NvbnRlbnQ6IiI7aW5zZXQtaW5saW5lLWVuZDowO2luc2V0LWlubGluZS1zdGFydDowO3BvaW50ZXItZXZlbnRzOm5vbmU7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7ei1pbmRleDoxfS5pdGVtUm93LXJfZjVRYW5XLmFjdGl2ZS1yX2Y1UWFuVyAubmVzdGVkQm9yZGVyT3ZlcmxhcC1yX2Y1UWFuVysuY2VsbC1yX2Y1UWFuVzphZnRlciwuaXRlbVJvdy1yX2Y1UWFuVy5zZWxlY3RlZC1yX2Y1UWFuVyAubmVzdGVkQm9yZGVyT3ZlcmxhcC1yX2Y1UWFuVysuY2VsbC1yX2Y1UWFuVzphZnRlcntib3JkZXItZW5kLXN0YXJ0LXJhZGl1czo0cHg7Ym9yZGVyLWlubGluZS1zdGFydC13aWR0aDoycHg7Ym9yZGVyLXN0YXJ0LXN0YXJ0LXJhZGl1czo0cHh9Lml0ZW1Sb3ctcl9mNVFhblcuYWN0aXZlLXJfZjVRYW5XIC5jZWxsLXJfZjVRYW5XOmFmdGVye2JvcmRlci1jb2xvcjp2YXIoLS1jb2xvci1jb250YWluZXItZmlsbC1wcmltYXJ5LW5ldXRyYWwtZXh0cmEtYm9sZCl9Lml0ZW1Sb3ctcl9mNVFhblcuc2VsZWN0ZWQtcl9mNVFhblcgLmNlbGwtcl9mNVFhblc6YWZ0ZXJ7Ym9yZGVyLWNvbG9yOnZhcigtLWNvbG9yLWNvbnRhaW5lci1maWxsLXByaW1hcnktYWNjZW50KX0uaXRlbVJvdy1yX2Y1UWFuVzphY3RpdmU6bm90KDpmb2N1cy13aXRoaW4pIC5jZWxsLXJfZjVRYW5Xe2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItY29udGFpbmVyLWZpbGwtcHJpbWFyeS1uZXV0cmFsLWxpZ2h0KX0uaXRlbVJvdy1yX2Y1UWFuVy5leHBhbmRlZC1yX2Y1UWFuVyAuY2VsbC1yX2Y1UWFuVywuaXRlbVJvdy1yX2Y1UWFuVy5uZXN0ZWQtcl9mNVFhblcgLmNlbGwtcl9mNVFhbld7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1jb250YWluZXItZmlsbC1zZWNvbmRhcnktbmV1dHJhbC10aGluKTstLXR2LWNvbG9yLWxpc3QtaXRlbS1idXR0b24tYmFja2dyb3VuZDp2YXIoLS1jb2xvci1jb250YWluZXItZmlsbC1zZWNvbmRhcnktbmV1dHJhbC10aGluKX0uaXRlbVJvdy1yX2Y1UWFuVy5uZXN0ZWQtcl9mNVFhblcgLm5lc3RlZEJvcmRlck92ZXJsYXAtcl9mNVFhblc6YmVmb3Jle2NvbnRlbnQ6IiJ9Lml0ZW1Sb3ctcl9mNVFhblcuaG92ZXItcl9mNVFhblcgLmNlbGwtcl9mNVFhbld7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1jb250YWluZXItZmlsbC1wcmltYXJ5LW5ldXRyYWwtbGlnaHQpfUBtZWRpYSAoYW55LWhvdmVyOmhvdmVyKXsuaXRlbVJvdy1yX2Y1UWFuVzpob3ZlciAuY2VsbC1yX2Y1UWFuV3tiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLWNvbnRhaW5lci1maWxsLXByaW1hcnktbmV1dHJhbC1saWdodCl9fS5pdGVtUm93LXJfZjVRYW5XLmhvdmVyLXJfZjVRYW5XIC5uZXN0ZWRCb3JkZXJPdmVybGFwLXJfZjVRYW5XOmJlZm9yZSwuaXRlbVJvdy1yX2Y1UWFuVy5ob3Zlci1yX2Y1UWFuVysubmVzdGVkLXJfZjVRYW5XIC5uZXN0ZWRCb3JkZXJPdmVybGFwLXJfZjVRYW5XOmJlZm9yZXtjb250ZW50Om5vbmV9QG1lZGlhIChhbnktaG92ZXI6aG92ZXIpey5pdGVtUm93LXJfZjVRYW5XOmhvdmVyIC5uZXN0ZWRCb3JkZXJPdmVybGFwLXJfZjVRYW5XOmJlZm9yZSwuaXRlbVJvdy1yX2Y1UWFuVzpob3ZlcisubmVzdGVkLXJfZjVRYW5XIC5uZXN0ZWRCb3JkZXJPdmVybGFwLXJfZjVRYW5XOmJlZm9yZXtjb250ZW50Om5vbmV9fS5pdGVtUm93LXJfZjVRYW5XLmhpZ2hsaWdodGVkLXJfZjVRYW5XIC5jZWxsLXJfZjVRYW5Xe2FuaW1hdGlvbi1kdXJhdGlvbjoxczthbmltYXRpb24taXRlcmF0aW9uLWNvdW50OjE7YW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjplYXNlfS5pdGVtUm93LXJfZjVRYW5XLmhpZ2hsaWdodGVkLXJfZjVRYW5XLmxpZ2h0LXJfZjVRYW5XIC5jZWxsLXJfZjVRYW5Xe2FuaW1hdGlvbi1uYW1lOmhpZ2hsaWdodC1hbmltYXRpb24tdGhlbWUtbGlnaHQtcl9mNVFhbld9Lml0ZW1Sb3ctcl9mNVFhblcuaGlnaGxpZ2h0ZWQtcl9mNVFhblcuZGFyay1yX2Y1UWFuVyAuY2VsbC1yX2Y1UWFuV3thbmltYXRpb24tbmFtZTpoaWdobGlnaHQtYW5pbWF0aW9uLXRoZW1lLWRhcmstcl9mNVFhbld9QG1lZGlhIChhbnktaG92ZXI6aG92ZXIpey5pdGVtUm93LXJfZjVRYW5XOmhvdmVyIC5tYXJrZWRGbGFnLXJfZjVRYW5Xe2Rpc3BsYXk6ZmxleH19Lml0ZW1Sb3ctcl9mNVFhblcgLml0ZW1JbmZvQ2VsbC1yX2Y1UWFuV3tkaXNwbGF5OmZsZXg7bWF4LXdpZHRoOjI0MHB4O292ZXJmbG93OmhpZGRlbjtwYWRkaW5nLWlubGluZS1lbmQ6MjRweH0uaXRlbVJvdy1yX2Y1UWFuVyAuaXRlbUluZm9DZWxsLXJfZjVRYW5XLm9mZnNldC1yX2Y1UWFuV3twYWRkaW5nLWlubGluZS1zdGFydDo4cHh9Lml0ZW1Sb3ctcl9mNVFhblcgLml0ZW1JbmZvQ2VsbC1yX2Y1UWFuVyAuZGVzY3JpcHRpb24tcl9mNVFhbld7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO292ZXJmbG93OmhpZGRlbn0uaXRlbVJvdy1yX2Y1UWFuVyAuaXRlbUluZm9DZWxsLXJfZjVRYW5XIC5kZXNjcmlwdGlvbi1yX2Y1UWFuVy5vZmZzZXQtcl9mNVFhbld7bWFyZ2luLWlubGluZS1zdGFydDo0NHB4fS5pdGVtUm93LXJfZjVRYW5XIC5kZXNjcmlwdGlvbkNlbGwtcl9mNVFhbld7ZGlzcGxheTpmbGV4O21pbi13aWR0aDowfS5pdGVtUm93LXJfZjVRYW5XIC5kZXNjcmlwdGlvbkNlbGwtcl9mNVFhblcuYWRkaXRpb24tcl9mNVFhbld7Z3JpZC1jb2x1bW46My81fS5pdGVtUm93LXJfZjVRYW5XIC5leGNoYW5nZUNlbGwtcl9mNVFhbld7YWxpZ24taXRlbXM6Y2VudGVyO2Rpc3BsYXk6ZmxleDtmbGV4LXNocmluazowO2p1c3RpZnktY29udGVudDpmbGV4LWVuZDtvdmVyZmxvdzpoaWRkZW47cGFkZGluZy1pbmxpbmUtZW5kOjIwcHh9QG1lZGlhIChtYXgtd2lkdGg6NDQwcHgpey5pdGVtUm93LXJfZjVRYW5XIC5leGNoYW5nZUNlbGwtcl9mNVFhbld7bWF4LXdpZHRoOjEyNHB4fS5pdGVtUm93LXJfZjVRYW5XIC5leGNoYW5nZUNlbGwtcl9mNVFhblc6aGFzKC5tdWx0aXBsZUZsYWdzLXJfZjVRYW5XKXttYXgtd2lkdGg6MTgwcHh9fS5pdGVtUm93LXJfZjVRYW5XIC5leGNoYW5nZUNlbGwtcl9mNVFhblcuaGlkZGVuLXJfZjVRYW5Xe2Rpc3BsYXk6bm9uZX0uaXRlbVJvdy1yX2Y1UWFuVy5uZXN0ZWQtcl9mNVFhblcgLmV4Y2hhbmdlQ2VsbC1yX2Y1UWFuV3twYWRkaW5nLWlubGluZS1lbmQ6NDZweH0uaXRlbVJvdy1yX2Y1UWFuVyAuaG92ZXJDZWxsLXJfZjVRYW5Xe2FsaWduLWl0ZW1zOmNlbnRlcjtkaXNwbGF5OmZsZXg7cGFkZGluZy1pbmxpbmUtZW5kOjIwcHh9Lml0ZW1Sb3ctcl9mNVFhblcgLmNlbGwtcl9mNVFhblcgLmhvdmVyQ2VsbC1yX2Y1UWFuVzphZnRlcntjb250ZW50Om5vbmV9Lm5lc3RlZEJvcmRlck92ZXJsYXAtcl9mNVFhbld7aGVpZ2h0OjEwMCU7cG9zaXRpb246cmVsYXRpdmU7d2lkdGg6MH0ubmVzdGVkQm9yZGVyT3ZlcmxhcC1yX2Y1UWFuVzpiZWZvcmV7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1jb250YWluZXItZmlsbC1zZWNvbmRhcnktbmV1dHJhbC10aGluKTtoZWlnaHQ6NHB4O2luc2V0LWlubGluZS1lbmQ6MDtpbnNldC1pbmxpbmUtc3RhcnQ6MDtwb2ludGVyLWV2ZW50czpub25lO3Bvc2l0aW9uOmFic29sdXRlO3RvcDotMXB4O3dpZHRoOjEycHh9LmFjdGlvbkhhbmRsZVdyYXAtcl9mNVFhbld7YWxpZ24taXRlbXM6Y2VudGVyO2Rpc3BsYXk6ZmxleDtmbGV4LXNocmluazowfS5hY3Rpb25IYW5kbGVXcmFwLXJfZjVRYW5XLmZpeGVkV2lkdGgtcl9mNVFhbld7d2lkdGg6MjBweH0uZXhwYW5kVG9nZ2xlLXJfZjVRYW5Xe21hcmdpbi1ibG9jazowIDA7bWFyZ2luLWlubGluZTo2cHggLTJweH0uc3ltYm9sRGVzY3JpcHRpb24tcl9mNVFhblcsLnN5bWJvbFRpdGxlLXJfZjVRYW5Xe2NvbG9yOnZhcigtLWNvbG9yLWNvbnRlbnQtcHJpbWFyeS1uZXV0cmFsLWJvbGQpfS5zeW1ib2xEZXNjcmlwdGlvbi1yX2Y1UWFuVy5pbnZhbGlkLXJfZjVRYW5XLC5zeW1ib2xUaXRsZS1yX2Y1UWFuVy5pbnZhbGlkLXJfZjVRYW5Xe2NvbG9yOnZhcigtLV8wLWs1MU4pfS5zeW1ib2xEZXNjcmlwdGlvbi1yX2Y1UWFuVyBlbSwuc3ltYm9sVGl0bGUtcl9mNVFhblcgZW17Y29sb3I6dmFyKC0tY29sb3ItdHYtYmx1ZS01MDApO2ZvbnQtc3R5bGU6bm9ybWFsfS5zeW1ib2xEZXNjcmlwdGlvbi1yX2Y1UWFuVy5ub0Rlc2NyaXB0aW9uLXJfZjVRYW5XLC5zeW1ib2xUaXRsZS1yX2Y1UWFuVy5ub0Rlc2NyaXB0aW9uLXJfZjVRYW5Xe3BhZGRpbmctdG9wOjFweH0uaGlnaGxpZ2h0ZWRUZXh0LXJfZjVRYW5Xe2ZvbnQtd2VpZ2h0OjcwMH0uc3ltYm9sVGl0bGUtcl9mNVFhbld7Zm9udC1zaXplOjE2cHg7bGluZS1oZWlnaHQ6MjRweDt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2V9LnN5bWJvbERlc2NyaXB0aW9uLXJfZjVRYW5Xe2ZvbnQtc2l6ZToxNHB4O2xpbmUtaGVpZ2h0OjM5cHg7bWFyZ2luLWlubGluZS1lbmQ6YXV0bztwYWRkaW5nLWlubGluZS1lbmQ6MjRweH0uY29tcG9zaXRlRGVzY3JpcHRpb24tcl9mNVFhbld7YWxpZ24taXRlbXM6Y2VudGVyO2Rpc3BsYXk6aW5saW5lLWZsZXg7bWF4LXdpZHRoOjEwMCV9QG1lZGlhIChtYXgtd2lkdGg6NDQwcHgpey5jb21wb3NpdGVEZXNjcmlwdGlvbi1yX2Y1UWFuV3thbGlnbi1pdGVtczpmbGV4LXN0YXJ0O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbn19LnN5bWJvbERlc2NyaXB0aW9uTWFpbi1yX2Y1UWFuV3tmbGV4LXNocmluazoxO21heC13aWR0aDoxMDAlO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3doaXRlLXNwYWNlOm5vd3JhcH0uc3ltYm9sRGVzY3JpcHRpb25EZXRhaWxzLXJfZjVRYW5Xe2NvbG9yOnZhcigtLWNvbG9yLWNvbnRlbnQtcHJpbWFyeS1uZXV0cmFsKTtmbGV4LXNocmluazowfS5zeW1ib2xEZXNjcmlwdGlvbkRldGFpbHMtcl9mNVFhblc6YmVmb3Jle2NvbnRlbnQ6IuKAoiI7bWFyZ2luOjAgNHB4fUBtZWRpYSAobWF4LXdpZHRoOjQ0MHB4KXsuc3ltYm9sRGVzY3JpcHRpb25EZXRhaWxzLXJfZjVRYW5XOmJlZm9yZXtjb250ZW50Om5vbmV9fS5leGNoYW5nZURlc2NyaXB0aW9uLXJfZjVRYW5Xe2Rpc3BsYXk6ZmxleDtvdmVyZmxvdzpoaWRkZW59LmZsYWctcl9mNVFhbld7YWxpZ24taXRlbXM6Y2VudGVyO2Rpc3BsYXk6ZmxleDtmbGV4LXNocmluazowfS5leGNoYW5nZU5hbWUtcl9mNVFhbld7Y29sb3I6dmFyKC0tY29sb3ItY29udGVudC1wcmltYXJ5LW5ldXRyYWwtYm9sZCk7Zm9udC1zaXplOjE0cHg7bGluZS1oZWlnaHQ6MjFweDttYXJnaW4taW5saW5lLWVuZDo4cHh9Lm5hcnJvdy1yX2Y1UWFuV3ttYXgtd2lkdGg6MTAwcHh9LndpZGUtcl9mNVFhbld7bWF4LXdpZHRoOjE4MHB4fS5tYXJrZXRUeXBlLXJfZjVRYW5Xe2NvbG9yOnZhcigtLWNvbG9yLWRlZmF1bHQtZ3JheSk7Zm9udC1zaXplOjEycHg7bGluZS1oZWlnaHQ6MjFweDttYXJnaW4taW5saW5lLWVuZDo4cHh9LmV4Y2hhbmdlTmFtZS1yX2Y1UWFuVywubWFya2V0VHlwZS1yX2Y1UWFuV3t0ZXh0LWFsaWduOnN0YXJ0fS5leGNoYW5nZU5hbWUtcl9mNVFhblcsLm1hcmtldFR5cGUtcl9mNVFhblcsLnN5bWJvbERlc2NyaXB0aW9uLXJfZjVRYW5XLC5zeW1ib2xUaXRsZS1yX2Y1UWFuV3tvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpczt3aGl0ZS1zcGFjZTpub3dyYXB9LmRhdGFNb2RlLXJfZjVRYW5Xe2NvbG9yOnZhcigtLWNvbG9yLWdyYXBlcy1wdXJwbGUtNDAwKTtmb250LXNpemU6MTBweDtmb250LXdlaWdodDo3MDA7bGluZS1oZWlnaHQ6MTJweDttYXJnaW4taW5saW5lLXN0YXJ0OjJweDt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7dmVydGljYWwtYWxpZ246dG9wfS5jZWxsLXJfZjVRYW5Xe2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItY29udGFpbmVyLWZpbGwtdGVydGlhcnktaW52ZXJzZSk7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgdmFyKC0tY29sb3ItY29udGFpbmVyLWZpbGwtcHJpbWFyeS1uZXV0cmFsLWxpZ2h0KTtjdXJzb3I6ZGVmYXVsdDtoZWlnaHQ6MzlweDtpc29sYXRpb246aXNvbGF0ZTtwb3NpdGlvbjpyZWxhdGl2ZX0uY2VsbC1yX2Y1UWFuVzphZnRlcntib3JkZXItd2lkdGg6MH0uYWN0aW9uc0NlbGwtcl9mNVFhbld7YWxpZ24taXRlbXM6Y2VudGVyO2Rpc3BsYXk6ZmxleDtwYWRkaW5nLWlubGluZS1lbmQ6MTJweH0uYWN0aW9uc0NlbGwtcl9mNVFhblcgLmFjdGlvbi1yX2Y1UWFuV3toZWlnaHQ6MjhweDttYXJnaW4taW5saW5lLWVuZDo4cHg7d2lkdGg6MjhweDstLXR2LWxpc3QtaXRlbS1idXR0b24tYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1fMi1rNTFOKX0uYWN0aW9uc0NlbGwtcl9mNVFhblcgLmFjdGlvbi1yX2Y1UWFuVy5zZWxlY3RlZC1yX2Y1UWFuV3tiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLWxpc3QtaXRlbS1iZy1zZWxlY3RlZC1ob3Zlcil9LmFjdGlvbnNDZWxsLXJfZjVRYW5XIC50YXJnZXRBY3Rpb24tcl9mNVFhblcuc2VsZWN0ZWQtcl9mNVFhbld7Y29sb3I6dmFyKC0tXzQtazUxTil9LmFjdGlvbnNDZWxsLXJfZjVRYW5XIC5yZW1vdmVBY3Rpb24tcl9mNVFhblcuc2VsZWN0ZWQtcl9mNVFhbld7Y29sb3I6dmFyKC0tXzMtazUxTil9QG1lZGlhIChhbnktaG92ZXI6aG92ZXIpey5hY3Rpb25zQ2VsbC1yX2Y1UWFuVyAucmVtb3ZlQWN0aW9uLXJfZjVRYW5XOmhvdmVye2NvbG9yOnZhcigtLV8zLWs1MU4pfX0uYWN0aW9uc0NlbGwtcl9mNVFhblcgLmFkZEFjdGlvbi1yX2Y1UWFuV3tjb2xvcjp2YXIoLS1jb2xvci1jb250ZW50LXByaW1hcnktbmV1dHJhbC1ib2xkKX1AbWVkaWEgKGFueS1ob3Zlcjpob3Zlcil7LmFjdGlvbnNDZWxsLXJfZjVRYW5XIC5hZGRBY3Rpb24tcl9mNVFhblc6aG92ZXJ7Y29sb3I6dmFyKC0tY29sb3ItY29udGVudC1wcmltYXJ5LW5ldXRyYWwtYm9sZCl9fS5hY3Rpb25zQ2VsbC1yX2Y1UWFuVzphZnRlciwuY2VsbC1yX2Y1UWFuVzpoYXMoKy5lbXB0eUFjdGlvbnMtcl9mNVFhblcpOmFmdGVyLC5jZWxsLXJfZjVRYW5XOmhhcygrLmV4Y2hhbmdlQ2VsbC1yX2Y1UWFuVy5oaWRkZW4tcl9mNVFhblcrLmVtcHR5QWN0aW9ucy1yX2Y1UWFuVyk6YWZ0ZXJ7Ym9yZGVyLWVuZC1lbmQtcmFkaXVzOjRweDtib3JkZXItaW5saW5lLWVuZC13aWR0aDoycHg7Ym9yZGVyLXN0YXJ0LWVuZC1yYWRpdXM6NHB4fS5tYXJrZWRGbGFnV3JhcC1yX2Y1UWFuV3thbGlnbi1pdGVtczpjZW50ZXI7ZGlzcGxheTpmbGV4O2hlaWdodDoxMDAlO3Bvc2l0aW9uOnJlbGF0aXZlfS5tYXJrZWRGbGFnV3JhcC1yX2Y1UWFuVy5vZmZzZXQtcl9mNVFhbld7bWFyZ2luLWlubGluZS1zdGFydDotOHB4fS5tYXJrZWRGbGFnLXJfZjVRYW5Xe2Rpc3BsYXk6bm9uZX0ubWFya2VkRmxhZ01vYmlsZS1yX2Y1UWFuV3tkaXNwbGF5OmZsZXh9LmxvZ28tcl9mNVFhbld7ZGlzcGxheTpmbGV4O21hcmdpbi1pbmxpbmUtc3RhcnQ6MjBweH0uc291cmNlLXJfZjVRYW5Xe2FsaWduLWl0ZW1zOmNlbnRlcjtkaXNwbGF5OmZsZXg7b3ZlcmZsb3c6aGlkZGVufS5wcmltYXJ5SWNvbi1yX2Y1UWFuV3tiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLW92ZXJsYXktYWNjZW50LTItbGlnaHQpO2JvcmRlci1yYWRpdXM6NnB4O2NvbG9yOnZhcigtLWNvbG9yLWNvbnRlbnQtcHJpbWFyeS1hY2NlbnQtaGVhdnkpO2hlaWdodDoxOHB4O21hcmdpbi1pbmxpbmUtZW5kOjRweH0ucHJvbW9CYWRnZS1yX2Y1UWFuV3thbGlnbi1zZWxmOmNlbnRlcjttYXJnaW4taW5saW5lLWVuZDo4cHg7LS11aS1saWItYmFkZ2UtY29sb3ItY29udGVudDp2YXIoLS1jb2xvci1jb250ZW50LXRlcnRpYXJ5LWludmVyc2UpOy0tdWktbGliLWJhZGdlLWJhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDEzNWRlZywjYjEzMWI4LCMyYzIzOTEgMjAlLCMwYjA5MjMgNDAlLCMwYjA5MjMgNjAlLCMyYzIzOTEgODAlLCNiMTMxYjgpfS5wcm9tb0ljb24tcl9mNVFhbld7bWFyZ2luLWlubGluZS1lbmQ6NHB4Oy0tdWktbGliLWJhZGdlLXBhZGRpbmctbGVmdDoxcHg7LS11aS1saWItYmFkZ2UtcGFkZGluZy1yaWdodDoxcHh9LndyYXAtRlNYNkFhdFh7Y29udGFpbjpzdHJpY3Q7Y3Vyc29yOmRlZmF1bHQ7aGVpZ2h0OjEwMCU7b3ZlcmZsb3c6aGlkZGVuO3Bvc2l0aW9uOnJlbGF0aXZlO3otaW5kZXg6MH0ud3JhcC1GU1g2QWF0WC53YXRjaGxpc3QtRlNYNkFhdFh7cGFkZGluZy10b3A6MH0ud3JhcC1GU1g2QWF0WC5ub0ZlZWQtRlNYNkFhdFh7bWF4LWhlaWdodDo0MHB4fS53cmFwLUZTWDZBYXRYLm5ld1N0eWxlcy1GU1g2QWF0WHttYXgtaGVpZ2h0OjB9LnNjcm9sbENvbnRhaW5lci1GU1g2QWF0WHtoZWlnaHQ6MTAwJTttYXJnaW4tdG9wOjFweDtvdmVyZmxvdzphdXRvO3Njcm9sbC1wYWRkaW5nLXRvcDo0MHB4fUBtZWRpYSAocG9pbnRlcjpmaW5lKXtAc3VwcG9ydHMgKC1tb3otYXBwZWFyYW5jZTpub25lKXsuc2Nyb2xsQ29udGFpbmVyLUZTWDZBYXRYe3Njcm9sbGJhci1jb2xvcjp2YXIoLS10di1jb2xvci1zY3JvbGxiYXItdGh1bWItYmFja2dyb3VuZCx2YXIoLS1jb2xvci1zY3JvbGwtYmcpKSAjMDAwMDtzY3JvbGxiYXItd2lkdGg6dGhpbn19LnNjcm9sbENvbnRhaW5lci1GU1g2QWF0WDo6LXdlYmtpdC1zY3JvbGxiYXJ7aGVpZ2h0OjVweDt3aWR0aDo1cHh9LnNjcm9sbENvbnRhaW5lci1GU1g2QWF0WDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWJ7YmFja2dyb3VuZC1jbGlwOmNvbnRlbnQtYm94O2JhY2tncm91bmQtY29sb3I6dmFyKC0tdHYtY29sb3Itc2Nyb2xsYmFyLXRodW1iLWJhY2tncm91bmQsdmFyKC0tY29sb3Itc2Nyb2xsLWJnKSk7Ym9yZGVyOjFweCBzb2xpZCAjMDAwMDtib3JkZXItcmFkaXVzOjNweH0uc2Nyb2xsQ29udGFpbmVyLUZTWDZBYXRYOjotd2Via2l0LXNjcm9sbGJhci10cmFja3tiYWNrZ3JvdW5kLWNvbG9yOmluaXRpYWw7Ym9yZGVyLXJhZGl1czozcHh9LnNjcm9sbENvbnRhaW5lci1GU1g2QWF0WDo6LXdlYmtpdC1zY3JvbGxiYXItY29ybmVye2Rpc3BsYXk6bm9uZX19LnNjcm9sbENvbnRhaW5lci1GU1g2QWF0WC5ub0ZlZWQtRlNYNkFhdFh7b3ZlcmZsb3c6aGlkZGVufS5saXN0Q29udGFpbmVyLUZTWDZBYXRYLC53YXRjaGxpc3RDb250YWluZXItRlNYNkFhdFh7Ym94LXNpemluZzpib3JkZXItYm94O21heC13aWR0aDoxMDAlO3BhZGRpbmctYm90dG9tOjZweH0ubGlzdENvbnRhaW5lci1GU1g2QWF0WHthbGlnbi1pdGVtczpjZW50ZXI7ZGlzcGxheTpncmlkO2dyaWQtdGVtcGxhdGUtY29sdW1uczowZnIgbWluLWNvbnRlbnQgMWZyIG1pbi1jb250ZW50IG1pbi1jb250ZW50O21hcmdpbi10b3A6LTFweDtwYWRkaW5nLXRvcDoxcHh9Lmxpc3RDb250YWluZXItRlNYNkFhdFgubXVsdGlMaW5lSXRlbXNDb250YWluZXItRlNYNkFhdFh7ZGlzcGxheTpibG9ja30ubGlzdENvbnRhaW5lci1GU1g2QWF0WC53aXRoU3Bpbm5lci1GU1g2QWF0WHtwYWRkaW5nLWJvdHRvbTowfS5zcGlubmVyQ29udGFpbmVyLUZTWDZBYXRYe2FsaWduLWl0ZW1zOmNlbnRlcjtib3gtc2l6aW5nOmJvcmRlci1ib3g7ZGlzcGxheTpmbGV4O2dyaWQtY29sdW1uOjEvLTE7aGVpZ2h0OjQwcHg7bWFyZ2luLWJvdHRvbTo2cHg7cG9zaXRpb246cmVsYXRpdmV9LnNwaW5uZXJDb250YWluZXItRlNYNkFhdFgubGFyZ2VTcGlubmVyLUZTWDZBYXRYe2hlaWdodDo1MnB4fVtkYXRhLXRoZW1lPWxpZ2h0XXstLV8wLTlhMkg6dmFyKC0tY29sb3ItY29sZC1ncmF5LTkwMCl9W2RhdGEtdGhlbWU9ZGFya117LS1fMC05YTJIOnZhcigtLWNvbG9yLWNvbGQtZ3JheS0yMDApfS5vdGhlclN5bWJvbHMtUjFvV21vcE17Y29sb3I6dmFyKC0tXzAtOWEySCk7ZGlzcGxheTpmbGV4O2ZsZXgtd3JhcDp3cmFwO2ZvbnQtc2l6ZToxNnB4O2p1c3RpZnktY29udGVudDpjZW50ZXI7bGluZS1oZWlnaHQ6MjRweDttYXJnaW46MCAyMHB4O3RleHQtYWxpZ246Y2VudGVyfS5vdGhlclN5bWJvbHMtUjFvV21vcE0ubmV3U3R5bGVzLVIxb1dtb3BNe2ZvbnQtZmVhdHVyZS1zZXR0aW5nczoidG51bSIgb24sImxudW0iIG9uO2ZvbnQtc3R5bGU6bm9ybWFsOy0tdWktbGliLXR5cG9ncmFwaHktZm9udC1zaXplOjE4cHg7Zm9udC1zaXplOnZhcigtLXVpLWxpYi10eXBvZ3JhcGh5LWZvbnQtc2l6ZSk7Zm9udC13ZWlnaHQ6NjAwOy0tdWktbGliLXR5cG9ncmFwaHktbGluZS1oZWlnaHQ6MjRweDttYXJnaW4tYm90dG9tOjEycHh9Lm90aGVyU3ltYm9scy1SMW9XbW9wTS5uZXdTdHlsZXMtUjFvV21vcE0sLm90aGVyU3ltYm9scy1SMW9XbW9wTS5zbWFsbEZvbnQtUjFvV21vcE17Zm9udC1mYW1pbHk6LWFwcGxlLXN5c3RlbSxCbGlua01hY1N5c3RlbUZvbnQsVHJlYnVjaGV0IE1TLFJvYm90byxVYnVudHUsc2Fucy1zZXJpZjtsaW5lLWhlaWdodDp2YXIoLS11aS1saWItdHlwb2dyYXBoeS1saW5lLWhlaWdodCl9Lm90aGVyU3ltYm9scy1SMW9XbW9wTS5zbWFsbEZvbnQtUjFvV21vcE17Zm9udC1mZWF0dXJlLXNldHRpbmdzOiJ0bnVtIiBvbiwibG51bSIgb247Zm9udC1zdHlsZTpub3JtYWw7LS11aS1saWItdHlwb2dyYXBoeS1mb250LXNpemU6MTRweDtmb250LXNpemU6dmFyKC0tdWktbGliLXR5cG9ncmFwaHktZm9udC1zaXplKTtmb250LXdlaWdodDo0MDA7LS11aS1saWItdHlwb2dyYXBoeS1saW5lLWhlaWdodDoxOHB4fS5yZXNldEZpbHRlcnMtUjFvV21vcE17YWxpZ24taXRlbXM6Y2VudGVyO2N1cnNvcjpkZWZhdWx0O2Rpc3BsYXk6ZmxleDtmbGV4LXdyYXA6d3JhcDtnYXA6OHB4O2hlaWdodDozNHB4O2p1c3RpZnktY29udGVudDpjZW50ZXI7bWFyZ2luLXRvcDoxNnB4fS5ib2xkLVIxb1dtb3BNe2ZvbnQtd2VpZ2h0OjcwMH0uZXhjaGFuZ2VXcmFwLVIxb1dtb3BNe2FsaWduLWl0ZW1zOmNlbnRlcjtkaXNwbGF5OmZsZXh9Lmljb24tUjFvV21vcE17aGVpZ2h0OjE4cHg7bWFyZ2luLWJsb2NrOjAgMnB4O21hcmdpbi1pbmxpbmU6MTBweCA2cHg7d2lkdGg6MThweH0ubm9SZXN1bHRzRGVza3RvcC1SMW9XbW9wTXtmbGV4OjEgMDtvdmVyZmxvdzphdXRvO3BhZGRpbmctYm90dG9tOjU0cHg7cGFkZGluZy10b3A6MjRweH1Ac3VwcG9ydHMgKC1tb3otYXBwZWFyYW5jZTpub25lKXsubm9SZXN1bHRzRGVza3RvcC1SMW9XbW9wTXtzY3JvbGxiYXItY29sb3I6dmFyKC0tdHYtY29sb3Itc2Nyb2xsYmFyLXRodW1iLWJhY2tncm91bmQsdmFyKC0tY29sb3Itc2Nyb2xsLWJnKSkgIzAwMDA7c2Nyb2xsYmFyLXdpZHRoOnRoaW59fS5ub1Jlc3VsdHNEZXNrdG9wLVIxb1dtb3BNOjotd2Via2l0LXNjcm9sbGJhcntoZWlnaHQ6NXB4O3dpZHRoOjVweH0ubm9SZXN1bHRzRGVza3RvcC1SMW9XbW9wTTo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWJ7YmFja2dyb3VuZC1jbGlwOmNvbnRlbnQtYm94O2JhY2tncm91bmQtY29sb3I6dmFyKC0tdHYtY29sb3Itc2Nyb2xsYmFyLXRodW1iLWJhY2tncm91bmQsdmFyKC0tY29sb3Itc2Nyb2xsLWJnKSk7Ym9yZGVyOjFweCBzb2xpZCAjMDAwMDtib3JkZXItcmFkaXVzOjNweH0ubm9SZXN1bHRzRGVza3RvcC1SMW9XbW9wTTo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2t7YmFja2dyb3VuZC1jb2xvcjppbml0aWFsO2JvcmRlci1yYWRpdXM6M3B4fS5ub1Jlc3VsdHNEZXNrdG9wLVIxb1dtb3BNOjotd2Via2l0LXNjcm9sbGJhci1jb3JuZXJ7ZGlzcGxheTpub25lfS50b2tlbi1SMW9XbW9wTXtjb2xvcjp2YXIoLS1jb2xvci10di1ibHVlLTUwMCl9LnNob3dNZS1SMW9XbW9wTXtib3JkZXItcmFkaXVzOjZweH1bZGF0YS10aGVtZT1saWdodF17LS1fMC0tZDdPOnZhcigtLWNvbG9yLWNvbGQtZ3JheS05MDApfVtkYXRhLXRoZW1lPWRhcmtdey0tXzAtLWQ3Tzp2YXIoLS1jb2xvci1jb2xkLWdyYXktMjAwKX0uc2VhcmNoLWsyUkJ2TFZNOjpwbGFjZWhvbGRlcnt0ZXh0LXRyYW5zZm9ybTpub25lfS5zZWFyY2gtazJSQnZMVk0udXBwZXJDYXNlLWsyUkJ2TFZNe3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZX0uaW5wdXRDb250YWluZXItazJSQnZMVk17cGFkZGluZzowIDIwcHggOHB4fS5zcHJlYWRzLWsyUkJ2TFZNe2FsaWduLWl0ZW1zOmNlbnRlcjttYXJnaW4taW5saW5lLWVuZDo5cHg7cGFkZGluZzowIDVweH0uc3ByZWFkcy1rMlJCdkxWTTpiZWZvcmV7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS10di1jb2xvci1wbGF0Zm9ybS1iYWNrZ3JvdW5kLHZhcigtLWNvbG9yLWNoYXJ0LXBhZ2UtYmcpKTtjb250ZW50OiIiO2Rpc3BsYXk6YmxvY2s7aGVpZ2h0OjE4cHg7aW5zZXQtaW5saW5lLXN0YXJ0OjA7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MXB4fS5idWJibGVzQ29udGFpbmVyLWsyUkJ2TFZNey0tdWktbGliLXJvdW5kLXRhYnMtaG9yLXBhZGRpbmc6MH0uYnViYmxlc0NvbnRhaW5lci1rMlJCdkxWTSAuYnViYmxlcy1rMlJCdkxWTXttYXJnaW4tYm90dG9tOjA7bWFyZ2luLXRvcDowO21pbi1oZWlnaHQ6Zml0LWNvbnRlbnQ7cGFkZGluZzo4cHggMjBweDt3aWR0aDp1bnNldH0uc3Bpbm5lcldyYXAtazJSQnZMVk17aGVpZ2h0OjEwMCU7cG9zaXRpb246cmVsYXRpdmU7d2lkdGg6MTAwJX0uZW1wdHlUZXh0LWsyUkJ2TFZNe2ZvbnQtZmFtaWx5Oi1hcHBsZS1zeXN0ZW0sQmxpbmtNYWNTeXN0ZW1Gb250LFRyZWJ1Y2hldCBNUyxSb2JvdG8sVWJ1bnR1LHNhbnMtc2VyaWY7Zm9udC1mZWF0dXJlLXNldHRpbmdzOiJ0bnVtIiBvbiwibG51bSIgb247Zm9udC1zdHlsZTpub3JtYWw7LS11aS1saWItdHlwb2dyYXBoeS1mb250LXNpemU6MThweDtmb250LXNpemU6dmFyKC0tdWktbGliLXR5cG9ncmFwaHktZm9udC1zaXplKTtmb250LXdlaWdodDo0MDA7LS11aS1saWItdHlwb2dyYXBoeS1saW5lLWhlaWdodDoyOHB4O2NvbG9yOnZhcigtLV8wLS1kN08pO2xpbmUtaGVpZ2h0OnZhcigtLXVpLWxpYi10eXBvZ3JhcGh5LWxpbmUtaGVpZ2h0KTttYXJnaW46MCAyMHB4O3RleHQtYWxpZ246Y2VudGVyfUBtZWRpYSAobWF4LWhlaWdodDo0NDBweCkgYW5kIChvcmllbnRhdGlvbjpsYW5kc2NhcGUpey5lbXB0eUljb24tazJSQnZMVk17ZGlzcGxheTpub25lfX0ubm9SZXN1bHRzRGVza3RvcC1rMlJCdkxWTXtmbGV4OjEgMDtvdmVyZmxvdzphdXRvO3BhZGRpbmctYm90dG9tOjU0cHg7cGFkZGluZy10b3A6MjRweH1Ac3VwcG9ydHMgKC1tb3otYXBwZWFyYW5jZTpub25lKXsubm9SZXN1bHRzRGVza3RvcC1rMlJCdkxWTXtzY3JvbGxiYXItY29sb3I6dmFyKC0tdHYtY29sb3Itc2Nyb2xsYmFyLXRodW1iLWJhY2tncm91bmQsdmFyKC0tY29sb3Itc2Nyb2xsLWJnKSkgIzAwMDA7c2Nyb2xsYmFyLXdpZHRoOnRoaW59fS5ub1Jlc3VsdHNEZXNrdG9wLWsyUkJ2TFZNOjotd2Via2l0LXNjcm9sbGJhcntoZWlnaHQ6NXB4O3dpZHRoOjVweH0ubm9SZXN1bHRzRGVza3RvcC1rMlJCdkxWTTo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWJ7YmFja2dyb3VuZC1jbGlwOmNvbnRlbnQtYm94O2JhY2tncm91bmQtY29sb3I6dmFyKC0tdHYtY29sb3Itc2Nyb2xsYmFyLXRodW1iLWJhY2tncm91bmQsdmFyKC0tY29sb3Itc2Nyb2xsLWJnKSk7Ym9yZGVyOjFweCBzb2xpZCAjMDAwMDtib3JkZXItcmFkaXVzOjNweH0ubm9SZXN1bHRzRGVza3RvcC1rMlJCdkxWTTo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2t7YmFja2dyb3VuZC1jb2xvcjppbml0aWFsO2JvcmRlci1yYWRpdXM6M3B4fS5ub1Jlc3VsdHNEZXNrdG9wLWsyUkJ2TFZNOjotd2Via2l0LXNjcm9sbGJhci1jb3JuZXJ7ZGlzcGxheTpub25lfS50cmFkaW5nRmlsdGVyQnV0dG9uV3JhcC1rMlJCdkxWTXtib3gtc2l6aW5nOmJvcmRlci1ib3g7bWFyZ2luLWlubGluZS1lbmQ6YXV0bzttYXgtd2lkdGg6MTAwJTtwYWRkaW5nLXRvcDoxMnB4fS5kaWFsb2ctc2FiaDFmaDR7b3ZlcmZsb3c6aGlkZGVuO3dpZHRoOjEwMCV9LnRhYmxldERpYWxvZy1zYWJoMWZoNHtoZWlnaHQ6NTYycHg7bWF4LXdpZHRoOjU2MHB4fS5kZXNrdG9wRGlhbG9nLXNhYmgxZmg0e2hlaWdodDo2ODBweDttYXgtd2lkdGg6ODQwcHg7bWluLXdpZHRoOjcxOXB4O3dpZHRoOjEwMCV9QG1lZGlhIChtYXgtd2lkdGg6NzY4cHgpey5kZXNrdG9wRGlhbG9nLXNhYmgxZmg0e21heC13aWR0aDo2NDBweDttaW4td2lkdGg6NDgwcHh9fUBtZWRpYSAobWF4LXdpZHRoOjUxOXB4KXsuZGVza3RvcERpYWxvZy1zYWJoMWZoNHttYXgtd2lkdGg6NDc5cHg7bWluLXdpZHRoOjM4MHB4fX0uYmFja0J1dHRvbi1zYWJoMWZoNHttYXJnaW4taW5saW5lLWVuZDoxN3B4O21hcmdpbi1pbmxpbmUtc3RhcnQ6LTNweH0="}},"time_used":3,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":3,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/study-pane-views.663c5d9b21dc5e618998.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:15.093Z","timestamp":1785148035093,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/study-pane-views.663c5d9b21dc5e618998.js HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:15 GMT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a608293-151e0\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Wed, 22 Jul 2026 08:42:59 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/22/2026 11:01:41\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: de5f18d047eb2c62f0a4f6172613d4b5\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":86496,"size_decoded":25526,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (3071)","md5":"5a9f63c99f9d5d568eb64759326caab4","sha1":"f30d6d870db604980bcccf56754fbd2b4a793d63","sha256":"495aa62cf17213bfa7fb11fea84b8a177d37180b0e424c8a4a20e73d4779c4c7","sha512":"e7b5c45bd3574d3ad6dd7d4faf79de3c2d68454439c5275a44af309c26968b86e399c6cdfb0a40091870ffaec3555511470b6bb6715e8b78034da4aeda759237","ssdeep":"1536:N9l5HPSFvpMa7EVaVxGbCjD+blIXkrza8u9BkrvDfG3Q9q+6Feg43qD:N96Fvph7EVa324Xkrza8I2DfG3Q9qtey","tlshash":"8b8308d2709134aa43b35ada6cb0440797252c56394f887c707d89ff18eec5436bdbba","first_seen":"2026-07-22T16:00:00.360345Z","last_seen":"2026-07-27T12:12:28.870353Z","times_seen":76,"resource_available":true,"data":"InVzZSBzdHJpY3QiOyhzZWxmLndlYnBhY2tDaHVua3RyYWRpbmd2aWV3PXNlbGYud2VicGFja0NodW5rdHJhZGluZ3ZpZXd8fFtdKS5wdXNoKFtbOTE2NjhdLHs2ODc1OTAoZSx0LGkpe3ZhciByLG47aS5kKHQse0hBbGlnbjooKT0+cn0pLGZ1bmN0aW9uKGUpe2UuTGVmdD0ibGVmdCIsZS5DZW50ZXI9ImNlbnRlciIsZS5SaWdodD0icmlnaHQifShyfHwocj17fSkpLGZ1bmN0aW9uKGUpe2UuVG9wPSJ0b3AiLGUuTWlkZGxlPSJtaWRkbGUiLGUuQm90dG9tPSJib3R0b20ifShufHwobj17fSkpfSw0NTUxODgoZSx0LGkpe3ZhciByLG47aS5kKHQse1RleHRNYXJrVHlwZTooKT0+cn0pLGZ1bmN0aW9uKGUpe2UuVHJpYW5nbGU9InRyaWFuZ2xlIixlLlJlY3RhbmdsZT0icmVjdGFuZ2xlIn0ocnx8KHI9e30pKSxmdW5jdGlvbihlKXtlLlZlcmRhbmE9IlZlcmRhbmEiLGUuQ291cmllck5ldz0iQ291cmllciBOZXciLGUuVGltZXNOZXdSb21hbj0iVGltZXMgTmV3IFJvbWFuIixlLkFyaWFsPSJBcmlhbCJ9KG58fChuPXt9KSl9LDE1OTcxMChlLHQsaSl7aS5kKHQse0xvY2F0aW9uVG9ZTWl4aW46KCk9PmF9KTt2YXIgcj1pKDEzODYzOCksbj1pKDY0MDc0NCksbz1pKDk2MDQ2NCk7Y2xhc3MgYXtfbG9jYXRpb25Ub1koZSx0LGk9MCl7bGV0IGE7c3dpdGNoKGUpe2Nhc2Ugby5NYXJrTG9jYXRpb24uQWJvdmVCYXI6YT0yO2JyZWFrO2Nhc2Ugby5NYXJrTG9jYXRpb24uQmVsb3dCYXI6YT0zfWNvbnN0IHM9dGhpcy5fcHJvdmlkZXIuZmlyc3RWYWx1ZSgpO2lmKG51bGw9PT1zKXJldHVybiAwO2k+PTEmJihpLT0xKTtjb25zdCBsPSgwLHIuZW5zdXJlTm90TnVsbCkodGhpcy5fcHJvdmlkZXIucHJpY2VTY2FsZSgpKSxkPVtdO2ZvcihsZXQgZT0taTtlPD1pO2UrKyl7Y29uc3QgaT10aGlzLl9wcm92aWRlci5zZXJpZXMoKS5iYXJzKCkudmFsdWVBdCh0K2UpO2lmKG51bGwhPT1pKXtjb25zdCBlPWlbYV07aWYobnVsbD09ZSljb250aW51ZTtkLnB1c2gobC5wcmljZVRvQ29vcmRpbmF0ZShlLHMpKX19c3dpdGNoKGUpe2Nhc2Ugby5NYXJrTG9jYXRpb24uQWJvdmVCYXI6cmV0dXJuKDAsbi5taW4pKGQpLTE1O2Nhc2Ugby5NYXJrTG9jYXRpb24uQmVsb3dCYXI6cmV0dXJuKDAsbi5tYXgpKGQpKzE1fX19fSw4ODA3NjEoZSx0LGkpe2kuZCh0LHtQb2x5Z29uUmVuZGVyZXI6KCk9PnB9KTt2YXIgcj1pKDc2ODMwNSksbj1pKDcwMDc0KSxvPWkoNjY0ODE1KSxhPWkoNjYwMTYxKSxzPWkoNzYzKSxsPWkoODczNTczKSxkPWkoNTczMDU0KSxoPWkoNjA0MjE0KSxjPWkoNzg2NDM2KSx1PWkoMjYwNjkpLGY9aSg1MTU5Mik7Y2xhc3MgcCBleHRlbmRzIGQuTWVkaWFDb29yZGluYXRlc1BhbmVSZW5kZXJlcntjb25zdHJ1Y3RvcihlKXtzdXBlcigpLHRoaXMuX2RhdGE9bnVsbCx0aGlzLl9iYWNrSGl0dGVzdD1uZXcgcy5IaXRUZXN0UmVzdWx0KHMuSGl0VGFyZ2V0Lk1vdmVQb2ludEJhY2tncm91bmQpLHRoaXMuX3BvaW50cz1bXSx0aGlzLl9oaXR0ZXN0PWU/P25ldyBzLkhpdFRlc3RSZXN1bHQocy5IaXRUYXJnZXQuTW92ZVBvaW50KX1zZXREYXRhKGUpe3RoaXMuX2RhdGE9ZSx0aGlzLl9wb2ludHM9ZS5wb2ludHN9aGl0VGVzdChlKXtpZihudWxsPT09dGhpcy5fZGF0YXx8dGhpcy5fZGF0YS5kaXNhYmxlSW50ZXJhY3Rpb25zKXJldHVybiBudWxsO2NvbnN0IHQ9TWF0aC5tYXgoKDAsaC5pbnRlcmFjdGlvblRvbGVyYW5jZSkoKS5saW5lLE1hdGguY2VpbCh0aGlzLl9kYXRhLmxpbmV3aWR0aC8yKSksaT10aGlzLl9wb2ludHMubGVuZ3RoO2lmKDE9PT1pKXtyZXR1cm4oMCxyLnBvaW50SW5DaXJjbGUpKGUsdGhpcy5fcG9pbnRzWzBdLHQpP3RoaXMuX2hpdHRlc3Q6bnVsbH1mb3IobGV0IHI9MTtyPGk7cisrKXtjb25zdCBpPXRoaXMuX3BvaW50c1tyLTFdLG89dGhpcy5fcG9pbnRzW3JdO2lmKCgwLG4uZGlzdGFuY2VUb1NlZ21lbnQpKGksbyxlKS5kaXN0YW5jZTw9dClyZXR1cm4gdGhpcy5faGl0dGVzdH1pZih0aGlzLl9kYXRhLmZpbGxlZCYmdGhpcy5fZGF0YS5maWxsQmFja2dyb3VuZCYmaT4wKXtjb25zdCByPXRoaXMuX3BvaW50c1swXSxvPXRoaXMuX3BvaW50c1tpLTFdO2lmKCgwLG4uZGlzdGFuY2VUb1NlZ21lbnQpKHIsbyxlKS5kaXN0YW5jZTw9dClyZXR1cm4gdGhpcy5faGl0dGVzdH1yZXR1cm4gdGhpcy5fZGF0YS5maWxsZWQmJnRoaXMuX2RhdGEuZmlsbEJhY2tncm91bmQmJigwLHIucG9pbnRJblBvbHlnb24pKGUsdGhpcy5fZGF0YS5wb2ludHMpP3RoaXMuX2JhY2tIaXR0ZXN0Om51bGx9X2RyYXdJbXBsKGUpe2NvbnN0IHQ9ZS5jb250ZXh0LGk9dGhpcy5fcG9pbnRzLmxlbmd0aDtpZihudWxsPT09dGhpcy5fZGF0YXx8MD09PWkpcmV0dXJuO2NvbnN0IHI9dC5nbG9iYWxBbHBoYTt0cnl7aWYodm9pZCAwIT09dGhpcy5fZGF0YS5nbG9iYWxBbHBoYSYmKHQuZ2xvYmFsQWxwaGE9dGhpcy5fZGF0YS5nbG9iYWxBbHBoYSksMT09PWkpcmV0dXJuIHZvaWQgdGhpcy5fZHJhd1BvaW50KHQsdGhpcy5fcG9pbnRzWzBdLHRoaXMuX2RhdGEubGluZXdpZHRoLzIsdGhpcy5fZGF0YS5jb2xvcik7dC5iZWdpblBhdGgoKTtjb25zdCBlPXRoaXMuX2RhdGEubGluZXN0eWxlPT09dS5MSU5FU1RZTEVfU09MSUQ/InJvdW5kIjoiYnV0dCIscj10aGlzLl9kYXRhLmxpbmVjYXA/P2U7dC5saW5lQ2FwPXIsdC5zdHJva2VTdHlsZT10aGlzLl9kYXRhLmNvbG9yLHQubGluZVdpZHRoPXRoaXMuX2RhdGEubGluZXdpZHRoLHQubGluZUpvaW49dGhpcy5fZGF0YS5saW5lam9pbj8/InJvdW5kIiwoMCxjLnNldExpbmVTdHlsZSkodCx0aGlzLl9kYXRhLmxpbmVzdHlsZSk7Y29uc3Qgbj10aGlzLl9wb2ludHNbMF07dC5tb3ZlVG8obi54LG4ueSk7Zm9yKGNvbnN0IGUgb2YgdGhpcy5fcG9pbnRzKXQubGluZVRvKGUueCxlLnkpO2lmKHRoaXMuX2RhdGEuZmlsbGVkJiZ0aGlzLl9kYXRhLmZpbGxCYWNrZ3JvdW5kJiYodC5maWxsU3R5bGU9KDAsbC5nZW5lcmF0ZUNvbG9yKSh0aGlzLl9kYXRhLmJhY2tjb2xvcix0aGlzLl9kYXRhLnRyYW5zcGFyZW5jeSksdC5maWxsKCkpLAp0aGlzLl9kYXRhLmZpbGxlZCYmIXRoaXMuX2RhdGEuc2tpcENsb3NlUGF0aCYmdC5jbG9zZVBhdGgoKSxpPjEpe2lmKHRoaXMuX2RhdGEubGVmdGVuZD09PWEuTGluZUVuZC5BcnJvdyl7Y29uc3QgZT10aGlzLl9jb3JyZWN0QXJyb3dQb2ludHModGhpcy5fcG9pbnRzWzFdLHRoaXMuX3BvaW50c1swXSx0LmxpbmVXaWR0aCxyKTsoMCxvLmRyYXdBcnJvdykoZVswXSxlWzFdLHQsdC5saW5lV2lkdGgsZi5kcHIxUGl4ZWxSYXRpb0luZm8pfWlmKHRoaXMuX2RhdGEucmlnaHRlbmQ9PT1hLkxpbmVFbmQuQXJyb3cpe2NvbnN0IGU9dGhpcy5fY29ycmVjdEFycm93UG9pbnRzKHRoaXMuX3BvaW50c1tpLTJdLHRoaXMuX3BvaW50c1tpLTFdLHQubGluZVdpZHRoLHIpOygwLG8uZHJhd0Fycm93KShlWzBdLGVbMV0sdCx0LmxpbmVXaWR0aCxmLmRwcjFQaXhlbFJhdGlvSW5mbyl9fXRoaXMuX2RhdGEubGluZXdpZHRoPjAmJnQuc3Ryb2tlKCl9ZmluYWxseXt0Lmdsb2JhbEFscGhhPXJ9fV9kcmF3UG9pbnQoZSx0LGkscil7MCE9PWkmJihlLmJlZ2luUGF0aCgpLGUuZmlsbFN0eWxlPXIsZS5hcmModC54LHQueSxpLDAsMipNYXRoLlBJLCEwKSxlLmZpbGwoKSxlLmNsb3NlUGF0aCgpKX1fY29ycmVjdEFycm93UG9pbnRzKGUsdCxpLHIpe2NvbnN0IG49dC5zdWJ0cmFjdChlKSxvPW4ubGVuZ3RoKCk7aWYoImJ1dHQiPT09cnx8bzwxKXJldHVybltlLHRdO2NvbnN0IGE9bytpLzI7cmV0dXJuW2Usbi5zY2FsZWQoYS9vKS5hZGQoZSldfX19LDIyMDI3NihlLHQsaSl7aS5yKHQpLGkuZCh0LHtCYWNrZ3JvdW5kUGFuZVZpZXc6KCk9Pmx9KTt2YXIgcj1pKDEzODYzOCksbj1pKDc4OTE5MCksbz1pKDE1MTIxKSxhPWkoODczNTczKTtjbGFzcyBze2NvbnN0cnVjdG9yKGUpe3RoaXMuX2RhdGE9ZX1oaXRUZXN0KGUpe3JldHVybiBudWxsfWRyYXcoZSx0KXt9ZHJhd0JhY2tncm91bmQoZSx0KXtjb25zdCBpPXRoaXMuX2RhdGEscj0oMCxhLmdlbmVyYXRlQ29sb3IpKHRoaXMuX2RhdGEuY29sb3IsdGhpcy5fZGF0YS50cmFuc3BhcmVuY3kpLG49TWF0aC5yb3VuZChpLngxKnQuaG9yaXpvbnRhbFBpeGVsUmF0aW8pLHM9TWF0aC5yb3VuZChpLngyKnQudmVydGljYWxQaXhlbFJhdGlvKTsoMCxvLmZpbGxSZWN0KShlLG4sMCxzLW4sdC5iaXRtYXBTaXplLmhlaWdodCxyKX19Y2xhc3MgbHtjb25zdHJ1Y3RvcihlLHQsaSl7dGhpcy5fZGF0YT1bXSx0aGlzLl9pbnZhbGlkYXRlZD0hMCx0aGlzLl9wcm92aWRlcj1lLHRoaXMuX21vZGVsPXQsdGhpcy5fZGF0YT1bXX11cGRhdGUoZSl7ImhvdmVyLWNoYW5nZSIhPT1lLnR5cGUmJih0aGlzLl9pbnZhbGlkYXRlZD0hMCl9cmVuZGVyZXIoKXt0aGlzLl9pbnZhbGlkYXRlZCYmKHRoaXMuX3VwZGF0ZVZpZXdJbnRlcm5hbCgpLHRoaXMuX2ludmFsaWRhdGVkPSExKTtjb25zdCBlPW5ldyBuLkNvbXBvc2l0ZVJlbmRlcmVyO2Zvcihjb25zdCB0IG9mIHRoaXMuX2RhdGEpZS5hcHBlbmQobmV3IHModCkpO3JldHVybiBlfV91cGRhdGVWaWV3SW50ZXJuYWwoKXt0aGlzLl9kYXRhPVtdO2NvbnN0IGU9dGhpcy5fcHJvdmlkZXIucHJpY2VTY2FsZSgpLHQ9dGhpcy5fbW9kZWwudGltZVNjYWxlKCk7aWYoIWV8fGUuaXNFbXB0eSgpfHx0LmlzRW1wdHkoKSlyZXR1cm47Y29uc3QgaT10aGlzLl9wcm92aWRlci5ncmFwaGljcygpLmJhY2tncm91bmRzKCk7aWYoMD09PWkuc2l6ZSlyZXR1cm47Y29uc3Qgbj10LnZpc2libGVCYXJzU3RyaWN0UmFuZ2UoKTtpZihudWxsPT09bilyZXR1cm47Y29uc3Qgbz1uLmZpcnN0QmFyKCksYT1uLmxhc3RCYXIoKSxzPSgwLHIuZW5zdXJlRGVmaW5lZCkodGhpcy5fcHJvdmlkZXIucHJvcGVydGllcygpLmNoaWxkcygpLmdyYXBoaWNzLmNoaWxkcygpLmJhY2tncm91bmRzKTtpLmZvckVhY2goKChlLGkpPT57Y29uc3Qgbj1zLmNoaWxkcygpW2ldPy5jaGlsZHMoKTtpZighbj8udmlzaWJsZS52YWx1ZSgpKXJldHVybjtsZXQgbCxkO2UuZm9yRWFjaCgoZT0+e2NvbnN0IGk9bnVsbCE9PWUuc3RhcnQ/ZS5zdGFydDooMCxyLmVuc3VyZU5vdE51bGwpKHQucG9pbnRzKCkucmFuZ2UoKS52YWx1ZSgpKS5maXJzdEluZGV4LHM9ZS5zdG9wO2lmKHM8b3x8YTxpKXJldHVybjtsZXQgaD10LmJhckJvcmRlcnMoaSkubGVmdDtjb25zdCBjPXQuYmFyQm9yZGVycyhzKS5yaWdodDtkPT09aS0xJiYoaD1sfHxoKSxsPWMsZD1zLGg8MCYmYzwwfHxoPnQud2lkdGgoKSYmYz50LndpZHRoKCl8fHRoaXMuX2RhdGEucHVzaCh7eDE6aCx4MjpjLGNvbG9yOm4uY29sb3IudmFsdWUoKSx0cmFuc3BhcmVuY3k6bi50cmFuc3BhcmVuY3kudmFsdWUoKX0pfSkpfSkpfX19LDcxMTE1OShlLHQsaSl7aS5yKHQpLGkuZCh0LHtEd2dCb3hQYW5lVmlldzooKT0+TSxnZXREd2dCb3hEcmF3UGF0dGVybjooKT0+RH0pO3ZhciByLG4sbyxhPWkoMTM4NjM4KSxzPWkoNzM2NTMxKTshZnVuY3Rpb24oZSl7ZS5Tb2xpZD0ic29sIixlLkRvdHRlZD0iZG90IixlLkRhc2hlZD0iZHNoIixlLkxlZnRBcnJvdz0iYWwiLGUuUmlnaHRBcnJvdz0iYXIiLGUuQm90aEFycm93PSJhYiJ9KHJ8fChyPXt9KSksZnVuY3Rpb24oZSl7ZS5Ub3A9InRvcCIsZS5DZW50ZXI9ImNlbnRlciIsZS5Cb3R0b209ImJvdHRvbSJ9KG58fChuPXt9KSksZnVuY3Rpb24oZSl7ZS5Nb25vc3BhY2U9Im1vbm9zcGFjZSJ9KG98fChvPXt9KSk7dmFyIGw9aSgxNzk2NzQpLGQ9aSg1ODk1MTEpLGg9aSgyNTQ3MzEpLGM9aSg4MjI3MjYpLHU9aSgyOTM0MTgpLGY9aSg5NDExMDApLHA9aSg3NjgzMDUpLGc9aSg3NjMpLF89aSg3ODY0MzYpLHg9aSg0NzA5ODYpLHc9aSg3MDM4MDkpO2Z1bmN0aW9uIHYoZSx0KXtjb25zdCBpPWUuc3R5bGUuZXh0ZW5kTGVmdD8wOmUubGVmdFRvcC54LHI9ZS5zdHlsZS5leHRlbmRSaWdodD90OmUucmlnaHRCb3R0b20ueDtyZXR1cm4oMCxzLmJveCkoKDAscy5wb2ludCkoaSxlLmxlZnRUb3AueSksKDAscy5wb2ludCkocixlLnJpZ2h0Qm90dG9tLnkpKX1jbGFzcyBte2NvbnN0cnVjdG9yKGUpe3RoaXMuX2xvY3M9bnVsbCx0aGlzLl90ZXh0UmVuZGVyZXI9bmV3IHguVGV4dFJlbmRlcmVyLHRoaXMuX2xvY3M9ZT8/bnVsbH0Kc2V0RGF0YShlKXt0aGlzLl9sb2NzPWV9ZHJhdyhlLHQpe2lmKG51bGw9PT10aGlzLl9sb2NzKXJldHVybjtjb25zdHtob3Jpem9udGFsUGl4ZWxSYXRpbzppLHZlcnRpY2FsUGl4ZWxSYXRpbzpyLGJpdG1hcFNpemU6bn09dDtlLmxpbmVDYXA9ImJ1dHQiO2NvbnN0IG89TWF0aC5tYXgoMSxNYXRoLmZsb29yKGkpKTt0aGlzLl9sb2NzLmZvckVhY2goKHM9Pntjb25zdHtiYWNrZ3JvdW5kQ29sb3I6bCxib3JkZXJDb2xvcjpkLGV4dGVuZExlZnQ6aCxleHRlbmRSaWdodDpjLGJvcmRlcldpZHRoOnUsZGFzaFBhdHRlcm46Zix0ZXh0OnB9PXMuc3R5bGUsZz1NYXRoLmZsb29yKHUqaSkseD1oPy1nOk1hdGgucm91bmQocy5sZWZ0VG9wLngqaSksdj1NYXRoLnJvdW5kKHMubGVmdFRvcC55KnIpLG09Yz9uLndpZHRoK2c6TWF0aC5yb3VuZChzLnJpZ2h0Qm90dG9tLngqaSkseT1NYXRoLnJvdW5kKHMucmlnaHRCb3R0b20ueSpyKTtpZigoMCxfLmZpbGxSZWN0V2l0aEJvcmRlcikoe2NvbnRleHQ6ZSwuLi50fSx4LHYsbSx5LG8sdm9pZCAwPT09bD92b2lkIDA6e2NvbG9yOmx9LHZvaWQgMD09PWR8fDA9PT11P3ZvaWQgMDp7Y29sb3I6ZCxib3JkZXJXaWR0aDpnLGJvcmRlck1vZGU6ImNlbnRlciIsZGFzaFBhdHRlcm46Zn0pLHApe2xldCBuPSExO2NvbnN0IG89TWF0aC5hYnMocy5yaWdodEJvdHRvbS54LXMubGVmdFRvcC54KSxsPU1hdGguYWJzKHMucmlnaHRCb3R0b20ueS1zLmxlZnRUb3AueSksZD1NYXRoLm1pbihzLnJpZ2h0Qm90dG9tLngscy5sZWZ0VG9wLngpLGg9TWF0aC5taW4ocy5yaWdodEJvdHRvbS55LHMubGVmdFRvcC55KTsiYXV0byIhPT1wLmZvbnRTaXplTW9kZSYmImF1dG8iIT09cC53b3JkV3JhcHx8KGUuc2F2ZSgpLGUuYmVnaW5QYXRoKCksZS5yZWN0KGQqaSxoKnIsbyppLGwqciksZS5jbGlwKCksbj0hMCk7Y29uc3QgYz17dGV4dFNpemVNb2RlOnAuZm9udFNpemVNb2RlLGZvbnRTaXplOnAuZm9udFNpemV9LHU9e2hvcml6b250YWxUZXh0QWxpZ25tZW50OnAuaG9yaXpvbnRhbFRleHRBbGlnbm1lbnQsdmVydGljYWxUZXh0QWxpZ25tZW50OnAudmVydGljYWxUZXh0QWxpZ25tZW50LHRleHQ6cC50ZXh0LHRleHRDb2xvcjpwLnRleHRDb2xvcixzaXplT3B0aW9uczpjLGZvbnRUeXBlOnMuc3R5bGUuZm9udFR5cGUsdGV4dEZvcm1hdHRpbmc6cC50ZXh0Rm9ybWF0dGluZ30sZj0oMCx3LnRleHRCb3hEYXRhKShkLGgsbyxsLHUpO2Yud29yZFdyYXBXaWR0aD0iYXV0byI9PT1wLndvcmRXcmFwP01hdGgubWF4KDEsby0oMCxhLmVuc3VyZURlZmluZWQpKGYuZm9udFNpemUpLzYpOnZvaWQgMCx0aGlzLl90ZXh0UmVuZGVyZXIuc2V0RGF0YShmKSx0aGlzLl90ZXh0UmVuZGVyZXIuZHJhdyhlLHQpLG4mJmUucmVzdG9yZSgpfX0pKX1oaXRUZXN0KGUsdCl7aWYobnVsbD09PXRoaXMuX2xvY3MpcmV0dXJuIG51bGw7Zm9yKGNvbnN0IGkgb2YgdGhpcy5fbG9jcylpZigoMCxwLnBvaW50SW5Cb3gpKGUsdihpLHQubWVkaWFTaXplLndpZHRoKSkpcmV0dXJuIG5ldyBnLkhpdFRlc3RSZXN1bHQoZy5IaXRUYXJnZXQuUmVndWxhcik7cmV0dXJuIG51bGx9fXZhciB5PWkoMTQxNjUpO2NsYXNzIGIgZXh0ZW5kcyB5LkFic3RyYWN0TWFwQ29udGFpbmVye2NvbnN0cnVjdG9yKGUpe3N1cGVyKCksdGhpcy5fbWF4U2l6ZT1lLHRoaXMuX2tleXNRdWV1ZT1bXX1nZXQoZSl7Y29uc3QgdD10aGlzLl9rZXlzRm9yRGF0YShlKTtpZihudWxsPT09dClyZXR1cm4gbnVsbDtjb25zdFtpLHIsbl09dCxvPSgwLHkuZ2V0RGVmYXVsdDIpKHRoaXMuX21hcCxpLHIsbmV3IE1hcCk7bGV0IGE9by5nZXQobik7cmV0dXJuIHZvaWQgMCE9PWF8fCh0aGlzLl9zaXplPj10aGlzLl9tYXhTaXplP3RoaXMuX2RlbGV0ZUZpcnN0S2V5KCk6Kyt0aGlzLl9zaXplLHRoaXMuX2tleXNRdWV1ZS5wdXNoKHQpLGE9dGhpcy5fY3JlYXRlVmFsdWVJdGVtKGUpLG8uc2V0KG4sYSkpLGF9X2RlbGV0ZUZpcnN0S2V5KCl7Y29uc3QgZT0oMCxhLmVuc3VyZURlZmluZWQpKHRoaXMuX2tleXNRdWV1ZS5zaGlmdCgpKSxbdCxpLHJdPWUsbj0oMCxhLmVuc3VyZURlZmluZWQpKHRoaXMuX21hcC5nZXQodCkpLG89KDAsYS5lbnN1cmVEZWZpbmVkKShuLmdldChpKSk7by5kZWxldGUociksMD09PW8uc2l6ZSYmbi5kZWxldGUoaSksMD09PW4uc2l6ZSYmdGhpcy5fbWFwLmRlbGV0ZSh0KX19dmFyIFQ9aSg5MjYxNDkpO2NvbnN0IEM9KCk9Pih7Ym9sZDohMSxpdGFsaWM6ITEsZm9udDpULkNIQVJUX0ZPTlRfRkFNSUxZX1dWLnZhbHVlKCl9KTtjbGFzcyBSIGV4dGVuZHMgYntjb25zdHJ1Y3RvcihlLHQ9QygpKXtzdXBlcihlKSx0aGlzLl9mb250T3B0aW9ucz10LHRoaXMuX21lYXN1cmVDYW52YXM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIiksdGhpcy5fbWVhc3VyZUNvbnRleHQ9KDAsYS5lbnN1cmVOb3ROdWxsKSh0aGlzLl9tZWFzdXJlQ2FudmFzLmdldENvbnRleHQoIjJkIikpfV9rZXlzRm9yRGF0YShlKXtyZXR1cm5bZS5saW5lcy5qb2luKCJcbiIpLGUuYm94V2lkdGgsZS5ib3hIZWlnaHRdfV9jcmVhdGVWYWx1ZUl0ZW0oZSl7cmV0dXJuKDAsdy5jYWxjdWxhdGVGb250U2l6ZUZvckJveCkodGhpcy5fbWVhc3VyZUNvbnRleHQsdGhpcy5fZm9udE9wdGlvbnMsZS5saW5lcyxlLmJveFdpZHRoLGUuYm94SGVpZ2h0KX19dmFyIFM9aSgzNDU5MzYpO2NvbnN0IFA9bmV3IE1hcChbW3IuU29saWQsW11dLFtyLkRhc2hlZCxbNSw2XV0sW3IuRG90dGVkLFsxLDJdXV0pO2Z1bmN0aW9uIEQoZSl7Y29uc3QgdD1QLmdldChlKTtpZih2b2lkIDA9PT10KXRocm93IG5ldyBFcnJvcihgVW5zdXBwb3J0ZWQgYm94IHN0eWxlOiAke2V9YCk7cmV0dXJuIHR9Y2xhc3MgTXtjb25zdHJ1Y3RvcihlLHQsaSxyKXt0aGlzLl9pbnZhbGlkYXRlZD0hMCx0aGlzLl9yZW5kZXJlcj1uZXcgbSx0aGlzLl9yZ2JhRnJvbUludGVnZXI9KDAsaC5yZ2JhRnJvbUludGVnZXJDYWNoZWQpKCksdGhpcy5fdGV4dFdpZHRoQ2FjaGU9bmV3IGMuVGV4dFdpZHRoQ2FjaGUsdGhpcy5fY2FjaGU9bmV3IE1hcCx0aGlzLl9ncmFwaGljc1Byb3ZpZGVyPWUsdGhpcy5fbW9kZWw9dCwKdGhpcy5fZm9yY2VPdmVybGF5PWl9dXBkYXRlKGUpeyJob3Zlci1jaGFuZ2UiIT09ZS50eXBlJiYodGhpcy5faW52YWxpZGF0ZWQ9ITApfXJlbmRlcmVyKGUpe3JldHVybiB0aGlzLl9pbnZhbGlkYXRlZCYmKHRoaXMuX2ludmFsaWRhdGVkPSExLHRoaXMuX3VwZGF0ZVJlbmRlcmVyKGUpKSx0aGlzLl9yZW5kZXJlcn1fdXBkYXRlUmVuZGVyZXIoZSl7dGhpcy5fcmVuZGVyZXIuc2V0RGF0YShudWxsKTtjb25zdCB0PXRoaXMuX2dyYXBoaWNzUHJvdmlkZXIucHJpY2VTY2FsZSh0aGlzLl9mb3JjZU92ZXJsYXkpLGk9dGhpcy5fbW9kZWwudGltZVNjYWxlKCk7aWYoIXR8fHQuaXNFbXB0eSgpfHxpLmlzRW1wdHkoKSlyZXR1cm47Y29uc3Qgcj10aGlzLl9ncmFwaGljc1Byb3ZpZGVyLmdyYXBoaWNzKCkuZHdnYm94ZXMoKTtpZigwPT09ci5zaXplKXJldHVybjtpZihudWxsPT09aS52aXNpYmxlQmFyc1N0cmljdFJhbmdlKCkpcmV0dXJuO2NvbnN0IG49dGhpcy5fZ3JhcGhpY3NQcm92aWRlci5wcm9wZXJ0aWVzKCkuY2hpbGRzKCkucGFsZXR0ZXMuY2hpbGRzKCksbz10aGlzLl9ncmFwaGljc1Byb3ZpZGVyLm1ldGFJbmZvKCkuaXNSR0I7aWYoIW8mJih2b2lkIDA9PT1ufHx2b2lkIDA9PT1uLnBhbGV0dGVfY29tbW9uKSlyZXR1cm47Y29uc3QgZD1vP3ZvaWQgMDooMCxhLmVuc3VyZURlZmluZWQpKG4ucGFsZXR0ZV9jb21tb24pLmNoaWxkcygpLmNvbG9ycy5jaGlsZHMoKSxoPXRoaXMuX2dyYXBoaWNzUHJvdmlkZXIuZmlyc3RWYWx1ZSh2b2lkIDAsdGhpcy5fZm9yY2VPdmVybGF5KTtpZihudWxsPT09aClyZXR1cm47Y29uc3QgYz17eDE6MCx5MTowLHgyOjAseTI6MCxleHRlbmQ6bC5Ed2dFeHRlbmQuTm9uZX0sZj1bXSxwPSgwLGEuZW5zdXJlRGVmaW5lZCkodGhpcy5fZ3JhcGhpY3NQcm92aWRlci5wcm9wZXJ0aWVzKCkuY2hpbGRzKCkuZ3JhcGhpY3MuY2hpbGRzKCkuZHdnYm94ZXMpLHttZWRpYVNpemU6e3dpZHRoOmcsaGVpZ2h0Ol99fT1lO3IuZm9yRWFjaCgoKGUscik9PntpZighKDAsYS5lbnN1cmVEZWZpbmVkKShwLmNoaWxkcygpW3JdKS5jaGlsZHMoKS52aXNpYmxlLnZhbHVlKCkpcmV0dXJuO2NvbnN0IG49ZS5nZXQodGhpcy5fZm9yY2VPdmVybGF5KTtuPy5mb3JFYWNoKChlPT57aWYobnVsbD09PWUuYmFja2dyb3VuZENvbG9ySW5kZXgmJm51bGw9PT1lLmJvcmRlckNvbG9ySW5kZXgpcmV0dXJuO2xldCByLG4scDtpZihvPyhyPW51bGw9PT1lLmJhY2tncm91bmRDb2xvckluZGV4P3ZvaWQgMDp0aGlzLl9yZ2JhRnJvbUludGVnZXIoZS5iYWNrZ3JvdW5kQ29sb3JJbmRleCksbj1udWxsPT09ZS5ib3JkZXJDb2xvckluZGV4P3ZvaWQgMDp0aGlzLl9yZ2JhRnJvbUludGVnZXIoZS5ib3JkZXJDb2xvckluZGV4KSxwPW51bGw9PT1lLnRleHRDb2xvckluZGV4P3ZvaWQgMDp0aGlzLl9yZ2JhRnJvbUludGVnZXIoZS50ZXh0Q29sb3JJbmRleCkpOihyPW51bGwhPT1lLmJhY2tncm91bmRDb2xvckluZGV4PygwLGEuZW5zdXJlRGVmaW5lZCkoZClbZS5iYWNrZ3JvdW5kQ29sb3JJbmRleF0uY2hpbGRzKCkuY29sb3IudmFsdWUoKTp2b2lkIDAsbj1udWxsIT09ZS5ib3JkZXJDb2xvckluZGV4PygwLGEuZW5zdXJlRGVmaW5lZCkoZClbZS5ib3JkZXJDb2xvckluZGV4XS5jaGlsZHMoKS5jb2xvci52YWx1ZSgpOnZvaWQgMCxwPW51bGwhPT1lLnRleHRDb2xvckluZGV4PygwLGEuZW5zdXJlRGVmaW5lZCkoZClbZS50ZXh0Q29sb3JJbmRleF0uY2hpbGRzKCkuY29sb3IudmFsdWUoKTp2b2lkIDApLHZvaWQgMD09PXImJnZvaWQgMD09PW4pcmV0dXJuO2NvbnN0IHg9KDAsdS5jb252ZXJ0UG9pbnRzVG9TY3JlZW5EaW1lbnNpb24pKGUubGVmdCxlLnRvcCxlLnJpZ2h0LGUuYm90dG9tLGUuZXh0ZW5kLHQsaSxnLGgsYyk7aWYobnVsbD09PXgpcmV0dXJuO2NvbnN0e3gxOncseDI6dix5MTptLHkyOnksZXh0ZW5kOmJ9PXgsVD1NYXRoLm1pbih3LHYpLEM9TWF0aC5tYXgodyx2KSxSPU1hdGgubWluKG0seSksUz1NYXRoLm1heChtLHkpLFA9e2JvcmRlcldpZHRoOmUuYm9yZGVyV2lkdGgsYm9yZGVyQ29sb3I6bixiYWNrZ3JvdW5kQ29sb3I6cixkYXNoUGF0dGVybjpEKGUuYm9yZGVyU3R5bGUpLGV4dGVuZExlZnQ6KDAsdS5pc0V4dGVuZEluU2FtZURpcmVjdGlvbikoYixsLkR3Z0V4dGVuZC5MZWZ0KSxleHRlbmRSaWdodDooMCx1LmlzRXh0ZW5kSW5TYW1lRGlyZWN0aW9uKShiLGwuRHdnRXh0ZW5kLlJpZ2h0KSx0ZXh0OnRoaXMuX2dldFRleHRTdHlsZURhdGEoZSxwLEMtVCxTLVIpLGZvbnRUeXBlOmUuZm9udFR5cGV9LE09e2xlZnRUb3A6bmV3IHMuUG9pbnQoTWF0aC5taW4oVCxDKSxSKSxyaWdodEJvdHRvbTpuZXcgcy5Qb2ludChNYXRoLm1heChULEMpLFMpLHN0eWxlOlB9LEw9TS5yaWdodEJvdHRvbS54PC1NLnN0eWxlLmJvcmRlcldpZHRoJiYhTS5zdHlsZS5leHRlbmRSaWdodCxCPU0ubGVmdFRvcC54PmcrTS5zdHlsZS5ib3JkZXJXaWR0aCYmIU0uc3R5bGUuZXh0ZW5kTGVmdCxBPU0ucmlnaHRCb3R0b20ueTwtTS5zdHlsZS5ib3JkZXJXaWR0aCxJPU0ubGVmdFRvcC55Pl8rTS5zdHlsZS5ib3JkZXJXaWR0aDtMfHxCfHxBfHxJfHxmLnB1c2goTSl9KSl9KSksdGhpcy5fcmVuZGVyZXIuc2V0RGF0YShmKX1fZ2V0VGV4dFN0eWxlRGF0YShlLHQsaSxyKXtjb25zdCBuPWUuZm9udFNpemUsbz1lLnRleHQmJnQ/e3RleHQ6ZS50ZXh0LHdvcmRXcmFwOmUud29yZFdyYXAsdGV4dENvbG9yOnQsaG9yaXpvbnRhbFRleHRBbGlnbm1lbnQ6ZS5ob3Jpem9udGFsVGV4dEFsaWdubWVudCx2ZXJ0aWNhbFRleHRBbGlnbm1lbnQ6ZS52ZXJ0aWNhbFRleHRBbGlnbm1lbnQsdGV4dEZvcm1hdHRpbmc6ZS50ZXh0Rm9ybWF0dGluZ306dm9pZCAwO2lmKG8mJnZvaWQgMCE9PW4pe2NvbnN0IHQ9bztpZihuPT09ZC5QbG90U3ltYm9sU2l6ZS5BdXRvfHwwPT09bil7Y29uc3Qgbj17bGluZXM6KDAsUy53b3JkV3JhcCkoKDAsYS5lbnN1cmVEZWZpbmVkKShlLnRleHQpLCIiLHRoaXMuX3RleHRXaWR0aENhY2hlLCEwLHZvaWQgMCkubWFwKChlPT5lLnRleHQpKSxib3hXaWR0aDppLGJveEhlaWdodDpyfQo7dC5mb250U2l6ZU1vZGU9ImF1dG8iO2NvbnN0IG89YCR7ZS5mb250VHlwZT8/ImRlZmF1bHQifS0ke2UudGV4dEZvcm1hdHRpbmd9YDtsZXQgcztpZih0aGlzLl9jYWNoZS5oYXMobykpcz0oMCxhLmVuc3VyZURlZmluZWQpKHRoaXMuX2NhY2hlLmdldChvKSk7ZWxzZXtjb25zdHtib2xkOnQsaXRhbGljOml9PSgwLGYuY29udmVydER3Z1RleHRGb3JtYXR0aW5nVG9PYmplY3QpKGUudGV4dEZvcm1hdHRpbmcpLHI9ZS5mb250VHlwZT9ULkNIQVJUX01PTk9TUEFDRV9GT05UX0ZBTUlMWTpDKCkuZm9udDtzPW5ldyBSKDVlMyx7Ym9sZDp0LGl0YWxpYzppLGZvbnQ6cn0pLHRoaXMuX2NhY2hlLnNldChvLHMpfXQuZm9udFNpemU9KDAsYS5lbnN1cmVOb3ROdWxsKShzLmdldChuKSl9ZWxzZSB0LmZvbnRTaXplTW9kZT0iZml4ZWQiLHQuZm9udFNpemU9bjtyZXR1cm4gdH19fX0sOTM5MzY4KGUsdCxpKXtpLnIodCksaS5kKHQse0R3Z0xhYmVsUGFuZVZpZXc6KCk9PlZ9KTt2YXIgcj1pKDEzODYzOCksbj1pKDU0ODU2MCksbz1pKDI1NDczMSksYT1pKDc4OTE5MCkscz1pKDExODc1MiksbD1pKDY1MTk2NiksZD1pKDMzMDg2MSksaD1pKDMwMjQ2OSksYz1pKDc0NzQ2NSksdT1pKDU0NDI0MyksZj1pKDE2ODQ4NykscD1pKDczNjUzMSksZz1pKDg0NjUyOSk7Y2xhc3MgXyBleHRlbmRzIGcuUGFuZVJlbmRlcmVyTGFiZWxCYXNle19jYWxjQm91bmRpbmdCb3goZSl7Y29uc3QgdD1lLmNlbnRlcixpPWUuY2VudGVyK2Uuc2hhcGVXaWR0aCxyPWUueS1lLnNoYXBlSGVpZ2h0K2UudmVydE9mZnNldCxuPWUueStlLnZlcnRPZmZzZXQsbz1uZXcgcC5Qb2ludCh0LHIpLGE9bmV3IHAuUG9pbnQoaSxuKTtyZXR1cm4oMCxwLmJveCkobyxhKX1fZHJhd0l0ZW1TaGFwZShlLHQpe2NvbnN0e2NvbnRleHQ6aSxob3Jpem9udGFsUGl4ZWxSYXRpbzpyLHZlcnRpY2FsUGl4ZWxSYXRpbzpufT1lLG89dGhpcy5fbGluZVdpZHRoKGUpJTI/LjU6MCxhPXRoaXMuX2dldEFycm93U2l6ZSh0KSxzPU1hdGgucm91bmQodC5jZW50ZXIqcikrbyxsPU1hdGgucm91bmQoKHQueSt0LnZlcnRPZmZzZXQpKm4pK28sZD1NYXRoLnJvdW5kKCh0LmNlbnRlcithKSpyKStvLGg9TWF0aC5yb3VuZCgodC55K3QudmVydE9mZnNldC1hKSpuKStvLGM9TWF0aC5yb3VuZCgodC55K3QudmVydE9mZnNldC0yKmEpKm4pK287aS5tb3ZlVG8oZCxoKSxpLmxpbmVUbyhzLGwpLGkubGluZVRvKGQsYyk7Y29uc3QgdT1NYXRoLnJvdW5kKCh0LnkrdC52ZXJ0T2Zmc2V0LXQuc2hhcGVIZWlnaHQtYSkqbikrbyxmPU1hdGgucm91bmQoKHQuY2VudGVyK3Quc2hhcGVXaWR0aCthKSpyKStvO3RoaXMuX2RyYXdDb3JuZXIoZSxkLHUsZy5Db3JuZXJWZWN0b3JzQ2xvY2t3aXNlLmxlZnRVcCksdGhpcy5fZHJhd0Nvcm5lcihlLGYsdSxnLkNvcm5lclZlY3RvcnNDbG9ja3dpc2UucmlnaHRVcCksdGhpcy5fZHJhd0Nvcm5lcihlLGYsaCxnLkNvcm5lclZlY3RvcnNDbG9ja3dpc2UucmlnaHREb3duKSxpLmxpbmVUbyhkLGgpfV9nZXRBcnJvd1NpemUoZSl7cmV0dXJuIGUuc3RlcFgvTWF0aC5zcXJ0KDIpfV9nZXRIb3Jpem9udGFsVGV4dE9mZnNldChlKXtyZXR1cm4gZS5zaGFwZVdpZHRoLzIrdGhpcy5fZ2V0QXJyb3dTaXplKGUpfV9nZXRWZXJ0aWNhbFRleHRPZmZzZXQoZSl7cmV0dXJuLWUuc2hhcGVIZWlnaHQvMi10aGlzLl9nZXRBcnJvd1NpemUoZSl9fWNsYXNzIHggZXh0ZW5kcyBnLlBhbmVSZW5kZXJlckxhYmVsQmFzZXtfY2FsY0JvdW5kaW5nQm94KGUpe2NvbnN0IHQ9ZS5jZW50ZXIsaT1lLmNlbnRlcitlLnNoYXBlV2lkdGgscj1lLnkrZS52ZXJ0T2Zmc2V0LG49ZS55K2Uuc2hhcGVIZWlnaHQrZS52ZXJ0T2Zmc2V0LG89bmV3IHAuUG9pbnQodCxyKSxhPW5ldyBwLlBvaW50KGksbik7cmV0dXJuKDAscC5ib3gpKG8sYSl9X2RyYXdJdGVtU2hhcGUoZSx0KXtjb25zdHtjb250ZXh0OmksaG9yaXpvbnRhbFBpeGVsUmF0aW86cix2ZXJ0aWNhbFBpeGVsUmF0aW86bn09ZSxvPXRoaXMuX2xpbmVXaWR0aChlKSUyPy41OjAsYT10aGlzLl9nZXRBcnJvd1NpemUodCkscz1NYXRoLnJvdW5kKHQuY2VudGVyKnIpK28sbD1NYXRoLnJvdW5kKCh0LnkrdC52ZXJ0T2Zmc2V0KSpuKStvLGQ9TWF0aC5yb3VuZCgodC5jZW50ZXIrYSkqcikrbyxoPU1hdGgucm91bmQoKHQueSt0LnZlcnRPZmZzZXQrMiphKSpuKStvLGM9TWF0aC5yb3VuZCgodC55K3QudmVydE9mZnNldCthKSpuKStvLHU9TWF0aC5yb3VuZCgodC5jZW50ZXIrdC5zaGFwZVdpZHRoK2EpKnIpK28sZj1NYXRoLnJvdW5kKCh0LnkrdC52ZXJ0T2Zmc2V0K3Quc2hhcGVIZWlnaHQrYSkqbikrbztpLm1vdmVUbyhkLGgpLGkubGluZVRvKHMsbCksaS5saW5lVG8oZCxjKSx0aGlzLl9kcmF3Q29ybmVyKGUsdSxjLGcuQ29ybmVyVmVjdG9yc0Nsb2Nrd2lzZS5yaWdodFVwKSx0aGlzLl9kcmF3Q29ybmVyKGUsdSxmLGcuQ29ybmVyVmVjdG9yc0Nsb2Nrd2lzZS5yaWdodERvd24pLHRoaXMuX2RyYXdDb3JuZXIoZSxkLGYsZy5Db3JuZXJWZWN0b3JzQ2xvY2t3aXNlLmxlZnREb3duKSxpLmxpbmVUbyhkLGgpfV9nZXRBcnJvd1NpemUoZSl7cmV0dXJuIGUuc3RlcFgvTWF0aC5zcXJ0KDIpfV9nZXRIb3Jpem9udGFsVGV4dE9mZnNldChlKXtyZXR1cm4gZS5zaGFwZVdpZHRoLzIrdGhpcy5fZ2V0QXJyb3dTaXplKGUpfV9nZXRWZXJ0aWNhbFRleHRPZmZzZXQoZSl7cmV0dXJuIGUuc2hhcGVIZWlnaHQvMit0aGlzLl9nZXRBcnJvd1NpemUoZSl9fWNsYXNzIHcgZXh0ZW5kcyBnLlBhbmVSZW5kZXJlckxhYmVsQmFzZXtfY2FsY0JvdW5kaW5nQm94KGUpe2NvbnN0IHQ9ZS5jZW50ZXItZS5zaGFwZVdpZHRoLGk9ZS5jZW50ZXIscj1lLnktZS5zaGFwZUhlaWdodCtlLnZlcnRPZmZzZXQsbj1lLnkrZS52ZXJ0T2Zmc2V0LG89bmV3IHAuUG9pbnQodCxyKSxhPW5ldyBwLlBvaW50KGksbik7cmV0dXJuKDAscC5ib3gpKG8sYSl9X2RyYXdJdGVtU2hhcGUoZSx0KXsKY29uc3R7Y29udGV4dDppLGhvcml6b250YWxQaXhlbFJhdGlvOnIsdmVydGljYWxQaXhlbFJhdGlvOm59PWUsbz10aGlzLl9saW5lV2lkdGgoZSklMj8uNTowLGE9dGhpcy5fZ2V0QXJyb3dTaXplKHQpLHM9TWF0aC5yb3VuZCh0LmNlbnRlcipyKStvLGw9TWF0aC5yb3VuZCgodC55K3QudmVydE9mZnNldCkqbikrbyxkPU1hdGgucm91bmQoKHQuY2VudGVyLWEpKnIpK28saD1NYXRoLnJvdW5kKCh0LnkrdC52ZXJ0T2Zmc2V0LTIqYSkqbikrbyxjPU1hdGgucm91bmQoKHQueSt0LnZlcnRPZmZzZXQtYSkqbikrbyx1PU1hdGgucm91bmQoKHQuY2VudGVyLXQuc2hhcGVXaWR0aC1hKSpyKStvLGY9TWF0aC5yb3VuZCgodC55K3QudmVydE9mZnNldC10LnNoYXBlSGVpZ2h0LWEpKm4pK287aS5tb3ZlVG8oZCxoKSxpLmxpbmVUbyhzLGwpLGkubGluZVRvKGQsYyksdGhpcy5fZHJhd0Nvcm5lcihlLHUsYyxnLkNvcm5lclZlY3RvcnNDbG9ja3dpc2UubGVmdERvd24pLHRoaXMuX2RyYXdDb3JuZXIoZSx1LGYsZy5Db3JuZXJWZWN0b3JzQ2xvY2t3aXNlLmxlZnRVcCksdGhpcy5fZHJhd0Nvcm5lcihlLGQsZixnLkNvcm5lclZlY3RvcnNDbG9ja3dpc2UucmlnaHRVcCksaS5saW5lVG8oZCxoKX1fZ2V0QXJyb3dTaXplKGUpe3JldHVybiBlLnN0ZXBYL01hdGguc3FydCgyKX1fZ2V0VmVydGljYWxUZXh0T2Zmc2V0KGUpe3JldHVybi1lLnNoYXBlSGVpZ2h0LzItdGhpcy5fZ2V0QXJyb3dTaXplKGUpfV9nZXRIb3Jpem9udGFsVGV4dE9mZnNldChlKXtyZXR1cm4tZS5zaGFwZVdpZHRoLzItdGhpcy5fZ2V0QXJyb3dTaXplKGUpfX1jbGFzcyB2IGV4dGVuZHMgZy5QYW5lUmVuZGVyZXJMYWJlbEJhc2V7X2NhbGNCb3VuZGluZ0JveChlKXtjb25zdCB0PWUuY2VudGVyLWUuc2hhcGVXaWR0aCxpPWUuY2VudGVyLHI9ZS55K2UudmVydE9mZnNldCxuPWUueStlLnNoYXBlSGVpZ2h0K2UudmVydE9mZnNldCxvPW5ldyBwLlBvaW50KHQsciksYT1uZXcgcC5Qb2ludChpLG4pO3JldHVybigwLHAuYm94KShvLGEpfV9kcmF3SXRlbVNoYXBlKGUsdCl7Y29uc3R7Y29udGV4dDppLGhvcml6b250YWxQaXhlbFJhdGlvOnIsdmVydGljYWxQaXhlbFJhdGlvOm59PWUsbz10aGlzLl9saW5lV2lkdGgoZSklMj8uNTowLGE9dGhpcy5fZ2V0QXJyb3dTaXplKHQpLHM9TWF0aC5yb3VuZCh0LmNlbnRlcipyKStvLGw9TWF0aC5yb3VuZCgodC55K3QudmVydE9mZnNldCkqbikrbyxkPU1hdGgucm91bmQoKHQuY2VudGVyLWEpKnIpK28saD1NYXRoLnJvdW5kKCh0LnkrdC52ZXJ0T2Zmc2V0K2EpKm4pK28sYz1NYXRoLnJvdW5kKCh0LnkrdC52ZXJ0T2Zmc2V0KzIqYSkqbikrbyx1PU1hdGgucm91bmQoKHQuY2VudGVyLXQuc2hhcGVXaWR0aC1hKSpyKStvLGY9TWF0aC5yb3VuZCgodC55K3QudmVydE9mZnNldCt0LnNoYXBlSGVpZ2h0K2EpKm4pK287aS5tb3ZlVG8oZCxoKSxpLmxpbmVUbyhzLGwpLGkubGluZVRvKGQsYyksdGhpcy5fZHJhd0Nvcm5lcihlLGQsZixnLkNvcm5lclZlY3RvcnNDbG9ja3dpc2UucmlnaHREb3duKSx0aGlzLl9kcmF3Q29ybmVyKGUsdSxmLGcuQ29ybmVyVmVjdG9yc0Nsb2Nrd2lzZS5sZWZ0RG93biksdGhpcy5fZHJhd0Nvcm5lcihlLHUsaCxnLkNvcm5lclZlY3RvcnNDbG9ja3dpc2UubGVmdFVwKSxpLmxpbmVUbyhkLGgpfV9nZXRBcnJvd1NpemUoZSl7cmV0dXJuIGUuc3RlcFgvTWF0aC5zcXJ0KDIpfV9nZXRIb3Jpem9udGFsVGV4dE9mZnNldChlKXtyZXR1cm4tZS5zaGFwZVdpZHRoLzItdGhpcy5fZ2V0QXJyb3dTaXplKGUpfV9nZXRWZXJ0aWNhbFRleHRPZmZzZXQoZSl7cmV0dXJuIGUuc2hhcGVIZWlnaHQvMit0aGlzLl9nZXRBcnJvd1NpemUoZSl9fXZhciBtLHk9aSg0MDc1ODQpLGI9aSgzNjMzMjYpLFQ9aSg4ODQyOCksQz1pKDg3NDEzNSk7Y2xhc3MgUiBleHRlbmRzIEMuUGFuZVJlbmRlcmVyQWJzdHJhY3RGaWxsU3Ryb2tlU2hhcGV7c2V0SXRlbXMoZSx0KXt0aGlzLl9zZXRCYXNlRGF0YShlLHQpO2Zvcihjb25zdCBlIG9mIHRoaXMuX2l0ZW1zKTA9PT1lLnZlcnRPZmZzZXQmJihlLnRleHRWZXJ0T2Zmc2V0PTApfV9kcmF3SXRlbVRleHQoZSx0KXtjb25zdCBpPXRoaXMuX2dldFRleHRDYWNoZSh0KTtpZihudWxsPT09aSlyZXR1cm47Y29uc3Qgcj10LmNlbnRlcixuPXQueSt0LnRleHRWZXJ0T2Zmc2V0LG89dC5zdHlsZT8udGV4dENvbG9yfHx0aGlzLl90ZXh0Q29sb3IsYT10LnZlcnRPZmZzZXQscz17c3R5bGU6e2ZpbGxTdHlsZTpvfSxsb2NhdGlvbjp7eDpyLHk6bixob3J6QWxpZ246VC5Ib3Jpem9udGFsQWxpZ24uQ2VudGVyLHZlcnRBbGlnbjphPjA/VC5WZXJ0aWNhbEFsaWduLlRvcDpULlZlcnRpY2FsQWxpZ24uQm90dG9tfX07aS5wYWludFRvKGUscyl9X2NhbGNCb3VuZGluZ0JveChlKXtjb25zdCB0PWUudmVydE9mZnNldCxpPXRoaXMuX2dldFRleHRDYWNoZShlKTtpZighaSlyZXR1cm47Y29uc3Qgcj1pLnRleHRJbWFnZVdpZHRoLG49aS50ZXh0SW1hZ2VIZWlnaHQsbz1yLzIsYT1lLnkrZS50ZXh0VmVydE9mZnNldCxzPXQ+MD8wOi1uLGw9dD4wP246MCxkPW5ldyBwLlBvaW50KGUuY2VudGVyLW8sYStzKSxoPW5ldyBwLlBvaW50KGUuY2VudGVyK28sYStsKTtyZXR1cm4oMCxwLmJveCkoZCxoKX19IWZ1bmN0aW9uKGUpe2VbZS5PdXRsaW5lV2lkdGg9NF09Ik91dGxpbmVXaWR0aCJ9KG18fChtPXt9KSk7Y2xhc3MgUyBleHRlbmRzIGYuUGFuZVJlbmRlcmVyTGFiZWxDZW50ZXJ7X2RyYXdJdGVtVGV4dChlLHQpe2NvbnN0IGk9dGhpcy5fZ2V0VGV4dENhY2hlKHQpO2lmKG51bGw9PT1pKXJldHVybjtjb25zdCBuPXQudGV4dEhvcml6T2Zmc2V0fHwwLG89dC5jZW50ZXIrbixhPXQudmVydE9mZnNldCxzPXQueSthK3QudGV4dFZlcnRPZmZzZXQsbD10LnN0eWxlPy50ZXh0Q29sb3J8fHRoaXMuX3RleHRDb2xvcixkPXQuc3R5bGU/LmJvcmRlckNvbG9yfHx0aGlzLl9ib3JkZXJDb2xvcixoPXtzdHlsZTp7ZmlsbFN0eWxlOigwLHIuZW5zdXJlRGVmaW5lZCkobCksc3Ryb2tlU3R5bGU6ZCxsaW5lV2lkdGg6NH0sbG9jYXRpb246e3g6byx5OnMsaG9yekFsaWduOlQuSG9yaXpvbnRhbEFsaWduLkNlbnRlciwKdmVydEFsaWduOlQuVmVydGljYWxBbGlnbi5NaWRkbGV9fTtpLnBhaW50VG8oZSxoKX1fZHJhd0l0ZW1TaGFwZShlLHQpe319dmFyIFAsRD1pKDE2ODI1OCksTT1pKDUxMjQzNyksTD1pKDQ3NzM4OCksQj1pKDkyNjE0OSksQT1pKDE0MzgwOCksST1pKDk0MTEwMCk7IWZ1bmN0aW9uKGUpe2VbZS5MaW5lU3BhY2luZ0NvZWZmPS4xNjY2NjY2NjY2NjY2NjY2Nl09IkxpbmVTcGFjaW5nQ29lZmYiLGVbZS5QYW5lSGVpZ2h0TGltaXQ9MTMwXT0iUGFuZUhlaWdodExpbWl0IixlW2UuVGV4dEltYWdlQ2FjaGVTaXplPTVlM109IlRleHRJbWFnZUNhY2hlU2l6ZSIsZVtlLkZ1bmRhbWVudGFsc01pbkxhYmVsc1NwYWNpbmc9NjBdPSJGdW5kYW1lbnRhbHNNaW5MYWJlbHNTcGFjaW5nIixlW2UuSGlkZVNoYXBlTXVsdGlwbGllcj0uNV09IkhpZGVTaGFwZU11bHRpcGxpZXIiLGVbZS5UZXh0T3V0bGluZU11bHRpcGxpZXI9MS4xXT0iVGV4dE91dGxpbmVNdWx0aXBsaWVyIixlW2UuT3RoZXJTdHlsZXNNdWx0aXBsaWVyPTEuMl09Ik90aGVyU3R5bGVzTXVsdGlwbGllciJ9KFB8fChQPXt9KSk7Y29uc3Qgej17W24uRHdnTGFiZWxUZXh0QWxpZ24uTGVmdF06ImxlZnQiLFtuLkR3Z0xhYmVsVGV4dEFsaWduLkNlbnRlcl06ImNlbnRlciIsW24uRHdnTGFiZWxUZXh0QWxpZ24uUmlnaHRdOiJyaWdodCJ9O3ZhciBIO2Z1bmN0aW9uIEUoZSx0LGkpe3N3aXRjaChmdW5jdGlvbihlKXtpZihlLmxlbmd0aDwyKXJldHVybiAwO2xldCB0PU1hdGguYWJzKGVbMF0uY2VudGVyLWVbMV0uY2VudGVyKTtmb3IobGV0IGk9MjtpPE1hdGgubWluKDUsZS5sZW5ndGgpOysraSl0PU1hdGgubWF4KHQsTWF0aC5hYnMoZVtpLTFdLmNlbnRlci1lW2ldLmNlbnRlcikpO3JldHVybiB0PDMwPzI6dDw2MD8xOjB9KGUpKXtjYXNlIDA6cmV0dXJuIGU7Y2FzZSAxOmNvbnN0IHI9ZS5sZW5ndGg7cmV0dXJuIGUuZmlsdGVyKCgoZSxuKT0+KHQtaSsoci1uKSklMj09MCkpO2Nhc2UgMjpyZXR1cm5bXX19IWZ1bmN0aW9uKGUpe2VbZS5BbGxJdGVtc0F2YWlsYWJsZT0wXT0iQWxsSXRlbXNBdmFpbGFibGUiLGVbZS5FdmVuSXRlbXNBdmFpbGFibGU9MV09IkV2ZW5JdGVtc0F2YWlsYWJsZSIsZVtlLlVuYXZhaWxhYmxlPTJdPSJVbmF2YWlsYWJsZSJ9KEh8fChIPXt9KSk7Y2xhc3MgVntjb25zdHJ1Y3RvcihlLHQsaSxyKXt0aGlzLl9yZW5kZXJlclR5cGVCeVN0eWxlPW5ldyBNYXAoW1tuLkR3Z0xhYmVsU3R5bGUuQXJyb3dkb3duLGwuUGFuZVJlbmRlcmVyQXJyb3dEb3duXSxbbi5Ed2dMYWJlbFN0eWxlLkFycm93dXAsbC5QYW5lUmVuZGVyZXJBcnJvd1VwXSxbbi5Ed2dMYWJlbFN0eWxlLkNpcmNsZSxkLlBhbmVSZW5kZXJlckNpcmNsZVNoYXBlXSxbbi5Ed2dMYWJlbFN0eWxlLkNyb3NzLGguUGFuZVJlbmRlcmVyQ3Jvc3NTaGFwZV0sW24uRHdnTGFiZWxTdHlsZS5EaWFtb25kLGMuUGFuZVJlbmRlcmVyRGlhbW9uZF0sW24uRHdnTGFiZWxTdHlsZS5GbGFnLHUuUGFuZVJlbmRlcmVyRmxhZ1NoYXBlXSxbbi5Ed2dMYWJlbFN0eWxlLkxhYmVsRG93bixmLlBhbmVSZW5kZXJlckxhYmVsRG93bl0sW24uRHdnTGFiZWxTdHlsZS5MYWJlbFVwLGYuUGFuZVJlbmRlcmVyTGFiZWxVcF0sW24uRHdnTGFiZWxTdHlsZS5MYWJlbExlZnQsZi5QYW5lUmVuZGVyZXJMYWJlbExlZnRdLFtuLkR3Z0xhYmVsU3R5bGUuTGFiZWxSaWdodCxmLlBhbmVSZW5kZXJlckxhYmVsUmlnaHRdLFtuLkR3Z0xhYmVsU3R5bGUuTGFiZWxDZW50ZXIsZi5QYW5lUmVuZGVyZXJMYWJlbENlbnRlcl0sW24uRHdnTGFiZWxTdHlsZS5MYWJlbExlZnRVcCx4XSxbbi5Ed2dMYWJlbFN0eWxlLkxhYmVsTGVmdERvd24sX10sW24uRHdnTGFiZWxTdHlsZS5MYWJlbFJpZ2h0VXAsdl0sW24uRHdnTGFiZWxTdHlsZS5MYWJlbFJpZ2h0RG93bix3XSxbbi5Ed2dMYWJlbFN0eWxlLlNxdWFyZSx5LlBhbmVSZW5kZXJlclNxdWFyZV0sW24uRHdnTGFiZWxTdHlsZS5UcmlhbmdsZXVwLHMuUGFuZVJlbmRlcmVyVHJpYW5nbGVBcGV4VXBdLFtuLkR3Z0xhYmVsU3R5bGUuVHJpYW5nbGVkb3duLHMuUGFuZVJlbmRlcmVyVHJpYW5nbGVBcGV4RG93bl0sW24uRHdnTGFiZWxTdHlsZS5YY3Jvc3MsYi5QYW5lUmVuZGVyZXJYQ3Jvc3NdLFtuLkR3Z0xhYmVsU3R5bGUuTm9uZSxSXSxbbi5Ed2dMYWJlbFN0eWxlLlRleHRPdXRsaW5lLFNdXSksdGhpcy5faW52YWxpZGF0ZWQ9ITAsdGhpcy5fcmdiYUZyb21JbnRlZ2VyPSgwLG8ucmdiYUZyb21JbnRlZ2VyQ2FjaGVkKSgpLHRoaXMuX2dyYXBoaWNzUHJvdmlkZXI9ZSx0aGlzLl9tb2RlbD10LHRoaXMuX3JlbmRlcmVyPW5ldyBhLkNvbXBvc2l0ZVJlbmRlcmVyLHRoaXMuX3RleHRDYWNoZT1uZXcgTS5UZXh0SW1hZ2VDYWNoZXNDb250YWluZXIoNWUzKSx0aGlzLl9pc0Z1bmRhbWVudGFsPSgwLEEuaXNGdW5kYW1lbnRhbFN0dWR5TWV0YUluZm8pKGUubWV0YUluZm8oKSksdGhpcy5fZm9yY2VPdmVybGF5PWl9dXBkYXRlKGUpeyJob3Zlci1jaGFuZ2UiIT09ZS50eXBlJiYodGhpcy5faW52YWxpZGF0ZWQ9ITApfXJlbmRlcmVyKCl7cmV0dXJuIHRoaXMuX2ludmFsaWRhdGVkJiYodGhpcy5faW52YWxpZGF0ZWQ9ITEsdGhpcy5fdXBkYXRlVmlld0ludGVybmFsKHRoaXMuX21vZGVsLnRpbWVTY2FsZSgpLmJhclNwYWNpbmcoKSkpLHRoaXMuX3JlbmRlcmVyfV9zaGlmdExhYmVscygpe2lmKCF0aGlzLl9pc0Z1bmRhbWVudGFsKXJldHVybiExO2NvbnN0IGU9dGhpcy5fZ3JhcGhpY3NQcm92aWRlci5tZXRhSW5mbygpO2lmKDEhPT1lLnBsb3RzLmxlbmd0aClyZXR1cm4hMTtjb25zdCB0PXRoaXMuX2dyYXBoaWNzUHJvdmlkZXIucHJvcGVydGllcygpLmNoaWxkcygpLnN0eWxlcy5jaGlsZHMoKVtlLnBsb3RzWzBdLmlkXS5jaGlsZHMoKS5wbG90dHlwZS52YWx1ZSgpO3JldHVybiB0PT09RC5MaW5lU3R1ZHlQbG90U3R5bGUuU3RlcExpbmV8fHQ9PT1ELkxpbmVTdHVkeVBsb3RTdHlsZS5TdGVwTGluZVdpdGhEaWFtb25kc31fdXBkYXRlVmlld0ludGVybmFsKGUpe3RoaXMuX3JlbmRlcmVyLmNsZWFyKCkKO2NvbnN0IHQ9dGhpcy5fZ3JhcGhpY3NQcm92aWRlci5wcmljZVNjYWxlKHRoaXMuX2ZvcmNlT3ZlcmxheSksaT10aGlzLl9tb2RlbC50aW1lU2NhbGUoKTtpZighdHx8dC5pc0VtcHR5KCl8fGkuaXNFbXB0eSgpKXJldHVybjtjb25zdCBvPXRoaXMuX2dyYXBoaWNzUHJvdmlkZXIuZ3JhcGhpY3MoKS5kd2dsYWJlbHMoKSxhPWkudmlzaWJsZUJhcnNTdHJpY3RSYW5nZSgpLHM9dGhpcy5fZ3JhcGhpY3NQcm92aWRlci5maXJzdFZhbHVlKHZvaWQgMCx0aGlzLl9mb3JjZU92ZXJsYXkpO2lmKDA9PT1vLnNpemV8fG51bGw9PT1hfHxudWxsPT09cylyZXR1cm47Y29uc3QgbD1hLmZpcnN0QmFyKCksZD1hLmxhc3RCYXIoKSxoPU1hdGgucm91bmQoZSpMLkR3Z0xhYmVsUGFuZVZpZXdDb25zdGFudHMuQVVUT19TSVpFX01VTFQpO2xldCBjPW51bGw7Y29uc3QgdT1bXSxmPSgwLHIuZW5zdXJlRGVmaW5lZCkodGhpcy5fZ3JhcGhpY3NQcm92aWRlci5wcm9wZXJ0aWVzKCkuY2hpbGRzKCkuZ3JhcGhpY3MuY2hpbGRzKCkuZHdnbGFiZWxzKTtvLmZvckVhY2goKChlLGkpPT57aWYoISgwLHIuZW5zdXJlRGVmaW5lZCkoZi5jaGlsZHMoKVtpXSkuY2hpbGRzKCkudmlzaWJsZS52YWx1ZSgpKXJldHVybjtjb25zdCBuPWUuZ2V0KHRoaXMuX2ZvcmNlT3ZlcmxheSk7aWYoIW4pcmV0dXJuO2NvbnN0IG89bi5zaXplO2xldCBhPS0xO24uZm9yRWFjaCgoZT0+e2ErPTE7Y29uc3QgaT1lLng7aWYoaTxsfHxkPGkpcmV0dXJuO2xldCBuLGY7aWYodGhpcy5fZ3JhcGhpY3NQcm92aWRlci5tZXRhSW5mbygpLmlzUkdCKW49bnVsbD09PWUuY29sb3JJbmRleD92b2lkIDA6dGhpcy5fcmdiYUZyb21JbnRlZ2VyKGUuY29sb3JJbmRleCksZj1udWxsPT09ZS50ZXh0Q29sb3JJbmRleD92b2lkIDA6dGhpcy5fcmdiYUZyb21JbnRlZ2VyKGUudGV4dENvbG9ySW5kZXgpO2Vsc2V7Y29uc3QgdD10aGlzLl9ncmFwaGljc1Byb3ZpZGVyLnByb3BlcnRpZXMoKS5jaGlsZHMoKS5wYWxldHRlcy5jaGlsZHMoKTtpZih2b2lkIDA9PT10fHx2b2lkIDA9PT10LnBhbGV0dGVfY29tbW9uKXJldHVybjtjb25zdCBpPXQucGFsZXR0ZV9jb21tb24uY2hpbGRzKCkscj1udWxsPT09ZS5jb2xvckluZGV4P251bGw6aS5jb2xvcnMuY2hpbGRzKClbZS5jb2xvckluZGV4XSxvPW51bGw9PT1lLnRleHRDb2xvckluZGV4P251bGw6aS5jb2xvcnMuY2hpbGRzKClbZS50ZXh0Q29sb3JJbmRleF07aWYodm9pZCAwPT09cnx8dm9pZCAwPT09bylyZXR1cm47bj1udWxsPT09cj92b2lkIDA6ci5jaGlsZHMoKS5jb2xvci52YWx1ZSgpLGY9bnVsbD09PW8/dm9pZCAwOm8uY2hpbGRzKCkuY29sb3IudmFsdWUoKX1pZih2b2lkIDA9PT1uJiZ2b2lkIDA9PT1mKXJldHVybjtjb25zdCBwPWUuc2l6ZSxnPWUuc3R5bGUsXz0oMCxMLmNhbGN1bGF0ZUxhYmVsSGVpZ2h0KShMLkR3Z0xhYmVsUGFuZVZpZXdDb25zdGFudHMuTk9STUFMX1NJWkUscCxoKSx4PXRoaXMuX2dldEludmVydGVkWWxvYyhlLnlsb2MsdC5pc0ludmVydGVkKCkpLHc9dm9pZCAwPT09Zj8iIjplLnRleHQsdj16W2UudGV4dEFsaWduXSxtPWUudG9vbHRpcCx5PSJtb25vc3BhY2UiPT09ZS5mb250VHlwZT9CLkNIQVJUX01PTk9TUEFDRV9GT05UX0ZBTUlMWTpCLkNIQVJUX0ZPTlRfRkFNSUxZX1dWLnZhbHVlKCkse2JvbGQ6YixpdGFsaWM6VH09KDAsSS5jb252ZXJ0RHdnVGV4dEZvcm1hdHRpbmdUb09iamVjdCkoZS50ZXh0Rm9ybWF0dGluZyksQz1fKkwuRHdnTGFiZWxQYW5lVmlld0NvbnN0YW50cy5GT05UX1NJWkVfTVVMVCxSPU1hdGgucm91bmQoLjE2NjY2NjY2NjY2NjY2NjY2KkMpLFM9dy5sZW5ndGg/KDAsci5lbnN1cmVOb3ROdWxsKSh0aGlzLl90ZXh0Q2FjaGUuZ2V0KHt0ZXh0OncsYm9sZDpiLGl0YWxpYzpULGZvbnQ6eSxmb250U2l6ZTpDLGxpbmVTcGFjaW5nOlIsYWxpZ246dn0pKS50ZXh0SW1hZ2VIZWlnaHQ6MCxQPXRoaXMuX2dldExvY2F0aW9uRGF0YSh7aW5kZXg6aSxwcmljZTplLnkseWxvYzp4LHNpemU6XyxzdHlsZTpnLGZpcnN0VmFsdWU6cyxoaWRlU2hhcGU6dm9pZCAwPT09bnx8Im4iPT09Zyx0ZXh0SGVpZ2h0OlN9KSxEPXtjZW50ZXI6dGhpcy5fc2hpZnRMYWJlbHMoKT9QLnJpZ2h0OlAuY2VudGVyLGxlZnQ6TmFOLHJpZ2h0Ok5hTix0aW1lUG9pbnRJbmRleDpOYU4seTpQLnkwLHdpZHRoOlAuc2hhcGVXaWR0aCxoZWlnaHQ6UC5zaGFwZUhlaWdodCx2ZXJ0T2Zmc2V0OlAudmVydE9mZnNldCx0ZXh0OncsZm9udFNpemU6UC5mb250U2l6ZSxmb250OnksYm9sZDpiLGl0YWxpYzpULHN0eWxlOntjb2xvcjpuLGJvcmRlckNvbG9yOm4sdGV4dENvbG9yOmZ9LHRleHRBbGlnbjp2LGxpbmVTcGFjaW5nOlIsdG9vbHRpcDptfTtsZXQgTTtQLnN0eWxlIT09Yz8oTT17aXRlbXM6W10sYWxsSXRlbXNJbmNsdWRpbmdJbnZpc2libGVTaXplOm8sZW5kVmlzaWJsZUl0ZW1JbmRleDphLHN0eWxlOlAuc3R5bGV9LHUucHVzaChNKSxjPVAuc3R5bGUpOk09dVt1Lmxlbmd0aC0xXSxNLml0ZW1zLnB1c2goRCksTS5lbmRWaXNpYmxlSXRlbUluZGV4PWF9KSl9KSksdS5mb3JFYWNoKCh0PT57bGV0IGk9dC5pdGVtcztpZih0aGlzLl9pc0Z1bmRhbWVudGFsKXN3aXRjaCh0LnN0eWxlKXtjYXNlIG4uRHdnTGFiZWxTdHlsZS5MYWJlbFVwOmNhc2Ugbi5Ed2dMYWJlbFN0eWxlLkxhYmVsRG93bjpjYXNlIG4uRHdnTGFiZWxTdHlsZS5MYWJlbExlZnQ6Y2FzZSBuLkR3Z0xhYmVsU3R5bGUuTGFiZWxSaWdodDpjYXNlIG4uRHdnTGFiZWxTdHlsZS5MYWJlbENlbnRlcjpjYXNlIG4uRHdnTGFiZWxTdHlsZS5MYWJlbExlZnRVcDpjYXNlIG4uRHdnTGFiZWxTdHlsZS5MYWJlbExlZnREb3duOmNhc2Ugbi5Ed2dMYWJlbFN0eWxlLkxhYmVsUmlnaHRVcDpjYXNlIG4uRHdnTGFiZWxTdHlsZS5MYWJlbFJpZ2h0RG93bjpjYXNlIG4uRHdnTGFiZWxTdHlsZS5UZXh0T3V0bGluZTppPUUoaSx0LmFsbEl0ZW1zSW5jbHVkaW5nSW52aXNpYmxlU2l6ZSx0LmVuZFZpc2libGVJdGVtSW5kZXgpfWNvbnN0IG89bmV3KCgwLHIuZW5zdXJlRGVmaW5lZCkodGhpcy5fcmVuZGVyZXJUeXBlQnlTdHlsZS5nZXQodC5zdHlsZSkpKSh7Cml0ZW1zOmksYmFyU3BhY2luZzplfSx7dGV4dENhY2hlOnRoaXMuX3RleHRDYWNoZSxza2lwUmVuZGVyaW5nT3B0aW1pemF0aW9uczohMH0pO3RoaXMuX3JlbmRlcmVyLmFwcGVuZChvKX0pKX1fZ2V0TG9jYXRpb25EYXRhKGUpe2NvbnN0IHQ9TC5Ed2dMYWJlbFBhbmVWaWV3Q29uc3RhbnRzLGk9ZS5zaXplKnQuRk9OVF9TSVpFX01VTFQscj10aGlzLl9tb2RlbC50aW1lU2NhbGUoKSxvPXRoaXMuX2dyYXBoaWNzUHJvdmlkZXIucHJpY2VTY2FsZSh0aGlzLl9mb3JjZU92ZXJsYXkpO2xldCBhPU5hTjtpZihlLnlsb2M9PT1uLkR3Z0xhYmVsWWxvYy5QcmljZXx8ZS55bG9jPT09bi5Ed2dMYWJlbFlsb2MuQXV0bylhPW8ucHJpY2VUb0Nvb3JkaW5hdGUoZS5wcmljZSxlLmZpcnN0VmFsdWUpO2Vsc2V7Y29uc3QgdD1lLnlsb2M9PT1uLkR3Z0xhYmVsWWxvYy5BYm92ZUJhcj8yOjMsaT10aGlzLl9ncmFwaGljc1Byb3ZpZGVyLnNlcmllcygpLmJhcnMoKS52YWx1ZUF0KGUuaW5kZXgpO2lmKG51bGwhPT1pKXtjb25zdCByPWlbdF07bnVsbCE9ciYmKGE9by5wcmljZVRvQ29vcmRpbmF0ZShyLGUuZmlyc3RWYWx1ZSkpfX1jb25zdCBzPWUuc2l6ZSp0LlNIQVBFX1dJRFRIX01VTFQsbD1lLnNpemUqdC5TSEFQRV9IRUlHSFRfTVVMVCxkPWUuaGlkZVNoYXBlPy41Kmw6KGUuc3R5bGU9PT1uLkR3Z0xhYmVsU3R5bGUuVGV4dE91dGxpbmU/MS4xOjEuMikqbCxoPWQqdGhpcy5fZ2V0WUxvY1NpZ24oZS55bG9jLGEsby5oZWlnaHQoKSxkLGUudGV4dEhlaWdodCk7cmV0dXJuey4uLnIuYmFyQm9yZGVycyhlLmluZGV4KSx5MDphLHNoYXBlV2lkdGg6cyxzaGFwZUhlaWdodDpsLHZlcnRPZmZzZXQ6aCxmb250U2l6ZTppLHN0eWxlOmUuc3R5bGV9fV9nZXRZTG9jU2lnbihlLHQsaSxyLG8pe3N3aXRjaChlKXtjYXNlIG4uRHdnTGFiZWxZbG9jLlByaWNlOnJldHVybiAwO2Nhc2Ugbi5Ed2dMYWJlbFlsb2MuQWJvdmVCYXI6cmV0dXJuLTE7Y2FzZSBuLkR3Z0xhYmVsWWxvYy5CZWxvd0JhcjpyZXR1cm4gMTtjYXNlIG4uRHdnTGFiZWxZbG9jLkF1dG86cmV0dXJuIGk8MTMwP3Q+LjUqaT8tMToxOi1NYXRoLnNpZ24odC1pK3IrMipvKX19X2dldEludmVydGVkWWxvYyhlLHQpe2lmKHQpe2lmKGU9PT1uLkR3Z0xhYmVsWWxvYy5BYm92ZUJhcilyZXR1cm4gbi5Ed2dMYWJlbFlsb2MuQmVsb3dCYXI7aWYoZT09PW4uRHdnTGFiZWxZbG9jLkJlbG93QmFyKXJldHVybiBuLkR3Z0xhYmVsWWxvYy5BYm92ZUJhcn1yZXR1cm4gZX19fSwxMzU2NzcoZSx0LGkpe2kucih0KSxpLmQodCx7RHdnTGluZUZpbGxQYW5lVmlldzooKT0+cH0pO3ZhciByPWkoMTM4NjM4KSxuPWkoNzM2NTMxKSxvPWkoMTc5Njc0KSxhPWkoMjU0NzMxKSxzPWkoMjkzNDE4KSxsPWkoNzg5MTkwKSxkPWkoODgwNzYxKSxoPWkoNzYzKTtjb25zdCBjPXt4MTowLHkxOjAseDI6MCx5MjowLGV4dGVuZDpvLkR3Z0V4dGVuZC5Ob25lfSx1PXt4MTowLHkxOjAseDI6MCx5MjowLGV4dGVuZDpvLkR3Z0V4dGVuZC5Ob25lfTtmdW5jdGlvbiBmKGUsdCxpLHIpe2NvbnN0IG89dC5zdWJ0cmFjdChlKS5ub3JtYWxpemVkKCk7aWYoTWF0aC5hYnMoby54KT5NYXRoLmFicyhvLnkpKXtjb25zdCB0PShpLWUueCkvby54O3JldHVybiBuZXcgbi5Qb2ludChlLmFkZFNjYWxlZChvLHQpLngsZS5hZGRTY2FsZWQobyx0KS55KX17Y29uc3QgdD0oci1lLnkpL28ueTtyZXR1cm4gbmV3IG4uUG9pbnQoZS5hZGRTY2FsZWQobyx0KS54LGUuYWRkU2NhbGVkKG8sdCkueSl9fWNsYXNzIHB7Y29uc3RydWN0b3IoZSx0LGkscil7dGhpcy5fZGF0YT1bXSx0aGlzLl9pbnZhbGlkYXRlZD0hMCx0aGlzLl9yZ2JhRnJvbUludGVnZXI9KDAsYS5yZ2JhRnJvbUludGVnZXJDYWNoZWQpKCksdGhpcy5fcHJvdmlkZXI9ZSx0aGlzLl9tb2RlbD10LHRoaXMuX2ZvcmNlT3ZlcmxheT1pLHRoaXMuX2hpdFRlc3RSZXN1bHQ9dm9pZCAwIT09cj9uZXcgaC5IaXRUZXN0UmVzdWx0KGguSGl0VGFyZ2V0LkN1c3RvbSxyKTpuZXcgaC5IaXRUZXN0UmVzdWx0KGguSGl0VGFyZ2V0LlJlZ3VsYXIpfXVwZGF0ZShlKXsiaG92ZXItY2hhbmdlIiE9PWUudHlwZSYmKHRoaXMuX2ludmFsaWRhdGVkPSEwKX1yZW5kZXJlcigpe3RoaXMuX2ludmFsaWRhdGVkJiYodGhpcy5fdXBkYXRlVmlld0ludGVybmFsKCksdGhpcy5faW52YWxpZGF0ZWQ9ITEpO2NvbnN0IGU9bmV3IGwuQ29tcG9zaXRlUmVuZGVyZXI7Zm9yKGNvbnN0IHQgb2YgdGhpcy5fZGF0YSl7Y29uc3QgaT1uZXcgZC5Qb2x5Z29uUmVuZGVyZXIodGhpcy5faGl0VGVzdFJlc3VsdCk7aS5zZXREYXRhKHQpLGUuYXBwZW5kKGkpfXJldHVybiBlfV91cGRhdGVWaWV3SW50ZXJuYWwoKXt0aGlzLl9kYXRhPVtdO2NvbnN0IGU9dGhpcy5fcHJvdmlkZXIucHJvcGVydGllcygpLmNoaWxkcygpLnBhbGV0dGVzLHQ9dGhpcy5fcHJvdmlkZXIubWV0YUluZm8oKS5pc1JHQjtpZigodm9pZCAwPT09ZXx8dm9pZCAwPT09ZS5jaGlsZHMoKS5wYWxldHRlX2NvbW1vbikmJiF0KXJldHVybjtjb25zdCBpPXQ/dm9pZCAwOigwLHIuZW5zdXJlRGVmaW5lZCkoZS5jaGlsZHMoKS5wYWxldHRlX2NvbW1vbikuY2hpbGRzKCksYT10aGlzLl9wcm92aWRlci5wcmljZVNjYWxlKHRoaXMuX2ZvcmNlT3ZlcmxheSksbD10aGlzLl9tb2RlbC50aW1lU2NhbGUoKTtpZighYXx8YS5pc0VtcHR5KCl8fGwuaXNFbXB0eSgpKXJldHVybjtpZihudWxsPT09bC52aXNpYmxlQmFyc1N0cmljdFJhbmdlKCkpcmV0dXJuO2NvbnN0IGQ9dGhpcy5fcHJvdmlkZXIuZmlyc3RWYWx1ZSh2b2lkIDAsdGhpcy5fZm9yY2VPdmVybGF5KTtpZihudWxsPT09ZClyZXR1cm47Y29uc3QgaD10aGlzLl9wcm92aWRlci5ncmFwaGljcygpLmR3Z2xpbmVzKCkscD10aGlzLl9wcm92aWRlci5ncmFwaGljcygpLmR3Z2xpbmVmaWxscygpO2lmKDA9PT1wLnNpemV8fDA9PT1oLnNpemUpcmV0dXJuO2NvbnN0IGc9bmV3IE1hcDtoLmZvckVhY2goKGU9Pntjb25zdCB0PWUuZ2V0KHRoaXMuX2ZvcmNlT3ZlcmxheSk7dD8uZm9yRWFjaCgoZT0+e2cuc2V0KGUuaWQsZSl9KSl9KSk7Y29uc3QgXz0oMCwKci5lbnN1cmVEZWZpbmVkKSh0aGlzLl9wcm92aWRlci5wcm9wZXJ0aWVzKCkuY2hpbGRzKCkuZ3JhcGhpY3MuY2hpbGRzKCkuZHdnbGluZWZpbGxzKTtwLmZvckVhY2goKChlLGgpPT57KDAsci5lbnN1cmVEZWZpbmVkKShfLmNoaWxkcygpW2hdKS5jaGlsZHMoKS52aXNpYmxlLnZhbHVlKCkmJmUuZm9yRWFjaCgoZT0+e2NvbnN0IGg9Zy5nZXQoZS5saW5lMSkscD1nLmdldChlLmxpbmUyKTtpZihoJiZwKXtjb25zdCBnPWZ1bmN0aW9uKGUsdCxpLHIsYSl7Y29uc3QgbD1yLndpZHRoKCksZD0oMCxzLmNvbnZlcnRQb2ludHNUb1NjcmVlbkRpbWVuc2lvbikoZS54MSxlLnkxLGUueDIsZS55MixlLmV4dGVuZCxpLHIsbCxhLGMpLGg9KDAscy5jb252ZXJ0UG9pbnRzVG9TY3JlZW5EaW1lbnNpb24pKHQueDEsdC55MSx0LngyLHQueTIsdC5leHRlbmQsaSxyLGwsYSx1KTtpZihudWxsPT09ZHx8bnVsbD09PWgpcmV0dXJuIG51bGw7bGV0IHA9bmV3IG4uUG9pbnQoZC54MSxkLnkxKSxnPW5ldyBuLlBvaW50KGQueDIsZC55MiksXz1uZXcgbi5Qb2ludChoLngxLGgueTEpLHg9bmV3IG4uUG9pbnQoaC54MixoLnkyKTtpZigoMCxuLmVxdWFsUG9pbnRzKShwLGcpfHwoMCxuLmVxdWFsUG9pbnRzKShfLHgpKXJldHVybltwLGcseCxfXTtjb25zdCB3PSgwLHMuaXNFeHRlbmRJblNhbWVEaXJlY3Rpb24pKGQuZXh0ZW5kLG8uRHdnRXh0ZW5kLkxlZnQpLHY9KDAscy5pc0V4dGVuZEluU2FtZURpcmVjdGlvbikoZC5leHRlbmQsby5Ed2dFeHRlbmQuUmlnaHQpLG09KDAscy5pc0V4dGVuZEluU2FtZURpcmVjdGlvbikoaC5leHRlbmQsby5Ed2dFeHRlbmQuTGVmdCkseT0oMCxzLmlzRXh0ZW5kSW5TYW1lRGlyZWN0aW9uKShoLmV4dGVuZCxvLkR3Z0V4dGVuZC5SaWdodCksYj13JiZtLFQ9diYmeSxDPWkuaGVpZ2h0KCksUj0tbCxTPTIqbCxQPS1DLEQ9MipDO2xldCBNPVIsTD1TO3AueD5nLngmJihNPVMsTD1SKTtsZXQgQj1QLEE9RDtwLnk+Zy55JiYoQj1ELEE9UCk7bGV0IEk9Uix6PVM7Xy54PngueCYmKEk9Uyx6PVIpO2xldCBIPVAsRT1EO3JldHVybiBfLnk+eC55JiYoSD1ELEU9UCksKGJ8fG51bGw9PT1lLngxJiZ3KSYmKHA9ZihnLHAsTSxCKSksKGJ8fG51bGw9PT10LngxJiZtKSYmKF89Zih4LF8sSSxIKSksKFR8fG51bGw9PT1lLngyJiZ2KSYmKGc9ZihwLGcsTCxBKSksKFR8fG51bGw9PT10LngyJiZ5KSYmKHg9ZihfLHgseixFKSksW3AsZyx4LF9dfShoLHAsYSxsLGQpO2lmKG51bGwhPT1nKXtsZXQgbjtpZih0KW49dGhpcy5fcmdiYUZyb21JbnRlZ2VyKGUuY29sb3JJbmRleCk7ZWxzZXtjb25zdCB0PSgwLHIuZW5zdXJlRGVmaW5lZCkoaSkuY29sb3JzLmNoaWxkcygpW2UuY29sb3JJbmRleF07bj10P3QuY2hpbGRzKCkuY29sb3IudmFsdWUoKToidHJhbnNwYXJlbnQifXRoaXMuX2RhdGEucHVzaCh7cG9pbnRzOmcsZmlsbEJhY2tncm91bmQ6ITAsZmlsbGVkOiEwLGJhY2tjb2xvcjpuLGNvbG9yOm4sbGluZXdpZHRoOjAsbGluZXN0eWxlOjB9KX19fSkpfSkpfX19LDEyOTkzMihlLHQsaSl7aS5yKHQpLGkuZCh0LHtEd2dMaW5lUGFuZVZpZXc6KCk9PnZ9KTt2YXIgcixuPWkoMTM4NjM4KSxvPWkoNzM2NTMxKSxhPWkoMTc5Njc0KSxzPWkoMjU0NzMxKSxsPWkoMjkzNDE4KSxkPWkoNzAwNzQpOyFmdW5jdGlvbihlKXtlLlNvbGlkPSJzb2wiLGUuRG90dGVkPSJkb3QiLGUuRGFzaGVkPSJkc2giLGUuTGVmdEFycm93PSJhbCIsZS5SaWdodEFycm93PSJhciIsZS5Cb3RoQXJyb3c9ImFiIn0ocnx8KHI9e30pKTt2YXIgaD1pKDc2MyksYz1pKDkzNDMwNSksdT1pKDYwNDIxNCk7Y29uc3QgZj17W3IuU29saWRdOntkYXNoUGF0dGVybjpbXSxkYXNoUGF0dGVyblNpemU6MCxkcmF3TGVmdEFycm93OiExLGRyYXdSaWdodEFycm93OiExfSxbci5EYXNoZWRdOntkYXNoUGF0dGVybjpbNSw2XSxkYXNoUGF0dGVyblNpemU6MTEsZHJhd0xlZnRBcnJvdzohMSxkcmF3UmlnaHRBcnJvdzohMX0sW3IuRG90dGVkXTp7ZGFzaFBhdHRlcm46WzEsMl0sZGFzaFBhdHRlcm5TaXplOjMsZHJhd0xlZnRBcnJvdzohMSxkcmF3UmlnaHRBcnJvdzohMX0sW3IuTGVmdEFycm93XTp7ZGFzaFBhdHRlcm46W10sZGFzaFBhdHRlcm5TaXplOjAsZHJhd0xlZnRBcnJvdzohMCxkcmF3UmlnaHRBcnJvdzohMX0sW3IuUmlnaHRBcnJvd106e2Rhc2hQYXR0ZXJuOltdLGRhc2hQYXR0ZXJuU2l6ZTowLGRyYXdMZWZ0QXJyb3c6ITEsZHJhd1JpZ2h0QXJyb3c6ITB9LFtyLkJvdGhBcnJvd106e2Rhc2hQYXR0ZXJuOltdLGRhc2hQYXR0ZXJuU2l6ZTowLGRyYXdMZWZ0QXJyb3c6ITAsZHJhd1JpZ2h0QXJyb3c6ITB9fSxwPW5ldyBNYXA7ZnVuY3Rpb24gZyhlLHQpe2xldCBpPXAuZ2V0KGUpO3ZvaWQgMD09PWkmJihpPW5ldyBNYXAscC5zZXQoZSxpKSk7bGV0IHI9aS5nZXQodCk7cmV0dXJuIHZvaWQgMD09PXImJihyPWUubWFwKChlPT5lKnQpKSxpLnNldCh0LHIpKSxyfWZ1bmN0aW9uIF8oZSx0LGkscil7aWYoaS5zdWJ0cmFjdCh0KS5sZW5ndGgoKTwxKXJldHVybjtjb25zdCBuPSgwLHUuZ2V0QXJyb3dQb2ludHMpKHQsaSxyLCEwKTtmb3IoY29uc3QgdCBvZiBuKXtjb25zdCBpPXRbMF0ueCxyPXRbMF0ueSxuPXRbMV0ueCxvPXRbMV0ueTtlLm1vdmVUbyhpLHIpLGUubGluZVRvKG4sbyl9fWNsYXNzIHggZXh0ZW5kcyBjLkJpdG1hcENvb3JkaW5hdGVzUGFuZVJlbmRlcmVye2NvbnN0cnVjdG9yKGUpe3N1cGVyKCksdGhpcy5fZGF0YT1lPz9udWxsfXNldERhdGEoZSl7dGhpcy5fZGF0YT1lfWhpdFRlc3QoZSl7aWYobnVsbD09PXRoaXMuX2RhdGEpcmV0dXJuIG51bGw7Y29uc3QgdD0oMCx1LmludGVyYWN0aW9uVG9sZXJhbmNlKSgpLmxpbmUse2l0ZW1zOmksaXRlbUNvdW50OnJ9PXRoaXMuX2RhdGE7bGV0IG49MDtmb3IoY29uc3QgbyBvZiBpKXtpZihuPT09cilicmVhaztjb25zdCBpPU1hdGgubWF4KHQsby53aWR0aC8yKTtpZigoMCxkLmRpc3RhbmNlVG9TZWdtZW50KShvLmV4dFAxLG8uZXh0UDIsZSkuZGlzdGFuY2U8PWkpcmV0dXJuIG5ldyBoLkhpdFRlc3RSZXN1bHQoaC5IaXRUYXJnZXQuUmVndWxhcik7bis9MX1yZXR1cm4gbnVsbH0KX2RyYXdJbXBsKGUpe2lmKG51bGw9PT10aGlzLl9kYXRhKXJldHVybjtjb25zdCB0PWUuY29udGV4dDt0LmxpbmVDYXA9ImJ1dHQiO2NvbnN0e2hvcml6b250YWxQaXhlbFJhdGlvOmksdmVydGljYWxQaXhlbFJhdGlvOnJ9PWU7Zm9yKGNvbnN0W2Usbl1vZiB0aGlzLl9kYXRhLml0ZW1zQnlDb2xvcil7bGV0IGE7dC5zdHJva2VTdHlsZT1lO2Zvcihjb25zdCBlIG9mIG4pe2NvbnN0IG49ZltlLnN0eWxlXSxzPWcobi5kYXNoUGF0dGVybixlLndpZHRoKmkpLGw9TWF0aC5mbG9vcihlLndpZHRoKmkpO3ZvaWQgMCE9PWEmJmEubGluZVdpZHRoPT09ZS53aWR0aCYmYS5wYXR0ZXJuPT09c3x8KHZvaWQgMCE9PWE/KHQuc3Ryb2tlKCksYS5saW5lV2lkdGg9ZS53aWR0aCxhLnBhdHRlcm49cyk6YT17bGluZVdpZHRoOmUud2lkdGgscGF0dGVybjpzfSx0LmJlZ2luUGF0aCgpLHQubGluZVdpZHRoPWwsdC5zZXRMaW5lRGFzaChzKSk7Y29uc3QgZD1sJTImJk1hdGguYWJzKGUuZXh0UDEueS1lLmV4dFAyLnkpPjFlLTg/LjU6MCxoPWwlMiYmTWF0aC5hYnMoZS5leHRQMS54LWUuZXh0UDIueCk+MWUtOD8uNTowLGM9KDAsby5wb2ludCkoTWF0aC5yb3VuZChlLnAxLngqaSkrZCxNYXRoLnJvdW5kKGUucDEueSpyKStoKSx1PSgwLG8ucG9pbnQpKE1hdGgucm91bmQoZS5wMi54KmkpK2QsTWF0aC5yb3VuZChlLnAyLnkqcikraCkscD1NYXRoLnJvdW5kKGUuZXh0UDEueCppKStkLHg9TWF0aC5yb3VuZChlLmV4dFAxLnkqcikraCx3PU1hdGgucm91bmQoZS5leHRQMi54KmkpK2Qsdj1NYXRoLnJvdW5kKGUuZXh0UDIueSpyKStoO3QubW92ZVRvKHAseCksdC5saW5lVG8odyx2KTtjb25zdCBtPWUud2lkdGgqaTtuLmRyYXdMZWZ0QXJyb3cmJl8odCx1LGMsbSksbi5kcmF3UmlnaHRBcnJvdyYmXyh0LGMsdSxtKX12b2lkIDAhPT1hJiZ0LnN0cm9rZSgpfX19dmFyIHc9aSg3MTYwMjEpO2NsYXNzIHZ7Y29uc3RydWN0b3IoZSx0LGkscil7dGhpcy5fbG9jYXRpb25EYXRhQ2FjaGU9W10sdGhpcy5faW52YWxpZGF0ZWQ9ITAsdGhpcy5fcmVuZGVyZXI9bmV3IHgsdGhpcy5fcmdiYUZyb21JbnRlZ2VyPSgwLHMucmdiYUZyb21JbnRlZ2VyQ2FjaGVkKSgpLHRoaXMuX2dyYXBoaWNzUHJvdmlkZXI9ZSx0aGlzLl9tb2RlbD10LHRoaXMuX2ZvcmNlT3ZlcmxheT1pfXVwZGF0ZShlKXsiaG92ZXItY2hhbmdlIiE9PWUudHlwZSYmKHRoaXMuX2ludmFsaWRhdGVkPSEwKX1yZW5kZXJlcihlKXtyZXR1cm4gdGhpcy5faW52YWxpZGF0ZWQmJih0aGlzLl9pbnZhbGlkYXRlZD0hMSx0aGlzLl91cGRhdGVSZW5kZXJlcihlKSksdGhpcy5fcmVuZGVyZXJ9X3VwZGF0ZVJlbmRlcmVyKGUpe3RoaXMuX3JlbmRlcmVyLnNldERhdGEobnVsbCk7Y29uc3QgdD10aGlzLl9ncmFwaGljc1Byb3ZpZGVyLnByaWNlU2NhbGUodGhpcy5fZm9yY2VPdmVybGF5KSxpPXRoaXMuX21vZGVsLnRpbWVTY2FsZSgpO2lmKCF0fHx0LmlzRW1wdHkoKXx8aS5pc0VtcHR5KCkpcmV0dXJuO2NvbnN0IHI9dGhpcy5fZ3JhcGhpY3NQcm92aWRlci5ncmFwaGljcygpLmR3Z2xpbmVzKCk7aWYoMD09PXIuc2l6ZSlyZXR1cm47aWYobnVsbD09PWkudmlzaWJsZUJhcnNTdHJpY3RSYW5nZSgpKXJldHVybjtjb25zdCBzPXRoaXMuX2dyYXBoaWNzUHJvdmlkZXIuZmlyc3RWYWx1ZSh2b2lkIDAsdGhpcy5fZm9yY2VPdmVybGF5KTtpZihudWxsPT09cylyZXR1cm47Y29uc3QgZD17eDE6MCx5MTowLHgyOjAseTI6MCxleHRlbmQ6YS5Ed2dFeHRlbmQuTm9uZX0saD1uZXcgTWFwO2xldCBjPTA7Y29uc3QgdT0oMCxuLmVuc3VyZURlZmluZWQpKHRoaXMuX2dyYXBoaWNzUHJvdmlkZXIucHJvcGVydGllcygpLmNoaWxkcygpLmdyYXBoaWNzLmNoaWxkcygpLmR3Z2xpbmVzKSx7bWVkaWFTaXplOnt3aWR0aDpwLGhlaWdodDpnfX09ZTtmb3IoY29uc3RbZSxfXW9mIHIpe2lmKCEoMCxuLmVuc3VyZURlZmluZWQpKHUuY2hpbGRzKClbZV0pLmNoaWxkcygpLnZpc2libGUudmFsdWUoKSljb250aW51ZTtjb25zdCByPV8uZ2V0KHRoaXMuX2ZvcmNlT3ZlcmxheSk7aWYocilmb3IoY29uc3QgZSBvZiByKXtpZihudWxsPT09ZS5jb2xvckluZGV4KWNvbnRpbnVlO2xldCByO2lmKHRoaXMuX2dyYXBoaWNzUHJvdmlkZXIubWV0YUluZm8oKS5pc1JHQilyPXRoaXMuX3JnYmFGcm9tSW50ZWdlcihlLmNvbG9ySW5kZXgpO2Vsc2V7Y29uc3QgdD10aGlzLl9ncmFwaGljc1Byb3ZpZGVyLnByb3BlcnRpZXMoKS5jaGlsZHMoKS5wYWxldHRlcztpZih2b2lkIDA9PT10fHx2b2lkIDA9PT10LmNoaWxkcygpLnBhbGV0dGVfY29tbW9uKWNvbnRpbnVlO3I9dC5jaGlsZHMoKS5wYWxldHRlX2NvbW1vbi5jaGlsZHMoKS5jb2xvcnMuY2hpbGRzKClbZS5jb2xvckluZGV4XS5jaGlsZHMoKS5jb2xvci52YWx1ZSgpfWlmKHZvaWQgMD09PXIpY29udGludWU7Y29uc3Qgbj0oMCxsLmNvbnZlcnRQb2ludHNUb1NjcmVlbkRpbWVuc2lvbikoZS54MSxlLnkxLGUueDIsZS55MixlLmV4dGVuZCx0LGkscCxzLGQpO2lmKG51bGw9PT1uKWNvbnRpbnVlO2NvbnN0e3gxOnUseDI6Xyx5MTp4LHkyOnYsZXh0ZW5kOm19PW4seT1tPT09YS5Ed2dFeHRlbmQuQm90aHx8bT09PWEuRHdnRXh0ZW5kLkxlZnQsYj1tPT09YS5Ed2dFeHRlbmQuQm90aHx8bT09PWEuRHdnRXh0ZW5kLlJpZ2h0LFQ9bmV3IG8uUG9pbnQodSx4KSxDPW5ldyBvLlBvaW50KF8sdiksUj0oMCx3LmludGVyc2VjdExpbmVXaXRoVmlld3BvcnQpKFQsQyx5LGIscCxnLGZbZS5zdHlsZV0uZGFzaFBhdHRlcm5TaXplKmUud2lkdGgpO2lmKG51bGw9PT1SKWNvbnRpbnVlO2xldCBTO3RoaXMuX2xvY2F0aW9uRGF0YUNhY2hlLmxlbmd0aD5jPyhTPXRoaXMuX2xvY2F0aW9uRGF0YUNhY2hlW2NdLFMucDE9VCxTLnAyPUMsUy5leHRQMT1SWzBdLFMuZXh0UDI9UlsxXSxTLndpZHRoPWUud2lkdGg+MD9lLndpZHRoOjEsUy5zdHlsZT1lLnN0eWxlKTooUz17cDE6VCxwMjpDLGV4dFAxOlJbMF0sZXh0UDI6UlsxXSx3aWR0aDplLndpZHRoPjA/ZS53aWR0aDoxLHN0eWxlOmUuc3R5bGV9LHRoaXMuX2xvY2F0aW9uRGF0YUNhY2hlLnB1c2goUykpO2xldCBQPWguZ2V0KHIpCjt2b2lkIDA9PT1QJiYoUD1bXSxoLnNldChyLFApKSxQLnB1c2goUyksYys9MX19dGhpcy5fcmVuZGVyZXIuc2V0RGF0YSh7aXRlbXM6dGhpcy5fbG9jYXRpb25EYXRhQ2FjaGUsaXRlbUNvdW50OmMsaXRlbXNCeUNvbG9yOmh9KX19fSw4Mjg4NzAoZSx0LGkpe2kucih0KSxpLmQodCx7RHdnUG9seWxpbmVQYW5lVmlldzooKT0+U30pO3ZhciByLG49aSgxMzg2MzgpLG89aSg3MzY1MzEpOyFmdW5jdGlvbihlKXtlLlNvbGlkPSJzb2wiLGUuRG90dGVkPSJkb3QiLGUuRGFzaGVkPSJkc2giLGUuQXJyb3dMZWZ0PSJhbCIsZS5BcnJvd1JpZ2h0PSJhciIsZS5BcnJvd0JvdGg9ImFiIn0ocnx8KHI9e30pKTt2YXIgYT1pKDI1NDczMSkscz1pKDEwMCksbD1pKDY2MzA0NiksZD1pKDcwMDc0KSxoPWkoNTczMDU0KSxjPWkoNzYzKSx1PWkoNjA0MjE0KTtjb25zdCBmPXtbci5Tb2xpZF06W10sW3IuRGFzaGVkXTpbNSw2XSxbci5Eb3R0ZWRdOlsxLDJdLFtyLkFycm93TGVmdF06W10sW3IuQXJyb3dSaWdodF06W10sW3IuQXJyb3dCb3RoXTpbXX0scD0oMCxsLmRlZmF1bHQpKCgoZSx0KT0+ZltlXS5tYXAoKGU9PmUqdCkpKSwoKGUsdCk9PmAke2V9XyR7dH1gKSk7ZnVuY3Rpb24gZyhlLHQpe2xldCBpPSEwO2Zvcihjb25zdCByIG9mIHQucG9pbnRzKWk/KGUubW92ZVRvKHIueCxyLnkpLGk9ITEpOmUubGluZVRvKHIueCxyLnkpfWZ1bmN0aW9uIF8oZSx0KXtmb3IoY29uc3QgaSBvZiB0LmJlemllckN1cnZlcyl7Y29uc3RbdCxyLG4sb109aTtlLmxpbmVUbyh0LngsdC55KSxlLmJlemllckN1cnZlVG8oci54LHIueSxuLngsbi55LG8ueCxvLnkpfX1mdW5jdGlvbiB4KGUsdCxpLHIpe2lmKGkuc3VidHJhY3QodCkubGVuZ3RoKCk8MSlyZXR1cm47Y29uc3Qgbj0oMCx1LmdldEFycm93UG9pbnRzKSh0LGksciwhMCk7Zm9yKGNvbnN0IHQgb2YgbillLm1vdmVUbyh0WzBdLngsdFswXS55KSxlLmxpbmVUbyh0WzFdLngsdFsxXS55KX1jbGFzcyB3IGV4dGVuZHMgaC5NZWRpYUNvb3JkaW5hdGVzUGFuZVJlbmRlcmVye2NvbnN0cnVjdG9yKGUpe3N1cGVyKCksdGhpcy5fZGF0YT1lPz9udWxsfXNldERhdGEoZSl7dGhpcy5fZGF0YT1lfWhpdFRlc3QoZSl7aWYobnVsbD09PXRoaXMuX2RhdGEpcmV0dXJuIG51bGw7Y29uc3QgdD0oMCx1LmludGVyYWN0aW9uVG9sZXJhbmNlKSgpLmxpbmU7Zm9yKGNvbnN0IGkgb2YgdGhpcy5fZGF0YS5pdGVtcyl7Y29uc3Qgcj1NYXRoLm1heCh0LGkud2lkdGgvMik7aWYoaS5jdXJ2ZWQpZm9yKGNvbnN0IHQgb2YgaS5iZXppZXJDdXJ2ZXMpe2NvbnN0W2ksbixvLGFdPXQ7aWYoKDAscy5jdWJpY0JlemllckhpdFRlc3QpKGksbixvLGEsZSxyKSlyZXR1cm4gbmV3IGMuSGl0VGVzdFJlc3VsdChjLkhpdFRhcmdldC5SZWd1bGFyKX1lbHNlIGZvcihsZXQgdD0xO3Q8aS5wb2ludHMubGVuZ3RoO3QrPTEpe2NvbnN0IG49aS5wb2ludHNbdF0sbz1pLnBvaW50c1t0LTFdO2lmKCgwLGQuZGlzdGFuY2VUb1NlZ21lbnQpKG8sbixlKS5kaXN0YW5jZTw9cilyZXR1cm4gbmV3IGMuSGl0VGVzdFJlc3VsdChjLkhpdFRhcmdldC5SZWd1bGFyKX19cmV0dXJuIG51bGx9X2RyYXdJbXBsKGUpe2lmKG51bGw9PT10aGlzLl9kYXRhKXJldHVybjtjb25zdCB0PWUuY29udGV4dDt0LmxpbmVDYXA9ImJ1dHQiO2Zvcihjb25zdCBlIG9mIHRoaXMuX2RhdGEuaXRlbXMpe3Quc3Ryb2tlU3R5bGU9ZS5jb2xvcjtjb25zdCBpPU1hdGgubWF4KDEsZS53aWR0aCkscj1wKGUuc3R5bGUsaSk7dC5saW5lV2lkdGg9aSx0LnNldExpbmVEYXNoKHIpLHQuYmVnaW5QYXRoKCksZS5jdXJ2ZWQ/Xyh0LGUpOmcodCxlKSxlLmNsb3NlZCYmdC5jbG9zZVBhdGgoKSxlLmZpbGxDb2xvciYmKHQuZmlsbFN0eWxlPWUuZmlsbENvbG9yLHQuZmlsbCgpKSxlLmxlZnRBcnJvd1BvaW50cyYmeCh0LGUubGVmdEFycm93UG9pbnRzWzBdLGUubGVmdEFycm93UG9pbnRzWzFdLGkpLGUucmlnaHRBcnJvd1BvaW50cyYmeCh0LGUucmlnaHRBcnJvd1BvaW50c1swXSxlLnJpZ2h0QXJyb3dQb2ludHNbMV0saSksdC5zdHJva2UoKX19fXZhciB2PWkoMzI0MDY0KTtmdW5jdGlvbiBtKGUpe3JldHVybiBlPT09ci5BcnJvd0xlZnR8fGU9PT1yLkFycm93Qm90aH1mdW5jdGlvbiB5KGUpe3JldHVybiBlPT09ci5BcnJvd1JpZ2h0fHxlPT09ci5BcnJvd0JvdGh9ZnVuY3Rpb24gYihlKXtyZXR1cm4oMCxvLnBvaW50KShlLngsZS55KX1mdW5jdGlvbiBUKGUpe3JldHVybnt4OmUueCx5OmUueX19ZnVuY3Rpb24gQyhlKXtyZXR1cm4gZS5tYXAoYil9ZnVuY3Rpb24gUihlKXtjb25zdCB0PVtdLGk9ZS5wb2ludHMscj1lLmNsb3NlZCxuPWkubGVuZ3RoLG89cj9uLTE6bi0yO2xldCBhPWlbbi0xXTtmb3IobGV0IGU9MDtlPD1vO2UrPTEpe2NvbnN0IHM9aVtlXSxsPWlbKGUrMSklbl0sZD1pWyhlKzIpJW5dLGg9KGwueC1hLngpLzMsYz0obC55LWEueSkvMyx1PShkLngtcy54KS8zLGY9KGQueS1zLnkpLzMscD1bcyx7eDpzLngraCx5OnMueStjfSx7eDpsLngtdSx5OmwueS1mfSxsXTtyfHwoMD09PWU/KHBbMV0ueD0ocy54K3BbMl0ueCkvMixwWzFdLnk9KHMueStwWzJdLnkpLzIpOmU9PT1vJiYocFsyXS54PShsLngrcFsxXS54KS8yLHBbMl0ueT0obC55K3BbMV0ueSkvMikpLHQucHVzaChwKSxhPXN9Y29uc3QgbD1lLnN0eWxlO2xldCBkLGg7aWYobShsKSl7Y29uc3RbZSxpLHIsbl09Qyh0WzBdKTtkPVtUKCgwLHMuY3ViaWNCZXppZXJQb2ludCkoZSxpLHIsbiwuMSkpLFQoZSldfWlmKHkobCkpe2NvbnN0W2UsaSxuLG9dPUModFt0Lmxlbmd0aC0ocj8yOjEpXSk7aD1bVCgoMCxzLmN1YmljQmV6aWVyUG9pbnQpKGUsaSxuLG8sLjkpKSxUKG8pXX1yZXR1cm57YmV6aWVyQ3VydmVQb2ludHM6dCxsZWZ0QXJyb3dQb2ludHM6ZCxyaWdodEFycm93UG9pbnRzOmh9fWNsYXNzIFN7Y29uc3RydWN0b3IoZSx0LGkscil7dGhpcy5faW52YWxpZGF0ZWQ9ITAsdGhpcy5fcmVuZGVyZXI9bmV3IHcsdGhpcy5fY3VydmVkTGluZXNEYXRhQ2FjaGU9bmV3IFdlYWtNYXAsdGhpcy5fcmdiYUZyb21JbnRlZ2VyPSgwLGEucmdiYUZyb21JbnRlZ2VyQ2FjaGVkKSgpLAp0aGlzLl9ncmFwaGljc1Byb3ZpZGVyPWUsdGhpcy5fbW9kZWw9dCx0aGlzLl9mb3JjZU92ZXJsYXk9aX11cGRhdGUoZSl7ImhvdmVyLWNoYW5nZSIhPT1lLnR5cGUmJih0aGlzLl9pbnZhbGlkYXRlZD0hMCl9cmVuZGVyZXIoKXtyZXR1cm4gdGhpcy5faW52YWxpZGF0ZWQmJih0aGlzLl9pbnZhbGlkYXRlZD0hMSx0aGlzLl91cGRhdGVSZW5kZXJlcigpKSx0aGlzLl9yZW5kZXJlcn1fdXBkYXRlUmVuZGVyZXIoKXt0aGlzLl9yZW5kZXJlci5zZXREYXRhKG51bGwpO2NvbnN0IGU9dGhpcy5fZ3JhcGhpY3NQcm92aWRlci5wcmljZVNjYWxlKHRoaXMuX2ZvcmNlT3ZlcmxheSksdD10aGlzLl9tb2RlbC50aW1lU2NhbGUoKTtpZighZXx8ZS5pc0VtcHR5KCl8fHQuaXNFbXB0eSgpKXJldHVybjtjb25zdCBpPXRoaXMuX2dyYXBoaWNzUHJvdmlkZXIuZ3JhcGhpY3MoKS5kd2dwb2x5bGluZXMoKTtpZigwPT09aS5zaXplKXJldHVybjtjb25zdCByPXQudmlzaWJsZUJhcnNTdHJpY3RSYW5nZSgpO2lmKG51bGw9PT1yKXJldHVybjtjb25zdCBhPXRoaXMuX2dyYXBoaWNzUHJvdmlkZXIuZmlyc3RWYWx1ZSh2b2lkIDAsdGhpcy5fZm9yY2VPdmVybGF5KTtpZihudWxsPT09YSlyZXR1cm47Y29uc3Qgcz1pPT4oMCxvLnBvaW50KSh0LmluZGV4VG9Db29yZGluYXRlKGkueCksZS5wcmljZVRvQ29vcmRpbmF0ZShpLnksYSkpLGw9ZT0+ZS5tYXAocyksZD0oMCxuLmVuc3VyZURlZmluZWQpKHRoaXMuX2dyYXBoaWNzUHJvdmlkZXIucHJvcGVydGllcygpLmNoaWxkcygpLmdyYXBoaWNzLmNoaWxkcygpLmR3Z3BvbHlsaW5lcyksaD1bXSxjPXRoaXMuX2dyYXBoaWNzUHJvdmlkZXIubWV0YUluZm8oKS5pc1JHQjtsZXQgdTtpZighYyl7Y29uc3QgZT10aGlzLl9ncmFwaGljc1Byb3ZpZGVyLnByb3BlcnRpZXMoKS5jaGlsZHMoKS5wYWxldHRlcztpZih2b2lkIDA9PT1lfHx2b2lkIDA9PT1lLmNoaWxkcygpLnBhbGV0dGVfY29tbW9uKXJldHVybjt1PWUuY2hpbGRzKCkucGFsZXR0ZV9jb21tb24uY2hpbGRzKCkuY29sb3JzLmNoaWxkcygpfWZvcihjb25zdFtlLHRdb2YgaSl7aWYoISgwLG4uZW5zdXJlRGVmaW5lZCkoZC5jaGlsZHMoKVtlXSkuY2hpbGRzKCkudmlzaWJsZS52YWx1ZSgpKWNvbnRpbnVlO2NvbnN0IGk9dC5nZXQodGhpcy5fZm9yY2VPdmVybGF5KTtpZihpKWZvcihjb25zdCBlIG9mIGkpe2lmKCEoMCx2LmlzRHdnUG9seWxpbmVJbkJhcnNSYW5nZSkoZSxyKSljb250aW51ZTtsZXQgdCxpO2lmKGM/KHQ9dGhpcy5fcmdiYUZyb21JbnRlZ2VyKGUuY29sb3IpLG51bGwhPT1lLmZpbGxDb2xvciYmKGk9dGhpcy5fcmdiYUZyb21JbnRlZ2VyKGUuZmlsbENvbG9yKSkpOih0PSgwLG4uZW5zdXJlRGVmaW5lZCkodSlbZS5jb2xvcl0uY2hpbGRzKCkuY29sb3IudmFsdWUoKSxudWxsIT09ZS5maWxsQ29sb3ImJihpPSgwLG4uZW5zdXJlRGVmaW5lZCkodSlbZS5maWxsQ29sb3JdLmNoaWxkcygpLmNvbG9yLnZhbHVlKCkpKSx2b2lkIDAhPT10KWlmKCFlLmN1cnZlZHx8ZS5wb2ludHMubGVuZ3RoPDMpe2NvbnN0IHI9ZS5wb2ludHMubWFwKHMpLG49bShlLnN0eWxlKSYmci5sZW5ndGg+MT9bclsxXSxyWzBdXTp2b2lkIDAsbz15KGUuc3R5bGUpJiZyLmxlbmd0aD4xP1tyW3IubGVuZ3RoLTJdLHJbci5sZW5ndGgtMV1dOnZvaWQgMDtoLnB1c2goey4uLmUsY3VydmVkOiExLHBvaW50czpyLGNvbG9yOnQsZmlsbENvbG9yOmksbGVmdEFycm93UG9pbnRzOm4scmlnaHRBcnJvd1BvaW50czpvfSl9ZWxzZXtsZXQgcj10aGlzLl9jdXJ2ZWRMaW5lc0RhdGFDYWNoZS5nZXQoZSk7dm9pZCAwPT09ciYmKHI9UihlKSx0aGlzLl9jdXJ2ZWRMaW5lc0RhdGFDYWNoZS5zZXQoZSxyKSk7Y29uc3Qgbj1yLmJlemllckN1cnZlUG9pbnRzLm1hcChsKTtsZXQgbyxhO2lmKHIubGVmdEFycm93UG9pbnRzKXtjb25zdCBlPXMoci5sZWZ0QXJyb3dQb2ludHNbMF0pLHQ9cyhyLmxlZnRBcnJvd1BvaW50c1sxXSk7bz1bdC5hZGQoZS5zdWJ0cmFjdCh0KS5ub3JtYWxpemVkKCkuc2NhbGVkKDEwKSksdF19aWYoci5yaWdodEFycm93UG9pbnRzKXtjb25zdCBlPXMoci5yaWdodEFycm93UG9pbnRzWzBdKSx0PXMoci5yaWdodEFycm93UG9pbnRzWzFdKTthPVt0LmFkZChlLnN1YnRyYWN0KHQpLm5vcm1hbGl6ZWQoKS5zY2FsZWQoMTApKSx0XX1oLnB1c2goey4uLmUsY3VydmVkOiEwLGJlemllckN1cnZlczpuLGxlZnRBcnJvd1BvaW50czpvLHJpZ2h0QXJyb3dQb2ludHM6YSxjb2xvcjp0LGZpbGxDb2xvcjppfSl9fX10aGlzLl9yZW5kZXJlci5zZXREYXRhKHtpdGVtczpofSl9fX0sNjk5MTIzKGUsdCxpKXtpLnIodCksaS5kKHQse0R3Z1RhYmxlUGFuZVZpZXc6KCk9Pnl9KTt2YXIgcixuLG89aSgxMzg2MzgpLGE9aSgyNTQ3MzEpLHM9aSg3ODkxOTApLGw9aSg3MzY1MzEpOyFmdW5jdGlvbihlKXtlLlRvcD0idG9wIixlLkNlbnRlcj0iY2VudGVyIixlLkJvdHRvbT0iYm90dG9tIn0ocnx8KHI9e30pKSxmdW5jdGlvbihlKXtlLk1vbm9zcGFjZT0ibW9ub3NwYWNlIn0obnx8KG49e30pKTt2YXIgZCxoPWkoOTI2MTQ5KSxjPWkoNzYzKSx1PWkoNDcwOTg2KSxmPWkoODIyNzI2KSxwPWkoNTkwODk0KSxnPWkoNzAzODA5KSxfPWkoOTQxMTAwKTshZnVuY3Rpb24oZSl7ZVtlLlRhYmxlTWFyZ2luPTEwXT0iVGFibGVNYXJnaW4iLGVbZS5FbXB0eUNlbGxEZWZhdWx0V2lkdGg9MjBdPSJFbXB0eUNlbGxEZWZhdWx0V2lkdGgiLGVbZS5FbXB0eUNlbGxEZWZhdWx0SGVpZ2h0PTVdPSJFbXB0eUNlbGxEZWZhdWx0SGVpZ2h0In0oZHx8KGQ9e30pKTtjb25zdCB4PW5ldyB1LlRleHRSZW5kZXJlcjtmdW5jdGlvbiB3KGUsdCxpLHIpe2NvbnN0e2hvcml6b250YWxQaXhlbFJhdGlvOm4sdmVydGljYWxQaXhlbFJhdGlvOm99PXI7dC5jZWxscy5mb3JFYWNoKCh0PT57aWYodC5tZXJnZWQpcmV0dXJuO2NvbnN0IGE9aS5jZWxsc1t0LmNlbGwucm93XVt0LmNlbGwuY29sdW1uXSxzPWkucG9zaXRpb24ueCthLm9mZnNldFgsbD1pLnBvc2l0aW9uLnkrYS5vZmZzZXRZLGQ9ZnVuY3Rpb24oZSx0LGkscixuKXtyZXR1cm4oMCxnLnRleHRCb3hEYXRhKShlLHQsaSxyLHsKaG9yaXpvbnRhbFRleHRBbGlnbm1lbnQ6bi5jZWxsLmhvcml6b250YWxUZXh0QWxpZ25tZW50LHZlcnRpY2FsVGV4dEFsaWdubWVudDpuLmNlbGwudmVydGljYWxUZXh0QWxpZ25tZW50LHRleHQ6bi5jZWxsLnRleHQsdGV4dENvbG9yOm4uc3R5bGUudGV4dENvbG9yLHNpemVPcHRpb25zOnt0ZXh0U2l6ZU1vZGU6ImZpeGVkIixmb250U2l6ZTpuLmNlbGwuZm9udFNpemV9LGZvbnRUeXBlOm4uY2VsbC5mb250VHlwZSx0ZXh0Rm9ybWF0dGluZzpuLmNlbGwudGV4dEZvcm1hdHRpbmd9KX0ocy9uLGwvbyxhLndpZHRoL24sYS5oZWlnaHQvbyx0KTtlLnNhdmUoKTtjb25zdCBoPW5ldyBQYXRoMkQ7aC5yZWN0KHMsbCxhLndpZHRoLGEuaGVpZ2h0KSxlLmNsaXAoaCwiZXZlbm9kZCIpLHguc2V0RGF0YShkKSx4LmRyYXcoZSxyKSxlLnJlc3RvcmUoKX0pKX1jbGFzcyB2e2NvbnN0cnVjdG9yKGUpe3RoaXMuX2RhdGE9bnVsbCx0aGlzLl93aWR0aHNDYWNoZXM9bmV3IE1hcCx0aGlzLl9wcmVjYWxjdWxhdGVkPW51bGwsdGhpcy5zZXREYXRhKGUpLHRoaXMuX21lYXN1cmVDYW52YXM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIiksdGhpcy5fbWVhc3VyZUN0eD0oMCxvLmVuc3VyZU5vdE51bGwpKHRoaXMuX21lYXN1cmVDYW52YXMuZ2V0Q29udGV4dCgiMmQiKSl9c2V0RGF0YShlKXt0aGlzLl9kYXRhPWUsdGhpcy5fcHJlY2FsY3VsYXRlZD1udWxsfWRyYXcoZSx0KXtpZihudWxsPT09dGhpcy5fZGF0YSlyZXR1cm47Y29uc3QgaT10aGlzLl9wcmVjYWxjdWxhdGVEYXRhKHQpLHI9dGhpcy5fZGF0YTshZnVuY3Rpb24oZSx0LGkpe2UuZmlsbFN0eWxlPXQuc3R5bGUuYmFja2dyb3VuZENvbG9yLGUuZmlsbFJlY3QoaS5wb3NpdGlvbi54LGkucG9zaXRpb24ueSxpLnRvdGFsV2lkdGgsaS50b3RhbEhlaWdodCl9KGUscixpKSxmdW5jdGlvbihlLHQsaSl7dC5jZWxscy5mb3JFYWNoKCh0PT57aWYodC5tZXJnZWQpcmV0dXJuO2NvbnN0IHI9aS5jZWxsc1t0LmNlbGwucm93XVt0LmNlbGwuY29sdW1uXSxuPWkucG9zaXRpb24ueCtyLm9mZnNldFgsbz1pLnBvc2l0aW9uLnkrci5vZmZzZXRZLGE9ci53aWR0aCxzPXIuaGVpZ2h0O2UuZmlsbFN0eWxlPXQuc3R5bGUuYmFja2dyb3VuZENvbG9yLGUuZmlsbFJlY3QobixvLGEscyl9KSl9KGUscixpKSx3KGUscixpLHQpLGZ1bmN0aW9uKGUsdCxpLHIpe2lmKHQudGFibGUuYm9yZGVyV2lkdGg+MCl7Y29uc3Qgbj1NYXRoLm1heCgxLE1hdGgucm91bmQodC50YWJsZS5ib3JkZXJXaWR0aCpyLmhvcml6b250YWxQaXhlbFJhdGlvKSksbz1NYXRoLm1heCgxLE1hdGgucm91bmQodC50YWJsZS5ib3JkZXJXaWR0aCpyLnZlcnRpY2FsUGl4ZWxSYXRpbykpO2UuZmlsbFN0eWxlPXQuc3R5bGUuYm9yZGVyQ29sb3I7Zm9yKGxldCByPTA7cjx0LnRhYmxlLmNvbHVtbnM7cisrKWZvcihsZXQgYT0wO2E8dC50YWJsZS5yb3dzO2ErKyl7Y29uc3QgdD1pLmNlbGxzW2FdW3JdO251bGw9PT10Lm1lcmdlZE1haW5DZWxsJiYodC5oZWlnaHQ+MCYmdC5lbmRSb3c8aS5sYXN0Tm9uRW1wdHlSb3dFbmQmJmUuZmlsbFJlY3QoaS5wb3NpdGlvbi54K3Qub2Zmc2V0WCxpLnBvc2l0aW9uLnkrdC5vZmZzZXRZK3QuaGVpZ2h0LHQud2lkdGgrKHQuZW5kQ29sdW1uPGkubGFzdE5vbkVtcHR5Q29sdW1uRW5kP246MCksbyksdC53aWR0aD4wJiZ0LmVuZENvbHVtbjxpLmxhc3ROb25FbXB0eUNvbHVtbkVuZCYmZS5maWxsUmVjdChpLnBvc2l0aW9uLngrdC5vZmZzZXRYK3Qud2lkdGgsaS5wb3NpdGlvbi55K3Qub2Zmc2V0WSxuLHQuaGVpZ2h0KSl9fX0oZSxyLGksdCksZnVuY3Rpb24oZSx0LGkscil7aWYodC50YWJsZS5mcmFtZVdpZHRoPjApe2NvbnN0IG49TWF0aC5tYXgoMSxNYXRoLnJvdW5kKHQudGFibGUuZnJhbWVXaWR0aCpyLmhvcml6b250YWxQaXhlbFJhdGlvKSksbz1NYXRoLm1heCgxLE1hdGgucm91bmQodC50YWJsZS5mcmFtZVdpZHRoKnIudmVydGljYWxQaXhlbFJhdGlvKSk7ZS5maWxsU3R5bGU9dC5zdHlsZS5mcmFtZUNvbG9yLGUuZmlsbFJlY3QoaS5wb3NpdGlvbi54LW4saS5wb3NpdGlvbi55LW8saS50b3RhbFdpZHRoKzIqbixvKSxlLmZpbGxSZWN0KGkucG9zaXRpb24ueC1uLGkucG9zaXRpb24ueStpLnRvdGFsSGVpZ2h0LGkudG90YWxXaWR0aCsyKm4sbyksZS5maWxsUmVjdChpLnBvc2l0aW9uLngtbixpLnBvc2l0aW9uLnksbixpLnRvdGFsSGVpZ2h0KSxlLmZpbGxSZWN0KGkucG9zaXRpb24ueCtpLnRvdGFsV2lkdGgsaS5wb3NpdGlvbi55LG4saS50b3RhbEhlaWdodCl9fShlLHIsaSx0KX1oaXRUZXN0KGUsdCl7aWYobnVsbD09PXRoaXMuX2RhdGEpcmV0dXJuIG51bGw7Y29uc3QgaT10aGlzLl9wcmVjYWxjdWxhdGVEYXRhKHQpLHI9dGhpcy5fZGF0YSx7aG9yaXpvbnRhbFBpeGVsUmF0aW86bix2ZXJ0aWNhbFBpeGVsUmF0aW86b309dCxhPWUueCpuLHM9ZS55Km8sbD1NYXRoLm1heCgxLHIudGFibGUuZnJhbWVXaWR0aCpuKSxkPU1hdGgubWF4KDEsci50YWJsZS5mcmFtZVdpZHRoKm8pO2lmKCEoYT49aS5wb3NpdGlvbi54LWwmJmE8PWkucG9zaXRpb24ueCtpLnRvdGFsV2lkdGgrMipsJiZzPj1pLnBvc2l0aW9uLnktZCYmczw9aS5wb3NpdGlvbi55K2kudG90YWxIZWlnaHQrMipkKSlyZXR1cm4gbnVsbDtjb25zdCBoPWkuY2VsbHNXaXRoVG9vbHRpcC5maW5kKChlPT57Y29uc3QgdD1pLnBvc2l0aW9uLngrZS5vZmZzZXRYLHI9aS5wb3NpdGlvbi55K2Uub2Zmc2V0WTtyZXR1cm4gYT49dCYmYTw9dCtlLndpZHRoJiZzPj1yJiZzPD1yK2UuaGVpZ2h0fSkpLHU9dm9pZCAwPT09aD92b2lkIDA6e3Rvb2x0aXA6ey4uLmgudG9vbHRpcCxyZWN0Ont4OihpLnBvc2l0aW9uLngraC5vZmZzZXRYKS9uLHk6KGkucG9zaXRpb24ueStoLm9mZnNldFkpL28sdzpoLndpZHRoL24saDpoLmhlaWdodC9vfX19O3JldHVybiBuZXcgYy5IaXRUZXN0UmVzdWx0KGMuSGl0VGFyZ2V0LlJlZ3VsYXIsdSl9X3ByZWNhbGN1bGF0ZURhdGEoZSl7aWYobnVsbCE9PXRoaXMuX3ByZWNhbGN1bGF0ZWQpcmV0dXJuIHRoaXMuX3ByZWNhbGN1bGF0ZWQ7Y29uc3QgdD0oMCwKby5lbnN1cmVOb3ROdWxsKSh0aGlzLl9kYXRhKTtsZXQgaT0tMSxyPS0xO2NvbnN0IG49QXJyYXkuZnJvbSh7bGVuZ3RoOnQudGFibGUucm93c30sKChlLGkpPT5BcnJheS5mcm9tKHtsZW5ndGg6dC50YWJsZS5jb2x1bW5zfSwoKGUsdCk9Pih7bWVyZ2VkTWFpbkNlbGw6bnVsbCxuZXh0Q29sdW1uQ2VsbDpudWxsLG5leHRSb3dDZWxsOm51bGwsc3RhcnRDb2x1bW46dCxlbmRDb2x1bW46dCxzdGFydFJvdzppLGVuZFJvdzppLHdpZHRoOjAsaGVpZ2h0OjAsb2Zmc2V0WDowLG9mZnNldFk6MCxjb2xTcGFuOi0xLHJvd1NwYW46LTEsbWVyZ2VkOiExLGVtcHR5OiEwfSkpKSkpLGE9W10se2hvcml6b250YWxQaXhlbFJhdGlvOnMsdmVydGljYWxQaXhlbFJhdGlvOmR9PWU7dC5jZWxscy5mb3JFYWNoKChpPT57aWYoaS5tZXJnZWQpe3JldHVybiB2b2lkKG5baS5jZWxsLnJvd11baS5jZWxsLmNvbHVtbl0uZW1wdHk9ITEpfWNvbnN0IHI9TWF0aC5jZWlsKHRoaXMuX2NlbGxXaWR0aChlLGksdCkqcyksbz1NYXRoLmNlaWwodGhpcy5fY2VsbEhlaWdodChlLGksdCkqZCksbD1pLmNlbGwucm93LGg9aS5jZWxsLnJvdytpLmNlbGwucm93U3Bhbi0xLGM9aS5jZWxsLmNvbHVtbix1PWkuY2VsbC5jb2x1bW4raS5jZWxsLmNvbFNwYW4tMSxmPWkuY2VsbC5jb2xTcGFuLHA9aS5jZWxsLnJvd1NwYW47bGV0IGc9bnVsbDtmb3IobGV0IGU9aS5jZWxsLnJvdztlPE1hdGgubWluKGkuY2VsbC5yb3craS5jZWxsLnJvd1NwYW4sdC50YWJsZS5yb3dzKTsrK2UpZm9yKGxldCBzPWkuY2VsbC5jb2x1bW47czxNYXRoLm1pbihpLmNlbGwuY29sdW1uK2kuY2VsbC5jb2xTcGFuLHQudGFibGUuY29sdW1ucyk7KytzKXtjb25zdCB0PW5bZV1bc10sZD1lIT09bHx8cyE9PWM7ZHx8KGc9dCx2b2lkIDAhPT1pLmNlbGwudG9vbHRpcCYmIiIhPT1pLmNlbGwudG9vbHRpcCYmKHQudG9vbHRpcD17Y29udGVudDp7dHlwZToidGV4dCIsZGF0YTppLmNlbGwudG9vbHRpcH19LGEucHVzaCh0KSkpLHQubWVyZ2VkTWFpbkNlbGw9ZD9nOm51bGwsdC5zdGFydFJvdz1sLHQuZW5kUm93PWgsdC5zdGFydENvbHVtbj1jLHQuZW5kQ29sdW1uPXUsdC53aWR0aD1yLHQuaGVpZ2h0PW8sdC5jb2xTcGFuPWYsdC5yb3dTcGFuPXAsdC5lbXB0eT0hMX19KSk7Y29uc3QgaD0wPT09dC50YWJsZS5ib3JkZXJXaWR0aD8wOk1hdGgubWF4KDEsTWF0aC5yb3VuZCh0LnRhYmxlLmJvcmRlcldpZHRoKnMpKSxjPTA9PT10LnRhYmxlLmJvcmRlcldpZHRoPzA6TWF0aC5tYXgoMSxNYXRoLnJvdW5kKHQudGFibGUuYm9yZGVyV2lkdGgqZCkpLHU9TWF0aC5tYXgoMSxNYXRoLnJvdW5kKDIwKnMpKSxmPU1hdGgubWF4KDEsTWF0aC5yb3VuZCg1KmQpKTtmb3IobGV0IGU9MDtlPHQudGFibGUuY29sdW1uczsrK2Upe2xldCByPVtdLG89ITEsYT0hMTtmb3IobGV0IHM9MDtzPHQudGFibGUucm93czsrK3Mpe2NvbnN0IHQ9bltzXVtlXTt0LmVtcHR5P2E9ITA6KG89ITAsaT1lKSxudWxsPT09dC5tZXJnZWRNYWluQ2VsbD8oci5mb3JFYWNoKChlPT5lLm5leHRSb3dDZWxsPXQpKSxyPVt0XSk6ci5wdXNoKHQpfWlmKG8mJmEpZm9yKGxldCBpPTA7aTx0LnRhYmxlLnJvd3M7KytpKXtjb25zdCB0PW5baV1bZV07dC5lbXB0eSYmKHQud2lkdGg9dSl9fWZvcihsZXQgZT0wO2U8dC50YWJsZS5yb3dzOysrZSl7bGV0IGk9W10sbz0hMSxhPSExO2ZvcihsZXQgcz0wO3M8dC50YWJsZS5jb2x1bW5zOysrcyl7Y29uc3QgdD1uW2VdW3NdO3QuZW1wdHk/YT0hMDoobz0hMCxyPWUpLG51bGw9PT10Lm1lcmdlZE1haW5DZWxsPyhpLmZvckVhY2goKGU9PmUubmV4dENvbHVtbkNlbGw9dCkpLGk9W3RdKTppLnB1c2godCl9aWYobyYmYSlmb3IobGV0IGk9MDtpPHQudGFibGUuY29sdW1uczsrK2kpe2NvbnN0IHQ9bltlXVtpXTt0LmVtcHR5JiYodC5oZWlnaHQ9Zil9fWxldCBwPTAsZz0wLF89MDtmb3IobGV0IGU9MDtlPHQudGFibGUuY29sdW1uczsrK2Upe2NvbnN0IHI9W107bGV0IG89ITE7Zm9yKGxldCBpPTA7aTx0LnRhYmxlLnJvd3M7KytpKXtjb25zdCB0PW5baV1bZV07aWYodC5lbmRDb2x1bW49PT1lKXtjb25zdCBlPXQubWVyZ2VkTWFpbkNlbGw/P3Q7Xz1NYXRoLm1heChfLGUub2Zmc2V0WCtlLndpZHRoKSxyLnB1c2goZSksbz1vfHwhZS5lbXB0eX19Zm9yKGNvbnN0IGUgb2YgcillLndpZHRoKz1fLShlLm9mZnNldFgrZS53aWR0aCkscD1NYXRoLm1heChwLGUub2Zmc2V0WCtlLndpZHRoKTtpZihyLmxlbmd0aD4wKXtjb25zdCByPW8mJmk+ZT9oOjA7Zm9yKGxldCBpPTA7aTx0LnRhYmxlLnJvd3M7KytpKXtjb25zdCB0PW5baV1bZV07bnVsbCE9PXQubmV4dENvbHVtbkNlbGwmJih0Lm5leHRDb2x1bW5DZWxsLm9mZnNldFg9TWF0aC5tYXgodC5uZXh0Q29sdW1uQ2VsbC5vZmZzZXRYLF8rcikpfX19bGV0IHg9MDtmb3IobGV0IGU9MDtlPHQudGFibGUucm93czsrK2Upe2NvbnN0IGk9W107bGV0IG89ITE7Zm9yKGxldCByPTA7cjx0LnRhYmxlLmNvbHVtbnM7KytyKXtjb25zdCB0PW5bZV1bcl07aWYodC5lbmRSb3c9PT1lKXtjb25zdCBlPXQubWVyZ2VkTWFpbkNlbGw/P3Q7eD1NYXRoLm1heCh4LGUub2Zmc2V0WStlLmhlaWdodCksaS5wdXNoKGUpLG89b3x8IWUuZW1wdHl9fWZvcihjb25zdCBlIG9mIGkpZS5oZWlnaHQrPXgtKGUub2Zmc2V0WStlLmhlaWdodCksZz1NYXRoLm1heChnLGUub2Zmc2V0WStlLmhlaWdodCk7aWYoaS5sZW5ndGg+MCl7Y29uc3QgaT1vJiZyPmU/YzowO2ZvcihsZXQgcj0wO3I8dC50YWJsZS5jb2x1bW5zOysrcil7Y29uc3QgdD1uW2VdW3JdO251bGwhPT10Lm5leHRSb3dDZWxsJiYodC5uZXh0Um93Q2VsbC5vZmZzZXRZPU1hdGgubWF4KHQubmV4dFJvd0NlbGwub2Zmc2V0WSx4K2kpKX19fWNvbnN0IHc9ZnVuY3Rpb24oZSx0LGkscil7Y29uc3R7aG9yaXpvbnRhbFBpeGVsUmF0aW86bix2ZXJ0aWNhbFBpeGVsUmF0aW86byxiaXRtYXBTaXplOmF9PXQscz1NYXRoLnJvdW5kKDEwKm8pLGQ9TWF0aC5yb3VuZCgxMCpuKTtsZXQgaD0wCjtlLnRhYmxlLnBvc2l0aW9uLnN0YXJ0c1dpdGgoInRvcF8iKT9oPXM6ZS50YWJsZS5wb3NpdGlvbi5zdGFydHNXaXRoKCJtaWRkbGVfIik/aD1NYXRoLnJvdW5kKChhLmhlaWdodC1yKS8yKTplLnRhYmxlLnBvc2l0aW9uLnN0YXJ0c1dpdGgoImJvdHRvbV8iKSYmKGg9YS5oZWlnaHQtcy1yKTtsZXQgYz0wO3JldHVybiBlLnRhYmxlLnBvc2l0aW9uLmVuZHNXaXRoKCJsZWZ0Iik/Yz1kOmUudGFibGUucG9zaXRpb24uZW5kc1dpdGgoImNlbnRlciIpP2M9TWF0aC5yb3VuZCgoYS53aWR0aC1pKS8yKTplLnRhYmxlLnBvc2l0aW9uLmVuZHNXaXRoKCJyaWdodCIpJiYoYz1hLndpZHRoLWktZCksbmV3IGwuUG9pbnQoYyxoKX0odCxlLHAsZyk7cmV0dXJuIHRoaXMuX3ByZWNhbGN1bGF0ZWQ9e3Bvc2l0aW9uOncsdG90YWxXaWR0aDpwLHRvdGFsSGVpZ2h0OmcsY2VsbHM6bixjZWxsc1dpdGhUb29sdGlwOmEsbGFzdE5vbkVtcHR5Q29sdW1uRW5kOmksbGFzdE5vbkVtcHR5Um93RW5kOnJ9LHRoaXMuX3ByZWNhbGN1bGF0ZWR9X2NlbGxXaWR0aChlLHQsaSl7Y29uc3Qgcj10LmNlbGwud2lkdGhJblBlcmNlbnRzT2ZQYW5lV2lkdGg7aWYodC5tZXJnZWR8fCIiPT09dC5jZWxsLnRleHQmJjA9PT1yKXJldHVybiAwO2lmKHIpe3JldHVybihlLm1lZGlhU2l6ZS53aWR0aC0yMCkqci8xMDB9Y29uc3QgYT10LmNlbGwudGV4dC5zcGxpdCgiXG4iKSx7Ym9sZDpzLGl0YWxpYzpsfT0oMCxfLmNvbnZlcnREd2dUZXh0Rm9ybWF0dGluZ1RvT2JqZWN0KSh0LmNlbGwudGV4dEZvcm1hdHRpbmcpLGQ9dC5jZWxsLmZvbnRUeXBlPT09bi5Nb25vc3BhY2U/aC5DSEFSVF9NT05PU1BBQ0VfRk9OVF9GQU1JTFk6aC5DSEFSVF9GT05UX0ZBTUlMWV9XVi52YWx1ZSgpLGM9KDAsby5lbnN1cmVEZWZpbmVkKSgoMCxnLmdldEZvbnRTaXplKSh0LmNlbGwuZm9udFNpemUpKSx1PWAke3QuY2VsbC5mb250VHlwZT8/ImRlZmF1bHQifS0ke2N9LSR7dC5jZWxsLnRleHRGb3JtYXR0aW5nfWA7bGV0IHg7dGhpcy5fd2lkdGhzQ2FjaGVzLmhhcyh1KT94PSgwLG8uZW5zdXJlRGVmaW5lZCkodGhpcy5fd2lkdGhzQ2FjaGVzLmdldCh1KSk6KHg9bmV3IGYuVGV4dFdpZHRoQ2FjaGUsdGhpcy5fd2lkdGhzQ2FjaGVzLnNldCh1LHgpKSx0aGlzLl9tZWFzdXJlQ3R4LmZvbnQ9KDAscC5tYWtlRm9udCkoYyxkLGw/Iml0YWxpYyI6dm9pZCAwLHM/ImJvbGQiOnZvaWQgMCk7Y29uc3Qgdz1hLm1hcCgoZT0+eC5tZWFzdXJlVGV4dCh0aGlzLl9tZWFzdXJlQ3R4LGUpKSk7cmV0dXJuIE1hdGgubWF4KC4uLncpKzIqaS50YWJsZS5ib3JkZXJXaWR0aCsyKmMvM31fY2VsbEhlaWdodChlLHQsaSl7Y29uc3Qgcj10LmNlbGwuaGVpZ2h0SW5QZXJjZW50T2ZQYW5lSGVpZ2h0O2lmKHQubWVyZ2VkfHwiIj09PXQuY2VsbC50ZXh0JiYwPT09cilyZXR1cm4gMDtpZihyKXtyZXR1cm4oZS5tZWRpYVNpemUuaGVpZ2h0LTIwKSpyLzEwMH1jb25zdCBuPXQuY2VsbC50ZXh0LnNwbGl0KCJcbiIpLmxlbmd0aCxhPSgwLG8uZW5zdXJlRGVmaW5lZCkoKDAsZy5nZXRGb250U2l6ZSkodC5jZWxsLmZvbnRTaXplKSk7cmV0dXJuIGEqbithKigyLzMpKzIqaS50YWJsZS5ib3JkZXJXaWR0aH19ZnVuY3Rpb24gbShlKXtlLmFsbENlbGxzLmZvckVhY2goKHQ9PntpZih0LmNlbGwucm93U3Bhbj4xfHx0LmNlbGwuY29sU3Bhbj4xKWZvcihsZXQgaT10LmNlbGwucm93O2k8dC5jZWxsLnJvdyt0LmNlbGwucm93U3BhbjsrK2kpZm9yKGxldCByPXQuY2VsbC5jb2x1bW47cjx0LmNlbGwuY29sdW1uK3QuY2VsbC5jb2xTcGFuOysrcil7Y29uc3Qgbj1lLmNlbGxzQnlSb3dBbmRDb2x1bW4uZ2V0KGkpPy5nZXQocik7dm9pZCAwIT09biYmbiE9PXQmJihuLm1lcmdlZD0hMCl9fSkpfWNsYXNzIHl7Y29uc3RydWN0b3IoZSx0LGkscil7dGhpcy5faW52YWxpZGF0ZWQ9ITAsdGhpcy5fZGF0YT1bXSx0aGlzLl9yZW5kZXJlcnM9W10sdGhpcy5fcmdiYUZyb21JbnRlZ2VyPSgwLGEucmdiYUZyb21JbnRlZ2VyQ2FjaGVkKSgpLHRoaXMuX3NvdXJjZT1lLHRoaXMuX2ZvcmNlT3ZlcmxheT1pfXJlbmRlcmVyKCl7dGhpcy5faW52YWxpZGF0ZWQmJih0aGlzLl9pbnZhbGlkYXRlZD0hMSx0aGlzLl91cGRhdGVWaWV3SW50ZXJuYWwoKSk7Y29uc3QgZT1uZXcgcy5Db21wb3NpdGVSZW5kZXJlcjtyZXR1cm4gdGhpcy5fZGF0YS5mb3JFYWNoKCgodCxpKT0+e3RoaXMuX3JlbmRlcmVycy5sZW5ndGg8PWk/dGhpcy5fcmVuZGVyZXJzLnB1c2gobmV3IHYodCkpOnRoaXMuX3JlbmRlcmVyc1tpXS5zZXREYXRhKHQpLGUuYXBwZW5kKHRoaXMuX3JlbmRlcmVyc1tpXSl9KSksdGhpcy5fcmVuZGVyZXJzLnNwbGljZSh0aGlzLl9kYXRhLmxlbmd0aCksZX11cGRhdGUoZSl7ImhvdmVyLWNoYW5nZSIhPT1lLnR5cGUmJih0aGlzLl9pbnZhbGlkYXRlZD0hMCl9X3VwZGF0ZVZpZXdJbnRlcm5hbCgpe3RoaXMuX2RhdGE9W107Y29uc3QgZT10aGlzLl9zb3VyY2UucHJvcGVydGllcygpLmNoaWxkcygpLnBhbGV0dGVzLmNoaWxkcygpLHQ9dGhpcy5fc291cmNlLm1ldGFJbmZvKCkuaXNSR0I7aWYoKHZvaWQgMD09PWV8fHZvaWQgMD09PWUucGFsZXR0ZV9jb21tb24pJiYhdClyZXR1cm47Y29uc3QgaT10P3ZvaWQgMDooMCxvLmVuc3VyZURlZmluZWQpKGUucGFsZXR0ZV9jb21tb24pLmNoaWxkcygpLHI9dGhpcy5fc291cmNlLmdyYXBoaWNzKCkuZHdndGFibGVzKCksbj10aGlzLl9zb3VyY2UuZ3JhcGhpY3MoKS5kd2d0YWJsZWNlbGxzKCksYT1uZXcgTWFwO24uZm9yRWFjaCgoKGUscik9PntlLmZvckVhY2goKGU9PntsZXQgcixuLHM9YS5nZXQoZS50YWJsZUlkKTtpZih2b2lkIDA9PT1zJiYocz17YWxsQ2VsbHM6W10sY2VsbHNCeVJvd0FuZENvbHVtbjpuZXcgTWFwfSxhLnNldChlLnRhYmxlSWQscykpLHQpcj10aGlzLl9yZ2JhRnJvbUludGVnZXIoZS5iYWNrZ3JvdW5kQ29sb3JJbmRleCksbj10aGlzLl9yZ2JhRnJvbUludGVnZXIoZS50ZXh0Q29sb3JJbmRleCk7ZWxzZXtjb25zdCB0PSgwLG8uZW5zdXJlRGVmaW5lZCkoaSkuY29sb3JzLmNoaWxkcygpW2UuYmFja2dyb3VuZENvbG9ySW5kZXhdLGE9KDAsCm8uZW5zdXJlRGVmaW5lZCkoaSkuY29sb3JzLmNoaWxkcygpW2UudGV4dENvbG9ySW5kZXhdO2lmKCFhKXJldHVybjtyPXQ/dC5jaGlsZHMoKS5jb2xvci52YWx1ZSgpOiJ0cmFuc3BhcmVudCIsbj1hLmNoaWxkcygpLmNvbG9yLnZhbHVlKCl9Y29uc3QgbD17Y2VsbDplLG1lcmdlZDohMSxzdHlsZTp7YmFja2dyb3VuZENvbG9yOnIsdGV4dENvbG9yOm59fTtzLmFsbENlbGxzLnB1c2gobCk7bGV0IGQ9cy5jZWxsc0J5Um93QW5kQ29sdW1uLmdldChlLnJvdyk7dm9pZCAwPT09ZCYmKGQ9bmV3IE1hcCxzLmNlbGxzQnlSb3dBbmRDb2x1bW4uc2V0KGUucm93LGQpKSxkLnNldChlLmNvbHVtbixsKX0pKX0pKSxhLmZvckVhY2gobSk7Y29uc3Qgcz0oMCxvLmVuc3VyZURlZmluZWQpKHRoaXMuX3NvdXJjZS5wcm9wZXJ0aWVzKCkuY2hpbGRzKCkuZ3JhcGhpY3MuY2hpbGRzKCkuZHdndGFibGVzKTtyLmZvckVhY2goKChlLHIpPT57aWYoKDAsby5lbnN1cmVEZWZpbmVkKShzLmNoaWxkcygpW3JdKS5jaGlsZHMoKS52aXNpYmxlLnZhbHVlKCkpe2NvbnN0IHI9ZS5nZXQodGhpcy5fZm9yY2VPdmVybGF5KTtyPy5mb3JFYWNoKChlPT57bGV0IHIsbixzO2lmKHQpcj10aGlzLl9yZ2JhRnJvbUludGVnZXIoZS5iYWNrZ3JvdW5kQ29sb3JJbmRleCksbj10aGlzLl9yZ2JhRnJvbUludGVnZXIoZS5ib3JkZXJDb2xvckluZGV4KSxzPXRoaXMuX3JnYmFGcm9tSW50ZWdlcihlLmZyYW1lQ29sb3JJbmRleCk7ZWxzZXtjb25zdCB0PSgwLG8uZW5zdXJlRGVmaW5lZCkoaSkuY29sb3JzLmNoaWxkcygpW2UuYmFja2dyb3VuZENvbG9ySW5kZXhdLGE9KDAsby5lbnN1cmVEZWZpbmVkKShpKS5jb2xvcnMuY2hpbGRzKClbZS5ib3JkZXJDb2xvckluZGV4XSxsPSgwLG8uZW5zdXJlRGVmaW5lZCkoaSkuY29sb3JzLmNoaWxkcygpW2UuZnJhbWVDb2xvckluZGV4XTtyPXQ/dC5jaGlsZHMoKS5jb2xvci52YWx1ZSgpOiJ0cmFuc3BhcmVudCIsbj1hP2EuY2hpbGRzKCkuY29sb3IudmFsdWUoKToidHJhbnNwYXJlbnQiLHM9bD9sLmNoaWxkcygpLmNvbG9yLnZhbHVlKCk6InRyYW5zcGFyZW50In10aGlzLl9kYXRhLnB1c2goe3RhYmxlOmUsc3R5bGU6e2JhY2tncm91bmRDb2xvcjpyLGJvcmRlckNvbG9yOm4sZnJhbWVDb2xvcjpzfSxjZWxsczphLmdldChlLmlkKT8uYWxsQ2VsbHM/P1tdfSl9KSl9fSkpfX19LDk0MTEwMChlLHQsaSl7dmFyIHI7ZnVuY3Rpb24gbihlKXtyZXR1cm57Ym9sZDohKDEmfmUpLGl0YWxpYzohKDImfmUpfX1pLmQodCx7Y29udmVydER3Z1RleHRGb3JtYXR0aW5nVG9PYmplY3Q6KCk9Pm59KSxmdW5jdGlvbihlKXtlW2UuTm9uZT0wXT0iTm9uZSIsZVtlLkJvbGQ9MV09IkJvbGQiLGVbZS5JdGFsaWM9Ml09Ikl0YWxpYyJ9KHJ8fChyPXt9KSl9LDIyMTE2NShlLHQsaSl7aS5yKHQpLGkuZCh0LHtISGlzdFBhbmVWaWV3OigpPT5ofSk7dmFyIHIsbj1pKDEzNDY3KSxvPWkoMTM4NjM4KSxhPWkoOTQxNjEyKSxzPWkoNzg5MTkwKSxsPWkoOTgyOTQpLGQ9aSg4NzM1NzMpOyFmdW5jdGlvbihlKXtlLlVwRG9taW5hdGVQb3N0Zml4PSJVcERvbWluYXRlIixlLkRvd25Eb21pbmF0ZVBvc3RmaXg9IkRvd25Eb21pbmF0ZSJ9KHJ8fChyPXt9KSk7Y2xhc3MgaHtjb25zdHJ1Y3RvcihlLHQsaSxyLG49ITEsbz0oKT0+bnVsbCxhPSExKXt0aGlzLl9pbnZhbGlkYXRlZD0hMCx0aGlzLl9oaXN0Qm94QmdTdHlsZT1udWxsLHRoaXMuX3Byb3ZpZGVyPWUsdGhpcy5fbW9kZWw9dCx0aGlzLl9oaXN0Qm94QmdTdHlsZT1yPz9udWxsLHRoaXMuX2FsdGVybmF0ZUxlZnRJbmRleD1vLHRoaXMuX2V4dGVuZFRvQmFyc0VuZGluZ3M9bix0aGlzLl9hbHdheXNWaXNpYmxlPWEsdGhpcy5fcmVuZGVyZXJEYXRhPXtoaXN0b2dyYW1zOltdLHN0eWxlczp7fX0sdGhpcy5faGhpc3RSZW5kZXJlcj1uZXcgbC5ISGlzdFJlbmRlcmVyKHRoaXMuX3JlbmRlcmVyRGF0YSl9dXBkYXRlKGUpeyJob3Zlci1jaGFuZ2UiIT09ZS50eXBlJiYodGhpcy5faW52YWxpZGF0ZWQ9ITApfXJlbmRlcmVyKCl7dGhpcy5faW52YWxpZGF0ZWQmJih0aGlzLl91cGRhdGVWaWV3SW50ZXJuYWwoKSx0aGlzLl9pbnZhbGlkYXRlZD0hMSk7Y29uc3QgZT1uZXcgcy5Db21wb3NpdGVSZW5kZXJlcjtyZXR1cm4gZS5hcHBlbmQodGhpcy5faGhpc3RSZW5kZXJlciksZX1fcmVzZXRSZW5kZXJlcnNEYXRhKCl7dGhpcy5fcmVuZGVyZXJEYXRhLmhpc3RvZ3JhbXM9W10sdGhpcy5fcmVuZGVyZXJEYXRhLnN0eWxlcz17fSx0aGlzLl9yZW5kZXJlckRhdGEuaGlzdEJveEJnQ29sb3I9dm9pZCAwfV9wcmVwYXJlU3R5bGVzKCl7Y29uc3QgZT0oMCxvLmVuc3VyZURlZmluZWQpKHRoaXMuX3Byb3ZpZGVyLmdyYXBoaWNzSW5mbygpLmhoaXN0cyksdD1PYmplY3Qua2V5cyhlKSxpPSgwLG8uZW5zdXJlRGVmaW5lZCkodGhpcy5fcHJvdmlkZXIucHJvcGVydGllcygpLmNoaWxkcygpLmdyYXBoaWNzLmNoaWxkcygpLmhoaXN0cykscj10aGlzLl9wcm92aWRlci5wcm9wZXJ0aWVzKCkuY2hpbGQoImlucHV0cyIpPy5jaGlsZCgidm9sdW1lIik/LnZhbHVlKCk9PT1hLkhIaXN0Vm9sdW1lTW9kZS5EZWx0YTtmb3IoY29uc3QgbiBvZiB0KXtjb25zdCB0PSgwLG8uZW5zdXJlRGVmaW5lZCkoaS5jaGlsZHMoKVtuXSkuY2hpbGRzKCksYT0oMCxvLmVuc3VyZURlZmluZWQpKGVbbl0pO2lmKHIpdGhpcy5fcmVuZGVyZXJEYXRhLnN0eWxlc1tuKyJVcERvbWluYXRlIl09e2NvbG9yczpjKHQuY29sb3JzWzBdLnZhbHVlKCksdC50cmFuc3BhcmVuY2llc1swXS52YWx1ZSgpKSx2aXNpYmxlOnQudmlzaWJsZS52YWx1ZSgpLHBlcmNlbnRXaWR0aDp0LnBlcmNlbnRXaWR0aC52YWx1ZSgpLGxvY2F0aW9uOmEubG9jYXRpb24sZGlyZWN0aW9uOnQuZGlyZWN0aW9uLnZhbHVlKCksc2hvd1ZhbHVlczp0LnNob3dWYWx1ZXMudmFsdWUoKSxhZGRUb1RvdGFsVmFsdWU6ITEsdmFsdWVzQ29sb3I6dC52YWx1ZXNDb2xvci52YWx1ZSgpfSx0aGlzLl9yZW5kZXJlckRhdGEuc3R5bGVzW24rIkRvd25Eb21pbmF0ZSJdPXtjb2xvcnM6Yyh0LmNvbG9yc1sxXS52YWx1ZSgpLHQudHJhbnNwYXJlbmNpZXNbMV0udmFsdWUoKSksCnZpc2libGU6dC52aXNpYmxlLnZhbHVlKCkscGVyY2VudFdpZHRoOnQucGVyY2VudFdpZHRoLnZhbHVlKCksbG9jYXRpb246YS5sb2NhdGlvbixkaXJlY3Rpb246dC5kaXJlY3Rpb24udmFsdWUoKSxzaG93VmFsdWVzOnQuc2hvd1ZhbHVlcy52YWx1ZSgpLGFkZFRvVG90YWxWYWx1ZTohMSx2YWx1ZXNDb2xvcjp0LnZhbHVlc0NvbG9yLnZhbHVlKCl9O2Vsc2V7Y29uc3QgZT0oMCxkLmdlbmVyYXRlQ29sb3IpKHQuY29sb3JzWzBdLnZhbHVlKCksdC50cmFuc3BhcmVuY2llc1swXS52YWx1ZSgpKSxpPXQuY29sb3JzWzFdPygwLGQuZ2VuZXJhdGVDb2xvcikodC5jb2xvcnNbMV0udmFsdWUoKSx0LnRyYW5zcGFyZW5jaWVzWzFdLnZhbHVlKCkpOmU7dGhpcy5fcmVuZGVyZXJEYXRhLnN0eWxlc1tuXT17Y29sb3JzOltlLGldLHZpc2libGU6dC52aXNpYmxlLnZhbHVlKCkscGVyY2VudFdpZHRoOnQucGVyY2VudFdpZHRoLnZhbHVlKCksbG9jYXRpb246YS5sb2NhdGlvbixkaXJlY3Rpb246dC5kaXJlY3Rpb24udmFsdWUoKSxzaG93VmFsdWVzOnQuc2hvd1ZhbHVlcy52YWx1ZSgpLGFkZFRvVG90YWxWYWx1ZTohMCx2YWx1ZXNDb2xvcjp0LnZhbHVlc0NvbG9yLnZhbHVlKCl9fX1pZih0aGlzLl9oaXN0Qm94QmdTdHlsZSl7Y29uc3QgZT10aGlzLl9oaXN0Qm94QmdTdHlsZS5jaGlsZHMoKTt0aGlzLl9yZW5kZXJlckRhdGEuaGlzdEJveEJnQ29sb3I9KDAsZC5nZW5lcmF0ZUNvbG9yKShlLmNvbG9yLnZhbHVlKCksZS50cmFuc3BhcmVuY3kudmFsdWUoKSl9fV91cGRhdGVWaWV3SW50ZXJuYWwoKXt0aGlzLl9yZXNldFJlbmRlcmVyc0RhdGEoKTtjb25zdCBlPXRoaXMuX3Byb3ZpZGVyLnByaWNlU2NhbGUoKSx0PXRoaXMuX21vZGVsLnRpbWVTY2FsZSgpO2lmKCFlfHxlLmlzRW1wdHkoKXx8dC5pc0VtcHR5KCkpcmV0dXJuO2lmKG51bGw9PT10aGlzLl9wcm92aWRlci5maXJzdFZhbHVlKCkpcmV0dXJuO2NvbnN0IGk9dGhpcy5fcHJvdmlkZXIuZ3JhcGhpY3MoKS5oaGlzdHNCeVRpbWVQb2ludEluZGV4KCk7aWYoMD09PWkuc2l6ZSlyZXR1cm47Y29uc3Qgcj10LnZpc2libGVCYXJzU3RyaWN0UmFuZ2UoKTtpZihudWxsPT09cilyZXR1cm47Y29uc3Qgbj1yLmZpcnN0QmFyKCksYT1yLmxhc3RCYXIoKTt0aGlzLl9wcmVwYXJlU3R5bGVzKCksKDAsby5lbnN1cmVEZWZpbmVkKShpKS5mb3JFYWNoKChpPT57bGV0IHI9MS8wLG89LTEvMDtmb3IoY29uc3QgZSBvZiBpKXtjb25zdCB0PXRoaXMuX2hoaXN0Rmlyc3RCYXJUaW1lKGUpO2lmKG51bGw9PT10KXJldHVybjtyPU1hdGgubWluKHIsdCksbz1NYXRoLm1heChvLGUubGFzdEJhclRpbWUpfSF0aGlzLl9hbHdheXNWaXNpYmxlJiYobzxufHxyPmEpfHx0aGlzLl91cGRhdGVEYXRhRm9yUmVuZGVyZXJzKGksZSx0KX0pKX1fdXBkYXRlRGF0YUZvclJlbmRlcmVycyhlLHQsaSl7aWYoZS5zaXplPD0wKXJldHVybjtsZXQgcj1udWxsO2lmKGUuZm9yRWFjaCgoZT0+e3I9cnx8ZX0pKSxudWxsPT09cilyZXR1cm47bGV0IG49cjtlLmZvckVhY2goKGU9PntlLnByaWNlTG93PG4ucHJpY2VMb3cmJihuPWUpfSkpO2NvbnN0IHM9dGhpcy5fcHJvdmlkZXIucHJvcGVydGllcygpLmNoaWxkKCJpbnB1dHMiKT8uY2hpbGQoInZvbHVtZSIpPy52YWx1ZSgpPT09YS5ISGlzdFZvbHVtZU1vZGUuRGVsdGEsZD1mdW5jdGlvbihlLHQsaSxyKXtjb25zdCBuPXQuYmFyQm9yZGVycyhlLmZpcnN0QmFyVGltZT8/ciksbz10LmJhckJvcmRlcnMoZS5sYXN0QmFyVGltZSk7cmV0dXJuIGk/KDAsbC5yYW5nZSkobi5sZWZ0LG8ucmlnaHQpOigwLGwucmFuZ2UpKG4uY2VudGVyLG8uY2VudGVyKX0ocixpLHRoaXMuX2V4dGVuZFRvQmFyc0VuZGluZ3MsKDAsby5lbnN1cmVOb3ROdWxsKSh0aGlzLl9oaGlzdEZpcnN0QmFyVGltZShyKSkpLGg9KDAsby5lbnN1cmVOb3ROdWxsKSh0aGlzLl9wcm92aWRlci5maXJzdFZhbHVlKCkpLGM9W107ZS5mb3JFYWNoKChlPT57bnVsbD09ZS5yYXRlW2UucmF0ZS5sZW5ndGgtMV0mJmUucmF0ZS5zcGxpY2UoLTEsMSk7bGV0IGk9W10scj1bXSxuPWUuc3R5bGVJZDtpZihzKXtjb25zdFt0LG8sYV09ZS5yYXRlWzBdPmUucmF0ZVsxXT9bZS5yYXRlWzFdLGUucmF0ZVswXSwiVXBEb21pbmF0ZSJdOltlLnJhdGVbMF0sZS5yYXRlWzFdLCJEb3duRG9taW5hdGUiXTtpPVtvLXQsdCx0XSxyPVtvLXRdLG4rPWF9ZWxzZSBpPWUucmF0ZSxyPWUucmF0ZTtjb25zdCBvPWZ1bmN0aW9uKGUsdCxpKXtyZXR1cm4oMCxsLnJhbmdlKSh0LnByaWNlVG9Db29yZGluYXRlKGUucHJpY2VIaWdoLGkpLHQucHJpY2VUb0Nvb3JkaW5hdGUoZS5wcmljZUxvdyxpKSl9KGUsdCxoKTtjLnB1c2goe2hlaWdodDpvLm1heC1vLm1pbix5Om8ubWluLHN1YkJhclZhbHVlczppLGRpc3BsYXllZFZhbHVlczpyLHN0eWxlSWQ6bn0pfSkpLGMuc29ydCgoKGUsdCk9PmUueS10LnkpKSx0aGlzLl9yZW5kZXJlckRhdGEuaGlzdG9ncmFtcy5wdXNoKHt4UmFuZ2U6ZCx5UmFuZ2U6KDAsbC5yYW5nZSkoY1swXS55LGNbYy5sZW5ndGgtMV0ueStjW2MubGVuZ3RoLTFdLmhlaWdodCksYmFyczpjfSl9X2hoaXN0Rmlyc3RCYXJUaW1lKGUpe3JldHVybiBlLmZpcnN0QmFyVGltZT8/dGhpcy5fYWx0ZXJuYXRlTGVmdEluZGV4KCl9fWZ1bmN0aW9uIGMoZSx0KXtsZXQgaTtpZigoMCxkLmlzSGV4Q29sb3IpKGUpKWk9MTAwLXQ7ZWxzZXtjb25zdCByPSgwLG4udHJ5UGFyc2VSZ2JhKShlKTtpPTEwMC0obnVsbCE9PXI/KDAsZC5hbHBoYVRvVHJhbnNwYXJlbmN5KShyWzNdKTp0KX1yZXR1cm5bKDAsZC5nZW5lcmF0ZUNvbG9yKShlLDEwMC1pLCEwKSwoMCxkLmdlbmVyYXRlQ29sb3IpKGUsMTAwLWkvMiwhMCksKDAsZC5nZW5lcmF0ZUNvbG9yKShlLDEwMC1pLzQsITApXX19LDk4Mjk0KGUsdCxpKXtpLmQodCx7SEhpc3RSZW5kZXJlcjooKT0+Zixmb250U2l6ZVRvU3RhcnRUZXh0SGlkaW5nOigpPT5jLHJhbmdlOigpPT5oLHN1Z2dlc3RGb250U2l6ZTooKT0+X30pO3ZhciByPWkoNzM2NTMxKSxuPWkoMTM0NjcpLG89aSgzOTQ5NjMpLGE9aSgxNTEyMSkscz1pKDc2MyksbD1pKDIzMzI0NyksZD1pKDkyNjE0OSkKO2Z1bmN0aW9uIGgoZSx0KXtyZXR1cm57bWluOk1hdGgubWluKGUsdCksbWF4Ok1hdGgubWF4KGUsdCl9fWNvbnN0IGM9Ny41LHU9KDAsbC5nZXRWb2x1bWVGb3JtYXR0ZXIpKCk7Y2xhc3MgZntjb25zdHJ1Y3RvcihlKXt0aGlzLl9kYXRhPWV9aGl0VGVzdChlLHQpe2NvbnN0IGk9dGhpcy5fZGF0YTtmb3IoY29uc3QgciBvZiBpLmhpc3RvZ3JhbXMpe2lmKHIueVJhbmdlLm1pbj49ZS55fHxlLnk+PXIueVJhbmdlLm1heCljb250aW51ZTtsZXQgbj1udWxsO2Zvcihjb25zdCBhIG9mIHIuYmFycyl7Y29uc3QgbD1pLnN0eWxlc1thLnN0eWxlSWRdO2lmKCFsLnZpc2libGUpY29udGludWU7aWYobC5sb2NhdGlvbj09PW8uSEhpc3RMb2NhdGlvbi5BYnNvbHV0ZSYmKHIueFJhbmdlLm1pbj49ZS54fHxlLng+PXIueFJhbmdlLm1heCkpY29udGludWU7bnVsbD09PW4mJihuPTAsci5iYXJzLmZvckVhY2goKGU9Pntjb25zdCB0PWUuc3ViQmFyVmFsdWVzLnJlZHVjZSgoKGUsdCk9PmUrdCkpO249TWF0aC5tYXgobix0KX0pKSk7Y29uc3QgZD1wKHIueFJhbmdlLGwsdC5tZWRpYVNpemUud2lkdGgpLHt4QmFzZVBvaW50Omgsc2lnbjpjLHhSYW5nZVdpZHRoOnV9PWQsZj1NYXRoLm1heChsLnBlcmNlbnRXaWR0aCp1LzEwMC1hLnN1YkJhclZhbHVlcy5sZW5ndGgsMCk7bGV0IGc9aDtmb3IobGV0IHQ9MDt0PGEuc3ViQmFyVmFsdWVzLmxlbmd0aDt0Kyspe2NvbnN0IGk9YS55LHI9YS55K2EuaGVpZ2h0LG89ZyxsPW8rYyooZiphLnN1YkJhclZhbHVlc1t0XS9uKTtpZihnPWwsKGUueD49byYmZS54PD1sfHxlLng+PWwmJmUueDw9bykmJmUueT49aSYmZS55PD1yKXJldHVybiBuZXcgcy5IaXRUZXN0UmVzdWx0KHMuSGl0VGFyZ2V0LlJlZ3VsYXIpfX19cmV0dXJuIG51bGx9ZHJhdyhlLHQpe2NvbnN0IGk9dGhpcy5fZGF0YSx7aG9yaXpvbnRhbFBpeGVsUmF0aW86cix2ZXJ0aWNhbFBpeGVsUmF0aW86b309dDtlLnNhdmUoKSxpLmhpc3RvZ3JhbXMuZm9yRWFjaCgoYT0+e2lmKGkuaGlzdEJveEJnQ29sb3Ipe2UuYmVnaW5QYXRoKCksZS5maWxsU3R5bGU9aS5oaXN0Qm94QmdDb2xvcjtjb25zdCB0PU1hdGgucm91bmQoYS54UmFuZ2UubWluKnIpLG49TWF0aC5yb3VuZChhLnlSYW5nZS5taW4qbykscz1NYXRoLnJvdW5kKGEueFJhbmdlLm1heCpyKS10LGw9TWF0aC5yb3VuZChhLnlSYW5nZS5tYXgqbyktbjtlLnJlY3QodCxuLHMsbCksZS5maWxsKCl9Y29uc3Qgcz1bXTtsZXQgbD0wLGQ9MDthLmJhcnMuZm9yRWFjaCgoZT0+e2NvbnN0IHQ9ZS5zdWJCYXJWYWx1ZXMucmVkdWNlKCgoZSx0KT0+ZSt0KSk7bD1NYXRoLm1heChsLHQpLGQrPWUuaGVpZ2h0fSkpO2NvbnN0IGg9ZC9hLmJhcnMubGVuZ3RoLHU9ZnVuY3Rpb24oZSx0KXtjb25zdCBpPU1hdGguZmxvb3IoZSp0KTtyZXR1cm4gaT49MSp0P01hdGguZmxvb3IodCk6MH0oaCxyKSxmPVtdO2lmKGEuYmFycy5mb3JFYWNoKChuPT57Y29uc3QgZD1pLnN0eWxlc1tuLnN0eWxlSWRdO2lmKCFkLnZpc2libGUpcmV0dXJuO2lmKGQuc2hvd1ZhbHVlcyYmZC5hZGRUb1RvdGFsVmFsdWUpZm9yKGxldCBlPTA7ZTxuLnN1YkJhclZhbHVlcy5sZW5ndGg7ZSsrKXNbZV09KHNbZV18fDApK24uc3ViQmFyVmFsdWVzW2VdO2NvbnN0IGg9cChhLnhSYW5nZSxkLHQubWVkaWFTaXplLndpZHRoKSx7eEJhc2VQb2ludDpjLHNpZ246Xyx4UmFuZ2VXaWR0aDp3fT1oO2lmKG4ueT50Lm1lZGlhU2l6ZS5oZWlnaHR8fG4ueStuLmhlaWdodDwwKXJldHVybjtjb25zdCB2PU1hdGgubWF4KGQucGVyY2VudFdpZHRoKncvMTAwLW4uc3ViQmFyVmFsdWVzLmxlbmd0aCwwKTtsZXQgbT1jO2ZvcihsZXQgdD0wO3Q8bi5zdWJCYXJWYWx1ZXMubGVuZ3RoO3QrKyl7Y29uc3QgaT1uLnksYT1uLnkrbi5oZWlnaHQscz1tLGg9cytfKih2Km4uc3ViQmFyVmFsdWVzW3RdL2wpO2lmKE1hdGguYWJzKGgtcyk8LjUpY29udGludWU7bT1oLGUuYmVnaW5QYXRoKCksZS5maWxsU3R5bGU9ZC5jb2xvcnNbdF07Y29uc3QgYz1NYXRoLnJvdW5kKHMqciksZj1NYXRoLnJvdW5kKGkqbykscD1NYXRoLnJvdW5kKGgqciktYyxnPU1hdGgubWF4KE1hdGgucm91bmQoYSpvKS1mLXUsMSk7ZS5yZWN0KGMsZixwLGcpLGUuZmlsbCgpfWlmKCFkLnNob3dWYWx1ZXMpcmV0dXJuO2NvbnN0IHk9ZyhuLmRpc3BsYXllZFZhbHVlcyxkLmRpcmVjdGlvbiksYj14KHcsbi55LG4uaGVpZ2h0LGgsZCx5KTtmLnB1c2goYil9KSkscy5sZW5ndGg+MCl7Y29uc3QgZT1pLnN0eWxlc1thLmJhcnNbMF0uc3R5bGVJZF0scj1wKGEueFJhbmdlLGUsdC5tZWRpYVNpemUud2lkdGgpLG89ZyhzLGUuZGlyZWN0aW9uKSxsPWEuYmFyc1thLmJhcnMubGVuZ3RoLTFdLGQ9eChyLnhSYW5nZVdpZHRoLGwueStsLmhlaWdodCxoLHIsZSxvKTtkLmNvbG9yPSgwLG4uc2hpZnRDb2xvcikoZC5jb2xvciwxLjUpLGYucHVzaChkKX1jb25zdCBfPU1hdGgubWluKC4uLmYubWFwKChlPT5lLmZvbnRTaXplKSkpO2lmKF8+PWMpZm9yKGNvbnN0IGkgb2YgZilpLmZvbnRTaXplPV8sdyhlLHQsaSl9KSksZS5yZXN0b3JlKCl9fWZ1bmN0aW9uIHAoZSx0LGkpe2NvbnN0IHI9dC5sb2NhdGlvbj09PW8uSEhpc3RMb2NhdGlvbi5BYnNvbHV0ZSxuPXQubG9jYXRpb249PT1vLkhIaXN0TG9jYXRpb24uUmVsYXRpdmUsYT10LmRpcmVjdGlvbj09PW8uSEhpc3REaXJlY3Rpb24uTGVmdFRvUmlnaHQscz10LmRpcmVjdGlvbj09PW8uSEhpc3REaXJlY3Rpb24uUmlnaHRUb0xlZnQ7bGV0IGwsZDtpZihyJiZhKWw9ZS5taW4sZD0xO2Vsc2UgaWYociYmcylsPWUubWF4LGQ9LTE7ZWxzZSBpZihuJiZhKWw9MCxkPTE7ZWxzZXtpZighbnx8IXMpdGhyb3cgbmV3IEVycm9yKGBVbmtub3duIGxvY2F0aW9uL2RpcmVjdGlvbiB2YWx1ZXM6ICR7dC5sb2NhdGlvbn0vJHt0LmRpcmVjdGlvbn1gKTtsPWksZD0tMX12YXIgaDtyZXR1cm57eEJhc2VQb2ludDpsLHNpZ246ZCx4UmFuZ2VXaWR0aDpuP2k6KGg9ZSkubWF4LWgubWlufX1mdW5jdGlvbiBnKGUsdCl7cmV0dXJuIHQ9PT1vLkhIaXN0RGlyZWN0aW9uLlJpZ2h0VG9MZWZ0JiYoZT1lLnNsaWNlKCkpLnJldmVyc2UoKSwKZS5tYXAoKGU9PnUuZm9ybWF0KGUpKSkuam9pbigieCIpfWZ1bmN0aW9uIF8oZSx0LGkpe3JldHVybntmb250U2l6ZTpNYXRoLm1pbihNYXRoLnJvdW5kKDEuNyplL2kubGVuZ3RoKSxNYXRoLnJvdW5kKC42KnQpKSx2ZXJ0aWNhbE9mZnNldDouNyp0fX1mdW5jdGlvbiB4KGUsdCxpLG4sYSxzKXtjb25zdHtmb250U2l6ZTpsLHZlcnRpY2FsT2Zmc2V0OmR9PV8oZSxpLHMpLGg9YS5kaXJlY3Rpb249PT1vLkhIaXN0RGlyZWN0aW9uLkxlZnRUb1JpZ2h0PyJsZWZ0IjoicmlnaHQiLHt4QmFzZVBvaW50OmMsc2lnbjp1fT1uLGY9YyszKnUscD10K2Q7cmV0dXJue3RleHQ6cyxjb2xvcjphLnZhbHVlc0NvbG9yLGZvbnRTaXplOmwsYWxpZ246aCxwb2ludDpuZXcgci5Qb2ludChmLHApfX1mdW5jdGlvbiB3KGUsdCxpKXtjb25zdHt0ZXh0OnIsY29sb3I6bixmb250U2l6ZTpvLGFsaWduOnMscG9pbnQ6bH09aTtlLmZvbnQ9YCR7b31weCAke2QuQ0hBUlRfRk9OVF9GQU1JTFlfV1YudmFsdWUoKX1gLGUuZmlsbFN0eWxlPW4sZS50ZXh0QWxpZ249cywoMCxhLmRyYXdTY2FsZWQpKGUsdC5ob3Jpem9udGFsUGl4ZWxSYXRpbyx0LnZlcnRpY2FsUGl4ZWxSYXRpbywoKCk9PmUuZmlsbFRleHQocixsLngsbC55KSkpfX0sNjc3OTA5KGUsdCxpKXtpLnIodCksaS5kKHQse0hvcml6TGluZVBhbmVWaWV3OigpPT5zfSk7dmFyIHI9aSgxMzg2MzgpLG49aSg3NjMpLG89aSg3ODkxOTApLGE9aSg2NTA0ODApO2NsYXNzIHN7Y29uc3RydWN0b3IoZSx0LGkscj0hMSxvPSgpPT5udWxsKXt0aGlzLl9kYXRhPVtdLHRoaXMuX2ludmFsaWRhdGVkPSEwLHRoaXMuX3Byb3ZpZGVyPWUsdGhpcy5fbW9kZWw9dCx0aGlzLl9leHRlbmRUb0JhcnNFbmRpbmdzPXIsdGhpcy5fYWx0ZXJuYXRlU3RhcnRJbmRleD1vLHRoaXMuX2hpdFRlc3RSZXN1bHQ9dm9pZCAwIT09aT9uZXcgbi5IaXRUZXN0UmVzdWx0KG4uSGl0VGFyZ2V0LkN1c3RvbSxpKTpuZXcgbi5IaXRUZXN0UmVzdWx0KG4uSGl0VGFyZ2V0LlJlZ3VsYXIpfXVwZGF0ZShlKXsiaG92ZXItY2hhbmdlIiE9PWUudHlwZSYmKHRoaXMuX2ludmFsaWRhdGVkPSEwKX1yZW5kZXJlcigpe3RoaXMuX2ludmFsaWRhdGVkJiYodGhpcy5fdXBkYXRlVmlld0ludGVybmFsKCksdGhpcy5faW52YWxpZGF0ZWQ9ITEpO2NvbnN0IGU9bmV3IG8uQ29tcG9zaXRlUmVuZGVyZXI7Zm9yKGNvbnN0IHQgb2YgdGhpcy5fZGF0YSl7Y29uc3QgaT1uZXcgYS5Ib3Jpem9udGFsTGluZVJlbmRlcmVyO2kuc2V0RGF0YSh0KSxpLnNldEhpdFRlc3QodGhpcy5faGl0VGVzdFJlc3VsdCksZS5hcHBlbmQoaSl9cmV0dXJuIGV9X3VwZGF0ZVZpZXdJbnRlcm5hbCgpe3RoaXMuX2RhdGE9W107Y29uc3QgZT10aGlzLl9wcm92aWRlci5wcmljZVNjYWxlKCksdD10aGlzLl9tb2RlbC50aW1lU2NhbGUoKTtpZighZXx8ZS5pc0VtcHR5KCl8fHQuaXNFbXB0eSgpKXJldHVybjtjb25zdCBpPXRoaXMuX3Byb3ZpZGVyLmdyYXBoaWNzKCkuaG9yaXpsaW5lcygpO2lmKDA9PT1pLnNpemUpcmV0dXJuO2NvbnN0IG49dC52aXNpYmxlQmFyc1N0cmljdFJhbmdlKCk7aWYobnVsbD09PW4pcmV0dXJuO2NvbnN0IG89dGhpcy5fcHJvdmlkZXIuZmlyc3RWYWx1ZSgpO2lmKG51bGw9PT1vKXJldHVybjtjb25zdCBhPW4uZmlyc3RCYXIoKSxzPW4ubGFzdEJhcigpLGw9KDAsci5lbnN1cmVEZWZpbmVkKSh0aGlzLl9wcm92aWRlci5wcm9wZXJ0aWVzKCkuY2hpbGRzKCkuZ3JhcGhpY3MuY2hpbGRzKCkuaG9yaXpsaW5lcyk7aS5mb3JFYWNoKCgoaSxuKT0+e2NvbnN0IGQ9KDAsci5lbnN1cmVEZWZpbmVkKShsLmNoaWxkcygpW25dKS5jaGlsZHMoKTtkLnZpc2libGUudmFsdWUoKSYmaS5mb3JFYWNoKChpPT57Y29uc3Qgbj1pLnN0YXJ0SW5kZXg/P3RoaXMuX2FsdGVybmF0ZVN0YXJ0SW5kZXgoKSxsPWkuZW5kSW5kZXg7aWYobnVsbD09PW4pcmV0dXJuO2lmKCFpLmV4dGVuZFJpZ2h0JiZNYXRoLm1heChuLGwpPGF8fCFpLmV4dGVuZExlZnQmJk1hdGgubWluKG4sbCk+cylyZXR1cm47bGV0IGgsYztpZighaS5leHRlbmRMZWZ0KXtjb25zdCBlPXQuYmFyQm9yZGVycyhuKTtoPXRoaXMuX2V4dGVuZFRvQmFyc0VuZGluZ3M/ZS5sZWZ0OmUuY2VudGVyfWlmKCFpLmV4dGVuZFJpZ2h0KXtjb25zdCBlPXQuYmFyQm9yZGVycyhsKTtjPXRoaXMuX2V4dGVuZFRvQmFyc0VuZGluZ3M/ZS5yaWdodDplLmNlbnRlcn10aGlzLl9kYXRhLnB1c2goe3k6ZS5wcmljZVRvQ29vcmRpbmF0ZSgoMCxyLmVuc3VyZURlZmluZWQpKGkubGV2ZWwpLG8pLGxlZnQ6aCxyaWdodDpjLGNvbG9yOmQuY29sb3IudmFsdWUoKSxsaW5ld2lkdGg6ZC53aWR0aC52YWx1ZSgpLGxpbmVzdHlsZTpkLnN0eWxlLnZhbHVlKCl9KX0pKX0pKX19fSwxODE0MzAoZSx0LGkpe2kucih0KSxpLmQodCx7TGV2ZWxQYW5lVmlldzooKT0+Y30pO3ZhciByLG49aSgxMzg2MzgpLG89aSg3MzY1MzEpOyFmdW5jdGlvbihlKXtlW2UuVG9wTGVmdD0wXT0iVG9wTGVmdCIsZVtlLlRvcENlbnRlcj0xXT0iVG9wQ2VudGVyIixlW2UuVG9wUmlnaHQ9Ml09IlRvcFJpZ2h0IixlW2UuTWlkZGxlTGVmdD0zXT0iTWlkZGxlTGVmdCIsZVtlLk1pZGRsZUNlbnRlcj00XT0iTWlkZGxlQ2VudGVyIixlW2UuTWlkZGxlUmlnaHQ9NV09Ik1pZGRsZVJpZ2h0IixlW2UuQm90dG9tTGVmdD02XT0iQm90dG9tTGVmdCIsZVtlLkJvdHRvbUNlbnRlcj03XT0iQm90dG9tQ2VudGVyIixlW2UuQm90dG9tUmlnaHQ9OF09IkJvdHRvbVJpZ2h0In0ocnx8KHI9e30pKTt2YXIgYT1pKDg4NDI4KSxzPWkoNzg5MTkwKSxsPWkoNjUwNDgwKSxkPWkoNDcwOTg2KSxoPWkoOTI2MTQ5KTtjbGFzcyBje2NvbnN0cnVjdG9yKGUsdCl7dGhpcy5fbGluZVJlbmRlcmVycz1bXSx0aGlzLl90ZXh0UmVuZGVyZXJzPVtdLHRoaXMuX3JlbmRlcmVyPW5ldyBzLkNvbXBvc2l0ZVJlbmRlcmVyLHRoaXMuX2ludmFsaWRhdGVkPSEwLHRoaXMuX3Byb3ZpZGVyPWUsdGhpcy5fbW9kZWw9dH11cGRhdGUoZSl7ImhvdmVyLWNoYW5nZSIhPT1lLnR5cGUmJih0aGlzLl9pbnZhbGlkYXRlZD0hMCl9cmVuZGVyZXIoKXsKcmV0dXJuIHRoaXMuX2ludmFsaWRhdGVkJiYodGhpcy5fdXBkYXRlVmlld0ludGVybmFsKCksdGhpcy5faW52YWxpZGF0ZWQ9ITEpLHRoaXMuX3JlbmRlcmVyfV91cGRhdGVWaWV3SW50ZXJuYWwoKXt0aGlzLl9yZW5kZXJlci5jbGVhcigpO2NvbnN0IGU9dGhpcy5fcHJvdmlkZXIucHJpY2VTY2FsZSgpLHQ9dGhpcy5fbW9kZWwudGltZVNjYWxlKCk7aWYoIWV8fGUuaXNFbXB0eSgpfHx0LmlzRW1wdHkoKSlyZXR1cm47Y29uc3QgaT10aGlzLl9wcm92aWRlci5ncmFwaGljcygpLmhsaW5lcygpO2lmKDA9PT1pLnNpemUpcmV0dXJuO2NvbnN0IHM9dGhpcy5fcHJvdmlkZXIuZmlyc3RWYWx1ZSgpO2lmKG51bGw9PT1zKXJldHVybjtjb25zdCBjPXRoaXMuX3Byb3ZpZGVyLnByb3BlcnRpZXMoKS5jaGlsZHMoKS5ncmFwaGljcyx1PSgwLG4uZW5zdXJlRGVmaW5lZCkoYy5jaGlsZHMoKS5obGluZXMpLGY9KDAsbi5lbnN1cmVEZWZpbmVkKSh0aGlzLl9wcm92aWRlci5ncmFwaGljc0luZm8oKS5obGluZXMpO2xldCBwPTAsZz0wO2ZvcihpLmZvckVhY2goKChpLGMpPT57Y29uc3QgXz0oMCxuLmVuc3VyZURlZmluZWQpKHUuY2hpbGRzKClbY10pLmNoaWxkcygpLHg9KDAsbi5lbnN1cmVEZWZpbmVkKShmW2NdKS5lbmFibGVUZXh0JiYoMCxuLmVuc3VyZURlZmluZWQpKF8uc2hvd1RleHQpLnZhbHVlKCksdz1fLnZpc2libGUudmFsdWUoKTsoeHx8dykmJmkuZm9yRWFjaCgoaT0+e2NvbnN0IGM9ZS5wcmljZVRvQ29vcmRpbmF0ZSgoMCxuLmVuc3VyZURlZmluZWQpKGkubGV2ZWwpLHMpO2lmKHgpe2NvbnN0IGU9KDAsbi5lbnN1cmVEZWZpbmVkKShfLnRleHRQb3MpLnZhbHVlKCksW3MsbF09ZnVuY3Rpb24oZSx0KXtpZihlPT09ci5Ub3BMZWZ0fHxlPT09ci5NaWRkbGVMZWZ0fHxlPT09ci5Cb3R0b21MZWZ0KXJldHVyblthLkhvcml6b250YWxBbGlnbi5MZWZ0LDRdO2lmKGU9PT1yLlRvcENlbnRlcnx8ZT09PXIuTWlkZGxlQ2VudGVyfHxlPT09ci5Cb3R0b21DZW50ZXIpcmV0dXJuW2EuSG9yaXpvbnRhbEFsaWduLkNlbnRlcix0LzJdO2lmKGU9PT1yLlRvcFJpZ2h0fHxlPT09ci5NaWRkbGVSaWdodHx8ZT09PXIuQm90dG9tUmlnaHQpcmV0dXJuW2EuSG9yaXpvbnRhbEFsaWduLlJpZ2h0LHRdO3Rocm93IG5ldyBFcnJvcigiVW5zdXBwb3J0ZWQgVGV4dFBvcyB2YWx1ZSIpfShlLHQud2lkdGgoKSksW3UsZl09ZnVuY3Rpb24oZSx0KXtpZihlPT09ci5Ub3BMZWZ0fHxlPT09ci5Ub3BDZW50ZXJ8fGU9PT1yLlRvcFJpZ2h0KXJldHVyblthLlZlcnRpY2FsQWxpZ24uQm90dG9tLHQtNF07aWYoZT09PXIuTWlkZGxlTGVmdHx8ZT09PXIuTWlkZGxlQ2VudGVyfHxlPT09ci5NaWRkbGVSaWdodClyZXR1cm5bYS5WZXJ0aWNhbEFsaWduLk1pZGRsZSx0LTJdO2lmKGU9PT1yLkJvdHRvbUxlZnR8fGU9PT1yLkJvdHRvbUNlbnRlcnx8ZT09PXIuQm90dG9tUmlnaHQpcmV0dXJuW2EuVmVydGljYWxBbGlnbi5Ub3AsdF07dGhyb3cgbmV3IEVycm9yKCJVbnN1cHBvcnRlZCBUZXh0UG9zIHZhbHVlIil9KGUsYyksZz17cG9pbnRzOltuZXcgby5Qb2ludChsLGYpXSxvZmZzZXRYOjAsb2Zmc2V0WTowLHRleHQ6aS50ZXh0fHwiIixjb2xvcjpfLmNvbG9yLnZhbHVlKCksZm9udDpoLkNIQVJUX0ZPTlRfRkFNSUxZX1dWLnZhbHVlKCksZm9udHNpemU6KDAsbi5lbnN1cmVEZWZpbmVkKShfLmZvbnRTaXplKS52YWx1ZSgpLGhvcnpBbGlnbjpzLHZlcnRBbGlnbjp1fTtsZXQgeDt2b2lkIDA9PT10aGlzLl90ZXh0UmVuZGVyZXJzW3BdPyh4PW5ldyBkLlRleHRSZW5kZXJlcix0aGlzLl90ZXh0UmVuZGVyZXJzW3BdPXgpOng9dGhpcy5fdGV4dFJlbmRlcmVyc1twXSx4LnNldERhdGEoZykscCsrfWlmKHcpe2NvbnN0IGU9e3Zpc2libGU6ITAseTpjLGNvbG9yOl8uY29sb3IudmFsdWUoKSxsaW5ld2lkdGg6Xy53aWR0aC52YWx1ZSgpLGxpbmVzdHlsZTpfLnN0eWxlLnZhbHVlKCl9O2xldCB0O3ZvaWQgMD09PXRoaXMuX2xpbmVSZW5kZXJlcnNbZ10/KHQ9bmV3IGwuSG9yaXpvbnRhbExpbmVSZW5kZXJlcix0aGlzLl9saW5lUmVuZGVyZXJzW2ddPXQpOnQ9dGhpcy5fbGluZVJlbmRlcmVyc1tnXSx0LnNldERhdGEoZSksZysrfX0pKX0pKTt0aGlzLl90ZXh0UmVuZGVyZXJzLmxlbmd0aD5wOyl0aGlzLl90ZXh0UmVuZGVyZXJzLnBvcCgpO2Zvcig7dGhpcy5fbGluZVJlbmRlcmVycy5sZW5ndGg+ZzspdGhpcy5fbGluZVJlbmRlcmVycy5wb3AoKTtmb3IoY29uc3QgZSBvZiB0aGlzLl9saW5lUmVuZGVyZXJzKXRoaXMuX3JlbmRlcmVyLmFwcGVuZChlKTtmb3IoY29uc3QgZSBvZiB0aGlzLl90ZXh0UmVuZGVyZXJzKXRoaXMuX3JlbmRlcmVyLmFwcGVuZChlKX19fSw1Njg5NjMoZSx0LGkpe2kucih0KSxpLmQodCx7TGluZVBhbmVWaWV3OigpPT5kfSk7dmFyIHI9aSgxMzg2MzgpLG49aSg3MzY1MzEpLG89aSg3NjMpLGE9aSg3ODkxOTApLHM9aSg2NjAxNjEpLGw9aSg2NjQ4MTUpO2NsYXNzIGR7Y29uc3RydWN0b3IoZSx0LGkpe3RoaXMuX2RhdGE9W10sdGhpcy5faW52YWxpZGF0ZWQ9ITAsdGhpcy5fcHJvdmlkZXI9ZSx0aGlzLl9tb2RlbD10LHRoaXMuX2hpdFRlc3RSZXN1bHQ9dm9pZCAwIT09aT9uZXcgby5IaXRUZXN0UmVzdWx0KG8uSGl0VGFyZ2V0LkN1c3RvbSxpKTpuZXcgby5IaXRUZXN0UmVzdWx0KG8uSGl0VGFyZ2V0LlJlZ3VsYXIpfXVwZGF0ZShlKXsiaG92ZXItY2hhbmdlIiE9PWUudHlwZSYmKHRoaXMuX2ludmFsaWRhdGVkPSEwKX1yZW5kZXJlcigpe3RoaXMuX2ludmFsaWRhdGVkJiYodGhpcy5fdXBkYXRlVmlld0ludGVybmFsKCksdGhpcy5faW52YWxpZGF0ZWQ9ITEpO2NvbnN0IGU9bmV3IGEuQ29tcG9zaXRlUmVuZGVyZXI7Zm9yKGNvbnN0IHQgb2YgdGhpcy5fZGF0YSl7Y29uc3QgaT1uZXcgbC5UcmVuZExpbmVSZW5kZXJlcjtpLnNldERhdGEodCksaS5zZXRIaXRUZXN0KHRoaXMuX2hpdFRlc3RSZXN1bHQpLGUuYXBwZW5kKGkpfXJldHVybiBlfV91cGRhdGVWaWV3SW50ZXJuYWwoKXt0aGlzLl9kYXRhPVtdO2NvbnN0IGU9dGhpcy5fcHJvdmlkZXIucHJpY2VTY2FsZSgpLHQ9dGhpcy5fbW9kZWwudGltZVNjYWxlKCkKO2lmKCFlfHxlLmlzRW1wdHkoKXx8dC5pc0VtcHR5KCkpcmV0dXJuO2NvbnN0IGk9dGhpcy5fcHJvdmlkZXIuZ3JhcGhpY3MoKS5saW5lcygpO2lmKDA9PT1pLnNpemUpcmV0dXJuO2NvbnN0IG89dC52aXNpYmxlQmFyc1N0cmljdFJhbmdlKCk7aWYobnVsbD09PW8pcmV0dXJuO2NvbnN0IGE9dGhpcy5fcHJvdmlkZXIuZmlyc3RWYWx1ZSgpO2lmKG51bGw9PT1hKXJldHVybjtjb25zdCBsPW8uZmlyc3RCYXIoKSxkPW8ubGFzdEJhcigpLGg9KDAsci5lbnN1cmVEZWZpbmVkKSh0aGlzLl9wcm92aWRlci5wcm9wZXJ0aWVzKCkuY2hpbGRzKCkuZ3JhcGhpY3MuY2hpbGRzKCkubGluZXMpO2kuZm9yRWFjaCgoKGksbyk9Pntjb25zdCBjPSgwLHIuZW5zdXJlRGVmaW5lZCkoaC5jaGlsZHMoKVtvXSkuY2hpbGRzKCk7Yy52aXNpYmxlLnZhbHVlKCkmJmkuZm9yRWFjaCgoaT0+e2NvbnN0IG89aS5zdGFydEluZGV4KyhpLnN0YXJ0T2Zmc2V0fHwwKSxoPWkuZW5kSW5kZXgrKGkuZW5kT2Zmc2V0fHwwKTtpZihNYXRoLm1heChvLGgpPGx8fE1hdGgubWluKG8saCk+ZClyZXR1cm47Y29uc3QgdT10LmluZGV4VG9Db29yZGluYXRlKG8pLGY9dC5pbmRleFRvQ29vcmRpbmF0ZShoKSxwPWUucHJpY2VUb0Nvb3JkaW5hdGUoKDAsci5lbnN1cmVEZWZpbmVkKShpLnN0YXJ0UHJpY2UpLGEpLGc9ZS5wcmljZVRvQ29vcmRpbmF0ZSgoMCxyLmVuc3VyZURlZmluZWQpKGkuZW5kUHJpY2UpLGEpLF89bmV3IG4uUG9pbnQodSxwKSx4PW5ldyBuLlBvaW50KGYsZyk7dGhpcy5fZGF0YS5wdXNoKHtwb2ludHM6W18seF0sZXh0ZW5kbGVmdDohMSxleHRlbmRyaWdodDohMSxsZWZ0ZW5kOnMuTGluZUVuZC5Ob3JtYWwscmlnaHRlbmQ6cy5MaW5lRW5kLk5vcm1hbCxjb2xvcjpjLmNvbG9yLnZhbHVlKCksbGluZXdpZHRoOmMud2lkdGgudmFsdWUoKSxsaW5lc3R5bGU6Yy5zdHlsZS52YWx1ZSgpfSl9KSl9KSl9fX0sNDkzNjgxKGUsdCxpKXtpLnIodCksaS5kKHQse1BvbHlnb25QYW5lVmlldzooKT0+ZH0pO3ZhciByPWkoMTM4NjM4KSxuPWkoNzM2NTMxKSxvPWkoNzYzKSxhPWkoNzg5MTkwKSxzPWkoMjYwNjkpLGw9aSg4ODA3NjEpO2NsYXNzIGR7Y29uc3RydWN0b3IoZSx0LGkpe3RoaXMuX2RhdGE9W10sdGhpcy5faW52YWxpZGF0ZWQ9ITAsdGhpcy5fcHJvdmlkZXI9ZSx0aGlzLl9tb2RlbD10LHRoaXMuX2hpdFRlc3RSZXN1bHQ9dm9pZCAwIT09aT9uZXcgby5IaXRUZXN0UmVzdWx0KG8uSGl0VGFyZ2V0LkN1c3RvbSxpKTpuZXcgby5IaXRUZXN0UmVzdWx0KG8uSGl0VGFyZ2V0LlJlZ3VsYXIpfXVwZGF0ZShlKXsiaG92ZXItY2hhbmdlIiE9PWUudHlwZSYmKHRoaXMuX2ludmFsaWRhdGVkPSEwKX1yZW5kZXJlcigpe3RoaXMuX2ludmFsaWRhdGVkJiYodGhpcy5fdXBkYXRlVmlld0ludGVybmFsKCksdGhpcy5faW52YWxpZGF0ZWQ9ITEpO2NvbnN0IGU9bmV3IGEuQ29tcG9zaXRlUmVuZGVyZXI7Zm9yKGNvbnN0IHQgb2YgdGhpcy5fZGF0YSl7Y29uc3QgaT1uZXcgbC5Qb2x5Z29uUmVuZGVyZXIodGhpcy5faGl0VGVzdFJlc3VsdCk7aS5zZXREYXRhKHQpLGUuYXBwZW5kKGkpfXJldHVybiBlfV91cGRhdGVWaWV3SW50ZXJuYWwoKXt0aGlzLl9kYXRhPVtdO2NvbnN0IGU9dGhpcy5fcHJvdmlkZXIucHJpY2VTY2FsZSgpLHQ9dGhpcy5fbW9kZWwudGltZVNjYWxlKCk7aWYoIWV8fGUuaXNFbXB0eSgpfHx0LmlzRW1wdHkoKSlyZXR1cm47Y29uc3QgaT10aGlzLl9wcm92aWRlci5ncmFwaGljcygpLnBvbHlnb25zKCk7aWYoMD09PWkuc2l6ZSlyZXR1cm47Y29uc3Qgbz10LnZpc2libGVCYXJzU3RyaWN0UmFuZ2UoKTtpZihudWxsPT09bylyZXR1cm47Y29uc3QgYT10aGlzLl9wcm92aWRlci5maXJzdFZhbHVlKCk7aWYobnVsbD09PWEpcmV0dXJuO2NvbnN0IGw9by5maXJzdEJhcigpLGQ9by5sYXN0QmFyKCksaD0oMCxyLmVuc3VyZURlZmluZWQpKHRoaXMuX3Byb3ZpZGVyLnByb3BlcnRpZXMoKS5jaGlsZHMoKS5ncmFwaGljcy5jaGlsZHMoKS5wb2x5Z29ucyksYz0oMCxyLmVuc3VyZURlZmluZWQpKHRoaXMuX3Byb3ZpZGVyLmdyYXBoaWNzSW5mbygpLnBvbHlnb25zKTtpLmZvckVhY2goKChpLG8pPT57Y29uc3QgdT0oMCxyLmVuc3VyZURlZmluZWQpKGguY2hpbGRzKClbb10pLmNoaWxkcygpLGY9KDAsci5lbnN1cmVEZWZpbmVkKShjW29dKTsxMDAhPT11LnRyYW5zcGFyZW5jeS52YWx1ZSgpJiZpLmZvckVhY2goKGk9PntsZXQgbz0xLzAsaD0tMS8wO2Zvcihjb25zdCBlIG9mIGkucG9pbnRzKXtjb25zdCB0PWUuaW5kZXgrKGUub2Zmc2V0fHwwKTtvPU1hdGgubWluKG8sdCksaD1NYXRoLm1heChoLHQpfWlmKGg8bHx8ZDxvKXJldHVybjtjb25zdCBjPWkucG9pbnRzLm1hcCgoaT0+e2NvbnN0IG89dC5pbmRleFRvQ29vcmRpbmF0ZShpLmluZGV4KyhpLm9mZnNldHx8MCkpLHM9ZS5wcmljZVRvQ29vcmRpbmF0ZSgoMCxyLmVuc3VyZURlZmluZWQpKGkubGV2ZWwpLGEpO3JldHVybiBuZXcgbi5Qb2ludChvLHMpfSkpO3RoaXMuX2RhdGEucHVzaCh7cG9pbnRzOmMsY29sb3I6dS5jb2xvci52YWx1ZSgpLGJhY2tjb2xvcjp1LmNvbG9yLnZhbHVlKCksbGluZXdpZHRoOmYuc2hvd0JvcmRlcj8xOjAsbGluZXN0eWxlOnMuTElORVNUWUxFX1NPTElELGZpbGxlZDohMCxmaWxsQmFja2dyb3VuZDohMCx0cmFuc3BhcmVuY3k6dS50cmFuc3BhcmVuY3kudmFsdWUoKSxkaXNhYmxlSW50ZXJhY3Rpb25zOiFmLm1vdXNlVG91Y2hhYmxlfSl9KSl9KSl9fX0sNjkwMTgzKGUsdCxpKXtpLnIodCksaS5kKHQse1NoYXBlTWFya1BhbmVWaWV3OigpPT54fSk7dmFyIHI9aSgxMzg2MzgpLG49aSg3MzY1MzEpLG89aSg2ODc1OTApLGE9aSg5NjA0NjQpLHM9aSg3ODkxOTApLGw9aSg3NjgzMDUpLGQ9aSg3NjMpLGg9aSgxNTEyMSk7Y2xhc3MgY3tjb25zdHJ1Y3RvcihlKXt0aGlzLl9kYXRhPWV9ZHJhdyhlLHQpe2NvbnN0IGk9ImRvd24iPT09dGhpcy5fZGF0YS5kaXJlY3Rpb24/MToidXAiPT09dGhpcy5fZGF0YS5kaXJlY3Rpb24/LTE6MCxyPXRoaXMuX2RhdGEucG9pbnQueCxuPXRoaXMuX2RhdGEucG9pbnQueTsoMCwKaC5kcmF3U2NhbGVkKShlLHQuaG9yaXpvbnRhbFBpeGVsUmF0aW8sdC52ZXJ0aWNhbFBpeGVsUmF0aW8sKCgpPT57ZS5maWxsU3R5bGU9dGhpcy5fZGF0YS5jb2xvcixlLmJlZ2luUGF0aCgpLGUuYXJjKHIrMSxuKzIqdGhpcy5fZGF0YS5zaXplKmksdGhpcy5fZGF0YS5zaXplLDAsMipNYXRoLlBJKSxlLmNsb3NlUGF0aCgpLGUuZmlsbCgpLGUuc3Ryb2tlKCl9KSl9aGl0VGVzdChlKXtjb25zdCB0PSJkb3duIj09PXRoaXMuX2RhdGEuZGlyZWN0aW9uPzE6InVwIj09PXRoaXMuX2RhdGEuZGlyZWN0aW9uPy0xOjAsaT1uZXcgbi5Qb2ludCh0aGlzLl9kYXRhLnBvaW50LngrLjUsdGhpcy5fZGF0YS5wb2ludC55Ky41KzIqdGhpcy5fZGF0YS5zaXplKnQpO3JldHVybigwLGwucG9pbnRJbkNpcmNsZSkoZSxpLHRoaXMuX2RhdGEuc2l6ZSk/bmV3IGQuSGl0VGVzdFJlc3VsdChkLkhpdFRhcmdldC5SZWd1bGFyKTpudWxsfX1jbGFzcyB1e2NvbnN0cnVjdG9yKGUpe3RoaXMuX2RhdGE9ZX1kcmF3KGUsdCl7Y29uc3QgaT0iZG93biI9PT10aGlzLl9kYXRhLmRpcmVjdGlvbj8xOiJ1cCI9PT10aGlzLl9kYXRhLmRpcmVjdGlvbj8tMTowLHI9dGhpcy5fZGF0YS5zaXplLG89bmV3IG4uUG9pbnQodGhpcy5fZGF0YS5wb2ludC54LXIvMix0aGlzLl9kYXRhLnBvaW50Lnktci8yK2kqciksYT1uZXcgbi5Qb2ludCh0aGlzLl9kYXRhLnBvaW50Lngrci8yLHRoaXMuX2RhdGEucG9pbnQueStyLzIraSpyKS5zdWJ0cmFjdChvKSx7aG9yaXpvbnRhbFBpeGVsUmF0aW86cyx2ZXJ0aWNhbFBpeGVsUmF0aW86bH09dCxkPU1hdGgubWF4KDEsTWF0aC5mbG9vcihzKSksaD1kLzIsYz1kJTI/LjU6MCx1PU1hdGgucm91bmQoby54KnMpK2MsZj1NYXRoLnJvdW5kKChvLngrYS54KSpzKStjLHA9TWF0aC5yb3VuZChvLnkqbCkrYyxnPU1hdGgucm91bmQoKG8ueSthLnkpKmwpK2M7ZS5iZWdpblBhdGgoKSxlLmZpbGxTdHlsZT10aGlzLl9kYXRhLmNvbG9yLGUucmVjdCh1K2gscCtoLGYtdS1kLGctcC1kKSxlLmZpbGwoKSxlLmxpbmVXaWR0aD1kLGUuYmVnaW5QYXRoKCksZS5yZWN0KHUscCxmLXUsZy1wKSxlLnN0cm9rZSgpfWhpdFRlc3QoZSl7Y29uc3QgdD0iZG93biI9PT10aGlzLl9kYXRhLmRpcmVjdGlvbj8xOiJ1cCI9PT10aGlzLl9kYXRhLmRpcmVjdGlvbj8tMTowLGk9dGhpcy5fZGF0YS5zaXplLHI9bmV3IG4uUG9pbnQodGhpcy5fZGF0YS5wb2ludC54LWkvMix0aGlzLl9kYXRhLnBvaW50LnktaS8yK3QqaSksbz1uZXcgbi5Qb2ludCh0aGlzLl9kYXRhLnBvaW50LngraS8yLHRoaXMuX2RhdGEucG9pbnQueStpLzIrdCppKTtyZXR1cm4oMCxsLnBvaW50SW5Cb3gpKGUsKDAsbi5ib3gpKHIsbykpP25ldyBkLkhpdFRlc3RSZXN1bHQoZC5IaXRUYXJnZXQuUmVndWxhcik6bnVsbH19Y2xhc3MgZntjb25zdHJ1Y3RvcihlLHQpe3RoaXMuX2RhdGE9ZSx0aGlzLl9hcnJvd0RpcmVjdGlvbj10fWRyYXcoZSx0KXtjb25zdCBpPXRoaXMuX2Fycm93RGlyZWN0aW9uLHI9dGhpcy5fZGF0YS5zaXplLG49dGhpcy5fZGF0YS5jb2xvcixvPXRoaXMuX2RhdGEucG9pbnQueCsxO2xldCBhPXRoaXMuX2RhdGEucG9pbnQueTtjb25zdCBzPTEuMSpyO3N3aXRjaChpKXtjYXNlInVwIjphLT1zO2JyZWFrO2Nhc2UiZG93biI6YSs9c31jb25zdCBsPXIvNixkPXIvNCxjPXIvMyx1PXIvMixmPS42NjY2NjY2KnI7KDAsaC5kcmF3U2NhbGVkKShlLHQuaG9yaXpvbnRhbFBpeGVsUmF0aW8sdC52ZXJ0aWNhbFBpeGVsUmF0aW8sKCgpPT57c3dpdGNoKGUuZmlsbFN0eWxlPW4sZS5iZWdpblBhdGgoKSxpKXtjYXNlInVwIjplLm1vdmVUbyhvLGEpLGUubGluZVRvKG8tdSxhK2YpLGUubGluZVRvKG8tZCxhK2YpLGUubGluZVRvKG8sYStjKSxlLmxpbmVUbyhvK2QsYStmKSxlLmxpbmVUbyhvK3UsYStmKSxlLmxpbmVUbyhvLGEpO2JyZWFrO2Nhc2UiZG93biI6ZS5tb3ZlVG8obyxhK3IpLGUubGluZVRvKG8tdSxhK2MpLGUubGluZVRvKG8tZCxhK2MpLGUubGluZVRvKG8sYStmKSxlLmxpbmVUbyhvK2QsYStjKSxlLmxpbmVUbyhvK3UsYStjKSxlLmxpbmVUbyhvLGErcik7YnJlYWs7Y2FzZSJyaWdodCI6ZS5tb3ZlVG8obytsLGEpLGUubGluZVRvKG8tbCxhLWQpLGUubGluZVRvKG8tbCxhK2QpLGUubGluZVRvKG8rbCxhKTticmVhaztjYXNlImxlZnQiOmUubW92ZVRvKG8tbCxhKSxlLmxpbmVUbyhvK2wsYS1kKSxlLmxpbmVUbyhvK2wsYStkKSxlLmxpbmVUbyhvLWwsYSl9ZS5jbG9zZVBhdGgoKSxlLmZpbGwoKSxlLnN0cm9rZSgpfSkpfWhpdFRlc3QoZSl7Y29uc3RbdCxpLHJdPXRoaXMuX2hpdFRyaWFuZ2xlKCk7cmV0dXJuKDAsbC5wb2ludEluVHJpYW5nbGUpKGUsdCxpLHIpP25ldyBkLkhpdFRlc3RSZXN1bHQoZC5IaXRUYXJnZXQuUmVndWxhcik6bnVsbH1faGl0VHJpYW5nbGUoKXtjb25zdCBlPXRoaXMuX2RhdGEucG9pbnQueDtsZXQgdD10aGlzLl9kYXRhLnBvaW50Lnk7Y29uc3QgaT10aGlzLl9hcnJvd0RpcmVjdGlvbixyPXRoaXMuX2RhdGEuc2l6ZSxvPTEuMSpyO3N3aXRjaChpKXtjYXNlInVwIjp0LT1vO2JyZWFrO2Nhc2UiZG93biI6dCs9b31jb25zdCBhPXIvNixzPXIvNCxsPXIvMyxkPXIvMixoPS42NjY2NjY2KnI7c3dpdGNoKGkpe2Nhc2UidXAiOnJldHVybltuZXcgbi5Qb2ludChlLHQpLG5ldyBuLlBvaW50KGUrZCx0K2gpLG5ldyBuLlBvaW50KGUtZCx0K2gpXTtjYXNlImRvd24iOnJldHVybltuZXcgbi5Qb2ludChlLHQrciksbmV3IG4uUG9pbnQoZStkLHQrbCksbmV3IG4uUG9pbnQoZS1kLHQrbCldO2Nhc2UicmlnaHQiOnJldHVybltuZXcgbi5Qb2ludChlK2EsdCksbmV3IG4uUG9pbnQoZS1hLHQtcyksbmV3IG4uUG9pbnQoZS1hLHQrcyldO2Nhc2UibGVmdCI6cmV0dXJuW25ldyBuLlBvaW50KGUtYSx0KSxuZXcgbi5Qb2ludChlK2EsdC1zKSxuZXcgbi5Qb2ludChlK2EsdCtzKV19fX12YXIgcD1pKDE1OTcxMCksZz1pKDg3MzU3Myk7Y29uc3QgXz0oMCxpKDIyMTA2MSkuZ2V0TG9nZ2VyKSgiQ2hhcnQuU2hhcGVNYXJrUGFuZVZpZXciKTtjbGFzcyB4IGV4dGVuZHMgcC5Mb2NhdGlvblRvWU1peGlue2NvbnN0cnVjdG9yKGUsdCxpKXsKc3VwZXIoKSx0aGlzLl9kYXRhPVtdLHRoaXMuX2ludmFsaWRhdGVkPSEwLHRoaXMuX3Byb3ZpZGVyPWUsdGhpcy5fbW9kZWw9dCx0aGlzLl9kYXRhPVtdfXVwZGF0ZShlKXsiaG92ZXItY2hhbmdlIiE9PWUudHlwZSYmKHRoaXMuX2ludmFsaWRhdGVkPSEwKX1yZW5kZXJlcigpe3RoaXMuX2ludmFsaWRhdGVkJiYodGhpcy5fdXBkYXRlVmlld0ludGVybmFsKCksdGhpcy5faW52YWxpZGF0ZWQ9ITEpO2NvbnN0IGU9bmV3IHMuQ29tcG9zaXRlUmVuZGVyZXI7Zm9yKGNvbnN0IHQgb2YgdGhpcy5fZGF0YSlzd2l0Y2godC5zaGFwZSl7Y2FzZSJjaXJjbGUiOmUuYXBwZW5kKG5ldyBjKHQpKTticmVhaztjYXNlInNxdWFyZSI6ZS5hcHBlbmQobmV3IHUodCkpO2JyZWFrO2Nhc2UiYXJyb3dVcCI6ZS5hcHBlbmQobmV3IGYodCwidXAiKSk7YnJlYWs7Y2FzZSJhcnJvd0Rvd24iOmUuYXBwZW5kKG5ldyBmKHQsImRvd24iKSk7YnJlYWs7Y2FzZSJhcnJvd1JpZ2h0IjplLmFwcGVuZChuZXcgZih0LCJyaWdodCIpKTticmVhaztjYXNlImFycm93TGVmdCI6ZS5hcHBlbmQobmV3IGYodCwibGVmdCIpKX1yZXR1cm4gZX1fdXBkYXRlVmlld0ludGVybmFsKCl7dGhpcy5fZGF0YT1bXTtjb25zdCBlPXRoaXMuX3Byb3ZpZGVyLnByaWNlU2NhbGUoKSx0PXRoaXMuX21vZGVsLnRpbWVTY2FsZSgpO2lmKCFlfHxlLmlzRW1wdHkoKXx8dC5pc0VtcHR5KCkpcmV0dXJuO2NvbnN0IGk9dGhpcy5fcHJvdmlkZXIuZ3JhcGhpY3MoKS5zaGFwZW1hcmtzKCk7aWYoMD09PWkuc2l6ZSlyZXR1cm47Y29uc3QgYT10LnZpc2libGVCYXJzU3RyaWN0UmFuZ2UoKTtpZihudWxsPT09YSlyZXR1cm47Y29uc3Qgcz10aGlzLl9wcm92aWRlci5maXJzdFZhbHVlKCk7aWYobnVsbD09PXMpcmV0dXJuO2NvbnN0IGw9YS5maXJzdEJhcigpLGQ9YS5sYXN0QmFyKCksaD0oMCxyLmVuc3VyZURlZmluZWQpKHRoaXMuX3Byb3ZpZGVyLnByb3BlcnRpZXMoKS5jaGlsZHMoKS5ncmFwaGljcy5jaGlsZHMoKS5zaGFwZW1hcmtzKSxjPSgwLHIuZW5zdXJlRGVmaW5lZCkodGhpcy5fcHJvdmlkZXIuZ3JhcGhpY3NJbmZvKCkuc2hhcGVtYXJrcyk7aS5mb3JFYWNoKCgoaSxhKT0+e2NvbnN0IHU9KDAsci5lbnN1cmVEZWZpbmVkKShoLmNoaWxkcygpW2FdKS5jaGlsZHMoKSxmPSgwLHIuZW5zdXJlRGVmaW5lZCkoY1thXSk7dS52aXNpYmxlLnZhbHVlKCkmJmkuZm9yRWFjaCgoaT0+e2NvbnN0IHI9aS50aW1lO2lmKHI8bHx8ZDxyKXJldHVybjtpZihudWxsPT09dGhpcy5fcHJvdmlkZXIuc2VyaWVzKCkuYmFycygpLnZhbHVlQXQocikpcmV0dXJuO2NvbnN0IGE9Zi5sb2NhdGlvbixoPWYuc2hhcGUsYz11LnNpemUudmFsdWUoKSxwPSgwLGcuZ2VuZXJhdGVDb2xvcikodS5jb2xvci52YWx1ZSgpLHUudHJhbnNwYXJlbmN5LnZhbHVlKCkpLHtjZW50ZXI6XyxsZWZ0OngscmlnaHQ6dyx5OnYsZGlyZWN0aW9uOm19PXRoaXMuX2NhbGNDb29yZHNGb3JTaGFwZShhLHIsYyxpLnByaWNlLHMsZSx0KTtsZXQgeTtzd2l0Y2goZi5oYWxpZ24pe2Nhc2Ugby5IQWxpZ24uTGVmdDp5PXg7YnJlYWs7Y2FzZSBvLkhBbGlnbi5SaWdodDp5PXc7YnJlYWs7Y2FzZSBvLkhBbGlnbi5DZW50ZXI6eT1ffXN3aXRjaChoKXtjYXNlImNpcmNsZSI6Y2FzZSJzcXVhcmUiOnRoaXMuX2RhdGEucHVzaCh7c2hhcGU6aCxjb2xvcjpwLGRpcmVjdGlvbjptLHBvaW50Om5ldyBuLlBvaW50KHksdiksc2l6ZTpjfSk7YnJlYWs7Y2FzZSJhcnJvd1VwIjpjYXNlImFycm93RG93biI6Y2FzZSJhcnJvd1JpZ2h0IjpjYXNlImFycm93TGVmdCI6dGhpcy5fZGF0YS5wdXNoKHtzaGFwZTpoLGNvbG9yOnAscG9pbnQ6bmV3IG4uUG9pbnQoeSx2KSxzaXplOmN9KX19KSl9KSl9X2NhbGNDb29yZHNGb3JTaGFwZShlLHQsaSxuLG8scyxsKXtjb25zdCBkPWwuYmFyQm9yZGVycyh0KTtzd2l0Y2goZSl7Y2FzZSBhLk1hcmtMb2NhdGlvbi5BYnNvbHV0ZTpyZXR1cm57Li4uZCx5OnMucHJpY2VUb0Nvb3JkaW5hdGUoKDAsci5lbnN1cmVEZWZpbmVkKShuKSxvKSxkaXJlY3Rpb246IiJ9O2Nhc2UgYS5NYXJrTG9jYXRpb24uQWJzb2x1dGVEb3duOnJldHVybnsuLi5kLHk6cy5wcmljZVRvQ29vcmRpbmF0ZSgoMCxyLmVuc3VyZURlZmluZWQpKG4pLG8pLGRpcmVjdGlvbjoiZG93biJ9O2Nhc2UgYS5NYXJrTG9jYXRpb24uQWJzb2x1dGVVcDpyZXR1cm57Li4uZCx5OnMucHJpY2VUb0Nvb3JkaW5hdGUoKDAsci5lbnN1cmVEZWZpbmVkKShuKSxvKSxkaXJlY3Rpb246InVwIn07Y2FzZSBhLk1hcmtMb2NhdGlvbi5BYm92ZUJhcjpyZXR1cm57Li4uZCx5OnRoaXMuX2xvY2F0aW9uVG9ZKGUsdCxNYXRoLmZsb29yKDIqaS9sLmJhclNwYWNpbmcoKSkrMSksZGlyZWN0aW9uOiJ1cCJ9O2Nhc2UgYS5NYXJrTG9jYXRpb24uQmVsb3dCYXI6cmV0dXJuey4uLmQseTp0aGlzLl9sb2NhdGlvblRvWShlLHQsTWF0aC5mbG9vcigyKmkvbC5iYXJTcGFjaW5nKCkpKzEpLGRpcmVjdGlvbjoiZG93biJ9O2RlZmF1bHQ6cmV0dXJuIF8ubG9nV2FybigiQmFkIGxvY2F0aW9uIHZhbHVlOiAiK2UpLHsuLi5kLHk6TmFOLGRpcmVjdGlvbjoidXAifX19fX0sODY3NzE3KGUsdCxpKXtpLnIodCksaS5kKHQse1RleHRNYXJrUGFuZVZpZXc6KCk9Pnh9KTt2YXIgcj1pKDEzODYzOCksbj1pKDczNjUzMSksbz1pKDQ1NTE4OCksYT1pKDk2MDQ2NCkscz1pKDc4OTE5MCksbD1pKDc2ODMwNSksZD1pKDc2MyksaD1pKDE1MTIxKSxjPWkoOTY5MTY4KTtjbGFzcyB1e2NvbnN0cnVjdG9yKGUsdCl7dGhpcy5fZGF0YT1lLHRoaXMuX3RleHRDYWNoZT10fWRyYXcoZSx0KXtpZighdGhpcy5fZGF0YSlyZXR1cm47Y29uc3QgaT1mKHRoaXMuX2RhdGEuZGlyZWN0aW9uKTtsZXQgcj10aGlzLl9kYXRhLnBvaW50Lng7ImxlZnQiPT09dGhpcy5fZGF0YS5oYWxpZ24/ci09dGhpcy5fZGF0YS5zaXplOiJyaWdodCI9PT10aGlzLl9kYXRhLmhhbGlnbiYmKHIrPXRoaXMuX2RhdGEuc2l6ZSk7Y29uc3Qgbj10aGlzLl9kYXRhLnBvaW50Lnk7ZS5mb250PXRoaXMuX2ZvbnRTdHlsZSgpO2NvbnN0IG89ZS5tZWFzdXJlVGV4dCh0aGlzLl9kYXRhLnRleHQpLndpZHRoCjt0aGlzLl90ZXh0Q2FjaGUudGV4dFdpZHRoPW87Y29uc3QgYT10aGlzLl9kYXRhLmZvbnRTaXplO2UudGV4dEFsaWduPSgwLGMuaXNSdGwpKCk/InJpZ2h0IjoibGVmdCI7Y29uc3Qgcz0oMCxoLmNhbGNUZXh0SG9yaXpvbnRhbFNoaWZ0KShlLG8pLGw9LjY1KmEsZD0xKmE7KDAsaC5kcmF3U2NhbGVkKShlLHQuaG9yaXpvbnRhbFBpeGVsUmF0aW8sdC52ZXJ0aWNhbFBpeGVsUmF0aW8sKCgpPT57ZS50cmFuc2xhdGUocixuKSxlLmJlZ2luUGF0aCgpLGUubW92ZVRvKDAsMCksZS5saW5lVG8obCxkKmkpLGUubGluZVRvKC41Km8rbCxkKmkpLGUubGluZVRvKC41Km8rbCwoZCsxLjc1KmEpKmkpLGUubGluZVRvKC41Ki1vLWwsKGQrMS43NSphKSppKSxlLmxpbmVUbyguNSotby1sLGQqaSksZS5saW5lVG8oLWwsZCppKSxlLmxpbmVUbygwLDApLGUuc3Ryb2tlU3R5bGU9dGhpcy5fZGF0YS5ib3JkZXJDb2xvcixlLnN0cm9rZSgpLGUuZmlsbFN0eWxlPXRoaXMuX2RhdGEuY29sb3IsZS5maWxsKCksZS5maWxsU3R5bGU9dGhpcy5fZGF0YS5mb250Q29sb3IsZS5maWxsVGV4dCh0aGlzLl9kYXRhLnRleHQsLjUqLW8rcyxpPDA/aSpkLS41KmE6ZCsxLjI1KmEpfSkpfWhpdFRlc3QoZSl7Y29uc3QgdD10aGlzLl90ZXh0Q2FjaGUudGV4dFdpZHRofHwwLGk9dGhpcy5fZGF0YS5mb250U2l6ZSxyPWYodGhpcy5fZGF0YS5kaXJlY3Rpb24pLG89LjY1KmksYT0xKmk7bGV0IHM9dGhpcy5fZGF0YS5wb2ludC54OyJsZWZ0Ij09PXRoaXMuX2RhdGEuaGFsaWduP3MtPXRoaXMuX2RhdGEuc2l6ZToicmlnaHQiPT09dGhpcy5fZGF0YS5oYWxpZ24mJihzKz10aGlzLl9kYXRhLnNpemUpO2NvbnN0IGg9dGhpcy5fZGF0YS5wb2ludC55LGM9cy0uNSp0LW8sdT1zKy41KnQrbztsZXQgcD1oK2EqcixnPWgrKGErMS43NSppKSpyO2lmKGc8cCl7Y29uc3QgZT1wO3A9ZyxnPWV9aWYoKDAsbC5wb2ludEluQm94KShlLCgwLG4uYm94KShuZXcgbi5Qb2ludChjLHApLG5ldyBuLlBvaW50KHUsZykpKSlyZXR1cm4gbmV3IGQuSGl0VGVzdFJlc3VsdChkLkhpdFRhcmdldC5SZWd1bGFyKTtjb25zdCBfPVtuZXcgbi5Qb2ludCh0aGlzLl9kYXRhLnBvaW50LngsdGhpcy5fZGF0YS5wb2ludC55KSxuZXcgbi5Qb2ludCh0aGlzLl9kYXRhLnBvaW50LngrLjY1KmksdGhpcy5fZGF0YS5wb2ludC55K2kqciksbmV3IG4uUG9pbnQodGhpcy5fZGF0YS5wb2ludC54LS42NSppLHRoaXMuX2RhdGEucG9pbnQueStpKnIpXSx4PShlLngtX1swXS54KSooX1sxXS55LV9bMF0ueSktKGUueS1fWzBdLnkpKihfWzFdLngtX1swXS54KTtyZXR1cm4oKGUueC1fWzFdLngpKihfWzJdLnktX1sxXS55KS0oZS55LV9bMV0ueSkqKF9bMl0ueC1fWzFdLngpKSp4PjAmJigoZS54LV9bMl0ueCkqKF9bMF0ueS1fWzJdLnkpLShlLnktX1syXS55KSooX1swXS54LV9bMl0ueCkpKng+MD9uZXcgZC5IaXRUZXN0UmVzdWx0KGQuSGl0VGFyZ2V0LlJlZ3VsYXIpOm51bGx9X2ZvbnRTdHlsZSgpe3JldHVybih0aGlzLl9kYXRhLmJvbGQ/ImJvbGQgIjoiIikrKHRoaXMuX2RhdGEuaXRhbGljPyJpdGFsaWMgIjoiIikrYCR7dGhpcy5fZGF0YS5mb250U2l6ZX1weCAke3RoaXMuX2RhdGEuZm9udH1gfX1mdW5jdGlvbiBmKGUpe2lmKCJ1cCI9PT1lKXJldHVybiAxO2lmKCJkb3duIj09PWUpcmV0dXJuLTE7dGhyb3cgbmV3IEVycm9yKGAke2V9IGlzIG5vdCBzdXBwb3J0ZWQgYnkgVHJpYW5nbGVUZXh0TWFya1JlbmRlcmVyYCl9Y2xhc3MgcHtjb25zdHJ1Y3RvcihlLHQpe3RoaXMuX2RhdGE9ZSx0aGlzLl90ZXh0Q2FjaGU9dH1kcmF3KGUsdCl7Y29uc3QgaT10aGlzLl9kYXRhLnBvaW50Lngscj10aGlzLl9kYXRhLnBvaW50Lnk7ZS5mb250PXRoaXMuX2ZvbnRTdHlsZSgpO2NvbnN0IG49ZS5tZWFzdXJlVGV4dCh0aGlzLl9kYXRhLnRleHQpLndpZHRoO3RoaXMuX3RleHRDYWNoZS50ZXh0V2lkdGg9biwoMCxoLmRyYXdTY2FsZWQpKGUsdC5ob3Jpem9udGFsUGl4ZWxSYXRpbyx0LnZlcnRpY2FsUGl4ZWxSYXRpbywoKCk9Pntzd2l0Y2goZS50cmFuc2xhdGUoaSxyKSxlLmJlZ2luUGF0aCgpLGUubW92ZVRvKDAsMCksZS50ZXh0QWxpZ249dGhpcy5fZGF0YS5oYWxpZ24sdGhpcy5fZGF0YS52YWxpZ24pe2Nhc2UibWlkZGxlIjplLnRleHRCYXNlbGluZT0ibWlkZGxlIjticmVhaztjYXNlInRvcCI6ZS50ZXh0QmFzZWxpbmU9ImJvdHRvbSI7YnJlYWs7Y2FzZSJib3R0b20iOmUudGV4dEJhc2VsaW5lPSJoYW5naW5nIn1lLmZpbGxTdHlsZT10aGlzLl9kYXRhLmZvbnRDb2xvcixlLmZpbGxUZXh0KHRoaXMuX2RhdGEudGV4dCwwLDApfSkpfWhpdFRlc3QoZSl7bGV0IHQ9dGhpcy5fZGF0YS5wb2ludC54LGk9dGhpcy5fZGF0YS5wb2ludC55O2NvbnN0IHI9dGhpcy5fdGV4dENhY2hlLnRleHRXaWR0aHx8MCxvPXRoaXMuX2RhdGEuZm9udFNpemU7c3dpdGNoKHRoaXMuX2RhdGEuaGFsaWduKXtjYXNlInJpZ2h0Ijp0LT1yO2JyZWFrO2Nhc2UiY2VudGVyIjp0LT1yLzJ9c3dpdGNoKHRoaXMuX2RhdGEudmFsaWduKXtjYXNlIm1pZGRsZSI6aS09by8yO2JyZWFrO2Nhc2UiYm90dG9tIjppLT1vfWNvbnN0IGE9bmV3IG4uUG9pbnQodCxpKSxzPW5ldyBuLlBvaW50KHQrcixpK28pO3JldHVybigwLGwucG9pbnRJbkJveCkoZSwoMCxuLmJveCkoYSxzKSk/bmV3IGQuSGl0VGVzdFJlc3VsdChkLkhpdFRhcmdldC5SZWd1bGFyKTpudWxsfV9mb250U3R5bGUoKXtyZXR1cm4odGhpcy5fZGF0YS5ib2xkPyJib2xkICI6IiIpKyh0aGlzLl9kYXRhLml0YWxpYz8iaXRhbGljICI6IiIpK2Ake3RoaXMuX2RhdGEuZm9udFNpemV9cHggJHt0aGlzLl9kYXRhLmZvbnR9YH19dmFyIGc9aSgxNTk3MTApLF89aSg4NzM1NzMpO2NsYXNzIHggZXh0ZW5kcyBnLkxvY2F0aW9uVG9ZTWl4aW57Y29uc3RydWN0b3IoZSx0LGkpe3N1cGVyKCksdGhpcy5fZGF0YT1bXSx0aGlzLl90ZXh0Q2FjaGU9W10sdGhpcy5faW52YWxpZGF0ZWQ9ITAsdGhpcy5fcHJvdmlkZXI9ZSx0aGlzLl9tb2RlbD10fXVwZGF0ZShlKXsiaG92ZXItY2hhbmdlIiE9PWUudHlwZSYmKHRoaXMuX2ludmFsaWRhdGVkPSEwKX1yZW5kZXJlcigpewp0aGlzLl9pbnZhbGlkYXRlZCYmKHRoaXMuX3VwZGF0ZVZpZXdJbnRlcm5hbCgpLHRoaXMuX2ludmFsaWRhdGVkPSExKTtjb25zdCBlPW5ldyBzLkNvbXBvc2l0ZVJlbmRlcmVyO2ZvcihsZXQgdD0wO3Q8dGhpcy5fZGF0YS5sZW5ndGg7dCsrKXtjb25zdCBpPXRoaXMuX2RhdGFbdF0scj10aGlzLl90ZXh0Q2FjaGVbdF07c3dpdGNoKGkuc2hhcGUpe2Nhc2UidHJpYW5nbGUiOmUuYXBwZW5kKG5ldyB1KGkscikpO2JyZWFrO2Nhc2UicmVjdGFuZ2xlIjplLmFwcGVuZChuZXcgcChpLHIpKX19cmV0dXJuIGV9X3VwZGF0ZVZpZXdJbnRlcm5hbCgpe3RoaXMuX2RhdGE9W107Y29uc3QgZT10aGlzLl9wcm92aWRlci5wcmljZVNjYWxlKCksdD10aGlzLl9tb2RlbC50aW1lU2NhbGUoKTtpZighZXx8ZS5pc0VtcHR5KCl8fHQuaXNFbXB0eSgpKXJldHVybjtjb25zdCBpPXRoaXMuX3Byb3ZpZGVyLmdyYXBoaWNzKCkudGV4dG1hcmtzKCk7aWYoMD09PWkuc2l6ZSlyZXR1cm47Y29uc3QgYT10LnZpc2libGVCYXJzU3RyaWN0UmFuZ2UoKTtpZihudWxsPT09YSlyZXR1cm47Y29uc3Qgcz10aGlzLl9wcm92aWRlci5maXJzdFZhbHVlKCk7aWYobnVsbD09PXMpcmV0dXJuO2NvbnN0IGw9YS5maXJzdEJhcigpLGQ9YS5sYXN0QmFyKCksaD0oMCxyLmVuc3VyZURlZmluZWQpKHRoaXMuX3Byb3ZpZGVyLnByb3BlcnRpZXMoKS5jaGlsZHMoKS5ncmFwaGljcy5jaGlsZHMoKS50ZXh0bWFya3MpLGM9KDAsci5lbnN1cmVEZWZpbmVkKSh0aGlzLl9wcm92aWRlci5ncmFwaGljc0luZm8oKS50ZXh0bWFya3MpO2kuZm9yRWFjaCgoKGksYSk9Pntjb25zdCB1PSgwLHIuZW5zdXJlRGVmaW5lZCkoaC5jaGlsZHMoKVthXSkuY2hpbGRzKCksZj0oMCxyLmVuc3VyZURlZmluZWQpKGNbYV0pO3UudmlzaWJsZS52YWx1ZSgpJiZpLmZvckVhY2goKGk9PntsZXQgcj1pLnRpbWU7aWYocjxsfHxkPHIpcmV0dXJuO2lmKG51bGw9PT10aGlzLl9wcm92aWRlci5zZXJpZXMoKS5iYXJzKCkudmFsdWVBdChyKSlyZXR1cm47cj1pLnRpbWUrKGkub2Zmc2V0fHwwKTtjb25zdCBhPXt0ZXh0OmkudGV4dD9pLnRleHQ6IiIsYm9sZDp1LmZvbnRCb2xkLnZhbHVlKCksaXRhbGljOnUuZm9udEl0YWxpYy52YWx1ZSgpLGZvbnQ6dS5mb250RmFtaWx5LnZhbHVlKCksZm9udENvbG9yOigwLF8uZ2VuZXJhdGVDb2xvcikodS5mb250Q29sb3IudmFsdWUoKSx1LnRyYW5zcGFyZW5jeS52YWx1ZSgpKSxmb250U2l6ZTp1LmZvbnRTaXplLnZhbHVlKCl9LGg9Zi5sb2NhdGlvbixjPWYuc2hhcGU7c3dpdGNoKGMpe2Nhc2Ugby5UZXh0TWFya1R5cGUuVHJpYW5nbGU6e2NvbnN0e3g6byx5OmwsZGlyZWN0aW9uOmR9PXRoaXMuX2NhbGNDb29yZHNGb3JUcmlhbmdsZVNoYXBlKGgsciw1MCxpLnByaWNlLHMsZSx0KTt0aGlzLl9kYXRhLnB1c2goe3NoYXBlOmMsY29sb3I6KDAsXy5nZW5lcmF0ZUNvbG9yKSh1LmNvbG9yLnZhbHVlKCksdS50cmFuc3BhcmVuY3kudmFsdWUoKSksYm9yZGVyQ29sb3I6InJnYigwLCAwLCAwKSIsZGlyZWN0aW9uOmQscG9pbnQ6bmV3IG4uUG9pbnQobyxsKSxoYWxpZ246Zi5oYWxpZ24sc2l6ZTouNSp0LmJhclNwYWNpbmcoKSwuLi5hfSl9YnJlYWs7Y2FzZSBvLlRleHRNYXJrVHlwZS5SZWN0YW5nbGU6e2NvbnN0e3g6byx5Omx9PXRoaXMuX2NhbGNDb29yZHNGb3JSZWN0YW5nbGVTaGFwZShoLHIsaS5wcmljZSxzLGUsdCk7dGhpcy5fZGF0YS5wdXNoKHtzaGFwZTpjLHBvaW50Om5ldyBuLlBvaW50KG8sbCksaGFsaWduOmYuaGFsaWduLHZhbGlnbjpmLnZhbGlnbj8/Im1pZGRsZSIsLi4uYX0pfX10aGlzLl90ZXh0Q2FjaGUucHVzaCh7fSl9KSl9KSl9X2NhbGNDb29yZHNGb3JUcmlhbmdsZVNoYXBlKGUsdCxpLG4sbyxzLGwpe2NvbnN0IGQ9TWF0aC5yb3VuZChsLmluZGV4VG9Db29yZGluYXRlKHQpKTtzd2l0Y2goZSl7Y2FzZSBhLk1hcmtMb2NhdGlvbi5Ub3A6cmV0dXJue3g6ZCx5OnMuaGVpZ2h0KCktaSxkaXJlY3Rpb246ImRvd24ifTtjYXNlIGEuTWFya0xvY2F0aW9uLkJvdHRvbTpyZXR1cm57eDpkLHk6aSxkaXJlY3Rpb246InVwIn07Y2FzZSBhLk1hcmtMb2NhdGlvbi5BYnNvbHV0ZURvd246cmV0dXJue3g6ZCx5OnMucHJpY2VUb0Nvb3JkaW5hdGUoKDAsci5lbnN1cmVEZWZpbmVkKShuKSxvKSxkaXJlY3Rpb246ImRvd24ifTtjYXNlIGEuTWFya0xvY2F0aW9uLkFic29sdXRlVXA6cmV0dXJue3g6ZCx5OnMucHJpY2VUb0Nvb3JkaW5hdGUoKDAsci5lbnN1cmVEZWZpbmVkKShuKSxvKSxkaXJlY3Rpb246InVwIn07Y2FzZSBhLk1hcmtMb2NhdGlvbi5BYm92ZUJhcjpyZXR1cm57eDpkLHk6dGhpcy5fbG9jYXRpb25Ub1koZSx0KSxkaXJlY3Rpb246ImRvd24ifTtjYXNlIGEuTWFya0xvY2F0aW9uLkJlbG93QmFyOnJldHVybnt4OmQseTp0aGlzLl9sb2NhdGlvblRvWShlLHQpLGRpcmVjdGlvbjoidXAifTtkZWZhdWx0OnJldHVybnt4OmQseTpOYU4sZGlyZWN0aW9uOiJ1cCJ9fX1fY2FsY0Nvb3Jkc0ZvclJlY3RhbmdsZVNoYXBlKGUsdCxpLG4sbyxzKXtjb25zdCBsPU1hdGgucm91bmQocy5pbmRleFRvQ29vcmRpbmF0ZSh0KSk7c3dpdGNoKGUpe2Nhc2UgYS5NYXJrTG9jYXRpb24uQWJzb2x1dGVEb3duOmNhc2UgYS5NYXJrTG9jYXRpb24uQWJzb2x1dGVVcDpjYXNlIGEuTWFya0xvY2F0aW9uLkFic29sdXRlOnJldHVybnt4OmwseTpvLnByaWNlVG9Db29yZGluYXRlKCgwLHIuZW5zdXJlRGVmaW5lZCkoaSksbil9O2Nhc2UgYS5NYXJrTG9jYXRpb24uQWJvdmVCYXI6Y2FzZSBhLk1hcmtMb2NhdGlvbi5CZWxvd0JhcjpyZXR1cm57eDpsLHk6dGhpcy5fbG9jYXRpb25Ub1koZSx0KX07Y2FzZSBhLk1hcmtMb2NhdGlvbi5SaWdodDpjYXNlIGEuTWFya0xvY2F0aW9uLkxlZnQ6cmV0dXJue3g6cy53aWR0aCgpLHk6by5wcmljZVRvQ29vcmRpbmF0ZSgoMCxyLmVuc3VyZURlZmluZWQpKGkpLG4pfTtkZWZhdWx0OnJldHVybnt4OmwseTpOYU59fX19fSw3MDM4MDkoZSx0LGkpe2kuZCh0LHtjYWxjdWxhdGVGb250U2l6ZUZvckJveDooKT0+cCxnZXRGb250U2l6ZTooKT0+Zix0ZXh0Qm94RGF0YTooKT0+dX0pCjt2YXIgcj1pKDIwNjY3Myksbj1pKDczNjUzMSksbz1pKDU4OTUxMSksYT1pKDg4NDI4KSxzPWkoOTI2MTQ5KSxsPWkoMTk4OTAxKSxkPWkoNTkwODk0KSxoPWkoOTQxMTAwKTtjb25zdCBjPW5ldyBNYXA7ZnVuY3Rpb24gdShlLHQsaSxyLG8pe2xldCBsPWUsZD1hLkhvcml6b250YWxBbGlnbi5MZWZ0OyJjZW50ZXIiPT09by5ob3Jpem9udGFsVGV4dEFsaWdubWVudD8oZD1hLkhvcml6b250YWxBbGlnbi5DZW50ZXIsbCs9aS8yKToicmlnaHQiPT09by5ob3Jpem9udGFsVGV4dEFsaWdubWVudCYmKGQ9YS5Ib3Jpem9udGFsQWxpZ24uUmlnaHQsbCs9aS0xKTtsZXQgYz10LHU9YS5WZXJ0aWNhbEFsaWduLlRvcDsiY2VudGVyIj09PW8udmVydGljYWxUZXh0QWxpZ25tZW50Pyh1PWEuVmVydGljYWxBbGlnbi5NaWRkbGUsYys9ci8yKToiYm90dG9tIj09PW8udmVydGljYWxUZXh0QWxpZ25tZW50JiYodT1hLlZlcnRpY2FsQWxpZ24uQm90dG9tLGMrPXItMSk7Y29uc3R7Ym9sZDpwLGl0YWxpYzpnfT0oMCxoLmNvbnZlcnREd2dUZXh0Rm9ybWF0dGluZ1RvT2JqZWN0KShvLnRleHRGb3JtYXR0aW5nKTtyZXR1cm57cG9pbnRzOltuZXcgbi5Qb2ludChsLGMpXSx0ZXh0Om8udGV4dCxjb2xvcjpvLnRleHRDb2xvcixib2xkOnAsaXRhbGljOmcsdmVydEFsaWduOnUsaG9yekFsaWduOmQsZm9udDoibW9ub3NwYWNlIj09PW8uZm9udFR5cGU/cy5DSEFSVF9NT05PU1BBQ0VfRk9OVF9GQU1JTFk6cy5DSEFSVF9GT05UX0ZBTUlMWV9XVi52YWx1ZSgpLGZvbnRTaXplOmYoby5zaXplT3B0aW9ucy5mb250U2l6ZSksb2Zmc2V0WDowLG9mZnNldFk6MH19ZnVuY3Rpb24gZihlKXtyZXR1cm4oMCxyLmRlZmF1bHQpKGUpP2U+MD9lOmMuZ2V0KG8uUGxvdFN5bWJvbFNpemUuQXV0byk6Yy5nZXQoZSl9ZnVuY3Rpb24gcChlLHQsaSxyLG4pe2NvbnN0IG89ZnVuY3Rpb24oZSx0KXtyZXR1cm4gTWF0aC5mbG9vciguOSp0LyhlKy4zMykpfShpLmxlbmd0aCxuKTtyZXR1cm4oMCxsLmxvd2VyYm91bmRFeHQpKChlPT5lKSx2b2lkIDAsKG49PmZ1bmN0aW9uKGUsdCxpLHIpe2UuZm9udD0oMCxkLm1ha2VGb250KShyLHQuZm9udCx0Lml0YWxpYz8iaXRhbGljICI6dm9pZCAwLHQuYm9sZD8iYm9sZCAiOnZvaWQgMCk7Y29uc3Qgbj1yLzM7cmV0dXJuIGkucmVkdWNlKCgodCxpKT0+TWF0aC5tYXgodCxlLm1lYXN1cmVUZXh0KGkpLndpZHRoK24pKSwwKX0oZSx0LGksbik8PXIpLDIsbyktMX1jLnNldChvLlBsb3RTeW1ib2xTaXplLkF1dG8sMTQpLGMuc2V0KG8uUGxvdFN5bWJvbFNpemUuVGlueSw4KSxjLnNldChvLlBsb3RTeW1ib2xTaXplLlNtYWxsLDEwKSxjLnNldChvLlBsb3RTeW1ib2xTaXplLk5vcm1hbCwxNCksYy5zZXQoby5QbG90U3ltYm9sU2l6ZS5MYXJnZSwyMCksYy5zZXQoby5QbG90U3ltYm9sU2l6ZS5IdWdlLDM2KX0sNDkxMTEzKGUsdCxpKXtpLnIodCksaS5kKHQse1RyZW5kQ2hhbm5lbFBhbmVWaWV3OigpPT5ofSk7dmFyIHI9aSgxMzg2MzgpLG49aSg3MzY1MzEpLG89aSgzNTE5MDApLGE9aSg3NjMpLHM9aSg3ODkxOTApLGw9aSgyNjA2OSksZD1pKDg4MDc2MSk7Y2xhc3MgaHtjb25zdHJ1Y3RvcihlLHQsaSl7dGhpcy5fZGF0YT1bXSx0aGlzLl9pbnZhbGlkYXRlZD0hMCx0aGlzLl9wcm92aWRlcj1lLHRoaXMuX21vZGVsPXQsdGhpcy5fZGF0YT1bXSx0aGlzLl9oaXRUZXN0UmVzdWx0PXZvaWQgMCE9PWk/bmV3IGEuSGl0VGVzdFJlc3VsdChhLkhpdFRhcmdldC5DdXN0b20saSk6bmV3IGEuSGl0VGVzdFJlc3VsdChhLkhpdFRhcmdldC5SZWd1bGFyKX11cGRhdGUoZSl7ImhvdmVyLWNoYW5nZSIhPT1lLnR5cGUmJih0aGlzLl9pbnZhbGlkYXRlZD0hMCl9cmVuZGVyZXIoKXt0aGlzLl9pbnZhbGlkYXRlZCYmKHRoaXMuX3VwZGF0ZVZpZXdJbnRlcm5hbCgpLHRoaXMuX2ludmFsaWRhdGVkPSExKTtjb25zdCBlPW5ldyBzLkNvbXBvc2l0ZVJlbmRlcmVyO2Zvcihjb25zdCB0IG9mIHRoaXMuX2RhdGEpe2NvbnN0IGk9bmV3IGQuUG9seWdvblJlbmRlcmVyKHRoaXMuX2hpdFRlc3RSZXN1bHQpO2kuc2V0RGF0YSh0KSxlLmFwcGVuZChpKX1yZXR1cm4gZX1fdXBkYXRlVmlld0ludGVybmFsKCl7dGhpcy5fZGF0YT1bXTtjb25zdCBlPXRoaXMuX3Byb3ZpZGVyLnByaWNlU2NhbGUoKSx0PXRoaXMuX21vZGVsLnRpbWVTY2FsZSgpO2lmKCFlfHxlLmlzRW1wdHkoKXx8dC5pc0VtcHR5KCkpcmV0dXJuO2NvbnN0IGk9dGhpcy5fcHJvdmlkZXIuZ3JhcGhpY3MoKS50cmVuZGNoYW5uZWxzKCk7aWYoMD09PWkuc2l6ZSlyZXR1cm47Y29uc3Qgbz10LnZpc2libGVCYXJzU3RyaWN0UmFuZ2UoKTtpZihudWxsPT09bylyZXR1cm47Y29uc3QgYT10aGlzLl9wcm92aWRlci5maXJzdFZhbHVlKCk7aWYobnVsbD09PWEpcmV0dXJuO2NvbnN0IHM9by5maXJzdEJhcigpLGQ9by5sYXN0QmFyKCksaD0oMCxyLmVuc3VyZURlZmluZWQpKHRoaXMuX3Byb3ZpZGVyLnByb3BlcnRpZXMoKS5jaGlsZHMoKS5ncmFwaGljcy5jaGlsZHMoKS50cmVuZGNoYW5uZWxzKSx1PSgwLHIuZW5zdXJlRGVmaW5lZCkodGhpcy5fcHJvdmlkZXIuZ3JhcGhpY3NJbmZvKCkudHJlbmRjaGFubmVscyk7aS5mb3JFYWNoKCgoaSxvKT0+e2NvbnN0IGY9KDAsci5lbnN1cmVEZWZpbmVkKShoLmNoaWxkcygpW29dKS5jaGlsZHMoKSxwPSgwLHIuZW5zdXJlRGVmaW5lZCkodVtvXSk7aS5mb3JFYWNoKChpPT57Y29uc3Qgbz1pLnN0YXJ0SW5kZXgsaD1pLmVuZEluZGV4O2lmKE1hdGgubWF4KG8saCk8cyYmIWkuZXh0ZW5kUmlnaHR8fE1hdGgubWluKG8saCk+ZCYmIWkuZXh0ZW5kTGVmdClyZXR1cm47Y29uc3QgdT1lLnByaWNlVG9Db29yZGluYXRlKCgwLHIuZW5zdXJlRGVmaW5lZCkoaS5zdGFydEhpZ2hQcmljZSksYSksZz1lLnByaWNlVG9Db29yZGluYXRlKCgwLHIuZW5zdXJlRGVmaW5lZCkoaS5zdGFydExvd1ByaWNlKSxhKSxfPWUucHJpY2VUb0Nvb3JkaW5hdGUoKDAsCnIuZW5zdXJlRGVmaW5lZCkoaS5lbmRIaWdoUHJpY2UpLGEpLHg9Xy0odS1nKSx3PXQuaW5kZXhUb0Nvb3JkaW5hdGUobyksdj10LmluZGV4VG9Db29yZGluYXRlKGgpLFttLHldPWMobmV3IG4uUG9pbnQodyx1KSxuZXcgbi5Qb2ludCh2LF8pLHQud2lkdGgoKSxlLmhlaWdodCgpLGkuZXh0ZW5kTGVmdCxpLmV4dGVuZFJpZ2h0KSxbYixUXT1jKG5ldyBuLlBvaW50KHcsZyksbmV3IG4uUG9pbnQodix4KSx0LndpZHRoKCksZS5oZWlnaHQoKSxpLmV4dGVuZExlZnQsaS5leHRlbmRSaWdodCk7dGhpcy5fZGF0YS5wdXNoKHtwb2ludHM6W20sYixULHldLGNvbG9yOmYuY29sb3IudmFsdWUoKSxiYWNrY29sb3I6Zi5jb2xvci52YWx1ZSgpLGxpbmV3aWR0aDpwLmJvcmRlcldpZHRoPz8wLGxpbmVzdHlsZTpsLkxJTkVTVFlMRV9TT0xJRCxmaWxsZWQ6ITAsZmlsbEJhY2tncm91bmQ6ITAsdHJhbnNwYXJlbmN5OmkudHJhbnNwYXJlbmN5P01hdGgubWluKGkudHJhbnNwYXJlbmN5K2YudHJhbnNwYXJlbmN5LnZhbHVlKCksMTAwKTpmLnRyYW5zcGFyZW5jeS52YWx1ZSgpfSl9KSl9KSl9fWZ1bmN0aW9uIGMoZSx0LGkscixhLHMpe2lmKCgwLG4uZXF1YWxQb2ludHMpKGUsdCkpcmV0dXJuW2UsdF07Y29uc3QgbD1uZXcgbi5Qb2ludCgwLDApLGQ9bmV3IG4uUG9pbnQoaSxyKTtpZihhKXtjb25zdCByPWUuc3VidHJhY3QodCksYT0oMCxvLmludGVyc2VjdFJheUFuZEJveCkoZSxlLmFkZChyKSwoMCxuLmJveCkobCxkKSk7YT9lPWE6dD1uZXcgbi5Qb2ludChpLHQueSl9aWYocyl7Y29uc3Qgcj10LnN1YnRyYWN0KGUpLGE9KDAsby5pbnRlcnNlY3RSYXlBbmRCb3gpKHQsdC5hZGQociksKDAsbi5ib3gpKGwsZCkpO3Q9YXx8bmV3IG4uUG9pbnQoaSx0LnkpfXJldHVybltlLHRdfX0sNjQ1NzE3KGUsdCxpKXtpLnIodCksaS5kKHQse1ZlcnRMaW5lUGFuZVZpZXc6KCk9Pmx9KTt2YXIgcj1pKDEzODYzOCksbj1pKDc2Myksbz1pKDY4NzU5MCksYT1pKDc4OTE5MCkscz1pKDU0MDg0NSk7Y2xhc3MgbHtjb25zdHJ1Y3RvcihlLHQsaSl7dGhpcy5fZGF0YT1bXSx0aGlzLl9pbnZhbGlkYXRlZD0hMCx0aGlzLl9wcm92aWRlcj1lLHRoaXMuX21vZGVsPXQsdGhpcy5faGl0VGVzdFJlc3VsdD12b2lkIDAhPT1pP25ldyBuLkhpdFRlc3RSZXN1bHQobi5IaXRUYXJnZXQuQ3VzdG9tLGkpOm5ldyBuLkhpdFRlc3RSZXN1bHQobi5IaXRUYXJnZXQuUmVndWxhcil9dXBkYXRlKGUpeyJob3Zlci1jaGFuZ2UiIT09ZS50eXBlJiYodGhpcy5faW52YWxpZGF0ZWQ9ITApfXJlbmRlcmVyKCl7dGhpcy5faW52YWxpZGF0ZWQmJih0aGlzLl91cGRhdGVWaWV3SW50ZXJuYWwoKSx0aGlzLl9pbnZhbGlkYXRlZD0hMSk7Y29uc3QgZT1uZXcgYS5Db21wb3NpdGVSZW5kZXJlcjtmb3IoY29uc3QgdCBvZiB0aGlzLl9kYXRhKXtjb25zdCBpPW5ldyBzLlZlcnRpY2FsTGluZVJlbmRlcmVyO2kuc2V0RGF0YSh0KSxpLnNldEhpdFRlc3QodGhpcy5faGl0VGVzdFJlc3VsdCksZS5hcHBlbmQoaSl9cmV0dXJuIGV9X3VwZGF0ZVZpZXdJbnRlcm5hbCgpe3RoaXMuX2RhdGE9W107Y29uc3QgZT10aGlzLl9wcm92aWRlci5wcmljZVNjYWxlKCksdD10aGlzLl9tb2RlbC50aW1lU2NhbGUoKTtpZighZXx8ZS5pc0VtcHR5KCl8fHQuaXNFbXB0eSgpKXJldHVybjtjb25zdCBpPXRoaXMuX3Byb3ZpZGVyLmdyYXBoaWNzSW5mbygpLnZlcnRsaW5lcyxuPXRoaXMuX3Byb3ZpZGVyLmdyYXBoaWNzKCkudmVydGxpbmVzKCk7aWYoMD09PW4uc2l6ZXx8dm9pZCAwPT09aSlyZXR1cm47Y29uc3QgYT10LnZpc2libGVCYXJzU3RyaWN0UmFuZ2UoKTtpZihudWxsPT09YSlyZXR1cm47Y29uc3Qgcz10aGlzLl9wcm92aWRlci5maXJzdFZhbHVlKCk7aWYobnVsbD09PXMpcmV0dXJuO2NvbnN0IGw9YS5maXJzdEJhcigpLGQ9YS5sYXN0QmFyKCksaD0oMCxyLmVuc3VyZURlZmluZWQpKHRoaXMuX3Byb3ZpZGVyLnByb3BlcnRpZXMoKS5jaGlsZHMoKS5ncmFwaGljcy5jaGlsZHMoKS52ZXJ0bGluZXMpO24uZm9yRWFjaCgoKG4sYSk9Pntjb25zdCBjPSgwLHIuZW5zdXJlRGVmaW5lZCkoaC5jaGlsZHMoKVthXSkuY2hpbGRzKCksdT0oMCxyLmVuc3VyZURlZmluZWQpKGlbYV0pO2MudmlzaWJsZS52YWx1ZSgpJiZuLmZvckVhY2goKGk9Pntjb25zdCBuPWkuaW5kZXg7aWYobjxsfHxkPG4pcmV0dXJuO2NvbnN0e2xlZnQ6YSxjZW50ZXI6aCxyaWdodDpmfT10LmJhckJvcmRlcnMobik7bGV0IHA7c3dpdGNoKHUuaGFsaWduKXtjYXNlIG8uSEFsaWduLkxlZnQ6cD1hO2JyZWFrO2Nhc2Ugby5IQWxpZ24uUmlnaHQ6cD1mO2JyZWFrO2RlZmF1bHQ6cD1ofXRoaXMuX2RhdGEucHVzaCh7eDpwLHRvcDppLmV4dGVuZFRvcD92b2lkIDA6ZS5wcmljZVRvQ29vcmRpbmF0ZSgoMCxyLmVuc3VyZURlZmluZWQpKGkuZW5kUHJpY2UpLHMpLGJvdHRvbTppLmV4dGVuZEJvdHRvbT92b2lkIDA6ZS5wcmljZVRvQ29vcmRpbmF0ZSgoMCxyLmVuc3VyZURlZmluZWQpKGkuc3RhcnRQcmljZSkscyksY29sb3I6Yy5jb2xvci52YWx1ZSgpLGxpbmV3aWR0aDpjLndpZHRoLnZhbHVlKCksbGluZXN0eWxlOmMuc3R5bGUudmFsdWUoKX0pfSkpfSkpfX19LDUwMTM2MyhlLHQsaSl7aS5kKHQse0xpbmVhclJlZ3Jlc3Npb25QYW5lVmlldzooKT0+aH0pO3ZhciByPWkoNzYzKSxuPWkoODczNTczKSxvPWkoNzg5MTkwKSxhPWkoNTcyNzk2KSxzPWkoNjY0ODE1KSxsPWkoNDcwOTg2KSxkPWkoNzQyMTQyKTtjbGFzcyBoe2NvbnN0cnVjdG9yKGUsdCl7dGhpcy5faW52YWxpZGF0ZWQ9ITAsdGhpcy5fbGluZXM9W10sdGhpcy5fcGVhcnNvbnNUZXh0UmVuZGVyZXI9bmV3IGwuVGV4dFJlbmRlcmVyLHRoaXMuX3BlYXJzb25zPW51bGwsdGhpcy5fbW9kZWw9ZSx0aGlzLl9zb3VyY2U9dH11cGRhdGUoKXt0aGlzLl9pbnZhbGlkYXRlZD0hMH1yZW5kZXJlcigpe3RoaXMuX2ludmFsaWRhdGVkJiYodGhpcy5fdXBkYXRlSW1wbCgpLHRoaXMuX2ludmFsaWRhdGVkPSExKTtjb25zdCBlPW5ldyBvLkNvbXBvc2l0ZVJlbmRlcmVyLHQ9W3RoaXMuX2xpbmVzWzFdLHRoaXMuX2xpbmVzWzBdLHRoaXMuX2xpbmVzWzJdXSxpPVtdCjtmb3IoY29uc3QgZSBvZiB0KWUmJmkucHVzaChlKTtmb3IobGV0IG89MTtvPGkubGVuZ3RoO28rKyl7Y29uc3QgaT10W29dLmNvbG9yLHM9dFtvXS5saW5ld2lkdGgsbD10W29dLmxpbmVzdHlsZSxkPXRbb10uZXh0ZW5kcmlnaHQsaD17bGluZTE6e2NvbG9yOmksbGluZVN0eWxlOmwsbGluZVdpZHRoOnMscG9pbnRzOlt0W29dLnBvaW50c1swXSx0W29dLnBvaW50c1sxXV19LGxpbmUyOntjb2xvcjppLGxpbmVTdHlsZTpsLGxpbmVXaWR0aDpzLHBvaW50czpbdFtvLTFdLnBvaW50c1swXSx0W28tMV0ucG9pbnRzWzFdXX0sZXh0ZW5kTGVmdDohMSxleHRlbmRSaWdodDpkLGJhY2tDb2xvcjooMCxuLmdlbmVyYXRlQ29sb3IpKHRbb10uY29sb3IsdGhpcy5fc291cmNlLnByb3BlcnRpZXMoKS5zdHlsZXMudHJhbnNwYXJlbmN5LnZhbHVlKCkpLHNraXBMaW5lczohMCxmaWxsQmFja2dyb3VuZDohMH0sYz1uZXcgYS5QYXJhbGxlbENoYW5uZWxSZW5kZXJlcihuZXcgci5IaXRUZXN0UmVzdWx0KHIuSGl0VGFyZ2V0LlJlZ3VsYXIpLG5ldyByLkhpdFRlc3RSZXN1bHQoci5IaXRUYXJnZXQuUmVndWxhcikpO2Muc2V0RGF0YShoKSxlLmFwcGVuZChjKX1mb3IoY29uc3QgdCBvZiBmdW5jdGlvbihlKXtyZXR1cm4gZS5tYXAoKGU9Pntjb25zdCB0PXsuLi5lfTtyZXR1cm4gdC5jb2xvcj0oMCxuLnJlc2V0VHJhbnNwYXJlbmN5KSh0LmNvbG9yKSx0fSkpfSh0aGlzLl9saW5lcykpe2NvbnN0IGk9bmV3IHMuVHJlbmRMaW5lUmVuZGVyZXI7aS5zZXREYXRhKHQpLGkuc2V0SGl0VGVzdChuZXcgci5IaXRUZXN0UmVzdWx0KHIuSGl0VGFyZ2V0LlJlZ3VsYXIpKSxlLmFwcGVuZChpKX1yZXR1cm4gdGhpcy5fcGVhcnNvbnMmJih0aGlzLl9wZWFyc29ucy5jb2xvcj0oMCxuLnJlc2V0VHJhbnNwYXJlbmN5KSh0aGlzLl9wZWFyc29ucy5jb2xvciksdGhpcy5fcGVhcnNvbnNUZXh0UmVuZGVyZXIuc2V0RGF0YSh0aGlzLl9wZWFyc29ucyksZS5hcHBlbmQodGhpcy5fcGVhcnNvbnNUZXh0UmVuZGVyZXIpKSxlfV91cGRhdGVJbXBsKCl7Y29uc3QgZT0oMCxkLnByZXBhcmVMaW5lYXJSZWdyZXNzaW9uUmVuZGVyZXJzRGF0YSkodGhpcy5fbW9kZWwsdGhpcy5fc291cmNlKTt0aGlzLl9saW5lcz1lLmxpbmVzLHRoaXMuX3BlYXJzb25zPWUucGVhcnNvbnN9fX19XSk7"}},"time_used":2,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/32632.596e5348a1538a18fd4e.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:12.959Z","timestamp":1785148032959,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/32632.596e5348a1538a18fd4e.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:12 GMT\r\ncontent-type: text/css; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a58ab11-4fc\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Thu, 16 Jul 2026 09:57:37 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/16/2026 11:03:20\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 37f9a1de86a475843f0a9253c32e71dd\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":1276,"size_decoded":1216,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with very long lines (1276), with no line terminators","md5":"4dbd9186e797320373da6c5f9843030c","sha1":"23410205367378f1c6436025ba87050084b119a4","sha256":"7efe9b338dd4970e4b6ee84a711c1bb6cc65dad73322597e03c040abdb1fa38a","sha512":"a66b0365c81f21e82e8d510923718ce9c71b8aab5c59688e1d32283b9203b9d4b79e04b000fd34cc03234913be0c316407e1d1b9b4c6360478f73081d15595ef","ssdeep":"","tlshash":"3321dfe1e790187af8a38916a788de867158fa036713fd49f7daa80e4481d78113c34d","first_seen":"2026-07-16T13:40:49.72467Z","last_seen":"2026-07-27T12:57:37.011631Z","times_seen":1112,"resource_available":false,"data":"W2RhdGEtdGhlbWU9bGlnaHRdey0tXzAtdWdzMTp2YXIoLS1jb2xvci1jb2xkLWdyYXktMTAwKX1bZGF0YS10aGVtZT1kYXJrXXstLV8wLXVnczE6dmFyKC0tY29sb3ItY29sZC1ncmF5LTgwMCl9LnR2LXNwaW5uZXJ7YW5pbWF0aW9uOnR2LXNwaW5uZXJfX2NvbnRhaW5lci1yb3RhdGUtajRKbHJZVkggLjlzIGxpbmVhciBpbmZpbml0ZTtib3JkZXItaW5saW5lLWVuZC1jb2xvcjp2YXIoLS1fMC11Z3MxKTtib3JkZXI6MCBzb2xpZCB2YXIoLS10di1zcGlubmVyLWNvbG9yLHZhcigtLWNvbG9yLWJyYW5kKSk7Ym9yZGVyLWJvdHRvbS1jb2xvcjp2YXIoLS1fMC11Z3MxKTtib3JkZXItcmFkaXVzOjUwJTtkaXNwbGF5Om5vbmU7bWFyZ2luOjAgYXV0bztwb3NpdGlvbjphYnNvbHV0ZX0udHYtc3Bpbm5lci0tc2hvd257ZGlzcGxheTpibG9ja30udHYtc3Bpbm5lci0tc2l6ZV94eHNtYWxse2JvcmRlci13aWR0aDoycHg7aGVpZ2h0OjEwcHg7aW5zZXQtaW5saW5lLXN0YXJ0OmNhbGMoNTAlIC0gN3B4KTt0b3A6Y2FsYyg1MCUgLSA3cHgpO3dpZHRoOjEwcHh9LnR2LXNwaW5uZXItLXNpemVfeHNtYWxse2JvcmRlci13aWR0aDoycHg7aGVpZ2h0OjE0cHg7aW5zZXQtaW5saW5lLXN0YXJ0OmNhbGMoNTAlIC0gOXB4KTt0b3A6Y2FsYyg1MCUgLSA5cHgpO3dpZHRoOjE0cHh9LnR2LXNwaW5uZXItLXNpemVfc21hbGx7Ym9yZGVyLXdpZHRoOjJweDtoZWlnaHQ6MjBweDtpbnNldC1pbmxpbmUtc3RhcnQ6Y2FsYyg1MCUgLSAxMnB4KTt0b3A6Y2FsYyg1MCUgLSAxMnB4KTt3aWR0aDoyMHB4fS50di1zcGlubmVyLS1zaXplX21lZGl1bXtib3JkZXItd2lkdGg6M3B4O2hlaWdodDoyOHB4O2luc2V0LWlubGluZS1zdGFydDpjYWxjKDUwJSAtIDE3cHgpO3RvcDpjYWxjKDUwJSAtIDE3cHgpO3dpZHRoOjI4cHh9LnR2LXNwaW5uZXItLXNpemVfbGFyZ2V7Ym9yZGVyLXdpZHRoOjRweDtoZWlnaHQ6NTZweDtpbnNldC1pbmxpbmUtc3RhcnQ6Y2FsYyg1MCUgLSAzMnB4KTt0b3A6Y2FsYyg1MCUgLSAzMnB4KTt3aWR0aDo1NnB4fS50di1zcGlubmVyOmRpcihydGwpe2FuaW1hdGlvbjp0di1zcGlubmVyX19jb250YWluZXItcm90YXRlLXJ0bC1qNEpscllWSCAuOXMgbGluZWFyIGluZmluaXRlfUBrZXlmcmFtZXMgdHYtc3Bpbm5lcl9fY29udGFpbmVyLXJvdGF0ZS1qNEpscllWSHt0b3t0cmFuc2Zvcm06cm90YXRlKDF0dXJuKX19QGtleWZyYW1lcyB0di1zcGlubmVyX19jb250YWluZXItcm90YXRlLXJ0bC1qNEpscllWSHt0b3t0cmFuc2Zvcm06cm90YXRlKC0xdHVybil9fQ=="}},"time_used":5,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":5,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/44911.fa61d2a274d4224434ca.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:12.992Z","timestamp":1785148032992,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/44911.fa61d2a274d4224434ca.js HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:12 GMT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a61b1a8-5408\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Thu, 23 Jul 2026 06:16:08 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/23/2026 10:17:24\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: cf4503af90410ed8307f4ccabb4de09b\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":21512,"size_decoded":7898,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (3071)","md5":"05e4055151a861bff8e38a76d25fa21b","sha1":"9f8bab99df4104fde7e4ce7e47379db991ae53a9","sha256":"1b602280ac3b82058c7577fff06841ffe0b4fb035b22d4aa046119a37ba46376","sha512":"003001c6510b718a9e57af8daa9fcf322e0f91dc14aa8c1397abe4328d8dcc7c27ac342595f1acc141b47b471420a8e8bd64536cbc0cc762c0bb7aedbed00596","ssdeep":"384:KlWkb+CeVhEy3dhGQZ5mvjqnGilhLgvmRA7R6VTc6w6DwuRGijR0WwnhbR8L+lct:KlWkNUNhGbjqGilhsvme16VTc6w6Dwuv","tlshash":"faa2618877c2f09a02d665da943b040bf33d1c9d25187464b391d8d96ebe56eb23bf38","first_seen":"2026-07-23T13:54:09.044064Z","last_seen":"2026-07-27T12:53:06.231206Z","times_seen":292,"resource_available":true,"data":"KHNlbGYud2VicGFja0NodW5rdHJhZGluZ3ZpZXc9c2VsZi53ZWJwYWNrQ2h1bmt0cmFkaW5ndmlld3x8W10pLnB1c2goW1s0NDkxMV0sezM2MzI2OShlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHttb2JpbGV0b3VjaDooKT0+cixzZXRDbGFzc2VzOigpPT5zLHRvdWNoOigpPT5hfSk7dmFyIGk9big3Mzg0NTgpO2NvbnN0IHI9aS5tb2JpbGV0b3VjaCxhPWkudG91Y2g7ZnVuY3Rpb24gcygpe2RvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGFzc0xpc3QuYWRkKGkudG91Y2g/ImZlYXR1cmUtdG91Y2giOiJmZWF0dXJlLW5vLXRvdWNoIixpLm1vYmlsZXRvdWNoPyJmZWF0dXJlLW1vYmlsZXRvdWNoIjoiZmVhdHVyZS1uby1tb2JpbGV0b3VjaCIpfX0sMzE4OTc0KGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse0NoZWNrTW9iaWxlOigpPT5kLGFwcFZlcnNpb246KCk9PmYsY2hlY2tQYWdlVHlwZTooKT0+dixkZXNrdG9wQXBwVmVyc2lvbjooKT0+Yyxpc0Nocm9tZTooKT0+cCxpc0Rlc2t0b3BBcHA6KCk9Pm8saXNFZGdlOigpPT5tLGlzRkY6KCk9PmcsaXNMaW51eDooKT0+dSxpc01hYzooKT0+cyxpc1NhZmFyaTooKT0+Xyxpc1N5bXBob255RW1iZWQ6KCk9Pmwsb25Hb1BybzooKT0+YixvbldpZGdldDooKT0+ci5vbldpZGdldCxzdXBwb3J0VG91Y2g6KCk9Pmh9KTt2YXIgaT1uKDczODQ1OCkscj1uKDM3NzIyNik7Y29uc3QgYT13aW5kb3cuVHJhZGluZ1ZpZXc9d2luZG93LlRyYWRpbmdWaWV3fHx7fTtmdW5jdGlvbiBzKCl7cmV0dXJuIGkuaXNNYWN9ZnVuY3Rpb24gdSgpe3JldHVybiBpLmlzTGludXh9ZnVuY3Rpb24gbygpe3JldHVybi9UVkRlc2t0b3AvaS50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpfWZ1bmN0aW9uIGwoKXtyZXR1cm4gYS5pc1N5bXBob255fHwhMX1mdW5jdGlvbiBjKCl7Y29uc3QgZT1uYXZpZ2F0b3IudXNlckFnZW50Lm1hdGNoKC9UVkRlc2t0b3BcLyhbXlxzXSspLyk7cmV0dXJuIGUmJmVbMV19ZnVuY3Rpb24gZigpe2NvbnN0IGU9bmF2aWdhdG9yLnVzZXJBZ2VudC5tYXRjaCgvVHJhZGluZ1ZpZXdcLyhbXlxzXSspLyk7cmV0dXJuIGUmJmVbMV19Y29uc3QgZD17QW5kcm9pZDooKT0+aS5pc0FuZHJvaWQsQmxhY2tCZXJyeTooKT0+aS5pc0JsYWNrQmVycnksaU9TOigpPT5pLmlzSU9TLE9wZXJhOigpPT5pLmlzT3BlcmFNaW5pLGlzSVBhZDooKT0+aS5pc0lQYWQsYW55OigpPT5pLmlzQW55TW9iaWxlfTtmdW5jdGlvbiBoKCl7cmV0dXJuIGkubW9iaWxldG91Y2h8fGkudG91Y2h8fGkuaXNBbnlNb2JpbGV9ZnVuY3Rpb24gdihlKXtyZXR1cm4gbmV3IFVSTFNlYXJjaFBhcmFtcyh3aW5kb3cubG9jYXRpb24uc2VhcmNoKS5nZXQoInBhZ2VfdHlwZSIpPT09ZX1hLmlzTW9iaWxlPWQsYS5vbldpZGdldD1yLm9uV2lkZ2V0O2NvbnN0IHA9aS5pc0Nocm9tZSxnPWkuaXNGRixtPWkuaXNFZGdlLF89aS5pc1NhZmFyaTtmdW5jdGlvbiBiKCl7cmV0dXJuIi9wcmljaW5nLyI9PT13aW5kb3cubG9jYXRpb24ucGF0aG5hbWV9fSw5NjMwOTgoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLnIodCksbi5kKHQse2dldElzb0xhbmd1YWdlQ29kZUZyb21MYW5ndWFnZTooKT0+cn0pO2NvbnN0IGk9e2FyX0FFOiJhciIsYnI6InB0IixkZV9ERToiZGUiLGNhX0VTOiJjYSIsaGVfSUw6ImhlIixpZF9JRDoiaWQiLGluOiJlbiIsa3I6ImtvIixtc19NWToibXMiLHN2X1NFOiJzdiIsdGhfVEg6InRoIix1azoiZW4iLHZpX1ZOOiJ2aSIsemhfQ046InpoLUhhbnMiLHpoX1RXOiJ6aC1IYW50Iix6aDoiemgtSGFucyIsaHVfSFU6Imh1LUhVIn07ZnVuY3Rpb24gcihlKXtyZXR1cm4gaVtlXXx8ZX19LDUyNzMyMyhlLHQsbil7dmFyIGk7IWZ1bmN0aW9uKHQpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiByKCl7fXZhciBhPXIucHJvdG90eXBlLHM9dC5FdmVudEVtaXR0ZXI7ZnVuY3Rpb24gdShlLHQpe2Zvcih2YXIgbj1lLmxlbmd0aDtuLS07KWlmKGVbbl0ubGlzdGVuZXI9PT10KXJldHVybiBuO3JldHVybi0xfWZ1bmN0aW9uIG8oZSl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXNbZV0uYXBwbHkodGhpcyxhcmd1bWVudHMpfX1mdW5jdGlvbiBsKGUpe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBlfHxlIGluc3RhbmNlb2YgUmVnRXhwfHwhKCFlfHwib2JqZWN0IiE9dHlwZW9mIGUpJiZsKGUubGlzdGVuZXIpfWEuZ2V0TGlzdGVuZXJzPWZ1bmN0aW9uKGUpe3ZhciB0LG4saT10aGlzLl9nZXRFdmVudHMoKTtpZihlIGluc3RhbmNlb2YgUmVnRXhwKWZvcihuIGluIHQ9e30saSlpLmhhc093blByb3BlcnR5KG4pJiZlLnRlc3QobikmJih0W25dPWlbbl0pO2Vsc2UgdD1pW2VdfHwoaVtlXT1bXSk7cmV0dXJuIHR9LGEuZmxhdHRlbkxpc3RlbmVycz1mdW5jdGlvbihlKXt2YXIgdCxuPVtdO2Zvcih0PTA7dDxlLmxlbmd0aDt0Kz0xKW4ucHVzaChlW3RdLmxpc3RlbmVyKTtyZXR1cm4gbn0sYS5nZXRMaXN0ZW5lcnNBc09iamVjdD1mdW5jdGlvbihlKXt2YXIgdCxuPXRoaXMuZ2V0TGlzdGVuZXJzKGUpO3JldHVybiBuIGluc3RhbmNlb2YgQXJyYXkmJigodD17fSlbZV09biksdHx8bn0sYS5hZGRMaXN0ZW5lcj1mdW5jdGlvbihlLHQpe2lmKCFsKHQpKXRocm93IG5ldyBUeXBlRXJyb3IoImxpc3RlbmVyIG11c3QgYmUgYSBmdW5jdGlvbiIpO3ZhciBuLGk9dGhpcy5nZXRMaXN0ZW5lcnNBc09iamVjdChlKSxyPSJvYmplY3QiPT10eXBlb2YgdDtmb3IobiBpbiBpKWkuaGFzT3duUHJvcGVydHkobikmJi0xPT09dShpW25dLHQpJiZpW25dLnB1c2gocj90OntsaXN0ZW5lcjp0LG9uY2U6ITF9KTtyZXR1cm4gdGhpc30sYS5vbj1vKCJhZGRMaXN0ZW5lciIpLGEuYWRkT25jZUxpc3RlbmVyPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIHRoaXMuYWRkTGlzdGVuZXIoZSx7bGlzdGVuZXI6dCxvbmNlOiEwfSl9LGEub25jZT1vKCJhZGRPbmNlTGlzdGVuZXIiKSxhLmRlZmluZUV2ZW50PWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmdldExpc3RlbmVycyhlKSx0aGlzfSxhLmRlZmluZUV2ZW50cz1mdW5jdGlvbihlKXtmb3IodmFyIHQ9MDt0PGUubGVuZ3RoO3QrPTEpdGhpcy5kZWZpbmVFdmVudChlW3RdKTtyZXR1cm4gdGhpc30sCmEucmVtb3ZlTGlzdGVuZXI9ZnVuY3Rpb24oZSx0KXt2YXIgbixpLHI9dGhpcy5nZXRMaXN0ZW5lcnNBc09iamVjdChlKTtmb3IoaSBpbiByKXIuaGFzT3duUHJvcGVydHkoaSkmJi0xIT09KG49dShyW2ldLHQpKSYmcltpXS5zcGxpY2UobiwxKTtyZXR1cm4gdGhpc30sYS5vZmY9bygicmVtb3ZlTGlzdGVuZXIiKSxhLmFkZExpc3RlbmVycz1mdW5jdGlvbihlLHQpe3JldHVybiB0aGlzLm1hbmlwdWxhdGVMaXN0ZW5lcnMoITEsZSx0KX0sYS5yZW1vdmVMaXN0ZW5lcnM9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdGhpcy5tYW5pcHVsYXRlTGlzdGVuZXJzKCEwLGUsdCl9LGEubWFuaXB1bGF0ZUxpc3RlbmVycz1mdW5jdGlvbihlLHQsbil7dmFyIGkscixhPWU/dGhpcy5yZW1vdmVMaXN0ZW5lcjp0aGlzLmFkZExpc3RlbmVyLHM9ZT90aGlzLnJlbW92ZUxpc3RlbmVyczp0aGlzLmFkZExpc3RlbmVycztpZigib2JqZWN0IiE9dHlwZW9mIHR8fHQgaW5zdGFuY2VvZiBSZWdFeHApZm9yKGk9bi5sZW5ndGg7aS0tOylhLmNhbGwodGhpcyx0LG5baV0pO2Vsc2UgZm9yKGkgaW4gdCl0Lmhhc093blByb3BlcnR5KGkpJiYocj10W2ldKSYmKCJmdW5jdGlvbiI9PXR5cGVvZiByP2EuY2FsbCh0aGlzLGkscik6cy5jYWxsKHRoaXMsaSxyKSk7cmV0dXJuIHRoaXN9LGEucmVtb3ZlRXZlbnQ9ZnVuY3Rpb24oZSl7dmFyIHQsbj10eXBlb2YgZSxpPXRoaXMuX2dldEV2ZW50cygpO2lmKCJzdHJpbmciPT09bilkZWxldGUgaVtlXTtlbHNlIGlmKGUgaW5zdGFuY2VvZiBSZWdFeHApZm9yKHQgaW4gaSlpLmhhc093blByb3BlcnR5KHQpJiZlLnRlc3QodCkmJmRlbGV0ZSBpW3RdO2Vsc2UgZGVsZXRlIHRoaXMuX2V2ZW50cztyZXR1cm4gdGhpc30sYS5yZW1vdmVBbGxMaXN0ZW5lcnM9bygicmVtb3ZlRXZlbnQiKSxhLmVtaXRFdmVudD1mdW5jdGlvbihlLHQpe3ZhciBuLGkscixhLHM9dGhpcy5nZXRMaXN0ZW5lcnNBc09iamVjdChlKTtmb3IoYSBpbiBzKWlmKHMuaGFzT3duUHJvcGVydHkoYSkpZm9yKG49c1thXS5zbGljZSgwKSxyPTA7cjxuLmxlbmd0aDtyKyspITA9PT0oaT1uW3JdKS5vbmNlJiZ0aGlzLnJlbW92ZUxpc3RlbmVyKGUsaS5saXN0ZW5lciksaS5saXN0ZW5lci5hcHBseSh0aGlzLHR8fFtdKT09PXRoaXMuX2dldE9uY2VSZXR1cm5WYWx1ZSgpJiZ0aGlzLnJlbW92ZUxpc3RlbmVyKGUsaS5saXN0ZW5lcik7cmV0dXJuIHRoaXN9LGEudHJpZ2dlcj1vKCJlbWl0RXZlbnQiKSxhLmVtaXQ9ZnVuY3Rpb24oZSl7dmFyIHQ9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLDEpO3JldHVybiB0aGlzLmVtaXRFdmVudChlLHQpfSxhLnNldE9uY2VSZXR1cm5WYWx1ZT1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5fb25jZVJldHVyblZhbHVlPWUsdGhpc30sYS5fZ2V0T25jZVJldHVyblZhbHVlPWZ1bmN0aW9uKCl7cmV0dXJuIXRoaXMuaGFzT3duUHJvcGVydHkoIl9vbmNlUmV0dXJuVmFsdWUiKXx8dGhpcy5fb25jZVJldHVyblZhbHVlfSxhLl9nZXRFdmVudHM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fZXZlbnRzfHwodGhpcy5fZXZlbnRzPXt9KX0sci5ub0NvbmZsaWN0PWZ1bmN0aW9uKCl7cmV0dXJuIHQuRXZlbnRFbWl0dGVyPXMscn0sdm9pZCAwPT09KGk9ZnVuY3Rpb24oKXtyZXR1cm4gcn0uY2FsbCh0LG4sdCxlKSl8fChlLmV4cG9ydHM9aSl9KHRoaXN8fHt9KX0sOTE4Nzc5KGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse0NhbnZhc1JlbmRlcmluZ1RhcmdldDJEOigpPT5vLGJpbmRDYW52YXNFbGVtZW50Qml0bWFwU2l6ZVRvOigpPT5zLGVxdWFsU2l6ZXM6KCk9PmkuZXF1YWxTaXplcyxzaXplOigpPT5pLnNpemUsdHJ5Q3JlYXRlQ2FudmFzUmVuZGVyaW5nVGFyZ2V0MkQ6KCk9Pmx9KTt2YXIgaT1uKDc0Mjc5KSxyPW4oNzQzNDUxKSxhPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZShlLHQsbil7dmFyIHI7dGhpcy5fY2FudmFzRWxlbWVudD1udWxsLHRoaXMuX2JpdG1hcFNpemVDaGFuZ2VkTGlzdGVuZXJzPVtdLHRoaXMuX3N1Z2dlc3RlZEJpdG1hcFNpemU9bnVsbCx0aGlzLl9zdWdnZXN0ZWRCaXRtYXBTaXplQ2hhbmdlZExpc3RlbmVycz1bXSx0aGlzLl9kZXZpY2VQaXhlbFJhdGlvT2JzZXJ2YWJsZT1udWxsLHRoaXMuX2NhbnZhc0VsZW1lbnRSZXNpemVPYnNlcnZlcj1udWxsLHRoaXMuX2NhbnZhc0VsZW1lbnQ9ZSx0aGlzLl9jYW52YXNFbGVtZW50Q2xpZW50U2l6ZT0oMCxpLnNpemUpKHt3aWR0aDp0aGlzLl9jYW52YXNFbGVtZW50LmNsaWVudFdpZHRoLGhlaWdodDp0aGlzLl9jYW52YXNFbGVtZW50LmNsaWVudEhlaWdodH0pLHRoaXMuX3RyYW5zZm9ybUJpdG1hcFNpemU9bnVsbCE9dD90OmZ1bmN0aW9uKGUpe3JldHVybiBlfSx0aGlzLl9hbGxvd1Jlc2l6ZU9ic2VydmVyPW51bGw9PT0ocj1udWxsPT1uP3ZvaWQgMDpuLmFsbG93UmVzaXplT2JzZXJ2ZXIpfHx2b2lkIDA9PT1yfHxyLHRoaXMuX2Nob29zZUFuZEluaXRPYnNlcnZlcigpfXJldHVybiBlLnByb3RvdHlwZS5kaXNwb3NlPWZ1bmN0aW9uKCl7dmFyIGUsdDtpZihudWxsPT09dGhpcy5fY2FudmFzRWxlbWVudCl0aHJvdyBuZXcgRXJyb3IoIk9iamVjdCBpcyBkaXNwb3NlZCIpO251bGw9PT0oZT10aGlzLl9jYW52YXNFbGVtZW50UmVzaXplT2JzZXJ2ZXIpfHx2b2lkIDA9PT1lfHxlLmRpc2Nvbm5lY3QoKSx0aGlzLl9jYW52YXNFbGVtZW50UmVzaXplT2JzZXJ2ZXI9bnVsbCxudWxsPT09KHQ9dGhpcy5fZGV2aWNlUGl4ZWxSYXRpb09ic2VydmFibGUpfHx2b2lkIDA9PT10fHx0LmRpc3Bvc2UoKSx0aGlzLl9kZXZpY2VQaXhlbFJhdGlvT2JzZXJ2YWJsZT1udWxsLHRoaXMuX3N1Z2dlc3RlZEJpdG1hcFNpemVDaGFuZ2VkTGlzdGVuZXJzLmxlbmd0aD0wLHRoaXMuX2JpdG1hcFNpemVDaGFuZ2VkTGlzdGVuZXJzLmxlbmd0aD0wLHRoaXMuX2NhbnZhc0VsZW1lbnQ9bnVsbH0sT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJjYW52YXNFbGVtZW50Iix7Z2V0OmZ1bmN0aW9uKCl7aWYobnVsbD09PXRoaXMuX2NhbnZhc0VsZW1lbnQpdGhyb3cgbmV3IEVycm9yKCJPYmplY3QgaXMgZGlzcG9zZWQiKQo7cmV0dXJuIHRoaXMuX2NhbnZhc0VsZW1lbnR9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJjYW52YXNFbGVtZW50Q2xpZW50U2l6ZSIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9jYW52YXNFbGVtZW50Q2xpZW50U2l6ZX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsImJpdG1hcFNpemUiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4oMCxpLnNpemUpKHt3aWR0aDp0aGlzLmNhbnZhc0VsZW1lbnQud2lkdGgsaGVpZ2h0OnRoaXMuY2FudmFzRWxlbWVudC5oZWlnaHR9KX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxlLnByb3RvdHlwZS5yZXNpemVDYW52YXNFbGVtZW50PWZ1bmN0aW9uKGUpe3RoaXMuX2NhbnZhc0VsZW1lbnRDbGllbnRTaXplPSgwLGkuc2l6ZSkoZSksdGhpcy5jYW52YXNFbGVtZW50LnN0eWxlLndpZHRoPSIiLmNvbmNhdCh0aGlzLl9jYW52YXNFbGVtZW50Q2xpZW50U2l6ZS53aWR0aCwicHgiKSx0aGlzLmNhbnZhc0VsZW1lbnQuc3R5bGUuaGVpZ2h0PSIiLmNvbmNhdCh0aGlzLl9jYW52YXNFbGVtZW50Q2xpZW50U2l6ZS5oZWlnaHQsInB4IiksdGhpcy5faW52YWxpZGF0ZUJpdG1hcFNpemUoKX0sZS5wcm90b3R5cGUuc3Vic2NyaWJlQml0bWFwU2l6ZUNoYW5nZWQ9ZnVuY3Rpb24oZSl7dGhpcy5fYml0bWFwU2l6ZUNoYW5nZWRMaXN0ZW5lcnMucHVzaChlKX0sZS5wcm90b3R5cGUudW5zdWJzY3JpYmVCaXRtYXBTaXplQ2hhbmdlZD1mdW5jdGlvbihlKXt0aGlzLl9iaXRtYXBTaXplQ2hhbmdlZExpc3RlbmVycz10aGlzLl9iaXRtYXBTaXplQ2hhbmdlZExpc3RlbmVycy5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiB0IT09ZX0pKX0sT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJzdWdnZXN0ZWRCaXRtYXBTaXplIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3N1Z2dlc3RlZEJpdG1hcFNpemV9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksZS5wcm90b3R5cGUuc3Vic2NyaWJlU3VnZ2VzdGVkQml0bWFwU2l6ZUNoYW5nZWQ9ZnVuY3Rpb24oZSl7dGhpcy5fc3VnZ2VzdGVkQml0bWFwU2l6ZUNoYW5nZWRMaXN0ZW5lcnMucHVzaChlKX0sZS5wcm90b3R5cGUudW5zdWJzY3JpYmVTdWdnZXN0ZWRCaXRtYXBTaXplQ2hhbmdlZD1mdW5jdGlvbihlKXt0aGlzLl9zdWdnZXN0ZWRCaXRtYXBTaXplQ2hhbmdlZExpc3RlbmVycz10aGlzLl9zdWdnZXN0ZWRCaXRtYXBTaXplQ2hhbmdlZExpc3RlbmVycy5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiB0IT09ZX0pKX0sZS5wcm90b3R5cGUuYXBwbHlTdWdnZXN0ZWRCaXRtYXBTaXplPWZ1bmN0aW9uKCl7aWYobnVsbCE9PXRoaXMuX3N1Z2dlc3RlZEJpdG1hcFNpemUpe3ZhciBlPXRoaXMuX3N1Z2dlc3RlZEJpdG1hcFNpemU7dGhpcy5fc3VnZ2VzdGVkQml0bWFwU2l6ZT1udWxsLHRoaXMuX3Jlc2l6ZUJpdG1hcChlKSx0aGlzLl9lbWl0U3VnZ2VzdGVkQml0bWFwU2l6ZUNoYW5nZWQoZSx0aGlzLl9zdWdnZXN0ZWRCaXRtYXBTaXplKX19LGUucHJvdG90eXBlLl9yZXNpemVCaXRtYXA9ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcy5iaXRtYXBTaXplOygwLGkuZXF1YWxTaXplcykodCxlKXx8KHRoaXMuY2FudmFzRWxlbWVudC53aWR0aD1lLndpZHRoLHRoaXMuY2FudmFzRWxlbWVudC5oZWlnaHQ9ZS5oZWlnaHQsdGhpcy5fZW1pdEJpdG1hcFNpemVDaGFuZ2VkKHQsZSkpfSxlLnByb3RvdHlwZS5fZW1pdEJpdG1hcFNpemVDaGFuZ2VkPWZ1bmN0aW9uKGUsdCl7dmFyIG49dGhpczt0aGlzLl9iaXRtYXBTaXplQ2hhbmdlZExpc3RlbmVycy5mb3JFYWNoKChmdW5jdGlvbihpKXtyZXR1cm4gaS5jYWxsKG4sZSx0KX0pKX0sZS5wcm90b3R5cGUuX3N1Z2dlc3ROZXdCaXRtYXBTaXplPWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMuX3N1Z2dlc3RlZEJpdG1hcFNpemUsbj0oMCxpLnNpemUpKHRoaXMuX3RyYW5zZm9ybUJpdG1hcFNpemUoZSx0aGlzLl9jYW52YXNFbGVtZW50Q2xpZW50U2l6ZSkpLHI9KDAsaS5lcXVhbFNpemVzKSh0aGlzLmJpdG1hcFNpemUsbik/bnVsbDpuO251bGw9PT10JiZudWxsPT09cnx8bnVsbCE9PXQmJm51bGwhPT1yJiYoMCxpLmVxdWFsU2l6ZXMpKHQscil8fCh0aGlzLl9zdWdnZXN0ZWRCaXRtYXBTaXplPXIsdGhpcy5fZW1pdFN1Z2dlc3RlZEJpdG1hcFNpemVDaGFuZ2VkKHQscikpfSxlLnByb3RvdHlwZS5fZW1pdFN1Z2dlc3RlZEJpdG1hcFNpemVDaGFuZ2VkPWZ1bmN0aW9uKGUsdCl7dmFyIG49dGhpczt0aGlzLl9zdWdnZXN0ZWRCaXRtYXBTaXplQ2hhbmdlZExpc3RlbmVycy5mb3JFYWNoKChmdW5jdGlvbihpKXtyZXR1cm4gaS5jYWxsKG4sZSx0KX0pKX0sZS5wcm90b3R5cGUuX2Nob29zZUFuZEluaXRPYnNlcnZlcj1mdW5jdGlvbigpe3ZhciBlPXRoaXM7dGhpcy5fYWxsb3dSZXNpemVPYnNlcnZlcj9uZXcgUHJvbWlzZSgoZnVuY3Rpb24oZSl7dmFyIHQ9bmV3IFJlc2l6ZU9ic2VydmVyKChmdW5jdGlvbihuKXtlKG4uZXZlcnkoKGZ1bmN0aW9uKGUpe3JldHVybiJkZXZpY2VQaXhlbENvbnRlbnRCb3hTaXplImluIGV9KSkpLHQuZGlzY29ubmVjdCgpfSkpO3Qub2JzZXJ2ZShkb2N1bWVudC5ib2R5LHtib3g6ImRldmljZS1waXhlbC1jb250ZW50LWJveCJ9KX0pKS5jYXRjaCgoZnVuY3Rpb24oKXtyZXR1cm4hMX0pKS50aGVuKChmdW5jdGlvbih0KXtyZXR1cm4gdD9lLl9pbml0UmVzaXplT2JzZXJ2ZXIoKTplLl9pbml0RGV2aWNlUGl4ZWxSYXRpb09ic2VydmFibGUoKX0pKTp0aGlzLl9pbml0RGV2aWNlUGl4ZWxSYXRpb09ic2VydmFibGUoKX0sZS5wcm90b3R5cGUuX2luaXREZXZpY2VQaXhlbFJhdGlvT2JzZXJ2YWJsZT1mdW5jdGlvbigpe3ZhciBlPXRoaXM7aWYobnVsbCE9PXRoaXMuX2NhbnZhc0VsZW1lbnQpe3ZhciB0PXUodGhpcy5fY2FudmFzRWxlbWVudCk7aWYobnVsbD09PXQpdGhyb3cgbmV3IEVycm9yKCJObyB3aW5kb3cgaXMgYXNzb2NpYXRlZCB3aXRoIHRoZSBjYW52YXMiKQo7dGhpcy5fZGV2aWNlUGl4ZWxSYXRpb09ic2VydmFibGU9KDAsci5jcmVhdGVPYnNlcnZhYmxlKSh0KSx0aGlzLl9kZXZpY2VQaXhlbFJhdGlvT2JzZXJ2YWJsZS5zdWJzY3JpYmUoKGZ1bmN0aW9uKCl7cmV0dXJuIGUuX2ludmFsaWRhdGVCaXRtYXBTaXplKCl9KSksdGhpcy5faW52YWxpZGF0ZUJpdG1hcFNpemUoKX19LGUucHJvdG90eXBlLl9pbnZhbGlkYXRlQml0bWFwU2l6ZT1mdW5jdGlvbigpe3ZhciBlLHQ7aWYobnVsbCE9PXRoaXMuX2NhbnZhc0VsZW1lbnQpe3ZhciBuPXUodGhpcy5fY2FudmFzRWxlbWVudCk7aWYobnVsbCE9PW4pe3ZhciByPW51bGwhPT0odD1udWxsPT09KGU9dGhpcy5fZGV2aWNlUGl4ZWxSYXRpb09ic2VydmFibGUpfHx2b2lkIDA9PT1lP3ZvaWQgMDplLnZhbHVlKSYmdm9pZCAwIT09dD90Om4uZGV2aWNlUGl4ZWxSYXRpbyxhPXRoaXMuX2NhbnZhc0VsZW1lbnQuZ2V0Q2xpZW50UmVjdHMoKSxzPXZvaWQgMCE9PWFbMF0/ZnVuY3Rpb24oZSx0KXtyZXR1cm4oMCxpLnNpemUpKHt3aWR0aDpNYXRoLnJvdW5kKGUubGVmdCp0K2Uud2lkdGgqdCktTWF0aC5yb3VuZChlLmxlZnQqdCksaGVpZ2h0Ok1hdGgucm91bmQoZS50b3AqdCtlLmhlaWdodCp0KS1NYXRoLnJvdW5kKGUudG9wKnQpfSl9KGFbMF0scik6KDAsaS5zaXplKSh7d2lkdGg6dGhpcy5fY2FudmFzRWxlbWVudENsaWVudFNpemUud2lkdGgqcixoZWlnaHQ6dGhpcy5fY2FudmFzRWxlbWVudENsaWVudFNpemUuaGVpZ2h0KnJ9KTt0aGlzLl9zdWdnZXN0TmV3Qml0bWFwU2l6ZShzKX19fSxlLnByb3RvdHlwZS5faW5pdFJlc2l6ZU9ic2VydmVyPWZ1bmN0aW9uKCl7dmFyIGU9dGhpcztudWxsIT09dGhpcy5fY2FudmFzRWxlbWVudCYmKHRoaXMuX2NhbnZhc0VsZW1lbnRSZXNpemVPYnNlcnZlcj1uZXcgUmVzaXplT2JzZXJ2ZXIoKGZ1bmN0aW9uKHQpe3ZhciBuPXQuZmluZCgoZnVuY3Rpb24odCl7cmV0dXJuIHQudGFyZ2V0PT09ZS5fY2FudmFzRWxlbWVudH0pKTtpZihuJiZuLmRldmljZVBpeGVsQ29udGVudEJveFNpemUmJm4uZGV2aWNlUGl4ZWxDb250ZW50Qm94U2l6ZVswXSl7dmFyIHI9bi5kZXZpY2VQaXhlbENvbnRlbnRCb3hTaXplWzBdLGE9KDAsaS5zaXplKSh7d2lkdGg6ci5pbmxpbmVTaXplLGhlaWdodDpyLmJsb2NrU2l6ZX0pO2UuX3N1Z2dlc3ROZXdCaXRtYXBTaXplKGEpfX0pKSx0aGlzLl9jYW52YXNFbGVtZW50UmVzaXplT2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzLl9jYW52YXNFbGVtZW50LHtib3g6ImRldmljZS1waXhlbC1jb250ZW50LWJveCJ9KSl9LGV9KCk7ZnVuY3Rpb24gcyhlLHQpe2lmKCJkZXZpY2UtcGl4ZWwtY29udGVudC1ib3giPT09dC50eXBlKXJldHVybiBuZXcgYShlLHQudHJhbnNmb3JtLHQub3B0aW9ucyk7dGhyb3cgbmV3IEVycm9yKCJVbnN1cHBvcnRlZCBiaW5kaW5nIHRhcmdldCIpfWZ1bmN0aW9uIHUoZSl7cmV0dXJuIGUub3duZXJEb2N1bWVudC5kZWZhdWx0Vmlld312YXIgbz1mdW5jdGlvbigpe2Z1bmN0aW9uIGUoZSx0LG4pe2lmKDA9PT10LndpZHRofHwwPT09dC5oZWlnaHQpdGhyb3cgbmV3IFR5cGVFcnJvcigiUmVuZGVyaW5nIHRhcmdldCBjb3VsZCBvbmx5IGJlIGNyZWF0ZWQgb24gYSBtZWRpYSB3aXRoIHBvc2l0aXZlIHdpZHRoIGFuZCBoZWlnaHQiKTtpZih0aGlzLl9tZWRpYVNpemU9dCwwPT09bi53aWR0aHx8MD09PW4uaGVpZ2h0KXRocm93IG5ldyBUeXBlRXJyb3IoIlJlbmRlcmluZyB0YXJnZXQgY291bGQgb25seSBiZSBjcmVhdGVkIHVzaW5nIGEgYml0bWFwIHdpdGggcG9zaXRpdmUgaW50ZWdlciB3aWR0aCBhbmQgaGVpZ2h0Iik7dGhpcy5fYml0bWFwU2l6ZT1uLHRoaXMuX2NvbnRleHQ9ZX1yZXR1cm4gZS5wcm90b3R5cGUudXNlTWVkaWFDb29yZGluYXRlU3BhY2U9ZnVuY3Rpb24oZSl7dHJ5e3JldHVybiB0aGlzLl9jb250ZXh0LnNhdmUoKSx0aGlzLl9jb250ZXh0LnNldFRyYW5zZm9ybSgxLDAsMCwxLDAsMCksdGhpcy5fY29udGV4dC5zY2FsZSh0aGlzLl9ob3Jpem9udGFsUGl4ZWxSYXRpbyx0aGlzLl92ZXJ0aWNhbFBpeGVsUmF0aW8pLGUoe2NvbnRleHQ6dGhpcy5fY29udGV4dCxtZWRpYVNpemU6dGhpcy5fbWVkaWFTaXplfSl9ZmluYWxseXt0aGlzLl9jb250ZXh0LnJlc3RvcmUoKX19LGUucHJvdG90eXBlLnVzZUJpdG1hcENvb3JkaW5hdGVTcGFjZT1mdW5jdGlvbihlKXt0cnl7cmV0dXJuIHRoaXMuX2NvbnRleHQuc2F2ZSgpLHRoaXMuX2NvbnRleHQuc2V0VHJhbnNmb3JtKDEsMCwwLDEsMCwwKSxlKHtjb250ZXh0OnRoaXMuX2NvbnRleHQsbWVkaWFTaXplOnRoaXMuX21lZGlhU2l6ZSxiaXRtYXBTaXplOnRoaXMuX2JpdG1hcFNpemUsaG9yaXpvbnRhbFBpeGVsUmF0aW86dGhpcy5faG9yaXpvbnRhbFBpeGVsUmF0aW8sdmVydGljYWxQaXhlbFJhdGlvOnRoaXMuX3ZlcnRpY2FsUGl4ZWxSYXRpb30pfWZpbmFsbHl7dGhpcy5fY29udGV4dC5yZXN0b3JlKCl9fSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsIl9ob3Jpem9udGFsUGl4ZWxSYXRpbyIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9iaXRtYXBTaXplLndpZHRoL3RoaXMuX21lZGlhU2l6ZS53aWR0aH0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsIl92ZXJ0aWNhbFBpeGVsUmF0aW8iLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYml0bWFwU2l6ZS5oZWlnaHQvdGhpcy5fbWVkaWFTaXplLmhlaWdodH0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxlfSgpO2Z1bmN0aW9uIGwoZSx0KXt2YXIgbj1lLmNhbnZhc0VsZW1lbnRDbGllbnRTaXplO2lmKDA9PT1uLndpZHRofHwwPT09bi5oZWlnaHQpcmV0dXJuIG51bGw7dmFyIGk9ZS5iaXRtYXBTaXplO2lmKDA9PT1pLndpZHRofHwwPT09aS5oZWlnaHQpcmV0dXJuIG51bGw7dmFyIHI9ZS5jYW52YXNFbGVtZW50LmdldENvbnRleHQoIjJkIix0KTtyZXR1cm4gbnVsbD09PXI/bnVsbDpuZXcgbyhyLG4saSl9fSw3OTgwOTQoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7ZGVmYXVsdDooKT0+aX0pCjtjb25zdCBpPWZ1bmN0aW9uKGUsdCl7Zm9yKHZhciBuPS0xLGk9bnVsbD09ZT8wOmUubGVuZ3RoLHI9QXJyYXkoaSk7KytuPGk7KXJbbl09dChlW25dLG4sZSk7cmV0dXJuIHJ9fSw2NzkyKGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse2RlZmF1bHQ6KCk9Pml9KTtjb25zdCBpPWZ1bmN0aW9uKGUsdCxuLGkpe3ZhciByPS0xLGE9bnVsbD09ZT8wOmUubGVuZ3RoO2ZvcihpJiZhJiYobj1lWysrcl0pOysrcjxhOyluPXQobixlW3JdLHIsZSk7cmV0dXJuIG59fSwxOTMzODIoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7ZGVmYXVsdDooKT0+YX0pO3ZhciBpPW4oMjQ1MDcpLHI9bigzOTI5MDgpO2NvbnN0IGE9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZnVuY3Rpb24obixpKXtpZihudWxsPT1uKXJldHVybiBuO2lmKCEoMCxyLmRlZmF1bHQpKG4pKXJldHVybiBlKG4saSk7Zm9yKHZhciBhPW4ubGVuZ3RoLHM9dD9hOi0xLHU9T2JqZWN0KG4pOyh0P3MtLTorK3M8YSkmJiExIT09aSh1W3NdLHMsdSk7KTtyZXR1cm4gbn19KGkuZGVmYXVsdCl9LDk4MTM2NShlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtkZWZhdWx0OigpPT5sfSk7dmFyIGk9big0NDg2MjYpLHI9big4NzI5OTkpLGE9big1MzE1NTcpLHM9bigyOTU2MzUpLHU9ci5kZWZhdWx0P3IuZGVmYXVsdC5pc0NvbmNhdFNwcmVhZGFibGU6dm9pZCAwO2NvbnN0IG89ZnVuY3Rpb24oZSl7cmV0dXJuKDAscy5kZWZhdWx0KShlKXx8KDAsYS5kZWZhdWx0KShlKXx8ISEodSYmZSYmZVt1XSl9O2NvbnN0IGw9ZnVuY3Rpb24gZSh0LG4scixhLHMpe3ZhciB1PS0xLGw9dC5sZW5ndGg7Zm9yKHJ8fChyPW8pLHN8fChzPVtdKTsrK3U8bDspe3ZhciBjPXRbdV07bj4wJiZyKGMpP24+MT9lKGMsbi0xLHIsYSxzKTooMCxpLmRlZmF1bHQpKHMsYyk6YXx8KHNbcy5sZW5ndGhdPWMpfXJldHVybiBzfX0sMjQ1MDcoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7ZGVmYXVsdDooKT0+YX0pO3ZhciBpPW4oMjU4MjYpLHI9bigzMDkwODApO2NvbnN0IGE9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZSYmKDAsaS5kZWZhdWx0KShlLHQsci5kZWZhdWx0KX19LDk4MDQxNihlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtkZWZhdWx0OigpPT5hfSk7dmFyIGk9bigyNjk2MjcpLHI9big3MzAxOSk7Y29uc3QgYT1mdW5jdGlvbihlLHQpe2Zvcih2YXIgbj0wLGE9KHQ9KDAsaS5kZWZhdWx0KSh0LGUpKS5sZW5ndGg7bnVsbCE9ZSYmbjxhOyllPWVbKDAsci5kZWZhdWx0KSh0W24rK10pXTtyZXR1cm4gbiYmbj09YT9lOnZvaWQgMH19LDMzNDQxMyhlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtkZWZhdWx0OigpPT53fSk7dmFyIGk9big4ODY1MTQpLHI9big4NzI4ODEpO2NvbnN0IGE9ZnVuY3Rpb24oZSx0LG4sYSl7dmFyIHM9bi5sZW5ndGgsdT1zLG89IWE7aWYobnVsbD09ZSlyZXR1cm4hdTtmb3IoZT1PYmplY3QoZSk7cy0tOyl7dmFyIGw9bltzXTtpZihvJiZsWzJdP2xbMV0hPT1lW2xbMF1dOiEobFswXWluIGUpKXJldHVybiExfWZvcig7KytzPHU7KXt2YXIgYz0obD1uW3NdKVswXSxmPWVbY10sZD1sWzFdO2lmKG8mJmxbMl0pe2lmKHZvaWQgMD09PWYmJiEoYyBpbiBlKSlyZXR1cm4hMX1lbHNle3ZhciBoPW5ldyBpLmRlZmF1bHQ7aWYoYSl2YXIgdj1hKGYsZCxjLGUsdCxoKTtpZighKHZvaWQgMD09PXY/KDAsci5kZWZhdWx0KShkLGYsMyxhLGgpOnYpKXJldHVybiExfX1yZXR1cm4hMH07dmFyIHM9big4ODAxMTUpO2NvbnN0IHU9ZnVuY3Rpb24oZSl7cmV0dXJuIGU9PWUmJiEoMCxzLmRlZmF1bHQpKGUpfTt2YXIgbz1uKDMwOTA4MCk7Y29uc3QgbD1mdW5jdGlvbihlKXtmb3IodmFyIHQ9KDAsby5kZWZhdWx0KShlKSxuPXQubGVuZ3RoO24tLTspe3ZhciBpPXRbbl0scj1lW2ldO3Rbbl09W2kscix1KHIpXX1yZXR1cm4gdH07Y29uc3QgYz1mdW5jdGlvbihlLHQpe3JldHVybiBmdW5jdGlvbihuKXtyZXR1cm4gbnVsbCE9biYmKG5bZV09PT10JiYodm9pZCAwIT09dHx8ZSBpbiBPYmplY3QobikpKX19O2NvbnN0IGY9ZnVuY3Rpb24oZSl7dmFyIHQ9bChlKTtyZXR1cm4gMT09dC5sZW5ndGgmJnRbMF1bMl0/Yyh0WzBdWzBdLHRbMF1bMV0pOmZ1bmN0aW9uKG4pe3JldHVybiBuPT09ZXx8YShuLGUsdCl9fTt2YXIgZD1uKDU1NDcxOCksaD1uKDIxODY2OSksdj1uKDk4ODk5MikscD1uKDczMDE5KTtjb25zdCBnPWZ1bmN0aW9uKGUsdCl7cmV0dXJuKDAsdi5kZWZhdWx0KShlKSYmdSh0KT9jKCgwLHAuZGVmYXVsdCkoZSksdCk6ZnVuY3Rpb24obil7dmFyIGk9KDAsZC5kZWZhdWx0KShuLGUpO3JldHVybiB2b2lkIDA9PT1pJiZpPT09dD8oMCxoLmRlZmF1bHQpKG4sZSk6KDAsci5kZWZhdWx0KSh0LGksMyl9fTt2YXIgbT1uKDIzMjg1NCksXz1uKDI5NTYzNSk7Y29uc3QgYj1mdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIG51bGw9PXQ/dm9pZCAwOnRbZV19fTt2YXIgej1uKDk4MDQxNik7Y29uc3QgUz1mdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuKDAsei5kZWZhdWx0KSh0LGUpfX07Y29uc3QgeT1mdW5jdGlvbihlKXtyZXR1cm4oMCx2LmRlZmF1bHQpKGUpP2IoKDAscC5kZWZhdWx0KShlKSk6UyhlKX07Y29uc3Qgdz1mdW5jdGlvbihlKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgZT9lOm51bGw9PWU/bS5kZWZhdWx0OiJvYmplY3QiPT10eXBlb2YgZT8oMCxfLmRlZmF1bHQpKGUpP2coZVswXSxlWzFdKTpmKGUpOnkoZSl9fSw2ODUxNTQoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7ZGVmYXVsdDooKT0+c30pO3ZhciBpPW4oOTgwNDE2KSxyPW4oMjk3MTI0KSxhPW4oMjY5NjI3KTtjb25zdCBzPWZ1bmN0aW9uKGUsdCxuKXtmb3IodmFyIHM9LTEsdT10Lmxlbmd0aCxvPXt9Oysrczx1Oyl7dmFyIGw9dFtzXSxjPSgwLGkuZGVmYXVsdCkoZSxsKTtuKGMsbCkmJigwLHIuZGVmYXVsdCkobywoMCxhLmRlZmF1bHQpKGwsZSksYyl9cmV0dXJuIG99fSwyOTcxMjQoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7ZGVmYXVsdDooKT0+b30pCjt2YXIgaT1uKDE2ODUzMykscj1uKDI2OTYyNyksYT1uKDkyMTE0Mykscz1uKDg4MDExNSksdT1uKDczMDE5KTtjb25zdCBvPWZ1bmN0aW9uKGUsdCxuLG8pe2lmKCEoMCxzLmRlZmF1bHQpKGUpKXJldHVybiBlO2Zvcih2YXIgbD0tMSxjPSh0PSgwLHIuZGVmYXVsdCkodCxlKSkubGVuZ3RoLGY9Yy0xLGQ9ZTtudWxsIT1kJiYrK2w8Yzspe3ZhciBoPSgwLHUuZGVmYXVsdCkodFtsXSksdj1uO2lmKCJfX3Byb3RvX18iPT09aHx8ImNvbnN0cnVjdG9yIj09PWh8fCJwcm90b3R5cGUiPT09aClyZXR1cm4gZTtpZihsIT1mKXt2YXIgcD1kW2hdO3ZvaWQgMD09PSh2PW8/byhwLGgsZCk6dm9pZCAwKSYmKHY9KDAscy5kZWZhdWx0KShwKT9wOigwLGEuZGVmYXVsdCkodFtsKzFdKT9bXTp7fSl9KDAsaS5kZWZhdWx0KShkLGgsdiksZD1kW2hdfXJldHVybiBlfX0sNDkzNzE4KGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse2RlZmF1bHQ6KCk9Pml9KTtjb25zdCBpPWZ1bmN0aW9uKGUsdCxuKXt2YXIgaT0tMSxyPWUubGVuZ3RoO3Q8MCYmKHQ9LXQ+cj8wOnIrdCksKG49bj5yP3I6bik8MCYmKG4rPXIpLHI9dD5uPzA6bi10Pj4+MCx0Pj4+PTA7Zm9yKHZhciBhPUFycmF5KHIpOysraTxyOylhW2ldPWVbaSt0XTtyZXR1cm4gYX19LDI0MjcwOChlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtkZWZhdWx0OigpPT5jfSk7dmFyIGk9bigyNjk2MjcpLHI9big5MjYwODgpLGE9big5ODA0MTYpLHM9big0OTM3MTgpO2NvbnN0IHU9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdC5sZW5ndGg8Mj9lOigwLGEuZGVmYXVsdCkoZSwoMCxzLmRlZmF1bHQpKHQsMCwtMSkpfTt2YXIgbz1uKDczMDE5KSxsPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7Y29uc3QgYz1mdW5jdGlvbihlLHQpe3ZhciBuPS0xLGE9KHQ9KDAsaS5kZWZhdWx0KSh0LGUpKS5sZW5ndGg7aWYoIWEpcmV0dXJuITA7Zm9yKDsrK248YTspe3ZhciBzPSgwLG8uZGVmYXVsdCkodFtuXSk7aWYoIl9fcHJvdG9fXyI9PT1zJiYhbC5jYWxsKGUsIl9fcHJvdG9fXyIpKXJldHVybiExO2lmKCgiY29uc3RydWN0b3IiPT09c3x8InByb3RvdHlwZSI9PT1zKSYmbjxhLTEpcmV0dXJuITF9dmFyIGM9dShlLHQpO3JldHVybiBudWxsPT1jfHxkZWxldGUgY1soMCxvLmRlZmF1bHQpKCgwLHIuZGVmYXVsdCkodCkpXX19LDI2OTYyNyhlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtkZWZhdWx0OigpPT5jfSk7dmFyIGk9bigyOTU2MzUpLHI9big5ODg5OTIpLGE9big2NjMwNDYpO3ZhciBzPS9bXi5bXF1dK3xcWyg/OigtP1xkKyg/OlwuXGQrKT8pfChbIiddKSgoPzooPyFcMilbXlxcXXxcXC4pKj8pXDIpXF18KD89KD86XC58XFtcXSkoPzpcLnxcW1xdfCQpKS9nLHU9L1xcKFxcKT8vZztjb25zdCBvPWZ1bmN0aW9uKGUpe3ZhciB0PSgwLGEuZGVmYXVsdCkoZSwoZnVuY3Rpb24oZSl7cmV0dXJuIDUwMD09PW4uc2l6ZSYmbi5jbGVhcigpLGV9KSksbj10LmNhY2hlO3JldHVybiB0fSgoZnVuY3Rpb24oZSl7dmFyIHQ9W107cmV0dXJuIDQ2PT09ZS5jaGFyQ29kZUF0KDApJiZ0LnB1c2goIiIpLGUucmVwbGFjZShzLChmdW5jdGlvbihlLG4saSxyKXt0LnB1c2goaT9yLnJlcGxhY2UodSwiJDEiKTpufHxlKX0pKSx0fSkpO3ZhciBsPW4oMjU5NTQyKTtjb25zdCBjPWZ1bmN0aW9uKGUsdCl7cmV0dXJuKDAsaS5kZWZhdWx0KShlKT9lOigwLHIuZGVmYXVsdCkoZSx0KT9bZV06bygoMCxsLmRlZmF1bHQpKGUpKX19LDI2MDgwNihlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtkZWZhdWx0OigpPT5zfSk7dmFyIGk9big0NzY2NCkscj1uKDM3MjAzNSksYT1uKDcwOTA1MSk7Y29uc3Qgcz1mdW5jdGlvbihlKXtyZXR1cm4oMCxhLmRlZmF1bHQpKCgwLHIuZGVmYXVsdCkoZSx2b2lkIDAsaS5kZWZhdWx0KSxlKyIiKX19LDk4ODk5MihlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtkZWZhdWx0OigpPT51fSk7dmFyIGk9bigyOTU2MzUpLHI9big3MTczMzIpLGE9L1wufFxbKD86W15bXF1dKnwoWyInXSkoPzooPyFcMSlbXlxcXXxcXC4pKj9cMSlcXS8scz0vXlx3KiQvO2NvbnN0IHU9ZnVuY3Rpb24oZSx0KXtpZigoMCxpLmRlZmF1bHQpKGUpKXJldHVybiExO3ZhciBuPXR5cGVvZiBlO3JldHVybiEoIm51bWJlciIhPW4mJiJzeW1ib2wiIT1uJiYiYm9vbGVhbiIhPW4mJm51bGwhPWUmJiEoMCxyLmRlZmF1bHQpKGUpKXx8KHMudGVzdChlKXx8IWEudGVzdChlKXx8bnVsbCE9dCYmZSBpbiBPYmplY3QodCkpfX0sNzMwMTkoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7ZGVmYXVsdDooKT0+cn0pO3ZhciBpPW4oNzE3MzMyKTtjb25zdCByPWZ1bmN0aW9uKGUpe2lmKCJzdHJpbmciPT10eXBlb2YgZXx8KDAsaS5kZWZhdWx0KShlKSlyZXR1cm4gZTt2YXIgdD1lKyIiO3JldHVybiIwIj09dCYmMS9lPT0tMS8wPyItMCI6dH19LDQ0MTgwNyhlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtkZWZhdWx0OigpPT5yfSk7dmFyIGk9big0OTMwMTgpO2NvbnN0IHI9ZnVuY3Rpb24oZSl7cmV0dXJuKDAsaS5kZWZhdWx0KShlLDQpfX0sODc3ODU5KGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse2RlZmF1bHQ6KCk9PmZ9KTt2YXIgaT1uKDMzNDQxMykscj1uKDM5MjkwOCksYT1uKDMwOTA4MCk7Y29uc3Qgcz1mdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24odCxuLHMpe3ZhciB1PU9iamVjdCh0KTtpZighKDAsci5kZWZhdWx0KSh0KSl7dmFyIG89KDAsaS5kZWZhdWx0KShuLDMpO3Q9KDAsYS5kZWZhdWx0KSh0KSxuPWZ1bmN0aW9uKGUpe3JldHVybiBvKHVbZV0sZSx1KX19dmFyIGw9ZSh0LG4scyk7cmV0dXJuIGw+LTE/dVtvP3RbbF06bF06dm9pZCAwfX07dmFyIHU9big2ODg5NjUpLG89big2OTIzNjkpLGw9TWF0aC5tYXgsYz1NYXRoLm1pbjtjb25zdCBmPXMoKGZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1udWxsPT1lPzA6ZS5sZW5ndGg7aWYoIXIpcmV0dXJuLTE7dmFyIGE9ci0xO3JldHVybiB2b2lkIDAhPT1uJiYoYT0oMCxvLmRlZmF1bHQpKG4pLGE9bjwwP2wocithLDApOmMoYSxyLTEpKSwoMCx1LmRlZmF1bHQpKGUsKDAsaS5kZWZhdWx0KSh0LDMpLGEsITApfSkpfSw0NzY2NChlLHQsbil7CiJ1c2Ugc3RyaWN0IjtuLmQodCx7ZGVmYXVsdDooKT0+cn0pO3ZhciBpPW4oOTgxMzY1KTtjb25zdCByPWZ1bmN0aW9uKGUpe3JldHVybihudWxsPT1lPzA6ZS5sZW5ndGgpPygwLGkuZGVmYXVsdCkoZSwxKTpbXX19LDU1NDcxOChlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtkZWZhdWx0OigpPT5yfSk7dmFyIGk9big5ODA0MTYpO2NvbnN0IHI9ZnVuY3Rpb24oZSx0LG4pe3ZhciByPW51bGw9PWU/dm9pZCAwOigwLGkuZGVmYXVsdCkoZSx0KTtyZXR1cm4gdm9pZCAwPT09cj9uOnJ9fSwyMTg2NjkoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7ZGVmYXVsdDooKT0+Zn0pO2NvbnN0IGk9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gbnVsbCE9ZSYmdCBpbiBPYmplY3QoZSl9O3ZhciByPW4oMjY5NjI3KSxhPW4oNTMxNTU3KSxzPW4oMjk1NjM1KSx1PW4oOTIxMTQzKSxvPW4oOTkwNjA0KSxsPW4oNzMwMTkpO2NvbnN0IGM9ZnVuY3Rpb24oZSx0LG4pe2Zvcih2YXIgaT0tMSxjPSh0PSgwLHIuZGVmYXVsdCkodCxlKSkubGVuZ3RoLGY9ITE7KytpPGM7KXt2YXIgZD0oMCxsLmRlZmF1bHQpKHRbaV0pO2lmKCEoZj1udWxsIT1lJiZuKGUsZCkpKWJyZWFrO2U9ZVtkXX1yZXR1cm4gZnx8KytpIT1jP2Y6ISEoYz1udWxsPT1lPzA6ZS5sZW5ndGgpJiYoMCxvLmRlZmF1bHQpKGMpJiYoMCx1LmRlZmF1bHQpKGQsYykmJigoMCxzLmRlZmF1bHQpKGUpfHwoMCxhLmRlZmF1bHQpKGUpKX07Y29uc3QgZj1mdW5jdGlvbihlLHQpe3JldHVybiBudWxsIT1lJiZjKGUsdCxpKX19LDE0NDU1NShlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtkZWZhdWx0OigpPT5kfSk7dmFyIGk9big4MzA4NzUpLHI9big5Njk3ODUpLGE9big1MzE1NTcpLHM9bigyOTU2MzUpLHU9bigzOTI5MDgpLG89big2NTkwMTgpLGw9big2OTM5NDEpLGM9bigxNjUyNjcpLGY9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTtjb25zdCBkPWZ1bmN0aW9uKGUpe2lmKG51bGw9PWUpcmV0dXJuITA7aWYoKDAsdS5kZWZhdWx0KShlKSYmKCgwLHMuZGVmYXVsdCkoZSl8fCJzdHJpbmciPT10eXBlb2YgZXx8ImZ1bmN0aW9uIj09dHlwZW9mIGUuc3BsaWNlfHwoMCxvLmRlZmF1bHQpKGUpfHwoMCxjLmRlZmF1bHQpKGUpfHwoMCxhLmRlZmF1bHQpKGUpKSlyZXR1cm4hZS5sZW5ndGg7dmFyIHQ9KDAsci5kZWZhdWx0KShlKTtpZigiW29iamVjdCBNYXBdIj09dHx8IltvYmplY3QgU2V0XSI9PXQpcmV0dXJuIWUuc2l6ZTtpZigoMCxsLmRlZmF1bHQpKGUpKXJldHVybiEoMCxpLmRlZmF1bHQpKGUpLmxlbmd0aDtmb3IodmFyIG4gaW4gZSlpZihmLmNhbGwoZSxuKSlyZXR1cm4hMTtyZXR1cm4hMH19LDkyNjA4OChlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtkZWZhdWx0OigpPT5pfSk7Y29uc3QgaT1mdW5jdGlvbihlKXt2YXIgdD1udWxsPT1lPzA6ZS5sZW5ndGg7cmV0dXJuIHQ/ZVt0LTFdOnZvaWQgMH19LDk2NDcyMChlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtkZWZhdWx0OigpPT5kfSk7dmFyIGk9big3OTgwOTQpLHI9big0OTMwMTgpLGE9bigyNDI3MDgpLHM9bigyNjk2MjcpLHU9big2MTg1Nyksbz1uKDkzMTQzMyk7Y29uc3QgbD1mdW5jdGlvbihlKXtyZXR1cm4oMCxvLmRlZmF1bHQpKGUpP3ZvaWQgMDplfTt2YXIgYz1uKDI2MDgwNiksZj1uKDk5MTU5OSk7Y29uc3QgZD0oMCxjLmRlZmF1bHQpKChmdW5jdGlvbihlLHQpe3ZhciBuPXt9O2lmKG51bGw9PWUpcmV0dXJuIG47dmFyIG89ITE7dD0oMCxpLmRlZmF1bHQpKHQsKGZ1bmN0aW9uKHQpe3JldHVybiB0PSgwLHMuZGVmYXVsdCkodCxlKSxvfHwobz10Lmxlbmd0aD4xKSx0fSkpLCgwLHUuZGVmYXVsdCkoZSwoMCxmLmRlZmF1bHQpKGUpLG4pLG8mJihuPSgwLHIuZGVmYXVsdCkobiw3LGwpKTtmb3IodmFyIGM9dC5sZW5ndGg7Yy0tOykoMCxhLmRlZmF1bHQpKG4sdFtjXSk7cmV0dXJuIG59KSl9LDYzOTc4OChlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtkZWZhdWx0OigpPT51fSk7dmFyIGk9big3OTgwOTQpLHI9bigzMzQ0MTMpLGE9big2ODUxNTQpLHM9big5OTE1OTkpO2NvbnN0IHU9ZnVuY3Rpb24oZSx0KXtpZihudWxsPT1lKXJldHVybnt9O3ZhciBuPSgwLGkuZGVmYXVsdCkoKDAscy5kZWZhdWx0KShlKSwoZnVuY3Rpb24oZSl7cmV0dXJuW2VdfSkpO3JldHVybiB0PSgwLHIuZGVmYXVsdCkodCksKDAsYS5kZWZhdWx0KShlLG4sKGZ1bmN0aW9uKGUsbil7cmV0dXJuIHQoZSxuWzBdKX0pKX19LDg2NDAzNihlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtkZWZhdWx0OigpPT5vfSk7dmFyIGk9big2NzkyKSxyPW4oMTkzMzgyKSxhPW4oMzM0NDEzKTtjb25zdCBzPWZ1bmN0aW9uKGUsdCxuLGkscil7cmV0dXJuIHIoZSwoZnVuY3Rpb24oZSxyLGEpe249aT8oaT0hMSxlKTp0KG4sZSxyLGEpfSkpLG59O3ZhciB1PW4oMjk1NjM1KTtjb25zdCBvPWZ1bmN0aW9uKGUsdCxuKXt2YXIgbz0oMCx1LmRlZmF1bHQpKGUpP2kuZGVmYXVsdDpzLGw9YXJndW1lbnRzLmxlbmd0aDwzO3JldHVybiBvKGUsKDAsYS5kZWZhdWx0KSh0LDQpLG4sbCxyLmRlZmF1bHQpfX0sMTA1OTcwKGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse2RlZmF1bHQ6KCk9PnJ9KTt2YXIgaT1uKDI5NzEyNCk7Y29uc3Qgcj1mdW5jdGlvbihlLHQsbil7cmV0dXJuIG51bGw9PWU/ZTooMCxpLmRlZmF1bHQpKGUsdCxuKX19LDI1OTU0MihlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtkZWZhdWx0OigpPT5jfSk7dmFyIGk9big4NzI5OTkpLHI9big3OTgwOTQpLGE9bigyOTU2MzUpLHM9big3MTczMzIpLHU9aS5kZWZhdWx0P2kuZGVmYXVsdC5wcm90b3R5cGU6dm9pZCAwLG89dT91LnRvU3RyaW5nOnZvaWQgMDtjb25zdCBsPWZ1bmN0aW9uIGUodCl7aWYoInN0cmluZyI9PXR5cGVvZiB0KXJldHVybiB0O2lmKCgwLGEuZGVmYXVsdCkodCkpcmV0dXJuKDAsci5kZWZhdWx0KSh0LGUpKyIiO2lmKCgwLHMuZGVmYXVsdCkodCkpcmV0dXJuIG8/by5jYWxsKHQpOiIiO3ZhciBuPXQrIiI7cmV0dXJuIjAiPT1uJiYxL3Q9PS0xLzA/Ii0wIjpufTtjb25zdCBjPWZ1bmN0aW9uKGUpe3JldHVybiBudWxsPT1lPyIiOmwoZSl9fSwKOTE3MzcxKGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse2RlZmF1bHQ6KCk9PnJ9KTt2YXIgaT1uKDI0MjcwOCk7Y29uc3Qgcj1mdW5jdGlvbihlLHQpe3JldHVybiBudWxsPT1lfHwoMCxpLmRlZmF1bHQpKGUsdCl9fX1dKTs="}},"time_used":6,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":6,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"scanner.tradingview.com/symbol?symbol=BITSTAMP%3ABTCUSD\u0026fields=market_cap_calc%2Cmarket_cap_diluted_calc%2Ctotal_shares_outstanding%2Ctotal_value_traded%2C24h_vol_to_market_cap%2Cfully_diluted_value%2Cdex_total_liquidity%2Cdex_trading_volume_24h\u0026no_404=true\u0026label-product=right-details","fqdn":"scanner.tradingview.com","domain":"tradingview.com","tld":"com"},"ip":{"addr":"143.204.238.100","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"fetch","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:15.186Z","timestamp":1785148035186,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.tradingview.com","organization":""},"issuer":{"commonName":"Amazon RSA 2048 M04","organization":"Amazon"},"validity":{"start":"Thu, 09 Oct 2025 00:00:00 GMT","end":"Fri, 06 Nov 2026 23:59:59 GMT"},"fingerprint":{"sha1":"02:47:4D:AC:A6:12:65:AD:C2:19:CD:7E:61:B8:BF:E1:D8:36:CF:00","sha256":"12:7C:86:50:31:B1:3E:03:76:8B:F1:84:D4:AD:BC:95:0E:C1:60:40:F5:CE:75:F0:11:AF:91:BC:55:C1:D7:36"}}},"request":{"raw":"GET /symbol?symbol=BITSTAMP%3ABTCUSD\u0026fields=market_cap_calc%2Cmarket_cap_diluted_calc%2Ctotal_shares_outstanding%2Ctotal_value_traded%2C24h_vol_to_market_cap%2Cfully_diluted_value%2Cdex_total_liquidity%2Cdex_trading_volume_24h\u0026no_404=true\u0026label-product=right-details HTTP/1.1\r\nHost: scanner.tradingview.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: application/json\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nReferer: https://s.tradingview.com/\r\nOrigin: https://s.tradingview.com\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: empty\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-site\r\nPriority: u=4\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\ncontent-type: application/json\r\ndate: Mon, 27 Jul 2026 10:27:15 GMT\r\ncontent-encoding: gzip\r\nx-cache-level: hit1\r\nserver: tv\r\nvia: 76.164.233.87:443, 1.1 b4cf31e054e1e158a1bbb0df99815e30.cloudfront.net (CloudFront)\r\nstrict-transport-security: max-age=63072000; includeSubDomains; preload\r\naccess-control-allow-origin: https://s.tradingview.com\r\naccess-control-allow-headers: Referer\r\naccess-control-allow-methods: GET\r\naccess-control-allow-credentials: true\r\naccess-control-max-age: 86400\r\nvary: Origin\r\nx-cache: Miss from cloudfront\r\nx-amz-cf-pop: ARN53-P4\r\nx-amz-cf-id: UaLFfLD8A5R5-w-ywuxT-xUPEY4ZucLur8heSrmgEB9pW-VhKHnkgw==\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":"Amazon CloudFront","description":"Amazon CloudFront is a fast content delivery network (CDN) service that securely delivers data, videos, applications, and APIs to customers globally with low latency, high transfer speeds.","website":"https://aws.amazon.com/cloudfront/","common_platform_enumeration":"","icon":"Amazon Cloudfront.svg","categories":["CDN"]},{"name":"Amazon Web Services","description":"Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.","website":"https://aws.amazon.com/","common_platform_enumeration":"","icon":"Amazon Web Services.svg","categories":["PaaS"]}],"data":{"size":263,"size_decoded":844,"mime_type":"application/json","magic":"JSON text data","md5":"ecc917ddd18bf06a4583c131f82d91d0","sha1":"3478c665cab0560b4bebaee7e6051f9464e69b38","sha256":"8deb23623b9d1a7cfbeafb2599179395573b7130b416486ece5eb8b71b099595","sha512":"e577cb6543ddc5986008f4626c7864d455f74fd5cd4c3f323fba94638f0ea65db6aae5259bd2417aa169ac8e9592028c460b55da1d80b03f79def97d97825a2a","ssdeep":"","tlshash":"7ad09521f878dd487cc5e894d1733e01517d2513248c7d5bcc75cb4504f43d101c1a85","first_seen":"2026-07-27T10:28:06.236709Z","last_seen":"2026-07-27T10:28:06.236709Z","times_seen":1,"resource_available":false,"data":"eyIyNGhfdm9sX3RvX21hcmtldF9jYXAiOm51bGwsImRleF90b3RhbF9saXF1aWRpdHkiOm51bGwsImRleF90cmFkaW5nX3ZvbHVtZV8yNGgiOm51bGwsImZ1bGx5X2RpbHV0ZWRfdmFsdWUiOm51bGwsIm1hcmtldF9jYXBfY2FsYyI6MTMxMDA3MzEyNDIxNC40LCJtYXJrZXRfY2FwX2RpbHV0ZWRfY2FsYyI6MTM3MTMzMzYwMDAwMCwidG90YWxfc2hhcmVzX291dHN0YW5kaW5nIjoyMDA2MTg4NCwidG90YWxfdmFsdWVfdHJhZGVkIjoyMDMwMzA2OTIxNC43NDYxOX0="}},"time_used":393,"timings":{"blocked":-1,"dns":2,"connect":8,"send":0,"wait":136,"receive":0,"ssl":241},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/83675.5ed018482723abaf9e86.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.114Z","timestamp":1785148034114,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/83675.5ed018482723abaf9e86.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\ncontent-type: text/css; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a632877-1a35\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Fri, 24 Jul 2026 08:55:19 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/24/2026 10:31:24\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: c0172d1082bbd1dc8b78122fe89b645b\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":6709,"size_decoded":2668,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with very long lines (6709), with no line terminators","md5":"3f790f633d8facc5e65117a693bcb945","sha1":"09d8046538d3d64702bb83b904211cc3b7e53315","sha256":"e836e2f9c24d09a5854a2ac144aac0e02c25f367f144431842f67ba211772f4d","sha512":"b48f882acc8ed75b94109472053e0d36b77b454d4ce805e6f9164afa42a16a8d87ef45c6c5d4d48f9083110b728c76451164751562c818d62ba7b160c3e3217b","ssdeep":"96:NACi/4ObSCZGbgQc9VUKQgJyzWsQuZdxexDyC14HIPsiCSvgd:Nji/ZZGkx9qKQgJyzWsQuM4HIE5","tlshash":"a8d1874af120916c64fbb5adb9ed830e632cbce2ef8157dc769539b144cd3e60623906","first_seen":"2026-07-24T11:36:47.840348Z","last_seen":"2026-07-27T12:48:39.751847Z","times_seen":93,"resource_available":false,"data":"LnNlcGFyYXRvci1sbHVxdWZWcXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXR2LWNvbG9yLXRvb2xiYXItZGl2aWRlci1iYWNrZ3JvdW5kLHZhcigtLWNvbG9yLXRvb2xiYXItZGl2aWRlci1iYWNrZ3JvdW5kKSk7aGVpZ2h0OjIycHg7bWFyZ2luOmF1dG8gNHB4O3dpZHRoOjFweH0uZ3JvdXAtTExaQWJzMEd7YWxpZ24taXRlbXM6Y2VudGVyO2JhY2tncm91bmQtY29sb3I6dmFyKC0tdHYtY29sb3ItcGFuZS1iYWNrZ3JvdW5kLHZhcigtLWNvbG9yLXBhbmUtYmcpKTtib3JkZXItcmFkaXVzOjA7Y3Vyc29yOmRlZmF1bHQ7ZGlzcGxheTpmbGV4O2ZsZXg6MCAwIGF1dG87aGVpZ2h0OjEwMCU7anVzdGlmeS1jb250ZW50OmNlbnRlcjttYXJnaW4taW5saW5lLXN0YXJ0OjA7bWluLXdpZHRoOjM3cHg7b3ZlcmZsb3c6aGlkZGVufS5ncm91cC1MTFpBYnMwRzpmaXJzdC1jaGlsZHtib3JkZXItZW5kLXN0YXJ0LXJhZGl1czowfS5ncm91cC1MTFpBYnMwRzpmaXJzdC1jaGlsZCAuc2VwYXJhdG9yLUxMWkFiczBHe2Rpc3BsYXk6bm9uZX0uZ3JvdXAtTExaQWJzMEc6bGFzdC1jaGlsZHtib3JkZXItZW5kLWVuZC1yYWRpdXM6MDttYXJnaW4taW5saW5lLWVuZDowfS5ncm91cC1MTFpBYnMwRy5ub0xlZnREZWNvcmF0aW9uLUxMWkFiczBHe2JvcmRlci1lbmQtc3RhcnQtcmFkaXVzOjA7bWFyZ2luLWlubGluZS1zdGFydDowfS5ncm91cC1MTFpBYnMwRy5ub1JpZ2h0RGVjb3JhdGlvbi1MTFpBYnMwR3tib3JkZXItZW5kLWVuZC1yYWRpdXM6MDttYXJnaW4taW5saW5lLWVuZDowfS5ncm91cC1MTFpBYnMwRy5ub01pbmltYWxXaWR0aC1MTFpBYnMwR3ttaW4td2lkdGg6MH0uc2VwYXJhdG9yV3JhcC1MTFpBYnMwR3thbGlnbi1pdGVtczpjZW50ZXI7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS10di1jb2xvci1wYW5lLWJhY2tncm91bmQsdmFyKC0tY29sb3ItcGFuZS1iZykpO2Rpc3BsYXk6ZmxleH0uc2VwYXJhdG9yV3JhcC1MTFpBYnMwRzpmaXJzdC1jaGlsZHtkaXNwbGF5Om5vbmV9W2RhdGEtdGhlbWU9ZGFya10sW2RhdGEtdGhlbWU9bGlnaHRdey0tXzAtYXpyeTp2YXIoLS1jb2xvci1jb2xkLWdyYXktNDAwKX0ud3JhcC1VTDNGSXBzZXthbGlnbi1pdGVtczpjZW50ZXI7Y29sb3I6dmFyKC0tXzAtYXpyeSk7Y3Vyc29yOmRlZmF1bHQ7ZGlzcGxheTpmbGV4fS53cmFwLVVMM0ZJcHNlIC5pY29uLVVMM0ZJcHNle21hcmdpbi1ibG9jazowIDA7bWFyZ2luLWlubGluZTo4cHggMXB4fS53cmFwLVVMM0ZJcHNlIHN2Z3tmaWxsOmN1cnJlbnRDb2xvcn1bZGF0YS10aGVtZT1saWdodF17LS1fMC10NkNPOiMxZTIyMmQ5OTstLV8xLXQ2Q086I2ZmZjB9W2RhdGEtdGhlbWU9ZGFya117LS1fMC10NkNPOiM2YTZkNzg5OTstLV8xLXQ2Q086IzEzMTcyMjAwfS53cmFwLXFZbTR4MnV1e2RpcmVjdGlvbjpsdHI7aGVpZ2h0OjEwMCU7b3ZlcmZsb3c6aGlkZGVuO3Bvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOjEwMCV9LndyYXAtcVltNHgydXUgc3Zne2Rpc3BsYXk6YmxvY2t9LndyYXBXaXRoQXJyb3dzT3V0aW5nLXFZbTR4MnV1e21hcmdpbi1pbmxpbmUtZW5kOmF1dG87bWFyZ2luLWlubGluZS1zdGFydDphdXRvO292ZXJmbG93OnZpc2libGU7d2lkdGg6Y2FsYygxMDAlIC0gNDBweCl9LndyYXAtcVltNHgydXU6ZGlyKHJ0bCl7ZGlyZWN0aW9uOnJ0bH0ud3JhcE92ZXJmbG93LXFZbTR4MnV1e2hlaWdodDoxMDAlO292ZXJmbG93OmhpZGRlbjt3aWR0aDoxMDAlfS5zY3JvbGxXcmFwLXFZbTR4MnV1e2hlaWdodDoxMDAlO292ZXJmbG93LXg6YXV0bztvdmVyZmxvdy15OmhpZGRlbjtwb3NpdGlvbjpyZWxhdGl2ZTt3aWR0aDoxMDAlOy13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOnRvdWNoO2NvbnRhaW46Y29udGVudH0uc2Nyb2xsV3JhcC1xWW00eDJ1dTo6LXdlYmtpdC1zY3JvbGxiYXJ7aGVpZ2h0OjVweDt3aWR0aDo1cHh9LnNjcm9sbFdyYXAtcVltNHgydXU6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1ie2JhY2tncm91bmQtY2xpcDpjb250ZW50LWJveDtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXR2LWNvbG9yLXNjcm9sbGJhci10aHVtYi1iYWNrZ3JvdW5kLHZhcigtLWNvbG9yLXNjcm9sbC1iZykpO2JvcmRlcjoxcHggc29saWQgIzAwMDA7Ym9yZGVyLXJhZGl1czozcHh9LnNjcm9sbFdyYXAtcVltNHgydXU6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNre2JhY2tncm91bmQtY29sb3I6aW5pdGlhbDtib3JkZXItcmFkaXVzOjNweH0uc2Nyb2xsV3JhcC1xWW00eDJ1dTo6LXdlYmtpdC1zY3JvbGxiYXItY29ybmVye2Rpc3BsYXk6bm9uZX0uc2Nyb2xsV3JhcC1xWW00eDJ1dS5ub1Njcm9sbEJhci1xWW00eDJ1dXttYXJnaW4tYm90dG9tOi0xMDBweDtwYWRkaW5nLWJvdHRvbToxMDBweH0uc2Nyb2xsV3JhcC1xWW00eDJ1dS5ub1Njcm9sbEJhci1xWW00eDJ1dS5zYi1zY3JvbGxiYXItd3JhcHtkaXNwbGF5Om5vbmV9LnNjcm9sbFdyYXAtcVltNHgydXUubm9TY3JvbGxCYXItcVltNHgydXU6Oi13ZWJraXQtc2Nyb2xsYmFye2Rpc3BsYXk6bm9uZTtoZWlnaHQ6MDt3aWR0aDowfS5zY3JvbGxXcmFwLXFZbTR4MnV1Lm5vU2Nyb2xsQmFyLXFZbTR4MnV1Ojotd2Via2l0LXNjcm9sbGJhci10aHVtYiwuc2Nyb2xsV3JhcC1xWW00eDJ1dS5ub1Njcm9sbEJhci1xWW00eDJ1dTo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2t7ZGlzcGxheTpub25lfS5zY3JvbGxXcmFwLXFZbTR4MnV1Lm5vU2Nyb2xsQmFyLXFZbTR4MnV1Ojotd2Via2l0LXNjcm9sbGJhci1jb3JuZXJ7ZGlzcGxheTpub25lfS5pY29uLXFZbTR4MnV1e2Rpc3BsYXk6YmxvY2s7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gNjBtcyBlYXNlfS5zY3JvbGxMZWZ0LXFZbTR4MnV1LC5zY3JvbGxSaWdodC1xWW00eDJ1dXthbGlnbi1pdGVtczpjZW50ZXI7YmFja2dyb3VuZC1jb2xvcjpyZ2IoZnJvbSB2YXIoLS1jb2xvci1sZWdhY3ktYmctc2Nyb2xsLWJ1dHRvbnMpIHIgZyBiLy42KTtjb2xvcjp2YXIoLS1jb2xvci1zY3JvbGwtYnV0dG9ucy1hcnJvdyk7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtoZWlnaHQ6MTAwJTtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO292ZXJmbG93OmhpZGRlbjtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDt0cmFuc2l0aW9uOmJhY2tncm91bmQtY29sb3IgLjM1cyBlYXNlLHRyYW5zZm9ybSAuMTE2NjY2NjdzIGN1YmljLWJlemllciguNTUsLjA1NSwuNjc1LC4xOSk7d2lkdGg6MjRweH1Ac3VwcG9ydHMgbm90IChiYWNrZ3JvdW5kOnJnYihmcm9tICMwMDAgciBnIGIpKXsuc2Nyb2xsTGVmdC1xWW00eDJ1dSwuc2Nyb2xsUmlnaHQtcVltNHgydXV7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1fMC10NkNPKX19LnNjcm9sbExlZnQtcVltNHgydXU6YWN0aXZlLC5zY3JvbGxSaWdodC1xWW00eDJ1dTphY3RpdmV7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kLWNvbG9yIDU4LjMzMzMzbXMgZWFzZSx0cmFuc2Zvcm0gLjExNjY2NjY3cyBjdWJpYy1iZXppZXIoLjIxNSwuNjEsLjM1NSwxKX1AbWVkaWEgKGFueS1ob3Zlcjpob3Zlcil7LnNjcm9sbExlZnQtcVltNHgydXU6aG92ZXIsLnNjcm9sbFJpZ2h0LXFZbTR4MnV1OmhvdmVye3RyYW5zaXRpb246YmFja2dyb3VuZC1jb2xvciA1OC4zMzMzM21zIGVhc2UsdHJhbnNmb3JtIC4xMTY2NjY2N3MgY3ViaWMtYmV6aWVyKC4yMTUsLjYxLC4zNTUsMSl9fS5zY3JvbGxMZWZ0LXFZbTR4MnV1LmlzVmlzaWJsZS1xWW00eDJ1dSwuc2Nyb2xsUmlnaHQtcVltNHgydXUuaXNWaXNpYmxlLXFZbTR4MnV1e3RyYW5zZm9ybTp0cmFuc2xhdGVYKDApO3RyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllciguMjE1LC42MSwuMzU1LDEpfS5zY3JvbGxMZWZ0LXFZbTR4MnV1e2xlZnQ6MDt0cmFuc2Zvcm06dHJhbnNsYXRlWCgtMTAwJSl9LnNjcm9sbExlZnQtcVltNHgydXUgLmljb25XcmFwLXFZbTR4MnV1e3RyYW5zZm9ybTpyb3RhdGUoOTBkZWcpfS5zY3JvbGxSaWdodC1xWW00eDJ1dXtyaWdodDowO3RyYW5zZm9ybTp0cmFuc2xhdGVYKDEwMCUpfS5zY3JvbGxSaWdodC1xWW00eDJ1dSAuaWNvbldyYXAtcVltNHgydXV7dHJhbnNmb3JtOnJvdGF0ZSgtOTBkZWcpfS5mYWRlTGVmdC1xWW00eDJ1dSwuZmFkZVJpZ2h0LXFZbTR4MnV1e2NvbG9yOnJnYihmcm9tIHZhcigtLWNvbG9yLXBhbmUtYmcpIHIgZyBiLzApO2hlaWdodDoxMDAlO3BvaW50ZXItZXZlbnRzOm5vbmU7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7d2lkdGg6NTBweH1Ac3VwcG9ydHMgbm90IChiYWNrZ3JvdW5kOnJnYihmcm9tICMwMDAgciBnIGIpKXsuZmFkZUxlZnQtcVltNHgydXUsLmZhZGVSaWdodC1xWW00eDJ1dXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLV8xLXQ2Q08pfX0uZmFkZUxlZnQtcVltNHgydXUuaXNWaXNpYmxlLXFZbTR4MnV1LC5mYWRlUmlnaHQtcVltNHgydXUuaXNWaXNpYmxlLXFZbTR4MnV1e3RyYW5zZm9ybTp0cmFuc2xhdGVYKDApO3RyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllciguMjE1LC42MSwuMzU1LDEpfS5mYWRlTGVmdC1xWW00eDJ1dXtiYWNrZ3JvdW5kLWltYWdlOmxpbmVhci1ncmFkaWVudCg5MGRlZywjZmZmLCNmZmYwKTtsZWZ0Oi0xcHg7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTEwMCUpfWh0bWwudGhlbWUtZGFyayAuZmFkZUxlZnQtcVltNHgydXV7YmFja2dyb3VuZC1pbWFnZTpsaW5lYXItZ3JhZGllbnQoOTBkZWcsIzBmMGYwZiwjMGYwZjBmMDApfS5mYWRlUmlnaHQtcVltNHgydXV7YmFja2dyb3VuZC1pbWFnZTpsaW5lYXItZ3JhZGllbnQoMjcwZGVnLCNmZmYsI2ZmZjApO3JpZ2h0Oi0xcHg7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoMTAwJSl9aHRtbC50aGVtZS1kYXJrIC5mYWRlUmlnaHQtcVltNHgydXV7YmFja2dyb3VuZC1pbWFnZTpsaW5lYXItZ3JhZGllbnQoMjcwZGVnLCMwZjBmMGYsIzBmMGYwZjAwKX0uaW5uZXJXcmFwLWRsRkROMFpke2Rpc3BsYXk6ZmxleDtmbGV4OjEgMSBhdXRvO2hlaWdodDozOHB4O21pbi13aWR0aDowfS5pbm5lci1kbEZETjBaZHtkaXNwbGF5OmZsZXg7aGVpZ2h0OjEwMCV9LmZha2UtZGxGRE4wWmR7aGVpZ2h0OjM4cHg7aW5zZXQtaW5saW5lLXN0YXJ0OjA7cG9zaXRpb246Zml4ZWQ7dG9wOjA7dmlzaWJpbGl0eTpoaWRkZW59LmZpbGwtZGxGRE4wWmR7ZmxleDoxIDEgMTAwJTttaW4td2lkdGg6MH0uZmlsbC1kbEZETjBaZC5jb2xsYXBzZS1kbEZETjBaZHtmbGV4OjAgMCAwJX0uYnV0dG9uLWRsRkROMFpke3BhZGRpbmctYmxvY2s6MCAwO3BhZGRpbmctaW5saW5lOjVweCAxMHB4fS5pY29uQnV0dG9uLWRsRkROMFpke3BhZGRpbmc6MCA1cHh9LmhpZGRlbi1kbEZETjBaZHtkaXNwbGF5Om5vbmV9LmNvbnRlbnQtZGxGRE4wWmR7ZGlzcGxheTp0YWJsZTtoZWlnaHQ6MTAwJTtwb3NpdGlvbjpyZWxhdGl2ZTt3aGl0ZS1zcGFjZTpub3dyYXA7d2lkdGg6MTAwJX0uZGVza3RvcFB1Ymxpc2gtZGxGRE4wWmQsLmRlc2t0b3BUcmFkZS1kbEZETjBaZHtkaXNwbGF5OmZsZXh9QG1lZGlhIChtYXgtd2lkdGg6MTAxOXB4KXsuZGVza3RvcFB1Ymxpc2gtZGxGRE4wWmQsLmRlc2t0b3BUcmFkZS1kbEZETjBaZHtkaXNwbGF5Om5vbmV9fS5tb2JpbGVQdWJsaXNoLWRsRkROMFpkLC5tb2JpbGVUcmFkZS1kbEZETjBaZHtkaXNwbGF5Om5vbmV9QG1lZGlhIChtYXgtd2lkdGg6MTAxOXB4KXsubW9iaWxlUHVibGlzaC1kbEZETjBaZCwubW9iaWxlVHJhZGUtZGxGRE4wWmR7ZGlzcGxheTpmbGV4fX1AbWVkaWEgKG1heC1oZWlnaHQ6NDQ1cHgpLChtYXgtd2lkdGg6NTY3cHgpey5kZXNrdG9wVHJhZGUtZGxGRE4wWmQsLm1vYmlsZVRyYWRlLWRsRkROMFpke2Rpc3BsYXk6bm9uZX19W2RhdGEtdGhlbWU9ZGFya10sW2RhdGEtdGhlbWU9bGlnaHRdey0tXzAtblpSQjojMDAwMH0udG9vbGJhci1OQ1l5b3poaHtmb250LXNpemU6MTRweDtoZWlnaHQ6MTAwJTtwYWRkaW5nOjA7cG9zaXRpb246cmVsYXRpdmV9LnRvb2xiYXItTkNZeW96aGguaXNIaWRkZW4tTkNZeW96aGh7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1fMC1uWlJCKX0udG9vbGJhci1OQ1l5b3poaC5pc0hpZGRlbi1OQ1l5b3poaCAub3ZlcmZsb3dXcmFwLU5DWXlvemhoe2Rpc3BsYXk6bm9uZX0ub3ZlcmZsb3dXcmFwLU5DWXlvemhoe2hlaWdodDozOHB4O292ZXJmbG93OmhpZGRlbn0uY3VzdG9tQnV0dG9uLU5DWXlvemhoe2NvbG9yOnZhcigtLXR2LWNvbG9yLXRvb2xiYXItYnV0dG9uLXRleHQsdmFyKC0tY29sb3ItdG9vbGJhci1idXR0b24tdGV4dCkpO3BhZGRpbmc6MCAxMHB4fS5jdXN0b21CdXR0b24tTkNZeW96aGguaG92ZXItTkNZeW96aGgsLmN1c3RvbUJ1dHRvbi1OQ1l5b3poaDphY3RpdmV7Y29sb3I6dmFyKC0tdHYtY29sb3ItdG9vbGJhci1idXR0b24tdGV4dC1ob3Zlcix2YXIoLS1jb2xvci10b29sYmFyLWJ1dHRvbi10ZXh0LWhvdmVyKSl9QG1lZGlhIChhbnktaG92ZXI6aG92ZXIpey5jdXN0b21CdXR0b24tTkNZeW96aGg6aG92ZXJ7Y29sb3I6dmFyKC0tdHYtY29sb3ItdG9vbGJhci1idXR0b24tdGV4dC1ob3Zlcix2YXIoLS1jb2xvci10b29sYmFyLWJ1dHRvbi10ZXh0LWhvdmVyKSl9fS5jdXN0b21CdXR0b24tTkNZeW96aGguY2xpY2tlZC1OQ1l5b3poaCwuY3VzdG9tQnV0dG9uLU5DWXlvemhoOmFjdGl2ZXtjb2xvcjp2YXIoLS10di1jb2xvci10b29sYmFyLWJ1dHRvbi10ZXh0LWNsaWNrZWQsdmFyKC0tdHYtY29sb3ItdG9vbGJhci1idXR0b24tdGV4dC1ob3Zlcix2YXIoLS1jb2xvci10b29sYmFyLWJ1dHRvbi10ZXh0LWhvdmVyKSkpfQ=="}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/widgetbar.db18e7c4c91daf691de2.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.128Z","timestamp":1785148034128,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/widgetbar.db18e7c4c91daf691de2.js HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a632877-1f401\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Fri, 24 Jul 2026 08:55:19 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/24/2026 10:31:24\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 712dcfd4136e0787662a8e27b6ff920e\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":128001,"size_decoded":39494,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (5014)","md5":"f6b8dd85a8212199d84687bff92a87d4","sha1":"3b9c0ba21866b3ea7df2516346f2e4a018f29ada","sha256":"bc267de973346b9ccc0d02da3630bc2363ade4e715ca983d2632b9d84c8ad024","sha512":"12f674de2dcb45bc7f69ab9ff8e211d2e6e054aea325863f80edda0b14c8a2492f25c87d6769322a5cc31e384c2a64ffd34b2f86712494ba6c69f49ff18f09fd","ssdeep":"3072:FFB5mL58W0ftIrc/wrK6ENLUrl5f7Gkh57k8mHQOO:QJrK6ENLKl5fD75","tlshash":"0dc329403155682e939650eae4361903a39a148cf447cb6cb9bcecff4a9d8c57239bfd","first_seen":"2026-07-27T03:26:08.955766Z","last_seen":"2026-07-27T10:54:11.73198Z","times_seen":13,"resource_available":true,"data":"KHNlbGYud2VicGFja0NodW5rdHJhZGluZ3ZpZXc9c2VsZi53ZWJwYWNrQ2h1bmt0cmFkaW5ndmlld3x8W10pLnB1c2goW1s1NjM4Miw3NDM0MV0sezg0ODUyNyhlKXtlLmV4cG9ydHM9e319LDQwMjI1MyhlKXtlLmV4cG9ydHM9e25hdkJ1dHRvbjoibmF2QnV0dG9uLWhiU0pWeGtRIixsaW5rOiJsaW5rLWhiU0pWeGtRIixiYWNrZ3JvdW5kOiJiYWNrZ3JvdW5kLWhiU0pWeGtRIixpY29uOiJpY29uLWhiU0pWeGtRIixmbGlwSWNvbjoiZmxpcEljb24taGJTSlZ4a1EiLGxhcmdlOiJsYXJnZS1oYlNKVnhrUSIscHJlc2VydmVQYWRkaW5nczoicHJlc2VydmVQYWRkaW5ncy1oYlNKVnhrUSIsbWVkaXVtOiJtZWRpdW0taGJTSlZ4a1EiLHNtYWxsOiJzbWFsbC1oYlNKVnhrUSIseHNtYWxsOiJ4c21hbGwtaGJTSlZ4a1EiLHh4c21hbGw6Inh4c21hbGwtaGJTSlZ4a1EiLGJsZW5kTW9kZToiYmxlbmRNb2RlLWhiU0pWeGtRIix2aXN1YWxseUhpZGRlbjoidmlzdWFsbHlIaWRkZW4taGJTSlZ4a1EifX0sMzYyNzkzKGUpe2UuZXhwb3J0cz17eHh4c21hbGw6Inh4eHNtYWxsLUFmZDZ0NFpqIix4eHNtYWxsOiJ4eHNtYWxsLUFmZDZ0NFpqIix4c21hbGw6InhzbWFsbC1BZmQ2dDRaaiIsc21hbGw6InNtYWxsLUFmZDZ0NFpqIixtZWRpdW06Im1lZGl1bS1BZmQ2dDRaaiIsbGFyZ2U6ImxhcmdlLUFmZDZ0NFpqIix4bGFyZ2U6InhsYXJnZS1BZmQ2dDRaaiIsY291bnRlcjoiY291bnRlci1BZmQ2dDRaaiIsImNvbG9yLWRhbmdlciI6ImNvbG9yLWRhbmdlci1BZmQ2dDRaaiIsImNvbG9yLWFjY2VudCI6ImNvbG9yLWFjY2VudC1BZmQ2dDRaaiIsImNvbG9yLWFjY2VudC1saWdodCI6ImNvbG9yLWFjY2VudC1saWdodC1BZmQ2dDRaaiIsImNvbG9yLW5ldXRyYWwtYm9sZCI6ImNvbG9yLW5ldXRyYWwtYm9sZC1BZmQ2dDRaaiIsImNvbG9yLW5ldXRyYWwiOiJjb2xvci1uZXV0cmFsLUFmZDZ0NFpqIiwiYm9yZGVyQ29sb3ItcHJpbWFyeSI6ImJvcmRlckNvbG9yLXByaW1hcnktQWZkNnQ0WmoiLCJib3JkZXJDb2xvci1zZWNvbmRhcnkiOiJib3JkZXJDb2xvci1zZWNvbmRhcnktQWZkNnQ0WmoiLCJib3JkZXJDb2xvci10ZXJ0aWFyeSI6ImJvcmRlckNvbG9yLXRlcnRpYXJ5LUFmZDZ0NFpqIixkaXNhYmxlZDoiZGlzYWJsZWQtQWZkNnQ0WmoifX0sMjAzMjczKGUpe2UuZXhwb3J0cz17c2NhbGFibGVJY29uOiJzY2FsYWJsZUljb24tY2oxYkFTZjcifX0sNTUwOTU4KGUpe2UuZXhwb3J0cz17d3JhcDoid3JhcC1pN0hDS3NJQSIsc2Nyb2xsV3JhcDoic2Nyb2xsV3JhcC1pN0hDS3NJQSIsbm9TY3JvbGxCYXI6Im5vU2Nyb2xsQmFyLWk3SENLc0lBIixjb250ZW50OiJjb250ZW50LWk3SENLc0lBIixpY29uOiJpY29uLWk3SENLc0lBIixzY3JvbGxCb3Q6InNjcm9sbEJvdC1pN0hDS3NJQSIsc2Nyb2xsVG9wOiJzY3JvbGxUb3AtaTdIQ0tzSUEiLGlzVmlzaWJsZToiaXNWaXNpYmxlLWk3SENLc0lBIixpY29uV3JhcDoiaWNvbldyYXAtaTdIQ0tzSUEiLGZhZGVCb3Q6ImZhZGVCb3QtaTdIQ0tzSUEiLGZhZGVUb3A6ImZhZGVUb3AtaTdIQ0tzSUEifX0sMjc3MDc2KGUpe2UuZXhwb3J0cz17YnV0dG9uOiJidXR0b24tSGRLaGNUeWUiLHByZXNzZWQ6InByZXNzZWQtSGRLaGNUeWUiLGhvdmVyOiJob3Zlci1IZEtoY1R5ZSIsY2xpY2tlZDoiY2xpY2tlZC1IZEtoY1R5ZSIsaXNJbnRlcmFjdGl2ZToiaXNJbnRlcmFjdGl2ZS1IZEtoY1R5ZSIsYWNjZXNzaWJsZToiYWNjZXNzaWJsZS1IZEtoY1R5ZSIsaXNHcm91cGVkOiJpc0dyb3VwZWQtSGRLaGNUeWUiLGlzQWN0aXZlOiJpc0FjdGl2ZS1IZEtoY1R5ZSIsaXNPcGVuZWQ6ImlzT3BlbmVkLUhkS2hjVHllIixpc0Rpc2FibGVkOiJpc0Rpc2FibGVkLUhkS2hjVHllIix0ZXh0OiJ0ZXh0LUhkS2hjVHllIixpY29uOiJpY29uLUhkS2hjVHllIixlbmRJY29uOiJlbmRJY29uLUhkS2hjVHllIn19LDQ5NTk2NihlKXtlLmV4cG9ydHM9e2NvbnRhaW5lcjoiY29udGFpbmVyLXBwbmtEUzZsIixtaXJyb3I6Im1pcnJvci1wcG5rRFM2bCIsYmFja2dyb3VuZDoiYmFja2dyb3VuZC1wcG5rRFM2bCIsYXJyb3c6ImFycm93LXBwbmtEUzZsIn19LDc4OTkzNChlKXtlLmV4cG9ydHM9e2J1dHRvbjoiYnV0dG9uLVVYM0tXTnpOIn19LDUwNTUzNihlKXtlLmV4cG9ydHM9e2ZpbGxlcjoiZmlsbGVyLVNjNUdvOEc4In19LDMwNjQ2MihlKXtlLmV4cG9ydHM9e2J1dHRvbjoiYnV0dG9uLVZ1dGQxM04zIixidXR0b25JY29uOiJidXR0b25JY29uLVZ1dGQxM04zIn19LDU1NTY3NyhlKXtlLmV4cG9ydHM9e3Rvb2xiYXI6InRvb2xiYXIteXpua1BTVGEifX0sMjgxODk0KGUpe2UuZXhwb3J0cz17c2VwYXJhdG9yOiJzZXBhcmF0b3ItVlJqNXBpOTgifX0sMjUxNTI4KGUpe2UuZXhwb3J0cz17YnV0dG9uOiJidXR0b24tZ3l1bVpNYzEiLGNvbGxhcHNlZDoiY29sbGFwc2VkLWd5dW1aTWMxIixpbmVydDoiaW5lcnQtZ3l1bVpNYzEiLGNvdW50ZXJSb3c6ImNvdW50ZXJSb3ctZ3l1bVpNYzEifX0sODIyNDc1KGUpe2UuZXhwb3J0cz17ImNzcy12YWx1ZS13aWRnZXRiYXItdGFicy13aWR0aCI6IjQ1cHgiLCJjc3MtdmFsdWUtd2lkZ2V0YmFyLWJvcmRlci13aWR0aCI6IjFweCJ9fSw4MjEzNShlKXtlLmV4cG9ydHM9eyJjc3MtdmFsdWUtd2lkZ2V0cy1tYXJnaW4iOiI0cHgiLHdpZGdldDoid2lkZ2V0LUNLRmxLalUyIix3aWRnZXRIZWFkZXI6IndpZGdldEhlYWRlci1DS0ZsS2pVMiIsd2lkZ2V0VGl0bGU6IndpZGdldFRpdGxlLUNLRmxLalUyIixoZWFkZXJTcGFjZToiaGVhZGVyU3BhY2UtQ0tGbEtqVTIifX0sNzgwMzc0KGUsdCxpKXsidXNlIHN0cmljdCI7aS5kKHQse0RyYWdnYWJsZTooKT0+YSxQb2ludGVyQmFja2VuZDooKT0+b30pO3ZhciBzPWkoMTM4NjM4KSxuPWkoMzE0NzIwKTtpKDg0ODUyNyk7Y2xhc3MgYXtjb25zdHJ1Y3RvcihlKXt0aGlzLl9oZWxwZXI9bnVsbCx0aGlzLl9oYW5kbGVEcmFnU3RhcnQ9ZT0+e2lmKG51bGwhPT10aGlzLl9oZWxwZXIpcmV0dXJuO2NvbnN0IHQ9dGhpcy5fc291cmNlO3QuY2xhc3NMaXN0LmFkZCgidWktZHJhZ2dhYmxlLWRyYWdnaW5nIik7Y29uc3RbaSxzXT1bKDAsCm4ub3V0ZXJXaWR0aCkodCksKDAsbi5vdXRlckhlaWdodCkodCldO3RoaXMuX2hlbHBlcj17c3RhcnRUb3A6cGFyc2VGbG9hdCh0LnN0eWxlLnRvcCl8fDAsc3RhcnRMZWZ0OnBhcnNlRmxvYXQodC5zdHlsZS5sZWZ0KXx8MCxuZXh0VG9wOm51bGwsbmV4dExlZnQ6bnVsbCxyYWY6bnVsbCxzaXplOltpLHNdLGNvbnRhaW5tZW50OnRoaXMuX2NvbnRhaW5tZW50IGluc3RhbmNlb2YgSFRNTEVsZW1lbnQ/W3BhcnNlSW50KGdldENvbXB1dGVkU3R5bGUodGhpcy5fY29udGFpbm1lbnQpLmJvcmRlckxlZnRXaWR0aCkrcGFyc2VJbnQoZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzLl9jb250YWlubWVudCkucGFkZGluZ0xlZnQpLHBhcnNlSW50KGdldENvbXB1dGVkU3R5bGUodGhpcy5fY29udGFpbm1lbnQpLmJvcmRlclRvcFdpZHRoKStwYXJzZUludChnZXRDb21wdXRlZFN0eWxlKHRoaXMuX2NvbnRhaW5tZW50KS5wYWRkaW5nVG9wKSx0aGlzLl9jb250YWlubWVudC5vZmZzZXRXaWR0aC1wYXJzZUludChnZXRDb21wdXRlZFN0eWxlKHRoaXMuX2NvbnRhaW5tZW50KS5ib3JkZXJSaWdodFdpZHRoKS1wYXJzZUludChnZXRDb21wdXRlZFN0eWxlKHRoaXMuX2NvbnRhaW5tZW50KS5wYWRkaW5nUmlnaHQpLXBhcnNlSW50KGdldENvbXB1dGVkU3R5bGUodCkubWFyZ2luTGVmdCktcGFyc2VJbnQoZ2V0Q29tcHV0ZWRTdHlsZSh0KS5tYXJnaW5SaWdodCktaSx0aGlzLl9jb250YWlubWVudC5vZmZzZXRIZWlnaHQtcGFyc2VJbnQoZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzLl9jb250YWlubWVudCkuYm9yZGVyQm90dG9tV2lkdGgpLXBhcnNlSW50KGdldENvbXB1dGVkU3R5bGUodGhpcy5fY29udGFpbm1lbnQpLnBhZGRpbmdCb3R0b20pLXBhcnNlSW50KGdldENvbXB1dGVkU3R5bGUodCkubWFyZ2luVG9wKS1wYXJzZUludChnZXRDb21wdXRlZFN0eWxlKHQpLm1hcmdpbkJvdHRvbSktc106IndpbmRvdyI9PT10aGlzLl9jb250YWlubWVudD9bd2luZG93LnNjcm9sbFgsd2luZG93LnNjcm9sbFksd2luZG93LnNjcm9sbFgrZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50Lm9mZnNldFdpZHRoLWksd2luZG93LnNjcm9sbFkrZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50Lm9mZnNldEhlaWdodC1zXTpudWxsfSx0aGlzLl9zdGFydD8uKCl9LHRoaXMuX2hhbmRsZURyYWdNb3ZlPWU9PntpZihudWxsPT09dGhpcy5faGVscGVyKXJldHVybjtjb25zdHtjdXJyZW50OnQsaW5pdGlhbDppfT1lLmRldGFpbCxzPXRoaXMuX3NvdXJjZSxuPXRoaXMuX2hlbHBlci5uZXh0VG9wLGE9dGhpcy5faGVscGVyLm5leHRMZWZ0LG89InkiPT09dGhpcy5fYXhpc3x8ITE9PT10aGlzLl9heGlzfHwwIT09dC5tb3ZlbWVudFk7aWYobyl7Y29uc3QgZT10aGlzLl9oZWxwZXIuc3RhcnRUb3A7aXNGaW5pdGUoZSkmJih0aGlzLl9oZWxwZXIubmV4dFRvcD10LmNsaWVudFktaS5jbGllbnRZK2UpfWNvbnN0IHI9IngiPT09dGhpcy5fYXhpc3x8ITE9PT10aGlzLl9heGlzfHwwIT09dC5tb3ZlbWVudFk7aWYocil7Y29uc3QgZT10aGlzLl9oZWxwZXIuc3RhcnRMZWZ0O2lzRmluaXRlKGUpJiYodGhpcy5faGVscGVyLm5leHRMZWZ0PXQuY2xpZW50WC1pLmNsaWVudFgrZSl9aWYobnVsbCE9PXRoaXMuX2hlbHBlci5jb250YWlubWVudCl7Y29uc3RbZSx0LGksc109dGhpcy5faGVscGVyLmNvbnRhaW5tZW50O28mJnRoaXMuX2hlbHBlci5uZXh0VG9wJiYodGhpcy5faGVscGVyLm5leHRUb3A9TWF0aC5taW4odGhpcy5faGVscGVyLm5leHRUb3AscyksdGhpcy5faGVscGVyLm5leHRUb3A9TWF0aC5tYXgodGhpcy5faGVscGVyLm5leHRUb3AsdCkpLHImJnRoaXMuX2hlbHBlci5uZXh0TGVmdCYmKHRoaXMuX2hlbHBlci5uZXh0TGVmdD1NYXRoLm1pbih0aGlzLl9oZWxwZXIubmV4dExlZnQsaSksdGhpcy5faGVscGVyLm5leHRMZWZ0PU1hdGgubWF4KHRoaXMuX2hlbHBlci5uZXh0TGVmdCxlKSl9bnVsbCE9PXRoaXMuX2hlbHBlci5yYWZ8fG49PT10aGlzLl9oZWxwZXIubmV4dFRvcCYmYT09PXRoaXMuX2hlbHBlci5uZXh0TGVmdHx8KHRoaXMuX2hlbHBlci5yYWY9cmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgoKT0+e251bGwhPT10aGlzLl9oZWxwZXImJihudWxsIT09dGhpcy5faGVscGVyLm5leHRUb3AmJihzLnN0eWxlLnRvcD10aGlzLl9oZWxwZXIubmV4dFRvcCsicHgiLHRoaXMuX2hlbHBlci5uZXh0VG9wPW51bGwpLG51bGwhPT10aGlzLl9oZWxwZXIubmV4dExlZnQmJihzLnN0eWxlLmxlZnQ9dGhpcy5faGVscGVyLm5leHRMZWZ0KyJweCIsdGhpcy5faGVscGVyLm5leHRMZWZ0PW51bGwpLHRoaXMuX2hlbHBlci5yYWY9bnVsbCl9KSkpLHRoaXMuX2RyYWc/LigpfSx0aGlzLl9oYW5kbGVEcmFnU3RvcD1lPT57aWYobnVsbD09PXRoaXMuX2hlbHBlcilyZXR1cm47dGhpcy5fc291cmNlLmNsYXNzTGlzdC5yZW1vdmUoInVpLWRyYWdnYWJsZS1kcmFnZ2luZyIpLHRoaXMuX2hlbHBlcj1udWxsLHRoaXMuX3N0b3A/LigpfTtjb25zdCB0PXRoaXMuX3NvdXJjZT1lLnNvdXJjZTt0LmNsYXNzTGlzdC5hZGQoInVpLWRyYWdnYWJsZSIpO2NvbnN0IGk9dGhpcy5faGFuZGxlPShlLmhhbmRsZT90LnF1ZXJ5U2VsZWN0b3IoZS5oYW5kbGUpOm51bGwpPz90O2kuY2xhc3NMaXN0LmFkZCgidWktZHJhZ2dhYmxlLWhhbmRsZSIpLHRoaXMuX3N0YXJ0PWUuc3RhcnQsdGhpcy5fc3RvcD1lLnN0b3AsdGhpcy5fZHJhZz1lLmRyYWcsdGhpcy5fYmFja2VuZD1uZXcgbyh7aGFuZGxlOmksb25EcmFnU3RhcnQ6dGhpcy5faGFuZGxlRHJhZ1N0YXJ0LG9uRHJhZ01vdmU6dGhpcy5faGFuZGxlRHJhZ01vdmUsb25EcmFnU3RvcDp0aGlzLl9oYW5kbGVEcmFnU3RvcH0pLHRoaXMuX2F4aXM9ZS5heGlzPz8hMSx0aGlzLl9jb250YWlubWVudD1lLmNvbnRhaW5tZW50fWRlc3Ryb3koKXtjb25zdCBlPXRoaXMuX3NvdXJjZTtlLmNsYXNzTGlzdC5yZW1vdmUoInVpLWRyYWdnYWJsZSIpLGUuY2xhc3NMaXN0LnJlbW92ZSgidWktZHJhZ2dhYmxlLWRyYWdnaW5nIik7dGhpcy5faGFuZGxlLmNsYXNzTGlzdC5yZW1vdmUoInVpLWRyYWdnYWJsZS1oYW5kbGUiKSx0aGlzLl9iYWNrZW5kLmRlc3Ryb3koKSwKbnVsbCE9PXRoaXMuX2hlbHBlciYmKHRoaXMuX2hlbHBlci5yYWYmJmNhbmNlbEFuaW1hdGlvbkZyYW1lKHRoaXMuX2hlbHBlci5yYWYpLHRoaXMuX2hlbHBlcj1udWxsKX19Y2xhc3Mgb3tjb25zdHJ1Y3RvcihlKXt0aGlzLl9wb2ludGVyU3RhcnRlZD0hMSx0aGlzLl9pbml0aWFsPW51bGwsdGhpcy5faGFuZGxlUG9pbnRlckRvd249ZT0+e2lmKG51bGwhPT10aGlzLl9pbml0aWFsfHwwIT09ZS5idXR0b24pcmV0dXJuO2lmKCEoZS50YXJnZXQgaW5zdGFuY2VvZiBFbGVtZW50JiZ0aGlzLl9oYW5kbGUuY29udGFpbnMoZS50YXJnZXQpKSlyZXR1cm47aWYodGhpcy5faW5pdGlhbD1lLCF0aGlzLl9kaXN0YW5jZSYmKHRoaXMuX3BvaW50ZXJTdGFydCgpLCF0aGlzLl9wb2ludGVyU3RhcnRlZCkpcmV0dXJuO2UucHJldmVudERlZmF1bHQoKTtjb25zdCB0PXRoaXMuX2dldEV2ZW50VGFyZ2V0KCk7dC5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVybW92ZSIsdGhpcy5faGFuZGxlUG9pbnRlck1vdmUpLHQuYWRkRXZlbnRMaXN0ZW5lcigicG9pbnRlcnVwIix0aGlzLl9oYW5kbGVQb2ludGVyVXApLHQuYWRkRXZlbnRMaXN0ZW5lcigicG9pbnRlcmNhbmNlbCIsdGhpcy5faGFuZGxlUG9pbnRlclVwKSx0LmFkZEV2ZW50TGlzdGVuZXIoImxvc3Rwb2ludGVyY2FwdHVyZSIsdGhpcy5faGFuZGxlTG9zdFBvaW50ZXJDYXB0dXJlKX0sdGhpcy5faGFuZGxlTG9zdFBvaW50ZXJDYXB0dXJlPWU9Pnt0aGlzLl9nZXRFdmVudFRhcmdldCgpPT09ZS50YXJnZXQmJnRoaXMuX2hhbmRsZVBvaW50ZXJVcChlKX0sdGhpcy5faGFuZGxlUG9pbnRlck1vdmU9ZT0+e2lmKG51bGwhPT10aGlzLl9pbml0aWFsJiZ0aGlzLl9pbml0aWFsLnBvaW50ZXJJZD09PWUucG9pbnRlcklkKWlmKHRoaXMuX3BvaW50ZXJTdGFydGVkKXRoaXMuX3BvaW50ZXJEcmFnKGUpO2Vsc2UgaWYodGhpcy5fcG9pbnRlckRpc3RhbmNlTWV0KGUpKXtpZih0aGlzLl9wb2ludGVyU3RhcnQoKSx0aGlzLl9wb2ludGVyU3RhcnRlZClyZXR1cm4gdm9pZCB0aGlzLl9wb2ludGVyRHJhZyhlKTt0aGlzLl9oYW5kbGVQb2ludGVyVXAoZSl9fSx0aGlzLl9oYW5kbGVQb2ludGVyVXA9ZT0+e2lmKG51bGw9PT10aGlzLl9pbml0aWFsfHx0aGlzLl9pbml0aWFsLnBvaW50ZXJJZCE9PWUucG9pbnRlcklkKXJldHVybjtlLnByZXZlbnREZWZhdWx0KCk7Y29uc3QgdD10aGlzLl9nZXRFdmVudFRhcmdldCgpO3QucmVtb3ZlRXZlbnRMaXN0ZW5lcigicG9pbnRlcm1vdmUiLHRoaXMuX2hhbmRsZVBvaW50ZXJNb3ZlKSx0LnJlbW92ZUV2ZW50TGlzdGVuZXIoInBvaW50ZXJ1cCIsdGhpcy5faGFuZGxlUG9pbnRlclVwKSx0LnJlbW92ZUV2ZW50TGlzdGVuZXIoInBvaW50ZXJjYW5jZWwiLHRoaXMuX2hhbmRsZVBvaW50ZXJVcCksdC5yZW1vdmVFdmVudExpc3RlbmVyKCJsb3N0cG9pbnRlcmNhcHR1cmUiLHRoaXMuX2hhbmRsZVBvaW50ZXJVcCksdGhpcy5fcG9pbnRlclN0YXJ0ZWQmJih0aGlzLl9wb2ludGVyU3RhcnRlZD0hMSx0LnJlbGVhc2VQb2ludGVyQ2FwdHVyZSh0aGlzLl9pbml0aWFsLnBvaW50ZXJJZCksdGhpcy5fZGlzcGF0Y2hFdmVudCh0aGlzLl9jcmVhdGVFdmVudCgicG9pbnRlci1kcmFnLXN0b3AiLGUpKSksdGhpcy5faW5pdGlhbD1udWxsfTtjb25zdCB0PXRoaXMuX2hhbmRsZT1lLmhhbmRsZTt0aGlzLl9vbkRyYWdTdGFydD1lLm9uRHJhZ1N0YXJ0LHRoaXMuX29uRHJhZ01vdmU9ZS5vbkRyYWdNb3ZlLHRoaXMuX29uRHJhZ1N0b3A9ZS5vbkRyYWdTdG9wLHRoaXMuX2Rpc3RhbmNlPWUuZGlzdGFuY2U/PzAsdGhpcy5fcm9vdEVsZW1lbnQ9ZS5yb290RWxlbWVudCx0LnN0eWxlLnRvdWNoQWN0aW9uPSJub25lIix0LmFkZEV2ZW50TGlzdGVuZXIoInBvaW50ZXJkb3duIix0aGlzLl9oYW5kbGVQb2ludGVyRG93bil9ZGVzdHJveSgpe2NvbnN0IGU9dGhpcy5faGFuZGxlO2Uuc3R5bGUudG91Y2hBY3Rpb249IiIsZS5yZW1vdmVFdmVudExpc3RlbmVyKCJwb2ludGVyZG93biIsdGhpcy5faGFuZGxlUG9pbnRlckRvd24pLGUucmVtb3ZlRXZlbnRMaXN0ZW5lcigicG9pbnRlcm1vdmUiLHRoaXMuX2hhbmRsZVBvaW50ZXJNb3ZlKSxlLnJlbW92ZUV2ZW50TGlzdGVuZXIoInBvaW50ZXJ1cCIsdGhpcy5faGFuZGxlUG9pbnRlclVwKSxlLnJlbW92ZUV2ZW50TGlzdGVuZXIoInBvaW50ZXJjYW5jZWwiLHRoaXMuX2hhbmRsZVBvaW50ZXJVcCksZS5yZW1vdmVFdmVudExpc3RlbmVyKCJsb3N0cG9pbnRlcmNhcHR1cmUiLHRoaXMuX2hhbmRsZVBvaW50ZXJVcCksbnVsbCE9PXRoaXMuX2luaXRpYWwmJihlLnJlbGVhc2VQb2ludGVyQ2FwdHVyZSh0aGlzLl9pbml0aWFsLnBvaW50ZXJJZCksdGhpcy5faW5pdGlhbD1udWxsKSx0aGlzLl9wb2ludGVyU3RhcnRlZD0hMX1fcG9pbnRlclN0YXJ0KCl7aWYoIXRoaXMuX2luaXRpYWwpcmV0dXJuO2NvbnN0IGU9dGhpcy5fZ2V0RXZlbnRUYXJnZXQoKTt0aGlzLl9kaXNwYXRjaEV2ZW50KHRoaXMuX2NyZWF0ZUV2ZW50KCJwb2ludGVyLWRyYWctc3RhcnQiLHRoaXMuX2luaXRpYWwpKT8odGhpcy5fcG9pbnRlclN0YXJ0ZWQ9ITAsZS5zZXRQb2ludGVyQ2FwdHVyZSh0aGlzLl9pbml0aWFsLnBvaW50ZXJJZCkpOnRoaXMuX2luaXRpYWw9bnVsbH1fcG9pbnRlckRyYWcoZSl7ZS5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuX2Rpc3BhdGNoRXZlbnQodGhpcy5fY3JlYXRlRXZlbnQoInBvaW50ZXItZHJhZy1tb3ZlIixlKSl9X3BvaW50ZXJEaXN0YW5jZU1ldChlKXtyZXR1cm4hdGhpcy5faW5pdGlhbHx8IXRoaXMuX2Rpc3RhbmNlfHxNYXRoLm1heChNYXRoLmFicyh0aGlzLl9pbml0aWFsLmNsaWVudFgtZS5jbGllbnRYKSxNYXRoLmFicyh0aGlzLl9pbml0aWFsLmNsaWVudFktZS5jbGllbnRZKSk+PXRoaXMuX2Rpc3RhbmNlfV9nZXRFdmVudFRhcmdldCgpe3JldHVybiB0aGlzLl9yb290RWxlbWVudD8/dGhpcy5faGFuZGxlfV9kaXNwYXRjaEV2ZW50KGUpe3N3aXRjaChlLnR5cGUpe2Nhc2UicG9pbnRlci1kcmFnLXN0YXJ0Ijp0aGlzLl9vbkRyYWdTdGFydChlKTticmVhaztjYXNlInBvaW50ZXItZHJhZy1tb3ZlIjp0aGlzLl9vbkRyYWdNb3ZlKGUpCjticmVhaztjYXNlInBvaW50ZXItZHJhZy1zdG9wIjp0aGlzLl9vbkRyYWdTdG9wKGUpfXJldHVybiFlLmRlZmF1bHRQcmV2ZW50ZWR9X2NyZWF0ZUV2ZW50KGUsdCl7cmV0dXJuKDAscy5hc3NlcnQpKG51bGwhPT10aGlzLl9pbml0aWFsKSxuZXcgQ3VzdG9tRXZlbnQoZSx7YnViYmxlczohMCxjYW5jZWxhYmxlOiEwLGRldGFpbDp7YmFja2VuZDp0aGlzLGluaXRpYWw6dGhpcy5faW5pdGlhbCxjdXJyZW50OnR9fSl9fX0sNTA5OTkwKGUsdCxpKXsidXNlIHN0cmljdCI7aS5kKHQse01lYXN1cmU6KCk9Pm59KTt2YXIgcz1pKDcxOTQyNSk7ZnVuY3Rpb24gbihlKXtjb25zdHtjaGlsZHJlbjp0LG9uUmVzaXplOml9PWU7cmV0dXJuIHQoKDAscy51c2VSZXNpemVPYnNlcnZlcikoaXx8KCgpPT57fSksW251bGw9PT1pXSkpfX0sMzEyOTMyKGUsdCxpKXsidXNlIHN0cmljdCI7aS5kKHQse0Nsb3NlQnV0dG9uOigpPT5yfSk7dmFyIHM9aSg3Nzk0NzQpLG49aSg4ODA4ODYpLGE9aSg5MTUwOTApLG89aS5uKGEpO2NvbnN0IHI9cy5mb3J3YXJkUmVmKCgoZSx0KT0+cy5jcmVhdGVFbGVtZW50KG4uTmF2QnV0dG9uLHsuLi5lLHJlZjp0LGljb246bygpfSkpKX0sOTg2NjA5KGUsdCxpKXsidXNlIHN0cmljdCI7aS5kKHQse05hdkJ1dHRvbkNvbnRlbnQ6KCk9PmMsZ2V0TmF2QnV0dG9uQ2xhc3NlczooKT0+aH0pO3ZhciBzPWkoNzc5NDc0KSxuPWkoOTE0NDg3KSxhPWkubihuKSxvPWkoNDgwOTcyKSxyPWkoNDAyMjUzKSxsPWkubihyKTtjb25zdCBkPXsiLS11aS1saWItcHJpdmF0ZS1uYXZCdXR0b24tYmxlbmRNaXhMaWdodCI6ImNvbG9yLWJ1cm4iLCItLXVpLWxpYi1wcml2YXRlLW5hdkJ1dHRvbi1ibGVuZE1peERhcmsiOiJjb2xvci1kb2RnZSJ9O2Z1bmN0aW9uIGgoZSl7Y29uc3R7c2l6ZTp0PSJsYXJnZSIscHJlc2VydmVQYWRkaW5nczppLGlzTGluazpzLGZsaXBJY29uT25SdGw6bixibGVuZE1vZGU6byxjbGFzc05hbWU6cn09ZTtyZXR1cm4gYSgpKGwoKS5uYXZCdXR0b24sbCgpW3RdLGkmJmwoKS5wcmVzZXJ2ZVBhZGRpbmdzLG4mJmwoKS5mbGlwSWNvbixvJiZsKCkuYmxlbmRNb2RlLHMmJmwoKS5saW5rLHIpfWZ1bmN0aW9uIGMoZSl7Y29uc3R7Y2hpbGRyZW46dCxpY29uOmksYmxlbmRNb2RlOm59PWU7cmV0dXJuIHMuY3JlYXRlRWxlbWVudChzLkZyYWdtZW50LG51bGwscy5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOmwoKS5iYWNrZ3JvdW5kLHN0eWxlOm4/ZDp2b2lkIDB9KSxzLmNyZWF0ZUVsZW1lbnQoby5TY2FsYWJsZUljb24se2ljb246aSxjbGFzc05hbWU6bCgpLmljb259KSx0JiZzLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6bCgpLnZpc3VhbGx5SGlkZGVufSx0KSl9fSw4ODA4ODYoZSx0LGkpeyJ1c2Ugc3RyaWN0IjtpLmQodCx7TmF2QnV0dG9uOigpPT5hfSk7dmFyIHM9aSg3Nzk0NzQpLG49aSg5ODY2MDkpO2NvbnN0IGE9KDAscy5mb3J3YXJkUmVmKSgoKGUsdCk9Pntjb25zdHtpY29uOmksdHlwZTphPSJidXR0b24iLHByZXNlcnZlUGFkZGluZ3M6byxmbGlwSWNvbk9uUnRsOnIsc2l6ZTpsLGJsZW5kTW9kZTpkLGFyaWFMYWJlbDpoLC4uLmN9PWU7cmV0dXJuIHMuY3JlYXRlRWxlbWVudCgiYnV0dG9uIix7Li4uYyxjbGFzc05hbWU6KDAsbi5nZXROYXZCdXR0b25DbGFzc2VzKSh7Li4uZSxjaGlsZHJlbjpofSkscmVmOnQsdHlwZTphfSxzLmNyZWF0ZUVsZW1lbnQobi5OYXZCdXR0b25Db250ZW50LHtpY29uOmksYmxlbmRNb2RlOmR9LGgpKX0pKTthLmRpc3BsYXlOYW1lPSJOYXZCdXR0b24ifSw3MjE5MTAoZSx0LGkpeyJ1c2Ugc3RyaWN0IjtpLmQodCx7Q291bnRlcjooKT0+Y30pO3ZhciBzLG4sYSxvPWkoOTE0NDg3KSxyPWkubihvKSxsPWkoNzc5NDc0KSxkPWkoMzYyNzkzKSxoPWkubihkKTtmdW5jdGlvbiBjKGUpe2NvbnN0e2NsYXNzTmFtZTp0LGNvdW50OmksY29tcGFjdDpzPSEwLHNpemU6bj0ieGxhcmdlIixjb2xvcjphPSJkYW5nZXIiLHNpZ246byxib3JkZXJDb2xvcjpkPSJub25lIiwiYXJpYS1sYWJlbCI6YywiYXJpYS1oaWRkZW4iOnUsZGlzYWJsZWQ6ZywuLi5tfT1lLHA9bTtsZXQgXztfPSEoInh4c21hbGwiPT09bnx8Inh4eHNtYWxsIj09PW4pJiZpP3MmJmk+PTEwMD8iOTkrIjpvJiZpPjA/YCske2l9YDppOiIiO2NvbnN0IGI9cigpKHQsaCgpLmNvdW50ZXIsaCgpW25dLGgoKVtgY29sb3ItJHthfWBdLCJub25lIiE9PWQmJmgoKVtgYm9yZGVyQ29sb3ItJHtkfWBdLGcmJmgoKS5kaXNhYmxlZCk7cmV0dXJuIGwuY3JlYXRlRWxlbWVudCgic3BhbiIsey4uLnAsY2xhc3NOYW1lOmIscm9sZTp2b2lkIDAhPT1jPyJpbWciOnZvaWQgMCwiYXJpYS1sYWJlbCI6YywiYXJpYS1oaWRkZW4iOnV9LF8pfSFmdW5jdGlvbihlKXtlLlhYWFNtYWxsPSJ4eHhzbWFsbCIsZS5YWFNtYWxsPSJ4eHNtYWxsIixlLlhTbWFsbD0ieHNtYWxsIixlLlNtYWxsPSJzbWFsbCIsZS5NZWRpdW09Im1lZGl1bSIsZS5MYXJnZT0ibGFyZ2UiLGUuWExhcmdlPSJ4bGFyZ2UifShzfHwocz17fSkpLGZ1bmN0aW9uKGUpe2UuRGFuZ2VyPSJkYW5nZXIiLGUuQWNjZW50PSJhY2NlbnQiLGUuQWNjZW50TGlnaHQ9ImFjY2VudC1saWdodCIsZS5OZXV0cmFsQm9sZD0ibmV1dHJhbC1ib2xkIixlLk5ldXRyYWw9Im5ldXRyYWwifShufHwobj17fSkpLGZ1bmN0aW9uKGUpe2UuUHJpbWFyeT0icHJpbWFyeSIsZS5TZWNvbmRhcnk9InNlY29uZGFyeSIsZS5UZXJ0aWFyeT0idGVydGlhcnkiLGUuTm9uZT0ibm9uZSJ9KGF8fChhPXt9KSl9LDc4Nzg5NShlLHQsaSl7InVzZSBzdHJpY3QiO2kuZCh0LHt1c2VGdW5jdGlvbmFsUmVmT2JqZWN0OigpPT5hfSk7dmFyIHM9aSg3Nzk0NzQpLG49aSg2MTYzMTEpO2Z1bmN0aW9uIGEoZSl7Y29uc3QgdD0oMCxzLnVzZU1lbW8pKCgoKT0+ZnVuY3Rpb24oZSl7Y29uc3QgdD1pPT57ZShpKSx0LmN1cnJlbnQ9aX07cmV0dXJuIHQuY3VycmVudD1udWxsLHR9KChlPT57ci5jdXJyZW50KGUpfSkpKSxbXSksaT0oMCxzLnVzZVJlZikobnVsbCksYT10PT57aWYobnVsbD09PXQpcmV0dXJuIG8oaS5jdXJyZW50LHQpLHZvaWQoaS5jdXJyZW50PW51bGwpCjtpLmN1cnJlbnQhPT1lJiYoaS5jdXJyZW50PWUsbyhpLmN1cnJlbnQsdCkpfSxyPSgwLHMudXNlUmVmKShhKTtyZXR1cm4gci5jdXJyZW50PWEsKDAsbi51c2VJc29tb3JwaGljTGF5b3V0RWZmZWN0KSgoKCk9PntpZihudWxsIT09dC5jdXJyZW50KXJldHVybiByLmN1cnJlbnQodC5jdXJyZW50KSwoKT0+ci5jdXJyZW50KG51bGwpfSksW2VdKSx0fWZ1bmN0aW9uIG8oZSx0KXtudWxsIT09ZSYmKCJmdW5jdGlvbiI9PXR5cGVvZiBlP2UodCk6ZS5jdXJyZW50PXQpfX0sNjg5ODk0KGUsdCxpKXsidXNlIHN0cmljdCI7aS5kKHQse2hvdmVyTW91c2VFdmVudEZpbHRlcjooKT0+byx1c2VBY2N1cmF0ZUhvdmVyOigpPT5yLHVzZUhvdmVyOigpPT5uLHVzZUhvdmVyRGVwcmVjYXRlZDooKT0+YX0pO3ZhciBzPWkoNzc5NDc0KTtmdW5jdGlvbiBuKCl7Y29uc3RbZSx0XT0oMCxzLnVzZVN0YXRlKSghMSk7cmV0dXJuW2Use29uTW91c2VFbnRlcjpmdW5jdGlvbihlKXt0KCEwKX0sb25Nb3VzZUxlYXZlOmZ1bmN0aW9uKGUpe3QoITEpfX1dfWZ1bmN0aW9uIGEoKXtjb25zdFtlLHRdPSgwLHMudXNlU3RhdGUpKCExKTtyZXR1cm5bZSx7b25Nb3VzZU92ZXI6ZnVuY3Rpb24oZSl7byhlKSYmdCghMCl9LG9uTW91c2VPdXQ6ZnVuY3Rpb24oZSl7byhlKSYmdCghMSl9fV19ZnVuY3Rpb24gbyhlKXtyZXR1cm4hZS5jdXJyZW50VGFyZ2V0LmNvbnRhaW5zKGUucmVsYXRlZFRhcmdldCl9ZnVuY3Rpb24gcihlKXtjb25zdFt0LGldPSgwLHMudXNlU3RhdGUpKCExKTtyZXR1cm4oMCxzLnVzZUVmZmVjdCkoKCgpPT57Y29uc3QgdD10PT57aWYobnVsbD09PWUuY3VycmVudClyZXR1cm47Y29uc3Qgcz1lLmN1cnJlbnQuY29udGFpbnModC50YXJnZXQpO2kocyl9O3JldHVybiBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZW92ZXIiLHQpLCgpPT5kb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZW92ZXIiLHQpfSksW10pLHR9fSw3MTk0MjUoZSx0LGkpeyJ1c2Ugc3RyaWN0IjtpLmQodCx7dXNlUmVzaXplT2JzZXJ2ZXI6KCk9Pm99KTt2YXIgcz1pKDc3OTQ3NCksbj1pKDYxNjMxMSksYT1pKDc4Nzg5NSk7ZnVuY3Rpb24gbyhlLHQ9W10pe2NvbnN0e2NhbGxiYWNrOmkscmVmOm89bnVsbH09ZnVuY3Rpb24oZSl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIGU/e2NhbGxiYWNrOmV9OmV9KGUpLHI9KDAscy51c2VSZWYpKG51bGwpLGw9KDAscy51c2VSZWYpKGkpO2wuY3VycmVudD1pO2NvbnN0IGQ9KDAsYS51c2VGdW5jdGlvbmFsUmVmT2JqZWN0KShvKSxoPSgwLHMudXNlQ2FsbGJhY2spKChlPT57ZChlKSxudWxsIT09ci5jdXJyZW50JiYoci5jdXJyZW50LmRpc2Nvbm5lY3QoKSxudWxsIT09ZSYmci5jdXJyZW50Lm9ic2VydmUoZSkpfSksW2Qscl0pO3JldHVybigwLG4udXNlSXNvbW9ycGhpY0xheW91dEVmZmVjdCkoKCgpPT4oci5jdXJyZW50PW5ldyBSZXNpemVPYnNlcnZlcigoKGUsdCk9PntsLmN1cnJlbnQoZSx0KX0pKSxkLmN1cnJlbnQmJmgoZC5jdXJyZW50KSwoKT0+e3IuY3VycmVudD8uZGlzY29ubmVjdCgpfSkpLFtkLC4uLnRdKSxofX0sOTQ4NDUwKGUsdCxpKXsidXNlIHN0cmljdCI7aS5kKHQse0NvbW1vbkljb246KCk9Pm59KTt2YXIgcz1pKDc3OTQ3NCk7Y29uc3Qgbj1zLmZvcndhcmRSZWYoKChlLHQpPT57Y29uc3R7Y2xhc3NOYW1lOmksYXJpYUxhYmVsOm4sYXJpYUxhYmVsbGVkYnk6YSx0aXRsZTpvLGljb246cj0iIiwuLi5sfT1lLGQ9bCxoPSEoIW4mJiFhKTtyZXR1cm4gcy5jcmVhdGVFbGVtZW50KCJzcGFuIix7ImFyaWEtbGFiZWwiOm4sImFyaWEtbGFiZWxsZWRieSI6YSwiYXJpYS1oaWRkZW4iOiFoLHJlZjp0LHJvbGU6ImltZyIsZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUw6e19faHRtbDpyfSxjbGFzc05hbWU6aSx0aXRsZTpvLC4uLmR9KX0pKX0sMjczMzEwKGUsdCxpKXsidXNlIHN0cmljdCI7aS5kKHQse0ljb246KCk9Pm59KTt2YXIgcz1pKDc3OTQ3NCk7Y29uc3Qgbj1zLmZvcndhcmRSZWYoKChlLHQpPT57Y29uc3R7aWNvbjppPSIiLHRpdGxlOm4sYXJpYUxhYmVsOmEsYXJpYUxhYmVsbGVkYnk6byxhcmlhSGlkZGVuOnIsLi4ubH09ZSxkPSEhKG58fGF8fG8pO3JldHVybiBzLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtyb2xlOiJpbWciLC4uLmwscmVmOnQsImFyaWEtbGFiZWwiOmEsImFyaWEtbGFiZWxsZWRieSI6bywiYXJpYS1oaWRkZW4iOnJ8fCFkLHRpdGxlOm4sZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUw6e19faHRtbDppfX0pfSkpfSw0ODA5NzIoZSx0LGkpeyJ1c2Ugc3RyaWN0IjtpLmQodCx7U2NhbGFibGVJY29uOigpPT5kfSk7dmFyIHM9aSg5MTQ0ODcpLG49aS5uKHMpLGE9aSg3Nzk0NzQpLG89aSg5NDg0NTApLHI9aSgyMDMyNzMpLGw9aS5uKHIpO2NvbnN0IGQ9YS5mb3J3YXJkUmVmKCgoZSx0KT0+e2NvbnN0e2NsYXNzTmFtZTppLC4uLnN9PWU7cmV0dXJuIGEuY3JlYXRlRWxlbWVudChvLkNvbW1vbkljb24sey4uLnMsY2xhc3NOYW1lOm4oKShpLGwoKS5zY2FsYWJsZUljb24pLHJlZjp0fSl9KSl9LDI3ODI2MyhlLHQsaSl7InVzZSBzdHJpY3QiO2kuZCh0LHtmb3JtYXRUaW1lOigpPT5nLGlzVmFsaWRUaW1lT3B0aW9uc0RhdGVTdHlsZTooKT0+dSxpc1ZhbGlkVGltZU9wdGlvbnNSYW5nZTooKT0+Y30pO2NvbnN0IHM9e2NhbGVuZGFyOiJncmVnb3J5IixudW1iZXJpbmdTeXN0ZW06ImxhdG4iLGhvdXIxMjohMX0sbj17eWVhcjoibnVtZXJpYyIsbW9udGg6InNob3J0IixkYXk6Im51bWVyaWMifSxhPXt5ZWFyOiJudW1lcmljIixtb250aDoiMi1kaWdpdCIsZGF5OiIyLWRpZ2l0In0sbz17aG91cjoiMi1kaWdpdCIsbWludXRlOiIyLWRpZ2l0IixzZWNvbmQ6IjItZGlnaXQifSxyPSJzaG9ydE9mZnNldCIsbD0ic2hvcnQiLGQ9e3llYXI6MCxtb250aDoxLGRheToyLGhvdXI6MyxtaW51dGU6NCxzZWNvbmQ6NX07Y29uc3QgaD1bInllYXIiLCJtb250aCIsImRheSIsImhvdXIiLCJtaW51dGUiLCJzZWNvbmQiXTtmdW5jdGlvbiBjKGUpe3JldHVybiBoLmluY2x1ZGVzKGUpfWZ1bmN0aW9uIHUoZSl7cmV0dXJuIm51bWVyaWMiPT09ZXx8InNob3J0Ij09PWV9CmZ1bmN0aW9uIGcoZSx0LGk9InllYXIiLGg9ImRheSIsYyl7Y29uc3QgdT1mdW5jdGlvbihlPSJ5ZWFyIix0PSJkYXkiLGk9e30pe1tlLHRdPWRbdF0+ZFtlXT9bZSx0XTpbdCxlXTtjb25zdCBoPXsuLi4ibnVtZXJpYyI9PT1pLmRhdGVTdHlsZT9hOm4sLi4ub30sYz1pLmZyYWN0aW9uYWxTZWNvbmREaWdpdHMsdT17Li4ucyxmcmFjdGlvbmFsU2Vjb25kRGlnaXRzOnZvaWQgMD09PWM/dm9pZCAwOk1hdGguZmxvb3IoTWF0aC5taW4oTWF0aC5tYXgoMSxjKSwzKSksdGltZVpvbmU6aS50aW1lWm9uZSx3ZWVrZGF5Omkud2Vla2RheT9sOnZvaWQgMCx0aW1lWm9uZU5hbWU6aS50aW1lWm9uZU5hbWU/cjp2b2lkIDB9O3JldHVybiBPYmplY3Qua2V5cyhoKS5mb3JFYWNoKChpPT57ZFtpXT49ZFtlXSYmZFtpXTw9ZFt0XSYmKHVbaV09aFtpXSl9KSksdX0oaSxoLGMpLGc9bmV3IEludGwuRGF0ZVRpbWVGb3JtYXQodCx1KSxtPW5ldyBEYXRlKGUpO3JldHVybiBnLmZvcm1hdChtKX19LDMxNDcyMChlLHQsaSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHMoZSl7Y29uc3R7cGFkZGluZ1RvcDp0LHBhZGRpbmdCb3R0b206aX09d2luZG93LmdldENvbXB1dGVkU3R5bGUoZSk7cmV0dXJuW3QsaV0ucmVkdWNlKCgoZSx0KT0+ZS1OdW1iZXIoKHR8fCIiKS5yZXBsYWNlKCJweCIsIiIpKSksZS5jbGllbnRIZWlnaHQpfWZ1bmN0aW9uIG4oZSx0PSExKXtjb25zdCBpPWdldENvbXB1dGVkU3R5bGUoZSkscz1baS5oZWlnaHRdO3JldHVybiJib3JkZXItYm94IiE9PWkuYm94U2l6aW5nJiZzLnB1c2goaS5wYWRkaW5nVG9wLGkucGFkZGluZ0JvdHRvbSxpLmJvcmRlclRvcFdpZHRoLGkuYm9yZGVyQm90dG9tV2lkdGgpLHQmJnMucHVzaChpLm1hcmdpblRvcCxpLm1hcmdpbkJvdHRvbSkscy5yZWR1Y2UoKChlLHQpPT5lKyhwYXJzZUZsb2F0KHQpfHwwKSksMCl9ZnVuY3Rpb24gYShlLHQ9ITEpe2NvbnN0IGk9Z2V0Q29tcHV0ZWRTdHlsZShlKSxzPVtpLndpZHRoXTtyZXR1cm4iYm9yZGVyLWJveCIhPT1pLmJveFNpemluZyYmcy5wdXNoKGkucGFkZGluZ0xlZnQsaS5wYWRkaW5nUmlnaHQsaS5ib3JkZXJMZWZ0V2lkdGgsaS5ib3JkZXJSaWdodFdpZHRoKSx0JiZzLnB1c2goaS5tYXJnaW5MZWZ0LGkubWFyZ2luUmlnaHQpLHMucmVkdWNlKCgoZSx0KT0+ZSsocGFyc2VGbG9hdCh0KXx8MCkpLDApfWkuZCh0LHtjb250ZW50SGVpZ2h0OigpPT5zLG91dGVySGVpZ2h0OigpPT5uLG91dGVyV2lkdGg6KCk9PmF9KX0sODMzOTAzKGUsdCxpKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gcyguLi5lKXtyZXR1cm4gdD0+e2Zvcihjb25zdCBpIG9mIGUpdm9pZCAwIT09aSYmaSh0KX19aS5kKHQse2NyZWF0ZVNhZmVNdWx0aWNhc3RFdmVudEhhbmRsZXI6KCk9PnN9KX0sNTc5MDE2KGUsdCxpKXsidXNlIHN0cmljdCI7aS5kKHQse01JTl9OT1RFU19XSURHRVRfSEVJR0hUX0lOX0lOUFVUX01PREU6KCk9Pm4sUkVRVUlSRURfUVVPVEVfRklFTERTOigpPT5zfSk7Y29uc3Qgcz1uZXcgU2V0KFsic3ltYm9sLXByaW1hcnluYW1lIiwic2hvcnRfbmFtZSIsInByb19uYW1lIiwibG9nbyIsInR5cGUiLCJ0eXBlc3BlY3MiXSksbj0xODF9LDcwNTI3MyhlLHQsaSl7InVzZSBzdHJpY3QiO3ZhciBzO2kuZCh0LHtTeW1ib2xOb3Rlc1N0YXR1czooKT0+c30pLGZ1bmN0aW9uKGUpe2UuSWRsZT0iSWRsZSIsZS5GZXRjaGluZz0iRmV0Y2hpbmciLGUuRmV0Y2hlZD0iRmV0Y2hlZCIsZS5FcnJvcj0iRXJyb3IifShzfHwocz17fSkpfSw0MDk1MyhlLHQsaSl7InVzZSBzdHJpY3QiO2kuZCh0LHtjcmVhdGVDcm9zc1RhYlN5bmNNaWRkbGV3YXJlOigpPT5tLHJlc2V0OigpPT5fLHN5bWJvbE5vdGVzUmVkdWNlcjooKT0+cH0pO3ZhciBzPWkoMTMwNjk5KSxuPWkoMTM4NjM4KSxhPWkoOTg4MjA2KSxvPWkoNzA1MjczKTtmdW5jdGlvbiByKCl7cmV0dXJue3N0YXR1czpvLlN5bWJvbE5vdGVzU3RhdHVzLklkbGUsbm90ZXM6e30sZ3JvdXBzOnt9fX1jb25zdCBsPXIoKSxkPSgwLHMuY3JlYXRlU2xpY2UpKHtuYW1lOiJzeW1ib2xOb3RlcyIsaW5pdGlhbFN0YXRlOmwscmVkdWNlcnM6e3Jlc2V0OigpPT5yKCl9LGV4dHJhUmVkdWNlcnM6ZT0+eyFmdW5jdGlvbihlKXtbaCxjLHUsZ10uZm9yRWFjaCgodD0+e3QoZSl9KSl9KGUpfX0pO2Z1bmN0aW9uIGgoZSl7ZS5hZGRDYXNlKGEuZmV0Y2hTeW1ib2xOb3Rlc1RodW5rLnBlbmRpbmcsKGU9PntlLnN0YXR1cz1vLlN5bWJvbE5vdGVzU3RhdHVzLkZldGNoaW5nfSkpLGUuYWRkQ2FzZShhLmZldGNoU3ltYm9sTm90ZXNUaHVuay5mdWxmaWxsZWQsKChlLHtwYXlsb2FkOnR9KT0+e2Uuc3RhdHVzPW8uU3ltYm9sTm90ZXNTdGF0dXMuRmV0Y2hlZDtjb25zdCBpPXt9LHM9e307dC5ub3Rlcy5mb3JFYWNoKChlPT57aWYoIXQuZGF0YS5oYXNPd25Qcm9wZXJ0eSgoMCxhLmdldFJhd1N5bWJvbEZyb21Ob3RlKShlKSkpcmV0dXJuO2NvbnN0IG89KDAsYS5nZXRSYXdTeW1ib2xGcm9tTm90ZSkoZSkscj10LmRhdGFbb10sbD1yLm5hbWU7aVtlLmlkXT17aWQ6ZS5pZCxncm91cDpsLGNvbnRlbnQ6ZS5kZXNjcmlwdGlvbixkYXRlQ3JlYXRlZDoxZTMqZS5jcmVhdGVkLGRhdGVNb2RpZmllZDoxZTMqKDAsbi5lbnN1cmVEZWZpbmVkKShlLm1vZGlmaWVkPz92b2lkIDApLHJhdzp7Li4uZX0sdGl0bGU6ZS50aXRsZX0scy5oYXNPd25Qcm9wZXJ0eShsKT9zW2xdLm5vdGVzLnB1c2goZS5pZCk6c1tsXT17bmFtZTpyLm5hbWUsbm90ZXM6W2UuaWRdLHN5bWJvbDpvfX0pKSxPYmplY3QudmFsdWVzKHMpLmZvckVhY2goKGU9PntlLm5vdGVzLnNvcnQoKChlLHQpPT5pW2VdLmRhdGVDcmVhdGVkLWlbdF0uZGF0ZUNyZWF0ZWQpKX0pKSxlLm5vdGVzPWksZS5ncm91cHM9c30pKSxlLmFkZENhc2UoYS5mZXRjaFN5bWJvbE5vdGVzVGh1bmsucmVqZWN0ZWQsKGU9PntlLnN0YXR1cz1vLlN5bWJvbE5vdGVzU3RhdHVzLkVycm9yfSkpfWZ1bmN0aW9uIGMoZSl7ZS5hZGRDYXNlKGEuZWRpdE5vdGVUaHVuay5mdWxmaWxsZWQsKChlLHtwYXlsb2FkOnR9KT0+e2NvbnN0IGk9ZS5ub3Rlc1t0Lm5vdGVJZF07dm9pZCAwIT09aSYmKGkuY29udGVudD10LmNvbnRlbnQsCmkuZGF0ZU1vZGlmaWVkPTFlMyp0Lm1vZGlmaWVkLGkucmF3LmRlc2NyaXB0aW9uPWkuY29udGVudCxpLnJhdy5tb2RpZmllZD10Lm1vZGlmaWVkLGkucmF3LnNuYXBzaG90X3RodW1iPXQucmF3LnNuYXBzaG90X3RodW1iLGkucmF3LnNuYXBzaG90X3BhZ2U9dC5yYXcuc25hcHNob3RfcGFnZSx0LnRpdGxlJiYoaS50aXRsZT10LnRpdGxlLGkucmF3LnRpdGxlPXQudGl0bGUpKX0pKX1mdW5jdGlvbiB1KGUpe2UuYWRkQ2FzZShhLnJlbW92ZU5vdGVUaHVuay5mdWxmaWxsZWQsKChlLHtwYXlsb2FkOnR9KT0+e2NvbnN0IGk9ZS5ub3Rlc1t0Lm5vdGVJZF07aWYodm9pZCAwPT09aSlyZXR1cm47ZGVsZXRlIGUubm90ZXNbdC5ub3RlSWRdO2NvbnN0IHM9ZS5ncm91cHNbaS5ncm91cF07dm9pZCAwIT09cyYmKHMubm90ZXM9cy5ub3Rlcy5maWx0ZXIoKGU9PmUhPT1pLmlkKSksMD09PXMubm90ZXMubGVuZ3RoJiZkZWxldGUgZS5ncm91cHNbcy5uYW1lXSl9KSl9ZnVuY3Rpb24gZyhlKXtlLmFkZENhc2UoYS5hZGROb3RlVGh1bmsuZnVsZmlsbGVkLCgoZSx7cGF5bG9hZDp0fSk9PntlLm5vdGVzW3Qubm90ZS5pZF09e2lkOnQubm90ZS5pZCxjb250ZW50OnQubm90ZS5jb250ZW50LGdyb3VwOnQubm90ZS5ncm91cCxkYXRlQ3JlYXRlZDp0Lm5vdGUuZGF0ZUNyZWF0ZWQsZGF0ZU1vZGlmaWVkOnQubm90ZS5kYXRlTW9kaWZpZWQscmF3OnsuLi50Lm5vdGUucmF3fSx0aXRsZTp0Lm5vdGUudGl0bGV9O2NvbnN0IGk9ZS5ncm91cHNbdC5ub3RlLmdyb3VwXTtpZih2b2lkIDA9PT1pKXtjb25zdCBpPSgwLGEuZ2V0UmF3U3ltYm9sRnJvbU5vdGUpKHQubm90ZS5yYXcpO2UuZ3JvdXBzW3Qubm90ZS5ncm91cF09e25hbWU6dC5ub3RlLmdyb3VwLG5vdGVzOlt0Lm5vdGUuaWRdLHN5bWJvbDppfX1lbHNlIGkubm90ZXMucHVzaCh0Lm5vdGUuaWQpfSkpfWZ1bmN0aW9uIG0oZSx0LGk9ZCl7cmV0dXJuIGZ1bmN0aW9uKGUpe2NvbnN0e2lkOnQsZXZlbnQ6aSxjaGFubmVsOnMsZmlsdGVyOm59PWU7cmV0dXJuIGU9PihzLm9uKGksKGk9Pntjb25zdHthY3Rpb246cyxlbWl0dGVyOmF9PUpTT04ucGFyc2UoaSk7YSE9PXQmJm4ocykmJmUuZGlzcGF0Y2goey4uLnMscGF5bG9hZDp7Li4ucy5wYXlsb2FkfHx7fSxzaWxlbnQ6ITB9fSl9KSksZT0+YT0+e2NvbnN0IG89ZShhKTtyZXR1cm4gbihhKSYmKGEucGF5bG9hZD8uc2lsZW50fHxzLmVtaXQoaSxKU09OLnN0cmluZ2lmeSh7YWN0aW9uOmEsZW1pdHRlcjp0fSkpKSxvfSl9KHtpZDplLGNoYW5uZWw6dCxldmVudDoibm90ZXMtY3Jvc3MtdGFiLXN5bmMiLGZpbHRlcjplPT5mdW5jdGlvbihlLHQpe3JldHVybiBhLmFkZE5vdGVUaHVuay5mdWxmaWxsZWQubWF0Y2goZSl8fGEuZWRpdE5vdGVUaHVuay5mdWxmaWxsZWQubWF0Y2goZSl8fGEucmVtb3ZlTm90ZVRodW5rLmZ1bGZpbGxlZC5tYXRjaChlKXx8YS5mZXRjaFN5bWJvbE5vdGVzVGh1bmsuZnVsZmlsbGVkLm1hdGNoKGUpfHx0LmFjdGlvbnMucmVzZXQubWF0Y2goZSl9KGUsaSl9KX1jb25zdCBwPWQucmVkdWNlcix7cmVzZXQ6X309ZC5hY3Rpb25zfSw3NjM0ODIoZSx0LGkpeyJ1c2Ugc3RyaWN0IjtpLmQodCx7c3ltYm9sTm90ZXNTdG9yZTooKT0+ZH0pO3ZhciBzPWkoMTMwNjk5KSxuPWkoMTc5NzcxKSxhPWkoMTUyNjk5KSxvPWkoMTUwMTUwKSxyPWkoOTg4MjA2KSxsPWkoNDA5NTMpO2NvbnN0IGQ9KDAscy5jb25maWd1cmVTdG9yZSkoe3JlZHVjZXI6e3N5bWJvbE5vdGVzOmwuc3ltYm9sTm90ZXNSZWR1Y2VyfSxtaWRkbGV3YXJlOmU9PlsuLi5lKCksZT0+ZT0+dD0+e2NvbnN0IGk9ZSh0KTtyZXR1cm4gaC5zb21lKChlPT5lLm1hdGNoKHQpKSkmJm4uZW1pdCgiTk9USUZZX05PVEVTX1VQREFURSIsdCksaX0sKDAsbC5jcmVhdGVDcm9zc1RhYlN5bmNNaWRkbGV3YXJlKSgoMCxvLnJhbmRvbUhhc2gpKCksYS5UVlhXaW5kb3dFdmVudHMpXX0pLGg9W3IuYWRkTm90ZVRodW5rLmZ1bGZpbGxlZCxyLmVkaXROb3RlVGh1bmsuZnVsZmlsbGVkLHIucmVtb3ZlTm90ZVRodW5rLmZ1bGZpbGxlZF19LDk4ODIwNihlLHQsaSl7InVzZSBzdHJpY3QiO2kuZCh0LHthZGROb3RlVGh1bms6KCk9PnUsZWRpdE5vdGVUaHVuazooKT0+ZyxmZXRjaFN5bWJvbE5vdGVzVGh1bms6KCk9PmMsZ2V0UmF3U3ltYm9sRnJvbU5vdGU6KCk9PmgscmVtb3ZlTm90ZVRodW5rOigpPT5tfSk7dmFyIHM9aSgxMzA2OTkpLG49aSgxMzg2MzgpLGE9aSgzODQwMTcpO2NvbnN0IG89Ii90ZXh0bm90ZXMiO3ZhciByPWkoMzUwNTA4KSxsPWkoNzA1MjczKTtjb25zdCBkPW5ldyBjbGFzc3tnZXRBbGwoKXtyZXR1cm4oMCxhLmZldGNoKShgJHtvfS9nZXRhbGwvYCkudGhlbigoZT0+dGhpcy5faGFuZGxlUmVzcG9uc2UoZSwianNvbiIpKSl9YWRkKGUpe2NvbnN0IHQ9bmV3IEZvcm1EYXRhO3JldHVybiBPYmplY3QuZW50cmllcyhlKS5mb3JFYWNoKCgoW2UsaV0pPT57dm9pZCAwIT09aSYmdC5zZXQoZSxpKX0pKSwoMCxhLmZldGNoKShgJHtvfS9hZGQvYCx7bWV0aG9kOiJQT1NUIixib2R5OnR9KS50aGVuKChlPT50aGlzLl9oYW5kbGVSZXNwb25zZShlLCJqc29uIikpKX1yZW1vdmUoZSl7Y29uc3QgdD1uZXcgRm9ybURhdGE7cmV0dXJuIHQuc2V0KCJpZF9ub3RlIixTdHJpbmcoZS5pZF9ub3RlKSksKDAsYS5mZXRjaCkoYCR7b30vcmVtb3ZlL2Ase21ldGhvZDoiUE9TVCIsYm9keTp0fSkudGhlbigoZT0+dGhpcy5faGFuZGxlUmVzcG9uc2UoZSwidGV4dCIpKSl9ZWRpdChlKXtjb25zdCB0PW5ldyBGb3JtRGF0YTtyZXR1cm4gT2JqZWN0LmVudHJpZXMoZSkuZm9yRWFjaCgoKFtlLGldKT0+e3ZvaWQgMCE9PWkmJnQuc2V0KGUsaSl9KSksKDAsYS5mZXRjaCkoYCR7b30vZWRpdC9gLHttZXRob2Q6IlBPU1QiLGJvZHk6dH0pLnRoZW4oKGU9PnRoaXMuX2hhbmRsZVJlc3BvbnNlKGUsImpzb24iKSkpfV9oYW5kbGVSZXNwb25zZShlLHQpe2lmKCFlLm9rKXRocm93IG5ldyBFcnJvcihlLnN0YXR1c1RleHQpO3JldHVybiJqc29uIj09PXQ/ZS5qc29uKCk6ZS50ZXh0KCl9fTtmdW5jdGlvbiBoKGUpe3JldHVybiBlLnN5bWJvbF9mdWxsPz9lLnN5bWJvbD8/IiJ9CmNvbnN0IGM9KDAscy5jcmVhdGVBc3luY1RodW5rKSgic3ltYm9sTm90ZXMvZmV0Y2hTeW1ib2xOb3RlcyIsKGFzeW5jKGUsdCk9Pntjb25zdCBpPWF3YWl0IGQuZ2V0QWxsKCkscz1hd2FpdCgwLHIuZ2V0UmVzb2x2ZWRTeW1ib2xOb3Rlc0RhdGEpKGkubWFwKGgpKTtyZXR1cm57bm90ZXM6aSxkYXRhOnN9fSkse2NvbmRpdGlvbjooZSx0KT0+dC5nZXRTdGF0ZSgpLnN5bWJvbE5vdGVzLnN0YXR1cz09PWwuU3ltYm9sTm90ZXNTdGF0dXMuSWRsZX0pLHU9KDAscy5jcmVhdGVBc3luY1RodW5rKSgic3ltYm9sTm90ZXMvYWRkU3ltYm9sTm90ZSIsKGFzeW5jKGUsdCk9Pntjb25zdCBpPWF3YWl0IGQuYWRkKHtzeW1ib2w6ZS5ncm91cCxzeW1ib2xfZnVsbDplLnN5bWJvbEZ1bGxOYW1lLGRlc2NyaXB0aW9uOmUuY29udGVudCxzbmFwc2hvdF91aWQ6ZS5zbmFwc2hvdFVpZCx0aXRsZTplLnRpdGxlPz8iIn0pO3JldHVybntub3RlOntpZDppLmlkLGdyb3VwOmkuc3ltYm9sPz8iIixjb250ZW50OmkuZGVzY3JpcHRpb24sZGF0ZUNyZWF0ZWQ6MWUzKmkuY3JlYXRlZCxkYXRlTW9kaWZpZWQ6MWUzKigwLG4uZW5zdXJlRGVmaW5lZCkoaS5tb2RpZmllZD8/dm9pZCAwKSxyYXc6aSx0aXRsZTppLnRpdGxlfX19KSksZz0oMCxzLmNyZWF0ZUFzeW5jVGh1bmspKCJzeW1ib2xOb3Rlcy9lZGl0U3ltYm9sTm90ZSIsKGFzeW5jKGUsdCk9Pntjb25zdCBpPXQuZ2V0U3RhdGUoKSxzPSgwLG4uZW5zdXJlRGVmaW5lZCkoaS5zeW1ib2xOb3Rlcy5ub3Rlc1tlLm5vdGVJZF0pLGE9YXdhaXQgZC5lZGl0KHtpZDplLm5vdGVJZCxkZXNjcmlwdGlvbjplLmNvbnRlbnQsc25hcHNob3RfdWlkOmUuc25hcHNob3RVaWQsdGl0bGU6ZS50aXRsZT8/cy50aXRsZX0pO3JldHVybnsuLi5lLG1vZGlmaWVkOigwLG4uZW5zdXJlRGVmaW5lZCkoYS5tb2RpZmllZD8/dm9pZCAwKSxyYXc6YSx0aXRsZTplLnRpdGxlPz9zLnRpdGxlfX0pKSxtPSgwLHMuY3JlYXRlQXN5bmNUaHVuaykoInN5bWJvbE5vdGVzL3JlbW92ZVN5bWJvbE5vdGUiLChhc3luYyhlLHQpPT4oYXdhaXQgZC5yZW1vdmUoe2lkX25vdGU6ZS5ub3RlSWR9KSx7bm90ZUlkOmUubm90ZUlkfSkpKX0sMzUwNTA4KGUsdCxpKXsidXNlIHN0cmljdCI7aS5kKHQse2dldExhc3RNb2RpZmllZE5vdGVJZDooKT0+bSxnZXROb3RlRGF0ZVN0cmluZzooKT0+dSxnZXROb3Rlc0dyb3VwS2V5RGF0YTooKT0+ZyxnZXRSZXNvbHZlZFN5bWJvbE5vdGVzRGF0YTooKT0+Y30pO3ZhciBzPWkoMTM4NjM4KSxuPWkoMjc4MjYzKSxhPWkoNzgzMjU0KSxvPWkoNTA1NTgpLHI9aSgxNTY4MjkpLGw9aSgzMjA1NSksZD1pKDg5MzExNSksaD1pKDU3OTAxNik7YXN5bmMgZnVuY3Rpb24gYyhlKXtjb25zdCB0PW5ldyBTZXQoZSksaT1hd2FpdCgwLGwuc25hcHNob3RlcikoKS5nZXRTbmFwc2hvdHNGb3JBbGwoWy4uLnRdLGguUkVRVUlSRURfUVVPVEVfRklFTERTKSxzPXt9O2Zvcihjb25zdCBlIG9mIGkpe2NvbnN0IHQ9ZS5zeW1ib2xuYW1lO2lmKCJlcnJvciI9PT1lLnN0YXR1cyl7c1t0XT17bmFtZTp0fTtjb250aW51ZX1jb25zdCBpPWcoZS52YWx1ZXMpO2kmJihzW3RdPXtuYW1lOmkubm90ZXNHcm91cEtleX0pfXJldHVybiBzfWZ1bmN0aW9uIHUoZSl7cmV0dXJuKDAsby5pc1NhbWVEYXkpKG5ldyBEYXRlLG5ldyBEYXRlKGUpKT9gJHthLnQobnVsbCx2b2lkIDAsaSg2MTQ0NTApKX0sICR7KDAsbi5mb3JtYXRUaW1lKShlLCgwLGQuZ2V0TG9jYWxlSXNvKSgpLCJob3VyIiwibWludXRlIil9YDooMCxvLmlzWWVzdGVyZGF5KShuZXcgRGF0ZShlKSk/YCR7YS50KG51bGwsdm9pZCAwLGkoOTY1NTczKSl9LCAkeygwLG4uZm9ybWF0VGltZSkoZSwoMCxkLmdldExvY2FsZUlzbykoKSwiaG91ciIsIm1pbnV0ZSIpfWA6KDAsbi5mb3JtYXRUaW1lKShlLCgwLGQuZ2V0TG9jYWxlSXNvKSgpLCJ5ZWFyIiwibWludXRlIil9ZnVuY3Rpb24gZyhlKXtjb25zdHt0eXBlOnQsdHlwZXNwZWNzOmk9W10sc2hvcnRfbmFtZTpzLCJzeW1ib2wtcHJpbWFyeW5hbWUiOm4scHJvX25hbWU6YX09ZTtyZXR1cm4gcyYmKCgwLHIuaGFzQ3J5cHRvVHlwZXNwZWMpKGkpfHwiZm9yZXgiPT09dCk/e25vdGVzR3JvdXBLZXk6cyxzeW1ib2xGdWxsTmFtZTphPz9udWxsfTpuP3tub3Rlc0dyb3VwS2V5Om4sc3ltYm9sRnVsbE5hbWU6bn06YT97bm90ZXNHcm91cEtleTphLHN5bWJvbEZ1bGxOYW1lOmF9Om51bGx9ZnVuY3Rpb24gbShlLHQpe3JldHVybiBlLnJlZHVjZSgoKGUsaSk9PigwLHMuZW5zdXJlRGVmaW5lZCkodFtlXSkuZGF0ZU1vZGlmaWVkPigwLHMuZW5zdXJlRGVmaW5lZCkodFtpXSkuZGF0ZU1vZGlmaWVkP2U6aSkpfX0sNzU0ODM4KGUsdCxpKXsidXNlIHN0cmljdCI7aS5yKHQpLGkuZCh0LHtEZXRhaWxzQ29udGFpbmVyOigpPT5oLFdpZGdldDooKT0+Y30pO3ZhciBzPWkoODE5NTkxKSxuPWkoMjIxMDYxKSxhPWkoNjE4OTg5KSxvPWkoNjU5NjQ3KSxyPWkoNzYzNDgyKSxsPWkoNDA5NTMpO2NvbnN0IGQ9KDAsbi5nZXRMb2dnZXIpKCJQbGF0Zm9ybS5HVUkuV2lkZ2V0YmFyLkRldGFpbHNXaWRnZXQiKTtjbGFzcyBoIGV4dGVuZHMgYS5XaWRnZXRiYXJXaWRnZXRSZW5kZXJlcntjb25zdHJ1Y3RvcihlKXtzdXBlcihlKSx0aGlzLl9oaXN0b3J5PSgwLHMuY3JlYXRlTWVtb3J5SGlzdG9yeSkoKSx0aGlzLl9tb3VudGVkPSExLHRoaXMuX2NvbnRlbnRSZW5kZXJlcj1udWxsLHRoaXMuX2JyaWRnZT1lLHRoaXMubW91bnQoKSx3aW5kb3cubG9naW5TdGF0ZUNoYW5nZS5zdWJzY3JpYmUodGhpcyx0aGlzLl9oYW5kbGVMb2dpblN0YXRlQ2hhbmdlKX1uYXZpZ2F0ZShlLHQpe3RoaXMuX2hpc3Rvcnk/LnJlcGxhY2UoZSx0KX1tb3VudCgpe3RoaXMuX21vdW50ZWQ/ZC5sb2dXYXJuKCJNb3VudCB3YXMgY2FsbGVkIG9uIGFscmVhZHkgbW91bnRlZCB3aWRnZXQiKToodGhpcy5fbW91bnRlZD0hMCx0aGlzLl9sb2FkKCkpfXVubW91bnQoKXt0aGlzLl9tb3VudGVkPyh0aGlzLl9tb3VudGVkPSExLG8uaXNEZXRhaWxzUmVhZHkuc2V0VmFsdWUoITEpLHN1cGVyLnVubW91bnQoKSwKdGhpcy5fbG9hZE1vZHVsZVByb21pc2U9bnVsbCk6ZC5sb2dXYXJuKCJVbm1vdW50IHdhcyBjYWxsZWQgb24gYWxyZWFkeSB1bm1vdW50ZWQgd2lkZ2V0Iil9ZGVzdHJveSgpe3N1cGVyLmRlc3Ryb3koKSx3aW5kb3cubG9naW5TdGF0ZUNoYW5nZS51bnN1YnNjcmliZSh0aGlzLHRoaXMuX2hhbmRsZUxvZ2luU3RhdGVDaGFuZ2UpfV9sb2FkKCl7aWYodGhpcy5fY29udGVudFJlbmRlcmVyKXJldHVybiBvLmlzRGV0YWlsc1JlYWR5LnNldFZhbHVlKCEwKSx2b2lkIHRoaXMuX2NvbnRlbnRSZW5kZXJlcigpO2NvbnN0IGU9dGhpcy5fbG9hZE1vZHVsZVByb21pc2U9UHJvbWlzZS5hbGwoW1Byb21pc2UuYWxsKFtpLmUoOTM3NDUpLGkuZSg0MjE2NyksaS5lKDg0MzA2KSxpLmUoNDY5MDcpLGkuZSgyMDM1NCksaS5lKDEyMzg1KSxpLmUoODEwNzIpLGkuZSg5NDk0OCksaS5lKDIzNjI0KSxpLmUoMzYyMjIpLGkuZSgyOTUzNiksaS5lKDMyODE2KSxpLmUoNTE4NCksaS5lKDU2MjUyKSxpLmUoODM0ODgpLGkuZSgxOTU5NSksaS5lKDE5Nzg3KSxpLmUoNjc3OTkpLGkuZSgxMTQ2MSksaS5lKDI0NTgxKSxpLmUoOTY1ODcpLGkuZSgyNzUxNyksaS5lKDg2NDIzKSxpLmUoMzc1MTMpLGkuZSg0MDgzNSksaS5lKDE3MDg3KSxpLmUoNzI2NjYpLGkuZSg5ODA4NCksaS5lKDkzNDIxKSxpLmUoNDk1ODgpLGkuZSg0NzYzMiksaS5lKDcwODE1KSxpLmUoNzQzODEpLGkuZSgzMzUxNSksaS5lKDE0NjI1KSxpLmUoOTM0MTYpLGkuZSg3MTQxNCksaS5lKDY1NyksaS5lKDYxODIxKSxpLmUoODkyMDQpLGkuZSg5MTg1NSksaS5lKDY2MjcwKSxpLmUoNDM2NDQpLGkuZSg1ODA1MSksaS5lKDY5ODYxKSxpLmUoNDUzNjgpLGkuZSgzMDM3MyksaS5lKDIxNTgxKSxpLmUoNzE5MDEpLGkuZSg1MTg4MCksaS5lKDE4NDcyKSxpLmUoNDcwOTIpLGkuZSg4MDczMSksaS5lKDI1ODA5KSxpLmUoMTc2OTMpLGkuZSg2ODk2NCksaS5lKDIxMjQ1KSxpLmUoNTY4OSksaS5lKDI1NTYyKSxpLmUoMjYxMDApLGkuZSgyOTM0OCksaS5lKDM2OTg2KSxpLmUoNjMwMzMpLGkuZSgyODkzNiksaS5lKDQ3NTUxKSxpLmUoMjc2NjUpLGkuZSg3Mzk2MCksaS5lKDI1MTEpLGkuZSg2MzcyMyksaS5lKDIwMDg1KSxpLmUoMzY1MjEpLGkuZSgyNzIxNyksaS5lKDI5MTMzKSxpLmUoMjk3MTQpLGkuZSgzMDY5OSksaS5lKDc4MzEyKSxpLmUoNDQ3ODApLGkuZSgxMzgwNSksaS5lKDIzNzQzKSxpLmUoNDIyODgpLGkuZSg0ODg1NCksaS5lKDY5Njk3KSxpLmUoODAyMDcpLGkuZSg5NzY0NyksaS5lKDgzOTM1KSxpLmUoNTMyOTcpLGkuZSgzOTYwNiksaS5lKDY3ODUzKSxpLmUoMzcxMDYpLGkuZSgzNzI1OSksaS5lKDc0OTEpLGkuZSg5NDE4MiksaS5lKDYzMDk0KV0pLnRoZW4oaS5iaW5kKGksMTg1NzkzKSksUHJvbWlzZS5yZXNvbHZlKCkudGhlbihpLnQuYmluZChpLDc3OTQ3NCwxOSkpLFByb21pc2UucmVzb2x2ZSgpLnRoZW4oaS50LmJpbmQoaSwxMjkzNjUsMTkpKV0pLnRoZW4oKChbdCxpLHNdKT0+e2U9PT10aGlzLl9sb2FkTW9kdWxlUHJvbWlzZSYmKHRoaXMuX2NvbnRlbnRSZW5kZXJlcj0oKT0+e3MucmVuZGVyKGkuY3JlYXRlRWxlbWVudCh0LkRldGFpbHNXcmFwcGVyLHticmlkZ2U6dGhpcy5fYnJpZGdlLHdpZGdldEhlYWRlckVsZW1lbnQ6dGhpcy5faGVhZGVyQ29udGFpbmVyLGhpc3Rvcnk6dGhpcy5faGlzdG9yeX0pLHRoaXMuX2NvbnRhaW5lcil9LHRoaXMuX2NvbnRlbnRSZW5kZXJlcigpLG8uaXNEZXRhaWxzUmVhZHkuc2V0VmFsdWUoITApKX0pKX1faGFuZGxlTG9naW5TdGF0ZUNoYW5nZSgpe3Iuc3ltYm9sTm90ZXNTdG9yZS5kaXNwYXRjaCgoMCxsLnJlc2V0KSgpKSx0aGlzLm5hdmlnYXRlKCIvIil9fWNvbnN0IGM9aH0sODc3NDQyKGUsdCxpKXsidXNlIHN0cmljdCI7dmFyIHMsbixhO2kuZCh0LHtUaWNrZXJUeXBlOigpPT5zfSksZnVuY3Rpb24oZSl7ZS5UaWNrZXI9InRpY2tlciIsZS5EZXNjcmlwdGlvbj0iZGVzY3JpcHRpb24ifShzfHwocz17fSkpLGZ1bmN0aW9uKGUpe2UuU3ltYm9sTmFtZT0ic2hvcnRfbmFtZSIsZS5MYXN0PSJsYXN0X3ByaWNlIixlLkNoYW5nZT0iY2hhbmdlIixlLkNoYW5nZUluUGVyY2VudHM9ImNoYW5nZV9wZXJjZW50IixlLlZvbHVtZT0idm9sdW1lIixlLlByZVBvc3RNYXJrZXQ9InJjaHAiLGUuRmxhZz0iZmxhZyJ9KG58fChuPXt9KSksZnVuY3Rpb24oZSl7ZVtlLkRFU0M9LTFdPSJERVNDIixlW2UuQVNDPTFdPSJBU0MifShhfHwoYT17fSkpfSw4NDI1NTUoZSx0LGkpeyJ1c2Ugc3RyaWN0IjtpLmQodCx7Uk9PVF9JRDooKT0+bCxleHBhbmRXYXRjaGxpc3Q6KCk9PmcsZXhwYW5kV2F0Y2hsaXN0SW5QbGFjZTooKT0+bSxleHBvcnRMaXN0OigpPT51LGdldEluaXRpYWxUaWNrZXJUeXBlOigpPT5oLHNldEluaXRpYWxUaWNrZXJUeXBlOigpPT5jfSk7dmFyIHM9aSg5MzAyMzEpLG49aSg5MzIzNjUpLGE9aSg1NTA5NDMpLG89aSg3NDM3MjApLHI9aSg4Nzc0NDIpO2NvbnN0IGw9IlJPT1RfSUQiLGQ9IldhdGNobGlzdFRpY2tlclR5cGUiO2Z1bmN0aW9uIGgoKXtpZigoMCxzLmlzRmVhdHVyZXNldEVuYWJsZWQpKCJ3aWRnZXQiKSlyZXR1cm4gci5UaWNrZXJUeXBlLlRpY2tlcjtyZXR1cm4gbi5UVkxvY2FsU3RvcmFnZS5nZXRJdGVtKGQpPz9yLlRpY2tlclR5cGUuVGlja2VyfWZ1bmN0aW9uIGMoZSl7bi5UVkxvY2FsU3RvcmFnZS5zZXRJdGVtKGQsZSl9ZnVuY3Rpb24gdShlLHQpeygwLGEuc2F2ZVRleHRGaWxlKShgJHtlfS50eHRgLHQuam9pbigiLCIpKX1mdW5jdGlvbiBnKCl7d2luZG93LndpZGdldGJhciYmKHdpbmRvdy53aWRnZXRiYXIuc2V0UGFnZSgiYmFzZSIpLCgwLG8uZXhwYW5kV2lkZ2V0KSgid2F0Y2hsaXN0IiwxMDgpKX1mdW5jdGlvbiBtKCl7KDAsby5leHBhbmRXaWRnZXQpKCJ3YXRjaGxpc3QiLDEwOCl9fSw0NDQ5OTcoZSx0LGkpeyJ1c2Ugc3RyaWN0IjtpLmQodCx7V2F0Y2hsaXN0V2lkZ2V0Vmlld1N0YXRlOigpPT5sfSk7dmFyIHMsbj1pKDkzMDIzMSksYT1pKDkzMjM2NSk7IWZ1bmN0aW9uKGUpe2UuVmlld1N0YXRlQ29sdW1uc0tleT0id2lkZ2V0LndhdGNobGlzdC52aWV3LXN0YXRlIiwKZS5Db2x1bW5zUGVyY2VudGFnZXM9IndpZGdldC53YXRjaGxpc3QuY29sdW1ucy1wZXJjZW50YWdlcyIsZS5Jc0xvZ29FbmFibGVkPSJ3aWRnZXQud2F0Y2hsaXN0LmxvZ28tZW5hYmxlZCIsZS5Jc1RhYmxlVmlldz0id2lkZ2V0LndhdGNobGlzdC50YWJsZS12aWV3In0oc3x8KHM9e30pKTtjb25zdCBvPVsic2hvcnRfbmFtZSIsImxhc3RfcHJpY2UiLCJjaGFuZ2UiLCJjaGFuZ2VfcGVyY2VudCJdLHI9WyJzaG9ydF9uYW1lIiwibGFzdF9wcmljZSIsImNoYW5nZV9wZXJjZW50Il07Y2xhc3MgbHtnZXRDb2x1bW5zKCl7aWYoKDAsbi5pc0ZlYXR1cmVzZXRFbmFibGVkKSgid2lkZ2V0IikpcmV0dXJuIHI7Y29uc3QgZT1hLlRWTG9jYWxTdG9yYWdlLmdldEl0ZW0oIndpZGdldC53YXRjaGxpc3Qudmlldy1zdGF0ZSIpO3JldHVybiB0aGlzLl9wYXJzZShlKXx8b31zZXRDb2x1bW5zKGUpeygwLG4uaXNGZWF0dXJlc2V0RW5hYmxlZCkoIndpZGdldCIpfHwobnVsbD09PWU/YS5UVkxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCJ3aWRnZXQud2F0Y2hsaXN0LnZpZXctc3RhdGUiKTphLlRWTG9jYWxTdG9yYWdlLnNldEl0ZW0oIndpZGdldC53YXRjaGxpc3Qudmlldy1zdGF0ZSIsSlNPTi5zdHJpbmdpZnkodGhpcy5fbm9ybWFsaXplKGUpKSkpfWNhblJlc2l6ZUNvbHVtbnMoKXtyZXR1cm4hKDAsbi5pc0ZlYXR1cmVzZXRFbmFibGVkKSgid2lkZ2V0Iil9Z2V0SXNMb2dvRW5hYmxlZCgpe2NvbnN0IGU9YS5UVkxvY2FsU3RvcmFnZS5nZXRJdGVtKCJ3aWRnZXQud2F0Y2hsaXN0LmxvZ28tZW5hYmxlZCIpO3JldHVybiFlfHwoInRydWUiPT09ZXx8ITEpfXNldElzTG9nb0VuYWJsZWQoZSl7YS5UVkxvY2FsU3RvcmFnZS5zZXRJdGVtKCJ3aWRnZXQud2F0Y2hsaXN0LmxvZ28tZW5hYmxlZCIsU3RyaW5nKGUpKX1nZXRJc1RhYmxlVmlldygpe2NvbnN0IGU9YS5UVkxvY2FsU3RvcmFnZS5nZXRJdGVtKCJ3aWRnZXQud2F0Y2hsaXN0LnRhYmxlLXZpZXciKTtyZXR1cm4hZXx8KCJ0cnVlIj09PWV8fCExKX1zZXRJc1RhYmxlVmlldyhlKXthLlRWTG9jYWxTdG9yYWdlLnNldEl0ZW0oIndpZGdldC53YXRjaGxpc3QudGFibGUtdmlldyIsU3RyaW5nKGUpKX1nZXRDb2x1bW5zUGVyY2VudGFnZXMoKXtpZighdGhpcy5jYW5SZXNpemVDb2x1bW5zKCkpcmV0dXJuIG51bGw7Y29uc3QgZT1hLlRWTG9jYWxTdG9yYWdlLmdldEl0ZW0oIndpZGdldC53YXRjaGxpc3QuY29sdW1ucy1wZXJjZW50YWdlcyIpO3JldHVybiBudWxsPT09ZT9udWxsOm5ldyBNYXAoSlNPTi5wYXJzZShlKSl9c2F2ZUNvbHVtbnNQZXJjZW50YWdlcyhlKXtpZighdGhpcy5jYW5SZXNpemVDb2x1bW5zKCkpcmV0dXJuO2NvbnN0IHQ9SlNPTi5zdHJpbmdpZnkoQXJyYXkuZnJvbShlKSk7YS5UVkxvY2FsU3RvcmFnZS5zZXRJdGVtKCJ3aWRnZXQud2F0Y2hsaXN0LmNvbHVtbnMtcGVyY2VudGFnZXMiLHQpfV9wYXJzZShlKXtpZihudWxsPT09ZSlyZXR1cm4gbnVsbDt0cnl7Y29uc3QgdD1KU09OLnBhcnNlKGUpO3JldHVybiBBcnJheS5pc0FycmF5KHQpP3RoaXMuX25vcm1hbGl6ZSh0KTpudWxsfWNhdGNoKGUpe3JldHVybiBudWxsfX1fbm9ybWFsaXplKGUpe2NvbnN0IHQ9ZS5maWx0ZXIoKGU9PiJzdHJpbmciPT10eXBlb2YgZSkpLGk9bmV3IFNldCh0KSxzPW5ldyBTZXQoWyJzaG9ydF9uYW1lIiwidm9sdW1lIiwibGFzdF9wcmljZSIsImNoYW5nZSIsImNoYW5nZV9wZXJjZW50IiwicmNocCJdKTtyZXR1cm4gQXJyYXkuZnJvbShpKS5maWx0ZXIoKGU9PnMuaGFzKGUpKSl9fX0sNzI1NTQ5KGUsdCxpKXsidXNlIHN0cmljdCI7aS5yKHQpLGkuZCh0LHtIb3RsaXN0UmVuZGVyZXI6KCk9PmR9KTt2YXIgcz1pKDc3OTQ3NCksbj1pKDEyOTM2NSksYT1pKDkzMDIzMSksbz1pKDYxODk4OSkscj1pKDg3NzQ0MiksbD1pKDQ1NjcwNSk7Y2xhc3MgZCBleHRlbmRzIG8uV2lkZ2V0YmFyV2lkZ2V0UmVuZGVyZXJ7Y29uc3RydWN0b3IoZSl7c3VwZXIoZSksdGhpcy5fdGFzaz1udWxsO2NvbnN0e3Byb3BlcnRpZXM6dH09ZTt0aGlzLl9wcm9wZXJ0aWVzPXQsdGhpcy5tb3VudCgpfW1vdW50KCl7CmNvbnN0IGU9dGhpcy5fbG9hZE1vZHVsZVByb21pc2U9UHJvbWlzZS5hbGwoW1Byb21pc2UuYWxsKFtpLmUoMTkyNjQpLGkuZSg4NDMwNiksaS5lKDUyMzk2KSxpLmUoNDY5MDcpLGkuZSgyMDM1NCksaS5lKDEzNDkyKSxpLmUoMzc3NDYpLGkuZSgxMjM4NSksaS5lKDgxMDcyKSxpLmUoOTQ5NDgpLGkuZSgyMzYyNCksaS5lKDk0MjMyKSxpLmUoMzI4MTYpLGkuZSgxOTU5NSksaS5lKDE5Nzg3KSxpLmUoNjc3OTkpLGkuZSgyNDU4MSksaS5lKDI3NTE3KSxpLmUoODU3OSksaS5lKDE3MDg3KSxpLmUoNzI2NjYpLGkuZSg3MDgxNSksaS5lKDE0NjI1KSxpLmUoOTM0MTYpLGkuZSgxNjc2KSxpLmUoODkyMDQpLGkuZSgxMjA1MSksaS5lKDg5NTU4KSxpLmUoMTAzNjYpLGkuZSg2OTg2MSksaS5lKDIwMiksaS5lKDUyMDk1KSxpLmUoNDQwMzEpLGkuZSg3MTkwMSksaS5lKDg5MDQ0KSxpLmUoNDA5MTQpLGkuZSg0Mzc5MiksaS5lKDg3NzQwKSxpLmUoNzg0MDQpLGkuZSgzOTE2KSxpLmUoODExMDcpLGkuZSg3ODg5OSksaS5lKDUxMjU2KSxpLmUoNDIzMDEpLGkuZSgzMjg1NyksaS5lKDUwNTg4KSxpLmUoODAwNDEpLGkuZSg5MDM3OCksaS5lKDcyMjQ5KSxpLmUoMzA5MjIpLGkuZSgzNzU2NyksaS5lKDc4MzQxKSxpLmUoMzA2OTkpLGkuZSg4MDkxNSksaS5lKDE4NTEyKSxpLmUoNDg2MjApLGkuZSg1MDA0OSksaS5lKDE0ODg5KSxpLmUoNDIyMTIpLGkuZSg1NTIyOSksaS5lKDY4NzI1KSxpLmUoNjk2OTcpLGkuZSg1MjUwOSksaS5lKDYzNDAyKSxpLmUoMjQ4NzkpLGkuZSg2NzEyMCksaS5lKDQyMzI3KSxpLmUoNjgyMDEpXSkudGhlbihpLmJpbmQoaSw3MTg5ODMpKSxQcm9taXNlLmFsbChbaS5lKDE5MjY0KSxpLmUoODQzMDYpLGkuZSg1MjM5NiksaS5lKDQ2OTA3KSxpLmUoMjAzNTQpLGkuZSgxMzQ5MiksaS5lKDM3NzQ2KSxpLmUoMTIzODUpLGkuZSg4MTA3MiksaS5lKDk0OTQ4KSxpLmUoMjM2MjQpLGkuZSg5NDIzMiksaS5lKDMyODE2KSxpLmUoMTk1OTUpLGkuZSgxOTc4NyksaS5lKDY3Nzk5KSxpLmUoMjQ1ODEpLGkuZSgyNzUxNyksaS5lKDg1NzkpLGkuZSgxNzA4NyksaS5lKDcyNjY2KSxpLmUoNzA4MTUpLGkuZSgxNDYyNSksaS5lKDkzNDE2KSxpLmUoMTY3NiksaS5lKDg5MjA0KSxpLmUoMTIwNTEpLGkuZSg4OTU1OCksaS5lKDEwMzY2KSxpLmUoNjk4NjEpLGkuZSgyMDIpLGkuZSg1MjA5NSksaS5lKDQ0MDMxKSxpLmUoNzE5MDEpLGkuZSg4OTA0NCksaS5lKDQwOTE0KSxpLmUoNDM3OTIpLGkuZSg4Nzc0MCksaS5lKDc4NDA0KSxpLmUoMzkxNiksaS5lKDgxMTA3KSxpLmUoNzg4OTkpLGkuZSg1MTI1NiksaS5lKDQyMzAxKSxpLmUoMzI4NTcpLGkuZSg1MDU4OCksaS5lKDgwMDQxKSxpLmUoOTAzNzgpLGkuZSg3MjI0OSksaS5lKDMwOTIyKSxpLmUoMzc1NjcpLGkuZSg3ODM0MSksaS5lKDMwNjk5KSxpLmUoODA5MTUpLGkuZSgxODUxMiksaS5lKDQ4NjIwKSxpLmUoNTAwNDkpLGkuZSgxNDg4OSksaS5lKDQyMjEyKSxpLmUoNTUyMjkpLGkuZSg2ODcyNSksaS5lKDY5Njk3KSxpLmUoNTI1MDkpLGkuZSg2MzQwMiksaS5lKDI0ODc5KSxpLmUoNjcxMjApLGkuZSg0MjMyNyksaS5lKDY4MjAxKV0pLnRoZW4oaS5iaW5kKGksNzcyOTU4KSksUHJvbWlzZS5hbGwoW2kuZSgxOTI2NCksaS5lKDg0MzA2KSxpLmUoNTIzOTYpLGkuZSg0NjkwNyksaS5lKDIwMzU0KSxpLmUoMTM0OTIpLGkuZSgzNzc0NiksaS5lKDEyMzg1KSxpLmUoODEwNzIpLGkuZSg5NDk0OCksaS5lKDIzNjI0KSxpLmUoOTQyMzIpLGkuZSgzMjgxNiksaS5lKDE5NTk1KSxpLmUoMTk3ODcpLGkuZSg2Nzc5OSksaS5lKDI0NTgxKSxpLmUoMjc1MTcpLGkuZSg4NTc5KSxpLmUoMTcwODcpLGkuZSg3MjY2NiksaS5lKDcwODE1KSxpLmUoMTQ2MjUpLGkuZSg5MzQxNiksaS5lKDE2NzYpLGkuZSg4OTIwNCksaS5lKDEyMDUxKSxpLmUoODk1NTgpLGkuZSgxMDM2NiksaS5lKDY5ODYxKSxpLmUoMjAyKSxpLmUoNTIwOTUpLGkuZSg0NDAzMSksaS5lKDcxOTAxKSxpLmUoODkwNDQpLGkuZSg0MDkxNCksaS5lKDQzNzkyKSxpLmUoODc3NDApLGkuZSg3ODQwNCksaS5lKDM5MTYpLGkuZSg4MTEwNyksaS5lKDc4ODk5KSxpLmUoNTEyNTYpLGkuZSg0MjMwMSksaS5lKDMyODU3KSxpLmUoNTA1ODgpLGkuZSg4MDA0MSksaS5lKDkwMzc4KSxpLmUoNzIyNDkpLGkuZSgzMDkyMiksaS5lKDM3NTY3KSxpLmUoNzgzNDEpLGkuZSgzMDY5OSksaS5lKDgwOTE1KSxpLmUoMTg1MTIpLGkuZSg0ODYyMCksaS5lKDUwMDQ5KSxpLmUoMTQ4ODkpLGkuZSg0MjIxMiksaS5lKDU1MjI5KSxpLmUoNjg3MjUpLGkuZSg2OTY5NyksaS5lKDUyNTA5KSxpLmUoNjM0MDIpLGkuZSgyNDg3OSksaS5lKDY3MTIwKSxpLmUoNDIzMjcpLGkuZSg2ODIwMSldKS50aGVuKGkuYmluZChpLDI5MjA1MikpLFByb21pc2UuYWxsKFtpLmUoMTkyNjQpLGkuZSg4NDMwNiksaS5lKDUyMzk2KSxpLmUoNDY5MDcpLGkuZSgyMDM1NCksaS5lKDEzNDkyKSxpLmUoMzc3NDYpLGkuZSgxMjM4NSksaS5lKDgxMDcyKSxpLmUoOTQ5NDgpLGkuZSgyMzYyNCksaS5lKDk0MjMyKSxpLmUoMzI4MTYpLGkuZSgxOTU5NSksaS5lKDE5Nzg3KSxpLmUoNjc3OTkpLGkuZSgyNDU4MSksaS5lKDI3NTE3KSxpLmUoODU3OSksaS5lKDE3MDg3KSxpLmUoNzI2NjYpLGkuZSg3MDgxNSksaS5lKDE0NjI1KSxpLmUoOTM0MTYpLGkuZSgxNjc2KSxpLmUoODkyMDQpLGkuZSgxMjA1MSksaS5lKDg5NTU4KSxpLmUoMTAzNjYpLGkuZSg2OTg2MSksaS5lKDIwMiksaS5lKDUyMDk1KSxpLmUoNDQwMzEpLGkuZSg3MTkwMSksaS5lKDg5MDQ0KSxpLmUoNDA5MTQpLGkuZSg0Mzc5MiksaS5lKDg3NzQwKSxpLmUoNzg0MDQpLGkuZSgzOTE2KSxpLmUoODExMDcpLGkuZSg3ODg5OSksaS5lKDUxMjU2KSxpLmUoNDIzMDEpLGkuZSgzMjg1NyksaS5lKDUwNTg4KSxpLmUoODAwNDEpLGkuZSg5MDM3OCksaS5lKDcyMjQ5KSxpLmUoMzA5MjIpLGkuZSgzNzU2NyksaS5lKDc4MzQxKSxpLmUoMzA2OTkpLGkuZSg4MDkxNSksaS5lKDE4NTEyKSxpLmUoNDg2MjApLGkuZSg1MDA0OSksaS5lKDE0ODg5KSxpLmUoNDIyMTIpLGkuZSg1NTIyOSksaS5lKDY4NzI1KSxpLmUoNjk2OTcpLGkuZSg1MjUwOSksaS5lKDYzNDAyKSxpLmUoMjQ4NzkpLGkuZSg2NzEyMCksaS5lKDQyMzI3KSxpLmUoNjgyMDEpXSkudGhlbihpLmJpbmQoaSw5MDA0KSksKDAsCmwuaW5pdFN5bWJvbExpc3RTZXJ2aWNlKSgpXSkudGhlbigoKFt0LGksbyxsLGRdKT0+e2lmKHRoaXMuX2xvYWRNb2R1bGVQcm9taXNlPT09ZSl7Y29uc3R7c3RvcmU6ZSxhY3Rpb25zOmgscnVubmVyOmN9PWQse2luaXRXaWRnZXQ6dX09aDt0aGlzLl90YXNrPWMucnVuKGwuaG90bGlzdHNTYWdhLHRoaXMuX3dpZGdldElkKSxlLmRpc3BhdGNoKHUodGhpcy5fd2lkZ2V0SWQsci5UaWNrZXJUeXBlLlRpY2tlcixbInNob3J0X25hbWUiLCJsYXN0X3ByaWNlIiwiY2hhbmdlX3BlcmNlbnQiLCJ2b2x1bWUiXSx7aXNEZWxldGFibGU6ITEsaXNTb3J0YWJsZTohMSxpc01vdmFibGU6ITEsZW5hYmxlQ29udGV4dE1lbnU6ISgwLGEuaXNGZWF0dXJlc2V0RW5hYmxlZCkoIndpZGdldCIpLGVuYWJsZUFkZFN5bWJvbHNCeUFub246ITEsc2hvdWxkRGlzcGxheVN5bWJvbFNlYXJjaDohMSxzaG91bGREaXNwbGF5UG9zaXRpb25zOiExLHNob3VsZERpc3BsYXlDb2x1bW5zTWVudTohMSxpc0xvZ29FbmFibGVkOiEwLGlzVGFibGVWaWV3OiEwfSkpLG4ucmVuZGVyKHMuY3JlYXRlRWxlbWVudCh0LlByb3ZpZGVyLHtzdG9yZTplfSxzLmNyZWF0ZUVsZW1lbnQoaS5Ib3RsaXN0LHtwcm9wZXJ0aWVzOnRoaXMuX3Byb3BlcnRpZXMsd2lkZ2V0SWQ6dGhpcy5fd2lkZ2V0SWR9KSksdGhpcy5fY29udGFpbmVyKSxuLnJlbmRlcihzLmNyZWF0ZUVsZW1lbnQodC5Qcm92aWRlcix7c3RvcmU6ZX0scy5jcmVhdGVFbGVtZW50KG8uSG90bGlzdEhlYWRlcix7cHJvcGVydGllczp0aGlzLl9wcm9wZXJ0aWVzLHdpZGdldElkOnRoaXMuX3dpZGdldElkfSkpLHRoaXMuX2hlYWRlckNvbnRhaW5lcil9fSkpfXVubW91bnQoKXtzdXBlci51bm1vdW50KCksdGhpcy5fY2FuY2VsVGFzaygpfWRlc3Ryb3koKXt0aGlzLl9jYW5jZWxUYXNrKCksc3VwZXIuZGVzdHJveSgpfV9jYW5jZWxUYXNrKCl7dGhpcy5fdGFzayYmKHRoaXMuX3Rhc2suY2FuY2VsKCksdGhpcy5fdGFzaz1udWxsKX19fSw2Nzg4NDEoZSx0LGkpeyJ1c2Ugc3RyaWN0IjtpLnIodCksaS5kKHQse2NvbmZpZ3VyZTooKT0+Z30pO3ZhciBzPWkoNzgzMjU0KSxuPWkoMTM4NjM4KSxhPWkoOTMwMjMxKSxvPWkoNTE5NTE1KSxyPWkoNzYwMzkwKTtsZXQgbD0hMTt2YXIgZD1pKDYxODk4OSksaD1pKDg0MjU1NSksYz1pKDQ0NDk5NyksdT1pKDQ1NjcwNSk7ZnVuY3Rpb24gZyhlKXtyZXR1cm4oMCxuLmVuc3VyZSkoZS5jaGFydEFwaUluc3RhbmNlKSxjbGFzcyB0IGV4dGVuZHMgZC5XaWRnZXRiYXJXaWRnZXRSZW5kZXJlcntjb25zdHJ1Y3RvcihlKXtzdXBlcihlKSx0aGlzLl9wZW5kaW5nT3BlcmF0aW9uUHJvbWlzZT1udWxsLHRoaXMuX3Rhc2s9bnVsbCx0aGlzLl9wcm9wcz1lLHRoaXMubW91bnQoKX1tb3VudCgpe2NvbnN0IGk9dGhpcy5fbG9hZE1vZHVsZVByb21pc2U9dC5wcmVsb2FkKCkudGhlbigoKFt0LHMsbixyLGwsZCx1LGddKT0+e2lmKHRoaXMuX2xvYWRNb2R1bGVQcm9taXNlPT09aSl7Y29uc3R7c3RvcmU6aSxydW5uZXI6bSxhY3Rpb25zOnB9PXQse2luaXRXaWRnZXQ6X309cCx7cmVhZG9ubHk6Yix1bkF1dGhFZGl0YWJsZTpmfT10aGlzLl9wcm9wcyx7YWN0aXZlU3ltYm9sTGlzdDp2fT1pLmdldFN0YXRlKCksdz0iaG90Ij09PXY/LnR5cGU7dGhpcy5fdGFzaz1tLnJ1bih1LndhdGNoTGlzdFNhZ2EsZS5jb21wb25lbnRMb2dOYW1lLGIpO2NvbnN0IHk9bmV3IGMuV2F0Y2hsaXN0V2lkZ2V0Vmlld1N0YXRlO2kuZGlzcGF0Y2goXyhvLldBVENITElTVF9XSURHRVRfSUQsKDAsaC5nZXRJbml0aWFsVGlja2VyVHlwZSkoKSx5LmdldENvbHVtbnMoKSx7c2hvdWxkRGlzcGxheUNvbHVtbnNNZW51OiEwLHNob3VsZERpc3BsYXlQb3NpdGlvbnM6ITAsaXNTb3J0YWJsZTohdyxlbmFibGVDb250ZXh0TWVudTohKDAsYS5pc0ZlYXR1cmVzZXRFbmFibGVkKSgid2lkZ2V0IiksaXNEZWxldGFibGU6IWImJiF3LGlzTW92YWJsZTohYiYmIXcsc2hvdWxkRGlzcGxheVN5bWJvbFNlYXJjaDpmfHwhYiYmISgwLGEuaXNGZWF0dXJlc2V0RW5hYmxlZCkoIndpZGdldCIpLGVuYWJsZUFkZFN5bWJvbHNCeUFub246Qm9vbGVhbihmKXx8ITEsaXNMb2dvRW5hYmxlZDp5LmdldElzTG9nb0VuYWJsZWQoKSxpc1RhYmxlVmlldzp5LmdldElzVGFibGVWaWV3KCl9KSk7Y29uc3QgUz1lPT5Cb29sZWFuKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ1tkYXRhLW5hbWU9IndpZGdldGJhci1wYWdlcy13aXRoLXRhYnMiXScpPy5jb250YWlucyhlLnJlbGF0ZWRUYXJnZXQpKSxDPWc/cy5jcmVhdGVFbGVtZW50KGcuTm90ZXNQcm92aWRlcixudWxsLHMuY3JlYXRlRWxlbWVudChsLldhdGNoTGlzdCx7d2lkZ2V0SWQ6by5XQVRDSExJU1RfV0lER0VUX0lELHZpZXdTdGF0ZTp5LGFjY2Vzc2libGVTY29wZTpTfSkpOnMuY3JlYXRlRWxlbWVudChsLldhdGNoTGlzdCx7d2lkZ2V0SWQ6by5XQVRDSExJU1RfV0lER0VUX0lELHZpZXdTdGF0ZTp5LGFjY2Vzc2libGVTY29wZTpTfSk7bi5yZW5kZXIocy5jcmVhdGVFbGVtZW50KHIuUHJvdmlkZXIse3N0b3JlOml9LEMpLHRoaXMuX2NvbnRhaW5lciksbi5yZW5kZXIocy5jcmVhdGVFbGVtZW50KHIuUHJvdmlkZXIse3N0b3JlOml9LHMuY3JlYXRlRWxlbWVudChkLkhlYWRlcix7d2lkZ2V0SWQ6by5XQVRDSExJU1RfV0lER0VUX0lEfSkpLHRoaXMuX2hlYWRlckNvbnRhaW5lcil9fSkpfXVubW91bnQoKXtzdXBlci51bm1vdW50KCksdGhpcy5fY2FuY2VsVGFzaygpfWFkZFN5bWJvbHMoZSl7ZS5sZW5ndGgmJnRoaXMuX2luaXRTeW1ib2xMaXN0KCh0PT57Y29uc3R7c3RvcmU6cyxhY3Rpb25zOm59PXQsYT1zLmdldFN0YXRlKCkuYWN0aXZlU3ltYm9sTGlzdDsiaG90Ij09PWE/LnR5cGV8fCgwLHIuaXNEZWxldGVkU3ltYm9sc0xpc3QpKGE/LmlkKT9hc3luYyBmdW5jdGlvbihlKXtpZihsKXJldHVybjtjb25zdFt0LHNdPWF3YWl0IFByb21pc2UuYWxsKFtQcm9taXNlLmFsbChbaS5lKDkzMjkwKSxpLmUoOTI3ODYpXSkudGhlbihpLmJpbmQoaSwxMDI5NjcpKSxQcm9taXNlLmFsbChbaS5lKDkzMjkwKSxpLmUoOTI3ODYpXSkudGhlbihpLmJpbmQoaSw3NDU5OTApKV0pCjthd2FpdCB0LnNob3dSZWFkb25seUxpc3ROb3RpZmljYXRpb24oZSxzLnNob3dBZGRTeW1ib2xEaWFsb2cpLGw9ITF9KGUpOnMuZGlzcGF0Y2gobi5hZGRTeW1ib2xzKG8uV0FUQ0hMSVNUX1dJREdFVF9JRCxlKSl9KSl9c2F2ZUxpc3RBcyhlLHQpe2UmJnRoaXMuX2luaXRTeW1ib2xMaXN0KChuPT57Y29uc3R7c3RvcmU6YSxhY3Rpb25zOnJ9PW4sbD1zLnQobnVsbCx7Y29udGV4dDoiZGlhbG9nIHRpdGxlIn0saSgyNDA5NykpLGQ9cy50KG51bGwse2NvbnRleHQ6ImJ1dHRvbiJ9LGkoODY0ODY5KSk7YS5kaXNwYXRjaChyLnNhdmVMaXN0QXMoby5XQVRDSExJU1RfV0lER0VUX0lELHt0aXRsZTpsLG1haW5CdXR0b25UZXh0OmQsaW5pdFZhbHVlOnR9LFByb21pc2UucmVzb2x2ZShlKSkpfSkpfWNyZWF0ZU5ld0xpc3QoKXt0aGlzLl9pbml0U3ltYm9sTGlzdCgoZT0+e2NvbnN0e3N0b3JlOnQsYWN0aW9uczppfT1lO3QuZGlzcGF0Y2goaS5jcmVhdGVOZXdXYXRjaExpc3QobnVsbCkpfSkpfWRlc3Ryb3koKXt0aGlzLl9jYW5jZWxUYXNrKCksc3VwZXIuZGVzdHJveSgpfXN0YXRpYyBwcmVsb2FkKCl7cmV0dXJuIFByb21pc2UuYWxsKFsoMCwKdS5pbml0U3ltYm9sTGlzdFNlcnZpY2UpKCksUHJvbWlzZS5yZXNvbHZlKCkudGhlbihpLnQuYmluZChpLDc3OTQ3NCwxOSkpLFByb21pc2UucmVzb2x2ZSgpLnRoZW4oaS50LmJpbmQoaSwxMjkzNjUsMTkpKSxQcm9taXNlLmFsbChbaS5lKDk2ODIzKSxpLmUoODQzMDYpLGkuZSgyOTI5NiksaS5lKDUyMzk2KSxpLmUoNjAwNjIpLGkuZSg0NjkwNyksaS5lKDIwMzU0KSxpLmUoMTM0OTIpLGkuZSgzNzc0NiksaS5lKDEyMzg1KSxpLmUoODEwNzIpLGkuZSg5NDk0OCksaS5lKDIzNjI0KSxpLmUoOTQyMzIpLGkuZSgzMjgxNiksaS5lKDE5NTk1KSxpLmUoMTk3ODcpLGkuZSg2Nzc5OSksaS5lKDI0NTgxKSxpLmUoMjc1MTcpLGkuZSg4NjQyMyksaS5lKDg1NzkpLGkuZSg0MDgzNSksaS5lKDE3MDg3KSxpLmUoNzI2NjYpLGkuZSg3ODY1MiksaS5lKDcwODE1KSxpLmUoMTQ2MjUpLGkuZSgxNTUyNiksaS5lKDkzNDE2KSxpLmUoNTI2ODApLGkuZSgzNTc5NCksaS5lKDE2NzYpLGkuZSg4OTIwNCksaS5lKDEyMDUxKSxpLmUoODk1NTgpLGkuZSgxMDM2NiksaS5lKDY5ODYxKSxpLmUoMjAyKSxpLmUoNzI1MTIpLGkuZSg1NTAxMSksaS5lKDc1MzA0KSxpLmUoNTIwOTUpLGkuZSg0NDAzMSksaS5lKDcxOTAxKSxpLmUoODkwNDQpLGkuZSg0MDkxNCksaS5lKDgxMjQ3KSxpLmUoOTA5NjApLGkuZSg0Mzc5MiksaS5lKDg3NzQwKSxpLmUoNzg0MDQpLGkuZSgzOTE2KSxpLmUoODExMDcpLGkuZSg3ODg5OSksaS5lKDUxMjU2KSxpLmUoNDIzMDEpLGkuZSgzNTM0MiksaS5lKDQyMDMzKSxpLmUoNTA1ODgpLGkuZSg4MDA0MSksaS5lKDkwMzc4KSxpLmUoNzIyNDkpLGkuZSgzMDkyMiksaS5lKDM3NTY3KSxpLmUoODc3NjcpLGkuZSgzMjM4NyksaS5lKDMwNjk5KSxpLmUoODA5MTUpLGkuZSgxODUxMiksaS5lKDQ4NjIwKSxpLmUoNTAwNDkpLGkuZSgxNDg4OSksaS5lKDQyMjEyKSxpLmUoNTUyMjkpLGkuZSg0NjIxNyksaS5lKDY4NzI1KSxpLmUoNjY5MzMpLGkuZSg2OTY5NyksaS5lKDUyNTA5KSxpLmUoNjM0MDIpLGkuZSgyNDg3OSksaS5lKDY3MTIwKSxpLmUoNDIzMjcpLGkuZSgzNTI1MiksaS5lKDYwNDkzKV0pLnRoZW4oaS5iaW5kKGksNzE4OTgzKSksUHJvbWlzZS5hbGwoW2kuZSg5NjgyMyksaS5lKDg0MzA2KSxpLmUoMjkyOTYpLGkuZSg1MjM5NiksaS5lKDYwMDYyKSxpLmUoNDY5MDcpLGkuZSgyMDM1NCksaS5lKDEzNDkyKSxpLmUoMzc3NDYpLGkuZSgxMjM4NSksaS5lKDgxMDcyKSxpLmUoOTQ5NDgpLGkuZSgyMzYyNCksaS5lKDk0MjMyKSxpLmUoMzI4MTYpLGkuZSgxOTU5NSksaS5lKDE5Nzg3KSxpLmUoNjc3OTkpLGkuZSgyNDU4MSksaS5lKDI3NTE3KSxpLmUoODY0MjMpLGkuZSg4NTc5KSxpLmUoNDA4MzUpLGkuZSgxNzA4NyksaS5lKDcyNjY2KSxpLmUoNzg2NTIpLGkuZSg3MDgxNSksaS5lKDE0NjI1KSxpLmUoMTU1MjYpLGkuZSg5MzQxNiksaS5lKDUyNjgwKSxpLmUoMzU3OTQpLGkuZSgxNjc2KSxpLmUoODkyMDQpLGkuZSgxMjA1MSksaS5lKDg5NTU4KSxpLmUoMTAzNjYpLGkuZSg2OTg2MSksaS5lKDIwMiksaS5lKDcyNTEyKSxpLmUoNTUwMTEpLGkuZSg3NTMwNCksaS5lKDUyMDk1KSxpLmUoNDQwMzEpLGkuZSg3MTkwMSksaS5lKDg5MDQ0KSxpLmUoNDA5MTQpLGkuZSg4MTI0NyksaS5lKDkwOTYwKSxpLmUoNDM3OTIpLGkuZSg4Nzc0MCksaS5lKDc4NDA0KSxpLmUoMzkxNiksaS5lKDgxMTA3KSxpLmUoNzg4OTkpLGkuZSg1MTI1NiksaS5lKDQyMzAxKSxpLmUoMzUzNDIpLGkuZSg0MjAzMyksaS5lKDUwNTg4KSxpLmUoODAwNDEpLGkuZSg5MDM3OCksaS5lKDcyMjQ5KSxpLmUoMzA5MjIpLGkuZSgzNzU2NyksaS5lKDg3NzY3KSxpLmUoMzIzODcpLGkuZSgzMDY5OSksaS5lKDgwOTE1KSxpLmUoMTg1MTIpLGkuZSg0ODYyMCksaS5lKDUwMDQ5KSxpLmUoMTQ4ODkpLGkuZSg0MjIxMiksaS5lKDU1MjI5KSxpLmUoNDYyMTcpLGkuZSg2ODcyNSksaS5lKDY2OTMzKSxpLmUoNjk2OTcpLGkuZSg1MjUwOSksaS5lKDYzNDAyKSxpLmUoMjQ4NzkpLGkuZSg2NzEyMCksaS5lKDQyMzI3KSxpLmUoMzUyNTIpLGkuZSg2MDQ5MyldKS50aGVuKGkuYmluZChpLDY2MjM0OCkpLFByb21pc2UuYWxsKFtpLmUoOTY4MjMpLGkuZSg4NDMwNiksaS5lKDI5Mjk2KSxpLmUoNTIzOTYpLGkuZSg2MDA2MiksaS5lKDQ2OTA3KSxpLmUoMjAzNTQpLGkuZSgxMzQ5MiksaS5lKDM3NzQ2KSxpLmUoMTIzODUpLGkuZSg4MTA3MiksaS5lKDk0OTQ4KSxpLmUoMjM2MjQpLGkuZSg5NDIzMiksaS5lKDMyODE2KSxpLmUoMTk1OTUpLGkuZSgxOTc4NyksaS5lKDY3Nzk5KSxpLmUoMjQ1ODEpLGkuZSgyNzUxNyksaS5lKDg2NDIzKSxpLmUoODU3OSksaS5lKDQwODM1KSxpLmUoMTcwODcpLGkuZSg3MjY2NiksaS5lKDc4NjUyKSxpLmUoNzA4MTUpLGkuZSgxNDYyNSksaS5lKDE1NTI2KSxpLmUoOTM0MTYpLGkuZSg1MjY4MCksaS5lKDM1Nzk0KSxpLmUoMTY3NiksaS5lKDg5MjA0KSxpLmUoMTIwNTEpLGkuZSg4OTU1OCksaS5lKDEwMzY2KSxpLmUoNjk4NjEpLGkuZSgyMDIpLGkuZSg3MjUxMiksaS5lKDU1MDExKSxpLmUoNzUzMDQpLGkuZSg1MjA5NSksaS5lKDQ0MDMxKSxpLmUoNzE5MDEpLGkuZSg4OTA0NCksaS5lKDQwOTE0KSxpLmUoODEyNDcpLGkuZSg5MDk2MCksaS5lKDQzNzkyKSxpLmUoODc3NDApLGkuZSg3ODQwNCksaS5lKDM5MTYpLGkuZSg4MTEwNyksaS5lKDc4ODk5KSxpLmUoNTEyNTYpLGkuZSg0MjMwMSksaS5lKDM1MzQyKSxpLmUoNDIwMzMpLGkuZSg1MDU4OCksaS5lKDgwMDQxKSxpLmUoOTAzNzgpLGkuZSg3MjI0OSksaS5lKDMwOTIyKSxpLmUoMzc1NjcpLGkuZSg4Nzc2NyksaS5lKDMyMzg3KSxpLmUoMzA2OTkpLGkuZSg4MDkxNSksaS5lKDE4NTEyKSxpLmUoNDg2MjApLGkuZSg1MDA0OSksaS5lKDE0ODg5KSxpLmUoNDIyMTIpLGkuZSg1NTIyOSksaS5lKDQ2MjE3KSxpLmUoNjg3MjUpLGkuZSg2NjkzMyksaS5lKDY5Njk3KSxpLmUoNTI1MDkpLGkuZSg2MzQwMiksaS5lKDI0ODc5KSxpLmUoNjcxMjApLGkuZSg0MjMyNyksaS5lKDM1MjUyKSxpLmUoNjA0OTMpXSkudGhlbihpLmJpbmQoaSw4OTEyNSkpLFByb21pc2UuYWxsKFtpLmUoOTY4MjMpLGkuZSg4NDMwNiksaS5lKDI5Mjk2KSxpLmUoNTIzOTYpLGkuZSg2MDA2MiksaS5lKDQ2OTA3KSxpLmUoMjAzNTQpLGkuZSgxMzQ5MiksaS5lKDM3NzQ2KSxpLmUoMTIzODUpLGkuZSg4MTA3MiksaS5lKDk0OTQ4KSxpLmUoMjM2MjQpLGkuZSg5NDIzMiksaS5lKDMyODE2KSxpLmUoMTk1OTUpLGkuZSgxOTc4NyksaS5lKDY3Nzk5KSxpLmUoMjQ1ODEpLGkuZSgyNzUxNyksaS5lKDg2NDIzKSxpLmUoODU3OSksaS5lKDQwODM1KSxpLmUoMTcwODcpLGkuZSg3MjY2NiksaS5lKDc4NjUyKSxpLmUoNzA4MTUpLGkuZSgxNDYyNSksaS5lKDE1NTI2KSxpLmUoOTM0MTYpLGkuZSg1MjY4MCksaS5lKDM1Nzk0KSxpLmUoMTY3NiksaS5lKDg5MjA0KSxpLmUoMTIwNTEpLGkuZSg4OTU1OCksaS5lKDEwMzY2KSxpLmUoNjk4NjEpLGkuZSgyMDIpLGkuZSg3MjUxMiksaS5lKDU1MDExKSxpLmUoNzUzMDQpLGkuZSg1MjA5NSksaS5lKDQ0MDMxKSxpLmUoNzE5MDEpLGkuZSg4OTA0NCksaS5lKDQwOTE0KSxpLmUoODEyNDcpLGkuZSg5MDk2MCksaS5lKDQzNzkyKSxpLmUoODc3NDApLGkuZSg3ODQwNCksaS5lKDM5MTYpLGkuZSg4MTEwNyksaS5lKDc4ODk5KSxpLmUoNTEyNTYpLGkuZSg0MjMwMSksaS5lKDM1MzQyKSxpLmUoNDIwMzMpLGkuZSg1MDU4OCksaS5lKDgwMDQxKSxpLmUoOTAzNzgpLGkuZSg3MjI0OSksaS5lKDMwOTIyKSxpLmUoMzc1NjcpLGkuZSg4Nzc2NyksaS5lKDMyMzg3KSxpLmUoMzA2OTkpLGkuZSg4MDkxNSksaS5lKDE4NTEyKSxpLmUoNDg2MjApLGkuZSg1MDA0OSksaS5lKDE0ODg5KSxpLmUoNDIyMTIpLGkuZSg1NTIyOSksaS5lKDQ2MjE3KSxpLmUoNjg3MjUpLGkuZSg2NjkzMyksaS5lKDY5Njk3KSxpLmUoNTI1MDkpLGkuZSg2MzQwMiksaS5lKDI0ODc5KSxpLmUoNjcxMjApLGkuZSg0MjMyNyksaS5lKDM1MjUyKSxpLmUoNjA0OTMpXSkudGhlbihpLmJpbmQoaSw1NDE1MDkpKSxQcm9taXNlLmFsbChbaS5lKDk2ODIzKSxpLmUoODQzMDYpLGkuZSgyOTI5NiksaS5lKDUyMzk2KSxpLmUoNjAwNjIpLGkuZSg0NjkwNyksaS5lKDIwMzU0KSxpLmUoMTM0OTIpLGkuZSgzNzc0NiksaS5lKDEyMzg1KSxpLmUoODEwNzIpLGkuZSg5NDk0OCksaS5lKDIzNjI0KSxpLmUoOTQyMzIpLGkuZSgzMjgxNiksaS5lKDE5NTk1KSxpLmUoMTk3ODcpLGkuZSg2Nzc5OSksaS5lKDI0NTgxKSxpLmUoMjc1MTcpLGkuZSg4NjQyMyksaS5lKDg1NzkpLGkuZSg0MDgzNSksaS5lKDE3MDg3KSxpLmUoNzI2NjYpLGkuZSg3ODY1MiksaS5lKDcwODE1KSxpLmUoMTQ2MjUpLGkuZSgxNTUyNiksaS5lKDkzNDE2KSxpLmUoNTI2ODApLGkuZSgzNTc5NCksaS5lKDE2NzYpLGkuZSg4OTIwNCksaS5lKDEyMDUxKSxpLmUoODk1NTgpLGkuZSgxMDM2NiksaS5lKDY5ODYxKSxpLmUoMjAyKSxpLmUoNzI1MTIpLGkuZSg1NTAxMSksaS5lKDc1MzA0KSxpLmUoNTIwOTUpLGkuZSg0NDAzMSksaS5lKDcxOTAxKSxpLmUoODkwNDQpLGkuZSg0MDkxNCksaS5lKDgxMjQ3KSxpLmUoOTA5NjApLGkuZSg0Mzc5MiksaS5lKDg3NzQwKSxpLmUoNzg0MDQpLGkuZSgzOTE2KSxpLmUoODExMDcpLGkuZSg3ODg5OSksaS5lKDUxMjU2KSxpLmUoNDIzMDEpLGkuZSgzNTM0MiksaS5lKDQyMDMzKSxpLmUoNTA1ODgpLGkuZSg4MDA0MSksaS5lKDkwMzc4KSxpLmUoNzIyNDkpLGkuZSgzMDkyMiksaS5lKDM3NTY3KSxpLmUoODc3NjcpLGkuZSgzMjM4NyksaS5lKDMwNjk5KSxpLmUoODA5MTUpLGkuZSgxODUxMiksaS5lKDQ4NjIwKSxpLmUoNTAwNDkpLGkuZSgxNDg4OSksaS5lKDQyMjEyKSxpLmUoNTUyMjkpLGkuZSg0NjIxNyksaS5lKDY4NzI1KSxpLmUoNjY5MzMpLGkuZSg2OTY5NyksaS5lKDUyNTA5KSxpLmUoNjM0MDIpLGkuZSgyNDg3OSksaS5lKDY3MTIwKSxpLmUoNDIzMjcpLGkuZSgzNTI1MiksaS5lKDYwNDkzKV0pLnRoZW4oaS5iaW5kKGksMjU4NTI5KSldKQp9X2luaXRTeW1ib2xMaXN0KHQpe2NvbnN0IHM9d2luZG93LndpZGdldGJhcjtpZighcylyZXR1cm47KDAsbi5lbnN1cmVEZWZpbmVkKShzLmxheW91dCkuc2V0TWluaW1pemVkU3RhdGUoITEpLHMuc2V0UGFnZSgiYmFzZSIpO2NvbnN0IGE9dGhpcy5fcGVuZGluZ09wZXJhdGlvblByb21pc2U9UHJvbWlzZS5hbGwoWygwLHUuaW5pdFN5bWJvbExpc3RTZXJ2aWNlKSgpLFByb21pc2UuYWxsKFtpLmUoOTY4MjMpLGkuZSg4NDMwNiksaS5lKDI5Mjk2KSxpLmUoNTIzOTYpLGkuZSg2MDA2MiksaS5lKDQ2OTA3KSxpLmUoMjAzNTQpLGkuZSgxMzQ5MiksaS5lKDM3NzQ2KSxpLmUoMTIzODUpLGkuZSg4MTA3MiksaS5lKDk0OTQ4KSxpLmUoMjM2MjQpLGkuZSg5NDIzMiksaS5lKDMyODE2KSxpLmUoMTk1OTUpLGkuZSgxOTc4NyksaS5lKDY3Nzk5KSxpLmUoMjQ1ODEpLGkuZSgyNzUxNyksaS5lKDg2NDIzKSxpLmUoODU3OSksaS5lKDQwODM1KSxpLmUoMTcwODcpLGkuZSg3MjY2NiksaS5lKDc4NjUyKSxpLmUoNzA4MTUpLGkuZSgxNDYyNSksaS5lKDE1NTI2KSxpLmUoOTM0MTYpLGkuZSg1MjY4MCksaS5lKDM1Nzk0KSxpLmUoMTY3NiksaS5lKDg5MjA0KSxpLmUoMTIwNTEpLGkuZSg4OTU1OCksaS5lKDEwMzY2KSxpLmUoNjk4NjEpLGkuZSgyMDIpLGkuZSg3MjUxMiksaS5lKDU1MDExKSxpLmUoNzUzMDQpLGkuZSg1MjA5NSksaS5lKDQ0MDMxKSxpLmUoNzE5MDEpLGkuZSg4OTA0NCksaS5lKDQwOTE0KSxpLmUoODEyNDcpLGkuZSg5MDk2MCksaS5lKDQzNzkyKSxpLmUoODc3NDApLGkuZSg3ODQwNCksaS5lKDM5MTYpLGkuZSg4MTEwNyksaS5lKDc4ODk5KSxpLmUoNTEyNTYpLGkuZSg0MjMwMSksaS5lKDM1MzQyKSxpLmUoNDIwMzMpLGkuZSg1MDU4OCksaS5lKDgwMDQxKSxpLmUoOTAzNzgpLGkuZSg3MjI0OSksaS5lKDMwOTIyKSxpLmUoMzc1NjcpLGkuZSg4Nzc2NyksaS5lKDMyMzg3KSxpLmUoMzA2OTkpLGkuZSg4MDkxNSksaS5lKDE4NTEyKSxpLmUoNDg2MjApLGkuZSg1MDA0OSksaS5lKDE0ODg5KSxpLmUoNDIyMTIpLGkuZSg1NTIyOSksaS5lKDQ2MjE3KSxpLmUoNjg3MjUpLGkuZSg2NjkzMyksaS5lKDY5Njk3KSxpLmUoNTI1MDkpLGkuZSg2MzQwMiksaS5lKDI0ODc5KSxpLmUoNjcxMjApLGkuZSg0MjMyNyksaS5lKDM1MjUyKSxpLmUoNjA0OTMpXSkudGhlbihpLmJpbmQoaSw1NDE1MDkpKV0pLnRoZW4oKChbaSxzXSk9PntpZih0aGlzLl9wZW5kaW5nT3BlcmF0aW9uUHJvbWlzZT09PWEpe3RoaXMuX3BlbmRpbmdPcGVyYXRpb25Qcm9taXNlPW51bGw7Y29uc3R7cnVubmVyOm59PWk7aWYodGhpcy5fdGFzayYmdGhpcy5fdGFzay5pc1J1bm5pbmcoKSl0KGkpO2Vsc2V7Y29uc3QgYT1uLnJ1bihzLndhdGNoTGlzdFNhZ2EsZS5jb21wb25lbnRMb2dOYW1lKTt0KGkpLGEuY2FuY2VsKCl9fX0pKX1fY2FuY2VsVGFzaygpe3RoaXMuX3Rhc2smJih0aGlzLl90YXNrLmNhbmNlbCgpLHRoaXMuX3Rhc2s9bnVsbCl9fX19LDM0NDk0NyhlLHQsaSl7InVzZSBzdHJpY3QiO2kuZCh0LHtWZXJ0aWNhbFNjcm9sbDooKT0+dX0pO3ZhciBzPWkoNzc5NDc0KSxuPWkoOTE0NDg3KSxhPWkubihuKSxvPWkoMjczMzEwKSxyPWkoMzQyNzgpLGw9aSgyMTg4MTQpLGQ9aSg1MDk5OTApLGg9aSg1NTA5NTgpLGM9aSgxMDE2MzEpO2NsYXNzIHUgZXh0ZW5kcyBzLlB1cmVDb21wb25lbnR7Y29uc3RydWN0b3IoZSl7c3VwZXIoZSksdGhpcy5fc2Nyb2xsPW51bGwsdGhpcy5faGFuZGxlU2Nyb2xsVG9wPSgpPT57dGhpcy5hbmltYXRlVG8oTWF0aC5tYXgoMCx0aGlzLmN1cnJlbnRQb3NpdGlvbigpLSh0aGlzLnN0YXRlLmhlaWdodFdyYXAtNTApKSl9LHRoaXMuX2hhbmRsZVNjcm9sbEJvdD0oKT0+e3RoaXMuYW5pbWF0ZVRvKE1hdGgubWluKCh0aGlzLnN0YXRlLmhlaWdodENvbnRlbnR8fDApLSh0aGlzLnN0YXRlLmhlaWdodFdyYXB8fDApLHRoaXMuY3VycmVudFBvc2l0aW9uKCkrKHRoaXMuc3RhdGUuaGVpZ2h0V3JhcC01MCkpKX0sdGhpcy5faGFuZGxlUmVzaXplV3JhcD0oW2VdKT0+e3RoaXMuc2V0U3RhdGUoe2hlaWdodFdyYXA6ZS5jb250ZW50UmVjdC5oZWlnaHR9KX0sdGhpcy5faGFuZGxlUmVzaXplQ29udGVudD0oW2VdKT0+e3RoaXMuc2V0U3RhdGUoe2hlaWdodENvbnRlbnQ6ZS5jb250ZW50UmVjdC5oZWlnaHR9KX0sdGhpcy5faGFuZGxlU2Nyb2xsPSgpPT57Y29uc3R7b25TY3JvbGw6ZX09dGhpcy5wcm9wcztlJiZlKHRoaXMuY3VycmVudFBvc2l0aW9uKCksdGhpcy5pc0F0VG9wKCksdGhpcy5pc0F0Qm90KCkpLHRoaXMuX2NoZWNrQnV0dG9uc1Zpc2liaWxpdHkoKX0sdGhpcy5fY2hlY2tCdXR0b25zVmlzaWJpbGl0eT0oKT0+e2NvbnN0e2lzVmlzaWJsZVRvcEJ1dHRvbjplLGlzVmlzaWJsZUJvdEJ1dHRvbjp0fT10aGlzLnN0YXRlLGk9dGhpcy5pc0F0VG9wKCkscz10aGlzLmlzQXRCb3QoKTtpfHxlP2kmJmUmJnRoaXMuc2V0U3RhdGUoe2lzVmlzaWJsZVRvcEJ1dHRvbjohMX0pOnRoaXMuc2V0U3RhdGUoe2lzVmlzaWJsZVRvcEJ1dHRvbjohMH0pLHN8fHQ/cyYmdCYmdGhpcy5zZXRTdGF0ZSh7aXNWaXNpYmxlQm90QnV0dG9uOiExfSk6dGhpcy5zZXRTdGF0ZSh7aXNWaXNpYmxlQm90QnV0dG9uOiEwfSl9LHRoaXMuc3RhdGU9e2hlaWdodENvbnRlbnQ6MCxoZWlnaHRXcmFwOjAsaXNWaXNpYmxlQm90QnV0dG9uOiExLGlzVmlzaWJsZVRvcEJ1dHRvbjohMX19Y29tcG9uZW50RGlkTW91bnQoKXt0aGlzLl9jaGVja0J1dHRvbnNWaXNpYmlsaXR5KCl9Y29tcG9uZW50RGlkVXBkYXRlKGUsdCl7dC5oZWlnaHRXcmFwPT09dGhpcy5zdGF0ZS5oZWlnaHRXcmFwJiZ0LmhlaWdodENvbnRlbnQ9PT10aGlzLnN0YXRlLmhlaWdodENvbnRlbnR8fHRoaXMuX2hhbmRsZVNjcm9sbCgpfWN1cnJlbnRQb3NpdGlvbigpe3JldHVybiB0aGlzLl9zY3JvbGw/dGhpcy5fc2Nyb2xsLnNjcm9sbFRvcDowfWlzQXRUb3AoKXtyZXR1cm4gdGhpcy5jdXJyZW50UG9zaXRpb24oKTw9MX1pc0F0Qm90KCl7cmV0dXJuIHRoaXMuY3VycmVudFBvc2l0aW9uKCkrdGhpcy5zdGF0ZS5oZWlnaHRXcmFwPj10aGlzLnN0YXRlLmhlaWdodENvbnRlbnQtMX0KYW5pbWF0ZVRvKGUsdD1sLmR1cil7Y29uc3QgaT10aGlzLl9zY3JvbGw7aSYmKDAsci5kb0FuaW1hdGUpKHtvblN0ZXAoZSx0KXtpLnNjcm9sbFRvcD10fSxmcm9tOmkuc2Nyb2xsVG9wLHRvOk1hdGgucm91bmQoZSksZWFzaW5nOmwuZWFzaW5nRnVuYy5lYXNlSW5PdXRDdWJpYyxkdXJhdGlvbjp0fSl9cmVuZGVyKCl7Y29uc3R7Y2hpbGRyZW46ZSxpc1Zpc2libGVTY3JvbGxiYXI6dCxpc1Zpc2libGVGYWRlOmksaXNWaXNpYmxlQnV0dG9uczpuLG9uTW91c2VPdmVyOnIsb25Nb3VzZU91dDpsfT10aGlzLnByb3BzLHtoZWlnaHRDb250ZW50OnUsaGVpZ2h0V3JhcDpnLGlzVmlzaWJsZUJvdEJ1dHRvbjptLGlzVmlzaWJsZVRvcEJ1dHRvbjpwfT10aGlzLnN0YXRlO3JldHVybiBzLmNyZWF0ZUVsZW1lbnQoZC5NZWFzdXJlLHtvblJlc2l6ZTp0aGlzLl9oYW5kbGVSZXNpemVXcmFwfSwoXz0+cy5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6aC53cmFwLG9uTW91c2VPdmVyOnIsb25Nb3VzZU91dDpsLHJlZjpffSxzLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTphKCkoaC5zY3JvbGxXcmFwLHtbaC5ub1Njcm9sbEJhcl06IXR9KSxvblNjcm9sbDp0aGlzLl9oYW5kbGVTY3JvbGwscmVmOmU9PnRoaXMuX3Njcm9sbD1lfSxzLmNyZWF0ZUVsZW1lbnQoZC5NZWFzdXJlLHtvblJlc2l6ZTp0aGlzLl9oYW5kbGVSZXNpemVDb250ZW50fSwodD0+cy5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6aC5jb250ZW50LHJlZjp0fSxlKSkpKSxpJiZzLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTphKCkoaC5mYWRlVG9wLHtbaC5pc1Zpc2libGVdOnAmJnU+Z30pfSksaSYmcy5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6YSgpKGguZmFkZUJvdCx7W2guaXNWaXNpYmxlXTptJiZ1Pmd9KX0pLG4mJnMuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOmEoKShoLnNjcm9sbFRvcCx7W2guaXNWaXNpYmxlXTpwJiZ1Pmd9KSxvbkNsaWNrOnRoaXMuX2hhbmRsZVNjcm9sbFRvcH0scy5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6aC5pY29uV3JhcH0scy5jcmVhdGVFbGVtZW50KG8uSWNvbix7aWNvbjpjLGNsYXNzTmFtZTpoLmljb259KSkpLG4mJnMuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOmEoKShoLnNjcm9sbEJvdCx7W2guaXNWaXNpYmxlXTptJiZ1Pmd9KSxvbkNsaWNrOnRoaXMuX2hhbmRsZVNjcm9sbEJvdH0scy5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6aC5pY29uV3JhcH0scy5jcmVhdGVFbGVtZW50KG8uSWNvbix7aWNvbjpjLGNsYXNzTmFtZTpoLmljb259KSkpKSkpfX11LmRlZmF1bHRQcm9wcz17aXNWaXNpYmxlU2Nyb2xsYmFyOiEwfX0sODgzMTE5KGUsdCxpKXsidXNlIHN0cmljdCI7aS5kKHQse2NvbGxhcHNlZFBhbmVsc1NlcnZpY2U6KCk9Pm59KTt2YXIgcz1pKDIzMjM2NCk7Y29uc3Qgbj1uZXcgY2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLl9zdGF0ZXM9bmV3IE1hcH1jb2xsYXBzZVBhbmVsKGUpe3RoaXMuX2Vuc3VyZVN0YXRlKGUpLnNldFZhbHVlKCEwKX11bkNvbGxhcHNlUGFuZWwoZSl7dGhpcy5fZW5zdXJlU3RhdGUoZSkuc2V0VmFsdWUoITEpfWlzUGFuZWxDb2xsYXBzZWQoZSl7cmV0dXJuIHRoaXMuX2Vuc3VyZVN0YXRlKGUpLnJlYWRvbmx5KCl9X2Vuc3VyZVN0YXRlKGUpe2xldCB0PXRoaXMuX3N0YXRlcy5nZXQoZSk7cmV0dXJuIHZvaWQgMD09PXQmJih0PW5ldyBzLldhdGNoZWRWYWx1ZSghMSksdGhpcy5fc3RhdGVzLnNldChlLHQpKSx0fX19LDMyOTY2OChlLHQsaSl7InVzZSBzdHJpY3QiO3ZhciBzO2Z1bmN0aW9uIG4oZSl7ZS5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgicm92aW5nLXRhYmluZGV4Om1haW4tZWxlbWVudCIpKX1mdW5jdGlvbiBhKGUpe2UuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInJvdmluZy10YWJpbmRleDpzZWNvbmRhcnktZWxlbWVudCIpKX1pLmQodCx7YmVjb21lTWFpbkVsZW1lbnQ6KCk9Pm4sYmVjb21lU2Vjb25kYXJ5RWxlbWVudDooKT0+YX0pLGZ1bmN0aW9uKGUpe2UuTWFpbkVsZW1lbnQ9InJvdmluZy10YWJpbmRleDptYWluLWVsZW1lbnQiLGUuU2Vjb25kYXJ5RWxlbWVudD0icm92aW5nLXRhYmluZGV4OnNlY29uZGFyeS1lbGVtZW50In0oc3x8KHM9e30pKX0sOTgzNjE2KGUsdCxpKXsidXNlIHN0cmljdCI7aS5kKHQse21hcEtleUNvZGVUb0RpcmVjdGlvbjooKT0+aCxuYXZpZ2F0aW9uT3JkZXJDb21wYXJhdG9yOigpPT5vLHF1ZXJ5Rm9jdXNhYmxlRWxlbWVudHM6KCk9PmwscXVlcnlUYWJiYWJsZUVsZW1lbnRzOigpPT5yLHVwZGF0ZVRhYkluZGV4ZXM6KCk9PmR9KTt2YXIgcyxuPWkoOTY5MTY4KSxhPWkoNjgyMzgxKTtmdW5jdGlvbiBvKGUsdCl7cmV0dXJuIGU9PT10PzA6ZS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbih0KSZOb2RlLkRPQ1VNRU5UX1BPU0lUSU9OX0ZPTExPV0lORz8tMToxfWZ1bmN0aW9uIHIoZSl7cmV0dXJuIEFycmF5LmZyb20oZS5xdWVyeVNlbGVjdG9yQWxsKCdidXR0b246bm90KDpkaXNhYmxlZCk6bm90KFthcmlhLWRpc2FibGVkPSJ0cnVlIiBpXSk6bm90KFt0YWJpbmRleD0iLTEiXSksIFt0YWJpbmRleF06bm90KFtkaXNhYmxlZF0pOm5vdChbYXJpYS1kaXNhYmxlZD0idHJ1ZSIgaV0pOm5vdChbdGFiaW5kZXg9Ii0xIl0pJykpLmZpbHRlcigoMCxhLmNyZWF0ZVNjb3BlZFZpc2libGVFbGVtZW50RmlsdGVyKShlKSl9ZnVuY3Rpb24gbChlKXtyZXR1cm4gQXJyYXkuZnJvbShlLnF1ZXJ5U2VsZWN0b3JBbGwoJ2J1dHRvbjpub3QoOmRpc2FibGVkKTpub3QoW2FyaWEtZGlzYWJsZWQ9InRydWUiIGldKTpub3QoW2FyaWEtZGlzYWJsZWQ9IiJdKSwgW3RhYmluZGV4XTpub3QoW2Rpc2FibGVkXSk6bm90KFthcmlhLWRpc2FibGVkPSJ0cnVlIiBpXSk6bm90KFthcmlhLWRpc2FibGVkPSIiXSknKSkuZmlsdGVyKCgwLGEuY3JlYXRlU2NvcGVkVmlzaWJsZUVsZW1lbnRGaWx0ZXIpKGUpKX1mdW5jdGlvbiBkKCl7CndpbmRvdy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgia2V5Ym9hcmQtbmF2aWdhdGlvbi1hY3RpdmF0aW9uIix7YnViYmxlczohMH0pKX1mdW5jdGlvbiBoKGUpe2NvbnN0IHQ9KDAsbi5pc1J0bCkoKTtzd2l0Y2goZSl7Y2FzZSAzODpyZXR1cm4iYmxvY2tQcmV2IjtjYXNlIDQwOnJldHVybiJibG9ja05leHQiO2Nhc2UgMzc6cmV0dXJuIHQ/ImlubGluZU5leHQiOiJpbmxpbmVQcmV2IjtjYXNlIDM5OnJldHVybiB0PyJpbmxpbmVQcmV2IjoiaW5saW5lTmV4dCI7ZGVmYXVsdDpyZXR1cm4gbnVsbH19IWZ1bmN0aW9uKGUpe2UuQmxvY2tQcmV2PSJibG9ja1ByZXYiLGUuQmxvY2tOZXh0PSJibG9ja05leHQiLGUuSW5saW5lUHJldj0iaW5saW5lUHJldiIsZS5JbmxpbmVOZXh0PSJpbmxpbmVOZXh0In0oc3x8KHM9e30pKX0sOTk1NzE5KGUsdCxpKXsidXNlIHN0cmljdCI7aS5kKHQse0RFRkFVTFRfVE9PTF9XSURHRVRfQlVUVE9OX1RIRU1FOigpPT5sLFRvb2xXaWRnZXRCdXR0b246KCk9PmR9KTt2YXIgcz1pKDc3OTQ3NCksbj1pKDkxNDQ4NyksYT1pLm4obiksbz1pKDI3MzMxMCkscj1pKDI3NzA3Nik7Y29uc3QgbD1yLGQ9cy5mb3J3YXJkUmVmKCgoZSx0KT0+e2NvbnN0e3RhZzppPSJkaXYiLGljb246bixlbmRJY29uOmwsaXNBY3RpdmU6ZCxpc09wZW5lZDpoLGlzRGlzYWJsZWQ6Yyxpc0Rpc2FibGVkQXBwZWFyYW5jZTp1LGlzRGlzYWJsZUludGVyYWN0aW9uOmcsaXNHcm91cGVkOm0saXNIb3ZlcmVkOnAsaXNDbGlja2VkOl8sb25DbGljazpiLHRleHQ6Zix0ZXh0QmVmb3JlSWNvbjp2LHRpdGxlOncsdGhlbWU6eT1yLGNsYXNzTmFtZTpTLGZvcmNlSW50ZXJhY3RpdmU6QywiZGF0YS1uYW1lIjpULCJkYXRhLXRvb2x0aXAiOkUsdG9vbHRpcFBvc2l0aW9uOngsY2hpbGRyZW46TCxpc1ByZXNzZWQ6QiwuLi5XfT1lLE49YSgpKFMseS5idXR0b24seyJhcHBseS1jb21tb24tdG9vbHRpcCI6Qm9vbGVhbih3fHxFKSwiY29tbW9uLXRvb2x0aXAtdmVydGljYWwiOkJvb2xlYW4oRSkmJiJ2ZXJ0aWNhbCI9PT14LFt5LmlzQWN0aXZlXTpkLFt5LmlzT3BlbmVkXTpoLFt5LmlzSW50ZXJhY3RpdmVdOihDfHxCb29sZWFuKGIpKSYmIWMmJiF1LFt5LmlzRGlzYWJsZWRdOkJvb2xlYW4oY3x8dSksW3kuaXNHcm91cGVkXTptLFt5LmhvdmVyXTpwLFt5LmNsaWNrZWRdOl8sW3kucHJlc3NlZF06Qn0pLFA9biYmKCJzdHJpbmciPT10eXBlb2Ygbj9zLmNyZWF0ZUVsZW1lbnQoby5JY29uLHtjbGFzc05hbWU6eS5pY29uLGljb246bn0pOnMuY2xvbmVFbGVtZW50KG4se2NsYXNzTmFtZTphKCkoeS5pY29uLG4ucHJvcHMuY2xhc3NOYW1lKX0pKTtyZXR1cm4iYnV0dG9uIj09PWk/cy5jcmVhdGVFbGVtZW50KCJidXR0b24iLHsuLi5XLHJlZjp0LHR5cGU6ImJ1dHRvbiIsY2xhc3NOYW1lOmEoKShOLHkuYWNjZXNzaWJsZSksZGlzYWJsZWQ6YyYmIXV8fGcsb25DbGljazpiLHRpdGxlOncsImRhdGEtbmFtZSI6VCwiZGF0YS10b29sdGlwIjpFfSx2JiZmJiZzLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTphKCkoImpzLWJ1dHRvbi10ZXh0Iix5LnRleHQpfSxmKSxQLCF2JiZmJiZzLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTphKCkoImpzLWJ1dHRvbi10ZXh0Iix5LnRleHQpfSxmKSxMKTpzLmNyZWF0ZUVsZW1lbnQoImRpdiIsey4uLlcscmVmOnQsImRhdGEtcm9sZSI6ImJ1dHRvbiIsY2xhc3NOYW1lOk4sb25DbGljazpjfHxnP3ZvaWQgMDpiLHRpdGxlOncsImRhdGEtbmFtZSI6VCwiZGF0YS10b29sdGlwIjpFfSx2JiZmJiZzLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTphKCkoImpzLWJ1dHRvbi10ZXh0Iix5LnRleHQpfSxmKSxQLCF2JiZmJiZzLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTphKCkoImpzLWJ1dHRvbi10ZXh0Iix5LnRleHQpfSxmKSxsJiZzLmNyZWF0ZUVsZW1lbnQoby5JY29uLHtpY29uOmwsY2xhc3NOYW1lOnIuZW5kSWNvbn0pLEwpfSkpfSw3MzAwMDkoZSx0LGkpeyJ1c2Ugc3RyaWN0IjtpLmQodCx7VG9vbGJhcjooKT0+Y30pO3ZhciBzPWkoNzc5NDc0KSxuPWkoMTM4NjM4KSxhPWkoODMzOTAzKSxvPWkoMjM1NzI0KSxyPWkoOTgzNjE2KSxsPWkoMzI5NjY4KSxkPWkoNzg3ODk1KSxoPWkoNDUwMTQwKTtjb25zdCBjPSgwLHMuZm9yd2FyZFJlZikoKGZ1bmN0aW9uKGUsdCl7Y29uc3R7b25LZXlEb3duOmksb3JpZW50YXRpb246YyxibHVyT25Fc2NLZXlkb3duOnU9ITAsYmx1ck9uQ2xpY2s6Zz0hMCwuLi5tfT1lLHA9KDAsZC51c2VGdW5jdGlvbmFsUmVmT2JqZWN0KSh0KTtyZXR1cm4oMCxzLnVzZUxheW91dEVmZmVjdCkoKCgpPT57Y29uc3QgZT0oMCxuLmVuc3VyZU5vdE51bGwpKHAuY3VycmVudCksdD0oKT0+e2NvbnN0IHQ9KDAsci5xdWVyeVRhYmJhYmxlRWxlbWVudHMpKGUpLnNvcnQoci5uYXZpZ2F0aW9uT3JkZXJDb21wYXJhdG9yKTtpZigwPT09dC5sZW5ndGgpe2NvbnN0W3RdPSgwLHIucXVlcnlGb2N1c2FibGVFbGVtZW50cykoZSkuc29ydChyLm5hdmlnYXRpb25PcmRlckNvbXBhcmF0b3IpO2lmKHZvaWQgMD09PXQpcmV0dXJuOygwLGwuYmVjb21lTWFpbkVsZW1lbnQpKHQpfWlmKHQubGVuZ3RoPjEpe2NvbnN0WywuLi5lXT10O2Zvcihjb25zdCB0IG9mIGUpKDAsbC5iZWNvbWVTZWNvbmRhcnlFbGVtZW50KSh0KX19O3JldHVybiB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigia2V5Ym9hcmQtbmF2aWdhdGlvbi1hY3RpdmF0aW9uIix0KSwoKT0+d2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoImtleWJvYXJkLW5hdmlnYXRpb24tYWN0aXZhdGlvbiIsdCl9KSxbXSkscy5jcmVhdGVFbGVtZW50KCJkaXYiLHsuLi5oLk1vdXNlQ2xpY2tBdXRvQmx1ckhhbmRsZXIuYXR0cmlidXRlcyhnKSwuLi5tLHJvbGU6InRvb2xiYXIiLCJhcmlhLW9yaWVudGF0aW9uIjpjLHJlZjpwLG9uS2V5RG93bjooMCxhLmNyZWF0ZVNhZmVNdWx0aWNhc3RFdmVudEhhbmRsZXIpKChmdW5jdGlvbihlKXtpZihlLmRlZmF1bHRQcmV2ZW50ZWQpcmV0dXJuO2lmKCEoZG9jdW1lbnQuYWN0aXZlRWxlbWVudCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KSlyZXR1cm4KO2NvbnN0IHQ9KDAsby5oYXNoRnJvbUV2ZW50KShlKTtpZih1JiYyNz09PXQpcmV0dXJuIGUucHJldmVudERlZmF1bHQoKSx2b2lkIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuYmx1cigpO2lmKCJ2ZXJ0aWNhbCIhPT1jJiYzNyE9PXQmJjM5IT09dClyZXR1cm47aWYoInZlcnRpY2FsIj09PWMmJjM4IT09dCYmNDAhPT10KXJldHVybjtjb25zdCBpPWUuY3VycmVudFRhcmdldCxzPSgwLHIucXVlcnlGb2N1c2FibGVFbGVtZW50cykoaSkuc29ydChyLm5hdmlnYXRpb25PcmRlckNvbXBhcmF0b3IpO2lmKDA9PT1zLmxlbmd0aClyZXR1cm47Y29uc3Qgbj1zLmluZGV4T2YoZG9jdW1lbnQuYWN0aXZlRWxlbWVudCk7aWYoLTE9PT1uKXJldHVybjtlLnByZXZlbnREZWZhdWx0KCk7Y29uc3QgYT0oKT0+e2NvbnN0IGU9KG4rcy5sZW5ndGgtMSklcy5sZW5ndGg7KDAsbC5iZWNvbWVTZWNvbmRhcnlFbGVtZW50KShzW25dKSwoMCxsLmJlY29tZU1haW5FbGVtZW50KShzW2VdKSxzW2VdLmZvY3VzKCl9LGQ9KCk9Pntjb25zdCBlPShuK3MubGVuZ3RoKzEpJXMubGVuZ3RoOygwLGwuYmVjb21lU2Vjb25kYXJ5RWxlbWVudCkoc1tuXSksKDAsbC5iZWNvbWVNYWluRWxlbWVudCkoc1tlXSksc1tlXS5mb2N1cygpfTtzd2l0Y2goKDAsci5tYXBLZXlDb2RlVG9EaXJlY3Rpb24pKHQpKXtjYXNlImlubGluZVByZXYiOiJ2ZXJ0aWNhbCIhPT1jJiZhKCk7YnJlYWs7Y2FzZSJpbmxpbmVOZXh0IjoidmVydGljYWwiIT09YyYmZCgpO2JyZWFrO2Nhc2UiYmxvY2tQcmV2IjoidmVydGljYWwiPT09YyYmYSgpO2JyZWFrO2Nhc2UiYmxvY2tOZXh0IjoidmVydGljYWwiPT09YyYmZCgpfX0pLGkpLCJkYXRhLXRvb2x0aXAtc2hvdy1vbi1mb2N1cyI6InRydWUifSl9KSl9LDU2OTY1MihlLHQsaSl7InVzZSBzdHJpY3QiO2kuZCh0LHtSZWdpc3RyeVByb3ZpZGVyOigpPT5sLHJlZ2lzdHJ5Q29udGV4dFR5cGU6KCk9PmgsdXNlUmVnaXN0cnk6KCk9PmQsdmFsaWRhdGVSZWdpc3RyeTooKT0+cn0pO3ZhciBzPWkoNzc5NDc0KSxuPWkoMjIxODk2KSxhPWkubihuKTtjb25zdCBvPXMuY3JlYXRlQ29udGV4dCh7fSk7ZnVuY3Rpb24gcihlLHQpe2EoKS5jaGVja1Byb3BUeXBlcyh0LGUsImNvbnRleHQiLCJSZWdpc3RyeUNvbnRleHQiKX1mdW5jdGlvbiBsKGUpe2NvbnN0e3ZhbGlkYXRpb246dCx2YWx1ZTppfT1lO3JldHVybiByKGksdCkscy5jcmVhdGVFbGVtZW50KG8uUHJvdmlkZXIse3ZhbHVlOml9LGUuY2hpbGRyZW4pfWZ1bmN0aW9uIGQoZSl7Y29uc3QgdD0oMCxzLnVzZUNvbnRleHQpKG8pO3JldHVybiByKHQsZSksdH1mdW5jdGlvbiBoKCl7cmV0dXJuIG99fSwzNjkyNzEoZSx0LGkpeyJ1c2Ugc3RyaWN0Ijthc3luYyBmdW5jdGlvbiBzKGUpe2NvbnN0W3tjb25maWd1cmU6dH0scyx7SG90bGlzdFJlbmRlcmVyOm59XT1hd2FpdCBQcm9taXNlLmFsbChbUHJvbWlzZS5hbGwoW2kuZSg5NTU1KSxpLmUoMjkyOTYpLGkuZSg2MDA2MiksaS5lKDk1MDQpLGkuZSg1NTAxMSksaS5lKDc1MzA0KSxpLmUoNzk3OTEpLGkuZSg4NTUxMSksaS5lKDMyMzg3KSxpLmUoMzA2OTkpLGkuZSg4MTc1MCksaS5lKDU2MzgyKV0pLnRoZW4oaS5iaW5kKGksNjc4ODQxKSksUHJvbWlzZS5hbGwoW2kuZSg5NTU1KSxpLmUoMjkyOTYpLGkuZSg2MDA2MiksaS5lKDk1MDQpLGkuZSg1NTAxMSksaS5lKDc1MzA0KSxpLmUoNzk3OTEpLGkuZSg4NTUxMSksaS5lKDMyMzg3KSxpLmUoMzA2OTkpLGkuZSg4MTc1MCksaS5lKDU2MzgyKV0pLnRoZW4oaS5iaW5kKGksNzU0ODM4KSksUHJvbWlzZS5hbGwoW2kuZSg5NTU1KSxpLmUoMjkyOTYpLGkuZSg2MDA2MiksaS5lKDk1MDQpLGkuZSg1NTAxMSksaS5lKDc1MzA0KSxpLmUoNzk3OTEpLGkuZSg4NTUxMSksaS5lKDMyMzg3KSxpLmUoMzA2OTkpLGkuZSg4MTc1MCksaS5lKDU2MzgyKV0pLnRoZW4oaS5iaW5kKGksNzI1NTQ5KSldKTtyZXR1cm57V2F0Y2hsaXN0OnQoey4uLmUsY29tcG9uZW50TG9nTmFtZToid2F0Y2hsaXN0In0pLERldGFpbDpzLEhvdGxpc3RXaWRnZXQ6bn19aS5yKHQpLGkuZCh0LHtjb25maWd1cmF0aW9uOigpPT5zfSl9LDc0MzcyMChlLHQsaSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHMoZSx0KXtjb25zdCBpPXdpbmRvdy53aWRnZXRiYXI/LndpZGdldChlKTtpJiYwPT09aS5oZWlnaHRSYXRpbyYmKGkuc2V0TWluSGVpZ2h0KHQpLGkubWluSGVpZ2h0PTApfWkuZCh0LHtleHBhbmRXaWRnZXQ6KCk9PnN9KX0sOTc3NzQyKGUsdCxpKXsidXNlIHN0cmljdCI7aS5kKHQse2Zhdm9yaXRlUHJvZHVjdHNTZXJ2aWNlOigpPT51fSk7dmFyIHM9aSg4Mzk0MjYpLG49aSg5MzA1NjYpLGE9aSgxNTI2OTkpLG89aSgzNzUyNjIpLHI9aSg3NTU2NzApLGw9aSg1NjkzOTgpO2NvbnN0IGQ9WyJwcm9kdWN0cy1zY3JlZW5lcnMiLCJwaW5lIiwiY2FsZW5kYXJzIiwibmV3cy1mbG93IiwicG9ydGZvbGlvcyIsInlpZWxkLWN1cnZlcyIsInByb2R1Y3RzLW9wdGlvbnMiLCJtYWNyby1tYXBzIiwiY29tbXVuaXR5LWh1YiIsIm5vdGlmaWNhdGlvbnMiLCJjaGF0cyIsImZ1bmRhbWVudGFsLWdyYXBocyJdLGg9WyJwcm9kdWN0cy1zY3JlZW5lcnMiLCJjYWxlbmRhcnMiLCJwaW5lIiwiY29tbXVuaXR5LWh1YiIsIm5vdGlmaWNhdGlvbnMiXTtjbGFzcyBjIGV4dGVuZHMgby5Db21tb25Kc29uU3RvcmVTZXJ2aWNle2NvbnN0cnVjdG9yKGUsdCl7c3VwZXIoZSx0LCJGQVZPUklURV9SSUdIVF9UT09MQkFSX1BST0RVQ1RTX0NIQU5HRUQiLCJSaWdodFRvb2xiYXJQcm9kdWN0cy5mYXZvcml0ZXMiLGgpLHRoaXMuX3N0b3JlVmVyc2lvbj0xLHRoaXMuX21pZ3JhdGUoKTtjb25zdCBpPXRoaXMuZ2V0KCk7KDAsbC5pc0ZlYXR1cmVFbmFibGVkKSgiZGlzYWJsZS1kZWZhdWx0LXByb2R1Y3QtZXZlbnRzIikmJmkubGVuZ3RoPT09aC5sZW5ndGgmJmkuZXZlcnkoKGU9PmguaW5jbHVkZXMoZSkpKXx8KDAsci50cmFja1JpZ2h0UGFuZWxQcm9kdWN0cykoe2FjdGlvbjoiZmF2b3JpdGUgc3RhdGUiLHByb2R1Y3RfbmFtZTppLnNvcnQoKChlLHQpPT5kLmluZGV4T2YoZSktZC5pbmRleE9mKHQpKSkuam9pbigiLCAiKX0pfQp0b2dnbGVGYXZvcml0ZShlKXtjb25zdCB0PW5ldyBTZXQodGhpcy5nZXQoKSk7dC5oYXMoZSk/KHQuZGVsZXRlKGUpLCgwLHIudHJhY2tSaWdodFBhbmVsUHJvZHVjdHMpKHthY3Rpb246InJlbW92ZSBmcm9tIGZhdm9yaXRlcyIscHJvZHVjdF9uYW1lOmV9KSk6KHQuYWRkKGUpLCgwLHIudHJhY2tSaWdodFBhbmVsUHJvZHVjdHMpKHthY3Rpb246ImFkZCB0byBmYXZvcml0ZXMiLHByb2R1Y3RfbmFtZTplfSkpLHRoaXMuc2V0KEFycmF5LmZyb20odCkpfV9taWdyYXRlKCl7Y29uc3QgZT10aGlzLl9qc29uS2V5VmFsdWVTdG9yZS5nZXRKU09OKCJSaWdodFRvb2xiYXJQcm9kdWN0cy5zdG9yZVZlcnNpb24iLDApO2lmKCEoZT50aGlzLl9zdG9yZVZlcnNpb24pKXtpZih0aGlzLmhhc1ZhbHVlKCkmJmU8dGhpcy5fc3RvcmVWZXJzaW9uKXtjb25zdCB0PVtlPT5bLi4ubmV3IFNldChbLi4uZSwiY29tbXVuaXR5LWh1YiIsIm5vdGlmaWNhdGlvbnMiXSldXTtsZXQgaT10aGlzLmdldCgpO2ZvcihsZXQgcz1lO3M8dGhpcy5fc3RvcmVWZXJzaW9uO3MrKylpPXRbc10oaSk7dGhpcy5zZXQoaSl9ZSE9PXRoaXMuX3N0b3JlVmVyc2lvbiYmdGhpcy5fanNvbktleVZhbHVlU3RvcmUuc2V0SlNPTigiUmlnaHRUb29sYmFyUHJvZHVjdHMuc3RvcmVWZXJzaW9uIix0aGlzLl9zdG9yZVZlcnNpb24pfX19Y29uc3QgdT0oMCxzLmRlZmF1bHQpKCgoKT0+bmV3IGMoYS5UVlhXaW5kb3dFdmVudHMsbikpKX0sNTIwNjIxKGUsdCxpKXsidXNlIHN0cmljdCI7aS5yKHQpLGkuZCh0LHtXaWRnZXRCYXI6KCk9PkZlfSk7dmFyIHM9aSg3NDAxNjIpLG49aSgxMzg2MzgpLGE9KGkoODIyNDc1KSxpKDc4MzI1NCkpLG89aSg5NTI5MDApLHI9aSg3Nzk0NzQpLGw9aSgxMjkzNjUpLGQ9aSgyMzIzNjQpLGg9aSg4ODMxMTkpO2NvbnN0IGM9e2lzQWN0aXZlOiExLG5vdGlmaWNhdGlvbkNvdW50OjAsbm90aWZpY2F0aW9uQ291bnRlckFyaWFMYWJlbDoiIixpc05ldzohMX07Y2xhc3MgdXtjb25zdHJ1Y3RvcihlKXt0aGlzLl9hY3RpdmVTcGxpdFBhbmVsPW51bGw7Y29uc3QgdD17Li4uYywuLi5lfTt0aGlzLm5hbWU9dC5uYW1lLHRoaXMucHJvZHVjdD10LnByb2R1Y3QsdGhpcy5hcmVhPXQuYXJlYSx0LmNoYXJ0UGFnZUdyaWQmJnQuYXJlYSYmKHRoaXMuX2FjdGl2ZVNwbGl0UGFuZWw9KDAsby5jb21iaW5lKSgoZT0+ZS5hY3RpdmVQYW5lbHNbMF0/P251bGwpLHQuY2hhcnRQYWdlR3JpZC5wZXJzaXN0ZWRTdGF0ZSgpLndlYWtSZWZlcmVuY2UoKSkpLHRoaXMuaXNBY3RpdmU9bmV3IGQuV2F0Y2hlZFZhbHVlKHQuaXNBY3RpdmUpLHRoaXMuaXNDb2xsYXBzZWQ9dC5hcmVhP2guY29sbGFwc2VkUGFuZWxzU2VydmljZS5pc1BhbmVsQ29sbGFwc2VkKHRoaXMuX2dldENvbGxhcHNlZFN0YXRlS2V5KHQuYXJlYSkpOm5ldyBkLldhdGNoZWRWYWx1ZSghMSksdGhpcy5pc0Rpc2FibGVkPW5ldyBkLldhdGNoZWRWYWx1ZSghMSksdGhpcy5vbkNsaWNrPW5ldyBkLldhdGNoZWRWYWx1ZSh0Lm9uQ2xpY2spLHRoaXMuX2FjdGl2ZVNwbGl0UGFuZWwmJih0aGlzLl9hY3RpdmVTcGxpdFBhbmVsLnN1YnNjcmliZSgoKCk9PnRoaXMuX3JlY2FsY3VsYXRlQWN0aXZlU3RhdGUoKSkse2NhbGxXaXRoTGFzdDohMH0pLHRoaXMuaXNBY3RpdmUuc3Vic2NyaWJlKChlPT57dGhpcy5vbkNsaWNrLnNldFZhbHVlKGU/dm9pZCAwOnQub25DbGljayl9KSx7Y2FsbFdpdGhMYXN0OiEwfSkpLHRoaXMubm90aWZpY2F0aW9uc0NvdW50PW5ldyBkLldhdGNoZWRWYWx1ZSh0Lm5vdGlmaWNhdGlvbkNvdW50KSx0aGlzLm5vdGlmaWNhdGlvbkNvdW50ZXJBcmlhTGFiZWw9bmV3IGQuV2F0Y2hlZFZhbHVlKHQubm90aWZpY2F0aW9uQ291bnRlckFyaWFMYWJlbCksdGhpcy5pY29uPW5ldyBkLldhdGNoZWRWYWx1ZSh0Lmljb24pLHRoaXMuaGludD1uZXcgZC5XYXRjaGVkVmFsdWUodC5oaW50KSx0aGlzLlRhYkJ1dHRvbkNvbXBvbmVudD10LlRhYkJ1dHRvbkNvbXBvbmVudCx0aGlzLnZpc2libGU9bmV3IGQuV2F0Y2hlZFZhbHVlKCF0LnZpc2libGV8fHQudmlzaWJsZSgpKSx0aGlzLmlzTmV3PXQuaXNOZXd9b25BY3RpdmVTdGF0ZUNoYW5nZShlKXt0aGlzLmlzQWN0aXZlLnNldFZhbHVlKGUpfXVwZGF0ZU5vdGlmaWNhdGlvbnMoZSl7dGhpcy5ub3RpZmljYXRpb25zQ291bnQuc2V0VmFsdWUoZSl9dXBkYXRlTm90aWZpY2F0aW9uQ291bnRlckFyaWFMYWJlbChlKXt0aGlzLm5vdGlmaWNhdGlvbkNvdW50ZXJBcmlhTGFiZWwuc2V0VmFsdWUoZSl9X29uQWN0aXZlU3RhdGVDYWxjdWxhdGUoZSl7cmV0dXJuIGU9PT10aGlzLmFyZWF9X3JlY2FsY3VsYXRlQWN0aXZlU3RhdGUoKXt0aGlzLl9hY3RpdmVTcGxpdFBhbmVsJiZ0aGlzLmlzQWN0aXZlLnNldFZhbHVlKHRoaXMuX29uQWN0aXZlU3RhdGVDYWxjdWxhdGUodGhpcy5fYWN0aXZlU3BsaXRQYW5lbC52YWx1ZSgpKSl9X2dldENvbGxhcHNlZFN0YXRlS2V5KGUpe3JldHVybiBlfX12YXIgZz1pKDkxNDQ4NyksbT1pLm4oZykscD1pKDk1ODUwMCksXz1pKDk0ODM4MCksYj1pKDIyNTI5OCksZj1pKDM4NjkzMSksdj1pKDkzMDU2Nik7Y2xhc3Mgd3tjb25zdHJ1Y3RvcihlKXt0aGlzLl9zZXR0aW5nc0tleT1udWxsLHRoaXMuX3ZhbHVlPW51bGwsdGhpcy5fd2F0Y2hlZFZhbHVlPW5ldyBkLldhdGNoZWRWYWx1ZShudWxsKSxlJiZlLnNldHRpbmdzS2V5JiYodGhpcy5fc2V0dGluZ3NLZXk9ZS5zZXR0aW5nc0tleSx0aGlzLl92YWx1ZT12LmdldEpTT04odGhpcy5fc2V0dGluZ3NLZXksbnVsbCksdGhpcy5fd2F0Y2hlZFZhbHVlPW5ldyBkLldhdGNoZWRWYWx1ZSh0aGlzLl92YWx1ZSkpLGUmJmUud2lkZ2V0QmFyV2lkZ2V0JiZPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywid2lkZ2V0QmFyV2lkZ2V0Iix7dmFsdWU6ZS53aWRnZXRCYXJXaWRnZXQsY29uZmlndXJhYmxlOiEwfSl9dmFsdWUoKXtyZXR1cm4gdGhpcy5fdmFsdWV9c2V0VmFsdWUoZSx0KXtyZXR1cm4gdGhpcy5fdmFsdWU9ZSx0aGlzLl93YXRjaGVkVmFsdWUuc2V0VmFsdWUodGhpcy5fdmFsdWUpLHRoaXMuX3NldHRpbmdzS2V5JiYobnVsbD09ZT8oKDAsCmYudHJhY2tFdmVudCkoIlNldHRpbmdzIGRlYnVnIiwiV2lnZGV0UHJvcGVydGllcy5zZXRWYWx1ZTogIit0aGlzLl9zZXR0aW5nc0tleSx3aW5kb3cudXNlci51c2VybmFtZSksdi5yZW1vdmUodGhpcy5fc2V0dGluZ3NLZXkpKTp2LnNldEpTT04odGhpcy5fc2V0dGluZ3NLZXksZSx0KSksdGhpcy5fdmFsdWV9cmVhZG9ubHkoKXtyZXR1cm4gdGhpcy5fd2F0Y2hlZFZhbHVlLnJlYWRvbmx5KCl9ZGVzdHJveSgpe3RoaXMuX3dhdGNoZWRWYWx1ZS5kZXN0cm95KCl9fXZhciB5LFM9aSg0NTk0ODgpO2NvbnN0IEM9bmV3KCh5PWNsYXNze3Bvc3RNZXNzYWdlKGUsdCl7eS5faGFuZGxlcnMuZm9yRWFjaCgoaT0+e2kuaGFuZGxlcihlLHQpfSkpfW9uTWVzc2FnZShlKXsiZnVuY3Rpb24iPT10eXBlb2YgZSYmeS5faGFuZGxlcnMucHVzaCh7aGFuZGxlcjplLHdpZGdldDp0aGlzfSl9b2ZmTWVzc2FnZShlKXtpZigiZnVuY3Rpb24iPT10eXBlb2YgZSl7Y29uc3QgdD15Ll9oYW5kbGVycy5maW5kSW5kZXgoKHQ9PnQuaGFuZGxlcj09PWUpKTstMSE9PXQmJnkuX2hhbmRsZXJzLnNwbGljZSh0LDEpfX1vZmZXaWRnZXQoZSl7eS5faGFuZGxlcnM9eS5faGFuZGxlcnMuZmlsdGVyKCh0PT50LndpZGdldCE9PWUpKX19KS5faGFuZGxlcnM9W10seSksVD17d2F0Y2hsaXN0Ont0aXRsZTphLnQobnVsbCx2b2lkIDAsaSgzOTc3ODgpKSxjdG9yOm51bGwsbGF6eUxvYWQ6ITAsY2hhcnRXaWRnZXRBbGxvd2VkOiEwLGVtcHR5SGVhZGVyOiEwLHByZWxvYWREZWxheTo2ZTR9LGhvdGxpc3Q6e3RpdGxlOmEudChudWxsLHZvaWQgMCxpKDQ2ODcxMCkpLGN0b3I6bnVsbCxsYXp5TG9hZDohMCxjaGFydFdpZGdldEFsbG93ZWQ6ITAsZW1wdHlIZWFkZXI6ITB9LGRldGFpbDp7dGl0bGU6YS50KG51bGwsdm9pZCAwLGkoNDQzNDQ3KSksY3RvcjpudWxsLGxhenlMb2FkOiEwLGNoYXJ0V2lkZ2V0QWxsb3dlZDohMCxlbXB0eUhlYWRlcjohMCxub0hlYWRlclNwYWNlOiEwfSxuZXdzOnt0aXRsZTphLnQobnVsbCx2b2lkIDAsaSgxMzkwNDMpKSxjdG9yOm51bGwsbm9IZWFkZXJTcGFjZTohMH0sZGF0YXdpbmRvdzp7dGl0bGU6YS50KG51bGwse2NvbnRleHQ6IldpZGdldCBuYW1lIn0saSgyODk3MjkpKSxjdG9yOm51bGwsY2hhcnRXaWRnZXRBbGxvd2VkOiEwLGNoYXJ0V2lkZ2V0UmVxdWlyZWQ6ITB9LGFsZXJ0czp7Y3RvcjpudWxsLGxhenlMb2FkOiExLGNoYXJ0V2lkZ2V0QWxsb3dlZDohMCxlbXB0eUhlYWRlcjohMCxub0hlYWRlclNwYWNlOiEwLGRvTm90Q2xlYXJOb3RpZmljYXRpb25zOiEwLGRvTm90Q2xlYXJOb3RpZmljYXRpb25zT25WaXNpYmlsaXR5Q2hhbmdlOiEwfSxtYXJrZXRfc3VtbWFyeTp7dGl0bGU6YS50KG51bGwsdm9pZCAwLGkoNzE5MDApKSxjdG9yOm51bGx9LG9iamVjdF90cmVlOnt0aXRsZTphLnQobnVsbCx2b2lkIDAsaSgzMzY0ODkpKSxjdG9yOm51bGwsZW1wdHlIZWFkZXI6ITAsbm9IZWFkZXJTcGFjZTohMCxjaGFydFdpZGdldEFsbG93ZWQ6ITAsY2hhcnRXaWRnZXRSZXF1aXJlZDohMH0sdW5pb25jaGF0czp7Y3RvcjpudWxsLGVtcHR5SGVhZGVyOiEwLGNoYXJ0V2lkZ2V0QWxsb3dlZDohMCxub0hlYWRlclNwYWNlOiEwfSxwaW5lX2xvZ3M6e3RpdGxlOmEudChudWxsLHZvaWQgMCxpKDk1MzQxMCkpLGN0b3I6bnVsbCxjaGFydFdpZGdldEFsbG93ZWQ6ITAsbm9IZWFkZXI6ITB9fTt2YXIgRT1pKDE1MDE1MCkseD1pKDc4MDM3NCksTD1pKDgyMTM1KTtjbGFzcyBCe2NvbnN0cnVjdG9yKGUpe3RoaXMuaGVpZ2h0UmF0aW89Qi5oZWlnaHRSYXRpbyx0aGlzLm1pbkhlaWdodD0wLHRoaXMud2lkZ2V0Q29uZmlnPW51bGwsdGhpcy53aWRnZXRBY3RpdmU9bmV3IGQuV2F0Y2hlZFZhbHVlLHRoaXMud2lkZ2V0TWF4aW1pemVkPW5ldyBkLldhdGNoZWRWYWx1ZSx0aGlzLndpZGdldFZpc2libGU9bnVsbCx0aGlzLnN5bWJvbExpbmtpbmc9bnVsbCx0aGlzLmludGVydmFsTGlua2luZz1udWxsLHRoaXMuX2hlYWRlcj1udWxsLHRoaXMuX3dpZGdldD1udWxsLHRoaXMuX2hlYWRlcnNwYWNlPW51bGwsdGhpcy5fdGl0bGU9bnVsbCx0aGlzLl9yZXNpemVoYW5kbGU9bnVsbCx0aGlzLl93aWRnZXRTdGFydGVkPW5ldyBfLkRlbGVnYXRlLHRoaXMuX3Jlc2l6ZXI9bnVsbCx0aGlzLl9pbnRlcm5hbFN0YXRlPXthbGl2ZTpuZXcgZC5XYXRjaGVkVmFsdWUoITApLGNvbnRhaW5lcjpuZXcgZC5XYXRjaGVkVmFsdWUsd2lkdGg6bmV3IGQuV2F0Y2hlZFZhbHVlLGhlaWdodDpuZXcgZC5XYXRjaGVkVmFsdWUsZGV0YWNoYWJsZTpuZXcgZC5XYXRjaGVkVmFsdWUoITEpfSxlJiZlLndpZGdldEJhclBhZ2UmJih0aGlzLndpZGdldEJhclBhZ2U9ZS53aWRnZXRCYXJQYWdlKSx0aGlzLl9yZFN0YXRlPW5ldyBwLlJlc2l6ZXJEZXRhY2hlclN0YXRlKHRoaXMuX2ludGVybmFsU3RhdGUpLHRoaXMuX3JkU3RhdGUub3duZXIuc3Vic2NyaWJlKChlPT57ZSE9PXRoaXMuX2ludGVybmFsU3RhdGUmJih0aGlzLl9pbnRlcm5hbFN0YXRlLmNvbnRhaW5lci52YWx1ZSgpLmlubmVySFRNTD0iIil9KSl9ZWxlbWVudChlKXtzd2l0Y2goZSl7Y2FzZSJ3aWRnZXQiOnJldHVybiB0aGlzLl93aWRnZXQ7Y2FzZSJoZWFkZXIiOnJldHVybiB0aGlzLl9oZWFkZXI7Y2FzZSJyZXNpemUtaGFuZGxlIjpyZXR1cm4gdGhpcy5fcmVzaXplaGFuZGxlO2RlZmF1bHQ6cmV0dXJuIG51bGx9fXNldEhlaWdodChlKXt0aGlzLl9pbnRlcm5hbFN0YXRlLmNvbnRhaW5lci52YWx1ZSgpJiYodGhpcy5faW50ZXJuYWxTdGF0ZS5jb250YWluZXIudmFsdWUoKS5zdHlsZS5oZWlnaHQ9ZSsicHgiKSx0aGlzLl9pbnRlcm5hbFN0YXRlLmhlaWdodC5zZXRWYWx1ZShlKX1vbldpZHRoQ2hhbmdlKGUpe3RoaXMuX2ludGVybmFsU3RhdGUud2lkdGguc2V0VmFsdWUoZSl9cmVtb3ZlKCl7dGhpcy53aWRnZXRCYXJQYWdlJiZ0aGlzLndpZGdldEJhclBhZ2UucmVtb3ZlV2lkZ2V0KHRoaXMpfWRlc3Ryb3koKXt0aGlzLndpZGdldE9iamVjdCYmImRlc3Ryb3kiaW4gdGhpcy53aWRnZXRPYmplY3QmJnRoaXMud2lkZ2V0T2JqZWN0LmRlc3Ryb3koKSx0aGlzLnJlbW92ZSgpLAp0aGlzLnN5bWJvbExpbmtpbmcmJih0aGlzLnN5bWJvbExpbmtpbmcuZGVzdHJveSgpLHRoaXMuc3ltYm9sTGlua2luZz1udWxsKSx0aGlzLmludGVydmFsTGlua2luZyYmKHRoaXMuaW50ZXJ2YWxMaW5raW5nLmRlc3Ryb3koKSx0aGlzLmludGVydmFsTGlua2luZz1udWxsKSx0aGlzLndpZGdldFZpc2libGUmJih0aGlzLndpZGdldFZpc2libGUudW5zdWJzY3JpYmUoKSx0aGlzLndpZGdldFZpc2libGU9bnVsbCksdGhpcy53aWRnZXRBY3RpdmUmJih0aGlzLndpZGdldEFjdGl2ZS51bnN1YnNjcmliZSgpLHRoaXMud2lkZ2V0QWN0aXZlPW51bGwpLHRoaXMud2lkZ2V0TWF4aW1pemVkJiYodGhpcy53aWRnZXRNYXhpbWl6ZWQudW5zdWJzY3JpYmUoKSx0aGlzLndpZGdldE1heGltaXplZD1udWxsKSx0aGlzLnByb3BlcnRpZXMmJih0aGlzLnByb3BlcnRpZXMuZGVzdHJveSgpLGRlbGV0ZSB0aGlzLnByb3BlcnRpZXMpLHRoaXMuX2hlYWRlcj8ucmVtb3ZlKCksdGhpcy5fd2lkZ2V0Py5yZW1vdmUoKSx0aGlzLl9oZWFkZXJzcGFjZT8ucmVtb3ZlKCksdGhpcy5fdGl0bGU/LnJlbW92ZSgpLHRoaXMuX3Jlc2l6ZWhhbmRsZT8ucmVtb3ZlKCksdGhpcy5faGVhZGVyPW51bGwsdGhpcy5fd2lkZ2V0PW51bGwsdGhpcy5faGVhZGVyc3BhY2U9bnVsbCx0aGlzLl90aXRsZT1udWxsLHRoaXMuX3Jlc2l6ZWhhbmRsZT1udWxsLEMub2ZmV2lkZ2V0KHRoaXMpLHRoaXMuX3ByZWxvYWRUaW1lb3V0JiZjbGVhclRpbWVvdXQodGhpcy5fcHJlbG9hZFRpbWVvdXQpfXJkU3RhdGUoKXtyZXR1cm4gdGhpcy5fcmRTdGF0ZX1vbkFjdGl2ZVN0YXRlQ2hhbmdlKGUpe2NvbnN0IHQ9KHRoaXMuZ2V0V2lkZ2V0QmFyT3B0aW9uKCJ3aWRnZXRDb25maWciKXx8VClbdGhpcy50eXBlXTtlJiYhdC5kb05vdENsZWFyTm90aWZpY2F0aW9ucyYmdGhpcy5jbGVhck5vdGlmaWNhdGlvbnMoKSx0aGlzLnVwZGF0ZVZpc2libGVXYXRjaGVkVmFsdWUoKSx0aGlzLndpZGdldEFjdGl2ZT8uc2V0VmFsdWUoISFlKX10b2dnbGVNYXhpbWl6ZShlKXtjb25zdCB0PSJib29sZWFuIiE9dHlwZW9mIGU/IXRoaXMud2lkZ2V0TWF4aW1pemVkPy52YWx1ZSgpOmU7dCE9PXRoaXMud2lkZ2V0TWF4aW1pemVkPy52YWx1ZSgpJiYodGhpcy53aWRnZXRNYXhpbWl6ZWQ/LnNldFZhbHVlKHQpLHRoaXMud2lkZ2V0QmFyUGFnZSYmdGhpcy53aWRnZXRCYXJQYWdlLndpZGdldEJhckxheW91dCYmdGhpcy53aWRnZXRCYXJQYWdlLndpZGdldEJhckxheW91dC53aWRnZXRCYXImJnRoaXMud2lkZ2V0QmFyUGFnZS53aWRnZXRCYXJMYXlvdXQud2lkZ2V0QmFyLnNhdmVUb1RWU2V0dGluZ3MoKSx0aGlzLndpZGdldEJhclBhZ2UmJnRoaXMud2lkZ2V0QmFyUGFnZS51cGRhdGVXaWRnZXRzSGVpZ2h0KCkpfXN0YXJ0V2lkZ2V0KCl7aWYodGhpcy53aWRnZXRPYmplY3R8fHRoaXMud2lkZ2V0U3RhcnREZWxheWVkKXJldHVybjtpZighdGhpcy5pZClyZXR1cm47Y29uc3QgZT10aGlzLmdldFdpZGdldEJhck9wdGlvbigid2lkZ2V0Q29uZmlnIil8fFQ7aWYoIXRoaXMudHlwZSlyZXR1cm47Y29uc3QgdD1lW3RoaXMudHlwZV07aWYoIXQpcmV0dXJuO2NvbnN0IGk9dC5jdG9yO2lmKCFpKXJldHVybjtpZih0aGlzLndpZGdldFZpc2libGU9dGhpcy53aWRnZXRWaXNpYmxlfHxuZXcgZC5XYXRjaGVkVmFsdWUsdGhpcy51cGRhdGVWaXNpYmxlV2F0Y2hlZFZhbHVlKCksdC5sYXp5TG9hZCYmIXRoaXMud2lkZ2V0VmlzaWJsZS52YWx1ZSgpKXJldHVybiB0aGlzLndpZGdldFN0YXJ0RGVsYXllZD0hMCx0aGlzLndpZGdldFZpc2libGUud2hlbigoKCk9PntkZWxldGUgdGhpcy53aWRnZXRTdGFydERlbGF5ZWQsdGhpcy5zdGFydFdpZGdldCgpLGNsZWFyVGltZW91dCh0aGlzLl9wcmVsb2FkVGltZW91dCl9KSksdm9pZCh0LnByZWxvYWREZWxheSYmKHRoaXMuX3ByZWxvYWRUaW1lb3V0PXNldFRpbWVvdXQoKCgpPT57aS5wcmVsb2FkJiZpLnByZWxvYWQoKX0pLHQucHJlbG9hZERlbGF5KSkpO3RoaXMuc3ltYm9sTGlua2luZz1iLmxpbmtpbmcucHJvU3ltYm9sLnNwYXduKCksdGhpcy5pbnRlcnZhbExpbmtpbmc9Yi5saW5raW5nLmludGVydmFsLnNwYXduKCk7Y29uc3Qgcz10aGlzLl9yZFN0YXRlLmJyaWRnZSgpLGE9e2hlYWRlcjooMCxuLmVuc3VyZU5vdE51bGwpKHRoaXMuX2hlYWRlciksaGVhZGVyc3BhY2U6dGhpcy5faGVhZGVyc3BhY2Usd2lkZ2V0OigwLG4uZW5zdXJlTm90TnVsbCkodGhpcy5fd2lkZ2V0KSxjb250YWluZXI6cy5jb250YWluZXIudmFsdWUoKSxwcm9wZXJ0aWVzOnRoaXMucHJvcGVydGllcyxub3RpZnk6dGhpcy5ub3RpZnkuYmluZCh0aGlzKSxjbGVhck5vdGlmaWNhdGlvbnM6dGhpcy5jbGVhck5vdGlmaWNhdGlvbnMuYmluZCh0aGlzKSx2aXNpYmxlOnRoaXMud2lkZ2V0VmlzaWJsZS5yZWFkb25seSgpLGFjdGl2ZTooMCxuLmVuc3VyZU5vdE51bGwpKHRoaXMud2lkZ2V0QWN0aXZlKS5yZWFkb25seSgpLHN5bWJvbDp0aGlzLnN5bWJvbExpbmtpbmcsaW50ZXJ2YWw6dGhpcy5pbnRlcnZhbExpbmtpbmcsaGVpZ2h0OnMuaGVpZ2h0LHNldE1pbkhlaWdodDp0aGlzLnNldE1pbkhlaWdodC5iaW5kKHRoaXMpLHdpZHRoOnMud2lkdGgsc2V0VGl0bGU6dGhpcy5zZXRUaXRsZS5iaW5kKHRoaXMpLHNldFRpdGxlSHRtbDp0aGlzLnNldFRpdGxlSHRtbC5iaW5kKHRoaXMpLGlkOnRoaXMuaWQsdG9nZ2xlTWF4aW1pemU6dGhpcy50b2dnbGVNYXhpbWl6ZS5iaW5kKHRoaXMpLG1heGltaXplZDooMCxuLmVuc3VyZU5vdE51bGwpKHRoaXMud2lkZ2V0TWF4aW1pemVkKS5yZWFkb25seSgpLHBvc3RNZXNzYWdlOkMucG9zdE1lc3NhZ2UuYmluZCh0aGlzKSxvbk1lc3NhZ2U6Qy5vbk1lc3NhZ2UuYmluZCh0aGlzKSxvZmZNZXNzYWdlOkMub2ZmTWVzc2FnZS5iaW5kKHRoaXMpLGhpZGVEZXRhY2g6ITEsdW5BdXRoRWRpdGFibGU6dGhpcy51bkF1dGhFZGl0YWJsZX07aWYodC5jaGFydFdpZGdldEFsbG93ZWQpewpjb25zdCBlPSgpPT50aGlzLndpZGdldEJhclBhZ2UmJnRoaXMud2lkZ2V0QmFyUGFnZS53aWRnZXRCYXJMYXlvdXQmJnRoaXMud2lkZ2V0QmFyUGFnZS53aWRnZXRCYXJMYXlvdXQud2lkZ2V0QmFyJiZ0aGlzLndpZGdldEJhclBhZ2Uud2lkZ2V0QmFyTGF5b3V0LndpZGdldEJhci5jaGFydFdpZGdldENvbGxlY3Rpb247YS5nZXRDaGFydFdpZGdldD0oKT0+e2NvbnN0IHQ9ZSgpO3JldHVybiB0P3QuYWN0aXZlQ2hhcnRXaWRnZXQudmFsdWUoKTpudWxsfSxhLmdldENoYXJ0V2lkZ2V0Q29sbGVjdGlvbj0oKT0+ZSgpfHxudWxsfXZvaWQgMCE9PXRoaXMucmVhZG9ubHk/dGhpcy5yZWFkb25seSYmKGEucmVhZG9ubHk9ITApOnRoaXMuZ2V0V2lkZ2V0QmFyT3B0aW9uKCJyZWFkb25seSIpJiYoYS5yZWFkb25seT0hMCksdm9pZCAwIT09dC5vcHRpb25zJiYoYS5vcHRpb25zPXQub3B0aW9ucyksbnVsbCE9dGhpcy5zdGF0ZURhdGE/YS5kYXRhPXRoaXMuc3RhdGVEYXRhOm51bGwhPXQuZGF0YSYmKGEuZGF0YT10LmRhdGEpO2NvbnN0IG89dGhpcy53aWRnZXRPYmplY3Q9bmV3IGkoYSk7Imhhc0xpZmVjeWNsZSJpbiBvJiZ0aGlzLndpZGdldEFjdGl2ZT8ucmVhZG9ubHkoKS5zdWJzY3JpYmUoKGU9PntlP28ubW91bnQoKTpvLnVubW91bnQoKX0pLHtjYWxsV2l0aExhc3Q6IXQubGF6eUxvYWR9KSx0aGlzLl93aWRnZXRTdGFydGVkLmZpcmUodGhpcyl9d2lkZ2V0U3RhcnRlZCgpe3JldHVybiB0aGlzLl93aWRnZXRTdGFydGVkfW5vdGlmeShlLHQ9e30pe2lmKHRoaXMud2lkZ2V0QmFyUGFnZSYmKCF0aGlzLndpZGdldEJhclBhZ2UuaXNBY3RpdmVBbmRWaXNpYmxlKCl8fHQuZm9yY2UpKXJldHVybiB0aGlzLndpZGdldEJhclBhZ2Uubm90aWZ5KGUsdCl9Y2xlYXJOb3RpZmljYXRpb25zKCl7aWYodGhpcy53aWRnZXRCYXJQYWdlKXJldHVybiB0aGlzLndpZGdldEJhclBhZ2UuY2xlYXJOb3RpZmljYXRpb25zKCl9b25WaXNpYmlsaXR5Q2hhbmdlKCl7dGhpcy51cGRhdGVWaXNpYmxlV2F0Y2hlZFZhbHVlKCl9dXBkYXRlVmlzaWJsZVdhdGNoZWRWYWx1ZSgpe3RoaXMud2lkZ2V0VmlzaWJsZSYmdGhpcy53aWRnZXRWaXNpYmxlLnNldFZhbHVlKCEhdGhpcy53aWRnZXRCYXJQYWdlJiZ0aGlzLndpZGdldEJhclBhZ2UuaXNBY3RpdmVBbmRWaXNpYmxlKCkpfXNldFRpdGxlKGUpe3RoaXMuY3VzdG9tVGl0bGU9U3RyaW5nKGUpLHRoaXMuX3RpdGxlJiYodGhpcy5fdGl0bGUudGV4dENvbnRlbnQ9dGhpcy5nZXRUaXRsZSgpKX1zZXRUaXRsZUh0bWwoZSl7dGhpcy5fdGl0bGUmJigwLFMuaHRtbCkodGhpcy5fdGl0bGUsZSl9c2V0TWluSGVpZ2h0KGUpe2NvbnN0IHQ9dGhpcy53aWRnZXRCYXJQYWdlO3QmJih0aGlzLm1pbkhlaWdodD0wLHRoaXMubWluSGVpZ2h0PU1hdGgubWluKGUsdC5nZXRBdmFpbGFibGVIZWlnaHQoKSksdC51cGRhdGVXaWRnZXRzSGVpZ2h0KCkpfWdldFdpZGdldEJhck9wdGlvbihlKXtpZih0aGlzLndpZGdldEJhclBhZ2UmJnRoaXMud2lkZ2V0QmFyUGFnZS53aWRnZXRCYXJMYXlvdXQmJnRoaXMud2lkZ2V0QmFyUGFnZS53aWRnZXRCYXJMYXlvdXQud2lkZ2V0QmFyJiZlIGluIHRoaXMud2lkZ2V0QmFyUGFnZS53aWRnZXRCYXJMYXlvdXQud2lkZ2V0QmFyKXJldHVybiB0aGlzLndpZGdldEJhclBhZ2Uud2lkZ2V0QmFyTGF5b3V0LndpZGdldEJhcltlXX1nZXRUaXRsZShlKXtjb25zdCB0PWZ1bmN0aW9uKGUsdCl7dHJ5e3Q9dHx8VDtsZXQgaT10W2VdPy50aXRsZTtyZXR1cm4haSYmZSYmKGk9U3RyaW5nKGUpLm1hdGNoKC9bQS1aXXsyLH18XGQrKD86XC5cZCspP3xbQS1aXT9bYS16XSsvZyk/LmpvaW4oIiAiKS5yZXBsYWNlKC9eLnxccy4vZywoZT0+ZS50b1VwcGVyQ2FzZSgpKSkpLGl8fHZvaWQgMH1jYXRjaHtyZXR1cm59fSh0aGlzLnR5cGUsdGhpcy5nZXRXaWRnZXRCYXJPcHRpb24oIndpZGdldENvbmZpZyIpKTtyZXR1cm4gZSYmdGhpcy5jdXN0b21UaXRsZSYmdD90aGlzLmN1c3RvbVRpdGxlLnN1YnN0cmluZygwLHQubGVuZ3RoKT09PXQ/dGhpcy5jdXN0b21UaXRsZTp0KyI6ICIrdGhpcy5jdXN0b21UaXRsZTp0aGlzLmN1c3RvbVRpdGxlfHx0fHxhLnQobnVsbCx2b2lkIDAsaSg1OTI3NikpfWNyZWF0ZUhUTUwoKXtjb25zdCBlPXRoaXMud2lkZ2V0Q29uZmlnJiZ0aGlzLndpZGdldENvbmZpZy5lbXB0eUhlYWRlcix0PXRoaXMud2lkZ2V0Q29uZmlnJiZ0aGlzLndpZGdldENvbmZpZy5ub0hlYWRlcixpPXRoaXMud2lkZ2V0Q29uZmlnJiZ0aGlzLndpZGdldENvbmZpZy5ub0hlYWRlclNwYWNlLHM9dGhpcy5fd2lkZ2V0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3MuZGF0YXNldC50ZXN0SWRXaWRnZXRUeXBlPXRoaXMudHlwZSxzLmNsYXNzTGlzdC52YWx1ZT1tKCkoTC53aWRnZXQsIndpZGdldGJhci13aWRnZXQiLCJ3aWRnZXRiYXItd2lkZ2V0LSIrdGhpcy50eXBlKTtjb25zdCBuPXRoaXMuX2hlYWRlcj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtpZihuLmNsYXNzTGlzdC52YWx1ZT1MLndpZGdldEhlYWRlcixuLmFkZEV2ZW50TGlzdGVuZXIoImNvbnRleHRtZW51IiwoZT0+eyJpbnB1dCIhPT1lLnRhcmdldC50YWdOYW1lLnRvTG93ZXJDYXNlKCkmJmUucHJldmVudERlZmF1bHQoKX0pKSx0fHxzLmFwcGVuZENoaWxkKG4pLCFpKXtjb25zdCBlPXRoaXMuX2hlYWRlcnNwYWNlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2UuY2xhc3NMaXN0LnZhbHVlPSJ3aWRnZXRiYXItaGVhZGVyc3BhY2UiLGUuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLChlPT5lLnByZXZlbnREZWZhdWx0KCkpKSxuLmFwcGVuZENoaWxkKGUpfWlmKCFlKXtjb25zdCBlPXRoaXMuX3RpdGxlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2UuY2xhc3NMaXN0LnZhbHVlPSJ3aWRnZXRiYXItd2lkZ2V0dGl0bGUiLGUuZGF0YXNldC5uYW1lPXRoaXMudHlwZSsiX2hlYWRlciIsZS50ZXh0Q29udGVudD10aGlzLmdldFRpdGxlKCksbi5wcmVwZW5kKGUpfWNvbnN0IGE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IikKO2EuY2xhc3NMaXN0LnZhbHVlPSJ3aWRnZXRiYXItd2lkZ2V0Ym9keSIsYS5hZGRFdmVudExpc3RlbmVyKCJjb250ZXh0bWVudSIsKGU9PntlLnRhcmdldD09PWEmJmUucHJldmVudERlZmF1bHQoKX0pKSxzLmFwcGVuZENoaWxkKGEpLHRoaXMuX2ludGVybmFsU3RhdGUuY29udGFpbmVyLnNldFZhbHVlKGEpO2NvbnN0IG89dGhpcy5fcmVzaXplaGFuZGxlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO28uY2xhc3NMaXN0LnZhbHVlPSJ3aWRnZXRiYXItd2lkZ2V0aGFuZGxlIixvLmFkZEV2ZW50TGlzdGVuZXIoImNvbnRleHRtZW51IiwoZT0+e2UudGFyZ2V0PT09byYmZS5wcmV2ZW50RGVmYXVsdCgpfSkpLG51bGwhPT10aGlzLl9yZXNpemVyJiZ0aGlzLl9yZXNpemVyLmRlc3Ryb3koKSx0aGlzLl9yZXNpemVyPW5ldyB4LlBvaW50ZXJCYWNrZW5kKHtoYW5kbGU6byxvbkRyYWdTdGFydDplPT57dGhpcy53aWRnZXRCYXJQYWdlPy5oYW5kbGVXaWRnZXRSZXNpemVTdGFydCh0aGlzLGUpfSxvbkRyYWdNb3ZlOmU9Pnt0aGlzLndpZGdldEJhclBhZ2U/LmhhbmRsZVdpZGdldFJlc2l6ZUNoYW5nZSh0aGlzLGUpfSxvbkRyYWdTdG9wOmU9Pnt0aGlzLndpZGdldEJhclBhZ2U/LmhhbmRsZVdpZGdldFJlc2l6ZVN0b3AodGhpcyxlKX19KSxzLmFwcGVuZENoaWxkKG8pLCEwPT09dGhpcy5tYXhpbWl6ZWQmJih0aGlzLnRvZ2dsZU1heGltaXplKCEwKSxkZWxldGUgdGhpcy5tYXhpbWl6ZWQpfWRlbWFyc2hhbChlKXtpZigic3RyaW5nIj09dHlwZW9mIGUpdHJ5e2U9SlNPTi5wYXJzZShlKX1jYXRjaChlKXt9aWYoIWV8fCJvYmplY3QiIT10eXBlb2YgZSlyZXR1cm4gbnVsbDtsZXQgdDtpZigiaWQiaW4gZT8odGhpcy5pZD1TdHJpbmcoZS5pZCksdGhpcy50eXBlPXRoaXMuaWQucmVwbGFjZSgvXC4uKi8sIiIpKToidHlwZSJpbiBlPyh0aGlzLnR5cGU9U3RyaW5nKGUudHlwZSksdGhpcy5pZD10aGlzLnR5cGUrIi4iKygwLEUucmFuZG9tSGFzaCkoKSk6KGRlbGV0ZSB0aGlzLnR5cGUsZGVsZXRlIHRoaXMuaWQpLG51bGwhPWUucmVhZG9ubHk/dGhpcy5yZWFkb25seT0hIWUucmVhZG9ubHk6ZGVsZXRlIHRoaXMucmVhZG9ubHksdGhpcy5zdGF0ZURhdGE9ZS5kYXRhLGlzRmluaXRlKE51bWJlcihlLmhlaWdodFJhdGlvKSkmJk51bWJlcihlLmhlaWdodFJhdGlvKT49MD90aGlzLmhlaWdodFJhdGlvPU51bWJlcihlLmhlaWdodFJhdGlvKTp0aGlzLmhlaWdodFJhdGlvPUIuaGVpZ2h0UmF0aW8sITA9PT1lLm1heGltaXplZCYmKHRoaXMubWF4aW1pemVkPSEwKSwhMD09PWUudW5BdXRoRWRpdGFibGUmJih0aGlzLnVuQXV0aEVkaXRhYmxlPSEwKSxlLnNldHRpbmdzS2V5KXQ9U3RyaW5nKGUuc2V0dGluZ3NLZXkpO2Vsc2UgaWYodGhpcy5pZCl7Y29uc3QgZT10aGlzLmdldFdpZGdldEJhck9wdGlvbigiX3NldHRpbmdzUHJlZml4Iik7ZSYmKHQ9ZSsiLndpZGdldC4iK3RoaXMuaWQpfWlmKHRoaXMucHJvcGVydGllcz1uZXcgdyh7d2lkZ2V0QmFyV2lkZ2V0OnRoaXMsc2V0dGluZ3NLZXk6dH0pLG51bGw9PWUucHJvcGVydGllc3x8dCYmbnVsbCE9PXRoaXMucHJvcGVydGllcy52YWx1ZSgpfHx0aGlzLnByb3BlcnRpZXMuc2V0VmFsdWUoZS5wcm9wZXJ0aWVzKSwibmV3cyIhPT10aGlzLnR5cGUmJiJob3RsaXN0IiE9PXRoaXMudHlwZXx8IXR8fHRoaXMucHJvcGVydGllcy5zZXRWYWx1ZSgoMCxzLmRlZmF1bHQpKHt9LGUucHJvcGVydGllcyx0aGlzLnByb3BlcnRpZXMudmFsdWUoKSkpLCJob3RsaXN0Ij09PXRoaXMudHlwZSlpZighdCYmZS5wcm9wZXJ0aWVzKXRoaXMucHJvcGVydGllcy5zZXRWYWx1ZShlLnByb3BlcnRpZXMpO2Vsc2V7Y29uc3QgZT10aGlzLnByb3BlcnRpZXMudmFsdWUoKTsoImV4Y2hhbmdlQnlMb2NhbGUiaW4gZXx8Imdyb3VwQnlMb2NhbGUiaW4gZSkmJihkZWxldGUgZS5leGNoYW5nZUJ5TG9jYWxlLGRlbGV0ZSBlLmdyb3VwQnlMb2NhbGUsdGhpcy5wcm9wZXJ0aWVzLnNldFZhbHVlKGUpKX10aGlzLndpZGdldENvbmZpZz1udWxsO2NvbnN0IGk9dGhpcy5nZXRXaWRnZXRCYXJPcHRpb24oIndpZGdldENvbmZpZyIpO3JldHVybiB0aGlzLnR5cGUmJmkmJmlbdGhpcy50eXBlXSYmKHRoaXMud2lkZ2V0Q29uZmlnPWlbdGhpcy50eXBlXSksdGhpc31tYXJzaGFsKCl7Y29uc3QgZT17fTtyZXR1cm4gdGhpcy5pZCYmKGUuaWQ9dGhpcy5pZCksdGhpcy50eXBlJiYoZS50eXBlPXRoaXMudHlwZSksdGhpcy5oZWlnaHRSYXRpbyE9PUIuaGVpZ2h0UmF0aW8mJihlLmhlaWdodFJhdGlvPXRoaXMuaGVpZ2h0UmF0aW8pLHRoaXMud2lkZ2V0TWF4aW1pemVkPy52YWx1ZSgpJiYoZS5tYXhpbWl6ZWQ9ITApLGV9fUIuaGVpZ2h0UmF0aW89MTt2YXIgVz1pKDMxNDcyMCk7Y29uc3QgTj1wYXJzZUludChMWyJjc3MtdmFsdWUtd2lkZ2V0cy1tYXJnaW4iXSk7Y2xhc3MgUHtjb25zdHJ1Y3RvcihlKXt0aGlzLndpZGdldHM9W10sdGhpcy5ub3RpZmljYXRpb25Db3VudGVyPTAsdGhpcy5fcGFnZT1udWxsLHRoaXMuX2ludmFsaWRhdGVkPSExLHRoaXMuX3Jlc2l6ZU9wZXJhdGlvbnM9bmV3IFdlYWtNYXAsdGhpcy53aWRnZXRzPVtdLGUmJmUud2lkZ2V0QmFyTGF5b3V0JiYodGhpcy53aWRnZXRCYXJMYXlvdXQ9ZS53aWRnZXRCYXJMYXlvdXQpfXdpZGdldChlKXtmb3IoY29uc3QgdCBvZiB0aGlzLndpZGdldHMpaWYodC50eXBlPT09ZSlyZXR1cm4gdDtyZXR1cm4gbnVsbH1lbGVtZW50KCl7cmV0dXJuIHRoaXMuX3BhZ2V9Z2FFdmVudCgpe3JldHVybiB0aGlzLl9nYUV2ZW50fW9uQWN0aXZlU3RhdGVDaGFuZ2UoZSl7ZT0hIWUsdGhpcy5fcGFnZT8uY2xhc3NMaXN0LnRvZ2dsZSgiYWN0aXZlIiwhIWUpLCgwLG4uZW5zdXJlKSh0aGlzLnRhYikub25BY3RpdmVTdGF0ZUNoYW5nZShlKSxlJiZ0aGlzLnVwZGF0ZVdpZGdldHNIZWlnaHQoe3NraXBJZkhlaWdodFVuY2hhbmdlZDohMH0pLHRoaXMud2lkZ2V0cy5mb3JFYWNoKCh0PT57dC5vbkFjdGl2ZVN0YXRlQ2hhbmdlKGUpfSkpfWdldEF2YWlsYWJsZUhlaWdodCgpewpsZXQgZT10aGlzLndpZGdldEJhckxheW91dD8ud2lkZ2V0QmFyPy5yZXNpemVyQnJpZGdlLmhlaWdodC52YWx1ZSgpfHwwO2lmKCFlKXJldHVybiAwO2xldCB0PTA7cmV0dXJuIHRoaXMud2lkZ2V0cy5mb3JFYWNoKCgoaSxzKT0+e2UtPWkubWluSGVpZ2h0LHM+MCYmKGUtPU4pO2NvbnN0IG49aS5lbGVtZW50KCJoZWFkZXIiKTtuJiYodHx8KHQ9KDAsVy5vdXRlckhlaWdodCkobiwhMCkpLGUtPXQpfSkpLE1hdGgubWF4KGUsMCl9dXBkYXRlV2lkZ2V0c0hlaWdodChlPXt9KXtpZighdGhpcy5fcGFnZSlyZXR1cm47aWYoIXRoaXMud2lkZ2V0QmFyTGF5b3V0fHwhdGhpcy53aWRnZXRCYXJMYXlvdXQud2lkZ2V0QmFyKXJldHVybjtpZih0aGlzLndpZGdldEJhckxheW91dC5nZXRBY3RpdmVQYWdlKCkhPT10aGlzKXJldHVybiB2b2lkKHRoaXMuX2ludmFsaWRhdGVkPSEwKTtjb25zdCB0PXRoaXMud2lkZ2V0QmFyTGF5b3V0LndpZGdldEJhci5yZXNpemVyQnJpZGdlLmhlaWdodC52YWx1ZSgpO2lmKHRoaXMuX3BhZ2VIZWlnaHQ9PT10JiZlLnNraXBJZkhlaWdodFVuY2hhbmdlZHx8KHRoaXMuX2ludmFsaWRhdGVkPSEwLHRoaXMuX3BhZ2VIZWlnaHQ9dCksIXRoaXMuX2ludmFsaWRhdGVkKXJldHVybjtsZXQgaSxzPXQsYT0wLG89dGhpcy53aWRnZXRzLHI9bnVsbDtjb25zdCBsPW8uZXZlcnkoKGU9PjA9PT1lLmhlaWdodFJhdGlvKSk7Zm9yKGxldCBlPXRoaXMud2lkZ2V0cy5sZW5ndGg7ZS0tOylpZigoMCxuLmVuc3VyZU5vdE51bGwpKHRoaXMud2lkZ2V0c1tlXS53aWRnZXRNYXhpbWl6ZWQpLnZhbHVlKCkpe3I9dGhpcy53aWRnZXRzW2VdO2JyZWFrfWlmKG8ubGVuZ3RoPjAmJm51bGw9PT1yJiZsKXtjb25zdCBlPW9bby5sZW5ndGgtMV07ZS5oZWlnaHRSYXRpbz0xLHI9ZX1pZihyKXtmb3IobGV0IGU9dGhpcy53aWRnZXRzLmxlbmd0aDtlLS07KXtjb25zdCB0PW9bZV07dCE9PXImJnQuc2V0SGVpZ2h0KDApfW89W3JdfW8ubGVuZ3RoPjEmJihzLT0oby5sZW5ndGgtMSkqTik7Zm9yKGxldCBlPW8ubGVuZ3RoO2UtLTspe2NvbnN0IHQ9b1tlXSxuPXQuZWxlbWVudCgiaGVhZGVyIik7biYmKHZvaWQgMD09PWkmJihpPSgwLFcub3V0ZXJIZWlnaHQpKG4sITApKSxzLT1pLGErPXQuaGVpZ2h0UmF0aW8pfWNvbnN0IGQ9cy9hO3RoaXMuX3JlY2FsY3VsYXRlV2lkZ2V0c0hlaWdodFJhdGlvKGQpO2NvbnN0IGg9by5sZW5ndGgtMTtmb3IobGV0IGU9MDtlPD1oO2UrKyl7Y29uc3QgdD1vW2VdO2xldCBpO2k9ZT09PWg/czpNYXRoLnJvdW5kKGQqdC5oZWlnaHRSYXRpbyksaT1NYXRoLm1heChpLHQubWluSGVpZ2h0KSx0LnNldEhlaWdodChpKSxzLT1pfX1oYW5kbGVXaWRnZXRSZXNpemVTdGFydChlLHQpe2xldCBpLHM7Zm9yKGxldCB0PXRoaXMud2lkZ2V0cy5sZW5ndGgtMTt0PjA7dC0tKXRoaXMud2lkZ2V0c1t0XT09PWUmJihpPXRoaXMud2lkZ2V0c1t0XSxzPXRoaXMud2lkZ2V0c1t0LTFdKTsoMCxuLmFzc2VydCkodm9pZCAwIT09aSksKDAsbi5hc3NlcnQpKHZvaWQgMCE9PXMpO2NvbnN0IGE9cy5yZFN0YXRlKCkuYnJpZGdlKCkuaGVpZ2h0LnZhbHVlKCksbz1zLmhlaWdodFJhdGlvK2kuaGVpZ2h0UmF0aW8scj1hK2kucmRTdGF0ZSgpLmJyaWRnZSgpLmhlaWdodC52YWx1ZSgpOzA9PT1yJiZ0LnByZXZlbnREZWZhdWx0KCksdGhpcy5fcmVzaXplT3BlcmF0aW9ucy5zZXQoZSx7Ym90dG9tV2lkZ2V0OmksdG9wV2lkZ2V0OnMsc3VtbWFyeUhlaWdodDpyLHN1bW1hcnlSYXRpbzpvLHN0YXJ0VG9wV2lkZ2V0SGVpZ2h0OmEscHJldlRvcFdpZGdldEhlaWdodDp2b2lkIDB9KX1oYW5kbGVXaWRnZXRSZXNpemVDaGFuZ2UoZSx0KXtjb25zdCBpPXRoaXMuX3Jlc2l6ZU9wZXJhdGlvbnMuZ2V0KGUpO2lmKHZvaWQgMD09PWkpcmV0dXJuO3RoaXMuX3BhZ2U/LmNsYXNzTGlzdC5hZGQoIndpZGdldC1yZXNpemUtbW9kZSIpO2NvbnN0e2N1cnJlbnQ6cyxpbml0aWFsOm59PXQuZGV0YWlsLGE9cy5wYWdlWS1uLnBhZ2VZLG89TWF0aC5tYXgoaS50b3BXaWRnZXQubWluSGVpZ2h0LE1hdGgubWluKGkuc3RhcnRUb3BXaWRnZXRIZWlnaHQrYSxpLnN1bW1hcnlIZWlnaHQtaS5ib3R0b21XaWRnZXQubWluSGVpZ2h0KSk7aS5wcmV2VG9wV2lkZ2V0SGVpZ2h0IT09byYmKGkucHJldlRvcFdpZGdldEhlaWdodD1vLGkudG9wV2lkZ2V0LmhlaWdodFJhdGlvPW8vaS5zdW1tYXJ5SGVpZ2h0Kmkuc3VtbWFyeVJhdGlvLGkuYm90dG9tV2lkZ2V0LmhlaWdodFJhdGlvPWkuc3VtbWFyeVJhdGlvLWkudG9wV2lkZ2V0LmhlaWdodFJhdGlvLGkudG9wV2lkZ2V0LnNldEhlaWdodChvKSxpLmJvdHRvbVdpZGdldC5zZXRIZWlnaHQoaS5zdW1tYXJ5SGVpZ2h0LW8pKX1oYW5kbGVXaWRnZXRSZXNpemVTdG9wKGUsdCl7Y29uc3QgaT10aGlzLl9yZXNpemVPcGVyYXRpb25zLmdldChlKTt2b2lkIDAhPT1pJiYodGhpcy5fcmVzaXplT3BlcmF0aW9ucy5kZWxldGUoZSksdGhpcy5fcGFnZT8uY2xhc3NMaXN0LnJlbW92ZSgid2lkZ2V0LXJlc2l6ZS1tb2RlIiksaS5wcmV2VG9wV2lkZ2V0SGVpZ2h0IT09aS5zdGFydFRvcFdpZGdldEhlaWdodCYmKHRoaXMubm9ybWFsaXplUmF0aW9zKCksdGhpcy53aWRnZXRCYXJMYXlvdXQmJnRoaXMud2lkZ2V0QmFyTGF5b3V0LndpZGdldEJhciYmdGhpcy53aWRnZXRCYXJMYXlvdXQud2lkZ2V0QmFyLnNhdmVUb1RWU2V0dGluZ3MoKSkpfW5vcm1hbGl6ZVJhdGlvcygpe2xldCBlPTEvMDtmb3IobGV0IHQ9dGhpcy53aWRnZXRzLmxlbmd0aDt0LS07KXtjb25zdCBpPXRoaXMud2lkZ2V0c1t0XS5oZWlnaHRSYXRpbztpPD0wfHwhaXNGaW5pdGUoaSl8fGk8ZSYmKGU9aSl9aWYoIWlzRmluaXRlKGUpKXJldHVybjtsZXQgdD0xO2Zvcig7ZTwxOyllKj0yLHQqPTI7Zm9yKDtlPj0yOyllLz0yLHQvPTI7Zm9yKGxldCBlPXRoaXMud2lkZ2V0cy5sZW5ndGg7ZS0tOyl0aGlzLndpZGdldHNbZV0uaGVpZ2h0UmF0aW8qPXR9YXR0YWNoV2lkZ2V0KGUsdCl7dD1OdW1iZXIodCk7Y29uc3QgaT10aGlzLndpZGdldHMuaW5kZXhPZihlKQo7LTEhPT1pP3RoaXMud2lkZ2V0cy5zcGxpY2UoaSwxKTplLndpZGdldEJhclBhZ2UmJmUud2lkZ2V0QmFyUGFnZSE9PXRoaXMmJmUud2lkZ2V0QmFyUGFnZS5yZW1vdmVXaWRnZXQoZSksdDx0aGlzLndpZGdldHMubGVuZ3RoP3Q8MCYmKHQ9MCk6dD10aGlzLndpZGdldHMubGVuZ3RoLGRlbGV0ZSBlLndpZGdldEJhclBhZ2UsT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIndpZGdldEJhclBhZ2UiLHt2YWx1ZTp0aGlzLGNvbmZpZ3VyYWJsZTohMH0pLHRoaXMud2lkZ2V0cy5zcGxpY2UodCwwLGUpO2NvbnN0IHM9dGhpcy53aWRnZXRzW3QrMV0sbj1lLmVsZW1lbnQoIndpZGdldCIpO3M/biYmbi5pbnNlcnRBZGphY2VudEVsZW1lbnQoImJlZm9yZWJlZ2luIixzLmVsZW1lbnQoIndpZGdldCIpKTpuJiZ0aGlzLl9wYWdlPy5hcHBlbmRDaGlsZChuKSx0aGlzLnVwZGF0ZVdpZGdldHNIZWlnaHQoKSxlLnVwZGF0ZVZpc2libGVXYXRjaGVkVmFsdWUoKX1yZW1vdmVXaWRnZXQoZSl7Y29uc3QgdD10aGlzLndpZGdldHMuaW5kZXhPZihlKTstMSE9PXQmJihkZWxldGUgZS53aWRnZXRCYXJQYWdlLHRoaXMud2lkZ2V0cy5zcGxpY2UodCwxKSxlLmVsZW1lbnQoIndpZGdldCIpPy5yZW1vdmUoKSx0aGlzLnVwZGF0ZVdpZGdldHNIZWlnaHQoKSl9cmVtb3ZlKCl7dGhpcy53aWRnZXRCYXJMYXlvdXQmJnRoaXMud2lkZ2V0QmFyTGF5b3V0LnJlbW92ZVBhZ2UodGhpcyl9ZGVzdHJveSgpe3RoaXMucmVtb3ZlKCksdGhpcy5fcGFnZT8ucmVtb3ZlKCl9b25WaXNpYmlsaXR5Q2hhbmdlKGUpe2NvbnN0IHQ9ZSYmdGhpcy53aWRnZXRCYXJMYXlvdXQmJnRoaXMud2lkZ2V0QmFyTGF5b3V0LmdldEFjdGl2ZVBhZ2UoKT09PXRoaXM7dGhpcy53aWRnZXRzLmZvckVhY2goKGU9Pntjb25zdCBpPWUuZ2V0V2lkZ2V0QmFyT3B0aW9uKCJ3aWRnZXRDb25maWciKVtlLnR5cGVdO3QmJiFpLmRvTm90Q2xlYXJOb3RpZmljYXRpb25zT25WaXNpYmlsaXR5Q2hhbmdlJiZlLmNsZWFyTm90aWZpY2F0aW9ucygpLGUub25WaXNpYmlsaXR5Q2hhbmdlKCl9KSl9bm90aWZ5KGUsdD17fSl7ITAhPT10LmNsZWFyP3Quc3RvcEhpZ2hsaWdodFRhYnx8KHRoaXMubm90aWZpY2F0aW9uQ291bnRlcj10aGlzLm5vdGlmaWNhdGlvbkNvdW50ZXIrKH5+ZXx8MSksdGhpcy51cGRhdGVOb3RpZmljYXRpb25zKHQubm90aWZpY2F0aW9uVmFsdWUpKTp0aGlzLmNsZWFyTm90aWZpY2F0aW9ucygpfWNsZWFyTm90aWZpY2F0aW9ucygpe3RoaXMubm90aWZpY2F0aW9uQ291bnRlcj0wLCgwLG4uZW5zdXJlKSh0aGlzLnRhYikudXBkYXRlTm90aWZpY2F0aW9ucyh0aGlzLm5vdGlmaWNhdGlvbkNvdW50ZXIpLHRoaXMuX2NsZWFyTm90aWZpY2F0aW9uc0NvdW50ZXJBcmlhTGFiZWwoKX11cGRhdGVOb3RpZmljYXRpb25zKGUpe2NvbnN0IHQ9Im51bWJlciI9PXR5cGVvZiBlP2U6dGhpcy5ub3RpZmljYXRpb25Db3VudGVyOygwLG4uZW5zdXJlKSh0aGlzLnRhYikudXBkYXRlTm90aWZpY2F0aW9ucyh0KSx0aGlzLl91cGRhdGVOb3RpZmljYXRpb25zQ291bnRlckFyaWFMYWJlbCh0KX1nZXRXaWRnZXRzKGUpe2NvbnN0IHQ9W107Zm9yKGxldCBpPTA7aTx0aGlzLndpZGdldHMubGVuZ3RoOysraSl7Y29uc3Qgcz10aGlzLndpZGdldHNbaV07cy50eXBlPT09ZSYmdC5wdXNoKHMpfXJldHVybiB0fWlzQWN0aXZlQW5kVmlzaWJsZSgpe2NvbnN0IGU9dGhpcy53aWRnZXRCYXJMYXlvdXQ7cmV0dXJuISghZXx8IWUudmlzaWJsZSkmJmUuZ2V0QWN0aXZlUGFnZSgpPT09dGhpc31jcmVhdGVIVE1MKCl7Y29uc3QgZT10aGlzLl9wYWdlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2UuY2xhc3NMaXN0LnZhbHVlPSJ3aWRnZXRiYXItcGFnZSIsdGhpcy53aWRnZXRzLmZvckVhY2goKHQ9Pnt0LmNyZWF0ZUhUTUwoKTtjb25zdCBpPXQuZWxlbWVudCgid2lkZ2V0Iik7aSYmZS5hcHBlbmRDaGlsZChpKX0pKX1jcmVhdGVUYWJCdXR0b25WaWV3TW9kZWwoKXt0aGlzLnRhYj1uZXcgdSh7bmFtZTp0aGlzLm5hbWU/PyIiLHByb2R1Y3Q6bnVsbCxhcmVhOm51bGwsaWNvbjp0aGlzLmljb24saGludDp0aGlzLnRpdGxlLG9uQ2xpY2s6KCk9Pnt0aGlzLndpZGdldEJhckxheW91dCYmdGhpcy53aWRnZXRCYXJMYXlvdXQub25UYWJDbGljayh0aGlzKX0sVGFiQnV0dG9uQ29tcG9uZW50OnRoaXMuVGFiQnV0dG9uQ29tcG9uZW50fSl9ZGVtYXJzaGFsKGUpe2lmKCJzdHJpbmciPT10eXBlb2YgZSl0cnl7ZT1KU09OLnBhcnNlKGUpfWNhdGNoKGUpe31pZigib2JqZWN0IiE9dHlwZW9mIGV8fCFlLndpZGdldHN8fCFBcnJheS5pc0FycmF5KGUud2lkZ2V0cykpcmV0dXJuIG51bGw7Y29uc3QgdD10aGlzLndpZGdldHM7cmV0dXJuIHQuc3BsaWNlKDAsdC5sZW5ndGgpLHRoaXMuX2dhRXZlbnQ9ZS5fZ2FFdmVudCx0aGlzLnRpdGxlPWUudGl0bGUsdGhpcy5uYW1lPWUubmFtZSx0aGlzLmljb249ZS5pY29uLHRoaXMuc3BhY2VCb3R0b209ZS5zcGFjZUJvdHRvbSx0aGlzLnNwYWNlQm90dG9tVGV4dD1lLnNwYWNlQm90dG9tVGV4dCx0aGlzLlRhYkJ1dHRvbkNvbXBvbmVudD1lLlRhYkJ1dHRvbkNvbXBvbmVudCx0aGlzLl9jcmVhdGVOb3RpZmljYXRpb25Db3VudGVyQXJpYUxhYmVsPWUuY3JlYXRlQ291bnRlckFyaWFMYWJlbCx0aGlzLmNyZWF0ZVRhYkJ1dHRvblZpZXdNb2RlbCgpLGUud2lkZ2V0cy5mb3JFYWNoKChlPT57Y29uc3QgaT1uZXcgQih7d2lkZ2V0QmFyUGFnZTp0aGlzfSkuZGVtYXJzaGFsKGUpO2kmJnQucHVzaChpKX0pKSwwPT09dC5sZW5ndGg/bnVsbDp0aGlzfW1hcnNoYWwoKXtjb25zdCBlPVtdO3JldHVybiB0aGlzLndpZGdldHMuZm9yRWFjaCgodD0+e2NvbnN0IGk9dC5tYXJzaGFsKCk7aSYmZS5wdXNoKGkpfSkpLDA9PT1lLmxlbmd0aD9udWxsOmV9X3JlY2FsY3VsYXRlV2lkZ2V0c0hlaWdodFJhdGlvKGUpe2NvbnN0IHQ9dGhpcy53aWRnZXRzO3QubGVuZ3RoPD0xfHx0LmZvckVhY2goKChpLHMpPT57aWYoZSppLmhlaWdodFJhdGlvPj1pLm1pbkhlaWdodClyZXR1cm47bGV0IG49aS5taW5IZWlnaHQvZS1pLmhlaWdodFJhdGlvO2ZvcihsZXQgaT0wO2k8dC5sZW5ndGg7aSsrKXsKaWYoaT09PXMpY29udGludWU7Y29uc3QgYT10W2ldLG89YS5oZWlnaHRSYXRpby1hLm1pbkhlaWdodC9lO2lmKCEobzw9MCkmJihhLmhlaWdodFJhdGlvLT1NYXRoLm1pbihuLG8pLHRbc10uaGVpZ2h0UmF0aW8rPU1hdGgubWluKG4sbyksbi09byxuPD0wKSlicmVha319KSl9X3VwZGF0ZU5vdGlmaWNhdGlvbnNDb3VudGVyQXJpYUxhYmVsKGUpe3RoaXMuX2NyZWF0ZU5vdGlmaWNhdGlvbkNvdW50ZXJBcmlhTGFiZWwmJih0aGlzLm5vdGlmaWNhdGlvbkNvdW50ZXJBcmlhTGFiZWw9dGhpcy5fY3JlYXRlTm90aWZpY2F0aW9uQ291bnRlckFyaWFMYWJlbChlKSwoMCxuLmVuc3VyZSkodGhpcy50YWIpLnVwZGF0ZU5vdGlmaWNhdGlvbkNvdW50ZXJBcmlhTGFiZWwodGhpcy5ub3RpZmljYXRpb25Db3VudGVyQXJpYUxhYmVsKSl9X2NsZWFyTm90aWZpY2F0aW9uc0NvdW50ZXJBcmlhTGFiZWwoKXt0aGlzLm5vdGlmaWNhdGlvbkNvdW50ZXJBcmlhTGFiZWw9IiIsKDAsbi5lbnN1cmUpKHRoaXMudGFiKS51cGRhdGVOb3RpZmljYXRpb25Db3VudGVyQXJpYUxhYmVsKHRoaXMubm90aWZpY2F0aW9uQ291bnRlckFyaWFMYWJlbCl9fXZhciBEPWkoOTMwMjMxKSxNPWkoMjE2MDgzKSxJPWkoMjIxODk2KSxrPWkoMjIxMDYxKSxWPWkoMzYzMjY5KSxBPWkoMzEyOTMyKSxIPWkoNzg5OTM0KTtmdW5jdGlvbiB6KGUpe3JldHVybiByLmNyZWF0ZUVsZW1lbnQoQS5DbG9zZUJ1dHRvbix7Y2xhc3NOYW1lOm0oKShlLmNsYXNzTmFtZSxILmJ1dHRvbiksb25DbGljazplLm9uQ2xpY2ssYXJpYUxhYmVsOmEudChudWxsLHtjb250ZXh0OiJhY3Rpb24ifSxpKDEyNzgyMCkpLHNpemU6Im1lZGl1bSIscHJlc2VydmVQYWRkaW5nczohMCwiZGF0YS1yb2xlIjoiYnV0dG9uIiwiZGF0YS1uYW1lIjplLm5hbWV9KX12YXIgUj1pKDM0NDk0NyksTz1pKDI4MTg5NCk7ZnVuY3Rpb24gRihlKXtyZXR1cm4gci5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6bSgpKGUuY2xhc3NOYW1lLE8uc2VwYXJhdG9yKX0pfXZhciBqPWkoNTA1NTM2KTtmdW5jdGlvbiBVKGUpe3JldHVybiByLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTptKCkoai5maWxsZXIsZS5jbGFzc05hbWUpfSl9ZnVuY3Rpb24gSyhlLHQpe3JldHVybiBjbGFzcyBleHRlbmRzIHIuUHVyZUNvbXBvbmVudHtjb25zdHJ1Y3RvcihlKXtzdXBlcihlKSx0aGlzLl9iaW5kZWRGb3JjZVVwZGF0ZT0oKT0+dGhpcy5mb3JjZVVwZGF0ZSgpLHRoaXMuc3RhdGU9e3ZpZXdNb2RlbDp0fX1jb21wb25lbnREaWRNb3VudCgpe2NvbnN0e3ZpZXdNb2RlbDplfT10aGlzLnN0YXRlO2Uubm90aWZpY2F0aW9uc0NvdW50LnN1YnNjcmliZSh0aGlzLl9iaW5kZWRGb3JjZVVwZGF0ZSksZS5ub3RpZmljYXRpb25Db3VudGVyQXJpYUxhYmVsLnN1YnNjcmliZSh0aGlzLl9iaW5kZWRGb3JjZVVwZGF0ZSksZS5pc0FjdGl2ZS5zdWJzY3JpYmUodGhpcy5fYmluZGVkRm9yY2VVcGRhdGUpLGUuaXNDb2xsYXBzZWQuc3Vic2NyaWJlKHRoaXMuX2JpbmRlZEZvcmNlVXBkYXRlKSxlLmlzRGlzYWJsZWQuc3Vic2NyaWJlKHRoaXMuX2JpbmRlZEZvcmNlVXBkYXRlKSxlLnZpc2libGUuc3Vic2NyaWJlKHRoaXMuX2JpbmRlZEZvcmNlVXBkYXRlKX1jb21wb25lbnRXaWxsVW5tb3VudCgpe2NvbnN0e3ZpZXdNb2RlbDplfT10aGlzLnN0YXRlO2Uubm90aWZpY2F0aW9uc0NvdW50LnVuc3Vic2NyaWJlKHRoaXMuX2JpbmRlZEZvcmNlVXBkYXRlKSxlLm5vdGlmaWNhdGlvbkNvdW50ZXJBcmlhTGFiZWwudW5zdWJzY3JpYmUodGhpcy5fYmluZGVkRm9yY2VVcGRhdGUpLGUuaXNBY3RpdmUudW5zdWJzY3JpYmUodGhpcy5fYmluZGVkRm9yY2VVcGRhdGUpLGUuaXNDb2xsYXBzZWQudW5zdWJzY3JpYmUodGhpcy5fYmluZGVkRm9yY2VVcGRhdGUpLGUuaXNEaXNhYmxlZC51bnN1YnNjcmliZSh0aGlzLl9iaW5kZWRGb3JjZVVwZGF0ZSksZS52aXNpYmxlLnVuc3Vic2NyaWJlKHRoaXMuX2JpbmRlZEZvcmNlVXBkYXRlKX1yZW5kZXIoKXtjb25zdHt2aWV3TW9kZWw6dH09dGhpcy5zdGF0ZTtpZighdC52aXNpYmxlLnZhbHVlKCkpcmV0dXJuIG51bGw7Y29uc3QgaT10Lm5vdGlmaWNhdGlvbnNDb3VudC52YWx1ZSgpLHM9dC5ub3RpZmljYXRpb25Db3VudGVyQXJpYUxhYmVsLnZhbHVlKCk7cmV0dXJuIHIuY3JlYXRlRWxlbWVudChlLHsuLi50aGlzLnByb3BzLGljb246dC5pY29uLnZhbHVlKCksaXNEaXNhYmxlZDp0LmlzRGlzYWJsZWQudmFsdWUoKSxpc0FjdGl2ZTp0LmlzQWN0aXZlLnZhbHVlKCksaXNDb2xsYXBzZWQ6dC5pc0NvbGxhcHNlZC52YWx1ZSgpLG9uQ2xpY2s6dC5vbkNsaWNrLnZhbHVlKCksaGludDp0LmhpbnQudmFsdWUoKSxjb3VudDppLGNvdW50ZXJBcmlhTGFiZWw6c30pfX19dmFyIFo9aSg3MjE5MTApLEo9aSgxODIzMDgpLEc9aSg5OTU3MTkpLHE9aSgyNTE1MjgpO2NvbnN0IFk9KDAsci5mb3J3YXJkUmVmKSgoZnVuY3Rpb24oZSx0KXtjb25zdHtjbGFzc05hbWU6aSxuYW1lOnMsY291bnQ6bixvbkNsaWNrOmEsaGludDpvLGljb246bCxpc0FjdGl2ZTpkLGlzQ29sbGFwc2VkOmgsaXNEaXNhYmxlSW50ZXJhY3Rpb246Yyxjb3VudGVyQXJpYUxhYmVsOnUsLi4uZ309ZSxbcCxfXT0oMCxKLnVzZVJvdmluZ1RhYmluZGV4RWxlbWVudCkodCk7cmV0dXJuIHIuY3JlYXRlRWxlbWVudChHLlRvb2xXaWRnZXRCdXR0b24sey4uLmcsImFyaWEtbGFiZWwiOm8scmVmOnAsY2xhc3NOYW1lOm0oKShpLHEuYnV0dG9uLGgmJnEuY29sbGFwc2VkLCFCb29sZWFuKGEpJiZxLmluZXJ0KSx0YWc6ImJ1dHRvbiIsaXNBY3RpdmU6ZCxpc0Rpc2FibGVJbnRlcmFjdGlvbjpjfHwhQm9vbGVhbihhKSxpY29uOmwsb25DbGljazphLGZvcmNlSW50ZXJhY3RpdmU6ITAsImRhdGEtbmFtZSI6cywiYXJpYS1wcmVzc2VkIjpkLCJkYXRhLXRvb2x0aXAiOm8sdG9vbHRpcFBvc2l0aW9uOiJ2ZXJ0aWNhbCIsdGFiSW5kZXg6X30sbj9yLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpxLmNvdW50ZXJSb3d9LHIuY3JlYXRlRWxlbWVudChaLkNvdW50ZXIse2NvdW50Om4sImFyaWEtbGFiZWwiOnUsc2l6ZToic21hbGwiLApjb21wYWN0OiEwfSkpOm51bGwpfSkpO3ZhciAkPWkoNTE4NzUpLFE9aSg2ODk4OTQpLFg9aSg1Njk2NTIpLGVlPWkoMjczMzEwKSx0ZT1pKDI0MDM4KSxpZT1pKDMwNjQ2Mik7Y29uc3Qgc2U9ci5sYXp5KChhc3luYygpPT4oe2RlZmF1bHQ6KGF3YWl0IFByb21pc2UuYWxsKFtpLmUoNzk5NzkpLGkuZSg4NDMwNiksaS5lKDQ2OTA3KSxpLmUoODEwNzIpLGkuZSgyMzYyNCksaS5lKDUxODQpLGkuZSgxNzA4NyksaS5lKDcxNDE0KSxpLmUoODkyMDQpLGkuZSg2OTg2MSksaS5lKDIwMiksaS5lKDcwNjU2KSxpLmUoODEyNDcpLGkuZSg2NzkyNSksaS5lKDI5MzE1KSxpLmUoMjU0ODUpLGkuZSgzNTk2NCksaS5lKDM0OTI5KSxpLmUoNTc0ODQpXSkudGhlbihpLmJpbmQoaSw4MDc1NzQpKSkuUHJvZHVjdHNCdXR0b259KSkpO2Z1bmN0aW9uIG5lKGUpe3JldHVybiByLmNyZWF0ZUVsZW1lbnQoci5TdXNwZW5zZSx7ZmFsbGJhY2s6ci5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6aWUuYnV0dG9ufSxyLmNyZWF0ZUVsZW1lbnQoZWUuSWNvbix7Y2xhc3NOYW1lOmllLmJ1dHRvbkljb24saWNvbjp0ZX0pKX0sci5jcmVhdGVFbGVtZW50KHNlLHsuLi5lfSkpfXZhciBhZT1pKDk3Nzc0Miksb2U9aSg3MzAwMDkpLHJlPWkoNTU1Njc3KTtjb25zdCBsZT0oMCxrLmdldExvZ2dlcikoIlBsYXRmb3JtLkdVSS5SaWdodFRvb2xiYXIiKSxkZT0oMCxYLnJlZ2lzdHJ5Q29udGV4dFR5cGUpKCk7Y2xhc3MgaGUgZXh0ZW5kcyByLlB1cmVDb21wb25lbnR7Y29uc3RydWN0b3IoZSx0KXtzdXBlcihlLHQpLHRoaXMuX3BhZ2VzPXt9LHRoaXMuX2hhbmRsZU1vdXNlT3Zlcj1lPT57KDAsUS5ob3Zlck1vdXNlRXZlbnRGaWx0ZXIpKGUpJiZ0aGlzLnNldFN0YXRlKHtpc0hvdmVyZWQ6ITB9KX0sdGhpcy5faGFuZGxlTW91c2VPdXQ9ZT0+eygwLFEuaG92ZXJNb3VzZUV2ZW50RmlsdGVyKShlKSYmdGhpcy5zZXRTdGF0ZSh7aXNIb3ZlcmVkOiExfSl9LHRoaXMuX2hhbmRsZUZ1bGxzY3JlZW5DaGFuZ2U9ZT0+e3RoaXMuc2V0U3RhdGUoe2lzRnVsbHNjcmVlbjplfSl9LHRoaXMuX2hhbmRsZVZpc2liaWxpdHlDaGFuZ2U9KCk9Pnt0aGlzLl90b29sc2V0PXRoaXMuX2NyZWF0ZVRvb2xzZXQoKSx0aGlzLmZvcmNlVXBkYXRlKCl9LHRoaXMuX2hhbmRsZURpc2FibGVkQ2hhbmdlPSgpPT57dGhpcy5fdG9vbHNldD10aGlzLl9jcmVhdGVUb29sc2V0KCksdGhpcy5mb3JjZVVwZGF0ZSgpfSx0aGlzLl9oYW5kbGVBY3RpdmVDaGFuZ2U9KCk9Pnt0aGlzLl90b29sc2V0PXRoaXMuX2NyZWF0ZVRvb2xzZXQoKSx0aGlzLmZvcmNlVXBkYXRlKCl9LHRoaXMuX2hhbmRsZUNvbGxhcHNlZENoYW5nZT0oKT0+e3RoaXMuZm9yY2VVcGRhdGUoKX0sdGhpcy5faGFuZGxlRmF2b3JpdGVQcm9kdWN0c0NoYW5nZT1lPT57dGhpcy5zZXRTdGF0ZSh7ZmF2b3JpdGVQcm9kdWN0czpuZXcgU2V0KGUpfSl9LHRoaXMuX2hhbmRsZUNsb3NlQ2xpY2s9KCk9Pntjb25zdHt3aWRnZXRCYXI6ZX09dGhpcy5jb250ZXh0OygwLG4uZW5zdXJlRGVmaW5lZCkoZS5sYXlvdXQpLnNldE1pbmltaXplZFN0YXRlKCEwKX0sKDAsWC52YWxpZGF0ZVJlZ2lzdHJ5KSh0LHt3aWRnZXRCYXI6SS5hbnkuaXNSZXF1aXJlZH0pO2NvbnN0e3dpZGdldEJhcjppfT10aGlzLmNvbnRleHQ7dGhpcy5faXNNaW5pbWl6ZWQ9KDAsbi5lbnN1cmVEZWZpbmVkKShpLmxheW91dCkuaXNNaW5pbWl6ZWQuc3Bhd24oKSx0aGlzLl9pc0Z1bGxzY3JlZW49aS5yZXNpemVyQnJpZGdlLmZ1bGxzY3JlZW4uc3Bhd24oKSx0aGlzLnN0YXRlPXtpc0hvdmVyZWQ6ITEsaXNGdWxsc2NyZWVuOnRoaXMuX2lzRnVsbHNjcmVlbi52YWx1ZSgpLGZhdm9yaXRlUHJvZHVjdHM6bmV3IFNldCgoMCxhZS5mYXZvcml0ZVByb2R1Y3RzU2VydmljZSkoKS5nZXQoKSl9LCgwLG4uZW5zdXJlRGVmaW5lZCkoaS5sYXlvdXQpLnBhZ2VzLmZvckVhY2goKGU9Pnt2b2lkIDA9PT1lLm5hbWUmJmxlLmxvZ1dhcm4oJ1BhZ2UgZG9lcyBub3QgcHJvdmlkZSByZXF1aXJlZCBmaWVsZCAibmFtZSInKTtjb25zdCB0PWUudGFiO3RoaXMuX3BhZ2VzW2UubmFtZV09Syh0LlRhYkJ1dHRvbkNvbXBvbmVudD8/WSx0KX0pKSx0aGlzLl90b29sc2V0PXRoaXMuX2NyZWF0ZVRvb2xzZXQoKX1jb21wb25lbnREaWRNb3VudCgpe3RoaXMuX2lzRnVsbHNjcmVlbi5zdWJzY3JpYmUodGhpcy5faGFuZGxlRnVsbHNjcmVlbkNoYW5nZSksKDAsYWUuZmF2b3JpdGVQcm9kdWN0c1NlcnZpY2UpKCkuZ2V0T25DaGFuZ2UoKS5zdWJzY3JpYmUobnVsbCx0aGlzLl9oYW5kbGVGYXZvcml0ZVByb2R1Y3RzQ2hhbmdlKTtmb3IoY29uc3QgZSBvZiB0aGlzLnByb3BzLm1vZGVscyllLnZpc2libGUuc3Vic2NyaWJlKHRoaXMuX2hhbmRsZVZpc2liaWxpdHlDaGFuZ2UpLGUuaXNEaXNhYmxlZC5zdWJzY3JpYmUodGhpcy5faGFuZGxlRGlzYWJsZWRDaGFuZ2UpLGUuaXNBY3RpdmUuc3Vic2NyaWJlKHRoaXMuX2hhbmRsZUFjdGl2ZUNoYW5nZSksZS5pc0NvbGxhcHNlZC5zdWJzY3JpYmUodGhpcy5faGFuZGxlQ29sbGFwc2VkQ2hhbmdlKX1jb21wb25lbnREaWRVcGRhdGUoZSx0KXtmb3IoY29uc3QgdCBvZiBlLm1vZGVscyl0LnZpc2libGUudW5zdWJzY3JpYmUodGhpcy5faGFuZGxlVmlzaWJpbGl0eUNoYW5nZSksdC5pc0Rpc2FibGVkLnVuc3Vic2NyaWJlKHRoaXMuX2hhbmRsZURpc2FibGVkQ2hhbmdlKSx0LmlzQWN0aXZlLnVuc3Vic2NyaWJlKHRoaXMuX2hhbmRsZUFjdGl2ZUNoYW5nZSksdC5pc0NvbGxhcHNlZC51bnN1YnNjcmliZSh0aGlzLl9oYW5kbGVDb2xsYXBzZWRDaGFuZ2UpO2Zvcihjb25zdCBlIG9mIHRoaXMucHJvcHMubW9kZWxzKWUudmlzaWJsZS5zdWJzY3JpYmUodGhpcy5faGFuZGxlVmlzaWJpbGl0eUNoYW5nZSksZS5pc0Rpc2FibGVkLnN1YnNjcmliZSh0aGlzLl9oYW5kbGVEaXNhYmxlZENoYW5nZSksZS5pc0FjdGl2ZS5zdWJzY3JpYmUodGhpcy5faGFuZGxlQWN0aXZlQ2hhbmdlKSxlLmlzQ29sbGFwc2VkLnN1YnNjcmliZSh0aGlzLl9oYW5kbGVDb2xsYXBzZWRDaGFuZ2UpfWNvbXBvbmVudFdpbGxVbm1vdW50KCl7CnRoaXMuX2lzRnVsbHNjcmVlbi5kZXN0cm95KCksdGhpcy5faXNNaW5pbWl6ZWQuZGVzdHJveSgpLCgwLGFlLmZhdm9yaXRlUHJvZHVjdHNTZXJ2aWNlKSgpLmdldE9uQ2hhbmdlKCkudW5zdWJzY3JpYmUobnVsbCx0aGlzLl9oYW5kbGVGYXZvcml0ZVByb2R1Y3RzQ2hhbmdlKTtmb3IoY29uc3QgZSBvZiB0aGlzLnByb3BzLm1vZGVscyllLnZpc2libGUudW5zdWJzY3JpYmUodGhpcy5faGFuZGxlVmlzaWJpbGl0eUNoYW5nZSksZS5pc0Rpc2FibGVkLnVuc3Vic2NyaWJlKHRoaXMuX2hhbmRsZURpc2FibGVkQ2hhbmdlKSxlLmlzQWN0aXZlLnVuc3Vic2NyaWJlKHRoaXMuX2hhbmRsZUFjdGl2ZUNoYW5nZSksZS5pc0NvbGxhcHNlZC51bnN1YnNjcmliZSh0aGlzLl9oYW5kbGVDb2xsYXBzZWRDaGFuZ2UpfXJlbmRlcigpe2NvbnN0e2NsYXNzTmFtZTplfT10aGlzLnByb3BzLHtpc0hvdmVyZWQ6dCxpc0Z1bGxzY3JlZW46aSxmYXZvcml0ZVByb2R1Y3RzOnN9PXRoaXMuc3RhdGUse3dpZGdldEJhcjpufT10aGlzLmNvbnRleHQse2Zhdm9yaXRhYmxlQnV0dG9uczphLGJ1dHRvbnM6b309dGhpcy5fdG9vbHNldDtyZXR1cm4gci5jcmVhdGVFbGVtZW50KFIuVmVydGljYWxTY3JvbGwse2lzVmlzaWJsZUZhZGU6Vi5tb2JpbGV0b3VjaCxpc1Zpc2libGVCdXR0b25zOiFWLm1vYmlsZXRvdWNoJiZ0LGlzVmlzaWJsZVNjcm9sbGJhcjohMSxvbk1vdXNlT3Zlcjp0aGlzLl9oYW5kbGVNb3VzZU92ZXIsb25Nb3VzZU91dDp0aGlzLl9oYW5kbGVNb3VzZU91dH0sci5jcmVhdGVFbGVtZW50KG9lLlRvb2xiYXIse2NsYXNzTmFtZTptKCkoZSxyZS50b29sYmFyKSxvbkNvbnRleHRNZW51OiQucHJldmVudERlZmF1bHRGb3JDb250ZXh0TWVudSxvcmllbnRhdGlvbjoidmVydGljYWwiLCJkYXRhLW5hbWUiOiJyaWdodC10b29sYmFyIn0sbi5hZGFwdGl2ZSYmaSYmci5jcmVhdGVFbGVtZW50KHose25hbWU6ImNsb3NlLWJ1dHRvbiIsb25DbGljazp0aGlzLl9oYW5kbGVDbG9zZUNsaWNrfSksdGhpcy5fcmVuZGVyUGFnZXMoKSxyLmNyZWF0ZUVsZW1lbnQoVSxudWxsKSxhLm1hcCgoKHtDb21wb25lbnQ6ZSxuYW1lOnQscHJvZHVjdElkOmksdmlld01vZGVsOm59KT0+e2NvbnN0IGE9cy5oYXMoaSksbz1uLmlzQ29sbGFwc2VkLnZhbHVlKCk7cmV0dXJuKGF8fG8pJiZyLmNyZWF0ZUVsZW1lbnQoZSx7a2V5OnQsbmFtZTp0fSl9KSksYS5sZW5ndGg+MCYmci5jcmVhdGVFbGVtZW50KG5lLHtwcm9kdWN0czphLGZhdm9yaXRlUHJvZHVjdHM6c30pLGEubGVuZ3RoPjAmJm8ubGVuZ3RoPjAmJnIuY3JlYXRlRWxlbWVudChGLHtrZXk6Imdyb3VwLXNlcGFyYXRvciJ9KSxvLm1hcCgoKHtDb21wb25lbnQ6ZSxuYW1lOnR9KT0+ci5jcmVhdGVFbGVtZW50KGUse2tleTp0LG5hbWU6dH0pKSkpKX1fcmVuZGVyUGFnZXMoKXtjb25zdCBlPVtdLHt3aWRnZXRCYXI6dH09dGhpcy5jb250ZXh0LHtwYWdlczppfT0oMCxuLmVuc3VyZURlZmluZWQpKHQubGF5b3V0KTtyZXR1cm4gaS5mb3JFYWNoKCh0PT57Y29uc3QgaT10Lm5hbWU7aWYoaSBpbiB0aGlzLl9wYWdlcyl7Y29uc3Qgcz10aGlzLl9wYWdlc1tpXTtlLnB1c2goci5jcmVhdGVFbGVtZW50KHMse25hbWU6aSxrZXk6aX0pKSx0LnNwYWNlQm90dG9tJiZlLnB1c2goci5jcmVhdGVFbGVtZW50KEYse2tleTp0LnNwYWNlQm90dG9tVGV4dH0pKX19KSksZX1fY3JlYXRlVG9vbHNldCgpe2NvbnN0IGU9W10sdD1bXTtyZXR1cm4gdGhpcy5wcm9wcy5tb2RlbHMuZm9yRWFjaCgoaT0+e2lmKCFpLnZpc2libGUudmFsdWUoKSlyZXR1cm47Y29uc3Qgcz1LKGkuVGFiQnV0dG9uQ29tcG9uZW50fHxZLGkpO2kucHJvZHVjdD9lLnB1c2goe25hbWU6aS5uYW1lLENvbXBvbmVudDpzLHByb2R1Y3RJZDppLnByb2R1Y3Qsc3BsaXRQYW5lbEFyZWFJZDppLmFyZWEsdmlld01vZGVsOmksaXNOZXc6aS5pc05ld30pOnQucHVzaCh7bmFtZTppLm5hbWUsQ29tcG9uZW50OnN9KX0pKSx7ZmF2b3JpdGFibGVCdXR0b25zOmUsYnV0dG9uczp0fX19aGUuY29udGV4dFR5cGU9ZGU7Y29uc3QgY2U9e3dpZGdldEJhcjpJLmFueX07Y2xhc3MgdWUgZXh0ZW5kcyByLlB1cmVDb21wb25lbnR7Y29uc3RydWN0b3IoZSl7c3VwZXIoZSksdGhpcy5fcmVnaXN0cnk9e3dpZGdldEJhcjp0aGlzLnByb3BzLndpZGdldEJhcn19cmVuZGVyKCl7cmV0dXJuIHIuY3JlYXRlRWxlbWVudChYLlJlZ2lzdHJ5UHJvdmlkZXIse3ZhbGlkYXRpb246Y2UsdmFsdWU6dGhpcy5fcmVnaXN0cnl9LHRoaXMucHJvcHMuY2hpbGRyZW4pfX1jb25zdCBnZT0oMCxELmlzRmVhdHVyZXNldEVuYWJsZWQpKCJoaWRlX3JpZ2h0X3Rvb2xiYXJfdGFicyIpO2NsYXNzIG1le2NvbnN0cnVjdG9yKGUsdCl7dGhpcy5fd2lkZ2V0QmFyPWUsdGhpcy5fY29udGFpbmVyPXQsZ2V8fHRoaXMuX3JlbmRlcigpfWRlc3Ryb3koKXtsLnVubW91bnRDb21wb25lbnRBdE5vZGUodGhpcy5fY29udGFpbmVyKX1fcmVuZGVyKCl7bC5yZW5kZXIoci5jcmVhdGVFbGVtZW50KHVlLHt3aWRnZXRCYXI6dGhpcy5fd2lkZ2V0QmFyfSxyLmNyZWF0ZUVsZW1lbnQoaGUse21vZGVsczp0aGlzLl93aWRnZXRCYXIubW9kZWxzKCl9KSksdGhpcy5fY29udGFpbmVyKX19dmFyIHBlPWkoNDk1OTY2KTtjb25zdCBfZT0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciO2Z1bmN0aW9uIGJlKGUpe2NvbnN0e2RpcmVjdGlvbjp0LHRoZW1lOmk9cGV9PWU7cmV0dXJuIHIuY3JlYXRlRWxlbWVudCgic3ZnIix7eG1sbnM6X2Usd2lkdGg6IjkiLGhlaWdodDoiMjciLHZpZXdCb3g6IjAgMCA5IDI3IixjbGFzc05hbWU6bSgpKGkuY29udGFpbmVyLCJyaWdodCI9PT10P2kubWlycm9yOm51bGwpLG9uQ29udGV4dE1lbnU6JC5wcmV2ZW50RGVmYXVsdH0sci5jcmVhdGVFbGVtZW50KCJnIix7ZmlsbDoibm9uZSIsZmlsbFJ1bGU6ImV2ZW5vZGQifSxyLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtjbGFzc05hbWU6aS5iYWNrZ3JvdW5kLGQ6Ik00LjUuNWE0IDQgMCAwIDEgNCA0djE4YTQgNCAwIDEgMS04IDB2LTE4YTQgNCAwIDAgMSA0LTR6In0pLHIuY3JlYXRlRWxlbWVudCgicGF0aCIse2NsYXNzTmFtZTppLmFycm93LApkOiJNNS41IDEwbC0yIDMuNSAyIDMuNSJ9KSkpfWNvbnN0IGZlPWEudChudWxsLHZvaWQgMCxpKDEwNzkzNSkpLHZlPWEudChudWxsLHZvaWQgMCxpKDUxMjI0OSkpO2Z1bmN0aW9uIHdlKGUpe2NvbnN0IHQ9bSgpKGUuY2xhc3NOYW1lLCJhcHBseS1jb21tb24tdG9vbHRpcCIsImNvbW1vbi10b29sdGlwLXZlcnRpY2FsIiwiY29tbW9uLXRvb2x0aXAtb3RsIik7cmV0dXJuIHIuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOnQsb25DbGljazplLm9uQ2xpY2ssdGl0bGU6ZS5pc01pbmltaXplZD92ZTpmZX0sci5jcmVhdGVFbGVtZW50KGJlLHtkaXJlY3Rpb246ZS5pc01pbmltaXplZD8ibGVmdCI6InJpZ2h0In0pKX1jbGFzcyB5ZXtjb25zdHJ1Y3RvcihlPXt9KXt0aGlzLk1JTl9XSURUSD0yMDAsdGhpcy5NSU5JTUlaRV9USFJFU0hPTEQ9NTAsdGhpcy5hY3RpdmVJbmRleD15ZS5hY3RpdmVJbmRleCx0aGlzLmFjdGl2ZU5hbWU9eWUuYWN0aXZlTmFtZSx0aGlzLm1pbmltaXplZD15ZS5taW5pbWl6ZWQsdGhpcy52aXNpYmxlPXllLnZpc2libGUsdGhpcy53aWR0aD15ZS53aWR0aCx0aGlzLnZlcnNpb249eWUudmVyc2lvbix0aGlzLnBhZ2VzPVtdLHRoaXMuaXNNaW5pbWl6ZWQ9bmV3IGQuV2F0Y2hlZFZhbHVlLHRoaXMuYWN0aXZlUGFnZUluZGV4PW5ldyBkLldhdGNoZWRWYWx1ZSh0aGlzLmFjdGl2ZUluZGV4KSx0aGlzLnRhYlJlbmRlcmVyPW51bGwsdGhpcy5fdGFicz1udWxsLHRoaXMuX3BhZ2VzPW51bGwsdGhpcy5fcGFnZXNjb250ZW50PW51bGwsdGhpcy5faGFuZGxlPW51bGwsdGhpcy5faGlkZXI9bnVsbCx0aGlzLl9kcmFnZ2FibGU9bnVsbCx0aGlzLl9zaG91bGRIaWRlV2lkZ2V0QmFyPSgwLEQuaXNGZWF0dXJlc2V0RW5hYmxlZCkoImhpZGVfcmlnaHRfdG9vbGJhciIpLHRoaXMuX3Nob3VsZEhpZGVXaWRnZXRCYXJUYWJzPSgwLEQuaXNGZWF0dXJlc2V0RW5hYmxlZCkoImhpZGVfcmlnaHRfdG9vbGJhcl90YWJzIiksdGhpcy53aWRnZXRCYXI9ZS53aWRnZXRCYXIsdGhpcy5fcmlnaHRUb29sYmFyPUJvb2xlYW4oZS5yaWdodFRvb2xiYXIpfWVsZW1lbnQoZSl7c3dpdGNoKGUpe2Nhc2UidGFicyI6cmV0dXJuIHRoaXMuX3RhYnM7Y2FzZSJwYWdlcyI6cmV0dXJuIHRoaXMuX3BhZ2VzO2Nhc2UicGFnZXMtY29udGVudCI6cmV0dXJuIHRoaXMuX3BhZ2VzY29udGVudDtjYXNlImhhbmRsZSI6cmV0dXJuIHRoaXMuX2hhbmRsZTtjYXNlImhpZGVyIjpyZXR1cm4gdGhpcy5faGlkZXI7ZGVmYXVsdDpyZXR1cm4gbnVsbH19d2lkZ2V0KGUpe2Zvcihjb25zdCB0IG9mIHRoaXMucGFnZXMpe2NvbnN0IGk9dC53aWRnZXQoZSk7aWYoaSlyZXR1cm4gaX1yZXR1cm4gbnVsbH1zdGFydFdpZGdldHMoKXt0aGlzLnBhZ2VzLmZvckVhY2goKGU9PntlLndpZGdldHMuZm9yRWFjaCgoZT0+e2Uud2lkZ2V0T2JqZWN0fHxlLndpZGdldFN0YXJ0RGVsYXllZHx8c2V0VGltZW91dCgoKCk9PntlLnN0YXJ0V2lkZ2V0KCl9KSwwKX0pKX0pKTtjb25zdCBlPXRoaXMuZ2V0QWN0aXZlUGFnZSgpO2UmJmUub25BY3RpdmVTdGF0ZUNoYW5nZSghMCl9c3luY0hlaWdodCgpe2NvbnN0IGU9KDAsbi5lbnN1cmVEZWZpbmVkKSh0aGlzLndpZGdldEJhcikucmVzaXplckJyaWRnZS5oZWlnaHQudmFsdWUoKTtpZihudWxsIT09dGhpcy5fcGFnZXMmJih0aGlzLl9wYWdlcy5zdHlsZS5oZWlnaHQ9ZSsicHgiKSwhdGhpcy5taW5pbWl6ZWQpe2NvbnN0IGU9dGhpcy5nZXRBY3RpdmVQYWdlKCk7ZSYmZS51cGRhdGVXaWRnZXRzSGVpZ2h0KCl9fXRhYnNXaWR0aCgpe3JldHVybiB0aGlzLl9zaG91bGRIaWRlV2lkZ2V0QmFyVGFicz8wOnRoaXMuX3JpZ2h0VG9vbGJhcj80NTp0aGlzLm1pbmltaXplZD81OjB9Ym9yZGVyV2lkdGgoKXtyZXR1cm4gMSoodGhpcy5taW5pbWl6ZWQ/MDoxKX1jYW5PcGVuKCl7aWYodGhpcy5fc2hvdWxkSGlkZVdpZGdldEJhcilyZXR1cm4hMTtjb25zdCBlPSgwLG4uZW5zdXJlRGVmaW5lZCkodGhpcy53aWRnZXRCYXIpO3JldHVybiBlLmFmZmVjdHNMYXlvdXQoKSYmdGhpcy5NSU5fV0lEVEgrdGhpcy50YWJzV2lkdGgoKSt0aGlzLmJvcmRlcldpZHRoKCk8PWUucmVzaXplckJyaWRnZS5hdmFpbFdpZHRoLnZhbHVlKCl9cmVxdWVzdFdpZHRoKGUpe2NvbnN0IHQ9KDAsbi5lbnN1cmVEZWZpbmVkKSh0aGlzLndpZGdldEJhcikucmVzaXplckJyaWRnZTtsZXQgaT10aGlzLnRhYnNXaWR0aCgpO2k+MCYmKGkrPXRoaXMuYm9yZGVyV2lkdGgoKSk7Y29uc3Qgcz1lK2k7dGhpcy5jYW5PcGVuKCk/dC53aWR0aC52YWx1ZSgpIT09cyYmdC5uZWdvdGlhdGVXaWR0aChbe21pbjppLG1heDppfSx7bWluOnRoaXMuTUlOX1dJRFRIK2ksbWF4OnN9XSk6dC5uZWdvdGlhdGVXaWR0aCgwKX1yZXF1ZXN0T3B0aW1hbFdpZHRoKCl7dGhpcy5taW5pbWl6ZWQ/dGhpcy5yZXF1ZXN0V2lkdGgoMCk6dGhpcy5yZXF1ZXN0V2lkdGgodGhpcy53aWR0aCl9dXBkYXRlUmVzcG9uc2l2ZW5lc3MoKXtjb25zdCBlPSF0aGlzLmNhbk9wZW4oKTt0aGlzLl90YWJzPy5jbGFzc0xpc3QudG9nZ2xlKCJqcy1oaWRkZW4iLGUpLHRoaXMuX3BhZ2VzPy5jbGFzc0xpc3QudG9nZ2xlKCJqcy1oaWRkZW4iLGUpfWNoYW5nZVdpZGdldEJhclZpc2liaWxpdHkoZSl7dGhpcy5fc2hvdWxkSGlkZVdpZGdldEJhcj0hZSx0aGlzLnVwZGF0ZVJlc3BvbnNpdmVuZXNzKCl9c3luY1dpZHRoKCl7Y29uc3QgZT0oMCxuLmVuc3VyZURlZmluZWQpKHRoaXMud2lkZ2V0QmFyKS5yZXNpemVyQnJpZGdlLHQ9dGhpcy50YWJzV2lkdGgoKSxpPXRoaXMuYm9yZGVyV2lkdGgoKSxzPWUud2lkdGgudmFsdWUoKSxhPU1hdGgubWF4KHMtdC1pLDApfHwwO2E8dGhpcy5NSU5JTUlaRV9USFJFU0hPTEQ/dGhpcy5zZXRNaW5pbWl6ZWRTdGF0ZSghMCk6dGhpcy5zZXRNaW5pbWl6ZWRTdGF0ZSghMSk7Y29uc3Qgbz10aGlzLl9wYWdlcztpZihvJiYoby5zdHlsZS53aWR0aD1hKyJweCIsby5jbGFzc0xpc3QudG9nZ2xlKCJoaWRkZW4iLCEhdGhpcy5taW5pbWl6ZWQpKSwhdGhpcy5taW5pbWl6ZWQpe2NvbnN0IGU9dGhpcy5nZXRBY3RpdmVQYWdlKCkKO2UmJmUud2lkZ2V0cy5mb3JFYWNoKChlPT57ZS5vbldpZHRoQ2hhbmdlKGEpfSkpLHRoaXMud2lkZ2V0QmFyJiZ0aGlzLndpZGdldEJhci5sb2FkV2lkZ2V0cygpfX1zZXRNaW5pbWl6ZWRTdGF0ZShlKXtjb25zdCB0PUJvb2xlYW4oZSk7ISF0aGlzLm1pbmltaXplZCE9PXQmJih0aGlzLm1pbmltaXplZD10LHRoaXMuaXNNaW5pbWl6ZWQuc2V0VmFsdWUodGhpcy5taW5pbWl6ZWQpLHQmJigwLG4uZW5zdXJlRGVmaW5lZCkodGhpcy53aWRnZXRCYXIpLnJlc2l6ZXJCcmlkZ2UuZXhpdEZ1bGxzY3JlZW4oKSx0aGlzLnJlcXVlc3RPcHRpbWFsV2lkdGgoKSx0aGlzLmFjdGl2ZUluZGV4Pj0wJiZ0aGlzLnBhZ2VzW3RoaXMuYWN0aXZlSW5kZXhdLm9uQWN0aXZlU3RhdGVDaGFuZ2UoIXRoaXMubWluaW1pemVkKSl9c3dpdGNoUGFnZShlKXtpZigtMT09PWV8fDA9PT10aGlzLnBhZ2VzLmxlbmd0aClyZXR1cm4gdGhpcy5hY3RpdmVJbmRleD0tMSx2b2lkIHRoaXMuYWN0aXZlUGFnZUluZGV4LnNldFZhbHVlKHRoaXMuYWN0aXZlSW5kZXgpO2xldCB0O2lmKGUgaW5zdGFuY2VvZiBQKXtpZih0PXRoaXMucGFnZXMuaW5kZXhPZihlKSwtMT09PXQpcmV0dXJufWVsc2UgdD0rZTtjb25zdCBpPXRoaXMucGFnZXNbdGhpcy5hY3RpdmVJbmRleF07dGhpcy5hY3RpdmVJbmRleD1NYXRoLm1pbih0aGlzLnBhZ2VzLmxlbmd0aC0xLE1hdGgubWF4KDAsdCkpLHRoaXMuYWN0aXZlUGFnZUluZGV4LnNldFZhbHVlKHRoaXMuYWN0aXZlSW5kZXgpO2NvbnN0IHM9dGhpcy5wYWdlc1t0aGlzLmFjdGl2ZUluZGV4XTt0aGlzLmFjdGl2ZU5hbWU9cy5uYW1lfHwiIix0aGlzLm1pbmltaXplZHx8aSYmaT09PXN8fChpJiZpLm9uQWN0aXZlU3RhdGVDaGFuZ2UoITEpLHMmJihzLm9uQWN0aXZlU3RhdGVDaGFuZ2UoITApLHRoaXMuc3luY1dpZHRoKCkpKX1nZXRBY3RpdmVQYWdlKCl7cmV0dXJuIHRoaXMubWluaW1pemVkP251bGw6dGhpcy5wYWdlc1t0aGlzLmFjdGl2ZUluZGV4XXx8bnVsbH1nZXRXaWRnZXRCeVR5cGUoZSl7Y29uc3QgdD10aGlzLmdldEFjdGl2ZVBhZ2UoKT8ud2lkZ2V0cztpZih0KXJldHVybiB0LmZpbmQoKHQ9PnQudHlwZT09PWUpKX1vblRhYkNsaWNrKGUpe2NvbnN0IHQ9dGhpcy5wYWdlcy5pbmRleE9mKGUpO2lmKC0xIT09dCl7aWYodGhpcy5fdHJhY2tDbGljayhlLm5hbWUpLHQhPT10aGlzLmFjdGl2ZUluZGV4fHx0aGlzLm1pbmltaXplZCl7Y29uc3QgaT1lLmdhRXZlbnQoKTtpJiYoMCxmLnRyYWNrRXZlbnQpKCJQbGF0Zm9ybSBXaWRnZXRzIixpKSx0aGlzLnN3aXRjaFBhZ2UodCksdGhpcy5taW5pbWl6ZWQmJnRoaXMuc2V0TWluaW1pemVkU3RhdGUoITEpfWVsc2UgdGhpcy5zZXRNaW5pbWl6ZWRTdGF0ZSghMCk7dGhpcy53aWRnZXRCYXImJnRoaXMud2lkZ2V0QmFyLnNhdmVUb1RWU2V0dGluZ3MoKX19cmVtb3ZlUGFnZShlKXtjb25zdCB0PXRoaXMucGFnZXMuaW5kZXhPZihlKTtpZigtMT09PXQpcmV0dXJuO2RlbGV0ZSBlLndpZGdldEJhckxheW91dCx0aGlzLnBhZ2VzLnNwbGljZSh0LDEpO2NvbnN0IGk9ZS5lbGVtZW50KCk7aT8ucmVtb3ZlKCksdGhpcy5hY3RpdmVJbmRleD09PXQmJnRoaXMuc3dpdGNoUGFnZSh0LTEpfWNyZWF0ZVBhZ2UoKXtjb25zdCBlPW5ldyBQKHt3aWRnZXRCYXJMYXlvdXQ6dGhpc30pO3RoaXMucGFnZXMucHVzaChlKSxlLmNyZWF0ZUhUTUwoKTtjb25zdCB0PSgwLG4uZW5zdXJlTm90TnVsbCkoZS5lbGVtZW50KCkpO3JldHVybiB0aGlzLl9wYWdlc2NvbnRlbnQ/LmFwcGVuZCh0KSxlfWNyZWF0ZVdpZGdldChlLHQpe2lmKHQpe2lmKC0xPT09dGhpcy5wYWdlcy5pbmRleE9mKHQpKXJldHVybiBudWxsfWVsc2UgdD10aGlzLmNyZWF0ZVBhZ2UoKTtjb25zdCBpPW5ldyBCKHt3aWRnZXRCYXJQYWdlOnR9KTtyZXR1cm4gaS5kZW1hcnNoYWwoe3R5cGU6ZX0pLGkuY3JlYXRlSFRNTCgpLHQuYXR0YWNoV2lkZ2V0KGkpLGl9b25WaXNpYmlsaXR5Q2hhbmdlKCl7Y29uc3QgZT0hKCF0aGlzLndpZGdldEJhcnx8IXRoaXMud2lkZ2V0QmFyLnJlc2l6ZXJCcmlkZ2UudmlzaWJsZS52YWx1ZSgpKTt0aGlzLnZpc2libGU9ZSx0aGlzLnBhZ2VzLmZvckVhY2goKHQ9Pnt0Lm9uVmlzaWJpbGl0eUNoYW5nZShlKX0pKX1kZXN0cm95KCl7dGhpcy53aWRnZXRCYXImJnRoaXMud2lkZ2V0QmFyLmxheW91dD09PXRoaXMmJmRlbGV0ZSB0aGlzLndpZGdldEJhci5sYXlvdXQsdGhpcy50YWJSZW5kZXJlciYmKHRoaXMudGFiUmVuZGVyZXIuZGVzdHJveSgpLHRoaXMudGFiUmVuZGVyZXI9bnVsbCksdGhpcy5faGlkZXImJmwudW5tb3VudENvbXBvbmVudEF0Tm9kZSh0aGlzLl9oaWRlcik7Zm9yKGxldCBlPXRoaXMucGFnZXMubGVuZ3RoO2UtLTspe2NvbnN0IHQ9dGhpcy5wYWdlc1tlXTtmb3IobGV0IGU9dC53aWRnZXRzLmxlbmd0aDtlLS07KXQud2lkZ2V0c1tlXS5kZXN0cm95KCl9dGhpcy5fdGFicz8ucmVtb3ZlKCksdGhpcy5fcGFnZXM/LnJlbW92ZSgpLHRoaXMuX3BhZ2VzY29udGVudD8ucmVtb3ZlKCksdGhpcy5faGFuZGxlPy5yZW1vdmUoKSx0aGlzLl9oaWRlcj8ucmVtb3ZlKCl9Y3JlYXRlSFRNTCgpe2NvbnN0IGU9KDAsbi5lbnN1cmVEZWZpbmVkKSh0aGlzLndpZGdldEJhcik7aWYodGhpcy5fcmlnaHRUb29sYmFyKXtjb25zdCB0PXRoaXMuX3RhYnM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7dGhpcy5fc2hvdWxkSGlkZVdpZGdldEJhclRhYnN8fCh0LmNsYXNzTGlzdC52YWx1ZT0id2lkZ2V0YmFyLXRhYnMiKSx0aGlzLnRhYlJlbmRlcmVyJiYodGhpcy50YWJSZW5kZXJlci5kZXN0cm95KCksdGhpcy50YWJSZW5kZXJlcj1udWxsKSx0aGlzLl9zaG91bGRIaWRlV2lkZ2V0QmFyVGFic3x8KHRoaXMudGFiUmVuZGVyZXI9bmV3IG1lKGUsdCkpfWNvbnN0IHQ9dGhpcy5fcGFnZXM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7dGhpcy5fc2hvdWxkSGlkZVdpZGdldEJhclRhYnM/KHQuY2xhc3NMaXN0LnZhbHVlPSJ3aWRnZXRiYXItcGFnZXMtbm8tdGFicyIsCnQuc2V0QXR0cmlidXRlKCJkYXRhLW5hbWUiLCJ3aWRnZXRiYXItcGFnZXMtbm8tdGFicyIpKToodC5jbGFzc0xpc3QudmFsdWU9IndpZGdldGJhci1wYWdlcyIsdC5zZXRBdHRyaWJ1dGUoImRhdGEtbmFtZSIsIndpZGdldGJhci1wYWdlcy13aXRoLXRhYnMiKSk7Y29uc3QgaT10aGlzLl9wYWdlc2NvbnRlbnQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7aS5jbGFzc0xpc3QudmFsdWU9IndpZGdldGJhci1wYWdlc2NvbnRlbnQiLHQuYXBwZW5kQ2hpbGQoaSksdGhpcy5fcmlnaHRUb29sYmFyfHwodGhpcy5fcGFnZXMuc3R5bGUucmlnaHQ9Ii0xcHgiKTtjb25zdCBzPXRoaXMuX2hhbmRsZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtpZihzLmNsYXNzTGlzdC52YWx1ZT0id2lkZ2V0YmFyLWhhbmRsZSIsdC5hcHBlbmRDaGlsZChzKSxzLmFkZEV2ZW50TGlzdGVuZXIoImNvbnRleHRtZW51IiwoZT0+e2UudGFyZ2V0PT09cyYmZS5wcmV2ZW50RGVmYXVsdCgpfSkpLHRoaXMuX2NyZWF0ZURyYWdnYWJsZShzKSxlLnNob3dDbG9zZUJ1dHRvbil7Y29uc3QgZT10aGlzLl9oaWRlcj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtlLmNsYXNzTGlzdC52YWx1ZT0id2lkZ2V0YmFyLWhpZGVyIjtjb25zdCB0PSgpPT57ZS5jbGFzc0xpc3QudG9nZ2xlKCJ3aWRnZXRiYXItaGlkZXItLWNsb3NlZCIsdGhpcy5pc01pbmltaXplZC52YWx1ZSgpKSxlLmNsYXNzTGlzdC50b2dnbGUoImpzLWhpZGRlbiIsdGhpcy5fcmlnaHRUb29sYmFyJiZ0aGlzLmlzTWluaW1pemVkLnZhbHVlKCkpLGwucmVuZGVyKHIuY3JlYXRlRWxlbWVudCh3ZSx7aXNNaW5pbWl6ZWQ6dGhpcy5pc01pbmltaXplZC52YWx1ZSgpLG9uQ2xpY2s6KCk9Pnt0aGlzLnNldE1pbmltaXplZFN0YXRlKCF0aGlzLm1pbmltaXplZCl9fSksZSl9O3RoaXMuaXNNaW5pbWl6ZWQuc3Vic2NyaWJlKHQpLHQoKX10aGlzLnBhZ2VzLmZvckVhY2goKGU9PntlLmNyZWF0ZUhUTUwoKTtjb25zdCB0PWUuZWxlbWVudCgpO3QmJmkuYXBwZW5kQ2hpbGQodCl9KSl9ZGVtYXJzaGFsKGUpe2lmKCJzdHJpbmciPT10eXBlb2YgZSl0cnl7ZT1KU09OLnBhcnNlKGUpfWNhdGNoKGUpe31pZigib2JqZWN0IiE9dHlwZW9mIGUpcmV0dXJuIG51bGw7dGhpcy53aWR0aD1OdW1iZXIoZS53aWR0aCksIWlzRmluaXRlKHRoaXMud2lkdGgpfHx0aGlzLndpZHRoPD0wP3RoaXMud2lkdGg9eWUud2lkdGg6dGhpcy53aWR0aDx0aGlzLk1JTl9XSURUSCYmKHRoaXMud2lkdGg9dGhpcy5NSU5fV0lEVEgpLCJtaW5pbWl6ZWQiaW4gZT8odGhpcy5taW5pbWl6ZWQ9Qm9vbGVhbihlLm1pbmltaXplZCksdGhpcy5pc01pbmltaXplZC5zZXRWYWx1ZSh0aGlzLm1pbmltaXplZCkpOih0aGlzLm1pbmltaXplZD15ZS5taW5pbWl6ZWQsdGhpcy5pc01pbmltaXplZC5zZXRWYWx1ZSh0aGlzLm1pbmltaXplZCkpLCJ2ZXJzaW9uImluIGUmJih0aGlzLnZlcnNpb249ZS52ZXJzaW9uKTtsZXQgdD1OdW1iZXIoZS5hY3RpdmVJbmRleCk7Y29uc3QgaT1lLmFjdGl2ZU5hbWU7bGV0IHM9ITE7Y29uc3Qgbj10aGlzLnBhZ2VzO3JldHVybiBuLnNwbGljZSgwLHRoaXMucGFnZXMubGVuZ3RoKSxBcnJheS5pc0FycmF5KGUucGFnZXMpJiZlLnBhZ2VzLmZvckVhY2goKChlLGEpPT57Y29uc3Qgbz1uZXcgUCh7d2lkZ2V0QmFyTGF5b3V0OnRoaXN9KS5kZW1hcnNoYWwoZSk7aT9lLm5hbWU9PT1pJiZvJiYodD1hLHM9ITApOm98fGEhPT10fHx0LS0sbyYmbi5wdXNoKG8pfSkpLGkmJiFzJiYodD0wKSwwPT09bi5sZW5ndGg/KHRoaXMuYWN0aXZlSW5kZXg9LTEsdGhpcy5hY3RpdmVQYWdlSW5kZXguc2V0VmFsdWUodGhpcy5hY3RpdmVJbmRleCkpOnQ+PTAmJnQ8bi5sZW5ndGgmJih0aGlzLmFjdGl2ZUluZGV4PXQsdGhpcy5hY3RpdmVQYWdlSW5kZXguc2V0VmFsdWUodGhpcy5hY3RpdmVJbmRleCkpLHRoaXN9bWFyc2hhbCgpe2xldCBlPVtdO3RoaXMucGFnZXMuZm9yRWFjaCgodD0+e2NvbnN0IGk9dC5tYXJzaGFsKCk7aSYmKGU9ZS5jb25jYXQoaSkpfSkpO2NvbnN0IHQ9e307Zm9yKGxldCBpPTA7aTxlLmxlbmd0aDtpKyspe2NvbnN0IHM9ZVtpXS50eXBlO3MmJihlW2ldLmlkJiZkZWxldGUgZVtpXS50eXBlLHRbc10/dFtzXS5wdXNoKGVbaV0pOnRbc109W2VbaV1dKX1jb25zdCBpPXt3aWRnZXRzOnQsc2V0dGluZ3M6e319O3JldHVybiB0aGlzLm1pbmltaXplZCE9PXllLm1pbmltaXplZCYmKGkuc2V0dGluZ3MubWluaW1pemVkPXRoaXMubWluaW1pemVkKSx0aGlzLndpZHRoIT09eWUud2lkdGgmJihpLnNldHRpbmdzLndpZHRoPXRoaXMud2lkdGgpLHRoaXMuYWN0aXZlSW5kZXghPT15ZS5hY3RpdmVJbmRleCYmKGkuc2V0dGluZ3MuYWN0aXZlSW5kZXg9dGhpcy5hY3RpdmVJbmRleCksdGhpcy5hY3RpdmVOYW1lIT09eWUuYWN0aXZlTmFtZSYmKGkuc2V0dGluZ3MuYWN0aXZlTmFtZT10aGlzLmFjdGl2ZU5hbWUpLHRoaXMudmVyc2lvbiE9PXllLnZlcnNpb24mJihpLnNldHRpbmdzLnZlcnNpb249dGhpcy52ZXJzaW9uKSxpfV9jcmVhdGVEcmFnZ2FibGUoZSl7bnVsbCE9PXRoaXMuX2RyYWdnYWJsZSYmdGhpcy5fZHJhZ2dhYmxlLmRlc3Ryb3koKTtjb25zdCB0PXtpbml0aWFsV2lkdGg6MH07dGhpcy5fZHJhZ2dhYmxlPW5ldyB4LlBvaW50ZXJCYWNrZW5kKHtoYW5kbGU6ZSxvbkRyYWdTdGFydDplPT57dGhpcy53aWRnZXRCYXI/dC5pbml0aWFsV2lkdGg9TWF0aC5tYXgodGhpcy53aWRnZXRCYXIucmVzaXplckJyaWRnZS53aWR0aC52YWx1ZSgpLXRoaXMudGFic1dpZHRoKCktdGhpcy5ib3JkZXJXaWR0aCgpLDApOmUucHJldmVudERlZmF1bHQoKX0sb25EcmFnTW92ZTplPT57Y29uc3R7Y3VycmVudDppLGluaXRpYWw6c309ZS5kZXRhaWwsbj1pLnBhZ2VYLXMucGFnZVg7bGV0IGE9dC5pbml0aWFsV2lkdGgtbjthPHRoaXMuTUlOSU1JWkVfVEhSRVNIT0xEP3RoaXMuc2V0TWluaW1pemVkU3RhdGUoITApOihhPHRoaXMuTUlOX1dJRFRIJiYoYT10aGlzLk1JTl9XSURUSCksdGhpcy53aWR0aD1hLAp0aGlzLm1pbmltaXplZD90aGlzLnNldE1pbmltaXplZFN0YXRlKCExKTp0aGlzLnJlcXVlc3RXaWR0aChhKSl9LG9uRHJhZ1N0b3A6ZT0+e3RoaXMud2lkZ2V0QmFyJiZ0aGlzLndpZGdldEJhci5zYXZlVG9UVlNldHRpbmdzKCl9fSl9X3RyYWNrQ2xpY2soZSl7c3dpdGNoKGUpe2Nhc2UiYmFzZSI6KDAsTS50cmFja0J1dHRvbkNsaWNrKSgicmlnaHQgcGFuZWwiLCJ3YXRjaGxpc3QiKTticmVhaztjYXNlImFsZXJ0cyI6KDAsTS50cmFja0J1dHRvbkNsaWNrKSgicmlnaHQgcGFuZWwiLCJhbGVydHMiKTticmVhaztjYXNlIm9iamVjdF90cmVlIjooMCxNLnRyYWNrQnV0dG9uQ2xpY2spKCJyaWdodCBwYW5lbCIsIm9iamVjdCB0cmVlIik7YnJlYWs7Y2FzZSJkYXRhLXdpbmRvdyI6KDAsTS50cmFja0J1dHRvbkNsaWNrKSgicmlnaHQgcGFuZWwiLCJkYXRhIHdpbmRvdyIpO2JyZWFrO2Nhc2UiaG90bGlzdCI6KDAsTS50cmFja0J1dHRvbkNsaWNrKSgicmlnaHQgcGFuZWwiLCJob3RsaXN0Iik7YnJlYWs7Y2FzZSJjYWxlbmRhciI6KDAsTS50cmFja0J1dHRvbkNsaWNrKSgicmlnaHQgcGFuZWwiLCJjYWxlbmRhciIpO2JyZWFrO2Nhc2UidW5pb25fY2hhdHMiOigwLE0udHJhY2tCdXR0b25DbGljaykoInJpZ2h0IHBhbmVsIiwiY2hhdHMiKX19fXllLndpZHRoPTI5MCx5ZS5taW5pbWl6ZWQ9ISgwLEQuaXNGZWF0dXJlc2V0RW5hYmxlZCkoInNob3dfcmlnaHRfd2lkZ2V0c19wYW5lbF9ieV9kZWZhdWx0IikseWUuYWN0aXZlSW5kZXg9MCx5ZS5hY3RpdmVOYW1lPSIiLHllLnZpc2libGU9ITAseWUudmVyc2lvbj12b2lkIDA7dmFyIFNlPWkoNzg4MDEpO2Z1bmN0aW9uIENlKGUpe3JldHVybiByLmNyZWF0ZUVsZW1lbnQoImRpdiIse3N0eWxlOntkaXNwbGF5OiJub25lIn19KX1mdW5jdGlvbiBUZShlKXtyZXR1cm4gci5jcmVhdGVFbGVtZW50KFksey4uLmUsb25Nb3VzZU92ZXI6RWV9KX1jb25zdCBFZT0oMCxpKDgzOTQyNikuZGVmYXVsdCkoKGFzeW5jKCk9Pntjb25zdHtnZXRBbGVydHNDb2xsZWN0aW9uOmV9PWF3YWl0IFByb21pc2UuYWxsKFtpLmUoODQ2OTMpLGkuZSg4ODk5NyksaS5lKDMwNjk5KSxpLmUoNDYyMTcpLGkuZSg2NjkzMyksaS5lKDcxMzE5KV0pLnRoZW4oaS5iaW5kKGksMTQzMjY2KSk7ZSgpLmVuc3VyZUxvYWRlZEFsZXJ0cygid2lkZ2V0Iil9KSk7dmFyIHhlPWkoMTg1MjcxKTtjb25zdCBMZT1lPT54ZS50KG51bGwse3BsdXJhbDoie2NvdW50fSB1bnJlYWQgYWxlcnQgbm90aWZpY2F0aW9ucyIsY291bnQ6ZSxyZXBsYWNlOntjb3VudDpTdHJpbmcoZSl9fSxpKDQ1ODI0NikpO3ZhciBCZSxXZT1pKDcyNzA5KSxOZT1pKDIzNTcyNCksUGU9aSg4MjQ0NzgpOyFmdW5jdGlvbihlKXtlLkxheW91dEtleU5hbWU9ImxheW91dC1zZXR0aW5ncyIsZVtlLlRhYnNXaWR0aD00NV09IlRhYnNXaWR0aCIsZVtlLkhpZGVyR2FwV2lkdGg9NV09IkhpZGVyR2FwV2lkdGgiLGVbZS5Cb3JkZXJXaWR0aD0xXT0iQm9yZGVyV2lkdGgiLGVbZS5NYXhXaWR0aD00NTBdPSJNYXhXaWR0aCJ9KEJlfHwoQmU9e30pKTt2YXIgRGU9aSgyMTQ5ODcpLE1lPWkoODczNzk0KSxJZT1pKDQxOTYxOSksa2U9aSg5NzI2NzMpLFZlPWkoMjA3MTQxKSxBZT1pKDIzMTQyNCksSGU9aSgyNTQyNTEpO2NvbnN0IHplPSgwLEQuaXNGZWF0dXJlc2V0RW5hYmxlZCkoInJpZ2h0X3Rvb2xiYXIiKSxSZT0oMCxELmlzRmVhdHVyZXNldEVuYWJsZWQpKCJrZWVwX29iamVjdF90cmVlX3dpZGdldF9pbl9yaWdodF90b29sYmFyIiksT2U9KDAsRC5pc0ZlYXR1cmVzZXRFbmFibGVkKSgic2hvd19vYmplY3RfdHJlZSIpO2NsYXNzIEZle2NvbnN0cnVjdG9yKGUpe3RoaXMuX3dyYXA9bnVsbCx0aGlzLl9tb2RlbHM9W10sdGhpcy5vcHRpb25zPWUsdGhpcy5fbG9hZD0oKT0+e307Y29uc3QgdD1uZXcgUHJvbWlzZSgoZT0+e3RoaXMuX2xvYWQ9ZX0pKTsoMCxXZS5jcmVhdGVHcm91cCkoe2Rlc2M6IldhdGNobGlzdHNEaWFsb2cifSkuYWRkKHtkZXNjOiJPcGVuIixob3RrZXk6TmUuTW9kaWZpZXJzLlNoaWZ0Kzg3LGhhbmRsZXI6KCk9PigwLFBlLnNob3dXYXRjaExpc3RzRGlhbG9nKSgpfSk7Y29uc3QgaT10aGlzLm9wdGlvbnMuY29uZmlndXJhdGlvbjt0aGlzLl9jb25maWd1cmF0aW9uPVByb21pc2UucmFjZShbKDAsRGUuZGVsYXkpKG51bGwsNWUzKSx0XSkudGhlbigoKCk9PmkoKSkpLnRoZW4oKGU9Pntjb25zdCB0PXRoaXMud2lkZ2V0Q29uZmlnO3JldHVybiB0LndhdGNobGlzdC5jdG9yPWUuV2F0Y2hsaXN0LHQuaG90bGlzdC5jdG9yPWUuSG90bGlzdFdpZGdldCx0LmRldGFpbC5jdG9yPWUuRGV0YWlsJiZlLkRldGFpbC5XaWRnZXQsdC5uZXdzLmN0b3I9ZS5OZXdzV2lkZ2V0LHQudW5pb25jaGF0cy5jdG9yPWUuVW5pb25DaGF0c1dpZGdldCx0LmFsZXJ0cy5jdG9yPWUuQWxlcnRzV2lkZ2V0LHQuZGF0YXdpbmRvdy5jdG9yPWUuRGF0YVdpbmRvd1dpZGdldCx0LnBpbmVfbG9ncy5jdG9yPWUuUGluZUxvZ3NXaWRnZXQsKDAsbi5lbnN1cmUpKHQub2JqZWN0X3RyZWUpLmN0b3I9ZS5PYmplY3RUcmVlV2lkZ2V0LGV9KSk7Y29uc3QgYT10aGlzLnJlc2l6ZXJCcmlkZ2U9ZS5yZXNpemVyQnJpZGdlO3RoaXMuYWRhcHRpdmU9Qm9vbGVhbihlLmFkYXB0aXZlKSx0aGlzLl92aXNpYmxlPSgwLG8uY29tYmluZSkoKChlLHQsaSk9PkJvb2xlYW4oZSYmdCYmaSkpLGEud2lkdGgud2Vha1JlZmVyZW5jZSgpLGEuaGVpZ2h0LndlYWtSZWZlcmVuY2UoKSxhLnZpc2libGUud2Vha1JlZmVyZW5jZSgpKSx0aGlzLndpZGdldENvbmZpZz0oMCxzLmRlZmF1bHQpKHt9LFQpLGUud2lkZ2V0Q29uZmlnJiYodGhpcy53aWRnZXRDb25maWc9KDAscy5kZWZhdWx0KSh0aGlzLndpZGdldENvbmZpZyxlLndpZGdldENvbmZpZykpLHRoaXMubGF5b3V0PW5ldyB5ZSh7d2lkZ2V0QmFyOnRoaXMscmlnaHRUb29sYmFyOnplLHJlYWRvbmx5OiEhZS5jaGFydFdpZGdldENvbGxlY3Rpb24/LnJlYWRPbmx5KCl9KSx0aGlzLl9jdXN0b21pemF0aW9uPWUuY3VzdG9taXphdGlvbnx8e30sCmUuY2hhcnRXaWRnZXRDb2xsZWN0aW9uJiYodGhpcy5jaGFydFdpZGdldENvbGxlY3Rpb249ZS5jaGFydFdpZGdldENvbGxlY3Rpb24pLGUuc3RhdGU/dGhpcy5sYXlvdXQuZGVtYXJzaGFsKGUuc3RhdGUpOmUuc2V0dGluZ3NQcmVmaXgmJih0aGlzLl9zZXR0aW5nc1ByZWZpeD1TdHJpbmcoZS5zZXR0aW5nc1ByZWZpeCksdGhpcy5sb2FkRnJvbVRWU2V0dGluZ3MoKSksZS5yZWFkb25seSYmKHRoaXMucmVhZG9ubHk9ITApLGUuZml4ZWRNb2RlJiYodGhpcy5maXhlZE1vZGU9ITApLGUuc2hvd0Nsb3NlQnV0dG9uJiYodGhpcy5zaG93Q2xvc2VCdXR0b249ITApLGUuY2hhcnRQYWdlR3JpZCYmKHRoaXMuY2hhcnRQYWdlR3JpZD1lLmNoYXJ0UGFnZUdyaWQpLHRoaXMuX21vZGVscz1lLm1vZGVscyh0aGlzKSx0aGlzLl9jb250YWluZXI9dGhpcy5yZXNpemVyQnJpZGdlLmNvbnRhaW5lci52YWx1ZSgpLHRoaXMuY3JlYXRlSFRNTCgpLHRoaXMuaW5pdExheW91dCgpLHdpbmRvdy5sb2dpblN0YXRlQ2hhbmdlLnN1YnNjcmliZSh0aGlzLHRoaXMub25Mb2dpblN0YXRlQ2hhbmdlKSx0aGlzLnJlc2l6ZXJCcmlkZ2Uud2lkdGguc3Vic2NyaWJlKCgoKT0+e3RoaXMubGF5b3V0Py5zeW5jV2lkdGgoKX0pKSx0aGlzLnJlc2l6ZXJCcmlkZ2UuaGVpZ2h0LnN1YnNjcmliZSgoKCk9Pnt0aGlzLmxheW91dD8uc3luY0hlaWdodCgpfSkpLHRoaXMucmVzaXplckJyaWRnZS52aXNpYmxlLnN1YnNjcmliZSgoKCk9Pnt0aGlzLmxheW91dD8ub25WaXNpYmlsaXR5Q2hhbmdlKCksdGhpcy5sYXlvdXQ/LnJlcXVlc3RPcHRpbWFsV2lkdGgoKX0pKSx0aGlzLnJlc2l6ZXJCcmlkZ2UuYXZhaWxXaWR0aC5zdWJzY3JpYmUoKCgpPT57dGhpcy5sYXlvdXQ/LnJlcXVlc3RPcHRpbWFsV2lkdGgoKSx0aGlzLmxheW91dD8udXBkYXRlUmVzcG9uc2l2ZW5lc3MoKX0pKSx0aGlzLnJlc2l6ZXJCcmlkZ2UuYXZhaWxIZWlnaHQuc3Vic2NyaWJlKCgoKT0+e3RoaXMubGF5b3V0Py51cGRhdGVSZXNwb25zaXZlbmVzcygpfSkpfWRlc3Ryb3koKXt0aGlzLmxheW91dD8uZGVzdHJveSgpfW1vZGVscygpe3JldHVybiB0aGlzLl9tb2RlbHN9bW9kZWwoZSl7cmV0dXJuIHRoaXMuX21vZGVscy5maW5kKCh0PT50Lm5hbWU9PT1lKSk/P251bGx9d2lkZ2V0KGUpe3JldHVybiB0aGlzLmxheW91dD90aGlzLmxheW91dC53aWRnZXQoZSk6bnVsbH1pc1Zpc2libGUoKXtjb25zdCBlPXRoaXMucmVzaXplckJyaWRnZTtyZXR1cm4gQm9vbGVhbihlLnZpc2libGUudmFsdWUoKSYmZS5oZWlnaHQudmFsdWUoKSYmZS53aWR0aC52YWx1ZSgpKX1hZmZlY3RzTGF5b3V0KCl7cmV0dXJuIHRoaXMub3B0aW9ucy5hZmZlY3RzTGF5b3V0KCl9dmlzaWJsZSgpe3JldHVybiB0aGlzLl92aXNpYmxlfWluaXRMYXlvdXQoKXt0aGlzLm9wdGlvbnMuaW5zdGFudExvYWQmJnRoaXMuX2xvYWQoKSx0aGlzLmxheW91dCYmKHRoaXMuX2NvbmZpZ3VyYXRpb24udGhlbigoKCk9Pnt0aGlzLmxheW91dD8uc3RhcnRXaWRnZXRzKCl9KSksMD09PXRoaXMubGF5b3V0LnBhZ2VzLmxlbmd0aCYmKHRoaXMubGF5b3V0LnNldE1pbmltaXplZFN0YXRlKCEwKSx0aGlzLmxheW91dC5lbGVtZW50KCJoYW5kbGUiKT8uY2xhc3NMaXN0LmFkZCgianMtaGlkZGVuIikpLHRoaXMubGF5b3V0LnJlcXVlc3RPcHRpbWFsV2lkdGgoKSx0aGlzLmxheW91dC5zeW5jV2lkdGgoKSx0aGlzLmxheW91dC5zeW5jSGVpZ2h0KCksdGhpcy5sYXlvdXQub25WaXNpYmlsaXR5Q2hhbmdlKCksdGhpcy5sYXlvdXQudXBkYXRlUmVzcG9uc2l2ZW5lc3MoKSl9bG9hZFdpZGdldHMoKXt0aGlzLl93aWRnZXRzTG9hZFJlcXVlc3RlZHx8KHRoaXMuX3dpZGdldHNMb2FkUmVxdWVzdGVkPSEwLHRoaXMuX2xvYWQoKSl9b25Mb2dpblN0YXRlQ2hhbmdlKGUpe2V8fHdpbmRvdy5pc19hdXRoZW50aWNhdGVkJiYodGhpcy5kcm9wV2lkZ2V0RGF0YSgpLHRoaXMucmVmcmVzaEZyb21UVlNldHRpbmdzKCkpfWRyb3BXaWRnZXREYXRhKCl7Zm9yKGNvbnN0IGUgaW4gdGhpcy53aWRnZXRDb25maWcpZGVsZXRlKDAsbi5lbnN1cmUpKHRoaXMud2lkZ2V0Q29uZmlnW2VdKS5kYXRhfXJlZnJlc2hGcm9tVFZTZXR0aW5ncygpe2lmKCF0aGlzLl9zZXR0aW5nc1ByZWZpeClyZXR1cm47dGhpcy5sYXlvdXQmJnRoaXMubGF5b3V0LmRlc3Ryb3koKSx0aGlzLmxheW91dD1uZXcgeWUoe3dpZGdldEJhcjp0aGlzLHJpZ2h0VG9vbGJhcjp6ZX0pLHRoaXMubG9hZEZyb21UVlNldHRpbmdzKCksdGhpcy5sYXlvdXQuY3JlYXRlSFRNTCgpO2NvbnN0IGU9dGhpcy5sYXlvdXQuZWxlbWVudCgicGFnZXMiKTtlJiZ0aGlzLl93cmFwPy5hcHBlbmRDaGlsZChlKTtjb25zdCB0PXRoaXMubGF5b3V0LmVsZW1lbnQoInRhYnMiKTt0JiZ0aGlzLl93cmFwPy5hcHBlbmRDaGlsZCh0KTtjb25zdCBpPXRoaXMubGF5b3V0LmVsZW1lbnQoImhpZGVyIik7aSYmdGhpcy5fd3JhcD8uYXBwZW5kQ2hpbGQoaSksdGhpcy5pbml0TGF5b3V0KCl9Z2V0V2lkZ2V0cyhlKXtsZXQgdD1bXTtpZighdGhpcy5sYXlvdXQpcmV0dXJuIHQ7Zm9yKGxldCBpPTA7aTx0aGlzLmxheW91dC5wYWdlcy5sZW5ndGg7KytpKXQ9dC5jb25jYXQodGhpcy5sYXlvdXQucGFnZXNbaV0uZ2V0V2lkZ2V0cyhlKSk7cmV0dXJuIHR9bG9hZEZyb21UVlNldHRpbmdzKCl7aWYoIXRoaXMuX3NldHRpbmdzUHJlZml4KXJldHVybjtpZighdGhpcy5sYXlvdXQpcmV0dXJuO2xldCBlPXRoaXMuZ2V0TGF5b3V0U3RhdGUoKTtlPXRoaXMubWVyZ2VQcm9wZXJ0aWVzKGUpLHRoaXMubGF5b3V0LmRlbWFyc2hhbChlKSx0aGlzLnNhdmVUb1RWU2V0dGluZ3MoKTtjb25zdCB0PXRoaXMuX2dldFNlcmlhbGl6ZWRTdGF0ZUZyb21TZXR0aW5nKCk7aWYodCl7bGV0IGU9W107Zm9yKGNvbnN0IGkgaW4gdC53aWRnZXRzKXtjb25zdCBzPXQud2lkZ2V0c1tpXTtlPWUuY29uY2F0KHMubWFwKChlPT5lLmlkKSkpfWNvbnN0IGk9di5rZXlzTWFzayh0aGlzLl9zZXR0aW5nc1ByZWZpeCsiLndpZGdldC4qLioiKTtpJiZpLmZvckVhY2goKHQ9Pntjb25zdCBpPXQucmVwbGFjZSh0aGlzLl9zZXR0aW5nc1ByZWZpeCsiLndpZGdldC4iLCIiKQo7LTE9PT1lLmluZGV4T2YoaSkmJjA9PT10LmluZGV4T2YodGhpcy5fc2V0dGluZ3NQcmVmaXgrIi53aWRnZXQuIikmJigoMCxmLnRyYWNrRXZlbnQpKCJTZXR0aW5ncyBkZWJ1ZyIsImxvYWRGcm9tVFZTZXR0aW5nczogIit0LHdpbmRvdy51c2VyLnVzZXJuYW1lKSx2LnJlbW92ZSh0KSl9KSl9fW1lcmdlUHJvcGVydGllcyhlKXtjb25zdCB0PXRoaXMuX2dldFNlcmlhbGl6ZWRTdGF0ZUZyb21TZXR0aW5nKCk7aWYoIXQpcmV0dXJuIGU7dC5zZXR0aW5ncyYmT2JqZWN0LmFzc2lnbihlLHQuc2V0dGluZ3MpO2NvbnN0IGk9e307Zm9yKGxldCBzPTA7czxlLnBhZ2VzLmxlbmd0aDtzKyspZm9yKGxldCBuPTA7bjxlLnBhZ2VzW3NdLndpZGdldHMubGVuZ3RoO24rKyl7Y29uc3QgYT1lLnBhZ2VzW3NdLndpZGdldHNbbl0sbz1pW2EudHlwZV18fDA7dC53aWRnZXRzW2EudHlwZV0mJnQud2lkZ2V0c1thLnR5cGVdW29dJiZPYmplY3QuYXNzaWduKGEsdC53aWRnZXRzW2EudHlwZV1bb10pLGlbYS50eXBlXT1vKzF9cmV0dXJuIGV9c2F2ZVRvVFZTZXR0aW5ncygpe2lmKCF0aGlzLl9zZXR0aW5nc1ByZWZpeClyZXR1cm47aWYoIXRoaXMubGF5b3V0KXJldHVybjtjb25zdCBlPXRoaXMubGF5b3V0Lm1hcnNoYWwoKTt0aGlzLl9zZXRTZXJpYWxpemVkU3RhdGVUb1NldHRpbmdzKGUpfWdldEdlbmVyaWNMYXlvdXRTdGF0ZShlKXtjb25zdCB0PXt2ZXJzaW9uOjIsd2lkdGg6MzAwLHBhZ2VzOltdfSxzPXdpbmRvdy5pc19hdXRoZW50aWNhdGVkJiZ3aW5kb3cuVHJhZGluZ1ZpZXcub25DaGFydFBhZ2Usbj0hISgwLEQuaXNGZWF0dXJlc2V0RW5hYmxlZCkoIndpZGdldCIpLG89W3tfZ2FFdmVudDoiR2VuZXJhbCBXaWRnZXQiLHRpdGxlOmEudChudWxsLHZvaWQgMCxpKDM2ODg3NCkpLG5hbWU6ImJhc2UiLGljb246TWUsd2lkZ2V0czpbe3R5cGU6IndhdGNobGlzdCIscHJvcGVydGllczplJiZlLmxlbmd0aD97bGlzdDplfTp2b2lkIDB9LHt0eXBlOiJkZXRhaWwifSx7dHlwZToibmV3cyIsaXNFbmFibGVkOiExfV19LCgwLEQuaXNGZWF0dXJlc2V0RW5hYmxlZCkoImFsZXJ0cyIpP3tfZ2FFdmVudDoiQWxlcnRzIix0aXRsZTphLnQobnVsbCx2b2lkIDAsaSgyNDU4NzApKSxuYW1lOiJhbGVydHMiLGljb246a2UsVGFiQnV0dG9uQ29tcG9uZW50OlRlLHdpZGdldHM6W3t0eXBlOiJhbGVydHMiLHByb3BlcnRpZXM6e319XSxjcmVhdGVDb3VudGVyQXJpYUxhYmVsOkxlfTpudWxsLG51bGwsdGhpcy5jaGFydFdpZGdldENvbGxlY3Rpb24mJiF0aGlzLmNoYXJ0V2lkZ2V0Q29sbGVjdGlvbi5yZWFkT25seSgpP3tfZ2FFdmVudDoiT2JqZWN0IHRyZWUiLHRpdGxlOmEudChudWxsLHZvaWQgMCxpKDMzNjQ4OSkpLG5hbWU6Im9iamVjdF90cmVlIixpY29uOkFlLHdpZGdldHM6W3t0eXBlOiJvYmplY3RfdHJlZSIscHJvcGVydGllczp7c2VsZWN0ZWRQYWdlOiJvYmplY3RfdHJlZSJ9fV19Om51bGwsbj97X2dhRXZlbnQ6IkNhbGVuZGFyIix0aXRsZTphLnQobnVsbCx2b2lkIDAsaSg0NjY2MTIpKSxuYW1lOiJjYWxlbmRhciIsaWNvbjpJZSx3aWRnZXRzOlt7dHlwZToicmV1dGVyc19jYWxlbmRhciIscHJvcGVydGllczp7fX0se3R5cGU6ImVhcm5pbmdzX2NhbGVuZGFyIixwcm9wZXJ0aWVzOnt9fV19Om51bGwsIXdpbmRvdy5pc19hdXRoZW50aWNhdGVkfHwoMCxELmlzRmVhdHVyZXNldEVuYWJsZWQpKCJoaWRlX2NoYXRzX3BhZ2UiKT9udWxsOntfZ2FFdmVudDoiQ2hhdHMiLHRpdGxlOmEudChudWxsLHZvaWQgMCxpKDk5ODc2NSkpLG5hbWU6InVuaW9uX2NoYXRzIixpY29uOlZlLHdpZGdldHM6W3t0eXBlOiJ1bmlvbmNoYXRzIn1dfSxzP3tfZ2FFdmVudDoiUGluZSBsb2dzIix0aXRsZTphLnQobnVsbCx2b2lkIDAsaSg5NTM0MTApKSxuYW1lOiJwaW5lX2xvZ3MiLGljb246VmUsd2lkZ2V0czpbe3R5cGU6InBpbmVfbG9ncyJ9XSxUYWJCdXR0b25Db21wb25lbnQ6Q2V9Om51bGxdO2ZvcihsZXQgZT0wO2U8by5sZW5ndGg7ZSsrKXtjb25zdCBpPW9bZV07aSYmdC5wYWdlcy5wdXNoKGkpfXJldHVybiB0fWdldENoYXJ0aW5nUGxhdGZvcm1MYXlvdXRTdGF0ZShlLHQpe2NvbnN0IHM9e3ZlcnNpb246Mix3aWR0aDozMDAscGFnZXM6W119O2lmKHRoaXMuX2N1c3RvbWl6YXRpb24ud2F0Y2hsaXN0fHx0aGlzLl9jdXN0b21pemF0aW9uLmRldGFpbHN8fHRoaXMuX2N1c3RvbWl6YXRpb24ubmV3cyl7bGV0IG49IiI7Y29uc3Qgbz1bXTt0aGlzLl9jdXN0b21pemF0aW9uLndhdGNobGlzdCYmKG49YS50KG51bGwsdm9pZCAwLGkoMzk3Nzg4KSksby5wdXNoKHt0eXBlOiJ3YXRjaGxpc3QiLGlkOiJ3YXRjaGxpc3QuIit0LHByb3BlcnRpZXM6ZSYmZS5sZW5ndGg/e2xpc3Q6ZX06dm9pZCAwfSkpLHRoaXMuX2N1c3RvbWl6YXRpb24uZGV0YWlscyYmKG49dGhpcy5fY3VzdG9taXphdGlvbi53YXRjaGxpc3Q/YS50KG51bGwsdm9pZCAwLGkoMzcyMDY5KSk6YS50KG51bGwsdm9pZCAwLGkoNDQzNDQ3KSksby5wdXNoKHt0eXBlOiJkZXRhaWwifSkpLHRoaXMuX2N1c3RvbWl6YXRpb24ubmV3cyYmKG49dGhpcy5fY3VzdG9taXphdGlvbi53YXRjaGxpc3QmJnRoaXMuX2N1c3RvbWl6YXRpb24uZGV0YWlscz9hLnQobnVsbCx2b2lkIDAsaSgyMDM1MDApKTp0aGlzLl9jdXN0b21pemF0aW9uLndhdGNobGlzdD9hLnQobnVsbCx2b2lkIDAsaSg2MTQ1MzcpKTphLnQobnVsbCx2b2lkIDAsaSgxOTkzMTEpKSxvLnB1c2goe3R5cGU6Im5ld3MiLGlkOiJuZXdzLiIrdH0pKSxzLnBhZ2VzLnB1c2goe25hbWU6ImJhc2UiLHRpdGxlOm4saWNvbjpNZSx3aWRnZXRzOm99KX1yZXR1cm4gdGhpcy5fY3VzdG9taXphdGlvbi5kYXRhd2luZG93JiZzLnBhZ2VzLnB1c2goe3RpdGxlOmEudChudWxsLHtjb250ZXh0OiJXaWRnZXQgbmFtZSJ9LGkoMjg5NzI5KSksbmFtZToiZGF0YS13aW5kb3ciLGljb246SGUsd2lkZ2V0czpbe3R5cGU6ImRhdGF3aW5kb3cifV19KSwoemV8fFJlJiYhemUpJiZPZSYmdGhpcy5jaGFydFdpZGdldENvbGxlY3Rpb24mJiF0aGlzLmNoYXJ0V2lkZ2V0Q29sbGVjdGlvbi5yZWFkT25seSgpJiZzLnBhZ2VzLnB1c2goe3RpdGxlOmEudChudWxsLHsKY29udGV4dDoiV2lkZ2V0IG5hbWUifSxpKDY5NjkxMikpLG5hbWU6Im9iamVjdF90cmVlIixpY29uOkFlLHdpZGdldHM6W3t0eXBlOiJvYmplY3RfdHJlZSJ9XX0pLHN9Z2V0TGF5b3V0U3RhdGUoKXtjb25zdCBlPXYuZ2V0SlNPTigid2F0Y2hsaXN0Lmxpc3QiLFtdKTtsZXQgdDt0PSgwLEQuaXNGZWF0dXJlc2V0RW5hYmxlZCkoInRyYWRpbmdfdGVybWluYWwiKT90aGlzLmdldENoYXJ0aW5nUGxhdGZvcm1MYXlvdXRTdGF0ZShlLCJ0ZXJtaW5hbCIpOnRoaXMuZ2V0R2VuZXJpY0xheW91dFN0YXRlKGUpO2NvbnN0IGk9ZT0+ISh2b2lkIDAhPT1lLmlzRW5hYmxlZCYmIWUuaXNFbmFibGVkKSYmKHRoaXMuY2hhcnRXaWRnZXRDb2xsZWN0aW9ufHwhKDAsbi5lbnN1cmUpKFRbZS50eXBlXSkuY2hhcnRXaWRnZXRSZXF1aXJlZCk7Zm9yKGxldCBlPXQucGFnZXMubGVuZ3RoLTE7ZT49MDtlLS0pe2NvbnN0IHM9dC5wYWdlc1tlXTtzLndpZGdldHM9cy53aWRnZXRzLmZpbHRlcihpKX1yZXR1cm4gdC5wYWdlcz10LnBhZ2VzLmZpbHRlcigoZT0+ZS53aWRnZXRzJiZlLndpZGdldHMubGVuZ3RoKSksdH1zZXRQYWdlKGUpe2lmKCF0aGlzLmxheW91dClyZXR1cm4gbnVsbDt0aGlzLmxheW91dC5zZXRNaW5pbWl6ZWRTdGF0ZSghMSk7bGV0IHQ9dGhpcy5sYXlvdXQuYWN0aXZlSW5kZXg7cmV0dXJuIHRoaXMubGF5b3V0LnBhZ2VzLmZvckVhY2goKChpLHMpPT57aS5uYW1lPT09ZSYmKHQ9cyl9KSksdGhpcy5sYXlvdXQuc3dpdGNoUGFnZSh0KSx0aGlzLmxheW91dC5nZXRBY3RpdmVQYWdlKCl9Y3JlYXRlSFRNTCgpe2NvbnN0IGU9dGhpcy5fY29udGFpbmVyO2lmKCFlKXJldHVybjtpZighdGhpcy5sYXlvdXQpcmV0dXJuO2UuaW5uZXJIVE1MPSIiLHRoaXMubGF5b3V0LmNyZWF0ZUhUTUwoKTtjb25zdCB0PXRoaXMuX3dyYXA9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7dC5jbGFzc0xpc3QudmFsdWU9IndpZGdldGJhci13cmFwIHVuc2VsZWN0YWJsZSIsdC5zZXRBdHRyaWJ1dGUoImRhdGEtbmFtZSIsIndpZGdldGJhci13cmFwIiksZS5hcHBlbmRDaGlsZCh0KTtjb25zdCBpPXRoaXMubGF5b3V0LmVsZW1lbnQoInRhYnMiKTt6ZSYmaSYmdGhpcy5fd3JhcC5hcHBlbmRDaGlsZChpKTtjb25zdCBzPXRoaXMubGF5b3V0LmVsZW1lbnQoInBhZ2VzIik7cyYmdGhpcy5fd3JhcC5hcHBlbmRDaGlsZChzKTtjb25zdCBuPXRoaXMubGF5b3V0LmVsZW1lbnQoImhpZGVyIik7biYmdGhpcy5fd3JhcC5hcHBlbmRDaGlsZChuKX1nZXRXcmFwRWxlbWVudCgpe3JldHVybiB0aGlzLl93cmFwfV9nZXRTZXJpYWxpemVkU3RhdGVGcm9tU2V0dGluZygpe3JldHVybiB0aGlzLl9zZXR0aW5nc1ByZWZpeD9TZS5zZXNzaW9uVGhlblR2U2V0dGluZ3MuZ2V0KHRoaXMuX3NldHRpbmdzUHJlZml4KyIubGF5b3V0LXNldHRpbmdzIixudWxsLGplKTpudWxsfV9zZXRTZXJpYWxpemVkU3RhdGVUb1NldHRpbmdzKGUpe3RoaXMuX3NldHRpbmdzUHJlZml4JiZTZS5zZXNzaW9uVGhlblR2U2V0dGluZ3Muc2V0KHRoaXMuX3NldHRpbmdzUHJlZml4KyIubGF5b3V0LXNldHRpbmdzIixlKX19ZnVuY3Rpb24gamUoZSl7cmV0dXJuIm9iamVjdCI9PXR5cGVvZiBlJiZudWxsIT09ZSYmInNldHRpbmdzImluIGUmJiJvYmplY3QiPT10eXBlb2YgZS5zZXR0aW5ncyYmIndpZGdldHMiaW4gZSYmIm9iamVjdCI9PXR5cGVvZiBlLndpZGdldHN9fSw2MTYzMTEoZSx0LGkpeyJ1c2Ugc3RyaWN0IjtpLmQodCx7dXNlSXNvbW9ycGhpY0xheW91dEVmZmVjdDooKT0+bn0pO3ZhciBzPWkoNzc5NDc0KTtmdW5jdGlvbiBuKGUsdCl7KCJ1bmRlZmluZWQiPT10eXBlb2Ygd2luZG93P3MudXNlRWZmZWN0OnMudXNlTGF5b3V0RWZmZWN0KShlLHQpfX0sMTI4ODE0KGUsdCxpKXsidXNlIHN0cmljdCI7aS5kKHQse1F1b3RlU2Vzc2lvblNuYXBzaG90ZXI6KCk9PmN9KTt2YXIgcz1pKDk0ODM4MCksbj1pKDE1MDE1MCksYT1pKDIxNDk4Nyksbz1pKDEzODYzOCkscj1pKDM2Nzk0NiksbD1pKDk3MDc3NCksZD1pKDMwOTA1Mik7Y29uc3QgaD1uZXcgTWFwKFtbImNoYW5nZSIsImNoIl0sWyJsYXN0X3ByaWNlIiwibHAiXSxbImNoYW5nZV9wZXJjZW50IiwiY2hwIl0sWyJ1cGRhdGVfbW9kZV9zZWNvbmRzIixudWxsXV0pO25ldyBNYXAoW1siY2giLCJjaGFuZ2UiXSxbImxwIiwibGFzdF9wcmljZSJdLFsiY2hwIiwiY2hhbmdlX3BlcmNlbnQiXV0pO2NsYXNzIGN7Y29uc3RydWN0b3IoZSl7aWYodGhpcy5fb25TeW1ib2xEYXRhPW5ldyBzLkRlbGVnYXRlLHRoaXMuX2luY29tcGxldGU9bmV3IFNldCx0aGlzLl91cGRhdGVkRmllbGRzPW5ldyBNYXAsdGhpcy5fY29ubmVjdGVkPSExLHRoaXMuX2JhdGNoZXI9bnVsbCx0aGlzLl9oYW5kbGVyPWU9Pntzd2l0Y2goZS5tZXRob2Qpe2Nhc2UiY29ubmVjdGVkIjp0aGlzLl9jb25uZWN0ZWR8fCh0aGlzLl9jb25uZWN0ZWQ9ITAsdGhpcy5faGFuZGxlQ29ubmVjdGVkKCkpO2JyZWFrO2Nhc2UicXVvdGVfc3ltYm9sX2RhdGEiOnRoaXMuX2Nvbm5lY3RlZCYmdGhpcy5faGFuZGxlU3ltYm9sRGF0YShlLnBhcmFtc1swXSk7YnJlYWs7Y2FzZSJxdW90ZV9jb21wbGV0ZWQiOnRoaXMuX2Nvbm5lY3RlZCYmdGhpcy5faGFuZGxlQ29tcGxldGVEYXRhKGUucGFyYW1zWzBdKTticmVhaztjYXNlImRpc2Nvbm5lY3RlZCI6dGhpcy5fY29ubmVjdGVkJiYodGhpcy5fY29ubmVjdGVkPSExLHRoaXMuX2JhdGNoZXI9bnVsbCl9fSwwPT09ZS5maWVsZHMubGVuZ3RoKXRocm93IG5ldyBFcnJvcignU3VwcG9ydCBmb3IgZW1wdHkgImZpZWxkcyIgYXJyYXkgaXMgbm90IGltcGxlbWVudGVkJyk7Y29uc3R7cHJvdmlkZXI6dD1sLlF1b3RlU2Vzc2lvbn09ZTt0aGlzLl9maWVsZHM9bmV3IFNldChlLmZpZWxkcyksdGhpcy5fc2Vzc2lvbj1uZXcgdChlLmFwaSxbInNuYXBzaG90ZXIiLGUubmFtZSwoMCxuLnJhbmRvbUhhc2gpKCldLmZpbHRlcihCb29sZWFuKS5qb2luKCJfIikpLHRoaXMuX3Nlc3Npb24uY29ubmVjdCh0aGlzLl9oYW5kbGVyKX1nZXRTbmFwc2hvdFN5bmMoZSx0KXtjb25zdCBpPWMuY2FjaGUuZ2V0KGUpCjtyZXR1cm4gaSYmdGhpcy5faXNTbmFwc2hvdFJlYWR5KGkse2ZpZWxkczp0LHRpbWVzdGFtcDpudWxsfSk/aTpudWxsfWdldFNuYXBzaG90c0ZvckFsbFN5bmMoZSx0KXtyZXR1cm4gZS5tYXAoKGU9PnRoaXMuZ2V0U25hcHNob3RTeW5jKGUsdCkpKX1nZXRTbmFwc2hvdChlLHQsaSl7Y29uc3Qgcz1pPy5zaWduYWw/P251bGwsbj1pPy5mcmVzaG5lc3Mscj12b2lkIDAhPT1uP0RhdGUubm93KCktbjpudWxsO3JldHVybiBuZXcgUHJvbWlzZSgoKGksbik9PntpZihzJiZzLmFib3J0ZWQpdGhyb3coMCxhLmNyZWF0ZUFib3J0RXJyb3IpKCk7Y29uc3QgbD0oKT0+e3RoaXMuX29uU3ltYm9sRGF0YS51bnN1YnNjcmliZSh0aGlzLGQpLG4oKDAsYS5jcmVhdGVBYm9ydEVycm9yKSgpKX0sZD0obj1lKT0+e2lmKG4hPT1lKXJldHVybjtjb25zdCBhPWMuY2FjaGUuZ2V0KGUpO2EmJnRoaXMuX2lzU25hcHNob3RSZWFkeShhLHt0aW1lc3RhbXA6cixzeW1ib2w6ZSxmaWVsZHM6dH0pJiYodGhpcy5fb25TeW1ib2xEYXRhLnVuc3Vic2NyaWJlKHRoaXMsZCkscz8ucmVtb3ZlRXZlbnRMaXN0ZW5lcigiYWJvcnQiLGwpLGkoYSkpfTtpZighKCgpPT57Y29uc3Qgcz1jLmNhY2hlLmdldChlKTtpZighcylyZXR1cm4hMTtjb25zdCBuPSgwLG8uZW5zdXJlTm90TnVsbCkoYy5jYWNoZS5nZXRUaW1lcyhlKSk7cmV0dXJuISF0aGlzLl9pc1NuYXBzaG90UmVhZHkocyx7ZmllbGRzOnQsc3ltYm9sOmUsdGltZXN0YW1wOnIsdGltZXM6bn0pJiYoaShzKSwhMCl9KSgpJiYocz8uYWRkRXZlbnRMaXN0ZW5lcigiYWJvcnQiLGwse29uY2U6ITB9KSx0aGlzLl9vblN5bWJvbERhdGEuc3Vic2NyaWJlKHRoaXMsZCksIXRoaXMuX2luY29tcGxldGUuaGFzKGUpKSl7aWYodGhpcy5fdXBkYXRlZEZpZWxkcy5zZXQoZSxuZXcgU2V0KSx0aGlzLl9pbmNvbXBsZXRlLmFkZChlKSwhdGhpcy5fY29ubmVjdGVkKXJldHVybjtpZihudWxsPT09dGhpcy5fYmF0Y2hlcil7Y29uc3QgdD10aGlzLl9iYXRjaGVyPXtzeW1ib2xzOm5ldyBTZXQoW2VdKSxwcm9taXNlOlByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCgpPT57dGhpcy5fYmF0Y2hlcj09PXQmJih0aGlzLl9zZXNzaW9uLnF1b3RlQWRkU3ltYm9scyhbLi4udC5zeW1ib2xzXSksdGhpcy5fYmF0Y2hlcj1udWxsKX0pKX19ZWxzZSB0aGlzLl9iYXRjaGVyLnN5bWJvbHMuYWRkKGUpfX0pKX1nZXRTbmFwc2hvdHNGb3JBbGwoZSx0LGkpe3JldHVybiBQcm9taXNlLmFsbChlLm1hcCgoZT0+dGhpcy5nZXRTbmFwc2hvdChlLHQsaSkpKSl9c3RhdGljIHJlbGF4KGUpe3JldHVybiBlfXN0YXRpYyBpc1N1Y2Nlc3MoZSl7cmV0dXJuImVycm9yIiE9PWUuc3RhdHVzfXN0YXRpYyBoYXNBbGxGaWVsZHMoZSx0KXtmb3IoY29uc3QgaSBvZiBBcnJheS5mcm9tKHQpKWlmKCFlLmhhc093blByb3BlcnR5KGkpKXJldHVybiExO3JldHVybiEwfV9pc1NuYXBzaG90UmVhZHkoZSx0KXtjb25zdHtmaWVsZHM6aSx0aW1lc3RhbXA6cyx0aW1lczpuLHN5bWJvbDphfT10O3JldHVybiJlcnJvciI9PT1lLnN0YXR1c3x8KG51bGwhPT1zJiZuP3RoaXMuX2lzQWxsRmllbGRzVXBUb0RhdGUoZSxuLGkscyk6bnVsbCE9PXMmJmE/dGhpcy5faXNBbGxGaWVsZHNVcGRhdGVkKGUsYSxpKTp0aGlzLl9oYXNBbGxGaWVsZHMoZSxpKSl9X2lzQWxsRmllbGRzVXBkYXRlZChlLHQsaSl7aWYoImVycm9yIj09PWUuc3RhdHVzKXJldHVybiEwO2NvbnN0IHM9dGhpcy5fdXBkYXRlZEZpZWxkcy5nZXQodCk7aWYoIXN8fCFzLnNpemUpcmV0dXJuITE7Zm9yKGNvbnN0IGUgb2YgQXJyYXkuZnJvbShpKSlpZighcy5oYXMoZSkpcmV0dXJuITE7cmV0dXJuITB9X2hhc0FsbEZpZWxkcyhlLHQpe3JldHVybiBjLmhhc0FsbEZpZWxkcyhlLnZhbHVlcyxBcnJheS5mcm9tKHQpKX1faXNBbGxGaWVsZHNVcFRvRGF0ZShlLHQsaSxzKXtpZigiZXJyb3IiPT09ZS5zdGF0dXMpcmV0dXJuITA7aWYoIXQpcmV0dXJuITE7Zm9yKGNvbnN0IGUgb2YgQXJyYXkuZnJvbShpKSl7Y29uc3QgaT10LmdldChlKTtpZighdC5oYXMoZSl8fHZvaWQgMD09PWkpcmV0dXJuITE7aWYoaTxzKXJldHVybiExfXJldHVybiEwfV9oYW5kbGVDb25uZWN0ZWQoKXtpZih0aGlzLl9maWVsZHMuc2l6ZT4wKXtjb25zdCBlPVsuLi50aGlzLl9maWVsZHNdLmZsYXRNYXAoKGU9Pntjb25zdCB0PWguZ2V0KGUpO3JldHVybiBudWxsIT09dD90Pz9lOltdfSkpO3RoaXMuX3Nlc3Npb24ucXVvdGVTZXRGaWVsZHMoZSl9dGhpcy5faW5jb21wbGV0ZS5zaXplPjAmJnRoaXMuX3Nlc3Npb24ucXVvdGVBZGRTeW1ib2xzKFsuLi50aGlzLl9pbmNvbXBsZXRlXSl9X2hhbmRsZUNvbXBsZXRlRGF0YShlKXtjb25zdCB0PWMuY2FjaGUuZ2V0KGUpPz97c3ltYm9sbmFtZTplLHN0YXR1czoib2siLHZhbHVlczp7fX07Yy5jYWNoZS51cGRhdGUodCx0aGlzLl9maWVsZHMsITApLHRoaXMuX3VwZGF0ZWRGaWVsZHMuc2V0KGUsdGhpcy5fZmllbGRzKSx0aGlzLl9zZXNzaW9uLnF1b3RlUmVtb3ZlU3ltYm9scyhbZV0pLHRoaXMuX2luY29tcGxldGUuZGVsZXRlKGUpLHRoaXMuX29uU3ltYm9sRGF0YS5maXJlKGUpfV9oYW5kbGVTeW1ib2xEYXRhKGUpeygwLHIubm9ybWFsaXplVXBkYXRlTW9kZSkoZS52YWx1ZXMpLGMuY2FjaGUudXBkYXRlKGUsdGhpcy5fZmllbGRzLCExKTtjb25zdCB0PWUuc3ltYm9sbmFtZSxpPSgwLG8uZW5zdXJlRGVmaW5lZCkodGhpcy5fdXBkYXRlZEZpZWxkcy5nZXQodCkpLHM9bmV3IFNldChpKTtmb3IoY29uc3QgdCBvZiB0aGlzLl9maWVsZHMpZS52YWx1ZXMuaGFzT3duUHJvcGVydHkodCkmJnMuYWRkKHQpO3RoaXMuX3VwZGF0ZWRGaWVsZHMuc2V0KHQscyksImVycm9yIj09PWUuc3RhdHVzP3RoaXMuX2hhbmRsZUNvbXBsZXRlRGF0YSh0KTp0aGlzLl9vblN5bWJvbERhdGEuZmlyZSh0KX19Yy5jYWNoZT1kLlFVT1RFX0ZJRUxEU19DQUNIRX0sNjIzNTExKGUsdCxpKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gcyhlKXtsZXQgdD1udWxsO3JldHVybigpPT4obnVsbD09PXQmJih0PWUoKSksdCl9aS5kKHQse2xhenlWYWx1ZTooKT0+c30pfSw0NTk0ODgoZSx0LGkpeyJ1c2Ugc3RyaWN0Igo7aS5kKHQse2h0bWw6KCk9Pm4scG9zaXRpb246KCk9Pm99KTt2YXIgcz1pKDEzODYzOCk7ZnVuY3Rpb24gbihlLHQpe3JldHVybiB2b2lkIDA9PT10fHwobnVsbD09PXQmJihlLmlubmVySFRNTD0iIiksInN0cmluZyIhPXR5cGVvZiB0JiYibnVtYmVyIiE9dHlwZW9mIHR8fChlLmlubmVySFRNTD1TdHJpbmcodCkpKSxlfWZ1bmN0aW9uIGEoZSl7aWYoIWUuZ2V0Q2xpZW50UmVjdHMoKS5sZW5ndGgpcmV0dXJue3RvcDowLGxlZnQ6MH07Y29uc3QgdD1lLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLGk9KDAscy5lbnN1cmVOb3ROdWxsKShlLm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXcpO3JldHVybnt0b3A6dC50b3AraS5wYWdlWU9mZnNldCxsZWZ0OnQubGVmdCtpLnBhZ2VYT2Zmc2V0fX1mdW5jdGlvbiBvKGUpe2NvbnN0IHQ9Z2V0Q29tcHV0ZWRTdHlsZShlKTtsZXQgaSxzPXt0b3A6MCxsZWZ0OjB9O2lmKCJmaXhlZCI9PT10LnBvc2l0aW9uKWk9ZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtlbHNle2k9YShlKTtjb25zdCB0PWUub3duZXJEb2N1bWVudDtsZXQgbj1lLm9mZnNldFBhcmVudHx8dC5kb2N1bWVudEVsZW1lbnQ7Zm9yKDtuJiYobj09PXQuYm9keXx8bj09PXQuZG9jdW1lbnRFbGVtZW50KSYmInN0YXRpYyI9PT1nZXRDb21wdXRlZFN0eWxlKG4pLnBvc2l0aW9uOyluPW4ucGFyZW50RWxlbWVudDtuJiZuIT09ZSYmMT09PW4ubm9kZVR5cGUmJihzPWEobikscy50b3ArPXBhcnNlRmxvYXQoZ2V0Q29tcHV0ZWRTdHlsZShuKS5ib3JkZXJUb3BXaWR0aCkscy5sZWZ0Kz1wYXJzZUZsb2F0KGdldENvbXB1dGVkU3R5bGUobikuYm9yZGVyTGVmdFdpZHRoKSl9cmV0dXJue3RvcDppLnRvcC1zLnRvcC1wYXJzZUZsb2F0KHQubWFyZ2luVG9wKSxsZWZ0OmkubGVmdC1zLmxlZnQtcGFyc2VGbG9hdCh0Lm1hcmdpbkxlZnQpfX19LDc4ODAxKGUsdCxpKXsidXNlIHN0cmljdCI7aS5kKHQse3Nlc3Npb25UaGVuTG9jYWw6KCk9PnMsc2Vzc2lvblRoZW5UdlNldHRpbmdzOigpPT5ufSk7dmFyIHM9e307aS5yKHMpLGkuZChzLHtnZXQ6KCk9PmIsbG9nZ2VyOigpPT5wLHNldDooKT0+X30pO3ZhciBuPXt9O2kucihuKSxpLmQobix7Z2V0OigpPT55LGxvZ2dlcjooKT0+dixzZXQ6KCk9Pnd9KTt2YXIgYT1pKDIyMTA2MSksbz1pKDkzMjM2NSkscj1pKDIzNzM2OSksbD1pKDc3NjE3MyksZD1pKDgzOTQyNiksaD1pKDU2OTM5OCk7Y29uc3QgYz0oMCxhLmdldExvZ2dlcikoIkxpYi5TZXNzaW9uU2NvcGVkU2V0dGluZ3MiKTtjb25zdCB1PSgwLGQuZGVmYXVsdCkoKCgpPT57cmV0dXJuIHZvaWQgMCE9PXdpbmRvdy5UVkQ/bnVsbCE9KGU9d2luZG93LlRWRC5zZXNzaW9uU3RvcmFnZSkmJiJvYmplY3QiPT10eXBlb2YgZSYmImdldEl0ZW0iaW4gZSYmImZ1bmN0aW9uIj09dHlwZW9mIGUuZ2V0SXRlbSYmInNldEl0ZW0iaW4gZSYmImZ1bmN0aW9uIj09dHlwZW9mIGUuc2V0SXRlbSYmKDAsaC5pc0ZlYXR1cmVFbmFibGVkKSgidXNlX2Rlc2t0b3Bfc2Vzc2lvbl9zdG9yYWdlIik/d2luZG93LlRWRC5zZXNzaW9uU3RvcmFnZTpudWxsOigwLGguaXNGZWF0dXJlRW5hYmxlZCkoInVzZV9icm93c2VyX3Nlc3Npb25fc3RvcmFnZSIpP3dpbmRvdy5zZXNzaW9uU3RvcmFnZTpudWxsO3ZhciBlfSkpO2Z1bmN0aW9uIGcoZSx0KXtjb25zdCBpPXUoKTtpZihudWxsIT09aSl0cnl7aS5zZXRJdGVtKGUsdCl9Y2F0Y2goZSl7Yz8ubG9nV2Fybihgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSBmYWlsZWQsIGJlY2F1c2Ugb2YgZXhjZXB0aW9uOiAkeygwLHIuZ2V0RXJyb3JNZXNzYWdlKShlKX1gKX19ZnVuY3Rpb24gbShlKXtjb25zdCB0PXUoKTtyZXR1cm4gbnVsbD09PXQ/bnVsbDp0LmdldEl0ZW0oZSl9Y29uc3QgcD0oMCxhLmdldExvZ2dlcikoIkxpYi5TZXNzaW9uU2NvcGVkU2V0dGluZ3MiKTtmdW5jdGlvbiBfKGUsdCl7dHJ5e2NvbnN0IGk9KDAsbC5zZXR0aW5nVmFsdWVUb1N0cmluZykodCk7ZyhlLGkpLG8uVFZMb2NhbFN0b3JhZ2Uuc2V0SXRlbShlLGkpfWNhdGNoKGUpe3A/LmxvZ1dhcm4oYHNlc3Npb25UaGVuTG9jYWwuc2V0IGZhaWxlZDogJHsoMCxyLmdldEVycm9yTWVzc2FnZSkoZSl9YCl9fWZ1bmN0aW9uIGIoZSx0LGkpe3RyeXtyZXR1cm4oMCxsLnBhcnNlU2V0dGluZ1ZhbHVlKShmdW5jdGlvbihlLHQpe2xldCBpPW0oZSk7bnVsbD09PWkmJihpPW8uVFZMb2NhbFN0b3JhZ2UuZ2V0SXRlbShlKT8/dCxnKGUsaSkpO3JldHVybiBpfShlLCgwLGwuc2V0dGluZ1ZhbHVlVG9TdHJpbmcpKHQpKSxpKX1jYXRjaChlKXtyZXR1cm4gcD8ubG9nV2Fybihgc2Vzc2lvblRoZW5Mb2NhbC5nZXQgaXMgYWJvdXQgdG8gcmV0dXJuIHRoZSBkZWZhdWx0IHZhbHVlIGR1ZSB0byBlcnJvcjogJHsoMCxyLmdldEVycm9yTWVzc2FnZSkoZSl9YCksdH19dmFyIGY9aSg5MzA1NjYpO2NvbnN0IHY9KDAsYS5nZXRMb2dnZXIpKCJMaWIuU2Vzc2lvblNjb3BlZFNldHRpbmdzIik7ZnVuY3Rpb24gdyhlLHQpe3RyeXtjb25zdCBpPSgwLGwuc2V0dGluZ1ZhbHVlVG9TdHJpbmcpKHQpO2coZSxpKSxmLnNldFZhbHVlKGUsaSl9Y2F0Y2goZSl7dj8ubG9nV2Fybihgc2Vzc2lvblRoZW5UdlNldHRpbmdzLnNldCBmYWlsZWQ6ICR7KDAsci5nZXRFcnJvck1lc3NhZ2UpKGUpfWApfX1mdW5jdGlvbiB5KGUsdCxpKXt0cnl7cmV0dXJuKDAsbC5wYXJzZVNldHRpbmdWYWx1ZSkoZnVuY3Rpb24oZSx0KXtsZXQgaT1tKGUpO251bGw9PT1pJiYoaT1mLmdldFZhbHVlKGUpPz90LGcoZSxpKSk7cmV0dXJuIGl9KGUsKDAsbC5zZXR0aW5nVmFsdWVUb1N0cmluZykodCkpLGkpfWNhdGNoKGUpe3JldHVybiB2Py5sb2dXYXJuKGBzZXNzaW9uVGhlblR2U2V0dGluZ3MuZ2V0IGlzIGFib3V0IHRvIHJldHVybiB0aGUgZGVmYXVsdCB2YWx1ZSBkdWUgdG8gZXJyb3I6ICR7KDAsci5nZXRFcnJvck1lc3NhZ2UpKGUpfWApLHR9fX0sNzc2MTczKGUsdCxpKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gcyhlLHQpe2NvbnN0IGk9SlNPTi5wYXJzZShlKTtpZih2b2lkIDA9PT10KXJldHVybiBpO2lmKHQoaSkpcmV0dXJuIGkKO3Rocm93IG5ldyBUeXBlRXJyb3IoIlBhcnNlZCB2YWx1ZSBkb2VzIG5vdCBzYXRpc2Z5IHRoZSBwcm92aWRlZCB2YWxpZGF0aW9uIHByZWRpY2F0ZSIpfWZ1bmN0aW9uIG4oZSl7cmV0dXJuIEpTT04uc3RyaW5naWZ5KGUpfWkuZCh0LHtwYXJzZVNldHRpbmdWYWx1ZTooKT0+cyxzZXR0aW5nVmFsdWVUb1N0cmluZzooKT0+bn0pfSw3NTU2NzAoZSx0LGkpeyJ1c2Ugc3RyaWN0IjtpLmQodCx7dHJhY2tSaWdodFBhbmVsUHJvZHVjdHM6KCk9PmF9KTt2YXIgcz1pKDM2MjIzOSksbj1pKDg1NjE5Nik7ZnVuY3Rpb24gYShlKXt3aW5kb3cuVHJhZGluZ1ZpZXcub25DaGFydFBhZ2UmJigwLG4uc2hvdWxkQWZmZWN0VXNlcikoIlJpZ2h0UGFuZWxQcm9kdWN0c1RyYWNraW5nIiwuMSkmJigwLHMuZ2V0VHJhY2tlcikoKS50aGVuKCh0PT57dCYmdC50cmFja1JpZ2h0UGFuZWxQcm9kdWN0c0V2ZW50KGUpfSkpfX0sNTUwOTQzKGUsdCxpKXsidXNlIHN0cmljdCI7aS5kKHQse2VzY2FwZUNTVlZhbHVlOigpPT5sLHNhdmVUZXh0RmlsZTooKT0+bn0pO3ZhciBzPWkoMzE4OTc0KTtmdW5jdGlvbiBuKGUsdCxpPSJ0ZXh0L3BsYWluIil7Y29uc3Qgbj1uZXcgQmxvYihbdF0se3R5cGU6aX0pO2lmKHMuQ2hlY2tNb2JpbGUuaU9TKCkpe2NvbnN0IHQ9bmV3IEZpbGVSZWFkZXI7cmV0dXJuIHQub25sb2FkPSgpPT57dC5yZXN1bHQmJmEoZSx0LnJlc3VsdC50b1N0cmluZygpKX0sdm9pZCB0LnJlYWRBc0RhdGFVUkwobil9Y29uc3Qgbz13aW5kb3cuVVJMLmNyZWF0ZU9iamVjdFVSTChuKTtuYXZpZ2F0b3IubXNTYXZlT3JPcGVuQmxvYj9uYXZpZ2F0b3IubXNTYXZlT3JPcGVuQmxvYihuLGUpOndpbmRvdy5uYXZpZ2F0b3IubXNTYXZlQmxvYj93aW5kb3cubmF2aWdhdG9yLm1zU2F2ZUJsb2IobixlKTooYShlLG8pLHdpbmRvdy5VUkwucmV2b2tlT2JqZWN0VVJMKG8pKX1mdW5jdGlvbiBhKGUsdCl7Y29uc3QgaT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJhIik7aS5zdHlsZS5kaXNwbGF5PSJub25lIixkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGkpLGkuaHJlZj10LGkuZG93bmxvYWQ9ZSxpLmNsaWNrKCksZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChpKX1jb25zdCBvPS9bIixcclxuXS8scj0vIi9nO2Z1bmN0aW9uIGwoZSl7cmV0dXJuIG8udGVzdChlKT9gIiR7ZS5yZXBsYWNlKHIsJyIiJyl9ImA6ZX19LDg5MzExNShlLHQsaSl7InVzZSBzdHJpY3QiO2kuZCh0LHtnZXRMb2NhbGU6KCk9PmEsZ2V0TG9jYWxlSXNvOigpPT5vfSk7dmFyIHM9aSg4NDQyMjUpO2NvbnN0IG49ZnVuY3Rpb24oKXtjb25zdCBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwYWdlLWxvY2FsZS1saW5rcyIpPy50ZXh0Q29udGVudCx0PWU/SlNPTi5wYXJzZShlKTpbXTtpZigwPT09dC5sZW5ndGgpcmV0dXJuIHM7Y29uc3QgaT17fTtyZXR1cm4gdC5mb3JFYWNoKCgoe2xvY2FsZTplLHVybDp0fSk9PntpW2VdPXsuLi5zW2VdLGhyZWY6dH19KSksaX0oKTtmdW5jdGlvbiBhKGUpe3JldHVybiBlPWV8fHdpbmRvdy5sb2NhbGUsbltlXX1mdW5jdGlvbiBvKGUpe3JldHVybiBlPWV8fHdpbmRvdy5sb2NhbGUsbltlXT8uaXNvfX0sNjE4OTg5KGUsdCxpKXsidXNlIHN0cmljdCI7aS5kKHQse1dpZGdldGJhcldpZGdldFJlbmRlcmVyOigpPT5zfSk7Y2xhc3Mgc3tjb25zdHJ1Y3RvcihlKXt0aGlzLmhhc0xpZmVjeWNsZT0hMCx0aGlzLl9sb2FkTW9kdWxlUHJvbWlzZT1udWxsO2NvbnN0e2NvbnRhaW5lcjp0LGhlYWRlcjppLGlkOnN9PWU7dGhpcy5fY29udGFpbmVyPXQsdGhpcy5faGVhZGVyQ29udGFpbmVyPWksdGhpcy5fd2lkZ2V0SWQ9c31kZXN0cm95KCl7dGhpcy5fbG9hZE1vZHVsZVByb21pc2U9bnVsbCx0aGlzLnVubW91bnQoKX11bm1vdW50KCl7dGhpcy51bm1vdW50Qm9keSgpLHRoaXMudW5tb3VudEhlYWRlcigpfXVubW91bnRCb2R5KCl7Y29uc3QgZT1pLmNbMTI5MzY1XTtpZihlKXtlLmV4cG9ydHMudW5tb3VudENvbXBvbmVudEF0Tm9kZSh0aGlzLl9jb250YWluZXIpfX11bm1vdW50SGVhZGVyKCl7Y29uc3QgZT1pLmNbMTI5MzY1XTtpZihlKXtlLmV4cG9ydHMudW5tb3VudENvbXBvbmVudEF0Tm9kZSh0aGlzLl9oZWFkZXJDb250YWluZXIpfX19fSwxODIzMDgoZSx0LGkpeyJ1c2Ugc3RyaWN0IjtpLmQodCx7dXNlUm92aW5nVGFiaW5kZXhFbGVtZW50OigpPT5vfSk7dmFyIHM9aSg3Nzk0NzQpLG49aSg3ODc4OTUpLGE9aSg2MTYzMTEpO2Z1bmN0aW9uIG8oZSx0PVtdKXtjb25zdFtpLG9dPSgwLHMudXNlU3RhdGUpKCExKSxyPSgwLG4udXNlRnVuY3Rpb25hbFJlZk9iamVjdCkoZSk7cmV0dXJuKDAsYS51c2VJc29tb3JwaGljTGF5b3V0RWZmZWN0KSgoKCk9Pntjb25zdCBlPXIuY3VycmVudDtpZihudWxsPT09ZSlyZXR1cm47Y29uc3QgdD1lPT57c3dpdGNoKGUudHlwZSl7Y2FzZSJyb3ZpbmctdGFiaW5kZXg6bWFpbi1lbGVtZW50IjpvKCEwKTticmVhaztjYXNlInJvdmluZy10YWJpbmRleDpzZWNvbmRhcnktZWxlbWVudCI6byghMSl9fTtyZXR1cm4gZS5hZGRFdmVudExpc3RlbmVyKCJyb3ZpbmctdGFiaW5kZXg6bWFpbi1lbGVtZW50Iix0KSxlLmFkZEV2ZW50TGlzdGVuZXIoInJvdmluZy10YWJpbmRleDpzZWNvbmRhcnktZWxlbWVudCIsdCksKCk9PntlLnJlbW92ZUV2ZW50TGlzdGVuZXIoInJvdmluZy10YWJpbmRleDptYWluLWVsZW1lbnQiLHQpLGUucmVtb3ZlRXZlbnRMaXN0ZW5lcigicm92aW5nLXRhYmluZGV4OnNlY29uZGFyeS1lbGVtZW50Iix0KX19KSx0KSxbcixpPzA6LTFdfX0sOTI5NDg4KGUsdCxpKXsidXNlIHN0cmljdCI7aS5kKHQse2lzU2VwYXJhdG9ySXRlbTooKT0+bn0pO3ZhciBzPWkoOTAxMDIyKTtmdW5jdGlvbiBuKGUpe3JldHVybigwLHMuaXNTZXBhcmF0b3JJdGVtKShlKX19LDMyMDU1KGUsdCxpKXsidXNlIHN0cmljdCI7aS5yKHQpLGkuZCh0LHtyZXNvbHZlU3ltYm9sTmFtZTooKT0+ZCxyZXNvbHZlU3ltYm9sTmFtZUZvckFsbDooKT0+aCxyZXNvbHZlU3ltYm9sTmFtZUZvckFsbERpc3RpbmN0OigpPT5jLHNuYXBzaG90ZXI6KCk9PnJ9KQo7dmFyIHM9aSgxMjg4MTQpLG49aSg2MjM1MTEpLGE9aSg5Mjk0ODgpO2NvbnN0IG89bmV3IFNldChbInByb19uYW1lIiwiYmFzZV9uYW1lIiwic2hvcnRfbmFtZSIsImRlc2NyaXB0aW9uIiwidHlwZSIsImV4Y2hhbmdlIiwidHlwZXNwZWNzIiwibGlzdGVkX2V4Y2hhbmdlIiwibGFzdF9wcmljZSIsImNvdW50cnlfY29kZSIsInByb3ZpZGVyX2lkIiwic3ltYm9sLXByaW1hcnluYW1lIiwibG9nb2lkIiwibG9nbyIsImJhc2UtY3VycmVuY3ktbG9nb2lkIiwiY3VycmVuY3ktbG9nb2lkIiwic291cmNlLWxvZ29pZCIsInVwZGF0ZV9tb2RlIiwidXBkYXRlX21vZGVfc2Vjb25kcyIsInByb19wZXJtIiwic291cmNlIiwic291cmNlMiIsInByaWNlc2NhbGUiLCJtaW5tb3YiLCJmcmFjdGlvbmFsIiwidmlzaWJsZS1wbG90cy1zZXQiLCJsb2NhbF9kZXNjcmlwdGlvbiIsImxhbmd1YWdlIiwidW5kZXJseWluZy1zeW1ib2wiXSkscj0oMCxuLmxhenlWYWx1ZSkoKCgpPT5uZXcgcy5RdW90ZVNlc3Npb25TbmFwc2hvdGVyKHtuYW1lOiJiYXNpYy1zeW1ib2wtcXVvdGVzIixmaWVsZHM6Wy4uLm9dLGFwaTp3aW5kb3cuQ2hhcnRBcGlJbnN0YW5jZX0pKSksbD1uZXcgU2V0KFsicHJvX25hbWUiXSk7YXN5bmMgZnVuY3Rpb24gZChlKXtyZXR1cm4oMCxhLmlzU2VwYXJhdG9ySXRlbSkoZSk/ZTpyKCkuZ2V0U25hcHNob3QoZSxsKS50aGVuKChlPT4iZXJyb3IiPT09ZS5zdGF0dXM/ZS5zeW1ib2xuYW1lOmUudmFsdWVzLnByb19uYW1lKSl9ZnVuY3Rpb24gaChlKXtyZXR1cm4gUHJvbWlzZS5hbGwoZS5tYXAoZCkpfWZ1bmN0aW9uIGMoZSl7cmV0dXJuIGgoZSkudGhlbigoZT0+Wy4uLm5ldyBTZXQoZSldKSl9fSw2NTkzODEoZSx0LGkpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBzKGUpe2NvbnN0IHQ9bmV3IERhdGUoZSk7cmV0dXJuIHQuc2V0TWlsbGlzZWNvbmRzKDApLHQuc2V0U2Vjb25kcygwKSx0LnNldE1pbnV0ZXMoMCksdC5zZXRIb3VycygwKSx0fWZ1bmN0aW9uIG4oZSl7Y29uc3QgdD1uZXcgRGF0ZShlKTtyZXR1cm4gdC5zZXRNaWxsaXNlY29uZHMoOTk5KSx0LnNldFNlY29uZHMoNTkpLHQuc2V0TWludXRlcyg1OSksdC5zZXRIb3VycygyMyksdH1mdW5jdGlvbiBhKGUsdD0hMSl7Y29uc3QgaT1zKGUpLG49dD9mdW5jdGlvbihlKXtpZihlPjYpdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIGRheSBpcyBwcm92aWRlZCIpO3JldHVybiAwPT09ZT82OmUtMX0oaS5nZXREYXkoKSk6aS5nZXREYXkoKTtyZXR1cm4gaS5zZXREYXRlKGkuZ2V0RGF0ZSgpLW4pLGl9ZnVuY3Rpb24gbyhlKXtjb25zdCB0PXMoZSk7cmV0dXJuIHQuc2V0RGF0ZSgxKSx0fWZ1bmN0aW9uIHIoZSl7Y29uc3QgdD1vKGUpO3JldHVybiB0LnNldE1vbnRoKDApLHR9aS5kKHQse3Jlc2V0VG9EYXlFbmQ6KCk9Pm4scmVzZXRUb0RheVN0YXJ0OigpPT5zLHJlc2V0VG9Nb250aFN0YXJ0OigpPT5vLHJlc2V0VG9XZWVrU3RhcnQ6KCk9PmEscmVzZXRUb1llYXJTdGFydDooKT0+cn0pfSw1MDU1OChlLHQsaSl7InVzZSBzdHJpY3QiO2kuZCh0LHthZGRMb2NhbFRpbWU6KCk9PmIsZm9ybWF0VGltZXpvbmVPZmZzZXQ6KCk9PngsZ2V0Q2xvbmVEYXRlV2l0aE9mZnNldDooKT0+VCxnZXREYXRlSW5UYWJPcmRlcjooKT0+RSxnZXREZWNhZGVzU3RhcnQ6KCk9PmYsZ2V0Rmlyc3RFbmFibGVkRGF5OigpPT55LGdldEZpcnN0RW5hYmxlZE1vbnRoOigpPT5TLGdldEZpcnN0RW5hYmxlZFllYXI6KCk9PkMsZ2V0V2Vla3M6KCk9PnYsaXNEYXlEaXNhYmxlZDooKT0+dyxpc0luUmFuZ2U6KCk9PmcsaXNJbnZhbGlkRGF0ZU9iajooKT0+bSxpc1NhbWVEYXk6KCk9Pm8saXNTYW1lTW9udGg6KCk9PmwsaXNTYW1lWWVhcjooKT0+ZCxpc1dlZWtlbmQ6KCk9PkwsaXNZZXN0ZXJkYXk6KCk9PnIsc3VidHJhY3RMb2NhbFRpbWU6KCk9Pl8sdHdvRGlnaXRzRm9ybWF0OigpPT5hfSk7dmFyIHMsbj1pKDY1OTM4MSk7ZnVuY3Rpb24gYShlKXtyZXR1cm4oIjAiK2UpLnNsaWNlKC0yKX1mdW5jdGlvbiBvKGUsdCl7cmV0dXJuISF0JiZOdW1iZXIoKDAsbi5yZXNldFRvRGF5U3RhcnQpKGUpKT09PU51bWJlcigoMCxuLnJlc2V0VG9EYXlTdGFydCkodCkpfWZ1bmN0aW9uIHIoZSl7cmV0dXJuIG8oZSxmdW5jdGlvbihlKXtjb25zdCB0PW5ldyBEYXRlKGUpO3JldHVybiB0LnNldERhdGUodC5nZXREYXRlKCktMSksdH0obmV3IERhdGUpKX1mdW5jdGlvbiBsKGUsdCl7cmV0dXJuISF0JiZOdW1iZXIoKDAsbi5yZXNldFRvTW9udGhTdGFydCkoZSkpPT09TnVtYmVyKCgwLG4ucmVzZXRUb01vbnRoU3RhcnQpKHQpKX1mdW5jdGlvbiBkKGUsdCl7cmV0dXJuISF0JiZOdW1iZXIoKDAsbi5yZXNldFRvWWVhclN0YXJ0KShlKSk9PT1OdW1iZXIoKDAsbi5yZXNldFRvWWVhclN0YXJ0KSh0KSl9ZnVuY3Rpb24gaChlKXtjb25zdCB0PW5ldyBEYXRlKGUuZ2V0RnVsbFllYXIoKSwwLDEpLGk9KE51bWJlcihlKS1OdW1iZXIodCkpLzg2NGU1O3JldHVybiBNYXRoLmNlaWwoKGkrdC5nZXREYXkoKSsxKS83KX1mdW5jdGlvbiBjKGUpe2NvbnN0IHQ9bmV3IERhdGUoZSk7cmV0dXJuIHQuc2V0RGF0ZSh0LmdldERhdGUoKSs3KSx0fSFmdW5jdGlvbihlKXtlLkRheT0iZGF5IixlLk1vbnRoPSJtb250aCIsZS5ZZWFyPSJ5ZWFyIn0oc3x8KHM9e30pKTtjb25zdCB1PXtkYXk6bi5yZXNldFRvRGF5U3RhcnQsbW9udGg6bi5yZXNldFRvTW9udGhTdGFydCx5ZWFyOm4ucmVzZXRUb1llYXJTdGFydH07ZnVuY3Rpb24gZyhlLHQsaSxzPSJkYXkiKXtjb25zdCBuPXVbc10sYT0hdHx8TnVtYmVyKG4odCkpLU51bWJlcihuKGUpKTw9MDtyZXR1cm4oIWl8fE51bWJlcihuKGkpKS1OdW1iZXIobihlKSk+PTApJiZhfWZ1bmN0aW9uIG0oZSl7cmV0dXJuIE51bWJlci5pc05hTihOdW1iZXIoZSkpfWZ1bmN0aW9uIHAoZSl7cmV0dXJuIG5ldyBEYXRlKGUpLmdldFRpbWV6b25lT2Zmc2V0KCkvNjB9ZnVuY3Rpb24gXyhlKXtjb25zdCB0PW5ldyBEYXRlKGUpO3JldHVybiB0LnNldEhvdXJzKHQuZ2V0SG91cnMoKStwKHQpKSx0fWZ1bmN0aW9uIGIoZSl7Y29uc3QgdD1uZXcgRGF0ZShlKSxpPTYwKnAodCkqNjAqMWUzCjtyZXR1cm4gdC5zZXRUaW1lKHQuZ2V0VGltZSgpLWkpLHR9ZnVuY3Rpb24gZihlKXtjb25zdCB0PWUuZ2V0RnVsbFllYXIoKSUxMCotMSxpPW5ldyBEYXRlKGUpO3JldHVybiBpLnNldEZ1bGxZZWFyKGUuZ2V0RnVsbFllYXIoKSt0KSxpfWZ1bmN0aW9uIHYoZSx0KXtjb25zdCBpPVtdO2xldCBzPSgwLG4ucmVzZXRUb1dlZWtTdGFydCkoKDAsbi5yZXNldFRvTW9udGhTdGFydCkoZSksITApO2ZvcihsZXQgbj0wO248NjtuKyspe2NvbnN0IG49W107Zm9yKGxldCBpPTA7aTw3O2krKyl7Y29uc3QgYT1uZXcgRGF0ZShzKTthLnNldERhdGUoYS5nZXREYXRlKCkraSksKGwoYSxlKXx8dCkmJm4ucHVzaChhKX1uLmxlbmd0aCYmaS5wdXNoKHt3ZWVrOmgocyksZGF5czpufSkscz1uZXcgRGF0ZShjKHMpKX1yZXR1cm4gaX1mdW5jdGlvbiB3KHtkYXk6ZSxtaW5EYXRlOnQsbWF4RGF0ZTppLGlzRGF0ZURpc2FibGVkOnN9KXtyZXR1cm4hZyhlLHQsaSl8fCEhcyYmcyhlKX1mdW5jdGlvbiB5KGUsdCl7cmV0dXJuIGZ1bmN0aW9uIGkocz0wLG49MCl7aWYoIWVbc118fCFlW3NdLmRheXNbbl0pcmV0dXJuO2NvbnN0IGE9ZVtzXS5kYXlzLG89YVtuXTtyZXR1cm4gdChvKT9uKzE8YS5sZW5ndGg/aShzLG4rMSk6aShzKzEsMCk6b30oKX1mdW5jdGlvbiBTKGUsdCl7cmV0dXJuIGZ1bmN0aW9uIGkocz0wKXtpZighZVtzXSlyZXR1cm47Y29uc3Qgbj1lW3NdLmRhdGU7cmV0dXJuIHQobik/aShzKzEpOm59KCl9ZnVuY3Rpb24gQyhlLHQpe3JldHVybiBmdW5jdGlvbiBpKHM9MCl7aWYoIWVbc10pcmV0dXJuO2NvbnN0IG49ZVtzXTtyZXR1cm4gdChuKT9pKHMrMSk6bn0oKX1mdW5jdGlvbiBUKHtkYXRlRnJvbTplLG9mZnNldDp0LGxldmVsOmk9ImRheSIsbWF4SXRlcmF0aW9uczpzPTYsaXNEaXNhYmxlZERhdGU6bj0oKT0+ITF9KXtyZXR1cm4gZnVuY3Rpb24gZShhLG89MCl7Y29uc3Qgcj1uZXcgRGF0ZShhKTtzd2l0Y2goaSl7Y2FzZSJkYXkiOnIuc2V0RGF0ZShyLmdldERhdGUoKSt0KTticmVhaztjYXNlIm1vbnRoIjpyLnNldE1vbnRoKHIuZ2V0TW9udGgoKSt0KTticmVhaztjYXNlInllYXIiOnIuc2V0RnVsbFllYXIoci5nZXRGdWxsWWVhcigpK3QpfWNvbnN0IGw9bihyKTtyZXR1cm4gbz5zfHwhbD9sP251bGw6cjplKHIsbysxKX0oZSl9ZnVuY3Rpb24gRSh7c2VsZWN0ZWREYXRlOmUsZGF0ZVRvRm9jdXM6dCxjdXJyZW50bHlGb2N1c2VkOmksZmlyc3RFbmFibGVkRGF0ZTpzLGdldEZpcnN0RGF0ZTpuLGdldExhc3REYXRlOmEsaXNEaXNhYmxlZERhdGU6b30pe2NvbnN0IHI9ZyhlLG4oKSxhKCksImRheSIpJiYhbyhlKT9lOm51bGwsbD10JiZnKHQsbigpLGEoKSwiZGF5IikmJiFvKHQpP3Q6bnVsbDtyZXR1cm4oaSYmZyhpLG4oKSxhKCksImRheSIpJiYhbyhpKT9pOm51bGwpfHxyfHxsfHxzfWZ1bmN0aW9uIHgoZSl7aWYoMD09PWUpcmV0dXJuIlVUQyI7Y29uc3QgdD1NYXRoLmFicyhlLzZlNCksaT1NYXRoLmZsb29yKHQvNjApLHM9dC02MCppO3JldHVybmBVVEMke01hdGguc2lnbihlKTw9MD8iLSI6IisifSR7aX0ke3M+MD9gOiR7c31gOiIifWB9ZnVuY3Rpb24gTChlKXtjb25zdCB0PWUuZ2V0RGF5KCk7cmV0dXJuIDY9PT10fHwwPT09dH19LDM3NTI2MihlLHQsaSl7InVzZSBzdHJpY3QiO2kuZCh0LHtBYnN0cmFjdEpzb25TdG9yZVNlcnZpY2U6KCk9PmEsQ29tbW9uSnNvblN0b3JlU2VydmljZTooKT0+b30pO3ZhciBzPWkoOTQ4MzgwKTtjb25zdCBuPVN5bWJvbCgiTk9fVkFMVUVfU0VOVElORUwiKTtjbGFzcyBhe2NvbnN0cnVjdG9yKGUsdCxpLG4sYSl7dGhpcy5fb25DaGFuZ2U9bmV3IHMuRGVsZWdhdGUsdGhpcy5faGFuZGxlQ2hhbmdlPSgpPT57dGhpcy5fb25DaGFuZ2UuZmlyZSh0aGlzLmdldCgpKX0sdGhpcy5fY3Jvc3NUYWJFdmVudHM9ZSx0aGlzLl9qc29uS2V5VmFsdWVTdG9yZT10LHRoaXMuQ1JPU1NUQUJfRVZFTlRfTkFNRT1pLHRoaXMuSlNPTl9TVE9SRV9LRVk9bix0aGlzLmRlZmF1bHRTdG9yZVZhbHVlPXRoaXMuX3NlcmlhbGl6ZShhKSx0aGlzLl9zdWJzY3JpYmUoKX1nZXQoKXtjb25zdCBlPXRoaXMuX2pzb25LZXlWYWx1ZVN0b3JlLmdldEpTT04odGhpcy5KU09OX1NUT1JFX0tFWSx0aGlzLmRlZmF1bHRTdG9yZVZhbHVlKTtyZXR1cm4gdGhpcy5fZGVzZXJpYWxpemUoZSl9c2V0KGUsdCl7Y29uc3QgaT10aGlzLl9zZXJpYWxpemUoZSk7dGhpcy5fanNvbktleVZhbHVlU3RvcmUuc2V0SlNPTih0aGlzLkpTT05fU1RPUkVfS0VZLGksdCksdGhpcy5fY3Jvc3NUYWJFdmVudHMuZW1pdCh0aGlzLkNST1NTVEFCX0VWRU5UX05BTUUpLHRoaXMuX29uQ2hhbmdlLmZpcmUoZSl9aGFzVmFsdWUoKXtyZXR1cm4gdGhpcy5fanNvbktleVZhbHVlU3RvcmUuZ2V0SlNPTih0aGlzLkpTT05fU1RPUkVfS0VZLG4pIT09bn1nZXRPbkNoYW5nZSgpe3JldHVybiB0aGlzLl9vbkNoYW5nZX1kZXN0cm95KCl7dGhpcy5fdW5zdWJzY3JpYmUoKSx0aGlzLl9vbkNoYW5nZS5kZXN0cm95KCksZGVsZXRlIHRoaXMuX29uQ2hhbmdlfV9zdWJzY3JpYmUoKXt0aGlzLl9jcm9zc1RhYkV2ZW50cy5vbih0aGlzLkNST1NTVEFCX0VWRU5UX05BTUUsdGhpcy5faGFuZGxlQ2hhbmdlKSx0aGlzLl9qc29uS2V5VmFsdWVTdG9yZS5vblN5bmMuc3Vic2NyaWJlKHRoaXMsdGhpcy5faGFuZGxlQ2hhbmdlKX1fdW5zdWJzY3JpYmUoKXt0aGlzLl9jcm9zc1RhYkV2ZW50cy5vZmYodGhpcy5DUk9TU1RBQl9FVkVOVF9OQU1FLHRoaXMuX2hhbmRsZUNoYW5nZSksdGhpcy5fanNvbktleVZhbHVlU3RvcmUub25TeW5jLnVuc3Vic2NyaWJlKHRoaXMsdGhpcy5faGFuZGxlQ2hhbmdlKX19Y2xhc3MgbyBleHRlbmRzIGF7X3NlcmlhbGl6ZShlKXtyZXR1cm4gZX1fZGVzZXJpYWxpemUoZSl7cmV0dXJuIGV9fX0sNDE5NjE5KGUpewplLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgNDQgNDQiIHdpZHRoPSI0NCIgaGVpZ2h0PSI0NCI+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xNSAxMWgydjRoLTJ2LTRabS0xIDBhMSAxIDAgMCAxIDEtMWgyYTEgMSAwIDAgMSAxIDF2MWg4di0xYTEgMSAwIDAgMSAxLTFoMmExIDEgMCAwIDEgMSAxdjFoMWEzIDMgMCAwIDEgMyAzdjE2YTMgMyAwIDAgMS0zIDNIMTNhMyAzIDAgMCAxLTMtM1YxNWEzIDMgMCAwIDEgMy0zaDF2LTFabTQgMmg4djJhMSAxIDAgMCAwIDEgMWgyYTEgMSAwIDAgMCAxLTF2LTJoMWEyIDIgMCAwIDEgMiAydjRIMTF2LTRjMC0xLjEuOS0yIDItMmgxdjJhMSAxIDAgMCAwIDEgMWgyYTEgMSAwIDAgMCAxLTF2LTJabS03IDd2MTFjMCAxLjEuOSAyIDIgMmgxOGEyIDIgMCAwIDAgMi0yVjIwSDExWm0xOC05aC0ydjRoMnYtNFoiLz48L3N2Zz4nfSw5NzI2NzMoZSl7ZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDQ0IDQ0IiB3aWR0aD0iNDQiIGhlaWdodD0iNDQiPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZD0iTTM1IDE0LjY2IDI5LjE2IDlsLS43LjcyIDUuODQgNS42Ni43LS43MlpNOSAxNC42NiAxNC44NCA5bC43LjcyLTUuODQgNS42Ni0uNy0uNzJaTTIyIDE2djdoLTV2MWg2di04aC0xWiIvPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNMjIgMzNhMTEgMTEgMCAxIDAgMC0yMiAxMSAxMSAwIDAgMCAwIDIyWm0wLTFhMTAgMTAgMCAxIDAgMC0yMCAxMCAxMCAwIDAgMCAwIDIwWiIvPjwvc3ZnPid9LDkxNTA5MChlKXtlLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMTQgMTQiPjxwYXRoIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjEuMiIgZD0ibTEuNSAxLjUgMTEgMTFtMC0xMS0xMSAxMSIgdmVjdG9yLWVmZmVjdD0ibm9uLXNjYWxpbmctc3Ryb2tlIi8+PC9zdmc+J30sMjU0MjUxKGUpe2UuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0NCA0NCIgd2lkdGg9IjQ0IiBoZWlnaHQ9IjQ0Ij48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGQ9Ik0xNiAxM2gtNHY0aC0xdi00SDd2LTFoNFY4aDF2NGg0djFabTE0LjUtMUgxOXYtMWgxMS41YTMuNSAzLjUgMCAwIDEgMy41IDMuNXYxNmEzLjUgMy41IDAgMCAxLTMuNSAzLjVoLTE3YTMuNSAzLjUgMCAwIDEtMy41LTMuNVYyMGgxdjEwLjVhMi41IDIuNSAwIDAgMCAyLjUgMi41aDE3YTIuNSAyLjUgMCAwIDAgMi41LTIuNXYtMTZhMi41IDIuNSAwIDAgMC0yLjUtMi41Wk0xNCAxOC41YTIuNSAyLjUgMCAwIDEgMi41LTIuNWgxMWEyLjUgMi41IDAgMCAxIDAgNWgtMTFhMi41IDIuNSAwIDAgMS0yLjUtMi41Wm0yLjUtMS41YTEuNSAxLjUgMCAwIDAgMCAzaDExYTEuNSAxLjUgMCAwIDAgMC0zaC0xMVpNMjkgMjVIMTV2LTFoMTR2MVptMCA0SDE1di0xaDE0djFaIi8+PC9zdmc+J30sMjMxNDI0KGUpe2UuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0NCA0NCIgd2lkdGg9IjQ0IiBoZWlnaHQ9IjQ0Ij48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGQ9Ik0yMS4zNCAxMi4xM2ExIDEgMCAwIDEgLjk4IDBsMTAuNDEgNS45M2ExIDEgMCAwIDEgMCAxLjczbC0xMC40IDUuOTNhMSAxIDAgMCAxLS45OSAwTDEwLjc4IDE5LjhhMSAxIDAgMCAxIDAtMS43NWwxMC41Ni01LjkyWm0uNDkuODctMTAuNTYgNS45MyAxMC41NiA1LjkzIDEwLjQtNS45M0wyMS44NCAxM1pNMzMuNSAyNC44NmwtMTEuNjYgNi44TDEwIDI1bC41LS44NyAxMS4zMyA2LjM4TDMyLjk5IDI0bC41Ljg3WiIvPjwvc3ZnPid9LDIwNzE0MShlKXtlLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgNDQgNDQiIHdpZHRoPSI0NCIgaGVpZ2h0PSI0NCI+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xMSAxNC41YTIuNSAyLjUgMCAwIDEgMi41LTIuNWgxM2EyLjUgMi41IDAgMCAxIDIuNSAyLjV2OWEyLjUgMi41IDAgMCAxLTIuNSAyLjVIMTQuM2wtLjE1LjE1TDExIDI5LjI5VjE0LjVabTIuNS0zLjVhMy41IDMuNSAwIDAgMC0zLjUgMy41djE3LjJsLjg1LS44NUwxNC43MSAyN0gxOXYuNWEzLjUgMy41IDAgMCAwIDMuNSAzLjVIMjkuM2wzLjg2IDMuODUuODUuODZWMjIuNWEzLjUgMy41IDAgMCAwLTMuNS0zLjVIMzB2LTQuNWEzLjUgMy41IDAgMCAwLTMuNS0zLjVoLTEzWk0zMCAyMHYzLjVhMy41IDMuNSAwIDAgMS0zLjUgMy41SDIwdi41YTIuNSAyLjUgMCAwIDAgMi41IDIuNUgyOS43bC4xNS4xNUwzMyAzMy4yOVYyMi41YTIuNSAyLjUgMCAwIDAtMi41LTIuNUgzMFoiLz48L3N2Zz4nfSwyNDAzOChlKXsKZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDQ0IDQ0IiB3aWR0aD0iNDQiIGhlaWdodD0iNDQiPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZD0iTTIyIDVhMTcgMTcgMCAxIDEgMCAzNCAxNyAxNyAwIDAgMSAwLTM0bS04IDIyYTEgMSAwIDAgMC0xIDF2MmExIDEgMCAwIDAgMSAxaDJhMSAxIDAgMCAwIDEtMXYtMmExIDEgMCAwIDAtMS0xem03IDBhMSAxIDAgMCAwLTEgMXYyYTEgMSAwIDAgMCAxIDFoMmExIDEgMCAwIDAgMS0xdi0yYTEgMSAwIDAgMC0xLTF6bTcgMGExIDEgMCAwIDAtMSAxdjJhMSAxIDAgMCAwIDEgMWgyYTEgMSAwIDAgMCAxLTF2LTJhMSAxIDAgMCAwLTEtMXptLTE0LTdhMSAxIDAgMCAwLTEgMXYyYTEgMSAwIDAgMCAxIDFoMmExIDEgMCAwIDAgMS0xdi0yYTEgMSAwIDAgMC0xLTF6bTcgMGExIDEgMCAwIDAtMSAxdjJhMSAxIDAgMCAwIDEgMWgyYTEgMSAwIDAgMCAxLTF2LTJhMSAxIDAgMCAwLTEtMXptNyAwYTEgMSAwIDAgMC0xIDF2MmExIDEgMCAwIDAgMSAxaDJhMSAxIDAgMCAwIDEtMXYtMmExIDEgMCAwIDAtMS0xem0tMTQtN2ExIDEgMCAwIDAtMSAxdjJhMSAxIDAgMCAwIDEgMWgyYTEgMSAwIDAgMCAxLTF2LTJhMSAxIDAgMCAwLTEtMXptNyAwYTEgMSAwIDAgMC0xIDF2MmExIDEgMCAwIDAgMSAxaDJhMSAxIDAgMCAwIDEtMXYtMmExIDEgMCAwIDAtMS0xem03IDBhMSAxIDAgMCAwLTEgMXYyYTEgMSAwIDAgMCAxIDFoMmExIDEgMCAwIDAgMS0xdi0yYTEgMSAwIDAgMC0xLTF6Ii8+PC9zdmc+J30sMTAxNjMxKGUpe2UuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMCAxMCIgd2lkdGg9IjIwIiBoZWlnaHQ9IjEwIj48cGF0aCBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIxLjUiIGQ9Ik0yIDFsOCA4IDgtOCIvPjwvc3ZnPid9LDg0NDIyNShlKXsidXNlIHN0cmljdCIKO2UuZXhwb3J0cz1KU09OLnBhcnNlKCd7ImVuIjp7Imxhbmd1YWdlIjoiZW4iLCJsYW5ndWFnZV9uYW1lIjoiRW5nbGlzaCIsImZsYWciOiJ1cyIsImdlb2lwX2NvZGUiOiJ1cyIsImlzbyI6ImVuIiwiaXNvXzYzOV8zIjoiZW5nIiwiZ2xvYmFsX25hbWUiOiJFbmdsaXNoIiwiaXNfb25seV9yZWNvbW1lbmRlZF90d19hdXRvcmVwb3N0Ijp0cnVlfSwiaW4iOnsibGFuZ3VhZ2UiOiJlbiIsImxhbmd1YWdlX25hbWUiOiJFbmdsaXNoIOKAjihJbmRpYSnigI4iLCJmbGFnIjoiaW4iLCJnZW9pcF9jb2RlIjoiaW4iLCJpc28iOiJlbiIsImlzb182MzlfMyI6ImVuZyIsImdsb2JhbF9uYW1lIjoiSW5kaWFuIn0sImRlX0RFIjp7Imxhbmd1YWdlIjoiZGUiLCJsYW5ndWFnZV9uYW1lIjoiRGV1dHNjaCIsImZsYWciOiJkZSIsImdlb2lwX2NvZGUiOiJkZSIsImNvdW50cmllc193aXRoX3RoaXNfbGFuZ3VhZ2UiOlsiYXQiLCJjaCJdLCJpc28iOiJkZSIsImlzb182MzlfMyI6ImRldSIsImdsb2JhbF9uYW1lIjoiR2VybWFuIiwiaXNfaW5fZXVyb3BlYW5fdW5pb24iOnRydWV9LCJmciI6eyJsYW5ndWFnZSI6ImZyIiwibGFuZ3VhZ2VfbmFtZSI6IkZyYW7Dp2FpcyIsImZsYWciOiJmciIsImdlb2lwX2NvZGUiOiJmciIsImlzbyI6ImZyIiwiaXNvXzYzOV8zIjoiZnJhIiwiZ2xvYmFsX25hbWUiOiJGcmVuY2giLCJpc19pbl9ldXJvcGVhbl91bmlvbiI6dHJ1ZX0sImNhX0VTIjp7Imxhbmd1YWdlIjoiY2FfRVMiLCJsYW5ndWFnZV9uYW1lIjoiQ2F0YWzDoCIsImZsYWciOiJlcyIsImdlb2lwX2NvZGUiOiJlcyIsImlzbyI6ImNhIiwiaXNvXzYzOV8zIjoiY2F0IiwiZ2xvYmFsX25hbWUiOiJDYXRhbGFuIn0sImVzIjp7Imxhbmd1YWdlIjoiZXMiLCJsYW5ndWFnZV9uYW1lIjoiRXNwYcOxb2wiLCJmbGFnIjoiZXMiLCJnZW9pcF9jb2RlIjoiZXMiLCJjb3VudHJpZXNfd2l0aF90aGlzX2xhbmd1YWdlIjpbIm14IiwiYXIiLCJ2ZSIsImNsIiwiY28iLCJwZSIsInV5IiwicHkiLCJjciIsImd0IiwiYyIsImJvIiwicGEiLCJwciJdLCJpc28iOiJlcyIsImlzb182MzlfMyI6InNwYSIsImdsb2JhbF9uYW1lIjoiU3BhbmlzaCIsImlzX2luX2V1cm9wZWFuX3VuaW9uIjp0cnVlfSwiaXQiOnsibGFuZ3VhZ2UiOiJpdCIsImxhbmd1YWdlX25hbWUiOiJJdGFsaWFubyIsImZsYWciOiJpdCIsImdlb2lwX2NvZGUiOiJpdCIsImlzbyI6Iml0IiwiaXNvXzYzOV8zIjoiaXRhIiwiZ2xvYmFsX25hbWUiOiJJdGFsaWFuIiwiaXNfaW5fZXVyb3BlYW5fdW5pb24iOnRydWV9LCJwbCI6eyJsYW5ndWFnZSI6InBsIiwibGFuZ3VhZ2VfbmFtZSI6IlBvbHNraSIsImZsYWciOiJwbCIsImdlb2lwX2NvZGUiOiJwbCIsImlzbyI6InBsIiwiaXNvXzYzOV8zIjoicG9sIiwiZ2xvYmFsX25hbWUiOiJQb2xpc2giLCJpc19pbl9ldXJvcGVhbl91bmlvbiI6dHJ1ZX0sImh1X0hVIjp7Imxhbmd1YWdlIjoiaHVfSFUiLCJsYW5ndWFnZV9uYW1lIjoiTWFneWFyIiwiZmxhZyI6Imh1IiwiZ2VvaXBfY29kZSI6Imh1IiwiaXNvIjoiaHUiLCJpc29fNjM5XzMiOiJodW4iLCJnbG9iYWxfbmFtZSI6Ikh1bmdhcmlhbiIsImlzX2luX2V1cm9wZWFuX3VuaW9uIjp0cnVlfSwic3ZfU0UiOnsibGFuZ3VhZ2UiOiJzdiIsImxhbmd1YWdlX25hbWUiOiJTdmVuc2thIiwiZmxhZyI6InNlIiwiZ2VvaXBfY29kZSI6InNlIiwiaXNvIjoic3YiLCJpc29fNjM5XzMiOiJzd2UiLCJnbG9iYWxfbmFtZSI6IlN3ZWRpc2giLCJpc19pbl9ldXJvcGVhbl91bmlvbiI6dHJ1ZX0sInRyIjp7Imxhbmd1YWdlIjoidHIiLCJsYW5ndWFnZV9uYW1lIjoiVMO8cmvDp2UiLCJmbGFnIjoidHIiLCJnZW9pcF9jb2RlIjoidHIiLCJpc28iOiJ0ciIsImlzb182MzlfMyI6InR1ciIsImdsb2JhbF9uYW1lIjoiVHVya2lzaCIsImlzX29ubHlfcmVjb21tZW5kZWRfdHdfYXV0b3JlcG9zdCI6dHJ1ZX0sInJ1Ijp7Imxhbmd1YWdlIjoicnUiLCJsYW5ndWFnZV9uYW1lIjoi0KDRg9GB0YHQutC40LkiLCJmbGFnIjoicnUiLCJnZW9pcF9jb2RlIjoicnUiLCJjb3VudHJpZXNfd2l0aF90aGlzX2xhbmd1YWdlIjpbImFtIiwiYnkiLCJrZyIsImt6IiwibWQiLCJ0aiIsInRtIiwidXoiXSwiaXNvIjoicnUiLCJpc29fNjM5XzMiOiJydXMiLCJnbG9iYWxfbmFtZSI6IlJ1c3NpYW4iLCJpc19vbmx5X3JlY29tbWVuZGVkX3R3X2F1dG9yZXBvc3QiOnRydWV9LCJiciI6eyJsYW5ndWFnZSI6InB0IiwibGFuZ3VhZ2VfbmFtZSI6IlBvcnR1Z3XDqnMiLCJmbGFnIjoiYnIiLCJnZW9pcF9jb2RlIjoiYnIiLCJpc28iOiJwdCIsImlzb182MzlfMyI6InBvciIsImdsb2JhbF9uYW1lIjoiUG9ydHVndWVzZSJ9LCJpZCI6eyJsYW5ndWFnZSI6ImlkX0lEIiwibGFuZ3VhZ2VfbmFtZSI6IkJhaGFzYSBJbmRvbmVzaWEiLCJmbGFnIjoiaWQiLCJnZW9pcF9jb2RlIjoiaWQiLCJpc28iOiJpZCIsImlzb182MzlfMyI6ImluZCIsImdsb2JhbF9uYW1lIjoiSW5kb25lc2lhbiJ9LCJtc19NWSI6eyJsYW5ndWFnZSI6Im1zX01ZIiwibGFuZ3VhZ2VfbmFtZSI6IkJhaGFzYSBNZWxheXUiLCJmbGFnIjoibXkiLCJnZW9pcF9jb2RlIjoibXkiLCJpc28iOiJtcyIsImlzb182MzlfMyI6InpsbSIsImdsb2JhbF9uYW1lIjoiTWFsYXlzaWFuIn0sInRoX1RIIjp7Imxhbmd1YWdlIjoidGgiLCJsYW5ndWFnZV9uYW1lIjoi4Lig4Liy4Lip4Liy4LmE4LiX4LiiIiwiZmxhZyI6InRoIiwiZ2VvaXBfY29kZSI6InRoIiwiaXNvIjoidGgiLCJpc29fNjM5XzMiOiJ0aGEiLCJnbG9iYWxfbmFtZSI6IlRoYWkifSwidmlfVk4iOnsibGFuZ3VhZ2UiOiJ2aSIsImxhbmd1YWdlX25hbWUiOiJUaeG6v25nIFZp4buHdCIsImZsYWciOiJ2biIsImdlb2lwX2NvZGUiOiJ2biIsImlzbyI6InZpIiwiaXNvXzYzOV8zIjoidmllIiwiZ2xvYmFsX25hbWUiOiJWaWV0bmFtZXNlIn0sImphIjp7Imxhbmd1YWdlIjoiamEiLCJsYW5ndWFnZV9uYW1lIjoi5pel5pys6KqeIiwiZmxhZyI6ImpwIiwiZ2VvaXBfY29kZSI6ImpwIiwiaXNvIjoiamEiLCJpc29fNjM5XzMiOiJqcG4iLCJnbG9iYWxfbmFtZSI6IkphcGFuZXNlIn0sImtyIjp7Imxhbmd1YWdlIjoia28iLCJsYW5ndWFnZV9uYW1lIjoi7ZWc6rWt7Ja0IiwiZmxhZyI6ImtyIiwiZ2VvaXBfY29kZSI6ImtyIiwiaXNvIjoia28iLCJpc29fNjM5XzMiOiJrb3IiLCJnbG9iYWxfbmFtZSI6IktvcmVhbiJ9LCJ6aF9DTiI6eyJsYW5ndWFnZSI6InpoIiwibGFuZ3VhZ2VfbmFtZSI6IueugOS9k+S4reaWhyIsImZsYWciOiJjbiIsImdlb2lwX2NvZGUiOiJjbiIsImNvdW50cmllc193aXRoX3RoaXNfbGFuZ3VhZ2UiOlsiemgiXSwiaXNvIjoiemgtSGFucyIsImlzb182MzlfMyI6ImNtbiIsImdsb2JhbF9uYW1lIjoiQ2hpbmVzZSJ9LCJ6aF9UVyI6eyJsYW5ndWFnZSI6InpoX1RXIiwibGFuZ3VhZ2VfbmFtZSI6Iue5gemrlOS4reaWhyIsImZsYWciOiJ0dyIsImdlb2lwX2NvZGUiOiJ0dyIsImNvdW50cmllc193aXRoX3RoaXNfbGFuZ3VhZ2UiOlsiaGsiXSwiaXNvIjoiemgtSGFudCIsImlzb182MzlfMyI6ImNtbiIsImdsb2JhbF9uYW1lIjoiVGFpd2FuZXNlIn0sImFyX0FFIjp7Imxhbmd1YWdlIjoiYXIiLCJsYW5ndWFnZV9uYW1lIjoi2KfZhNi52LHYqNmK2KkiLCJmbGFnIjoic2EiLCJnZW9pcF9jb2RlIjoic2EiLCJjb3VudHJpZXNfd2l0aF90aGlzX2xhbmd1YWdlIjpbImFlIiwiYmgiLCJkaiIsImR6IiwiZWciLCJlciIsImlxIiwiam8iLCJrbSIsImt3IiwibGIiLCJseSIsIm1hIiwibXIiLCJvbSIsInFhIiwic2EiLCJzZCIsInNvIiwic3kiLCJ0ZCIsInRuIiwieWUiXSwiZGlyIjoicnRsIiwiaXNvIjoiYXIiLCJpc29fNjM5XzMiOiJhcmIiLCJnbG9iYWxfbmFtZSI6IkFyYWJpYyJ9LCJoZV9JTCI6eyJsYW5ndWFnZSI6ImhlX0lMIiwibGFuZ3VhZ2VfbmFtZSI6Itei15HXqNeZ16oiLCJmbGFnIjoiaWwiLCJnZW9pcF9jb2RlIjoiaWwiLCJkaXIiOiJydGwiLCJpc28iOiJoZSIsImlzb182MzlfMyI6ImhlYiIsImdsb2JhbF9uYW1lIjoiSXNyYWVsaSJ9fScpCn19XSk7"}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/9270.32910635bb39c686f5be.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.221Z","timestamp":1785148034221,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/9270.32910635bb39c686f5be.js HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a58aaad-25cb\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Thu, 16 Jul 2026 09:55:57 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/16/2026 11:03:21\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 60732a0bf876d8b43b9cd445835c91a0\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":9675,"size_decoded":4352,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (3068)","md5":"5539ff4455921fad5c1cbaab2a5f3bce","sha1":"1073b48b55f2cd1b7d3fa453240d3a291dfd463b","sha256":"1f30073c128d18667a732ed75caf7f398da1accffcaa0a3f31bf098b68158c7d","sha512":"0c43ed53a7646dae59e40f446fe718b9737fd8e7a496ec59d228934369a1e38d90c3b9dd61a21fe12001706bad97b7bcd580f3b48b18b5626df44fc3632dfbdd","ssdeep":"192:TdqLHSioSpIwtLAZ9ZZmQSUMesX4decPvT4L27UXn4Tmdl6eFU3KT0:ToHSioVwtLAZ9JS8s8eYvT4L27UXLMeK","tlshash":"83120a85b3643caa91da1ad479b1088793137994a02bcde8742c65ff299cc27743cb7d","first_seen":"2026-07-17T03:30:51.183942Z","last_seen":"2026-07-27T12:48:39.851167Z","times_seen":101,"resource_available":true,"data":"InVzZSBzdHJpY3QiOyhzZWxmLndlYnBhY2tDaHVua3RyYWRpbmd2aWV3PXNlbGYud2VicGFja0NodW5rdHJhZGluZ3ZpZXd8fFtdKS5wdXNoKFtbOTI3MF0sezEwNzg2OShlLHQsbyl7ZnVuY3Rpb24gcihlLHQpe2NvbnN0IG89ZS5iYWNrZ3JvdW5kVG9wQ29sb3IoKS52YWx1ZSgpLHI9ZS5iYWNrZ3JvdW5kQ29sb3IoKS52YWx1ZSgpLG49dC5tb2RlbCgpLnBhbmVzKCkuaW5kZXhPZih0KSxpPXQubW9kZWwoKS5tYWluUGFuZSgpO3JldHVybiBuPihpP3QubW9kZWwoKS5wYW5lcygpLmluZGV4T2YoaSk6MCk/cjpvfW8uZCh0LHtnZXRQYW5lV2lkZ2V0U2lkZUFyZWFCZ0NvbG9yOigpPT5yfSl9LDM3OTY1MihlLHQsbyl7by5kKHQse2NhbGN1bGF0ZUZvbnRTaXplOigpPT5oLGdldFByZXBhcmVkVGV4dE1lYXN1cmVtZW50czooKT0+bH0pO3ZhciByPW8oMTM4NjM4KSxuPW8oNTkwODk0KSxpPW8oODIyNzI2KSxhPW8oOTI2MTQ5KSxzPW8oMTk4OTAxKTtmdW5jdGlvbiBsKGUsdCxvLHIpe2lmKGUuc2l6ZSlyZXR1cm4gZTtmb3IobGV0IG49ci5taW5BbGxvd2VkRm9udFNpemU7bjw9ci5tYXhBbGxvd2VkRm9udFNpemU7bisrKXtjb25zdCBhPW8uZ2V0KG4pPz9uZXcgaS5UZXh0V2lkdGhDYWNoZTtvLnNldChuLGEpLGUuc2V0KG4sZCh0LG4sYSxyLm1heFN5bWJvbHMpKX1yZXR1cm4gZX1mdW5jdGlvbiBkKGUsdCxvLHIpe2UuZm9udD0oMCxuLm1ha2VGb250KSh0LGEuQ0hBUlRfRk9OVF9GQU1JTFlfV1YudmFsdWUoKSk7Y29uc3QgaT1uZXcgTWFwO2ZvcihsZXQgdD0xO3Q8PXI7dCsrKWkuc2V0KHQsby5tZWFzdXJlVGV4dChlLG5ldyBBcnJheSh0KzEpLmpvaW4oIjAiKSkpO2NvbnN0IHM9by55TWlkQ29ycmVjdGlvbihlLCIwIiksbD1vLmdldE1ldHJpY3MoZSwiMCIpO3JldHVybnt3aWR0aHM6aSxhY3R1YWxGb250SGVpZ2h0OmwuZm9udEJvdW5kaW5nQm94RGVzY2VudCtsLmZvbnRCb3VuZGluZ0JveEFzY2VudCx5Q29ycmVjdGlvbjpzfX1mdW5jdGlvbiBoKGUsdCxvLG4saSxhKXtjb25zdCBkPWwoaSxvLG4sYSkse21heEFsbG93ZWRGb250U2l6ZTpoLG1pbkFsbG93ZWRGb250U2l6ZTpjLGZvbnRTaXplQ29lZmY6dSxob3J6Q2VsbE1pbk1hcmdpbjptLGhvcnpDZWxsTWFyZ2luc0NvZWZmOkN9PWE7bGV0IGY9aDtjb25zdCBfPWU9PmMrZTtmb3IoY29uc3QgbyBvZiBlKXtpZighZilicmVhaztjb25zdHtib3g6ZSxsYWJlbDpufT1vLGk9TWF0aC5mbG9vcihlLm1heC54LWUubWluLngpL3QuaG9yaXpvbnRhbFBpeGVsUmF0aW8sYT0oZS5tYXgueS1lLm1pbi55KS90LnZlcnRpY2FsUGl4ZWxSYXRpbyxsPU1hdGgucm91bmQoYSp1KTtpZihsPGMpe2Y9MDticmVha31mPmwmJihmPWwpO2NvbnN0IGg9XygoMCxzLmxvd2VyYm91bmRFeHQpKF8sbiwoKGUsdCk9Pnt2YXIgbyxuO3JldHVybihvPWUsbj10LCgwLHIuZW5zdXJlRGVmaW5lZCkoZC5nZXQobyk/LndpZHRocy5nZXQobi5sZW5ndGgpKSk8aS1NYXRoLm1heChtLDIqQypfKGUpKX0pLDAsZi1jKzEpKTtpZihoPGYrMSYmKGY9aC0xKSxmPGMpe2Y9MDticmVha319cmV0dXJuIGY/e2ZvbnRTaXplOmYseU1pZENvcnJlY3Rpb246KGc9ZiwoMCxyLmVuc3VyZURlZmluZWQpKGQuZ2V0KGcpPy55Q29ycmVjdGlvbikpfTpudWxsO3ZhciBnfX0sMjk0MzY0KGUsdCxvKXtvLmQodCx7cm93Qm94R2VuZXJhdG9yOigpPT5hfSk7dmFyIHI9byg3MzY1MzEpLG49byg2MzU2OTkpO2NvbnN0e2NlbGxIZWlnaHQ6aX09bi5jb25zdGFudHM7ZnVuY3Rpb24qYShlLHtiaXRtYXBTaXplOnt3aWR0aDp0fX0pe2ZvcihsZXQgbz0wO288ZS5sZW5ndGg7KytvKXlpZWxkW28sKDAsci5ib3gpKCgwLHIucG9pbnQpKDAsbyppKSwoMCxyLnBvaW50KSh0LChvKzEpKmkpKV19fSw1ODg4NzAoZSx0LG8pe28uZCh0LHtTdW1tYXJ5UGFuZVZpZXc6KCk9Pnp9KTt2YXIgcj1vKDEzODYzOCksbj1vKDczNjUzMSksaT1vKDkyNjE0OSksYT1vKDEwNzg2OSkscz1vKDQyNTY1OSksbD1vKDU5MDg5NCksZD1vKDc4OTE5MCksaD1vKDM3OTY1MiksYz1vKDYzNTY5OSksdT1vKDE4NTI3MSksbT1vKDU3MzA1NCk7Y29uc3QgQz11LnQobnVsbCx7Y29udGV4dDoiY2hhcnQgd2l0aCBzdW1tYXJ5IHRhYmxlIn0sbyg4NzAwOSkpO2NsYXNzIGYgZXh0ZW5kcyBtLk1lZGlhQ29vcmRpbmF0ZXNQYW5lUmVuZGVyZXJ7Y29uc3RydWN0b3IoZSl7c3VwZXIoKSx0aGlzLl9kYXRhPW51bGwsdGhpcy5fZGF0YT1lfXNldERhdGEoZSl7dGhpcy5fZGF0YT1lfWhpdFRlc3QoKXtyZXR1cm4gbnVsbH1fZHJhd0ltcGwoZSl7Y29uc3QgdD10aGlzLl9kYXRhO2lmKCF0KXJldHVybjtjb25zdCBvPXQuaXNEYXJrP2MuZGFya0NvbG9yczpjLmxpZ2h0Q29sb3JzLHI9ZS5jb250ZXh0O3IuZmlsbFN0eWxlPW8udGV4dENvbG9yLHIudGV4dEJhc2VsaW5lPSJtaWRkbGUiLHIuZm9udD10LmZvbnQsci5maWxsVGV4dChDLGMuY29uc3RhbnRzLmxlZ2VuZExlZnRQYWRkaW5nLGUubWVkaWFTaXplLmhlaWdodC8yK3QueU1pZENvcnJlY3Rpb24pfX12YXIgXz1vKDc2ODMwNSksZz1vKDc2MykseD1vKDk3NjgxMyksdz1vKDkzNDMwNSksdj1vKDc4NjQzNikscD1vKDE1MTIxKSxNPW8oMjk0MzY0KSxTPW8oODIyNzI2KTtjbGFzcyBUIGV4dGVuZHMgdy5CaXRtYXBDb29yZGluYXRlc1BhbmVSZW5kZXJlcntjb25zdHJ1Y3RvcihlKXtzdXBlcigpLHRoaXMuX2RhdGE9bnVsbCx0aGlzLl93aWR0aENhY2hlPW5ldyBTLlRleHRXaWR0aENhY2hlKDFlMyksdGhpcy5fZGF0YT1lPz9udWxsfXNldERhdGEoZSl7dGhpcy5fZGF0YT1lfWhpdFRlc3QoZSx0KXtjb25zdCBvPXRoaXMuX2RhdGE7aWYoIW8/LmNvbHVtbnMubGVuZ3RoKXJldHVybiBudWxsO2Zvcihjb25zdFtyLG5db2YoMCxNLnJvd0JveEdlbmVyYXRvcikoby5jb2x1bW5zWzBdLnJvd3MsdCkpaWYoKDAsXy5wb2ludEluQm94KShlLG4pKXJldHVybiBuZXcgZy5IaXRUZXN0UmVzdWx0KGcuSGl0VGFyZ2V0LlJlZ3VsYXIse2FjdGl2ZUl0ZW06cixjdXJzb3JUeXBlOnguUGFuZUN1cnNvclR5cGUuRGVmYXVsdH0pO3JldHVybiBudWxsfV9kcmF3SW1wbChlKXtjb25zdCB0PXRoaXMuX2RhdGEKO2lmKCF0Py5jb2x1bW5zLmxlbmd0aClyZXR1cm47Y29uc3R7Y29udGV4dDpvLGJpdG1hcFNpemU6cix2ZXJ0aWNhbFBpeGVsUmF0aW86bixob3Jpem9udGFsUGl4ZWxSYXRpbzphfT1lLHM9dC5pc0Rhcms/Yy5kYXJrQ29sb3JzOmMubGlnaHRDb2xvcnMsZD1jLmNvbnN0YW50cy5jZWxsSGVpZ2h0LGg9TWF0aC5yb3VuZChkKm4pO28uZmlsbFN0eWxlPXMudGV4dENvbG9yLG8udGV4dEJhc2VsaW5lPSJtaWRkbGUiLG8uZm9udD0oMCxsLm1ha2VGb250KSh0LmZvbnRTaXplLGkuQ0hBUlRfRk9OVF9GQU1JTFlfV1YudmFsdWUoKSk7Y29uc3QgdT10LmNvbHVtbnMubGVuZ3RoLTE7aWYoKDAscC5kcmF3U2NhbGVkKShvLGEsbiwoKCk9Pnt0LmNvbHVtbnMuZm9yRWFjaCgoKGUscik9Pntjb25zdFtuLGldPVtlLmxlZnQsZS5yaWdodF0ubWFwKChlPT5NYXRoLnJvdW5kKGUvYSkpKSxzPWktbixsPXI9PT11O2Uucm93cy5mb3JFYWNoKCgoZSxyKT0+e2NvbnN0IGE9ZS50ZXh0LGg9ZS5iYWNrZ3JvdW5kQ29sb3I7aCYmKG8uc2F2ZSgpLG8uZmlsbFN0eWxlPWgsby5maWxsUmVjdChuLHIqZCxzLGQpLG8ucmVzdG9yZSgpKTt0aGlzLl93aWR0aENhY2hlLm1lYXN1cmVUZXh0KG8sYSk+cy0yKmMuY29uc3RhbnRzLmhvcnpDZWxsTWluTWFyZ2luP2wmJiF0LmN1dE9mZkxhc3RDb2x1bW4/KG8udGV4dEFsaWduPSJsZWZ0IixvLmZpbGxUZXh0KGEsbitjLmNvbnN0YW50cy5ob3J6Q2VsbE1pbk1hcmdpbixyKmQrZC8yKSk6KG8uc2F2ZSgpLG8udGV4dEFsaWduPSJsZWZ0IixvLmJlZ2luUGF0aCgpLG8ucmVjdChuK2MuY29uc3RhbnRzLmhvcnpDZWxsTWluTWFyZ2luLHIqZCxzLTIqYy5jb25zdGFudHMuaG9yekNlbGxNaW5NYXJnaW4sZCksby5jbGlwKCksby5maWxsVGV4dChhLG4rYy5jb25zdGFudHMuaG9yekNlbGxNaW5NYXJnaW4scipkK2QvMiksby5yZXN0b3JlKCkpOihvLnRleHRBbGlnbj0iY2VudGVyIixvLmZpbGxUZXh0KGEsKG4raSkvMixyKmQrZC8yK3QueU1pZENvcnJlY3Rpb24pKX0pKX0pKX0pKSxvLmxpbmVXaWR0aD1NYXRoLm1heCgxLE1hdGguZmxvb3IoYSkpLHZvaWQgMCE9PXQuaG92ZXJlZFJvdyYmKG8uZmlsbFN0eWxlPXMuaG92ZXJlZFJvd0NvbG9yLG8uZmlsbFJlY3QoMCx0LmhvdmVyZWRSb3cqaCxyLndpZHRoLGgpKSxvLnN0cm9rZVN0eWxlPXQudmVydEJvcmRlcnNDb2xvcix0LmNvbHVtbnMuZm9yRWFjaCgoZT0+eygwLHYuZHJhd1ZlcnRpY2FsTGluZSkobyxlLmxlZnQsMCxyLmhlaWdodCl9KSksdC5jdXRPZmZMYXN0Q29sdW1uKXtjb25zdCBlPXQuY29sdW1uc1t0LmNvbHVtbnMubGVuZ3RoLTFdOygwLHYuZHJhd1ZlcnRpY2FsTGluZSkobyxlLnJpZ2h0LDAsci5oZWlnaHQpfXtjb25zdFt7cm93czp7bGVuZ3RoOmV9fV09dC5jb2x1bW5zO28uc3Ryb2tlU3R5bGU9dC5ob3J6Qm9yZGVyc0NvbG9yO2ZvcihsZXQgdD0xO3Q8PWU7Kyt0KSgwLHYuZHJhd0hvcml6b250YWxMaW5lKShvLHQqaCwwLHIud2lkdGgpfX19Y29uc3QgUj1uZXcgTWFwO2NsYXNzIHp7Y29uc3RydWN0b3IoZSx0KXt0aGlzLl9yZW5kZXJlcj1uZXcgZC5Db21wb3NpdGVSZW5kZXJlcix0aGlzLl9sZWdlbmRSZW5kZXJlcj1udWxsLHRoaXMuX3N1bW1hcnlSZW5kZXJlcj1uZXcgVCx0aGlzLl9pbnZhbGlkYXRlZD0hMCx0aGlzLl90ZXh0V2lkdGhDYWNoZXNNYXA9bmV3IE1hcCx0aGlzLl9zdHVkeT1lLHRoaXMuX21vZGVsPXQsdGhpcy5fdGV4dFdpZHRoQ2FjaGVDYW52YXM9KDAsci5lbnN1cmVOb3ROdWxsKShkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKSksdGhpcy5fdGV4dFdpZHRoQ2FjaGVDYW52YXNDdHg9KDAsci5lbnN1cmVOb3ROdWxsKSh0aGlzLl90ZXh0V2lkdGhDYWNoZUNhbnZhcy5nZXRDb250ZXh0KCIyZCIpKX11cGRhdGUoKXt0aGlzLl9pbnZhbGlkYXRlZD0hMH1yZW5kZXJlcihlKXtyZXR1cm4gdGhpcy5faW52YWxpZGF0ZWQmJih0aGlzLl91cGRhdGVSZW5kZXJlcihlKSx0aGlzLl9pbnZhbGlkYXRlZD0hMSksdGhpcy5fcmVuZGVyZXJ9bWFrZVN1cmVJc1VwZGF0ZWQoZSl7dGhpcy5faW52YWxpZGF0ZWQmJih0aGlzLl91cGRhdGVSZW5kZXJlcihlKSx0aGlzLl9pbnZhbGlkYXRlZD0hMSl9X3VwZGF0ZVJlbmRlcmVyKGUpe3RoaXMuX3JlbmRlcmVyLmNsZWFyKCk7Y29uc3QgdD10aGlzLl9nZXREYXRhU291cmNlRm9yU3VtbWFyeSgpO2lmKCF0KXJldHVybjtjb25zdCBvPSgwLHIuZW5zdXJlTm90TnVsbCkodGhpcy5fbW9kZWwucGFuZUZvclNvdXJjZSh0KSksZD0oMCxhLmdldFBhbmVXaWRnZXRTaWRlQXJlYUJnQ29sb3IpKHRoaXMuX21vZGVsLG8pLHU9by5jb2xsYXBzZWQoKS52YWx1ZSgpJiYhby5tYXhpbWl6ZWQoKS52YWx1ZSgpLG09KDAscy5pc0NvbG9yRGFyaykoZCk7aWYodSl7Y29uc3QgZT0oMCxoLmdldFByZXBhcmVkVGV4dE1lYXN1cmVtZW50cykoUix0aGlzLl90ZXh0V2lkdGhDYWNoZUNhbnZhc0N0eCx0aGlzLl90ZXh0V2lkdGhDYWNoZXNNYXAsYy5jb25zdGFudHMpLHQ9e2lzRGFyazptLGZvbnQ6KDAsbC5tYWtlRm9udCkoYy5jb25zdGFudHMubGVnZW5kRm9udFNpemUsaS5DSEFSVF9GT05UX0ZBTUlMWV9XVi52YWx1ZSgpKSx5TWlkQ29ycmVjdGlvbjplLmdldChjLmNvbnN0YW50cy5sZWdlbmRGb250U2l6ZSk/LnlDb3JyZWN0aW9uPz8wfTtyZXR1cm4gdGhpcy5fbGVnZW5kUmVuZGVyZXJ8fCh0aGlzLl9sZWdlbmRSZW5kZXJlcj1uZXcgZih0KSksdGhpcy5fbGVnZW5kUmVuZGVyZXIuc2V0RGF0YSh0KSx2b2lkIHRoaXMuX3JlbmRlcmVyLmFwcGVuZCh0aGlzLl9sZWdlbmRSZW5kZXJlcil9Y29uc3QgQz10aGlzLl9tb2RlbC50aW1lU2NhbGUoKS5sb2dpY2FsUmFuZ2UoKTtpZighQylyZXR1cm47Y29uc3QgXz10aGlzLl9nZXRTdW1tYXJ5Q29sdW1uUmVuZGVyZXJEYXRhKGUsQyk7aWYobnVsbD09PV8pcmV0dXJuO2NvbnN0IGc9dGhpcy5fbW9kZWwucHJvcGVydGllcygpLmNoaWxkcygpLnBhbmVQcm9wZXJ0aWVzLmNoaWxkcygpLHg9ewpob3ZlcmVkUm93OnRoaXMuX21vZGVsLmhvdmVyZWRTb3VyY2UoKT09PXQ/dGhpcy5fbW9kZWwubGFzdEhpdHRlc3REYXRhKCk/LmFjdGl2ZUl0ZW06dm9pZCAwLGNvbHVtbnM6XyxjdXRPZmZMYXN0Q29sdW1uOnRoaXMuX2N1dE9mZkxhc3RDb2x1bW4oKSxpc0Rhcms6bSx2ZXJ0Qm9yZGVyc0NvbG9yOmcudmVydEdyaWRQcm9wZXJ0aWVzLmNoaWxkcygpLmNvbG9yLnZhbHVlKCksaG9yekJvcmRlcnNDb2xvcjpnLmhvcnpHcmlkUHJvcGVydGllcy5jaGlsZHMoKS5jb2xvci52YWx1ZSgpfSx3PSgwLGguY2FsY3VsYXRlRm9udFNpemUpKGZ1bmN0aW9uKihlLHQpe2ZvcihsZXQgbz0wO288ZS5jb2x1bW5zLmxlbmd0aC0xO28rKyl7Y29uc3Qgcj1lLmNvbHVtbnNbb107Zm9yKGxldCBlPTA7ZTxyLnJvd3MubGVuZ3RoO2UrKyl7Y29uc3Qgbz1yLnJvd3NbZV0saT1lKnQsYT0oZSsxKSp0O3lpZWxke2xhYmVsOm8udGV4dCxib3g6KDAsbi5ib3gpKCgwLG4ucG9pbnQpKHIubGVmdCxpKSwoMCxuLnBvaW50KShyLnJpZ2h0LGEpKX19fX0oeCxjLmNvbnN0YW50cy5jZWxsSGVpZ2h0KmUudmVydGljYWxQaXhlbFJhdGlvKSxlLHRoaXMuX3RleHRXaWR0aENhY2hlQ2FudmFzQ3R4LHRoaXMuX3RleHRXaWR0aENhY2hlc01hcCxSLGMuY29uc3RhbnRzKXx8e2ZvbnRTaXplOmMuY29uc3RhbnRzLm1pbkFsbG93ZWRGb250U2l6ZSx5TWlkQ29ycmVjdGlvbjowfTt0aGlzLl9zdW1tYXJ5UmVuZGVyZXIuc2V0RGF0YSh7Li4ueCwuLi53fSksdGhpcy5fcmVuZGVyZXIuYXBwZW5kKHRoaXMuX3N1bW1hcnlSZW5kZXJlcil9fX0sNzQ1NTY5KGUsdCxvKXtvLmQodCx7U3VtbWFyeVdpZGdldFNpZGVBcmVhVmlldzooKT0+eH0pO3ZhciByPW8oMTM4NjM4KSxuPW8oODIyNzI2KSxpPW8oNzY4MzA1KSxhPW8oNTkwODk0KSxzPW8oNzYzKSxsPW8oOTM0MzA1KSxkPW8oNzg2NDM2KSxoPW8oOTI2MTQ5KSxjPW8oMTUxMjEpLHU9byg2MzU2OTkpLG09bygyOTQzNjQpLEM9byg5NzY4MTMpO2NsYXNzIGYgZXh0ZW5kcyBsLkJpdG1hcENvb3JkaW5hdGVzUGFuZVJlbmRlcmVye2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLl9kYXRhPW51bGwsdGhpcy5fd2lkdGhDYWNoZT1uZXcgbi5UZXh0V2lkdGhDYWNoZSgxZTMpfXNldERhdGEoZSl7dGhpcy5fZGF0YT1lfWhpdFRlc3QoZSx0KXtjb25zdCBvPXRoaXMuX2RhdGE7aWYoIW8/LnJvd1RpdGxlcy5sZW5ndGgpcmV0dXJuIG51bGw7Zm9yKGNvbnN0W3Isbl1vZigwLG0ucm93Qm94R2VuZXJhdG9yKShvLnJvd1RpdGxlcyx0KSlpZigoMCxpLnBvaW50SW5Cb3gpKGUsbikpcmV0dXJuIG5ldyBzLkhpdFRlc3RSZXN1bHQocy5IaXRUYXJnZXQuUmVndWxhcix7YWN0aXZlSXRlbTpyLGN1cnNvclR5cGU6Qy5QYW5lQ3Vyc29yVHlwZS5EZWZhdWx0fSk7cmV0dXJuIG51bGx9X2RyYXdJbXBsKGUpe2NvbnN0IHQ9dGhpcy5fZGF0YTtpZihudWxsPT09dClyZXR1cm47Y29uc3R7Y29udGV4dDpvLGJpdG1hcFNpemU6cix2ZXJ0aWNhbFBpeGVsUmF0aW86bixob3Jpem9udGFsUGl4ZWxSYXRpbzppLG1lZGlhU2l6ZTpzfT1lLGw9dC5pc0Rhcms/dS5kYXJrQ29sb3JzOnUubGlnaHRDb2xvcnMsbT11LmNvbnN0YW50cy5jZWxsSGVpZ2h0LEM9TWF0aC5yb3VuZChtKm4pO3ZvaWQgMCE9PXQuaG92ZXJlZFJvdyYmKG8uZmlsbFN0eWxlPWwuaG92ZXJlZFJvd0NvbG9yLG8uZmlsbFJlY3QoMCx0LmhvdmVyZWRSb3cqQyxyLndpZHRoLEMpKSxvLnN0cm9rZVN0eWxlPXQuYm9yZGVyQ29sb3IsdC5yb3dUaXRsZXMuZm9yRWFjaCgoKGUsdCk9Pntjb25zdCBuPSh0KzEpKkM7KDAsZC5kcmF3SG9yaXpvbnRhbExpbmUpKG8sbiwwLHIud2lkdGgpfSkpLG8uZmlsbFN0eWxlPWwudGV4dENvbG9yLG8udGV4dEJhc2VsaW5lPSJtaWRkbGUiLG8uZm9udD0oMCxhLm1ha2VGb250KSh0LmZvbnRTaXplLGguQ0hBUlRfRk9OVF9GQU1JTFlfV1YudmFsdWUoKSksKDAsYy5kcmF3U2NhbGVkKShvLGksbiwoKCk9Pnt0LnJvd1RpdGxlcy5mb3JFYWNoKCgoZSxyKT0+e2xldCBuO2lmKCJyaWdodCI9PT10LmFsaWduKW49dS5jb25zdGFudHMuaG9yekNlbGxNaW5NYXJnaW47ZWxzZXtjb25zdCB0PXRoaXMuX3dpZHRoQ2FjaGUubWVhc3VyZVRleHQobyxlKTtuPXMud2lkdGgtdC11LmNvbnN0YW50cy5ob3J6Q2VsbE1pbk1hcmdpbn1vLmZpbGxUZXh0KGUsbixyKm0rbS8yK3QueU1pZENvcnJlY3Rpb24pfSkpfSkpfX12YXIgXz1vKDQyNTY1OSksZz1vKDEwNzg2OSk7Y2xhc3MgeHtjb25zdHJ1Y3RvcihlKXt0aGlzLl9yZW5kZXJlcj1uZXcgZix0aGlzLl93aWR0aHNDYWNoZT1uZXcgbi5UZXh0V2lkdGhDYWNoZSx0aGlzLl9tb2RlbD1lLHRoaXMuX3RleHRNZWFzdXJlQ2FudmFzPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpfWRlc3Ryb3koKXt0aGlzLl90ZXh0TWVhc3VyZUNhbnZhcy5yZW1vdmUoKX1yZW5kZXJlcigpe3JldHVybiB0aGlzLl9yZW5kZXJlcn11cGRhdGUoKXtjb25zdCBlPXRoaXMuX21vZGVsLm1haW5TZXJpZXMoKS5wcmljZVNjYWxlKCksdD10aGlzLl9tb2RlbC5wcm9wZXJ0aWVzKCkuY2hpbGRzKCkucGFuZVByb3BlcnRpZXMuY2hpbGRzKCksbz10aGlzLl9tb2RlbC5tYWluUGFuZSgpLG49dGhpcy5fZ2V0RGF0YVNvdXJjZUZvclN1bW1hcnkoKTtpZihlJiZvJiZuKXtjb25zdCBpPSgwLHIuZW5zdXJlTm90TnVsbCkodGhpcy5fbW9kZWwucGFuZUZvclNvdXJjZShuKSkscz0oMCxnLmdldFBhbmVXaWRnZXRTaWRlQXJlYUJnQ29sb3IpKHRoaXMuX21vZGVsLGkpLGw9KDAsXy5pc0NvbG9yRGFyaykocyksZD1vLnByaWNlU2NhbGVQb3NpdGlvbihlKTtpZigib3ZlcmxheSIhPT1kKXtjb25zdCBlPSgwLHIuZW5zdXJlTm90TnVsbCkodGhpcy5fdGV4dE1lYXN1cmVDYW52YXMuZ2V0Q29udGV4dCgiMmQiKSk7ZS5mb250PSgwLGEubWFrZUZvbnQpKHUuY29uc3RhbnRzLm1heEFsbG93ZWRGb250U2l6ZSxoLkNIQVJUX0ZPTlRfRkFNSUxZX1dWLnZhbHVlKCkpLHRoaXMuX3JlbmRlcmVyLnNldERhdGEoewpob3ZlcmVkUm93OnRoaXMuX21vZGVsLmhvdmVyZWRTb3VyY2UoKT09PW4/dGhpcy5fbW9kZWwubGFzdEhpdHRlc3REYXRhKCk/LmFjdGl2ZUl0ZW06dm9pZCAwLHJvd1RpdGxlczp0aGlzLl92aXNpYmxlVGl0bGVzKCksYWxpZ246ZCxpc0Rhcms6bCxmb250U2l6ZTp1LmNvbnN0YW50cy5tYXhBbGxvd2VkRm9udFNpemUsYm9yZGVyQ29sb3I6dC5ob3J6R3JpZFByb3BlcnRpZXMuY2hpbGRzKCkuY29sb3IudmFsdWUoKSx5TWlkQ29ycmVjdGlvbjp0aGlzLl93aWR0aHNDYWNoZS55TWlkQ29ycmVjdGlvbihlLCJBQkMiKX0pfX19b3B0aW1hbFdpZHRoKCl7Y29uc3QgZT0oMCxyLmVuc3VyZU5vdE51bGwpKHRoaXMuX3RleHRNZWFzdXJlQ2FudmFzLmdldENvbnRleHQoIjJkIikpO3JldHVybiBlLmZvbnQ9KDAsYS5tYWtlRm9udCkodS5jb25zdGFudHMubWF4QWxsb3dlZEZvbnRTaXplLGguQ0hBUlRfRk9OVF9GQU1JTFlfV1YudmFsdWUoKSksdGhpcy5fdmlzaWJsZVRpdGxlcygpLnJlZHVjZSgoKHQsbyk9Pk1hdGgubWF4KHQsdGhpcy5fd2lkdGhzQ2FjaGUubWVhc3VyZVRleHQoZSxvKSkpLDApKzIqdS5jb25zdGFudHMuaG9yekNlbGxNaW5NYXJnaW59fX19XSk7"}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/63033.f92a87471e5e101c8c55.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.825Z","timestamp":1785148034825,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/63033.f92a87471e5e101c8c55.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\ncontent-type: text/css; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding, Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\netag: W/\"69f98b71-371\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Tue, 05 May 2026 06:17:21 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.51\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 05/05/2026 10:18:38\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: ced2b2b5ddbb493c6cba9959d273aeab\r\ncdn-cache: HIT\r\ncontent-encoding: br\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":881,"size_decoded":1223,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with very long lines (881), with no line terminators","md5":"6293f5b90f60feff2338bb16a5cba9c0","sha1":"2bf3f9ce21b071a1ecd2ae283c2f961ae0239170","sha256":"5a48a7727af97b11dadfde92b4af366e34a034052474bd7935cfb15f7b3ea73a","sha512":"a38d3e0e51bbd390c8e633392518b80e870861ec48c89242f00219074fe75390d2ddcb95cd6e72c05921aed3575ce0796c42c52ba90358e74c7baa295afac826","ssdeep":"","tlshash":"f011bdb9b3a675b0b4e78c7b134cf168023488a5d51386f5dab24a8cc2d9277234874c","first_seen":"2026-05-01T03:41:17.263587Z","last_seen":"2026-07-27T10:28:13.771202Z","times_seen":19,"resource_available":false,"data":"LmNmaVZhbHVlLWlIZzU3RUhHe2N1cnNvcjpkZWZhdWx0Oy13ZWJraXQtdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZSBkb3R0ZWQ7dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZSBkb3R0ZWQ7LXdlYmtpdC10ZXh0LWRlY29yYXRpb24tY29sb3I6dmFyKC0tY29sb3ItY29udGVudC1wcmltYXJ5LW5ldXRyYWwpO3RleHQtZGVjb3JhdGlvbi1jb2xvcjp2YXIoLS1jb2xvci1jb250ZW50LXByaW1hcnktbmV1dHJhbCk7dGV4dC11bmRlcmxpbmUtb2Zmc2V0OjNweH1AbWVkaWEgKGFueS1ob3Zlcjpob3Zlcil7LmNmaVZhbHVlLWlIZzU3RUhHOmhvdmVyey13ZWJraXQtdGV4dC1kZWNvcmF0aW9uLWNvbG9yOmluaGVyaXQ7dGV4dC1kZWNvcmF0aW9uLWNvbG9yOmluaGVyaXR9fS50b29sdGlwQ29udGVudC1pSGc1N0VIR3tkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2dhcDoycHg7bWF4LXdpZHRoOmNhbGMoMTAwdncgLSA4cHgpfS50b29sdGlwUm93LWlIZzU3RUhHe2ZvbnQtZmFtaWx5Oi1hcHBsZS1zeXN0ZW0sQmxpbmtNYWNTeXN0ZW1Gb250LFRyZWJ1Y2hldCBNUyxSb2JvdG8sVWJ1bnR1LHNhbnMtc2VyaWY7Zm9udC1mZWF0dXJlLXNldHRpbmdzOiJ0bnVtIiBvbiwibG51bSIgb247Zm9udC1zdHlsZTpub3JtYWw7LS11aS1saWItdHlwb2dyYXBoeS1mb250LXNpemU6MTNweDtmb250LXNpemU6dmFyKC0tdWktbGliLXR5cG9ncmFwaHktZm9udC1zaXplKTtmb250LXdlaWdodDo0MDA7LS11aS1saWItdHlwb2dyYXBoeS1saW5lLWhlaWdodDoxOHB4O2xpbmUtaGVpZ2h0OnZhcigtLXVpLWxpYi10eXBvZ3JhcGh5LWxpbmUtaGVpZ2h0KX0udG9vbHRpcExvY2FsUGFydC1pSGc1N0VIR3tjb2xvcjp2YXIoLS1jb2xvci1jb2xkLWdyYXktMzAwKX0="}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"unpkg.com/lucide@latest/dist/umd/lucide.js","fqdn":"unpkg.com","domain":"unpkg.com","tld":"com"},"ip":{"addr":"104.18.0.22","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://digital-assettrade.com/","date":"2026-07-27T10:27:12.034Z","timestamp":1785148032034,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"unpkg.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sat, 11 Jul 2026 17:56:32 GMT","end":"Fri, 09 Oct 2026 18:56:21 GMT"},"fingerprint":{"sha1":"81:08:7C:A2:AA:81:B4:77:02:EE:53:FB:23:6F:1D:97:C3:92:2E:A0","sha256":"13:42:07:B0:BF:53:83:27:C3:6E:69:00:B5:F0:1C:58:6C:AD:B4:DD:93:08:84:F0:97:51:3B:60:91:10:85:76"}}},"request":{"raw":"GET /lucide@latest/dist/umd/lucide.js HTTP/1.1\r\nHost: unpkg.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-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://digital-assettrade.com/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 302 \r\ndate: Mon, 27 Jul 2026 10:27:12 GMT\r\ncontent-type: text/plain;charset=UTF-8\r\ncontent-length: 48\r\nlocation: /lucide@1.27.0/dist/umd/lucide.js\r\naccess-control-allow-origin: *\r\ncache-control: public, max-age=60, s-maxage=300\r\ncross-origin-resource-policy: cross-origin\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\nx-content-type-options: nosniff\r\npriority: u=3,i=?0\r\nserver: cloudflare\r\ncf-ray: a21af340794d5697-OSL\r\nalt-svc: h3=\":443\"; ma=86400\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"302","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":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":0,"size_decoded":0,"mime_type":"text/javascript; charset=utf-8","magic":"","md5":"d41d8cd98f00b204e9800998ecf8427e","sha1":"da39a3ee5e6b4b0d3255bfef95601890afd80709","sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha512":"cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e","ssdeep":"","tlshash":"","first_seen":"0001-01-01T00:00:00Z","last_seen":"2026-07-27T13:01:10.036638Z","times_seen":17563461,"resource_available":true,"data":null}},"time_used":300,"timings":{"blocked":-1,"dns":7,"connect":28,"send":0,"wait":264,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"digital-assettrade.com/assets/global/js/iziToast.min.js","fqdn":"digital-assettrade.com","domain":"digital-assettrade.com","tld":"com"},"ip":{"addr":"5.182.208.207","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://digital-assettrade.com/","date":"2026-07-27T10:27:12.042Z","timestamp":1785148032042,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"digital-assettrade.com","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Sat, 20 Jun 2026 16:59:16 GMT","end":"Fri, 18 Sep 2026 16:59:15 GMT"},"fingerprint":{"sha1":"01:E1:B4:F9:5D:C1:12:F0:96:4A:57:43:D3:BB:2D:2B:F2:BE:B0:FC","sha256":"A8:D5:A6:4E:32:4D:7C:DD:DA:A5:73:54:3A:4A:4B:A5:0E:50:6F:09:0E:F5:B9:74:AC:9A:03:38:4D:A3:42:85"}}},"request":{"raw":"GET /assets/global/js/iziToast.min.js HTTP/1.1\r\nHost: digital-assettrade.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://digital-assettrade.com/\r\nCookie: XSRF-TOKEN=eyJpdiI6IlBJZ3lRZTB2d214bVhnZk5JbmtvaWc9PSIsInZhbHVlIjoiOWllUUw0S1NpMERaV0d2c2FYTDF0YndkRm5iSHg5RGJOMTVmNEltV2lONmQ5RlhjdjhvR0syQVZyZGdYanU1OEMwUkhQVVdndjRJelQzdWxmQldFejlZc2c4K1RKbktYZ2NySWpkQkdLTEV3czBrQyt5RE9TTHRSQk5BYkRvZEMiLCJtYWMiOiJkZDhhNjRlM2IzMGU1NTc4NDFkOGUyNGM0M2IyYTFkYjk3MDUxYTIwOGM5OTUwNDM2MmNhNjYzNjUwMTliN2EyIiwidGFnIjoiIn0%3D; digitalassettrade_session=eyJpdiI6InppdHd5OXFTcGhzM0xrUzhKN0NmQ2c9PSIsInZhbHVlIjoiNytzaTJ2ekZZSE9MTU9oYTdHZWwxeWl5YUl6ZDJSZ2UxSDhBZ0FCUmoxbFlrYU5kNXpTZnRqMTNTNERMaEpGM0srWk1KZ2YrcFNUalloQVkrTGEvSXBCVFU2blExUlgyTDFhckFkdlg0bHNjSVYrQWltRENjeDJ5QWNnQUk3RGciLCJtYWMiOiJhZDEzNWUwOGYyMzcwOGNkYjRlMGY4NmJhMDBlY2Y5OTdjYmUyMjRkNWY1N2NmODMwNWE1MDUxNjg1ZDMxOWE2IiwidGFnIjoiIn0%3D\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncontent-type: text/javascript\r\nlast-modified: Sat, 19 Apr 2025 09:13:56 GMT\r\naccept-ranges: bytes\r\ncontent-encoding: br\r\nvary: Accept-Encoding\r\ncontent-length: 4784\r\ndate: Mon, 27 Jul 2026 10:27:12 GMT\r\nserver: LiteSpeed\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"LiteSpeed","description":"LiteSpeed is a high-scalability web server.","website":"https://litespeedtech.com","common_platform_enumeration":"cpe:2.3:a:litespeedtech:litespeed_web_server:*:*:*:*:*:*:*:*","icon":"LiteSpeed.svg","categories":["Web servers"]}],"data":{"size":18481,"size_decoded":5021,"mime_type":"text/javascript","magic":"JavaScript source, Unicode text, UTF-8 text, with very long lines (18398)","md5":"a05a127c793145cec6b721f14fced3e5","sha1":"5d753b1c803de12f4d2217ab0d143d4dcf047010","sha256":"ac860be79a4cfe434ea68f002638f79371d9a85a3b045a1aaf10dc98df551497","sha512":"ee5a4c561a267f7a96635cb529a5e670aebe766289fe358e6b394585db4b76d5df215cad4b358a07425deaada36d4f4e42c06c2c44d9c192f03ac1afeb9bdc64","ssdeep":"384:ShKmhCPzlc5gVCPBpcG/0CEvXArKKpQi8VREgO3MrnHzxJBkHI4505P:+K5PzlcN8DXArhpQzRHO3M7TxfGIYUP","tlshash":"6a82c894722032374aa329a960ff534a3772156ca9c641a4243fcdad5b34f8939f77f8","first_seen":"2023-03-07T01:10:25Z","last_seen":"2026-07-27T13:07:58.151111Z","times_seen":3314,"resource_available":true,"data":"LyoKKiBpemlUb2FzdCB8IHYxLjQuMAoqIGh0dHA6Ly9peml0b2FzdC5tYXJjZWxvZG9sY2UuY29tCiogYnkgTWFyY2VsbyBEb2xjZS4KKi8KIWZ1bmN0aW9uKHQsZSl7ImZ1bmN0aW9uIj09dHlwZW9mIGRlZmluZSYmZGVmaW5lLmFtZD9kZWZpbmUoW10sZSh0KSk6Im9iamVjdCI9PXR5cGVvZiBleHBvcnRzP21vZHVsZS5leHBvcnRzPWUodCk6dC5pemlUb2FzdD1lKHQpfSgidW5kZWZpbmVkIiE9dHlwZW9mIGdsb2JhbD9nbG9iYWw6d2luZG93fHx0aGlzLndpbmRvd3x8dGhpcy5nbG9iYWwsZnVuY3Rpb24odCl7InVzZSBzdHJpY3QiO3ZhciBlPXt9LG49Iml6aVRvYXN0IixvPShkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJib2R5IiksISEvTW9iaS8udGVzdChuYXZpZ2F0b3IudXNlckFnZW50KSksaT0vQ2hyb21lLy50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpJiYvR29vZ2xlIEluYy8udGVzdChuYXZpZ2F0b3IudmVuZG9yKSxzPSJ1bmRlZmluZWQiIT10eXBlb2YgSW5zdGFsbFRyaWdnZXIsYT0ib250b3VjaHN0YXJ0ImluIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCxyPVsiYm90dG9tUmlnaHQiLCJib3R0b21MZWZ0IiwiYm90dG9tQ2VudGVyIiwidG9wUmlnaHQiLCJ0b3BMZWZ0IiwidG9wQ2VudGVyIiwiY2VudGVyIl0sbD17aW5mbzp7Y29sb3I6ImJsdWUiLGljb246Imljby1pbmZvIn0sc3VjY2Vzczp7Y29sb3I6ImdyZWVuIixpY29uOiJpY28tc3VjY2VzcyJ9LHdhcm5pbmc6e2NvbG9yOiJvcmFuZ2UiLGljb246Imljby13YXJuaW5nIn0sZXJyb3I6e2NvbG9yOiJyZWQiLGljb246Imljby1lcnJvciJ9LHF1ZXN0aW9uOntjb2xvcjoieWVsbG93IixpY29uOiJpY28tcXVlc3Rpb24ifX0sZD01NjgsYz17fTtlLmNoaWxkcmVuPXt9O3ZhciB1PXtpZDpudWxsLCJjbGFzcyI6IiIsdGl0bGU6IiIsdGl0bGVDb2xvcjoiIix0aXRsZVNpemU6IiIsdGl0bGVMaW5lSGVpZ2h0OiIiLG1lc3NhZ2U6IiIsbWVzc2FnZUNvbG9yOiIiLG1lc3NhZ2VTaXplOiIiLG1lc3NhZ2VMaW5lSGVpZ2h0OiIiLGJhY2tncm91bmRDb2xvcjoiIix0aGVtZToibGlnaHQiLGNvbG9yOiIiLGljb246IiIsaWNvblRleHQ6IiIsaWNvbkNvbG9yOiIiLGljb25Vcmw6bnVsbCxpbWFnZToiIixpbWFnZVdpZHRoOjUwLG1heFdpZHRoOm51bGwsemluZGV4Om51bGwsbGF5b3V0OjEsYmFsbG9vbjohMSxjbG9zZTohMCxjbG9zZU9uRXNjYXBlOiExLGNsb3NlT25DbGljazohMSxkaXNwbGF5TW9kZTowLHBvc2l0aW9uOiJib3R0b21SaWdodCIsdGFyZ2V0OiIiLHRhcmdldEZpcnN0OiEwLHRpbWVvdXQ6NWUzLHJ0bDohMSxhbmltYXRlSW5zaWRlOiEwLGRyYWc6ITAscGF1c2VPbkhvdmVyOiEwLHJlc2V0T25Ib3ZlcjohMSxwcm9ncmVzc0JhcjohMCxwcm9ncmVzc0JhckNvbG9yOiIiLHByb2dyZXNzQmFyRWFzaW5nOiJsaW5lYXIiLG92ZXJsYXk6ITEsb3ZlcmxheUNsb3NlOiExLG92ZXJsYXlDb2xvcjoicmdiYSgwLCAwLCAwLCAwLjYpIix0cmFuc2l0aW9uSW46ImZhZGVJblVwIix0cmFuc2l0aW9uT3V0OiJmYWRlT3V0Iix0cmFuc2l0aW9uSW5Nb2JpbGU6ImZhZGVJblVwIix0cmFuc2l0aW9uT3V0TW9iaWxlOiJmYWRlT3V0RG93biIsYnV0dG9uczp7fSxpbnB1dHM6e30sb25PcGVuaW5nOmZ1bmN0aW9uKCl7fSxvbk9wZW5lZDpmdW5jdGlvbigpe30sb25DbG9zaW5nOmZ1bmN0aW9uKCl7fSxvbkNsb3NlZDpmdW5jdGlvbigpe319O2lmKCJyZW1vdmUiaW4gRWxlbWVudC5wcm90b3R5cGV8fChFbGVtZW50LnByb3RvdHlwZS5yZW1vdmU9ZnVuY3Rpb24oKXt0aGlzLnBhcmVudE5vZGUmJnRoaXMucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0aGlzKX0pLCJmdW5jdGlvbiIhPXR5cGVvZiB3aW5kb3cuQ3VzdG9tRXZlbnQpe3ZhciBwPWZ1bmN0aW9uKHQsZSl7ZT1lfHx7YnViYmxlczohMSxjYW5jZWxhYmxlOiExLGRldGFpbDp2b2lkIDB9O3ZhciBuPWRvY3VtZW50LmNyZWF0ZUV2ZW50KCJDdXN0b21FdmVudCIpO3JldHVybiBuLmluaXRDdXN0b21FdmVudCh0LGUuYnViYmxlcyxlLmNhbmNlbGFibGUsZS5kZXRhaWwpLG59O3AucHJvdG90eXBlPXdpbmRvdy5FdmVudC5wcm90b3R5cGUsd2luZG93LkN1c3RvbUV2ZW50PXB9dmFyIG09ZnVuY3Rpb24odCxlLG4pe2lmKCJbb2JqZWN0IE9iamVjdF0iPT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHQpKWZvcih2YXIgbyBpbiB0KU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LG8pJiZlLmNhbGwobix0W29dLG8sdCk7ZWxzZSBpZih0KWZvcih2YXIgaT0wLHM9dC5sZW5ndGg7cz5pO2krKyllLmNhbGwobix0W2ldLGksdCl9LGc9ZnVuY3Rpb24odCxlKXt2YXIgbj17fTtyZXR1cm4gbSh0LGZ1bmN0aW9uKGUsbyl7bltvXT10W29dfSksbShlLGZ1bmN0aW9uKHQsbyl7bltvXT1lW29dfSksbn0sZj1mdW5jdGlvbih0KXt2YXIgZT1kb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCksbj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtmb3Iobi5pbm5lckhUTUw9dDtuLmZpcnN0Q2hpbGQ7KWUuYXBwZW5kQ2hpbGQobi5maXJzdENoaWxkKTtyZXR1cm4gZX0sdj1mdW5jdGlvbih0KXt2YXIgZT1idG9hKGVuY29kZVVSSUNvbXBvbmVudCh0KSk7cmV0dXJuIGUucmVwbGFjZSgvPS9nLCIiKX0seT1mdW5jdGlvbih0KXtyZXR1cm4iIyI9PXQuc3Vic3RyaW5nKDAsMSl8fCJyZ2IiPT10LnN1YnN0cmluZygwLDMpfHwiaHNsIj09dC5zdWJzdHJpbmcoMCwzKX0saD1mdW5jdGlvbih0KXt0cnl7cmV0dXJuIGJ0b2EoYXRvYih0KSk9PXR9Y2F0Y2goZSl7cmV0dXJuITF9fSxiPWZ1bmN0aW9uKCl7cmV0dXJue21vdmU6ZnVuY3Rpb24odCxlLG8sYSl7dmFyIHIsbD0uMyxkPTE4MDswIT09YSYmKHQuY2xhc3NMaXN0LmFkZChuKyItZHJhZ2dlZCIpLHQuc3R5bGUudHJhbnNmb3JtPSJ0cmFuc2xhdGVYKCIrYSsicHgpIixhPjA/KHI9KGQtYSkvZCxsPnImJmUuaGlkZShnKG8se3RyYW5zaXRpb25PdXQ6ImZhZGVPdXRSaWdodCIsdHJhbnNpdGlvbk91dE1vYmlsZToiZmFkZU91dFJpZ2h0In0pLHQsImRyYWciKSk6KHI9KGQrYSkvZCxsPnImJmUuaGlkZShnKG8se3RyYW5zaXRpb25PdXQ6ImZhZGVPdXRMZWZ0Iix0cmFuc2l0aW9uT3V0TW9iaWxlOiJmYWRlT3V0TGVmdCJ9KSx0LCJkcmFnIikpLHQuc3R5bGUub3BhY2l0eT1yLGw+ciYmKChpfHxzKSYmKHQuc3R5bGUubGVmdD1hKyJweCIpLHQucGFyZW50Tm9kZS5zdHlsZS5vcGFjaXR5PWwsdGhpcy5zdG9wTW92aW5nKHQsbnVsbCkpKX0sc3RhcnRNb3Zpbmc6ZnVuY3Rpb24odCxlLG4sbyl7bz1vfHx3aW5kb3cuZXZlbnQ7dmFyIGk9YT9vLnRvdWNoZXNbMF0uY2xpZW50WDpvLmNsaWVudFgscz10LnN0eWxlLnRyYW5zZm9ybS5yZXBsYWNlKCJweCkiLCIiKTtzPXMucmVwbGFjZSgidHJhbnNsYXRlWCgiLCIiKTt2YXIgcj1pLXM7bi50cmFuc2l0aW9uSW4mJnQuY2xhc3NMaXN0LnJlbW92ZShuLnRyYW5zaXRpb25Jbiksbi50cmFuc2l0aW9uSW5Nb2JpbGUmJnQuY2xhc3NMaXN0LnJlbW92ZShuLnRyYW5zaXRpb25Jbk1vYmlsZSksdC5zdHlsZS50cmFuc2l0aW9uPSIiLGE/ZG9jdW1lbnQub250b3VjaG1vdmU9ZnVuY3Rpb24obyl7by5wcmV2ZW50RGVmYXVsdCgpLG89b3x8d2luZG93LmV2ZW50O3ZhciBpPW8udG91Y2hlc1swXS5jbGllbnRYLHM9aS1yO2IubW92ZSh0LGUsbixzKX06ZG9jdW1lbnQub25tb3VzZW1vdmU9ZnVuY3Rpb24obyl7by5wcmV2ZW50RGVmYXVsdCgpLG89b3x8d2luZG93LmV2ZW50O3ZhciBpPW8uY2xpZW50WCxzPWktcjtiLm1vdmUodCxlLG4scyl9fSxzdG9wTW92aW5nOmZ1bmN0aW9uKHQsZSl7YT9kb2N1bWVudC5vbnRvdWNobW92ZT1mdW5jdGlvbigpe306ZG9jdW1lbnQub25tb3VzZW1vdmU9ZnVuY3Rpb24oKXt9LHQuc3R5bGUub3BhY2l0eT0iIix0LnN0eWxlLnRyYW5zZm9ybT0iIix0LmNsYXNzTGlzdC5jb250YWlucyhuKyItZHJhZ2dlZCIpJiYodC5jbGFzc0xpc3QucmVtb3ZlKG4rIi1kcmFnZ2VkIiksdC5zdHlsZS50cmFuc2l0aW9uPSJ0cmFuc2Zvcm0gMC40cyBlYXNlLCBvcGFjaXR5IDAuNHMgZWFzZSIsc2V0VGltZW91dChmdW5jdGlvbigpe3Quc3R5bGUudHJhbnNpdGlvbj0iIn0sNDAwKSl9fX0oKTtyZXR1cm4gZS5zZXRTZXR0aW5nPWZ1bmN0aW9uKHQsbixvKXtlLmNoaWxkcmVuW3RdW25dPW99LGUuZ2V0U2V0dGluZz1mdW5jdGlvbih0LG4pe3JldHVybiBlLmNoaWxkcmVuW3RdW25dfSxlLmRlc3Ryb3k9ZnVuY3Rpb24oKXttKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi4iK24rIi1vdmVybGF5IiksZnVuY3Rpb24odCxlKXt0LnJlbW92ZSgpfSksbShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIuIituKyItd3JhcHBlciIpLGZ1bmN0aW9uKHQsZSl7dC5yZW1vdmUoKX0pLG0oZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLiIrbiksZnVuY3Rpb24odCxlKXt0LnJlbW92ZSgpfSksdGhpcy5jaGlsZHJlbj17fSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKG4rIi1vcGVuZWQiLHt9LCExKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKG4rIi1vcGVuaW5nIix7fSwhMSksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihuKyItY2xvc2luZyIse30sITEpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIobisiLWNsb3NlZCIse30sITEpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoImtleXVwIix7fSwhMSksYz17fX0sZS5zZXR0aW5ncz1mdW5jdGlvbih0KXtlLmRlc3Ryb3koKSxjPXQsdT1nKHUsdHx8e30pfSxtKGwsZnVuY3Rpb24odCxuKXtlW25dPWZ1bmN0aW9uKGUpe3ZhciBuPWcoYyxlfHx7fSk7bj1nKHQsbnx8e30pLHRoaXMuc2hvdyhuKX19KSxlLnByb2dyZXNzPWZ1bmN0aW9uKHQsZSxvKXt2YXIgaT10aGlzLHM9ZS5nZXRBdHRyaWJ1dGUoImRhdGEtaXppVG9hc3QtcmVmIiksYT1nKHRoaXMuY2hpbGRyZW5bc10sdHx8e30pLHI9ZS5xdWVyeVNlbGVjdG9yKCIuIituKyItcHJvZ3Jlc3NiYXIgZGl2Iik7cmV0dXJue3N0YXJ0OmZ1bmN0aW9uKCl7InVuZGVmaW5lZCI9PXR5cGVvZiBhLnRpbWUuUkVNQUlOSU5HJiYoZS5jbGFzc0xpc3QucmVtb3ZlKG4rIi1yZXNldGVkIiksbnVsbCE9PXImJihyLnN0eWxlLnRyYW5zaXRpb249IndpZHRoICIrYS50aW1lb3V0KyJtcyAiK2EucHJvZ3Jlc3NCYXJFYXNpbmcsci5zdHlsZS53aWR0aD0iMCUiKSxhLnRpbWUuU1RBUlQ9KG5ldyBEYXRlKS5nZXRUaW1lKCksYS50aW1lLkVORD1hLnRpbWUuU1RBUlQrYS50aW1lb3V0LGEudGltZS5USU1FUj1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Y2xlYXJUaW1lb3V0KGEudGltZS5USU1FUiksZS5jbGFzc0xpc3QuY29udGFpbnMobisiLWNsb3NpbmciKXx8KGkuaGlkZShhLGUsInRpbWVvdXQiKSwiZnVuY3Rpb24iPT10eXBlb2YgbyYmby5hcHBseShpKSl9LGEudGltZW91dCksaS5zZXRTZXR0aW5nKHMsInRpbWUiLGEudGltZSkpfSxwYXVzZTpmdW5jdGlvbigpe2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgYS50aW1lLlNUQVJUJiYhZS5jbGFzc0xpc3QuY29udGFpbnMobisiLXBhdXNlZCIpJiYhZS5jbGFzc0xpc3QuY29udGFpbnMobisiLXJlc2V0ZWQiKSl7aWYoZS5jbGFzc0xpc3QuYWRkKG4rIi1wYXVzZWQiKSxhLnRpbWUuUkVNQUlOSU5HPWEudGltZS5FTkQtKG5ldyBEYXRlKS5nZXRUaW1lKCksY2xlYXJUaW1lb3V0KGEudGltZS5USU1FUiksaS5zZXRTZXR0aW5nKHMsInRpbWUiLGEudGltZSksbnVsbCE9PXIpe3ZhciB0PXdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHIpLGw9dC5nZXRQcm9wZXJ0eVZhbHVlKCJ3aWR0aCIpO3Iuc3R5bGUudHJhbnNpdGlvbj0ibm9uZSIsci5zdHlsZS53aWR0aD1sfSJmdW5jdGlvbiI9PXR5cGVvZiBvJiZzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7by5hcHBseShpKX0sMTApfX0scmVzdW1lOmZ1bmN0aW9uKCl7InVuZGVmaW5lZCIhPXR5cGVvZiBhLnRpbWUuUkVNQUlOSU5HPyhlLmNsYXNzTGlzdC5yZW1vdmUobisiLXBhdXNlZCIpLG51bGwhPT1yJiYoci5zdHlsZS50cmFuc2l0aW9uPSJ3aWR0aCAiK2EudGltZS5SRU1BSU5JTkcrIm1zICIrYS5wcm9ncmVzc0JhckVhc2luZyxyLnN0eWxlLndpZHRoPSIwJSIpLGEudGltZS5FTkQ9KG5ldyBEYXRlKS5nZXRUaW1lKCkrYS50aW1lLlJFTUFJTklORyxhLnRpbWUuVElNRVI9c2V0VGltZW91dChmdW5jdGlvbigpe2NsZWFyVGltZW91dChhLnRpbWUuVElNRVIpLGUuY2xhc3NMaXN0LmNvbnRhaW5zKG4rIi1jbG9zaW5nIil8fChpLmhpZGUoYSxlLCJ0aW1lb3V0IiksImZ1bmN0aW9uIj09dHlwZW9mIG8mJm8uYXBwbHkoaSkpfSxhLnRpbWUuUkVNQUlOSU5HKSxpLnNldFNldHRpbmcocywidGltZSIsYS50aW1lKSk6dGhpcy5zdGFydCgpfSxyZXNldDpmdW5jdGlvbigpe2NsZWFyVGltZW91dChhLnRpbWUuVElNRVIpLGRlbGV0ZSBhLnRpbWUuUkVNQUlOSU5HLGkuc2V0U2V0dGluZyhzLCJ0aW1lIixhLnRpbWUpLGUuY2xhc3NMaXN0LmFkZChuKyItcmVzZXRlZCIpLGUuY2xhc3NMaXN0LnJlbW92ZShuKyItcGF1c2VkIiksbnVsbCE9PXImJihyLnN0eWxlLnRyYW5zaXRpb249Im5vbmUiLHIuc3R5bGUud2lkdGg9IjEwMCUiKSwiZnVuY3Rpb24iPT10eXBlb2YgbyYmc2V0VGltZW91dChmdW5jdGlvbigpe28uYXBwbHkoaSl9LDEwKX19fSxlLmhpZGU9ZnVuY3Rpb24odCxlLGkpeyJvYmplY3QiIT10eXBlb2YgZSYmKGU9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcihlKSk7dmFyIHM9dGhpcyxhPWcodGhpcy5jaGlsZHJlbltlLmdldEF0dHJpYnV0ZSgiZGF0YS1pemlUb2FzdC1yZWYiKV0sdHx8e30pO2EuY2xvc2VkQnk9aXx8bnVsbCxkZWxldGUgYS50aW1lLlJFTUFJTklORyxlLmNsYXNzTGlzdC5hZGQobisiLWNsb3NpbmciKSxmdW5jdGlvbigpe3ZhciB0PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi4iK24rIi1vdmVybGF5Iik7aWYobnVsbCE9PXQpe3ZhciBlPXQuZ2V0QXR0cmlidXRlKCJkYXRhLWl6aVRvYXN0LXJlZiIpO2U9ZS5zcGxpdCgiLCIpO3ZhciBvPWUuaW5kZXhPZihTdHJpbmcoYS5yZWYpKTstMSE9PW8mJmUuc3BsaWNlKG8sMSksdC5zZXRBdHRyaWJ1dGUoImRhdGEtaXppVG9hc3QtcmVmIixlLmpvaW4oKSksMD09PWUubGVuZ3RoJiYodC5jbGFzc0xpc3QucmVtb3ZlKCJmYWRlSW4iKSx0LmNsYXNzTGlzdC5hZGQoImZhZGVPdXQiKSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dC5yZW1vdmUoKX0sNzAwKSl9fSgpLGEudHJhbnNpdGlvbkluJiZlLmNsYXNzTGlzdC5yZW1vdmUoYS50cmFuc2l0aW9uSW4pLGEudHJhbnNpdGlvbkluTW9iaWxlJiZlLmNsYXNzTGlzdC5yZW1vdmUoYS50cmFuc2l0aW9uSW5Nb2JpbGUpLG98fHdpbmRvdy5pbm5lcldpZHRoPD1kP2EudHJhbnNpdGlvbk91dE1vYmlsZSYmZS5jbGFzc0xpc3QuYWRkKGEudHJhbnNpdGlvbk91dE1vYmlsZSk6YS50cmFuc2l0aW9uT3V0JiZlLmNsYXNzTGlzdC5hZGQoYS50cmFuc2l0aW9uT3V0KTt2YXIgcj1lLnBhcmVudE5vZGUub2Zmc2V0SGVpZ2h0O2UucGFyZW50Tm9kZS5zdHlsZS5oZWlnaHQ9cisicHgiLGUuc3R5bGUucG9pbnRlckV2ZW50cz0ibm9uZSIsKCFvfHx3aW5kb3cuaW5uZXJXaWR0aD5kKSYmKGUucGFyZW50Tm9kZS5zdHlsZS50cmFuc2l0aW9uRGVsYXk9IjAuMnMiKTt0cnl7dmFyIGw9bmV3IEN1c3RvbUV2ZW50KG4rIi1jbG9zaW5nIix7ZGV0YWlsOmEsYnViYmxlczohMCxjYW5jZWxhYmxlOiEwfSk7ZG9jdW1lbnQuZGlzcGF0Y2hFdmVudChsKX1jYXRjaChjKXtjb25zb2xlLndhcm4oYyl9c2V0VGltZW91dChmdW5jdGlvbigpe2UucGFyZW50Tm9kZS5zdHlsZS5oZWlnaHQ9IjBweCIsZS5wYXJlbnROb2RlLnN0eWxlLm92ZXJmbG93PSIiLHNldFRpbWVvdXQoZnVuY3Rpb24oKXtkZWxldGUgcy5jaGlsZHJlblthLnJlZl0sZS5wYXJlbnROb2RlLnJlbW92ZSgpO3RyeXt2YXIgdD1uZXcgQ3VzdG9tRXZlbnQobisiLWNsb3NlZCIse2RldGFpbDphLGJ1YmJsZXM6ITAsY2FuY2VsYWJsZTohMH0pO2RvY3VtZW50LmRpc3BhdGNoRXZlbnQodCl9Y2F0Y2gobyl7Y29uc29sZS53YXJuKG8pfSJ1bmRlZmluZWQiIT10eXBlb2YgYS5vbkNsb3NlZCYmYS5vbkNsb3NlZC5hcHBseShudWxsLFthLGUsaV0pfSwxZTMpfSwyMDApLCJ1bmRlZmluZWQiIT10eXBlb2YgYS5vbkNsb3NpbmcmJmEub25DbG9zaW5nLmFwcGx5KG51bGwsW2EsZSxpXSl9LGUuc2hvdz1mdW5jdGlvbih0KXt2YXIgaT10aGlzLHM9ZyhjLHR8fHt9KTtpZihzPWcodSxzKSxzLnRpbWU9e30sbnVsbD09PXMuaWQmJihzLmlkPXYocy50aXRsZStzLm1lc3NhZ2Urcy5jb2xvcikpLDE9PT1zLmRpc3BsYXlNb2RlfHwib25jZSI9PXMuZGlzcGxheU1vZGUpdHJ5e2lmKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi4iK24rIiMiK3MuaWQpLmxlbmd0aD4wKXJldHVybiExfWNhdGNoKGwpe2NvbnNvbGUud2FybigiWyIrbisiXSBDb3VsZCBub3QgZmluZCBhbiBlbGVtZW50IHdpdGggdGhpcyBzZWxlY3RvcjogIyIrcy5pZCsiLiBUcnkgdG8gc2V0IGFuIHZhbGlkIGlkLiIpfWlmKDI9PT1zLmRpc3BsYXlNb2RlfHwicmVwbGFjZSI9PXMuZGlzcGxheU1vZGUpdHJ5e20oZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLiIrbisiIyIrcy5pZCksZnVuY3Rpb24odCxlKXtpLmhpZGUocyx0LCJyZXBsYWNlZCIpfSl9Y2F0Y2gobCl7Y29uc29sZS53YXJuKCJbIituKyJdIENvdWxkIG5vdCBmaW5kIGFuIGVsZW1lbnQgd2l0aCB0aGlzIHNlbGVjdG9yOiAjIitzLmlkKyIuIFRyeSB0byBzZXQgYW4gdmFsaWQgaWQuIil9cy5yZWY9KG5ldyBEYXRlKS5nZXRUaW1lKCkrTWF0aC5mbG9vcigxZTcqTWF0aC5yYW5kb20oKSsxKSxlLmNoaWxkcmVuW3MucmVmXT1zO3ZhciBwPXtib2R5OmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImJvZHkiKSxvdmVybGF5OmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLHRvYXN0OmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLHRvYXN0Qm9keTpkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSx0b2FzdFRleHRzOmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLHRvYXN0Q2Fwc3VsZTpkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSxjb3Zlcjpkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSxidXR0b25zOmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLGlucHV0czpkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSxpY29uOnMuaWNvblVybD9kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbWciKTpkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpIiksd3JhcHBlcjpudWxsfTtwLnRvYXN0LnNldEF0dHJpYnV0ZSgiZGF0YS1pemlUb2FzdC1yZWYiLHMucmVmKSxwLnRvYXN0LmFwcGVuZENoaWxkKHAudG9hc3RCb2R5KSxwLnRvYXN0Q2Fwc3VsZS5hcHBlbmRDaGlsZChwLnRvYXN0KSxmdW5jdGlvbigpe2lmKHAudG9hc3QuY2xhc3NMaXN0LmFkZChuKSxwLnRvYXN0LmNsYXNzTGlzdC5hZGQobisiLW9wZW5pbmciKSxwLnRvYXN0Q2Fwc3VsZS5jbGFzc0xpc3QuYWRkKG4rIi1jYXBzdWxlIikscC50b2FzdEJvZHkuY2xhc3NMaXN0LmFkZChuKyItYm9keSIpLHAudG9hc3RUZXh0cy5jbGFzc0xpc3QuYWRkKG4rIi10ZXh0cyIpLG98fHdpbmRvdy5pbm5lcldpZHRoPD1kP3MudHJhbnNpdGlvbkluTW9iaWxlJiZwLnRvYXN0LmNsYXNzTGlzdC5hZGQocy50cmFuc2l0aW9uSW5Nb2JpbGUpOnMudHJhbnNpdGlvbkluJiZwLnRvYXN0LmNsYXNzTGlzdC5hZGQocy50cmFuc2l0aW9uSW4pLHNbImNsYXNzIl0pe3ZhciB0PXNbImNsYXNzIl0uc3BsaXQoIiAiKTttKHQsZnVuY3Rpb24odCxlKXtwLnRvYXN0LmNsYXNzTGlzdC5hZGQodCl9KX1zLmlkJiYocC50b2FzdC5pZD1zLmlkKSxzLnJ0bCYmKHAudG9hc3QuY2xhc3NMaXN0LmFkZChuKyItcnRsIikscC50b2FzdC5zZXRBdHRyaWJ1dGUoImRpciIsInJ0bCIpKSxzLmxheW91dD4xJiZwLnRvYXN0LmNsYXNzTGlzdC5hZGQobisiLWxheW91dCIrcy5sYXlvdXQpLHMuYmFsbG9vbiYmcC50b2FzdC5jbGFzc0xpc3QuYWRkKG4rIi1iYWxsb29uIikscy5tYXhXaWR0aCYmKGlzTmFOKHMubWF4V2lkdGgpP3AudG9hc3Quc3R5bGUubWF4V2lkdGg9cy5tYXhXaWR0aDpwLnRvYXN0LnN0eWxlLm1heFdpZHRoPXMubWF4V2lkdGgrInB4IiksIiI9PT1zLnRoZW1lJiYibGlnaHQiPT09cy50aGVtZXx8cC50b2FzdC5jbGFzc0xpc3QuYWRkKG4rIi10aGVtZS0iK3MudGhlbWUpLHMuY29sb3ImJih5KHMuY29sb3IpP3AudG9hc3Quc3R5bGUuYmFja2dyb3VuZD1zLmNvbG9yOnAudG9hc3QuY2xhc3NMaXN0LmFkZChuKyItY29sb3ItIitzLmNvbG9yKSkscy5iYWNrZ3JvdW5kQ29sb3ImJihwLnRvYXN0LnN0eWxlLmJhY2tncm91bmQ9cy5iYWNrZ3JvdW5kQ29sb3Iscy5iYWxsb29uJiYocC50b2FzdC5zdHlsZS5ib3JkZXJDb2xvcj1zLmJhY2tncm91bmRDb2xvcikpfSgpLGZ1bmN0aW9uKCl7cy5pbWFnZSYmKHAuY292ZXIuY2xhc3NMaXN0LmFkZChuKyItY292ZXIiKSxwLmNvdmVyLnN0eWxlLndpZHRoPXMuaW1hZ2VXaWR0aCsicHgiLGgocy5pbWFnZS5yZXBsYWNlKC8gL2csIiIpKT9wLmNvdmVyLnN0eWxlLmJhY2tncm91bmRJbWFnZT0idXJsKGRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCwiK3MuaW1hZ2UucmVwbGFjZSgvIC9nLCIiKSsiKSI6cC5jb3Zlci5zdHlsZS5iYWNrZ3JvdW5kSW1hZ2U9InVybCgiK3MuaW1hZ2UrIikiLHMucnRsP3AudG9hc3RCb2R5LnN0eWxlLm1hcmdpblJpZ2h0PXMuaW1hZ2VXaWR0aCsxMCsicHgiOnAudG9hc3RCb2R5LnN0eWxlLm1hcmdpbkxlZnQ9cy5pbWFnZVdpZHRoKzEwKyJweCIscC50b2FzdC5hcHBlbmRDaGlsZChwLmNvdmVyKSl9KCksZnVuY3Rpb24oKXtzLmNsb3NlPyhwLmJ1dHRvbkNsb3NlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImJ1dHRvbiIpLHAuYnV0dG9uQ2xvc2UudHlwZT0iYnV0dG9uIixwLmJ1dHRvbkNsb3NlLmNsYXNzTGlzdC5hZGQobisiLWNsb3NlIikscC5idXR0b25DbG9zZS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24odCl7dC50YXJnZXQ7aS5oaWRlKHMscC50b2FzdCwiYnV0dG9uIil9KSxwLnRvYXN0LmFwcGVuZENoaWxkKHAuYnV0dG9uQ2xvc2UpKTpzLnJ0bD9wLnRvYXN0LnN0eWxlLnBhZGRpbmdMZWZ0PSIxOHB4IjpwLnRvYXN0LnN0eWxlLnBhZGRpbmdSaWdodD0iMThweCJ9KCksZnVuY3Rpb24oKXtzLnByb2dyZXNzQmFyJiYocC5wcm9ncmVzc0Jhcj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSxwLnByb2dyZXNzQmFyRGl2PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLHAucHJvZ3Jlc3NCYXIuY2xhc3NMaXN0LmFkZChuKyItcHJvZ3Jlc3NiYXIiKSxwLnByb2dyZXNzQmFyRGl2LnN0eWxlLmJhY2tncm91bmQ9cy5wcm9ncmVzc0JhckNvbG9yLHAucHJvZ3Jlc3NCYXIuYXBwZW5kQ2hpbGQocC5wcm9ncmVzc0JhckRpdikscC50b2FzdC5hcHBlbmRDaGlsZChwLnByb2dyZXNzQmFyKSkscy50aW1lb3V0JiYocy5wYXVzZU9uSG92ZXImJiFzLnJlc2V0T25Ib3ZlciYmKHAudG9hc3QuYWRkRXZlbnRMaXN0ZW5lcigibW91c2VlbnRlciIsZnVuY3Rpb24odCl7aS5wcm9ncmVzcyhzLHAudG9hc3QpLnBhdXNlKCl9KSxwLnRvYXN0LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlbGVhdmUiLGZ1bmN0aW9uKHQpe2kucHJvZ3Jlc3MocyxwLnRvYXN0KS5yZXN1bWUoKX0pKSxzLnJlc2V0T25Ib3ZlciYmKHAudG9hc3QuYWRkRXZlbnRMaXN0ZW5lcigibW91c2VlbnRlciIsZnVuY3Rpb24odCl7aS5wcm9ncmVzcyhzLHAudG9hc3QpLnJlc2V0KCl9KSxwLnRvYXN0LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlbGVhdmUiLGZ1bmN0aW9uKHQpe2kucHJvZ3Jlc3MocyxwLnRvYXN0KS5zdGFydCgpfSkpKX0oKSxmdW5jdGlvbigpe3MuaWNvblVybD8ocC5pY29uLnNldEF0dHJpYnV0ZSgiY2xhc3MiLG4rIi1pY29uIikscC5pY29uLnNldEF0dHJpYnV0ZSgic3JjIixzLmljb25VcmwpKTpzLmljb24mJihwLmljb24uc2V0QXR0cmlidXRlKCJjbGFzcyIsbisiLWljb24gIitzLmljb24pLHMuaWNvblRleHQmJnAuaWNvbi5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShzLmljb25UZXh0KSkscy5pY29uQ29sb3ImJihwLmljb24uc3R5bGUuY29sb3I9cy5pY29uQ29sb3IpKSwocy5pY29ufHxzLmljb25VcmwpJiYocy5ydGw/cC50b2FzdEJvZHkuc3R5bGUucGFkZGluZ1JpZ2h0PSIzM3B4IjpwLnRvYXN0Qm9keS5zdHlsZS5wYWRkaW5nTGVmdD0iMzNweCIscC50b2FzdEJvZHkuYXBwZW5kQ2hpbGQocC5pY29uKSl9KCksZnVuY3Rpb24oKXtzLnRpdGxlLmxlbmd0aD4wJiYocC5zdHJvbmc9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3Ryb25nIikscC5zdHJvbmcuY2xhc3NMaXN0LmFkZChuKyItdGl0bGUiKSxwLnN0cm9uZy5hcHBlbmRDaGlsZChmKHMudGl0bGUpKSxwLnRvYXN0VGV4dHMuYXBwZW5kQ2hpbGQocC5zdHJvbmcpLHMudGl0bGVDb2xvciYmKHAuc3Ryb25nLnN0eWxlLmNvbG9yPXMudGl0bGVDb2xvcikscy50aXRsZVNpemUmJihpc05hTihzLnRpdGxlU2l6ZSk/cC5zdHJvbmcuc3R5bGUuZm9udFNpemU9cy50aXRsZVNpemU6cC5zdHJvbmcuc3R5bGUuZm9udFNpemU9cy50aXRsZVNpemUrInB4Iikscy50aXRsZUxpbmVIZWlnaHQmJihpc05hTihzLnRpdGxlU2l6ZSk/cC5zdHJvbmcuc3R5bGUubGluZUhlaWdodD1zLnRpdGxlTGluZUhlaWdodDpwLnN0cm9uZy5zdHlsZS5saW5lSGVpZ2h0PXMudGl0bGVMaW5lSGVpZ2h0KyJweCIpKSxzLm1lc3NhZ2UubGVuZ3RoPjAmJihwLnA9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgicCIpLHAucC5jbGFzc0xpc3QuYWRkKG4rIi1tZXNzYWdlIikscC5wLmFwcGVuZENoaWxkKGYocy5tZXNzYWdlKSkscC50b2FzdFRleHRzLmFwcGVuZENoaWxkKHAucCkscy5tZXNzYWdlQ29sb3ImJihwLnAuc3R5bGUuY29sb3I9cy5tZXNzYWdlQ29sb3IpLHMubWVzc2FnZVNpemUmJihpc05hTihzLnRpdGxlU2l6ZSk/cC5wLnN0eWxlLmZvbnRTaXplPXMubWVzc2FnZVNpemU6cC5wLnN0eWxlLmZvbnRTaXplPXMubWVzc2FnZVNpemUrInB4Iikscy5tZXNzYWdlTGluZUhlaWdodCYmKGlzTmFOKHMudGl0bGVTaXplKT9wLnAuc3R5bGUubGluZUhlaWdodD1zLm1lc3NhZ2VMaW5lSGVpZ2h0OnAucC5zdHlsZS5saW5lSGVpZ2h0PXMubWVzc2FnZUxpbmVIZWlnaHQrInB4IikpLHMudGl0bGUubGVuZ3RoPjAmJnMubWVzc2FnZS5sZW5ndGg+MCYmKHMucnRsP3Auc3Ryb25nLnN0eWxlLm1hcmdpbkxlZnQ9IjEwcHgiOjI9PT1zLmxheW91dHx8cy5ydGx8fChwLnN0cm9uZy5zdHlsZS5tYXJnaW5SaWdodD0iMTBweCIpKX0oKSxwLnRvYXN0Qm9keS5hcHBlbmRDaGlsZChwLnRvYXN0VGV4dHMpO3ZhciBMOyFmdW5jdGlvbigpe3MuaW5wdXRzLmxlbmd0aD4wJiYocC5pbnB1dHMuY2xhc3NMaXN0LmFkZChuKyItaW5wdXRzIiksbShzLmlucHV0cyxmdW5jdGlvbih0LGUpe3AuaW5wdXRzLmFwcGVuZENoaWxkKGYodFswXSkpLEw9cC5pbnB1dHMuY2hpbGROb2RlcyxMW2VdLmNsYXNzTGlzdC5hZGQobisiLWlucHV0cy1jaGlsZCIpLHRbM10mJnNldFRpbWVvdXQoZnVuY3Rpb24oKXtMW2VdLmZvY3VzKCl9LDMwMCksTFtlXS5hZGRFdmVudExpc3RlbmVyKHRbMV0sZnVuY3Rpb24oZSl7dmFyIG49dFsyXTtyZXR1cm4gbihpLHAudG9hc3QsdGhpcyxlKX0pfSkscC50b2FzdEJvZHkuYXBwZW5kQ2hpbGQocC5pbnB1dHMpKX0oKSxmdW5jdGlvbigpe3MuYnV0dG9ucy5sZW5ndGg+MCYmKHAuYnV0dG9ucy5jbGFzc0xpc3QuYWRkKG4rIi1idXR0b25zIiksbShzLmJ1dHRvbnMsZnVuY3Rpb24odCxlKXtwLmJ1dHRvbnMuYXBwZW5kQ2hpbGQoZih0WzBdKSk7dmFyIG89cC5idXR0b25zLmNoaWxkTm9kZXM7b1tlXS5jbGFzc0xpc3QuYWRkKG4rIi1idXR0b25zLWNoaWxkIiksdFsyXSYmc2V0VGltZW91dChmdW5jdGlvbigpe29bZV0uZm9jdXMoKX0sMzAwKSxvW2VdLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbihlKXtlLnByZXZlbnREZWZhdWx0KCk7dmFyIG49dFsxXTtyZXR1cm4gbihpLHAudG9hc3QsdGhpcyxlLEwpfSl9KSkscC50b2FzdEJvZHkuYXBwZW5kQ2hpbGQocC5idXR0b25zKX0oKSxzLm1lc3NhZ2UubGVuZ3RoPjAmJihzLmlucHV0cy5sZW5ndGg+MHx8cy5idXR0b25zLmxlbmd0aD4wKSYmKHAucC5zdHlsZS5tYXJnaW5Cb3R0b209IjAiKSwocy5pbnB1dHMubGVuZ3RoPjB8fHMuYnV0dG9ucy5sZW5ndGg+MCkmJihzLnJ0bD9wLnRvYXN0VGV4dHMuc3R5bGUubWFyZ2luTGVmdD0iMTBweCI6cC50b2FzdFRleHRzLnN0eWxlLm1hcmdpblJpZ2h0PSIxMHB4IixzLmlucHV0cy5sZW5ndGg+MCYmcy5idXR0b25zLmxlbmd0aD4wJiYocy5ydGw/cC5pbnB1dHMuc3R5bGUubWFyZ2luTGVmdD0iOHB4IjpwLmlucHV0cy5zdHlsZS5tYXJnaW5SaWdodD0iOHB4IikpLGZ1bmN0aW9uKCl7cC50b2FzdENhcHN1bGUuc3R5bGUudmlzaWJpbGl0eT0iaGlkZGVuIixzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dmFyIHQ9cC50b2FzdC5vZmZzZXRIZWlnaHQsZT1wLnRvYXN0LmN1cnJlbnRTdHlsZXx8d2luZG93LmdldENvbXB1dGVkU3R5bGUocC50b2FzdCksbj1lLm1hcmdpblRvcDtuPW4uc3BsaXQoInB4Iiksbj1wYXJzZUludChuWzBdKTt2YXIgbz1lLm1hcmdpbkJvdHRvbTtvPW8uc3BsaXQoInB4Iiksbz1wYXJzZUludChvWzBdKSxwLnRvYXN0Q2Fwc3VsZS5zdHlsZS52aXNpYmlsaXR5PSIiLHAudG9hc3RDYXBzdWxlLnN0eWxlLmhlaWdodD10K28rbisicHgiLHNldFRpbWVvdXQoZnVuY3Rpb24oKXtwLnRvYXN0Q2Fwc3VsZS5zdHlsZS5oZWlnaHQ9ImF1dG8iLHMudGFyZ2V0JiYocC50b2FzdENhcHN1bGUuc3R5bGUub3ZlcmZsb3c9InZpc2libGUiKX0sNTAwKSxzLnRpbWVvdXQmJmkucHJvZ3Jlc3MocyxwLnRvYXN0KS5zdGFydCgpfSwxMDApfSgpLGZ1bmN0aW9uKCl7dmFyIHQ9cy5wb3NpdGlvbjtpZihzLnRhcmdldClwLndyYXBwZXI9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcihzLnRhcmdldCkscC53cmFwcGVyLmNsYXNzTGlzdC5hZGQobisiLXRhcmdldCIpLHMudGFyZ2V0Rmlyc3Q/cC53cmFwcGVyLmluc2VydEJlZm9yZShwLnRvYXN0Q2Fwc3VsZSxwLndyYXBwZXIuZmlyc3RDaGlsZCk6cC53cmFwcGVyLmFwcGVuZENoaWxkKHAudG9hc3RDYXBzdWxlKTtlbHNle2lmKC0xPT1yLmluZGV4T2Yocy5wb3NpdGlvbikpcmV0dXJuIHZvaWQgY29uc29sZS53YXJuKCJbIituKyJdIEluY29ycmVjdCBwb3NpdGlvbi5cbkl0IGNhbiBiZSDigLogIityKTt0PW98fHdpbmRvdy5pbm5lcldpZHRoPD1kPyJib3R0b21MZWZ0Ij09cy5wb3NpdGlvbnx8ImJvdHRvbVJpZ2h0Ij09cy5wb3NpdGlvbnx8ImJvdHRvbUNlbnRlciI9PXMucG9zaXRpb24/bisiLXdyYXBwZXItYm90dG9tQ2VudGVyIjoidG9wTGVmdCI9PXMucG9zaXRpb258fCJ0b3BSaWdodCI9PXMucG9zaXRpb258fCJ0b3BDZW50ZXIiPT1zLnBvc2l0aW9uP24rIi13cmFwcGVyLXRvcENlbnRlciI6bisiLXdyYXBwZXItY2VudGVyIjpuKyItd3JhcHBlci0iK3QscC53cmFwcGVyPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi4iK24rIi13cmFwcGVyLiIrdCkscC53cmFwcGVyfHwocC53cmFwcGVyPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLHAud3JhcHBlci5jbGFzc0xpc3QuYWRkKG4rIi13cmFwcGVyIikscC53cmFwcGVyLmNsYXNzTGlzdC5hZGQodCksZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChwLndyYXBwZXIpKSwidG9wTGVmdCI9PXMucG9zaXRpb258fCJ0b3BDZW50ZXIiPT1zLnBvc2l0aW9ufHwidG9wUmlnaHQiPT1zLnBvc2l0aW9uP3Aud3JhcHBlci5pbnNlcnRCZWZvcmUocC50b2FzdENhcHN1bGUscC53cmFwcGVyLmZpcnN0Q2hpbGQpOnAud3JhcHBlci5hcHBlbmRDaGlsZChwLnRvYXN0Q2Fwc3VsZSl9aXNOYU4ocy56aW5kZXgpP2NvbnNvbGUud2FybigiWyIrbisiXSBJbnZhbGlkIHpJbmRleC4iKTpwLndyYXBwZXIuc3R5bGUuekluZGV4PXMuemluZGV4fSgpLGZ1bmN0aW9uKCl7cy5vdmVybGF5JiYobnVsbCE9PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi4iK24rIi1vdmVybGF5LmZhZGVJbiIpPyhwLm92ZXJsYXk9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLiIrbisiLW92ZXJsYXkiKSxwLm92ZXJsYXkuc2V0QXR0cmlidXRlKCJkYXRhLWl6aVRvYXN0LXJlZiIscC5vdmVybGF5LmdldEF0dHJpYnV0ZSgiZGF0YS1pemlUb2FzdC1yZWYiKSsiLCIrcy5yZWYpLGlzTmFOKHMuemluZGV4KXx8bnVsbD09PXMuemluZGV4fHwocC5vdmVybGF5LnN0eWxlLnpJbmRleD1zLnppbmRleC0xKSk6KHAub3ZlcmxheS5jbGFzc0xpc3QuYWRkKG4rIi1vdmVybGF5IikscC5vdmVybGF5LmNsYXNzTGlzdC5hZGQoImZhZGVJbiIpLHAub3ZlcmxheS5zdHlsZS5iYWNrZ3JvdW5kPXMub3ZlcmxheUNvbG9yLHAub3ZlcmxheS5zZXRBdHRyaWJ1dGUoImRhdGEtaXppVG9hc3QtcmVmIixzLnJlZiksaXNOYU4ocy56aW5kZXgpfHxudWxsPT09cy56aW5kZXh8fChwLm92ZXJsYXkuc3R5bGUuekluZGV4PXMuemluZGV4LTEpLGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImJvZHkiKS5hcHBlbmRDaGlsZChwLm92ZXJsYXkpKSxzLm92ZXJsYXlDbG9zZT8ocC5vdmVybGF5LnJlbW92ZUV2ZW50TGlzdGVuZXIoImNsaWNrIix7fSkscC5vdmVybGF5LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbih0KXtpLmhpZGUocyxwLnRvYXN0LCJvdmVybGF5Iil9KSk6cC5vdmVybGF5LnJlbW92ZUV2ZW50TGlzdGVuZXIoImNsaWNrIix7fSkpfSgpLGZ1bmN0aW9uKCl7aWYocy5hbmltYXRlSW5zaWRlKXtwLnRvYXN0LmNsYXNzTGlzdC5hZGQobisiLWFuaW1hdGVJbnNpZGUiKTt2YXIgdD1bMjAwLDEwMCwzMDBdOyJib3VuY2VJbkxlZnQiIT1zLnRyYW5zaXRpb25JbiYmImJvdW5jZUluUmlnaHQiIT1zLnRyYW5zaXRpb25Jbnx8KHQ9WzQwMCwyMDAsNDAwXSkscy50aXRsZS5sZW5ndGg+MCYmc2V0VGltZW91dChmdW5jdGlvbigpe3Auc3Ryb25nLmNsYXNzTGlzdC5hZGQoInNsaWRlSW4iKX0sdFswXSkscy5tZXNzYWdlLmxlbmd0aD4wJiZzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7cC5wLmNsYXNzTGlzdC5hZGQoInNsaWRlSW4iKX0sdFsxXSksKHMuaWNvbnx8cy5pY29uVXJsKSYmc2V0VGltZW91dChmdW5jdGlvbigpe3AuaWNvbi5jbGFzc0xpc3QuYWRkKCJyZXZlYWxJbiIpfSx0WzJdKTt2YXIgZT0xNTA7cy5idXR0b25zLmxlbmd0aD4wJiZwLmJ1dHRvbnMmJnNldFRpbWVvdXQoZnVuY3Rpb24oKXttKHAuYnV0dG9ucy5jaGlsZE5vZGVzLGZ1bmN0aW9uKHQsbil7c2V0VGltZW91dChmdW5jdGlvbigpe3QuY2xhc3NMaXN0LmFkZCgicmV2ZWFsSW4iKX0sZSksZSs9MTUwfSl9LHMuaW5wdXRzLmxlbmd0aD4wPzE1MDowKSxzLmlucHV0cy5sZW5ndGg+MCYmcC5pbnB1dHMmJihlPTE1MCxtKHAuaW5wdXRzLmNoaWxkTm9kZXMsZnVuY3Rpb24odCxuKXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dC5jbGFzc0xpc3QuYWRkKCJyZXZlYWxJbiIpfSxlKSxlKz0xNTB9KSl9fSgpLHMub25PcGVuaW5nLmFwcGx5KG51bGwsW3MscC50b2FzdF0pO3RyeXt2YXIgQz1uZXcgQ3VzdG9tRXZlbnQobisiLW9wZW5pbmciLHtkZXRhaWw6cyxidWJibGVzOiEwLGNhbmNlbGFibGU6ITB9KTtkb2N1bWVudC5kaXNwYXRjaEV2ZW50KEMpfWNhdGNoKHcpe2NvbnNvbGUud2Fybih3KX1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7cC50b2FzdC5jbGFzc0xpc3QucmVtb3ZlKG4rIi1vcGVuaW5nIikscC50b2FzdC5jbGFzc0xpc3QuYWRkKG4rIi1vcGVuZWQiKTt0cnl7dmFyIHQ9bmV3IEN1c3RvbUV2ZW50KG4rIi1vcGVuZWQiLHtkZXRhaWw6cyxidWJibGVzOiEwLGNhbmNlbGFibGU6ITB9KTtkb2N1bWVudC5kaXNwYXRjaEV2ZW50KHQpfWNhdGNoKGUpe2NvbnNvbGUud2FybihlKX1zLm9uT3BlbmVkLmFwcGx5KG51bGwsW3MscC50b2FzdF0pfSwxZTMpLHMuZHJhZyYmKGE/KHAudG9hc3QuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hzdGFydCIsZnVuY3Rpb24odCl7Yi5zdGFydE1vdmluZyh0aGlzLGkscyx0KX0sITEpLHAudG9hc3QuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hlbmQiLGZ1bmN0aW9uKHQpe2Iuc3RvcE1vdmluZyh0aGlzLHQpfSwhMSkpOihwLnRvYXN0LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsZnVuY3Rpb24odCl7dC5wcmV2ZW50RGVmYXVsdCgpLGIuc3RhcnRNb3ZpbmcodGhpcyxpLHMsdCl9LCExKSxwLnRvYXN0LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLGZ1bmN0aW9uKHQpe3QucHJldmVudERlZmF1bHQoKSxiLnN0b3BNb3ZpbmcodGhpcyx0KX0sITEpKSkscy5jbG9zZU9uRXNjYXBlJiZkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJrZXl1cCIsZnVuY3Rpb24odCl7dD10fHx3aW5kb3cuZXZlbnQsMjc9PXQua2V5Q29kZSYmaS5oaWRlKHMscC50b2FzdCwiZXNjIil9KSxzLmNsb3NlT25DbGljayYmcC50b2FzdC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24odCl7aS5oaWRlKHMscC50b2FzdCwidG9hc3QiKX0pLGkudG9hc3Q9cC50b2FzdH0sZX0pOw=="}},"time_used":40,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":36,"receive":4,"ssl":0},"alerts":{"ids":null,"analyzer":[{"sensor_name":"dns4eu","sensor_type":"DNS","title":"DNS4EU","description":"DNS4EU","scan_date":"2026-07-27","alert":"Sinkholed","trigger":"digital-assettrade.com","verdict":"malicious","severity":"medium","comment":"","link":"https://www.joindns4.eu/","meta":null}],"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/69861.87e20a8951ceecc461d8.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:13.769Z","timestamp":1785148033769,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/69861.87e20a8951ceecc461d8.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:13 GMT\r\ncontent-type: text/css; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a4360b8-f42\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Tue, 30 Jun 2026 06:22:48 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.57\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 06/30/2026 11:55:10\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 5e60b8e2b4c707222a35e8bef0c17851\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":3906,"size_decoded":1536,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with very long lines (3906), with no line terminators","md5":"3fa9c4040463e2838455328de777e889","sha1":"26592cfad4d8f47a69b92e266591e38c8c733e5a","sha256":"ca5b5651ba39b94a8865341a1ecc9844d0fe73a74db6091a7e975a360bb01d3e","sha512":"73fda847130c90e9286ea7be82f7b271a1d1d328e24768e158b7c6dac2cd3f1d20b8d08ead70420c17212b275c24d2bc70a86bfa5c8924db2a8dcd9079178f33","ssdeep":"","tlshash":"46817ec9f2e9997a02077d2982d182649b0e9ce2da53669ebc7671c000ca7dd43bdc4e","first_seen":"2026-06-30T21:57:43.451848Z","last_seen":"2026-07-27T12:48:39.731054Z","times_seen":242,"resource_available":false,"data":"LmJ1dHRvbi1zWHNwWk5uWnthbGw6dW5zZXQ7YWxpZ24taXRlbXM6Y2VudGVyO2N1cnNvcjpkZWZhdWx0O2Rpc3BsYXk6ZmxleDtmbGV4OjEgMCBhdXRvO2hlaWdodDoxMDAlOy0tdHYtdG9vbGJhci1leHBsaWNpdC1ob3Zlci1ib3JkZXItcmFkaXVzOjZweDtjb2xvcjp2YXIoLS10di1jb2xvci10b29sYmFyLWJ1dHRvbi10ZXh0LHZhcigtLWNvbG9yLXRvb2xiYXItYnV0dG9uLXRleHQpKTtwb3NpdGlvbjpyZWxhdGl2ZTt0cmFuc2l0aW9uOmJhY2tncm91bmQtY29sb3IgLjM1cyBlYXNlLGNvbG9yIDYwbXMgZWFzZTt6LWluZGV4OjB9LmJ1dHRvbi1zWHNwWk5uWi5ob3Zlci1zWHNwWk5uWiwuYnV0dG9uLXNYc3BaTm5aOmFjdGl2ZXtjb2xvcjp2YXIoLS10di1jb2xvci10b29sYmFyLWJ1dHRvbi10ZXh0LWhvdmVyLHZhcigtLWNvbG9yLXRvb2xiYXItYnV0dG9uLXRleHQtaG92ZXIpKX1AbWVkaWEgKGFueS1ob3Zlcjpob3Zlcil7LmJ1dHRvbi1zWHNwWk5uWjpob3Zlcntjb2xvcjp2YXIoLS10di1jb2xvci10b29sYmFyLWJ1dHRvbi10ZXh0LWhvdmVyLHZhcigtLWNvbG9yLXRvb2xiYXItYnV0dG9uLXRleHQtaG92ZXIpKX19LmJ1dHRvbi1zWHNwWk5uWi5jbGlja2VkLXNYc3BaTm5aLC5idXR0b24tc1hzcFpOblo6YWN0aXZle2NvbG9yOnZhcigtLXR2LWNvbG9yLXRvb2xiYXItYnV0dG9uLXRleHQtY2xpY2tlZCx2YXIoLS10di1jb2xvci10b29sYmFyLWJ1dHRvbi10ZXh0LWhvdmVyLHZhcigtLWNvbG9yLXRvb2xiYXItYnV0dG9uLXRleHQtaG92ZXIpKSl9LmJ1dHRvbi1zWHNwWk5uWjpiZWZvcmV7Ym9yZGVyLXJhZGl1czp2YXIoLS10di10b29sYmFyLWV4cGxpY2l0LWhvdmVyLWJvcmRlci1yYWRpdXMsMnB4KTtib3R0b206dmFyKC0tdHYtdG9vbGJhci1leHBsaWNpdC1ob3Zlci1tYXJnaW4tYm90dG9tLHZhcigtLXR2LXRvb2xiYXItZXhwbGljaXQtaG92ZXItbWFyZ2luLDJweCkpO2Rpc3BsYXk6YmxvY2s7aW5zZXQtaW5saW5lLWVuZDp2YXIoLS10di10b29sYmFyLWV4cGxpY2l0LWhvdmVyLW1hcmdpbi1yaWdodCx2YXIoLS10di10b29sYmFyLWV4cGxpY2l0LWhvdmVyLW1hcmdpbiwycHgpKTtpbnNldC1pbmxpbmUtc3RhcnQ6dmFyKC0tdHYtdG9vbGJhci1leHBsaWNpdC1ob3Zlci1tYXJnaW4tbGVmdCx2YXIoLS10di10b29sYmFyLWV4cGxpY2l0LWhvdmVyLW1hcmdpbiwycHgpKTtvdXRsaW5lOnZhcigtLWNvbG9yLXR2LWJsdWUtNTAwKSBub25lIDJweDtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6dmFyKC0tdHYtdG9vbGJhci1leHBsaWNpdC1ob3Zlci1tYXJnaW4tdG9wLHZhcigtLXR2LXRvb2xiYXItZXhwbGljaXQtaG92ZXItbWFyZ2luLDJweCkpO3otaW5kZXg6LTF9LmJ1dHRvbi1zWHNwWk5uWi5ob3Zlci1zWHNwWk5uWjpiZWZvcmUsLmJ1dHRvbi1zWHNwWk5uWjphY3RpdmU6YmVmb3Jle2JhY2tncm91bmQtY29sb3I6dmFyKC0tdHYtY29sb3ItdG9vbGJhci1idXR0b24tYmFja2dyb3VuZC1ob3Zlcix2YXIoLS1jb2xvci10b29sYmFyLWJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyKSk7Y29udGVudDoiIn1AbWVkaWEgKGFueS1ob3Zlcjpob3Zlcil7LmJ1dHRvbi1zWHNwWk5uWjpob3ZlcjpiZWZvcmV7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS10di1jb2xvci10b29sYmFyLWJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyLHZhcigtLWNvbG9yLXRvb2xiYXItYnV0dG9uLWJhY2tncm91bmQtaG92ZXIpKTtjb250ZW50OiIifX0uYnV0dG9uLXNYc3BaTm5aLmNsaWNrZWQtc1hzcFpOblo6YmVmb3JlLC5idXR0b24tc1hzcFpOblo6YWN0aXZlOmJlZm9yZXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXR2LWNvbG9yLXRvb2xiYXItYnV0dG9uLWJhY2tncm91bmQtY2xpY2tlZCx2YXIoLS10di1jb2xvci10b29sYmFyLWJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyLHZhcigtLWNvbG9yLXRvb2xiYXItYnV0dG9uLWJhY2tncm91bmQtaG92ZXIpKSk7Y29udGVudDoiIn0uYnV0dG9uLXNYc3BaTm5aLmFjY2Vzc2libGUtc1hzcFpOblo6Zm9jdXMtdmlzaWJsZTpiZWZvcmV7Y29udGVudDoiIjtvdXRsaW5lLXN0eWxlOnNvbGlkfS5idXR0b24tc1hzcFpOblogc3Zne2Rpc3BsYXk6YmxvY2t9LmJ1dHRvbi1zWHNwWk5uWiAuYXJyb3ctc1hzcFpOblp7YWxpZ24taXRlbXM6Y2VudGVyO2NvbnRhaW46Y29udGVudDtkaXNwbGF5OmZsZXg7aGVpZ2h0OjEwMCV9LmJ1dHRvbi1zWHNwWk5uWiAuYXJyb3dXcmFwLXNYc3BaTm5ae21hcmdpbjowIDhweDt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuMzVzIGVhc2V9QG1lZGlhIChhbnktaG92ZXI6aG92ZXIpey5idXR0b24tc1hzcFpOblo6aG92ZXIgLmFycm93V3JhcC1zWHNwWk5uWnt0cmFuc2Zvcm06dHJhbnNsYXRlWSgycHgpfX0uYnV0dG9uLXNYc3BaTm5aLmlzT3BlbmVkLXNYc3BaTm5aLmhvdmVyLXNYc3BaTm5aOmJlZm9yZSwuYnV0dG9uLXNYc3BaTm5aLmlzT3BlbmVkLXNYc3BaTm5aOmFjdGl2ZTpiZWZvcmUsLmJ1dHRvbi1zWHNwWk5uWi5pc09wZW5lZC1zWHNwWk5uWjpiZWZvcmV7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS10di1jb2xvci10b29sYmFyLWJ1dHRvbi1iYWNrZ3JvdW5kLWV4cGFuZGVkLHZhcigtLWNvbG9yLXRvb2xiYXItb3BlbmVkLWVsZW1lbnQtYmcpKTtib3JkZXItcmFkaXVzOnZhcigtLXR2LXRvb2xiYXItb3BlbmVkLWVsZW1lbnQtaG92ZXItYm9yZGVyLXJhZGl1cywwKTtib3R0b206dmFyKC0tdHYtdG9vbGJhci1vcGVuZWQtZWxlbWVudC1ob3Zlci1tYXJnaW4sMCk7Y29udGVudDoiIjtkaXNwbGF5OmJsb2NrO2luc2V0LWlubGluZS1lbmQ6dmFyKC0tdHYtdG9vbGJhci1vcGVuZWQtZWxlbWVudC1ob3Zlci1tYXJnaW4sMCk7aW5zZXQtaW5saW5lLXN0YXJ0OnZhcigtLXR2LXRvb2xiYXItb3BlbmVkLWVsZW1lbnQtaG92ZXItbWFyZ2luLDApO3Bvc2l0aW9uOmFic29sdXRlO3RvcDp2YXIoLS10di10b29sYmFyLW9wZW5lZC1lbGVtZW50LWhvdmVyLW1hcmdpbiwwKTt6LWluZGV4Oi0xfUBtZWRpYSAoYW55LWhvdmVyOmhvdmVyKXsuYnV0dG9uLXNYc3BaTm5aLmlzT3BlbmVkLXNYc3BaTm5aOmhvdmVyOmJlZm9yZXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXR2LWNvbG9yLXRvb2xiYXItYnV0dG9uLWJhY2tncm91bmQtZXhwYW5kZWQsdmFyKC0tY29sb3ItdG9vbGJhci1vcGVuZWQtZWxlbWVudC1iZykpO2JvcmRlci1yYWRpdXM6dmFyKC0tdHYtdG9vbGJhci1vcGVuZWQtZWxlbWVudC1ob3Zlci1ib3JkZXItcmFkaXVzLDApO2JvdHRvbTp2YXIoLS10di10b29sYmFyLW9wZW5lZC1lbGVtZW50LWhvdmVyLW1hcmdpbiwwKTtjb250ZW50OiIiO2Rpc3BsYXk6YmxvY2s7aW5zZXQtaW5saW5lLWVuZDp2YXIoLS10di10b29sYmFyLW9wZW5lZC1lbGVtZW50LWhvdmVyLW1hcmdpbiwwKTtpbnNldC1pbmxpbmUtc3RhcnQ6dmFyKC0tdHYtdG9vbGJhci1vcGVuZWQtZWxlbWVudC1ob3Zlci1tYXJnaW4sMCk7cG9zaXRpb246YWJzb2x1dGU7dG9wOnZhcigtLXR2LXRvb2xiYXItb3BlbmVkLWVsZW1lbnQtaG92ZXItbWFyZ2luLDApO3otaW5kZXg6LTF9fS5idXR0b24tc1hzcFpOblouaXNPcGVuZWQtc1hzcFpOblouY2xpY2tlZC1zWHNwWk5uWjpiZWZvcmUsLmJ1dHRvbi1zWHNwWk5uWi5pc09wZW5lZC1zWHNwWk5uWjphY3RpdmU6YmVmb3Jle2JhY2tncm91bmQtY29sb3I6dmFyKC0tdHYtY29sb3ItdG9vbGJhci1idXR0b24tYmFja2dyb3VuZC1jbGlja2VkLHZhcigtLXR2LWNvbG9yLXRvb2xiYXItYnV0dG9uLWJhY2tncm91bmQtZXhwYW5kZWQsdmFyKC0tY29sb3ItdG9vbGJhci1vcGVuZWQtZWxlbWVudC1iZykpKTtjb250ZW50OiIiO2Rpc3BsYXk6YmxvY2t9QG1lZGlhIChhbnktaG92ZXI6aG92ZXIpey5idXR0b24tc1hzcFpOblouaXNPcGVuZWQtc1hzcFpOblo6aG92ZXIgLmFycm93V3JhcC1zWHNwWk5uWnt0cmFuc2Zvcm06bm9uZX19"}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"translate.googleapis.com/translate_static/img/loading.gif","fqdn":"translate.googleapis.com","domain":"translate.googleapis.com","tld":"googleapis.com"},"ip":{"addr":"142.250.178.106","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://digital-assettrade.com/","date":"2026-07-27T10:27:13.966Z","timestamp":1785148033966,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_256_GCM_SHA384","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"upload.video.google.com","organization":""},"issuer":{"commonName":"WE2","organization":"Google Trust Services"},"validity":{"start":"Mon, 29 Jun 2026 08:39:27 GMT","end":"Mon, 21 Sep 2026 08:39:26 GMT"},"fingerprint":{"sha1":"50:37:CF:61:33:A1:EE:47:D9:3D:A6:5E:07:BA:4C:FF:F7:25:9F:76","sha256":"7D:4D:21:06:63:E2:5E:F0:8C:59:8E:EB:B7:94:2B:81:70:11:D3:F4:C0:A0:81:A6:1B:E7:27:FD:56:10:1A:11"}}},"request":{"raw":"GET /translate_static/img/loading.gif HTTP/1.1\r\nHost: translate.googleapis.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-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://digital-assettrade.com/\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=6, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccept-ranges: bytes\r\ncross-origin-resource-policy: cross-origin\r\ncross-origin-opener-policy-report-only: same-origin; report-to=\"static-on-bigtable\"\r\nreport-to: {\"group\":\"static-on-bigtable\",\"max_age\":2592000,\"endpoints\":[{\"url\":\"https://csp.withgoogle.com/csp/report-to/static-on-bigtable\"}]}\r\ncontent-length: 702\r\nx-content-type-options: nosniff\r\nserver: sffe\r\nx-xss-protection: 0\r\ndate: Fri, 24 Jul 2026 21:36:56 GMT\r\nexpires: Sat, 24 Jul 2027 21:36:56 GMT\r\ncache-control: public, max-age=31536000\r\nage: 219018\r\nlast-modified: Thu, 03 Oct 2019 10:15:00 GMT\r\ncontent-type: image/gif\r\nalt-svc: h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":null,"data":{"size":702,"size_decoded":1361,"mime_type":"image/gif","magic":"GIF image data, version 89a, 16 x 16","md5":"eefaa072b284a305c12c06608333abc2","sha1":"58272721ccc1efda26eaa22354022c7c793edbb6","sha256":"fb6b7bcc1ab09f27db17bcbdf5239ce1d52af34f1fc5125b3fc8528a07848d21","sha512":"c5ccfdcd9ce76de85f043a1733c9f0b620e15babbaf2a5639684c7b2bb8e5a66473c9a83f14cb48d9cb6c6a1c6b36f2c5a28e25abaf131fb85ec5eedecbae4ac","ssdeep":"","tlshash":"5d01dd13f3d50473f66d0075a20cc57f010635daaadad7089a48117cfe1983c5239b82","first_seen":"2023-04-05T11:18:23Z","last_seen":"2026-07-27T13:00:41.388168Z","times_seen":17692,"resource_available":false,"data":"R0lGODlhEAAQAPIAAP///wAAAMLCwkJCQgAAAGJiYoKCgpKSkiH/C05FVFNDQVBFMi4wAwEAAAAh/h1CdWlsdCB3aXRoIEdJRiBNb3ZpZSBHZWFyIDQuMAAh/hVNYWRlIGJ5IEFqYXhMb2FkLmluZm8AIfkECQoAAAAsAAAAABAAEAAAAzMIutz+MMpJaxNjCDoIGZwHTphmCUWxMcK6FJnBti5gxMJx0C1bGDndpgc5GAwHSmvnSAAAIfkECQoAAAAsAAAAABAAEAAAAzQIutz+TowhIBuEDLuw5opEcUJRVGAxGSBgTEVbGqh8HLV13+1hGAeAINcY4oZDGbIlJCoSACH5BAkKAAAALAAAAAAQABAAAAM2CLoyIyvKQciQzJRWLwaFYxwO9BlO8UlCYZircBzwCsyzvRzGqCsCWe0X/AGDww8yqWQan78EACH5BAkKAAAALAAAAAAQABAAAAMzCLpiJSvKMoaR7JxWX4WLpgmFIQwEMUSHYRwRqkaCsNEfA2JSXfM9HzA4LBqPyKRyOUwAACH5BAkKAAAALAAAAAAQABAAAAMyCLpyJytK52QU8BjzTIEMJnbDYFxiVJSFhLkeaFlCKc/KQBADHuk8H8MmLBqPyKRSkgAAIfkECQoAAAAsAAAAABAAEAAAAzMIuiDCkDkX43TnvNqeMBnHHOAhLkK2ncpXrKIxDAYLFHNhu7A195UBgTCwCYm7n20pSgAAIfkECQoAAAAsAAAAABAAEAAAAzIIutz+8AkR2ZxVXZoB7tpxcJVgiN1hnN00loVBRsUwFJBgm7YBDQTCQBCbMYDC1s6RAAAh+QQJCgAAACwAAAAAEAAQAAADMgi63P4wykmrZULUnCnXHggIwyCOx3EOBDEwqcqwrlAYwmEYB1bapQIgdWIYgp5bEZAAADsAAAAAAAAAAAAK"}},"time_used":16,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":16,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/80915.69404fda8aafc2742c55.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.014Z","timestamp":1785148034014,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/80915.69404fda8aafc2742c55.js HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding, Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\netag: W/\"6a102262-2b32\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Fri, 22 May 2026 09:31:14 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.53\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 05/22/2026 10:43:51\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: b6efd1ba2d391857171b2d10fea98623\r\ncdn-cache: HIT\r\ncontent-encoding: br\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":11058,"size_decoded":4760,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (3072)","md5":"de2945c844b995a4434f72c9e9f10d55","sha1":"dfa0f41fd695f4ab2068af223864f90085590f09","sha256":"29df78da8b43b5048b57229594ed6f3ad79785773f63f3001a604d1a17a206e7","sha512":"e000d576b22c638622179b6cd5b5e72b9e95c90f191dce058a700842f4ab620ffa60fabfd70814866ae1686b778f1fb6384117e7bf0c4d1c66af5945324c2137","ssdeep":"192:zD6UcCbe+/OzNJUFPphLnY8P8hfJnubwbwShMj:SUcX+/OuPphLehfJnpMShMj","tlshash":"bd32a559b2a0b02595cf6760c02f150aa2752019f70d98d4f69ed9ea3db076f213be3d","first_seen":"2026-05-22T13:27:07.587764Z","last_seen":"2026-07-27T12:48:39.608917Z","times_seen":182,"resource_available":true,"data":"InVzZSBzdHJpY3QiOyhzZWxmLndlYnBhY2tDaHVua3RyYWRpbmd2aWV3PXNlbGYud2VicGFja0NodW5rdHJhZGluZ3ZpZXd8fFtdKS5wdXNoKFtbODA5MTVdLHs2ODA5MTUodCxlLHIpe3IuZChlLHtGaXhlZFNpemVMaXN0OigpPT56LFZhcmlhYmxlU2l6ZUxpc3Q6KCk9Pk19KTt2YXIgbj1yKDY0NDMyMCksbz1yKDMxMDIxMSksaT1yKDk0MTkyMSksYT1OdW1iZXIuaXNOYU58fGZ1bmN0aW9uKHQpe3JldHVybiJudW1iZXIiPT10eXBlb2YgdCYmdCE9dH07ZnVuY3Rpb24gbCh0LGUpe2lmKHQubGVuZ3RoIT09ZS5sZW5ndGgpcmV0dXJuITE7Zm9yKHZhciByPTA7cjx0Lmxlbmd0aDtyKyspaWYobj10W3JdLG89ZVtyXSwhKG49PT1vfHxhKG4pJiZhKG8pKSlyZXR1cm4hMTt2YXIgbixvO3JldHVybiEwfWNvbnN0IHM9ZnVuY3Rpb24odCxlKXt2YXIgcjt2b2lkIDA9PT1lJiYoZT1sKTt2YXIgbixvPVtdLGk9ITE7cmV0dXJuIGZ1bmN0aW9uKCl7Zm9yKHZhciBhPVtdLGw9MDtsPGFyZ3VtZW50cy5sZW5ndGg7bCsrKWFbbF09YXJndW1lbnRzW2xdO3JldHVybiBpJiZyPT09dGhpcyYmZShhLG8pfHwobj10LmFwcGx5KHRoaXMsYSksaT0hMCxyPXRoaXMsbz1hKSxufX07dmFyIGM9cig3Nzk0NzQpLHU9Im9iamVjdCI9PXR5cGVvZiBwZXJmb3JtYW5jZSYmImZ1bmN0aW9uIj09dHlwZW9mIHBlcmZvcm1hbmNlLm5vdz9mdW5jdGlvbigpe3JldHVybiBwZXJmb3JtYW5jZS5ub3coKX06ZnVuY3Rpb24oKXtyZXR1cm4gRGF0ZS5ub3coKX07ZnVuY3Rpb24gZih0KXtjYW5jZWxBbmltYXRpb25GcmFtZSh0LmlkKX1mdW5jdGlvbiBkKHQsZSl7dmFyIHI9dSgpO3ZhciBuPXtpZDpyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKGZ1bmN0aW9uIG8oKXt1KCktcj49ZT90LmNhbGwobnVsbCk6bi5pZD1yZXF1ZXN0QW5pbWF0aW9uRnJhbWUobyl9KSl9O3JldHVybiBufXZhciBoPW51bGw7ZnVuY3Rpb24gcCh0KXtpZih2b2lkIDA9PT10JiYodD0hMSksbnVsbD09PWh8fHQpe3ZhciBlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLHI9ZS5zdHlsZTtyLndpZHRoPSI1MHB4IixyLmhlaWdodD0iNTBweCIsci5vdmVyZmxvdz0ic2Nyb2xsIixyLmRpcmVjdGlvbj0icnRsIjt2YXIgbj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSxvPW4uc3R5bGU7cmV0dXJuIG8ud2lkdGg9IjEwMHB4IixvLmhlaWdodD0iMTAwcHgiLGUuYXBwZW5kQ2hpbGQobiksZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlKSxlLnNjcm9sbExlZnQ+MD9oPSJwb3NpdGl2ZS1kZXNjZW5kaW5nIjooZS5zY3JvbGxMZWZ0PTEsaD0wPT09ZS5zY3JvbGxMZWZ0PyJuZWdhdGl2ZSI6InBvc2l0aXZlLWFzY2VuZGluZyIpLGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZSksaH1yZXR1cm4gaH12YXIgbT1mdW5jdGlvbih0LGUpe3JldHVybiB0fTtmdW5jdGlvbiB2KHQpe3ZhciBlLHIsYT10LmdldEl0ZW1PZmZzZXQsbD10LmdldEVzdGltYXRlZFRvdGFsU2l6ZSx1PXQuZ2V0SXRlbVNpemUsaD10LmdldE9mZnNldEZvckluZGV4QW5kQWxpZ25tZW50LHY9dC5nZXRTdGFydEluZGV4Rm9yT2Zmc2V0LFM9dC5nZXRTdG9wSW5kZXhGb3JTdGFydEluZGV4LEk9dC5pbml0SW5zdGFuY2VQcm9wcyxfPXQuc2hvdWxkUmVzZXRTdHlsZUNhY2hlT25JdGVtU2l6ZUNoYW5nZSx5PXQudmFsaWRhdGVQcm9wcztyZXR1cm4gcj1lPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoZSl7dmFyIHI7cmV0dXJuKHI9dC5jYWxsKHRoaXMsZSl8fHRoaXMpLl9pbnN0YW5jZVByb3BzPUkoci5wcm9wcywoMCxpLmRlZmF1bHQpKCgwLGkuZGVmYXVsdCkocikpKSxyLl9vdXRlclJlZj12b2lkIDAsci5fcmVzZXRJc1Njcm9sbGluZ1RpbWVvdXRJZD1udWxsLHIuc3RhdGU9e2luc3RhbmNlOigwLGkuZGVmYXVsdCkoKDAsaS5kZWZhdWx0KShyKSksaXNTY3JvbGxpbmc6ITEsc2Nyb2xsRGlyZWN0aW9uOiJmb3J3YXJkIixzY3JvbGxPZmZzZXQ6Im51bWJlciI9PXR5cGVvZiByLnByb3BzLmluaXRpYWxTY3JvbGxPZmZzZXQ/ci5wcm9wcy5pbml0aWFsU2Nyb2xsT2Zmc2V0OjAsc2Nyb2xsVXBkYXRlV2FzUmVxdWVzdGVkOiExfSxyLl9jYWxsT25JdGVtc1JlbmRlcmVkPXZvaWQgMCxyLl9jYWxsT25JdGVtc1JlbmRlcmVkPXMoKGZ1bmN0aW9uKHQsZSxuLG8pe3JldHVybiByLnByb3BzLm9uSXRlbXNSZW5kZXJlZCh7b3ZlcnNjYW5TdGFydEluZGV4OnQsb3ZlcnNjYW5TdG9wSW5kZXg6ZSx2aXNpYmxlU3RhcnRJbmRleDpuLHZpc2libGVTdG9wSW5kZXg6b30pfSkpLHIuX2NhbGxPblNjcm9sbD12b2lkIDAsci5fY2FsbE9uU2Nyb2xsPXMoKGZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gci5wcm9wcy5vblNjcm9sbCh7c2Nyb2xsRGlyZWN0aW9uOnQsc2Nyb2xsT2Zmc2V0OmUsc2Nyb2xsVXBkYXRlV2FzUmVxdWVzdGVkOm59KX0pKSxyLl9nZXRJdGVtU3R5bGU9dm9pZCAwLHIuX2dldEl0ZW1TdHlsZT1mdW5jdGlvbih0KXt2YXIgZSxuPXIucHJvcHMsbz1uLmRpcmVjdGlvbixpPW4uaXRlbVNpemUsbD1uLmxheW91dCxzPXIuX2dldEl0ZW1TdHlsZUNhY2hlKF8mJmksXyYmbCxfJiZvKTtpZihzLmhhc093blByb3BlcnR5KHQpKWU9c1t0XTtlbHNle3ZhciBjPWEoci5wcm9wcyx0LHIuX2luc3RhbmNlUHJvcHMpLGY9dShyLnByb3BzLHQsci5faW5zdGFuY2VQcm9wcyksZD0iaG9yaXpvbnRhbCI9PT1vfHwiaG9yaXpvbnRhbCI9PT1sLGg9InJ0bCI9PT1vLHA9ZD9jOjA7c1t0XT1lPXtwb3NpdGlvbjoiYWJzb2x1dGUiLGxlZnQ6aD92b2lkIDA6cCxyaWdodDpoP3A6dm9pZCAwLHRvcDpkPzA6YyxoZWlnaHQ6ZD8iMTAwJSI6Zix3aWR0aDpkP2Y6IjEwMCUifX1yZXR1cm4gZX0sci5fZ2V0SXRlbVN0eWxlQ2FjaGU9dm9pZCAwLHIuX2dldEl0ZW1TdHlsZUNhY2hlPXMoKGZ1bmN0aW9uKHQsZSxyKXtyZXR1cm57fX0pKSxyLl9vblNjcm9sbEhvcml6b250YWw9ZnVuY3Rpb24odCl7dmFyIGU9dC5jdXJyZW50VGFyZ2V0LG49ZS5jbGllbnRXaWR0aCxvPWUuc2Nyb2xsTGVmdCxpPWUuc2Nyb2xsV2lkdGg7ci5zZXRTdGF0ZSgoZnVuY3Rpb24odCl7aWYodC5zY3JvbGxPZmZzZXQ9PT1vKXJldHVybiBudWxsCjt2YXIgZT1yLnByb3BzLmRpcmVjdGlvbixhPW87aWYoInJ0bCI9PT1lKXN3aXRjaChwKCkpe2Nhc2UibmVnYXRpdmUiOmE9LW87YnJlYWs7Y2FzZSJwb3NpdGl2ZS1kZXNjZW5kaW5nIjphPWktbi1vfXJldHVybiBhPU1hdGgubWF4KDAsTWF0aC5taW4oYSxpLW4pKSx7aXNTY3JvbGxpbmc6ITAsc2Nyb2xsRGlyZWN0aW9uOnQuc2Nyb2xsT2Zmc2V0PG8/ImZvcndhcmQiOiJiYWNrd2FyZCIsc2Nyb2xsT2Zmc2V0OmEsc2Nyb2xsVXBkYXRlV2FzUmVxdWVzdGVkOiExfX0pLHIuX3Jlc2V0SXNTY3JvbGxpbmdEZWJvdW5jZWQpfSxyLl9vblNjcm9sbFZlcnRpY2FsPWZ1bmN0aW9uKHQpe3ZhciBlPXQuY3VycmVudFRhcmdldCxuPWUuY2xpZW50SGVpZ2h0LG89ZS5zY3JvbGxIZWlnaHQsaT1lLnNjcm9sbFRvcDtyLnNldFN0YXRlKChmdW5jdGlvbih0KXtpZih0LnNjcm9sbE9mZnNldD09PWkpcmV0dXJuIG51bGw7dmFyIGU9TWF0aC5tYXgoMCxNYXRoLm1pbihpLG8tbikpO3JldHVybntpc1Njcm9sbGluZzohMCxzY3JvbGxEaXJlY3Rpb246dC5zY3JvbGxPZmZzZXQ8ZT8iZm9yd2FyZCI6ImJhY2t3YXJkIixzY3JvbGxPZmZzZXQ6ZSxzY3JvbGxVcGRhdGVXYXNSZXF1ZXN0ZWQ6ITF9fSksci5fcmVzZXRJc1Njcm9sbGluZ0RlYm91bmNlZCl9LHIuX291dGVyUmVmU2V0dGVyPWZ1bmN0aW9uKHQpe3ZhciBlPXIucHJvcHMub3V0ZXJSZWY7ci5fb3V0ZXJSZWY9dCwiZnVuY3Rpb24iPT10eXBlb2YgZT9lKHQpOm51bGwhPWUmJiJvYmplY3QiPT10eXBlb2YgZSYmZS5oYXNPd25Qcm9wZXJ0eSgiY3VycmVudCIpJiYoZS5jdXJyZW50PXQpfSxyLl9yZXNldElzU2Nyb2xsaW5nRGVib3VuY2VkPWZ1bmN0aW9uKCl7bnVsbCE9PXIuX3Jlc2V0SXNTY3JvbGxpbmdUaW1lb3V0SWQmJmYoci5fcmVzZXRJc1Njcm9sbGluZ1RpbWVvdXRJZCksci5fcmVzZXRJc1Njcm9sbGluZ1RpbWVvdXRJZD1kKHIuX3Jlc2V0SXNTY3JvbGxpbmcsMTUwKX0sci5fcmVzZXRJc1Njcm9sbGluZz1mdW5jdGlvbigpe3IuX3Jlc2V0SXNTY3JvbGxpbmdUaW1lb3V0SWQ9bnVsbCxyLnNldFN0YXRlKHtpc1Njcm9sbGluZzohMX0sKGZ1bmN0aW9uKCl7ci5fZ2V0SXRlbVN0eWxlQ2FjaGUoLTEsbnVsbCl9KSl9LHJ9KDAsby5kZWZhdWx0KShlLHQpLGUuZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGcodCxlKSx5KHQpLG51bGx9O3ZhciByPWUucHJvdG90eXBlO3JldHVybiByLnNjcm9sbFRvPWZ1bmN0aW9uKHQpe3Q9TWF0aC5tYXgoMCx0KSx0aGlzLnNldFN0YXRlKChmdW5jdGlvbihlKXtyZXR1cm4gZS5zY3JvbGxPZmZzZXQ9PT10P251bGw6e3Njcm9sbERpcmVjdGlvbjplLnNjcm9sbE9mZnNldDx0PyJmb3J3YXJkIjoiYmFja3dhcmQiLHNjcm9sbE9mZnNldDp0LHNjcm9sbFVwZGF0ZVdhc1JlcXVlc3RlZDohMH19KSx0aGlzLl9yZXNldElzU2Nyb2xsaW5nRGVib3VuY2VkKX0sci5zY3JvbGxUb0l0ZW09ZnVuY3Rpb24odCxlKXt2b2lkIDA9PT1lJiYoZT0iYXV0byIpO3ZhciByPXRoaXMucHJvcHMuaXRlbUNvdW50LG49dGhpcy5zdGF0ZS5zY3JvbGxPZmZzZXQ7dD1NYXRoLm1heCgwLE1hdGgubWluKHQsci0xKSksdGhpcy5zY3JvbGxUbyhoKHRoaXMucHJvcHMsdCxlLG4sdGhpcy5faW5zdGFuY2VQcm9wcykpfSxyLmNvbXBvbmVudERpZE1vdW50PWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5wcm9wcyxlPXQuZGlyZWN0aW9uLHI9dC5pbml0aWFsU2Nyb2xsT2Zmc2V0LG49dC5sYXlvdXQ7aWYoIm51bWJlciI9PXR5cGVvZiByJiZudWxsIT10aGlzLl9vdXRlclJlZil7dmFyIG89dGhpcy5fb3V0ZXJSZWY7Imhvcml6b250YWwiPT09ZXx8Imhvcml6b250YWwiPT09bj9vLnNjcm9sbExlZnQ9cjpvLnNjcm9sbFRvcD1yfXRoaXMuX2NhbGxQcm9wc0NhbGxiYWNrcygpfSxyLmNvbXBvbmVudERpZFVwZGF0ZT1mdW5jdGlvbigpe3ZhciB0PXRoaXMucHJvcHMsZT10LmRpcmVjdGlvbixyPXQubGF5b3V0LG49dGhpcy5zdGF0ZSxvPW4uc2Nyb2xsT2Zmc2V0O2lmKG4uc2Nyb2xsVXBkYXRlV2FzUmVxdWVzdGVkJiZudWxsIT10aGlzLl9vdXRlclJlZil7dmFyIGk9dGhpcy5fb3V0ZXJSZWY7aWYoImhvcml6b250YWwiPT09ZXx8Imhvcml6b250YWwiPT09cilpZigicnRsIj09PWUpc3dpdGNoKHAoKSl7Y2FzZSJuZWdhdGl2ZSI6aS5zY3JvbGxMZWZ0PS1vO2JyZWFrO2Nhc2UicG9zaXRpdmUtYXNjZW5kaW5nIjppLnNjcm9sbExlZnQ9bzticmVhaztkZWZhdWx0OnZhciBhPWkuY2xpZW50V2lkdGgsbD1pLnNjcm9sbFdpZHRoO2kuc2Nyb2xsTGVmdD1sLWEtb31lbHNlIGkuc2Nyb2xsTGVmdD1vO2Vsc2UgaS5zY3JvbGxUb3A9b310aGlzLl9jYWxsUHJvcHNDYWxsYmFja3MoKX0sci5jb21wb25lbnRXaWxsVW5tb3VudD1mdW5jdGlvbigpe251bGwhPT10aGlzLl9yZXNldElzU2Nyb2xsaW5nVGltZW91dElkJiZmKHRoaXMuX3Jlc2V0SXNTY3JvbGxpbmdUaW1lb3V0SWQpfSxyLnJlbmRlcj1mdW5jdGlvbigpe3ZhciB0PXRoaXMucHJvcHMsZT10LmNoaWxkcmVuLHI9dC5jbGFzc05hbWUsbz10LmRpcmVjdGlvbixpPXQuaGVpZ2h0LGE9dC5pbm5lclJlZixzPXQuaW5uZXJFbGVtZW50VHlwZSx1PXQuaW5uZXJUYWdOYW1lLGY9dC5pdGVtQ291bnQsZD10Lml0ZW1EYXRhLGg9dC5pdGVtS2V5LHA9dm9pZCAwPT09aD9tOmgsdj10LmxheW91dCxnPXQub3V0ZXJFbGVtZW50VHlwZSxTPXQub3V0ZXJUYWdOYW1lLEk9dC5zdHlsZSxfPXQudXNlSXNTY3JvbGxpbmcseT10LndpZHRoLE09dGhpcy5zdGF0ZS5pc1Njcm9sbGluZyx6PSJob3Jpem9udGFsIj09PW98fCJob3Jpem9udGFsIj09PXYseD16P3RoaXMuX29uU2Nyb2xsSG9yaXpvbnRhbDp0aGlzLl9vblNjcm9sbFZlcnRpY2FsLE89dGhpcy5fZ2V0UmFuZ2VUb1JlbmRlcigpLHc9T1swXSxiPU9bMV0sQz1bXTtpZihmPjApZm9yKHZhciBSPXc7Ujw9YjtSKyspQy5wdXNoKCgwLGMuY3JlYXRlRWxlbWVudCkoZSx7ZGF0YTpkLGtleTpwKFIsZCksaW5kZXg6Uixpc1Njcm9sbGluZzpfP006dm9pZCAwLHN0eWxlOnRoaXMuX2dldEl0ZW1TdHlsZShSKX0pKQo7dmFyIFQ9bCh0aGlzLnByb3BzLHRoaXMuX2luc3RhbmNlUHJvcHMpO3JldHVybigwLGMuY3JlYXRlRWxlbWVudCkoZ3x8U3x8ImRpdiIse2NsYXNzTmFtZTpyLG9uU2Nyb2xsOngscmVmOnRoaXMuX291dGVyUmVmU2V0dGVyLHN0eWxlOigwLG4uZGVmYXVsdCkoe3Bvc2l0aW9uOiJyZWxhdGl2ZSIsaGVpZ2h0Omksd2lkdGg6eSxvdmVyZmxvdzoiYXV0byIsV2Via2l0T3ZlcmZsb3dTY3JvbGxpbmc6InRvdWNoIix3aWxsQ2hhbmdlOiJ0cmFuc2Zvcm0iLGRpcmVjdGlvbjpvfSxJKX0sKDAsYy5jcmVhdGVFbGVtZW50KShzfHx1fHwiZGl2Iix7Y2hpbGRyZW46QyxyZWY6YSxzdHlsZTp7aGVpZ2h0Ono/IjEwMCUiOlQscG9pbnRlckV2ZW50czpNPyJub25lIjp2b2lkIDAsd2lkdGg6ej9UOiIxMDAlIn19KSl9LHIuX2NhbGxQcm9wc0NhbGxiYWNrcz1mdW5jdGlvbigpe2lmKCJmdW5jdGlvbiI9PXR5cGVvZiB0aGlzLnByb3BzLm9uSXRlbXNSZW5kZXJlZCYmdGhpcy5wcm9wcy5pdGVtQ291bnQ+MCl7dmFyIHQ9dGhpcy5fZ2V0UmFuZ2VUb1JlbmRlcigpLGU9dFswXSxyPXRbMV0sbj10WzJdLG89dFszXTt0aGlzLl9jYWxsT25JdGVtc1JlbmRlcmVkKGUscixuLG8pfWlmKCJmdW5jdGlvbiI9PXR5cGVvZiB0aGlzLnByb3BzLm9uU2Nyb2xsKXt2YXIgaT10aGlzLnN0YXRlLGE9aS5zY3JvbGxEaXJlY3Rpb24sbD1pLnNjcm9sbE9mZnNldCxzPWkuc2Nyb2xsVXBkYXRlV2FzUmVxdWVzdGVkO3RoaXMuX2NhbGxPblNjcm9sbChhLGwscyl9fSxyLl9nZXRSYW5nZVRvUmVuZGVyPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5wcm9wcyxlPXQuaXRlbUNvdW50LHI9dC5vdmVyc2NhbkNvdW50LG49dGhpcy5zdGF0ZSxvPW4uaXNTY3JvbGxpbmcsaT1uLnNjcm9sbERpcmVjdGlvbixhPW4uc2Nyb2xsT2Zmc2V0O2lmKDA9PT1lKXJldHVyblswLDAsMCwwXTt2YXIgbD12KHRoaXMucHJvcHMsYSx0aGlzLl9pbnN0YW5jZVByb3BzKSxzPVModGhpcy5wcm9wcyxsLGEsdGhpcy5faW5zdGFuY2VQcm9wcyksYz1vJiYiYmFja3dhcmQiIT09aT8xOk1hdGgubWF4KDEsciksdT1vJiYiZm9yd2FyZCIhPT1pPzE6TWF0aC5tYXgoMSxyKTtyZXR1cm5bTWF0aC5tYXgoMCxsLWMpLE1hdGgubWF4KDAsTWF0aC5taW4oZS0xLHMrdSkpLGwsc119LGV9KGMuUHVyZUNvbXBvbmVudCksZS5kZWZhdWx0UHJvcHM9e2RpcmVjdGlvbjoibHRyIixpdGVtRGF0YTp2b2lkIDAsbGF5b3V0OiJ2ZXJ0aWNhbCIsb3ZlcnNjYW5Db3VudDoyLHVzZUlzU2Nyb2xsaW5nOiExfSxyfXZhciBnPWZ1bmN0aW9uKHQsZSl7dC5jaGlsZHJlbix0LmRpcmVjdGlvbix0LmhlaWdodCx0LmxheW91dCx0LmlubmVyVGFnTmFtZSx0Lm91dGVyVGFnTmFtZSx0LndpZHRoLGUuaW5zdGFuY2V9LFM9ZnVuY3Rpb24odCxlLHIpe3ZhciBuPXQuaXRlbVNpemUsbz1yLml0ZW1NZXRhZGF0YU1hcCxpPXIubGFzdE1lYXN1cmVkSW5kZXg7aWYoZT5pKXt2YXIgYT0wO2lmKGk+PTApe3ZhciBsPW9baV07YT1sLm9mZnNldCtsLnNpemV9Zm9yKHZhciBzPWkrMTtzPD1lO3MrKyl7dmFyIGM9bihzKTtvW3NdPXtvZmZzZXQ6YSxzaXplOmN9LGErPWN9ci5sYXN0TWVhc3VyZWRJbmRleD1lfXJldHVybiBvW2VdfSxJPWZ1bmN0aW9uKHQsZSxyLG4sbyl7Zm9yKDtuPD1yOyl7dmFyIGk9bitNYXRoLmZsb29yKChyLW4pLzIpLGE9Uyh0LGksZSkub2Zmc2V0O2lmKGE9PT1vKXJldHVybiBpO2E8bz9uPWkrMTphPm8mJihyPWktMSl9cmV0dXJuIG4+MD9uLTE6MH0sXz1mdW5jdGlvbih0LGUscixuKXtmb3IodmFyIG89dC5pdGVtQ291bnQsaT0xO3I8byYmUyh0LHIsZSkub2Zmc2V0PG47KXIrPWksaSo9MjtyZXR1cm4gSSh0LGUsTWF0aC5taW4ocixvLTEpLE1hdGguZmxvb3Ioci8yKSxuKX0seT1mdW5jdGlvbih0LGUpe3ZhciByPXQuaXRlbUNvdW50LG49ZS5pdGVtTWV0YWRhdGFNYXAsbz1lLmVzdGltYXRlZEl0ZW1TaXplLGk9ZS5sYXN0TWVhc3VyZWRJbmRleCxhPTA7aWYoaT49ciYmKGk9ci0xKSxpPj0wKXt2YXIgbD1uW2ldO2E9bC5vZmZzZXQrbC5zaXplfXJldHVybiBhKyhyLWktMSkqb30sTT12KHtnZXRJdGVtT2Zmc2V0OmZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gUyh0LGUscikub2Zmc2V0fSxnZXRJdGVtU2l6ZTpmdW5jdGlvbih0LGUscil7cmV0dXJuIHIuaXRlbU1ldGFkYXRhTWFwW2VdLnNpemV9LGdldEVzdGltYXRlZFRvdGFsU2l6ZTp5LGdldE9mZnNldEZvckluZGV4QW5kQWxpZ25tZW50OmZ1bmN0aW9uKHQsZSxyLG4sbyl7dmFyIGk9dC5kaXJlY3Rpb24sYT10LmhlaWdodCxsPXQubGF5b3V0LHM9dC53aWR0aCxjPSJob3Jpem9udGFsIj09PWl8fCJob3Jpem9udGFsIj09PWw/czphLHU9Uyh0LGUsbyksZj15KHQsbyksZD1NYXRoLm1heCgwLE1hdGgubWluKGYtYyx1Lm9mZnNldCkpLGg9TWF0aC5tYXgoMCx1Lm9mZnNldC1jK3Uuc2l6ZSk7c3dpdGNoKCJzbWFydCI9PT1yJiYocj1uPj1oLWMmJm48PWQrYz8iYXV0byI6ImNlbnRlciIpLHIpe2Nhc2Uic3RhcnQiOnJldHVybiBkO2Nhc2UiZW5kIjpyZXR1cm4gaDtjYXNlImNlbnRlciI6cmV0dXJuIE1hdGgucm91bmQoaCsoZC1oKS8yKTtkZWZhdWx0OnJldHVybiBuPj1oJiZuPD1kP246bjxoP2g6ZH19LGdldFN0YXJ0SW5kZXhGb3JPZmZzZXQ6ZnVuY3Rpb24odCxlLHIpe3JldHVybiBmdW5jdGlvbih0LGUscil7dmFyIG49ZS5pdGVtTWV0YWRhdGFNYXAsbz1lLmxhc3RNZWFzdXJlZEluZGV4O3JldHVybihvPjA/bltvXS5vZmZzZXQ6MCk+PXI/SSh0LGUsbywwLHIpOl8odCxlLE1hdGgubWF4KDAsbykscil9KHQscixlKX0sZ2V0U3RvcEluZGV4Rm9yU3RhcnRJbmRleDpmdW5jdGlvbih0LGUscixuKXtmb3IodmFyIG89dC5kaXJlY3Rpb24saT10LmhlaWdodCxhPXQuaXRlbUNvdW50LGw9dC5sYXlvdXQscz10LndpZHRoLGM9Imhvcml6b250YWwiPT09b3x8Imhvcml6b250YWwiPT09bD9zOmksdT1TKHQsZSxuKSxmPXIrYyxkPXUub2Zmc2V0K3Uuc2l6ZSxoPWU7aDxhLTEmJmQ8ZjspaCsrLGQrPVModCxoLG4pLnNpemU7cmV0dXJuIGh9LGluaXRJbnN0YW5jZVByb3BzOmZ1bmN0aW9uKHQsZSl7dmFyIHI9e2l0ZW1NZXRhZGF0YU1hcDp7fSwKZXN0aW1hdGVkSXRlbVNpemU6dC5lc3RpbWF0ZWRJdGVtU2l6ZXx8NTAsbGFzdE1lYXN1cmVkSW5kZXg6LTF9O3JldHVybiBlLnJlc2V0QWZ0ZXJJbmRleD1mdW5jdGlvbih0LG4pe3ZvaWQgMD09PW4mJihuPSEwKSxyLmxhc3RNZWFzdXJlZEluZGV4PU1hdGgubWluKHIubGFzdE1lYXN1cmVkSW5kZXgsdC0xKSxlLl9nZXRJdGVtU3R5bGVDYWNoZSgtMSksbiYmZS5mb3JjZVVwZGF0ZSgpfSxyfSxzaG91bGRSZXNldFN0eWxlQ2FjaGVPbkl0ZW1TaXplQ2hhbmdlOiExLHZhbGlkYXRlUHJvcHM6ZnVuY3Rpb24odCl7dC5pdGVtU2l6ZX19KSx6PXYoe2dldEl0ZW1PZmZzZXQ6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZSp0Lml0ZW1TaXplfSxnZXRJdGVtU2l6ZTpmdW5jdGlvbih0LGUpe3JldHVybiB0Lml0ZW1TaXplfSxnZXRFc3RpbWF0ZWRUb3RhbFNpemU6ZnVuY3Rpb24odCl7dmFyIGU9dC5pdGVtQ291bnQ7cmV0dXJuIHQuaXRlbVNpemUqZX0sZ2V0T2Zmc2V0Rm9ySW5kZXhBbmRBbGlnbm1lbnQ6ZnVuY3Rpb24odCxlLHIsbil7dmFyIG89dC5kaXJlY3Rpb24saT10LmhlaWdodCxhPXQuaXRlbUNvdW50LGw9dC5pdGVtU2l6ZSxzPXQubGF5b3V0LGM9dC53aWR0aCx1PSJob3Jpem9udGFsIj09PW98fCJob3Jpem9udGFsIj09PXM/YzppLGY9TWF0aC5tYXgoMCxhKmwtdSksZD1NYXRoLm1pbihmLGUqbCksaD1NYXRoLm1heCgwLGUqbC11K2wpO3N3aXRjaCgic21hcnQiPT09ciYmKHI9bj49aC11JiZuPD1kK3U/ImF1dG8iOiJjZW50ZXIiKSxyKXtjYXNlInN0YXJ0IjpyZXR1cm4gZDtjYXNlImVuZCI6cmV0dXJuIGg7Y2FzZSJjZW50ZXIiOnZhciBwPU1hdGgucm91bmQoaCsoZC1oKS8yKTtyZXR1cm4gcDxNYXRoLmNlaWwodS8yKT8wOnA+ZitNYXRoLmZsb29yKHUvMik/ZjpwO2RlZmF1bHQ6cmV0dXJuIG4+PWgmJm48PWQ/bjpuPGg/aDpkfX0sZ2V0U3RhcnRJbmRleEZvck9mZnNldDpmdW5jdGlvbih0LGUpe3ZhciByPXQuaXRlbUNvdW50LG49dC5pdGVtU2l6ZTtyZXR1cm4gTWF0aC5tYXgoMCxNYXRoLm1pbihyLTEsTWF0aC5mbG9vcihlL24pKSl9LGdldFN0b3BJbmRleEZvclN0YXJ0SW5kZXg6ZnVuY3Rpb24odCxlLHIpe3ZhciBuPXQuZGlyZWN0aW9uLG89dC5oZWlnaHQsaT10Lml0ZW1Db3VudCxhPXQuaXRlbVNpemUsbD10LmxheW91dCxzPXQud2lkdGgsYz1lKmEsdT0iaG9yaXpvbnRhbCI9PT1ufHwiaG9yaXpvbnRhbCI9PT1sP3M6byxmPU1hdGguY2VpbCgodStyLWMpL2EpO3JldHVybiBNYXRoLm1heCgwLE1hdGgubWluKGktMSxlK2YtMSkpfSxpbml0SW5zdGFuY2VQcm9wczpmdW5jdGlvbih0KXt9LHNob3VsZFJlc2V0U3R5bGVDYWNoZU9uSXRlbVNpemVDaGFuZ2U6ITAsdmFsaWRhdGVQcm9wczpmdW5jdGlvbih0KXt0Lml0ZW1TaXplfX0pfSw5NDE5MjEodCxlLHIpe2Z1bmN0aW9uIG4odCl7aWYodm9pZCAwPT09dCl0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZCIpO3JldHVybiB0fXIuZChlLHtkZWZhdWx0OigpPT5ufSl9LDMxMDIxMSh0LGUscil7ci5kKGUse2RlZmF1bHQ6KCk9Pm99KTt2YXIgbj1yKDY0MzMwMik7ZnVuY3Rpb24gbyh0LGUpe3QucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZS5wcm90b3R5cGUpLHQucHJvdG90eXBlLmNvbnN0cnVjdG9yPXQsKDAsbi5kZWZhdWx0KSh0LGUpfX0sNjQzMzAyKHQsZSxyKXtmdW5jdGlvbiBuKHQsZSl7cmV0dXJuIG49T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdC5fX3Byb3RvX189ZSx0fSxuKHQsZSl9ci5kKGUse2RlZmF1bHQ6KCk9Pm59KX19XSk7"}},"time_used":3,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":3,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/9504.90377f7d5946cf3254f0.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.120Z","timestamp":1785148034120,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/9504.90377f7d5946cf3254f0.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\ncontent-type: text/css; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a58ab11-1365\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Thu, 16 Jul 2026 09:57:37 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/16/2026 11:03:22\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 9af68276e5c16dded470409aab10f0e5\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":4965,"size_decoded":1585,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with very long lines (4965), with no line terminators","md5":"a7c93739d7d8d58ba0894f0a27b2c682","sha1":"b48b0a418f53c6dbb761db96de6488ae85eb133e","sha256":"a965093d2af77ac0200f0ea479b8a52ee4ea68bca04e3e665e8de17120e5a57e","sha512":"14f6b7249ddd5e1f7132a9c9935bf3e702cc8735c81cfd3e2574cb38224ea2d416a7a876fc0472376db26d154f4909a69d75432d4073ad220212a6186da08d13","ssdeep":"48:wfElnMoEhjO3VOgXmhFhR60XBWjzfDnCzhHkvhtflWkvhtcnSnisnSnigtSnSnij:hi776O9lr8D8/t88YY8/K5ncbs6v2U","tlshash":"eca15b43b5c4ac747e42a6dc73fc62dcb2d1ac71ed0205d2d631ad628ccabf72091aa5","first_seen":"2026-07-16T13:40:49.666975Z","last_seen":"2026-07-27T12:54:15.330285Z","times_seen":276,"resource_available":false,"data":"Lnh4eHNtYWxsLUFmZDZ0NFpqey0tdWktbGliLXByaXZhdGUtY291bnRlci1zaXplOjB9Lnh4c21hbGwtQWZkNnQ0Wmp7LS11aS1saWItcHJpdmF0ZS1jb3VudGVyLXNpemU6MX0ueHNtYWxsLUFmZDZ0NFpqey0tdWktbGliLXByaXZhdGUtY291bnRlci1zaXplOjJ9LnNtYWxsLUFmZDZ0NFpqey0tdWktbGliLXByaXZhdGUtY291bnRlci1zaXplOjN9Lm1lZGl1bS1BZmQ2dDRaanstLXVpLWxpYi1wcml2YXRlLWNvdW50ZXItc2l6ZTo0fS5sYXJnZS1BZmQ2dDRaanstLXVpLWxpYi1wcml2YXRlLWNvdW50ZXItc2l6ZTo1fS54bGFyZ2UtQWZkNnQ0Wmp7LS11aS1saWItcHJpdmF0ZS1jb3VudGVyLXNpemU6Nn0uY291bnRlci1BZmQ2dDRaanthbGlnbi1pdGVtczpjZW50ZXI7Ym94LXNpemluZzpib3JkZXItYm94O2Rpc3BsYXk6aW5saW5lLWZsZXg7anVzdGlmeS1jb250ZW50OmNlbnRlcjt2ZXJ0aWNhbC1hbGlnbjpib3R0b207LS11aS1saWItc2l6ZS1kZWY6dmFyKC0tdWktbGliLWluLWNvdW50ZXItc2l6ZSx2YXIoLS11aS1saWItcHJpdmF0ZS1jb3VudGVyLXNpemUsNCkpOy0tdWktbGliLXNpemUtZGVmLXh4eHNtYWxsOmNhbGMobWF4KDAsIDEgLSAodmFyKC0tdWktbGliLXNpemUtZGVmKSAtIDApICogKHZhcigtLXVpLWxpYi1zaXplLWRlZikgLSAwKSkpOy0tdWktbGliLXNpemUtZGVmLXh4c21hbGw6Y2FsYyhtYXgoMCwgMSAtICh2YXIoLS11aS1saWItc2l6ZS1kZWYpIC0gMSkgKiAodmFyKC0tdWktbGliLXNpemUtZGVmKSAtIDEpKSk7LS11aS1saWItc2l6ZS1kZWYteHNtYWxsOmNhbGMobWF4KDAsIDEgLSAodmFyKC0tdWktbGliLXNpemUtZGVmKSAtIDIpICogKHZhcigtLXVpLWxpYi1zaXplLWRlZikgLSAyKSkpOy0tdWktbGliLXNpemUtZGVmLXNtYWxsOmNhbGMobWF4KDAsIDEgLSAodmFyKC0tdWktbGliLXNpemUtZGVmKSAtIDMpICogKHZhcigtLXVpLWxpYi1zaXplLWRlZikgLSAzKSkpOy0tdWktbGliLXNpemUtZGVmLW1lZGl1bTpjYWxjKG1heCgwLCAxIC0gKHZhcigtLXVpLWxpYi1zaXplLWRlZikgLSA0KSAqICh2YXIoLS11aS1saWItc2l6ZS1kZWYpIC0gNCkpKTstLXVpLWxpYi1zaXplLWRlZi1sYXJnZTpjYWxjKG1heCgwLCAxIC0gKHZhcigtLXVpLWxpYi1zaXplLWRlZikgLSA1KSAqICh2YXIoLS11aS1saWItc2l6ZS1kZWYpIC0gNSkpKTstLXVpLWxpYi1zaXplLWRlZi14bGFyZ2U6Y2FsYyhtYXgoMCwgMSAtICh2YXIoLS11aS1saWItc2l6ZS1kZWYpIC0gNikgKiAodmFyKC0tdWktbGliLXNpemUtZGVmKSAtIDYpKSk7Ym9yZGVyLXJhZGl1czpjYWxjKHZhcigtLXVpLWxpYi1zaXplLWRlZi14eHhzbWFsbCkqM3B4ICsgdmFyKC0tdWktbGliLXNpemUtZGVmLXh4c21hbGwpKjVweCArIHZhcigtLXVpLWxpYi1zaXplLWRlZi14c21hbGwpKjdweCArIHZhcigtLXVpLWxpYi1zaXplLWRlZi1zbWFsbCkqOHB4ICsgdmFyKC0tdWktbGliLXNpemUtZGVmLW1lZGl1bSkqOXB4ICsgdmFyKC0tdWktbGliLXNpemUtZGVmLWxhcmdlKSoxMHB4ICsgdmFyKC0tdWktbGliLXNpemUtZGVmLXhsYXJnZSkqMTJweCk7Zm9udC1zaXplOmNhbGModmFyKC0tdWktbGliLXNpemUtZGVmLXhzbWFsbCkqMTBweCArIHZhcigtLXVpLWxpYi1zaXplLWRlZi1zbWFsbCkqMTJweCArIHZhcigtLXVpLWxpYi1zaXplLWRlZi1tZWRpdW0pKjEycHggKyB2YXIoLS11aS1saWItc2l6ZS1kZWYtbGFyZ2UpKjE0cHggKyB2YXIoLS11aS1saWItc2l6ZS1kZWYteGxhcmdlKSoxNHB4KTtmb250LXN0eWxlOm5vcm1hbDtmb250LXdlaWdodDpjYWxjKHZhcigtLXVpLWxpYi1zaXplLWRlZi14c21hbGwpKjUwMCArIHZhcigtLXVpLWxpYi1zaXplLWRlZi1zbWFsbCkqNDAwICsgdmFyKC0tdWktbGliLXNpemUtZGVmLW1lZGl1bSkqNDAwICsgdmFyKC0tdWktbGliLXNpemUtZGVmLWxhcmdlKSo0MDAgKyB2YXIoLS11aS1saWItc2l6ZS1kZWYteGxhcmdlKSo1MDApO2hlaWdodDpjYWxjKHZhcigtLXVpLWxpYi1zaXplLWRlZi14eHhzbWFsbCkqNnB4ICsgdmFyKC0tdWktbGliLXNpemUtZGVmLXh4c21hbGwpKjEwcHggKyB2YXIoLS11aS1saWItc2l6ZS1kZWYteHNtYWxsKSoxNHB4ICsgdmFyKC0tdWktbGliLXNpemUtZGVmLXNtYWxsKSoxNnB4ICsgdmFyKC0tdWktbGliLXNpemUtZGVmLW1lZGl1bSkqMThweCArIHZhcigtLXVpLWxpYi1zaXplLWRlZi1sYXJnZSkqMjBweCArIHZhcigtLXVpLWxpYi1zaXplLWRlZi14bGFyZ2UpKjI0cHgpO2xpbmUtaGVpZ2h0OmNhbGModmFyKC0tdWktbGliLXNpemUtZGVmLXhzbWFsbCkqMTRweCArIHZhcigtLXVpLWxpYi1zaXplLWRlZi1zbWFsbCkqMTZweCArIHZhcigtLXVpLWxpYi1zaXplLWRlZi1tZWRpdW0pKjE2cHggKyB2YXIoLS11aS1saWItc2l6ZS1kZWYtbGFyZ2UpKjE4cHggKyB2YXIoLS11aS1saWItc2l6ZS1kZWYteGxhcmdlKSoxOHB4KTttaW4td2lkdGg6Y2FsYyh2YXIoLS11aS1saWItc2l6ZS1kZWYteHh4c21hbGwpKjZweCArIHZhcigtLXVpLWxpYi1zaXplLWRlZi14eHNtYWxsKSoxMHB4ICsgdmFyKC0tdWktbGliLXNpemUtZGVmLXhzbWFsbCkqMTRweCArIHZhcigtLXVpLWxpYi1zaXplLWRlZi1zbWFsbCkqMTZweCArIHZhcigtLXVpLWxpYi1zaXplLWRlZi1tZWRpdW0pKjE4cHggKyB2YXIoLS11aS1saWItc2l6ZS1kZWYtbGFyZ2UpKjIwcHggKyB2YXIoLS11aS1saWItc2l6ZS1kZWYteGxhcmdlKSoyNHB4KTtwYWRkaW5nLWlubGluZS1lbmQ6Y2FsYyh2YXIoLS11aS1saWItc2l6ZS1kZWYteHh4c21hbGwpKjBweCArIHZhcigtLXVpLWxpYi1zaXplLWRlZi14eHNtYWxsKSowcHggKyB2YXIoLS11aS1saWItc2l6ZS1kZWYteHNtYWxsKSozLjVweCArIHZhcigtLXVpLWxpYi1zaXplLWRlZi1zbWFsbCkqNHB4ICsgdmFyKC0tdWktbGliLXNpemUtZGVmLW1lZGl1bSkqNnB4ICsgdmFyKC0tdWktbGliLXNpemUtZGVmLWxhcmdlKSo1cHggKyB2YXIoLS11aS1saWItc2l6ZS1kZWYteGxhcmdlKSo3LjVweCk7cGFkZGluZy1ib3R0b206Y2FsYyh2YXIoLS11aS1saWItc2l6ZS1kZWYteHh4c21hbGwpKjBweCArIHZhcigtLXVpLWxpYi1zaXplLWRlZi14eHNtYWxsKSowcHggKyB2YXIoLS11aS1saWItc2l6ZS1kZWYteHNtYWxsKSozcHggKyB2YXIoLS11aS1saWItc2l6ZS1kZWYtc21hbGwpKjNweCArIHZhcigtLXVpLWxpYi1zaXplLWRlZi1tZWRpdW0pKjNweCArIHZhcigtLXVpLWxpYi1zaXplLWRlZi1sYXJnZSkqM3B4ICsgdmFyKC0tdWktbGliLXNpemUtZGVmLXhsYXJnZSkqM3B4KTtwYWRkaW5nLWlubGluZS1zdGFydDpjYWxjKHZhcigtLXVpLWxpYi1zaXplLWRlZi14eHhzbWFsbCkqMHB4ICsgdmFyKC0tdWktbGliLXNpemUtZGVmLXh4c21hbGwpKjBweCArIHZhcigtLXVpLWxpYi1zaXplLWRlZi14c21hbGwpKjMuNXB4ICsgdmFyKC0tdWktbGliLXNpemUtZGVmLXNtYWxsKSo0cHggKyB2YXIoLS11aS1saWItc2l6ZS1kZWYtbWVkaXVtKSo2cHggKyB2YXIoLS11aS1saWItc2l6ZS1kZWYtbGFyZ2UpKjVweCArIHZhcigtLXVpLWxpYi1zaXplLWRlZi14bGFyZ2UpKjcuNXB4KTtwYWRkaW5nLXRvcDpjYWxjKHZhcigtLXVpLWxpYi1zaXplLWRlZi14eHhzbWFsbCkqMHB4ICsgdmFyKC0tdWktbGliLXNpemUtZGVmLXh4c21hbGwpKjBweCArIHZhcigtLXVpLWxpYi1zaXplLWRlZi14c21hbGwpKjNweCArIHZhcigtLXVpLWxpYi1zaXplLWRlZi1zbWFsbCkqM3B4ICsgdmFyKC0tdWktbGliLXNpemUtZGVmLW1lZGl1bSkqM3B4ICsgdmFyKC0tdWktbGliLXNpemUtZGVmLWxhcmdlKSozcHggKyB2YXIoLS11aS1saWItc2l6ZS1kZWYteGxhcmdlKSozcHgpfS5jb2xvci1kYW5nZXItQWZkNnQ0Wmp7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1jb3VudGVyLWZpbGwtZGFuZ2VyKTtjb2xvcjp2YXIoLS1jb2xvci1jb3VudGVyLWNvbnRlbnQtZGFuZ2VyKX0uY29sb3ItYWNjZW50LUFmZDZ0NFpqe2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItY291bnRlci1maWxsLWFjY2VudCk7Y29sb3I6dmFyKC0tY29sb3ItY291bnRlci1jb250ZW50LWFjY2VudCl9LmNvbG9yLWFjY2VudC1saWdodC1BZmQ2dDRaantiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLWNvdW50ZXItZmlsbC1hY2NlbnQtbGlnaHQpO2NvbG9yOnZhcigtLWNvbG9yLWNvdW50ZXItY29udGVudC1hY2NlbnQtbGlnaHQpfS5jb2xvci1uZXV0cmFsLWJvbGQtQWZkNnQ0Wmp7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1jb3VudGVyLWZpbGwtbmV1dHJhbC1ib2xkKTtjb2xvcjp2YXIoLS1jb2xvci1jb3VudGVyLWNvbnRlbnQtbmV1dHJhbC1ib2xkKX0uY29sb3ItbmV1dHJhbC1BZmQ2dDRaantiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLWNvdW50ZXItZmlsbC1uZXV0cmFsKTtjb2xvcjp2YXIoLS1jb2xvci1jb3VudGVyLWNvbnRlbnQtbmV1dHJhbCl9LmJvcmRlckNvbG9yLXByaW1hcnktQWZkNnQ0Wmp7LS11aS1saWItY291bnRlci1ib3JkZXItb3V0bGluZS1wcmltYXJ5OnNvbGlkIDJweCB2YXIoLS1jb2xvci1jb3VudGVyLWJvcmRlci1wcmltYXJ5KTtvdXRsaW5lOnZhcigtLXVpLWxpYi1jb3VudGVyLWJvcmRlci1vdXRsaW5lLXByaW1hcnkpfS5ib3JkZXJDb2xvci1zZWNvbmRhcnktQWZkNnQ0Wmp7LS11aS1saWItY291bnRlci1ib3JkZXItb3V0bGluZS1zZWNvbmRhcnk6c29saWQgMnB4IHZhcigtLWNvbG9yLWNvdW50ZXItYm9yZGVyLXNlY29uZGFyeSk7b3V0bGluZTp2YXIoLS11aS1saWItY291bnRlci1ib3JkZXItb3V0bGluZS1zZWNvbmRhcnkpfS5ib3JkZXJDb2xvci10ZXJ0aWFyeS1BZmQ2dDRaanstLXVpLWxpYi1jb3VudGVyLWJvcmRlci1vdXRsaW5lLXRlcnRpYXJ5OnNvbGlkIDJweCB2YXIoLS1jb2xvci1jb3VudGVyLWJvcmRlci10ZXJ0aWFyeSk7b3V0bGluZTp2YXIoLS11aS1saWItY291bnRlci1ib3JkZXItb3V0bGluZS10ZXJ0aWFyeSl9LmRpc2FibGVkLUFmZDZ0NFpqe29wYWNpdHk6LjV9"}},"time_used":3,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":3,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/58051.c5440665c3b32e6c6de8.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.770Z","timestamp":1785148034770,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/58051.c5440665c3b32e6c6de8.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\ncontent-type: text/css; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a58ab11-5d0\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Thu, 16 Jul 2026 09:57:37 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/16/2026 11:03:25\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: d6756defea27785cfa81c5db89f3956a\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":1488,"size_decoded":1212,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with very long lines (1488), with no line terminators","md5":"cf65d352f7bbe1096200906298dfdaa4","sha1":"1ee5e8f8ec59df371481cf547e15a60aeb9861b1","sha256":"7d1408d461997bc322a57ca4f5d5ba5790cb74026412bfdea9daf11a791bb295","sha512":"15b40c4931e69256f4b949a92cca1ce21b6626a6c5c30b98f66992ecdbdf512f74c41ef4eba04ad2b96b2694b5985b1f52a6fc258bb9d31d03d7adb1b7d71ffc","ssdeep":"","tlshash":"6c3158897371e8707485985336aa58dc7a04cc390c4394facdf3eaaca0d197e8219737","first_seen":"2026-07-16T13:40:49.811222Z","last_seen":"2026-07-27T12:54:15.332299Z","times_seen":226,"resource_available":false,"data":"LmFycm93SWNvbi1ZVGp6dXk4eXtkaXNwbGF5OmlubGluZS1mbGV4O2hlaWdodDoxOHB4O21hcmdpbi1pbmxpbmUtZW5kOi00cHg7bWFyZ2luLWlubGluZS1zdGFydDo0cHg7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjM1cyBlYXNlO3dpZHRoOjE4cHh9LmFycm93SWNvbi1ZVGp6dXk4eS5kcm9wcGVkLVlUanp1eTh5e3RyYW5zZm9ybTpyb3RhdGUoMTgwZGVnKX0uYXJyb3dJY29uLVlUanp1eTh5LmRyb3BwZWQtWVRqenV5OHk6ZGlyKHJ0bCl7dHJhbnNmb3JtOnJvdGF0ZSgtMTgwZGVnKX0uc3F1YXJlVGFiQnV0dG9uLVU3R1l1OEFtLnhsYXJnZS1VN0dZdThBbS5zZWxlY3RlZC1VN0dZdThBbXstLXVpLWxpYi10eXBvZ3JhcGh5LWZvbnQtc2l6ZToyMHB4Oy0tdWktbGliLXR5cG9ncmFwaHktbGluZS1oZWlnaHQ6MzBweH0uc3F1YXJlVGFiQnV0dG9uLVU3R1l1OEFtLm1lZGl1bS1VN0dZdThBbS5zZWxlY3RlZC1VN0dZdThBbSwuc3F1YXJlVGFiQnV0dG9uLVU3R1l1OEFtLnNtYWxsLVU3R1l1OEFtLnNlbGVjdGVkLVU3R1l1OEFtLC5zcXVhcmVUYWJCdXR0b24tVTdHWXU4QW0ueGxhcmdlLVU3R1l1OEFtLnNlbGVjdGVkLVU3R1l1OEFte2ZvbnQtZmFtaWx5Oi1hcHBsZS1zeXN0ZW0sQmxpbmtNYWNTeXN0ZW1Gb250LFRyZWJ1Y2hldCBNUyxSb2JvdG8sVWJ1bnR1LHNhbnMtc2VyaWY7Zm9udC1mZWF0dXJlLXNldHRpbmdzOiJ0bnVtIiBvbiwibG51bSIgb247Zm9udC1zaXplOnZhcigtLXVpLWxpYi10eXBvZ3JhcGh5LWZvbnQtc2l6ZSk7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC13ZWlnaHQ6NDAwO2xpbmUtaGVpZ2h0OnZhcigtLXVpLWxpYi10eXBvZ3JhcGh5LWxpbmUtaGVpZ2h0KX0uc3F1YXJlVGFiQnV0dG9uLVU3R1l1OEFtLm1lZGl1bS1VN0dZdThBbS5zZWxlY3RlZC1VN0dZdThBbSwuc3F1YXJlVGFiQnV0dG9uLVU3R1l1OEFtLnNtYWxsLVU3R1l1OEFtLnNlbGVjdGVkLVU3R1l1OEFtey0tdWktbGliLXR5cG9ncmFwaHktZm9udC1zaXplOjE2cHg7LS11aS1saWItdHlwb2dyYXBoeS1saW5lLWhlaWdodDoyNHB4fS5zcXVhcmVUYWJCdXR0b24tVTdHWXU4QW0ubWVkaXVtV2l0aFNtYWxsRm9udC1VN0dZdThBbS5zZWxlY3RlZC1VN0dZdThBbSwuc3F1YXJlVGFiQnV0dG9uLVU3R1l1OEFtLnhzbWFsbC1VN0dZdThBbS5zZWxlY3RlZC1VN0dZdThBbXtmb250LWZhbWlseTotYXBwbGUtc3lzdGVtLEJsaW5rTWFjU3lzdGVtRm9udCxUcmVidWNoZXQgTVMsUm9ib3RvLFVidW50dSxzYW5zLXNlcmlmO2ZvbnQtZmVhdHVyZS1zZXR0aW5nczoidG51bSIgb24sImxudW0iIG9uO2ZvbnQtc3R5bGU6bm9ybWFsOy0tdWktbGliLXR5cG9ncmFwaHktZm9udC1zaXplOjE0cHg7Zm9udC1zaXplOnZhcigtLXVpLWxpYi10eXBvZ3JhcGh5LWZvbnQtc2l6ZSk7Zm9udC13ZWlnaHQ6NDAwOy0tdWktbGliLXR5cG9ncmFwaHktbGluZS1oZWlnaHQ6MThweDtsaW5lLWhlaWdodDp2YXIoLS11aS1saWItdHlwb2dyYXBoeS1saW5lLWhlaWdodCl9"}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/5355.2ea3c48a319ee0ff5b78.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.229Z","timestamp":1785148034229,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/5355.2ea3c48a319ee0ff5b78.js HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a632877-2d9a\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Fri, 24 Jul 2026 08:55:19 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/24/2026 10:31:24\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 6a6d4da7a6bf0f075f551887f46e4e70\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":11674,"size_decoded":5249,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (3063)","md5":"2f4dd7b3db38bcef031ce7e36c367340","sha1":"ba2336e05b407794de4dbb6a0e18264c84b3dd51","sha256":"189cf3f450f313efd6f7415f9a052d86c632ae8d97729c459900ef09bcf4f3d1","sha512":"54d54a86d025a62386536e78f7c145ea7bb17f681a93d55091bf41897ec295fd1bbee56de09aecad350c4ca9c7df4668ec0da1f0052fa86b161ea8e9bd958c33","ssdeep":"192:9cNibKfRXUfFYt6Vn3WQt9Oh+yxiJdljjRxU3zty6psROhf0qV+9TrS3ZfEI9n:9cNlfRXUfFBV3Xt9Oh+MiJdljjRxwtyK","tlshash":"83329682312a39aa59e5209424703947920c3c9a375f907cf3b8a9fe755cc5cb2b9b78","first_seen":"2026-07-24T11:36:47.84256Z","last_seen":"2026-07-27T12:48:39.850071Z","times_seen":74,"resource_available":true,"data":"InVzZSBzdHJpY3QiOyhzZWxmLndlYnBhY2tDaHVua3RyYWRpbmd2aWV3PXNlbGYud2VicGFja0NodW5rdHJhZGluZ3ZpZXd8fFtdKS5wdXNoKFtbNTM1NV0sezgyMTk5MSh0LGUsaSl7aS5kKGUse2JsZW5kQ29sb3JzOigpPT5vfSk7dmFyIGw9aSgxMzQ2Nyk7Y29uc3Qgbz0odCxlKT0+KDAsbC5yZ2JhVG9TdHJpbmcpKCgwLGwuYmxlbmRSZ2JhKSgoMCxsLnBhcnNlUmdiYSkodCksKDAsbC5wYXJzZVJnYmEpKGUpKSl9LDY4MjcyMCh0LGUsaSl7aS5kKGUse0xvbGxpcG9wVG9vbHRpcE1hbmFnZXI6KCk9PnN9KTt2YXIgbD1pKDE2NzUwMiksbz1pKDEzODYzOCk7Y2xhc3Mgc3tjb25zdHJ1Y3Rvcih0LGUpe3RoaXMuX2lzRGVzdHJveWVkPSExLHRoaXMuX2xvbGxpcG9wVG9vbHRpcFJlbmRlcmVyPW51bGwsdGhpcy5fc2hvd1Rvb2x0aXBBYm9ydENvbnRyb2xsZXI9bnVsbCx0aGlzLl9hY3RpdmVMb2xsaXBvcD10LHRoaXMuX2NhcmRUeXBlPWUsdGhpcy5fYWN0aXZlTG9sbGlwb3Auc3Vic2NyaWJlKCh0PT57bnVsbD09PXQmJnRoaXMuX2Rlc3Ryb3lUb29sdGlwKCl9KSl9ZGVzdHJveSgpe3RoaXMuX2Rlc3Ryb3lUb29sdGlwKCksdGhpcy5fYWN0aXZlTG9sbGlwb3AucmVsZWFzZSgpLHRoaXMuX2lzRGVzdHJveWVkPSEwfXRyeVRvSGlkZVRvb2x0aXBCeUNsaWNrT3V0c2lkZSh0LGUsaSl7aWYodGhpcy5faXNDbGlja0luc2lkZVRvb2x0aXAoaSkpcmV0dXJuITE7aWYodm9pZCAwIT09aSl7Y29uc3Qgbz1lKHQsaSk7aWYobnVsbCE9PW8mJigwLGwuZGVmYXVsdCkobyx0aGlzLl9hY3RpdmVMb2xsaXBvcC52YWx1ZSgpKSlyZXR1cm4hMX1jb25zdCBvPSEhdGhpcy5fYWN0aXZlTG9sbGlwb3AudmFsdWUoKTtyZXR1cm4gdGhpcy5fYWN0aXZlTG9sbGlwb3Auc2V0VmFsdWUobnVsbCksb31hc3luYyBzaG93VG9vbHRpcCh0LGUsbCxzLG4pe2NvbnN0IGE9bmV3IEFib3J0Q29udHJvbGxlcjt0aGlzLl9zaG93VG9vbHRpcEFib3J0Q29udHJvbGxlcj8uYWJvcnQoKSx0aGlzLl9zaG93VG9vbHRpcEFib3J0Q29udHJvbGxlcj1hO2NvbnN0IHI9YXdhaXQgbChhLnNpZ25hbCk7aWYobnVsbD09PXJ8fDA9PT1yLmxlbmd0aClyZXR1cm47Y29uc3R7c2hvd0xvbGxpcG9wVG9vbHRpcDpofT1hd2FpdCBQcm9taXNlLmFsbChbaS5lKDc3MjYzKSxpLmUoNjAwNjIpLGkuZSg0NjkwNyksaS5lKDEyMzg1KSxpLmUoODEwNzIpLGkuZSgyOTUzNiksaS5lKDUxODQpLGkuZSg1NjI1MiksaS5lKDE3MDg3KSxpLmUoMzI3NDgpLGkuZSg0MzY0NCksaS5lKDQ1MzY4KSxpLmUoMjAyNzEpLGkuZSg1MTg4MCksaS5lKDE4NDcyKSxpLmUoMjU4MDkpLGkuZSgxNzY5MyksaS5lKDUyOTIwKSxpLmUoODIyNzEpLGkuZSgzMTAwMSksaS5lKDY1NjEzKSxpLmUoNDgzMTIpLGkuZSgzMjM4NyksaS5lKDk3NjQ3KSxpLmUoNTc0ODUpLGkuZSg0MTY3MildKS50aGVuKGkuYmluZChpLDEzMDc1MikpLGQ9YXdhaXQgcygpO3RoaXMuX2lzRGVzdHJveWVkfHxhLnNpZ25hbC5hYm9ydGVkfHwoKDAsby5hc3NlcnQpKG51bGw9PT10aGlzLl9sb2xsaXBvcFRvb2x0aXBSZW5kZXJlciwiTG9sbGlwb3AgdG9vbHRpcCByZW5kZXJlciBzaG91bGQgYmUgbnVsbCBiZWZvcmUgY3JlYXRpbmcgYSBuZXcgb25lIiksdGhpcy5fbG9sbGlwb3BUb29sdGlwUmVuZGVyZXI9aCh7aXRlbXM6cixwb3NpdGlvbjplLGN1c3RvbUNsb3NlU3Vic2NyaXB0aW9uczpuLmN1c3RvbUNsb3NlU3Vic2NyaXB0aW9ucyxvbkNsb3NlOigpPT5uLm9uQ2xvc2UodCksb25DbGlja091dHNpZGU6ZT0+bi5vbkNsaWNrT3V0c2lkZSh0LGUpLG9uU2l6ZUNoYW5nZWQ6bi5vblNpemVDaGFuZ2VkLHNob3dTY3JvbGxGYWRlczohMCxjYXJkVHlwZTp0aGlzLl9jYXJkVHlwZSx0aGVtZTpkfSkpfV9pc0NsaWNrSW5zaWRlVG9vbHRpcCh0KXtyZXR1cm4gbnVsbCE9PXRoaXMuX2xvbGxpcG9wVG9vbHRpcFJlbmRlcmVyJiZ2b2lkIDAhPT10JiZ0aGlzLl9sb2xsaXBvcFRvb2x0aXBSZW5kZXJlci5pc0NsaWNrSW5zaWRlKHQpfV9kZXN0cm95VG9vbHRpcCgpe3RoaXMuX3Nob3dUb29sdGlwQWJvcnRDb250cm9sbGVyPy5hYm9ydCgpLHRoaXMuX3Nob3dUb29sdGlwQWJvcnRDb250cm9sbGVyPW51bGwsdGhpcy5fbG9sbGlwb3BUb29sdGlwUmVuZGVyZXI/LmhpZGUoKSx0aGlzLl9sb2xsaXBvcFRvb2x0aXBSZW5kZXJlcj1udWxsfX19LDE0Nzk5Mih0LGUsaSl7dmFyIGw7ZnVuY3Rpb24gbyh0LGUsaT0wKXtlLnNldFZhbHVlKHQudmFsdWUoKSk7Y29uc3QgbD17fTtyZXR1cm4gdC5zdWJzY3JpYmUobCwodD0+e2Uuc2V0VmFsdWUodC52YWx1ZSgpKX0pKSwxPT09aSYmZS5zdWJzY3JpYmUobCwoZT0+e3Quc2V0VmFsdWUoZS52YWx1ZSgpKX0pKSwoKT0+e3QudW5zdWJzY3JpYmVBbGwobCksMT09PWkmJmUudW5zdWJzY3JpYmVBbGwobCl9fWkuZChlLHtiaW5kUHJvcGVydGllczooKT0+b30pLGZ1bmN0aW9uKHQpe3RbdC5PbmVXYXlTcmNUb0RzdD0wXT0iT25lV2F5U3JjVG9Ec3QiLHRbdC5Ud29XYXlzPTFdPSJUd29XYXlzIn0obHx8KGw9e30pKX0sNDk0MDc5KHQsZSxpKXt2YXIgbDtpLmQoZSx7TG9sbGlwb3BQYW5lVmlldzooKT0+d30pLGZ1bmN0aW9uKHQpe3RbdC5TcGFjZUJldHdlZW5Sb3dzPTI1XT0iU3BhY2VCZXR3ZWVuUm93cyIsdFt0LlRvb2x0aXBUb3BNYXJnaW49MTVdPSJUb29sdGlwVG9wTWFyZ2luIix0W3QuU3BhY2VCZXR3ZWVuQ2FyZEFuZExvbGxpcG9wPThdPSJTcGFjZUJldHdlZW5DYXJkQW5kTG9sbGlwb3AifShsfHwobD17fSkpO3ZhciBvPWkoMTY3NTAyKSxzPWkoOTE4Nzc5KSxuPWkoMTM4NjM4KSxhPWkoNzM2NTMxKSxyPWkoNjAxODQxKSxoPWkoNDAyMDQ1KSxkPWkoNjYzNCkscD1pKDY4MjcyMCksYz1pKDc2MyksdT1pKDc4OTE5MCksXz1pKDYzNzEwNCkseT1pKDU0MDg0NSksYj1pKDgyMjcyNiksdj1pKDk3NjgxMyksQz1pKDkyNjE0OSk7Y2xhc3Mgd3tjb25zdHJ1Y3Rvcih0LGUpe3RoaXMuX2ludmFsaWRhdGVkPSExLHRoaXMuX3JlbmRlcmVyPW5ldyB1LkNvbXBvc2l0ZVJlbmRlcmVyLHRoaXMuX3RleHRXaWR0aENhY2hlPW5ldyBiLlRleHRXaWR0aENhY2hlLAp0aGlzLl9zdHlsZXNDYWNoZT1udWxsLHRoaXMuX2xvbGxpcG9wcz17fSx0aGlzLl9sb2xsaXBvcHNDb3VudGVyPTAsdGhpcy5fYWN0aXZlTG9sbGlwb3BJbmZvPW5ldyBoLldhdGNoZWRPYmplY3QobnVsbCksdGhpcy5fcmVjcmVhdGVTdHlsZXNCb3VuZD10aGlzLl9yZWNyZWF0ZVN0eWxlcy5iaW5kKHRoaXMpLHRoaXMuX21vZGVsPXQsdGhpcy5fc291cmNlPWUsdGhpcy5fcmVjcmVhdGVTdHlsZXMoKSxDLkNIQVJUX0ZPTlRfRkFNSUxZX1dWLnN1YnNjcmliZSh0aGlzLl9yZWNyZWF0ZVN0eWxlc0JvdW5kKSx0LmJhY2tncm91bmRDb2xvcigpLnN1YnNjcmliZSh0aGlzLl9yZWNyZWF0ZVN0eWxlc0JvdW5kKSx0Lm1haW5TZXJpZXMoKS5vblN5bWJvbEludGVydmFsQ2hhbmdlZCgpLnN1YnNjcmliZSh0aGlzLHRoaXMuX29uU3ltYm9sT3JJbnRlcnZhbENoYW5nZWQpLHRoaXMuX2xvbGxpcG9wVG9vbHRpcD1uZXcgcC5Mb2xsaXBvcFRvb2x0aXBNYW5hZ2VyKHRoaXMuX2FjdGl2ZUxvbGxpcG9wSW5mby5zcGF3bk93bmVyc2hpcCgpKSx0aGlzLl9hY3RpdmVMb2xsaXBvcEluZm8uc3Vic2NyaWJlKCgoKT0+e3RoaXMuX3NvdXJjZS51cGRhdGVBbGxWaWV3c0FuZFJlcGFpbnQoKX0pKX1kZXN0cm95KCl7dGhpcy5fbW9kZWwuYmFja2dyb3VuZENvbG9yKCkudW5zdWJzY3JpYmUodGhpcy5fcmVjcmVhdGVTdHlsZXNCb3VuZCksdGhpcy5fbW9kZWwubWFpblNlcmllcygpLm9uU3ltYm9sSW50ZXJ2YWxDaGFuZ2VkKCkudW5zdWJzY3JpYmVBbGwodGhpcyksQy5DSEFSVF9GT05UX0ZBTUlMWV9XVi51bnN1YnNjcmliZSh0aGlzLl9yZWNyZWF0ZVN0eWxlc0JvdW5kKSx0aGlzLl9sb2xsaXBvcFRvb2x0aXAuZGVzdHJveSgpfXByb2Nlc3NDbGlja0luc2lkZSh0LGUsaSl7Y29uc3QgbD10aGlzLl9sb2xsaXBvcHNbaV07cmV0dXJuISghbHx8IWwudmlzaWJsZSkmJih0aGlzLl9sb2xsaXBvcE1vdXNlQ2xpY2tIYW5kbGVyKHQsdGhpcy5fZ2V0TG9sbGlwb3BSZW5kZXJlckRhdGEobCksKDAscy5zaXplKSh7d2lkdGg6ZS5jbGllbnRXaWR0aCxoZWlnaHQ6ZS5jbGllbnRIZWlnaHR9KSx7cHJldmVudERlZmF1bHQ6KCk9Pnt9LHRhcmdldDplfSksITApfXByb2Nlc3NDbGlja091dHNpZGUodCxlKXtyZXR1cm4gdGhpcy5fbG9sbGlwb3BUb29sdGlwLnRyeVRvSGlkZVRvb2x0aXBCeUNsaWNrT3V0c2lkZSh0LHRoaXMuX2dldEFjdGl2ZUxvbGxpcG9wVG9vbHRpcEluZm8uYmluZCh0aGlzKSxlKX11cGRhdGUodCl7dGhpcy5faW52YWxpZGF0ZWQ9ITB9YWZ0ZXJVcGRhdGUodCxlLGksbCl7fWdldFN0eWxlKHQsZSl7bGV0IGk9ZTtpZih0LnN0YWNrJiYoaSs9Il9zdGFjazoiK3Quc3RhY2spLCJhY3RpdmUiPT09aSlyZXR1cm4gdGhpcy5fYWN0aXZlU3R5bGU7aWYoImhvdmVyZWQiPT09aSlyZXR1cm4gdGhpcy5faG92ZXJlZFN0eWxlO2lmKCJkZWZhdWx0Ij09PWkpcmV0dXJuIHRoaXMuX2RlZmF1bHRTdHlsZTtpZih0aGlzLl9zdHlsZXNDYWNoZXx8KHRoaXMuX3N0eWxlc0NhY2hlPXt9KSwhdGhpcy5fc3R5bGVzQ2FjaGVbaV0pe2NvbnN0IGw9KDAsci5jbG9uZSkoImFjdGl2ZSI9PT1lP3RoaXMuX2FjdGl2ZVN0eWxlOiJob3ZlcmVkIj09PWU/dGhpcy5faG92ZXJlZFN0eWxlOnRoaXMuX2RlZmF1bHRTdHlsZSk7dC5zdGFjayYmKGwubG9sbGlwb3AuaW5jSGVpZ2h0PTI1KnQuc3RhY2spLHRoaXMuX3N0eWxlc0NhY2hlW2ldPWx9cmV0dXJuIHRoaXMuX3N0eWxlc0NhY2hlW2ldfWhhc1Rvb2x0aXAodCl7cmV0dXJuITB9Y2xlYXJBY3RpdmVMb2xsaXBvcCgpe3RoaXMuX2FjdGl2ZUxvbGxpcG9wSW5mby5zZXRWYWx1ZShudWxsKX1hc3luYyBfc3BlY2lhbFRvb2x0aXBTdHlsZXModCl7fV9nZXRZKCl7bGV0IHQ9MDtjb25zdCBlPXRoaXMuX21vZGVsLnBhbmVzKCk7Zm9yKGxldCBpPWUubGVuZ3RoO2ktLTspe2NvbnN0IGw9ZVtpXTtsLmNvbnRhaW5zTWFpblNlcmllcygpJiYodCs9bC5oZWlnaHQoKSl9cmV0dXJuIHR9X3Nob3dCYXJMaW5lKHQpe3JldHVybiB0aGlzLmhhc1Rvb2x0aXAodCkmJih0LmhvdmVyZWR8fHRoaXMuX2lzTG9sbGlwb3BBY3RpdmUodCkpfV9nZXRMb2xsaXBvcFJlbmRlcmVyRGF0YSh0KXtjb25zdCBlPXRoaXMuX2dldExvbGxpcG9wU3RhdHVzKHQpLGk9dGhpcy5nZXRTdHlsZSh0LGUpO3JldHVybntpZDp0LmlkLGl0ZW1JbmRleDp0Lml0ZW1JbmRleCxjZW50ZXJQb2ludDpuZXcgYS5Qb2ludCh0LmJhc2VQb2ludC54LHQuYmFzZVBvaW50LnktaS5sb2xsaXBvcC5ib3R0b20taS5sb2xsaXBvcC5oZWlnaHQvMi0oaS5sb2xsaXBvcC5pbmNIZWlnaHR8fDApKSxzdHlsZTppLHN0YXR1czplfX1fY3JlYXRlUmVuZGVyZXJzKHQpe2NvbnN0e21lZGlhU2l6ZTplfT10O2Zvcihjb25zdCBpIG9mIE9iamVjdC52YWx1ZXModGhpcy5fbG9sbGlwb3BzKSlpZih2b2lkIDAhPT1pJiZpLnZpc2libGUpe2NvbnN0IGw9dGhpcy5fZ2V0TG9sbGlwb3BTdGF0dXMoaSksbz10aGlzLmdldFN0eWxlKGksbCkscz17aWQ6aS5pZCxpdGVtSW5kZXg6aS5pdGVtSW5kZXgsY2VudGVyUG9pbnQ6bmV3IGEuUG9pbnQoaS5iYXNlUG9pbnQueCxpLmJhc2VQb2ludC55LW8ubG9sbGlwb3AuYm90dG9tLW8ubG9sbGlwb3AuaGVpZ2h0LzItKG8ubG9sbGlwb3AuaW5jSGVpZ2h0fHwwKSksc3R5bGU6byxzdGF0dXM6bH0sbj17Y3Vyc29yVHlwZTp2LlBhbmVDdXJzb3JUeXBlLkRlZmF1bHQsYWN0aXZlSXRlbTp7aWQ6aS5pZCxpdGVtSW5kZXg6aS5pdGVtSW5kZXh9LGhpZGVDcm9zc2hhaXJMaW5lc09uSG92ZXI6ITAsY2xpY2tIYW5kbGVyOihpLGwpPT50aGlzLl9sb2xsaXBvcE1vdXNlQ2xpY2tIYW5kbGVyKHQscyxlLGkpLHRhcEhhbmRsZXI6KGksbCk9PnRoaXMuX2xvbGxpcG9wTW91c2VDbGlja0hhbmRsZXIodCxzLGUsaSl9O2lmKHRoaXMuX3JlbmRlcmVyLmFwcGVuZCh0aGlzLl9jcmVhdGVSZW5kZXJlckZvckxvbGxpcG9wKHMsbikpLHRoaXMuX3Nob3dCYXJMaW5lKGkpKXtjb25zdHtzdHJva2VTdHlsZTp0LGxpbmVTdHlsZTplLGxpbmVXaWR0aDpsfT1vLmJhckxpbmUscz17Y29sb3I6dCxsaW5lc3R5bGU6ZSxsaW5ld2lkdGg6bCwKeDppLmJhc2VQb2ludC54LHRvcDowLGJvdHRvbTppLmJhc2VQb2ludC55LW8ubG9sbGlwb3AuYm90dG9tLW8ubG9sbGlwb3AuaGVpZ2h0fSxuPW5ldyB5LlZlcnRpY2FsTGluZVJlbmRlcmVyO24uc2V0RGF0YShzKSx0aGlzLl9yZW5kZXJlci5pbnNlcnQobiwwKX19fV9yZWNyZWF0ZVN0eWxlcygpe3RoaXMuX3N0eWxlc0NhY2hlPW51bGx9X2NyZWF0ZVJlbmRlcmVyRm9yTG9sbGlwb3AodCxlKXtyZXR1cm4gbmV3IF8uTG9sbGlwb3BSZW5kZXJlcih0LG5ldyBjLkhpdFRlc3RSZXN1bHQoYy5IaXRUYXJnZXQuQ3VzdG9tLGUpLHRoaXMuX3RleHRXaWR0aENhY2hlKX1fb25TeW1ib2xPckludGVydmFsQ2hhbmdlZCgpe3RoaXMuX2xvbGxpcG9wcz17fSx0aGlzLl9sb2xsaXBvcHNDb3VudGVyPTAsdGhpcy5fcmVuZGVyZXIuY2xlYXIoKSx0aGlzLl9hY3RpdmVMb2xsaXBvcEluZm8uc2V0VmFsdWUobnVsbCl9YXN5bmMgX2xvbGxpcG9wTW91c2VDbGlja0hhbmRsZXIodCxlLGksbCl7bC5wcmV2ZW50RGVmYXVsdCgpO2NvbnN0IHM9e2lkOmUuaWQsaXRlbUluZGV4OmUuaXRlbUluZGV4fTtpZigoMCxvLmRlZmF1bHQpKHRoaXMuX2FjdGl2ZUxvbGxpcG9wSW5mby52YWx1ZSgpLHMpKXJldHVybiB0aGlzLl9hY3RpdmVMb2xsaXBvcEluZm8uc2V0VmFsdWUobnVsbCksITE7dGhpcy5fYWN0aXZlTG9sbGlwb3BJbmZvLnNldFZhbHVlKHMpO2NvbnN0IHI9e3RhcmdldDpsLnRhcmdldCx0YXJnZXRTaXplOmkscG9pbnQ6bmV3IGEuUG9pbnQoZS5jZW50ZXJQb2ludC54LGUuY2VudGVyUG9pbnQueS1lLnN0eWxlLmxvbGxpcG9wLmhlaWdodC8yLTgpLG1hcmdpblRvcDoxNX0saD0oMCxuLmVuc3VyZURlZmluZWQpKHRoaXMuX2xvbGxpcG9wc1tlLmlkXSksZD10aGlzLl9tb2RlbC50aW1lU2NhbGUoKTtyZXR1cm4gdGhpcy5fbG9sbGlwb3BUb29sdGlwLnNob3dUb29sdGlwKHQsciwodD0+dGhpcy5fY3JlYXRlVG9vbHRpcENvbnRlbnQoaCx0KSksKCgpPT50aGlzLl9zcGVjaWFsVG9vbHRpcFN0eWxlcyhoKSkse29uQ2xvc2U6dGhpcy5wcm9jZXNzQ2xpY2tPdXRzaWRlLmJpbmQodGhpcyksb25DbGlja091dHNpZGU6KHQsZSk9Pnt0aGlzLl9zb3VyY2Uub25DbGlja091dHNpZGU/Lih0LCgwLG4uZW5zdXJlRGVmaW5lZCkoZSkpfSxjdXN0b21DbG9zZVN1YnNjcmlwdGlvbnM6W2Qub25TY3JvbGwoKSxkLmJhclNwYWNpbmdDaGFuZ2VkKCksdGhpcy5fbW9kZWwubWFpblNlcmllcygpLm9uU3ltYm9sSW50ZXJ2YWxDaGFuZ2VkKCldLG9uU2l6ZUNoYW5nZWQ6KDAsbi5lbnN1cmVOb3ROdWxsKSh0aGlzLl9tb2RlbC5wYW5lRm9yU291cmNlKHRoaXMuX3NvdXJjZSkpLm9uU2l6ZUNoYW5nZWQoKX0pLCEwfV9nZXRMb2xsaXBvcFN0YXR1cyh0KXtyZXR1cm4gdGhpcy5faXNMb2xsaXBvcEFjdGl2ZSh0KT8iYWN0aXZlIjp0LmhvdmVyZWQ/ImhvdmVyZWQiOiJkZWZhdWx0In1faXNMb2xsaXBvcEFjdGl2ZSh0KXtyZXR1cm4gbnVsbCE9PXRoaXMuX2FjdGl2ZUxvbGxpcG9wSW5mby52YWx1ZSgpJiYoMCxvLmRlZmF1bHQpKHRoaXMuX2FjdGl2ZUxvbGxpcG9wSW5mby52YWx1ZSgpLHtpZDp0LmlkLGl0ZW1JbmRleDp0Lml0ZW1JbmRleH0pfV9nZXRBY3RpdmVMb2xsaXBvcFRvb2x0aXBJbmZvKHQsZSl7Y29uc3QgaT0oMCxkLmdldENsaWNrUG9zaXRpb24pKGUpO2lmKG51bGw9PT1pKXJldHVybiBudWxsO2NvbnN0IGw9dGhpcy5yZW5kZXJlcih0KT8uaGl0VGVzdChuZXcgYS5Qb2ludChpLngsaS55KSx0KT8uZGF0YSgpPy5hY3RpdmVJdGVtPz9udWxsO3JldHVybiBudWxsPT09bD9udWxsOmx9fX0sNjM3MTA0KHQsZSxpKXt2YXIgbDtpLmQoZSx7TG9sbGlwb3BSZW5kZXJlcjooKT0+ZCxkcmF3TGFiZWw6KCk9PnB9KSxmdW5jdGlvbih0KXt0W3QuU2l6ZURlbHRhPTFdPSJTaXplRGVsdGEifShsfHwobD17fSkpO3ZhciBvPWkoNzY4MzA1KSxzPWkoNzM2NTMxKSxuPWkoMjYwNjkpLGE9aSg3ODY0MzYpLHI9aSgxNTEyMSksaD1pKDYwNDIxNCk7Y2xhc3MgZHtjb25zdHJ1Y3Rvcih0LGUsaSl7dGhpcy5fbWF0cml4PW5ldyBET01NYXRyaXhSZWFkT25seSx0aGlzLl9kYXRhPXQsdGhpcy5faGl0dGVzdD1lLHRoaXMuX3RleHRXaWR0aENhY2hlPWl9ZHJhdyh0LGUpe2NvbnN0e2hvcml6b250YWxQaXhlbFJhdGlvOmksdmVydGljYWxQaXhlbFJhdGlvOmx9PWUse2NlbnRlclBvaW50Om8sc3R5bGU6e2xvbGxpcG9wOm59fT10aGlzLl9kYXRhLGE9TWF0aC5yb3VuZChvLngqaSkscj1NYXRoLnJvdW5kKG8ueSpsKSxoPU1hdGgubWF4KDEsTWF0aC5mbG9vcihpKSklMi8yLGQ9TWF0aC5tYXgoMSxNYXRoLmZsb29yKGwpKSUyLzIscD1uZXcgcy5Qb2ludChhK2gsci1kKTt0aGlzLl9tYXRyaXg9KG5ldyBET01NYXRyaXhSZWFkT25seSkudHJhbnNsYXRlKGgsLWQpLnNjYWxlKGksbCkudHJhbnNsYXRlKC1uLndpZHRoLzIsLW4uaGVpZ2h0LzIpLnRyYW5zbGF0ZShvLngsby55KSx0aGlzLl9kcmF3TG9sbGlwb3AodCxwLGUpLHRoaXMuX2RyYXdMYWJlbCh0LHAsZSl9aGl0VGVzdCh0KXtjb25zdCBlPXRoaXMuX2hpdFRlc3RCb3goKTtyZXR1cm4oMCxvLnBvaW50SW5Cb3gpKHQsZSk/dGhpcy5faGl0dGVzdDpudWxsfV9oaXRUZXN0Qm94KCl7Y29uc3QgdD0oMCxoLmludGVyYWN0aW9uVG9sZXJhbmNlKSgpLmVzZCxlPXRoaXMuX2RhdGEuY2VudGVyUG9pbnQueS10aGlzLl9kYXRhLnN0eWxlLmxvbGxpcG9wLmhlaWdodC8yLXQsaT10aGlzLl9kYXRhLmNlbnRlclBvaW50LngtdGhpcy5fZGF0YS5zdHlsZS5sb2xsaXBvcC53aWR0aC8yLXQ7cmV0dXJuKDAscy5ib3gpKG5ldyBzLlBvaW50KGksZSksbmV3IHMuUG9pbnQoaSt0aGlzLl9kYXRhLnN0eWxlLmxvbGxpcG9wLndpZHRoKzIqdCxlK3RoaXMuX2RhdGEuc3R5bGUubG9sbGlwb3AuaGVpZ2h0KzIqdCkpfV9kcmF3TG9sbGlwb3AodCxlLGkpe2NvbnN0IGw9dGhpcy5fZGF0YS5zdHlsZSx7aG9yaXpvbnRhbFBpeGVsUmF0aW86b309aSxzPXRoaXMuX2ZpbGxSYWRpdXMobykKO2wubG9sbGlwb3AuZmlsbENpcmNsZSYmbC5sb2xsaXBvcC5iYWNrZ3JvdW5kQ29sb3ImJnRoaXMuX2RyYXdGaWxsZWRDaXJjbGUodCxlLHMsbC5sb2xsaXBvcC5iYWNrZ3JvdW5kQ29sb3IpO2NvbnN0IG49TWF0aC5yb3VuZChsLmxvbGxpcG9wLmxpbmVXaWR0aCpvKSxhPXMtTWF0aC5yb3VuZCgxKm8rbi8yKTtsLmxvbGxpcG9wLmZpbGxDaXJjbGUmJmwubG9sbGlwb3AuZmlsbFN0eWxlJiZ0aGlzLl9kcmF3RmlsbGVkQ2lyY2xlKHQsZSxhLGwubG9sbGlwb3AuZmlsbFN0eWxlKSx0aGlzLl9kcmF3Qm9yZGVyTGluZSh0LGUsbixhKX1fZHJhd0xhYmVsKHQsZSxpKXtjb25zdCBsPXRoaXMuX2RhdGEuc3R5bGUubG9sbGlwb3AudGV4dCxvPWwubGFiZWw7aWYoIiI9PT1vKXJldHVybjtjb25zdHtob3Jpem9udGFsUGl4ZWxSYXRpbzpzLHZlcnRpY2FsUGl4ZWxSYXRpbzpufT1pO3QudGV4dEFsaWduPSJjZW50ZXIiLHQudGV4dEJhc2VsaW5lPSJtaWRkbGUiLHQuZmlsbFN0eWxlPWwuc3Ryb2tlU3R5bGUsdC5mb250PWwuZm9udDtjb25zdCBhPXRoaXMuX3RleHRXaWR0aENhY2hlLnlNaWRDb3JyZWN0aW9uKHQsbyk7dC50cmFuc2xhdGUoZS54LGUueSthKm4pLCgwLHIuZHJhd1NjYWxlZCkodCxzLG4sKCgpPT57dC5maWxsVGV4dChvLDAsMCl9KSl9X2ZpbGxSYWRpdXModCl7Y29uc3QgZT10aGlzLl9kYXRhLnN0eWxlLGk9TWF0aC5tYXgoMSxNYXRoLmZsb29yKHQpKTtsZXQgbD1NYXRoLnJvdW5kKGUubG9sbGlwb3Aud2lkdGgqdCk7cmV0dXJuIGwlMiE9aSUyJiYobCs9MSksbC8yfV9kcmF3Qm9yZGVyTGluZSh0LGUsaSxsKXtjb25zdCBvPXRoaXMuX2RhdGEuc3R5bGU7dC5zdHJva2VTdHlsZT1vLmxvbGxpcG9wLnN0cm9rZVN0eWxlLHQubGluZVdpZHRoPWksKDAsYS5zZXRMaW5lU3R5bGUpKHQsbi5MSU5FU1RZTEVfU09MSUQpLCgwLGEuY3JlYXRlQ2lyY2xlKSh0LGUueCxlLnksbCksdC5zdHJva2UoKX1fZHJhd0ZpbGxlZENpcmNsZSh0LGUsaSxsKXt0LmZpbGxTdHlsZT1sLCgwLGEuY3JlYXRlQ2lyY2xlKSh0LGUueCxlLnksaSksdC5maWxsKCl9fWZ1bmN0aW9uIHAodCxlLGksbCl7dHJ5e3Quc2F2ZSgpLHQuZmlsbFN0eWxlPWwuZmlsbENvbG9yLHQuZmlsbChmdW5jdGlvbih0LGUpe2NvbnN0IGk9bmV3IFBhdGgyRDtyZXR1cm4gaS5hZGRQYXRoKHQsZSksaX0oZSxpKSxsLmZpbGxSdWxlKX1maW5hbGx5e3QucmVzdG9yZSgpfX19LDU0MDg0NSh0LGUsaSl7aS5kKGUse1ZlcnRpY2FsTGluZVJlbmRlcmVyOigpPT5yfSk7dmFyIGw9aSg3NjMpLG89aSg3ODY0MzYpLHM9aSg2MDQyMTQpLG49aSgxNTEyMSksYT1pKDkzNDMwNSk7Y2xhc3MgciBleHRlbmRzIGEuQml0bWFwQ29vcmRpbmF0ZXNQYW5lUmVuZGVyZXJ7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMuX2RhdGE9bnVsbCx0aGlzLl9oaXRUZXN0PW5ldyBsLkhpdFRlc3RSZXN1bHQobC5IaXRUYXJnZXQuTW92ZVBvaW50KX1zZXREYXRhKHQpe3RoaXMuX2RhdGE9dH1zZXRIaXRUZXN0KHQpe3RoaXMuX2hpdFRlc3Q9dH1oaXRUZXN0KHQpe2lmKG51bGw9PT10aGlzLl9kYXRhfHxudWxsPT09dGhpcy5faGl0VGVzdClyZXR1cm4gbnVsbDtjb25zdCBlPSgwLHMuaW50ZXJhY3Rpb25Ub2xlcmFuY2UpKCkubGluZSxpPU1hdGguYWJzKHQueC10aGlzLl9kYXRhLngpPD1lK3RoaXMuX2RhdGEubGluZXdpZHRoLzIsbD12b2lkIDA9PT10aGlzLl9kYXRhLnRvcHx8dGhpcy5fZGF0YS50b3AtdC55PD1lLG89dm9pZCAwPT09dGhpcy5fZGF0YS5ib3R0b218fHQueS10aGlzLl9kYXRhLmJvdHRvbTw9ZTtyZXR1cm4gaSYmbCYmbz90aGlzLl9oaXRUZXN0Om51bGx9X2RyYXdJbXBsKHQpe2lmKG51bGw9PT10aGlzLl9kYXRhfHx0aGlzLl9kYXRhLmxpbmV3aWR0aDw9MClyZXR1cm47Y29uc3R7Y29udGV4dDplLGhvcml6b250YWxQaXhlbFJhdGlvOmksdmVydGljYWxQaXhlbFJhdGlvOmwsbWVkaWFTaXplOnN9PXQ7aWYodGhpcy5fZGF0YS54PC10aGlzLl9kYXRhLmxpbmV3aWR0aC8yfHx0aGlzLl9kYXRhLng+cy53aWR0aCt0aGlzLl9kYXRhLmxpbmV3aWR0aC8yKXJldHVybjtlLmxpbmVDYXA9ImJ1dHQiLGUuc3Ryb2tlU3R5bGU9dGhpcy5fZGF0YS5jb2xvcixlLmxpbmVXaWR0aD1NYXRoLm1heCgxLE1hdGguZmxvb3IodGhpcy5fZGF0YS5saW5ld2lkdGgqaSkpLHZvaWQgMCE9PXRoaXMuX2RhdGEubGluZXN0eWxlJiYoMCxvLnNldExpbmVTdHlsZSkoZSx0aGlzLl9kYXRhLmxpbmVzdHlsZSk7Y29uc3QgYT12b2lkIDAhPT10aGlzLl9kYXRhLnRvcD9NYXRoLm1heCh0aGlzLl9kYXRhLnRvcCwwKTowLHI9dm9pZCAwIT09dGhpcy5fZGF0YS5ib3R0b20/TWF0aC5taW4odGhpcy5fZGF0YS5ib3R0b20scy5oZWlnaHQpOnMuaGVpZ2h0LGg9TWF0aC5yb3VuZCh0aGlzLl9kYXRhLngqaSksZD1NYXRoLmZsb29yKGEqbCkscD1NYXRoLmNlaWwocipsKSxjPXRoaXMuX2RhdGEuZXhjbHVkZUJvdW5kYXJpZXM7dm9pZCAwIT09YyYmKDAsbi5hZGRFeGNsdXNpb25BcmVhQnlTY29wZSkodCxjKSwoMCxvLmRyYXdWZXJ0aWNhbExpbmUpKGUsaCxkLHApfX19fV0pOw=="}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/72666.2229173bf4d674484637.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.506Z","timestamp":1785148034506,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/72666.2229173bf4d674484637.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\ncontent-type: text/css; charset=utf-8\r\ncontent-length: 58\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\netag: \"6a58ab11-3a\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Thu, 16 Jul 2026 09:57:37 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/16/2026 11:03:22\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 0196d208de33e3fda5effdf742c8b1ee\r\ncdn-cache: HIT\r\naccept-ranges: bytes\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":58,"size_decoded":842,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with no line terminators","md5":"691ceadea1eb9eac0db53f098918ee89","sha1":"6ac0eb21dbe2096e311778d8f7762524a2ce54ef","sha256":"07585e380a6fda6e9c3929fbd2c3632419823c24aa4ca17e10a444bc0e58e444","sha512":"487330ec519f60ed6fa1798f2dbd0164f0462df8bb57fdefa5c8d164fda54d213501636c4b9ba9de88958f080bc138c80676e892f659561af6eed5f946a9457f","ssdeep":"","tlshash":"97a00214848071d08e0bf34920d1b41ad2391be089b1e55d5517072d564f411055fcb4","first_seen":"2026-07-19T21:33:33.743099Z","last_seen":"2026-07-27T12:48:39.753843Z","times_seen":57,"resource_available":false,"data":"LmRpc2FibGVTZWxmUG9zaXRpb25pbmctTHJacDRST0N7bWFyZ2luOjA7cG9zaXRpb246c3RhdGljfQ=="}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/6605.1e8942319b485afc1f75.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.515Z","timestamp":1785148034515,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/6605.1e8942319b485afc1f75.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\ncontent-type: text/css; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding, Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\netag: W/\"69f98b71-1c7\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Tue, 05 May 2026 06:17:21 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.51\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 05/05/2026 10:16:43\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: a4557f4199578837f537a759ab2b2f92\r\ncdn-cache: HIT\r\ncontent-encoding: br\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":455,"size_decoded":1058,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with very long lines (455), with no line terminators","md5":"d2ca4d9cab95479c91e8f31c8229afbb","sha1":"cede3b6337ec4629cebf14c946dc59dd6f6c156a","sha256":"0e87fa3009dc8f3432528e0b70da28015ba4e896241e7531f9086e06e71e7eca","sha512":"c3e0d4a1c9c9021120c05d783907844dd92838a00db5e2832aa6c276691d5c8c7ac6f4fc63f895e0628afbf2a76efda4aa1982fc5335ed69f5b960eee35b446c","ssdeep":"","tlshash":"99f027136cdd9a1fa41b302dcbc44b09d0d98902b70d4bf9bc16e260a28a7922a33060","first_seen":"2026-02-24T21:05:06.368121Z","last_seen":"2026-07-27T12:48:39.794945Z","times_seen":231,"resource_available":false,"data":"LmRpYWxvZy1iOFN4TW56WHtkaXNwbGF5OmJsb2NrO21heC13aWR0aDo1NTBweDttaW4td2lkdGg6MzgwcHg7d2lkdGg6YXV0b31AbWVkaWEgKG1heC13aWR0aDozNzlweCl7LmRpYWxvZy1iOFN4TW56WHttaW4taGVpZ2h0OmF1dG87bWluLXdpZHRoOjEwMCV9fS53cmFwcGVyLWI4U3hNbnpYe2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47aGVpZ2h0OjEwMCV9LmRpYWxvZy1iOFN4TW56WCAuc2VwYXJhdG9yLWI4U3hNbnpYe2ZsZXg6bm9uZTttYXJnaW4tYmxvY2s6MCAycHg7bWFyZ2luLWlubGluZTowIDB9LnNlcGFyYXRvci1iOFN4TW56WHtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXR2LWNvbG9yLWRpYWxvZy1oZWFkZXItc2VwYXJhdG9yLHZhcigtLWNvbG9yLWRpdmlkZXIpKX0uYm91bmRlZC1iOFN4TW56WHtib3gtc2hhZG93OjAgMCAwIDFweCB2YXIoLS1jb2xvci1kaXZpZGVyKX0="}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/en.1422.c561e45927c668838d3a.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:15.321Z","timestamp":1785148035321,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/en.1422.c561e45927c668838d3a.js HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:15 GMT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding, Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\netag: W/\"6a10225e-433\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Fri, 22 May 2026 09:31:10 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.53\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 05/22/2026 10:55:37\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: a4843f0c8efa4bca5656da059337cb0e\r\ncdn-cache: HIT\r\ncontent-encoding: br\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":1075,"size_decoded":1248,"mime_type":"application/javascript; charset=utf-8","magic":"ASCII text, with very long lines (1075), with no line terminators","md5":"d859a1e868a7661a8636c0fb8d7daec4","sha1":"2a37062909759ff05bd43bc89ce9df1458a86f72","sha256":"3bcc47e7b0a8f348a5e0e2958f57aacc0129c8971f88749a8fedd018ddff2bbd","sha512":"eb854bb5e04fb703a7587291cca2d99c57b30cef30c10aa45306bd2b5156830d6d7e2e714d1a8618b6919d9da8915f8c5696f5c531388f24cae57ad78d2f29fa","ssdeep":"","tlshash":"9211975bf12032e8bff2a5313354cc207d0834e400f3d1ca4b77bb668a0be2c1826a98","first_seen":"2026-06-07T10:37:53.410769Z","last_seen":"2026-07-27T10:28:13.704258Z","times_seen":12,"resource_available":true,"data":"KHNlbGYud2VicGFja0NodW5rdHJhZGluZ3ZpZXc9c2VsZi53ZWJwYWNrQ2h1bmt0cmFkaW5ndmlld3x8W10pLnB1c2goW1sxNDIyLDg3MjM4LDk0NzAyXSx7OTI5MSh0KXt0LmV4cG9ydHM9WyJBdmciXX0sNTY1MzIxKHQpe3QuZXhwb3J0cz1bIlZvbCJdfSw4MjkyNzModCl7dC5leHBvcnRzPVsiSW50cmFkYXkgc3ByZWFkIGRhdGEgaXMgbm90IGF2YWlsYWJsZSJdfSwyOTkxNTModCl7dC5leHBvcnRzPVsiTm8gZGF0YSJdfSwyODU4OTModCl7dC5leHBvcnRzPVsiTm8gZGF0YSBmb3IgdGhpcyByZXNvbHV0aW9uIl19LDgxOTA3OCh0KXt0LmV4cG9ydHM9WyIzTSJdfSwyNzIwOTgodCl7dC5leHBvcnRzPVsiM1kiXX0sOTk1MDY2KHQpe3QuZXhwb3J0cz1bIjEwWSJdfSw4MzI3MzModCl7dC5leHBvcnRzPVsiMU0iXX0sOTM4MTAwKHQpe3QuZXhwb3J0cz1bIjFEIl19LDQ5MjEzNSh0KXt0LmV4cG9ydHM9WyIxVyJdfSw3NzAzMDModCl7dC5leHBvcnRzPVsiMVkiXX0sOTM0Nzc3KHQpe3QuZXhwb3J0cz1bIjJZIl19LDgyODU1KHQpe3QuZXhwb3J0cz1bIjVEIl19LDQ0NjU2MCh0KXt0LmV4cG9ydHM9WyI1WSJdfSw2ODA3Nih0KXt0LmV4cG9ydHM9WyI2TSJdfSwyMzM2OTAodCl7dC5leHBvcnRzPVsiQWxsIl19LDg3MjM4KHQpe3QuZXhwb3J0cz1bIkVycm9yIl19LDE0NjgwNyh0KXt0LmV4cG9ydHM9WyJObyBkYXRhIGhlcmUgeWV0Il19LDQyMjM2OSh0KXt0LmV4cG9ydHM9WyJZVEQiXX0sNDg1NDIwKHQpe3QuZXhwb3J0cz1bIlllYXIgdG8gZGF0ZSJdfSwxMDMwMzAodCl7dC5leHBvcnRzPVsie3N0cn0gZGF5Iiwie3N0cn0gZGF5cyJdfSwyMTA1NzQodCl7dC5leHBvcnRzPVsie3N0cn0gaG91ciIsIntzdHJ9IGhvdXJzIl19LDY5NDYxNyh0KXt0LmV4cG9ydHM9WyJ7c3RyfSBtb250aCIsIntzdHJ9IG1vbnRocyJdfSw0MzkwKHQpe3QuZXhwb3J0cz1bIntzdHJ9IG1pbnV0ZSIsIntzdHJ9IG1pbnV0ZXMiXX0sNjQ0NjI1KHQpe3QuZXhwb3J0cz1bIntzdHJ9IHdlZWsiLCJ7c3RyfSB3ZWVrcyJdfSwyMTY0MDIodCl7dC5leHBvcnRzPVsie3N0cn0geWVhciIsIntzdHJ9IHllYXJzIl19fV0pOw=="}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"wss","addr":"wss://websocket-visitors.smartsupp.com/socket/?EIO=3\u0026transport=websocket","fqdn":"websocket-visitors.smartsupp.com","domain":"smartsupp.com","tld":"com"},"ip":{"addr":"18.198.69.8","port":443,"asn":16509,"as":"AMAZON-02","country":"Germany","country_code":"DE"},"is_navigation_request":false,"resource_type":"websocket","requested_by":"https://digital-assettrade.com/","date":"2026-07-27T10:27:19.969Z","timestamp":1785148039969,"http_version":"HTTP/1.1","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.smartsupp.com","organization":""},"issuer":{"commonName":"Amazon RSA 2048 M04","organization":"Amazon"},"validity":{"start":"Wed, 24 Jun 2026 00:00:00 GMT","end":"Thu, 07 Jan 2027 23:59:59 GMT"},"fingerprint":{"sha1":"4F:1A:3B:79:00:E3:DC:1F:92:62:7C:DC:85:3A:BE:8C:D1:68:F2:57","sha256":"7F:93:E6:29:5D:CA:78:BD:30:0D:25:11:3B:E2:01:C9:DC:80:3C:80:90:3F:84:D2:72:1B:0D:42:F1:20:13:D9"}}},"request":{"raw":"GET /socket/?EIO=3\u0026transport=websocket HTTP/1.1\r\nHost: websocket-visitors.smartsupp.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-WebSocket-Version: 13\r\nOrigin: https://digital-assettrade.com\r\nSec-WebSocket-Extensions: permessage-deflate\r\nSec-WebSocket-Key: AaYiBk4ud35QieYMPvbb0w==\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: Upgrade\r\nSec-Fetch-Dest: empty\r\nSec-Fetch-Mode: websocket\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\nUpgrade: websocket\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/1.1 101 Switching Protocols\r\nDate: Mon, 27 Jul 2026 10:27:20 GMT\r\nConnection: upgrade\r\nUpgrade: websocket\r\nSec-WebSocket-Accept: nbTXUAwUZlNZ5DYZ18T3RAppAH0=\r\nSec-WebSocket-Version: 13\r\nWebSocket-Server: uWebSockets\r\n\r\n","headers":null,"cookies":null,"status_code":"101","status_text":"Switching Protocols","fingerprints":null,"data":{"size":0,"size_decoded":224,"mime_type":"text/plain","magic":"","md5":"d41d8cd98f00b204e9800998ecf8427e","sha1":"da39a3ee5e6b4b0d3255bfef95601890afd80709","sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha512":"cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e","ssdeep":"","tlshash":"","first_seen":"0001-01-01T00:00:00Z","last_seen":"2026-07-27T13:01:10.036638Z","times_seen":17563461,"resource_available":true,"data":""}},"time_used":356,"timings":{"blocked":0,"dns":97,"connect":116,"send":0,"wait":116,"receive":0,"ssl":27},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/97472.e8195405f99055a83c6f.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:13.054Z","timestamp":1785148033054,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/97472.e8195405f99055a83c6f.js HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:13 GMT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a61b1a9-f754\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Thu, 23 Jul 2026 06:16:09 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/23/2026 10:17:25\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: a2fcf0899b2a64defda105df8bb78677\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":63316,"size_decoded":11196,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, Unicode text, UTF-8 text, with very long lines (3071)","md5":"0813d0ea841f3538f1f27a58a88cb1e2","sha1":"5d7c725abcc841d95866532c0d0d9d124f9138d3","sha256":"82ac84224db5ccb6f92b82013e4473a579ddf4e881af126a3359ef556f33df28","sha512":"668be712980917e4cc39f91fd0fe150ce81cfe2bb4b72aaca4cc455fe6da6d382006c963a1bfa288f628a3a80ba1e1fd9dc921af4b34cc205dd127cb231eec04","ssdeep":"768:OzYrfKPQhauyuhs+66SY4n3sWvt5r96tY9hu+3fHxx+TS4YLTnW3H5uVHevzBAEb:EzsWvl8Y9hxXa","tlshash":"095379d8c5bc1d8c75b7d2c4bced7655448c3f13986286b0f8bbb819501abd829b9cb8","first_seen":"2026-07-23T13:54:09.171546Z","last_seen":"2026-07-27T12:53:06.171899Z","times_seen":290,"resource_available":true,"data":"KHNlbGYud2VicGFja0NodW5rdHJhZGluZ3ZpZXc9c2VsZi53ZWJwYWNrQ2h1bmt0cmFkaW5ndmlld3x8W10pLnB1c2goW1s5NzQ3Ml0sezY5NzQ3MihlLHIsbyl7InVzZSBzdHJpY3QiO28uZChyLHtnZXRFeGNoYW5nZXM6KCk9PnUsZ2V0V2lkZ2V0Q29uZmlndXJlZEV4Y2hhbmdlczooKT0+bCxnZXRXaWRnZXRTeW1ib2xTZWFyY2hDb25maWc6KCk9PmR9KTt2YXIgbj1vKDk5ODcwNCksaT1vKDMxODk3NCk7ZnVuY3Rpb24gdSgpe3JldHVybiBufWZ1bmN0aW9uIGwoZSxyKXtpZih2b2lkIDA9PT1yKXJldHVybiBlO2NvbnN0e2FsbG93ZWRFeGNoYW5nZXM6b309cjtsZXQgbj1lO2lmKHZvaWQgMCE9PW8mJm8ubGVuZ3RoPjApe2NvbnN0IHI9bmV3IE1hcDtmb3IoY29uc3QgbyBvZiBlKSIiPT09by52YWx1ZXx8by5oaWRlSW5TeW1ib2xTZWFyY2h8fHIuc2V0KG8udmFsdWUsbyk7Y29uc3QgaT1vLm1hcCgoZT0+ci5nZXQoZS50b1VwcGVyQ2FzZSgpKSkpLmZpbHRlcigoZT0+dm9pZCAwIT09ZSkpO2kubGVuZ3RoPjAmJihuPWkpfXJldHVybiBufWZ1bmN0aW9uIGQoKXtpZighKDAsaS5vbldpZGdldCkoKSlyZXR1cm47Y29uc3QgZT13aW5kb3cuaW5pdERhdGE/LndpZGdldERlZmF1bHRzO2lmKHZvaWQgMD09PWUpcmV0dXJuO2NvbnN0IHI9ZS5zeW1ib2xfc2VhcmNoX2RlZmF1bHRfZXhjaGFuZ2Usbz0ic3RyaW5nIj09dHlwZW9mIHImJiIiIT09cj9yOnZvaWQgMCxuPWUuc3ltYm9sX3NlYXJjaF9hbGxvd2VkX2V4Y2hhbmdlcyx1PUFycmF5LmlzQXJyYXkobik/bi5maWx0ZXIoKGU9PiJzdHJpbmciPT10eXBlb2YgZSkpOnZvaWQgMDtyZXR1cm4gdm9pZCAwIT09b3x8dm9pZCAwIT09dSYmMCE9PXUubGVuZ3RoP3tkZWZhdWx0RXhjaGFuZ2U6byxhbGxvd2VkRXhjaGFuZ2VzOnV9OnZvaWQgMH19LDk5ODcwNChlLHIsbyl7ZS5leHBvcnRzPVt7dmFsdWU6IiIsbmFtZToiQWxsIEV4Y2hhbmdlcyIsZGVzYzpvLmkxOG5leHQobnVsbCx2b2lkIDAsbygzMDU2NDIpKSxmbGFnOiIiLGNvdW50cnk6IiIsZ3JvdXA6IkFsbEV4Y2hhbmdlcyIscHJvdmlkZXJJZDoiIn0se3ZhbHVlOiJMQkFOSyIsbmFtZToiTEJhbmsiLGRlc2M6by5pMThuZXh0KG51bGwsdm9pZCAwLG8oMTU5NjI4KSksZmxhZzoiYml0Y29pbiIsZ3JvdXA6IkNyeXB0b2N1cnJlbmN5Iixjb3VudHJ5OiIiLHNvdXJjZUlkOiJMQkFOSyIscHJvdmlkZXJJZDoibGJhbmsifSx7dmFsdWU6IkxGSjJET1QyIixuYW1lOiJMRkogVjIuMiAoQXZhbGFuY2hlKSIsZGVzYzpvLmkxOG5leHQobnVsbCx2b2lkIDAsbyg4NDM1MTQpKSxmbGFnOiJiaXRjb2luIixncm91cDoiQ3J5cHRvY3VycmVuY3kiLGNvdW50cnk6IiIsc291cmNlSWQ6IkxGSjJET1QyIixwcm92aWRlcklkOiJsZmoyZG90MiJ9LHt2YWx1ZToiQkNIQUlOIixuYW1lOiJCQ0hBSU4gKE5hc2RhcSBEYXRhIExpbmspIixkZXNjOm8uaTE4bmV4dChudWxsLHZvaWQgMCxvKDI5NDQpKSxmbGFnOiJiaXRjb2luIixncm91cDoiQ3J5cHRvY3VycmVuY3kiLGNvdW50cnk6IiIsc291cmNlSWQ6IkJDSEFJTiIscHJvdmlkZXJJZDoicXVhbmRsX2JjaGFpbiJ9LHt2YWx1ZToiQklTV0FQIixuYW1lOiJCaXN3YXAgdjIgKEJOQiBjaGFpbikiLGRlc2M6by5pMThuZXh0KG51bGwsdm9pZCAwLG8oMzQ2MDg2KSksZmxhZzoiYml0Y29pbiIsZ3JvdXA6IkNyeXB0b2N1cnJlbmN5Iixjb3VudHJ5OiIiLHNvdXJjZUlkOiJCSVNXQVAiLHByb3ZpZGVySWQ6ImJpc3dhcCJ9LHt2YWx1ZToiQklUQVpaQSIsbmFtZToiQml0YXp6YSIsZGVzYzpvLmkxOG5leHQobnVsbCx2b2lkIDAsbyg1NTgwNDQpKSxmbGFnOiJiaXRjb2luIixncm91cDoiQ3J5cHRvY3VycmVuY3kiLGNvdW50cnk6IiIsc291cmNlSWQ6IkJJVEFaWkEiLHByb3ZpZGVySWQ6ImJpdGF6emEifSx7dmFsdWU6IkJJVEhVTUIiLG5hbWU6IkJpdGh1bWIiLGRlc2M6by5pMThuZXh0KG51bGwsdm9pZCAwLG8oNjU4NjUwKSksZmxhZzoiYml0Y29pbiIsZ3JvdXA6IkNyeXB0b2N1cnJlbmN5Iixjb3VudHJ5OiIiLHNvdXJjZUlkOiJCSVRIVU1CIixwcm92aWRlcklkOiJiaXRodW1iIn0se3ZhbHVlOiJCSVRLVUIiLG5hbWU6IkJpdGt1YiIsZGVzYzpvLmkxOG5leHQobnVsbCx2b2lkIDAsbyg3NzkzNikpLGZsYWc6ImJpdGNvaW4iLGdyb3VwOiJDcnlwdG9jdXJyZW5jeSIsY291bnRyeToiIixzb3VyY2VJZDoiQklUS1VCIixwcm92aWRlcklkOiJiaXRrdWIifSx7dmFsdWU6IkJJVFJVRSIsbmFtZToiQml0cnVlIixkZXNjOm8uaTE4bmV4dChudWxsLHZvaWQgMCxvKDE0NDExNCkpLGZsYWc6ImJpdGNvaW4iLGdyb3VwOiJDcnlwdG9jdXJyZW5jeSIsY291bnRyeToiIixzb3VyY2VJZDoiQklUUlVFIixwcm92aWRlcklkOiJiaXRydWUifSx7dmFsdWU6IkJJVE1BUlQiLG5hbWU6IkJpdE1hcnQiLGRlc2M6by5pMThuZXh0KG51bGwsdm9pZCAwLG8oNjY0NTA2KSksZmxhZzoiYml0Y29pbiIsZ3JvdXA6IkNyeXB0b2N1cnJlbmN5Iixjb3VudHJ5OiIiLHNvdXJjZUlkOiJCSVRNQVJUIixwcm92aWRlcklkOiJiaXRtYXJ0In0se3ZhbHVlOiJCSVRTTyIsbmFtZToiQml0c28iLGRlc2M6by5pMThuZXh0KG51bGwsdm9pZCAwLG8oMTE5NzkyKSksZmxhZzoiYml0Y29pbiIsZ3JvdXA6IkNyeXB0b2N1cnJlbmN5Iixjb3VudHJ5OiIiLHNvdXJjZUlkOiJCSVRTTyIscHJvdmlkZXJJZDoiYml0c28ifSx7dmFsdWU6IkNPSU5NRVRSSUNTIixuYW1lOiJDb2luIE1ldHJpY3MiLGRlc2M6by5pMThuZXh0KG51bGwsdm9pZCAwLG8oOTk1MDk3KSksZmxhZzoiYml0Y29pbiIsZ3JvdXA6IkNyeXB0b2N1cnJlbmN5Iixjb3VudHJ5OiIiLHNvdXJjZUlkOiJDT0lOTUVUUklDUyIscHJvdmlkZXJJZDoiY29pbm1ldHJpY3MifSx7dmFsdWU6Ik1FWEMiLG5hbWU6Ik1FWEMiLGRlc2M6by5pMThuZXh0KG51bGwsdm9pZCAwLG8oMjUxNTkxKSksZmxhZzoiYml0Y29pbiIsZ3JvdXA6IkNyeXB0b2N1cnJlbmN5Iixjb3VudHJ5OiIiLHNvdXJjZUlkOiJNRVhDIixwcm92aWRlcklkOiJtZXhjIn0se3ZhbHVlOiJHQVRFIixuYW1lOiJHYXRlIixkZXNjOm8uaTE4bmV4dChudWxsLHZvaWQgMCxvKDQ4NDA2MCkpLApmbGFnOiJiaXRjb2luIixncm91cDoiQ3J5cHRvY3VycmVuY3kiLGNvdW50cnk6IiIsc291cmNlSWQ6IkdBVEUiLHByb3ZpZGVySWQ6ImdhdGUifSx7dmFsdWU6IkhUWCIsbmFtZToiSFRYIixkZXNjOm8uaTE4bmV4dChudWxsLHZvaWQgMCxvKDkxNTY0MSkpLGZsYWc6ImJpdGNvaW4iLGdyb3VwOiJDcnlwdG9jdXJyZW5jeSIsY291bnRyeToiIixzb3VyY2VJZDoiSFRYIixwcm92aWRlcklkOiJodHgifSx7dmFsdWU6Ijc5NiIsbmFtZToiNzk2IixkZXNjOm8uaTE4bmV4dChudWxsLHZvaWQgMCxvKDM5MDgxNCkpLGZsYWc6ImJpdGNvaW4iLGdyb3VwOiJDcnlwdG9jdXJyZW5jeSIsaGlkZUluU3ltYm9sU2VhcmNoOiEwLGNvdW50cnk6IiIscHJvdmlkZXJJZDoiIn0se3ZhbHVlOiJERURVU1QiLG5hbWU6IkRlRHVzdC5pbyAoVE9OKSIsZGVzYzpvLmkxOG5leHQobnVsbCx2b2lkIDAsbygzMjA2MjcpKSxmbGFnOiJiaXRjb2luIixncm91cDoiQ3J5cHRvY3VycmVuY3kiLGNvdW50cnk6IiIsc291cmNlSWQ6IkRFRFVTVCIscHJvdmlkZXJJZDoiZGVkdXN0In0se3ZhbHVlOiJERUVQQ09JTiIsbmFtZToiRGVlcGNvaW4iLGRlc2M6by5pMThuZXh0KG51bGwsdm9pZCAwLG8oNDM4NzE2KSksZmxhZzoiYml0Y29pbiIsZ3JvdXA6IkNyeXB0b2N1cnJlbmN5Iixjb3VudHJ5OiIiLHNvdXJjZUlkOiJERUVQQ09JTiIscHJvdmlkZXJJZDoiZGVlcGNvaW4ifSx7dmFsdWU6IkRFUklCSVQiLG5hbWU6IkRlcmliaXQiLGRlc2M6by5pMThuZXh0KG51bGwsdm9pZCAwLG8oMTU0OTQwKSksZmxhZzoiYml0Y29pbiIsZ3JvdXA6IkNyeXB0b2N1cnJlbmN5Iixjb3VudHJ5OiIiLHNvdXJjZUlkOiJERVJJQklUIixwcm92aWRlcklkOiJkZXJpYml0In0se3ZhbHVlOiJEWURYIixuYW1lOiJkWWRYIixkZXNjOm8uaTE4bmV4dChudWxsLHZvaWQgMCxvKDE2NDAxOCkpLGZsYWc6ImJpdGNvaW4iLGdyb3VwOiJDcnlwdG9jdXJyZW5jeSIsY291bnRyeToiIixzb3VyY2VJZDoiRFlEWCIscHJvdmlkZXJJZDoiZHlkeCJ9LHt2YWx1ZToiREVGSUxMQU1BIixuYW1lOiJEZWZpTGxhbWEiLGRlc2M6by5pMThuZXh0KG51bGwsdm9pZCAwLG8oMTYwMjY1KSksZmxhZzoiYml0Y29pbiIsZ3JvdXA6IkNyeXB0b2N1cnJlbmN5Iixjb3VudHJ5OiIiLHNvdXJjZUlkOiJERUZJTExBTUEiLHByb3ZpZGVySWQ6ImRlZmlsbGFtYSJ9LHt2YWx1ZToiR0xBU1NOT0RFIixuYW1lOiJHbGFzc25vZGUiLGRlc2M6by5pMThuZXh0KG51bGwsdm9pZCAwLG8oMTA5ODQ2KSksZmxhZzoiYml0Y29pbiIsZ3JvdXA6IkNyeXB0b2N1cnJlbmN5Iixjb3VudHJ5OiIiLHNvdXJjZUlkOiJHTEFTU05PREUiLHByb3ZpZGVySWQ6ImdsYXNzbm9kZSJ9LHt2YWx1ZToiTUVURU9SQURMTU0iLG5hbWU6Ik1ldGVvcmEgRExNTSAoU29sYW5hKSIsZGVzYzpvLmkxOG5leHQobnVsbCx2b2lkIDAsbyg5NDcwNDQpKSxmbGFnOiJiaXRjb2luIixncm91cDoiQ3J5cHRvY3VycmVuY3kiLGNvdW50cnk6IiIsc291cmNlSWQ6Ik1FVEVPUkFETE1NIixwcm92aWRlcklkOiJtZXRlb3JhZGxtbSJ9LHt2YWx1ZToiTUVURU9SQURZTiIsbmFtZToiTWV0ZW9yYSBEWU4gKFNvbGFuYSkiLGRlc2M6by5pMThuZXh0KG51bGwsdm9pZCAwLG8oODMxOTczKSksZmxhZzoiYml0Y29pbiIsZ3JvdXA6IkNyeXB0b2N1cnJlbmN5Iixjb3VudHJ5OiIiLHNvdXJjZUlkOiJNRVRFT1JBRFlOIixwcm92aWRlcklkOiJtZXRlb3JhZHluIn0se3ZhbHVlOiJPS1giLG5hbWU6Ik9LWCIsZGVzYzpvLmkxOG5leHQobnVsbCx2b2lkIDAsbyg4MzE1NjgpKSxmbGFnOiJiaXRjb2luIixncm91cDoiQ3J5cHRvY3VycmVuY3kiLGNvdW50cnk6IiIsc291cmNlSWQ6Ik9LWCIscHJvdmlkZXJJZDoib2t4In0se3ZhbHVlOiJPUkNBIixuYW1lOiJPcmNhIChTb2xhbmEpIixkZXNjOm8uaTE4bmV4dChudWxsLHZvaWQgMCxvKDE3MDQyOCkpLGZsYWc6ImJpdGNvaW4iLGdyb3VwOiJDcnlwdG9jdXJyZW5jeSIsY291bnRyeToiIixzb3VyY2VJZDoiT1JDQSIscHJvdmlkZXJJZDoib3JjYSJ9LHt2YWx1ZToiUEFOR09MSU4iLG5hbWU6IlBhbmdvbGluIHYyIChBdmFsYW5jaGUpIixkZXNjOm8uaTE4bmV4dChudWxsLHZvaWQgMCxvKDU2MjIxNSkpLGZsYWc6ImJpdGNvaW4iLGdyb3VwOiJDcnlwdG9jdXJyZW5jeSIsY291bnRyeToiIixzb3VyY2VJZDoiUEFOR09MSU4iLHByb3ZpZGVySWQ6InBhbmdvbGluIn0se3ZhbHVlOiJQQU5DQUtFU1dBUCIsbmFtZToiUGFuY2FrZVN3YXAgdjIgKEJOQiBjaGFpbikiLGRlc2M6by5pMThuZXh0KG51bGwsdm9pZCAwLG8oNjgxNTY0KSksZmxhZzoiYml0Y29pbiIsZ3JvdXA6IkNyeXB0b2N1cnJlbmN5Iixjb3VudHJ5OiIiLHNvdXJjZUlkOiJQQU5DQUtFU1dBUCIscHJvdmlkZXJJZDoicGFuY2FrZXN3YXAifSx7dmFsdWU6IlBBTkNBS0VTV0FQM0FSQklUUlVNIixuYW1lOiJQYW5jYWtlc3dhcCB2MyAoQXJiaXRydW0pIixkZXNjOm8uaTE4bmV4dChudWxsLHZvaWQgMCxvKDc4NTYyOSkpLGZsYWc6ImJpdGNvaW4iLGdyb3VwOiJDcnlwdG9jdXJyZW5jeSIsY291bnRyeToiIixzb3VyY2VJZDoiUEFOQ0FLRVNXQVAzQVJCSVRSVU0iLHByb3ZpZGVySWQ6InBhbmNha2Vzd2FwMyJ9LHt2YWx1ZToiUEFOQ0FLRVNXQVAzQkFTRSIsbmFtZToiUGFuY2FrZXN3YXAgdjMgKEJhc2UpIixkZXNjOm8uaTE4bmV4dChudWxsLHZvaWQgMCxvKDUyMDkxNSkpLGZsYWc6ImJpdGNvaW4iLGdyb3VwOiJDcnlwdG9jdXJyZW5jeSIsY291bnRyeToiIixzb3VyY2VJZDoiUEFOQ0FLRVNXQVAzQkFTRSIscHJvdmlkZXJJZDoicGFuY2FrZXN3YXAzIn0se3ZhbHVlOiJQQU5DQUtFU1dBUDNCU0MiLG5hbWU6IlBhbmNha2VTd2FwIHYzIChCTkIgY2hhaW4pIixkZXNjOm8uaTE4bmV4dChudWxsLHZvaWQgMCxvKDUwMjI0KSksZmxhZzoiYml0Y29pbiIsZ3JvdXA6IkNyeXB0b2N1cnJlbmN5Iixjb3VudHJ5OiIiLHNvdXJjZUlkOiJQQU5DQUtFU1dBUDNCU0MiLHByb3ZpZGVySWQ6InBhbmNha2Vzd2FwMyJ9LHt2YWx1ZToiUEFOQ0FLRVNXQVAzRVRIIixuYW1lOiJQYW5jYWtlU3dhcCB2MyAoRXRoZXJldW0pIiwKZGVzYzpvLmkxOG5leHQobnVsbCx2b2lkIDAsbygyNjEzMTQpKSxmbGFnOiJiaXRjb2luIixncm91cDoiQ3J5cHRvY3VycmVuY3kiLGNvdW50cnk6IiIsc291cmNlSWQ6IlBBTkNBS0VTV0FQM0VUSCIscHJvdmlkZXJJZDoicGFuY2FrZXN3YXAzIn0se3ZhbHVlOiJQQU5DQUtFU1dBUDNaS1NZTkMiLG5hbWU6IlBhbmNha2Vzd2FwIHYzICh6a1N5bmMpIixkZXNjOm8uaTE4bmV4dChudWxsLHZvaWQgMCxvKDMwMDM0MCkpLGZsYWc6ImJpdGNvaW4iLGdyb3VwOiJDcnlwdG9jdXJyZW5jeSIsY291bnRyeToiIixzb3VyY2VJZDoiUEFOQ0FLRVNXQVAzWktTWU5DIixwcm92aWRlcklkOiJwYW5jYWtlc3dhcDMifSx7dmFsdWU6IkNVUlZFIixuYW1lOiJDdXJ2ZSAoRXRoZXJldW0pIixkZXNjOm8uaTE4bmV4dChudWxsLHZvaWQgMCxvKDQwOTAyKSksZmxhZzoiYml0Y29pbiIsZ3JvdXA6IkNyeXB0b2N1cnJlbmN5Iixjb3VudHJ5OiIiLHNvdXJjZUlkOiJDVVJWRSIscHJvdmlkZXJJZDoiY3VydmUifSx7dmFsdWU6IkNVUlZFQVJCSVRSVU0iLG5hbWU6IkN1cnZlIChBcmJpdHJ1bSkiLGRlc2M6by5pMThuZXh0KG51bGwsdm9pZCAwLG8oMTA0MzMxKSksZmxhZzoiYml0Y29pbiIsZ3JvdXA6IkNyeXB0b2N1cnJlbmN5Iixjb3VudHJ5OiIiLHNvdXJjZUlkOiJDVVJWRUFSQklUUlVNIixwcm92aWRlcklkOiJjdXJ2ZSJ9LHt2YWx1ZToiUElPTkVYIixuYW1lOiJQaW9uZXgiLGRlc2M6by5pMThuZXh0KG51bGwsdm9pZCAwLG8oNjc0NjcwKSksZmxhZzoiYml0Y29pbiIsZ3JvdXA6IkNyeXB0b2N1cnJlbmN5Iixjb3VudHJ5OiIiLHNvdXJjZUlkOiJQSU9ORVgiLHByb3ZpZGVySWQ6InBpb25leCJ9LHt2YWx1ZToiUFVMU0VYMiIsbmFtZToiUHVsc2VYIHYyIChQdWxzZWNoYWluKSIsZGVzYzpvLmkxOG5leHQobnVsbCx2b2lkIDAsbyg5Nzk3NTkpKSxmbGFnOiJiaXRjb2luIixncm91cDoiQ3J5cHRvY3VycmVuY3kiLGNvdW50cnk6IiIsc291cmNlSWQ6IlBVTFNFWDIiLHByb3ZpZGVySWQ6InB1bHNleCJ9LHt2YWx1ZToiUFlUSCIsbmFtZToiUHl0aCIsZGVzYzpvLmkxOG5leHQobnVsbCx2b2lkIDAsbyg2MDgxNjApKSxmbGFnOiJiaXRjb2luIixncm91cDoiQ3J5cHRvY3VycmVuY3kiLGNvdW50cnk6IiIsc291cmNlSWQ6IlBZVEgiLHByb3ZpZGVySWQ6InB5dGgifSx7dmFsdWU6IlJBTVNFUzIiLG5hbWU6IlJhbXNlcyB2MiAoQXJiaXRydW0pIixkZXNjOm8uaTE4bmV4dChudWxsLHZvaWQgMCxvKDUyODA0OCkpLGZsYWc6ImJpdGNvaW4iLGdyb3VwOiJDcnlwdG9jdXJyZW5jeSIsY291bnRyeToiIixzb3VyY2VJZDoiUkFNU0VTMiIscHJvdmlkZXJJZDoicmFtc2VzMiJ9LHt2YWx1ZToiUkFZRElVTSIsbmFtZToiUmF5ZGl1bSAoU29sYW5hKSIsZGVzYzpvLmkxOG5leHQobnVsbCx2b2lkIDAsbyg1NjU2MTEpKSxmbGFnOiJiaXRjb2luIixncm91cDoiQ3J5cHRvY3VycmVuY3kiLGNvdW50cnk6IiIsc291cmNlSWQ6IlJBWURJVU0iLHByb3ZpZGVySWQ6InJheWRpdW0ifSx7dmFsdWU6IlJBWURJVU1DTE1NIixuYW1lOiJSYXlkaXVtIENMTU0gKFNvbGFuYSkiLGRlc2M6by5pMThuZXh0KG51bGwsdm9pZCAwLG8oMzQzNzkxKSksZmxhZzoiYml0Y29pbiIsZ3JvdXA6IkNyeXB0b2N1cnJlbmN5Iixjb3VudHJ5OiIiLHNvdXJjZUlkOiJSQVlESVVNQ0xNTSIscHJvdmlkZXJJZDoicmF5ZGl1bWNsbW0ifSx7dmFsdWU6IlJBWURJVU1DUE1NIixuYW1lOiJSYXlkaXVtIENQTU0gKFNvbGFuYSkiLGRlc2M6by5pMThuZXh0KG51bGwsdm9pZCAwLG8oODA4OTcyKSksZmxhZzoiYml0Y29pbiIsZ3JvdXA6IkNyeXB0b2N1cnJlbmN5Iixjb3VudHJ5OiIiLHNvdXJjZUlkOiJSQVlESVVNQ1BNTSIscHJvdmlkZXJJZDoicmF5ZGl1bWNwbW0ifSx7dmFsdWU6IlNUT05GSSIsbmFtZToiU1RPTi5maSAoVE9OKSIsZGVzYzpvLmkxOG5leHQobnVsbCx2b2lkIDAsbyg1NzI5MDkpKSxmbGFnOiJiaXRjb2luIixncm91cDoiQ3J5cHRvY3VycmVuY3kiLGNvdW50cnk6IiIsc291cmNlSWQ6IlNUT05GSSIscHJvdmlkZXJJZDoic3RvbmZpIn0se3ZhbHVlOiJTVE9ORkkyIixuYW1lOiJTVE9OLmZpIHYyIChUT04pIixkZXNjOm8uaTE4bmV4dChudWxsLHZvaWQgMCxvKDc4NDQ5NSkpLGZsYWc6ImJpdGNvaW4iLGdyb3VwOiJDcnlwdG9jdXJyZW5jeSIsY291bnRyeToiIixzb3VyY2VJZDoiU1RPTkZJMiIscHJvdmlkZXJJZDoic3RvbmZpIn0se3ZhbHVlOiJTVU5TV0FQMiIsbmFtZToiU3VuU3dhcCB2MiAoVFJPTikiLGRlc2M6by5pMThuZXh0KG51bGwsdm9pZCAwLG8oNDMxNTE2KSksZmxhZzoiYml0Y29pbiIsZ3JvdXA6IkNyeXB0b2N1cnJlbmN5Iixjb3VudHJ5OiIiLHNvdXJjZUlkOiJTVU5TV0FQMiIscHJvdmlkZXJJZDoic3Vuc3dhcCJ9LHt2YWx1ZToiV0hJVEVCSVQiLG5hbWU6IldoaXRlQklUIixkZXNjOm8uaTE4bmV4dChudWxsLHZvaWQgMCxvKDczMjQ0NSkpLGZsYWc6ImJpdGNvaW4iLGdyb3VwOiJDcnlwdG9jdXJyZW5jeSIsY291bnRyeToiIixzb3VyY2VJZDoiV0hJVEVCSVQiLHByb3ZpZGVySWQ6IndoaXRlYml0In0se3ZhbHVlOiJXT09ORVRXT1JLIixuYW1lOiJXT08gWCIsZGVzYzpvLmkxOG5leHQobnVsbCx2b2lkIDAsbyg0NjUyNjApKSxmbGFnOiJiaXRjb2luIixncm91cDoiQ3J5cHRvY3VycmVuY3kiLGNvdW50cnk6IiIsc291cmNlSWQ6IldPT05FVFdPUksiLHByb3ZpZGVySWQ6Indvb25ldHdvcmsifSx7dmFsdWU6IlZPTE1FWCIsbmFtZToiVm9sbWV4IixkZXNjOm8uaTE4bmV4dChudWxsLHZvaWQgMCxvKDUzMzA3NykpLGZsYWc6ImJpdGNvaW4iLGdyb3VwOiJDcnlwdG9jdXJyZW5jeSIsY291bnRyeToiIixzb3VyY2VJZDoiVk9MTUVYIixwcm92aWRlcklkOiJ2b2xtZXgifSx7dmFsdWU6IlpLU1dBUCIsbmFtZToiemtTd2FwICh6a1N5bmMpIixkZXNjOm8uaTE4bmV4dChudWxsLHZvaWQgMCxvKDMxODIzKSksZmxhZzoiYml0Y29pbiIsZ3JvdXA6IkNyeXB0b2N1cnJlbmN5Iixjb3VudHJ5OiIiLHNvdXJjZUlkOiJaS1NXQVAiLHByb3ZpZGVySWQ6Inprc3dhcCJ9LHt2YWx1ZToiWk9PTUVYIixuYW1lOiJab29tZXgiLApkZXNjOm8uaTE4bmV4dChudWxsLHZvaWQgMCxvKDU3MDQwMykpLGZsYWc6ImJpdGNvaW4iLGdyb3VwOiJDcnlwdG9jdXJyZW5jeSIsY291bnRyeToiIixzb3VyY2VJZDoiWk9PTUVYIixwcm92aWRlcklkOiJ6b29tZXgifSx7dmFsdWU6IkFEWCIsbmFtZToiQURYIixkZXNjOm8uaTE4bmV4dChudWxsLHZvaWQgMCxvKDE3NDE1MikpLGZsYWc6ImFlIixncm91cDoiTWlkZGxlIEVhc3QgLyBBZnJpY2EiLGNvdW50cnk6ImFlIixwcm92aWRlcklkOiIiLHNlYXJjaFRlcm1zOltvLmkxOG5leHQobnVsbCx2b2lkIDAsbygxNjMxMTApKSxvLmkxOG5leHQobnVsbCx2b2lkIDAsbygyNDkwOTEpKV19LHt2YWx1ZToiSUNFQUJVRCIsbmFtZToiSUNFQUQiLGRlc2M6by5pMThuZXh0KG51bGwsdm9pZCAwLG8oMzQ0MzQ1KSksZmxhZzoiYWUiLGdyb3VwOiJNaWRkbGUgRWFzdCAvIEFmcmljYSIsY291bnRyeToiYWUiLHByb3ZpZGVySWQ6IiIsc2VhcmNoVGVybXM6W28uaTE4bmV4dChudWxsLHZvaWQgMCxvKDE2MzExMCkpLG8uaTE4bmV4dChudWxsLHZvaWQgMCxvKDI0OTA5MSkpXX0se3ZhbHVlOiJERk0iLG5hbWU6IkRGTSIsZGVzYzpvLmkxOG5leHQobnVsbCx2b2lkIDAsbyg4MDc0NDEpKSxmbGFnOiJhZSIsZ3JvdXA6Ik1pZGRsZSBFYXN0IC8gQWZyaWNhIixjb3VudHJ5OiJhZSIscHJvdmlkZXJJZDoiIixzZWFyY2hUZXJtczpbby5pMThuZXh0KG51bGwsdm9pZCAwLG8oMTYzMTEwKSksby5pMThuZXh0KG51bGwsdm9pZCAwLG8oMjQ5MDkxKSldfSx7dmFsdWU6Ik5BU0RBUURVQkFJIixuYW1lOiJOQVNEQVEiLGRlc2M6by5pMThuZXh0KG51bGwsdm9pZCAwLG8oOTAzNjUwKSksZmxhZzoiYWUiLGdyb3VwOiJNaWRkbGUgRWFzdCAvIEFmcmljYSIsY291bnRyeToiYWUiLHByaW9yaXR5SW5Hcm91cDoxLHByb3ZpZGVySWQ6IiIsc2VhcmNoVGVybXM6W28uaTE4bmV4dChudWxsLHZvaWQgMCxvKDE2MzExMCkpLG8uaTE4bmV4dChudWxsLHZvaWQgMCxvKDI0OTA5MSkpXX0se3ZhbHVlOiJBUVVJUyIsbmFtZToiQVFVSVMiLGRlc2M6by5pMThuZXh0KG51bGwsdm9pZCAwLG8oNzY5ODI4KSksZmxhZzoidWsiLGdyb3VwOiJFdXJvcGUiLGNvdW50cnk6InVrIixwcm92aWRlcklkOiIiLHNlYXJjaFRlcm1zOltvLmkxOG5leHQobnVsbCx2b2lkIDAsbyg1ODc1MzMpKSxvLmkxOG5leHQobnVsbCx2b2lkIDAsbygyODI3MykpXX0se3ZhbHVlOiJMU0UiLG5hbWU6IkxTRSIsZGVzYzpvLmkxOG5leHQobnVsbCx2b2lkIDAsbygxNDM4MDMpKSxmbGFnOiJ1ayIsZ3JvdXA6IkV1cm9wZSIsY291bnRyeToidWsiLHByb3ZpZGVySWQ6IiIsc2VhcmNoVGVybXM6W28uaTE4bmV4dChudWxsLHZvaWQgMCxvKDU4NzUzMykpLG8uaTE4bmV4dChudWxsLHZvaWQgMCxvKDI4MjczKSldfSx7dmFsdWU6IkxNRSIsbmFtZToiTE1FIixkZXNjOm8uaTE4bmV4dChudWxsLHZvaWQgMCxvKDc4OTI0MykpLGZsYWc6InVrIixncm91cDoiRXVyb3BlIixjb3VudHJ5OiJ1ayIscHJvdmlkZXJJZDoiIixzZWFyY2hUZXJtczpbby5pMThuZXh0KG51bGwsdm9pZCAwLG8oNTg3NTMzKSksby5pMThuZXh0KG51bGwsdm9pZCAwLG8oMjgyNzMpKV19LHt2YWx1ZToiTFNJTiIsbmFtZToiTFNJTiIsZGVzYzpvLmkxOG5leHQobnVsbCx2b2lkIDAsbygzNDczMzcpKSxmbGFnOiJ1ayIsZ3JvdXA6IkV1cm9wZSIsY291bnRyeToidWsiLHByb3ZpZGVySWQ6IiIsc2VhcmNoVGVybXM6W28uaTE4bmV4dChudWxsLHZvaWQgMCxvKDU4NzUzMykpLG8uaTE4bmV4dChudWxsLHZvaWQgMCxvKDI4MjczKSldfSx7dmFsdWU6IlRVUlFVT0lTRSIsbmFtZToiVHVycXVvaXNlIixkZXNjOm8uaTE4bmV4dChudWxsLHZvaWQgMCxvKDM2MTYzMikpLGZsYWc6InVrIixncm91cDoiRXVyb3BlIixjb3VudHJ5OiJ1ayIscHJvdmlkZXJJZDoiIixzZWFyY2hUZXJtczpbby5pMThuZXh0KG51bGwsdm9pZCAwLG8oNTg3NTMzKSksby5pMThuZXh0KG51bGwsdm9pZCAwLG8oMjgyNzMpKV19LHt2YWx1ZToiRlRTRSIsbmFtZToiRlRTRSIsZGVzYzpvLmkxOG5leHQobnVsbCx2b2lkIDAsbygxNzkyNTcpKSxmbGFnOiJ1ayIsZ3JvdXA6IkV1cm9wZSIsY291bnRyeToidWsiLHByb3ZpZGVySWQ6IiIsc2VhcmNoVGVybXM6W28uaTE4bmV4dChudWxsLHZvaWQgMCxvKDU4NzUzMykpLG8uaTE4bmV4dChudWxsLHZvaWQgMCxvKDI4MjczKSldfSx7dmFsdWU6IkVVUkVYIixuYW1lOiJFVVJFWCIsZGVzYzpvLmkxOG5leHQobnVsbCx2b2lkIDAsbyg5Njg1OTYpKSxmbGFnOiJldXJvcGUiLGdyb3VwOiJFdXJvcGUiLGNvdW50cnk6ImV1Iixwcm92aWRlcklkOiIifSx7dmFsdWU6Ik1HRVgiLG5hbWU6Ik1HRVgiLGRlc2M6by5pMThuZXh0KG51bGwsdm9pZCAwLG8oNzYxNTk2KSksZmxhZzoidXNhIixoaWRlSW5TeW1ib2xTZWFyY2g6ITAsZ3JvdXA6Ik5vcnRoIEFtZXJpY2EiLGNvdW50cnk6InVzIixwcm92aWRlcklkOiIiLHNlYXJjaFRlcm1zOltvLmkxOG5leHQobnVsbCx2b2lkIDAsbygzMDExMTcpKSxvLmkxOG5leHQobnVsbCx2b2lkIDAsbygyNzg3ODgpKV19LHt2YWx1ZToiTkFTREFRIixuYW1lOiJOQVNEQVEiLGRlc2M6by5pMThuZXh0KG51bGwsdm9pZCAwLG8oNzQ4NjcwKSksZmxhZzoidXNhIixncm91cDoiTm9ydGggQW1lcmljYSIsY291bnRyeToidXMiLHByaW9yaXR5SW5Hcm91cDoxLHByb3ZpZGVySWQ6IiIsc2VhcmNoVGVybXM6W28uaTE4bmV4dChudWxsLHZvaWQgMCxvKDMwMTExNykpLG8uaTE4bmV4dChudWxsLHZvaWQgMCxvKDI3ODc4OCkpXX0se3ZhbHVlOiJOWVNFIixuYW1lOiJOWVNFIixkZXNjOm8uaTE4bmV4dChudWxsLHZvaWQgMCxvKDk0MjQ4NCkpLGZsYWc6InVzYSIsZ3JvdXA6Ik5vcnRoIEFtZXJpY2EiLGNvdW50cnk6InVzIixwcmlvcml0eUluR3JvdXA6Mixwcm92aWRlcklkOiIiLHNlYXJjaFRlcm1zOltvLmkxOG5leHQobnVsbCx2b2lkIDAsbygzMDExMTcpKSxvLmkxOG5leHQobnVsbCx2b2lkIDAsbygyNzg3ODgpKV19LHt2YWx1ZToiQU1FWCIsbmFtZToiQXJjYSIsZGVzYzpvLmkxOG5leHQobnVsbCx2b2lkIDAsbyg2Njg0MDMpKSxmbGFnOiJ1c2EiLApncm91cDoiTm9ydGggQW1lcmljYSIsY291bnRyeToidXMiLHByaW9yaXR5SW5Hcm91cDozLHByb3ZpZGVySWQ6IiIsc2VhcmNoVGVybXM6W28uaTE4bmV4dChudWxsLHZvaWQgMCxvKDMwMTExNykpLG8uaTE4bmV4dChudWxsLHZvaWQgMCxvKDI3ODc4OCkpXX0se3ZhbHVlOiJPVEMiLG5hbWU6Ik9UQyIsZGVzYzpvLmkxOG5leHQobnVsbCx2b2lkIDAsbyg5NDA0MTMpKSxmbGFnOiJ1c2EiLGdyb3VwOiJOb3J0aCBBbWVyaWNhIixjb3VudHJ5OiJ1cyIscHJpb3JpdHlJbkdyb3VwOjQscHJvdmlkZXJJZDoiIixzZWFyY2hUZXJtczpbby5pMThuZXh0KG51bGwsdm9pZCAwLG8oMzAxMTE3KSksby5pMThuZXh0KG51bGwsdm9pZCAwLG8oMjc4Nzg4KSldfSx7dmFsdWU6IkRKIixuYW1lOiJESiIsZGVzYzpvLmkxOG5leHQobnVsbCx2b2lkIDAsbyg3MDcxNTgpKSxmbGFnOiJ1c2EiLGdyb3VwOiJOb3J0aCBBbWVyaWNhIixjb3VudHJ5OiJ1cyIscHJpb3JpdHlJbkdyb3VwOjUscHJvdmlkZXJJZDoiIixzZWFyY2hUZXJtczpbby5pMThuZXh0KG51bGwsdm9pZCAwLG8oMzAxMTE3KSksby5pMThuZXh0KG51bGwsdm9pZCAwLG8oMjc4Nzg4KSldfSx7dmFsdWU6IlNQIixuYW1lOiJTUCIsZGVzYzpvLmkxOG5leHQobnVsbCx2b2lkIDAsbygyNDgyNTUpKSxmbGFnOiJ1c2EiLGdyb3VwOiJOb3J0aCBBbWVyaWNhIixjb3VudHJ5OiJ1cyIscHJpb3JpdHlJbkdyb3VwOjYscHJvdmlkZXJJZDoiIixzZWFyY2hUZXJtczpbby5pMThuZXh0KG51bGwsdm9pZCAwLG8oMzAxMTE3KSksby5pMThuZXh0KG51bGwsdm9pZCAwLG8oMjc4Nzg4KSldfSx7dmFsdWU6IkNCT0UiLG5hbWU6IkNCT0UiLGRlc2M6by5pMThuZXh0KG51bGwsdm9pZCAwLG8oOTk5ODc3KSksZmxhZzoidXNhIixncm91cDoiTm9ydGggQW1lcmljYSIsY291bnRyeToidXMiLHByaW9yaXR5SW5Hcm91cDo3LHByb3ZpZGVySWQ6IiIsc2VhcmNoVGVybXM6W28uaTE4bmV4dChudWxsLHZvaWQgMCxvKDMwMTExNykpLG8uaTE4bmV4dChudWxsLHZvaWQgMCxvKDI3ODc4OCkpXX0se3ZhbHVlOiJNU1RBUl9JTkRJQ0VTIixuYW1lOiJNU1RBUiIsZGVzYzpvLmkxOG5leHQobnVsbCx2b2lkIDAsbyg1MTI3NCkpLGZsYWc6InVzYSIsZ3JvdXA6Ik5vcnRoIEFtZXJpY2EiLGNvdW50cnk6InVzIixwcm92aWRlcklkOiIiLHNlYXJjaFRlcm1zOltvLmkxOG5leHQobnVsbCx2b2lkIDAsbygzMDExMTcpKSxvLmkxOG5leHQobnVsbCx2b2lkIDAsbygyNzg3ODgpKV19LHt2YWx1ZToiRklOUkFCVERTIixuYW1lOiJGSU5SQSBCVERTIixkZXNjOm8uaTE4bmV4dChudWxsLHZvaWQgMCxvKDI0MjgyNikpLGZsYWc6InVzYSIsZ3JvdXA6Ik5vcnRoIEFtZXJpY2EiLGNvdW50cnk6InVzIixwcm92aWRlcklkOiIiLHNlYXJjaFRlcm1zOltvLmkxOG5leHQobnVsbCx2b2lkIDAsbygzMDExMTcpKSxvLmkxOG5leHQobnVsbCx2b2lkIDAsbygyNzg3ODgpKV19LHt2YWx1ZToiT1BSQSIsbmFtZToiT1BSQSIsZGVzYzpvLmkxOG5leHQobnVsbCx2b2lkIDAsbyg1OTQxNzApKSxmbGFnOiJ1c2EiLGdyb3VwOiJOb3J0aCBBbWVyaWNhIixjb3VudHJ5OiJ1cyIscHJvdmlkZXJJZDoiIixzZWFyY2hUZXJtczpbby5pMThuZXh0KG51bGwsdm9pZCAwLG8oMzAxMTE3KSksby5pMThuZXh0KG51bGwsdm9pZCAwLG8oMjc4Nzg4KSldfSx7dmFsdWU6IkZJTlJBQVREUyIsbmFtZToiRklOUkEgQVREUyIsZGVzYzpvLmkxOG5leHQobnVsbCx2b2lkIDAsbyg4OTU1MTYpKSxmbGFnOiJ1c2EiLGdyb3VwOiJOb3J0aCBBbWVyaWNhIixjb3VudHJ5OiJ1cyIscHJvdmlkZXJJZDoiIixzZWFyY2hUZXJtczpbby5pMThuZXh0KG51bGwsdm9pZCAwLG8oMzAxMTE3KSksby5pMThuZXh0KG51bGwsdm9pZCAwLG8oMjc4Nzg4KSldfSx7dmFsdWU6IkNCT0VFVSIsbmFtZToiQ0JPRSBFVSIsZGVzYzpvLmkxOG5leHQobnVsbCx2b2lkIDAsbygzODg4NTYpKSxmbGFnOiJldXJvcGUiLGdyb3VwOiJFdXJvcGUiLGNvdW50cnk6ImV1Iixwcm92aWRlcklkOiIifSx7dmFsdWU6IkNCT1QiLG5hbWU6IkNCT1QiLGRlc2M6by5pMThuZXh0KG51bGwsdm9pZCAwLG8oNTAyNzIxKSksZmxhZzoidXNhIixncm91cDoiTm9ydGggQW1lcmljYSIsY291bnRyeToidXMiLHByaW9yaXR5SW5Hcm91cDo4LHByb3ZpZGVySWQ6IiIsc2VhcmNoVGVybXM6W28uaTE4bmV4dChudWxsLHZvaWQgMCxvKDMwMTExNykpLG8uaTE4bmV4dChudWxsLHZvaWQgMCxvKDI3ODc4OCkpXX0se3ZhbHVlOiJDTUUiLG5hbWU6IkNNRSBHTE9CRVgiLGRlc2M6by5pMThuZXh0KG51bGwsdm9pZCAwLG8oMzcxNjY1KSksZmxhZzoidXNhIixncm91cDoiTm9ydGggQW1lcmljYSIsY291bnRyeToidXMiLHByaW9yaXR5SW5Hcm91cDo5LHByb3ZpZGVySWQ6IiIsc2VhcmNoVGVybXM6W28uaTE4bmV4dChudWxsLHZvaWQgMCxvKDMwMTExNykpLG8uaTE4bmV4dChudWxsLHZvaWQgMCxvKDI3ODc4OCkpXX0se3ZhbHVlOiJDT01FWCIsbmFtZToiQ09NRVgiLGRlc2M6by5pMThuZXh0KG51bGwsdm9pZCAwLG8oMjkzOTg2KSksZmxhZzoidXNhIixncm91cDoiTm9ydGggQW1lcmljYSIsY291bnRyeToidXMiLHByaW9yaXR5SW5Hcm91cDoxMCxwcm92aWRlcklkOiIiLHNlYXJjaFRlcm1zOltvLmkxOG5leHQobnVsbCx2b2lkIDAsbygzMDExMTcpKSxvLmkxOG5leHQobnVsbCx2b2lkIDAsbygyNzg3ODgpKV19LHt2YWx1ZToiTllNRVgiLG5hbWU6Ik5ZTUVYIixkZXNjOm8uaTE4bmV4dChudWxsLHZvaWQgMCxvKDY4MTYxNykpLGZsYWc6InVzYSIsZ3JvdXA6Ik5vcnRoIEFtZXJpY2EiLGNvdW50cnk6InVzIixwcmlvcml0eUluR3JvdXA6MTEscHJvdmlkZXJJZDoiIixzZWFyY2hUZXJtczpbby5pMThuZXh0KG51bGwsdm9pZCAwLG8oMzAxMTE3KSksby5pMThuZXh0KG51bGwsdm9pZCAwLG8oMjc4Nzg4KSldfSx7dmFsdWU6IklDRVVTIixuYW1lOiJJQ0VVUyIsZGVzYzpvLmkxOG5leHQobnVsbCx2b2lkIDAsbyg1Mjg4MTApKSxmbGFnOiJ1c2EiLGdyb3VwOiJOb3J0aCBBbWVyaWNhIixjb3VudHJ5OiJ1cyIscHJpb3JpdHlJbkdyb3VwOjEyLHByb3ZpZGVySWQ6IiIsCnNlYXJjaFRlcm1zOltvLmkxOG5leHQobnVsbCx2b2lkIDAsbygzMDExMTcpKSxvLmkxOG5leHQobnVsbCx2b2lkIDAsbygyNzg3ODgpKV19LHt2YWx1ZToiSUNFVVNDQSIsbmFtZToiSUNFVVNDQSIsZGVzYzpvLmkxOG5leHQobnVsbCx2b2lkIDAsbyg1NDU2MTYpKSxmbGFnOiJ1c2EiLGdyb3VwOiJOb3J0aCBBbWVyaWNhIixjb3VudHJ5OiJ1cyIscHJvdmlkZXJJZDoiIixzZWFyY2hUZXJtczpbby5pMThuZXh0KG51bGwsdm9pZCAwLG8oMzAxMTE3KSksby5pMThuZXh0KG51bGwsdm9pZCAwLG8oMjc4Nzg4KSldfSx7dmFsdWU6IkNTRSIsbmFtZToiQ1NFIixkZXNjOm8uaTE4bmV4dChudWxsLHZvaWQgMCxvKDI5MzkzMykpLGZsYWc6ImNhbmFkYSIsZ3JvdXA6Ik5vcnRoIEFtZXJpY2EiLGNvdW50cnk6ImNhIixwcmlvcml0eUluR3JvdXA6MTMscHJvdmlkZXJJZDoiIixzZWFyY2hUZXJtczpbby5pMThuZXh0KG51bGwsdm9pZCAwLG8oMTUxODkpKV19LHt2YWx1ZToiQ0JPRV9DQU5BREEiLG5hbWU6IkNib2UgQ2FuYWRhIixkZXNjOm8uaTE4bmV4dChudWxsLHZvaWQgMCxvKDk0NTAxOCkpLGZsYWc6ImNhbmFkYSIsZ3JvdXA6Ik5vcnRoIEFtZXJpY2EiLGNvdW50cnk6ImNhIixwcmlvcml0eUluR3JvdXA6MTQscHJvdmlkZXJJZDoiIixzZWFyY2hUZXJtczpbby5pMThuZXh0KG51bGwsdm9pZCAwLG8oMTUxODkpKV19LHt2YWx1ZToiVFNYIixuYW1lOiJUU1giLGRlc2M6by5pMThuZXh0KG51bGwsdm9pZCAwLG8oODk1MjQ2KSksZmxhZzoiY2FuYWRhIixncm91cDoiTm9ydGggQW1lcmljYSIsY291bnRyeToiY2EiLHByaW9yaXR5SW5Hcm91cDoxNSxwcm92aWRlcklkOiIiLHNlYXJjaFRlcm1zOltvLmkxOG5leHQobnVsbCx2b2lkIDAsbygxNTE4OSkpXX0se3ZhbHVlOiJUU1hWIixuYW1lOiJUU1hWIixkZXNjOm8uaTE4bmV4dChudWxsLHZvaWQgMCxvKDE4MzUyNCkpLGZsYWc6ImNhbmFkYSIsZ3JvdXA6Ik5vcnRoIEFtZXJpY2EiLGNvdW50cnk6ImNhIixwcmlvcml0eUluR3JvdXA6MTYscHJvdmlkZXJJZDoiIixzZWFyY2hUZXJtczpbby5pMThuZXh0KG51bGwsdm9pZCAwLG8oMTUxODkpKV19LHt2YWx1ZToiVE1YIixuYW1lOiJUTVgiLGRlc2M6by5pMThuZXh0KG51bGwsdm9pZCAwLG8oMjg1NDg0KSksZmxhZzoiY2FuYWRhIixncm91cDoiTm9ydGggQW1lcmljYSIsY291bnRyeToiY2EiLHByb3ZpZGVySWQ6IiIsc2VhcmNoVGVybXM6W28uaTE4bmV4dChudWxsLHZvaWQgMCxvKDE1MTg5KSldfSx7dmFsdWU6IlJVUyIsbmFtZToiUlVTIixkZXNjOm8uaTE4bmV4dChudWxsLHZvaWQgMCxvKDEyNzMzNikpLGZsYWc6InJ1c3NpYSIsZ3JvdXA6IkV1cm9wZSIsY291bnRyeToicnUiLHByb3ZpZGVySWQ6IiIsc2VhcmNoVGVybXM6W28uaTE4bmV4dChudWxsLHZvaWQgMCxvKDM5MDU5OCkpXX0se3ZhbHVlOiJNWVgiLG5hbWU6Ik1ZWCIsZGVzYzpvLmkxOG5leHQobnVsbCx2b2lkIDAsbyg5NjUwNjgpKSxmbGFnOiJtYWxheXNpYSIsZ3JvdXA6IkFzaWEgLyBQYWNpZmljIixjb3VudHJ5OiJteSIscHJvdmlkZXJJZDoiIixzZWFyY2hUZXJtczpbby5pMThuZXh0KG51bGwsdm9pZCAwLG8oNjI3OTY3KSldfSx7dmFsdWU6IkZUU0VNWVgiLG5hbWU6IkZUU0UiLGRlc2M6by5pMThuZXh0KG51bGwsdm9pZCAwLG8oODU1NDc5KSksZmxhZzoibWFsYXlzaWEiLGdyb3VwOiJBc2lhIC8gUGFjaWZpYyIsY291bnRyeToibXkiLHByb3ZpZGVySWQ6IiIsc2VhcmNoVGVybXM6W28uaTE4bmV4dChudWxsLHZvaWQgMCxvKDYyNzk2NykpXX0se3ZhbHVlOiJIT1NFIixuYW1lOiJIT1NFIixkZXNjOm8uaTE4bmV4dChudWxsLHZvaWQgMCxvKDI4OTU2OSkpLGZsYWc6InZpZXRuYW0iLGdyb3VwOiJBc2lhIC8gUGFjaWZpYyIsY291bnRyeToidm4iLHByb3ZpZGVySWQ6IiIsc2VhcmNoVGVybXM6W28uaTE4bmV4dChudWxsLHZvaWQgMCxvKDg1MjIxKSldfSx7dmFsdWU6IkhOWCIsbmFtZToiSE5YIixkZXNjOm8uaTE4bmV4dChudWxsLHZvaWQgMCxvKDEwNTg1NSkpLGZsYWc6InZpZXRuYW0iLGdyb3VwOiJBc2lhIC8gUGFjaWZpYyIsY291bnRyeToidm4iLHByb3ZpZGVySWQ6IiIsc2VhcmNoVGVybXM6W28uaTE4bmV4dChudWxsLHZvaWQgMCxvKDg1MjIxKSldfSx7dmFsdWU6IlVQQ09NIixuYW1lOiJITlggVVBDb00iLGRlc2M6by5pMThuZXh0KG51bGwsdm9pZCAwLG8oOTkxNDUpKSxmbGFnOiJ2aWV0bmFtIixncm91cDoiQXNpYSAvIFBhY2lmaWMiLGNvdW50cnk6InZuIixwcm92aWRlcklkOiIiLHNlYXJjaFRlcm1zOltvLmkxOG5leHQobnVsbCx2b2lkIDAsbyg4NTIyMSkpXX0se3ZhbHVlOiJDU0VMSyIsbmFtZToiQ1NFIixkZXNjOm8uaTE4bmV4dChudWxsLHZvaWQgMCxvKDUzNTY4NCkpLGZsYWc6InNyaV9sYW5rYSIsZ3JvdXA6IkFzaWEgLyBQYWNpZmljIixjb3VudHJ5OiJsayIscHJvdmlkZXJJZDoiIixzZWFyY2hUZXJtczpbby5pMThuZXh0KG51bGwsdm9pZCAwLG8oODA0NzY2KSldfSx7dmFsdWU6IkJJVFNUQU1QIixuYW1lOiJCaXRzdGFtcCIsZGVzYzpvLmkxOG5leHQobnVsbCx2b2lkIDAsbyg5NDY2NjYpKSxmbGFnOiJiaXRjb2luIixncm91cDoiQ3J5cHRvY3VycmVuY3kiLGNvdW50cnk6IiIsc291cmNlSWQ6IkJJVFNUQU1QIixwcm92aWRlcklkOiJiaXRzdGFtcCJ9LHt2YWx1ZToiQUNUSVZUUkFERVMiLG5hbWU6IkFjdGl2VHJhZGVzIixkZXNjOm8uaTE4bmV4dChudWxsLHZvaWQgMCxvKDQ4NzY5KSksZmxhZzoiZm9yZXgiLGdyb3VwOiJGb3JleCIsY291bnRyeToiIixzb3VyY2VJZDoiQUNUSVZUUkFERVMiLHByb3ZpZGVySWQ6ImFjdGl2dHJhZGVzIn0se3ZhbHVlOiJCMlBSSU1FIixuYW1lOiJCMlBSSU1FIixkZXNjOm8uaTE4bmV4dChudWxsLHZvaWQgMCxvKDk0ODczNCkpLGZsYWc6ImZvcmV4Iixncm91cDoiRm9yZXgiLGNvdW50cnk6IiIsc291cmNlSWQ6IkIyUFJJTUUiLHByb3ZpZGVySWQ6ImIycHJpbWUifSx7dmFsdWU6IkJMQUNLQlVMTCIsbmFtZToiQmxhY2tCdWxsIE1hcmtldHMiLGRlc2M6by5pMThuZXh0KG51bGwsdm9pZCAwLG8oOTEyODQxKSksZmxhZzoiZm9yZXgiLGdyb3VwOiJGb3JleCIsCmNvdW50cnk6IiIsc291cmNlSWQ6IkJMQUNLQlVMTCIscHJvdmlkZXJJZDoiYmxhY2tidWxsbWFya2V0cyJ9LHt2YWx1ZToiQkxVRUJFUlJZIixuYW1lOiJCbHVlYmVycnkiLGRlc2M6by5pMThuZXh0KG51bGwsdm9pZCAwLG8oOTAyNDMzKSksZmxhZzoiZm9yZXgiLGdyb3VwOiJGb3JleCIsY291bnRyeToiIixzb3VyY2VJZDoiQkxVRUJFUlJZIixwcm92aWRlcklkOiJibHVlYmVycnkifSx7dmFsdWU6IkNNQ01BUktFVFMiLG5hbWU6IkNNQyBNYXJrZXRzIixkZXNjOm8uaTE4bmV4dChudWxsLHZvaWQgMCxvKDQ5NzExMCkpLGZsYWc6ImZvcmV4Iixncm91cDoiRm9yZXgiLGNvdW50cnk6IiIsc291cmNlSWQ6IkNNQ01BUktFVFMiLHByb3ZpZGVySWQ6ImNtY21hcmtldHMifSx7dmFsdWU6IkNYTSIsbmFtZToiQ1hNIixkZXNjOm8uaTE4bmV4dChudWxsLHZvaWQgMCxvKDQ1NDk3KSksZmxhZzoiZm9yZXgiLGdyb3VwOiJGb3JleCIsY291bnRyeToiIixzb3VyY2VJZDoiQ1hNIixwcm92aWRlcklkOiJjeG0ifSx7dmFsdWU6IkRBUldJTkVYIixuYW1lOiJEYXJ3aW5leCIsZGVzYzpvLmkxOG5leHQobnVsbCx2b2lkIDAsbygxMzU5NjUpKSxmbGFnOiJmb3JleCIsZ3JvdXA6IkZvcmV4Iixjb3VudHJ5OiIiLHNvdXJjZUlkOiJEQVJXSU5FWCIscHJvdmlkZXJJZDoiZGFyd2luZXgifSx7dmFsdWU6IkRFUklWIixuYW1lOiJEZXJpdiIsZGVzYzpvLmkxOG5leHQobnVsbCx2b2lkIDAsbygzMDI4NjkpKSxmbGFnOiJmb3JleCIsZ3JvdXA6IkZvcmV4Iixjb3VudHJ5OiIiLHNvdXJjZUlkOiJERVJJViIscHJvdmlkZXJJZDoiZGVyaXYifSx7dmFsdWU6IkZQTUFSS0VUUyIsbmFtZToiRlAgTWFya2V0cyIsZGVzYzpvLmkxOG5leHQobnVsbCx2b2lkIDAsbyg2ODU2MDYpKSxmbGFnOiJmb3JleCIsZ3JvdXA6IkZvcmV4Iixjb3VudHJ5OiIiLHNvdXJjZUlkOiJGUE1BUktFVFMiLHByb3ZpZGVySWQ6ImZwbWFya2V0cyJ9LHt2YWx1ZToiRlVTSU9OTUFSS0VUUyIsbmFtZToiRnVzaW9uIE1hcmtldHMiLGRlc2M6by5pMThuZXh0KG51bGwsdm9pZCAwLG8oMTIwMzE5KSksZmxhZzoiZm9yZXgiLGdyb3VwOiJGb3JleCIsY291bnRyeToiIixzb3VyY2VJZDoiRlVTSU9OTUFSS0VUUyIscHJvdmlkZXJJZDoiZnVzaW9ubWFya2V0cyJ9LHt2YWx1ZToiR09NQVJLRVRTIixuYW1lOiJHTyBNYXJrZXRzIixkZXNjOm8uaTE4bmV4dChudWxsLHZvaWQgMCxvKDU0OTc4MSkpLGZsYWc6ImZvcmV4Iixncm91cDoiRm9yZXgiLGNvdW50cnk6IiIsc291cmNlSWQ6IkdPTUFSS0VUUyIscHJvdmlkZXJJZDoiZ29tYXJrZXRzIn0se3ZhbHVlOiJJRyIsbmFtZToiSUciLGRlc2M6by5pMThuZXh0KG51bGwsdm9pZCAwLG8oMTU2OTY0KSksZmxhZzoiZm9yZXgiLGdyb3VwOiJGb3JleCIsY291bnRyeToiIixzb3VyY2VJZDoiSUciLHByb3ZpZGVySWQ6ImlnIn0se3ZhbHVlOiJUQVNUWUZYIixuYW1lOiJ0YXN0eWZ4IixkZXNjOm8uaTE4bmV4dChudWxsLHZvaWQgMCxvKDc2NDMyMSkpLGZsYWc6ImZvcmV4Iixncm91cDoiRm9yZXgiLGNvdW50cnk6IiIscHJvdmlkZXJJZDoidGFzdHlmeCJ9LHt2YWx1ZToiVEhJTktNQVJLRVRTIixuYW1lOiJUaGlua01hcmtldHMiLGRlc2M6by5pMThuZXh0KG51bGwsdm9pZCAwLG8oNTE5MTkyKSksZmxhZzoiZm9yZXgiLGdyb3VwOiJGb3JleCIsY291bnRyeToiIixzb3VyY2VJZDoiVEhJTktNQVJLRVRTIixwcm92aWRlcklkOiJ0aGlua21hcmtldHMifSx7dmFsdWU6IlRJQ0tNSUxMIixuYW1lOiJUaWNrbWlsbCIsZGVzYzpvLmkxOG5leHQobnVsbCx2b2lkIDAsbyg5OTgwNDQpKSxmbGFnOiJmb3JleCIsZ3JvdXA6IkZvcmV4Iixjb3VudHJ5OiIiLHNvdXJjZUlkOiJUSUNLTUlMTCIscHJvdmlkZXJJZDoidGlja21pbGwifSx7dmFsdWU6IlRSQURFTkFUSU9OIixuYW1lOiJUcmFkZSBOYXRpb24iLGRlc2M6by5pMThuZXh0KG51bGwsdm9pZCAwLG8oODAwMDA1KSksZmxhZzoiZm9yZXgiLGdyb3VwOiJGb3JleCIsY291bnRyeToiIixzb3VyY2VJZDoiVFJBREVOQVRJT04iLHByb3ZpZGVySWQ6InRyYWRlbmF0aW9uIn0se3ZhbHVlOiJUUklWRSIsbmFtZToiVHJpdmUiLGRlc2M6by5pMThuZXh0KG51bGwsdm9pZCAwLG8oMTY1NDY1KSksZmxhZzoiRm9yZXgiLGdyb3VwOiJGb3JleCIsY291bnRyeToiIixzb3VyY2VJZDoiVFJJVkUiLHByb3ZpZGVySWQ6InRyaXZlIn0se3ZhbHVlOiJWQU5UQUdFIixuYW1lOiJWYW50YWdlIixkZXNjOm8uaTE4bmV4dChudWxsLHZvaWQgMCxvKDQ2MjUxNykpLGZsYWc6ImZvcmV4Iixncm91cDoiRm9yZXgiLGNvdW50cnk6IiIsc291cmNlSWQ6IlZBTlRBR0UiLHByb3ZpZGVySWQ6InZhbnRhZ2VmeCJ9LHt2YWx1ZToiVkVMT0NJVFkiLG5hbWU6IlZlbG9jaXR5IFRyYWRlIixkZXNjOm8uaTE4bmV4dChudWxsLHZvaWQgMCxvKDY4MDc5KSksZmxhZzoiZm9yZXgiLGdyb3VwOiJGb3JleCIsY291bnRyeToiIixwcm92aWRlcklkOiJ2ZWxvY2l0eXRyYWRlIn0se3ZhbHVlOiJGWCIsbmFtZToiRlhDTSIsZGVzYzpvLmkxOG5leHQobnVsbCx2b2lkIDAsbyg5OTI3MjYpKSxmbGFnOiJmb3JleCIsZ3JvdXA6IkZvcmV4Iixjb3VudHJ5OiIiLHByb3ZpZGVySWQ6ImZ4Y20ifSx7dmFsdWU6IkZYUFJPIixuYW1lOiJGeFBybyIsZGVzYzpvLmkxOG5leHQobnVsbCx2b2lkIDAsbygzNjE0MDApKSxmbGFnOiJmb3JleCIsZ3JvdXA6IkZvcmV4Iixjb3VudHJ5OiIiLHNvdXJjZUlkOiJGWFBSTyIscHJvdmlkZXJJZDoiZnhwcm8ifSx7dmFsdWU6IkZYVEYiLG5hbWU6IkZYVEYiLGRlc2M6by5pMThuZXh0KG51bGwsdm9pZCAwLG8oMTE0MTE1KSksZmxhZzoiZm9yZXgiLGdyb3VwOiJGb3JleCIsY291bnRyeToiIixzb3VyY2VJZDoiRlhURiIscHJvdmlkZXJJZDoiZnh0ZiJ9LHt2YWx1ZToiRUlHSFRDQVAiLG5hbWU6IkVpZ2h0Y2FwIixkZXNjOm8uaTE4bmV4dChudWxsLHZvaWQgMCxvKDQ1OTQ1OSkpLGZsYWc6ImZvcmV4Iixncm91cDoiRm9yZXgiLGNvdW50cnk6IiIsc291cmNlSWQ6IkVJR0hUQ0FQIixwcm92aWRlcklkOiJlaWdodGNhcCJ9LHt2YWx1ZToiRVJSQU5URSIsbmFtZToiRXJyYW50ZSIsCmRlc2M6by5pMThuZXh0KG51bGwsdm9pZCAwLG8oMjM2ODgpKSxmbGFnOiJmb3JleCIsZ3JvdXA6IkZvcmV4Iixjb3VudHJ5OiIiLHNvdXJjZUlkOiJFUlJBTlRFIixwcm92aWRlcklkOiJlcnJhbnRlIn0se3ZhbHVlOiJFU0FGWCIsbmFtZToiRXNhRlgiLGRlc2M6by5pMThuZXh0KG51bGwsdm9pZCAwLG8oNTA4ODQ2KSksZmxhZzoiZm9yZXgiLGdyb3VwOiJGb3JleCIsY291bnRyeToiIixwcm92aWRlcklkOiJlc2FmeCJ9LHt2YWx1ZToiT1NNQU5MSUZYIixuYW1lOiJPc21hbmxpIEZYIixkZXNjOm8uaTE4bmV4dChudWxsLHZvaWQgMCxvKDQzOTU0OSkpLGZsYWc6ImZvcmV4Iixncm91cDoiRm9yZXgiLGNvdW50cnk6IiIscHJvdmlkZXJJZDoib3NtYW5saWZ4In0se3ZhbHVlOiJCVENFIixuYW1lOiJCVEMtZSIsZGVzYzpvLmkxOG5leHQobnVsbCx2b2lkIDAsbyg4MzI1NzQpKSxmbGFnOiJiaXRjb2luIixncm91cDoiQ3J5cHRvY3VycmVuY3kiLGhpZGVJblN5bWJvbFNlYXJjaDohMCxjb3VudHJ5OiIiLHByb3ZpZGVySWQ6IiJ9LHt2YWx1ZToiSE9ORVlTV0FQIixuYW1lOiJIb25leXN3YXAgdjIgKEdub3NpcykiLGRlc2M6by5pMThuZXh0KG51bGwsdm9pZCAwLG8oNDA2NzMpKSxmbGFnOiJiaXRjb2luIixncm91cDoiQ3J5cHRvY3VycmVuY3kiLGNvdW50cnk6IiIsc291cmNlSWQ6IkhPTkVZU1dBUCIscHJvdmlkZXJJZDoiaG9uZXlzd2FwIn0se3ZhbHVlOiJIWVBFUkxJUVVJRCIsbmFtZToiSHlwZXJsaXF1aWQgKEh5cGVybGlxdWlkKSIsZGVzYzpvLmkxOG5leHQobnVsbCx2b2lkIDAsbygyMzIzMDEpKSxmbGFnOiJiaXRjb2luIixncm91cDoiQ3J5cHRvY3VycmVuY3kiLGNvdW50cnk6IiIsc291cmNlSWQ6IkhZUEVSTElRVUlEIixwcm92aWRlcklkOiJoeXBlcmxpcXVpZCJ9LHt2YWx1ZToiSElQM1hZWiIsbmFtZToiSHlwZXJsaXF1aWQgKFhZWiBISVAtMykiLGRlc2M6by5pMThuZXh0KG51bGwsdm9pZCAwLG8oNjMyMzAzKSksZmxhZzoiYml0Y29pbiIsZ3JvdXA6IkNyeXB0b2N1cnJlbmN5Iixjb3VudHJ5OiIiLHNvdXJjZUlkOiJISVAzWFlaIixwcm92aWRlcklkOiJoeXBlcmxpcXVpZCJ9LHt2YWx1ZToiSElQM1BBUkEiLG5hbWU6Ikh5cGVybGlxdWlkIChQQVJBIEhJUC0zKSIsZGVzYzpvLmkxOG5leHQobnVsbCx2b2lkIDAsbyg2MzQxODUpKSxmbGFnOiJiaXRjb2luIixncm91cDoiQ3J5cHRvY3VycmVuY3kiLGNvdW50cnk6IiIsc291cmNlSWQ6IkhJUDNQQVJBIixwcm92aWRlcklkOiJoeXBlcmxpcXVpZCJ9LHt2YWx1ZToiQlNFIixuYW1lOiJCU0UiLGRlc2M6by5pMThuZXh0KG51bGwsdm9pZCAwLG8oOTQ1NzYwKSksZmxhZzoiaW5kaWEiLGdyb3VwOiJBc2lhIC8gUGFjaWZpYyIsY291bnRyeToiaW4iLHByb3ZpZGVySWQ6IiIsc2VhcmNoVGVybXM6W28uaTE4bmV4dChudWxsLHZvaWQgMCxvKDM3MjUyMCkpXX0se3ZhbHVlOiJNU0VJIixuYW1lOiJNU0UiLGRlc2M6by5pMThuZXh0KG51bGwsdm9pZCAwLG8oMzE5ODY0KSksZmxhZzoiaW5kaWEiLGdyb3VwOiJBc2lhIC8gUGFjaWZpYyIsY291bnRyeToiaW4iLHByb3ZpZGVySWQ6IiIsc2VhcmNoVGVybXM6W28uaTE4bmV4dChudWxsLHZvaWQgMCxvKDM3MjUyMCkpXX0se3ZhbHVlOiJOWU1FWF9NSU5JIixuYW1lOiJOWU1FWCIsZGVzYzpvLmkxOG5leHQobnVsbCx2b2lkIDAsbyg2ODE2MTcpKSxmbGFnOiJ1c2EiLGdyb3VwOiJOb3J0aCBBbWVyaWNhIixoaWRlSW5TeW1ib2xTZWFyY2g6ITAsY291bnRyeToidXMiLHByb3ZpZGVySWQ6IiIsc2VhcmNoVGVybXM6W28uaTE4bmV4dChudWxsLHZvaWQgMCxvKDMwMTExNykpLG8uaTE4bmV4dChudWxsLHZvaWQgMCxvKDI3ODc4OCkpXX0se3ZhbHVlOiJDT01FWF9NSU5JIixuYW1lOiJDT01FWCIsZGVzYzpvLmkxOG5leHQobnVsbCx2b2lkIDAsbygyOTM5ODYpKSxmbGFnOiJ1c2EiLGdyb3VwOiJOb3J0aCBBbWVyaWNhIixoaWRlSW5TeW1ib2xTZWFyY2g6ITAsY291bnRyeToidXMiLHByb3ZpZGVySWQ6IiIsc2VhcmNoVGVybXM6W28uaTE4bmV4dChudWxsLHZvaWQgMCxvKDMwMTExNykpLG8uaTE4bmV4dChudWxsLHZvaWQgMCxvKDI3ODc4OCkpXX0se3ZhbHVlOiJJQ0VFTkRFWCIsbmFtZToiSUNFRU5ERVgiLGRlc2M6by5pMThuZXh0KG51bGwsdm9pZCAwLG8oMjE5ODMzKSksZmxhZzoiZXVyb3BlIixncm91cDoiRXVyb3BlIixjb3VudHJ5OiJldSIscHJvdmlkZXJJZDoiIn0se3ZhbHVlOiJJQ0VFVVJGSU4iLG5hbWU6IklDRUVVUiIsZGVzYzpvLmkxOG5leHQobnVsbCx2b2lkIDAsbyg5NzU1NTgpKSxmbGFnOiJldXJvcGUiLGdyb3VwOiJFdXJvcGUiLGNvdW50cnk6ImV1Iixwcm92aWRlcklkOiIifSx7dmFsdWU6IklDRUVVUkNPTU0iLG5hbWU6IklDRUVVUiIsZGVzYzpvLmkxOG5leHQobnVsbCx2b2lkIDAsbyg2NTU1MjcpKSxmbGFnOiJldXJvcGUiLGdyb3VwOiJFdXJvcGUiLGNvdW50cnk6ImV1Iixwcm92aWRlcklkOiIifSx7dmFsdWU6Ik5TRSIsbmFtZToiTlNFIixkZXNjOm8uaTE4bmV4dChudWxsLHZvaWQgMCxvKDU4MDcxKSksZmxhZzoiaW5kaWEiLGdyb3VwOiJBc2lhIC8gUGFjaWZpYyIsY291bnRyeToiaW4iLHByb3ZpZGVySWQ6IiIsc2VhcmNoVGVybXM6W28uaTE4bmV4dChudWxsLHZvaWQgMCxvKDM3MjUyMCkpXX0se3ZhbHVlOiJNQ1giLG5hbWU6Ik1DWCIsZGVzYzpvLmkxOG5leHQobnVsbCx2b2lkIDAsbyg1MDI3OCkpLGZsYWc6ImluZGlhIixncm91cDoiQXNpYSAvIFBhY2lmaWMiLGNvdW50cnk6ImluIixwcm92aWRlcklkOiIiLHNlYXJjaFRlcm1zOltvLmkxOG5leHQobnVsbCx2b2lkIDAsbygzNzI1MjApKV19LHt2YWx1ZToiTkNERVgiLG5hbWU6Ik5DREVYIixkZXNjOm8uaTE4bmV4dChudWxsLHZvaWQgMCxvKDU0MTI1NSkpLGZsYWc6ImluZGlhIixncm91cDoiQXNpYSAvIFBhY2lmaWMiLGNvdW50cnk6ImluIixwcm92aWRlcklkOiIiLHNlYXJjaFRlcm1zOltvLmkxOG5leHQobnVsbCx2b2lkIDAsbygzNzI1MjApKV19LHt2YWx1ZToiS0NCVCIsbmFtZToiS0NCVCIsZGVzYzpvLmkxOG5leHQobnVsbCx2b2lkIDAsbygyNTgxOTQpKSxmbGFnOiJ1c2EiLApoaWRlSW5TeW1ib2xTZWFyY2g6ITAsZ3JvdXA6Ik5vcnRoIEFtZXJpY2EiLGNvdW50cnk6InVzIixwcm92aWRlcklkOiIiLHNlYXJjaFRlcm1zOltvLmkxOG5leHQobnVsbCx2b2lkIDAsbygzMDExMTcpKSxvLmkxOG5leHQobnVsbCx2b2lkIDAsbygyNzg3ODgpKV19LHt2YWx1ZToiQ0JPVF9NSU5JIixuYW1lOiJDQk9UIixkZXNjOm8uaTE4bmV4dChudWxsLHZvaWQgMCxvKDUwMjcyMSkpLGZsYWc6InVzYSIsZ3JvdXA6Ik5vcnRoIEFtZXJpY2EiLGhpZGVJblN5bWJvbFNlYXJjaDohMCxjb3VudHJ5OiJ1cyIscHJvdmlkZXJJZDoiIixzZWFyY2hUZXJtczpbby5pMThuZXh0KG51bGwsdm9pZCAwLG8oMzAxMTE3KSksby5pMThuZXh0KG51bGwsdm9pZCAwLG8oMjc4Nzg4KSldfSx7dmFsdWU6IktSQUtFTiIsbmFtZToiS3Jha2VuIixkZXNjOm8uaTE4bmV4dChudWxsLHZvaWQgMCxvKDE5MDEyMykpLGZsYWc6ImJpdGNvaW4iLGdyb3VwOiJDcnlwdG9jdXJyZW5jeSIsY291bnRyeToiIixzb3VyY2VJZDoiS1JBS0VOIixwcm92aWRlcklkOiJrcmFrZW4ifSx7dmFsdWU6IktVQ09JTiIsbmFtZToiS3VDb2luIixkZXNjOm8uaTE4bmV4dChudWxsLHZvaWQgMCxvKDQwODQwOCkpLGZsYWc6ImJpdGNvaW4iLGdyb3VwOiJDcnlwdG9jdXJyZW5jeSIsY291bnRyeToiIixzb3VyY2VJZDoiS1VDT0lOIixwcm92aWRlcklkOiJrdWNvaW4ifSx7dmFsdWU6IkxVTkFSQ1JVU0giLG5hbWU6Ikx1bmFyQ3J1c2giLGRlc2M6by5pMThuZXh0KG51bGwsdm9pZCAwLG8oMzIzODk0KSksZmxhZzoiYml0Y29pbiIsZ3JvdXA6IkNyeXB0b2N1cnJlbmN5Iixjb3VudHJ5OiIiLHNvdXJjZUlkOiJMVU5BUkNSVVNIIixwcm92aWRlcklkOiJsdW5hcmNydXNoIn0se3ZhbHVlOiJYRVhDSEFOR0UiLG5hbWU6InhFeGNoYW5nZSIsZGVzYzpvLmkxOG5leHQobnVsbCx2b2lkIDAsbyg5NDM0OTkpKSxmbGFnOiJiaXRjb2luIixncm91cDoiQ3J5cHRvY3VycmVuY3kiLGNvdW50cnk6IiIsc291cmNlSWQ6IlhFWENIQU5HRSIscHJvdmlkZXJJZDoieGV4Y2hhbmdlIn0se3ZhbHVlOiJYVENPTSIsbmFtZToiWFQuY29tIixkZXNjOm8uaTE4bmV4dChudWxsLHZvaWQgMCxvKDY4NjExNCkpLGZsYWc6ImJpdGNvaW4iLGdyb3VwOiJDcnlwdG9jdXJyZW5jeSIsY291bnRyeToiIixzb3VyY2VJZDoiWFRDT00iLHByb3ZpZGVySWQ6Inh0Y29tIn0se3ZhbHVlOiJDTUVfTUlOSSIsbmFtZToiQ01FIixkZXNjOm8uaTE4bmV4dChudWxsLHZvaWQgMCxvKDM3MTY2NSkpLGZsYWc6InVzYSIsZ3JvdXA6Ik5vcnRoIEFtZXJpY2EiLGhpZGVJblN5bWJvbFNlYXJjaDohMCxjb3VudHJ5OiJ1cyIscHJvdmlkZXJJZDoiIixzZWFyY2hUZXJtczpbby5pMThuZXh0KG51bGwsdm9pZCAwLG8oMzAxMTE3KSksby5pMThuZXh0KG51bGwsdm9pZCAwLG8oMjc4Nzg4KSldfSx7dmFsdWU6IkRKIixuYW1lOiJESiIsZGVzYzpvLmkxOG5leHQobnVsbCx2b2lkIDAsbygzMjI0NzEpKSxmbGFnOiJ1c2EiLGhpZGVJblN5bWJvbFNlYXJjaDohMCxncm91cDoiTm9ydGggQW1lcmljYSIsY291bnRyeToidXMiLHByb3ZpZGVySWQ6IiIsc2VhcmNoVGVybXM6W28uaTE4bmV4dChudWxsLHZvaWQgMCxvKDMwMTExNykpLG8uaTE4bmV4dChudWxsLHZvaWQgMCxvKDI3ODc4OCkpXX0se3ZhbHVlOiJTUCIsbmFtZToiU1AiLGRlc2M6by5pMThuZXh0KG51bGwsdm9pZCAwLG8oMTQxOTgpKSxmbGFnOiJ1c2EiLGhpZGVJblN5bWJvbFNlYXJjaDohMCxncm91cDoiTm9ydGggQW1lcmljYSIsY291bnRyeToidXMiLHByb3ZpZGVySWQ6IiIsc2VhcmNoVGVybXM6W28uaTE4bmV4dChudWxsLHZvaWQgMCxvKDMwMTExNykpLG8uaTE4bmV4dChudWxsLHZvaWQgMCxvKDI3ODc4OCkpXX0se3ZhbHVlOiJCVENDSElOQSIsbmFtZToiQlRDIENoaW5hIixkZXNjOm8uaTE4bmV4dChudWxsLHZvaWQgMCxvKDQ0NzIyNCkpLGZsYWc6ImJpdGNvaW4iLGdyb3VwOiJDcnlwdG9jdXJyZW5jeSIsaGlkZUluU3ltYm9sU2VhcmNoOiEwLGNvdW50cnk6IiIscHJvdmlkZXJJZDoiIn0se3ZhbHVlOiJBTlgiLG5hbWU6IkFOWCIsZGVzYzpvLmkxOG5leHQobnVsbCx2b2lkIDAsbygyOTk5NykpLGZsYWc6ImJpdGNvaW4iLGdyb3VwOiJDcnlwdG9jdXJyZW5jeSIsaGlkZUluU3ltYm9sU2VhcmNoOiEwLGNvdW50cnk6IiIscHJvdmlkZXJJZDoiIn0se3ZhbHVlOiJNRVhCVCIsbmFtZToibWVYQlQiLGRlc2M6by5pMThuZXh0KG51bGwsdm9pZCAwLG8oNzQ1MTUzKSksZmxhZzoiYml0Y29pbiIsZ3JvdXA6IkNyeXB0b2N1cnJlbmN5IixoaWRlSW5TeW1ib2xTZWFyY2g6ITAsY291bnRyeToiIixwcm92aWRlcklkOiIifSx7dmFsdWU6IkdFTUlOSSIsbmFtZToiR2VtaW5pIixkZXNjOm8uaTE4bmV4dChudWxsLHZvaWQgMCxvKDUxODMxMikpLGZsYWc6ImJpdGNvaW4iLGdyb3VwOiJDcnlwdG9jdXJyZW5jeSIsY291bnRyeToiIixzb3VyY2VJZDoiR0VNSU5JIixwcm92aWRlcklkOiJnZW1pbmkifSx7dmFsdWU6IkJJVFZDIixuYW1lOiJCaXRWQyIsZGVzYzpvLmkxOG5leHQobnVsbCx2b2lkIDAsbyg4NDYwMjcpKSxmbGFnOiJiaXRjb2luIixncm91cDoiQ3J5cHRvY3VycmVuY3kiLGhpZGVJblN5bWJvbFNlYXJjaDohMCxjb3VudHJ5OiIiLHByb3ZpZGVySWQ6IiJ9LHt2YWx1ZToiQklUWUVTIixuYW1lOiJCaXRZZXMiLGRlc2M6by5pMThuZXh0KG51bGwsdm9pZCAwLG8oMTE1NDEpKSxmbGFnOiJiaXRjb2luIixncm91cDoiQ3J5cHRvY3VycmVuY3kiLGhpZGVJblN5bWJvbFNlYXJjaDohMCxjb3VudHJ5OiIiLHByb3ZpZGVySWQ6IiJ9LHt2YWx1ZToiQklURkxZRVIiLG5hbWU6ImJpdEZseWVyIixkZXNjOm8uaTE4bmV4dChudWxsLHZvaWQgMCxvKDI1MTk0OCkpLGZsYWc6ImJpdGNvaW4iLGdyb3VwOiJDcnlwdG9jdXJyZW5jeSIsY291bnRyeToiIixzb3VyY2VJZDoiQklURkxZRVIiLHByb3ZpZGVySWQ6ImJpdGZseWVyIn0se3ZhbHVlOiJCWUJJVCIsbmFtZToiQnliaXQiLGRlc2M6by5pMThuZXh0KG51bGwsdm9pZCAwLG8oNzE4OTY3KSksZmxhZzoiYml0Y29pbiIsZ3JvdXA6IkNyeXB0b2N1cnJlbmN5Iixjb3VudHJ5OiIiLApzb3VyY2VJZDoiQllCSVQiLHByb3ZpZGVySWQ6ImJ5Yml0In0se3ZhbHVlOiJCWURGSSIsbmFtZToiQllERmkiLGRlc2M6by5pMThuZXh0KG51bGwsdm9pZCAwLG8oMTE0OTExKSksZmxhZzoiYml0Y29pbiIsZ3JvdXA6IkNyeXB0b2N1cnJlbmN5Iixjb3VudHJ5OiIiLHNvdXJjZUlkOiJCWURGSSIscHJvdmlkZXJJZDoiYnlkZmkifSx7dmFsdWU6IkJJVE1FWCIsbmFtZToiQml0TUVYIixkZXNjOm8uaTE4bmV4dChudWxsLHZvaWQgMCxvKDE1NTc2NSkpLGZsYWc6ImJpdGNvaW4iLGdyb3VwOiJDcnlwdG9jdXJyZW5jeSIsY291bnRyeToiIixzb3VyY2VJZDoiQklUTUVYIixwcm92aWRlcklkOiJiaXRtZXgifSx7dmFsdWU6IkNBUElUQUxDT00iLG5hbWU6IkNhcGl0YWwuY29tIixkZXNjOm8uaTE4bmV4dChudWxsLHZvaWQgMCxvKDgwNzc2KSksZmxhZzoiZm9yZXgiLGdyb3VwOiJGb3JleCIsY291bnRyeToiIixzb3VyY2VJZDoiQ0FQSVRBTENPTSIscHJvdmlkZXJJZDoiY2FwaXRhbGNvbSJ9LHt2YWx1ZToiQ0ZJIixuYW1lOiJDRkkiLGRlc2M6by5pMThuZXh0KG51bGwsdm9pZCAwLG8oNTE1NzM4KSksZmxhZzoiZm9yZXgiLGdyb3VwOiJGb3JleCIsY291bnRyeToiIixzb3VyY2VJZDoiQ0ZJIixwcm92aWRlcklkOiJjZmlmaW5hbmNpYWwifSx7dmFsdWU6IkNPSU5FWCIsbmFtZToiQ29pbkV4IixkZXNjOm8uaTE4bmV4dChudWxsLHZvaWQgMCxvKDg2OTE1MikpLGZsYWc6ImJpdGNvaW4iLGdyb3VwOiJDcnlwdG9jdXJyZW5jeSIsY291bnRyeToiIixzb3VyY2VJZDoiQ09JTkVYIixwcm92aWRlcklkOiJjb2luZXgifSx7dmFsdWU6IkNPSU5KQVIiLG5hbWU6IkNvaW5KYXIiLGRlc2M6by5pMThuZXh0KG51bGwsdm9pZCAwLG8oNzAzNzQ4KSksZmxhZzoiYml0Y29pbiIsZ3JvdXA6IkNyeXB0b2N1cnJlbmN5Iixjb3VudHJ5OiIiLHNvdXJjZUlkOiJDT0lOSkFSIixwcm92aWRlcklkOiJjb2luamFyIn0se3ZhbHVlOiJDT0lOVyIsbmFtZToiQ29pblciLGRlc2M6by5pMThuZXh0KG51bGwsdm9pZCAwLG8oNzkzMDk2KSksZmxhZzoiYml0Y29pbiIsZ3JvdXA6IkNyeXB0b2N1cnJlbmN5Iixjb3VudHJ5OiIiLHNvdXJjZUlkOiJDT0lOVyIscHJvdmlkZXJJZDoiY29pbncifSx7dmFsdWU6IkNPSU5TV0lUQ0giLG5hbWU6IkNvaW5Td2l0Y2giLGRlc2M6by5pMThuZXh0KG51bGwsdm9pZCAwLG8oMzM4ODI5KSksZmxhZzoiYml0Y29pbiIsZ3JvdXA6IkNyeXB0b2N1cnJlbmN5Iixjb3VudHJ5OiIiLHNvdXJjZUlkOiJDT0lOU1dJVENIIixwcm92aWRlcklkOiJjb2luc3dpdGNoIn0se3ZhbHVlOiJFQVNZTUFSS0VUUyIsbmFtZToiZWFzeU1hcmtldHMiLGRlc2M6by5pMThuZXh0KG51bGwsdm9pZCAwLG8oNDI0MzM0KSksZmxhZzoiZm9yZXgiLGdyb3VwOiJGb3JleCIsY291bnRyeToiIixzb3VyY2VJZDoiRUFTWU1BUktFVFMiLHByb3ZpZGVySWQ6ImVhc3ltYXJrZXRzIn0se3ZhbHVlOiJGT1JFWENPTSIsbmFtZToiRk9SRVguY29tIixkZXNjOm8uaTE4bmV4dChudWxsLHZvaWQgMCxvKDI3MjQ0MikpLGZsYWc6ImZvcmV4Iixncm91cDoiRm9yZXgiLGNvdW50cnk6IiIscHJvdmlkZXJJZDoiZ2FpbiJ9LHt2YWx1ZToiRlhfSURDIixuYW1lOiJJQ0UiLGRlc2M6by5pMThuZXh0KG51bGwsdm9pZCAwLG8oNDAzNDMwKSksZmxhZzoiZm9yZXgiLGdyb3VwOiJGb3JleCIsY291bnRyeToiIixwcm92aWRlcklkOiJpY2UifSx7dmFsdWU6IklCS1IiLG5hbWU6IkludGVyYWN0aXZlIEJyb2tlcnMiLGRlc2M6by5pMThuZXh0KG51bGwsdm9pZCAwLG8oOTQyNDYpKSxmbGFnOiJmb3JleCIsZ3JvdXA6IkZvcmV4Iixjb3VudHJ5OiIiLHNvdXJjZUlkOiJJQktSIixwcm92aWRlcklkOiJpYmtyIn0se3ZhbHVlOiJJQlJPS0VSIixuYW1lOiJpQnJva2VyIixkZXNjOm8uaTE4bmV4dChudWxsLHZvaWQgMCxvKDY1MzU3MCkpLGZsYWc6ImZvcmV4Iixncm91cDoiRm9yZXgiLGNvdW50cnk6IiIsc291cmNlSWQ6IklCUk9LRVIiLHByb3ZpZGVySWQ6Imlicm9rZXIifSx7dmFsdWU6IklDTUFSS0VUUyIsbmFtZToiSUMgTWFya2V0cyIsZGVzYzpvLmkxOG5leHQobnVsbCx2b2lkIDAsbyg3MDkyMTIpKSxmbGFnOiJmb3JleCIsZ3JvdXA6IkZvcmV4Iixjb3VudHJ5OiIiLHNvdXJjZUlkOiJJQ01BUktFVFMiLHByb3ZpZGVySWQ6ImljbWFya2V0cyJ9LHt2YWx1ZToiQklURklORVgiLG5hbWU6IkJpdGZpbmV4IixkZXNjOm8uaTE4bmV4dChudWxsLHZvaWQgMCxvKDc1ODAyMikpLGZsYWc6ImJpdGNvaW4iLGdyb3VwOiJDcnlwdG9jdXJyZW5jeSIsY291bnRyeToiIixzb3VyY2VJZDoiQklURklORVgiLHByb3ZpZGVySWQ6ImJpdGZpbmV4In0se3ZhbHVlOiJNVEdPWCIsbmFtZToiTXQuR294IixkZXNjOm8uaTE4bmV4dChudWxsLHZvaWQgMCxvKDUzMjg4OCkpLGZsYWc6ImJpdGNvaW4iLGdyb3VwOiJDcnlwdG9jdXJyZW5jeSIsaGlkZUluU3ltYm9sU2VhcmNoOiEwLGNvdW50cnk6IiIsc291cmNlSWQ6Ik1UR09YIixwcm92aWRlcklkOiJtdGdveCJ9LHt2YWx1ZToiUEhBUkFPSCIsbmFtZToiUGhhcmFvaCAoQXZhbGFuY2hlKSIsZGVzYzpvLmkxOG5leHQobnVsbCx2b2lkIDAsbyg3MzM1MzkpKSxmbGFnOiJiaXRjb2luIixncm91cDoiQ3J5cHRvY3VycmVuY3kiLGNvdW50cnk6IiIsc291cmNlSWQ6IlBIQVJBT0giLHByb3ZpZGVySWQ6InBoYXJhb2gifSx7dmFsdWU6IlBIRU1FWCIsbmFtZToiUGhlbWV4IixkZXNjOm8uaTE4bmV4dChudWxsLHZvaWQgMCxvKDcwNTMyMikpLGZsYWc6ImJpdGNvaW4iLGdyb3VwOiJDcnlwdG9jdXJyZW5jeSIsY291bnRyeToiIixzb3VyY2VJZDoiUEhFTUVYIixwcm92aWRlcklkOiJwaGVtZXgifSx7dmFsdWU6IlBPTE9OSUVYIixuYW1lOiJQb2xvbmlleCIsZGVzYzpvLmkxOG5leHQobnVsbCx2b2lkIDAsbyg4NDMyMzUpKSxmbGFnOiJiaXRjb2luIixncm91cDoiQ3J5cHRvY3VycmVuY3kiLGNvdW50cnk6IiIsc291cmNlSWQ6IlBPTE9OSUVYIixwcm92aWRlcklkOiJwb2xvbmlleCJ9LHt2YWx1ZToiUFVMU0VYIixuYW1lOiJQdWxzZXggKFB1bHNlY2hhaW4pIiwKZGVzYzpvLmkxOG5leHQobnVsbCx2b2lkIDAsbyg5MzkzMDcpKSxmbGFnOiJiaXRjb2luIixncm91cDoiQ3J5cHRvY3VycmVuY3kiLGNvdW50cnk6IiIsc291cmNlSWQ6IlBVTFNFWCIscHJvdmlkZXJJZDoicHVsc2V4In0se3ZhbHVlOiJRVUlDS1NXQVAiLG5hbWU6IlF1aWNrU3dhcCB2MiAoUG9seWdvbikiLGRlc2M6by5pMThuZXh0KG51bGwsdm9pZCAwLG8oNDkyMjgxKSksZmxhZzoiYml0Y29pbiIsZ3JvdXA6IkNyeXB0b2N1cnJlbmN5Iixjb3VudHJ5OiIiLHNvdXJjZUlkOiJRVUlDS1NXQVAiLHByb3ZpZGVySWQ6InF1aWNrc3dhcCJ9LHt2YWx1ZToiUVVJQ0tTV0FQM1BPTFlHT05aS0VWTSIsbmFtZToiUXVpY2tTd2FwIHYzIChQb2x5Z29uIHprRVZNKSIsZGVzYzpvLmkxOG5leHQobnVsbCx2b2lkIDAsbyg4NzMzOTUpKSxmbGFnOiJiaXRjb2luIixncm91cDoiQ3J5cHRvY3VycmVuY3kiLGNvdW50cnk6IiIsc291cmNlSWQ6IlFVSUNLU1dBUDNQT0xZR09OWktFVk0iLHByb3ZpZGVySWQ6InF1aWNrc3dhcDMifSx7dmFsdWU6IlFVSUNLU1dBUDNQT0xZR09OIixuYW1lOiJRdWlja1N3YXAgdjMgKFBvbHlnb24pIixkZXNjOm8uaTE4bmV4dChudWxsLHZvaWQgMCxvKDU5NjU0MikpLGZsYWc6ImJpdGNvaW4iLGdyb3VwOiJDcnlwdG9jdXJyZW5jeSIsY291bnRyeToiIixzb3VyY2VJZDoiUVVJQ0tTV0FQM1BPTFlHT04iLHByb3ZpZGVySWQ6InF1aWNrc3dhcDMifSx7dmFsdWU6IlNVU0hJU1dBUCIsbmFtZToiU3VzaGlTd2FwIHYyIChFdGhlcmV1bSkiLGRlc2M6by5pMThuZXh0KG51bGwsdm9pZCAwLG8oMTAzNSkpLGZsYWc6ImJpdGNvaW4iLGdyb3VwOiJDcnlwdG9jdXJyZW5jeSIsY291bnRyeToiIixzb3VyY2VJZDoiU1VTSElTV0FQIixwcm92aWRlcklkOiJzdXNoaXN3YXAifSx7dmFsdWU6IlNVU0hJU1dBUFBPTFlHT04iLG5hbWU6IlN1c2hpU3dhcCB2MiAoUG9seWdvbikiLGRlc2M6by5pMThuZXh0KG51bGwsdm9pZCAwLG8oMzI0NzA5KSksZmxhZzoiYml0Y29pbiIsZ3JvdXA6IkNyeXB0b2N1cnJlbmN5Iixjb3VudHJ5OiIiLHNvdXJjZUlkOiJTVVNISVNXQVBQT0xZR09OIixwcm92aWRlcklkOiJzdXNoaXN3YXAifSx7dmFsdWU6IlNZTkNTV0FQIixuYW1lOiJTeW5jU3dhcCAoemtTeW5jKSIsZGVzYzpvLmkxOG5leHQobnVsbCx2b2lkIDAsbygzNDk5ODMpKSxmbGFnOiJiaXRjb2luIixncm91cDoiQ3J5cHRvY3VycmVuY3kiLGNvdW50cnk6IiIsc291cmNlSWQ6IlNZTkNTV0FQIixwcm92aWRlcklkOiJzeW5jc3dhcCJ9LHt2YWx1ZToiU1lOQ1NXQVAyIixuYW1lOiJTeW5jU3dhcCB2MiAoemtTeW5jKSIsZGVzYzpvLmkxOG5leHQobnVsbCx2b2lkIDAsbygxNjExMykpLGZsYWc6ImJpdGNvaW4iLGdyb3VwOiJDcnlwdG9jdXJyZW5jeSIsY291bnRyeToiIixzb3VyY2VJZDoiU1lOQ1NXQVAyIixwcm92aWRlcklkOiJzeW5jc3dhcDIifSx7dmFsdWU6IlRPT0JJVCIsbmFtZToiVG9vYml0IixkZXNjOm8uaTE4bmV4dChudWxsLHZvaWQgMCxvKDQxNjE5KSksZmxhZzoiYml0Y29pbiIsZ3JvdXA6IkNyeXB0b2N1cnJlbmN5Iixjb3VudHJ5OiIiLHNvdXJjZUlkOiJUT09CSVQiLHByb3ZpZGVySWQ6InRvb2JpdCJ9LHt2YWx1ZToiVFJBREVSSk9FIixuYW1lOiJUcmFkZXIgSm9lIHYyIChBdmFsYW5jaGUpIixkZXNjOm8uaTE4bmV4dChudWxsLHZvaWQgMCxvKDE1MDI0MikpLGZsYWc6ImJpdGNvaW4iLGdyb3VwOiJDcnlwdG9jdXJyZW5jeSIsY291bnRyeToiIixzb3VyY2VJZDoiVFJBREVSSk9FIixwcm92aWRlcklkOiJ0cmFkZXJqb2UifSx7dmFsdWU6IlRVUkJPU0ZJTkFOQ0UiLG5hbWU6IlR1cmJvcyBGaW5hbmNlIChTdWkpIixkZXNjOm8uaTE4bmV4dChudWxsLHZvaWQgMCxvKDE0OTE4MSkpLGZsYWc6ImJpdGNvaW4iLGdyb3VwOiJDcnlwdG9jdXJyZW5jeSIsY291bnRyeToiIixzb3VyY2VJZDoiVFVSQk9TRklOQU5DRSIscHJvdmlkZXJJZDoidHVyYm9zZmluYW5jZSJ9LHt2YWx1ZToiVU5JU1dBUCIsbmFtZToiVW5pc3dhcCB2MiAoRXRoZXJldW0pIixkZXNjOm8uaTE4bmV4dChudWxsLHZvaWQgMCxvKDM2NTk0NSkpLGZsYWc6ImJpdGNvaW4iLGdyb3VwOiJDcnlwdG9jdXJyZW5jeSIsY291bnRyeToiIixzb3VyY2VJZDoiVU5JU1dBUCIscHJvdmlkZXJJZDoidW5pc3dhcCJ9LHt2YWx1ZToiVU5JU1dBUEJBU0UiLG5hbWU6IlVuaXN3YXAgdjIgKEJhc2UpIixkZXNjOm8uaTE4bmV4dChudWxsLHZvaWQgMCxvKDcwMzkyOSkpLGZsYWc6ImJpdGNvaW4iLGdyb3VwOiJDcnlwdG9jdXJyZW5jeSIsY291bnRyeToiIixzb3VyY2VJZDoiVU5JU1dBUEJBU0UiLHByb3ZpZGVySWQ6InVuaXN3YXAifSx7dmFsdWU6IlVOSVNXQVAzRVRIIixuYW1lOiJVbmlzd2FwIHYzIChFdGhlcmV1bSkiLGRlc2M6by5pMThuZXh0KG51bGwsdm9pZCAwLG8oMjgyNTA1KSksZmxhZzoiYml0Y29pbiIsZ3JvdXA6IkNyeXB0b2N1cnJlbmN5Iixjb3VudHJ5OiIiLHNvdXJjZUlkOiJVTklTV0FQM0VUSCIscHJvdmlkZXJJZDoidW5pc3dhcDMifSx7dmFsdWU6IlVOSVNXQVAzUE9MWUdPTiIsbmFtZToiVW5pc3dhcCB2MyAoUG9seWdvbikiLGRlc2M6by5pMThuZXh0KG51bGwsdm9pZCAwLG8oNzgzNzc1KSksZmxhZzoiYml0Y29pbiIsZ3JvdXA6IkNyeXB0b2N1cnJlbmN5Iixjb3VudHJ5OiIiLHNvdXJjZUlkOiJVTklTV0FQM1BPTFlHT04iLHByb3ZpZGVySWQ6InVuaXN3YXAzIn0se3ZhbHVlOiJVTklTV0FQM0FSQklUUlVNIixuYW1lOiJVbmlzd2FwIHYzIChBcmJpdHJ1bSkiLGRlc2M6by5pMThuZXh0KG51bGwsdm9pZCAwLG8oNTkxOTcwKSksZmxhZzoiYml0Y29pbiIsZ3JvdXA6IkNyeXB0b2N1cnJlbmN5Iixjb3VudHJ5OiIiLHNvdXJjZUlkOiJVTklTV0FQM0FSQklUUlVNIixwcm92aWRlcklkOiJ1bmlzd2FwMyJ9LHt2YWx1ZToiVU5JU1dBUDNPUFRJTUlTTSIsbmFtZToiVW5pc3dhcCB2MyAoT3B0aW1pc20pIixkZXNjOm8uaTE4bmV4dChudWxsLHZvaWQgMCxvKDg0Mzc4NCkpLGZsYWc6ImJpdGNvaW4iLGdyb3VwOiJDcnlwdG9jdXJyZW5jeSIsY291bnRyeToiIixzb3VyY2VJZDoiVU5JU1dBUDNPUFRJTUlTTSIsCnByb3ZpZGVySWQ6InVuaXN3YXAzIn0se3ZhbHVlOiJVTklTV0FQM0JTQyIsbmFtZToiVW5pc3dhcCB2MyAoQk5CIGNoYWluKSIsZGVzYzpvLmkxOG5leHQobnVsbCx2b2lkIDAsbyg0MDA2OTcpKSxmbGFnOiJiaXRjb2luIixncm91cDoiQ3J5cHRvY3VycmVuY3kiLGNvdW50cnk6IiIsc291cmNlSWQ6IlVOSVNXQVAzQlNDIixwcm92aWRlcklkOiJ1bmlzd2FwMyJ9LHt2YWx1ZToiVU5JU1dBUDNCQVNFIixuYW1lOiJVbmlzd2FwIHYzIChCYXNlKSIsZGVzYzpvLmkxOG5leHQobnVsbCx2b2lkIDAsbyg5OTYyNjUpKSxmbGFnOiJiaXRjb2luIixncm91cDoiQ3J5cHRvY3VycmVuY3kiLGNvdW50cnk6IiIsc291cmNlSWQ6IlVOSVNXQVAzQkFTRSIscHJvdmlkZXJJZDoidW5pc3dhcDMifSx7dmFsdWU6IlVOSVNXQVAzQVZBTEFOQ0hFIixuYW1lOiJVbmlzd2FwIHYzIChBdmFsYW5jaGUpIixkZXNjOm8uaTE4bmV4dChudWxsLHZvaWQgMCxvKDc4MTUxKSksZmxhZzoiYml0Y29pbiIsZ3JvdXA6IkNyeXB0b2N1cnJlbmN5Iixjb3VudHJ5OiIiLHNvdXJjZUlkOiJVTklTV0FQM0FWQUxBTkNIRSIscHJvdmlkZXJJZDoidW5pc3dhcDMifSx7dmFsdWU6IlVOSVNXQVA0RVRIIixuYW1lOiJVbmlzd2FwIHY0IChFdGhlcmV1bSkiLGRlc2M6by5pMThuZXh0KG51bGwsdm9pZCAwLG8oNzA4NjgyKSksZmxhZzoiYml0Y29pbiIsZ3JvdXA6IkNyeXB0b2N1cnJlbmN5Iixjb3VudHJ5OiIiLHNvdXJjZUlkOiJVTklTV0FQNEVUSCIscHJvdmlkZXJJZDoidW5pc3dhcDQifSx7dmFsdWU6IlVOSVNXQVA0QlNDIixuYW1lOiJVbmlzd2FwIHY0IChCTkIgY2hhaW4pIixkZXNjOm8uaTE4bmV4dChudWxsLHZvaWQgMCxvKDI0NTE2MikpLGZsYWc6ImJpdGNvaW4iLGdyb3VwOiJDcnlwdG9jdXJyZW5jeSIsY291bnRyeToiIixzb3VyY2VJZDoiVU5JU1dBUDRCU0MiLHByb3ZpZGVySWQ6InVuaXN3YXA0In0se3ZhbHVlOiJVTklTV0FQNEJBU0UiLG5hbWU6IlVuaXN3YXAgdjQgKEJhc2UpIixkZXNjOm8uaTE4bmV4dChudWxsLHZvaWQgMCxvKDI3Mjg0KSksZmxhZzoiYml0Y29pbiIsZ3JvdXA6IkNyeXB0b2N1cnJlbmN5Iixjb3VudHJ5OiIiLHNvdXJjZUlkOiJVTklTV0FQNEJBU0UiLHByb3ZpZGVySWQ6InVuaXN3YXA0In0se3ZhbHVlOiJVTklTV0FQNEFSQklUUlVNIixuYW1lOiJVbmlzd2FwIHY0IChBcmJpdHJ1bSkiLGRlc2M6by5pMThuZXh0KG51bGwsdm9pZCAwLG8oNzU3NTkzKSksZmxhZzoiYml0Y29pbiIsZ3JvdXA6IkNyeXB0b2N1cnJlbmN5Iixjb3VudHJ5OiIiLHNvdXJjZUlkOiJVTklTV0FQNEFSQklUUlVNIixwcm92aWRlcklkOiJ1bmlzd2FwNCJ9LHt2YWx1ZToiVU5JU1dBUDRQT0xZR09OIixuYW1lOiJVbmlzd2FwIHY0IChQb2x5Z29uKSIsZGVzYzpvLmkxOG5leHQobnVsbCx2b2lkIDAsbyg3ODQxMjIpKSxmbGFnOiJiaXRjb2luIixncm91cDoiQ3J5cHRvY3VycmVuY3kiLGNvdW50cnk6IiIsc291cmNlSWQ6IlVOSVNXQVA0UE9MWUdPTiIscHJvdmlkZXJJZDoidW5pc3dhcDQifSx7dmFsdWU6IlVOSVNXQVA0QVZBTEFOQ0hFIixuYW1lOiJVbmlzd2FwIHY0IChBdmFsYW5jaGUpIixkZXNjOm8uaTE4bmV4dChudWxsLHZvaWQgMCxvKDExMTMwMCkpLGZsYWc6ImJpdGNvaW4iLGdyb3VwOiJDcnlwdG9jdXJyZW5jeSIsY291bnRyeToiIixzb3VyY2VJZDoiVU5JU1dBUDRBVkFMQU5DSEUiLHByb3ZpZGVySWQ6InVuaXN3YXA0In0se3ZhbHVlOiJVTklTV0FQNFVOSUNIQUlOIixuYW1lOiJVbmlzd2FwIHY0IChVbmljaGFpbikiLGRlc2M6by5pMThuZXh0KG51bGwsdm9pZCAwLG8oNjg5MzE3KSksZmxhZzoiYml0Y29pbiIsZ3JvdXA6IkNyeXB0b2N1cnJlbmN5Iixjb3VudHJ5OiIiLHNvdXJjZUlkOiJVTklTV0FQNFVOSUNIQUlOIixwcm92aWRlcklkOiJ1bmlzd2FwNCJ9LHt2YWx1ZToiVU5JU1dBUDRPUFRJTUlTTSIsbmFtZToiVW5pc3dhcCB2NCAoT3B0aW1pc20pIixkZXNjOm8uaTE4bmV4dChudWxsLHZvaWQgMCxvKDQ3MDQ4MykpLGZsYWc6ImJpdGNvaW4iLGdyb3VwOiJDcnlwdG9jdXJyZW5jeSIsY291bnRyeToiIixzb3VyY2VJZDoiVU5JU1dBUDRPUFRJTUlTTSIscHJvdmlkZXJJZDoidW5pc3dhcDQifSx7dmFsdWU6IlVQQklUIixuYW1lOiJVcEJpdCIsZGVzYzpvLmkxOG5leHQobnVsbCx2b2lkIDAsbygxOTM4MTgpKSxmbGFnOiJiaXRjb2luIixncm91cDoiQ3J5cHRvY3VycmVuY3kiLGNvdW50cnk6IiIsc291cmNlSWQ6IlVQQklUIixwcm92aWRlcklkOiJ1cGJpdCJ9LHt2YWx1ZToiQU5UQVJDVElDIixuYW1lOiJBbnRhcmN0aWMiLGRlc2M6by5pMThuZXh0KG51bGwsdm9pZCAwLG8oNzQ2ODcyKSksZmxhZzoiYml0Y29pbiIsZ3JvdXA6IkNyeXB0b2N1cnJlbmN5Iixjb3VudHJ5OiIiLHNvdXJjZUlkOiJBTlRBUkNUSUMiLHByb3ZpZGVySWQ6ImFudGFyY3RpYyJ9LHt2YWx1ZToiQklOR1giLG5hbWU6IkJpbmdYIixkZXNjOm8uaTE4bmV4dChudWxsLHZvaWQgMCxvKDQ4NzUzNikpLGZsYWc6ImJpdGNvaW4iLGdyb3VwOiJDcnlwdG9jdXJyZW5jeSIsY291bnRyeToiIixzb3VyY2VJZDoiQklOR1giLHByb3ZpZGVySWQ6ImJpbmd4In0se3ZhbHVlOiJCVFNFIixuYW1lOiJCVFNFIixkZXNjOm8uaTE4bmV4dChudWxsLHZvaWQgMCxvKDgxMTE3NSkpLGZsYWc6ImJpdGNvaW4iLGdyb3VwOiJDcnlwdG9jdXJyZW5jeSIsY291bnRyeToiIixzb3VyY2VJZDoiQlRTRSIscHJvdmlkZXJJZDoiYnRzZSJ9LHt2YWx1ZToiQklUVFJFWCIsbmFtZToiQml0dHJleCIsZGVzYzpvLmkxOG5leHQobnVsbCx2b2lkIDAsbyg5MDg0NTUpKSxmbGFnOiJiaXRjb2luIixncm91cDoiQ3J5cHRvY3VycmVuY3kiLGNvdW50cnk6IiIsc291cmNlSWQ6IkJJVFRSRVgiLHByb3ZpZGVySWQ6ImJpdHRyZXgifSx7dmFsdWU6IkJJVFZBVk8iLG5hbWU6IkJpdHZhdm8iLGRlc2M6by5pMThuZXh0KG51bGwsdm9pZCAwLG8oNzIwODM5KSksZmxhZzoiYml0Y29pbiIsZ3JvdXA6IkNyeXB0b2N1cnJlbmN5Iixjb3VudHJ5OiIiLHNvdXJjZUlkOiJCSVRWQVZPIixwcm92aWRlcklkOiJiaXR2YXZvIn0se3ZhbHVlOiJCSVRVTklYIixuYW1lOiJCaXR1bml4IiwKZGVzYzpvLmkxOG5leHQobnVsbCx2b2lkIDAsbyg1Mjg1NzMpKSxmbGFnOiJiaXRjb2luIixncm91cDoiQ3J5cHRvY3VycmVuY3kiLGNvdW50cnk6IiIsc291cmNlSWQ6IkJJVFVOSVgiLHByb3ZpZGVySWQ6ImJpdHVuaXgifSx7dmFsdWU6IkJJTkFOQ0UiLG5hbWU6IkJpbmFuY2UiLGRlc2M6by5pMThuZXh0KG51bGwsdm9pZCAwLG8oNjA1ZTMpKSxmbGFnOiJiaXRjb2luIixncm91cDoiQ3J5cHRvY3VycmVuY3kiLGNvdW50cnk6IiIsc291cmNlSWQ6IkJJTkFOQ0UiLHByb3ZpZGVySWQ6ImJpbmFuY2UifSx7dmFsdWU6IkJJVEdFVCIsbmFtZToiQml0Z2V0IixkZXNjOm8uaTE4bmV4dChudWxsLHZvaWQgMCxvKDUzNjYwOSkpLGZsYWc6ImJpdGNvaW4iLGdyb3VwOiJDcnlwdG9jdXJyZW5jeSIsY291bnRyeToiIixzb3VyY2VJZDoiQklUR0VUIixwcm92aWRlcklkOiJiaXRnZXQifSx7dmFsdWU6IkJJTkFOQ0VVUyIsbmFtZToiQmluYW5jZS5VUyIsZGVzYzpvLmkxOG5leHQobnVsbCx2b2lkIDAsbygzMTE2NzkpKSxmbGFnOiJiaXRjb2luIixncm91cDoiQ3J5cHRvY3VycmVuY3kiLGNvdW50cnk6IiIsc291cmNlSWQ6IkJJTkFOQ0VVUyIscHJvdmlkZXJJZDoiYmluYW5jZSJ9LHt2YWx1ZToiREVMVEFJTiIsbmFtZToiRGVsdGEgRXhjaGFuZ2UgSW5kaWEiLGRlc2M6by5pMThuZXh0KG51bGwsdm9pZCAwLG8oNTc2NTQ4KSksZmxhZzoiYml0Y29pbiIsZ3JvdXA6IkNyeXB0b2N1cnJlbmN5Iixjb3VudHJ5OiIiLHNvdXJjZUlkOiJERUxUQUlOIixwcm92aWRlcklkOiJkZWx0YWluIn0se3ZhbHVlOiJCTE9GSU4iLG5hbWU6IkJsb0ZpbiIsZGVzYzpvLmkxOG5leHQobnVsbCx2b2lkIDAsbyg4NDI5ODcpKSxmbGFnOiJiaXRjb2luIixncm91cDoiQ3J5cHRvY3VycmVuY3kiLGNvdW50cnk6IiIsc291cmNlSWQ6IkJMT0ZJTiIscHJvdmlkZXJJZDoiYmxvZmluIn0se3ZhbHVlOiJCTEFDS0hPTEUzIixuYW1lOiJCbGFja2hvbGUgdjMgKEF2YWxhbmNoZSkiLGRlc2M6by5pMThuZXh0KG51bGwsdm9pZCAwLG8oMjgzMjg3KSksZmxhZzoiYml0Y29pbiIsZ3JvdXA6IkNyeXB0b2N1cnJlbmN5Iixjb3VudHJ5OiIiLHNvdXJjZUlkOiJCTEFDS0hPTEUzIixwcm92aWRlcklkOiJibGFja2hvbGUzIn0se3ZhbHVlOiJCTFVFRklOIixuYW1lOiJCbHVlZmluIChTdWkpIixkZXNjOm8uaTE4bmV4dChudWxsLHZvaWQgMCxvKDMxNTQyNCkpLGZsYWc6ImJpdGNvaW4iLGdyb3VwOiJDcnlwdG9jdXJyZW5jeSIsY291bnRyeToiIixzb3VyY2VJZDoiQkxVRUZJTiIscHJvdmlkZXJJZDoiYmx1ZWZpbiJ9LHt2YWx1ZToiQk5DIixuYW1lOiJCcmF2ZSBOZXcgQ29pbiIsZGVzYzpvLmkxOG5leHQobnVsbCx2b2lkIDAsbyg4MzkxNTkpKSxmbGFnOiJiaXRjb2luIixncm91cDoiQ3J5cHRvY3VycmVuY3kiLGNvdW50cnk6IiIsc291cmNlSWQ6IkJOQyIscHJvdmlkZXJJZDoiYm5jIn0se3ZhbHVlOiJCVENDIixuYW1lOiJCVENDIixkZXNjOm8uaTE4bmV4dChudWxsLHZvaWQgMCxvKDY5NDMxNikpLGZsYWc6ImJpdGNvaW4iLGdyb3VwOiJDcnlwdG9jdXJyZW5jeSIsY291bnRyeToiIixzb3VyY2VJZDoiQlRDQyIscHJvdmlkZXJJZDoiYnRjYyJ9LHt2YWx1ZToiS0FUQU5BIixuYW1lOiJLYXRhbmEgKFJvbmluKSIsZGVzYzpvLmkxOG5leHQobnVsbCx2b2lkIDAsbyg5ODA3MzkpKSxmbGFnOiJiaXRjb2luIixncm91cDoiQ3J5cHRvY3VycmVuY3kiLGNvdW50cnk6IiIsc291cmNlSWQ6IktBVEFOQSIscHJvdmlkZXJJZDoia2F0YW5hIn0se3ZhbHVlOiJLQVRBTkEzIixuYW1lOiJLYXRhbmEgdjMgKFJvbmluKSIsZGVzYzpvLmkxOG5leHQobnVsbCx2b2lkIDAsbygxNTc2MDUpKSxmbGFnOiJiaXRjb2luIixncm91cDoiQ3J5cHRvY3VycmVuY3kiLGNvdW50cnk6IiIsc291cmNlSWQ6IktBVEFOQTMiLHByb3ZpZGVySWQ6ImthdGFuYTMifSx7dmFsdWU6IktDRVgiLG5hbWU6IktDRVgiLGRlc2M6by5pMThuZXh0KG51bGwsdm9pZCAwLG8oNDk4ODk2KSksZmxhZzoiYml0Y29pbiIsZ3JvdXA6IkNyeXB0b2N1cnJlbmN5Iixjb3VudHJ5OiIiLHNvdXJjZUlkOiJLQ0VYIixwcm92aWRlcklkOiJrY2V4In0se3ZhbHVlOiJDQU1FTE9UIixuYW1lOiJDYW1lbG90IHYyIChBcmJpdHJ1bSkiLGRlc2M6by5pMThuZXh0KG51bGwsdm9pZCAwLG8oODg0MTYzKSksZmxhZzoiYml0Y29pbiIsZ3JvdXA6IkNyeXB0b2N1cnJlbmN5Iixjb3VudHJ5OiIiLHNvdXJjZUlkOiJDQU1FTE9UIixwcm92aWRlcklkOiJjYW1lbG90MiJ9LHt2YWx1ZToiQ0FNRUxPVDNBUkJJVFJVTSIsbmFtZToiQ2FtZWxvdCB2MyAoQXJiaXRydW0pIixkZXNjOm8uaTE4bmV4dChudWxsLHZvaWQgMCxvKDY3NzY4MykpLGZsYWc6ImJpdGNvaW4iLGdyb3VwOiJDcnlwdG9jdXJyZW5jeSIsY291bnRyeToiIixzb3VyY2VJZDoiQ0FNRUxPVDNBUkJJVFJVTSIscHJvdmlkZXJJZDoiY2FtZWxvdDMifSx7dmFsdWU6IkNPSU5ERVNLIixuYW1lOiJDb2luRGVzayBJbmRpY2VzIixkZXNjOm8uaTE4bmV4dChudWxsLHZvaWQgMCxvKDQ1ODc4MykpLGZsYWc6ImJpdGNvaW4iLGdyb3VwOiJDcnlwdG9jdXJyZW5jeSIsY291bnRyeToiIixzb3VyY2VJZDoiQ09JTkRFU0siLHByb3ZpZGVySWQ6ImNvaW5kZXNrIn0se3ZhbHVlOiJDUllQVE9DT00iLG5hbWU6IkNyeXB0by5jb20iLGRlc2M6by5pMThuZXh0KG51bGwsdm9pZCAwLG8oMjI4NDQ5KSksZmxhZzoiYml0Y29pbiIsZ3JvdXA6IkNyeXB0b2N1cnJlbmN5Iixjb3VudHJ5OiIiLHNvdXJjZUlkOiJDUllQVE9DT00iLHByb3ZpZGVySWQ6ImNyeXB0b2NvbSJ9LHt2YWx1ZToiVkVMT0RST01FIixuYW1lOiJWZWxvZHJvbWUgKE9wdGltaXNtKSIsZGVzYzpvLmkxOG5leHQobnVsbCx2b2lkIDAsbyg0NDQ4MjUpKSxmbGFnOiJiaXRjb2luIixncm91cDoiQ3J5cHRvY3VycmVuY3kiLGNvdW50cnk6IiIsc291cmNlSWQ6IlZFTE9EUk9NRSIscHJvdmlkZXJJZDoidmVsb2Ryb21lIn0se3ZhbHVlOiJWRUxPRFJPTUUyIixuYW1lOiJWZWxvZHJvbWUgdjIgKE9wdGltaXNtKSIsZGVzYzpvLmkxOG5leHQobnVsbCx2b2lkIDAsbyg5NTc3MzQpKSxmbGFnOiJiaXRjb2luIiwKZ3JvdXA6IkNyeXB0b2N1cnJlbmN5Iixjb3VudHJ5OiIiLHNvdXJjZUlkOiJWRUxPRFJPTUUyIixwcm92aWRlcklkOiJ2ZWxvZHJvbWUyIn0se3ZhbHVlOiJWRUxPRFJPTUVTTElQU1RSRUFNIixuYW1lOiJWZWxvZHJvbWUgU2xpcFN0cmVhbSAoT3B0aW1pc20pIixkZXNjOm8uaTE4bmV4dChudWxsLHZvaWQgMCxvKDUzMzI1MCkpLGZsYWc6ImJpdGNvaW4iLGdyb3VwOiJDcnlwdG9jdXJyZW5jeSIsY291bnRyeToiIixzb3VyY2VJZDoiVkVMT0RST01FU0xJUFNUUkVBTSIscHJvdmlkZXJJZDoidmVsb2Ryb21lc2xpcHN0cmVhbSJ9LHt2YWx1ZToiVlZTRklOQU5DRSIsbmFtZToiVlZTIEZpbmFuY2UgKENyb25vcykiLGRlc2M6by5pMThuZXh0KG51bGwsdm9pZCAwLG8oMjMxMzI1KSksZmxhZzoiYml0Y29pbiIsZ3JvdXA6IkNyeXB0b2N1cnJlbmN5Iixjb3VudHJ5OiIiLHNvdXJjZUlkOiJWVlNGSU5BTkNFIixwcm92aWRlcklkOiJ2dnNmaW5hbmNlIn0se3ZhbHVlOiJWVlMzIixuYW1lOiJWVlMgdjMgKENyb25vcykiLGRlc2M6by5pMThuZXh0KG51bGwsdm9pZCAwLG8oOTk0MTc2KSksZmxhZzoiYml0Y29pbiIsZ3JvdXA6IkNyeXB0b2N1cnJlbmN5Iixjb3VudHJ5OiIiLHNvdXJjZUlkOiJWVlMzIixwcm92aWRlcklkOiJ2dnMzIn0se3ZhbHVlOiJXRUJVTExQQVkiLG5hbWU6IldlYnVsbCBQYXkiLGRlc2M6by5pMThuZXh0KG51bGwsdm9pZCAwLG8oNDY1ODUxKSksZmxhZzoiYml0Y29pbiIsZ3JvdXA6IkNyeXB0b2N1cnJlbmN5Iixjb3VudHJ5OiIiLHNvdXJjZUlkOiJXRUJVTExQQVkiLHByb3ZpZGVySWQ6IndlYnVsbHBheSJ9LHt2YWx1ZToiQ0VUVVMiLG5hbWU6IkNldHVzIChTdWkpIixkZXNjOm8uaTE4bmV4dChudWxsLHZvaWQgMCxvKDc2NDE0NSkpLGZsYWc6ImJpdGNvaW4iLGdyb3VwOiJDcnlwdG9jdXJyZW5jeSIsY291bnRyeToiIixzb3VyY2VJZDoiQ0VUVVMiLHByb3ZpZGVySWQ6ImNldHVzIn0se3ZhbHVlOiJXRUVYIixuYW1lOiJXRUVYIixkZXNjOm8uaTE4bmV4dChudWxsLHZvaWQgMCxvKDQzNjg3MSkpLGZsYWc6ImJpdGNvaW4iLGdyb3VwOiJDcnlwdG9jdXJyZW5jeSIsY291bnRyeToiIixzb3VyY2VJZDoiV0VFWCIscHJvdmlkZXJJZDoid2VleCJ9LHt2YWx1ZToiTU1GSU5BTkNFIixuYW1lOiJNTSBGaW5hbmNlIChDcm9ub3MpIixkZXNjOm8uaTE4bmV4dChudWxsLHZvaWQgMCxvKDE1MjUxNSkpLGZsYWc6ImJpdGNvaW4iLGdyb3VwOiJDcnlwdG9jdXJyZW5jeSIsY291bnRyeToiIixzb3VyY2VJZDoiTU1GSU5BTkNFIixwcm92aWRlcklkOiJtbWZpbmFuY2UifSx7dmFsdWU6IkFFUk9EUk9NRSIsbmFtZToiQWVyb2Ryb21lIChCYXNlKSIsZGVzYzpvLmkxOG5leHQobnVsbCx2b2lkIDAsbygyMTc4NjQpKSxmbGFnOiJiaXRjb2luIixncm91cDoiQ3J5cHRvY3VycmVuY3kiLGNvdW50cnk6IiIsc291cmNlSWQ6IkFFUk9EUk9NRSIscHJvdmlkZXJJZDoiYWVyb2Ryb21lIn0se3ZhbHVlOiJBRVJPRFJPTUVTTElQU1RSRUFNIixuYW1lOiJBZXJvZHJvbWUgU2xpcFN0cmVhbSAoQmFzZSkiLGRlc2M6by5pMThuZXh0KG51bGwsdm9pZCAwLG8oOTI1MjEyKSksZmxhZzoiYml0Y29pbiIsZ3JvdXA6IkNyeXB0b2N1cnJlbmN5Iixjb3VudHJ5OiIiLHNvdXJjZUlkOiJBRVJPRFJPTUVTTElQU1RSRUFNIixwcm92aWRlcklkOiJhZXJvZHJvbWVzbGlwc3RyZWFtIn0se3ZhbHVlOiJCQVNFU1dBUCIsbmFtZToiQmFzZVN3YXAgKEJhc2UpIixkZXNjOm8uaTE4bmV4dChudWxsLHZvaWQgMCxvKDIyMTM1OSkpLGZsYWc6ImJpdGNvaW4iLGdyb3VwOiJDcnlwdG9jdXJyZW5jeSIsY291bnRyeToiIixzb3VyY2VJZDoiQkFTRVNXQVAiLHByb3ZpZGVySWQ6ImJhc2Vzd2FwIn0se3ZhbHVlOiJCQ0JBIixuYW1lOiJCWU1BIixkZXNjOm8uaTE4bmV4dChudWxsLHZvaWQgMCxvKDIwNjkwOSkpLGZsYWc6ImFyZ2VudGluYSIsZ3JvdXA6Ik1leGljbyBhbmQgU291dGggQW1lcmljYSIsY291bnRyeToiYXIiLHByb3ZpZGVySWQ6IiIsc2VhcmNoVGVybXM6W28uaTE4bmV4dChudWxsLHZvaWQgMCxvKDg1NzU4NykpXX0se3ZhbHVlOiJNQVRCQVJPRkVYIixuYW1lOiJST0ZFWCIsZGVzYzpvLmkxOG5leHQobnVsbCx2b2lkIDAsbyg0MjM0MDEpKSxmbGFnOiJhcmdlbnRpbmEiLGdyb3VwOiJNZXhpY28gYW5kIFNvdXRoIEFtZXJpY2EiLGNvdW50cnk6ImFyIixwcm92aWRlcklkOiIiLHNlYXJjaFRlcm1zOltvLmkxOG5leHQobnVsbCx2b2lkIDAsbyg4NTc1ODcpKV19LHt2YWx1ZToiQk1GQk9WRVNQQSIsbmFtZToiQjMiLGRlc2M6by5pMThuZXh0KG51bGwsdm9pZCAwLG8oNDc5MzQxKSksZmxhZzoiYnJhc2lsIixncm91cDoiTWV4aWNvIGFuZCBTb3V0aCBBbWVyaWNhIixjb3VudHJ5OiJiciIscHJvdmlkZXJJZDoiIixzZWFyY2hUZXJtczpbby5pMThuZXh0KG51bGwsdm9pZCAwLG8oNjEyOTY3KSldfSx7dmFsdWU6IkJNViIsbmFtZToiQk1WIixkZXNjOm8uaTE4bmV4dChudWxsLHZvaWQgMCxvKDMwOTQyNykpLGZsYWc6Im1leGljbyIsZ3JvdXA6Ik1leGljbyBhbmQgU291dGggQW1lcmljYSIsY291bnRyeToibXgiLHByb3ZpZGVySWQ6IiIsc2VhcmNoVGVybXM6W28uaTE4bmV4dChudWxsLHZvaWQgMCxvKDg2NTcwMCkpXX0se3ZhbHVlOiJCSVZBIixuYW1lOiJCSVZBIixkZXNjOm8uaTE4bmV4dChudWxsLHZvaWQgMCxvKDU4MjI0OSkpLGZsYWc6Im1leGljbyIsZ3JvdXA6Ik1leGljbyBhbmQgU291dGggQW1lcmljYSIsY291bnRyeToibXgiLHByb3ZpZGVySWQ6IiIsc2VhcmNoVGVybXM6W28uaTE4bmV4dChudWxsLHZvaWQgMCxvKDg2NTcwMCkpXX0se3ZhbHVlOiJCVkwiLG5hbWU6IkJWTCIsZGVzYzpvLmkxOG5leHQobnVsbCx2b2lkIDAsbygzNTEwNzYpKSxmbGFnOiJwZXJ1Iixncm91cDoiTWV4aWNvIGFuZCBTb3V0aCBBbWVyaWNhIixjb3VudHJ5OiJwZSIscHJvdmlkZXJJZDoiIixzZWFyY2hUZXJtczpbby5pMThuZXh0KG51bGwsdm9pZCAwLG8oODUxMTExKSldfSx7dmFsdWU6IkJDUyIsbmFtZToiU1NFIixkZXNjOm8uaTE4bmV4dChudWxsLHZvaWQgMCxvKDMyMTE3NSkpLGZsYWc6ImNoaWxlIiwKZ3JvdXA6Ik1leGljbyBhbmQgU291dGggQW1lcmljYSIsY291bnRyeToiY2wiLHByb3ZpZGVySWQ6IiIsc2VhcmNoVGVybXM6W28uaTE4bmV4dChudWxsLHZvaWQgMCxvKDkwNDMzOCkpXX0se3ZhbHVlOiJCVkMiLG5hbWU6IkJWQyIsZGVzYzpvLmkxOG5leHQobnVsbCx2b2lkIDAsbygxODQ2MTkpKSxmbGFnOiJjb2xvbWJpYSIsZ3JvdXA6Ik1leGljbyBhbmQgU291dGggQW1lcmljYSIsY291bnRyeToiY28iLHByb3ZpZGVySWQ6IiIsc2VhcmNoVGVybXM6W28uaTE4bmV4dChudWxsLHZvaWQgMCxvKDEzNTg2NykpXX0se3ZhbHVlOiJCVkNWIixuYW1lOiJCVkMiLGRlc2M6by5pMThuZXh0KG51bGwsdm9pZCAwLG8oNzA1OTUyKSksZmxhZzoidmVuZXp1ZWxhIixncm91cDoiTWV4aWNvIGFuZCBTb3V0aCBBbWVyaWNhIixjb3VudHJ5OiJ2ZSIscHJvdmlkZXJJZDoiIixzZWFyY2hUZXJtczpbby5pMThuZXh0KG51bGwsdm9pZCAwLG8oNjQzNTAzKSldfSx7dmFsdWU6Ik5BRyIsbmFtZToiTlNFIixkZXNjOm8uaTE4bmV4dChudWxsLHZvaWQgMCxvKDkyMjc3MCkpLGZsYWc6ImphcGFuIixncm91cDoiQXNpYSAvIFBhY2lmaWMiLGNvdW50cnk6ImpwIixwcm92aWRlcklkOiIiLHNlYXJjaFRlcm1zOltvLmkxOG5leHQobnVsbCx2b2lkIDAsbygyMDAwNjgpKV19LHt2YWx1ZToiVFNFIixuYW1lOiJUU0UiLGRlc2M6by5pMThuZXh0KG51bGwsdm9pZCAwLG8oOTQxNzQpKSxmbGFnOiJqYXBhbiIsZ3JvdXA6IkFzaWEgLyBQYWNpZmljIixjb3VudHJ5OiJqcCIscHJvdmlkZXJJZDoiIixzZWFyY2hUZXJtczpbby5pMThuZXh0KG51bGwsdm9pZCAwLG8oMjAwMDY4KSldfSx7dmFsdWU6IlRGRVgiLG5hbWU6IlRGRVgiLGRlc2M6by5pMThuZXh0KG51bGwsdm9pZCAwLG8oNTUxNDkxKSksZmxhZzoidGhhaWxhbmQiLGdyb3VwOiJBc2lhIC8gUGFjaWZpYyIsY291bnRyeToidGgiLHByb3ZpZGVySWQ6IiIsc2VhcmNoVGVybXM6W28uaTE4bmV4dChudWxsLHZvaWQgMCxvKDU1MzA0NCkpXX0se3ZhbHVlOiJURlgiLG5hbWU6IlRGWCIsZGVzYzpvLmkxOG5leHQobnVsbCx2b2lkIDAsbyg5NjMyNzgpKSxmbGFnOiJqYXBhbiIsZ3JvdXA6IkFzaWEgLyBQYWNpZmljIixjb3VudHJ5OiJqcCIscHJvdmlkZXJJZDoiIixzZWFyY2hUZXJtczpbby5pMThuZXh0KG51bGwsdm9pZCAwLG8oMjAwMDY4KSldfSx7dmFsdWU6IlRPQ09NIixuYW1lOiJUT0NPTSIsZGVzYzpvLmkxOG5leHQobnVsbCx2b2lkIDAsbyg3ODIxNjIpKSxmbGFnOiJqYXBhbiIsZ3JvdXA6IkFzaWEgLyBQYWNpZmljIixjb3VudHJ5OiJqcCIscHJvdmlkZXJJZDoiIixzZWFyY2hUZXJtczpbby5pMThuZXh0KG51bGwsdm9pZCAwLG8oMjAwMDY4KSldfSx7dmFsdWU6Ik9TRSIsbmFtZToiT1NFIixkZXNjOm8uaTE4bmV4dChudWxsLHZvaWQgMCxvKDEyNDAzNykpLGZsYWc6ImphcGFuIixncm91cDoiQXNpYSAvIFBhY2lmaWMiLGNvdW50cnk6ImpwIixwcm92aWRlcklkOiIiLHNlYXJjaFRlcm1zOltvLmkxOG5leHQobnVsbCx2b2lkIDAsbygyMDAwNjgpKV19LHt2YWx1ZToiU0dYIixuYW1lOiJTR1giLGRlc2M6by5pMThuZXh0KG51bGwsdm9pZCAwLG8oMzkzMjUpKSxmbGFnOiJzaW5nYXBvcmUiLGdyb3VwOiJBc2lhIC8gUGFjaWZpYyIsY291bnRyeToic2ciLHByb3ZpZGVySWQ6IiIsc2VhcmNoVGVybXM6W28uaTE4bmV4dChudWxsLHZvaWQgMCxvKDY0Mzc5NSkpXX0se3ZhbHVlOiJBQkFYWCIsbmFtZToiQWJheHgiLGRlc2M6by5pMThuZXh0KG51bGwsdm9pZCAwLG8oODAzMjEwKSksZmxhZzoic2luZ2Fwb3JlIixncm91cDoiQXNpYSAvIFBhY2lmaWMiLGNvdW50cnk6InNnIixwcm92aWRlcklkOiIiLHNlYXJjaFRlcm1zOltvLmkxOG5leHQobnVsbCx2b2lkIDAsbyg2NDM3OTUpKV19LHt2YWx1ZToiSUNFU0ciLG5hbWU6IklDRSBGdXR1cmVzIFNpbmdhcG9yZSIsZGVzYzpvLmkxOG5leHQobnVsbCx2b2lkIDAsbyg3NDQzMSkpLGZsYWc6InNpbmdhcG9yZSIsZ3JvdXA6IkFzaWEgLyBQYWNpZmljIixjb3VudHJ5OiJzZyIscHJvdmlkZXJJZDoiIixzZWFyY2hUZXJtczpbby5pMThuZXh0KG51bGwsdm9pZCAwLG8oNjQzNzk1KSldfSx7dmFsdWU6IkZUU0VTVCIsbmFtZToiRlRTRSBTVCIsZGVzYzpvLmkxOG5leHQobnVsbCx2b2lkIDAsbygzOTIwNjcpKSxmbGFnOiJzaW5nYXBvcmUiLGdyb3VwOiJBc2lhIC8gUGFjaWZpYyIsY291bnRyeToic2ciLHByb3ZpZGVySWQ6IiIsc2VhcmNoVGVybXM6W28uaTE4bmV4dChudWxsLHZvaWQgMCxvKDY0Mzc5NSkpXX0se3ZhbHVlOiJTQVBTRSIsbmFtZToiU1NFIixkZXNjOm8uaTE4bmV4dChudWxsLHZvaWQgMCxvKDUyMzI5MCkpLGZsYWc6ImphcGFuIixncm91cDoiQXNpYSAvIFBhY2lmaWMiLGNvdW50cnk6ImpwIixwcm92aWRlcklkOiIiLHNlYXJjaFRlcm1zOltvLmkxOG5leHQobnVsbCx2b2lkIDAsbygyMDAwNjgpKV19LHt2YWx1ZToiRlNFIixuYW1lOiJGU0UiLGRlc2M6by5pMThuZXh0KG51bGwsdm9pZCAwLG8oOTI3MjMwKSksZmxhZzoiamFwYW4iLGdyb3VwOiJBc2lhIC8gUGFjaWZpYyIsY291bnRyeToianAiLHByb3ZpZGVySWQ6IiIsc2VhcmNoVGVybXM6W28uaTE4bmV4dChudWxsLHZvaWQgMCxvKDIwMDA2OCkpXX0se3ZhbHVlOiJUUEVYIixuYW1lOiJUUEV4IixkZXNjOm8uaTE4bmV4dChudWxsLHZvaWQgMCxvKDE3NDgxOCkpLGZsYWc6InRhaXdhbiIsZ3JvdXA6IkFzaWEgLyBQYWNpZmljIixjb3VudHJ5OiJ0dyIscHJvdmlkZXJJZDoiIixzZWFyY2hUZXJtczpbby5pMThuZXh0KG51bGwsdm9pZCAwLG8oMjczMTU3KSldfSx7dmFsdWU6IlRBSUZFWCIsbmFtZToiVEFJRkVYIixkZXNjOm8uaTE4bmV4dChudWxsLHZvaWQgMCxvKDUyMjcwNykpLGZsYWc6InRhaXdhbiIsZ3JvdXA6IkFzaWEgLyBQYWNpZmljIixjb3VudHJ5OiJ0dyIscHJvdmlkZXJJZDoiIixzZWFyY2hUZXJtczpbby5pMThuZXh0KG51bGwsdm9pZCAwLG8oMjczMTU3KSldfSx7dmFsdWU6IlRXU0UiLG5hbWU6IlRXU0UiLGRlc2M6by5pMThuZXh0KG51bGwsdm9pZCAwLG8oODE2MjUzKSksZmxhZzoidGFpd2FuIixncm91cDoiQXNpYSAvIFBhY2lmaWMiLApjb3VudHJ5OiJ0dyIscHJvdmlkZXJJZDoiIixzZWFyY2hUZXJtczpbby5pMThuZXh0KG51bGwsdm9pZCAwLG8oMjczMTU3KSldfSx7dmFsdWU6IlNFVCIsbmFtZToiU0VUIixkZXNjOm8uaTE4bmV4dChudWxsLHZvaWQgMCxvKDU3NjM0NikpLGZsYWc6InRoYWlsYW5kIixncm91cDoiQXNpYSAvIFBhY2lmaWMiLGNvdW50cnk6InRoIixwcm92aWRlcklkOiIiLHNlYXJjaFRlcm1zOltvLmkxOG5leHQobnVsbCx2b2lkIDAsbyg1NTMwNDQpKV19LHt2YWx1ZToiS1JYIixuYW1lOiJLUlgiLGRlc2M6by5pMThuZXh0KG51bGwsdm9pZCAwLG8oOTYxMjg5KSksZmxhZzoic291dGhfa29yZWEiLGdyb3VwOiJBc2lhIC8gUGFjaWZpYyIsY291bnRyeToia3IiLHByb3ZpZGVySWQ6IiIsc2VhcmNoVGVybXM6W28uaTE4bmV4dChudWxsLHZvaWQgMCxvKDU4Nzc1MikpXX0se3ZhbHVlOiJCQUhSQUlOIixuYW1lOiJCSEIiLGRlc2M6by5pMThuZXh0KG51bGwsdm9pZCAwLG8oMTQ0NjUpKSxmbGFnOiJiYWhyYWluIixncm91cDoiTWlkZGxlIEVhc3QgLyBBZnJpY2EiLGNvdW50cnk6ImJoIixwcm92aWRlcklkOiIiLHNlYXJjaFRlcm1zOltvLmkxOG5leHQobnVsbCx2b2lkIDAsbyg1Nzg2NjUpKV19LHt2YWx1ZToiS1NFIixuYW1lOiJLU0UiLGRlc2M6by5pMThuZXh0KG51bGwsdm9pZCAwLG8oNzY2MDQwKSksZmxhZzoia3V3YWl0Iixncm91cDoiTWlkZGxlIEVhc3QgLyBBZnJpY2EiLGNvdW50cnk6Imt3Iixwcm92aWRlcklkOiIiLHNlYXJjaFRlcm1zOltvLmkxOG5leHQobnVsbCx2b2lkIDAsbygzOTUxMzApKV19LHt2YWx1ZToiQ1NFQ1kiLG5hbWU6IkNTRSIsZGVzYzpvLmkxOG5leHQobnVsbCx2b2lkIDAsbyg5NDM4ODMpKSxmbGFnOiJjeXBydXMiLGdyb3VwOiJFdXJvcGUiLGNvdW50cnk6ImN5Iixwcm92aWRlcklkOiIiLHNlYXJjaFRlcm1zOltvLmkxOG5leHQobnVsbCx2b2lkIDAsbyg2MzQ3MzcpKV19LHt2YWx1ZToiQlZNVCIsbmFtZToiQlZNVCIsZGVzYzpvLmkxOG5leHQobnVsbCx2b2lkIDAsbyg1NzMzNikpLGZsYWc6InR1bmlzaWEiLGdyb3VwOiJNaWRkbGUgRWFzdCAvIEFmcmljYSIsY291bnRyeToidG4iLHByb3ZpZGVySWQ6IiIsc2VhcmNoVGVybXM6W28uaTE4bmV4dChudWxsLHZvaWQgMCxvKDY3NzU5KSldfSx7dmFsdWU6IkFUSEVYIixuYW1lOiJBVEhFWCIsZGVzYzpvLmkxOG5leHQobnVsbCx2b2lkIDAsbyg2NDExNzYpKSxmbGFnOiJncmVlY2UiLGdyb3VwOiJFdXJvcGUiLGNvdW50cnk6ImdyIixwcm92aWRlcklkOiIifSx7dmFsdWU6IkJFTEVYIixuYW1lOiJCRUxFWCIsZGVzYzpvLmkxOG5leHQobnVsbCx2b2lkIDAsbygxMDQyMDApKSxmbGFnOiJzZXJiaWEiLGdyb3VwOiJFdXJvcGUiLGNvdW50cnk6InJzIixwcm92aWRlcklkOiIiLHNlYXJjaFRlcm1zOltvLmkxOG5leHQobnVsbCx2b2lkIDAsbyg3MTg1MjkpKV19LHt2YWx1ZToiRUdYIixuYW1lOiJFR1giLGRlc2M6by5pMThuZXh0KG51bGwsdm9pZCAwLG8oMTk3MTI1KSksZmxhZzoiZWd5cHQiLGdyb3VwOiJNaWRkbGUgRWFzdCAvIEFmcmljYSIsY291bnRyeToiZWciLHByb3ZpZGVySWQ6IiIsc2VhcmNoVGVybXM6W28uaTE4bmV4dChudWxsLHZvaWQgMCxvKDMzNzQzNykpXX0se3ZhbHVlOiJUQURBV1VMIixuYW1lOiJUYWRhd3VsIixkZXNjOm8uaTE4bmV4dChudWxsLHZvaWQgMCxvKDY5NzY0NykpLGZsYWc6InNhdWRpX2FyYWJpYSIsZ3JvdXA6Ik1pZGRsZSBFYXN0IC8gQWZyaWNhIixjb3VudHJ5OiJzYSIscHJvdmlkZXJJZDoiIixzZWFyY2hUZXJtczpbby5pMThuZXh0KG51bGwsdm9pZCAwLG8oNzYxNTIzKSldfSx7dmFsdWU6IkNTRU1BIixuYW1lOiJDU0UiLGRlc2M6by5pMThuZXh0KG51bGwsdm9pZCAwLG8oMzM5MDk3KSksZmxhZzoibW9yb2NjbyIsZ3JvdXA6Ik1pZGRsZSBFYXN0IC8gQWZyaWNhIixjb3VudHJ5OiJtYSIscHJvdmlkZXJJZDoiIixzZWFyY2hUZXJtczpbby5pMThuZXh0KG51bGwsdm9pZCAwLG8oNzIxNDMzKSldfSx7dmFsdWU6IklEWCIsbmFtZToiSURYIixkZXNjOm8uaTE4bmV4dChudWxsLHZvaWQgMCxvKDc1MTA1OCkpLGZsYWc6ImluZG9uZXNpYSIsZ3JvdXA6IkFzaWEgLyBQYWNpZmljIixjb3VudHJ5OiJpZCIscHJvdmlkZXJJZDoiIixzZWFyY2hUZXJtczpbby5pMThuZXh0KG51bGwsdm9pZCAwLG8oODAyOTc1KSldfSx7dmFsdWU6IkhTSSIsbmFtZToiSFNJIixkZXNjOm8uaTE4bmV4dChudWxsLHZvaWQgMCxvKDI5NTU1NSkpLGZsYWc6Imhvbmdfa29uZyIsZ3JvdXA6IkFzaWEgLyBQYWNpZmljIixjb3VudHJ5OiJoayIscHJvdmlkZXJJZDoiIixzZWFyY2hUZXJtczpbby5pMThuZXh0KG51bGwsdm9pZCAwLG8oNDYzNzc5KSldfSx7dmFsdWU6IlFTRSIsbmFtZToiUVNFIixkZXNjOm8uaTE4bmV4dChudWxsLHZvaWQgMCxvKDU5NTU1NSkpLGZsYWc6InFhdGFyIixncm91cDoiTWlkZGxlIEVhc3QgLyBBZnJpY2EiLGNvdW50cnk6InFhIixwcm92aWRlcklkOiIiLHNlYXJjaFRlcm1zOltvLmkxOG5leHQobnVsbCx2b2lkIDAsbyg5MzM3NTMpKV19LHt2YWx1ZToiT0FOREEiLG5hbWU6Ik9BTkRBIixkZXNjOm8uaTE4bmV4dChudWxsLHZvaWQgMCxvKDY5NTE4NCkpLGZsYWc6ImZvcmV4Iixncm91cDoiRm9yZXgiLGNvdW50cnk6IiIsc291cmNlSWQ6Ik9BTkRBIixwcm92aWRlcklkOiJvYW5kYSJ9LHt2YWx1ZToiT1BPRklOQU5DRSIsbmFtZToiT3BvZmluYW5jZSIsZGVzYzpvLmkxOG5leHQobnVsbCx2b2lkIDAsbygzMzIwNzApKSxmbGFnOiJmb3JleCIsZ3JvdXA6IkZvcmV4Iixjb3VudHJ5OiIiLHNvdXJjZUlkOiJPUE9GSU5BTkNFIixwcm92aWRlcklkOiJvcG9maW5hbmNlIn0se3ZhbHVlOiJTQVhPIixuYW1lOiJTYXhvIixkZXNjOm8uaTE4bmV4dChudWxsLHZvaWQgMCxvKDE3MzQ3OSkpLGZsYWc6ImZvcmV4Iixncm91cDoiRm9yZXgiLGNvdW50cnk6IiIsc291cmNlSWQ6IlNBWE8iLHByb3ZpZGVySWQ6InNheG9iYW5rIn0se3ZhbHVlOiJQRVBQRVJTVE9ORSIsbmFtZToiUGVwcGVyc3RvbmUiLGRlc2M6by5pMThuZXh0KG51bGwsdm9pZCAwLG8oMjg5NDkzKSksZmxhZzoiZm9yZXgiLApncm91cDoiRm9yZXgiLGNvdW50cnk6IiIsc291cmNlSWQ6IlBFUFBFUlNUT05FIixwcm92aWRlcklkOiJwZXBwZXJzdG9uZSJ9LHt2YWx1ZToiUEhJTExJUE5PVkEiLG5hbWU6IlBoaWxsaXAgTm92YSIsZGVzYzpvLmkxOG5leHQobnVsbCx2b2lkIDAsbyg4MzIwMzYpKSxmbGFnOiJmb3JleCIsZ3JvdXA6IkZvcmV4Iixjb3VudHJ5OiIiLHByb3ZpZGVySWQ6InBoaWxsaXBub3ZhIn0se3ZhbHVlOiJQVVJQTEVUUkFESU5HIixuYW1lOiJQdXJwbGUgVHJhZGluZyIsZGVzYzpvLmkxOG5leHQobnVsbCx2b2lkIDAsbygxMTU3OTEpKSxmbGFnOiJmb3JleCIsZ3JvdXA6IkZvcmV4Iixjb3VudHJ5OiIiLHNvdXJjZUlkOiJQVVJQTEVUUkFESU5HIixwcm92aWRlcklkOiJwdXJwbGV0cmFkaW5nIn0se3ZhbHVlOiJTS0lMTElORyIsbmFtZToiU2tpbGxpbmciLGRlc2M6by5pMThuZXh0KG51bGwsdm9pZCAwLG8oODA2OTczKSksZmxhZzoiZm9yZXgiLGdyb3VwOiJGb3JleCIsY291bnRyeToiIixzb3VyY2VJZDoiU0tJTExJTkciLHByb3ZpZGVySWQ6InNraWxsaW5nIn0se3ZhbHVlOiJTUFJFQURFWCIsbmFtZToiU3ByZWFkZXgiLGRlc2M6by5pMThuZXh0KG51bGwsdm9pZCAwLG8oNjkxMjc5KSksZmxhZzoiZm9yZXgiLGdyb3VwOiJGb3JleCIsY291bnRyeToiIixwcm92aWRlcklkOiJzcHJlYWRleCJ9LHt2YWx1ZToiU1dJU1NRVU9URSIsbmFtZToiU3dpc3NxdW90ZSIsZGVzYzpvLmkxOG5leHQobnVsbCx2b2lkIDAsbyg2NjA1MzQpKSxmbGFnOiJmb3JleCIsZ3JvdXA6IkZvcmV4Iixjb3VudHJ5OiIiLHNvdXJjZUlkOiJTV0lTU1FVT1RFIixwcm92aWRlcklkOiJzd2lzc3F1b3RlIn0se3ZhbHVlOiJHQkVCUk9LRVJTIixuYW1lOiJHQkUgYnJva2VycyIsZGVzYzpvLmkxOG5leHQobnVsbCx2b2lkIDAsbygyOTkxNzIpKSxmbGFnOiJmb3JleCIsZ3JvdXA6IkZvcmV4Iixjb3VudHJ5OiIiLHNvdXJjZUlkOiJHQkVCUk9LRVJTIixwcm92aWRlcklkOiJnYmVicm9rZXJzIn0se3ZhbHVlOiJFVVJPTkVYVCIsbmFtZToiRXVyb25leHQiLGRlc2M6by5pMThuZXh0KG51bGwsdm9pZCAwLG8oOTI0NzY0KSksZmxhZzoiZXVyb3BlIixncm91cDoiRXVyb3BlIixjb3VudHJ5OiJldSIscHJvdmlkZXJJZDoiIn0se3ZhbHVlOiJFVVJPTkVYVEFNUyIsbmFtZToiRVVST05FWFRBTVMiLGRlc2M6by5pMThuZXh0KG51bGwsdm9pZCAwLG8oNDgyMDc5KSksZmxhZzoibmV0aGVybGFuZHMiLGdyb3VwOiJFdXJvcGUiLGNvdW50cnk6Im5sIixwcm92aWRlcklkOiIiLHNlYXJjaFRlcm1zOltvLmkxOG5leHQobnVsbCx2b2lkIDAsbyg2MTY4NjIpKV19LHt2YWx1ZToiRVVST05FWFRCUlUiLG5hbWU6IkVVUk9ORVhUQlJVIixkZXNjOm8uaTE4bmV4dChudWxsLHZvaWQgMCxvKDMzNzE1NikpLGZsYWc6ImJlbGdpdW0iLGdyb3VwOiJFdXJvcGUiLGNvdW50cnk6ImJlIixwcm92aWRlcklkOiIiLHNlYXJjaFRlcm1zOltvLmkxOG5leHQobnVsbCx2b2lkIDAsbyg4MzMyNCkpXX0se3ZhbHVlOiJFVVJPTkVYVERVQiIsbmFtZToiRVVST05FWFREVUIiLGRlc2M6by5pMThuZXh0KG51bGwsdm9pZCAwLG8oNTg4MzM2KSksZmxhZzoiaXJlbGFuZCIsZ3JvdXA6IkV1cm9wZSIsY291bnRyeToiaWUiLHByb3ZpZGVySWQ6IiIsc2VhcmNoVGVybXM6W28uaTE4bmV4dChudWxsLHZvaWQgMCxvKDcxMTUyNykpXX0se3ZhbHVlOiJFVVJPTkVYVExJUyIsbmFtZToiRVVST05FWFRMSVMiLGRlc2M6by5pMThuZXh0KG51bGwsdm9pZCAwLG8oNzk4MzAyKSksZmxhZzoicG9ydHVnYWwiLGdyb3VwOiJFdXJvcGUiLGNvdW50cnk6InB0Iixwcm92aWRlcklkOiIiLHNlYXJjaFRlcm1zOltvLmkxOG5leHQobnVsbCx2b2lkIDAsbygzOTg5NCkpXX0se3ZhbHVlOiJFVVJPTkVYVFBBUiIsbmFtZToiRVVST05FWFRQQVIiLGRlc2M6by5pMThuZXh0KG51bGwsdm9pZCAwLG8oMzIyODMxKSksZmxhZzoiZnJhbmNlIixncm91cDoiRXVyb3BlIixjb3VudHJ5OiJmciIscHJvdmlkZXJJZDoiIixzZWFyY2hUZXJtczpbby5pMThuZXh0KG51bGwsdm9pZCAwLG8oMTM2MjM4KSldfSx7dmFsdWU6Ik9TTCIsbmFtZToiRVVST05FWFRPU0UiLGRlc2M6by5pMThuZXh0KG51bGwsdm9pZCAwLG8oOTcwMTY4KSksZmxhZzoibm9yd2F5Iixncm91cDoiRXVyb3BlIixjb3VudHJ5OiJubyIscHJvdmlkZXJJZDoiIixzZWFyY2hUZXJtczpbby5pMThuZXh0KG51bGwsdm9pZCAwLG8oODQ1NTIzKSldfSx7dmFsdWU6IkVVUk9UTFgiLG5hbWU6IkVVUk9UTFgiLGRlc2M6by5pMThuZXh0KG51bGwsdm9pZCAwLG8oNDkyOTg1KSksZmxhZzoiaXRhbHkiLGdyb3VwOiJFdXJvcGUiLGNvdW50cnk6Iml0Iixwcm92aWRlcklkOiIiLHNlYXJjaFRlcm1zOltvLmkxOG5leHQobnVsbCx2b2lkIDAsbyg4OTgxNjMpKV19LHt2YWx1ZToiT01YIixuYW1lOiJPTVgiLGRlc2M6by5pMThuZXh0KG51bGwsdm9pZCAwLG8oMzMzMzQ5KSksZmxhZzoiZXVyb3BlIixncm91cDoiRXVyb3BlIixjb3VudHJ5OiJldSIscHJvdmlkZXJJZDoiIn0se3ZhbHVlOiJGV0IiLG5hbWU6IkZXQiIsZGVzYzpvLmkxOG5leHQobnVsbCx2b2lkIDAsbyg5MTA2MDEpKSxmbGFnOiJnZXJtYW55Iixncm91cDoiRXVyb3BlIixjb3VudHJ5OiJkZSIscHJvdmlkZXJJZDoiIixzZWFyY2hUZXJtczpbby5pMThuZXh0KG51bGwsdm9pZCAwLG8oNDY2Njk4KSldfSx7dmFsdWU6IkVFWCIsbmFtZToiRUVYIixkZXNjOm8uaTE4bmV4dChudWxsLHZvaWQgMCxvKDk4OTI5OCkpLGZsYWc6Imdlcm1hbnkiLGdyb3VwOiJFdXJvcGUiLGNvdW50cnk6ImRlIixwcm92aWRlcklkOiIiLHNlYXJjaFRlcm1zOltvLmkxOG5leHQobnVsbCx2b2lkIDAsbyg0NjY2OTgpKV19LHt2YWx1ZToiRlJBIixuYW1lOiJGUkEiLGRlc2M6by5pMThuZXh0KG51bGwsdm9pZCAwLG8oNjc3MDgwKSksZmxhZzoiZ2VybWFueSIsaGlkZUluU3ltYm9sU2VhcmNoOiEwLGdyb3VwOiJFdXJvcGUiLGNvdW50cnk6ImRlIixwcm92aWRlcklkOiIiLHNlYXJjaFRlcm1zOltvLmkxOG5leHQobnVsbCx2b2lkIDAsbyg0NjY2OTgpKV19LHt2YWx1ZToiTFMiLG5hbWU6IkxTIiwKZGVzYzpvLmkxOG5leHQobnVsbCx2b2lkIDAsbyg4ODA0NzEpKSxmbGFnOiJnZXJtYW55Iixncm91cDoiRXVyb3BlIixjb3VudHJ5OiJkZSIscHJvdmlkZXJJZDoiIixzZWFyY2hUZXJtczpbby5pMThuZXh0KG51bGwsdm9pZCAwLG8oNDY2Njk4KSldfSx7dmFsdWU6IkxTWCIsbmFtZToiTFNYIixkZXNjOm8uaTE4bmV4dChudWxsLHZvaWQgMCxvKDg4MDQ3MSkpLGZsYWc6Imdlcm1hbnkiLGdyb3VwOiJFdXJvcGUiLGNvdW50cnk6ImRlIixwcm92aWRlcklkOiIiLHNlYXJjaFRlcm1zOltvLmkxOG5leHQobnVsbCx2b2lkIDAsbyg0NjY2OTgpKV19LHt2YWx1ZToiU1dCIixuYW1lOiJTV0IiLGRlc2M6by5pMThuZXh0KG51bGwsdm9pZCAwLG8oMzA3OTYpKSxmbGFnOiJnZXJtYW55Iixncm91cDoiRXVyb3BlIixjb3VudHJ5OiJkZSIscHJvdmlkZXJJZDoiIixzZWFyY2hUZXJtczpbby5pMThuZXh0KG51bGwsdm9pZCAwLG8oNDY2Njk4KSldfSx7dmFsdWU6IlhFVFIiLG5hbWU6IlhFVFIiLGRlc2M6by5pMThuZXh0KG51bGwsdm9pZCAwLG8oOTYxODQ3KSksZmxhZzoiZ2VybWFueSIsZ3JvdXA6IkV1cm9wZSIsY291bnRyeToiZGUiLHByb3ZpZGVySWQ6IiIsc2VhcmNoVGVybXM6W28uaTE4bmV4dChudWxsLHZvaWQgMCxvKDQ2NjY5OCkpXX0se3ZhbHVlOiJCTUUiLG5hbWU6IkJNRSIsZGVzYzpvLmkxOG5leHQobnVsbCx2b2lkIDAsbyg5MTE0NTYpKSxmbGFnOiJzcGFpbiIsZ3JvdXA6IkV1cm9wZSIsY291bnRyeToiZXMiLHByb3ZpZGVySWQ6IiIsc2VhcmNoVGVybXM6W28uaTE4bmV4dChudWxsLHZvaWQgMCxvKDc4ODMyMSkpXX0se3ZhbHVlOiJCU1NFIixuYW1lOiJCU1NFIixkZXNjOm8uaTE4bmV4dChudWxsLHZvaWQgMCxvKDE0NzU2OSkpLGZsYWc6InNsb3Zha2lhIixncm91cDoiRXVyb3BlIixjb3VudHJ5OiJzayIscHJvdmlkZXJJZDoiIixzZWFyY2hUZXJtczpbby5pMThuZXh0KG51bGwsdm9pZCAwLG8oMjYzNDMyKSldfSx7dmFsdWU6IkJWQiIsbmFtZToiQlZCIixkZXNjOm8uaTE4bmV4dChudWxsLHZvaWQgMCxvKDc2NTY5MykpLGZsYWc6InJvbWFuaWEiLGdyb3VwOiJFdXJvcGUiLGNvdW50cnk6InJvIixwcm92aWRlcklkOiIiLHNlYXJjaFRlcm1zOltvLmkxOG5leHQobnVsbCx2b2lkIDAsbyg5MDU5NDUpKV19LHt2YWx1ZToiQkVUIixuYW1lOiJCRVQiLGRlc2M6by5pMThuZXh0KG51bGwsdm9pZCAwLG8oNzQxMzQxKSksZmxhZzoiaHVuZ2FyeSIsZ3JvdXA6IkV1cm9wZSIsY291bnRyeToiaHUiLHByb3ZpZGVySWQ6IiIsc2VhcmNoVGVybXM6W28uaTE4bmV4dChudWxsLHZvaWQgMCxvKDY2MTM2NikpXX0se3ZhbHVlOiJHUFciLG5hbWU6IkdQVyIsZGVzYzpvLmkxOG5leHQobnVsbCx2b2lkIDAsbyg5OTQzMjQpKSxmbGFnOiJwb2xhbmQiLGdyb3VwOiJFdXJvcGUiLGNvdW50cnk6InBsIixwcm92aWRlcklkOiIiLHNlYXJjaFRlcm1zOltvLmkxOG5leHQobnVsbCx2b2lkIDAsbyg5Njg2MDkpKV19LHt2YWx1ZToiTkVXQ09OTkVDVCIsbmFtZToiR1BXIOKAlCBOZXdDb25uZWN0IixkZXNjOm8uaTE4bmV4dChudWxsLHZvaWQgMCxvKDg1NjI2KSksZmxhZzoicG9sYW5kIixncm91cDoiRXVyb3BlIixjb3VudHJ5OiJwbCIscHJvdmlkZXJJZDoiIixzZWFyY2hUZXJtczpbby5pMThuZXh0KG51bGwsdm9pZCAwLG8oOTY4NjA5KSldfSx7dmFsdWU6IlpTRSIsbmFtZToiWlNFIixkZXNjOm8uaTE4bmV4dChudWxsLHZvaWQgMCxvKDUzNzEzNykpLGZsYWc6ImNyb2F0aWEiLGdyb3VwOiJFdXJvcGUiLGNvdW50cnk6ImhyIixwcm92aWRlcklkOiIiLHNlYXJjaFRlcm1zOltvLmkxOG5leHQobnVsbCx2b2lkIDAsbyg0MDc0KSldfSx7dmFsdWU6IkxVWFNFIixuYW1lOiJMVVhTRSIsZGVzYzpvLmkxOG5leHQobnVsbCx2b2lkIDAsbyg0MzYyNTMpKSxmbGFnOiJsdXhlbWJvdXJnIixncm91cDoiRXVyb3BlIixjb3VudHJ5OiJsdSIscHJvdmlkZXJJZDoiIixzZWFyY2hUZXJtczpbby5pMThuZXh0KG51bGwsdm9pZCAwLG8oOTc1NDQ3KSldfSx7dmFsdWU6IkxKU0UiLG5hbWU6IkxKU0UiLGRlc2M6by5pMThuZXh0KG51bGwsdm9pZCAwLG8oMzEzOTY0KSksZmxhZzoic2xvdmVuaWEiLGdyb3VwOiJFdXJvcGUiLGNvdW50cnk6InNpIixwcm92aWRlcklkOiIiLHNlYXJjaFRlcm1zOltvLmkxOG5leHQobnVsbCx2b2lkIDAsbyg3MjE4MjEpKV19LHt2YWx1ZToiTUlMIixuYW1lOiJNSUwiLGRlc2M6by5pMThuZXh0KG51bGwsdm9pZCAwLG8oMzg1ODI0KSksZmxhZzoiaXRhbHkiLGdyb3VwOiJFdXJvcGUiLGNvdW50cnk6Iml0Iixwcm92aWRlcklkOiIiLHNlYXJjaFRlcm1zOltvLmkxOG5leHQobnVsbCx2b2lkIDAsbyg4OTgxNjMpKV19LHt2YWx1ZToiTkdNIixuYW1lOiJOR00iLGRlc2M6by5pMThuZXh0KG51bGwsdm9pZCAwLG8oMjIwNTU3KSksZmxhZzoic3dlZGVuIixncm91cDoiRXVyb3BlIixjb3VudHJ5OiJzZSIscHJvdmlkZXJJZDoiIixzZWFyY2hUZXJtczpbby5pMThuZXh0KG51bGwsdm9pZCAwLG8oMzY5OTYzKSldfSx7dmFsdWU6IkRVUyIsbmFtZToiRFVTIixkZXNjOm8uaTE4bmV4dChudWxsLHZvaWQgMCxvKDQ1MzIzNCkpLGZsYWc6Imdlcm1hbnkiLGdyb3VwOiJFdXJvcGUiLGNvdW50cnk6ImRlIixwcm92aWRlcklkOiIiLHNlYXJjaFRlcm1zOltvLmkxOG5leHQobnVsbCx2b2lkIDAsbyg0NjY2OTgpKV19LHt2YWx1ZToiSEFNIixuYW1lOiJIQU0iLGRlc2M6by5pMThuZXh0KG51bGwsdm9pZCAwLG8oODg1NTUwKSksZmxhZzoiZ2VybWFueSIsZ3JvdXA6IkV1cm9wZSIsY291bnRyeToiZGUiLHByb3ZpZGVySWQ6IiIsc2VhcmNoVGVybXM6W28uaTE4bmV4dChudWxsLHZvaWQgMCxvKDQ2NjY5OCkpXX0se3ZhbHVlOiJIQU4iLG5hbWU6IkhBTiIsZGVzYzpvLmkxOG5leHQobnVsbCx2b2lkIDAsbyg0NjY0OCkpLGZsYWc6Imdlcm1hbnkiLGdyb3VwOiJFdXJvcGUiLGNvdW50cnk6ImRlIixwcm92aWRlcklkOiIiLHNlYXJjaFRlcm1zOltvLmkxOG5leHQobnVsbCx2b2lkIDAsbyg0NjY2OTgpKV19LHt2YWx1ZToiTVVOIixuYW1lOiJNVU4iLGRlc2M6by5pMThuZXh0KG51bGwsdm9pZCAwLG8oNjU0NDgzKSksCmZsYWc6Imdlcm1hbnkiLGdyb3VwOiJFdXJvcGUiLGNvdW50cnk6ImRlIixwcm92aWRlcklkOiIiLHNlYXJjaFRlcm1zOltvLmkxOG5leHQobnVsbCx2b2lkIDAsbyg0NjY2OTgpKV19LHt2YWx1ZToiVFJBREVHQVRFIixuYW1lOiJUUkFERUdBVEUiLGRlc2M6by5pMThuZXh0KG51bGwsdm9pZCAwLG8oMTM3NTUxKSksZmxhZzoiZ2VybWFueSIsZ3JvdXA6IkV1cm9wZSIsY291bnRyeToiZGUiLHByb3ZpZGVySWQ6IiIsc2VhcmNoVGVybXM6W28uaTE4bmV4dChudWxsLHZvaWQgMCxvKDQ2NjY5OCkpXX0se3ZhbHVlOiJHRVRURVgiLG5hbWU6IkdFVFRFWCIsZGVzYzpvLmkxOG5leHQobnVsbCx2b2lkIDAsbyg3OTM2MDIpKSxmbGFnOiJnZXJtYW55Iixncm91cDoiRXVyb3BlIixjb3VudHJ5OiJkZSIscHJvdmlkZXJJZDoiZmluYW56ZW4iLHNlYXJjaFRlcm1zOltvLmkxOG5leHQobnVsbCx2b2lkIDAsbyg0NjY2OTgpKV19LHt2YWx1ZToiTUlMU0VERVgiLG5hbWU6Ik1JTFNFREVYIixkZXNjOm8uaTE4bmV4dChudWxsLHZvaWQgMCxvKDk0OTgyNikpLGZsYWc6Iml0YWx5Iixncm91cDoiRXVyb3BlIixoaWRlSW5TeW1ib2xTZWFyY2g6ITAsY291bnRyeToiaXQiLHByb3ZpZGVySWQ6IiIsc2VhcmNoVGVybXM6W28uaTE4bmV4dChudWxsLHZvaWQgMCxvKDg5ODE2MykpXX0se3ZhbHVlOiJJU1QiLG5hbWU6IklTVCIsZGVzYzpvLmkxOG5leHQobnVsbCx2b2lkIDAsbygzMzUxMjIpKSxmbGFnOiJ0dXJrZXkiLGhpZGVJblN5bWJvbFNlYXJjaDohMCxncm91cDoiRXVyb3BlIixjb3VudHJ5OiJ0ciIscHJvdmlkZXJJZDoiIixzZWFyY2hUZXJtczpbby5pMThuZXh0KG51bGwsdm9pZCAwLG8oNjMxODEwKSldfSx7dmFsdWU6IkJJU1QiLG5hbWU6IkJJU1QiLGRlc2M6by5pMThuZXh0KG51bGwsdm9pZCAwLG8oMjg5NjcwKSksZmxhZzoidHVya2V5Iixncm91cDoiRXVyb3BlIixjb3VudHJ5OiJ0ciIscHJvdmlkZXJJZDoiIixzZWFyY2hUZXJtczpbby5pMThuZXh0KG51bGwsdm9pZCAwLG8oNjMxODEwKSldfSx7dmFsdWU6IlRBU0UiLG5hbWU6IlRBU0UiLGRlc2M6by5pMThuZXh0KG51bGwsdm9pZCAwLG8oMjMzNTUpKSxmbGFnOiJpc3JhZWwiLGdyb3VwOiJNaWRkbGUgRWFzdCAvIEFmcmljYSIsY291bnRyeToiaWwiLHByb3ZpZGVySWQ6IiIsc2VhcmNoVGVybXM6W28uaTE4bmV4dChudWxsLHZvaWQgMCxvKDgwMzM1NCkpXX0se3ZhbHVlOiJTSVgiLG5hbWU6IlNJWCIsZGVzYzpvLmkxOG5leHQobnVsbCx2b2lkIDAsbyg0MjMyNykpLGZsYWc6InN3aXR6ZXJsYW5kIixncm91cDoiRXVyb3BlIixjb3VudHJ5OiJjaCIscHJvdmlkZXJJZDoiIixzZWFyY2hUZXJtczpbby5pMThuZXh0KG51bGwsdm9pZCAwLG8oNzMzOTcxKSldfSx7dmFsdWU6IkJYIixuYW1lOiJCWCIsZGVzYzpvLmkxOG5leHQobnVsbCx2b2lkIDAsbyg3NjI0NjEpKSxmbGFnOiJzd2l0emVybGFuZCIsZ3JvdXA6IkV1cm9wZSIsY291bnRyeToiY2giLHByb3ZpZGVySWQ6IiIsc2VhcmNoVGVybXM6W28uaTE4bmV4dChudWxsLHZvaWQgMCxvKDczMzk3MSkpXX0se3ZhbHVlOiJQU0VDWiIsbmFtZToiUFNFIixkZXNjOm8uaTE4bmV4dChudWxsLHZvaWQgMCxvKDEzMzQ2NCkpLGZsYWc6ImN6ZWNoIixncm91cDoiRXVyb3BlIixjb3VudHJ5OiJjeiIscHJvdmlkZXJJZDoiIixzZWFyY2hUZXJtczpbby5pMThuZXh0KG51bGwsdm9pZCAwLG8oMTI5ODA4KSldfSx7dmFsdWU6IkFTWCIsbmFtZToiQVNYIixkZXNjOm8uaTE4bmV4dChudWxsLHZvaWQgMCxvKDc0MTU3MykpLGZsYWc6ImF1c3RyYWxpYSIsZ3JvdXA6IkFzaWEgLyBQYWNpZmljIixjb3VudHJ5OiJhdSIscHJvdmlkZXJJZDoiIixzZWFyY2hUZXJtczpbby5pMThuZXh0KG51bGwsdm9pZCAwLG8oMjc5MjMzKSldfSx7dmFsdWU6IkNISVhBVSIsbmFtZToiQ2JvZSBBdXN0cmFsaWEiLGRlc2M6by5pMThuZXh0KG51bGwsdm9pZCAwLG8oNzI4ODQ3KSksZmxhZzoiYXVzdHJhbGlhIixncm91cDoiQXNpYSAvIFBhY2lmaWMiLGNvdW50cnk6ImF1Iixwcm92aWRlcklkOiIiLHNlYXJjaFRlcm1zOltvLmkxOG5leHQobnVsbCx2b2lkIDAsbygyNzkyMzMpKV19LHt2YWx1ZToiVklFIixuYW1lOiJXQiIsZGVzYzpvLmkxOG5leHQobnVsbCx2b2lkIDAsbygyOTA3MjIpKSxmbGFnOiJhdXN0cmlhIixncm91cDoiRXVyb3BlIixjb3VudHJ5OiJhdCIscHJvdmlkZXJJZDoiIixzZWFyY2hUZXJtczpbby5pMThuZXh0KG51bGwsdm9pZCAwLG8oMjM4Mjc4KSldfSx7dmFsdWU6IkRTRUJEIixuYW1lOiJEU0UiLGRlc2M6by5pMThuZXh0KG51bGwsdm9pZCAwLG8oMTE1MjI0KSksZmxhZzoiYmFuZ2xhZGVzaCIsZ3JvdXA6IkFzaWEgLyBQYWNpZmljIixjb3VudHJ5OiJiZCIscHJvdmlkZXJJZDoiIixzZWFyY2hUZXJtczpbby5pMThuZXh0KG51bGwsdm9pZCAwLG8oNDUyMDE1KSldfSx7dmFsdWU6Ik5aWCIsbmFtZToiTlpYIixkZXNjOm8uaTE4bmV4dChudWxsLHZvaWQgMCxvKDEyNzYyKSksZmxhZzoibmV3X3plYWxhbmQiLGdyb3VwOiJBc2lhIC8gUGFjaWZpYyIsY291bnRyeToibnoiLHByb3ZpZGVySWQ6IiIsc2VhcmNoVGVybXM6W28uaTE4bmV4dChudWxsLHZvaWQgMCxvKDQyMTYpKV19LHt2YWx1ZToiQ0ZGRVgiLG5hbWU6IkNGRkVYIixkZXNjOm8uaTE4bmV4dChudWxsLHZvaWQgMCxvKDM3MDY1OCkpLGZsYWc6ImNoaW5hIixncm91cDoiQXNpYSAvIFBhY2lmaWMiLGNvdW50cnk6ImNuIixwcm92aWRlcklkOiIiLHNlYXJjaFRlcm1zOltvLmkxOG5leHQobnVsbCx2b2lkIDAsbyg2MDI1MTkpKV19LHt2YWx1ZToiU1NFIixuYW1lOiJTU0UiLGRlc2M6by5pMThuZXh0KG51bGwsdm9pZCAwLG8oMzY4OTIpKSxmbGFnOiJjaGluYSIsZ3JvdXA6IkFzaWEgLyBQYWNpZmljIixjb3VudHJ5OiJjbiIscHJvdmlkZXJJZDoiIixzZWFyY2hUZXJtczpbby5pMThuZXh0KG51bGwsdm9pZCAwLG8oNjAyNTE5KSldfSx7dmFsdWU6IlNIRkUiLG5hbWU6IlNIRkUiLGRlc2M6by5pMThuZXh0KG51bGwsdm9pZCAwLG8oOTQ2NjM0KSksZmxhZzoiY2hpbmEiLGdyb3VwOiJBc2lhIC8gUGFjaWZpYyIsY291bnRyeToiY24iLHByb3ZpZGVySWQ6IiIsCnNlYXJjaFRlcm1zOltvLmkxOG5leHQobnVsbCx2b2lkIDAsbyg2MDI1MTkpKV19LHt2YWx1ZToiU1pTRSIsbmFtZToiU1pTRSIsZGVzYzpvLmkxOG5leHQobnVsbCx2b2lkIDAsbyg4MzQ5NjEpKSxmbGFnOiJjaGluYSIsZ3JvdXA6IkFzaWEgLyBQYWNpZmljIixjb3VudHJ5OiJjbiIscHJvdmlkZXJJZDoiIixzZWFyY2hUZXJtczpbby5pMThuZXh0KG51bGwsdm9pZCAwLG8oNjAyNTE5KSldfSx7dmFsdWU6IlpDRSIsbmFtZToiWkNFIixkZXNjOm8uaTE4bmV4dChudWxsLHZvaWQgMCxvKDgxODg1MCkpLGZsYWc6ImNoaW5hIixncm91cDoiQXNpYSAvIFBhY2lmaWMiLGNvdW50cnk6ImNuIixwcm92aWRlcklkOiIiLHNlYXJjaFRlcm1zOltvLmkxOG5leHQobnVsbCx2b2lkIDAsbyg2MDI1MTkpKV19LHt2YWx1ZToiSEtFWCIsbmFtZToiSEtFWCIsZGVzYzpvLmkxOG5leHQobnVsbCx2b2lkIDAsbyg2Njk4MzcpKSxmbGFnOiJob25nX2tvbmciLGdyb3VwOiJBc2lhIC8gUGFjaWZpYyIsY291bnRyeToiaGsiLHByb3ZpZGVySWQ6IiIsc2VhcmNoVGVybXM6W28uaTE4bmV4dChudWxsLHZvaWQgMCxvKDQ2Mzc3OSkpXX0se3ZhbHVlOiJQU0UiLG5hbWU6IlBTRSIsZGVzYzpvLmkxOG5leHQobnVsbCx2b2lkIDAsbyg4NjAyMTEpKSxmbGFnOiJwaGlsaXBwaW5lcyIsZ3JvdXA6IkFzaWEgLyBQYWNpZmljIixjb3VudHJ5OiJwaCIscHJvdmlkZXJJZDoiIixzZWFyY2hUZXJtczpbby5pMThuZXh0KG51bGwsdm9pZCAwLG8oNjEzNjQ3KSldfSx7dmFsdWU6IlBTWCIsbmFtZToiUFNYIixkZXNjOm8uaTE4bmV4dChudWxsLHZvaWQgMCxvKDk2MTI0NSkpLGZsYWc6InBha2lzdGFuIixncm91cDoiQXNpYSAvIFBhY2lmaWMiLGNvdW50cnk6InBrIixwcm92aWRlcklkOiIiLHNlYXJjaFRlcm1zOltvLmkxOG5leHQobnVsbCx2b2lkIDAsbyg4NDQ0MzYpKV19LHt2YWx1ZToiTlNFTkciLG5hbWU6Ik5TRSIsZGVzYzpvLmkxOG5leHQobnVsbCx2b2lkIDAsbyg1NDQxMjEpKSxmbGFnOiJuaWdlcmlhIixncm91cDoiTWlkZGxlIEVhc3QgLyBBZnJpY2EiLGNvdW50cnk6Im5nIixwcm92aWRlcklkOiIiLHNlYXJjaFRlcm1zOltvLmkxOG5leHQobnVsbCx2b2lkIDAsbyg4NDk4NjgpKV19LHt2YWx1ZToiTlNFS0UiLG5hbWU6Ik5TRSIsZGVzYzpvLmkxOG5leHQobnVsbCx2b2lkIDAsbygyNDUyNDkpKSxmbGFnOiJrZW55YSIsZ3JvdXA6Ik1pZGRsZSBFYXN0IC8gQWZyaWNhIixjb3VudHJ5OiJrZSIscHJvdmlkZXJJZDoiIixzZWFyY2hUZXJtczpbby5pMThuZXh0KG51bGwsdm9pZCAwLG8oODE0OTY2KSldfSx7dmFsdWU6IkpTRSIsbmFtZToiSlNFIixkZXNjOm8uaTE4bmV4dChudWxsLHZvaWQgMCxvKDgxOTI4OSkpLGZsYWc6InNvdXRoX2FmcmljYSIsZ3JvdXA6Ik1pZGRsZSBFYXN0IC8gQWZyaWNhIixjb3VudHJ5OiJ6YSIscHJvdmlkZXJJZDoiIixzZWFyY2hUZXJtczpbby5pMThuZXh0KG51bGwsdm9pZCAwLG8oMzEwMDgyKSldfSx7dmFsdWU6IkpGWCIsbmFtZToiSkZYIixkZXNjOm8uaTE4bmV4dChudWxsLHZvaWQgMCxvKDkzMTIzMikpLGZsYWc6ImZvcmV4Iixncm91cDoiRm9yZXgiLGNvdW50cnk6IiIscHJvdmlkZXJJZDoiamZ4In0se3ZhbHVlOiJNQVRTVUkiLG5hbWU6Ik1BVFNVSSIsZGVzYzpvLmkxOG5leHQobnVsbCx2b2lkIDAsbyg3NjAwNjkpKSxmbGFnOiJmb3JleCIsZ3JvdXA6IkZvcmV4Iixjb3VudHJ5OiIiLHByb3ZpZGVySWQ6Im1hdHN1aSJ9LHt2YWx1ZToiQ09JTkJBU0UiLG5hbWU6IkNvaW5iYXNlIixkZXNjOm8uaTE4bmV4dChudWxsLHZvaWQgMCxvKDE5NTg4NikpLGZsYWc6ImJpdGNvaW4iLGdyb3VwOiJDcnlwdG9jdXJyZW5jeSIsY291bnRyeToiIixzb3VyY2VJZDoiQ09JTkJBU0UiLHByb3ZpZGVySWQ6ImNvaW5iYXNlIn0se3ZhbHVlOiJDSVRZSU5ERVgiLG5hbWU6IkNpdHkgSW5kZXgiLGRlc2M6by5pMThuZXh0KG51bGwsdm9pZCAwLG8oMjUyOTUxKSksZmxhZzoiZm9yZXgiLGdyb3VwOiJGb3JleCIsY291bnRyeToiIixzb3VyY2VJZDoiQ0lUWUlOREVYIixwcm92aWRlcklkOiJjaXR5aW5kZXgifSx7dmFsdWU6IlVTSSIsbmFtZToiVVNJIixkZXNjOm8uaTE4bmV4dChudWxsLHZvaWQgMCxvKDEzOTE0MSkpLGZsYWc6InVzYSIsaGlkZUluU3ltYm9sU2VhcmNoOiEwLGdyb3VwOiJOb3J0aCBBbWVyaWNhIixjb3VudHJ5OiJ1cyIscHJvdmlkZXJJZDoiIixzZWFyY2hUZXJtczpbby5pMThuZXh0KG51bGwsdm9pZCAwLG8oMzAxMTE3KSksby5pMThuZXh0KG51bGwsdm9pZCAwLG8oMjc4Nzg4KSldfSx7dmFsdWU6Ik9NWEhFWCIsbmFtZToiSEVYIixkZXNjOm8uaTE4bmV4dChudWxsLHZvaWQgMCxvKDI5ODE4MCkpLGZsYWc6ImZpbmxhbmQiLGdyb3VwOiJFdXJvcGUiLGNvdW50cnk6ImZpIixwcm92aWRlcklkOiIiLHNlYXJjaFRlcm1zOltvLmkxOG5leHQobnVsbCx2b2lkIDAsbyg5NzY0NTQpKV19LHt2YWx1ZToiT01YSUNFIixuYW1lOiJJQ0VYIixkZXNjOm8uaTE4bmV4dChudWxsLHZvaWQgMCxvKDE4OTU5MCkpLGZsYWc6ImljZWxhbmQiLGdyb3VwOiJFdXJvcGUiLGNvdW50cnk6ImlzIixwcm92aWRlcklkOiIiLHNlYXJjaFRlcm1zOltvLmkxOG5leHQobnVsbCx2b2lkIDAsbyg0NDAxODgpKV19LHt2YWx1ZToiT01YQ09QIixuYW1lOiJDU0UiLGRlc2M6by5pMThuZXh0KG51bGwsdm9pZCAwLG8oOTQyMzE3KSksZmxhZzoiZGVubWFyayIsZ3JvdXA6IkV1cm9wZSIsY291bnRyeToiZGsiLHByb3ZpZGVySWQ6IiIsc2VhcmNoVGVybXM6W28uaTE4bmV4dChudWxsLHZvaWQgMCxvKDg1MjUwMSkpXX0se3ZhbHVlOiJPTVhTVE8iLG5hbWU6IlNUTyIsZGVzYzpvLmkxOG5leHQobnVsbCx2b2lkIDAsbygxMjU1NjgpKSxmbGFnOiJzd2VkZW4iLGdyb3VwOiJFdXJvcGUiLGNvdW50cnk6InNlIixwcm92aWRlcklkOiIiLHNlYXJjaFRlcm1zOltvLmkxOG5leHQobnVsbCx2b2lkIDAsbygzNjk5NjMpKV19LHt2YWx1ZToiT01YVlNFIixuYW1lOiJWU0UiLGRlc2M6by5pMThuZXh0KG51bGwsdm9pZCAwLG8oOTk3NTAwKSksZmxhZzoibGl0aHVhbmlhIixncm91cDoiRXVyb3BlIixjb3VudHJ5OiJsdCIsCnByb3ZpZGVySWQ6IiIsc2VhcmNoVGVybXM6W28uaTE4bmV4dChudWxsLHZvaWQgMCxvKDg5MjEwMCkpXX0se3ZhbHVlOiJPTVhUU0UiLG5hbWU6IlRBTFNFIixkZXNjOm8uaTE4bmV4dChudWxsLHZvaWQgMCxvKDE3Nzk3KSksZmxhZzoiZXN0b25pYSIsZ3JvdXA6IkV1cm9wZSIsY291bnRyeToiZWUiLHByb3ZpZGVySWQ6IiIsc2VhcmNoVGVybXM6W28uaTE4bmV4dChudWxsLHZvaWQgMCxvKDk0MTIwKSldfSx7dmFsdWU6Ik9NWFJTRSIsbmFtZToiT01YUiIsZGVzYzpvLmkxOG5leHQobnVsbCx2b2lkIDAsbygxODE4MTUpKSxmbGFnOiJsYXR2aWEiLGdyb3VwOiJFdXJvcGUiLGNvdW50cnk6Imx2Iixwcm92aWRlcklkOiIiLHNlYXJjaFRlcm1zOltvLmkxOG5leHQobnVsbCx2b2lkIDAsbygyODI3NzMpKV19LHt2YWx1ZToiT01YTk9SRElDIixuYW1lOiJPTVhOT1JESUMiLGRlc2M6by5pMThuZXh0KG51bGwsdm9pZCAwLG8oNTExMjcpKSxmbGFnOiJldXJvcGUiLGhpZGVJblN5bWJvbFNlYXJjaDohMCxncm91cDoiRXVyb3BlIixjb3VudHJ5OiJldSIscHJvdmlkZXJJZDoiIn0se3ZhbHVlOiJPTVhCQUxUSUMiLG5hbWU6Ik9NWEJBTFRJQyIsZGVzYzpvLmkxOG5leHQobnVsbCx2b2lkIDAsbyg3MjAyODcpKSxmbGFnOiJldXJvcGUiLGhpZGVJblN5bWJvbFNlYXJjaDohMCxncm91cDoiRXVyb3BlIixjb3VudHJ5OiJldSIscHJvdmlkZXJJZDoiIn0se3ZhbHVlOiJGUkVEIixuYW1lOiJGUkVEIixkZXNjOm8uaTE4bmV4dChudWxsLHZvaWQgMCxvKDU3MTAwNikpLGZsYWc6InVzYSIsZ3JvdXA6IkVjb25vbXkiLGNvdW50cnk6IiIscHJvdmlkZXJJZDoiZnJlZDIiLHNlYXJjaFRlcm1zOltvLmkxOG5leHQobnVsbCx2b2lkIDAsbygzMDExMTcpKSxvLmkxOG5leHQobnVsbCx2b2lkIDAsbygyNzg3ODgpKV19LHt2YWx1ZToiSVNNIixuYW1lOiJJU00iLGRlc2M6by5pMThuZXh0KG51bGwsdm9pZCAwLG8oOTEzNjUxKSksZmxhZzoidXNhIixncm91cDoiRWNvbm9teSIsY291bnRyeToiIixwcm92aWRlcklkOiJxdWFuZGxfaXNtIixzZWFyY2hUZXJtczpbby5pMThuZXh0KG51bGwsdm9pZCAwLG8oMzAxMTE3KSksby5pMThuZXh0KG51bGwsdm9pZCAwLG8oMjc4Nzg4KSldfSx7dmFsdWU6IkZSQk5ZIixuYW1lOiJGUkJOWSIsZGVzYzpvLmkxOG5leHQobnVsbCx2b2lkIDAsbyg4MDI4NTUpKSxmbGFnOiJ1c2EiLGdyb3VwOiJFY29ub215Iixjb3VudHJ5OiIiLHByb3ZpZGVySWQ6InF1YW5kbF9mcmJueSIsc2VhcmNoVGVybXM6W28uaTE4bmV4dChudWxsLHZvaWQgMCxvKDMwMTExNykpLG8uaTE4bmV4dChudWxsLHZvaWQgMCxvKDI3ODc4OCkpXX0se3ZhbHVlOiJGUkJQIixuYW1lOiJGUkJQIixkZXNjOm8uaTE4bmV4dChudWxsLHZvaWQgMCxvKDIwNTExNykpLGZsYWc6InVzYSIsZ3JvdXA6IkVjb25vbXkiLGNvdW50cnk6IiIscHJvdmlkZXJJZDoicXVhbmRsX2ZyYnAiLHNlYXJjaFRlcm1zOltvLmkxOG5leHQobnVsbCx2b2lkIDAsbygzMDExMTcpKSxvLmkxOG5leHQobnVsbCx2b2lkIDAsbygyNzg3ODgpKV19LHt2YWx1ZToiRUNPTk9NSUNTIixuYW1lOiJUcmFkaW5nIEVjb25vbWljcyIsZGVzYzpvLmkxOG5leHQobnVsbCx2b2lkIDAsbyg1NTQzNDIpKSxmbGFnOiJ1c2EiLGdyb3VwOiJFY29ub215Iixjb3VudHJ5OiIiLHByb3ZpZGVySWQ6ImVjb25vbWljcyIsc2VhcmNoVGVybXM6W28uaTE4bmV4dChudWxsLHZvaWQgMCxvKDMwMTExNykpLG8uaTE4bmV4dChudWxsLHZvaWQgMCxvKDI3ODc4OCkpXX0se3ZhbHVlOiJXSFNFTEZJTlZFU1QiLG5hbWU6IldIIFNlbGZJbnZlc3QiLGRlc2M6by5pMThuZXh0KG51bGwsdm9pZCAwLG8oNDIwOTAxKSksZmxhZzoiZm9yZXgiLGdyb3VwOiJGb3JleCIsY291bnRyeToiIixwcm92aWRlcklkOiJ3aHNlbGZpbnZlc3QifSx7dmFsdWU6IkJTRVNPRiIsbmFtZToiQlNFU09GIixkZXNjOm8uaTE4bmV4dChudWxsLHZvaWQgMCxvKDg0NzQyNCkpLGZsYWc6ImJ1bGdhcmlhIixncm91cDoiRXVyb3BlIixjb3VudHJ5OiJiZyIscHJvdmlkZXJJZDoiIixzZWFyY2hUZXJtczpbby5pMThuZXh0KG51bGwsdm9pZCAwLG8oNzE0MDMxKSldfV19fV0pOw=="}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.gstatic.com/images/branding/product/2x/translate_24dp.png","fqdn":"www.gstatic.com","domain":"gstatic.com","tld":"com"},"ip":{"addr":"142.250.178.67","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://digital-assettrade.com/","date":"2026-07-27T10:27:13.712Z","timestamp":1785148033712,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.gstatic.com","organization":""},"issuer":{"commonName":"WE2","organization":"Google Trust Services"},"validity":{"start":"Mon, 29 Jun 2026 08:39:25 GMT","end":"Mon, 21 Sep 2026 08:39:24 GMT"},"fingerprint":{"sha1":"4E:F2:73:C6:27:16:58:35:FE:55:D5:30:6B:E8:6D:2B:DA:B0:E8:7B","sha256":"82:EF:6A:61:96:A5:23:D6:2C:2C:9D:77:67:04:D8:7B:3B:6A:50:DA:3C:6C:6A:5F:4E:2D:55:F3:FC:DA:0B:EE"}}},"request":{"raw":"GET /images/branding/product/2x/translate_24dp.png HTTP/1.1\r\nHost: www.gstatic.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-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://www.gstatic.com/_/translate_http/_/ss/k=translate_http.tr.B7Dih9Jyjnw.L.F4.O/am=BIAABw/d=0/rs=AN8SPfpC04vrrzQXgs_TCM5EtruwfPzNtQ/m=el_main_css\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=6, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccept-ranges: bytes\r\ncross-origin-resource-policy: cross-origin\r\ncross-origin-opener-policy-report-only: same-origin; report-to=\"static-on-bigtable\"\r\nreport-to: {\"group\":\"static-on-bigtable\",\"max_age\":2592000,\"endpoints\":[{\"url\":\"https://csp.withgoogle.com/csp/report-to/static-on-bigtable\"}]}\r\ncontent-length: 1842\r\nx-content-type-options: nosniff\r\nserver: sffe\r\nx-xss-protection: 0\r\ndate: Fri, 24 Jul 2026 07:17:13 GMT\r\nexpires: Sat, 24 Jul 2027 07:17:13 GMT\r\ncache-control: public, max-age=31536000\r\nlast-modified: Thu, 14 Oct 2021 09:08:00 GMT\r\ncontent-type: image/png\r\nvary: Origin\r\nage: 270600\r\nalt-svc: h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":null,"data":{"size":1842,"size_decoded":2516,"mime_type":"image/png","magic":"PNG image data, 48 x 48, 8-bit/color RGBA, non-interlaced","md5":"c69c796362406f9e11c7f4bf5bb628da","sha1":"e489ce95ab56208090868882113d7416abf46775","sha256":"4dac0026fbfa2615dce30c0af12830863fe885f84387a0147b9e338f548d5d82","sha512":"d3ad560ed0fd29be7d2cc434694f09e5a6fbea8b29c0611aecb54a1b73b4d722c53f42a19dae9e3d5d358444e50fb8fffbc39d67ce751bdbc8c861f6f95d3162","ssdeep":"","tlshash":"4e31f9fd129220437101ade72165eef798347c15f412da60ce65ba389c9fe20ed9a619","first_seen":"2023-04-05T07:39:29Z","last_seen":"2026-07-27T13:00:41.41175Z","times_seen":72133,"resource_available":false,"data":"iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAG+UlEQVR4Ae2YVXfbWBCAtc/L8H+WocztYpmflrfccGKIU2ZmZuY2jLbMDjNvw693dkbOKIrWcpR18JzNOV987dL3SXMlpdJE+fr/CwDeWHqgY+6inb2e+Tv7hJ55OwaY288cJiPMbA3r97a+hUijjbpYvLdz/oJdfYKJNWBhWtsMRBptBt7s7HVr5WMNmGnvfIRIo426IEkjeUKVNxkwy4F/319F7yLSaKIuWHTkApCkujmINJqoCxYd/vgwOnnC3vkYkUYTdWFe3nwAj9G4jBBLG8tHHx9iJjI7qXoeIo0W6kIvbCTPAXMz+kDLHEeY2VrS+2Dl/g5wuspFVVWDaG5pFa2tYVpaWlSam5sVmpqaItLY2EjQWq6urp+GSIy6GI48oZdntPLMtYceEQxVoQAJ//cAprKyZgYiERIvjKWNR2eoo88kn66C3DxZVFXXk3DMAfX1jU5EIiRezDUhvvhAnzj5ohvkik5oauuAZsRd2Qmn8LPF+yLLz0KW7WmHzCynkOWAqG9ojDWAkQiJF0biTPL1HtHY2gGvOyJDv7btYk/EAOIqjlFhkUcEAiGSGvkAkjSC5F+/HpCtbOiEx65OuF3QBaGa8Gf0uvJQb0T5mfaBMXJ7AqK0tIzEWJ4xko8hAOf8p/196pFv/7sDjj3r1l42aQ177vfA0v2R5Tlgaf8YuVx+EQiGRHl5OQmOYADJRODk824+8sqs66/32rk3OvrM1QfhMfL7g3QWKIJEhj0+DQ0NhERIvDAKoA1L8k14FubtHCzPmJGfgSSdwjHKpTHyi1CoVJSVqRGxB7CYHhKngNxAJ+jFjTb0g+KuiAFLduMYZdIY+USwP4BYtc0Ka5MywIR8bAEkbSbgibNLL8+oY+Tz0RiFA1Zus8DK7VYgsRELYEntCM3dyc84YWy3elT2PRzYK1dyuv4lP92GWPtg3tZnsPgPCyzbhNJbrQi+bmOssDohA9Yk7kAyGOUzjXzkABbWc0KziekmxvIq6WGOPBn4fSnXelieUeSJmSk18OPvFli6MRywYmuaGrACA1Zut6GwQyMfY8AP+wYuo214GT3ytFvMyhgsn3KjR7S2h39PTVMXzM/oZfEwNgYjkCsP3DhGbmWMtJu5oqJCIf34BSXizrMs/fgYB5CQEQlXB9/IKuhG5uyEm3gj81Z2qp/T70m40mMozwGJeDXKyXUJ2e0XwWBoUIDb6xOr4+ywJj4dyvC9gfzwAjiisYVEI0NnwHare0h5YvGudojLOAVLN1hg56mLwAHELnxPG3rniYtQWVlJouYCeByiQeN0/Fk3uMo7lU3d3NYJHjwD5zO7YemBXmFGnphm7YVTNwrFsg1WWLbZCpm5+Yr8q9wCsQr3AJ2BIqcsKKCqqoqFYwuYEYXp9gHMyBOJJyvBcfginoU0+CVtN5TIsvjVskfZzEcu3wIaJwrgiPr6+ugBM4xFTYkzRuIsz/y0sx1evioWG6wHYfmWNFiXkA4rUH6D4wCU4khxgHGELiAWaWJaP2bkp/Zz5b5bPH2ZJ5Zv4cupDYqdsjJOHECvHFBdXc0RxgHGwsbieqLLMzRGVZC06wzeE9JwL6TBcryp7Tp5CTiA0QbU1NREDjCWNCHN2MJoxA3kEUsvzLE0wPe/psKqzTa4cOeRWBfvgBUYsePkRYowDKitrSUkQuKFeWljccaMPDElrRd+2HAY7j58pTxiv8wpEGtxLyzfhhEnLsCwAowFzYsTU/vRiBvKE38dCEB2jkt9xM7MKxTrEhzKOO04rpwJbQARQ4DNmKk6hpL/hgJw/QNejV71P2IHwndljChQIujZyH7sHHAAYRgww9brMpY0L05MsfaKSOIMyzOX78mioFAe9Iid1R9x/ModOgP6MSIkQuLFbEv77FikWVxLJPkpOigmQXk2Un7g1z/cMdEDmKnx1fOmpr72TbV0Ci1ThuCbtH/zNTIltRO0fKPj65QOhR8czco+cMm0D8q0AfwaPWC02JL4NO6zuTfhUx2fzLmh8umcm7A5+Qnk5eMZcA8+A8S4BsTZn3/0xYI7oOXz+YPZnvoCcvNcorjEK/wBZRMz4x9ArP3jRcuXi+7DF3oW3od420vIL5BFEcp7PPyzQdQAjiAkgr6NKkmOrA0UoMLy9hco7xTFxR4cHR/9lyOOTwivQqVGAczYBjgcDz7QihNx1uc482F5WfYJnz+ARz8YLYAZ+wBizW8vWlg+3vYcZ75EFBW5FXmvz49HP3oArzmgtLxCRiSCvo06ybacP5Qjj/I5ucWiEG9aTqdHkff7owfwe23Aq+yS+YhE0LdRJw7HKM7yGDKz8kVOTpEoKCgRThddNt0KHg/GeL3C5/NxEEFrbSD9Xu+jpzkLEInhxWRl8gf8A1/5iBrINb9BAAAAAElFTkSuQmCC"}},"time_used":17,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":17,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/78404.b5ecd6dc65f13def5eab.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:13.911Z","timestamp":1785148033911,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/78404.b5ecd6dc65f13def5eab.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:13 GMT\r\ncontent-type: text/css; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a608300-192\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Wed, 22 Jul 2026 08:44:48 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/22/2026 11:01:21\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 0085edc3b47f986a908a73fd4264e67f\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":402,"size_decoded":972,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with very long lines (402), with no line terminators","md5":"1adcd7be7207d17f717ccc6eadb15c6d","sha1":"7c83ca692ff4bc9fc3a86f1a092266f0d48d8e77","sha256":"eea22714fdf62b6e84e4c6bf541cde06dc649c42a4e8ef4e618ba26446fd56fc","sha512":"dbe0864fd7c99e3526d69cd4162c10d36bc06090a2a4e50519e98b968eb75f82038172ebce2c56e9ca927f0ee45b4e6764a6c55b4bce29f953039423e1ea61a5","ssdeep":"","tlshash":"11e022e3c104147eb52fad5a46a360507391d8bd6529eff92183bafc9aca4e13233c56","first_seen":"2026-07-22T16:00:00.400221Z","last_seen":"2026-07-27T12:48:39.806052Z","times_seen":105,"resource_available":false,"data":"LndyYXBwZXIteWZOYmd0Z057YWxpZ24taXRlbXM6Y2VudGVyO2Rpc3BsYXk6aW5saW5lLWZsZXg7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47d2lkdGg6MTAwJX1AbWVkaWEgKG1heC13aWR0aDo0NDBweCl7LmJ1dHRvbnMteWZOYmd0Z057cG9zaXRpb246YWJzb2x1dGU7dG9wOjB9fS5jb2xvclNlbGVjdEJ1dHRvbi15Zk5iZ3RnTntwYWRkaW5nOjZweH0uY29sb3JTZWxlY3RCdXR0b24teWZOYmd0Z046Zmlyc3QtY2hpbGR7bWFyZ2luLWlubGluZS1zdGFydDotNnB4fUBtZWRpYSAobWF4LXdpZHRoOjQ0MHB4KXsuY29sb3JTZWxlY3RCdXR0b24teWZOYmd0Z057cGFkZGluZzo4cHh9LmNvbG9yU2VsZWN0QnV0dG9uLXlmTmJndGdOOmZpcnN0LWNoaWxke21hcmdpbi1pbmxpbmUtc3RhcnQ6LThweH19"}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/change-interval-dialog.7a1e205ad9ad595dc28c.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.355Z","timestamp":1785148034355,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/change-interval-dialog.7a1e205ad9ad595dc28c.js HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a61b1a8-7e2f\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Thu, 23 Jul 2026 06:16:08 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/23/2026 10:17:28\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 5535e17e921a95246b483d4b1c95f8b9\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":32303,"size_decoded":12573,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (3072)","md5":"012b19873ae550b0ac01861ba22c40d6","sha1":"d046baf7d21186590435643dfcaae010980cf02d","sha256":"ea8993b45e050b00b0c9f192820f9dd9d19b496d0915eab277f8a4e8d2855894","sha512":"c67cd6ee2ca902a6a5e4e6637b02a50d545bf653062bdad2b68810086db8adba534dfa065e2596c8c605ef0d40a451acd3bad6cf06580c05446349c8e9047841","ssdeep":"768:62g2dzQiBy1d8Xne9Rsdcr5n9caI3CqAUSfGEoZd69a8J13oTRcf:62g2dzQbXVIyGGGEoGZ2af","tlshash":"6ae22d9071d1b0e956f785eb807f0546f3372968780d4c24b279dccdbaec898a136fa9","first_seen":"2026-07-23T14:00:31.699735Z","last_seen":"2026-07-27T12:47:44.720463Z","times_seen":73,"resource_available":true,"data":"KHNlbGYud2VicGFja0NodW5rdHJhZGluZ3ZpZXc9c2VsZi53ZWJwYWNrQ2h1bmt0cmFkaW5ndmlld3x8W10pLnB1c2goW1s0Njc3Miw2MzU5NSw2NDY0NCw3MTMwMF0sezkxNDQ4NyhlLHQpe3ZhciBuOyFmdW5jdGlvbigpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj17fS5oYXNPd25Qcm9wZXJ0eTtmdW5jdGlvbiBvKCl7Zm9yKHZhciBlPVtdLHQ9MDt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgbj1hcmd1bWVudHNbdF07aWYobil7dmFyIHM9dHlwZW9mIG47aWYoInN0cmluZyI9PT1zfHwibnVtYmVyIj09PXMpZS5wdXNoKG4pO2Vsc2UgaWYoQXJyYXkuaXNBcnJheShuKSYmbi5sZW5ndGgpe3ZhciBpPW8uYXBwbHkobnVsbCxuKTtpJiZlLnB1c2goaSl9ZWxzZSBpZigib2JqZWN0Ij09PXMpZm9yKHZhciBhIGluIG4pci5jYWxsKG4sYSkmJm5bYV0mJmUucHVzaChhKX19cmV0dXJuIGUuam9pbigiICIpfWUuZXhwb3J0cz8oby5kZWZhdWx0PW8sZS5leHBvcnRzPW8pOnZvaWQgMD09PShuPWZ1bmN0aW9uKCl7cmV0dXJuIG99LmFwcGx5KHQsW10pKXx8KGUuZXhwb3J0cz1uKX0oKX0sMjA3MzQyKGUpe2UuZXhwb3J0cz17Y29udGFpbmVyOiJjb250YWluZXItTjg0WFNjR24iLCJjb250YWluZXIteHhzbWFsbCI6ImNvbnRhaW5lci14eHNtYWxsLU44NFhTY0duIiwiY29udGFpbmVyLXhzbWFsbCI6ImNvbnRhaW5lci14c21hbGwtTjg0WFNjR24iLCJjb250YWluZXItc21hbGwiOiJjb250YWluZXItc21hbGwtTjg0WFNjR24iLCJjb250YWluZXItbWVkaXVtIjoiY29udGFpbmVyLW1lZGl1bS1OODRYU2NHbiIsImNvbnRhaW5lci1sYXJnZSI6ImNvbnRhaW5lci1sYXJnZS1OODRYU2NHbiIsImludGVudC1kZWZhdWx0IjoiaW50ZW50LWRlZmF1bHQtTjg0WFNjR24iLGZvY3VzZWQ6ImZvY3VzZWQtTjg0WFNjR24iLHJlYWRvbmx5OiJyZWFkb25seS1OODRYU2NHbiIsZGlzYWJsZWQ6ImRpc2FibGVkLU44NFhTY0duIiwid2l0aC1oaWdobGlnaHQiOiJ3aXRoLWhpZ2hsaWdodC1OODRYU2NHbiIsZ3JvdXBlZDoiZ3JvdXBlZC1OODRYU2NHbiIsImFkanVzdC1wb3NpdGlvbiI6ImFkanVzdC1wb3NpdGlvbi1OODRYU2NHbiIsImZpcnN0LXJvdyI6ImZpcnN0LXJvdy1OODRYU2NHbiIsImZpcnN0LWNvbCI6ImZpcnN0LWNvbC1OODRYU2NHbiIsc3RyZXRjaDoic3RyZXRjaC1OODRYU2NHbiIsImZvbnQtc2l6ZS1tZWRpdW0iOiJmb250LXNpemUtbWVkaXVtLU44NFhTY0duIiwiZm9udC1zaXplLWxhcmdlIjoiZm9udC1zaXplLWxhcmdlLU44NFhTY0duIiwibm8tY29ybmVyLXRvcC1sZWZ0Ijoibm8tY29ybmVyLXRvcC1sZWZ0LU44NFhTY0duIiwibm8tY29ybmVyLXRvcC1yaWdodCI6Im5vLWNvcm5lci10b3AtcmlnaHQtTjg0WFNjR24iLCJuby1jb3JuZXItYm90dG9tLXJpZ2h0Ijoibm8tY29ybmVyLWJvdHRvbS1yaWdodC1OODRYU2NHbiIsIm5vLWNvcm5lci1ib3R0b20tbGVmdCI6Im5vLWNvcm5lci1ib3R0b20tbGVmdC1OODRYU2NHbiIsInNpemUteHhzbWFsbCI6InNpemUteHhzbWFsbC1OODRYU2NHbiIsInNpemUteHNtYWxsIjoic2l6ZS14c21hbGwtTjg0WFNjR24iLCJzaXplLXNtYWxsIjoic2l6ZS1zbWFsbC1OODRYU2NHbiIsInNpemUtbWVkaXVtIjoic2l6ZS1tZWRpdW0tTjg0WFNjR24iLCJzaXplLWxhcmdlIjoic2l6ZS1sYXJnZS1OODRYU2NHbiIsImludGVudC1zdWNjZXNzIjoiaW50ZW50LXN1Y2Nlc3MtTjg0WFNjR24iLCJpbnRlbnQtd2FybmluZyI6ImludGVudC13YXJuaW5nLU44NFhTY0duIiwiaW50ZW50LWRhbmdlciI6ImludGVudC1kYW5nZXItTjg0WFNjR24iLCJpbnRlbnQtcHJpbWFyeSI6ImludGVudC1wcmltYXJ5LU44NFhTY0duIiwiYm9yZGVyLW5vbmUiOiJib3JkZXItbm9uZS1OODRYU2NHbiIsImJvcmRlci10aGluIjoiYm9yZGVyLXRoaW4tTjg0WFNjR24iLCJib3JkZXItdGhpY2siOiJib3JkZXItdGhpY2stTjg0WFNjR24iLGhpZ2hsaWdodDoiaGlnaGxpZ2h0LU44NFhTY0duIixzaG93bjoic2hvd24tTjg0WFNjR24ifX0sODk0NDY0KGUpe2UuZXhwb3J0cz17ImlubmVyLXNsb3QiOiJpbm5lci1zbG90LU5iR3B0RDVqIixpbnRlcmFjdGl2ZToiaW50ZXJhY3RpdmUtTmJHcHRENWoiLGljb246Imljb24tTmJHcHRENWoiLCJpbm5lci1taWRkbGUtc2xvdCI6ImlubmVyLW1pZGRsZS1zbG90LU5iR3B0RDVqIiwiYmVmb3JlLXNsb3QiOiJiZWZvcmUtc2xvdC1OYkdwdEQ1aiIsImFmdGVyLXNsb3QiOiJhZnRlci1zbG90LU5iR3B0RDVqIn19LDU5MjU1MChlKXtlLmV4cG9ydHM9e2lucHV0OiJpbnB1dC1IMHhkQ25GUyIsInNpemUteHhzbWFsbCI6InNpemUteHhzbWFsbC1IMHhkQ25GUyIsInNpemUteHNtYWxsIjoic2l6ZS14c21hbGwtSDB4ZENuRlMiLCJzaXplLXNtYWxsIjoic2l6ZS1zbWFsbC1IMHhkQ25GUyIsInNpemUtbWVkaXVtIjoic2l6ZS1tZWRpdW0tSDB4ZENuRlMiLCJzaXplLWxhcmdlIjoic2l6ZS1sYXJnZS1IMHhkQ25GUyIsIndpdGgtc3RhcnQtc2xvdCI6IndpdGgtc3RhcnQtc2xvdC1IMHhkQ25GUyIsIndpdGgtZW5kLXNsb3QiOiJ3aXRoLWVuZC1zbG90LUgweGRDbkZTIn19LDcxNzE5NShlKXtlLmV4cG9ydHM9e2RpYWxvZzoiZGlhbG9nLVVHZEM2OXN3IixkaWFsb2dJbm5lcjoiZGlhbG9nSW5uZXItVUdkQzY5c3ciLHRpdGxlV3JhcHBlcjoidGl0bGVXcmFwcGVyLVVHZEM2OXN3Iix0aXRsZToidGl0bGUtVUdkQzY5c3ciLGluZm9IaW50OiJpbmZvSGludC1VR2RDNjlzdyIsZm9ybToiZm9ybS1VR2RDNjlzdyIsaW5wdXRXcmFwcGVyOiJpbnB1dFdyYXBwZXItVUdkQzY5c3ciLGlucHV0OiJpbnB1dC1VR2RDNjlzdyIsaGludDoiaGludC1VR2RDNjlzdyIsZXJyb3I6ImVycm9yLVVHZEM2OXN3In19LDg2NTU2MChlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtUVkFwcENvbnRleHQ6KCk9PmMsVFZBcHBDb250ZXh0UHJvdmlkZXI6KCk9Pmx9KTt2YXIgcj1uKDc3OTQ3NCksbz1uKDExNTI5Mykscz1uKDk5OTUxKSxpPW4oMTE3MzEzKTtjb25zdCBhPXtpT3M6Im9sZCIsYW5kcm9pZDoibmV3IixvbGQ6Im9sZCIsbmV3OiJuZXciLGFueToiYW55In07ZnVuY3Rpb24gbChlKXsKY29uc3RbdF09KDAsci51c2VTdGF0ZSkoe2lzT25Nb2JpbGVBcHBQYWdlOmU9PigwLGkuaXNPbk1vYmlsZUFwcFBhZ2UpKGFbZV0pLGlzUnRsOigwLG8uaXNSdGwpKCksbG9jYWxlOndpbmRvdy5sb2NhbGUscmVuZGVyTW9kZTplLnJlbmRlck1vZGU/PyJsZWdhY3kifSk7cmV0dXJuIHIuY3JlYXRlRWxlbWVudChzLkFwcENvbnRleHQuUHJvdmlkZXIse3ZhbHVlOnR9LGUuY2hpbGRyZW4pfWNvbnN0IGM9cy5BcHBDb250ZXh0fSw1NzEzMDAoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLnIodCksbi5kKHQse2NyZWF0ZVJlYWN0Um9vdDooKT0+YX0pO3ZhciByPW4oNzc5NDc0KSxvPW4oMTI5MzY1KSxzPW4oMzM2MzM0KSxpPW4oODY1NTYwKTtmdW5jdGlvbiBhKGUsdCxuPSJsZWdhY3kiKXtjb25zdCBhPXIuY3JlYXRlRWxlbWVudChpLlRWQXBwQ29udGV4dFByb3ZpZGVyLHtyZW5kZXJNb2RlOm59LGUpO2lmKCJtb2Rlcm4iPT09bil7Y29uc3QgZT0oMCxzLmNyZWF0ZVJvb3QpKHQpO3JldHVybiBlLnJlbmRlcihhKSx7cmVuZGVyKHQpe2UucmVuZGVyKHIuY3JlYXRlRWxlbWVudChpLlRWQXBwQ29udGV4dFByb3ZpZGVyLHtyZW5kZXJNb2RlOm59LHQpKX0sdW5tb3VudCgpe2UudW5tb3VudCgpfX19cmV0dXJuIG8ucmVuZGVyKGEsdCkse3JlbmRlcihlKXtvLnJlbmRlcihyLmNyZWF0ZUVsZW1lbnQoaS5UVkFwcENvbnRleHRQcm92aWRlcix7cmVuZGVyTW9kZTpufSxlKSx0KX0sdW5tb3VudCgpe28udW5tb3VudENvbXBvbmVudEF0Tm9kZSh0KX19fX0sNjU5ODc4KGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse21ha2VPdmVybGFwYWJsZTooKT0+c30pO3ZhciByPW4oNzc5NDc0KSxvPW4oNTg1NDgpO2Z1bmN0aW9uIHMoZSx0KXtyZXR1cm4gY2xhc3MgZXh0ZW5kcyByLlB1cmVDb21wb25lbnR7cmVuZGVyKCl7Y29uc3R7aXNPcGVuZWQ6bixyb290OnN9PXRoaXMucHJvcHM7aWYoIW4pcmV0dXJuIG51bGw7Y29uc3QgaT1yLmNyZWF0ZUVsZW1lbnQoZSx7Li4udGhpcy5wcm9wcyxyZWY6dGhpcy5wcm9wcy5jb21wb25lbnRSZWYsekluZGV4OjE1MH0pO3JldHVybiJwYXJlbnQiPT09cz9pOnIuY3JlYXRlRWxlbWVudChvLlBvcnRhbCx7c2hvdWxkVHJhcEZvY3VzOnR9LGkpfX19fSw5OTk1MShlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtBcHBDb250ZXh0OigpPT5yfSk7Y29uc3Qgcj0oMCxuKDc3OTQ3NCkuY3JlYXRlQ29udGV4dCkoe2lzT25Nb2JpbGVBcHBQYWdlOigpPT4hMSxpc1J0bDohMSxsb2NhbGU6ImVuIixyZW5kZXJNb2RlOiJsZWdhY3kifSl9LDUzMjAxMShlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtDb250cm9sR3JvdXBDb250ZXh0OigpPT5zLGRlZmF1bHRDZWxsU3RhdGU6KCk9Pm99KTt2YXIgcj1uKDc3OTQ3NCk7Y29uc3Qgbz17aXNUb3A6ITAsaXNSaWdodDohMCxpc0JvdHRvbTohMCxpc0xlZnQ6ITB9LHM9ci5jcmVhdGVDb250ZXh0KHtpc0dyb3VwZWQ6ITEsY2VsbFN0YXRlOm99KX0sNjA1MTQxKGUsdCxuKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gcihlKXtsZXQgdD0wO3JldHVybiBlLmlzVG9wJiZlLmlzTGVmdHx8KHQrPTEpLGUuaXNUb3AmJmUuaXNSaWdodHx8KHQrPTIpLGUuaXNCb3R0b20mJmUuaXNMZWZ0fHwodCs9OCksZS5pc0JvdHRvbSYmZS5pc1JpZ2h0fHwodCs9NCksdH1uLmQodCx7Z2V0R3JvdXBDZWxsUmVtb3ZlUm91bmRCb3JkZXJzOigpPT5yfSl9LDU2MDQ5MShlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtDb250cm9sU2tlbGV0b246KCk9Pl8sSW5wdXRDbGFzc2VzOigpPT5nfSk7dmFyIHI9big3Nzk0NzQpLG89big5MTQ0ODcpLHM9bi5uKG8pLGk9bigxMzg2MzgpLGE9bigzMTk2OSksbD1uKDM0NTExNiksYz1uKDUzMjAxMSksdT1uKDYwNTE0MSk7dmFyIGQ9bigyMDczNDIpLGY9bi5uKGQpO2Z1bmN0aW9uIHAoZSl7bGV0IHQ9IiI7cmV0dXJuIDAhPT1lJiYoMSZlJiYodD1zKCkodCxmKClbIm5vLWNvcm5lci10b3AtbGVmdCJdKSksMiZlJiYodD1zKCkodCxmKClbIm5vLWNvcm5lci10b3AtcmlnaHQiXSkpLDQmZSYmKHQ9cygpKHQsZigpWyJuby1jb3JuZXItYm90dG9tLXJpZ2h0Il0pKSw4JmUmJih0PXMoKSh0LGYoKVsibm8tY29ybmVyLWJvdHRvbS1sZWZ0Il0pKSksdH1mdW5jdGlvbiBoKGUsdCxuLHIpe2NvbnN0e3JlbW92ZVJvdW5kQm9yZGVyOm8sY2xhc3NOYW1lOmksaW50ZW50OmE9ImRlZmF1bHQiLGJvcmRlclN0eWxlOmw9InRoaW4iLHNpemU6YyxoaWdobGlnaHQ6ZCxkaXNhYmxlZDpoLHJlYWRvbmx5Om0sc3RyZXRjaDpnLG5vUmVhZG9ubHlTdHlsZXM6dixpc0ZvY3VzZWQ6eX09ZSxfPXAobz8/KDAsdS5nZXRHcm91cENlbGxSZW1vdmVSb3VuZEJvcmRlcnMpKG4pKTtyZXR1cm4gcygpKGYoKS5jb250YWluZXIsZigpW2Bjb250YWluZXItJHtjfWBdLGYoKVtgaW50ZW50LSR7YX1gXSxmKClbYGJvcmRlci0ke2x9YF0sYyYmZigpW2BzaXplLSR7Y31gXSxfLGQmJmYoKVsid2l0aC1oaWdobGlnaHQiXSxoJiZmKCkuZGlzYWJsZWQsbSYmIXYmJmYoKS5yZWFkb25seSx5JiZmKCkuZm9jdXNlZCxnJiZmKCkuc3RyZXRjaCx0JiZmKCkuZ3JvdXBlZCwhciYmZigpWyJhZGp1c3QtcG9zaXRpb24iXSxuLmlzVG9wJiZmKClbImZpcnN0LXJvdyJdLG4uaXNMZWZ0JiZmKClbImZpcnN0LWNvbCJdLGkpfWZ1bmN0aW9uIG0oZSx0LG4pe2NvbnN0e2hpZ2hsaWdodDpyLGhpZ2hsaWdodFJlbW92ZVJvdW5kQm9yZGVyOm99PWU7aWYoIXIpcmV0dXJuIGYoKS5oaWdobGlnaHQ7Y29uc3QgaT1wKG8/PygwLHUuZ2V0R3JvdXBDZWxsUmVtb3ZlUm91bmRCb3JkZXJzKSh0KSk7cmV0dXJuIHMoKShmKCkuaGlnaGxpZ2h0LGYoKS5zaG93bixmKClbYHNpemUtJHtufWBdLGkpfWNvbnN0IGc9e0ZvbnRTaXplTWVkaXVtOigwLGkuZW5zdXJlRGVmaW5lZCkoZigpWyJmb250LXNpemUtbWVkaXVtIl0pLEZvbnRTaXplTGFyZ2U6KDAsaS5lbnN1cmVEZWZpbmVkKShmKClbImZvbnQtc2l6ZS1sYXJnZSJdKX0sdj17cGFzc2l2ZTohMX07ZnVuY3Rpb24geShlLHQpewpjb25zdHtzdHlsZTpuLGlkOm8scm9sZTpzLG9uRm9jdXM6aSxvbkJsdXI6dSxvbk1vdXNlT3ZlcjpkLG9uTW91c2VPdXQ6Zixvbk1vdXNlRW50ZXI6cCxvbk1vdXNlTGVhdmU6Zyxvbk1vdXNlRG93bjp5LG9uTW91c2VVcDpfLG9uS2V5RG93bjpDLG9uQ2xpY2s6dyx0YWJJbmRleDpTLHN0YXJ0U2xvdDpiLG1pZGRsZVNsb3Q6RSxlbmRTbG90Ongsb25XaGVlbDpOLG9uV2hlZWxOb1Bhc3NpdmU6Uj1udWxsLHNpemU6SSx0YWc6Tz0ic3BhbiIsdHlwZTpNfT1lLHtpc0dyb3VwZWQ6QSxjZWxsU3RhdGU6RCxkaXNhYmxlUG9zaXRpb25BZGp1c3RtZW50OlQ9ITF9PSgwLHIudXNlQ29udGV4dCkoYy5Db250cm9sR3JvdXBDb250ZXh0KSxHPWZ1bmN0aW9uKGUsdD1udWxsLG4pe2NvbnN0IG89KDAsci51c2VSZWYpKG51bGwpLHM9KDAsci51c2VSZWYpKG51bGwpLGk9KDAsci51c2VDYWxsYmFjaykoKCgpPT57aWYobnVsbD09PW8uY3VycmVudHx8bnVsbD09PXMuY3VycmVudClyZXR1cm47Y29uc3RbZSx0LG5dPXMuY3VycmVudDtudWxsIT09dCYmby5jdXJyZW50LmFkZEV2ZW50TGlzdGVuZXIoZSx0LG4pfSksW10pLGE9KDAsci51c2VDYWxsYmFjaykoKCgpPT57aWYobnVsbD09PW8uY3VycmVudHx8bnVsbD09PXMuY3VycmVudClyZXR1cm47Y29uc3RbZSx0LG5dPXMuY3VycmVudDtudWxsIT09dCYmby5jdXJyZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoZSx0LG4pfSksW10pLGw9KDAsci51c2VDYWxsYmFjaykoKGU9PnthKCksby5jdXJyZW50PWUsaSgpfSksW10pO3JldHVybigwLHIudXNlRWZmZWN0KSgoKCk9PihzLmN1cnJlbnQ9W2UsdCxuXSxpKCksYSkpLFtlLHQsbl0pLGx9KCJ3aGVlbCIsUix2KSxMPU87cmV0dXJuIHIuY3JlYXRlRWxlbWVudChMLHt0eXBlOk0sc3R5bGU6bixpZDpvLHJvbGU6cyxjbGFzc05hbWU6aChlLEEsRCxUKSx0YWJJbmRleDpTLHJlZjooMCxhLnVzZU1lcmdlZFJlZnMpKFt0LEddKSxvbkZvY3VzOmksb25CbHVyOnUsb25Nb3VzZU92ZXI6ZCxvbk1vdXNlT3V0OmYsb25Nb3VzZUVudGVyOnAsb25Nb3VzZUxlYXZlOmcsb25Nb3VzZURvd246eSxvbk1vdXNlVXA6XyxvbktleURvd246QyxvbkNsaWNrOncsb25XaGVlbDpOLC4uLigwLGwuZmlsdGVyRGF0YVByb3BzKShlKSwuLi4oMCxsLmZpbHRlckFyaWFQcm9wcykoZSl9LGIsRSx4LHIuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZTptKGUsRCxJKX0pKX15LmRpc3BsYXlOYW1lPSJDb250cm9sU2tlbGV0b24iO2NvbnN0IF89ci5mb3J3YXJkUmVmKHkpfSw1MDU2MzkoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7QWZ0ZXJTbG90OigpPT5mLEJlZm9yZVNsb3Q6KCk9PmwsRW5kU2xvdDooKT0+ZCxNaWRkbGVTbG90OigpPT51LFN0YXJ0U2xvdDooKT0+Y30pO3ZhciByPW4oNzc5NDc0KSxvPW4oOTE0NDg3KSxzPW4ubihvKSxpPW4oODk0NDY0KSxhPW4ubihpKTtmdW5jdGlvbiBsKGUpe2NvbnN0e2NsYXNzTmFtZTp0LGNoaWxkcmVuOm59PWU7cmV0dXJuIHIuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZTpzKCkoYSgpWyJiZWZvcmUtc2xvdCJdLHQpfSxuKX1mdW5jdGlvbiBjKGUpe2NvbnN0e2NsYXNzTmFtZTp0LGludGVyYWN0aXZlOm49ITAsaWNvbjpvPSExLGNoaWxkcmVuOml9PWU7cmV0dXJuIHIuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZTpzKCkoYSgpWyJpbm5lci1zbG90Il0sbiYmYSgpLmludGVyYWN0aXZlLG8mJmEoKS5pY29uLHQpfSxpKX1mdW5jdGlvbiB1KGUpe2NvbnN0e2NsYXNzTmFtZTp0LGNoaWxkcmVuOm59PWU7cmV0dXJuIHIuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZTpzKCkoYSgpWyJpbm5lci1zbG90Il0sYSgpWyJpbm5lci1taWRkbGUtc2xvdCJdLHQpfSxuKX1mdW5jdGlvbiBkKGUpe2NvbnN0e2NsYXNzTmFtZTp0LGludGVyYWN0aXZlOm49ITAsaWNvbjpvPSExLGNoaWxkcmVuOmksZGF0YVFhSWQ6bH09ZTtyZXR1cm4gci5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOnMoKShhKClbImlubmVyLXNsb3QiXSxuJiZhKCkuaW50ZXJhY3RpdmUsbyYmYSgpLmljb24sdCksImRhdGEtcWEtaWQiOmx9LGkpfWZ1bmN0aW9uIGYoZSl7Y29uc3R7Y2xhc3NOYW1lOnQsY2hpbGRyZW46bixkYXRhUWFJZDpvfT1lO3JldHVybiByLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6cygpKGEoKVsiYWZ0ZXItc2xvdCJdLHQpLCJkYXRhLXFhLWlkIjpvfSxuKX19LDM2MTg1NShlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtJbnB1dDooKT0+XyxJbnB1dENvbnRyb2w6KCk9PkN9KTt2YXIgcj1uKDc3OTQ3NCksbz1uKDkxNDQ4Nykscz1uLm4obyksaT1uKDE0NzkwMSksYT1uKDM0NTExNiksbD1uKDgzMzkwMyksYz1uKDc4MDY1MSksdT1uKDMxOTY5KSxkPW4oOTA4MDk3KSxmPW4oMTQ1OTg0KSxwPW4oNTY0MjEpLGg9big1NjA0OTEpLG09big1MDU2MzkpLGc9big1OTI1NTApLHY9bi5uKGcpO2Z1bmN0aW9uIHkoZSl7cmV0dXJuISgwLGEuaXNBcmlhQXR0cmlidXRlKShlKSYmISgwLGEuaXNEYXRhQXR0cmlidXRlKShlKX1mdW5jdGlvbiBfKGUpe2NvbnN0e2lkOnQsdGl0bGU6bixyb2xlOm8sdGFiSW5kZXg6bCxwbGFjZWhvbGRlcjpjLG5hbWU6dSx0eXBlOmQsdmFsdWU6ZixkZWZhdWx0VmFsdWU6cCxkcmFnZ2FibGU6ZyxhdXRvQ29tcGxldGU6XyxhdXRvRm9jdXM6QyxhdXRvQ2FwaXRhbGl6ZTp3LGF1dG9Db3JyZWN0OlMsbWF4TGVuZ3RoOmIsbWluOkUsbWF4Ongsc3RlcDpOLHBhdHRlcm46UixpbnB1dE1vZGU6SSxvblNlbGVjdDpPLG9uRm9jdXM6TSxvbkJsdXI6QSxvbktleURvd246RCxvbktleVVwOlQsb25LZXlQcmVzczpHLG9uQ2hhbmdlOkwsb25EcmFnU3RhcnQ6ayxzaXplOlA9InNtYWxsIixjbGFzc05hbWU6eixpbnB1dENsYXNzTmFtZTpGLGRpc2FibGVkOkIscmVhZG9ubHk6VSxjb250YWluZXJUYWJJbmRleDpYLHN0YXJ0U2xvdDpqLGVuZFNsb3Q6SCxyZWZlcmVuY2U6JCxjb250YWluZXJSZWZlcmVuY2U6VixvbkNvbnRhaW5lckZvY3VzOlcsZGF0YVFhSWQ6SywuLi5xfT1lLFE9KDAsYS5maWx0ZXJQcm9wcykocSx5KSxaPXsuLi4oMCwKYS5maWx0ZXJBcmlhUHJvcHMpKHEpLC4uLigwLGEuZmlsdGVyRGF0YVByb3BzKShxKSxpZDp0LHRpdGxlOm4scm9sZTpvLHRhYkluZGV4OmwscGxhY2Vob2xkZXI6YyxuYW1lOnUsdHlwZTpkLHZhbHVlOmYsZGVmYXVsdFZhbHVlOnAsZHJhZ2dhYmxlOmcsYXV0b0NvbXBsZXRlOl8sYXV0b0ZvY3VzOkMsYXV0b0NhcGl0YWxpemU6dyxhdXRvQ29ycmVjdDpTLG1heExlbmd0aDpiLG1pbjpFLG1heDp4LHN0ZXA6TixwYXR0ZXJuOlIsaW5wdXRNb2RlOkksb25TZWxlY3Q6TyxvbkZvY3VzOk0sb25CbHVyOkEsb25LZXlEb3duOkQsb25LZXlVcDpULG9uS2V5UHJlc3M6RyxvbkNoYW5nZTpMLG9uRHJhZ1N0YXJ0Omt9O3JldHVybiByLmNyZWF0ZUVsZW1lbnQoaC5Db250cm9sU2tlbGV0b24sey4uLlEsZGlzYWJsZWQ6QixyZWFkb25seTpVLHRhYkluZGV4OlgsY2xhc3NOYW1lOnosc2l6ZTpQLHJlZjpWLG9uRm9jdXM6VyxzdGFydFNsb3Q6aixtaWRkbGVTbG90OnIuY3JlYXRlRWxlbWVudChtLk1pZGRsZVNsb3QsbnVsbCxyLmNyZWF0ZUVsZW1lbnQoImlucHV0Iix7Li4uWixjbGFzc05hbWU6cygpKHYoKS5pbnB1dCx2KClbYHNpemUtJHtQfWBdLEYsaiYmdigpWyJ3aXRoLXN0YXJ0LXNsb3QiXSxIJiZ2KClbIndpdGgtZW5kLXNsb3QiXSksZGlzYWJsZWQ6QixyZWFkT25seTpVLHJlZjokLCJkYXRhLXFhLWlkIjooMCxpLmRhdGFRYUlkcykoInVpLWxpYi1JbnB1dC1pbnB1dCIsSz9gJHtLfS1pbnB1dGA6dm9pZCAwKX0pKSxlbmRTbG90OkgsImRhdGEtcWEtaWQiOigwLGkuZGF0YVFhSWRzKSgidWktbGliLUlucHV0IixLKX0pfWZ1bmN0aW9uIEMoZSl7ZT0oMCxkLnVzZUNvbnRyb2wpKGUpO2NvbnN0e2Rpc2FibGVkOnQsYXV0b1NlbGVjdE9uRm9jdXM6bix0YWJJbmRleDpvPTAsb25Gb2N1czpzLG9uQmx1cjppLHJlZmVyZW5jZTphLGNvbnRhaW5lclJlZmVyZW5jZTpoPW51bGwsZGF0YVFhSWQ6bX09ZSxnPSgwLHIudXNlUmVmKShudWxsKSx2PSgwLHIudXNlUmVmKShudWxsKSxbeSxDXT0oMCxmLnVzZUZvY3VzKSgpLHc9dD92b2lkIDA6eT8tMTpvLFM9dD92b2lkIDA6eT9vOi0xLHtpc01vdXNlRG93bjpiLGhhbmRsZU1vdXNlRG93bjpFLGhhbmRsZU1vdXNlVXA6eH09KDAscC51c2VJc01vdXNlRG93bikoKSxOPSgwLGwuY3JlYXRlU2FmZU11bHRpY2FzdEV2ZW50SGFuZGxlcikoQy5vbkZvY3VzLChmdW5jdGlvbihlKXtuJiYhYi5jdXJyZW50JiYoMCxjLnNlbGVjdEFsbENvbnRlbnQpKGUuY3VycmVudFRhcmdldCl9KSxzKSxSPSgwLGwuY3JlYXRlU2FmZU11bHRpY2FzdEV2ZW50SGFuZGxlcikoQy5vbkJsdXIsaSksST0oMCxyLnVzZUNhbGxiYWNrKSgoZT0+e2cuY3VycmVudD1lLGEmJigiZnVuY3Rpb24iPT10eXBlb2YgYSYmYShlKSwib2JqZWN0Ij09dHlwZW9mIGEmJihhLmN1cnJlbnQ9ZSkpfSksW2csYV0pO3JldHVybiByLmNyZWF0ZUVsZW1lbnQoXyx7Li4uZSxpc0ZvY3VzZWQ6eSxjb250YWluZXJUYWJJbmRleDp3LHRhYkluZGV4OlMsb25Db250YWluZXJGb2N1czpmdW5jdGlvbihlKXt2LmN1cnJlbnQ9PT1lLnRhcmdldCYmbnVsbCE9PWcuY3VycmVudCYmZy5jdXJyZW50LmZvY3VzKCl9LG9uRm9jdXM6TixvbkJsdXI6UixyZWZlcmVuY2U6SSxjb250YWluZXJSZWZlcmVuY2U6KDAsdS51c2VNZXJnZWRSZWZzKShbdixoXSksb25Nb3VzZURvd246RSxvbk1vdXNlVXA6eCxkYXRhUWFJZDptfSl9fSw5MDgwOTcoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7dXNlQ29udHJvbDooKT0+c30pO3ZhciByPW4oODMzOTAzKSxvPW4oMTQ1OTg0KTtmdW5jdGlvbiBzKGUpe2NvbnN0e29uRm9jdXM6dCxvbkJsdXI6bixpbnRlbnQ6cyxoaWdobGlnaHQ6aSxkaXNhYmxlZDphfT1lLFtsLGNdPSgwLG8udXNlRm9jdXMpKHZvaWQgMCxhKSx1PSgwLHIuY3JlYXRlU2FmZU11bHRpY2FzdEV2ZW50SGFuZGxlcikoYT92b2lkIDA6Yy5vbkZvY3VzLHQpLGQ9KDAsci5jcmVhdGVTYWZlTXVsdGljYXN0RXZlbnRIYW5kbGVyKShhP3ZvaWQgMDpjLm9uQmx1cixuKTtyZXR1cm57Li4uZSxpbnRlbnQ6c3x8KGw/InByaW1hcnkiOiJkZWZhdWx0IiksaGlnaGxpZ2h0Omk/P2wsb25Gb2N1czp1LG9uQmx1cjpkfX19LDE0NTk4NChlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHt1c2VGb2N1czooKT0+b30pO3ZhciByPW4oNzc5NDc0KTtmdW5jdGlvbiBvKGUsdCl7Y29uc3RbbixvXT0oMCxyLnVzZVN0YXRlKSghMSk7KDAsci51c2VFZmZlY3QpKCgoKT0+e3QmJm4mJm8oITEpfSksW3Qsbl0pO2NvbnN0IHM9e29uRm9jdXM6KDAsci51c2VDYWxsYmFjaykoKGZ1bmN0aW9uKHQpe3ZvaWQgMCE9PWUmJmUuY3VycmVudCE9PXQudGFyZ2V0fHxvKCEwKX0pLFtlXSksb25CbHVyOigwLHIudXNlQ2FsbGJhY2spKChmdW5jdGlvbih0KXt2b2lkIDAhPT1lJiZlLmN1cnJlbnQhPT10LnRhcmdldHx8byghMSl9KSxbZV0pfTtyZXR1cm5bbixzXX19LDU2NDIxKGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse3VzZUlzTW91c2VEb3duOigpPT5vfSk7dmFyIHI9big3Nzk0NzQpO2Z1bmN0aW9uIG8oKXtjb25zdCBlPSgwLHIudXNlUmVmKSghMSksdD0oMCxyLnVzZUNhbGxiYWNrKSgoKCk9PntlLmN1cnJlbnQ9ITB9KSxbZV0pLG49KDAsci51c2VDYWxsYmFjaykoKCgpPT57ZS5jdXJyZW50PSExfSksW2VdKTtyZXR1cm57aXNNb3VzZURvd246ZSxoYW5kbGVNb3VzZURvd246dCxoYW5kbGVNb3VzZVVwOm59fX0sMzE5NjkoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7dXNlTWVyZ2VkUmVmczooKT0+c30pO3ZhciByPW4oNzc5NDc0KSxvPW4oOTY0NTk0KTtmdW5jdGlvbiBzKGUpe3JldHVybigwLHIudXNlQ2FsbGJhY2spKCgwLG8ubWVyZ2VSZWZzKShlKSxlKX19LDkwMDg0MShlLHQsbil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHIoZSx0LG4scixvKXtmdW5jdGlvbiBzKG8pe2lmKGU+by50aW1lU3RhbXApcmV0dXJuO2NvbnN0IHM9by50YXJnZXQ7dm9pZCAwIT09biYmbnVsbCE9PXQmJm51bGwhPT1zJiZzLm93bmVyRG9jdW1lbnQ9PT1yJiYodC5jb250YWlucyhzKXx8bihvKSl9CnJldHVybiBvLmNsaWNrJiZyLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixzLCExKSxvLm1vdXNlRG93biYmci5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWRvd24iLHMsITEpLG8udG91Y2hFbmQmJnIuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hlbmQiLHMsITEpLG8udG91Y2hTdGFydCYmci5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaHN0YXJ0IixzLCExKSwoKT0+e3IucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY2xpY2siLHMsITEpLHIucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2Vkb3duIixzLCExKSxyLnJlbW92ZUV2ZW50TGlzdGVuZXIoInRvdWNoZW5kIixzLCExKSxyLnJlbW92ZUV2ZW50TGlzdGVuZXIoInRvdWNoc3RhcnQiLHMsITEpfX1uLmQodCx7YWRkT3V0c2lkZUV2ZW50TGlzdGVuZXI6KCk9PnJ9KX0sMjM2NzY1KGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse3VzZU91dHNpZGVFdmVudDooKT0+aX0pO3ZhciByPW4oNzc5NDc0KSxvPW4oNjE2MzExKSxzPW4oOTAwODQxKTtmdW5jdGlvbiBpKGUpe2NvbnN0e2NsaWNrOnQsbW91c2VEb3duOm4sdG91Y2hFbmQ6aSx0b3VjaFN0YXJ0OmEsaGFuZGxlcjpsLHJlZmVyZW5jZTpjfT1lLHU9KDAsci51c2VSZWYpKG51bGwpLGQ9KDAsci51c2VSZWYpKCJ1bmRlZmluZWQiPT10eXBlb2Ygd2luZG93PzA6bmV3IHdpbmRvdy5DdXN0b21FdmVudCgidGltZXN0YW1wIikudGltZVN0YW1wKTtyZXR1cm4oMCxvLnVzZUlzb21vcnBoaWNMYXlvdXRFZmZlY3QpKCgoKT0+e2NvbnN0IGU9e2NsaWNrOnQsbW91c2VEb3duOm4sdG91Y2hFbmQ6aSx0b3VjaFN0YXJ0OmF9LHI9Yz9jLmN1cnJlbnQ6dS5jdXJyZW50O3JldHVybigwLHMuYWRkT3V0c2lkZUV2ZW50TGlzdGVuZXIpKGQuY3VycmVudCxyLGwsZG9jdW1lbnQsZSl9KSxbdCxuLGksYSxsXSksY3x8dX19LDI3MzMxMChlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtJY29uOigpPT5vfSk7dmFyIHI9big3Nzk0NzQpO2NvbnN0IG89ci5mb3J3YXJkUmVmKCgoZSx0KT0+e2NvbnN0e2ljb246bj0iIix0aXRsZTpvLGFyaWFMYWJlbDpzLGFyaWFMYWJlbGxlZGJ5OmksYXJpYUhpZGRlbjphLC4uLmx9PWUsYz0hIShvfHxzfHxpKTtyZXR1cm4gci5jcmVhdGVFbGVtZW50KCJzcGFuIix7cm9sZToiaW1nIiwuLi5sLHJlZjp0LCJhcmlhLWxhYmVsIjpzLCJhcmlhLWxhYmVsbGVkYnkiOmksImFyaWEtaGlkZGVuIjphfHwhYyx0aXRsZTpvLGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MOntfX2h0bWw6bn19KX0pKX0sNTg1NDgoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7UG9ydGFsOigpPT5jLFBvcnRhbENvbnRleHQ6KCk9PnV9KTt2YXIgcj1uKDc3OTQ3NCksbz1uKDEyOTM2NSkscz1uKDg1Njc3MCksaT1uKDkwMzQyKSxhPW4oNTcwMTkzKSxsPW4oNjA3ODMyKTtjbGFzcyBjIGV4dGVuZHMgci5QdXJlQ29tcG9uZW50e2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLl91dWlkPSgwLHMubmFub2lkKSgpfWNvbXBvbmVudFdpbGxVbm1vdW50KCl7dGhpcy5fbWFuYWdlcigpLnJlbW92ZVdpbmRvdyh0aGlzLl91dWlkKX1yZW5kZXIoKXtjb25zdCBlPXRoaXMuX21hbmFnZXIoKS5lbnN1cmVXaW5kb3codGhpcy5fdXVpZCx0aGlzLnByb3BzLmxheWVyT3B0aW9ucyk7ZS5zdHlsZS50b3A9dGhpcy5wcm9wcy50b3B8fCIiLGUuc3R5bGUuYm90dG9tPXRoaXMucHJvcHMuYm90dG9tfHwiIixlLnN0eWxlLmxlZnQ9dGhpcy5wcm9wcy5sZWZ0fHwiIixlLnN0eWxlLnJpZ2h0PXRoaXMucHJvcHMucmlnaHR8fCIiLGUuc3R5bGUucG9pbnRlckV2ZW50cz10aGlzLnByb3BzLnBvaW50ZXJFdmVudHN8fCIiO2NvbnN0IHQ9dGhpcy5wcm9wcy5jbGFzc05hbWU7cmV0dXJuIHQmJigic3RyaW5nIj09dHlwZW9mIHQ/ZS5jbGFzc0xpc3QuYWRkKHQpOmUuY2xhc3NMaXN0LmFkZCguLi50KSksdGhpcy5wcm9wcy5zaG91bGRUcmFwRm9jdXMmJiFlLmhhc0F0dHJpYnV0ZShhLkZPQ1VTX1RSQVBfREFUQV9BVFRSSUJVVEUpJiZlLnNldEF0dHJpYnV0ZShhLkZPQ1VTX1RSQVBfREFUQV9BVFRSSUJVVEUsInRydWUiKSx0aGlzLnByb3BzWyJhcmlhLWhpZGRlbiJdJiZlLnNldEF0dHJpYnV0ZSgiYXJpYS1oaWRkZW4iLCJ0cnVlIiksby5jcmVhdGVQb3J0YWwoci5jcmVhdGVFbGVtZW50KHUuUHJvdmlkZXIse3ZhbHVlOnRoaXN9LHRoaXMucHJvcHMuY2hpbGRyZW4pLGUpfW1vdmVUb1RvcCgpe3RoaXMuX21hbmFnZXIoKS5tb3ZlVG9Ub3AodGhpcy5fdXVpZCl9X21hbmFnZXIoKXtyZXR1cm4gbnVsbD09PXRoaXMuY29udGV4dD8oMCxpLmdldFJvb3RPdmVybGFwTWFuYWdlcikoKTp0aGlzLmNvbnRleHR9fWMuY29udGV4dFR5cGU9bC5TbG90Q29udGV4dDtjb25zdCB1PXIuY3JlYXRlQ29udGV4dChudWxsKX0sNjA3ODMyKGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse1Nsb3Q6KCk9Pm8sU2xvdENvbnRleHQ6KCk9PnN9KTt2YXIgcj1uKDc3OTQ3NCk7Y2xhc3MgbyBleHRlbmRzIHIuQ29tcG9uZW50e3Nob3VsZENvbXBvbmVudFVwZGF0ZSgpe3JldHVybiExfXJlbmRlcigpe3JldHVybiByLmNyZWF0ZUVsZW1lbnQoImRpdiIse3N0eWxlOntwb3NpdGlvbjoiZml4ZWQiLHpJbmRleDoxNTAsbGVmdDowLHRvcDowfSxyZWY6dGhpcy5wcm9wcy5yZWZlcmVuY2V9KX19Y29uc3Qgcz1yLmNyZWF0ZUNvbnRleHQobnVsbCl9LDM0NTExNihlLHQsbil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHIoZSl7cmV0dXJuIHMoZSxpKX1mdW5jdGlvbiBvKGUpe3JldHVybiBzKGUsYSl9ZnVuY3Rpb24gcyhlLHQpe2NvbnN0IG49T2JqZWN0LmVudHJpZXMoZSkuZmlsdGVyKHQpLHI9e307Zm9yKGNvbnN0W2UsdF1vZiBuKXJbZV09dDtyZXR1cm4gcn1mdW5jdGlvbiBpKGUpe2NvbnN0W3Qsbl09ZTtyZXR1cm4gMD09PXQuaW5kZXhPZigiZGF0YS0iKSYmInN0cmluZyI9PXR5cGVvZiBufWZ1bmN0aW9uIGEoZSl7cmV0dXJuIDA9PT1lWzBdLmluZGV4T2YoImFyaWEtIil9ZnVuY3Rpb24gbChlLHQpe2NvbnN0IG49cihlKTtyZXR1cm4gdCYmKG5bImRhdGEtcWEtaWQiXT10KSxufW4uZCh0LHtmaWx0ZXJBcmlhUHJvcHM6KCk9Pm8sCmZpbHRlckNoZWNrZWREYXRhUHJvcHM6KCk9PmwsZmlsdGVyRGF0YVByb3BzOigpPT5yLGZpbHRlclByb3BzOigpPT5zLGlzQXJpYUF0dHJpYnV0ZTooKT0+YSxpc0RhdGFBdHRyaWJ1dGU6KCk9Pml9KX0sMTQ3OTAxKGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse1VJX0xJQl9EQVRBX1FBX0lEX1BSRUZJWDooKT0+aSxjb25jYXRJZk5vdE51bGw6KCk9PnMsZGF0YVFhSWRzOigpPT5vfSk7dmFyIHI9big1NjU3NDUpO2Z1bmN0aW9uIG8oZSx0KXtyZXR1cm5bZSx0XS5maWx0ZXIoci5pc0V4aXN0ZW50KS5qb2luKCIgIil9ZnVuY3Rpb24gcyhlLHQpe2lmKCgwLHIuaXNFeGlzdGVudCkodCkpcmV0dXJuW2UsdF0uam9pbigiICIpfWNvbnN0IGk9InVpLWxpYi0ifSw3ODA2NTEoZSx0LG4peyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiByKGUpe251bGwhPT1lJiZlLnNldFNlbGVjdGlvblJhbmdlKDAsZS52YWx1ZS5sZW5ndGgpfW4uZCh0LHtzZWxlY3RBbGxDb250ZW50OigpPT5yfSl9LDk2NDU5NChlLHQsbil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHIoZSl7cmV0dXJuIHQ9PntlLmZvckVhY2goKGU9PnsiZnVuY3Rpb24iPT10eXBlb2YgZT9lKHQpOm51bGwhPWUmJihlLmN1cnJlbnQ9dCl9KSl9fWZ1bmN0aW9uIG8oZSl7cmV0dXJuIHIoW2VdKX1uLmQodCx7aXNvbW9ycGhpY1JlZjooKT0+byxtZXJnZVJlZnM6KCk9PnJ9KX0sNzE4NTUzKGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse091dHNpZGVFdmVudDooKT0+b30pO3ZhciByPW4oMjM2NzY1KTtmdW5jdGlvbiBvKGUpe2NvbnN0e2NoaWxkcmVuOnQsLi4ubn09ZTtyZXR1cm4gdCgoMCxyLnVzZU91dHNpZGVFdmVudCkobikpfX0sOTAzNDIoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7T3ZlcmxhcE1hbmFnZXI6KCk9PmksZ2V0Um9vdE92ZXJsYXBNYW5hZ2VyOigpPT5sfSk7dmFyIHI9bigxMzg2MzgpLG89big1NzAxOTMpO2NsYXNzIHN7Y29uc3RydWN0b3IoKXt0aGlzLl9zdG9yYWdlPVtdfWFkZChlKXt0aGlzLl9zdG9yYWdlLnB1c2goZSl9cmVtb3ZlKGUpe3RoaXMuX3N0b3JhZ2U9dGhpcy5fc3RvcmFnZS5maWx0ZXIoKHQ9PmUhPT10KSl9aGFzKGUpe3JldHVybiB0aGlzLl9zdG9yYWdlLmluY2x1ZGVzKGUpfWdldEl0ZW1zKCl7cmV0dXJuIHRoaXMuX3N0b3JhZ2V9fWNsYXNzIGl7Y29uc3RydWN0b3IoZT1kb2N1bWVudCl7dGhpcy5fc3RvcmFnZT1uZXcgcyx0aGlzLl93aW5kb3dzPW5ldyBNYXAsdGhpcy5faW5kZXg9MCx0aGlzLl9kb2N1bWVudD1lLHRoaXMuX2NvbnRhaW5lcj1lLmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKX1zZXRDb250YWluZXIoZSl7Y29uc3QgdD10aGlzLl9jb250YWluZXIsbj1udWxsPT09ZT90aGlzLl9kb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCk6ZTshZnVuY3Rpb24oZSx0KXtBcnJheS5mcm9tKGUuY2hpbGROb2RlcykuZm9yRWFjaCgoZT0+e2Uubm9kZVR5cGU9PT1Ob2RlLkVMRU1FTlRfTk9ERSYmdC5hcHBlbmRDaGlsZChlKX0pKX0odCxuKSx0aGlzLl9jb250YWluZXI9bn1yZWdpc3RlcldpbmRvdyhlKXt0aGlzLl9zdG9yYWdlLmhhcyhlKXx8dGhpcy5fc3RvcmFnZS5hZGQoZSl9ZW5zdXJlV2luZG93KGUsdD17cG9zaXRpb246ImZpeGVkIixkaXJlY3Rpb246Im5vcm1hbCJ9KXtjb25zdCBuPXRoaXMuX3dpbmRvd3MuZ2V0KGUpO2lmKHZvaWQgMCE9PW4pcmV0dXJuIG47dGhpcy5yZWdpc3RlcldpbmRvdyhlKTtjb25zdCByPXRoaXMuX2RvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2lmKHIuc3R5bGUucG9zaXRpb249dC5wb3NpdGlvbixyLnN0eWxlLnpJbmRleD10aGlzLl9pbmRleC50b1N0cmluZygpLHIuZGF0YXNldC5pZD1lLHZvaWQgMCE9PXQuaW5kZXgpe2NvbnN0IGU9dGhpcy5fY29udGFpbmVyLmNoaWxkTm9kZXMubGVuZ3RoO2lmKHQuaW5kZXg+PWUpdGhpcy5fY29udGFpbmVyLmFwcGVuZENoaWxkKHIpO2Vsc2UgaWYodC5pbmRleDw9MCl0aGlzLl9jb250YWluZXIuaW5zZXJ0QmVmb3JlKHIsdGhpcy5fY29udGFpbmVyLmZpcnN0Q2hpbGQpO2Vsc2V7Y29uc3QgZT10aGlzLl9jb250YWluZXIuY2hpbGROb2Rlc1t0LmluZGV4XTt0aGlzLl9jb250YWluZXIuaW5zZXJ0QmVmb3JlKHIsZSl9fWVsc2UicmV2ZXJzZSI9PT10LmRpcmVjdGlvbj90aGlzLl9jb250YWluZXIuaW5zZXJ0QmVmb3JlKHIsdGhpcy5fY29udGFpbmVyLmZpcnN0Q2hpbGQpOnRoaXMuX2NvbnRhaW5lci5hcHBlbmRDaGlsZChyKTtyZXR1cm4gdGhpcy5fd2luZG93cy5zZXQoZSxyKSwrK3RoaXMuX2luZGV4LHJ9dW5yZWdpc3RlcldpbmRvdyhlKXt0aGlzLl9zdG9yYWdlLnJlbW92ZShlKTtjb25zdCB0PXRoaXMuX3dpbmRvd3MuZ2V0KGUpO3ZvaWQgMCE9PXQmJihudWxsIT09dC5wYXJlbnRFbGVtZW50JiZ0LnBhcmVudEVsZW1lbnQucmVtb3ZlQ2hpbGQodCksdGhpcy5fd2luZG93cy5kZWxldGUoZSkpfWdldFppbmRleChlKXtjb25zdCB0PXRoaXMuZW5zdXJlV2luZG93KGUpO3JldHVybiBwYXJzZUludCh0LnN0eWxlLnpJbmRleHx8IjAiKX1tb3ZlTGFzdFdpbmRvd1RvVG9wKCl7Y29uc3QgZT10aGlzLl9zdG9yYWdlLmdldEl0ZW1zKCksdD1lW2UubGVuZ3RoLTFdO3QmJnRoaXMubW92ZVRvVG9wKHQpfW1vdmVUb1RvcChlKXtpZih0aGlzLmdldFppbmRleChlKSE9PXRoaXMuX2luZGV4KXtjb25zdCB0PXRoaXMuZW5zdXJlV2luZG93KGUpO3RoaXMuX3dpbmRvd3MuZm9yRWFjaCgoKGUsbik9PntlLmhhc0F0dHJpYnV0ZShvLkZPQ1VTX1RSQVBfREFUQV9BVFRSSUJVVEUpJiZlLnNldEF0dHJpYnV0ZShvLkZPQ1VTX1RSQVBfREFUQV9BVFRSSUJVVEUsZT09PXQ/InRydWUiOiJmYWxzZSIpfSkpLHQuc3R5bGUuekluZGV4PSgrK3RoaXMuX2luZGV4KS50b1N0cmluZygpfX1yZW1vdmVXaW5kb3coZSl7dGhpcy51bnJlZ2lzdGVyV2luZG93KGUpfX1jb25zdCBhPW5ldyBXZWFrTWFwO2Z1bmN0aW9uIGwoZT1kb2N1bWVudCl7Y29uc3QgdD1lLmdldEVsZW1lbnRCeUlkKCJvdmVybGFwLW1hbmFnZXItcm9vdCIpO2lmKG51bGwhPT10KXJldHVybigwLHIuZW5zdXJlRGVmaW5lZCkoYS5nZXQodCkpO3sKY29uc3QgdD1uZXcgaShlKSxuPWZ1bmN0aW9uKGUpe2NvbnN0IHQ9ZS5jcmVhdGVFbGVtZW50KCJkaXYiKTtyZXR1cm4gdC5zdHlsZS5wb3NpdGlvbj0iYWJzb2x1dGUiLHQuc3R5bGUuekluZGV4PTE1MC4udG9TdHJpbmcoKSx0LnN0eWxlLnRvcD0iMHB4Iix0LnN0eWxlLmxlZnQ9IjBweCIsdC5pZD0ib3ZlcmxhcC1tYW5hZ2VyLXJvb3QiLHQuZGF0YXNldC5xYUlkPSJvdmVybGFwLW1hbmFnZXItcm9vdCIsdH0oZSk7cmV0dXJuIGEuc2V0KG4sdCksdC5zZXRDb250YWluZXIobiksZS5ib2R5LmFwcGVuZENoaWxkKG4pLHR9fXZhciBjOyFmdW5jdGlvbihlKXtlW2UuQmFzZVppbmRleD0xNTBdPSJCYXNlWmluZGV4In0oY3x8KGM9e30pKX0sODMzOTAzKGUsdCxuKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gciguLi5lKXtyZXR1cm4gdD0+e2Zvcihjb25zdCBuIG9mIGUpdm9pZCAwIT09biYmbih0KX19bi5kKHQse2NyZWF0ZVNhZmVNdWx0aWNhc3RFdmVudEhhbmRsZXI6KCk9PnJ9KX0sNTY1NzQ1KGUsdCxuKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gcihlKXtyZXR1cm4gbnVsbCE9ZX1uLmQodCx7aXNFeGlzdGVudDooKT0+cn0pfSw2MTYzMTEoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7dXNlSXNvbW9ycGhpY0xheW91dEVmZmVjdDooKT0+b30pO3ZhciByPW4oNzc5NDc0KTtmdW5jdGlvbiBvKGUsdCl7KCJ1bmRlZmluZWQiPT10eXBlb2Ygd2luZG93P3IudXNlRWZmZWN0OnIudXNlTGF5b3V0RWZmZWN0KShlLHQpfX0sODYzNDQoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7RGlhbG9nc09wZW5lck1hbmFnZXI6KCk9PnIsZGlhbG9nc09wZW5lck1hbmFnZXI6KCk9Pm99KTtjbGFzcyBye2NvbnN0cnVjdG9yKCl7dGhpcy5fc3RvcmFnZT1uZXcgTWFwfXNldEFzT3BlbmVkKGUsdCl7dGhpcy5fc3RvcmFnZS5zZXQoZSx0KX1zZXRBc0Nsb3NlZChlKXt0aGlzLl9zdG9yYWdlLmRlbGV0ZShlKX1pc09wZW5lZChlKXtyZXR1cm4gdGhpcy5fc3RvcmFnZS5oYXMoZSl9Z2V0RGlhbG9nUGF5bG9hZChlKXtyZXR1cm4gdGhpcy5fc3RvcmFnZS5nZXQoZSl9fWNvbnN0IG89bmV3IHJ9LDY5MjI2NihlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtUb29sdGlwV2lkZ2V0OigpPT5kLFRvb2x0aXBXaXphcmQ6KCk9PnV9KTt2YXIgcj1uKDc3OTQ3NCksbz1uKDkxNDQ4Nykscz1uLm4obyksaT1uKDI3MzMxMCksYT1uKDU4NTQ4KSxsPW4oODA2NjkzKSxjPW4oOTIzNTEzKTtjbGFzcyB1IGV4dGVuZHMgci5QdXJlQ29tcG9uZW50e3JlbmRlcigpe2NvbnN0e2NoaWxkcmVuOmUscG9wcGVyQ2hpbGRyZW5Qcm9wczp0LG9uQ2xvc2U6bixyZWZlcmVuY2U6byxjb250YWluZXJDbGFzc05hbWU6aSxhcnJvd0NsYXNzTmFtZTpsLHJvbGU6dX09dGhpcy5wcm9wcztyZXR1cm4gci5jcmVhdGVFbGVtZW50KGEuUG9ydGFsLG51bGwsci5jcmVhdGVFbGVtZW50KCJkaXYiLHtyZWY6b30sci5jcmVhdGVFbGVtZW50KGQse3JlZmVyZW5jZTp0LnJlZixzdHlsZTp0LnN0eWxlLGFycm93Q2xhc3NOYW1lOnMoKShjLmFycm93SG9sZGVyLHRoaXMuX2dldEFycm93RGlyZWN0aW9uQ2xhc3MoKSxsKSxhcnJvd1JlZmVyZW5jZTp0LmFycm93UHJvcHMucmVmLGFycm93U3R5bGU6dC5hcnJvd1Byb3BzLnN0eWxlLCJkYXRhLXBsYWNlbWVudCI6dC5wbGFjZW1lbnQsb25DbG9zZTpuLGNvbnRhaW5lckNsYXNzTmFtZTppLHJvbGU6dX0sZSkpKX1fZ2V0QXJyb3dEaXJlY3Rpb25DbGFzcygpe2NvbnN0e3BvcHBlckNoaWxkcmVuUHJvcHM6ZX09dGhpcy5wcm9wcztzd2l0Y2goZS5wbGFjZW1lbnQpe2Nhc2UibGVmdCI6Y2FzZSJsZWZ0LXN0YXJ0IjpyZXR1cm4gcygpKGNbImFycm93SG9sZGVyLS1hZnRlciJdLGNbImFycm93SG9sZGVyLS1hZnRlci1sdHItZml4Il0pO2Nhc2UidG9wIjpyZXR1cm4gcygpKGNbImFycm93SG9sZGVyLS1hYm92ZSJdLGNbImFycm93SG9sZGVyLS1hYm92ZS1maXgiXSk7Y2FzZSJib3R0b20iOmNhc2UiYm90dG9tLXN0YXJ0IjpjYXNlImJvdHRvbS1lbmQiOnJldHVybiBjWyJhcnJvd0hvbGRlci0tYmVsb3ciXTtkZWZhdWx0OnJldHVybiBzKCkoY1siYXJyb3dIb2xkZXItLWJlZm9yZSJdLGNbImFycm93SG9sZGVyLS1iZWZvcmUtcnRsLWZpeCJdKX19fWZ1bmN0aW9uIGQoZSl7Y29uc3R7Y2xhc3NOYW1lOnQsY29udGFpbmVyQ2xhc3NOYW1lOm4sY29udGVudENsYXNzTmFtZTpvLHJlZmVyZW5jZTphLHN0eWxlOnUsYXJyb3c6ZD0hMCxhcnJvd0NsYXNzTmFtZTpmLGFycm93UmVmZXJlbmNlOnAsb25DbG9zZTpoLGFycm93U3R5bGU6bSxjaGlsZHJlbjpnLHJvbGU6diwuLi55fT1lO3JldHVybiByLmNyZWF0ZUVsZW1lbnQoImRpdiIsey4uLnksY2xhc3NOYW1lOnQscmVmOmEsc3R5bGU6dSwiZGF0YS1yb2xlIjp2fSxkJiZyLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpmLHJlZjpwLHN0eWxlOm19KSxyLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpzKCkoYy5jb250YWluZXIsbil9LHIuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOnMoKShjLmNvbnRlbnQsbyl9LGcpLGgmJnIuY3JlYXRlRWxlbWVudChpLkljb24se2NsYXNzTmFtZTpjLmNsb3NlQnV0dG9uLGljb246bCxvbkNsaWNrOmh9KSkpfX0sMzM2MzM0KGUsdCxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigxMjkzNjUpO3QuY3JlYXRlUm9vdD1yLmNyZWF0ZVJvb3Qsci5oeWRyYXRlUm9vdH0sMTI5MzY1KGUsdCxuKXsidXNlIHN0cmljdCI7IWZ1bmN0aW9uIGUoKXtpZigidW5kZWZpbmVkIiE9dHlwZW9mIF9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXyYmImZ1bmN0aW9uIj09dHlwZW9mIF9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXy5jaGVja0RDRSl0cnl7X19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fLmNoZWNrRENFKGUpfWNhdGNoKGUpe2NvbnNvbGUuZXJyb3IoZSl9fSgpLGUuZXhwb3J0cz1uKDUzMjM4Nyl9LDEyMjc0OShlLHQpeyJ1c2Ugc3RyaWN0Igo7dmFyIG49U3ltYm9sLmZvcigicmVhY3QuZWxlbWVudCIpLHI9U3ltYm9sLmZvcigicmVhY3QucG9ydGFsIiksbz1TeW1ib2wuZm9yKCJyZWFjdC5mcmFnbWVudCIpLHM9U3ltYm9sLmZvcigicmVhY3Quc3RyaWN0X21vZGUiKSxpPVN5bWJvbC5mb3IoInJlYWN0LnByb2ZpbGVyIiksYT1TeW1ib2wuZm9yKCJyZWFjdC5wcm92aWRlciIpLGw9U3ltYm9sLmZvcigicmVhY3QuY29udGV4dCIpLGM9U3ltYm9sLmZvcigicmVhY3QuZm9yd2FyZF9yZWYiKSx1PVN5bWJvbC5mb3IoInJlYWN0LnN1c3BlbnNlIiksZD1TeW1ib2wuZm9yKCJyZWFjdC5tZW1vIiksZj1TeW1ib2wuZm9yKCJyZWFjdC5sYXp5IikscD1TeW1ib2wuaXRlcmF0b3I7dmFyIGg9e2lzTW91bnRlZDpmdW5jdGlvbigpe3JldHVybiExfSxlbnF1ZXVlRm9yY2VVcGRhdGU6ZnVuY3Rpb24oKXt9LGVucXVldWVSZXBsYWNlU3RhdGU6ZnVuY3Rpb24oKXt9LGVucXVldWVTZXRTdGF0ZTpmdW5jdGlvbigpe319LG09T2JqZWN0LmFzc2lnbixnPXt9O2Z1bmN0aW9uIHYoZSx0LG4pe3RoaXMucHJvcHM9ZSx0aGlzLmNvbnRleHQ9dCx0aGlzLnJlZnM9Zyx0aGlzLnVwZGF0ZXI9bnx8aH1mdW5jdGlvbiB5KCl7fWZ1bmN0aW9uIF8oZSx0LG4pe3RoaXMucHJvcHM9ZSx0aGlzLmNvbnRleHQ9dCx0aGlzLnJlZnM9Zyx0aGlzLnVwZGF0ZXI9bnx8aH12LnByb3RvdHlwZS5pc1JlYWN0Q29tcG9uZW50PXt9LHYucHJvdG90eXBlLnNldFN0YXRlPWZ1bmN0aW9uKGUsdCl7aWYoIm9iamVjdCIhPXR5cGVvZiBlJiYiZnVuY3Rpb24iIT10eXBlb2YgZSYmbnVsbCE9ZSl0aHJvdyBFcnJvcigic2V0U3RhdGUoLi4uKTogdGFrZXMgYW4gb2JqZWN0IG9mIHN0YXRlIHZhcmlhYmxlcyB0byB1cGRhdGUgb3IgYSBmdW5jdGlvbiB3aGljaCByZXR1cm5zIGFuIG9iamVjdCBvZiBzdGF0ZSB2YXJpYWJsZXMuIik7dGhpcy51cGRhdGVyLmVucXVldWVTZXRTdGF0ZSh0aGlzLGUsdCwic2V0U3RhdGUiKX0sdi5wcm90b3R5cGUuZm9yY2VVcGRhdGU9ZnVuY3Rpb24oZSl7dGhpcy51cGRhdGVyLmVucXVldWVGb3JjZVVwZGF0ZSh0aGlzLGUsImZvcmNlVXBkYXRlIil9LHkucHJvdG90eXBlPXYucHJvdG90eXBlO3ZhciBDPV8ucHJvdG90eXBlPW5ldyB5O0MuY29uc3RydWN0b3I9XyxtKEMsdi5wcm90b3R5cGUpLEMuaXNQdXJlUmVhY3RDb21wb25lbnQ9ITA7dmFyIHc9QXJyYXkuaXNBcnJheSxTPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHksYj17Y3VycmVudDpudWxsfSxFPXtrZXk6ITAscmVmOiEwLF9fc2VsZjohMCxfX3NvdXJjZTohMH07ZnVuY3Rpb24geChlLHQscil7dmFyIG8scz17fSxpPW51bGwsYT1udWxsO2lmKG51bGwhPXQpZm9yKG8gaW4gdm9pZCAwIT09dC5yZWYmJihhPXQucmVmKSx2b2lkIDAhPT10LmtleSYmKGk9IiIrdC5rZXkpLHQpUy5jYWxsKHQsbykmJiFFLmhhc093blByb3BlcnR5KG8pJiYoc1tvXT10W29dKTt2YXIgbD1hcmd1bWVudHMubGVuZ3RoLTI7aWYoMT09PWwpcy5jaGlsZHJlbj1yO2Vsc2UgaWYoMTxsKXtmb3IodmFyIGM9QXJyYXkobCksdT0wO3U8bDt1KyspY1t1XT1hcmd1bWVudHNbdSsyXTtzLmNoaWxkcmVuPWN9aWYoZSYmZS5kZWZhdWx0UHJvcHMpZm9yKG8gaW4gbD1lLmRlZmF1bHRQcm9wcyl2b2lkIDA9PT1zW29dJiYoc1tvXT1sW29dKTtyZXR1cm57JCR0eXBlb2Y6bix0eXBlOmUsa2V5OmkscmVmOmEscHJvcHM6cyxfb3duZXI6Yi5jdXJyZW50fX1mdW5jdGlvbiBOKGUpe3JldHVybiJvYmplY3QiPT10eXBlb2YgZSYmbnVsbCE9PWUmJmUuJCR0eXBlb2Y9PT1ufXZhciBSPS9cLysvZztmdW5jdGlvbiBJKGUsdCl7cmV0dXJuIm9iamVjdCI9PXR5cGVvZiBlJiZudWxsIT09ZSYmbnVsbCE9ZS5rZXk/ZnVuY3Rpb24oZSl7dmFyIHQ9eyI9IjoiPTAiLCI6IjoiPTIifTtyZXR1cm4iJCIrZS5yZXBsYWNlKC9bPTpdL2csKGZ1bmN0aW9uKGUpe3JldHVybiB0W2VdfSkpfSgiIitlLmtleSk6dC50b1N0cmluZygzNil9ZnVuY3Rpb24gTyhlLHQsbyxzLGkpe3ZhciBhPXR5cGVvZiBlOyJ1bmRlZmluZWQiIT09YSYmImJvb2xlYW4iIT09YXx8KGU9bnVsbCk7dmFyIGw9ITE7aWYobnVsbD09PWUpbD0hMDtlbHNlIHN3aXRjaChhKXtjYXNlInN0cmluZyI6Y2FzZSJudW1iZXIiOmw9ITA7YnJlYWs7Y2FzZSJvYmplY3QiOnN3aXRjaChlLiQkdHlwZW9mKXtjYXNlIG46Y2FzZSByOmw9ITB9fWlmKGwpcmV0dXJuIGk9aShsPWUpLGU9IiI9PT1zPyIuIitJKGwsMCk6cyx3KGkpPyhvPSIiLG51bGwhPWUmJihvPWUucmVwbGFjZShSLCIkJi8iKSsiLyIpLE8oaSx0LG8sIiIsKGZ1bmN0aW9uKGUpe3JldHVybiBlfSkpKTpudWxsIT1pJiYoTihpKSYmKGk9ZnVuY3Rpb24oZSx0KXtyZXR1cm57JCR0eXBlb2Y6bix0eXBlOmUudHlwZSxrZXk6dCxyZWY6ZS5yZWYscHJvcHM6ZS5wcm9wcyxfb3duZXI6ZS5fb3duZXJ9fShpLG8rKCFpLmtleXx8bCYmbC5rZXk9PT1pLmtleT8iIjooIiIraS5rZXkpLnJlcGxhY2UoUiwiJCYvIikrIi8iKStlKSksdC5wdXNoKGkpKSwxO2lmKGw9MCxzPSIiPT09cz8iLiI6cysiOiIsdyhlKSlmb3IodmFyIGM9MDtjPGUubGVuZ3RoO2MrKyl7dmFyIHU9cytJKGE9ZVtjXSxjKTtsKz1PKGEsdCxvLHUsaSl9ZWxzZSBpZih1PWZ1bmN0aW9uKGUpe3JldHVybiBudWxsPT09ZXx8Im9iamVjdCIhPXR5cGVvZiBlP251bGw6ImZ1bmN0aW9uIj09dHlwZW9mKGU9cCYmZVtwXXx8ZVsiQEBpdGVyYXRvciJdKT9lOm51bGx9KGUpLCJmdW5jdGlvbiI9PXR5cGVvZiB1KWZvcihlPXUuY2FsbChlKSxjPTA7IShhPWUubmV4dCgpKS5kb25lOylsKz1PKGE9YS52YWx1ZSx0LG8sdT1zK0koYSxjKyspLGkpO2Vsc2UgaWYoIm9iamVjdCI9PT1hKXRocm93IHQ9U3RyaW5nKGUpLEVycm9yKCJPYmplY3RzIGFyZSBub3QgdmFsaWQgYXMgYSBSZWFjdCBjaGlsZCAoZm91bmQ6ICIrKCJbb2JqZWN0IE9iamVjdF0iPT09dD8ib2JqZWN0IHdpdGgga2V5cyB7IitPYmplY3Qua2V5cyhlKS5qb2luKCIsICIpKyJ9Ijp0KSsiKS4gSWYgeW91IG1lYW50IHRvIHJlbmRlciBhIGNvbGxlY3Rpb24gb2YgY2hpbGRyZW4sIHVzZSBhbiBhcnJheSBpbnN0ZWFkLiIpCjtyZXR1cm4gbH1mdW5jdGlvbiBNKGUsdCxuKXtpZihudWxsPT1lKXJldHVybiBlO3ZhciByPVtdLG89MDtyZXR1cm4gTyhlLHIsIiIsIiIsKGZ1bmN0aW9uKGUpe3JldHVybiB0LmNhbGwobixlLG8rKyl9KSkscn1mdW5jdGlvbiBBKGUpe2lmKC0xPT09ZS5fc3RhdHVzKXt2YXIgdD1lLl9yZXN1bHQ7KHQ9dCgpKS50aGVuKChmdW5jdGlvbih0KXswIT09ZS5fc3RhdHVzJiYtMSE9PWUuX3N0YXR1c3x8KGUuX3N0YXR1cz0xLGUuX3Jlc3VsdD10KX0pLChmdW5jdGlvbih0KXswIT09ZS5fc3RhdHVzJiYtMSE9PWUuX3N0YXR1c3x8KGUuX3N0YXR1cz0yLGUuX3Jlc3VsdD10KX0pKSwtMT09PWUuX3N0YXR1cyYmKGUuX3N0YXR1cz0wLGUuX3Jlc3VsdD10KX1pZigxPT09ZS5fc3RhdHVzKXJldHVybiBlLl9yZXN1bHQuZGVmYXVsdDt0aHJvdyBlLl9yZXN1bHR9dmFyIEQ9e2N1cnJlbnQ6bnVsbH0sVD17dHJhbnNpdGlvbjpudWxsfSxHPXtSZWFjdEN1cnJlbnREaXNwYXRjaGVyOkQsUmVhY3RDdXJyZW50QmF0Y2hDb25maWc6VCxSZWFjdEN1cnJlbnRPd25lcjpifTt0LkNoaWxkcmVuPXttYXA6TSxmb3JFYWNoOmZ1bmN0aW9uKGUsdCxuKXtNKGUsKGZ1bmN0aW9uKCl7dC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9KSxuKX0sY291bnQ6ZnVuY3Rpb24oZSl7dmFyIHQ9MDtyZXR1cm4gTShlLChmdW5jdGlvbigpe3QrK30pKSx0fSx0b0FycmF5OmZ1bmN0aW9uKGUpe3JldHVybiBNKGUsKGZ1bmN0aW9uKGUpe3JldHVybiBlfSkpfHxbXX0sb25seTpmdW5jdGlvbihlKXtpZighTihlKSl0aHJvdyBFcnJvcigiUmVhY3QuQ2hpbGRyZW4ub25seSBleHBlY3RlZCB0byByZWNlaXZlIGEgc2luZ2xlIFJlYWN0IGVsZW1lbnQgY2hpbGQuIik7cmV0dXJuIGV9fSx0LkNvbXBvbmVudD12LHQuRnJhZ21lbnQ9byx0LlByb2ZpbGVyPWksdC5QdXJlQ29tcG9uZW50PV8sdC5TdHJpY3RNb2RlPXMsdC5TdXNwZW5zZT11LHQuX19TRUNSRVRfSU5URVJOQUxTX0RPX05PVF9VU0VfT1JfWU9VX1dJTExfQkVfRklSRUQ9Ryx0LmNsb25lRWxlbWVudD1mdW5jdGlvbihlLHQscil7aWYobnVsbD09ZSl0aHJvdyBFcnJvcigiUmVhY3QuY2xvbmVFbGVtZW50KC4uLik6IFRoZSBhcmd1bWVudCBtdXN0IGJlIGEgUmVhY3QgZWxlbWVudCwgYnV0IHlvdSBwYXNzZWQgIitlKyIuIik7dmFyIG89bSh7fSxlLnByb3BzKSxzPWUua2V5LGk9ZS5yZWYsYT1lLl9vd25lcjtpZihudWxsIT10KXtpZih2b2lkIDAhPT10LnJlZiYmKGk9dC5yZWYsYT1iLmN1cnJlbnQpLHZvaWQgMCE9PXQua2V5JiYocz0iIit0LmtleSksZS50eXBlJiZlLnR5cGUuZGVmYXVsdFByb3BzKXZhciBsPWUudHlwZS5kZWZhdWx0UHJvcHM7Zm9yKGMgaW4gdClTLmNhbGwodCxjKSYmIUUuaGFzT3duUHJvcGVydHkoYykmJihvW2NdPXZvaWQgMD09PXRbY10mJnZvaWQgMCE9PWw/bFtjXTp0W2NdKX12YXIgYz1hcmd1bWVudHMubGVuZ3RoLTI7aWYoMT09PWMpby5jaGlsZHJlbj1yO2Vsc2UgaWYoMTxjKXtsPUFycmF5KGMpO2Zvcih2YXIgdT0wO3U8Yzt1KyspbFt1XT1hcmd1bWVudHNbdSsyXTtvLmNoaWxkcmVuPWx9cmV0dXJueyQkdHlwZW9mOm4sdHlwZTplLnR5cGUsa2V5OnMscmVmOmkscHJvcHM6byxfb3duZXI6YX19LHQuY3JlYXRlQ29udGV4dD1mdW5jdGlvbihlKXtyZXR1cm4oZT17JCR0eXBlb2Y6bCxfY3VycmVudFZhbHVlOmUsX2N1cnJlbnRWYWx1ZTI6ZSxfdGhyZWFkQ291bnQ6MCxQcm92aWRlcjpudWxsLENvbnN1bWVyOm51bGwsX2RlZmF1bHRWYWx1ZTpudWxsLF9nbG9iYWxOYW1lOm51bGx9KS5Qcm92aWRlcj17JCR0eXBlb2Y6YSxfY29udGV4dDplfSxlLkNvbnN1bWVyPWV9LHQuY3JlYXRlRWxlbWVudD14LHQuY3JlYXRlRmFjdG9yeT1mdW5jdGlvbihlKXt2YXIgdD14LmJpbmQobnVsbCxlKTtyZXR1cm4gdC50eXBlPWUsdH0sdC5jcmVhdGVSZWY9ZnVuY3Rpb24oKXtyZXR1cm57Y3VycmVudDpudWxsfX0sdC5mb3J3YXJkUmVmPWZ1bmN0aW9uKGUpe3JldHVybnskJHR5cGVvZjpjLHJlbmRlcjplfX0sdC5pc1ZhbGlkRWxlbWVudD1OLHQubGF6eT1mdW5jdGlvbihlKXtyZXR1cm57JCR0eXBlb2Y6ZixfcGF5bG9hZDp7X3N0YXR1czotMSxfcmVzdWx0OmV9LF9pbml0OkF9fSx0Lm1lbW89ZnVuY3Rpb24oZSx0KXtyZXR1cm57JCR0eXBlb2Y6ZCx0eXBlOmUsY29tcGFyZTp2b2lkIDA9PT10P251bGw6dH19LHQuc3RhcnRUcmFuc2l0aW9uPWZ1bmN0aW9uKGUpe3ZhciB0PVQudHJhbnNpdGlvbjtULnRyYW5zaXRpb249e307dHJ5e2UoKX1maW5hbGx5e1QudHJhbnNpdGlvbj10fX0sdC51bnN0YWJsZV9hY3Q9ZnVuY3Rpb24oKXt0aHJvdyBFcnJvcigiYWN0KC4uLikgaXMgbm90IHN1cHBvcnRlZCBpbiBwcm9kdWN0aW9uIGJ1aWxkcyBvZiBSZWFjdC4iKX0sdC51c2VDYWxsYmFjaz1mdW5jdGlvbihlLHQpe3JldHVybiBELmN1cnJlbnQudXNlQ2FsbGJhY2soZSx0KX0sdC51c2VDb250ZXh0PWZ1bmN0aW9uKGUpe3JldHVybiBELmN1cnJlbnQudXNlQ29udGV4dChlKX0sdC51c2VEZWJ1Z1ZhbHVlPWZ1bmN0aW9uKCl7fSx0LnVzZURlZmVycmVkVmFsdWU9ZnVuY3Rpb24oZSl7cmV0dXJuIEQuY3VycmVudC51c2VEZWZlcnJlZFZhbHVlKGUpfSx0LnVzZUVmZmVjdD1mdW5jdGlvbihlLHQpe3JldHVybiBELmN1cnJlbnQudXNlRWZmZWN0KGUsdCl9LHQudXNlSWQ9ZnVuY3Rpb24oKXtyZXR1cm4gRC5jdXJyZW50LnVzZUlkKCl9LHQudXNlSW1wZXJhdGl2ZUhhbmRsZT1mdW5jdGlvbihlLHQsbil7cmV0dXJuIEQuY3VycmVudC51c2VJbXBlcmF0aXZlSGFuZGxlKGUsdCxuKX0sdC51c2VJbnNlcnRpb25FZmZlY3Q9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gRC5jdXJyZW50LnVzZUluc2VydGlvbkVmZmVjdChlLHQpfSx0LnVzZUxheW91dEVmZmVjdD1mdW5jdGlvbihlLHQpe3JldHVybiBELmN1cnJlbnQudXNlTGF5b3V0RWZmZWN0KGUsdCl9LHQudXNlTWVtbz1mdW5jdGlvbihlLHQpe3JldHVybiBELmN1cnJlbnQudXNlTWVtbyhlLHQpfSx0LnVzZVJlZHVjZXI9ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBELmN1cnJlbnQudXNlUmVkdWNlcihlLHQsbil9LHQudXNlUmVmPWZ1bmN0aW9uKGUpewpyZXR1cm4gRC5jdXJyZW50LnVzZVJlZihlKX0sdC51c2VTdGF0ZT1mdW5jdGlvbihlKXtyZXR1cm4gRC5jdXJyZW50LnVzZVN0YXRlKGUpfSx0LnVzZVN5bmNFeHRlcm5hbFN0b3JlPWZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gRC5jdXJyZW50LnVzZVN5bmNFeHRlcm5hbFN0b3JlKGUsdCxuKX0sdC51c2VUcmFuc2l0aW9uPWZ1bmN0aW9uKCl7cmV0dXJuIEQuY3VycmVudC51c2VUcmFuc2l0aW9uKCl9LHQudmVyc2lvbj0iMTguMi4wIn0sNzc5NDc0KGUsdCxuKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPW4oMTIyNzQ5KX0sNDUwNzgzKGUsdCxuKXsidXNlIHN0cmljdCI7bi5yKHQpLG4uZCh0LHtzaG93Q2hhbmdlSW50ZXJ2YWxEaWFsb2c6KCk9PlN9KTt2YXIgcj1uKDc3OTQ3NCksbz1uKDkxNDQ4Nykscz1uLm4obyksaT1uKDE4NTI3MSksYT1uKDM2MTg1NSksbD1uKDU2MDQ5MSksYz1uKDIyNTI5OCksdT1uKDU4NTgyMSksZD1uKDI3MzMxMCksZj1uKDM3MTk0OCk7Y29uc3QgcD1pLnQobnVsbCx2b2lkIDAsbig0ODc3NjMpKSxoPWkudChudWxsLHZvaWQgMCxuKDIxMjA1KSk7ZnVuY3Rpb24gbShlKXtjb25zdHtjbGFzc05hbWU6dCxpc1NlY29uZHNFbmFibGVkOm59PWU7cmV0dXJuIHIuY3JlYXRlRWxlbWVudChkLkljb24se2ljb246ZixjbGFzc05hbWU6cygpKCJhcHBseS1jb21tb24tdG9vbHRpcCIsdCksdGl0bGU6bj9oOnB9KX12YXIgZz1uKDQ2NTEzNyksdj1uKDI1NDY3Myk7dmFyIHk9big3MTcxOTUpO2Z1bmN0aW9uIF8oZSl7Y29uc3R7aW5pdFZhbDp0LHNlbGVjdE9uSW5pdDpvLG9uQ2xvc2U6ZH09ZSxmPSgwLHIudXNlUmVmKShudWxsKSxbcCxoXT0oMCxyLnVzZVN0YXRlKSh0LnRvVXBwZXJDYXNlKCkpLF89KDAsci51c2VNZW1vKSgoKCk9PnYuSW50ZXJ2YWwucGFyc2UocCkpLFtwXSksQz1mdW5jdGlvbihlLHQpe3JldHVybigwLHIudXNlTWVtbykoKCgpPT57aWYoIXQuaXNWYWxpZCgpfHwhKDAsZy5pbnRlcnZhbElzU3VwcG9ydGVkKShlKSlyZXR1cm4hMTtjb25zdCBuPXYuSW50ZXJ2YWwubm9ybWFsaXplKGUpO3JldHVybiBudWxsIT09biYmKDAsZy5pc1Jlc29sdXRpb25NdWx0aXBsaWVyVmFsaWQpKG4pfSksW2UsdF0pfShwLF8pLHc9KDAsci51c2VNZW1vKSgoKCk9PntpZighQylyZXR1cm4gbnVsbDtyZXR1cm4oMCxnLmdldFRyYW5zbGF0ZWRSZXNvbHV0aW9uTW9kZWwpKF8udmFsdWUoKSkuaGludH0pLFtDLF9dKTtyZXR1cm4oMCxyLnVzZUxheW91dEVmZmVjdCkoKCgpPT57bz9mLmN1cnJlbnQ/LnNlbGVjdCgpOmYuY3VycmVudD8uZm9jdXMoKX0pLFtvXSksci5jcmVhdGVFbGVtZW50KHUuUG9wdXBEaWFsb2cse2NsYXNzTmFtZTp5LmRpYWxvZywiZGF0YS1kaWFsb2ctbmFtZSI6ImNoYW5nZS1pbnRlcnZhbC1kaWFsb2ciLGlzT3BlbmVkOiEwLG9uQ2xpY2tPdXRzaWRlOmQsb25Gb2N1czpmdW5jdGlvbigpe2YuY3VycmVudD8uZm9jdXMoKX0sb25LZXlEb3duOmZ1bmN0aW9uKGUpezI3PT09ZS5rZXlDb2RlJiZkPy4oKX19LHIuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOnkuZGlhbG9nSW5uZXJ9LHIuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOnkudGl0bGVXcmFwcGVyfSxyLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTp5LnRpdGxlfSxpLnQobnVsbCx2b2lkIDAsbig1OTc3NzApKSksci5jcmVhdGVFbGVtZW50KG0se2NsYXNzTmFtZTp5LmluZm9IaW50LGlzU2Vjb25kc0VuYWJsZWQ6KDAsZy5pc1NlY29uZHNFbmFibGVkKSgpfSkpLHIuY3JlYXRlRWxlbWVudCgiZm9ybSIse2NsYXNzTmFtZTp5LmZvcm0sb25TdWJtaXQ6ZnVuY3Rpb24oZSl7ZS5wcmV2ZW50RGVmYXVsdCgpO2NvbnN0IHQ9Yy5saW5raW5nLmludGVydmFsLnZhbHVlKCksbj12LkludGVydmFsLm5vcm1hbGl6ZShwKTtuJiZ0IT09biYmQyYmYy5saW5raW5nLnNldEludGVydmFsQW5kTG9nSW5pdGlhdG9yKG4sIkNoYW5nZSBpbnRlcnZhbCBkaWFsb2ciKTtkPy4oKX19LHIuY3JlYXRlRWxlbWVudChhLklucHV0Q29udHJvbCx7Y2xhc3NOYW1lOnMoKSh5LmlucHV0V3JhcHBlcixsLklucHV0Q2xhc3Nlcy5Gb250U2l6ZUxhcmdlKSxpbnB1dENsYXNzTmFtZTp5LmlucHV0LHR5cGU6InRleHQiLHNpemU6ImxhcmdlIixyZWZlcmVuY2U6Zix2YWx1ZTpwLG1heExlbmd0aDo4LGludGVudDpDP3ZvaWQgMDoiZGFuZ2VyIixvbkNoYW5nZTpmdW5jdGlvbihlKXtjb25zdHt2YWx1ZTp0fT1lLnRhcmdldDtoKHQudG9VcHBlckNhc2UoKSl9fSkpLEM/ci5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6eS5oaW50fSx3KTpyLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpzKCkoeS5oaW50LHkuZXJyb3IpfSxpLnQobnVsbCx2b2lkIDAsbigxNDM0MTIpKSkpKX12YXIgQz1uKDg2MzQ0KSx3PW4oNTcxMzAwKTtmdW5jdGlvbiBTKGUpe2lmKEMuZGlhbG9nc09wZW5lck1hbmFnZXIuaXNPcGVuZWQoIkNoYW5nZUludGVydmFsRGlhbG9nIil8fEMuZGlhbG9nc09wZW5lck1hbmFnZXIuaXNPcGVuZWQoIlN5bWJvbFNlYXJjaCIpKXJldHVybjtjb25zdCB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLHtpbml0VmFsOm4sc2VsZWN0T25Jbml0Om8sb25DbG9zZTpzfT1lLGk9ci5jcmVhdGVFbGVtZW50KF8se2luaXRWYWw6bixzZWxlY3RPbkluaXQ6byxvbkNsb3NlOmZ1bmN0aW9uKCl7YS51bm1vdW50KCksQy5kaWFsb2dzT3BlbmVyTWFuYWdlci5zZXRBc0Nsb3NlZCgiQ2hhbmdlSW50ZXJ2YWxEaWFsb2ciKSxzPy4oKX19KSxhPSgwLHcuY3JlYXRlUmVhY3RSb290KShpLHQpO0MuZGlhbG9nc09wZW5lck1hbmFnZXIuc2V0QXNPcGVuZWQoIkNoYW5nZUludGVydmFsRGlhbG9nIil9fSwzMzI2NjAoZSx0LG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcjtuLmQodCx7RGlhbG9nRXZlbnREaXNwYXRjaGVyOigpPT5hfSksZnVuY3Rpb24oZSl7ZS5PcGVuPSJkaWFsb2ctb3BlbiIsZS5DbG9zZT0iZGlhbG9nLWNsb3NlIixlLkZ1bGxzY3JlZW5Pbj0iZGlhbG9nLWZ1bGxzY3JlZW4tb24iLGUuRnVsbHNjcmVlbk9mZj0iZGlhbG9nLWZ1bGxzY3JlZW4tb2ZmIn0ocnx8KHI9e30pKQo7dmFyIG89bigyMjEwNjEpLHM9bigxNTAxNTApO2NvbnN0IGk9KDAsby5nZXRMb2dnZXIpKCJEaWFsb2dFdmVudERpc3BhdGNoZXIiKTtjbGFzcyBhe2NvbnN0cnVjdG9yKCl7dGhpcy5fb3BlblNlc3Npb25JZD1udWxsfWRpc3BhdGNoKGUpe2lmKCJkaWFsb2ctb3BlbiI9PT1lKXtpZihudWxsIT09dGhpcy5fb3BlblNlc3Npb25JZClyZXR1cm4gdm9pZCBpLmxvZ0Vycm9yKCJNdWx0aXBsZSBjYWxscyB0byBvcGVuIGRpYWxvZyIpO3RoaXMuX29wZW5TZXNzaW9uSWQ9KDAscy5yYW5kb21IYXNoKSgpfW51bGwhPT10aGlzLl9vcGVuU2Vzc2lvbklkPyh3aW5kb3cuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoZSx7YnViYmxlczohMCxkZXRhaWw6e2RpYWxvZ1Nlc3Npb25JZDp0aGlzLl9vcGVuU2Vzc2lvbklkfX0pKSwiZGlhbG9nLWNsb3NlIj09PWUmJih0aGlzLl9vcGVuU2Vzc2lvbklkPW51bGwpKTppLmxvZ0Vycm9yKCJFbXB0eSBvcGVuIGRpYWxvZyBzZXNzaW9uIGlkIil9fX0sMzM3MzYyKGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse0VtYmVkVmlld3BvcnREaW1lbnNpb25zUHJvdmlkZXI6KCk9Pm99KTt2YXIgcj1uKDkzMDIzMSk7Y2xhc3Mgb3tjb25zdHJ1Y3Rvcigpe3RoaXMuX2RhdGE9bnVsbCx0aGlzLl9tZXNzYWdlUmVjZWl2ZXI9bnVsbH1zdGFydExpc3RlbmluZygpe3RoaXMuX21lc3NhZ2VSZWNlaXZlcnx8KHRoaXMuX21lc3NhZ2VSZWNlaXZlcj1lPT57aWYoZS5kYXRhKXRyeXtjb25zdCB0PUpTT04ucGFyc2UoZS5kYXRhKTsic2V0LWVtYmVkLXJlc2l6ZXItb3ZlcnJpZGVzIj09PXQuZXZlbnQmJih0aGlzLl9kYXRhPXQuZWRnZXMpfWNhdGNoe319LHRoaXMuX2FkZE1lc3NhZ2VMaXN0ZW5lcigpKX1kZXN0cm95KCl7dGhpcy5fcmVtb3ZlTWVzc2FnZUxpc3RlbmVyKCl9ZGF0YSgpe3JldHVybiB0aGlzLl9kYXRhfXN0YXRpYyBnZXRJbnN0YW5jZSgpe3JldHVybiB0aGlzLl9pbnN0YW5jZXx8KHRoaXMuX2luc3RhbmNlPW5ldyBvKSx0aGlzLl9pbnN0YW5jZX1fYWRkTWVzc2FnZUxpc3RlbmVyKCl7dGhpcy5fbWVzc2FnZVJlY2VpdmVyJiZ3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsdGhpcy5fbWVzc2FnZVJlY2VpdmVyKX1fcmVtb3ZlTWVzc2FnZUxpc3RlbmVyKCl7dGhpcy5fbWVzc2FnZVJlY2VpdmVyJiZ3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsdGhpcy5fbWVzc2FnZVJlY2VpdmVyKSx0aGlzLl9tZXNzYWdlUmVjZWl2ZXI9bnVsbH19KDAsci5pc0ZlYXR1cmVzZXRFbmFibGVkKSgiZW1iZWRfcmVzaXplcl9vdmVycmlkZXMiKSYmby5nZXRJbnN0YW5jZSgpLnN0YXJ0TGlzdGVuaW5nKCl9LDM3MTk0OChlKXtlLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMTggMTgiIHdpZHRoPSIxOCIgaGVpZ2h0PSIxOCIgZmlsbD0ibm9uZSI+PHBhdGggc3Ryb2tlPSJjdXJyZW50Q29sb3IiIGQ9Ik04IDguNWgxLjVWMTQiLz48Y2lyY2xlIGZpbGw9ImN1cnJlbnRDb2xvciIgY3g9IjkiIGN5PSI1IiByPSIxIi8+PHBhdGggc3Ryb2tlPSJjdXJyZW50Q29sb3IiIGQ9Ik0xNi41IDlhNy41IDcuNSAwIDEgMS0xNSAwIDcuNSA3LjUgMCAwIDEgMTUgMHoiLz48L3N2Zz4nfSw4NTY3NzAoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7bmFub2lkOigpPT5yfSk7bGV0IHI9KGU9MjEpPT5jcnlwdG8uZ2V0UmFuZG9tVmFsdWVzKG5ldyBVaW50OEFycmF5KGUpKS5yZWR1Y2UoKChlLHQpPT5lKz0odCY9NjMpPDM2P3QudG9TdHJpbmcoMzYpOnQ8NjI/KHQtMjYpLnRvU3RyaW5nKDM2KS50b1VwcGVyQ2FzZSgpOnQ+NjI/Ii0iOiJfIiksIiIpfX1dKTs="}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/83935.2eed45a9cc6476afd035.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.860Z","timestamp":1785148034860,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/83935.2eed45a9cc6476afd035.js HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a61b1a8-9c3a\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Thu, 23 Jul 2026 06:16:08 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/23/2026 10:21:29\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 0d340bc7c602ea592f272184dcd25602\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":39994,"size_decoded":15184,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (3070)","md5":"8f3254148a9c8ff8f3222ccd87573e1d","sha1":"13d2769de5f6ae325acdd2a2b4722cdd200a8ee0","sha256":"a48fe9aa33904b917d410534aa11b8b16bbd0ae2da93b2b2c9b1545f6bf042d1","sha512":"759896fddd24c7a4546e1c02bf82cfae06be88968943de298eae07f33db7520db25e2e81d6ffbbf93f947e7b205c39c3abfaa5ff7fc42eda54efb3d2809c35fd","ssdeep":"768:n+7JSbnYUTaeGUzb8IZ+4nQoxz6cQic+YygPrQURvQPuXG+kTD3Yi4J+HYz8D8CL:E8bFWexQKQz9/vJqLcs","tlshash":"03033951b05268eed3e689c7006e4615f3223255b4479c60f0fcdcdd6aaae5d23b8bac","first_seen":"2026-07-27T03:26:08.99198Z","last_seen":"2026-07-27T10:53:39.257043Z","times_seen":8,"resource_available":true,"data":"KHNlbGYud2VicGFja0NodW5rdHJhZGluZ3ZpZXc9c2VsZi53ZWJwYWNrQ2h1bmt0cmFkaW5ndmlld3x8W10pLnB1c2goW1s4MzkzNV0sezUwNTQ3KGUpe2UuZXhwb3J0cz17c2hhZGVkTGF5ZXI6InNoYWRlZExheWVyLXZVNVd0eGNTIixsYWJlbDoibGFiZWwtdlU1V3R4Y1MiLGxhYmVsQ29udGFpbmVyOiJsYWJlbENvbnRhaW5lci12VTVXdHhjUyJ9fSw2ODc5NTMoZSl7ZS5leHBvcnRzPXtkaXZpZGVyOiJkaXZpZGVyLUNvQTJkNUM3Iiwib3JpZW50YXRpb24taG9yaXpvbnRhbCI6Im9yaWVudGF0aW9uLWhvcml6b250YWwtQ29BMmQ1QzciLCJvcmllbnRhdGlvbi12ZXJ0aWNhbCI6Im9yaWVudGF0aW9uLXZlcnRpY2FsLUNvQTJkNUM3IiwiZml0LWNvbnRlbnQiOiJmaXQtY29udGVudC1Db0EyZDVDNyIsInNpemUteHNtYWxsIjoic2l6ZS14c21hbGwtQ29BMmQ1QzciLCJzaXplLXNtYWxsIjoic2l6ZS1zbWFsbC1Db0EyZDVDNyIsInNpemUtbWVkaXVtIjoic2l6ZS1tZWRpdW0tQ29BMmQ1QzciLCJzaXplLWxhcmdlIjoic2l6ZS1sYXJnZS1Db0EyZDVDNyIsInNpemUteGxhcmdlIjoic2l6ZS14bGFyZ2UtQ29BMmQ1QzciLCJzaXplLXh4bGFyZ2UiOiJzaXplLXh4bGFyZ2UtQ29BMmQ1QzciLCJ0eXBlLXByaW1hcnkiOiJ0eXBlLXByaW1hcnktQ29BMmQ1QzciLCJ0eXBlLXNlY29uZGFyeSI6InR5cGUtc2Vjb25kYXJ5LUNvQTJkNUM3In19LDIyOTU0MShlKXtlLmV4cG9ydHM9e2ludGVyc2VjdGlvblpvbmU6ImludGVyc2VjdGlvblpvbmUtRUlWMl9SZDAiLGludGVyc2VjdGlvbkRldGVjdG9yOiJpbnRlcnNlY3Rpb25EZXRlY3Rvci1FSVYyX1JkMCIsbGVmdDoibGVmdC1FSVYyX1JkMCIscmlnaHQ6InJpZ2h0LUVJVjJfUmQwIn19LDg2ODM5MShlKXtlLmV4cG9ydHM9e2Zsb2F0aW5nQXJyb3c6ImZsb2F0aW5nQXJyb3ctYzFPc0hQdFkiLGJvdHRvbToiYm90dG9tLWMxT3NIUHRZIiwiYm90dG9tLWxlZnQiOiJib3R0b20tbGVmdC1jMU9zSFB0WSIsImJvdHRvbS1yaWdodCI6ImJvdHRvbS1yaWdodC1jMU9zSFB0WSIsdG9wOiJ0b3AtYzFPc0hQdFkiLCJ0b3AtbGVmdCI6InRvcC1sZWZ0LWMxT3NIUHRZIiwidG9wLXJpZ2h0IjoidG9wLXJpZ2h0LWMxT3NIUHRZIixsZWZ0OiJsZWZ0LWMxT3NIUHRZIiwibGVmdC10b3AiOiJsZWZ0LXRvcC1jMU9zSFB0WSIsImxlZnQtYm90dG9tIjoibGVmdC1ib3R0b20tYzFPc0hQdFkiLHJpZ2h0OiJyaWdodC1jMU9zSFB0WSIsInJpZ2h0LXRvcCI6InJpZ2h0LXRvcC1jMU9zSFB0WSIsInJpZ2h0LWJvdHRvbSI6InJpZ2h0LWJvdHRvbS1jMU9zSFB0WSJ9fSwyMzI2NShlKXtlLmV4cG9ydHM9e2VuZFNsb3RXcmFwcGVyOiJlbmRTbG90V3JhcHBlci1IeU5qSFNEVyIsZGl2aWRlcjoiZGl2aWRlci1IeU5qSFNEVyIsZW5kU2xvdENvbnRlbnQ6ImVuZFNsb3RDb250ZW50LUh5TmpIU0RXIix0b29sdGlwQmFzZVdyYXBwZXI6InRvb2x0aXBCYXNlV3JhcHBlci1IeU5qSFNEVyIsdHJhbnNwYXJlbnQ6InRyYW5zcGFyZW50LUh5TmpIU0RXIixvcGFxdWU6Im9wYXF1ZS1IeU5qSFNEVyIsZGlzYWJsZUludGVyYWN0aXZlOiJkaXNhYmxlSW50ZXJhY3RpdmUtSHlOakhTRFciLHRvb2x0aXBCYXNlOiJ0b29sdGlwQmFzZS1IeU5qSFNEVyIsY29udGVudFdyYXBwZXI6ImNvbnRlbnRXcmFwcGVyLUh5TmpIU0RXIixjb250ZW50OiJjb250ZW50LUh5TmpIU0RXIn19LDk2NjQ2NShlKXtlLmV4cG9ydHM9e3Rvb2x0aXBTdGF0ZWxlc3M6InRvb2x0aXBTdGF0ZWxlc3Mta3dzNXFlZFcifX0sNjY0MjA2KGUpe2UuZXhwb3J0cz17Y29udGFpbmVyOiJjb250YWluZXItZTNUX0xXeGEiLHdpdGhPZmZzZXQ6IndpdGhPZmZzZXQtZTNUX0xXeGEiLHdpdGhMZWZ0U2xvdDoid2l0aExlZnRTbG90LWUzVF9MV3hhIix3aXRoUmlnaHRTbG90OiJ3aXRoUmlnaHRTbG90LWUzVF9MV3hhIixpdGVtczoiaXRlbXMtZTNUX0xXeGEiLG9mZnNldFpvbmU6Im9mZnNldFpvbmUtZTNUX0xXeGEiLHNjcm9sbEJ0bldyYXBwZXI6InNjcm9sbEJ0bldyYXBwZXItZTNUX0xXeGEiLHNjcm9sbEJ0bjoic2Nyb2xsQnRuLWUzVF9MV3hhIixpY29uOiJpY29uLWUzVF9MV3hhIn19LDE2MDgwMyhlKXtlLmV4cG9ydHM9e2NhbnZhc1BhbmU6ImNhbnZhc1BhbmUtUmxHbGdDXzkiLG1pbmk6Im1pbmktUmxHbGdDXzkiLGNhbnZhczoiY2FudmFzLVJsR2xnQ185In19LDY0NDE1NChlKXtlLmV4cG9ydHM9e2NvbHVtbjoiY29sdW1uLWZudWFPYTFZIixtaW5pOiJtaW5pLWZudWFPYTFZIixjaXJjbGU6ImNpcmNsZS1mbnVhT2ExWSIsYmFyOiJiYXItZm51YU9hMVkiLG5lZ2F0aXZlOiJuZWdhdGl2ZS1mbnVhT2ExWSIsZW1wdHlTcGFjZToiZW1wdHlTcGFjZS1mbnVhT2ExWSJ9fSw1NjM1NjAoZSl7ZS5leHBvcnRzPXtncmlkOiJncmlkLVh1UTJuekIzIixsaW5lOiJsaW5lLVh1UTJuekIzIixib2xkTGluZToiYm9sZExpbmUtWHVRMm56QjMiLGhpZGRlbkxpbmU6ImhpZGRlbkxpbmUtWHVRMm56QjMifX0sODA0NDEzKGUpe2UuZXhwb3J0cz17bGVnZW5kOiJsZWdlbmQtYnNOb2tXbE4iLGxhYmVsOiJsYWJlbC1ic05va1dsTiIsc3dhdGNoOiJzd2F0Y2gtYnNOb2tXbE4iLGxhYmVsVGV4dDoibGFiZWxUZXh0LWJzTm9rV2xOIn19LDY2NDQ1NyhlKXtlLmV4cG9ydHM9e2hvcml6b250YWxTY2FsZToiaG9yaXpvbnRhbFNjYWxlLXJRc1dsY2pwIixtaW5pOiJtaW5pLXJRc1dsY2pwIixob3Jpem9udGFsU2NhbGVWYWx1ZToiaG9yaXpvbnRhbFNjYWxlVmFsdWUtclFzV2xjanAifX0sODU1NTA2KGUpe2UuZXhwb3J0cz17c2NhbGU6InNjYWxlLV9kUUljTWg1IixzY2FsZVZhbHVlOiJzY2FsZVZhbHVlLV9kUUljTWg1IixtaW5pOiJtaW5pLV9kUUljTWg1Iixib2xkVmFsdWU6ImJvbGRWYWx1ZS1fZFFJY01oNSJ9fSw3NjAzNTUoZSl7ZS5leHBvcnRzPXt2ZXJ0aWNhbFNjYWxlOiJ2ZXJ0aWNhbFNjYWxlLUtXUnZINlFmIix2ZXJ0aWNhbFNjYWxlVmFsdWU6InZlcnRpY2FsU2NhbGVWYWx1ZS1LV1J2SDZRZiIsbWluaToibWluaS1LV1J2SDZRZiIsemVyb1ZhbHVlT25seToiemVyb1ZhbHVlT25seS1LV1J2SDZRZiJ9fSw1MTE5MChlKXtlLmV4cG9ydHM9ewpzdGFja1NldDoic3RhY2tTZXQtbEpDRkZMcGkiLGNvbHVtbjoiY29sdW1uLWxKQ0ZGTHBpIixtaW5pOiJtaW5pLWxKQ0ZGTHBpIixzdGFja1dyYXA6InN0YWNrV3JhcC1sSkNGRkxwaSIscG9zaXRpdmVPbmx5OiJwb3NpdGl2ZU9ubHktbEpDRkZMcGkiLG5lZ2F0aXZlT25seToibmVnYXRpdmVPbmx5LWxKQ0ZGTHBpIn19LDQxNzM3NChlKXtlLmV4cG9ydHM9e3Rvb2x0aXBXcmFwOiJ0b29sdGlwV3JhcC12c1IyMEU4aSIsdG9vbHRpcDoidG9vbHRpcC12c1IyMEU4aSIsdmFsaWRhdGVkOiJ2YWxpZGF0ZWQtdnNSMjBFOGkiLGJvZHk6ImJvZHktdnNSMjBFOGkiLHZhbHVlOiJ2YWx1ZS12c1IyMEU4aSIsbGFiZWw6ImxhYmVsLXZzUjIwRThpIixzd2F0Y2g6InN3YXRjaC12c1IyMEU4aSIsdGl0bGVXaXRoVmFsdWU6InRpdGxlV2l0aFZhbHVlLXZzUjIwRThpIix0aXRsZToidGl0bGUtdnNSMjBFOGkiLGZ1bGxXaWR0aENlbGw6ImZ1bGxXaWR0aENlbGwtdnNSMjBFOGkiLGFycm93OiJhcnJvdy12c1IyMEU4aSIsImFycm93LS1iZWxvdyI6ImFycm93LS1iZWxvdy12c1IyMEU4aSIsImFycm93LS1hYm92ZSI6ImFycm93LS1hYm92ZS12c1IyMEU4aSIsImFycm93LS1iZWZvcmUiOiJhcnJvdy0tYmVmb3JlLXZzUjIwRThpIiwiYXJyb3ctLWFmdGVyIjoiYXJyb3ctLWFmdGVyLXZzUjIwRThpIixyZXZlcnNlZDoicmV2ZXJzZWQtdnNSMjBFOGkiLHVuaXQ6InVuaXQtdnNSMjBFOGkiLGVuZFNsb3Q6ImVuZFNsb3QtdnNSMjBFOGkiLHBsYWluQ29sdW1uOiJwbGFpbkNvbHVtbi12c1IyMEU4aSIscGxhaW5WYWx1ZToicGxhaW5WYWx1ZS12c1IyMEU4aSIscGxhaW5FbmRTbG90OiJwbGFpbkVuZFNsb3QtdnNSMjBFOGkifX0sNjEyNTQ2KGUpe2UuZXhwb3J0cz17d3JhcDoid3JhcC1zSmZkSWlEaiIscGFuZVdyYXA6InBhbmVXcmFwLXNKZmRJaURqIixwYW5lOiJwYW5lLXNKZmRJaURqIixvdmVyZmxvd0hpZGRlbjoib3ZlcmZsb3dIaWRkZW4tc0pmZElpRGoiLGNoYXJ0OiJjaGFydC1zSmZkSWlEaiIsaW52aXNpYmxlOiJpbnZpc2libGUtc0pmZElpRGoiLGhvcml6b250YWxTY2FsZToiaG9yaXpvbnRhbFNjYWxlLXNKZmRJaURqIixleHRlbmRTY2FsZVZhbHVlOiJleHRlbmRTY2FsZVZhbHVlLXNKZmRJaURqIixyaWdodFNjYWxlOiJyaWdodFNjYWxlLXNKZmRJaURqIixsZWZ0U2NhbGU6ImxlZnRTY2FsZS1zSmZkSWlEaiJ9fSwyMjAzMTIoZSl7ZS5leHBvcnRzPXtzd2F0Y2g6InN3YXRjaC1vVDdXOUxwSSJ9fSwzNTkwMihlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtTaGFkZWRMYXllcjooKT0+c30pO3ZhciBvPW4oNzc5NDc0KSxyPW4oMjg0NTgpLGk9big1OTA0ODYpLGE9bigyMzQ2MzYpLGw9big1MDU0Nyk7ZnVuY3Rpb24gcyhlKXtjb25zdHtvZmZzZXRMZWZ0OnQsbGFiZWw6bn09ZSxzPSgwLHIudXNlSW50ZXJzZWN0aW9uT2JzZXJ2ZXIpKChlPT57Y29uc3QgdD1lLnBvcCgpLG49dD8udGFyZ2V0O3QmJihuLnN0eWxlLm9wYWNpdHk9dC5pbnRlcnNlY3Rpb25SYXRpbzwxPyIwIjoiMSIpfSkse3RocmVzaG9sZDpbMSwwXX0pO3JldHVybiB2b2lkIDA9PT10P28uY3JlYXRlRWxlbWVudChvLkZyYWdtZW50LG51bGwpOm8uY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOmwuc2hhZGVkTGF5ZXIsc3R5bGU6e2xlZnQ6dH19LG8uY3JlYXRlRWxlbWVudCgiZGl2Iix7cmVmOnMsY2xhc3NOYW1lOmwubGFiZWxDb250YWluZXJ9LG4mJm8uY3JlYXRlRWxlbWVudChpLkJhZGdlLHtzaXplOmEuQmFkZ2VTaXplLk1lZGl1bSxjbGFzc05hbWU6bC5sYWJlbH0sbikpKX19LDQ1Mzc4MihlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtEaXZpZGVyOigpPT5zfSk7dmFyIG89big3Nzk0NzQpLHI9big5MTQ0ODcpLGk9bi5uKHIpLGE9big2ODc5NTMpLGw9bi5uKGEpO2Z1bmN0aW9uIHMoZSl7Y29uc3R7Y2xhc3NOYW1lOnQsdHlwZTpuPSJzZWNvbmRhcnkiLHNpemU6cj0ic21hbGwiLG9yaWVudGF0aW9uOmE9Imhvcml6b250YWwiLGZpdENvbnRlbnQ6cz0hMX09ZSxjPWkoKSh0LGwoKS5kaXZpZGVyLGwoKVtgc2l6ZS0ke3J9YF0sbCgpW2B0eXBlLSR7bn1gXSxsKClbYG9yaWVudGF0aW9uLSR7YX1gXSxzJiZsKClbImZpdC1jb250ZW50Il0pO3JldHVybiBvLmNyZWF0ZUVsZW1lbnQoImhyIix7Y2xhc3NOYW1lOmMsImFyaWEtb3JpZW50YXRpb24iOmF9KX19LDE3OTU4NShlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHthbmltYXRlOigpPT5yfSk7Y29uc3Qgbz17ZnJvbTowLGR1cmF0aW9uOjI1MCxlYXNpbmc6bigyMTg4MTQpLmVhc2luZ0Z1bmMuZWFzZU91dEN1YmljfTtmdW5jdGlvbiByKGUpe2xldCB0PSEwLG49ITE7Y29uc3R7ZnJvbTpyLHRvOmksZHVyYXRpb246YSxlYXNpbmc6bCxvblN0ZXA6cyxvbkNvbXBsZXRlOmN9PXsuLi5vLC4uLmV9LHU9cGVyZm9ybWFuY2Uubm93KCk7ZnVuY3Rpb24gZCgpe2MmJmMoKSxuPSEwfXJldHVybiB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKChmdW5jdGlvbiBlKG4pe2lmKCF0KXJldHVybiB2b2lkIGQoKTtjb25zdCBvPW4tdSxjPW8+PWF8fHI9PT1pLG09ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBlKigxLW4pK3Qqbn0ocixpLGwoby9hKSkscD1jP2k6bTtzKHAtcixwKSxjP2QoKTp3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKGUpfSkpLHtzdG9wOigpPT57dD0hMX0sY29tcGxldGVkOigpPT5ufX19LDE2NDI0MihlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtJbnRlcnNlY3Rpb25ab25lOigpPT5tfSk7dmFyIG8scj1uKDc3OTQ3NCksaT1uKDkxNDQ4NyksYT1uLm4oaSksbD1uKDI4NDU4KSxzPW4oMjI5NTQxKSxjPW4ubihzKTshZnVuY3Rpb24oZSl7ZVtlLkxlZnQ9LTFdPSJMZWZ0IixlW2UuUmlnaHQ9MV09IlJpZ2h0In0ob3x8KG89e30pKTtjb25zdCB1PTEsZD17Wy0xXTpjKCkubGVmdCwxOmMoKS5yaWdodH07ZnVuY3Rpb24gbShlKXtjb25zdHtpbnRlcnNlY3Rpb25DYjp0LHBvc2l0aW9uOm4sY2xhc3NOYW1lOm8saW50ZXJzZWN0aW9uV2lkdGg6aT11LHJvb3Q6cyxyb290TWFyZ2luOm19PWUscD0oMCwKci51c2VDYWxsYmFjaykoKGU9PnQoZVtlLmxlbmd0aC0xXSkpLFtdKSxoPSgwLGwudXNlSW50ZXJzZWN0aW9uT2JzZXJ2ZXIpKHAse3Jvb3Q6cyxyb290TWFyZ2luOm19KTtyZXR1cm4gci5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6YSgpKGMoKS5pbnRlcnNlY3Rpb25ab25lLG8pfSxyLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtyZWY6aCxjbGFzc05hbWU6YSgpKGMoKS5pbnRlcnNlY3Rpb25EZXRlY3RvcixkW25dKSxzdHlsZTp7d2lkdGg6aX19KSl9fSw2NDA1MTMoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7UExBQ0VNRU5UX0JPVFRPTV9BTElHTl9DRU5URVI6KCk9PmksUExBQ0VNRU5UX0JPVFRPTV9BTElHTl9MRUZUOigpPT5vLFBMQUNFTUVOVF9CT1RUT01fQUxJR05fUklHSFQ6KCk9PnIsUExBQ0VNRU5UX0xFRlRfQUxJR05fQk9UVE9NOigpPT5wLFBMQUNFTUVOVF9MRUZUX0FMSUdOX0NFTlRFUjooKT0+aCxQTEFDRU1FTlRfTEVGVF9BTElHTl9UT1A6KCk9Pm0sUExBQ0VNRU5UX1JJR0hUX0FMSUdOX0JPVFRPTTooKT0+dSxQTEFDRU1FTlRfUklHSFRfQUxJR05fQ0VOVEVSOigpPT5kLFBMQUNFTUVOVF9SSUdIVF9BTElHTl9UT1A6KCk9PmMsUExBQ0VNRU5UX1RPUF9BTElHTl9DRU5URVI6KCk9PnMsUExBQ0VNRU5UX1RPUF9BTElHTl9MRUZUOigpPT5hLFBMQUNFTUVOVF9UT1BfQUxJR05fUklHSFQ6KCk9Pmx9KTtjb25zdCBvPXtuYW1lOiJib3R0b20tbGVmdCIscnRsTmFtZToiYm90dG9tLXJpZ2h0IixhbmNob3JQb2ludDp7eDowLHk6MX0sY29udGVudFBvaW50Ont4OjAseTowfSxvdmVyZmxvd0hvcml6b250YWw6InNsaWRlIixvdmVyZmxvd1ZlcnRpY2FsOiJjcm9wU2xpZGUifSxyPXtuYW1lOiJib3R0b20tcmlnaHQiLHJ0bE5hbWU6ImJvdHRvbS1sZWZ0IixhbmNob3JQb2ludDp7eDoxLHk6MX0sY29udGVudFBvaW50Ont4OjEseTowfSxvdmVyZmxvd0hvcml6b250YWw6InNsaWRlIixvdmVyZmxvd1ZlcnRpY2FsOiJjcm9wU2xpZGUifSxpPXtuYW1lOiJib3R0b20iLGFuY2hvclBvaW50Ont4Oi41LHk6MX0sY29udGVudFBvaW50Ont4Oi41LHk6MH0sb3ZlcmZsb3dIb3Jpem9udGFsOiJzbGlkZSIsb3ZlcmZsb3dWZXJ0aWNhbDoiY3JvcFNsaWRlIn0sYT17bmFtZToidG9wLWxlZnQiLHJ0bE5hbWU6InRvcC1yaWdodCIsYW5jaG9yUG9pbnQ6e3g6MCx5OjB9LGNvbnRlbnRQb2ludDp7eDowLHk6MX0sb3ZlcmZsb3dIb3Jpem9udGFsOiJzbGlkZSIsb3ZlcmZsb3dWZXJ0aWNhbDoiY3JvcFNsaWRlIn0sbD17bmFtZToidG9wLXJpZ2h0IixydGxOYW1lOiJ0b3AtbGVmdCIsYW5jaG9yUG9pbnQ6e3g6MSx5OjB9LGNvbnRlbnRQb2ludDp7eDoxLHk6MX0sb3ZlcmZsb3dIb3Jpem9udGFsOiJzbGlkZSIsb3ZlcmZsb3dWZXJ0aWNhbDoiY3JvcFNsaWRlIn0scz17bmFtZToidG9wIixhbmNob3JQb2ludDp7eDouNSx5OjB9LGNvbnRlbnRQb2ludDp7eDouNSx5OjF9LG92ZXJmbG93SG9yaXpvbnRhbDoic2xpZGUiLG92ZXJmbG93VmVydGljYWw6ImNyb3BTbGlkZSJ9LGM9e25hbWU6InJpZ2h0LXRvcCIscnRsTmFtZToibGVmdC10b3AiLGFuY2hvclBvaW50Ont4OjEseTowfSxjb250ZW50UG9pbnQ6e3g6MCx5OjB9LG92ZXJmbG93SG9yaXpvbnRhbDoiY3JvcFNsaWRlIixvdmVyZmxvd1ZlcnRpY2FsOiJzbGlkZSJ9LHU9e25hbWU6InJpZ2h0LWJvdHRvbSIscnRsTmFtZToibGVmdC1ib3R0b20iLGFuY2hvclBvaW50Ont4OjEseToxfSxjb250ZW50UG9pbnQ6e3g6MCx5OjF9LG92ZXJmbG93SG9yaXpvbnRhbDoiY3JvcFNsaWRlIixvdmVyZmxvd1ZlcnRpY2FsOiJzbGlkZSJ9LGQ9e25hbWU6InJpZ2h0IixydGxOYW1lOiJsZWZ0IixhbmNob3JQb2ludDp7eDoxLHk6LjV9LGNvbnRlbnRQb2ludDp7eDowLHk6LjV9LG92ZXJmbG93SG9yaXpvbnRhbDoiY3JvcFNsaWRlIixvdmVyZmxvd1ZlcnRpY2FsOiJzbGlkZSJ9LG09e25hbWU6ImxlZnQtdG9wIixydGxOYW1lOiJyaWdodC10b3AiLGFuY2hvclBvaW50Ont4OjAseTowfSxjb250ZW50UG9pbnQ6e3g6MSx5OjB9LG92ZXJmbG93SG9yaXpvbnRhbDoiY3JvcFNsaWRlIixvdmVyZmxvd1ZlcnRpY2FsOiJzbGlkZSJ9LHA9e25hbWU6ImxlZnQtYm90dG9tIixydGxOYW1lOiJyaWdodC1ib3R0b20iLGFuY2hvclBvaW50Ont4OjAseToxfSxjb250ZW50UG9pbnQ6e3g6MSx5OjF9LG92ZXJmbG93SG9yaXpvbnRhbDoiY3JvcFNsaWRlIixvdmVyZmxvd1ZlcnRpY2FsOiJzbGlkZSJ9LGg9e25hbWU6ImxlZnQiLHJ0bE5hbWU6InJpZ2h0IixhbmNob3JQb2ludDp7eDowLHk6LjV9LGNvbnRlbnRQb2ludDp7eDoxLHk6LjV9LG92ZXJmbG93SG9yaXpvbnRhbDoiY3JvcFNsaWRlIixvdmVyZmxvd1ZlcnRpY2FsOiJzbGlkZSJ9fSw0NzkyOTcoZSx0LG4peyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBvKGUpe3JldHVybih0LG4pPT4od2luZG93LmFkZEV2ZW50TGlzdGVuZXIoZSx0LG4pLCgpPT57d2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoZSx0LG4pfSl9bi5kKHQse3dpbmRvd0V2ZW50OigpPT5vfSl9LDQ0MDQ0NihlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHt1c2VDbG9zZVJlcG9zaXRpb25PblNjcm9sbE91dHNpZGU6KCk9PmN9KTt2YXIgbz1uKDc3OTQ3NCkscj1uKDcwNjk0MyksaT1uKDQ3OTI5NyksYT1uKDE1OTI1NiksbD1uKDg1NDMzOCk7Y29uc3Qgcz0oMCxpLndpbmRvd0V2ZW50KSgic2Nyb2xsIik7ZnVuY3Rpb24gYyhlLHQsbixpKXtjb25zdCBjPSgwLG8udXNlTWVtbykoKCgpPT4oMCxyLmNyZWF0ZVNpZ25hbCkoKSksW10pLHU9KDAsby51c2VDYWxsYmFjaykoKCgpPT57bighMSwiY3VycmVudExldmVsIil9KSxbbl0pO3JldHVybiBmdW5jdGlvbihlLHQsbil7KDAsYS51c2VDb25kaXRpb25hbEVmZmVjdCkoZSwoKCk9PnMoKGU9Pntjb25zdCBvPW4uY3VycmVudDtpZighbylyZXR1cm47Y29uc3Qgcj1lLnRhcmdldDtyJiYoKDAsbC5pc0VsZW1lbnRDb250YWluc0VsZW1lbnRUaHJvdWdoUG9ydGFscykobyxyKXx8KDAsbC5pc0VsZW1lbnRDb250YWluc0VsZW1lbnRUaHJvdWdoUG9ydGFscykocixvKSYmdCgpKX0pLCEwKSksW3Qsbl0pCn0oZSx0P3U6Yy5maXJlLGkpLGN9fSwxNTkyNTYoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7dXNlQ29uZGl0aW9uYWxFZmZlY3Q6KCk9PnJ9KTt2YXIgbz1uKDc3OTQ3NCk7ZnVuY3Rpb24gcihlLHQsbil7KDAsby51c2VFZmZlY3QpKCgoKT0+e2lmKGUpcmV0dXJuIHQoKX0pLFsuLi5uLGVdKX19LDU4NTQ4KGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse1BvcnRhbDooKT0+YyxQb3J0YWxDb250ZXh0OigpPT51fSk7dmFyIG89big3Nzk0NzQpLHI9bigxMjkzNjUpLGk9big4NTY3NzApLGE9big5MDM0MiksbD1uKDU3MDE5Mykscz1uKDYwNzgzMik7Y2xhc3MgYyBleHRlbmRzIG8uUHVyZUNvbXBvbmVudHtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5fdXVpZD0oMCxpLm5hbm9pZCkoKX1jb21wb25lbnRXaWxsVW5tb3VudCgpe3RoaXMuX21hbmFnZXIoKS5yZW1vdmVXaW5kb3codGhpcy5fdXVpZCl9cmVuZGVyKCl7Y29uc3QgZT10aGlzLl9tYW5hZ2VyKCkuZW5zdXJlV2luZG93KHRoaXMuX3V1aWQsdGhpcy5wcm9wcy5sYXllck9wdGlvbnMpO2Uuc3R5bGUudG9wPXRoaXMucHJvcHMudG9wfHwiIixlLnN0eWxlLmJvdHRvbT10aGlzLnByb3BzLmJvdHRvbXx8IiIsZS5zdHlsZS5sZWZ0PXRoaXMucHJvcHMubGVmdHx8IiIsZS5zdHlsZS5yaWdodD10aGlzLnByb3BzLnJpZ2h0fHwiIixlLnN0eWxlLnBvaW50ZXJFdmVudHM9dGhpcy5wcm9wcy5wb2ludGVyRXZlbnRzfHwiIjtjb25zdCB0PXRoaXMucHJvcHMuY2xhc3NOYW1lO3JldHVybiB0JiYoInN0cmluZyI9PXR5cGVvZiB0P2UuY2xhc3NMaXN0LmFkZCh0KTplLmNsYXNzTGlzdC5hZGQoLi4udCkpLHRoaXMucHJvcHMuc2hvdWxkVHJhcEZvY3VzJiYhZS5oYXNBdHRyaWJ1dGUobC5GT0NVU19UUkFQX0RBVEFfQVRUUklCVVRFKSYmZS5zZXRBdHRyaWJ1dGUobC5GT0NVU19UUkFQX0RBVEFfQVRUUklCVVRFLCJ0cnVlIiksdGhpcy5wcm9wc1siYXJpYS1oaWRkZW4iXSYmZS5zZXRBdHRyaWJ1dGUoImFyaWEtaGlkZGVuIiwidHJ1ZSIpLHIuY3JlYXRlUG9ydGFsKG8uY3JlYXRlRWxlbWVudCh1LlByb3ZpZGVyLHt2YWx1ZTp0aGlzfSx0aGlzLnByb3BzLmNoaWxkcmVuKSxlKX1tb3ZlVG9Ub3AoKXt0aGlzLl9tYW5hZ2VyKCkubW92ZVRvVG9wKHRoaXMuX3V1aWQpfV9tYW5hZ2VyKCl7cmV0dXJuIG51bGw9PT10aGlzLmNvbnRleHQ/KDAsYS5nZXRSb290T3ZlcmxhcE1hbmFnZXIpKCk6dGhpcy5jb250ZXh0fX1jLmNvbnRleHRUeXBlPXMuU2xvdENvbnRleHQ7Y29uc3QgdT1vLmNyZWF0ZUNvbnRleHQobnVsbCl9LDYwNzgzMihlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtTbG90OigpPT5yLFNsb3RDb250ZXh0OigpPT5pfSk7dmFyIG89big3Nzk0NzQpO2NsYXNzIHIgZXh0ZW5kcyBvLkNvbXBvbmVudHtzaG91bGRDb21wb25lbnRVcGRhdGUoKXtyZXR1cm4hMX1yZW5kZXIoKXtyZXR1cm4gby5jcmVhdGVFbGVtZW50KCJkaXYiLHtzdHlsZTp7cG9zaXRpb246ImZpeGVkIix6SW5kZXg6MTUwLGxlZnQ6MCx0b3A6MH0scmVmOnRoaXMucHJvcHMucmVmZXJlbmNlfSl9fWNvbnN0IGk9by5jcmVhdGVDb250ZXh0KG51bGwpfSw4NTcwMzgoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7VG9vbHRpcEJhc2U6KCk9Pmh9KTt2YXIgbz1uKDc3OTQ3NCkscj1uKDkxNDQ4NyksaT1uLm4ociksYT1uKDQ1Mzc4MiksbD1uKDg2ODM5MSkscz1uLm4obCk7Y29uc3QgYz0oe3BsYWNlbWVudDplLC4uLnR9KT0+by5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6aSgpKHMoKS5mbG9hdGluZ0Fycm93LGUmJnMoKVtlXSksLi4udH0pO3ZhciB1PW4oNjM3NTY0KSxkPW4oMjMyNjUpLG09bi5uKGQpO2Z1bmN0aW9uIHAoe2NvbnRlbnQ6ZSxpc1J0bDp0fSl7cmV0dXJuIG8uY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZTppKCkobSgpLmVuZFNsb3RXcmFwcGVyLHQmJm0oKS5lbmRTbG90UnRsKX0sby5jcmVhdGVFbGVtZW50KGEuRGl2aWRlcix7Y2xhc3NOYW1lOm0oKS5kaXZpZGVyLG9yaWVudGF0aW9uOiJ2ZXJ0aWNhbCIsdHlwZToic2Vjb25kYXJ5IixzaXplOiJ4c21hbGwifSksby5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOmkoKShtKCkuZW5kU2xvdENvbnRlbnQsdCYmbSgpLmVuZFNsb3RDb250ZW50UnRsKX0sZSkpfWZ1bmN0aW9uIGgoe2lkOmUsY29udGVudDp0LGVuZFNsb3Q6bixoYXNBcnJvdzpyPSEwLGlzUnRsOmE9ITEscGxhY2VtZW50Omw9dS5Ub29sdGlwUGxhY2VtZW50cy5Ub3AsZGlzYWJsZUludGVyYWN0aXZlOnM9ITEsdHJhbnNwYXJlbnQ6ZCwuLi5ofSl7cmV0dXJuIG8uY3JlYXRlRWxlbWVudCgiZGl2Iix7aWQ6ZSxyb2xlOiJ0b29sdGlwIixjbGFzc05hbWU6aSgpKG0oKS50b29sdGlwQmFzZVdyYXBwZXIscyYmbSgpLmRpc2FibGVJbnRlcmFjdGl2ZSxkP20oKS50cmFuc3BhcmVudDptKCkub3BhcXVlKX0sciYmby5jcmVhdGVFbGVtZW50KGMsey4uLmgscGxhY2VtZW50Omx9KSxvLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTptKCkudG9vbHRpcEJhc2V9LG8uY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOmkoKShtKCkuY29udGVudFdyYXBwZXIsYSYmbSgpLmNvbnRlbnRSdGwpfSxvLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTptKCkuY29udGVudH0sdCksbiYmby5jcmVhdGVFbGVtZW50KHAse2NvbnRlbnQ6bixpc1J0bDphfSkpKSl9fSwxNTMxNTQoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7VG9vbHRpcFN0YXRlbGVzczooKT0+eX0pO3ZhciBvPW4oNzc5NDc0KSxyPW4oNjQwNTEzKSxpPW4oNTYyOTgpLGE9big0NDA0NDYpLGw9bigzMDYyODcpLHM9bigyODYzMTApLGM9big4OTU5MjEpLHU9big3ODc4OTUpLGQ9big4NTcwMzgpLG09big2Mzc1NjQpLHA9big5NjY0NjUpLGg9bi5uKHApO2Z1bmN0aW9uIGYoZSl7cmV0dXJuW3suLi5lLG92ZXJmbG93SG9yaXpvbnRhbDp7a2luZDoic2xpZGVPdmVyZmxvdyIsYW5jaG9yU2FmZVNwYWNlOjgscG9zaXRpb25lclNhZmVTcGFjZToxNH0sb3ZlcmZsb3dWZXJ0aWNhbDoia2VlcE5vbkZpdHRpbmcifV19CmZ1bmN0aW9uIGcoZSl7cmV0dXJuW3suLi5lLG92ZXJmbG93SG9yaXpvbnRhbDoia2VlcE5vbkZpdHRpbmciLG92ZXJmbG93VmVydGljYWw6e2tpbmQ6InNsaWRlT3ZlcmZsb3ciLGFuY2hvclNhZmVTcGFjZTo4LHBvc2l0aW9uZXJTYWZlU3BhY2U6MTJ9fV19Y29uc3Qgdj17ImJvdHRvbS1sZWZ0IjpmKHIuUExBQ0VNRU5UX0JPVFRPTV9BTElHTl9MRUZUKSxib3R0b206ZihyLlBMQUNFTUVOVF9CT1RUT01fQUxJR05fQ0VOVEVSKSwiYm90dG9tLXJpZ2h0IjpmKHIuUExBQ0VNRU5UX0JPVFRPTV9BTElHTl9SSUdIVCksInRvcC1sZWZ0IjpmKHIuUExBQ0VNRU5UX1RPUF9BTElHTl9MRUZUKSx0b3A6ZihyLlBMQUNFTUVOVF9UT1BfQUxJR05fQ0VOVEVSKSwidG9wLXJpZ2h0IjpmKHIuUExBQ0VNRU5UX1RPUF9BTElHTl9SSUdIVCksInJpZ2h0LXRvcCI6ZyhyLlBMQUNFTUVOVF9SSUdIVF9BTElHTl9UT1ApLHJpZ2h0Omcoci5QTEFDRU1FTlRfUklHSFRfQUxJR05fQ0VOVEVSKSwicmlnaHQtYm90dG9tIjpnKHIuUExBQ0VNRU5UX1JJR0hUX0FMSUdOX0JPVFRPTSksImxlZnQtdG9wIjpnKHIuUExBQ0VNRU5UX0xFRlRfQUxJR05fVE9QKSxsZWZ0Omcoci5QTEFDRU1FTlRfTEVGVF9BTElHTl9DRU5URVIpLCJsZWZ0LWJvdHRvbSI6ZyhyLlBMQUNFTUVOVF9MRUZUX0FMSUdOX0JPVFRPTSl9LHk9KDAsaS5pZ25vcmVPblNTUikoKGZ1bmN0aW9uKGUpe2NvbnN0e2FuY2hvcjp0LG9wZW46bixpZDpyLGNvbnRlbnQ6aSxlbmRTbG90Om0saGFzQXJyb3c6cD0hMCxpc1J0bDpmPSExLG9uQ2xvc2U6ZyxwbGFjZW1lbnQ6eT1FLG9mZnNldDpDPTAsY2xvc2VPblNjcm9sbE91dHNpZGU6eD0hMSxkaXNhYmxlSW50ZXJhY3RpdmU6VCxkYXRhUWFJZDpiLGdldFJvb3RSZWN0OlMsZm9yY2VEaXNhYmxlVHJhbnNwYXJlbmN5Ok59PWUsW18sd109KDAsby51c2VTdGF0ZSkoIU4pLEk9cD80OkMsTD0oMCx1LnVzZUZ1bmN0aW9uYWxSZWZPYmplY3QpKCgwLG8udXNlUmVmKShudWxsKSksUj0oMCxvLnVzZU1lbW8pKCgoKT0+KChlLHQpPT4oQXJyYXkuaXNBcnJheShlKT9lOltlXSkuZmxhdE1hcCgoZT0+KChlLHQpPT5lLm1hcCgoZT0+e2NvbnN0IG49e3RvcDp7eDowLHk6LXR9LHJpZ2h0Ont4OnQseTowfSxib3R0b206e3g6MCx5OnR9LGxlZnQ6e3g6LXQseTowfX07cmV0dXJuIGUubmFtZT8uc3BsaXQoIi0iKVswXT97Li4uZSxvZmZzZXQ6bltlLm5hbWUuc3BsaXQoIi0iKVswXV19OmV9KSkpKHZbZV0sdCkpKSkoeSxJKSksW0kseV0pLFtQLEFdPW8udXNlU3RhdGUodm9pZCAwKSxNPSgwLG8udXNlQ2FsbGJhY2spKChlPT57UD8ubmFtZSE9PWU/Lm5hbWUmJm4mJihBKGUpLHcoITEpKX0pLFtuLFA/Lm5hbWVdKTsoMCxvLnVzZUVmZmVjdCkoKCgpPT57bnx8KEEodm9pZCAwKSx3KCEwKSl9KSxbbl0pO2NvbnN0IE89KDAsbC51c2VXaW5kb3dSZXNpemVUcmlnZ2VyKShuKSxXPSgwLGEudXNlQ2xvc2VSZXBvc2l0aW9uT25TY3JvbGxPdXRzaWRlKShuLHgsZyx0KSxIPSgwLG8udXNlTWVtbykoKCgpPT5bTyxXXSksW1csT10pLEY9KDAsYy51c2VSZWZSZWN0KSh0LG4sSCk7aWYoIUYpcmV0dXJuIG51bGw7cmV0dXJuIG8uY3JlYXRlRWxlbWVudChzLlJlY3RhbmdsZVBvc2l0aW9uZXIse3BsYWNlbWVudFJ1bGVzOlIsaXNPcGVuOm4sd2lkdGg6W10saGVpZ2h0OltdLGFuY2hvcmVkQXQ6Rixpc1J0bDpmLHJlZk9iamVjdFRvQ29udGVudFdyYXBwZXJFbGVtZW50Okwsb25QbGFjZW1lbnRSdWxlU2VsZWN0ZWQ6TSxkYXRhUWFJZDpiLGdldFJvb3RSZWN0OlMsYW5jaG9yUG9zaXRpb25lckNhcmRBcHBlYXJhbmNlQ2xhc3NuYW1lOmgoKS50b29sdGlwU3RhdGVsZXNzfSxvLmNyZWF0ZUVsZW1lbnQoZC5Ub29sdGlwQmFzZSx7aWQ6cixjb250ZW50OmksZW5kU2xvdDptLGhhc0Fycm93OnAsaXNSdGw6ZixwbGFjZW1lbnQ6UD8ubmFtZSxkaXNhYmxlSW50ZXJhY3RpdmU6VCx0cmFuc3BhcmVudDpffSkpfSkpLEU9W20uVG9vbHRpcFBsYWNlbWVudHMuVG9wLG0uVG9vbHRpcFBsYWNlbWVudHMuQm90dG9tLG0uVG9vbHRpcFBsYWNlbWVudHMuTGVmdCxtLlRvb2x0aXBQbGFjZW1lbnRzLlJpZ2h0XX0sOTA2MTM0KGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse1Rvb2x0aXA6KCk9PmMsVHJpZ2dlcjooKT0+b30pO3ZhciBvLHI9big3Nzk0NzQpLGk9bigxNTM3MjgpLGE9big5NjQ1OTQpLGw9big1MjUyNCkscz1uKDE1MzE1NCk7ZnVuY3Rpb24gYyh7Y2hpbGRyZW46ZSxpZDp0LHRyaWdnZXI6bj1vLkhvdmVyLGRlbGF5OmM9WzUwMCwwXSxjb250ZW50OnUsaXNSdGw6ZD0hMSxlbmRTbG90Om0scGxhY2VtZW50OnAsaGFzQXJyb3c6aD0hMCxjbG9zZU9uU2Nyb2xsT3V0c2lkZTpmLG9mZnNldDpnLGRpc2FibGVJbnRlcmFjdGl2ZTp2fSl7Y29uc3QgeT0oMCxyLnVzZUlkKSgpLEU9QXJyYXkuaXNBcnJheShuKT9uOltuXSxbQyx4XT1BcnJheS5pc0FycmF5KGMpP2M6W2MsY10se3Zpc2libGU6VCxvcGVuOmIsY2xvc2U6Uyx0b2dnbGU6Tn09KDAsaS51c2VUb29sdGlwU3RhdGUpKHtvcGVuRGVsYXk6QyxjbG9zZURlbGF5Onh9KSxfPSgwLHIudXNlUmVmKShudWxsKSx3PXIuQ2hpbGRyZW4ub25seShlKSxJPUUucmVkdWNlKCgoZSx0KT0+e3N3aXRjaCh0KXtjYXNlIG8uQ2xpY2s6ZS5vbkNsaWNrPSgwLGwuZm9ya0ZuKSh3LnByb3BzLm9uQ2xpY2ssTik7YnJlYWs7Y2FzZSBvLkZvY3VzOmUub25Gb2N1cz0oMCxsLmZvcmtGbikody5wcm9wcy5vbkZvY3VzLChlPT57ZS5jdXJyZW50VGFyZ2V0Lm1hdGNoZXMoIjpmb2N1cy12aXNpYmxlIikmJmIoKX0pKSxlLm9uQmx1cj0oMCxsLmZvcmtGbikody5wcm9wcy5vbkJsdXIsKGU9PntlLmN1cnJlbnRUYXJnZXQubWF0Y2hlcygiOmhvdmVyIil8fFMoKX0pKTticmVhaztjYXNlIG8uSG92ZXI6ZS5vbk1vdXNlRW50ZXI9KDAsbC5mb3JrRm4pKHcucHJvcHMub25Nb3VzZUVudGVyLGIpLGUub25Nb3VzZUxlYXZlPSgwLGwuZm9ya0ZuKSh3LnByb3BzLm9uTW91c2VMZWF2ZSwoZT0+ewpfLmN1cnJlbnQ/LmNvbnRhaW5zKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQpJiZlLmN1cnJlbnRUYXJnZXQubWF0Y2hlcygiOmZvY3VzLXZpc2libGUiKXx8UygpfSkpfXJldHVybiBlfSkse30pLEw9InN0cmluZyI9PXR5cGVvZiB3LnR5cGU/InJlZiI6InJlZmVyZW5jZSIsUj0icmVmImluIHcmJm51bGwhPXcucmVmP3cucmVmOncucHJvcHNbTF0sUD0oMCxhLm1lcmdlUmVmcykoW1IsX10pO3JldHVybiByLmNyZWF0ZUVsZW1lbnQoci5GcmFnbWVudCxudWxsLCgwLHIuY2xvbmVFbGVtZW50KSh3LHsuLi5JLFtMXTpQLCJhcmlhLWRlc2NyaWJlZGJ5Ijp0fSksci5jcmVhdGVFbGVtZW50KHMuVG9vbHRpcFN0YXRlbGVzcyx7aWQ6dHx8eSxwbGFjZW1lbnQ6cCxjb250ZW50OnUsZW5kU2xvdDptLG9wZW46VCYmISF1LGFuY2hvcjpfLG9uQ2xvc2U6Uyxpc1J0bDpkLGhhc0Fycm93OmgsY2xvc2VPblNjcm9sbE91dHNpZGU6ZixvZmZzZXQ6ZyxkaXNhYmxlSW50ZXJhY3RpdmU6dn0pKX0hZnVuY3Rpb24oZSl7ZS5Ib3Zlcj0iaG92ZXIiLGUuQ2xpY2s9ImNsaWNrIixlLkZvY3VzPSJmb2N1cyJ9KG98fChvPXt9KSl9LDYzNzU2NChlLHQsbil7InVzZSBzdHJpY3QiO3ZhciBvO24uZCh0LHtUb29sdGlwUGxhY2VtZW50czooKT0+b30pLGZ1bmN0aW9uKGUpe2UuVG9wTGVmdD0idG9wLWxlZnQiLGUuVG9wPSJ0b3AiLGUuVG9wUmlnaHQ9InRvcC1yaWdodCIsZS5Cb3R0b21MZWZ0PSJib3R0b20tbGVmdCIsZS5Cb3R0b209ImJvdHRvbSIsZS5Cb3R0b21SaWdodD0iYm90dG9tLXJpZ2h0IixlLlJpZ2h0VG9wPSJyaWdodC10b3AiLGUuUmlnaHQ9InJpZ2h0IixlLlJpZ2h0Qm90dG9tPSJyaWdodC1ib3R0b20iLGUuTGVmdFRvcD0ibGVmdC10b3AiLGUuTGVmdD0ibGVmdCIsZS5MZWZ0Qm90dG9tPSJsZWZ0LWJvdHRvbSJ9KG98fChvPXt9KSl9LDE1MzcyOChlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHt1c2VUb29sdGlwU3RhdGU6KCk9Pml9KTt2YXIgbz1uKDc3OTQ3NCk7ZnVuY3Rpb24gcihlKXt2b2lkIDAhPT1lLmN1cnJlbnQmJihjbGVhclRpbWVvdXQoZS5jdXJyZW50KSxlLmN1cnJlbnQ9dm9pZCAwKX1mdW5jdGlvbiBpKGUpe2NvbnN0e29wZW5EZWxheTp0PTAsY2xvc2VEZWxheTpuPTB9PWUsW2ksYV09KDAsby51c2VTdGF0ZSkoITEpLGw9KDAsby51c2VSZWYpKCkscz0oMCxvLnVzZUNhbGxiYWNrKSgoZT0+e3IobCk7Y29uc3Qgbz1lP3Q6bjtvPjA/bC5jdXJyZW50PXdpbmRvdy5zZXRUaW1lb3V0KCgoKT0+e2EoZSksbC5jdXJyZW50PXZvaWQgMH0pLG8pOmEoZSl9KSxbdCxuXSksYz0oMCxvLnVzZUNhbGxiYWNrKSgoKCk9PnMoITApKSxbc10pLHU9KDAsby51c2VDYWxsYmFjaykoKCgpPT5zKCExKSksW3NdKSxkPSgwLG8udXNlQ2FsbGJhY2spKCgoKT0+cyghaSkpLFtpLHNdKSxtPSgwLG8udXNlQ2FsbGJhY2spKCgoKT0+e3IobCksYSghMSl9KSxbXSk7cmV0dXJuKDAsby51c2VFZmZlY3QpKCgoKT0+KCk9PntyKGwpfSksW10pLHt2aXNpYmxlOmksb3BlbjpjLGNsb3NlOnUsdG9nZ2xlOmQsY2xvc2VJbnN0YW50bHk6bX19fSw1NjI5OChlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtpZ25vcmVPblNTUjooKT0+aX0pO3ZhciBvPW4oNzc5NDc0KSxyPW4oNTI5NDExKTtmdW5jdGlvbiBpKGUpe3JldHVybiB0PT4oMCxyLnVzZUlzTm9uRmlyc3RSZW5kZXIpKCk/by5jcmVhdGVFbGVtZW50KGUsey4uLnR9KTpudWxsfX0sOTAzNDIoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7T3ZlcmxhcE1hbmFnZXI6KCk9PmEsZ2V0Um9vdE92ZXJsYXBNYW5hZ2VyOigpPT5zfSk7dmFyIG89bigxMzg2MzgpLHI9big1NzAxOTMpO2NsYXNzIGl7Y29uc3RydWN0b3IoKXt0aGlzLl9zdG9yYWdlPVtdfWFkZChlKXt0aGlzLl9zdG9yYWdlLnB1c2goZSl9cmVtb3ZlKGUpe3RoaXMuX3N0b3JhZ2U9dGhpcy5fc3RvcmFnZS5maWx0ZXIoKHQ9PmUhPT10KSl9aGFzKGUpe3JldHVybiB0aGlzLl9zdG9yYWdlLmluY2x1ZGVzKGUpfWdldEl0ZW1zKCl7cmV0dXJuIHRoaXMuX3N0b3JhZ2V9fWNsYXNzIGF7Y29uc3RydWN0b3IoZT1kb2N1bWVudCl7dGhpcy5fc3RvcmFnZT1uZXcgaSx0aGlzLl93aW5kb3dzPW5ldyBNYXAsdGhpcy5faW5kZXg9MCx0aGlzLl9kb2N1bWVudD1lLHRoaXMuX2NvbnRhaW5lcj1lLmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKX1zZXRDb250YWluZXIoZSl7Y29uc3QgdD10aGlzLl9jb250YWluZXIsbj1udWxsPT09ZT90aGlzLl9kb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCk6ZTshZnVuY3Rpb24oZSx0KXtBcnJheS5mcm9tKGUuY2hpbGROb2RlcykuZm9yRWFjaCgoZT0+e2Uubm9kZVR5cGU9PT1Ob2RlLkVMRU1FTlRfTk9ERSYmdC5hcHBlbmRDaGlsZChlKX0pKX0odCxuKSx0aGlzLl9jb250YWluZXI9bn1yZWdpc3RlcldpbmRvdyhlKXt0aGlzLl9zdG9yYWdlLmhhcyhlKXx8dGhpcy5fc3RvcmFnZS5hZGQoZSl9ZW5zdXJlV2luZG93KGUsdD17cG9zaXRpb246ImZpeGVkIixkaXJlY3Rpb246Im5vcm1hbCJ9KXtjb25zdCBuPXRoaXMuX3dpbmRvd3MuZ2V0KGUpO2lmKHZvaWQgMCE9PW4pcmV0dXJuIG47dGhpcy5yZWdpc3RlcldpbmRvdyhlKTtjb25zdCBvPXRoaXMuX2RvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2lmKG8uc3R5bGUucG9zaXRpb249dC5wb3NpdGlvbixvLnN0eWxlLnpJbmRleD10aGlzLl9pbmRleC50b1N0cmluZygpLG8uZGF0YXNldC5pZD1lLHZvaWQgMCE9PXQuaW5kZXgpe2NvbnN0IGU9dGhpcy5fY29udGFpbmVyLmNoaWxkTm9kZXMubGVuZ3RoO2lmKHQuaW5kZXg+PWUpdGhpcy5fY29udGFpbmVyLmFwcGVuZENoaWxkKG8pO2Vsc2UgaWYodC5pbmRleDw9MCl0aGlzLl9jb250YWluZXIuaW5zZXJ0QmVmb3JlKG8sdGhpcy5fY29udGFpbmVyLmZpcnN0Q2hpbGQpO2Vsc2V7Y29uc3QgZT10aGlzLl9jb250YWluZXIuY2hpbGROb2Rlc1t0LmluZGV4XTt0aGlzLl9jb250YWluZXIuaW5zZXJ0QmVmb3JlKG8sZSl9Cn1lbHNlInJldmVyc2UiPT09dC5kaXJlY3Rpb24/dGhpcy5fY29udGFpbmVyLmluc2VydEJlZm9yZShvLHRoaXMuX2NvbnRhaW5lci5maXJzdENoaWxkKTp0aGlzLl9jb250YWluZXIuYXBwZW5kQ2hpbGQobyk7cmV0dXJuIHRoaXMuX3dpbmRvd3Muc2V0KGUsbyksKyt0aGlzLl9pbmRleCxvfXVucmVnaXN0ZXJXaW5kb3coZSl7dGhpcy5fc3RvcmFnZS5yZW1vdmUoZSk7Y29uc3QgdD10aGlzLl93aW5kb3dzLmdldChlKTt2b2lkIDAhPT10JiYobnVsbCE9PXQucGFyZW50RWxlbWVudCYmdC5wYXJlbnRFbGVtZW50LnJlbW92ZUNoaWxkKHQpLHRoaXMuX3dpbmRvd3MuZGVsZXRlKGUpKX1nZXRaaW5kZXgoZSl7Y29uc3QgdD10aGlzLmVuc3VyZVdpbmRvdyhlKTtyZXR1cm4gcGFyc2VJbnQodC5zdHlsZS56SW5kZXh8fCIwIil9bW92ZUxhc3RXaW5kb3dUb1RvcCgpe2NvbnN0IGU9dGhpcy5fc3RvcmFnZS5nZXRJdGVtcygpLHQ9ZVtlLmxlbmd0aC0xXTt0JiZ0aGlzLm1vdmVUb1RvcCh0KX1tb3ZlVG9Ub3AoZSl7aWYodGhpcy5nZXRaaW5kZXgoZSkhPT10aGlzLl9pbmRleCl7Y29uc3QgdD10aGlzLmVuc3VyZVdpbmRvdyhlKTt0aGlzLl93aW5kb3dzLmZvckVhY2goKChlLG4pPT57ZS5oYXNBdHRyaWJ1dGUoci5GT0NVU19UUkFQX0RBVEFfQVRUUklCVVRFKSYmZS5zZXRBdHRyaWJ1dGUoci5GT0NVU19UUkFQX0RBVEFfQVRUUklCVVRFLGU9PT10PyJ0cnVlIjoiZmFsc2UiKX0pKSx0LnN0eWxlLnpJbmRleD0oKyt0aGlzLl9pbmRleCkudG9TdHJpbmcoKX19cmVtb3ZlV2luZG93KGUpe3RoaXMudW5yZWdpc3RlcldpbmRvdyhlKX19Y29uc3QgbD1uZXcgV2Vha01hcDtmdW5jdGlvbiBzKGU9ZG9jdW1lbnQpe2NvbnN0IHQ9ZS5nZXRFbGVtZW50QnlJZCgib3ZlcmxhcC1tYW5hZ2VyLXJvb3QiKTtpZihudWxsIT09dClyZXR1cm4oMCxvLmVuc3VyZURlZmluZWQpKGwuZ2V0KHQpKTt7Y29uc3QgdD1uZXcgYShlKSxuPWZ1bmN0aW9uKGUpe2NvbnN0IHQ9ZS5jcmVhdGVFbGVtZW50KCJkaXYiKTtyZXR1cm4gdC5zdHlsZS5wb3NpdGlvbj0iYWJzb2x1dGUiLHQuc3R5bGUuekluZGV4PTE1MC4udG9TdHJpbmcoKSx0LnN0eWxlLnRvcD0iMHB4Iix0LnN0eWxlLmxlZnQ9IjBweCIsdC5pZD0ib3ZlcmxhcC1tYW5hZ2VyLXJvb3QiLHQuZGF0YXNldC5xYUlkPSJvdmVybGFwLW1hbmFnZXItcm9vdCIsdH0oZSk7cmV0dXJuIGwuc2V0KG4sdCksdC5zZXRDb250YWluZXIobiksZS5ib2R5LmFwcGVuZENoaWxkKG4pLHR9fXZhciBjOyFmdW5jdGlvbihlKXtlW2UuQmFzZVppbmRleD0xNTBdPSJCYXNlWmluZGV4In0oY3x8KGM9e30pKX0sNTY1NzQ1KGUsdCxuKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbyhlKXtyZXR1cm4gbnVsbCE9ZX1uLmQodCx7aXNFeGlzdGVudDooKT0+b30pfSwxMDcwNzAoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7SG9yaXpvbnRhbFNjYWxlOigpPT5jfSk7dmFyIG89big3Nzk0NzQpLHI9big5MTQ0ODcpLGk9bi5uKHIpLGE9big4NTIxNTkpLGw9big3MjQ2NSkscz1uKDY2NDQ1Nyk7ZnVuY3Rpb24gYyhlKXtjb25zdHt2YWx1ZXM6dCxjbGFzc05hbWU6bixib3R0b21TY2FsZUNsYXNzbmFtZTpyfT1lLHttaW5pOmN9PSgwLG8udXNlQ29udGV4dCkobC5EZXRhaWxzQ2hhcnRDb250ZXh0KTtyZXR1cm4gby5jcmVhdGVFbGVtZW50KGEuU2NhbGUse2NsYXNzTmFtZTppKCkocy5ob3Jpem9udGFsU2NhbGUsbixjJiZzLm1pbmkpLHNjYWxlVmFsdWVDbGFzc05hbWU6aSgpKHMuaG9yaXpvbnRhbFNjYWxlVmFsdWUsciksdmFsdWVzOnR9KX19LDg1MjE1OShlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtTY2FsZTooKT0+c30pO3ZhciBvPW4oNzc5NDc0KSxyPW4oOTE0NDg3KSxpPW4ubihyKSxhPW4oNzI0NjUpLGw9big4NTU1MDYpO2Z1bmN0aW9uIHMoZSl7Y29uc3R7Y2xhc3NOYW1lOnQsc2NhbGVWYWx1ZUNsYXNzTmFtZTpuLHZhbHVlczpyLGhpZ2hsaWdodEluZGV4U2V0OnMsaGlnaGxpZ2h0VHlwZTpjPSJib3RoIixzdHlsZTp1fT1lLHttaW5pOmR9PSgwLG8udXNlQ29udGV4dCkoYS5EZXRhaWxzQ2hhcnRDb250ZXh0KTtyZXR1cm4gby5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6aSgpKGwuc2NhbGUsdCksc3R5bGU6dX0sci5tYXAoKChlLHQpPT5vLmNyZWF0ZUVsZW1lbnQoImRpdiIse2tleTp0LGNsYXNzTmFtZTppKCkobC5zY2FsZVZhbHVlLG4sZCYmbC5taW5pLHM/Lmhhcyh0KSYmImJvdGgiPT09YyYmbC5ib2xkVmFsdWUpfSxlKSkpKX19LDM2MDY0KGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse3VzZVNjYWxlVmFsdWVzOigpPT5pfSk7dmFyIG89big3Nzk0NzQpLHI9big5NjAwMDYpO2Z1bmN0aW9uIGkoZSl7Y29uc3R7c2NhbGVWYWx1ZXM6dCx2YWx1ZVR5cGU6bixib3VuZGluZ0dyb3VwOmksY3VzdG9tRm9ybWF0OmF9PWU7cmV0dXJuKDAsby51c2VNZW1vKSgoKCk9PntpZighdClyZXR1cm4gbnVsbDtjb25zdCBlPU1hdGgubWF4KC4uLnQubWFwKChlPT5NYXRoLmFicyhlKSkpKSxvPSgwLHIuZ2V0TWV0cmljUHJlZml4KShlKSxpPU1hdGgubWF4LmFwcGx5KG51bGwsdC5tYXAoKGU9Pk51bWJlci5pc0Zpbml0ZShlKT8oMCxyLmdldEZyYWN0aW9uYWxEaWdpdHNOdW1iZXIpKChlL28ubXVsdGlwbGllcikudG9GaXhlZCgyKSk6MCkpKTtyZXR1cm4gdC5ldmVyeSgoZT0+TnVtYmVyLmlzRmluaXRlKGUpKSk/dC5tYXAoKGU9PihhfHxyLmZvcm1hdCkoZSxuLGkpKSk6bnVsbH0pLFtuLHQsaSxhXSl9fSw2MDUyMDQoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7VmVydGljYWxTY2FsZTooKT0+dX0pO3ZhciBvPW4oNzc5NDc0KSxyPW4oOTE0NDg3KSxpPW4ubihyKSxhPW4oNzI0NjUpLGw9bigzNjA2NCkscz1uKDg1MjE1OSksYz1uKDc2MDM1NSk7ZnVuY3Rpb24gdShlKXtjb25zdHtwYXJhbXM6e3ZhbHVlVHlwZTp0LHNjYWxlVmFsdWVzOm4saGlnaGxpZ2h0SW5kZXhTZXQ6cn0sb3B0aW9uczp7dmlzaWJsZTp1LGJvdW5kaW5nR3JvdXA6ZCxpdGVtQ2xhc3NOYW1lOm0sY3VzdG9tRm9ybWF0OnAsaGlnaGxpZ2h0VHlwZTpofSxjbGFzc05hbWU6Zn09ZSx7bWluaTpnfT0oMCwKby51c2VDb250ZXh0KShhLkRldGFpbHNDaGFydENvbnRleHQpLHY9KDAsbC51c2VTY2FsZVZhbHVlcykoe3NjYWxlVmFsdWVzOm4sdmFsdWVUeXBlOnQsYm91bmRpbmdHcm91cDpkLGN1c3RvbUZvcm1hdDpwfSk7aWYoIXV8fG51bGw9PT12KXJldHVybiBvLmNyZWF0ZUVsZW1lbnQoby5GcmFnbWVudCxudWxsKTtjb25zdCB5PW4mJjE9PT1uLmxlbmd0aCYmMD09PW5bMF07cmV0dXJuIG8uY3JlYXRlRWxlbWVudChzLlNjYWxlLHtjbGFzc05hbWU6aSgpKGMudmVydGljYWxTY2FsZSxmKSxzdHlsZTp7Ii0taG9yaXpvbnRhbC1saW5lcy1jb3VudCI6di5sZW5ndGgtMX0sc2NhbGVWYWx1ZUNsYXNzTmFtZTppKCkobSxjLnZlcnRpY2FsU2NhbGVWYWx1ZSxnJiZjLm1pbmkseSYmYy56ZXJvVmFsdWVPbmx5KSx2YWx1ZXM6dixoaWdobGlnaHRJbmRleFNldDpyLGhpZ2hsaWdodFR5cGU6aH0pfX0sMTkwMDg1KGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse0RFRkFVTFRfSE9SSVpPTlRBTF9MSU5FU19DT1VOVDooKT0+b30pO2NvbnN0IG89NX0sNzI0NjUoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7RGV0YWlsc0NoYXJ0Q29udGV4dDooKT0+aX0pO3ZhciBvPW4oNzc5NDc0KTtjb25zdCByPXttaW5pOiExLHRvcEJvcmRlclZpc2libGU6ITAsZ2xvYmFsQm91bmRpbmdHcm91cE1hcDpuZXcgTWFwLGhvdmVyQ29sdW1uSWQ6bnVsbCxzZXRIb3ZlckNvbHVtbklkOigpPT57fX0saT1vLmNyZWF0ZUNvbnRleHQocil9LDM3NDAxNyhlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtEZXRhaWxzQ2hhcnQ6KCk9PlF9KTt2YXIgbz1uKDc3OTQ3NCkscj1uKDkxNDQ4NyksaT1uLm4ociksYT1uKDI4NDU4KSxsPW4oMzU5MDIpLHM9big5NjkxNjgpLGM9big2MDUyMDQpLHU9bigxMDcwNzApLGQ9bigxMzg2MzgpLG09big3MjQ2NSkscD1uKDIwMDU1NiksaD1uKDg0NzUyOSksZj1uKDkwNjEzNCksZz1uKDkyNDk3NSksdj1uKDY0NDE1NCk7ZnVuY3Rpb24geShlKXtjb25zdHtpbmRleDp0LHZhbHVlczpuLHRvb2x0aXBWYWx1ZXM6cixUb29sdGlwQ29udGVudENvbXBvbmVudDphPWcuVG9vbHRpcENvbnRlbnR9PWUse21pbmk6bCxzZXRIb3ZlckNvbHVtbklkOmN9PSgwLG8udXNlQ29udGV4dCkobS5EZXRhaWxzQ2hhcnRDb250ZXh0KTtyZXR1cm4gby5jcmVhdGVFbGVtZW50KGYuVG9vbHRpcCx7Y29udGVudDpvLmNyZWF0ZUVsZW1lbnQoYSx7dG9vbHRpcFZhbHVlczpyfSksaXNSdGw6KDAscy5pc1J0bCkoKSxkZWxheTowLHRyaWdnZXI6Qm9vbGVhbihyPy5sZW5ndGgpP2YuVHJpZ2dlci5Ib3ZlcjpbXSxjbG9zZU9uU2Nyb2xsT3V0c2lkZTohMH0sby5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6aSgpKHYuY29sdW1uLGwmJnYubWluaSksb25Nb3VzZUVudGVyOmZ1bmN0aW9uKCl7Yyh0KX0sb25Nb3VzZUxlYXZlOmZ1bmN0aW9uKCl7YyhudWxsKX19LG4ubWFwKCgoZSx0KT0+by5jcmVhdGVFbGVtZW50KEUse2tleTp0LHZhbHVlOmUsZ3JvdW5kOmUuZ3JvdW5kfSkpKSkpfWZ1bmN0aW9uIEUoZSl7Y29uc3R7dmFsdWU6e3R5cGU6dCx2YWx1ZTpuLGNvbG9yOnIsY2xhc3NOYW1lOmF9LGdyb3VuZDpsPTB9PWUse21pbmk6c309KDAsby51c2VDb250ZXh0KShtLkRldGFpbHNDaGFydENvbnRleHQpO2lmKCJiYXIiPT09dCl7Y29uc3QgZT1udWxsPT09bj8wOkFycmF5LmlzQXJyYXkobik/MTAwKk1hdGguYWJzKG5bMF0tblsxXSk6MTAwKk1hdGguYWJzKG4tbCksdD1udWxsIT09biYmKEFycmF5LmlzQXJyYXkobik/blsxXS1uWzBdPDA6bjxsfHwxPT09bCYmbj09PWwpO2xldCBjO2lmKG51bGw9PT1uKWM9e2hlaWdodDowLGJvdHRvbTowfTtlbHNle2M9e2hlaWdodDpgbWF4KCR7ZX0lLCAxcHgpYCxib3R0b206YG1pbigkezEwMCpNYXRoLm1pbiguLi5BcnJheS5pc0FycmF5KG4pP246W24sbF0pfSUsIGNhbGMoMTAwJSAtIDFweCkpYCwiLS1pbm5lci1iYXItY29sb3IiOnIsYm9yZGVyUmFkaXVzOjE9PT1lPzA6dm9pZCAwfX1yZXR1cm4gby5jcmVhdGVFbGVtZW50KG8uRnJhZ21lbnQsbnVsbCxvLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTppKCkodi5lbXB0eVNwYWNlLHMmJnYubWluaSl9KSxvLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTppKCkoYSx2LmJhcix2LmZpcnN0LHMmJnYubWluaSx0JiZ2Lm5lZ2F0aXZlKSxzdHlsZTpjfSksby5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6aSgpKHYuZW1wdHlTcGFjZSxzJiZ2Lm1pbmkpfSkpfWlmKG51bGw9PT1uKXJldHVybiBudWxsO2lmKCJjaXJjbGVzIj09PXQpe2lmKEFycmF5LmlzQXJyYXkobikpcmV0dXJuIG51bGw7Y29uc3QgZT17Ym90dG9tOjEwMCpNYXRoLmFicyhuKSsiJSIsIi0tZGV0YWlscy1jaGFydC1jaXJjbGUtY29sb3IiOnJ9O3JldHVybiBvLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTppKCkodi5jaXJjbGUsYSxzJiZ2Lm1pbmkpLHN0eWxlOmV9KX1yZXR1cm4gbnVsbH1mdW5jdGlvbiBDKGUpe2NvbnN0e3Nlcmllc0FycmF5OnQsYm90dG9tU2NhbGVOYW1lczpuLFRvb2x0aXBDb250ZW50Q29tcG9uZW50OnJ9PWUse2dsb2JhbEJvdW5kaW5nR3JvdXBNYXA6aX09KDAsby51c2VDb250ZXh0KShtLkRldGFpbHNDaGFydENvbnRleHQpLGE9dC5maWx0ZXIoKGU9PiJiYXIiPT09ZS50eXBlfHwiY2lyY2xlcyI9PT1lLnR5cGV8fCJzdGFja2VkIGJhciI9PT1lLnR5cGUpKTtyZXR1cm4gby5jcmVhdGVFbGVtZW50KG8uRnJhZ21lbnQsbnVsbCxuLm1hcCgoKGUsbCk9Pntjb25zdCBzPWEubWFwKChlPT57Y29uc3RbdCwsbl09KDAsZC5lbnN1cmVEZWZpbmVkKShpLmdldCgoMCxoLmdldERpc3BsYXlHcm91cElkKShlKSkpLG89dD09PW47cmV0dXJue3R5cGU6ZS50eXBlLHZhbHVlOngoZSxsLG8sdCxuKSxjb2xvcjplLmRlZmF1bHRDb2xvcixjbGFzc05hbWU6ZS5nZXRJdGVtQ2xhc3NOYW1lPy4oZSxsKSxncm91bmQ6TWF0aC5tYXgoKDAscC5nZXRIZWlnaHRJblBlcmNlbnRzKSgwLHQsbiksMCl9fSkpLGM9KDAsCmguc29ydEJ5UHJpb3JpdHlWaWV3SW5kZXgpKHQpLm1hcCgoZT0+ZS5idWlsZFRvb2x0aXAoZSxuLmxlbmd0aCxsKSkpLnJlZHVjZSgoKGUsdCk9PihudWxsIT09dCYmZS5wdXNoKC4uLnQpLGUpKSxbXSk7cmV0dXJuIG8uY3JlYXRlRWxlbWVudCh5LHtrZXk6bCxpbmRleDpsLHZhbHVlczpzLHRvb2x0aXBWYWx1ZXM6YyxUb29sdGlwQ29udGVudENvbXBvbmVudDpyfSl9KSkpfWZ1bmN0aW9uIHgoZSx0LG4sbyxyKXtjb25zdCBpPWUudmFsdWVzW3RdO3JldHVybiBudWxsPT1pP251bGw6biYmMCE9PWk/MTpBcnJheS5pc0FycmF5KGkpP2kubWFwKChlPT4oMCxwLmdldEhlaWdodEluUGVyY2VudHMpKGUsbyxyKSkpOigwLHAuZ2V0SGVpZ2h0SW5QZXJjZW50cykoaSxvLHIpfXZhciBUPW4oMjAwNjY2KSxiPW4oMTA2OTAwKSxTPW4oNzE5NDI1KSxOPW4oODcxNzApLF89bigyNDQ2NjQpLHc9big0MzI3ODMpO2Z1bmN0aW9uIEkoZSl7Y29uc3R7dG9wTGluZTp0LGJvdHRvbUxpbmU6bix0b3BDb2xvcjpvLGJvdHRvbUNvbG9yOnIsY29udGV4dDppfT1lLGE9ZnVuY3Rpb24oZSx0LG49LjAxKXtjb25zdCBvPXt4OmUuZW5kLngtZS5zdGFydC54LHk6ZS5lbmQueS1lLnN0YXJ0Lnl9LHI9e3g6dC5lbmQueC10LnN0YXJ0LngseTp0LmVuZC55LXQuc3RhcnQueX0saT1vLngqci55LW8ueSpyLngsYT1vLngqci54K28ueSpyLnk7bGV0IGw9TWF0aC5hdGFuMihNYXRoLmFicyhpKSxhKTtsPk1hdGguUEkvMiYmKGw9TWF0aC5QSS1sKTtpZihsPG4pcmV0dXJuIG51bGw7Y29uc3Qgcz0oKHQuc3RhcnQueC1lLnN0YXJ0LngpKnIueS0odC5zdGFydC55LWUuc3RhcnQueSkqci54KS9pO3JldHVybnt4OmUuc3RhcnQueCtzKm8ueCx5OmUuc3RhcnQueStzKm8ueX19KHQsbik7aWYoYSl7bGV0IGU9UihhLEwodCkpO2NvbnN0IGw9UihhLEwobikpO2wtZT5NYXRoLlBJJiYoZSs9MipNYXRoLlBJKTtjb25zdCBzPU1hdGgubWluKGUsbCksYz1NYXRoLmFicyhlLWwpLHU9aS5jcmVhdGVDb25pY0dyYWRpZW50KHMsYS54LGEueSksZD1lPGwsbT1kP286cixwPWQ/cjpvO3JldHVybiB1LmFkZENvbG9yU3RvcCgwLG0pLHUuYWRkQ29sb3JTdG9wKGMvKDIqTWF0aC5QSSkscCksdX1jb25zdCBsPXQuc3RhcnQscz1uLnN0YXJ0LGM9bi5lbmQueC1zLngsdT1uLmVuZC55LXMueSxkPWMqKjIrdSoqMixtPTAhPT1kPygobC54LXMueCkqYysobC55LXMueSkqdSkvZDowLHA9e3g6cy54K20qYyx5OnMueSttKnV9LGg9aS5jcmVhdGVMaW5lYXJHcmFkaWVudChsLngsbC55LHAueCxwLnkpO3JldHVybiBoLmFkZENvbG9yU3RvcCgwLG8pLGguYWRkQ29sb3JTdG9wKDEsciksaH1mdW5jdGlvbiBMKGUpe3JldHVybnt4OihlLnN0YXJ0LngrZS5lbmQueCkvMix5OihlLnN0YXJ0LnkrZS5lbmQueSkvMn19ZnVuY3Rpb24gUihlLHQpe3JldHVybiBNYXRoLmF0YW4yKHQueS1lLnksdC54LWUueCl9dmFyIFA9bigxNjA4MDMpO2Z1bmN0aW9uIEEoZSl7Y29uc3R7c2VyaWVzQXJyYXk6dCxtaW5pOm59PWUse2dsb2JhbEJvdW5kaW5nR3JvdXBNYXA6cixob3ZlckNvbHVtbklkOmF9PSgwLG8udXNlQ29udGV4dCkobS5EZXRhaWxzQ2hhcnRDb250ZXh0KSxsPSgwLG8udXNlUmVmKShudWxsKSxbcyxjXT0oMCxvLnVzZVN0YXRlKSgwKSxbdSxoXT0oMCxvLnVzZVN0YXRlKSgwKSxmPSgwLGIudXNlV2F0Y2hlZFZhbHVlUmVhZG9ubHkpKHt3YXRjaGVkVmFsdWU6VC53YXRjaGVkVGhlbWV9KSxnPV8udGhlbWVzW2ZdfHxfLnRoZW1lc1t3LkRFRkFVTFRfVEhFTUVdLHY9Zy5nZXRUaGVtZWRDb2xvcigiY29sb3ItcGFuZS1iZyIpLHk9KDAsby51c2VNZW1vKSgoKCk9PnQuZmlsdGVyKChlPT4ibGluZSI9PT1lLnR5cGUpKSksW3RdKSxFPSgwLG8udXNlTWVtbykoKCgpPT50LmZpbHRlcigoZT0+dm9pZCAwIT09ZS5zZWdtZW50UmVuZGVyKSkpLFt0XSksQz0oMCxTLnVzZVJlc2l6ZU9ic2VydmVyKSh7Y2FsbGJhY2s6ZnVuY3Rpb24oW2VdKXtjb25zdHt3aWR0aDp0LGhlaWdodDpufT1lLmNvbnRlbnRSZWN0LG89eCgpO2goTWF0aC5jZWlsKHQqbykpLGMoTWF0aC5jZWlsKG4qbykpfSxyZWY6bH0pO3JldHVybigwLG8udXNlRWZmZWN0KSgoKCk9PnshZnVuY3Rpb24oKXtpZighbC5jdXJyZW50fHwhc3x8IXUpcmV0dXJuO2NvbnN0IGU9KDAsZC5lbnN1cmVOb3ROdWxsKShsLmN1cnJlbnQuZ2V0Q29udGV4dCgiMmQiKSk7ZS5jbGVhclJlY3QoMCwwLHUscyk7Y29uc3QgdD14KCk7aWYoTyhFLHIsKCh0LG4pPT57Y29uc3R7dmFsdWVzOm8sc2VnbWVudFJlbmRlcjpyfT10LGk9by5sZW5ndGg7by5mb3JFYWNoKCgobyxsKT0+eygwLGQuZW5zdXJlRGVmaW5lZCkocikoe3Nlcmllczp0LGNvbElkeDpsLGlzSG92ZXJlZDphPT09bCxib3VuZGluZ3M6bix0aGVtZTpnLHBhbmVCYWNrZ3JvdW5kQ29sb3I6dn0pLmNhbnZhcy5tYXAoKGU9PmZ1bmN0aW9uKGUsdCl7Y29uc3Rbbiwsb109dDtzd2l0Y2goZS50eXBlKXtjYXNlInBvaW50IjpyZXR1cm57Li4uZSxwb3NpdGlvbjpXKGUucG9zaXRpb24sbixvKX07Y2FzZSJsaW5lIjpyZXR1cm57Li4uZSxmcm9tOlcoZS5mcm9tLG4sbyksdG86VyhlLnRvLG4sbyl9O2Nhc2UicXVhZCI6cmV0dXJuey4uLmUsdG9wRnJvbTpXKGUudG9wRnJvbSxuLG8pLHRvcFRvOlcoZS50b3BUbyxuLG8pLGJvdHRvbUZyb206VyhlLmJvdHRvbUZyb20sbixvKSxib3R0b21UbzpXKGUuYm90dG9tVG8sbixvKX19fShlLG4pKSkuZm9yRWFjaCgodD0+ZnVuY3Rpb24oZSl7Y29uc3R7Y29sSWR4OnQscHJpbWl0aXZlOm4sY29udGV4dDpvLHBpeGVsUmF0aW86cixjYW52YXNIZWlnaHQ6aSxzZWdtZW50V2lkdGg6YX09ZSxsPWU9Pntjb25zdCBuPSJudW1iZXIiPT10eXBlb2YgZT8wOmUuc2VnbWVudE9mZnNldD8/MDtyZXR1cm4oMSsyKih0K24pKSphfTtpZihvLnNhdmUoKSwicG9pbnQiPT09bi50eXBlKXtjb25zdHtzdHlsZTplfT1uO2lmKGUpe2NvbnN0e2NvbG9yOnQsYm9yZGVyQ29sb3I6bn09ZTt0JiYoby5maWxsU3R5bGU9dCksbiYmKG8uc3Ryb2tlU3R5bGU9bil9Y29uc3QgdD1uLnN0eWxlPy5ib3JkZXJXaWR0aD8/MDtvLmJlZ2luUGF0aCgpLApvLmFyYyhsKG4ucG9zaXRpb24pLE0obi5wb3NpdGlvbixpLHIpLChuLnNpemUrdCkvMipyLDAsMipNYXRoLlBJKSxvLmZpbGwoKSx0PjAmJihvLmxpbmVXaWR0aD10KnIsby5zdHJva2UoKSl9aWYoImxpbmUiPT09bi50eXBlKXtjb25zdHtzdHlsZTplfT1uO2lmKGUpe2NvbnN0e2NvbG9yOnQsbGluZVdpZHRoOm4sZGFzaDppfT1lO3QmJihvLnN0cm9rZVN0eWxlPXQpLG4mJihvLmxpbmVXaWR0aD1uKnIpLGkmJm8uc2V0TGluZURhc2goaS5tYXAoKGU9PmUqcikpKX1vLmJlZ2luUGF0aCgpLG8ubW92ZVRvKGwobi5mcm9tKSxNKG4uZnJvbSxpLHIpKSxvLmxpbmVUbyhsKG4udG8pLE0obi50byxpLHIpKSxvLnN0cm9rZSgpfWlmKCJxdWFkIj09PW4udHlwZSl7Y29uc3QgZT17c3RhcnQ6e3g6bChuLnRvcEZyb20pLHk6TShuLnRvcEZyb20saSxyKX0sZW5kOnt4Omwobi50b3BUbykseTpNKG4udG9wVG8saSxyKX19LHQ9e3N0YXJ0Ont4Omwobi5ib3R0b21Gcm9tKSx5Ok0obi5ib3R0b21Gcm9tLGkscil9LGVuZDp7eDpsKG4uYm90dG9tVG8pLHk6TShuLmJvdHRvbVRvLGkscil9fSx7c3R5bGU6YX09bjtpZihhKXtjb25zdHthbHBoYTpuLGZpbGw6cn09YTtuJiYoby5nbG9iYWxBbHBoYT1uKSxyJiYoInN0cmluZyI9PXR5cGVvZiByP28uZmlsbFN0eWxlPXI6ImJhbmQiPT09ci50eXBlJiYoby5maWxsU3R5bGU9SSh7dG9wTGluZTplLGJvdHRvbUxpbmU6dCx0b3BDb2xvcjpyLnRvcENvbG9yLGJvdHRvbUNvbG9yOnIuYm90dG9tQ29sb3IsY29udGV4dDpvfSkpKX1vLmJlZ2luUGF0aCgpLG8ubW92ZVRvKGUuc3RhcnQueCxlLnN0YXJ0LnkpLG8ubGluZVRvKGUuZW5kLngsZS5lbmQueSksby5saW5lVG8odC5lbmQueCx0LmVuZC55KSxvLmxpbmVUbyh0LnN0YXJ0LngsdC5zdGFydC55KSxvLmxpbmVUbyhlLnN0YXJ0LngsZS5zdGFydC55KSxvLmZpbGwoKX1vLnJlc3RvcmUoKX0oe2NvbElkeDpsLHByaW1pdGl2ZTp0LGNvbnRleHQ6ZSxwaXhlbFJhdGlvOngoKSxjYW52YXNIZWlnaHQ6cyxzZWdtZW50V2lkdGg6dS9pLzJ9KSkpfSkpfSkpLGZ1bmN0aW9uKGUpe2ZvcihsZXQgdD0wO3Q8ZS5sZW5ndGg7dCsrKXtjb25zdHt2YWx1ZXM6bn09ZVt0XTtpZighbi5ldmVyeSgoZT0+MD09PWUpKSlyZXR1cm4hMX1yZXR1cm4hMH0oeSkpcmV0dXJuO2NvbnN0IG89KG58fHU8NDUwKnQ/Mjo0KSp0O08oeSxyLCgodCxuKT0+e2NvbnN0W3IsaSxhXT1uLHtkZWZhdWx0Q29sb3I6bCx2YWx1ZXM6Y309dDtpZighbClyZXR1cm47IWZ1bmN0aW9uKGUsdCxuLG8pe2NvbnN0IHI9eCgpLGk9ZS5sZW5ndGgsYT11L2kvMjtpZihvLnNhdmUoKSxvLmxpbmVKb2luPSJyb3VuZCIsby5saW5lQ2FwPSJyb3VuZCIsby5zdHJva2VTdHlsZT10LG8uZmlsbFN0eWxlPXYsby5saW5lV2lkdGg9bixpPjEpZm9yKGxldCB0PTA7dDxpLTE7dCsrKXtjb25zdCBuPWVbdF0saT1lW3QrMV07aWYobnVsbD09PW58fG51bGw9PT1pKWNvbnRpbnVlO28uYmVnaW5QYXRoKCk7Y29uc3QgbD1NKG4scyxyKTtvLm1vdmVUbygoMSsyKnQpKmEsbCk7Y29uc3QgYz1NKGkscyxyKTtvLmxpbmVUbygoMysyKnQpKmEsYyksby5zdHJva2UoKX1jb25zdCBsPTIqTWF0aC5tYXgoMSxuLzIpO2ZvcihsZXQgdD0wO3Q8aTt0Kyspe2NvbnN0IG49ZVt0XTtpZihudWxsPT09biljb250aW51ZTtjb25zdCBpPU0obixzLHIpLGM9KDErMip0KSphO28uYmVnaW5QYXRoKCksby5hcmMoYyxpLGwsMCwyKk1hdGguUEkpLG8uc3Ryb2tlKCksby5iZWdpblBhdGgoKSxvLmFyYyhjLGksLjc1KmwsMCwyKk1hdGguUEkpLG8uZmlsbCgpfW8ucmVzdG9yZSgpfShjLm1hcCgoZT0+bnVsbD09PWU/bnVsbDowPT09aSYmMCE9PWE/MTooMCxwLmdldEhlaWdodEluUGVyY2VudHMpKGUscixhKSkpLGwsbyxlKX0pKX0oKX0pLFtzLHUseSx2LGFdKSx5Lmxlbmd0aHx8RS5sZW5ndGg/by5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6aSgpKFAuY2FudmFzUGFuZSxuJiZQLm1pbmkpfSxvLmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIse3JlZjpDLGNsYXNzTmFtZTpQLmNhbnZhcyx3aWR0aDp1LGhlaWdodDpzfSkpOm51bGw7ZnVuY3Rpb24geCgpe3JldHVybigwLE4uZ2V0Q2FudmFzRGV2aWNlUGl4ZWxSYXRpbykoKDAsZC5lbnN1cmVOb3ROdWxsKShsLmN1cnJlbnQpKX19ZnVuY3Rpb24gTShlLHQsbj0xKXtjb25zdCBvPTgqbjtyZXR1cm4odC0yKm8pKigxLSgibnVtYmVyIj09dHlwZW9mIGU/ZTplLnkpKStvfHwwfWZ1bmN0aW9uIE8oZSx0LG4pe2NvbnN0IG89KDAsaC5nZXREaXNwbGF5R3JvdXBNYXApKGUpO2Zvcihjb25zdFtlLHJdb2Ygby5lbnRyaWVzKCkpe2NvbnN0IG89dC5nZXQoZSk7byYmci5mb3JFYWNoKChlPT57bihlLG8pfSkpfX1mdW5jdGlvbiBXKGUsdCxuKXtyZXR1cm4ibnVtYmVyIj09dHlwZW9mIGU/KDAscC5nZXRIZWlnaHRJblBlcmNlbnRzKShlLHQsbik6ey4uLmUseTooMCxwLmdldEhlaWdodEluUGVyY2VudHMpKGUueSx0LG4pfX12YXIgSD1uKDcwMDU2MSksRj1uKDgwNDQxMyk7ZnVuY3Rpb24gVihlKXtjb25zdHtzZXJpZXNBcnJheTp0fT1lLG49KDAsaC5zb3J0QnlQcmlvcml0eVZpZXdJbmRleCkodCkuZmlsdGVyKCgoe3Nob3dJbkxlZ2VuZDplfSk9PkJvb2xlYW4oZSkpKTtyZXR1cm4gbi5sZW5ndGg/by5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6Ri5sZWdlbmR9LG4ubWFwKCgoZSx0KT0+by5jcmVhdGVFbGVtZW50KCJkaXYiLHtrZXk6dCxjbGFzc05hbWU6Ri5sYWJlbCxzdHlsZTp7Ii0tZGV0YWlscy1jaGFydC1zZXJpZXMtbGVnZW5kLWNvbG9yIjplLmxlZ2VuZENvbG9yPz9lLmRlZmF1bHRDb2xvcn19LG8uY3JlYXRlRWxlbWVudChILkxlZ2VuZENvbG9yU3dhdGNoLHtjbGFzc05hbWU6aSgpKEYuc3dhdGNoLGUubGVnZW5kQ2xhc3NOYW1lKX0pLG8uY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZTpGLmxhYmVsVGV4dH0sZS5uYW1lLCJwZXJjZW50cyIhPT1lLnZhbHVlVHlwZXx8ZS5uYW1lLmVuZHNXaXRoKCIlIik/IiI6IiAlIikpKSkpOm51bGx9dmFyIEI9bigxOTAwODUpLHo9big1NjM1NjApO2Z1bmN0aW9uIEQoZSl7CmNvbnN0e2hpZ2hsaWdodEluZGV4U2V0OnQsaGlkZVJlZ3VsYXJMaW5lczpuLGhvcml6b250YWxMaW5lc0NvdW50OnI9Qi5ERUZBVUxUX0hPUklaT05UQUxfTElORVNfQ09VTlR9PWU7cmV0dXJuIG8uY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOnouZ3JpZH0sbmV3IEFycmF5KHIpLmZpbGwobnVsbCkubWFwKCgoZSxhKT0+by5jcmVhdGVFbGVtZW50KCJkaXYiLHtrZXk6YSxjbGFzc05hbWU6aSgpKHoubGluZSx0LmhhcyhyLWEtMSkmJnouYm9sZExpbmUsbiYmIXQuaGFzKHItYS0xKSYmei5oaWRkZW5MaW5lKX0pKSkpfXZhciBrPW4oNjAxODQxKSxHPW4oNTExOTApO2Z1bmN0aW9uIGooZSl7Y29uc3R7dmFsdWVzOnQsZ3JvdW5kOm49MCxwb3NpdGl2ZVZhbHVlc09ubHk6cixuZWdhdGl2ZVZhbHVlc09ubHk6YX09ZSx7bWluaTpsfT0oMCxvLnVzZUNvbnRleHQpKG0uRGV0YWlsc0NoYXJ0Q29udGV4dCkscz17aGVpZ2h0OjEwMCp0LnJlZHVjZSgoKGUsdCk9PmUrKHQudmFsdWU/PzApKSwwKSsiJSIsYm90dG9tOjEwMCpuKyIlIn07cmV0dXJuIG8uY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOmkoKShsJiZHLm1pbmksRy5jb2x1bW4pfSxvLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTppKCkoRy5zdGFja1dyYXAsbCYmRy5taW5pLHImJkcucG9zaXRpdmVPbmx5LGEmJkcubmVnYXRpdmVPbmx5KSxzdHlsZTpzfSx0Lm1hcCgoKGUsdCk9Pm8uY3JlYXRlRWxlbWVudChaLHtrZXk6dCwuLi5lfSkpKSkpfWZ1bmN0aW9uIFooZSl7Y29uc3R7dmFsdWU6dCxjb2xvcjpufT1lO2lmKG51bGw9PT10KXJldHVybiBudWxsO2NvbnN0IHI9e2ZsZXhHcm93OjEwMCp0LGJhY2tncm91bmRDb2xvcjpufTtyZXR1cm4gby5jcmVhdGVFbGVtZW50KG8uRnJhZ21lbnQsbnVsbCxvLmNyZWF0ZUVsZW1lbnQoImRpdiIse3N0eWxlOnIsY2xhc3NOYW1lOkcuc2VnbWVudH0pKX1mdW5jdGlvbiBVKGUpe2NvbnN0e3Nlcmllc0FycmF5OnQsYm90dG9tU2NhbGVOYW1lczpufT1lLFtyLCxpXT0oMCxoLmNvbnZlcnRTZXJpZXNUb0JvdW5kaW5nUGFyYW1zKSh0LCEwKSxhPXQuZmlsdGVyKChlPT4ic3RhY2tlZCBiYXIiPT09ZS50eXBlKSk7cmV0dXJuIG8uY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOkcuc3RhY2tTZXR9LG4ubWFwKCgoZSx0KT0+e2xldCBuPTAsbD0wO2NvbnN0IHM9W107YS5mb3JFYWNoKChlPT57Y29uc3Qgbz1lLnZhbHVlc1t0XTtudWxsIT09byYmKG8+PTA/KHMucHVzaChlKSxsKz1vKToocy51bnNoaWZ0KGUpLG4rPW8pKX0pKTtjb25zdCBjPU1hdGgubWF4KCgwLHAuZ2V0SGVpZ2h0SW5QZXJjZW50cykobixyLGkpLDApLHU9cy5tYXAoKGU9Pntjb25zdCBuPWUudmFsdWVzW3RdO3JldHVybnt2YWx1ZTooMCxrLm5vdE51bGwpKG4pJiZyIT09aT9NYXRoLmFicyhuKS8oci1pKTpudWxsLGNvbG9yOmUuZGVmYXVsdENvbG9yfX0pKTtyZXR1cm4gby5jcmVhdGVFbGVtZW50KGose2tleTp0LHZhbHVlczp1LGdyb3VuZDpjLHBvc2l0aXZlVmFsdWVzT25seTowPT09bixuZWdhdGl2ZVZhbHVlc09ubHk6MD09PWx9KX0pKSl9dmFyIFk9bigxNjY4MjIpLEo9big2MTI1NDYpO2Z1bmN0aW9uIFEoZSl7Y29uc3R7cmVmZXJlbmNlOnQsc2VyaWVzQXJyYXk6bixib3R0b21TY2FsZU5hbWVzOnIsbWluaTpkPSExLGV4dGVuZFNjYWxlVmFsdWU6cCxhZGFwdGl2ZVRvb2x0aXBQb3NpdGlvbjpmPSExLHNoYWRlZExheWVyUHJvcHM6ZyxsZWZ0VmVydGljYWxTY2FsZU9wdGlvbnM6dj17dmlzaWJsZTohMX0scmlnaHRWZXJ0aWNhbFNjYWxlT3B0aW9uczp5PXt2aXNpYmxlOiEwfSxjaGlsZHJlbjpFLGJvdHRvbVNjYWxlQ2xhc3NuYW1lOngsZmlsbXN0cmlwT3B0aW9uczpULGhpZGVSZWd1bGFyR3JpZExpbmVzOmIsaG9yaXpvbnRhbExpbmVzQ291bnQ6UyxwcmVwYXJlTGVnZW5kUHJvcHM6TixUb29sdGlwQ29udGVudENvbXBvbmVudDpffT1lLFt3LEldPSgwLG8udXNlU3RhdGUpKCEwKSxbTCxSXT0oMCxvLnVzZVN0YXRlKShudWxsKSxQPSgwLGEudXNlSW50ZXJzZWN0aW9uT2JzZXJ2ZXIpKCgoW2VdKT0+e2NvbnN0e2lzSW50ZXJzZWN0aW5nOnR9PWU7SSh0KX0pKSx7Z2xvYmFsQm91bmRpbmdHcm91cE1hcDpNLHJpZ2h0U2NhbGVQYXJhbXM6TyxsZWZ0U2NhbGVQYXJhbXM6V309KDAsby51c2VNZW1vKSgoKCk9PmZ1bmN0aW9uKGUsdCxuLG8pe2NvbnN0IHI9KDAsaC5nZXREaXNwbGF5R3JvdXBNYXApKG4pLFtpLGFdPXIudmFsdWVzKCksbD1lLnZhbHVlVHlwZXx8aT8uWzBdLnZhbHVlVHlwZXx8Im51bWJlcnMiLHM9dC52YWx1ZVR5cGV8fGE/LlswXS52YWx1ZVR5cGV8fGwsYz0oMCxoLmdldERpc3BsYXlHcm91cElkKSh7dmFsdWVUeXBlOmwsYm91bmRpbmdHcm91cDplLmJvdW5kaW5nR3JvdXB8fGk/LlswXS5ib3VuZGluZ0dyb3VwfSksdT0oMCxoLmdldERpc3BsYXlHcm91cElkKSh7dmFsdWVUeXBlOnMsYm91bmRpbmdHcm91cDp0LmJvdW5kaW5nR3JvdXB8fGE/LlswXS5ib3VuZGluZ0dyb3VwfSksZD1uZXcgTWFwO2M9PT11P2Quc2V0KGMsZS5jb25zaWRlclplcm8/P3QuY29uc2lkZXJaZXJvKTooZC5zZXQoYyxlLmNvbnNpZGVyWmVybyksZC5zZXQodSx0LmNvbnNpZGVyWmVybykpO2NvbnN0IG09bmV3IE1hcDtmb3IoY29uc3RbZSx0XW9mIHIuZW50cmllcygpKW0uc2V0KGUsKDAsaC5jb252ZXJ0U2VyaWVzVG9Cb3VuZGluZ1BhcmFtcykodCxkLmdldChlKSxvKSk7cmV0dXJue2dsb2JhbEJvdW5kaW5nR3JvdXBNYXA6bSxyaWdodFNjYWxlUGFyYW1zOigwLGguZ2V0VmVydGljYWxTY2FsZVBhcmFtcykobCxtLmdldChjKSxlLmxpbmVIaWdobGlnaHRlcixvKSxsZWZ0U2NhbGVQYXJhbXM6KDAsaC5nZXRWZXJ0aWNhbFNjYWxlUGFyYW1zKShzLG0uZ2V0KHUpLHQubGluZUhpZ2hsaWdodGVyLG8pfX0oeSx2LG4sUykpLFt5LHYsbixTXSksSD0oMCxvLnVzZU1lbW8pKCgoKT0+bmV3IFNldChbLi4uTy5oaWdobGlnaHRJbmRleFNldC52YWx1ZXMoKSwuLi5XLmhpZ2hsaWdodEluZGV4U2V0LnZhbHVlcygpXSkpLFtPLmhpZ2hsaWdodEluZGV4U2V0LFcuaGlnaGxpZ2h0SW5kZXhTZXRdKSxGPSgwLApvLnVzZU1lbW8pKCgoKT0+KHttaW5pOmQsdG9wQm9yZGVyVmlzaWJsZTohZnx8dyxnbG9iYWxCb3VuZGluZ0dyb3VwTWFwOk0saG92ZXJDb2x1bW5JZDpMLHNldEhvdmVyQ29sdW1uSWQ6Un0pKSxbZCx3LGYsTSxMLFJdKSxCPWU9Pm8uY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOmkoKShKLnBhbmUsZT8ub3ZlcmZsb3dIaWRkZW4mJkoub3ZlcmZsb3dIaWRkZW4pfSxvLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpKLmludmlzaWJsZSxyZWY6UH0pLG8uY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOkouY2hhcnR9LGcmJm8uY3JlYXRlRWxlbWVudChsLlNoYWRlZExheWVyLHsuLi5nfSksby5jcmVhdGVFbGVtZW50KEQse2hpZ2hsaWdodEluZGV4U2V0OkgsaGlkZVJlZ3VsYXJMaW5lczpiLGhvcml6b250YWxMaW5lc0NvdW50OlN9KSxvLmNyZWF0ZUVsZW1lbnQoQyx7c2VyaWVzQXJyYXk6bixib3R0b21TY2FsZU5hbWVzOnIsVG9vbHRpcENvbnRlbnRDb21wb25lbnQ6X30pLG8uY3JlYXRlRWxlbWVudChVLHtzZXJpZXNBcnJheTooMCxoLnByZXBhcmVGbGF0RGF0YSkobiksYm90dG9tU2NhbGVOYW1lczpyfSksby5jcmVhdGVFbGVtZW50KEEse3Nlcmllc0FycmF5OigwLGgucHJlcGFyZUZsYXREYXRhKShuKSxtaW5pOmR9KSxFKSxvLmNyZWF0ZUVsZW1lbnQodS5Ib3Jpem9udGFsU2NhbGUse2NsYXNzTmFtZTppKCkoSi5ob3Jpem9udGFsU2NhbGUsZCYmSi5taW5pLHAmJkouZXh0ZW5kU2NhbGVWYWx1ZSksYm90dG9tU2NhbGVDbGFzc25hbWU6eCx2YWx1ZXM6cn0pKSx6PW8uY3JlYXRlRWxlbWVudChjLlZlcnRpY2FsU2NhbGUse3BhcmFtczpXLG9wdGlvbnM6dixjbGFzc05hbWU6Si5sZWZ0U2NhbGV9KSxrPW4ubGVuZ3RoPjA/by5jcmVhdGVFbGVtZW50KGMuVmVydGljYWxTY2FsZSx7cGFyYW1zOk8sb3B0aW9uczp5LGNsYXNzTmFtZTpKLnJpZ2h0U2NhbGV9KTpudWxsLEc9KDAscy5pc1J0bCkoKT9rOnosaj0oMCxzLmlzUnRsKSgpP3o6aztyZXR1cm4gby5jcmVhdGVFbGVtZW50KG0uRGV0YWlsc0NoYXJ0Q29udGV4dC5Qcm92aWRlcix7dmFsdWU6Rn0sby5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6Si53cmFwLHJlZjp0fSxvLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpKLnBhbmVXcmFwfSxUPy5lbmFibGU/by5jcmVhdGVFbGVtZW50KFkuRmlsbXN0cmlwV3JhcHBlcix7aXNSdGw6cy5pc1J0bCxsZWZ0U2xvdDpHLHJpZ2h0U2xvdDpqLGl0ZW1XaWR0aFZhcmlhYmxlTmFtZToiLS1kZXRhaWxzLWNoYXJ0LWNvbHVtbi13aWR0aCIsdmlzaWJsZUl0ZW1zOlQudmlzaWJsZUl0ZW1zLHNjcm9sbFRvRW5kOlQuc2Nyb2xsVG9FbmQsaGFzT3ZlcmZsb3c6ci5sZW5ndGg+VC52aXNpYmxlSXRlbXN9LEIoKSk6by5jcmVhdGVFbGVtZW50KG8uRnJhZ21lbnQsbnVsbCxHLEIoe292ZXJmbG93SGlkZGVuOiEwfSksaikpLG8uY3JlYXRlRWxlbWVudChWLHtzZXJpZXNBcnJheTooWj1uLE4/TihaKTpaKX0pKSk7dmFyIFp9fSwxNjY4MjIoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7RmlsbXN0cmlwV3JhcHBlcjooKT0+RX0pO3ZhciBvPW4oNzc5NDc0KSxyPW4oNTE1NDAxKSxpPW4oOTE0NDg3KSxhPW4ubihpKSxsPW4oMjE4ODE0KSxzPW4oNzg3ODk1KSxjPW4oMTY0MjQyKSx1PW4oODU0ODIwKSxkPW4oMjczMzEwKSxtPW4oNzE5NDI1KSxwPW4oMTc5NTg1KSxoPW4oMjM2MTQ2KSxmPW4oMTk5MTkxKSxnPW4oNjY0MjA2KTtmdW5jdGlvbiB2KGUpe2NvbnN0e2lzUnRsOnQsbGVmdFNsb3Q6bixyaWdodFNsb3Q6cixpdGVtV2lkdGhWYXJpYWJsZU5hbWU6aSx2aXNpYmxlSXRlbXM6dSxzY3JvbGxUb0VuZDpkLHNjcm9sbENvbnRhaW5lclJlZjp2LGhhc092ZXJmbG93OkV9PWUsW0MseF09KDAsby51c2VTdGF0ZSkobnVsbCksVD0oMCxzLnVzZUZ1bmN0aW9uYWxSZWZPYmplY3QpKChlPT57eChlKSx2JiYodi5jdXJyZW50PWUpfSkpLGI9KDAsby51c2VSZWYpKCExKSxTPSgwLG8udXNlUmVmKSghMSksW04sX109KDAsby51c2VTdGF0ZSkoITApLFt3LEldPSgwLG8udXNlU3RhdGUpKCEwKSxbTCxSXT0oMCxvLnVzZVN0YXRlKSghMSksW1AsQV09KDAsby51c2VTdGF0ZSkoITEpLE09KDAsbS51c2VSZXNpemVPYnNlcnZlcikoKGU9Pntjb25zdCB0PWVbZS5sZW5ndGgtMV0se3dpZHRoOm59PXQuY29udGVudFJlY3Q7UigwIT09bil9KSksTz0oMCxtLnVzZVJlc2l6ZU9ic2VydmVyKSgoZT0+e2NvbnN0IHQ9ZVtlLmxlbmd0aC0xXSx7d2lkdGg6bn09dC5jb250ZW50UmVjdDtBKDAhPT1uKX0pKTsoMCxvLnVzZUVmZmVjdCkoKCgpPT57Uy5jdXJyZW50PSEwfSksW2ksdV0pO2NvbnN0IFc9KDAsbS51c2VSZXNpemVPYnNlcnZlcikoe2NhbGxiYWNrOmU9Pntjb25zdCB0PWVbZS5sZW5ndGgtMV0sbj1ULmN1cnJlbnQse3dpZHRoOm99PXQuY29udGVudFJlY3Q7bGV0IHI9ITE7biYmbi5zY3JvbGxXaWR0aC1uLnNjcm9sbExlZnQtbi5jbGllbnRXaWR0aDwyJiYocj0hMCksVC5jdXJyZW50Py5zdHlsZS5zZXRQcm9wZXJ0eShpLG8vdSsicHgiKSxkJiYoUy5jdXJyZW50fHxyKSYmKFQuY3VycmVudD8uc2Nyb2xsKHtsZWZ0OlQuY3VycmVudD8uc2Nyb2xsV2lkdGh9KSxTLmN1cnJlbnQ9ITEpfSxyZWY6VH0sW2ksdSxkXSk7cmV0dXJuIG8uY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOmEoKShnLmNvbnRhaW5lcixFJiZnLndpdGhPZmZzZXQsTCYmZy53aXRoTGVmdFNsb3QsUCYmZy53aXRoUmlnaHRTbG90KX0sRSYmby5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6Zy5zY3JvbGxCdG5XcmFwcGVyfSxvLmNyZWF0ZUVsZW1lbnQoeSx7ZGlzYWJsZWQ6TixvbkNsaWNrOigpPT5IKC0xKSxpY29uOmZ9KSksbiYmby5jcmVhdGVFbGVtZW50KCJkaXYiLHtyZWY6TX0sbiksby5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6Zy5pdGVtcyxyZWY6V30sRSYmby5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6YSgpKCFMJiZnLm9mZnNldFpvbmUpfSksQyYmby5jcmVhdGVFbGVtZW50KGMuSW50ZXJzZWN0aW9uWm9uZSx7cG9zaXRpb246LTEsCmludGVyc2VjdGlvbkNiOmZ1bmN0aW9uKGUpe2lmKGUuaXNJbnRlcnNlY3RpbmcpcmV0dXJuIHZvaWQgXyghMCk7XyghMSl9LHJvb3Q6VH0pLGUuY2hpbGRyZW4sQyYmby5jcmVhdGVFbGVtZW50KGMuSW50ZXJzZWN0aW9uWm9uZSx7cG9zaXRpb246MSxpbnRlcnNlY3Rpb25DYjpmdW5jdGlvbihlKXtpZihlLmlzSW50ZXJzZWN0aW5nKXJldHVybiB2b2lkIEkoITApO0koITEpfSxyb290OlR9KSxFJiZvLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTphKCkoIVAmJmcub2Zmc2V0Wm9uZSl9KSksciYmby5jcmVhdGVFbGVtZW50KCJkaXYiLHtyZWY6T30sciksRSYmby5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6Zy5zY3JvbGxCdG5XcmFwcGVyfSxvLmNyZWF0ZUVsZW1lbnQoeSx7ZGlzYWJsZWQ6dyxvbkNsaWNrOigpPT5IKDEpLGljb246aH0pKSk7ZnVuY3Rpb24gSChlKXtpZighQ3x8Yi5jdXJyZW50KXJldHVybjtiLmN1cnJlbnQ9ITA7Y29uc3R7c2Nyb2xsTGVmdDpuLG9mZnNldFdpZHRoOm99PUMscj1lKih0KCk/LTE6MSk7IWZ1bmN0aW9uKGUsdCxuLG89MzUwKXsoMCxwLmFuaW1hdGUpKHtvblN0ZXAodCxuKXtlLnNjcm9sbExlZnQ9bn0sZnJvbTplLnNjcm9sbExlZnQsdG86dCxlYXNpbmc6bC5lYXNpbmdGdW5jLmVhc2VJbk91dEN1YmljLGR1cmF0aW9uOm8sb25Db21wbGV0ZTpufSl9KEMsbityKm8sKCgpPT57Yi5jdXJyZW50PSExfSkpfX1mdW5jdGlvbiB5KGUpe3JldHVybiBvLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpnLnNjcm9sbEJ0bn0sby5jcmVhdGVFbGVtZW50KHUuTGlnaHRCdXR0b24se3ZhcmlhbnQ6InNlY29uZGFyeSIsY29sb3I6ImdyYXkiLHNpemU6InhzbWFsbCIsc3RhcnRTbG90Om8uY3JlYXRlRWxlbWVudChkLkljb24se2NsYXNzTmFtZTpnLmljb24saWNvbjplLmljb259KSxpY29uT25seTohMCxvbkNsaWNrOmUub25DbGljayxkaXNhYmxlZDplLmRpc2FibGVkfSkpfWNsYXNzIEUgZXh0ZW5kcyByLkF1dG9TY3JvbGxpbmdXcmFwcGVye3JlbmRlcigpe3JldHVybiBvLmNyZWF0ZUVsZW1lbnQodix7Li4udGhpcy5wcm9wcyxzY3JvbGxDb250YWluZXJSZWY6dGhpcy5fcmVmfSl9fX0sMjAwNTU2KGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse2dldEJvdW5kaW5nUGFyYW1zOigpPT51LGdldEhlaWdodEluUGVyY2VudHM6KCk9PmEsZ2V0TWF4TWluVmFsdWVzOigpPT5sLGdldFN0YWNrZWRTZXJpZXNCb3VuZGFyeVZhbHVlczooKT0+c30pO3ZhciBvPW4oNjQwNzQ0KTtmdW5jdGlvbiByKGUpe3JldHVybiBNYXRoLmxvZyhNYXRoLmFicyhlKSkqTWF0aC5MT0cxMEUrMXwwfWZ1bmN0aW9uIGkoZSx0PTApe2NvbnN0IG49dCUyPT0wPzE6NSxvPU1hdGguZmxvb3IoKHQrMSkvMikrMSxpPW4qMTAqKihyKGUpLW8pO3JldHVybiBNYXRoLmNlaWwoZS9pKSppfWZ1bmN0aW9uIGEoZSx0LG4pe2NvbnN0IG89dC1uO3JldHVybiAwPT09bz9lOihlLW4pL299ZnVuY3Rpb24gbChlKXtjb25zdCB0PWUucmVkdWNlKCgoZSx0KT0+Wy4uLmUsLi4udC5mbGF0KCldKSxbXSk7cmV0dXJuW01hdGgubWF4KC4uLnQpLE1hdGgubWluKC4uLnQpXX1mdW5jdGlvbiBzKGUpe2lmKCFlWzBdKXJldHVybnttaW5OZWdhdGl2ZVRvdGFsOjAsbWF4UG9zaXRpdmVUb3RhbDowfTtsZXQgdD0wLG49MDtjb25zdCBvPU1hdGgubWF4KC4uLmUubWFwKChlPT5lLmxlbmd0aCkpKTtmb3IobGV0IHI9MDtyPG87cisrKXtsZXQgbz0wLGk9MDtlLmZvckVhY2goKGU9Pntjb25zdCB0PWVbcl07dCYmKHQ+MD9vKz10OmkrPXQpfSkpLHQ9TWF0aC5tYXgodCxvKSxuPU1hdGgubWluKG4saSl9cmV0dXJue21heFBvc2l0aXZlVG90YWw6dCxtaW5OZWdhdGl2ZVRvdGFsOm59fWZ1bmN0aW9uIGMoZSx0KXtpZihNYXRoLmFicyhlKT09PTEvMClyZXR1cm4gZTtjb25zdCBuPWUvdDtsZXQgbz1pKG4pO2ZvcihsZXQgcj0xO3I8NCYmIShvKnQtZTwuMTUqdCpvKTtyKyspbz1pKG4scik7cmV0dXJuIG99ZnVuY3Rpb24gdShlLHQsbj0hMCl7Y29uc3RbaSxhXT1lO2lmKGk+MCYmYTwwKXtjb25zdCBlPU1hdGguYWJzKGEpLG49aStlLHI9TWF0aC5tYXgoaSxlKSxsPU1hdGgubWluKGksZSkscz1NYXRoLmNlaWwoci9uKih0LTIpKSx1PXQtMS1zLGQ9YyhyLHMpLG09YyhsLHUpLHA9TWF0aC5taW4obSxkKSxoPW09PT1kfHxwKnM+ciYmcCp1Pmw/cDpNYXRoLm1heChtLGQpO3JldHVybiBpPmU/WygwLG8uZml4Q29tcHV0YXRpb25FcnJvcikoaCpzKSxoLCgwLG8uZml4Q29tcHV0YXRpb25FcnJvcikoLWgqdSldOlsoMCxvLmZpeENvbXB1dGF0aW9uRXJyb3IpKGgqdSksaCwoMCxvLmZpeENvbXB1dGF0aW9uRXJyb3IpKC1oKnMpXX1jb25zdCBsPWk8PTAmJmE8PTAscz1sPy1hOmksdT1uPzA6ZnVuY3Rpb24oZSl7Y29uc3QgdD01KjEwKioocihlKS0yKTtyZXR1cm4gTWF0aC5mbG9vcihlL3QpKnR9KGw/LWk6YSksZD1jKHMtdSx0LTEpO3JldHVybiBsP1stdSxkLCgwLG8uZml4Q29tcHV0YXRpb25FcnJvcikoLXUtZCoodC0xKSldOlsoMCxvLmZpeENvbXB1dGF0aW9uRXJyb3IpKHUrZCoodC0xKSksZCx1XX19LDUxNTQwMShlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtBdXRvU2Nyb2xsaW5nV3JhcHBlcjooKT0+cn0pO3ZhciBvPW4oNzc5NDc0KTtjbGFzcyByIGV4dGVuZHMgby5QdXJlQ29tcG9uZW50e2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLl9yZWY9by5jcmVhdGVSZWYoKX1jb21wb25lbnREaWRNb3VudCgpe2NvbnN0IGU9dGhpcy5fcmVmLmN1cnJlbnQ7dGhpcy5wcm9wcy5yZWZlcmVuY2U/LihlKSxlPy5zY3JvbGwoe2xlZnQ6ZS5zY3JvbGxXaWR0aH0pfWNvbXBvbmVudERpZFVwZGF0ZShlLHQsbil7aWYobj8uc2Nyb2xsKXtjb25zdCBlPXRoaXMuX3JlZi5jdXJyZW50O2U/LnNjcm9sbCh7bGVmdDplLnNjcm9sbFdpZHRofSl9fWdldFNuYXBzaG90QmVmb3JlVXBkYXRlKGUsdCl7Y29uc3Qgbj10aGlzLl9yZWYuY3VycmVudDtyZXR1cm4gbiYmbi5zY3JvbGxXaWR0aC1uLnNjcm9sbExlZnQtbi5jbGllbnRXaWR0aDwyP3tzY3JvbGw6ITB9Om51bGx9fX0sNzAwNTYxKGUsdCxuKXsKInVzZSBzdHJpY3QiO24uZCh0LHtMZWdlbmRDb2xvclN3YXRjaDooKT0+bH0pO3ZhciBvPW4oNzc5NDc0KSxyPW4oOTE0NDg3KSxpPW4ubihyKSxhPW4oMjIwMzEyKTtmdW5jdGlvbiBsKGUpe2NvbnN0e2NsYXNzTmFtZTp0LHN0eWxlOm59PWU7cmV0dXJuIG8uY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZTppKCkodCxhLnN3YXRjaCksc3R5bGU6bn0pfX0sMTk5MTkxKGUpe2UuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxOCAxOCIgd2lkdGg9IjE4IiBoZWlnaHQ9IjE4Ij48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGQ9Im03LjY2IDkgMy4yMi0zLjY3LS43Ni0uNjZMNi4zNCA5bDMuNzggNC4zMy43Ni0uNjZMNy42NiA5WiIvPjwvc3ZnPid9fV0pOw=="}},"time_used":3,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":3,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/657.29ddd4f04e6ec50da70b.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.522Z","timestamp":1785148034522,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/657.29ddd4f04e6ec50da70b.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\ncontent-type: text/css; charset=utf-8\r\ncontent-length: 60\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\netag: \"69f98b75-3c\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Tue, 05 May 2026 06:17:25 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.51\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 05/05/2026 10:16:43\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: f0978c552615f6e5d62d821ec04b2166\r\ncdn-cache: HIT\r\naccept-ranges: bytes\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":60,"size_decoded":844,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with no line terminators","md5":"df18085a2070c3224e444c71713a95bc","sha1":"144d76cfc0df49820ea9adff3d08089670097e0e","sha256":"41b689f65b61467ec344afc1b82582ad1aca4134488ceb2f506e8f80e6ba919c","sha512":"f498445a0b87460528dde1423c9e61047aa43ac1d298895e5ce55ad2ec4f8bb9e3a40c41434d71c573e693ac551d5865326e39fd2a4735648b7637f8d41a88fc","ssdeep":"","tlshash":"16a0020653c51f358913d92307962717115454258912d6b58a03caa6964d78879261ec","first_seen":"2026-02-24T21:05:06.310249Z","last_seen":"2026-07-27T12:48:39.711626Z","times_seen":236,"resource_available":false,"data":"LmxvZ28tZDB2Vm1HdlR7ZGlzcGxheTpmbGV4O2ZsZXg6bm9uZTttYXJnaW4taW5saW5lLWVuZDo4cHh9"}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/47201.4280aa0c3cf12cac9d6d.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.544Z","timestamp":1785148034544,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/47201.4280aa0c3cf12cac9d6d.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\ncontent-type: text/css; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding, Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\netag: W/\"69f98b72-3a0\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Tue, 05 May 2026 06:17:22 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.51\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 05/05/2026 10:16:43\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: e58ff157d298155194ae19d7a04a9c5a\r\ncdn-cache: HIT\r\ncontent-encoding: br\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":928,"size_decoded":1232,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with very long lines (928), with no line terminators","md5":"54605d628ac900602ae36083dee3b441","sha1":"ca358793dd82a43278f12335674d256d92b49ad7","sha256":"3196d030409bb0320a5fae323a6210b652289760b0b3de4774d7a6fb6ef0f00e","sha512":"ad0740ba5a5400fb690d0b94d291463e7961d11b57ca38bccce61f1dcbd54fd95d7e6288efac1d46ce072b9b765e27820b6ed7bb94d12db613a20587c96b7d27","ssdeep":"","tlshash":"2811c2697250f778b562a89a6604b44c24c4d911054381eada63961dc4d32b70bb6fd8","first_seen":"2026-04-17T19:04:15.912861Z","last_seen":"2026-07-27T12:48:39.739608Z","times_seen":180,"resource_available":false,"data":"LnNlYXJjaC1sQU51YlNjMnthbGw6dW5zZXQ7Zm9udC1mYW1pbHk6LWFwcGxlLXN5c3RlbSxCbGlua01hY1N5c3RlbUZvbnQsVHJlYnVjaGV0IE1TLFJvYm90byxVYnVudHUsc2Fucy1zZXJpZjtmb250LWZlYXR1cmUtc2V0dGluZ3M6InRudW0iIG9uLCJsbnVtIiBvbjtmb250LXN0eWxlOm5vcm1hbDt3aWR0aDoxMDAlOy0tdWktbGliLXR5cG9ncmFwaHktZm9udC1zaXplOjE2cHg7Zm9udC1zaXplOnZhcigtLXVpLWxpYi10eXBvZ3JhcGh5LWZvbnQtc2l6ZSk7Zm9udC13ZWlnaHQ6NDAwOy0tdWktbGliLXR5cG9ncmFwaHktbGluZS1oZWlnaHQ6MjRweDtsaW5lLWhlaWdodDp2YXIoLS11aS1saWItdHlwb2dyYXBoeS1saW5lLWhlaWdodCl9LnNlYXJjaC1sQU51YlNjMjo6cGxhY2Vob2xkZXJ7Y29sb3I6dmFyKC0tY29sb3ItY29udGVudC1wcmltYXJ5LW5ldXRyYWwtbGlnaHQpfS5pbnB1dENvbnRhaW5lci1sQU51YlNjMnthbGlnbi1pdGVtczpjZW50ZXI7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1jb2xvci1ib3JkZXItcHJpbWFyeS1uZXV0cmFsLW5vcm1hbCk7Ym9yZGVyLXJhZGl1czo4cHg7Ym94LXNpemluZzpib3JkZXItYm94O2Rpc3BsYXk6ZmxleDtoZWlnaHQ6NDBweDtwYWRkaW5nOjZweCA4cHh9LmlucHV0Q29udGFpbmVyLWxBTnViU2MyOmZvY3VzLXdpdGhpbiAuc2VhcmNoSW5wdXRJY29uLWxBTnViU2Mye2NvbG9yOnZhcigtLWNvbG9yLWNvbnRlbnQtcHJpbWFyeS1uZXV0cmFsKX0uYWN0aW9ucy1sQU51YlNjMnthbGlnbi1pdGVtczpjZW50ZXI7ZGlzcGxheTpmbGV4fS5kaXZpZGVyLWxBTnViU2Mye21hcmdpbjowIDhweH0uc2VhcmNoSW5wdXRJY29uLWxBTnViU2Mye2NvbG9yOnZhcigtLWNvbG9yLWNvbnRlbnQtcHJpbWFyeS1uZXV0cmFsLWxpZ2h0KTtoZWlnaHQ6MjhweDttaW4td2lkdGg6MjhweDt3aWR0aDoyOHB4fQ=="}},"time_used":3,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":3,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/37259.c274906dca0ce793b9d0.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.873Z","timestamp":1785148034873,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/37259.c274906dca0ce793b9d0.js HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a61b1a9-82c8\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Thu, 23 Jul 2026 06:16:09 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/23/2026 10:21:29\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: bedc7361ef346e27cd4778c5852b4ea8\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":33480,"size_decoded":11655,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, Unicode text, UTF-8 text, with very long lines (3070)","md5":"e697e6c0274d0ae1900218cea9e15896","sha1":"8845989f6167dae34251aadd37a5479ff51d5ded","sha256":"665cfc147a5679c937c7bd96b69a1a1cbb3d7ffeee53259023f220e87b63b8da","sha512":"8f0116d52275db82ecf930460a51437c18bd3adb79c95e4c35955b3d63defcb93cb59cc08ef3be9242e7adc711d7a426fe0480e14e32d2d6d4d46db3b723b8aa","ssdeep":"768:NkBZpRhz6Oi9blGI5edbeMwp+KNsn86cySO+2kE:qxjilewT+/pM2kE","tlshash":"61e2d8d8b467fa1a503b69dfa81e08c0663c569098db0cb1e99ecc9c3504959f37dbf8","first_seen":"2026-07-27T03:26:08.99451Z","last_seen":"2026-07-27T10:53:39.258553Z","times_seen":8,"resource_available":true,"data":"KHNlbGYud2VicGFja0NodW5rdHJhZGluZ3ZpZXc9c2VsZi53ZWJwYWNrQ2h1bmt0cmFkaW5ndmlld3x8W10pLnB1c2goW1szNzI1OV0sezUzMjQ2MChlKXtlLmV4cG9ydHM9e2l0ZW06Iml0ZW0tRFZuczNTWmYiLHRpdGxlOiJ0aXRsZS1EVm5zM1NaZiIsZGF0YToiZGF0YS1EVm5zM1NaZiIsc3dhdGNoOiJzd2F0Y2gtRFZuczNTWmYifX0sNDI1MTY4KGUpe2UuZXhwb3J0cz17Y29udGFpbmVyOiJjb250YWluZXItbmxONU9EZVgiLG5leHREYXRlOiJuZXh0RGF0ZS1ubE41T0RlWCIscmVsZWFzZVRvZGF5OiJyZWxlYXNlVG9kYXktbmxONU9EZVgiLHN0YXRzVmFsdWU6InN0YXRzVmFsdWUtbmxONU9EZVgifX0sNTI5MDM1KGUpe2UuZXhwb3J0cz17cGllVGl0bGU6InBpZVRpdGxlLXJ6NzZMZUptIixjaGFydFdyYXA6ImNoYXJ0V3JhcC1yejc2TGVKbSIsY2hhcnRDb250YWluZXI6ImNoYXJ0Q29udGFpbmVyLXJ6NzZMZUptIn19LDg4ODkwKGUpe2UuZXhwb3J0cz17Y29udGFpbmVyOiJjb250YWluZXItaFNxQlg2aWIifX0sMjYwNTEoZSl7ZS5leHBvcnRzPXt0ZXh0OiJ0ZXh0LVhncjRLak5hIn19LDQ1ODE4NChlKXtlLmV4cG9ydHM9e2xlZ2VuZDoibGVnZW5kLVVGR2FrR0RYIixsYWJlbDoibGFiZWwtVUZHYWtHRFgiLHN3YXRjaDoic3dhdGNoLVVGR2FrR0RYIixsYWJlbFRleHQ6ImxhYmVsVGV4dC1VRkdha0dEWCJ9fSw2MTk0MTYoZSl7ZS5leHBvcnRzPXtub1dyYXA6Im5vV3JhcC1DcDkwcFJxcSJ9fSwyNjQ1OShlKXtlLmV4cG9ydHM9e3dyYXA6IndyYXAtTllONVNTR2giLGNvbnRhaW5lcjoiY29udGFpbmVyLU5ZTjVTU0doIix0aXRsZToidGl0bGUtTllONVNTR2giLGxpbms6ImxpbmstTllONVNTR2giLHdpdGhTb2x1dGlvbjoid2l0aFNvbHV0aW9uLU5ZTjVTU0doIix1cGNvbWluZ0Vhcm5pbmdzOiJ1cGNvbWluZ0Vhcm5pbmdzLU5ZTjVTU0doIixkYXlzQ291bnRlcjoiZGF5c0NvdW50ZXItTllONVNTR2giLGFsaWduUmlnaHQ6ImFsaWduUmlnaHQtTllONVNTR2giLHVwY29taW5nRGF0ZToidXBjb21pbmdEYXRlLU5ZTjVTU0doIix1cGNvbWluZ0RhdGVUb2RheToidXBjb21pbmdEYXRlVG9kYXktTllONVNTR2giLHRhYnM6InRhYnMtTllONVNTR2giLGljb246Imljb24tTllONVNTR2giLHNvbHV0aW9uOiJzb2x1dGlvbi1OWU41U1NHaCIsZGF5c0NvdW50ZXJTb29uOiJkYXlzQ291bnRlclNvb24tTllONVNTR2gifX0sNTAwNTczKGUpe2UuZXhwb3J0cz17aWNvbjoiaWNvbi1TSFBqaGdCbCIscHJlTWFya2V0OiJwcmVNYXJrZXQtU0hQamhnQmwiLHBvc3RNYXJrZXQ6InBvc3RNYXJrZXQtU0hQamhnQmwifX0sOTk4NTE3KGUpe2UuZXhwb3J0cz17ZXN0aW1hdGU6ImVzdGltYXRlLV9sWHdrVnhPIn19LDMwNjgzNyhlLHQsYSl7InVzZSBzdHJpY3QiO2EuZCh0LHtleHRyYWN0RGV4VHJhZGluZ0FjdGl2aXR5RGF0YTooKT0+aSx0cmFkaW5nQWN0aXZpdHlQZXJpb2RzOigpPT5yfSk7Y29uc3Qgbj1bImRleF9idXlzIiwiZGV4X3NlbGxzIiwiZGV4X2J1eV92b2x1bWUiLCJkZXhfc2VsbF92b2x1bWUiLCJkZXhfYnV5ZXJzIiwiZGV4X3NlbGxlcnMiXSxyPVsiMjRoIiwiMTJoIiwiNGgiLCIxaCIsIjE1bSJdO2Z1bmN0aW9uIGkoZSl7Y29uc3QgdD17fTtmb3IoY29uc3QgYSBvZiByKXt0W2FdPXt9O2Zvcihjb25zdCByIG9mIG4pe2NvbnN0IG49YCR7cn1fJHthfWA7dFthXVtyXT1lW25dPz9udWxsfX1yZXR1cm4gdH19LDI1ODUyMShlLHQsYSl7InVzZSBzdHJpY3QiO2EuZCh0LHtEZXRhaWxzS2V5VmFsdWVJdGVtOigpPT5sfSk7dmFyIG49YSg3Nzk0NzQpLHI9YSg5MTQ0ODcpLGk9YS5uKHIpLHM9YSg3MDA1NjEpLG89YSg1MzI0NjApO2Z1bmN0aW9uIGwoZSl7Y29uc3R7ZGF0YTp0LHRpdGxlOmEsZGF0YUNsYXNzTmFtZTpyLHRpdGxlQ2xhc3NOYW1lOmwsY2xhc3NOYW1lOl8sY29sb3I6ZH09ZTtyZXR1cm4gbi5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6aSgpKG8uaXRlbSxfKX0sbi5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6aSgpKG8udGl0bGUsbCl9LGQmJm4uY3JlYXRlRWxlbWVudChzLkxlZ2VuZENvbG9yU3dhdGNoLHtjbGFzc05hbWU6by5zd2F0Y2gsc3R5bGU6e2JhY2tncm91bmRDb2xvcjpkfX0pLG4uY3JlYXRlRWxlbWVudCgic3BhbiIsbnVsbCxhKSksbi5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOmkoKShvLmRhdGEscil9LHQpKX19LDM1MTYwMyhlLHQsYSl7InVzZSBzdHJpY3QiO2EuZCh0LHtEaXZpZGVuZHNTdGF0czooKT0+Z30pO3ZhciBuPWEoNzc5NDc0KSxyPWEoOTE0NDg3KSxpPWEubihyKSxzPWEoNzgzMjU0KSxvPWEoMTI1MjE4KSxsPWEoNTIzMDcxKSxfPWEoNTM0NDgwKSxkPWEoODkzMTE1KSxjPWEoMjU4NTIxKSx1PWEoMjE1MjU3KSxmPWEoNDI1MTY4KTtmdW5jdGlvbiBnKGUpe2NvbnN0e2RhdGE6dCxjbGFzc05hbWU6cn09ZSx7ZGl2aWRlbmRzX3lpZWxkX2N1cnJlbnQ6ZyxkaXZpZGVuZF9leF9kYXRlX3VwY29taW5nOm0sZGl2aWRlbmRfYW1vdW50X3VwY29taW5nOmgsZGl2aWRlbmRfYW1vdW50X3JlY2VudDpwLGRpdmlkZW5kX2V4X2RhdGVfcmVjZW50OnYsZGl2aWRlbmRfcGF5bWVudF9kYXRlX3VwY29taW5nOngsZGl2aWRlbmRfcGF5bWVudF9kYXRlX3JlY2VudDp5fT10LEQ9bT8/dixOPXg/P3ksRT1oPz9wLFA9bmV3IG8uUGVyY2VudGFnZUZvcm1hdHRlcixTPSgwLF8uYnVpbGROZXh0RGF0ZUluZm8pKHt0aW1lU3RhbXA6RCxmcm9tOiJ5ZWFyIix0bzoiZGF5Iixsb2NhbGU6KDAsZC5nZXRMb2NhbGVJc28pKCl9KSxJPSgwLF8uYnVpbGROZXh0RGF0ZUluZm8pKHt0aW1lU3RhbXA6Tixmcm9tOiJ5ZWFyIix0bzoiZGF5Iixsb2NhbGU6KDAsZC5nZXRMb2NhbGVJc28pKCl9KTtyZXR1cm4gbi5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6aSgpKGYuY29udGFpbmVyLHIpfSxuLmNyZWF0ZUVsZW1lbnQoYy5EZXRhaWxzS2V5VmFsdWVJdGVtLHt0aXRsZTpzLnQobnVsbCx2b2lkIDAsYSgxMTU1NzQpKSxkYXRhOigwLHUuZm9ybWF0RGF0YSkoUCxnKSxkYXRhQ2xhc3NOYW1lOmYuc3RhdHNWYWx1ZQp9KSxuLmNyZWF0ZUVsZW1lbnQoYy5EZXRhaWxzS2V5VmFsdWVJdGVtLHt0aXRsZTpoP3MudChudWxsLHZvaWQgMCxhKDg0MDg0OSkpOnMudChudWxsLHZvaWQgMCxhKDk2OTczKSksZGF0YTooMCx1LmZvcm1hdERhdGEpKHtmb3JtYXQ6bC5yb3VuZFRvVGhpcmREaWdpdH0sRSksZGF0YUNsYXNzTmFtZTpmLnN0YXRzVmFsdWV9KSxuLmNyZWF0ZUVsZW1lbnQoYy5EZXRhaWxzS2V5VmFsdWVJdGVtLHt0aXRsZTptP3MudChudWxsLHZvaWQgMCxhKDgxODg5MykpOnMudChudWxsLHZvaWQgMCxhKDEyMTk1MykpLGRhdGFDbGFzc05hbWU6aSgpKFMuaXNSZWxlYXNlRGF0ZVRvZGF5JiZmLnJlbGVhc2VUb2RheSxmLm5leHREYXRlLGYuc3RhdHNWYWx1ZSksZGF0YTpTLmlzUmVsZWFzZURhdGVUb2RheT9zLnQobnVsbCx2b2lkIDAsYSg2MTQ0NTApKTpTLm5leHREYXRlTGFiZWx9KSxuLmNyZWF0ZUVsZW1lbnQoYy5EZXRhaWxzS2V5VmFsdWVJdGVtLHt0aXRsZTptP3MudChudWxsLHZvaWQgMCxhKDc1MDA1MykpOnMudChudWxsLHZvaWQgMCxhKDU2NDA4OSkpLGRhdGFDbGFzc05hbWU6aSgpKEkuaXNSZWxlYXNlRGF0ZVRvZGF5JiZmLnJlbGVhc2VUb2RheSxmLm5leHREYXRlLGYuc3RhdHNWYWx1ZSksZGF0YTpJLmlzUmVsZWFzZURhdGVUb2RheT9zLnQobnVsbCx2b2lkIDAsYSg2MTQ0NTApKTpJLm5leHREYXRlTGFiZWx9KSl9fSw1MDUwODkoZSx0LGEpeyJ1c2Ugc3RyaWN0IjthLmQodCx7TEVHRU5EU19DT0xPUlM6KCk9PmksZ2V0RGl2aWRlbmRzRGF0YUZyb21RdW90ZXM6KCk9Pm8saGFzRGl2aWRlbmRzRGF0YTooKT0+bH0pO3ZhciBuLHI9YSg1MDU1Nik7IWZ1bmN0aW9uKGUpe2UuUG9zaXRpdmU9InBvc2l0aXZlIixlLk5lZ2F0aXZlPSJuZWdhdGl2ZSIsZS5HcmF5PSJncmF5IixlLkxpZ2h0R3JheT0ibGlnaHRHcmF5IixlLkRhcmtHcmF5PSJkYXJrR3JheSJ9KG58fChuPXt9KSk7Y29uc3QgaT17cG9zaXRpdmU6ci5jb2xvcnNQYWxldHRlWyJjb2xvci1taW50eS1ncmVlbi1hNjAwIl0sbmVnYXRpdmU6ci5jb2xvcnNQYWxldHRlWyJjb2xvci1yaXBlLXJlZC01MDAiXSxncmF5OnIuY29sb3JzUGFsZXR0ZVsiY29sb3ItY29sZC1ncmF5LTM1MCJdLGxpZ2h0R3JheTpyLmNvbG9yc1BhbGV0dGVbImNvbG9yLWNvbGQtZ3JheS0xNTAiXSxkYXJrR3JheTpyLmNvbG9yc1BhbGV0dGVbImNvbG9yLWNvbGQtZ3JheS03MDAiXX07dmFyIHM7ZnVuY3Rpb24gbyhlKXtjb25zdHtkaXZpZGVuZF9wYXlvdXRfcmF0aW9fdHRtOnQsZGl2aWRlbmRzX3lpZWxkX2N1cnJlbnQ6YSxkaXZpZGVuZF9leF9kYXRlX3VwY29taW5nOm4sZGl2aWRlbmRfYW1vdW50X3VwY29taW5nOnIsZGl2aWRlbmRfYW1vdW50X3JlY2VudDppLGRpdmlkZW5kX2V4X2RhdGVfcmVjZW50OnMsZGl2aWRlbmRfcGF5bWVudF9kYXRlX3VwY29taW5nOm8sZGl2aWRlbmRfcGF5bWVudF9kYXRlX3JlY2VudDpffT1lO3JldHVybntoYXNEaXZpZGVuZHM6bChlKSxkaXZpZGVuZF9wYXlvdXRfcmF0aW9fdHRtOnQsZGl2aWRlbmRzX3lpZWxkX2N1cnJlbnQ6YSxkaXZpZGVuZF9leF9kYXRlX3VwY29taW5nOm4sZGl2aWRlbmRfYW1vdW50X3VwY29taW5nOnIsZGl2aWRlbmRfYW1vdW50X3JlY2VudDppLGRpdmlkZW5kX2V4X2RhdGVfcmVjZW50OnMsZGl2aWRlbmRfcGF5bWVudF9kYXRlX3VwY29taW5nOm8sZGl2aWRlbmRfcGF5bWVudF9kYXRlX3JlY2VudDpffX1mdW5jdGlvbiBsKGUpe2lmKCFlLmhhc093blByb3BlcnR5KCJkaXZpZGVuZF9hbW91bnRfaCIpJiYhZS5oYXNPd25Qcm9wZXJ0eSgiZGl2aWRlbmRfYW1vdW50X3VwY29taW5nIikpcmV0dXJuO2NvbnN0e2RpdmlkZW5kX2Ftb3VudF9oOnQsZGl2aWRlbmRfYW1vdW50X3VwY29taW5nOmF9PWU7cmV0dXJuIEJvb2xlYW4oYXx8dCYmMCE9PXQubGVuZ3RoKX0hZnVuY3Rpb24oZSl7ZS5EaXZpZGVuZFBheW91dFJhdGlvVHRtPSJkaXZpZGVuZF9wYXlvdXRfcmF0aW9fdHRtIixlLkRpdmlkZW5kc1lpZWxkQ3VycmVudD0iZGl2aWRlbmRzX3lpZWxkX2N1cnJlbnQiLGUuRGl2aWRlbmRFeERhdGVVcGNvbWluZz0iZGl2aWRlbmRfZXhfZGF0ZV91cGNvbWluZyIsZS5EaXZpZGVuZEFtb3VudFVwY29taW5nPSJkaXZpZGVuZF9hbW91bnRfdXBjb21pbmciLGUuRGl2aWRlbmRBbW91bnRSZWNlbnQ9ImRpdmlkZW5kX2Ftb3VudF9yZWNlbnQiLGUuRGl2aWRlbmRFeERhdGVSZWNlbnQ9ImRpdmlkZW5kX2V4X2RhdGVfcmVjZW50IixlLkRpdmlkZW5kUGF5bWVudERhdGVVcGNvbWluZz0iZGl2aWRlbmRfcGF5bWVudF9kYXRlX3VwY29taW5nIixlLkRpdmlkZW5kUGF5bWVudERhdGVSZWNlbnQ9ImRpdmlkZW5kX3BheW1lbnRfZGF0ZV9yZWNlbnQifShzfHwocz17fSkpfSw1OTkyODEoZSx0LGEpeyJ1c2Ugc3RyaWN0IjthLmQodCx7RGl2aWRlbmRzQ2hhcnQ6KCk9Pmh9KTt2YXIgbj1hKDc3OTQ3NCkscj1hKDkxNDQ4NyksaT1hLm4ocikscz1hKDc4MzI1NCksbz1hKDEyNTIxOCksbD1hKDgxMDQxKSxfPWEoOTY5MTY4KSxkPWEoMzIzMTE1KSxjPWEoODkwNzk3KSx1PWEoNTA1MDg5KTtmdW5jdGlvbiBmKGUpe2NvbnN0e3BpZURhdGE6dCxjbGFzc05hbWU6YX09ZSxyPSgwLG4udXNlTWVtbykoKCgpPT50Lm1hcCgoZT0+KHsuLi5lLGNvbG9yOnUuTEVHRU5EU19DT0xPUlNbZS5jb2xvcl19KSkpKSxbdF0pO3JldHVybiBuLmNyZWF0ZUVsZW1lbnQoYy5MZWdlbmQse2NsYXNzTmFtZTphLGl0ZW1zOnJ9KX12YXIgZz1hKDUyOTAzNSk7bGV0IG07ZnVuY3Rpb24gaChlKXtjb25zdHtjbGFzc05hbWU6dCxsZWdlbmRDbGFzc05hbWU6cixkaXZpZGVuZFBheW91dFJhdGlvVHRtOm99PWUsYz0oMCxfLmlzUnRsKSgpLG09MD09PW8saD1vPjEwMHx8bzwwLHY9KDAsbi51c2VNZW1vKSgoKCk9Pmh8fG0/W1t7Y291bnQ6bT8xOk1hdGguYWJzKG8pLGNvbG9yOiJuZWdhdGl2ZSIsbmFtZTpzLnQobnVsbCx2b2lkIDAsYSg3NDI1MTUpKX1dXTpbW3tjb3VudDoxMDAtbyxjb2xvcjoiZ3JheSIsbmFtZTpzLnQobnVsbCx2b2lkIDAsYSg2MzM0NTUpKSxwcmlvcml0eVZpZXdJbmRleDoxfSx7Y291bnQ6byxjb2xvcjoicG9zaXRpdmUiLApuYW1lOnMudChudWxsLHZvaWQgMCxhKDc0MjUxNSkpLHByaW9yaXR5Vmlld0luZGV4OjJ9XV0pLFtvXSk7cmV0dXJuIG4uY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOmkoKShnLmNoYXJ0Q29udGFpbmVyLHQpfSxuLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpnLmNoYXJ0V3JhcH0sbi5jcmVhdGVFbGVtZW50KGQuUGllQ2hhcnQse3RpdGxlOnAoKS5mb3JtYXQobyksdGl0bGVDbGFzc05hbWU6Zy5waWVUaXRsZSxjaXJjbGVzOnYsdGl0bGVDb2xvcjpofHxtP3UuTEVHRU5EU19DT0xPUlMubmVnYXRpdmU6dS5MRUdFTkRTX0NPTE9SUy5wb3NpdGl2ZSxob3Jpem9udGFsRmxpcDohYyxnZXRBcmNDb2xvcjpmdW5jdGlvbihlKXtjb25zdHthcmNJbmRleDp0LHRoZW1lOmF9PWUse2NvbG9yOm59PXZbMF1bdF07cmV0dXJuIHUuTEVHRU5EU19DT0xPUlNbImdyYXkiPT09bnx8bT9hPT09bC5TdGRUaGVtZS5EYXJrPyJkYXJrR3JheSI6ImxpZ2h0R3JheSI6bl19LHNob3dUb29sdGlwOiExLHNob3dMYWJlbHM6ITEsc2hvd1BlcmNlbnRzOiExLHNob3dDb3VudDohMSxzaG93SG92ZXI6ITEsc29ydERhdGE6ITF9KSksbi5jcmVhdGVFbGVtZW50KGYse3BpZURhdGE6dlswXSxjbGFzc05hbWU6cn0pKX1mdW5jdGlvbiBwKCl7cmV0dXJuIG18fChtPW5ldyBvLlBlcmNlbnRhZ2VGb3JtYXR0ZXIpLG19fSw2ODQ2NzYoZSx0LGEpeyJ1c2Ugc3RyaWN0IjthLmQodCx7RmluYW5jaWFsc0NoYXJ0OigpPT5sfSk7dmFyIG49YSg3Nzk0NzQpLHI9YSgzNzQwMTcpLGk9YSg4NDc1MjkpLHM9YSgzMzMzMTUpLG89YSg0NDc0MjEpO2Z1bmN0aW9uIGwoZSl7Y29uc3R7c2VsZWN0ZWRTZXQ6dCxzZWxlY3RlZFBlcmlvZElkOmEsZGF0YTpsLGFkYXB0aXZlVG9vbHRpcFBvc2l0aW9uOmQsc2hvcnRlblllYXI6Yyxjb2xvclN0YXJ0SW5kZXg6dSxjb2xvcnM6ZixsaW5lSGlnaGxpZ2h0ZXI6Z309ZSx7c2VyaWVzQXJyYXk6bSxib3R0b21TY2FsZURhdGE6aH09ZnVuY3Rpb24oZSx0LGEsbixyLGkpe2lmKCFuKXJldHVybntzZXJpZXNBcnJheTpbXSxib3R0b21TY2FsZURhdGE6W119O2NvbnN0IG89KDAscy5nZXRDaGFydFNlcmllc0FycmF5KShlLHQsbixyLGkpLGw9TWF0aC5tYXgoLi4uby5tYXAoKGU9PmUudmFsdWVzLmxlbmd0aCkpKSxkPW5ldyBTZXQ7Zm9yKGxldCBlPTA7ZTxsO2UrKylfKGUsbykmJmQuYWRkKGUpO2NvbnN0IGM9by5tYXAoKGU9Pih7Li4uZSx2YWx1ZXM6ZS52YWx1ZXMuZmlsdGVyKCgoZSx0KT0+IWQuaGFzKHQpKSl9KSkpLHU9KDAscy5nZXREYXRhRnJvbVF1b3RlcykoYSx0LG4pLmZpbHRlcigoKGUsdCk9PiFkLmhhcyh0KSkpO3JldHVybntzZXJpZXNBcnJheTpjLGJvdHRvbVNjYWxlRGF0YTp1fX0odCxhLCJmaXNjYWxfcGVyaW9kIixsLHUsZikscD1oLm1hcCgoZT0+KDAsaS5mb3JtYXRQZXJpb2QpKGUse3Nob3J0ZW5ZZWFyOmN9KSkpLHtsZWZ0VmVydGljYWxTY2FsZU9wdGlvbnM6dixyaWdodFZlcnRpY2FsU2NhbGVPcHRpb25zOngsY2hhcnRSZWY6eX09KDAsby51c2VHZXRWZXJ0aWNhbFNjYWxlT3B0aW9ucykobSk7cmV0dXJuIG4uY3JlYXRlRWxlbWVudChyLkRldGFpbHNDaGFydCx7cmVmZXJlbmNlOnksYm90dG9tU2NhbGVOYW1lczpwLHNlcmllc0FycmF5Om0sbWluaTohMCxhZGFwdGl2ZVRvb2x0aXBQb3NpdGlvbjpkLGxlZnRWZXJ0aWNhbFNjYWxlT3B0aW9uczp2LHJpZ2h0VmVydGljYWxTY2FsZU9wdGlvbnM6ey4uLngsbGluZUhpZ2hsaWdodGVyOmd9fSl9ZnVuY3Rpb24gXyhlLHQpe2Zvcihjb25zdCBhIG9mIHQpe2lmKG51bGwhPT1hLnZhbHVlc1tlXSlyZXR1cm4hMX1yZXR1cm4hMH19LDIxNTI1NyhlLHQsYSl7InVzZSBzdHJpY3QiO2EuZCh0LHtmb3JtYXREYXRhOigpPT5jLHByZXBhcmVEZXRhaWxzV2lkZ2V0UHJvcHM6KCk9PmR9KTt2YXIgbj1hKDUyODM5Nikscj1hKDUzNDQ4MCksaT1hKDE1NjgyOSkscz1hKDExMzU2Nyksbz1hKDMzMzMxNSksbD1hKDUwNTA4OSksXz1hKDMwNjgzNyk7ZnVuY3Rpb24gZChlLHQpe2NvbnN0e3NjcmVlbmVyOmEscXVvdGVzOmQsYWdncmVnYXRlZDpjfT10LnZhbHVlcyx1PXt3ZWJzaXRlOmQud2Vic2l0ZSxkb2M6ZC5kb2MsZXhwbG9yZXI6ZC5leHBsb3Jlcixzb3VyY2VzOmQuc291cmNlcyxjb250cmFjdHM6ZC5jb250cmFjdHMsY2F0ZWdvcmllczpkLmNyeXB0b19jb21tb25fY2F0ZWdvcmllcyxjb21tdW5pdHk6ZC5jb21tdW5pdHl9O3UuaGFzQ3J5cHRvTWV0YURhdGE9T2JqZWN0LnZhbHVlcyh1KS5zb21lKEJvb2xlYW4pO2NvbnN0IGY9ZC50eXBlJiZkLnR5cGVzcGVjcyYmKDAsaS5pc0V0ZikoZC50eXBlLGQudHlwZXNwZWNzKSxnPWY/eyIxTSI6YT8uWyJQZXJmLjFNIl0sIjNNIjphPy5bIlBlcmYuM00iXSxZVEQ6YT8uWyJQZXJmLllURCJdLCIxWSI6YT8uWyJQZXJmLlkiXSwiM1kiOmMuZXRmX2RhdGE/LlsiUGVyZi4zWSJdPz92b2lkIDAsIjVZIjpjLmV0Zl9kYXRhPy5bIlBlcmYuNVkiXT8/dm9pZCAwfTp7IjFXIjphPy5bIlBlcmYuVyJdLCIxTSI6YT8uWyJQZXJmLjFNIl0sIjNNIjphPy5bIlBlcmYuM00iXSwiNk0iOmE/LlsiUGVyZi42TSJdLFlURDphPy5bIlBlcmYuWVREIl0sIjFZIjphPy5bIlBlcmYuWSJdfTtyZXR1cm57aGVhZGVyOntsb2dvRGF0YTpkLmxvZ28sc3ltYm9sTmFtZTplLHN5bWJvbFR5cGU6ZC50eXBlLHR5cGVzcGVjczpkLnR5cGVzcGVjcyxsaXN0ZWRFeGNoYW5nZTpkLmxpc3RlZF9leGNoYW5nZSxwcmljZXNjYWxlOmQucHJpY2VzY2FsZSxoYXNZaWVsZEN1cnZlOmMuYm9uZHMmJmMuYm9uZHMubGVuZ3RoPjAmJigwLGkuaXNZaWVsZCkoe3R5cGVzcGVjczpkLnR5cGVzcGVjc30pLGhhc0ZvcndhcmRDdXJ2ZTpjLmZ1dHVyZXMmJmMuZnV0dXJlcy5sZW5ndGg+MCxoYXNDb250cmFjdHM6Yy5mdXR1cmVzJiZjLmZ1dHVyZXMubGVuZ3RoPjAsaGFzRGVyaXZhdGl2ZXM6Qm9vbGVhbihjLmNyeXB0b19kZXJpdmF0aXZlX2RhdGEmJiEwKSwKaGFzRmluYW5jaWFsczohZiYmKDE9PT1kLmZpbmFuY2lhbHNfYXZhaWxhYmlsaXR5fHwxPT09ZC5kaXZpZGVuZHNfYXZhaWxhYmlsaXR5fHwxPT09ZC5lYXJuaW5nc19hdmFpbGFiaWxpdHkpLGhhc1RlY2huaWNhbHM6dm9pZCAwIT09YT8uWyJSZWNvbW1lbmQuQWxsIl0sIm9wdGlvbnMtaW5mbyI6ZFsib3B0aW9ucy1pbmZvIl19LHF1b3Rlczp7Li4uZCxzeW1ib2w6ZX0sc2NyZWVuZXI6YSxhZ2dyZWdhdGVkOnsuLi5jLHN5bWJvbERlc2NyaXB0aW9uOigwLG4uZ2V0VHJhbnNsYXRlZFN5bWJvbERlc2NyaXB0aW9uKShkKSxpbnZhbGlkOiJvayIhPT10LnN0YXR1cyxwZXJmb3JtYW5jZTpnLGNyeXB0b01ldGFEYXRhOnUsY3VycmVuY3k6KDAscy5wcmVwYXJlQ3VycmVuY3lWYWx1ZSkoZCksZmluYW5jaWFsc0RhdGE6KDAsby5nZXRGaW5hbmNpYWxzRGF0YUZyb21RdW90ZXMpKGQpLGluY29tZURhdGE6KDAsci5nZXRJbmNvbWVEYXRhKShkKSxkaXZpZGVuZHNEYXRhOigwLGwuZ2V0RGl2aWRlbmRzRGF0YUZyb21RdW90ZXMpKGQpLHJhdGVzUHRUb1N5bWJvbDpkLnJhdGVzX3B0Py50b19zeW1ib2wsZGV4VHJhZGluZ0FjdGl2aXR5RGF0YTpjLmRleF9jb252ZXJ0ZWRfc3ltYm9sX2RhdGE/KDAsXy5leHRyYWN0RGV4VHJhZGluZ0FjdGl2aXR5RGF0YSkoYy5kZXhfY29udmVydGVkX3N5bWJvbF9kYXRhKTooMCxfLmV4dHJhY3REZXhUcmFkaW5nQWN0aXZpdHlEYXRhKShkKX19fWZ1bmN0aW9uIGMoZSx0KXtyZXR1cm4gbnVsbCE9dD9lLmZvcm1hdCh0KToi4oCUIn19LDYxMzk4NyhlLHQsYSl7InVzZSBzdHJpY3QiO2EuZCh0LHtXaWRnZXRUaXRsZTooKT0+b30pO3ZhciBuPWEoNzc5NDc0KSxyPWEoOTE0NDg3KSxpPWEubihyKSxzPWEoODg4OTApO2Z1bmN0aW9uIG8oZSl7Y29uc3R7Y2hpbGRyZW46dCxjbGFzc05hbWU6YSxvbkNsaWNrOnJ9PWU7cmV0dXJuIG4uY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOmkoKShzLmNvbnRhaW5lcixhKSxvbkNsaWNrOnJ9LHQpfX0sODQ0NDg3KGUsdCxhKXsidXNlIHN0cmljdCI7YS5kKHQse2hhc1JlY2VudEVhcm5pbmdzOigpPT5ufSk7ZnVuY3Rpb24gbihlKXtyZXR1cm4gTWF0aC5mbG9vcihEYXRlLm5vdygpLzFlMyktZTw9MTIwOTYwMH19LDM3Mjc0MChlLHQsYSl7InVzZSBzdHJpY3QiO2EuZCh0LHtOb0RpdmlkZW5kczooKT0+X30pO3ZhciBuPWEoNzc5NDc0KSxyPWEoOTE0NDg3KSxpPWEubihyKSxzPWEoMTg1MjcxKSxvPWEoNjQzOTAzKSxsPWEoMjYwNTEpO2Z1bmN0aW9uIF8oZSl7Y29uc3R7c3ltYm9sOnQsY2xhc3NOYW1lOnJ9PWU7cmV0dXJuIG4uY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOmkoKShsLnRleHQscil9LHMudChudWxsLHtyZXBsYWNlOntzeW1ib2w6KDAsby5zYWZlU2hvcnROYW1lKSh0KX19LGEoMzUwOTcyKSkpfX0sNjc1MjQ4KGUsdCxhKXsidXNlIHN0cmljdCI7YS5kKHQse0ZpbmFuY2lhbHNQYWdlVGFiczooKT0+aX0pO3ZhciBuPWEoNzc5NDc0KSxyPWEoMzczNTc0KTtmdW5jdGlvbiBpKGUpe2NvbnN0e2lkOnQscGVyaW9kczphLHNlbGVjdGVkUGVyaW9kOmksZ2V0SXNEaXNhYmxlZFBlcmlvZDpzLHNldFNlbGVjdGVkUGVyaW9kOm99PWUsbD0oMCxuLnVzZU1lbW8pKCgoKT0+YS5tYXAoKGU9Pih7aWQ6ZS5pZCxsYWJlbDplLnRpdGxlLGRpc2FibGVkOnMoZSl9KSkpKSxbYSxzXSksXz0oMCxuLnVzZUNhbGxiYWNrKSgoZT0+e28mJm8oZS5pZCl9KSxbb10pLGQ9KDAsbi51c2VDYWxsYmFjaykoKGU9PmUuaWQ9PT1pKSxbaV0pO3JldHVybiBuLmNyZWF0ZUVsZW1lbnQoci5TcXVhcmVUYWJzLHtpZDp0LGl0ZW1zOmwsb25BY3RpdmF0ZTpfLGlzQWN0aXZlOmQsc2l6ZToieHNtYWxsIixvdmVyZmxvd0JlaGF2aW91cjoibm9uZSJ9KX19LDg5MDc5NyhlLHQsYSl7InVzZSBzdHJpY3QiO2EuZCh0LHtMZWdlbmQ6KCk9PmN9KTt2YXIgbj1hKDc3OTQ3NCkscj1hKDkxNDQ4NyksaT1hLm4ocikscz1hKDUwNTU2KSxvPWEoNjE2NjQzKSxsPWEoNjAxODQxKSxfPWEoNzAwNTYxKSxkPWEoNDU4MTg0KTtjb25zdCBjPSgwLG4uZm9yd2FyZFJlZikoKGZ1bmN0aW9uKGUsdCl7Y29uc3R7aXRlbXM6YSxjbGFzc05hbWU6cn09ZSxzPSgwLG8udXNlVGhlbWUpKCksbD0oMCxuLnVzZU1lbW8pKCgoKT0+Wy4uLmFdLnNvcnQoKCh7cHJpb3JpdHlWaWV3SW5kZXg6ZX0se3ByaW9yaXR5Vmlld0luZGV4OnR9KT0+dm9pZCAwIT09ZSYmdm9pZCAwIT09dD9lLXQ6MCkpKSxbYV0pO3JldHVybiBuLmNyZWF0ZUVsZW1lbnQoImRpdiIse3JlZjp0LGNsYXNzTmFtZTppKCkoZC5sZWdlbmQscil9LGwubWFwKCgoZSx0KT0+bi5jcmVhdGVFbGVtZW50KCJkaXYiLHtrZXk6dCxjbGFzc05hbWU6aSgpKGQubGFiZWwpfSxuLmNyZWF0ZUVsZW1lbnQoXy5MZWdlbmRDb2xvclN3YXRjaCx7c3R5bGU6eyItLWRldGFpbHMtY2hhcnQtc2VyaWVzLWxlZ2VuZC1jb2xvciI6ZS5jb2xvcj91KGUuY29sb3Iscyk6YHZhcigke2UuY29sb3JQcmVzZXR9KWB9LGNsYXNzTmFtZTpkLnN3YXRjaH0pLG4uY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZTpkLmxhYmVsVGV4dH0sZS5uYW1lKSkpKSl9KSk7ZnVuY3Rpb24gdShlLHQpe3JldHVybigwLGwuaXNTdHJpbmcpKGUpP2U6cy5jb2xvcnNQYWxldHRlW2VbdF1dfX0sNDI4MDQxKGUsdCxhKXsidXNlIHN0cmljdCI7YS5kKHQse1dyYXBXaXRoTGFzdFdvcmQ6KCk9Pml9KTt2YXIgbj1hKDc3OTQ3NCkscj1hKDYxOTQxNik7ZnVuY3Rpb24gaShlKXtjb25zdFt0LGFdPWZ1bmN0aW9uKGUpe2NvbnN0IHQ9ZS5zcGxpdCgiICIpLGE9dC5wb3AoKTtyZXR1cm5bdC5sZW5ndGg/dC5qb2luKCIgIikrIiAiOiIiLGFdfShlLnRleHQpO3JldHVybiBuLmNyZWF0ZUVsZW1lbnQobi5GcmFnbWVudCxudWxsLHQsbi5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOnIubm9XcmFwfSxhLGUuY2hpbGRyZW4pKX19LDkzNTU5NyhlLHQsYSl7InVzZSBzdHJpY3QiO2EuZCh0LHt1c2VDb2xsYXBzZWRUZXh0OigpPT5pfSk7dmFyIG49YSg3Nzk0NzQpLHI9YSg3MTk0MjUpO2Z1bmN0aW9uIGkoZSx0KXtjb25zdFthLGldPSgwLApuLnVzZVN0YXRlKSghMCksW3Msb109KDAsbi51c2VTdGF0ZSkoITEpLGw9KDAsci51c2VSZXNpemVPYnNlcnZlcikoKChbYV0pPT57YS50YXJnZXQuY2xpZW50SGVpZ2h0PD1lKnQmJmkoITApLG8oYS50YXJnZXQuc2Nyb2xsSGVpZ2h0PmEudGFyZ2V0LmNsaWVudEhlaWdodCl9KSk7cmV0dXJue2lzQ29sbGFwc2VkOmEsc2V0SXNDb2xsYXBzZWQ6aSxpc1RleHRPdmVyZmxvdzpzLHRleHRSZWY6bH19fSwzMTA5OShlLHQsYSl7InVzZSBzdHJpY3QiO2EuZCh0LHtFQVJOSU5HU19TRVQ6KCk9PnUsUkVWRU5VRV9TRVQ6KCk9PmZ9KTt2YXIgbixyLGkscz1hKDE4NTI3MSksbz1hKDMzMzMxNSksbD1hKDU1NDY1NCksXz1hKDUzNDQ4MCk7ZnVuY3Rpb24gZChlPW8uUGVyaW9kSWQuUXVhcnRlcil7c3dpdGNoKGUpe2Nhc2Ugby5QZXJpb2RJZC5RdWFydGVyOnJldHVybnthY3R1YWw6ImVhcm5pbmdzX3Blcl9zaGFyZV9mcV9oIixuZXh0OiJlYXJuaW5nc19wZXJfc2hhcmVfZm9yZWNhc3RfbmV4dF9mcSIsZXN0aW1hdGU6ImVhcm5pbmdzX3Blcl9zaGFyZV9mb3JlY2FzdF9mcV9oIn07Y2FzZSBvLlBlcmlvZElkLlllYXI6cmV0dXJue2FjdHVhbDoiZWFybmluZ3NfcGVyX3NoYXJlX2Z5X2giLG5leHQ6ImVhcm5pbmdzX3Blcl9zaGFyZV9mb3JlY2FzdF9uZXh0X2Z5Iixlc3RpbWF0ZToiZWFybmluZ3NfcGVyX3NoYXJlX2ZvcmVjYXN0X2Z5X2gifTtjYXNlIG8uUGVyaW9kSWQuSGFsZlllYXI6cmV0dXJue2FjdHVhbDoiZWFybmluZ3NfcGVyX3NoYXJlX2ZoX2giLG5leHQ6ImVhcm5pbmdzX3Blcl9zaGFyZV9mb3JlY2FzdF9uZXh0X2ZoIixlc3RpbWF0ZToiZWFybmluZ3NfcGVyX3NoYXJlX2ZvcmVjYXN0X2ZoX2gifX19ZnVuY3Rpb24gYyhlPW8uUGVyaW9kSWQuUXVhcnRlcil7c3dpdGNoKGUpe2Nhc2Ugby5QZXJpb2RJZC5RdWFydGVyOnJldHVybnthY3R1YWw6InJldmVudWVfZnFfaCIsbmV4dDoicmV2ZW51ZV9mb3JlY2FzdF9uZXh0X2ZxIixlc3RpbWF0ZToicmV2ZW51ZV9mb3JlY2FzdF9mcV9oIn07Y2FzZSBvLlBlcmlvZElkLlllYXI6cmV0dXJue2FjdHVhbDoicmV2ZW51ZV9meV9oIixuZXh0OiJyZXZlbnVlX2ZvcmVjYXN0X25leHRfZnkiLGVzdGltYXRlOiJyZXZlbnVlX2ZvcmVjYXN0X2Z5X2gifTtjYXNlIG8uUGVyaW9kSWQuSGFsZlllYXI6cmV0dXJue2FjdHVhbDoicmV2ZW51ZV9maF9oIixuZXh0OiJyZXZlbnVlX2ZvcmVjYXN0X25leHRfZmgiLGVzdGltYXRlOiJyZXZlbnVlX2ZvcmVjYXN0X2ZoX2gifX19IWZ1bmN0aW9uKGUpe2UuRWFybmluZ3NSZWxlYXNlRGF0ZXNGcT0iZWFybmluZ3NfcmVsZWFzZV9kYXRlX2ZxX2giLGUuRWFybmluZ3NSZWxlYXNlRGF0ZXNGeT0iZWFybmluZ3NfcmVsZWFzZV9kYXRlX2Z5X2giLGUuRWFybmluZ3NSZWxlYXNlRGF0ZXNGaD0iZWFybmluZ3NfcmVsZWFzZV9kYXRlX2ZoX2giLGUuRWFybmluZ3NSZWxlYXNlTmV4dERhdGU9ImVhcm5pbmdzX3JlbGVhc2VfbmV4dF9kYXRlIixlLkVhcm5pbmdzUmVsZWFzZU5leHREYXRlRnE9ImVhcm5pbmdzX3JlbGVhc2VfbmV4dF9kYXRlX2ZxIixlLkVhcm5pbmdzUmVsZWFzZU5leHREYXRlRnk9ImVhcm5pbmdzX3JlbGVhc2VfbmV4dF9kYXRlX2Z5IixlLkVhcm5pbmdzUmVsZWFzZU5leHREYXRlRmg9ImVhcm5pbmdzX3JlbGVhc2VfbmV4dF9kYXRlX2ZoIixlLkVhcm5pbmdzUmVsZWFzZU5leHRUaW1lPSJlYXJuaW5nc19yZWxlYXNlX25leHRfdGltZSIsZS5Jc05leHRFYXJuaW5nc1JlbGVhc2VEYXRlRXN0aW1hdGVkPSJpc19uZXh0X2Vhcm5pbmdzX3JlbGVhc2VfZGF0ZV9lc3RpbWF0ZWQiLGUuRWFybmluZ3NQZXJTaGFyZUZvcmVjYXN0TmV4dEZxPSJlYXJuaW5nc19wZXJfc2hhcmVfZm9yZWNhc3RfbmV4dF9mcSIsZS5FYXJuaW5nc1BlclNoYXJlRm9yZWNhc3ROZXh0Rnk9ImVhcm5pbmdzX3Blcl9zaGFyZV9mb3JlY2FzdF9uZXh0X2Z5IixlLkVhcm5pbmdzUGVyU2hhcmVGb3JlY2FzdE5leHRGaD0iZWFybmluZ3NfcGVyX3NoYXJlX2ZvcmVjYXN0X25leHRfZmgiLGUuRWFybmluZ3NQZXJTaGFyZUZvcmVjYXN0RnE9ImVhcm5pbmdzX3Blcl9zaGFyZV9mb3JlY2FzdF9mcV9oIixlLkVhcm5pbmdzUGVyU2hhcmVGb3JlY2FzdEZ5PSJlYXJuaW5nc19wZXJfc2hhcmVfZm9yZWNhc3RfZnlfaCIsZS5FYXJuaW5nc1BlclNoYXJlRm9yZWNhc3RGaD0iZWFybmluZ3NfcGVyX3NoYXJlX2ZvcmVjYXN0X2ZoX2giLGUuRWFybmluZ3NQZXJTaGFyZUZxPSJlYXJuaW5nc19wZXJfc2hhcmVfZnFfaCIsZS5FYXJuaW5nc1BlclNoYXJlRnk9ImVhcm5pbmdzX3Blcl9zaGFyZV9meV9oIixlLkVhcm5pbmdzUGVyU2hhcmVGaD0iZWFybmluZ3NfcGVyX3NoYXJlX2ZoX2giLGUuRWFybmluZ3NGaXNjYWxQZXJpb2RGcT0iZWFybmluZ3NfZmlzY2FsX3BlcmlvZF9mcV9oIixlLkVhcm5pbmdzRmlzY2FsUGVyaW9kRnk9ImVhcm5pbmdzX2Zpc2NhbF9wZXJpb2RfZnlfaCIsZS5FYXJuaW5nc0Zpc2NhbFBlcmlvZEZoPSJlYXJuaW5nc19maXNjYWxfcGVyaW9kX2ZoX2giLGUuTmV4dEVhcm5pbmdzRmlzY2FsUGVyaW9kRnE9Im5leHRfZWFybmluZ3NfZmlzY2FsX3BlcmlvZF9mcSIsZS5OZXh0RWFybmluZ3NGaXNjYWxQZXJpb2RGeT0ibmV4dF9lYXJuaW5nc19maXNjYWxfcGVyaW9kX2Z5IixlLk5leHRFYXJuaW5nc0Zpc2NhbFBlcmlvZEZoPSJuZXh0X2Vhcm5pbmdzX2Zpc2NhbF9wZXJpb2RfZmgiLGUuUmV2ZW51ZUZxPSJyZXZlbnVlX2ZxX2giLGUuUmV2ZW51ZUZ5PSJyZXZlbnVlX2Z5X2giLGUuUmV2ZW51ZUZoPSJyZXZlbnVlX2ZoX2giLGUuUmV2ZW51ZUZvcmVjYXN0RnE9InJldmVudWVfZm9yZWNhc3RfZnFfaCIsZS5SZXZlbnVlRm9yZWNhc3RGeT0icmV2ZW51ZV9mb3JlY2FzdF9meV9oIixlLlJldmVudWVGb3JlY2FzdEZoPSJyZXZlbnVlX2ZvcmVjYXN0X2ZoX2giLGUuUmV2ZW51ZUZvcmVjYXN0TmV4dEZxPSJyZXZlbnVlX2ZvcmVjYXN0X25leHRfZnEiLGUuUmV2ZW51ZUZvcmVjYXN0TmV4dEZ5PSJyZXZlbnVlX2ZvcmVjYXN0X25leHRfZnkiLGUuUmV2ZW51ZUZvcmVjYXN0TmV4dEZoPSJyZXZlbnVlX2ZvcmVjYXN0X25leHRfZmgiLAplLkVhcm5pbmdzUmVsZWFzZU5leHRDYWxlbmRhckRhdGU9ImVhcm5pbmdzX3JlbGVhc2VfbmV4dF9jYWxlbmRhcl9kYXRlIixlLkZ1bmRhbWVudGFsQ3VycmVuY3lDb2RlPSJmdW5kYW1lbnRhbF9jdXJyZW5jeV9jb2RlIn0obnx8KG49e30pKSxmdW5jdGlvbihlKXtlLkVhcm5pbmdzPSJlYXJuaW5ncyIsZS5SZXZlbnVlPSJyZXZlbnVlIn0ocnx8KHI9e30pKSxmdW5jdGlvbihlKXtlLkFjdHVhbD0iYWN0dWFsIixlLk5leHQ9Im5leHQiLGUuRXN0aW1hdGU9ImVzdGltYXRlIn0oaXx8KGk9e30pKTtjb25zdCB1PWU9Pih7aWQ6ImVhcm5pbmdzIix0aXRsZTpzLnQobnVsbCx2b2lkIDAsYSg0NjM0MDUpKSxnZXRGaWVsZHM6ZCxzaG93TmV4dERhdGU6IWUsc2hvd0Vhcm5pbmdzQ291bnRkb3duOmUsc29sdXRpb25JZDpsLnNvbHV0aW9uSWRzLkZJTkFOQ0lBTFNfRUFSTklOR1NfRVNUSU1BVEVTLGdldEF2YWlsYWJsZVBlcmlvZHNNYXA6Xy5nZXRIYXNFbm91Z2hFYXJuaW5nc0RhdGFCeVBlcmlvZE1hcH0pLGY9KCk9Pih7aWQ6InJldmVudWUiLHRpdGxlOnMudChudWxsLHZvaWQgMCxhKDU2ODA5MSkpLGdldEZpZWxkczpjLHNob3dOZXh0RGF0ZTohMSxzb2x1dGlvbklkOmwuc29sdXRpb25JZHMuRklOQU5DSUFMU19SRVZFTlVFX0VTVElNQVRFUyxnZXRBdmFpbGFibGVQZXJpb2RzTWFwOl8uZ2V0SGFzRW5vdWdoUmV2ZW51ZURhdGFCeVBlcmlvZE1hcH0pfSwzMDI4MTQoZSx0LGEpeyJ1c2Ugc3RyaWN0IjthLmQodCx7SW5jb21lVGltZUljb246KCk9PmN9KTt2YXIgbj1hKDc3OTQ3NCkscj1hKDkxNDQ4NyksaT1hLm4ocikscz1hKDI3MzMxMCksbz1hKDE4NTI3MSksbD1hKDQwNDYwOSksXz1hKDY4MTU1NCksZD1hKDUwMDU3Myk7ZnVuY3Rpb24gYyhlKXtjb25zdHtlYXJuaW5nc1RpbWU6dCxjbGFzc05hbWU6cn09ZTtyZXR1cm4tMT09PXQ/bi5jcmVhdGVFbGVtZW50KHMuSWNvbix7Y2xhc3NOYW1lOmkoKShkLmljb24sImFwcGx5LWNvbW1vbi10b29sdGlwIixkLnByZU1hcmtldCxyKSx0aXRsZTpvLnQobnVsbCx2b2lkIDAsYSg2NjM4NjYpKSxpY29uOmx9KToxPT09dD9uLmNyZWF0ZUVsZW1lbnQocy5JY29uLHtjbGFzc05hbWU6aSgpKGQuaWNvbiwiYXBwbHktY29tbW9uLXRvb2x0aXAiLGQucG9zdE1hcmtldCxyKSx0aXRsZTpvLnQobnVsbCx2b2lkIDAsYSg3MDU5ODIpKSxpY29uOl99KTpudWxsfX0sNDYwNTc3KGUsdCxhKXsidXNlIHN0cmljdCI7YS5kKHQse0luY29tZTooKT0+T30pO3ZhciBuPWEoNzc5NDc0KSxyPWEoNjAxODQxKSxpPWEoMTM4NjM4KSxzPWEoMTg1MjcxKSxvPWEoOTE0NDg3KSxsPWEubihvKSxfPWEoMjczMzEwKSxkPWEoMzAyODE0KSxjPWEoNjc1MjQ4KSx1PWEoNzg3NjIpLGY9YSg0MjgwNDEpLGc9YSg3OTk5OTQpLG09YSg3NTU2MjcpLGg9YSgxNzUzOTUpLHA9YSg0MDIzOSksdj1hKDI3ODI2MykseD1hKDg5MzExNSk7Y29uc3QgeT0iLSI7ZnVuY3Rpb24gRChlKXtsZXQgdDtpZihlLmRhdGUpe2lmKChlLmRhdGUtRGF0ZS5ub3coKSkvNmU0PDEpdD1zLnQobnVsbCx2b2lkIDAsYSgyOTExNzYpKTtlbHNle2NvbnN0IG49ZnVuY3Rpb24oZSx0KXtjb25zdFtuLHJdPWZ1bmN0aW9uKGUsdCl7Y29uc3QgYT1NYXRoLmFicyh0LWUpLG49TWF0aC5mbG9vcihhLzFlMyk7aWYobjw5MClyZXR1cm5bMSwwXTtpZihuPDI3MDApe3JldHVybltNYXRoLm1heChNYXRoLmZsb29yKG4vNjApLDIpLDBdfWlmKG48NTQwMClyZXR1cm5bMSwxXTtpZihuPDg2NDAwKXtyZXR1cm5bTWF0aC5tYXgoTWF0aC5mbG9vcihuLzYwLzYwKSwyKSwxXX1pZihuPDIxNmU0KXtyZXR1cm5bKDAscC5nZXRDYWxlbmRhckRheXNEaWZmKShuZXcgRGF0ZSh0KSxuZXcgRGF0ZShlKSksMl19aWYobjwzODg4ZTMpcmV0dXJuWzEsM107aWYobjwyOTgwOGUzKXtyZXR1cm5bTWF0aC5tYXgoTWF0aC5mbG9vcihuLzI1OTJlMyksMiksM119aWYobjw0NzA4OGUzKXJldHVyblsxLDRdO3JldHVybltNYXRoLm1heChNYXRoLmZsb29yKG4vMzE1MzZlMyksMiksNF19KGUsdCk7cmV0dXJuIGZ1bmN0aW9uKGUsdCl7c3dpdGNoKGUpe2Nhc2UgMDpyZXR1cm4gcy50KG51bGwse3BsdXJhbDoiJWQgbWludXRlcyIsY291bnQ6dH0sYSg2NTY0MzQpKS5yZXBsYWNlKCIlZCIsU3RyaW5nKHQpKTtjYXNlIDE6cmV0dXJuIHMudChudWxsLHtwbHVyYWw6IiVkIGhvdXJzIixjb3VudDp0fSxhKDEzMTE5MikpLnJlcGxhY2UoIiVkIixTdHJpbmcodCkpO2Nhc2UgMjpyZXR1cm4gcy50KG51bGwse3BsdXJhbDoiJWQgZGF5cyIsY291bnQ6dH0sYSg1NTAyNikpLnJlcGxhY2UoIiVkIixTdHJpbmcodCkpO2Nhc2UgMzpyZXR1cm4gcy50KG51bGwse3BsdXJhbDoiJWQgbW9udGhzIixjb3VudDp0fSxhKDQ3OTEyMSkpLnJlcGxhY2UoIiVkIixTdHJpbmcodCkpO2Nhc2UgNDpyZXR1cm4gcy50KG51bGwse3BsdXJhbDoiJWQgeWVhcnMiLGNvdW50OnR9LGEoNzg5MjEyKSkucmVwbGFjZSgiJWQiLFN0cmluZyh0KSk7ZGVmYXVsdDpyZXR1cm4iIn19KHIsbil9KERhdGUubm93KCksZS5kYXRlKTt0PXMudChudWxsLHtyZXBsYWNlOntudW1iZXI6KDAsaC5jYXBpdGFsaXplRmlyc3RMZXR0ZXIpKG4pfX0sYSg2ODQ5OTEpKX19cmV0dXJuYDxkaXY+PHN0cm9uZz4ke3R9PC9zdHJvbmc+JHtmdW5jdGlvbihlKXtjb25zdCB0PW5ldyBtLlByaWNlRm9ybWF0dGVyKHtwcmljZVNjYWxlOjEwMCxtaW5Nb3ZlOjF9KSxuPSgwLHguZ2V0TG9jYWxlSXNvKSgpLHI9W3tuYW1lOnMudChudWxsLHZvaWQgMCxhKDUwNzcyOSkpLHZhbHVlOmUuZGF0ZT9OKGUuZGF0ZSk6eX1dO2UucGVyaW9kJiZyLnB1c2goe25hbWU6cy50KG51bGwsdm9pZCAwLGEoMTU2ODc0KSksdmFsdWU6ZS5wZXJpb2Q/KDAsdi5mb3JtYXRUaW1lKShlLnBlcmlvZCxuLCJ5ZWFyIiwibW9udGgiKTp5fSk7ZS5lc3RpbWF0ZSYmci5wdXNoKHtuYW1lOnMudChudWxsLHZvaWQgMCxhKDc2NDg2MikpLHZhbHVlOmUuZXN0aW1hdGU/dC5mb3JtYXQoZS5lc3RpbWF0ZSk6eX0pO3JldHVybiByfSh7ZGF0ZTplLmRhdGUscGVyaW9kOmUucGVyaW9kLGVzdGltYXRlOmUuZXN0aW1hdGUKfSkubWFwKChlPT5gPGJyPiR7ZS5uYW1lfTogJHtlLnZhbHVlfWApKX08L2Rpdj5gfWZ1bmN0aW9uIE4oZSl7Y29uc3QgdD0oMCx4LmdldExvY2FsZUlzbykoKTtyZXR1cm4oMCx2LmZvcm1hdFRpbWUpKGUsdCwieWVhciIsImRheSIpfXZhciBFOyFmdW5jdGlvbihlKXtlW2UuTWludXRlPTBdPSJNaW51dGUiLGVbZS5Ib3VyPTFdPSJIb3VyIixlW2UuRGF5PTJdPSJEYXkiLGVbZS5Nb250aD0zXT0iTW9udGgiLGVbZS5ZZWFyPTRdPSJZZWFyIn0oRXx8KEU9e30pKTt2YXIgUD1hKDU5MDQ4NiksUz1hKDIzNDYzNiksST1hKDI2NDU5KTtmdW5jdGlvbiB3KGUpe2NvbnN0e2Vhcm5pbmdzUmVsZWFzZU5leHREYXRlOnQsZWFybmluZ3NQZXJTaGFyZUZvcmVjYXN0TmV4dEZxOmEsZWFybmluZ3NSZWxlYXNlTmV4dENhbGVuZGFyRGF0ZTpyLGNsYXNzTmFtZTppfT1lLHM9dm9pZCAwIT09dD8oMCxwLmdldENhbGVuZGFyRGF5c0RpZmYpKG5ldyBEYXRlKDFlMyp0KSxuZXcgRGF0ZSk6bnVsbDtyZXR1cm4gbnVsbD09PXN8fHM8MD9udWxsOm4uY3JlYXRlRWxlbWVudChQLkJhZGdlLHtzaXplOlMuQmFkZ2VTaXplLkxhcmdlLGNsYXNzTmFtZTpsKCkoImFwcGx5LWNvbW1vbi10b29sdGlwIGNvbW1vbi10b29sdGlwLWh0bWwiLEkuZGF5c0NvdW50ZXIsczw9NyYmSS5kYXlzQ291bnRlclNvb24saSksdGl0bGU6RCh7ZGF0ZTp0JiYxZTMqdCxwZXJpb2Q6ciYmMWUzKnIsZXN0aW1hdGU6YX0pfSxzKX12YXIgYj1hKDM1Mjk1MSk7ZnVuY3Rpb24gRihlKXtjb25zdHtuZXh0RGF0ZUxhYmVsOnQsaXNSZWxlYXNlRGF0ZVRvZGF5OnIsaXNFYXJuaW5nc0RhdGVFc3RpbWF0ZWQ6aSxpc0Vhcm5pbmdzSGFwcGVuZWQ6byxlYXJuaW5nc1RpbWU6bSxsaW5rOmgsdGl0bGU6cCxzaG93TmV4dERhdGU6dixzZWxlY3RlZFBlcmlvZDp4LHNldFNlbGVjdGVkUGVyaW9kOnksaGFzUGVyaW9kc1N3aXRjaGVyOkQsaXNEaXNhYmxlZFBlcmlvZDpOLGxpbmtDb21wb25lbnQ6RSxvblRpdGxlQ2xpY2s6UCxyZXBvcnRGcmVxdWVuY3k6Uyxzb2x1dGlvbklkOkYsc2hvd0Vhcm5pbmdzQ291bnRkb3duOlIsZGF5c0NvdW50ZXJPcHRpb25zOlR9PWUsQz0haSYmcixxPXZvaWQgMCE9PUV8fHZvaWQgMCE9PVAsTT1uLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpsKCkoSS50aXRsZSxxJiZJLmxpbmssRiYmSS53aXRoU29sdXRpb24pLG9uQ2xpY2s6UH0scT9uLmNyZWF0ZUVsZW1lbnQoZi5XcmFwV2l0aExhc3RXb3JkLHt0ZXh0OnB9LG4uY3JlYXRlRWxlbWVudChfLkljb24se2ljb246YixjbGFzc05hbWU6SS5pY29ufSkpOm4uY3JlYXRlRWxlbWVudChuLkZyYWdtZW50LG51bGwscCkpO3JldHVybiBuLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpJLndyYXB9LG4uY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOkkuY29udGFpbmVyfSxoJiZFP24uY3JlYXRlRWxlbWVudChFLHtocmVmOmh9LE0pOk0sRiYmbi5jcmVhdGVFbGVtZW50KGcuSGludEJ1dHRvbix7dGl0bGU6cy50KG51bGwsdm9pZCAwLGEoOTY5NDU2KSksY2xhc3NOYW1lOmwoKShJLmljb24sSS5zb2x1dGlvbiksc29sdXRpb25JZDpGfSksIVImJnYmJiFvJiZuLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpsKCkoSS51cGNvbWluZ0Vhcm5pbmdzLCFEJiZJLmFsaWduUmlnaHQpfSxuLmNyZWF0ZUVsZW1lbnQoInNwYW4iLG51bGwscy50KG51bGwse2NvbnRleHQ6ImZpbmFuY2lhbHMifSxhKDE3MjAxMykpLCI6Iiksbi5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOmwoKShJLnVwY29taW5nRGF0ZSxyJiZJLnVwY29taW5nRGF0ZVRvZGF5KX0scj9zLnQobnVsbCx2b2lkIDAsYSg2MTQ0NTApKTp0KSxDJiZuLmNyZWF0ZUVsZW1lbnQoZC5JbmNvbWVUaW1lSWNvbix7ZWFybmluZ3NUaW1lOm19KSksUiYmbi5jcmVhdGVFbGVtZW50KHcsey4uLlQsY2xhc3NOYW1lOkkuZGF5c0NvdW50ZXJ9KSksRCYmbi5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6SS50YWJzfSxuLmNyZWF0ZUVsZW1lbnQoYy5GaW5hbmNpYWxzUGFnZVRhYnMse2lkOiJkZXRhaWxzLWluY29tZS1oZWFkZXItdGFicyIscGVyaW9kczooMCx1LlBFUklPRFMpKFMpLHNlbGVjdGVkUGVyaW9kOngsc2V0U2VsZWN0ZWRQZXJpb2Q6eSxnZXRJc0Rpc2FibGVkUGVyaW9kOk59KSkpfXZhciBSPWEoMzc0MDE3KSxUPWEoNTA1NTYpO2NvbnN0IEM9e2FjdHVhbFBvc2l0aXZlOlQuY29sb3JzUGFsZXR0ZVsiY29sb3ItbWludHktZ3JlZW4tYTYwMCJdLGFjdHVhbE5lZ2F0aXZlOlQuY29sb3JzUGFsZXR0ZVsiY29sb3ItcmlwZS1yZWQtNDAwIl0sYWN0dWFsU29sbzpULmNvbG9yc1BhbGV0dGVbImNvbG9yLXR2LWJsdWUtNTAwIl0sdG9vbHRpcDpULmNvbG9yc1BhbGV0dGVbImNvbG9yLWNvbGQtZ3JheS0yMDAiXX07dmFyIHE9YSg5NjAwMDYpLE09YSg4NDc1MjkpLEw9YSg2MTM5ODcpLFk9YSg1MzQ0ODApLEE9YSgzMzMzMTUpLGs9YSg5OTg1MTcpO3ZhciBHO2Z1bmN0aW9uIE8oZSl7Y29uc3R7Y2xhc3NOYW1lOnQsdGl0bGVDbGFzc05hbWU6byxkYXRhOmwsYWRhcHRpdmVUb29sdGlwUG9zaXRpb246Xz0hMSxzZWxlY3RlZFNldDpkLHJpZ2h0VmVydGljYWxTY2FsZU9wdGlvbnM6Yz17dmlzaWJsZTohMCx2YWx1ZVR5cGU6Im51bWJlcnMifSxoYXNQZXJpb2RzU3dpdGNoZXI6Zixpbml0aWFsUGVyaW9kOmcsbGluazptLGxpbmtDb21wb25lbnQ6aCxvblRpdGxlQ2xpY2s6cCxyZXBvcnRGcmVxdWVuY3k6dj1BLlBlcmlvZElkLlF1YXJ0ZXIsc2hvd1NvbHV0aW9uOnksc2F2ZVBlcmlvZDpELEVtcHR5U3RhdGU6RX09ZSxbUCxTXT0oMCxuLnVzZVN0YXRlKShnPz8oMCwKdS5ERUZBVUxUX1BFUklPRCkodikpLHtlYXJuaW5nc1JlbGVhc2VEYXRlczpJLGVhcm5pbmdzRmlzY2FsUGVyaW9kOncsZWFybmluZ3NSZWxlYXNlTmV4dERhdGU6YixlYXJuaW5nc1JlbGVhc2VOZXh0VGltZTpULGlzTmV4dEVhcm5pbmdzUmVsZWFzZURhdGVFc3RpbWF0ZWQ6TyxuZXh0RWFybmluZ3NGaXNjYWxQZXJpb2Q6VixoVmFsdWVzOkgsZm9yZWNhc3ROZXh0OkIsZm9yZWNhc3Q6en09ZnVuY3Rpb24oZSx0LGE9QS5QZXJpb2RJZC5RdWFydGVyKXtpZighdClyZXR1cm57ZWFybmluZ3NSZWxlYXNlRGF0ZXM6dm9pZCAwLGVhcm5pbmdzRmlzY2FsUGVyaW9kOltdLGVhcm5pbmdzUmVsZWFzZU5leHREYXRlOnZvaWQgMCxlYXJuaW5nc1JlbGVhc2VOZXh0VGltZTp2b2lkIDAsaXNOZXh0RWFybmluZ3NSZWxlYXNlRGF0ZUVzdGltYXRlZDp2b2lkIDAsbmV4dEVhcm5pbmdzRmlzY2FsUGVyaW9kOnZvaWQgMCxmb3JlY2FzdE5leHQ6dm9pZCAwLGZvcmVjYXN0OltdLGhWYWx1ZXM6W119O2NvbnN0e2FjdHVhbDpuLG5leHQ6cixlc3RpbWF0ZTppfT1lLmdldEZpZWxkcyhhKSx7ZWFybmluZ3NSZWxlYXNlRGF0ZXM6cyxlYXJuaW5nc0Zpc2NhbFBlcmlvZDpvLGVhcm5pbmdzUmVsZWFzZU5leHREYXRlOmwsbmV4dEVhcm5pbmdzRmlzY2FsUGVyaW9kOl8sZWFybmluZ3NSZWxlYXNlTmV4dFRpbWU6ZCxpc05leHRFYXJuaW5nc1JlbGVhc2VEYXRlRXN0aW1hdGVkOmN9PWZ1bmN0aW9uKGUsdCl7c3dpdGNoKHQpe2Nhc2UgQS5QZXJpb2RJZC5ZZWFyOnJldHVybntlYXJuaW5nc1JlbGVhc2VEYXRlczplLmVhcm5pbmdzX3JlbGVhc2VfZGF0ZV9meV9oLGVhcm5pbmdzRmlzY2FsUGVyaW9kOmUuZWFybmluZ3NfZmlzY2FsX3BlcmlvZF9meV9oPz9bXSxlYXJuaW5nc1JlbGVhc2VOZXh0RGF0ZTplLmVhcm5pbmdzX3JlbGVhc2VfbmV4dF9kYXRlX2Z5LGVhcm5pbmdzUmVsZWFzZU5leHRUaW1lOmUuZWFybmluZ3NfcmVsZWFzZV9uZXh0X3RpbWUsaXNOZXh0RWFybmluZ3NSZWxlYXNlRGF0ZUVzdGltYXRlZDplLmlzX25leHRfZWFybmluZ3NfcmVsZWFzZV9kYXRlX2VzdGltYXRlZCxuZXh0RWFybmluZ3NGaXNjYWxQZXJpb2Q6ZS5uZXh0X2Vhcm5pbmdzX2Zpc2NhbF9wZXJpb2RfZnl9O2Nhc2UgQS5QZXJpb2RJZC5RdWFydGVyOnJldHVybntlYXJuaW5nc1JlbGVhc2VEYXRlczplLmVhcm5pbmdzX3JlbGVhc2VfZGF0ZV9mcV9oLGVhcm5pbmdzRmlzY2FsUGVyaW9kOmUuZWFybmluZ3NfZmlzY2FsX3BlcmlvZF9mcV9oPz9bXSxlYXJuaW5nc1JlbGVhc2VOZXh0RGF0ZTplLmVhcm5pbmdzX3JlbGVhc2VfbmV4dF9kYXRlX2ZxLGVhcm5pbmdzUmVsZWFzZU5leHRUaW1lOmUuZWFybmluZ3NfcmVsZWFzZV9uZXh0X3RpbWUsaXNOZXh0RWFybmluZ3NSZWxlYXNlRGF0ZUVzdGltYXRlZDplLmlzX25leHRfZWFybmluZ3NfcmVsZWFzZV9kYXRlX2VzdGltYXRlZCxuZXh0RWFybmluZ3NGaXNjYWxQZXJpb2Q6ZS5uZXh0X2Vhcm5pbmdzX2Zpc2NhbF9wZXJpb2RfZnF9O2Nhc2UgQS5QZXJpb2RJZC5IYWxmWWVhcjpyZXR1cm57ZWFybmluZ3NSZWxlYXNlRGF0ZXM6ZS5lYXJuaW5nc19yZWxlYXNlX2RhdGVfZmhfaCxlYXJuaW5nc0Zpc2NhbFBlcmlvZDplLmVhcm5pbmdzX2Zpc2NhbF9wZXJpb2RfZmhfaD8/W10sZWFybmluZ3NSZWxlYXNlTmV4dERhdGU6ZS5lYXJuaW5nc19yZWxlYXNlX25leHRfZGF0ZV9maCxlYXJuaW5nc1JlbGVhc2VOZXh0VGltZTplLmVhcm5pbmdzX3JlbGVhc2VfbmV4dF90aW1lLGlzTmV4dEVhcm5pbmdzUmVsZWFzZURhdGVFc3RpbWF0ZWQ6ZS5pc19uZXh0X2Vhcm5pbmdzX3JlbGVhc2VfZGF0ZV9lc3RpbWF0ZWQsbmV4dEVhcm5pbmdzRmlzY2FsUGVyaW9kOmUubmV4dF9lYXJuaW5nc19maXNjYWxfcGVyaW9kX2ZofX19KHQsYSksdT10W25dfHxbXSxmPXRbcl0sZz10W2ldfHxbXTtyZXR1cm57ZWFybmluZ3NSZWxlYXNlRGF0ZXM6cyxlYXJuaW5nc0Zpc2NhbFBlcmlvZDpvLGVhcm5pbmdzUmVsZWFzZU5leHREYXRlOmwsZWFybmluZ3NSZWxlYXNlTmV4dFRpbWU6ZCxpc05leHRFYXJuaW5nc1JlbGVhc2VEYXRlRXN0aW1hdGVkOmMsbmV4dEVhcm5pbmdzRmlzY2FsUGVyaW9kOl8saFZhbHVlczp1LGZvcmVjYXN0TmV4dDpmLGZvcmVjYXN0Omd9fShkLGwsUCkse3Nob3dOZXh0RGF0ZTpRLHNob3dFYXJuaW5nc0NvdW50ZG93bjpXfT1kLFU9ZT0+MD09PWUubGVuZ3RofHxlLmV2ZXJ5KChlPT5udWxsPT09ZSkpLFg9dm9pZCAwIT09VixqPWU9Pntjb25zdCB0PXcubGVuZ3RoPj01PzQ6dy5sZW5ndGg7cmV0dXJuIGUuc2xpY2UoMCx0KS5yZXZlcnNlKCl9LCQ9aih3KSxaPWooKDAsaS5lbnN1cmVEZWZpbmVkKShIKSksSz1qKCgwLGkuZW5zdXJlRGVmaW5lZCkoeikpLEo9JC5tYXAoKGU9PigwLE0uZm9ybWF0UGVyaW9kKShlKSkpO1gmJkoucHVzaCgoMCxNLmZvcm1hdFBlcmlvZCkoKDAsaS5lbnN1cmVEZWZpbmVkKShWKSkpO2NvbnN0IGVlPWZ1bmN0aW9uKCl7Y29uc3R7ZXN0aW1hdGU6ZSxhY3R1YWxQb3NpdGl2ZTp0LGFjdHVhbE5lZ2F0aXZlOm4sYWN0dWFsU29sbzppfT1mdW5jdGlvbigpe2NvbnN0IGU9W10sdD1bXSxhPVtdLG49W10saT0oe3Bvc2l0aXZlOmUsbmVnYXRpdmU6cixzb2xvOml9KT0+e3QucHVzaChlKSxhLnB1c2gociksbi5wdXNoKGkpfTskLmZvckVhY2goKCh0LGEpPT57Y29uc3Qgbj0oMCxyLmlzTnVtYmVyKShaW2FdKT9aW2FdOm51bGwscz0oMCxyLmlzTnVtYmVyKShLW2FdKT9LW2FdOm51bGw7ZS5wdXNoKHMpLGkobnVsbCE9PW4/bnVsbCE9PXM/bj49cz97cG9zaXRpdmU6bixuZWdhdGl2ZTpudWxsLHNvbG86bnVsbH06e3Bvc2l0aXZlOm51bGwsbmVnYXRpdmU6bixzb2xvOm51bGx9Ontwb3NpdGl2ZTpudWxsLG5lZ2F0aXZlOm51bGwsc29sbzpufTp7cG9zaXRpdmU6bnVsbCxuZWdhdGl2ZTpudWxsLHNvbG86bnVsbH0pfSkpLFgmJihlLnB1c2goKDAsci5pc051bWJlcikoQik/QjpudWxsKSxpKHtwb3NpdGl2ZTpudWxsLG5lZ2F0aXZlOm51bGwsc29sbzpudWxsfSkpO3JldHVybntlc3RpbWF0ZTplLGFjdHVhbFBvc2l0aXZlOnQsYWN0dWFsTmVnYXRpdmU6YSxhY3R1YWxTb2xvOm59Cn0oKSxvPSFVKEspLF89IVUoWik7cmV0dXJuW3tpZDpHLlN1cnByaXNlLHR5cGU6ImhpZGRlbiIsZmllbGROYW1lOiJTdXJwcmlzZSIsbGVnZW5kSW5kZXg6LTEsc2hvd0luTGVnZW5kOiExLHZhbHVlczpbXSxidWlsZFRvb2x0aXA6ZnVuY3Rpb24ocixvLF8pe2NvbnN0IGQ9dFtfXXx8bltfXSxjPWVbX107aWYobnVsbD09PWN8fG51bGw9PT1kfHxudWxsIT09aVtfXSlyZXR1cm4gbnVsbDtyZXR1cm4gZnVuY3Rpb24oZSx0LG4pe2NvbnN0IHI9ZS10LFtpLG9dPSgwLFkuZm9ybWF0U3VycHJpc2UpKHIsdCk7cmV0dXJuW3t0aXRsZTpzLnQobnVsbCx2b2lkIDAsYSgyNjk5NTUpKSxjb2xvcjpyPj0wP0MuYWN0dWFsUG9zaXRpdmU6Qy5hY3R1YWxOZWdhdGl2ZSx2YWx1ZTppLG1vZGU6ImNvbG9yZWQtdGV4dCIsdW5pdDpuLGVuZFNsb3Q6b31dfShkLGMsbD8uZnVuZGFtZW50YWxfY3VycmVuY3lfY29kZSl9fSx7aWQ6Ry5Fc3RpbWF0ZSxmaWVsZE5hbWU6cy50KG51bGwsdm9pZCAwLGEoNzY0ODYyKSksbGVnZW5kSW5kZXg6MCxzaG93SW5MZWdlbmQ6IVUoZSksdmFsdWVzOmUsbGVnZW5kQ2xhc3NOYW1lOmsuZXN0aW1hdGUsZ2V0SXRlbUNsYXNzTmFtZTooKT0+ay5lc3RpbWF0ZX0se2lkOkcuQWN0dWFsUG9zaXRpdmUsZmllbGROYW1lOnMudChudWxsLHZvaWQgMCxhKDEzNjkwOSkpLGRlZmF1bHRDb2xvcjpDLmFjdHVhbFBvc2l0aXZlLGxlZ2VuZEluZGV4OjEsc2hvd0luTGVnZW5kOl8mJm8sdmFsdWVzOnR9LHtpZDpHLkFjdHVhbE5lZ2F0aXZlLGZpZWxkTmFtZToiQWN0dWFsIixkZWZhdWx0Q29sb3I6Qy5hY3R1YWxOZWdhdGl2ZSxsZWdlbmRJbmRleDoxLHNob3dJbkxlZ2VuZDohMSx2YWx1ZXM6bn0se2lkOkcuQWN0dWFsU29sbyxmaWVsZE5hbWU6IkFjdHVhbCIsZGVmYXVsdENvbG9yOkMuYWN0dWFsU29sbyxsZWdlbmRJbmRleDoxLHNob3dJbkxlZ2VuZDpfJiYhbyx2YWx1ZXM6aX1dfSgpLHRlPSgwLG4udXNlTWVtbykoKCgpPT5lZS5tYXAoKGU9Pih7aWQ6ZS5pZCx0eXBlOmUudHlwZXx8ImNpcmNsZXMiLG5hbWU6ZS5maWVsZE5hbWUsdmFsdWVUeXBlOiJudW1iZXJzIix2YWx1ZXM6ZS52YWx1ZXMsZGVmYXVsdENvbG9yOmUuZGVmYXVsdENvbG9yLHNob3dJbkxlZ2VuZDplLnNob3dJbkxlZ2VuZCxwcmlvcml0eVZpZXdJbmRleDplLmxlZ2VuZEluZGV4LGJ1aWxkVG9vbHRpcDplLmJ1aWxkVG9vbHRpcHx8c2UsbGVnZW5kQ2xhc3NOYW1lOmUubGVnZW5kQ2xhc3NOYW1lLGdldEl0ZW1DbGFzc05hbWU6ZS5nZXRJdGVtQ2xhc3NOYW1lfSkpKSksW2VlXSk7SSYmdGUudW5zaGlmdCh7dHlwZToiaGlkZGVuIixuYW1lOnMudChudWxsLHZvaWQgMCxhKDUwNzcyOSkpLHZhbHVlVHlwZToiZGF0ZSIsdmFsdWVzOmZ1bmN0aW9uKCl7Y29uc3QgZT1JP2ooSSk6W107Zm9yKGxldCB0PTA7dDxlLmxlbmd0aDt0KyspKDAsci5pc051bWJlcikoWlt0XSl8fChlW3RdPW51bGwpO3JldHVyblsuLi5lLGJ8fG51bGxdfSgpLHNob3dJbkxlZ2VuZDohMSxidWlsZFRvb2x0aXA6c2V9KTtjb25zdCBhZT0oMCxuLnVzZUNhbGxiYWNrKSgoZT0+e1MoZSksRCYmRChlKX0pLFtEXSkse25leHREYXRlTGFiZWw6bmUsaXNSZWxlYXNlRGF0ZVRvZGF5OnJlfT0oMCxZLmJ1aWxkTmV4dERhdGVJbmZvKSh7dGltZVN0YW1wOmIsZnJvbToieWVhciIsdG86ImRheSIsbG9jYWxlOigwLHguZ2V0TG9jYWxlSXNvKSgpfSksaWU9e25leHREYXRlTGFiZWw6bmUsdGl0bGU6ZC50aXRsZSxpc1JlbGVhc2VEYXRlVG9kYXk6cmUsaXNFYXJuaW5nc0RhdGVFc3RpbWF0ZWQ6Tyxpc0Vhcm5pbmdzSGFwcGVuZWQ6Qm9vbGVhbihiJiYxZTMqYjxEYXRlLm5vdygpKSxlYXJuaW5nc1RpbWU6VCxzaG93TmV4dERhdGU6USxzZWxlY3RlZFBlcmlvZDpQLHNldFNlbGVjdGVkUGVyaW9kOmFlLGhhc1BlcmlvZHNTd2l0Y2hlcjpmJiZsZSgpLGxpbms6bSxpc0Rpc2FibGVkUGVyaW9kOmU9Pm9lKGUuaWQsdiksbGlua0NvbXBvbmVudDpoLG9uVGl0bGVDbGljazpwLHJlcG9ydEZyZXF1ZW5jeTp2LHNvbHV0aW9uSWQ6eT9kLnNvbHV0aW9uSWQ6bnVsbCxzaG93RWFybmluZ3NDb3VudGRvd246VyxkYXlzQ291bnRlck9wdGlvbnM6e2Vhcm5pbmdzUmVsZWFzZU5leHREYXRlOmw/LmVhcm5pbmdzX3JlbGVhc2VfbmV4dF9kYXRlLGVhcm5pbmdzUGVyU2hhcmVGb3JlY2FzdE5leHRGcTpsPy5lYXJuaW5nc19wZXJfc2hhcmVfZm9yZWNhc3RfbmV4dF9mcSxlYXJuaW5nc1JlbGVhc2VOZXh0Q2FsZW5kYXJEYXRlOmw/LmVhcm5pbmdzX3JlbGVhc2VfbmV4dF9jYWxlbmRhcl9kYXRlfX07cmV0dXJuKDAsbi51c2VFZmZlY3QpKCgoKT0+e2lmKCFsfHwhb2UoUCx2KSlyZXR1cm47Y29uc3QgZT0oMCx1LkRFRkFVTFRfUEVSSU9EKSh2KTtpZighb2UoZSx2KSlyZXR1cm4gdm9pZCBTKGUpO2NvbnN0IHQ9ZC5nZXRBdmFpbGFibGVQZXJpb2RzTWFwKGwpLGE9T2JqZWN0LmVudHJpZXModCkuZmluZCgoKFtlLHRdKT0+dCkpPy5bMF07YSYmUyhhKX0pLFtsXSksbi5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6dCwiZGF0YS1xYS1pZCI6ImRldGFpbHMtZWxlbWVudCBlYXJuaW5ncyJ9LG4uY3JlYXRlRWxlbWVudChMLldpZGdldFRpdGxlLHtjbGFzc05hbWU6b30sbi5jcmVhdGVFbGVtZW50KEYsey4uLmllfSkpLEUmJiFsZSgpP0U6bi5jcmVhdGVFbGVtZW50KFIuRGV0YWlsc0NoYXJ0LHtib3R0b21TY2FsZU5hbWVzOkoscmlnaHRWZXJ0aWNhbFNjYWxlT3B0aW9uczpjLHNlcmllc0FycmF5OnRlLGFkYXB0aXZlVG9vbHRpcFBvc2l0aW9uOl8sbWluaTohMH0pKTtmdW5jdGlvbiBzZShlLHQsYSl7Y29uc3Qgbj1lLnZhbHVlc1thXTtpZihudWxsPT09bilyZXR1cm4gbnVsbDtjb25zdCByPSJkYXRlIj09PWUudmFsdWVUeXBlP04oMWUzKm4pOigwLHEuZm9ybWF0KShuLGUudmFsdWVUeXBlKTtyZXR1cm5be3RpdGxlOmUubmFtZSxjb2xvcjpDLnRvb2x0aXAsdmFsdWU6cixtb2RlOiJjb2xvcmVkLXRleHQiLHVuaXQ6ImRhdGUiPT09ZS52YWx1ZVR5cGU/dm9pZCAwOmw/LmZ1bmRhbWVudGFsX2N1cnJlbmN5X2NvZGV9XX1mdW5jdGlvbiBvZShlLHQ9QS5QZXJpb2RJZC5RdWFydGVyKXsKaWYoIWx8fCFlKXJldHVybiEwO2NvbnN0IGE9ZC5nZXRBdmFpbGFibGVQZXJpb2RzTWFwKGwpO3N3aXRjaChlKXtjYXNlIEEuUGVyaW9kSWQuWWVhcjpyZXR1cm4hYVtBLlBlcmlvZElkLlllYXJdO2Nhc2UgQS5QZXJpb2RJZC5IYWxmWWVhcjpyZXR1cm4hYVtBLlBlcmlvZElkLkhhbGZZZWFyXXx8dD09PUEuUGVyaW9kSWQuUXVhcnRlcjtjYXNlIEEuUGVyaW9kSWQuUXVhcnRlcjpyZXR1cm4hYVtBLlBlcmlvZElkLlF1YXJ0ZXJdfHx0PT09QS5QZXJpb2RJZC5IYWxmWWVhcn19ZnVuY3Rpb24gbGUoKXtyZXR1cm4hbHx8T2JqZWN0LnZhbHVlcyhkLmdldEF2YWlsYWJsZVBlcmlvZHNNYXAobCkpLnNvbWUoKGU9PmUpKX19IWZ1bmN0aW9uKGUpe2UuRXN0aW1hdGU9ImVzdGltYXRlIixlLkFjdHVhbFBvc2l0aXZlPSJhY3R1YWwgcG9zaXRpdmUiLGUuQWN0dWFsTmVnYXRpdmU9ImFjdHVhbCBuZWdhdGl2ZSIsZS5BY3R1YWxTb2xvPSJhY3R1YWwgc29sbyIsZS5TdXJwcmlzZT0ic3VycHJpc2UifShHfHwoRz17fSkpfSw1MzQ0ODAoZSx0LGEpeyJ1c2Ugc3RyaWN0IjthLmQodCx7YnVpbGROZXh0RGF0ZUluZm86KCk9Pl8sY2hlY2tFYXJuaW5nc1Zpc2libGU6KCk9PmYsY2hlY2tSZXZlbnVlVmlzaWJsZTooKT0+Zyxmb3JtYXRTdXJwcmlzZTooKT0+bSxnZXRIYXNFbm91Z2hFYXJuaW5nc0RhdGFCeVBlcmlvZE1hcDooKT0+YyxnZXRIYXNFbm91Z2hSZXZlbnVlRGF0YUJ5UGVyaW9kTWFwOigpPT5kLGdldEluY29tZURhdGE6KCk9Pmx9KTt2YXIgbj1hKDEyNTIxOCkscj1hKDk2MDAwNiksaT1hKDMzMzMxNSkscz1hKDI3ODI2Myksbz1hKDc5OTY1Mik7ZnVuY3Rpb24gbChlKXtjb25zdHtlYXJuaW5nc19yZWxlYXNlX2RhdGVfZnFfaDp0LGVhcm5pbmdzX3JlbGVhc2VfZGF0ZV9meV9oOmEsZWFybmluZ3NfcmVsZWFzZV9kYXRlX2ZoX2g6bixlYXJuaW5nc19yZWxlYXNlX25leHRfZGF0ZTpyLGVhcm5pbmdzX3JlbGVhc2VfbmV4dF9kYXRlX2ZxOmksZWFybmluZ3NfcmVsZWFzZV9uZXh0X2RhdGVfZnk6cyxlYXJuaW5nc19yZWxlYXNlX25leHRfZGF0ZV9maDpvLGVhcm5pbmdzX3JlbGVhc2VfbmV4dF90aW1lOmwsaXNfbmV4dF9lYXJuaW5nc19yZWxlYXNlX2RhdGVfZXN0aW1hdGVkOl8sZWFybmluZ3NfcGVyX3NoYXJlX2ZxX2g6ZCxlYXJuaW5nc19wZXJfc2hhcmVfZnlfaDpjLGVhcm5pbmdzX3Blcl9zaGFyZV9maF9oOnUsZWFybmluZ3NfcGVyX3NoYXJlX2ZvcmVjYXN0X2ZxX2g6ZixlYXJuaW5nc19wZXJfc2hhcmVfZm9yZWNhc3RfZnlfaDpnLGVhcm5pbmdzX3Blcl9zaGFyZV9mb3JlY2FzdF9maF9oOm0sZWFybmluZ3NfcGVyX3NoYXJlX2ZvcmVjYXN0X25leHRfZnE6aCxlYXJuaW5nc19wZXJfc2hhcmVfZm9yZWNhc3RfbmV4dF9meTpwLGVhcm5pbmdzX3Blcl9zaGFyZV9mb3JlY2FzdF9uZXh0X2ZoOnYsZWFybmluZ3NfZmlzY2FsX3BlcmlvZF9mcV9oOngsZWFybmluZ3NfZmlzY2FsX3BlcmlvZF9meV9oOnksZWFybmluZ3NfZmlzY2FsX3BlcmlvZF9maF9oOkQsbmV4dF9lYXJuaW5nc19maXNjYWxfcGVyaW9kX2ZxOk4sbmV4dF9lYXJuaW5nc19maXNjYWxfcGVyaW9kX2Z5OkUsbmV4dF9lYXJuaW5nc19maXNjYWxfcGVyaW9kX2ZoOlAscmV2ZW51ZV9mcV9oOlMscmV2ZW51ZV9meV9oOkkscmV2ZW51ZV9maF9oOncscmV2ZW51ZV9mb3JlY2FzdF9mcV9oOmIscmV2ZW51ZV9mb3JlY2FzdF9meV9oOkYscmV2ZW51ZV9mb3JlY2FzdF9maF9oOlIscmV2ZW51ZV9mb3JlY2FzdF9uZXh0X2ZxOlQscmV2ZW51ZV9mb3JlY2FzdF9uZXh0X2Z5OkMscmV2ZW51ZV9mb3JlY2FzdF9uZXh0X2ZoOnEsZWFybmluZ3NfcmVsZWFzZV9uZXh0X2NhbGVuZGFyX2RhdGU6TSxmdW5kYW1lbnRhbF9jdXJyZW5jeV9jb2RlOkx9PWU7cmV0dXJue2Vhcm5pbmdzX3JlbGVhc2VfZGF0ZV9mcV9oOnQsZWFybmluZ3NfcmVsZWFzZV9kYXRlX2Z5X2g6YSxlYXJuaW5nc19yZWxlYXNlX2RhdGVfZmhfaDpuLGVhcm5pbmdzX3JlbGVhc2VfbmV4dF9kYXRlOnIsZWFybmluZ3NfcmVsZWFzZV9uZXh0X2RhdGVfZnE6aSxlYXJuaW5nc19yZWxlYXNlX25leHRfZGF0ZV9meTpzLGVhcm5pbmdzX3JlbGVhc2VfbmV4dF9kYXRlX2ZoOm8sZWFybmluZ3NfcmVsZWFzZV9uZXh0X3RpbWU6bCxpc19uZXh0X2Vhcm5pbmdzX3JlbGVhc2VfZGF0ZV9lc3RpbWF0ZWQ6XyxlYXJuaW5nc19wZXJfc2hhcmVfZm9yZWNhc3RfZnFfaDpmLGVhcm5pbmdzX3Blcl9zaGFyZV9mb3JlY2FzdF9meV9oOmcsZWFybmluZ3NfcGVyX3NoYXJlX2ZvcmVjYXN0X2ZoX2g6bSxlYXJuaW5nc19wZXJfc2hhcmVfZnFfaDpkLGVhcm5pbmdzX3Blcl9zaGFyZV9meV9oOmMsZWFybmluZ3NfcGVyX3NoYXJlX2ZoX2g6dSxlYXJuaW5nc19maXNjYWxfcGVyaW9kX2ZxX2g6eCxlYXJuaW5nc19maXNjYWxfcGVyaW9kX2Z5X2g6eSxlYXJuaW5nc19maXNjYWxfcGVyaW9kX2ZoX2g6RCxlYXJuaW5nc19wZXJfc2hhcmVfZm9yZWNhc3RfbmV4dF9mcTpoLGVhcm5pbmdzX3Blcl9zaGFyZV9mb3JlY2FzdF9uZXh0X2Z5OnAsZWFybmluZ3NfcGVyX3NoYXJlX2ZvcmVjYXN0X25leHRfZmg6dixuZXh0X2Vhcm5pbmdzX2Zpc2NhbF9wZXJpb2RfZnE6TixuZXh0X2Vhcm5pbmdzX2Zpc2NhbF9wZXJpb2RfZnk6RSxuZXh0X2Vhcm5pbmdzX2Zpc2NhbF9wZXJpb2RfZmg6UCxyZXZlbnVlX2ZxX2g6UyxyZXZlbnVlX2Z5X2g6SSxyZXZlbnVlX2ZoX2g6dyxyZXZlbnVlX2ZvcmVjYXN0X2ZxX2g6YixyZXZlbnVlX2ZvcmVjYXN0X2Z5X2g6RixyZXZlbnVlX2ZvcmVjYXN0X2ZoX2g6UixyZXZlbnVlX2ZvcmVjYXN0X25leHRfZnE6VCxyZXZlbnVlX2ZvcmVjYXN0X25leHRfZnk6QyxyZXZlbnVlX2ZvcmVjYXN0X25leHRfZmg6cSxlYXJuaW5nc19yZWxlYXNlX25leHRfY2FsZW5kYXJfZGF0ZTpNLGZ1bmRhbWVudGFsX2N1cnJlbmN5X2NvZGU6TH19ZnVuY3Rpb24gXyh7dGltZVN0YW1wOmUsbG9jYWxlOnQsZnJvbTphLHRvOm4sdGltZVpvbmU6cn0pe2lmKHZvaWQgMD09PWUpcmV0dXJue25leHREYXRlTGFiZWw6IuKAlCIsbW9udGhMYWJlbDoi4oCUIixkYXlMYWJlbDoi4oCUIixpc1JlbGVhc2VEYXRlVG9kYXk6ITEsCmlzUmVsZWFzZURhdGVUb21vcnJvdzohMX07Y29uc3QgaT1uZXcgRGF0ZSxsPW5ldyBEYXRlKDFlMyplKTtyZXR1cm57bmV4dERhdGVMYWJlbDooMCxzLmZvcm1hdFRpbWUpKDFlMyplLHQsYSxuLHt0aW1lWm9uZTpyfSksbW9udGhMYWJlbDooMCxzLmZvcm1hdFRpbWUpKDFlMyplLHQsIm1vbnRoIiwibW9udGgiLHt0aW1lWm9uZTpyfSksZGF5TGFiZWw6KDAscy5mb3JtYXRUaW1lKSgxZTMqZSx0LCJkYXkiLCJkYXkiLHt0aW1lWm9uZTpyfSksaXNSZWxlYXNlRGF0ZVRvZGF5OmkudG9EYXRlU3RyaW5nKCk9PT1sLnRvRGF0ZVN0cmluZygpLGlzUmVsZWFzZURhdGVUb21vcnJvdzooMCxvLmFkZERheXMpKGksMSkudG9EYXRlU3RyaW5nKCk9PT1sLnRvRGF0ZVN0cmluZygpfX1mdW5jdGlvbiBkKGUpe3JldHVybntbaS5QZXJpb2RJZC5ZZWFyXTp1KGUucmV2ZW51ZV9mb3JlY2FzdF9meV9oKXx8dShlLnJldmVudWVfZnlfaCksW2kuUGVyaW9kSWQuUXVhcnRlcl06dShlLnJldmVudWVfZm9yZWNhc3RfZnFfaCl8fHUoZS5yZXZlbnVlX2ZxX2gpLFtpLlBlcmlvZElkLkhhbGZZZWFyXTp1KGUucmV2ZW51ZV9mb3JlY2FzdF9maF9oKXx8dShlLnJldmVudWVfZmhfaCl9fWZ1bmN0aW9uIGMoZSl7cmV0dXJue1tpLlBlcmlvZElkLlllYXJdOkJvb2xlYW4oZS5lYXJuaW5nc19maXNjYWxfcGVyaW9kX2Z5X2g/Lmxlbmd0aHx8ZS5uZXh0X2Vhcm5pbmdzX2Zpc2NhbF9wZXJpb2RfZnkpJiYodm9pZCAwIT09ZS5lYXJuaW5nc19wZXJfc2hhcmVfZm9yZWNhc3RfbmV4dF9meXx8dShlLmVhcm5pbmdzX3Blcl9zaGFyZV9meV9oKXx8dShlLmVhcm5pbmdzX3Blcl9zaGFyZV9mb3JlY2FzdF9meV9oKSksW2kuUGVyaW9kSWQuUXVhcnRlcl06Qm9vbGVhbihlLmVhcm5pbmdzX2Zpc2NhbF9wZXJpb2RfZnFfaD8ubGVuZ3RofHxlLm5leHRfZWFybmluZ3NfZmlzY2FsX3BlcmlvZF9mcSkmJih2b2lkIDAhPT1lLmVhcm5pbmdzX3Blcl9zaGFyZV9mb3JlY2FzdF9uZXh0X2ZxfHx1KGUuZWFybmluZ3NfcGVyX3NoYXJlX2ZxX2gpfHx1KGUuZWFybmluZ3NfcGVyX3NoYXJlX2ZvcmVjYXN0X2ZxX2gpKSxbaS5QZXJpb2RJZC5IYWxmWWVhcl06Qm9vbGVhbihlLmVhcm5pbmdzX2Zpc2NhbF9wZXJpb2RfZmhfaD8ubGVuZ3RofHxlLm5leHRfZWFybmluZ3NfZmlzY2FsX3BlcmlvZF9maCkmJih2b2lkIDAhPT1lLmVhcm5pbmdzX3Blcl9zaGFyZV9mb3JlY2FzdF9uZXh0X2ZofHx1KGUuZWFybmluZ3NfcGVyX3NoYXJlX2ZoX2gpfHx1KGUuZWFybmluZ3NfcGVyX3NoYXJlX2ZvcmVjYXN0X2ZoX2gpKX19ZnVuY3Rpb24gdShlKXtyZXR1cm4gQXJyYXkuaXNBcnJheShlKSYmZS5zbGljZSgwLDQpLnNvbWUoKGU9Pm51bGwhPT1lKSl9ZnVuY3Rpb24gZihlKXtyZXR1cm4hIWUmJk9iamVjdC52YWx1ZXMoYyhlKSkuc29tZSgoZT0+ZSkpfWZ1bmN0aW9uIGcoZSl7cmV0dXJuISFlJiZPYmplY3QudmFsdWVzKGQoZSkpLnNvbWUoKGU9PmUpKX1mdW5jdGlvbiBtKGUsdCl7Y29uc3QgYT1uZXcgbi5QZXJjZW50YWdlRm9ybWF0dGVyLGk9KDAsci5mb3JtYXQpKGUsIm51bWJlcnMiKSxzPTEwMCpNYXRoLmFicyhlL3QpO3JldHVybiBpc0Zpbml0ZShzKT9baSxgKCR7YS5mb3JtYXQocyl9KWBdOltpXX19LDc5OTk5NChlLHQsYSl7InVzZSBzdHJpY3QiO2EuZCh0LHtIaW50QnV0dG9uOigpPT5vfSk7dmFyIG49YSg3Nzk0NzQpLHI9YSgxODUyNzEpLGk9YSgxMzg5OTQpLHM9YSg5MjY5OTUpO2Z1bmN0aW9uIG8oZSl7Y29uc3R7c29sdXRpb25JZDp0LHRpdGxlOm89ci50KG51bGwsdm9pZCAwLGEoMzQ5NTAxKSksY2xhc3NOYW1lOmwsdGFiSW5kZXg6X309ZSxkPSgwLG4udXNlTWVtbykoKCgpPT5mdW5jdGlvbihlKXtyZXR1cm4oMCxuLmZvcndhcmRSZWYpKCgoYSxyKT0+bi5jcmVhdGVFbGVtZW50KCJhIix7Li4uYSxyZWY6cixocmVmOmA/c29sdXRpb249JHtlfWAsb25DbGljazp0fSkpKTtmdW5jdGlvbiB0KHQpe3QucHJldmVudERlZmF1bHQoKSwoMCxzLnNob3dTdXBwb3J0RGlhbG9nKSh7c29sdXRpb25JZDplfSl9fSh0KSksW3RdKTtyZXR1cm4gbi5jcmVhdGVFbGVtZW50KGkuSWNvblF1ZXN0aW9uSW5mb3JtYXRpb24se2ljb246InF1ZXN0aW9uIixhcmlhTGFiZWw6byx0b29sdGlwOm8sY2xhc3NOYW1lOmwscmVuZGVyQ29tcG9uZW50OmQsdGFiSW5kZXg6X30pfX0sMzUyOTUxKGUpe2UuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxOCAxOCIgd2lkdGg9IjE4IiBoZWlnaHQ9IjE4Ij48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGQ9Ik03LjU2IDQuNWEuNzUuNzUgMCAxIDAtMS4xMiAxbDEuMTItMXpNMTAuNSA5bC41Ni41YS43NS43NSAwIDAgMCAwLTFsLS41Ni41em0tNC4wNiAzLjVhLjc1Ljc1IDAgMCAwIDEuMTIgMWwtMS4xMi0xem0wLTdsMy41IDQgMS4xMi0xLTMuNS00LTEuMTIgMXptMy41IDNsLTMuNSA0IDEuMTIgMSAzLjUtNC0xLjEyLTF6Ii8+PC9zdmc+J30sNDA0NjA5KGUpe2UuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxOCAxOCIgd2lkdGg9IjE4IiBoZWlnaHQ9IjE4IiBmaWxsPSJub25lIj48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGQ9Ik04Ljk5OSA2Ljc1NmEzLjg2NiAzLjg2NiAwIDAgMSAzLjU3NyA1LjMzNkE3Ljc0IDcuNzQgMCAwIDAgOSAxMS4yMjJjLTEuMjkgMC0yLjUwNy4zMTQtMy41NzguODdBMy44NjcgMy44NjcgMCAwIDEgOSA2Ljc1Nm0tNC45ODcgMS43OS0uMzcgMS4zOC0yLjI5OC0uNjE1LjM2OS0xLjM4em0xMi42NDEuNzY0LTIuMjk3LjYxNi0uMzctMS4zOCAyLjI5OC0uNjE1em0tOS4yNy0zLjg0MUw2LjA5IDYuMDcgNS4wODQgMy45MTVsMS4yOTQtLjYwM3ptNS41MzItMS41NTRMMTEuOTEgNi4wNzFsLTEuMjk0LS42MDMgMS4wMDYtMi4xNTZ6Ii8+PC9zdmc+J30sNjgxNTU0KGUpewplLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMTggMTgiIHdpZHRoPSIxOCIgaGVpZ2h0PSIxOCIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBkPSJNOSAzYzEuNjc5IDAgMy4xOTcuNjkgNC4yODYgMS44SDEzLjJhNC4yIDQuMiAwIDEgMCAuMDg1IDguNEE2IDYgMCAxIDEgOSAzIi8+PC9zdmc+J319XSk7"}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"translate.google.com/translate_a/element.js?cb=googleTranslateElementInit","fqdn":"translate.google.com","domain":"google.com","tld":"com"},"ip":{"addr":"142.250.178.110","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://digital-assettrade.com/","date":"2026-07-27T10:27:12.026Z","timestamp":1785148032026,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.google.com","organization":""},"issuer":{"commonName":"WE2","organization":"Google Trust Services"},"validity":{"start":"Mon, 29 Jun 2026 08:37:35 GMT","end":"Mon, 21 Sep 2026 08:37:34 GMT"},"fingerprint":{"sha1":"2F:20:3B:91:88:65:20:CD:06:9D:0C:58:4D:17:6F:FC:9D:EC:41:83","sha256":"0C:7B:D3:23:E9:5B:D6:6B:F2:5C:71:91:4D:41:CE:E6:D7:1F:A2:F2:63:BA:25:70:1D:00:F3:C0:72:21:51:6D"}}},"request":{"raw":"GET /translate_a/element.js?cb=googleTranslateElementInit HTTP/1.1\r\nHost: translate.google.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-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://digital-assettrade.com/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\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\ncontent-type: text/javascript; charset=utf-8\r\nvary: Sec-Fetch-Dest, Sec-Fetch-Mode, Sec-Fetch-Site\r\ncache-control: no-cache, no-store, max-age=0, must-revalidate\r\npragma: no-cache\r\nexpires: Mon, 01 Jan 1990 00:00:00 GMT\r\ndate: Mon, 27 Jul 2026 10:27:12 GMT\r\ncross-origin-resource-policy: cross-origin\r\ncross-origin-opener-policy: same-origin-allow-popups\r\ncontent-encoding: gzip\r\nserver: ESF\r\nx-xss-protection: 0\r\nx-frame-options: SAMEORIGIN\r\nx-content-type-options: nosniff\r\nalt-svc: h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":null,"data":{"size":75428,"size_decoded":27153,"mime_type":"text/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (2543)","md5":"8168d5547327970ad5e2cb1926129f05","sha1":"f5d5f94f809e19b9d1980fbfcdbdaceeb996233b","sha256":"21ed61dfa3c93c68680af688fcd9bf4bc54be115307173ba7403378519551e90","sha512":"8ec33b614020869d352bf35f9e4353dbeb38aefe24bb7001664cbad75a4ca8716d0d9cba4412556fac6e977d71c6b581deec6ff7cce9ea56d0862903db9eaf43","ssdeep":"1536:XWjLpxIZnZzYOwRUSfl26KKZkXtmqR6Y06ECiXwNWF0:XDD4U6KKZgtBgtCiF0","tlshash":"0473b88cb6a5b4658363f4b5412f000eb23b58adf8484cadb288d8e1adf5949453bf7d","first_seen":"2026-07-27T10:01:12.784488Z","last_seen":"2026-07-27T11:00:42.074052Z","times_seen":113,"resource_available":true,"data":"CiAgICAvLyBnby9tc3Mtc2V0dXAjNy1sb2FkLXRoZS1qcy1vci1jc3MtZnJvbS15b3VyLWluaXRpYWwtcGFnZQogICAgaWYoIXdpbmRvd1snX0R1bXBFeGNlcHRpb24nXSkgewogICAgICBjb25zdCBfRHVtcEV4Y2VwdGlvbiA9IHdpbmRvd1snX0R1bXBFeGNlcHRpb24nXSB8fCBmdW5jdGlvbihlKSB7CiAgICAgICAgdGhyb3cgZTsKICAgICAgfTsKICAgICAgd2luZG93WydfRHVtcEV4Y2VwdGlvbiddID0gX0R1bXBFeGNlcHRpb247CiAgICB9CiAgInVzZSBzdHJpY3QiO3RoaXMuZGVmYXVsdF90cj10aGlzLmRlZmF1bHRfdHJ8fHt9OyhmdW5jdGlvbihfKXt2YXIgd2luZG93PXRoaXM7CnRyeXsKXy5fRl90b2dnbGVzX2luaXRpYWxpemU9ZnVuY3Rpb24oYSl7KHR5cGVvZiBnbG9iYWxUaGlzIT09InVuZGVmaW5lZCI/Z2xvYmFsVGhpczp0eXBlb2Ygc2VsZiE9PSJ1bmRlZmluZWQiP3NlbGY6dGhpcykuX0ZfdG9nZ2xlc19kZWZhdWx0X3RyPWF8fFtdfTsoMCxfLl9GX3RvZ2dsZXNfaW5pdGlhbGl6ZSkoWzB4NzAwODAwNCwgMHgwLCBdKTsKLyoKCiBDb3B5cmlnaHQgVGhlIENsb3N1cmUgTGlicmFyeSBBdXRob3JzLgogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAKKi8KLyoKCiBDb3B5cmlnaHQgR29vZ2xlIExMQwogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAKKi8KLyoKCiBDb3B5cmlnaHQgMjAwNSwgMjAwNyBCb2IgSXBwb2xpdG8uIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiBDb3B5cmlnaHQgVGhlIENsb3N1cmUgTGlicmFyeSBBdXRob3JzLgogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVAoqLwp2YXIgYWEsY2EsZmEsamEscmEseGEsQmEsRGEsRmEsR2EsSWEsWWEsYmIsZmIsZ2IsamIsa2IsbmIscGIscWIsc2IsdWIsdmIsQWIsQmIsRmIsSWIsSmIsTWIsTmIsT2IsUWIsU2IseixSYixVYixZYixaYixhYyxiYzthYT1mdW5jdGlvbihhLGIpe2lmKEVycm9yLmNhcHR1cmVTdGFja1RyYWNlKUVycm9yLmNhcHR1cmVTdGFja1RyYWNlKHRoaXMsYWEpO2Vsc2V7dmFyIGM9RXJyb3IoKS5zdGFjaztjJiYodGhpcy5zdGFjaz1jKX1hJiYodGhpcy5tZXNzYWdlPVN0cmluZyhhKSk7YiE9PXZvaWQgMCYmKHRoaXMuY2F1c2U9Yil9O2NhPWZ1bmN0aW9uKGEsYil7YT1hLnNwbGl0KCIlcyIpO2Zvcih2YXIgYz0iIixkPWEubGVuZ3RoLTEsZT0wO2U8ZDtlKyspYys9YVtlXSsoZTxiLmxlbmd0aD9iW2VdOiIlcyIpO2FhLmNhbGwodGhpcyxjK2FbZF0pfTtmYT1mdW5jdGlvbihhKXtpZihfLmRhKWEoXy5kYSk7ZWxzZXt2YXIgYjsoKGI9ZWEpIT1udWxsP2I6ZWE9W10pLnB1c2goYSl9fTsKamE9ZnVuY3Rpb24oKXshXy5kYSYmXy5oYSYmXy5pYSgpO3JldHVybiBfLmRhfTtfLmlhPWZ1bmN0aW9uKCl7Xy5kYT1fLmhhKCk7dmFyIGE7KGE9ZWEpPT1udWxsfHxhLmZvckVhY2goZmEpO2VhPXZvaWQgMH07Xy5sYT1mdW5jdGlvbihhKXtfLmRhJiZrYShhKX07Xy5tYT1mdW5jdGlvbigpe18uZGEmJl8uZGEubWQoKX07Xy5vYT1mdW5jdGlvbihhLGIpe2IuaGFzT3duUHJvcGVydHkoImRpc3BsYXlOYW1lIil8fChiLmRpc3BsYXlOYW1lPWEudG9TdHJpbmcoKSk7YltuYV09YX07Xy5wYT1mdW5jdGlvbihhKXthJiZ0eXBlb2YgYS5kaXNwb3NlPT0iZnVuY3Rpb24iJiZhLmRpc3Bvc2UoKX07cmE9ZnVuY3Rpb24oYSl7Zm9yKHZhciBiPTAsYz1hcmd1bWVudHMubGVuZ3RoO2I8YzsrK2Ipe3ZhciBkPWFyZ3VtZW50c1tiXTtfLnFhKGQpP3JhLmFwcGx5KG51bGwsZCk6Xy5wYShkKX19O18udT1mdW5jdGlvbigpe3RoaXMucWE9dGhpcy5xYTt0aGlzLlc9dGhpcy5XfTsKXy50YT1mdW5jdGlvbihhLGIpe3JldHVybiBzYShhLGIpPj0wfTtfLnVhPWZ1bmN0aW9uKGEsYil7Xy50YShhLGIpfHxhLnB1c2goYil9O18udmE9ZnVuY3Rpb24oYSxiKXtiPXNhKGEsYik7dmFyIGM7KGM9Yj49MCkmJkFycmF5LnByb3RvdHlwZS5zcGxpY2UuY2FsbChhLGIsMSk7cmV0dXJuIGN9O18ud2E9ZnVuY3Rpb24oYSl7dmFyIGI9YS5sZW5ndGg7aWYoYj4wKXtmb3IodmFyIGM9QXJyYXkoYiksZD0wO2Q8YjtkKyspY1tkXT1hW2RdO3JldHVybiBjfXJldHVybltdfTt4YT1mdW5jdGlvbihhLGIpe2Zvcih2YXIgYz0xO2M8YXJndW1lbnRzLmxlbmd0aDtjKyspe3ZhciBkPWFyZ3VtZW50c1tjXTtpZihfLnFhKGQpKXt2YXIgZT1hLmxlbmd0aHx8MCxmPWQubGVuZ3RofHwwO2EubGVuZ3RoPWUrZjtmb3IodmFyIGc9MDtnPGY7ZysrKWFbZStnXT1kW2ddfWVsc2UgYS5wdXNoKGQpfX07CkJhPWZ1bmN0aW9uKGEpe2Zvcih2YXIgYj0wLGM9MCxkPXt9O2M8YS5sZW5ndGg7KXt2YXIgZT1hW2MrK10sZj1fLnlhKGUpPyJvIisoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUsemEpJiZlW3phXXx8KGVbemFdPSsrQWEpKToodHlwZW9mIGUpLmNoYXJBdCgwKStlO09iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChkLGYpfHwoZFtmXT0hMCxhW2IrK109ZSl9YS5sZW5ndGg9Yn07Xy5DYT1mdW5jdGlvbihhLGIpe3RoaXMud2lkdGg9YTt0aGlzLmhlaWdodD1ifTtEYT1mdW5jdGlvbihhLGIpe2Zvcih2YXIgYyBpbiBhKWlmKGIuY2FsbCh2b2lkIDAsYVtjXSxjLGEpKXJldHVybiEwO3JldHVybiExfTsKRmE9ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGMsZCxlPTE7ZTxhcmd1bWVudHMubGVuZ3RoO2UrKyl7ZD1hcmd1bWVudHNbZV07Zm9yKGMgaW4gZClhW2NdPWRbY107Zm9yKHZhciBmPTA7ZjxFYS5sZW5ndGg7ZisrKWM9RWFbZl0sT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGQsYykmJihhW2NdPWRbY10pfX07R2E9ZnVuY3Rpb24oYSl7cmV0dXJue3ZhbHVlT2Y6YX0udmFsdWVPZigpfTtJYT1mdW5jdGlvbigpe3ZhciBhPW51bGw7aWYoIUhhKXJldHVybiBhO3RyeXt2YXIgYj1mdW5jdGlvbihjKXtyZXR1cm4gY307YT1IYS5jcmVhdGVQb2xpY3koImdvb2cjaHRtbCIse2NyZWF0ZUhUTUw6YixjcmVhdGVTY3JpcHQ6YixjcmVhdGVTY3JpcHRVUkw6Yn0pfWNhdGNoKGMpe31yZXR1cm4gYX07Xy5LYT1mdW5jdGlvbigpe0phPT09dm9pZCAwJiYoSmE9SWEoKSk7cmV0dXJuIEphfTsKXy5NYT1mdW5jdGlvbihhKXt2YXIgYj1fLkthKCk7YT1iP2IuY3JlYXRlU2NyaXB0VVJMKGEpOmE7cmV0dXJuIG5ldyBfLkxhKGEpfTtfLk5hPWZ1bmN0aW9uKGEpe2lmKGEgaW5zdGFuY2VvZiBfLkxhKXJldHVybiBhLmc7dGhyb3cgRXJyb3IoInQiKTt9O18uT2E9ZnVuY3Rpb24oYSxiKXtiPWI9PT12b2lkIDA/ZG9jdW1lbnQ6Yjt2YXIgYyxkO2I9KGQ9KGM9YikucXVlcnlTZWxlY3Rvcik9PW51bGw/dm9pZCAwOmQuY2FsbChjLGErIltub25jZV0iKTtyZXR1cm4gYj09bnVsbD8iIjpiLm5vbmNlfHxiLmdldEF0dHJpYnV0ZSgibm9uY2UiKXx8IiJ9O18uUWE9ZnVuY3Rpb24oYSl7dmFyIGI9Xy5LYSgpO2E9Yj9iLmNyZWF0ZVNjcmlwdChhKTphO3JldHVybiBuZXcgXy5QYShhKX07Xy5SYT1mdW5jdGlvbihhKXtpZihhIGluc3RhbmNlb2YgXy5QYSlyZXR1cm4gYS5nO3Rocm93IEVycm9yKCJ0Iik7fTsKXy5TYT1mdW5jdGlvbihhLGIpe2Euc3JjPV8uTmEoYik7KGI9Xy5PYSgic2NyaXB0IixhLm93bmVyRG9jdW1lbnQpKSYmYS5zZXRBdHRyaWJ1dGUoIm5vbmNlIixiKX07Xy5UYT1mdW5jdGlvbigpe3ZhciBhPV8udi5uYXZpZ2F0b3I7cmV0dXJuIGEmJihhPWEudXNlckFnZW50KT9hOiIifTtfLnc9ZnVuY3Rpb24oYSl7cmV0dXJuIF8uVGEoKS5pbmRleE9mKGEpIT0tMX07Xy5XYT1mdW5jdGlvbigpe3JldHVybiBfLlVhPyEhXy5WYSYmXy5WYS5icmFuZHMubGVuZ3RoPjA6ITF9O18uWGE9ZnVuY3Rpb24oKXtyZXR1cm4gXy5XYSgpPyExOl8udygiT3BlcmEiKX07WWE9ZnVuY3Rpb24oKXtyZXR1cm4gXy5VYT8hIV8uVmEmJiEhXy5WYS5wbGF0Zm9ybTohMX07Xy5aYT1mdW5jdGlvbigpe3JldHVybiBfLncoImlQaG9uZSIpJiYhXy53KCJpUG9kIikmJiFfLncoImlQYWQiKX07Xy4kYT1mdW5jdGlvbigpe3JldHVybiBfLlphKCl8fF8udygiaVBhZCIpfHxfLncoImlQb2QiKX07Cl8uYWI9ZnVuY3Rpb24oKXtyZXR1cm4gWWEoKT9fLlZhLnBsYXRmb3JtPT09Im1hY09TIjpfLncoIk1hY2ludG9zaCIpfTtiYj1mdW5jdGlvbigpe3RoaXMuaWQ9ImIifTtfLmRiPWZ1bmN0aW9uKGEsYil7Y2IuY2FsbCh0aGlzLGE/YS50eXBlOiIiKTt0aGlzLnJlbGF0ZWRUYXJnZXQ9dGhpcy5jdXJyZW50VGFyZ2V0PXRoaXMudGFyZ2V0PW51bGw7dGhpcy5idXR0b249dGhpcy5zY3JlZW5ZPXRoaXMuc2NyZWVuWD10aGlzLmNsaWVudFk9dGhpcy5jbGllbnRYPXRoaXMub2Zmc2V0WT10aGlzLm9mZnNldFg9MDt0aGlzLmtleT0iIjt0aGlzLmNoYXJDb2RlPXRoaXMua2V5Q29kZT0wO3RoaXMubWV0YUtleT10aGlzLnNoaWZ0S2V5PXRoaXMuYWx0S2V5PXRoaXMuY3RybEtleT0hMTt0aGlzLnN0YXRlPW51bGw7dGhpcy5wb2ludGVySWQ9MDt0aGlzLnBvaW50ZXJUeXBlPSIiO3RoaXMudGltZVN0YW1wPTA7dGhpcy5nPW51bGw7YSYmdGhpcy5pbml0KGEsYil9OwpmYj1mdW5jdGlvbihhLGIsYyxkLGUpe3RoaXMubGlzdGVuZXI9YTt0aGlzLnByb3h5PW51bGw7dGhpcy5zcmM9Yjt0aGlzLnR5cGU9Yzt0aGlzLmNhcHR1cmU9ISFkO3RoaXMuVmM9ZTt0aGlzLmtleT0rK2ViO3RoaXMub2M9dGhpcy5IYz0hMX07Z2I9ZnVuY3Rpb24oYSl7dGhpcy5zcmM9YTt0aGlzLmc9e307dGhpcy5oPTB9O18uaGI9ZnVuY3Rpb24oKXtfLnUuY2FsbCh0aGlzKTt0aGlzLlFhPW5ldyBnYih0aGlzKTt0aGlzLldnPXRoaXM7dGhpcy5mZD1udWxsfTtqYj1mdW5jdGlvbihhKXtfLmhiLmNhbGwodGhpcyk7dGhpcy5nPWF8fHdpbmRvdzt0aGlzLmg9Xy54KHRoaXMuZywicmVzaXplIix0aGlzLmwsITEsdGhpcyk7dGhpcy5qPV8uaWIodGhpcy5nfHx3aW5kb3cpfTsKa2I9ZnVuY3Rpb24oYSl7Xy5oYi5jYWxsKHRoaXMpO3RoaXMuaD1hP2EuZy5kZWZhdWx0Vmlldzp3aW5kb3c7dGhpcy5vPXRoaXMuaC5kZXZpY2VQaXhlbFJhdGlvPj0xLjU/MjoxO3RoaXMuaj0oMCxfLnkpKHRoaXMuQSx0aGlzKTt0aGlzLmw9bnVsbDsodGhpcy5nPXRoaXMuaC5tYXRjaE1lZGlhP3RoaXMuaC5tYXRjaE1lZGlhKCIobWluLXJlc29sdXRpb246IDEuNWRwcHgpLCAoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAxLjUpIik6bnVsbCkmJnR5cGVvZiB0aGlzLmcuYWRkTGlzdGVuZXIhPT0iZnVuY3Rpb24iJiZ0eXBlb2YgdGhpcy5nLmFkZEV2ZW50TGlzdGVuZXIhPT0iZnVuY3Rpb24iJiYodGhpcy5nPW51bGwpfTsKbmI9ZnVuY3Rpb24oYSxiKXtfLnUuY2FsbCh0aGlzKTt0aGlzLm89YTtpZihiKXtpZih0aGlzLmwpdGhyb3cgRXJyb3IoIngiKTt0aGlzLmw9Yjt0aGlzLmg9Xy5sYihiKTt0aGlzLmc9bmV3IGpiKF8ubWIoYikpO3RoaXMuZy5uZCh0aGlzLm8uaCgpKTt0aGlzLmo9bmV3IGtiKHRoaXMuaCk7dGhpcy5qLnN0YXJ0KCl9fTtwYj1mdW5jdGlvbihhKXthPWEuSGQuY2hhckNvZGVBdChhLkJiKyspO3JldHVybiBvYlthXX07cWI9ZnVuY3Rpb24oYSl7dmFyIGI9MCxjPTA7ZG97dmFyIGQ9cGIoYSk7Ynw9KGQmMzEpPDxjO2MrPTV9d2hpbGUoZCYzMik7cmV0dXJuIGI8MD9iKzQyOTQ5NjcyOTY6Yn07Xy5yYj1mdW5jdGlvbihhKXtfLnYuc2V0VGltZW91dChmdW5jdGlvbigpe3Rocm93IGE7fSwwKX07c2I9ZnVuY3Rpb24oYSxiKXt0aGlzLmc9YTt0aGlzLmg9Yn07CnViPWZ1bmN0aW9uKGEsYil7Xy51LmNhbGwodGhpcyk7dGhpcy5sPWE7dGhpcy5BPWI7dGhpcy5qPXRiP251bGw6W107dGhpcy5oPXRiP251bGw6W107dGhpcy5vPXRiP251bGw6W107dGhpcy5CPSExfTt2Yj1mdW5jdGlvbigpe3RoaXMuTz10aGlzLnFhPW51bGx9O0FiPWZ1bmN0aW9uKCl7Zm9yKHZhciBhO2E9d2IucmVtb3ZlKCk7KXt0cnl7YS5nLmNhbGwoYS5zY29wZSl9Y2F0Y2goYil7Xy5yYihiKX14Yih5YixhKX16Yj0hMX07QmI9ZnVuY3Rpb24oKXt0aGlzLkI9W107dGhpcy5vPXRoaXMuaD0hMTt0aGlzLmw9dm9pZCAwO3RoaXMuRz10aGlzLlc9dGhpcy5EPSExO3RoaXMuQz0wO3RoaXMuaj1udWxsO3RoaXMuQT0wfTtfLkNiPWZ1bmN0aW9uKGEpe3JldHVybiBhP2RlY29kZVVSSShhKTphfTsKXy5FYj1mdW5jdGlvbihhLGIpe2lmKGEpe2E9YS5zcGxpdCgiJiIpO2Zvcih2YXIgYz0wO2M8YS5sZW5ndGg7YysrKXt2YXIgZD1hW2NdLmluZGV4T2YoIj0iKSxlPW51bGw7aWYoZD49MCl7dmFyIGY9YVtjXS5zdWJzdHJpbmcoMCxkKTtlPWFbY10uc3Vic3RyaW5nKGQrMSl9ZWxzZSBmPWFbY107YihmLGU/Xy5EYihlKToiIil9fX07RmI9ZnVuY3Rpb24oYSxiLGMpe2lmKEFycmF5LmlzQXJyYXkoYikpZm9yKHZhciBkPTA7ZDxiLmxlbmd0aDtkKyspRmIoYSxTdHJpbmcoYltkXSksYyk7ZWxzZSBiIT1udWxsJiZjLnB1c2goYSsoYj09PSIiPyIiOiI9IitfLkdiKGIpKSl9O18uSGI9ZnVuY3Rpb24oYSl7Xy51LmNhbGwodGhpcyk7dGhpcy5oPWE7dGhpcy5nPXt9fTtJYj1mdW5jdGlvbigpe307SmI9ZnVuY3Rpb24oKXt9O18uTGI9ZnVuY3Rpb24oYSl7YT1fLktiKGEpO3JldHVybiBfLk1hKGEpfTsKXy5LYj1mdW5jdGlvbihhKXtyZXR1cm4gYT09PW51bGw/Im51bGwiOmE9PT12b2lkIDA/InVuZGVmaW5lZCI6YX07TWI9dHlwZW9mIE9iamVjdC5jcmVhdGU9PSJmdW5jdGlvbiI/T2JqZWN0LmNyZWF0ZTpmdW5jdGlvbihhKXt2YXIgYj1mdW5jdGlvbigpe307Yi5wcm90b3R5cGU9YTtyZXR1cm4gbmV3IGJ9O05iPXR5cGVvZiBPYmplY3QuZGVmaW5lUHJvcGVydGllcz09ImZ1bmN0aW9uIj9PYmplY3QuZGVmaW5lUHJvcGVydHk6ZnVuY3Rpb24oYSxiLGMpe2lmKGE9PUFycmF5LnByb3RvdHlwZXx8YT09T2JqZWN0LnByb3RvdHlwZSlyZXR1cm4gYTthW2JdPWMudmFsdWU7cmV0dXJuIGF9OwpPYj1mdW5jdGlvbihhKXthPVsib2JqZWN0Ij09dHlwZW9mIGdsb2JhbFRoaXMmJmdsb2JhbFRoaXMsYSwib2JqZWN0Ij09dHlwZW9mIHdpbmRvdyYmd2luZG93LCJvYmplY3QiPT10eXBlb2Ygc2VsZiYmc2VsZiwib2JqZWN0Ij09dHlwZW9mIGdsb2JhbCYmZ2xvYmFsXTtmb3IodmFyIGI9MDtiPGEubGVuZ3RoOysrYil7dmFyIGM9YVtiXTtpZihjJiZjLk1hdGg9PU1hdGgpcmV0dXJuIGN9dGhyb3cgRXJyb3IoImEiKTt9O18uUGI9T2IodGhpcyk7UWI9IkludDggVWludDggVWludDhDbGFtcGVkIEludDE2IFVpbnQxNiBJbnQzMiBVaW50MzIgRmxvYXQzMiBGbG9hdDY0Ii5zcGxpdCgiICIpO18uUGIuQmlnSW50NjRBcnJheSYmKFFiLnB1c2goIkJpZ0ludDY0IiksUWIucHVzaCgiQmlnVWludDY0IikpO1NiPWZ1bmN0aW9uKGEsYil7aWYoYilmb3IodmFyIGM9MDtjPFFiLmxlbmd0aDtjKyspUmIoUWJbY10rIkFycmF5LnByb3RvdHlwZS4iK2EsYil9Owp6PWZ1bmN0aW9uKGEsYil7YiYmUmIoYSxiKX07UmI9ZnVuY3Rpb24oYSxiKXt2YXIgYz1fLlBiO2E9YS5zcGxpdCgiLiIpO2Zvcih2YXIgZD0wO2Q8YS5sZW5ndGgtMTtkKyspe3ZhciBlPWFbZF07aWYoIShlIGluIGMpKXJldHVybjtjPWNbZV19YT1hW2EubGVuZ3RoLTFdO2Q9Y1thXTtiPWIoZCk7YiE9ZCYmYiE9bnVsbCYmTmIoYyxhLHtjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Yn0pfTsKXy5UYj1mdW5jdGlvbigpe2Z1bmN0aW9uIGEoKXtmdW5jdGlvbiBjKCl7fW5ldyBjO1JlZmxlY3QuY29uc3RydWN0KGMsW10sZnVuY3Rpb24oKXt9KTtyZXR1cm4gbmV3IGMgaW5zdGFuY2VvZiBjfWlmKHR5cGVvZiBSZWZsZWN0IT0idW5kZWZpbmVkIiYmUmVmbGVjdC5jb25zdHJ1Y3Qpe2lmKGEoKSlyZXR1cm4gUmVmbGVjdC5jb25zdHJ1Y3Q7dmFyIGI9UmVmbGVjdC5jb25zdHJ1Y3Q7cmV0dXJuIGZ1bmN0aW9uKGMsZCxlKXtjPWIoYyxkKTtlJiZSZWZsZWN0LnNldFByb3RvdHlwZU9mKGMsZS5wcm90b3R5cGUpO3JldHVybiBjfX1yZXR1cm4gZnVuY3Rpb24oYyxkLGUpe2U9PT12b2lkIDAmJihlPWMpO2U9TWIoZS5wcm90b3R5cGV8fE9iamVjdC5wcm90b3R5cGUpO3JldHVybiBGdW5jdGlvbi5wcm90b3R5cGUuYXBwbHkuY2FsbChjLGUsZCl8fGV9fSgpOwppZih0eXBlb2YgT2JqZWN0LnNldFByb3RvdHlwZU9mPT0iZnVuY3Rpb24iKVViPU9iamVjdC5zZXRQcm90b3R5cGVPZjtlbHNle3ZhciBWYjthOnt2YXIgV2I9e2E6ITB9LFhiPXt9O3RyeXtYYi5fX3Byb3RvX189V2I7VmI9WGIuYTticmVhayBhfWNhdGNoKGEpe31WYj0hMX1VYj1WYj9mdW5jdGlvbihhLGIpe2EuX19wcm90b19fPWI7aWYoYS5fX3Byb3RvX18hPT1iKXRocm93IG5ldyBUeXBlRXJyb3IoImJgIithKTtyZXR1cm4gYX06bnVsbH1ZYj1VYjsKXy5CPWZ1bmN0aW9uKGEsYil7YS5wcm90b3R5cGU9TWIoYi5wcm90b3R5cGUpO2EucHJvdG90eXBlLmNvbnN0cnVjdG9yPWE7aWYoWWIpWWIoYSxiKTtlbHNlIGZvcih2YXIgYyBpbiBiKWlmKGMhPSJwcm90b3R5cGUiKWlmKE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKXt2YXIgZD1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGIsYyk7ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsYyxkKX1lbHNlIGFbY109YltjXTthLmVhPWIucHJvdG90eXBlfTtaYj1mdW5jdGlvbihhKXt2YXIgYj0wO3JldHVybiBmdW5jdGlvbigpe3JldHVybiBiPGEubGVuZ3RoP3tkb25lOiExLHZhbHVlOmFbYisrXX06e2RvbmU6ITB9fX07Cl8uQz1mdW5jdGlvbihhKXt2YXIgYj10eXBlb2YgU3ltYm9sIT0idW5kZWZpbmVkIiYmU3ltYm9sLml0ZXJhdG9yJiZhW1N5bWJvbC5pdGVyYXRvcl07aWYoYilyZXR1cm4gYi5jYWxsKGEpO2lmKHR5cGVvZiBhLmxlbmd0aD09Im51bWJlciIpcmV0dXJue25leHQ6WmIoYSl9O3Rocm93IEVycm9yKCJjYCIrU3RyaW5nKGEpKTt9O18uJGI9ZnVuY3Rpb24oYSl7aWYoIShhIGluc3RhbmNlb2YgQXJyYXkpKXthPV8uQyhhKTtmb3IodmFyIGIsYz1bXTshKGI9YS5uZXh0KCkpLmRvbmU7KWMucHVzaChiLnZhbHVlKTthPWN9cmV0dXJuIGF9O2FjPWZ1bmN0aW9uKGEsYil7cmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChhLGIpfTsKYmM9dHlwZW9mIE9iamVjdC5hc3NpZ249PSJmdW5jdGlvbiI/T2JqZWN0LmFzc2lnbjpmdW5jdGlvbihhLGIpe2lmKGE9PW51bGwpdGhyb3cgbmV3IFR5cGVFcnJvcigiZCIpO2E9T2JqZWN0KGEpO2Zvcih2YXIgYz0xO2M8YXJndW1lbnRzLmxlbmd0aDtjKyspe3ZhciBkPWFyZ3VtZW50c1tjXTtpZihkKWZvcih2YXIgZSBpbiBkKWFjKGQsZSkmJihhW2VdPWRbZV0pfXJldHVybiBhfTt6KCJPYmplY3QuYXNzaWduIixmdW5jdGlvbihhKXtyZXR1cm4gYXx8YmN9KTtfLmNjPWZ1bmN0aW9uKGEpe2lmKCEoYSBpbnN0YW5jZW9mIE9iamVjdCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiZWAiK2EpO307Xy5GPWZ1bmN0aW9uKCl7dGhpcy5HPSExO3RoaXMuQT1udWxsO3RoaXMuaj12b2lkIDA7dGhpcy5nPTE7dGhpcy5vPXRoaXMuQz0wO3RoaXMuVz10aGlzLmw9bnVsbH07Xy5GLnByb3RvdHlwZS5JPWZ1bmN0aW9uKGEpe3RoaXMuaj1hfTsKXy5GLnByb3RvdHlwZS5nZXROZXh0QWRkcmVzc0pzYz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmd9O18uRi5wcm90b3R5cGUuZ2V0WWllbGRSZXN1bHRKc2M9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5qfTtfLkYucHJvdG90eXBlLnJldHVybj1mdW5jdGlvbihhKXt0aGlzLmw9e3JldHVybjphfTt0aGlzLmc9dGhpcy5vfTtfLkYucHJvdG90eXBlWyJyZXR1cm4iXT1fLkYucHJvdG90eXBlLnJldHVybjtfLkYucHJvdG90eXBlLlI9ZnVuY3Rpb24oYSl7dGhpcy5sPXt4YTphfTt0aGlzLmc9dGhpcy5vfTtfLkYucHJvdG90eXBlLmp1bXBUaHJvdWdoRmluYWxseUJsb2Nrcz1fLkYucHJvdG90eXBlLlI7Xy5GLnByb3RvdHlwZS5oPWZ1bmN0aW9uKGEsYil7dGhpcy5nPWI7cmV0dXJue3ZhbHVlOmF9fTtfLkYucHJvdG90eXBlLnlpZWxkPV8uRi5wcm90b3R5cGUuaDsKXy5GLnByb3RvdHlwZS5UPWZ1bmN0aW9uKGEsYil7YT1fLkMoYSk7dmFyIGM9YS5uZXh0KCk7Xy5jYyhjKTtpZihjLmRvbmUpdGhpcy5qPWMudmFsdWUsdGhpcy5nPWI7ZWxzZSByZXR1cm4gdGhpcy5BPWEsdGhpcy5oKGMudmFsdWUsYil9O18uRi5wcm90b3R5cGUueWllbGRBbGw9Xy5GLnByb3RvdHlwZS5UO18uRi5wcm90b3R5cGUueGE9ZnVuY3Rpb24oYSl7dGhpcy5nPWF9O18uRi5wcm90b3R5cGUuanVtcFRvPV8uRi5wcm90b3R5cGUueGE7Xy5GLnByb3RvdHlwZS5CPWZ1bmN0aW9uKCl7dGhpcy5nPTB9O18uRi5wcm90b3R5cGUuanVtcFRvRW5kPV8uRi5wcm90b3R5cGUuQjtfLkYucHJvdG90eXBlLkY9ZnVuY3Rpb24oYSxiKXt0aGlzLkM9YTtiIT12b2lkIDAmJih0aGlzLm89Yil9O18uRi5wcm90b3R5cGUuc2V0Q2F0Y2hGaW5hbGx5QmxvY2tzPV8uRi5wcm90b3R5cGUuRjtfLkYucHJvdG90eXBlLlA9ZnVuY3Rpb24oYSl7dGhpcy5DPTA7dGhpcy5vPWF8fDB9OwpfLkYucHJvdG90eXBlLnNldEZpbmFsbHlCbG9jaz1fLkYucHJvdG90eXBlLlA7Xy5GLnByb3RvdHlwZS5LPWZ1bmN0aW9uKGEsYil7dGhpcy5nPWE7dGhpcy5DPWJ8fDB9O18uRi5wcm90b3R5cGUubGVhdmVUcnlCbG9jaz1fLkYucHJvdG90eXBlLks7Xy5GLnByb3RvdHlwZS5EPWZ1bmN0aW9uKGEpe3RoaXMuQz1hfHwwO2E9dGhpcy5sLmJmO3RoaXMubD1udWxsO3JldHVybiBhfTtfLkYucHJvdG90eXBlLmVudGVyQ2F0Y2hCbG9jaz1fLkYucHJvdG90eXBlLkQ7Xy5GLnByb3RvdHlwZS5MPWZ1bmN0aW9uKGEsYixjKXtjP3RoaXMuV1tjXT10aGlzLmw6dGhpcy5XPVt0aGlzLmxdO3RoaXMuQz1hfHwwO3RoaXMubz1ifHwwfTtfLkYucHJvdG90eXBlLmVudGVyRmluYWxseUJsb2NrPV8uRi5wcm90b3R5cGUuTDsKXy5GLnByb3RvdHlwZS5xYT1mdW5jdGlvbihhLGIpe2I9dGhpcy5XLnNwbGljZShifHwwKVswXTsoYj10aGlzLmw9dGhpcy5sfHxiKT9iLkNmP3RoaXMuZz10aGlzLkN8fHRoaXMubzpiLnhhIT12b2lkIDAmJnRoaXMubzxiLnhhPyh0aGlzLmc9Yi54YSx0aGlzLmw9bnVsbCk6dGhpcy5nPXRoaXMubzp0aGlzLmc9YX07Xy5GLnByb3RvdHlwZS5sZWF2ZUZpbmFsbHlCbG9jaz1fLkYucHJvdG90eXBlLnFhO18uRi5wcm90b3R5cGUuTz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3IGRjKGEpfTtfLkYucHJvdG90eXBlLmZvckluPV8uRi5wcm90b3R5cGUuTzt2YXIgZGM9ZnVuY3Rpb24oYSl7dGhpcy5qPWE7dGhpcy5nPVtdO2Zvcih2YXIgYiBpbiBhKXRoaXMuZy5wdXNoKGIpO3RoaXMuZy5yZXZlcnNlKCl9O2RjLnByb3RvdHlwZS5oPWZ1bmN0aW9uKCl7Zm9yKDt0aGlzLmcubGVuZ3RoPjA7KXt2YXIgYT10aGlzLmcucG9wKCk7aWYoYSBpbiB0aGlzLmopcmV0dXJuIGF9cmV0dXJuIG51bGx9OwpkYy5wcm90b3R5cGUuZ2V0TmV4dD1kYy5wcm90b3R5cGUuaDtfLmVjPWZ1bmN0aW9uKCl7Zm9yKHZhciBhPU51bWJlcih0aGlzKSxiPVtdLGM9YTtjPGFyZ3VtZW50cy5sZW5ndGg7YysrKWJbYy1hXT1hcmd1bWVudHNbY107cmV0dXJuIGJ9O3ooImdsb2JhbFRoaXMiLGZ1bmN0aW9uKGEpe3JldHVybiBhfHxfLlBifSk7eigiUmVmbGVjdCIsZnVuY3Rpb24oYSl7cmV0dXJuIGE/YTp7fX0pO3ooIlJlZmxlY3QuY29uc3RydWN0IixmdW5jdGlvbigpe3JldHVybiBfLlRifSk7eigiUmVmbGVjdC5zZXRQcm90b3R5cGVPZiIsZnVuY3Rpb24oYSl7cmV0dXJuIGE/YTpZYj9mdW5jdGlvbihiLGMpe3RyeXtyZXR1cm4gWWIoYixjKSwhMH1jYXRjaChkKXtyZXR1cm4hMX19Om51bGx9KTsKeigiU3ltYm9sIixmdW5jdGlvbihhKXtpZihhKXJldHVybiBhO3ZhciBiPWZ1bmN0aW9uKGYsZyl7dGhpcy5nPWY7TmIodGhpcywiZGVzY3JpcHRpb24iLHtjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Z30pfTtiLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmd9O3ZhciBjPSJqc2NvbXBfc3ltYm9sXyIrKE1hdGgucmFuZG9tKCkqMUU5Pj4+MCkrIl8iLGQ9MCxlPWZ1bmN0aW9uKGYpe2lmKHRoaXMgaW5zdGFuY2VvZiBlKXRocm93IG5ldyBUeXBlRXJyb3IoImciKTtyZXR1cm4gbmV3IGIoYysoZnx8IiIpKyJfIitkKyssZil9O3JldHVybiBlfSk7eigiU3ltYm9sLml0ZXJhdG9yIixmdW5jdGlvbihhKXtpZihhKXJldHVybiBhO2E9U3ltYm9sKCJoIik7TmIoQXJyYXkucHJvdG90eXBlLGEse2NvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpmdW5jdGlvbigpe3JldHVybiBmYyhaYih0aGlzKSl9fSk7cmV0dXJuIGF9KTsKdmFyIGZjPWZ1bmN0aW9uKGEpe2E9e25leHQ6YX07YVtTeW1ib2wuaXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9O3JldHVybiBhfTsKeigiUHJvbWlzZSIsZnVuY3Rpb24oYSl7ZnVuY3Rpb24gYigpe3RoaXMuZz1udWxsfWZ1bmN0aW9uIGMoZyl7cmV0dXJuIGcgaW5zdGFuY2VvZiBlP2c6bmV3IGUoZnVuY3Rpb24oaCl7aChnKX0pfWlmKGEpcmV0dXJuIGE7Yi5wcm90b3R5cGUuaD1mdW5jdGlvbihnKXtpZih0aGlzLmc9PW51bGwpe3RoaXMuZz1bXTt2YXIgaD10aGlzO3RoaXMuaihmdW5jdGlvbigpe2gubygpfSl9dGhpcy5nLnB1c2goZyl9O3ZhciBkPV8uUGIuc2V0VGltZW91dDtiLnByb3RvdHlwZS5qPWZ1bmN0aW9uKGcpe2QoZywwKX07Yi5wcm90b3R5cGUubz1mdW5jdGlvbigpe2Zvcig7dGhpcy5nJiZ0aGlzLmcubGVuZ3RoOyl7dmFyIGc9dGhpcy5nO3RoaXMuZz1bXTtmb3IodmFyIGg9MDtoPGcubGVuZ3RoOysraCl7dmFyIGs9Z1toXTtnW2hdPW51bGw7dHJ5e2soKX1jYXRjaChsKXt0aGlzLmwobCl9fX10aGlzLmc9bnVsbH07Yi5wcm90b3R5cGUubD1mdW5jdGlvbihnKXt0aGlzLmooZnVuY3Rpb24oKXt0aHJvdyBnOwp9KX07dmFyIGU9ZnVuY3Rpb24oZyl7dGhpcy5nPTA7dGhpcy5qPXZvaWQgMDt0aGlzLmg9W107dGhpcy5CPSExO3ZhciBoPXRoaXMubCgpO3RyeXtnKGgucmVzb2x2ZSxoLnJlamVjdCl9Y2F0Y2goayl7aC5yZWplY3Qoayl9fTtlLnByb3RvdHlwZS5sPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZyhsKXtyZXR1cm4gZnVuY3Rpb24obil7a3x8KGs9ITAsbC5jYWxsKGgsbikpfX12YXIgaD10aGlzLGs9ITE7cmV0dXJue3Jlc29sdmU6Zyh0aGlzLkkpLHJlamVjdDpnKHRoaXMubyl9fTtlLnByb3RvdHlwZS5JPWZ1bmN0aW9uKGcpe2lmKGc9PT10aGlzKXRoaXMubyhuZXcgVHlwZUVycm9yKCJpIikpO2Vsc2UgaWYoZyBpbnN0YW5jZW9mIGUpdGhpcy5LKGcpO2Vsc2V7YTpzd2l0Y2godHlwZW9mIGcpe2Nhc2UgIm9iamVjdCI6dmFyIGg9ZyE9bnVsbDticmVhayBhO2Nhc2UgImZ1bmN0aW9uIjpoPSEwO2JyZWFrIGE7ZGVmYXVsdDpoPSExfWg/dGhpcy5HKGcpOnRoaXMuQShnKX19O2UucHJvdG90eXBlLkc9CmZ1bmN0aW9uKGcpe3ZhciBoPXZvaWQgMDt0cnl7aD1nLnRoZW59Y2F0Y2goayl7dGhpcy5vKGspO3JldHVybn10eXBlb2YgaD09ImZ1bmN0aW9uIj90aGlzLkwoaCxnKTp0aGlzLkEoZyl9O2UucHJvdG90eXBlLm89ZnVuY3Rpb24oZyl7dGhpcy5DKDIsZyl9O2UucHJvdG90eXBlLkE9ZnVuY3Rpb24oZyl7dGhpcy5DKDEsZyl9O2UucHJvdG90eXBlLkM9ZnVuY3Rpb24oZyxoKXtpZih0aGlzLmchPTApdGhyb3cgRXJyb3IoImpgIitnKyJgIitoKyJgIit0aGlzLmcpO3RoaXMuZz1nO3RoaXMuaj1oO3RoaXMuZz09PTImJnRoaXMuVygpO3RoaXMuRCgpfTtlLnByb3RvdHlwZS5XPWZ1bmN0aW9uKCl7dmFyIGc9dGhpcztkKGZ1bmN0aW9uKCl7aWYoZy5GKCkpe3ZhciBoPV8uUGIuY29uc29sZTt0eXBlb2YgaCE9PSJ1bmRlZmluZWQiJiZoLmVycm9yKGcuail9fSwxKX07ZS5wcm90b3R5cGUuRj1mdW5jdGlvbigpe2lmKHRoaXMuQilyZXR1cm4hMTt2YXIgZz1fLlBiLkN1c3RvbUV2ZW50LApoPV8uUGIuRXZlbnQsaz1fLlBiLmRpc3BhdGNoRXZlbnQ7aWYodHlwZW9mIGs9PT0idW5kZWZpbmVkIilyZXR1cm4hMDt0eXBlb2YgZz09PSJmdW5jdGlvbiI/Zz1uZXcgZygidW5oYW5kbGVkcmVqZWN0aW9uIix7Y2FuY2VsYWJsZTohMH0pOnR5cGVvZiBoPT09ImZ1bmN0aW9uIj9nPW5ldyBoKCJ1bmhhbmRsZWRyZWplY3Rpb24iLHtjYW5jZWxhYmxlOiEwfSk6KGc9Xy5QYi5kb2N1bWVudC5jcmVhdGVFdmVudCgiQ3VzdG9tRXZlbnQiKSxnLmluaXRDdXN0b21FdmVudCgidW5oYW5kbGVkcmVqZWN0aW9uIiwhMSwhMCxnKSk7Zy5wcm9taXNlPXRoaXM7Zy5yZWFzb249dGhpcy5qO3JldHVybiBrKGcpfTtlLnByb3RvdHlwZS5EPWZ1bmN0aW9uKCl7aWYodGhpcy5oIT1udWxsKXtmb3IodmFyIGc9MDtnPHRoaXMuaC5sZW5ndGg7KytnKWYuaCh0aGlzLmhbZ10pO3RoaXMuaD1udWxsfX07dmFyIGY9bmV3IGI7ZS5wcm90b3R5cGUuSz1mdW5jdGlvbihnKXt2YXIgaD10aGlzLmwoKTtnLkljKGgucmVzb2x2ZSwKaC5yZWplY3QpfTtlLnByb3RvdHlwZS5MPWZ1bmN0aW9uKGcsaCl7dmFyIGs9dGhpcy5sKCk7dHJ5e2cuY2FsbChoLGsucmVzb2x2ZSxrLnJlamVjdCl9Y2F0Y2gobCl7ay5yZWplY3QobCl9fTtlLnByb3RvdHlwZS50aGVuPWZ1bmN0aW9uKGcsaCl7ZnVuY3Rpb24gayhwLHIpe3JldHVybiB0eXBlb2YgcD09ImZ1bmN0aW9uIj9mdW5jdGlvbih0KXt0cnl7bChwKHQpKX1jYXRjaChBKXtuKEEpfX06cn12YXIgbCxuLHE9bmV3IGUoZnVuY3Rpb24ocCxyKXtsPXA7bj1yfSk7dGhpcy5JYyhrKGcsbCksayhoLG4pKTtyZXR1cm4gcX07ZS5wcm90b3R5cGUuY2F0Y2g9ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMudGhlbih2b2lkIDAsZyl9O2UucHJvdG90eXBlLkljPWZ1bmN0aW9uKGcsaCl7ZnVuY3Rpb24gaygpe3N3aXRjaChsLmcpe2Nhc2UgMTpnKGwuaik7YnJlYWs7Y2FzZSAyOmgobC5qKTticmVhaztkZWZhdWx0OnRocm93IEVycm9yKCJrYCIrbC5nKTt9fXZhciBsPXRoaXM7dGhpcy5oPT0KbnVsbD9mLmgoayk6dGhpcy5oLnB1c2goayk7dGhpcy5CPSEwfTtlLnJlc29sdmU9YztlLnJlamVjdD1mdW5jdGlvbihnKXtyZXR1cm4gbmV3IGUoZnVuY3Rpb24oaCxrKXtrKGcpfSl9O2UucmFjZT1mdW5jdGlvbihnKXtyZXR1cm4gbmV3IGUoZnVuY3Rpb24oaCxrKXtmb3IodmFyIGw9Xy5DKGcpLG49bC5uZXh0KCk7IW4uZG9uZTtuPWwubmV4dCgpKWMobi52YWx1ZSkuSWMoaCxrKX0pfTtlLmFsbD1mdW5jdGlvbihnKXt2YXIgaD1fLkMoZyksaz1oLm5leHQoKTtyZXR1cm4gay5kb25lP2MoW10pOm5ldyBlKGZ1bmN0aW9uKGwsbil7ZnVuY3Rpb24gcSh0KXtyZXR1cm4gZnVuY3Rpb24oQSl7cFt0XT1BO3ItLTtyPT0wJiZsKHApfX12YXIgcD1bXSxyPTA7ZG8gcC5wdXNoKHZvaWQgMCkscisrLGMoay52YWx1ZSkuSWMocShwLmxlbmd0aC0xKSxuKSxrPWgubmV4dCgpO3doaWxlKCFrLmRvbmUpfSl9O3JldHVybiBlfSk7CnZhciBoYz1mdW5jdGlvbihhLGIsYyl7aWYoYT09bnVsbCl0aHJvdyBuZXcgVHlwZUVycm9yKCJsYCIrYyk7aWYoYiBpbnN0YW5jZW9mIFJlZ0V4cCl0aHJvdyBuZXcgVHlwZUVycm9yKCJtYCIrYyk7cmV0dXJuIGErIiJ9O3ooIlN0cmluZy5wcm90b3R5cGUuc3RhcnRzV2l0aCIsZnVuY3Rpb24oYSl7cmV0dXJuIGE/YTpmdW5jdGlvbihiLGMpe3ZhciBkPWhjKHRoaXMsYiwic3RhcnRzV2l0aCIpLGU9ZC5sZW5ndGgsZj1iLmxlbmd0aDtjPU1hdGgubWF4KDAsTWF0aC5taW4oY3wwLGQubGVuZ3RoKSk7Zm9yKHZhciBnPTA7ZzxmJiZjPGU7KWlmKGRbYysrXSE9YltnKytdKXJldHVybiExO3JldHVybiBnPj1mfX0pO3ooIk9iamVjdC5zZXRQcm90b3R5cGVPZiIsZnVuY3Rpb24oYSl7cmV0dXJuIGF8fFlifSk7eigiU3ltYm9sLmRpc3Bvc2UiLGZ1bmN0aW9uKGEpe3JldHVybiBhP2E6U3ltYm9sKCJuIil9KTsKeigiV2Vha01hcCIsZnVuY3Rpb24oYSl7ZnVuY3Rpb24gYigpe31mdW5jdGlvbiBjKGspe3ZhciBsPXR5cGVvZiBrO3JldHVybiBsPT09Im9iamVjdCImJmshPT1udWxsfHxsPT09ImZ1bmN0aW9uIn1mdW5jdGlvbiBkKGspe2lmKCFhYyhrLGYpKXt2YXIgbD1uZXcgYjtOYihrLGYse3ZhbHVlOmx9KX19ZnVuY3Rpb24gZShrKXt2YXIgbD1PYmplY3Rba107bCYmKE9iamVjdFtrXT1mdW5jdGlvbihuKXtpZihuIGluc3RhbmNlb2YgYilyZXR1cm4gbjtPYmplY3QuaXNFeHRlbnNpYmxlKG4pJiZkKG4pO3JldHVybiBsKG4pfSl9aWYoZnVuY3Rpb24oKXtpZighYXx8IU9iamVjdC5zZWFsKXJldHVybiExO3RyeXt2YXIgaz1PYmplY3Quc2VhbCh7fSksbD1PYmplY3Quc2VhbCh7fSksbj1uZXcgYShbW2ssMl0sW2wsM11dKTtpZihuLmdldChrKSE9Mnx8bi5nZXQobCkhPTMpcmV0dXJuITE7bi5kZWxldGUoayk7bi5zZXQobCw0KTtyZXR1cm4hbi5oYXMoaykmJm4uZ2V0KGwpPT00fWNhdGNoKHEpe3JldHVybiExfX0oKSlyZXR1cm4gYTsKdmFyIGY9IiRqc2NvbXBfaGlkZGVuXyIrTWF0aC5yYW5kb20oKTtlKCJmcmVlemUiKTtlKCJwcmV2ZW50RXh0ZW5zaW9ucyIpO2UoInNlYWwiKTt2YXIgZz0wLGg9ZnVuY3Rpb24oayl7dGhpcy5nPShnKz1NYXRoLnJhbmRvbSgpKzEpLnRvU3RyaW5nKCk7aWYoayl7az1fLkMoayk7Zm9yKHZhciBsOyEobD1rLm5leHQoKSkuZG9uZTspbD1sLnZhbHVlLHRoaXMuc2V0KGxbMF0sbFsxXSl9fTtoLnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24oayxsKXtpZighYyhrKSl0aHJvdyBFcnJvcigibyIpO2Qoayk7aWYoIWFjKGssZikpdGhyb3cgRXJyb3IoInBgIitrKTtrW2ZdW3RoaXMuZ109bDtyZXR1cm4gdGhpc307aC5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKGspe3JldHVybiBjKGspJiZhYyhrLGYpP2tbZl1bdGhpcy5nXTp2b2lkIDB9O2gucHJvdG90eXBlLmhhcz1mdW5jdGlvbihrKXtyZXR1cm4gYyhrKSYmYWMoayxmKSYmYWMoa1tmXSx0aGlzLmcpfTtoLnByb3RvdHlwZS5kZWxldGU9ZnVuY3Rpb24oayl7cmV0dXJuIGMoaykmJgphYyhrLGYpJiZhYyhrW2ZdLHRoaXMuZyk/ZGVsZXRlIGtbZl1bdGhpcy5nXTohMX07cmV0dXJuIGh9KTsKeigiTWFwIixmdW5jdGlvbihhKXtpZihmdW5jdGlvbigpe2lmKCFhfHx0eXBlb2YgYSE9ImZ1bmN0aW9uInx8IWEucHJvdG90eXBlLmVudHJpZXN8fHR5cGVvZiBPYmplY3Quc2VhbCE9ImZ1bmN0aW9uIilyZXR1cm4hMTt0cnl7dmFyIGg9T2JqZWN0LnNlYWwoe3g6NH0pLGs9bmV3IGEoXy5DKFtbaCwicyJdXSkpO2lmKGsuZ2V0KGgpIT0icyJ8fGsuc2l6ZSE9MXx8ay5nZXQoe3g6NH0pfHxrLnNldCh7eDo0fSwidCIpIT1rfHxrLnNpemUhPTIpcmV0dXJuITE7dmFyIGw9ay5lbnRyaWVzKCksbj1sLm5leHQoKTtpZihuLmRvbmV8fG4udmFsdWVbMF0hPWh8fG4udmFsdWVbMV0hPSJzIilyZXR1cm4hMTtuPWwubmV4dCgpO3JldHVybiBuLmRvbmV8fG4udmFsdWVbMF0ueCE9NHx8bi52YWx1ZVsxXSE9InQifHwhbC5uZXh0KCkuZG9uZT8hMTohMH1jYXRjaChxKXtyZXR1cm4hMX19KCkpcmV0dXJuIGE7dmFyIGI9bmV3IFdlYWtNYXAsYz1mdW5jdGlvbihoKXt0aGlzWzBdPXt9O3RoaXNbMV09CmYoKTt0aGlzLnNpemU9MDtpZihoKXtoPV8uQyhoKTtmb3IodmFyIGs7IShrPWgubmV4dCgpKS5kb25lOylrPWsudmFsdWUsdGhpcy5zZXQoa1swXSxrWzFdKX19O2MucHJvdG90eXBlLnNldD1mdW5jdGlvbihoLGspe2g9aD09PTA/MDpoO3ZhciBsPWQodGhpcyxoKTtsLmxpc3R8fChsLmxpc3Q9dGhpc1swXVtsLmlkXT1bXSk7bC5lbnRyeT9sLmVudHJ5LnZhbHVlPWs6KGwuZW50cnk9e25leHQ6dGhpc1sxXSxiYjp0aGlzWzFdLmJiLGhlYWQ6dGhpc1sxXSxrZXk6aCx2YWx1ZTprfSxsLmxpc3QucHVzaChsLmVudHJ5KSx0aGlzWzFdLmJiLm5leHQ9bC5lbnRyeSx0aGlzWzFdLmJiPWwuZW50cnksdGhpcy5zaXplKyspO3JldHVybiB0aGlzfTtjLnByb3RvdHlwZS5kZWxldGU9ZnVuY3Rpb24oaCl7aD1kKHRoaXMsaCk7cmV0dXJuIGguZW50cnkmJmgubGlzdD8oaC5saXN0LnNwbGljZShoLmluZGV4LDEpLGgubGlzdC5sZW5ndGh8fGRlbGV0ZSB0aGlzWzBdW2guaWRdLGguZW50cnkuYmIubmV4dD0KaC5lbnRyeS5uZXh0LGguZW50cnkubmV4dC5iYj1oLmVudHJ5LmJiLGguZW50cnkuaGVhZD1udWxsLHRoaXMuc2l6ZS0tLCEwKTohMX07Yy5wcm90b3R5cGUuY2xlYXI9ZnVuY3Rpb24oKXt0aGlzWzBdPXt9O3RoaXNbMV09dGhpc1sxXS5iYj1mKCk7dGhpcy5zaXplPTB9O2MucHJvdG90eXBlLmhhcz1mdW5jdGlvbihoKXtyZXR1cm4hIWQodGhpcyxoKS5lbnRyeX07Yy5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKGgpe3JldHVybihoPWQodGhpcyxoKS5lbnRyeSkmJmgudmFsdWV9O2MucHJvdG90eXBlLmVudHJpZXM9ZnVuY3Rpb24oKXtyZXR1cm4gZSh0aGlzLGZ1bmN0aW9uKGgpe3JldHVybltoLmtleSxoLnZhbHVlXX0pfTtjLnByb3RvdHlwZS5rZXlzPWZ1bmN0aW9uKCl7cmV0dXJuIGUodGhpcyxmdW5jdGlvbihoKXtyZXR1cm4gaC5rZXl9KX07Yy5wcm90b3R5cGUudmFsdWVzPWZ1bmN0aW9uKCl7cmV0dXJuIGUodGhpcyxmdW5jdGlvbihoKXtyZXR1cm4gaC52YWx1ZX0pfTtjLnByb3RvdHlwZS5mb3JFYWNoPQpmdW5jdGlvbihoLGspe2Zvcih2YXIgbD10aGlzLmVudHJpZXMoKSxuOyEobj1sLm5leHQoKSkuZG9uZTspbj1uLnZhbHVlLGguY2FsbChrLG5bMV0sblswXSx0aGlzKX07Yy5wcm90b3R5cGVbU3ltYm9sLml0ZXJhdG9yXT1jLnByb3RvdHlwZS5lbnRyaWVzO3ZhciBkPWZ1bmN0aW9uKGgsayl7dmFyIGw9ayYmdHlwZW9mIGs7bD09Im9iamVjdCJ8fGw9PSJmdW5jdGlvbiI/Yi5oYXMoayk/bD1iLmdldChrKToobD0iIisgKytnLGIuc2V0KGssbCkpOmw9InBfIitrO3ZhciBuPWhbMF1bbF07aWYobiYmYWMoaFswXSxsKSlmb3IoaD0wO2g8bi5sZW5ndGg7aCsrKXt2YXIgcT1uW2hdO2lmKGshPT1rJiZxLmtleSE9PXEua2V5fHxrPT09cS5rZXkpcmV0dXJue2lkOmwsbGlzdDpuLGluZGV4OmgsZW50cnk6cX19cmV0dXJue2lkOmwsbGlzdDpuLGluZGV4Oi0xLGVudHJ5OnZvaWQgMH19LGU9ZnVuY3Rpb24oaCxrKXt2YXIgbD1oWzFdO3JldHVybiBmYyhmdW5jdGlvbigpe2lmKGwpe2Zvcig7bC5oZWFkIT0KaFsxXTspbD1sLmJiO2Zvcig7bC5uZXh0IT1sLmhlYWQ7KXJldHVybiBsPWwubmV4dCx7ZG9uZTohMSx2YWx1ZTprKGwpfTtsPW51bGx9cmV0dXJue2RvbmU6ITAsdmFsdWU6dm9pZCAwfX0pfSxmPWZ1bmN0aW9uKCl7dmFyIGg9e307cmV0dXJuIGguYmI9aC5uZXh0PWguaGVhZD1ofSxnPTA7cmV0dXJuIGN9KTsKeigiU2V0IixmdW5jdGlvbihhKXtpZihmdW5jdGlvbigpe2lmKCFhfHx0eXBlb2YgYSE9ImZ1bmN0aW9uInx8IWEucHJvdG90eXBlLmVudHJpZXN8fHR5cGVvZiBPYmplY3Quc2VhbCE9ImZ1bmN0aW9uIilyZXR1cm4hMTt0cnl7dmFyIGM9T2JqZWN0LnNlYWwoe3g6NH0pLGQ9bmV3IGEoXy5DKFtjXSkpO2lmKCFkLmhhcyhjKXx8ZC5zaXplIT0xfHxkLmFkZChjKSE9ZHx8ZC5zaXplIT0xfHxkLmFkZCh7eDo0fSkhPWR8fGQuc2l6ZSE9MilyZXR1cm4hMTt2YXIgZT1kLmVudHJpZXMoKSxmPWUubmV4dCgpO2lmKGYuZG9uZXx8Zi52YWx1ZVswXSE9Y3x8Zi52YWx1ZVsxXSE9YylyZXR1cm4hMTtmPWUubmV4dCgpO3JldHVybiBmLmRvbmV8fGYudmFsdWVbMF09PWN8fGYudmFsdWVbMF0ueCE9NHx8Zi52YWx1ZVsxXSE9Zi52YWx1ZVswXT8hMTplLm5leHQoKS5kb25lfWNhdGNoKGcpe3JldHVybiExfX0oKSlyZXR1cm4gYTt2YXIgYj1mdW5jdGlvbihjKXt0aGlzLmc9bmV3IE1hcDtpZihjKXtjPQpfLkMoYyk7Zm9yKHZhciBkOyEoZD1jLm5leHQoKSkuZG9uZTspdGhpcy5hZGQoZC52YWx1ZSl9dGhpcy5zaXplPXRoaXMuZy5zaXplfTtiLnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24oYyl7Yz1jPT09MD8wOmM7dGhpcy5nLnNldChjLGMpO3RoaXMuc2l6ZT10aGlzLmcuc2l6ZTtyZXR1cm4gdGhpc307Yi5wcm90b3R5cGUuZGVsZXRlPWZ1bmN0aW9uKGMpe2M9dGhpcy5nLmRlbGV0ZShjKTt0aGlzLnNpemU9dGhpcy5nLnNpemU7cmV0dXJuIGN9O2IucHJvdG90eXBlLmNsZWFyPWZ1bmN0aW9uKCl7dGhpcy5nLmNsZWFyKCk7dGhpcy5zaXplPTB9O2IucHJvdG90eXBlLmhhcz1mdW5jdGlvbihjKXtyZXR1cm4gdGhpcy5nLmhhcyhjKX07Yi5wcm90b3R5cGUuZW50cmllcz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmcuZW50cmllcygpfTtiLnByb3RvdHlwZS52YWx1ZXM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nLnZhbHVlcygpfTtiLnByb3RvdHlwZS5rZXlzPWIucHJvdG90eXBlLnZhbHVlczsKYi5wcm90b3R5cGVbU3ltYm9sLml0ZXJhdG9yXT1iLnByb3RvdHlwZS52YWx1ZXM7Yi5wcm90b3R5cGUuZm9yRWFjaD1mdW5jdGlvbihjLGQpe3ZhciBlPXRoaXM7dGhpcy5nLmZvckVhY2goZnVuY3Rpb24oZil7cmV0dXJuIGMuY2FsbChkLGYsZixlKX0pfTtyZXR1cm4gYn0pO3ZhciBpYz1mdW5jdGlvbihhLGIpe2EgaW5zdGFuY2VvZiBTdHJpbmcmJihhKz0iIik7dmFyIGM9MCxkPSExLGU9e25leHQ6ZnVuY3Rpb24oKXtpZighZCYmYzxhLmxlbmd0aCl7dmFyIGY9YysrO3JldHVybnt2YWx1ZTpiKGYsYVtmXSksZG9uZTohMX19ZD0hMDtyZXR1cm57ZG9uZTohMCx2YWx1ZTp2b2lkIDB9fX07ZVtTeW1ib2wuaXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIGV9O3JldHVybiBlfTt6KCJBcnJheS5wcm90b3R5cGUuZW50cmllcyIsZnVuY3Rpb24oYSl7cmV0dXJuIGE/YTpmdW5jdGlvbigpe3JldHVybiBpYyh0aGlzLGZ1bmN0aW9uKGIsYyl7cmV0dXJuW2IsY119KX19KTsKeigiQXJyYXkucHJvdG90eXBlLmtleXMiLGZ1bmN0aW9uKGEpe3JldHVybiBhP2E6ZnVuY3Rpb24oKXtyZXR1cm4gaWModGhpcyxmdW5jdGlvbihiKXtyZXR1cm4gYn0pfX0pO3ooIlN0cmluZy5wcm90b3R5cGUuZW5kc1dpdGgiLGZ1bmN0aW9uKGEpe3JldHVybiBhP2E6ZnVuY3Rpb24oYixjKXt2YXIgZD1oYyh0aGlzLGIsImVuZHNXaXRoIik7Yz09PXZvaWQgMCYmKGM9ZC5sZW5ndGgpO2M9TWF0aC5tYXgoMCxNYXRoLm1pbihjfDAsZC5sZW5ndGgpKTtmb3IodmFyIGU9Yi5sZW5ndGg7ZT4wJiZjPjA7KWlmKGRbLS1jXSE9YlstLWVdKXJldHVybiExO3JldHVybiBlPD0wfX0pO3ooIk51bWJlci5pc0Zpbml0ZSIsZnVuY3Rpb24oYSl7cmV0dXJuIGE/YTpmdW5jdGlvbihiKXtyZXR1cm4gdHlwZW9mIGIhPT0ibnVtYmVyIj8hMTohaXNOYU4oYikmJmIhPT1JbmZpbml0eSYmYiE9PS1JbmZpbml0eX19KTsKeigiQXJyYXkucHJvdG90eXBlLmZpbmQiLGZ1bmN0aW9uKGEpe3JldHVybiBhP2E6ZnVuY3Rpb24oYixjKXthOnt2YXIgZD10aGlzO2QgaW5zdGFuY2VvZiBTdHJpbmcmJihkPVN0cmluZyhkKSk7Zm9yKHZhciBlPWQubGVuZ3RoLGY9MDtmPGU7ZisrKXt2YXIgZz1kW2ZdO2lmKGIuY2FsbChjLGcsZixkKSl7Yj1nO2JyZWFrIGF9fWI9dm9pZCAwfXJldHVybiBifX0pO3ooIk9iamVjdC5lbnRyaWVzIixmdW5jdGlvbihhKXtyZXR1cm4gYT9hOmZ1bmN0aW9uKGIpe3ZhciBjPVtdLGQ7Zm9yKGQgaW4gYilhYyhiLGQpJiZjLnB1c2goW2QsYltkXV0pO3JldHVybiBjfX0pOwp6KCJBcnJheS5mcm9tIixmdW5jdGlvbihhKXtyZXR1cm4gYT9hOmZ1bmN0aW9uKGIsYyxkKXtjPWMhPW51bGw/YzpmdW5jdGlvbihoKXtyZXR1cm4gaH07dmFyIGU9W10sZj10eXBlb2YgU3ltYm9sIT0idW5kZWZpbmVkIiYmU3ltYm9sLml0ZXJhdG9yJiZiW1N5bWJvbC5pdGVyYXRvcl07aWYodHlwZW9mIGY9PSJmdW5jdGlvbiIpe2I9Zi5jYWxsKGIpO2Zvcih2YXIgZz0wOyEoZj1iLm5leHQoKSkuZG9uZTspZS5wdXNoKGMuY2FsbChkLGYudmFsdWUsZysrKSl9ZWxzZSBmb3IoZj1iLmxlbmd0aCxnPTA7ZzxmO2crKyllLnB1c2goYy5jYWxsKGQsYltnXSxnKSk7cmV0dXJuIGV9fSk7eigiQXJyYXkucHJvdG90eXBlLnZhbHVlcyIsZnVuY3Rpb24oYSl7cmV0dXJuIGE/YTpmdW5jdGlvbigpe3JldHVybiBpYyh0aGlzLGZ1bmN0aW9uKGIsYyl7cmV0dXJuIGN9KX19KTsKeigiT2JqZWN0LnZhbHVlcyIsZnVuY3Rpb24oYSl7cmV0dXJuIGE/YTpmdW5jdGlvbihiKXt2YXIgYz1bXSxkO2ZvcihkIGluIGIpYWMoYixkKSYmYy5wdXNoKGJbZF0pO3JldHVybiBjfX0pO3ooIk9iamVjdC5pcyIsZnVuY3Rpb24oYSl7cmV0dXJuIGE/YTpmdW5jdGlvbihiLGMpe3JldHVybiBiPT09Yz9iIT09MHx8MS9iPT09MS9jOmIhPT1iJiZjIT09Y319KTt6KCJBcnJheS5wcm90b3R5cGUuaW5jbHVkZXMiLGZ1bmN0aW9uKGEpe3JldHVybiBhP2E6ZnVuY3Rpb24oYixjKXt2YXIgZD10aGlzO2QgaW5zdGFuY2VvZiBTdHJpbmcmJihkPVN0cmluZyhkKSk7dmFyIGU9ZC5sZW5ndGg7Yz1jfHwwO2ZvcihjPDAmJihjPU1hdGgubWF4KGMrZSwwKSk7YzxlO2MrKyl7dmFyIGY9ZFtjXTtpZihmPT09Ynx8T2JqZWN0LmlzKGYsYikpcmV0dXJuITB9cmV0dXJuITF9fSk7CnooIlN0cmluZy5wcm90b3R5cGUuaW5jbHVkZXMiLGZ1bmN0aW9uKGEpe3JldHVybiBhP2E6ZnVuY3Rpb24oYixjKXtyZXR1cm4gaGModGhpcyxiLCJpbmNsdWRlcyIpLmluZGV4T2YoYixjfHwwKSE9PS0xfX0pO3ooIk51bWJlci5NQVhfU0FGRV9JTlRFR0VSIixmdW5jdGlvbigpe3JldHVybiA5MDA3MTk5MjU0NzQwOTkxfSk7eigiTnVtYmVyLk1JTl9TQUZFX0lOVEVHRVIiLGZ1bmN0aW9uKCl7cmV0dXJuLTkwMDcxOTkyNTQ3NDA5OTF9KTt6KCJOdW1iZXIuaXNJbnRlZ2VyIixmdW5jdGlvbihhKXtyZXR1cm4gYT9hOmZ1bmN0aW9uKGIpe3JldHVybiBOdW1iZXIuaXNGaW5pdGUoYik/Yj09PU1hdGguZmxvb3IoYik6ITF9fSk7eigiTnVtYmVyLmlzU2FmZUludGVnZXIiLGZ1bmN0aW9uKGEpe3JldHVybiBhP2E6ZnVuY3Rpb24oYil7cmV0dXJuIE51bWJlci5pc0ludGVnZXIoYikmJk1hdGguYWJzKGIpPD1OdW1iZXIuTUFYX1NBRkVfSU5URUdFUn19KTsKeigiT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyIsZnVuY3Rpb24oYSl7cmV0dXJuIGE/YTpmdW5jdGlvbigpe3JldHVybltdfX0pO3ooIk1hdGgudHJ1bmMiLGZ1bmN0aW9uKGEpe3JldHVybiBhP2E6ZnVuY3Rpb24oYil7Yj1OdW1iZXIoYik7aWYoaXNOYU4oYil8fGI9PT1JbmZpbml0eXx8Yj09PS1JbmZpbml0eXx8Yj09PTApcmV0dXJuIGI7dmFyIGM9TWF0aC5mbG9vcihNYXRoLmFicyhiKSk7cmV0dXJuIGI8MD8tYzpjfX0pO3ooIk51bWJlci5pc05hTiIsZnVuY3Rpb24oYSl7cmV0dXJuIGE/YTpmdW5jdGlvbihiKXtyZXR1cm4gdHlwZW9mIGI9PT0ibnVtYmVyIiYmaXNOYU4oYil9fSk7CnooIlN0cmluZy5wcm90b3R5cGUucmVwbGFjZUFsbCIsZnVuY3Rpb24oYSl7cmV0dXJuIGE/YTpmdW5jdGlvbihiLGMpe2lmKGIgaW5zdGFuY2VvZiBSZWdFeHAmJiFiLmdsb2JhbCl0aHJvdyBuZXcgVHlwZUVycm9yKCJxIik7cmV0dXJuIGIgaW5zdGFuY2VvZiBSZWdFeHA/dGhpcy5yZXBsYWNlKGIsYyk6dGhpcy5yZXBsYWNlKG5ldyBSZWdFeHAoU3RyaW5nKGIpLnJlcGxhY2UoLyhbLSgpXFtcXXt9Kz8qLiRcXnwsOiM8IVxcXSkvZywiXFwkMSIpLnJlcGxhY2UoL1x4MDgvZywiXFx4MDgiKSwiZyIpLGMpfX0pOwp6KCJBcnJheS5wcm90b3R5cGUuZmxhdCIsZnVuY3Rpb24oYSl7cmV0dXJuIGE/YTpmdW5jdGlvbihiKXtiPWI9PT12b2lkIDA/MTpiO3ZhciBjPVtdO0FycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwodGhpcyxmdW5jdGlvbihkKXtBcnJheS5pc0FycmF5KGQpJiZiPjA/KGQ9QXJyYXkucHJvdG90eXBlLmZsYXQuY2FsbChkLGItMSksYy5wdXNoLmFwcGx5KGMsZCkpOmMucHVzaChkKX0pO3JldHVybiBjfX0pO3ooIlByb21pc2UucHJvdG90eXBlLmZpbmFsbHkiLGZ1bmN0aW9uKGEpe3JldHVybiBhP2E6ZnVuY3Rpb24oYil7cmV0dXJuIHRoaXMudGhlbihmdW5jdGlvbihjKXtyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKGIoKSkudGhlbihmdW5jdGlvbigpe3JldHVybiBjfSl9LGZ1bmN0aW9uKGMpe3JldHVybiBQcm9taXNlLnJlc29sdmUoYigpKS50aGVuKGZ1bmN0aW9uKCl7dGhyb3cgYzt9KX0pfX0pOwp6KCJBcnJheS5wcm90b3R5cGUuZmlsbCIsZnVuY3Rpb24oYSl7cmV0dXJuIGE/YTpmdW5jdGlvbihiLGMsZCl7dmFyIGU9dGhpcy5sZW5ndGh8fDA7YzwwJiYoYz1NYXRoLm1heCgwLGUrYykpO2lmKGQ9PW51bGx8fGQ+ZSlkPWU7ZD1OdW1iZXIoZCk7ZDwwJiYoZD1NYXRoLm1heCgwLGUrZCkpO2ZvcihjPU51bWJlcihjfHwwKTtjPGQ7YysrKXRoaXNbY109YjtyZXR1cm4gdGhpc319KTtTYigiZmlsbCIsZnVuY3Rpb24oYSl7cmV0dXJuIGE/YTpBcnJheS5wcm90b3R5cGUuZmlsbH0pO18uX0R1bXBFeGNlcHRpb249d2luZG93Ll9EdW1wRXhjZXB0aW9ufHxmdW5jdGlvbihhKXt0aHJvdyBhO307d2luZG93Ll9EdW1wRXhjZXB0aW9uPV8uX0R1bXBFeGNlcHRpb247dmFyIGpjLGxjLG1jLG5jLHphLEFhLHBjLHFjO2pjPWpjfHx7fTtfLnY9dGhpc3x8c2VsZjtsYz1mdW5jdGlvbihhLGIpe3ZhciBjPV8ua2MoIldJWl9nbG9iYWxfZGF0YS5veE4zbmIiKTthPWMmJmNbYV07cmV0dXJuIGEhPW51bGw/YTpifTttYz1fLnYuX0ZfdG9nZ2xlc19kZWZhdWx0X3RyfHxbXTtuYz1mdW5jdGlvbigpe307bmMuZ2V0PWZ1bmN0aW9uKCl7cmV0dXJuIG51bGx9O18ua2M9ZnVuY3Rpb24oYSxiKXthPWEuc3BsaXQoIi4iKTtiPWJ8fF8udjtmb3IodmFyIGM9MDtjPGEubGVuZ3RoO2MrKylpZihiPWJbYVtjXV0sYj09bnVsbClyZXR1cm4gbnVsbDtyZXR1cm4gYn07Xy5vYz1mdW5jdGlvbihhKXt2YXIgYj10eXBlb2YgYTtyZXR1cm4gYiE9Im9iamVjdCI/YjphP0FycmF5LmlzQXJyYXkoYSk/ImFycmF5IjpiOiJudWxsIn07Xy5xYT1mdW5jdGlvbihhKXt2YXIgYj1fLm9jKGEpO3JldHVybiBiPT0iYXJyYXkifHxiPT0ib2JqZWN0IiYmdHlwZW9mIGEubGVuZ3RoPT0ibnVtYmVyIn07Cl8ueWE9ZnVuY3Rpb24oYSl7dmFyIGI9dHlwZW9mIGE7cmV0dXJuIGI9PSJvYmplY3QiJiZhIT1udWxsfHxiPT0iZnVuY3Rpb24ifTt6YT0iY2xvc3VyZV91aWRfIisoTWF0aC5yYW5kb20oKSoxRTk+Pj4wKTtBYT0wO3BjPWZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gYS5jYWxsLmFwcGx5KGEuYmluZCxhcmd1bWVudHMpfTtxYz1mdW5jdGlvbihhLGIsYyl7aWYoIWEpdGhyb3cgRXJyb3IoKTtpZihhcmd1bWVudHMubGVuZ3RoPjIpe3ZhciBkPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywyKTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgZT1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMpO0FycmF5LnByb3RvdHlwZS51bnNoaWZ0LmFwcGx5KGUsZCk7cmV0dXJuIGEuYXBwbHkoYixlKX19cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGEuYXBwbHkoYixhcmd1bWVudHMpfX07Cl8ueT1mdW5jdGlvbihhLGIsYyl7Xy55PUZ1bmN0aW9uLnByb3RvdHlwZS5iaW5kJiZGdW5jdGlvbi5wcm90b3R5cGUuYmluZC50b1N0cmluZygpLmluZGV4T2YoIm5hdGl2ZSBjb2RlIikhPS0xP3BjOnFjO3JldHVybiBfLnkuYXBwbHkobnVsbCxhcmd1bWVudHMpfTtfLnJjPWZ1bmN0aW9uKGEsYil7YT1hLnNwbGl0KCIuIik7Zm9yKHZhciBjPV8udixkO2EubGVuZ3RoJiYoZD1hLnNoaWZ0KCkpOylhLmxlbmd0aHx8Yj09PXZvaWQgMD9jW2RdJiZjW2RdIT09T2JqZWN0LnByb3RvdHlwZVtkXT9jPWNbZF06Yz1jW2RdPXt9OmNbZF09Yn07Cl8uRz1mdW5jdGlvbihhLGIpe2Z1bmN0aW9uIGMoKXt9Yy5wcm90b3R5cGU9Yi5wcm90b3R5cGU7YS5lYT1iLnByb3RvdHlwZTthLnByb3RvdHlwZT1uZXcgYzthLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1hO2EuTWs9ZnVuY3Rpb24oZCxlLGYpe2Zvcih2YXIgZz1BcnJheShhcmd1bWVudHMubGVuZ3RoLTIpLGg9MjtoPGFyZ3VtZW50cy5sZW5ndGg7aCsrKWdbaC0yXT1hcmd1bWVudHNbaF07cmV0dXJuIGIucHJvdG90eXBlW2VdLmFwcGx5KGQsZyl9fTtfLkcoYWEsRXJyb3IpO2FhLnByb3RvdHlwZS5uYW1lPSJDdXN0b21FcnJvciI7dmFyIHNjO18uRyhjYSxhYSk7Y2EucHJvdG90eXBlLm5hbWU9IkFzc2VydGlvbkVycm9yIjt2YXIgZWE7dmFyIHRjPWZ1bmN0aW9uKGEsYil7dGhpcy5oPWE7dGhpcy5nPWJ8fG51bGx9O3RjLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmh9O3ZhciB1Yz1uZXcgdGMoIm43M3F3ZiIsIm43M3F3ZiIpO3ZhciBuYT1TeW1ib2woInMiKTtfLnUucHJvdG90eXBlLnFhPSExO18udS5wcm90b3R5cGUucWI9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5xYX07Xy51LnByb3RvdHlwZS5kaXNwb3NlPWZ1bmN0aW9uKCl7dGhpcy5xYXx8KHRoaXMucWE9ITAsdGhpcy5NKCkpfTtfLnUucHJvdG90eXBlW1N5bWJvbC5kaXNwb3NlXT1mdW5jdGlvbigpe3RoaXMuZGlzcG9zZSgpfTtfLnUucHJvdG90eXBlLk09ZnVuY3Rpb24oKXtpZih0aGlzLlcpZm9yKDt0aGlzLlcubGVuZ3RoOyl0aGlzLlcuc2hpZnQoKSgpfTt2YXIgc2Esd2M7c2E9QXJyYXkucHJvdG90eXBlLmluZGV4T2Y/ZnVuY3Rpb24oYSxiKXtyZXR1cm4gQXJyYXkucHJvdG90eXBlLmluZGV4T2YuY2FsbChhLGIsdm9pZCAwKX06ZnVuY3Rpb24oYSxiKXtpZih0eXBlb2YgYT09PSJzdHJpbmciKXJldHVybiB0eXBlb2YgYiE9PSJzdHJpbmcifHxiLmxlbmd0aCE9MT8tMTphLmluZGV4T2YoYiwwKTtmb3IodmFyIGM9MDtjPGEubGVuZ3RoO2MrKylpZihjIGluIGEmJmFbY109PT1iKXJldHVybiBjO3JldHVybi0xfTtfLnZjPUFycmF5LnByb3RvdHlwZS5mb3JFYWNoP2Z1bmN0aW9uKGEsYil7QXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbChhLGIsdm9pZCAwKX06ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9YS5sZW5ndGgsZD10eXBlb2YgYT09PSJzdHJpbmciP2Euc3BsaXQoIiIpOmEsZT0wO2U8YztlKyspZSBpbiBkJiZiLmNhbGwodm9pZCAwLGRbZV0sZSxhKX07CndjPUFycmF5LnByb3RvdHlwZS5yZWR1Y2U/ZnVuY3Rpb24oYSxiLGMpe0FycmF5LnByb3RvdHlwZS5yZWR1Y2UuY2FsbChhLGIsYyl9OmZ1bmN0aW9uKGEsYixjKXt2YXIgZD1jOygwLF8udmMpKGEsZnVuY3Rpb24oZSxmKXtkPWIuY2FsbCh2b2lkIDAsZCxlLGYsYSl9KX07Xy54Yz1BcnJheS5wcm90b3R5cGUuc29tZT9mdW5jdGlvbihhLGIpe3JldHVybiBBcnJheS5wcm90b3R5cGUuc29tZS5jYWxsKGEsYix2b2lkIDApfTpmdW5jdGlvbihhLGIpe2Zvcih2YXIgYz1hLmxlbmd0aCxkPXR5cGVvZiBhPT09InN0cmluZyI/YS5zcGxpdCgiIik6YSxlPTA7ZTxjO2UrKylpZihlIGluIGQmJmIuY2FsbCh2b2lkIDAsZFtlXSxlLGEpKXJldHVybiEwO3JldHVybiExfTtfLnljPWZ1bmN0aW9uKGEsYil7cmV0dXJuIGE9PWI/ITA6YSYmYj9hLndpZHRoPT1iLndpZHRoJiZhLmhlaWdodD09Yi5oZWlnaHQ6ITF9O18uQ2EucHJvdG90eXBlLmFzcGVjdFJhdGlvPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMud2lkdGgvdGhpcy5oZWlnaHR9O18uQ2EucHJvdG90eXBlLmNlaWw9ZnVuY3Rpb24oKXt0aGlzLndpZHRoPU1hdGguY2VpbCh0aGlzLndpZHRoKTt0aGlzLmhlaWdodD1NYXRoLmNlaWwodGhpcy5oZWlnaHQpO3JldHVybiB0aGlzfTtfLkNhLnByb3RvdHlwZS5mbG9vcj1mdW5jdGlvbigpe3RoaXMud2lkdGg9TWF0aC5mbG9vcih0aGlzLndpZHRoKTt0aGlzLmhlaWdodD1NYXRoLmZsb29yKHRoaXMuaGVpZ2h0KTtyZXR1cm4gdGhpc307Xy5DYS5wcm90b3R5cGUucm91bmQ9ZnVuY3Rpb24oKXt0aGlzLndpZHRoPU1hdGgucm91bmQodGhpcy53aWR0aCk7dGhpcy5oZWlnaHQ9TWF0aC5yb3VuZCh0aGlzLmhlaWdodCk7cmV0dXJuIHRoaXN9O3ZhciBFYTtFYT0iY29uc3RydWN0b3IgaGFzT3duUHJvcGVydHkgaXNQcm90b3R5cGVPZiBwcm9wZXJ0eUlzRW51bWVyYWJsZSB0b0xvY2FsZVN0cmluZyB0b1N0cmluZyB2YWx1ZU9mIi5zcGxpdCgiICIpO18uemM9ZnVuY3Rpb24oYSxiLGMpe2Zvcih2YXIgZCBpbiBhKWIuY2FsbChjLGFbZF0sZCxhKX07Xy5BYz1TdHJpbmcucHJvdG90eXBlLnRyaW0/ZnVuY3Rpb24oYSl7cmV0dXJuIGEudHJpbSgpfTpmdW5jdGlvbihhKXtyZXR1cm4vXltcc1x4YTBdKihbXHNcU10qPylbXHNceGEwXSokLy5leGVjKGEpWzFdfTt2YXIgQmM9Z2xvYmFsVGhpcy50cnVzdGVkVHlwZXMsSGE9QmMsSmE7Xy5MYT1mdW5jdGlvbihhKXt0aGlzLmc9YX07Xy5MYS5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nKyIifTtfLkNjPUdhKGZ1bmN0aW9uKCl7cmV0dXJuIHR5cGVvZiBVUkw9PT0iZnVuY3Rpb24ifSk7Xy5EYz1mdW5jdGlvbihhKXt0aGlzLmc9YX07Xy5EYy5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nKyIifTtfLkVjPUdhKGZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBfLkRjKEJjP0JjLmVtcHR5SFRNTDoiIil9KTtfLlBhPWZ1bmN0aW9uKGEpe3RoaXMuZz1hfTtfLlBhLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmcrIiJ9O18uR2I9ZnVuY3Rpb24oYSl7cmV0dXJuIGVuY29kZVVSSUNvbXBvbmVudChTdHJpbmcoYSkpfTtfLkRiPWZ1bmN0aW9uKGEpe3JldHVybiBkZWNvZGVVUklDb21wb25lbnQoYS5yZXBsYWNlKC9cKy9nLCIgIikpfTt2YXIgRmM9ISEobWNbMF0+PjI1JjEpLEdjPSEhKG1jWzBdPj4yMCYxKSxIYz0hIShtY1swXT4+MjcmMSksSWM9ISEobWNbMF0mODE5MiksSmM9ISEobWNbMF0+PjE5JjEpLEtjPSEhKG1jWzBdPj4xNyYxKSxMYz0hIShtY1swXT4+MTgmMSk7dmFyIHRiLE5jLE9jO18uVWE9RmM/SGM6bGMoNjEwNDAxMzAxLCExKTtfLk1jPUZjP0djfHwhSWM6bGMoNzQ4NDAyMTQ3LCEwKTt0Yj1GYz9KYzpsYyg5MTk0NDQ4MjQsITEpO05jPUZjP0tjOmxjKDkyODg3NTM5OCwhMSk7T2M9RmM/TGM6bGMoNjgzNzQ5MjAxLCExKTt2YXIgUGM7UGM9Xy52Lm5hdmlnYXRvcjtfLlZhPVBjP1BjLnVzZXJBZ2VudERhdGF8fG51bGw6bnVsbDtfLlFjPWZ1bmN0aW9uKGEpe18uUWNbIiAiXShhKTtyZXR1cm4gYX07Xy5RY1siICJdPWZ1bmN0aW9uKCl7fTt2YXIgZWQ7Xy5SYz1fLlhhKCk7Xy5TYz1fLldhKCk/ITE6Xy53KCJUcmlkZW50Iil8fF8udygiTVNJRSIpO18uVGM9Xy53KCJFZGdlIik7Xy5VYz1fLncoIkdlY2tvIikmJiEoXy5UYSgpLnRvTG93ZXJDYXNlKCkuaW5kZXhPZigid2Via2l0IikhPS0xJiYhXy53KCJFZGdlIikpJiYhKF8udygiVHJpZGVudCIpfHxfLncoIk1TSUUiKSkmJiFfLncoIkVkZ2UiKTtfLlZjPV8uVGEoKS50b0xvd2VyQ2FzZSgpLmluZGV4T2YoIndlYmtpdCIpIT0tMSYmIV8udygiRWRnZSIpO18uV2M9Xy5WYyYmXy53KCJNb2JpbGUiKTtfLlljPV8uYWIoKTtfLlpjPVlhKCk/Xy5WYS5wbGF0Zm9ybT09PSJXaW5kb3dzIjpfLncoIldpbmRvd3MiKTtfLiRjPVlhKCk/Xy5WYS5wbGF0Zm9ybT09PSJBbmRyb2lkIjpfLncoIkFuZHJvaWQiKTtfLmFkPV8uWmEoKTtfLmJkPV8udygiaVBhZCIpO18uY2Q9Xy53KCJpUG9kIik7Xy5kZD1fLiRhKCk7CmE6e3ZhciBmZD0iIixnZD1mdW5jdGlvbigpe3ZhciBhPV8uVGEoKTtpZihfLlVjKXJldHVybi9ydjooW15cKTtdKykoXCl8OykvLmV4ZWMoYSk7aWYoXy5UYylyZXR1cm4vRWRnZVwvKFtcZFwuXSspLy5leGVjKGEpO2lmKF8uU2MpcmV0dXJuL1xiKD86TVNJRXxydilbOiBdKFteXCk7XSspKFwpfDspLy5leGVjKGEpO2lmKF8uVmMpcmV0dXJuL1dlYktpdFwvKFxTKykvLmV4ZWMoYSk7aWYoXy5SYylyZXR1cm4vKD86VmVyc2lvbilbIFwvXT8oXFMrKS8uZXhlYyhhKX0oKTtnZCYmKGZkPWdkP2dkWzFdOiIiKTtpZihfLlNjKXt2YXIgaGQsaWQ9Xy52LmRvY3VtZW50O2hkPWlkP2lkLmRvY3VtZW50TW9kZTp2b2lkIDA7aWYoaGQhPW51bGwmJmhkPnBhcnNlRmxvYXQoZmQpKXtlZD1TdHJpbmcoaGQpO2JyZWFrIGF9fWVkPWZkfV8uamQ9ZWQ7dmFyIGtkPSJBUlRJQ0xFIFNFQ1RJT04gTkFWIEFTSURFIEgxIEgyIEgzIEg0IEg1IEg2IEhFQURFUiBGT09URVIgQUREUkVTUyBQIEhSIFBSRSBCTE9DS1FVT1RFIE9MIFVMIExIIExJIERMIERUIEREIEZJR1VSRSBGSUdDQVBUSU9OIE1BSU4gRElWIEVNIFNUUk9ORyBTTUFMTCBTIENJVEUgUSBERk4gQUJCUiBSVUJZIFJCIFJUIFJUQyBSUCBEQVRBIFRJTUUgQ09ERSBWQVIgU0FNUCBLQkQgU1VCIFNVUCBJIEIgVSBNQVJLIEJESSBCRE8gU1BBTiBCUiBXQlIgTk9CUiBJTlMgREVMIFBJQ1RVUkUgUEFSQU0gVFJBQ0sgTUFQIFRBQkxFIENBUFRJT04gQ09MR1JPVVAgQ09MIFRCT0RZIFRIRUFEIFRGT09UIFRSIFREIFRIIFNFTEVDVCBEQVRBTElTVCBPUFRHUk9VUCBPUFRJT04gT1VUUFVUIFBST0dSRVNTIE1FVEVSIEZJRUxEU0VUIExFR0VORCBERVRBSUxTIFNVTU1BUlkgTUVOVSBESUFMT0cgU0xPVCBDQU5WQVMgRk9OVCBDRU5URVIgQUNST05ZTSBCQVNFRk9OVCBCSUcgRElSIEhHUk9VUCBTVFJJS0UgVFQiLnNwbGl0KCIgIiksCmxkPVtbIkEiLG5ldyBNYXAoW1siaHJlZiIse3VhOjd9XV0pXSxbIkFSRUEiLG5ldyBNYXAoW1siaHJlZiIse3VhOjd9XV0pXSxbIkxJTksiLG5ldyBNYXAoW1siaHJlZiIse3VhOjUsY29uZGl0aW9uczpuZXcgTWFwKFtbInJlbCIsbmV3IFNldCgiYWx0ZXJuYXRlIGF1dGhvciBib29rbWFyayBjYW5vbmljYWwgY2l0ZSBoZWxwIGljb24gbGljZW5zZSBuZXh0IHByZWZldGNoIGRucy1wcmVmZXRjaCBwcmVyZW5kZXIgcHJlY29ubmVjdCBwcmVsb2FkIHByZXYgc2VhcmNoIHN1YnJlc291cmNlIi5zcGxpdCgiICIpKV1dKX1dXSldLFsiU09VUkNFIixuZXcgTWFwKFtbInNyYyIse3VhOjV9XSxbInNyY3NldCIse3VhOjZ9XV0pXSxbIklNRyIsbmV3IE1hcChbWyJzcmMiLHt1YTo1fV0sWyJzcmNzZXQiLHt1YTo2fV1dKV0sWyJWSURFTyIsbmV3IE1hcChbWyJzcmMiLHt1YTo1fV1dKV0sWyJBVURJTyIsbmV3IE1hcChbWyJzcmMiLHt1YTo1fV1dKV1dLG1kPSJ0aXRsZSBhcmlhLWF0b21pYyBhcmlhLWF1dG9jb21wbGV0ZSBhcmlhLWJ1c3kgYXJpYS1jaGVja2VkIGFyaWEtY3VycmVudCBhcmlhLWRpc2FibGVkIGFyaWEtZHJvcGVmZmVjdCBhcmlhLWV4cGFuZGVkIGFyaWEtaGFzcG9wdXAgYXJpYS1oaWRkZW4gYXJpYS1pbnZhbGlkIGFyaWEtbGFiZWwgYXJpYS1sZXZlbCBhcmlhLWxpdmUgYXJpYS1tdWx0aWxpbmUgYXJpYS1tdWx0aXNlbGVjdGFibGUgYXJpYS1vcmllbnRhdGlvbiBhcmlhLXBvc2luc2V0IGFyaWEtcHJlc3NlZCBhcmlhLXJlYWRvbmx5IGFyaWEtcmVsZXZhbnQgYXJpYS1yZXF1aXJlZCBhcmlhLXNlbGVjdGVkIGFyaWEtc2V0c2l6ZSBhcmlhLXNvcnQgYXJpYS12YWx1ZW1heCBhcmlhLXZhbHVlbWluIGFyaWEtdmFsdWVub3cgYXJpYS12YWx1ZXRleHQgYWx0IGFsaWduIGF1dG9jYXBpdGFsaXplIGF1dG9jb21wbGV0ZSBhdXRvY29ycmVjdCBhdXRvZm9jdXMgYXV0b3BsYXkgYmdjb2xvciBib3JkZXIgY2VsbHBhZGRpbmcgY2VsbHNwYWNpbmcgY2hlY2tlZCBjaXRlIGNvbG9yIGNvbHMgY29sc3BhbiBjb250cm9scyBjb250cm9sc2xpc3QgY29vcmRzIGNyb3Nzb3JpZ2luIGRhdGV0aW1lIGRpc2FibGVkIGRvd25sb2FkIGRyYWdnYWJsZSBlbmN0eXBlIGZhY2UgZm9ybWVuY3R5cGUgZnJhbWVib3JkZXIgaGVpZ2h0IGhyZWZsYW5nIGhpZGRlbiBpbmVydCBpc21hcCBsYWJlbCBsYW5nIGxvb3AgbWF4IG1heGxlbmd0aCBtZWRpYSBtaW5sZW5ndGggbWluIG11bHRpcGxlIG11dGVkIG5vbmNlIG9wZW4gcGxheXNpbmxpbmUgcGxhY2Vob2xkZXIgcHJlbG9hZCByZWwgcmVxdWlyZWQgcmV2ZXJzZWQgcm9sZSByb3dzIHJvd3NwYW4gc2VsZWN0ZWQgc2hhcGUgc2l6ZSBzaXplcyBzbG90IHNwYW4gc3BlbGxjaGVjayBzdGFydCBzdGVwIHN1bW1hcnkgdHJhbnNsYXRlIHR5cGUgdXNlbWFwIHZhbGlnbiB2YWx1ZSB3aWR0aCB3cmFwIGl0ZW1zY29wZSBpdGVtdHlwZSBpdGVtaWQgaXRlbXByb3AgaXRlbXJlZiIuc3BsaXQoIiAiKSwKbmQ9W1siZGlyIix7dWE6Myxjb25kaXRpb25zOkdhKGZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBNYXAoW1siZGlyIixuZXcgU2V0KFsiYXV0byIsImx0ciIsInJ0bCJdKV1dKX0pfV0sWyJhc3luYyIse3VhOjMsY29uZGl0aW9uczpHYShmdW5jdGlvbigpe3JldHVybiBuZXcgTWFwKFtbImFzeW5jIixuZXcgU2V0KFsiYXN5bmMiXSldXSl9KX1dLFsibG9hZGluZyIse3VhOjMsY29uZGl0aW9uczpHYShmdW5jdGlvbigpe3JldHVybiBuZXcgTWFwKFtbImxvYWRpbmciLG5ldyBTZXQoWyJlYWdlciIsImxhenkiXSldXSl9KX1dLFsicG9zdGVyIix7dWE6NX1dLFsidGFyZ2V0Iix7dWE6Myxjb25kaXRpb25zOkdhKGZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBNYXAoW1sidGFyZ2V0IixuZXcgU2V0KFsiX3NlbGYiLCJfYmxhbmsiXSldXSl9KX1dXSxvZD1uZXcgZnVuY3Rpb24oYSxiLGMpe3ZhciBkPW5ldyBTZXQoWyJkYXRhLSIsImFyaWEtIl0pLGU9bmV3IE1hcChsZCk7dGhpcy5qPWE7dGhpcy5nPQplO3RoaXMubD1iO3RoaXMubz1jO3RoaXMuaD1kfShuZXcgU2V0KEdhKGZ1bmN0aW9uKCl7cmV0dXJuIGtkLmNvbmNhdCgiU1RZTEUgVElUTEUgSU5QVVQgVEVYVEFSRUEgQlVUVE9OIExBQkVMIi5zcGxpdCgiICIpKX0pKSxuZXcgU2V0KEdhKGZ1bmN0aW9uKCl7cmV0dXJuIG1kLmNvbmNhdChbImNsYXNzIiwiaWQiLCJ0YWJpbmRleCIsImNvbnRlbnRlZGl0YWJsZSIsIm5hbWUiXSl9KSksbmV3IE1hcChHYShmdW5jdGlvbigpe3JldHVybiBuZC5jb25jYXQoW1sic3R5bGUiLHt1YToxfV1dKX0pKSk7dmFyIHBkPWZ1bmN0aW9uKCl7dGhpcy5nPW9kfTtwZC5wcm90b3R5cGUuY3JlYXRlVGV4dE5vZGU9ZnVuY3Rpb24oYSl7cmV0dXJuIGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGEpfTtfLnFkPUdhKGZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBwZH0pO3ZhciB2ZCx1ZCx4ZDtfLmxiPWZ1bmN0aW9uKGEpe3JldHVybiBhP25ldyBfLnJkKF8uc2QoYSkpOnNjfHwoc2M9bmV3IF8ucmQpfTtfLnRkPWZ1bmN0aW9uKGEsYil7cmV0dXJuIHR5cGVvZiBiPT09InN0cmluZyI/YS5nZXRFbGVtZW50QnlJZChiKTpifTt2ZD1mdW5jdGlvbihhLGIpe18uemMoYixmdW5jdGlvbihjLGQpe2Q9PSJzdHlsZSI/YS5zdHlsZS5jc3NUZXh0PWM6ZD09ImNsYXNzIj9hLmNsYXNzTmFtZT1jOmQ9PSJmb3IiP2EuaHRtbEZvcj1jOnVkLmhhc093blByb3BlcnR5KGQpP2Euc2V0QXR0cmlidXRlKHVkW2RdLGMpOmQubGFzdEluZGV4T2YoImFyaWEtIiwwKT09MHx8ZC5sYXN0SW5kZXhPZigiZGF0YS0iLDApPT0wP2Euc2V0QXR0cmlidXRlKGQsYyk6YVtkXT1jfSl9Owp1ZD17Y2VsbHBhZGRpbmc6ImNlbGxQYWRkaW5nIixjZWxsc3BhY2luZzoiY2VsbFNwYWNpbmciLGNvbHNwYW46ImNvbFNwYW4iLGZyYW1lYm9yZGVyOiJmcmFtZUJvcmRlciIsaGVpZ2h0OiJoZWlnaHQiLG1heGxlbmd0aDoibWF4TGVuZ3RoIixub25jZToibm9uY2UiLHJvbGU6InJvbGUiLHJvd3NwYW46InJvd1NwYW4iLHR5cGU6InR5cGUiLHVzZW1hcDoidXNlTWFwIix2YWxpZ246InZBbGlnbiIsd2lkdGg6IndpZHRoIn07Xy5pYj1mdW5jdGlvbihhKXthPWEuZG9jdW1lbnQ7YT1hLmNvbXBhdE1vZGU9PSJDU1MxQ29tcGF0Ij9hLmRvY3VtZW50RWxlbWVudDphLmJvZHk7cmV0dXJuIG5ldyBfLkNhKGEuY2xpZW50V2lkdGgsYS5jbGllbnRIZWlnaHQpfTtfLm1iPWZ1bmN0aW9uKGEpe3JldHVybiBhP2EuZGVmYXVsdFZpZXc6d2luZG93fTsKXy55ZD1mdW5jdGlvbihhLGIpe3ZhciBjPWJbMV0sZD1fLndkKGEsU3RyaW5nKGJbMF0pKTtjJiYodHlwZW9mIGM9PT0ic3RyaW5nIj9kLmNsYXNzTmFtZT1jOkFycmF5LmlzQXJyYXkoYyk/ZC5jbGFzc05hbWU9Yy5qb2luKCIgIik6dmQoZCxjKSk7Yi5sZW5ndGg+MiYmeGQoYSxkLGIsMik7cmV0dXJuIGR9Owp4ZD1mdW5jdGlvbihhLGIsYyxkKXtmdW5jdGlvbiBlKGgpe2gmJmIuYXBwZW5kQ2hpbGQodHlwZW9mIGg9PT0ic3RyaW5nIj9hLmNyZWF0ZVRleHROb2RlKGgpOmgpfWZvcig7ZDxjLmxlbmd0aDtkKyspe3ZhciBmPWNbZF07aWYoIV8ucWEoZil8fF8ueWEoZikmJmYubm9kZVR5cGU+MCllKGYpO2Vsc2V7YTp7aWYoZiYmdHlwZW9mIGYubGVuZ3RoPT0ibnVtYmVyIil7aWYoXy55YShmKSl7dmFyIGc9dHlwZW9mIGYuaXRlbT09ImZ1bmN0aW9uInx8dHlwZW9mIGYuaXRlbT09InN0cmluZyI7YnJlYWsgYX1pZih0eXBlb2YgZj09PSJmdW5jdGlvbiIpe2c9dHlwZW9mIGYuaXRlbT09ImZ1bmN0aW9uIjticmVhayBhfX1nPSExfV8udmMoZz9fLndhKGYpOmYsZSl9fX07Xy53ZD1mdW5jdGlvbihhLGIpe2I9U3RyaW5nKGIpO2EuY29udGVudFR5cGU9PT0iYXBwbGljYXRpb24veGh0bWwreG1sIiYmKGI9Yi50b0xvd2VyQ2FzZSgpKTtyZXR1cm4gYS5jcmVhdGVFbGVtZW50KGIpfTsKXy56ZD1mdW5jdGlvbihhKXtmb3IodmFyIGI7Yj1hLmZpcnN0Q2hpbGQ7KWEucmVtb3ZlQ2hpbGQoYil9O18uQWQ9ZnVuY3Rpb24oYSl7cmV0dXJuIGEmJmEucGFyZW50Tm9kZT9hLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoYSk6bnVsbH07Xy5CZD1mdW5jdGlvbihhLGIpe2lmKCFhfHwhYilyZXR1cm4hMTtpZihhLmNvbnRhaW5zJiZiLm5vZGVUeXBlPT0xKXJldHVybiBhPT1ifHxhLmNvbnRhaW5zKGIpO2lmKHR5cGVvZiBhLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uIT0idW5kZWZpbmVkIilyZXR1cm4gYT09Ynx8ISEoYS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihiKSYxNik7Zm9yKDtiJiZhIT1iOyliPWIucGFyZW50Tm9kZTtyZXR1cm4gYj09YX07Xy5zZD1mdW5jdGlvbihhKXtyZXR1cm4gYS5ub2RlVHlwZT09OT9hOmEub3duZXJEb2N1bWVudHx8YS5kb2N1bWVudH07Cl8uQ2Q9ZnVuY3Rpb24oYSxiKXtpZigidGV4dENvbnRlbnQiaW4gYSlhLnRleHRDb250ZW50PWI7ZWxzZSBpZihhLm5vZGVUeXBlPT0zKWEuZGF0YT1TdHJpbmcoYik7ZWxzZSBpZihhLmZpcnN0Q2hpbGQmJmEuZmlyc3RDaGlsZC5ub2RlVHlwZT09Myl7Zm9yKDthLmxhc3RDaGlsZCE9YS5maXJzdENoaWxkOylhLnJlbW92ZUNoaWxkKGEubGFzdENoaWxkKTthLmZpcnN0Q2hpbGQuZGF0YT1TdHJpbmcoYil9ZWxzZSBfLnpkKGEpLGEuYXBwZW5kQ2hpbGQoXy5zZChhKS5jcmVhdGVUZXh0Tm9kZShTdHJpbmcoYikpKX07Xy5yZD1mdW5jdGlvbihhKXt0aGlzLmc9YXx8Xy52LmRvY3VtZW50fHxkb2N1bWVudH07Xy5tPV8ucmQucHJvdG90eXBlO18ubS5IPWZ1bmN0aW9uKGEpe3JldHVybiBfLnRkKHRoaXMuZyxhKX07Xy5tLmRqPV8ucmQucHJvdG90eXBlLkg7Xy5tLmdldEVsZW1lbnRzQnlUYWdOYW1lPWZ1bmN0aW9uKGEsYil7cmV0dXJuKGJ8fHRoaXMuZykuZ2V0RWxlbWVudHNCeVRhZ05hbWUoU3RyaW5nKGEpKX07Cl8ubS5TPWZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gXy55ZCh0aGlzLmcsYXJndW1lbnRzKX07Xy5tLmNyZWF0ZUVsZW1lbnQ9ZnVuY3Rpb24oYSl7cmV0dXJuIF8ud2QodGhpcy5nLGEpfTtfLm0uY3JlYXRlVGV4dE5vZGU9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuZy5jcmVhdGVUZXh0Tm9kZShTdHJpbmcoYSkpfTtfLm0uYXBwZW5kQ2hpbGQ9ZnVuY3Rpb24oYSxiKXthLmFwcGVuZENoaWxkKGIpfTtfLm0uYXBwZW5kPWZ1bmN0aW9uKGEsYil7eGQoXy5zZChhKSxhLGFyZ3VtZW50cywxKX07Xy5tLmNhbkhhdmVDaGlsZHJlbj1mdW5jdGlvbihhKXtpZihhLm5vZGVUeXBlIT0xKXJldHVybiExO3N3aXRjaChhLnRhZ05hbWUpe2Nhc2UgIkFQUExFVCI6Y2FzZSAiQVJFQSI6Y2FzZSAiQkFTRSI6Y2FzZSAiQlIiOmNhc2UgIkNPTCI6Y2FzZSAiQ09NTUFORCI6Y2FzZSAiRU1CRUQiOmNhc2UgIkZSQU1FIjpjYXNlICJIUiI6Y2FzZSAiSU1HIjpjYXNlICJJTlBVVCI6Y2FzZSAiSUZSQU1FIjpjYXNlICJJU0lOREVYIjpjYXNlICJLRVlHRU4iOmNhc2UgIkxJTksiOmNhc2UgIk5PRlJBTUVTIjpjYXNlICJOT1NDUklQVCI6Y2FzZSAiTUVUQSI6Y2FzZSAiT0JKRUNUIjpjYXNlICJQQVJBTSI6Y2FzZSAiU0NSSVBUIjpjYXNlICJTT1VSQ0UiOmNhc2UgIlNUWUxFIjpjYXNlICJUUkFDSyI6Y2FzZSAiV0JSIjpyZXR1cm4hMX1yZXR1cm4hMH07Cl8ubS5pZT1fLnpkO18ubS5yZW1vdmVOb2RlPV8uQWQ7Xy5tLmNvbnRhaW5zPV8uQmQ7Xy5tLlNiPV8uQ2Q7YmIucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWR9O3ZhciBjYj1mdW5jdGlvbihhLGIpe3RoaXMudHlwZT1hIGluc3RhbmNlb2YgYmI/U3RyaW5nKGEpOmE7dGhpcy5jdXJyZW50VGFyZ2V0PXRoaXMudGFyZ2V0PWI7dGhpcy5kZWZhdWx0UHJldmVudGVkPXRoaXMuaD0hMX07Y2IucHJvdG90eXBlLnN0b3BQcm9wYWdhdGlvbj1mdW5jdGlvbigpe3RoaXMuaD0hMH07Y2IucHJvdG90eXBlLnByZXZlbnREZWZhdWx0PWZ1bmN0aW9uKCl7dGhpcy5kZWZhdWx0UHJldmVudGVkPSEwfTt2YXIgRGQ9ZnVuY3Rpb24oKXtpZighXy52LmFkZEV2ZW50TGlzdGVuZXJ8fCFPYmplY3QuZGVmaW5lUHJvcGVydHkpcmV0dXJuITE7dmFyIGE9ITEsYj1PYmplY3QuZGVmaW5lUHJvcGVydHkoe30sInBhc3NpdmUiLHtnZXQ6ZnVuY3Rpb24oKXthPSEwfX0pO3RyeXt2YXIgYz1mdW5jdGlvbigpe307Xy52LmFkZEV2ZW50TGlzdGVuZXIoInRlc3QiLGMsYik7Xy52LnJlbW92ZUV2ZW50TGlzdGVuZXIoInRlc3QiLGMsYil9Y2F0Y2goZCl7fXJldHVybiBhfSgpO18uRyhfLmRiLGNiKTsKXy5kYi5wcm90b3R5cGUuaW5pdD1mdW5jdGlvbihhLGIpe3ZhciBjPXRoaXMudHlwZT1hLnR5cGUsZD1hLmNoYW5nZWRUb3VjaGVzJiZhLmNoYW5nZWRUb3VjaGVzLmxlbmd0aD9hLmNoYW5nZWRUb3VjaGVzWzBdOm51bGw7dGhpcy50YXJnZXQ9YS50YXJnZXR8fGEuc3JjRWxlbWVudDt0aGlzLmN1cnJlbnRUYXJnZXQ9YjtiPWEucmVsYXRlZFRhcmdldDtifHwoYz09Im1vdXNlb3ZlciI/Yj1hLmZyb21FbGVtZW50OmM9PSJtb3VzZW91dCImJihiPWEudG9FbGVtZW50KSk7dGhpcy5yZWxhdGVkVGFyZ2V0PWI7ZD8odGhpcy5jbGllbnRYPWQuY2xpZW50WCE9PXZvaWQgMD9kLmNsaWVudFg6ZC5wYWdlWCx0aGlzLmNsaWVudFk9ZC5jbGllbnRZIT09dm9pZCAwP2QuY2xpZW50WTpkLnBhZ2VZLHRoaXMuc2NyZWVuWD1kLnNjcmVlblh8fDAsdGhpcy5zY3JlZW5ZPWQuc2NyZWVuWXx8MCk6KHRoaXMub2Zmc2V0WD1fLlZjfHxhLm9mZnNldFghPT12b2lkIDA/YS5vZmZzZXRYOmEubGF5ZXJYLAp0aGlzLm9mZnNldFk9Xy5WY3x8YS5vZmZzZXRZIT09dm9pZCAwP2Eub2Zmc2V0WTphLmxheWVyWSx0aGlzLmNsaWVudFg9YS5jbGllbnRYIT09dm9pZCAwP2EuY2xpZW50WDphLnBhZ2VYLHRoaXMuY2xpZW50WT1hLmNsaWVudFkhPT12b2lkIDA/YS5jbGllbnRZOmEucGFnZVksdGhpcy5zY3JlZW5YPWEuc2NyZWVuWHx8MCx0aGlzLnNjcmVlblk9YS5zY3JlZW5ZfHwwKTt0aGlzLmJ1dHRvbj1hLmJ1dHRvbjt0aGlzLmtleUNvZGU9YS5rZXlDb2RlfHwwO3RoaXMua2V5PWEua2V5fHwiIjt0aGlzLmNoYXJDb2RlPWEuY2hhckNvZGV8fChjPT0ia2V5cHJlc3MiP2Eua2V5Q29kZTowKTt0aGlzLmN0cmxLZXk9YS5jdHJsS2V5O3RoaXMuYWx0S2V5PWEuYWx0S2V5O3RoaXMuc2hpZnRLZXk9YS5zaGlmdEtleTt0aGlzLm1ldGFLZXk9YS5tZXRhS2V5O3RoaXMucG9pbnRlcklkPWEucG9pbnRlcklkfHwwO3RoaXMucG9pbnRlclR5cGU9YS5wb2ludGVyVHlwZTt0aGlzLnN0YXRlPWEuc3RhdGU7CnRoaXMudGltZVN0YW1wPWEudGltZVN0YW1wO3RoaXMuZz1hO2EuZGVmYXVsdFByZXZlbnRlZCYmXy5kYi5lYS5wcmV2ZW50RGVmYXVsdC5jYWxsKHRoaXMpfTtfLmRiLnByb3RvdHlwZS5zdG9wUHJvcGFnYXRpb249ZnVuY3Rpb24oKXtfLmRiLmVhLnN0b3BQcm9wYWdhdGlvbi5jYWxsKHRoaXMpO3RoaXMuZy5zdG9wUHJvcGFnYXRpb24/dGhpcy5nLnN0b3BQcm9wYWdhdGlvbigpOnRoaXMuZy5jYW5jZWxCdWJibGU9ITB9O18uZGIucHJvdG90eXBlLnByZXZlbnREZWZhdWx0PWZ1bmN0aW9uKCl7Xy5kYi5lYS5wcmV2ZW50RGVmYXVsdC5jYWxsKHRoaXMpO3ZhciBhPXRoaXMuZzthLnByZXZlbnREZWZhdWx0P2EucHJldmVudERlZmF1bHQoKTphLnJldHVyblZhbHVlPSExfTt2YXIgRWQ9ImNsb3N1cmVfbGlzdGVuYWJsZV8iKyhNYXRoLnJhbmRvbSgpKjFFNnwwKSxGZD1mdW5jdGlvbihhKXtyZXR1cm4hKCFhfHwhYVtFZF0pfTt2YXIgZWI9MDt2YXIgR2Q9ZnVuY3Rpb24oYSl7YS5vYz0hMDthLmxpc3RlbmVyPW51bGw7YS5wcm94eT1udWxsO2Euc3JjPW51bGw7YS5WYz1udWxsfTtnYi5wcm90b3R5cGUuYWRkPWZ1bmN0aW9uKGEsYixjLGQsZSl7dmFyIGY9YS50b1N0cmluZygpO2E9dGhpcy5nW2ZdO2F8fChhPXRoaXMuZ1tmXT1bXSx0aGlzLmgrKyk7dmFyIGc9SGQoYSxiLGQsZSk7Zz4tMT8oYj1hW2ddLGN8fChiLkhjPSExKSk6KGI9bmV3IGZiKGIsdGhpcy5zcmMsZiwhIWQsZSksYi5IYz1jLGEucHVzaChiKSk7cmV0dXJuIGJ9O2diLnByb3RvdHlwZS5yZW1vdmU9ZnVuY3Rpb24oYSxiLGMsZCl7YT1hLnRvU3RyaW5nKCk7aWYoIShhIGluIHRoaXMuZykpcmV0dXJuITE7dmFyIGU9dGhpcy5nW2FdO2I9SGQoZSxiLGMsZCk7cmV0dXJuIGI+LTE/KEdkKGVbYl0pLEFycmF5LnByb3RvdHlwZS5zcGxpY2UuY2FsbChlLGIsMSksZS5sZW5ndGg9PTAmJihkZWxldGUgdGhpcy5nW2FdLHRoaXMuaC0tKSwhMCk6ITF9Owp2YXIgSWQ9ZnVuY3Rpb24oYSxiKXt2YXIgYz1iLnR5cGU7YyBpbiBhLmcmJl8udmEoYS5nW2NdLGIpJiYoR2QoYiksYS5nW2NdLmxlbmd0aD09MCYmKGRlbGV0ZSBhLmdbY10sYS5oLS0pKX07Z2IucHJvdG90eXBlLmpjPWZ1bmN0aW9uKGEsYixjLGQpe2E9dGhpcy5nW2EudG9TdHJpbmcoKV07dmFyIGU9LTE7YSYmKGU9SGQoYSxiLGMsZCkpO3JldHVybiBlPi0xP2FbZV06bnVsbH07Z2IucHJvdG90eXBlLmhhc0xpc3RlbmVyPWZ1bmN0aW9uKGEsYil7dmFyIGM9YSE9PXZvaWQgMCxkPWM/YS50b1N0cmluZygpOiIiLGU9YiE9PXZvaWQgMDtyZXR1cm4gRGEodGhpcy5nLGZ1bmN0aW9uKGYpe2Zvcih2YXIgZz0wO2c8Zi5sZW5ndGg7KytnKWlmKCEoYyYmZltnXS50eXBlIT1kfHxlJiZmW2ddLmNhcHR1cmUhPWIpKXJldHVybiEwO3JldHVybiExfSl9Owp2YXIgSGQ9ZnVuY3Rpb24oYSxiLGMsZCl7Zm9yKHZhciBlPTA7ZTxhLmxlbmd0aDsrK2Upe3ZhciBmPWFbZV07aWYoIWYub2MmJmYubGlzdGVuZXI9PWImJmYuY2FwdHVyZT09ISFjJiZmLlZjPT1kKXJldHVybiBlfXJldHVybi0xfTt2YXIgSmQsS2QsTWQsUGQsUmQsU2QsVGQsUWQsV2QsT2Q7SmQ9ImNsb3N1cmVfbG1fIisoTWF0aC5yYW5kb20oKSoxRTZ8MCk7S2Q9e307TWQ9MDtfLng9ZnVuY3Rpb24oYSxiLGMsZCxlKXtpZihkJiZkLm9uY2UpcmV0dXJuIF8uTmQoYSxiLGMsZCxlKTtpZihBcnJheS5pc0FycmF5KGIpKXtmb3IodmFyIGY9MDtmPGIubGVuZ3RoO2YrKylfLngoYSxiW2ZdLGMsZCxlKTtyZXR1cm4gbnVsbH1jPU9kKGMpO3JldHVybiBGZChhKT9hLk4oYixjLF8ueWEoZCk/ISFkLmNhcHR1cmU6ISFkLGUpOlBkKGEsYixjLCExLGQsZSl9OwpQZD1mdW5jdGlvbihhLGIsYyxkLGUsZil7aWYoIWIpdGhyb3cgRXJyb3IoInYiKTt2YXIgZz1fLnlhKGUpPyEhZS5jYXB0dXJlOiEhZSxoPVFkKGEpO2h8fChhW0pkXT1oPW5ldyBnYihhKSk7Yz1oLmFkZChiLGMsZCxnLGYpO2lmKGMucHJveHkpcmV0dXJuIGM7ZD1SZCgpO2MucHJveHk9ZDtkLnNyYz1hO2QubGlzdGVuZXI9YztpZihhLmFkZEV2ZW50TGlzdGVuZXIpRGR8fChlPWcpLGU9PT12b2lkIDAmJihlPSExKSxhLmFkZEV2ZW50TGlzdGVuZXIoYi50b1N0cmluZygpLGQsZSk7ZWxzZSBpZihhLmF0dGFjaEV2ZW50KWEuYXR0YWNoRXZlbnQoU2QoYi50b1N0cmluZygpKSxkKTtlbHNlIGlmKGEuYWRkTGlzdGVuZXImJmEucmVtb3ZlTGlzdGVuZXIpYS5hZGRMaXN0ZW5lcihkKTtlbHNlIHRocm93IEVycm9yKCJ3Iik7TWQrKztyZXR1cm4gY307UmQ9ZnVuY3Rpb24oKXt2YXIgYT1UZCxiPWZ1bmN0aW9uKGMpe3JldHVybiBhLmNhbGwoYi5zcmMsYi5saXN0ZW5lcixjKX07cmV0dXJuIGJ9OwpfLk5kPWZ1bmN0aW9uKGEsYixjLGQsZSl7aWYoQXJyYXkuaXNBcnJheShiKSl7Zm9yKHZhciBmPTA7ZjxiLmxlbmd0aDtmKyspXy5OZChhLGJbZl0sYyxkLGUpO3JldHVybiBudWxsfWM9T2QoYyk7cmV0dXJuIEZkKGEpP2EuYWUoYixjLF8ueWEoZCk/ISFkLmNhcHR1cmU6ISFkLGUpOlBkKGEsYixjLCEwLGQsZSl9O18uVWQ9ZnVuY3Rpb24oYSxiLGMsZCxlKXtpZihBcnJheS5pc0FycmF5KGIpKWZvcih2YXIgZj0wO2Y8Yi5sZW5ndGg7ZisrKV8uVWQoYSxiW2ZdLGMsZCxlKTtlbHNlIGQ9Xy55YShkKT8hIWQuY2FwdHVyZTohIWQsYz1PZChjKSxGZChhKT9hLnljKGIsYyxkLGUpOmEmJihhPVFkKGEpKSYmKGI9YS5qYyhiLGMsZCxlKSkmJl8uVmQoYil9OwpfLlZkPWZ1bmN0aW9uKGEpe2lmKHR5cGVvZiBhIT09Im51bWJlciImJmEmJiFhLm9jKXt2YXIgYj1hLnNyYztpZihGZChiKSlJZChiLlFhLGEpO2Vsc2V7dmFyIGM9YS50eXBlLGQ9YS5wcm94eTtiLnJlbW92ZUV2ZW50TGlzdGVuZXI/Yi5yZW1vdmVFdmVudExpc3RlbmVyKGMsZCxhLmNhcHR1cmUpOmIuZGV0YWNoRXZlbnQ/Yi5kZXRhY2hFdmVudChTZChjKSxkKTpiLmFkZExpc3RlbmVyJiZiLnJlbW92ZUxpc3RlbmVyJiZiLnJlbW92ZUxpc3RlbmVyKGQpO01kLS07KGM9UWQoYikpPyhJZChjLGEpLGMuaD09MCYmKGMuc3JjPW51bGwsYltKZF09bnVsbCkpOkdkKGEpfX19O1NkPWZ1bmN0aW9uKGEpe3JldHVybiBhIGluIEtkP0tkW2FdOktkW2FdPSJvbiIrYX07VGQ9ZnVuY3Rpb24oYSxiKXtpZihhLm9jKWE9ITA7ZWxzZXtiPW5ldyBfLmRiKGIsdGhpcyk7dmFyIGM9YS5saXN0ZW5lcixkPWEuVmN8fGEuc3JjO2EuSGMmJl8uVmQoYSk7YT1jLmNhbGwoZCxiKX1yZXR1cm4gYX07ClFkPWZ1bmN0aW9uKGEpe2E9YVtKZF07cmV0dXJuIGEgaW5zdGFuY2VvZiBnYj9hOm51bGx9O1dkPSJfX2Nsb3N1cmVfZXZlbnRzX2ZuXyIrKE1hdGgucmFuZG9tKCkqMUU5Pj4+MCk7T2Q9ZnVuY3Rpb24oYSl7aWYodHlwZW9mIGE9PT0iZnVuY3Rpb24iKXJldHVybiBhO2FbV2RdfHwoYVtXZF09ZnVuY3Rpb24oYil7cmV0dXJuIGEuaGFuZGxlRXZlbnQoYil9KTtyZXR1cm4gYVtXZF19O18uRyhfLmhiLF8udSk7Xy5oYi5wcm90b3R5cGVbRWRdPSEwO18ubT1fLmhiLnByb3RvdHlwZTtfLm0ubmQ9ZnVuY3Rpb24oYSl7dGhpcy5mZD1hfTtfLm0uYWRkRXZlbnRMaXN0ZW5lcj1mdW5jdGlvbihhLGIsYyxkKXtfLngodGhpcyxhLGIsYyxkKX07Xy5tLnJlbW92ZUV2ZW50TGlzdGVuZXI9ZnVuY3Rpb24oYSxiLGMsZCl7Xy5VZCh0aGlzLGEsYixjLGQpfTsKXy5tLmRpc3BhdGNoRXZlbnQ9ZnVuY3Rpb24oYSl7dmFyIGIsYz10aGlzLmZkO2lmKGMpZm9yKGI9W107YztjPWMuZmQpYi5wdXNoKGMpO2M9dGhpcy5XZzt2YXIgZD1hLnR5cGV8fGE7aWYodHlwZW9mIGE9PT0ic3RyaW5nIilhPW5ldyBjYihhLGMpO2Vsc2UgaWYoYSBpbnN0YW5jZW9mIGNiKWEudGFyZ2V0PWEudGFyZ2V0fHxjO2Vsc2V7dmFyIGU9YTthPW5ldyBjYihkLGMpO0ZhKGEsZSl9ZT0hMDt2YXIgZjtpZihiKWZvcihmPWIubGVuZ3RoLTE7IWEuaCYmZj49MDtmLS0pe3ZhciBnPWEuY3VycmVudFRhcmdldD1iW2ZdO2U9WGQoZyxkLCEwLGEpJiZlfWEuaHx8KGc9YS5jdXJyZW50VGFyZ2V0PWMsZT1YZChnLGQsITAsYSkmJmUsYS5ofHwoZT1YZChnLGQsITEsYSkmJmUpKTtpZihiKWZvcihmPTA7IWEuaCYmZjxiLmxlbmd0aDtmKyspZz1hLmN1cnJlbnRUYXJnZXQ9YltmXSxlPVhkKGcsZCwhMSxhKSYmZTtyZXR1cm4gZX07Cl8ubS5NPWZ1bmN0aW9uKCl7Xy5oYi5lYS5NLmNhbGwodGhpcyk7aWYodGhpcy5RYSl7dmFyIGE9dGhpcy5RYSxiPTAsYztmb3IoYyBpbiBhLmcpe2Zvcih2YXIgZD1hLmdbY10sZT0wO2U8ZC5sZW5ndGg7ZSsrKSsrYixHZChkW2VdKTtkZWxldGUgYS5nW2NdO2EuaC0tfX10aGlzLmZkPW51bGx9O18ubS5OPWZ1bmN0aW9uKGEsYixjLGQpe3JldHVybiB0aGlzLlFhLmFkZChTdHJpbmcoYSksYiwhMSxjLGQpfTtfLm0uYWU9ZnVuY3Rpb24oYSxiLGMsZCl7cmV0dXJuIHRoaXMuUWEuYWRkKFN0cmluZyhhKSxiLCEwLGMsZCl9O18ubS55Yz1mdW5jdGlvbihhLGIsYyxkKXtyZXR1cm4gdGhpcy5RYS5yZW1vdmUoU3RyaW5nKGEpLGIsYyxkKX07CnZhciBYZD1mdW5jdGlvbihhLGIsYyxkKXtiPWEuUWEuZ1tTdHJpbmcoYildO2lmKCFiKXJldHVybiEwO2I9Yi5jb25jYXQoKTtmb3IodmFyIGU9ITAsZj0wO2Y8Yi5sZW5ndGg7KytmKXt2YXIgZz1iW2ZdO2lmKGcmJiFnLm9jJiZnLmNhcHR1cmU9PWMpe3ZhciBoPWcubGlzdGVuZXIsaz1nLlZjfHxnLnNyYztnLkhjJiZJZChhLlFhLGcpO2U9aC5jYWxsKGssZCkhPT0hMSYmZX19cmV0dXJuIGUmJiFkLmRlZmF1bHRQcmV2ZW50ZWR9O18uaGIucHJvdG90eXBlLmpjPWZ1bmN0aW9uKGEsYixjLGQpe3JldHVybiB0aGlzLlFhLmpjKFN0cmluZyhhKSxiLGMsZCl9O18uaGIucHJvdG90eXBlLmhhc0xpc3RlbmVyPWZ1bmN0aW9uKGEsYil7cmV0dXJuIHRoaXMuUWEuaGFzTGlzdGVuZXIoYSE9PXZvaWQgMD9TdHJpbmcoYSk6dm9pZCAwLGIpfTtfLkcoamIsXy5oYik7amIucHJvdG90eXBlLk09ZnVuY3Rpb24oKXtqYi5lYS5NLmNhbGwodGhpcyk7dGhpcy5oJiYoXy5WZCh0aGlzLmgpLHRoaXMuaD1udWxsKTt0aGlzLmo9dGhpcy5nPW51bGx9O2piLnByb3RvdHlwZS5sPWZ1bmN0aW9uKCl7dmFyIGE9Xy5pYih0aGlzLmd8fHdpbmRvdyk7Xy55YyhhLHRoaXMuail8fCh0aGlzLmo9YSx0aGlzLmRpc3BhdGNoRXZlbnQoInJlc2l6ZSIpKX07Xy5HKGtiLF8uaGIpO2tiLnByb3RvdHlwZS5zdGFydD1mdW5jdGlvbigpe3ZhciBhPXRoaXM7dGhpcy5nJiYodHlwZW9mIHRoaXMuZy5hZGRFdmVudExpc3RlbmVyPT09ImZ1bmN0aW9uIj8odGhpcy5nLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsdGhpcy5qKSx0aGlzLmw9ZnVuY3Rpb24oKXthLmcucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY2hhbmdlIixhLmopfSk6KHRoaXMuZy5hZGRMaXN0ZW5lcih0aGlzLmopLHRoaXMubD1mdW5jdGlvbigpe2EuZy5yZW1vdmVMaXN0ZW5lcihhLmopfSkpfTtrYi5wcm90b3R5cGUuQT1mdW5jdGlvbigpe3ZhciBhPXRoaXMuaC5kZXZpY2VQaXhlbFJhdGlvPj0xLjU/MjoxO3RoaXMubyE9YSYmKHRoaXMubz1hLHRoaXMuZGlzcGF0Y2hFdmVudCgiYSIpKX07a2IucHJvdG90eXBlLk09ZnVuY3Rpb24oKXt0aGlzLmwmJnRoaXMubCgpO2tiLmVhLk0uY2FsbCh0aGlzKX07Xy5HKG5iLF8udSk7bmIucHJvdG90eXBlLk09ZnVuY3Rpb24oKXt0aGlzLmg9dGhpcy5sPW51bGw7dGhpcy5nJiYodGhpcy5nLmRpc3Bvc2UoKSx0aGlzLmc9bnVsbCk7Xy5wYSh0aGlzLmopO3RoaXMuaj1udWxsfTtfLm9hKHVjLG5iKTt2YXIgb2I9bmV3IFVpbnQ4QXJyYXkoMTIzKSxZZD0hMTt2YXIgWmQ9W107bmM9bmN8fHt9O3ZhciAkZD1mdW5jdGlvbigpe18udS5jYWxsKHRoaXMpfTtfLkcoJGQsXy51KTskZC5wcm90b3R5cGUuaW5pdGlhbGl6ZT1mdW5jdGlvbigpe307c2IucHJvdG90eXBlLmV4ZWN1dGU9ZnVuY3Rpb24oYSl7dGhpcy5nJiYodGhpcy5nLmNhbGwodGhpcy5ofHxudWxsLGEpLHRoaXMuZz10aGlzLmg9bnVsbCl9O3NiLnByb3RvdHlwZS5hYm9ydD1mdW5jdGlvbigpe3RoaXMuaD10aGlzLmc9bnVsbH07bmMuR2U9c2I7Xy5HKHViLF8udSk7dWIucHJvdG90eXBlLkM9JGQ7dWIucHJvdG90eXBlLmc9bnVsbDt1Yi5wcm90b3R5cGUuUmE9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5BfTt2YXIgYWU9ZnVuY3Rpb24oYSxiLGMpe2Euanx8KGEuaj1bXSk7YS5qLnB1c2gobmV3IG5jLkdlKGIsYykpfSxiZT1mdW5jdGlvbihhLGIpe2EuaHx8KGEuaD1bXSk7YS5oLnB1c2gobmV3IG5jLkdlKGIsdm9pZCAwKSl9O3ViLnByb3RvdHlwZS5tZD1mdW5jdGlvbigpe3RoaXMuZz1uZXcgJGR9O3ViLnByb3RvdHlwZS5vbkxvYWQ9ZnVuY3Rpb24oYSl7dmFyIGI9bmV3IHRoaXMuQztiLmluaXRpYWxpemUoYSgpKTt0aGlzLmc9YjtpZih0aGlzLm8mJihiPWNlKHRoaXMubyxhKCkpKSlyZXR1cm4gYjtpZih0aGlzLmomJihhPWNlKHRoaXMuaixhKCkpKSlyZXR1cm4gYTt0aGlzLmgmJih0aGlzLmgubGVuZ3RoPTApO3JldHVybiBudWxsfTsKdWIucHJvdG90eXBlLmZlPWZ1bmN0aW9uKGEpe3RoaXMuaCYmKGE9Y2UodGhpcy5oLGEpKSYmXy5yYihFcnJvcigieWAiK2EpKTt0aGlzLm8mJih0aGlzLm8ubGVuZ3RoPTApO3RoaXMuaiYmKHRoaXMuai5sZW5ndGg9MCl9O3ZhciBjZT1mdW5jdGlvbihhLGIpe2Zvcih2YXIgYz1bXSxkPTA7ZDxhLmxlbmd0aDtkKyspdHJ5e2FbZF0uZXhlY3V0ZShiKX1jYXRjaChlKXtfLnJiKGUpLGMucHVzaChlKX1hLmxlbmd0aD0wO3JldHVybiBjLmxlbmd0aD9jOm51bGx9O3ViLnByb3RvdHlwZS5NPWZ1bmN0aW9uKCl7dWIuZWEuTS5jYWxsKHRoaXMpO18ucGEodGhpcy5nKX07bmMuRmU9dWI7dmFyIGRlPXtFUlJPUjoiZXJyb3IiLElETEU6ImlkbGUiLGxnOiJhY3RpdmUiLElnOiJ1c2VySWRsZSIsSGc6InVzZXJBY3RpdmUifTtfLm09dmIucHJvdG90eXBlO18ubS5YZj1mdW5jdGlvbigpe307Xy5tLnFlPWZ1bmN0aW9uKCl7fTtfLm0uamU9ZnVuY3Rpb24oKXt0aHJvdyBFcnJvcigiQSIpO307Xy5tLmtmPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucWF9O18ubS5zZT1mdW5jdGlvbihhKXt0aGlzLnFhPWF9O18ubS5pc0FjdGl2ZT1mdW5jdGlvbigpe3JldHVybiExfTtfLm0uRGY9ZnVuY3Rpb24oKXtyZXR1cm4hMX07dmFyIGVlPXR5cGVvZiBBc3luY0NvbnRleHQhPT0idW5kZWZpbmVkIiYmdHlwZW9mIEFzeW5jQ29udGV4dC5TbmFwc2hvdD09PSJmdW5jdGlvbiI/ZnVuY3Rpb24oYSl7cmV0dXJuIGEmJkFzeW5jQ29udGV4dC5TbmFwc2hvdC53cmFwKGEpfTpmdW5jdGlvbihhKXtyZXR1cm4gYX07dmFyIGZlPWZ1bmN0aW9uKGEsYil7dGhpcy5sPWE7dGhpcy5qPWI7dGhpcy5oPTA7dGhpcy5nPW51bGx9O2ZlLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24oKXtpZih0aGlzLmg+MCl7dGhpcy5oLS07dmFyIGE9dGhpcy5nO3RoaXMuZz1hLm5leHQ7YS5uZXh0PW51bGx9ZWxzZSBhPXRoaXMubCgpO3JldHVybiBhfTt2YXIgeGI9ZnVuY3Rpb24oYSxiKXthLmooYik7YS5oPDEwMCYmKGEuaCsrLGIubmV4dD1hLmcsYS5nPWIpfTt2YXIgZ2U9ZnVuY3Rpb24oKXt0aGlzLmg9dGhpcy5nPW51bGx9O2dlLnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24oYSxiKXt2YXIgYz15Yi5nZXQoKTtjLnNldChhLGIpO3RoaXMuaD90aGlzLmgubmV4dD1jOnRoaXMuZz1jO3RoaXMuaD1jfTtnZS5wcm90b3R5cGUucmVtb3ZlPWZ1bmN0aW9uKCl7dmFyIGE9bnVsbDt0aGlzLmcmJihhPXRoaXMuZyx0aGlzLmc9dGhpcy5nLm5leHQsdGhpcy5nfHwodGhpcy5oPW51bGwpLGEubmV4dD1udWxsKTtyZXR1cm4gYX07dmFyIHliPW5ldyBmZShmdW5jdGlvbigpe3JldHVybiBuZXcgaGV9LGZ1bmN0aW9uKGEpe3JldHVybiBhLnJlc2V0KCl9KSxoZT1mdW5jdGlvbigpe3RoaXMubmV4dD10aGlzLnNjb3BlPXRoaXMuZz1udWxsfTtoZS5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKGEsYil7dGhpcy5nPWE7dGhpcy5zY29wZT1iO3RoaXMubmV4dD1udWxsfTsKaGUucHJvdG90eXBlLnJlc2V0PWZ1bmN0aW9uKCl7dGhpcy5uZXh0PXRoaXMuc2NvcGU9dGhpcy5nPW51bGx9O3ZhciBpZSx6Yj0hMSx3Yj1uZXcgZ2Usa2U9ZnVuY3Rpb24oYSxiKXtpZXx8amUoKTt6Ynx8KGllKCksemI9ITApO3diLmFkZChhLGIpfSxqZT1mdW5jdGlvbigpe3ZhciBhPVByb21pc2UucmVzb2x2ZSh2b2lkIDApO2llPWZ1bmN0aW9uKCl7YS50aGVuKEFiKX19O18ubGU9ZnVuY3Rpb24oKXt9O3ZhciBtZT1mdW5jdGlvbihhKXtpZighYSlyZXR1cm4hMTt0cnl7cmV0dXJuISFhLiRnb29nX1RoZW5hYmxlfWNhdGNoKGIpe3JldHVybiExfX07dmFyIHBlLEFlLHllLHdlO18ub2U9ZnVuY3Rpb24oYSl7dGhpcy5nPTA7dGhpcy5CPXZvaWQgMDt0aGlzLmw9dGhpcy5oPXRoaXMuaj1udWxsO3RoaXMubz10aGlzLkE9ITE7aWYoYSE9Xy5sZSl0cnl7dmFyIGI9dGhpczthLmNhbGwodm9pZCAwLGZ1bmN0aW9uKGMpe18ubmUoYiwyLGMpfSxmdW5jdGlvbihjKXtfLm5lKGIsMyxjKX0pfWNhdGNoKGMpe18ubmUodGhpcywzLGMpfX07cGU9ZnVuY3Rpb24oKXt0aGlzLm5leHQ9dGhpcy5qPXRoaXMuaD10aGlzLmw9dGhpcy5nPW51bGw7dGhpcy5vPSExfTtwZS5wcm90b3R5cGUucmVzZXQ9ZnVuY3Rpb24oKXt0aGlzLmo9dGhpcy5oPXRoaXMubD10aGlzLmc9bnVsbDt0aGlzLm89ITF9O3ZhciBxZT1uZXcgZmUoZnVuY3Rpb24oKXtyZXR1cm4gbmV3IHBlfSxmdW5jdGlvbihhKXthLnJlc2V0KCl9KSxyZT1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9cWUuZ2V0KCk7ZC5sPWE7ZC5oPWI7ZC5qPWM7cmV0dXJuIGR9OwpfLm9lLnByb3RvdHlwZS50aGVuPWZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gc2UodGhpcyxlZSh0eXBlb2YgYT09PSJmdW5jdGlvbiI/YTpudWxsKSxlZSh0eXBlb2YgYj09PSJmdW5jdGlvbiI/YjpudWxsKSxjKX07Xy5vZS5wcm90b3R5cGUuJGdvb2dfVGhlbmFibGU9ITA7Xy5vZS5wcm90b3R5cGUuQz1mdW5jdGlvbihhLGIpe3JldHVybiBzZSh0aGlzLG51bGwsZWUoYSksYil9O18ub2UucHJvdG90eXBlLmNhdGNoPV8ub2UucHJvdG90eXBlLkM7Xy5vZS5wcm90b3R5cGUuY2FuY2VsPWZ1bmN0aW9uKGEpe2lmKHRoaXMuZz09MCl7dmFyIGI9bmV3IHVlKGEpO2tlKGZ1bmN0aW9uKCl7dmUodGhpcyxiKX0sdGhpcyl9fTsKdmFyIHZlPWZ1bmN0aW9uKGEsYil7aWYoYS5nPT0wKWlmKGEuail7dmFyIGM9YS5qO2lmKGMuaCl7Zm9yKHZhciBkPTAsZT1udWxsLGY9bnVsbCxnPWMuaDtnJiYoZy5vfHwoZCsrLGcuZz09YSYmKGU9ZyksIShlJiZkPjEpKSk7Zz1nLm5leHQpZXx8KGY9Zyk7ZSYmKGMuZz09MCYmZD09MT92ZShjLGIpOihmPyhkPWYsZC5uZXh0PT1jLmwmJihjLmw9ZCksZC5uZXh0PWQubmV4dC5uZXh0KTp3ZShjKSx4ZShjLGUsMyxiKSkpfWEuaj1udWxsfWVsc2UgXy5uZShhLDMsYil9LHplPWZ1bmN0aW9uKGEsYil7YS5ofHxhLmchPTImJmEuZyE9M3x8eWUoYSk7YS5sP2EubC5uZXh0PWI6YS5oPWI7YS5sPWJ9LHNlPWZ1bmN0aW9uKGEsYixjLGQpe3ZhciBlPXJlKG51bGwsbnVsbCxudWxsKTtlLmc9bmV3IF8ub2UoZnVuY3Rpb24oZixnKXtlLmw9Yj9mdW5jdGlvbihoKXt0cnl7dmFyIGs9Yi5jYWxsKGQsaCk7ZihrKX1jYXRjaChsKXtnKGwpfX06ZjtlLmg9Yz9mdW5jdGlvbihoKXt0cnl7dmFyIGs9CmMuY2FsbChkLGgpO2s9PT12b2lkIDAmJmggaW5zdGFuY2VvZiB1ZT9nKGgpOmYoayl9Y2F0Y2gobCl7ZyhsKX19Omd9KTtlLmcuaj1hO3plKGEsZSk7cmV0dXJuIGUuZ307Xy5vZS5wcm90b3R5cGUuRj1mdW5jdGlvbihhKXt0aGlzLmc9MDtfLm5lKHRoaXMsMixhKX07Xy5vZS5wcm90b3R5cGUuRz1mdW5jdGlvbihhKXt0aGlzLmc9MDtfLm5lKHRoaXMsMyxhKX07Cl8ubmU9ZnVuY3Rpb24oYSxiLGMpe2lmKGEuZz09MCl7YT09PWMmJihiPTMsYz1uZXcgVHlwZUVycm9yKCJCIikpO2EuZz0xO2E6e3ZhciBkPWMsZT1hLkYsZj1hLkc7aWYoZCBpbnN0YW5jZW9mIF8ub2Upe3plKGQscmUoZXx8Xy5sZSxmfHxudWxsLGEpKTt2YXIgZz0hMH1lbHNlIGlmKG1lKGQpKWQudGhlbihlLGYsYSksZz0hMDtlbHNle2lmKF8ueWEoZCkpdHJ5e3ZhciBoPWQudGhlbjtpZih0eXBlb2YgaD09PSJmdW5jdGlvbiIpe0FlKGQsaCxlLGYsYSk7Zz0hMDticmVhayBhfX1jYXRjaChrKXtmLmNhbGwoYSxrKTtnPSEwO2JyZWFrIGF9Zz0hMX19Z3x8KGEuQj1jLGEuZz1iLGEuaj1udWxsLHllKGEpLGIhPTN8fGMgaW5zdGFuY2VvZiB1ZXx8QmUoYSxjKSl9fTtBZT1mdW5jdGlvbihhLGIsYyxkLGUpe3ZhciBmPSExLGc9ZnVuY3Rpb24oayl7Znx8KGY9ITAsYy5jYWxsKGUsaykpfSxoPWZ1bmN0aW9uKGspe2Z8fChmPSEwLGQuY2FsbChlLGspKX07dHJ5e2IuY2FsbChhLGcsaCl9Y2F0Y2goayl7aChrKX19Owp5ZT1mdW5jdGlvbihhKXthLkF8fChhLkE9ITAsa2UoYS5ELGEpKX07d2U9ZnVuY3Rpb24oYSl7dmFyIGI9bnVsbDthLmgmJihiPWEuaCxhLmg9Yi5uZXh0LGIubmV4dD1udWxsKTthLmh8fChhLmw9bnVsbCk7cmV0dXJuIGJ9O18ub2UucHJvdG90eXBlLkQ9ZnVuY3Rpb24oKXtmb3IodmFyIGE7YT13ZSh0aGlzKTspeGUodGhpcyxhLHRoaXMuZyx0aGlzLkIpO3RoaXMuQT0hMX07CnZhciB4ZT1mdW5jdGlvbihhLGIsYyxkKXtpZihjPT0zJiZiLmgmJiFiLm8pZm9yKDthJiZhLm87YT1hLmopYS5vPSExO2lmKGIuZyliLmcuaj1udWxsLENlKGIsYyxkKTtlbHNlIHRyeXtiLm8/Yi5sLmNhbGwoYi5qKTpDZShiLGMsZCl9Y2F0Y2goZSl7RmUuY2FsbChudWxsLGUpfXhiKHFlLGIpfSxDZT1mdW5jdGlvbihhLGIsYyl7Yj09Mj9hLmwuY2FsbChhLmosYyk6YS5oJiZhLmguY2FsbChhLmosYyl9LEJlPWZ1bmN0aW9uKGEsYil7YS5vPSEwO2tlKGZ1bmN0aW9uKCl7YS5vJiZGZS5jYWxsKG51bGwsYil9KX0sRmU9Xy5yYix1ZT1mdW5jdGlvbihhKXthYS5jYWxsKHRoaXMsYSl9O18uRyh1ZSxhYSk7dWUucHJvdG90eXBlLm5hbWU9ImNhbmNlbCI7QmIucHJvdG90eXBlLmNhbmNlbD1mdW5jdGlvbihhKXtpZih0aGlzLmgpdGhpcy5sIGluc3RhbmNlb2YgQmImJnRoaXMubC5jYW5jZWwoKTtlbHNle2lmKHRoaXMuail7dmFyIGI9dGhpcy5qO2RlbGV0ZSB0aGlzLmo7YT9iLmNhbmNlbChhKTooYi5BLS0sYi5BPD0wJiZiLmNhbmNlbCgpKX10aGlzLkc9ITA7dGhpcy5ofHx0aGlzLkYobmV3IEdlKHRoaXMpKX19O0JiLnByb3RvdHlwZS5JPWZ1bmN0aW9uKGEsYil7dGhpcy5EPSExO0hlKHRoaXMsYSxiKX07dmFyIEhlPWZ1bmN0aW9uKGEsYixjKXthLmg9ITA7YS5sPWM7YS5vPSFiO0llKGEpfSxLZT1mdW5jdGlvbihhKXtpZihhLmgpe2lmKCFhLkcpdGhyb3cgbmV3IEplKGEpO2EuRz0hMX19O0JiLnByb3RvdHlwZS5nPWZ1bmN0aW9uKGEpe0tlKHRoaXMpO0hlKHRoaXMsITAsYSl9O0JiLnByb3RvdHlwZS5GPWZ1bmN0aW9uKGEpe0tlKHRoaXMpO0hlKHRoaXMsITEsYSl9Owp2YXIgTWU9ZnVuY3Rpb24oYSxiLGMpe0xlKGEsYixudWxsLGMpfSxOZT1mdW5jdGlvbihhLGIsYyl7TGUoYSxudWxsLGIsYyl9LExlPWZ1bmN0aW9uKGEsYixjLGQpe3ZhciBlPWEuaDtlfHwoYj09PWM/Yj1jPWVlKGIpOihiPWVlKGIpLGM9ZWUoYykpKTthLkIucHVzaChbYixjLGRdKTtlJiZJZShhKX07QmIucHJvdG90eXBlLnRoZW49ZnVuY3Rpb24oYSxiLGMpe3ZhciBkLGUsZj1uZXcgXy5vZShmdW5jdGlvbihnLGgpe2U9ZztkPWh9KTtMZSh0aGlzLGUsZnVuY3Rpb24oZyl7ZyBpbnN0YW5jZW9mIEdlP2YuY2FuY2VsKCk6ZChnKTtyZXR1cm4gT2V9LHRoaXMpO3JldHVybiBmLnRoZW4oYSxiLGMpfTtCYi5wcm90b3R5cGUuJGdvb2dfVGhlbmFibGU9ITA7dmFyIFBlPWZ1bmN0aW9uKGEsYil7YiBpbnN0YW5jZW9mIEJiP01lKGEsKDAsXy55KShiLkssYikpOk1lKGEsZnVuY3Rpb24oKXtyZXR1cm4gYn0pfTsKQmIucHJvdG90eXBlLks9ZnVuY3Rpb24oYSl7dmFyIGI9bmV3IEJiO0xlKHRoaXMsYi5nLGIuRixiKTthJiYoYi5qPXRoaXMsdGhpcy5BKyspO3JldHVybiBifTsKdmFyIFFlPWZ1bmN0aW9uKGEpe3JldHVybiBfLnhjKGEuQixmdW5jdGlvbihiKXtyZXR1cm4gdHlwZW9mIGJbMV09PT0iZnVuY3Rpb24ifSl9LE9lPXt9LEllPWZ1bmN0aW9uKGEpe2lmKGEuQyYmYS5oJiZRZShhKSl7dmFyIGI9YS5DLGM9UmVbYl07YyYmKF8udi5jbGVhclRpbWVvdXQoYy5nKSxkZWxldGUgUmVbYl0pO2EuQz0wfWEuaiYmKGEuai5BLS0sZGVsZXRlIGEuaik7Yj1hLmw7Zm9yKHZhciBkPWM9ITE7YS5CLmxlbmd0aCYmIWEuRDspe3ZhciBlPWEuQi5zaGlmdCgpLGY9ZVswXSxnPWVbMV07ZT1lWzJdO2lmKGY9YS5vP2c6Zil0cnl7dmFyIGg9Zi5jYWxsKGV8fG51bGwsYik7aD09PU9lJiYoaD12b2lkIDApO2ghPT12b2lkIDAmJihhLm89YS5vJiYoaD09Ynx8aCBpbnN0YW5jZW9mIEVycm9yKSxhLmw9Yj1oKTtpZihtZShiKXx8dHlwZW9mIF8udi5Qcm9taXNlPT09ImZ1bmN0aW9uIiYmYiBpbnN0YW5jZW9mIF8udi5Qcm9taXNlKWQ9ITAsYS5EPSEwfWNhdGNoKGspe2I9CmssYS5vPSEwLFFlKGEpfHwoYz0hMCl9fWEubD1iO2QmJihoPSgwLF8ueSkoYS5JLGEsITApLGQ9KDAsXy55KShhLkksYSwhMSksYiBpbnN0YW5jZW9mIEJiPyhMZShiLGgsZCksYi5XPSEwKTpiLnRoZW4oaCxkKSk7YyYmKGI9bmV3IFNlKGIpLFJlW2IuZ109YixhLkM9Yi5nKX0sSmU9ZnVuY3Rpb24oKXthYS5jYWxsKHRoaXMpfTtfLkcoSmUsYWEpO0plLnByb3RvdHlwZS5tZXNzYWdlPSJEZWZlcnJlZCBoYXMgYWxyZWFkeSBmaXJlZCI7SmUucHJvdG90eXBlLm5hbWU9IkFscmVhZHlDYWxsZWRFcnJvciI7dmFyIEdlPWZ1bmN0aW9uKCl7YWEuY2FsbCh0aGlzKX07Xy5HKEdlLGFhKTtHZS5wcm90b3R5cGUubWVzc2FnZT0iRGVmZXJyZWQgd2FzIGNhbmNlbGVkIjtHZS5wcm90b3R5cGUubmFtZT0iQ2FuY2VsZWRFcnJvciI7dmFyIFNlPWZ1bmN0aW9uKGEpe3RoaXMuZz1fLnYuc2V0VGltZW91dCgoMCxfLnkpKHRoaXMudGhyb3dFcnJvcix0aGlzKSwwKTt0aGlzLmg9YX07ClNlLnByb3RvdHlwZS50aHJvd0Vycm9yPWZ1bmN0aW9uKCl7ZGVsZXRlIFJlW3RoaXMuZ107dGhyb3cgdGhpcy5oO307dmFyIFJlPXt9O3ZhciBUZT1mdW5jdGlvbihhLGIsYyxkLGUpe2M9RXJyb3IuY2FsbCh0aGlzKTt0aGlzLm1lc3NhZ2U9Yy5tZXNzYWdlOyJzdGFjayJpbiBjJiYodGhpcy5zdGFjaz1jLnN0YWNrKTt0aGlzLm5hbWU9Ik1vZHVsZUxvYWRGYWlsdXJlIjt0aGlzLnR5cGU9YTt0aGlzLnN0YXR1cz1iO3RoaXMudXJsPWQ7dGhpcy5jYXVzZT1lO3RoaXMubWVzc2FnZT10aGlzLnRvU3RyaW5nKCl9O18uQihUZSxFcnJvcik7VGUucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIFVlKHRoaXMpKyIgKCIrKHRoaXMuc3RhdHVzIT12b2lkIDA/dGhpcy5zdGF0dXM6Ij8iKSsiKSJ9Owp2YXIgVWU9ZnVuY3Rpb24oYSl7c3dpdGNoKGEudHlwZSl7Y2FzZSBUZS5nLkplOnJldHVybiJVbmF1dGhvcml6ZWQiO2Nhc2UgVGUuZy5CZTpyZXR1cm4iQ29uc2VjdXRpdmUgbG9hZCBmYWlsdXJlcyI7Y2FzZSBUZS5nLlRJTUVPVVQ6cmV0dXJuIlRpbWVkIG91dCI7Y2FzZSBUZS5nLkhlOnJldHVybiJPdXQgb2YgZGF0ZSBtb2R1bGUgaWQiO2Nhc2UgVGUuZy50ZDpyZXR1cm4iSW5pdCBlcnJvciI7ZGVmYXVsdDpyZXR1cm4iVW5rbm93biBmYWlsdXJlIHR5cGUgIithLnR5cGV9fTtuYy5GYT1UZTtuYy5GYS5nPXtKZTowLEJlOjEsVElNRU9VVDoyLEhlOjMsdGQ6NH07dmFyIFZlPWZ1bmN0aW9uKCl7dmIuY2FsbCh0aGlzKTt0aGlzLkk9bnVsbDt0aGlzLmc9bmV3IE1hcDt0aGlzLm89bmV3IFNldDt0aGlzLkE9W107dGhpcy5DPW5ldyBTZXQ7dGhpcy5qPVtdO3RoaXMuQj1uZXcgU2V0O3RoaXMuaD1OYz9uZXcgTWFwOnt9O3RoaXMuSz1uZXcgTWFwO3RoaXMubD10aGlzLkQ9bmV3IG5jLkZlKFtdLCIiKTt0aGlzLkw9bnVsbDt0aGlzLkY9bmV3IEJiO3RoaXMuUj10aGlzLlQ9dGhpcy5QPXRoaXMuVz0hMX07Xy5HKFZlLHZiKTt2YXIgV2U9ZnVuY3Rpb24oYSxiKXthYS5jYWxsKHRoaXMsIkVycm9yIGxvYWRpbmcgIithKyI6ICIrYil9O18uRyhXZSxhYSk7VmUucHJvdG90eXBlLlhmPWZ1bmN0aW9uKGEpe3RoaXMuVz1hfTsKVmUucHJvdG90eXBlLnFlPWZ1bmN0aW9uKGEsYil7aWYoISh0aGlzIGluc3RhbmNlb2YgVmUpKXRoaXMucWUoYSxiKTtlbHNlIGlmKHR5cGVvZiBhPT09InN0cmluZyIpe2lmKGEuc3RhcnRzV2l0aCgiZCQiKSl7YT1hLnN1YnN0cmluZygyKTtmb3IodmFyIGM9W10sZD0wLGU9YS5pbmRleE9mKCIvIiksZj0wLGc9ITEsaD0wOzspe3ZhciBrPWc/YS5zdWJzdHJpbmcoZik6YS5zdWJzdHJpbmcoZixlKTtpZihrLmxlbmd0aD09PTApZCsrLGY9InN5IitkLnRvU3RyaW5nKDM2KSxrPVtdO2Vsc2V7dmFyIGw9ay5pbmRleE9mKCI6Iik7aWYobDwwKWY9ayxrPVtdO2Vsc2UgaWYobD09PWsubGVuZ3RoLTEpZj1rLnN1YnN0cmluZygwLGwpLGs9QXJyYXkoY1toLTFdKTtlbHNle2Y9ay5zdWJzdHJpbmcoMCxsKTtrPWsuc3Vic3RyaW5nKGwrMSkuc3BsaXQoIiwiKTtsPWg7Zm9yKHZhciBuPTA7bjxrLmxlbmd0aDtuKyspbC09a1tuXS5sZW5ndGg9PT0wPzE6TnVtYmVyKGtbbl0pLGtbbl09Y1tsXX1sPQowO2lmKGYubGVuZ3RoPT09MClsPTE7ZWxzZSBpZihmLmNoYXJBdCgwKT09PSIrInx8Zi5jaGFyQXQoMCk9PT0iLSIpbD1OdW1iZXIoZik7bCE9PTAmJihkKz1sLGY9InN5IitkLnRvU3RyaW5nKDM2KSl9Yy5wdXNoKGYpO1hlKHRoaXMsZixrKTtpZihnKWJyZWFrO2Y9ZSsxO2U9YS5pbmRleE9mKCIvIixmKTtlPT09LTEmJihnPSEwKTtoKyt9dGhpcy5JPWN9ZWxzZSBpZihhLnN0YXJ0c1dpdGgoInAkIikpWWUodGhpcyxhKTtlbHNle2E9YS5zcGxpdCgiLyIpO2M9W107Zm9yKGQ9MDtkPGEubGVuZ3RoO2QrKyl7aD1hW2RdLnNwbGl0KCI6Iik7ZT1oWzBdO2c9W107aWYoaFsxXSlmb3IoZz1oWzFdLnNwbGl0KCIsIiksaD0wO2g8Zy5sZW5ndGg7aCsrKWdbaF09Y1twYXJzZUludChnW2hdLDM2KV07Yy5wdXNoKGUpO1hlKHRoaXMsZSxnKX10aGlzLkk9Y31pZihiJiZiLmxlbmd0aCl7YT1fLkMoYik7Zm9yKGM9YS5uZXh0KCk7IWMuZG9uZTtjPWEubmV4dCgpKXRoaXMuby5hZGQoYy52YWx1ZSk7CnRoaXMuTD1iW2IubGVuZ3RoLTFdfWVsc2UgdGhpcy5GLmh8fHRoaXMuRi5nKCk7T2JqZWN0LmZyZWV6ZSh0aGlzLkkpO1plKHRoaXMpfX07CnZhciBZZT1mdW5jdGlvbihhLGIpe2lmKCFZZCl7Zm9yKHZhciBjPTA7Yzw2NDtjKyspb2JbIkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5LV8iLmNoYXJDb2RlQXQoYyldPWM7WWQ9ITB9dmFyIGQ9e0hkOmIsQmI6Mn07cWIoZCk7dmFyIGU9cWIoZCksZj1xYihkKSsxO2I9QXJyYXkoZSk7Yz1BcnJheShlKTt2YXIgZz1BcnJheShlKTtmPUFycmF5KGYpO3ZhciBoPTAsaz0wLGw9ZC5IZCxuPWQuQmI7ZC5CYj1kLkhkLmluZGV4T2YoInwiLGQuQmIpKzE7Zm9yKHZhciBxPTA7cTxlO3ErKyl7dmFyIHA9cWIoZCkscj1wJjIsdD1wJjE7cD4+Pj0yO3Q/KGgrPXA+Pj4xXi0ocCYxKSxwPSJzeSIraC50b1N0cmluZygzNikpOih0PW4sbis9cCxwPWwuc3Vic3RyaW5nKHQsbikpO2JbcV09cDtyJiYoZltrKytdPXApfWZba109IiI7ZC5CYisrO2s9ZSYtMjtoPWUmMTtmb3IobD0wO2w8aztsKz0yKW49cGIoZCksZ1tsXT1uJjcsZ1tsKwoxXT1uPj4+MyY3O2gmJihoPXBiKGQpLGdba109aCY3KTtkLkJiKys7Zm9yKGs9MDtrPGU7aysrKWdba109PT03JiYoZ1trXT1xYihkKSk7ZC5CYisrO2ZvcihoPWs9MDtoPGU7aCsrKXtsPWdbaF07bj1sPT09MD9aZDpBcnJheShsKTtjW2hdPW47cT1rO2ZvcihyPTA7cjxsO3IrKylxLT1xYihkKSxuW3JdPWZbcV07ZltrXT09PWJbaF0mJmsrK31mb3IoZD0wO2Q8Yi5sZW5ndGg7ZCsrKVhlKGEsYltkXSxjW2RdKTthLkk9Yn07VmUucHJvdG90eXBlLmplPWZ1bmN0aW9uKGEsYil7aWYodGhpcy5oIGluc3RhbmNlb2YgTWFwKXt2YXIgYz10aGlzLmguZ2V0KGEpO2MmJihjLmRlbGV0ZShiKSxjLnNpemU9PT0wJiZ0aGlzLmguZGVsZXRlKGEpKX1lbHNlIGlmKHRoaXMuaFthXSl7ZGVsZXRlIHRoaXMuaFthXVtiXTtmb3IoYyBpbiB0aGlzLmhbYV0pcmV0dXJuO2RlbGV0ZSB0aGlzLmhbYV19fTtWZS5wcm90b3R5cGUuc2U9ZnVuY3Rpb24oYSl7VmUuZWEuc2UuY2FsbCh0aGlzLGEpO1plKHRoaXMpfTsKVmUucHJvdG90eXBlLmlzQWN0aXZlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuby5zaXplPjB9O1ZlLnByb3RvdHlwZS5EZj1mdW5jdGlvbigpe3JldHVybiB0aGlzLkIuc2l6ZT4wfTsKdmFyIGFmPWZ1bmN0aW9uKGEpe3ZhciBiPWEuUCxjPWEuaXNBY3RpdmUoKTtjIT1iJiYoJGUoYSxjP2RlLmxnOmRlLklETEUpLGEuUD1jKTtiPWEuRGYoKTtiIT1hLlQmJigkZShhLGI/ZGUuSGc6ZGUuSWcpLGEuVD1iKX0sWGU9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPWEuZy5nZXQoYik7ZD9kLmw9YzphLmcuc2V0KGIsbmV3IG5jLkZlKGMsYikpfSxkZj1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9W10sZT17fTtiPV8uQyhuZXcgU2V0KGIpKTtmb3IodmFyIGY9Yi5uZXh0KCk7IWYuZG9uZTtmPWIubmV4dCgpKXtmPWYudmFsdWU7dmFyIGc9YS5nLmdldChmKTtpZighZyl0aHJvdyBFcnJvcigiQ2AiK2YpO3ZhciBoPW5ldyBCYjtlW2ZdPWg7Zy5nP2guZyhhLnFhKTooYmYoYSxmLGcsISFjLGgpLGNmKGEsZil8fGQucHVzaChmKSl9ZC5sZW5ndGg+MCYmKGEuby5zaXplPT09MD9hLkcoZCk6KGEuai5wdXNoKGQpLGFmKGEpKSk7cmV0dXJuIGV9LGJmPWZ1bmN0aW9uKGEsYixjLGQsZSl7YWUoYywKZS5nLGUpO2JlKGMsZnVuY3Rpb24oZil7ZS5GKG5ldyBXZShiLGYpKX0pO2NmKGEsYik/ZCYmKGEuQi5hZGQoYiksYWYoYSkpOmQmJmEuQi5hZGQoYil9OwpWZS5wcm90b3R5cGUuRz1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9dGhpcztiPWI9PT12b2lkIDA/MDpiO3ZhciBlPWVmKHRoaXMsYSk7dGhpcy5vPW5ldyBTZXQoZSk7dGhpcy5BPXRoaXMuVz9hOl8ud2EoZSk7YWYodGhpcyk7aWYoZS5sZW5ndGghPT0wKXthPV8uQyhlKTtmb3IodmFyIGY9YS5uZXh0KCk7IWYuZG9uZTtmPWEubmV4dCgpKXRoaXMuQy5hZGQoZi52YWx1ZSk7YT10aGlzLk87aWYoIWEpdGhyb3cgRXJyb3IoIkQiKTtpZigodGhpcy5oIGluc3RhbmNlb2YgTWFwP3RoaXMuaC5zaXplPjA6T2JqZWN0LmtleXModGhpcy5oKS5sZW5ndGg+MCkmJiFhLkkpdGhyb3cgRXJyb3IoIkUiKTtmZihhLF8ud2EoZSksdGhpcy5nLHtqaDp0aGlzLmgsZmU6ZnVuY3Rpb24oZyxoLGspe3JldHVybiBnZihkLGQuQSxlLGchPW51bGw/Zzp2b2lkIDAsaCxiLCEhayl9LEZpOigwLF8ueSkodGhpcy5sYSx0aGlzKSxtaDohIWN9KX19Owp2YXIgaGY9ZnVuY3Rpb24oYSl7dGhpcy5oPWE7dGhpcy5qPW5ldyBTZXQ7dGhpcy5nPVtdfSxqZj1mdW5jdGlvbihhLGIpe2lmKCFhLmouaGFzKGIpJiYoYS5qLmFkZChiKSwhYS5oLkMuaGFzKGIpKSl7dmFyIGM9YS5oLmcuZ2V0KGIpO2lmKGMmJiFjLmcpe2M9Yy5sO2Zvcih2YXIgZD0wO2Q8Yy5sZW5ndGg7ZCsrKWpmKGEsY1tkXSk7YS5nLnB1c2goYil9fX0sZWY9ZnVuY3Rpb24oYSxiKXtiPWIuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiBhLmcuZ2V0KGUpLmc/KF8udi5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7cmV0dXJuIEVycm9yKCJGYCIrZSl9LDApLCExKTohMH0pO2lmKE9jKXt2YXIgYz1uZXcgaGYoYSk7Zm9yKHZhciBkPTA7ZDxiLmxlbmd0aDtkKyspamYoYyxiW2RdKTtjPWMuZ31lbHNle2M9W107Zm9yKGQ9MDtkPGIubGVuZ3RoO2QrKyljPWMuY29uY2F0KGtmKGEsYltkXSkpO0JhKGMpfXJldHVybiFhLlcmJmMubGVuZ3RoPjE/KGI9Yy5zaGlmdCgpLGEuaj1jLm1hcChmdW5jdGlvbihlKXtyZXR1cm5bZV19KS5jb25jYXQoYS5qKSwKW2JdKTpjfSxrZj1mdW5jdGlvbihhLGIpe2lmKE9jKXJldHVybiBhPW5ldyBoZihhKSxqZihhLGIpLGEuZzt2YXIgYz1bXTthLkMuaGFzKGIpfHxjLnB1c2goYik7Yj1bYl07Zm9yKHZhciBkPTA7ZDxiLmxlbmd0aDtkKyspZm9yKHZhciBlPWEuZy5nZXQoYltkXSkubCxmPWUubGVuZ3RoLTE7Zj49MDtmLS0pe3ZhciBnPWVbZl07YS5nLmdldChnKS5nfHxhLkMuaGFzKGcpfHwoYy5wdXNoKGcpLGIucHVzaChnKSl9Yy5yZXZlcnNlKCk7QmEoYyk7cmV0dXJuIGN9LFplPWZ1bmN0aW9uKGEpe2lmKGEubD09YS5EKXthLmw9bnVsbDt2YXIgYj1hLkQub25Mb2FkKCgwLF8ueSkoYS5rZixhKSk7YiYmYi5sZW5ndGgmJmxmKGEsbmV3IG5jLkZhKG5jLkZhLmcudGQsdm9pZCAwLHZvaWQgMCx2b2lkIDAsYlswXSkpO2FmKGEpfX07ClZlLnByb3RvdHlwZS5tZD1mdW5jdGlvbigpe2lmKHRoaXMubCl7dmFyIGE9dGhpcy5sLlJhKCksYj1bXTtpZih0aGlzLmggaW5zdGFuY2VvZiBNYXApe3ZhciBjPXRoaXMuaC5nZXQoYSk7aWYoYyl7Yz1fLkMoQXJyYXkuZnJvbShjKSk7Zm9yKHZhciBkPWMubmV4dCgpOyFkLmRvbmU7ZD1jLm5leHQoKSl7ZD1kLnZhbHVlO3ZhciBlPXRoaXMuZy5nZXQoZCk7ZSYmIWUuZyYmKHRoaXMuamUoYSxkKSxiLnB1c2goZCkpfWRmKHRoaXMsYil9fWVsc2UgaWYodGhpcy5oW2FdKXtjPV8uQyhPYmplY3Qua2V5cyh0aGlzLmhbYV0pKTtmb3IoZD1jLm5leHQoKTshZC5kb25lO2Q9Yy5uZXh0KCkpZD1kLnZhbHVlLChlPXRoaXMuZy5nZXQoZCkpJiYhZS5nJiYodGhpcy5qZShhLGQpLGIucHVzaChkKSk7ZGYodGhpcyxiKX10aGlzLnFiKCl8fCgoYj10aGlzLmcuZ2V0KGEpLm9uTG9hZCgoMCxfLnkpKHRoaXMua2YsdGhpcykpKSYmYi5sZW5ndGgmJmxmKHRoaXMsbmV3IG5jLkZhKG5jLkZhLmcudGQsCnZvaWQgMCx2b2lkIDAsdm9pZCAwLGJbMF0pKSx0aGlzLkIuZGVsZXRlKGEpLHRoaXMuby5kZWxldGUoYSksdGhpcy5vLnNpemUhPT0wfHxtZih0aGlzKSx0aGlzLkwmJmE9PXRoaXMuTCYmKHRoaXMuRi5ofHx0aGlzLkYuZygpKSxhZih0aGlzKSx0aGlzLmw9bnVsbCl9fTt2YXIgY2Y9ZnVuY3Rpb24oYSxiKXtpZihhLm8uaGFzKGIpKXJldHVybiEwO2Zvcih2YXIgYz0wO2M8YS5qLmxlbmd0aDtjKyspaWYoXy50YShhLmpbY10sYikpcmV0dXJuITA7cmV0dXJuITF9O1ZlLnByb3RvdHlwZS5sb2FkPWZ1bmN0aW9uKGEsYil7cmV0dXJuIGRmKHRoaXMsW2FdLGIpW2FdfTsKdmFyIGthPWZ1bmN0aW9uKGEpe3ZhciBiPV8uZGE7Yi5sJiZiLmwuUmEoKT09PSJzeW50aGV0aWNfbW9kdWxlX292ZXJoZWFkIiYmKGIubWQoKSxiLmcuZGVsZXRlKCJzeW50aGV0aWNfbW9kdWxlX292ZXJoZWFkIikpO3ZhciBjPWIuZy5nZXQoYSk7YyYmbmYoYixjLmx8fFtdLGZ1bmN0aW9uKGQpe2QubWQoKTtiLm8uZGVsZXRlKGQuUmEoKSl9LGZ1bmN0aW9uKGQpe3JldHVybiFkLmd9LG5ldyBTZXQpO2IubD1iLmcuZ2V0KGEpO2IubCYmKGIubC5CPSEwKX0sZ2Y9ZnVuY3Rpb24oYSxiLGMsZCxlLGYsZyl7dmFyIGg9KGc9PT12b2lkIDA/MDpnKT8wOihmPT09dm9pZCAwPzA6ZikrMTtmPV8ud2EoYyk7YS5BPWI7Yz1fLkMoYyk7Zm9yKGc9Yy5uZXh0KCk7IWcuZG9uZTtnPWMubmV4dCgpKWEuQy5kZWxldGUoZy52YWx1ZSk7aWYoZD09NDAxKWxmKGEsbmV3IG5jLkZhKG5jLkZhLmcuSmUsZCkpLGEuai5sZW5ndGg9MDtlbHNlIGlmKGQ9PTQxMClvZihhLG5ldyBuYy5GYShuYy5GYS5nLkhlLApkKSksbWYoYSk7ZWxzZSBpZihoPj0zKW9mKGEsbmV3IG5jLkZhKG5jLkZhLmcuQmUsZCxmLGUpKSxtZihhKTtlbHNle3ZhciBrPWQ9PTgwMDF8fCExOyhkPU1hdGgucG93KGgsMikqNUUzKT9fLnYuc2V0VGltZW91dChmdW5jdGlvbigpe2EuRyhiLGgsayl9LGQpOmEuRyhiLGgsayl9fTtWZS5wcm90b3R5cGUubGE9ZnVuY3Rpb24oKXtvZih0aGlzLG5ldyBuYy5GYShuYy5GYS5nLlRJTUVPVVQpKTttZih0aGlzKX07CnZhciBvZj1mdW5jdGlvbihhLGIpe2EuQS5sZW5ndGg+MT9hLmo9YS5BLm1hcChmdW5jdGlvbihjKXtyZXR1cm5bY119KS5jb25jYXQoYS5qKTpsZihhLGIpfSxsZj1mdW5jdGlvbihhLGIpe3ZhciBjPWEuQTthLm8uY2xlYXIoKTtmb3IodmFyIGQ9W10sZT0wO2U8YS5qLmxlbmd0aDtlKyspe3ZhciBmPWEualtlXS5maWx0ZXIoZnVuY3Rpb24oayl7dmFyIGw9a2YodGhpcyxrKTtyZXR1cm4gXy54YyhjLGZ1bmN0aW9uKG4pe3JldHVybiBfLnRhKGwsbil9KX0sYSk7eGEoZCxmKX1mb3IoZT0wO2U8Yy5sZW5ndGg7ZSsrKV8udWEoZCxjW2VdKTtmb3IoZT0wO2U8ZC5sZW5ndGg7ZSsrKXtmb3IoZj0wO2Y8YS5qLmxlbmd0aDtmKyspXy52YShhLmpbZl0sZFtlXSk7YS5CLmRlbGV0ZShkW2VdKX1pZihlPWEuSy5nZXQoZGUuRVJST1IpKWZvcihmPTA7ZjxlLmxlbmd0aDtmKyspZm9yKHZhciBnPWVbZl0saD0wO2g8ZC5sZW5ndGg7aCsrKWcoZGUuRVJST1IsZFtoXSxiKTtmb3IoZD0wO2Q8Yy5sZW5ndGg7ZCsrKShlPQphLmcuZ2V0KGNbZF0pKSYmZS5mZShiKTthLkEubGVuZ3RoPTA7YWYoYSl9LG1mPWZ1bmN0aW9uKGEpe2Zvcig7YS5qLmxlbmd0aDspe3ZhciBiPWEuai5zaGlmdCgpLmZpbHRlcihmdW5jdGlvbihjKXtyZXR1cm4hdGhpcy5nLmdldChjKS5nfSxhKTtpZihiLmxlbmd0aD4wKXthLkcoYik7cmV0dXJufX1hZihhKX0sJGU9ZnVuY3Rpb24oYSxiKXthPWEuSy5nZXQoYik7Zm9yKHZhciBjPTA7YSYmYzxhLmxlbmd0aDtjKyspYVtjXShiKX0sbmY9ZnVuY3Rpb24oYSxiLGMsZCxlKXtiPV8uQyhiKTtmb3IodmFyIGY9Yi5uZXh0KCk7IWYuZG9uZTtmPWIubmV4dCgpKXtmPWYudmFsdWU7dmFyIGc9YS5nLmdldChmKTshZS5oYXMoZikmJmQoZykmJihlLmFkZChmKSxuZihhLGcubHx8W10sYyxkLGUpLGMoZykpfX07ClZlLnByb3RvdHlwZS5kaXNwb3NlPWZ1bmN0aW9uKCl7cmEoQXJyYXkuZnJvbSh0aGlzLmcudmFsdWVzKCkpLHRoaXMuRCk7dGhpcy5nLmNsZWFyKCk7dGhpcy5vLmNsZWFyKCk7dGhpcy5BPVtdO3RoaXMuQi5jbGVhcigpO3RoaXMuaj1bXTt0aGlzLksuY2xlYXIoKTt0aGlzLlI9ITB9O1ZlLnByb3RvdHlwZS5xYj1mdW5jdGlvbigpe3JldHVybiB0aGlzLlJ9O18uaGE9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IFZlfTt2YXIgcGY9W10scWY9ZnVuY3Rpb24oYSl7ZnVuY3Rpb24gYihkKXtkJiZ3YyhkLGZ1bmN0aW9uKGUsZil7ZVtmLmlkXT0hMDtyZXR1cm4gZX0sYy5KaSl9dmFyIGM9e0ppOnt9LGluZGV4OnBmLmxlbmd0aCxWbDphfTtiKGEubGQpO2IoYS5qbSk7cGYucHVzaChjKTthLmxkJiZfLnZjKGEubGQsZnVuY3Rpb24oZCl7dmFyIGU9ZC5pZDtlIGluc3RhbmNlb2YgdGMmJmQubW9kdWxlJiYoZS5nPWQubW9kdWxlKX0pfTtxZih7bGQ6W3tpZDp1YyxMYjpuYixtdWx0aXBsZTohMH1dfSk7Xy5yZj1SZWdFeHAoIl4oPzooW146Lz8jLl0rKTopPyg/Oi8vKD86KFteXFxcXC8/I10qKUApPyhbXlxcXFwvPyNdKj8pKD86OihbMC05XSspKT8oPz1bXFxcXC8/I118JCkpPyhbXj8jXSspPyg/OlxcPyhbXiNdKikpPyg/OiMoW1xcc1xcU10qKSk/JCIpO3ZhciBzZj17fTt2YXIgdGY9bmV3IHRjKCJNcEp3WmMiLCJNcEp3WmMiKTtfLnVmPW5ldyB0YygiVVVKcVZlIiwiVVVKcVZlIik7dmFyIHZmPW5ldyBiYix3Zj1mdW5jdGlvbihhLGIsYyl7Y2IuY2FsbCh0aGlzLGEsYik7dGhpcy5ub2RlPWI7dGhpcy5raW5kPWN9O18uQih3ZixjYik7Xy54Zj1SZWdFeHAoIl4oYXJ8Y2tifGR2fGhlfGl3fGZhfG5xb3xwc3xzZHx1Z3x1cnx5aXwuKlstX10oQWRsbXxBcmFifEhlYnJ8Tmtvb3xSb2hnfFRoYWEpKSg/IS4qWy1fXShMYXRufEN5cmwpKCR8LXxfKSkoJHwtfF8pIiwiaSIpO18ueWY9ZnVuY3Rpb24oYSxiKXtifHxfLmxiKCk7dGhpcy5oPWF8fG51bGx9O18ueWYucHJvdG90eXBlLmthPWZ1bmN0aW9uKGEsYil7YT1hKGJ8fHt9LHRoaXMuaD90aGlzLmguZ2V0RGF0YSgpOnt9KTt0aGlzLmcobnVsbCwiZnVuY3Rpb24iPT10eXBlb2YgXy56ZiYmYSBpbnN0YW5jZW9mIF8uemY/YS5aYjpudWxsKTtyZXR1cm4gU3RyaW5nKGEpfTtfLnlmLnByb3RvdHlwZS5nPWZ1bmN0aW9uKCl7fTt2YXIgQWY9ZnVuY3Rpb24oYSl7dGhpcy5nPWE7dGhpcy5oPXRoaXMuZy5nKF8udWYpfTtBZi5wcm90b3R5cGUuZ2V0RGF0YT1mdW5jdGlvbigpe3RoaXMuZy5xYigpfHwodGhpcy5oPXRoaXMuZy5nKF8udWYpKTtyZXR1cm4gdGhpcy5oP3RoaXMuaC5qKCk6e319O3ZhciBCZj1mdW5jdGlvbihhKXt2YXIgYj1uZXcgQWYoYSk7Xy55Zi5jYWxsKHRoaXMsYixhLmdldCh1YykuaCk7dGhpcy5qPW5ldyBfLmhiO3RoaXMubD1ifTtfLkIoQmYsXy55Zik7QmYucHJvdG90eXBlLmdldERhdGE9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5sLmdldERhdGEoKX07QmYucHJvdG90eXBlLmc9ZnVuY3Rpb24oYSxiKXtfLnlmLnByb3RvdHlwZS5nLmNhbGwodGhpcyxhLGIpO3RoaXMuai5kaXNwYXRjaEV2ZW50KG5ldyB3Zih2ZixhLGIpKX07Xy5vYSh0ZixCZik7cWYoe2xkOlt7aWQ6dGYsTGI6QmYsbXVsdGlwbGU6ITB9XX0pO3ZhciBDZj1mdW5jdGlvbihhLGIpe3RoaXMuZGVmYXVsdFZhbHVlPWE7dGhpcy50eXBlPWI7dGhpcy52YWx1ZT1hfTtDZi5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudmFsdWV9O0NmLnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24oYSl7dGhpcy52YWx1ZT1hfTt2YXIgRGY9ZnVuY3Rpb24oYSl7Q2YuY2FsbCh0aGlzLGEsImIiKX07Xy5CKERmLENmKTtEZi5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudmFsdWV9O3ZhciBFZj1mdW5jdGlvbigpe3RoaXMuZz17fTt0aGlzLmo9IiI7dGhpcy5oPXt9fTtFZi5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXt2YXIgYT10aGlzLmorRmYodGhpcyk7dmFyIGI9dGhpcy5oO3ZhciBjPVtdLGQ7Zm9yKGQgaW4gYilGYihkLGJbZF0sYyk7Yj1jLmpvaW4oIiYiKTtjPSIiO2IhPSIiJiYoYz0iPyIrYik7cmV0dXJuIGErY307CnZhciBIZj1mdW5jdGlvbihhKXthPUdmKGEsIm1kIik7cmV0dXJuISFhJiZhIT09IjAifSxGZj1mdW5jdGlvbihhKXt2YXIgYj1bXSxjPWZ1bmN0aW9uKGQpe2EuZ1tkXSE9PXZvaWQgMCYmYi5wdXNoKGQrIj0iK2EuZ1tkXSl9O0hmKGEpPyhjKCJtZCIpLGMoImsiKSxjKCJjayIpLGMoImFtIiksYygicnMiKSxjKCJnc3Ntb2R1bGVzZXRwcm90byIpLGMoInNsayIpLGMoImR0aSIpLGMoImRid2giKSk6KGMoInNkY2giKSxjKCJrIiksYygiY2siKSxjKCJhbSIpLGMoImFtYyIpLGMoInJ0IiksImQiaW4gYS5nfHxJZihhLCJkIiwiMCIpLGMoImQiKSxjKCJleG0iKSxjKCJleGNtIiksKGEuZy5leGNtfHxhLmcuZXhtKSYmYi5wdXNoKCJlZD0xIiksYygiaW0iKSxjKCJkZyIpLGMoInNtIiksR2YoYSwiYnIiKSE9IjEiJiZHZihhLCJiciIpIT0iMCJ8fGMoImJyIiksYygiYnItZCIpLEdmKGEsInJiIik9PSIxIiYmYygicmIiKSxHZihhLCJ6cyIpIT09IjAiJiZjKCJ6cyIpLEpmKGEpIT09IiImJgpjKCJ3dCIpLGMoImdzc21vZHVsZXNldHByb3RvIiksYygidWpnIiksYygic3AiKSxjKCJpY2hjIiksYygicnMiKSxjKCJjYiIpLGMoImNjYiIpLGMoImVlIiksYygic2xrIiksYygiZHRpIiksYygiZGJ3aCIpLGMoImljIiksYygibSIpKTtyZXR1cm4gYi5qb2luKCIvIil9LEdmPWZ1bmN0aW9uKGEsYil7cmV0dXJuIGEuZ1tiXT9hLmdbYl06bnVsbH0sSWY9ZnVuY3Rpb24oYSxiLGMpe2M/YS5nW2JdPWM6ZGVsZXRlIGEuZ1tiXX0sSmY9ZnVuY3Rpb24oYSl7c3dpdGNoKEdmKGEsInd0Iikpe2Nhc2UgIjAiOnJldHVybiIwIjtjYXNlICIxIjpyZXR1cm4iMSI7Y2FzZSAiMiI6cmV0dXJuIjIiO2RlZmF1bHQ6cmV0dXJuIiJ9fSxNZj1mdW5jdGlvbihhKXt2YXIgYj1iPT09dm9pZCAwPyEwOmI7dmFyIGM9S2YoYSksZD1uZXcgRWYsZT1jLm1hdGNoKF8ucmYpWzVdO18uemMoTGYsZnVuY3Rpb24oZyl7dmFyIGg9ZS5tYXRjaCgiLyIrZysiPShbXi9dKykiKTtoJiZJZihkLGcsaFsxXSl9KTsKdmFyIGY9IiI7Zj1hLmluZGV4T2YoIl8vc3MvIikhPS0xPyJfL3NzLyI6Il8vanMvIjtkLmo9YS5zdWJzdHIoMCxhLmluZGV4T2YoZikrZi5sZW5ndGgpO2lmKCFiKXJldHVybiBkOyhhPWMubWF0Y2goXy5yZilbNl18fG51bGwpJiZfLkViKGEsZnVuY3Rpb24oZyxoKXtkLmhbZ109aH0pO3JldHVybiBkfSxLZj1mdW5jdGlvbihhKXtyZXR1cm4gYS5zdGFydHNXaXRoKCJodHRwczovL3ViZXJwcm94eS1wZW4tcmVkaXJlY3QuY29ycC5nb29nbGUuY29tL3ViZXJwcm94eS9wZW4/dXJsPSIpP2Euc3Vic3RyKDY1KTphfSxMZj17Wmo6ImsiLHFqOiJjayIsVGo6Im0iLERqOiJleG0iLEJqOiJleGNtIixlajoiYW0iLGZqOiJhbWMiLFJqOiJtbSIsWWo6InJ0IixNajoiZCIsQ2o6ImVkIixqazoic3YiLHNqOiJkZW9iIixtajoiY2IiLG9qOiJjY2IiLG5qOiJjYmkiLGdrOiJycyIsYWs6InNkY2giLE5qOiJpbSIsdGo6ImRnIix6ajoiYnIiLHlqOiJici1kIixBajoicmIiLEJrOiJ6cyIsQWs6Ind0IiwKRWo6ImVlIixpazoic20iLFNqOiJtZCIsSmo6Imdzc21vZHVsZXNldHByb3RvIix5azoidWpnIix4azoic3AiLExqOiJpY2hjIixmazoic2xrIix2ajoiZHRpIix1ajoiZGJ3aCIsT2o6ImljIn0sTmY9UmVnRXhwKCJeW2EtekEtWjAtOS1fKl0rJCIpO18uRyhfLkhiLF8udSk7dmFyIE9mPVtdO18uSGIucHJvdG90eXBlLk49ZnVuY3Rpb24oYSxiLGMsZCl7cmV0dXJuIFBmKHRoaXMsYSxiLGMsZCl9O3ZhciBQZj1mdW5jdGlvbihhLGIsYyxkLGUsZil7QXJyYXkuaXNBcnJheShjKXx8KGMmJihPZlswXT1jLnRvU3RyaW5nKCkpLGM9T2YpO2Zvcih2YXIgZz0wO2c8Yy5sZW5ndGg7ZysrKXt2YXIgaD1fLngoYixjW2ddLGR8fGEuaGFuZGxlRXZlbnQsZXx8ITEsZnx8YS5ofHxhKTtpZighaClicmVhazthLmdbaC5rZXldPWh9cmV0dXJuIGF9O18uSGIucHJvdG90eXBlLmFlPWZ1bmN0aW9uKGEsYixjLGQpe3JldHVybiBRZih0aGlzLGEsYixjLGQpfTsKdmFyIFFmPWZ1bmN0aW9uKGEsYixjLGQsZSxmKXtpZihBcnJheS5pc0FycmF5KGMpKWZvcih2YXIgZz0wO2c8Yy5sZW5ndGg7ZysrKVFmKGEsYixjW2ddLGQsZSxmKTtlbHNle2I9Xy5OZChiLGMsZHx8YS5oYW5kbGVFdmVudCxlLGZ8fGEuaHx8YSk7aWYoIWIpcmV0dXJuIGE7YS5nW2Iua2V5XT1ifXJldHVybiBhfTtfLkhiLnByb3RvdHlwZS55Yz1mdW5jdGlvbihhLGIsYyxkLGUpe2lmKEFycmF5LmlzQXJyYXkoYikpZm9yKHZhciBmPTA7ZjxiLmxlbmd0aDtmKyspdGhpcy55YyhhLGJbZl0sYyxkLGUpO2Vsc2UgYz1jfHx0aGlzLmhhbmRsZUV2ZW50LGQ9Xy55YShkKT8hIWQuY2FwdHVyZTohIWQsZT1lfHx0aGlzLmh8fHRoaXMsYz1PZChjKSxkPSEhZCxiPUZkKGEpP2EuamMoYixjLGQsZSk6YT8oYT1RZChhKSk/YS5qYyhiLGMsZCxlKTpudWxsOm51bGwsYiYmKF8uVmQoYiksZGVsZXRlIHRoaXMuZ1tiLmtleV0pO3JldHVybiB0aGlzfTsKXy5SZj1mdW5jdGlvbihhKXtfLnpjKGEuZyxmdW5jdGlvbihiLGMpe3RoaXMuZy5oYXNPd25Qcm9wZXJ0eShjKSYmXy5WZChiKX0sYSk7YS5nPXt9fTtfLkhiLnByb3RvdHlwZS5NPWZ1bmN0aW9uKCl7Xy5IYi5lYS5NLmNhbGwodGhpcyk7Xy5SZih0aGlzKX07Xy5IYi5wcm90b3R5cGUuaGFuZGxlRXZlbnQ9ZnVuY3Rpb24oKXt0aHJvdyBFcnJvcigiTiIpO307dmFyIFNmLFRmPWZ1bmN0aW9uKCl7fTtfLkcoVGYsSWIpO1RmLnByb3RvdHlwZS5nPWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBYTUxIdHRwUmVxdWVzdH07U2Y9bmV3IFRmO18uRyhKYixJYik7SmIucHJvdG90eXBlLmc9ZnVuY3Rpb24oKXt2YXIgYT1uZXcgWE1MSHR0cFJlcXVlc3Q7aWYoIndpdGhDcmVkZW50aWFscyJpbiBhKXJldHVybiBhO2lmKHR5cGVvZiBYRG9tYWluUmVxdWVzdCE9InVuZGVmaW5lZCIpcmV0dXJuIG5ldyBVZjt0aHJvdyBFcnJvcigiTyIpO307dmFyIFVmPWZ1bmN0aW9uKCl7dGhpcy5nPW5ldyBYRG9tYWluUmVxdWVzdDt0aGlzLnJlYWR5U3RhdGU9MDt0aGlzLm9ucmVhZHlzdGF0ZWNoYW5nZT1udWxsO3RoaXMucmVzcG9uc2VUeXBlPXRoaXMucmVzcG9uc2VUZXh0PSIiO3RoaXMuc3RhdHVzPS0xO3RoaXMuc3RhdHVzVGV4dD0iIjt0aGlzLmcub25sb2FkPSgwLF8ueSkodGhpcy5QaCx0aGlzKTt0aGlzLmcub25lcnJvcj0oMCxfLnkpKHRoaXMuRGUsdGhpcyk7dGhpcy5nLm9ucHJvZ3Jlc3M9KDAsXy55KSh0aGlzLlNoLHRoaXMpO3RoaXMuZy5vbnRpbWVvdXQ9KDAsXy55KSh0aGlzLldoLHRoaXMpfTtfLm09VWYucHJvdG90eXBlOwpfLm0ub3Blbj1mdW5jdGlvbihhLGIsYyl7aWYoYyE9bnVsbCYmIWMpdGhyb3cgRXJyb3IoIlAiKTt0aGlzLmcub3BlbihhLGIpfTtfLm0uc2VuZD1mdW5jdGlvbihhKXtpZihhKWlmKHR5cGVvZiBhPT0ic3RyaW5nIil0aGlzLmcuc2VuZChhKTtlbHNlIHRocm93IEVycm9yKCJRIik7ZWxzZSB0aGlzLmcuc2VuZCgpfTtfLm0uYWJvcnQ9ZnVuY3Rpb24oKXt0aGlzLmcuYWJvcnQoKX07Xy5tLnNldFJlcXVlc3RIZWFkZXI9ZnVuY3Rpb24oKXt9O18ubS5nZXRSZXNwb25zZUhlYWRlcj1mdW5jdGlvbihhKXtyZXR1cm4gYS50b0xvd2VyQ2FzZSgpPT0iY29udGVudC10eXBlIj90aGlzLmcuY29udGVudFR5cGU6IiJ9O18ubS5QaD1mdW5jdGlvbigpe3RoaXMuc3RhdHVzPTIwMDt0aGlzLnJlc3BvbnNlVGV4dD10aGlzLmcucmVzcG9uc2VUZXh0O1ZmKHRoaXMsNCl9O18ubS5EZT1mdW5jdGlvbigpe3RoaXMuc3RhdHVzPTUwMDt0aGlzLnJlc3BvbnNlVGV4dD0iIjtWZih0aGlzLDQpfTsKXy5tLldoPWZ1bmN0aW9uKCl7dGhpcy5EZSgpfTtfLm0uU2g9ZnVuY3Rpb24oKXt0aGlzLnN0YXR1cz0yMDA7VmYodGhpcywxKX07dmFyIFZmPWZ1bmN0aW9uKGEsYil7YS5yZWFkeVN0YXRlPWI7aWYoYS5vbnJlYWR5c3RhdGVjaGFuZ2UpYS5vbnJlYWR5c3RhdGVjaGFuZ2UoKX07VWYucHJvdG90eXBlLmdldEFsbFJlc3BvbnNlSGVhZGVycz1mdW5jdGlvbigpe3JldHVybiJjb250ZW50LXR5cGU6ICIrdGhpcy5nLmNvbnRlbnRUeXBlfTt2YXIgWGYsWWY7Xy5XZj1mdW5jdGlvbihhKXtfLmhiLmNhbGwodGhpcyk7dGhpcy5oZWFkZXJzPW5ldyBNYXA7dGhpcy5LPWF8fG51bGw7dGhpcy5oPSExO3RoaXMuZz1udWxsO3RoaXMuQT0iIjt0aGlzLmo9dGhpcy5GPXRoaXMubz10aGlzLkQ9ITE7dGhpcy5CPTA7dGhpcy5sPW51bGw7dGhpcy5JPSIiO3RoaXMuQz0hMX07Xy5HKF8uV2YsXy5oYik7WGY9L15odHRwcz8kL2k7WWY9WyJQT1NUIiwiUFVUIl07Xy5aZj1bXTtfLldmLnByb3RvdHlwZS5MPWZ1bmN0aW9uKCl7dGhpcy5kaXNwb3NlKCk7Xy52YShfLlpmLHRoaXMpfTsKXy5XZi5wcm90b3R5cGUuc2VuZD1mdW5jdGlvbihhLGIsYyxkKXtpZih0aGlzLmcpdGhyb3cgRXJyb3IoIlNgIit0aGlzLkErImAiK2EpO2I9Yj9iLnRvVXBwZXJDYXNlKCk6IkdFVCI7dGhpcy5BPWE7dGhpcy5EPSExO3RoaXMuaD0hMDt0aGlzLmc9dGhpcy5LP3RoaXMuSy5nKCk6U2YuZygpO3RoaXMuZy5vbnJlYWR5c3RhdGVjaGFuZ2U9ZWUoKDAsXy55KSh0aGlzLkcsdGhpcykpO3RyeXt0aGlzLkY9ITAsdGhpcy5nLm9wZW4oYixTdHJpbmcoYSksITApLHRoaXMuRj0hMX1jYXRjaChnKXskZih0aGlzKTtyZXR1cm59YT1jfHwiIjtjPW5ldyBNYXAodGhpcy5oZWFkZXJzKTtpZihkKWlmKE9iamVjdC5nZXRQcm90b3R5cGVPZihkKT09PU9iamVjdC5wcm90b3R5cGUpZm9yKHZhciBlIGluIGQpYy5zZXQoZSxkW2VdKTtlbHNlIGlmKHR5cGVvZiBkLmtleXM9PT0iZnVuY3Rpb24iJiZ0eXBlb2YgZC5nZXQ9PT0iZnVuY3Rpb24iKXtlPV8uQyhkLmtleXMoKSk7Zm9yKHZhciBmPWUubmV4dCgpOyFmLmRvbmU7Zj0KZS5uZXh0KCkpZj1mLnZhbHVlLGMuc2V0KGYsZC5nZXQoZikpfWVsc2UgdGhyb3cgRXJyb3IoIlRgIitTdHJpbmcoZCkpO2Q9QXJyYXkuZnJvbShjLmtleXMoKSkuZmluZChmdW5jdGlvbihnKXtyZXR1cm4iY29udGVudC10eXBlIj09Zy50b0xvd2VyQ2FzZSgpfSk7ZT1fLnYuRm9ybURhdGEmJmEgaW5zdGFuY2VvZiBfLnYuRm9ybURhdGE7IV8udGEoWWYsYil8fGR8fGV8fGMuc2V0KCJDb250ZW50LVR5cGUiLCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7Y2hhcnNldD11dGYtOCIpO2I9Xy5DKGMpO2ZvcihkPWIubmV4dCgpOyFkLmRvbmU7ZD1iLm5leHQoKSljPV8uQyhkLnZhbHVlKSxkPWMubmV4dCgpLnZhbHVlLGM9Yy5uZXh0KCkudmFsdWUsdGhpcy5nLnNldFJlcXVlc3RIZWFkZXIoZCxjKTt0aGlzLkkmJih0aGlzLmcucmVzcG9uc2VUeXBlPXRoaXMuSSk7IndpdGhDcmVkZW50aWFscyJpbiB0aGlzLmcmJnRoaXMuZy53aXRoQ3JlZGVudGlhbHMhPT10aGlzLkMmJgoodGhpcy5nLndpdGhDcmVkZW50aWFscz10aGlzLkMpO3RyeXt0aGlzLmwmJihjbGVhclRpbWVvdXQodGhpcy5sKSx0aGlzLmw9bnVsbCksdGhpcy5CPjAmJih0aGlzLmw9c2V0VGltZW91dCh0aGlzLlIuYmluZCh0aGlzKSx0aGlzLkIpKSx0aGlzLm89ITAsdGhpcy5nLnNlbmQoYSksdGhpcy5vPSExfWNhdGNoKGcpeyRmKHRoaXMpfX07Xy5XZi5wcm90b3R5cGUuUj1mdW5jdGlvbigpe3R5cGVvZiBqYyE9InVuZGVmaW5lZCImJnRoaXMuZyYmKHRoaXMuZGlzcGF0Y2hFdmVudCgidGltZW91dCIpLHRoaXMuYWJvcnQoOCkpfTt2YXIgJGY9ZnVuY3Rpb24oYSl7YS5oPSExO2EuZyYmKGEuaj0hMCxhLmcuYWJvcnQoKSxhLmo9ITEpO2RnKGEpO2VnKGEpfSxkZz1mdW5jdGlvbihhKXthLkR8fChhLkQ9ITAsYS5kaXNwYXRjaEV2ZW50KCJjb21wbGV0ZSIpLGEuZGlzcGF0Y2hFdmVudCgiZXJyb3IiKSl9OwpfLldmLnByb3RvdHlwZS5hYm9ydD1mdW5jdGlvbigpe3RoaXMuZyYmdGhpcy5oJiYodGhpcy5oPSExLHRoaXMuaj0hMCx0aGlzLmcuYWJvcnQoKSx0aGlzLmo9ITEsdGhpcy5kaXNwYXRjaEV2ZW50KCJjb21wbGV0ZSIpLHRoaXMuZGlzcGF0Y2hFdmVudCgiYWJvcnQiKSxlZyh0aGlzKSl9O18uV2YucHJvdG90eXBlLk09ZnVuY3Rpb24oKXt0aGlzLmcmJih0aGlzLmgmJih0aGlzLmg9ITEsdGhpcy5qPSEwLHRoaXMuZy5hYm9ydCgpLHRoaXMuaj0hMSksZWcodGhpcywhMCkpO18uV2YuZWEuTS5jYWxsKHRoaXMpfTtfLldmLnByb3RvdHlwZS5HPWZ1bmN0aW9uKCl7dGhpcy5xYigpfHwodGhpcy5GfHx0aGlzLm98fHRoaXMuaj9mZyh0aGlzKTp0aGlzLk8oKSl9O18uV2YucHJvdG90eXBlLk89ZnVuY3Rpb24oKXtmZyh0aGlzKX07CnZhciBmZz1mdW5jdGlvbihhKXtpZihhLmgmJnR5cGVvZiBqYyE9InVuZGVmaW5lZCIpaWYoYS5vJiYoYS5nP2EuZy5yZWFkeVN0YXRlOjApPT00KXNldFRpbWVvdXQoYS5HLmJpbmQoYSksMCk7ZWxzZSBpZihhLmRpc3BhdGNoRXZlbnQoInJlYWR5c3RhdGVjaGFuZ2UiKSwoYS5nP2EuZy5yZWFkeVN0YXRlOjApPT00KXthLmg9ITE7dHJ5e18uZ2coYSk/KGEuZGlzcGF0Y2hFdmVudCgiY29tcGxldGUiKSxhLmRpc3BhdGNoRXZlbnQoInN1Y2Nlc3MiKSk6ZGcoYSl9ZmluYWxseXtlZyhhKX19fSxlZz1mdW5jdGlvbihhLGIpe2lmKGEuZyl7YS5sJiYoY2xlYXJUaW1lb3V0KGEubCksYS5sPW51bGwpO3ZhciBjPWEuZzthLmc9bnVsbDtifHxhLmRpc3BhdGNoRXZlbnQoInJlYWR5Iik7dHJ5e2Mub25yZWFkeXN0YXRlY2hhbmdlPW51bGx9Y2F0Y2goZCl7fX19O18uV2YucHJvdG90eXBlLmlzQWN0aXZlPWZ1bmN0aW9uKCl7cmV0dXJuISF0aGlzLmd9OwpfLmdnPWZ1bmN0aW9uKGEpe3ZhciBiPV8uaGcoYSk7YTpzd2l0Y2goYil7Y2FzZSAyMDA6Y2FzZSAyMDE6Y2FzZSAyMDI6Y2FzZSAyMDQ6Y2FzZSAyMDY6Y2FzZSAzMDQ6Y2FzZSAxMjIzOnZhciBjPSEwO2JyZWFrIGE7ZGVmYXVsdDpjPSExfWlmKCFjKXtpZihiPWI9PT0wKWE9U3RyaW5nKGEuQSkubWF0Y2goXy5yZilbMV18fG51bGwsIWEmJl8udi5zZWxmJiZfLnYuc2VsZi5sb2NhdGlvbiYmKGE9Xy52LnNlbGYubG9jYXRpb24ucHJvdG9jb2wuc2xpY2UoMCwtMSkpLGI9IVhmLnRlc3QoYT9hLnRvTG93ZXJDYXNlKCk6IiIpO2M9Yn1yZXR1cm4gY307Xy5oZz1mdW5jdGlvbihhKXt0cnl7cmV0dXJuKGEuZz9hLmcucmVhZHlTdGF0ZTowKT4yP2EuZy5zdGF0dXM6LTF9Y2F0Y2goYil7cmV0dXJuLTF9fTtfLmlnPWZ1bmN0aW9uKGEpe3RyeXtyZXR1cm4gYS5nP2EuZy5yZXNwb25zZVRleHQ6IiJ9Y2F0Y2goYil7cmV0dXJuIiJ9fTt2YXIga2c9ZnVuY3Rpb24oYSl7Xy51LmNhbGwodGhpcyk7dGhpcy5GPWE7dGhpcy5CPU1mKGEpO3RoaXMubD10aGlzLm89bnVsbDt0aGlzLkk9ITA7dGhpcy5oPW5ldyBfLkhiKHRoaXMpO3RoaXMuRz1bXTt0aGlzLkE9bmV3IFNldDt0aGlzLmc9W107dGhpcy5LPW5ldyBqZzt0aGlzLmo9W107dGhpcy5DPSExO2E9KDAsXy55KSh0aGlzLkQsdGhpcyk7c2YudmVyc2lvbj1hfTtfLkIoa2csXy51KTsKdmFyIGxnPWZ1bmN0aW9uKGEsYil7YS5nLmxlbmd0aCYmUGUoYixhLmdbYS5nLmxlbmd0aC0xXSk7YS5nLnB1c2goYik7TWUoYixmdW5jdGlvbigpe18udmEodGhpcy5nLGIpfSxhKX0sZmY9ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU9ZD09PXZvaWQgMD97fTpkO3ZhciBmPWUuamg7ZD1lLm1oO3ZhciBnPWUuZmU7ZT1lLkZpO2I9bWcoYSxiLGMsZixkKTtuZyhhLGIsZyxlLGQpfSxtZz1mdW5jdGlvbihhLGIsYyxkLGUpe2Q9ZD09PXZvaWQgMD9OYz9uZXcgTWFwOnt9OmQ7dmFyIGY9W107b2coYSxiLGMsZCxlPT09dm9pZCAwPyExOmUsZnVuY3Rpb24oZyl7Zi5wdXNoKGcuUmEoKSl9KTtyZXR1cm4gZn0sb2c9ZnVuY3Rpb24oYSxiLGMsZCxlLGYsZyl7Zz1nPT09dm9pZCAwP3t9Omc7Yj1fLkMoYik7Zm9yKHZhciBoPWIubmV4dCgpOyFoLmRvbmU7aD1iLm5leHQoKSl7dmFyIGs9aC52YWx1ZTtoPWMuZ2V0KGspOyFlJiYoYS5BLmhhcyhrKXx8aC5nKXx8Z1trXXx8KGdba109ITAsaz1kIGluc3RhbmNlb2YKTWFwPyhrPWQuZ2V0KGspKT9BcnJheS5mcm9tKGspOltdOmRba10/T2JqZWN0LmtleXMoZFtrXSk6W10sb2coYSxoLmwuY29uY2F0KGspLGMsZCxlLGYsZyksZihoKSl9fSxuZz1mdW5jdGlvbihhLGIsYyxkLGUpe2U9ZT09PXZvaWQgMD8hMTplO3ZhciBmPVtdLGc9bmV3IEJiO2I9W2JdO2Zvcih2YXIgaD1mdW5jdGlvbihxLHApe2Zvcih2YXIgcj1bXSx0PTAsQT1NYXRoLmZsb29yKHEubGVuZ3RoL3ApKzEsRD0wO0Q8cDtEKyspe3ZhciBFPShEKzEpKkE7ci5wdXNoKHEuc2xpY2UodCxFKSk7dD1FfXJldHVybiByfSxrPWIuc2hpZnQoKTtrOyl7dmFyIGw9cGcoYSxrLCEhZSwhMCk7aWYobC5sZW5ndGg8PTJFMyl7aWYoaz1yZyhhLGssZSkpZi5wdXNoKGspLFBlKGcsay5nKX1lbHNlIGI9aChrLE1hdGguY2VpbChsLmxlbmd0aC8yRTMpKS5jb25jYXQoYik7az1iLnNoaWZ0KCl9dmFyIG49bmV3IEJiO2xnKGEsbik7TWUobixmdW5jdGlvbigpe3JldHVybiBzZyhhLGYsYyxkKX0pO05lKG4sCmZ1bmN0aW9uKCl7dmFyIHE9bmV3IHRnO3Euaj0hMDtxLmg9LTE7c2codGhpcyxbcV0sYyxkKX0sYSk7TWUoZyxmdW5jdGlvbigpe3JldHVybiBuLmcoKX0pO2cuZygpfSxyZz1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9cGcoYSxiLCEoYz09PXZvaWQgMHx8IWMpKTthLkcucHVzaChkKTtiPV8uQyhiKTtmb3IoYz1iLm5leHQoKTshYy5kb25lO2M9Yi5uZXh0KCkpYS5BLmFkZChjLnZhbHVlKTtpZihhLkMpYT1fLndkKGRvY3VtZW50LCJTQ1JJUFQiKSxfLlNhKGEsXy5MYihkKSksYS50eXBlPSJ0ZXh0L2phdmFzY3JpcHQiLGEuYXN5bmM9ITEsZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChhKTtlbHNle3ZhciBlPW5ldyB0ZyxmPW5ldyBfLldmKGEuai5sZW5ndGg+MD9uZXcgSmI6dm9pZCAwKTthLmguTihmLCJzdWNjZXNzIiwoMCxfLnkpKGUuQixlLGYpKTthLmguTihmLCJlcnJvciIsKDAsXy55KShlLkEsZSxmKSk7YS5oLk4oZiwidGltZW91dCIsKDAsXy55KShlLkMsZSkpO1BmKGEuaCwKZiwicmVhZHkiLGYuZGlzcG9zZSwhMSxmKTtmLkI9M0U0O3VnKGEuSyxmdW5jdGlvbigpe2Yuc2VuZChkKTtyZXR1cm4gZS5nfSk7cmV0dXJuIGV9cmV0dXJuIG51bGx9LHNnPWZ1bmN0aW9uKGEsYixjLGQpe2Zvcih2YXIgZT0hMSxmLGc9ITEsaD0wO2g8Yi5sZW5ndGg7aCsrKXt2YXIgaz1iW2hdO2lmKCFmJiZrLmope2U9ITA7Zj1rLmg7YnJlYWt9ZWxzZSBrLmwmJihnPSEwKX1oPV8ud2EoYS5nKTsoZXx8ZykmJmYhPS0xJiYoYS5nLmxlbmd0aD0wKTtpZihlKWMmJmMoZik7ZWxzZSBpZihnKWQmJmQoKTtlbHNlIGZvcihhPTA7YTxiLmxlbmd0aDthKyspZD1iW2FdLHZnKGQubyxkLkNhKXx8YyYmYyg4MDAxKTsoZXx8ZykmJmYhPS0xJiZfLnZjKGgsZnVuY3Rpb24obCl7bC5jYW5jZWwoKX0pfTtrZy5wcm90b3R5cGUuTT1mdW5jdGlvbigpe3RoaXMuaC5kaXNwb3NlKCk7ZGVsZXRlIHNmLnZlcnNpb247Xy51LnByb3RvdHlwZS5NLmNhbGwodGhpcyl9OwprZy5wcm90b3R5cGUuRD1mdW5jdGlvbigpe3JldHVybiBHZih0aGlzLkIsImsiKX07CnZhciBwZz1mdW5jdGlvbihhLGIsYyxkKXtkPWQ9PT12b2lkIDA/ITE6ZDt2YXIgZT1fLkNiKGEuRi5tYXRjaChfLnJmKVszXXx8bnVsbCk7aWYoYS5qLmxlbmd0aD4wJiYhXy50YShhLmosZSkmJmUhPW51bGwmJndpbmRvdy5sb2NhdGlvbi5ob3N0bmFtZSE9ZSl0aHJvdyBFcnJvcigiV2AiK2UpO3ZhciBmPWEuQjtlPW5ldyBFZjtlLmc9T2JqZWN0LmFzc2lnbih7fSxmLmcpO2Uuaj1mLmo7ZS5oPU9iamVjdC5hc3NpZ24oe30sZi5oKTtkZWxldGUgZS5nLm07ZGVsZXRlIGUuZy5leG07ZGVsZXRlIGUuZy5lZDtpZihiKXtmPV8uQyhiKTtmb3IodmFyIGc9Zi5uZXh0KCk7IWcuZG9uZTtnPWYubmV4dCgpKWlmKGc9Zy52YWx1ZSwhTmYudGVzdChnKSl0aHJvdyBFcnJvcigiTWAiK2cpO31JZihlLCJtIixiLmpvaW4oIiwiKSk7YS5vJiYoSWYoZSwiY2siLGEubyksYS5sJiZJZihlLCJycyIsYS5sKSk7SWYoZSwiZCIsIjAiKTtjJiYoZS5oLnp4PU1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSoKMjE0NzQ4MzY0OCkudG9TdHJpbmcoMzYpK01hdGguYWJzKE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSoyMTQ3NDgzNjQ4KV5EYXRlLm5vdygpKS50b1N0cmluZygzNikpO2E9ZS50b1N0cmluZygpO2QmJmEubGFzdEluZGV4T2YoIi8iLDApPT0wJiYoZT1kb2N1bWVudC5sb2NhdGlvbi5ocmVmLm1hdGNoKF8ucmYpLGQ9ZVsxXSxiPWVbMl0sYz1lWzNdLGU9ZVs0XSxmPSIiLGQmJihmKz1kKyI6IiksYyYmKGYrPSIvLyIsYiYmKGYrPWIrIkAiKSxmKz1jLGUmJihmKz0iOiIrZSkpLGE9ZithKTtyZXR1cm4gYX0sdmc9ZnVuY3Rpb24oYSxiKXt2YXIgYz0iIjtpZihhLmxlbmd0aD4xJiZhLmNoYXJBdChhLmxlbmd0aC0xKT09PSJcbiIpe3ZhciBkPWEubGFzdEluZGV4T2YoIlxuIixhLmxlbmd0aC0yKTtkPj0wJiYoYz1hLnN1YnN0cmluZyhkKzEsYS5sZW5ndGgtMSkpfWQ9Yy5sZW5ndGgtMTE7aWYoZD49MCYmYy5pbmRleE9mKCJHb29nbGUgSW5jLiIsZCk9PWR8fGMubGFzdEluZGV4T2YoIi8vIyBzb3VyY2VNYXBwaW5nVVJMPSIsCjApPT0wKXRyeXtjPXdpbmRvdzthPWErIlxyXG4vLyMgc291cmNlVVJMPSIrYjthPV8uS2IoYSk7dmFyIGU9Xy5RYShhKTt2YXIgZj1fLlJhKGUpO2MuZXZhbChmKT09PWYmJmMuZXZhbChmLnRvU3RyaW5nKCkpfWNhdGNoKGcpe3JldHVybiExfWVsc2UgcmV0dXJuITE7cmV0dXJuITB9LHdnPWZ1bmN0aW9uKGEpe3ZhciBiPV8uQ2IoYS5tYXRjaChfLnJmKVs1XXx8bnVsbCl8fCIiO2I9Xy5DYihLZihiKS5tYXRjaChfLnJmKVs1XXx8bnVsbCk7cmV0dXJuKGI9PT1udWxsPzA6UmVnRXhwKCIoL18vanMvKXwoL18vc3MvKSIsImciKS50ZXN0KGIpJiYvXC9rPS8udGVzdChiKSk/YTpudWxsfSx0Zz1mdW5jdGlvbigpe3RoaXMuZz1uZXcgQmI7dGhpcy5DYT10aGlzLm89IiI7dGhpcy5qPSExO3RoaXMuaD0wO3RoaXMubD0hMX07dGcucHJvdG90eXBlLkI9ZnVuY3Rpb24oYSl7dGhpcy5vPV8uaWcoYSk7dGhpcy5DYT1TdHJpbmcoYS5BKTt0aGlzLmcuZygpfTsKdGcucHJvdG90eXBlLkE9ZnVuY3Rpb24oYSl7dGhpcy5qPSEwO3RoaXMuaD1fLmhnKGEpO3RoaXMuZy5nKCl9O3RnLnByb3RvdHlwZS5DPWZ1bmN0aW9uKCl7dGhpcy5sPSEwO3RoaXMuZy5nKCl9O3ZhciBqZz1mdW5jdGlvbigpe3RoaXMuZz0wO3RoaXMuaD1bXX0sdWc9ZnVuY3Rpb24oYSxiKXthLmgucHVzaChiKTt4ZyhhKX0seGc9ZnVuY3Rpb24oYSl7Zm9yKDthLmc8NSYmYS5oLmxlbmd0aDspeWcoYSxhLmguc2hpZnQoKSl9LHlnPWZ1bmN0aW9uKGEsYil7YS5nKys7TWUoYigpLGZ1bmN0aW9uKCl7dGhpcy5nLS07eGcodGhpcyl9LGEpfTt2YXIgemc9bmV3IERmKCExKSxBZz1kb2N1bWVudC5sb2NhdGlvbi5ocmVmOwpxZih7ZmxhZ3M6e2RtbDp6Z30saW5pdGlhbGl6ZTpmdW5jdGlvbihhKXt2YXIgYj16Zy5nZXQoKSxjPSIiLGQ9IiI7d2luZG93JiZ3aW5kb3cuX0ZfY3NzUm93S2V5JiYoYz13aW5kb3cuX0ZfY3NzUm93S2V5LHdpbmRvdy5fRl9jb21iaW5lZFNpZ25hdHVyZSYmKGQ9d2luZG93Ll9GX2NvbWJpbmVkU2lnbmF0dXJlKSk7aWYoYyYmdHlwZW9mIHdpbmRvdy5fRl9pbnN0YWxsQ3NzIT09ImZ1bmN0aW9uIil0aHJvdyBFcnJvcigiVSIpO3ZhciBlLGY9Xy52Ll9GX2pzVXJsO2YmJihlPXdnKGYpKTshZSYmKGY9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJhc2UtanMiKSkmJihlPWYuc3JjP2Yuc3JjOmYuZ2V0QXR0cmlidXRlKCJocmVmIiksZT13ZyhlKSk7ZXx8KGU9d2coQWcpKTtlfHwoZT1kb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgic2NyaXB0IiksZT13ZyhlW2UubGVuZ3RoLTFdLnNyYykpO2lmKCFlKXRocm93IEVycm9yKCJWIik7ZT1uZXcga2coZSk7YyYmKGUubz1jKTsKZCYmKGUubD1kKTtlLkM9YjtiPWphKCk7Yi5PPWU7Yi5YZighMCk7Yj1qYSgpO2Iuc2UoYSk7YS5qKGIpfX0pOwpfLl9Nb2R1bGVNYW5hZ2VyX2luaXRpYWxpemU9ZnVuY3Rpb24oYSxiKXtpZighXy5kYSl7aWYoIV8uaGEpcmV0dXJuO18uaWEoKX1fLmRhLnFlKGEsYil9OwpfLl9Nb2R1bGVNYW5hZ2VyX2luaXRpYWxpemUoJ2IvbjczcXdmL1VVSnFWZS9NcEp3WmMvZWxfY29uZi9lbF9tYWluX2Nzcy9zeTEvc3kyOjYvc3kzOjcvc3k0OjYvZWxfbWFpbjo1LDgsOS9jb3JzcHJveHkvd2Vic2l0ZV9lcnJvci9uYXZpZ2F0aW9udWk6Ny9waGlzaGluZ19wcm90ZWN0aW9uOjgvX3N0YW06OScsWydlbF9jb25mJ10pOwp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewpfLmxhKCJlbF9jb25mIik7CnZhciBDZztfLl9leHBvcnRWZXJzaW9uPWZ1bmN0aW9uKGEpe18ucmMoImdvb2dsZS50cmFuc2xhdGUudiIsYSl9O18uX2dldENhbGxiYWNrRnVuY3Rpb249ZnVuY3Rpb24oYSl7cmV0dXJuIF8ua2MoYSl9O0NnPWZ1bmN0aW9uKGEpe3ZhciBiPWRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJoZWFkIilbMF07Ynx8KGI9ZG9jdW1lbnQuYm9keS5wYXJlbnROb2RlLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImhlYWQiKSkpO2IuYXBwZW5kQ2hpbGQoYSl9O18uX2xvYWRKcz1mdW5jdGlvbihhKXt2YXIgYj1fLndkKGRvY3VtZW50LCJTQ1JJUFQiKTtiLnR5cGU9InRleHQvamF2YXNjcmlwdCI7Yi5jaGFyc2V0PSJVVEYtOCI7Xy5TYShiLF8uTGIoYSkpO0NnKGIpfTsKXy5fbG9hZENzcz1mdW5jdGlvbihhKXt2YXIgYj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJsaW5rIik7Yi50eXBlPSJ0ZXh0L2NzcyI7Yi5yZWw9InN0eWxlc2hlZXQiO2IuY2hhcnNldD0iVVRGLTgiO2IuaHJlZj1hO0NnKGIpfTtfLl9pc05TPWZ1bmN0aW9uKGEpe2E9YS5zcGxpdCgiLiIpO2Zvcih2YXIgYj13aW5kb3csYz0wO2M8YS5sZW5ndGg7KytjKWlmKCEoYj1iW2FbY11dKSlyZXR1cm4hMTtyZXR1cm4hMH07Xy5fc2V0dXBOUz1mdW5jdGlvbihhKXthPWEuc3BsaXQoIi4iKTtmb3IodmFyIGI9d2luZG93LGM9MDtjPGEubGVuZ3RoOysrYyliLmhhc093blByb3BlcnR5P2IuaGFzT3duUHJvcGVydHkoYVtjXSk/Yj1iW2FbY11dOmI9YlthW2NdXT17fTpiPWJbYVtjXV18fChiW2FbY11dPXt9KTtyZXR1cm4gYn07Xy5yYygiX2V4cG9ydFZlcnNpb24iLF8uX2V4cG9ydFZlcnNpb24pO18ucmMoIl9nZXRDYWxsYmFja0Z1bmN0aW9uIixfLl9nZXRDYWxsYmFja0Z1bmN0aW9uKTsKXy5yYygiX2xvYWRKcyIsXy5fbG9hZEpzKTtfLnJjKCJfbG9hZENzcyIsXy5fbG9hZENzcyk7Xy5yYygiX2lzTlMiLF8uX2lzTlMpO18ucmMoIl9zZXR1cE5TIixfLl9zZXR1cE5TKTt3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lciYmdHlwZW9mIGRvY3VtZW50LnJlYWR5U3RhdGU9PSJ1bmRlZmluZWQiJiZ3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigiRE9NQ29udGVudExvYWRlZCIsZnVuY3Rpb24oKXtkb2N1bWVudC5yZWFkeVN0YXRlPSJjb21wbGV0ZSJ9LCExKTsKXy5tYSgpOwp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KfSkuY2FsbCh0aGlzLHRoaXMuZGVmYXVsdF90cik7Ci8vIEdvb2dsZSBJbmMuCgovLyMgc291cmNlVVJMPS9fL3RyYW5zbGF0ZV9odHRwL18vanMvaz10cmFuc2xhdGVfaHR0cC50ci5uby5zY3JuWTZRMl95dy5PL2FtPUJJQUFCdy9kPTEvcnM9QU44U1BmcTFLbFVGcWVpRnZCTXVkZHV6R3RiMzlRV1h1dy9tPWVsX2NvbmYKICAgIC8vIENvbmZpZ3VyZSBDb25zdGFudHMKICAgIChmdW5jdGlvbigpewogICAgICBsZXQgZ3RDb25zdEV2YWxTdGFydFRpbWUgPSBuZXcgRGF0ZSgpOwogICAgICBpZiAoX2lzTlMoJ2dvb2dsZS50cmFuc2xhdGUuRWxlbWVudCcpKXtyZXR1cm59CgogICAgICAoZnVuY3Rpb24oKXsKICAgICAgICBjb25zdCBjPV9zZXR1cE5TKCdnb29nbGUudHJhbnNsYXRlLl9jb25zdCcpOwoKICAgICAgICBjLl9jZXN0ID0gZ3RDb25zdEV2YWxTdGFydFRpbWU7CiAgICAgICAgZ3RDb25zdEV2YWxTdGFydFRpbWUgPSB1bmRlZmluZWQ7IC8vIGhpZGUgdGhpcyBldmFsIHN0YXJ0IHRpbWUgY29uc3RhbnQKICBjLl9jbD0nbm8nOyBjLl9jdWM9J2dvb2dsZVRyYW5zbGF0ZUVsZW1lbnRJbml0JzsgYy5fY2VmPSdceDViMCwxLDAsXHg1Ylx4MjJlc19lblx4MjIsXHgyMmVuX3poXHgyMixceDIyZW5fZGVceDIyLFx4MjJlbl9qYVx4MjIsXHgyMmVuX2VzXHgyMixceDIyZGVfZW5ceDIyXHg1ZCxudWxsLFx4NWIwLDMsMTAwLFx4NWJceDIyZW5faGlceDIyLFx4MjJoaV9lblx4MjIsXHgyMmVuX2VzXHgyMixceDIyZXNfZW5ceDIyLFx4MjJlbl9kZVx4MjIsXHgyMmRlX2VuXHgyMixceDIyZW5femhceDIyLFx4MjJlbl9qYVx4MjIsXHgyMmVuX2FyXHgyMixceDIyZW5faWRceDIyXHg1ZFx4NWQsMCwxLDBceDVkJzsgYy5fY2FjPScnOyBjLl9jYW09Jyc7IGMuX2NlbnY9J3Byb2QnO2MuX2NsbD0nSU5GTyc7IGMuX2NnYWs9Jyc7IGMuX2N0a2s9JzQ5NTg3NC4yMTM0NzQyMTk3JzsgY29uc3QgaD0ndHJhbnNsYXRlLmdvb2dsZWFwaXMuY29tJzsgY29uc3Qgb3BoPSd0cmFuc2xhdGUtcGEuZ29vZ2xlYXBpcy5jb20nOyBjb25zdCBzPSdodHRwcycrJzovLyc7IGMuX3BhaD1oOyBjLl9wYXM9czsgY29uc3QgYj1zKyd0cmFuc2xhdGUuZ29vZ2xlYXBpcy5jb20nOyBjb25zdCBzdGF0aWNQYXRoID0gJy90cmFuc2xhdGVfc3RhdGljLyc7IGMuX3BjaT1iK3N0YXRpY1BhdGgrJ2ltZy90ZV9jdHJsMy5naWYnOyBjLl9wbWk9YitzdGF0aWNQYXRoKydpbWcvbWluaV9nb29nbGUucG5nJzsgYy5fcGJpPWIrc3RhdGljUGF0aCsnaW1nL3RlX2JrLmdpZic7IGMuX3BsaT1iK3N0YXRpY1BhdGgrJ2ltZy9sb2FkaW5nLmdpZic7IGMuX3BzPSdodHRwczpcL1wvd3d3LmdzdGF0aWMuY29tXC9fXC90cmFuc2xhdGVfaHR0cFwvX1wvc3NcL2tceDNkdHJhbnNsYXRlX2h0dHAudHIuQjdEaWg5SnlqbncuTC5GNC5PXC9hbVx4M2RCSUFBQndcL2RceDNkMFwvcnNceDNkQU44U1BmcEMwNHZycnpRWGdzX1RDTTVFdHJ1d2ZQek50UVwvbVx4M2RlbF9tYWluX2Nzcyc7IGMuX3BsbGE9b3BoKydcL3YxXC9zdXBwb3J0ZWRMYW5ndWFnZXMnOyBjLl9wdWg9J3RyYW5zbGF0ZS5nb29nbGUuY29tJztjLl9jbmFsPXt9O19sb2FkQ3NzKGMuX3BzKTsgX2xvYWRKcygnaHR0cHM6XC9cL3RyYW5zbGF0ZS5nb29nbGVhcGlzLmNvbVwvX1wvdHJhbnNsYXRlX2h0dHBcL19cL2pzXC9rXHgzZHRyYW5zbGF0ZV9odHRwLnRyLm5vLnNjcm5ZNlEyX3l3Lk9cL2FtXHgzZEJJQUFCd1wvZFx4M2QxXC9leG1ceDNkZWxfY29uZlwvZWRceDNkMVwvcnNceDNkQU44U1BmcTFLbFVGcWVpRnZCTXVkZHV6R3RiMzlRV1h1d1wvbVx4M2RlbF9tYWluJyk7X2V4cG9ydFZlcnNpb24oJ1RFXzIwMjYwNzIyJyk7CiAgICAgICAgfSkoKTsKICAgICAgfSkoKTsKICA="}},"time_used":116,"timings":{"blocked":-1,"dns":3,"connect":18,"send":0,"wait":52,"receive":0,"ssl":43},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/53627.115195b72f2d92cecb9b.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:12.989Z","timestamp":1785148032989,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/53627.115195b72f2d92cecb9b.js HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:13 GMT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a61b1a8-3f9d\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Thu, 23 Jul 2026 06:16:08 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/23/2026 10:17:24\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 06649cd58d96e1b14bc16a61c11fd3a8\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":16285,"size_decoded":6932,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (3065)","md5":"83531bbbf4576c6e43672349a06b72b5","sha1":"139a361b632189e32c0dd137dfe2b2ed8e655fb5","sha256":"b661a00c1330d2de36b4e45530101c4718696a241c819c26e3676498ac5c95b8","sha512":"029891e11ed6d6c2beb544a4f09ba8d6ab21b208d9fb4ca7c20fa27c5b26386da421b9e8aefc6ee8eb01ee4e4d827ed115989275498a0a2fbf4ed847368cb3fd","ssdeep":"384:pXcabhDdLcMCAL5XlK525HvbEMSgjqfJXJ1YJjB4wrHfw/KN:pXZbhDxDCAL5Xl15DpMJXJ1YJjB4wrHx","tlshash":"b472d84d7201b46d56af76a61c3b164ae1326428358904bcb4e0f4f94879e8fb93bf37","first_seen":"2026-07-23T13:54:09.098812Z","last_seen":"2026-07-27T12:53:06.22086Z","times_seen":291,"resource_available":true,"data":"KHNlbGYud2VicGFja0NodW5rdHJhZGluZ3ZpZXc9c2VsZi53ZWJwYWNrQ2h1bmt0cmFkaW5ndmlld3x8W10pLnB1c2goW1s1MzYyN10sezgyOTE4MChlLHQsbyl7InVzZSBzdHJpY3QiO28ucih0KTt2YXIgaT1vKDYwMTg0MSk7Y29uc3QgYT0veyhcdyspfS9nLG49L3soXGQrKX0vZztTdHJpbmcucHJvdG90eXBlLmZvcm1hdD1mdW5jdGlvbiguLi5lKXtjb25zdCB0PSgwLGkuaXNPYmplY3QpKGVbMF0pLG89dD9hOm4scj10Pyh0LG8pPT57Y29uc3QgaT1lWzBdO3JldHVybiB2b2lkIDAhPT1pW29dP2lbb106dH06KHQsbyk9Pntjb25zdCBpPXBhcnNlSW50KG8sMTApLGE9ZVtpXTtyZXR1cm4gdm9pZCAwIT09YT9hOnR9O3JldHVybiB0aGlzLnJlcGxhY2UobyxyKX19LDE4NTI3MShlLHQsbyl7InVzZSBzdHJpY3QiO28ucih0KSxvLmQodCx7dDooKT0+aS50LHdpdGhUcmFuc2xhdGlvbkNvbnRleHQ6KCk9PmF9KTtvKDgyOTE4MCk7dmFyIGk9byg3ODMyNTQpO2Z1bmN0aW9uIGEoZSl7dGhyb3cgbmV3IEVycm9yKCJOb3QgaW1wbGVtZW50ZWQiKX19LDQ2NzE1OCgpe3RyeXshZnVuY3Rpb24oZSl7InVzZSBzdHJpY3QiO3ZhciB0LG8saT1lLmRvY3VtZW50LGE9ZS5JbWFnZSxuPWUuZ2xvYmFsU3RvcmFnZSxyPWUuc3dmb2JqZWN0O3RyeXt2YXIgYz1lLmxvY2FsU3RvcmFnZX1jYXRjaChlKXt9dHJ5e3ZhciBzPWUuc2Vzc2lvblN0b3JhZ2V9Y2F0Y2goZSl7fXZhciBkPXtoaXN0b3J5OiExLGphdmE6ITEsdGVzdHM6MTAsYmFzZXVybDoiIixsc286ITAsc2lsdmVybGlnaHQ6ITEsZG9tYWluOiIiLGF1dGhQYXRoOiExLHBuZ0Nvb2tpZU5hbWU6InBuZyIscG5nUGF0aDoiL2VjL3BuZyIsZXRhZ0Nvb2tpZU5hbWU6ImV0ZyIsZXRhZ1BhdGg6Ii9lYy9ldGFnIixjYWNoZUNvb2tpZU5hbWU6ImNhY2hlYyIsY2FjaGVQYXRoOiIvZWMvY2FjaGUiLHN0YXRpY3VybDoiL3N0YXRpYy9pbWFnZXMvIn0saD0iQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLz0iO2UuX2V2ZXJjb29raWVfZmxhc2hfdmFyPWZ1bmN0aW9uKGUpe3Q9ZTt2YXIgbz1pLmdldEVsZW1lbnRCeUlkKCJteXN3ZiIpO28mJm8ucGFyZW50Tm9kZSYmby5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKG8pfSxlLmV2ZXJjb29raWU9ZS5FdmVyY29va2llPWZ1bmN0aW9uKHUpe3U9dXx8e307dmFyIGw9e307Zm9yKHZhciBmIGluIGQpe3ZhciB2PXVbZl07bFtmXT12b2lkIDAhPT12P3Y6ZFtmXX0iZnVuY3Rpb24iPT10eXBlb2YgbC5kb21haW4mJihsLmRvbWFpbj1sLmRvbWFpbihlKSk7dmFyIHA9bC5oaXN0b3J5LGc9bC5qYXZhLG09bC50ZXN0cyxfPWwuYmFzZXVybCxrPWwuc3RhdGljdXJsLHk9bC5kb21haW4sQz10aGlzO3RoaXMuX2VjPXt9LHRoaXMuZ2V0PWZ1bmN0aW9uKGUsdCxvKXtDLl9ldmVyY29va2llKGUsdCx2b2lkIDAsdm9pZCAwLG8pfSx0aGlzLnNldD1mdW5jdGlvbihlLHQpe0MuX2V2ZXJjb29raWUoZSwoZnVuY3Rpb24oKXt9KSx0KX0sdGhpcy5fZXZlcmNvb2tpZT1mdW5jdGlvbihhLG4scixjLHMpe2lmKHZvaWQgMD09PUMuX2V2ZXJjb29raWUmJihDPXRoaXMpLHZvaWQgMD09PWMmJihjPTApLDA9PT1jJiYoQy5ldmVyY29va2llX2RhdGFiYXNlX3N0b3JhZ2UoYSxyKSxDLmV2ZXJjb29raWVfaW5kZXhkYl9zdG9yYWdlKGEsciksQy5ldmVyY29va2llX3BuZyhhLHIpLEMuZXZlcmNvb2tpZV9ldGFnKGEsciksQy5ldmVyY29va2llX2NhY2hlKGEsciksbC5sc28mJkMuZXZlcmNvb2tpZV9sc28oYSxyKSxsLnNpbHZlcmxpZ2h0JiZDLmV2ZXJjb29raWVfc2lsdmVybGlnaHQoYSxyKSxsLmF1dGhQYXRoJiZDLmV2ZXJjb29raWVfYXV0aChhLHIpLGcmJkMuZXZlcmNvb2tpZV9qYXZhKGEsciksQy5fZWMudXNlckRhdGE9Qy5ldmVyY29va2llX3VzZXJkYXRhKGEsciksQy5fZWMuY29va2llRGF0YT1DLmV2ZXJjb29raWVfY29va2llKGEsciksQy5fZWMubG9jYWxEYXRhPUMuZXZlcmNvb2tpZV9sb2NhbF9zdG9yYWdlKGEsciksQy5fZWMuZ2xvYmFsRGF0YT1DLmV2ZXJjb29raWVfZ2xvYmFsX3N0b3JhZ2UoYSxyKSxDLl9lYy5zZXNzaW9uRGF0YT1DLmV2ZXJjb29raWVfc2Vzc2lvbl9zdG9yYWdlKGEsciksQy5fZWMud2luZG93RGF0YT1DLmV2ZXJjb29raWVfd2luZG93KGEscikscCYmKEMuX2VjLmhpc3RvcnlEYXRhPUMuZXZlcmNvb2tpZV9oaXN0b3J5KGEscikpKSx2b2lkIDAhPT1yKSh2b2lkIDA9PT10fHx2b2lkIDA9PT1vKSYmYysrPG0mJnNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7Qy5fZXZlcmNvb2tpZShhLG4scixjLHMpfSksMzAwKTtlbHNlIGlmKChlLm9wZW5EYXRhYmFzZSYmdm9pZCAwPT09Qy5fZWMuZGJEYXRhfHwoImluZGV4ZWREQiJpbiBlfHwoZS5pbmRleGVkREI9ZS5pbmRleGVkREJ8fGUubW96SW5kZXhlZERCfHxlLndlYmtpdEluZGV4ZWREQnx8ZS5tc0luZGV4ZWREQikpJiYodm9pZCAwPT09Qy5fZWMuaWRiRGF0YXx8IiI9PT1DLl9lYy5pZGJEYXRhKXx8dm9pZCAwPT09dHx8dm9pZCAwPT09Qy5fZWMuZXRhZ0RhdGF8fHZvaWQgMD09PUMuX2VjLmNhY2hlRGF0YXx8dm9pZCAwPT09Qy5fZWMuamF2YURhdGF8fGkuY3JlYXRlRWxlbWVudCgiY2FudmFzIikuZ2V0Q29udGV4dCYmKHZvaWQgMD09PUMuX2VjLnBuZ0RhdGF8fCIiPT09Qy5fZWMucG5nRGF0YSl8fHZvaWQgMD09PW8pJiZjKys8bSlzZXRUaW1lb3V0KChmdW5jdGlvbigpe0MuX2V2ZXJjb29raWUoYSxuLHIsYyxzKX0pLDMwMCk7ZWxzZXtDLl9lYy5sc29EYXRhPUMuZ2V0RnJvbVN0cihhLHQpLHQ9dm9pZCAwLEMuX2VjLnNsRGF0YT1DLmdldEZyb21TdHIoYSxvKSxvPXZvaWQgMDt2YXIgZCxoLHU9Qy5fZWMsZj1bXSx2PTA7Zm9yKGggaW4gQy5fZWM9e30sdSl1W2hdJiYibnVsbCIhPT11W2hdJiYidW5kZWZpbmVkIiE9PXVbaF0mJihmW3VbaF1dPXZvaWQgMD09PWZbdVtoXV0/MTpmW3VbaF1dKzEpO2ZvcihoIGluIGYpZltoXT52JiYodj1mW2hdLGQ9aCk7dm9pZCAwPT09ZHx8dm9pZCAwIT09cyYmMT09PXN8fEMuc2V0KGEsZCksImZ1bmN0aW9uIj09dHlwZW9mIG4mJm4oZCx1KX19LAp0aGlzLmV2ZXJjb29raWVfd2luZG93PWZ1bmN0aW9uKHQsbyl7dHJ5e2lmKHZvaWQgMD09PW8pcmV0dXJuIHRoaXMuZ2V0RnJvbVN0cih0LGUubmFtZSk7ZS5uYW1lPWZ1bmN0aW9uKGUsdCxvKXtpZihlLmluZGV4T2YoIiYiK3QrIj0iKT4tMXx8MD09PWUuaW5kZXhPZih0KyI9Iikpe3ZhciBpLGE9ZS5pbmRleE9mKCImIit0KyI9Iik7cmV0dXJuLTE9PT1hJiYoYT1lLmluZGV4T2YodCsiPSIpKSwtMSE9PShpPWUuaW5kZXhPZigiJiIsYSsxKSk/ZS5zdWJzdHIoMCxhKStlLnN1YnN0cihpKyhhPzA6MSkpKyImIit0KyI9IitvOmUuc3Vic3RyKDAsYSkrIiYiK3QrIj0iK299cmV0dXJuIGUrIiYiK3QrIj0iK299KGUubmFtZSx0LG8pfWNhdGNoKGUpe319LHRoaXMuZXZlcmNvb2tpZV91c2VyZGF0YT1mdW5jdGlvbihlLHQpe3RyeXt2YXIgbz10aGlzLmNyZWF0ZUVsZW0oImRpdiIsInVzZXJkYXRhX2VsIiwxKTtpZihvLnN0eWxlLmJlaGF2aW9yPSJ1cmwoI2RlZmF1bHQjdXNlckRhdGEpIix2b2lkIDA9PT10KXJldHVybiBvLmxvYWQoZSksby5nZXRBdHRyaWJ1dGUoZSk7by5zZXRBdHRyaWJ1dGUoZSx0KSxvLnNhdmUoZSl9Y2F0Y2goZSl7fX0sdGhpcy5hamF4PWZ1bmN0aW9uKGUpe3ZhciB0LG8saSxhLG4scjtmb3IodD17IlgtUmVxdWVzdGVkLVdpdGgiOiJYTUxIdHRwUmVxdWVzdCIsQWNjZXB0OiJ0ZXh0L2phdmFzY3JpcHQsIHRleHQvaHRtbCwgYXBwbGljYXRpb24veG1sLCB0ZXh0L3htbCwgKi8qIn0sbj0wLHI9KGk9W2Z1bmN0aW9uKCl7cmV0dXJuIG5ldyBYTUxIdHRwUmVxdWVzdH0sZnVuY3Rpb24oKXtyZXR1cm4gbmV3IEFjdGl2ZVhPYmplY3QoIk1zeG1sMi5YTUxIVFRQIil9LGZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBBY3RpdmVYT2JqZWN0KCJNaWNyb3NvZnQuWE1MSFRUUCIpfV0pLmxlbmd0aDtuPHI7bisrKXthPWlbbl07dHJ5e2E9YSgpO2JyZWFrfWNhdGNoKGUpe2NvbnNvbGUuZXJyb3IoZSl9fWZvcihvIGluIGEub25yZWFkeXN0YXRlY2hhbmdlPWZ1bmN0aW9uKCl7NCE9PWEucmVhZHlTdGF0ZXx8YS5zdGF0dXM+PTQwMHx8ZS5zdWNjZXNzKGEucmVzcG9uc2VUZXh0KX0sYS5vcGVuKCJnZXQiLGUudXJsLCEwKSx0KWEuc2V0UmVxdWVzdEhlYWRlcihvLHRbb10pO3RyeXthLnNlbmQoKX1jYXRjaChlKXtjb25zb2xlLmVycm9yKGUpfX0sdGhpcy5ldmVyY29va2llX2NhY2hlPWZ1bmN0aW9uKGUsdCl7aWYodm9pZCAwIT09dClpLmNvb2tpZT1sLmNhY2hlQ29va2llTmFtZSsiPSIrdCsiOyBwYXRoPS87IGRvbWFpbj0iK3ksQy5hamF4KHt1cmw6XytsLmNhY2hlUGF0aCsiP25hbWU9IitlLHN1Y2Nlc3M6ZnVuY3Rpb24oZSl7fX0pO2Vsc2V7dmFyIG89dGhpcy5nZXRGcm9tU3RyKGwuY2FjaGVDb29raWVOYW1lLGkuY29va2llKTtDLl9lYy5jYWNoZURhdGE9dm9pZCAwLGkuY29va2llPWwuY2FjaGVDb29raWVOYW1lKyI9OyBleHBpcmVzPU1vbiwgMjAgU2VwIDIwMTAgMDA6MDA6MDAgVVRDOyBwYXRoPS87IGRvbWFpbj0iK3ksQy5hamF4KHt1cmw6XytsLmNhY2hlUGF0aCsiP25hbWU9IitlLHN1Y2Nlc3M6ZnVuY3Rpb24oZSl7aS5jb29raWU9bC5jYWNoZUNvb2tpZU5hbWUrIj0iK28rIjsgZXhwaXJlcz1UdWUsIDMxIERlYyAyMDMwIDAwOjAwOjAwIFVUQzsgcGF0aD0vOyBkb21haW49Iit5LEMuX2VjLmNhY2hlRGF0YT1lfX0pfX0sdGhpcy5ldmVyY29va2llX2F1dGg9ZnVuY3Rpb24oZSx0KXt2YXIgbyxpO3ZvaWQgMCE9PXQ/KG89Ii8vIit0KyJAIitsb2NhdGlvbi5ob3N0K18rbC5hdXRoUGF0aCsiP25hbWU9IitlLChpPW5ldyBhKS5zdHlsZS52aXNpYmlsaXR5PSJoaWRkZW4iLGkuc3R5bGUucG9zaXRpb249ImFic29sdXRlIixpLnNyYz1vKTpDLmFqYXgoe3VybDpfK2wuYXV0aFBhdGgrIj9uYW1lPSIrZSxzdWNjZXNzOmZ1bmN0aW9uKGUpe0MuX2VjLmF1dGhEYXRhPWV9fSl9LHRoaXMuZXZlcmNvb2tpZV9ldGFnPWZ1bmN0aW9uKGUsdCl7aWYodm9pZCAwIT09dClpLmNvb2tpZT1sLmV0YWdDb29raWVOYW1lKyI9Iit0KyI7IHBhdGg9LzsgZG9tYWluPSIreSxDLmFqYXgoe3VybDpfK2wuZXRhZ1BhdGgrIj9uYW1lPSIrZSxzdWNjZXNzOmZ1bmN0aW9uKGUpe319KTtlbHNle3ZhciBvPXRoaXMuZ2V0RnJvbVN0cihsLmV0YWdDb29raWVOYW1lLGkuY29va2llKTtDLl9lYy5ldGFnRGF0YT12b2lkIDAsaS5jb29raWU9bC5ldGFnQ29va2llTmFtZSsiPTsgZXhwaXJlcz1Nb24sIDIwIFNlcCAyMDEwIDAwOjAwOjAwIFVUQzsgcGF0aD0vOyBkb21haW49Iit5LEMuYWpheCh7dXJsOl8rbC5ldGFnUGF0aCsiP25hbWU9IitlLHN1Y2Nlc3M6ZnVuY3Rpb24oZSl7aS5jb29raWU9bC5ldGFnQ29va2llTmFtZSsiPSIrbysiOyBleHBpcmVzPVR1ZSwgMzEgRGVjIDIwMzAgMDA6MDA6MDAgVVRDOyBwYXRoPS87IGRvbWFpbj0iK3ksQy5fZWMuZXRhZ0RhdGE9ZX19KX19LHRoaXMuZXZlcmNvb2tpZV9qYXZhPWZ1bmN0aW9uKGUsdCl7dmFyIG89aS5nZXRFbGVtZW50QnlJZCgiZWNBcHBsZXRDb250YWluZXIiKTtmdW5jdGlvbiBhKG8pe3ZhciBhPWkuZ2V0RWxlbWVudEJ5SWQobyk7dm9pZCAwIT09dD9hLnNldChlLHQpOkMuX2VjLmphdmFEYXRhPWEuZ2V0KGUpfSJ1bmRlZmluZWQiIT10eXBlb2YgZHRqYXZhJiYobnVsbCE9byYmby5sZW5ndGh8fCgobz1pLmNyZWF0ZUVsZW1lbnQoImRpdiIpKS5zZXRBdHRyaWJ1dGUoImlkIiwiZWNBcHBsZXRDb250YWluZXIiKSxvLnN0eWxlLnBvc2l0aW9uPSJhYnNvbHV0ZSIsby5zdHlsZS50b3A9Ii0zMDAwcHgiLG8uc3R5bGUubGVmdD0iLTMwMDBweCIsby5zdHlsZS53aWR0aD0iMXB4IixvLnN0eWxlLmhlaWdodD0iMXB4IixpLmJvZHkuYXBwZW5kQ2hpbGQobykpLCJ1bmRlZmluZWQiPT10eXBlb2YgZWNBcHBsZXQ/ZHRqYXZhLmVtYmVkKHtpZDoiZWNBcHBsZXQiLHVybDprKyJldmVyY29va2llLmpubHAiLHdpZHRoOiIxcHgiLGhlaWdodDoiMXB4IixwbGFjZWhvbGRlcjoiZWNBcHBsZXRDb250YWluZXIifSx7fSx7b25KYXZhc2NyaXB0UmVhZHk6YX0pOmEoImVjQXBwbGV0IikpfSx0aGlzLmV2ZXJjb29raWVfbHNvPWZ1bmN0aW9uKGUsdCl7CnZhciBvPWkuZ2V0RWxlbWVudEJ5SWQoInN3ZmNvbnRhaW5lciIpLGE9e30sbj17fSxjPXt9O251bGwhPW8mJm8ubGVuZ3RofHwoKG89aS5jcmVhdGVFbGVtZW50KCJkaXYiKSkuc2V0QXR0cmlidXRlKCJpZCIsInN3ZmNvbnRhaW5lciIpLGkuYm9keS5hcHBlbmRDaGlsZChvKSksdm9pZCAwIT09dCYmKGEuZXZlcmRhdGE9ZSsiPSIrdCksbi5zd2xpdmVjb25uZWN0PSJ0cnVlIixjLmlkPSJteXN3ZiIsYy5uYW1lPSJteXN3ZiIsci5lbWJlZFNXRihrKyJldmVyY29va2llLnN3ZiIsInN3ZmNvbnRhaW5lciIsIjEiLCIxIiwiOS4wLjAiLCExLGEsbixjKX0sdGhpcy5ldmVyY29va2llX3BuZz1mdW5jdGlvbihlLHQpe3ZhciBvLG4scixjPWkuY3JlYXRlRWxlbWVudCgiY2FudmFzIik7Yy5zdHlsZS52aXNpYmlsaXR5PSJoaWRkZW4iLGMuc3R5bGUucG9zaXRpb249ImFic29sdXRlIixjLndpZHRoPTIwMCxjLmhlaWdodD0xLGMmJmMuZ2V0Q29udGV4dCYmKChvPW5ldyBhKS5zdHlsZS52aXNpYmlsaXR5PSJoaWRkZW4iLG8uc3R5bGUucG9zaXRpb249ImFic29sdXRlIix2b2lkIDAhPT10P2kuY29va2llPWwucG5nQ29va2llTmFtZSsiPSIrdCsiOyBwYXRoPS87IGRvbWFpbj0iK3k6KEMuX2VjLnBuZ0RhdGE9dm9pZCAwLG49Yy5nZXRDb250ZXh0KCIyZCIpLHI9dGhpcy5nZXRGcm9tU3RyKGwucG5nQ29va2llTmFtZSxpLmNvb2tpZSksaS5jb29raWU9bC5wbmdDb29raWVOYW1lKyI9OyBleHBpcmVzPU1vbiwgMjAgU2VwIDIwMTAgMDA6MDA6MDAgVVRDOyBwYXRoPS87IGRvbWFpbj0iK3ksby5vbmxvYWQ9ZnVuY3Rpb24oKXtpLmNvb2tpZT1sLnBuZ0Nvb2tpZU5hbWUrIj0iK3IrIjsgZXhwaXJlcz1UdWUsIDMxIERlYyAyMDMwIDAwOjAwOjAwIFVUQzsgcGF0aD0vOyBkb21haW49Iit5LEMuX2VjLnBuZ0RhdGE9IiIsbi5kcmF3SW1hZ2UobywwLDApO3ZhciBlLHQsYT1uLmdldEltYWdlRGF0YSgwLDAsMjAwLDEpLmRhdGE7Zm9yKGU9MCx0PWEubGVuZ3RoO2U8dCYmMCE9PWFbZV0mJihDLl9lYy5wbmdEYXRhKz1TdHJpbmcuZnJvbUNoYXJDb2RlKGFbZV0pLDAhPT1hW2UrMV0pJiYoQy5fZWMucG5nRGF0YSs9U3RyaW5nLmZyb21DaGFyQ29kZShhW2UrMV0pLDAhPT1hW2UrMl0pO2UrPTQpQy5fZWMucG5nRGF0YSs9U3RyaW5nLmZyb21DaGFyQ29kZShhW2UrMl0pfSksby5zcmM9XytsLnBuZ1BhdGgrIj9uYW1lPSIrZSl9LHRoaXMuZXZlcmNvb2tpZV9sb2NhbF9zdG9yYWdlPWZ1bmN0aW9uKGUsdCl7dHJ5e2lmKGMpe2lmKHZvaWQgMD09PXQpcmV0dXJuIGMuZ2V0SXRlbShlKTtjLnNldEl0ZW0oZSx0KX19Y2F0Y2goZSl7fX0sdGhpcy5ldmVyY29va2llX2RhdGFiYXNlX3N0b3JhZ2U9ZnVuY3Rpb24odCxvKXt0cnl7aWYoZS5vcGVuRGF0YWJhc2Upe3ZhciBpPWUub3BlbkRhdGFiYXNlKCJzcWxpdGVfZXZlcmNvb2tpZSIsIiIsImV2ZXJjb29raWUiLDEwNDg1NzYpO3ZvaWQgMCE9PW8/aS50cmFuc2FjdGlvbigoZnVuY3Rpb24oZSl7ZS5leGVjdXRlU3FsKCJDUkVBVEUgVEFCTEUgSUYgTk9UIEVYSVNUUyBjYWNoZShpZCBJTlRFR0VSIE5PVCBOVUxMIFBSSU1BUlkgS0VZIEFVVE9JTkNSRU1FTlQsIG5hbWUgVEVYVCBOT1QgTlVMTCwgdmFsdWUgVEVYVCBOT1QgTlVMTCwgVU5JUVVFIChuYW1lKSkiLFtdLChmdW5jdGlvbihlLHQpe30pLChmdW5jdGlvbihlLHQpe30pKSxlLmV4ZWN1dGVTcWwoIklOU0VSVCBPUiBSRVBMQUNFIElOVE8gY2FjaGUobmFtZSwgdmFsdWUpIFZBTFVFUyg/LCA/KSIsW3Qsb10sKGZ1bmN0aW9uKGUsdCl7fSksKGZ1bmN0aW9uKGUsdCl7fSkpfSkpOmkudHJhbnNhY3Rpb24oKGZ1bmN0aW9uKGUpe2UuZXhlY3V0ZVNxbCgiU0VMRUNUIHZhbHVlIEZST00gY2FjaGUgV0hFUkUgbmFtZT0/IixbdF0sKGZ1bmN0aW9uKGUsdCl7dC5yb3dzLmxlbmd0aD49MT9DLl9lYy5kYkRhdGE9dC5yb3dzLml0ZW0oMCkudmFsdWU6Qy5fZWMuZGJEYXRhPSIifSksKGZ1bmN0aW9uKGUsdCl7fSkpfSkpfX1jYXRjaChlKXt9fSx0aGlzLmV2ZXJjb29raWVfaW5kZXhkYl9zdG9yYWdlPWZ1bmN0aW9uKHQsbyl7dHJ5e2lmKCJpbmRleGVkREIiaW4gZXx8KGluZGV4ZWREQj1lLmluZGV4ZWREQnx8ZS5tb3pJbmRleGVkREJ8fGUud2Via2l0SW5kZXhlZERCfHxlLm1zSW5kZXhlZERCLElEQlRyYW5zYWN0aW9uPWUuSURCVHJhbnNhY3Rpb258fGUud2Via2l0SURCVHJhbnNhY3Rpb258fGUubXNJREJUcmFuc2FjdGlvbixJREJLZXlSYW5nZT1lLklEQktleVJhbmdlfHxlLndlYmtpdElEQktleVJhbmdlfHxlLm1zSURCS2V5UmFuZ2UpLGluZGV4ZWREQil7dmFyIGk9aW5kZXhlZERCLm9wZW4oImlkYl9ldmVyY29va2llIiwxKTtpLm9uZXJyb3I9ZnVuY3Rpb24oZSl7fSxpLm9udXBncmFkZW5lZWRlZD1mdW5jdGlvbihlKXtlLnRhcmdldC5yZXN1bHQuY3JlYXRlT2JqZWN0U3RvcmUoImV2ZXJjb29raWUiLHtrZXlQYXRoOiJuYW1lIix1bmlxdWU6ITF9KX0saS5vbnN1Y2Nlc3M9dm9pZCAwIT09bz9mdW5jdGlvbihlKXt2YXIgaT1lLnRhcmdldC5yZXN1bHQ7aWYoaS5vYmplY3RTdG9yZU5hbWVzLmNvbnRhaW5zKCJldmVyY29va2llIikpaS50cmFuc2FjdGlvbihbImV2ZXJjb29raWUiXSwicmVhZHdyaXRlIikub2JqZWN0U3RvcmUoImV2ZXJjb29raWUiKS5wdXQoe25hbWU6dCx2YWx1ZTpvfSk7aS5jbG9zZSgpfTpmdW5jdGlvbihlKXt2YXIgbz1lLnRhcmdldC5yZXN1bHQ7aWYoby5vYmplY3RTdG9yZU5hbWVzLmNvbnRhaW5zKCJldmVyY29va2llIikpe3ZhciBpPW8udHJhbnNhY3Rpb24oWyJldmVyY29va2llIl0pLm9iamVjdFN0b3JlKCJldmVyY29va2llIikuZ2V0KHQpO2kub25zdWNjZXNzPWZ1bmN0aW9uKGUpe3ZvaWQgMD09PWkucmVzdWx0P0MuX2VjLmlkYkRhdGE9dm9pZCAwOkMuX2VjLmlkYkRhdGE9aS5yZXN1bHQudmFsdWV9fWVsc2UgQy5fZWMuaWRiRGF0YT12b2lkIDA7by5jbG9zZSgpfX19Y2F0Y2goZSl7fX0sdGhpcy5ldmVyY29va2llX3Nlc3Npb25fc3RvcmFnZT1mdW5jdGlvbihlLHQpe3RyeXtpZihzKXtpZih2b2lkIDA9PT10KXJldHVybiBzLmdldEl0ZW0oZSk7cy5zZXRJdGVtKGUsdCl9Cn1jYXRjaChlKXt9fSx0aGlzLmV2ZXJjb29raWVfZ2xvYmFsX3N0b3JhZ2U9ZnVuY3Rpb24oZSx0KXtpZihuKXt2YXIgbz10aGlzLmdldEhvc3QoKTt0cnl7aWYodm9pZCAwPT09dClyZXR1cm4gbltvXVtlXTtuW29dW2VdPXR9Y2F0Y2goZSl7fX19LHRoaXMuZXZlcmNvb2tpZV9zaWx2ZXJsaWdodD1mdW5jdGlvbihlLHQpe3ZhciBvLGE9IjQuMC41MDQwMS4wIixuPSIiO3ZvaWQgMCE9PXQmJihuPSc8cGFyYW0gbmFtZT0iaW5pdFBhcmFtcyIgdmFsdWU9IicrZSsiPSIrdCsnIiAvPicpLG89JzxvYmplY3Qgc3R5bGU9InBvc2l0aW9uOmFic29sdXRlO2xlZnQ6LTUwMHB4O3RvcDotNTAwcHgiIGRhdGE9ImRhdGE6YXBwbGljYXRpb24veC1zaWx2ZXJsaWdodC0yLCIgdHlwZT0iYXBwbGljYXRpb24veC1zaWx2ZXJsaWdodC0yIiBpZD0ibXlzaWx2ZXJsaWdodCIgd2lkdGg9IjAiIGhlaWdodD0iMCI+JytuKyc8cGFyYW0gbmFtZT0ic291cmNlIiB2YWx1ZT0iJysoaysiZXZlcmNvb2tpZS54YXAiKSsnIi8+PHBhcmFtIG5hbWU9Im9uTG9hZCIgdmFsdWU9Im9uU2lsdmVybGlnaHRMb2FkIi8+PHBhcmFtIG5hbWU9Im9uRXJyb3IiIHZhbHVlPSJvblNpbHZlcmxpZ2h0RXJyb3IiLz48cGFyYW0gbmFtZT0iYmFja2dyb3VuZCIgdmFsdWU9IlRyYW5zcGFyZW50Ii8+PHBhcmFtIG5hbWU9IndpbmRvd2xlc3MiIHZhbHVlPSJ0cnVlIi8+PHBhcmFtIG5hbWU9Im1pblJ1bnRpbWVWZXJzaW9uIiB2YWx1ZT0iJythKyciLz48cGFyYW0gbmFtZT0iYXV0b1VwZ3JhZGUiIHZhbHVlPSJmYWxzZSIvPjxhIGhyZWY9Imh0dHA6Ly9nby5taWNyb3NvZnQuY29tL2Z3bGluay8/TGlua0lEPTE0OTE1NiZ2PScrYSsnIiBzdHlsZT0iZGlzcGxheTpub25lIj5HZXQgTWljcm9zb2Z0IFNpbHZlcmxpZ2h0PC9hPjwvb2JqZWN0Pic7dHJ5e2kuYm9keS5hcHBlbmRDaGlsZChvKX1jYXRjaChlKXt9fSx0aGlzLmVuY29kZT1mdW5jdGlvbihlKXt2YXIgdCxvLGksYSxuLHIsYyxzPSIiLGQ9MDtmb3IoZT10aGlzLl91dGY4X2VuY29kZShlKTtkPGUubGVuZ3RoOylhPSh0PWUuY2hhckNvZGVBdChkKyspKT4+MixuPSgzJnQpPDw0fChvPWUuY2hhckNvZGVBdChkKyspKT4+NCxyPSgxNSZvKTw8MnwoaT1lLmNoYXJDb2RlQXQoZCsrKSk+PjYsYz02MyZpLGlzTmFOKG8pP3I9Yz02NDppc05hTihpKSYmKGM9NjQpLHM9cytoLmNoYXJBdChhKStoLmNoYXJBdChuKStoLmNoYXJBdChyKStoLmNoYXJBdChjKTtyZXR1cm4gc30sdGhpcy5kZWNvZGU9ZnVuY3Rpb24oZSl7dmFyIHQsbyxpLGEsbixyLGM9IiIscz0wO2ZvcihlPWUucmVwbGFjZSgvW15BLVphLXowLTlcK1wvXD1dL2csIiIpO3M8ZS5sZW5ndGg7KXQ9aC5pbmRleE9mKGUuY2hhckF0KHMrKykpPDwyfChhPWguaW5kZXhPZihlLmNoYXJBdChzKyspKSk+PjQsbz0oMTUmYSk8PDR8KG49aC5pbmRleE9mKGUuY2hhckF0KHMrKykpKT4+MixpPSgzJm4pPDw2fChyPWguaW5kZXhPZihlLmNoYXJBdChzKyspKSksYys9U3RyaW5nLmZyb21DaGFyQ29kZSh0KSw2NCE9PW4mJihjKz1TdHJpbmcuZnJvbUNoYXJDb2RlKG8pKSw2NCE9PXImJihjKz1TdHJpbmcuZnJvbUNoYXJDb2RlKGkpKTtyZXR1cm4gYz10aGlzLl91dGY4X2RlY29kZShjKX0sdGhpcy5fdXRmOF9lbmNvZGU9ZnVuY3Rpb24oZSl7Zm9yKHZhciB0LG89IiIsaT0wLGE9KGU9ZS5yZXBsYWNlKC9cclxuL2csIlxuIikpLmxlbmd0aDtpPGE7aSsrKSh0PWUuY2hhckNvZGVBdChpKSk8MTI4P28rPVN0cmluZy5mcm9tQ2hhckNvZGUodCk6dD4xMjcmJnQ8MjA0OD8obys9U3RyaW5nLmZyb21DaGFyQ29kZSh0Pj42fDE5Miksbys9U3RyaW5nLmZyb21DaGFyQ29kZSg2MyZ0fDEyOCkpOihvKz1TdHJpbmcuZnJvbUNoYXJDb2RlKHQ+PjEyfDIyNCksbys9U3RyaW5nLmZyb21DaGFyQ29kZSh0Pj42JjYzfDEyOCksbys9U3RyaW5nLmZyb21DaGFyQ29kZSg2MyZ0fDEyOCkpO3JldHVybiBvfSx0aGlzLl91dGY4X2RlY29kZT1mdW5jdGlvbihlKXtmb3IodmFyIHQ9IiIsbz0wLGk9ZS5sZW5ndGgsYT0wLG49MCxyPTA7bzxpOykoYT1lLmNoYXJDb2RlQXQobykpPDEyOD8odCs9U3RyaW5nLmZyb21DaGFyQ29kZShhKSxvKz0xKTphPjE5MSYmYTwyMjQ/KG49ZS5jaGFyQ29kZUF0KG8rMSksdCs9U3RyaW5nLmZyb21DaGFyQ29kZSgoMzEmYSk8PDZ8NjMmbiksbys9Mik6KG49ZS5jaGFyQ29kZUF0KG8rMSkscj1lLmNoYXJDb2RlQXQobysyKSx0Kz1TdHJpbmcuZnJvbUNoYXJDb2RlKCgxNSZhKTw8MTJ8KDYzJm4pPDw2fDYzJnIpLG8rPTMpO3JldHVybiB0fSx0aGlzLmV2ZXJjb29raWVfaGlzdG9yeT1mdW5jdGlvbihlLHQpe3ZhciBvLGksYT0oaCsiLSIpLnNwbGl0KCIiKSxuPSJodHRwOi8vd3d3Lmdvb2dsZS5jb20vZXZlcmNvb2tpZS9jYWNoZS8iK3RoaXMuZ2V0SG9zdCgpKyIvIitlLHI9IiIsYz0iIixzPTE7aWYodm9pZCAwIT09dCl7aWYodGhpcy5oYXNWaXNpdGVkKG4pKXJldHVybjtmb3IodGhpcy5jcmVhdGVJZnJhbWUobiwiaWYiKSxuKz0iLyIsaT10aGlzLmVuY29kZSh0KS5zcGxpdCgiIiksbz0wO288aS5sZW5ndGg7bysrKW4rPWlbb10sdGhpcy5jcmVhdGVJZnJhbWUobiwiaWYiK28pO24rPSItIix0aGlzLmNyZWF0ZUlmcmFtZShuLCJpZl8iKX1lbHNlIGlmKHRoaXMuaGFzVmlzaXRlZChuKSl7Zm9yKG4rPSIvIjsiLSIhPT1yJiYxPT09czspZm9yKHM9MCxvPTA7bzxhLmxlbmd0aDtvKyspaWYodGhpcy5oYXNWaXNpdGVkKG4rYVtvXSkpeyItIiE9PShyPWFbb10pJiYoYys9ciksbis9cixzPTE7YnJlYWt9cmV0dXJuIHRoaXMuZGVjb2RlKGMpfX0sdGhpcy5jcmVhdGVFbGVtPWZ1bmN0aW9uKGUsdCxvKXt2YXIgYTtyZXR1cm4oYT12b2lkIDAhPT10JiZpLmdldEVsZW1lbnRCeUlkKHQpP2kuZ2V0RWxlbWVudEJ5SWQodCk6aS5jcmVhdGVFbGVtZW50KGUpKS5zdHlsZS52aXNpYmlsaXR5PSJoaWRkZW4iLGEuc3R5bGUucG9zaXRpb249ImFic29sdXRlIix0JiZhLnNldEF0dHJpYnV0ZSgiaWQiLHQpLG8mJmkuYm9keS5hcHBlbmRDaGlsZChhKSxhfSx0aGlzLmNyZWF0ZUlmcmFtZT1mdW5jdGlvbihlLHQpewp2YXIgbz10aGlzLmNyZWF0ZUVsZW0oImlmcmFtZSIsdCwxKTtyZXR1cm4gby5zZXRBdHRyaWJ1dGUoInNyYyIsZSksb307dmFyIHg9dGhpcy53YWl0Rm9yU3dmPWZ1bmN0aW9uKGUpe3ZvaWQgMD09PWU/ZT0wOmUrKyxlPG0mJnZvaWQgMD09PXImJnNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7eChlKX0pLDMwMCl9O3RoaXMuZXZlcmNvb2tpZV9jb29raWU9ZnVuY3Rpb24oZSx0KXtpZih2b2lkIDA9PT10KXJldHVybiB0aGlzLmdldEZyb21TdHIoZSxpLmNvb2tpZSk7aS5jb29raWU9ZSsiPTsgZXhwaXJlcz1Nb24sIDIwIFNlcCAyMDEwIDAwOjAwOjAwIFVUQzsgcGF0aD0vOyBkb21haW49Iit5LGkuY29va2llPWUrIj0iK3QrIjsgZXhwaXJlcz1UdWUsIDMxIERlYyAyMDMwIDAwOjAwOjAwIFVUQzsgcGF0aD0vOyBkb21haW49Iit5fSx0aGlzLmdldEZyb21TdHI9ZnVuY3Rpb24oZSx0KXtpZigic3RyaW5nIj09dHlwZW9mIHQpe3ZhciBvLGksYT1lKyI9IixuPXQuc3BsaXQoL1s7Jl0vKTtmb3Iobz0wO288bi5sZW5ndGg7bysrKXtmb3IoaT1uW29dOyIgIj09PWkuY2hhckF0KDApOylpPWkuc3Vic3RyaW5nKDEsaS5sZW5ndGgpO2lmKDA9PT1pLmluZGV4T2YoYSkpcmV0dXJuIGkuc3Vic3RyaW5nKGEubGVuZ3RoLGkubGVuZ3RoKX19fSx0aGlzLmdldEhvc3Q9ZnVuY3Rpb24oKXtyZXR1cm4gZS5sb2NhdGlvbi5ob3N0LnJlcGxhY2UoLzpcZCsvLCIiKX0sdGhpcy50b0hleD1mdW5jdGlvbihlKXtmb3IodmFyIHQsbz0iIixpPWUubGVuZ3RoLGE9MDthPGk7KXtmb3IodD1lLmNoYXJDb2RlQXQoYSsrKS50b1N0cmluZygxNik7dC5sZW5ndGg8MjspdD0iMCIrdDtvKz10fXJldHVybiBvfSx0aGlzLmZyb21IZXg9ZnVuY3Rpb24oZSl7Zm9yKHZhciB0LG89IiIsaT1lLmxlbmd0aDtpPj0wOyl0PWktMixvPVN0cmluZy5mcm9tQ2hhckNvZGUoIjB4IitlLnN1YnN0cmluZyh0LGkpKStvLGk9dDtyZXR1cm4gb30sdGhpcy5oYXNWaXNpdGVkPWZ1bmN0aW9uKGUpey0xPT09dGhpcy5ub19jb2xvciYmKC0xPT09dGhpcy5fZ2V0UkdCKCJodHRwOi8vc2FteS13YXMtaGVyZS10aGlzLXNob3VsZC1uZXZlci1iZS12aXNpdGVkLmNvbSIsLTEpJiYodGhpcy5ub19jb2xvcj10aGlzLl9nZXRSR0IoImh0dHA6Ly9zYW15LXdhcy1oZXJlLSIrTWF0aC5mbG9vcig5OTk5OTk5Kk1hdGgucmFuZG9tKCkpKyJyYW5kLmNvbSIpKSk7cmV0dXJuIDA9PT1lLmluZGV4T2YoImh0dHBzOiIpfHwwPT09ZS5pbmRleE9mKCJodHRwOiIpP3RoaXMuX3Rlc3RVUkwoZSx0aGlzLm5vX2NvbG9yKTp0aGlzLl90ZXN0VVJMKCJodHRwOi8vIitlLHRoaXMubm9fY29sb3IpfHx0aGlzLl90ZXN0VVJMKCJodHRwczovLyIrZSx0aGlzLm5vX2NvbG9yKXx8dGhpcy5fdGVzdFVSTCgiaHR0cDovL3d3dy4iK2UsdGhpcy5ub19jb2xvcil8fHRoaXMuX3Rlc3RVUkwoImh0dHBzOi8vd3d3LiIrZSx0aGlzLm5vX2NvbG9yKX07dmFyIGIsdyxEPXRoaXMuY3JlYXRlRWxlbSgiYSIsIl9lY19yZ2JfbGluayIpLFM9IiNfZWNfcmdiX2xpbms6dmlzaXRlZHtkaXNwbGF5Om5vbmU7Y29sb3I6I0ZGMDAwMH0iO3RyeXtiPTEsKHc9aS5jcmVhdGVFbGVtZW50KCJzdHlsZSIpKS5zdHlsZVNoZWV0P3cuc3R5bGVTaGVldC5pbm5lckhUTUw9Uzp3LmlubmVySFRNTD93LmlubmVySFRNTD1TOncuYXBwZW5kQ2hpbGQoaS5jcmVhdGVUZXh0Tm9kZShTKSl9Y2F0Y2goZSl7Yj0wfXRoaXMuX2dldFJHQj1mdW5jdGlvbihlLHQpe3JldHVybiB0JiYwPT09Yj8tMTooRC5ocmVmPWUsRC5pbm5lckhUTUw9ZSxpLmJvZHkuYXBwZW5kQ2hpbGQodyksaS5ib2R5LmFwcGVuZENoaWxkKEQpLGkuZGVmYXVsdFZpZXc/aS5kZWZhdWx0Vmlldy5nZXRDb21wdXRlZFN0eWxlKEQsbnVsbCkuZ2V0UHJvcGVydHlWYWx1ZSgiY29sb3IiKTpELmN1cnJlbnRTdHlsZS5jb2xvcil9LHRoaXMuX3Rlc3RVUkw9ZnVuY3Rpb24oZSx0KXt2YXIgbz10aGlzLl9nZXRSR0IoZSk7cmV0dXJuInJnYigyNTUsIDAsIDApIj09PW98fCIjZmYwMDAwIj09PW98fHQmJm8hPT10PzE6MH19fSh3aW5kb3cpfWNhdGNoKGUpe319LDIyMjk4NigpeyJ1c2Ugc3RyaWN0Ijt2YXIgZSx0LG8saSxhLG47d2luZG93LnBhcmVudCE9PXdpbmRvdyYmd2luZG93LkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCYmd2luZG93LlRleHRNZXRyaWNzJiYodD13aW5kb3cuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELnByb3RvdHlwZSkmJnQuaGFzT3duUHJvcGVydHkoImZvbnQiKSYmdC5oYXNPd25Qcm9wZXJ0eSgibW96VGV4dFN0eWxlIikmJiJmdW5jdGlvbiI9PXR5cGVvZiB0Ll9fbG9va3VwU2V0dGVyX18mJihvPXQuX19sb29rdXBTZXR0ZXJfXygiZm9udCIpKSYmKHQuX19kZWZpbmVTZXR0ZXJfXygiZm9udCIsKGZ1bmN0aW9uKGUpe3RyeXtyZXR1cm4gby5jYWxsKHRoaXMsZSl9Y2F0Y2goZSl7aWYoIk5TX0VSUk9SX0ZBSUxVUkUiIT09ZS5uYW1lKXRocm93IGV9fSkpLGk9dC5tZWFzdXJlVGV4dCxlPWZ1bmN0aW9uKCl7dGhpcy53aWR0aD0wLHRoaXMuaXNGYWtlPSEwLHRoaXMuX19wcm90b19fPXdpbmRvdy5UZXh0TWV0cmljcy5wcm90b3R5cGV9LHQubWVhc3VyZVRleHQ9ZnVuY3Rpb24odCl7dHJ5e3JldHVybiBpLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1jYXRjaCh0KXtpZigiTlNfRVJST1JfRkFJTFVSRSIhPT10Lm5hbWUpdGhyb3cgdDtyZXR1cm4gbmV3IGV9fSxhPXQuZmlsbFRleHQsdC5maWxsVGV4dD1mdW5jdGlvbihlLHQsbyxpKXt0cnl7YS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9Y2F0Y2goZSl7aWYoIk5TX0VSUk9SX0ZBSUxVUkUiIT09ZS5uYW1lKXRocm93IGV9fSxuPXQuc3Ryb2tlVGV4dCx0LnN0cm9rZVRleHQ9ZnVuY3Rpb24oZSx0LG8saSl7dHJ5e24uYXBwbHkodGhpcyxhcmd1bWVudHMpfWNhdGNoKGUpe2lmKCJOU19FUlJPUl9GQUlMVVJFIiE9PWUubmFtZSl0aHJvdyBlfX0pfSw4MTczNTAoZSx0LG8peyJ1c2Ugc3RyaWN0IjtvLmQodCx7ZGVmYXVsdDooKT0+bn0pO3ZhciBpPW8oMTc4NDk3KSxhPW8oMzYwNjIwKTtjb25zdCBuPWZ1bmN0aW9uKGUpe3JldHVybiEwPT09ZXx8ITE9PT1lfHwoMCwKYS5kZWZhdWx0KShlKSYmIltvYmplY3QgQm9vbGVhbl0iPT0oMCxpLmRlZmF1bHQpKGUpfX0sMjA2NjczKGUsdCxvKXsidXNlIHN0cmljdCI7by5kKHQse2RlZmF1bHQ6KCk9Pm59KTt2YXIgaT1vKDE3ODQ5NyksYT1vKDM2MDYyMCk7Y29uc3Qgbj1mdW5jdGlvbihlKXtyZXR1cm4ibnVtYmVyIj09dHlwZW9mIGV8fCgwLGEuZGVmYXVsdCkoZSkmJiJbb2JqZWN0IE51bWJlcl0iPT0oMCxpLmRlZmF1bHQpKGUpfX0sMzA0MjIxKGUsdCxvKXsidXNlIHN0cmljdCI7by5kKHQse2RlZmF1bHQ6KCk9PnJ9KTt2YXIgaT1vKDE3ODQ5NyksYT1vKDI5NTYzNSksbj1vKDM2MDYyMCk7Y29uc3Qgcj1mdW5jdGlvbihlKXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIGV8fCEoMCxhLmRlZmF1bHQpKGUpJiYoMCxuLmRlZmF1bHQpKGUpJiYiW29iamVjdCBTdHJpbmddIj09KDAsaS5kZWZhdWx0KShlKX19LDgzOTQyNihlLHQsbyl7InVzZSBzdHJpY3QiO28uZCh0LHtkZWZhdWx0OigpPT5ufSk7dmFyIGk9byg2OTIzNjkpO2NvbnN0IGE9ZnVuY3Rpb24oZSx0KXt2YXIgbztpZigiZnVuY3Rpb24iIT10eXBlb2YgdCl0aHJvdyBuZXcgVHlwZUVycm9yKCJFeHBlY3RlZCBhIGZ1bmN0aW9uIik7cmV0dXJuIGU9KDAsaS5kZWZhdWx0KShlKSxmdW5jdGlvbigpe3JldHVybi0tZT4wJiYobz10LmFwcGx5KHRoaXMsYXJndW1lbnRzKSksZTw9MSYmKHQ9dm9pZCAwKSxvfX07Y29uc3Qgbj1mdW5jdGlvbihlKXtyZXR1cm4gYSgyLGUpfX0sNjkyMzY5KGUsdCxvKXsidXNlIHN0cmljdCI7by5kKHQse2RlZmF1bHQ6KCk9PnJ9KTt2YXIgaT1vKDQwNjQ0OSksYT0xLzA7Y29uc3Qgbj1mdW5jdGlvbihlKXtyZXR1cm4gZT8oZT0oMCxpLmRlZmF1bHQpKGUpKT09PWF8fGU9PT0tMS8wPzE3OTc2OTMxMzQ4NjIzMTU3ZTI5MiooZTwwPy0xOjEpOmU9PWU/ZTowOjA9PT1lP2U6MH07Y29uc3Qgcj1mdW5jdGlvbihlKXt2YXIgdD1uKGUpLG89dCUxO3JldHVybiB0PT10P28/dC1vOnQ6MH19fV0pOw=="}},"time_used":17,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":17,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/chart-bottom-toolbar.8dc3860f5be5fed904fd.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:13.812Z","timestamp":1785148033812,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/chart-bottom-toolbar.8dc3860f5be5fed904fd.js HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:13 GMT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a632877-19ceb\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Fri, 24 Jul 2026 08:55:19 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/24/2026 10:31:24\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 8b668accbe48b2e4f289a4a84834d6f6\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":105707,"size_decoded":32146,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (3072)","md5":"2b7381f547b101d69e4c35046fe8b990","sha1":"7c5599e02326f7a0b64232e90de054cfccda3910","sha256":"9757b30408bef1dec0cb5c0435d97f1ab43f99cf4bd3024134cfb5757097f5c1","sha512":"13d835eeb8f96c996e51e4f7d93053dea2c5bac2776ecf1757b27047258bef11e96331fc3d66425e96c6f82a52e46eeff2883cd40daa1c948d0eb3428e18e646","ssdeep":"3072:1I25QBkqNPr+gN5Ys8AdPX5dzxBliYTD5vJE1AXqlSWNgQ:1ILkCr+gbL8AdPX5dzxBliYTD5vJE1AS","tlshash":"44a32a60b124b4a857db01ee926b0403b33626ccf8428879f6fc9edd26dd94d6179b3d","first_seen":"2026-07-25T05:41:09.230013Z","last_seen":"2026-07-27T11:47:31.086106Z","times_seen":47,"resource_available":true,"data":"KHNlbGYud2VicGFja0NodW5rdHJhZGluZ3ZpZXc9c2VsZi53ZWJwYWNrQ2h1bmt0cmFkaW5ndmlld3x8W10pLnB1c2goW1s1NTM4MSw2NDY0NF0sezg1MzMzNihlLHQpe3ZhciBuLHMsaTtzPVt0XSxuPWZ1bmN0aW9uKGUpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiB0KGUpe2lmKEFycmF5LmlzQXJyYXkoZSkpe2Zvcih2YXIgdD0wLG49QXJyYXkoZS5sZW5ndGgpO3Q8ZS5sZW5ndGg7dCsrKW5bdF09ZVt0XTtyZXR1cm4gbn1yZXR1cm4gQXJyYXkuZnJvbShlKX1PYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIG49ITE7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3cpe3ZhciBzPXtnZXQgcGFzc2l2ZSgpe249ITB9fTt3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigidGVzdFBhc3NpdmUiLG51bGwscyksd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoInRlc3RQYXNzaXZlIixudWxsLHMpfXZhciBpPSJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93JiZ3aW5kb3cubmF2aWdhdG9yJiZ3aW5kb3cubmF2aWdhdG9yLnBsYXRmb3JtJiYvaVAoYWR8aG9uZXxvZCkvLnRlc3Qod2luZG93Lm5hdmlnYXRvci5wbGF0Zm9ybSksbz1bXSxhPSExLHI9LTEsbD12b2lkIDAsYz12b2lkIDAsdT1mdW5jdGlvbihlKXtyZXR1cm4gby5zb21lKChmdW5jdGlvbih0KXtyZXR1cm4hKCF0Lm9wdGlvbnMuYWxsb3dUb3VjaE1vdmV8fCF0Lm9wdGlvbnMuYWxsb3dUb3VjaE1vdmUoZSkpfSkpfSxkPWZ1bmN0aW9uKGUpe3ZhciB0PWV8fHdpbmRvdy5ldmVudDtyZXR1cm4hIXUodC50YXJnZXQpfHwxPHQudG91Y2hlcy5sZW5ndGh8fCh0LnByZXZlbnREZWZhdWx0JiZ0LnByZXZlbnREZWZhdWx0KCksITEpfSxoPWZ1bmN0aW9uKCl7c2V0VGltZW91dCgoZnVuY3Rpb24oKXt2b2lkIDAhPT1jJiYoZG9jdW1lbnQuYm9keS5zdHlsZS5wYWRkaW5nUmlnaHQ9YyxjPXZvaWQgMCksdm9pZCAwIT09bCYmKGRvY3VtZW50LmJvZHkuc3R5bGUub3ZlcmZsb3c9bCxsPXZvaWQgMCl9KSl9O2UuZGlzYWJsZUJvZHlTY3JvbGw9ZnVuY3Rpb24oZSxzKXtpZihpKXtpZighZSlyZXR1cm4gdm9pZCBjb25zb2xlLmVycm9yKCJkaXNhYmxlQm9keVNjcm9sbCB1bnN1Y2Nlc3NmdWwgLSB0YXJnZXRFbGVtZW50IG11c3QgYmUgcHJvdmlkZWQgd2hlbiBjYWxsaW5nIGRpc2FibGVCb2R5U2Nyb2xsIG9uIElPUyBkZXZpY2VzLiIpO2lmKGUmJiFvLnNvbWUoKGZ1bmN0aW9uKHQpe3JldHVybiB0LnRhcmdldEVsZW1lbnQ9PT1lfSkpKXt2YXIgaD17dGFyZ2V0RWxlbWVudDplLG9wdGlvbnM6c3x8e319O289W10uY29uY2F0KHQobyksW2hdKSxlLm9udG91Y2hzdGFydD1mdW5jdGlvbihlKXsxPT09ZS50YXJnZXRUb3VjaGVzLmxlbmd0aCYmKHI9ZS50YXJnZXRUb3VjaGVzWzBdLmNsaWVudFkpfSxlLm9udG91Y2htb3ZlPWZ1bmN0aW9uKHQpe3ZhciBuLHMsaSxvOzE9PT10LnRhcmdldFRvdWNoZXMubGVuZ3RoJiYocz1lLG89KG49dCkudGFyZ2V0VG91Y2hlc1swXS5jbGllbnRZLXIsIXUobi50YXJnZXQpJiYocyYmMD09PXMuc2Nyb2xsVG9wJiYwPG98fChpPXMpJiZpLnNjcm9sbEhlaWdodC1pLnNjcm9sbFRvcDw9aS5jbGllbnRIZWlnaHQmJm88MD9kKG4pOm4uc3RvcFByb3BhZ2F0aW9uKCkpKX0sYXx8KGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoInRvdWNobW92ZSIsZCxuP3twYXNzaXZlOiExfTp2b2lkIDApLGE9ITApfX1lbHNle3A9cyxzZXRUaW1lb3V0KChmdW5jdGlvbigpe2lmKHZvaWQgMD09PWMpe3ZhciBlPSEhcCYmITA9PT1wLnJlc2VydmVTY3JvbGxCYXJHYXAsdD13aW5kb3cuaW5uZXJXaWR0aC1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50V2lkdGg7ZSYmMDx0JiYoYz1kb2N1bWVudC5ib2R5LnN0eWxlLnBhZGRpbmdSaWdodCxkb2N1bWVudC5ib2R5LnN0eWxlLnBhZGRpbmdSaWdodD10KyJweCIpfXZvaWQgMD09PWwmJihsPWRvY3VtZW50LmJvZHkuc3R5bGUub3ZlcmZsb3csZG9jdW1lbnQuYm9keS5zdHlsZS5vdmVyZmxvdz0iaGlkZGVuIil9KSk7dmFyIG09e3RhcmdldEVsZW1lbnQ6ZSxvcHRpb25zOnN8fHt9fTtvPVtdLmNvbmNhdCh0KG8pLFttXSl9dmFyIHB9LGUuY2xlYXJBbGxCb2R5U2Nyb2xsTG9ja3M9ZnVuY3Rpb24oKXtpPyhvLmZvckVhY2goKGZ1bmN0aW9uKGUpe2UudGFyZ2V0RWxlbWVudC5vbnRvdWNoc3RhcnQ9bnVsbCxlLnRhcmdldEVsZW1lbnQub250b3VjaG1vdmU9bnVsbH0pKSxhJiYoZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigidG91Y2htb3ZlIixkLG4/e3Bhc3NpdmU6ITF9OnZvaWQgMCksYT0hMSksbz1bXSxyPS0xKTooaCgpLG89W10pfSxlLmVuYWJsZUJvZHlTY3JvbGw9ZnVuY3Rpb24oZSl7aWYoaSl7aWYoIWUpcmV0dXJuIHZvaWQgY29uc29sZS5lcnJvcigiZW5hYmxlQm9keVNjcm9sbCB1bnN1Y2Nlc3NmdWwgLSB0YXJnZXRFbGVtZW50IG11c3QgYmUgcHJvdmlkZWQgd2hlbiBjYWxsaW5nIGVuYWJsZUJvZHlTY3JvbGwgb24gSU9TIGRldmljZXMuIik7ZS5vbnRvdWNoc3RhcnQ9bnVsbCxlLm9udG91Y2htb3ZlPW51bGwsbz1vLmZpbHRlcigoZnVuY3Rpb24odCl7cmV0dXJuIHQudGFyZ2V0RWxlbWVudCE9PWV9KSksYSYmMD09PW8ubGVuZ3RoJiYoZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigidG91Y2htb3ZlIixkLG4/e3Bhc3NpdmU6ITF9OnZvaWQgMCksYT0hMSl9ZWxzZSAxPT09by5sZW5ndGgmJm9bMF0udGFyZ2V0RWxlbWVudD09PWU/KGgoKSxvPVtdKTpvPW8uZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4gdC50YXJnZXRFbGVtZW50IT09ZX0pKX19LHZvaWQgMD09PShpPSJmdW5jdGlvbiI9PXR5cGVvZiBuP24uYXBwbHkodCxzKTpuKXx8KGUuZXhwb3J0cz1pKX0sOTE0NDg3KGUsdCl7dmFyIG47IWZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO3ZhciBzPXt9Lmhhc093blByb3BlcnR5O2Z1bmN0aW9uIGkoKXtmb3IodmFyIGU9W10sdD0wO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciBuPWFyZ3VtZW50c1t0XTtpZihuKXt2YXIgbz10eXBlb2Ygbgo7aWYoInN0cmluZyI9PT1vfHwibnVtYmVyIj09PW8pZS5wdXNoKG4pO2Vsc2UgaWYoQXJyYXkuaXNBcnJheShuKSYmbi5sZW5ndGgpe3ZhciBhPWkuYXBwbHkobnVsbCxuKTthJiZlLnB1c2goYSl9ZWxzZSBpZigib2JqZWN0Ij09PW8pZm9yKHZhciByIGluIG4pcy5jYWxsKG4scikmJm5bcl0mJmUucHVzaChyKX19cmV0dXJuIGUuam9pbigiICIpfWUuZXhwb3J0cz8oaS5kZWZhdWx0PWksZS5leHBvcnRzPWkpOnZvaWQgMD09PShuPWZ1bmN0aW9uKCl7cmV0dXJuIGl9LmFwcGx5KHQsW10pKXx8KGUuZXhwb3J0cz1uKX0oKX0sNDcwMjk1KGUpe2UuZXhwb3J0cz17InRhYmxldC1zbWFsbC1icmVha3BvaW50IjoiKG1heC13aWR0aDogNDQwcHgpIixpdGVtOiJpdGVtLU1pMF90NXVOIixob3ZlcmVkOiJob3ZlcmVkLU1pMF90NXVOIixpc0Rpc2FibGVkOiJpc0Rpc2FibGVkLU1pMF90NXVOIixpc0FjdGl2ZToiaXNBY3RpdmUtTWkwX3Q1dU4iLHNob3J0Y3V0OiJzaG9ydGN1dC1NaTBfdDV1TiIsdG9vbGJveDoidG9vbGJveC1NaTBfdDV1TiIsd2l0aEljb246IndpdGhJY29uLU1pMF90NXVOIiwicm91bmQtaWNvbiI6InJvdW5kLWljb24tTWkwX3Q1dU4iLGljb246Imljb24tTWkwX3Q1dU4iLHN0YXJ0U2xvdDoic3RhcnRTbG90LU1pMF90NXVOIixsYWJlbFJvdzoibGFiZWxSb3ctTWkwX3Q1dU4iLGxhYmVsOiJsYWJlbC1NaTBfdDV1TiIsc2hvd09uSG92ZXI6InNob3dPbkhvdmVyLU1pMF90NXVOIiwiZGlzY2xvc3VyZS1pdGVtLWNpcmNsZS1sb2dvIjoiZGlzY2xvc3VyZS1pdGVtLWNpcmNsZS1sb2dvLU1pMF90NXVOIixzaG93T25Gb2N1czoic2hvd09uRm9jdXMtTWkwX3Q1dU4ifX0sMjQ3MTg5KGUpe2UuZXhwb3J0cz17c2VwYXJhdG9yOiJzZXBhcmF0b3Itd3NOeVA5ZTIiLHNtYWxsOiJzbWFsbC13c055UDllMiIsbm9ybWFsOiJub3JtYWwtd3NOeVA5ZTIiLGxhcmdlOiJsYXJnZS13c055UDllMiJ9fSw3NjEwOTMoZSl7ZS5leHBvcnRzPXt0aXRsZToidGl0bGUtbmZrR203TkcifX0sMTQwMDE3KGUpe2UuZXhwb3J0cz17bG9nbzoibG9nby1WQ05LdWJXcSIsaGlkZGVuOiJoaWRkZW4tVkNOS3ViV3EiLHh4Y2VwdGlvbmFsbHlzbWFsbGRvbm90dXNlYnJ2MTAyMzoieHhjZXB0aW9uYWxseXNtYWxsZG9ub3R1c2VicnYxMDIzLVZDTkt1YldxIix4eHhzbWFsbDoieHh4c21hbGwtVkNOS3ViV3EiLHh4c21hbGw6Inh4c21hbGwtVkNOS3ViV3EiLHhzbWFsbDoieHNtYWxsLVZDTkt1YldxIixzbWFsbDoic21hbGwtVkNOS3ViV3EiLG1lZGl1bToibWVkaXVtLVZDTkt1YldxIixsYXJnZToibGFyZ2UtVkNOS3ViV3EiLHhsYXJnZToieGxhcmdlLVZDTkt1YldxIix4eGxhcmdlOiJ4eGxhcmdlLVZDTkt1YldxIix4eHhsYXJnZToieHh4bGFyZ2UtVkNOS3ViV3EiLHNrZWxldG9uOiJza2VsZXRvbi1WQ05LdWJXcSIsbGV0dGVyOiJsZXR0ZXItVkNOS3ViV3EifX0sMjQ0NTI1KGUpe2UuZXhwb3J0cz17bG9hZGVyOiJsb2FkZXItTWdmOEVGd0siLHN0YXRpYzoic3RhdGljLU1nZjhFRndLIixpdGVtOiJpdGVtLU1nZjhFRndLIiwidHYtYnV0dG9uLWxvYWRlciI6InR2LWJ1dHRvbi1sb2FkZXItTWdmOEVGd0siLG1lZGl1bToibWVkaXVtLU1nZjhFRndLIixzbWFsbDoic21hbGwtTWdmOEVGd0siLGJsYWNrOiJibGFjay1NZ2Y4RUZ3SyIsd2hpdGU6IndoaXRlLU1nZjhFRndLIixncmF5OiJncmF5LU1nZjhFRndLIixwcmltYXJ5OiJwcmltYXJ5LU1nZjhFRndLIn19LDk3NTI4NShlKXtlLmV4cG9ydHM9e3dyYXBwZXI6IndyYXBwZXItaGN0MnlKdksiLGFuaW1hdGVkOiJhbmltYXRlZC1oY3QyeUp2SyIscHVsc2F0aW9uOiJwdWxzYXRpb24taGN0MnlKdksifX0sOTg1ODczKGUpe2UuZXhwb3J0cz17dG9vbGJhcjoidG9vbGJhci1Nek0wMXpPRSIsZGF0ZVJhbmdlV3JhcHBlcjoiZGF0ZVJhbmdlV3JhcHBlci1Nek0wMXpPRSIsbm9yYW5nZXM6Im5vcmFuZ2VzLU16TTAxek9FIixkYXRlUmFuZ2VFeHBhbmRlZDoiZGF0ZVJhbmdlRXhwYW5kZWQtTXpNMDF6T0UiLHNlcGFyYXRvcjoic2VwYXJhdG9yLU16TTAxek9FIixzZXJpZXNDb250cm9sV3JhcHBlcjoic2VyaWVzQ29udHJvbFdyYXBwZXItTXpNMDF6T0UiLGRhdGVSYW5nZUNvbGxhcHNlZDoiZGF0ZVJhbmdlQ29sbGFwc2VkLU16TTAxek9FIixpdGVtOiJpdGVtLU16TTAxek9FIixpbmxpbmU6ImlubGluZS1Nek0wMXpPRSIsZGF0ZVJhbmdlOiJkYXRlUmFuZ2UtTXpNMDF6T0UiLGZ1bGxzY3JlZW5CdXR0b246ImZ1bGxzY3JlZW5CdXR0b24tTXpNMDF6T0UiLGhpZGRlbjoiaGlkZGVuLU16TTAxek9FIixjb2xsYXBzZWQ6ImNvbGxhcHNlZC1Nek0wMXpPRSIsZnVsbHNjcmVlbkJ0bjoiZnVsbHNjcmVlbkJ0bi1Nek0wMXpPRSJ9fSw5Nzg4NzcoZSl7ZS5leHBvcnRzPXtjb250YWluZXI6ImNvbnRhaW5lci1HV1RfaWlwbyIsYmFja2Ryb3A6ImJhY2tkcm9wLUdXVF9paXBvIixzd2F0Y2hDb250YWluZXJCYWNrZHJvcDoic3dhdGNoQ29udGFpbmVyQmFja2Ryb3AtR1dUX2lpcG8iLHN3YXRjaENvbnRhaW5lcjoic3dhdGNoQ29udGFpbmVyLUdXVF9paXBvIixjb2x1bW46ImNvbHVtbi1HV1RfaWlwbyIsdHdvQ29sdW1uczoidHdvQ29sdW1ucy1HV1RfaWlwbyIsYm90dG9tVG9vbGJhckNvbnRhaW5lcjoiYm90dG9tVG9vbGJhckNvbnRhaW5lci1HV1RfaWlwbyIsYm90dG9tVG9vbGJhckJ1dHRvbjoiYm90dG9tVG9vbGJhckJ1dHRvbi1HV1RfaWlwbyJ9fSw4NDM3MDIoZSl7ZS5leHBvcnRzPXtzd2F0Y2g6InN3YXRjaC1TRWlFRFMyUSIsYWN0aXZlOiJhY3RpdmUtU0VpRURTMlEiLHN3YXRjaElubmVyOiJzd2F0Y2hJbm5lci1TRWlFRFMyUSIsdGV4dDoidGV4dC1TRWlFRFMyUSIscmVzb2x1dGlvbjoicmVzb2x1dGlvbi1TRWlFRFMyUSJ9fSw2NzUwODUoZSl7ZS5leHBvcnRzPXtidXR0b246ImJ1dHRvbi1haEZHR241QSJ9fSw0Mjc1MDEoZSl7ZS5leHBvcnRzPXtidXR0b246ImJ1dHRvbi1FUEZxQ1JlbyJ9fSw1MTE1NDEoZSl7ZS5leHBvcnRzPXtzZXBhcmF0b3I6InNlcGFyYXRvci1HTmRleU42MiJ9fSw5NDgwMzMoZSl7ZS5leHBvcnRzPXsKaGVhZGVyTWVudVRleHQ6ImhlYWRlck1lbnVUZXh0LVBhSDBWNFBzIn19LDM4MTYyOShlKXtlLmV4cG9ydHM9e2J1dHRvbjoiYnV0dG9uLUxKbm9Zc05HIixkaXNhYmxlZDoiZGlzYWJsZWQtTEpub1lzTkciLGhvdmVyOiJob3Zlci1MSm5vWXNORyIsY2xpY2tlZDoiY2xpY2tlZC1MSm5vWXNORyIsYWNjZXNzaWJsZToiYWNjZXNzaWJsZS1MSm5vWXNORyJ9fSw5NjE4MjMoZSl7ZS5leHBvcnRzPXt3cmFwOiJ3cmFwLUpLaDdkd0V2IixpdGVtOiJpdGVtLUpLaDdkd0V2In19LDkxNjI2KGUpe2UuZXhwb3J0cz17aXRlbToiaXRlbS12VG04TzBMTSIsaW50ZXJhY3RpdmU6ImludGVyYWN0aXZlLXZUbThPMExNIixob3ZlcmVkOiJob3ZlcmVkLXZUbThPMExNIixkaXNhYmxlZDoiZGlzYWJsZWQtdlRtOE8wTE0iLGFjdGl2ZToiYWN0aXZlLXZUbThPMExNIixzaG9ydGN1dDoic2hvcnRjdXQtdlRtOE8wTE0iLG5vcm1hbDoibm9ybWFsLXZUbThPMExNIixiaWc6ImJpZy12VG04TzBMTSIsaWNvbkNlbGw6Imljb25DZWxsLXZUbThPMExNIixpY29uOiJpY29uLXZUbThPMExNIixjb250ZW50OiJjb250ZW50LXZUbThPMExNIixsYWJlbDoibGFiZWwtdlRtOE8wTE0iLGNoZWNrZWQ6ImNoZWNrZWQtdlRtOE8wTE0iLHRvb2xib3g6InRvb2xib3gtdlRtOE8wTE0iLHNob3dUb29sYm94T25Ib3Zlcjoic2hvd1Rvb2xib3hPbkhvdmVyLXZUbThPMExNIixhcnJvd0ljb246ImFycm93SWNvbi12VG04TzBMTSIsc3ViTWVudToic3ViTWVudS12VG04TzBMTSIsaW52aXNpYmxlSG90a2V5OiJpbnZpc2libGVIb3RrZXktdlRtOE8wTE0ifX0sMTA3OTY2KGUpe2UuZXhwb3J0cz17aXRlbToiaXRlbS1kOWpMT0xyUiIsZW1wdHlJY29uczoiZW1wdHlJY29ucy1kOWpMT0xyUiIsbG9hZGluZzoibG9hZGluZy1kOWpMT0xyUiIsZGlzYWJsZWQ6ImRpc2FibGVkLWQ5akxPTHJSIixpbnRlcmFjdGl2ZToiaW50ZXJhY3RpdmUtZDlqTE9MclIiLGhvdmVyZWQ6ImhvdmVyZWQtZDlqTE9MclIiLG5vcm1hbDoibm9ybWFsLWQ5akxPTHJSIixiaWc6ImJpZy1kOWpMT0xyUiIsaWNvbjoiaWNvbi1kOWpMT0xyUiIsbGFiZWw6ImxhYmVsLWQ5akxPTHJSIix0aXRsZToidGl0bGUtZDlqTE9MclIiLG5lc3RlZDoibmVzdGVkLWQ5akxPTHJSIixzaG9ydGN1dDoic2hvcnRjdXQtZDlqTE9MclIiLHJlbW92ZToicmVtb3ZlLWQ5akxPTHJSIn19LDU5OTk3MihlKXtlLmV4cG9ydHM9e2FjY2Vzc2libGU6ImFjY2Vzc2libGUtS3RxYV9TelAiLGFjdGl2ZToiYWN0aXZlLUt0cWFfU3pQIn19LDI3NzA3NihlKXtlLmV4cG9ydHM9e2J1dHRvbjoiYnV0dG9uLUhkS2hjVHllIixwcmVzc2VkOiJwcmVzc2VkLUhkS2hjVHllIixob3ZlcjoiaG92ZXItSGRLaGNUeWUiLGNsaWNrZWQ6ImNsaWNrZWQtSGRLaGNUeWUiLGlzSW50ZXJhY3RpdmU6ImlzSW50ZXJhY3RpdmUtSGRLaGNUeWUiLGFjY2Vzc2libGU6ImFjY2Vzc2libGUtSGRLaGNUeWUiLGlzR3JvdXBlZDoiaXNHcm91cGVkLUhkS2hjVHllIixpc0FjdGl2ZToiaXNBY3RpdmUtSGRLaGNUeWUiLGlzT3BlbmVkOiJpc09wZW5lZC1IZEtoY1R5ZSIsaXNEaXNhYmxlZDoiaXNEaXNhYmxlZC1IZEtoY1R5ZSIsdGV4dDoidGV4dC1IZEtoY1R5ZSIsaWNvbjoiaWNvbi1IZEtoY1R5ZSIsZW5kSWNvbjoiZW5kSWNvbi1IZEtoY1R5ZSJ9fSwyOTgwODYoZSl7ZS5leHBvcnRzPXtidXR0b246ImJ1dHRvbi1GRHRpRGJ5aiJ9fSw4MDYwNzgoZSl7ZS5leHBvcnRzPXtzZXBhcmF0b3I6InNlcGFyYXRvci1QZjRySXpFdCJ9fSwyMTU3MzAoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7ZGF5c1N0cmluZ0xpdGVyYWw6KCk9PmEsaG91cnNTdHJpbmdMaXRlcmFsOigpPT5vLG1pbnV0ZXNTdHJpbmdMaXRlcmFsOigpPT5pLG1vbnRoc1N0cmluZ0xpdGVyYWw6KCk9Pmwsc3RyaW5nQXNSZXNvbHV0aW9uOigpPT51LHdlZWtzU3RyaW5nTGl0ZXJhbDooKT0+cix5ZWFyc1N0cmluZ0xpdGVyYWw6KCk9PmN9KTt2YXIgcz1uKDc4MzI1NCk7Y29uc3QgaT1lPT5zLnQobnVsbCx7cGx1cmFsOiJ7c3RyfSBtaW51dGVzIixjb3VudDplLHJlcGxhY2U6e3N0cjpgJHtlfWB9fSxuKDQzOTApKSxvPWU9PnMudChudWxsLHtwbHVyYWw6IntzdHJ9IGhvdXJzIixjb3VudDplLHJlcGxhY2U6e3N0cjpgJHtlfWB9fSxuKDIxMDU3NCkpLGE9ZT0+cy50KG51bGwse3BsdXJhbDoie3N0cn0gZGF5cyIsY291bnQ6ZSxyZXBsYWNlOntzdHI6YCR7ZX1gfX0sbigxMDMwMzApKSxyPWU9PnMudChudWxsLHtwbHVyYWw6IntzdHJ9IHdlZWtzIixjb3VudDplLHJlcGxhY2U6e3N0cjpgJHtlfWB9fSxuKDY0NDYyNSkpLGw9ZT0+cy50KG51bGwse3BsdXJhbDoie3N0cn0gbW9udGhzIixjb3VudDplLHJlcGxhY2U6e3N0cjpgJHtlfWB9fSxuKDY5NDYxNykpLGM9ZT0+cy50KG51bGwse3BsdXJhbDoie3N0cn0geWVhcnMiLGNvdW50OmUscmVwbGFjZTp7c3RyOmAke2V9YH19LG4oMjE2NDAyKSksdT1lPT5lfSw0MDYxMTAoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7TWF0Y2hNZWRpYTooKT0+aX0pO3ZhciBzPW4oNzc5NDc0KTtjbGFzcyBpIGV4dGVuZHMgcy5QdXJlQ29tcG9uZW50e2NvbnN0cnVjdG9yKGUpe3N1cGVyKGUpLHRoaXMuX2hhbmRsZUNoYW5nZT0oKT0+e3RoaXMuZm9yY2VVcGRhdGUoKX0sdGhpcy5zdGF0ZT17cXVlcnk6d2luZG93Lm1hdGNoTWVkaWEodGhpcy5wcm9wcy5ydWxlKX19Y29tcG9uZW50RGlkTW91bnQoKXt0aGlzLl9zdWJzY3JpYmUodGhpcy5zdGF0ZS5xdWVyeSl9Y29tcG9uZW50RGlkVXBkYXRlKGUsdCl7dGhpcy5zdGF0ZS5xdWVyeSE9PXQucXVlcnkmJih0aGlzLl91bnN1YnNjcmliZSh0LnF1ZXJ5KSx0aGlzLl9zdWJzY3JpYmUodGhpcy5zdGF0ZS5xdWVyeSkpfWNvbXBvbmVudFdpbGxVbm1vdW50KCl7dGhpcy5fdW5zdWJzY3JpYmUodGhpcy5zdGF0ZS5xdWVyeSl9cmVuZGVyKCl7cmV0dXJuIHRoaXMucHJvcHMuY2hpbGRyZW4odGhpcy5zdGF0ZS5xdWVyeS5tYXRjaGVzKX1zdGF0aWMgZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzKGUsdCl7cmV0dXJuIGUucnVsZSE9PXQucXVlcnkubWVkaWE/ewpxdWVyeTp3aW5kb3cubWF0Y2hNZWRpYShlLnJ1bGUpfTpudWxsfV9zdWJzY3JpYmUoZSl7ZS5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLHRoaXMuX2hhbmRsZUNoYW5nZSl9X3Vuc3Vic2NyaWJlKGUpe2UucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY2hhbmdlIix0aGlzLl9oYW5kbGVDaGFuZ2UpfX19LDY1OTg3OChlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHttYWtlT3ZlcmxhcGFibGU6KCk9Pm99KTt2YXIgcz1uKDc3OTQ3NCksaT1uKDU4NTQ4KTtmdW5jdGlvbiBvKGUsdCl7cmV0dXJuIGNsYXNzIGV4dGVuZHMgcy5QdXJlQ29tcG9uZW50e3JlbmRlcigpe2NvbnN0e2lzT3BlbmVkOm4scm9vdDpvfT10aGlzLnByb3BzO2lmKCFuKXJldHVybiBudWxsO2NvbnN0IGE9cy5jcmVhdGVFbGVtZW50KGUsey4uLnRoaXMucHJvcHMscmVmOnRoaXMucHJvcHMuY29tcG9uZW50UmVmLHpJbmRleDoxNTB9KTtyZXR1cm4icGFyZW50Ij09PW8/YTpzLmNyZWF0ZUVsZW1lbnQoaS5Qb3J0YWwse3Nob3VsZFRyYXBGb2N1czp0fSxhKX19fX0sMTUzNzM0KGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse0RFRkFVTFRfUE9QVVBfTUVOVV9JVEVNX1RIRU1FOigpPT51LFBvcHVwTWVudUl0ZW06KCk9Pmh9KTt2YXIgcz1uKDc3OTQ3NCksaT1uKDkxNDQ4Nyksbz1uLm4oaSksYT1uKDM4Nzc3NCkscj1uKDg0ODk4OCksbD1uKDI3NjAxOSksYz1uKDQ3MDI5NSk7Y29uc3QgdT1jO2Z1bmN0aW9uIGQoZSl7ZS5zdG9wUHJvcGFnYXRpb24oKX1mdW5jdGlvbiBoKGUpe2NvbnN0e2lkOnQscm9sZTpuLGNsYXNzTmFtZTppLHRpdGxlOnUsbGFiZWxSb3dDbGFzc05hbWU6aCxsYWJlbENsYXNzTmFtZTptLHRvb2xib3hDbGFzc05hbWU6cCxzaG9ydGN1dDpnLGZvcmNlU2hvd1Nob3J0Y3V0czpiLGljb246dixpY29uQ2xhc3NuYW1lOmYsaXNBY3RpdmU6eSxpc0Rpc2FibGVkOl8saXNIb3ZlcmVkOkMsYXBwZWFyQXNEaXNhYmxlZDp4LGxhYmVsOkUsbGluazpTLHNob3dUb29sYm94T25Ib3ZlcjpBLHNob3dUb29sYm94T25Gb2N1czp3LHRhcmdldDpNLHJlbDprLHRvb2xib3g6VCx0b29sYm94Um9sZTpSLHJlZmVyZW5jZTpOLG9uTW91c2VPdXQ6Qixvbk1vdXNlT3ZlcjpMLG9uS2V5RG93bjpXLHN1cHByZXNzVG9vbGJveENsaWNrOlA9ITAsdGhlbWU6Tz1jLHRhYkluZGV4OkQsdGFnTmFtZTpGLHJlbmRlckNvbXBvbmVudDpqLHJvdW5kZWRJY29uOnosaWNvbkFyaWFQcm9wczpJLGNpcmNsZUxvZ286SCxkb250Q2xvc2VQb3B1cDpWLG9uQ2xpY2s6VSxvbkNsaWNrQXJnOnEsb25Db250ZXh0TWVudTpLLG9uTW91c2VVcDpHLHN0YXJ0U2xvdDokLGRhdGFRYUlkOlosLi4uWX09ZSxKPSgwLHMudXNlUmVmKShudWxsKSxRPSgwLHMudXNlTWVtbykoKCgpPT5mdW5jdGlvbihlKXtmdW5jdGlvbiB0KHQpe2NvbnN0e3JlZmVyZW5jZTpuLC4uLml9PXQsbz1lPz8oaS5ocmVmPyJhIjoiZGl2IiksYT0iYSI9PT1vP2k6ZnVuY3Rpb24oZSl7Y29uc3R7ZG93bmxvYWQ6dCxocmVmOm4saHJlZkxhbmc6cyxtZWRpYTppLHBpbmc6byxyZWw6YSx0YXJnZXQ6cix0eXBlOmwscmVmZXJyZXJQb2xpY3k6YywuLi51fT1lO3JldHVybiB1fShpKTtyZXR1cm4gcy5jcmVhdGVFbGVtZW50KG8sey4uLmEscmVmOm59KX1yZXR1cm4gdC5kaXNwbGF5TmFtZT1gRGVmYXVsdENvbXBvbmVudCgke2V9KWAsdH0oRikpLFtGXSksWD1qPz9RO3JldHVybiBzLmNyZWF0ZUVsZW1lbnQoWCx7Li4uWSxpZDp0LHJvbGU6bixjbGFzc05hbWU6bygpKGksTy5pdGVtLHYmJk8ud2l0aEljb24se1tPLmlzQWN0aXZlXTp5LFtPLmlzRGlzYWJsZWRdOl98fHgsW08uaG92ZXJlZF06Q30pLHRpdGxlOnUsaHJlZjpTLHRhcmdldDpNLHJlbDprLHJlZmVyZW5jZTpmdW5jdGlvbihlKXtKLmN1cnJlbnQ9ZSwiZnVuY3Rpb24iPT10eXBlb2YgTiYmTihlKTsib2JqZWN0Ij09dHlwZW9mIE4mJihOLmN1cnJlbnQ9ZSl9LG9uQ2xpY2s6ZnVuY3Rpb24oZSl7aWYoXylyZXR1cm47VSYmVShxLGUpO1Z8fChlLmN1cnJlbnRUYXJnZXQuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInBvcHVwLW1lbnUtY2xvc2UtZXZlbnQiLHtidWJibGVzOiEwLGRldGFpbDp7Y2xpY2tUeXBlOigwLHIuaXNLZXlib2FyZENsaWNrKShlKT8ia2V5Ym9hcmQiOiJtb3VzZSJ9fSkpLCgwLGwuZ2xvYmFsQ2xvc2VNZW51KSgpKX0sb25Db250ZXh0TWVudTpLLG9uTW91c2VVcDpHLG9uTW91c2VPdmVyOkwsb25Nb3VzZU91dDpCLG9uS2V5RG93bjpXLHRhYkluZGV4OkQsImRhdGEtcWEtaWQiOlp9LEgmJnMuY3JlYXRlRWxlbWVudChhLkNpcmNsZUxvZ28sey4uLkksY2xhc3NOYW1lOmNbImRpc2Nsb3N1cmUtaXRlbS1jaXJjbGUtbG9nbyJdLHNpemU6Inh4eHNtYWxsIixsb2dvVXJsOkgubG9nb1VybCxwbGFjZWhvbGRlckxldHRlcjoicGxhY2Vob2xkZXJMZXR0ZXIiaW4gSD9ILnBsYWNlaG9sZGVyTGV0dGVyOnZvaWQgMH0pLCQmJnMuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZTpPLnN0YXJ0U2xvdH0sJCksdiYmcy5jcmVhdGVFbGVtZW50KCJzcGFuIix7ImFyaWEtbGFiZWwiOkkmJklbImFyaWEtbGFiZWwiXSwiYXJpYS1oaWRkZW4iOkkmJkJvb2xlYW4oSVsiYXJpYS1oaWRkZW4iXSksY2xhc3NOYW1lOm8oKShPLmljb24seiYmY1sicm91bmQtaWNvbiJdLGYpLGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MOntfX2h0bWw6dn19KSxzLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6bygpKE8ubGFiZWxSb3csaCl9LHMuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZTpvKCkoTy5sYWJlbCxtKX0sRSkpLCh2b2lkIDAhPT1nfHxiKSYmcy5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOk8uc2hvcnRjdXR9LChlZT1nKSYmZWUuc3BsaXQoIisiKS5qb2luKCIgKyAiKSksdm9pZCAwIT09VCYmcy5jcmVhdGVFbGVtZW50KCJzcGFuIix7cm9sZTpSLG9uQ2xpY2s6UD9kOnZvaWQgMCxjbGFzc05hbWU6bygpKHAsTy50b29sYm94LHtbTy5zaG93T25Ib3Zlcl06QSxbTy5zaG93T25Gb2N1c106d30pfSxUKSk7dmFyIGVlfX0sNjE4NjcyKGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQsewpQb3B1cE1lbnVTZXBhcmF0b3I6KCk9Pmx9KTt2YXIgcyxpPW4oNzc5NDc0KSxvPW4oOTE0NDg3KSxhPW4ubihvKSxyPW4oMjQ3MTg5KTtmdW5jdGlvbiBsKGUpe2NvbnN0e3NpemU6dD0ibm9ybWFsIixjbGFzc05hbWU6bixhcmlhSGlkZGVuOnM9ITF9PWU7cmV0dXJuIGkuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOmEoKShyLnNlcGFyYXRvciwic21hbGwiPT09dCYmci5zbWFsbCwibm9ybWFsIj09PXQmJnIubm9ybWFsLCJsYXJnZSI9PT10JiZyLmxhcmdlLG4pLHJvbGU6InNlcGFyYXRvciIsImFyaWEtaGlkZGVuIjpzfSl9IWZ1bmN0aW9uKGUpe2UuU21hbGw9InNtYWxsIixlLkxhcmdlPSJsYXJnZSIsZS5Ob3JtYWw9Im5vcm1hbCJ9KHN8fChzPXt9KSl9LDE5OTE3MihlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtUb29sV2lkZ2V0TWVudVN1bW1hcnk6KCk9PnJ9KTt2YXIgcz1uKDc3OTQ3NCksaT1uKDkxNDQ4Nyksbz1uLm4oaSksYT1uKDc2MTA5Myk7ZnVuY3Rpb24gcihlKXtyZXR1cm4gcy5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6bygpKGUuY2xhc3NOYW1lLGEudGl0bGUpfSxlLmNoaWxkcmVuKX19LDM4NzIzMShlLHQsbil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHMoZSx0LG49e30pe3JldHVybiBPYmplY3QuYXNzaWduKHt9LGUsZnVuY3Rpb24oZSx0LG49e30pe2NvbnN0IHM9T2JqZWN0LmFzc2lnbih7fSx0KTtmb3IoY29uc3QgaSBvZiBPYmplY3Qua2V5cyh0KSl7Y29uc3Qgbz1uW2ldfHxpO28gaW4gZSYmKHNbaV09W2Vbb10sdFtpXV0uam9pbigiICIpKX1yZXR1cm4gc30oZSx0LG4pKX1uLmQodCx7bWVyZ2VUaGVtZXM6KCk9PnN9KX0sMzg3Nzc0KGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse0NpcmNsZUxvZ286KCk9PnIsaGlkZGVuQ2lyY2xlTG9nb0NsYXNzOigpPT5hfSk7dmFyIHM9big3Nzk0NzQpLGk9big3OTQxODcpLG89bigxNDAwMTcpO2NvbnN0IGE9bi5uKG8pKCkuaGlkZGVuO2Z1bmN0aW9uIHIoZSl7Y29uc3QgdD0oMCxpLmlzQ2lyY2xlTG9nb1dpdGhVcmxQcm9wcykoZSksW24sb109KDAscy51c2VTdGF0ZSkoMCksYT0oMCxzLnVzZVJlZikobnVsbCkscj0oMCxpLmdldFN0eWxlQ2xhc3NlcykoZS5zaXplLG4sZS5jbGFzc05hbWUpLGw9ZS5hbHQ/P2UudGl0bGU/PyIiLGM9dD9sWzBdOmUucGxhY2Vob2xkZXJMZXR0ZXI7cmV0dXJuKDAscy51c2VFZmZlY3QpKCgoKT0+byhhLmN1cnJlbnQ/LmNvbXBsZXRlPz8hdD8yOjEpKSxbdF0pLHQmJjMhPT1uP3MuY3JlYXRlRWxlbWVudCgiaW1nIix7cmVmOmEsY2xhc3NOYW1lOnIsY3Jvc3NPcmlnaW46IiIsc3JjOmUubG9nb1VybCxhbHQ6bCx0aXRsZTplLnRpdGxlLGxvYWRpbmc6ZS5sb2FkaW5nLG9uTG9hZDooKT0+bygyKSxvbkVycm9yOigpPT5vKDMpLCJhcmlhLWxhYmVsIjplWyJhcmlhLWxhYmVsIl0sImFyaWEtaGlkZGVuIjplWyJhcmlhLWhpZGRlbiJdfSk6cy5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOnIsdGl0bGU6ZS50aXRsZSwiYXJpYS1sYWJlbCI6ZVsiYXJpYS1sYWJlbCJdLCJhcmlhLWhpZGRlbiI6ZVsiYXJpYS1oaWRkZW4iXX0sYyl9fSw3OTQxODcoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7Z2V0U3R5bGVDbGFzc2VzOigpPT5sLGlzQ2lyY2xlTG9nb1dpdGhVcmxQcm9wczooKT0+Y30pO3ZhciBzPW4oOTE0NDg3KSxpPW4ubihzKSxvPW4oMTM2NCksYT1uKDE0MDAxNykscj1uLm4oYSk7ZnVuY3Rpb24gbChlLHQ9MixuKXtyZXR1cm4gaSgpKHIoKS5sb2dvLHIoKVtlXSxuLDA9PT10fHwxPT09dD9pKCkoby5za2VsZXRvblRoZW1lLndyYXBwZXIscigpLnNrZWxldG9uKTpyKCkubGV0dGVyLDE9PT10JiZvLnNrZWxldG9uVGhlbWUuYW5pbWF0ZWQpfWZ1bmN0aW9uIGMoZSl7cmV0dXJuImxvZ29VcmwiaW4gZSYmbnVsbCE9PWUubG9nb1VybCYmdm9pZCAwIT09ZS5sb2dvVXJsJiYwIT09ZS5sb2dvVXJsLmxlbmd0aH19LDc4Nzg5NShlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHt1c2VGdW5jdGlvbmFsUmVmT2JqZWN0OigpPT5vfSk7dmFyIHM9big3Nzk0NzQpLGk9big2MTYzMTEpO2Z1bmN0aW9uIG8oZSl7Y29uc3QgdD0oMCxzLnVzZU1lbW8pKCgoKT0+ZnVuY3Rpb24oZSl7Y29uc3QgdD1uPT57ZShuKSx0LmN1cnJlbnQ9bn07cmV0dXJuIHQuY3VycmVudD1udWxsLHR9KChlPT57ci5jdXJyZW50KGUpfSkpKSxbXSksbj0oMCxzLnVzZVJlZikobnVsbCksbz10PT57aWYobnVsbD09PXQpcmV0dXJuIGEobi5jdXJyZW50LHQpLHZvaWQobi5jdXJyZW50PW51bGwpO24uY3VycmVudCE9PWUmJihuLmN1cnJlbnQ9ZSxhKG4uY3VycmVudCx0KSl9LHI9KDAscy51c2VSZWYpKG8pO3JldHVybiByLmN1cnJlbnQ9bywoMCxpLnVzZUlzb21vcnBoaWNMYXlvdXRFZmZlY3QpKCgoKT0+e2lmKG51bGwhPT10LmN1cnJlbnQpcmV0dXJuIHIuY3VycmVudCh0LmN1cnJlbnQpLCgpPT5yLmN1cnJlbnQobnVsbCl9KSxbZV0pLHR9ZnVuY3Rpb24gYShlLHQpe251bGwhPT1lJiYoImZ1bmN0aW9uIj09dHlwZW9mIGU/ZSh0KTplLmN1cnJlbnQ9dCl9fSwyNzMzMTAoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7SWNvbjooKT0+aX0pO3ZhciBzPW4oNzc5NDc0KTtjb25zdCBpPXMuZm9yd2FyZFJlZigoKGUsdCk9Pntjb25zdHtpY29uOm49IiIsdGl0bGU6aSxhcmlhTGFiZWw6byxhcmlhTGFiZWxsZWRieTphLGFyaWFIaWRkZW46ciwuLi5sfT1lLGM9ISEoaXx8b3x8YSk7cmV0dXJuIHMuY3JlYXRlRWxlbWVudCgic3BhbiIse3JvbGU6ImltZyIsLi4ubCxyZWY6dCwiYXJpYS1sYWJlbCI6bywiYXJpYS1sYWJlbGxlZGJ5IjphLCJhcmlhLWhpZGRlbiI6cnx8IWMsdGl0bGU6aSxkYW5nZXJvdXNseVNldElubmVySFRNTDp7X19odG1sOm59fSl9KSl9LDY0OTE2NihlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtMb2FkZXI6KCk9PmN9KTt2YXIgcyxpPW4oNzc5NDc0KSxvPW4oOTE0NDg3KSxhPW4ubihvKSxyPW4oMjQ0NTI1KSxsPW4ubihyKTtmdW5jdGlvbiBjKGUpewpjb25zdHtjbGFzc05hbWU6dCxzaXplOm49Im1lZGl1bSIsc3RhdGljUG9zaXRpb246cyxjb2xvcjpvPSJibGFjayJ9PWUscj1hKCkobCgpLml0ZW0sbCgpW29dLGwoKVtuXSk7cmV0dXJuIGkuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZTphKCkobCgpLmxvYWRlcixzJiZsKCkuc3RhdGljLHQpfSxpLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6cn0pLGkuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZTpyfSksaS5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOnJ9KSl9IWZ1bmN0aW9uKGUpe2UuTWVkaXVtPSJtZWRpdW0iLGUuU21hbGw9InNtYWxsIn0oc3x8KHM9e30pKX0sNTg1NDgoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7UG9ydGFsOigpPT5jLFBvcnRhbENvbnRleHQ6KCk9PnV9KTt2YXIgcz1uKDc3OTQ3NCksaT1uKDEyOTM2NSksbz1uKDg1Njc3MCksYT1uKDkwMzQyKSxyPW4oNTcwMTkzKSxsPW4oNjA3ODMyKTtjbGFzcyBjIGV4dGVuZHMgcy5QdXJlQ29tcG9uZW50e2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLl91dWlkPSgwLG8ubmFub2lkKSgpfWNvbXBvbmVudFdpbGxVbm1vdW50KCl7dGhpcy5fbWFuYWdlcigpLnJlbW92ZVdpbmRvdyh0aGlzLl91dWlkKX1yZW5kZXIoKXtjb25zdCBlPXRoaXMuX21hbmFnZXIoKS5lbnN1cmVXaW5kb3codGhpcy5fdXVpZCx0aGlzLnByb3BzLmxheWVyT3B0aW9ucyk7ZS5zdHlsZS50b3A9dGhpcy5wcm9wcy50b3B8fCIiLGUuc3R5bGUuYm90dG9tPXRoaXMucHJvcHMuYm90dG9tfHwiIixlLnN0eWxlLmxlZnQ9dGhpcy5wcm9wcy5sZWZ0fHwiIixlLnN0eWxlLnJpZ2h0PXRoaXMucHJvcHMucmlnaHR8fCIiLGUuc3R5bGUucG9pbnRlckV2ZW50cz10aGlzLnByb3BzLnBvaW50ZXJFdmVudHN8fCIiO2NvbnN0IHQ9dGhpcy5wcm9wcy5jbGFzc05hbWU7cmV0dXJuIHQmJigic3RyaW5nIj09dHlwZW9mIHQ/ZS5jbGFzc0xpc3QuYWRkKHQpOmUuY2xhc3NMaXN0LmFkZCguLi50KSksdGhpcy5wcm9wcy5zaG91bGRUcmFwRm9jdXMmJiFlLmhhc0F0dHJpYnV0ZShyLkZPQ1VTX1RSQVBfREFUQV9BVFRSSUJVVEUpJiZlLnNldEF0dHJpYnV0ZShyLkZPQ1VTX1RSQVBfREFUQV9BVFRSSUJVVEUsInRydWUiKSx0aGlzLnByb3BzWyJhcmlhLWhpZGRlbiJdJiZlLnNldEF0dHJpYnV0ZSgiYXJpYS1oaWRkZW4iLCJ0cnVlIiksaS5jcmVhdGVQb3J0YWwocy5jcmVhdGVFbGVtZW50KHUuUHJvdmlkZXIse3ZhbHVlOnRoaXN9LHRoaXMucHJvcHMuY2hpbGRyZW4pLGUpfW1vdmVUb1RvcCgpe3RoaXMuX21hbmFnZXIoKS5tb3ZlVG9Ub3AodGhpcy5fdXVpZCl9X21hbmFnZXIoKXtyZXR1cm4gbnVsbD09PXRoaXMuY29udGV4dD8oMCxhLmdldFJvb3RPdmVybGFwTWFuYWdlcikoKTp0aGlzLmNvbnRleHR9fWMuY29udGV4dFR5cGU9bC5TbG90Q29udGV4dDtjb25zdCB1PXMuY3JlYXRlQ29udGV4dChudWxsKX0sMTM2NChlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtza2VsZXRvblRoZW1lOigpPT5pfSk7dmFyIHM9big5NzUyODUpO2NvbnN0IGk9bi5uKHMpKCl9LDYwNzgzMihlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtTbG90OigpPT5pLFNsb3RDb250ZXh0OigpPT5vfSk7dmFyIHM9big3Nzk0NzQpO2NsYXNzIGkgZXh0ZW5kcyBzLkNvbXBvbmVudHtzaG91bGRDb21wb25lbnRVcGRhdGUoKXtyZXR1cm4hMX1yZW5kZXIoKXtyZXR1cm4gcy5jcmVhdGVFbGVtZW50KCJkaXYiLHtzdHlsZTp7cG9zaXRpb246ImZpeGVkIix6SW5kZXg6MTUwLGxlZnQ6MCx0b3A6MH0scmVmOnRoaXMucHJvcHMucmVmZXJlbmNlfSl9fWNvbnN0IG89cy5jcmVhdGVDb250ZXh0KG51bGwpfSwzNDUxMTYoZSx0LG4peyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBzKGUpe3JldHVybiBvKGUsYSl9ZnVuY3Rpb24gaShlKXtyZXR1cm4gbyhlLHIpfWZ1bmN0aW9uIG8oZSx0KXtjb25zdCBuPU9iamVjdC5lbnRyaWVzKGUpLmZpbHRlcih0KSxzPXt9O2Zvcihjb25zdFtlLHRdb2YgbilzW2VdPXQ7cmV0dXJuIHN9ZnVuY3Rpb24gYShlKXtjb25zdFt0LG5dPWU7cmV0dXJuIDA9PT10LmluZGV4T2YoImRhdGEtIikmJiJzdHJpbmciPT10eXBlb2Ygbn1mdW5jdGlvbiByKGUpe3JldHVybiAwPT09ZVswXS5pbmRleE9mKCJhcmlhLSIpfWZ1bmN0aW9uIGwoZSx0KXtjb25zdCBuPXMoZSk7cmV0dXJuIHQmJihuWyJkYXRhLXFhLWlkIl09dCksbn1uLmQodCx7ZmlsdGVyQXJpYVByb3BzOigpPT5pLGZpbHRlckNoZWNrZWREYXRhUHJvcHM6KCk9PmwsZmlsdGVyRGF0YVByb3BzOigpPT5zLGZpbHRlclByb3BzOigpPT5vLGlzQXJpYUF0dHJpYnV0ZTooKT0+cixpc0RhdGFBdHRyaWJ1dGU6KCk9PmF9KX0sNzE4NTUzKGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse091dHNpZGVFdmVudDooKT0+aX0pO3ZhciBzPW4oMjM2NzY1KTtmdW5jdGlvbiBpKGUpe2NvbnN0e2NoaWxkcmVuOnQsLi4ubn09ZTtyZXR1cm4gdCgoMCxzLnVzZU91dHNpZGVFdmVudCkobikpfX0sOTAzNDIoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7T3ZlcmxhcE1hbmFnZXI6KCk9PmEsZ2V0Um9vdE92ZXJsYXBNYW5hZ2VyOigpPT5sfSk7dmFyIHM9bigxMzg2MzgpLGk9big1NzAxOTMpO2NsYXNzIG97Y29uc3RydWN0b3IoKXt0aGlzLl9zdG9yYWdlPVtdfWFkZChlKXt0aGlzLl9zdG9yYWdlLnB1c2goZSl9cmVtb3ZlKGUpe3RoaXMuX3N0b3JhZ2U9dGhpcy5fc3RvcmFnZS5maWx0ZXIoKHQ9PmUhPT10KSl9aGFzKGUpe3JldHVybiB0aGlzLl9zdG9yYWdlLmluY2x1ZGVzKGUpfWdldEl0ZW1zKCl7cmV0dXJuIHRoaXMuX3N0b3JhZ2V9fWNsYXNzIGF7Y29uc3RydWN0b3IoZT1kb2N1bWVudCl7dGhpcy5fc3RvcmFnZT1uZXcgbyx0aGlzLl93aW5kb3dzPW5ldyBNYXAsdGhpcy5faW5kZXg9MCx0aGlzLl9kb2N1bWVudD1lLHRoaXMuX2NvbnRhaW5lcj1lLmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKX1zZXRDb250YWluZXIoZSl7Y29uc3QgdD10aGlzLl9jb250YWluZXIsbj1udWxsPT09ZT90aGlzLl9kb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCk6ZTshZnVuY3Rpb24oZSx0KXsKQXJyYXkuZnJvbShlLmNoaWxkTm9kZXMpLmZvckVhY2goKGU9PntlLm5vZGVUeXBlPT09Tm9kZS5FTEVNRU5UX05PREUmJnQuYXBwZW5kQ2hpbGQoZSl9KSl9KHQsbiksdGhpcy5fY29udGFpbmVyPW59cmVnaXN0ZXJXaW5kb3coZSl7dGhpcy5fc3RvcmFnZS5oYXMoZSl8fHRoaXMuX3N0b3JhZ2UuYWRkKGUpfWVuc3VyZVdpbmRvdyhlLHQ9e3Bvc2l0aW9uOiJmaXhlZCIsZGlyZWN0aW9uOiJub3JtYWwifSl7Y29uc3Qgbj10aGlzLl93aW5kb3dzLmdldChlKTtpZih2b2lkIDAhPT1uKXJldHVybiBuO3RoaXMucmVnaXN0ZXJXaW5kb3coZSk7Y29uc3Qgcz10aGlzLl9kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtpZihzLnN0eWxlLnBvc2l0aW9uPXQucG9zaXRpb24scy5zdHlsZS56SW5kZXg9dGhpcy5faW5kZXgudG9TdHJpbmcoKSxzLmRhdGFzZXQuaWQ9ZSx2b2lkIDAhPT10LmluZGV4KXtjb25zdCBlPXRoaXMuX2NvbnRhaW5lci5jaGlsZE5vZGVzLmxlbmd0aDtpZih0LmluZGV4Pj1lKXRoaXMuX2NvbnRhaW5lci5hcHBlbmRDaGlsZChzKTtlbHNlIGlmKHQuaW5kZXg8PTApdGhpcy5fY29udGFpbmVyLmluc2VydEJlZm9yZShzLHRoaXMuX2NvbnRhaW5lci5maXJzdENoaWxkKTtlbHNle2NvbnN0IGU9dGhpcy5fY29udGFpbmVyLmNoaWxkTm9kZXNbdC5pbmRleF07dGhpcy5fY29udGFpbmVyLmluc2VydEJlZm9yZShzLGUpfX1lbHNlInJldmVyc2UiPT09dC5kaXJlY3Rpb24/dGhpcy5fY29udGFpbmVyLmluc2VydEJlZm9yZShzLHRoaXMuX2NvbnRhaW5lci5maXJzdENoaWxkKTp0aGlzLl9jb250YWluZXIuYXBwZW5kQ2hpbGQocyk7cmV0dXJuIHRoaXMuX3dpbmRvd3Muc2V0KGUscyksKyt0aGlzLl9pbmRleCxzfXVucmVnaXN0ZXJXaW5kb3coZSl7dGhpcy5fc3RvcmFnZS5yZW1vdmUoZSk7Y29uc3QgdD10aGlzLl93aW5kb3dzLmdldChlKTt2b2lkIDAhPT10JiYobnVsbCE9PXQucGFyZW50RWxlbWVudCYmdC5wYXJlbnRFbGVtZW50LnJlbW92ZUNoaWxkKHQpLHRoaXMuX3dpbmRvd3MuZGVsZXRlKGUpKX1nZXRaaW5kZXgoZSl7Y29uc3QgdD10aGlzLmVuc3VyZVdpbmRvdyhlKTtyZXR1cm4gcGFyc2VJbnQodC5zdHlsZS56SW5kZXh8fCIwIil9bW92ZUxhc3RXaW5kb3dUb1RvcCgpe2NvbnN0IGU9dGhpcy5fc3RvcmFnZS5nZXRJdGVtcygpLHQ9ZVtlLmxlbmd0aC0xXTt0JiZ0aGlzLm1vdmVUb1RvcCh0KX1tb3ZlVG9Ub3AoZSl7aWYodGhpcy5nZXRaaW5kZXgoZSkhPT10aGlzLl9pbmRleCl7Y29uc3QgdD10aGlzLmVuc3VyZVdpbmRvdyhlKTt0aGlzLl93aW5kb3dzLmZvckVhY2goKChlLG4pPT57ZS5oYXNBdHRyaWJ1dGUoaS5GT0NVU19UUkFQX0RBVEFfQVRUUklCVVRFKSYmZS5zZXRBdHRyaWJ1dGUoaS5GT0NVU19UUkFQX0RBVEFfQVRUUklCVVRFLGU9PT10PyJ0cnVlIjoiZmFsc2UiKX0pKSx0LnN0eWxlLnpJbmRleD0oKyt0aGlzLl9pbmRleCkudG9TdHJpbmcoKX19cmVtb3ZlV2luZG93KGUpe3RoaXMudW5yZWdpc3RlcldpbmRvdyhlKX19Y29uc3Qgcj1uZXcgV2Vha01hcDtmdW5jdGlvbiBsKGU9ZG9jdW1lbnQpe2NvbnN0IHQ9ZS5nZXRFbGVtZW50QnlJZCgib3ZlcmxhcC1tYW5hZ2VyLXJvb3QiKTtpZihudWxsIT09dClyZXR1cm4oMCxzLmVuc3VyZURlZmluZWQpKHIuZ2V0KHQpKTt7Y29uc3QgdD1uZXcgYShlKSxuPWZ1bmN0aW9uKGUpe2NvbnN0IHQ9ZS5jcmVhdGVFbGVtZW50KCJkaXYiKTtyZXR1cm4gdC5zdHlsZS5wb3NpdGlvbj0iYWJzb2x1dGUiLHQuc3R5bGUuekluZGV4PTE1MC4udG9TdHJpbmcoKSx0LnN0eWxlLnRvcD0iMHB4Iix0LnN0eWxlLmxlZnQ9IjBweCIsdC5pZD0ib3ZlcmxhcC1tYW5hZ2VyLXJvb3QiLHQuZGF0YXNldC5xYUlkPSJvdmVybGFwLW1hbmFnZXItcm9vdCIsdH0oZSk7cmV0dXJuIHIuc2V0KG4sdCksdC5zZXRDb250YWluZXIobiksZS5ib2R5LmFwcGVuZENoaWxkKG4pLHR9fXZhciBjOyFmdW5jdGlvbihlKXtlW2UuQmFzZVppbmRleD0xNTBdPSJCYXNlWmluZGV4In0oY3x8KGM9e30pKX0sODMzOTAzKGUsdCxuKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gcyguLi5lKXtyZXR1cm4gdD0+e2Zvcihjb25zdCBuIG9mIGUpdm9pZCAwIT09biYmbih0KX19bi5kKHQse2NyZWF0ZVNhZmVNdWx0aWNhc3RFdmVudEhhbmRsZXI6KCk9PnN9KX0sNjI2MjA1KGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse2JpbmRSYW5nZXM6KCk9PmZ9KTt2YXIgcz1uKDc3OTQ3NCksaT1uKDIyMTg5Niksbz1uKDEzODYzOCksYT1uKDM4NjkzMSkscj1uKDU2OTY1MiksbD1uKDk0ODM4MCksYz1uKDIxNDk4NyksdT1uKDc4MzI1NCksZD1uKDI1NDY3MyksaD1uKDIxNTczMCk7Y29uc3QgbT17WygwLGguc3RyaW5nQXNSZXNvbHV0aW9uKSgiMSIpXTp7cmVzb2x1dGlvbjooMCxoLnN0cmluZ0FzUmVzb2x1dGlvbikoIjEiKSx0ZXh0OigwLGgubWludXRlc1N0cmluZ0xpdGVyYWwpKDEpfSxbKDAsaC5zdHJpbmdBc1Jlc29sdXRpb24pKCIzIildOntyZXNvbHV0aW9uOigwLGguc3RyaW5nQXNSZXNvbHV0aW9uKSgiMyIpLHRleHQ6KDAsaC5taW51dGVzU3RyaW5nTGl0ZXJhbCkoMyl9LFsoMCxoLnN0cmluZ0FzUmVzb2x1dGlvbikoIjUiKV06e3Jlc29sdXRpb246KDAsaC5zdHJpbmdBc1Jlc29sdXRpb24pKCI1IiksdGV4dDooMCxoLm1pbnV0ZXNTdHJpbmdMaXRlcmFsKSg1KX0sWygwLGguc3RyaW5nQXNSZXNvbHV0aW9uKSgiMTUiKV06e3Jlc29sdXRpb246KDAsaC5zdHJpbmdBc1Jlc29sdXRpb24pKCIxNSIpLHRleHQ6KDAsaC5taW51dGVzU3RyaW5nTGl0ZXJhbCkoMTUpfSxbKDAsaC5zdHJpbmdBc1Jlc29sdXRpb24pKCIzMCIpXTp7cmVzb2x1dGlvbjooMCxoLnN0cmluZ0FzUmVzb2x1dGlvbikoIjMwIiksdGV4dDooMCxoLm1pbnV0ZXNTdHJpbmdMaXRlcmFsKSgzMCl9LFsoMCxoLnN0cmluZ0FzUmVzb2x1dGlvbikoIjQ1IildOntyZXNvbHV0aW9uOigwLGguc3RyaW5nQXNSZXNvbHV0aW9uKSgiNDUiKSx0ZXh0OigwLGgubWludXRlc1N0cmluZ0xpdGVyYWwpKDQ1KX0sWygwLGguc3RyaW5nQXNSZXNvbHV0aW9uKSgiNjAiKV06e3Jlc29sdXRpb246KDAsCmguc3RyaW5nQXNSZXNvbHV0aW9uKSgiNjAiKSx0ZXh0OigwLGguaG91cnNTdHJpbmdMaXRlcmFsKSgxKX0sWygwLGguc3RyaW5nQXNSZXNvbHV0aW9uKSgiMTIwIildOntyZXNvbHV0aW9uOigwLGguc3RyaW5nQXNSZXNvbHV0aW9uKSgiMTIwIiksdGV4dDooMCxoLmhvdXJzU3RyaW5nTGl0ZXJhbCkoMil9LFsoMCxoLnN0cmluZ0FzUmVzb2x1dGlvbikoIjE4MCIpXTp7cmVzb2x1dGlvbjooMCxoLnN0cmluZ0FzUmVzb2x1dGlvbikoIjE4MCIpLHRleHQ6KDAsaC5ob3Vyc1N0cmluZ0xpdGVyYWwpKDMpfSxbKDAsaC5zdHJpbmdBc1Jlc29sdXRpb24pKCIyNDAiKV06e3Jlc29sdXRpb246KDAsaC5zdHJpbmdBc1Jlc29sdXRpb24pKCIyNDAiKSx0ZXh0OigwLGguaG91cnNTdHJpbmdMaXRlcmFsKSg0KX0sWygwLGguc3RyaW5nQXNSZXNvbHV0aW9uKSgiMUQiKV06e3Jlc29sdXRpb246KDAsaC5zdHJpbmdBc1Jlc29sdXRpb24pKCIxRCIpLHRleHQ6KDAsaC5kYXlzU3RyaW5nTGl0ZXJhbCkoMSl9LFsoMCxoLnN0cmluZ0FzUmVzb2x1dGlvbikoIjFXIildOntyZXNvbHV0aW9uOigwLGguc3RyaW5nQXNSZXNvbHV0aW9uKSgiMVciKSx0ZXh0OigwLGgud2Vla3NTdHJpbmdMaXRlcmFsKSgxKX0sWygwLGguc3RyaW5nQXNSZXNvbHV0aW9uKSgiMU0iKV06e3Jlc29sdXRpb246KDAsaC5zdHJpbmdBc1Jlc29sdXRpb24pKCIxTSIpLHRleHQ6KDAsaC5tb250aHNTdHJpbmdMaXRlcmFsKSgxKX0sWygwLGguc3RyaW5nQXNSZXNvbHV0aW9uKSgiM00iKV06e3Jlc29sdXRpb246KDAsaC5zdHJpbmdBc1Jlc29sdXRpb24pKCIzTSIpLHRleHQ6KDAsaC5tb250aHNTdHJpbmdMaXRlcmFsKSgzKX0sWygwLGguc3RyaW5nQXNSZXNvbHV0aW9uKSgiNk0iKV06e3Jlc29sdXRpb246KDAsaC5zdHJpbmdBc1Jlc29sdXRpb24pKCI2TSIpLHRleHQ6KDAsaC5tb250aHNTdHJpbmdMaXRlcmFsKSg2KX0sWygwLGguc3RyaW5nQXNSZXNvbHV0aW9uKSgiMTJNIildOntyZXNvbHV0aW9uOigwLGguc3RyaW5nQXNSZXNvbHV0aW9uKSgiMTJNIiksdGV4dDooMCxoLnllYXJzU3RyaW5nTGl0ZXJhbCkoMSl9fTtmdW5jdGlvbiBwKGUpe2NvbnN0IHQ9ZnVuY3Rpb24oZSl7Y29uc3QgdD1lLnZhbHVlLnZhbHVlLHM9ZC5JbnRlcnZhbC5wYXJzZSh0KTtpZighcy5pc1ZhbGlkKCkpe2lmKCJZVEQiPT09dClyZXR1cm4gdS50KG51bGwse2NvbnRleHQ6InRpbWVmcmFtZV90aXRsZSJ9LG4oMzk3MjE5KSk7aWYoIkFMTCI9PT10KXJldHVybiB1LnQobnVsbCx7Y29udGV4dDoidGltZWZyYW1lX3RpdGxlIn0sbig4NDg2NDIpKTtpZigiTEFTVFNFU1NJT04iPT09dClyZXR1cm4gZygxKX1pZihzLmlzTWludXRlcygpKXtjb25zdCBlPXMubXVsdGlwbGllcigpO3JldHVybiBlJTYwIT0wPyhvPWUsdS50KG51bGwse3BsdXJhbDoie3N0cn0gbWludXRlcyIsY291bnQ6byxyZXBsYWNlOntzdHI6YCR7b31gfSxjb250ZXh0OiJ0aW1lZnJhbWVfdGl0bGUifSxuKDc0MTE2MikpKTooaT1lLzYwLHUudChudWxsLHtwbHVyYWw6IntzdHJ9IGhvdXJzIixjb3VudDppLHJlcGxhY2U6e3N0cjpgJHtpfWB9LGNvbnRleHQ6InRpbWVmcmFtZV90aXRsZSJ9LG4oNDMzOTM0KSkpfXZhciBpO3ZhciBvO2lmKHMuaXNEYXlzKCkpcmV0dXJuIGcocy5tdWx0aXBsaWVyKCkpO2lmKHMuaXNXZWVrcygpKXJldHVybiBhPXMubXVsdGlwbGllcigpLHUudChudWxsLHtwbHVyYWw6IntzdHJ9IHdlZWtzIixjb3VudDphLHJlcGxhY2U6e3N0cjpgJHthfWB9LGNvbnRleHQ6InRpbWVmcmFtZV90aXRsZSJ9LG4oMzk0MTUxKSk7dmFyIGE7aWYocy5pc01vbnRocygpKXtjb25zdCBlPXMubXVsdGlwbGllcigpO3JldHVybiBlJTEyIT0wPyhsPWUsdS50KG51bGwse3BsdXJhbDoie3N0cn0gbW9udGhzIixjb3VudDpsLHJlcGxhY2U6e3N0cjpgJHtsfWB9LGNvbnRleHQ6InRpbWVmcmFtZV90aXRsZSJ9LG4oNjIxOTc3KSkpOihyPWUvMTIsdS50KG51bGwse3BsdXJhbDoie3N0cn0geWVhcnMiLGNvdW50OnIscmVwbGFjZTp7c3RyOmAke3J9YH0sY29udGV4dDoidGltZWZyYW1lX3RpdGxlIn0sbig2ODc4NTgpKSl9dmFyIHI7dmFyIGw7cmV0dXJuIGUuZGVzY3JpcHRpb258fGUudGV4dH0oZSkscz1mdW5jdGlvbihlKXtjb25zdCB0PWUudGFyZ2V0UmVzb2x1dGlvbixzPWQuSW50ZXJ2YWwucGFyc2UodCk7aWYocy5pc1RpY2tzKCkpcmV0dXJuIGk9cy5tdWx0aXBsaWVyKCksdS50KG51bGwse3BsdXJhbDoie3N0cn0gdGlja3MgaW50ZXJ2YWxzIixjb3VudDppLHJlcGxhY2U6e3N0cjpgJHtpfWB9LGNvbnRleHQ6InRpbWVmcmFtZV90aXRsZSJ9LG4oNjQyMjQ3KSk7dmFyIGk7aWYocy5pc1NlY29uZHMoKSlyZXR1cm4gbz1zLm11bHRpcGxpZXIoKSx1LnQobnVsbCx7cGx1cmFsOiJ7c3RyfSBzZWNvbmRzIGludGVydmFscyIsY291bnQ6byxyZXBsYWNlOntzdHI6YCR7b31gfSxjb250ZXh0OiJ0aW1lZnJhbWVfdGl0bGUifSxuKDUwNDExMSkpO3ZhciBvO2lmKHMuaXNNaW51dGVzKCkpe2NvbnN0IGU9cy5tdWx0aXBsaWVyKCk7cmV0dXJuIGUlNjAhPTA/KHI9ZSx1LnQobnVsbCx7cGx1cmFsOiJ7c3RyfSBtaW51dGVzIGludGVydmFscyIsY291bnQ6cixyZXBsYWNlOntzdHI6YCR7cn1gfSxjb250ZXh0OiJ0aW1lZnJhbWVfdGl0bGUifSxuKDUxNzY5OSkpKTooYT1lLzYwLHUudChudWxsLHtwbHVyYWw6IntzdHJ9IGhvdXJzIGludGVydmFscyIsY291bnQ6YSxyZXBsYWNlOntzdHI6YCR7YX1gfSxjb250ZXh0OiJ0aW1lZnJhbWVfdGl0bGUifSxuKDg0NDcwNCkpKX12YXIgYTt2YXIgcjtpZihzLmlzRGF5cygpKXJldHVybiBsPXMubXVsdGlwbGllcigpLHUudChudWxsLHtwbHVyYWw6IntzdHJ9IGRheXMgaW50ZXJ2YWxzIixjb3VudDpsLHJlcGxhY2U6e3N0cjpgJHtsfWB9LGNvbnRleHQ6InRpbWVmcmFtZV90aXRsZSJ9LG4oOTcyOTE1KSk7dmFyIGw7aWYocy5pc1dlZWtzKCkpcmV0dXJuIGM9cy5tdWx0aXBsaWVyKCksdS50KG51bGwse3BsdXJhbDoie3N0cn0gd2Vla3MgaW50ZXJ2YWxzIixjb3VudDpjLHJlcGxhY2U6e3N0cjpgJHtjfWB9LGNvbnRleHQ6InRpbWVmcmFtZV90aXRsZSIKfSxuKDMwNTQ2MSkpO3ZhciBjO2lmKHMuaXNNb250aHMoKSl7Y29uc3QgZT1zLm11bHRpcGxpZXIoKTtyZXR1cm4gZSUxMiE9MD8ocD1lLHUudChudWxsLHtwbHVyYWw6IntzdHJ9IG1vbnRocyBpbnRlcnZhbHMiLGNvdW50OnAscmVwbGFjZTp7c3RyOmAke3B9YH0sY29udGV4dDoidGltZWZyYW1lX3RpdGxlIn0sbig0MDQ3NTApKSk6KGg9ZS8xMix1LnQobnVsbCx7cGx1cmFsOiJ7c3RyfSB5ZWFycyBpbnRlcnZhbHMiLGNvdW50OmgscmVwbGFjZTp7c3RyOmAke2h9YH0sY29udGV4dDoidGltZWZyYW1lX3RpdGxlIn0sbigzMTA4MjgpKSl9dmFyIGg7dmFyIHA7cmV0dXJuIG1bdF0/LnRleHQ/P3R9KGUpO3JldHVybiB1LnQobnVsbCx7cmVwbGFjZTp7dGltZVBlcmlvZDp0LHRpbWVJbnRlcnZhbDpzfSxjb250ZXh0OiJ0aW1lZnJhbWVfdGl0bGUifSxuKDg1MDg0NykpfWNvbnN0IGc9ZT0+dS50KG51bGwse3BsdXJhbDoie3N0cn0gZGF5cyIsY291bnQ6ZSxyZXBsYWNlOntzdHI6YCR7ZX1gfSxjb250ZXh0OiJ0aW1lZnJhbWVfdGl0bGUifSxuKDE4ODI2NikpO2NsYXNzIGJ7Y29uc3RydWN0b3IoZSl7dGhpcy5fc3RhdGU9e3JhbmdlczpbXX0sdGhpcy5fZmlyc3RCYXJUaW1lMUQ9bnVsbCx0aGlzLl93YWl0aW5nVXBkYXRlQWZ0ZXJTeW1ib2xSZXNvbHZlZD0hMCx0aGlzLl9jaGFuZ2U9bmV3IGwuRGVsZWdhdGUsdGhpcy5fcmFuZ2VDaGFuZ2VkTGlzdGVuZXJCb3VuZD10aGlzLl9vblJhbmdlQ2hhbmdlZC5iaW5kKHRoaXMpO2NvbnN0e2NoYXJ0V2lkZ2V0OnR9PXRoaXMuX2NvbnRleHQ9ZTt0LndpdGhNb2RlbChudWxsLCgoKT0+e2NvbnN0IGU9dC5tb2RlbCgpLG49ZS5tYWluU2VyaWVzKCk7bi5vblN0YXR1c0NoYW5nZWQoKS5zdWJzY3JpYmUodGhpcyx0aGlzLl91cGRhdGVBdmFpbGFibGVSYW5nZXMpLG4uZGF0YUV2ZW50cygpLnN5bWJvbFJlc29sdmVkKCkuc3Vic2NyaWJlKHRoaXMsKCgpPT50aGlzLl91cGRhdGVSYW5nZXNCeVF1b3Rlc0RhdGEoKSkpLG4ucHJpY2VTY2FsZSgpLnByb3BlcnRpZXMoKS5jaGlsZHMoKS5sb2NrU2NhbGUuc3Vic2NyaWJlKHRoaXMsKCgpPT50aGlzLl91cGRhdGVBdmFpbGFibGVSYW5nZXMoKSkpO2NvbnN0IHM9ZS5tb2RlbCgpLmFwcGxpZWRUaW1lRnJhbWUoKTtzLnN1YnNjcmliZSh0aGlzLl9yYW5nZUNoYW5nZWRMaXN0ZW5lckJvdW5kKSx0aGlzLl9yYW5nZUNoYW5nZWRMaXN0ZW5lckJvdW5kKHMudmFsdWUoKSksdGhpcy5fdXBkYXRlUmFuZ2VzQnlRdW90ZXNEYXRhKCl9KSl9c3RhdGUoKXtyZXR1cm4gdGhpcy5fc3RhdGV9b25DaGFuZ2UoKXtyZXR1cm4gdGhpcy5fY2hhbmdlfXNlbGVjdFJhbmdlKGUpe3RoaXMuX3NldFN0YXRlKHthY3RpdmVSYW5nZTplLnZhbHVlLnZhbHVlfSk7Y29uc3R7Y2hhcnRXaWRnZXRDb2xsZWN0aW9uOnR9PXRoaXMuX2NvbnRleHQsbj17dmFsOmUudmFsdWUscmVzOmUudGFyZ2V0UmVzb2x1dGlvbn07dC5zZXRUaW1lRnJhbWUobil9ZGVzdHJveSgpe2NvbnN0e2NoYXJ0V2lkZ2V0OmV9PXRoaXMuX2NvbnRleHQ7ZS53aXRoTW9kZWwobnVsbCwoKCk9Pntjb25zdCB0PWUubW9kZWwoKSxuPXQubWFpblNlcmllcygpO24ub25TdGF0dXNDaGFuZ2VkKCkudW5zdWJzY3JpYmVBbGwodGhpcyksbi5kYXRhRXZlbnRzKCkuc3ltYm9sUmVzb2x2ZWQoKS51bnN1YnNjcmliZUFsbCh0aGlzKSxuLnF1b3Rlc1Byb3ZpZGVyKCkucXVvdGVzVXBkYXRlKCkudW5zdWJzY3JpYmVBbGwodGhpcyksbi5wcmljZVNjYWxlKCkucHJvcGVydGllcygpLmNoaWxkcygpLmxvY2tTY2FsZS51bnN1YnNjcmliZUFsbCh0aGlzKSx0Lm1vZGVsKCkuYXBwbGllZFRpbWVGcmFtZSgpLnVuc3Vic2NyaWJlKHRoaXMuX3JhbmdlQ2hhbmdlZExpc3RlbmVyQm91bmQpfSkpLHRoaXMuX2NoYW5nZS5kZXN0cm95KCksdGhpcy5fbGFzdEFib3J0Q29udHJvbGxlcj8uYWJvcnQoKX1fc2V0U3RhdGUoZSl7dGhpcy5fc3RhdGU9T2JqZWN0LmFzc2lnbih7fSx0aGlzLl9zdGF0ZSxlKSx0aGlzLl9jaGFuZ2UuZmlyZSh0aGlzLl9zdGF0ZSl9X29uUmFuZ2VDaGFuZ2VkKGUpe2xldCB0O251bGwhPT1lJiYicGVyaW9kLWJhY2siPT09ZS52YWwudHlwZSYmKHQ9ZS52YWwudmFsdWUpLHRoaXMuX3NldFN0YXRlKHthY3RpdmVSYW5nZTp0fSl9X3VwZGF0ZVJhbmdlc0J5UXVvdGVzRGF0YSgpe2NvbnN0e2NoYXJ0V2lkZ2V0OmV9PXRoaXMuX2NvbnRleHQ7aWYoIWUuaGFzTW9kZWwoKSlyZXR1cm47dGhpcy5fbGFzdEFib3J0Q29udHJvbGxlcj8uYWJvcnQoKTtjb25zdCB0PW5ldyBBYm9ydENvbnRyb2xsZXI7dGhpcy5fbGFzdEFib3J0Q29udHJvbGxlcj10O2NvbnN0IG49ZS5tb2RlbCgpLm1haW5TZXJpZXMoKTtuLnF1b3Rlc1Byb3ZpZGVyKCkucXVvdGVzVXBkYXRlKCkudW5zdWJzY3JpYmVBbGwodGhpcyksdGhpcy5fd2FpdGluZ1VwZGF0ZUFmdGVyU3ltYm9sUmVzb2x2ZWQ9ITAsdGhpcy5fZmlyc3RCYXJUaW1lMUQ9bnVsbCxQcm9taXNlLnJhY2UoWygwLGMuZGVsYXkpKG51bGwsM2UzKSxuZXcgUHJvbWlzZSgoZT0+e2NvbnN0IHQ9KCk9Pnt2b2lkIDAhPT1uLnF1b3RlcygpPy5vcGVuX3ByaWNlJiYobi5xdW90ZXNQcm92aWRlcigpLnF1b3Rlc1VwZGF0ZSgpLnVuc3Vic2NyaWJlQWxsKHRoaXMpLGUoKSl9O24ucXVvdGVzUHJvdmlkZXIoKS5xdW90ZXNVcGRhdGUoKS5zdWJzY3JpYmUodGhpcyx0KSx0KCl9KSldKS50aGVuKCgoKT0+e3Quc2lnbmFsLmFib3J0ZWR8fCh0aGlzLl93YWl0aW5nVXBkYXRlQWZ0ZXJTeW1ib2xSZXNvbHZlZD0hMSx0aGlzLl91cGRhdGVBdmFpbGFibGVSYW5nZXMoKSl9KSl9X3VwZGF0ZUF2YWlsYWJsZVJhbmdlcyhlKXtjb25zdHthdmFpbGFibGVUaW1lRnJhbWVzOnQsY2hhcnRXaWRnZXQ6bn09dGhpcy5fY29udGV4dDtpZighbi5oYXNNb2RlbCgpKXJldHVybjtjb25zdCBzPW4ubW9kZWwoKS5tYWluU2VyaWVzKCksaT1zLnN5bWJvbEluZm8oKSxvPXMuc3RhdHVzKCk7aWYoMj09PW98fDE9PT1vfHx0aGlzLl93YWl0aW5nVXBkYXRlQWZ0ZXJTeW1ib2xSZXNvbHZlZHx8ZSYmIWkpcmV0dXJuO2NvbnN0IGE9cy5xdW90ZXMoKT8uZmlyc3RfYmFyX3RpbWVfMWQ/Py0xLzAKO2lmKHRoaXMuX2ZpcnN0QmFyVGltZTFEPT09YSlyZXR1cm47dGhpcy5fZmlyc3RCYXJUaW1lMUQ9YTtjb25zdCByPXQoaSxvLGEpLm1hcCgoZT0+KHsuLi5lLGRlc2NyaXB0aW9uOnAoZSl9KSkpO3RoaXMuX3NldFN0YXRlKHtyYW5nZXM6cn0pfX1jb25zdCB2PSgwLHIucmVnaXN0cnlDb250ZXh0VHlwZSkoKTtmdW5jdGlvbiBmKGUpe3ZhciB0O3JldHVybih0PWNsYXNzIGV4dGVuZHMgcy5QdXJlQ29tcG9uZW50e2NvbnN0cnVjdG9yKGUsdCl7c3VwZXIoZSx0KSx0aGlzLl9oYW5kbGVVcGRhdGU9ZT0+e3RoaXMuc2V0U3RhdGUoZSl9LHRoaXMuX2hhbmRsZVNlbGVjdFJhbmdlPWU9PnsoMCxhLnRyYWNrRXZlbnQpKCJHVUkiLCJDaGFydCBCb3R0b20gVG9vbGJhciIsYHJhbmdlICR7ZS52YWx1ZX1gKSx0aGlzLnByb3BzLm9uU2VsZWN0UmFuZ2U/LihlKSx0aGlzLl9iaW5kaW5nLnNlbGVjdFJhbmdlKGUpfSwoMCxyLnZhbGlkYXRlUmVnaXN0cnkpKHQse2F2YWlsYWJsZVRpbWVGcmFtZXM6aS5hbnkuaXNSZXF1aXJlZCxjaGFydFdpZGdldENvbGxlY3Rpb246aS5hbnkuaXNSZXF1aXJlZCxjaGFydFdpZGdldDppLmFueS5pc1JlcXVpcmVkfSkseS5oYXModC5jaGFydFdpZGdldCl8fHkuc2V0KHQuY2hhcnRXaWRnZXQsbmV3IGIodCkpO2NvbnN0IG49dGhpcy5fYmluZGluZz0oMCxvLmVuc3VyZURlZmluZWQpKHkuZ2V0KHQuY2hhcnRXaWRnZXQpKTt0aGlzLnN0YXRlPW4uc3RhdGUoKX1jb21wb25lbnREaWRNb3VudCgpe3RoaXMuX2JpbmRpbmcub25DaGFuZ2UoKS5zdWJzY3JpYmUodGhpcyx0aGlzLl9oYW5kbGVVcGRhdGUpfWNvbXBvbmVudFdpbGxVbm1vdW50KCl7dGhpcy5fYmluZGluZy5vbkNoYW5nZSgpLnVuc3Vic2NyaWJlKHRoaXMsdGhpcy5faGFuZGxlVXBkYXRlKX1yZW5kZXIoKXtyZXR1cm4gcy5jcmVhdGVFbGVtZW50KGUse2dvVG9EYXRlQnV0dG9uOnRoaXMucHJvcHMuZ29Ub0RhdGVCdXR0b24sY2xhc3NOYW1lOnRoaXMucHJvcHMuY2xhc3NOYW1lLHJhbmdlczp0aGlzLnN0YXRlLnJhbmdlcyxhY3RpdmVSYW5nZTp0aGlzLnN0YXRlLmFjdGl2ZVJhbmdlLG9uU2VsZWN0UmFuZ2U6dGhpcy5faGFuZGxlU2VsZWN0UmFuZ2V9KX19KS5jb250ZXh0VHlwZT12LHR9Y29uc3QgeT1uZXcgV2Vha01hcH0sNjk0OTA5KGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse2JpbmRTY2FsZUxvZ2FyaXRobTooKT0+aH0pO3ZhciBzPW4oNzc5NDc0KSxpPW4oMjIxODk2KSxvPW4oMTM4NjM4KSxhPW4oMTg1MjcxKSxyPW4oNTcwNjAzKSxsPW4oNTY5NjUyKSxjPW4oMTI0NjU2KTtjb25zdCB1PSgwLGwucmVnaXN0cnlDb250ZXh0VHlwZSkoKSxkPW5ldyByLlRyYW5zbGF0ZWRTdHJpbmcoInRvZ2dsZSBsb2cgc2NhbGUiLGEudChudWxsLHZvaWQgMCxuKDc3NzQ4NSkpKTtmdW5jdGlvbiBoKGUpe3ZhciB0O3JldHVybih0PWNsYXNzIGV4dGVuZHMgcy5QdXJlQ29tcG9uZW50e2NvbnN0cnVjdG9yKGUsdCl7c3VwZXIoZSx0KSx0aGlzLl9wcmljZVNjYWxlPW51bGwsdGhpcy5faGFuZGxlU2VsZWN0PSgpPT57Y29uc3QgZT10aGlzLmNvbnRleHQuY2hhcnRXaWRnZXQubW9kZWwoKSx0PSgwLG8uZW5zdXJlTm90TnVsbCkodGhpcy5zdGF0ZS5zZXJpZXMpLG49dC5wcmljZVNjYWxlKCkscz1uLm1vZGUoKTt0LnByaWNlU2NhbGUoKS5pc0xvY2tTY2FsZSgpfHxlLnNldFByaWNlU2NhbGVNb2RlKHtsb2c6IXMubG9nfSxuLGQpfSwoMCxsLnZhbGlkYXRlUmVnaXN0cnkpKHQse2NoYXJ0V2lkZ2V0OmkuYW55LmlzUmVxdWlyZWR9KSx0aGlzLnN0YXRlPXtpc0FjdGl2ZTohMSxzZXJpZXM6bnVsbH0sdGhpcy5fcHJpY2VBeGlzSGlnaGxpZ2h0ZXI9bmV3IGMuUHJpY2VBeGlzSGlnaGxpZ2h0ZXIodGhpcy5jb250ZXh0LmNoYXJ0V2lkZ2V0LCgoKT0+dGhpcy5fcHJpY2VTY2FsZSksImxvZ2FyaXRobSIpfWNvbXBvbmVudERpZE1vdW50KCl7Y29uc3QgZT10aGlzLmNvbnRleHQuY2hhcnRXaWRnZXQ7ZS53aXRoTW9kZWwobnVsbCwoKCk9Pntjb25zdCB0PWUubW9kZWwoKS5tYWluU2VyaWVzKCksbj10LnByaWNlU2NhbGUoKTt0aGlzLl9oYW5kbGVNYWluU2VyaWVzUHJpY2VTY2FsZUNoYW5nZWQobiksdC5wcmljZVNjYWxlQ2hhbmdlZCgpLnN1YnNjcmliZSh0aGlzLHRoaXMuX2hhbmRsZU1haW5TZXJpZXNQcmljZVNjYWxlQ2hhbmdlZCksdGhpcy5faGFuZGxlTW9kZUNoYW5nZWQoe30sbi5tb2RlKCkpLHRoaXMuc2V0U3RhdGUoe2lzQWN0aXZlOnQucHJpY2VTY2FsZSgpLmlzTG9nKCksc2VyaWVzOnR9KX0pKX1jb21wb25lbnRXaWxsVW5tb3VudCgpe2NvbnN0IGU9dGhpcy5jb250ZXh0LmNoYXJ0V2lkZ2V0O2Uud2l0aE1vZGVsKG51bGwsKCgpPT57ZS5tb2RlbCgpLm1haW5TZXJpZXMoKS5wcmljZVNjYWxlQ2hhbmdlZCgpLnVuc3Vic2NyaWJlKHRoaXMsdGhpcy5faGFuZGxlTWFpblNlcmllc1ByaWNlU2NhbGVDaGFuZ2VkKX0pKSxudWxsIT09dGhpcy5fcHJpY2VTY2FsZSYmKHRoaXMuX3ByaWNlU2NhbGUubW9kZUNoYW5nZWQoKS51bnN1YnNjcmliZUFsbCh0aGlzKSx0aGlzLl9wcmljZVNjYWxlPW51bGwpLHRoaXMuX3ByaWNlQXhpc0hpZ2hsaWdodGVyLmRlc3Ryb3koKX1yZW5kZXIoKXtjb25zdHtjbGFzc05hbWU6dH09dGhpcy5wcm9wcyx7aXNBY3RpdmU6bixzZXJpZXM6aX09dGhpcy5zdGF0ZTtyZXR1cm4gcy5jcmVhdGVFbGVtZW50KGUsey4uLnRoaXMuX3ByaWNlQXhpc0hpZ2hsaWdodGVyLmhhbmRsZXJzKCksY2xhc3NOYW1lOnQsaXNMb2dhcml0aG06bixpc0Rpc2FibGVkOm51bGw9PT1pLG9uQ2xpY2s6dGhpcy5faGFuZGxlU2VsZWN0fSl9X2hhbmRsZU1haW5TZXJpZXNQcmljZVNjYWxlQ2hhbmdlZChlKXtudWxsIT09dGhpcy5fcHJpY2VTY2FsZSYmdGhpcy5fcHJpY2VTY2FsZS5tb2RlQ2hhbmdlZCgpLnVuc3Vic2NyaWJlKHRoaXMsdGhpcy5faGFuZGxlTW9kZUNoYW5nZWQpLHRoaXMuX3ByaWNlU2NhbGU9ZSx0aGlzLl9wcmljZVNjYWxlLm1vZGVDaGFuZ2VkKCkuc3Vic2NyaWJlKHRoaXMsdGhpcy5faGFuZGxlTW9kZUNoYW5nZWQpLHRoaXMuX2hhbmRsZU1vZGVDaGFuZ2VkKHt9LGUubW9kZSgpKX0KX2hhbmRsZU1vZGVDaGFuZ2VkKGUsdCl7Qm9vbGVhbih0LmxvZykhPT10aGlzLnN0YXRlLmlzQWN0aXZlJiZ0aGlzLnNldFN0YXRlKHtpc0FjdGl2ZTpCb29sZWFuKHQubG9nKX0pfX0pLmNvbnRleHRUeXBlPXUsdH19LDQ1MDE2KGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse2JpbmRTY2FsZVBlcmNlbnRhZ2U6KCk9Pmh9KTt2YXIgcz1uKDc3OTQ3NCksaT1uKDIyMTg5Niksbz1uKDEzODYzOCksYT1uKDE4NTI3MSkscj1uKDU3MDYwMyksbD1uKDU2OTY1MiksYz1uKDEyNDY1Nik7Y29uc3QgdT0oMCxsLnJlZ2lzdHJ5Q29udGV4dFR5cGUpKCksZD1uZXcgci5UcmFuc2xhdGVkU3RyaW5nKCJ0b2dnbGUgcGVyY2VudGFnZSBzY2FsZSIsYS50KG51bGwsdm9pZCAwLG4oNDQ1NTA3KSkpO2Z1bmN0aW9uIGgoZSl7dmFyIHQ7cmV0dXJuKHQ9Y2xhc3MgZXh0ZW5kcyBzLlB1cmVDb21wb25lbnR7Y29uc3RydWN0b3IoZSx0KXtzdXBlcihlLHQpLHRoaXMuX3ByaWNlU2NhbGU9bnVsbCx0aGlzLl9oYW5kbGVTZWxlY3Q9KCk9Pntjb25zdCBlPXRoaXMuY29udGV4dC5jaGFydFdpZGdldC5tb2RlbCgpLHQ9KDAsby5lbnN1cmVOb3ROdWxsKSh0aGlzLnN0YXRlLnNlcmllcyksbj10LnByaWNlU2NhbGUoKSxzPW4ubW9kZSgpO3QucHJpY2VTY2FsZSgpLmlzTG9ja1NjYWxlKCl8fGUuc2V0UHJpY2VTY2FsZU1vZGUoe3BlcmNlbnRhZ2U6IXMucGVyY2VudGFnZX0sbixkKX0sKDAsbC52YWxpZGF0ZVJlZ2lzdHJ5KSh0LHtjaGFydFdpZGdldDppLmFueS5pc1JlcXVpcmVkfSksdGhpcy5zdGF0ZT17aXNBY3RpdmU6ITEsc2VyaWVzOm51bGx9LHRoaXMuX3ByaWNlQXhpc0hpZ2hsaWdodGVyPW5ldyBjLlByaWNlQXhpc0hpZ2hsaWdodGVyKHRoaXMuY29udGV4dC5jaGFydFdpZGdldCwoKCk9PnRoaXMuX3ByaWNlU2NhbGUpLCJwZXJjZW50YWdlIil9Y29tcG9uZW50RGlkTW91bnQoKXtjb25zdCBlPXRoaXMuY29udGV4dC5jaGFydFdpZGdldDtlLndpdGhNb2RlbChudWxsLCgoKT0+e2NvbnN0IHQ9ZS5tb2RlbCgpLm1haW5TZXJpZXMoKSxuPXQucHJpY2VTY2FsZSgpO3RoaXMuX2hhbmRsZU1haW5TZXJpZXNQcmljZVNjYWxlQ2hhbmdlZChuKSx0LnByaWNlU2NhbGVDaGFuZ2VkKCkuc3Vic2NyaWJlKHRoaXMsdGhpcy5faGFuZGxlTWFpblNlcmllc1ByaWNlU2NhbGVDaGFuZ2VkKSx0aGlzLl9oYW5kbGVTY2FsZUNoYW5nZSh7fSxuLm1vZGUoKSksdGhpcy5zZXRTdGF0ZSh7aXNBY3RpdmU6dC5wcmljZVNjYWxlKCkuaXNQZXJjZW50YWdlKCksc2VyaWVzOnR9KX0pKX1jb21wb25lbnRXaWxsVW5tb3VudCgpe2NvbnN0IGU9dGhpcy5jb250ZXh0LmNoYXJ0V2lkZ2V0O2Uud2l0aE1vZGVsKG51bGwsKCgpPT57ZS5tb2RlbCgpLm1haW5TZXJpZXMoKS5wcmljZVNjYWxlQ2hhbmdlZCgpLnVuc3Vic2NyaWJlKHRoaXMsdGhpcy5faGFuZGxlTWFpblNlcmllc1ByaWNlU2NhbGVDaGFuZ2VkKX0pKSxudWxsIT09dGhpcy5fcHJpY2VTY2FsZSYmKHRoaXMuX3ByaWNlU2NhbGUubW9kZUNoYW5nZWQoKS51bnN1YnNjcmliZUFsbCh0aGlzKSx0aGlzLl9wcmljZVNjYWxlPW51bGwpLHRoaXMuX3ByaWNlQXhpc0hpZ2hsaWdodGVyLmRlc3Ryb3koKX1yZW5kZXIoKXtjb25zdHtjbGFzc05hbWU6dH09dGhpcy5wcm9wcyx7aXNBY3RpdmU6bixzZXJpZXM6aX09dGhpcy5zdGF0ZTtyZXR1cm4gcy5jcmVhdGVFbGVtZW50KGUsey4uLnRoaXMuX3ByaWNlQXhpc0hpZ2hsaWdodGVyLmhhbmRsZXJzKCksY2xhc3NOYW1lOnQsaXNQZXJjZW50YWdlOm4saXNEaXNhYmxlZDpudWxsPT09aSxvbkNsaWNrOnRoaXMuX2hhbmRsZVNlbGVjdH0pfV9oYW5kbGVNYWluU2VyaWVzUHJpY2VTY2FsZUNoYW5nZWQoZSl7bnVsbCE9PXRoaXMuX3ByaWNlU2NhbGUmJnRoaXMuX3ByaWNlU2NhbGUubW9kZUNoYW5nZWQoKS51bnN1YnNjcmliZSh0aGlzLHRoaXMuX2hhbmRsZVNjYWxlQ2hhbmdlKSx0aGlzLl9wcmljZVNjYWxlPWUsdGhpcy5fcHJpY2VTY2FsZS5tb2RlQ2hhbmdlZCgpLnN1YnNjcmliZSh0aGlzLHRoaXMuX2hhbmRsZVNjYWxlQ2hhbmdlKSx0aGlzLl9oYW5kbGVTY2FsZUNoYW5nZSh7fSxlLm1vZGUoKSl9X2hhbmRsZVNjYWxlQ2hhbmdlKGUsdCl7Qm9vbGVhbih0LnBlcmNlbnRhZ2UpIT09dGhpcy5zdGF0ZS5pc0FjdGl2ZSYmdGhpcy5zZXRTdGF0ZSh7aXNBY3RpdmU6Qm9vbGVhbih0LnBlcmNlbnRhZ2UpfSl9fSkuY29udGV4dFR5cGU9dSx0fX0sMzU0MTcyKGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse0JvdHRvbVRvb2xiYXJSZW5kZXJlcjooKT0+UHR9KTt2YXIgcz1uKDc3OTQ3NCksaT1uKDEyOTM2NSksbz1uKDE4NTI3MSksYT1uKDIyMTg5Nikscj1uKDkxNDQ4NyksbD1uLm4ociksYz1uKDEzODYzOCksdT1uKDkzMDIzMSksZD1uKDc3MTI4NSksaD1uKDEzMTMyMSksbT1uKDI3NjAxOSkscD1uKDQwNjExMCksZz1uKDg1MDEwOCksYj1uKDYxODY3Miksdj1uKDYyNjIwNSksZj1uKDY0NDI5NSkseT1uKDU2OTY1MiksXz1uKDcyMTE2NyksQz1uKDIzMTEzMykseD1uKDc2Mjg1MSksRT1uKDQzMTM2NSksUz1uKDY3NTA4NSk7ZnVuY3Rpb24gQShlKXtjb25zdHtyYW5nZXM6dCxhY3RpdmVSYW5nZTpuLG9uU2VsZWN0UmFuZ2U6aX09ZTtyZXR1cm4gcy5jcmVhdGVFbGVtZW50KHMuRnJhZ21lbnQsbnVsbCx0Lm1hcCgoZT0+cy5jcmVhdGVFbGVtZW50KF8uQ29udGV4dE1lbnVJdGVtLHtrZXk6ZS52YWx1ZS52YWx1ZSxsYWJlbDplLmRlc2NyaXB0aW9ufHxlLnRleHQsYWN0aXZlOm49PT1lLnZhbHVlLnZhbHVlLGNoZWNrZWQ6bj09PWUudmFsdWUudmFsdWUsY2hlY2thYmxlOiEwLGRpc2FibGVkOiExLG9uQ2xpY2s6by5iaW5kKG51bGwsZSksZG9Ob3RDbG9zZU9uQ2xpY2s6ITEsc3ViSXRlbXM6W119KSkpKTtmdW5jdGlvbiBvKGUpe2UmJmkmJmkoZSksKDAsbS5nbG9iYWxDbG9zZU1lbnUpKCl9fWZ1bmN0aW9uIHcoZSl7Y29uc3R7b25Hb1RvRGF0ZUNsaWNrOnR9PWU7cmV0dXJuIHMuY3JlYXRlRWxlbWVudChzLkZyYWdtZW50LG51bGwscy5jcmVhdGVFbGVtZW50KEMuU2VwYXJhdG9yLHtjbGFzc05hbWU6Uy5zZXBhcmF0b3IKfSkscy5jcmVhdGVFbGVtZW50KF8uQ29udGV4dE1lbnVJdGVtLHtpY29uOkUsbGFiZWw6KDAseC5hcHBlbmRFbGxpcHNpcykoby50KG51bGwsdm9pZCAwLG4oNzE1Mzk5KSkpLG9uQ2xpY2s6dCxhY3RpdmU6ITEsY2hlY2tlZDohMSxjaGVja2FibGU6ITEsZGlzYWJsZWQ6ITEsZG9Ob3RDbG9zZU9uQ2xpY2s6ITEsc3ViSXRlbXM6W119KSl9dmFyIE09bigyMTYwODMpO2NvbnN0IGs9e3RpdGxlOm8udChudWxsLHZvaWQgMCxuKDk5NzQwKSksZ29Ub0RhdGU6KDAseC5hcHBlbmRFbGxpcHNpcykoby50KG51bGwsdm9pZCAwLG4oNzE1Mzk5KSkpfSxUPSgwLHkucmVnaXN0cnlDb250ZXh0VHlwZSkoKTtjbGFzcyBSIGV4dGVuZHMgcy5QdXJlQ29tcG9uZW50e2NvbnN0cnVjdG9yKGUsdCl7c3VwZXIoZSx0KSx0aGlzLl9oYW5kbGVHb1RvRGF0ZUNsaWNrPSgpPT57Y29uc3R7Y2hhcnRXaWRnZXQ6ZX09dGhpcy5jb250ZXh0OygwLGYuc2hvd0dvVG9EYXRlRGlhbG9nKShlKSwoMCxtLmdsb2JhbENsb3NlTWVudSkoKX0sdGhpcy5faGFuZGxlUmFuZ2VTZWxlY3Q9ZT0+e2UmJnRoaXMucHJvcHMub25TZWxlY3RSYW5nZSYmdGhpcy5wcm9wcy5vblNlbGVjdFJhbmdlKGUpLCgwLG0uZ2xvYmFsQ2xvc2VNZW51KSgpfSx0aGlzLl9yZW5kZXJDaGlsZHJlbj1lPT57Y29uc3R7cmFuZ2VzOnQsYWN0aXZlUmFuZ2U6bixnb1RvRGF0ZUJ1dHRvbjppfT10aGlzLnByb3BzO3JldHVybiBlP3MuY3JlYXRlRWxlbWVudChzLkZyYWdtZW50LG51bGwscy5jcmVhdGVFbGVtZW50KEEse3Jhbmdlczp0LGFjdGl2ZVJhbmdlOm4sb25TZWxlY3RSYW5nZTp0aGlzLl9oYW5kbGVSYW5nZVNlbGVjdH0pLGkmJnMuY3JlYXRlRWxlbWVudCh3LHtvbkdvVG9EYXRlQ2xpY2s6dGhpcy5faGFuZGxlR29Ub0RhdGVDbGlja30pKTpzLmNyZWF0ZUVsZW1lbnQocy5GcmFnbWVudCxudWxsLHQubWFwKChlPT5zLmNyZWF0ZUVsZW1lbnQoZy5BY2Nlc3NpYmxlTWVudUl0ZW0se2tleTplLnZhbHVlLnZhbHVlLGxhYmVsOmUuZGVzY3JpcHRpb258fGUudGV4dCxpc0FjdGl2ZTpuPT09ZS52YWx1ZS52YWx1ZSxvbkNsaWNrOnRoaXMuX2hhbmRsZVJhbmdlU2VsZWN0LG9uQ2xpY2tBcmc6ZX0pKSksaSYmdC5sZW5ndGg+MCYmcy5jcmVhdGVFbGVtZW50KGIuUG9wdXBNZW51U2VwYXJhdG9yLG51bGwpLGkmJnMuY3JlYXRlRWxlbWVudChnLkFjY2Vzc2libGVNZW51SXRlbSx7bGFiZWw6ay5nb1RvRGF0ZSxvbkNsaWNrOnRoaXMuX2hhbmRsZUdvVG9EYXRlQ2xpY2t9KSl9LCgwLHkudmFsaWRhdGVSZWdpc3RyeSkodCx7Y2hhcnRXaWRnZXQ6YS5hbnkuaXNSZXF1aXJlZH0pfXJlbmRlcigpe3JldHVybiBzLmNyZWF0ZUVsZW1lbnQocC5NYXRjaE1lZGlhLHtydWxlOiIobWF4LXdpZHRoOiA0NDBweCkifSwoZT0+cy5jcmVhdGVFbGVtZW50KGQuVG9vbGJhck1lbnVCdXR0b24se2NsYXNzTmFtZTpsKCkoUy5idXR0b24sdGhpcy5wcm9wcy5jbGFzc05hbWUpLGNvbnRlbnQ6ay50aXRsZSxhcnJvdzohMCx2ZXJ0aWNhbEF0dGFjaEVkZ2U6aC5WZXJ0aWNhbEF0dGFjaEVkZ2UuVG9wLHZlcnRpY2FsRHJvcERpcmVjdGlvbjpoLlZlcnRpY2FsRHJvcERpcmVjdGlvbi5Gcm9tQm90dG9tVG9Ub3AsaG9yaXpvbnRhbE1hcmdpbjo0LCJkYXRhLW5hbWUiOiJkYXRlLXJhbmdlcy1tZW51Iixpc0RyYXdlcjplLG9uQ2xpY2s6dGhpcy5fdHJhY2tDbGlja30sdGhpcy5fcmVuZGVyQ2hpbGRyZW4oZSkpKSl9X3RyYWNrQ2xpY2soKXsoMCxNLnRyYWNrQnV0dG9uQ2xpY2spKCJib3R0b20gdG9vbGJhciIsImRhdGUgcmFuZ2UiKX19Ui5jb250ZXh0VHlwZT1UO2NvbnN0IE49KDAsdi5iaW5kUmFuZ2VzKShSKTt2YXIgQj1uKDc0MzE0MiksTD1uKDM0NTE1MSksVz1uKDM4NjkzMSksUD1uKDIzNTcyNCksTz1uKDk2NzA1KSxEPW4oNzM3NTYxKSxGPW4oNDI3NTAxKTtjb25zdCBqPSgwLEwuaG90S2V5U2VyaWFsaXplKSh7a2V5czpbKDAsUC5odW1hblJlYWRhYmxlTW9kaWZpZXJzKShQLk1vZGlmaWVycy5BbHQsITEpLCJHIl0sdGV4dDoiezB9ICsgezF9In0pLHo9KDAseS5yZWdpc3RyeUNvbnRleHRUeXBlKSgpO2NsYXNzIEkgZXh0ZW5kcyBzLlB1cmVDb21wb25lbnR7Y29uc3RydWN0b3IoZSx0KXtzdXBlcihlLHQpLHRoaXMuX2hhbmRsZUNsaWNrPSgpPT57Y29uc3R7Y2hhcnRXaWRnZXQ6ZX09dGhpcy5jb250ZXh0OygwLFcudHJhY2tFdmVudCkoIkdVSSIsIkNoYXJ0IEJvdHRvbSBUb29sYmFyIiwiZ28gdG8iKSwoMCxNLnRyYWNrQnV0dG9uQ2xpY2spKCJib3R0b20gdG9vbGJhciIsImdvIHRvIiksKDAsZi5zaG93R29Ub0RhdGVEaWFsb2cpKGUpfSwoMCx5LnZhbGlkYXRlUmVnaXN0cnkpKHQse2NoYXJ0V2lkZ2V0OmEuYW55LmlzUmVxdWlyZWR9KX1yZW5kZXIoKXtjb25zdHtjbGFzc05hbWU6ZX09dGhpcy5wcm9wcztyZXR1cm4gcy5jcmVhdGVFbGVtZW50KE8uVG9vbGJhckljb25CdXR0b24se2ljb246RCxvbkNsaWNrOnRoaXMuX2hhbmRsZUNsaWNrLCJkYXRhLXRvb2x0aXAtaG90a2V5IjpqLHRvb2x0aXA6by50KG51bGwsdm9pZCAwLG4oNzE1Mzk5KSksImRhdGEtbmFtZSI6ImdvLXRvLWRhdGUiLGNsYXNzTmFtZTpsKCkoRi5idXR0b24sZSl9KX19SS5jb250ZXh0VHlwZT16O2NvbnN0IEg9KDAsdi5iaW5kUmFuZ2VzKShJKTt2YXIgVj1uKDg0ODk4OCksVT1uKDcwMDgwOSkscT1uKDkxNDc3NSksSz1uKDI5NzExMSksRz1uKDUwOTA0KSwkPW4oNTkxNzQxKSxaPW4oMTg5OTk4KSxZPW4oMjQ2NzI3KSxKPW4oMjUwNDM5KSxRPW4oMzg3MjMxKSxYPW4oMzgxNjI5KTtjb25zdCBlZT0oMCxRLm1lcmdlVGhlbWVzKShZLkRFRkFVTFRfVE9PTEJBUl9CVVRUT05fVEhFTUUse2lzRGlzYWJsZWQ6WC5kaXNhYmxlZCxidXR0b246WC5idXR0b259KTtjb25zdCB0ZT0oMCx5LnJlZ2lzdHJ5Q29udGV4dFR5cGUpKCk7Y2xhc3MgbmUgZXh0ZW5kcyBzLlB1cmVDb21wb25lbnR7Y29uc3RydWN0b3IoZSx0KXtzdXBlcihlLHQpLHRoaXMuX3RpbWVGb3JtYXR0ZXI9bmV3IEsuVGltZUZvcm1hdHRlcigoMCwKJC5nZXRIb3VyTWludXRlU2Vjb25kRm9ybWF0KShaLnRpbWVIb3Vyc0Zvcm1hdFByb3BlcnR5LnZhbHVlKCkpKSx0aGlzLl90aWNrSW50ZXJ2YWw9dm9pZCAwLHRoaXMuX2VsZW1lbnQ9bnVsbCx0aGlzLl9tZW51U2hvd249ITEsdGhpcy5fcHJldmVudFNob3dpbmdNZW51PSExLHRoaXMuX3RpY2tDbG9jaz0oKT0+e2NvbnN0e2NoYXJ0QXBpSW5zdGFuY2U6ZX09dGhpcy5jb250ZXh0O2lmKHZvaWQgMCE9PXRoaXMuX3RpbWV6b25lKXtjb25zdCB0PSgwLFUudXRjX3RvX2NhbCkodGhpcy5fdGltZXpvbmUsZS5zZXJ2ZXJUaW1lKCkpO3RoaXMuc2V0U3RhdGUoe3RpbWU6dGhpcy5fdGltZUZvcm1hdHRlci5mb3JtYXQodCl9KX19LHRoaXMuX2dldEFjdGlvbnM9KCk9PntpZighdGhpcy5wcm9wcy53aXRoTWVudSlyZXR1cm5bXTtjb25zdHtjaGFydFdpZGdldDplfT10aGlzLmNvbnRleHQ7cmV0dXJuIGZ1bmN0aW9uKGUpe2NvbnN0IHQ9ZS5hY3Rpb25zKCk7cmV0dXJuIHQmJnQuYXBwbHlUaW1lWm9uZSBpbnN0YW5jZW9mIEcuQWN0aW9uP3QuYXBwbHlUaW1lWm9uZS5nZXRTdWJJdGVtcygpOltdfShlKX0sdGhpcy5faGFuZGxlUmVmPWU9Pnt0aGlzLl9lbGVtZW50PWV9LHRoaXMuX29uTW91c2VEb3duPSgpPT57dGhpcy5fcHJldmVudFNob3dpbmdNZW51PXRoaXMuX21lbnVTaG93bn0sdGhpcy5fc2hvd01lbnU9ZT0+e2lmKHRoaXMuX3ByZXZlbnRTaG93aW5nTWVudSlyZXR1cm4gdm9pZCBKLkNvbnRleHRNZW51TWFuYWdlci5oaWRlQWxsKCk7Y29uc3QgdD0oMCxjLmVuc3VyZU5vdE51bGwpKHRoaXMuX2VsZW1lbnQpLG49dGhpcy5fZ2V0QWN0aW9ucygpO2lmKDA9PT1uLmxlbmd0aClyZXR1cm47Y29uc3Qgcz10LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO0ouQ29udGV4dE1lbnVNYW5hZ2VyLnNob3dNZW51KG4se2NsaWVudFg6cy5sZWZ0LGNsaWVudFk6cy50b3AsYXR0YWNoVG9ZQnk6ImJvdHRvbSJ9LHtyZXR1cm5Gb2N1czohMCx0YWtlRm9jdXM6ITAsaXNLZXlib2FyZEV2ZW50OigwLFYuaXNLZXlib2FyZENsaWNrKShlKX0se21lbnVOYW1lOiJUaW1lem9uZU1lbnVDb250ZXh0TWVudSJ9LCgoKT0+e3RoaXMuX21lbnVTaG93bj0hMSx0aGlzLnNldFN0YXRlKHtpc01lbnVPcGVuZWQ6ITF9KX0pKS50aGVuKCgoKT0+e3RoaXMuX21lbnVTaG93bj0hMCx0aGlzLnNldFN0YXRlKHtpc01lbnVPcGVuZWQ6ITB9KX0pKX0sKDAseS52YWxpZGF0ZVJlZ2lzdHJ5KSh0LHtjaGFydFdpZGdldDphLmFueS5pc1JlcXVpcmVkLGNoYXJ0QXBpSW5zdGFuY2U6YS5hbnkuaXNSZXF1aXJlZH0pLHRoaXMuc3RhdGU9e3RpbWU6IiIsaXNNZW51T3BlbmVkOiExfX1jb21wb25lbnREaWRNb3VudCgpe2NvbnN0e2NoYXJ0V2lkZ2V0OmV9PXRoaXMuY29udGV4dDt0aGlzLl90aWNrSW50ZXJ2YWw9c2V0SW50ZXJ2YWwodGhpcy5fdGlja0Nsb2NrLDFlMyksZS53aXRoTW9kZWwobnVsbCwoKCk9Pntjb25zdCB0PWUubW9kZWwoKTt0Lm1vZGVsKCkubWFpblNlcmllcygpLmRhdGFFdmVudHMoKS5zeW1ib2xSZXNvbHZlZCgpLnN1YnNjcmliZSh0aGlzLHRoaXMudXBkYXRlVGltZXpvbmVzQnV0dG9uKSx0Lm1vZGVsKCkucHJvcGVydGllcygpLmNoaWxkcygpLnRpbWV6b25lLnN1YnNjcmliZSh0aGlzLHRoaXMudXBkYXRlVGltZXpvbmVzQnV0dG9uKSxaLnRpbWVIb3Vyc0Zvcm1hdFByb3BlcnR5LnN1YnNjcmliZSh0aGlzLHRoaXMuX3RpbWVIb3Vyc0Zvcm1hdFByb3BlcnR5Q2hhbmdlZCl9KSl9Y29tcG9uZW50V2lsbFVubW91bnQoKXtjb25zdHtjaGFydFdpZGdldDplfT10aGlzLmNvbnRleHQ7Y2xlYXJJbnRlcnZhbCh0aGlzLl90aWNrSW50ZXJ2YWwpLGUud2l0aE1vZGVsKG51bGwsKCgpPT57Y29uc3QgdD1lLm1vZGVsKCk7dC5tb2RlbCgpLm1haW5TZXJpZXMoKS5kYXRhRXZlbnRzKCkuc3ltYm9sUmVzb2x2ZWQoKS51bnN1YnNjcmliZSh0aGlzLHRoaXMudXBkYXRlVGltZXpvbmVzQnV0dG9uKSx0Lm1vZGVsKCkucHJvcGVydGllcygpLmNoaWxkcygpLnRpbWV6b25lLnVuc3Vic2NyaWJlKHRoaXMsdGhpcy51cGRhdGVUaW1lem9uZXNCdXR0b24pLFoudGltZUhvdXJzRm9ybWF0UHJvcGVydHkudW5zdWJzY3JpYmUodGhpcyx0aGlzLl90aW1lSG91cnNGb3JtYXRQcm9wZXJ0eUNoYW5nZWQpfSkpfXJlbmRlcigpe2NvbnN0e2NsYXNzTmFtZTplLHdpdGhNZW51OnR9PXRoaXMucHJvcHMse3RpbWU6aSxpc01lbnVPcGVuZWQ6YX09dGhpcy5zdGF0ZSxyPXZvaWQgMCE9PXRoaXMuX3RpbWV6b25lPygwLHEucGFyc2VUek9mZnNldCkodGhpcy5fdGltZXpvbmUubmFtZSgpKS5zdHJpbmc6bnVsbDtyZXR1cm4gcy5jcmVhdGVFbGVtZW50KFkuVG9vbGJhckJ1dHRvbix7b25Nb3VzZURvd246dGhpcy5fb25Nb3VzZURvd24scmVmOnRoaXMuX2hhbmRsZVJlZixvbkNsaWNrOnRoaXMuX3Nob3dNZW51LGlzT3BlbmVkOmEsaXNEaXNhYmxlZDohdCx0aGVtZTplZSwiZGF0YS1uYW1lIjoidGltZS16b25lLW1lbnUiLHRvb2x0aXA6dD9vLnQobnVsbCx2b2lkIDAsbigxNjkxMDgpKTp2b2lkIDAsY2xhc3NOYW1lOmUsdGV4dDppJiZyJiZgJHtpfSAke3J9YH0pfXVwZGF0ZVRpbWV6b25lc0J1dHRvbigpe2NvbnN0e2NoYXJ0V2lkZ2V0OmV9PXRoaXMuY29udGV4dDtpZighZS5oYXNNb2RlbCgpKXJldHVybjtpZihudWxsPT09ZS5tb2RlbCgpLm1haW5TZXJpZXMoKS5zeW1ib2xJbmZvKCkpcmV0dXJuO2NvbnN0IHQ9KDAsYy5lbnN1cmVOb3ROdWxsKShlLm1vZGVsKCkubW9kZWwoKS50aW1lem9uZUV4Y2VwdEV4Y2hhbmdlKCkudmFsdWUoKSk7dGhpcy5fdGltZXpvbmU9KDAsVS5nZXRfdGltZXpvbmUpKHQpLHRoaXMuX3RpY2tDbG9jaygpfV90aW1lSG91cnNGb3JtYXRQcm9wZXJ0eUNoYW5nZWQoKXt0aGlzLl90aW1lRm9ybWF0dGVyPW5ldyBLLlRpbWVGb3JtYXR0ZXIoKDAsJC5nZXRIb3VyTWludXRlU2Vjb25kRm9ybWF0KShaLnRpbWVIb3Vyc0Zvcm1hdFByb3BlcnR5LnZhbHVlKCkpKSx0aGlzLnVwZGF0ZVRpbWV6b25lc0J1dHRvbigpfX1uZS5jb250ZXh0VHlwZT10ZTt2YXIgc2U9big1MTE1NDEpO2Z1bmN0aW9uIGllKGUpewpyZXR1cm4gcy5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOmwoKShzZS5zZXBhcmF0b3IsZS5jbGFzc05hbWUpfSl9dmFyIG9lPW4oNzMwMDA5KSxhZT1uKDY5NDkwOSkscmU9big1NzA2MDMpLGxlPW4oMTI0NjU2KTtjb25zdCBjZT0oMCx5LnJlZ2lzdHJ5Q29udGV4dFR5cGUpKCksdWU9bmV3IHJlLlRyYW5zbGF0ZWRTdHJpbmcoInRvZ2dsZSBhdXRvIHNjYWxlIixvLnQobnVsbCx2b2lkIDAsbig1OTkxNDEpKSk7dmFyIGRlPW4oNDUwMTYpLGhlPW4oNDA4Nzc1KSxtZT1uKDE3OTc3MSkscGU9big3MjAwNzIpO2NvbnN0IGdlPXsxOnZvaWQgMCwyOm4oNDc0MzQzKSwzOm4oMTAxMTU3KSw0Om4oODkyNDkxKSw1Om4oNDMwNDkxKSw2Om4oMzUyMDg1KSw4Om4oNjkxNTcyKX07dmFyIGJlPW4oNjU5ODc4KSx2ZT1uKDcxODU1MyksZmU9big5OTU3MTkpLHllPW4oNDY1MTM3KSxfZT1uKDg0MzcwMik7Y29uc3QgQ2U9KDAseS5yZWdpc3RyeUNvbnRleHRUeXBlKSgpO2NsYXNzIHhlIGV4dGVuZHMgcy5QdXJlQ29tcG9uZW50e2NvbnN0cnVjdG9yKGUsdCl7c3VwZXIoZSx0KSx0aGlzLl9oYW5kbGVDaGFydFNlbGVjdD0oKT0+e2NvbnN0e2NoYXJ0OmUsb25TZWxlY3Q6dH09dGhpcy5wcm9wcztlLnJlcXVlc3RGdWxsc2NyZWVuKCksdCYmdCgpfSx0aGlzLl9oYW5kbGVBY3RpdmVDaGFydENoYW5nZT0oKT0+dGhpcy5mb3JjZVVwZGF0ZSgpLCgwLHkudmFsaWRhdGVSZWdpc3RyeSkodCx7Y2hhcnRXaWRnZXRDb2xsZWN0aW9uOmEuYW55LmlzUmVxdWlyZWR9KX1jb21wb25lbnREaWRNb3VudCgpe2NvbnN0e2NoYXJ0V2lkZ2V0Q29sbGVjdGlvbjplfT10aGlzLmNvbnRleHQ7ZS5hY3RpdmVDaGFydFdpZGdldC5zdWJzY3JpYmUodGhpcy5faGFuZGxlQWN0aXZlQ2hhcnRDaGFuZ2UpfWNvbXBvbmVudFdpbGxVbm1vdW50KCl7Y29uc3R7Y2hhcnRXaWRnZXRDb2xsZWN0aW9uOmV9PXRoaXMuY29udGV4dDtlLmFjdGl2ZUNoYXJ0V2lkZ2V0LnVuc3Vic2NyaWJlKHRoaXMuX2hhbmRsZUFjdGl2ZUNoYXJ0Q2hhbmdlKX1yZW5kZXIoKXtjb25zdHtjaGFydDplLHdpZHRoOnQsaGVpZ2h0Om59PXRoaXMucHJvcHMse2NoYXJ0V2lkZ2V0Q29sbGVjdGlvbjppfT10aGlzLmNvbnRleHQsbz1pLmFjdGl2ZUNoYXJ0V2lkZ2V0LnZhbHVlKCk9PT1lO2xldCBhLHI7aWYoZS5oYXNNb2RlbCgpKXtjb25zdCB0PSgwLGMuZW5zdXJlRGVmaW5lZCkoZS5tb2RlbCgpLm1haW5TZXJpZXMoKSk7YT10LnN5bWJvbCgpLHI9dC5pbnRlcnZhbCgpfWVsc2V7Y29uc3QgdD1lLm1haW5TZXJpZXNQcm9wZXJ0aWVzKCkuY2hpbGRzKCk7YT10LnN5bWJvbC52YWx1ZSgpLHI9dC5pbnRlcnZhbC52YWx1ZSgpfXJldHVybiBzLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpsKCkoX2Uuc3dhdGNoLG8mJl9lLmFjdGl2ZSksc3R5bGU6e21heFdpZHRoOnQsd2lkdGg6dCxoZWlnaHQ6bn0sb25DbGljazp0aGlzLl9oYW5kbGVDaGFydFNlbGVjdH0scy5jcmVhdGVFbGVtZW50KHMuRnJhZ21lbnQsbnVsbCxzLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpfZS5zd2F0Y2hJbm5lcn0scy5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6bCgpKF9lLnRleHQsbyYmX2UuYWN0aXZlKX0sYSkpLHMuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOmwoKShfZS5yZXNvbHV0aW9uLG8mJl9lLmFjdGl2ZSl9LCgwLHllLmdldFRyYW5zbGF0ZWRSZXNvbHV0aW9uKShyKSkpKX19eGUuY29udGV4dFR5cGU9Q2U7dmFyIEVlLFNlPW4oMjU1MzQzKSxBZT1uKDk3ODg3Nyk7IWZ1bmN0aW9uKGUpe2VbZS5JdGVtc1BhZGRpbmc9Ml09Ikl0ZW1zUGFkZGluZyIsZVtlLkJvdHRvbVRvb2xiYXJIZWlnaHQ9MzldPSJCb3R0b21Ub29sYmFySGVpZ2h0In0oRWV8fChFZT17fSkpO2NvbnN0IHdlPW8udChudWxsLHtjb250ZXh0OiJhY3Rpb24ifSxuKDEyNzgyMCkpLE1lPSgwLHkucmVnaXN0cnlDb250ZXh0VHlwZSkoKTtjbGFzcyBrZSBleHRlbmRzIHMuUHVyZUNvbXBvbmVudHtjb25zdHJ1Y3RvcihlLHQpe3N1cGVyKGUsdCksdGhpcy5fcHJldmVudFBob25lTGF5b3V0QnV0dG9uQ2xpY2s9KCk9Pntjb25zdHtvbkNsb3NlOmV9PXRoaXMucHJvcHMse3Jlc2l6ZXJEZXRhY2hlcjp0LGNoYXJ0V2lkZ2V0Q29sbGVjdGlvbjpufT10aGlzLmNvbnRleHQ7bi5zZXRWaWV3TW9kZShoZS5Db2xsZWN0aW9uVmlld01vZGUuTXVsdGljaGFydCksdC5leGl0RnVsbHNjcmVlbigpLGUmJmUoKX0sKDAseS52YWxpZGF0ZVJlZ2lzdHJ5KSh0LHtvbkNvbnRlbnRCb3hDaGFuZ2VkOmEuYW55LmlzUmVxdWlyZWQsY29tcHV0ZUNvbnRlbnRCb3g6YS5hbnkuaXNSZXF1aXJlZCxjaGFydFdpZGdldENvbGxlY3Rpb246YS5hbnkuaXNSZXF1aXJlZCxyZXNpemVyRGV0YWNoZXI6YS5hbnkuaXNSZXF1aXJlZH0pfWNvbXBvbmVudERpZE1vdW50KCl7Y29uc3R7b25Db250ZW50Qm94Q2hhbmdlZDplfT10aGlzLmNvbnRleHQ7ZS5zdWJzY3JpYmUodGhpcyx0aGlzLmZvcmNlVXBkYXRlKX1jb21wb25lbnRXaWxsVW5tb3VudCgpe2NvbnN0e29uQ29udGVudEJveENoYW5nZWQ6ZX09dGhpcy5jb250ZXh0O2UudW5zdWJzY3JpYmUodGhpcyx0aGlzLmZvcmNlVXBkYXRlKX1yZW5kZXIoKXtjb25zdHtvbkNsb3NlOmV9PXRoaXMucHJvcHMse2NoYXJ0V2lkZ2V0Q29sbGVjdGlvbjp0LGNvbXB1dGVDb250ZW50Qm94Om59PXRoaXMuY29udGV4dCx7dG9wOmksbGVmdDpvLGhlaWdodDphLHdpZHRoOnJ9PW4oKSxjPXBlLmxheW91dHNbdC5sYXlvdXQudmFsdWUoKV0uY291bnQsdT10LmdldEFsbCgpLnNsaWNlKDAsYyksZD1hLTIsaD1yKzQsbT1oPGQscD11Lmxlbmd0aD4zLGc9cD8yOjEsYj1NYXRoLmNlaWwodS5sZW5ndGgvZyksdj1tP2c6YixmPW0/YjpnLHk9cHx8IW0/KGgtNCp2KS92OnZvaWQgMCxfPXB8fG0/KGQtNCpmKS9mOnZvaWQgMDtyZXR1cm4gcy5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6QWUuY29udGFpbmVyfSxzLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpBZS5zd2F0Y2hDb250YWluZXJCYWNrZHJvcCxzdHlsZTp7dG9wOmksbGVmdDpvLGhlaWdodDphKzM5LAp3aWR0aDpyfX0pLHMuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOkFlLmJhY2tkcm9wfSkscy5jcmVhdGVFbGVtZW50KHZlLk91dHNpZGVFdmVudCx7Y2xpY2s6ITAsaGFuZGxlcjplfSwodD0+cy5jcmVhdGVFbGVtZW50KCJzcGFuIix7cmVmOnR9LHMuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOmwoKShBZS5zd2F0Y2hDb250YWluZXIsbSYmIXAmJkFlLmNvbHVtbixwJiZBZS50d29Db2x1bW5zKSxzdHlsZTp7dG9wOmksbGVmdDpvLGhlaWdodDpkLHdpZHRoOmh9fSx1Lm1hcCgoKHQsbik9PnMuY3JlYXRlRWxlbWVudCh4ZSx7a2V5Om4sd2lkdGg6eSxoZWlnaHQ6XyxjaGFydDp0LG9uU2VsZWN0OmV9KSkpKSxzLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpBZS5ib3R0b21Ub29sYmFyQ29udGFpbmVyLHN0eWxlOnt0b3A6aSthLGxlZnQ6byxoZWlnaHQ6Mzksd2lkdGg6cn19LHMuY3JlYXRlRWxlbWVudChmZS5Ub29sV2lkZ2V0QnV0dG9uLHtjbGFzc05hbWU6QWUuYm90dG9tVG9vbGJhckJ1dHRvbixpc0FjdGl2ZTohMCxpY29uOmdlW2NdLHRpdGxlOndlLG9uQ2xpY2s6ZX0pLHMuY3JlYXRlRWxlbWVudChmZS5Ub29sV2lkZ2V0QnV0dG9uLHtpY29uOlNlLGNsYXNzTmFtZTpBZS5ib3R0b21Ub29sYmFyQnV0dG9uLG9uQ2xpY2s6dGhpcy5fcHJldmVudFBob25lTGF5b3V0QnV0dG9uQ2xpY2t9KSkpKSkpfX1rZS5jb250ZXh0VHlwZT1NZTtjb25zdCBUZT0oMCxiZS5tYWtlT3ZlcmxhcGFibGUpKGtlKSxSZT0iT1BFTl9NT0JJTEVfQ0hBUlRfUElDS0VSX0NPTU1BTkQiLE5lPSJDTE9TRV9NT0JJTEVfQ0hBUlRfUElDS0VSX0NPTU1BTkQiLEJlPW8udChudWxsLHZvaWQgMCxuKDE3NjQxNikpLExlPSgwLHkucmVnaXN0cnlDb250ZXh0VHlwZSkoKTtjbGFzcyBXZSBleHRlbmRzIHMuUHVyZUNvbXBvbmVudHtjb25zdHJ1Y3RvcihlLHQpe3N1cGVyKGUsdCksdGhpcy5faGFuZGxlQ2xpY2s9KCk9Pntjb25zdHtpc09wZW5lZDplfT10aGlzLnN0YXRlLHQ9ZT8ibW9iaWxlQ2hhcnRQaWNrZXJDbG9zZSI6Im1vYmlsZUNoYXJ0UGlja2VyT3BlbiI7bWUuZW1pdCh0KSx0aGlzLnNldFN0YXRlKHtpc09wZW5lZDohZX0pfSx0aGlzLl9oYW5kbGVMYXlvdXRDaGFuZ2U9ZT0+e3RoaXMuc2V0U3RhdGUoe2xheW91dENoYXJ0c0NvdW50OnBlLmxheW91dHNbZV0uY291bnR9KX0sdGhpcy5faGFuZGxlTGF5b3V0Q2hhbmdlR2xvYmFsT3Blbj0oKT0+e3RoaXMuc2V0U3RhdGUoe2lzT3BlbmVkOiEwfSl9LHRoaXMuX2hhbmRsZUxheW91dENoYW5nZUdsb2JhbENsb3NlPSgpPT57dGhpcy5zZXRTdGF0ZSh7aXNPcGVuZWQ6ITF9KX0sKDAseS52YWxpZGF0ZVJlZ2lzdHJ5KSh0LHtjaGFydFdpZGdldENvbGxlY3Rpb246YS5hbnkuaXNSZXF1aXJlZH0pO2NvbnN0e2NoYXJ0V2lkZ2V0Q29sbGVjdGlvbjpufT10O3RoaXMuc3RhdGU9e2lzT3BlbmVkOiExLGxheW91dENoYXJ0c0NvdW50OnBlLmxheW91dHNbbi5sYXlvdXQudmFsdWUoKV0uY291bnR9fWNvbXBvbmVudERpZE1vdW50KCl7Y29uc3R7Y2hhcnRXaWRnZXRDb2xsZWN0aW9uOmV9PXRoaXMuY29udGV4dDtlLmxheW91dC5zdWJzY3JpYmUodGhpcy5faGFuZGxlTGF5b3V0Q2hhbmdlKSxtZS5zdWJzY3JpYmUoUmUsdGhpcy5faGFuZGxlTGF5b3V0Q2hhbmdlR2xvYmFsT3BlbixudWxsKSxtZS5zdWJzY3JpYmUoTmUsdGhpcy5faGFuZGxlTGF5b3V0Q2hhbmdlR2xvYmFsQ2xvc2UsbnVsbCl9Y29tcG9uZW50V2lsbFVubW91bnQoKXtjb25zdHtjaGFydFdpZGdldENvbGxlY3Rpb246ZX09dGhpcy5jb250ZXh0O2UubGF5b3V0LnVuc3Vic2NyaWJlKHRoaXMuX2hhbmRsZUxheW91dENoYW5nZSksbWUudW5zdWJzY3JpYmUoUmUsdGhpcy5faGFuZGxlTGF5b3V0Q2hhbmdlR2xvYmFsT3BlbixudWxsKSxtZS51bnN1YnNjcmliZShOZSx0aGlzLl9oYW5kbGVMYXlvdXRDaGFuZ2VHbG9iYWxDbG9zZSxudWxsKX1yZW5kZXIoKXtjb25zdHtjbGFzc05hbWU6ZX09dGhpcy5wcm9wcyx7aXNPcGVuZWQ6dCxsYXlvdXRDaGFydHNDb3VudDpufT10aGlzLnN0YXRlLGk9KDAsYy5lbnN1cmVEZWZpbmVkKShnZVtuXSk7cmV0dXJuIHMuY3JlYXRlRWxlbWVudChzLkZyYWdtZW50LG51bGwscy5jcmVhdGVFbGVtZW50KGZlLlRvb2xXaWRnZXRCdXR0b24se2ljb246aSxjbGFzc05hbWU6bCgpKCJhcHBseS1jb21tb24tdG9vbHRpcCIsZSksdGl0bGU6QmUsb25DbGljazp0aGlzLl9oYW5kbGVDbGlja30pLHMuY3JlYXRlRWxlbWVudChUZSx7aXNPcGVuZWQ6dCxvbkNsb3NlOnRoaXMuX2hhbmRsZUNsaWNrfSkpfX1XZS5jb250ZXh0VHlwZT1MZTt2YXIgUGU9big0OTcwMTgpO2NvbnN0IE9lPSgwLHkucmVnaXN0cnlDb250ZXh0VHlwZSkoKTt2YXIgRGU9big5OTgxNTgpLEZlPW4oNTE4NzUpLGplPW4oMTk5MTcyKSx6ZT1uKDQ4Mzc4MyksSWU9big1NjkzOTgpLEhlPW4oOTQ4MDMzKTtjb25zdCBWZT0oMCxJZS5pc0ZlYXR1cmVFbmFibGVkKSgic3VwcG9ydF9vdmVybmlnaHRfc2Vzc2lvbiIpLFVlPW5ldyByZS5UcmFuc2xhdGVkU3RyaW5nKCJjaGFuZ2Ugc2Vzc2lvbiIsby50KG51bGwsdm9pZCAwLG4oNzIzNDI2KSkpLHFlPXtoaW50Om8udChudWxsLHZvaWQgMCxuKDEwOTk1NikpLGhlYWRlck1lbnVUZXh0Om8udChudWxsLHZvaWQgMCxuKDEwOTk1NikpfSxLZT0oMCxMLmhvdEtleVNlcmlhbGl6ZSkoe2tleXM6WygwLFAuaHVtYW5SZWFkYWJsZU1vZGlmaWVycykoUC5Nb2RpZmllcnMuQWx0LCExKSwoMCxQLmh1bWFuUmVhZGFibGVNb2RpZmllcnMpKFAuTW9kaWZpZXJzLlNoaWZ0LCExKSwiRSJdLHRleHQ6InswfSArIHsxfSArIHsyfSJ9KSxHZT0oMCx5LnJlZ2lzdHJ5Q29udGV4dFR5cGUpKCk7Y2xhc3MgJGUgZXh0ZW5kcyBzLlB1cmVDb21wb25lbnR7Y29uc3RydWN0b3IoZSx0KXtzdXBlcihlLHQpLCgwLHkudmFsaWRhdGVSZWdpc3RyeSkodCx7Y2hhcnRXaWRnZXQ6YS5hbnkuaXNSZXF1aXJlZCxjaGFydEFwaUluc3RhbmNlOmEuYW55LmlzUmVxdWlyZWR9KSx0aGlzLnN0YXRlPXthdmFpbGFibGVTZXNzaW9uczpbXX19Y29tcG9uZW50RGlkTW91bnQoKXsKY29uc3R7Y2hhcnRXaWRnZXQ6ZX09dGhpcy5jb250ZXh0O2Uud2l0aE1vZGVsKG51bGwsKCgpPT57Y29uc3QgdD1lLm1vZGVsKCk7dC5tb2RlbCgpLm1haW5TZXJpZXMoKS5kYXRhRXZlbnRzKCkuc3ltYm9sUmVzb2x2ZWQoKS5zdWJzY3JpYmUodGhpcyx0aGlzLnVwZGF0ZVNlc3Npb25CdXR0b24pLHQubW9kZWwoKS5tYWluU2VyaWVzKCkucHJvcGVydGllcygpLmNoaWxkcygpLnNlc3Npb25JZC5zdWJzY3JpYmUodGhpcyx0aGlzLnVwZGF0ZVNlc3Npb25CdXR0b24pLHRoaXMudXBkYXRlU2Vzc2lvbkJ1dHRvbigpfSkpfWNvbXBvbmVudFdpbGxVbm1vdW50KCl7Y29uc3R7Y2hhcnRXaWRnZXQ6ZX09dGhpcy5jb250ZXh0O2Uud2l0aE1vZGVsKG51bGwsKCgpPT57Y29uc3QgdD1lLm1vZGVsKCk7dC5tb2RlbCgpLm1haW5TZXJpZXMoKS5kYXRhRXZlbnRzKCkuc3ltYm9sUmVzb2x2ZWQoKS51bnN1YnNjcmliZSh0aGlzLHRoaXMudXBkYXRlU2Vzc2lvbkJ1dHRvbiksdC5tb2RlbCgpLm1haW5TZXJpZXMoKS5wcm9wZXJ0aWVzKCkuY2hpbGRzKCkuc2Vzc2lvbklkLnVuc3Vic2NyaWJlKHRoaXMsdGhpcy51cGRhdGVTZXNzaW9uQnV0dG9uKX0pKX1yZW5kZXIoKXtjb25zdHtjbGFzc05hbWU6ZSx3aXRoTWVudTp0fT10aGlzLnByb3BzLHtzZXNzaW9uTmFtZTpuLHNlc3Npb25EZXNjcmlwdGlvbjppfT10aGlzLnN0YXRlO3JldHVybiBzLmNyZWF0ZUVsZW1lbnQoZC5Ub29sYmFyTWVudUJ1dHRvbix7YXJyb3c6ITEsaXNEaXNhYmxlZDohdCxjb250ZW50Om4sY2xhc3NOYW1lOmUsY2xvc2VPbkNsaWNrT3V0c2lkZTohMCx0b29sdGlwOnQ/aTp2b2lkIDAsaG90S2V5OktlLCJkYXRhLW5hbWUiOiJzZXNzaW9uLW1lbnUiLHZlcnRpY2FsRHJvcERpcmVjdGlvbjpoLlZlcnRpY2FsRHJvcERpcmVjdGlvbi5Gcm9tQm90dG9tVG9Ub3AsdmVydGljYWxBdHRhY2hFZGdlOmguVmVydGljYWxBdHRhY2hFZGdlLlRvcCxvbkNsaWNrOnRoaXMuX3RyYWNrQ2xpY2t9LHRoaXMuX21lbnVJdGVtcygpKX11cGRhdGVTZXNzaW9uQnV0dG9uKCl7Y29uc3R7Y2hhcnRXaWRnZXQ6ZX09dGhpcy5jb250ZXh0O2lmKCFlLm1vZGVsKCkpcmV0dXJuO2NvbnN0IHQ9ZS5tb2RlbCgpLm1haW5TZXJpZXMoKS5zeW1ib2xJbmZvKCk7aWYobnVsbD09PXQpcmV0dXJuO2NvbnN0IG49dC5zdWJzZXNzaW9uX2lkLHM9KHQuc3Vic2Vzc2lvbnM/LmZpbHRlcigoZT0+IWUucHJpdmF0ZSYmKFZlfHwiMjRoIiE9PWUuaWQpKSk/P1tdKS5zbGljZSgpLnNvcnQoemUuY29tcGFyZVN1YnNlc3Npb25zRm9yTWVudSksaT1zLmZpbmQoKGU9PmUuaWQ9PT1uKSk7dGhpcy5zZXRTdGF0ZSh7c2Vzc2lvbklkOm4sc2Vzc2lvbk5hbWU6KDAsemUudHJhbnNsYXRlU2Vzc2lvblNob3J0RGVzY3JpcHRpb24pKGk/LmRlc2NyaXB0aW9ufHwiIiksc2Vzc2lvbkRlc2NyaXB0aW9uOigwLHplLnRyYW5zbGF0ZVNlc3Npb25EZXNjcmlwdGlvbikoaT8uZGVzY3JpcHRpb258fCIiLHQudHlwZSksYXZhaWxhYmxlU2Vzc2lvbnM6cyxzeW1ib2xUeXBlOnQudHlwZX0pfV9tZW51SXRlbXMoKXtpZighdGhpcy5wcm9wcy53aXRoTWVudSlyZXR1cm5bXTtjb25zdHtjaGFydFdpZGdldDplfT10aGlzLmNvbnRleHQse2F2YWlsYWJsZVNlc3Npb25zOnQsc3ltYm9sVHlwZTpufT10aGlzLnN0YXRlO2lmKCFlLm1vZGVsKCkpcmV0dXJuW107Y29uc3QgaT1lLm1vZGVsKCkubWFpblNlcmllcygpLG89W3MuY3JlYXRlRWxlbWVudChqZS5Ub29sV2lkZ2V0TWVudVN1bW1hcnkse2tleToiaGVhZGVyX21lbnVfdGV4dCIsY2xhc3NOYW1lOkhlLmhlYWRlck1lbnVUZXh0fSxxZS5oZWFkZXJNZW51VGV4dC50b1VwcGVyQ2FzZSgpKV07Zm9yKGNvbnN0IGEgb2YgdCl7Y29uc3QgdD17Y2F0ZWdvcnk6IlNldFNlc3Npb24iLGV2ZW50OmEuaWR9LHI9KCk9PntlLm1vZGVsKCkuc2V0UHJvcGVydHkoaS5wcm9wZXJ0aWVzKCkuY2hpbGRzKCkuc2Vzc2lvbklkLGEuaWQsVWUpfTtvLnB1c2gocy5jcmVhdGVFbGVtZW50KGcuQWNjZXNzaWJsZU1lbnVJdGVtLHtrZXk6YS5pZCxsYWJlbDooMCx6ZS50cmFuc2xhdGVTZXNzaW9uRGVzY3JpcHRpb24pKGEuZGVzY3JpcHRpb24sbiksaXNBY3RpdmU6dGhpcy5zdGF0ZS5zZXNzaW9uSWQ9PT1hLmlkLHRyYWNrRXZlbnRPYmplY3Q6dCxvbkNsaWNrOnJ9KSl9cmV0dXJuIG99X3RyYWNrQ2xpY2soKXsoMCxNLnRyYWNrQnV0dG9uQ2xpY2spKCJib3R0b20gdG9vbGJhciIsInNlc3Npb24iKX19JGUuY29udGV4dFR5cGU9R2U7dmFyIFplPW4oNjg4NjMyKSxZZT1uKDMxODk3NCk7Y29uc3QgSmU9KDAseS5yZWdpc3RyeUNvbnRleHRUeXBlKSgpLFFlPW5ldyByZS5UcmFuc2xhdGVkU3RyaW5nKCJhZGp1c3QgZm9yIGNvbnRyYWN0IGNoYW5nZXMiLG8udChudWxsLHZvaWQgMCxuKDQ0MzQzMSkpKTtjb25zdCBYZT0oMCx5LnJlZ2lzdHJ5Q29udGV4dFR5cGUpKCksZXQ9bmV3IHJlLlRyYW5zbGF0ZWRTdHJpbmcoInVzZSBzZXR0bGVtZW50IGFzIGNsb3NlIG9uIGRhaWx5IGludGVydmFsIixvLnQobnVsbCx2b2lkIDAsbigxNTc5MCkpKTtjb25zdCB0dD1uZXcgcmUuVHJhbnNsYXRlZFN0cmluZygiYWRqdXN0IGRhdGEgZm9yIGRpdmlkZW5kcyIsby50KG51bGwsdm9pZCAwLG4oNzg3MzA3KSkpLG50PSgwLHkucmVnaXN0cnlDb250ZXh0VHlwZSkoKTtjb25zdCBzdD0oMCx5LnJlZ2lzdHJ5Q29udGV4dFR5cGUpKCk7Y2xhc3MgaXQgZXh0ZW5kcyBzLlB1cmVDb21wb25lbnR7Y29uc3RydWN0b3IoZSx0KXtzdXBlcihlLHQpLHRoaXMuX2hhbmRsZUNsaWNrPSgpPT57Y29uc3R7cmVzaXplckRldGFjaGVyOmUsY2hhcnRXaWRnZXRDb2xsZWN0aW9uOnR9PXRoaXMuY29udGV4dDt0LnNldFZpZXdNb2RlKGhlLkNvbGxlY3Rpb25WaWV3TW9kZS5NdWx0aWNoYXJ0KSxlLmV4aXRGdWxsc2NyZWVuKCl9LCgwLHkudmFsaWRhdGVSZWdpc3RyeSkodCx7Y2hhcnRXaWRnZXRDb2xsZWN0aW9uOmEuYW55LmlzUmVxdWlyZWQscmVzaXplckRldGFjaGVyOmEuYW55LmlzUmVxdWlyZWR9KX1yZW5kZXIoKXtjb25zdHtjbGFzc05hbWU6ZX09dGhpcy5wcm9wcwo7cmV0dXJuIHMuY3JlYXRlRWxlbWVudChmZS5Ub29sV2lkZ2V0QnV0dG9uLHtpY29uOlNlLGNsYXNzTmFtZTplLG9uQ2xpY2s6dGhpcy5faGFuZGxlQ2xpY2t9KX19aXQuY29udGV4dFR5cGU9c3Q7dmFyIG90LGF0PW4oNDcwODYzKSxydD1uKDcyNTg3NyksbHQ9big5ODU4NzMpOyFmdW5jdGlvbihlKXtlW2UuTWluU3BhY2U9MF09Ik1pblNwYWNlIn0ob3R8fChvdD17fSkpO2NvbnN0IGN0PXtleHRMYWJlbDpvLnQobnVsbCx2b2lkIDAsbigyMDc0MTEpKSxleHRIaW50Om8udChudWxsLHZvaWQgMCxuKDE3NDE0OCkpLHBlcmNlbnRhZ2VIaW50Om8udChudWxsLHZvaWQgMCxuKDQzNDgzMSkpLGxvZ0xhYmVsOm8udChudWxsLHtjb250ZXh0OiJzY2FsZSJ9LG4oMjM4NDY0KSksbG9nSGludDpvLnQobnVsbCx2b2lkIDAsbig5NTM1MTkpKSxhdXRvTGFiZWw6by50KG51bGwse2NvbnRleHQ6InNjYWxlIn0sbigxMDA3MTIpKSxhdXRvSGludDpvLnQobnVsbCx2b2lkIDAsbigyODQwMjMpKSxtYXhpbWl6ZUNoYXJ0SGludDpvLnQobnVsbCx2b2lkIDAsbig1NTEzMzIpKSxyZXN0b3JlQ2hhcnRIaW50Om8udChudWxsLHZvaWQgMCxuKDY3MTgwOSkpLGFkakxhYmVsOm8udChudWxsLHtjb250ZXh0OiJhZGp1c3RtZW50cyJ9LG4oNzg2OTc4KSksYWRqSGludDpvLnQobnVsbCx2b2lkIDAsbig0OTcxNTUpKSxhZGpGb3JEaXZpZGVuZHNPbmx5SGludDpvLnQobnVsbCx2b2lkIDAsbigxNTI5ODQpKSxhZGpGb3JTcGxpdHNPbmx5SGludDpvLnQobnVsbCx2b2lkIDAsbig0ODI0ODIpKSxiYWNrQWRqdXN0TGFiZWw6by50KG51bGwse2NvbnRleHQ6ImFkanVzdG1lbnRzIn0sbig3MzA4NDApKSxiYWNrQWRqdXN0SGludDpvLnQobnVsbCx2b2lkIDAsbig2MDQ4MTUpKSxzZXR0bGVtZW50QXNDbG9zZUxhYmVsOm8udChudWxsLHtjb250ZXh0OiJhZGp1c3RtZW50cyJ9LG4oMzM3OTU3KSksc2V0dGxlbWVudEFzQ2xvc2VIaW50Om8udChudWxsLHZvaWQgMCxuKDIxODEzMikpfSx1dD17YW55OmN0LmFkakhpbnQsZGl2aWRlbmRzOmN0LmFkakZvckRpdmlkZW5kc09ubHlIaW50LHNwbGl0czpjdC5hZGpGb3JTcGxpdHNPbmx5SGludCxub25lOiIifTt2YXIgZHQsaHQ7IWZ1bmN0aW9uKGUpe2UuU2VwYXJhdG9yPSJzZXBhcmF0b3IiLGUuVGltZVpvbmVzPSJ0aW1lWm9uZXMiLGUuU2Vzc2lvbklkPSJzZXNzaW9uIixlLlBlcmNlbnRhZ2U9InBlcmNlbnRhZ2UiLGUuTG9nYXJpdGhtPSJsb2dhcml0aG0iLGUuQXV0bz0iYXV0byIsZS5MYXlvdXRGdWxsc2NyZWVuPSJsYXlvdXRGdWxsc2NyZWVuIixlLkZ1bGxzY3JlZW49ImZ1bGxzY3JlZW4iLGUuQWRqPSJhZGoiLGUuQmFja0Fkaj0iYmFja0FkaiIsZS5TZXR0bGVtZW50QXNDbG9zZT0ic2V0dGxlbWVudEFzQ2xvc2UiLGUuUHJldmVudFBob25lTGF5b3V0PSJwcmV2ZW50UGhvbmVMYXlvdXQifShkdHx8KGR0PXt9KSksZnVuY3Rpb24oZSl7ZS5FeHBhbmRlZD0iZXhwYW5kZWQiLGUuQ29sbGFwc2VkPSJjb2xsYXBzZWQiLGUuSGlkZGVuPSJoaWRkZW4ifShodHx8KGh0PXt9KSk7Y29uc3QgbXQ9KDAsYWUuYmluZFNjYWxlTG9nYXJpdGhtKSgoZT0+cy5jcmVhdGVFbGVtZW50KFkuVG9vbGJhckJ1dHRvbix7dGV4dDpjdC5sb2dMYWJlbCx0b29sdGlwOmN0LmxvZ0hpbnQsY2xhc3NOYW1lOmUuY2xhc3NOYW1lLGlzQWN0aXZlOmUuaXNMb2dhcml0aG0sImFyaWEtcHJlc3NlZCI6ZS5pc0xvZ2FyaXRobSxvbkNsaWNrOmt0KGUub25DbGljaywibG9nIixlLmlzTG9nYXJpdGhtKSxvbk1vdXNlRW50ZXI6ZS5vbk1vdXNlRW50ZXIsb25Nb3VzZUxlYXZlOmUub25Nb3VzZUxlYXZlLCJkYXRhLW5hbWUiOiJsb2dhcml0aG0ifSkpKSxwdD0oZ3Q9ZT0+cy5jcmVhdGVFbGVtZW50KFkuVG9vbGJhckJ1dHRvbix7dGV4dDpjdC5hdXRvTGFiZWwsdG9vbHRpcDpjdC5hdXRvSGludCxjbGFzc05hbWU6ZS5jbGFzc05hbWUsaXNBY3RpdmU6ZS5pc0F1dG8sImFyaWEtcHJlc3NlZCI6ZS5pc0F1dG8sb25DbGljazprdChlLm9uQ2xpY2ssImF1dG8iLGUuaXNBdXRvKSxvbk1vdXNlRW50ZXI6ZS5vbk1vdXNlRW50ZXIsb25Nb3VzZUxlYXZlOmUub25Nb3VzZUxlYXZlLCJkYXRhLW5hbWUiOiJhdXRvIn0pLChidD1jbGFzcyBleHRlbmRzIHMuUHVyZUNvbXBvbmVudHtjb25zdHJ1Y3RvcihlLHQpe3N1cGVyKGUsdCksdGhpcy5fcHJpY2VTY2FsZT1udWxsLHRoaXMuX2hhbmRsZVNlbGVjdD0oKT0+e2NvbnN0IGU9dGhpcy5jb250ZXh0LmNoYXJ0V2lkZ2V0Lm1vZGVsKCksdD0oMCxjLmVuc3VyZU5vdE51bGwpKHRoaXMuc3RhdGUuc2VyaWVzKS5wcmljZVNjYWxlKCksbj10Lm1vZGUoKTtlLnNldFByaWNlU2NhbGVNb2RlKHthdXRvU2NhbGU6IW4uYXV0b1NjYWxlfSx0LHVlKX0sKDAseS52YWxpZGF0ZVJlZ2lzdHJ5KSh0LHtjaGFydFdpZGdldDphLmFueS5pc1JlcXVpcmVkfSksdGhpcy5zdGF0ZT17aXNBY3RpdmU6ITEsc2VyaWVzOm51bGx9LHRoaXMuX3ByaWNlQXhpc0hpZ2hsaWdodGVyPW5ldyBsZS5QcmljZUF4aXNIaWdobGlnaHRlcih0aGlzLmNvbnRleHQuY2hhcnRXaWRnZXQsKCgpPT50aGlzLl9wcmljZVNjYWxlKSwiYXV0byIpfWNvbXBvbmVudERpZE1vdW50KCl7Y29uc3QgZT10aGlzLmNvbnRleHQuY2hhcnRXaWRnZXQ7ZS53aXRoTW9kZWwobnVsbCwoKCk9Pntjb25zdCB0PWUubW9kZWwoKS5tYWluU2VyaWVzKCksbj10LnByaWNlU2NhbGUoKTt0aGlzLl9oYW5kbGVNYWluU2VyaWVzUHJpY2VTY2FsZUNoYW5nZWQobiksdC5wcmljZVNjYWxlQ2hhbmdlZCgpLnN1YnNjcmliZSh0aGlzLHRoaXMuX2hhbmRsZU1haW5TZXJpZXNQcmljZVNjYWxlQ2hhbmdlZCksdGhpcy5faGFuZGxlTW9kZUNoYW5nZWQoe30sbi5tb2RlKCkpLHRoaXMuc2V0U3RhdGUoe2lzQWN0aXZlOnQucHJpY2VTY2FsZSgpLmlzQXV0b1NjYWxlKCksc2VyaWVzOnR9KX0pKX1jb21wb25lbnRXaWxsVW5tb3VudCgpe2NvbnN0IGU9dGhpcy5jb250ZXh0LmNoYXJ0V2lkZ2V0O2Uud2l0aE1vZGVsKG51bGwsKCgpPT57CmUubW9kZWwoKS5tYWluU2VyaWVzKCkucHJpY2VTY2FsZUNoYW5nZWQoKS51bnN1YnNjcmliZSh0aGlzLHRoaXMuX2hhbmRsZU1haW5TZXJpZXNQcmljZVNjYWxlQ2hhbmdlZCl9KSksbnVsbCE9PXRoaXMuX3ByaWNlU2NhbGUmJih0aGlzLl9wcmljZVNjYWxlLm1vZGVDaGFuZ2VkKCkudW5zdWJzY3JpYmVBbGwodGhpcyksdGhpcy5fcHJpY2VTY2FsZT1udWxsKSx0aGlzLl9wcmljZUF4aXNIaWdobGlnaHRlci5kZXN0cm95KCl9cmVuZGVyKCl7Y29uc3R7Y2xhc3NOYW1lOmV9PXRoaXMucHJvcHMse2lzQWN0aXZlOnQsc2VyaWVzOm59PXRoaXMuc3RhdGU7cmV0dXJuIHMuY3JlYXRlRWxlbWVudChndCx7Li4udGhpcy5fcHJpY2VBeGlzSGlnaGxpZ2h0ZXIuaGFuZGxlcnMoKSxjbGFzc05hbWU6ZSxpc0F1dG86dCxpc0Rpc2FibGVkOm51bGw9PT1uLG9uQ2xpY2s6dGhpcy5faGFuZGxlU2VsZWN0fSl9X2hhbmRsZU1haW5TZXJpZXNQcmljZVNjYWxlQ2hhbmdlZChlKXtudWxsIT09dGhpcy5fcHJpY2VTY2FsZSYmdGhpcy5fcHJpY2VTY2FsZS5tb2RlQ2hhbmdlZCgpLnVuc3Vic2NyaWJlKHRoaXMsdGhpcy5faGFuZGxlTW9kZUNoYW5nZWQpLHRoaXMuX3ByaWNlU2NhbGU9ZSx0aGlzLl9wcmljZVNjYWxlLm1vZGVDaGFuZ2VkKCkuc3Vic2NyaWJlKHRoaXMsdGhpcy5faGFuZGxlTW9kZUNoYW5nZWQpLHRoaXMuX2hhbmRsZU1vZGVDaGFuZ2VkKHt9LGUubW9kZSgpKX1faGFuZGxlTW9kZUNoYW5nZWQoZSx0KXtCb29sZWFuKHQuYXV0b1NjYWxlKSE9PXRoaXMuc3RhdGUuaXNBY3RpdmUmJnRoaXMuc2V0U3RhdGUoe2lzQWN0aXZlOkJvb2xlYW4odC5hdXRvU2NhbGUpfSl9fSkuY29udGV4dFR5cGU9Y2UsYnQpO3ZhciBndCxidDtjb25zdCB2dD0oMCxkZS5iaW5kU2NhbGVQZXJjZW50YWdlKSgoZT0+cy5jcmVhdGVFbGVtZW50KFkuVG9vbGJhckJ1dHRvbix7aWNvbjphdCx0b29sdGlwOmN0LnBlcmNlbnRhZ2VIaW50LGNsYXNzTmFtZTplLmNsYXNzTmFtZSxpc0FjdGl2ZTplLmlzUGVyY2VudGFnZSwiYXJpYS1wcmVzc2VkIjplLmlzUGVyY2VudGFnZSxpc0Rpc2FibGVkOmUuaXNEaXNhYmxlZCxvbkNsaWNrOmt0KGUub25DbGljaywicGVyY2VudCIsZS5pc1BlcmNlbnRhZ2UpLG9uTW91c2VFbnRlcjplLm9uTW91c2VFbnRlcixvbk1vdXNlTGVhdmU6ZS5vbk1vdXNlTGVhdmUsImRhdGEtbmFtZSI6InBlcmNlbnRhZ2UifSkpKTtsZXQgZnQseXQsX3Q7ZnQ9ZnVuY3Rpb24oZSl7dmFyIHQ7cmV0dXJuKHQ9Y2xhc3MgZXh0ZW5kcyBzLlB1cmVDb21wb25lbnR7Y29uc3RydWN0b3IoZSx0KXtzdXBlcihlLHQpLHRoaXMuX2hhbmRsZUFkanVzdENoYW5nZT0oKT0+e2NvbnN0IGU9KDAsYy5lbnN1cmVOb3ROdWxsKSh0aGlzLnN0YXRlLnVuZG9Nb2RlbCkubW9kZWwoKTt0aGlzLnNldFN0YXRlKHthbGxvd2VkQWRqdXN0bWVudDplLmFsbG93ZWRBZGp1c3RtZW50KCkudmFsdWUoKSxhZGp1c3RGb3JEaXZpZGVuZHNFbmFibGVkOmUuYWRqdXN0Rm9yRGl2aWRlbmRzRW5hYmxlZCgpLnZhbHVlKCksYWRqdXN0Rm9yRGl2aWRlbmRzQXZhaWxhYmlsaXR5OmUuYWRqdXN0Rm9yRGl2aWRlbmRzQXZhaWxhYmlsaXR5KCkudmFsdWUoKX0pfSx0aGlzLl9oYW5kbGVTZWxlY3Q9KCk9Pntjb25zdCBlPXRoaXMuY29udGV4dC5jaGFydFdpZGdldC5tb2RlbCgpLHQ9ZS5tYWluU2VyaWVzKCkucHJvcGVydGllcygpLmNoaWxkcygpLG49KDAsYy5lbnN1cmVEZWZpbmVkKSh0LmRpdmlkZW5kc0FkanVzdG1lbnQpO2Uuc2V0UHJvcGVydHkobiwhbi52YWx1ZSgpLHR0KX0sKDAseS52YWxpZGF0ZVJlZ2lzdHJ5KSh0LHtjaGFydFdpZGdldDphLmFueS5pc1JlcXVpcmVkfSksdGhpcy5zdGF0ZT17YWRqdXN0Rm9yRGl2aWRlbmRzQXZhaWxhYmlsaXR5OjAsYWRqdXN0Rm9yRGl2aWRlbmRzRW5hYmxlZDohMSxhbGxvd2VkQWRqdXN0bWVudDoibm9uZSIsdW5kb01vZGVsOm51bGx9fWNvbXBvbmVudERpZE1vdW50KCl7Y29uc3QgZT10aGlzLmNvbnRleHQuY2hhcnRXaWRnZXQ7ZS53aXRoTW9kZWwobnVsbCwoKCk9Pntjb25zdCB0PWUubW9kZWwoKSxuPXQubW9kZWwoKTtuLmFkanVzdEZvckRpdmlkZW5kc0F2YWlsYWJpbGl0eSgpLnN1YnNjcmliZSh0aGlzLl9oYW5kbGVBZGp1c3RDaGFuZ2UpLG4uYWRqdXN0Rm9yRGl2aWRlbmRzRW5hYmxlZCgpLnN1YnNjcmliZSh0aGlzLl9oYW5kbGVBZGp1c3RDaGFuZ2UpLG4uYWxsb3dlZEFkanVzdG1lbnQoKS5zdWJzY3JpYmUodGhpcy5faGFuZGxlQWRqdXN0Q2hhbmdlKSx0aGlzLnNldFN0YXRlKHthZGp1c3RGb3JEaXZpZGVuZHNBdmFpbGFiaWxpdHk6bi5hZGp1c3RGb3JEaXZpZGVuZHNBdmFpbGFiaWxpdHkoKS52YWx1ZSgpLGFkanVzdEZvckRpdmlkZW5kc0VuYWJsZWQ6bi5hZGp1c3RGb3JEaXZpZGVuZHNFbmFibGVkKCkudmFsdWUoKSxhbGxvd2VkQWRqdXN0bWVudDpuLmFsbG93ZWRBZGp1c3RtZW50KCkudmFsdWUoKSx1bmRvTW9kZWw6dH0pfSkpfWNvbXBvbmVudFdpbGxVbm1vdW50KCl7Y29uc3QgZT10aGlzLmNvbnRleHQuY2hhcnRXaWRnZXQ7ZS53aXRoTW9kZWwobnVsbCwoKCk9Pntjb25zdCB0PWUubW9kZWwoKS5tb2RlbCgpO3QuYWRqdXN0Rm9yRGl2aWRlbmRzQXZhaWxhYmlsaXR5KCkudW5zdWJzY3JpYmUodGhpcy5faGFuZGxlQWRqdXN0Q2hhbmdlKSx0LmFkanVzdEZvckRpdmlkZW5kc0VuYWJsZWQoKS51bnN1YnNjcmliZSh0aGlzLl9oYW5kbGVBZGp1c3RDaGFuZ2UpLHQuYWxsb3dlZEFkanVzdG1lbnQoKS51bnN1YnNjcmliZSh0aGlzLl9oYW5kbGVBZGp1c3RDaGFuZ2UpfSkpfXJlbmRlcigpe2NvbnN0e2NsYXNzTmFtZTp0fT10aGlzLnByb3BzO3JldHVybiBzLmNyZWF0ZUVsZW1lbnQoZSx7Y2xhc3NOYW1lOnQsYWxsb3dlZEFkanVzdG1lbnQ6dGhpcy5zdGF0ZS5hbGxvd2VkQWRqdXN0bWVudCxhZGp1c3RGb3JEaXZpZGVuZHNFbmFibGVkOnRoaXMuc3RhdGUuYWRqdXN0Rm9yRGl2aWRlbmRzRW5hYmxlZCxhZGp1c3RGb3JEaXZpZGVuZHNBdmFpbGFiaWxpdHk6dGhpcy5zdGF0ZS5hZGp1c3RGb3JEaXZpZGVuZHNBdmFpbGFiaWxpdHksb25DbGljazp0aGlzLl9oYW5kbGVTZWxlY3R9KX0KfSkuY29udGV4dFR5cGU9bnQsdH0oKGU9Pntjb25zdCB0PWUuYWRqdXN0Rm9yRGl2aWRlbmRzQXZhaWxhYmlsaXR5PDM7cmV0dXJuIHMuY3JlYXRlRWxlbWVudChZLlRvb2xiYXJCdXR0b24se3RleHQ6Y3QuYWRqTGFiZWwsdG9vbHRpcDp1dFtlLmFsbG93ZWRBZGp1c3RtZW50XSxjbGFzc05hbWU6ZS5jbGFzc05hbWUsaXNBY3RpdmU6ZS5hZGp1c3RGb3JEaXZpZGVuZHNFbmFibGVkLCJhcmlhLXByZXNzZWQiOmUuYWRqdXN0Rm9yRGl2aWRlbmRzRW5hYmxlZCxpc0Rpc2FibGVkQXBwZWFyYW5jZTp0LG9uQ2xpY2s6dD92b2lkIDA6a3QoZS5vbkNsaWNrLCJhZGoiLGUuYWRqdXN0Rm9yRGl2aWRlbmRzRW5hYmxlZCksImRhdGEtbmFtZSI6ImFkaiJ9KX0pKSx5dD1mdW5jdGlvbihlKXt2YXIgdDtyZXR1cm4odD1jbGFzcyBleHRlbmRzIHMuUHVyZUNvbXBvbmVudHtjb25zdHJ1Y3RvcihlLHQpe3N1cGVyKGUsdCksdGhpcy5faGFuZGxlQ2xpY2s9KCk9Pntjb25zdCBlPXRoaXMuY29udGV4dC5jaGFydFdpZGdldC5tb2RlbCgpLHQ9KDAsYy5lbnN1cmVOb3ROdWxsKSh0aGlzLnN0YXRlLnNlcmllcykucHJvcGVydGllcygpLmNoaWxkcygpOygwLFcudHJhY2tFdmVudCkoIkNvbnRpbnVvdXMgZGF0YSBvcHRpb25zIiwiQWRqdXN0IGZvciBjb250cmFjdCBjaGFuZ2VzIC0gVG9vbGJhciIsdC5iYWNrQWRqdXN0bWVudC52YWx1ZSgpPyJPZmYiOiJPbiIpLGUuc2V0UHJvcGVydHkodC5iYWNrQWRqdXN0bWVudCwhdC5iYWNrQWRqdXN0bWVudC52YWx1ZSgpLFFlKX0sKDAseS52YWxpZGF0ZVJlZ2lzdHJ5KSh0LHtjaGFydFdpZGdldDphLmFueS5pc1JlcXVpcmVkfSksdGhpcy5zdGF0ZT17YmFja0FkanVzdG1lbnRBdmFpbGFibGU6ITEsYmFja0FkanVzdG1lbnRFbmFibGVkOiExLHNlcmllczpudWxsfX1jb21wb25lbnREaWRNb3VudCgpe2NvbnN0IGU9dGhpcy5jb250ZXh0LmNoYXJ0V2lkZ2V0O2Uud2l0aE1vZGVsKG51bGwsKCgpPT57Y29uc3QgdD1lLm1vZGVsKCkubWFpblNlcmllcygpLG49dC5wcm9wZXJ0aWVzKCkuY2hpbGRzKCk7bi5iYWNrQWRqdXN0bWVudC5zdWJzY3JpYmUodGhpcyx0aGlzLl9oYW5kbGVCYWNrQWRqdXN0bWVudENoYW5nZSksdC5pc0JhY2tBZGp1c3RtZW50Rm9yYmlkZGVuUHJvcGVydHkoKS5zdWJzY3JpYmUodGhpcyx0aGlzLl9oYW5kbGVCYWNrQWRqdXN0bWVudENoYW5nZSk7Y29uc3Qgcz0hdC5pc0JhY2tBZGp1c3RtZW50Rm9yYmlkZGVuUHJvcGVydHkoKS52YWx1ZSgpO3RoaXMuc2V0U3RhdGUoe2JhY2tBZGp1c3RtZW50RW5hYmxlZDpzJiZuLmJhY2tBZGp1c3RtZW50LnZhbHVlKCksYmFja0FkanVzdG1lbnRBdmFpbGFibGU6cyxzZXJpZXM6dH0pfSkpfWNvbXBvbmVudFdpbGxVbm1vdW50KCl7Y29uc3QgZT10aGlzLmNvbnRleHQuY2hhcnRXaWRnZXQ7ZS53aXRoTW9kZWwobnVsbCwoKCk9Pntjb25zdCB0PWUubW9kZWwoKS5tYWluU2VyaWVzKCk7dC5wcm9wZXJ0aWVzKCkuY2hpbGRzKCkuYmFja0FkanVzdG1lbnQudW5zdWJzY3JpYmVBbGwodGhpcyksdC5pc0JhY2tBZGp1c3RtZW50Rm9yYmlkZGVuUHJvcGVydHkoKS51bnN1YnNjcmliZUFsbCh0aGlzKX0pKX1yZW5kZXIoKXtjb25zdHtjbGFzc05hbWU6dH09dGhpcy5wcm9wcyx7YmFja0FkanVzdG1lbnRBdmFpbGFibGU6bixiYWNrQWRqdXN0bWVudEVuYWJsZWQ6aSxzZXJpZXM6b309dGhpcy5zdGF0ZTtyZXR1cm4gcy5jcmVhdGVFbGVtZW50KGUse2NsYXNzTmFtZTp0LGJhY2tBZGp1c3RtZW50RW5hYmxlZDppLGJhY2tBZGp1c3RtZW50QXZhaWxhYmxlOm51bGwhPT1vJiZuLG9uQ2xpY2s6dGhpcy5faGFuZGxlQ2xpY2t9KX1faGFuZGxlQmFja0FkanVzdG1lbnRDaGFuZ2UoKXtjb25zdCBlPSgwLGMuZW5zdXJlTm90TnVsbCkodGhpcy5zdGF0ZS5zZXJpZXMpLHQ9ZS5wcm9wZXJ0aWVzKCkuY2hpbGRzKCksbj0hZS5pc0JhY2tBZGp1c3RtZW50Rm9yYmlkZGVuUHJvcGVydHkoKS52YWx1ZSgpO3RoaXMuc2V0U3RhdGUoe2JhY2tBZGp1c3RtZW50RW5hYmxlZDpuJiZ0LmJhY2tBZGp1c3RtZW50LnZhbHVlKCksYmFja0FkanVzdG1lbnRBdmFpbGFibGU6bn0pfX0pLmNvbnRleHRUeXBlPUplLHR9KChlPT5zLmNyZWF0ZUVsZW1lbnQoWS5Ub29sYmFyQnV0dG9uLHt0ZXh0OmN0LmJhY2tBZGp1c3RMYWJlbCx0b29sdGlwOmN0LmJhY2tBZGp1c3RIaW50LGNsYXNzTmFtZTplLmNsYXNzTmFtZSxpc0FjdGl2ZTplLmJhY2tBZGp1c3RtZW50RW5hYmxlZCwiYXJpYS1wcmVzc2VkIjplLmJhY2tBZGp1c3RtZW50RW5hYmxlZCxpc0Rpc2FibGVkOiFlLmJhY2tBZGp1c3RtZW50QXZhaWxhYmxlLG9uQ2xpY2s6ZS5vbkNsaWNrLCJkYXRhLW5hbWUiOiJiYWNrQWRqIn0pKSksX3Q9ZnVuY3Rpb24oZSl7dmFyIHQ7cmV0dXJuKHQ9Y2xhc3MgZXh0ZW5kcyBzLlB1cmVDb21wb25lbnR7Y29uc3RydWN0b3IoZSx0KXtzdXBlcihlLHQpLHRoaXMuX2hhbmRsZUNsaWNrPSgpPT57Y29uc3QgZT10aGlzLmNvbnRleHQuY2hhcnRXaWRnZXQubW9kZWwoKSx0PSgwLGMuZW5zdXJlTm90TnVsbCkodGhpcy5zdGF0ZS5zZXJpZXMpLnByb3BlcnRpZXMoKS5jaGlsZHMoKTsoMCxXLnRyYWNrRXZlbnQpKCJDb250aW51b3VzIGRhdGEgb3B0aW9ucyIsIlVzZSBzZXR0bGVtZW50IGFzIGNsb3NlIG9uIGRhaWx5IGludGVydmFsIC0gVG9vbGJhciIsdC5zZXR0bGVtZW50QXNDbG9zZS52YWx1ZSgpPyJPZmYiOiJPbiIpLGUuc2V0UHJvcGVydHkodC5zZXR0bGVtZW50QXNDbG9zZSwhdC5zZXR0bGVtZW50QXNDbG9zZS52YWx1ZSgpLGV0KX0sKDAseS52YWxpZGF0ZVJlZ2lzdHJ5KSh0LHtjaGFydFdpZGdldDphLmFueS5pc1JlcXVpcmVkfSksdGhpcy5zdGF0ZT17c2V0dGxlbWVudEFzQ2xvc2VBdmFpbGFibGU6ITEsc2V0dGxlbWVudEFzQ2xvc2VFbmFibGVkOiExLHNlcmllczpudWxsfX1jb21wb25lbnREaWRNb3VudCgpe2NvbnN0IGU9dGhpcy5jb250ZXh0LmNoYXJ0V2lkZ2V0O2Uud2l0aE1vZGVsKG51bGwsKCgpPT57Y29uc3QgdD1lLm1vZGVsKCkubWFpblNlcmllcygpLG49dC5wcm9wZXJ0aWVzKCkuY2hpbGRzKCkKO24uc2V0dGxlbWVudEFzQ2xvc2Uuc3Vic2NyaWJlKHRoaXMsdGhpcy5faGFuZGxlVXNlU2V0dGxlbWVudEFzQ2xvc2VDaGFuZ2UpLHQuaXNTZXR0bGVtZW50QXNDbG9zZUZvcmJpZGRlblByb3BlcnR5KCkuc3Vic2NyaWJlKHRoaXMsdGhpcy5faGFuZGxlVXNlU2V0dGxlbWVudEFzQ2xvc2VDaGFuZ2UpO2NvbnN0IHM9IXQuaXNTZXR0bGVtZW50QXNDbG9zZUZvcmJpZGRlblByb3BlcnR5KCkudmFsdWUoKTt0aGlzLnNldFN0YXRlKHtzZXR0bGVtZW50QXNDbG9zZUVuYWJsZWQ6cyYmbi5zZXR0bGVtZW50QXNDbG9zZS52YWx1ZSgpLHNldHRsZW1lbnRBc0Nsb3NlQXZhaWxhYmxlOnMsc2VyaWVzOnR9KX0pKX1jb21wb25lbnRXaWxsVW5tb3VudCgpe2NvbnN0IGU9dGhpcy5jb250ZXh0LmNoYXJ0V2lkZ2V0O2Uud2l0aE1vZGVsKG51bGwsKCgpPT57Y29uc3QgdD1lLm1vZGVsKCkubWFpblNlcmllcygpO3QucHJvcGVydGllcygpLmNoaWxkcygpLnNldHRsZW1lbnRBc0Nsb3NlLnVuc3Vic2NyaWJlQWxsKHRoaXMpLHQuaXNTZXR0bGVtZW50QXNDbG9zZUZvcmJpZGRlblByb3BlcnR5KCkudW5zdWJzY3JpYmVBbGwodGhpcyl9KSl9cmVuZGVyKCl7Y29uc3R7Y2xhc3NOYW1lOnR9PXRoaXMucHJvcHMse3NldHRsZW1lbnRBc0Nsb3NlQXZhaWxhYmxlOm4sc2V0dGxlbWVudEFzQ2xvc2VFbmFibGVkOmksc2VyaWVzOm99PXRoaXMuc3RhdGU7cmV0dXJuIHMuY3JlYXRlRWxlbWVudChlLHtjbGFzc05hbWU6dCxzZXR0bGVtZW50QXNDbG9zZUVuYWJsZWQ6aSxzZXR0bGVtZW50QXNDbG9zZUF2YWlsYWJsZTpudWxsIT09byYmbixvbkNsaWNrOnRoaXMuX2hhbmRsZUNsaWNrfSl9X2hhbmRsZVVzZVNldHRsZW1lbnRBc0Nsb3NlQ2hhbmdlKCl7Y29uc3QgZT0oMCxjLmVuc3VyZU5vdE51bGwpKHRoaXMuc3RhdGUuc2VyaWVzKSx0PWUucHJvcGVydGllcygpLmNoaWxkcygpLG49IWUuaXNTZXR0bGVtZW50QXNDbG9zZUZvcmJpZGRlblByb3BlcnR5KCkudmFsdWUoKTt0aGlzLnNldFN0YXRlKHtzZXR0bGVtZW50QXNDbG9zZUVuYWJsZWQ6biYmdC5zZXR0bGVtZW50QXNDbG9zZS52YWx1ZSgpLHNldHRsZW1lbnRBc0Nsb3NlQXZhaWxhYmxlOm59KX19KS5jb250ZXh0VHlwZT1YZSx0fSgoZT0+cy5jcmVhdGVFbGVtZW50KFkuVG9vbGJhckJ1dHRvbix7dGV4dDpjdC5zZXR0bGVtZW50QXNDbG9zZUxhYmVsLHRvb2x0aXA6Y3Quc2V0dGxlbWVudEFzQ2xvc2VIaW50LGNsYXNzTmFtZTplLmNsYXNzTmFtZSxpc0FjdGl2ZTplLnNldHRsZW1lbnRBc0Nsb3NlRW5hYmxlZCwiYXJpYS1wcmVzc2VkIjplLnNldHRsZW1lbnRBc0Nsb3NlRW5hYmxlZCxpc0Rpc2FibGVkOiFlLnNldHRsZW1lbnRBc0Nsb3NlQXZhaWxhYmxlLG9uQ2xpY2s6ZS5vbkNsaWNrLCJkYXRhLW5hbWUiOiJzZXR0bGVtZW50QXNDbG9zZSJ9KSkpO2NvbnN0IEN0PSgwLEwuaG90S2V5U2VyaWFsaXplKSh7a2V5czpbKDAsUC5odW1hblJlYWRhYmxlTW9kaWZpZXJzKShQLk1vZGlmaWVycy5BbHQsITEpLCJFbnRlciJdLHRleHQ6InswfSArIHsxfSJ9KSx4dD1mdW5jdGlvbihlKXt2YXIgdDtyZXR1cm4odD1jbGFzcyBleHRlbmRzIHMuUHVyZUNvbXBvbmVudHtjb25zdHJ1Y3RvcihlLHQpe3N1cGVyKGUsdCksdGhpcy5faGFuZGxlQ2xpY2s9ZT0+e2NvbnN0e3Jlc2l6ZXJEZXRhY2hlcjp0LGNoYXJ0V2lkZ2V0Q29sbGVjdGlvbjpufT10aGlzLmNvbnRleHQ7ZS5zaGlmdEtleSYmdC5kZXRhY2hhYmxlLnZhbHVlKCk/dC5kZXRhY2goKTp0aGlzLnN0YXRlLmlzRnVsbHNjcmVlbj90LmV4aXRGdWxsc2NyZWVuKCk6KG4uc2V0Vmlld01vZGUoaGUuQ29sbGVjdGlvblZpZXdNb2RlLkZvcmNlRnVsbHNjcmVlbiksdC5yZXF1ZXN0RnVsbHNjcmVlbigpKX0sdGhpcy5faGFuZGxlTGF5b3V0Q2hhbmdlPWU9Pnt0aGlzLnNldFN0YXRlKHtpc0Z1bGxzY3JlZW46ZX0pfSx0aGlzLl9oYW5kbGVQaG9uZVNpemU9KCk9Pnt0aGlzLnNldFN0YXRlKHtpc0NoYW5nZUxheW91dEJ1dHRvbjp0aGlzLl9pc0NoYW5nZUxheW91dEJ1dHRvbigpfSl9LCgwLHkudmFsaWRhdGVSZWdpc3RyeSkodCx7Y2hhcnRXaWRnZXRDb2xsZWN0aW9uOmEuYW55LmlzUmVxdWlyZWQscmVzaXplckRldGFjaGVyOmEuYW55LmlzUmVxdWlyZWR9KTtjb25zdHtyZXNpemVyRGV0YWNoZXI6bn09dDt0aGlzLnN0YXRlPXtpc0Z1bGxzY3JlZW46bi5mdWxsc2NyZWVuLnZhbHVlKCksaXNDaGFuZ2VMYXlvdXRCdXR0b246dGhpcy5faXNDaGFuZ2VMYXlvdXRCdXR0b24oKX19Y29tcG9uZW50RGlkTW91bnQoKXtjb25zdHtyZXNpemVyRGV0YWNoZXI6ZSxjaGFydFdpZGdldENvbGxlY3Rpb246dH09dGhpcy5jb250ZXh0LHttb2JpbGVDaGFuZ2VMYXlvdXRFbmFibGVkOm59PXRoaXMucHJvcHM7ZS5mdWxsc2NyZWVuLnN1YnNjcmliZSh0aGlzLl9oYW5kbGVMYXlvdXRDaGFuZ2UpLG4mJih0LnZpZXdNb2RlLnN1YnNjcmliZSh0aGlzLl9oYW5kbGVQaG9uZVNpemUpLFBlLm1lZGlhU3RhdGUub24oImNoYW5nZURldmljZSIsdGhpcy5faGFuZGxlUGhvbmVTaXplKSl9Y29tcG9uZW50V2lsbFVubW91bnQoKXtjb25zdHtyZXNpemVyRGV0YWNoZXI6ZSxjaGFydFdpZGdldENvbGxlY3Rpb246dH09dGhpcy5jb250ZXh0LHttb2JpbGVDaGFuZ2VMYXlvdXRFbmFibGVkOm59PXRoaXMucHJvcHM7ZS5mdWxsc2NyZWVuLnVuc3Vic2NyaWJlKHRoaXMuX2hhbmRsZUxheW91dENoYW5nZSksbiYmKHQudmlld01vZGUudW5zdWJzY3JpYmUodGhpcy5faGFuZGxlUGhvbmVTaXplKSxQZS5tZWRpYVN0YXRlLm9mZigiY2hhbmdlRGV2aWNlIix0aGlzLl9oYW5kbGVQaG9uZVNpemUpKX1yZW5kZXIoKXtjb25zdHtjbGFzc05hbWU6dH09dGhpcy5wcm9wcyx7aXNGdWxsc2NyZWVuOm4saXNDaGFuZ2VMYXlvdXRCdXR0b246aX09dGhpcy5zdGF0ZTtyZXR1cm4gaT9zLmNyZWF0ZUVsZW1lbnQoV2Use2NsYXNzTmFtZTp0fSk6cy5jcmVhdGVFbGVtZW50KGUse2NsYXNzTmFtZTp0LGlzRnVsbHNjcmVlbjpuLG9uQ2xpY2s6dGhpcy5faGFuZGxlQ2xpY2t9KX1faXNDaGFuZ2VMYXlvdXRCdXR0b24oKXt7CmNvbnN0e2NoYXJ0V2lkZ2V0Q29sbGVjdGlvbjplfT10aGlzLmNvbnRleHQse21vYmlsZUNoYW5nZUxheW91dEVuYWJsZWQ6dH09dGhpcy5wcm9wcztyZXR1cm4gQm9vbGVhbih0KSYmUGUubWVkaWFTdGF0ZS5pc1Bob25lU2l6ZURldmljZSgpJiZlLnZpZXdNb2RlLnZhbHVlKCk9PT1oZS5Db2xsZWN0aW9uVmlld01vZGUuRm9yY2VGdWxsc2NyZWVufX19KS5jb250ZXh0VHlwZT1PZSx0fSgoZT0+cy5jcmVhdGVFbGVtZW50KFkuVG9vbGJhckJ1dHRvbix7aWNvbjplLmlzRnVsbHNjcmVlbj9TZTpydCx0b29sdGlwOmUuaXNGdWxsc2NyZWVuP2N0LnJlc3RvcmVDaGFydEhpbnQ6Y3QubWF4aW1pemVDaGFydEhpbnQsY2xhc3NOYW1lOmwoKShlLmNsYXNzTmFtZSxsdC5mdWxsc2NyZWVuQnV0dG9uKSxpc0FjdGl2ZTplLmlzRnVsbHNjcmVlbixvbkNsaWNrOmt0KGUub25DbGljaywibWF4aW1pemUgY2hhcnQiLGUuaXNGdWxsc2NyZWVuKSwiZGF0YS10b29sdGlwLWhvdGtleSI6Q3QsImRhdGEtbmFtZSI6ImxheW91dEZ1bGxzY3JlZW4ifSkpKSxFdD17bGF5b3V0RnVsbHNjcmVlbjohMCxwcmV2ZW50UGhvbmVMYXlvdXQ6ITB9LFN0PXtsYXlvdXRGdWxsc2NyZWVuOk51bWJlci5NSU5fU0FGRV9JTlRFR0VSLHByZXZlbnRQaG9uZUxheW91dDpOdW1iZXIuTUlOX1NBRkVfSU5URUdFUixmdWxsc2NyZWVuOk51bWJlci5NSU5fU0FGRV9JTlRFR0VSLHNlcGFyYXRvcjotMix0aW1lWm9uZXM6LTEsYXV0bzowLGxvZ2FyaXRobToxLHBlcmNlbnRhZ2U6MixzZXNzaW9uOjMsYWRqOjQsYmFja0Fkajo1LHNldHRsZW1lbnRBc0Nsb3NlOjZ9LEF0PSgoKT0+e2NvbnN0IGU9bmV3IE1hcDtyZXR1cm4gZS5zZXQobXQsImxvZ2FyaXRobSIpLGUuc2V0KHZ0LCJwZXJjZW50YWdlIiksZS5zZXQocHQsImF1dG8iKSxlLnNldCgkZSwic2Vzc2lvbiIpLHZvaWQgMCE9PXl0JiZlLnNldCh5dCwiYmFja0FkaiIpLHZvaWQgMCE9PV90JiZlLnNldChfdCwic2V0dGxlbWVudEFzQ2xvc2UiKSx2b2lkIDAhPT1mdCYmZS5zZXQoZnQsImFkaiIpLGUuc2V0KHh0LCJsYXlvdXRGdWxsc2NyZWVuIiksZS5zZXQoaXQsInByZXZlbnRQaG9uZUxheW91dCIpLFllLkNoZWNrTW9iaWxlLmFueSgpJiZlLnNldChaZS5Ub29sV2lkZ2V0RnVsbHNjcmVlbiwiZnVsbHNjcmVlbiIpLGV9KSgpLHd0PXsiMUQiOiIxZCIsIjVEIjoiNWQiLCIxTSI6IjFtIiwiM00iOiIzbSIsIjZNIjoiNm0iLFlURDoieXRkIiwiMTJNIjoiMXkiLCI2ME0iOiI1eSIsQUxMOiJhbGwifTtmdW5jdGlvbiBNdChlKXsoMCxXLnRyYWNrRXZlbnQpKCJHVUkiLCJDaGFydCBCb3R0b20gVG9vbGJhciIsZSl9ZnVuY3Rpb24ga3QoZSx0LG4pe3JldHVybiBzPT57ZShzKTt7Y29uc3QgZT1uPyJvZmYiOiJvbiI7KDAsTS50cmFja0J1dHRvbkNsaWNrKSgiYm90dG9tIHRvb2xiYXIiLHQsZSl9fX1jb25zdCBUdD17ZGF0ZVJhbmdlTW9kZToiaGlkZGVuIixub1JhbmdlczohMSxzZXBhcmF0b3I6ITAsdGltZVpvbmVzOiEwLGxheW91dEZ1bGxzY3JlZW46ITAscHJldmVudFBob25lTGF5b3V0OiEwLGF1dG86ITAsbG9nYXJpdGhtOiEwLHBlcmNlbnRhZ2U6ITAsc2Vzc2lvbjohMCxhZGo6ITAsYmFja0FkajohMCxzZXR0bGVtZW50QXNDbG9zZTohMCxmdWxsc2NyZWVuOiEwfSxSdD0oMCx5LnJlZ2lzdHJ5Q29udGV4dFR5cGUpKCk7Y2xhc3MgTnQgZXh0ZW5kcyBzLlB1cmVDb21wb25lbnR7Y29uc3RydWN0b3IoZSx0KXt2YXIgbixvO3N1cGVyKGUsdCksdGhpcy5fdGltZXpvbmVCdXR0b25SZWY9bnVsbCx0aGlzLl9sYXlvdXQ9T2JqZWN0LmFzc2lnbih7fSxUdCksdGhpcy5fcmFmPW51bGwsdGhpcy5fdG9vbGJhcj1udWxsLHRoaXMuX3JhbmdlRXhwYW5kZWQ9bnVsbCx0aGlzLl9yYW5nZUNvbGxhcHNlZD1udWxsLHRoaXMuX3Nlcmllc0NvbXBvbmVudHM9e30sdGhpcy5fcmVzaXplT2JzZXJ2ZXI9bnVsbCx0aGlzLl9pbmplY3Rvcj0obj0oKT0+dGhpcy5fbGF5b3V0LG89KGUsdCk9PnRoaXMuX3Nlcmllc0NvbXBvbmVudHNbdF09ZSwoZSx0LGkpPT57aWYocy5pc1ZhbGlkRWxlbWVudChlKSYmInN0cmluZyIhPXR5cGVvZiBlLnR5cGUpe2NvbnN0e3Byb3BzOnR9PWU7aWYoInN0cmluZyI9PXR5cGVvZiB0LmNsYXNzTmFtZSl7Y29uc3QgaT17Y2xhc3NOYW1lOnQuY2xhc3NOYW1lfSxhPW4oKSxyPSgwLGMuZW5zdXJlRGVmaW5lZCkoQXQuZ2V0KGUudHlwZSkpO3JldHVybiBzLmNyZWF0ZUVsZW1lbnQoImRpdiIse2tleTpudWxsPT09ZS5rZXk/dm9pZCAwOmUua2V5LGNsYXNzTmFtZTpsKCkobHQuaW5saW5lLGFbcl0mJmx0LmNvbGxhcHNlZCkscmVmOmU9Pm8oZSxyKSxvbkNsaWNrOigpPT5NdChyKX0scy5jbG9uZUVsZW1lbnQoZSxpKSl9fXJldHVybiBlfSksdGhpcy5fb25TeW1ib2xTb3VyY2VDb2xsZWN0aW9uQ2hhbmdlZD0oKT0+e3RoaXMuX3VwZGF0ZUJ1dHRvbnNWaXNpYmlsaXR5SW1wKCEwKX0sdGhpcy5fdXBkYXRlQnV0dG9uc1Zpc2liaWxpdHk9KCk9Pnt0aGlzLl91cGRhdGVCdXR0b25zVmlzaWJpbGl0eUltcCgpfSx0aGlzLl91cGRhdGVCdXR0b25zVmlzaWJpbGl0eUltcD1lPT57Y29uc3R7Y2hhcnRXaWRnZXQ6dH09dGhpcy5jb250ZXh0LG49dC5tb2RlbCgpLm1vZGVsKCkscz1uLm1haW5TZXJpZXMoKSxpPXMuc3ltYm9sSW5mbygpLG89IXMuaXNEV01Qcm9wZXJ0eSgpLnZhbHVlKCk7aWYocy5zeW1ib2xSZXNvbHZpbmdBY3RpdmUoKS52YWx1ZSgpKXJldHVybiB2b2lkIHRoaXMuX3NldFN0YXRlV2l0aFJlc2l6ZSh7aW50ZXJ2YWxBbGxvd3NTZXNzaW9uQnV0dG9uOm99LGUpO2NvbnN0IGE9KGk/LnN1YnNlc3Npb25zfHxbXSkuZmlsdGVyKChlPT4hZS5wcml2YXRlKSkubGVuZ3RoPjE7Y29uc3Qgcj0hcy5pc0JhY2tBZGp1c3RtZW50Rm9yYmlkZGVuUHJvcGVydHkoKS52YWx1ZSgpLGw9IXMuaXNTZXR0bGVtZW50QXNDbG9zZUZvcmJpZGRlblByb3BlcnR5KCkudmFsdWUoKTtpZihuLnN5bWJvbFNvdXJjZVJlc29sdmluZ0FjdGl2ZSgpLnZhbHVlKCkpcmV0dXJuIHZvaWQgdGhpcy5fc2V0U3RhdGVXaXRoUmVzaXplKHtpbnRlcnZhbEFsbG93c1Nlc3Npb25CdXR0b246bywKc3ltYm9sQWxsb3dzU2Vzc2lvbkJ1dHRvbjphLHN5bWJvbEFsbG93c0JhY2tBZGp1c3RtZW50OnIsc3ltYm9sQWxsb3dzU2V0dGxlbWVudEFzQ2xvc2U6bH0sZSk7Y29uc3QgYz1uLmFkanVzdEZvckRpdmlkZW5kc0F2YWlsYWJpbGl0eSgpLnZhbHVlKCk+MDt0aGlzLl9zZXRTdGF0ZVdpdGhSZXNpemUoe2ludGVydmFsQWxsb3dzU2Vzc2lvbkJ1dHRvbjpvLHN5bWJvbEFsbG93c1Nlc3Npb25CdXR0b246YSxzeW1ib2xBbGxvd3NCYWNrQWRqdXN0bWVudDpyLHN5bWJvbEFsbG93c1NldHRsZW1lbnRBc0Nsb3NlOmwsc3ltYm9sQWxsb3dzQWRqQnV0dG9uOmN9LGUpfSx0aGlzLl9oYW5kbGVGdWxsc2NyZWVuQ2hhbmdlPSgpPT57dGhpcy5zZXRTdGF0ZSh7aXNGdWxsc2NyZWVuOnRoaXMuY29udGV4dC5jaGFydFdpZGdldENvbGxlY3Rpb24uZnVsbHNjcmVlbigpLnZhbHVlKCl9KX0sdGhpcy5fcmVzaXplQnlSYWY9KCk9PntudWxsPT09dGhpcy5fcmFmJiYodGhpcy5fcmFmPXJlcXVlc3RBbmltYXRpb25GcmFtZSgoKCk9Pnt0aGlzLl9yZXNpemVIYW5kbGVyKCksdGhpcy5fcmFmPW51bGx9KSkpfSx0aGlzLl9yZXNpemVIYW5kbGVyPSgpPT57Y29uc3QgZT10aGlzLl9sYXlvdXQsdD0oMCxjLmVuc3VyZU5vdE51bGwpKHRoaXMuX3Rvb2xiYXIpLG49KDAsYy5lbnN1cmVOb3ROdWxsKSh0aGlzLl9yYW5nZUV4cGFuZGVkKSxzPShvPWZ1bmN0aW9uKGUpe2NvbnN0IHQ9e307cmV0dXJuIE9iamVjdC5rZXlzKGUpLmZvckVhY2goKG49Pntjb25zdCBzPWVbbl07aWYobnVsbCE9PXMpe2NvbnN0IGU9aS5maW5kRE9NTm9kZShzKTtudWxsIT09ZSYmKHRbbl09ZSl9fSkpLHR9KHRoaXMuX3Nlcmllc0NvbXBvbmVudHMpLE9iamVjdC5rZXlzKG8pLm1hcCgoZT0+KHtuYW1lOmUsd2lkdGg6b1tlXS5vZmZzZXRXaWR0aH0pKSkuc29ydCgoKGUsdCk9PlN0W2UubmFtZV0tU3RbdC5uYW1lXSkpKTt2YXIgbztjb25zdCBhPXQub2Zmc2V0V2lkdGgscj1zLnJlZHVjZSgoKGUsdCk9PmUrdC53aWR0aCksMCksbD1uLm9mZnNldFdpZHRoLHU9IUJvb2xlYW4obi50ZXh0Q29udGVudCksZD1hLXItbDw9MD8iY29sbGFwc2VkIjoiZXhwYW5kZWQiO2lmKE9iamVjdC5hc3NpZ24oZSx7ZGF0ZVJhbmdlTW9kZTpkLG5vUmFuZ2VzOnV9KSwiZXhwYW5kZWQiIT09ZCl7Y29uc3QgdD1hLSgwLGMuZW5zdXJlTm90TnVsbCkodGhpcy5fcmFuZ2VDb2xsYXBzZWQpLm9mZnNldFdpZHRoLTA7bGV0IG49MCxpPTA7Zm9yKGNvbnN0IG8gb2YgcyluKz1vLndpZHRoLG8ubmFtZSBpbiBFdD8oaSs9by53aWR0aCxPYmplY3QuYXNzaWduKGUse1tvLm5hbWVdOiExfSkpOk9iamVjdC5hc3NpZ24oZSx7W28ubmFtZV06dDw9bn0pO3Q8PWkmJk9iamVjdC5hc3NpZ24oZSx7ZGF0ZVJhbmdlTW9kZToiaGlkZGVuIn0pfWVsc2UgT2JqZWN0LmFzc2lnbihlLHtzZXBhcmF0b3I6ITEsdGltZVpvbmVzOiExLGxheW91dEZ1bGxzY3JlZW46ITEscHJldmVudFBob25lTGF5b3V0OiExLGF1dG86ITEsbG9nYXJpdGhtOiExLHBlcmNlbnRhZ2U6ITEsc2Vzc2lvbjohMSxhZGo6ITEsc2V0dGxlbWVudEFzQ2xvc2U6ITEsYmFja0FkajohMSxmdWxsc2NyZWVuOiExfSk7dGhpcy5fYXBwbHlSZXNpemluZygpfSx0aGlzLl9oYW5kbGVUaW1lem9uZUJ1dHRvblJlZj1lPT57dGhpcy5fdGltZXpvbmVCdXR0b25SZWY9ZX0sdGhpcy5faGFuZGxlTWVhc3VyZT0oKT0+e251bGwhPT10aGlzLl90b29sYmFyJiZ0aGlzLnJlc2l6ZVVJKCl9LHRoaXMuX2hhbmRsZUxheW91dEZ1bGxzY3JlZW5hYmxlQ2hhbmdlPWU9Pnt0aGlzLl9zZXRTdGF0ZVdpdGhSZXNpemUoe2lzTGF5b3V0RnVsbHNjcmVlbmFibGU6ZX0pLHRoaXMuX2hhbmRsZVByZXZlbnRQaG9uZUxheW91dEJ1dHRvblZpc2liaWxpdHkoKX0sdGhpcy5faGFuZGxlUHJldmVudFBob25lTGF5b3V0QnV0dG9uVmlzaWJpbGl0eT0oKT0+e3RoaXMuX3NldFN0YXRlV2l0aFJlc2l6ZSh7aXNQcmV2ZW50UGhvbmVMYXlvdXRCdXR0b246dGhpcy5faXNQcmV2ZW50UGhvbmVMYXlvdXRCdXR0b24oKX0pfSx0aGlzLl9oYW5kbGVUb29sYmFyUmVmPWU9PnRoaXMuX3Rvb2xiYXI9ZSx0aGlzLl9oYW5kbGVSYW5nZUNvbGxhcHNlZFJlZj1lPT50aGlzLl9yYW5nZUNvbGxhcHNlZD1lLHRoaXMuX2hhbmRsZVJhbmdlRXhwYW5kZWRSZWY9ZT0+e3RoaXMuX3VwZGF0ZVJlc2l6ZU9ic2VydmVyKHRoaXMuX3JhbmdlRXhwYW5kZWQsZSksdGhpcy5fcmFuZ2VFeHBhbmRlZD1lfSx0aGlzLl9oYW5kbGVUaW1lWm9uZXNSZWY9ZT0+e3RoaXMuX3VwZGF0ZVJlc2l6ZU9ic2VydmVyKHRoaXMuX3Nlcmllc0NvbXBvbmVudHMudGltZVpvbmVzLGUpLHRoaXMuX3Nlcmllc0NvbXBvbmVudHMudGltZVpvbmVzPWV9LHRoaXMuX2hhbmRsZVNlc3Npb25zUmVmPWU9Pnt0aGlzLl91cGRhdGVSZXNpemVPYnNlcnZlcih0aGlzLl9zZXJpZXNDb21wb25lbnRzLnNlc3Npb24sZSksdGhpcy5fc2VyaWVzQ29tcG9uZW50cy5zZXNzaW9uPWV9LHRoaXMuX2hhbmRsZVNlcGFyYXRvclJlZj1lPT57dGhpcy5fc2VyaWVzQ29tcG9uZW50cy5zZXBhcmF0b3I9ZX0sdGhpcy5fdXBkYXRlUmVzaXplT2JzZXJ2ZXI9KGUsdCk9Pnt0aGlzLl9yZXNpemVPYnNlcnZlciYmZSE9PXQmJihlJiZ0aGlzLl9yZXNpemVPYnNlcnZlci51bm9ic2VydmUoZSksdCYmdGhpcy5fcmVzaXplT2JzZXJ2ZXIub2JzZXJ2ZSh0KSl9LCgwLHkudmFsaWRhdGVSZWdpc3RyeSkodCx7b25Db250ZW50Qm94Q2hhbmdlZDphLmFueS5pc1JlcXVpcmVkLGNoYXJ0QXBpSW5zdGFuY2U6YS5hbnkuaXNSZXF1aXJlZCxjaGFydFdpZGdldDphLmFueS5pc1JlcXVpcmVkLGNoYXJ0V2lkZ2V0Q29sbGVjdGlvbjphLmFueS5pc1JlcXVpcmVkLHJlc2l6ZXJEZXRhY2hlcjphLmFueS5pc1JlcXVpcmVkfSk7Y29uc3R7cmVzaXplckRldGFjaGVyOnJ9PXRoaXMuY29udGV4dDt0aGlzLnN0YXRlPXtpc0xheW91dEZ1bGxzY3JlZW5hYmxlOnIuZnVsbHNjcmVlbmFibGUudmFsdWUoKSxpc1ByZXZlbnRQaG9uZUxheW91dEJ1dHRvbjp0aGlzLl9pc1ByZXZlbnRQaG9uZUxheW91dEJ1dHRvbigpLAppc0Z1bGxzY3JlZW46dGhpcy5jb250ZXh0LmNoYXJ0V2lkZ2V0Q29sbGVjdGlvbi5mdWxsc2NyZWVuKCkudmFsdWUoKX0sdGhpcy5fcmVzaXplT2JzZXJ2ZXI9bmV3IFJlc2l6ZU9ic2VydmVyKHRoaXMuX2hhbmRsZU1lYXN1cmUpfWNvbXBvbmVudERpZE1vdW50KCl7Y29uc3R7b25Db250ZW50Qm94Q2hhbmdlZDplLHJlc2l6ZXJEZXRhY2hlcjp0LGNoYXJ0V2lkZ2V0Q29sbGVjdGlvbjpuLGNoYXJ0V2lkZ2V0OnN9PXRoaXMuY29udGV4dDtlLnN1YnNjcmliZSh0aGlzLHRoaXMuX3Jlc2l6ZUJ5UmFmKSxuLmZ1bGxzY3JlZW4oKS5zdWJzY3JpYmUodGhpcy5faGFuZGxlRnVsbHNjcmVlbkNoYW5nZSksUGUubWVkaWFTdGF0ZS5vbigiY2hhbmdlRGV2aWNlIix0aGlzLl9oYW5kbGVQcmV2ZW50UGhvbmVMYXlvdXRCdXR0b25WaXNpYmlsaXR5KSxuLnZpZXdNb2RlLnN1YnNjcmliZSh0aGlzLl9oYW5kbGVQcmV2ZW50UGhvbmVMYXlvdXRCdXR0b25WaXNpYmlsaXR5KSx0LmZ1bGxzY3JlZW5hYmxlLnN1YnNjcmliZSh0aGlzLl9oYW5kbGVMYXlvdXRGdWxsc2NyZWVuYWJsZUNoYW5nZSkscy53aXRoTW9kZWwobnVsbCwoKCk9Pntjb25zdCBlPXMubW9kZWwoKSx0PWUubW9kZWwoKTtlLm1haW5TZXJpZXMoKS5pc0RXTVByb3BlcnR5KCkuc3Vic2NyaWJlKHRoaXMsdGhpcy5fdXBkYXRlQnV0dG9uc1Zpc2liaWxpdHkpLHQuc3ltYm9sU291cmNlUmVzb2x2aW5nQWN0aXZlKCkuc3Vic2NyaWJlKHRoaXMuX3VwZGF0ZUJ1dHRvbnNWaXNpYmlsaXR5KSx0LnN5bWJvbFNvdXJjZUNvbGxlY3Rpb25DaGFuZ2VkKCkuc3Vic2NyaWJlKHRoaXMsdGhpcy5fb25TeW1ib2xTb3VyY2VDb2xsZWN0aW9uQ2hhbmdlZCksZS5tYWluU2VyaWVzKCkuaXNCYWNrQWRqdXN0bWVudEZvcmJpZGRlblByb3BlcnR5KCkuc3Vic2NyaWJlKHRoaXMsdGhpcy5fdXBkYXRlQnV0dG9uc1Zpc2liaWxpdHkpLGUubWFpblNlcmllcygpLmlzU2V0dGxlbWVudEFzQ2xvc2VGb3JiaWRkZW5Qcm9wZXJ0eSgpLnN1YnNjcmliZSh0aGlzLHRoaXMuX3VwZGF0ZUJ1dHRvbnNWaXNpYmlsaXR5KSx0aGlzLl91cGRhdGVCdXR0b25zVmlzaWJpbGl0eSgpfSkpLHRoaXMudXBkYXRlVGltZXpvbmVzQnV0dG9uKCksdGhpcy5yZXNpemVVSSgpfWNvbXBvbmVudFdpbGxVbm1vdW50KCl7Y29uc3R7b25Db250ZW50Qm94Q2hhbmdlZDplLHJlc2l6ZXJEZXRhY2hlcjp0LGNoYXJ0V2lkZ2V0Q29sbGVjdGlvbjpuLGNoYXJ0V2lkZ2V0OnN9PXRoaXMuY29udGV4dDtuLmZ1bGxzY3JlZW4oKS51bnN1YnNjcmliZSh0aGlzLl9oYW5kbGVGdWxsc2NyZWVuQ2hhbmdlKSxlLnVuc3Vic2NyaWJlKHRoaXMsdGhpcy5fcmVzaXplQnlSYWYpLFBlLm1lZGlhU3RhdGUub2ZmKCJjaGFuZ2VEZXZpY2UiLHRoaXMuX2hhbmRsZVByZXZlbnRQaG9uZUxheW91dEJ1dHRvblZpc2liaWxpdHkpLG4udmlld01vZGUudW5zdWJzY3JpYmUodGhpcy5faGFuZGxlUHJldmVudFBob25lTGF5b3V0QnV0dG9uVmlzaWJpbGl0eSksdC5mdWxsc2NyZWVuYWJsZS51bnN1YnNjcmliZSh0aGlzLl9oYW5kbGVMYXlvdXRGdWxsc2NyZWVuYWJsZUNoYW5nZSksdGhpcy5fcmVzaXplT2JzZXJ2ZXI/LmRpc2Nvbm5lY3QoKSxzLndpdGhNb2RlbChudWxsLCgoKT0+e2NvbnN0IGU9cy5tb2RlbCgpLHQ9ZS5tb2RlbCgpO2UubWFpblNlcmllcygpLmlzRFdNUHJvcGVydHkoKS51bnN1YnNjcmliZSh0aGlzLHRoaXMuX3VwZGF0ZUJ1dHRvbnNWaXNpYmlsaXR5KSxlLm1haW5TZXJpZXMoKS5pc0JhY2tBZGp1c3RtZW50Rm9yYmlkZGVuUHJvcGVydHkoKS51bnN1YnNjcmliZSh0aGlzLHRoaXMuX3VwZGF0ZUJ1dHRvbnNWaXNpYmlsaXR5KSxlLm1haW5TZXJpZXMoKS5pc1NldHRsZW1lbnRBc0Nsb3NlRm9yYmlkZGVuUHJvcGVydHkoKS51bnN1YnNjcmliZSh0aGlzLHRoaXMuX3VwZGF0ZUJ1dHRvbnNWaXNpYmlsaXR5KSx0LnN5bWJvbFNvdXJjZUNvbGxlY3Rpb25DaGFuZ2VkKCkudW5zdWJzY3JpYmUodGhpcyx0aGlzLl9vblN5bWJvbFNvdXJjZUNvbGxlY3Rpb25DaGFuZ2VkKSx0LnN5bWJvbFNvdXJjZVJlc29sdmluZ0FjdGl2ZSgpLnVuc3Vic2NyaWJlKHRoaXMuX3VwZGF0ZUJ1dHRvbnNWaXNpYmlsaXR5KX0pKSxudWxsIT09dGhpcy5fcmFmJiYoY2FuY2VsQW5pbWF0aW9uRnJhbWUodGhpcy5fcmFmKSx0aGlzLl9yYWY9bnVsbCl9cmVuZGVyKCl7Y29uc3QgZT10aGlzLl9sYXlvdXQse3RpbWVGcmFtZXNXaWRnZXRFbmFibGVkOnQsdGltZVdpZGdldEVuYWJsZWQ6bixwZXJjZW50YWdlU2NhbGVCdXR0b25FbmFibGVkOmksbG9nU2NhbGVCdXR0b25FbmFibGVkOm8sYXV0b1NjYWxlQnV0dG9uRW5hYmxlZDphLGxheW91dEZ1bGxzY3JlZW5CdXR0b25FbmFibGVkOnJ9PXRoaXMucHJvcHM7cmV0dXJuIHMuY3JlYXRlRWxlbWVudChvZS5Ub29sYmFyLHtjbGFzc05hbWU6bHQudG9vbGJhcixvbkNvbnRleHRNZW51OkZlLnByZXZlbnREZWZhdWx0LHJlZjp0aGlzLl9oYW5kbGVUb29sYmFyUmVmfSx0JiZzLmNyZWF0ZUVsZW1lbnQoRGUuRnJhZ21lbnRNYXAsbnVsbCxzLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpsKCkobHQuZGF0ZVJhbmdlV3JhcHBlciwiY29sbGFwc2VkIiE9PWUuZGF0ZVJhbmdlTW9kZSYmbHQuY29sbGFwc2VkKSxyZWY6dGhpcy5faGFuZGxlUmFuZ2VDb2xsYXBzZWRSZWZ9LHMuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOmwoKShsdC5kYXRlUmFuZ2VDb2xsYXBzZWQpfSxzLmNyZWF0ZUVsZW1lbnQoTix7Z29Ub0RhdGVCdXR0b246dGhpcy5wcm9wcy5nb1RvRGF0ZUVuYWJsZWQsY2xhc3NOYW1lOmx0LmRhdGVSYW5nZX0pKSkscy5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6bCgpKGx0LmRhdGVSYW5nZVdyYXBwZXIsImV4cGFuZGVkIiE9PWUuZGF0ZVJhbmdlTW9kZSYmbHQuY29sbGFwc2VkLGUubm9SYW5nZXMmJmx0Lm5vcmFuZ2VzKSxyZWY6dGhpcy5faGFuZGxlUmFuZ2VFeHBhbmRlZFJlZn0scy5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6bCgpKGx0LmRhdGVSYW5nZUV4cGFuZGVkKX0scy5jcmVhdGVFbGVtZW50KEIuVG9vbFdpZGdldERhdGVSYW5nZSx7Cm9uU2VsZWN0UmFuZ2U6dGhpcy5fdHJhY2tSYW5nZUJ1dHRvbkNsaWNrLGNsYXNzTmFtZTpsdC5kYXRlUmFuZ2V9KSx0aGlzLnByb3BzLmdvVG9EYXRlRW5hYmxlZCYmcy5jcmVhdGVFbGVtZW50KGllLHtjbGFzc05hbWU6bCgpKGx0LnNlcGFyYXRvcil9KSx0aGlzLnByb3BzLmdvVG9EYXRlRW5hYmxlZCYmcy5jcmVhdGVFbGVtZW50KEgsbnVsbCkpKSkscy5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6bHQuc2VyaWVzQ29udHJvbFdyYXBwZXJ9LG4mJnMuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOmwoKShsdC5pbmxpbmUsZS50aW1lWm9uZXMmJmx0LmNvbGxhcHNlZCkscmVmOnRoaXMuX2hhbmRsZVRpbWVab25lc1JlZn0scy5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6bHQuaW5saW5lLG9uQ2xpY2s6dGhpcy5fdHJhY2tUaW1lem9uZXNCdXR0b25DbGlja30scy5jcmVhdGVFbGVtZW50KG5lLHtjbGFzc05hbWU6bHQuaXRlbSx3aXRoTWVudTp0aGlzLnByb3BzLnRpbWV6b25lTWVudUVuYWJsZWQscmVmOnRoaXMuX2hhbmRsZVRpbWV6b25lQnV0dG9uUmVmfSkpKSx0aGlzLnByb3BzLnNlc3Npb25JZEJ1dHRvbkVuYWJsZWQmJnRoaXMuc3RhdGUuc3ltYm9sQWxsb3dzU2Vzc2lvbkJ1dHRvbiYmdGhpcy5zdGF0ZS5pbnRlcnZhbEFsbG93c1Nlc3Npb25CdXR0b24mJnMuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOmwoKShsdC5pbmxpbmUsZS5zZXNzaW9uJiZsdC5jb2xsYXBzZWQpLHJlZjp0aGlzLl9oYW5kbGVTZXNzaW9uc1JlZn0scy5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6bHQuaW5saW5lfSxzLmNyZWF0ZUVsZW1lbnQoJGUse2NsYXNzTmFtZTpsdC5pdGVtLHdpdGhNZW51OnRoaXMucHJvcHMuc2Vzc2lvbklkQnV0dG9uRW5hYmxlZH0pKSkscy5jcmVhdGVFbGVtZW50KCJkaXYiLHtyZWY6dGhpcy5faGFuZGxlU2VwYXJhdG9yUmVmLGNsYXNzTmFtZTpsKCkobHQuaW5saW5lLGUuc2VwYXJhdG9yJiZsdC5jb2xsYXBzZWQpfSxzLmNyZWF0ZUVsZW1lbnQoaWUsbnVsbCkpLHMuY3JlYXRlRWxlbWVudChEZS5GcmFnbWVudE1hcCx7bWFwOnRoaXMuX2luamVjdG9yfSx2b2lkIDAhPT1mdCYmdGhpcy5wcm9wcy5hZGp1c3RGb3JEaXZpZGVuZHNCdXR0b25FbmFibGVkJiZ0aGlzLnN0YXRlLnN5bWJvbEFsbG93c0FkakJ1dHRvbiYmcy5jcmVhdGVFbGVtZW50KGZ0LHtjbGFzc05hbWU6bHQuaXRlbX0pLHZvaWQgMCE9PXl0JiZ0aGlzLnByb3BzLmJhY2tBZGp1c3RtZW50QnV0dG9uRW5hYmxlZCYmdGhpcy5zdGF0ZS5zeW1ib2xBbGxvd3NCYWNrQWRqdXN0bWVudCYmcy5jcmVhdGVFbGVtZW50KHl0LHtjbGFzc05hbWU6bHQuaXRlbX0pLHZvaWQgMCE9PV90JiZ0aGlzLnByb3BzLnNldHRsZW1lbnRBc0Nsb3NlQnV0dG9uRW5hYmxlZCYmdGhpcy5zdGF0ZS5zeW1ib2xBbGxvd3NTZXR0bGVtZW50QXNDbG9zZSYmcy5jcmVhdGVFbGVtZW50KF90LHtjbGFzc05hbWU6bHQuaXRlbX0pLGkmJiEoMCx1LmlzRmVhdHVyZXNldEVuYWJsZWQpKCJmdW5kYW1lbnRhbF93aWRnZXQiKSYmcy5jcmVhdGVFbGVtZW50KHZ0LHtjbGFzc05hbWU6bHQuaXRlbX0pLG8mJnMuY3JlYXRlRWxlbWVudChtdCx7Y2xhc3NOYW1lOmx0Lml0ZW19KSxhJiZzLmNyZWF0ZUVsZW1lbnQocHQse2NsYXNzTmFtZTpsdC5pdGVtfSksciYmdGhpcy5zdGF0ZS5pc0xheW91dEZ1bGxzY3JlZW5hYmxlJiZzLmNyZWF0ZUVsZW1lbnQoeHQse2NsYXNzTmFtZTpsdC5pdGVtLG1vYmlsZUNoYW5nZUxheW91dEVuYWJsZWQ6dGhpcy5wcm9wcy5tb2JpbGVDaGFuZ2VMYXlvdXRFbmFibGVkfSksdGhpcy5wcm9wcy5sYXlvdXRGdWxsc2NyZWVuQnV0dG9uRW5hYmxlZCYmdGhpcy5wcm9wcy5tb2JpbGVDaGFuZ2VMYXlvdXRFbmFibGVkJiZ0aGlzLnN0YXRlLmlzUHJldmVudFBob25lTGF5b3V0QnV0dG9uJiZzLmNyZWF0ZUVsZW1lbnQoaXQse2NsYXNzTmFtZTpsdC5pdGVtfSksWWUuQ2hlY2tNb2JpbGUuYW55KCkmJnRoaXMuc3RhdGUuaXNGdWxsc2NyZWVuJiZzLmNyZWF0ZUVsZW1lbnQoWmUuVG9vbFdpZGdldEZ1bGxzY3JlZW4se2lkOiJib3R0b20tdG9vbGJhci1mdWxsc2NyZWVuIixjbGlja0FyZWE6ImJvdHRvbSB0b29sYmFyIixpc0FjdGl2ZTohMCxjbGFzc05hbWU6bHQuZnVsbHNjcmVlbkJ0bn0pKSkpfXVwZGF0ZVRpbWV6b25lc0J1dHRvbigpe251bGwhPT10aGlzLl90aW1lem9uZUJ1dHRvblJlZiYmdGhpcy5fdGltZXpvbmVCdXR0b25SZWYudXBkYXRlVGltZXpvbmVzQnV0dG9uKCl9cmVzaXplVUkoKXt0aGlzLl9yZXNpemVCeVJhZigpfV90cmFja1JhbmdlQnV0dG9uQ2xpY2soZSl7e2NvbnN0IHQ9d3RbZS52YWx1ZS52YWx1ZV07dCYmKDAsTS50cmFja0J1dHRvbkNsaWNrKSgiYm90dG9tIHRvb2xiYXIiLHQpfX1fdHJhY2tUaW1lem9uZXNCdXR0b25DbGljaygpe010KCJ0aW1lWm9uZXMiKSwoMCxNLnRyYWNrQnV0dG9uQ2xpY2spKCJib3R0b20gdG9vbGJhciIsInRpbWV6b25lIil9X3NldFN0YXRlV2l0aFJlc2l6ZShlLHQpe09iamVjdC5hc3NpZ24odGhpcy5fbGF5b3V0LFR0KSx0aGlzLl9hcHBseVJlc2l6aW5nKCksdD8odGhpcy5zZXRTdGF0ZShlKSx0aGlzLl9yZXNpemVIYW5kbGVyKCkpOnRoaXMuc2V0U3RhdGUoZSwoKCk9PnRoaXMuX3Jlc2l6ZUJ5UmFmKCkpKX1fYXBwbHlSZXNpemluZygpe2NvbnN0e2RhdGVSYW5nZU1vZGU6ZSxub1Jhbmdlczp0LC4uLm59PXRoaXMuX2xheW91dDt0aGlzLl9yYW5nZUV4cGFuZGVkJiYodGhpcy5fcmFuZ2VFeHBhbmRlZC5jbGFzc0xpc3QudG9nZ2xlKGx0LmNvbGxhcHNlZCwiZXhwYW5kZWQiIT09ZSksdGhpcy5fcmFuZ2VFeHBhbmRlZC5jbGFzc0xpc3QudG9nZ2xlKGx0Lm5vcmFuZ2VzLHQpKSx0aGlzLl9yYW5nZUNvbGxhcHNlZCYmdGhpcy5fcmFuZ2VDb2xsYXBzZWQuY2xhc3NMaXN0LnRvZ2dsZShsdC5jb2xsYXBzZWQsImNvbGxhcHNlZCIhPT1lKTtsZXQgcz0hMSxpPSExO09iamVjdC5rZXlzKG4pLmZvckVhY2goKGU9Pntjb25zdCB0PWU7aWYoInNlcGFyYXRvciIhPT10KXsKY29uc3QgZT10aGlzLl9zZXJpZXNDb21wb25lbnRzW3RdLG89ITA9PT1uW3RdO2UmJigidGltZVpvbmVzIj09PXR8fCJzZXNzaW9uIj09PXQ/cz1zfHwhbzppPWl8fCFvLGUuY2xhc3NMaXN0LnRvZ2dsZShsdC5jb2xsYXBzZWQsbykpfX0pKTtjb25zdCBvPXRoaXMuX3Nlcmllc0NvbXBvbmVudHMuc2VwYXJhdG9yO2lmKG8pe2NvbnN0IGU9IXN8fCFpfHwhMD09PW4uc2VwYXJhdG9yO28uY2xhc3NMaXN0LnRvZ2dsZShsdC5jb2xsYXBzZWQsZSl9fV9pc1ByZXZlbnRQaG9uZUxheW91dEJ1dHRvbigpe3tjb25zdHtjaGFydFdpZGdldENvbGxlY3Rpb246ZSxyZXNpemVyRGV0YWNoZXI6dH09dGhpcy5jb250ZXh0O3JldHVybiB0LmZ1bGxzY3JlZW5hYmxlLnZhbHVlKCkmJlllLkNoZWNrTW9iaWxlLmFueSgpJiZQZS5tZWRpYVN0YXRlLmlzUGhvbmVTaXplRGV2aWNlKCkmJmUudmlld01vZGUudmFsdWUoKT09PWhlLkNvbGxlY3Rpb25WaWV3TW9kZS5Gb3JjZUZ1bGxzY3JlZW59fX1OdC5jb250ZXh0VHlwZT1SdDtjb25zdCBCdD17b25Db250ZW50Qm94Q2hhbmdlZDphLmFueSxjb21wdXRlQ29udGVudEJveDphLmFueSxjaGFydFdpZGdldDphLmFueSxjaGFydEFwaUluc3RhbmNlOmEuYW55LGNoYXJ0V2lkZ2V0Q29sbGVjdGlvbjphLmFueSxyZXNpemVyRGV0YWNoZXI6YS5hbnksYXZhaWxhYmxlVGltZUZyYW1lczphLmFueX07Y2xhc3MgTHQgZXh0ZW5kcyBzLlB1cmVDb21wb25lbnR7Y29uc3RydWN0b3IoZSl7c3VwZXIoZSksdGhpcy5fc2V0QWN0aXZlQ2hhcnQ9ZT0+e3RoaXMuX2RlZmluZVJlZ2lzdHJ5KGUpLHRoaXMuc2V0U3RhdGUoe2NoYXJ0V2lkZ2V0OmV9KX07Y29uc3QgdD10aGlzLnByb3BzLmNoYXJ0V2lkZ2V0Q29sbGVjdGlvbi5hY3RpdmVDaGFydFdpZGdldC52YWx1ZSgpO3RoaXMuc3RhdGU9e2NoYXJ0V2lkZ2V0OnR9LHRoaXMuX2RlZmluZVJlZ2lzdHJ5KHQpfWNvbXBvbmVudERpZE1vdW50KCl7dGhpcy5wcm9wcy5jaGFydFdpZGdldENvbGxlY3Rpb24uYWN0aXZlQ2hhcnRXaWRnZXQuc3Vic2NyaWJlKHRoaXMuX3NldEFjdGl2ZUNoYXJ0KX1jb21wb25lbnRXaWxsVW5tb3VudCgpe3RoaXMucHJvcHMuY2hhcnRXaWRnZXRDb2xsZWN0aW9uLmFjdGl2ZUNoYXJ0V2lkZ2V0LnVuc3Vic2NyaWJlKHRoaXMuX3NldEFjdGl2ZUNoYXJ0KX1yZW5kZXIoKXtjb25zdHtjaGFydFdpZGdldDplfT10aGlzLnN0YXRlO2lmKCFlKXJldHVybiBudWxsO2NvbnN0e29wdGlvbnM6dH09dGhpcy5wcm9wcyxuPXt0aW1lRnJhbWVzV2lkZ2V0RW5hYmxlZDp0LnRpbWVGcmFtZXNXaWRnZXRFbmFibGVkLGdvVG9EYXRlRW5hYmxlZDp0LnRpbWVGcmFtZXNXaWRnZXQuZ29Ub0RhdGVFbmFibGVkLHRpbWVXaWRnZXRFbmFibGVkOnQudGltZVdpZGdldEVuYWJsZWQsdGltZXpvbmVNZW51RW5hYmxlZDp0LnRpbWVXaWRnZXQmJnQudGltZVdpZGdldC50aW1lem9uZU1lbnVFbmFibGVkLHNlc3Npb25JZEJ1dHRvbkVuYWJsZWQ6dC5zZXNzaW9uSWRCdXR0b25FbmFibGVkLGJhY2tBZGp1c3RtZW50QnV0dG9uRW5hYmxlZDp0LmJhY2tBZGp1c3RtZW50QnV0dG9uRW5hYmxlZCxzZXR0bGVtZW50QXNDbG9zZUJ1dHRvbkVuYWJsZWQ6dC5zZXR0bGVtZW50QXNDbG9zZUJ1dHRvbkVuYWJsZWQsYWRqdXN0Rm9yRGl2aWRlbmRzQnV0dG9uRW5hYmxlZDp0LmFkanVzdEZvckRpdmlkZW5kc0J1dHRvbkVuYWJsZWQsbG9nU2NhbGVCdXR0b25FbmFibGVkOnQubG9nU2NhbGVCdXR0b25FbmFibGVkLHBlcmNlbnRhZ2VTY2FsZUJ1dHRvbkVuYWJsZWQ6dC5wZXJjZW50YWdlU2NhbGVCdXR0b25FbmFibGVkLGF1dG9TY2FsZUJ1dHRvbkVuYWJsZWQ6dC5hdXRvU2NhbGVCdXR0b25FbmFibGVkLGxheW91dEZ1bGxzY3JlZW5CdXR0b25FbmFibGVkOnQubGF5b3V0RnVsbHNjcmVlbkJ1dHRvbkVuYWJsZWQsbW9iaWxlQ2hhbmdlTGF5b3V0RW5hYmxlZDp0Lm1vYmlsZUNoYW5nZUxheW91dEVuYWJsZWR9O3JldHVybiBzLmNyZWF0ZUVsZW1lbnQoeS5SZWdpc3RyeVByb3ZpZGVyLHt2YWxpZGF0aW9uOkJ0LHZhbHVlOnRoaXMuX3JlZ2lzdHJ5fSxzLmNyZWF0ZUVsZW1lbnQoTnQse2tleTplLmlkKCksLi4ubn0pKX1fZGVmaW5lUmVnaXN0cnkoZSl7Y29uc3R7b25Db250ZW50Qm94Q2hhbmdlZDp0LGNvbXB1dGVDb250ZW50Qm94Om4sY2hhcnRBcGlJbnN0YW5jZTpzLGNoYXJ0V2lkZ2V0Q29sbGVjdGlvbjppLG9wdGlvbnM6e3RpbWVGcmFtZXNXaWRnZXRFbmFibGVkOm8sdGltZUZyYW1lc1dpZGdldDphfX09dGhpcy5wcm9wcyxyPW8/YS5hdmFpbGFibGVUaW1lRnJhbWVzOnZvaWQgMDt0aGlzLl9yZWdpc3RyeT17b25Db250ZW50Qm94Q2hhbmdlZDp0LGNvbXB1dGVDb250ZW50Qm94Om4sY2hhcnRXaWRnZXQ6ZSxhdmFpbGFibGVUaW1lRnJhbWVzOnIsY2hhcnRBcGlJbnN0YW5jZTpzLGNoYXJ0V2lkZ2V0Q29sbGVjdGlvbjppLHJlc2l6ZXJEZXRhY2hlcjplLmdldFJlc2l6ZXJEZXRhY2hlcigpfX19dmFyIFd0OyFmdW5jdGlvbihlKXtlLkluaXRpYWxpemVkQXR0cmlidXRlPSJkYXRhLWluaXRpYWxpemVkIn0oV3R8fChXdD17fSkpO2NsYXNzIFB0e2NvbnN0cnVjdG9yKGUsdCxuLG8sYSxyLGwpe3RoaXMuX2NvbnRhaW5lcj1lO2NvbnN0IGM9cy5jcmVhdGVFbGVtZW50KEx0LHtvbkNvbnRlbnRCb3hDaGFuZ2VkOnQsY29tcHV0ZUNvbnRlbnRCb3g6bixjaGFydFdpZGdldENvbGxlY3Rpb246byxjaGFydEFwaUluc3RhbmNlOmEsY2hhcnRXaWRnZXRPcHRpb25zOnIsb3B0aW9uczpsfSk7aS5yZW5kZXIoYyxlKSxlLnNldEF0dHJpYnV0ZSgiZGF0YS1pbml0aWFsaXplZCIsInRydWUiKX1kZXN0cm95KCl7aS51bm1vdW50Q29tcG9uZW50QXROb2RlKHRoaXMuX2NvbnRhaW5lciksdGhpcy5fY29udGFpbmVyLnJlbW92ZUF0dHJpYnV0ZSgiZGF0YS1pbml0aWFsaXplZCIpfX19LDc0MzE0MihlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtUb29sV2lkZ2V0RGF0ZVJhbmdlOigpPT5sfSk7dmFyIHM9big3Nzk0NzQpLGk9big5MTQ0ODcpLG89bi5uKGkpLGE9bigyNDY3MjcpLHI9big5NjE4MjMpO2NvbnN0IGw9KDAsCm4oNjI2MjA1KS5iaW5kUmFuZ2VzKSgoZnVuY3Rpb24oZSl7Y29uc3R7Y2xhc3NOYW1lOnQscmFuZ2VzOm4sYWN0aXZlUmFuZ2U6aSxvblNlbGVjdFJhbmdlOmx9PWU7cmV0dXJuIHMuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOm8oKShyLndyYXAsdCksImRhdGEtbmFtZSI6ImRhdGUtcmFuZ2VzLXRhYnMifSxuLm1hcCgoZT0+cy5jcmVhdGVFbGVtZW50KGEuVG9vbGJhckJ1dHRvbix7a2V5OmUudmFsdWUudmFsdWUsY2xhc3NOYW1lOnIuaXRlbSwiZGF0YS1uYW1lIjpgZGF0ZS1yYW5nZS10YWItJHtlLnZhbHVlLnZhbHVlfWAsaXNBY3RpdmU6aT09PWUudmFsdWUudmFsdWUsb25DbGljazpsJiZsLmJpbmQobnVsbCxlKSx0ZXh0OmUudGV4dCx0b29sdGlwOmUuZGVzY3JpcHRpb258fGUudGV4dH0pKSkpfSkpfSw2ODg2MzIoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7VG9vbFdpZGdldEZ1bGxzY3JlZW46KCk9PnZ9KTt2YXIgcz1uKDc3OTQ3NCksaT1uKDIyMTg5Niksbz1uKDkxNDQ4NyksYT1uLm4obykscj1uKDE4NTI3MSksbD1uKDk2NzA1KSxjPW4oNTY5NjUyKSx1PW4oMzQ1MTUxKSxkPW4oMjM1NzI0KSxoPW4oMjE2MDgzKSxtPW4oNDM0MDM3KSxwPW4oMTc1NDY3KTtjb25zdCBnPSgwLHUuaG90S2V5U2VyaWFsaXplKSh7a2V5czpbKDAsZC5odW1hblJlYWRhYmxlTW9kaWZpZXJzKShkLk1vZGlmaWVycy5TaGlmdCwhMSksIkYiXSx0ZXh0OiJ7MH0gKyB7MX0ifSksYj0oMCxjLnJlZ2lzdHJ5Q29udGV4dFR5cGUpKCk7Y2xhc3MgdiBleHRlbmRzIHMuUHVyZUNvbXBvbmVudHtjb25zdHJ1Y3RvcihlLHQpe3N1cGVyKGUsdCksdGhpcy5fdXBkYXRlU3RhdGU9KCk9Pnt0aGlzLnNldFN0YXRlKHtpc0Z1bGxzY3JlZW46dGhpcy5jb250ZXh0LmNoYXJ0V2lkZ2V0Q29sbGVjdGlvbi5mdWxsc2NyZWVuKCkudmFsdWUoKX0pfSx0aGlzLl9oYW5kbGVDbGljaz0oKT0+e2NvbnN0e2NoYXJ0V2lkZ2V0Q29sbGVjdGlvbjplfT10aGlzLmNvbnRleHQse2NsaWNrQXJlYTp0fT10aGlzLnByb3BzO2UuZnVsbHNjcmVlbigpLnZhbHVlKCk/ZS5leGl0RnVsbHNjcmVlbigpOmUuc3RhcnRGdWxsc2NyZWVuKCksdCYmKDAsaC50cmFja0J1dHRvbkNsaWNrKSh0LCJmdWxsc2NyZWVuIG1vZGUiKX0sKDAsYy52YWxpZGF0ZVJlZ2lzdHJ5KSh0LHtjaGFydFdpZGdldENvbGxlY3Rpb246aS5hbnkuaXNSZXF1aXJlZH0pLHRoaXMuc3RhdGU9e2lzRnVsbHNjcmVlbjp0aGlzLmNvbnRleHQuY2hhcnRXaWRnZXRDb2xsZWN0aW9uLmZ1bGxzY3JlZW4oKS52YWx1ZSgpfSx0aGlzLl9zdWJzY3JpYmUoKX1yZW5kZXIoKXtjb25zdHtjbGFzc05hbWU6ZSxpZDp0LGlzQWN0aXZlOml9PXRoaXMucHJvcHMse2lzRnVsbHNjcmVlbjpvfT10aGlzLnN0YXRlO3JldHVybiBzLmNyZWF0ZUVsZW1lbnQobC5Ub29sYmFySWNvbkJ1dHRvbix7aWQ6dCxpY29uOm8/cDptLG9uQ2xpY2s6dGhpcy5faGFuZGxlQ2xpY2ssY2xhc3NOYW1lOmEoKShlKSx0b29sdGlwOnIudChudWxsLHZvaWQgMCxuKDUyMjkxMSkpLCJkYXRhLXRvb2x0aXAtaG90a2V5IjpnLGlzQWN0aXZlOml9KX1jb21wb25lbnRXaWxsVW5tb3VudCgpe3RoaXMuX3Vuc3Vic2NyaWJlKCl9X3N1YnNjcmliZSgpe3RoaXMuY29udGV4dC5jaGFydFdpZGdldENvbGxlY3Rpb24uZnVsbHNjcmVlbigpLnN1YnNjcmliZSh0aGlzLl91cGRhdGVTdGF0ZSl9X3Vuc3Vic2NyaWJlKCl7dGhpcy5jb250ZXh0LmNoYXJ0V2lkZ2V0Q29sbGVjdGlvbi5mdWxsc2NyZWVuKCkudW5zdWJzY3JpYmUodGhpcy5fdXBkYXRlU3RhdGUpfX12LmNvbnRleHRUeXBlPWJ9LDEyNDY1NihlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtQcmljZUF4aXNIaWdobGlnaHRlcjooKT0+aX0pO3ZhciBzPW4oMzE4OTc0KTtjbGFzcyBpe2NvbnN0cnVjdG9yKGUsdCxuKXt0aGlzLl9oaWdobGlnaHRlZD0hMSx0aGlzLl9jaGFydFdpZGdldD1lLHRoaXMuX3ByaWNlU2NhbGVHZXR0ZXI9dCx0aGlzLl9vd25lcj1uLHRoaXMuX3NldEhpZ2hsaWdodD10aGlzLl9zZXRIaWdobGlnaHQuYmluZCh0aGlzKSx0aGlzLl9yZW1vdmVIaWdobGlnaHQ9dGhpcy5fcmVtb3ZlSGlnaGxpZ2h0LmJpbmQodGhpcyl9ZGVzdHJveSgpe3RoaXMuX2hpZ2hsaWdodGVkJiZ0aGlzLl9yZW1vdmVIaWdobGlnaHQoKX1oYW5kbGVycygpe2NvbnN0IGU9cy5DaGVja01vYmlsZS5hbnkoKTtyZXR1cm57b25Nb3VzZUVudGVyOmU/dm9pZCAwOnRoaXMuX3NldEhpZ2hsaWdodCxvbk1vdXNlTGVhdmU6ZT92b2lkIDA6dGhpcy5fcmVtb3ZlSGlnaGxpZ2h0fX1fc2V0SGlnaGxpZ2h0KCl7aWYoIXRoaXMuX2NoYXJ0V2lkZ2V0Lmhhc01vZGVsKCkpcmV0dXJuO2NvbnN0IGU9dGhpcy5fY2hhcnRXaWRnZXQubW9kZWwoKS5tb2RlbCgpLHQ9ZS5wYW5lRm9yU291cmNlKGUubWFpblNlcmllcygpKSxuPXRoaXMuX3ByaWNlU2NhbGVHZXR0ZXIoKTtpZihudWxsPT09dHx8bnVsbD09PW4pcmV0dXJuO2NvbnN0IHM9dGhpcy5fY2hhcnRXaWRnZXQucGFuZUJ5U3RhdGUodCk7aWYobnVsbCE9PXMpe2NvbnN0IHQ9cy5yaWdodFByaWNlQXhpc2VzQ29udGFpbmVyKCkuZmluZEF4aXNXaWRnZXRGb3JTY2FsZShuKTtsZXQgaT1udWxsO251bGwhPT10JiYoaT10LmF4aXNJbmZvKCkpO2NvbnN0IG89cy5sZWZ0UHJpY2VBeGlzZXNDb250YWluZXIoKS5maW5kQXhpc1dpZGdldEZvclNjYWxlKG4pO2lmKG51bGwhPT1vJiYoaT1vLmF4aXNJbmZvKCkpLGkpe2NvbnN0IHQ9cy5oaWdobGlnaHRlZFByaWNlQXhpc2VzKCksbj10LnZhbHVlKCk7bi5maW5kKChlPT5lLmF4aXMubGFiZWw9PT1pLmxhYmVsKSl8fCh0LnNldFZhbHVlKFsuLi5uLHtvd25lcjp0aGlzLl9vd25lcixheGlzOml9XSksZS5saWdodFVwZGF0ZSgpLHRoaXMuX2hpZ2hsaWdodGVkPSEwKX19fV9yZW1vdmVIaWdobGlnaHQoKXtpZighdGhpcy5fY2hhcnRXaWRnZXQuaGFzTW9kZWwoKSlyZXR1cm47Y29uc3QgZT10aGlzLl9jaGFydFdpZGdldC5tb2RlbCgpLm1vZGVsKCksdD1lLnBhbmVGb3JTb3VyY2UoZS5tYWluU2VyaWVzKCkpLG49dGhpcy5fcHJpY2VTY2FsZUdldHRlcigpCjtpZihudWxsPT09dHx8bnVsbD09PW4pcmV0dXJuO2NvbnN0IHM9dGhpcy5fY2hhcnRXaWRnZXQucGFuZUJ5U3RhdGUodCk7aWYobnVsbCE9PXMpe2NvbnN0IHQ9cy5yaWdodFByaWNlQXhpc2VzQ29udGFpbmVyKCkuZmluZEF4aXNXaWRnZXRGb3JTY2FsZShuKTtsZXQgaT1udWxsO251bGwhPT10JiYoaT10LmF4aXNJbmZvKCkpO2NvbnN0IG89cy5sZWZ0UHJpY2VBeGlzZXNDb250YWluZXIoKS5maW5kQXhpc1dpZGdldEZvclNjYWxlKG4pO2lmKG51bGwhPT1vJiYoaT1vLmF4aXNJbmZvKCkpLGkpe2NvbnN0IHQ9cy5oaWdobGlnaHRlZFByaWNlQXhpc2VzKCksbj10LnZhbHVlKCkuc2xpY2UoKSxvPW4uZmluZEluZGV4KChlPT5pLmxhYmVsPT09ZS5heGlzLmxhYmVsJiZlLm93bmVyPT09dGhpcy5fb3duZXIpKTstMSE9PW8mJihuLnNwbGljZShvLDEpLHQuc2V0VmFsdWUobiksZS5saWdodFVwZGF0ZSgpLHRoaXMuX2hpZ2hsaWdodGVkPSExKX19fX19LDUyNTEoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7SGludDooKT0+cn0pO3ZhciBzPW4oNzc5NDc0KSxpPW4oOTE0NDg3KSxvPW4ubihpKSxhPW4oOTE2MjYpO2Z1bmN0aW9uIHIoZSl7Y29uc3R7dGV4dDp0PSIiLGNsYXNzTmFtZTpufT1lO3JldHVybiBzLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6bygpKGEuc2hvcnRjdXQsbil9LHQpfX0sNzIxMTY3KGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse0NvbnRleHRNZW51SXRlbTooKT0+cH0pO3ZhciBzPW4oNzc5NDc0KSxpPW4oOTE0NDg3KSxvPW4ubihpKSxhPW4oMjczMzEwKSxyPW4oNjQ5MTY2KSxsPW4oNzc5MTA4KSxjPW4oNTI1MSksdT1uKDM4MDU2KSxkPW4oNTgwNTk2KSxoPW4oNDYyNzA0KSxtPW4oMTA3OTY2KTtmdW5jdGlvbiBwKGUpe2NvbnN0e2NsYXNzTmFtZTp0LGlzVGl0bGU6bixpc0xvYWRpbmc6aSxpc0hvdmVyZWQ6cCxhY3RpdmU6ZyxjaGVja2FibGU6YixkaXNhYmxlZDp2LGNoZWNrZWQ6ZixpY29uOnksaWNvbkNoZWNrZWQ6XyxoaW50OkMsc3ViSXRlbXM6eCxsYWJlbDpFLHN0eWxlZExhYmVsOlMsb25DbGljazpBLGNoaWxkcmVuOncsdG9vbGJveDpNLGpzeExhYmVsOmssc2l6ZTpUPSJub3JtYWwifT1lLFI9KDAscy51c2VDb250ZXh0KShsLkVtcHR5SWNvbnNDb250ZXh0KSxOPSEheC5sZW5ndGg7cmV0dXJuIGk/cy5jcmVhdGVFbGVtZW50KCJsaSIse2NsYXNzTmFtZTpvKCkodCxtLml0ZW0sbS5sb2FkaW5nLG1bVF0pfSxzLmNyZWF0ZUVsZW1lbnQoci5Mb2FkZXIsbnVsbCkpOnMuY3JlYXRlRWxlbWVudCgibGkiLHtjbGFzc05hbWU6bygpKHQsbS5pdGVtLG0uaW50ZXJhY3RpdmUsbiYmbS50aXRsZSx2JiZtLmRpc2FibGVkLHAmJm0uaG92ZXJlZCxnJiZtLmFjdGl2ZSxSJiZtLmVtcHR5SWNvbnMsbVtUXSksb25DbGljazpBfSxzLmNyZWF0ZUVsZW1lbnQoYS5JY29uLHtjbGFzc05hbWU6bygpKG0uaWNvbiksaWNvbjpmdW5jdGlvbigpe2lmKGImJmYpcmV0dXJuIF98fHl8fHU7cmV0dXJuIHl9KCl9KSxzLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6bygpKG0ubGFiZWwpfSwhayYmUz9TLm1hcCgoKHt0ZXh0OmUsLi4udH0sbik9PnMuY3JlYXRlRWxlbWVudCgic3BhbiIse2tleTpuLHN0eWxlOnR9LGUpKSk6az8/RSksISFNJiZzLmNyZWF0ZUVsZW1lbnQoYS5JY29uLHtvbkNsaWNrOmZ1bmN0aW9uKCl7TSYmTS5hY3Rpb24oKX0sY2xhc3NOYW1lOm0ucmVtb3ZlLGljb246aH0pLCFOJiZDJiZzLmNyZWF0ZUVsZW1lbnQoYy5IaW50LHtjbGFzc05hbWU6bS5zaG9ydGN1dCx0ZXh0OkN9KSxOJiZzLmNyZWF0ZUVsZW1lbnQoYS5JY29uLHtjbGFzc05hbWU6bS5uZXN0ZWQsaWNvbjpkfSksdyl9fSw3NzkxMDgoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7RW1wdHlJY29uc0NvbnRleHQ6KCk9PnN9KTtjb25zdCBzPW4oNzc5NDc0KS5jcmVhdGVDb250ZXh0KCExKX0sMzI5NjY4KGUsdCxuKXsidXNlIHN0cmljdCI7dmFyIHM7ZnVuY3Rpb24gaShlKXtlLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJyb3ZpbmctdGFiaW5kZXg6bWFpbi1lbGVtZW50IikpfWZ1bmN0aW9uIG8oZSl7ZS5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgicm92aW5nLXRhYmluZGV4OnNlY29uZGFyeS1lbGVtZW50IikpfW4uZCh0LHtiZWNvbWVNYWluRWxlbWVudDooKT0+aSxiZWNvbWVTZWNvbmRhcnlFbGVtZW50OigpPT5vfSksZnVuY3Rpb24oZSl7ZS5NYWluRWxlbWVudD0icm92aW5nLXRhYmluZGV4Om1haW4tZWxlbWVudCIsZS5TZWNvbmRhcnlFbGVtZW50PSJyb3ZpbmctdGFiaW5kZXg6c2Vjb25kYXJ5LWVsZW1lbnQifShzfHwocz17fSkpfSw5ODM2MTYoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7bWFwS2V5Q29kZVRvRGlyZWN0aW9uOigpPT51LG5hdmlnYXRpb25PcmRlckNvbXBhcmF0b3I6KCk9PmEscXVlcnlGb2N1c2FibGVFbGVtZW50czooKT0+bCxxdWVyeVRhYmJhYmxlRWxlbWVudHM6KCk9PnIsdXBkYXRlVGFiSW5kZXhlczooKT0+Y30pO3ZhciBzLGk9big5NjkxNjgpLG89big2ODIzODEpO2Z1bmN0aW9uIGEoZSx0KXtyZXR1cm4gZT09PXQ/MDplLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKHQpJk5vZGUuRE9DVU1FTlRfUE9TSVRJT05fRk9MTE9XSU5HPy0xOjF9ZnVuY3Rpb24gcihlKXtyZXR1cm4gQXJyYXkuZnJvbShlLnF1ZXJ5U2VsZWN0b3JBbGwoJ2J1dHRvbjpub3QoOmRpc2FibGVkKTpub3QoW2FyaWEtZGlzYWJsZWQ9InRydWUiIGldKTpub3QoW3RhYmluZGV4PSItMSJdKSwgW3RhYmluZGV4XTpub3QoW2Rpc2FibGVkXSk6bm90KFthcmlhLWRpc2FibGVkPSJ0cnVlIiBpXSk6bm90KFt0YWJpbmRleD0iLTEiXSknKSkuZmlsdGVyKCgwLG8uY3JlYXRlU2NvcGVkVmlzaWJsZUVsZW1lbnRGaWx0ZXIpKGUpKX1mdW5jdGlvbiBsKGUpewpyZXR1cm4gQXJyYXkuZnJvbShlLnF1ZXJ5U2VsZWN0b3JBbGwoJ2J1dHRvbjpub3QoOmRpc2FibGVkKTpub3QoW2FyaWEtZGlzYWJsZWQ9InRydWUiIGldKTpub3QoW2FyaWEtZGlzYWJsZWQ9IiJdKSwgW3RhYmluZGV4XTpub3QoW2Rpc2FibGVkXSk6bm90KFthcmlhLWRpc2FibGVkPSJ0cnVlIiBpXSk6bm90KFthcmlhLWRpc2FibGVkPSIiXSknKSkuZmlsdGVyKCgwLG8uY3JlYXRlU2NvcGVkVmlzaWJsZUVsZW1lbnRGaWx0ZXIpKGUpKX1mdW5jdGlvbiBjKCl7d2luZG93LmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJrZXlib2FyZC1uYXZpZ2F0aW9uLWFjdGl2YXRpb24iLHtidWJibGVzOiEwfSkpfWZ1bmN0aW9uIHUoZSl7Y29uc3QgdD0oMCxpLmlzUnRsKSgpO3N3aXRjaChlKXtjYXNlIDM4OnJldHVybiJibG9ja1ByZXYiO2Nhc2UgNDA6cmV0dXJuImJsb2NrTmV4dCI7Y2FzZSAzNzpyZXR1cm4gdD8iaW5saW5lTmV4dCI6ImlubGluZVByZXYiO2Nhc2UgMzk6cmV0dXJuIHQ/ImlubGluZVByZXYiOiJpbmxpbmVOZXh0IjtkZWZhdWx0OnJldHVybiBudWxsfX0hZnVuY3Rpb24oZSl7ZS5CbG9ja1ByZXY9ImJsb2NrUHJldiIsZS5CbG9ja05leHQ9ImJsb2NrTmV4dCIsZS5JbmxpbmVQcmV2PSJpbmxpbmVQcmV2IixlLklubGluZU5leHQ9ImlubGluZU5leHQifShzfHwocz17fSkpfSw5Mjk2NDkoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7QWNjZXNzaWJsZUljb25CdXR0b246KCk9Pm99KTt2YXIgcz1uKDc3OTQ3NCksaT1uKDQwODQxKTtjb25zdCBvPSgwLHMuZm9yd2FyZFJlZikoKGZ1bmN0aW9uKGUsdCl7Y29uc3R7dG9vbHRpcDpuLC4uLm99PWU7cmV0dXJuIHMuY3JlYXRlRWxlbWVudChpLlRvb2xXaWRnZXRJY29uQnV0dG9uLHsiYXJpYS1sYWJlbCI6biwuLi5vLHRhZzoiYnV0dG9uIixyZWY6dCwiZGF0YS10b29sdGlwIjpuLCJkYXRhLXRvb2x0aXAtc2hvdy1vbi1mb2N1cyI6InRydWUifSl9KSl9LDg1MDEwOChlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtBY2Nlc3NpYmxlTWVudUl0ZW06KCk9Pmh9KTt2YXIgcz1uKDc3OTQ3NCksaT1uKDkxNDQ4Nyksbz1uLm4oaSksYT1uKDIzNTcyNCkscj1uKDE4MjMwOCksbD1uKDM4NjkzMSksYz1uKDE1MzczNCk7ZnVuY3Rpb24gdShlKXtjb25zdHt0cmFja0V2ZW50T2JqZWN0OnQsdHJhY2tSaWdodENsaWNrOm4sdHJhY2tNb3VzZVdoZWVsQ2xpY2s6aSxvbkNsaWNrOm8sb25Db250ZXh0TWVudTphLG9uTW91c2VVcDpyLGxpbms6dSwuLi5kfT1lO3JldHVybiBzLmNyZWF0ZUVsZW1lbnQoYy5Qb3B1cE1lbnVJdGVtLHsuLi5kLGxpbms6dSxvbkNsaWNrOmZ1bmN0aW9uKGUsbil7dCYmKDAsbC50cmFja0V2ZW50KSh0LmNhdGVnb3J5LHQuZXZlbnQsdC5sYWJlbCksbyYmbyhlLG4pfSxvbkNvbnRleHRNZW51OmZ1bmN0aW9uKGUpe3QmJm4mJigwLGwudHJhY2tFdmVudCkodC5jYXRlZ29yeSx0LmV2ZW50LGAke3QubGFiZWx9X3JpZ2h0Q2xpY2tgKSxhJiZhKGUpfSxvbk1vdXNlVXA6ZnVuY3Rpb24oZSl7aWYoMT09PWUuYnV0dG9uJiZ1JiZ0KXtsZXQgZT10LmxhYmVsO2kmJihlKz0iX21vdXNlV2hlZWxDbGljayIpLCgwLGwudHJhY2tFdmVudCkodC5jYXRlZ29yeSx0LmV2ZW50LGUpfXImJnIoZSl9fSl9dmFyIGQ9big1OTk5NzIpO2Z1bmN0aW9uIGgoZSl7Y29uc3R7Y2xhc3NOYW1lOnQscmVmZXJlbmNlOm4sLi4uaX09ZSxbbCxjXT0oMCxyLnVzZVJvdmluZ1RhYmluZGV4RWxlbWVudCkobj8/bnVsbCk7cmV0dXJuIHMuY3JlYXRlRWxlbWVudCh1LHsuLi5pLGNsYXNzTmFtZTpvKCkoZC5hY2Nlc3NpYmxlLGUuaXNBY3RpdmUmJmQuYWN0aXZlLHQpLHJlZmVyZW5jZTpsLHRhYkluZGV4OmMsb25LZXlEb3duOmZ1bmN0aW9uKGUpe2lmKGUudGFyZ2V0IT09ZS5jdXJyZW50VGFyZ2V0KXJldHVybjtjb25zdCB0PSgwLGEuaGFzaEZyb21FdmVudCkoZSk7MTMhPT10JiYzMiE9PXR8fChlLnByZXZlbnREZWZhdWx0KCksbC5jdXJyZW50IGluc3RhbmNlb2YgSFRNTEVsZW1lbnQmJmwuY3VycmVudC5jbGljaygpKX0sImRhdGEtcm9sZSI6Im1lbnVpdGVtIiwiYXJpYS1kaXNhYmxlZCI6ZS5pc0Rpc2FibGVkfHxlWyJhcmlhLWRpc2FibGVkIl0sdG9vbGJveFJvbGU6InRvb2xiYXIifSl9fSw5OTU3MTkoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7REVGQVVMVF9UT09MX1dJREdFVF9CVVRUT05fVEhFTUU6KCk9PmwsVG9vbFdpZGdldEJ1dHRvbjooKT0+Y30pO3ZhciBzPW4oNzc5NDc0KSxpPW4oOTE0NDg3KSxvPW4ubihpKSxhPW4oMjczMzEwKSxyPW4oMjc3MDc2KTtjb25zdCBsPXIsYz1zLmZvcndhcmRSZWYoKChlLHQpPT57Y29uc3R7dGFnOm49ImRpdiIsaWNvbjppLGVuZEljb246bCxpc0FjdGl2ZTpjLGlzT3BlbmVkOnUsaXNEaXNhYmxlZDpkLGlzRGlzYWJsZWRBcHBlYXJhbmNlOmgsaXNEaXNhYmxlSW50ZXJhY3Rpb246bSxpc0dyb3VwZWQ6cCxpc0hvdmVyZWQ6Zyxpc0NsaWNrZWQ6YixvbkNsaWNrOnYsdGV4dDpmLHRleHRCZWZvcmVJY29uOnksdGl0bGU6Xyx0aGVtZTpDPXIsY2xhc3NOYW1lOngsZm9yY2VJbnRlcmFjdGl2ZTpFLCJkYXRhLW5hbWUiOlMsImRhdGEtdG9vbHRpcCI6QSx0b29sdGlwUG9zaXRpb246dyxjaGlsZHJlbjpNLGlzUHJlc3NlZDprLC4uLlR9PWUsUj1vKCkoeCxDLmJ1dHRvbix7ImFwcGx5LWNvbW1vbi10b29sdGlwIjpCb29sZWFuKF98fEEpLCJjb21tb24tdG9vbHRpcC12ZXJ0aWNhbCI6Qm9vbGVhbihBKSYmInZlcnRpY2FsIj09PXcsW0MuaXNBY3RpdmVdOmMsW0MuaXNPcGVuZWRdOnUsW0MuaXNJbnRlcmFjdGl2ZV06KEV8fEJvb2xlYW4odikpJiYhZCYmIWgsW0MuaXNEaXNhYmxlZF06Qm9vbGVhbihkfHxoKSxbQy5pc0dyb3VwZWRdOnAsW0MuaG92ZXJdOmcsW0MuY2xpY2tlZF06YixbQy5wcmVzc2VkXTprfSksTj1pJiYoInN0cmluZyI9PXR5cGVvZiBpP3MuY3JlYXRlRWxlbWVudChhLkljb24se2NsYXNzTmFtZTpDLmljb24saWNvbjppfSk6cy5jbG9uZUVsZW1lbnQoaSx7Y2xhc3NOYW1lOm8oKShDLmljb24saS5wcm9wcy5jbGFzc05hbWUpfSkpCjtyZXR1cm4iYnV0dG9uIj09PW4/cy5jcmVhdGVFbGVtZW50KCJidXR0b24iLHsuLi5ULHJlZjp0LHR5cGU6ImJ1dHRvbiIsY2xhc3NOYW1lOm8oKShSLEMuYWNjZXNzaWJsZSksZGlzYWJsZWQ6ZCYmIWh8fG0sb25DbGljazp2LHRpdGxlOl8sImRhdGEtbmFtZSI6UywiZGF0YS10b29sdGlwIjpBfSx5JiZmJiZzLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpvKCkoImpzLWJ1dHRvbi10ZXh0IixDLnRleHQpfSxmKSxOLCF5JiZmJiZzLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpvKCkoImpzLWJ1dHRvbi10ZXh0IixDLnRleHQpfSxmKSxNKTpzLmNyZWF0ZUVsZW1lbnQoImRpdiIsey4uLlQscmVmOnQsImRhdGEtcm9sZSI6ImJ1dHRvbiIsY2xhc3NOYW1lOlIsb25DbGljazpkfHxtP3ZvaWQgMDp2LHRpdGxlOl8sImRhdGEtbmFtZSI6UywiZGF0YS10b29sdGlwIjpBfSx5JiZmJiZzLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpvKCkoImpzLWJ1dHRvbi10ZXh0IixDLnRleHQpfSxmKSxOLCF5JiZmJiZzLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpvKCkoImpzLWJ1dHRvbi10ZXh0IixDLnRleHQpfSxmKSxsJiZzLmNyZWF0ZUVsZW1lbnQoYS5JY29uLHtpY29uOmwsY2xhc3NOYW1lOnIuZW5kSWNvbn0pLE0pfSkpfSw0MDg0MShlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtUb29sV2lkZ2V0SWNvbkJ1dHRvbjooKT0+bH0pO3ZhciBzPW4oNzc5NDc0KSxpPW4oOTE0NDg3KSxvPW4ubihpKSxhPW4oOTk1NzE5KSxyPW4oMjk4MDg2KTtjb25zdCBsPXMuZm9yd2FyZFJlZigoZnVuY3Rpb24oZSx0KXtjb25zdHtjbGFzc05hbWU6bixpZDppLC4uLmx9PWU7cmV0dXJuIHMuY3JlYXRlRWxlbWVudChhLlRvb2xXaWRnZXRCdXR0b24se2lkOmksImRhdGEtbmFtZSI6aSwuLi5sLHJlZjp0LGNsYXNzTmFtZTpvKCkobixyLmJ1dHRvbil9KX0pKX0sMjQ2NzI3KGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse0RFRkFVTFRfVE9PTEJBUl9CVVRUT05fVEhFTUU6KCk9PmEsVG9vbGJhckJ1dHRvbjooKT0+cn0pO3ZhciBzPW4oNzc5NDc0KSxpPW4oOTk1NzE5KSxvPW4oMTgyMzA4KTtjb25zdCBhPWkuREVGQVVMVF9UT09MX1dJREdFVF9CVVRUT05fVEhFTUUscj0oMCxzLmZvcndhcmRSZWYpKChmdW5jdGlvbihlLHQpe2NvbnN0e3Rvb2x0aXA6biwuLi5hfT1lLFtyLGxdPSgwLG8udXNlUm92aW5nVGFiaW5kZXhFbGVtZW50KSh0KTtyZXR1cm4gcy5jcmVhdGVFbGVtZW50KGkuVG9vbFdpZGdldEJ1dHRvbix7ImFyaWEtbGFiZWwiOm4sLi4uYSx0YWc6ImJ1dHRvbiIscmVmOnIsdGFiSW5kZXg6bCwiZGF0YS10b29sdGlwIjpufSl9KSl9LDk2NzA1KGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse1Rvb2xiYXJJY29uQnV0dG9uOigpPT5hfSk7dmFyIHM9big3Nzk0NzQpLGk9bigxODIzMDgpLG89big5Mjk2NDkpO2NvbnN0IGE9KDAscy5mb3J3YXJkUmVmKSgoZnVuY3Rpb24oZSx0KXtjb25zdFtuLGFdPSgwLGkudXNlUm92aW5nVGFiaW5kZXhFbGVtZW50KSh0KTtyZXR1cm4gcy5jcmVhdGVFbGVtZW50KG8uQWNjZXNzaWJsZUljb25CdXR0b24sey4uLmUscmVmOm4sdGFiSW5kZXg6YX0pfSkpfSw3NzEyODUoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7VG9vbGJhck1lbnVCdXR0b246KCk9Pmx9KTt2YXIgcz1uKDc3OTQ3NCksaT1uKDc4Nzg5NSksbz1uKDE4MjMwOCksYT1uKDQ1MDE0MCkscj1uKDkzNDkyOSk7Y29uc3QgbD0oMCxzLmZvcndhcmRSZWYpKChmdW5jdGlvbihlLHQpe2NvbnN0e3Rvb2x0aXA6bixtZW51UmVmZXJlbmNlOmw9bnVsbCwuLi5jfT1lLFt1LGRdPSgwLG8udXNlUm92aW5nVGFiaW5kZXhFbGVtZW50KShudWxsKSxoPSgwLGkudXNlRnVuY3Rpb25hbFJlZk9iamVjdCkobCk7cmV0dXJuIHMuY3JlYXRlRWxlbWVudChyLkFjY2Vzc2libGVNZW51QnV0dG9uLHsiYXJpYS1sYWJlbCI6biwiYXJpYS1oYXNwb3B1cCI6Im1lbnUiLC4uLmEuTW91c2VDbGlja0F1dG9CbHVySGFuZGxlci5hdHRyaWJ1dGVzKCksLi4uYyxyZWY6dCx0YWc6ImJ1dHRvbiIsYnV0dG9uUmVmOnUsdGFiSW5kZXg6ZCxtZW51UmVmZXJlbmNlOmgsdG9vbHRpcDpufSl9KSl9LDczMDAwOShlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtUb29sYmFyOigpPT5kfSk7dmFyIHM9big3Nzk0NzQpLGk9bigxMzg2MzgpLG89big4MzM5MDMpLGE9bigyMzU3MjQpLHI9big5ODM2MTYpLGw9bigzMjk2NjgpLGM9big3ODc4OTUpLHU9big0NTAxNDApO2NvbnN0IGQ9KDAscy5mb3J3YXJkUmVmKSgoZnVuY3Rpb24oZSx0KXtjb25zdHtvbktleURvd246bixvcmllbnRhdGlvbjpkLGJsdXJPbkVzY0tleWRvd246aD0hMCxibHVyT25DbGljazptPSEwLC4uLnB9PWUsZz0oMCxjLnVzZUZ1bmN0aW9uYWxSZWZPYmplY3QpKHQpO3JldHVybigwLHMudXNlTGF5b3V0RWZmZWN0KSgoKCk9Pntjb25zdCBlPSgwLGkuZW5zdXJlTm90TnVsbCkoZy5jdXJyZW50KSx0PSgpPT57Y29uc3QgdD0oMCxyLnF1ZXJ5VGFiYmFibGVFbGVtZW50cykoZSkuc29ydChyLm5hdmlnYXRpb25PcmRlckNvbXBhcmF0b3IpO2lmKDA9PT10Lmxlbmd0aCl7Y29uc3RbdF09KDAsci5xdWVyeUZvY3VzYWJsZUVsZW1lbnRzKShlKS5zb3J0KHIubmF2aWdhdGlvbk9yZGVyQ29tcGFyYXRvcik7aWYodm9pZCAwPT09dClyZXR1cm47KDAsbC5iZWNvbWVNYWluRWxlbWVudCkodCl9aWYodC5sZW5ndGg+MSl7Y29uc3RbLC4uLmVdPXQ7Zm9yKGNvbnN0IHQgb2YgZSkoMCxsLmJlY29tZVNlY29uZGFyeUVsZW1lbnQpKHQpfX07cmV0dXJuIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJrZXlib2FyZC1uYXZpZ2F0aW9uLWFjdGl2YXRpb24iLHQpLCgpPT53aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigia2V5Ym9hcmQtbmF2aWdhdGlvbi1hY3RpdmF0aW9uIix0KX0pLFtdKSxzLmNyZWF0ZUVsZW1lbnQoImRpdiIsey4uLnUuTW91c2VDbGlja0F1dG9CbHVySGFuZGxlci5hdHRyaWJ1dGVzKG0pLC4uLnAscm9sZToidG9vbGJhciIsImFyaWEtb3JpZW50YXRpb24iOmQscmVmOmcsb25LZXlEb3duOigwLApvLmNyZWF0ZVNhZmVNdWx0aWNhc3RFdmVudEhhbmRsZXIpKChmdW5jdGlvbihlKXtpZihlLmRlZmF1bHRQcmV2ZW50ZWQpcmV0dXJuO2lmKCEoZG9jdW1lbnQuYWN0aXZlRWxlbWVudCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KSlyZXR1cm47Y29uc3QgdD0oMCxhLmhhc2hGcm9tRXZlbnQpKGUpO2lmKGgmJjI3PT09dClyZXR1cm4gZS5wcmV2ZW50RGVmYXVsdCgpLHZvaWQgZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5ibHVyKCk7aWYoInZlcnRpY2FsIiE9PWQmJjM3IT09dCYmMzkhPT10KXJldHVybjtpZigidmVydGljYWwiPT09ZCYmMzghPT10JiY0MCE9PXQpcmV0dXJuO2NvbnN0IG49ZS5jdXJyZW50VGFyZ2V0LHM9KDAsci5xdWVyeUZvY3VzYWJsZUVsZW1lbnRzKShuKS5zb3J0KHIubmF2aWdhdGlvbk9yZGVyQ29tcGFyYXRvcik7aWYoMD09PXMubGVuZ3RoKXJldHVybjtjb25zdCBpPXMuaW5kZXhPZihkb2N1bWVudC5hY3RpdmVFbGVtZW50KTtpZigtMT09PWkpcmV0dXJuO2UucHJldmVudERlZmF1bHQoKTtjb25zdCBvPSgpPT57Y29uc3QgZT0oaStzLmxlbmd0aC0xKSVzLmxlbmd0aDsoMCxsLmJlY29tZVNlY29uZGFyeUVsZW1lbnQpKHNbaV0pLCgwLGwuYmVjb21lTWFpbkVsZW1lbnQpKHNbZV0pLHNbZV0uZm9jdXMoKX0sYz0oKT0+e2NvbnN0IGU9KGkrcy5sZW5ndGgrMSklcy5sZW5ndGg7KDAsbC5iZWNvbWVTZWNvbmRhcnlFbGVtZW50KShzW2ldKSwoMCxsLmJlY29tZU1haW5FbGVtZW50KShzW2VdKSxzW2VdLmZvY3VzKCl9O3N3aXRjaCgoMCxyLm1hcEtleUNvZGVUb0RpcmVjdGlvbikodCkpe2Nhc2UiaW5saW5lUHJldiI6InZlcnRpY2FsIiE9PWQmJm8oKTticmVhaztjYXNlImlubGluZU5leHQiOiJ2ZXJ0aWNhbCIhPT1kJiZjKCk7YnJlYWs7Y2FzZSJibG9ja1ByZXYiOiJ2ZXJ0aWNhbCI9PT1kJiZvKCk7YnJlYWs7Y2FzZSJibG9ja05leHQiOiJ2ZXJ0aWNhbCI9PT1kJiZjKCl9fSksbiksImRhdGEtdG9vbHRpcC1zaG93LW9uLWZvY3VzIjoidHJ1ZSJ9KX0pKX0sNTY5NjUyKGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse1JlZ2lzdHJ5UHJvdmlkZXI6KCk9PmwscmVnaXN0cnlDb250ZXh0VHlwZTooKT0+dSx1c2VSZWdpc3RyeTooKT0+Yyx2YWxpZGF0ZVJlZ2lzdHJ5OigpPT5yfSk7dmFyIHM9big3Nzk0NzQpLGk9bigyMjE4OTYpLG89bi5uKGkpO2NvbnN0IGE9cy5jcmVhdGVDb250ZXh0KHt9KTtmdW5jdGlvbiByKGUsdCl7bygpLmNoZWNrUHJvcFR5cGVzKHQsZSwiY29udGV4dCIsIlJlZ2lzdHJ5Q29udGV4dCIpfWZ1bmN0aW9uIGwoZSl7Y29uc3R7dmFsaWRhdGlvbjp0LHZhbHVlOm59PWU7cmV0dXJuIHIobix0KSxzLmNyZWF0ZUVsZW1lbnQoYS5Qcm92aWRlcix7dmFsdWU6bn0sZS5jaGlsZHJlbil9ZnVuY3Rpb24gYyhlKXtjb25zdCB0PSgwLHMudXNlQ29udGV4dCkoYSk7cmV0dXJuIHIodCxlKSx0fWZ1bmN0aW9uIHUoKXtyZXR1cm4gYX19LDYxNjMxMShlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHt1c2VJc29tb3JwaGljTGF5b3V0RWZmZWN0OigpPT5pfSk7dmFyIHM9big3Nzk0NzQpO2Z1bmN0aW9uIGkoZSx0KXsoInVuZGVmaW5lZCI9PXR5cGVvZiB3aW5kb3c/cy51c2VFZmZlY3Q6cy51c2VMYXlvdXRFZmZlY3QpKGUsdCl9fSw5OTgxNTgoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7RnJhZ21lbnRNYXA6KCk9Pml9KTt2YXIgcz1uKDc3OTQ3NCk7ZnVuY3Rpb24gaShlKXtpZihlLm1hcCl7cmV0dXJuIHMuQ2hpbGRyZW4udG9BcnJheShlLmNoaWxkcmVuKS5tYXAoZS5tYXApfXJldHVybiBlLmNoaWxkcmVufX0sMTgyMzA4KGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQse3VzZVJvdmluZ1RhYmluZGV4RWxlbWVudDooKT0+YX0pO3ZhciBzPW4oNzc5NDc0KSxpPW4oNzg3ODk1KSxvPW4oNjE2MzExKTtmdW5jdGlvbiBhKGUsdD1bXSl7Y29uc3RbbixhXT0oMCxzLnVzZVN0YXRlKSghMSkscj0oMCxpLnVzZUZ1bmN0aW9uYWxSZWZPYmplY3QpKGUpO3JldHVybigwLG8udXNlSXNvbW9ycGhpY0xheW91dEVmZmVjdCkoKCgpPT57Y29uc3QgZT1yLmN1cnJlbnQ7aWYobnVsbD09PWUpcmV0dXJuO2NvbnN0IHQ9ZT0+e3N3aXRjaChlLnR5cGUpe2Nhc2Uicm92aW5nLXRhYmluZGV4Om1haW4tZWxlbWVudCI6YSghMCk7YnJlYWs7Y2FzZSJyb3ZpbmctdGFiaW5kZXg6c2Vjb25kYXJ5LWVsZW1lbnQiOmEoITEpfX07cmV0dXJuIGUuYWRkRXZlbnRMaXN0ZW5lcigicm92aW5nLXRhYmluZGV4Om1haW4tZWxlbWVudCIsdCksZS5hZGRFdmVudExpc3RlbmVyKCJyb3ZpbmctdGFiaW5kZXg6c2Vjb25kYXJ5LWVsZW1lbnQiLHQpLCgpPT57ZS5yZW1vdmVFdmVudExpc3RlbmVyKCJyb3ZpbmctdGFiaW5kZXg6bWFpbi1lbGVtZW50Iix0KSxlLnJlbW92ZUV2ZW50TGlzdGVuZXIoInJvdmluZy10YWJpbmRleDpzZWNvbmRhcnktZWxlbWVudCIsdCl9fSksdCksW3Isbj8wOi0xXX19LDIzMTEzMyhlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LHtTZXBhcmF0b3I6KCk9PnJ9KTt2YXIgcz1uKDc3OTQ3NCksaT1uKDkxNDQ4Nyksbz1uLm4oaSksYT1uKDgwNjA3OCk7ZnVuY3Rpb24gcihlKXtyZXR1cm4gcy5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6bygpKGEuc2VwYXJhdG9yLGUuY2xhc3NOYW1lKX0pfX0sOTk0MTc4KGUsdCxuKXsidXNlIHN0cmljdCI7dmFyIHM9big5NjcxMjEpO2Z1bmN0aW9uIGkoKXt9ZnVuY3Rpb24gbygpe31vLnJlc2V0V2FybmluZ0NhY2hlPWksZS5leHBvcnRzPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZShlLHQsbixpLG8sYSl7aWYoYSE9PXMpe3ZhciByPW5ldyBFcnJvcigiQ2FsbGluZyBQcm9wVHlwZXMgdmFsaWRhdG9ycyBkaXJlY3RseSBpcyBub3Qgc3VwcG9ydGVkIGJ5IHRoZSBgcHJvcC10eXBlc2AgcGFja2FnZS4gVXNlIFByb3BUeXBlcy5jaGVja1Byb3BUeXBlcygpIHRvIGNhbGwgdGhlbS4gUmVhZCBtb3JlIGF0IGh0dHA6Ly9mYi5tZS91c2UtY2hlY2stcHJvcC10eXBlcyIpO3Rocm93IHIubmFtZT0iSW52YXJpYW50IFZpb2xhdGlvbiIscn19ZnVuY3Rpb24gdCgpe3JldHVybiBlfWUuaXNSZXF1aXJlZD1lO3ZhciBuPXthcnJheTplLGJvb2w6ZSwKZnVuYzplLG51bWJlcjplLG9iamVjdDplLHN0cmluZzplLHN5bWJvbDplLGFueTplLGFycmF5T2Y6dCxlbGVtZW50OmUsZWxlbWVudFR5cGU6ZSxpbnN0YW5jZU9mOnQsbm9kZTplLG9iamVjdE9mOnQsb25lT2Y6dCxvbmVPZlR5cGU6dCxzaGFwZTp0LGV4YWN0OnQsY2hlY2tQcm9wVHlwZXM6byxyZXNldFdhcm5pbmdDYWNoZTppfTtyZXR1cm4gbi5Qcm9wVHlwZXM9bixufX0sMjIxODk2KGUsdCxuKXtlLmV4cG9ydHM9big5OTQxNzgpKCl9LDk2NzEyMShlKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPSJTRUNSRVRfRE9fTk9UX1BBU1NfVEhJU19PUl9ZT1VfV0lMTF9CRV9GSVJFRCJ9LDEyOTM2NShlLHQsbil7InVzZSBzdHJpY3QiOyFmdW5jdGlvbiBlKCl7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBfX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18mJiJmdW5jdGlvbiI9PXR5cGVvZiBfX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18uY2hlY2tEQ0UpdHJ5e19fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXy5jaGVja0RDRShlKX1jYXRjaChlKXtjb25zb2xlLmVycm9yKGUpfX0oKSxlLmV4cG9ydHM9big1MzIzODcpfSwxMjI3NDkoZSx0KXsidXNlIHN0cmljdCI7dmFyIG49U3ltYm9sLmZvcigicmVhY3QuZWxlbWVudCIpLHM9U3ltYm9sLmZvcigicmVhY3QucG9ydGFsIiksaT1TeW1ib2wuZm9yKCJyZWFjdC5mcmFnbWVudCIpLG89U3ltYm9sLmZvcigicmVhY3Quc3RyaWN0X21vZGUiKSxhPVN5bWJvbC5mb3IoInJlYWN0LnByb2ZpbGVyIikscj1TeW1ib2wuZm9yKCJyZWFjdC5wcm92aWRlciIpLGw9U3ltYm9sLmZvcigicmVhY3QuY29udGV4dCIpLGM9U3ltYm9sLmZvcigicmVhY3QuZm9yd2FyZF9yZWYiKSx1PVN5bWJvbC5mb3IoInJlYWN0LnN1c3BlbnNlIiksZD1TeW1ib2wuZm9yKCJyZWFjdC5tZW1vIiksaD1TeW1ib2wuZm9yKCJyZWFjdC5sYXp5IiksbT1TeW1ib2wuaXRlcmF0b3I7dmFyIHA9e2lzTW91bnRlZDpmdW5jdGlvbigpe3JldHVybiExfSxlbnF1ZXVlRm9yY2VVcGRhdGU6ZnVuY3Rpb24oKXt9LGVucXVldWVSZXBsYWNlU3RhdGU6ZnVuY3Rpb24oKXt9LGVucXVldWVTZXRTdGF0ZTpmdW5jdGlvbigpe319LGc9T2JqZWN0LmFzc2lnbixiPXt9O2Z1bmN0aW9uIHYoZSx0LG4pe3RoaXMucHJvcHM9ZSx0aGlzLmNvbnRleHQ9dCx0aGlzLnJlZnM9Yix0aGlzLnVwZGF0ZXI9bnx8cH1mdW5jdGlvbiBmKCl7fWZ1bmN0aW9uIHkoZSx0LG4pe3RoaXMucHJvcHM9ZSx0aGlzLmNvbnRleHQ9dCx0aGlzLnJlZnM9Yix0aGlzLnVwZGF0ZXI9bnx8cH12LnByb3RvdHlwZS5pc1JlYWN0Q29tcG9uZW50PXt9LHYucHJvdG90eXBlLnNldFN0YXRlPWZ1bmN0aW9uKGUsdCl7aWYoIm9iamVjdCIhPXR5cGVvZiBlJiYiZnVuY3Rpb24iIT10eXBlb2YgZSYmbnVsbCE9ZSl0aHJvdyBFcnJvcigic2V0U3RhdGUoLi4uKTogdGFrZXMgYW4gb2JqZWN0IG9mIHN0YXRlIHZhcmlhYmxlcyB0byB1cGRhdGUgb3IgYSBmdW5jdGlvbiB3aGljaCByZXR1cm5zIGFuIG9iamVjdCBvZiBzdGF0ZSB2YXJpYWJsZXMuIik7dGhpcy51cGRhdGVyLmVucXVldWVTZXRTdGF0ZSh0aGlzLGUsdCwic2V0U3RhdGUiKX0sdi5wcm90b3R5cGUuZm9yY2VVcGRhdGU9ZnVuY3Rpb24oZSl7dGhpcy51cGRhdGVyLmVucXVldWVGb3JjZVVwZGF0ZSh0aGlzLGUsImZvcmNlVXBkYXRlIil9LGYucHJvdG90eXBlPXYucHJvdG90eXBlO3ZhciBfPXkucHJvdG90eXBlPW5ldyBmO18uY29uc3RydWN0b3I9eSxnKF8sdi5wcm90b3R5cGUpLF8uaXNQdXJlUmVhY3RDb21wb25lbnQ9ITA7dmFyIEM9QXJyYXkuaXNBcnJheSx4PU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHksRT17Y3VycmVudDpudWxsfSxTPXtrZXk6ITAscmVmOiEwLF9fc2VsZjohMCxfX3NvdXJjZTohMH07ZnVuY3Rpb24gQShlLHQscyl7dmFyIGksbz17fSxhPW51bGwscj1udWxsO2lmKG51bGwhPXQpZm9yKGkgaW4gdm9pZCAwIT09dC5yZWYmJihyPXQucmVmKSx2b2lkIDAhPT10LmtleSYmKGE9IiIrdC5rZXkpLHQpeC5jYWxsKHQsaSkmJiFTLmhhc093blByb3BlcnR5KGkpJiYob1tpXT10W2ldKTt2YXIgbD1hcmd1bWVudHMubGVuZ3RoLTI7aWYoMT09PWwpby5jaGlsZHJlbj1zO2Vsc2UgaWYoMTxsKXtmb3IodmFyIGM9QXJyYXkobCksdT0wO3U8bDt1KyspY1t1XT1hcmd1bWVudHNbdSsyXTtvLmNoaWxkcmVuPWN9aWYoZSYmZS5kZWZhdWx0UHJvcHMpZm9yKGkgaW4gbD1lLmRlZmF1bHRQcm9wcyl2b2lkIDA9PT1vW2ldJiYob1tpXT1sW2ldKTtyZXR1cm57JCR0eXBlb2Y6bix0eXBlOmUsa2V5OmEscmVmOnIscHJvcHM6byxfb3duZXI6RS5jdXJyZW50fX1mdW5jdGlvbiB3KGUpe3JldHVybiJvYmplY3QiPT10eXBlb2YgZSYmbnVsbCE9PWUmJmUuJCR0eXBlb2Y9PT1ufXZhciBNPS9cLysvZztmdW5jdGlvbiBrKGUsdCl7cmV0dXJuIm9iamVjdCI9PXR5cGVvZiBlJiZudWxsIT09ZSYmbnVsbCE9ZS5rZXk/ZnVuY3Rpb24oZSl7dmFyIHQ9eyI9IjoiPTAiLCI6IjoiPTIifTtyZXR1cm4iJCIrZS5yZXBsYWNlKC9bPTpdL2csKGZ1bmN0aW9uKGUpe3JldHVybiB0W2VdfSkpfSgiIitlLmtleSk6dC50b1N0cmluZygzNil9ZnVuY3Rpb24gVChlLHQsaSxvLGEpe3ZhciByPXR5cGVvZiBlOyJ1bmRlZmluZWQiIT09ciYmImJvb2xlYW4iIT09cnx8KGU9bnVsbCk7dmFyIGw9ITE7aWYobnVsbD09PWUpbD0hMDtlbHNlIHN3aXRjaChyKXtjYXNlInN0cmluZyI6Y2FzZSJudW1iZXIiOmw9ITA7YnJlYWs7Y2FzZSJvYmplY3QiOnN3aXRjaChlLiQkdHlwZW9mKXtjYXNlIG46Y2FzZSBzOmw9ITB9fWlmKGwpcmV0dXJuIGE9YShsPWUpLGU9IiI9PT1vPyIuIitrKGwsMCk6byxDKGEpPyhpPSIiLG51bGwhPWUmJihpPWUucmVwbGFjZShNLCIkJi8iKSsiLyIpLFQoYSx0LGksIiIsKGZ1bmN0aW9uKGUpe3JldHVybiBlfSkpKTpudWxsIT1hJiYodyhhKSYmKGE9ZnVuY3Rpb24oZSx0KXtyZXR1cm57JCR0eXBlb2Y6bix0eXBlOmUudHlwZSxrZXk6dCxyZWY6ZS5yZWYscHJvcHM6ZS5wcm9wcyxfb3duZXI6ZS5fb3duZXJ9Cn0oYSxpKyghYS5rZXl8fGwmJmwua2V5PT09YS5rZXk/IiI6KCIiK2Eua2V5KS5yZXBsYWNlKE0sIiQmLyIpKyIvIikrZSkpLHQucHVzaChhKSksMTtpZihsPTAsbz0iIj09PW8/Ii4iOm8rIjoiLEMoZSkpZm9yKHZhciBjPTA7YzxlLmxlbmd0aDtjKyspe3ZhciB1PW8rayhyPWVbY10sYyk7bCs9VChyLHQsaSx1LGEpfWVsc2UgaWYodT1mdW5jdGlvbihlKXtyZXR1cm4gbnVsbD09PWV8fCJvYmplY3QiIT10eXBlb2YgZT9udWxsOiJmdW5jdGlvbiI9PXR5cGVvZihlPW0mJmVbbV18fGVbIkBAaXRlcmF0b3IiXSk/ZTpudWxsfShlKSwiZnVuY3Rpb24iPT10eXBlb2YgdSlmb3IoZT11LmNhbGwoZSksYz0wOyEocj1lLm5leHQoKSkuZG9uZTspbCs9VChyPXIudmFsdWUsdCxpLHU9bytrKHIsYysrKSxhKTtlbHNlIGlmKCJvYmplY3QiPT09cil0aHJvdyB0PVN0cmluZyhlKSxFcnJvcigiT2JqZWN0cyBhcmUgbm90IHZhbGlkIGFzIGEgUmVhY3QgY2hpbGQgKGZvdW5kOiAiKygiW29iamVjdCBPYmplY3RdIj09PXQ/Im9iamVjdCB3aXRoIGtleXMgeyIrT2JqZWN0LmtleXMoZSkuam9pbigiLCAiKSsifSI6dCkrIikuIElmIHlvdSBtZWFudCB0byByZW5kZXIgYSBjb2xsZWN0aW9uIG9mIGNoaWxkcmVuLCB1c2UgYW4gYXJyYXkgaW5zdGVhZC4iKTtyZXR1cm4gbH1mdW5jdGlvbiBSKGUsdCxuKXtpZihudWxsPT1lKXJldHVybiBlO3ZhciBzPVtdLGk9MDtyZXR1cm4gVChlLHMsIiIsIiIsKGZ1bmN0aW9uKGUpe3JldHVybiB0LmNhbGwobixlLGkrKyl9KSksc31mdW5jdGlvbiBOKGUpe2lmKC0xPT09ZS5fc3RhdHVzKXt2YXIgdD1lLl9yZXN1bHQ7KHQ9dCgpKS50aGVuKChmdW5jdGlvbih0KXswIT09ZS5fc3RhdHVzJiYtMSE9PWUuX3N0YXR1c3x8KGUuX3N0YXR1cz0xLGUuX3Jlc3VsdD10KX0pLChmdW5jdGlvbih0KXswIT09ZS5fc3RhdHVzJiYtMSE9PWUuX3N0YXR1c3x8KGUuX3N0YXR1cz0yLGUuX3Jlc3VsdD10KX0pKSwtMT09PWUuX3N0YXR1cyYmKGUuX3N0YXR1cz0wLGUuX3Jlc3VsdD10KX1pZigxPT09ZS5fc3RhdHVzKXJldHVybiBlLl9yZXN1bHQuZGVmYXVsdDt0aHJvdyBlLl9yZXN1bHR9dmFyIEI9e2N1cnJlbnQ6bnVsbH0sTD17dHJhbnNpdGlvbjpudWxsfSxXPXtSZWFjdEN1cnJlbnREaXNwYXRjaGVyOkIsUmVhY3RDdXJyZW50QmF0Y2hDb25maWc6TCxSZWFjdEN1cnJlbnRPd25lcjpFfTt0LkNoaWxkcmVuPXttYXA6Uixmb3JFYWNoOmZ1bmN0aW9uKGUsdCxuKXtSKGUsKGZ1bmN0aW9uKCl7dC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9KSxuKX0sY291bnQ6ZnVuY3Rpb24oZSl7dmFyIHQ9MDtyZXR1cm4gUihlLChmdW5jdGlvbigpe3QrK30pKSx0fSx0b0FycmF5OmZ1bmN0aW9uKGUpe3JldHVybiBSKGUsKGZ1bmN0aW9uKGUpe3JldHVybiBlfSkpfHxbXX0sb25seTpmdW5jdGlvbihlKXtpZighdyhlKSl0aHJvdyBFcnJvcigiUmVhY3QuQ2hpbGRyZW4ub25seSBleHBlY3RlZCB0byByZWNlaXZlIGEgc2luZ2xlIFJlYWN0IGVsZW1lbnQgY2hpbGQuIik7cmV0dXJuIGV9fSx0LkNvbXBvbmVudD12LHQuRnJhZ21lbnQ9aSx0LlByb2ZpbGVyPWEsdC5QdXJlQ29tcG9uZW50PXksdC5TdHJpY3RNb2RlPW8sdC5TdXNwZW5zZT11LHQuX19TRUNSRVRfSU5URVJOQUxTX0RPX05PVF9VU0VfT1JfWU9VX1dJTExfQkVfRklSRUQ9Vyx0LmNsb25lRWxlbWVudD1mdW5jdGlvbihlLHQscyl7aWYobnVsbD09ZSl0aHJvdyBFcnJvcigiUmVhY3QuY2xvbmVFbGVtZW50KC4uLik6IFRoZSBhcmd1bWVudCBtdXN0IGJlIGEgUmVhY3QgZWxlbWVudCwgYnV0IHlvdSBwYXNzZWQgIitlKyIuIik7dmFyIGk9Zyh7fSxlLnByb3BzKSxvPWUua2V5LGE9ZS5yZWYscj1lLl9vd25lcjtpZihudWxsIT10KXtpZih2b2lkIDAhPT10LnJlZiYmKGE9dC5yZWYscj1FLmN1cnJlbnQpLHZvaWQgMCE9PXQua2V5JiYobz0iIit0LmtleSksZS50eXBlJiZlLnR5cGUuZGVmYXVsdFByb3BzKXZhciBsPWUudHlwZS5kZWZhdWx0UHJvcHM7Zm9yKGMgaW4gdCl4LmNhbGwodCxjKSYmIVMuaGFzT3duUHJvcGVydHkoYykmJihpW2NdPXZvaWQgMD09PXRbY10mJnZvaWQgMCE9PWw/bFtjXTp0W2NdKX12YXIgYz1hcmd1bWVudHMubGVuZ3RoLTI7aWYoMT09PWMpaS5jaGlsZHJlbj1zO2Vsc2UgaWYoMTxjKXtsPUFycmF5KGMpO2Zvcih2YXIgdT0wO3U8Yzt1KyspbFt1XT1hcmd1bWVudHNbdSsyXTtpLmNoaWxkcmVuPWx9cmV0dXJueyQkdHlwZW9mOm4sdHlwZTplLnR5cGUsa2V5Om8scmVmOmEscHJvcHM6aSxfb3duZXI6cn19LHQuY3JlYXRlQ29udGV4dD1mdW5jdGlvbihlKXtyZXR1cm4oZT17JCR0eXBlb2Y6bCxfY3VycmVudFZhbHVlOmUsX2N1cnJlbnRWYWx1ZTI6ZSxfdGhyZWFkQ291bnQ6MCxQcm92aWRlcjpudWxsLENvbnN1bWVyOm51bGwsX2RlZmF1bHRWYWx1ZTpudWxsLF9nbG9iYWxOYW1lOm51bGx9KS5Qcm92aWRlcj17JCR0eXBlb2Y6cixfY29udGV4dDplfSxlLkNvbnN1bWVyPWV9LHQuY3JlYXRlRWxlbWVudD1BLHQuY3JlYXRlRmFjdG9yeT1mdW5jdGlvbihlKXt2YXIgdD1BLmJpbmQobnVsbCxlKTtyZXR1cm4gdC50eXBlPWUsdH0sdC5jcmVhdGVSZWY9ZnVuY3Rpb24oKXtyZXR1cm57Y3VycmVudDpudWxsfX0sdC5mb3J3YXJkUmVmPWZ1bmN0aW9uKGUpe3JldHVybnskJHR5cGVvZjpjLHJlbmRlcjplfX0sdC5pc1ZhbGlkRWxlbWVudD13LHQubGF6eT1mdW5jdGlvbihlKXtyZXR1cm57JCR0eXBlb2Y6aCxfcGF5bG9hZDp7X3N0YXR1czotMSxfcmVzdWx0OmV9LF9pbml0Ok59fSx0Lm1lbW89ZnVuY3Rpb24oZSx0KXtyZXR1cm57JCR0eXBlb2Y6ZCx0eXBlOmUsY29tcGFyZTp2b2lkIDA9PT10P251bGw6dH19LHQuc3RhcnRUcmFuc2l0aW9uPWZ1bmN0aW9uKGUpe3ZhciB0PUwudHJhbnNpdGlvbjtMLnRyYW5zaXRpb249e307dHJ5e2UoKX1maW5hbGx5e0wudHJhbnNpdGlvbj10fX0sdC51bnN0YWJsZV9hY3Q9ZnVuY3Rpb24oKXt0aHJvdyBFcnJvcigiYWN0KC4uLikgaXMgbm90IHN1cHBvcnRlZCBpbiBwcm9kdWN0aW9uIGJ1aWxkcyBvZiBSZWFjdC4iKX0sdC51c2VDYWxsYmFjaz1mdW5jdGlvbihlLHQpewpyZXR1cm4gQi5jdXJyZW50LnVzZUNhbGxiYWNrKGUsdCl9LHQudXNlQ29udGV4dD1mdW5jdGlvbihlKXtyZXR1cm4gQi5jdXJyZW50LnVzZUNvbnRleHQoZSl9LHQudXNlRGVidWdWYWx1ZT1mdW5jdGlvbigpe30sdC51c2VEZWZlcnJlZFZhbHVlPWZ1bmN0aW9uKGUpe3JldHVybiBCLmN1cnJlbnQudXNlRGVmZXJyZWRWYWx1ZShlKX0sdC51c2VFZmZlY3Q9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gQi5jdXJyZW50LnVzZUVmZmVjdChlLHQpfSx0LnVzZUlkPWZ1bmN0aW9uKCl7cmV0dXJuIEIuY3VycmVudC51c2VJZCgpfSx0LnVzZUltcGVyYXRpdmVIYW5kbGU9ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBCLmN1cnJlbnQudXNlSW1wZXJhdGl2ZUhhbmRsZShlLHQsbil9LHQudXNlSW5zZXJ0aW9uRWZmZWN0PWZ1bmN0aW9uKGUsdCl7cmV0dXJuIEIuY3VycmVudC51c2VJbnNlcnRpb25FZmZlY3QoZSx0KX0sdC51c2VMYXlvdXRFZmZlY3Q9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gQi5jdXJyZW50LnVzZUxheW91dEVmZmVjdChlLHQpfSx0LnVzZU1lbW89ZnVuY3Rpb24oZSx0KXtyZXR1cm4gQi5jdXJyZW50LnVzZU1lbW8oZSx0KX0sdC51c2VSZWR1Y2VyPWZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gQi5jdXJyZW50LnVzZVJlZHVjZXIoZSx0LG4pfSx0LnVzZVJlZj1mdW5jdGlvbihlKXtyZXR1cm4gQi5jdXJyZW50LnVzZVJlZihlKX0sdC51c2VTdGF0ZT1mdW5jdGlvbihlKXtyZXR1cm4gQi5jdXJyZW50LnVzZVN0YXRlKGUpfSx0LnVzZVN5bmNFeHRlcm5hbFN0b3JlPWZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gQi5jdXJyZW50LnVzZVN5bmNFeHRlcm5hbFN0b3JlKGUsdCxuKX0sdC51c2VUcmFuc2l0aW9uPWZ1bmN0aW9uKCl7cmV0dXJuIEIuY3VycmVudC51c2VUcmFuc2l0aW9uKCl9LHQudmVyc2lvbj0iMTguMi4wIn0sNzc5NDc0KGUsdCxuKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPW4oMTIyNzQ5KX0sNDMxMzY1KGUpe2UuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyOCAyOCIgd2lkdGg9IjI4IiBoZWlnaHQ9IjI4IiBmaWxsPSJub25lIj48cGF0aCBzdHJva2U9ImN1cnJlbnRDb2xvciIgZD0iTTUuNSAxM3YtMi41bTguNSAxMWg2LjVhMiAyIDAgMCAwIDItMnYtOW0tMTcgMHYtMmMwLTEuMS45LTIgMi0yaDEzYTIgMiAwIDAgMSAyIDJ2Mm0tMTcgMGgxNyIvPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZD0iTTEwIDRoMXY0aC0xVjR6TTE3IDRoMXY0aC0xVjR6Ii8+PHBhdGggc3Ryb2tlPSJjdXJyZW50Q29sb3IiIGQ9Ik00IDE4LjVoNy41bTAgMEw4IDIybTMuNS0zLjVMOCAxNSIvPjwvc3ZnPid9LDcyNTg3NyhlKXtlLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMTggMTgiIHdpZHRoPSIxOCIgaGVpZ2h0PSIxOCI+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBkPSJNMTUgOFYzaC01VjJoNnY2aC0xWk0zIDEwdjVoNXYxSDJ2LTZoMVoiLz48L3N2Zz4nfSwyNTUzNDMoZSl7ZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDE4IDE4IiB3aWR0aD0iMTgiIGhlaWdodD0iMTgiPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZD0iTTExIDJ2NWg1djFoLTZWMmgxWk03IDE2di01SDJ2LTFoNnY2SDdaIi8+PC9zdmc+J30sNDYyNzA0KGUpe2UuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxOCAxOCIgd2lkdGg9IjE4IiBoZWlnaHQ9IjE4Ij48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGQ9Ik0xMiA0aDN2MWgtMS4wNGwtLjg4IDkuNjRhMS41IDEuNSAwIDAgMS0xLjUgMS4zNkg2LjQyYTEuNSAxLjUgMCAwIDEtMS41LTEuMzZMNC4wNSA1SDNWNGgzdi0uNUM2IDIuNjcgNi42NyAyIDcuNSAyaDNjLjgzIDAgMS41LjY3IDEuNSAxLjVWNFpNNy41IDNhLjUuNSAwIDAgMC0uNS41VjRoNHYtLjVhLjUuNSAwIDAgMC0uNS0uNWgtM1pNNS4wNSA1bC44NyA5LjU1YS41LjUgMCAwIDAgLjUuNDVoNS4xN2EuNS41IDAgMCAwIC41LS40NUwxMi45NCA1aC03LjlaIi8+PC9zdmc+J30sNzM3NTYxKGUpe2UuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyOCAyOCIgd2lkdGg9IjI4IiBoZWlnaHQ9IjI4Ij48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTExIDRoLTF2Mkg3LjVBMi41IDIuNSAwIDAgMCA1IDguNVYxM2gxdi0yaDE2djguNWMwIC44My0uNjcgMS41LTEuNSAxLjVIMTR2MWg2LjVhMi41IDIuNSAwIDAgMCAyLjUtMi41di0xMUEyLjUgMi41IDAgMCAwIDIwLjUgNkgxOFY0aC0xdjJoLTZWNFptNiA0VjdoLTZ2MWgtMVY3SDcuNUM2LjY3IDcgNiA3LjY3IDYgOC41VjEwaDE2VjguNWMwLS44My0uNjctMS41LTEuNS0xLjVIMTh2MWgtMVptLTUuMTUgMTAuMTUtMy41LTMuNS0uNy43TDEwLjI5IDE4SDR2MWg2LjNsLTIuNjUgMi42NS43LjcgMy41LTMuNS4zNi0uMzUtLjM2LS4zNVoiLz48L3N2Zz4nfSw0MzQwMzcoZSl7ZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDI4IDI4IiB3aWR0aD0iMjgiIGhlaWdodD0iMjgiIGZpbGw9Im5vbmUiPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZD0iTTcgMTguNUEyLjUgMi41IDAgMCAwIDkuNSAyMUgxMnYxSDkuNUEzLjUgMy41IDAgMCAxIDYgMTguNVYxNmgxem0xNSAwYTMuNSAzLjUgMCAwIDEtMy41IDMuNUgxNnYtMWgyLjVhMi41IDIuNSAwIDAgMCAyLjUtMi41VjE2aDF6TTEyIDdIOS41QTIuNSAyLjUgMCAwIDAgNyA5LjVWMTJINlY5LjVBMy41IDMuNSAwIDAgMSA5LjUgNkgxMnptNi41LTFBMy41IDMuNSAwIDAgMSAyMiA5LjVWMTJoLTFWOS41QTIuNSAyLjUgMCAwIDAgMTguNSA3SDE2VjZ6Ii8+PC9zdmc+J30sMTc1NDY3KGUpewplLmV4cG9ydHM9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMjggMjgiIHdpZHRoPSIyOCIgaGVpZ2h0PSIyOCIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBkPSJNOC41IDE3YTIuNSAyLjUgMCAwIDEgMi41IDIuNVYyMmgtMXYtMi41QTEuNSAxLjUgMCAwIDAgOC41IDE4SDZ2LTF6TTIyIDE4aC0yLjVhMS41IDEuNSAwIDAgMC0xLjUgMS41VjIyaC0xdi0yLjVhMi41IDIuNSAwIDAgMSAyLjUtMi41SDIyek0xMSA4LjVBMi41IDIuNSAwIDAgMSA4LjUgMTFINnYtMWgyLjVBMS41IDEuNSAwIDAgMCAxMCA4LjVWNmgxem03IDBhMS41IDEuNSAwIDAgMCAxLjUgMS41SDIydjFoLTIuNUEyLjUgMi41IDAgMCAxIDE3IDguNVY2aDF6Ii8+PC9zdmc+J30sNTgwNTk2KGUpe2UuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxOCAxOCIgd2lkdGg9IjE4IiBoZWlnaHQ9IjE4IiBmaWxsPSJub25lIj48cGF0aCBzdHJva2U9ImN1cnJlbnRDb2xvciIgZD0iTTggNWwzLjUgMy41TDggMTIiLz48L3N2Zz4nfSw0NzA4NjMoZSl7ZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0Ij48ZyBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciI+PGNpcmNsZSBjeD0iMy41IiBjeT0iMy41IiByPSIyIi8+PGNpcmNsZSBjeD0iMTAuNSIgY3k9IjEwLjUiIHI9IjIiLz48cGF0aCBzdHJva2UtbGluZWNhcD0ic3F1YXJlIiBkPSJNOS41IDEuNWwtNSAxMSIvPjwvZz48L3N2Zz4nfSw2OTE1NzIoZSl7ZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjE4IiBoZWlnaHQ9IjE4Ij48cGF0aCBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgZD0iTTExIDEuNWgzLjVhMiAyIDAgMCAxIDIgMlY3bTAgNXYyLjVhMiAyIDAgMCAxLTIgMkgxMW0tNCAwSDMuNWEyIDIgMCAwIDEtMi0yVjExbTAtNFYzLjVhMiAyIDAgMCAxIDItMkg3Ii8+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBkPSJNOC4wMTIgOC42MjNhMi4yMzggMi4yMzggMCAwIDEtLjgxNy0uNzQ3IDEuNzY2IDEuNzY2IDAgMCAxLS4zMTctLjk4OGMwLS41ODQuMTk3LTEuMDQ2LjU5MS0xLjM4Ni4zOTgtLjM0LjkxLS41MSAxLjUzNi0uNTEuNjc3IDAgMS4yMDIuMTcgMS41NzQuNTEuMzcyLjM0LjU1OS44MDQuNTU5IDEuMzkxIDAgLjM0NC0uMTEzLjY5NS0uMzM5IDEuMDUzLS4yMjUuMzU0LS40ODcuNjE2LS43ODQuNzg0Ljk0NS41MyAxLjQxOCAxLjIyNiAxLjQxOCAyLjA5IDAgLjcyNi0uMjE4IDEuMjktLjY1NSAxLjY5MS0uNDM3LjM5OC0xLjAzNy41OTYtMS44LjU5Ni0xLjU5IDAtMi4zODQtLjc2Mi0yLjM4NC0yLjI4OCAwLS40NC4xMzYtLjg3My40MDgtMS4zLjI3Mi0uNDI2LjYwOS0uNzI1IDEuMDEtLjg5NnptMS4zMTYtLjMzM2MuNDg3LS40NTkuNzMtLjkzMy43My0xLjQyNCAwLS4yOTMtLjA5OC0uNTI2LS4yOTUtLjY5OC0uMTk0LS4xNzUtLjQ0Ni0uMjYzLS43NTgtLjI2My0uNzAxIDAtMS4wNTIuMzI0LTEuMDUyLjk3MiAwIC40OC40NTguOTUgMS4zNzUgMS40MTN6bS0uNDc4LjhjLS43ODguNDI2LTEuMTgyIDEuMDAyLTEuMTgyIDEuNzMgMCAuMzkuMTIyLjcxNy4zNjUuOTgyLjI0NC4yNjIuNTU5LjM5Mi45NDYuMzkyLjQgMCAuNzMtLjEyOS45ODgtLjM4Ni4yNjEtLjI1OC4zOTItLjU4OC4zOTItLjk4OSAwLS4yOS0uMDktLjU2Mi0uMjY5LS44MTYtLjE3OS0uMjU4LS41OTItLjU2Mi0xLjI0LS45MTN6Ii8+PC9zdmc+J30sNDMwNDkxKGUpe2UuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxOCIgaGVpZ2h0PSIxOCI+PHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIGQ9Ik0xMSAxLjVoMy41YTIgMiAwIDAgMSAyIDJWN20wIDV2Mi41YTIgMiAwIDAgMS0yIDJIMTFtLTQgMEgzLjVhMiAyIDAgMCAxLTItMlYxMW0wLTRWMy41YTIgMiAwIDAgMSAyLTJINyIvPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZD0iTTcuMzYyIDkuMTZsLS4zNjUtLjI1M1Y1LjFoMy45MTV2LjkxM0g4LjAxN3YxLjkxMmMuMjY1LS4xOTcuNjAyLS4yOTUgMS4wMS0uMjk1LjczIDAgMS4yODcuMjE4IDEuNjcuNjU1LjM4Ny40MzcuNTggMS4wNTguNTggMS44NjQgMCAxLjk3My0uODc5IDIuOTYtMi42MzcgMi45Ni0uNzM0IDAtMS4zNDMtLjIwNS0xLjgyNi0uNjEzbC40MTQtLjg5N2MuNDg3LjM5OC45NTYuNTk2IDEuNDA3LjU5NiAxLjAxIDAgMS41MTQtLjYzIDEuNTE0LTEuODkgMC0xLjE3NS0uNDk3LTEuNzYyLTEuNDkzLTEuNzYyLS40OCAwLS45MTEuMjA2LTEuMjk0LjYxOHoiLz48L3N2Zz4nfSw4OTI0OTEoZSl7ZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjE4IiBoZWlnaHQ9IjE4Ij48cGF0aCBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgZD0iTTExIDEuNWgzLjVhMiAyIDAgMCAxIDIgMlY3bTAgNXYyLjVhMiAyIDAgMCAxLTIgMkgxMW0tNCAwSDMuNWEyIDIgMCAwIDEtMi0yVjExbTAtNFYzLjVhMiAyIDAgMCAxIDItMkg3Ii8+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBkPSJNMTAuODUzIDEwLjg1N1YxM2gtMS4wMnYtMi4xNDNINi4yNXYtLjYxMmw0LjIyNy01LjE0NmguMzc2djQuOTNoLjc5NXYuODI4aC0uNzk1em0tMS4wMi0zLjYxNWwtMi4zMSAyLjc4OGgyLjMxVjcuMjQyeiIvPjwvc3ZnPid9LDM1MjA4NShlKXsKZS5leHBvcnRzPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjE4IiBoZWlnaHQ9IjE4Ij48cGF0aCBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgZD0iTTExIDEuNWgzLjVhMiAyIDAgMCAxIDIgMlY3bTAgNXYyLjVhMiAyIDAgMCAxLTIgMkgxMW0tNCAwSDMuNWEyIDIgMCAwIDEtMi0yVjExbTAtNFYzLjVhMiAyIDAgMCAxIDItMkg3Ii8+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBkPSJNOS43MjUgNC45OTJsLjUyMS41NzRjLS4zMTUuMTI2LS43NzIuNTUtMS4zNyAxLjI3My0uNTk0LjcyLS45MjMgMS4yNzUtLjk4OCAxLjY2NS4yOTctLjI4Ni43MTEtLjQzIDEuMjQtLjQzLjY5NiAwIDEuMjUyLjIyMyAxLjY3MS42NjcuNDIuNDQ0LjYyOSAxLjA1NC42MjkgMS44MzEgMCAuNzctLjIxNyAxLjM5LS42NSAxLjg1OS0uNDMuNDY5LS45Ny43MDMtMS42MjIuNzAzLTEuNzI2IDAtMi41OS0xLjE0NC0yLjU5LTMuNDMyIDAtLjk1Mi4zMzctMS45MjYgMS4wMS0yLjkyMi42NzctLjk5OSAxLjM5NC0xLjU5NSAyLjE1LTEuNzg4em0tMi4wMyA1LjU0OGMwIDEuMTIuNDYgMS42ODEgMS4zOCAxLjY4MS4zODcgMCAuNjkxLS4xNDUuOTEzLS40MzUuMjI2LS4yOTMuMzM5LS42OC4zMzktMS4xNiAwLS40OTgtLjExOC0uODk1LS4zNTUtMS4xOTJhMS4xMTQgMS4xMTQgMCAwIDAtLjkxMy0uNDQ2Yy0uOTEgMC0xLjM2NC41MTctMS4zNjQgMS41NTJ6Ii8+PC9zdmc+J30sMTAxMTU3KGUpe2UuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxOCIgaGVpZ2h0PSIxOCI+PHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIGQ9Ik0xMSAxLjVoMy41YTIgMiAwIDAgMSAyIDJWN20wIDV2Mi41YTIgMiAwIDAgMS0yIDJIMTFtLTQgMEgzLjVhMiAyIDAgMCAxLTItMlYxMW0wLTRWMy41YTIgMiAwIDAgMSAyLTJINyIvPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZD0iTTYuNzAxIDEyLjQ0MWwuNTE2LS44MjdjLjM1LjM4Ny43OTUuNTggMS4zMzIuNTguOTk1IDAgMS40OTMtLjQ4NyAxLjQ5My0xLjQ2IDAtLjQ0NS0uMTQ1LS44MDQtLjQzNS0xLjA4LS4yOS0uMjgtLjY3NS0uNDItMS4xNTUtLjQyaC0uMDg2di0uODdoLjA0OWMuOTEgMCAxLjM2NC0uNCAxLjM2NC0xLjIwMiAwLS44MzgtLjQyOC0xLjI1Ny0xLjI4NC0xLjI1Ny0uNDY1IDAtLjgzNi4xNTYtMS4xMTIuNDY3bC0uNDc4LS43M2MuMzMzLS40MzQuODktLjY1IDEuNjctLjY1LjY4OCAwIDEuMjQ5LjE4NCAxLjY4Mi41NTMuNDMzLjM2NS42NS44MzQuNjUgMS40MDcgMCAuNDM3LS4xMjIuODI0LS4zNjYgMS4xNi0uMjQuMzM3LS41MjIuNTYyLS44NDguNjc3LjQ1MS4xNDcuODEuMzk4IDEuMDc0Ljc1Mi4yNjkuMzUuNDAzLjc3Ny40MDMgMS4yNzggMCAuNzMtLjIzMSAxLjI5NS0uNjkzIDEuNjkyLS40NjIuMzk4LTEuMTEuNTk2LTEuOTQ0LjU5Ni0uMzUxIDAtLjY5NS0uMDY0LTEuMDMyLS4xOTMtLjMzNi0uMTMyLS42MDMtLjI5LS44LS40NzN6Ii8+PC9zdmc+J30sNDc0MzQzKGUpe2UuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxOCIgaGVpZ2h0PSIxOCI+PHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIGQ9Ik0xMSAxLjVoMy41YTIgMiAwIDAgMSAyIDJWN20wIDV2Mi41YTIgMiAwIDAgMS0yIDJIMTFtLTQgMEgzLjVhMiAyIDAgMCAxLTItMlYxMW0wLTRWMy41YTIgMiAwIDAgMSAyLTJINyIvPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZD0iTTYuNDg2IDEzdi0uMjE1TDguOTUyIDkuMDFjLjUxNS0uNzkxLjc3My0xLjQ2Mi43NzMtMi4wMTQgMC0uNzI3LS40MS0xLjA5LTEuMjMtMS4wOS0uMjkgMC0uNTYyLjA3Ny0uODE2LjIzLS4yNTUuMTUxLS40MzkuMzQzLS41NTQuNTc1bC0uNjkyLS41NjljLjEyMS0uMzUuMzYtLjYzLjcxNC0uODM4LjM1OC0uMjA3Ljc5LS4zMTEgMS4yOTQtLjMxMS43NTYgMCAxLjM0Ny4xNzUgMS43NzMuNTI2LjQyNi4zNDcuNjM5Ljg0LjYzOSAxLjQ3NyAwIC41OS0uMjgzIDEuMzM2LS44NDkgMi4yMzRsLTEuNzY3IDIuODA0aDMuMDgzVjEzSDYuNDg2eiIvPjwvc3ZnPid9LDM4MDU2KGUpe2UuZXhwb3J0cz0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyOCAyOCIgd2lkdGg9IjI4IiBoZWlnaHQ9IjI4IiBmaWxsPSJub25lIj48cGF0aCBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2Utd2lkdGg9IjEuNSIgZD0iTTcgMTVsNSA1TDIzIDkiLz48L3N2Zz4nfSw4NTY3NzAoZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCx7bmFub2lkOigpPT5zfSk7bGV0IHM9KGU9MjEpPT5jcnlwdG8uZ2V0UmFuZG9tVmFsdWVzKG5ldyBVaW50OEFycmF5KGUpKS5yZWR1Y2UoKChlLHQpPT5lKz0odCY9NjMpPDM2P3QudG9TdHJpbmcoMzYpOnQ8NjI/KHQtMjYpLnRvU3RyaW5nKDM2KS50b1VwcGVyQ2FzZSgpOnQ+NjI/Ii0iOiJfIiksIiIpfX1dKTs="}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/69697.94f7a3c68e5b71e90ad0.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.091Z","timestamp":1785148034091,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/69697.94f7a3c68e5b71e90ad0.js HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a61b1a8-9d25\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Thu, 23 Jul 2026 06:16:08 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/23/2026 10:17:28\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 93e03e7ef395c6932f61c61195f444a0\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":40229,"size_decoded":13400,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, Unicode text, UTF-8 text, with very long lines (3071)","md5":"ea7468c239d76d650fad0348355c0723","sha1":"1679d20934fd0a870c0c4f6841783538386be8df","sha256":"ff8eafc7002dfc18017837f333b737baf6428680efa8976420f7545ba953bdfe","sha512":"cf2c6f55abd325793a9a4a962acfca9cea5a94ee011812cc1d100a66f9250a768e7d62a0c4d661cd711718cc67e00c4038f82d532a6daeebf8078a78b9d62c89","ssdeep":"768:FahKIrmNWI3Vn8gACkdBEECQrhuWfGwsGiaYOBzYJdncihxGddE/HAKZAPt+Z0Mn:45I3Vn8gK/NTeezYW91k2+","tlshash":"8f03d9d673b2b61587a64092f87d8503e36c1a8164cc253ef66c8cdf264de48b136bbd","first_seen":"2026-07-23T14:00:31.639092Z","last_seen":"2026-07-27T12:48:39.727295Z","times_seen":103,"resource_available":true,"data":"InVzZSBzdHJpY3QiOyhzZWxmLndlYnBhY2tDaHVua3RyYWRpbmd2aWV3PXNlbGYud2VicGFja0NodW5rdHJhZGluZ3ZpZXd8fFtdKS5wdXNoKFtbNjExMjYsNjk2OTddLHs0MTE5OTIoZSx0LHMpe3MuZCh0LHtoYXNGaW5hbmNpYWxzQnlBdmFpbGFiaWxpdHlGbGFnczooKT0+aX0pO3ZhciByPXMoMTU2ODI5KTtuZXcgU2V0KFsic3RvY2siLCJkciIsInJpZ2h0Iiwid2FycmFudCIsInN0cnVjdHVyZWQiLCJib25kIl0pLG5ldyBTZXQoWyJtdXR1YWwiLCJ1bml0IiwidHJ1c3QiLCJyZWl0IiwiY2xvc2VkZW5kIiwiZXRuIl0pLG5ldyBTZXQoWyJldG4iXSksbmV3IFNldChbImNvbnZlcnRpYmxlIiwiY29ycG9yYXRlIl0pLG5ldyBTZXQoWyJjZmQiXSk7ZnVuY3Rpb24gaShlLHQscyl7aWYodCYmcyYmKDAsci5pc0V0ZikodCxzKSlyZXR1cm4hMTtjb25zdHtkaXZpZGVuZHNfYXZhaWxhYmlsaXR5OmksZWFybmluZ3NfYXZhaWxhYmlsaXR5Om4sZmluYW5jaWFsc19hdmFpbGFiaWxpdHk6b309ZTtyZXR1cm4gMT09PW98fDE9PT1pfHwxPT09bn19LDg4OTM5NyhlLHQscyl7cy5kKHQse3Nob3dGaW5hbmNpYWxzRGlhbG9nOigpPT5pfSk7dmFyIHI9cyg4OTA4MzUpO2Z1bmN0aW9uIGkoZSl7ci5jdXJyZW50TGF5b3V0LnZhbHVlKCk/LnNob3dBbmFseXNpc1ZpZXcoImZpbmFuY2lhbHMiLGUpfX0sODI3MDI5KGUsdCxzKXt2YXIgcixpLG47cy5kKHQse0VVX01BUktFVFM6KCk9Pm8sR2xvYmFsTWFya2V0OigpPT5uLE5vblN0b2NrTWFya2V0OigpPT5pLFN0b2NrTWFya2V0OigpPT5yfSksZnVuY3Rpb24oZSl7ZS5BbWVyaWNhPSJhbWVyaWNhIixlLkFyZ2VudGluYT0iYXJnZW50aW5hIixlLkF1c3RyYWxpYT0iYXVzdHJhbGlhIixlLkF1c3RyaWE9ImF1c3RyaWEiLGUuQmFocmFpbj0iYmFocmFpbiIsZS5CYW5nbGFkZXNoPSJiYW5nbGFkZXNoIixlLkJlbGdpdW09ImJlbGdpdW0iLGUuQnVsZ2FyaWE9ImJ1bGdhcmlhIixlLkJyYXppbD0iYnJhemlsIixlLkNhbmFkYT0iY2FuYWRhIixlLkNoaWxlPSJjaGlsZSIsZS5DaGluYT0iY2hpbmEiLGUuQ29sb21iaWE9ImNvbG9tYmlhIixlLkNyb2F0aWE9ImNyb2F0aWEiLGUuQ3lwcnVzPSJjeXBydXMiLGUuQ3plY2g9ImN6ZWNoIixlLkRlbm1hcms9ImRlbm1hcmsiLGUuRWd5cHQ9ImVneXB0IixlLkVzdG9uaWE9ImVzdG9uaWEiLGUuRmlubGFuZD0iZmlubGFuZCIsZS5GcmFuY2U9ImZyYW5jZSIsZS5HZXJtYW55PSJnZXJtYW55IixlLkdyZWVjZT0iZ3JlZWNlIixlLkhvbmdLb25nPSJob25na29uZyIsZS5IdW5nYXJ5PSJodW5nYXJ5IixlLkljZWxhbmQ9ImljZWxhbmQiLGUuSW5kaWE9ImluZGlhIixlLkluZG9uZXNpYT0iaW5kb25lc2lhIixlLklyZWxhbmQ9ImlyZWxhbmQiLGUuSXNyYWVsPSJpc3JhZWwiLGUuSXRhbHk9Iml0YWx5IixlLkphcGFuPSJqYXBhbiIsZS5LZW55YT0ia2VueWEiLGUuS3V3YWl0PSJrdXdhaXQiLGUuTGF0dmlhPSJsYXR2aWEiLGUuTGl0aHVhbmlhPSJsaXRodWFuaWEiLGUuTHV4ZW1ib3VyZz0ibHV4ZW1ib3VyZyIsZS5NYWxheXNpYT0ibWFsYXlzaWEiLGUuTWV4aWNvPSJtZXhpY28iLGUuTW9yb2Njbz0ibW9yb2NjbyIsZS5OZXRoZXJsYW5kcz0ibmV0aGVybGFuZHMiLGUuTmV3WmVhbGFuZD0ibmV3emVhbGFuZCIsZS5OaWdlcmlhPSJuaWdlcmlhIixlLk5vcndheT0ibm9yd2F5IixlLlBha2lzdGFuPSJwYWtpc3RhbiIsZS5QZXJ1PSJwZXJ1IixlLlBoaWxpcHBpbmVzPSJwaGlsaXBwaW5lcyIsZS5Qb2xhbmQ9InBvbGFuZCIsZS5Qb3J0dWdhbD0icG9ydHVnYWwiLGUuUWF0YXI9InFhdGFyIixlLlJvbWFuaWE9InJvbWFuaWEiLGUuUnVzc2lhPSJydXNzaWEiLGUuU2F1ZGlBcmFiaWE9ImtzYSIsZS5TZXJiaWE9InNlcmJpYSIsZS5TaW5nYXBvcmU9InNpbmdhcG9yZSIsZS5TbG92YWtpYT0ic2xvdmFraWEiLGUuU2xvdmVuaWE9InNsb3ZlbmlhIixlLlNvdXRoQWZyaWNhPSJyc2EiLGUuU291dGhLb3JlYT0ia29yZWEiLGUuU3BhaW49InNwYWluIixlLlNyaUxhbmthPSJzcmlsYW5rYSIsZS5Td2VkZW49InN3ZWRlbiIsZS5Td2l0emVybGFuZD0ic3dpdHplcmxhbmQiLGUuVGFpd2FuPSJ0YWl3YW4iLGUuVGhhaWxhbmQ9InRoYWlsYW5kIixlLlR1bmlzaWE9InR1bmlzaWEiLGUuVHVya2V5PSJ0dXJrZXkiLGUuVUFFPSJ1YWUiLGUuVUs9InVrIixlLlZlbmV6dWVsYT0idmVuZXp1ZWxhIixlLlZpZXRuYW09InZpZXRuYW0ifShyfHwocj17fSkpLGZ1bmN0aW9uKGUpe2UuRm9yZXg9ImZvcmV4IixlLkNyeXB0bz0iY3J5cHRvIixlLkNvaW49ImNvaW4iLGUuQ0ZEPSJjZmQiLGUuQm9uZHM9ImJvbmRzIixlLkJvbmQ9ImJvbmQiLGUuRnV0dXJlcz0iZnV0dXJlcyIsZS5PcHRpb25zPSJvcHRpb25zIn0oaXx8KGk9e30pKSxmdW5jdGlvbihlKXtlLkdsb2JhbD0iZ2xvYmFsIn0obnx8KG49e30pKTtyLkJlbGdpdW0sci5DeXBydXMsci5EZW5tYXJrLHIuRXN0b25pYSxyLkZpbmxhbmQsci5GcmFuY2Usci5HZXJtYW55LHIuR3JlZWNlLHIuSHVuZ2FyeSxyLkljZWxhbmQsci5JdGFseSxyLkxhdHZpYSxyLkxpdGh1YW5pYSxyLkx1eGVtYm91cmcsci5OZXRoZXJsYW5kcyxyLk5vcndheSxyLlBvbGFuZCxyLlBvcnR1Z2FsLHIuUm9tYW5pYSxyLlJ1c3NpYSxyLlNlcmJpYSxyLlNsb3Zha2lhLHIuU3BhaW4sci5Td2VkZW4sci5Td2l0emVybGFuZCxyLlR1cmtleSxyLlVLO2NvbnN0IG89W3IuQmVsZ2l1bSxyLkN5cHJ1cyxyLkRlbm1hcmssci5Fc3RvbmlhLHIuRmlubGFuZCxyLkZyYW5jZSxyLkdlcm1hbnksci5HcmVlY2Usci5IdW5nYXJ5LHIuSXRhbHksci5MYXR2aWEsci5MaXRodWFuaWEsci5MdXhlbWJvdXJnLHIuTmV0aGVybGFuZHMsci5Qb2xhbmQsci5Qb3J0dWdhbCxyLlJvbWFuaWEsci5TbG92YWtpYSxyLlNwYWluLHIuU3dlZGVuXX0sNTk1NTE3KGUsdCxzKXtzLmQodCx7Z2V0U2NhbjJEYXRhOigpPT5oLGdldFNjYW5EYXRhOigpPT51fSk7dmFyIHI9cygzODQwMTcpLGk9cygyMTYwNzkpLG49cygxNTg3NjMpLG89cygzMjYwNDgpLGE9cygxMzM4NzQpO2NvbnN0IGw9InVzZXIgZG9lcyBub3QgaGF2ZSByaWdodHMgdG8gd2F0Y2hsaXN0Igo7Y2xhc3MgXyBleHRlbmRzIGEuRXJyb3JSZXNwb25zZXtjb25zdHJ1Y3RvcihlKXtzdXBlcihlKSx0aGlzLm5hbWU9IldhdGNobGlzdFJpZ2h0c0Vycm9yIixlLmVycm9yP3RoaXMubWVzc2FnZT1sOnRoaXMubWVzc2FnZT0idW5rbm93biBlcnJvciJ9fWZ1bmN0aW9uIGMoZSx0LHMsYSxjLHU9e0FjY2VwdDoiYXBwbGljYXRpb24vanNvbiJ9KXtjb25zdCBoPXMuZ2V0TWFya2V0cygpLGQ9bmV3IFVSTCgoMCxpLmdldEJhY2tlbmRVcmwpKGgsYSkrZSk7YyYmZC5zZWFyY2hQYXJhbXMuYXBwZW5kKCJsYWJlbC1wcm9kdWN0IixjKTtjb25zdCBtPUpTT04uc3RyaW5naWZ5KHMuZ2V0UGFyYW1zKCkpO3JldHVybigwLHIuZmV0Y2gpKGQudG9TdHJpbmcoKSx7c2lnbmFsOnQsbWV0aG9kOiJQT1NUIixib2R5Om0sY3JlZGVudGlhbHM6ImluY2x1ZGUiLGhlYWRlcnM6dX0pLnRoZW4oKGU9PntpZig0MDA9PT1lLnN0YXR1cyl7Y29uc3R7c3RhdHVzOnQsc3RhdHVzVGV4dDpzfT1lO3JldHVybiBlLmpzb24oKS50aGVuKChlPT57Y29uc3Qgcj1lLmVycm9yO2lmKHZvaWQgMCE9PShpPXIpJiZpLmluY2x1ZGVzKGwpKXRocm93IG5ldyBfKHtzdGF0dXM6dCxzdGF0dXNUZXh0OnMsZXJyb3I6cn0pO3ZhciBpO3Rocm93IG5ldyBvLkJhZFJlcXVlc3RFcnJvclJlc3BvbnNlKHtzdGF0dXM6dCxzdGF0dXNUZXh0OnMsZXJyb3I6cn0pfSkpfWlmKGUub2spcmV0dXJuIGUuanNvbigpLnRoZW4oKGU9PmUpKTt0aHJvdyBuZXcgbi5IdHRwRXJyb3JSZXNwb25zZShlKX0pKX1mdW5jdGlvbiB1KGUsdCxzLHIpe3JldHVybiBjKCJzY2FuIixlLHQscyxyKX1mdW5jdGlvbiBoKGUsdCxzLHIpe3JldHVybiBjKCJzY2FuMiIsZSx0LHMscil9fSwzOTI1NzMoZSx0LHMpe3MuZCh0LHtDb2x1bW5zQ29sbGVjdGlvbjooKT0+cn0pO2NsYXNzIHJ7Y29uc3RydWN0b3IoKXt0aGlzLl9jb2x1bW5zPW5ldyBTZXR9c2V0U3RhdGUoZSl7cmV0dXJuIHRoaXMuX2NvbHVtbnMuY2xlYXIoKSxlLmZvckVhY2godGhpcy5fY29sdW1ucy5hZGQsdGhpcy5fY29sdW1ucyksdGhpc31hZGRDb2x1bW4oZSl7cmV0dXJuIHRoaXMuX2NvbHVtbnMuYWRkKGUpLHRoaXN9ZGVsZXRlQ29sdW1uKGUpe3JldHVybiB0aGlzLl9jb2x1bW5zLmRlbGV0ZShlKSx0aGlzfWdldFN0YXRlKCl7cmV0dXJuWy4uLnRoaXMuX2NvbHVtbnNdfXJlc2V0U3RhdGUoKXtyZXR1cm4gdGhpcy5fY29sdW1ucy5jbGVhcigpLHRoaXN9aXNFbXB0eSgpe3JldHVybiAwPT09dGhpcy5fY29sdW1ucy5zaXplfX19LDI0ODI2KGUsdCxzKXtzLmQodCx7RmlsdGVyQ29sbGVjdGlvbjooKT0+cn0pO2NsYXNzIHJ7Y29uc3RydWN0b3IoKXt0aGlzLl9maWx0ZXJzPW5ldyBTZXR9aXNFbXB0eSgpe3JldHVybiAwPT09dGhpcy5fZmlsdGVycy5zaXplfWNsb25lKCl7cmV0dXJuKG5ldyByKS5zZXRTdGF0ZSh0aGlzLmdldFN0YXRlKCkpfWdldFN0YXRlKCl7cmV0dXJuWy4uLnRoaXMuX2ZpbHRlcnNdfXNldFN0YXRlKGUpe3JldHVybiB0aGlzLl9yZXdyaXRlRmlsdGVyU2V0KHRoaXMuX2ZpbHRlcnMsZSksdGhpc31yZXNldFN0YXRlKCl7cmV0dXJuIHRoaXMuX2ZpbHRlcnMuY2xlYXIoKSx0aGlzfWFkZENvbmRpdGlvbihlKXtjb25zdCB0PUFycmF5LmlzQXJyYXkoZSk/ZTpbZV07Zm9yKGNvbnN0IGUgb2YgdCl0aGlzLl9maWx0ZXJzLmFkZChlKTtyZXR1cm4gdGhpc31kZWxldGVDb25kaXRpb24oZSl7cmV0dXJuIHRoaXMuX2ZpbHRlcnMuZGVsZXRlKGUpLHRoaXN9X3Jld3JpdGVGaWx0ZXJTZXQoZSx0KXtlLmNsZWFyKCksdC5mb3JFYWNoKGUuYWRkLGUpfX19LDgxMjU4MyhlLHQscyl7cy5kKHQse0ZpbHRlcjI6KCk9PnJ9KTtjbGFzcyBye2NvbnN0cnVjdG9yKCl7dGhpcy5fZmlsdGVyPXZvaWQgMH1yZXNldEZpbHRlcigpe3JldHVybiB0aGlzLl9maWx0ZXI9dm9pZCAwLHRoaXN9Z2V0U3RhdGUoKXtyZXR1cm4gdGhpcy5fZmlsdGVyP0pTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy5fZmlsdGVyKSk6dm9pZCAwfXNldFN0YXRlKGUpe3JldHVybiB0aGlzLl9maWx0ZXI9ZSx0aGlzfWFkZEZpbHRlcjIoZSl7Y29uc3QgdD10aGlzLmdldFN0YXRlKCk7aWYoIXQpcmV0dXJuIHRoaXMuc2V0U3RhdGUoe29wZXJhdG9yOmUub3BlcmF0b3Isb3BlcmFuZHM6ZS5vcGVyYW5kc30pLHRoaXM7Y29uc3R7b3BlcmF0b3I6cyxvcGVyYW5kczpyfT10O3JldHVybiB0aGlzLnNldFN0YXRlKHtvcGVyYXRvcjpzLG9wZXJhbmRzOlsuLi5yLC4uLmUub3BlcmFuZHNdfSksdGhpc319fSwyMTgxNDUoZSx0LHMpe3MuZCh0LHtPcHRpb25zOigpPT5yfSk7Y2xhc3Mgcntjb25zdHJ1Y3Rvcigpe3RoaXMuX29wdGlvbnM9e319c2V0U3RhdGUoZSl7cmV0dXJuIHRoaXMuX29wdGlvbnM9ZSx0aGlzfXJlc3RyaWN0RW9kKCl7cmV0dXJuIHRoaXMuX29wdGlvbnMuZGF0YV9yZXN0cmljdGlvbnM9IlBSRVZfQkFSIix0aGlzfW5vRW9kUmVzdHJpY3Rpb24oKXtyZXR1cm4gZGVsZXRlIHRoaXMuX29wdGlvbnMuZGF0YV9yZXN0cmljdGlvbnMsdGhpc31zZXRMYW5nKGUpe3JldHVybiB0aGlzLl9vcHRpb25zLmxhbmc9ZSx0aGlzfXJlc2V0TGFuZygpe3JldHVybiBkZWxldGUgdGhpcy5fb3B0aW9ucy5sYW5nLHRoaXN9Z2V0U3RhdGUoKXtyZXR1cm57Li4udGhpcy5fb3B0aW9uc319cmVzZXRPcHRpb25zKCl7cmV0dXJuIHRoaXMuX29wdGlvbnM9e30sdGhpc31pc0VtcHR5KCl7cmV0dXJuIDA9PT1PYmplY3QudmFsdWVzKHRoaXMuX29wdGlvbnMpLmxlbmd0aH19fSwxOTUyMjMoZSx0LHMpe3MuZCh0LHtTY2FuUHJpY2VDb252ZXJzaW9uOigpPT5yfSk7Y2xhc3Mgcntjb25zdHJ1Y3Rvcigpe3RoaXMuX3ByaWNlQ29udmVyc2lvbj17fX1zZXRQcmljZUNvbnZlcnNpb24oZSl7cmV0dXJuIHRoaXMuX3ByaWNlQ29udmVyc2lvbj1lLHRoaXN9Z2V0U3RhdGUoKXtyZXR1cm57Li4udm9pZCAwIT09dGhpcy5fcHJpY2VDb252ZXJzaW9uLnRvX3N5bWJvbD97dG9fc3ltYm9sOnRoaXMuX3ByaWNlQ29udmVyc2lvbi50b19zeW1ib2x9Ont9LC4uLnZvaWQgMCE9PXRoaXMuX3ByaWNlQ29udmVyc2lvbi50b19jdXJyZW5jeT97CnRvX2N1cnJlbmN5OnRoaXMuX3ByaWNlQ29udmVyc2lvbi50b19jdXJyZW5jeX06e30sLi4udm9pZCAwIT09dGhpcy5fcHJpY2VDb252ZXJzaW9uLmRpc2FibGVkP3tkaXNhYmxlZDp0aGlzLl9wcmljZUNvbnZlcnNpb24uZGlzYWJsZWR9Ont9fX1yZXNldCgpe3JldHVybiB0aGlzLl9wcmljZUNvbnZlcnNpb249e30sdGhpc31pc0VtcHR5KCl7cmV0dXJuIDA9PT1PYmplY3QudmFsdWVzKHRoaXMuX3ByaWNlQ29udmVyc2lvbikubGVuZ3RofX19LDgyNDUwMihlLHQscyl7cy5kKHQse1JhbmdlOigpPT5yfSk7Y2xhc3Mgcntjb25zdHJ1Y3Rvcigpe3RoaXMuX3JhbmdlPVtdfWdldFN0YXRlKCl7cmV0dXJuWy4uLnRoaXMuX3JhbmdlXX1zZXRTdGF0ZShlKXtyZXR1cm4gdGhpcy5fcmFuZ2U9ZSx0aGlzfXJlc2V0U3RhdGUoKXtyZXR1cm4gdGhpcy5fcmFuZ2U9W10sdGhpc31pc0VtcHR5KCl7cmV0dXJuIDA9PT10aGlzLl9yYW5nZS5sZW5ndGh9fX0sMTgwNjY3KGUsdCxzKXtzLmQodCx7U2NhblBhcmFtc01hbmFnZXI6KCk9PnV9KTt2YXIgcj1zKDI0ODI2KSxpPXMoMjE4MTQ1KSxuPXMoMTk1MjIzKSxvPXMoNzM4ODEpLGE9cygzOTI1NzMpLGw9cyg4MjQ1MDIpLF89cygzMjMwMjcpLGM9cyg4MTI1ODMpO2NsYXNzIHV7Y29uc3RydWN0b3IoKXt0aGlzLl9maWx0ZXJDb2xsZWN0aW9uPW5ldyByLkZpbHRlckNvbGxlY3Rpb24sdGhpcy5fZmlsdGVyQ29sbGVjdGlvbk9SPW5ldyByLkZpbHRlckNvbGxlY3Rpb24sdGhpcy5fY29sdW1ucz1uZXcgYS5Db2x1bW5zQ29sbGVjdGlvbix0aGlzLl9pZ25vcmVVbmtub3duRmllbGRzPSExLHRoaXMuX29wdGlvbnM9bmV3IGkuT3B0aW9ucyx0aGlzLl9wcmljZUNvbnZlcnNpb249bmV3IG4uU2NhblByaWNlQ29udmVyc2lvbix0aGlzLl9yYW5nZT1uZXcgbC5SYW5nZSx0aGlzLl9zb3J0PW5ldyBfLlNvcnQsdGhpcy5fc3ltYm9scz1uZXcgby5TeW1ib2xzLHRoaXMuX21hcmtldHM9W119Z2V0UGFyYW1zKCl7Y29uc3QgZT10aGlzLmdldEZpbHRlcjIoKSx0PWU/e2ZpbHRlcjI6ZX06dm9pZCAwLHM9dGhpcy5nZXRQcmVzZXQoKSxyPXM/e3ByZXNldDpzfTp2b2lkIDA7cmV0dXJue2NvbHVtbnM6dGhpcy5pc0NvbHVtbnNFbXB0eSgpP3ZvaWQgMDp0aGlzLmdldENvbHVtbnMoKSxmaWx0ZXI6dGhpcy5pc0ZpbHRlcnNFbXB0eSgpP3ZvaWQgMDp0aGlzLmdldEZpbHRlcnMoKSxmaWx0ZXJPUjp0aGlzLmlzRmlsdGVyT3JFbXB0eSgpP3ZvaWQgMDp0aGlzLmdldEZpbHRlck9SKCksaWdub3JlX3Vua25vd25fZmllbGRzOnRoaXMuZ2V0SWdub3JlVW5rbm93bkZpZWxkcygpLG9wdGlvbnM6dGhpcy5pc09wdGlvbnNFbXB0eSgpP3ZvaWQgMDp0aGlzLmdldE9wdGlvbnMoKSxwcmljZV9jb252ZXJzaW9uOnRoaXMuaXNQcmljZUNvbnZlcnNpb25zRW1wdHkoKT92b2lkIDA6dGhpcy5nZXRQcmljZUNvbnZlcnNpb24oKSxyYW5nZTp0aGlzLmlzUmFuZ2VFbXB0eSgpP3ZvaWQgMDp0aGlzLmdldFJhbmdlKCksc29ydDp0aGlzLmlzU29ydEVtcHR5KCk/dm9pZCAwOnRoaXMuZ2V0U29ydCgpLHN5bWJvbHM6dGhpcy5pc1N5bWJvbHNFbXB0eSgpP3ZvaWQgMDp0aGlzLmdldFN5bWJvbHMoKSxtYXJrZXRzOnRoaXMuaXNNYXJrZXRzRW1wdHkoKT92b2lkIDA6dGhpcy5nZXRNYXJrZXRzKCksaW5kZXhfZmlsdGVyczp0aGlzLmdldEluZGV4RmlsdGVycygpLC4uLnIsLi4udH19Y2xvbmUoKXtjb25zdCBlPW5ldyB1LHQ9dGhpcy5nZXRQYXJhbXMoKTtyZXR1cm4gZS5zZXRQYXJhbXModCksZX1nZXRGaWx0ZXJzQ29sbGVjdGlvbkNsb25lKCl7cmV0dXJuIHRoaXMuX2ZpbHRlckNvbGxlY3Rpb24uY2xvbmUoKX1zZXRQYXJhbXMoZSl7Y29uc3QgdD17Y29sdW1uczooKT0+dGhpcy5zZXRDb2x1bW5zKGUuY29sdW1ucyksZmlsdGVyMjooKT0+dGhpcy5zZXRGaWx0ZXIyKGUuZmlsdGVyMiksZmlsdGVyOigpPT50aGlzLnNldEZpbHRlcnMoZS5maWx0ZXIpLGZpbHRlck9SOigpPT50aGlzLnNldEZpbHRlck9SKGUuZmlsdGVyT1IpLGlnbm9yZV91bmtub3duX2ZpZWxkczooKT0+ZS5pZ25vcmVfdW5rbm93bl9maWVsZHM/dGhpcy5pZ25vcmVVbmtub3duRmllbGRzKCk6dGhpcy5kb05vdElnbm9yZVVua25vd25GaWVsZHMoKSxtYXJrZXRzOigpPT50aGlzLnNldE1hcmtldHMoZS5tYXJrZXRzKSxvcHRpb25zOigpPT50aGlzLnNldE9wdGlvbnMoZS5vcHRpb25zKSxwcmljZV9jb252ZXJzaW9uOigpPT50aGlzLnNldFByaWNlQ29udmVyc2lvbihlLnByaWNlX2NvbnZlcnNpb24pLHJhbmdlOigpPT50aGlzLnNldFJhbmdlKGUucmFuZ2UpLHNvcnQ6KCk9PnRoaXMuc2V0U29ydChlLnNvcnQpLHN5bWJvbHM6KCk9PnRoaXMuc2V0U3ltYm9scyhlLnN5bWJvbHMpLHByZXNldDooKT0+dGhpcy5zZXRQcmVzZXQoZS5wcmVzZXQpLGluZGV4X2ZpbHRlcnM6KCk9PnRoaXMuc2V0SW5kZXhGaWx0ZXJzKGUuaW5kZXhfZmlsdGVycyl9O2Zvcihjb25zdFtzLHJdb2YgT2JqZWN0LmVudHJpZXModCkpZS5oYXNPd25Qcm9wZXJ0eShzKSYmdm9pZCAwIT09ZVtzXSYmcigpO3JldHVybiB0aGlzfXNldEZpbHRlcnMoZSl7cmV0dXJuIHRoaXMuX2ZpbHRlckNvbGxlY3Rpb24uc2V0U3RhdGUoZSksdGhpc31hZGRGaWx0ZXIoZSl7cmV0dXJuIHRoaXMuX2ZpbHRlckNvbGxlY3Rpb24uYWRkQ29uZGl0aW9uKGUpLHRoaXN9Z2V0RmlsdGVycygpe3JldHVybiB0aGlzLl9maWx0ZXJDb2xsZWN0aW9uLmdldFN0YXRlKCl9ZGVsZXRlRmlsdGVyKGUpe3JldHVybiB0aGlzLl9maWx0ZXJDb2xsZWN0aW9uLmRlbGV0ZUNvbmRpdGlvbihlKSx0aGlzfXJlc2V0RmlsdGVycygpe3JldHVybiB0aGlzLl9maWx0ZXJDb2xsZWN0aW9uLnJlc2V0U3RhdGUoKSx0aGlzfWlzRmlsdGVyc0VtcHR5KCl7cmV0dXJuIHRoaXMuX2ZpbHRlckNvbGxlY3Rpb24uaXNFbXB0eSgpfXNldEZpbHRlck9SKGUpe3JldHVybiB0aGlzLl9maWx0ZXJDb2xsZWN0aW9uT1Iuc2V0U3RhdGUoZSksdGhpc31hZGRGaWx0ZXJPUihlKXtyZXR1cm4gdGhpcy5fZmlsdGVyQ29sbGVjdGlvbk9SLmFkZENvbmRpdGlvbihlKSx0aGlzfWdldEZpbHRlck9SKCl7CnJldHVybiB0aGlzLl9maWx0ZXJDb2xsZWN0aW9uT1IuZ2V0U3RhdGUoKX1kZWxldGVGaWx0ZXJPUihlKXtyZXR1cm4gdGhpcy5fZmlsdGVyQ29sbGVjdGlvbk9SLmRlbGV0ZUNvbmRpdGlvbihlKSx0aGlzfXJlc2V0RmlsdGVyT1IoKXtyZXR1cm4gdGhpcy5fZmlsdGVyQ29sbGVjdGlvbk9SLnJlc2V0U3RhdGUoKSx0aGlzfWlzRmlsdGVyT3JFbXB0eSgpe3JldHVybiB0aGlzLl9maWx0ZXJDb2xsZWN0aW9uT1IuaXNFbXB0eSgpfXNldEZpbHRlcjIoZSl7cmV0dXJuIHRoaXMuX2ZpbHRlcjJ8fCh0aGlzLl9maWx0ZXIyPW5ldyBjLkZpbHRlcjIpLHRoaXMuX2ZpbHRlcjIuc2V0U3RhdGUoZSksdGhpc31hZGRGaWx0ZXIyKGUpe3JldHVybiB0aGlzLl9maWx0ZXIyfHwodGhpcy5fZmlsdGVyMj1uZXcgYy5GaWx0ZXIyKSx0aGlzLl9maWx0ZXIyLmFkZEZpbHRlcjIoZSksdGhpc31nZXRGaWx0ZXIyKCl7aWYodGhpcy5fZmlsdGVyMilyZXR1cm4gdGhpcy5fZmlsdGVyMi5nZXRTdGF0ZSgpfXJlc2V0RmlsdGVyMigpe3JldHVybiB0aGlzLl9maWx0ZXIyJiZ0aGlzLl9maWx0ZXIyLnJlc2V0RmlsdGVyKCksdGhpc31nZXRPcHRpb25zKCl7cmV0dXJuIHRoaXMuX29wdGlvbnMuZ2V0U3RhdGUoKX1zZXRPcHRpb25zKGUpe3JldHVybiB0aGlzLl9vcHRpb25zLnNldFN0YXRlKGUpLHRoaXN9cmVzZXRPcHRpb25zKCl7cmV0dXJuIHRoaXMuX29wdGlvbnMucmVzZXRPcHRpb25zKCksdGhpc31yZXN0cmljdEVvZCgpe3JldHVybiB0aGlzLl9vcHRpb25zLnJlc3RyaWN0RW9kKCksdGhpc31ub0VvZFJlc3RyaWN0aW9uKCl7cmV0dXJuIHRoaXMuX29wdGlvbnMubm9Fb2RSZXN0cmljdGlvbigpLHRoaXN9c2V0T3B0aW9uc0xhbmcoZSl7cmV0dXJuIHRoaXMuX29wdGlvbnMuc2V0TGFuZyhlKSx0aGlzfXJlc2V0T3B0aW9uc0xhbmcoKXtyZXR1cm4gdGhpcy5fb3B0aW9ucy5yZXNldExhbmcoKSx0aGlzfWlzT3B0aW9uc0VtcHR5KCl7cmV0dXJuIHRoaXMuX29wdGlvbnMuaXNFbXB0eSgpfWdldFN5bWJvbHMoKXtyZXR1cm4gdGhpcy5fc3ltYm9scy5nZXRTdGF0ZSgpfXNldFN5bWJvbHMoZSl7cmV0dXJuIHRoaXMuX3N5bWJvbHMuc2V0U3RhdGUoZSksdGhpc31yZXNldFN5bWJvbHMoKXtyZXR1cm4gdGhpcy5fc3ltYm9scy5yZXNldFN0YXRlKCksdGhpc31zZXRUaWNrZXJzKGUpe3JldHVybiB0aGlzLl9zeW1ib2xzLnNldFRpY2tlcnMoZSksdGhpc31yZXNldFRpY2tlcnMoKXtyZXR1cm4gdGhpcy5fc3ltYm9scy5yZXNldFRpY2tlcnMoKSx0aGlzfXNldFN5bWJvbHNldChlKXtyZXR1cm4gdGhpcy5fc3ltYm9scy5zZXRTeW1ib2xzZXQoZSksdGhpc31yZXNldFN5bWJvbHNldCgpe3JldHVybiB0aGlzLl9zeW1ib2xzLnJlc2V0U3ltYm9sc2V0KCksdGhpc31zZXRUeXBlcyhlKXtyZXR1cm4gdGhpcy5fc3ltYm9scy5zZXRUeXBlcyhlKSx0aGlzfXJlc2V0VHlwZXMoKXtyZXR1cm4gdGhpcy5fc3ltYm9scy5yZXNldFR5cGVzKCksdGhpc31zZXRHcm91cHMoZSl7cmV0dXJuIHRoaXMuX3N5bWJvbHMuc2V0R3JvdXBzKGUpLHRoaXN9aXNTeW1ib2xzRW1wdHkoKXtyZXR1cm4gdGhpcy5fc3ltYm9scy5pc0VtcHR5KCl9Z2V0Q29sdW1ucygpe3JldHVybiB0aGlzLl9jb2x1bW5zLmdldFN0YXRlKCl9YWRkQ29sdW1ucyhlKXtjb25zdCB0PUFycmF5LmlzQXJyYXkoZSk/ZTpbZV07Zm9yKGNvbnN0IGUgb2YgdCl0aGlzLl9jb2x1bW5zLmFkZENvbHVtbihlKTtyZXR1cm4gdGhpc31zZXRDb2x1bW5zKGUpe3JldHVybiB0aGlzLl9jb2x1bW5zLnNldFN0YXRlKGUpLHRoaXN9cmVzZXRDb2x1bW5zKCl7cmV0dXJuIHRoaXMuX2NvbHVtbnMucmVzZXRTdGF0ZSgpLHRoaXN9ZGVsZXRlQ29sdW1uKGUpe3JldHVybiB0aGlzLl9jb2x1bW5zLmRlbGV0ZUNvbHVtbihlKSx0aGlzfWlzQ29sdW1uc0VtcHR5KCl7cmV0dXJuIHRoaXMuX2NvbHVtbnMuaXNFbXB0eSgpfXNldFJhbmdlKGUpe3JldHVybiB0aGlzLl9yYW5nZS5zZXRTdGF0ZShlKSx0aGlzfWdldFJhbmdlKCl7cmV0dXJuIHRoaXMuX3JhbmdlLmdldFN0YXRlKCl9cmVzZXRSYW5nZSgpe3JldHVybiB0aGlzLl9yYW5nZS5yZXNldFN0YXRlKCksdGhpc31pc1JhbmdlRW1wdHkoKXtyZXR1cm4gdGhpcy5fcmFuZ2UuaXNFbXB0eSgpfXNldFNvcnQoZSl7cmV0dXJuIHRoaXMuX3NvcnQuc2V0U3RhdGUoZSksdGhpc31nZXRTb3J0KCl7cmV0dXJuIHRoaXMuX3NvcnQuZ2V0U3RhdGUoKX1yZXNldFNvcnQoKXtyZXR1cm4gdGhpcy5fc29ydC5yZXNldFN0YXRlKCksdGhpc31zb3J0QXNjKCl7cmV0dXJuIHRoaXMuX3NvcnQuc29ydEFzYygpLHRoaXN9c29ydERlc2MoKXtyZXR1cm4gdGhpcy5fc29ydC5zb3J0RGVzYygpLHRoaXN9c29ydEJ5KGUpe3JldHVybiB0aGlzLl9zb3J0LnNvcnRCeShlKSx0aGlzfWlzU29ydEVtcHR5KCl7cmV0dXJuIHRoaXMuX3NvcnQuaXNFbXB0eSgpfXNldFByaWNlQ29udmVyc2lvbihlKXtyZXR1cm4gdGhpcy5fcHJpY2VDb252ZXJzaW9uLnNldFByaWNlQ29udmVyc2lvbihlKSx0aGlzfWdldFByaWNlQ29udmVyc2lvbigpe3JldHVybiB0aGlzLl9wcmljZUNvbnZlcnNpb24uZ2V0U3RhdGUoKX1yZXNldFByaWNlQ29udmVyc2lvbigpe3JldHVybiB0aGlzLl9wcmljZUNvbnZlcnNpb24ucmVzZXQoKSx0aGlzfWlzUHJpY2VDb252ZXJzaW9uc0VtcHR5KCl7cmV0dXJuIHRoaXMuX3ByaWNlQ29udmVyc2lvbi5pc0VtcHR5KCl9c2V0UHJlc2V0KGUpe3JldHVybiB0aGlzLl9wcmVzZXQ9ZSx0aGlzfWdldFByZXNldCgpe3JldHVybiB0aGlzLl9wcmVzZXR9cmVzZXRQcmVzZXQoKXtyZXR1cm4gZGVsZXRlIHRoaXMuX3ByZXNldCx0aGlzfXNldEluZGV4RmlsdGVycyhlKXtyZXR1cm4gdGhpcy5faW5kZXhGaWx0ZXJzPWUsdGhpc31nZXRJbmRleEZpbHRlcnMoKXtyZXR1cm4gdGhpcy5faW5kZXhGaWx0ZXJzfXJlc2V0SW5kZXhGaWx0ZXJzKCl7cmV0dXJuIGRlbGV0ZSB0aGlzLl9pbmRleEZpbHRlcnMsdGhpc31kb05vdElnbm9yZVVua25vd25GaWVsZHMoKXtyZXR1cm4gdGhpcy5faWdub3JlVW5rbm93bkZpZWxkcz0hMSx0aGlzfWlnbm9yZVVua25vd25GaWVsZHMoKXsKcmV0dXJuIHRoaXMuX2lnbm9yZVVua25vd25GaWVsZHM9ITAsdGhpc31nZXRJZ25vcmVVbmtub3duRmllbGRzKCl7cmV0dXJuIHRoaXMuX2lnbm9yZVVua25vd25GaWVsZHN9c2V0TWFya2V0cyhlKXtyZXR1cm4gdGhpcy5fbWFya2V0cz1bLi4uZV0sdGhpc31nZXRNYXJrZXRzKCl7cmV0dXJuIHRoaXMuX21hcmtldHN9aXNNYXJrZXRzRW1wdHkoKXtyZXR1cm4gMD09PXRoaXMuX21hcmtldHMubGVuZ3RofWdldFdhdGNobGlzdCgpe3JldHVybiB0aGlzLmdldFN5bWJvbHMoKS53YXRjaGxpc3R9c2V0V2F0Y2hsaXN0KGUpe3JldHVybiB0aGlzLnNldFN5bWJvbHMoey4uLnRoaXMuZ2V0U3ltYm9scygpLHdhdGNobGlzdDplfSksdGhpc31yZXNldFdhdGNobGlzdCgpe3JldHVybiB0aGlzLl9zeW1ib2xzLnJlc2V0V2F0Y2hsaXN0KCksdGhpc31yZXNldFBhcmFtcygpe3JldHVybiB0aGlzLl9maWx0ZXIyPXZvaWQgMCx0aGlzLmRvTm90SWdub3JlVW5rbm93bkZpZWxkcygpLHRoaXMucmVzZXRDb2x1bW5zKCksdGhpcy5yZXNldEZpbHRlcnMoKSx0aGlzLnJlc2V0RmlsdGVyT1IoKSx0aGlzLnJlc2V0T3B0aW9ucygpLHRoaXMucmVzZXRQcmljZUNvbnZlcnNpb24oKSx0aGlzLnJlc2V0UmFuZ2UoKSx0aGlzLnJlc2V0U3ltYm9scygpLHRoaXMucmVzZXRJbmRleEZpbHRlcnMoKSx0aGlzLnJlc2V0V2F0Y2hsaXN0KCksdGhpc319fSwzMjMwMjcoZSx0LHMpe3MuZCh0LHtTb3J0OigpPT5yfSk7Y2xhc3Mgcntjb25zdHJ1Y3Rvcigpe3RoaXMuX3NvcnQ9e319c2V0U3RhdGUoZSl7cmV0dXJuIHRoaXMuX3NvcnQ9ZSx0aGlzfWdldFN0YXRlKCl7cmV0dXJuey4uLnRoaXMuX3NvcnR9fXNvcnRCeShlKXtyZXR1cm4gdGhpcy5fc29ydC5zb3J0Qnk9ZSx0aGlzLl9zb3J0LnNvcnRPcmRlcnx8dGhpcy5zb3J0RGVzYygpLHRoaXN9c29ydEFzYygpe3JldHVybiB0aGlzLl9zb3J0LnNvcnRCeSYmKHRoaXMuX3NvcnQuc29ydE9yZGVyPSJhc2MiKSx0aGlzfXNvcnREZXNjKCl7cmV0dXJuIHRoaXMuX3NvcnQuc29ydEJ5JiYodGhpcy5fc29ydC5zb3J0T3JkZXI9ImRlc2MiKSx0aGlzfXJlc2V0U3RhdGUoKXtyZXR1cm4gdGhpcy5fc29ydD17fSx0aGlzfWlzRW1wdHkoKXtyZXR1cm4gMD09PU9iamVjdC52YWx1ZXModGhpcy5fc29ydCkubGVuZ3RofX19LDczODgxKGUsdCxzKXtzLmQodCx7U3ltYm9sczooKT0+cn0pO2NsYXNzIHJ7Y29uc3RydWN0b3IoKXt0aGlzLl9zeW1ib2xzPXt9fXNldFN0YXRlKGUpe3JldHVybiB0aGlzLl9zeW1ib2xzPWUsdGhpc31nZXRTdGF0ZSgpe2NvbnN0IGU9dGhpcy5fc3ltYm9scy5xdWVyeT97cXVlcnk6ey4uLnRoaXMuX3N5bWJvbHMucXVlcnl9fTp7fSx0PXRoaXMuX3N5bWJvbHMudGlja2Vycz97dGlja2VyczpbLi4udGhpcy5fc3ltYm9scy50aWNrZXJzXX06W10scz10aGlzLl9zeW1ib2xzLmdyb3Vwcz97Z3JvdXBzOnRoaXMuX3N5bWJvbHMuZ3JvdXBzLm1hcCgoZT0+KHt0eXBlOmUudHlwZSx2YWx1ZXM6Wy4uLmUudmFsdWVzXX0pKSl9Ont9LHI9dGhpcy5fc3ltYm9scy5zeW1ib2xzZXQ/e3N5bWJvbHNldDpbLi4udGhpcy5fc3ltYm9scy5zeW1ib2xzZXRdfTpbXSxpPXRoaXMuX3N5bWJvbHMud2F0Y2hsaXN0P3t3YXRjaGxpc3Q6e2lkOnRoaXMuX3N5bWJvbHMud2F0Y2hsaXN0LmlkfX06e307cmV0dXJuey4uLmUsLi4udCwuLi5zLC4uLnIsLi4udm9pZCAwPT09dGhpcy5fc3ltYm9scy5ibGFja19saXN0X3N5bWJvbHM/e306e2JsYWNrX2xpc3Rfc3ltYm9sczp0aGlzLl9zeW1ib2xzLmJsYWNrX2xpc3Rfc3ltYm9sc30sLi4uaX19c2V0VGlja2VycyhlKXtyZXR1cm4gdGhpcy5fc3ltYm9scy50aWNrZXJzPWUsdGhpc31yZXNldFRpY2tlcnMoKXtyZXR1cm4gdGhpcy5fc3ltYm9scy50aWNrZXJzPVtdLHRoaXN9c2V0VHlwZXMoZSl7cmV0dXJuIHRoaXMuX3N5bWJvbHM9ey4uLnRoaXMuX3N5bWJvbHMscXVlcnk6ey4uLnRoaXMuX3N5bWJvbHMucXVlcnksdHlwZXM6ZX19LHRoaXN9cmVzZXRUeXBlcygpe3JldHVybiB0aGlzLl9zeW1ib2xzPXsuLi50aGlzLl9zeW1ib2xzLHF1ZXJ5OnsuLi50aGlzLl9zeW1ib2xzLnF1ZXJ5LHR5cGVzOltdfX0sdGhpc31yZXNldFN0YXRlKCl7cmV0dXJuIHRoaXMuX3N5bWJvbHM9e30sdGhpc31zZXRHcm91cHMoZSl7cmV0dXJuIHRoaXMuX3N5bWJvbHMuZ3JvdXBzPWUsdGhpc31yZXNldEdyb3Vwcygpe3JldHVybiBkZWxldGUgdGhpcy5fc3ltYm9scy5ncm91cHMsdGhpc31zZXRTeW1ib2xzZXQoZSl7cmV0dXJuIHRoaXMuX3N5bWJvbHMuc3ltYm9sc2V0PWUsdGhpc31yZXNldFN5bWJvbHNldCgpe3JldHVybiB0aGlzLl9zeW1ib2xzLnN5bWJvbHNldD1bXSx0aGlzfXJlc2V0V2F0Y2hsaXN0KCl7Y29uc3R7d2F0Y2hsaXN0OmUsLi4udH09dGhpcy5fc3ltYm9scztyZXR1cm4gdGhpcy5fc3ltYm9scz10LHRoaXN9aXNFbXB0eSgpe3JldHVybiAwPT09T2JqZWN0LnZhbHVlcyh0aGlzLl9zeW1ib2xzKS5sZW5ndGh9fX0sMTI4ODE0KGUsdCxzKXtzLmQodCx7UXVvdGVTZXNzaW9uU25hcHNob3RlcjooKT0+dX0pO3ZhciByPXMoOTQ4MzgwKSxpPXMoMTUwMTUwKSxuPXMoMjE0OTg3KSxvPXMoMTM4NjM4KSxhPXMoMzY3OTQ2KSxsPXMoOTcwNzc0KSxfPXMoMzA5MDUyKTtjb25zdCBjPW5ldyBNYXAoW1siY2hhbmdlIiwiY2giXSxbImxhc3RfcHJpY2UiLCJscCJdLFsiY2hhbmdlX3BlcmNlbnQiLCJjaHAiXSxbInVwZGF0ZV9tb2RlX3NlY29uZHMiLG51bGxdXSk7bmV3IE1hcChbWyJjaCIsImNoYW5nZSJdLFsibHAiLCJsYXN0X3ByaWNlIl0sWyJjaHAiLCJjaGFuZ2VfcGVyY2VudCJdXSk7Y2xhc3MgdXtjb25zdHJ1Y3RvcihlKXtpZih0aGlzLl9vblN5bWJvbERhdGE9bmV3IHIuRGVsZWdhdGUsdGhpcy5faW5jb21wbGV0ZT1uZXcgU2V0LHRoaXMuX3VwZGF0ZWRGaWVsZHM9bmV3IE1hcCx0aGlzLl9jb25uZWN0ZWQ9ITEsdGhpcy5fYmF0Y2hlcj1udWxsLHRoaXMuX2hhbmRsZXI9ZT0+e3N3aXRjaChlLm1ldGhvZCl7Y2FzZSJjb25uZWN0ZWQiOnRoaXMuX2Nvbm5lY3RlZHx8KHRoaXMuX2Nvbm5lY3RlZD0hMCx0aGlzLl9oYW5kbGVDb25uZWN0ZWQoKSk7YnJlYWsKO2Nhc2UicXVvdGVfc3ltYm9sX2RhdGEiOnRoaXMuX2Nvbm5lY3RlZCYmdGhpcy5faGFuZGxlU3ltYm9sRGF0YShlLnBhcmFtc1swXSk7YnJlYWs7Y2FzZSJxdW90ZV9jb21wbGV0ZWQiOnRoaXMuX2Nvbm5lY3RlZCYmdGhpcy5faGFuZGxlQ29tcGxldGVEYXRhKGUucGFyYW1zWzBdKTticmVhaztjYXNlImRpc2Nvbm5lY3RlZCI6dGhpcy5fY29ubmVjdGVkJiYodGhpcy5fY29ubmVjdGVkPSExLHRoaXMuX2JhdGNoZXI9bnVsbCl9fSwwPT09ZS5maWVsZHMubGVuZ3RoKXRocm93IG5ldyBFcnJvcignU3VwcG9ydCBmb3IgZW1wdHkgImZpZWxkcyIgYXJyYXkgaXMgbm90IGltcGxlbWVudGVkJyk7Y29uc3R7cHJvdmlkZXI6dD1sLlF1b3RlU2Vzc2lvbn09ZTt0aGlzLl9maWVsZHM9bmV3IFNldChlLmZpZWxkcyksdGhpcy5fc2Vzc2lvbj1uZXcgdChlLmFwaSxbInNuYXBzaG90ZXIiLGUubmFtZSwoMCxpLnJhbmRvbUhhc2gpKCldLmZpbHRlcihCb29sZWFuKS5qb2luKCJfIikpLHRoaXMuX3Nlc3Npb24uY29ubmVjdCh0aGlzLl9oYW5kbGVyKX1nZXRTbmFwc2hvdFN5bmMoZSx0KXtjb25zdCBzPXUuY2FjaGUuZ2V0KGUpO3JldHVybiBzJiZ0aGlzLl9pc1NuYXBzaG90UmVhZHkocyx7ZmllbGRzOnQsdGltZXN0YW1wOm51bGx9KT9zOm51bGx9Z2V0U25hcHNob3RzRm9yQWxsU3luYyhlLHQpe3JldHVybiBlLm1hcCgoZT0+dGhpcy5nZXRTbmFwc2hvdFN5bmMoZSx0KSkpfWdldFNuYXBzaG90KGUsdCxzKXtjb25zdCByPXM/LnNpZ25hbD8/bnVsbCxpPXM/LmZyZXNobmVzcyxhPXZvaWQgMCE9PWk/RGF0ZS5ub3coKS1pOm51bGw7cmV0dXJuIG5ldyBQcm9taXNlKCgocyxpKT0+e2lmKHImJnIuYWJvcnRlZCl0aHJvdygwLG4uY3JlYXRlQWJvcnRFcnJvcikoKTtjb25zdCBsPSgpPT57dGhpcy5fb25TeW1ib2xEYXRhLnVuc3Vic2NyaWJlKHRoaXMsXyksaSgoMCxuLmNyZWF0ZUFib3J0RXJyb3IpKCkpfSxfPShpPWUpPT57aWYoaSE9PWUpcmV0dXJuO2NvbnN0IG49dS5jYWNoZS5nZXQoZSk7biYmdGhpcy5faXNTbmFwc2hvdFJlYWR5KG4se3RpbWVzdGFtcDphLHN5bWJvbDplLGZpZWxkczp0fSkmJih0aGlzLl9vblN5bWJvbERhdGEudW5zdWJzY3JpYmUodGhpcyxfKSxyPy5yZW1vdmVFdmVudExpc3RlbmVyKCJhYm9ydCIsbCkscyhuKSl9O2lmKCEoKCk9Pntjb25zdCByPXUuY2FjaGUuZ2V0KGUpO2lmKCFyKXJldHVybiExO2NvbnN0IGk9KDAsby5lbnN1cmVOb3ROdWxsKSh1LmNhY2hlLmdldFRpbWVzKGUpKTtyZXR1cm4hIXRoaXMuX2lzU25hcHNob3RSZWFkeShyLHtmaWVsZHM6dCxzeW1ib2w6ZSx0aW1lc3RhbXA6YSx0aW1lczppfSkmJihzKHIpLCEwKX0pKCkmJihyPy5hZGRFdmVudExpc3RlbmVyKCJhYm9ydCIsbCx7b25jZTohMH0pLHRoaXMuX29uU3ltYm9sRGF0YS5zdWJzY3JpYmUodGhpcyxfKSwhdGhpcy5faW5jb21wbGV0ZS5oYXMoZSkpKXtpZih0aGlzLl91cGRhdGVkRmllbGRzLnNldChlLG5ldyBTZXQpLHRoaXMuX2luY29tcGxldGUuYWRkKGUpLCF0aGlzLl9jb25uZWN0ZWQpcmV0dXJuO2lmKG51bGw9PT10aGlzLl9iYXRjaGVyKXtjb25zdCB0PXRoaXMuX2JhdGNoZXI9e3N5bWJvbHM6bmV3IFNldChbZV0pLHByb21pc2U6UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKCk9Pnt0aGlzLl9iYXRjaGVyPT09dCYmKHRoaXMuX3Nlc3Npb24ucXVvdGVBZGRTeW1ib2xzKFsuLi50LnN5bWJvbHNdKSx0aGlzLl9iYXRjaGVyPW51bGwpfSkpfX1lbHNlIHRoaXMuX2JhdGNoZXIuc3ltYm9scy5hZGQoZSl9fSkpfWdldFNuYXBzaG90c0ZvckFsbChlLHQscyl7cmV0dXJuIFByb21pc2UuYWxsKGUubWFwKChlPT50aGlzLmdldFNuYXBzaG90KGUsdCxzKSkpKX1zdGF0aWMgcmVsYXgoZSl7cmV0dXJuIGV9c3RhdGljIGlzU3VjY2VzcyhlKXtyZXR1cm4iZXJyb3IiIT09ZS5zdGF0dXN9c3RhdGljIGhhc0FsbEZpZWxkcyhlLHQpe2Zvcihjb25zdCBzIG9mIEFycmF5LmZyb20odCkpaWYoIWUuaGFzT3duUHJvcGVydHkocykpcmV0dXJuITE7cmV0dXJuITB9X2lzU25hcHNob3RSZWFkeShlLHQpe2NvbnN0e2ZpZWxkczpzLHRpbWVzdGFtcDpyLHRpbWVzOmksc3ltYm9sOm59PXQ7cmV0dXJuImVycm9yIj09PWUuc3RhdHVzfHwobnVsbCE9PXImJmk/dGhpcy5faXNBbGxGaWVsZHNVcFRvRGF0ZShlLGkscyxyKTpudWxsIT09ciYmbj90aGlzLl9pc0FsbEZpZWxkc1VwZGF0ZWQoZSxuLHMpOnRoaXMuX2hhc0FsbEZpZWxkcyhlLHMpKX1faXNBbGxGaWVsZHNVcGRhdGVkKGUsdCxzKXtpZigiZXJyb3IiPT09ZS5zdGF0dXMpcmV0dXJuITA7Y29uc3Qgcj10aGlzLl91cGRhdGVkRmllbGRzLmdldCh0KTtpZighcnx8IXIuc2l6ZSlyZXR1cm4hMTtmb3IoY29uc3QgZSBvZiBBcnJheS5mcm9tKHMpKWlmKCFyLmhhcyhlKSlyZXR1cm4hMTtyZXR1cm4hMH1faGFzQWxsRmllbGRzKGUsdCl7cmV0dXJuIHUuaGFzQWxsRmllbGRzKGUudmFsdWVzLEFycmF5LmZyb20odCkpfV9pc0FsbEZpZWxkc1VwVG9EYXRlKGUsdCxzLHIpe2lmKCJlcnJvciI9PT1lLnN0YXR1cylyZXR1cm4hMDtpZighdClyZXR1cm4hMTtmb3IoY29uc3QgZSBvZiBBcnJheS5mcm9tKHMpKXtjb25zdCBzPXQuZ2V0KGUpO2lmKCF0LmhhcyhlKXx8dm9pZCAwPT09cylyZXR1cm4hMTtpZihzPHIpcmV0dXJuITF9cmV0dXJuITB9X2hhbmRsZUNvbm5lY3RlZCgpe2lmKHRoaXMuX2ZpZWxkcy5zaXplPjApe2NvbnN0IGU9Wy4uLnRoaXMuX2ZpZWxkc10uZmxhdE1hcCgoZT0+e2NvbnN0IHQ9Yy5nZXQoZSk7cmV0dXJuIG51bGwhPT10P3Q/P2U6W119KSk7dGhpcy5fc2Vzc2lvbi5xdW90ZVNldEZpZWxkcyhlKX10aGlzLl9pbmNvbXBsZXRlLnNpemU+MCYmdGhpcy5fc2Vzc2lvbi5xdW90ZUFkZFN5bWJvbHMoWy4uLnRoaXMuX2luY29tcGxldGVdKX1faGFuZGxlQ29tcGxldGVEYXRhKGUpe2NvbnN0IHQ9dS5jYWNoZS5nZXQoZSk/P3tzeW1ib2xuYW1lOmUsc3RhdHVzOiJvayIsdmFsdWVzOnt9fTt1LmNhY2hlLnVwZGF0ZSh0LHRoaXMuX2ZpZWxkcywhMCksdGhpcy5fdXBkYXRlZEZpZWxkcy5zZXQoZSx0aGlzLl9maWVsZHMpLAp0aGlzLl9zZXNzaW9uLnF1b3RlUmVtb3ZlU3ltYm9scyhbZV0pLHRoaXMuX2luY29tcGxldGUuZGVsZXRlKGUpLHRoaXMuX29uU3ltYm9sRGF0YS5maXJlKGUpfV9oYW5kbGVTeW1ib2xEYXRhKGUpeygwLGEubm9ybWFsaXplVXBkYXRlTW9kZSkoZS52YWx1ZXMpLHUuY2FjaGUudXBkYXRlKGUsdGhpcy5fZmllbGRzLCExKTtjb25zdCB0PWUuc3ltYm9sbmFtZSxzPSgwLG8uZW5zdXJlRGVmaW5lZCkodGhpcy5fdXBkYXRlZEZpZWxkcy5nZXQodCkpLHI9bmV3IFNldChzKTtmb3IoY29uc3QgdCBvZiB0aGlzLl9maWVsZHMpZS52YWx1ZXMuaGFzT3duUHJvcGVydHkodCkmJnIuYWRkKHQpO3RoaXMuX3VwZGF0ZWRGaWVsZHMuc2V0KHQsciksImVycm9yIj09PWUuc3RhdHVzP3RoaXMuX2hhbmRsZUNvbXBsZXRlRGF0YSh0KTp0aGlzLl9vblN5bWJvbERhdGEuZmlyZSh0KX19dS5jYWNoZT1fLlFVT1RFX0ZJRUxEU19DQUNIRX0sNjE1NTQ3KGUsdCxzKXtzLmQodCx7RGV0YWlsc0RhdGFQcm92aWRlcjooKT0+QSxnZXRCb25kc1JlcXVlc3RQYXJhbXM6KCk9PkIsZ2V0RnV0dXJlc1JlcXVlc3RQYXJhbXM6KCk9PlAsZ2V0U2NyZWVuZXJSZXF1ZXN0UGFyYW1zOigpPT5NLHByZXBhcmVCb25kc0RhdGE6KCk9PnEscHJlcGFyZUZ1dHVyZXNEYXRhOigpPT54fSk7dmFyIHI9cygxNTAxNTApLGk9cygxMzg2MzgpLG49cygxODA2NjcpLG89cyg4MjcwMjkpO2NvbnN0IGE9ZT0+ImZ1dHVyZXMiPT09ZT9vLk5vblN0b2NrTWFya2V0LkZ1dHVyZXM6by5HbG9iYWxNYXJrZXQuR2xvYmFsO3ZhciBsLF89cyg2MTkxMjMpLGM9cygxNTY4MjkpLHU9cyg3MzEwOTEpLGg9cygyMTQ5ODcpLGQ9cyg3NzA4MjUpOyFmdW5jdGlvbihlKXtlLkFsbFN0b2Nrcz0iYWxsX3N0b2NrcyIsZS5TbWFsbENhcD0ic21hbGxfY2FwIixlLkxhcmdlQ2FwPSJsYXJnZV9jYXAiLGUuTGFyZ2VzdEVtcGxveWVycz0ibGFyZ2VzdF9lbXBsb3llcnMiLGUuSGlnaERpdmlkZW5kPSJoaWdoX2RpdmlkZW5kIixlLkhpZ2hlc3ROZXRJbmNvbWU9ImhpZ2hlc3RfbmV0X2luY29tZSIsZS5IaWdoZXN0Q2FzaD0iaGlnaGVzdF9jYXNoIixlLkhpZ2hlc3RQcm9maXRQZXJFbXBsb3llZT0iaGlnaGVzdF9wcm9maXRfcGVyX2VtcGxveWVlIixlLkdhaW5lcnM9ImdhaW5lcnMiLGUuTG9zZXJzPSJsb3NlcnMiLGUuVm9sdW1lTGVhZGVycz0idm9sdW1lX2xlYWRlcnMiLGUuVW51c3VhbFZvbHVtZT0idW51c3VhbF92b2x1bWUiLGUuTW9zdFZvbGF0aWxlPSJtb3N0X3ZvbGF0aWxlIixlLkhpZ2hCZXRhPSJoaWdoX2JldGEiLGUuQmVzdFBlcmZvcm1pbmc9ImJlc3RfcGVyZm9ybWluZyIsZS5IaWdoZXN0UmV2ZW51ZT0iaGlnaGVzdF9yZXZlbnVlIixlLk1vc3RFeHBlbnNpdmU9Im1vc3RfZXhwZW5zaXZlIixlLlBlbm55U3RvY2tzPSJwZW5ueV9zdG9ja3MiLGUuT3ZlcmJvdWdodD0ib3ZlcmJvdWdodCIsZS5PdmVyc29sZD0ib3ZlcnNvbGQiLGUuQWxsVGltZUhpZ2g9ImFsbF90aW1lX2hpZ2giLGUuQWxsVGltZUxvdz0iYWxsX3RpbWVfbG93IixlLkFib3ZlNTJ3a0hpZ2g9ImFib3ZlXzUyd2tfaGlnaCIsZS5CZWxvdzUyd2tMb3c9ImJlbG93XzUyd2tfbG93IixlLlByZU1hcmtldEdhaW5lcnM9InByZS1tYXJrZXQtZ2FpbmVycyIsZS5QcmVNYXJrZXRMb3NlcnM9InByZS1tYXJrZXQtbG9zZXJzIixlLlByZU1hcmtldE1vc3RBY3RpdmU9InByZV9tYXJrZXRfbW9zdF9hY3RpdmUiLGUuUHJlTWFya2V0R2FwcGVycz0icHJlX21hcmtldF9nYXBwZXJzIixlLkFmdGVySG91cnNHYWluZXJzPSJhZnRlcl9ob3Vyc19nYWluZXJzIixlLkFmdGVySG91cnNMb3NlcnM9ImFmdGVyX2hvdXJzX2xvc2VycyIsZS5BY3RpdmVBZnRlckhvdXJzPSJhY3RpdmVfYWZ0ZXJfaG91cnMiLGUuUGlua1NoZWV0U3RvY2tzPSJwaW5rLXNoZWV0LXN0b2NrcyIsZS5FYXJuaW5nPSJlYXJuaW5nIixlLkNyeXB0b3BhaXJzTWFya2V0cz0iY3J5cHRvcGFpcnNfbWFya2V0cyIsZS5Ub3BEZWZpPSJ0b3AtZGVmaSIsZS5NYXJrZXRDYXBSYW5rPSJtYXJrZXQtY2FwLXJhbmsiLGUuV29ybGRzTGFyZ2VzdENvbXBhbmllcz0id29ybGRzX2xhcmdlc3RfY29tcGFuaWVzIixlLldvcmxkc05vblVzQ29tcGFuaWVzPSJ3b3JsZHNfbm9uX3VzX2NvbXBhbmllcyIsZS5Xb3JsZHNMYXJnZXN0RW1wbG95ZXJzPSJ3b3JsZHNfbGFyZ2VzdF9lbXBsb3llcnMiLGUuV29ybGRzSGlnaGVzdFJldmVudWU9Indvcmxkc19oaWdoZXN0X3JldmVudWUiLGUuV29ybGRzSGlnaGVzdFJldmVudWVQZXJFbXBsb3llZUNvbXBhbmllcz0id29ybGRzX2hpZ2hlc3RfcmV2ZW51ZV9wZXJfZW1wbG95ZWVfY29tcGFuaWVzIixlLldvcmxkc0hpZ2hlc3RQcm9maXRQZXJFbXBsb3llZUNvbXBhbmllcz0id29ybGRzX2hpZ2hlc3RfcHJvZml0X3Blcl9lbXBsb3llZV9jb21wYW5pZXMiLGUuV29ybGRzSGlnaGVzdEVhcm5pbmdzPSJ3b3JsZHNfaGlnaGVzdF9lYXJuaW5ncyIsZS5Xb3JsZHNIaWdoZXN0RGl2aWRlbmRzPSJ3b3JsZHNfaGlnaGVzdF9kaXZpZGVuZHMiLGUuV29ybGRzTGFyZ2VzdE9pbEFuZEdhc0NvbXBhbmllcz0id29ybGRzX2xhcmdlc3Rfb2lsX2FuZF9nYXNfY29tcGFuaWVzIixlLldvcmxkc0xhcmdlc3RTZW1pY29uZHVjdG9yc1Byb2R1Y2Vycz0id29ybGRzX2xhcmdlc3Rfc2VtaWNvbmR1Y3RvcnNfcHJvZHVjZXJzIixlLldvcmxkc0xhcmdlc3RUZWxlY29tbXVuaWNhdGlvbkNvbXBhbmllcz0id29ybGRzX2xhcmdlc3RfdGVsZWNvbW11bmljYXRpb25fY29tcGFuaWVzIixlLldvcmxkc0xhcmdlc3RUZWNoQ29tcGFuaWVzPSJ3b3JsZHNfbGFyZ2VzdF90ZWNoX2NvbXBhbmllcyIsZS5Xb3JsZHNMYXJnZXN0QmlvdGVjaENvbXBhbmllcz0id29ybGRzX2xhcmdlc3RfYmlvdGVjaF9jb21wYW5pZXMiLGUuV29ybGRzTGFyZ2VzdEZpbmFuY2VDb21wYW5pZXM9Indvcmxkc19sYXJnZXN0X2ZpbmFuY2VfY29tcGFuaWVzIixlLldvcmxkc0xhcmdlc3RCYW5rcz0id29ybGRzX2xhcmdlc3RfYmFua3MiLGUuV29ybGRzTGFyZ2VzdEVDb21tZXJjZUNvbXBhbmllcz0id29ybGRzX2xhcmdlc3RfZV9jb21tZXJjZV9jb21wYW5pZXMiLAplLldvcmxkc0xhcmdlc3RTb2Z0d2FyZUNvbXBhbmllcz0id29ybGRzX2xhcmdlc3Rfc29mdHdhcmVfY29tcGFuaWVzIixlLldvcmxkc0xhcmdlc3RBdXRvbWFrZXJzPSJ3b3JsZHNfbGFyZ2VzdF9hdXRvbWFrZXJzIixlLldvcmxkc0xhcmdlc3RIb3RlbHNBbmRSZXNvcnRzPSJ3b3JsZHNfbGFyZ2VzdF9ob3RlbHNfYW5kX3Jlc29ydHMiLGUuV29ybGRzTGFyZ2VzdFJlc3RhdXJhbnRDaGFpbnM9Indvcmxkc19sYXJnZXN0X3Jlc3RhdXJhbnRfY2hhaW5zIixlLldvcmxkc0xhcmdlc3RTdG9yZXM9Indvcmxkc19sYXJnZXN0X3N0b3JlcyIsZS5Xb3JsZHNMYXJnZXN0QmV2ZXJhZ2VDb21wYW5pZXM9Indvcmxkc19sYXJnZXN0X2JldmVyYWdlX2NvbXBhbmllcyIsZS5Xb3JsZHNMYXJnZXN0Rm9vZENvbXBhbmllcz0id29ybGRzX2xhcmdlc3RfZm9vZF9jb21wYW5pZXMiLGUuRnV0dXJlc0FsbD0iZnV0dXJlc19hbGwiLGUuRnV0dXJlc0FncmljdWx0dXJhbD0iZnV0dXJlc19hZ3JpY3VsdHVyYWwiLGUuRnV0dXJlc0VuZXJneT0iZnV0dXJlc19lbmVyZ3kiLGUuRnV0dXJlc0N1cnJlbmNpZXM9ImZ1dHVyZXNfY3VycmVuY2llcyIsZS5GdXR1cmVzTWV0YWxzPSJmdXR1cmVzX21ldGFscyIsZS5GdXR1cmVzV29ybGRJbmRpY2VzPSJmdXR1cmVzX3dvcmxkX2luZGljZXMiLGUuRnV0dXJlc0ludGVyZXN0UmF0ZXM9ImZ1dHVyZXNfaW50ZXJlc3RfcmF0ZXMiLGUuRnV0dXJlc0NvbnRyYWN0cz0iZnV0dXJlc19jb250cmFjdHMiLGUuQm9uZHNBbGxZaWVsZD0iYm9uZHNfYWxsX3lpZWxkIixlLkJvbmRzQWxsMTB5WWllbGQ9ImJvbmRzX2FsbF8xMHlfeWllbGQiLGUuQm9uZHNNYWpvcjEweVlpZWxkPSJib25kc19tYWpvcl8xMHlfeWllbGQiLGUuQm9uZHNBbWVyaWNhc1lpZWxkPSJib25kc19hbWVyaWNhc195aWVsZCIsZS5Cb25kc0V1cm9wZVlpZWxkPSJib25kc19ldXJvcGVfeWllbGQiLGUuQm9uZHNBc2lhWWllbGQ9ImJvbmRzX2FzaWFfeWllbGQiLGUuQm9uZHNQYWNpZmljWWllbGQ9ImJvbmRzX3BhY2lmaWNfeWllbGQiLGUuQm9uZHNNaWRkbGVFYXN0WWllbGQ9ImJvbmRzX21pZGRsZV9lYXN0X3lpZWxkIixlLkJvbmRzQWZyaWNhWWllbGQ9ImJvbmRzX2FmcmljYV95aWVsZCIsZS5Cb25kc1VTQVlpZWxkPSJib25kc191c2FfeWllbGQiLGUuQm9uZHNVS1lpZWxkPSJib25kc191a195aWVsZCIsZS5Cb25kc0VVWWllbGQ9ImJvbmRzX2V1X3lpZWxkIixlLkJvbmRzR2VybWFueVlpZWxkPSJib25kc19nZXJtYW55X3lpZWxkIixlLkJvbmRzRnJhbmNlWWllbGQ9ImJvbmRzX2ZyYW5jZV95aWVsZCIsZS5Cb25kc0NoaW5hWWllbGQ9ImJvbmRzX2NoaW5hX3lpZWxkIixlLkJvbmRzSW5kaWFZaWVsZD0iYm9uZHNfaW5kaWFfeWllbGQiLGUuQm9uZHNKYXBhbllpZWxkPSJib25kc19qYXBhbl95aWVsZCIsZS5TdG9ja3NSZWxhdGVkQm9uZHM9InN0b2Nrc19yZWxhdGVkX2JvbmRzIixlLkNvaW5NYXJrZXRDYXBSYW5rPSJjb2luX21hcmtldF9jYXBfcmFuayIsZS5Db2luVG90YWxWYWx1ZUxvY2tlZD0iY29pbl90b3RhbF92YWx1ZV9sb2NrZWQiLGUuQ29pbkRlZmk9ImNvaW5fZGVmaSIsZS5Db2luR2FpbmVycz0iY29pbl9nYWluZXJzIixlLkNvaW5Mb3NlcnM9ImNvaW5fbG9zZXJzIixlLkNvaW5MYXJnZUNhcD0iY29pbl9sYXJnZV9jYXAiLGUuQ29pblNtYWxsQ2FwPSJjb2luX3NtYWxsX2NhcCIsZS5Db2luTW9zdFRyYWRlZD0iY29pbl9tb3N0X3RyYWRlZCIsZS5Db2luTW9zdFRyYW5zYWN0aW9ucz0iY29pbl9tb3N0X3RyYW5zYWN0aW9ucyIsZS5Db2luSGlnaGVzdFRyYW5zYWN0aW9uVm9sPSJjb2luX2hpZ2hlc3RfdHJhbnNhY3Rpb25fdm9sdW1lIixlLkNvaW5Mb3dlc3RTdXBwbHk9ImNvaW5fbG93ZXN0X3N1cHBseSIsZS5Db2luSGlnaGVzdFN1cHBseT0iY29pbl9oaWdoZXN0X3N1cHBseSIsZS5Db2luTW9zdEV4cGVuc2l2ZT0iY29pbl9tb3N0X2V4cGVuc2l2ZSIsZS5Db2luTW9zdFZvbGF0aWxlPSJjb2luX21vc3Rfdm9sYXRpbGUiLGUuQ29pbkFsbFRpbWVHaWdoPSJjb2luX2FsbF90aW1lX2hpZ2giLGUuQ29pbkFsbFRpbWVMb3c9ImNvaW5fYWxsX3RpbWVfbG93IixlLkNvaW41MldlZWtIaWdoPSJjb2luXzUyX3dlZWtfaGlnaCIsZS5Db2luNTJXZWVrTG93PSJjb2luXzUyX3dlZWtfbG93IixlLkNvaW5Nb3N0QWRkcmVzc2VzV2l0aEJhbGFuY2U9ImNvaW5fbW9zdF9hZGRyZXNzZXNfd2l0aF9iYWxhbmNlIixlLkNvaW5Nb3N0QWRkcmVzc2VzQWN0aXZlPSJjb2luX21vc3RfYWRkcmVzc2VzX2FjdGl2ZSIsZS5Db2luSGlnaGVzdE9wZW5JbnRlcmVzdD0iY29pbl9oaWdoZXN0X29wZW5faW50ZXJlc3QiLGUuQ29pblJpc2luZ09wZW5JbnRlcmVzdD0iY29pbl9yaXNpbmdfb3Blbl9pbnRlcmVzdCIsZS5Db2luRnVuZGluZ0V4dHJlbWVzPSJjb2luX2Z1bmRpbmdfZXh0cmVtZXMiLGUuQ29pbkxpcXVpZGF0aW9uU3Bpa2VzPSJjb2luX3RvcF9saXF1aWRhdGlvbnMiLGUuSW5kaWNlc0N1cnJlbmN5PSJpbmRpY2VzX2N1cnJlbmN5IixlLkZvcmV4UmF0ZXNBbGw9ImZvcmV4X3JhdGVzX2FsbCIsZS5Gb3Jlc1JhdGVzTWFqb3I9ImZvcmV4X3JhdGVzX21ham9yIixlLkZvcmV4UmF0ZXNNaW5vcj0iZm9yZXhfcmF0ZXNfbWlub3IiLGUuRm9yZXhSYXRlc0V4b3RpYz0iZm9yZXhfcmF0ZXNfZXhvdGljIixlLkZvcmV4UmF0ZXNBbWVyaWNhcz0iZm9yZXhfcmF0ZXNfYW1lcmljYXMiLGUuRm9yZXhSYXRlc0V1cm9wZT0iZm9yZXhfcmF0ZXNfZXVyb3BlIixlLkZvcmV4UmF0ZXNBc2lhPSJmb3JleF9yYXRlc19hc2lhIixlLkZvcmV4UmF0ZXNQYWNpZmljPSJmb3JleF9yYXRlc19wYWNpZmljIixlLkZvcmV4UmF0ZXNNaWRkbGVFYXN0PSJmb3JleF9yYXRlc19taWRkbGVfZWFzdCIsZS5Gb3JleFJhdGVzQWZyaWNhPSJmb3JleF9yYXRlc19hZnJpY2EiLGUuSW5kaWNlc0FsbD0iaW5kaWNlc19hbGwiLGUuSW5kaWNlc01ham9yPSJpbmRpY2VzX21ham9yIixlLkluZGljZXNVUz0iaW5kaWNlc191cyIsZS5JbmRpY2VzU05QPSJpbmRpY2VzX3NucF9zZWN0b3JzIixlLkluZGljZXNBbWVyaWNhcz0iaW5kaWNlc19hbWVyaWNhcyIsCmUuSW5kaWNlc0V1cm9wZT0iaW5kaWNlc19ldXJvcGUiLGUuSW5kaWNlc0FzaWE9ImluZGljZXNfYXNpYSIsZS5JbmRpY2VzUGFjaWZpYz0iaW5kaWNlc19wYWNpZmljIixlLkluZGljZXNNaWRkbGVFYXN0PSJpbmRpY2VzX21pZGRsZV9lYXN0IixlLkluZGljZXNBZnJpY2E9ImluZGljZXNfYWZyaWNhIixlLkluZGV4Q29tcG9uZW50c01hcmtldFBhZ2VzPSJpbmRleF9jb21wb25lbnRzX21hcmtldF9wYWdlcyIsZS5TZWN0b3JzPSJtYXJrZXRfc2VjdG9ycyIsZS5JbmR1c3RyaWVzPSJtYXJrZXRfaW5kdXN0cmllcyIsZS5NYXJrZXRDb21wYW55PSJtYXJrZXRfY29tcGFueSIsZS5FdGZMYXJnZXN0PSJldGZzX21hcmtldF9wYWdlX2xhcmdlc3QiLGUuRXRmSGlnaGVzdEF1bUdyb3d0aD0iZXRmc19tYXJrZXRfaGlnaGVzdF9hdW1fZ3Jvd3RoIixlLkV0ZkhpZ2hlc3RSZXR1cm5zPSJldGZzX21hcmtldF9wYWdlX2hpZ2hlc3RfcmV0dXJuIixlLkV0Zkxvc2Vycz0iZXRmc19tYXJrZXRfcGFnZV9iaWdnZXN0X2xvc3NlcyIsZS5FdGZFcXVpdHk9ImV0ZnNfbWFya2V0X3BhZ2VfZXF1aXR5XzV5IixlLkV0ZkdvbGQ9ImV0ZnNfbWFya2V0X3BhZ2VfZ29sZCIsZS5FdGZGaXhlZEluY29tZT0iZXRmc19tYXJrZXRfcGFnZV9maXhlZF9pbmNvbWVfNXkiLGUuRXRmUmVhbEVzdGF0ZT0iZXRmc19tYXJrZXRfcGFnZV9yZWFsX2VzdGF0ZSIsZS5FdGZDb21tb2RpdGllczV5PSJldGZzX21hcmtldF9wYWdlX2NvbW1vZGl0aWVzXzV5IixlLkV0Zk1vc3RUcmFkZWRBbGxNYXJrZXRzPSJldGZzX21hcmtldF9wYWdlX21vc3RfdHJhZGVkX2FsbF9tYXJrZXRzIixlLkV0ZkhpZ2hlc3RZaWVsZD0iZXRmc19tYXJrZXRfcGFnZV9oaWdoZXN0X3lpZWxkIixlLkV0ZkRpdmlkZW5kPSJldGZzX21hcmtldF9wYWdlX2RpdmlkZW5kIixlLkV0ZkFjdGl2ZWx5TWFuYWdlZD0iZXRmc19tYXJrZXRfcGFnZV9hY3RpdmVseV9tYW5hZ2VkIixlLkV0ZkFzc2V0QWxsb2NhdGlvbjV5PSJldGZzX21hcmtldF9wYWdlX2Fzc2V0X2FsbG9jYXRpb25fNXkiLGUuRXRmU2VjdG9yPSJldGZzX21hcmtldF9wYWdlX3NlY3Rvcl9hdW0iLGUuRXRmc01hcmtldFBhZ2VEaXZpZGVuZHM9ImV0ZnNfbWFya2V0X3BhZ2VfZGl2aWRlbmRzIixlLkV0ZnNNYXJrZXRQYWdlU2VjdG9yPSJldGZzX21hcmtldF9wYWdlX3NlY3RvciIsZS5Db3VudHJ5VG9wRXRmc01vc3RUcmFkZWQ9ImNvdW50cnlfdG9wX2V0ZnNfbW9zdF90cmFkZWQiLGUuRXRmVVNBPSJldGZzX21hcmtldF9wYWdlX2NvdW50cnlfdG9wX3VzIixlLkV0ZkNhbmFkYT0iZXRmc19tYXJrZXRfcGFnZV9jb3VudHJ5X3RvcF9jYSIsZS5FdGZVSz0iZXRmc19tYXJrZXRfcGFnZV9jb3VudHJ5X3RvcF91ayIsZS5FdGZHZXJtYW55PSJldGZzX21hcmtldF9wYWdlX2NvdW50cnlfdG9wX2RlIixlLkV0ZkphcGFuPSJldGZzX21hcmtldF9wYWdlX2NvdW50cnlfdG9wX2pwIixlLkV0ZkF1c3RyYWxpYT0iZXRmc19tYXJrZXRfcGFnZV9jb3VudHJ5X3RvcF9hdSIsZS5FdGZzRXRoZXJldW09ImV0ZnNfbWFya2V0X3BhZ2VfZXRoZXJldW0iLGUuQ29ycG9yYXRlQm9uZHNIaWdoZXN0WWllbGQ9ImhpZ2hlc3RfeWllbGRfYm9uZHMiLGUuQ29ycG9yYXRlQm9uZHNTaG9ydFRlcm09InNob3J0X3Rlcm1fYm9uZHMiLGUuQ29ycG9yYXRlQm9uZHNMb25nVGVybT0ibG9uZ190ZXJtX2JvbmRzIixlLkNvcnBvcmF0ZUJvbmRzWmVyb0NvdXBvbj0iemVyb19jb3Vwb25fYm9uZHMiLGUuQ29ycG9yYXRlQm9uZHNGaXhlZFJhdGU9ImZpeGVkX3JhdGVfYm9uZHMiLGUuQ29ycG9yYXRlQm9uZHNGbG9hdGluZ1JhdGU9ImZsb2F0aW5nX3JhdGVfYm9uZHMiLGUuSXBvQ2FsZW5kYXI9Imlwb19jYWxlbmRhciJ9KGx8fChsPXt9KSk7dmFyIG09cyg2NjMwNDYpLHA9cyg4Mzk0MjYpLHk9cygzMDgzODgpLGc9cyg1OTU1MTcpLGY9cyg0MjA5ODkpO2NsYXNzIGJ7Y29uc3RydWN0b3IoKXt0aGlzLl9yZXF1ZXN0U3ltYm9sRGF0YT0oMCxtLmRlZmF1bHQpKCgoZSwuLi50KT0+KHt0aW1lOnBlcmZvcm1hbmNlLm5vdygpLGRhdGE6KDAseS5nZXRTeW1ib2xEYXRhKSguLi50KX0pKSksdGhpcy5fcmVxdWVzdFNjYW5EYXRhPSgwLG0uZGVmYXVsdCkoKChlLC4uLnQpPT4oe3RpbWU6cGVyZm9ybWFuY2Uubm93KCksZGF0YTooMCxnLmdldFNjYW5EYXRhKSguLi50KX0pKSksdGhpcy5fcmVxdWVzdEJvbmRzPSgwLG0uZGVmYXVsdCkoKChlLC4uLnQpPT4oe3RpbWU6cGVyZm9ybWFuY2Uubm93KCksZGF0YTooMCxmLmdldEJvbmRzKSguLi50KX0pKSksdGhpcy5fcmVxdWVzdEZ1dHVyZXNDb250cmFjdHM9KDAsbS5kZWZhdWx0KSgoKGUsLi4udCk9Pih7dGltZTpwZXJmb3JtYW5jZS5ub3coKSxkYXRhOigwLGYuZ2V0RnV0dXJlc0NvbnRyYWN0cykoLi4udCl9KSkpfWdldFN5bWJvbERhdGEoZSwuLi50KXtyZXR1cm4gdGhpcy5fY2xlYXJJZlN0YWxlKGUsdGhpcy5fcmVxdWVzdFN5bWJvbERhdGEuY2FjaGUpLHRoaXMuX3JlcXVlc3RTeW1ib2xEYXRhKGUsLi4udCkuZGF0YX1nZXRTY2FuRGF0YShlLC4uLnQpe3JldHVybiB0aGlzLl9jbGVhcklmU3RhbGUoZSx0aGlzLl9yZXF1ZXN0U2NhbkRhdGEuY2FjaGUpLHRoaXMuX3JlcXVlc3RTY2FuRGF0YShlLC4uLnQpLmRhdGF9Z2V0Qm9uZHMoZSwuLi50KXtyZXR1cm4gdGhpcy5fY2xlYXJJZlN0YWxlKGUsdGhpcy5fcmVxdWVzdEJvbmRzLmNhY2hlKSx0aGlzLl9yZXF1ZXN0Qm9uZHMoZSwuLi50KS5kYXRhfWdldEZ1dHVyZXNDb250cmFjdHMoZSwuLi50KXtyZXR1cm4gdGhpcy5fY2xlYXJJZlN0YWxlKGUsdGhpcy5fcmVxdWVzdEZ1dHVyZXNDb250cmFjdHMuY2FjaGUpLHRoaXMuX3JlcXVlc3RGdXR1cmVzQ29udHJhY3RzKGUsLi4udCkuZGF0YX1fY2xlYXJJZlN0YWxlKGUsdCl7Y29uc3Qgcz10LmdldChlKTtzJiZNYXRoLmFicyhzLnRpbWUtcGVyZm9ybWFuY2Uubm93KCkpPjVlMyYmdC5kZWxldGUoZSl9fWNvbnN0IHY9KDAsCnAuZGVmYXVsdCkoKCgpPT5uZXcgYikpLFM9WyJwcmljZV81Ml93ZWVrX2hpZ2giLCJwcmljZV81Ml93ZWVrX2xvdyIsInNlY3RvciIsImNvdW50cnkiLCJtYXJrZXQiLCJMb3cuMU0iLCJIaWdoLjFNIiwiUGVyZi5XIiwiUGVyZi4xTSIsIlBlcmYuM00iLCJQZXJmLjZNIiwiUGVyZi5ZIiwiUGVyZi5ZVEQiLCJSZWNvbW1lbmQuQWxsIiwiYXZlcmFnZV92b2x1bWVfMTBkX2NhbGMiLCJhdmVyYWdlX3ZvbHVtZV8zMGRfY2FsYyIsIm5hdl9kaXNjb3VudF9wcmVtaXVtIiwib3Blbl9pbnRlcmVzdCIsImNvdW50cnlfY29kZV9mdW5kIiwiaXYiLCJ1bmRlcmx5aW5nX3N5bWJvbCIsImRlbHRhIiwiZ2FtbWEiLCJyaG8iLCJ0aGV0YSIsInZlZ2EiLCJ0aGVvUHJpY2UiXSxDPVsiZXhwaXJhdGlvbiIsImNsb3NlIiwicHJpY2VzY2FsZSIsIm1pbm1vdiJdLGs9WyJtYXJrZXRfY2FwX2NhbGMiLCJtYXJrZXRfY2FwX2RpbHV0ZWRfY2FsYyIsInRvdGFsX3NoYXJlc19vdXRzdGFuZGluZyIsInRvdGFsX3ZhbHVlX3RyYWRlZCIsIjI0aF92b2xfdG9fbWFya2V0X2NhcCIsImZ1bGx5X2RpbHV0ZWRfdmFsdWUiLCJkZXhfdG90YWxfbGlxdWlkaXR5IiwiZGV4X3RyYWRpbmdfdm9sdW1lXzI0aCJdLHc9WyIyNGhfdm9sX3RvX21hcmtldF9jYXAiXSxEPVsiZnVuZGluZ19yYXRlIiwib3Blbl9pbnRlcmVzdCIsImxpcXVpZGF0aW9uc192b2x1bWVfMjRoIl0sRT1bIlBlcmYuM1kiLCJQZXJmLjVZIiwibmF2X3RvdGFsX3JldHVybi4xTSIsIm5hdl90b3RhbF9yZXR1cm4uM00iLCJuYXZfdG90YWxfcmV0dXJuLjFZIiwibmF2X3RvdGFsX3JldHVybi5ZVEQiLCJuYXZfdG90YWxfcmV0dXJuLjNZIiwibmF2X3RvdGFsX3JldHVybi41WSJdLEY9WyJtYXR1cml0eV9kYXRlIiwiY2xvc2UiLCJjb3Vwb24iLCJ0eXBlc3BlY3MiLCJwcmljZXNjYWxlIiwiZnJhY3Rpb25hbCIsIm1pbm1vdiIsIm1pbm1vdmUyIiwidGVybS10by1tYXR1cml0eSIsImRheXNfdG9fbWF0dXJpdHkiLCJjb3VudHJ5X2NvZGVfZnVuZCJdLFI9WyJ5aWVsZF90b19tYXR1cml0eSIsIm1hdHVyaXR5X2RhdGUiXTtjbGFzcyBBe2NvbnN0cnVjdG9yKGUpe3RoaXMuX2Rlc3Ryb3llZD0hMSx0aGlzLl9zdWJzY3JpYmVkPSExLHRoaXMuX2Z1dHVyZXM9W10sdGhpcy5fYm9uZHM9W10sdGhpcy5fc3RvY2tzUmVsYXRlZEJvbmRzRGF0YT1bXSx0aGlzLl9jcnlwdG9EYXRhPW51bGwsdGhpcy5fY3J5cHRvQXNzZXREYXRhPW51bGwsdGhpcy5fY3J5cHRvRGVyaXZhdGl2ZURhdGE9bnVsbCx0aGlzLl91bmRlcmx5aW5nU3ltYm9sRGF0YT1udWxsLHRoaXMuX2V0ZkRhdGE9bnVsbCx0aGlzLl9jb250cmFjdEZ1dHVyZXNSZXF1ZXN0PW51bGwsdGhpcy5fdW5kZXJseWluZ1N5bWJvbD1udWxsLHRoaXMuX2RleENvbnZlcnRlZFN5bWJvbD1udWxsLHRoaXMuX3NjcmVlbmVyQ3J5cHRvUmVxdWVzdD1udWxsLHRoaXMuX3NjcmVlbmVyQ3J5cHRvQXNzZXRSZXF1ZXN0PW51bGwsdGhpcy5fc2NyZWVuZXJDcnlwdG9EZXJpdmF0aXZlUmVxdWVzdD1udWxsLHRoaXMuX3NjcmVlbmVyRXRmUmVxdWVzdD1udWxsLHRoaXMuX2NvbnRyYWN0Qm9uZHNSZXF1ZXN0PW51bGwsdGhpcy5fc3RvY2tzUmVsYXRlZEJvbmRzUmVxdWVzdD1udWxsLHRoaXMuX3NjcmVlbmVyRGF0YT17fSx0aGlzLl9kZXhDb252ZXJ0ZWRTeW1ib2xEYXRhPW51bGwsdGhpcy5fc2NyZWVuZXJSZXF1ZXN0PW51bGwsdGhpcy5fcmVzcG9uc2U9bnVsbCx0aGlzLl9zY3JlZW5lckNvbXBsZXRlPW51bGwsdGhpcy5fc2NyZWVuZXJDcnlwdG9EZXJpdmF0aXZlQ29tcGxldGU9bnVsbCx0aGlzLl9ib25kc0NvbXBsZXRlPW51bGwsdGhpcy5fZnV0dXJlc0NvbXBsZXRlPW51bGwsdGhpcy5fcHJvZHVjdExhYmVsPW51bGwsdGhpcy5fc3ltYm9sPWUuc3ltYm9sLHRoaXMuX2NsaWVudElkPSgwLHIuZ3VpZCkoKSx0aGlzLl9wcm9kdWN0TGFiZWw9ZS5sYWJlbD8/bnVsbCx0aGlzLl9xdW90ZVNlc3Npb25NdWx0aXBsZXhlckluc3RhbmNlPWUucXVvdGVTZXNzaW9uTXVsdGlwbGV4ZXJJbnN0YW5jZX1zZXRIYW5kbGVyKGUpe3RoaXMuX2Rlc3Ryb3llZHx8dGhpcy5fc3Vic2NyaWJlZHx8KHRoaXMuX3N1YnNjcmliZWQ9ITAsdGhpcy5fcXVvdGVTZXNzaW9uTXVsdGlwbGV4ZXJJbnN0YW5jZS5zdWJzY3JpYmUodGhpcy5fY2xpZW50SWQsdGhpcy5fc3ltYm9sLCh0PT57dGhpcy5fY2hlY2tEYXRhSGFuZGxlcih0LGUpfSkpKX1kZXN0cm95KCl7dGhpcy5fZGVzdHJveWVkPSEwLHRoaXMuX3N1YnNjcmliZWQ9ITEsdGhpcy5fcXVvdGVTZXNzaW9uTXVsdGlwbGV4ZXJJbnN0YW5jZS51bnN1YnNjcmliZSh0aGlzLl9jbGllbnRJZCx0aGlzLl9zeW1ib2wpLHRoaXMuX3VuZGVybHlpbmdTeW1ib2wmJnRoaXMuX3F1b3RlU2Vzc2lvbk11bHRpcGxleGVySW5zdGFuY2UudW5zdWJzY3JpYmUodGhpcy5fY2xpZW50SWQsdGhpcy5fdW5kZXJseWluZ1N5bWJvbCksdGhpcy5fZGV4Q29udmVydGVkU3ltYm9sJiZ0aGlzLl9xdW90ZVNlc3Npb25NdWx0aXBsZXhlckluc3RhbmNlLnVuc3Vic2NyaWJlKHRoaXMuX2NsaWVudElkLHRoaXMuX2RleENvbnZlcnRlZFN5bWJvbCl9X21lcmdlRGF0YUhhbmRsZXIoZSl7Y29uc3QgdD0oMCxpLmVuc3VyZU5vdE51bGwpKHRoaXMuX3Jlc3BvbnNlKSxzPXtzeW1ib2w6dGhpcy5fc3ltYm9sLHF1b3Rlczp7Li4udC52YWx1ZXN9LHNjcmVlbmVyOnt9LGFnZ3JlZ2F0ZWQ6e2Z1dHVyZXM6dGhpcy5fZnV0dXJlcyxib25kczp0aGlzLl9ib25kcyxjcnlwdG9fZGF0YTp0aGlzLl9jcnlwdG9EYXRhLGV0Zl9kYXRhOnRoaXMuX2V0ZkRhdGEsY3J5cHRvX2Fzc2V0X2RhdGE6dGhpcy5fY3J5cHRvQXNzZXREYXRhLGNyeXB0b19kZXJpdmF0aXZlX2RhdGE6dGhpcy5fY3J5cHRvRGVyaXZhdGl2ZURhdGEsdW5kZXJseWluZ19zeW1ib2xfZGF0YTp0aGlzLl91bmRlcmx5aW5nU3ltYm9sRGF0YSxkZXhfY29udmVydGVkX3N5bWJvbF9kYXRhOnRoaXMuX2RleENvbnZlcnRlZFN5bWJvbERhdGEsc3RvY2tzX3JlbGF0ZWRfYm9uZHNfZGF0YTp0aGlzLl9zdG9ja3NSZWxhdGVkQm9uZHNEYXRhfX07Uy5mb3JFYWNoKChlPT57CnZvaWQgMCE9PXRoaXMuX3NjcmVlbmVyRGF0YVtlXSYmbnVsbCE9PXRoaXMuX3NjcmVlbmVyRGF0YVtlXSYmKHMuc2NyZWVuZXJbZV09dGhpcy5fc2NyZWVuZXJEYXRhW2VdKX0pKTtjb25zdCByPXsuLi50LHZhbHVlczpzfTtudWxsPT09dGhpcy5fc2NyZWVuZXJDb21wbGV0ZSYmdC5jb21wbGV0ZSYmbnVsbD09PXRoaXMuX3NjcmVlbmVyUmVxdWVzdCYmKHRoaXMuX3NjcmVlbmVyQ29tcGxldGU9cGVyZm9ybWFuY2Uubm93KCkpLHRoaXMuX3NjcmVlbmVyQ29tcGxldGUmJihyLmNvbXBsZXRlU2NyZWVuZXI9dGhpcy5fc2NyZWVuZXJDb21wbGV0ZSxudWxsPT09dGhpcy5fY29udHJhY3RCb25kc1JlcXVlc3QmJih0aGlzLl9jb250cmFjdEJvbmRzUmVxdWVzdD10aGlzLl9yZXF1ZXN0Qm9uZENvbnRyYWN0cyhyLGUpKSksdGhpcy5fYm9uZHNDb21wbGV0ZSYmKHIuYm9uZHNDb21wbGV0ZT10aGlzLl9ib25kc0NvbXBsZXRlKSxudWxsPT09dGhpcy5fZnV0dXJlc0NvbXBsZXRlJiZ0LmNvbXBsZXRlJiZudWxsPT09dGhpcy5fY29udHJhY3RGdXR1cmVzUmVxdWVzdCYmKHRoaXMuX2Z1dHVyZXNDb21wbGV0ZT1wZXJmb3JtYW5jZS5ub3coKSksdGhpcy5fZnV0dXJlc0NvbXBsZXRlJiYoci5mdXR1cmVzQ29tcGxldGU9dGhpcy5fZnV0dXJlc0NvbXBsZXRlKSxudWxsPT09dGhpcy5fc2NyZWVuZXJDcnlwdG9EZXJpdmF0aXZlQ29tcGxldGUmJnQuY29tcGxldGUmJm51bGw9PT10aGlzLl9zY3JlZW5lckNyeXB0b0Rlcml2YXRpdmVSZXF1ZXN0JiYodGhpcy5fc2NyZWVuZXJDcnlwdG9EZXJpdmF0aXZlQ29tcGxldGU9cGVyZm9ybWFuY2Uubm93KCkpLHRoaXMuX3NjcmVlbmVyQ3J5cHRvRGVyaXZhdGl2ZUNvbXBsZXRlJiYoci5jcnlwdG9EZXJpdmF0aXZlQ29tcGxldGU9dGhpcy5fc2NyZWVuZXJDcnlwdG9EZXJpdmF0aXZlQ29tcGxldGUpLGUocil9X2NoZWNrRGF0YUhhbmRsZXIoZSx0KXt0aGlzLl9kZXN0cm95ZWR8fCh0aGlzLl9yZXNwb25zZT1lLG51bGw9PT10aGlzLl9zY3JlZW5lclJlcXVlc3QmJih0aGlzLl9zY3JlZW5lclJlcXVlc3Q9dGhpcy5fcmVxdWVzdFNjcmVlbmVyKGUsdCkpLG51bGw9PT10aGlzLl9zY3JlZW5lckNyeXB0b1JlcXVlc3QmJih0aGlzLl9zY3JlZW5lckNyeXB0b1JlcXVlc3Q9dGhpcy5fcmVxdWVzdENyeXB0b0RhdGEoZSx0KSksbnVsbD09PXRoaXMuX3NjcmVlbmVyQ3J5cHRvQXNzZXRSZXF1ZXN0JiYodGhpcy5fc2NyZWVuZXJDcnlwdG9Bc3NldFJlcXVlc3Q9dGhpcy5fcmVxdWVzdENyeXB0b0Fzc2V0RGF0YShlLHQpKSxudWxsPT09dGhpcy5fc2NyZWVuZXJDcnlwdG9EZXJpdmF0aXZlUmVxdWVzdCYmKHRoaXMuX3NjcmVlbmVyQ3J5cHRvRGVyaXZhdGl2ZVJlcXVlc3Q9dGhpcy5fcmVxdWVzdENyeXB0b0Rlcml2YXRpdmVEYXRhKGUsdCkpLG51bGw9PT10aGlzLl9zY3JlZW5lckV0ZlJlcXVlc3QmJih0aGlzLl9zY3JlZW5lckV0ZlJlcXVlc3Q9dGhpcy5fcmVxdWVzdEV0ZkRhdGEoZSx0KSksbnVsbD09PXRoaXMuX2NvbnRyYWN0RnV0dXJlc1JlcXVlc3QmJih0aGlzLl9jb250cmFjdEZ1dHVyZXNSZXF1ZXN0PXRoaXMuX3JlcXVlc3RGdXR1cmVzQ29udHJhY3RzKGUsdCkpLHRoaXMuX3VuZGVybHlpbmdTeW1ib2x8fCh0aGlzLl91bmRlcmx5aW5nU3ltYm9sPXRoaXMuX3N1YnNjcmliZVVuZGVybHlpbmdTeW1ib2xEYXRhKGUsdCkpLHRoaXMuX2RleENvbnZlcnRlZFN5bWJvbHx8KHRoaXMuX2RleENvbnZlcnRlZFN5bWJvbD10aGlzLl9zdWJzY3JpYmVEZXhDb252ZXJ0ZWRTeW1ib2xEYXRhKGUsdCkpLG51bGw9PT10aGlzLl9zdG9ja3NSZWxhdGVkQm9uZHNSZXF1ZXN0JiYodGhpcy5fc3RvY2tzUmVsYXRlZEJvbmRzUmVxdWVzdD10aGlzLl9yZXF1ZXN0U3RvY2tzUmVsYXRlZEJvbmRzKGUsdCkpLHRoaXMuX21lcmdlRGF0YUhhbmRsZXIodCkpfV9yZXF1ZXN0U3RvY2tzUmVsYXRlZEJvbmRzKGUsdCl7Y29uc3R7InN5bWJvbC1wcmltYXJ5bmFtZSI6cyxoYXNfYm9uZHM6cn09ZS52YWx1ZXM7aWYoIXN8fHZvaWQgMD09PXIpcmV0dXJuIG51bGw7aWYoIXIpcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO2NvbnN0IGk9KG5ldyBuLlNjYW5QYXJhbXNNYW5hZ2VyKS5zZXRDb2x1bW5zKFsuLi5SXSkuc2V0UHJlc2V0KGwuU3RvY2tzUmVsYXRlZEJvbmRzKS5zZXRSYW5nZShbMCwzXSkuc2V0SW5kZXhGaWx0ZXJzKFt7bmFtZToiYm9uZF9pc3N1ZXJfY3JfcGFyZW50X3N0b2NrX3N5bWJvbCIsdmFsdWVzOltzXX1dKTtyZXR1cm4gdigpLmdldFNjYW5EYXRhKGBzY3JlZW5lci1zdG9jay1yZWxhdGVkLWJvbmRzLSR7c31gLG51bGwsaSxvLk5vblN0b2NrTWFya2V0LkJvbmQsdGhpcy5fcHJvZHVjdExhYmVsPz92b2lkIDApLnRoZW4oKGU9PnshZS5lcnJvciYmZS5kYXRhJiYodGhpcy5fc3RvY2tzUmVsYXRlZEJvbmRzRGF0YT1lLmRhdGEucmVkdWNlKCgoZSx0KT0+e2ZvcihsZXQgcz0wO3M8Ui5sZW5ndGg7cysrKWlmKG51bGw9PT10LmRbc10pcmV0dXJuIGU7Y29uc3Qgcz1SLnJlZHVjZSgoKGUscyxyKT0+KHsuLi5lLFtzXTp0LmRbcl19KSkse3N5bWJvbDp0LnN9KTtyZXR1cm4gZS5wdXNoKHMpLGV9KSxbXSksdGhpcy5fbWVyZ2VEYXRhSGFuZGxlcih0KSl9KSkuY2F0Y2goKGU9PntpZighKDAsaC5pc0Fib3J0RXJyb3IpKGUpKXRocm93IGV9KSl9X3JlcXVlc3RGdXR1cmVzQ29udHJhY3RzKGUsdCl7Y29uc3Qgcz1QKGUudmFsdWVzKTtpZih2b2lkIDA9PT1zKXJldHVybiB0aGlzLl9mdXR1cmVzQ29tcGxldGU9cGVyZm9ybWFuY2Uubm93KCksUHJvbWlzZS5yZXNvbHZlKCk7aWYobnVsbD09PXMpcmV0dXJuIG51bGw7Y29uc3R7c3ltYm9sOnIsb3B0aW9uczppLG1hcmtldDpufT1zO3JldHVybiB2KCkuZ2V0RnV0dXJlc0NvbnRyYWN0cyhgc2NyZWVuZXItZnV0dXJlcy1jb250cmFjdHMtJHtyfWAscixpLG4pLnRoZW4oKGU9Pnt0aGlzLl9mdXR1cmVzQ29tcGxldGU9cGVyZm9ybWFuY2Uubm93KCksZSYmIXRoaXMuX2Rlc3Ryb3llZCYmKGUuZGF0YS5sZW5ndGgmJih0aGlzLl9mdXR1cmVzPXgoZSkpLHRoaXMuX21lcmdlRGF0YUhhbmRsZXIodCkpfSkpfQpfc3Vic2NyaWJlVW5kZXJseWluZ1N5bWJvbERhdGEoZSx0KXtjb25zdCBzPWUudmFsdWVzWyJ1bmRlcmx5aW5nLXN5bWJvbCJdO3JldHVybiBzPyh0aGlzLl9xdW90ZVNlc3Npb25NdWx0aXBsZXhlckluc3RhbmNlLnN1YnNjcmliZSh0aGlzLl9jbGllbnRJZCxzLChlPT57ZSYmIXRoaXMuX2Rlc3Ryb3llZCYmKE9iamVjdC5rZXlzKGUudmFsdWVzKS5sZW5ndGgmJih0aGlzLl91bmRlcmx5aW5nU3ltYm9sRGF0YT1lLnZhbHVlcyksdGhpcy5fbWVyZ2VEYXRhSGFuZGxlcih0KSl9KSkscyk6bnVsbH1fc3Vic2NyaWJlRGV4Q29udmVydGVkU3ltYm9sRGF0YShlLHQpe2NvbnN0IHM9ZS52YWx1ZXMuZGV4X2NvbnZlcnRlZF9zeW1ib2w7cmV0dXJuIHMmJiJVU0QiIT09ZS52YWx1ZXMuY3VycmVuY3lfaWQ/KHRoaXMuX3F1b3RlU2Vzc2lvbk11bHRpcGxleGVySW5zdGFuY2Uuc3Vic2NyaWJlKHRoaXMuX2NsaWVudElkLHMsKGU9PntlJiYhdGhpcy5fZGVzdHJveWVkJiYoT2JqZWN0LmtleXMoZS52YWx1ZXMpLmxlbmd0aCYmKHRoaXMuX2RleENvbnZlcnRlZFN5bWJvbERhdGE9ZS52YWx1ZXMpLHRoaXMuX21lcmdlRGF0YUhhbmRsZXIodCkpfSkpLHMpOm51bGx9X3JlcXVlc3RCb25kQ29udHJhY3RzKGUsdCl7Y29uc3Qgcz1CKHsuLi5lLnZhbHVlcy5xdW90ZXMsY291bnRyeV9jb2RlX2Z1bmQ6ZS52YWx1ZXMuc2NyZWVuZXI/LmNvdW50cnlfY29kZV9mdW5kfSk7aWYodm9pZCAwPT09cylyZXR1cm4gdGhpcy5fYm9uZHNDb21wbGV0ZT1wZXJmb3JtYW5jZS5ub3coKSxQcm9taXNlLnJlc29sdmUoKTtpZihudWxsPT09cylyZXR1cm4gdGhpcy5fYm9uZHNDb21wbGV0ZT1wZXJmb3JtYW5jZS5ub3coKSxudWxsO2NvbnN0e2NvdW50cnlDb2RlOnIsb3B0aW9uczppLG1hcmtldDpufT1zO3JldHVybiB2KCkuZ2V0Qm9uZHMoYHNjcmVlbmVyLWJvbmRzLSR7ZS52YWx1ZXMucXVvdGVzLnByb19uYW1lfWAscixpLG4pLnRoZW4oKGU9Pnt0aGlzLl9ib25kc0NvbXBsZXRlPXBlcmZvcm1hbmNlLm5vdygpLGUmJiF0aGlzLl9kZXN0cm95ZWQmJihlLmRhdGEubGVuZ3RoJiYodGhpcy5fYm9uZHM9cShlKSksdGhpcy5fbWVyZ2VEYXRhSGFuZGxlcih0KSl9KSl9X3JlcXVlc3RDcnlwdG9Bc3NldERhdGEoZSx0KXtjb25zdHtjcnlwdG9fYXNzZXQ6c309ZS52YWx1ZXM7cmV0dXJuIHM/digpLmdldFN5bWJvbERhdGEoYHNjcmVlbmVyLWNyeXB0by1hc3NldC0ke3N9YCxudWxsLHMsdyx0aGlzLl9wcm9kdWN0TGFiZWwpLnRoZW4oKGU9PnshdGhpcy5fZGVzdHJveWVkJiZlJiYoMCE9PU9iamVjdC5rZXlzKGUpLmxlbmd0aCYmKHRoaXMuX2NyeXB0b0Fzc2V0RGF0YT13LnJlZHVjZSgoKHQscyk9Pih7Li4udCxbc106ZVtzXX0pKSx7fSkpLHRoaXMuX21lcmdlRGF0YUhhbmRsZXIodCkpfSkpLmNhdGNoKChlPT57aWYoISgoMCxoLmlzQWJvcnRFcnJvcikoZSl8fGUgaW5zdGFuY2VvZiBkLlN5bWJvbERvZXNOb3RFeGlzdEVycm9yUmVzcG9uc2UpKXRocm93IGV9KSk6bnVsbH1fcmVxdWVzdENyeXB0b0Rlcml2YXRpdmVEYXRhKGUsdCl7Y29uc3R7dHlwZTpzfT1lLnZhbHVlcyxyPSgpPT4odGhpcy5fc2NyZWVuZXJDcnlwdG9EZXJpdmF0aXZlQ29tcGxldGU9cGVyZm9ybWFuY2Uubm93KCksUHJvbWlzZS5yZXNvbHZlKCkpO2lmKHMmJiJzcG90IiE9PXMpcmV0dXJuIHIoKTtpZighZS5jb21wbGV0ZSlyZXR1cm4gbnVsbDtjb25zdCBpPWZ1bmN0aW9uKGUpe2NvbnN0e3Byb19uYW1lOnQsY3J5cHRvX2Fzc2V0OnMsZnVuZF92aWV3X21vZGVzOnIsYmFzZV9jdXJyZW5jeV9pZDppLHR5cGU6bixjdXJyZW5jeV9pZDpvfT1lLGE9Qm9vbGVhbih0JiZzJiZ0PT09cyksbD0ic3BvdCI9PT1uJiYiVVNEIj09PW87aWYoIWEmJiFsfHwhcj8uY3J5cHRvPy5pbmNsdWRlcygiY3J5cHRvX2Rlcml2YXRpdmVfbWV0cmljc19hZ2ciKSlyZXR1cm4gbnVsbDtpZihzKXJldHVybiBzO2lmKGkpcmV0dXJuYENSWVBUTzoke2kucmVwbGFjZSgvXlhUVkMvLCIiKX1VU0RgO3JldHVybiBudWxsfShlLnZhbHVlcyk7cmV0dXJuIGk/digpLmdldFN5bWJvbERhdGEoYHNjcmVlbmVyLWNyeXB0by1kZXJpdmF0aXZlLSR7aX1gLG51bGwsaSxELHRoaXMuX3Byb2R1Y3RMYWJlbCkudGhlbigoZT0+e3RoaXMuX3NjcmVlbmVyQ3J5cHRvRGVyaXZhdGl2ZUNvbXBsZXRlPXBlcmZvcm1hbmNlLm5vdygpLCF0aGlzLl9kZXN0cm95ZWQmJmUmJigwIT09T2JqZWN0LmtleXMoZSkubGVuZ3RoJiYodGhpcy5fY3J5cHRvRGVyaXZhdGl2ZURhdGE9RC5yZWR1Y2UoKCh0LHMpPT4oey4uLnQsW3NdOmVbc119KSkse30pKSx0aGlzLl9tZXJnZURhdGFIYW5kbGVyKHQpKX0pKS5jYXRjaCgoZT0+e2lmKCEoKDAsaC5pc0Fib3J0RXJyb3IpKGUpfHxlIGluc3RhbmNlb2YgZC5TeW1ib2xEb2VzTm90RXhpc3RFcnJvclJlc3BvbnNlKSl0aHJvdyBlfSkpOnIoKX1fcmVxdWVzdENyeXB0b0RhdGEoZSx0KXtjb25zdHt0eXBlc3BlY3M6cyxwcm9fbmFtZTpyLGN1cnJlbmN5X2NvZGU6aSxkZXhfY29udmVydGVkX3N5bWJvbDpufT1lLnZhbHVlcztpZihzJiYhKDAsYy5oYXNDcnlwdG9UeXBlc3BlYykocykpcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO2lmKCFyKXJldHVybiBudWxsO2xldCBvPXI7aWYoIlVTRCIhPT1pKXtpZighbilyZXR1cm4gbnVsbDtvPW59cmV0dXJuIHYoKS5nZXRTeW1ib2xEYXRhKGBzY3JlZW5lci1jcnlwdG8tJHtvfWAsbnVsbCxvLGssdGhpcy5fcHJvZHVjdExhYmVsKS50aGVuKChlPT57IXRoaXMuX2Rlc3Ryb3llZCYmZSYmKDAhPT1PYmplY3Qua2V5cyhlKS5sZW5ndGgmJih0aGlzLl9jcnlwdG9EYXRhPWsucmVkdWNlKCgodCxzKT0+KHsuLi50LFtzXTplW3NdfSkpLHt9KSksdGhpcy5fbWVyZ2VEYXRhSGFuZGxlcih0KSl9KSkuY2F0Y2goKGU9PntpZighKCgwLGguaXNBYm9ydEVycm9yKShlKXx8ZSBpbnN0YW5jZW9mIGQuU3ltYm9sRG9lc05vdEV4aXN0RXJyb3JSZXNwb25zZSkpdGhyb3cgZX0pKX1fcmVxdWVzdEV0ZkRhdGEoZSx0KXtjb25zdHt0eXBlc3BlY3M6cyxwcm9fbmFtZTpyLHR5cGU6aX09ZS52YWx1ZXM7cmV0dXJuIGkmJnMmJiEoMCwKYy5pc0V0ZikoaSxzKT9Qcm9taXNlLnJlc29sdmUoKTpyP3YoKS5nZXRTeW1ib2xEYXRhKGBzY3JlZW5lci1ldGYtJHtyfWAsbnVsbCxyLEUsdGhpcy5fcHJvZHVjdExhYmVsKS50aGVuKChlPT57IXRoaXMuX2Rlc3Ryb3llZCYmZSYmKDAhPT1PYmplY3Qua2V5cyhlKS5sZW5ndGgmJih0aGlzLl9ldGZEYXRhPUUucmVkdWNlKCgodCxzKT0+KHsuLi50LFtzXTplW3NdfSkpLHt9KSksdGhpcy5fbWVyZ2VEYXRhSGFuZGxlcih0KSl9KSkuY2F0Y2goKGU9PntpZighKCgwLGguaXNBYm9ydEVycm9yKShlKXx8ZSBpbnN0YW5jZW9mIGQuU3ltYm9sRG9lc05vdEV4aXN0RXJyb3JSZXNwb25zZSkpdGhyb3cgZX0pKTpudWxsfV9yZXF1ZXN0U2NyZWVuZXIoZSx0KXtjb25zdCBzPU0oZS52YWx1ZXMpO2lmKHZvaWQgMD09PXMpcmV0dXJuIHRoaXMuX3NjcmVlbmVyQ29tcGxldGU9cGVyZm9ybWFuY2Uubm93KCksUHJvbWlzZS5yZXNvbHZlKCk7aWYobnVsbD09PXMpcmV0dXJuIG51bGw7Y29uc3R7bmFtZTpyfT1zO3JldHVybiB2KCkuZ2V0U3ltYm9sRGF0YShgc2NyZWVuZXItZ2VuZXJpYy0ke3J9YCxudWxsLHIsUyx0aGlzLl9wcm9kdWN0TGFiZWwpLnRoZW4oKGU9PntlP3RoaXMuX2Rlc3Ryb3llZHx8KDAhPT1PYmplY3Qua2V5cyhlKS5sZW5ndGgmJlMuZm9yRWFjaCgodD0+e2NvbnN0IHM9ZVt0XTt0aGlzLl9zY3JlZW5lckRhdGFbdF09c30pKSx0aGlzLl9zY3JlZW5lckNvbXBsZXRlPXBlcmZvcm1hbmNlLm5vdygpLHRoaXMuX21lcmdlRGF0YUhhbmRsZXIodCkpOnRoaXMuX3NjcmVlbmVyQ29tcGxldGU9cGVyZm9ybWFuY2Uubm93KCl9KSkuY2F0Y2goKGU9PntpZighKCgwLGguaXNBYm9ydEVycm9yKShlKXx8ZSBpbnN0YW5jZW9mIGQuU3ltYm9sRG9lc05vdEV4aXN0RXJyb3JSZXNwb25zZSkpdGhyb3cgZX0pKX19ZnVuY3Rpb24geChlKXtyZXR1cm4gZS5kYXRhLm1hcCgoZT0+Qy5yZWR1Y2UoKCh0LHMscik9Pih7Li4udCxbc106ImV4cGlyYXRpb24iPT09cz8oMCxfLm11dGF0ZVNpbXBsZURhdGUpKGUuZFtyXSk6ZS5kW3JdfSkpLHtzeW1ib2w6ZS5zfSkpKX1mdW5jdGlvbiBxKGUpe3JldHVybiBlLmRhdGEubWFwKChlPT5GLnJlZHVjZSgoKHQscyxyKT0+e2xldCBpO3N3aXRjaChzKXtjYXNlIm1hdHVyaXR5X2RhdGUiOmk9KDAsXy5tdXRhdGVTaW1wbGVEYXRlKShlLmRbcl0pO2JyZWFrO2Nhc2UiZnJhY3Rpb25hbCI6aT0idHJ1ZSI9PT1lLmRbcl07YnJlYWs7ZGVmYXVsdDppPWUuZFtyXX1yZXR1cm57Li4udCxbc106aX19KSx7c3ltYm9sOmUuc30pKSl9ZnVuY3Rpb24gUChlKXtjb25zdHtsaXN0ZWRfZXhjaGFuZ2U6dCxyb290OnMsdHlwZTpyfT1lO2lmKHImJiJmdXR1cmVzIiE9PXIpcmV0dXJuO2lmKCF0fHwhcnx8IXMpcmV0dXJuIG51bGw7Y29uc3QgaT17Y29sdW1uczpDLHNvcnQ6e3NvcnRCeToiZXhwaXJhdGlvbiIsc29ydE9yZGVyOiJhc2MifX07cmV0dXJue3N5bWJvbDpgJHt0fToke3N9YCxtYXJrZXQ6YSgpLG9wdGlvbnM6aX19ZnVuY3Rpb24gQihlLHQ9e2NvbHVtbnM6Rixzb3J0Ontzb3J0Qnk6Im1hdHVyaXR5X2RhdGUiLHNvcnRPcmRlcjoiYXNjIn19KXtjb25zdHtsaXN0ZWRfZXhjaGFuZ2U6cyx0eXBlOnIsdHlwZXNwZWNzOmksY291bnRyeV9jb2RlX2Z1bmQ6bn09ZTtpZihyJiYiYm9uZCIhPT1yKXJldHVybjtpZighKHMmJnImJm4mJmk/LmluY2x1ZGVzKCJnb3Zlcm5tZW50IikpKXJldHVybiBudWxsO3JldHVybntjb3VudHJ5Q29kZTpuLG1hcmtldDphKCksb3B0aW9uczp0fX1mdW5jdGlvbiBNKGUpe2lmKCFlLnR5cGV8fCFlLmxpc3RlZF9leGNoYW5nZSlyZXR1cm4gbnVsbDtpZih1LlNZTUJPTF9UWVBFX0JMQUNLX0xJU1QuaGFzKGUudHlwZSkpcmV0dXJuO2NvbnN0IHQ9ZS5wcm9fbmFtZTtyZXR1cm4gdD97bmFtZTp0LHR5cGU6ZS50eXBlfTpudWxsfX0sNDIwOTg5KGUsdCxzKXtzLmQodCx7Z2V0Qm9uZHM6KCk9PnUsZ2V0RnV0dXJlc0NvbnRyYWN0czooKT0+Y30pO3ZhciByPXMoMjIxMDYxKSxpPXMoODI3MDI5KSxuPXMoMzg0MDE3KSxvPXMoMjE0OTg3KTtjb25zdCBhPSgpPT53aW5kb3cuU0NSRUVORVJfSE9TVHx8Imh0dHBzOi8vc2Nhbm5lci50cmFkaW5ndmlldy5jb20iO2Z1bmN0aW9uIGwoZSx0PWUpe3JldHVybiBBcnJheS5pc0FycmF5KGUpP2UubGVuZ3RoPjE/YCR7YSgpfS9nbG9iYWwvYDpgJHthKCl9LyR7dFswXX0vYDpgJHthKCl9LyR7dH0vYH1jb25zdCBfPSgwLHIuZ2V0TG9nZ2VyKSgiU2NyZWVuZXIuV2lkZ2V0Iik7ZnVuY3Rpb24gYyhlLHQscyl7Y29uc3Qgcj17ZmlsdGVyOlt7bGVmdDoiZXhwaXJhdGlvbiIsb3BlcmF0aW9uOiJuZW1wdHkifSx7bGVmdDoic3VidHlwZSIsb3BlcmF0aW9uOiJuZXF1YWwiLHJpZ2h0OiJjb250aW51b3VzIn1dLGluZGV4X2ZpbHRlcnM6W3tuYW1lOiJyb290Iix2YWx1ZXM6W2VdfV0sbWFya2V0czpbaS5Ob25TdG9ja01hcmtldC5GdXR1cmVzXSwuLi50fTtyZXR1cm4oMCxuLmZldGNoKShsKHMsImZ1dHVyZXMiKSsic2NhbiIse21ldGhvZDoiUE9TVCIsYm9keTpKU09OLnN0cmluZ2lmeShyKSxjcmVkZW50aWFsczoiaW5jbHVkZSJ9KS50aGVuKChlPT5lLmpzb24oKSkpLmNhdGNoKChlPT57Xy5sb2dFcnJvcihgRmFpbGVkIHRvIGdldCBmdXR1cmVzIGNvbnRyYWN0cy4gJHtlLm1lc3NhZ2V9YCl9KSl9ZnVuY3Rpb24gdShlLHQscyxyKXtjb25zdCBhPXtmaWx0ZXI6W3tsZWZ0OiJtYXR1cml0eV9kYXRlIixvcGVyYXRpb246Im5lbXB0eSJ9LHtsZWZ0OiJjb3VudHJ5X2NvZGUiLG9wZXJhdGlvbjoiZXF1YWwiLHJpZ2h0OmV9LHtsZWZ0OiJ0eXBlc3BlY3MiLG9wZXJhdGlvbjoiaGFzIixyaWdodDoiZ292ZXJubWVudCJ9XSxzeW1ib2xzOntxdWVyeTp7dHlwZXM6WyJib25kIl19fSxtYXJrZXRzOltpLk5vblN0b2NrTWFya2V0LkJvbmRzXSwuLi50fTtyZXR1cm4oMCxuLmZldGNoKShsKHMpKyJzY2FuIix7bWV0aG9kOiJQT1NUIixib2R5OkpTT04uc3RyaW5naWZ5KGEpLGNyZWRlbnRpYWxzOiJpbmNsdWRlIixzaWduYWw6cn0pLnRoZW4oKGU9PmUuanNvbigpKSkuY2F0Y2goKGU9PnsoMCxvLnJldGhyb3dBYm9ydEVycm9yKShlKSwKXy5sb2dFcnJvcihgRmFpbGVkIHRvIGdldCBib25kcy4gJHtlLm1lc3NhZ2V9YCl9KSl9fSw2MTkxMjMoZSx0LHMpe3MuZCh0LHttdXRhdGVTaW1wbGVEYXRlOigpPT5vfSk7dmFyIHI9cyg2MDE4NDEpLGk9cyg0OTExNjUpLG49cygxNjg4MjQpO2Z1bmN0aW9uIG8oZSl7cmV0dXJuIGUmJigwLHIuaXNOdW1iZXIpKGUpP2kuZGF0ZUZvcm1hdEZ1bmN0aW9uc1sieXl5eS1NTS1kZCJdKCgwLG4uZ2V0RGF0ZUZyb21ZWVlZTU1ERCkoZSksITApOiLigJQifX0sMTY4ODI0KGUsdCxzKXtmdW5jdGlvbiByKGUpe2NvbnN0W3QscyxyXT1mdW5jdGlvbihlKXtjb25zdCB0PWUudG9TdHJpbmcoKTtyZXR1cm5bTnVtYmVyKHQuc2xpY2UoMCw0KSksTnVtYmVyKHQuc2xpY2UoNCw2KSksTnVtYmVyKHQuc2xpY2UoNikpXX0oZSk7cmV0dXJuIG5ldyBEYXRlKHQscy0xLHIpfXMuZCh0LHtnZXREYXRlRnJvbVlZWVlNTUREOigpPT5yfSl9LDYyMzUxMShlLHQscyl7ZnVuY3Rpb24gcihlKXtsZXQgdD1udWxsO3JldHVybigpPT4obnVsbD09PXQmJih0PWUoKSksdCl9cy5kKHQse2xhenlWYWx1ZTooKT0+cn0pfX1dKTs="}},"time_used":6,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":6,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/seasonals-chart.9719fe255d8c43484ff9.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:15.330Z","timestamp":1785148035330,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/seasonals-chart.9719fe255d8c43484ff9.js HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:15 GMT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a632877-5a48\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Fri, 24 Jul 2026 08:55:19 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/24/2026 10:32:21\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 9c2f73bb0bb8d60363b41573055f8037\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":23112,"size_decoded":8449,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, Unicode text, UTF-8 text, with very long lines (3071)","md5":"ff74657f5cb3a59a49ec7f166c578d72","sha1":"c488955a50e171a49952ef2951703e1ad6ed9ea2","sha256":"259097959e286814b22a99ee16349aaf2adaf19bbeb1e1f48933b5cb453c77ad","sha512":"9a6f485dac35f779f8c255a2b7e822ce586b35ee649ffa53008de7b8919c6ae62291e94c2173d83353eb687ae9bab3e4ad1953e2f1be7ffddc368d123cb494d2","ssdeep":"384:SCIqDvRieyYUxq4YKv3accjKCK7OC8O/WokPnr1iRYXun+h1tKuwIN/XS5idp8+h:FMaTjKCK7OC8O/WokPnr16C1tKunOiMk","tlshash":"0aa2d992e640755b02eb81ea5c76420395b4a1873cc745acfea869ce934ce0cb376f7c","first_seen":"2026-07-27T03:26:08.829115Z","last_seen":"2026-07-27T10:28:13.876256Z","times_seen":6,"resource_available":true,"data":"InVzZSBzdHJpY3QiOyhzZWxmLndlYnBhY2tDaHVua3RyYWRpbmd2aWV3PXNlbGYud2VicGFja0NodW5rdHJhZGluZ3ZpZXd8fFtdKS5wdXNoKFtbNzg5MDVdLHs2NjUxNDUoZSx0LHMpe3ZhciBpO3MuZCh0LHtNZWRpdW1UaW1lRnJhbWVPcHRpb25zTW9kZTooKT0+aX0pLGZ1bmN0aW9uKGUpe2VbZS5Vc2VMYXN0U2Vzc2lvbj0wXT0iVXNlTGFzdFNlc3Npb24iLGVbZS5Vc2UxRD0xXT0iVXNlMUQiLGVbZS5Vc2VMYXN0U2Vzc2lvbkFuZDFEPTJdPSJVc2VMYXN0U2Vzc2lvbkFuZDFEIn0oaXx8KGk9e30pKX0sODAyNTg2KGUsdCxzKXtzLmQodCx7Z2V0RGF5UmVzb2x1dGlvblRpbWVGcmFtZU9wdGlvbnM6KCk9PmQsZ2V0RnJvbUZvckRheTooKT0+bixnZXRGcm9tRm9yTW9udGhzQWdvOigpPT5vLGdldEZyb21Gb3JZZWFyc0FnbzooKT0+cixnZXRNZWRpdW1UaW1lRnJhbWVPcHRpb25zOigpPT5jLGdldE1pbmlUaW1lRnJhbWVPcHRpb25zOigpPT51LGdldFN0YXJ0T2ZUaGVZZWFyOigpPT5sfSk7dmFyIGk9cyg2NjUxNDUpLGE9cyg2OTM1MDApO2Z1bmN0aW9uIG8oZSl7Y29uc3QgdD1uZXcgRGF0ZTtyZXR1cm4gdC5zZXRNb250aCh0LmdldE1vbnRoKCktZSksTWF0aC50cnVuYyh0LnZhbHVlT2YoKS8xZTMpfWZ1bmN0aW9uIHIoZSl7Y29uc3QgdD1uZXcgRGF0ZTtyZXR1cm4gdC5zZXRGdWxsWWVhcih0LmdldEZ1bGxZZWFyKCktZSksTWF0aC50cnVuYyh0LnZhbHVlT2YoKS8xZTMpfWZ1bmN0aW9uIG4oZSl7Y29uc3QgdD1uZXcgRGF0ZTtyZXR1cm4gdC5zZXREYXRlKHQuZ2V0RGF0ZSgpLWUpLE1hdGgudHJ1bmModC52YWx1ZU9mKCkvMWUzKX1mdW5jdGlvbiBsKCl7cmV0dXJuIE1hdGgudHJ1bmMobmV3IERhdGUoKG5ldyBEYXRlKS5nZXRGdWxsWWVhcigpLDAsMSkudmFsdWVPZigpLzFlMyl9ZnVuY3Rpb24gdShlKXtjb25zdCB0PSgwLGEuZ2V0VGltZUZyYW1lcykoKTtyZXR1cm5bey4uLnRbZT8ibGFzdHNlc3Npb24iOiIxZCJdfSx7Li4udFsiMW0iXSx0YXJnZXRSZXNvbHV0aW9uOiIxRCIsZnJvbTpvKDEpfSx7Li4udFsiM20iXSx0YXJnZXRSZXNvbHV0aW9uOiIxRCIsZnJvbTpvKDMpfSx7Li4udFsiMTJtIl0sZnJvbTpyKDEpfSx7Li4udFsiNjBtIl0sdGFyZ2V0UmVzb2x1dGlvbjoiMU0iLGZyb206cig1KX0sey4uLnQuYWxsfV19ZnVuY3Rpb24gZChlKXtjb25zdCB0PSgwLGEuZ2V0VGltZUZyYW1lcykoKTtyZXR1cm5bey4uLnRbZT8ibGFzdHNlc3Npb24iOiIxZCJdfSx7Li4udFsiMW0iXSx0YXJnZXRSZXNvbHV0aW9uOiIxRCIsZnJvbTpvKDEpfSx7Li4udFsiM20iXSx0YXJnZXRSZXNvbHV0aW9uOiIxRCIsZnJvbTpvKDMpfSx7Li4udFsiNm0iXSx0YXJnZXRSZXNvbHV0aW9uOiIxRCIsZnJvbTpvKDYpfSx7Li4udC55dGQsdGFyZ2V0UmVzb2x1dGlvbjoiMUQiLGZyb206byg2KX0sey4uLnRbIjEybSJdLGZyb206cigxKX1dfWZ1bmN0aW9uIGMoZSl7Y29uc3QgdD0oMCxhLmdldFRpbWVGcmFtZXMpKCkscz1bXTtyZXR1cm4gZSE9PWkuTWVkaXVtVGltZUZyYW1lT3B0aW9uc01vZGUuVXNlMUQmJnMucHVzaCh7Li4udC5sYXN0c2Vzc2lvbn0pLGUhPT1pLk1lZGl1bVRpbWVGcmFtZU9wdGlvbnNNb2RlLlVzZUxhc3RTZXNzaW9uJiZzLnB1c2goey4uLnRbIjFkIl19KSxbLi4ucyx7Li4udFsiMW0iXSx0YXJnZXRSZXNvbHV0aW9uOiI2MCIsZnJvbTpvKDEpfSx7Li4udFsiM20iXSx0YXJnZXRSZXNvbHV0aW9uOiIxMjAiLGZyb206bygzKX0sey4uLnRbIjEybSJdLGZyb206cigxKX0sey4uLnRbIjYwbSJdLHRhcmdldFJlc29sdXRpb246IjFXIixmcm9tOnIoNSl9LHsuLi50LmFsbH1dfX0sNjkzNTAwKGUsdCxzKXtzLmQodCx7Z2V0VGltZUZyYW1lczooKT0+b30pO3ZhciBpPXMoNzgzMjU0KSxhPXMoMjE1NzMwKTtmdW5jdGlvbiBvKGUpe3JldHVybnsiMWQiOnt0ZXh0OmkudChudWxsLHZvaWQgMCxzKDkzODEwMCkpLHZhbHVlOnt2YWx1ZToiMUQiLHR5cGU6InBlcmlvZC1iYWNrIn0sdGFyZ2V0UmVzb2x1dGlvbjplPy5bIjFEIl0/PygwLGEuc3RyaW5nQXNSZXNvbHV0aW9uKSgiMSIpLGRlc2NyaXB0aW9uOigwLGEuZGF5c1N0cmluZ0xpdGVyYWwpKDEpfSwiNWQiOnt0ZXh0OmkudChudWxsLHZvaWQgMCxzKDgyODU1KSksdmFsdWU6e3ZhbHVlOiI1RCIsdHlwZToicGVyaW9kLWJhY2sifSx0YXJnZXRSZXNvbHV0aW9uOmU/LlsiNUQiXT8/KDAsYS5zdHJpbmdBc1Jlc29sdXRpb24pKCI1IiksZGVzY3JpcHRpb246KDAsYS5kYXlzU3RyaW5nTGl0ZXJhbCkoNSl9LCIxdyI6e3RleHQ6aS50KG51bGwsdm9pZCAwLHMoNDkyMTM1KSksdmFsdWU6e3ZhbHVlOiI3RCIsdHlwZToicGVyaW9kLWJhY2sifSx0YXJnZXRSZXNvbHV0aW9uOmU/LlsiNVciXT8/KDAsYS5zdHJpbmdBc1Jlc29sdXRpb24pKCIxNSIpLGRlc2NyaXB0aW9uOigwLGEud2Vla3NTdHJpbmdMaXRlcmFsKSgxKX0sIjFtIjp7dGV4dDppLnQobnVsbCx2b2lkIDAscyg4MzI3MzMpKSx2YWx1ZTp7dmFsdWU6IjFNIix0eXBlOiJwZXJpb2QtYmFjayJ9LHRhcmdldFJlc29sdXRpb246ZT8uWyIxTSJdPz8oMCxhLnN0cmluZ0FzUmVzb2x1dGlvbikoIjMwIiksZGVzY3JpcHRpb246KDAsYS5tb250aHNTdHJpbmdMaXRlcmFsKSgxKX0sIjNtIjp7dGV4dDppLnQobnVsbCx2b2lkIDAscyg4MTkwNzgpKSx2YWx1ZTp7dmFsdWU6IjNNIix0eXBlOiJwZXJpb2QtYmFjayJ9LHRhcmdldFJlc29sdXRpb246ZT8uWyIzTSJdPz8oMCxhLnN0cmluZ0FzUmVzb2x1dGlvbikoIjYwIiksZGVzY3JpcHRpb246KDAsYS5tb250aHNTdHJpbmdMaXRlcmFsKSgzKX0sIjZtIjp7dGV4dDppLnQobnVsbCx2b2lkIDAscyg2ODA3NikpLHZhbHVlOnt2YWx1ZToiNk0iLHR5cGU6InBlcmlvZC1iYWNrIn0sdGFyZ2V0UmVzb2x1dGlvbjplPy5bIjZNIl0/PygwLGEuc3RyaW5nQXNSZXNvbHV0aW9uKSgiMTIwIiksZGVzY3JpcHRpb246KDAsYS5tb250aHNTdHJpbmdMaXRlcmFsKSg2KX0sIjEybSI6e3RleHQ6aS50KG51bGwsdm9pZCAwLHMoNzcwMzAzKSksdmFsdWU6e3ZhbHVlOiIxMk0iLHR5cGU6InBlcmlvZC1iYWNrIn0sdGFyZ2V0UmVzb2x1dGlvbjplPy5bIjEyTSJdPz8oMCwKYS5zdHJpbmdBc1Jlc29sdXRpb24pKCIxRCIpLGRlc2NyaXB0aW9uOigwLGEueWVhcnNTdHJpbmdMaXRlcmFsKSgxKX0sIjI0bSI6e3RleHQ6aS50KG51bGwsdm9pZCAwLHMoOTM0Nzc3KSksdmFsdWU6e3ZhbHVlOiIyNE0iLHR5cGU6InBlcmlvZC1iYWNrIn0sdGFyZ2V0UmVzb2x1dGlvbjplPy5bIjI0TSJdPz8oMCxhLnN0cmluZ0FzUmVzb2x1dGlvbikoIjFXIiksZGVzY3JpcHRpb246KDAsYS55ZWFyc1N0cmluZ0xpdGVyYWwpKDIpfSwiMzZtIjp7dGV4dDppLnQobnVsbCx2b2lkIDAscygyNzIwOTgpKSx2YWx1ZTp7dmFsdWU6IjM2TSIsdHlwZToicGVyaW9kLWJhY2sifSx0YXJnZXRSZXNvbHV0aW9uOmU/LlsiMzZNIl0/PygwLGEuc3RyaW5nQXNSZXNvbHV0aW9uKSgiMVciKSxkZXNjcmlwdGlvbjooMCxhLnllYXJzU3RyaW5nTGl0ZXJhbCkoMyl9LCI2MG0iOnt0ZXh0OmkudChudWxsLHZvaWQgMCxzKDQ0NjU2MCkpLHZhbHVlOnt2YWx1ZToiNjBNIix0eXBlOiJwZXJpb2QtYmFjayJ9LHRhcmdldFJlc29sdXRpb246ZT8uWyI2ME0iXT8/KDAsYS5zdHJpbmdBc1Jlc29sdXRpb24pKCIxVyIpLGRlc2NyaXB0aW9uOigwLGEueWVhcnNTdHJpbmdMaXRlcmFsKSg1KX0sIjEyMG0iOnt0ZXh0OmkudChudWxsLHZvaWQgMCxzKDk5NTA2NikpLHZhbHVlOnt2YWx1ZToiMTIwTSIsdHlwZToicGVyaW9kLWJhY2sifSx0YXJnZXRSZXNvbHV0aW9uOmU/LlsiMTIwTSJdPz8oMCxhLnN0cmluZ0FzUmVzb2x1dGlvbikoIjFNIiksZGVzY3JpcHRpb246KDAsYS55ZWFyc1N0cmluZ0xpdGVyYWwpKDEwKX0seXRkOnt0ZXh0OmkudChudWxsLHZvaWQgMCxzKDQyMjM2OSkpLHZhbHVlOnt2YWx1ZToiWVREIix0eXBlOiJwZXJpb2QtYmFjayJ9LHRhcmdldFJlc29sdXRpb246ZT8uWVREPz8oMCxhLnN0cmluZ0FzUmVzb2x1dGlvbikoIjFEIiksZGVzY3JpcHRpb246aS50KG51bGwsdm9pZCAwLHMoNDg1NDIwKSl9LGFsbDp7dGV4dDppLnQobnVsbCx2b2lkIDAscygyMzM2OTApKSx2YWx1ZTp7dmFsdWU6IkFMTCIsdHlwZToicGVyaW9kLWJhY2sifSx0YXJnZXRSZXNvbHV0aW9uOmU/LkFMTD8/KDAsYS5zdHJpbmdBc1Jlc29sdXRpb24pKCIxTSIpfSxsYXN0c2Vzc2lvbjp7dGV4dDppLnQobnVsbCx2b2lkIDAscyg5MzgxMDApKSx2YWx1ZTp7dmFsdWU6IkxBU1RTRVNTSU9OIix0eXBlOiJwZXJpb2QtYmFjayJ9LHRhcmdldFJlc29sdXRpb246ZT8uTEFTVFNFU1NJT04/PygwLGEuc3RyaW5nQXNSZXNvbHV0aW9uKSgiMSIpLGRlc2NyaXB0aW9uOigwLGEuZGF5c1N0cmluZ0xpdGVyYWwpKDEpfX19fSwyMTU3MzAoZSx0LHMpe3MuZCh0LHtkYXlzU3RyaW5nTGl0ZXJhbDooKT0+cixob3Vyc1N0cmluZ0xpdGVyYWw6KCk9Pm8sbWludXRlc1N0cmluZ0xpdGVyYWw6KCk9PmEsbW9udGhzU3RyaW5nTGl0ZXJhbDooKT0+bCxzdHJpbmdBc1Jlc29sdXRpb246KCk9PmQsd2Vla3NTdHJpbmdMaXRlcmFsOigpPT5uLHllYXJzU3RyaW5nTGl0ZXJhbDooKT0+dX0pO3ZhciBpPXMoNzgzMjU0KTtjb25zdCBhPWU9PmkudChudWxsLHtwbHVyYWw6IntzdHJ9IG1pbnV0ZXMiLGNvdW50OmUscmVwbGFjZTp7c3RyOmAke2V9YH19LHMoNDM5MCkpLG89ZT0+aS50KG51bGwse3BsdXJhbDoie3N0cn0gaG91cnMiLGNvdW50OmUscmVwbGFjZTp7c3RyOmAke2V9YH19LHMoMjEwNTc0KSkscj1lPT5pLnQobnVsbCx7cGx1cmFsOiJ7c3RyfSBkYXlzIixjb3VudDplLHJlcGxhY2U6e3N0cjpgJHtlfWB9fSxzKDEwMzAzMCkpLG49ZT0+aS50KG51bGwse3BsdXJhbDoie3N0cn0gd2Vla3MiLGNvdW50OmUscmVwbGFjZTp7c3RyOmAke2V9YH19LHMoNjQ0NjI1KSksbD1lPT5pLnQobnVsbCx7cGx1cmFsOiJ7c3RyfSBtb250aHMiLGNvdW50OmUscmVwbGFjZTp7c3RyOmAke2V9YH19LHMoNjk0NjE3KSksdT1lPT5pLnQobnVsbCx7cGx1cmFsOiJ7c3RyfSB5ZWFycyIsY291bnQ6ZSxyZXBsYWNlOntzdHI6YCR7ZX1gfX0scygyMTY0MDIpKSxkPWU9PmV9LDU3MTMyOChlLHQscyl7cy5kKHQse1N0dWR5TWluaUNoYXJ0UGxvdDooKT0+U30pO3ZhciBpPXMoNjc4MzEyKSxhPXMoMTM4NjM4KSxvPXMoMjMyMzY0KSxyPXMoMjIxMDYxKSxuPXMoNzkxNTIxKSxsPXMoODU3MTUxKSx1PXMoMjUwNDY3KSxkPXMoNjQ1Mjg1KSxjPXMoMTQyMzg5KSxoPXMoNDA3Nzk5KSxwPXMoNjEwNTcxKSxtPXMoMjQyMTcxKTtjb25zdCB5PSgwLHIuZ2V0TG9nZ2VyKSgiQ2hhcnQuU3R1ZHlNaW5pQ2hhcnRQbG90IiksXz1uZXcgbC5QbG90TGlzdDtjbGFzcyBTIGV4dGVuZHMgbS5NaW5pQ2hhcnRQbG90QmFzZXtjb25zdHJ1Y3RvcihlLHQscyl7c3VwZXIoZSx0LHAuZGVmYXVsdFZvbHVtZU9wdGlvbnMscyksdGhpcy5fc3R1ZHlEYXRhU291cmNlPW5ldyBvLldhdGNoZWRWYWx1ZShudWxsKSx0aGlzLl9yZXF1ZXN0QWN0aXZlPSExLHRoaXMuX2lucHV0cz1udWxsLHRoaXMuX2FkZGl0aW9uYWxTZXJpZXM9W10sdGhpcy5fcGxvdHNJbmZvPVtdLHRoaXMuX2NyZWF0ZVN0dWR5RGF0YVNvdXJjZSgpfWRlbGV0ZVZpZXcoKXtzdXBlci5kZWxldGVWaWV3KCk7Zm9yKGNvbnN0IGUgb2YgdGhpcy5fYWRkaXRpb25hbFNlcmllcyllLnNldERhdGEoW10pfWRlc3Ryb3koKXtmb3IoY29uc3QgZSBvZiB0aGlzLl9hZGRpdGlvbmFsU2VyaWVzKXRyeXt0aGlzLl9taW5pQ2hhcnQud2lkZ2V0KCkucmVtb3ZlU2VyaWVzKGUpfWNhdGNoe3kubG9nV2FybigiQ291bGRuJ3QgZmluZCBzZXJpZXMgdG8gcmVtb3ZlIil9dGhpcy5fYWRkaXRpb25hbFNlcmllcz1bXSx0aGlzLl9zdHVkeURhdGFTb3VyY2UudmFsdWUoKT8uZGVzdHJveSgpLHN1cGVyLmRlc3Ryb3koKX11cGRhdGVTZXJpZXNPcHRpb25zKGUpe2lmKHN1cGVyLnVwZGF0ZVNlcmllc09wdGlvbnMoZSksdm9pZCAwIT09ZS52aXNpYmxlfHx2b2lkIDAhPT1lLnByaWNlU2NhbGVJZCl7Y29uc3QgdD17fTt2b2lkIDAhPT1lLnZpc2libGUmJih0LnZpc2libGU9ZS52aXNpYmxlKSx2b2lkIDAhPT1lLnByaWNlU2NhbGVJZCYmKHQucHJpY2VTY2FsZUlkPWUucHJpY2VTY2FsZUlkKQo7Zm9yKGNvbnN0IGUgb2YgdGhpcy5fYWRkaXRpb25hbFNlcmllcyllLmFwcGx5T3B0aW9ucyh0KX19Z2V0TGVnZW5kRGF0YShlLHQpe3JldHVybltdfXNvdXJjZSgpe3JldHVybiB0aGlzLl9zdHVkeURhdGFTb3VyY2UucmVhZG9ubHkoKX1yZXF1ZXN0RGF0YSgpe3RoaXMuX3JlcXVlc3RBY3RpdmU9ITA7Y29uc3QgZT10aGlzLl9zdHVkeURhdGFTb3VyY2UudmFsdWUoKTtpZihudWxsIT09ZSl7aWYodGhpcy5fc3ltYm9sSW5mb1JlcXVpcmVkKCkpe2lmKG51bGw9PT10aGlzLnN5bWJvbEluZm8oKSl7Y29uc3QgZT10aGlzLmV4dGVuZGVkU3ltYm9sKCksdD0oMCxoLmVuY29kZUV4dGVuZGVkU3ltYm9sT3JHZXRTaW1wbGVTeW1ib2xTdHJpbmcpKGUpO3JldHVybiB2b2lkIHRoaXMuY2hhcnRTZXNzaW9uKCkucmVzb2x2ZVN5bWJvbCgoMCxkLm1ha2VOZXh0U3ltYm9sSWQpKCksdCx0aGlzLl9vblN5bWJvbE1lc3NhZ2UuYmluZCh0aGlzKSl9fSF0aGlzLl91cGRhdGVJbnB1dHMoKSYmZS5pc1N0YXJ0ZWQoKXx8KHRoaXMuX3N0YXR1cy5zZXRWYWx1ZSgwKSx0aGlzLl9ub0RhdGEuc2V0VmFsdWUobnVsbCksZS5pc1N0YXJ0ZWQoKXx8ZS5zdGFydCgpKX19Y2xlYXJTb3VyY2VEYXRhKCl7dGhpcy5fc3R1ZHlEYXRhU291cmNlLnZhbHVlKCk/LmNsZWFyRGF0YSgpfW1vdmVTb3VyY2VEYXRhKGUpe3RoaXMuX3N0dWR5RGF0YVNvdXJjZS52YWx1ZSgpPy5tb3ZlRGF0YShlKX1kaXNjb25uZWN0KCl7dGhpcy5fcmVxdWVzdEFjdGl2ZT0hMSx0aGlzLl9zdHVkeURhdGFTb3VyY2UudmFsdWUoKT8uc3RvcCgpLHRoaXMuX2lucHV0cz1udWxsfWNsZWFyRGF0YSgpe3RoaXMuX3JlcXVlc3RBY3RpdmU9ITEsc3VwZXIuY2xlYXJEYXRhKCksbnVsbCE9PXRoaXMuX3N0dWR5RGF0YVNvdXJjZS52YWx1ZSgpJiYodGhpcy5fc3R1ZHlEYXRhU291cmNlLnZhbHVlKCk/LnN0b3AoKSx0aGlzLmNsZWFyU291cmNlRGF0YSgpKX1taW5CYXJJbmRleCgpe3JldHVybiB0aGlzLl9taW5pQ2hhcnQubWFpblBsb3QoKS5taW5CYXJJbmRleCgpfW1heEJhckluZGV4KCl7cmV0dXJuIHRoaXMuX21pbmlDaGFydC5tYWluUGxvdCgpLm1heEJhckluZGV4KCl9X3N5bWJvbEluZm9SZXF1aXJlZCgpe3JldHVybiExfV9wcmljZUZvcm1hdCgpe2NvbnN0IGU9dGhpcy5fc3ltYm9sSW5mb1JlcXVpcmVkKCk/dGhpcy5fbWluaUNoYXJ0Lm1haW5QbG90KCkuc3ltYm9sSW5mbygpOnRoaXMuX3N5bWJvbEluZm87cmV0dXJuIG51bGw9PT1lP251bGw6KDAsbS5jdXN0b21QcmljZUZvcm1hdEJ5U3ltYm9sSW5mbykoZSl9YXN5bmMgX2NyZWF0ZVN0dWR5RGF0YVNvdXJjZSgpe2NvbnN0W2UsdCxpXT1hd2FpdCBQcm9taXNlLmFsbChbcy5lKDg3MTk2KS50aGVuKHMuYmluZChzLDE5ODU0MSkpLHMuZSg4NzE5NikudGhlbihzLmJpbmQocyw4NTY1NikpLHRoaXMuX2NyZWF0ZUlucHV0cygpXSk7aWYodGhpcy5faW5wdXRzPWksdGhpcy5faXNEZXN0cm95ZWQudmFsdWUoKSlyZXR1cm47Y29uc3QgYT1hd2FpdCB0aGlzLl9nZXRGYWtlTWV0YUluZm8oKTtpZih0aGlzLl9pc0Rlc3Ryb3llZC52YWx1ZSgpKXJldHVybjtlLlN0dWR5RGF0YVNvdXJjZS5zZXROb25TZXJpZXNEYXRhVW5wYWNrZXIodC51bnBhY2tOb25TZXJpZXNEYXRhQ29tcHJlc3NlZCk7Y29uc3Qgbz1uZXcgZS5TdHVkeURhdGFTb3VyY2UodGhpcy5jaGFydFNlc3Npb24oKSx0aGlzLl9taW5pQ2hhcnQuc2VyaWVzRGF0YVNvdXJjZSgpLCJzdCIsYSx0aGlzLl9mb3JjZVVzZUV4Y2xhbWF0aW9uTWFyaygpKTt0aGlzLl9vbk1ldGFJbmZvUmVhZHkoYSksdGhpcy5faW5wdXRzJiZvLnNldElucHV0cyh0aGlzLl9pbnB1dHMpLG8uc3R1ZHlTdGF0dXNDaGFuZ2VkKCkuc3Vic2NyaWJlKHRoaXMsdGhpcy5fb25TdHVkeVN0YXR1c0NoYW5nZWQpLG8uZGF0YVVwZGF0ZWQoKS5zdWJzY3JpYmUodGhpcyx0aGlzLl9vbkRhdGFJbnRlcm5hbCksdGhpcy5fc3R1ZHlEYXRhU291cmNlLnNldFZhbHVlKG8pLHRoaXMuX3JlcXVlc3RBY3RpdmUmJnRoaXMucmVxdWVzdERhdGEoKX1fZm9yY2VVc2VFeGNsYW1hdGlvbk1hcmsoKXtyZXR1cm4hMH1fYmFycygpe3JldHVybiB0aGlzLl9zdHVkeURhdGFTb3VyY2UudmFsdWUoKT8ucGxvdHMoKT8/X31fb25NZXRhSW5mb1JlYWR5KGUpe2lmKHZvaWQgMD09PWUucGxvdHMpcmV0dXJuO2NvbnN0IHQ9W107ZS5wbG90cy5mb3JFYWNoKCgocyxpKT0+e2NvbnN0IGE9cy5pZDtpZigibGluZSI9PT1zLnR5cGUmJnZvaWQgMCE9PWEpe2NvbnN0IHM9ZS5kZWZhdWx0cz8uc3R5bGVzPy5bYV0sbz10aGlzLl9wbG90Q29sb3IoaSkscj1zPy5wbG90dHlwZT8/dS5MaW5lU3R1ZHlQbG90U3R5bGUuTGluZTt0LnB1c2goe3Bsb3RJbmRleDppKzEscGxvdElkOmEsY29sb3I6byxwbG90dHlwZTpyfSl9fSkpLHRoaXMuX3Bsb3RzSW5mbz10O2NvbnN0IHM9dFswXTtpZih2b2lkIDAhPT1zKXtjb25zdCBlPXRoaXMuX3Bsb3R0eXBlVG9DaGFydFR5cGUocy5wbG90dHlwZSk7ZSE9PXRoaXMuX2N1cnJlbnRTZXJpZXNPcHRpb25zLmNoYXJ0VHlwZSYmdGhpcy51cGRhdGVTZXJpZXNPcHRpb25zKHtjaGFydFR5cGU6ZX0pfX1fZ2V0Vmlld0RhdGEoZSx0KXtjb25zdFtzLC4uLmldPXRoaXMuX3Bsb3RzSW5mbyxhPWkubWFwKCgoKT0+W10pKTtyZXR1cm57Li4uc3VwZXIuX2dldFZpZXdEYXRhKCgodCxvLHIpPT4oaS5mb3JFYWNoKCgoZSxzKT0+e2NvbnN0IGk9b1tlLnBsb3RJbmRleF07bnVsbD09PWl8fE51bWJlci5pc05hTihpKXx8YVtzXS5wdXNoKHt0aW1lOnQsdmFsdWU6aSxjb2xvcjplLmNvbG9yfSl9KSkscz97dGltZTp0LGNvbG9yOnMuY29sb3IsdmFsdWU6b1tzLnBsb3RJbmRleF19OmUodCxvLHIpKSksdCksYWRkaXRpb25hbFNlcmllczphfX1fb25TdHVkeVN0YXR1c0NoYW5nZWQoZSx0KXt0LnR5cGU9PT1jLlN0dWR5U3RhdHVzVHlwZS5Db21wbGV0ZWQmJigwLGEuZW5zdXJlTm90TnVsbCkodGhpcy5fc3R1ZHlEYXRhU291cmNlLnZhbHVlKCkpLnBlbmRpbmdVcGRhdGVzUmVhZHkoKS50aGVuKCgoKT0+e3RoaXMuX2lzRGVzdHJveWVkLnZhbHVlKCl8fHRoaXMuX29uRGF0YUNvbXBsZXRlZCgpfSkpLAp0LnR5cGU9PT1jLlN0dWR5U3RhdHVzVHlwZS5FcnJvciYmdGhpcy5fb25EYXRhRXJyb3IoKX1fc2V0QWRkaXRpb25hbFNlcmllc0RhdGEoZSl7Zm9yKGNvbnN0IGUgb2YgdGhpcy5fYWRkaXRpb25hbFNlcmllcyl0aGlzLl9taW5pQ2hhcnQud2lkZ2V0KCkucmVtb3ZlU2VyaWVzKGUpO2lmKHRoaXMuX2FkZGl0aW9uYWxTZXJpZXM9W10sMD09PWUubGVuZ3RoKXJldHVybjtjb25zdCB0PXRoaXMuX3ByaWNlRm9ybWF0KCk7Zm9yKGxldCBzPTA7czxlLmxlbmd0aDtzKyspe2NvbnN0IGk9ZVtzXTtpZigwPT09aS5sZW5ndGgpY29udGludWU7Y29uc3QgYT10aGlzLl9wbG90c0luZm9bcysxXSxvPXRoaXMuX2NyZWF0ZUFkZGl0aW9uYWxTZXJpZXNGb3JQbG90VHlwZShhLHQpO3RoaXMuX2FkZGl0aW9uYWxTZXJpZXMucHVzaChvKSxvLnNldERhdGEoaSl9fV91cGRhdGVBZGRpdGlvbmFsU2VyaWVzRGF0YShlKXtpZigwIT09dGhpcy5fYWRkaXRpb25hbFNlcmllcy5sZW5ndGgpe2Zvcig7dGhpcy5fYWRkaXRpb25hbFNlcmllcy5sZW5ndGg+ZS5sZW5ndGg7KXtjb25zdCBlPXRoaXMuX2FkZGl0aW9uYWxTZXJpZXMucG9wKCk7ZSYmdGhpcy5fbWluaUNoYXJ0LndpZGdldCgpLnJlbW92ZVNlcmllcyhlKX1mb3IobGV0IHQ9MDt0PHRoaXMuX2FkZGl0aW9uYWxTZXJpZXMubGVuZ3RoJiZ0PGUubGVuZ3RoO3QrKyl7Y29uc3Qgcz10aGlzLl9hZGRpdGlvbmFsU2VyaWVzW3RdLGk9ZVt0XTtpLmxlbmd0aD4wJiZzLnVwZGF0ZShpW2kubGVuZ3RoLTFdKX19ZWxzZSB0aGlzLl9zZXRBZGRpdGlvbmFsU2VyaWVzRGF0YShlKX1fcGxvdENvbG9yKGUpe2lmKDA9PT1lKXJldHVybiB0aGlzLmxpbmVDb2xvcigpPz8iIjtjb25zdCB0PXRoaXMuX2N1cnJlbnRTZXJpZXNPcHRpb25zLmFkZGl0aW9uYWxQbG90Q29sb3JHZXR0ZXI7cmV0dXJuIHQ/dChlKTp0aGlzLmxpbmVDb2xvcigpPz8iIn1fcGxvdHR5cGVUb0NoYXJ0VHlwZShlKXtzd2l0Y2goZSl7Y2FzZSB1LkxpbmVTdHVkeVBsb3RTdHlsZS5IaXN0b2dyYW06Y2FzZSB1LkxpbmVTdHVkeVBsb3RTdHlsZS5Db2x1bW5zOnJldHVybiJoaXN0b2dyYW0iO2Nhc2UgdS5MaW5lU3R1ZHlQbG90U3R5bGUuQXJlYTpjYXNlIHUuTGluZVN0dWR5UGxvdFN0eWxlLkFyZWFXaXRoQnJlYWtzOnJldHVybiJhcmVhIjtjYXNlIHUuTGluZVN0dWR5UGxvdFN0eWxlLkxpbmU6Y2FzZSB1LkxpbmVTdHVkeVBsb3RTdHlsZS5MaW5lV2l0aEJyZWFrczpjYXNlIHUuTGluZVN0dWR5UGxvdFN0eWxlLlN0ZXBMaW5lOmNhc2UgdS5MaW5lU3R1ZHlQbG90U3R5bGUuU3RlcExpbmVXaXRoRGlhbW9uZHM6Y2FzZSB1LkxpbmVTdHVkeVBsb3RTdHlsZS5TdGVwTGluZVdpdGhCcmVha3M6Y2FzZSB1LkxpbmVTdHVkeVBsb3RTdHlsZS5Dcm9zczpjYXNlIHUuTGluZVN0dWR5UGxvdFN0eWxlLkNpcmNsZXM6ZGVmYXVsdDpyZXR1cm4ibGluZSJ9fV9jcmVhdGVBZGRpdGlvbmFsU2VyaWVzRm9yUGxvdFR5cGUoZSx0KXtjb25zdHtjb2xvcjpzLHBsb3R0eXBlOmF9PWUsbz10aGlzLl9taW5pQ2hhcnQud2lkZ2V0KCkscj17Li4udGhpcy5jdXJyZW50U2VyaWVzT3B0aW9ucygpLHByaWNlTGluZVZpc2libGU6ITEsbGFzdFZhbHVlVmlzaWJsZTohMSxwcmljZUZvcm1hdDp0Pz92b2lkIDAsY29sb3I6c307c3dpdGNoKHRoaXMuX3Bsb3R0eXBlVG9DaGFydFR5cGUoYSkpe2Nhc2UiaGlzdG9ncmFtIjpyZXR1cm4gby5hZGRTZXJpZXMoaS5IaXN0b2dyYW1TZXJpZXMscik7Y2FzZSJhcmVhIjpyZXR1cm4gby5hZGRTZXJpZXMoaS5BcmVhU2VyaWVzLHIpO2RlZmF1bHQ6cmV0dXJuIG8uYWRkU2VyaWVzKGkuTGluZVNlcmllcyxyKX19X29uU3ltYm9sTWVzc2FnZShlKXtpZighdGhpcy5faXNEZXN0cm95ZWQudmFsdWUoKSlzd2l0Y2goZS5tZXRob2Qpe2Nhc2Uic3ltYm9sX3Jlc29sdmVkIjpjb25zdCB0PWUucGFyYW1zWzFdO3RoaXMuX29uU3ltYm9sUmVzb2x2ZWQodCksdGhpcy5fcmVxdWVzdEFjdGl2ZSYmdGhpcy5yZXF1ZXN0RGF0YSgpO2JyZWFrO2Nhc2Uic3ltYm9sX2Vycm9yIjp0aGlzLl9vblN5bWJvbEVycm9yTWVzc2FnZShlKX19X29uU3ltYm9sRXJyb3JNZXNzYWdlKGUpe2lmKGUucGFyYW1zWzFdPT09bi5wZXJtaXNzaW9uRGVuaWVkKXN3aXRjaChlLnBhcmFtc1syXSl7Y2FzZSBuLlN5bWJvbEVycm9yUGVybWlzc2lvbkRlbmllZFJlYXNvbi5TeW1ib2w6dGhpcy5fb25TeW1ib2xOb3RQZXJtaXR0ZWQoKTticmVhaztjYXNlIG4uU3ltYm9sRXJyb3JQZXJtaXNzaW9uRGVuaWVkUmVhc29uLkdyb3VwUGVybWlzc2lvbjp0aGlzLl9vblN5bWJvbEdyb3VwTm90UGVybWl0dGVkKCk7YnJlYWs7ZGVmYXVsdDp0aGlzLl9vblN5bWJvbE5vdFBlcm1pdHRlZCgpfWVsc2UgZS5wYXJhbXNbMV09PT1uLmludmFsaWRTeW1ib2wmJnRoaXMuX29uU3ltYm9sSW52YWxpZCgpO3RoaXMuX29uU3ltYm9sRXJyb3IoZS5wYXJhbXNbMV0pfV9vbkRhdGFJbnRlcm5hbChlLHQpe2lmKHRoaXMuX2lzRGVzdHJveWVkLnZhbHVlKCkpcmV0dXJuO2NvbnN0IHM9ZS5sZW5ndGg+MCYmdGhpcy5fYmFycygpLmxhc3QoKT8uaW5kZXg9PT1lW2UubGVuZ3RoLTFdLmluZGV4JiZ0aGlzLl9iYXJzKCkuZmlyc3QoKT8uaW5kZXghPT1lWzBdLmluZGV4O3RoaXMuX29uRGF0YShzP2VbMF0uaW5kZXg6dm9pZCAwLHQ/P3ZvaWQgMCl9fX0sMTQ0ODg4KGUsdCxzKXtzLnIodCkscy5kKHQse1NlYXNvbmFsc0NoYXJ0OigpPT5PfSk7dmFyIGk9cyg3NDAxNjIpLGE9cyg2NzgzMTIpLG89cyg0NzAwOTApLHI9cyg1NTY5MTEpLG49cygyMjEwNjEpLGw9cygxMzg2MzgpLHU9cyg1MDU1NiksZD1zKDc4MzI1NCksYz1zKDcwMDgwOSksaD1zKDEyNTIxOCkscD1zKDEyODk5OCksbT1zKDU3MTMyOCkseT1zKDI2MDY5KSxfPXMoNzg2NDM2KTtjbGFzcyBTe2NvbnN0cnVjdG9yKCl7dGhpcy5fZGF0YT1udWxsfXNldERhdGEoZSl7dGhpcy5fZGF0YT1lfWRyYXcoZSl7Y29uc3QgdD10aGlzLl9kYXRhO251bGwhPT10JiZlLnVzZUJpdG1hcENvb3JkaW5hdGVTcGFjZSgoZT0+e2NvbnN0IHM9ZS5jb250ZXh0O3Muc3Ryb2tlU3R5bGU9dC5jb2xvcgo7Y29uc3QgaT1NYXRoLm1heCgxLE1hdGguZmxvb3IoZS5ob3Jpem9udGFsUGl4ZWxSYXRpbykpLGE9aSUyLzI7cy5saW5lV2lkdGg9aSwoMCxfLnNldExpbmVTdHlsZSkocyx5LkxJTkVTVFlMRV9EQVNIRUQpO2Zvcihjb25zdCBpIG9mIHQucG9zaXRpb25zKXtjb25zdCB0PU1hdGgucm91bmQoaSplLmhvcml6b250YWxQaXhlbFJhdGlvKSthO3MuYmVnaW5QYXRoKCkscy5tb3ZlVG8odCwwKSxzLmxpbmVUbyh0LGUuYml0bWFwU2l6ZS5oZWlnaHQpLHMuc3Ryb2tlKCl9fSkpfX1jb25zdCBnPVs2MCwxNTIsMjQ0LDMzNV07Y2xhc3Mgdntjb25zdHJ1Y3RvcihlLHQpe3RoaXMuX2ludmFsaWRhdGVkPSEwLHRoaXMuX3JlbmRlcmVyPW5ldyBTLHRoaXMuX2NoYXJ0PWUsdGhpcy5fb3B0aW9ucz10fXVwZGF0ZSgpe3RoaXMuX2ludmFsaWRhdGVkPSEwfXVwZGF0ZU9wdGlvbnMoZSl7dGhpcy5fb3B0aW9ucz17Li4udGhpcy5fb3B0aW9ucywuLi5lfSx0aGlzLnVwZGF0ZSgpfXJlbmRlcmVyKCl7aWYodGhpcy5faW52YWxpZGF0ZWQpe2NvbnN0IGU9W107Zm9yKGNvbnN0IHQgb2YgZyl7Y29uc3Qgcz10aGlzLl9jaGFydC50aW1lU2NhbGUoKS5sb2dpY2FsVG9Db29yZGluYXRlKHQpO2lmKG51bGw9PT1zKXJldHVybiBudWxsO2UucHVzaChzKX10aGlzLl9yZW5kZXJlci5zZXREYXRhKHtwb3NpdGlvbnM6ZSxjb2xvcjp0aGlzLl9vcHRpb25zLmNvbG9yfSksdGhpcy5faW52YWxpZGF0ZWQ9ITF9cmV0dXJuIHRoaXMuX3JlbmRlcmVyfX1jb25zdCBmPXtjb2xvcjoiZ3JheSJ9O2NsYXNzIER7Y29uc3RydWN0b3IoZSx0KXt0aGlzLl9wYW5lVmlldz1uZXcgdihlLHsuLi5mLC4uLnR9KX11cGRhdGVBbGxWaWV3cygpe3RoaXMuX3BhbmVWaWV3LnVwZGF0ZSgpfXVwZGF0ZU9wdGlvbnMoZSl7dGhpcy5fcGFuZVZpZXcudXBkYXRlT3B0aW9ucyhlKX1wYW5lVmlld3MoKXtyZXR1cm5bdGhpcy5fcGFuZVZpZXddfX1jb25zdCBiPSgwLG4uZ2V0TG9nZ2VyKSgiQ2hhcnQuTWluaUNoYXJ0IiksTD0oMCx1LmdldEhleENvbG9yQnlOYW1lKSgiY29sb3ItdHYtYmx1ZS00MDAiKSxQPVtMLCgwLHUuZ2V0SGV4Q29sb3JCeU5hbWUpKCJjb2xvci1pZ3VhbmEtZ3JlZW4tYTcwMCIpLCgwLHUuZ2V0SGV4Q29sb3JCeU5hbWUpKCJjb2xvci10YW4tb3JhbmdlLTUwMCIpLCgwLHUuZ2V0SGV4Q29sb3JCeU5hbWUpKCJjb2xvci1za3ktYmx1ZS00MDAiKSwoMCx1LmdldEhleENvbG9yQnlOYW1lKSgiY29sb3ItYmVycnktcGluay1hNzAwIiksKDAsdS5nZXRIZXhDb2xvckJ5TmFtZSkoImNvbG9yLWJhbmFuYS15ZWxsb3ctNzAwIiksKDAsdS5nZXRIZXhDb2xvckJ5TmFtZSkoImNvbG9yLW1pbnR5LWdyZWVuLWE0MDAiKSwoMCx1LmdldEhleENvbG9yQnlOYW1lKSgiY29sb3ItYmVycnktcGluay1hMjAwIiksKDAsdS5nZXRIZXhDb2xvckJ5TmFtZSkoImNvbG9yLXR2LWJsdWUtYTEwMCIpLCgwLHUuZ2V0SGV4Q29sb3JCeU5hbWUpKCJjb2xvci1ncmFwZXMtcHVycGxlLWE3MDAiKSwoMCx1LmdldEhleENvbG9yQnlOYW1lKSgiY29sb3ItcmlwZS1yZWQtYTQwMCIpLCgwLHUuZ2V0SGV4Q29sb3JCeU5hbWUpKCJjb2xvci1taW50eS1ncmVlbi01MDAiKSwoMCx1LmdldEhleENvbG9yQnlOYW1lKSgiY29sb3ItZ3JhcGVzLXB1cnBsZS1hMTAwIiksKDAsdS5nZXRIZXhDb2xvckJ5TmFtZSkoImNvbG9yLWRlZXAtYmx1ZS1hMjAwIiksKDAsdS5nZXRIZXhDb2xvckJ5TmFtZSkoImNvbG9yLXRhbi1vcmFuZ2UtODAwIildLEM9bmV3IGguUGVyY2VudGFnZUZvcm1hdHRlcjtjbGFzcyB4IGV4dGVuZHMgbS5TdHVkeU1pbmlDaGFydFBsb3R7Y29uc3RydWN0b3IoZSx0LHMpe3N1cGVyKGUsdCxzKSx0aGlzLl9zZWFzb25hbHNTZXJpZXM9W10sdGhpcy5fYXZlcmFnZVByaWNlU2VyaWVzPW51bGwsdGhpcy5fc2Vhc29uTGluZXM9bnVsbCx0aGlzLl95ZWFyRGF0YUJ5WWVhcj1uZXcgTWFwLHRoaXMuX3RpbWVzQnlEYXlJbmRleD1bXSx0aGlzLl9hdmVyYWdlU2VyaWVzRGF0YT1bXSx0aGlzLl9hdHRhY2hTZWFzb25MaW5lcygpfWdldExlZ2VuZERhdGEoZSl7aWYodm9pZCAwPT09ZXx8MD09PXRoaXMuX3llYXJEYXRhQnlZZWFyLnNpemUpcmV0dXJuW107Y29uc3QgdD10aGlzLl9taW5pQ2hhcnQubWFpblBsb3QoKS5zZXJpZXMoKS5kYXRhQnlJbmRleChlKT8udGltZTtpZih2b2lkIDA9PT10KXJldHVybltdO2NvbnN0IGk9W10sbz10aGlzLl9taW5pQ2hhcnQud2lkZ2V0KCkucHJpY2VTY2FsZSgicmlnaHQiKS5vcHRpb25zKCkubW9kZT09PWEuUHJpY2VTY2FsZU1vZGUuUGVyY2VudGFnZSxyPW5ldyBEYXRlLG49bmV3IERhdGUoMWUzKnQpLGw9ci5nZXRGdWxsWWVhcigpO2lmKHRoaXMuX29wdGlvbnMuYXZlcmFnZUxpbmVWaXNpYmxlKXtjb25zdCB0PXRoaXMuX2F2ZXJhZ2VQcmljZVNlcmllcz8uZGF0YUJ5SW5kZXgoZSk7aWYobnVsbCE9PXQpe2xldCBlO2lmKG8pe2NvbnN0IHM9dGhpcy5fYXZlcmFnZVNlcmllc0RhdGFbMF0udmFsdWUsaT10LnZhbHVlO2U9Qy5mb3JtYXQoKGktcykvcyoxMDApfWVsc2UgZT10aGlzLl9zZXJpZXMucHJpY2VGb3JtYXR0ZXIoKS5mb3JtYXQodC52YWx1ZSk7aS5wdXNoKHt0aXRsZTpkLnQobnVsbCx7Y29udGV4dDoiU2Vhc29uYWxzIGNoYXJ0In0scyg5MjkxKSksdmFsdWU6ZSxjb2xvcjp0aGlzLl9vcHRpb25zLmF2ZXJhZ2VMaW5lQ29sb3J9KX19Y29uc3R7c3RhcnQ6dSxlbmQ6aH09dGhpcy5fb3B0aW9ucy5wZXJpb2Q7Zm9yKGxldCB0PXU7dDw9aDt0Kyspe2NvbnN0IHM9dGhpcy5feWVhckRhdGFCeVllYXIuZ2V0KHQpO2lmKHZvaWQgMD09PXMpY29udGludWU7Y29uc3QgYT10PT09aD90aGlzLl9zZXJpZXM6dGhpcy5fc2Vhc29uYWxzU2VyaWVzW3QtdV0sZD1hPy5kYXRhQnlJbmRleChlKT8/bnVsbDtsZXQgcDtpZihudWxsPT09ZCl7aWYobD09PXMueWVhciYmKDAsYy5nZXRfZGF5X29mX3llYXIpKG4pPigwLGMuZ2V0X2RheV9vZl95ZWFyKShyKSljb250aW51ZTtwPSLigJQifWVsc2V7bGV0IGU9ZC52YWx1ZTtpZihvKXtjb25zdCB0PXMuZGF0YVswXS52YWx1ZTtpZihlPShlLXQpL3QqMTAwLAohTnVtYmVyLmlzRmluaXRlKGUpKWNvbnRpbnVlO3A9Qy5mb3JtYXQoZSl9ZWxzZSBwPWEucHJpY2VGb3JtYXR0ZXIoKS5mb3JtYXQoZSl9aS5wdXNoKHt0aXRsZTpgJHtzLnllYXJ9YCx2YWx1ZTpwLGNvbG9yOnMuY29sb3J9KX1yZXR1cm4gaX10aXRsZXMoKXtjb25zdCBlPVtdLHtzdGFydDp0LGVuZDpzfT10aGlzLl9vcHRpb25zLnBlcmlvZDtmb3IobGV0IGk9cztpPj10Oy0taSl7Y29uc3QgdD10aGlzLl95ZWFyRGF0YUJ5WWVhci5nZXQoaSk7dm9pZCAwIT09dCYmZS5wdXNoKGAke3QueWVhcn1gKX1yZXR1cm4gZX1nZXRZZWFyRGF0YUJ5WWVhcigpe3JldHVybiB0aGlzLl95ZWFyRGF0YUJ5WWVhcn1hcHBseU9wdGlvbnMoZSl7Y29uc3QgdD17Li4udGhpcy5fb3B0aW9ucy5wZXJpb2R9O3N1cGVyLmFwcGx5T3B0aW9ucyhlKSx0aGlzLl9zZWFzb25MaW5lcz8udXBkYXRlT3B0aW9ucyh7Y29sb3I6dGhpcy5fb3B0aW9ucy5zZWFzb25MaW5lc0NvbG9yfSksdGhpcy5fYXZlcmFnZVByaWNlU2VyaWVzPy5hcHBseU9wdGlvbnMoe2NvbG9yOnRoaXMuX29wdGlvbnMuYXZlcmFnZUxpbmVDb2xvcix2aXNpYmxlOnRoaXMuX29wdGlvbnMuYXZlcmFnZUxpbmVWaXNpYmxlfSk7Y29uc3R7c3RhcnQ6cyxlbmQ6aX09dGhpcy5fb3B0aW9ucy5wZXJpb2Q7aWYodC5zdGFydCE9PXN8fHQuZW5kIT09aSl7bGV0IGU9ITA7Zm9yKGxldCB0PXM7dDw9aTsrK3QpaWYoIXRoaXMuX3llYXJEYXRhQnlZZWFyLmhhcyh0KSl7ZT0hMTticmVha310aGlzLnVwZGF0ZURhdGEoITEsITApLGV8fHRoaXMuX21pbmlDaGFydC5jb25uZWN0KCl9fWRlbGV0ZVZpZXcoKXtzdXBlci5kZWxldGVWaWV3KCk7Zm9yKGNvbnN0IGUgb2YgdGhpcy5fc2Vhc29uYWxzU2VyaWVzKWUuc2V0RGF0YShbXSl9YmVmb3JlRGF0YVJlYWR5KCl7dGhpcy51cGRhdGVEYXRhKCExLCEwKX11cGRhdGVTZXJpZXNPcHRpb25zKGUpe2NvbnN0e2xpbmVXaWR0aDp0LGNvbG9yOnMsZmFsbGluZ0NvbG9yOmksZ3Jvd2luZ0NvbG9yOmEsbGFzdFByaWNlQW5pbWF0aW9uOm8sLi4ucn09ZTtzdXBlci51cGRhdGVTZXJpZXNPcHRpb25zKHsuLi5yfSksdGhpcy5fc2Vhc29uYWxzU2VyaWVzLmZvckVhY2goKGU9PmUuYXBwbHlPcHRpb25zKHIpKSksdGhpcy5fYXZlcmFnZVByaWNlU2VyaWVzPy5hcHBseU9wdGlvbnMocil9X3N5bWJvbEluZm9SZXF1aXJlZCgpe3JldHVybiEwfV9vblN5bWJvbFJlc29sdmVkKGUpe3N1cGVyLl9vblN5bWJvbFJlc29sdmVkKGUpLHRoaXMuX2N1c3RvbVByaWNlRm9ybWF0PXt0eXBlOiJjdXN0b20iLG1pbk1vdmU6ZS5taW5tb3YvZS5wcmljZXNjYWxlLGJhc2U6ZS5wcmljZXNjYWxlL2UubWlubW92LGZvcm1hdHRlcjp0PT4oMCxwLmNyZWF0ZVNlcmllc0Zvcm1hdHRlcikoZSwiZGVmYXVsdCIpLmZvcm1hdCh0KX0sdGhpcy5fc2VyaWVzLmFwcGx5T3B0aW9ucyh7cHJpY2VGb3JtYXQ6dGhpcy5fY3VzdG9tUHJpY2VGb3JtYXR9KTtmb3IoY29uc3QgZSBvZiB0aGlzLl9zZWFzb25hbHNTZXJpZXMpZS5hcHBseU9wdGlvbnMoe3ByaWNlRm9ybWF0OnRoaXMuX2N1c3RvbVByaWNlRm9ybWF0fSk7dGhpcy5fbWluaUNoYXJ0LnVwZGF0ZVNlcmllc09wdGlvbnMoe3ByaWNlRm9ybWF0OnRoaXMuX2N1c3RvbVByaWNlRm9ybWF0fSl9YXN5bmMgX2dldEZha2VNZXRhSW5mbygpe3JldHVybntwbG90czpbXSxpZDoiU2Vhc29uYWxzQHR2LWJhc2ljc3R1ZGllcyIsZnVsbElkOiJTZWFzb25hbHNAdHYtYmFzaWNzdHVkaWVzLTIzOCIsdmVyc2lvbjoyMzh9fWFzeW5jIF9jcmVhdGVJbnB1dHMoKXtyZXR1cm4gdGhpcy5fZ2V0SW5wdXRzSW1wbCgpfV91cGRhdGVJbnB1dHMoKXtyZXR1cm4gdGhpcy5faW5wdXRzPXRoaXMuX2dldElucHV0c0ltcGwoKSwoMCxsLmVuc3VyZU5vdE51bGwpKHRoaXMuX3N0dWR5RGF0YVNvdXJjZS52YWx1ZSgpKS5zZXRJbnB1dHModGhpcy5faW5wdXRzKSwhMH1fb25EYXRhKGUsdCl7cmV0dXJuIHZvaWQgMCE9PXQmJiF0LmluZGV4ZXNfcmVwbGFjZSYmdC5kYXRhJiZ0aGlzLl9maWxsRGF0YSh0LmRhdGEpLHN1cGVyLl9vbkRhdGEoZSx0KX1fZ2V0Vmlld0RhdGEoKXtjb25zdHtzdGFydDplLGVuZDp0fT10aGlzLl9vcHRpb25zLnBlcmlvZCxzPVtdO2ZvcihsZXQgaT10O2k+PWU7LS1pKXtjb25zdCBlPXRoaXMuX3llYXJEYXRhQnlZZWFyLmdldChpKTt2b2lkIDAhPT1lJiZzLnB1c2goZSl9cy5zb3J0KCgoZSx0KT0+dC55ZWFyLWUueWVhcikpO2NvbnN0IGk9dGhpcy5fb3B0aW9ucy5sYXN0WWVhcjtzLmZvckVhY2goKChlLHQpPT57Y29uc3Qgcz12b2lkIDAhPT1pP2ktZS55ZWFyOnQ7ZS5jb2xvcj1QW3MlUC5sZW5ndGhdfSkpLHRoaXMuX2F2ZXJhZ2VTZXJpZXNEYXRhPWZ1bmN0aW9uKGUsdCxzKXtpZigwPT09ZS5sZW5ndGh8fDA9PT10Lmxlbmd0aClyZXR1cm5bXTtjb25zdCBpPXt9O2xldCBhPTM2NTtmb3IoY29uc3QgdCBvZiBlKWE9TWF0aC5taW4oYSx0LmRhdGFbMF0/LmRheUluZGV4Pz9hKTtmb3IoY29uc3QgbyBvZiBlKXtpZigwPT09by5kYXRhLmxlbmd0aCljb250aW51ZTtsZXQgZT1udWxsO2ZvcihsZXQgcj0wO3I8by5kYXRhLmxlbmd0aDsrK3Ipe2NvbnN0IG49by5kYXRhW3JdLGw9bi5kYXlJbmRleDtsZXQgdT1pW2xdO2lmKHZvaWQgMD09PXUmJih1PXt0aW1lOm4udGltZSx2YWx1ZXM6W119LGlbbF09dSksbnVsbD09PWUpZm9yKGxldCBlPWE7ZTxsOysrZSl7bGV0IHM9aVtlXTtzfHwocz17dGltZTp0W2VdLHZhbHVlczpbXX0saVtlXT1zKSxzLnZhbHVlcy5wdXNoKG4udmFsdWUpfWlmKG51bGwhPT1lJiZlLmRheUluZGV4IT09bCsxKXtjb25zdCBzPShuLnZhbHVlLWUudmFsdWUpLyhsLWUuZGF5SW5kZXgpO2ZvcihsZXQgYT1lLmRheUluZGV4KzE7YTxsOysrYSl7bGV0IG89aVthXTtvfHwobz17dGltZTp0W2FdLHZhbHVlczpbXX0saVthXT1vKSxvLnZhbHVlcy5wdXNoKGUudmFsdWUrcyooYS1lLmRheUluZGV4KSl9fWlmKHUudmFsdWVzLnB1c2gobi52YWx1ZSksby55ZWFyIT09cyYmcj09PW8uZGF0YS5sZW5ndGgtMSlmb3IobGV0IGU9bCsxO2U8MzY2OysrZSl7bGV0IHM9aVtlXTtzfHwocz17dGltZTp0W2VdLAp2YWx1ZXM6W119LGlbZV09cykscy52YWx1ZXMucHVzaChuLnZhbHVlKX1lPW59fWNvbnN0IG89W107Zm9yKGxldCBlPTA7ZTwzNjY7KytlKXtjb25zdCB0PWlbZV07aWYodCl7Y29uc3QgZT10LnZhbHVlcy5yZWR1Y2UoKChlLHQpPT5lK3QpLDApL3QudmFsdWVzLmxlbmd0aDtvLnB1c2goe3RpbWU6dC50aW1lLHZhbHVlOmV9KX19cmV0dXJuIG99KHMsdGhpcy5fdGltZXNCeURheUluZGV4LGk/P3QpO2NvbnN0IGE9cy5zbGljZSgxKS5tYXAoKGU9PmUuZGF0YSkpO3JldHVybiBhLnB1c2godGhpcy5fYXZlcmFnZVNlcmllc0RhdGEpLHtzZXJpZXM6cy5sZW5ndGg/Wy4uLnNbMF0uZGF0YV06W10sYWRkaXRpb25hbFNlcmllczphfX1fc2V0QWRkaXRpb25hbFNlcmllc0RhdGEoKXtjb25zdHtwZXJpb2Q6e3N0YXJ0OmUsZW5kOnR9LGhpZGVTZXJpZXNUaXRsZXM6aX09dGhpcy5fb3B0aW9ucyxvPXRoaXMuX29wdGlvbnMubGFzdFllYXI7aXx8dGhpcy5fc2VyaWVzLmFwcGx5T3B0aW9ucyh7dGl0bGU6YCR7dH1gfSk7Zm9yKGNvbnN0IGUgb2YgdGhpcy5fc2Vhc29uYWxzU2VyaWVzKXRoaXMuX21pbmlDaGFydC53aWRnZXQoKS5yZW1vdmVTZXJpZXMoZSk7dGhpcy5fc2Vhc29uYWxzU2VyaWVzPVtdO2NvbnN0e2xpbmVXaWR0aDpyLGNvbG9yOm4sZmFsbGluZ0NvbG9yOmwsZ3Jvd2luZ0NvbG9yOnUsbGFzdFByaWNlQW5pbWF0aW9uOmMsLi4uaH09dGhpcy5fb3JpZ2luYWxTZXJpZXNPcHRpb25zO2ZvcihsZXQgcz1lO3M8dDtzKyspe2NvbnN0IGU9dGhpcy5feWVhckRhdGFCeVllYXIuZ2V0KHMpO2lmKHZvaWQgMD09PWUpY29udGludWU7Y29uc3QgdD10aGlzLl9taW5pQ2hhcnQud2lkZ2V0KCkuYWRkU2VyaWVzKGEuTGluZVNlcmllcyx7Li4uaCxjb2xvcjplLmNvbG9yLGxpbmVXaWR0aDoxLHByaWNlRm9ybWF0OnRoaXMuX2N1c3RvbVByaWNlRm9ybWF0LHZpc2libGU6ITAscHJpY2VMaW5lVmlzaWJsZTohMSxsYXN0UHJpY2VBbmltYXRpb246YS5MYXN0UHJpY2VBbmltYXRpb25Nb2RlLkRpc2FibGVkLHRpdGxlOmk/dm9pZCAwOmAke2UueWVhcn1gfSk7dGhpcy5fc2Vhc29uYWxzU2VyaWVzLnB1c2godCksdC5zZXREYXRhKFsuLi5lLmRhdGFdKX10aGlzLl9hdmVyYWdlUHJpY2VTZXJpZXM/dGhpcy5fYXZlcmFnZVByaWNlU2VyaWVzLmFwcGx5T3B0aW9ucyh7Y29sb3I6dGhpcy5fb3B0aW9ucy5hdmVyYWdlTGluZUNvbG9yLHZpc2libGU6dGhpcy5fb3B0aW9ucy5hdmVyYWdlTGluZVZpc2libGV9KTp0aGlzLl9hdmVyYWdlUHJpY2VTZXJpZXM9dGhpcy5fbWluaUNoYXJ0LndpZGdldCgpLmFkZFNlcmllcyhhLkxpbmVTZXJpZXMsey4uLmgsY29sb3I6dGhpcy5fb3B0aW9ucy5hdmVyYWdlTGluZUNvbG9yLHZpc2libGU6dGhpcy5fb3B0aW9ucy5hdmVyYWdlTGluZVZpc2libGUsbGluZVdpZHRoOjMsbGluZVN0eWxlOmEuTGluZVN0eWxlLkRvdHRlZCxwcmljZUZvcm1hdDp0aGlzLl9jdXN0b21QcmljZUZvcm1hdCxwcmljZUxpbmVWaXNpYmxlOiExLGxhc3RQcmljZUFuaW1hdGlvbjphLkxhc3RQcmljZUFuaW1hdGlvbk1vZGUuRGlzYWJsZWQsdGl0bGU6aT92b2lkIDA6ZC50KG51bGwse2NvbnRleHQ6IlNlYXNvbmFscyBjaGFydCJ9LHMoOTI5MSkpfSksdGhpcy5fYXZlcmFnZVByaWNlU2VyaWVzLnNldERhdGEodGhpcy5fYXZlcmFnZVNlcmllc0RhdGEpLHZvaWQgMCE9PW8mJih0PT09bz90aGlzLl9zZXJpZXMuYXBwbHlPcHRpb25zKHtsYXN0UHJpY2VBbmltYXRpb246YyxsaW5lV2lkdGg6cn0pOnRoaXMuX3Nlcmllcy5hcHBseU9wdGlvbnMoe2xhc3RQcmljZUFuaW1hdGlvbjphLkxhc3RQcmljZUFuaW1hdGlvbk1vZGUuRGlzYWJsZWQsbGluZVdpZHRoOjF9KSk7Y29uc3QgcD10aGlzLl95ZWFyRGF0YUJ5WWVhci5nZXQodCk7cCYmcC55ZWFyPT09dCYmdGhpcy5fc2VyaWVzLmFwcGx5T3B0aW9ucyh7Y29sb3I6cC5jb2xvcn0pLHRoaXMuX3NlYXNvbmFsc1Nlcmllcy5mb3JFYWNoKCgoZSx0KT0+ZS5zZXRTZXJpZXNPcmRlcih0KSkpLHRoaXMuX3Nlcmllcy5zZXRTZXJpZXNPcmRlcih0aGlzLl9zZWFzb25hbHNTZXJpZXMubGVuZ3RoKSx0aGlzLl9hdmVyYWdlUHJpY2VTZXJpZXMuc2V0U2VyaWVzT3JkZXIodGhpcy5fc2Vhc29uYWxzU2VyaWVzLmxlbmd0aCsxKX1fdXBkYXRlQWRkaXRpb25hbFNlcmllc0RhdGEoZSl7KDAsbC5hc3NlcnQpKCExLCJNZXRob2Qgc2hvdWxkIG5ldmVyIGJlIGNhbGxlZCIpfV9hdHRhY2hTZWFzb25MaW5lcygpe3RoaXMuX3NlYXNvbkxpbmVzPW5ldyBEKHRoaXMuX21pbmlDaGFydC53aWRnZXQoKSx7Y29sb3I6dGhpcy5fb3B0aW9ucy5zZWFzb25MaW5lc0NvbG9yfSksdGhpcy5fc2VyaWVzLmF0dGFjaFByaW1pdGl2ZSh0aGlzLl9zZWFzb25MaW5lcyl9X2ZpbGxEYXRhKGUpe2Zvcihjb25zdFt0LHNdb2YgT2JqZWN0LmVudHJpZXMoZS5zZWFzb25hbHMpKXtjb25zdCBlPXBhcnNlSW50KHQsMTApLGk9W107bGV0IGE9LTEvMDtmb3IoY29uc3RbdCxvXW9mIHMpeygwLGwuYXNzZXJ0KShudWxsIT10LCJkYXlJbmRleCBzaG91bGQgbm90IGJlIG51bGwiKTtjb25zdCBzPXRoaXMuX21pbmlDaGFydC5tYWluUGxvdCgpLnNlcmllcygpLmRhdGFCeUluZGV4KHQpO2lmKCgwLGwuYXNzZXJ0KShudWxsIT1zLGBObyBkYXRhIGZvdW5kIGZvciBkYXlJbmRleDogJHt0fWApLGE+PXQpe2IubG9nRXJyb3IoYFNlYXNvbmFscyBkYXRhIGlzIG5vdCBzb3J0ZWQgZm9yIHllYXIgJHtlfWApO2JyZWFrfWkucHVzaCh7dGltZTpzLnRpbWUsdmFsdWU6byxkYXlJbmRleDp0fSksYT10fWNvbnN0IG89e3llYXI6ZSxkYXRhOmksY29sb3I6IiJ9O3RoaXMuX3llYXJEYXRhQnlZZWFyLnNldChlLG8pfWNvbnN0e3N0YXJ0OnQsZW5kOnN9PXRoaXMuX29wdGlvbnMucGVyaW9kO2ZvcihsZXQgZT10O2U8PXM7KytlKWlmKCF0aGlzLl95ZWFyRGF0YUJ5WWVhci5oYXMoZSkpe2NvbnN0IHQ9e3llYXI6ZSxkYXRhOltdLGNvbG9yOiIifTt0aGlzLl95ZWFyRGF0YUJ5WWVhci5zZXQoZSx0KX10aGlzLl90aW1lc0J5RGF5SW5kZXg9QXJyYXkoMzY2KS5maWxsKG51bGwpLm1hcCgoKGUsdCk9PigwLApsLmVuc3VyZU5vdE51bGwpKHRoaXMuX21pbmlDaGFydC5tYWluUGxvdCgpLnNlcmllcygpLmRhdGFCeUluZGV4KHQpKS50aW1lKSl9X2dldElucHV0c0ltcGwoKXtyZXR1cm57Y29uZmlnOkpTT04uc3RyaW5naWZ5KHt0aWNrZXI6dGhpcy5zeW1ib2woKSx5ZWFyczp0aGlzLl9vcHRpb25zLnBlcmlvZH0pfX19dmFyIE09cyg1ODYyNDcpO2NsYXNzIEkgZXh0ZW5kcyBNLk1pbmlDaGFydFBsb3R7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMuX3NlYXNvbmFsc1Bsb3Q9bnVsbH1zZXRTZWFzb25hbHNQbG90KGUpe3RoaXMuX3NlYXNvbmFsc1Bsb3Q9ZX1hcHBseU9wdGlvbnMoZSl7dGhpcy5fc2Vhc29uYWxzUGxvdD8uYXBwbHlPcHRpb25zKGUpfV9nZXRWaWV3RGF0YShlLHQpe2NvbnN0IHM9c3VwZXIuX2dldFZpZXdEYXRhKGUsdCk7cmV0dXJuIHMuc2VyaWVzLmZvckVhY2goKGU9PntlLnZhbHVlPTEwMH0pKSxzfX1jb25zdCBBPXtjaGFydE9wdGlvbnM6e3Nlcmllczp7dmlzaWJsZTohMSxjaGFydFR5cGU6ImxpbmUiLGhvcnpNYXJnaW5zOntsZWZ0TG9naWNhbDotLjUscmlnaHRMb2dpY2FsOjM4NC4zKi4wNSxyaWdodFB4OjB9fSxjaGFydDp7dGltZVNjYWxlOnthbGxvd0JvbGRMYWJlbHM6ITF9fSxzdXBwcmVzc1RpY2tNYXJrczp7ZGF5QW5kVGltZVRpY2tNYXJrRml4RW5hYmxlZDohMCxoaWRlWWVhcnNUaWNrTWFya3M6ITAsc3VwcHJlc3NGbjpmdW5jdGlvbihlLHQscyxpKXtyZXR1cm4gaSE9PWEuVGlja01hcmtUeXBlLlllYXImJmkhPT1hLlRpY2tNYXJrVHlwZS5Nb250aH19LGRhdGVGb3JtYXQ6ImRkIE1NTSJ9LG1haW5QbG90T3B0aW9uczp7cGVyaW9kOntzdGFydDoyMDE1LGVuZDoyMDI0fSxzZWFzb25MaW5lc0NvbG9yOiJncmF5IixhdmVyYWdlTGluZVZpc2libGU6ITF9fTtjbGFzcyBPIGV4dGVuZHMgby5NaW5pQ2hhcnR7Y29uc3RydWN0b3IoZSx0LHMpe3N1cGVyKCJJTlRFUk5BTDpTRUFTT05BTFMiLHQsKDAsaS5kZWZhdWx0KSgoMCxyLmRlZXBDb3B5KShBKSxzKSksdGhpcy5fc2Vhc29uYWxzUGxvdD1uZXcgeCh0aGlzLHsuLi50aGlzLl9vcHRpb25zLm1haW5QbG90T3B0aW9ucyxjaGFydFR5cGU6ImxpbmUiLGNvbG9yOkwsbGluZVdpZHRoOjMsbGFzdFByaWNlQW5pbWF0aW9uOmEuTGFzdFByaWNlQW5pbWF0aW9uTW9kZS5PbkRhdGFVcGRhdGUscHJpY2VMaW5lVmlzaWJsZTohMX0sdGhpcy5fb3B0aW9ucy5tYWluUGxvdE9wdGlvbnMpLHRoaXMuYWRkU3R1ZHlQbG90KHRoaXMuX3NlYXNvbmFsc1Bsb3QpLHRoaXMuX21haW5QbG90LnNldFNlYXNvbmFsc1Bsb3QodGhpcy5fc2Vhc29uYWxzUGxvdCksdGhpcy5fc2Vhc29uYWxzUGxvdC5zZXRTeW1ib2woZSksdGhpcy5tYWluUGxvdCgpLnVwZGF0ZVNlcmllc09wdGlvbnMoe3Zpc2libGU6ITF9KX1zZWFzb25hbFBsb3QoKXtyZXR1cm4gdGhpcy5fc2Vhc29uYWxzUGxvdH1jaGFuZ2VTeW1ib2woZSx0KXt0aGlzLl9zZWFzb25hbHNQbG90LnNldFN5bWJvbChlLHQpLHN1cGVyLmNoYW5nZVN5bWJvbCgiSU5URVJOQUw6U0VBU09OQUxTIix0KX11cGRhdGVTZXJpZXNPcHRpb25zKGUpe3RoaXMuX3NlYXNvbmFsc1Bsb3QudXBkYXRlU2VyaWVzT3B0aW9ucyhlKSxzdXBlci51cGRhdGVTZXJpZXNPcHRpb25zKGUpfXN5bWJvbCgpe3JldHVybiB0aGlzLm1haW5QbG90KCkuc3ltYm9sKCl9X2dldENoYXJ0UGxvdENsYXNzKCl7cmV0dXJuIEl9fX19XSk7"}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/en.58667.d15fc4b5c631bb5ece8d.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:12.977Z","timestamp":1785148032977,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/en.58667.d15fc4b5c631bb5ece8d.js HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:12 GMT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a632877-6bea\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Fri, 24 Jul 2026 08:55:19 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/24/2026 10:31:23\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: c1bd6ecff3a8123527dd28f80972f988\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":27626,"size_decoded":6249,"mime_type":"application/javascript; charset=utf-8","magic":"Unicode text, UTF-8 text, with very long lines (3069)","md5":"c37495f6ca72950f28ad5a6a79a0bab4","sha1":"b23429fd2dea7f2557a8a68545083949759c3ad4","sha256":"b4511e0c850bde295127e6af14148f016b9aea35ea705cdf3106a5a1edbd93b8","sha512":"ddee6e0c9cd60676d9195e2fb635982af76e72cf188acf0f42ba7ac648dbd5acc579a186a2c51fb5ac9d5e758c5289ab285ea4e80694b19f70a1715a5707b77c","ssdeep":"384:L+x0EMPsBRgXD2PTmdN2/5dQ1tHSJm/BtU:L7E2NJuJmI","tlshash":"2cc2c007cd96b099f3f6e24e0eb4d50c2cb453495270d702be868e289ae5ee69d2f315","first_seen":"2026-05-05T10:36:04.872376Z","last_seen":"2026-07-27T13:00:41.431568Z","times_seen":4081,"resource_available":true,"data":"KHNlbGYud2VicGFja0NodW5rdHJhZGluZ3ZpZXc9c2VsZi53ZWJwYWNrQ2h1bmt0cmFkaW5ndmlld3x8W10pLnB1c2goW1s1ODY2N10sezI1ODY2NyhvKXtvLmV4cG9ydHM9T2JqZWN0LmNyZWF0ZShudWxsKSxvLmV4cG9ydHNbIiNBQVBMLXN5bWJvbC1kZXNjcmlwdGlvbiJdPVsiQXBwbGUgSW5jIl0sby5leHBvcnRzWyIjQU1FWDpTQ0hPLXN5bWJvbC1kZXNjcmlwdGlvbiJdPVsiU2Nod2FiIFNob3J0LVRlcm0gVS5TLiBUcmVhc3VyeSBFVEYiXSxvLmV4cG9ydHNbIiNBTUVYOlNIWUctc3ltYm9sLWRlc2NyaXB0aW9uIl09WyJTaGFyZXMgMC01IFlFQVIgSGlnaCBZaWVsZCBDb3Jwb3JhdGUgQm9uZCBFVEYiXSxvLmV4cG9ydHNbIiNBU1g6WEFGLXN5bWJvbC1kZXNjcmlwdGlvbiJdPVsiUyZQL0FTWCBBbGwgQXVzdHJhbGlhbiA1MCBJbmRleCJdLG8uZXhwb3J0c1siI0FTWDpYQVQtc3ltYm9sLWRlc2NyaXB0aW9uIl09WyJTJlAvQVNYIEFsbCBBdXN0cmFsaWFuIDIwMCBJbmRleCJdLG8uZXhwb3J0c1siI0FTWDpYSk8tc3ltYm9sLWRlc2NyaXB0aW9uIl09WyJTJlAvQVNYIDIwMCBJbmRleCJdLG8uZXhwb3J0c1siI0FVRENBRC1zeW1ib2wtZGVzY3JpcHRpb24iXT1bIkF1c3RyYWxpYW4gRG9sbGFyL0NhbmFkaWFuIERvbGxhciJdLG8uZXhwb3J0c1siI0FVRENIRi1zeW1ib2wtZGVzY3JpcHRpb24iXT1bIkF1c3RyYWxpYW4gRG9sbGFyIC8gU3dpc3MgRnJhbmMiXSxvLmV4cG9ydHNbIiNBVURKUFktc3ltYm9sLWRlc2NyaXB0aW9uIl09WyJBdXN0cmFsaWFuIERvbGxhciAvIEphcGFuZXNlIFllbiJdLG8uZXhwb3J0c1siI0FVRE5aRC1zeW1ib2wtZGVzY3JpcHRpb24iXT1bIkF1c3RyYWxpYW4gRG9sbGFyIC8gTmV3IFplYWxhbmQgRG9sbGFyIl0sby5leHBvcnRzWyIjQVVEUlVCLXN5bWJvbC1kZXNjcmlwdGlvbiJdPVsiQXVzdHJhbGlhbiBEb2xsYXIgLyBSdXNzaWFuIFJ1YmxlIl0sby5leHBvcnRzWyIjQVVEVVNELXN5bWJvbC1kZXNjcmlwdGlvbiJdPVsiQXVzdHJhbGlhbiBEb2xsYXIgLyBVLlMuIERvbGxhciJdLG8uZXhwb3J0c1siI0JDQkE6SU1WLXN5bWJvbC1kZXNjcmlwdGlvbiJdPVsiUyZQIE1FUlZBTCBJbmRleCJdLG8uZXhwb3J0c1siI0JDSEVVUi1zeW1ib2wtZGVzY3JpcHRpb24iXT1bIkJpdGNvaW4gQ2FzaCAvIEV1cm8iXSxvLmV4cG9ydHNbIiNCQ0hVU0Qtc3ltYm9sLWRlc2NyaXB0aW9uIl09WyJCaXRjb2luIENhc2ggLyBVLlMuIERvbGxhciJdLG8uZXhwb3J0c1siI0JFTEVYOkJFTEVYMTUtc3ltYm9sLWRlc2NyaXB0aW9uIl09WyJCRUxFWCAxNSBJbmRleCJdLG8uZXhwb3J0c1siI0JJU1Q6WFUxMDAtc3ltYm9sLWRlc2NyaXB0aW9uIl09WyJCSVNUIDEwMCBJbmRleCJdLG8uZXhwb3J0c1siI0JJVE1FWDpYQlQtc3ltYm9sLWRlc2NyaXB0aW9uIl09WyJCaXRjb2luIC8gVS5TLiBEb2xsYXIgSW5kZXgiXSxvLmV4cG9ydHNbIiNCTUU6SUJDLXN5bWJvbC1kZXNjcmlwdGlvbiJdPVsiSUJFWCAzNSBJbmRleCJdLG8uZXhwb3J0c1siI0JNRkJPVkVTUEE6SUJPVi1zeW1ib2wtZGVzY3JpcHRpb24iXT1bIkJvdmVzcGEgSW5kZXgiXSxvLmV4cG9ydHNbIiNCTUZCT1ZFU1BBOklCUkEtc3ltYm9sLWRlc2NyaXB0aW9uIl09WyJJQnJhc2lsIEluZGV4Il0sby5leHBvcnRzWyIjQk1GQk9WRVNQQTpJQlhMLXN5bWJvbC1kZXNjcmlwdGlvbiJdPVsiQnJhemlsIDUwIEluZGV4Il0sby5leHBvcnRzWyIjQk1WOkNULXN5bWJvbC1kZXNjcmlwdGlvbiJdPVsiQ2hpbmEgU1gyMCBSVCJdLG8uZXhwb3J0c1siI0JNVjpGLXN5bWJvbC1kZXNjcmlwdGlvbiJdPVsiRm9yZCBNb3RvciBDb21wYW55Il0sby5leHBvcnRzWyIjQk1WOk1FLXN5bWJvbC1kZXNjcmlwdGlvbiJdPVsiUyZQL0JNViBJUEMgSW5kZXgiXSxvLmV4cG9ydHNbIiNCUkxKUFktc3ltYm9sLWRlc2NyaXB0aW9uIl09WyJCcmF6aWxpYW4gUmVhbCAvIEphcGFuZXNlIFllbiJdLG8uZXhwb3J0c1siI0JTRTpJVEktc3ltYm9sLWRlc2NyaXB0aW9uIl09WyJJVEkgTHRkIl0sby5leHBvcnRzWyIjQlNFOlNFTlNFWC1zeW1ib2wtZGVzY3JpcHRpb24iXT1bIlMmUCBCU0UgU2Vuc2V4IEluZGV4Il0sby5leHBvcnRzWyIjQlRDQlJMLXN5bWJvbC1kZXNjcmlwdGlvbiJdPVsiQml0Y29pbiAvIEJyYXppbGlhbiBSZWFsIl0sby5leHBvcnRzWyIjQlRDQ0FELXN5bWJvbC1kZXNjcmlwdGlvbiJdPVsiQml0Y29pbiAvIENhbmFkaWFuIERvbGxhciJdLG8uZXhwb3J0c1siI0JUQ0NOWS1zeW1ib2wtZGVzY3JpcHRpb24iXT1bIkJpdGNvaW4gLyBDaGluZXNlIFl1YW4iXSxvLmV4cG9ydHNbIiNCVENFVVItc3ltYm9sLWRlc2NyaXB0aW9uIl09WyJCaXRjb2luIC8gRXVybyJdLG8uZXhwb3J0c1siI0JUQ0dCUC1zeW1ib2wtZGVzY3JpcHRpb24iXT1bIkJpdGNvaW4gLyBCcml0aXNoIFBvdW5kIl0sby5leHBvcnRzWyIjQlRDSlBZLXN5bWJvbC1kZXNjcmlwdGlvbiJdPVsiQml0Y29pbiAvIEphcGFuZXNlIFllbiJdLG8uZXhwb3J0c1siI0JUQ0tSVy1zeW1ib2wtZGVzY3JpcHRpb24iXT1bIkJpdGNvaW4gLyBTb3V0aCBLb3JlYW4gV29uIl0sby5leHBvcnRzWyIjQlRDUExOLXN5bWJvbC1kZXNjcmlwdGlvbiJdPVsiQml0Y29pbiAvIFBvbGlzaCBabG90eSJdLG8uZXhwb3J0c1siI0JUQ1JVQi1zeW1ib2wtZGVzY3JpcHRpb24iXT1bIkJpdGNvaW4gLyBSdXNzaWFuIFJ1YmxlIl0sby5leHBvcnRzWyIjQlRDVEhCLXN5bWJvbC1kZXNjcmlwdGlvbiJdPVsiQml0Y29pbiAvIFRoYWkgQmFodCJdLG8uZXhwb3J0c1siI0JUQ1VTRC1zeW1ib2wtZGVzY3JpcHRpb24iXT1bIkJpdGNvaW4gLyBVLlMuIERvbGxhciJdLG8uZXhwb3J0c1siI0JUR1VTRC1zeW1ib2wtZGVzY3JpcHRpb24iXT1bIkJpdGNvaW4gR29sZCAvIFUuUy4gRG9sbGFyIl0sby5leHBvcnRzWyIjQlZMOlNQQkxQR1BULXN5bWJvbC1kZXNjcmlwdGlvbiJdPVsiUyZQIC8gQlZMIFBlcnUgR2VuZXJhbCBJbmRleCAoUEVOKSJdLG8uZXhwb3J0c1siI0JWU1Atc3ltYm9sLWRlc2NyaXB0aW9uIl09WyJCcmF6aWwgQm92ZXNwYSBJbmRleCJdLApvLmV4cG9ydHNbIiNDQURKUFktc3ltYm9sLWRlc2NyaXB0aW9uIl09WyJDYW5hZGlhbiBEb2xsYXIgLyBKYXBhbmVzZSBZZW4iXSxvLmV4cG9ydHNbIiNDQURVU0Qtc3ltYm9sLWRlc2NyaXB0aW9uIl09WyJDYW5hZGlhbiBEb2xsYXIgLyBVLlMuIERvbGxhciJdLG8uZXhwb3J0c1siI0NCT0U6T0VYLXN5bWJvbC1kZXNjcmlwdGlvbiJdPVsiUyZQIDEwMCBJbmRleCJdLG8uZXhwb3J0c1siI0NCT0U6VklYLXN5bWJvbC1kZXNjcmlwdGlvbiJdPVsiVm9sYXRpbGl0eSBTJlAgNTAwIEluZGV4Il0sby5leHBvcnRzWyIjQ0JPVDpaQjEhLXN5bWJvbC1kZXNjcmlwdGlvbiJdPVsiVC1Cb25kIEZ1dHVyZXMiXSxvLmV4cG9ydHNbIiNDQk9UOlpDMSEtc3ltYm9sLWRlc2NyaXB0aW9uIl09WyJDb3JuIEZ1dHVyZXMiXSxvLmV4cG9ydHNbIiNDQk9UOlpNMSEtc3ltYm9sLWRlc2NyaXB0aW9uIl09WyJTb3liZWFuIE1lYWwgRnV0dXJlcyJdLG8uZXhwb3J0c1siI0NCT1Q6Wk4xIS1zeW1ib2wtZGVzY3JpcHRpb24iXT1bIjEwIFllYXIgVC1Ob3RlIEZ1dHVyZXMiXSxvLmV4cG9ydHNbIiNDQk9UOlpPMSEtc3ltYm9sLWRlc2NyaXB0aW9uIl09WyJPYXQgRnV0dXJlcyJdLG8uZXhwb3J0c1siI0NCT1Q6WlExIS1zeW1ib2wtZGVzY3JpcHRpb24iXT1bIjMwIERheSBGZWRlcmFsIEZ1bmRzIEludGVyZXN0IFJhdGUgRnV0dXJlcyJdLG8uZXhwb3J0c1siI0NCT1Q6WlIxIS1zeW1ib2wtZGVzY3JpcHRpb24iXT1bIlJpY2UgRnV0dXJlcyJdLG8uZXhwb3J0c1siI0NCT1Q6WlMxIS1zeW1ib2wtZGVzY3JpcHRpb24iXT1bIlNveWJlYW4gRnV0dXJlcyJdLG8uZXhwb3J0c1siI0NCT1Q6WlcxIS1zeW1ib2wtZGVzY3JpcHRpb24iXT1bIldoZWF0IEZ1dHVyZXMiXSxvLmV4cG9ydHNbIiNDQk9UX01JTkk6WEsxIS1zeW1ib2wtZGVzY3JpcHRpb24iXT1bIlNveWJlYW4gTWluaSBGdXR1cmVzIl0sby5leHBvcnRzWyIjQ0JPVF9NSU5JOlhXMSEtc3ltYm9sLWRlc2NyaXB0aW9uIl09WyJXaGVhdCBNaW5pIEZ1dHVyZXMiXSxvLmV4cG9ydHNbIiNDQk9UX01JTkk6WU0xIS1zeW1ib2wtZGVzY3JpcHRpb24iXT1bIkUtbWluaSBEb3cgSm9uZXMgKCQ1KSBGdXR1cmVzIl0sby5leHBvcnRzWyIjQ0hGSlBZLXN5bWJvbC1kZXNjcmlwdGlvbiJdPVsiU3dpc3MgRnJhbmMgLyBKYXBhbmVzZSBZZW4iXSxvLmV4cG9ydHNbIiNDSEZVU0Qtc3ltYm9sLWRlc2NyaXB0aW9uIl09WyJTd2lzcyBGcmFuYyAvIFUuUy4gRG9sbGFyIl0sby5leHBvcnRzWyIjQ01FOkJUQzEhLXN5bWJvbC1kZXNjcmlwdGlvbiJdPVsiQml0Y29pbiBDTUUgRnV0dXJlcyJdLG8uZXhwb3J0c1siI0NNRTpDQjEhLXN5bWJvbC1kZXNjcmlwdGlvbiJdPVsiQnV0dGVyIEZ1dHVyZXMtQ2FzaCAoQ29udGludW91czogQ3VycmVudCBjb250cmFjdCBpbiBmcm9udCkiXSxvLmV4cG9ydHNbIiNDTUU6R0YxIS1zeW1ib2wtZGVzY3JpcHRpb24iXT1bIkZlZWRlciBDYXR0bGUgRnV0dXJlcyJdLG8uZXhwb3J0c1siI0NNRTpIRTEhLXN5bWJvbC1kZXNjcmlwdGlvbiJdPVsiTGVhbiBIb2dzIEZ1dHVyZXMiXSxvLmV4cG9ydHNbIiNDTUU6TEUxIS1zeW1ib2wtZGVzY3JpcHRpb24iXT1bIkxpdmUgQ2F0dGxlIEZ1dHVyZXMiXSxvLmV4cG9ydHNbIiNDTUVfTUlOSTpFNzEhLXN5bWJvbC1kZXNjcmlwdGlvbiJdPVsiRXVybyBFLW1pbmkgRnV0dXJlcyJdLG8uZXhwb3J0c1siI0NNRV9NSU5JOkVTMSEtc3ltYm9sLWRlc2NyaXB0aW9uIl09WyJTJlAgNTAwIEUtbWluaSBGdXR1cmVzIl0sby5leHBvcnRzWyIjQ01FX01JTkk6SjcxIS1zeW1ib2wtZGVzY3JpcHRpb24iXT1bIkphcGFuZXNlIFllbiBFLW1pbmkgRnV0dXJlcyJdLG8uZXhwb3J0c1siI0NNRV9NSU5JOk5RMSEtc3ltYm9sLWRlc2NyaXB0aW9uIl09WyJOQVNEQVEgMTAwIEUtbWluaSBGdXR1cmVzIl0sby5leHBvcnRzWyIjQ01FX01JTkk6UlRZMSEtc3ltYm9sLWRlc2NyaXB0aW9uIl09WyJFLU1pbmkgUnVzc2VsbCAyMDAwIEluZGV4IEZ1dHVyZXMiXSxvLmV4cG9ydHNbIiNDT01FWDpBRVAxIS1zeW1ib2wtZGVzY3JpcHRpb24iXT1bIkFsdW1pbml1bSBFdXJvcGVhbiBQcmVtaXVtIEZ1dHVyZXMiXSxvLmV4cG9ydHNbIiNDT01FWDpBVVAxIS1zeW1ib2wtZGVzY3JpcHRpb24iXT1bIkFsdW1pbnVtIE1XIFUuUy4gVHJhbnNhY3Rpb24gUHJlbWl1bSBQbGF0dHMgKDI1TVQpIEZ1dHVyZXMiXSxvLmV4cG9ydHNbIiNDT01FWDpHQzEhLXN5bWJvbC1kZXNjcmlwdGlvbiJdPVsiR29sZCBGdXR1cmVzIl0sby5leHBvcnRzWyIjQ09NRVg6SEcxIS1zeW1ib2wtZGVzY3JpcHRpb24iXT1bIkNvcHBlciBGdXR1cmVzIl0sby5leHBvcnRzWyIjQ09NRVg6U0kxIS1zeW1ib2wtZGVzY3JpcHRpb24iXT1bIlNpbHZlciBGdXR1cmVzIl0sby5leHBvcnRzWyIjQ09NRVhfTUlOSTpRQzEhLXN5bWJvbC1kZXNjcmlwdGlvbiJdPVsiRS1taW5pIENvcHBlciBGdXR1cmVzIl0sby5leHBvcnRzWyIjQ09NRVhfTUlOSTpRSTEhLXN5bWJvbC1kZXNjcmlwdGlvbiJdPVsiU2lsdmVyIChNaW5pKSBGdXR1cmVzIl0sby5leHBvcnRzWyIjQ09NRVhfTUlOSTpRTzEhLXN5bWJvbC1kZXNjcmlwdGlvbiJdPVsiR29sZCAoTWluaSkgRnV0dXJlcyJdLG8uZXhwb3J0c1siI0NPUFBFUi1zeW1ib2wtZGVzY3JpcHRpb24iXT1bIkNGRHMgb24gQ29wcGVyIl0sby5leHBvcnRzWyIjQ09STlVTRC1zeW1ib2wtZGVzY3JpcHRpb24iXT1bIkNGRHMgb24gQ29ybiJdLG8uZXhwb3J0c1siI0NPVFVTRC1zeW1ib2wtZGVzY3JpcHRpb24iXT1bIkNGRHMgb24gQ290dG9uIl0sby5leHBvcnRzWyIjQ1JZUFRPQ0FQOlRPVEFMLXN5bWJvbC1kZXNjcmlwdGlvbiJdPVsiQ3J5cHRvIFRvdGFsIE1hcmtldCBDYXAsICQiXSxvLmV4cG9ydHNbIiNERk06REZNR0ktc3ltYm9sLWRlc2NyaXB0aW9uIl09WyJERk0gSW5kZXgiXSxvLmV4cG9ydHNbIiNESjpESkEtc3ltYm9sLWRlc2NyaXB0aW9uIl09WyJEb3cgSm9uZXMgQ29tcG9zaXRlIEF2ZXJhZ2UgSW5kZXgiXSwKby5leHBvcnRzWyIjREo6REpDSUFHQy1zeW1ib2wtZGVzY3JpcHRpb24iXT1bIkRvdyBKb25lcyBDb21tb2RpdHkgSW5kZXggQWdyaWN1bHR1cmUgQ2FwcGVkIENvbXBvbmVudCJdLG8uZXhwb3J0c1siI0RKOkRKQ0lDQy1zeW1ib2wtZGVzY3JpcHRpb24iXT1bIkRvdyBKb25lcyBDb21tb2RpdHkgSW5kZXggQ29jb2EiXSxvLmV4cG9ydHNbIiNESjpESkNJRU4tc3ltYm9sLWRlc2NyaXB0aW9uIl09WyJEb3cgSm9uZXMgQ29tbW9kaXR5IEluZGV4IEVuZXJneSJdLG8uZXhwb3J0c1siI0RKOkRKQ0lHQy1zeW1ib2wtZGVzY3JpcHRpb24iXT1bIkRvdyBKb25lcyBDb21tb2RpdHkgSW5kZXggR29sZCJdLG8uZXhwb3J0c1siI0RKOkRKQ0lHUi1zeW1ib2wtZGVzY3JpcHRpb24iXT1bIkRvdyBKb25lcyBDb21tb2RpdHkgSW5kZXggR3JhaW5zIl0sby5leHBvcnRzWyIjREo6REpDSUlLLXN5bWJvbC1kZXNjcmlwdGlvbiJdPVsiRG93IEpvbmVzIENvbW1vZGl0eSBJbmRleCBOaWNrZWwiXSxvLmV4cG9ydHNbIiNESjpESkNJS0Mtc3ltYm9sLWRlc2NyaXB0aW9uIl09WyJEb3cgSm9uZXMgQ29tbW9kaXR5IEluZGV4IENvZmZlZSJdLG8uZXhwb3J0c1siI0RKOkRKQ0lTQi1zeW1ib2wtZGVzY3JpcHRpb24iXT1bIkRvdyBKb25lcyBDb21tb2RpdHkgSW5kZXggU3VnYXIiXSxvLmV4cG9ydHNbIiNESjpESkNJU0ktc3ltYm9sLWRlc2NyaXB0aW9uIl09WyJEb3cgSm9uZXMgQ29tbW9kaXR5IEluZGV4IFNpbHZlciJdLG8uZXhwb3J0c1siI0RKOkRKSS1zeW1ib2wtZGVzY3JpcHRpb24iXT1bIkRvdyBKb25lcyBJbmR1c3RyaWFsIEF2ZXJhZ2UgSW5kZXgiXSxvLmV4cG9ydHNbIiNESjpESlQtc3ltYm9sLWRlc2NyaXB0aW9uIl09WyJEb3cgSm9uZXMgVHJhbnNwb3J0YXRpb24gQXZlcmFnZSBJbmRleCJdLG8uZXhwb3J0c1siI0RKOkRKVS1zeW1ib2wtZGVzY3JpcHRpb24iXT1bIkRvdyBKb25lcyBVdGlsaXR5IEF2ZXJhZ2UgSW5kZXgiXSxvLmV4cG9ydHNbIiNESjpESlVTQ0wtc3ltYm9sLWRlc2NyaXB0aW9uIl09WyJEb3cgSm9uZXMgVS5TLiBDb2FsIEluZGV4Il0sby5leHBvcnRzWyIjRUdYOkVHWDMwLXN5bWJvbC1kZXNjcmlwdGlvbiJdPVsiRUdYIDMwIEluZGV4Il0sby5leHBvcnRzWyIjRVRDQlRDLXN5bWJvbC1kZXNjcmlwdGlvbiJdPVsiRXRoZXJldW0gQ2xhc3NpYyAvIEJpdGNvaW4iXSxvLmV4cG9ydHNbIiNFVENFVVItc3ltYm9sLWRlc2NyaXB0aW9uIl09WyJFdGhlcmV1bSBDbGFzc2ljIC8gRXVybyJdLG8uZXhwb3J0c1siI0VUQ1VTRC1zeW1ib2wtZGVzY3JpcHRpb24iXT1bIkV0aGVyZXVtIENsYXNzaWMgLyBVLlMuIERvbGxhciJdLG8uZXhwb3J0c1siI0VUSEJUQy1zeW1ib2wtZGVzY3JpcHRpb24iXT1bIkV0aGVyZXVtIC8gQml0Y29pbiJdLG8uZXhwb3J0c1siI0VUSEVVUi1zeW1ib2wtZGVzY3JpcHRpb24iXT1bIkV0aGVyZXVtIC8gRXVybyJdLG8uZXhwb3J0c1siI0VUSEdCUC1zeW1ib2wtZGVzY3JpcHRpb24iXT1bIkV0aGVyZXVtIC8gQnJpdGlzaCBQb3VuZCJdLG8uZXhwb3J0c1siI0VUSEpQWS1zeW1ib2wtZGVzY3JpcHRpb24iXT1bIkV0aGVyZXVtIC8gSmFwYW5lc2UgWWVuIl0sby5leHBvcnRzWyIjRVRIS1JXLXN5bWJvbC1kZXNjcmlwdGlvbiJdPVsiRXRoZXJldW0gLyBTb3V0aCBLb3JlYW4gV29uIl0sby5leHBvcnRzWyIjRVRIVEhCLXN5bWJvbC1kZXNjcmlwdGlvbiJdPVsiRXRoZXJldW0gLyBUaGFpIEJhaHQiXSxvLmV4cG9ydHNbIiNFVEhVU0Qtc3ltYm9sLWRlc2NyaXB0aW9uIl09WyJFdGhlcmV1bSAvIFUuUy4gRG9sbGFyIl0sby5leHBvcnRzWyIjRVVCVU5ELXN5bWJvbC1kZXNjcmlwdGlvbiJdPVsiRXVybyBCdW5kIl0sby5leHBvcnRzWyIjRVVSQVVELXN5bWJvbC1kZXNjcmlwdGlvbiJdPVsiRXVybyAvIEF1c3RyYWxpYW4gRG9sbGFyIl0sby5leHBvcnRzWyIjRVVSQlJMLXN5bWJvbC1kZXNjcmlwdGlvbiJdPVsiRXVybyAvIEJyYXppbGlhbiBSZWFsIl0sby5leHBvcnRzWyIjRVVSQ0FELXN5bWJvbC1kZXNjcmlwdGlvbiJdPVsiRXVybyAvIENhbmFkaWFuIERvbGxhciJdLG8uZXhwb3J0c1siI0VVUkNIRi1zeW1ib2wtZGVzY3JpcHRpb24iXT1bIkV1cm8gLyBTd2lzcyBGcmFuYyJdLG8uZXhwb3J0c1siI0VVUkdCUC1zeW1ib2wtZGVzY3JpcHRpb24iXT1bIkV1cm8gLyBCcml0aXNoIFBvdW5kIl0sby5leHBvcnRzWyIjRVVSSlBZLXN5bWJvbC1kZXNjcmlwdGlvbiJdPVsiRXVybyAvIEphcGFuZXNlIFllbiJdLG8uZXhwb3J0c1siI0VVUk5PSy1zeW1ib2wtZGVzY3JpcHRpb24iXT1bIkV1cm8gLyBOb3J3ZWdpYW4gS3JvbmUiXSxvLmV4cG9ydHNbIiNFVVJOWkQtc3ltYm9sLWRlc2NyaXB0aW9uIl09WyJFdXJvIC8gTmV3IFplYWxhbmQgRG9sbGFyIl0sby5leHBvcnRzWyIjRVVST05FWFQ6QUVYLXN5bWJvbC1kZXNjcmlwdGlvbiJdPVsiQUVYIEluZGV4Il0sby5leHBvcnRzWyIjRVVST05FWFQ6QkVMMjAtc3ltYm9sLWRlc2NyaXB0aW9uIl09WyJCRUwgMjAgSW5kZXgiXSxvLmV4cG9ydHNbIiNFVVJPTkVYVDpQWDEtc3ltYm9sLWRlc2NyaXB0aW9uIl09WyJDQUMgNDAgSW5kZXgiXSxvLmV4cG9ydHNbIiNFVVJSVUItc3ltYm9sLWRlc2NyaXB0aW9uIl09WyJFdXJvIC8gUnVzc2lhbiBSdWJsZSJdLG8uZXhwb3J0c1siI0VVUlJVQl9UT00tc3ltYm9sLWRlc2NyaXB0aW9uIl09WyJFdXJvIC8gUnVzc2lhbiBSdWJsZSBUT00iXSxvLmV4cG9ydHNbIiNFVVJTRUstc3ltYm9sLWRlc2NyaXB0aW9uIl09WyJFdXJvIC8gU3dlZGlzaCBLcm9uYSJdLG8uZXhwb3J0c1siI0VVUlRSWS1zeW1ib2wtZGVzY3JpcHRpb24iXT1bIkV1cm8gLyBUdXJraXNoIExpcmEiXSxvLmV4cG9ydHNbIiNFVVJVU0Qtc3ltYm9sLWRlc2NyaXB0aW9uIl09WyJFdXJvIC8gVS5TLiBEb2xsYXIiXSxvLmV4cG9ydHNbIiNFVVNUWDUwLXN5bWJvbC1kZXNjcmlwdGlvbiJdPVsiRXVybyBTdG94eCA1MCBJbmRleCJdLG8uZXhwb3J0c1siI0ZPUkVYQ09NOlVTMjAwMC1zeW1ib2wtZGVzY3JpcHRpb24iXT1bIlVTIFNtYWxsIENhcCAyMDAwIl0sCm8uZXhwb3J0c1siI0ZSQTQwLXN5bWJvbC1kZXNjcmlwdGlvbiJdPVsiQ0FDIDQwIEluZGV4Il0sby5leHBvcnRzWyIjRlJFRDpHRFAtc3ltYm9sLWRlc2NyaXB0aW9uIl09WyJHcm9zcyBEb21lc3RpYyBQcm9kdWN0LCAxIERlY2ltYWwiXSxvLmV4cG9ydHNbIiNGUkVEOlBPUC1zeW1ib2wtZGVzY3JpcHRpb24iXT1bIlRvdGFsIFBvcHVsYXRpb246IEFsbCBBZ2VzIEluY2x1ZGluZyBBcm1lZCBGb3JjZXMgT3ZlcnNlYXMiXSxvLmV4cG9ydHNbIiNGUkVEOlVOUkFURS1zeW1ib2wtZGVzY3JpcHRpb24iXT1bIkNpdmlsaWFuIFVuZW1wbG95bWVudCBSYXRlIl0sby5leHBvcnRzWyIjRlRTRU1ZWDpGQk1LTENJLXN5bWJvbC1kZXNjcmlwdGlvbiJdPVsiRlRTRSBCdXJzYSBNYWxheXNpYSBLTENJIEluZGV4Il0sby5leHBvcnRzWyIjRldCOktUMS1zeW1ib2wtZGVzY3JpcHRpb24iXT1bIktleSBUcm9uaWMgQ29y0YAuIl0sby5leHBvcnRzWyIjRlg6QVVTMjAwLXN5bWJvbC1kZXNjcmlwdGlvbiJdPVsiUyZQL0FTWCBJbmRleCJdLG8uZXhwb3J0c1siI0ZYOlVTMzAtc3ltYm9sLWRlc2NyaXB0aW9uIl09WyJEb3cgSm9uZXMgSW5kdXN0cmlhbCBBdmVyYWdlIEluZGV4Il0sby5leHBvcnRzWyIjR0JQQVVELXN5bWJvbC1kZXNjcmlwdGlvbiJdPVsiQnJpdGlzaCBQb3VuZCAvIEF1c3RyYWxpYW4gRG9sbGFyIl0sby5leHBvcnRzWyIjR0JQQ0FELXN5bWJvbC1kZXNjcmlwdGlvbiJdPVsiQnJpdGlzaCBQb3VuZCAvIENhbmFkaWFuIERvbGxhciJdLG8uZXhwb3J0c1siI0dCUENIRi1zeW1ib2wtZGVzY3JpcHRpb24iXT1bIkJyaXRpc2ggUG91bmQgLyBTd2lzcyBGcmFuYyJdLG8uZXhwb3J0c1siI0dCUEVVUi1zeW1ib2wtZGVzY3JpcHRpb24iXT1bIkJyaXRpc2ggUG91bmQgLyBFdXJvIl0sby5leHBvcnRzWyIjR0JQSlBZLXN5bWJvbC1kZXNjcmlwdGlvbiJdPVsiQnJpdGlzaCBQb3VuZCAvIEphcGFuZXNlIFllbiJdLG8uZXhwb3J0c1siI0dCUE5aRC1zeW1ib2wtZGVzY3JpcHRpb24iXT1bIkJyaXRpc2ggUG91bmQgLyBOZXcgWmVhbGFuZCBEb2xsYXIiXSxvLmV4cG9ydHNbIiNHQlBQTE4tc3ltYm9sLWRlc2NyaXB0aW9uIl09WyJCcml0aXNoIFBvdW5kIC8gUG9saXNoIFpsb3R5Il0sby5leHBvcnRzWyIjR0JQUlVCLXN5bWJvbC1kZXNjcmlwdGlvbiJdPVsiQnJpdGlzaCBQb3VuZCAvIFJ1c3NpYW4gUnVibGUiXSxvLmV4cG9ydHNbIiNHQlBVU0Qtc3ltYm9sLWRlc2NyaXB0aW9uIl09WyJCcml0aXNoIFBvdW5kIC8gVS5TLiBEb2xsYXIiXSxvLmV4cG9ydHNbIiNHRVIzMC1zeW1ib2wtZGVzY3JpcHRpb24iXT1bIkRBWCBJbmRleCJdLG8uZXhwb3J0c1siI0dPT0ctc3ltYm9sLWRlc2NyaXB0aW9uIl09WyJBbHBoYWJldCBJbmMgKEdvb2dsZSkgQ2xhc3MgQyJdLG8uZXhwb3J0c1siI0dPT0dMLXN5bWJvbC1kZXNjcmlwdGlvbiJdPVsiQWxwaGFiZXQgSW5jIChHb29nbGUpIENsYXNzIEEiXSxvLmV4cG9ydHNbIiNHUFc6QUNHLXN5bWJvbC1kZXNjcmlwdGlvbiJdPVsiQWNhdXRvZ2F6Il0sby5leHBvcnRzWyIjR1BXOldJRzIwLXN5bWJvbC1kZXNjcmlwdGlvbiJdPVsiV0lHMjAgSW5kZXgiXSxvLmV4cG9ydHNbIiNIU0k6SFNJLXN5bWJvbC1kZXNjcmlwdGlvbiJdPVsiSGFuZyBTZW5nIEluZGV4Il0sby5leHBvcnRzWyIjSUNFVVM6RFgxIS1zeW1ib2wtZGVzY3JpcHRpb24iXT1bIlUuUy4gRG9sbGFyIEluZGV4IEZ1dHVyZXMiXSxvLmV4cG9ydHNbIiNJRFg6Q09NUE9TSVRFLXN5bWJvbC1kZXNjcmlwdGlvbiJdPVsiSURYIENvbXBvc2l0ZSBJbmRleCJdLG8uZXhwb3J0c1siI0lOREVYOkhTQ0Utc3ltYm9sLWRlc2NyaXB0aW9uIl09WyJIYW5nIFNlbmcgQ2hpbmEgRW50ZXJwcmlzZXMgSW5kZXgiXSxvLmV4cG9ydHNbIiNJTkRFWDpKS1NFLXN5bWJvbC1kZXNjcmlwdGlvbiJdPVsiSmFrYXJ0YSBDb21wb3NpdGUgSW5kZXgiXSxvLmV4cG9ydHNbIiNJTkRFWDpLTFNFLXN5bWJvbC1kZXNjcmlwdGlvbiJdPVsiQnVyc2EgTWFsYXlzaWEgS0xDSSBJbmRleCJdLG8uZXhwb3J0c1siI0lOREVYOk1JQi1zeW1ib2wtZGVzY3JpcHRpb24iXT1bIk1JQiBJbmRleCJdLG8uZXhwb3J0c1siI0lOREVYOk1PWTAtc3ltYm9sLWRlc2NyaXB0aW9uIl09WyJFdXJvIFN0b3h4IDUwIEluZGV4Il0sby5leHBvcnRzWyIjSU5ERVg6U1RJLXN5bWJvbC1kZXNjcmlwdGlvbiJdPVsiU1RJIEluZGV4Il0sby5leHBvcnRzWyIjSU5ERVg6VFdJSS1zeW1ib2wtZGVzY3JpcHRpb24iXT1bIlRhaXdhbiBXZWlnaHRlZCBJbmRleCJdLG8uZXhwb3J0c1siI0lOREVYOlhMWTAtc3ltYm9sLWRlc2NyaXB0aW9uIl09WyJTaGFuZ2hhaSBDb21wb3NpdGUgSW5kZXgiXSxvLmV4cG9ydHNbIiNJT1RVU0Qtc3ltYm9sLWRlc2NyaXB0aW9uIl09WyJJT1RBIC8gVS5TLiBEb2xsYXIiXSxvLmV4cG9ydHNbIiNKUE4yMjUtc3ltYm9sLWRlc2NyaXB0aW9uIl09WyJKYXBhbiAyMjUgSW5kZXgiXSxvLmV4cG9ydHNbIiNKUFlLUlctc3ltYm9sLWRlc2NyaXB0aW9uIl09WyJKYXBhbmVzZSBZZW4gLyBTb3V0aCBLb3JlYW4gV29uIl0sby5leHBvcnRzWyIjSlBZUlVCLXN5bWJvbC1kZXNjcmlwdGlvbiJdPVsiSmFwYW5lc2UgWWVuIC8gUnVzc2lhbiBSdWJsZSJdLG8uZXhwb3J0c1siI0pQWVVTRC1zeW1ib2wtZGVzY3JpcHRpb24iXT1bIkphcGFuZXNlIFllbiAvIFUuUy4gRG9sbGFyIl0sby5leHBvcnRzWyIjTEtPSC1zeW1ib2wtZGVzY3JpcHRpb24iXT1bIkxVS09JTCJdLG8uZXhwb3J0c1siI0xTRTpTQ0hPLXN5bWJvbC1kZXNjcmlwdGlvbiJdPVsiU2Nob2xpdW0gR3JvdXAgUGxjIE9yZCAxUCJdLG8uZXhwb3J0c1siI0xUQ0JSTC1zeW1ib2wtZGVzY3JpcHRpb24iXT1bIkxpdGVjb2luIC8gQnJhemlsaWFuIFJlYWwiXSxvLmV4cG9ydHNbIiNMVENCVEMtc3ltYm9sLWRlc2NyaXB0aW9uIl09WyJMaXRlY29pbiAvIEJpdGNvaW4iXSxvLmV4cG9ydHNbIiNMVENVU0Qtc3ltYm9sLWRlc2NyaXB0aW9uIl09WyJMaXRlY29pbiAvIFUuUy4gRG9sbGFyIl0sby5leHBvcnRzWyIjTFVOQVVTRC1zeW1ib2wtZGVzY3JpcHRpb24iXT1bIkx1bmEgLyBVLlMuIERvbGxhciJdLApvLmV4cG9ydHNbIiNNT0VYOkJSMSEtc3ltYm9sLWRlc2NyaXB0aW9uIl09WyJCcmVudCBPaWwgRnV0dXJlcyJdLG8uZXhwb3J0c1siI01PRVg6R0FaUC1zeW1ib2wtZGVzY3JpcHRpb24iXT1bIkdBWlBST00iXSxvLmV4cG9ydHNbIiNNT0VYOklNT0VYLXN5bWJvbC1kZXNjcmlwdGlvbiJdPVsiTU9FWCBSdXNzaWEgSW5kZXgiXSxvLmV4cG9ydHNbIiNNT0VYOk1HTlQtc3ltYm9sLWRlc2NyaXB0aW9uIl09WyJNQUdOSVQiXSxvLmV4cG9ydHNbIiNNT0VYOk1JQ0VYSU5ERVhDRi1zeW1ib2wtZGVzY3JpcHRpb24iXT1bIk1PRVggUnVzc2lhIEluZGV4Il0sby5leHBvcnRzWyIjTU9FWDpNWDEhLXN5bWJvbC1kZXNjcmlwdGlvbiJdPVsiTUlDRVggSW5kZXggRnV0dXJlcyJdLG8uZXhwb3J0c1siI01PRVg6TVgyIS1zeW1ib2wtZGVzY3JpcHRpb24iXT1bIk1JQ0VYIEluZGV4IEZ1dHVyZXMiXSxvLmV4cG9ydHNbIiNNT0VYOlJJMSEtc3ltYm9sLWRlc2NyaXB0aW9uIl09WyJSVFMgSW5kZXggRnV0dXJlcyJdLG8uZXhwb3J0c1siI01PRVg6UlRTSS1zeW1ib2wtZGVzY3JpcHRpb24iXT1bIlJUUyBJbmRleCJdLG8uZXhwb3J0c1siI01PRVg6UlVBTC1zeW1ib2wtZGVzY3JpcHRpb24iXT1bIlVuaXRlZCBDb21wYW55IFJVU0FMIFBMQyJdLG8uZXhwb3J0c1siI01PRVg6U0JFUi1zeW1ib2wtZGVzY3JpcHRpb24iXT1bIlNCRVJCQU5LIl0sby5leHBvcnRzWyIjTU9FWDpWVEJSLXN5bWJvbC1kZXNjcmlwdGlvbiJdPVsiVlRCIl0sby5leHBvcnRzWyIjTVNGVC1zeW1ib2wtZGVzY3JpcHRpb24iXT1bIk1pY3Jvc29mdCBDb3JwLiJdLG8uZXhwb3J0c1siI05BUzEwMC1zeW1ib2wtZGVzY3JpcHRpb24iXT1bIlVTIDEwMCBDYXNoIENGRCJdLG8uZXhwb3J0c1siI05BU0RBUTpBTUQtc3ltYm9sLWRlc2NyaXB0aW9uIl09WyJBZHZhbmNlZCBNaWNybyBEZXZpY2VzIEluYyJdLG8uZXhwb3J0c1siI05BU0RBUTpHT09HLXN5bWJvbC1kZXNjcmlwdGlvbiJdPVsiQWxwaGFiZXQgSW5jIChHb29nbGUpIENsYXNzIEMiXSxvLmV4cG9ydHNbIiNOQVNEQVE6R09PR0wtc3ltYm9sLWRlc2NyaXB0aW9uIl09WyJBbHBoYWJldCBJbmMgKEdvb2dsZSkgQ2xhc3MgQSJdLG8uZXhwb3J0c1siI05BU0RBUTpIR1gtc3ltYm9sLWRlc2NyaXB0aW9uIl09WyJQSExYIEhvdXNpbmcgU2VjdG9yIEluZGV4Il0sby5leHBvcnRzWyIjTkFTREFROklFRi1zeW1ib2wtZGVzY3JpcHRpb24iXT1bIklzaGFyZXMgNy0xMCBZZWFyIFRyZWFzdXJ5IEJvbmQgRVRGIl0sby5leHBvcnRzWyIjTkFTREFROklFSS1zeW1ib2wtZGVzY3JpcHRpb24iXT1bIklzaGFyZXMgMy03IFllYXIgVHJlYXN1cnkgQm9uZCBFVEYiXSxvLmV4cG9ydHNbIiNOQVNEQVE6SVRJLXN5bWJvbC1kZXNjcmlwdGlvbiJdPVsiSXRlcmlzIEluYyJdLG8uZXhwb3J0c1siI05BU0RBUTpJWElDLXN5bWJvbC1kZXNjcmlwdGlvbiJdPVsiTmFzZGFxIENvbXBvc2l0ZSBJbmRleCJdLG8uZXhwb3J0c1siI05BU0RBUTpMQ0lELXN5bWJvbC1kZXNjcmlwdGlvbiJdPVsiTHVjaWQgR3JvdXAsIEluYy4iXSxvLmV4cG9ydHNbIiNOQVNEQVE6TEUtc3ltYm9sLWRlc2NyaXB0aW9uIl09WyJMYW5kcycgRW5kIEluYyJdLG8uZXhwb3J0c1siI05BU0RBUTpORFgtc3ltYm9sLWRlc2NyaXB0aW9uIl09WyJOYXNkYXEgMTAwIEluZGV4Il0sby5leHBvcnRzWyIjTkFTREFROk9TWC1zeW1ib2wtZGVzY3JpcHRpb24iXT1bIlBITFggT2lsIFNlcnZpY2UgU2VjdG9yIEluZGV4Il0sby5leHBvcnRzWyIjTkFTREFROlNIWS1zeW1ib2wtZGVzY3JpcHRpb24iXT1bIklzaGFyZXMgMS0zIFllYXIgVHJlYXN1cnkgQm9uZCBFVEYiXSxvLmV4cG9ydHNbIiNOQVNEQVE6U09YLXN5bWJvbC1kZXNjcmlwdGlvbiJdPVsiUGhpbGFkZWxwaGlhIFNlbWljb25kdWN0b3IgSW5kZXgiXSxvLmV4cG9ydHNbIiNOQVNEQVE6VExULXN5bWJvbC1kZXNjcmlwdGlvbiJdPVsiSXNoYXJlcyAyMCsgWWVhciBUcmVhc3VyeSBCb25kIEVURiJdLG8uZXhwb3J0c1siI05BU0RBUTpVVFktc3ltYm9sLWRlc2NyaXB0aW9uIl09WyJQSExYIFV0aWxpdHkgU2VjdG9yIEluZGV4Il0sby5leHBvcnRzWyIjTkFTREFROlhBVS1zeW1ib2wtZGVzY3JpcHRpb24iXT1bIlBITFggR29sZCBhbmQgU2lsdmVyIFNlY3RvciBJbmRleCJdLG8uZXhwb3J0c1siI05BU0RBUTpaUy1zeW1ib2wtZGVzY3JpcHRpb24iXT1bIlpzY2FsZXIgSW5jIl0sby5leHBvcnRzWyIjTkVPVVNELXN5bWJvbC1kZXNjcmlwdGlvbiJdPVsiTkVPIC8gVS5TLiBEb2xsYXIiXSxvLmV4cG9ydHNbIiNOR0FTLXN5bWJvbC1kZXNjcmlwdGlvbiJdPVsiTmF0dXJhbCBHYXMgKEhlbnJ5IEh1YikiXSxvLmV4cG9ydHNbIiNOS1ktc3ltYm9sLWRlc2NyaXB0aW9uIl09WyJKYXBhbiAyMjUgSW5kZXgiXSxvLmV4cG9ydHNbIiNOU0U6SVRJLXN5bWJvbC1kZXNjcmlwdGlvbiJdPVsiSW5kaWFuIFRlbGVwaG9uZSBJbmR1c3RyaWVzIExpbWl0ZWQiXSxvLmV4cG9ydHNbIiNOU0U6TklGVFktc3ltYm9sLWRlc2NyaXB0aW9uIl09WyJOaWZ0eSA1MCBJbmRleCJdLG8uZXhwb3J0c1siI05ZTUVYOkFFWjEhLXN5bWJvbC1kZXNjcmlwdGlvbiJdPVsiTlkgRXRoYW5vbCBGdXR1cmVzIl0sby5leHBvcnRzWyIjTllNRVg6Q0oxIS1zeW1ib2wtZGVzY3JpcHRpb24iXT1bIkNvY29hIEZ1dHVyZXMiXSxvLmV4cG9ydHNbIiNOWU1FWDpDTDEhLXN5bWJvbC1kZXNjcmlwdGlvbiJdPVsiTGlnaHQgQ3J1ZGUgT2lsIEZ1dHVyZXMiXSxvLmV4cG9ydHNbIiNOWU1FWDpITzEhLXN5bWJvbC1kZXNjcmlwdGlvbiJdPVsiTlkgSGFyYm9yIFVMU0QgRnV0dXJlcyJdLG8uZXhwb3J0c1siI05ZTUVYOktUMSEtc3ltYm9sLWRlc2NyaXB0aW9uIl09WyJDb2ZmZWUgRnV0dXJlcyJdLG8uZXhwb3J0c1siI05ZTUVYOk5HMSEtc3ltYm9sLWRlc2NyaXB0aW9uIl09WyJOYXR1cmFsIEdhcyBGdXR1cmVzIl0sby5leHBvcnRzWyIjTllNRVg6UEExIS1zeW1ib2wtZGVzY3JpcHRpb24iXT1bIlBhbGxhZGl1bSBGdXR1cmVzIl0sby5leHBvcnRzWyIjTllNRVg6UEwxIS1zeW1ib2wtZGVzY3JpcHRpb24iXT1bIlBsYXRpbnVtIEZ1dHVyZXMiXSwKby5leHBvcnRzWyIjTllNRVg6UkIxIS1zeW1ib2wtZGVzY3JpcHRpb24iXT1bIlJCT0IgR2Fzb2xpbmUgRnV0dXJlcyJdLG8uZXhwb3J0c1siI05ZTUVYOlRUMSEtc3ltYm9sLWRlc2NyaXB0aW9uIl09WyJDb3R0b24gRnV0dXJlcyJdLG8uZXhwb3J0c1siI05ZTUVYX01JTkk6UUcxIS1zeW1ib2wtZGVzY3JpcHRpb24iXT1bIkUtbWluaSBOYXR1cmFsIEdhcyBGdXR1cmVzIl0sby5leHBvcnRzWyIjTllNRVhfTUlOSTpRTTEhLXN5bWJvbC1kZXNjcmlwdGlvbiJdPVsiRS1taW5pIExpZ2h0IENydWRlIE9pbCBGdXR1cmVzIl0sby5leHBvcnRzWyIjTllNRVhfTUlOSTpRVTEhLXN5bWJvbC1kZXNjcmlwdGlvbiJdPVsiRS1taW5pIEdhc29saW5lIEZ1dHVyZXMiXSxvLmV4cG9ydHNbIiNOWVNFOkJBQkEtc3ltYm9sLWRlc2NyaXB0aW9uIl09WyJBbGliYWJhIEdyb3VwIEhvbGRpbmdzIEx0ZC4iXSxvLmV4cG9ydHNbIiNOWVNFOkYtc3ltYm9sLWRlc2NyaXB0aW9uIl09WyJGT1JEIE1UUiBDTyBERUwiXSxvLmV4cG9ydHNbIiNOWVNFOkhFLXN5bWJvbC1kZXNjcmlwdGlvbiJdPVsiSGF3YWlpYW4gRWxlY3RyaWMgSW5kdXN0cmllcyJdLG8uZXhwb3J0c1siI05ZU0U6TllBLXN5bWJvbC1kZXNjcmlwdGlvbiJdPVsiTllTRSBDb21wb3NpdGUgSW5kZXgiXSxvLmV4cG9ydHNbIiNOWVNFOlBCUi1zeW1ib2wtZGVzY3JpcHRpb24iXT1bIlBFVFJPTEVPIEJSQVNJTEVJUk8gU0EgUEVUUk9CUiJdLG8uZXhwb3J0c1siI05ZU0U6WEFYLXN5bWJvbC1kZXNjcmlwdGlvbiJdPVsiQU1FWCBDb21wb3NpdGUgSW5kZXgiXSxvLmV4cG9ydHNbIiNOWVNFOlhNSS1zeW1ib2wtZGVzY3JpcHRpb24iXT1bIk5ZU0UgQVJDQSBNYWpvciBNYXJrZXQgSW5kZXgiXSxvLmV4cG9ydHNbIiNOWkRKUFktc3ltYm9sLWRlc2NyaXB0aW9uIl09WyJOZXcgWmVhbGFuZCBEb2xsYXIgLyBKYXBhbmVzZSBZZW4iXSxvLmV4cG9ydHNbIiNOWkRVU0Qtc3ltYm9sLWRlc2NyaXB0aW9uIl09WyJOZXcgWmVhbGFuZCBEb2xsYXIgLyBVLlMuIERvbGxhciJdLG8uZXhwb3J0c1siI05aWDpBTExDLXN5bWJvbC1kZXNjcmlwdGlvbiJdPVsiUyZQL05aWCBBbGwgSW5kZXggKENhcGl0YWwgSW5kZXgpIl0sby5leHBvcnRzWyIjTlpYOk5aNTBHLXN5bWJvbC1kZXNjcmlwdGlvbiJdPVsiUyZQIC8gTlpYIDUwIEluZGV4IEdyb3NzIl0sby5leHBvcnRzWyIjT0FOREE6TkFUR0FTVVNELXN5bWJvbC1kZXNjcmlwdGlvbiJdPVsiQ0ZEcyBvbiBOYXR1cmFsIEdhcyJdLG8uZXhwb3J0c1siI09BTkRBOlNQWDUwMFVTRC1zeW1ib2wtZGVzY3JpcHRpb24iXT1bIlMmUCA1MDAgSW5kZXgiXSxvLmV4cG9ydHNbIiNPQU5EQTpYQ1VVU0Qtc3ltYm9sLWRlc2NyaXB0aW9uIl09WyJDRkRzIG9uIENvcHBlciAoVVMkIC8gbGIpIl0sby5leHBvcnRzWyIjT01YQ09QOk9NWEMyNS1zeW1ib2wtZGVzY3JpcHRpb24iXT1bIk9NWCBDb3BlbmhhZ2VuIDI1IEluZGV4Il0sby5leHBvcnRzWyIjT01YQ09QOlNDSE8tc3ltYm9sLWRlc2NyaXB0aW9uIl09WyJTY2hvdXcgJiBDbyBBL1MiXSxvLmV4cG9ydHNbIiNPTVhIRVg6T01YSDI1LXN5bWJvbC1kZXNjcmlwdGlvbiJdPVsiT01YIEhlbHNpbmtpIDI1IEluZGV4Il0sby5leHBvcnRzWyIjT01YUlNFOk9NWFJHSS1zeW1ib2wtZGVzY3JpcHRpb24iXT1bIk9NWCBSaWdhIEdyb3NzIEluZGV4Il0sby5leHBvcnRzWyIjT01YU1RPOk9NWFMzMC1zeW1ib2wtZGVzY3JpcHRpb24iXT1bIk9NWCBTdG9ja2hvbG0gMzAgSW5kZXgiXSxvLmV4cG9ydHNbIiNPTVhUU0U6T01YVEdJLXN5bWJvbC1kZXNjcmlwdGlvbiJdPVsiT01YIFRhbGxpbm4gR3Jvc3MgSW5kZXgiXSxvLmV4cG9ydHNbIiNPTVhWU0U6T01YVkdJLXN5bWJvbC1kZXNjcmlwdGlvbiJdPVsiT01YIFZpbG5pdXMgR3Jvc3MgSW5kZXgiXSxvLmV4cG9ydHNbIiNPVEM6SUhSTUYtc3ltYm9sLWRlc2NyaXB0aW9uIl09WyJJc2hhcmVzIE1TQ0kgSmFwYW4gU0hTIl0sby5leHBvcnRzWyIjUVNFOkdOUkktc3ltYm9sLWRlc2NyaXB0aW9uIl09WyJRRSBJbmRleCJdLG8uZXhwb3J0c1siI1JUUy1zeW1ib2wtZGVzY3JpcHRpb24iXT1bIlJ1c3NpYW4gUlRTIEluZGV4Il0sby5leHBvcnRzWyIjUlVTU0VMTDpSVUEtc3ltYm9sLWRlc2NyaXB0aW9uIl09WyJSdXNzZWxsIDMwMDAgSW5kZXgiXSxvLmV4cG9ydHNbIiNSVVNTRUxMOlJVSS1zeW1ib2wtZGVzY3JpcHRpb24iXT1bIlJ1c3NlbGwgMTAwMCBJbmRleCJdLG8uZXhwb3J0c1siI1JVU1NFTEw6UlVULXN5bWJvbC1kZXNjcmlwdGlvbiJdPVsiUnVzc2VsbCAyMDAwIEluZGV4Il0sby5leHBvcnRzWyIjU0VUOkdDLXN5bWJvbC1kZXNjcmlwdGlvbiJdPVsiR2xvYmFsIENvbm5lY3Rpb25zIFB1YmxpYyBDb21wYW55Il0sby5leHBvcnRzWyIjU0lYOkYtc3ltYm9sLWRlc2NyaXB0aW9uIl09WyJGb3JkIE1vdG9yIENvbXBhbnkiXSxvLmV4cG9ydHNbIiNTSVg6U01JLXN5bWJvbC1kZXNjcmlwdGlvbiJdPVsiU3dpc3MgTWFya2V0IEluZGV4Il0sby5leHBvcnRzWyIjU09MVVNELXN5bWJvbC1kZXNjcmlwdGlvbiJdPVsiU29sYW5hIC8gVS5TLiBEb2xsYXIiXSxvLmV4cG9ydHNbIiNTT1lCTlVTRC1zeW1ib2wtZGVzY3JpcHRpb24iXT1bIkNGRHMgb24gU295YmVhbnMiXSxvLmV4cG9ydHNbIiNTUDpPRVgtc3ltYm9sLWRlc2NyaXB0aW9uIl09WyJTJlAgMTAwIEluZGV4Il0sby5leHBvcnRzWyIjU1A6U1BHU0NJLXN5bWJvbC1kZXNjcmlwdGlvbiJdPVsiUyZQIEdvbGRtYW4gU2FjaHMgQ29tbW9kaXR5IEluZGV4Il0sby5leHBvcnRzWyIjU1A6U1BYLXN5bWJvbC1kZXNjcmlwdGlvbiJdPVsiUyZQIDUwMCBJbmRleCJdLG8uZXhwb3J0c1siI1NQOlNWWC1zeW1ib2wtZGVzY3JpcHRpb24iXT1bIlMmUCA1MDAgVmFsdWUgSW5kZXgiXSxvLmV4cG9ydHNbIiNTUFg1MDAtc3ltYm9sLWRlc2NyaXB0aW9uIl09WyJTJlAgNTAwIEluZGV4Il0sby5leHBvcnRzWyIjU1VHQVJVU0Qtc3ltYm9sLWRlc2NyaXB0aW9uIl09WyJDRkRzIG9uIFN1Z2FyIl0sCm8uZXhwb3J0c1siI1NaU0U6Mzk5MDAxLXN5bWJvbC1kZXNjcmlwdGlvbiJdPVsiU2hlbnpoZW4gQ29tcG9uZW50IEluZGV4Il0sby5leHBvcnRzWyIjVEFEQVdVTDoyMzcwLXN5bWJvbC1kZXNjcmlwdGlvbiJdPVsiTWlkZGxlIEVhc3QgU3BlY2lhbGl6ZWQgQ2FibGVzIENvLiJdLG8uZXhwb3J0c1siI1RBREFXVUw6VEFTSS1zeW1ib2wtZGVzY3JpcHRpb24iXT1bIlRhZGF3dWwgQWxsIFNoYXJlcyBJbmRleCJdLG8uZXhwb3J0c1siI1RBU0U6VEEzNS1zeW1ib2wtZGVzY3JpcHRpb24iXT1bIlRBLTM1IEluZGV4Il0sby5leHBvcnRzWyIjVFNYOlRTWC1zeW1ib2wtZGVzY3JpcHRpb24iXT1bIlMmUC9UU1ggQ29tcG9zaXRlIEluZGV4Il0sby5leHBvcnRzWyIjVFNYOlRYNjAtc3ltYm9sLWRlc2NyaXB0aW9uIl09WyJTJlAvVFNYIDYwIEluZGV4Il0sby5leHBvcnRzWyIjVFZDOkFVMTAtc3ltYm9sLWRlc2NyaXB0aW9uIl09WyJBdXN0cmFsaWEgR292ZXJubWVudCBCb25kcyAxMCBZUiJdLG8uZXhwb3J0c1siI1RWQzpBVTEwWS1zeW1ib2wtZGVzY3JpcHRpb24iXT1bIkF1c3RyYWxpYSBHb3Zlcm5tZW50IEJvbmRzIDEwIFlSIFlpZWxkIl0sby5leHBvcnRzWyIjVFZDOkFYWS1zeW1ib2wtZGVzY3JpcHRpb24iXT1bIkF1c3RyYWxpYW4gRG9sbGFyIEN1cnJlbmN5IEluZGV4Il0sby5leHBvcnRzWyIjVFZDOkJYWS1zeW1ib2wtZGVzY3JpcHRpb24iXT1bIkJyaXRpc2ggUG91bmQgQ3VycmVuY3kgSW5kZXgiXSxvLmV4cG9ydHNbIiNUVkM6Q0ExMC1zeW1ib2wtZGVzY3JpcHRpb24iXT1bIkNhbmFkaWFuIEdvdmVybm1lbnQgQm9uZHMsIDEwIFlSIl0sby5leHBvcnRzWyIjVFZDOkNBMTBZLXN5bWJvbC1kZXNjcmlwdGlvbiJdPVsiQ2FuYWRpYW4gR292ZXJubWVudCBCb25kcyAxMCBZUiBZaWVsZCJdLG8uZXhwb3J0c1siI1RWQzpDQUM0MC1zeW1ib2wtZGVzY3JpcHRpb24iXT1bIkNBQyA0MCBJbmRleCJdLG8uZXhwb3J0c1siI1RWQzpDTjEwLXN5bWJvbC1kZXNjcmlwdGlvbiJdPVsiQ2hpbmEgR292ZXJubWVudCBCb25kcyAxMCBZUiJdLG8uZXhwb3J0c1siI1RWQzpDTjEwWS1zeW1ib2wtZGVzY3JpcHRpb24iXT1bIkNoaW5hIEdvdmVybm1lbnQgQm9uZHMgMTAgWVIgWWllbGQiXSxvLmV4cG9ydHNbIiNUVkM6Q1hZLXN5bWJvbC1kZXNjcmlwdGlvbiJdPVsiQ2FuYWRpYW4gRG9sbGFyIEN1cnJlbmN5IEluZGV4Il0sby5leHBvcnRzWyIjVFZDOkRFMTAtc3ltYm9sLWRlc2NyaXB0aW9uIl09WyJHZXJtYW4gR292ZXJubWVudCBCb25kcyAxMCBZUiJdLG8uZXhwb3J0c1siI1RWQzpERTEwWS1zeW1ib2wtZGVzY3JpcHRpb24iXT1bIkdlcm1hbiBHb3Zlcm5tZW50IEJvbmRzIDEwIFlSIFlpZWxkIl0sby5leHBvcnRzWyIjVFZDOkRFVTMwLXN5bWJvbC1kZXNjcmlwdGlvbiJdPVsiREFYIEluZGV4Il0sby5leHBvcnRzWyIjVFZDOkRKSS1zeW1ib2wtZGVzY3JpcHRpb24iXT1bIkRvdyBKb25lcyBJbmR1c3RyaWFsIEF2ZXJhZ2UgSW5kZXgiXSxvLmV4cG9ydHNbIiNUVkM6RFhZLXN5bWJvbC1kZXNjcmlwdGlvbiJdPVsiVS5TLiBEb2xsYXIgSW5kZXgiXSxvLmV4cG9ydHNbIiNUVkM6RVMxMC1zeW1ib2wtZGVzY3JpcHRpb24iXT1bIlNwYWluIEdvdmVybm1lbnQgQm9uZHMgMTAgWVIiXSxvLmV4cG9ydHNbIiNUVkM6RVMxMFktc3ltYm9sLWRlc2NyaXB0aW9uIl09WyJTcGFpbiBHb3Zlcm5tZW50IEJvbmRzIDEwIFlSIFlpZWxkIl0sby5leHBvcnRzWyIjVFZDOkVVQlVORC1zeW1ib2wtZGVzY3JpcHRpb24iXT1bIkV1cm8gQnVuZCJdLG8uZXhwb3J0c1siI1RWQzpFWFktc3ltYm9sLWRlc2NyaXB0aW9uIl09WyJFdXJvIEN1cnJlbmN5IEluZGV4Il0sby5leHBvcnRzWyIjVFZDOkZSMTAtc3ltYm9sLWRlc2NyaXB0aW9uIl09WyJGcmFuY2UgR292ZXJubWVudCBCb25kcyAxMCBZUiJdLG8uZXhwb3J0c1siI1RWQzpGUjEwWS1zeW1ib2wtZGVzY3JpcHRpb24iXT1bIkZyYW5jZSBHb3Zlcm5tZW50IEJvbmRzIDEwIFlSIFlpZWxkIl0sby5leHBvcnRzWyIjVFZDOkZUTUlCLXN5bWJvbC1kZXNjcmlwdGlvbiJdPVsiTWlsYW5vIEl0YWxpYSBCb3JzYSBJbmRleCJdLG8uZXhwb3J0c1siI1RWQzpHQjAyLXN5bWJvbC1kZXNjcmlwdGlvbiJdPVsiVUsgR292ZXJubWVudCBCb25kcyAyIFlSIl0sby5leHBvcnRzWyIjVFZDOkdCMTAtc3ltYm9sLWRlc2NyaXB0aW9uIl09WyJVSyBHb3Zlcm5tZW50IEJvbmRzIDEwIFlSIl0sby5leHBvcnRzWyIjVFZDOkdCMTBZLXN5bWJvbC1kZXNjcmlwdGlvbiJdPVsiVUsgR292ZXJubWVudCBCb25kcyAxMCBZUiBZaWVsZCJdLG8uZXhwb3J0c1siI1RWQzpHT0xELXN5bWJvbC1kZXNjcmlwdGlvbiJdPVsiQ0ZEcyBvbiBHb2xkIChVUyQgLyBPWikiXSxvLmV4cG9ydHNbIiNUVkM6SFNJLXN5bWJvbC1kZXNjcmlwdGlvbiJdPVsiSGFuZyBTZW5nIEluZGV4Il0sby5leHBvcnRzWyIjVFZDOklCRVgzNS1zeW1ib2wtZGVzY3JpcHRpb24iXT1bIklCRVggMzUgSW5kZXgiXSxvLmV4cG9ydHNbIiNUVkM6SUQwMy1zeW1ib2wtZGVzY3JpcHRpb24iXT1bIkluZG9uZXNpYSBHb3Zlcm5tZW50IEJvbmRzIDMgWVIiXSxvLmV4cG9ydHNbIiNUVkM6SUQxMC1zeW1ib2wtZGVzY3JpcHRpb24iXT1bIkluZG9uZXNpYSBHb3Zlcm5tZW50IEJvbmRzIDEwIFlSIl0sby5leHBvcnRzWyIjVFZDOklEMTBZLXN5bWJvbC1kZXNjcmlwdGlvbiJdPVsiSW5kb25lc2lhIEdvdmVybm1lbnQgQm9uZHMgMTAgWVIgWWllbGQiXSxvLmV4cG9ydHNbIiNUVkM6SU4xMC1zeW1ib2wtZGVzY3JpcHRpb24iXT1bIkluZGlhIEdvdmVybm1lbnQgQm9uZHMgMTAgWVIiXSxvLmV4cG9ydHNbIiNUVkM6SU4xMFktc3ltYm9sLWRlc2NyaXB0aW9uIl09WyJJbmRpYSBHb3Zlcm5tZW50IEJvbmRzIDEwIFlSIFlpZWxkIl0sby5leHBvcnRzWyIjVFZDOklUMTAtc3ltYm9sLWRlc2NyaXB0aW9uIl09WyJJdGFseSBHb3Zlcm5tZW50IEJvbmRzIDEwIFlSIl0sby5leHBvcnRzWyIjVFZDOklUMTBZLXN5bWJvbC1kZXNjcmlwdGlvbiJdPVsiSXRhbHkgR292ZXJubWVudCBCb25kcyAxMCBZUiBZaWVsZCJdLApvLmV4cG9ydHNbIiNUVkM6SVhJQy1zeW1ib2wtZGVzY3JpcHRpb24iXT1bIlVTIENvbXBvc2l0ZSBJbmRleCJdLG8uZXhwb3J0c1siI1RWQzpKUDEwLXN5bWJvbC1kZXNjcmlwdGlvbiJdPVsiSmFwYW4gR292ZXJubWVudCBCb25kcyAxMCBZUiJdLG8uZXhwb3J0c1siI1RWQzpKUDEwWS1zeW1ib2wtZGVzY3JpcHRpb24iXT1bIkphcGFuIEdvdmVybm1lbnQgQm9uZHMgMTAgWVIgWWllbGQiXSxvLmV4cG9ydHNbIiNUVkM6SlhZLXN5bWJvbC1kZXNjcmlwdGlvbiJdPVsiSmFwYW5lc2UgWWVuIEN1cnJlbmN5IEluZGV4Il0sby5leHBvcnRzWyIjVFZDOktPU1BJLXN5bWJvbC1kZXNjcmlwdGlvbiJdPVsiS29yZWEgQ29tcG9zaXRlIFN0b2NrIFByaWNlIEluZGV4Il0sby5leHBvcnRzWyIjVFZDOktSMTAtc3ltYm9sLWRlc2NyaXB0aW9uIl09WyJLb3JlYSBHb3Zlcm5tZW50IEJvbmRzIDEwIFlSIl0sby5leHBvcnRzWyIjVFZDOktSMTBZLXN5bWJvbC1kZXNjcmlwdGlvbiJdPVsiS29yZWEgR292ZXJubWVudCBCb25kcyAxMCBZUiBZaWVsZCJdLG8uZXhwb3J0c1siI1RWQzpNWTEwLXN5bWJvbC1kZXNjcmlwdGlvbiJdPVsiTWFsYXlzaWEgR292ZXJubWVudCBCb25kcyAxMCBZUiJdLG8uZXhwb3J0c1siI1RWQzpNWTEwWS1zeW1ib2wtZGVzY3JpcHRpb24iXT1bIk1hbGF5c2lhIEdvdmVybm1lbnQgQm9uZHMgMTAgWVIgWWllbGQiXSxvLmV4cG9ydHNbIiNUVkM6TkRYLXN5bWJvbC1kZXNjcmlwdGlvbiJdPVsiVVMgMTAwIEluZGV4Il0sby5leHBvcnRzWyIjVFZDOk5JMjI1LXN5bWJvbC1kZXNjcmlwdGlvbiJdPVsiSmFwYW4gMjI1IEluZGV4Il0sby5leHBvcnRzWyIjVFZDOk5MMTAtc3ltYm9sLWRlc2NyaXB0aW9uIl09WyJOZXRoZXJsYW5kcyBHb3Zlcm5tZW50IEJvbmRzLCAxMCBZUiJdLG8uZXhwb3J0c1siI1RWQzpOTDEwWS1zeW1ib2wtZGVzY3JpcHRpb24iXT1bIk5ldGhlcmxhbmRzIEdvdmVybm1lbnQgQm9uZHMgMTAgWVIgWWllbGQiXSxvLmV4cG9ydHNbIiNUVkM6TllBLXN5bWJvbC1kZXNjcmlwdGlvbiJdPVsiTllTRSBDb21wb3NpdGUgSW5kZXgiXSxvLmV4cG9ydHNbIiNUVkM6TloxMC1zeW1ib2wtZGVzY3JpcHRpb24iXT1bIk5ldyBaZWFsYW5kIEdvdmVybm1lbnQgQm9uZHMsIDEwIFlSIl0sby5leHBvcnRzWyIjVFZDOk5aMTBZLXN5bWJvbC1kZXNjcmlwdGlvbiJdPVsiTmV3IFplYWxhbmQgR292ZXJubWVudCBCb25kcyAxMCBZUiBZaWVsZCJdLG8uZXhwb3J0c1siI1RWQzpQQUxMQURJVU0tc3ltYm9sLWRlc2NyaXB0aW9uIl09WyJDRkRzIG9uIFBhbGxhZGl1bSAoVVMkIC8gT1opIl0sby5leHBvcnRzWyIjVFZDOlBMMDVZLXN5bWJvbC1kZXNjcmlwdGlvbiJdPVsiUG9sYW5kIEdvdmVybm1lbnQgQm9uZHMgNSBZUiBZaWVsZCJdLG8uZXhwb3J0c1siI1RWQzpQTDEwWS1zeW1ib2wtZGVzY3JpcHRpb24iXT1bIlBvbGFuZCBHb3Zlcm5tZW50IEJvbmRzIDEwIFlSIFlpZWxkIl0sby5leHBvcnRzWyIjVFZDOlBMQVRJTlVNLXN5bWJvbC1kZXNjcmlwdGlvbiJdPVsiQ0ZEcyBvbiBQbGF0aW51bSAoVVMkIC8gT1opIl0sby5leHBvcnRzWyIjVFZDOlBUMTAtc3ltYm9sLWRlc2NyaXB0aW9uIl09WyJQb3J0dWdhbCBHb3Zlcm5tZW50IEJvbmRzIDEwIFlSIl0sby5leHBvcnRzWyIjVFZDOlBUMTBZLXN5bWJvbC1kZXNjcmlwdGlvbiJdPVsiUG9ydHVnYWwgR292ZXJubWVudCBCb25kcyAxMCBZUiBZaWVsZCJdLG8uZXhwb3J0c1siI1RWQzpTQTQwLXN5bWJvbC1kZXNjcmlwdGlvbiJdPVsiU291dGggQWZyaWNhIFRvcCA0MCBJbmRleCJdLG8uZXhwb3J0c1siI1RWQzpTSUxWRVItc3ltYm9sLWRlc2NyaXB0aW9uIl09WyJDRkRzIG9uIFNpbHZlciAoVVMkIC8gT1opIl0sby5leHBvcnRzWyIjVFZDOlNQWC1zeW1ib2wtZGVzY3JpcHRpb24iXT1bIlMmUCA1MDAgSW5kZXgiXSxvLmV4cG9ydHNbIiNUVkM6U1NNSS1zeW1ib2wtZGVzY3JpcHRpb24iXT1bIlN3aXNzIE1hcmtldCBJbmRleCJdLG8uZXhwb3J0c1siI1RWQzpTVEktc3ltYm9sLWRlc2NyaXB0aW9uIl09WyJTdHJhaXRzIFRpbWVzIEluZGV4Il0sby5leHBvcnRzWyIjVFZDOlNYNUUtc3ltYm9sLWRlc2NyaXB0aW9uIl09WyJFdXJvIFN0b3h4IDUwIEluZGV4Il0sby5leHBvcnRzWyIjVFZDOlNYWS1zeW1ib2wtZGVzY3JpcHRpb24iXT1bIlN3aXNzIEZyYW5jIEN1cnJlbmN5IEluZGV4Il0sby5leHBvcnRzWyIjVFZDOlRSMTAtc3ltYm9sLWRlc2NyaXB0aW9uIl09WyJUdXJrZXkgR292ZXJubWVudCBCb25kcyAxMCBZUiJdLG8uZXhwb3J0c1siI1RWQzpUUjEwWS1zeW1ib2wtZGVzY3JpcHRpb24iXT1bIlR1cmtleSBHb3Zlcm5tZW50IEJvbmRzIDEwIFlSIFlpZWxkIl0sby5leHBvcnRzWyIjVFZDOlVLT0lMLXN5bWJvbC1kZXNjcmlwdGlvbiJdPVsiQ0ZEcyBvbiBCcmVudCBDcnVkZSBPaWwiXSxvLmV4cG9ydHNbIiNUVkM6VUtYLXN5bWJvbC1kZXNjcmlwdGlvbiJdPVsiVUsgMTAwIEluZGV4Il0sby5leHBvcnRzWyIjVFZDOlVTMDItc3ltYm9sLWRlc2NyaXB0aW9uIl09WyJVUyBHb3Zlcm5tZW50IEJvbmRzIDIgWVIiXSxvLmV4cG9ydHNbIiNUVkM6VVMwMlktc3ltYm9sLWRlc2NyaXB0aW9uIl09WyJVUyBHb3Zlcm5tZW50IEJvbmRzIDIgWVIgWWllbGQiXSxvLmV4cG9ydHNbIiNUVkM6VVMwNS1zeW1ib2wtZGVzY3JpcHRpb24iXT1bIlVTIEdvdmVybm1lbnQgQm9uZHMgNSBZUiJdLG8uZXhwb3J0c1siI1RWQzpVUzA1WS1zeW1ib2wtZGVzY3JpcHRpb24iXT1bIlVTIEdvdmVybm1lbnQgQm9uZHMgNSBZUiBZaWVsZCJdLG8uZXhwb3J0c1siI1RWQzpVUzEwLXN5bWJvbC1kZXNjcmlwdGlvbiJdPVsiVVMgR292ZXJubWVudCBCb25kcyAxMCBZUiJdLG8uZXhwb3J0c1siI1RWQzpVUzEwWS1zeW1ib2wtZGVzY3JpcHRpb24iXT1bIlVTIEdvdmVybm1lbnQgQm9uZHMgMTAgWVIgWWllbGQiXSxvLmV4cG9ydHNbIiNUVkM6VVMzMC1zeW1ib2wtZGVzY3JpcHRpb24iXT1bIlVTIEdvdmVybm1lbnQgQm9uZHMgMzAgWVIiXSxvLmV4cG9ydHNbIiNUVkM6VVNPSUwtc3ltYm9sLWRlc2NyaXB0aW9uIl09WyJDRkRzIG9uIFdUSSBDcnVkZSBPaWwiXSwKby5leHBvcnRzWyIjVFZDOlZJWC1zeW1ib2wtZGVzY3JpcHRpb24iXT1bIlZvbGF0aWxpdHkgUyZQIDUwMCBJbmRleCJdLG8uZXhwb3J0c1siI1RWQzpaWFktc3ltYm9sLWRlc2NyaXB0aW9uIl09WyJOZXcgWmVhbGFuZCBEb2xsYXIgQ3VycmVuY3kgSW5kZXgiXSxvLmV4cG9ydHNbIiNUV0lJLXN5bWJvbC1kZXNjcmlwdGlvbiJdPVsiVGFpd2FuIFdlaWdodGVkIEluZGV4Il0sby5leHBvcnRzWyIjVFdTRTpUQUlFWC1zeW1ib2wtZGVzY3JpcHRpb24iXT1bIlRhaXdhbiBDYXBpdGFsaXphdGlvbiBXZWlnaHRlZCBTdG9jayBJbmRleCJdLG8uZXhwb3J0c1siI1RXVFItc3ltYm9sLWRlc2NyaXB0aW9uIl09WyJUd2l0dGVyIEluYyJdLG8uZXhwb3J0c1siI1VLMTAwLXN5bWJvbC1kZXNjcmlwdGlvbiJdPVsiRlRTRSAxMDAgSW5kZXgiXSxvLmV4cG9ydHNbIiNVS09JTC1zeW1ib2wtZGVzY3JpcHRpb24iXT1bIkNGRHMgb24gQ3J1ZGUgT2lsIChCcmVudCkiXSxvLmV4cG9ydHNbIiNVTklVU0Qtc3ltYm9sLWRlc2NyaXB0aW9uIl09WyJVbmlzd2FwIC8gVS5TLiBEb2xsYXIiXSxvLmV4cG9ydHNbIiNVUzMwLXN5bWJvbC1kZXNjcmlwdGlvbiJdPVsiRG93IEpvbmVzIEluZHVzdHJpYWwgQXZlcmFnZSBJbmRleCJdLG8uZXhwb3J0c1siI1VTREFVRC1zeW1ib2wtZGVzY3JpcHRpb24iXT1bIlUuUy4gRG9sbGFyIC8gQXVzdHJhbGlhbiBEb2xsYXIiXSxvLmV4cG9ydHNbIiNVU0RCUkwtc3ltYm9sLWRlc2NyaXB0aW9uIl09WyJVLlMuIERvbGxhciAvIEJyYXppbGlhbiBSZWFsIl0sby5leHBvcnRzWyIjVVNEQ0FELXN5bWJvbC1kZXNjcmlwdGlvbiJdPVsiVS5TLiBEb2xsYXIgLyBDYW5hZGlhbiBEb2xsYXIiXSxvLmV4cG9ydHNbIiNVU0RDSEYtc3ltYm9sLWRlc2NyaXB0aW9uIl09WyJVLlMuIERvbGxhciAvIFN3aXNzIEZyYW5jIl0sby5leHBvcnRzWyIjVVNEQ05ZLXN5bWJvbC1kZXNjcmlwdGlvbiJdPVsiVS5TLiBEb2xsYXIgLyBDaGluZXNlIFl1YW4iXSxvLmV4cG9ydHNbIiNVU0RES0stc3ltYm9sLWRlc2NyaXB0aW9uIl09WyJVLlMuIERvbGxhciAvIERhbmlzaCBLcm9uZSJdLG8uZXhwb3J0c1siI1VTREVVUi1zeW1ib2wtZGVzY3JpcHRpb24iXT1bIlUuUy4gRG9sbGFyIC8gRXVybyJdLG8uZXhwb3J0c1siI1VTREdCUC1zeW1ib2wtZGVzY3JpcHRpb24iXT1bIlUuUy4gRG9sbGFyIC8gUG91bmQgU3RlcmxpbmciXSxvLmV4cG9ydHNbIiNVU0RIS0Qtc3ltYm9sLWRlc2NyaXB0aW9uIl09WyJVLlMuIERvbGxhciAvIEhvbmcgS29uZyBEb2xsYXIiXSxvLmV4cG9ydHNbIiNVU0RIVUYtc3ltYm9sLWRlc2NyaXB0aW9uIl09WyJVLlMuIERvbGxhciAvIEh1bmdhcmlhbiBGb3JpbnQiXSxvLmV4cG9ydHNbIiNVU0RJRFItc3ltYm9sLWRlc2NyaXB0aW9uIl09WyJVLlMuIERvbGxhciAvIFJ1cGlhaCJdLG8uZXhwb3J0c1siI1VTRElMUy1zeW1ib2wtZGVzY3JpcHRpb24iXT1bIlUuUy4gRG9sbGFyIC8gSXNyYWVsaSBTaGVrZWwiXSxvLmV4cG9ydHNbIiNVU0RJTlItc3ltYm9sLWRlc2NyaXB0aW9uIl09WyJVLlMuIERvbGxhciAvIEluZGlhbiBSdXBlZSJdLG8uZXhwb3J0c1siI1VTREpQWS1zeW1ib2wtZGVzY3JpcHRpb24iXT1bIlUuUy4gRG9sbGFyIC8gSmFwYW5lc2UgWWVuIl0sby5leHBvcnRzWyIjVVNES1JXLXN5bWJvbC1kZXNjcmlwdGlvbiJdPVsiVS5TLiBEb2xsYXIgLyBTb3V0aCBLb3JlYW4iXSxvLmV4cG9ydHNbIiNVU0RNWE4tc3ltYm9sLWRlc2NyaXB0aW9uIl09WyJVLlMuIERvbGxhciAvIE1leGljYW4gUGVzbyJdLG8uZXhwb3J0c1siI1VTRE5aRC1zeW1ib2wtZGVzY3JpcHRpb24iXT1bIlUuUy4gRG9sbGFyIC8gTmV3IFplYWxhbmQgRG9sbGFyIl0sby5leHBvcnRzWyIjVVNEUEhQLXN5bWJvbC1kZXNjcmlwdGlvbiJdPVsiVS5TLiBEb2xsYXIgLyBQaGlsaXBwaW5lIHBlc28iXSxvLmV4cG9ydHNbIiNVU0RQTE4tc3ltYm9sLWRlc2NyaXB0aW9uIl09WyJVLlMuIERvbGxhciAvIFBvbGlzaCBabG90eSJdLG8uZXhwb3J0c1siI1VTRFJVQi1zeW1ib2wtZGVzY3JpcHRpb24iXT1bIlUuUy4gRG9sbGFyIC8gUnVzc2lhbiBSdWJsZSJdLG8uZXhwb3J0c1siI1VTRFJVQl9UT00tc3ltYm9sLWRlc2NyaXB0aW9uIl09WyJVLlMuIERvbGxhciAvIFJ1c3NpYW4gUnVibGUgVE9NIl0sby5leHBvcnRzWyIjVVNEU0VLLXN5bWJvbC1kZXNjcmlwdGlvbiJdPVsiVS5TLiBEb2xsYXIgLyBTd2VkaXNoIEtyb25hIl0sby5leHBvcnRzWyIjVVNEU0dELXN5bWJvbC1kZXNjcmlwdGlvbiJdPVsiVS5TLiBEb2xsYXIgLyBTaW5nYXBvcmUgRG9sbGFyIl0sby5leHBvcnRzWyIjVVNEVEhCLXN5bWJvbC1kZXNjcmlwdGlvbiJdPVsiVS5TLiBEb2xsYXIgLyBUaGFpIEJhaHQiXSxvLmV4cG9ydHNbIiNVU0RUUlktc3ltYm9sLWRlc2NyaXB0aW9uIl09WyJVLlMuIERvbGxhciAvIFR1cmtpc2ggTGlyYSJdLG8uZXhwb3J0c1siI1VTRFpBUi1zeW1ib2wtZGVzY3JpcHRpb24iXT1bIlUuUy4gRG9sbGFyIC8gU291dGggQWZyaWNhbiBSYW5kIl0sby5leHBvcnRzWyIjVVNPSUwtc3ltYm9sLWRlc2NyaXB0aW9uIl09WyJDRkRzIG9uIENydWRlIE9pbCAoV1RJKSJdLG8uZXhwb3J0c1siI1dIRUFUVVNELXN5bWJvbC1kZXNjcmlwdGlvbiJdPVsiQ0ZEcyBvbiBXaGVhdCJdLG8uZXhwb3J0c1siI1hBR1VTRC1zeW1ib2wtZGVzY3JpcHRpb24iXT1bIlNpbHZlciAvIFUuUy4gRG9sbGFyIl0sby5leHBvcnRzWyIjWEFVVVNELXN5bWJvbC1kZXNjcmlwdGlvbiJdPVsiR29sZCBTcG90IC8gVS5TLiBEb2xsYXIiXSxvLmV4cG9ydHNbIiNYQlRDQUQtc3ltYm9sLWRlc2NyaXB0aW9uIl09WyJCaXRjb2luIC8gQ2FuYWRpYW4gRG9sbGFyIl0sby5leHBvcnRzWyIjWEVUUjpEQVgtc3ltYm9sLWRlc2NyaXB0aW9uIl09WyJEQVggSW5kZXgiXSxvLmV4cG9ydHNbIiNYTVJVU0Qtc3ltYm9sLWRlc2NyaXB0aW9uIl09WyJNb25lcm8gLyBVLlMuIERvbGxhciJdLG8uZXhwb3J0c1siI1hQRFVTRC1zeW1ib2wtZGVzY3JpcHRpb24iXT1bIkNGRHMgb24gUGFsbGFkaXVtIl0sCm8uZXhwb3J0c1siI1hQVFVTRC1zeW1ib2wtZGVzY3JpcHRpb24iXT1bIlBsYXRpbnVtIC8gVS5TLiBEb2xsYXIiXSxvLmV4cG9ydHNbIiNYUlBCVEMtc3ltYm9sLWRlc2NyaXB0aW9uIl09WyJYUlAgLyBCaXRjb2luIl0sby5leHBvcnRzWyIjWFJQRVVSLXN5bWJvbC1kZXNjcmlwdGlvbiJdPVsiWFJQIC8gRXVybyJdLG8uZXhwb3J0c1siI1hSUFVTRC1zeW1ib2wtZGVzY3JpcHRpb24iXT1bIlhSUCAvIFUuUy4gRG9sbGFyIl0sby5leHBvcnRzWyIjWkVDVVNELXN5bWJvbC1kZXNjcmlwdGlvbiJdPVsiWmNhc2ggLyBVLlMuIERvbGxhciJdfX1dKTs="}},"time_used":4,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":4,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/23624.d2390d17b1509b018826.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:13.738Z","timestamp":1785148033738,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/23624.d2390d17b1509b018826.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:13 GMT\r\ncontent-type: text/css; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a58ab11-1547\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Thu, 16 Jul 2026 09:57:37 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/16/2026 11:03:21\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 070c115cbd8c21ae6efd865a3b783323\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":5447,"size_decoded":2078,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with very long lines (5447), with no line terminators","md5":"2c33d31c563e23c31e00293508a0185a","sha1":"a5929dabb129340cfe8b787016b307911e1a3454","sha256":"4ce18d9026cee0619db0fe37daf10d2562a6a41648d0baaf2fbabedd6997ad8f","sha512":"f18b23e71681a5a8a3059d3ca0acc71b714119f95515c18cfb29123816bbf4e158126f7a947ff798c18080ee07ba20b1af9d063e587477bf46de561078ce9fc7","ssdeep":"96:DP5k+VoSKKEKgnKzKvKzKLKIKLKIKhK2nZjBCmVcKEKpVcKEKPK2XIKvmK2XIKv+:9kingKuiuWTWTw2ZXnrnCOtOTLK54WSS","tlshash":"ffb1df88e1cf773e2a3bb9295308e1dc97076780ea421be5bf61e25625cdbc651f5c08","first_seen":"2026-07-16T13:40:49.85665Z","last_seen":"2026-07-27T12:54:15.383577Z","times_seen":348,"resource_available":false,"data":"W2RhdGEtdGhlbWU9bGlnaHRdey0tXzAtQU1UbDp2YXIoLS1jb2xvci13aGl0ZSl9W2RhdGEtdGhlbWU9ZGFya117LS1fMC1BTVRsOnZhcigtLWNvbG9yLWNvbGQtZ3JheS0yMDApfS5pdGVtLU1pMF90NXVOe2FsaWduLWl0ZW1zOmNlbnRlcjtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXR2LWNvbG9yLXBvcHVwLWJhY2tncm91bmQsdmFyKC0tY29sb3ItcG9wdXAtYmFja2dyb3VuZCkpO2JvcmRlcjowO2JveC1zaXppbmc6Ym9yZGVyLWJveDtjb2xvcjp2YXIoLS10di1jb2xvci1wb3B1cC1lbGVtZW50LXRleHQsdmFyKC0tY29sb3ItcG9wdXAtZWxlbWVudC10ZXh0KSk7Y3Vyc29yOmRlZmF1bHQ7ZGlzcGxheTpmbGV4O2ZsZXgtZmxvdzpyb3cgbm93cmFwO2ZvbnQtc2l6ZToxNHB4O3BhZGRpbmctYmxvY2s6MnB4IDJweDtwYWRkaW5nLWlubGluZTo4cHggMTBweDt0cmFuc2l0aW9uLXByb3BlcnR5Om5vbmU7d2hpdGUtc3BhY2U6bm93cmFwO3dpZHRoOjEwMCV9Lml0ZW0tTWkwX3Q1dU4uaG92ZXJlZC1NaTBfdDV1TiwuaXRlbS1NaTBfdDV1TjphY3RpdmV7Y29sb3I6dmFyKC0tdHYtY29sb3ItcG9wdXAtZWxlbWVudC10ZXh0LWhvdmVyLHZhcigtLWNvbG9yLXBvcHVwLWVsZW1lbnQtdGV4dC1ob3ZlcikpfUBtZWRpYSAoYW55LWhvdmVyOmhvdmVyKXsuaXRlbS1NaTBfdDV1Tjpob3Zlcntjb2xvcjp2YXIoLS10di1jb2xvci1wb3B1cC1lbGVtZW50LXRleHQtaG92ZXIsdmFyKC0tY29sb3ItcG9wdXAtZWxlbWVudC10ZXh0LWhvdmVyKSl9fS5pdGVtLU1pMF90NXVOLmhvdmVyZWQtTWkwX3Q1dU57YmFja2dyb3VuZC1jb2xvcjp2YXIoLS10di1jb2xvci1wb3B1cC1lbGVtZW50LWJhY2tncm91bmQtaG92ZXIsdmFyKC0tY29sb3ItcG9wdXAtZWxlbWVudC1iYWNrZ3JvdW5kLWhvdmVyKSl9QG1lZGlhIChhbnktaG92ZXI6aG92ZXIpey5pdGVtLU1pMF90NXVOOmhvdmVye2JhY2tncm91bmQtY29sb3I6dmFyKC0tdHYtY29sb3ItcG9wdXAtZWxlbWVudC1iYWNrZ3JvdW5kLWhvdmVyLHZhcigtLWNvbG9yLXBvcHVwLWVsZW1lbnQtYmFja2dyb3VuZC1ob3ZlcikpfX0uaXRlbS1NaTBfdDV1TjphY3RpdmV7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS10di1jb2xvci1wb3B1cC1lbGVtZW50LWJhY2tncm91bmQtaG92ZXIsdmFyKC0tY29sb3ItY29udGFpbmVyLWZpbGwtcHJpbWFyeS1uZXV0cmFsLWxpZ2h0KSl9Lml0ZW0tTWkwX3Q1dU57b3V0bGluZTpub25lO292ZXJmbG93OnZpc2libGU7cG9zaXRpb246cmVsYXRpdmV9Lml0ZW0tTWkwX3Q1dU46Zm9jdXN7b3V0bGluZTpub25lfS5pdGVtLU1pMF90NXVOOmZvY3VzLXZpc2libGV7b3V0bGluZTpub25lfS5pdGVtLU1pMF90NXVOOmFmdGVye2JvcmRlci1zdHlsZTpzb2xpZDtib3JkZXItd2lkdGg6MnB4O2JveC1zaXppbmc6Ym9yZGVyLWJveDtjb250ZW50OiIiO2Rpc3BsYXk6bm9uZTtoZWlnaHQ6Y2FsYygxMDAlIC0gNHB4KTtpbnNldC1pbmxpbmUtc3RhcnQ6MnB4O3BvaW50ZXItZXZlbnRzOm5vbmU7cG9zaXRpb246YWJzb2x1dGU7dG9wOjJweDt3aWR0aDpjYWxjKDEwMCUgLSA0cHgpO3otaW5kZXg6MX0uaXRlbS1NaTBfdDV1Tjpmb2N1czphZnRlcntkaXNwbGF5OmJsb2NrfS5pdGVtLU1pMF90NXVOOmZvY3VzLXZpc2libGU6YWZ0ZXJ7ZGlzcGxheTpibG9ja30uaXRlbS1NaTBfdDV1Tjpmb2N1czpub3QoOmZvY3VzLXZpc2libGUpOmFmdGVye2Rpc3BsYXk6bm9uZX0uaXRlbS1NaTBfdDV1TjphZnRlcntib3JkZXItcmFkaXVzOjlweH0uaXRlbS1NaTBfdDV1TjphZnRlcixodG1sLnRoZW1lLWRhcmsgLml0ZW0tTWkwX3Q1dU46YWZ0ZXJ7Ym9yZGVyLWNvbG9yOnZhcigtLWNvbG9yLWZvY3VzLW91dGxpbmUtY29sb3ItYmx1ZSl9Lml0ZW0tTWkwX3Q1dU4uaXNEaXNhYmxlZC1NaTBfdDV1TntjdXJzb3I6ZGVmYXVsdDtvcGFjaXR5Oi41fS5pdGVtLU1pMF90NXVOLmlzRGlzYWJsZWQtTWkwX3Q1dU4sLml0ZW0tTWkwX3Q1dU4uaXNEaXNhYmxlZC1NaTBfdDV1TjphY3RpdmV7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS10di1jb2xvci1wb3B1cC1iYWNrZ3JvdW5kLHZhcigtLWNvbG9yLXBvcHVwLWJhY2tncm91bmQpKTtjb2xvcjp2YXIoLS10di1jb2xvci1wb3B1cC1lbGVtZW50LXRleHQsdmFyKC0tY29sb3ItcG9wdXAtZWxlbWVudC10ZXh0KSl9QG1lZGlhIChhbnktaG92ZXI6aG92ZXIpey5pdGVtLU1pMF90NXVOLmlzRGlzYWJsZWQtTWkwX3Q1dU46aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS10di1jb2xvci1wb3B1cC1iYWNrZ3JvdW5kLHZhcigtLWNvbG9yLXBvcHVwLWJhY2tncm91bmQpKTtjb2xvcjp2YXIoLS10di1jb2xvci1wb3B1cC1lbGVtZW50LXRleHQsdmFyKC0tY29sb3ItcG9wdXAtZWxlbWVudC10ZXh0KSl9fS5pdGVtLU1pMF90NXVOLmlzQWN0aXZlLU1pMF90NXVOOmFmdGVye2JvcmRlci1jb2xvcjp2YXIoLS1jb2xvci1ib3JkZXItcHJpbWFyeS1pbnZlcnNlKX0uaXRlbS1NaTBfdDV1Ti5pc0FjdGl2ZS1NaTBfdDV1TiwuaXRlbS1NaTBfdDV1Ti5pc0FjdGl2ZS1NaTBfdDV1TjphY3RpdmV7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS10di1jb2xvci1wb3B1cC1lbGVtZW50LWJhY2tncm91bmQtYWN0aXZlLHZhcigtLWNvbG9yLWNvbnRhaW5lci1maWxsLXByaW1hcnktbmV1dHJhbC1leHRyYS1ib2xkKSk7Y29sb3I6dmFyKC0tdHYtY29sb3ItcG9wdXAtZWxlbWVudC10ZXh0LWFjdGl2ZSx2YXIoLS1jb2xvci1jb250ZW50LXByaW1hcnktaW52ZXJzZSkpfUBtZWRpYSAoYW55LWhvdmVyOmhvdmVyKXsuaXRlbS1NaTBfdDV1Ti5pc0FjdGl2ZS1NaTBfdDV1Tjpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXR2LWNvbG9yLXBvcHVwLWVsZW1lbnQtYmFja2dyb3VuZC1hY3RpdmUsdmFyKC0tY29sb3ItY29udGFpbmVyLWZpbGwtcHJpbWFyeS1uZXV0cmFsLWV4dHJhLWJvbGQpKTtjb2xvcjp2YXIoLS10di1jb2xvci1wb3B1cC1lbGVtZW50LXRleHQtYWN0aXZlLHZhcigtLWNvbG9yLWNvbnRlbnQtcHJpbWFyeS1pbnZlcnNlKSl9fS5pdGVtLU1pMF90NXVOLmlzQWN0aXZlLU1pMF90NXVOIC5zaG9ydGN1dC1NaTBfdDV1TiwuaXRlbS1NaTBfdDV1Ti5pc0FjdGl2ZS1NaTBfdDV1TjphY3RpdmUgLnNob3J0Y3V0LU1pMF90NXVOe2NvbG9yOnZhcigtLWNvbG9yLWNvbnRlbnQtc2Vjb25kYXJ5LWludmVyc2UpfUBtZWRpYSAoYW55LWhvdmVyOmhvdmVyKXsuaXRlbS1NaTBfdDV1Ti5pc0FjdGl2ZS1NaTBfdDV1Tjpob3ZlciAuc2hvcnRjdXQtTWkwX3Q1dU57Y29sb3I6dmFyKC0tY29sb3ItY29udGVudC1zZWNvbmRhcnktaW52ZXJzZSl9fS5pdGVtLU1pMF90NXVOLmlzQWN0aXZlLU1pMF90NXVOIC50b29sYm94LU1pMF90NXVOLnRvb2xib3gtTWkwX3Q1dU4sLml0ZW0tTWkwX3Q1dU4uaXNBY3RpdmUtTWkwX3Q1dU46YWN0aXZlIC50b29sYm94LU1pMF90NXVOLnRvb2xib3gtTWkwX3Q1dU57Y29sb3I6dmFyKC0tY29sb3ItY29udGVudC1zZWNvbmRhcnktaW52ZXJzZSl9QG1lZGlhIChhbnktaG92ZXI6aG92ZXIpey5pdGVtLU1pMF90NXVOLmlzQWN0aXZlLU1pMF90NXVOOmhvdmVyIC50b29sYm94LU1pMF90NXVOLnRvb2xib3gtTWkwX3Q1dU57Y29sb3I6dmFyKC0tY29sb3ItY29udGVudC1zZWNvbmRhcnktaW52ZXJzZSl9fS5pdGVtLU1pMF90NXVOOmJlZm9yZXtjb250ZW50OiIgIjtkaXNwbGF5OmJsb2NrO2hlaWdodDoyOHB4fS53aXRoSWNvbi1NaTBfdDV1TntwYWRkaW5nLWJvdHRvbTo2cHg7cGFkZGluZy10b3A6NnB4fS5yb3VuZC1pY29uLU1pMF90NXVOe2JvcmRlci1yYWRpdXM6NTAlO292ZXJmbG93OmhpZGRlbn0uaWNvbi1NaTBfdDV1Tiwuc3RhcnRTbG90LU1pMF90NXVOe2FsaWduLWl0ZW1zOmNlbnRlcjtkaXNwbGF5OmZsZXg7ZmxleC1zaHJpbms6MDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO21hcmdpbi1pbmxpbmUtZW5kOjZweDttYXgtaGVpZ2h0OjI4cHg7bWF4LXdpZHRoOjI4cHh9Lmljb24tTWkwX3Q1dU4gc3Zne2Rpc3BsYXk6YmxvY2t9LmxhYmVsUm93LU1pMF90NXVOe2FsaWduLWl0ZW1zOmJhc2VsaW5lO2JveC1zaXppbmc6Ym9yZGVyLWJveDtkaXNwbGF5OmZsZXg7ZmxleDowIDEgMTAwJTtmbGV4LWRpcmVjdGlvbjpyb3c7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47bWF4LXdpZHRoOjEwMCU7bWluLXdpZHRoOjA7cGFkZGluZy1pbmxpbmUtZW5kOjEycHh9LmxhYmVsUm93LU1pMF90NXVOOmZpcnN0LWNoaWxke3BhZGRpbmctaW5saW5lLXN0YXJ0OjRweH0ubGFiZWxSb3ctTWkwX3Q1dU46bGFzdC1jaGlsZHtwYWRkaW5nLWlubGluZS1lbmQ6NHB4fS5sYWJlbC1NaTBfdDV1TntkaXNwbGF5OmZsZXg7ZmxleDowIDAgYXV0bzttYXgtd2lkdGg6MTAwJTtvdmVyZmxvdzpoaWRkZW59LnNob3J0Y3V0LU1pMF90NXVOe2ZvbnQtc2l6ZToxMnB4O21hcmdpbi1pbmxpbmUtZW5kOjVweDttYXJnaW4taW5saW5lLXN0YXJ0OjU4cHg7dGV4dC1hbGlnbjplbmR9Lml0ZW0tTWkwX3Q1dU4uaXRlbS1NaTBfdDV1Tjpub3QoLmlzQWN0aXZlLU1pMF90NXVOKSAuc2hvcnRjdXQtTWkwX3Q1dU57Y29sb3I6dmFyKC0tdHYtY29sb3ItcG9wdXAtZWxlbWVudC1oaW50LXRleHQsdmFyKC0tY29sb3ItY29udGVudC1wcmltYXJ5LW5ldXRyYWwpKX0uaXRlbS1NaTBfdDV1Ti5pdGVtLU1pMF90NXVOLmlzQWN0aXZlLU1pMF90NXVOIC5zaG9ydGN1dC1NaTBfdDV1Tntjb2xvcjp2YXIoLS10di1jb2xvci1wb3B1cC1lbGVtZW50LWhpbnQtdGV4dCx2YXIoLS1jb2xvci1jb250ZW50LXNlY29uZGFyeS1pbnZlcnNlKSl9LnRvb2xib3gtTWkwX3Q1dU57YWxpZ24taXRlbXM6Y2VudGVyO2NvbG9yOnZhcigtLWNvbG9yLWRlZmF1bHQtZ3JheSk7ZGlzcGxheTpmbGV4O3Bvc2l0aW9uOnJlbGF0aXZlfS5mZWF0dXJlLW5vLXRvdWNoIC50b29sYm94LU1pMF90NXVOLnNob3dPbkhvdmVyLU1pMF90NXVOe29wYWNpdHk6MH0udG9vbGJveC1NaTBfdDV1Tj46bm90KDpsYXN0LWNoaWxkKXttYXJnaW4taW5saW5lLWVuZDo0cHh9QG1lZGlhIChtYXgtd2lkdGg6NDQwcHgpey50b29sYm94LU1pMF90NXVOPjpub3QoOmxhc3QtY2hpbGQpe21hcmdpbi1pbmxpbmUtZW5kOjhweH19LmRpc2Nsb3N1cmUtaXRlbS1jaXJjbGUtbG9nby1NaTBfdDV1TntmbGV4LXNocmluazowO21hcmdpbi1pbmxpbmUtZW5kOjZweH0uZmVhdHVyZS1uby10b3VjaCAuaXRlbS1NaTBfdDV1Tjpmb2N1cy12aXNpYmxlIC50b29sYm94LU1pMF90NXVOLnNob3dPbkZvY3VzLU1pMF90NXVOe29wYWNpdHk6MX1AbWVkaWEgKGFueS1ob3Zlcjpob3Zlcil7LmZlYXR1cmUtbm8tdG91Y2ggLml0ZW0tTWkwX3Q1dU46aG92ZXIgLnRvb2xib3gtTWkwX3Q1dU4uc2hvd09uSG92ZXItTWkwX3Q1dU57b3BhY2l0eToxfX0uZmVhdHVyZS1uby10b3VjaCAuaXRlbS1NaTBfdDV1TjpoYXMoOmZvY3VzLXZpc2libGUpIC50b29sYm94LU1pMF90NXVOLnNob3dPbkZvY3VzLU1pMF90NXVOe29wYWNpdHk6MX0="}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/94232.ab6731b698a8c2854a90.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:13.741Z","timestamp":1785148033741,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/94232.ab6731b698a8c2854a90.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:13 GMT\r\ncontent-type: text/css; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a58ab11-740\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Thu, 16 Jul 2026 09:57:37 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/16/2026 11:03:21\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 6139dfc3af5b147136e687b92ed93ed8\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":1856,"size_decoded":1343,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with very long lines (1856), with no line terminators","md5":"99c169cccd9c810bfd0d3e50e053d9dd","sha1":"f7c962c5226ce8518e23fcd82bbd02e44b3cd8ba","sha256":"ba11ca3b195a5ed5130a9fdfe05087f5b075dbec6ddff0fbc0ee82ef8a378a37","sha512":"02bba56d2baac91f2618fc15e25d5eb7e986a57c956cd280f3ff695e4d215d29c10a2730d07a71b393c7da7e62a644bc9d417c3aef3b60af475b9f6330a25d50","ssdeep":"","tlshash":"0331f104a050d9f5e212d7788e5dbb7820d13b22ca613da7fe53de0ed086be5e122f24","first_seen":"2026-07-16T20:48:56.389736Z","last_seen":"2026-07-27T12:53:42.682153Z","times_seen":425,"resource_available":false,"data":"LmxvYWRlci1NZ2Y4RUZ3S3tib3R0b206MDtmb250LXNpemU6MDtoZWlnaHQ6MTAwJTtpbnNldC1pbmxpbmUtZW5kOjA7aW5zZXQtaW5saW5lLXN0YXJ0OjA7bWFyZ2luOjAgYXV0bztvcGFjaXR5OjE7cG9zaXRpb246YWJzb2x1dGU7dGV4dC1hbGlnbjpjZW50ZXI7dG9wOjA7dHJhbnNpdGlvbjpvcGFjaXR5IC4zNXMgZWFzZTt3aGl0ZS1zcGFjZTpub3dyYXB9LmxvYWRlci1NZ2Y4RUZ3Sy5zdGF0aWMtTWdmOEVGd0t7ZGlzcGxheTpibG9jaztwb3NpdGlvbjpzdGF0aWN9LmxvYWRlci1NZ2Y4RUZ3SzphZnRlcntjb250ZW50OiIgIjtkaXNwbGF5OmlubGluZS1ibG9jaztoZWlnaHQ6MTAwJTt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9LmxvYWRlci1NZ2Y4RUZ3SyAuaXRlbS1NZ2Y4RUZ3S3tib3JkZXItcmFkaXVzOjEwMCU7ZGlzcGxheTppbmxpbmUtYmxvY2s7b3BhY2l0eToxO3ZlcnRpY2FsLWFsaWduOm1pZGRsZTstLXVpLWxpYi1sb2FkZXItY29sb3ItZGVmYXVsdDpjdXJyZW50Q29sb3I7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS11aS1saWItbG9hZGVyLWNvbG9yLHZhcigtLXVpLWxpYi1sb2FkZXItY29sb3ItZGVmYXVsdCkpfUBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjpuby1wcmVmZXJlbmNlKXsubG9hZGVyLU1nZjhFRndLIC5pdGVtLU1nZjhFRndLOmZpcnN0LWNoaWxke2FuaW1hdGlvbjp0di1idXR0b24tbG9hZGVyLU1nZjhFRndLIDFzIGluZmluaXRlO2FuaW1hdGlvbi1kZWxheTouMXN9LmxvYWRlci1NZ2Y4RUZ3SyAuaXRlbS1NZ2Y4RUZ3SzpudGgtY2hpbGQoMil7YW5pbWF0aW9uOnR2LWJ1dHRvbi1sb2FkZXItTWdmOEVGd0sgMXMgaW5maW5pdGU7YW5pbWF0aW9uLWRlbGF5Oi4zc30ubG9hZGVyLU1nZjhFRndLIC5pdGVtLU1nZjhFRndLOm50aC1jaGlsZCgzKXthbmltYXRpb246dHYtYnV0dG9uLWxvYWRlci1NZ2Y4RUZ3SyAxcyBlYXNlIGluZmluaXRlO2FuaW1hdGlvbi1kZWxheTouNDVzfX0ubG9hZGVyLU1nZjhFRndLIC5pdGVtLU1nZjhFRndLLC5sb2FkZXItTWdmOEVGd0sgLml0ZW0tTWdmOEVGd0subWVkaXVtLU1nZjhFRndLe2hlaWdodDo2cHg7d2lkdGg6NnB4fS5sb2FkZXItTWdmOEVGd0sgLml0ZW0tTWdmOEVGd0subWVkaXVtLU1nZjhFRndLOm5vdCg6bGFzdC1jaGlsZCksLmxvYWRlci1NZ2Y4RUZ3SyAuaXRlbS1NZ2Y4RUZ3Szpub3QoOmxhc3QtY2hpbGQpe21hcmdpbi1pbmxpbmUtZW5kOjRweH0ubG9hZGVyLU1nZjhFRndLIC5pdGVtLU1nZjhFRndLLnNtYWxsLU1nZjhFRndLe2hlaWdodDo0cHg7d2lkdGg6NHB4fS5sb2FkZXItTWdmOEVGd0sgLml0ZW0tTWdmOEVGd0suc21hbGwtTWdmOEVGd0s6bm90KDpsYXN0LWNoaWxkKXttYXJnaW4taW5saW5lLWVuZDozcHh9LmxvYWRlci1NZ2Y4RUZ3SyAuaXRlbS1NZ2Y4RUZ3Sy5ibGFjay1NZ2Y4RUZ3S3stLXVpLWxpYi1sb2FkZXItY29sb3ItZGVmYXVsdDp2YXIoLS1jb2xvci1kZWZhdWx0LWdyYXkpfS5sb2FkZXItTWdmOEVGd0sgLml0ZW0tTWdmOEVGd0sud2hpdGUtTWdmOEVGd0t7LS11aS1saWItbG9hZGVyLWNvbG9yLWRlZmF1bHQ6dmFyKC0tY29sb3Itd2hpdGUpfS5sb2FkZXItTWdmOEVGd0sgLml0ZW0tTWdmOEVGd0suZ3JheS1NZ2Y4RUZ3S3stLXVpLWxpYi1sb2FkZXItY29sb3ItZGVmYXVsdDp2YXIoLS1jb2xvci1jb2xkLWdyYXktMzAwKX0ubG9hZGVyLU1nZjhFRndLIC5pdGVtLU1nZjhFRndLLnByaW1hcnktTWdmOEVGd0t7LS11aS1saWItbG9hZGVyLWNvbG9yLWRlZmF1bHQ6dmFyKC0tY29sb3ItdGV4dC1wcmltYXJ5KX1Aa2V5ZnJhbWVzIHR2LWJ1dHRvbi1sb2FkZXItTWdmOEVGd0t7MCUsdG97b3BhY2l0eToxfTYwJXtvcGFjaXR5Oi40fTMwJXtvcGFjaXR5Oi4yfX0="}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/32816.355d75b21ae4b534a849.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:13.891Z","timestamp":1785148033891,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/32816.355d75b21ae4b534a849.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:13 GMT\r\ncontent-type: text/css; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a58ab11-102a\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Thu, 16 Jul 2026 09:57:37 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/16/2026 11:03:21\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 03ee3c912a580aa8c8d1a9369dece691\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":4138,"size_decoded":1890,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with very long lines (4138), with no line terminators","md5":"1769fde9875fdbb634439ca894f9dbe9","sha1":"44ac405e2cfa40ef07cbca4bf97d2226e51258d3","sha256":"8b2250108bfd0dcb2848b28cd1bf2fec55df68d3105b3bf87664cfd86cf2ff10","sha512":"b537406a03c65c8c9859d1e4cb17c37e062cc846b9e763763bbbfa0670ed74ffd1a3f571e5e7654a7b809c6810990a95babd6183fced394492ae1095b4193bcf","ssdeep":"48:D+GIP+GI2LrVLjVQqpz5Cw83JJMeFtQSphXivmRE0r/VC5WNHC5mNVd:DaRLBLpQqpVv0JKOTphXiuREIVweHwmZ","tlshash":"f5814858835c4dafbb2647826762fc582164e3feb2324b6c534924fd46b4d6d39332c5","first_seen":"2026-07-16T11:36:17.974176Z","last_seen":"2026-07-27T13:00:41.427183Z","times_seen":1739,"resource_available":false,"data":"W2RhdGEtdGhlbWU9bGlnaHRdey0tXzAtODRvdDp2YXIoLS1jb2xvci1jb2xkLWdyYXktMTUwKX1bZGF0YS10aGVtZT1kYXJrXXstLV8wLTg0b3Q6dmFyKC0tY29sb3ItY29sZC1ncmF5LTgwMCl9LnBhaXIteHdHc1NYUjB7ZGlzcGxheTppbmxpbmUtYmxvY2s7cG9zaXRpb246cmVsYXRpdmV9LnBhaXIteHdHc1NYUjAueHhjZXB0aW9uYWxseXNtYWxsZG9ub3R1c2VicnYxMDIzLXh3R3NTWFIwe2hlaWdodDoxNHB4O3dpZHRoOjE0cHh9LnBhaXIteHdHc1NYUjAueHh4eHNtYWxsLXh3R3NTWFIwe2hlaWdodDoyMHB4O3dpZHRoOjIwcHh9LnBhaXIteHdHc1NYUjAueHh4c21hbGwteHdHc1NYUjB7aGVpZ2h0OjE4cHg7d2lkdGg6MThweH0ucGFpci14d0dzU1hSMC54eHNtYWxsLXh3R3NTWFIwe2hlaWdodDoyMHB4O3dpZHRoOjIwcHh9LnBhaXIteHdHc1NYUjAueHNtYWxsLXh3R3NTWFIwe2hlaWdodDoyNHB4O3dpZHRoOjI0cHh9LnBhaXIteHdHc1NYUjAuc21hbGwteHdHc1NYUjB7aGVpZ2h0OjI4cHg7d2lkdGg6MjhweH0ucGFpci14d0dzU1hSMC5tZWRpdW0teHdHc1NYUjB7aGVpZ2h0OjM2cHg7d2lkdGg6MzZweH0ucGFpci14d0dzU1hSMC5sYXJnZS14d0dzU1hSMHtoZWlnaHQ6NDhweDt3aWR0aDo0OHB4fS5wYWlyLXh3R3NTWFIwLnhsYXJnZS14d0dzU1hSMHtoZWlnaHQ6NTZweDt3aWR0aDo1NnB4fS5wYWlyLXh3R3NTWFIwLnh4bGFyZ2UteHdHc1NYUjB7aGVpZ2h0OjExMnB4O3dpZHRoOjExMnB4fS5wYWlyLXh3R3NTWFIwLnh4eGxhcmdlLXh3R3NTWFIwe2hlaWdodDoxNjhweDt3aWR0aDoxNjhweH0ucGFpci14d0dzU1hSMC54eHh4c21hbGwteHdHc1NYUjB7aGVpZ2h0OjEycHh9LnBhaXIteHdHc1NYUjAueHhjZXB0aW9uYWxseXNtYWxsZG9ub3R1c2VicnYxMDIzLXh3R3NTWFIwe2hlaWdodDo4cHh9LmxvZ28teHdHc1NYUjB7Ym9yZGVyLXJhZGl1czo1MCV9LmxvZ28teHdHc1NYUjA6bm90KGltZyl7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1fMC04NG90KX0ubG9nby14d0dzU1hSMDpmaXJzdC1jaGlsZCwubG9nby14d0dzU1hSMDpsYXN0LWNoaWxke3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjA7dG9wOjB9LmxvZ28teHdHc1NYUjAueHhjZXB0aW9uYWxseXNtYWxsZG9ub3R1c2VicnYxMDIzLXh3R3NTWFIwe2hlaWdodDo4cHg7d2lkdGg6OHB4fS5sb2dvLXh3R3NTWFIwLnh4Y2VwdGlvbmFsbHlzbWFsbGRvbm90dXNlYnJ2MTAyMy14d0dzU1hSMDpsYXN0LWNoaWxke3RyYW5zZm9ybTp0cmFuc2xhdGUoLTZweCl9LmxvZ28teHdHc1NYUjAueHh4eHNtYWxsLXh3R3NTWFIwe2hlaWdodDoxMnB4O3dpZHRoOjEycHh9LmxvZ28teHdHc1NYUjAueHh4eHNtYWxsLXh3R3NTWFIwOmxhc3QtY2hpbGR7dHJhbnNmb3JtOnRyYW5zbGF0ZSgtOHB4KX0ubG9nby14d0dzU1hSMC54eHhzbWFsbC14d0dzU1hSMHtoZWlnaHQ6MTJweDt3aWR0aDoxMnB4fS5sb2dvLXh3R3NTWFIwLnh4eHNtYWxsLXh3R3NTWFIwOmxhc3QtY2hpbGR7dHJhbnNmb3JtOnRyYW5zbGF0ZSgtNnB4LDZweCl9LmxvZ28teHdHc1NYUjAueHhzbWFsbC14d0dzU1hSMHtoZWlnaHQ6MTJweDt3aWR0aDoxMnB4fS5sb2dvLXh3R3NTWFIwLnh4c21hbGwteHdHc1NYUjA6bGFzdC1jaGlsZHt0cmFuc2Zvcm06dHJhbnNsYXRlKC04cHgsOHB4KX0ubG9nby14d0dzU1hSMC54c21hbGwteHdHc1NYUjB7aGVpZ2h0OjE2cHg7d2lkdGg6MTZweH0ubG9nby14d0dzU1hSMC54c21hbGwteHdHc1NYUjA6bGFzdC1jaGlsZHt0cmFuc2Zvcm06dHJhbnNsYXRlKC04cHgsOHB4KX0ubG9nby14d0dzU1hSMC5zbWFsbC14d0dzU1hSMHtoZWlnaHQ6MThweDt3aWR0aDoxOHB4fS5sb2dvLXh3R3NTWFIwLnNtYWxsLXh3R3NTWFIwOmxhc3QtY2hpbGR7dHJhbnNmb3JtOnRyYW5zbGF0ZSgtMTBweCwxMHB4KX0ubG9nby14d0dzU1hSMC5tZWRpdW0teHdHc1NYUjB7aGVpZ2h0OjI0cHg7d2lkdGg6MjRweH0ubG9nby14d0dzU1hSMC5tZWRpdW0teHdHc1NYUjA6bGFzdC1jaGlsZHt0cmFuc2Zvcm06dHJhbnNsYXRlKC0xMnB4LDEycHgpfS5sb2dvLXh3R3NTWFIwLmxhcmdlLXh3R3NTWFIwe2hlaWdodDozMnB4O3dpZHRoOjMycHh9LmxvZ28teHdHc1NYUjAubGFyZ2UteHdHc1NYUjA6bGFzdC1jaGlsZHt0cmFuc2Zvcm06dHJhbnNsYXRlKC0xNnB4LDE2cHgpfS5sb2dvLXh3R3NTWFIwLnhsYXJnZS14d0dzU1hSMHtoZWlnaHQ6MzhweDt3aWR0aDozOHB4fS5sb2dvLXh3R3NTWFIwLnhsYXJnZS14d0dzU1hSMDpsYXN0LWNoaWxke3RyYW5zZm9ybTp0cmFuc2xhdGUoLTE4cHgsMThweCl9LmxvZ28teHdHc1NYUjAueHhsYXJnZS14d0dzU1hSMHtoZWlnaHQ6NzZweDt3aWR0aDo3NnB4fS5sb2dvLXh3R3NTWFIwLnh4bGFyZ2UteHdHc1NYUjA6bGFzdC1jaGlsZHt0cmFuc2Zvcm06dHJhbnNsYXRlKC0zNnB4LDM2cHgpfS5sb2dvLXh3R3NTWFIwLnh4eGxhcmdlLXh3R3NTWFIwe2hlaWdodDoxMTRweDt3aWR0aDoxMTRweH0ubG9nby14d0dzU1hSMC54eHhsYXJnZS14d0dzU1hSMDpsYXN0LWNoaWxke3RyYW5zZm9ybTp0cmFuc2xhdGUoLTU0cHgsNTRweCl9LmxvZ28teHdHc1NYUjAueHhjZXB0aW9uYWxseXNtYWxsZG9ub3R1c2VicnYxMDIzLXh3R3NTWFIwOmxhc3QtY2hpbGR7b3V0bGluZToxcHggc29saWQgdmFyKC0tdWktbGliLWJhZGdlLWFjdHVhbC1iYWNrZ3JvdW5kKX0ubG9nby14d0dzU1hSMC54eHh4c21hbGwteHdHc1NYUjA6Zmlyc3QtY2hpbGR7Y2xpcC1wYXRoOnBhdGgoIk0zLjc0ODgyIDExLjU2MzRDNS4xNDIzOSAxMC4xMjM2IDYgOC4xNjE5OCA2IDZDNiAzLjgzODAyIDUuMTQyMzkgMS44NzYzNSAzLjc0ODgyIDAuNDM2NjE3QzQuNDQzOTYgMC4xNTUwNTYgNS4yMDM4NyAtNS45NDEzNmUtMDcgNiAtNS4yNDUzN2UtMDdDOS4zMTM3MSAtMi4zNDg0M2UtMDcgMTIgMi42ODYyOSAxMiA2QzEyIDkuMzEzNzEgOS4zMTM3MSAxMiA2IDEyQzUuMjAzODcgMTIgNC40NDM5NiAxMS44NDQ5IDMuNzQ4ODIgMTEuNTYzNFoiKX0ubG9nby14d0dzU1hSMC54eHhzbWFsbC14d0dzU1hSMDpmaXJzdC1jaGlsZHtjbGlwLXBhdGg6cGF0aCgiTTEyIDBIMHY0YTggOCAwIDAgMSA4IDhoNFYwWiIpfS5sb2dvLXh3R3NTWFIwLnh4c21hbGwteHdHc1NYUjA6Zmlyc3QtY2hpbGR7Y2xpcC1wYXRoOnBhdGgoIk0xMiAwSDB2Ni4yNTRBOCA4IDAgMCAxIDUuNzQ2IDEySDEyWiIpfS5sb2dvLXh3R3NTWFIwLnhzbWFsbC14d0dzU1hSMDpmaXJzdC1jaGlsZHtjbGlwLXBhdGg6cGF0aCgiTTE2IDhBOCA4IDAgMCAwIC4zIDZhMTAgMTAgMCAwIDEgOS43IDkuN0E4IDggMCAwIDAgMTYgOFoiKX0ubG9nby14d0dzU1hSMC5zbWFsbC14d0dzU1hSMDpmaXJzdC1jaGlsZHtjbGlwLXBhdGg6cGF0aCgiTTE4IDBIMHY4LjA0QTExIDExIDAgMCAxIDkuOTYgMThIMThWMFoiKX0ubG9nby14d0dzU1hSMC5tZWRpdW0teHdHc1NYUjA6Zmlyc3QtY2hpbGR7Y2xpcC1wYXRoOnBhdGgoIk0yNCAwSDB2MTBjOCAwIDE0IDYgMTQgMTRoMTBWMFoiKX0ubG9nby14d0dzU1hSMC5sYXJnZS14d0dzU1hSMDpmaXJzdC1jaGlsZHtjbGlwLXBhdGg6cGF0aCgiTTMyIDBIMHYxNGExOCAxOCAwIDAgMSAxOCAxOGgxNFYwWiIpfS5sb2dvLXh3R3NTWFIwLnhsYXJnZS14d0dzU1hSMDpmaXJzdC1jaGlsZHtjbGlwLXBhdGg6cGF0aCgiTTM4IDBIMHYxNi4wMkwxIDE2YTIxIDIxIDAgMCAxIDIwLjk4IDIySDM4VjBaIil9LmxvZ28teHdHc1NYUjAueHhsYXJnZS14d0dzU1hSMDpmaXJzdC1jaGlsZHtjbGlwLXBhdGg6cGF0aCgiTTc2IDBIMHYzMi4wNUE0MiA0MiAwIDAgMSA0My45NSA3Nkg3NlYwWiIpfS5sb2dvLXh3R3NTWFIwLnh4eGxhcmdlLXh3R3NTWFIwOmZpcnN0LWNoaWxke2NsaXAtcGF0aDpwYXRoKCJNMTEzIDBIMFY0OGMzNS0xIDY2IDI2IDY2IDY2djBoNDhWMFoiKX0uc2tlbGV0b24teHdHc1NYUjB7YmFja2dyb3VuZC1jb2xvcjpjdXJyZW50Q29sb3J9LmVtcHR5LXh3R3NTWFIwe2JhY2tncm91bmQtaW1hZ2U6dXJsKGVtcHR5LWNvaW4tbGlnaHQuNmQwYjczMWFjNmY0ODlmMDZlNjUuc3ZnKTtiYWNrZ3JvdW5kLXNpemU6Y29udGFpbn1odG1sLnRoZW1lLWRhcmsgLmVtcHR5LXh3R3NTWFIwe2JhY2tncm91bmQtaW1hZ2U6dXJsKGVtcHR5LWNvaW4tZGFyay5kNmQwN2JmZjkyZDdlNGRmZjVhZC5zdmcpfQ=="}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/9744.70b5126495f7adccaf2f.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.526Z","timestamp":1785148034526,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/9744.70b5126495f7adccaf2f.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\ncontent-type: text/css; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a58ab11-24e5\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Thu, 16 Jul 2026 09:57:37 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/16/2026 11:03:22\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 6fe28440d142306242d2135e45bd7e1d\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":9445,"size_decoded":2374,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with very long lines (9445), with no line terminators","md5":"e85054f61b2aae19eb5655a8b5753ccf","sha1":"adb2ce277cc485f09be120c0ae884d4b9154b140","sha256":"d7a8f00301eac644b8cac4b8ea7b0b04dbacddbc688774477d9e983a3557804a","sha512":"8e005752074215525bc16172bb9fcaf43c941243421c2f5189315000b76070bd45d1c97eaab71581d488e40e5871ea500899ad0811f59a24b82200d206d31161","ssdeep":"192:eYck2zebkPJJYrCkF9oCNkElJuBqr3i7h:aBJCrT9oIlJuBqji7h","tlshash":"0412cceb77506c7cb92b753a1b2c61e11bc09d3dba12efb7fe395c2901c27121099626","first_seen":"2026-07-19T21:33:33.835152Z","last_seen":"2026-07-27T12:48:39.77979Z","times_seen":57,"resource_available":false,"data":"LnJvdW5kVGFiQnV0dG9uLVdhNlRtR04ze2FsaWduLWl0ZW1zOmNlbnRlcjtib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLXdpZHRoOjFweDtib3gtc2l6aW5nOmJvcmRlci1ib3g7Y3Vyc29yOmRlZmF1bHQ7ZGlzcGxheTppbmxpbmUtZmxleDtmbGV4OjAgMCBhdXRvO2p1c3RpZnktY29udGVudDpjZW50ZXI7bWF4LXdpZHRoOjEwMCU7LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOnRyYW5zcGFyZW50O2JhY2tncm91bmQtY29sb3I6dmFyKC0tdWktbGliLXJvdW5kVGFiLWNvbG9yLWJnLHZhcigtLXVpLWxpYi1yb3VuZFRhYi1kZWZhdWx0LWNvbG9yLWJnKSk7Ym9yZGVyLWNvbG9yOnZhcigtLXVpLWxpYi1yb3VuZFRhYi1jb2xvci1ib3JkZXIsdmFyKC0tdWktbGliLXJvdW5kVGFiLWRlZmF1bHQtY29sb3ItYm9yZGVyKSk7Y29sb3I6dmFyKC0tdWktbGliLXJvdW5kVGFiLWNvbG9yLWNvbnRlbnQsdmFyKC0tdWktbGliLXJvdW5kVGFiLWRlZmF1bHQtY29sb3ItY29udGVudCkpO291dGxpbmU6bm9uZTtvdmVyZmxvdzp2aXNpYmxlO3Bvc2l0aW9uOnJlbGF0aXZlOy13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTt1c2VyLXNlbGVjdDpub25lfS5yb3VuZFRhYkJ1dHRvbi1XYTZUbUdOMzpmb2N1c3tvdXRsaW5lOm5vbmV9LnJvdW5kVGFiQnV0dG9uLVdhNlRtR04zOmZvY3VzLXZpc2libGV7b3V0bGluZTpub25lfS5yb3VuZFRhYkJ1dHRvbi1XYTZUbUdOMzphZnRlcntib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLXdpZHRoOjJweDtib3gtc2l6aW5nOmJvcmRlci1ib3g7Y29udGVudDoiIjtkaXNwbGF5Om5vbmU7aGVpZ2h0OmNhbGMoMTAwJSArIDEwcHgpO2luc2V0LWlubGluZS1zdGFydDotNXB4O3BvaW50ZXItZXZlbnRzOm5vbmU7cG9zaXRpb246YWJzb2x1dGU7dG9wOi01cHg7d2lkdGg6Y2FsYygxMDAlICsgMTBweCk7ei1pbmRleDoxfS5yb3VuZFRhYkJ1dHRvbi1XYTZUbUdOMzpmb2N1czphZnRlcntkaXNwbGF5OmJsb2NrfS5yb3VuZFRhYkJ1dHRvbi1XYTZUbUdOMzpmb2N1cy12aXNpYmxlOmFmdGVye2Rpc3BsYXk6YmxvY2t9LnJvdW5kVGFiQnV0dG9uLVdhNlRtR04zOmZvY3VzOm5vdCg6Zm9jdXMtdmlzaWJsZSk6YWZ0ZXJ7ZGlzcGxheTpub25lfS5yb3VuZFRhYkJ1dHRvbi1XYTZUbUdOMzphZnRlcntib3JkZXItY29sb3I6dmFyKC0tY29sb3ItZm9jdXMtb3V0bGluZS1jb2xvci1ibHVlKX0ucm91bmRUYWJCdXR0b24tV2E2VG1HTjMuZGlzYWJsZUZvY3VzT3V0bGluZS1XYTZUbUdOMzphZnRlcntkaXNwbGF5Om5vbmV9LnJvdW5kVGFiQnV0dG9uLVdhNlRtR04zLmVuYWJsZUN1cnNvclBvaW50ZXItV2E2VG1HTjN7Y3Vyc29yOnBvaW50ZXJ9LnJvdW5kVGFiQnV0dG9uLVdhNlRtR04zOm5vdCg6Zmlyc3QtY2hpbGQpe21hcmdpbi1pbmxpbmUtc3RhcnQ6dmFyKC0tdWktbGliLXJvdW5kVGFiLW1hcmdpbil9LnJvdW5kVGFiQnV0dG9uLVdhNlRtR04zLmxhcmdlLVdhNlRtR04ze2JvcmRlci1yYWRpdXM6MjRweDtoZWlnaHQ6NDhweDtwYWRkaW5nOjAgMjNweH0ucm91bmRUYWJCdXR0b24tV2E2VG1HTjMubGFyZ2UtV2E2VG1HTjM6YWZ0ZXJ7Ym9yZGVyLXJhZGl1czoyOHB4fS5yb3VuZFRhYkJ1dHRvbi1XYTZUbUdOMy5sYXJnZS1XYTZUbUdOMy5pY29uT25seS1XYTZUbUdOMywucm91bmRUYWJCdXR0b24tV2E2VG1HTjMubGFyZ2UtV2E2VG1HTjMud2l0aFN0YXJ0SWNvbi1XYTZUbUdOM3twYWRkaW5nLWlubGluZS1zdGFydDoxNXB4fS5yb3VuZFRhYkJ1dHRvbi1XYTZUbUdOMy5sYXJnZS1XYTZUbUdOMy5pY29uT25seS1XYTZUbUdOMywucm91bmRUYWJCdXR0b24tV2E2VG1HTjMubGFyZ2UtV2E2VG1HTjMud2l0aEVuZEljb24tV2E2VG1HTjN7cGFkZGluZy1pbmxpbmUtZW5kOjE1cHh9LnJvdW5kVGFiQnV0dG9uLVdhNlRtR04zLmxhcmdlLVdhNlRtR04zOm5vdCguaWNvbk9ubHktV2E2VG1HTjMpIC5zdGFydEljb25XcmFwLVdhNlRtR04ze21hcmdpbi1pbmxpbmUtZW5kOjRweH0ucm91bmRUYWJCdXR0b24tV2E2VG1HTjMubGFyZ2UtV2E2VG1HTjMgLmVuZEljb25XcmFwLVdhNlRtR04ze21hcmdpbi1pbmxpbmUtc3RhcnQ6NHB4fS5yb3VuZFRhYkJ1dHRvbi1XYTZUbUdOMy5zbWFsbC1XYTZUbUdOM3tib3JkZXItcmFkaXVzOjE3cHg7aGVpZ2h0OjM0cHg7cGFkZGluZzowIDE1cHh9LnJvdW5kVGFiQnV0dG9uLVdhNlRtR04zLnNtYWxsLVdhNlRtR04zOmFmdGVye2JvcmRlci1yYWRpdXM6MjFweH0ucm91bmRUYWJCdXR0b24tV2E2VG1HTjMuc21hbGwtV2E2VG1HTjMuaWNvbk9ubHktV2E2VG1HTjMsLnJvdW5kVGFiQnV0dG9uLVdhNlRtR04zLnNtYWxsLVdhNlRtR04zLndpdGhTdGFydEljb24tV2E2VG1HTjN7cGFkZGluZy1pbmxpbmUtc3RhcnQ6MTFweH0ucm91bmRUYWJCdXR0b24tV2E2VG1HTjMuc21hbGwtV2E2VG1HTjMuaWNvbk9ubHktV2E2VG1HTjMsLnJvdW5kVGFiQnV0dG9uLVdhNlRtR04zLnNtYWxsLVdhNlRtR04zLndpdGhFbmRJY29uLVdhNlRtR04ze3BhZGRpbmctaW5saW5lLWVuZDoxMXB4fS5yb3VuZFRhYkJ1dHRvbi1XYTZUbUdOMy5zbWFsbC1XYTZUbUdOMzpub3QoLmljb25Pbmx5LVdhNlRtR04zKSAuc3RhcnRJY29uV3JhcC1XYTZUbUdOM3ttYXJnaW4taW5saW5lLWVuZDo0cHh9LnJvdW5kVGFiQnV0dG9uLVdhNlRtR04zLnNtYWxsLVdhNlRtR04zIC5lbmRJY29uV3JhcC1XYTZUbUdOM3ttYXJnaW4taW5saW5lLXN0YXJ0OjRweH0ucm91bmRUYWJCdXR0b24tV2E2VG1HTjMueHNtYWxsLVdhNlRtR04ze2JvcmRlci1yYWRpdXM6MTRweDtoZWlnaHQ6MjhweDtwYWRkaW5nOjAgMTFweH0ucm91bmRUYWJCdXR0b24tV2E2VG1HTjMueHNtYWxsLVdhNlRtR04zOmFmdGVye2JvcmRlci1yYWRpdXM6MThweH0ucm91bmRUYWJCdXR0b24tV2E2VG1HTjMueHNtYWxsLVdhNlRtR04zLmljb25Pbmx5LVdhNlRtR04zLC5yb3VuZFRhYkJ1dHRvbi1XYTZUbUdOMy54c21hbGwtV2E2VG1HTjMud2l0aFN0YXJ0SWNvbi1XYTZUbUdOM3twYWRkaW5nLWlubGluZS1zdGFydDo3cHh9LnJvdW5kVGFiQnV0dG9uLVdhNlRtR04zLnhzbWFsbC1XYTZUbUdOMy5pY29uT25seS1XYTZUbUdOMywucm91bmRUYWJCdXR0b24tV2E2VG1HTjMueHNtYWxsLVdhNlRtR04zLndpdGhFbmRJY29uLVdhNlRtR04ze3BhZGRpbmctaW5saW5lLWVuZDo3cHh9LnJvdW5kVGFiQnV0dG9uLVdhNlRtR04zLnhzbWFsbC1XYTZUbUdOMzpub3QoLmljb25Pbmx5LVdhNlRtR04zKSAuc3RhcnRJY29uV3JhcC1XYTZUbUdOM3ttYXJnaW4taW5saW5lLWVuZDo0cHh9LnJvdW5kVGFiQnV0dG9uLVdhNlRtR04zLnhzbWFsbC1XYTZUbUdOMyAuZW5kSWNvbldyYXAtV2E2VG1HTjN7bWFyZ2luLWlubGluZS1zdGFydDoycHh9LnJvdW5kVGFiQnV0dG9uLVdhNlRtR04zLmxhcmdlLVdhNlRtR04ze2ZvbnQtZmVhdHVyZS1zZXR0aW5nczoidG51bSIgb24sImxudW0iIG9uO2ZvbnQtc2l6ZTp2YXIoLS11aS1saWItdHlwb2dyYXBoeS1mb250LXNpemUpO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtd2VpZ2h0OjUwMH0ucm91bmRUYWJCdXR0b24tV2E2VG1HTjMubGFyZ2UtV2E2VG1HTjMsLnJvdW5kVGFiQnV0dG9uLVdhNlRtR04zLnNtYWxsLVdhNlRtR04ze2ZvbnQtZmFtaWx5Oi1hcHBsZS1zeXN0ZW0sQmxpbmtNYWNTeXN0ZW1Gb250LFRyZWJ1Y2hldCBNUyxSb2JvdG8sVWJ1bnR1LHNhbnMtc2VyaWY7LS11aS1saWItdHlwb2dyYXBoeS1mb250LXNpemU6MTZweDstLXVpLWxpYi10eXBvZ3JhcGh5LWxpbmUtaGVpZ2h0OjI0cHg7bGluZS1oZWlnaHQ6dmFyKC0tdWktbGliLXR5cG9ncmFwaHktbGluZS1oZWlnaHQpfS5yb3VuZFRhYkJ1dHRvbi1XYTZUbUdOMy5zbWFsbC1XYTZUbUdOM3tmb250LWZlYXR1cmUtc2V0dGluZ3M6InRudW0iIG9uLCJsbnVtIiBvbjtmb250LXNpemU6dmFyKC0tdWktbGliLXR5cG9ncmFwaHktZm9udC1zaXplKTtmb250LXN0eWxlOm5vcm1hbDtmb250LXdlaWdodDo0MDB9LnJvdW5kVGFiQnV0dG9uLVdhNlRtR04zLnhzbWFsbC1XYTZUbUdOM3tmb250LWZhbWlseTotYXBwbGUtc3lzdGVtLEJsaW5rTWFjU3lzdGVtRm9udCxUcmVidWNoZXQgTVMsUm9ib3RvLFVidW50dSxzYW5zLXNlcmlmO2ZvbnQtZmVhdHVyZS1zZXR0aW5nczoidG51bSIgb24sImxudW0iIG9uO2ZvbnQtc3R5bGU6bm9ybWFsOy0tdWktbGliLXR5cG9ncmFwaHktZm9udC1zaXplOjE0cHg7Zm9udC1zaXplOnZhcigtLXVpLWxpYi10eXBvZ3JhcGh5LWZvbnQtc2l6ZSk7Zm9udC13ZWlnaHQ6NDAwOy0tdWktbGliLXR5cG9ncmFwaHktbGluZS1oZWlnaHQ6MThweDtsaW5lLWhlaWdodDp2YXIoLS11aS1saWItdHlwb2dyYXBoeS1saW5lLWhlaWdodCl9LnJvdW5kVGFiQnV0dG9uLVdhNlRtR04zLnByaW1hcnktV2E2VG1HTjN7LS11aS1saWItcm91bmRUYWItZGVmYXVsdC1jb2xvci1iZzp2YXIoLS1jb2xvci1jb250YWluZXItZmlsbC1wcmltYXJ5LW5ldXRyYWwtZXh0cmEtbGlnaHQpOy0tdWktbGliLXJvdW5kVGFiLWRlZmF1bHQtY29sb3ItYm9yZGVyOnZhcigtLWNvbG9yLWNvbnRhaW5lci1maWxsLXByaW1hcnktbmV1dHJhbC1leHRyYS1saWdodCk7LS11aS1saWItcm91bmRUYWItZGVmYXVsdC1jb2xvci1jb250ZW50OnZhcigtLWNvbG9yLWNvbnRlbnQtcHJpbWFyeS1uZXV0cmFsLWJvbGQpfUBtZWRpYSAoYW55LWhvdmVyOmhvdmVyKXsucm91bmRUYWJCdXR0b24tV2E2VG1HTjMucHJpbWFyeS1XYTZUbUdOMzpob3Zlcjpub3QoLmRpc2FibGVkLVdhNlRtR04zKTpub3QoLnNlbGVjdGVkLVdhNlRtR04zKXstLXVpLWxpYi1yb3VuZFRhYi1kZWZhdWx0LWNvbG9yLWJnOnZhcigtLWNvbG9yLWNvbnRhaW5lci1maWxsLXByaW1hcnktbmV1dHJhbC1saWdodCk7LS11aS1saWItcm91bmRUYWItZGVmYXVsdC1jb2xvci1ib3JkZXI6dmFyKC0tY29sb3ItY29udGFpbmVyLWZpbGwtcHJpbWFyeS1uZXV0cmFsLWxpZ2h0KTstLXVpLWxpYi1yb3VuZFRhYi1kZWZhdWx0LWNvbG9yLWNvbnRlbnQ6dmFyKC0tY29sb3ItY29udGVudC1zZWNvbmRhcnktbmV1dHJhbC1ib2xkKX19LnJvdW5kVGFiQnV0dG9uLVdhNlRtR04zLnByaW1hcnktV2E2VG1HTjM6YWN0aXZlOm5vdCguZGlzYWJsZUFjdGl2ZVN0YXRlU3R5bGVzLVdhNlRtR04zKTpub3QoLmRpc2FibGVkLVdhNlRtR04zKXstLXVpLWxpYi1yb3VuZFRhYi1kZWZhdWx0LWNvbG9yLWJnOnZhcigtLWNvbG9yLWNvbnRhaW5lci1maWxsLXByaW1hcnktbmV1dHJhbC1ub3JtYWwpOy0tdWktbGliLXJvdW5kVGFiLWRlZmF1bHQtY29sb3ItYm9yZGVyOnZhcigtLWNvbG9yLWNvbnRhaW5lci1maWxsLXByaW1hcnktbmV1dHJhbC1ub3JtYWwpOy0tdWktbGliLXJvdW5kVGFiLWRlZmF1bHQtY29sb3ItY29udGVudDp2YXIoLS1jb2xvci1jb250ZW50LXNlY29uZGFyeS1uZXV0cmFsLWJvbGQpfS5yb3VuZFRhYkJ1dHRvbi1XYTZUbUdOMy5wcmltYXJ5LVdhNlRtR04zLnNlbGVjdGVkLVdhNlRtR04zLC5yb3VuZFRhYkJ1dHRvbi1XYTZUbUdOMy5wcmltYXJ5LVdhNlRtR04zLnNlbGVjdGVkLVdhNlRtR04zOm5vdCguZGlzYWJsZUFjdGl2ZVN0YXRlU3R5bGVzLVdhNlRtR04zKTpub3QoLmRpc2FibGVkLVdhNlRtR04zKXstLXVpLWxpYi1yb3VuZFRhYi1kZWZhdWx0LWNvbG9yLWJnOnZhcigtLWNvbG9yLWNvbnRhaW5lci1maWxsLXByaW1hcnktbmV1dHJhbC1leHRyYS1ib2xkKTstLXVpLWxpYi1yb3VuZFRhYi1kZWZhdWx0LWNvbG9yLWJvcmRlcjp2YXIoLS1jb2xvci1jb250YWluZXItZmlsbC1wcmltYXJ5LW5ldXRyYWwtZXh0cmEtYm9sZCk7LS11aS1saWItcm91bmRUYWItZGVmYXVsdC1jb2xvci1jb250ZW50OnZhcigtLWNvbG9yLWNvbnRlbnQtc2Vjb25kYXJ5LWludmVyc2UpfS5yb3VuZFRhYkJ1dHRvbi1XYTZUbUdOMy5naG9zdC1XYTZUbUdOM3stLXVpLWxpYi1yb3VuZFRhYi1kZWZhdWx0LWNvbG9yLWJnOnZhcigtLWNvbG9yLXN0YXRpYy10cmFuc3BhcmVudCk7LS11aS1saWItcm91bmRUYWItZGVmYXVsdC1jb2xvci1ib3JkZXI6dmFyKC0tY29sb3Itc3RhdGljLXRyYW5zcGFyZW50KTstLXVpLWxpYi1yb3VuZFRhYi1kZWZhdWx0LWNvbG9yLWNvbnRlbnQ6dmFyKC0tY29sb3ItY29udGVudC1wcmltYXJ5LW5ldXRyYWwtYm9sZCl9QG1lZGlhIChhbnktaG92ZXI6aG92ZXIpey5yb3VuZFRhYkJ1dHRvbi1XYTZUbUdOMy5naG9zdC1XYTZUbUdOMzpob3Zlcjpub3QoLmRpc2FibGVkLVdhNlRtR04zKTpub3QoLnNlbGVjdGVkLVdhNlRtR04zKXstLXVpLWxpYi1yb3VuZFRhYi1kZWZhdWx0LWNvbG9yLWJnOnZhcigtLWNvbG9yLXN0YXRpYy10cmFuc3BhcmVudCk7LS11aS1saWItcm91bmRUYWItZGVmYXVsdC1jb2xvci1ib3JkZXI6dmFyKC0tY29sb3ItY29udGFpbmVyLWZpbGwtcHJpbWFyeS1uZXV0cmFsLWxpZ2h0KTstLXVpLWxpYi1yb3VuZFRhYi1kZWZhdWx0LWNvbG9yLWNvbnRlbnQ6dmFyKC0tY29sb3ItY29udGVudC1zZWNvbmRhcnktbmV1dHJhbC1ib2xkKX19LnJvdW5kVGFiQnV0dG9uLVdhNlRtR04zLmdob3N0LVdhNlRtR04zOmFjdGl2ZTpub3QoLmRpc2FibGVBY3RpdmVTdGF0ZVN0eWxlcy1XYTZUbUdOMyk6bm90KC5kaXNhYmxlZC1XYTZUbUdOMyl7LS11aS1saWItcm91bmRUYWItZGVmYXVsdC1jb2xvci1iZzp2YXIoLS1jb2xvci1jb250YWluZXItZmlsbC1wcmltYXJ5LW5ldXRyYWwtbm9ybWFsKTstLXVpLWxpYi1yb3VuZFRhYi1kZWZhdWx0LWNvbG9yLWJvcmRlcjp2YXIoLS1jb2xvci1jb250YWluZXItZmlsbC1wcmltYXJ5LW5ldXRyYWwtbm9ybWFsKTstLXVpLWxpYi1yb3VuZFRhYi1kZWZhdWx0LWNvbG9yLWNvbnRlbnQ6dmFyKC0tY29sb3ItY29udGVudC1zZWNvbmRhcnktbmV1dHJhbC1ib2xkKX0ucm91bmRUYWJCdXR0b24tV2E2VG1HTjMuZ2hvc3QtV2E2VG1HTjMuc2VsZWN0ZWQtV2E2VG1HTjMsLnJvdW5kVGFiQnV0dG9uLVdhNlRtR04zLmdob3N0LVdhNlRtR04zLnNlbGVjdGVkLVdhNlRtR04zOm5vdCguZGlzYWJsZUFjdGl2ZVN0YXRlU3R5bGVzLVdhNlRtR04zKTpub3QoLmRpc2FibGVkLVdhNlRtR04zKXstLXVpLWxpYi1yb3VuZFRhYi1kZWZhdWx0LWNvbG9yLWJnOnZhcigtLWNvbG9yLWNvbnRhaW5lci1maWxsLXByaW1hcnktbmV1dHJhbC1leHRyYS1ib2xkKTstLXVpLWxpYi1yb3VuZFRhYi1kZWZhdWx0LWNvbG9yLWJvcmRlcjp2YXIoLS1jb2xvci1jb250YWluZXItZmlsbC1zZWNvbmRhcnktbmV1dHJhbC1oZWF2eSk7LS11aS1saWItcm91bmRUYWItZGVmYXVsdC1jb2xvci1jb250ZW50OnZhcigtLWNvbG9yLWNvbnRlbnQtc2Vjb25kYXJ5LWludmVyc2UpfS5yb3VuZFRhYkJ1dHRvbi1XYTZUbUdOMy5wcmltYXJ5LVdhNlRtR04zLmRpc2FibGVkLVdhNlRtR04zLC5yb3VuZFRhYkJ1dHRvbi1XYTZUbUdOMy5wcmltYXJ5LVdhNlRtR04zW2FyaWEtZGlzYWJsZWQ9dHJ1ZV17Y3Vyc29yOmRlZmF1bHR9LnJvdW5kVGFiQnV0dG9uLVdhNlRtR04zLnByaW1hcnktV2E2VG1HTjMuZGlzYWJsZWQtV2E2VG1HTjMsLnJvdW5kVGFiQnV0dG9uLVdhNlRtR04zLnByaW1hcnktV2E2VG1HTjMuZGlzYWJsZWQtV2E2VG1HTjM6bGluaywucm91bmRUYWJCdXR0b24tV2E2VG1HTjMucHJpbWFyeS1XYTZUbUdOMy5kaXNhYmxlZC1XYTZUbUdOMzp2aXNpdGVkLC5yb3VuZFRhYkJ1dHRvbi1XYTZUbUdOMy5wcmltYXJ5LVdhNlRtR04zW2FyaWEtZGlzYWJsZWQ9dHJ1ZV0sLnJvdW5kVGFiQnV0dG9uLVdhNlRtR04zLnByaW1hcnktV2E2VG1HTjNbYXJpYS1kaXNhYmxlZD10cnVlXTpsaW5rLC5yb3VuZFRhYkJ1dHRvbi1XYTZUbUdOMy5wcmltYXJ5LVdhNlRtR04zW2FyaWEtZGlzYWJsZWQ9dHJ1ZV06dmlzaXRlZHstLXVpLWxpYi1yb3VuZFRhYi1kZWZhdWx0LWNvbG9yLWJnOnZhcigtLWNvbG9yLWNvbnRhaW5lci1maWxsLXByaW1hcnktbmV1dHJhbC1saWdodCk7LS11aS1saWItcm91bmRUYWItZGVmYXVsdC1jb2xvci1ib3JkZXI6dmFyKC0tY29sb3ItY29udGFpbmVyLWZpbGwtcHJpbWFyeS1uZXV0cmFsLWxpZ2h0KTstLXVpLWxpYi1yb3VuZFRhYi1kZWZhdWx0LWNvbG9yLWNvbnRlbnQ6dmFyKC0tY29sb3ItY29udGVudC1wcmltYXJ5LW5ldXRyYWwtbGlnaHQpfS5yb3VuZFRhYkJ1dHRvbi1XYTZUbUdOMy5naG9zdC1XYTZUbUdOMy5kaXNhYmxlZC1XYTZUbUdOMywucm91bmRUYWJCdXR0b24tV2E2VG1HTjMuZ2hvc3QtV2E2VG1HTjNbYXJpYS1kaXNhYmxlZD10cnVlXXtjdXJzb3I6ZGVmYXVsdH0ucm91bmRUYWJCdXR0b24tV2E2VG1HTjMuZ2hvc3QtV2E2VG1HTjMuZGlzYWJsZWQtV2E2VG1HTjMsLnJvdW5kVGFiQnV0dG9uLVdhNlRtR04zLmdob3N0LVdhNlRtR04zLmRpc2FibGVkLVdhNlRtR04zOmxpbmssLnJvdW5kVGFiQnV0dG9uLVdhNlRtR04zLmdob3N0LVdhNlRtR04zLmRpc2FibGVkLVdhNlRtR04zOnZpc2l0ZWQsLnJvdW5kVGFiQnV0dG9uLVdhNlRtR04zLmdob3N0LVdhNlRtR04zW2FyaWEtZGlzYWJsZWQ9dHJ1ZV0sLnJvdW5kVGFiQnV0dG9uLVdhNlRtR04zLmdob3N0LVdhNlRtR04zW2FyaWEtZGlzYWJsZWQ9dHJ1ZV06bGluaywucm91bmRUYWJCdXR0b24tV2E2VG1HTjMuZ2hvc3QtV2E2VG1HTjNbYXJpYS1kaXNhYmxlZD10cnVlXTp2aXNpdGVkey0tdWktbGliLXJvdW5kVGFiLWRlZmF1bHQtY29sb3ItYmc6dmFyKC0tY29sb3Itc3RhdGljLXRyYW5zcGFyZW50KTstLXVpLWxpYi1yb3VuZFRhYi1kZWZhdWx0LWNvbG9yLWJvcmRlcjp2YXIoLS1jb2xvci1zdGF0aWMtdHJhbnNwYXJlbnQpOy0tdWktbGliLXJvdW5kVGFiLWRlZmF1bHQtY29sb3ItY29udGVudDp2YXIoLS1jb2xvci1jb250ZW50LXByaW1hcnktbmV1dHJhbC1saWdodCl9LnJvdW5kVGFiQnV0dG9uLVdhNlRtR04zLmZha2UtV2E2VG1HTjN7aW5zZXQtaW5saW5lLXN0YXJ0Oi05OTk5OTlweDtwb2ludGVyLWV2ZW50czpub25lO3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6LTF9LmVuZEljb25XcmFwLVdhNlRtR04zLC5zdGFydEljb25XcmFwLVdhNlRtR04ze2FsaWduLWl0ZW1zOmNlbnRlcjtkaXNwbGF5OmlubGluZS1mbGV4O2p1c3RpZnktY29udGVudDpjZW50ZXI7bWF4LWhlaWdodDoyOHB4O21heC13aWR0aDoyOHB4O21pbi1oZWlnaHQ6MThweDttaW4td2lkdGg6MThweH0uY2FyZXQtV2E2VG1HTjN7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjM1cyBlYXNlfS5zZWxlY3RlZC1XYTZUbUdOMyAuY2FyZXQtV2E2VG1HTjN7dHJhbnNmb3JtOnJvdGF0ZSgxODBkZWcpfS5zZWxlY3RlZC1XYTZUbUdOMyAuY2FyZXQtV2E2VG1HTjM6ZGlyKHJ0bCl7dHJhbnNmb3JtOnJvdGF0ZSgtMTgwZGVnKX0udmlzdWFsbHlIaWRkZW4tV2E2VG1HTjN7Ym9yZGVyOjA7aGVpZ2h0OjFweDttYXJnaW46LTFweDtwYWRkaW5nOjA7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MXB4O2NsaXA6cmVjdCgwIDAgMCAwKTtvdmVyZmxvdzpoaWRkZW59LmNvbnRlbnQtV2E2VG1HTjN7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7d2hpdGUtc3BhY2U6bm93cmFwfQ=="}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/55336.faa77164a5636d826475.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.534Z","timestamp":1785148034534,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/55336.faa77164a5636d826475.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\ncontent-type: text/css; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a58ab11-8a\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Thu, 16 Jul 2026 09:57:37 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/16/2026 11:03:22\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: dff8e07fcf8d8126934f92269e43652e\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":138,"size_decoded":889,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with no line terminators","md5":"0544a458ada451b97e30c69ee63c6f81","sha1":"a6e623567e1609a80edc508f1d47db9800a14af0","sha256":"530451344ff3515d2f243dc1cd99982591d52f0fc236ceb85250915a3da2b23f","sha512":"c7030783cfc707898043c42dc44e5fc708725b674e2e74c8a55f57b261bdc297dc6134710476f7d1c3f652681b04ccdc97e0f7e5ca7991363fefa55243a7b98f","ssdeep":"","tlshash":"edc02b370b02be1d8f30d9b0bf347b18c0c0d0a2c583904e80052b2f80cd28a08b1788","first_seen":"2026-07-19T21:33:33.9239Z","last_seen":"2026-07-27T12:48:39.810704Z","times_seen":56,"resource_available":false,"data":"LndyYXAtUG9YYWNEcFh7YWxpZ24taXRlbXM6Y2VudGVyO2JveC1zaXppbmc6Ym9yZGVyLWJveDtkaXNwbGF5OmZsZXg7aGVpZ2h0OjI4cHg7anVzdGlmeS1jb250ZW50OmNlbnRlcjtwYWRkaW5nLWlubGluZS1lbmQ6MnB4O3dpZHRoOjI4cHh9"}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/80041.ff2e3df963d58c1771f5.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.545Z","timestamp":1785148034545,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/80041.ff2e3df963d58c1771f5.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\ncontent-type: text/css; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a476ed7-f2\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Fri, 03 Jul 2026 08:12:07 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/03/2026 10:54:54\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: e1dd9d1d27ebeae42ebdda8db567ee4e\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":242,"size_decoded":911,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with no line terminators","md5":"0debe78b8515cd9552f555755ca4765a","sha1":"f0e49e0f11bef9dacbb2b363e83869a3d411bfca","sha256":"bec333c559918a8efa7275890ccafed19705d322978b1c641d89b13d03fc97dd","sha512":"d939aa5f7bf5c021dadb5dda0bcd5744e5e73e8c9099a9081209787978ca5127b90a9c91ac0751ce33d935344733b72071d818091a1fbc9a4ee41fb2f5039880","ssdeep":"","tlshash":"3cd05e8bfb412bbda829019805a0236b5f38aca9b2224f0c7541976186c68f31814881","first_seen":"2026-07-04T06:34:19.697277Z","last_seen":"2026-07-27T12:48:39.722002Z","times_seen":89,"resource_available":false,"data":"LmNvbnRhaW5lci1haTkzREpWd3tib3R0b206MDtpbnNldC1pbmxpbmUtc3RhcnQ6MDtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDt3aWR0aDoxNXB4fS5jb250YWluZXItYWk5M0RKVncgLnZpc2libGUtYWk5M0RKVnd7ZGlzcGxheTpmbGV4IWltcG9ydGFudH0uY29udGFpbmVyLWFpOTNESlZ3IC5mb3JjZVZpc2libGUtYWk5M0RKVnd7ZGlzcGxheTpmbGV4IWltcG9ydGFudDtwb2ludGVyLWV2ZW50czpub25lIWltcG9ydGFudH0="}},"time_used":4,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":4,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.smartsuppchat.com/loader.js?","fqdn":"www.smartsuppchat.com","domain":"smartsuppchat.com","tld":"com"},"ip":{"addr":"185.76.9.27","port":443,"asn":60068,"as":"Datacamp Limited","country":"Sweden","country_code":"SE"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://digital-assettrade.com/","date":"2026-07-27T10:27:12.775Z","timestamp":1785148032775,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_256_GCM_SHA384","key_group_name":"x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"1161431244.rsc.cdn77.org","organization":""},"issuer":{"commonName":"YE1","organization":"Let's Encrypt"},"validity":{"start":"Thu, 04 Jun 2026 14:34:49 GMT","end":"Wed, 02 Sep 2026 14:34:48 GMT"},"fingerprint":{"sha1":"77:06:42:CE:73:9F:CA:05:A3:6E:99:99:F2:3F:B7:EE:E4:60:E9:29","sha256":"E7:6E:68:C5:CD:6C:F6:14:84:A0:18:1A:D7:94:77:7A:28:F6:67:8E:90:58:94:AE:3A:65:6A:B7:95:0F:5D:1B"}}},"request":{"raw":"GET /loader.js? HTTP/1.1\r\nHost: www.smartsuppchat.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-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://digital-assettrade.com/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:16 GMT\r\ncontent-type: application/javascript\r\ncache-control: max-age=300, public, s-maxage=60\r\netag: W/\"6a2663cd-4668\"\r\nexpires: Mon, 08 Jun 2026 06:46:12 GMT\r\nlast-modified: Mon, 08 Jun 2026 06:40:13 GMT\r\nx-77-nzt: kyK4EdWCi8f8+MQ5b2dhH/Ka7Aj2GZoxYzGhUVaMkAZkARBPlVGXfWZycrc8Nqa4aN17+mI\r\nx-77-nzt-ray: fdb541238e1c93b08432676a6e001910\r\nx-77-cache: HIT\r\nx-77-age: 37\r\nvary: Accept-Encoding\r\ncontent-encoding: gzip\r\nserver: CDN77-Turbo\r\nx-77-pop: stockholmSE\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"CDN77","description":"CDN77 is a content delivery network (CDN).","website":"https://www.cdn77.com","common_platform_enumeration":"","icon":"CDN77.png","categories":["CDN"]}],"data":{"size":18024,"size_decoded":6042,"mime_type":"application/javascript","magic":"JavaScript source, ASCII text, with very long lines (17951)","md5":"218d24439d4e2c0990f35338a7ac220c","sha1":"5a7b913584c1244bf61beab9dc644204d130101c","sha256":"efb497f7159de26ea5e0521d675d909dc063e36d0d23c2ad96fa9109b73ee263","sha512":"17af39bfdc350c9d1f8dd74652641d0c028881ecb3935d2d9fdb763d24136665d135d00219aabac57693112e2314d4fa91b802ba2662a1580aa35c5e0b6e624b","ssdeep":"384:2/xzy2A3wyxNeBWbEgl/EuVaBWbE0rIcvqSI/aQ/UpG:2/xzy2A3wXscuVaAxka05","tlshash":"4182b7cc7691b16543ab61b4843f620ff1376929740d8865b965eae13cb8c8ed037fb8","first_seen":"2026-03-30T19:01:55.527327Z","last_seen":"2026-07-27T13:00:53.912347Z","times_seen":7290,"resource_available":true,"data":"LyohIEZvciBsaWNlbnNlIGluZm9ybWF0aW9uIHBsZWFzZSBzZWUgbG9hZGVyLnRlbXBsYXRlLmpzLkxJQ0VOU0UudHh0ICovCigoKT0+e3ZhciB0PXs3MTUodCl7dC5leHBvcnRzPWZ1bmN0aW9uKCl7dmFyIHQ9ITE7LTEhPT1uYXZpZ2F0b3IuYXBwVmVyc2lvbi5pbmRleE9mKCJNU0lFIDEwIikmJih0PSEwKTt2YXIgZSxuPVtdLHI9Im9iamVjdCI9PXR5cGVvZiBkb2N1bWVudCYmZG9jdW1lbnQsbz10P3IuZG9jdW1lbnRFbGVtZW50LmRvU2Nyb2xsKCJsZWZ0Iik6ci5kb2N1bWVudEVsZW1lbnQuZG9TY3JvbGwsaT0iRE9NQ29udGVudExvYWRlZCIscz1yJiYobz8vXmxvYWRlZHxeYy86L15sb2FkZWR8Xml8XmMvKS50ZXN0KHIucmVhZHlTdGF0ZSk7cmV0dXJuIXMmJnImJnIuYWRkRXZlbnRMaXN0ZW5lcihpLGU9ZnVuY3Rpb24oKXtmb3Ioci5yZW1vdmVFdmVudExpc3RlbmVyKGksZSkscz0xO2U9bi5zaGlmdCgpOyllKCl9KSxmdW5jdGlvbih0KXtzP3NldFRpbWVvdXQodCwwKTpuLnB1c2godCl9fSgpfSw3NjEodCxlLG4peyJ1c2Ugc3RyaWN0Ijtjb25zdCByPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuY29uc3RydWN0b3I7cmV0dXJuIHRoaXMudGhlbihmdW5jdGlvbihuKXtyZXR1cm4gZS5yZXNvbHZlKHQoKSkudGhlbihmdW5jdGlvbigpe3JldHVybiBufSl9LGZ1bmN0aW9uKG4pe3JldHVybiBlLnJlc29sdmUodCgpKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIGUucmVqZWN0KG4pfSl9KX0sbz1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IHRoaXMoZnVuY3Rpb24oZSxuKXtpZighdHx8dm9pZCAwPT09dC5sZW5ndGgpcmV0dXJuIG4obmV3IFR5cGVFcnJvcih0eXBlb2YgdCsiICIrdCsiIGlzIG5vdCBpdGVyYWJsZShjYW5ub3QgcmVhZCBwcm9wZXJ0eSBTeW1ib2woU3ltYm9sLml0ZXJhdG9yKSkiKSk7dmFyIHI9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwodCk7aWYoMD09PXIubGVuZ3RoKXJldHVybiBlKFtdKTt2YXIgbz1yLmxlbmd0aDtmdW5jdGlvbiBpKHQsbil7aWYobiYmKCJvYmplY3QiPT10eXBlb2Ygbnx8ImZ1bmN0aW9uIj09dHlwZW9mIG4pKXt2YXIgcz1uLnRoZW47aWYoImZ1bmN0aW9uIj09dHlwZW9mIHMpcmV0dXJuIHZvaWQgcy5jYWxsKG4sZnVuY3Rpb24oZSl7aSh0LGUpfSxmdW5jdGlvbihuKXtyW3RdPXtzdGF0dXM6InJlamVjdGVkIixyZWFzb246bn0sMD09PS0tbyYmZShyKX0pfXJbdF09e3N0YXR1czoiZnVsZmlsbGVkIix2YWx1ZTpufSwwPT09LS1vJiZlKHIpfWZvcih2YXIgcz0wO3M8ci5sZW5ndGg7cysrKWkocyxyW3NdKX0pfTtmdW5jdGlvbiBpKHQsZSl7dGhpcy5uYW1lPSJBZ2dyZWdhdGVFcnJvciIsdGhpcy5lcnJvcnM9dCx0aGlzLm1lc3NhZ2U9ZXx8IiJ9aS5wcm90b3R5cGU9RXJyb3IucHJvdG90eXBlO2NvbnN0IHM9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztyZXR1cm4gbmV3IGUoZnVuY3Rpb24obixyKXtpZighdHx8dm9pZCAwPT09dC5sZW5ndGgpcmV0dXJuIHIobmV3IFR5cGVFcnJvcigiUHJvbWlzZS5hbnkgYWNjZXB0cyBhbiBhcnJheSIpKTt2YXIgbz1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbCh0KTtpZigwPT09by5sZW5ndGgpcmV0dXJuIHIoKTtmb3IodmFyIHM9W10sYT0wO2E8by5sZW5ndGg7YSsrKXRyeXtlLnJlc29sdmUob1thXSkudGhlbihuKS5jYXRjaChmdW5jdGlvbih0KXtzLnB1c2godCkscy5sZW5ndGg9PT1vLmxlbmd0aCYmcihuZXcgaShzLCJBbGwgcHJvbWlzZXMgd2VyZSByZWplY3RlZCIpKX0pfWNhdGNoKHQpe3IodCl9fSl9O3ZhciBhPXNldFRpbWVvdXQ7ZnVuY3Rpb24gYyh0KXtyZXR1cm4gQm9vbGVhbih0JiZ2b2lkIDAhPT10Lmxlbmd0aCl9ZnVuY3Rpb24gdSgpe31mdW5jdGlvbiBsKHQpe2lmKCEodGhpcyBpbnN0YW5jZW9mIGwpKXRocm93IG5ldyBUeXBlRXJyb3IoIlByb21pc2VzIG11c3QgYmUgY29uc3RydWN0ZWQgdmlhIG5ldyIpO2lmKCJmdW5jdGlvbiIhPXR5cGVvZiB0KXRocm93IG5ldyBUeXBlRXJyb3IoIm5vdCBhIGZ1bmN0aW9uIik7dGhpcy5fc3RhdGU9MCx0aGlzLl9oYW5kbGVkPSExLHRoaXMuX3ZhbHVlPXZvaWQgMCx0aGlzLl9kZWZlcnJlZHM9W10sdyh0LHRoaXMpfWZ1bmN0aW9uIHAodCxlKXtmb3IoOzM9PT10Ll9zdGF0ZTspdD10Ll92YWx1ZTswIT09dC5fc3RhdGU/KHQuX2hhbmRsZWQ9ITAsbC5faW1tZWRpYXRlRm4oZnVuY3Rpb24oKXt2YXIgbj0xPT09dC5fc3RhdGU/ZS5vbkZ1bGZpbGxlZDplLm9uUmVqZWN0ZWQ7aWYobnVsbCE9PW4pe3ZhciByO3RyeXtyPW4odC5fdmFsdWUpfWNhdGNoKHQpe3JldHVybiB2b2lkIGQoZS5wcm9taXNlLHQpfWYoZS5wcm9taXNlLHIpfWVsc2UoMT09PXQuX3N0YXRlP2Y6ZCkoZS5wcm9taXNlLHQuX3ZhbHVlKX0pKTp0Ll9kZWZlcnJlZHMucHVzaChlKX1mdW5jdGlvbiBmKHQsZSl7dHJ5e2lmKGU9PT10KXRocm93IG5ldyBUeXBlRXJyb3IoIkEgcHJvbWlzZSBjYW5ub3QgYmUgcmVzb2x2ZWQgd2l0aCBpdHNlbGYuIik7aWYoZSYmKCJvYmplY3QiPT10eXBlb2YgZXx8ImZ1bmN0aW9uIj09dHlwZW9mIGUpKXt2YXIgbj1lLnRoZW47aWYoZSBpbnN0YW5jZW9mIGwpcmV0dXJuIHQuX3N0YXRlPTMsdC5fdmFsdWU9ZSx2b2lkIGgodCk7aWYoImZ1bmN0aW9uIj09dHlwZW9mIG4pcmV0dXJuIHZvaWQgdygocj1uLG89ZSxmdW5jdGlvbigpe3IuYXBwbHkobyxhcmd1bWVudHMpfSksdCl9dC5fc3RhdGU9MSx0Ll92YWx1ZT1lLGgodCl9Y2F0Y2goZSl7ZCh0LGUpfXZhciByLG99ZnVuY3Rpb24gZCh0LGUpe3QuX3N0YXRlPTIsdC5fdmFsdWU9ZSxoKHQpfWZ1bmN0aW9uIGgodCl7Mj09PXQuX3N0YXRlJiYwPT09dC5fZGVmZXJyZWRzLmxlbmd0aCYmbC5faW1tZWRpYXRlRm4oZnVuY3Rpb24oKXt0Ll9oYW5kbGVkfHxsLl91bmhhbmRsZWRSZWplY3Rpb25Gbih0Ll92YWx1ZSl9KTtmb3IodmFyIGU9MCxuPXQuX2RlZmVycmVkcy5sZW5ndGg7ZTxuO2UrKylwKHQsdC5fZGVmZXJyZWRzW2VdKTt0Ll9kZWZlcnJlZHM9bnVsbH1mdW5jdGlvbiB5KHQsZSxuKXt0aGlzLm9uRnVsZmlsbGVkPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6bnVsbCx0aGlzLm9uUmVqZWN0ZWQ9ImZ1bmN0aW9uIj09dHlwZW9mIGU/ZTpudWxsLHRoaXMucHJvbWlzZT1ufWZ1bmN0aW9uIHcodCxlKXt2YXIgbj0hMTt0cnl7dChmdW5jdGlvbih0KXtufHwobj0hMCxmKGUsdCkpfSxmdW5jdGlvbih0KXtufHwobj0hMCxkKGUsdCkpfSl9Y2F0Y2godCl7aWYobilyZXR1cm47bj0hMCxkKGUsdCl9fWwucHJvdG90eXBlLmNhdGNoPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnRoZW4obnVsbCx0KX0sbC5wcm90b3R5cGUudGhlbj1mdW5jdGlvbih0LGUpe3ZhciBuPW5ldyB0aGlzLmNvbnN0cnVjdG9yKHUpO3JldHVybiBwKHRoaXMsbmV3IHkodCxlLG4pKSxufSxsLnByb3RvdHlwZS5maW5hbGx5PXIsbC5hbGw9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBsKGZ1bmN0aW9uKGUsbil7aWYoIWModCkpcmV0dXJuIG4obmV3IFR5cGVFcnJvcigiUHJvbWlzZS5hbGwgYWNjZXB0cyBhbiBhcnJheSIpKTt2YXIgcj1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbCh0KTtpZigwPT09ci5sZW5ndGgpcmV0dXJuIGUoW10pO3ZhciBvPXIubGVuZ3RoO2Z1bmN0aW9uIGkodCxzKXt0cnl7aWYocyYmKCJvYmplY3QiPT10eXBlb2Ygc3x8ImZ1bmN0aW9uIj09dHlwZW9mIHMpKXt2YXIgYT1zLnRoZW47aWYoImZ1bmN0aW9uIj09dHlwZW9mIGEpcmV0dXJuIHZvaWQgYS5jYWxsKHMsZnVuY3Rpb24oZSl7aSh0LGUpfSxuKX1yW3RdPXMsMD09PS0tbyYmZShyKX1jYXRjaCh0KXtuKHQpfX1mb3IodmFyIHM9MDtzPHIubGVuZ3RoO3MrKylpKHMscltzXSl9KX0sbC5hbnk9cyxsLmFsbFNldHRsZWQ9byxsLnJlc29sdmU9ZnVuY3Rpb24odCl7cmV0dXJuIHQmJiJvYmplY3QiPT10eXBlb2YgdCYmdC5jb25zdHJ1Y3Rvcj09PWw/dDpuZXcgbChmdW5jdGlvbihlKXtlKHQpfSl9LGwucmVqZWN0PWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgbChmdW5jdGlvbihlLG4pe24odCl9KX0sbC5yYWNlPWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgbChmdW5jdGlvbihlLG4pe2lmKCFjKHQpKXJldHVybiBuKG5ldyBUeXBlRXJyb3IoIlByb21pc2UucmFjZSBhY2NlcHRzIGFuIGFycmF5IikpO2Zvcih2YXIgcj0wLG89dC5sZW5ndGg7cjxvO3IrKylsLnJlc29sdmUodFtyXSkudGhlbihlLG4pfSl9LGwuX2ltbWVkaWF0ZUZuPSJmdW5jdGlvbiI9PXR5cGVvZiBzZXRJbW1lZGlhdGUmJmZ1bmN0aW9uKHQpe3NldEltbWVkaWF0ZSh0KX18fGZ1bmN0aW9uKHQpe2EodCwwKX0sbC5fdW5oYW5kbGVkUmVqZWN0aW9uRm49ZnVuY3Rpb24odCl7InVuZGVmaW5lZCIhPXR5cGVvZiBjb25zb2xlJiZjb25zb2xlJiZjb25zb2xlLndhcm4oIlBvc3NpYmxlIFVuaGFuZGxlZCBQcm9taXNlIFJlamVjdGlvbjoiLHQpfTtjb25zdCB2PWw7dmFyIGc9ZnVuY3Rpb24oKXtpZigidW5kZWZpbmVkIiE9dHlwZW9mIHNlbGYpcmV0dXJuIHNlbGY7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3cpcmV0dXJuIHdpbmRvdztpZih2b2lkIDAhPT1uLmcpcmV0dXJuIG4uZzt0aHJvdyBuZXcgRXJyb3IoInVuYWJsZSB0byBsb2NhdGUgZ2xvYmFsIG9iamVjdCIpfSgpOyJmdW5jdGlvbiIhPXR5cGVvZiBnLlByb21pc2U/Zy5Qcm9taXNlPXY6KGcuUHJvbWlzZS5wcm90b3R5cGUuZmluYWxseXx8KGcuUHJvbWlzZS5wcm90b3R5cGUuZmluYWxseT1yKSxnLlByb21pc2UuYWxsU2V0dGxlZHx8KGcuUHJvbWlzZS5hbGxTZXR0bGVkPW8pLGcuUHJvbWlzZS5hbnl8fChnLlByb21pc2UuYW55PXMpKX0sMzQ1KHQsZSxuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuU21hcnRzdXBwTG9hZGVyPXZvaWQgMDt2YXIgcj1uKDc0MCksbz1uKDg5MyksaT1uKDEzMCkscz1mdW5jdGlvbigpe2Z1bmN0aW9uIHQodCl7dGhpcy5vcHRpb25zPXQsdGhpcy53aWRnZXRzPXt9LHRoaXMuY2hhdHM9dGhpcy53aWRnZXRzfXJldHVybiB0LnByb3RvdHlwZS5zZXREZWZhdWx0cz1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5vcHRpb25zPSgwLG8ubWVyZ2VEZWVwKSh0aGlzLm9wdGlvbnMsdCksdGhpc30sdC5wcm90b3R5cGUuZ2V0Q2hhdD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy53aWRnZXRzW3RdfSx0LnByb3RvdHlwZS5nZXRXaWRnZXQ9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMud2lkZ2V0c1t0XX0sdC5wcm90b3R5cGUuY3JlYXRlPWZ1bmN0aW9uKHQsZSxuLHMpe3ZhciBjPSgwLG8ubWVyZ2VEZWVwKSh0aGlzLm9wdGlvbnMsZSk7YShjKTt2YXIgdT10aGlzLndpZGdldHNbdF09bmV3IGkuU21hcnRzdXBwV2lkZ2V0KHQsYyxuKTtyZXR1cm4gdS5faW5pdFByb21pc2U9KDAsby5yZXF1ZXN0KSgiIi5jb25jYXQoYy5ib290c3RyYXBVcmwsIi93aWRnZXQvIikuY29uY2F0KGMua2V5LCIuanNvbiIpKS50aGVuKGZ1bmN0aW9uKHQpe3ZhciBuPSgwLG8ucGFyc2VKU09OKSh0KTtyZXR1cm4gZGVsZXRlIGUuZmVhdHVyZXMsdS5pbml0KCgwLG8ubWVyZ2VEZWVwKShuLGUpLG4uZmVhdHVyZXMpLGUmJmUud2lkZ2V0VHJhY2tlckVuYWJsZWQmJigwLHIudHJhY2tPcHRpb25zKSh1Lm9wdGlvbnMsT2JqZWN0LmtleXMoZSkpLHdpbmRvdy5zbWFydHN1cHAuZ2V0QXNzZXRVcmw9dS5nZXRBc3NldFVybC5iaW5kKHUpLHMmJnModm9pZCAwLHUpLHUub3B0aW9ucy5yZW5kZXJUbyYmdS5yZW5kZXIodS5vcHRpb25zLnJlbmRlclRvKSxudWxsfSkuY2F0Y2goZnVuY3Rpb24odCl7cyYmcyh0KX0pLHV9LHQucHJvdG90eXBlLmNyZWF0ZVdpZGdldD1mdW5jdGlvbih0LGUsbil7dmFyIHM9dGhpcyxjPSgwLG8ubWVyZ2VEZWVwKSh0aGlzLm9wdGlvbnMsZSk7cmV0dXJuIGEoYyksKDAsby5yZXF1ZXN0KSgiIi5jb25jYXQoYy5ib290c3RyYXBVcmwsIi93aWRnZXQvIikuY29uY2F0KGMua2V5LCIuanNvbiIpKS50aGVuKGZ1bmN0aW9uKGEpe3ZhciB1PSgwLG8ucGFyc2VKU09OKShhKSxsPXMud2lkZ2V0c1t0XT1uZXcgaS5TbWFydHN1cHBXaWRnZXQodCxjLG4pO3JldHVybiBkZWxldGUgZS5mZWF0dXJlcyxsLmluaXQoKDAsby5tZXJnZURlZXApKHUsZSksdS5mZWF0dXJlcyksZSYmZS53aWRnZXRUcmFja2VyRW5hYmxlZCYmKDAsci50cmFja09wdGlvbnMpKGwub3B0aW9ucyxPYmplY3Qua2V5cyhlKSksd2luZG93LnNtYXJ0c3VwcC5nZXRBc3NldFVybD1sLmdldEFzc2V0VXJsLmJpbmQobCksbH0pfSx0fSgpO2UuU21hcnRzdXBwTG9hZGVyPXM7dmFyIGE9ZnVuY3Rpb24odCl7aWYoIXQuYm9vdHN0cmFwVXJsKXRocm93IG5ldyBFcnJvcigiTWlzc2luZyBvcHRpb24gYm9vdHN0cmFwVXJsIik7aWYoIXQua2V5KXRocm93IG5ldyBFcnJvcigiTWlzc2luZyBvcHRpb24ga2V5Iil9fSw3NDAodCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj10aGlzJiZ0aGlzLl9fYXdhaXRlcnx8ZnVuY3Rpb24odCxlLG4scil7cmV0dXJuIG5ldyhufHwobj1Qcm9taXNlKSkoZnVuY3Rpb24obyxpKXtmdW5jdGlvbiBzKHQpe3RyeXtjKHIubmV4dCh0KSl9Y2F0Y2godCl7aSh0KX19ZnVuY3Rpb24gYSh0KXt0cnl7YyhyLnRocm93KHQpKX1jYXRjaCh0KXtpKHQpfX1mdW5jdGlvbiBjKHQpe3ZhciBlO3QuZG9uZT9vKHQudmFsdWUpOihlPXQudmFsdWUsZSBpbnN0YW5jZW9mIG4/ZTpuZXcgbihmdW5jdGlvbih0KXt0KGUpfSkpLnRoZW4ocyxhKX1jKChyPXIuYXBwbHkodCxlfHxbXSkpLm5leHQoKSl9KX0sbz10aGlzJiZ0aGlzLl9fZ2VuZXJhdG9yfHxmdW5jdGlvbih0LGUpe3ZhciBuLHIsbyxpLHM9e2xhYmVsOjAsc2VudDpmdW5jdGlvbigpe2lmKDEmb1swXSl0aHJvdyBvWzFdO3JldHVybiBvWzFdfSx0cnlzOltdLG9wczpbXX07cmV0dXJuIGk9e25leHQ6YSgwKSx0aHJvdzphKDEpLHJldHVybjphKDIpfSwiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYoaVtTeW1ib2wuaXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSxpO2Z1bmN0aW9uIGEoYSl7cmV0dXJuIGZ1bmN0aW9uKGMpe3JldHVybiBmdW5jdGlvbihhKXtpZihuKXRocm93IG5ldyBUeXBlRXJyb3IoIkdlbmVyYXRvciBpcyBhbHJlYWR5IGV4ZWN1dGluZy4iKTtmb3IoO2kmJihpPTAsYVswXSYmKHM9MCkpLHM7KXRyeXtpZihuPTEsciYmKG89MiZhWzBdP3IucmV0dXJuOmFbMF0/ci50aHJvd3x8KChvPXIucmV0dXJuKSYmby5jYWxsKHIpLDApOnIubmV4dCkmJiEobz1vLmNhbGwocixhWzFdKSkuZG9uZSlyZXR1cm4gbztzd2l0Y2gocj0wLG8mJihhPVsyJmFbMF0sby52YWx1ZV0pLGFbMF0pe2Nhc2UgMDpjYXNlIDE6bz1hO2JyZWFrO2Nhc2UgNDpyZXR1cm4gcy5sYWJlbCsrLHt2YWx1ZTphWzFdLGRvbmU6ITF9O2Nhc2UgNTpzLmxhYmVsKysscj1hWzFdLGE9WzBdO2NvbnRpbnVlO2Nhc2UgNzphPXMub3BzLnBvcCgpLHMudHJ5cy5wb3AoKTtjb250aW51ZTtkZWZhdWx0OmlmKCEoKG89KG89cy50cnlzKS5sZW5ndGg+MCYmb1tvLmxlbmd0aC0xXSl8fDYhPT1hWzBdJiYyIT09YVswXSkpe3M9MDtjb250aW51ZX1pZigzPT09YVswXSYmKCFvfHxhWzFdPm9bMF0mJmFbMV08b1szXSkpe3MubGFiZWw9YVsxXTticmVha31pZig2PT09YVswXSYmcy5sYWJlbDxvWzFdKXtzLmxhYmVsPW9bMV0sbz1hO2JyZWFrfWlmKG8mJnMubGFiZWw8b1syXSl7cy5sYWJlbD1vWzJdLHMub3BzLnB1c2goYSk7YnJlYWt9b1syXSYmcy5vcHMucG9wKCkscy50cnlzLnBvcCgpO2NvbnRpbnVlfWE9ZS5jYWxsKHQscyl9Y2F0Y2godCl7YT1bNix0XSxyPTB9ZmluYWxseXtuPW89MH1pZig1JmFbMF0pdGhyb3cgYVsxXTtyZXR1cm57dmFsdWU6YVswXT9hWzFdOnZvaWQgMCxkb25lOiEwfX0oW2EsY10pfX19O09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLnRyYWNrT3BlcmF0aW9uPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHIodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7cmV0dXJuIG8odGhpcyxmdW5jdGlvbihuKXtzd2l0Y2gobi5sYWJlbCl7Y2FzZSAwOmlmKCF0LndpZGdldFRyYWNrZXJVcmx8fHMuaW5kZXhPZihlKT49MHx8YS5pbmRleE9mKHdpbmRvdy5sb2NhdGlvbi5ob3N0bmFtZSk+PTApcmV0dXJuWzIsITFdO24ubGFiZWw9MTtjYXNlIDE6cmV0dXJuIG4udHJ5cy5wdXNoKFsxLDMsLDRdKSxbNCwoMCxpLnJlcXVlc3QpKHQud2lkZ2V0VHJhY2tlclVybCsiL3RyYWNrL29wZXJhdGlvbj9rZXk9Ii5jb25jYXQodC5rZXksIiZvcGVyYXRpb249IikuY29uY2F0KGUsIiZkb21haW49IikuY29uY2F0KHdpbmRvdy5sb2NhdGlvbi5ob3N0bmFtZSkpXTtjYXNlIDI6cmV0dXJuIG4uc2VudCgpLFsyLCEwXTtjYXNlIDM6cmV0dXJuIG4uc2VudCgpLFsyLCExXTtjYXNlIDQ6cmV0dXJuWzJdfX0pfSl9LGUudHJhY2tPcHRpb25zPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHIodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIG47cmV0dXJuIG8odGhpcyxmdW5jdGlvbihyKXtzd2l0Y2goci5sYWJlbCl7Y2FzZSAwOmlmKCF0LndpZGdldFRyYWNrZXJVcmx8fGEuaW5kZXhPZih3aW5kb3cubG9jYXRpb24uaG9zdG5hbWUpPj0wKXJldHVyblsyLCExXTtpZigwPT09KG49ZS5maWx0ZXIoZnVuY3Rpb24odCl7cmV0dXJuIGMuaW5kZXhPZih0KTwwfSkpLmxlbmd0aClyZXR1cm5bMiwhMV07ci5sYWJlbD0xO2Nhc2UgMTpyZXR1cm4gci50cnlzLnB1c2goWzEsMywsNF0pLFs0LCgwLGkucmVxdWVzdCkodC53aWRnZXRUcmFja2VyVXJsKyIvdHJhY2svb3B0aW9ucz9rZXk9Ii5jb25jYXQodC5rZXksIiZvcHRpb25zPSIpLmNvbmNhdChuLmpvaW4oIiwiKSwiJmRvbWFpbj0iKS5jb25jYXQod2luZG93LmxvY2F0aW9uLmhvc3RuYW1lKSldO2Nhc2UgMjpyZXR1cm4gci5zZW50KCksWzIsITBdO2Nhc2UgMzpyZXR1cm4gci5zZW50KCksWzIsITFdO2Nhc2UgNDpyZXR1cm5bMl19fSl9KX07dmFyIGk9big4OTMpLHM9WyJodG1sOmFwcGx5IiwiY2hhdDptZXNzYWdlIiwib24iXSxhPVsid3d3LnNtYXJ0c3VwcC5jb20iLCJhcHAuc21hcnRzdXBwLmNvbSJdLGM9WyJrZXkiLCJnYU9wdGlvbnMiLCJnYU5hbWUiLCJjb29raWVQcmVmaXgiLCJjb29raWVQYXRoIiwiY3Jvc3NEb21haW5FbmFibGVkIiwicG9zaXRpb24iLCJvcGVuT25UcmlnZ2VyIl19LDg5Myh0LGUpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5wYXJzZUpTT049ZS5yZXF1ZXN0PWUuY3JlYXRlTGluaz1lLmNyZWF0ZVNjcmlwdD1lLnJlc29sdmVUYXJnZXRFbGVtZW50PWUubWVyZ2VEZWVwPXZvaWQgMDt2YXIgbj1mdW5jdGlvbih0KXtyZXR1cm4gdCYmIm9iamVjdCI9PXR5cGVvZiB0fTtlLm1lcmdlRGVlcD1mdW5jdGlvbigpe2Zvcih2YXIgdD1bXSxyPTA7cjxhcmd1bWVudHMubGVuZ3RoO3IrKyl0W3JdPWFyZ3VtZW50c1tyXTt2YXIgbz17fTtyZXR1cm4gdC5mb3JFYWNoKGZ1bmN0aW9uKHQpe09iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24ocil7dmFyIGk9b1tyXSxzPXRbcl07dm9pZCAwIT09cyYmKEFycmF5LmlzQXJyYXkoaSl8fEFycmF5LmlzQXJyYXkocyk/b1tyXT1zOm4oaSkmJm4ocyk/b1tyXT0oMCxlLm1lcmdlRGVlcCkoaSxzKTpvW3JdPXMpfSl9KSxvfSxlLnJlc29sdmVUYXJnZXRFbGVtZW50PWZ1bmN0aW9uKHQpe3JldHVybiB0IGluc3RhbmNlb2YgRWxlbWVudD90OiJzdHJpbmciPT10eXBlb2YgdD9kb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0KTpkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiYm9keSIpWzBdfSxlLmNyZWF0ZVNjcmlwdD1mdW5jdGlvbih0LGUpe3ZhciBuPXQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7cmV0dXJuIG4udHlwZT0idGV4dC9qYXZhc2NyaXB0IixuLmNoYXJzZXQ9InV0ZjgiLGUmJihuLnNyYz1lKSxufSxlLmNyZWF0ZUxpbms9ZnVuY3Rpb24odCxlKXt2YXIgbj10LmNyZWF0ZUVsZW1lbnQoImxpbmsiKTtyZXR1cm4gZSYmKG4uaHJlZj1lKSxufSxlLnJlcXVlc3Q9ZnVuY3Rpb24odCl7dmFyIGU9bmV3IFhNTEh0dHBSZXF1ZXN0O3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihuLHIpe2Uub25yZWFkeXN0YXRlY2hhbmdlPWZ1bmN0aW9uKCl7ND09PWUucmVhZHlTdGF0ZSYmKGUuc3RhdHVzPj0yMDAmJmUuc3RhdHVzPDMwMD9uKGUucmVzcG9uc2UpOnIobmV3IEVycm9yKCJSZXF1ZXN0IGZhaWxlZCB3aXRoIHN0YXR1cyAiLmNvbmNhdChlLnN0YXR1cykpKSl9LGUub3BlbigiR0VUIix0LCEwKSxlLnNldFJlcXVlc3RIZWFkZXIoIkNvbnRlbnQtVHlwZSIsInRleHQvcGxhaW4iKSxlLnNlbmQoKX0pfSxlLnBhcnNlSlNPTj1mdW5jdGlvbih0KXtpZihKU09OLnBhcnNlKXJldHVybiBKU09OLnBhcnNlKHQpO2lmKEpTT04uZGVjb2RlKXJldHVybiBKU09OLmRlY29kZSh0KTt0aHJvdyBuZXcgRXJyb3IoIlVuYWJsZSB0byBwYXJzZSBqc29uLiIpfX0sMTMwKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9dGhpcyYmdGhpcy5fX2F3YWl0ZXJ8fGZ1bmN0aW9uKHQsZSxuLHIpe3JldHVybiBuZXcobnx8KG49UHJvbWlzZSkpKGZ1bmN0aW9uKG8saSl7ZnVuY3Rpb24gcyh0KXt0cnl7YyhyLm5leHQodCkpfWNhdGNoKHQpe2kodCl9fWZ1bmN0aW9uIGEodCl7dHJ5e2Moci50aHJvdyh0KSl9Y2F0Y2godCl7aSh0KX19ZnVuY3Rpb24gYyh0KXt2YXIgZTt0LmRvbmU/byh0LnZhbHVlKTooZT10LnZhbHVlLGUgaW5zdGFuY2VvZiBuP2U6bmV3IG4oZnVuY3Rpb24odCl7dChlKX0pKS50aGVuKHMsYSl9Yygocj1yLmFwcGx5KHQsZXx8W10pKS5uZXh0KCkpfSl9LG89dGhpcyYmdGhpcy5fX2dlbmVyYXRvcnx8ZnVuY3Rpb24odCxlKXt2YXIgbixyLG8saSxzPXtsYWJlbDowLHNlbnQ6ZnVuY3Rpb24oKXtpZigxJm9bMF0pdGhyb3cgb1sxXTtyZXR1cm4gb1sxXX0sdHJ5czpbXSxvcHM6W119O3JldHVybiBpPXtuZXh0OmEoMCksdGhyb3c6YSgxKSxyZXR1cm46YSgyKX0sImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmKGlbU3ltYm9sLml0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSksaTtmdW5jdGlvbiBhKGEpe3JldHVybiBmdW5jdGlvbihjKXtyZXR1cm4gZnVuY3Rpb24oYSl7aWYobil0aHJvdyBuZXcgVHlwZUVycm9yKCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBleGVjdXRpbmcuIik7Zm9yKDtpJiYoaT0wLGFbMF0mJihzPTApKSxzOyl0cnl7aWYobj0xLHImJihvPTImYVswXT9yLnJldHVybjphWzBdP3IudGhyb3d8fCgobz1yLnJldHVybikmJm8uY2FsbChyKSwwKTpyLm5leHQpJiYhKG89by5jYWxsKHIsYVsxXSkpLmRvbmUpcmV0dXJuIG87c3dpdGNoKHI9MCxvJiYoYT1bMiZhWzBdLG8udmFsdWVdKSxhWzBdKXtjYXNlIDA6Y2FzZSAxOm89YTticmVhaztjYXNlIDQ6cmV0dXJuIHMubGFiZWwrKyx7dmFsdWU6YVsxXSxkb25lOiExfTtjYXNlIDU6cy5sYWJlbCsrLHI9YVsxXSxhPVswXTtjb250aW51ZTtjYXNlIDc6YT1zLm9wcy5wb3AoKSxzLnRyeXMucG9wKCk7Y29udGludWU7ZGVmYXVsdDppZighKChvPShvPXMudHJ5cykubGVuZ3RoPjAmJm9bby5sZW5ndGgtMV0pfHw2IT09YVswXSYmMiE9PWFbMF0pKXtzPTA7Y29udGludWV9aWYoMz09PWFbMF0mJighb3x8YVsxXT5vWzBdJiZhWzFdPG9bM10pKXtzLmxhYmVsPWFbMV07YnJlYWt9aWYoNj09PWFbMF0mJnMubGFiZWw8b1sxXSl7cy5sYWJlbD1vWzFdLG89YTticmVha31pZihvJiZzLmxhYmVsPG9bMl0pe3MubGFiZWw9b1syXSxzLm9wcy5wdXNoKGEpO2JyZWFrfW9bMl0mJnMub3BzLnBvcCgpLHMudHJ5cy5wb3AoKTtjb250aW51ZX1hPWUuY2FsbCh0LHMpfWNhdGNoKHQpe2E9WzYsdF0scj0wfWZpbmFsbHl7bj1vPTB9aWYoNSZhWzBdKXRocm93IGFbMV07cmV0dXJue3ZhbHVlOmFbMF0/YVsxXTp2b2lkIDAsZG9uZTohMH19KFthLGNdKX19fTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5TbWFydHN1cHBXaWRnZXQ9dm9pZCAwO3ZhciBpPW4oNzQwKSxzPW4oODkzKSxhPXdpbmRvdyxjPSItYXBwbGljYXRpb24taWZyYW1lIix1PWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCh0LGUsbil7aWYodm9pZCAwPT09biYmKG49W10pLHRoaXMuaWQ9dCx0aGlzLm9wdGlvbnM9ZSx0aGlzLl9wdXNoQXBpPW4sdGhpcy5yZW5kZXJlZD0hMSx0aGlzLmFwaT1udWxsLHRoaXMuZWw9bnVsbCx0aGlzLmZyYW1lPW51bGwsdGhpcy52ZXJzaW9uPTIsdGhpcy5pbml0aWFsaXplZD0hMSwhZS5ib290c3RyYXBVcmwpdGhyb3cgbmV3IEVycm9yKCJNaXNzaW5nIG9wdGlvbiBib290c3RyYXBVcmwiKTtpZighZS5rZXkpdGhyb3cgbmV3IEVycm9yKCJNaXNzaW5nIG9wdGlvbiBrZXkiKX1yZXR1cm4gdC5wcm90b3R5cGUuc2V0T3B0aW9ucz1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5vcHRpb25zPSgwLHMubWVyZ2VEZWVwKSh0aGlzLm9wdGlvbnMsdCksdGhpcy5mZWF0dXJlcyYmKHRoaXMuZmVhdHVyZXMucmF0aW5nfHwodGhpcy5vcHRpb25zLnJhdGluZ0VuYWJsZWQ9ITEpLHRoaXMuZmVhdHVyZXMuZ3JvdXBzfHwodGhpcy5vcHRpb25zLmdyb3VwU2VsZWN0RW5hYmxlZD0hMSksdGhpcy5mZWF0dXJlcy5jdXN0b21pemV8fCh0aGlzLm9wdGlvbnMuaGlkZVdpZGdldD0hMSx0aGlzLm9wdGlvbnMuaGlkZU9mZmxpbmVDaGF0PSExLHRoaXMub3B0aW9ucy5udW1iZXJDb250cm9sPSExLHRoaXMub3B0aW9ucy5yZXF1aXJlTG9naW49ITEsdGhpcy5vcHRpb25zLnByaXZhY3lOb3RpY2VFbmFibGVkPSEwLHRoaXMub3B0aW9ucy5vcmllbnRhdGlvbj0icmlnaHQiKSx0aGlzLmZlYXR1cmVzLmdhfHwodGhpcy5vcHRpb25zLmdvb2dsZUFuYWx5dGljc0VuYWJsZWQ9ITEpKSx0aGlzfSx0LnByb3RvdHlwZS5pbml0PWZ1bmN0aW9uKHQsZSl7dGhpcy5mZWF0dXJlcz1lLHRoaXMuc2V0T3B0aW9ucyh0KSx0aGlzLmluaXRpYWxpemVkPSEwLCJhdXRvIj09PXRoaXMub3B0aW9ucy5wb3NpdGlvbiYmKHRoaXMub3B0aW9ucy5wb3NpdGlvbj10aGlzLm9wdGlvbnMucmVuZGVyVG8/InJlbGF0aXZlIjoiZml4ZWQiKX0sdC5wcm90b3R5cGUuY3JlYXRlRnJhbWU9ZnVuY3Rpb24oKXt2YXIgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKTtyZXR1cm4gdC5pZD0iIi5jb25jYXQodGhpcy5pZCkuY29uY2F0KGMpLHQuc2V0QXR0cmlidXRlKCJ0aXRsZSIsIlNtYXJ0c3VwcCIpLHQuc2V0QXR0cmlidXRlKCJhcmlhLWhpZGRlbiIsInRydWUiKSx0LnN0eWxlLmRpc3BsYXk9ImJsb2NrIix0LnN0eWxlLnBvc2l0aW9uPSJmaXhlZCIsdC5zdHlsZS50b3A9IjAiLHQuc3R5bGUubGVmdD0iMCIsdC5zdHlsZS53aWR0aD0iMXB4Iix0LnN0eWxlLmhlaWdodD0iMXB4Iix0LnN0eWxlLm9wYWNpdHk9IjAiLHQuc3R5bGUuYm9yZGVyPSJub25lIix0LnN0eWxlLnpJbmRleD0iLTEiLHQuc3R5bGUucG9pbnRlckV2ZW50cz0ibm9uZSIsdH0sdC5wcm90b3R5cGUucmVuZGVyPWZ1bmN0aW9uKHQpe3JldHVybiByKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBlO3JldHVybiBvKHRoaXMsZnVuY3Rpb24obil7c3dpdGNoKG4ubGFiZWwpe2Nhc2UgMDpyZXR1cm4gdGhpcy5faW5pdFByb21pc2U/WzQsdGhpcy5faW5pdFByb21pc2VdOlszLDJdO2Nhc2UgMTpuLnNlbnQoKSxuLmxhYmVsPTI7Y2FzZSAyOmlmKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuaWQrYykpcmV0dXJuWzJdO2lmKCF0aGlzLmluaXRpYWxpemVkKXRocm93IG5ldyBFcnJvcigiZmFpbGVkIHRvIGluaXRpYWxpemUgd2lkZ2V0Iik7aWYoIShlPSgwLHMucmVzb2x2ZVRhcmdldEVsZW1lbnQpKHQpKSl0aHJvdyBuZXcgRXJyb3IoInRhcmdldCBlbGVtZW50IG5vdCBmb3VuZCIpO3JldHVybiB0aGlzLnJlbmRlckZyYW1lKGUpLHRoaXMucmVuZGVyZWQ9ITAsWzJdfX0pfSl9LHQucHJvdG90eXBlLnJlbmRlckZyYW1lPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMsbj10aGlzLmZyYW1lPXRoaXMuY3JlYXRlRnJhbWUoKTtuLmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLGZ1bmN0aW9uKCl7dmFyIHQsaSxhPW51bGwhPT0odD1uLmNvbnRlbnREb2N1bWVudCkmJnZvaWQgMCE9PXQ/dDpudWxsPT09KGk9bi5jb250ZW50V2luZG93KXx8dm9pZCAwPT09aT92b2lkIDA6aS5kb2N1bWVudDtpZighYSl0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBmaW5kIERvY3VtZW50Iik7dmFyIGM9YS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaGVhZCIpWzBdLHU9YS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiYm9keSIpWzBdO3UuaWQ9ImJvZHkiLHUuZGF0YXNldC5zbWFydHN1cHBJZD1lLmlkLHUuaW5uZXJIVE1MPSc8ZGl2IGlkPSJhcHAiPjwvZGl2Pic7dmFyIGw9InNyYy9tYWluLnRzIixwPWZ1bmN0aW9uKHQpe3ZhciBuPSgwLHMuY3JlYXRlU2NyaXB0KShhLGUuZ2V0QmFzZVVybCgpKyIvIi5jb25jYXQodCkpO24udHlwZT0ibW9kdWxlIixjLmFwcGVuZENoaWxkKG4pfSxmPWZ1bmN0aW9uKHQpe3ZhciBuPSgwLHMuY3JlYXRlTGluaykoYSwiIi5jb25jYXQoZS5nZXRCYXNlVXJsKCksIi8iKS5jb25jYXQodCkpO24ucmVsPSJzdHlsZXNoZWV0IixuLmNyb3NzT3JpZ2luPSJhbm9ueW1vdXMiLGMuYXBwZW5kQ2hpbGQobil9O2Uub3B0aW9ucy53aWRnZXRWM0Rldk1vZGU/WyJAdml0ZS9jbGllbnQiLGxdLmZvckVhY2gocCk6cihlLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgdCxuLHIsaTtyZXR1cm4gbyh0aGlzLGZ1bmN0aW9uKG8pe3N3aXRjaChvLmxhYmVsKXtjYXNlIDA6cmV0dXJuWzQsKDAscy5yZXF1ZXN0KSgiIi5jb25jYXQodGhpcy5nZXRCYXNlVXJsKCksIi9tYW5pZmVzdC5qc29uIikpLnRoZW4oZnVuY3Rpb24odCl7cmV0dXJuKDAscy5wYXJzZUpTT04pKHQpfSldO2Nhc2UgMTpyZXR1cm4gdD1vLnNlbnQoKSxuPXRbbF0scChuLmZpbGUpLG51bGw9PT0ocj1uLmltcG9ydHMpfHx2b2lkIDA9PT1yfHxyLmZvckVhY2goZnVuY3Rpb24obil7dmFyIHIsbztyPXRbbl0uZmlsZSwobz0oMCxzLmNyZWF0ZUxpbmspKGEsIiIuY29uY2F0KGUuZ2V0QmFzZVVybCgpLCIvIikuY29uY2F0KHIpKSkucmVsPSJtb2R1bGVwcmVsb2FkIixjLmFwcGVuZENoaWxkKG8pfSksbnVsbD09PShpPW4uY3NzKXx8dm9pZCAwPT09aXx8aS5mb3JFYWNoKGYpLGYodFsic3R5bGUuY3NzIl0uZmlsZSksWzJdfX0pfSl9KSx0LmFwcGVuZENoaWxkKG4pfSx0LnByb3RvdHlwZS5kZXN0cm95PWZ1bmN0aW9uKCl7dGhpcy5lbCYmdGhpcy5lbC5wYXJlbnROb2RlJiYodGhpcy5lbC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHRoaXMuZWwpLHRoaXMuZWw9bnVsbCl9LHQucHJvdG90eXBlLmdldE9wdGlvbj1mdW5jdGlvbih0LGUpe3JldHVybiB2b2lkIDA9PT10aGlzLm9wdGlvbnNbdF0/ZTp0aGlzLm9wdGlvbnNbdF19LHQucHJvdG90eXBlLmdldEJhc2VVcmw9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5vcHRpb25zLndpZGdldFYzVXJsfSx0LnByb3RvdHlwZS5nZXRBc3NldFVybD1mdW5jdGlvbih0KXtyZXR1cm4iIi5jb25jYXQodGhpcy5nZXRCYXNlVXJsKCksIi8iKS5jb25jYXQodCl9LHQucHJvdG90eXBlLmdldEludGVybmFsQXBpVXJsPWZ1bmN0aW9uKCl7cmV0dXJuIiIuY29uY2F0KHRoaXMub3B0aW9ucy5ib290c3RyYXBVcmwsIi93aWRnZXQvIikuY29uY2F0KHRoaXMub3B0aW9ucy5rZXksIi9jb2RlLmpzIil9LHQucHJvdG90eXBlLmV4ZWM9ZnVuY3Rpb24oKXtmb3IodmFyIHQ9W10sZT0wO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspdFtlXT1hcmd1bWVudHNbZV07dGhpcy5fcHVzaEFwaS5wdXNoKHQpfSx0LnByb3RvdHlwZS5pbnN0YWxsQXBpPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7aWYodGhpcy5hcGk9dCxhLnNtYXJ0c3VwcC5hcGk9dCx0aGlzLl9wdXNoQXBpJiYodGhpcy5fcHVzaEFwaS5mb3JFYWNoKGZ1bmN0aW9uKG4pe3ZhciByPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKG4sMCk7dHJ5e2Uub3B0aW9ucy53aWRnZXRUcmFja2VyRW5hYmxlZCYmKDAsaS50cmFja09wZXJhdGlvbikoZS5vcHRpb25zLHJbMF0pLHQuZXhlY3V0ZShyKX1jYXRjaCh0KXtjb25zb2xlLmxvZyh0KX19KSx0aGlzLl9wdXNoQXBpLnB1c2g9ZnVuY3Rpb24obil7dmFyIHI9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwobiwwKTt0cnl7ZS5vcHRpb25zLndpZGdldFRyYWNrZXJFbmFibGVkJiYoMCxpLnRyYWNrT3BlcmF0aW9uKShlLm9wdGlvbnMsclswXSksdC5leGVjdXRlKHIpfWNhdGNoKHQpe2NvbnNvbGUubG9nKHQpfX0pLHRoaXMub3B0aW9ucy5vblN0YXJ0dXApdHJ5e3RoaXMub3B0aW9ucy5vblN0YXJ0dXAodCl9Y2F0Y2godCl7Y29uc29sZS5sb2codCl9fSx0fSgpO2UuU21hcnRzdXBwV2lkZ2V0PXV9fSxlPXt9O2Z1bmN0aW9uIG4ocil7dmFyIG89ZVtyXTtpZih2b2lkIDAhPT1vKXJldHVybiBvLmV4cG9ydHM7dmFyIGk9ZVtyXT17ZXhwb3J0czp7fX07cmV0dXJuIHRbcl0uY2FsbChpLmV4cG9ydHMsaSxpLmV4cG9ydHMsbiksaS5leHBvcnRzfW4uZz1mdW5jdGlvbigpe2lmKCJvYmplY3QiPT10eXBlb2YgZ2xvYmFsVGhpcylyZXR1cm4gZ2xvYmFsVGhpczt0cnl7cmV0dXJuIHRoaXN8fG5ldyBGdW5jdGlvbigicmV0dXJuIHRoaXMiKSgpfWNhdGNoKHQpe2lmKCJvYmplY3QiPT10eXBlb2Ygd2luZG93KXJldHVybiB3aW5kb3d9fSgpLCgoKT0+eyJ1c2Ugc3RyaWN0IjtuKDc2MSk7dmFyIHQ9big3MTUpLGU9bigzNDUpLHI9ImNoYXQiO2lmKHdpbmRvdy5zbWFydHN1cHB8fCh3aW5kb3cuc21hcnRzdXBwPWZ1bmN0aW9uKCl7d2luZG93LnNtYXJ0c3VwcC5fLnB1c2goYXJndW1lbnRzKX0sd2luZG93LnNtYXJ0c3VwcC5fPVtdKSwhd2luZG93LlNNQVJUU1VQUF9MT0FERUQpe3dpbmRvdy5TTUFSVFNVUFBfTE9BREVEPSEwO3ZhciBvPW5ldyBlLlNtYXJ0c3VwcExvYWRlcih7d2lkZ2V0VmVyc2lvbjozLGJvb3RzdHJhcFVybDoiaHR0cHM6Ly9ib290c3RyYXAuc21hcnRzdXBwY2hhdC5jb20iLGZpbGVzVXJsOiJodHRwczovL2ZpbGVzLnNtYXJ0c3VwcGNkbi5jb20iLHdpZGdldFYzVXJsOiJodHRwczovL3dpZGdldC12My5zbWFydHN1cHBjZG4uY29tIixzdG9yYWdlVXJsOiJodHRwczovL3trZXl9LnN0b3JhZ2Uuc21hcnRzdXBwY2hhdC5jb20iLHdpZGdldEFwaVVybDoiaHR0cHM6Ly9hcGkuc21hcnRzdXBwY2hhdC5jb20iLHpJbmRleDoxZTcscG9zaXRpb246ImF1dG8iLG9yaWVudGF0aW9uOiJyaWdodCIsYXV0b0lubGluZU1vZGU6ITAsd2lkZ2V0VjNEZXZNb2RlOiExfSk7d2luZG93LiRzbWFydHN1cHA9byx3aW5kb3cuc21hcnRzdXBwPU9iamVjdC5hc3NpZ24od2luZG93LnNtYXJ0c3VwcCx7Y2hhdHM6by53aWRnZXRzLGNyZWF0ZTpvLmNyZWF0ZS5iaW5kKG8pLGNyZWF0ZVdpZGdldDpvLmNyZWF0ZVdpZGdldC5iaW5kKG8pLGdldENoYXQ6by5nZXRDaGF0LmJpbmQobyksZ2V0V2lkZ2V0Om8uZ2V0V2lkZ2V0LmJpbmQobyksc2V0RGVmYXVsdHM6by5zZXREZWZhdWx0cy5iaW5kKG8pfSksITEhPT13aW5kb3cuU01BUlRTVVBQX0FVVE9DUkVBVEUmJighMD09PXdpbmRvdy5TTUFSVFNVUFBfQkZDQUNIRSYmKHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJwYWdlc2hvdyIsZnVuY3Rpb24oKXt2YXIgdDtudWxsPT09KHQ9d2luZG93LnNtYXJ0c3VwcC5nZXRXaWRnZXQocikpfHx2b2lkIDA9PT10fHx0LnJlbmRlcigpfSksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImJlZm9yZXVubG9hZCIsZnVuY3Rpb24oKXt2YXIgdCxlO251bGw9PT0odD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjIi5jb25jYXQociwiLWFwcGxpY2F0aW9uLWlmcmFtZSIpKSl8fHZvaWQgMD09PXR8fHQucmVtb3ZlKCksbnVsbD09PShlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNzbWFydHN1cHAtd2lkZ2V0LWNvbnRhaW5lciIpKXx8dm9pZCAwPT09ZXx8ZS5yZW1vdmUoKX0pKSx0KGZ1bmN0aW9uKCl7d2luZG93LnNtYXJ0c3VwcCgiaHRtbDphcHBseSIsZG9jdW1lbnQpLG8uY3JlYXRlV2lkZ2V0KHIsd2luZG93Ll9zbWFydHN1cHAsd2luZG93LnNtYXJ0c3VwcC5fKS50aGVuKGZ1bmN0aW9uKHQpe3JldHVybiB0LnJlbmRlcigpfSkuY2F0Y2goZnVuY3Rpb24odCl7Y29uc29sZS53YXJuKHQpfSl9KSl9fSkoKX0pKCk7"}},"time_used":3501,"timings":{"blocked":-1,"dns":15,"connect":18,"send":0,"wait":10,"receive":0,"ssl":3458},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/en.16193.ba075f895c6ed057c11c.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.111Z","timestamp":1785148034111,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/en.16193.ba075f895c6ed057c11c.js HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding, Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\netag: W/\"69f98b72-154\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Tue, 05 May 2026 06:17:22 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.51\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 05/05/2026 10:16:50\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 7ff6bd0db1b569558214fb897f277687\r\ncdn-cache: HIT\r\ncontent-encoding: br\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":340,"size_decoded":1001,"mime_type":"application/javascript; charset=utf-8","magic":"ASCII text, with very long lines (340), with no line terminators","md5":"5ffc24a684cc802b7c100f2bd550db9f","sha1":"b566199860bd35dadee744f2ca93987c9fd7d81d","sha256":"c54bf8e5790bf29f7fdee0e7434ac170011edad6053be09f6b60d44ad7568e06","sha512":"f810b69576133f10a55ec59fee0e46a450731cbf26f01155ab1f66b2ed4b100bbef9e4d74b9d95d2032a5c84713b3dfc85f01c946ce927039e4c4c5645b70994","ssdeep":"","tlshash":"c5e0c203e160f8a17e7ade043b508de630f4b08114f2d0ceb3282f51c017c352810b6c","first_seen":"2026-05-05T12:17:23.646279Z","last_seen":"2026-07-27T12:48:39.662941Z","times_seen":360,"resource_available":true,"data":"KHNlbGYud2VicGFja0NodW5rdHJhZGluZ3ZpZXc9c2VsZi53ZWJwYWNrQ2h1bmt0cmFkaW5ndmlld3x8W10pLnB1c2goW1sxNjE5M10sezMxNzI5KGUpe2UuZXhwb3J0cz1bImRheXMiXX0sODAwMDA5KGUpe2UuZXhwb3J0cz1bImhvdXJzIl19LDU1NDY1MShlKXtlLmV4cG9ydHM9WyJtb250aHMiXX0sMzQzNzU3KGUpe2UuZXhwb3J0cz1bIm1pbnV0ZXMiXX0sOTczMzQ3KGUpe2UuZXhwb3J0cz1bInJhbmdlIl19LDU0ODM3NChlKXtlLmV4cG9ydHM9WyJ3ZWVrcyJdfSwzNjkxMjkoZSl7ZS5leHBvcnRzPVsidGlja3MiXX0sNTQwOTEwKGUpe2UuZXhwb3J0cz1bIlZpZXcgT25seSBNb2RlIl19fV0pOw=="}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/61821.f64d1e2c6b1e30dfd54e.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.764Z","timestamp":1785148034764,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/61821.f64d1e2c6b1e30dfd54e.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\ncontent-type: text/css; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a58ab11-b8a\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Thu, 16 Jul 2026 09:57:37 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/16/2026 11:04:45\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 40fa77df3a0ccb2244fe6f0ffcc7bab2\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":2954,"size_decoded":1742,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with very long lines (2954), with no line terminators","md5":"541fca32bea40cb0e7f9e3297e92e21b","sha1":"ca4b9473fd365d6a2eacda23e1a345a2ac9db4d2","sha256":"46cb952d520d3fcca1e95eac53cb90a2f423fbb1f9a1643348605c42a4e60754","sha512":"2d4f1394c4f8721990fa8cc24f63f7106e54fd22682bd12deef81d529a4e6cc7a1b10e1987a44a640119ae2989fd6c7080118b1669fa62815e298dbaa0d214b5","ssdeep":"","tlshash":"0551aa5fbbac457575e3492e330e87b81280b5b39d42c9e8f928da48dfc3ee20059391","first_seen":"2026-07-22T10:21:05.00032Z","last_seen":"2026-07-27T10:28:13.782582Z","times_seen":8,"resource_available":false,"data":"W2RhdGEtdGhlbWU9bGlnaHRdey0tXzQtdlhsMzpub25lfVtkYXRhLXRoZW1lPWRhcmtdey0tXzQtdlhsMzppbnZlcnQoMSl9W2RhdGEtdGhlbWU9bGlnaHRdey0tXzAtdlhsMzp2YXIoLS1jb2xvci13aGl0ZSk7LS1fMS12WGwzOnZhcigtLWNvbG9yLWNvbGQtZ3JheS0yMDApOy0tXzItdlhsMzp2YXIoLS1jb2xvci1jb2xkLWdyYXktMzAwKTstLV8zLXZYbDM6dmFyKC0tY29sb3ItY29sZC1ncmF5LTQwMCl9W2RhdGEtdGhlbWU9ZGFya117LS1fMC12WGwzOnZhcigtLWNvbG9yLWNvbGQtZ3JheS05MDApOy0tXzEtdlhsMzp2YXIoLS1jb2xvci1jb2xkLWdyYXktNjUwKTstLV8yLXZYbDM6dmFyKC0tY29sb3ItY29sZC1ncmF5LTQ1MCk7LS1fMy12WGwzOnZhcigtLWNvbG9yLWNvbGQtZ3JheS0zNTApfS50ZXh0YXJlYS1jb250YWluZXItbXFoc2xhZUl7Zm9udC1mYW1pbHk6LWFwcGxlLXN5c3RlbSxCbGlua01hY1N5c3RlbUZvbnQsVHJlYnVjaGV0IE1TLFJvYm90byxVYnVudHUsc2Fucy1zZXJpZjtmb250LWZlYXR1cmUtc2V0dGluZ3M6InRudW0iIG9uLCJsbnVtIiBvbjtmb250LXN0eWxlOm5vcm1hbDstLXVpLWxpYi10eXBvZ3JhcGh5LWZvbnQtc2l6ZToxNnB4O2ZvbnQtc2l6ZTp2YXIoLS11aS1saWItdHlwb2dyYXBoeS1mb250LXNpemUpO2ZvbnQtd2VpZ2h0OjQwMDstLXVpLWxpYi10eXBvZ3JhcGh5LWxpbmUtaGVpZ2h0OjI0cHg7bGluZS1oZWlnaHQ6dmFyKC0tdWktbGliLXR5cG9ncmFwaHktbGluZS1oZWlnaHQpO3Jlc2l6ZTpub25lfS50ZXh0YXJlYS1jb250YWluZXItbXFoc2xhZUkuY2hhbmdlLWhpZ2hsaWdodC1tcWhzbGFlSS5mb2N1c2VkLW1xaHNsYWVJe2JvcmRlci1jb2xvcjp2YXIoLS11aS1saWItaW50ZW50LWNvbG9yLHZhcigtLWNvbG9yLWNvbnRyb2wtaW50ZW50LWRlZmF1bHQpKX1AbWVkaWEgKGFueS1ob3Zlcjpob3Zlcil7LnRleHRhcmVhLWNvbnRhaW5lci1tcWhzbGFlSS5jaGFuZ2UtaGlnaGxpZ2h0LW1xaHNsYWVJLmZvY3VzZWQtbXFoc2xhZUk6aG92ZXJ7Ym9yZGVyLWNvbG9yOnZhcigtLXVpLWxpYi1pbnRlbnQtY29sb3IsdmFyKC0tY29sb3ItY29udHJvbC1pbnRlbnQtZGVmYXVsdCkpfX0udGV4dGFyZWEtY29udGFpbmVyLW1xaHNsYWVJLnJlc2l6ZS12ZXJ0aWNhbC1tcWhzbGFlSXtvdmVyZmxvdzpoaWRkZW47cmVzaXplOnZlcnRpY2FsfS50ZXh0YXJlYS1jb250YWluZXItbXFoc2xhZUkucmVzaXplLWhvcml6b250YWwtbXFoc2xhZUl7b3ZlcmZsb3c6aGlkZGVuO3Jlc2l6ZTpob3Jpem9udGFsfS50ZXh0YXJlYS1jb250YWluZXItbXFoc2xhZUkucmVzaXplLWJvdGgtbXFoc2xhZUl7b3ZlcmZsb3c6aGlkZGVuO3Jlc2l6ZTpib3RofS50ZXh0YXJlYS1jb250YWluZXItbXFoc2xhZUkgOjotd2Via2l0LXNjcm9sbGJhcntjdXJzb3I6cG9pbnRlcjt3aWR0aDo0cHh9LnRleHRhcmVhLWNvbnRhaW5lci1tcWhzbGFlSSA6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1ie2JhY2tncm91bmQ6dmFyKC0tXzEtdlhsMyk7Ym9yZGVyLXJhZGl1czo4cHg7Y3Vyc29yOnBvaW50ZXI7cGFkZGluZy1pbmxpbmUtc3RhcnQ6MTVweH1AbWVkaWEgKGFueS1ob3Zlcjpob3Zlcil7LnRleHRhcmVhLWNvbnRhaW5lci1tcWhzbGFlSSA6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVye2JhY2tncm91bmQ6dmFyKC0tXzItdlhsMyl9fS50ZXh0YXJlYS1jb250YWluZXItbXFoc2xhZUkgOjotd2Via2l0LXNjcm9sbGJhci10aHVtYjphY3RpdmV7YmFja2dyb3VuZDp2YXIoLS1fMy12WGwzKX0udGV4dGFyZWEtbXFoc2xhZUl7LXdlYmtpdC1hcHBlYXJhbmNlOmF1dG87YXBwZWFyYW5jZTp0ZXh0ZmllbGQ7YmFja2dyb3VuZC1jb2xvcjppbml0aWFsO2JvcmRlcjowO2Rpc3BsYXk6YmxvY2s7aGVpZ2h0OjEwMCU7bWFyZ2luOjA7bWluLXdpZHRoOjA7b3V0bGluZTowO3dpZHRoOjEwMCU7LXdlYmtpdC10ZXh0LWZpbGwtY29sb3I6dmFyKC0tdWktbGliLWNvbnRyb2wtdGV4dC1maWxsLWNvbG9yLGN1cnJlbnRDb2xvcik7Ym94LXNpemluZzpib3JkZXItYm94O2N1cnNvcjphdXRvO2ZvbnQtZmFtaWx5OmluaGVyaXQ7Zm9udC1zaXplOmluaGVyaXQ7bGluZS1oZWlnaHQ6aW5oZXJpdDtvcmRlcjowO3BhZGRpbmc6MnB4IDVweDtyZXNpemU6bm9uZX0udGV4dGFyZWEtbXFoc2xhZUk6OnBsYWNlaG9sZGVye2NvbG9yOnZhcigtLWNvbG9yLXRleHQtZmllbGQtcGxhY2Vob2xkZXItZGVmYXVsdCk7LXdlYmtpdC10ZXh0LWZpbGwtY29sb3I6Y3VycmVudENvbG9yO29wYWNpdHk6MX0udGV4dGFyZWEtbXFoc2xhZUk6Oi13ZWJraXQtY2FsZW5kYXItcGlja2VyLWluZGljYXRvciwudGV4dGFyZWEtbXFoc2xhZUk6Oi13ZWJraXQtY2xlYXItYnV0dG9uLC50ZXh0YXJlYS1tcWhzbGFlSTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbiwudGV4dGFyZWEtbXFoc2xhZUk6Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24sLnRleHRhcmVhLW1xaHNsYWVJOjotd2Via2l0LXNlYXJjaC1jYW5jZWwtYnV0dG9uey13ZWJraXQtYXBwZWFyYW5jZTpub25lO2FwcGVhcmFuY2U6bm9uZX0udGV4dGFyZWEtbXFoc2xhZUk6LXdlYmtpdC1hdXRvZmlsbCwudGV4dGFyZWEtbXFoc2xhZUk6LXdlYmtpdC1hdXRvZmlsbDphY3RpdmUsLnRleHRhcmVhLW1xaHNsYWVJOi13ZWJraXQtYXV0b2ZpbGw6Zm9jdXN7Ym9yZGVyLXJhZGl1czo2cHh9QG1lZGlhIChhbnktaG92ZXI6aG92ZXIpey50ZXh0YXJlYS1tcWhzbGFlSTotd2Via2l0LWF1dG9maWxsOmhvdmVye2JvcmRlci1yYWRpdXM6NnB4fX0udGV4dGFyZWEtbXFoc2xhZUk6Oi13ZWJraXQtY2FsZW5kYXItcGlja2VyLWluZGljYXRvcntmaWx0ZXI6dmFyKC0tXzQtdlhsMyl9LndpdGgtaWNvbi1tcWhzbGFlSXtoZWlnaHQ6MjJweDtpbnNldC1pbmxpbmUtZW5kOjA7cG9zaXRpb246YWJzb2x1dGU7dG9wOjZweH0uZW5kc2xvdC1tcWhzbGFlSXtwYWRkaW5nLWlubGluZS1lbmQ6MjVweH0="}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/5689.07d0d8524ba4b9af4adb.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.809Z","timestamp":1785148034809,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/5689.07d0d8524ba4b9af4adb.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\ncontent-type: text/css; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding, Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\netag: W/\"69f98b77-2f1\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Tue, 05 May 2026 06:17:27 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.51\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 05/05/2026 10:18:38\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 02be0fe915828aaddfbd3ba82b823cbb\r\ncdn-cache: HIT\r\ncontent-encoding: br\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":753,"size_decoded":1222,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with very long lines (753), with no line terminators","md5":"31a1b8468e4740874475960e2f006528","sha1":"168ae8114129b867da7d29955f7c8575f18097a2","sha256":"e11e73c87fde84492c8a85bd5e315a1ba15cedfbf3f8fb62dcbe5e492c0a9c2e","sha512":"4fd409b36168e7c4c7d72b8442301e2bc18b89df39acb97b73cab0531d65b9e176b3b673208330783280e206c43004f078b82ac05cc08ed28c1f8e987b252eca","ssdeep":"","tlshash":"c801ce8af3104534b45348756695b50e6010d835a807c1fec8669b2c89c76fe22ac305","first_seen":"2026-03-17T13:25:24.73379Z","last_seen":"2026-07-27T10:28:13.770619Z","times_seen":23,"resource_available":false,"data":"LmxlZ2VuZC1VRkdha0dEWHtkaXNwbGF5OmZsZXg7ZmxleC13cmFwOndyYXA7anVzdGlmeS1jb250ZW50OmNlbnRlcjttYXJnaW4tYm90dG9tOnZhcigtLWRldGFpbHMtY2hhcnQtbGVnZW5kLW1hcmdpbi1ib3R0b20sMCk7bWFyZ2luLXRvcDo4cHh9LmxhYmVsLVVGR2FrR0RYe2Rpc3BsYXk6aW5saW5lLWJsb2NrO2ZvbnQtZmFtaWx5Oi1hcHBsZS1zeXN0ZW0sQmxpbmtNYWNTeXN0ZW1Gb250LFRyZWJ1Y2hldCBNUyxSb2JvdG8sVWJ1bnR1LHNhbnMtc2VyaWY7Zm9udC1mZWF0dXJlLXNldHRpbmdzOiJ0bnVtIiBvbiwibG51bSIgb247Zm9udC1zdHlsZTpub3JtYWw7bWF4LXdpZHRoOjEwMCU7cGFkZGluZzowIDhweDt0ZXh0LWFsaWduOmNlbnRlcjstLXVpLWxpYi10eXBvZ3JhcGh5LWZvbnQtc2l6ZToxMnB4O2ZvbnQtc2l6ZTp2YXIoLS11aS1saWItdHlwb2dyYXBoeS1mb250LXNpemUpO2ZvbnQtd2VpZ2h0OjQwMDstLXVpLWxpYi10eXBvZ3JhcGh5LWxpbmUtaGVpZ2h0OjE2cHg7bGluZS1oZWlnaHQ6dmFyKC0tdWktbGliLXR5cG9ncmFwaHktbGluZS1oZWlnaHQpfS5zd2F0Y2gtVUZHYWtHRFh7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1kZXRhaWxzLWNoYXJ0LXNlcmllcy1sZWdlbmQtY29sb3IpO21hcmdpbi1pbmxpbmUtZW5kOjRweH0ubGFiZWxUZXh0LVVGR2FrR0RYe2NvbG9yOnZhcigtLWNvbG9yLWNvbnRlbnQtdGV4dC1zb2NpYWwtc2Vjb25kYXJ5KTtjdXJzb3I6ZGVmYXVsdDt3b3JkLWJyZWFrOmJyZWFrLXdvcmR9"}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"s.tradingview.com/support/support-portal-problems/?language=en","fqdn":"s.tradingview.com","domain":"tradingview.com","tld":"com"},"ip":{"addr":"3.164.240.120","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"fetch","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.328Z","timestamp":1785148034328,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"tradingview.com","organization":""},"issuer":{"commonName":"Amazon RSA 2048 M04","organization":"Amazon"},"validity":{"start":"Fri, 12 Dec 2025 00:00:00 GMT","end":"Sun, 10 Jan 2027 23:59:59 GMT"},"fingerprint":{"sha1":"93:7A:32:54:9B:07:78:A4:C2:12:01:FE:F8:01:86:4E:F4:B0:E5:88","sha256":"DC:6B:BC:C2:10:66:1A:99:2E:BE:17:BD:A9:27:49:E3:D8:CA:EB:13:B6:95:9C:BF:68:76:22:17:62:D1:05:57"}}},"request":{"raw":"GET /support/support-portal-problems/?language=en HTTP/1.1\r\nHost: s.tradingview.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\nReferer: https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en\r\nx-language: en\r\nx-requested-with: XMLHttpRequest\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: empty\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=4\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 301 \r\ncontent-type: text/html; charset=utf-8\r\ncontent-length: 0\r\nage: 1\r\ndate: Mon, 27 Jul 2026 10:27:13 GMT\r\nstrict-transport-security: max-age=63072000; includeSubDomains; preload\r\nlocation: https://www.tradingview.com/support/support-portal-problems/?language=en\r\nexpires: Mon, 27 Jul 2026 10:29:13 GMT\r\ncache-control: max-age=120\r\ncontent-security-policy: base-uri 'none'; frame-ancestors 'none'; default-src 'self' https: data: blob: wss: 'unsafe-inline'; script-src https://static.tradingview.com/static/ blob: https://*.ampproject.org/ https://*.paypal.com/ https://platform.twitter.com https://platform.x.com https://songbird.cardinalcommerce.com/edge/v1/ https://checkout.razorpay.com/ https://cdn.razorpay.com/static/cx/ https://*.checkout.com/ https://*.revolut.com/ https://*.cardinaltrusted.com https://pay.google.com/gp/p/js/ https://applepay.cdn-apple.com/jsapi/ https://tradingview-gateway.com/; object-src 'none'\r\ncross-origin-opener-policy: same-origin-allow-popups\r\nreferrer-policy: origin-when-cross-origin, origin-when-cross-origin\r\nx-content-type-options: nosniff, nosniff\r\nserver: tv\r\nx-cache: Hit from cloudfront\r\nalt-svc: h3=\":443\"; ma=86400\r\nvia: 1.1 2a2ba6f088b375d3f94873d8314f8f58.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: ARN53-P2\r\nx-amz-cf-id: Kat_8cgE9sSkqKSTvx2QAldjoiE-IAp2zro6kW1Lne_n5OJVOSKiYA==\r\n\r\n","headers":null,"cookies":null,"status_code":"301","status_text":"","fingerprints":[{"name":"Amazon Web Services","description":"Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.","website":"https://aws.amazon.com/","common_platform_enumeration":"","icon":"Amazon Web Services.svg","categories":["PaaS"]},{"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":"PayPal","description":"PayPal is an online payments system that supports online money transfers and serves as an electronic alternative to traditional paper methods like checks and money orders.","website":"https://paypal.com","common_platform_enumeration":"cpe:2.3:a:paypal:paypal:*:*:*:*:*:*:*:*","icon":"PayPal.svg","categories":["Payment processors"]},{"name":"Amazon CloudFront","description":"Amazon CloudFront is a fast content delivery network (CDN) service that securely delivers data, videos, applications, and APIs to customers globally with low latency, high transfer speeds.","website":"https://aws.amazon.com/cloudfront/","common_platform_enumeration":"","icon":"Amazon Cloudfront.svg","categories":["CDN"]}],"data":{"size":0,"size_decoded":0,"mime_type":"application/json","magic":"","md5":"d41d8cd98f00b204e9800998ecf8427e","sha1":"da39a3ee5e6b4b0d3255bfef95601890afd80709","sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha512":"cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e","ssdeep":"","tlshash":"","first_seen":"0001-01-01T00:00:00Z","last_seen":"2026-07-27T13:01:10.036638Z","times_seen":17563461,"resource_available":true,"data":null}},"time_used":37,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":37,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/68579.c01874ae93fcee94b388.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.543Z","timestamp":1785148034543,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/68579.c01874ae93fcee94b388.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\ncontent-type: text/css; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a58aaad-2a1f\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Thu, 16 Jul 2026 09:55:57 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/16/2026 11:04:00\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 35c27d8110dcb0a93956cce5a86062f1\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":10783,"size_decoded":2690,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with very long lines (10783), with no line terminators","md5":"fa7f8fb2c882b86ce2297d5ec8f8c3c7","sha1":"7dcc4c932f65d8e4a4f494adfd8b07ffc516474d","sha256":"55a37e974c0ac5f66b82653439edbb40d4dee8124dd99c20e4ac3ebe71fb8b1a","sha512":"e3066a983701dbede5a2ca78ea4e2772cf475dd653f0abcea2f4361bcebf6af3e7f15be3601d1e9d13cb51435e38e2ddd68801a0e79192a3811394a95495b136","ssdeep":"48:aXKwKDRwKhJ+wKrq+hYy9F9ChMdYny9F9Cvq5OfG9i9EMdYny9599cYny9F9Xvje:aXk1yubv92vhg+nmMKTzU3VSIfnmM55A","tlshash":"4022324c51c8ed3a3c2745f6f31c96fe11649ca8db261edbb6ed782a04c17f101b961a","first_seen":"2026-07-19T21:33:34.112713Z","last_seen":"2026-07-27T12:48:39.747823Z","times_seen":56,"resource_available":false,"data":"LndyYXBwZXItZVRmR0RhRXJ7bWF4LXdpZHRoOjEwMCU7d2lkdGg6dmFyKC0tdWktbGliLXByaXZhdGUtcGlsbC13aWR0aCxhdXRvKX0uc3RyZXRjaC1lVGZHRGFFcnstLXVpLWxpYi1wcml2YXRlLXBpbGwtd2lkdGg6MTAwJX0uZGlzYWJsZWQtZVRmR0RhRXJ7b3BhY2l0eTouNX0uc3F1YXJlLWVUZkdEYUVyey0tdWktbGliLXByaXZhdGUtcGlsbC1yYWRpdXM6NnB4fS54c21hbGwtZVRmR0RhRXJ7LS11aS1saWItcHJpdmF0ZS1waWxsLWhlaWdodDoyOHB4O2ZvbnQtZmFtaWx5Oi1hcHBsZS1zeXN0ZW0sQmxpbmtNYWNTeXN0ZW1Gb250LFRyZWJ1Y2hldCBNUyxSb2JvdG8sVWJ1bnR1LHNhbnMtc2VyaWY7Zm9udC1mZWF0dXJlLXNldHRpbmdzOiJ0bnVtIiBvbiwibG51bSIgb247Zm9udC1zdHlsZTpub3JtYWw7LS11aS1saWItdHlwb2dyYXBoeS1mb250LXNpemU6MTRweDtmb250LXNpemU6dmFyKC0tdWktbGliLXR5cG9ncmFwaHktZm9udC1zaXplKTtmb250LXdlaWdodDo0MDA7LS11aS1saWItdHlwb2dyYXBoeS1saW5lLWhlaWdodDoxOHB4O2xpbmUtaGVpZ2h0OnZhcigtLXVpLWxpYi10eXBvZ3JhcGh5LWxpbmUtaGVpZ2h0KX0ueHNtYWxsLWVUZkdEYUVyLnJvdW5kLWVUZkdEYUVyey0tdWktbGliLXByaXZhdGUtcGlsbC1yYWRpdXM6MTRweH0uc21hbGwtZVRmR0RhRXJ7LS11aS1saWItcHJpdmF0ZS1waWxsLWhlaWdodDozNHB4O2ZvbnQtZmFtaWx5Oi1hcHBsZS1zeXN0ZW0sQmxpbmtNYWNTeXN0ZW1Gb250LFRyZWJ1Y2hldCBNUyxSb2JvdG8sVWJ1bnR1LHNhbnMtc2VyaWY7Zm9udC1mZWF0dXJlLXNldHRpbmdzOiJ0bnVtIiBvbiwibG51bSIgb247Zm9udC1zdHlsZTpub3JtYWw7LS11aS1saWItdHlwb2dyYXBoeS1mb250LXNpemU6MTZweDtmb250LXNpemU6dmFyKC0tdWktbGliLXR5cG9ncmFwaHktZm9udC1zaXplKTtmb250LXdlaWdodDo0MDA7LS11aS1saWItdHlwb2dyYXBoeS1saW5lLWhlaWdodDoyNHB4O2xpbmUtaGVpZ2h0OnZhcigtLXVpLWxpYi10eXBvZ3JhcGh5LWxpbmUtaGVpZ2h0KX0uc21hbGwtZVRmR0RhRXIucm91bmQtZVRmR0RhRXJ7LS11aS1saWItcHJpdmF0ZS1waWxsLXJhZGl1czoxN3B4fS5tZWRpdW0tZVRmR0RhRXJ7LS11aS1saWItcHJpdmF0ZS1waWxsLWhlaWdodDo0MHB4O2ZvbnQtZmFtaWx5Oi1hcHBsZS1zeXN0ZW0sQmxpbmtNYWNTeXN0ZW1Gb250LFRyZWJ1Y2hldCBNUyxSb2JvdG8sVWJ1bnR1LHNhbnMtc2VyaWY7Zm9udC1mZWF0dXJlLXNldHRpbmdzOiJ0bnVtIiBvbiwibG51bSIgb247Zm9udC1zdHlsZTpub3JtYWw7LS11aS1saWItdHlwb2dyYXBoeS1mb250LXNpemU6MTZweDtmb250LXNpemU6dmFyKC0tdWktbGliLXR5cG9ncmFwaHktZm9udC1zaXplKTtmb250LXdlaWdodDo0MDA7LS11aS1saWItdHlwb2dyYXBoeS1saW5lLWhlaWdodDoyNHB4O2xpbmUtaGVpZ2h0OnZhcigtLXVpLWxpYi10eXBvZ3JhcGh5LWxpbmUtaGVpZ2h0KX0ubWVkaXVtLWVUZkdEYUVyLnJvdW5kLWVUZkdEYUVyey0tdWktbGliLXByaXZhdGUtcGlsbC1yYWRpdXM6MjBweH0ucHJpbWFyeS1lVGZHRGFFcnstLXVpLWxpYi1wcml2YXRlLXBpbGwtYm9yZGVyOm5vbmU7LS11aS1saWItcHJpdmF0ZS1waWxsLWRlZmF1bHQtYmFja2dyb3VuZDp2YXIoLS1jb2xvci1jb250YWluZXItZmlsbC1wcmltYXJ5LW5ldXRyYWwtZXh0cmEtbGlnaHQpOy0tdWktbGliLXByaXZhdGUtcGlsbC1ob3Zlci1iYWNrZ3JvdW5kOnZhcigtLWNvbG9yLWNvbnRhaW5lci1maWxsLXByaW1hcnktbmV1dHJhbC1saWdodCk7LS11aS1saWItcHJpdmF0ZS1waWxsLWFjdGl2ZS1iYWNrZ3JvdW5kOnZhcigtLWNvbG9yLWNvbnRhaW5lci1maWxsLXByaW1hcnktbmV1dHJhbC1ub3JtYWwpOy0tdWktbGliLXByaXZhdGUtcGlsbC1kaXZpZGVyLWNvbG9yOnZhcigtLWNvbG9yLWNvbnRhaW5lci1maWxsLXByaW1hcnktbmV1dHJhbC1ub3JtYWwpOy0tdWktbGliLXByaXZhdGUtcGlsbC10ZXh0OnZhcigtLWNvbG9yLWNvbnRlbnQtcHJpbWFyeS1uZXV0cmFsLWJvbGQpOy0tdWktbGliLXByaXZhdGUtcGlsbC1hY3RpdmUtdGV4dDp2YXIoLS1jb2xvci1jb250ZW50LXByaW1hcnktbmV1dHJhbC1ib2xkKX0uc2Vjb25kYXJ5LWVUZkdEYUVyey0tdWktbGliLXByaXZhdGUtcGlsbC1ib3JkZXI6MXB4IHNvbGlkIHZhcigtLWNvbG9yLWJvcmRlci1wcmltYXJ5LW5ldXRyYWwtbGlnaHQpOy0tdWktbGliLXByaXZhdGUtcGlsbC1kZWZhdWx0LWJhY2tncm91bmQ6IzAwMDA7LS11aS1saWItcHJpdmF0ZS1waWxsLWhvdmVyLWJhY2tncm91bmQ6dmFyKC0tY29sb3ItY29udGFpbmVyLWZpbGwtcHJpbWFyeS1uZXV0cmFsLWV4dHJhLWxpZ2h0KTstLXVpLWxpYi1wcml2YXRlLXBpbGwtYWN0aXZlLWJhY2tncm91bmQ6dmFyKC0tY29sb3ItY29udGFpbmVyLWZpbGwtcHJpbWFyeS1uZXV0cmFsLWxpZ2h0KTstLXVpLWxpYi1wcml2YXRlLXBpbGwtZGl2aWRlci1jb2xvcjp2YXIoLS1jb2xvci1ib3JkZXItcHJpbWFyeS1uZXV0cmFsLWxpZ2h0KTstLXVpLWxpYi1wcml2YXRlLXBpbGwtdGV4dDp2YXIoLS1jb2xvci1jb250ZW50LXByaW1hcnktbmV1dHJhbC1ib2xkKTstLXVpLWxpYi1wcml2YXRlLXBpbGwtYWN0aXZlLXRleHQ6dmFyKC0tY29sb3ItY29udGVudC1wcmltYXJ5LW5ldXRyYWwtYm9sZCl9LnRlcnRpYXJ5LWVUZkdEYUVyey0tdWktbGliLXByaXZhdGUtcGlsbC1ib3JkZXI6bm9uZTstLXVpLWxpYi1wcml2YXRlLXBpbGwtZGVmYXVsdC1iYWNrZ3JvdW5kOnZhcigtLWNvbG9yLWNvbnRhaW5lci1maWxsLXByaW1hcnktbmV1dHJhbC1leHRyYS1ib2xkKTstLXVpLWxpYi1wcml2YXRlLXBpbGwtaG92ZXItYmFja2dyb3VuZDp2YXIoLS1jb2xvci1jb250YWluZXItZmlsbC1wcmltYXJ5LW5ldXRyYWwtYm9sZCk7LS11aS1saWItcHJpdmF0ZS1waWxsLWFjdGl2ZS1iYWNrZ3JvdW5kOnZhcigtLWNvbG9yLWNvbnRhaW5lci1maWxsLXByaW1hcnktbmV1dHJhbC1leHRyYS1ib2xkKTstLXVpLWxpYi1wcml2YXRlLXBpbGwtZGl2aWRlci1jb2xvcjp2YXIoLS1jb2xvci1jb250YWluZXItZmlsbC1wcmltYXJ5LW5ldXRyYWwtbWVkaXVtKTstLXVpLWxpYi1wcml2YXRlLXBpbGwtdGV4dDp2YXIoLS1jb2xvci1jb250ZW50LXByaW1hcnktbmV1dHJhbC1saWdodCk7LS11aS1saWItcHJpdmF0ZS1waWxsLWFjdGl2ZS10ZXh0OnZhcigtLWNvbG9yLWNvbnRlbnQtcHJpbWFyeS1pbnZlcnNlKX0ucXVhcnRlcmx5LWVUZkdEYUVyey0tdWktbGliLXByaXZhdGUtcGlsbC1ib3JkZXI6MXB4IHNvbGlkIHZhcigtLWNvbG9yLWJvcmRlci1wcmltYXJ5LW5ldXRyYWwtbGlnaHQpOy0tdWktbGliLXByaXZhdGUtcGlsbC1kZWZhdWx0LWJhY2tncm91bmQ6IzAwMDA7LS11aS1saWItcHJpdmF0ZS1waWxsLWhvdmVyLWJhY2tncm91bmQ6dmFyKC0tY29sb3ItY29udGFpbmVyLWZpbGwtcHJpbWFyeS1uZXV0cmFsLWV4dHJhLWxpZ2h0KTstLXVpLWxpYi1wcml2YXRlLXBpbGwtYWN0aXZlLWJhY2tncm91bmQ6dmFyKC0tY29sb3ItY29udGFpbmVyLWZpbGwtcHJpbWFyeS1uZXV0cmFsLWxpZ2h0KTstLXVpLWxpYi1wcml2YXRlLXBpbGwtZGl2aWRlci1jb2xvcjp2YXIoLS1jb2xvci1ib3JkZXItcHJpbWFyeS1uZXV0cmFsLWxpZ2h0KTstLXVpLWxpYi1wcml2YXRlLXBpbGwtdGV4dDp2YXIoLS1jb2xvci1jb250ZW50LXByaW1hcnktbmV1dHJhbCk7LS11aS1saWItcHJpdmF0ZS1waWxsLWFjdGl2ZS10ZXh0OnZhcigtLWNvbG9yLWNvbnRlbnQtcHJpbWFyeS1uZXV0cmFsLWJvbGQpfS5naG9zdC1lVGZHRGFFcnstLXVpLWxpYi1wcml2YXRlLXBpbGwtYm9yZGVyOm5vbmU7LS11aS1saWItcHJpdmF0ZS1waWxsLWRlZmF1bHQtYmFja2dyb3VuZDojMDAwMDstLXVpLWxpYi1wcml2YXRlLXBpbGwtaG92ZXItYmFja2dyb3VuZDp2YXIoLS1jb2xvci1jb250YWluZXItZmlsbC1wcmltYXJ5LW5ldXRyYWwtZXh0cmEtbGlnaHQpOy0tdWktbGliLXByaXZhdGUtcGlsbC1hY3RpdmUtYmFja2dyb3VuZDp2YXIoLS1jb2xvci1jb250YWluZXItZmlsbC1wcmltYXJ5LW5ldXRyYWwtbGlnaHQpOy0tdWktbGliLXByaXZhdGUtcGlsbC1kaXZpZGVyLWNvbG9yOnZhcigtLWNvbG9yLWJvcmRlci1wcmltYXJ5LW5ldXRyYWwtbGlnaHQpOy0tdWktbGliLXByaXZhdGUtcGlsbC10ZXh0OnZhcigtLWNvbG9yLWNvbnRlbnQtcHJpbWFyeS1uZXV0cmFsLWJvbGQpOy0tdWktbGliLXByaXZhdGUtcGlsbC1hY3RpdmUtdGV4dDp2YXIoLS1jb2xvci1jb250ZW50LXByaW1hcnktbmV1dHJhbC1ib2xkKX0ucGlsbC1lVGZHRGFFcntiYWNrZ3JvdW5kOnZhcigtLXVpLWxpYi1wcml2YXRlLXBpbGwtZGVmYXVsdC1iYWNrZ3JvdW5kKTtib3JkZXItcmFkaXVzOnZhcigtLXVpLWxpYi1wcml2YXRlLXBpbGwtcmFkaXVzKTtjb2xvcjp2YXIoLS11aS1saWItcHJpdmF0ZS1waWxsLXRleHQpO2Rpc3BsYXk6ZmxleDtoZWlnaHQ6dmFyKC0tdWktbGliLXByaXZhdGUtcGlsbC1oZWlnaHQpO2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO21heC13aWR0aDoxMDAlO3Bvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOnZhcigtLXVpLWxpYi1wcml2YXRlLXBpbGwtd2lkdGgsZml0LWNvbnRlbnQpfS5waWxsLWVUZkdEYUVyOmJlZm9yZXtib3JkZXI6dmFyKC0tdWktbGliLXByaXZhdGUtcGlsbC1ib3JkZXIpO2JvcmRlci1yYWRpdXM6dmFyKC0tdWktbGliLXByaXZhdGUtcGlsbC1yYWRpdXMpO2JveC1zaXppbmc6Ym9yZGVyLWJveDtjb250ZW50OiIgIjtoZWlnaHQ6MTAwJTtpbnNldC1pbmxpbmUtc3RhcnQ6MDtwb2ludGVyLWV2ZW50czpub25lO3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO3dpZHRoOjEwMCU7ei1pbmRleDowfUBrZXlmcmFtZXMgcGlsbC1mb2N1cy1vdXRsaW5lLWJsaW5raW5nLWFmdGVyLWludHJvLWVUZkdEYUVyezAle29wYWNpdHk6MH10b3tvcGFjaXR5OjF9fUBrZXlmcmFtZXMgcGlsbC1mb2N1cy1vdXRsaW5lLWJsaW5raW5nLWFmdGVyLWVUZkdEYUVyezAle29wYWNpdHk6MX01MCV7b3BhY2l0eTo0MCV9dG97b3BhY2l0eToxfX1Aa2V5ZnJhbWVzIHBpbGwtZm9jdXMtb3V0bGluZS1ibGlua2luZy1mb3JlZ3JvdW5kLWVUZkdEYUVyezAle29wYWNpdHk6MH10b3tvcGFjaXR5OjMwJX19QGtleWZyYW1lcyBwaWxsLWZvY3VzLW91dGxpbmUtaGlnaGxpZ2h0aW5nLWFuaW1hdGlvbi1mb3JlZ3JvdW5kLWVUZkdEYUVyezAle2FuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246ZWFzZS1vdXQ7b3BhY2l0eTowfTguNSV7YW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjpsaW5lYXI7b3BhY2l0eTozMCV9NDguNSV7YW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjplYXNlLW91dDtvcGFjaXR5OjMwJX10b3tvcGFjaXR5OjB9fUBrZXlmcmFtZXMgcGlsbC1mb2N1cy1vdXRsaW5lLWhpZ2hsaWdodGluZy1hbmltYXRpb24tYWZ0ZXItZVRmR0RhRXJ7MCV7YW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjplYXNlLW91dDtvcGFjaXR5OjB9OC41JXthbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOmxpbmVhcjtvcGFjaXR5OjF9MjguNSV7b3BhY2l0eTo0MCV9NDguNSV7YW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjplYXNlLW91dDtvcGFjaXR5OjF9dG97b3BhY2l0eTowfX0uYmxpbmtBbmltYXRpb24tZVRmR0RhRXJ7cG9zaXRpb246cmVsYXRpdmV9LmJsaW5rQW5pbWF0aW9uLWVUZkdEYUVyOmFmdGVye2JvcmRlci1jb2xvcjp2YXIoLS1jb2xvci1mb2N1cy1vdXRsaW5lLWNvbG9yLWJsdWUpO2JvcmRlci1yYWRpdXM6Y2FsYyh2YXIoLS11aS1saWItcHJpdmF0ZS1waWxsLXJhZGl1cykgKyA0cHgpO2JvcmRlci1zdHlsZTpzb2xpZDtib3JkZXItd2lkdGg6MnB4O2JveC1zaXppbmc6Ym9yZGVyLWJveDtjb250ZW50OiIiO2Rpc3BsYXk6bm9uZTtkaXNwbGF5OmJsb2NrO2hlaWdodDpjYWxjKDEwMCUgKyA4cHgpO2luc2V0LWlubGluZS1zdGFydDotNHB4O29wYWNpdHk6MDtwb2ludGVyLWV2ZW50czpub25lO3Bvc2l0aW9uOmFic29sdXRlO3RvcDotNHB4O3dpZHRoOmNhbGMoMTAwJSArIDhweCk7ei1pbmRleDoxfS5ibGlua0FuaW1hdGlvbi1lVGZHRGFFci5ibGlua2luZy1lVGZHRGFFcjphZnRlcnthbmltYXRpb246cGlsbC1mb2N1cy1vdXRsaW5lLWJsaW5raW5nLWFmdGVyLWludHJvLWVUZkdEYUVyIC4ycyBlYXNlLW91dCBmb3J3YXJkcyxwaWxsLWZvY3VzLW91dGxpbmUtYmxpbmtpbmctYWZ0ZXItZVRmR0RhRXIgLjdzIGxpbmVhciAuMnMgaW5maW5pdGV9LmJsaW5rQW5pbWF0aW9uLWVUZkdEYUVyLmJsaW5raW5nLWVUZkdEYUVyIC5ibGlua0ZvcmVncm91bmQtZVRmR0RhRXJ7YW5pbWF0aW9uOnBpbGwtZm9jdXMtb3V0bGluZS1ibGlua2luZy1mb3JlZ3JvdW5kLWVUZkdEYUVyIC4ycyBlYXNlLW91dCBmb3J3YXJkc30uYmxpbmtBbmltYXRpb24tZVRmR0RhRXIuaGlnaGxpZ2h0aW5nLWVUZkdEYUVyOmFmdGVye2FuaW1hdGlvbi1kdXJhdGlvbjoxLjc1czthbmltYXRpb24tbmFtZTpwaWxsLWZvY3VzLW91dGxpbmUtaGlnaGxpZ2h0aW5nLWFuaW1hdGlvbi1hZnRlci1lVGZHRGFFcn0uYmxpbmtBbmltYXRpb24tZVRmR0RhRXIuaGlnaGxpZ2h0aW5nLWVUZkdEYUVyIC5ibGlua0ZvcmVncm91bmQtZVRmR0RhRXJ7YW5pbWF0aW9uLWR1cmF0aW9uOjEuNzVzO2FuaW1hdGlvbi1uYW1lOnBpbGwtZm9jdXMtb3V0bGluZS1oaWdobGlnaHRpbmctYW5pbWF0aW9uLWZvcmVncm91bmQtZVRmR0RhRXJ9LmJsaW5rRm9yZWdyb3VuZC1lVGZHRGFFcntiYWNrZ3JvdW5kOnZhcigtLWNvbG9yLWZvY3VzLW91dGxpbmUtY29sb3ItYmx1ZSk7Ym9yZGVyLXJhZGl1czpjYWxjKHZhcigtLXVpLWxpYi1wcml2YXRlLXBpbGwtcmFkaXVzKSArIDJweCk7aGVpZ2h0OmNhbGMoMTAwJSArIDRweCk7aW5zZXQtaW5saW5lLXN0YXJ0Oi0ycHg7b3BhY2l0eTowO3BvaW50ZXItZXZlbnRzOm5vbmU7cG9zaXRpb246YWJzb2x1dGU7dG9wOi0ycHg7d2lkdGg6Y2FsYygxMDAlICsgNHB4KTt6LWluZGV4OjEwfS5hY3RpdmVBcmVhLXh6QXRGbWxFey13ZWJraXQtYXBwZWFyYW5jZTpub25lO2FwcGVhcmFuY2U6bm9uZTtiYWNrZ3JvdW5kOm5vbmU7Ym9yZGVyOm5vbmU7Y29sb3I6aW5oZXJpdDtmb250LWZhbWlseTppbmhlcml0O292ZXJmbG93OnZpc2libGU7cGFkZGluZzowO3RleHQtYWxpZ246c3RhcnQ7LS11aS1saWItcHJpdmF0ZS1waWxsQWN0aXZlQXJlYS1yb3VuZExlZnQ6MTstLXVpLWxpYi1wcml2YXRlLXBpbGxBY3RpdmVBcmVhLXJvdW5kUmlnaHQ6MTtib3JkZXItcmFkaXVzOmNhbGModmFyKC0tdWktbGliLXByaXZhdGUtcGlsbC1yYWRpdXMpKnZhcigtLXVpLWxpYi1wcml2YXRlLXBpbGxBY3RpdmVBcmVhLXJvdW5kTGVmdCkpIGNhbGModmFyKC0tdWktbGliLXByaXZhdGUtcGlsbC1yYWRpdXMpKnZhcigtLXVpLWxpYi1wcml2YXRlLXBpbGxBY3RpdmVBcmVhLXJvdW5kUmlnaHQpKSBjYWxjKHZhcigtLXVpLWxpYi1wcml2YXRlLXBpbGwtcmFkaXVzKSp2YXIoLS11aS1saWItcHJpdmF0ZS1waWxsQWN0aXZlQXJlYS1yb3VuZFJpZ2h0KSkgY2FsYyh2YXIoLS11aS1saWItcHJpdmF0ZS1waWxsLXJhZGl1cykqdmFyKC0tdWktbGliLXByaXZhdGUtcGlsbEFjdGl2ZUFyZWEtcm91bmRMZWZ0KSk7ZmxleC1iYXNpczpjb250ZW50O2hlaWdodDoxMDAlO21heC13aWR0aDoxMDAlO21pbi13aWR0aDowO291dGxpbmU6bm9uZTtwb3NpdGlvbjpyZWxhdGl2ZTt3aGl0ZS1zcGFjZTpub3dyYXA7ei1pbmRleDozfS5hY3RpdmVBcmVhLXh6QXRGbWxFOm5vdCg6bnRoLWNoaWxkKDIpKXstLXVpLWxpYi1wcml2YXRlLXBpbGxBY3RpdmVBcmVhLXJvdW5kTGVmdDowfS5hY3RpdmVBcmVhLXh6QXRGbWxFOm5vdCg6bGFzdC1jaGlsZCl7LS11aS1saWItcHJpdmF0ZS1waWxsQWN0aXZlQXJlYS1yb3VuZFJpZ2h0OjA7Ym9yZGVyLWlubGluZS1lbmQ6MXB4IHNvbGlkIHZhcigtLXVpLWxpYi1wcml2YXRlLXBpbGwtZGl2aWRlci1jb2xvcil9LmFjdGl2ZUFyZWEteHpBdEZtbEU6ZGlyKHJ0bCl7Ym9yZGVyLXJhZGl1czpjYWxjKHZhcigtLXVpLWxpYi1wcml2YXRlLXBpbGwtcmFkaXVzKSp2YXIoLS11aS1saWItcHJpdmF0ZS1waWxsQWN0aXZlQXJlYS1yb3VuZFJpZ2h0KSkgY2FsYyh2YXIoLS11aS1saWItcHJpdmF0ZS1waWxsLXJhZGl1cykqdmFyKC0tdWktbGliLXByaXZhdGUtcGlsbEFjdGl2ZUFyZWEtcm91bmRMZWZ0KSkgY2FsYyh2YXIoLS11aS1saWItcHJpdmF0ZS1waWxsLXJhZGl1cykqdmFyKC0tdWktbGliLXByaXZhdGUtcGlsbEFjdGl2ZUFyZWEtcm91bmRMZWZ0KSkgY2FsYyh2YXIoLS11aS1saWItcHJpdmF0ZS1waWxsLXJhZGl1cykqdmFyKC0tdWktbGliLXByaXZhdGUtcGlsbEFjdGl2ZUFyZWEtcm91bmRSaWdodCkpfS5hY3RpdmVBcmVhQ29udGVudC14ekF0Rm1sRXthbGlnbi1pdGVtczpjZW50ZXI7ZGlzcGxheTpmbGV4O2hlaWdodDoxMDAlO3Bvc2l0aW9uOnJlbGF0aXZlO3otaW5kZXg6MX0ubm9TdHJldGNoLXh6QXRGbWxFe2ZsZXgtZ3JvdzowO2ZsZXgtc2hyaW5rOjB9LnN0cmV0Y2gteHpBdEZtbEV7ZmxleC1ncm93OjE7ZmxleC1zaHJpbms6MX1AbWVkaWEgKGFueS1ob3Zlcjpob3Zlcil7LmFjdGl2ZUFyZWEteHpBdEZtbEUuaGFzQ2xpY2tMaXN0ZW5lci14ekF0Rm1sRTpub3QoLmRpc2FibGVkLXh6QXRGbWxFKTpob3ZlcntiYWNrZ3JvdW5kOnZhcigtLXVpLWxpYi1wcml2YXRlLXBpbGwtaG92ZXItYmFja2dyb3VuZCl9fS5hY3RpdmVBcmVhLXh6QXRGbWxFLmhhc0NsaWNrTGlzdGVuZXIteHpBdEZtbEU6bm90KC5kaXNhYmxlZC14ekF0Rm1sRSkuc2VsZWN0ZWQteHpBdEZtbEUsLmFjdGl2ZUFyZWEteHpBdEZtbEUuaGFzQ2xpY2tMaXN0ZW5lci14ekF0Rm1sRTpub3QoLmRpc2FibGVkLXh6QXRGbWxFKTpub3QoLnNlbGVjdGVkLXh6QXRGbWxFKTphY3RpdmV7YmFja2dyb3VuZDp2YXIoLS11aS1saWItcHJpdmF0ZS1waWxsLWFjdGl2ZS1iYWNrZ3JvdW5kKX0uYWN0aXZlQXJlYS14ekF0Rm1sRTpmb2N1cy12aXNpYmxlPi5hY3RpdmVBcmVhQ29udGVudC14ekF0Rm1sRTphZnRlcntib3JkZXItY29sb3I6dmFyKC0tY29sb3ItZm9jdXMtb3V0bGluZS1jb2xvci1ibHVlKX0uYWN0aXZlQXJlYS14ekF0Rm1sRTpmb2N1cy12aXNpYmxlPi5hY3RpdmVBcmVhQ29udGVudC14ekF0Rm1sRTphZnRlcntib3JkZXItcmFkaXVzOmNhbGMoKDRweCArIHZhcigtLXVpLWxpYi1wcml2YXRlLXBpbGwtcmFkaXVzKSkqdmFyKC0tdWktbGliLXByaXZhdGUtcGlsbEFjdGl2ZUFyZWEtcm91bmRMZWZ0KSkgY2FsYygoNHB4ICsgdmFyKC0tdWktbGliLXByaXZhdGUtcGlsbC1yYWRpdXMpKSp2YXIoLS11aS1saWItcHJpdmF0ZS1waWxsQWN0aXZlQXJlYS1yb3VuZFJpZ2h0KSkgY2FsYygoNHB4ICsgdmFyKC0tdWktbGliLXByaXZhdGUtcGlsbC1yYWRpdXMpKSp2YXIoLS11aS1saWItcHJpdmF0ZS1waWxsQWN0aXZlQXJlYS1yb3VuZFJpZ2h0KSkgY2FsYygoNHB4ICsgdmFyKC0tdWktbGliLXByaXZhdGUtcGlsbC1yYWRpdXMpKSp2YXIoLS11aS1saWItcHJpdmF0ZS1waWxsQWN0aXZlQXJlYS1yb3VuZExlZnQpKTtib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLXdpZHRoOjJweDtib3gtc2l6aW5nOmJvcmRlci1ib3g7Y29udGVudDoiIjtkaXNwbGF5Om5vbmU7ZGlzcGxheTpibG9jaztoZWlnaHQ6Y2FsYygxMDAlICsgOHB4KTtpbnNldC1pbmxpbmUtc3RhcnQ6LTRweDtwb2ludGVyLWV2ZW50czpub25lO3Bvc2l0aW9uOmFic29sdXRlO3RvcDotNHB4O3dpZHRoOmNhbGMoMTAwJSArIDhweCk7ei1pbmRleDoxO3otaW5kZXg6NH0uYWN0aXZlQXJlYS14ekF0Rm1sRTpmb2N1cy12aXNpYmxlPi5hY3RpdmVBcmVhQ29udGVudC14ekF0Rm1sRTphZnRlcjpkaXIocnRsKXtib3JkZXItcmFkaXVzOmNhbGMoKDRweCArIHZhcigtLXVpLWxpYi1wcml2YXRlLXBpbGwtcmFkaXVzKSkqdmFyKC0tdWktbGliLXByaXZhdGUtcGlsbEFjdGl2ZUFyZWEtcm91bmRSaWdodCkpIGNhbGMoKDRweCArIHZhcigtLXVpLWxpYi1wcml2YXRlLXBpbGwtcmFkaXVzKSkqdmFyKC0tdWktbGliLXByaXZhdGUtcGlsbEFjdGl2ZUFyZWEtcm91bmRMZWZ0KSkgY2FsYygoNHB4ICsgdmFyKC0tdWktbGliLXByaXZhdGUtcGlsbC1yYWRpdXMpKSp2YXIoLS11aS1saWItcHJpdmF0ZS1waWxsQWN0aXZlQXJlYS1yb3VuZExlZnQpKSBjYWxjKCg0cHggKyB2YXIoLS11aS1saWItcHJpdmF0ZS1waWxsLXJhZGl1cykpKnZhcigtLXVpLWxpYi1wcml2YXRlLXBpbGxBY3RpdmVBcmVhLXJvdW5kUmlnaHQpKX0uY2hpbGRyZW4teHpBdEZtbEV7YWxpZ24taXRlbXM6Y2VudGVyO2Rpc3BsYXk6ZmxleDtoZWlnaHQ6MTAwJTtvdmVyZmxvdzpoaWRkZW47d2lkdGg6MTAwJX0ubGF5b3V0RXF1aWxhdGVyYWwtcGo4ckpWaFp7YWxpZ24taXRlbXM6Y2VudGVyO2FzcGVjdC1yYXRpbzoxO2Rpc3BsYXk6ZmxleDtoZWlnaHQ6MTAwJTtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO21pbi13aWR0aDowfS5wcmltYXJ5VGV4dC1EWGNvQ1YySntjb2xvcjp2YXIoLS11aS1saWItcHJpdmF0ZS1waWxsLXRleHQpO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3doaXRlLXNwYWNlOm5vd3JhcH0ucHJpbWFyeVRleHQtRFhjb0NWMko6ZW1wdHl7ZGlzcGxheTpub25lfS5hY3RpdmVUZXh0LWNuMEduT0Jke292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3doaXRlLXNwYWNlOm5vd3JhcH0uYWN0aXZlVGV4dC1jbjBHbk9CZDplbXB0eXtkaXNwbGF5Om5vbmV9LmFjdGl2ZVRleHQtY24wR25PQmR7Y29sb3I6dmFyKC0tdWktbGliLXByaXZhdGUtcGlsbC1hY3RpdmUtdGV4dCk7Zm9udC13ZWlnaHQ6NjAwfQ=="}},"time_used":4,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":4,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"scanner.tradingview.com/symbol?symbol=CRYPTO%3ABTCUSD\u0026fields=24h_vol_to_market_cap\u0026no_404=true\u0026label-product=right-details","fqdn":"scanner.tradingview.com","domain":"tradingview.com","tld":"com"},"ip":{"addr":"143.204.238.100","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"fetch","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:15.187Z","timestamp":1785148035187,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.tradingview.com","organization":""},"issuer":{"commonName":"Amazon RSA 2048 M04","organization":"Amazon"},"validity":{"start":"Thu, 09 Oct 2025 00:00:00 GMT","end":"Fri, 06 Nov 2026 23:59:59 GMT"},"fingerprint":{"sha1":"02:47:4D:AC:A6:12:65:AD:C2:19:CD:7E:61:B8:BF:E1:D8:36:CF:00","sha256":"12:7C:86:50:31:B1:3E:03:76:8B:F1:84:D4:AD:BC:95:0E:C1:60:40:F5:CE:75:F0:11:AF:91:BC:55:C1:D7:36"}}},"request":{"raw":"GET /symbol?symbol=CRYPTO%3ABTCUSD\u0026fields=24h_vol_to_market_cap\u0026no_404=true\u0026label-product=right-details HTTP/1.1\r\nHost: scanner.tradingview.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: application/json\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nReferer: https://s.tradingview.com/\r\nOrigin: https://s.tradingview.com\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: empty\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-site\r\nPriority: u=4\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\ncontent-type: application/json\r\ndate: Mon, 27 Jul 2026 10:27:15 GMT\r\ncontent-encoding: gzip\r\nx-cache-level: hit1\r\nserver: tv\r\nvia: 23.105.168.224:443, 1.1 b4cf31e054e1e158a1bbb0df99815e30.cloudfront.net (CloudFront)\r\nstrict-transport-security: max-age=63072000; includeSubDomains; preload\r\naccess-control-allow-origin: https://s.tradingview.com\r\naccess-control-allow-headers: Referer\r\naccess-control-allow-methods: GET\r\naccess-control-allow-credentials: true\r\naccess-control-max-age: 86400\r\nvary: Origin\r\nx-cache: Miss from cloudfront\r\nx-amz-cf-pop: ARN53-P4\r\nx-amz-cf-id: or-mzgghYlxHukmQy6MQTl63PSVE5xibtv2woEpPpEIV6Q7crykcCA==\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Amazon CloudFront","description":"Amazon CloudFront is a fast content delivery network (CDN) service that securely delivers data, videos, applications, and APIs to customers globally with low latency, high transfer speeds.","website":"https://aws.amazon.com/cloudfront/","common_platform_enumeration":"","icon":"Amazon Cloudfront.svg","categories":["CDN"]},{"name":"Amazon Web Services","description":"Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.","website":"https://aws.amazon.com/","common_platform_enumeration":"","icon":"Amazon Web Services.svg","categories":["PaaS"]},{"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":46,"size_decoded":732,"mime_type":"application/json","magic":"JSON text data","md5":"a83f32c1ee2965d3709cf2b68fa95046","sha1":"d5f77be82d51d1e1d6b9d806ad9d38a55c7ebbf7","sha256":"4cce3894aca145fdf469fdccb80dcbc2fe3e23b202ec8a78534011f95ba1eaf3","sha512":"5674a3c3d7a195e8a79f999e54692430fd35befcc52b041f2efacf7506db9b3b0f91f45c71cb947f7562a2c2a29a2d5ebde3c47c4deecb2347e5a8005cc64a91","ssdeep":"","tlshash":"689004403155c4404dc50cdd441117300514c10d755c744f0c471cf530000c34d40fd0","first_seen":"2026-07-27T10:28:06.2763Z","last_seen":"2026-07-27T10:28:06.2763Z","times_seen":1,"resource_available":false,"data":"eyIyNGhfdm9sX3RvX21hcmtldF9jYXAiOjAuMDE0MjE1Njc4MzgzOTU4NDA2fQ=="}},"time_used":386,"timings":{"blocked":0,"dns":0,"connect":9,"send":0,"wait":132,"receive":0,"ssl":240},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/8408.de534663e052075ba12f.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:12.961Z","timestamp":1785148032961,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/8408.de534663e052075ba12f.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:12 GMT\r\ncontent-type: text/css; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a338e19-274d\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Thu, 18 Jun 2026 06:20:09 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.57\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 06/18/2026 10:28:50\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: a3ad080a29bfedd9ca498b082dff8dc5\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":10061,"size_decoded":2244,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with very long lines (10061), with no line terminators","md5":"1a43de6a5db68cdffb5be29be8c611ea","sha1":"3cd66aa1e4e9e97cd58ad3ba8f6af15ad6c8fde1","sha256":"3f9db9383ecbe7095a61cb68292e437e948824de33abb3b09239c5effac91b84","sha512":"6735b9616b71290aa8fca75a177841e1cac8bb0193205099110ee83ffc75603098ead364960c2f7f86c7848f9fc3a784a56f615ecba08502e87028ebcc46eaa7","ssdeep":"192:zx9ZzZ8+bBPb+8b7XbnVb1pcGbM9zzZxZwG3TKO0/xavh42fmmw0TuUBJuHbRPuF:zxbl4zlvwG3GVxa2ruiUBsHdPunkS","tlshash":"62227526b95302617c2b5a3d0270affc6936cb939ac387dead10e1344fc75c9a297d85","first_seen":"2026-06-18T11:35:39.145966Z","last_seen":"2026-07-27T13:00:41.382674Z","times_seen":3091,"resource_available":false,"data":"W2RhdGEtdGhlbWU9bGlnaHRdey0tXzAtUVpDcjp2YXIoLS1jb2xvci1jb2xkLWdyYXktNTUwKX1bZGF0YS10aGVtZT1kYXJrXXstLV8wLVFaQ3I6dmFyKC0tY29sb3ItY29sZC1ncmF5LTQ1MCl9LnR2LW1hcmtldC1zdGF0dXNfX2RvdHtib3JkZXItcmFkaXVzOjUwJTtkaXNwbGF5OmlubGluZS1ibG9jaztoZWlnaHQ6NHB4O3ZlcnRpY2FsLWFsaWduOm1pZGRsZTt3aWR0aDo0cHh9LnR2LW1hcmtldC1zdGF0dXMtLXByZS1tYXJrZXR7Y29sb3I6dmFyKC0tY29sb3ItdGFuLW9yYW5nZS01MDApfS50di1tYXJrZXQtc3RhdHVzLS1wcmUtbWFya2V0IC50di1tYXJrZXQtc3RhdHVzX19kb3R7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci10YW4tb3JhbmdlLTUwMCl9LnR2LW1hcmtldC1zdGF0dXMtLXBvc3QtbWFya2V0e2NvbG9yOnZhcigtLWNvbG9yLXR2LWJsdWUtNDAwKX0udHYtbWFya2V0LXN0YXR1cy0tcG9zdC1tYXJrZXQgLnR2LW1hcmtldC1zdGF0dXNfX2RvdHtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLXR2LWJsdWUtNDAwKX0udHYtbWFya2V0LXN0YXR1cy0tbWFya2V0e2NvbG9yOnZhcigtLWNvbG9yLW1pbnR5LWdyZWVuLTMwMCl9LnR2LW1hcmtldC1zdGF0dXMtLW1hcmtldCAudHYtbWFya2V0LXN0YXR1c19fZG90e2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItbWludHktZ3JlZW4tMzAwKX0udHYtbWFya2V0LXN0YXR1cy0tb3V0LW9mLXNlc3Npb257Y29sb3I6dmFyKC0tY29sb3ItY29sZC1ncmF5LTQwMCl9LnR2LW1hcmtldC1zdGF0dXMtLW91dC1vZi1zZXNzaW9uIC50di1tYXJrZXQtc3RhdHVzX19kb3R7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1jb2xkLWdyYXktNDAwKX0udHYtbWFya2V0LXN0YXR1cy0taW52YWxpZHtjb2xvcjp2YXIoLS1jb2xvci1yaXBlLXJlZC01MDApfS50di1tYXJrZXQtc3RhdHVzLS1pbnZhbGlkIC50di1tYXJrZXQtc3RhdHVzX19kb3R7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1yaXBlLXJlZC01MDApfS50di1tYXJrZXQtc3RhdHVzLS1yZXBsYXl7Y29sb3I6dmFyKC0tY29sb3ItcmVwbGF5LWRhdGEtbW9kZSl9LnR2LW1hcmtldC1zdGF0dXMtLXJlcGxheSAudHYtbWFya2V0LXN0YXR1c19fZG90e2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItcmVwbGF5LWRhdGEtbW9kZSl9LnR2LW1hcmtldC1zdGF0dXMtLWhvbGlkYXl7Y29sb3I6dmFyKC0tY29sb3ItY29sZC1ncmF5LTQwMCl9LnR2LW1hcmtldC1zdGF0dXMtLWhvbGlkYXkgLnR2LW1hcmtldC1zdGF0dXNfX2RvdHtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLWNvbGQtZ3JheS00MDApfS50di1tYXJrZXQtc3RhdHVzLS1kZWxpc3RlZHtjb2xvcjp2YXIoLS1jb2xvci1kYW5nZXItYWN0aXZlKX0udHYtbWFya2V0LXN0YXR1cy0tZGVsaXN0ZWQgLnR2LW1hcmtldC1zdGF0dXNfX2RvdHtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLWRhbmdlci1hY3RpdmUpfS50di1tYXJrZXQtc3RhdHVzLS1uaWdodHtjb2xvcjp2YXIoLS1jb2xvci1jb250ZW50LXNlY29uZGFyeS1hY2NlbnQtb3RoZXItc2VtaS1ib2xkKX0udHYtbWFya2V0LXN0YXR1cy0tbmlnaHQgLnR2LW1hcmtldC1zdGF0dXNfX2RvdHtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLWNvbnRlbnQtc2Vjb25kYXJ5LWFjY2VudC1vdGhlci1zZW1pLWJvbGQpfS50di1tYXJrZXQtc3RhdHVzLS1vdXQtb2Ytc2Vzc2lvbl9fd2l0aEljb257aGVpZ2h0OjE4cHg7bWFyZ2luLWlubGluZS1zdGFydDo0cHg7d2lkdGg6MThweH1AbWVkaWEgKGFueS1ob3Zlcjpob3Zlcil7LnR2LW1hcmtldC1zdGF0dXMtLW91dC1vZi1zZXNzaW9uX193aXRoSWNvbjpob3ZlcjphZnRlcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLV8wLVFaQ3IpfX0udHYtbWFya2V0LXN0YXR1cy0tb3V0LW9mLXNlc3Npb25fX3dpdGhJY29uOmFmdGVye2JvcmRlci1yYWRpdXM6NnB4O2NvbnRlbnQ6IiI7ZGlzcGxheTpibG9jaztoZWlnaHQ6MThweDtvcGFjaXR5OjE1JTtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDoxOHB4fS50di1tYXJrZXQtc3RhdHVzLS1vdXQtb2Ytc2Vzc2lvbl9fd2l0aEljb24gLnR2LW1hcmtldC1zdGF0dXNfX2ljb257YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1fMC1RWkNyKTtkaXNwbGF5OmJsb2NrO2hlaWdodDoxOHB4Oy13ZWJraXQtbWFzazp1cmwobWFya2V0LWNsb3NlLmQwMjVlODcxMDAxOTljMWJjN2FmLnN2Zyk7bWFzazp1cmwobWFya2V0LWNsb3NlLmQwMjVlODcxMDAxOTljMWJjN2FmLnN2Zyk7LXdlYmtpdC1tYXNrLXBvc2l0aW9uOmNlbnRlcjttYXNrLXBvc2l0aW9uOmNlbnRlcjstd2Via2l0LW1hc2stc2l6ZTpjb3ZlcjttYXNrLXNpemU6Y292ZXI7cG9zaXRpb246cmVsYXRpdmU7d2lkdGg6MThweH0udHYtbWFya2V0LXN0YXR1cy0tcHJlLW1hcmtldF9fd2l0aEljb257aGVpZ2h0OjE4cHg7bWFyZ2luLWlubGluZS1zdGFydDo0cHg7d2lkdGg6MThweH1AbWVkaWEgKGFueS1ob3Zlcjpob3Zlcil7LnR2LW1hcmtldC1zdGF0dXMtLXByZS1tYXJrZXRfX3dpdGhJY29uOmhvdmVyOmFmdGVye2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItdGFuLW9yYW5nZS02MDApfX0udHYtbWFya2V0LXN0YXR1cy0tcHJlLW1hcmtldF9fd2l0aEljb246YWZ0ZXJ7Ym9yZGVyLXJhZGl1czo2cHg7Y29udGVudDoiIjtkaXNwbGF5OmJsb2NrO2hlaWdodDoxOHB4O29wYWNpdHk6MTUlO3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjE4cHh9LnR2LW1hcmtldC1zdGF0dXMtLXByZS1tYXJrZXRfX3dpdGhJY29uIC50di1tYXJrZXQtc3RhdHVzX19pY29ue2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItdGFuLW9yYW5nZS02MDApO2Rpc3BsYXk6YmxvY2s7aGVpZ2h0OjE4cHg7LXdlYmtpdC1tYXNrOnVybChtYXJrZXQtcHJlLjdkMzdkY2NhMjM0ODMzZDEyYzQzLnN2Zyk7bWFzazp1cmwobWFya2V0LXByZS43ZDM3ZGNjYTIzNDgzM2QxMmM0My5zdmcpOy13ZWJraXQtbWFzay1wb3NpdGlvbjpjZW50ZXI7bWFzay1wb3NpdGlvbjpjZW50ZXI7LXdlYmtpdC1tYXNrLXNpemU6Y292ZXI7bWFzay1zaXplOmNvdmVyO3Bvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOjE4cHh9LnR2LW1hcmtldC1zdGF0dXMtLXBvc3QtbWFya2V0X193aXRoSWNvbntoZWlnaHQ6MThweDttYXJnaW4taW5saW5lLXN0YXJ0OjRweDt3aWR0aDoxOHB4fUBtZWRpYSAoYW55LWhvdmVyOmhvdmVyKXsudHYtbWFya2V0LXN0YXR1cy0tcG9zdC1tYXJrZXRfX3dpdGhJY29uOmhvdmVyOmFmdGVye2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItdHYtYmx1ZS01MDApfX0udHYtbWFya2V0LXN0YXR1cy0tcG9zdC1tYXJrZXRfX3dpdGhJY29uOmFmdGVye2JvcmRlci1yYWRpdXM6NnB4O2NvbnRlbnQ6IiI7ZGlzcGxheTpibG9jaztoZWlnaHQ6MThweDtvcGFjaXR5OjE1JTtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDoxOHB4fS50di1tYXJrZXQtc3RhdHVzLS1wb3N0LW1hcmtldF9fd2l0aEljb24gLnR2LW1hcmtldC1zdGF0dXNfX2ljb257YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci10di1ibHVlLTUwMCk7ZGlzcGxheTpibG9jaztoZWlnaHQ6MThweDstd2Via2l0LW1hc2s6dXJsKG1hcmtldC1wb3N0LjlmMmM1YmZkYTk0MDVhMjkxZjkwLnN2Zyk7bWFzazp1cmwobWFya2V0LXBvc3QuOWYyYzViZmRhOTQwNWEyOTFmOTAuc3ZnKTstd2Via2l0LW1hc2stcG9zaXRpb246Y2VudGVyO21hc2stcG9zaXRpb246Y2VudGVyOy13ZWJraXQtbWFzay1zaXplOmNvdmVyO21hc2stc2l6ZTpjb3Zlcjtwb3NpdGlvbjpyZWxhdGl2ZTt3aWR0aDoxOHB4fS50di1tYXJrZXQtc3RhdHVzLS1ob2xpZGF5X193aXRoSWNvbntoZWlnaHQ6MThweDttYXJnaW4taW5saW5lLXN0YXJ0OjRweDt3aWR0aDoxOHB4fUBtZWRpYSAoYW55LWhvdmVyOmhvdmVyKXsudHYtbWFya2V0LXN0YXR1cy0taG9saWRheV9fd2l0aEljb246aG92ZXI6YWZ0ZXJ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1fMC1RWkNyKX19LnR2LW1hcmtldC1zdGF0dXMtLWhvbGlkYXlfX3dpdGhJY29uOmFmdGVye2JvcmRlci1yYWRpdXM6NnB4O2NvbnRlbnQ6IiI7ZGlzcGxheTpibG9jaztoZWlnaHQ6MThweDtvcGFjaXR5OjE1JTtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDoxOHB4fS50di1tYXJrZXQtc3RhdHVzLS1ob2xpZGF5X193aXRoSWNvbiAudHYtbWFya2V0LXN0YXR1c19faWNvbntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLV8wLVFaQ3IpO2Rpc3BsYXk6YmxvY2s7aGVpZ2h0OjE4cHg7LXdlYmtpdC1tYXNrOnVybChtYXJrZXQtaG9saWRheS40M2NhMzNkNjkwOTM5YjkzOTc4Ni5zdmcpO21hc2s6dXJsKG1hcmtldC1ob2xpZGF5LjQzY2EzM2Q2OTA5MzliOTM5Nzg2LnN2Zyk7LXdlYmtpdC1tYXNrLXBvc2l0aW9uOmNlbnRlcjttYXNrLXBvc2l0aW9uOmNlbnRlcjstd2Via2l0LW1hc2stc2l6ZTpjb3ZlcjttYXNrLXNpemU6Y292ZXI7cG9zaXRpb246cmVsYXRpdmU7d2lkdGg6MThweH0udHYtbWFya2V0LXN0YXR1cy0tZGVsaXN0ZWRfX3dpdGhJY29ue2hlaWdodDoxOHB4O21hcmdpbi1pbmxpbmUtc3RhcnQ6NHB4O3dpZHRoOjE4cHh9QG1lZGlhIChhbnktaG92ZXI6aG92ZXIpey50di1tYXJrZXQtc3RhdHVzLS1kZWxpc3RlZF9fd2l0aEljb246aG92ZXI6YWZ0ZXJ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1kYW5nZXItYWN0aXZlKX19LnR2LW1hcmtldC1zdGF0dXMtLWRlbGlzdGVkX193aXRoSWNvbjphZnRlcntib3JkZXItcmFkaXVzOjZweDtjb250ZW50OiIiO2Rpc3BsYXk6YmxvY2s7aGVpZ2h0OjE4cHg7b3BhY2l0eToxNSU7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MThweH0udHYtbWFya2V0LXN0YXR1cy0tZGVsaXN0ZWRfX3dpdGhJY29uIC50di1tYXJrZXQtc3RhdHVzX19pY29ue2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItZGFuZ2VyLWFjdGl2ZSk7ZGlzcGxheTpibG9jaztoZWlnaHQ6MThweDstd2Via2l0LW1hc2s6dXJsKGRlbGlzdGVkLW1vYmlsZS40ZDI2YTJkN2M0MzFkZmZlOTRlZC5zdmcpO21hc2s6dXJsKGRlbGlzdGVkLW1vYmlsZS40ZDI2YTJkN2M0MzFkZmZlOTRlZC5zdmcpOy13ZWJraXQtbWFzay1wb3NpdGlvbjpjZW50ZXI7bWFzay1wb3NpdGlvbjpjZW50ZXI7LXdlYmtpdC1tYXNrLXNpemU6Y292ZXI7bWFzay1zaXplOmNvdmVyO3Bvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOjE4cHh9LnR2LW1hcmtldC1zdGF0dXMtLW5pZ2h0X193aXRoSWNvbntoZWlnaHQ6MThweDttYXJnaW4taW5saW5lLXN0YXJ0OjRweDt3aWR0aDoxOHB4fUBtZWRpYSAoYW55LWhvdmVyOmhvdmVyKXsudHYtbWFya2V0LXN0YXR1cy0tbmlnaHRfX3dpdGhJY29uOmhvdmVyOmFmdGVye2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItY29udGVudC1zZWNvbmRhcnktYWNjZW50LW90aGVyLXNlbWktYm9sZCl9fS50di1tYXJrZXQtc3RhdHVzLS1uaWdodF9fd2l0aEljb246YWZ0ZXJ7Ym9yZGVyLXJhZGl1czo2cHg7Y29udGVudDoiIjtkaXNwbGF5OmJsb2NrO2hlaWdodDoxOHB4O29wYWNpdHk6MTUlO3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjE4cHh9LnR2LW1hcmtldC1zdGF0dXMtLW5pZ2h0X193aXRoSWNvbiAudHYtbWFya2V0LXN0YXR1c19faWNvbntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLWNvbnRlbnQtc2Vjb25kYXJ5LWFjY2VudC1vdGhlci1zZW1pLWJvbGQpO2Rpc3BsYXk6YmxvY2s7aGVpZ2h0OjE4cHg7LXdlYmtpdC1tYXNrOnVybChtYXJrZXQtcG9zdC45ZjJjNWJmZGE5NDA1YTI5MWY5MC5zdmcpO21hc2s6dXJsKG1hcmtldC1wb3N0LjlmMmM1YmZkYTk0MDVhMjkxZjkwLnN2Zyk7LXdlYmtpdC1tYXNrLXBvc2l0aW9uOmNlbnRlcjttYXNrLXBvc2l0aW9uOmNlbnRlcjstd2Via2l0LW1hc2stc2l6ZTpjb3ZlcjttYXNrLXNpemU6Y292ZXI7cG9zaXRpb246cmVsYXRpdmU7d2lkdGg6MThweH0udHYtbWFya2V0LXN0YXR1cy0tZm9yLWNoYXJ0e2Rpc3BsYXk6YmxvY2s7ZmxvYXQ6aW5saW5lLXN0YXJ0O21hcmdpbi1pbmxpbmUtZW5kOjB9LnR2LW1hcmtldC1zdGF0dXMtLWZvci1jaGFydC0tcHJlLW1hcmtldHtjb2xvcjp2YXIoLS1jb2xvci10YW4tb3JhbmdlLTUwMCl9LnR2LW1hcmtldC1zdGF0dXMtLWZvci1jaGFydC0tcHJlLW1hcmtldCAudHYtbWFya2V0LXN0YXR1c19fZG90e2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItdGFuLW9yYW5nZS01MDApfS50di1tYXJrZXQtc3RhdHVzLS1mb3ItY2hhcnQtLXBvc3QtbWFya2V0e2NvbG9yOnZhcigtLWNvbG9yLXR2LWJsdWUtNDAwKX0udHYtbWFya2V0LXN0YXR1cy0tZm9yLWNoYXJ0LS1wb3N0LW1hcmtldCAudHYtbWFya2V0LXN0YXR1c19fZG90e2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItdHYtYmx1ZS00MDApfS50di1tYXJrZXQtc3RhdHVzLS1mb3ItY2hhcnQtLW1hcmtldHtjb2xvcjp2YXIoLS1jb2xvci1taW50eS1ncmVlbi0zMDApfS50di1tYXJrZXQtc3RhdHVzLS1mb3ItY2hhcnQtLW1hcmtldCAudHYtbWFya2V0LXN0YXR1c19fZG90e2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItbWludHktZ3JlZW4tMzAwKX0udHYtbWFya2V0LXN0YXR1cy0tZm9yLWNoYXJ0LS1vdXQtb2Ytc2Vzc2lvbntjb2xvcjp2YXIoLS1jb2xvci1jb2xkLWdyYXktNDAwKX0udHYtbWFya2V0LXN0YXR1cy0tZm9yLWNoYXJ0LS1vdXQtb2Ytc2Vzc2lvbiAudHYtbWFya2V0LXN0YXR1c19fZG90e2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItY29sZC1ncmF5LTQwMCl9LnR2LW1hcmtldC1zdGF0dXMtLWZvci1jaGFydC0taW52YWxpZHtjb2xvcjp2YXIoLS1jb2xvci1yaXBlLXJlZC01MDApfS50di1tYXJrZXQtc3RhdHVzLS1mb3ItY2hhcnQtLWludmFsaWQgLnR2LW1hcmtldC1zdGF0dXNfX2RvdHtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLXJpcGUtcmVkLTUwMCl9LnR2LW1hcmtldC1zdGF0dXMtLWZvci1jaGFydC0tcmVwbGF5e2NvbG9yOnZhcigtLWNvbG9yLXJlcGxheS1kYXRhLW1vZGUpfS50di1tYXJrZXQtc3RhdHVzLS1mb3ItY2hhcnQtLXJlcGxheSAudHYtbWFya2V0LXN0YXR1c19fZG90e2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItcmVwbGF5LWRhdGEtbW9kZSl9LnR2LW1hcmtldC1zdGF0dXMtLWZvci1jaGFydC0taG9saWRheXtjb2xvcjp2YXIoLS1jb2xvci1jb2xkLWdyYXktNDAwKX0udHYtbWFya2V0LXN0YXR1cy0tZm9yLWNoYXJ0LS1ob2xpZGF5IC50di1tYXJrZXQtc3RhdHVzX19kb3R7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1jb2xkLWdyYXktNDAwKX0udHYtbWFya2V0LXN0YXR1cy0tZm9yLWNoYXJ0LS1kZWxpc3RlZHtjb2xvcjp2YXIoLS1jb2xvci1kYW5nZXItYWN0aXZlKX0udHYtbWFya2V0LXN0YXR1cy0tZm9yLWNoYXJ0LS1kZWxpc3RlZCAudHYtbWFya2V0LXN0YXR1c19fZG90e2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItZGFuZ2VyLWFjdGl2ZSl9LnR2LW1hcmtldC1zdGF0dXMtLWZvci1jaGFydC0tbmlnaHR7Y29sb3I6dmFyKC0tY29sb3ItY29udGVudC1zZWNvbmRhcnktYWNjZW50LW90aGVyLXNlbWktYm9sZCl9LnR2LW1hcmtldC1zdGF0dXMtLWZvci1jaGFydC0tbmlnaHQgLnR2LW1hcmtldC1zdGF0dXNfX2RvdHtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLWNvbnRlbnQtc2Vjb25kYXJ5LWFjY2VudC1vdGhlci1zZW1pLWJvbGQpfS50di1tYXJrZXQtc3RhdHVzLS1sb2FkaW5nLS1mb3ItY2hhcnR7Y29sb3I6dmFyKC0tY29sb3ItdHYtYmx1ZS00MDApfS50di1tYXJrZXQtc3RhdHVzLS1sb2FkaW5nLS1mb3ItY2hhcnQgLnR2LW1hcmtldC1zdGF0dXNfX2RvdHtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLXR2LWJsdWUtNDAwKX0udHYtbWFya2V0LXN0YXR1cy0tZm9yLXRpY2tlcnttYXJnaW4taW5saW5lLXN0YXJ0OjRweH0udHYtbWFya2V0LXN0YXR1cy0tZm9yLXdhdGNoLWxpc3R7bWFyZ2luOmF1dG8gM3B4fS50di1tYXJrZXQtc3RhdHVzLS1mb3ItdGlja2VyLWxhc3R7ZGlzcGxheTppbmxpbmUtZmxleDttYXJnaW4taW5saW5lLXN0YXJ0OjRweH0udHYtbWFya2V0LXN0YXR1cy0tZm9yLXN0aWNreS1zeW1ib2wtaGVhZGVyLC50di1tYXJrZXQtc3RhdHVzLS1mb3ItdGlja2VyLXRhcGV7YWxpZ24taXRlbXM6Y2VudGVyO2Rpc3BsYXk6ZmxleDt0cmFuc2Zvcm06dHJhbnNsYXRlWCg0cHgpfS50di1tYXJrZXQtc3RhdHVzLS1mb3Itc3RpY2t5LXN5bWJvbC1oZWFkZXI6ZGlyKHJ0bCksLnR2LW1hcmtldC1zdGF0dXMtLWZvci10aWNrZXItdGFwZTpkaXIocnRsKXt0cmFuc2Zvcm06dHJhbnNsYXRlWCgtNHB4KX0udHYtbWFya2V0LXN0YXR1cy0tZm9yLXRpY2tlci1oZWFkZXJ7ZGlzcGxheTpmbGV4O21hcmdpbi1pbmxpbmUtc3RhcnQ6NHB4fS50di1tYXJrZXQtc3RhdHVzX19kb3QtLWZvci1jaGFydHtoZWlnaHQ6NnB4O21hcmdpbi1yaWdodDo0cHg7dmVydGljYWwtYWxpZ246MXB4O3dpZHRoOjZweH0udHYtbWFya2V0LXN0YXR1c19fZG90LS1mb3ItdGlja2VyLWNhcmR7aGVpZ2h0OjZweDttYXJnaW4taW5saW5lLXN0YXJ0OjRweDt3aWR0aDo2cHh9LnR2LW1hcmtldC1zdGF0dXNfX2RvdC0tZm9yLXdhdGNoLWxpc3R7bWFyZ2luLWJvdHRvbTozcHh9LnR2LW1hcmtldC1zdGF0dXNfX2RvdC0tZm9yLXRpY2tlci1sYXN0e2hlaWdodDo2cHg7d2lkdGg6NnB4fS50di1tYXJrZXQtc3RhdHVzX19kb3QtLWZvci1zdGlja3ktc3ltYm9sLWhlYWRlciwudHYtbWFya2V0LXN0YXR1c19fZG90LS1mb3ItdGlja2VyLXRhcGV7aGVpZ2h0OjRweDt3aWR0aDo0cHh9LnR2LW1hcmtldC1zdGF0dXNfX2xhYmVsLS1mb3ItY2hhcnR7ZGlzcGxheTpibG9jaztmbG9hdDppbmxpbmUtZW5kO2xpbmUtaGVpZ2h0OjE2cHg7bWFyZ2luLWlubGluZS1lbmQ6MH0udHYtbWFya2V0LXN0YXR1c19fbGFiZWwtLWZvci1jaGFydDpkaXIocnRsKXttYXJnaW4taW5saW5lLWVuZDo2cHh9LnR2LW1hcmtldC1zdGF0dXMtLW1hcmtldCAudHYtbWFya2V0LXN0YXR1c19fZG90LS1mb3Itc3RpY2t5LXN5bWJvbC1oZWFkZXIsLnR2LW1hcmtldC1zdGF0dXMtLW1hcmtldCAudHYtbWFya2V0LXN0YXR1c19fZG90LS1mb3ItdGlja2VyLC50di1tYXJrZXQtc3RhdHVzLS1tYXJrZXQgLnR2LW1hcmtldC1zdGF0dXNfX2RvdC0tZm9yLXRpY2tlci1jYXJkLC50di1tYXJrZXQtc3RhdHVzLS1tYXJrZXQgLnR2LW1hcmtldC1zdGF0dXNfX2RvdC0tZm9yLXRpY2tlci1oZWFkZXIsLnR2LW1hcmtldC1zdGF0dXMtLW1hcmtldCAudHYtbWFya2V0LXN0YXR1c19fZG90LS1mb3ItdGlja2VyLWxhc3QsLnR2LW1hcmtldC1zdGF0dXMtLW1hcmtldCAudHYtbWFya2V0LXN0YXR1c19fZG90LS1mb3ItdGlja2VyLXRhcGUsLnR2LW1hcmtldC1zdGF0dXMtLW1hcmtldCAudHYtbWFya2V0LXN0YXR1c19fZG90LS1mb3Itd2F0Y2gtbGlzdCwudHYtbWFya2V0LXN0YXR1c19fbGFiZWwtLWZvci1zdGlja3ktc3ltYm9sLWhlYWRlciwudHYtbWFya2V0LXN0YXR1c19fbGFiZWwtLWZvci10aWNrZXIsLnR2LW1hcmtldC1zdGF0dXNfX2xhYmVsLS1mb3ItdGlja2VyLWNhcmQsLnR2LW1hcmtldC1zdGF0dXNfX2xhYmVsLS1mb3ItdGlja2VyLWhlYWRlciwudHYtbWFya2V0LXN0YXR1c19fbGFiZWwtLWZvci10aWNrZXItbGFzdCwudHYtbWFya2V0LXN0YXR1c19fbGFiZWwtLWZvci10aWNrZXItdGFwZSwudHYtbWFya2V0LXN0YXR1c19fbGFiZWwtLWZvci13YXRjaC1saXN0e2Rpc3BsYXk6bm9uZX0udHYtbWFya2V0LXN0YXR1cy0tZm9yLWNoYXJ0e21hcmdpbi1pbmxpbmUtc3RhcnQ6NXB4fS50di1tYXJrZXQtc3RhdHVzLS1mb3ItY2hhcnQ6ZGlyKHJ0bCl7bWFyZ2luLWlubGluZS1zdGFydDowfS50di1tYXJrZXQtc3RhdHVzLS1tYXJrZXQtLWZvci1jaGFydHtkaXNwbGF5Om5vbmV9LnR2LW1hcmtldC1zdGF0dXMtLW1hcmtldF9fd2l0aEljb257ZGlzcGxheTpub25lIWltcG9ydGFudH0udHYtbWFya2V0LXN0YXR1cy0tZGVsaXN0ZWQtLWZvci13YXRjaC1saXN0e21hcmdpbi1pbmxpbmUtc3RhcnQ6MH0udHYtbWFya2V0LXN0YXR1cy0tZGVsaXN0ZWQtLWZvci13YXRjaC1saXN0OmFmdGVye2Rpc3BsYXk6bm9uZX0="}},"time_used":9,"timings":{"blocked":-1,"dns":3,"connect":2,"send":0,"wait":6,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/63160.2a3a21185fbcc7079dae.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:13.052Z","timestamp":1785148033052,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/63160.2a3a21185fbcc7079dae.js HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:13 GMT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a61b1a9-6c55\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Thu, 23 Jul 2026 06:16:09 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/23/2026 10:17:25\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: e9ece6b52dfc234b7d02e8b8c11f4406\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":27733,"size_decoded":8684,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (3072)","md5":"cfb4ec7bf74cebe56275390e404eea0f","sha1":"4252ecbde693198d544ad5f483339e8527626b7d","sha256":"6c3a092a58a55249537be71395c07358a4ff94120d96468eb32669c2405dbe89","sha512":"502ad261df8d3d31d8decf44c403084f175783156886850f601a8404bfedddb9baeedf09aae6727cc4d18f8b3d1d59e554cc357a494b93754a34a68a9f7eafda","ssdeep":"768:OdGn8wXtPTrG8Pz8ZQXllEu7x1zR2tDZTrQGikOjULp/BS53dCo15V1:OrtI","tlshash":"3cc2945631977136aba2c64644350703e33635683a4b699cf73cface6b1ec42913ea3d","first_seen":"2026-07-23T13:54:09.047216Z","last_seen":"2026-07-27T13:04:17.892016Z","times_seen":345,"resource_available":true,"data":"InVzZSBzdHJpY3QiOyhzZWxmLndlYnBhY2tDaHVua3RyYWRpbmd2aWV3PXNlbGYud2VicGFja0NodW5rdHJhZGluZ3ZpZXd8fFtdKS5wdXNoKFtbNjMxNjBdLHs2NDI3MTkodCxlLHMpe3MuZChlLHtCYXJCdWlsZGVyQmFzZTooKT0+byxTZXNzaW9uSW5mbzooKT0+YX0pO3ZhciByPXMoNzAwODA5KSxuPXMoMjk1MTQpLGk9cyg1NTk2OSk7Y2xhc3MgYXtjb25zdHJ1Y3Rvcih0LGUscyxyKXt0aGlzLmluaXQodCxlLHMsciksdGhpcy5fc3RhdGU9e3RpbWV6b25lOnQsc3BlYzplLGhvbGlkYXlzOnMsY29ycmVjdGlvbnM6cn19aW5pdCh0LGUscyxuKXt0aGlzLnRpbWV6b25lPSgwLHIuZ2V0X3RpbWV6b25lKSh0KSx0aGlzLnNwZWM9bmV3IGkuU2Vzc2lvbnNTcGVjKHQsZSxzLG4pfXN0YXRlKCl7cmV0dXJuIHRoaXMuX3N0YXRlfXN0YXRpYyBmcm9tU3RhdGUodCl7cmV0dXJuIG5ldyBhKHQudGltZXpvbmUsdC5zcGVjLHQuaG9saWRheXMsdC5jb3JyZWN0aW9ucyl9c3RhdGljIHdyYXAodCl7Y29uc3QgZT1uZXcgYSgiRXRjL1VUQyIsIjI0eDciKTtyZXR1cm4gZS5zcGVjPXQsZX1zdGF0aWMgY3JlYXRlKHQsZSxzLHIpe3JldHVybiBuZXcgYSh0LGUscyxyKX19Y2xhc3Mgb3thbGlnblRpbWUodCl7aWYoaXNOYU4odCkpcmV0dXJuIE5hTjtsZXQgZT10aGlzLmluZGV4T2ZCYXIodCk7cmV0dXJuIGU9PT1uLlNlc3Npb25TdGFnZS5QT1NUX1NFU1NJT04mJih0aGlzLm1vdmVUbyh0KSxlPXRoaXMuaW5kZXhPZkJhcih0KSksZTwwP05hTjp0aGlzLnN0YXJ0T2ZCYXIoZSl9fX0sNzcxNzk1KHQsZSxzKXtpZihzLmQoZSx7Z2V0UGVyaW9kc0JldHdlZW5EYXRlczooKT0+dixuZXdCYXJCdWlsZGVyOigpPT53fSksL14oNzk3OTV8OTQzODkpJC8udGVzdChzLmopKXZhciByPXMoNzAwODA5KTt2YXIgbj1zKDI1NDY3Myk7aWYoIS9eKDc5Nzk1fDk0Mzg5KSQvLnRlc3Qocy5qKSlyPXMoNzAwODA5KTt2YXIgaT1zKDY0MDc0NCksYT1zKDY0MjcxOSksbz1zKDI5NTE0KSxkPXMoMzQxMDM2KTtjbGFzcyBfe2NvbnN0cnVjdG9yKHQsZSl7dGhpcy5fZXh0ZW5kZWRTdGFydE1zPXQsdGhpcy5fZXh0ZW5kZWRFbmRNcz1lfWluZGV4T2ZCYXIodCxlKXtyZXR1cm4gdGhpcy5fZXh0ZW5kZWRTdGFydE1zPnQ/by5TZXNzaW9uU3RhZ2UuUFJFX1NFU1NJT046ZS5zZXNzaW9uU3RhcnRNcz50PzA6ZS5zZXNzaW9uRW5kTXM8PXQ/dGhpcy5fZXh0ZW5kZWRFbmRNczw9dD9vLlNlc3Npb25TdGFnZS5QT1NUX1NFU1NJT046ZS5pbmRleE9mTGFzdEJhckluU2Vzc2lvbigpOmUuZ2V0SW5kZXhPZkJhcihlLmJhcnNTdGFydE1zLHQpfWVuZE9mQmFyKHQsZSl7aWYodD09PW8uU2Vzc2lvblN0YWdlLkxBU1RfU0VTU0lPTl9FTkQpcmV0dXJuIHRoaXMuX2V4dGVuZGVkRW5kTXM7Y29uc3Qgcz1lLmdldEVuZE9mQmFyKGUuYmFyc1N0YXJ0TXMsdCk7cmV0dXJuIGUuc2Vzc2lvbkVuZE1zPD1zP3RoaXMuX2V4dGVuZGVkRW5kTXM6c31wb3N0U2Vzc2lvblN0YXJ0T2ZCYXIodCl7cmV0dXJuIHRoaXMuX2V4dGVuZGVkRW5kTXN9c3RhcnRPZkJhcih0LGUpe3JldHVybiBlLmdldFN0YXJ0T2ZCYXIoZS5iYXJzU3RhcnRNcyx0KX19Y2xhc3MgZntjb25zdHJ1Y3Rvcih0KXt0aGlzLl9pbnRlcnZhbHM9dH1pbmRleE9mQmFyKHQsZSl7aWYodGhpcy5fZmlyc3RJbnRlcnZhbCgpLmV4dGVuZGVkU3RhcnRNcz50KXJldHVybiBvLlNlc3Npb25TdGFnZS5QUkVfU0VTU0lPTjtjb25zdCBzPXRoaXMuX25lYXJlc3RJbnRlcnZhbCh0KTtyZXR1cm4gbnVsbD09PXM/by5TZXNzaW9uU3RhZ2UuUE9TVF9TRVNTSU9OOnMuZXh0ZW5kZWRTdGFydE1zPnQ/ZS5nZXRJbmRleE9mQmFyKGUuYmFyc1N0YXJ0TXMsdCk6cy5zdGFydE1zPnQ/ZS5nZXRJbmRleE9mQmFyKGUuYmFyc1N0YXJ0TXMscy5zdGFydE1zKTpzLmVuZE1zPnQ/ZS5nZXRJbmRleE9mQmFyKGUuYmFyc1N0YXJ0TXMsdCk6ZS5nZXRJbmRleE9mQmFyKGUuYmFyc1N0YXJ0TXMscy5lbmRNcy0xKX1lbmRPZkJhcih0LGUpe2lmKHQ9PT1vLlNlc3Npb25TdGFnZS5MQVNUX1NFU1NJT05fRU5EKXJldHVybiB0aGlzLl9sYXN0SW50ZXJ2YWwoKS5leHRlbmRlZEVuZE1zO2NvbnN0IHM9ZS5nZXRFbmRPZkJhcihlLmJhcnNTdGFydE1zLHQpLHI9dGhpcy5fbmVhcmVzdEludGVydmFsKHMpO3JldHVybiBudWxsPT09cj90aGlzLl9sYXN0SW50ZXJ2YWwoKS5leHRlbmRlZEVuZE1zOnIuZW5kTXM8PXM/ci5leHRlbmRlZEVuZE1zOnN9cG9zdFNlc3Npb25TdGFydE9mQmFyKHQpe3JldHVybiB0aGlzLl9sYXN0SW50ZXJ2YWwoKS5leHRlbmRlZEVuZE1zfXN0YXJ0T2ZCYXIodCxlKXtyZXR1cm4gZS5nZXRTdGFydE9mQmFyKGUuYmFyc1N0YXJ0TXMsdCl9X25lYXJlc3RJbnRlcnZhbCh0KXtmb3IoY29uc3QgZSBvZiB0aGlzLl9pbnRlcnZhbHMpaWYoZS5leHRlbmRlZEVuZE1zPnQpcmV0dXJuIGU7cmV0dXJuIG51bGx9X2ZpcnN0SW50ZXJ2YWwoKXtyZXR1cm4gdGhpcy5faW50ZXJ2YWxzWzBdfV9sYXN0SW50ZXJ2YWwoKXtyZXR1cm4gdGhpcy5faW50ZXJ2YWxzW3RoaXMuX2ludGVydmFscy5sZW5ndGgtMV19fWNsYXNzIFN7Y29uc3RydWN0b3IodCl7dGhpcy5faW50ZXJ2YWxzPXR9aW5kZXhPZkJhcih0LGUpe2lmKGUuc2Vzc2lvblN0YXJ0TXM+dClyZXR1cm4gby5TZXNzaW9uU3RhZ2UuUFJFX1NFU1NJT047Y29uc3Qgcz10aGlzLl9uZWFyZXN0SW50ZXJ2YWxCeVRpbWUodCk7cmV0dXJuIG51bGw9PT1zP28uU2Vzc2lvblN0YWdlLlBPU1RfU0VTU0lPTjpzLnN0YXJ0TXM+dD9zLmluZGV4T2Zmc2V0OmUuZ2V0SW5kZXhPZkJhcihzLmJhcnNTdGFydE1zLHQpK3MuaW5kZXhPZmZzZXR9ZW5kT2ZCYXIodCxlKXtpZih0PT09by5TZXNzaW9uU3RhZ2UuTEFTVF9TRVNTSU9OX0VORClyZXR1cm4gZS5zZXNzaW9uRW5kTXM7Y29uc3Qgcz10aGlzLl9uZWFyZXN0SW50ZXJ2YWxCeUluZGV4KHQpO2lmKG51bGw9PT1zKXJldHVybiBlLmdldEVuZE9mQmFyKGUuYmFyc1N0YXJ0TXMsdCk7Y29uc3Qgcj1lLmdldEVuZE9mQmFyKHMuYmFyc1N0YXJ0TXMsdC1zLmluZGV4T2Zmc2V0KQo7cmV0dXJuIHI+cy5lbmRNcz9yPmUuc2Vzc2lvbkVuZE1zP2Uuc2Vzc2lvbkVuZE1zOnMubGFzdEJhckVuZE1zOnJ9cG9zdFNlc3Npb25TdGFydE9mQmFyKHQpe3JldHVybiB0LnNlc3Npb25FbmRNc31zdGFydE9mQmFyKHQsZSl7Y29uc3Qgcz10aGlzLl9uZWFyZXN0SW50ZXJ2YWxCeUluZGV4KHQpO2lmKG51bGw9PT1zKXJldHVybiBlLmdldFN0YXJ0T2ZCYXIoZS5iYXJzU3RhcnRNcyx0KTtjb25zdCByPXQtcy5pbmRleE9mZnNldDtyZXR1cm4gMD09PXI/cy5maXJzdEJhclN0YXJ0TXM6ZS5nZXRTdGFydE9mQmFyKHMuYmFyc1N0YXJ0TXMscil9X25lYXJlc3RJbnRlcnZhbEJ5VGltZSh0KXtmb3IoY29uc3QgZSBvZiB0aGlzLl9pbnRlcnZhbHMpaWYoZS5lbmRNcz50KXJldHVybiBlO3JldHVybiBudWxsfV9uZWFyZXN0SW50ZXJ2YWxCeUluZGV4KHQpe2ZvcihsZXQgZT10aGlzLl9pbnRlcnZhbHMubGVuZ3RoLTE7ZT49MDtlLS0pe2NvbnN0IHM9dGhpcy5faW50ZXJ2YWxzW2VdO2lmKHMuaW5kZXhPZmZzZXQ8PXQpcmV0dXJuIHN9cmV0dXJuIG51bGx9fWNsYXNzIGx7Y29uc3RydWN0b3IodCl7dGhpcy5faW50ZXJ2YWxzPXR9aW5kZXhPZkJhcih0LGUpe2lmKHRoaXMuX2ZpcnN0SW50ZXJ2YWwoKS5leHRlbmRlZFN0YXJ0TXM+dClyZXR1cm4gby5TZXNzaW9uU3RhZ2UuUFJFX1NFU1NJT047Y29uc3Qgcz10aGlzLl9uZWFyZXN0SW50ZXJ2YWxCeVRpbWUodCk7cmV0dXJuIG51bGw9PT1zP28uU2Vzc2lvblN0YWdlLlBPU1RfU0VTU0lPTjpzLmV4dGVuZGVkU3RhcnRNcz50fHxzLnN0YXJ0TXM+dD9zLmluZGV4T2Zmc2V0OnMuZW5kTXM+dD9lLmdldEluZGV4T2ZCYXIocy5iYXJzU3RhcnRNcyx0KStzLmluZGV4T2Zmc2V0OmUuZ2V0SW5kZXhPZkJhcihzLmJhcnNTdGFydE1zLHMuZW5kTXMtMSkrcy5pbmRleE9mZnNldH1lbmRPZkJhcih0LGUpe2lmKHQ9PT1vLlNlc3Npb25TdGFnZS5MQVNUX1NFU1NJT05fRU5EKXJldHVybiB0aGlzLl9sYXN0SW50ZXJ2YWwoKS5leHRlbmRlZEVuZE1zO2NvbnN0IHM9dGhpcy5fbmVhcmVzdEludGVydmFsQnlJbmRleCh0KTtpZihudWxsPT09cylyZXR1cm4gZS5nZXRFbmRPZkJhcihlLmJhcnNTdGFydE1zLHQpO2NvbnN0IHI9ZS5nZXRFbmRPZkJhcihzLmJhcnNTdGFydE1zLHQtcy5pbmRleE9mZnNldCk7cmV0dXJuIHI9PT1zLmVuZE1zfHxyPmUuc2Vzc2lvbkVuZE1zP3MuZXh0ZW5kZWRFbmRNczpyPnMuZW5kTXM/cy5sYXN0QmFyRW5kTXM6cn1wb3N0U2Vzc2lvblN0YXJ0T2ZCYXIodCl7cmV0dXJuIHRoaXMuX2xhc3RJbnRlcnZhbCgpLmV4dGVuZGVkRW5kTXN9c3RhcnRPZkJhcih0LGUpe2NvbnN0IHM9dGhpcy5fbmVhcmVzdEludGVydmFsQnlJbmRleCh0KTtpZihudWxsPT09cylyZXR1cm4gZS5nZXRTdGFydE9mQmFyKGUuYmFyc1N0YXJ0TXMsdCk7Y29uc3Qgcj10LXMuaW5kZXhPZmZzZXQ7cmV0dXJuIDA9PT1yP3MuZmlyc3RCYXJTdGFydE1zOmUuZ2V0U3RhcnRPZkJhcihzLmJhcnNTdGFydE1zLHIpfV9uZWFyZXN0SW50ZXJ2YWxCeVRpbWUodCl7Zm9yKGNvbnN0IGUgb2YgdGhpcy5faW50ZXJ2YWxzKWlmKGUuZXh0ZW5kZWRFbmRNcz50KXJldHVybiBlO3JldHVybiBudWxsfV9uZWFyZXN0SW50ZXJ2YWxCeUluZGV4KHQpe2ZvcihsZXQgZT10aGlzLl9pbnRlcnZhbHMubGVuZ3RoLTE7ZT49MDtlLS0pe2NvbnN0IHM9dGhpcy5faW50ZXJ2YWxzW2VdO2lmKHMuaW5kZXhPZmZzZXQ8PXQpcmV0dXJuIHN9cmV0dXJuIG51bGx9X2xhc3RJbnRlcnZhbCgpe3JldHVybiB0aGlzLl9pbnRlcnZhbHNbdGhpcy5faW50ZXJ2YWxzLmxlbmd0aC0xXX1fZmlyc3RJbnRlcnZhbCgpe3JldHVybiB0aGlzLl9pbnRlcnZhbHNbMF19fWNsYXNzIGggZXh0ZW5kcyBhLkJhckJ1aWxkZXJCYXNle2NvbnN0cnVjdG9yKHQsZSl7c3VwZXIoKSx0aGlzLl9zZXNzaW9uU3RhcnRNcz0tTnVtYmVyLk1BWF9WQUxVRSx0aGlzLl9zZXNzaW9uRW5kTXM9LU51bWJlci5NQVhfVkFMVUUsdGhpcy5fYmFyc1N0YXJ0TXM9LU51bWJlci5NQVhfVkFMVUUsdGhpcy5fdHJhZGluZ0RheU1pZG5pZ2h0TXM9LU51bWJlci5NQVhfVkFMVUUsdGhpcy5fYmFyQ2FsY3VsYXRvcj1udWxsLHRoaXMuX3Nlc3Npb25CcmVha3M9W10sdGhpcy5fcGVyaW9kU2VjPXQsdGhpcy5fc2Vzc2lvbj1lfWdldCBzZXNzaW9uU3RhcnRNcygpe3JldHVybiB0aGlzLl9zZXNzaW9uU3RhcnRNc31nZXQgc2Vzc2lvbkVuZE1zKCl7cmV0dXJuIHRoaXMuX3Nlc3Npb25FbmRNc31nZXQgYmFyc1N0YXJ0TXMoKXtyZXR1cm4gdGhpcy5fYmFyc1N0YXJ0TXN9aXNJblNlc3Npb25CcmVhayh0KXtmb3IoY29uc3QgZSBvZiB0aGlzLl9zZXNzaW9uQnJlYWtzKXtpZih0PGUuYnJlYWtTdGFydE1zKXJldHVybiExO2lmKHQ8ZS5icmVha0VuZE1zKXJldHVybiEwfXJldHVybiExfWFsaWduVGltZUlmUG9zc2libGUodCl7Y29uc3QgZT10aGlzLmFsaWduVGltZSh0KTtyZXR1cm4gaXNOYU4oZSk/dDplfWluZGV4T2ZCYXIodCl7cmV0dXJuIG51bGwhPT10aGlzLl9iYXJDYWxjdWxhdG9yP3RoaXMuX2JhckNhbGN1bGF0b3IuaW5kZXhPZkJhcih0LHRoaXMpOnQ8dGhpcy5fc2Vzc2lvblN0YXJ0TXM/by5TZXNzaW9uU3RhZ2UuUFJFX1NFU1NJT046dD49dGhpcy5fc2Vzc2lvbkVuZE1zP28uU2Vzc2lvblN0YWdlLlBPU1RfU0VTU0lPTjp0aGlzLmdldEluZGV4T2ZCYXIodGhpcy5fYmFyc1N0YXJ0TXMsdCl9c3RhcnRPZkJhcih0KXtzd2l0Y2godCl7Y2FzZSBvLlNlc3Npb25TdGFnZS5QUkVfU0VTU0lPTjpyZXR1cm4gdGhpcy5fZ2V0UHJldlNlc3Npb24oKTtjYXNlIG8uU2Vzc2lvblN0YWdlLlBPU1RfU0VTU0lPTjpyZXR1cm4gbnVsbCE9PXRoaXMuX2JhckNhbGN1bGF0b3I/dGhpcy5fYmFyQ2FsY3VsYXRvci5wb3N0U2Vzc2lvblN0YXJ0T2ZCYXIodGhpcyk6dGhpcy5fc2Vzc2lvbkVuZE1zO2Nhc2Ugby5TZXNzaW9uU3RhZ2UuTEFTVEJBUl9TRVNTSU9OOnQ9dGhpcy5pbmRleE9mTGFzdEJhckluU2Vzc2lvbigpO2JyZWFrO2Nhc2Ugby5TZXNzaW9uU3RhZ2UuRklSU1RfU0VTU0lPTl9TVEFSVDpjYXNlIDA6cmV0dXJuIHRoaXMuX3Nlc3Npb25TdGFydE1zfQpyZXR1cm4gbnVsbCE9PXRoaXMuX2JhckNhbGN1bGF0b3I/dGhpcy5fYmFyQ2FsY3VsYXRvci5zdGFydE9mQmFyKHQsdGhpcyk6dGhpcy5nZXRTdGFydE9mQmFyKHRoaXMuX2JhcnNTdGFydE1zLHQpfWVuZE9mQmFyKHQpe2lmKG51bGwhPT10aGlzLl9iYXJDYWxjdWxhdG9yKXJldHVybiB0aGlzLl9iYXJDYWxjdWxhdG9yLmVuZE9mQmFyKHQsdGhpcyk7aWYodD09PW8uU2Vzc2lvblN0YWdlLkxBU1RfU0VTU0lPTl9FTkQpcmV0dXJuIHRoaXMuX3Nlc3Npb25FbmRNcztpZih0PDApdGhyb3cgbmV3IEVycm9yKCJJbmRleCBjYW5ub3QgYmUgbmVnYXRpdmUiKTtjb25zdCBlPXRoaXMuZ2V0RW5kT2ZCYXIodGhpcy5fYmFyc1N0YXJ0TXMsdCk7cmV0dXJuIE1hdGgubWluKGUsdGhpcy5fc2Vzc2lvbkVuZE1zKX1pc0xhc3RCYXIodCxlKXtjb25zdCBzPXRoaXMuZW5kT2ZCYXIodCk7cmV0dXJuIGU+PSh0aGlzLl9wZXJpb2RTZWM+PTYwP3MtNmU0OnMtMWUzKX1tb3ZlVG8odCl7Y29uc3QgZT10aGlzLl9zZXNzaW9uLnRpbWV6b25lLHM9KDAsci51dGNfdG9fY2FsKShlLHQpLG49dGhpcy5fc2Vzc2lvbi5zcGVjLmFsaWduVG9FbnRyeVN0YXJ0RXh0ZW5kZWQocykuZW50cnk7aWYodGhpcy5fYmFyQ2FsY3VsYXRvcj1udWxsLHRoaXMuX3Nlc3Npb25CcmVha3M9W10sKDAsZC5pc1VuaWZpZWRFbnRyeSkobikpe2NvbnN0IHQ9bi5zdGFydE9mZnNldCgpLHI9bi5nZXRVbmlmaWVkRW50cmllcygpWzBdLmdldEVudHJ5KCk7dGhpcy5fc2V0VXBCYXNlRnJvbUVudHJ5V2l0aE1pZG5pZ2h0KHIscyx0LGUpLHRoaXMuX3NldFVwRnJvbVVuaWZpZWQobixzLGUpfWVsc2UgaWYoKDAsZC5pc1VuaWZpZWRTaGlmdGVkRW50cnkpKG4pKXtjb25zdCB0PW4uc3RhcnRPZmZzZXQoKSxyPW4uZ2V0VW5pZmllZEVudHJpZXMoKVswXS5nZXRFbnRyeSgpO3RoaXMuX3NldFVwQmFzZUZyb21FbnRyeVdpdGhNaWRuaWdodChyLHMsdCxlKSx0aGlzLl9zZXRVcEZyb21VbmlmaWVkU2hpZnRlZChuLHMsZSl9ZWxzZSB0aGlzLl9zZXRVcEJhc2VGcm9tRW50cnkobixzLGUpLCgwLGQuaXNFeHRlbmRlZEVudHJ5KShuKSYmdGhpcy5fc2V0VXBGcm9tRXh0ZW5kZWQobil9aW5kZXhPZkxhc3RCYXJJblNlc3Npb24oKXtyZXR1cm4gdGhpcy5pbmRleE9mQmFyKHRoaXMuX3Nlc3Npb25FbmRNcy0xKX1pbmRleE9mRmlyc3RCYXJJblNlc3Npb24oKXtyZXR1cm4gdGhpcy5pbmRleE9mQmFyKHRoaXMuX3Nlc3Npb25TdGFydE1zKX1tb3ZlTmV4dCgpe3RoaXMubW92ZVRvKHRoaXMuX3Nlc3Npb25FbmRNcyl9Z2V0SW5kZXhPZkJhcih0LGUpe3JldHVybigwLGkudG9JbnQpKCgwLHIudGltZV9zZWNvbmRzX2RpZmYpKGUsdCkvdGhpcy5fcGVyaW9kU2VjKX1nZXRTdGFydE9mQmFyKHQsZSl7cmV0dXJuIHQrKDAsci50aW1lX3NlY29uZHMpKHRoaXMuX3BlcmlvZFNlYyplKX1nZXRFbmRPZkJhcih0LGUpe3JldHVybiB0KygwLHIudGltZV9zZWNvbmRzKSh0aGlzLl9wZXJpb2RTZWMqKGUrMSkpfXN0YXRpYyBtaW51dGVzKHQsZSl7cmV0dXJuIG5ldyBoKDYwKnQsZSl9c3RhdGljIHNlY29uZHModCxlKXtyZXR1cm4gbmV3IGgodCxlKX1fZ2V0UHJldlNlc3Npb24oKXtjb25zdCB0PSgwLHIuZ2V0X2NhbF9mcm9tX3VuaXhfdGltZXN0YW1wX21zKSh0aGlzLl9zZXNzaW9uLnRpbWV6b25lLHRoaXMuX3Nlc3Npb25TdGFydE1zLTEpLGU9dGhpcy5fc2Vzc2lvbi5zcGVjLmFsaWduVG9OZWFyZXN0U2Vzc2lvbkVuZCh0LC0xKTtyZXR1cm4oMCxyLmNhbF90b191dGMpKHRoaXMuX3Nlc3Npb24udGltZXpvbmUsZSl9X3NldFVwQmFzZUZyb21FbnRyeVdpdGhNaWRuaWdodCh0LGUscyxuKXtsZXQgaT1udWxsLGE9dDtmb3IoOzspaWYoKDAsZC5pc09mZnNldEVudHJ5KShhKSlpPWEsYT1hLmdldEVudHJ5KCk7ZWxzZXtpZighKDAsZC5pc0V4dGVuZGVkRW50cnkpKGEpKWJyZWFrO2E9YS5nZXRFbnRyeSgpfWNvbnN0IG89YSxfPSgwLHIuY2FsX3RvX3V0YykobixlKTt0aGlzLl90cmFkaW5nRGF5TWlkbmlnaHRNcz1fLTYwKnMqMWUzLHRoaXMuX3Nlc3Npb25TdGFydE1zPXRoaXMuX29mZnNldFRvTXMoby5zdGFydE9mZnNldCgpKTtjb25zdCBmPSgwLHIudXRjX3RvX2NhbCkobix0aGlzLl9zZXNzaW9uU3RhcnRNcyk7KDAsci5hZGRfbWludXRlcykoZixvLmxlbmd0aCgpKSx0aGlzLl9zZXNzaW9uRW5kTXM9KDAsci5jYWxfdG9fdXRjKShuLGYpLHRoaXMuX2JhcnNTdGFydE1zPXRoaXMuX3Nlc3Npb25TdGFydE1zLG51bGwhPT1pJiZ0aGlzLl9zZXRVcEZyb21PZmZzZXQoaSl9X3NldFVwQmFzZUZyb21FbnRyeSh0LGUscyl7bGV0IG49bnVsbCxpPXQ7Zm9yKDs7KWlmKCgwLGQuaXNPZmZzZXRFbnRyeSkoaSkpbj1pLGk9aS5nZXRFbnRyeSgpO2Vsc2V7aWYoISgwLGQuaXNFeHRlbmRlZEVudHJ5KShpKSlicmVhaztpPWkuZ2V0RW50cnkoKX1jb25zdCBhPWk7dGhpcy5fc2Vzc2lvblN0YXJ0TXM9KDAsci5jYWxfdG9fdXRjKShzLGUpLHRoaXMuX3RyYWRpbmdEYXlNaWRuaWdodE1zPXRoaXMuX3Nlc3Npb25TdGFydE1zLTYwKmEuc3RhcnRPZmZzZXQoKSoxZTM7Y29uc3Qgbz0oMCxyLnV0Y190b19jYWwpKHMsdGhpcy5fc2Vzc2lvblN0YXJ0TXMpOygwLHIuYWRkX21pbnV0ZXMpKG8sYS5sZW5ndGgoKSksdGhpcy5fc2Vzc2lvbkVuZE1zPSgwLHIuY2FsX3RvX3V0YykocyxvKSx0aGlzLl9iYXJzU3RhcnRNcz10aGlzLl9zZXNzaW9uU3RhcnRNcyxudWxsIT09biYmdGhpcy5fc2V0VXBGcm9tT2Zmc2V0KG4pfV9vZmZzZXRUb01zKHQpe3JldHVybiB0aGlzLl90cmFkaW5nRGF5TWlkbmlnaHRNcys2MCp0KjFlM31fc2V0VXBGcm9tT2Zmc2V0KHQpe2NvbnN0IGU9NjAqdC5zdGFydE9mZnNldCgpLHM9NjAqdC5iYXJzT2Zmc2V0KCk7dGhpcy5fYmFyc1N0YXJ0TXM9dGhpcy5fc2Vzc2lvblN0YXJ0TXMtMWUzKihlLXMpfV9zZXRVcEZyb21FeHRlbmRlZCh0KXt0aGlzLl9iYXJDYWxjdWxhdG9yPW5ldyBfKHRoaXMuX29mZnNldFRvTXModC5leHRlbmRlZFN0YXJ0T2Zmc2V0KCkpLHRoaXMuX29mZnNldFRvTXModC5leHRlbmRlZEVuZE9mZnNldCgpKSl9X3NldFVwRnJvbVVuaWZpZWQodCxlLHMpewpjb25zdCByPXQuZ2V0VW5pZmllZEVudHJpZXMoKSxuPXJbci5sZW5ndGgtMV07dGhpcy5fc2Vzc2lvbkVuZE1zPXRoaXMuX29mZnNldFRvTXMobi5lbmRPZmZzZXQoKSksdC5oYXNFeHRlbmRlZEVudHJ5KCk/KHRoaXMuX2JhckNhbGN1bGF0b3I9bmV3IGYodGhpcy5fdG9FeHRlbmRlZEludGVydmFscyhyKSksdGhpcy5fc2Vzc2lvbkJyZWFrcz10aGlzLl90b0V4dGVuZGVkU2Vzc2lvbkJyZWFrcyhyKSk6dGhpcy5fc2Vzc2lvbkJyZWFrcz10aGlzLl90b1Nlc3Npb25CcmVha3Mocil9X3NldFVwRnJvbVVuaWZpZWRTaGlmdGVkKHQsZSxzKXtjb25zdCByPXQuZ2V0VW5pZmllZEVudHJpZXMoKSxuPXJbci5sZW5ndGgtMV07dGhpcy5fc2Vzc2lvbkVuZE1zPXRoaXMuX29mZnNldFRvTXMobi5lbmRPZmZzZXQoKSksdC5oYXNFeHRlbmRlZEVudHJ5KCk/KHRoaXMuX2JhckNhbGN1bGF0b3I9bmV3IGwodGhpcy5fdG9TaGlmdGVkRXh0ZW5kZWRJbnRlcnZhbHMocikpLHRoaXMuX3Nlc3Npb25CcmVha3M9dGhpcy5fdG9FeHRlbmRlZFNlc3Npb25CcmVha3MocikpOih0aGlzLl9iYXJDYWxjdWxhdG9yPW5ldyBTKHRoaXMuX3RvU2hpZnRlZEludGVydmFscyhyKSksdGhpcy5fc2Vzc2lvbkJyZWFrcz10aGlzLl90b1Nlc3Npb25CcmVha3MocikpfV90b1Nlc3Npb25CcmVha3ModCl7Y29uc3QgZT1bXTtmb3IobGV0IHM9MTtzPHQubGVuZ3RoO3MrKyl7Y29uc3Qgcj10W3MtMV0sbj10W3NdO2UucHVzaCh7YnJlYWtTdGFydE1zOnRoaXMuX29mZnNldFRvTXMoci5lbmRPZmZzZXQoKSksYnJlYWtFbmRNczp0aGlzLl9vZmZzZXRUb01zKG4uc3RhcnRPZmZzZXQoKSl9KX1yZXR1cm4gZX1fdG9FeHRlbmRlZFNlc3Npb25CcmVha3ModCl7Y29uc3QgZT1bXTtmb3IobGV0IHM9MTtzPHQubGVuZ3RoO3MrKyl7Y29uc3Qgcj10W3MtMV0sbj10W3NdO2UucHVzaCh7YnJlYWtTdGFydE1zOnRoaXMuX29mZnNldFRvTXMoci5leHRlbmRlZEVuZE9mZnNldCgpKSxicmVha0VuZE1zOnRoaXMuX29mZnNldFRvTXMobi5leHRlbmRlZFN0YXJ0T2Zmc2V0KCkpfSl9cmV0dXJuIGV9X3RvRXh0ZW5kZWRJbnRlcnZhbHModCl7Y29uc3QgZT1bXTtmb3IoY29uc3QgcyBvZiB0KWUucHVzaCh7c3RhcnRNczp0aGlzLl9vZmZzZXRUb01zKHMuc3RhcnRPZmZzZXQoKSksZW5kTXM6dGhpcy5fb2Zmc2V0VG9NcyhzLmVuZE9mZnNldCgpKSxleHRlbmRlZFN0YXJ0TXM6dGhpcy5fb2Zmc2V0VG9NcyhzLmV4dGVuZGVkU3RhcnRPZmZzZXQoKSksZXh0ZW5kZWRFbmRNczp0aGlzLl9vZmZzZXRUb01zKHMuZXh0ZW5kZWRFbmRPZmZzZXQoKSl9KTtyZXR1cm4gZX1fdG9TaGlmdGVkRXh0ZW5kZWRJbnRlcnZhbHModCl7Y29uc3QgZT1bXSxzPXRoaXMuX3RvU2hpZnRlZEludGVydmFscyh0KTtmb3IobGV0IHI9MDtyPHMubGVuZ3RoO3IrKyl7Y29uc3Qgbj1zW3JdLGk9dFtyXTtlLnB1c2goey4uLm4sZXh0ZW5kZWRTdGFydE1zOnRoaXMuX29mZnNldFRvTXMoaS5leHRlbmRlZFN0YXJ0T2Zmc2V0KCkpLGV4dGVuZGVkRW5kTXM6dGhpcy5fb2Zmc2V0VG9NcyhpLmV4dGVuZGVkRW5kT2Zmc2V0KCkpfSl9cmV0dXJuIGV9X3RvU2hpZnRlZEludGVydmFscyh0KXtsZXQgZSxzLG4sYSxvPXRoaXMuX2JhcnNTdGFydE1zLGQ9MCxfPTAsZj0wO2NvbnN0IFM9KDAsci50aW1lX3NlY29uZHMpKHRoaXMuX3BlcmlvZFNlYyk7bGV0IGw9ITEsaD0wLHU9MDtjb25zdCBjPVtdO2ZvcihsZXQgcj0wO3I8dC5sZW5ndGg7cisrKXtjb25zdCBnPXRbcl07ZT10aGlzLl9vZmZzZXRUb01zKGcuc3RhcnRPZmZzZXQoKSkscz10aGlzLl9vZmZzZXRUb01zKGcuZW5kT2Zmc2V0KCkpLHI+MCYmKG89ZS1mLGQrPV8pO2NvbnN0IE89cy1vO189KDAsaS50b0ludCkoTy9TKSxmPU8lUyxuPWw/aDplLGw9Zj4wLGw/KHU8cyYmKGg9cy1mLHU9dGhpcy5fY2FsY3VsYXRlVGhyb3VnaEJhckVuZChTLWYscisxLHQpKSxhPXUpOmE9cyxjLnB1c2goe3N0YXJ0TXM6ZSxlbmRNczpzLGJhcnNTdGFydE1zOm8sZmlyc3RCYXJTdGFydE1zOm4sbGFzdEJhckVuZE1zOmEsaW5kZXhPZmZzZXQ6ZH0pfXJldHVybiBjfV9jYWxjdWxhdGVUaHJvdWdoQmFyRW5kKHQsZSxzKXtmb3IobGV0IHI9ZTtyPHMubGVuZ3RoO3IrKyl7Y29uc3QgZT1zW3JdLG49NjAqZS5sZW5ndGgoKSoxZTM7aWYoISh0Pm4pKXJldHVybiB0aGlzLl9vZmZzZXRUb01zKGUuc3RhcnRPZmZzZXQoKSkrdDt0LT1ufXJldHVybiB0aGlzLl9zZXNzaW9uRW5kTXN9fXZhciB1PXMoMTM4NjM4KSxjPXMoMzA4MjEpO2NvbnN0IGc9KDAsci5nZXRfdGltZXpvbmUpKCJFdGMvVVRDIik7ZnVuY3Rpb24gTyh0LGUscyl7Y29uc3Qgbj0oMCxyLmNsb25lKShlKSxpPXQuYnVzaW5lc3NEYXlzVG9DYWxlbmRhckRheXMobiwxKTtpPjEmJigwLHIuYWRkX2RhdGUpKG4saS0xKTtjb25zdCBhPXQubGVmdEJvcmRlck9mRGFpbHlCYXIobik7aWYobnVsbD09PWEpdGhyb3cgbmV3IEVycm9yKCJDYW5ub3QgY2FsY3VsYXRlIGxlZnQgYm9yZGVyIG9mIGRhaWx5IGJhciIpO3JldHVybigwLHIuY2FsX3RvX3V0YykocyxhLCEwKX1jbGFzcyBFe2NvbnN0cnVjdG9yKHQsZSl7dGhpcy5mcm9tPXQsdGhpcy50bz1lfXRvU3RyaW5nKCl7cmV0dXJuYCR7dGhpcy5mcm9tLnRvU3RyaW5nKCl9IC0gJHt0aGlzLnRvLnRvU3RyaW5nKCl9YH19Y2xhc3MgQiBleHRlbmRzIGEuQmFyQnVpbGRlckJhc2V7Y29uc3RydWN0b3IodCxlLHMscixuPSExKXtzdXBlcigpLHRoaXMuX3BlcmlvZFN0YXJ0PS1OdW1iZXIuTUFYX1ZBTFVFLHRoaXMuX3BlcmlvZEVuZD0tTnVtYmVyLk1BWF9WQUxVRSx0aGlzLl9wZXJpb2RMYXN0QmFyU3RhcnQ9LU51bWJlci5NQVhfVkFMVUUsdGhpcy5fcGVyaW9kU3RhcnREYXk9bmV3IGMuQnVzaW5lc3NEYXkoMCwwLDApLHRoaXMuX3BlcmlvZEVuZERheT1uZXcgYy5CdXNpbmVzc0RheSgwLDAsMCksdGhpcy5fcGVyaW9kPXMsdGhpcy5fc2Vzc2lvblRndD10LHRoaXMuX2J1aWxkZXI9cix0aGlzLl91c2VCdXNpbmVzc0RheXM9bixuPygoMCwKdS5hc3NlcnQpKG51bGw9PT1lLCJ1c2VCdXNpbmVzc0RheXMgYW5kIHNlc3Npb25TcmMgYXJlIG11dHVhbGx5IGV4Y2x1c2l2ZSBhcmd1bWVudHMiKSx0aGlzLl9zZXNzaW9uU3JjPW5ldyBhLlNlc3Npb25JbmZvKCJFdGMvVVRDIiwiMjR4NyIpKTp0aGlzLl9zZXNzaW9uU3JjPWV8fHR9YnVpbGRlcigpe3JldHVybiB0aGlzLl9idWlsZGVyfWFsaWduVGltZUlmUG9zc2libGUodCl7cmV0dXJuIHRoaXMudHJhZGluZ0RheVRvU2Vzc2lvblN0YXJ0KHQpfXRyYWRpbmdEYXlUb1Nlc3Npb25TdGFydCh0KXtyZXR1cm4gdGhpcy5tb3ZlVG8odCksdGhpcy5zdGFydE9mQmFyKDApfWluZGV4T2ZCYXIodCl7aWYodGhpcy5fdXNlQnVzaW5lc3NEYXlzKXtjb25zdCBlPWMuQnVzaW5lc3NEYXkuZnJvbUNhbGVuZGFyKCgwLHIuZ2V0X2NhbF9mcm9tX3VuaXhfdGltZXN0YW1wX21zKSh0aGlzLl9zZXNzaW9uU3JjLnRpbWV6b25lLHQpKTtyZXR1cm4gZS5iZWZvcmUodGhpcy5fcGVyaW9kU3RhcnREYXkpP28uU2Vzc2lvblN0YWdlLlBSRV9TRVNTSU9OOnRoaXMuX3BlcmlvZEVuZERheS5iZWZvcmUoZSk/by5TZXNzaW9uU3RhZ2UuUE9TVF9TRVNTSU9OOjB9cmV0dXJuIHQ8dGhpcy5fcGVyaW9kU3RhcnQ/by5TZXNzaW9uU3RhZ2UuUFJFX1NFU1NJT046dD49dGhpcy5fcGVyaW9kRW5kP28uU2Vzc2lvblN0YWdlLlBPU1RfU0VTU0lPTjowfXN0YXJ0T2ZCYXIodCl7aWYodD09PW8uU2Vzc2lvblN0YWdlLlBSRV9TRVNTSU9OKXtjb25zdCB0PSgwLHIuZ2V0X2NhbF9mcm9tX3VuaXhfdGltZXN0YW1wX21zKSh0aGlzLl9zZXNzaW9uVGd0LnRpbWV6b25lLHRoaXMuX3BlcmlvZFN0YXJ0LTEpLGU9dGhpcy5fc2Vzc2lvblRndC5zcGVjLmFsaWduVG9OZWFyZXN0U2Vzc2lvbkVuZCh0LC0xKTtyZXR1cm4oMCxyLmNhbF90b191dGMpKHRoaXMuX3Nlc3Npb25UZ3QudGltZXpvbmUsZSktMX1yZXR1cm4gdD09PW8uU2Vzc2lvblN0YWdlLlBPU1RfU0VTU0lPTnx8dD4wP3RoaXMuX3BlcmlvZEVuZDp0PT09by5TZXNzaW9uU3RhZ2UuTEFTVEJBUl9TRVNTSU9OP3RoaXMuX3BlcmlvZExhc3RCYXJTdGFydDp0aGlzLl9wZXJpb2RTdGFydH1tb3ZlVG8odCl7bGV0IGU9KDAsci5nZXRfY2FsX2Zyb21fdW5peF90aW1lc3RhbXBfbXMpKHRoaXMuX3Nlc3Npb25TcmMudGltZXpvbmUsdCk7ZT10aGlzLl9zZXNzaW9uU3JjLnNwZWMuY29ycmVjdFRyYWRpbmdEYXkoZSk7Y29uc3Qgcz0oMCxyLmdldF95ZWFyKShlKSxuPXRoaXMuX2luZGV4T2ZQZXJpb2RJblllYXIoZSksaT1uK3RoaXMuX3BlcmlvZCxhPXRoaXMuX3Nlc3Npb25UZ3Quc3BlYyxvPXRoaXMuX3Nlc3Npb25UZ3QudGltZXpvbmUsZD10aGlzLl9idWlsZGVyLnN0YXJ0T2ZQZXJpb2QobixzKTt0aGlzLl9wZXJpb2RTdGFydD1PKGEsZCxvKTtjb25zdCBfPWEuYnVzaW5lc3NEYXlzVG9DYWxlbmRhckRheXMoZCwxKTtfPjEmJigwLHIuYWRkX2RhdGUpKGQsXy0xKSx0aGlzLl9wZXJpb2RTdGFydERheT1jLkJ1c2luZXNzRGF5LmZyb21DYWxlbmRhcihkKTtsZXQgZj10aGlzLl9idWlsZGVyLnN0YXJ0T2ZQZXJpb2QoaSxzKTt0aGlzLl9wZXJpb2RFbmQ9TyhhLGYsbyk7Y29uc3QgUz0oMCxyLmNsb25lKShmKTtmb3IoKDAsci5hZGRfZGF0ZSkoUywtMSk7YS5pc0NhbFdlZWtFbmQoUyk7KSgwLHIuYWRkX2RhdGUpKFMsLTEpO3RoaXMuX3BlcmlvZEVuZERheT1jLkJ1c2luZXNzRGF5LmZyb21DYWxlbmRhcihTKSwoMCxyLmFkZF9kYXRlKShmLC0xKSxmPWZ1bmN0aW9uKHQsZSl7Y29uc3Qgcz0oMCxyLmNsb25lKShlKTtmb3IoO3QuaXNDYWxXZWVrRW5kKHMpOykoMCxyLmFkZF9kYXRlKShzLC0xKTtyZXR1cm4gc30odGhpcy5fc2Vzc2lvblRndC5zcGVjLGYpLHRoaXMuX3BlcmlvZExhc3RCYXJTdGFydD1PKGEsZixvKSwodGhpcy5fcGVyaW9kTGFzdEJhclN0YXJ0PHRoaXMuX3BlcmlvZFN0YXJ0fHx0aGlzLl9wZXJpb2RMYXN0QmFyU3RhcnQ9PT10aGlzLl9wZXJpb2RFbmQpJiYodGhpcy5fcGVyaW9kTGFzdEJhclN0YXJ0PXRoaXMuX3BlcmlvZFN0YXJ0KX1lbmRPZkJhcih0KXtyZXR1cm4gdD09PW8uU2Vzc2lvblN0YWdlLkxBU1RfU0VTU0lPTl9FTkQ/dGhpcy5fZ2V0Wm9uZWREYXRlVGltZU9mQm9yZGVyKG8uU2Vzc2lvblN0YWdlLkxBU1RfU0VTU0lPTl9FTkQpLmdldFRpbWUoKSsxZTM6KCgwLHUuYXNzZXJ0KSgwPT09dCksdGhpcy5fcGVyaW9kRW5kKX1pc0xhc3RCYXIodCxlKXtpZigwIT09dCl0aHJvdyBuZXcgRXJyb3IoImluZGV4IHNob3VsZCBiZSAwIik7cmV0dXJuIGU+PXRoaXMuX3BlcmlvZExhc3RCYXJTdGFydH1tb3ZlQmFyc0ZvcndhcmQodCxlKXsoMCx1LmFzc2VydCkoZT4wKTtjb25zdCBzPSgwLHIuZ2V0X2NhbF9mcm9tX3VuaXhfdGltZXN0YW1wX21zKSh0aGlzLl9zZXNzaW9uVGd0LnRpbWV6b25lLHQpO2xldCBuPXRoaXMuX3Nlc3Npb25UZ3Quc3BlYy5jb3JyZWN0VHJhZGluZ0RheShzKTtmb3IobGV0IHQ9MDt0PGU7dCsrKXtjb25zdCB0PXRoaXMuX3BlcmlvZCt0aGlzLl9idWlsZGVyLmluZGV4T2ZQZXJpb2Qobik7bj10aGlzLl9idWlsZGVyLnN0YXJ0T2ZQZXJpb2QodCwoMCxyLmdldF95ZWFyKShuKSksbj10aGlzLl9zZXNzaW9uVGd0LnNwZWMuY29ycmVjdFRyYWRpbmdEYXkobil9cmV0dXJuIHRoaXMubW92ZVRvKCgwLHIuY2FsX3RvX3V0YykodGhpcy5fc2Vzc2lvblRndC50aW1lem9uZSxuKSksdGhpcy5zdGFydE9mQmFyKDApfWN1cnJlbnRSYW5nZSgpe3JldHVybiBuZXcgRSh0aGlzLl9wZXJpb2RTdGFydERheSx0aGlzLl9wZXJpb2RFbmREYXkpfWluZGV4T2ZCYXJJblllYXIodCl7Y29uc3QgZT0oMCxyLmdldF9jYWxfZnJvbV91bml4X3RpbWVzdGFtcF9tcykodGhpcy5fc2Vzc2lvblNyYy50aW1lem9uZSx0KSxzPSgwLHIuZ2V0X3llYXIpKGUpLG49dGhpcy5fYnVpbGRlci5pbmRleE9mUGVyaW9kKGUpLGE9dGhpcy5fc2Vzc2lvblRndC50aW1lem9uZTtsZXQgbz10aGlzLl9idWlsZGVyLnN0YXJ0T2ZQZXJpb2QobixzKSxkPU8odGhpcy5fc2Vzc2lvblRndC5zcGVjLG8sYSk7cmV0dXJuIG89KDAsCnIuZ2V0X2NhbF9mcm9tX3VuaXhfdGltZXN0YW1wX21zKShnLGQpLHM8KDAsci5nZXRfeWVhcikobyk/KG89dGhpcy5fYnVpbGRlci5zdGFydE9mUGVyaW9kKG4tMSxzKSxkPU8odGhpcy5fc2Vzc2lvblRndC5zcGVjLG8sYSkse2luZGV4OihuLTEpL3RoaXMuX3BlcmlvZCx0aW1lOmR9KTp7aW5kZXg6KDAsaS50b0ludCkobi90aGlzLl9wZXJpb2QpLHRpbWU6ZH19c2Vzc2lvblNyYygpe3JldHVybiB0aGlzLl9zZXNzaW9uU3JjfXNlc3Npb25UZ3QoKXtyZXR1cm4gdGhpcy5fc2Vzc2lvblRndH1zdGF0aWMgZGF5cyh0LGUscyl7cmV0dXJuIG5ldyBCKGUscyx0LG5ldyBwKGUpLCExKX1zdGF0aWMgd2Vla3ModCxlLHMpe3JldHVybiBuZXcgQihlLHMsdCxuZXcgTihlKSwhMSl9c3RhdGljIG1vbnRocyh0LGUscyl7cmV0dXJuIG5ldyBCKGUscyx0LG5ldyBiKGUpLCExKX1zdGF0aWMgZGF5c0Zyb21CdXNpbmVzc0RheXModCxlKXtyZXR1cm4gbmV3IEIoZSxudWxsLHQsbmV3IHAoZSksITApfXN0YXRpYyB3ZWVrc0Zyb21CdXNpbmVzc0RheXModCxlKXtyZXR1cm4gbmV3IEIoZSxudWxsLHQsbmV3IE4oZSksITApfXN0YXRpYyBtb250aHNGcm9tQnVzaW5lc3NEYXlzKHQsZSl7cmV0dXJuIG5ldyBCKGUsbnVsbCx0LG5ldyBiKGUpLCEwKX1fZ2V0Wm9uZWREYXRlVGltZU9mQm9yZGVyKHQpeygwLHUuYXNzZXJ0KSh0PT09by5TZXNzaW9uU3RhZ2UuRklSU1RfU0VTU0lPTl9TVEFSVHx8dD09PW8uU2Vzc2lvblN0YWdlLkxBU1RfU0VTU0lPTl9FTkQpO2NvbnN0IGU9dGhpcy5fc2Vzc2lvblRndC5zcGVjLnRpbWV6b25lT2JqKCk7aWYodD09PW8uU2Vzc2lvblN0YWdlLkZJUlNUX1NFU1NJT05fU1RBUlQpe2NvbnN0IHQ9dGhpcy5jdXJyZW50UmFuZ2UoKS5mcm9tLnRvQ2FsZW5kYXIoZSk7cmV0dXJuKDAsdS5lbnN1cmVOb3ROdWxsKSh0aGlzLl9zZXNzaW9uVGd0LnNwZWMuYm9yZGVyc09mRGFpbHlCYXIodCkpLmZyb219e2NvbnN0IHQ9dGhpcy5jdXJyZW50UmFuZ2UoKS50by50b0NhbGVuZGFyKGUpO3JldHVybigwLHUuZW5zdXJlTm90TnVsbCkodGhpcy5fc2Vzc2lvblRndC5zcGVjLmJvcmRlcnNPZkRhaWx5QmFyKHQpKS50b319X2luZGV4T2ZQZXJpb2RJblllYXIodCl7Y29uc3QgZT10aGlzLl9idWlsZGVyLmluZGV4T2ZQZXJpb2QodCk7bGV0IHM9KDAsaS50b0ludCkoZS90aGlzLl9wZXJpb2QpKnRoaXMuX3BlcmlvZDtyZXR1cm4tMT09PWUmJihzPS10aGlzLl9wZXJpb2QpLHN9fWZ1bmN0aW9uIEkodCxlKXtjb25zdCBzPXQuZ2V0V2Vla0luZGV4KGUpLG49KDAsci5nZXRfZGF5X29mX3dlZWspKGUpLXQuZ2V0RW50cmllc0ZvcldlZWsocykuZmlyc3REYXlPZldlZWsoKTtyZXR1cm4gbjwwP24rNzpufWZ1bmN0aW9uIHgodCxlKXtjb25zdCBzPSgwLHIuZ2V0X2RheV9vZl95ZWFyKShlKS0xO2xldCBuPUkodCxlKS1zJTc7cmV0dXJuIDA9PT1uPygwLGkudG9JbnQpKHMvNyk6KG4+PTAmJihuLT03KSwoMCxpLnRvSW50KSgobitzKS83KSl9Y2xhc3MgeXtpbmRleE9mUGVyaW9kKHQpe3JldHVybigwLHIuZ2V0X2RheV9vZl95ZWFyKSh0KS0xfXN0YXJ0T2ZQZXJpb2QodCxlKXtjb25zdCBzPSgwLHIuZGF5c19wZXJfeWVhcikoZSk7cmV0dXJuKDAsci5nZXRfY2FsKShnLGUsci5KQU5VQVJZLDErTWF0aC5taW4odCxzKSl9fWNsYXNzIE0gZXh0ZW5kcyB5e2NvbnN0cnVjdG9yKHQpe3N1cGVyKCksdGhpcy5fc2Vzc2lvbnNTcGVjPXR9aW5kZXhPZlBlcmlvZCh0KXtyZXR1cm4gc3VwZXIuaW5kZXhPZlBlcmlvZCh0KS1mdW5jdGlvbih0LGUpe2NvbnN0IHM9eCh0LGUpLG49KDAsci5nZXRfY2FsKShnLCgwLHIuZ2V0X3llYXIpKGUpLHIuSkFOVUFSWSwxKTsoMCxyLmFkZF9kYXRlKShuLDcqcyk7Y29uc3QgaT1zKnQud2Vla0VuZHNDb3VudEZvclNpbmdsZVNlc3Npb24oKSt0LmhvbGlkYXlzRnJvbVllYXJTdGFydChuKSxhPSgwLHIuZ2V0X2RheV9vZl95ZWFyKShlKS0oMCxyLmdldF9kYXlfb2ZfeWVhcikobik7cmV0dXJuIGkrYS10LmNhbGVuZGFyRGF5c1RvQnVzaW5lc3NEYXlzKG4sYSl9KHRoaXMuX3Nlc3Npb25zU3BlYyx0KX1zdGFydE9mUGVyaW9kKHQsZSl7Y29uc3Qgcz03LXRoaXMuX3Nlc3Npb25zU3BlYy53ZWVrRW5kc0NvdW50Rm9yU2luZ2xlU2Vzc2lvbigpLG49TWF0aC5tYXgoMCxNYXRoLnRydW5jKHQvcyktMSksaT0oMCxyLmdldF9jYWwpKGcsZSxyLkpBTlVBUlksMSksYT0oMCxyLmRheXNfcGVyX3llYXIpKGUpO2lmKCgwLHIuYWRkX2RhdGUpKGksNypuKSwodC09cypuLXRoaXMuX3Nlc3Npb25zU3BlYy5ob2xpZGF5c0Zyb21ZZWFyU3RhcnQoaSkpPjApe2NvbnN0IGU9dGhpcy5fc2Vzc2lvbnNTcGVjLmJ1c2luZXNzRGF5c1RvQ2FsZW5kYXJEYXlzKGksdCk7KDAsci5hZGRfZGF0ZSkoaSxlKX1sZXQgbz0oMCxyLmdldF9kYXlfb2ZfeWVhcikoaSktMTtyZXR1cm4gZTwoMCxyLmdldF95ZWFyKShpKSYmKG8rPWEpLHN1cGVyLnN0YXJ0T2ZQZXJpb2QobyxlKX19Y2xhc3MgbSBleHRlbmRzIHl7Y29uc3RydWN0b3IodCl7c3VwZXIoKSx0aGlzLl9zZXNzaW9uc1NwZWM9dH1pbmRleE9mUGVyaW9kKHQpe3JldHVybiBzdXBlci5pbmRleE9mUGVyaW9kKHQpLXRoaXMuX3Nlc3Npb25zU3BlYy5kYXlzT2ZmRnJvbVllYXJTdGFydCh0KX1zdGFydE9mUGVyaW9kKHQsZSl7Y29uc3Qgcz0oMCxyLmdldF9jYWwpKGcsZSxyLkpBTlVBUlksMSk7KDAsci5hZGRfZGF0ZSkocyx0KTtjb25zdCBuPXRoaXMuX3Nlc3Npb25zU3BlYy5kYXlzT2ZmRnJvbVllYXJTdGFydChzKTsoMCxyLmFkZF9kYXRlKShzLG4pO2NvbnN0IGk9dGhpcy5fc2Vzc2lvbnNTcGVjLmRheXNPZmZGcm9tWWVhclN0YXJ0KHMpLW47aWYoaT4wKXtjb25zdCB0PXRoaXMuX3Nlc3Npb25zU3BlYy5idXNpbmVzc0RheXNUb0NhbGVuZGFyRGF5cyhzLGkpOygwLHIuYWRkX2RhdGUpKHMsdCl9bGV0IGE9KDAsci5nZXRfZGF5X29mX3llYXIpKHMpLTE7aWYoZTwoMCxyLmdldF95ZWFyKShzKSl7YSs9KDAsci5kYXlzX3Blcl95ZWFyKShlKX1yZXR1cm4gc3VwZXIuc3RhcnRPZlBlcmlvZChhLGUpfX1jbGFzcyBwe2NvbnN0cnVjdG9yKHQpewp0aGlzLl9idWlsZGVyPW51bGwsdGhpcy5faW5pdGlhbGl6ZWQ9ITEsdGhpcy5fc2Vzc2lvbj10fWluZGV4T2ZQZXJpb2QodCl7cmV0dXJuIHRoaXMuX2dldEJ1aWxkZXIoKS5pbmRleE9mUGVyaW9kKHQpfXN0YXJ0T2ZQZXJpb2QodCxlKXtyZXR1cm4gdGhpcy5fZ2V0QnVpbGRlcigpLnN0YXJ0T2ZQZXJpb2QodCxlKX1fZ2V0QnVpbGRlcigpe3JldHVybiBudWxsIT09dGhpcy5fYnVpbGRlciYmdGhpcy5faW5pdGlhbGl6ZWR8fCh0aGlzLl9zZXNzaW9uLnNwZWMuaGFzV2Vla0VuZHMoKT90aGlzLl9idWlsZGVyPXRoaXMuX3Nlc3Npb24uc3BlYy5oYXNIaXN0b3J5Q29ycmVjdGlvbnMoKT9uZXcgbSh0aGlzLl9zZXNzaW9uLnNwZWMpOm5ldyBNKHRoaXMuX3Nlc3Npb24uc3BlYyk6dGhpcy5fYnVpbGRlcj10aGlzLl9zZXNzaW9uLnNwZWMuaGFzSGlzdG9yeUNvcnJlY3Rpb25zKCk/bmV3IG0odGhpcy5fc2Vzc2lvbi5zcGVjKTpuZXcgeSx0aGlzLl9pbml0aWFsaXplZD0hMCksdGhpcy5fYnVpbGRlcn19Y2xhc3MgVHtjb25zdHJ1Y3Rvcih0KXt0aGlzLl9zcGVjPXR9aW5kZXhPZlBlcmlvZCh0KXtsZXQgZT14KHRoaXMuX3NwZWMsdCk7cmV0dXJuIDA9PT1lJiZ0LmdldFRpbWUoKTx0aGlzLnN0YXJ0T2ZQZXJpb2QoMCwoMCxyLmdldF95ZWFyKSh0KSkuZ2V0VGltZSgpJiYoZT0tMSksZX1zdGFydE9mUGVyaW9kKHQsZSl7aWYodDwwKXtlLS07Y29uc3Qgcz0oMCxyLmdldF9jYWwpKGcsZSxyLkRFQ0VNQkVSLDMxLDIzLDU5LDU5KSxuPXRoaXMuaW5kZXhPZlBlcmlvZChzKSxpPS0xKnQsYT1NYXRoLnRydW5jKG4vaSkqaTtyZXR1cm4gdGhpcy5zdGFydE9mUGVyaW9kKGEsZSl9Y29uc3Qgcz0oMCxyLmdldF9jYWwpKGcsZSxyLkpBTlVBUlksMSksbj1JKHRoaXMuX3NwZWMscyksaT0wPT09bj83KnQ6NyoodCsxKS1uO3JldHVybiBpPigwLHIuZGF5c19wZXJfeWVhcikoKDAsci5nZXRfeWVhcikocykpP3RoaXMuc3RhcnRPZlBlcmlvZCgwLGUrMSk6KCgwLHIuYWRkX2RhdGUpKHMsaSkscyl9fWNsYXNzIGt7Y29uc3RydWN0b3IodCl7dGhpcy5feWVhclN0YXJ0RGF0YUhhc2g9bmV3IE1hcCx0aGlzLl9zcGVjPXR9c3RhcnRPZlBlcmlvZCh0LGUpe2lmKHQ8MCl7ZS0tO2NvbnN0IHM9KDAsci5nZXRfY2FsKShnLGUsci5ERUNFTUJFUiwzMSwyMyw1OSw1OSksbj10aGlzLmluZGV4T2ZQZXJpb2QocyksaT0tMSp0LGE9TWF0aC50cnVuYyhuL2kpKmk7cmV0dXJuIHRoaXMuc3RhcnRPZlBlcmlvZChhLGUpfWNvbnN0IHM9dGhpcy5fc3BlYy5nZXRXZWVrSW5kaWNlc1dpdGhBZGRpdGlvbmFsV2Vla0JhcnMoZSksbj10aGlzLl9nZXRTdGFydE9mWWVhckRhdGEoZSxzKSxpPXRoaXMuX21vdmVUb1dlZWtJbmRleEFjY291bnRpbmdBZGRpdGlvbmFsKG4uZmlyc3RXZWVrSW5kZXgscyx0KSxhPTcqKGktbi5maXJzdFdlZWtJbmRleCk7bGV0IG89KDAsci5jbG9uZSkoKDAsdS5lbnN1cmVOb3ROdWxsKShuLnN0YXJ0T2ZGaXJzdEJhckluWWVhcikpO2lmKCgwLHIuYWRkX2RhdGUpKG8sYSksKDAsci5nZXRfeWVhcikobyk+ZSl7Y29uc3QgdD1lKzEscz10aGlzLl9zcGVjLmdldFdlZWtJbmRpY2VzV2l0aEFkZGl0aW9uYWxXZWVrQmFycyh0KSxyPXRoaXMuX2dldFN0YXJ0T2ZZZWFyRGF0YSh0LHMpO2lmKG8uZ2V0VGltZSgpPj0oMCx1LmVuc3VyZU5vdE51bGwpKHIuc3RhcnRPZkZpcnN0QmFySW5ZZWFyKS5nZXRUaW1lKCkpcmV0dXJuIHRoaXMuc3RhcnRPZlBlcmlvZCgwLHQpfXJldHVybiBvPXRoaXMuX2NhbGN1bGF0ZUJhcldlZWtTdGFydChvLHMsaSx0KSxvfWluZGV4T2ZQZXJpb2QodCl7Y29uc3QgZT10aGlzLl9zcGVjLmdldFdlZWtJbmRleCh0KSxzPXRoaXMuX3NwZWMuZ2V0V2Vla0luZGljZXNXaXRoQWRkaXRpb25hbFdlZWtCYXJzKCgwLHIuZ2V0X3llYXIpKHQpKSxuPXRoaXMuX2dldFN0YXJ0T2ZZZWFyRGF0YSgoMCxyLmdldF95ZWFyKSh0KSxzKTtpZih0LmdldFRpbWUoKTwoMCx1LmVuc3VyZU5vdE51bGwpKG4uc3RhcnRPZkZpcnN0QmFySW5ZZWFyKS5nZXRUaW1lKCkpcmV0dXJuLTE7aWYoMD09PWUmJmsuaXNPbkZpcnN0Q2FsZW5kYXJXZWVrT2ZZZWFyKHQpfHwwIT09ZSYmZT09PW4uZmlyc3RXZWVrSW5kZXgpcmV0dXJuIHRoaXMuX2NhbGN1bGF0ZUxhc3RXZWVrKHQsZSxzLG4uZmlyc3RXZWVrYmFyc0NvdW50KS0xO2xldCBpPXRoaXMuX251bWJlck9mQ2FsZW5kYXJXZWVrcyh0KTtyZXR1cm4gaSs9bi5maXJzdFdlZWtiYXJzQ291bnQtbi5mdWxsV2Vla3NBZGp1c3RtZW50LGkrPXRoaXMuX2NhbGN1bGF0ZVdlZWtzV2l0aEV4dHJhQmFyKGUscyxuLmZpcnN0V2Vla0luZGV4KSxpKz10aGlzLl9jYWxjdWxhdGVMYXN0V2Vlayh0LGUscyxrLmZ1bGxXZWVrT2ZBZGRpdGlvbmFsQmFyc0NvdW50KS0xLGl9c3RhdGljIGlzT25GaXJzdENhbGVuZGFyV2Vla09mWWVhcih0KXtpZigoMCxyLmdldF9kYXlfb2ZfeWVhcikodCk+ci5MQVNUX0RBWV9PRl9XRUVLKXJldHVybiExO2NvbnN0IGU9KDAsci5nZXRfY2FsKShnLCgwLHIuZ2V0X3llYXIpKHQpLHIuSkFOVUFSWSwxLDAsMCkscz0oMCxyLmNsb25lKShlKTtyZXR1cm4oMCxyLmFkZF9kYXRlKShzLHIuTEFTVF9EQVlfT0ZfV0VFSy0oMCxyLmdldF9kYXlfb2Zfd2VlaykoZSkpLHQuZ2V0VGltZSgpPHMuZ2V0VGltZSgpfV9tb3ZlVG9XZWVrSW5kZXhBY2NvdW50aW5nQWRkaXRpb25hbCh0LGUscyl7bGV0IHI9dCtzO2Zvcihjb25zdCBzIG9mIGUpaWYoIShzLndlZWtJbmRleDx0KSl7aWYocy53ZWVrSW5kZXg+PXIpYnJlYWs7ci0tfXJldHVybiByfV9jYWxjdWxhdGVCYXJXZWVrU3RhcnQodCxlLHMsbil7Y29uc3QgaT10aGlzLl9nZXRJbmRleE9mV2Vla1dpdGhFeHRyYUJhcklmRXhpc3RzKGUscyk7aWYobnVsbD09PWkpe2NvbnN0IGU9dGhpcy5fc3BlYy5nZXRFbnRyaWVzRm9yV2VlayhzKS5maXJzdERheU9mV2VlaygpLSgwLHIuZ2V0X2RheV9vZl93ZWVrKSh0KSxuPSgwLHIuY2xvbmUpKHQpO3JldHVybigwLHIuYWRkX2RhdGUpKG4sZSksbn1jb25zdCBhPXRoaXMuX3NwZWMuZ2V0SGlzdG9yeUJ5SW5kZXgoaS5lbnRyeUluZGV4KQo7aWYodGhpcy5pbmRleE9mUGVyaW9kKCgwLHUuZW5zdXJlTm90TnVsbCkoYS5nZXRTdGFydERheSgpKSk9PT1uKXJldHVybigwLHIuY2xvbmUpKCgwLHUuZW5zdXJlTm90TnVsbCkoYS5nZXRTdGFydERheSgpKSk7Y29uc3Qgbz10aGlzLl9zcGVjLmdldEhpc3RvcnlCeUluZGV4KGkuZW50cnlJbmRleC0xKS5nZXRFbnRyaWVzKCkuZmlyc3REYXlPZldlZWsoKS0oMCxyLmdldF9kYXlfb2Zfd2VlaykodCksZD0oMCxyLmNsb25lKSh0KTtyZXR1cm4oMCxyLmFkZF9kYXRlKShkLG8pLGR9X251bWJlck9mQ2FsZW5kYXJXZWVrcyh0KXtjb25zdCBlPSgwLHIuZ2V0X2RheV9vZl95ZWFyKSh0KSxzPSgwLHIuZ2V0X2RheV9vZl93ZWVrKSh0KTtyZXR1cm4gTWF0aC50cnVuYygoZS1zKS83KX1fZ2V0U3RhcnRPZlllYXJEYXRhKHQsZSl7bGV0IHM9dGhpcy5feWVhclN0YXJ0RGF0YUhhc2guZ2V0KHQpO2lmKHZvaWQgMCE9PXMpcmV0dXJuIHM7bGV0IG49KDAsci5nZXRfY2FsKShnLHQsci5KQU5VQVJZLDEsMCwwKSxpPXRoaXMuX3NwZWMuZ2V0V2Vla0luZGV4KG4pLGE9MDtmb3IoKDAsci5nZXRfZGF5X29mX3dlZWspKG4pPT09ci5GSVJTVF9EQVlfT0ZfV0VFSyYmKGE9MSkscz10aGlzLl9nZXRZZWFyU3RhcnREYXRhRnJvbVdlZWsoZSxpLG4pO251bGw9PT1zLnN0YXJ0T2ZGaXJzdEJhckluWWVhcjspaSsrLGErKyxuPXRoaXMuX21vdmVUb05leHRDYWxlbmRhcldlZWtTdGFydChuKSxzPXRoaXMuX2dldFllYXJTdGFydERhdGFGcm9tV2VlayhlLGksbik7cmV0dXJuIHMuZnVsbFdlZWtzQWRqdXN0bWVudD1hLHRoaXMuX3llYXJTdGFydERhdGFIYXNoLnNldCh0LHMpLHN9X21vdmVUb05leHRDYWxlbmRhcldlZWtTdGFydCh0KXtjb25zdCBlPSgwLHIuZ2V0X2RheV9vZl93ZWVrKSh0KSxzPSgwLHIuY2xvbmUpKHQpO3JldHVybigwLHIuYWRkX2RhdGUpKHMsci5MQVNUX0RBWV9PRl9XRUVLLWUrMSksc31fZ2V0WWVhclN0YXJ0RGF0YUZyb21XZWVrKHQsZSxzKXtjb25zdCBuPSgwLHIuZ2V0X2RheV9vZl93ZWVrKShzKTtsZXQgaT1udWxsLGE9MDtjb25zdCBvPXRoaXMuX2dldEluZGV4T2ZXZWVrV2l0aEV4dHJhQmFySWZFeGlzdHModCxlKTtpZihudWxsIT09byl7bGV0IHQ9dGhpcy5fc3BlYy5nZXRIaXN0b3J5QnlJbmRleChvLmVudHJ5SW5kZXgtMSkuZ2V0RW50cmllcygpLmZpcnN0RGF5T2ZXZWVrKCktbjtpZih0Pj0wKWk9KDAsci5jbG9uZSkocyksKDAsci5hZGRfZGF0ZSkoaSx0KSxhPTI7ZWxzZXtjb25zdCBlPXRoaXMuX3NwZWMuZ2V0SGlzdG9yeUJ5SW5kZXgoby5lbnRyeUluZGV4KTt0PWUuZ2V0RW50cmllcygpLmZpcnN0RGF5T2ZXZWVrKCktbix0Pj0wJiYoaT1lLmdldFN0YXJ0RGF5KCksaSYmKGk9KDAsci5jbG9uZSkoaSkpLGE9MSl9fWVsc2V7Y29uc3QgdD10aGlzLl9zcGVjLmdldEVudHJpZXNGb3JXZWVrKGUpLG89dC5maXJzdERheU9mV2VlaygpLW47bz49MCYmKHRoaXMuX2hhc1dvcmtpbmdEYXlzKHQpfHx0aGlzLl9oYXNXb3JraW5nRGF5c05leHRXZWVrKGUrMSkpJiYoaT0oMCxyLmNsb25lKShzKSwoMCxyLmFkZF9kYXRlKShpLG8pLGE9MSl9cmV0dXJue3N0YXJ0T2ZGaXJzdEJhckluWWVhcjppLGZpcnN0V2Vla0luZGV4OmUsZmlyc3RXZWVrYmFyc0NvdW50OmEsZnVsbFdlZWtzQWRqdXN0bWVudDowfX1faGFzV29ya2luZ0RheXModCl7aWYoMD09PXQuZW50cmllc0J5RGF5KCkuc2l6ZSlyZXR1cm4hMTtmb3IobGV0IGU9dC5maXJzdERheU9mV2VlaygpO2U8PXIuTEFTVF9EQVlfT0ZfV0VFSztlKyspaWYodm9pZCAwIT09dC5lbnRyaWVzQnlEYXkoKS5nZXQoZSkpcmV0dXJuITA7cmV0dXJuITF9X2hhc1dvcmtpbmdEYXlzTmV4dFdlZWsodCl7Y29uc3QgZT10aGlzLl9zcGVjLmdldEVudHJpZXNGb3JXZWVrKHQpO2ZvcihsZXQgdD0xO3Q8ZS5maXJzdERheU9mV2VlaygpO3QrKylpZih2b2lkIDAhPT1lLmVudHJpZXNCeURheSgpLmdldCh0KSlyZXR1cm4hMDtyZXR1cm4hMX1fY2FsY3VsYXRlV2Vla3NXaXRoRXh0cmFCYXIodCxlLHMpe2xldCByPTA7Zm9yKGNvbnN0IG4gb2YgZSl7aWYobi53ZWVrSW5kZXg+PXQpYnJlYWs7bi53ZWVrSW5kZXg+cyYmcisrfXJldHVybiByfV9jYWxjdWxhdGVMYXN0V2Vlayh0LGUscyxuKXtjb25zdCBpPSgwLHIuZ2V0X2RheV9vZl93ZWVrKSh0KSxhPXRoaXMuX2dldEluZGV4T2ZXZWVrV2l0aEV4dHJhQmFySWZFeGlzdHMocyxlKTtpZihudWxsPT09YSl7cmV0dXJuIGktdGhpcy5fc3BlYy5nZXRFbnRyaWVzRm9yV2VlayhlKS5maXJzdERheU9mV2VlaygpPj0wPzE6MH1jb25zdCBvPXRoaXMuX3Bvc2l0aW9uSW5zaWRlV2Vla1dpdGhTZXZlcmFsQmFycyhhLGkpO3JldHVybiBvPT09ay5Jc0luTmV3U2Vzc2lvbj9uOm89PT1rLklzSW5NaWRTZXNzaW9uP24tMTowfV9nZXRJbmRleE9mV2Vla1dpdGhFeHRyYUJhcklmRXhpc3RzKHQsZSl7Zm9yKGNvbnN0IHMgb2YgdCl7aWYocy53ZWVrSW5kZXg9PT1lKXJldHVybiBzO2lmKHMud2Vla0luZGV4PmUpYnJlYWt9cmV0dXJuIG51bGx9X3Bvc2l0aW9uSW5zaWRlV2Vla1dpdGhTZXZlcmFsQmFycyh0LGUpe2xldCBzPXRoaXMuX3NwZWMuZ2V0SGlzdG9yeUJ5SW5kZXgodC5lbnRyeUluZGV4KS5nZXRFbnRyaWVzKCkuZmlyc3REYXlPZldlZWsoKS1lO2lmKHM8PTApcmV0dXJuIGsuSXNJbk5ld1Nlc3Npb247cmV0dXJuIHM9dGhpcy5fc3BlYy5nZXRIaXN0b3J5QnlJbmRleCh0LmVudHJ5SW5kZXgtMSkuZ2V0RW50cmllcygpLmZpcnN0RGF5T2ZXZWVrKCktZSxzPD0wP2suSXNJbk1pZFNlc3Npb246ay5Jc0JlZm9yZUFueVNlc3Npb259fWsuSXNCZWZvcmVBbnlTZXNzaW9uPS0xLGsuSXNJbk1pZFNlc3Npb249MCxrLklzSW5OZXdTZXNzaW9uPTEsay5mdWxsV2Vla09mQWRkaXRpb25hbEJhcnNDb3VudD0yO2NsYXNzIE57Y29uc3RydWN0b3IodCl7dGhpcy5fYnVpbGRlcj1udWxsLHRoaXMuX3Nlc3Npb249dH1pbmRleE9mUGVyaW9kKHQpe3JldHVybiB0aGlzLl9nZXRCdWlsZGVyKCkuaW5kZXhPZlBlcmlvZCh0KX1zdGFydE9mUGVyaW9kKHQsZSl7cmV0dXJuIHRoaXMuX2dldEJ1aWxkZXIoKS5zdGFydE9mUGVyaW9kKHQsZSkKfV9nZXRCdWlsZGVyKCl7cmV0dXJuIG51bGw9PXRoaXMuX2J1aWxkZXImJih0aGlzLl9idWlsZGVyPXRoaXMuX3Nlc3Npb24uc3BlYy5oYXNIaXN0b3J5Q29ycmVjdGlvbnMoKT9uZXcgayh0aGlzLl9zZXNzaW9uLnNwZWMpOm5ldyBUKHRoaXMuX3Nlc3Npb24uc3BlYykpLHRoaXMuX2J1aWxkZXJ9fWNsYXNzIGJ7Y29uc3RydWN0b3IodCl7dGhpcy5fc2Vzc2lvbj10fWluZGV4T2ZQZXJpb2QodCl7cmV0dXJuKDAsci5nZXRfbW9udGgpKHQpfXN0YXJ0T2ZQZXJpb2QodCxlKXtpZih0PDApe2NvbnN0IHM9KDAsaS50b0ludCkoKDExLXQpLzEyKTtlLT1zLHQrPTEyKnN9ZWxzZSB0PnIuREVDRU1CRVImJihlKyssdD1yLkpBTlVBUlkpO3JldHVybigwLHIuZ2V0X2NhbCkoZyxlLHQsMSl9fXZhciBELFc7ZnVuY3Rpb24gdyh0LGUscyxyPSExKXtjb25zdCBpPW4uSW50ZXJ2YWwucGFyc2UodCksYT1pLm11bHRpcGxpZXIoKTtyZXR1cm4gaS5pc01pbnV0ZXMoKT9oLm1pbnV0ZXMoYSxlKTppLmlzU2Vjb25kcygpP2guc2Vjb25kcyhhLGUpOmkuaXNUaWNrcygpP25ldyBoKDEsZSk6aS5pc1JhbmdlKCk/bmV3IGgoNjAqYSxlKTpuZXcgQihlLHM/P251bGwsYSxmdW5jdGlvbih0LGUpe3N3aXRjaCh0KXtjYXNlIG4uUmVzb2x1dGlvbktpbmQuRGF5czpyZXR1cm4gbmV3IHAoZSk7Y2FzZSBuLlJlc29sdXRpb25LaW5kLldlZWtzOnJldHVybiBuZXcgTihlKTtjYXNlIG4uUmVzb2x1dGlvbktpbmQuTW9udGhzOnJldHVybiBuZXcgYihlKX10aHJvdyBuZXcgRXJyb3IoYFVua25vd24gZHdtIHJlc29sdXRpb246ICR7dH1gKX0oaS5raW5kKCksZSkscil9ZnVuY3Rpb24gdih0LGUscyxpLG8sZCxfKXtjb25zdCBmPW4uSW50ZXJ2YWwucGFyc2UobytpKTtpZihmLmlzTW9udGhzKCkpe2NvbnN0IHQ9bmV3IERhdGUoZCksZT1uZXcgRGF0ZShfKTtsZXQgcz0xMiooZS5nZXRVVENGdWxsWWVhcigpLXQuZ2V0VVRDRnVsbFllYXIoKSk7cmV0dXJuIHMrPWUuZ2V0VVRDTW9udGgoKS10LmdldFVUQ01vbnRoKCksTWF0aC5jZWlsKHMvZi5tdWx0aXBsaWVyKCkpfWNvbnN0IFM9bmV3IGEuU2Vzc2lvbkluZm8oIkV0Yy9VVEMiLHQsZSxzKSxsPWYuaW5NaWxsaXNlY29uZHMoKTtsZXQgaDtpZihmLmlzRFdNKCkpaD04NjRlNTtlbHNle2NvbnN0IHQ9Uy5zcGVjLmdldFdlZWtJbmRleCgoMCxyLmdldF9jYWxfZnJvbV91bml4X3RpbWVzdGFtcF9tcykoUy50aW1lem9uZSxfKSk7aD02MCpTLnNwZWMuZ2V0RW50cmllc0ZvcldlZWsodCkubWF4VHJhZGluZ0RheUxlbmd0aCgpKjFlM31sZXQgdT0wO2lmKGYuaXNXZWVrcygpKXU9NztlbHNle2NvbnN0IHQ9Uy5zcGVjLmdldFdlZWtJbmRleCgoMCxyLmdldF9jYWxfZnJvbV91bml4X3RpbWVzdGFtcF9tcykoUy50aW1lem9uZSxfKSk7dT03LVMuc3BlYy5nZXRFbnRyaWVzRm9yV2Vlayh0KS53ZWVrRW5kc0NvdW50KCl9Y29uc3QgYz1fLWQsZz1oL2wsTz11Kmc7bGV0IEU9Yy84NjRlNSpnO0U+PU8mJihFPWMvNjA0OGU1Kk8pO3JldHVybiBFJTE8PU51bWJlci5FUFNJTE9OKk1hdGguY2VpbChFKT9NYXRoLnJvdW5kKEUpOk1hdGguY2VpbChFKX0hZnVuY3Rpb24odCl7dFt0LkFsaWduVG9GaXJzdERheT0wXT0iQWxpZ25Ub0ZpcnN0RGF5Iix0W3QuQWxpZ25Ub0Nsb3Nlc3REYXk9MV09IkFsaWduVG9DbG9zZXN0RGF5In0oRHx8KEQ9e30pKSxmdW5jdGlvbih0KXt0W3QuRD04NjRlNV09IkQiLHRbdC5XPTYwNDhlNV09IlcifShXfHwoVz17fSkpfSwyOTUxNCh0LGUscyl7dmFyIHI7cy5kKGUse1Nlc3Npb25TdGFnZTooKT0+cn0pLGZ1bmN0aW9uKHQpe3RbdC5QUkVfU0VTU0lPTj0tMV09IlBSRV9TRVNTSU9OIix0W3QuUE9TVF9TRVNTSU9OPS0yXT0iUE9TVF9TRVNTSU9OIix0W3QuTEFTVEJBUl9TRVNTSU9OPS0zXT0iTEFTVEJBUl9TRVNTSU9OIix0W3QuTEFTVF9TRVNTSU9OX0VORD0tNF09IkxBU1RfU0VTU0lPTl9FTkQiLHRbdC5GSVJTVF9TRVNTSU9OX1NUQVJUPS01XT0iRklSU1RfU0VTU0lPTl9TVEFSVCJ9KHJ8fChyPXt9KSl9LDc1OTI5OCh0LGUscyl7cy5kKGUse2V4dHJhcG9sYXRlQmFyc0Zyb250QnlDb3VudDooKT0+aSxleHRyYXBvbGF0ZUJhcnNGcm9udFRvVGltZTooKT0+bn0pO3ZhciByPXMoMjk1MTQpO2Z1bmN0aW9uIG4odCxlLHMscixpPSExKXtpZihlPnMpe2NvbnN0IGE9bih0LHMsZSxyLGkpO3JldHVybiBhLmNvdW50PS1hLmNvdW50LGF9cmV0dXJuIGEodCxlLDEsKCh0LGUpPT5lPnN8fDAhPT1yJiZ0PnIpLGkpfWZ1bmN0aW9uIGkodCxlLHMscj0hMSl7Y29uc3Qgbj1zPDA/LTE6MTtyZXR1cm4gYSh0LGUsbiwoKHQsZSk9PnQ+PXMqbikscil9ZnVuY3Rpb24gYSh0LGUscyxuLGkpe2xldCBhPTAsbz1lO3QubW92ZVRvKG8pO2xldCBkPTAsXz1OdW1iZXIuTUFYX1ZBTFVFLGY9ITEsUz1lO2NvbnN0IGw9W107bGV0IGg9ITE7Zm9yKDshbihhLG8pOyl7aWYoZD4xNSl0aHJvdyBuZXcgRXJyb3IoIkludGVybmFsIGVycm9yIDB4MTAgd2hpbGUgZXh0cmFwb2xhdGluZy4iKTtjb25zdCBuPXQuaW5kZXhPZkJhcihvKTtpZihuPT09ci5TZXNzaW9uU3RhZ2UuUFJFX1NFU1NJT04mJjE9PT1zKW89dC5zdGFydE9mQmFyKDApLHQubW92ZVRvKG8pLGg9ITA7ZWxzZSBpZihuPT09ci5TZXNzaW9uU3RhZ2UuUFJFX1NFU1NJT04mJi0xPT09cylvPXQuc3RhcnRPZkJhcihyLlNlc3Npb25TdGFnZS5QUkVfU0VTU0lPTiksdC5tb3ZlVG8obyksaD0hMDtlbHNlIGlmKG49PT1yLlNlc3Npb25TdGFnZS5QT1NUX1NFU1NJT04mJjE9PT1zKW89dC5zdGFydE9mQmFyKHIuU2Vzc2lvblN0YWdlLlBPU1RfU0VTU0lPTiksdC5tb3ZlVG8obyksaD0hMDtlbHNle2lmKG49PT1yLlNlc3Npb25TdGFnZS5QT1NUX1NFU1NJT04mJi0xPT09cyl0aHJvdyBuZXcgRXJyb3IoIkludGVybmFsIGVycm9yIDB4MTIgd2hpbGUgZXh0cmFwb2xhdGluZy4iKTt7Y29uc3QgdT10LnN0YXJ0T2ZCYXIobik7aWYodT5lJiZzPjAmJihofHwwIT09bil8fGU+dSYmczwwKXtpZihmJiZfPT09dSl0aHJvdyBuZXcgRXJyb3IoIkludGVybmFsIGVycm9yIDB4MTEgd2hpbGUgZXh0cmFwb2xhdGluZy4iKTtmPSEwLF89dSxkPTAsCmErKyxTPXUsaSYmbC5wdXNoKFMpfWlmKDE9PT1zKXtvPXQuZW5kT2ZCYXIobik7Y29uc3QgZT10LnN0YXJ0T2ZCYXIoci5TZXNzaW9uU3RhZ2UuUE9TVF9TRVNTSU9OKTtvPT09ZSYmKHQubW92ZVRvKGUpLG89dC5zdGFydE9mQmFyKDApLGg9ITApfWVsc2UgMD09PW4/KG89dC5zdGFydE9mQmFyKHIuU2Vzc2lvblN0YWdlLlBSRV9TRVNTSU9OKSx0Lm1vdmVUbyhvKSk6bz10LnN0YXJ0T2ZCYXIobi0xKX19ZCsrfXJldHVybnt0aW1lOlMsdGltZXM6bCxjb3VudDphfX19fV0pOw=="}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/81247.7059063ba4d3b37302dc.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:13.788Z","timestamp":1785148033788,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/81247.7059063ba4d3b37302dc.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:13 GMT\r\ncontent-type: text/css; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a4360b8-308\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Tue, 30 Jun 2026 06:22:48 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.57\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 06/30/2026 11:55:10\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 3ba9547093a992eb3369aa6252b107e8\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":776,"size_decoded":1087,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with very long lines (776), with no line terminators","md5":"61f42e8a346b20abe1ee19436587307b","sha1":"2b1289bece80c17f1b05ceeee27a391f85fd14df","sha256":"5540ab6ad033d0c8d744e54bce1762b3c3a26f361e08614893bea5efce561218","sha512":"f13b8d738468b5744d16bbc46db4bf0d7f907f202a52a43d492591b896e8061ec482c18effa0e8fcdf773c4dfcbd05919a21550a62fdce9b2e095f675efb350c","ssdeep":"","tlshash":"c401d623120632e7df76c13cae82d7c56f9a21b548200a0ffc7a9811476b3f94b889d2","first_seen":"2026-06-30T21:57:43.398574Z","last_seen":"2026-07-27T12:48:39.799661Z","times_seen":239,"resource_available":false,"data":"LmFjY2Vzc2libGUtS3RxYV9TelB7b3V0bGluZTpub25lO292ZXJmbG93OnZpc2libGU7cG9zaXRpb246cmVsYXRpdmV9LmFjY2Vzc2libGUtS3RxYV9TelA6Zm9jdXN7b3V0bGluZTpub25lfS5hY2Nlc3NpYmxlLUt0cWFfU3pQOmZvY3VzLXZpc2libGV7b3V0bGluZTpub25lfS5hY2Nlc3NpYmxlLUt0cWFfU3pQOmFmdGVye2JvcmRlci1zdHlsZTpzb2xpZDtib3JkZXItd2lkdGg6MnB4O2JveC1zaXppbmc6Ym9yZGVyLWJveDtjb250ZW50OiIiO2Rpc3BsYXk6bm9uZTtoZWlnaHQ6MTAwJTtpbnNldC1pbmxpbmUtc3RhcnQ6MDtwb2ludGVyLWV2ZW50czpub25lO3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO3dpZHRoOjEwMCU7ei1pbmRleDoxfS5hY2Nlc3NpYmxlLUt0cWFfU3pQOmZvY3VzOmFmdGVye2Rpc3BsYXk6YmxvY2t9LmFjY2Vzc2libGUtS3RxYV9TelA6Zm9jdXMtdmlzaWJsZTphZnRlcntkaXNwbGF5OmJsb2NrfS5hY2Nlc3NpYmxlLUt0cWFfU3pQOmZvY3VzOm5vdCg6Zm9jdXMtdmlzaWJsZSk6YWZ0ZXJ7ZGlzcGxheTpub25lfS5hY2Nlc3NpYmxlLUt0cWFfU3pQOmFmdGVye2JvcmRlci1yYWRpdXM6NnB4fS5hY2Nlc3NpYmxlLUt0cWFfU3pQOm5vdCguYWNjZXNzaWJsZS1LdHFhX1N6UC5hY3RpdmUtS3RxYV9TelApOmFmdGVye2JvcmRlci1jb2xvcjp2YXIoLS1jb2xvci10di1ibHVlLTUwMCl9LmFjY2Vzc2libGUtS3RxYV9TelAuYWN0aXZlLUt0cWFfU3pQOmFmdGVye2JvcmRlci1jb2xvcjp2YXIoLS1jb2xvci1ib3JkZXItcHJpbWFyeS1pbnZlcnNlKX0="}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/error-renderer.dc2ce717d0e5028b35fc.js","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:13.817Z","timestamp":1785148033817,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/error-renderer.dc2ce717d0e5028b35fc.js HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:13 GMT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a608293-3007\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Wed, 22 Jul 2026 08:42:59 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/22/2026 11:01:21\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 3785d97856392e1de7e5b87f0bf29393\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":12295,"size_decoded":5518,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (3067)","md5":"1c7314ec5698d1269fcf3fe8e9d48648","sha1":"d1fb17b9e771bd250914284740cc34a81547b91d","sha256":"bd627f042740901d7be3db9685ce7831516e3f188779cc4a1ae7dbaa6fd32b74","sha512":"1b164cef2eadd5807eaaff6a71f636a4c6c0f4974124302f30b8eeb70e2bf37fee66589a465b1619919462a2a0c3d3c5336d900152e91200950f0205b73d7452","ssdeep":"384:iBaD9U0gstXMY5/BUFXXRn8XaTigVaft1nglXBxEiS1WCSELCg4N:iBaD20gst8Y5/BUj8XmV+tyLCsCSEM","tlshash":"4042f7a462dab965636201cae474b813b22c2d02348d86a8f72c9dcf371cd41f57d776","first_seen":"2026-07-22T16:00:00.456338Z","last_seen":"2026-07-27T12:53:06.174502Z","times_seen":138,"resource_available":true,"data":"InVzZSBzdHJpY3QiOyhzZWxmLndlYnBhY2tDaHVua3RyYWRpbmd2aWV3PXNlbGYud2VicGFja0NodW5rdHJhZGluZ3ZpZXd8fFtdKS5wdXNoKFtbNjA5NjksNzExODUsNzQzNDFdLHs5MDEwMjIoZSx0LHIpe3IuZCh0LHtTRVBBUkFUT1JfUFJFRklYOigpPT5zLGlzU2VwYXJhdG9ySXRlbTooKT0+bn0pO2NvbnN0IHM9IiMjIyI7ZnVuY3Rpb24gbihlKXtyZXR1cm4gZS5zdGFydHNXaXRoKHMpfX0sMTI4ODE0KGUsdCxyKXtyLmQodCx7UXVvdGVTZXNzaW9uU25hcHNob3RlcjooKT0+ZH0pO3ZhciBzPXIoOTQ4MzgwKSxuPXIoMTUwMTUwKSxvPXIoMjE0OTg3KSxhPXIoMTM4NjM4KSxpPXIoMzY3OTQ2KSxsPXIoOTcwNzc0KSxjPXIoMzA5MDUyKTtjb25zdCB1PW5ldyBNYXAoW1siY2hhbmdlIiwiY2giXSxbImxhc3RfcHJpY2UiLCJscCJdLFsiY2hhbmdlX3BlcmNlbnQiLCJjaHAiXSxbInVwZGF0ZV9tb2RlX3NlY29uZHMiLG51bGxdXSk7bmV3IE1hcChbWyJjaCIsImNoYW5nZSJdLFsibHAiLCJsYXN0X3ByaWNlIl0sWyJjaHAiLCJjaGFuZ2VfcGVyY2VudCJdXSk7Y2xhc3MgZHtjb25zdHJ1Y3RvcihlKXtpZih0aGlzLl9vblN5bWJvbERhdGE9bmV3IHMuRGVsZWdhdGUsdGhpcy5faW5jb21wbGV0ZT1uZXcgU2V0LHRoaXMuX3VwZGF0ZWRGaWVsZHM9bmV3IE1hcCx0aGlzLl9jb25uZWN0ZWQ9ITEsdGhpcy5fYmF0Y2hlcj1udWxsLHRoaXMuX2hhbmRsZXI9ZT0+e3N3aXRjaChlLm1ldGhvZCl7Y2FzZSJjb25uZWN0ZWQiOnRoaXMuX2Nvbm5lY3RlZHx8KHRoaXMuX2Nvbm5lY3RlZD0hMCx0aGlzLl9oYW5kbGVDb25uZWN0ZWQoKSk7YnJlYWs7Y2FzZSJxdW90ZV9zeW1ib2xfZGF0YSI6dGhpcy5fY29ubmVjdGVkJiZ0aGlzLl9oYW5kbGVTeW1ib2xEYXRhKGUucGFyYW1zWzBdKTticmVhaztjYXNlInF1b3RlX2NvbXBsZXRlZCI6dGhpcy5fY29ubmVjdGVkJiZ0aGlzLl9oYW5kbGVDb21wbGV0ZURhdGEoZS5wYXJhbXNbMF0pO2JyZWFrO2Nhc2UiZGlzY29ubmVjdGVkIjp0aGlzLl9jb25uZWN0ZWQmJih0aGlzLl9jb25uZWN0ZWQ9ITEsdGhpcy5fYmF0Y2hlcj1udWxsKX19LDA9PT1lLmZpZWxkcy5sZW5ndGgpdGhyb3cgbmV3IEVycm9yKCdTdXBwb3J0IGZvciBlbXB0eSAiZmllbGRzIiBhcnJheSBpcyBub3QgaW1wbGVtZW50ZWQnKTtjb25zdHtwcm92aWRlcjp0PWwuUXVvdGVTZXNzaW9ufT1lO3RoaXMuX2ZpZWxkcz1uZXcgU2V0KGUuZmllbGRzKSx0aGlzLl9zZXNzaW9uPW5ldyB0KGUuYXBpLFsic25hcHNob3RlciIsZS5uYW1lLCgwLG4ucmFuZG9tSGFzaCkoKV0uZmlsdGVyKEJvb2xlYW4pLmpvaW4oIl8iKSksdGhpcy5fc2Vzc2lvbi5jb25uZWN0KHRoaXMuX2hhbmRsZXIpfWdldFNuYXBzaG90U3luYyhlLHQpe2NvbnN0IHI9ZC5jYWNoZS5nZXQoZSk7cmV0dXJuIHImJnRoaXMuX2lzU25hcHNob3RSZWFkeShyLHtmaWVsZHM6dCx0aW1lc3RhbXA6bnVsbH0pP3I6bnVsbH1nZXRTbmFwc2hvdHNGb3JBbGxTeW5jKGUsdCl7cmV0dXJuIGUubWFwKChlPT50aGlzLmdldFNuYXBzaG90U3luYyhlLHQpKSl9Z2V0U25hcHNob3QoZSx0LHIpe2NvbnN0IHM9cj8uc2lnbmFsPz9udWxsLG49cj8uZnJlc2huZXNzLGk9dm9pZCAwIT09bj9EYXRlLm5vdygpLW46bnVsbDtyZXR1cm4gbmV3IFByb21pc2UoKChyLG4pPT57aWYocyYmcy5hYm9ydGVkKXRocm93KDAsby5jcmVhdGVBYm9ydEVycm9yKSgpO2NvbnN0IGw9KCk9Pnt0aGlzLl9vblN5bWJvbERhdGEudW5zdWJzY3JpYmUodGhpcyxjKSxuKCgwLG8uY3JlYXRlQWJvcnRFcnJvcikoKSl9LGM9KG49ZSk9PntpZihuIT09ZSlyZXR1cm47Y29uc3Qgbz1kLmNhY2hlLmdldChlKTtvJiZ0aGlzLl9pc1NuYXBzaG90UmVhZHkobyx7dGltZXN0YW1wOmksc3ltYm9sOmUsZmllbGRzOnR9KSYmKHRoaXMuX29uU3ltYm9sRGF0YS51bnN1YnNjcmliZSh0aGlzLGMpLHM/LnJlbW92ZUV2ZW50TGlzdGVuZXIoImFib3J0IixsKSxyKG8pKX07aWYoISgoKT0+e2NvbnN0IHM9ZC5jYWNoZS5nZXQoZSk7aWYoIXMpcmV0dXJuITE7Y29uc3Qgbj0oMCxhLmVuc3VyZU5vdE51bGwpKGQuY2FjaGUuZ2V0VGltZXMoZSkpO3JldHVybiEhdGhpcy5faXNTbmFwc2hvdFJlYWR5KHMse2ZpZWxkczp0LHN5bWJvbDplLHRpbWVzdGFtcDppLHRpbWVzOm59KSYmKHIocyksITApfSkoKSYmKHM/LmFkZEV2ZW50TGlzdGVuZXIoImFib3J0IixsLHtvbmNlOiEwfSksdGhpcy5fb25TeW1ib2xEYXRhLnN1YnNjcmliZSh0aGlzLGMpLCF0aGlzLl9pbmNvbXBsZXRlLmhhcyhlKSkpe2lmKHRoaXMuX3VwZGF0ZWRGaWVsZHMuc2V0KGUsbmV3IFNldCksdGhpcy5faW5jb21wbGV0ZS5hZGQoZSksIXRoaXMuX2Nvbm5lY3RlZClyZXR1cm47aWYobnVsbD09PXRoaXMuX2JhdGNoZXIpe2NvbnN0IHQ9dGhpcy5fYmF0Y2hlcj17c3ltYm9sczpuZXcgU2V0KFtlXSkscHJvbWlzZTpQcm9taXNlLnJlc29sdmUoKS50aGVuKCgoKT0+e3RoaXMuX2JhdGNoZXI9PT10JiYodGhpcy5fc2Vzc2lvbi5xdW90ZUFkZFN5bWJvbHMoWy4uLnQuc3ltYm9sc10pLHRoaXMuX2JhdGNoZXI9bnVsbCl9KSl9fWVsc2UgdGhpcy5fYmF0Y2hlci5zeW1ib2xzLmFkZChlKX19KSl9Z2V0U25hcHNob3RzRm9yQWxsKGUsdCxyKXtyZXR1cm4gUHJvbWlzZS5hbGwoZS5tYXAoKGU9PnRoaXMuZ2V0U25hcHNob3QoZSx0LHIpKSkpfXN0YXRpYyByZWxheChlKXtyZXR1cm4gZX1zdGF0aWMgaXNTdWNjZXNzKGUpe3JldHVybiJlcnJvciIhPT1lLnN0YXR1c31zdGF0aWMgaGFzQWxsRmllbGRzKGUsdCl7Zm9yKGNvbnN0IHIgb2YgQXJyYXkuZnJvbSh0KSlpZighZS5oYXNPd25Qcm9wZXJ0eShyKSlyZXR1cm4hMTtyZXR1cm4hMH1faXNTbmFwc2hvdFJlYWR5KGUsdCl7Y29uc3R7ZmllbGRzOnIsdGltZXN0YW1wOnMsdGltZXM6bixzeW1ib2w6b309dDtyZXR1cm4iZXJyb3IiPT09ZS5zdGF0dXN8fChudWxsIT09cyYmbj90aGlzLl9pc0FsbEZpZWxkc1VwVG9EYXRlKGUsbixyLHMpOm51bGwhPT1zJiZvP3RoaXMuX2lzQWxsRmllbGRzVXBkYXRlZChlLG8scik6dGhpcy5faGFzQWxsRmllbGRzKGUscikpfV9pc0FsbEZpZWxkc1VwZGF0ZWQoZSx0LHIpewppZigiZXJyb3IiPT09ZS5zdGF0dXMpcmV0dXJuITA7Y29uc3Qgcz10aGlzLl91cGRhdGVkRmllbGRzLmdldCh0KTtpZighc3x8IXMuc2l6ZSlyZXR1cm4hMTtmb3IoY29uc3QgZSBvZiBBcnJheS5mcm9tKHIpKWlmKCFzLmhhcyhlKSlyZXR1cm4hMTtyZXR1cm4hMH1faGFzQWxsRmllbGRzKGUsdCl7cmV0dXJuIGQuaGFzQWxsRmllbGRzKGUudmFsdWVzLEFycmF5LmZyb20odCkpfV9pc0FsbEZpZWxkc1VwVG9EYXRlKGUsdCxyLHMpe2lmKCJlcnJvciI9PT1lLnN0YXR1cylyZXR1cm4hMDtpZighdClyZXR1cm4hMTtmb3IoY29uc3QgZSBvZiBBcnJheS5mcm9tKHIpKXtjb25zdCByPXQuZ2V0KGUpO2lmKCF0LmhhcyhlKXx8dm9pZCAwPT09cilyZXR1cm4hMTtpZihyPHMpcmV0dXJuITF9cmV0dXJuITB9X2hhbmRsZUNvbm5lY3RlZCgpe2lmKHRoaXMuX2ZpZWxkcy5zaXplPjApe2NvbnN0IGU9Wy4uLnRoaXMuX2ZpZWxkc10uZmxhdE1hcCgoZT0+e2NvbnN0IHQ9dS5nZXQoZSk7cmV0dXJuIG51bGwhPT10P3Q/P2U6W119KSk7dGhpcy5fc2Vzc2lvbi5xdW90ZVNldEZpZWxkcyhlKX10aGlzLl9pbmNvbXBsZXRlLnNpemU+MCYmdGhpcy5fc2Vzc2lvbi5xdW90ZUFkZFN5bWJvbHMoWy4uLnRoaXMuX2luY29tcGxldGVdKX1faGFuZGxlQ29tcGxldGVEYXRhKGUpe2NvbnN0IHQ9ZC5jYWNoZS5nZXQoZSk/P3tzeW1ib2xuYW1lOmUsc3RhdHVzOiJvayIsdmFsdWVzOnt9fTtkLmNhY2hlLnVwZGF0ZSh0LHRoaXMuX2ZpZWxkcywhMCksdGhpcy5fdXBkYXRlZEZpZWxkcy5zZXQoZSx0aGlzLl9maWVsZHMpLHRoaXMuX3Nlc3Npb24ucXVvdGVSZW1vdmVTeW1ib2xzKFtlXSksdGhpcy5faW5jb21wbGV0ZS5kZWxldGUoZSksdGhpcy5fb25TeW1ib2xEYXRhLmZpcmUoZSl9X2hhbmRsZVN5bWJvbERhdGEoZSl7KDAsaS5ub3JtYWxpemVVcGRhdGVNb2RlKShlLnZhbHVlcyksZC5jYWNoZS51cGRhdGUoZSx0aGlzLl9maWVsZHMsITEpO2NvbnN0IHQ9ZS5zeW1ib2xuYW1lLHI9KDAsYS5lbnN1cmVEZWZpbmVkKSh0aGlzLl91cGRhdGVkRmllbGRzLmdldCh0KSkscz1uZXcgU2V0KHIpO2Zvcihjb25zdCB0IG9mIHRoaXMuX2ZpZWxkcyllLnZhbHVlcy5oYXNPd25Qcm9wZXJ0eSh0KSYmcy5hZGQodCk7dGhpcy5fdXBkYXRlZEZpZWxkcy5zZXQodCxzKSwiZXJyb3IiPT09ZS5zdGF0dXM/dGhpcy5faGFuZGxlQ29tcGxldGVEYXRhKHQpOnRoaXMuX29uU3ltYm9sRGF0YS5maXJlKHQpfX1kLmNhY2hlPWMuUVVPVEVfRklFTERTX0NBQ0hFfSw2MjM1MTEoZSx0LHIpe2Z1bmN0aW9uIHMoZSl7bGV0IHQ9bnVsbDtyZXR1cm4oKT0+KG51bGw9PT10JiYodD1lKCkpLHQpfXIuZCh0LHtsYXp5VmFsdWU6KCk9PnN9KX0sOTI5NDg4KGUsdCxyKXtyLmQodCx7aXNTZXBhcmF0b3JJdGVtOigpPT5ufSk7dmFyIHM9cig5MDEwMjIpO2Z1bmN0aW9uIG4oZSl7cmV0dXJuKDAscy5pc1NlcGFyYXRvckl0ZW0pKGUpfX0sMzIwNTUoZSx0LHIpe3Iucih0KSxyLmQodCx7cmVzb2x2ZVN5bWJvbE5hbWU6KCk9PmMscmVzb2x2ZVN5bWJvbE5hbWVGb3JBbGw6KCk9PnUscmVzb2x2ZVN5bWJvbE5hbWVGb3JBbGxEaXN0aW5jdDooKT0+ZCxzbmFwc2hvdGVyOigpPT5pfSk7dmFyIHM9cigxMjg4MTQpLG49cig2MjM1MTEpLG89cig5Mjk0ODgpO2NvbnN0IGE9bmV3IFNldChbInByb19uYW1lIiwiYmFzZV9uYW1lIiwic2hvcnRfbmFtZSIsImRlc2NyaXB0aW9uIiwidHlwZSIsImV4Y2hhbmdlIiwidHlwZXNwZWNzIiwibGlzdGVkX2V4Y2hhbmdlIiwibGFzdF9wcmljZSIsImNvdW50cnlfY29kZSIsInByb3ZpZGVyX2lkIiwic3ltYm9sLXByaW1hcnluYW1lIiwibG9nb2lkIiwibG9nbyIsImJhc2UtY3VycmVuY3ktbG9nb2lkIiwiY3VycmVuY3ktbG9nb2lkIiwic291cmNlLWxvZ29pZCIsInVwZGF0ZV9tb2RlIiwidXBkYXRlX21vZGVfc2Vjb25kcyIsInByb19wZXJtIiwic291cmNlIiwic291cmNlMiIsInByaWNlc2NhbGUiLCJtaW5tb3YiLCJmcmFjdGlvbmFsIiwidmlzaWJsZS1wbG90cy1zZXQiLCJsb2NhbF9kZXNjcmlwdGlvbiIsImxhbmd1YWdlIiwidW5kZXJseWluZy1zeW1ib2wiXSksaT0oMCxuLmxhenlWYWx1ZSkoKCgpPT5uZXcgcy5RdW90ZVNlc3Npb25TbmFwc2hvdGVyKHtuYW1lOiJiYXNpYy1zeW1ib2wtcXVvdGVzIixmaWVsZHM6Wy4uLmFdLGFwaTp3aW5kb3cuQ2hhcnRBcGlJbnN0YW5jZX0pKSksbD1uZXcgU2V0KFsicHJvX25hbWUiXSk7YXN5bmMgZnVuY3Rpb24gYyhlKXtyZXR1cm4oMCxvLmlzU2VwYXJhdG9ySXRlbSkoZSk/ZTppKCkuZ2V0U25hcHNob3QoZSxsKS50aGVuKChlPT4iZXJyb3IiPT09ZS5zdGF0dXM/ZS5zeW1ib2xuYW1lOmUudmFsdWVzLnByb19uYW1lKSl9ZnVuY3Rpb24gdShlKXtyZXR1cm4gUHJvbWlzZS5hbGwoZS5tYXAoYykpfWZ1bmN0aW9uIGQoZSl7cmV0dXJuIHUoZSkudGhlbigoZT0+Wy4uLm5ldyBTZXQoZSldKSl9fSw0OTAyMDQoZSx0LHIpe3IuZCh0LHtyZXNvbHZlVW5kZXJseWluZ1N5bWJvbDooKT0+bn0pO3ZhciBzPXIoMzIwNTUpO2FzeW5jIGZ1bmN0aW9uIG4oZSl7Y29uc3QgdD1hd2FpdCgwLHMuc25hcHNob3RlcikoKS5nZXRTbmFwc2hvdChlLG5ldyBTZXQoWyJ1bmRlcmx5aW5nLXN5bWJvbCJdKSk7aWYoImVycm9yIj09PXQuc3RhdHVzKXJldHVybiBudWxsO2NvbnN0IHI9dC52YWx1ZXNbInVuZGVybHlpbmctc3ltYm9sIl07cmV0dXJuIHJ8fG51bGx9fSwyNDU4NjEoZSx0LHIpe3IuZCh0LHtFcnJvclJlbmRlcmVyOigpPT5FfSk7dmFyIHM9cigxODUyNzEpLG49cigyMjUyOTgpLG89cigyMDA2NjYpLGE9cig4MTA0MSksaT1yKDkzMDIzMSksbD1yKDk5NDU0MCksYz1yKDU3NzcxMyksdT1yKDkyNjk5NSksZD1yKDU1NDY1NCksaD1yKDQ5MDIwNCk7dmFyIHA9cig1NjkzOTgpLF89cigyMzIzNjQpLG09cig5NTI5MDApLHk9cig5NjI3MzcpLGI9cigxMjg5OTgpO2NvbnN0IGc9cy50KG51bGwse2NvbnRleHQ6IlN5bWJvbCBlcnJvciBlbXB0eSBzdGF0ZSJ9LHIoOTc1ODApKTtmdW5jdGlvbiBmKGUpe3N3aXRjaChlLnJlYXNvbil7Y2FzZSJ1bnN1cHBvcnRlZF9yZXNvbHV0aW9uIjoKcmV0dXJuIHMudChudWxsLHZvaWQgMCxyKDg2MDM4OSkpLmZvcm1hdCh7aW50ZXJ2YWxzOih0PWUuc3VwcG9ydGVkUmVzb2x1dGlvbnMsdC5tYXAoKGU9PmUpKS5qb2luKCIsICIpKX0pO2Nhc2UibGVzc190aGFuX2ZyZXF1ZW5jeSI6cmV0dXJuIHMudChudWxsLHZvaWQgMCxyKDc3ODQ0OCkpO2Nhc2UidW5zdXBwb3J0ZWRfdGlja3MiOnJldHVybiBzLnQobnVsbCx2b2lkIDAscig1MjkzOTYpKX12YXIgdH1mdW5jdGlvbiBTKGUpe3N3aXRjaChlLnJlYXNvbil7Y2FzZSJ1bnN1cHBvcnRlZF9yZXNvbHV0aW9uIjpyZXR1cm4gcy50KG51bGwsdm9pZCAwLHIoNDY1MzEzKSk7Y2FzZSJsZXNzX3RoYW5fZnJlcXVlbmN5IjpyZXR1cm4gcy50KG51bGwsdm9pZCAwLHIoNTQxNTcwKSkuZm9ybWF0KHtyZXNvbHV0aW9uOmUuYXBwbGljYWJsZVJlc29sdXRpb259KTtjYXNlInVuc3VwcG9ydGVkX3RpY2tzIjpyZXR1cm4gcy50KG51bGwsdm9pZCAwLHIoMjU1NzYzKSl9fWZ1bmN0aW9uIHYoZSl7c3dpdGNoKGUucmVhc29uKXtjYXNlInVuc3VwcG9ydGVkX3Jlc29sdXRpb24iOnJldHVybiBzLnQobnVsbCx7Y29udGV4dDoiU3ltYm9sIGVycm9yIGVtcHR5IHN0YXRlIn0scig4MjQzNDApKS5mb3JtYXQoe3Jlc29sdXRpb246ZS5hcHBsaWNhYmxlUmVzb2x1dGlvbn0pO2Nhc2UibGVzc190aGFuX2ZyZXF1ZW5jeSI6Y2FzZSJ1bnN1cHBvcnRlZF90aWNrcyI6cmV0dXJuIHMudChudWxsLHZvaWQgMCxyKDgzMDM4NSkpLmZvcm1hdCh7cmVzb2x1dGlvbjplLmFwcGxpY2FibGVSZXNvbHV0aW9ufSl9fWZ1bmN0aW9uIHcoZSl7cmV0dXJuIGU/ey4uLmUsbWVzc2FnZTplLm1lc3NhZ2U/KDAseS5mb3JtYXRTdHVkeUVycm9yKShlLm1lc3NhZ2UpOnZvaWQgMH06bnVsbH1jbGFzcyBFe2NvbnN0cnVjdG9yKGUsdD0hMSl7dGhpcy5fY29udGFpbmVyPW51bGwsdGhpcy5fZXJyb3JDYXJkUmVuZGVyZXI9bnVsbCx0aGlzLl9iYW5FcnJvck1lc3NhZ2U9bmV3IF8uV2F0Y2hlZFZhbHVlKG51bGwpLnNwYXduKCksdGhpcy5faGFzRXJyb3I9bmV3IF8uV2F0Y2hlZFZhbHVlKCExKSx0aGlzLl9yZW5kZXJJbnNpZGVDb250YWluZXI9ITEsdGhpcy5fZXJyb3JNZXNzYWdlSGFuZGxlcj1lPT57dGhpcy5faGFzRXJyb3Iuc2V0VmFsdWUobnVsbCE9PWUpLGU9dyhlKSwhdGhpcy5fcmVuZGVySW5zaWRlQ29udGFpbmVyJiZ0aGlzLl9jaGFydFdpZGdldC52YWx1ZSgpLmhhc01vZGVsKCk/dGhpcy5fdXBkYXRlUGFuZVdpZGdldHMoZSk6dGhpcy5fcmVuZGVyRXJyb3JXaXRob3V0TW9kZWwoZSl9LHRoaXMuX2NoYXJ0V2lkZ2V0PWUuc3Bhd24oKSx0aGlzLl9yZW5kZXJJbnNpZGVDb250YWluZXI9dCx0aGlzLl9iYW5FcnJvck1lc3NhZ2U9KDAsbS5jb21iaW5lKSgoZT0+e2lmKCFlKXJldHVybiBudWxsO2xldCB0O2lmKCJiYW5uZWQgYnkgaXAiPT09ZS5yZWFzb24pdD1zLnQobnVsbCx2b2lkIDAscig2NDY2MDEpKTtlbHNlIHQ9cy50KG51bGwsdm9pZCAwLHIoNTkyMDE0KSk7cmV0dXJue3RpdGxlOnMudChudWxsLHtjb250ZXh0OiJCYW4gcmVhc29uIn0scig2MzU5MjMpKSxtZXNzYWdlOnQsYnV0dG9uczpbe25hbWU6cy50KG51bGwse2NvbnRleHQ6InNvbHV0aW9uIGxpbmsifSxyKDgyNDAyNykpLG9uQ2xpY2s6KCk9PnsoMCx1LnNob3dTdXBwb3J0RGlhbG9nKSh7c29sdXRpb25JZDpkLnNvbHV0aW9uSWRzLldIWV9JU19NWV9BQ0NPVU5UX0JBTk5FRH0pfX1dLGljb246InN0b3AtaGFuZCJ9fSksd2luZG93LkNoYXJ0QXBpSW5zdGFuY2UuY29ubmVjdGlvbkJhbkluZm8oKS53ZWFrUmVmZXJlbmNlKCkpLHRoaXMuX2JhbkVycm9yTWVzc2FnZS5zdWJzY3JpYmUodGhpcy5fZXJyb3JNZXNzYWdlSGFuZGxlcix7Y2FsbFdpdGhMYXN0OiEwfSk7Y29uc3Qgbj0oMCxtLmFjY3VtdWxhdGUpKChlPT57Y29uc3QgdD1lWzBdO3JldHVybltudWxsIT09dD8oMCxiLmdldFNlcmllc0Rpc3BsYXlFcnJvcldWKSh0Lm1haW5TZXJpZXMoKSkub3duZXJzaGlwKCk6bmV3IF8uV2F0Y2hlZFZhbHVlKG51bGwpLm93bmVyc2hpcCgpXX0pLCgwLG0uY29tYmluZSkoKGU9PltlLm1vZGVsV1YoKS53ZWFrUmVmZXJlbmNlKCldKSx0aGlzLl9jaGFydFdpZGdldC53ZWFrUmVmZXJlbmNlKCkpLm93bmVyc2hpcCgpKTt0aGlzLl9wYW5lV2lkZ2V0RXJyb3JNZXNzYWdlPSgwLG0uYWNjdW11bGF0ZSkoKChbZV0sdCk9PntpZih0KXJldHVybiB0O2lmKG51bGw9PT1lKXJldHVybiBudWxsO2NvbnN0IG49dGhpcy5fY2hhcnRXaWRnZXQudmFsdWUoKTtzd2l0Y2goZS50eXBlKXtjYXNlImludmFsaWRfc3ltYm9sIjpyZXR1cm4gdGhpcy5fY3JlYXRlRXJyb3JQYXJhbXNGb3JJbnZhbGlkU3ltYm9sKG4pO2Nhc2UiY2FsY3VsYXRpb25zX2Vycm9yIjpyZXR1cm57dGl0bGU6cy50KG51bGwse2NvbnRleHQ6IlN5bWJvbCBlcnJvciBlbXB0eSBzdGF0ZSJ9LHIoNDg3MjAxKSksbWVzc2FnZTplLmVycm9yTWVzc2FnZSxpY29uOiJhdHRlbnRpb24ifTtjYXNlIm5vX2RhdGEiOnJldHVybnt0aXRsZTpzLnQobnVsbCx7Y29udGV4dDoiU3ltYm9sIGVycm9yIGVtcHR5IHN0YXRlIn0scigxOTgwKSksbWVzc2FnZTpzLnQobnVsbCx2b2lkIDAscig5NjkwOSkpLGljb246InVmby1hbmQtY293In07Y2FzZSJ1bnN1cHBvcnRlZF9yZXNvbHV0aW9uIjpyZXR1cm4gdGhpcy5fY3JlYXRlRXJyb3JQYXJhbXNGb3JVbnN1cHBvcnRlZFJlc29sdXRpb24obik7Y2FzZSJpcG9fcHJpY2VkIjpyZXR1cm57dGl0bGU6cy50KG51bGwse2NvbnRleHQ6IlN5bWJvbCBlcnJvciBlbXB0eSBzdGF0ZSJ9LHIoMTM3ODAwKSksbWVzc2FnZTpzLnQobnVsbCx7Y29udGV4dDoiU3ltYm9sIGVycm9yIGVtcHR5IHN0YXRlIn0scig0MDM2NzIpKSxpY29uOiJyb2NrZXQtbGF1bmNoIn07Y2FzZSJyZW5rb19jaGFydF90eXBlX2lzc3VlIjpyZXR1cm57dGl0bGU6cy50KG51bGwsdm9pZCAwLHIoNzE2MzApKSxtZXNzYWdlOnMudChudWxsLHZvaWQgMCxyKDU5NTU3MCkpLGljb246InVmby1hbmQtcGVuY2lsIixidXR0b25zOlt7bmFtZTpzLnQobnVsbCx7Y29udGV4dDoic29sdXRpb24gbGluayJ9LHIoODI0MDI3KSksCm9uQ2xpY2s6KCk9PnsoMCx1LnNob3dTdXBwb3J0RGlhbG9nKSh7c29sdXRpb25JZDpkLnNvbHV0aW9uSWRzLlJFTkNPX0NIQVJUX0RJU1BMQVlfSVNTVUVTfSl9fV19O2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJVbmtub3duIHNlcmllcyBlcnJvciB0eXBlIil9fSksbi5vd25lcnNoaXAoKSx0aGlzLl9iYW5FcnJvck1lc3NhZ2Uud2Vha1JlZmVyZW5jZSgpKSx0aGlzLl9wYW5lV2lkZ2V0RXJyb3JNZXNzYWdlLnN1YnNjcmliZSh0aGlzLl9lcnJvck1lc3NhZ2VIYW5kbGVyLHtjYWxsV2l0aExhc3Q6ITB9KX1kZXN0cm95KCl7dGhpcy5fYmFuRXJyb3JNZXNzYWdlLmRlc3Ryb3koKSx0aGlzLl9lcnJvckNhcmRSZW5kZXJlcj8udGhlbigoZT0+e2UuY29udGFpbmVyLnJlbW92ZSgpLGUuZGVzdHJveSgpfSkpLHRoaXMuX3BhbmVXaWRnZXRFcnJvck1lc3NhZ2UuZGVzdHJveSgpLHRoaXMuX2NoYXJ0V2lkZ2V0LmRlc3Ryb3koKX11cGRhdGVQYW5lV2lkZ2V0cygpe3RoaXMuX3VwZGF0ZVBhbmVXaWRnZXRzKCl9c2V0Q29udGFpbmVyKGUpe2lmKHRoaXMuX2NvbnRhaW5lciE9PWUpe3RoaXMuX2NvbnRhaW5lcj1lLHRoaXMuX2Vycm9yQ2FyZFJlbmRlcmVyPy50aGVuKChlPT5lLmNvbnRhaW5lci5yZW1vdmUoKSkpO2NvbnN0IHQ9dGhpcy5fZ2V0RXJyb3JNZXNzYWdlKCk7dCYmdGhpcy5fZXJyb3JNZXNzYWdlSGFuZGxlcih0KX19aGFzRXJyb3IoKXtyZXR1cm4gdGhpcy5faGFzRXJyb3IucmVhZG9ubHkoKX1fdXBkYXRlUGFuZVdpZGdldHMoZT10aGlzLl9nZXRFcnJvck1lc3NhZ2UoKSl7dGhpcy5fY2hhcnRXaWRnZXQudmFsdWUoKS5wYW5lV2lkZ2V0cygpLmZvckVhY2goKHQ9PnQuc2V0RXJyb3JNZXNzYWdlKGUpKSl9YXN5bmMgX3JlbmRlckVycm9yV2l0aG91dE1vZGVsKGUpe2lmKG51bGw9PT10aGlzLl9jb250YWluZXJ8fG51bGw9PT1lJiZudWxsPT09dGhpcy5fZXJyb3JDYXJkUmVuZGVyZXIpcmV0dXJuO2NvbnN0IHQ9YXdhaXQgdGhpcy5fZ2V0RXJyb3JDYXJkUmVuZGVyZXIoKTt0aGlzLl9jb250YWluZXIuY29udGFpbnModC5jb250YWluZXIpfHx0aGlzLl9jb250YWluZXIuYXBwZW5kQ2hpbGQodC5jb250YWluZXIpLHQudXBkYXRlKHRoaXMuX2NyZWF0ZUVycm9yQ2FyZFJlbmRlcmVyU3RhdGUoZSkpfWFzeW5jIF9nZXRFcnJvckNhcmRSZW5kZXJlcigpe3JldHVybiB0aGlzLl9lcnJvckNhcmRSZW5kZXJlcnx8PXRoaXMuX2NyZWF0ZUVycm9yQ2FyZFJlbmRlcmVyKCl9YXN5bmMgX2NyZWF0ZUVycm9yQ2FyZFJlbmRlcmVyKCl7cmV0dXJuIG5ldyhhd2FpdCgwLGMuZ2V0RXJyb3JDYXJkUmVuZGVyZXIpKCkpfV9jcmVhdGVFcnJvckNhcmRSZW5kZXJlclN0YXRlKGUpe3JldHVybiBlP3t0aXRsZTplLnRpdGxlLG1lc3NhZ2U6ZS5tZXNzYWdlLGljb246ZS5pY29uLGJhY2tncm91bmRDb2xvcjpudWxsLGJ1dHRvbnM6ZS5idXR0b25zLHRoZW1lOm8ud2F0Y2hlZFRoZW1lLnZhbHVlKCk9PT1hLlN0ZFRoZW1lLkRhcms/YS5TdGRUaGVtZS5EYXJrOmEuU3RkVGhlbWUuTGlnaHR9OnZvaWQgMH1fY3JlYXRlRXJyb3JQYXJhbXNGb3JJbnZhbGlkU3ltYm9sKGUpe2NvbnN0IHQ9YXN5bmMoKT0+e2Uuc2V0QWN0aXZlKCEwKTtjb25zdCB0PWUubW9kZWwoKS5tYWluU2VyaWVzKCkscj10LnN5bWJvbCgpLHM9dC5wcm9wZXJ0aWVzKCkuY2hpbGRzKCkuc2hvcnROYW1lLnZhbHVlKCksbj0ib3B0aW9uIj09PXQuc3ltYm9sSW5mbygpPy50eXBlLG89dC5zeW1ib2xJbmZvKCk/LnByb19uYW1lO2xldCBhPXQuaXNTcHJlYWQoKT9yOnN8fHJ8fCIiO2lmKCgwLGkuaXNGZWF0dXJlc2V0RW5hYmxlZCkoInN5bWJvbF9zZWFyY2hfb3B0aW9uX2NoYWluX3NlbGVjdG9yIikmJm4mJm8pe2NvbnN0IGU9YXdhaXQoMCxoLnJlc29sdmVVbmRlcmx5aW5nU3ltYm9sKShvKTtlJiYoYT17dHlwZToib3B0aW9uIix2YWx1ZTpvLHVuZGVybHlpbmc6ZX0pfSgwLGwuc2hvd0RpYWxvZykoe2RlZmF1bHRWYWx1ZTphLGVuYWJsZU9wdGlvbnNDaGFpbjooMCxpLmlzRmVhdHVyZXNldEVuYWJsZWQpKCJzeW1ib2xfc2VhcmNoX29wdGlvbl9jaGFpbl9zZWxlY3RvciIpLHNlYXJjaFR5cGU6InN1cGVyY2hhcnRzIn0pfSxuPWUuc3ltYm9sV1YoKS52YWx1ZSgpLG89KG4uc3BsaXQoIjoiKVsxXT8/bikudG9VcHBlckNhc2UoKTtyZXR1cm4hKDAscC5pc0ZlYXR1cmVFbmFibGVkKSgibmV3X2VtcHR5X3N0YXRlX3Rlc3QiKXx8IkNIUklTVE1BUyIhPT1vJiYiTkVXWUVBUiIhPT1vJiYiU0FOVEFDTEFVUyIhPT1vJiYiWE1BU1RSRUUiIT09bz97bWVzc2FnZTpzLnQobnVsbCx2b2lkIDAscigyODM1NjIpKSx0aXRsZTpzLnQobnVsbCx7Y29udGV4dDoiU3ltYm9sIGVycm9yIGVtcHR5IHN0YXRlIn0scig3MzA3NikpLGljb246InVmby1hbmQtY293IixidXR0b25zOlt7bmFtZTpnLG9uQ2xpY2s6dH1dfTp7bWVzc2FnZTpzLnQobnVsbCx2b2lkIDAscigzNzE3NzkpKSx0aXRsZTpzLnQobnVsbCx7Y29udGV4dDoiU3ltYm9sIGVycm9yIGVtcHR5IHN0YXRlIn0scig1MjMyNzkpKSxpY29uOnthbmltYXRpb25Vcmw6cigxMTE4NTkpLHdpZHRoOjEyMCxoZWlnaHQ6MTIwLGtlZXBPcmlnaW5hbFNpemU6ITB9LGJ1dHRvbnM6W3tuYW1lOmcsb25DbGljazp0fV19fV9jcmVhdGVFcnJvclBhcmFtc0ZvclVuc3VwcG9ydGVkUmVzb2x1dGlvbihlKXtjb25zdCB0PWUubW9kZWwoKS5tYWluU2VyaWVzKCkudW5zdXBwb3J0ZWRSZXNvbHV0aW9uU3RhdGUoKS52YWx1ZSgpO3JldHVybiBudWxsPT09dD9udWxsOnttZXNzYWdlOlModCksdGl0bGU6Zih0KSxpY29uOiJ1bnN1cHBvcnRlZC1yZXNvbHV0aW9uIixidXR0b25zOlt7bmFtZTp2KHQpLG9uQ2xpY2s6KCk9PntlLnNldEFjdGl2ZSghMCksbi5saW5raW5nLnNldEludGVydmFsQW5kTG9nSW5pdGlhdG9yKHQuYXBwbGljYWJsZVJlc29sdXRpb24sIkVycm9yIHN0YXRlIil9fV19fV9nZXRFcnJvck1lc3NhZ2UoKXtyZXR1cm4gdyh0aGlzLl9iYW5FcnJvck1lc3NhZ2UudmFsdWUoKXx8dGhpcy5fcGFuZVdpZGdldEVycm9yTWVzc2FnZS52YWx1ZSgpKX19fSwxMTE4NTkoZSx0LHIpewplLmV4cG9ydHM9ci5wKyJueS1hbmltYXRpb24uNDA0MzM0OGQ2ZTYxOTljNGYxYjMuanNvbiJ9fV0pOw=="}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/43792.e1bd06112404f0901a66.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:13.909Z","timestamp":1785148033909,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/43792.e1bd06112404f0901a66.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:13 GMT\r\ncontent-type: text/css; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\ncontent-encoding: zstd\r\netag: \"6a608293-fa2\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Wed, 22 Jul 2026 08:42:59 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.58\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 07/22/2026 11:01:24\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: 3ef3e986bf34c851eb7e7c7d4ca5f582\r\ncdn-cache: HIT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":4002,"size_decoded":1797,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with very long lines (4002), with no line terminators","md5":"132394741fdf9302124f840e6c3a925d","sha1":"59267f8b0edd10201baaabda8807c79d9b9c3642","sha256":"8157f6ce008ce1e225eb1af407cc0fa0cff8f6155386f2da7e90a74c37091048","sha512":"63359d8ac07c4cd882722bc630255d64b699f4f548c64e2558f6d95f25c6e75f0b5645fee034885862797dfedaf95df80c12f73ec2d41c159177c19470c40f6d","ssdeep":"","tlshash":"bd819cbcea50d8770d5fa63e0398d06c3994b213ee26ab57ffa0d10144d7be6419a70e","first_seen":"2026-07-22T16:00:00.457602Z","last_seen":"2026-07-27T12:53:42.587549Z","times_seen":351,"resource_available":false,"data":"W2RhdGEtdGhlbWU9bGlnaHRdey0tXzAtUk00Xzp2YXIoLS1jb2xvci13aGl0ZSk7LS1fMS1STTRfOnZhcigtLWNvbG9yLXJpcGUtcmVkLWEyMDApOy0tXzItUk00Xzp2YXIoLS1jb2xvci1yaXBlLXJlZC01MDApOy0tXzMtUk00Xzp2YXIoLS1jb2xvci10di1ibHVlLWE0MDApOy0tXzQtUk00Xzp2YXIoLS1jb2xvci10di1ibHVlLTkwMCk7LS1fNS1STTRfOnZhcigtLWNvbG9yLWlndWFuYS1ncmVlbi0zMDApOy0tXzYtUk00Xzp2YXIoLS1jb2xvci1pZ3VhbmEtZ3JlZW4tNjAwKTstLV83LVJNNF86dmFyKC0tY29sb3ItYmFuYW5hLXllbGxvdy03MDApOy0tXzgtUk00Xzp2YXIoLS1jb2xvci1iYW5hbmEteWVsbG93LTkwMCk7LS1fOS1STTRfOnZhcigtLWNvbG9yLWdyYXBlcy1wdXJwbGUtMzAwKTstLV8xMC1STTRfOnZhcigtLWNvbG9yLWdyYXBlcy1wdXJwbGUtNzAwKTstLV8xMS1STTRfOnZhcigtLWNvbG9yLXNreS1ibHVlLWE0MDApOy0tXzEyLVJNNF86dmFyKC0tY29sb3Itc2t5LWJsdWUtYTcwMCk7LS1fMTMtUk00Xzp2YXIoLS1jb2xvci1iZXJyeS1waW5rLTIwMCk7LS1fMTQtUk00Xzp2YXIoLS1jb2xvci1iZXJyeS1waW5rLTQwMCl9W2RhdGEtdGhlbWU9ZGFya117LS1fMC1STTRfOnZhcigtLWNvbG9yLWNvbGQtZ3JheS05MDApOy0tXzEtUk00Xzp2YXIoLS1jb2xvci1yaXBlLXJlZC1hMjAwKTstLV8yLVJNNF86dmFyKC0tY29sb3ItcmlwZS1yZWQtNTAwKTstLV8zLVJNNF86dmFyKC0tY29sb3ItdHYtYmx1ZS1hNDAwKTstLV80LVJNNF86dmFyKC0tY29sb3ItdHYtYmx1ZS05MDApOy0tXzUtUk00Xzp2YXIoLS1jb2xvci1pZ3VhbmEtZ3JlZW4tMzAwKTstLV82LVJNNF86dmFyKC0tY29sb3ItaWd1YW5hLWdyZWVuLTYwMCk7LS1fNy1STTRfOnZhcigtLWNvbG9yLWJhbmFuYS15ZWxsb3ctNzAwKTstLV84LVJNNF86dmFyKC0tY29sb3ItYmFuYW5hLXllbGxvdy05MDApOy0tXzktUk00Xzp2YXIoLS1jb2xvci1ncmFwZXMtcHVycGxlLTMwMCk7LS1fMTAtUk00Xzp2YXIoLS1jb2xvci1ncmFwZXMtcHVycGxlLTcwMCk7LS1fMTEtUk00Xzp2YXIoLS1jb2xvci1za3ktYmx1ZS1hNDAwKTstLV8xMi1STTRfOnZhcigtLWNvbG9yLXNreS1ibHVlLWE3MDApOy0tXzEzLVJNNF86dmFyKC0tY29sb3ItYmVycnktcGluay0yMDApOy0tXzE0LVJNNF86dmFyKC0tY29sb3ItYmVycnktcGluay00MDApfS53cmFwLUdoRGpYekJ4e2Rpc3BsYXk6aW5saW5lLWZsZXg7cG9zaXRpb246cmVsYXRpdmV9LndyYXAtR2hEalh6Qng6YmVmb3Jle2JvcmRlci1yYWRpdXM6NTAlO2NvbnRlbnQ6bm9uZTtoZWlnaHQ6MTAwJTtpbnNldC1pbmxpbmUtc3RhcnQ6MDtvdXRsaW5lOnZhcigtLWNvbG9yLXR2LWJsdWUtNTAwKSBub25lIDJweDtvdXRsaW5lLW9mZnNldDotNHB4O3BvaW50ZXItZXZlbnRzOm5vbmU7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7d2lkdGg6MTAwJX0ud3JhcC1HaERqWHpCeDpmb2N1cy12aXNpYmxlOmJlZm9yZXtjb250ZW50OiIiO291dGxpbmUtc3R5bGU6c29saWR9LndyYXAtR2hEalh6QnggLmlucHV0LUdoRGpYekJ4e2N1cnNvcjpwb2ludGVyO2hlaWdodDoxMDAlO2luc2V0LWlubGluZS1zdGFydDowO29wYWNpdHk6MDtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDt3aWR0aDoxMDAlfUBtZWRpYSAoYW55LWhvdmVyOmhvdmVyKXsud3JhcC1HaERqWHpCeCAuaW5wdXQtR2hEalh6Qng6aG92ZXI6bm90KDpjaGVja2VkKSsuYm94LUdoRGpYekJ4IC5ob3ZlckRvdC1HaERqWHpCeHtkaXNwbGF5OmJsb2NrfX0uYm94LUdoRGpYekJ4e2hlaWdodDoxNnB4O3BvaW50ZXItZXZlbnRzOm5vbmU7cG9zaXRpb246cmVsYXRpdmU7d2lkdGg6MTZweH0uYm94LUdoRGpYekJ4LnJlZC1HaERqWHpCeHtjb2xvcjp2YXIoLS1fMS1STTRfKX1AbWVkaWEgKGFueS1ob3Zlcjpob3Zlcil7LmJveC1HaERqWHpCeC5yZWQtR2hEalh6Qng6aG92ZXJ7Y29sb3I6dmFyKC0tXzItUk00Xyl9fS5ib3gtR2hEalh6QnguYmx1ZS1HaERqWHpCeHtjb2xvcjp2YXIoLS1fMy1STTRfKX1AbWVkaWEgKGFueS1ob3Zlcjpob3Zlcil7LmJveC1HaERqWHpCeC5ibHVlLUdoRGpYekJ4OmhvdmVye2NvbG9yOnZhcigtLV80LVJNNF8pfX0uYm94LUdoRGpYekJ4LmdyZWVuLUdoRGpYekJ4e2NvbG9yOnZhcigtLV81LVJNNF8pfUBtZWRpYSAoYW55LWhvdmVyOmhvdmVyKXsuYm94LUdoRGpYekJ4LmdyZWVuLUdoRGpYekJ4OmhvdmVye2NvbG9yOnZhcigtLV82LVJNNF8pfX0uYm94LUdoRGpYekJ4Lm9yYW5nZS1HaERqWHpCeHtjb2xvcjp2YXIoLS1fNy1STTRfKX1AbWVkaWEgKGFueS1ob3Zlcjpob3Zlcil7LmJveC1HaERqWHpCeC5vcmFuZ2UtR2hEalh6Qng6aG92ZXJ7Y29sb3I6dmFyKC0tXzgtUk00Xyl9fS5ib3gtR2hEalh6QngucHVycGxlLUdoRGpYekJ4e2NvbG9yOnZhcigtLV85LVJNNF8pfUBtZWRpYSAoYW55LWhvdmVyOmhvdmVyKXsuYm94LUdoRGpYekJ4LnB1cnBsZS1HaERqWHpCeDpob3Zlcntjb2xvcjp2YXIoLS1fMTAtUk00Xyl9fS5ib3gtR2hEalh6QnguY3lhbi1HaERqWHpCeHtjb2xvcjp2YXIoLS1fMTEtUk00Xyl9QG1lZGlhIChhbnktaG92ZXI6aG92ZXIpey5ib3gtR2hEalh6QnguY3lhbi1HaERqWHpCeDpob3Zlcntjb2xvcjp2YXIoLS1fMTItUk00Xyl9fS5ib3gtR2hEalh6QngucGluay1HaERqWHpCeHtjb2xvcjp2YXIoLS1fMTMtUk00Xyl9QG1lZGlhIChhbnktaG92ZXI6aG92ZXIpey5ib3gtR2hEalh6QngucGluay1HaERqWHpCeDpob3Zlcntjb2xvcjp2YXIoLS1fMTQtUk00Xyl9fS5ib3gtR2hEalh6QngubGFyZ2UtR2hEalh6Qnh7aGVpZ2h0OjI0cHg7d2lkdGg6MjRweH0ucGlja2VyRG90LUdoRGpYekJ4e2JhY2tncm91bmQtY29sb3I6Y3VycmVudENvbG9yO2JvcmRlci1yYWRpdXM6NTAlO2hlaWdodDoxMDAlO3dpZHRoOjEwMCV9LmhvdmVyRG90LUdoRGpYekJ4e2NvbG9yOnZhcigtLV8wLVJNNF8pO2Rpc3BsYXk6bm9uZTtvcGFjaXR5Oi41fVtkYXRhLXRoZW1lPWxpZ2h0XXstLV8wLXlNSEM6dmFyKC0tY29sb3Itd2hpdGUpfVtkYXRhLXRoZW1lPWRhcmtdey0tXzAteU1IQzp2YXIoLS1jb2xvci1jb2xkLWdyYXktNjUwKX0ud3JhcHBlci1WbmVRVm9OdntwYWRkaW5nLWJsb2NrOjEwcHggMTBweDtwYWRkaW5nLWlubGluZTo2cHggMTBweH0ud3JhcHBlci1WbmVRVm9OdiAuc2VsZWN0b3ItVm5lUVZvTnZ7YWxpZ24taXRlbXM6Y2VudGVyO2JhY2tncm91bmQtY29sb3I6dmFyKC0tXzAteU1IQyk7Ym9yZGVyLXJhZGl1czo0cHg7Ym94LXNoYWRvdzowIDAgNnB4IDAgdmFyKC0tY29sb3Itb3RoZXItc2hhZG93LXNlY29uZGFyeS1uZXV0cmFsLWxpZ2h0KTtkaXNwbGF5OmlubGluZS1mbGV4O3BhZGRpbmc6NHB4O3Bvc2l0aW9uOnJlbGF0aXZlfS53cmFwcGVyLVZuZVFWb052IC5zZWxlY3Rvci1WbmVRVm9OdiAuYXJyb3dMZWZ0LVZuZVFWb052e2hlaWdodDoxMnB4O2luc2V0LWlubGluZS1zdGFydDotMTJweDtvdmVyZmxvdzpoaWRkZW47cG9zaXRpb246YWJzb2x1dGU7dG9wOjUwJTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtNTAlKTt3aWR0aDoxMnB4fS53cmFwcGVyLVZuZVFWb052IC5zZWxlY3Rvci1WbmVRVm9OdiAuYXJyb3dMZWZ0LVZuZVFWb052OmFmdGVye2JhY2tncm91bmQ6dmFyKC0tXzAteU1IQyk7Ym94LXNoYWRvdzowIDAgNnB4IDAgdmFyKC0tY29sb3Itb3RoZXItc2hhZG93LXNlY29uZGFyeS1uZXV0cmFsLWxpZ2h0KTtjb250ZW50OiIiO2hlaWdodDoxMnB4O2luc2V0LWlubGluZS1zdGFydDo5cHg7cG9zaXRpb246YWJzb2x1dGU7dHJhbnNmb3JtOnJvdGF0ZSg0NWRlZyk7d2lkdGg6MTJweH0ud3JhcHBlci1WbmVRVm9OdiAuc2VsZWN0b3ItVm5lUVZvTnYgLmFycm93TGVmdC1WbmVRVm9OdjphZnRlcjpkaXIocnRsKXt0cmFuc2Zvcm06cm90YXRlKC00NWRlZyl9LmNvbG9yU2VsZWN0QnV0dG9uLVZuZVFWb052e3BhZGRpbmc6NHB4fS5wb3B1cC1WbmVRVm9Odntwb3NpdGlvbjpmaXhlZDt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtNTAlKTt6LWluZGV4OjEwMDB9"}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.tradingview-widget.com/static/bundles/embed/33515.85004481e4ae6624a985.css","fqdn":"www.tradingview-widget.com","domain":"tradingview-widget.com","tld":"com"},"ip":{"addr":"194.242.11.186","port":443,"asn":34989,"as":"ServeTheWorld AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://s.tradingview.com/widgetembed/?hideideas=1\u0026overrides=%7B%7D\u0026enabled_features=%5B%5D\u0026disabled_features=%5B%5D\u0026locale=en#%7B%22symbol%22%3A%22BTCUSD%22%2C%22frameElementId%22%3A%22tradingview_be00c%22%2C%22interval%22%3A%2260%22%2C%22hide_side_toolbar%22%3A%220%22%2C%22allow_symbol_change%22%3A%221%22%2C%22save_image%22%3A%221%22%2C%22backgroundColor%22%3A%22rgba(9%2C%209%2C%209%2C%200.0)%22%2C%22gridColor%22%3A%22rgba(235%2C%20209%2C%200%2C%200.05)%22%2C%22details%22%3A%221%22%2C%22calendar%22%3A%221%22%2C%22studies%22%3A%22%5B%5D%22%2C%22theme%22%3A%22dark%22%2C%22style%22%3A%221%22%2C%22timezone%22%3A%22Etc%2FUTC%22%2C%22withdateranges%22%3A%221%22%2C%22studies_overrides%22%3A%22%7B%7D%22%2C%22utm_source%22%3A%22digital-assettrade.com%22%2C%22utm_medium%22%3A%22widget%22%2C%22utm_campaign%22%3A%22chart%22%2C%22utm_term%22%3A%22BTCUSD%22%2C%22page-uri%22%3A%22digital-assettrade.com%2F%22%7D","date":"2026-07-27T10:27:14.518Z","timestamp":1785148034518,"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":"*.tradingview-widget.com","organization":""},"issuer":{"commonName":"DigiCert Global G2 TLS RSA SHA256 2020 CA1","organization":"DigiCert Inc"},"validity":{"start":"Tue, 17 Feb 2026 00:00:00 GMT","end":"Sat, 20 Mar 2027 23:59:59 GMT"},"fingerprint":{"sha1":"23:87:1E:8E:DF:2E:DF:50:A8:DD:45:10:C1:4B:01:C9:B2:61:AA:8B","sha256":"42:09:59:71:96:C1:0E:B9:2F:9D:82:A3:0D:A5:B1:21:6A:76:72:A7:8B:19:14:80:BD:DA:CB:13:D1:7E:57:3F"}}},"request":{"raw":"GET /static/bundles/embed/33515.85004481e4ae6624a985.css HTTP/1.1\r\nHost: www.tradingview-widget.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\nOrigin: https://s.tradingview.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://s.tradingview.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 10:27:14 GMT\r\ncontent-type: text/css; charset=utf-8\r\nserver: BunnyCDN-NO1-830\r\ncdn-pullzone: 2118568\r\ncdn-requestcountrycode: NO\r\nvary: Accept-Encoding, Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: max-age=315360000\r\netag: W/\"69f98b70-244\"\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\nlast-modified: Tue, 05 May 2026 06:17:20 GMT\r\nx-content-type-options: nosniff\r\nreferrer-policy: origin-when-cross-origin\r\ncontent-security-policy: default-src 'none'\r\ncdn-proxyver: 1.51\r\ncdn-requestpullcode: 200\r\ncdn-requestpullsuccess: True\r\ncdn-edgestorageid: 830\r\ncdn-cachedat: 05/05/2026 10:16:43\r\ncdn-status: 200\r\ncdn-requesttime: 0\r\ncdn-requestid: afc67ce534d67fc19230a6dd765bcc79\r\ncdn-cache: HIT\r\ncontent-encoding: br\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bunny","description":"","website":"https://bunny.net","common_platform_enumeration":"","icon":"Bunny.svg","categories":["CDN"]}],"data":{"size":580,"size_decoded":1060,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with very long lines (580), with no line terminators","md5":"5241d2a5bfe86e6cd8fd6dcb5e2ed696","sha1":"442dcf527ccbe2043768a278bbb8057d5f7cd091","sha256":"07939c04dbd8bdba86c89a76e4a69061cd4ebae6d60b819991cd2b8c1fe37221","sha512":"11bef8137565b1ddd5747cb80db211dc83494e6a8daaeb1f4ee0db1fb1c66425576cadcaf31ffe012cb339a4910f2561bb428f9b2dbc6a469c0efebe0112e081","ssdeep":"","tlshash":"4ff02897832433424ab7993ccc9b577b113080a34684958ca250ef69ff4e7c9436c090","first_seen":"2026-02-24T21:05:06.369247Z","last_seen":"2026-07-27T12:51:16.060277Z","times_seen":479,"resource_available":false,"data":"LmNvbnRhaW5lci1UdjdMU2pVentjdXJzb3I6ZGVmYXVsdDtoZWlnaHQ6MTAwJTtvdmVyZmxvdzpoaWRkZW47cG9zaXRpb246cmVsYXRpdmU7ei1pbmRleDowfS5vdmVybGF5U2Nyb2xsV3JhcC1UdjdMU2pVentib3R0b206MDtpbnNldC1pbmxpbmUtZW5kOjA7aW5zZXQtaW5saW5lLXN0YXJ0OjA7dG9wOjA7ei1pbmRleDoxMH0ud3JhcHBlci1UdjdMU2pVenttYXgtaGVpZ2h0OjEwMCU7b3ZlcmZsb3cteTphdXRvfUBzdXBwb3J0cyAoLW1vei1hcHBlYXJhbmNlOm5vbmUpey53cmFwcGVyLVR2N0xTalV6e3Njcm9sbGJhci13aWR0aDpub25lfX0ud3JhcHBlci1UdjdMU2pVei5zYi1zY3JvbGxiYXItd3JhcHtkaXNwbGF5Om5vbmV9LndyYXBwZXItVHY3TFNqVXo6Oi13ZWJraXQtc2Nyb2xsYmFye2Rpc3BsYXk6bm9uZTtoZWlnaHQ6MDt3aWR0aDowfS53cmFwcGVyLVR2N0xTalV6Ojotd2Via2l0LXNjcm9sbGJhci10aHVtYiwud3JhcHBlci1UdjdMU2pVejo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2t7ZGlzcGxheTpub25lfS53cmFwcGVyLVR2N0xTalV6Ojotd2Via2l0LXNjcm9sbGJhci1jb3JuZXJ7ZGlzcGxheTpub25lfQ=="}},"time_used":2,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":2,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}}]}
